<?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>204728</bug_id>
          
          <creation_ts>2019-12-01 08:33:53 -0800</creation_ts>
          <short_desc>Update WPT tools directory</short_desc>
          <delta_ts>2019-12-04 07:45:24 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>204469</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Simon Fraser (smfr)">simon.fraser</reporter>
          <assigned_to name="youenn fablet">youennf</assigned_to>
          <cc>aakash_jain</cc>
    
    <cc>commit-queue</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bot-watchers-bugzilla</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1594422</commentid>
    <comment_count>0</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2019-12-01 08:33:53 -0800</bug_when>
    <thetext>Upadate WPT tools directory</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1594423</commentid>
    <comment_count>1</comment_count>
      <attachid>384574</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2019-12-01 08:35:53 -0800</bug_when>
    <thetext>Created attachment 384574
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1594424</commentid>
    <comment_count>2</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2019-12-01 08:37:24 -0800</bug_when>
    <thetext>Should I preserved the tools/wptserve/wptserve/*/w3c-import.log files?

If so, we should move them out of the tools directory.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1594463</commentid>
    <comment_count>3</comment_count>
    <who name="Aakash Jain">aakash_jain</who>
    <bug_when>2019-12-01 17:07:33 -0800</bug_when>
    <thetext>This patch prevents layout-tests from running, with below error. e.g.: https://ews-build.webkit.org/#/builders/17/builds/7579

ServerError raised: WPT Server process exited prematurely with status code None
The cmdline for running the WPT server was: [&apos;python&apos;, &apos;/Volumes/Data/worker/macOS-High-Sierra-Debug-WK1-Tests-EWS/build/LayoutTests/imported/w3c/web-platform-tests/wpt.py&apos;, &apos;serve&apos;, &apos;--config&apos;, &apos;/Volumes/Data/worker/macOS-High-Sierra-Debug-WK1-Tests-EWS/build/LayoutTests/imported/w3c/web-platform-tests/config.json&apos;]


Traceback (most recent call last):
  File &quot;/Volumes/Data/worker/macOS-High-Sierra-Debug-WK1-Tests-EWS/build/Tools/Scripts/webkitpy/layout_tests/run_webkit_tests.py&quot;, line 91, in main
    run_details = run(port, options, args, stderr)
  File &quot;/Volumes/Data/worker/macOS-High-Sierra-Debug-WK1-Tests-EWS/build/Tools/Scripts/webkitpy/layout_tests/run_webkit_tests.py&quot;, line 466, in run
    run_details = manager.run(args)
  File &quot;/Volumes/Data/worker/macOS-High-Sierra-Debug-WK1-Tests-EWS/build/Tools/Scripts/webkitpy/layout_tests/controllers/manager.py&quot;, line 230, in run
    needs_http=needs_http, needs_web_platform_test_server=needs_web_platform_test_server, needs_websockets=needs_websockets)
  File &quot;/Volumes/Data/worker/macOS-High-Sierra-Debug-WK1-Tests-EWS/build/Tools/Scripts/webkitpy/layout_tests/controllers/layout_test_runner.py&quot;, line 88, in __init__
    self.start_servers()
  File &quot;/Volumes/Data/worker/macOS-High-Sierra-Debug-WK1-Tests-EWS/build/Tools/Scripts/webkitpy/layout_tests/controllers/layout_test_runner.py&quot;, line 224, in start_servers
    self._port.start_web_platform_test_server()
  File &quot;/Volumes/Data/worker/macOS-High-Sierra-Debug-WK1-Tests-EWS/build/Tools/Scripts/webkitpy/port/base.py&quot;, line 1036, in start_web_platform_test_server
    self._web_platform_test_server.start()
  File &quot;/Volumes/Data/worker/macOS-High-Sierra-Debug-WK1-Tests-EWS/build/Tools/Scripts/webkitpy/layout_tests/servers/http_server_base.py&quot;, line 98, in start
    self._pid = self._spawn_process()
  File &quot;/Volumes/Data/worker/macOS-High-Sierra-Debug-WK1-Tests-EWS/build/Tools/Scripts/webkitpy/layout_tests/servers/web_platform_test_server.py&quot;, line 141, in _spawn_process
    raise http_server_base.ServerError(error_log)
ServerError: WPT Server process exited prematurely with status code None</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1594511</commentid>
    <comment_count>4</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2019-12-02 00:49:07 -0800</bug_when>
    <thetext>(In reply to Simon Fraser (smfr) from comment #2)
&gt; Should I preserved the tools/wptserve/wptserve/*/w3c-import.log files?
&gt; 
&gt; If so, we should move them out of the tools directory.

We use the logs to remove WebKit imported files that have been removed from the upstream repo.

&quot;Tools/Scripts/import-w3c-tests -t web-platform-tests/tools&quot;should do the trick.
This should keep generation of the w3c-import.log files.

I tried the patch locally and it works for me.
As of the build error, we do not have much info.
/Volumes/Data/worker/macOS-High-Sierra-Debug-WK1-Tests-EWS/build/layout-test-results/wptwk_process_log.out.txt should give more information.

It might be good to regenerate the patch with Tools/Scripts/import-w3c-tests and if still failing, check the above file for more information.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1594991</commentid>
    <comment_count>5</comment_count>
      <attachid>384712</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2019-12-03 06:20:04 -0800</bug_when>
    <thetext>Created attachment 384712
Patch using importer</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1594994</commentid>
    <comment_count>6</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2019-12-03 06:40:17 -0800</bug_when>
    <thetext>New patch seems to run well.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1595020</commentid>
    <comment_count>7</comment_count>
      <attachid>384712</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2019-12-03 08:31:48 -0800</bug_when>
    <thetext>Comment on attachment 384712
Patch using importer

r=me but please check the test failures.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1595453</commentid>
    <comment_count>8</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2019-12-04 05:42:16 -0800</bug_when>
    <thetext>Failures are probably due to changes in tools.
This might require resyncing service worker and xhr tests.

I&apos;ll update test expectations to land this patch first.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1595455</commentid>
    <comment_count>9</comment_count>
      <attachid>384806</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2019-12-04 05:45:28 -0800</bug_when>
    <thetext>Created attachment 384806
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1595472</commentid>
    <comment_count>10</comment_count>
      <attachid>384806</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-12-04 07:44:27 -0800</bug_when>
    <thetext>Comment on attachment 384806
Patch for landing

Clearing flags on attachment: 384806

Committed r253104: &lt;https://trac.webkit.org/changeset/253104&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1595473</commentid>
    <comment_count>11</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-12-04 07:44:28 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1595474</commentid>
    <comment_count>12</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-12-04 07:45:24 -0800</bug_when>
    <thetext>&lt;rdar://problem/57623876&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>384574</attachid>
            <date>2019-12-01 08:35:53 -0800</date>
            <delta_ts>2019-12-03 06:40:30 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-204728-20191201083547.patch</filename>
            <type>text/plain</type>
            <size>4163968</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUyOTE2CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2MvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZwpp
bmRleCA1MzIxMzUyMDQxYTA0ZTI0N2Q4N2U3NjUzYTUwYzg4MzVlMjM5ZGUzLi4wMmI0YTg2ZjQx
ZDNjYzUyNDY3N2RkZjNlOGVlOWFiMzMwMjNjODY0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2MvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwxMiBAQAorMjAxOS0xMi0wMSAgU2ltb24gRnJhc2VyICA8c2ltb24u
ZnJhc2VyQGFwcGxlLmNvbT4KKworICAgICAgICBVcGFkYXRlIFdQVCB0b29scyBkaXJlY3RvcnkK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwNDcyOAor
ICAgICAgICAKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
VXBkYXRlIHRvb2xzIHRvIFdQVCB2ZXJzaW9uIDVkZjU2YjI1ZTFjYjgKKyAgICAgICAgCiAyMDE5
LTExLTI3ICBNYW51ZWwgUmVnbyBDYXNhc25vdmFzICA8cmVnb0BpZ2FsaWEuY29tPgogCiAgICAg
ICAgIFtjc3MtZ3JpZF0gU2VyaWFsaXphdGlvbiBvZiBncmlkLWFyZWEsIGdyaWQtcm93IGFuZCBn
cmlkLWNvbHVtbiBzaG91bGQgaW5jbHVkZSAiLyIgc2VwYXJhdG9yCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzLy5jb3ZlcmFnZXJj
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy8uY292
ZXJhZ2VyYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi43MGM3MTI0NmE2ZjhiMTY3Mzk2NWUyYTZmOGZlNjYzZjY2NTMx
OGFjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy8uY292ZXJhZ2VyYwpAQCAtMCwwICsxLDI1IEBACitbcnVuXQorYnJh
bmNoID0gVHJ1ZQorcGFyYWxsZWwgPSBUcnVlCitvbWl0ID0KKyAgaHRtbDVsaWIvKgorICBweS8q
CisgIHB5dGVzdC8qCisgIHB5d2Vic29ja2V0LyoKKyAgc2l4LyoKKyAgd2ViZHJpdmVyLyoKKyAg
Ki9zaXRlLXBhY2thZ2VzLyoKKyAgKi9saWJfcHlweS8qCisKK1twYXRoc10KK2h0bWw1bGliID0K
KyAgaHRtbDVsaWIvaHRtbDVsaWIKKyAgLnRveC8qKi9zaXRlLXBhY2thZ2VzL2h0bWw1bGliCisK
K3B5dGVzdCA9CisgIHB5dGVzdC9fcHl0ZXN0CisgIC50b3gvKiovc2l0ZS1wYWNrYWdlcy9fcHl0
ZXN0CisKK3B5ID0KKyAgcHkvcHkKKyAgLnRveC8qKi9zaXRlLXBhY2thZ2VzL3B5CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzLy5n
aXRhdHRyaWJ1dGVzIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy8uZ2l0YXR0cmlidXRlcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wNmEyYzg3YTVlMmM1NzAyNDM3NzZh
MWM1YTJmZWI4MmViYzQyMzAwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy8uZ2l0YXR0cmlidXRlcwpAQCAtMCwwICsx
IEBACitsaW50L3Rlc3RzL2R1bW15LyoqCS10ZXh0CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzLy5naXRpZ25vcmUgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzLy5naXRpZ25vcmUKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uZjg4OGNlOTkzNWExMWQxZjczNDc4MWU4MjMwNjg2ZjQ5YjI5YThiYwotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvLmdpdGlnbm9yZQpAQCAtMCwwICsxLDEyIEBACisqIworLmNvdmVyYWdlCisuY292ZXJh
Z2UuKgoraHRtbGNvdi8KK2NvdmVyYWdlLnhtbAorLmNhY2hlLworLmh5cG90aGVzaXMvCisqLnB5
W2NvXQorKi5zd1twb10KKyp+CitcIyoKK3J1bm5lci9NQU5JRkVTVC5qc29uCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzLy5naXRt
b2R1bGVzIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy8uZ2l0bW9kdWxlcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wMjFhZGZjNmRlNDRhYzBmNzFmM2RjZWM0OGZhMzI0
OWE0YTI1YWUzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy8uZ2l0bW9kdWxlcwpAQCAtMCwwICsxLDEzIEBACitbc3Vi
bW9kdWxlICJ0b29scy9weXdlYnNvY2tldCJdCisJcGF0aCA9IHB5d2Vic29ja2V0CisJdXJsID0g
aHR0cHM6Ly9naXRodWIuY29tL3czYy9weXdlYnNvY2tldC5naXQKKwlpZ25vcmUgPSBkaXJ0eQor
W3N1Ym1vZHVsZSAiaHRtbDVsaWIiXQorCXBhdGggPSBodG1sNWxpYgorCXVybCA9IGh0dHBzOi8v
Z2l0aHViLmNvbS9odG1sNWxpYi9odG1sNWxpYi1weXRob24uZ2l0Citbc3VibW9kdWxlICJ0b29s
cy9zaXgiXQorCXBhdGggPSBzaXgKKwl1cmwgPSBodHRwczovL2dpdGh1Yi5jb20vamdyYWhhbS9z
aXguZ2l0Citbc3VibW9kdWxlICJweXRlc3QiXQorCXBhdGggPSBweXRlc3QKKwl1cmwgPSBodHRw
czovL2dpdGh1Yi5jb20vcHl0ZXN0LWRldi9weXRlc3QuZ2l0CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL01FVEEueW1sIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9NRVRBLnltbApp
bmRleCA4Zjk4OGY5OWE4MmUwOTkxYzIwY2I4MTZiZTYzNzhhOTczMDI4NzMzLi43Y2MyMmEyOGMy
MGMwMWYyYzYwMmI2Yjc5ODE0ZmM2ODQ0MDU0MzA2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL01FVEEueW1sCisrKyBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvTUVUQS55bWwKQEAg
LTEsMyArMSw0IEBACiBzdWdnZXN0ZWRfcmV2aWV3ZXJzOgogICAtIGpncmFoYW0KICAgLSBnc25l
ZGRlcnMKKyAgLSBqdWdnbGlubWlrZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9hcHB2ZXlvci55bWwgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2FwcHZleW9yLnltbApkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYjBjZWRkNWM3OGZiYmViZThkYzA2OWMyZmU1MWRmNGQ5
ZDU5OWY5MC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2FwcHZleW9y
LnltbAorKysgL2Rldi9udWxsCkBAIC0xLDMyICswLDAgQEAKLWVudmlyb25tZW50OgotICBnbG9i
YWw6Ci0gICAgSFlQT1RIRVNJU19QUk9GSUxFOiBjaQotICBtYXRyaXg6Ci0gICAgLSBQWVRIT046
ICdDOlxcUHl0aG9uMjcnCi0gICAgLSBQWVRIT046ICdDOlxcUHl0aG9uMzUnCi0gICAgLSBQWVRI
T046ICdDOlxcUHl0aG9uMzYnCi0KLSMgTmVlZGVkIHRvIG1ha2UgcHkudGVzdCBiZWxpZXZlIG91
ciB0b3AgbGV2ZWwgY2FuIGJlIGltcG9ydGVkICh3ZQotIyBvdGhlcndpc2UgZW5kIHVwIGluIGEg
d3B0LXRvb2xzIGRpcmVjdG9yeSwgYW5kIG9mIGNvdXJzZSB5b3UgY2Fubm90Ci0jIGltcG9ydCBh
IG5hbWUgaW5jbHVkaW5nIGEgaHlwaGVuIGluIFB5dGhvbiwgc28gaXQgaWdub3JlcyB0aGUgZmFj
dAotIyB3ZSBoYXZlIGEgX19pbml0X18ucHkgYXQgdGhlIHRvcCBsZXZlbCkuCi1jbG9uZV9mb2xk
ZXI6ICdDOlxwcm9qZWN0c1x3cHR0b29scycKLQotaW5pdDoKLSAgLSAnZ2l0IGNvbmZpZyAtLWds
b2JhbCBjb3JlLmF1dG9jcmxmIHRydWUnCi0KLWluc3RhbGw6Ci0gIC0gJ3JtIC5naXRcaW5kZXgn
Ci0gIC0gJ2dpdCByZXNldCAtLWhhcmQnCi0gIC0gJ1NFVCBQQVRIPSVQWVRIT04lOyVQWVRIT04l
XFxTY3JpcHRzOyVQQVRIJScKLSAgLSAnZ2l0IHN1Ym1vZHVsZSB1cGRhdGUgLS1pbml0IC0tcmVj
dXJzaXZlJwotICAtICdweXRob24uZXhlIC1tIHBpcCBpbnN0YWxsIHRveCBjb2RlY292JwotCi1i
dWlsZDogb2ZmCi0KLXRlc3Rfc2NyaXB0OgotICAtICd0b3ggLWUgcHknCi0KLW9uX3N1Y2Nlc3M6
Ci0gIC0gJ2NvdmVyYWdlIGNvbWJpbmUnCi0gIC0gJ2NvZGVjb3YnCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2NlcnRzL1JFQURN
RS5tZCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
Y2VydHMvUkVBRE1FLm1kCmluZGV4IGY1YWU3NDEzYWZlYzNiNjliZTk1N2RhMjRjNjYwYWJkOTY5
M2M2N2UuLmZkNzVjMjJkZGZmZWQyZTcwMGY1ZjQ0YzJiNTUyY2MzNTI2ZDQ2MGYgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvY2Vy
dHMvUkVBRE1FLm1kCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvY2VydHMvUkVBRE1FLm1kCkBAIC0xLDcgKzEsODEgQEAKLVRvIGVuYWJsZSBo
dHRwczovL3dlYi1wbGF0Zm9ybS50ZXN0Ojg0NDMvLCBhZGQgY2FjZXJ0LnBlbSB0byB5b3VyIGJy
b3dzZXIgYXMgQ2VydGlmaWNhdGUgQXV0aG9yaXR5LgorIyBXUFQgVGVzdCBDZXJ0aWZpY2F0ZXMK
KworVGhlIHdlYi1wbGF0Zm9ybS10ZXN0cyBwcm9qZWN0IG1haW50YWlucyBhIHNldCBvZiBTU0wg
Y2VydGlmaWNhdGVzIHRvIGFsbG93Citjb250cmlidXRvcnMgdG8gZXhlY3V0ZSB0ZXN0cyByZXF1
aXJpbmcgSFRUUFMgbG9jYWxseS4KKworIyMgVHJ1c3RpbmcgUm9vdCBDQQorCitUbyBwcmV2ZW50
IGJyb3dzZXIgU1NMIHdhcm5pbmdzIHdoZW4gcnVubmluZyBIVFRQUyB0ZXN0cyBsb2NhbGx5LCB0
aGUKK3dlYi1wbGF0Zm9ybS10ZXN0cyBSb290IENBIGZpbGUgYGNhY2VydC5wZW1gIGluIHRoZSBg
dG9vbHMvY2VydHMvYCBkaXJlY3RvcnkKK211c3QgYmUgYWRkZWQgYXMgYSB0cnVzdGVkIGNlcnRp
ZmljYXRlIGluIHlvdXIgT1MvYnJvd3Nlci4KIAogRm9yIEZpcmVmb3gsIGdvIHRvIGFib3V0OnBy
ZWZlcmVuY2VzIGFuZCBzZWFyY2ggZm9yICJjZXJ0aWZpY2F0ZXMiLgogCi1Gb3IgYnJvd3NlcnMg
dGhhdCB1c2UgdGhlIENlcnRpZmljYXRlIEF1dGhvcml0aWVzIG9mIHRoZSB1bmRlcmx5aW5nIE9T
LCBzdWNoIGFzIENocm9tZSBhbmQgU2FmYXJpLAoteW91IG5lZWQgdG8gYWRqdXN0IHRoZSBPUy4g
Rm9yIG1hY09TLCBnbyB0byBLZXljaGFpbiBBY2Nlc3MgYW5kIGFkZCB0aGUgY2VydGlmaWNhdGUg
dW5kZXIKLSoqbG9naW4qKi4KK0ZvciBicm93c2VycyB0aGF0IHVzZSB0aGUgQ2VydGlmaWNhdGUg
QXV0aG9yaXRpZXMgb2YgdGhlIHVuZGVybHlpbmcgT1MsIHN1Y2ggYXMKK0Nocm9tZSBhbmQgU2Fm
YXJpLCB5b3UgbmVlZCB0byBhZGp1c3QgdGhlIE9TLiBGb3IgbWFjT1MsIGdvIHRvIEtleWNoYWlu
IEFjY2VzcworYW5kIGFkZCB0aGUgY2VydGlmaWNhdGUgdW5kZXIgKipsb2dpbioqLgorCisqKk5P
VEUqKjogVGhlIENBIHNob3VsZCBub3QgYmUgaW5zdGFsbGVkIGluIGFueSBicm93c2VyIHByb2Zp
bGUgdXNlZAorb3V0c2lkZSBvZiB0ZXN0cywgc2luY2UgaXQgbWF5IGJlIHVzZWQgdG8gZ2VuZXJh
dGUgZmFrZQorY2VydGlmaWNhdGVzLiBGb3IgYnJvd3NlcnMgdGhhdCB1c2UgdGhlIE9TIGNlcnRp
ZmljYXRlIHN0b3JlLCB0ZXN0cworc2hvdWxkIHRoZXJlZm9yZSBub3QgYmUgcnVuIG1hbnVhbGx5
IG91dHNpZGUgYSBkZWRpY2F0ZWQgT1MgaW5zdGFuY2UKKyhlLmcuIGEgVk0pLiBUbyBhdm9pZCB0
aGlzIHByb2JsZW0gd2hlbiBydW5uaW5nIHRlc3RzIGluIENocm9tZSBvcgorRmlyZWZveCwgdXNl
IGB3cHQgcnVuYCwgd2hpY2ggZGlzYWJsZXMgY2VydGlmaWNhdGUgY2hlY2tzIGFuZCB0aGVyZWZv
cmUKK2RvZXNuJ3QgcmVxdWlyZSB0aGUgcm9vdCBDQSB0byBiZSB0cnVzdGVkLgorCisjIyBSZWdl
bmVyYXRpbmcgY2VydGlmaWNhdGVzCisKK0lmIHlvdSB3aXNoIHRvIGdlbmVyYXRlIG5ldyBjZXJ0
aWZpY2F0ZXMgZm9yIGFueSByZWFzb24sIGl0J3MgcG9zc2libGUgdG8gdXNlCitPcGVuU1NMIHdo
ZW4gc3RhcnRpbmcgdGhlIHNlcnZlciwgb3Igc3RhcnRpbmcgYSB0ZXN0IHJ1biwgYnkgcHJvdmlk
aW5nIHRoZQorYC0tc3NsLXR5cGU9b3BlbnNzbGAgYXJndW1lbnQgdG8gdGhlIGB3cHQgc2VydmVg
IG9yIGB3cHQgcnVuYCBjb21tYW5kcy4KKworSWYgeW91IGluc3RhbGxlZCBPcGVuU1NMIGluIHN1
Y2ggYSB3YXkgdGhhdCBydW5uaW5nIGBvcGVuc3NsYCBhdCBhCitjb21tYW5kIGxpbmUgZG9lc24n
dCB3b3JrLCB5b3UgYWxzbyBuZWVkIHRvIGFkanVzdCB0aGUgcGF0aCB0byB0aGUKK09wZW5TU0wg
YmluYXJ5LiBUaGlzIGNhbiBiZSBkb25lIGJ5IGFkZGluZyBhIHNlY3Rpb24gdG8gYGNvbmZpZy5q
c29uYAorbGlrZToKKworYGBgCisic3NsIjogeyJvcGVuc3NsIjogeyJiaW5hcnkiOiAiL3BhdGgv
dG8vb3BlbnNzbCJ9fQorYGBgCisKK09uIFdpbmRvd3MgdXNpbmcgT3BlblNTTCB0eXBpY2FsbHkg
cmVxdWlyZXMgaW5zdGFsbGluZyBhbiBPcGVuU1NMIGRpc3RyaWJ1dGlvbi4KK1tTaGluaW5nIExp
Z2h0XShodHRwczovL3NscHJvd2ViLmNvbS9wcm9kdWN0cy9XaW4zMk9wZW5TU0wuaHRtbCkKK3By
b3ZpZGUgYSBjb252ZW5pZW50IGluc3RhbGxlciB0aGF0IGlzIGtub3duIHRvIHdvcmssIGJ1dCBy
ZXF1aXJlcyBhCitsaXR0bGUgZXh0cmEgc2V0dXAsIGkuZS46CisKK1J1biB0aGUgaW5zdGFsbGVy
IGZvciBXaW4zMl9PcGVuU1NMX3YxLjEuMGIgKDMwTUIpLiBEdXJpbmcgaW5zdGFsbGF0aW9uLAor
Y2hhbmdlIHRoZSBkZWZhdWx0IGxvY2F0aW9uIGZvciB3aGVyZSB0byBDb3B5IE9wZW5TU0wgRGxs
cyBmcm9tIHRoZQorU3lzdGVtIGRpcmVjdG9yeSB0byB0aGUgL2JpbiBkaXJlY3RvcnkuCisKK0Fm
dGVyIGluc3RhbGxhdGlvbiwgZW5zdXJlIHRoYXQgdGhlIHBhdGggdG8gT3BlblNTTCAodHlwaWNh
bGx5LAordGhpcyB3aWxsIGJlIGBDOlxPcGVuU1NMLVdpbjMyXGJpbmApIGlzIGluIHlvdXIgYCVQ
YXRoJWAKK1tFbnZpcm9ubWVudCBWYXJpYWJsZV0oaHR0cDovL3d3dy5jb21wdXRlcmhvcGUuY29t
L2lzc3Vlcy9jaDAwMDU0OS5odG0pLgorSWYgeW91IGZvcmdldCB0byBkbyB0aGlzIHBhcnQsIHlv
dSB3aWxsIG1vc3QgbGlrZWx5IHNlZSBhICdGaWxlIE5vdCBGb3VuZCcKK2Vycm9yIHdoZW4geW91
IHN0YXJ0IHdwdHNlcnZlLgorCitGaW5hbGx5LCBzZXQgdGhlIHBhdGggdmFsdWUgaW4gdGhlIHNl
cnZlciBjb25maWd1cmF0aW9uIGZpbGUgdG8gdGhlCitkZWZhdWx0IE9wZW5TU0wgY29uZmlndXJh
dGlvbiBmaWxlIGxvY2F0aW9uLiBUbyBkbyB0aGlzLCBjcmVhdGUgYSBmaWxlCitjYWxsZWQgYGNv
bmZpZy5qc29uYC4gIFRoZW4gYWRkIHRoZSBPcGVuU1NMIGNvbmZpZ3VyYXRpb24gYmVsb3csCitl
bnN1cmluZyB0aGF0IHRoZSBrZXkgYHNzbC9vcGVuc3NsL2Jhc2VfY29uZl9wYXRoYCBoYXMgYSB2
YWx1ZSB0aGF0IGlzCit0aGUgcGF0aCB0byB0aGUgT3BlblNTTCBjb25maWcgZmlsZSAodHlwaWNh
bGx5IHRoaXMgd2lsbCBiZQorYEM6XFxPcGVuU1NMLVdpbjMyXFxiaW5cXG9wZW5zc2wuY2ZnYCk6
CisKK2BgYAoreworICAic3NsIjogeworICAgICJ0eXBlIjogIm9wZW5zc2wiLAorICAgICJlbmNy
eXB0X2FmdGVyX2Nvbm5lY3QiOiBmYWxzZSwKKyAgICAib3BlbnNzbCI6IHsKKyAgICAgICJvcGVu
c3NsX2JpbmFyeSI6ICJvcGVuc3NsIiwKKyAgICAgICJiYXNlX3BhdGg6ICJfY2VydHMiLAorICAg
ICAgImZvcmNlX3JlZ2VuZXJhdGUiOiBmYWxzZSwKKyAgICAgICJiYXNlX2NvbmZfcGF0aCI6ICJD
OlxcT3BlblNTTC1XaW4zMlxcYmluXFxvcGVuc3NsLmNmZyIKKyAgICB9LAorICB9LAorfQorYGBg
CisKKyMjIyBSZWdlbmVyYXRpbmcgdGhlIHByZWdlbmVyYXRlZCBjZXJ0aWZpY2F0ZXMKKworRnJv
bSB0aGUgcm9vdCwgcnVuIGAuL3dwdCBzZXJ2ZSAtLWNvbmZpZyB0b29scy9jZXJ0cy9jb25maWcu
anNvbmAgYW5kIHRlcm1pbmF0ZQoraXQgYWZ0ZXIgaXQgaGFzIHN0YXJ0ZWQgdXAuCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2Nl
cnRzL2NhY2VydC5rZXkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL2NlcnRzL2NhY2VydC5rZXkKaW5kZXggNThiNWZmNzU2ODRhMzA3NmFiZDM3ZjEz
NWNmMjRhNjU0YTE3NTkyOS4uMWExMjFkZmFjOTUyZGZlODg4NmIxYjVlNDFlN2M3MzExZDVmMGIz
MiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy9jZXJ0cy9jYWNlcnQua2V5CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvY2VydHMvY2FjZXJ0LmtleQpAQCAtMSwzMCArMSwzMCBA
QAogLS0tLS1CRUdJTiBFTkNSWVBURUQgUFJJVkFURSBLRVktLS0tLQotTUlJRkRqQkFCZ2txaGtp
Rzl3MEJCUTB3TXpBYkJna3Foa2lHOXcwQkJRd3dEZ1FJYjlFUzdoNllHQmNDQWdnQQotTUJRR0ND
cUdTSWIzRFFNSEJBaTJaVkxncTFYdmFnU0NCTWpBbUdFVnZqd1h2RjAwdmV1UW1Kc21jalZIQi9x
UAotVnFTWGpDUTk0b3JaYjg5VWZGblBPOXpYZHZMV3hyd2I1V1A2YmJRditTaDRodEV4WENENVha
aTFBeldOQ3liZQotZGEwdnZRR2dqZHpVaDJmQ3JHNEs3SjB3MjBscllndzNIVlNqL1d0bWRiZFpG
ZG9YK0JnWHJ4Y3FrRTNNNW9wWgotM1VEM3lJUWVYU3hVa2gzaXY2enpaYVd1anhqREkySnB3eFJt
TVZicnI4T2VCcktKc3FCMkRuS21xK2VtbXZFRgotaVhUTjNXdy9BajZHSXFmUFo4anBWZHdjVk41
UXBlSEFoN2IybHN6dDdHRU9HY0JodXRQcTRBcXk4UElpRFI4MAotc1VZSTdWOE9YbStZNDVEbmZr
dnNvZ1pFaWZPaVVyUTJVK2FHRHUrWnQ4ODY2MXdWempxK3ZvSmx6OEVhSVBDRQotQi9OUzJTZ05x
STIvRHJqRUVlY242aGpnSFdJVUJ3T2ZlTm9TaTFUcmk2S1pGeXhHMjZMRS9WOENkNTB5b2R4OQot
cEJnRnhkQ2JtWUxlUmNWZVhXMmJ1MFpNalBkZFJsUjVNSGZya001WkF6ZTduUnhvaXlXbkIvVThw
UGYrYlF2eAotSzRQOUtjd0NPZUhpZ2thQ1laS3E3bm1aeUV5NGttODl6SXVnVC9ZV2hNV3lWd3ls
VHBhZ2FpaUp3WUxqdWc4bgotQ2JGWldBa09SQklsMmcvWUN1VEJVSnRDMklXWDhrdytuWVZ3cUJz
enBaeUM2bmJoYTJVbWhRRGZNQW93UUE1dgotbjFMblY4STZmN3U2SGlkYkI4V1gyVVpvaDAzQTRi
ZUNCeitkcTJWYVVxdUxUTDRLUVRJeis2cnc3bkV5c3JuSAotVEliOFNsd3NZQWx6end5eU05ZFNX
dDdpUWVOam1IN3pMME1vek1zM0xLSElyc1dpN1paaDhCVVluVDJ2S2ROVgotMlpMT01jUjB0WVZt
Vlo4dVlrUjlrbnkvZmJaY0tONTR4U2NvaEEyVVgyNjFXK3NXaUVnTitSYUJzUTc5cEZnaQotdlls
ZGZqYUdOU3ZmdFhhNTkweG4ydGxTNi9zdUI1TXhpVzVnM1B1Qmc1WHRWWjk1bDBmMW4zNzZYaDQx
c0p2OAotWUhyQ3RGSE9sU3BESlVMR2lYVmgvd1hCbVM3cUo4RGhuVVVHNjk5RWRsc0ZmNlFnMjJX
QjNBWlJ2RUpkWUM0egotUDhXK2paMTVOVERiSGczSHY3L0NGWVZ6Ylh2MncwamtpcVFnREYvd2M2
dC9FZExEKzJoemNOK25KR2p0eFpibgoteGpiWGNnOThDVU1VK2RjL2FENE40NUs5ZTlyUGczK2la
THd2c1J2d3grTXN6bWd4eFB2MDVwTnlSTzdSVms4cgotZ2t5eXA5L0NKRm1lKzRuRktVYzBkVXky
eU5YWnRrbFRYMFhLbS9ZTktpbjZ1VU1sSUFySWE1NENmdnQ5UXNsVgotaUQrU3hVMVpIbXp3S1Q4
Mis1WmVJUkxOV3ZGVi85RTRuRCtCVGFnSzJGZHduc3UxUzJrN0l0RDlsSy9jQlBHUwotMHR6MUhX
djRBdWozd01QWmtscDNTUWx1T2w2ZUFJVnFxSTlHYVgvZDQyRGN0QlFXTFRhMjdZaWJXeU5JY3c3
bwotM044R0RSRU1hd1RCZERSd2xaM29UK3lpR0xYMWM4ZHMybzAvNEljSmxPa0RveFhFcm1kbFpv
OW9WZTZ6NFI3ZwotNjJ5UjUzYXRWVExvVW5BanhIWHgwYkppeWF5djlZM3dqT0V2dWh1cWRkOUYr
SE9oVHRBSHIvQkpRTmhFayt6OAotNTMxQ1pUSmpiMXAxMVBiT3RIR1YySWVCMFM4Mm14a2tYUnlr
RVhPYjg5WnBESE5SaU1pblRoUmtvQ211Ukk5cgotZFRpRVM5QjAyeU1QeEozc0xReUR4Q29TNW13
ZmNBcUtUZUsreUN2VHZCeSt0NXR3NjNEYldsTXAvN0FoeTY1SwotcldNSGR3cXdmb0IrWll3NXNZ
WmRQdnVCVkFUMDFJMkpiT3FYMzZSYWNRdWx0Rm5zMk9pbnhPSkhhMUhqdFh5UwotY1BWRWtNYTdj
aTNZbTlqNVJRTkxWc2dKZTdZSzlIaXhYNUhqUUZBb3dBSDJwWFo1cEtKSUpZeFBJVUt0Wmxzegot
cWJNPQorTUlJRkh6QkpCZ2txaGtpRzl3MEJCUTB3UERBYkJna3Foa2lHOXcwQkJRd3dEZ1FJbWlu
SFR6a1hocnNDQWdnQQorTUIwR0NXQ0dTQUZsQXdRQktnUVFYVndKY3FXemU2QTNWWXVBUzBCUGd3
U0NCTkNSdHZyb0I2cXJvUWxGNThIRQorNVNKSEYvalFSSlJ4ZjA1MWxycStqZlV4TTdrWnVjTk4r
bXlWMnppTG9nYTZPUU01NzlEOHZ5OHRxa3JMcG5zVAorY1hrZ0h1d3RCSkY0N3cxWUFQR0dBUmUz
S3N2LzJDOXNVVmNQdm1uVnJ6U01YODZFc2VyZmZxTTN6ZndaMkgzUworanhURFN5SXZKVVUrNFhm
eHJXZWdUaVFRUE5xRHlMZk81ZEJmYXRUMnp0WENtdTNCRmlwdWhHRnB3d0NKaXJLcgorMXhiNlhQ
RXVUMFBDelROcGVTVVJwWEZLSE1ETWtjak9rTkFVeWdJRXcrTGc3ZXRWZkxjc2dCdXpFQTNSV3dm
MworT01ZMW1UQkpsdng2elp4ZFg3YTBRbXhlclVEa0RTOVlZQUVHU0ZhK0Z4NmNHVzVQeWVlZjl4
dGxIeFpIaStwbQorVHhDd2N2SnlYcWVENGdXbTNzMWd3T2ppNVdtWHZvMkVpcmN4ZlNLazhUVXdh
cHhmQ1lRYk9qUUlQYUhuRUdvYQorQ1FoU0VnRFg1dWZ3c1hKOS9wU1A2a2pXK3krZjBnbmhIVnVL
SktzT0Jtamc2aXF3bnFFaHcrdU5GV0tLbC9NbworVEZUN0NyYXlKVHZvKzlVZFFUSlY5TUJBc01V
UVM3ZCtISDlrTk9Bbi9oZm1FenpHVUtWVFoweklkMGZLSDEzcAorVG5vWWdNWWJtMlVybjBOWEJG
TzhSdnpZM0twS3lSaE1jT0xLeGtQVlVqS1VBNUJ1QXY2cmN2TWZsSTZIbjV3VQorcVBNK3VFQ1Nn
ZE9uTmVJbWkxRmYrY1c4ZFRHR1JiK2loYStFbkFCb1gzd1I1T3Z6Z0NZSGVFTkpiMzJGVW9Wcwor
SUQyVDVNWnRRTkFya2lzL3hXWjdKeVBibXNRbzJ3eWlGTGFzWDhXZ2grOE1nRnhvbHB2amxYMy9R
ZFRUSnFFYworcm9mVkdPUE9tZm9IbzNlWU5KT2xMYmFKVERJZThPcks0OVBJZXUxZ204enFCMldZ
cW1GLzNBWXk0SUFJd1VZdQorcmJQd1VDOUh5Y2VSUFNZZVBNOVdmMXhNMnByb0szbm1wNmFwZEhD
Uk5qYmQ0Njg5RUxtQjkwYjJhdzZORmlhbQorM3RhS1BtRkxiL3Z0Mll4Z3FPdGFnUHJUbGMxUUxI
Qktyc25wZy9CaGNCanVwcVJLR0ZtWENKemlQSWFES3ZBcworanRnNEtEbzhqTkl4bXdRQXdFVjQr
YUgwaGhNdW14YTh5YVhvQy8zRzZKeEQyc2RvcmFPcCt2clR6alVNa0lvYworeExxV2w4R0hWTEYw
OWZaSjRTdEpmSVdJT21tcGljU3hXMXZESUNhWnVVK2lQd2xOT3pGN3NlUFJraXhiYXJIcgoraXFU
bExHLy8rSHVxL245SVJ4aHptU091cjYzV01YRlJ5MHNLVzVXK3VROXhzblY4U2Rqd1JtQUdMdG5a
SHE0WQorTk9DUS8reU9SbDR5eGtQdlYwMUh5a0FsNENSdFBCR1IrNFpDNU5LaHB5aEpidTZXY3F3
aVh5QWVoVS9jUGdMKworaDhOd0VveVArT0hydkVZZHk0b2NCbkpxLzQzNld3emZXaXM4bklHNGJT
bEQzRFNFZ0pGL1FVbXE0aS9FVXEvQQorRDZTZnpiRnBQR3RUajNLWjZEOERQcndXRzY4T0NGc3FS
VzlZRXZVSUs4SlQyNjVCTjNNekk1aTAvK2s0Q2RBZworYVNhaUM5N3FnN3FKYVZNOWI5RUhzY1VY
Ui9mZUZ4dk81UWtra1k1Q1RVM0J4YjBzMUk0UncyTVlvQWRNR3RiQQorNm1kem1SVllvUnY5Tk1k
ekw2ek9Ub1BVNm9PZzZtYmpIZ1pRZ05kN3c4R3RURlcrc2ZzbExPWFhDOGVyemJIbAorQnlRSkdj
Rkd0S1RCVUQrN1ZIWmhwd003YlBPYnR6eUEycjBVYlMxUXgwSXpudnViZEZWY1h5RTdkSWpXN2NB
ZworSWJCektlaUVSd3B1M3JNcTJiWVZXM0RBMzNWbHJUZnBqWHVqaEh2MWlYMTVpNnFzV2Q3T3Ra
dzZ4N1RjY0gxWgoramRtaDlYQjl4RHlkbnNzM3U5RHdHUkVNWUM5VGRQWlkvbnVpNmxnQ2pqT2hh
VGF1bk11aWdGQk1XVUJrRGxJYgordWp1K0F0ditQU0JUOURtVHlUUUdoUFpSSXc9PQogLS0tLS1F
TkQgRU5DUllQVEVEIFBSSVZBVEUgS0VZLS0tLS0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvY2VydHMvY2FjZXJ0LnBlbSBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvY2VydHMvY2Fj
ZXJ0LnBlbQppbmRleCAxNTZkZTk3MTA1NGRiOTZmODY3NDkzMWI0M2E3OTRjMTkzYmRmZjQ5Li5l
MWI1YWRkNTRlNzk3ZGIxYzZjMWQzZWRhOTYxYWYzZTU0YmM3YTc3IDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2NlcnRzL2NhY2Vy
dC5wZW0KKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy9jZXJ0cy9jYWNlcnQucGVtCkBAIC0xLDgzICsxLDEyNSBAQAotQ2VydGlmaWNhdGU6Ci0g
ICAgRGF0YToKLSAgICAgICAgVmVyc2lvbjogMyAoMHgyKQotICAgICAgICBTZXJpYWwgTnVtYmVy
OiA3NTM1NjAgKDB4YjdmOTgpCi0gICAgU2lnbmF0dXJlIEFsZ29yaXRobTogc2hhMjU2V2l0aFJT
QUVuY3J5cHRpb24KLSAgICAgICAgSXNzdWVyOiBDTj13ZWItcGxhdGZvcm0tdGVzdHMKLSAgICAg
ICAgVmFsaWRpdHkKLSAgICAgICAgICAgIE5vdCBCZWZvcmU6IEp1bCAxMyAxMjo1OToxMiAyMDE4
IEdNVAotICAgICAgICAgICAgTm90IEFmdGVyIDogSnVsIDEwIDEyOjU5OjEyIDIwMjggR01UCi0g
ICAgICAgIFN1YmplY3Q6IENOPXdlYi1wbGF0Zm9ybS10ZXN0cwotICAgICAgICBTdWJqZWN0IFB1
YmxpYyBLZXkgSW5mbzoKLSAgICAgICAgICAgIFB1YmxpYyBLZXkgQWxnb3JpdGhtOiByc2FFbmNy
eXB0aW9uCi0gICAgICAgICAgICAgICAgUHVibGljLUtleTogKDIwNDggYml0KQotICAgICAgICAg
ICAgICAgIE1vZHVsdXM6Ci0gICAgICAgICAgICAgICAgICAgIDAwOmQzOjk0OjEwOmI3OjcwOmNm
OjFiOjJiOjFlOjdmOjZjOjIyOjRmOjE1OgotICAgICAgICAgICAgICAgICAgICBiZTpjOTo5NTow
Mzo0NTplMjo3YzoyNjo3ODpkMjo1YjozYzpiNTozYzo4NjoKLSAgICAgICAgICAgICAgICAgICAg
YWM6YWI6YmE6ZTk6YzE6Mjg6OTE6ODM6YTc6Mjg6OTI6MjY6Nzk6MDA6YzI6Ci0gICAgICAgICAg
ICAgICAgICAgIGJkOmU2OmVmOmJiOjZiOmQ3OmZhOjJlOjM5OmZhOjE2OmM4OmU1OjI0OjhlOgot
ICAgICAgICAgICAgICAgICAgICA2ZTplOTpiMToxNTo4MzphYjo5ODo1Njo5OTo0Mjo0OTo0ZDo1
ZDoxNjozYToKLSAgICAgICAgICAgICAgICAgICAgMjg6ZmU6NGQ6MmU6Mjk6MWE6M2M6Nzg6Nzg6
MDk6YWE6NzM6MjY6NjI6YzI6Ci0gICAgICAgICAgICAgICAgICAgIGE1OjJjOjQ4OjkyOjY1OjEy
OjcwOjdlOjNmOjdlOmM3OmM0OmVhOjBhOmM4OgotICAgICAgICAgICAgICAgICAgICA2MDplZjo2
YTpiMDo2NTpkYzpkYToxMDozMTpjOTo4ODozYTo1NjozNTpmZDoKLSAgICAgICAgICAgICAgICAg
ICAgODU6YmQ6MTE6YTQ6NTE6N2Q6N2Y6NzE6NWY6MTY6Mzg6NjQ6MDY6Nzg6MjU6Ci0gICAgICAg
ICAgICAgICAgICAgIDNiOjE1OmUxOmE2OjE5OjJmOjdiOmZmOjkyOjExOmFkOjBlOjYwOjFhOmQ0
OgotICAgICAgICAgICAgICAgICAgICA2MTo4ZTo0Njo0NTowMDo5Yjo3YjpjNjoxZjo1YjowZTpi
Yjo5ZDo2YzpmZDoKLSAgICAgICAgICAgICAgICAgICAgN2E6Mjk6OTY6ODI6MjU6M2Q6ZDU6MTk6
ODA6Yjc6MzA6NmU6NjE6MmE6MWY6Ci0gICAgICAgICAgICAgICAgICAgIGNiOjUwOmRjOmFjOmY0
OmZmOjRiOjAyOjY3OjYwOjU4OjA0OjE3OmI2OjY5OgotICAgICAgICAgICAgICAgICAgICA5Mzo5
MzpjODo5MjpmODphMDo1ZTpmMTo1NjpmZDplODoyNDoyMTpiZDpmNDoKLSAgICAgICAgICAgICAg
ICAgICAgYmU6ZDQ6ZWU6MWY6ZGY6NmU6ZDM6NGQ6NTU6MWI6NTg6YzQ6NjY6OWI6OTM6Ci0gICAg
ICAgICAgICAgICAgICAgIGI2OmIyOjEwOmU4OjBlOmZiOjZiOjkwOjRmOmY5OjVmOjk5OjU4OjBh
OmFhOgotICAgICAgICAgICAgICAgICAgICA4ZDo1ZjozOTozMzo3NTo4Mzo0MTo0NTo3MTo1Mzow
YjpmMDo4MTo3NTpkYzoKLSAgICAgICAgICAgICAgICAgICAgNzM6NmQKLSAgICAgICAgICAgICAg
ICBFeHBvbmVudDogNjU1MzcgKDB4MTAwMDEpCi0gICAgICAgIFg1MDl2MyBleHRlbnNpb25zOgot
ICAgICAgICAgICAgWDUwOXYzIEJhc2ljIENvbnN0cmFpbnRzOiAKLSAgICAgICAgICAgICAgICBD
QTpUUlVFCi0gICAgICAgICAgICBYNTA5djMgU3ViamVjdCBLZXkgSWRlbnRpZmllcjogCi0gICAg
ICAgICAgICAgICAgNUI6REE6Qzg6QzE6MDk6RjM6NEQ6OTI6MzA6QkM6RUY6NDM6RkI6MjY6OTM6
MUU6QUU6MEQ6OUE6MEYKLSAgICAgICAgICAgIFg1MDl2MyBBdXRob3JpdHkgS2V5IElkZW50aWZp
ZXI6IAotICAgICAgICAgICAgICAgIGtleWlkOjVCOkRBOkM4OkMxOjA5OkYzOjREOjkyOjMwOkJD
OkVGOjQzOkZCOjI2OjkzOjFFOkFFOjBEOjlBOjBGCi0gICAgICAgICAgICAgICAgRGlyTmFtZTov
Q049d2ViLXBsYXRmb3JtLXRlc3RzCi0gICAgICAgICAgICAgICAgc2VyaWFsOjBCOjdGOjk4Ci0K
LSAgICAgICAgICAgIFg1MDl2MyBLZXkgVXNhZ2U6IAotICAgICAgICAgICAgICAgIENlcnRpZmlj
YXRlIFNpZ24KLSAgICAgICAgICAgIFg1MDl2MyBFeHRlbmRlZCBLZXkgVXNhZ2U6IAotICAgICAg
ICAgICAgICAgIFRMUyBXZWIgU2VydmVyIEF1dGhlbnRpY2F0aW9uCi0gICAgU2lnbmF0dXJlIEFs
Z29yaXRobTogc2hhMjU2V2l0aFJTQUVuY3J5cHRpb24KLSAgICAgICAgIDk3OmUzOmYwOmI5OjYz
OjA3OmU1OmRlOmQ5OjFmOjdmOmRlOmJlOmY4OmU0Ojk4OmQ2OjI1OgotICAgICAgICAgOTc6ZTk6
ZDM6YWQ6N2M6NmQ6MzA6N2Q6MGQ6OGU6YzU6OWI6ZWY6ZWI6YTg6YzU6NTk6YjI6Ci0gICAgICAg
ICAyYzo3MzowODo0NjoyMjphYjpmNzo2MTowMToxOTo5ZTowMDowYzo3MjpiYzoyYTpiZDo4NjoK
LSAgICAgICAgIDExOjFmOjNkOjgwOmFhOjE5OjU4OjZmOmNkOjA1OmI2OjVhOjI3OmZmOjJlOjM5
OjFhOjQ0OgotICAgICAgICAgMDg6YTI6ZTg6YTY6ZTI6MmM6MDM6NTI6MmY6NjM6NmI6M2E6M2I6
OTM6YzY6Yjg6NTM6Y2Q6Ci0gICAgICAgICBmNDplYzo2Mzo1YzoyNDo1YTo2NTphNDplMzo5Mzo5
ZTo5NjpmMDowMDpjZjo4MjpmYzpkYzoKLSAgICAgICAgIDI4OjE4Ojg2OmYxOmEyOjdlOjc4Ojgw
OjlmOmY0OjExOmIxOjhlOmM4OjEwOmI1OjE4OjlkOgotICAgICAgICAgZmQ6OWU6OGE6Y2I6NmQ6
OGU6MTU6MjI6M2I6MWY6MGQ6Nzk6NTM6YmQ6MmI6Zjc6ZDA6MDk6Ci0gICAgICAgICAyYTphNjph
OTpmMTozZTo0YzpkMDphYTo4MTphZToyYjozNDpiMDo1MjoxNjpkMDo3ODplMjoKLSAgICAgICAg
IDI1OmMxOmUyOjkyOjQ3OjFiOjJmOmE2OmEyOjI5OjZmOjg3OjlhOjNjOjVkOjQ0OmIwOjhmOgot
ICAgICAgICAgOTU6M2M6ZTc6YWQ6ZDE6ODM6MWM6Mzg6Yjc6M2Q6ODU6MmI6Yjg6ZGM6NDU6ODE6
YmE6NzE6Ci0gICAgICAgICBhNzoxYzo5Njo5YjpjMTozODozZTphOTphNjpjNzozODo3MTo0ZDoz
Nzo2ZTpjYTpiODplODoKLSAgICAgICAgIGFiOmNjOjA3OjRlOjIxOjQzOjg4OjIxOmMwOjQ5OjEx
OjllOmQ2OmM0OjEzOjJjOjU3Ojc1OgotICAgICAgICAgMWQ6OGU6NTQ6MWY6NjM6OWE6NDY6MTk6
NTI6NDA6YzU6MWU6MmM6Mzg6ZDI6Yjg6NjI6NDM6Ci0gICAgICAgICBhNTo4NDpjODplNAogLS0t
LS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCi1NSUlEVXpDQ0FqdWdBd0lCQWdJREMzK1lNQTBHQ1Nx
R1NJYjNEUUVCQ3dVQU1CMHhHekFaQmdOVkJBTU1FbmRsCi1ZaTF3YkdGMFptOXliUzEwWlhOMGN6
QWVGdzB4T0RBM01UTXhNalU1TVRKYUZ3MHlPREEzTVRBeE1qVTVNVEphCitNSUlXNXpDQ0ZjK2dB
d0lCQWdJREJiRkhNQTBHQ1NxR1NJYjNEUUVCQ3dVQU1CMHhHekFaQmdOVkJBTU1FbmRsCitZaTF3
YkdGMFptOXliUzEwWlhOMGN6QWVGdzB4T1RFd01UUXhNelE1TWpsYUZ3MHlPVEV3TVRFeE16UTVN
amxhCiBNQjB4R3pBWkJnTlZCQU1NRW5kbFlpMXdiR0YwWm05eWJTMTBaWE4wY3pDQ0FTSXdEUVlK
S29aSWh2Y05BUUVCCi1CUUFEZ2dFUEFEQ0NBUW9DZ2dFQkFOT1VFTGR3enhzckhuOXNJazhWdnNt
VkEwWGlmQ1o0MGxzOHRUeUdyS3U2Ci02Y0Vva1lPbktKSW1lUURDdmVidnUydlgraTQ1K2hiSTVT
U09idW14RllPcm1GYVpRa2xOWFJZNktQNU5MaWthCi1QSGg0Q2FwekptTENwU3hJa21VU2NINC9m
c2ZFNmdySVlPOXFzR1hjMmhBeHlZZzZWalg5aGIwUnBGRjlmM0ZmCi1GamhrQm5nbE94WGhwaGt2
ZS8rU0VhME9ZQnJVWVk1R1JRQ2JlOFlmV3c2N25XejllaW1XZ2lVOTFSbUF0ekJ1Ci1ZU29meTFE
Y3JQVC9Td0puWUZnRUY3WnBrNVBJa3ZpZ1h2RlcvZWdrSWIzMHZ0VHVIOTl1MDAxVkcxakVacHVU
Ci10cklRNkE3N2E1QlArVitaV0FxcWpWODVNM1dEUVVWeFV3dndnWFhjYzIwQ0F3RUFBYU9CbXpD
Qm1EQU1CZ05WCi1IUk1FQlRBREFRSC9NQjBHQTFVZERnUVdCQlJiMnNqQkNmTk5rakM4NzBQN0pw
TWVyZzJhRHpCSEJnTlZIU01FCi1RREErZ0JSYjJzakJDZk5Oa2pDODcwUDdKcE1lcmcyYUQ2RWhw
Qjh3SFRFYk1Ca0dBMVVFQXd3U2QyVmlMWEJzCi1ZWFJtYjNKdExYUmxjM1J6Z2dNTGY1Z3dDd1lE
VlIwUEJBUURBZ0lFTUJNR0ExVWRKUVFNTUFvR0NDc0dBUVVGCi1Cd01CTUEwR0NTcUdTSWIzRFFF
QkN3VUFBNElCQVFDWDQvQzVZd2ZsM3RrZmY5NisrT1NZMWlXWDZkT3RmRzB3Ci1mUTJPeFp2djY2
akZXYklzY3doR0lxdjNZUUVabmdBTWNyd3F2WVlSSHoyQXFobFliODBGdGxvbi95NDVHa1FJCi1v
dWltNGl3RFVpOWphem83azhhNFU4MzA3R05jSkZwbHBPT1RucGJ3QU0rQy9Od29HSWJ4b241NGdK
LzBFYkdPCi15QkMxR0ozOW5vckxiWTRWSWpzZkRYbFR2U3YzMEFrcXBxbnhQa3pRcW9HdUt6U3dV
aGJRZU9JbHdlS1NSeHN2Ci1wcUlwYjRlYVBGMUVzSStWUE9ldDBZTWNPTGM5aFN1NDNFV0J1bkdu
SEphYndUZytxYWJIT0hGTk4yN0t1T2lyCi16QWRPSVVPSUljQkpFWjdXeEJNc1YzVWRqbFFmWTVw
R0dWSkF4UjRzT05LNFlrT2xoTWprCitCUUFEZ2dFUEFEQ0NBUW9DZ2dFQkFOUUkxMHZ5dFBONUc4
bTZjV2VQWkxIWWdCSUpzV2ZqeDJOV2svV0ZFTG9jCitEblV2MnpScDVFMjdBaHhFSko2YzZKR3Ur
M1dqVDdsK2ZHeWtvSzFSd09uNE9pL0tOSm5ERTJYZVNqUUgvYXdQCitNaTJqMGhBaXZUdkNYbm9t
VFhuM2NxY1RrcmFwY0RYVjErV1VTYWViSncrOHdITG9KVVdJYmVVN0tMVmdYc2NmCitoTEdCUUI2
cC91UWV3em1tYjFiVWJpekYzR25iRnhTYkZna0szVHRmOU5wSHFxUnRnVUFhWnRQOWVkYS9rUlA3
CitqMGlJUW5jQ3lod1VNY0VnLzlZc0tlTE9TVUd6TGpVU0NKcU9JdlVMblF3UkJZaklFd3VpMDBx
ZENocVY4Y2h6CitLYmszMmRqNnZMRnMzdDdQK3hvai9KalpYWmlXUUZUekZTVmpwUzVBN01FQ0F3
RUFBYU9DRkM0d2doUXFNQXdHCitBMVVkRXdRRk1BTUJBZjh3SFFZRFZSME9CQllFRkVGSi80eG1V
RitIb1Fhb3U2dUszWE1ORGpjYU1FY0dBMVVkCitJd1JBTUQ2QUZFRkovNHhtVUYrSG9RYW91NnVL
M1hNTkRqY2FvU0drSHpBZE1Sc3dHUVlEVlFRRERCSjNaV0l0CitjR3hoZEdadmNtMHRkR1Z6ZEhP
Q0F3V3hSekFMQmdOVkhROEVCQU1DQWdRd2dnb0ZCZ05WSFI0RWdnbjhNSUlKCisrS0NDQ2ZRd0U0
SVJkMlZpTFhCc1lYUm1iM0p0TG5SbGMzUXdGNElWYm05MExYZGxZaTF3YkdGMFptOXliUzUwCita
WE4wTUJlQ0ZYZDNkeTUzWldJdGNHeGhkR1p2Y20wdWRHVnpkREFZZ2haM2QzY3hMbmRsWWkxd2JH
RjBabTl5CitiUzUwWlhOME1CaUNGbmQzZHpJdWQyVmlMWEJzWVhSbWIzSnRMblJsYzNRd0c0SVpk
M2QzTG01dmRDMTNaV0l0CitjR3hoZEdadmNtMHVkR1Z6ZERBYmdobDNkM2N1ZDNkM0xuZGxZaTF3
YkdGMFptOXliUzUwWlhOME1CeUNHbmQzCitkekl1Ym05MExYZGxZaTF3YkdGMFptOXliUzUwWlhO
ME1CeUNHbmQzZHpFdWJtOTBMWGRsWWkxd2JHRjBabTl5CitiUzUwWlhOME1CeUNHbmQzZHk1M2Qz
Y3lMbmRsWWkxd2JHRjBabTl5YlM1MFpYTjBNQnlDR25kM2R6SXVkM2QzCitMbmRsWWkxd2JHRjBa
bTl5YlM1MFpYTjBNQnlDR25kM2R6RXVkM2QzTG5kbFlpMXdiR0YwWm05eWJTNTBaWE4wCitNQnlD
R25kM2R5NTNkM2N4TG5kbFlpMXdiR0YwWm05eWJTNTBaWE4wTUIyQ0czZDNkekV1ZDNkM01TNTNa
V0l0CitjR3hoZEdadmNtMHVkR1Z6ZERBZGdodDNkM2N4TG5kM2R6SXVkMlZpTFhCc1lYUm1iM0p0
TG5SbGMzUXdIWUliCitkM2QzTWk1M2QzY3lMbmRsWWkxd2JHRjBabTl5YlM1MFpYTjBNQjJDRzNk
M2R6SXVkM2QzTVM1M1pXSXRjR3hoCitkR1p2Y20wdWRHVnpkREFmZ2gxM2QzY3VkM2QzTG01dmRD
MTNaV0l0Y0d4aGRHWnZjbTB1ZEdWemREQWdnaDUzCitkM2N1ZDNkM01pNXViM1F0ZDJWaUxYQnNZ
WFJtYjNKdExuUmxjM1F3SUlJZWQzZDNNUzUzZDNjdWJtOTBMWGRsCitZaTF3YkdGMFptOXliUzUw
WlhOME1DQ0NIbmh1TFMxc2RtVXRObXhoWkM1M1pXSXRjR3hoZEdadmNtMHVkR1Z6CitkREFnZ2g1
M2QzY3VkM2QzTVM1dWIzUXRkMlZpTFhCc1lYUm1iM0p0TG5SbGMzUXdJSUllZDNkM01pNTNkM2N1
CitibTkwTFhkbFlpMXdiR0YwWm05eWJTNTBaWE4wTUNHQ0gzZDNkekl1ZDNkM01pNXViM1F0ZDJW
aUxYQnNZWFJtCitiM0p0TG5SbGMzUXdJWUlmZDNkM01pNTNkM2N4TG01dmRDMTNaV0l0Y0d4aGRH
WnZjbTB1ZEdWemREQWhnaDkzCitkM2N4TG5kM2R6RXVibTkwTFhkbFlpMXdiR0YwWm05eWJTNTBa
WE4wTUNHQ0gzZDNkekV1ZDNkM01pNXViM1F0CitkMlZpTFhCc1lYUm1iM0p0TG5SbGMzUXdKSUlp
ZUc0dExXeDJaUzAyYkdGa0xuZDNkeTUzWldJdGNHeGhkR1p2CitjbTB1ZEdWemREQWtnaUozZDNj
dWVHNHRMV3gyWlMwMmJHRmtMbmRsWWkxd2JHRjBabTl5YlM1MFpYTjBNQ1NDCitJbmh1TFMxc2Rt
VXRObXhoWkM1dWIzUXRkMlZpTFhCc1lYUm1iM0p0TG5SbGMzUXdKWUlqZUc0dExXeDJaUzAyCiti
R0ZrTG5kM2R6RXVkMlZpTFhCc1lYUm1iM0p0TG5SbGMzUXdKWUlqZDNkM01pNTRiaTB0YkhabExU
WnNZV1F1CitkMlZpTFhCc1lYUm1iM0p0TG5SbGMzUXdKWUlqZDNkM01TNTRiaTB0YkhabExUWnNZ
V1F1ZDJWaUxYQnNZWFJtCitiM0p0TG5SbGMzUXdKWUlqZUc0dExXeDJaUzAyYkdGa0xuZDNkekl1
ZDJWaUxYQnNZWFJtYjNKdExuUmxjM1F3CitLSUltZUc0dExXeDJaUzAyYkdGa0xuZDNkeTV1YjNR
dGQyVmlMWEJzWVhSbWIzSnRMblJsYzNRd0tJSW1kM2QzCitMbmh1TFMxc2RtVXRObXhoWkM1dWIz
UXRkMlZpTFhCc1lYUm1iM0p0TG5SbGMzUXdLWUluZUc0dExXeDJaUzAyCitiR0ZrTG5kM2R6RXVi
bTkwTFhkbFlpMXdiR0YwWm05eWJTNTBaWE4wTUNtQ0ozZDNkekl1ZUc0dExXeDJaUzAyCitiR0Zr
TG01dmRDMTNaV0l0Y0d4aGRHWnZjbTB1ZEdWemREQXBnaWQzZDNjeExuaHVMUzFzZG1VdE5teGha
QzV1CitiM1F0ZDJWaUxYQnNZWFJtYjNKdExuUmxjM1F3S1lJbmVHNHRMV3gyWlMwMmJHRmtMbmQz
ZHpJdWJtOTBMWGRsCitZaTF3YkdGMFptOXliUzUwWlhOME1DdUNLWGh1TFMxdU9HbzJaSE0xTTJ4
M2QydHljV2gyTWpoaExuZGxZaTF3CitiR0YwWm05eWJTNTBaWE4wTUMyQ0szaHVMUzFzZG1VdE5t
eGhaQzU0YmkwdGJIWmxMVFpzWVdRdWQyVmlMWEJzCitZWFJtYjNKdExuUmxjM1F3TDRJdGVHNHRM
VzQ0YWpaa2N6VXpiSGQzYTNKeGFIWXlPR0V1Ym05MExYZGxZaTF3CitiR0YwWm05eWJTNTBaWE4w
TUMrQ0xYaHVMUzF1T0dvMlpITTFNMngzZDJ0eWNXaDJNamhoTG5kM2R5NTNaV0l0CitjR3hoZEda
dmNtMHVkR1Z6ZERBdmdpMTNkM2N1ZUc0dExXNDRhalprY3pVemJIZDNhM0p4YUhZeU9HRXVkMlZp
CitMWEJzWVhSbWIzSnRMblJsYzNRd01JSXVkM2QzTVM1NGJpMHRiamhxTm1Sek5UTnNkM2RyY25G
b2RqSTRZUzUzCitaV0l0Y0d4aGRHWnZjbTB1ZEdWemREQXdnaTU0YmkwdGJqaHFObVJ6TlROc2Qz
ZHJjbkZvZGpJNFlTNTNkM2N4CitMbmRsWWkxd2JHRjBabTl5YlM1MFpYTjBNRENDTG5kM2R6SXVl
RzR0TFc0NGFqWmtjelV6YkhkM2EzSnhhSFl5CitPR0V1ZDJWaUxYQnNZWFJtYjNKdExuUmxjM1F3
TUlJdWVHNHRMVzQ0YWpaa2N6VXpiSGQzYTNKeGFIWXlPR0V1CitkM2QzTWk1M1pXSXRjR3hoZEda
dmNtMHVkR1Z6ZERBeGdpOTRiaTB0YkhabExUWnNZV1F1ZUc0dExXeDJaUzAyCitiR0ZrTG01dmRD
MTNaV0l0Y0d4aGRHWnZjbTB1ZEdWemREQXpnakY0YmkwdGJqaHFObVJ6TlROc2QzZHJjbkZvCitk
akk0WVM1M2QzY3VibTkwTFhkbFlpMXdiR0YwWm05eWJTNTBaWE4wTURPQ01YZDNkeTU0YmkwdGJq
aHFObVJ6CitOVE5zZDNkcmNuRm9kakk0WVM1dWIzUXRkMlZpTFhCc1lYUm1iM0p0TG5SbGMzUXdO
SUl5ZDNkM01TNTRiaTB0CitiamhxTm1Sek5UTnNkM2RyY25Gb2RqSTRZUzV1YjNRdGQyVmlMWEJz
WVhSbWIzSnRMblJsYzNRd05JSXllRzR0CitMVzQ0YWpaa2N6VXpiSGQzYTNKeGFIWXlPR0V1ZDNk
M01pNXViM1F0ZDJWaUxYQnNZWFJtYjNKdExuUmxjM1F3CitOSUl5ZUc0dExXNDRhalprY3pVemJI
ZDNhM0p4YUhZeU9HRXVkM2QzTVM1dWIzUXRkMlZpTFhCc1lYUm1iM0p0CitMblJsYzNRd05JSXlk
M2QzTWk1NGJpMHRiamhxTm1Sek5UTnNkM2RyY25Gb2RqSTRZUzV1YjNRdGQyVmlMWEJzCitZWFJt
YjNKdExuUmxjM1F3T0lJMmVHNHRMVzQ0YWpaa2N6VXpiSGQzYTNKeGFIWXlPR0V1ZUc0dExXeDJa
UzAyCitiR0ZrTG5kbFlpMXdiR0YwWm05eWJTNTBaWE4wTURpQ05uaHVMUzFzZG1VdE5teGhaQzU0
YmkwdGJqaHFObVJ6CitOVE5zZDNkcmNuRm9kakk0WVM1M1pXSXRjR3hoZEdadmNtMHVkR1Z6ZERB
OGdqcDRiaTB0YkhabExUWnNZV1F1CitlRzR0TFc0NGFqWmtjelV6YkhkM2EzSnhhSFl5T0dFdWJt
OTBMWGRsWWkxd2JHRjBabTl5YlM1MFpYTjBNRHlDCitPbmh1TFMxdU9HbzJaSE0xTTJ4M2QydHlj
V2gyTWpoaExuaHVMUzFzZG1VdE5teGhaQzV1YjNRdGQyVmlMWEJzCitZWFJtYjNKdExuUmxjM1F3
UTRKQmVHNHRMVzQ0YWpaa2N6VXpiSGQzYTNKeGFIWXlPR0V1ZUc0dExXNDRhalprCitjelV6Ykhk
M2EzSnhhSFl5T0dFdWQyVmlMWEJzWVhSbWIzSnRMblJsYzNRd1I0SkZlRzR0TFc0NGFqWmtjelV6
CitiSGQzYTNKeGFIWXlPR0V1ZUc0dExXNDRhalprY3pVemJIZDNhM0p4YUhZeU9HRXVibTkwTFhk
bFlpMXdiR0YwCitabTl5YlM1MFpYTjBNQk1HQTFVZEpRUU1NQW9HQ0NzR0FRVUZCd01CTUlJSmhR
WURWUjBSQklJSmZEQ0NDWGlDCitFWGRsWWkxd2JHRjBabTl5YlM1MFpYTjBnaFZ1YjNRdGQyVmlM
WEJzWVhSbWIzSnRMblJsYzNTQ0ZYZDNkeTUzCitaV0l0Y0d4aGRHWnZjbTB1ZEdWemRJSVdkM2Qz
TVM1M1pXSXRjR3hoZEdadmNtMHVkR1Z6ZElJV2QzZDNNaTUzCitaV0l0Y0d4aGRHWnZjbTB1ZEdW
emRJSVpkM2QzTG01dmRDMTNaV0l0Y0d4aGRHWnZjbTB1ZEdWemRJSVpkM2QzCitMbmQzZHk1M1pX
SXRjR3hoZEdadmNtMHVkR1Z6ZElJYWQzZDNNaTV1YjNRdGQyVmlMWEJzWVhSbWIzSnRMblJsCitj
M1NDR25kM2R6RXVibTkwTFhkbFlpMXdiR0YwWm05eWJTNTBaWE4wZ2hwM2QzY3VkM2QzTWk1M1pX
SXRjR3hoCitkR1p2Y20wdWRHVnpkSUlhZDNkM01pNTNkM2N1ZDJWaUxYQnNZWFJtYjNKdExuUmxj
M1NDR25kM2R6RXVkM2QzCitMbmRsWWkxd2JHRjBabTl5YlM1MFpYTjBnaHAzZDNjdWQzZDNNUzUz
WldJdGNHeGhkR1p2Y20wdWRHVnpkSUliCitkM2QzTVM1M2QzY3hMbmRsWWkxd2JHRjBabTl5YlM1
MFpYTjBnaHQzZDNjeExuZDNkekl1ZDJWaUxYQnNZWFJtCitiM0p0TG5SbGMzU0NHM2QzZHpJdWQz
ZDNNaTUzWldJdGNHeGhkR1p2Y20wdWRHVnpkSUliZDNkM01pNTNkM2N4CitMbmRsWWkxd2JHRjBa
bTl5YlM1MFpYTjBnaDEzZDNjdWQzZDNMbTV2ZEMxM1pXSXRjR3hoZEdadmNtMHVkR1Z6CitkSUll
ZDNkM0xuZDNkekl1Ym05MExYZGxZaTF3YkdGMFptOXliUzUwWlhOMGdoNTNkM2N4TG5kM2R5NXVi
M1F0CitkMlZpTFhCc1lYUm1iM0p0TG5SbGMzU0NIbmh1TFMxc2RtVXRObXhoWkM1M1pXSXRjR3ho
ZEdadmNtMHVkR1Z6CitkSUllZDNkM0xuZDNkekV1Ym05MExYZGxZaTF3YkdGMFptOXliUzUwWlhO
MGdoNTNkM2N5TG5kM2R5NXViM1F0CitkMlZpTFhCc1lYUm1iM0p0TG5SbGMzU0NIM2QzZHpJdWQz
ZDNNaTV1YjNRdGQyVmlMWEJzWVhSbWIzSnRMblJsCitjM1NDSDNkM2R6SXVkM2QzTVM1dWIzUXRk
MlZpTFhCc1lYUm1iM0p0TG5SbGMzU0NIM2QzZHpFdWQzZDNNUzV1CitiM1F0ZDJWaUxYQnNZWFJt
YjNKdExuUmxjM1NDSDNkM2R6RXVkM2QzTWk1dWIzUXRkMlZpTFhCc1lYUm1iM0p0CitMblJsYzNT
Q0luaHVMUzFzZG1VdE5teGhaQzUzZDNjdWQyVmlMWEJzWVhSbWIzSnRMblJsYzNTQ0luZDNkeTU0
CitiaTB0YkhabExUWnNZV1F1ZDJWaUxYQnNZWFJtYjNKdExuUmxjM1NDSW5odUxTMXNkbVV0Tm14
aFpDNXViM1F0CitkMlZpTFhCc1lYUm1iM0p0TG5SbGMzU0NJM2h1TFMxc2RtVXRObXhoWkM1M2Qz
Y3hMbmRsWWkxd2JHRjBabTl5CitiUzUwWlhOMGdpTjNkM2N5TG5odUxTMXNkbVV0Tm14aFpDNTNa
V0l0Y0d4aGRHWnZjbTB1ZEdWemRJSWpkM2QzCitNUzU0YmkwdGJIWmxMVFpzWVdRdWQyVmlMWEJz
WVhSbWIzSnRMblJsYzNTQ0kzaHVMUzFzZG1VdE5teGhaQzUzCitkM2N5TG5kbFlpMXdiR0YwWm05
eWJTNTBaWE4wZ2laNGJpMHRiSFpsTFRac1lXUXVkM2QzTG01dmRDMTNaV0l0CitjR3hoZEdadmNt
MHVkR1Z6ZElJbWQzZDNMbmh1TFMxc2RtVXRObXhoWkM1dWIzUXRkMlZpTFhCc1lYUm1iM0p0CitM
blJsYzNTQ0ozaHVMUzFzZG1VdE5teGhaQzUzZDNjeExtNXZkQzEzWldJdGNHeGhkR1p2Y20wdWRH
VnpkSUluCitkM2QzTWk1NGJpMHRiSFpsTFRac1lXUXVibTkwTFhkbFlpMXdiR0YwWm05eWJTNTBa
WE4wZ2lkM2QzY3hMbmh1CitMUzFzZG1VdE5teGhaQzV1YjNRdGQyVmlMWEJzWVhSbWIzSnRMblJs
YzNTQ0ozaHVMUzFzZG1VdE5teGhaQzUzCitkM2N5TG01dmRDMTNaV0l0Y0d4aGRHWnZjbTB1ZEdW
emRJSXBlRzR0TFc0NGFqWmtjelV6YkhkM2EzSnhhSFl5CitPR0V1ZDJWaUxYQnNZWFJtYjNKdExu
UmxjM1NDSzNodUxTMXNkbVV0Tm14aFpDNTRiaTB0YkhabExUWnNZV1F1CitkMlZpTFhCc1lYUm1i
M0p0TG5SbGMzU0NMWGh1TFMxdU9HbzJaSE0xTTJ4M2QydHljV2gyTWpoaExtNXZkQzEzCitaV0l0
Y0d4aGRHWnZjbTB1ZEdWemRJSXRlRzR0TFc0NGFqWmtjelV6YkhkM2EzSnhhSFl5T0dFdWQzZDNM
bmRsCitZaTF3YkdGMFptOXliUzUwWlhOMGdpMTNkM2N1ZUc0dExXNDRhalprY3pVemJIZDNhM0p4
YUhZeU9HRXVkMlZpCitMWEJzWVhSbWIzSnRMblJsYzNTQ0xuZDNkekV1ZUc0dExXNDRhalprY3pV
emJIZDNhM0p4YUhZeU9HRXVkMlZpCitMWEJzWVhSbWIzSnRMblJsYzNTQ0xuaHVMUzF1T0dvMlpI
TTFNMngzZDJ0eWNXaDJNamhoTG5kM2R6RXVkMlZpCitMWEJzWVhSbWIzSnRMblJsYzNTQ0xuZDNk
ekl1ZUc0dExXNDRhalprY3pVemJIZDNhM0p4YUhZeU9HRXVkMlZpCitMWEJzWVhSbWIzSnRMblJs
YzNTQ0xuaHVMUzF1T0dvMlpITTFNMngzZDJ0eWNXaDJNamhoTG5kM2R6SXVkMlZpCitMWEJzWVhS
bWIzSnRMblJsYzNTQ0wzaHVMUzFzZG1VdE5teGhaQzU0YmkwdGJIWmxMVFpzWVdRdWJtOTBMWGRs
CitZaTF3YkdGMFptOXliUzUwWlhOMGdqRjRiaTB0YmpocU5tUnpOVE5zZDNkcmNuRm9kakk0WVM1
M2QzY3VibTkwCitMWGRsWWkxd2JHRjBabTl5YlM1MFpYTjBnakYzZDNjdWVHNHRMVzQ0YWpaa2N6
VXpiSGQzYTNKeGFIWXlPR0V1CitibTkwTFhkbFlpMXdiR0YwWm05eWJTNTBaWE4wZ2pKM2QzY3hM
bmh1TFMxdU9HbzJaSE0xTTJ4M2QydHljV2gyCitNamhoTG01dmRDMTNaV0l0Y0d4aGRHWnZjbTB1
ZEdWemRJSXllRzR0TFc0NGFqWmtjelV6YkhkM2EzSnhhSFl5CitPR0V1ZDNkM01pNXViM1F0ZDJW
aUxYQnNZWFJtYjNKdExuUmxjM1NDTW5odUxTMXVPR28yWkhNMU0yeDNkMnR5CitjV2gyTWpoaExu
ZDNkekV1Ym05MExYZGxZaTF3YkdGMFptOXliUzUwWlhOMGdqSjNkM2N5TG5odUxTMXVPR28yCita
SE0xTTJ4M2QydHljV2gyTWpoaExtNXZkQzEzWldJdGNHeGhkR1p2Y20wdWRHVnpkSUkyZUc0dExX
NDRhalprCitjelV6YkhkM2EzSnhhSFl5T0dFdWVHNHRMV3gyWlMwMmJHRmtMbmRsWWkxd2JHRjBa
bTl5YlM1MFpYTjBnalo0CitiaTB0YkhabExUWnNZV1F1ZUc0dExXNDRhalprY3pVemJIZDNhM0p4
YUhZeU9HRXVkMlZpTFhCc1lYUm1iM0p0CitMblJsYzNTQ09uaHVMUzFzZG1VdE5teGhaQzU0Ymkw
dGJqaHFObVJ6TlROc2QzZHJjbkZvZGpJNFlTNXViM1F0CitkMlZpTFhCc1lYUm1iM0p0TG5SbGMz
U0NPbmh1TFMxdU9HbzJaSE0xTTJ4M2QydHljV2gyTWpoaExuaHVMUzFzCitkbVV0Tm14aFpDNXVi
M1F0ZDJWaUxYQnNZWFJtYjNKdExuUmxjM1NDUVhodUxTMXVPR28yWkhNMU0yeDNkMnR5CitjV2gy
TWpoaExuaHVMUzF1T0dvMlpITTFNMngzZDJ0eWNXaDJNamhoTG5kbFlpMXdiR0YwWm05eWJTNTBa
WE4wCitna1Y0YmkwdGJqaHFObVJ6TlROc2QzZHJjbkZvZGpJNFlTNTRiaTB0YmpocU5tUnpOVE5z
ZDNkcmNuRm9kakk0CitZUzV1YjNRdGQyVmlMWEJzWVhSbWIzSnRMblJsYzNRd0RRWUpLb1pJaHZj
TkFRRUxCUUFEZ2dFQkFIWGlxMXZBCit4amM4aWozNGk0Yis4aW5WQlZ3VFd5SHRjemxabklRVEN4
cUpDRGs4M3B6OFFGSEd5SFl6K2RiMzZVNll3SGFrCitJM0hZaGlwUE1CMVZubEhrTUE2eEZ1Wkwv
YUZXeXdMTlU5blRtYUFWMGZQL1I1azl2dDhBRW0wWm1FV2tOWXRMCitvcGN5MHJxakFhWFRJV2Vz
OTFPWmZuaVRGUURITWl1cks4VnErZnEvT3p3K1lRYlJiVTFLbEhDTmF5aXN2UWE0CitUTE8rRGpN
UjBoekRUM0RIRXdQSkxQWWFhNlJuSXdvOHp2Q3FrMFpSUEF4ZXVsZEFlL3UxUHp0ZVhSekVIVEFF
CitETVZMTXdNNzUyYkxGdWZ2MUdSQ1pOSEVMWkt5aFVvRnJQMzBBcUU3cjNwbndRUlc4S2RpZDM4
SU1vN3U5RGVtCit1NS90SGVmUEtEN2JtL1k9CiAtLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL2NlcnRzL2NvbmZpZy5qc29uIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy9jZXJ0cy9jb25maWcuanNvbgpuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40YTM3YzEzYzEy
ZjMzM2Q0MTZkYTlhZjgwMDAxOTFhZDYyMTcyOWZlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9jZXJ0cy9jb25maWcu
anNvbgpAQCAtMCwwICsxLDE3IEBACit7CisgICAgInBvcnRzIjogeworICAgICAgICAiaHR0cCI6
IFtdLAorICAgICAgICAiaHR0cHMiOiBbImF1dG8iXSwKKyAgICAgICAgIndzIjogW10sCisgICAg
ICAgICJ3c3MiOiBbXQorICAgIH0sCisgICAgImNoZWNrX3N1YmRvbWFpbnMiOiBmYWxzZSwKKyAg
ICAic3NsIjogeworICAgICAgICAidHlwZSI6ICJvcGVuc3NsIiwKKyAgICAgICAgIm9wZW5zc2wi
OiB7CisgICAgICAgICAgICAiZHVyYXRpb24iOiAzNjUwLAorICAgICAgICAgICAgImZvcmNlX3Jl
Z2VuZXJhdGUiOiB0cnVlLAorICAgICAgICAgICAgImJhc2VfcGF0aCI6ICJ0b29scy9jZXJ0cyIK
KyAgICAgICAgfQorICAgIH0KK30KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvY2VydHMvdzNjLWltcG9ydC5sb2cgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2NlcnRzL3czYy1pbXBv
cnQubG9nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiMDIwNmNhOTc5NTJlMDgwZDQx
NDNkM2MyY2I5NzhiYmI2MjQ5N2FiLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvY2VydHMvdzNjLWltcG9ydC5sb2cKKysrIC9kZXYvbnVsbApAQCAtMSwyMSArMCwwIEBA
Ci1UaGUgdGVzdHMgaW4gdGhpcyBkaXJlY3Rvcnkgd2VyZSBpbXBvcnRlZCBmcm9tIHRoZSBXM0Mg
cmVwb3NpdG9yeS4KLURvIE5PVCBtb2RpZnkgdGhlc2UgdGVzdHMgZGlyZWN0bHkgaW4gV2ViS2l0
LgotSW5zdGVhZCwgY3JlYXRlIGEgcHVsbCByZXF1ZXN0IG9uIHRoZSBXUFQgZ2l0aHViOgotCWh0
dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxhdGZvcm0tdGVzdHMvd3B0Ci0KLVRoZW4gcnVuIHRoZSBU
b29scy9TY3JpcHRzL2ltcG9ydC13M2MtdGVzdHMgaW4gV2ViS2l0IHRvIHJlaW1wb3J0Ci0KLURv
IE5PVCBtb2RpZnkgb3IgcmVtb3ZlIHRoaXMgZmlsZS4KLQotLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1Qcm9w
ZXJ0aWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi1Qcm9wZXJ0eSB2YWx1ZXMg
cmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotTGlzdCBv
ZiBmaWxlczoKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL2NlcnRzL1JFQURNRS5tZAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvY2VydHMvY2FjZXJ0LmtleQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvY2VydHMvY2FjZXJ0LnBlbQotL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvY2VydHMvd2ViLXBsYXRmb3Jt
LnRlc3Qua2V5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy9jZXJ0cy93ZWItcGxhdGZvcm0udGVzdC5wZW0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvY2VydHMvd2ViLXBsYXRmb3Jt
LnRlc3Qua2V5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy9jZXJ0cy93ZWItcGxhdGZvcm0udGVzdC5rZXkKaW5kZXggZjA3NDVhZGJhZTlmOWY1OTY2
YjY5NjM0YWVlNmQyYTkxNmM2OWM5NC4uYjYyYWYyMDhjMzRjYjMxNjdhZTY0MDM4Y2RmZjY5NmYw
NDc4OTNlYiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy9jZXJ0cy93ZWItcGxhdGZvcm0udGVzdC5rZXkKKysrIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9jZXJ0cy93ZWItcGxhdGZv
cm0udGVzdC5rZXkKQEAgLTEsMjggKzEsMjggQEAKIC0tLS0tQkVHSU4gUFJJVkFURSBLRVktLS0t
LQotTUlJRXZRSUJBREFOQmdrcWhraUc5dzBCQVFFRkFBU0NCS2N3Z2dTakFnRUFBb0lCQVFEWVUy
ZzdWZEtPVlR4UAotdUlCMHVCMUpqRHpTdGJVVklqZUJKVUxuV0txMnFyNE9NSTZnbDAvM2dObnBv
ZlRyV0QramxpaTQybHFxRFVIZgotYkIxU3JzM0lGZ0t3Q25DUlYzNmwyeENrL1R2M0J0VzFpV3FT
TnNabXhhYlNiSGIxVDByTGJzT1RMYjdTUDcwVQotcDBvNVd2QVkzRUViY0lCbGdZVkZvNm9aOFA1
VjdSRFpWbXlOVkdsTDNrVUJEMUNoaDljTVF5S2RHMDZ5N0c1MgotNDZ6MndkbXdhZWd3R3JzOTA1
M2pqSEJCZHlJQ1hMRXpLNExlMnJnWTlOS1lHbXJ3b0NSV3FBcnBEQ0xQT0d4RAotbWliMmhkbTFI
MjNreiswNUkxUGJvNDUrSnV0aEcwNWRyTEJDdmg1Y1RoaUFZMndOQ1dnSUJxSDBCQXZETjVMbwot
cWc3RjBVdkJBZ01CQUFFQ2dnRUJBSldzSDlIdDcyRExXSTlQK0pESlVub3dyV1NjbEUycS92dzc2
NjVsaXJnWQotS3FkbXNVZ3JhUWkxL2cvSUhzMDJvZEZ0YzM5eWxJaFQ0OS9SemZnSE9obldJTVhz
Y3pZY2MyUU56ZFpaMzhOcQotMXpKamdYam9yUjB1WTkzemJkc01vWk5mYjdIRlZPSGpkODl5Yjho
L1F0L3doSnVYbXo2Zi9yWFFKMEVMbk8yVgotY3NCYTBXV1JkS05ZU3VEWFhBWHJUbUpzNFBwN05O
V0FvWUJhTW9IUWNIRTl3c04zWG5KZFlZeUFCYnBqNndJUAotN0xYeFVOM09aajRDWTkrYWhDZ3JF
QThORXZDVS9TVWFnRVgwWUc0eitzVitEZmpudXM3dk1ZU3FadjJzZFBOMgotemUwOTIrQVpCRHBk
ak5kTHlyQjZjTUZSaC8yM01hQ0xHSFBHakprQ2RnRUNnWUVBOWJLK05ScVBVcWNSSi9CZAotN1BB
UGkxUExqa2dQNjZ2MG9Yc1c2eWw3Qm54Z2pyVXZvV1VJOS80MGtFdlFEenRJclVGYkxveHduTHRB
S2pRRwotRisydmtEL0RXdDQ1Mlo4YlFYYnh0ZUdMWGtOdHdvOUR3VEJyejRPb25tbnJ4Y09qd3RJ
RXJxRXloTVBSQ2UwdwotS0Z0UkxnSzV4WHgrSmxRTnpSeFk0VFVHamcwQ2dZRUE0V1ZqaXhmaFRm
MXZGcG1maFg0ZXdMYUJyV2NoNGg2eAotd1EzajlNVjkwd05ibm55VDFHcktpUjFYREoxdk44ZW1G
ck5RdmhyMGVPRXVEWTBaWEpKTThQdlBXNitLcW1zTwotcndyZXlRenAvYjFBZHMvcUw3TTA1UkV1
NXk1UlEyek5Xak9iVHZkc1VoL0xtdFV2R1JRbTkyRSt0NGFGejBKZwotalo1QTZvcSt1NFVDZ1lB
dFg4Z2V1SHYxY0tNTGRDbDBZMVVManZzTm1LTlFDNTZPMzlONHRGMWk4ajlHdTVGRAotUmd4aytB
NHZBOEUxdnVZS0VRTE0wdVROSFF1WmY2Z01iVG01OHZ5WjRHWmdtVENJWTNYNTkrQXNGVm5FejM1
YwoteEJ0MDVFU1VsTTBVNWE5dGdDbWJNbXZJOXZ5NHo1UFFNQ1VLMFRnTGo1VWdjTzluaksraFQ1
Q1pWUUtCZ0dabAotVmpTaGM2U25wdWtBZjN6NHorWEN3K1RQL28rb1hCNlZQZU04T1M0OHowbVAx
T1RpWXdLcGhwdGZobUF6M2h0ZgotK1NWMFAyNE85b29IZU9jYU84UWEwWmdZaG9sbk8zT0FIN2Y4
bXV6QUptSVRrSk44K1dHN1RiQ08xVElwWXAxQQotNXFTWU9PaVNNMEF5NjBPY2FSdG5YVU9vNUc5
RSszSTYyOGp4b1RhMUFvR0FRSzNNak4vQnpHNWdYRzNQWDVUVgotdEZZK0syU2dJRDMzZCtTVFJM
VXpBZ09iKzdhcVVPZHdZZkNkaVFzcEVEOUhSa2cvRENMcDdnTnAwMnAxa3NjQgotdy9QV0NNVU8w
MWluSWxqUjRmL1lPK2tJRDhacm92Y2g4ZDhKTEd2TnNZRnpWQVAvY2VZVzYvT01MUUxOR2ZCQwot
eEhwZGowSW0wZTkvV014QzRaRVlmb2M9CitNSUlFdmdJQkFEQU5CZ2txaGtpRzl3MEJBUUVGQUFT
Q0JLZ3dnZ1NrQWdFQUFvSUJBUUNyWlhWWG1PUGxxby8rCisyeGoxNVBnY1pHSEdvL2JvZmlRUTNn
bDZKTDFWWDFHcHRZSU5oVHEyc1VoZk44dENiK2NIeXphcE85b1Vtd3F3CitwNVVwN3RKNElwN3VF
MS93d1N4VmN2Q2F3RzUvUE41aUQ3SDJ3c21FcHBIWE9jM0xsMDg1L2d6ZXMrMStObitxCitBUm1w
MWJGL3ZqcGxENlZkSDJyQlczc0ozREFvQmFvWGxBTWZlUkFGRHBhcWErOWx4TXJNNVdrVUhuZFEr
dUVNCis2a1p5ZXZoeXAwMlhEUDB2THdOQ3RQTEdCMGVtQUFmQzd4cHdSR1ZHU3RFc1VoZi9tYzl5
Tk5hS2dxQktJMG5vCitvVm51VTNSR2RLSFAxOHZjanRCU1YwbFlnamZnOWEwN09CdTFoZ1FmZmhv
ZmkyQnlkZmFDcEJBTXpGaGx1MXV5CitzNmFoVmtKcEFnTUJBQUVDZ2dFQWZtdnp4WTBNYkZjR3Ay
Rk1ZL05qM3UxY0FYem5uazJNcExSaUlTb0FUWHhsCithOXhwOVRjVU83VkFRSnVTM1lwVXlyYmx0
cVpqRVZmYTVycDFsOXlFZWdCdllnUUFmRURBUnJibEtnQk9nS09SCitGSnVuRlBCUVcvdlJEd09m
L0UrN0xIZHJYc2t3b0N2cXRxYmhHeGg0T0ZWRUZVOFpGanNhTDAwZTBBTU5zalpsCiswT3NFT05s
SUg0bkNhN0U2RFRhc0h4YzFWa0hRcjN1dkJsNS80SGZPYzA1dHIrWktsTVlYekFQV2tMMHNDMjE2
CitEcXk0QXhKME0wYXg4QllFWnVvMGdxUW1NQW9uSlRrRW5weW9ENHo4OVM4Nzd2RnA4dzFWUGJH
WWtWNDh5alYvCitJN2ZRNllqdDN5ZythcytzNGFyR0VzVUIwbCtYQXBCWVlZL0orcWNZVVFLQmdR
RGVkN0RPTUpVYzNrUFRGRWNOCitwL0ViU2g5VFh4Uy83NGNJeUdpZDlJRWlSRUpZeFl2OGt6MEtw
bEd1Sm9sSVEzL0lrOVJhYzZCM1R1NFdrVzBnCitUUGJOdW5ZRXN5ZFpCQW5hUTRlQVZkT2Z2UlE2
VjNlQloydkVyc0hKUkZhajVjT2Nlc1VYeEJaSTZtMnRRRVN4CitkQldGRE5HOWt6dHIwSG1hTDZQ
dXo0elpJd0tCZ1FERk94ZlI3RmNwR2R3NjF6aVNzWm10dmtmNmVwa0czK291Cit1aFk1MEowVXJU
Yks3VHVpbWtvUncvWEhlQmU0ZGIrZWpPT3VMRDlRRS95WHZtdEVXdXlVVFRZT1Z2WitIdU5qCitS
cDNrZGkxR3VXWG42Z1J2ZGxrZjlYd1c3akhtZ2twYkE1QSt1RFhzM0VZWWExOEx4UE5mTVN2aHlI
ZGtGblVHCithVHp5WU5wZEF3S0JnR3YvUU5hbjRRdDFud2x1VTV2K2hsNlFHaXI0QW5PMnpSL25Z
bG9qNHppR1dJc053NHBtCisxQUJDZzI1K2lMQ0xEQktNS1UrTHlEK0RFclBqLzB6cDcvb3BaYmVj
WFNLcWdqbnlCR3E1djVWUlRldVFvSlF5CitaNi9BZ3BTNVZ6SVRqV1YrZUFXMGpIanpUVEVJL1JB
RVlab0lnaDE4eHlEc3dNdW9DdllZemJCdkFvR0JBTU0yCitJL053K3l3QkhvdFdyZlh6dHVuU3Bp
ZHk1TGQ3Tkt5ZkhwU0d1SkxZaHB6L2hjRUErVUx3TS9vRUVXWlBsU04yCit5M3QrN0FOMFpOUkVj
cU1yWTNHOW9qMDdNYW5QSkwwRURnOHNNTkFKZktXNGFEOXlZZkJSNTBwQzVEMEV4RmVsCitCVVl1
eWFEd3ZLZzZ6YzQyVjdQbVZVcWFRaUZjWU9QQmtjTk12WlRGQW9HQkFMQnRkdDBpSXZ0Qm9wcCtJ
UWFWCit6Wk1BNVpRSVE1bjV2MDcxTEthMXM3YXIzK2hJb0RSc1piTTdYa1VJQTh6UWxyd0ZSaGJV
NVlGTmNicG9vUVNtCis3ajQrZkl1ZGNweGo5dEFNR0FiNXlnODlrMURqVHk3RlVXTDllbEdJZ3ZK
TXFnRjZJUTUzK3ZSOHh3R0R5UUxCCitzUDVtaXpGMXdpNDdEWVBKUWNEUkN6VSsKIC0tLS0tRU5E
IFBSSVZBVEUgS0VZLS0tLS0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvY2VydHMvd2ViLXBsYXRmb3JtLnRlc3QucGVtIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9jZXJ0cy93ZWIt
cGxhdGZvcm0udGVzdC5wZW0KaW5kZXggYTNhMDIyZTZhYzQ4NWQzZjk2YWU4NTFjMGFkODBlZTk2
OThhMThlNy4uNTk1OTMxNmJiNWI0ODI1ZTY0MGJiMWY3Y2FiMDhiYzlmNDA1YTYzYSAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9j
ZXJ0cy93ZWItcGxhdGZvcm0udGVzdC5wZW0KKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9jZXJ0cy93ZWItcGxhdGZvcm0udGVzdC5wZW0KQEAg
LTEsOTAgKzEsMTMzIEBACiBDZXJ0aWZpY2F0ZToKICAgICBEYXRhOgogICAgICAgICBWZXJzaW9u
OiAzICgweDIpCi0gICAgICAgIFNlcmlhbCBOdW1iZXI6IDc1MzU2MSAoMHhiN2Y5OSkKKyAgICAg
ICAgU2VyaWFsIE51bWJlcjogMzczMDY0ICgweDViMTQ4KQogICAgIFNpZ25hdHVyZSBBbGdvcml0
aG06IHNoYTI1NldpdGhSU0FFbmNyeXB0aW9uCiAgICAgICAgIElzc3VlcjogQ049d2ViLXBsYXRm
b3JtLXRlc3RzCiAgICAgICAgIFZhbGlkaXR5Ci0gICAgICAgICAgICBOb3QgQmVmb3JlOiBKdWwg
MTMgMTI6NTk6MTIgMjAxOCBHTVQKLSAgICAgICAgICAgIE5vdCBBZnRlciA6IEp1bCAxMCAxMjo1
OToxMiAyMDI4IEdNVAorICAgICAgICAgICAgTm90IEJlZm9yZTogT2N0IDE0IDEzOjQ5OjI5IDIw
MTkgR01UCisgICAgICAgICAgICBOb3QgQWZ0ZXIgOiBPY3QgMTEgMTM6NDk6MjkgMjAyOSBHTVQK
ICAgICAgICAgU3ViamVjdDogQ049d2ViLXBsYXRmb3JtLnRlc3QKICAgICAgICAgU3ViamVjdCBQ
dWJsaWMgS2V5IEluZm86CiAgICAgICAgICAgICBQdWJsaWMgS2V5IEFsZ29yaXRobTogcnNhRW5j
cnlwdGlvbgogICAgICAgICAgICAgICAgIFB1YmxpYy1LZXk6ICgyMDQ4IGJpdCkKICAgICAgICAg
ICAgICAgICBNb2R1bHVzOgotICAgICAgICAgICAgICAgICAgICAwMDpkODo1Mzo2ODozYjo1NTpk
Mjo4ZTo1NTozYzo0ZjpiODo4MDo3NDpiODoKLSAgICAgICAgICAgICAgICAgICAgMWQ6NDk6OGM6
M2M6ZDI6YjU6YjU6MTU6MjI6Mzc6ODE6MjU6NDI6ZTc6NTg6Ci0gICAgICAgICAgICAgICAgICAg
IGFhOmI2OmFhOmJlOjBlOjMwOjhlOmEwOjk3OjRmOmY3OjgwOmQ5OmU5OmExOgotICAgICAgICAg
ICAgICAgICAgICBmNDplYjo1ODozZjphMzo5NjoyODpiODpkYTo1YTphYTowZDo0MTpkZjo2YzoK
LSAgICAgICAgICAgICAgICAgICAgMWQ6NTI6YWU6Y2Q6Yzg6MTY6MDI6YjA6MGE6NzA6OTE6NTc6
N2U6YTU6ZGI6Ci0gICAgICAgICAgICAgICAgICAgIDEwOmE0OmZkOjNiOmY3OjA2OmQ1OmI1Ojg5
OjZhOjkyOjM2OmM2OjY2OmM1OgotICAgICAgICAgICAgICAgICAgICBhNjpkMjo2Yzo3NjpmNTo0
Zjo0YTpjYjo2ZTpjMzo5MzoyZDpiZTpkMjozZjoKLSAgICAgICAgICAgICAgICAgICAgYmQ6MTQ6
YTc6NGE6Mzk6NWE6ZjA6MTg6ZGM6NDE6MWI6NzA6ODA6NjU6ODE6Ci0gICAgICAgICAgICAgICAg
ICAgIDg1OjQ1OmEzOmFhOjE5OmYwOmZlOjU1OmVkOjEwOmQ5OjU2OjZjOjhkOjU0OgotICAgICAg
ICAgICAgICAgICAgICA2OTo0YjpkZTo0NTowMTowZjo1MDphMTo4NzpkNzowYzo0MzoyMjo5ZDox
YjoKLSAgICAgICAgICAgICAgICAgICAgNGU6YjI6ZWM6NmU6NzY6ZTM6YWM6ZjY6YzE6ZDk6YjA6
Njk6ZTg6MzA6MWE6Ci0gICAgICAgICAgICAgICAgICAgIGJiOjNkOmQzOjlkOmUzOjhjOjcwOjQx
Ojc3OjIyOjAyOjVjOmIxOjMzOjJiOgotICAgICAgICAgICAgICAgICAgICA4MjpkZTpkYTpiODox
ODpmNDpkMjo5ODoxYTo2YTpmMDphMDoyNDo1NjphODoKLSAgICAgICAgICAgICAgICAgICAgMGE6
ZTk6MGM6MjI6Y2Y6Mzg6NmM6NDM6OWE6MjY6ZjY6ODU6ZDk6YjU6MWY6Ci0gICAgICAgICAgICAg
ICAgICAgIDZkOmU0OmNmOmVkOjM5OjIzOjUzOmRiOmEzOjhlOjdlOjI2OmViOjYxOjFiOgotICAg
ICAgICAgICAgICAgICAgICA0ZTo1ZDphYzpiMDo0MjpiZToxZTo1Yzo0ZToxODo4MDo2Mzo2Yzow
ZDowOToKLSAgICAgICAgICAgICAgICAgICAgNjg6MDg6MDY6YTE6ZjQ6MDQ6MGI6YzM6Mzc6OTI6
ZTg6YWE6MGU6YzU6ZDE6Ci0gICAgICAgICAgICAgICAgICAgIDRiOmMxCisgICAgICAgICAgICAg
ICAgICAgIDAwOmFiOjY1Ojc1OjU3Ojk4OmUzOmU1OmFhOjhmOmZlOmRiOjE4OmY1OmU0OgorICAg
ICAgICAgICAgICAgICAgICBmODoxYzo2NDo2MTpjNjphMzpmNjplODo3ZToyNDoxMDpkZTowOTo3
YToyNDoKKyAgICAgICAgICAgICAgICAgICAgYmQ6NTU6NWY6NTE6YTk6YjU6ODI6MGQ6ODU6M2E6
YjY6YjE6NDg6NWY6Mzc6CisgICAgICAgICAgICAgICAgICAgIGNiOjQyOjZmOmU3OjA3OmNiOjM2
OmE5OjNiOmRhOjE0OjliOjBhOmIwOmE3OgorICAgICAgICAgICAgICAgICAgICA5NToyOTplZTpk
Mjo3ODoyMjo5ZTplZToxMzo1ZjpmMDpjMToyYzo1NTo3MjoKKyAgICAgICAgICAgICAgICAgICAg
ZjA6OWE6YzA6NmU6N2Y6M2M6ZGU6NjI6MGY6YjE6ZjY6YzI6Yzk6ODQ6YTY6CisgICAgICAgICAg
ICAgICAgICAgIDkxOmQ3OjM5OmNkOmNiOjk3OjRmOjM5OmZlOjBjOmRlOmIzOmVkOjdlOjM2Ogor
ICAgICAgICAgICAgICAgICAgICA3ZjphYTowMToxOTphOTpkNTpiMTo3ZjpiZTozYTo2NTowZjph
NTo1ZDoxZjoKKyAgICAgICAgICAgICAgICAgICAgNmE6YzE6NWI6N2I6MDk6ZGM6MzA6Mjg6MDU6
YWE6MTc6OTQ6MDM6MWY6Nzk6CisgICAgICAgICAgICAgICAgICAgIDEwOjA1OjBlOjk2OmFhOjZi
OmVmOjY1OmM0OmNhOmNjOmU1OjY5OjE0OjFlOgorICAgICAgICAgICAgICAgICAgICA3Nzo1MDpm
YTplMTowYzplYTo0Njo3Mjo3YTpmODo3MjphNzo0ZDo5NzowYzoKKyAgICAgICAgICAgICAgICAg
ICAgZmQ6MmY6MmY6MDM6NDI6YjQ6ZjI6YzY6MDc6NDc6YTY6MDA6MDc6YzI6ZWY6CisgICAgICAg
ICAgICAgICAgICAgIDFhOjcwOjQ0OjY1OjQ2OjRhOmQxOjJjOjUyOjE3OmZmOjk5OmNmOjcyOjM0
OgorICAgICAgICAgICAgICAgICAgICBkNjo4YTo4MjphMDo0YToyMzo0OTplODphMTo1OTplZTo1
Mzo3NDo0Njo3NDoKKyAgICAgICAgICAgICAgICAgICAgYTE6Y2Y6ZDc6Y2I6ZGM6OGU6ZDA6NTI6
NTc6NDk6NTg6ODI6Mzc6ZTA6ZjU6CisgICAgICAgICAgICAgICAgICAgIGFkOjNiOjM4OjFiOmI1
Ojg2OjA0OjFmOjdlOjFhOjFmOjhiOjYwOjcyOjc1OgorICAgICAgICAgICAgICAgICAgICBmNjo4
MjphNDoxMDowYzpjYzo1ODo2NTpiYjo1YjpiMjpiMzphNjphMTo1NjoKKyAgICAgICAgICAgICAg
ICAgICAgNDI6NjkKICAgICAgICAgICAgICAgICBFeHBvbmVudDogNjU1MzcgKDB4MTAwMDEpCiAg
ICAgICAgIFg1MDl2MyBleHRlbnNpb25zOgogICAgICAgICAgICAgWDUwOXYzIEJhc2ljIENvbnN0
cmFpbnRzOiAKICAgICAgICAgICAgICAgICBDQTpGQUxTRQogICAgICAgICAgICAgWDUwOXYzIFN1
YmplY3QgS2V5IElkZW50aWZpZXI6IAotICAgICAgICAgICAgICAgIERDOjI3OjZDOjc0OkU2OjQ3
OjMxOjk1OkQ4OkNDOjk2OjVCOkU0Ojk0OjZFOjhDOjIyOjJGOjJCOkVBCisgICAgICAgICAgICAg
ICAgMkE6MTg6MEI6MDk6MjI6NkU6Mjg6RDI6REI6RkQ6QzI6MkQ6NDA6QTY6RjM6Mzg6NjI6NkU6
Qzc6QzUKICAgICAgICAgICAgIFg1MDl2MyBBdXRob3JpdHkgS2V5IElkZW50aWZpZXI6IAotICAg
ICAgICAgICAgICAgIGtleWlkOjVCOkRBOkM4OkMxOjA5OkYzOjREOjkyOjMwOkJDOkVGOjQzOkZC
OjI2OjkzOjFFOkFFOjBEOjlBOjBGCisgICAgICAgICAgICAgICAga2V5aWQ6NDE6NDk6RkY6OEM6
NjY6NTA6NUY6ODc6QTE6MDY6QTg6QkI6QUI6OEE6REQ6NzM6MEQ6MEU6Mzc6MUEKIAogICAgICAg
ICAgICAgWDUwOXYzIEtleSBVc2FnZTogCiAgICAgICAgICAgICAgICAgRGlnaXRhbCBTaWduYXR1
cmUsIE5vbiBSZXB1ZGlhdGlvbiwgS2V5IEVuY2lwaGVybWVudAogICAgICAgICAgICAgWDUwOXYz
IEV4dGVuZGVkIEtleSBVc2FnZTogCiAgICAgICAgICAgICAgICAgVExTIFdlYiBTZXJ2ZXIgQXV0
aGVudGljYXRpb24KICAgICAgICAgICAgIFg1MDl2MyBTdWJqZWN0IEFsdGVybmF0aXZlIE5hbWU6
IAotICAgICAgICAgICAgICAgIEROUzp3ZWItcGxhdGZvcm0udGVzdCwgRE5TOm5vdC13ZWItcGxh
dGZvcm0udGVzdCwgRE5TOnd3dy53ZWItcGxhdGZvcm0udGVzdCwgRE5TOnd3dzEud2ViLXBsYXRm
b3JtLnRlc3QsIEROUzp3d3cyLndlYi1wbGF0Zm9ybS50ZXN0LCBETlM6d3d3Lm5vdC13ZWItcGxh
dGZvcm0udGVzdCwgRE5TOnd3dzIubm90LXdlYi1wbGF0Zm9ybS50ZXN0LCBETlM6d3d3MS5ub3Qt
d2ViLXBsYXRmb3JtLnRlc3QsIEROUzp4bi0tbHZlLTZsYWQud2ViLXBsYXRmb3JtLnRlc3QsIERO
Uzp4bi0tbHZlLTZsYWQubm90LXdlYi1wbGF0Zm9ybS50ZXN0LCBETlM6eG4tLW44ajZkczUzbHd3
a3JxaHYyOGEud2ViLXBsYXRmb3JtLnRlc3QsIEROUzp4bi0tbjhqNmRzNTNsd3drcnFodjI4YS5u
b3Qtd2ViLXBsYXRmb3JtLnRlc3QKKyAgICAgICAgICAgICAgICBETlM6d2ViLXBsYXRmb3JtLnRl
c3QsIEROUzpub3Qtd2ViLXBsYXRmb3JtLnRlc3QsIEROUzp3d3cud2ViLXBsYXRmb3JtLnRlc3Qs
IEROUzp3d3cxLndlYi1wbGF0Zm9ybS50ZXN0LCBETlM6d3d3Mi53ZWItcGxhdGZvcm0udGVzdCwg
RE5TOnd3dy5ub3Qtd2ViLXBsYXRmb3JtLnRlc3QsIEROUzp3d3cud3d3LndlYi1wbGF0Zm9ybS50
ZXN0LCBETlM6d3d3Mi5ub3Qtd2ViLXBsYXRmb3JtLnRlc3QsIEROUzp3d3cxLm5vdC13ZWItcGxh
dGZvcm0udGVzdCwgRE5TOnd3dy53d3cyLndlYi1wbGF0Zm9ybS50ZXN0LCBETlM6d3d3Mi53d3cu
d2ViLXBsYXRmb3JtLnRlc3QsIEROUzp3d3cxLnd3dy53ZWItcGxhdGZvcm0udGVzdCwgRE5TOnd3
dy53d3cxLndlYi1wbGF0Zm9ybS50ZXN0LCBETlM6d3d3MS53d3cxLndlYi1wbGF0Zm9ybS50ZXN0
LCBETlM6d3d3MS53d3cyLndlYi1wbGF0Zm9ybS50ZXN0LCBETlM6d3d3Mi53d3cyLndlYi1wbGF0
Zm9ybS50ZXN0LCBETlM6d3d3Mi53d3cxLndlYi1wbGF0Zm9ybS50ZXN0LCBETlM6d3d3Lnd3dy5u
b3Qtd2ViLXBsYXRmb3JtLnRlc3QsIEROUzp3d3cud3d3Mi5ub3Qtd2ViLXBsYXRmb3JtLnRlc3Qs
IEROUzp3d3cxLnd3dy5ub3Qtd2ViLXBsYXRmb3JtLnRlc3QsIEROUzp4bi0tbHZlLTZsYWQud2Vi
LXBsYXRmb3JtLnRlc3QsIEROUzp3d3cud3d3MS5ub3Qtd2ViLXBsYXRmb3JtLnRlc3QsIEROUzp3
d3cyLnd3dy5ub3Qtd2ViLXBsYXRmb3JtLnRlc3QsIEROUzp3d3cyLnd3dzIubm90LXdlYi1wbGF0
Zm9ybS50ZXN0LCBETlM6d3d3Mi53d3cxLm5vdC13ZWItcGxhdGZvcm0udGVzdCwgRE5TOnd3dzEu
d3d3MS5ub3Qtd2ViLXBsYXRmb3JtLnRlc3QsIEROUzp3d3cxLnd3dzIubm90LXdlYi1wbGF0Zm9y
bS50ZXN0LCBETlM6eG4tLWx2ZS02bGFkLnd3dy53ZWItcGxhdGZvcm0udGVzdCwgRE5TOnd3dy54
bi0tbHZlLTZsYWQud2ViLXBsYXRmb3JtLnRlc3QsIEROUzp4bi0tbHZlLTZsYWQubm90LXdlYi1w
bGF0Zm9ybS50ZXN0LCBETlM6eG4tLWx2ZS02bGFkLnd3dzEud2ViLXBsYXRmb3JtLnRlc3QsIERO
Uzp3d3cyLnhuLS1sdmUtNmxhZC53ZWItcGxhdGZvcm0udGVzdCwgRE5TOnd3dzEueG4tLWx2ZS02
bGFkLndlYi1wbGF0Zm9ybS50ZXN0LCBETlM6eG4tLWx2ZS02bGFkLnd3dzIud2ViLXBsYXRmb3Jt
LnRlc3QsIEROUzp4bi0tbHZlLTZsYWQud3d3Lm5vdC13ZWItcGxhdGZvcm0udGVzdCwgRE5TOnd3
dy54bi0tbHZlLTZsYWQubm90LXdlYi1wbGF0Zm9ybS50ZXN0LCBETlM6eG4tLWx2ZS02bGFkLnd3
dzEubm90LXdlYi1wbGF0Zm9ybS50ZXN0LCBETlM6d3d3Mi54bi0tbHZlLTZsYWQubm90LXdlYi1w
bGF0Zm9ybS50ZXN0LCBETlM6d3d3MS54bi0tbHZlLTZsYWQubm90LXdlYi1wbGF0Zm9ybS50ZXN0
LCBETlM6eG4tLWx2ZS02bGFkLnd3dzIubm90LXdlYi1wbGF0Zm9ybS50ZXN0LCBETlM6eG4tLW44
ajZkczUzbHd3a3JxaHYyOGEud2ViLXBsYXRmb3JtLnRlc3QsIEROUzp4bi0tbHZlLTZsYWQueG4t
LWx2ZS02bGFkLndlYi1wbGF0Zm9ybS50ZXN0LCBETlM6eG4tLW44ajZkczUzbHd3a3JxaHYyOGEu
bm90LXdlYi1wbGF0Zm9ybS50ZXN0LCBETlM6eG4tLW44ajZkczUzbHd3a3JxaHYyOGEud3d3Lndl
Yi1wbGF0Zm9ybS50ZXN0LCBETlM6d3d3LnhuLS1uOGo2ZHM1M2x3d2tycWh2MjhhLndlYi1wbGF0
Zm9ybS50ZXN0LCBETlM6d3d3MS54bi0tbjhqNmRzNTNsd3drcnFodjI4YS53ZWItcGxhdGZvcm0u
dGVzdCwgRE5TOnhuLS1uOGo2ZHM1M2x3d2tycWh2MjhhLnd3dzEud2ViLXBsYXRmb3JtLnRlc3Qs
IEROUzp3d3cyLnhuLS1uOGo2ZHM1M2x3d2tycWh2MjhhLndlYi1wbGF0Zm9ybS50ZXN0LCBETlM6
eG4tLW44ajZkczUzbHd3a3JxaHYyOGEud3d3Mi53ZWItcGxhdGZvcm0udGVzdCwgRE5TOnhuLS1s
dmUtNmxhZC54bi0tbHZlLTZsYWQubm90LXdlYi1wbGF0Zm9ybS50ZXN0LCBETlM6eG4tLW44ajZk
czUzbHd3a3JxaHYyOGEud3d3Lm5vdC13ZWItcGxhdGZvcm0udGVzdCwgRE5TOnd3dy54bi0tbjhq
NmRzNTNsd3drcnFodjI4YS5ub3Qtd2ViLXBsYXRmb3JtLnRlc3QsIEROUzp3d3cxLnhuLS1uOGo2
ZHM1M2x3d2tycWh2MjhhLm5vdC13ZWItcGxhdGZvcm0udGVzdCwgRE5TOnhuLS1uOGo2ZHM1M2x3
d2tycWh2MjhhLnd3dzIubm90LXdlYi1wbGF0Zm9ybS50ZXN0LCBETlM6eG4tLW44ajZkczUzbHd3
a3JxaHYyOGEud3d3MS5ub3Qtd2ViLXBsYXRmb3JtLnRlc3QsIEROUzp3d3cyLnhuLS1uOGo2ZHM1
M2x3d2tycWh2MjhhLm5vdC13ZWItcGxhdGZvcm0udGVzdCwgRE5TOnhuLS1uOGo2ZHM1M2x3d2ty
cWh2MjhhLnhuLS1sdmUtNmxhZC53ZWItcGxhdGZvcm0udGVzdCwgRE5TOnhuLS1sdmUtNmxhZC54
bi0tbjhqNmRzNTNsd3drcnFodjI4YS53ZWItcGxhdGZvcm0udGVzdCwgRE5TOnhuLS1sdmUtNmxh
ZC54bi0tbjhqNmRzNTNsd3drcnFodjI4YS5ub3Qtd2ViLXBsYXRmb3JtLnRlc3QsIEROUzp4bi0t
bjhqNmRzNTNsd3drcnFodjI4YS54bi0tbHZlLTZsYWQubm90LXdlYi1wbGF0Zm9ybS50ZXN0LCBE
TlM6eG4tLW44ajZkczUzbHd3a3JxaHYyOGEueG4tLW44ajZkczUzbHd3a3JxaHYyOGEud2ViLXBs
YXRmb3JtLnRlc3QsIEROUzp4bi0tbjhqNmRzNTNsd3drcnFodjI4YS54bi0tbjhqNmRzNTNsd3dr
cnFodjI4YS5ub3Qtd2ViLXBsYXRmb3JtLnRlc3QKICAgICBTaWduYXR1cmUgQWxnb3JpdGhtOiBz
aGEyNTZXaXRoUlNBRW5jcnlwdGlvbgotICAgICAgICAgMTU6OTg6Njg6Njk6MjU6ZjY6Zjc6ZDY6
MDk6MGI6NWI6ZDY6YWM6ZDY6NDk6MDY6MGU6MjQ6Ci0gICAgICAgICBlMTplZTpiOTo0NDo5ZTpk
MTowMzowMzplZDozYTpiMzpmOToyMzpjNDoxNDplODpmZTo1MzoKLSAgICAgICAgIDcwOjcwOjIx
OmE2OmQ0OmUzOmVlOjhkOmJhOjg0OjM4OmNkOjcxOjMyOmM3OjRhOmMwOmYxOgotICAgICAgICAg
MzM6ZWI6YmQ6YmM6ZWQ6ZjI6ZDg6ZGM6YzM6YTc6YTc6YTY6NDc6NmE6Njk6NmM6MTY6ZWE6Ci0g
ICAgICAgICBlNjo0ZDo3Yzo3NzoxODowZDozZTo4NjoyOTo5MToyYjo0OTpkNTpjOToxOToxYTo1
MzoxNjoKLSAgICAgICAgIGE3OmYwOjAyOmY0OjcwOmEyOmU1OjhiOmJjOmFhOmE2OjZmOjRmOjVi
OjQwOjI0OjA0OjY4OgotICAgICAgICAgMTE6OWQ6OWU6MjY6MjA6ZjI6ZTM6Njg6MzY6OWE6ZmE6
OGY6N2M6YjA6Mjk6MDg6Mzc6YzQ6Ci0gICAgICAgICAwNjowODpmYzplNDo0NTpiYjo0Yzo3ODph
ZToyYzpmMTpjMTpiZjpkOToyMzoxNzplNTo0MzoKLSAgICAgICAgIDE4OjBlOjA2OmQ4OjRjOmI0
OjJhOmVmOmY5OjdjOmJmOjAyOmQyOjYyOjUxOjgyOmVkOjlkOgotICAgICAgICAgNjQ6ODM6M2Q6
MDM6Y2Q6NjE6Mzg6YzA6NTc6YzY6NWU6NWI6M2E6NDE6OTE6ZGI6M2U6ODM6Ci0gICAgICAgICAw
NTo0Yjo4ODo4NDplMzphZTpiZTo0ZDo1ZDpmOTo1OTowNzowYzoyMToxNjpmYTo3ZTphZjoKLSAg
ICAgICAgIDIzOjk3OjA1OjI1OjRjOmJiOjAyOmQzOjExOjRhOjg1OjY4OmMzOmEzOmNmOmQwOjBj
OjE1OgotICAgICAgICAgNDk6ZjY6MzI6MGI6ZjY6MmE6MDE6OTE6M2M6YWQ6Yzc6MzE6ZGE6ZGE6
NDM6ZTI6MmM6ZGI6Ci0gICAgICAgICA1MjpjNTozNzphMDpjMzpjYzozYTo1YjoyYjo3NjplNTo3
NDo3NDoyMDoxYjpjMzpmNzowYzoKLSAgICAgICAgIGZlOjZkOmJmOmJiCisgICAgICAgICBhZjpj
MjplYTpjYzo2YTo1ZTo0OTplMDpkYjo3MjoxNDowNTozYzoyMTphMDo4YjpmZjpiNjoKKyAgICAg
ICAgIGE5OjcxOjgyOmY3OjYxOmNkOjIzOjJhOjAwOjY2OjkxOmFjOjAxOjk5OjYzOjM4OjExOjIx
OgorICAgICAgICAgODU6YjI6NTc6OTI6MGI6M2Y6Nzk6Njg6ZjU6ZDg6NTk6OGI6YTc6NzQ6MTk6
ZWI6MGI6ZTc6CisgICAgICAgICAzZDo4Njo0ZTo2NjpkNDplNjoyZjpmZjplZDo2Yzo3ZDo5YTo1
ZToxMjo0ZTpiZjozOTpmZjoKKyAgICAgICAgIGY3OmQwOmZiOjUyOjUzOmEwOmZiOmIxOjVjOjlh
OjkxOjkyOjM2OjAwOmQ4OmE0OjZmOmY5OgorICAgICAgICAgOWM6MzY6MjE6YjI6YzI6NWU6MTQ6
MTE6Y2E6NTU6ZTc6ODg6MzA6NjA6OGQ6ODY6ZGE6NjU6CisgICAgICAgICAyNjpmZjplMjo0NToz
NjoyYTowOTozZDphNDpiYjozODo2MTo0ZDo1NzplNDpjOTpiNjo1MDoKKyAgICAgICAgIDNjOjA2
OjJmOjZiOmJmOjA0OjM0OjQyOjU0OmRjOjUzOmI2OjYxOmM1OjRlOjQwOjAwOmQ2OgorICAgICAg
ICAgNWU6MTk6MTc6M2E6NTQ6MmM6YzU6MTY6N2E6NmQ6NGE6NzA6NTY6NDU6Y2Q6OTk6NWE6MmE6
CisgICAgICAgICBkMTphNzo0ZTozNTo5NzozZDpkODpjOTo5NTo4MDphYjoxNTo0Mjo4NjpmNjph
MDphNjpjMzoKKyAgICAgICAgIDIxOmMxOjlhOjA3OjM0OjQ5OmFkOjYxOjNjOmJjOjk0OmIyOjJk
OjkyOmY3OjQ0OjgwOjAxOgorICAgICAgICAgNWY6Mjc6YmQ6ODM6ZjU6NTE6MjI6Mzk6Y2Q6OTg6
YjE6Mzk6MjM6Yjg6ZjQ6NWM6MDg6MjA6CisgICAgICAgICA5ZTpmZTpmMToyZDo5YTplOTo5Yjpj
Nzo1ZTpiODozMzo4YjoxNjo3Nzo1MjozZDpjOTo3YToKKyAgICAgICAgIDQzOjllOjI1OmQwOmM3
OjVhOjk2OjA4OjUzOjFhOmRjOjc1OjUzOjc1OjQ0OjYyOjE4OjdjOgorICAgICAgICAgZWY6ZmI6
NzM6NTIKIC0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQotTUlJRW5EQ0NBNFNnQXdJQkFnSURD
MytaTUEwR0NTcUdTSWIzRFFFQkN3VUFNQjB4R3pBWkJnTlZCQU1NRW5kbAotWWkxd2JHRjBabTl5
YlMxMFpYTjBjekFlRncweE9EQTNNVE14TWpVNU1USmFGdzB5T0RBM01UQXhNalU1TVRKYQorTUlJ
TXNqQ0NDNXFnQXdJQkFnSURCYkZJTUEwR0NTcUdTSWIzRFFFQkN3VUFNQjB4R3pBWkJnTlZCQU1N
RW5kbAorWWkxd2JHRjBabTl5YlMxMFpYTjBjekFlRncweE9URXdNVFF4TXpRNU1qbGFGdzB5T1RF
d01URXhNelE1TWpsYQogTUJ3eEdqQVlCZ05WQkFNTUVYZGxZaTF3YkdGMFptOXliUzUwWlhOME1J
SUJJakFOQmdrcWhraUc5dzBCQVFFRgotQUFPQ0FROEFNSUlCQ2dLQ0FRRUEyRk5vTzFYU2psVThU
N2lBZExnZFNZdzgwclcxRlNJM2dTVkM1MWlxdHFxKwotRGpDT29KZFA5NERaNmFIMDYxZy9vNVlv
dU5wYXFnMUIzMndkVXE3TnlCWUNzQXB3a1ZkK3Bkc1FwUDA3OXdiVgotdFlscWtqYkdac1dtMG14
MjlVOUt5MjdEa3kyKzBqKzlGS2RLT1Zyd0dOeEJHM0NBWllHRlJhT3FHZkQrVmUwUQotMlZac2pW
UnBTOTVGQVE5UW9ZZlhERU1pblJ0T3N1eHVkdU9zOXNIWnNHbm9NQnE3UGRPZDQ0eHdRWGNpQWx5
eAotTXl1QzN0cTRHUFRTbUJwcThLQWtWcWdLNlF3aXp6aHNRNW9tOW9YWnRSOXQ1TS90T1NOVDI2
T09maWJyWVJ0TwotWGF5d1FyNGVYRTRZZ0dOc0RRbG9DQWFoOUFRTHd6ZVM2S29PeGRGTHdRSURB
UUFCbzRJQjVEQ0NBZUF3Q1FZRAotVlIwVEJBSXdBREFkQmdOVkhRNEVGZ1FVM0Nkc2RPWkhNWlhZ
ekpaYjVKUnVqQ0l2Sytvd0h3WURWUjBqQkJndwotRm9BVVc5ckl3UW56VFpJd3ZPOUQreWFUSHE0
Tm1nOHdDd1lEVlIwUEJBUURBZ1hnTUJNR0ExVWRKUVFNTUFvRwotQ0NzR0FRVUZCd01CTUlJQmJ3
WURWUjBSQklJQlpqQ0NBV0tDRVhkbFlpMXdiR0YwWm05eWJTNTBaWE4wZ2hWdQorQUFPQ0FROEFN
SUlCQ2dLQ0FRRUFxMlYxVjVqajVhcVAvdHNZOWVUNEhHUmh4cVAyNkg0a0VONEplaVM5VlY5Ugor
cWJXQ0RZVTZ0ckZJWHpmTFFtL25COHMycVR2YUZKc0tzS2VWS2U3U2VDS2U3aE5mOE1Fc1ZYTHdt
c0J1Znp6ZQorWWcreDlzTEpoS2FSMXpuTnk1ZFBPZjRNM3JQdGZqWi9xZ0VacWRXeGY3NDZaUSts
WFI5cXdWdDdDZHd3S0FXcQorRjVRREgza1FCUTZXcW12dlpjVEt6T1ZwRkI1M1VQcmhET3BHY25y
NGNxZE5sd3o5THk4RFFyVHl4Z2RIcGdBSAord3U4YWNFUmxSa3JSTEZJWC81blBjalRXaW9LZ1Np
Tko2S0ZaN2xOMFJuU2h6OWZMM0k3UVVsZEpXSUkzNFBXdAorT3pnYnRZWUVIMzRhSDR0Z2NuWDJn
cVFRRE14WVpidGJzck9tb1ZaQ2FRSURBUUFCbzRJSitqQ0NDZll3Q1FZRAorVlIwVEJBSXdBREFk
QmdOVkhRNEVGZ1FVS2hnTENTSnVLTkxiL2NJdFFLYnpPR0p1eDhVd0h3WURWUjBqQkJndworRm9B
VVFVbi9qR1pRWDRlaEJxaTdxNHJkY3cwT054b3dDd1lEVlIwUEJBUURBZ1hnTUJNR0ExVWRKUVFN
TUFvRworQ0NzR0FRVUZCd01CTUlJSmhRWURWUjBSQklJSmZEQ0NDWGlDRVhkbFlpMXdiR0YwWm05
eWJTNTBaWE4wZ2hWdQogYjNRdGQyVmlMWEJzWVhSbWIzSnRMblJsYzNTQ0ZYZDNkeTUzWldJdGNH
eGhkR1p2Y20wdWRHVnpkSUlXZDNkMwogTVM1M1pXSXRjR3hoZEdadmNtMHVkR1Z6ZElJV2QzZDNN
aTUzWldJdGNHeGhkR1p2Y20wdWRHVnpkSUlaZDNkMwotTG01dmRDMTNaV0l0Y0d4aGRHWnZjbTB1
ZEdWemRJSWFkM2QzTWk1dWIzUXRkMlZpTFhCc1lYUm1iM0p0TG5SbAotYzNTQ0duZDNkekV1Ym05
MExYZGxZaTF3YkdGMFptOXliUzUwWlhOMGdoNTRiaTB0YkhabExUWnNZV1F1ZDJWaQotTFhCc1lY
Um1iM0p0TG5SbGMzU0NJbmh1TFMxc2RtVXRObXhoWkM1dWIzUXRkMlZpTFhCc1lYUm1iM0p0TG5S
bAotYzNTQ0tYaHVMUzF1T0dvMlpITTFNMngzZDJ0eWNXaDJNamhoTG5kbFlpMXdiR0YwWm05eWJT
NTBaWE4wZ2kxNAotYmkwdGJqaHFObVJ6TlROc2QzZHJjbkZvZGpJNFlTNXViM1F0ZDJWaUxYQnNZ
WFJtYjNKdExuUmxjM1F3RFFZSgotS29aSWh2Y05BUUVMQlFBRGdnRUJBQldZYUdrbDl2ZldDUXRi
MXF6V1NRWU9KT0h1dVVTZTBRTUQ3VHF6K1NQRQotRk9qK1UzQndJYWJVNCs2TnVvUTR6WEV5eDBy
QThUUHJ2Ynp0OHRqY3c2ZW5wa2RxYVd3VzZ1Wk5mSGNZRFQ2RwotS1pFclNkWEpHUnBURnFmd0F2
UndvdVdMdktxbWIwOWJRQ1FFYUJHZG5pWWc4dU5vTnByNmozeXdLUWczeEFZSQotL09SRnUweDRy
aXp4d2IvWkl4ZmxReGdPQnRoTXRDcnYrWHkvQXRKaVVZTHRuV1NEUFFQTllUakFWOFplV3pwQgot
a2RzK2d3VkxpSVRqcnI1TlhmbFpCd3doRnZwK3J5T1hCU1ZNdXdMVEVVcUZhTU9qejlBTUZVbjJN
Z3YyS2dHUgotUEszSE1kcmFRK0lzMjFMRk42RER6RHBiSzNibGRIUWdHOFAzRFA1dHY3cz0KK0xt
NXZkQzEzWldJdGNHeGhkR1p2Y20wdWRHVnpkSUlaZDNkM0xuZDNkeTUzWldJdGNHeGhkR1p2Y20w
dWRHVnoKK2RJSWFkM2QzTWk1dWIzUXRkMlZpTFhCc1lYUm1iM0p0TG5SbGMzU0NHbmQzZHpFdWJt
OTBMWGRsWWkxd2JHRjAKK1ptOXliUzUwWlhOMGdocDNkM2N1ZDNkM01pNTNaV0l0Y0d4aGRHWnZj
bTB1ZEdWemRJSWFkM2QzTWk1M2QzY3UKK2QyVmlMWEJzWVhSbWIzSnRMblJsYzNTQ0duZDNkekV1
ZDNkM0xuZGxZaTF3YkdGMFptOXliUzUwWlhOMGdocDMKK2QzY3VkM2QzTVM1M1pXSXRjR3hoZEda
dmNtMHVkR1Z6ZElJYmQzZDNNUzUzZDNjeExuZGxZaTF3YkdGMFptOXkKK2JTNTBaWE4wZ2h0M2Qz
Y3hMbmQzZHpJdWQyVmlMWEJzWVhSbWIzSnRMblJsYzNTQ0czZDNkekl1ZDNkM01pNTMKK1pXSXRj
R3hoZEdadmNtMHVkR1Z6ZElJYmQzZDNNaTUzZDNjeExuZGxZaTF3YkdGMFptOXliUzUwWlhOMGdo
MTMKK2QzY3VkM2QzTG01dmRDMTNaV0l0Y0d4aGRHWnZjbTB1ZEdWemRJSWVkM2QzTG5kM2R6SXVi
bTkwTFhkbFlpMXcKK2JHRjBabTl5YlM1MFpYTjBnaDUzZDNjeExuZDNkeTV1YjNRdGQyVmlMWEJz
WVhSbWIzSnRMblJsYzNTQ0huaHUKK0xTMXNkbVV0Tm14aFpDNTNaV0l0Y0d4aGRHWnZjbTB1ZEdW
emRJSWVkM2QzTG5kM2R6RXVibTkwTFhkbFlpMXcKK2JHRjBabTl5YlM1MFpYTjBnaDUzZDNjeUxu
ZDNkeTV1YjNRdGQyVmlMWEJzWVhSbWIzSnRMblJsYzNTQ0gzZDMKK2R6SXVkM2QzTWk1dWIzUXRk
MlZpTFhCc1lYUm1iM0p0TG5SbGMzU0NIM2QzZHpJdWQzZDNNUzV1YjNRdGQyVmkKK0xYQnNZWFJt
YjNKdExuUmxjM1NDSDNkM2R6RXVkM2QzTVM1dWIzUXRkMlZpTFhCc1lYUm1iM0p0TG5SbGMzU0MK
K0gzZDNkekV1ZDNkM01pNXViM1F0ZDJWaUxYQnNZWFJtYjNKdExuUmxjM1NDSW5odUxTMXNkbVV0
Tm14aFpDNTMKK2QzY3VkMlZpTFhCc1lYUm1iM0p0TG5SbGMzU0NJbmQzZHk1NGJpMHRiSFpsTFRa
c1lXUXVkMlZpTFhCc1lYUm0KK2IzSnRMblJsYzNTQ0luaHVMUzFzZG1VdE5teGhaQzV1YjNRdGQy
VmlMWEJzWVhSbWIzSnRMblJsYzNTQ0kzaHUKK0xTMXNkbVV0Tm14aFpDNTNkM2N4TG5kbFlpMXdi
R0YwWm05eWJTNTBaWE4wZ2lOM2QzY3lMbmh1TFMxc2RtVXQKK05teGhaQzUzWldJdGNHeGhkR1p2
Y20wdWRHVnpkSUlqZDNkM01TNTRiaTB0YkhabExUWnNZV1F1ZDJWaUxYQnMKK1lYUm1iM0p0TG5S
bGMzU0NJM2h1TFMxc2RtVXRObXhoWkM1M2QzY3lMbmRsWWkxd2JHRjBabTl5YlM1MFpYTjAKK2dp
WjRiaTB0YkhabExUWnNZV1F1ZDNkM0xtNXZkQzEzWldJdGNHeGhkR1p2Y20wdWRHVnpkSUltZDNk
M0xuaHUKK0xTMXNkbVV0Tm14aFpDNXViM1F0ZDJWaUxYQnNZWFJtYjNKdExuUmxjM1NDSjNodUxT
MXNkbVV0Tm14aFpDNTMKK2QzY3hMbTV2ZEMxM1pXSXRjR3hoZEdadmNtMHVkR1Z6ZElJbmQzZDNN
aTU0YmkwdGJIWmxMVFpzWVdRdWJtOTAKK0xYZGxZaTF3YkdGMFptOXliUzUwWlhOMGdpZDNkM2N4
TG5odUxTMXNkbVV0Tm14aFpDNXViM1F0ZDJWaUxYQnMKK1lYUm1iM0p0TG5SbGMzU0NKM2h1TFMx
c2RtVXRObXhoWkM1M2QzY3lMbTV2ZEMxM1pXSXRjR3hoZEdadmNtMHUKK2RHVnpkSUlwZUc0dExX
NDRhalprY3pVemJIZDNhM0p4YUhZeU9HRXVkMlZpTFhCc1lYUm1iM0p0TG5SbGMzU0MKK0szaHVM
UzFzZG1VdE5teGhaQzU0YmkwdGJIWmxMVFpzWVdRdWQyVmlMWEJzWVhSbWIzSnRMblJsYzNTQ0xY
aHUKK0xTMXVPR28yWkhNMU0yeDNkMnR5Y1doMk1qaGhMbTV2ZEMxM1pXSXRjR3hoZEdadmNtMHVk
R1Z6ZElJdGVHNHQKK0xXNDRhalprY3pVemJIZDNhM0p4YUhZeU9HRXVkM2QzTG5kbFlpMXdiR0Yw
Wm05eWJTNTBaWE4wZ2kxM2QzY3UKK2VHNHRMVzQ0YWpaa2N6VXpiSGQzYTNKeGFIWXlPR0V1ZDJW
aUxYQnNZWFJtYjNKdExuUmxjM1NDTG5kM2R6RXUKK2VHNHRMVzQ0YWpaa2N6VXpiSGQzYTNKeGFI
WXlPR0V1ZDJWaUxYQnNZWFJtYjNKdExuUmxjM1NDTG5odUxTMXUKK09HbzJaSE0xTTJ4M2QydHlj
V2gyTWpoaExuZDNkekV1ZDJWaUxYQnNZWFJtYjNKdExuUmxjM1NDTG5kM2R6SXUKK2VHNHRMVzQ0
YWpaa2N6VXpiSGQzYTNKeGFIWXlPR0V1ZDJWaUxYQnNZWFJtYjNKdExuUmxjM1NDTG5odUxTMXUK
K09HbzJaSE0xTTJ4M2QydHljV2gyTWpoaExuZDNkekl1ZDJWaUxYQnNZWFJtYjNKdExuUmxjM1ND
TDNodUxTMXMKK2RtVXRObXhoWkM1NGJpMHRiSFpsTFRac1lXUXVibTkwTFhkbFlpMXdiR0YwWm05
eWJTNTBaWE4wZ2pGNGJpMHQKK2JqaHFObVJ6TlROc2QzZHJjbkZvZGpJNFlTNTNkM2N1Ym05MExY
ZGxZaTF3YkdGMFptOXliUzUwWlhOMGdqRjMKK2QzY3VlRzR0TFc0NGFqWmtjelV6YkhkM2EzSnhh
SFl5T0dFdWJtOTBMWGRsWWkxd2JHRjBabTl5YlM1MFpYTjAKK2dqSjNkM2N4TG5odUxTMXVPR28y
WkhNMU0yeDNkMnR5Y1doMk1qaGhMbTV2ZEMxM1pXSXRjR3hoZEdadmNtMHUKK2RHVnpkSUl5ZUc0
dExXNDRhalprY3pVemJIZDNhM0p4YUhZeU9HRXVkM2QzTWk1dWIzUXRkMlZpTFhCc1lYUm0KK2Iz
SnRMblJsYzNTQ01uaHVMUzF1T0dvMlpITTFNMngzZDJ0eWNXaDJNamhoTG5kM2R6RXVibTkwTFhk
bFlpMXcKK2JHRjBabTl5YlM1MFpYTjBnakozZDNjeUxuaHVMUzF1T0dvMlpITTFNMngzZDJ0eWNX
aDJNamhoTG01dmRDMTMKK1pXSXRjR3hoZEdadmNtMHVkR1Z6ZElJMmVHNHRMVzQ0YWpaa2N6VXpi
SGQzYTNKeGFIWXlPR0V1ZUc0dExXeDIKK1pTMDJiR0ZrTG5kbFlpMXdiR0YwWm05eWJTNTBaWE4w
Z2paNGJpMHRiSFpsTFRac1lXUXVlRzR0TFc0NGFqWmsKK2N6VXpiSGQzYTNKeGFIWXlPR0V1ZDJW
aUxYQnNZWFJtYjNKdExuUmxjM1NDT25odUxTMXNkbVV0Tm14aFpDNTQKK2JpMHRiamhxTm1Sek5U
TnNkM2RyY25Gb2RqSTRZUzV1YjNRdGQyVmlMWEJzWVhSbWIzSnRMblJsYzNTQ09uaHUKK0xTMXVP
R28yWkhNMU0yeDNkMnR5Y1doMk1qaGhMbmh1TFMxc2RtVXRObXhoWkM1dWIzUXRkMlZpTFhCc1lY
Um0KK2IzSnRMblJsYzNTQ1FYaHVMUzF1T0dvMlpITTFNMngzZDJ0eWNXaDJNamhoTG5odUxTMXVP
R28yWkhNMU0yeDMKK2QydHljV2gyTWpoaExuZGxZaTF3YkdGMFptOXliUzUwWlhOMGdrVjRiaTB0
YmpocU5tUnpOVE5zZDNkcmNuRm8KK2RqSTRZUzU0YmkwdGJqaHFObVJ6TlROc2QzZHJjbkZvZGpJ
NFlTNXViM1F0ZDJWaUxYQnNZWFJtYjNKdExuUmwKK2MzUXdEUVlKS29aSWh2Y05BUUVMQlFBRGdn
RUJBSy9DNnN4cVhrbmcyM0lVQlR3aG9Jdi90cWx4Z3ZkaHpTTXEKK0FHYVJyQUdaWXpnUklZV3lW
NUlMUDNsbzlkaFppNmQwR2VzTDV6MkdUbWJVNWkvLzdXeDltbDRTVHI4NS8vZlEKKysxSlRvUHV4
WEpxUmtqWUEyS1J2K1p3MkliTENYaFFSeWxYbmlEQmdqWWJhWlNiLzRrVTJLZ2s5cExzNFlVMVgK
KzVNbTJVRHdHTDJ1L0JEUkNWTnhUdG1IRlRrQUExbDRaRnpwVUxNVVdlbTFLY0ZaRnpabGFLdEdu
VGpXWFBkakoKK2xZQ3JGVUtHOXFDbXd5SEJtZ2MwU2ExaFBMeVVzaTJTOTBTQUFWOG52WVAxVVNJ
NXpaaXhPU080OUZ3SUlKNysKKzhTMmE2WnZIWHJneml4WjNVajNKZWtPZUpkREhXcFlJVXhyY2RW
TjFSR0lZZk8vN2MxST0KIC0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvY2kvX19pbml0
X18ucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L2NpL19faW5pdF9fLnB5CmluZGV4IGE2ODM0YjgyODVhNTZiZWYwZTE1NDNmZDkwMWM3ZTZmMmY4
YmMyMDIuLmU2OWRlMjliYjJkMWQ2NDM0YjhiMjlhZTc3NWFkOGMyZTQ4YzUzOTEgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvY2kv
X19pbml0X18ucHkKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy9jaS9fX2luaXRfXy5weQpAQCAtMSArMCwwIEBACi0jIFRoaXMgZmlsZSBpcyBy
ZXF1aXJlZCBmb3IgUHl0aG9uIHRvIHNlYXJjaCB0aGlzIGRpcmVjdG9yeSBmb3IgbW9kdWxlcy4K
XCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2NpL2F6dXJlL1JFQURNRS5tZCBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvY2kvYXp1cmUv
UkVBRE1FLm1kCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLmFmZTUwMjFlZmNhZDc4YTEzZDE3NjdmYjQyM2Q4NDY1NTdi
OTJlZTAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL2NpL2F6dXJlL1JFQURNRS5tZApAQCAtMCwwICsxLDIgQEAKK1Ro
ZXNlIGFyZSBzdGVwIHRlbXBsYXRlcyBmb3IgQXp1cmUgUGlwZWxpbmVzLCB1c2VkIGluIGAuYXp1
cmUtcGlwZWxpbmVzLnltbGAKK2luIHRoZSByb290IG9mIHRoZSByZXBvc2l0b3J5LgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9j
aS9henVyZS9hZmZlY3RlZF90ZXN0cy55bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2NpL2F6dXJlL2FmZmVjdGVkX3Rlc3RzLnltbApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi44MDc2YmMzODY5ODZlZDQ4YTdhZjUwZmQ0OGE1OWE1NDRiZjhjM2JjCi0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy9jaS9henVyZS9hZmZlY3RlZF90ZXN0cy55bWwKQEAgLTAsMCArMSwyNSBAQAorcGFyYW1ldGVy
czoKKyAgY2hlY2tvdXRDb21taXQ6ICcnCisgIGFmZmVjdGVkUmFuZ2U6ICdIRUFEXjEnCisgIGFy
dGlmYWN0TmFtZTogJycKKworc3RlcHM6CistIHRlbXBsYXRlOiBjaGVja291dC55bWwKKy0gJHt7
IGlmIG5lKHBhcmFtZXRlcnMuY2hlY2tvdXRDb21taXQsICcnKSB9fToKKyAgLSBzY3JpcHQ6IGdp
dCBjaGVja291dCAke3sgcGFyYW1ldGVycy5jaGVja291dENvbW1pdCB9fQorICAgIGRpc3BsYXlO
YW1lOiAnQ2hlY2tvdXQgJHt7IHBhcmFtZXRlcnMuY2hlY2tvdXRDb21taXQgfX0nCistIHRlbXBs
YXRlOiBwaXBfaW5zdGFsbC55bWwKKyAgcGFyYW1ldGVyczoKKyAgICBwYWNrYWdlczogdmlydHVh
bGVudgorLSB0ZW1wbGF0ZTogaW5zdGFsbF9mb250cy55bWwKKy0gdGVtcGxhdGU6IGluc3RhbGxf
Y2VydHMueW1sCistIHRlbXBsYXRlOiBpbnN0YWxsX3NhZmFyaS55bWwKKy0gdGVtcGxhdGU6IHVw
ZGF0ZV9ob3N0cy55bWwKKy0gdGVtcGxhdGU6IHVwZGF0ZV9tYW5pZmVzdC55bWwKKy0gc2NyaXB0
OiBub19wcm94eT0nKicgLi93cHQgcnVuIC0teWVzIC0tbm8tcGF1c2UgLS1uby1mYWlsLW9uLXVu
ZXhwZWN0ZWQgLS1uby1yZXN0YXJ0LW9uLXVuZXhwZWN0ZWQgLS1hZmZlY3RlZCAke3sgcGFyYW1l
dGVycy5hZmZlY3RlZFJhbmdlIH19IC0tbG9nLXdwdHJlcG9ydCAkKEJ1aWxkLkFydGlmYWN0U3Rh
Z2luZ0RpcmVjdG9yeSkvd3B0X3JlcG9ydC5qc29uIC0tbG9nLXdwdHNjcmVlbnNob3QgJChCdWls
ZC5BcnRpZmFjdFN0YWdpbmdEaXJlY3RvcnkpL3dwdF9zY3JlZW5zaG90LnR4dCAtLWNoYW5uZWwg
cHJldmlldyBzYWZhcmkKKyAgZGlzcGxheU5hbWU6ICdSdW4gdGVzdHMnCistIHRhc2s6IFB1Ymxp
c2hCdWlsZEFydGlmYWN0c0AxCisgIGRpc3BsYXlOYW1lOiAnUHVibGlzaCByZXN1bHRzJworICBp
bnB1dHM6CisgICAgYXJ0aWZhY3ROYW1lOiAnJHt7IHBhcmFtZXRlcnMuYXJ0aWZhY3ROYW1lIH19
JworICBjb25kaXRpb246IHN1Y2NlZWRlZE9yRmFpbGVkKCkKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvY2kvYXp1cmUvY2hlY2tv
dXQueW1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy9jaS9henVyZS9jaGVja291dC55bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjE4YzU3MTQ2NTk2M2E0NzhhMzA4
ODk5MzI4ZDVmYTU4NTFkNDkxZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvY2kvYXp1cmUvY2hlY2tvdXQueW1sCkBA
IC0wLDAgKzEsNCBAQAorc3RlcHM6CistIGNoZWNrb3V0OiBzZWxmCisgIGZldGNoRGVwdGg6IDUw
CisgIHN1Ym1vZHVsZXM6IGZhbHNlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2NpL2F6dXJlL2NsZWFudXBfd2luMTAueW1sIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9jaS9henVy
ZS9jbGVhbnVwX3dpbjEwLnltbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mNDk1YTBjNTU0NTM3ZjExNjE5ODFlMTlj
MTJjNTk3YmE0MWVmMmIyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9jaS9henVyZS9jbGVhbnVwX3dpbjEwLnltbApA
QCAtMCwwICsxLDExOSBAQAorIyBUaGlzIGlzIGNsZWFudXAgZm9yIHVwZGF0ZV9ob3N0cy55bWwg
YW5kIGtpbGxpbmcgYWxsIEVkZ2UgYW5kIFdlYkRyaXZlcgorIyBwcm9jZXNzZXMgdG8gbGVhdmUg
dGhlIGFnZW50IGluIGEgY2xlYW4gc3RhdGUgZm9yIHRoZSBuZXh0IGpvYi4gVGhpcyBpcworIyBu
ZWNlc3NhcnkgYmVjYXVzZSB0aGUgV2luZG93cyAxMCBhZ2VudHMgYXJlbid0IHJlc2V0IGJldHdl
ZW4gZWFjaCBqb2IuCitzdGVwczoKKy0gcG93ZXJzaGVsbDogfAorICAgIGZ1bmN0aW9uIFVuaW5z
dGFsbEVkZ2UoJGVkZ2VQYXRoLCAkdW5pbnN0YWxsQXJncykgeworICAgICAgJGV4aXRDb2RlID0g
MAorICAgICAgdHJ5IHsKKyAgICAgICAgY21kIC9jIHRhc2traWxsIC9mIC9pbSBtc2VkZ2UqIGA+
IG51bCAyYD4gbnVsCisgICAgICAgIGNtZCAvYyB0YXNra2lsbCAvZiAvaW0gc2V0dXAuZXhlIGA+
IG51bCAyYD4gbnVsCisgICAgICAgIGlmIChUZXN0LVBhdGggJGVkZ2VQYXRoKSB7CisgICAgICAg
ICAgJGluc3RhbGxlclBhdGggPSBHZXQtQ2hpbGRJdGVtIC1QQVRIICRlZGdlUGF0aCAtRmlsdGVy
ICJzZXR1cC5leGUiIC1SZWN1cnNlIHwgU2VsZWN0IC1GaXJzdCAxIEZ1bGxOYW1lCisgICAgICAg
ICAgaWYoLW5vdCgkaW5zdGFsbGVyUGF0aCAtZXEgJG51bCkgLWFuZCAoVGVzdC1QYXRoICRpbnN0
YWxsZXJQYXRoLkZ1bGxOYW1lKSkgeworICAgICAgICAgICAgV3JpdGUtSG9zdCAiVW5pbnN0YWxs
OiAkKCRpbnN0YWxsZXJQYXRoLkZ1bGxOYW1lKSAkdW5pbnN0YWxsQXJncyIKKyAgICAgICAgICAg
ICRzZXR1cCA9IFN0YXJ0LVByb2Nlc3MgIiQoJGluc3RhbGxlclBhdGguRnVsbE5hbWUpIiAtQXJn
dW1lbnRMaXN0ICR1bmluc3RhbGxBcmdzIC1QYXNzVGhydSAtV2FpdAorICAgICAgICAgICAgJGV4
aXRDb2RlID0gJHNldHVwLkV4aXRDb2RlCisgICAgICAgICAgICBpZiAoJGV4aXRDb2RlIC1uZSAk
ZXhpdENvZGVTdWNjZXNzKSB7CisgICAgICAgICAgICAgIFdyaXRlLUhvc3QgIlVuaW5zdGFsbCBm
YWlsZWQgd2l0aCBFeGl0Q29kZT0kZXhpdENvZGUiCisgICAgICAgICAgICB9CisgICAgICAgICAg
fSBlbHNlIHsKKyAgICAgICAgICAgIFdyaXRlLUhvc3QgIkZhaWxlZCB0byBmaW5kIHNldHVwLmV4
ZSB1bmRlciAkZWRnZVBhdGgiCisgICAgICAgICAgfQorICAgICAgICB9CisgICAgICB9IGNhdGNo
IFtFeGNlcHRpb25dIHsKKyAgICAgICAgV3JpdGUtSG9zdCAiRmFpbGVkIHRvIHVuaW5zdGFsbCBF
ZGdlIGZyb20gJGVkZ2VQYXRoLiBFUlJPUj0gJCgkXy5FeGNlcHRpb24uTWVzc2FnZSkiIC1Gb3Jl
Z3JvdW5kQ29sb3IgUmVkCisgICAgICB9CisgICAgICByZXR1cm4gJGV4aXRDb2RlCisgICAgfQor
CisgICAgZnVuY3Rpb24gSXNFZGdlUnVubmluZygpIHsKKyAgICAgIHJldHVybiAoR2V0LVByb2Nl
c3MgfCBXaGVyZS1PYmplY3QgeyAkXy5OYW1lIC1lcSAibXNlZGdlIiB9KS5MZW5ndGggLWd0IDAK
KyAgICB9CisKKyAgICAjIFVuaW5zdGFsbCBleGl0IGNvZGUgc3VjY2VzcyBmb3IgRWRnZQorICAg
ICRleGl0Q29kZVN1Y2Nlc3MgPSAxOQorICAgICMgcmVzdG9yZSBob3N0cyBmaWxlCisgICAgJGhv
c3RGaWxlID0gIiRlbnY6c3lzdGVtcm9vdFxTeXN0ZW0zMlxkcml2ZXJzXGV0Y1xob3N0cyIKKyAg
ICBDb3B5LUl0ZW0gLVBhdGggIiRob3N0RmlsZS5iYWNrIiAtRGVzdGluYXRpb24gJGhvc3RGaWxl
IC1Gb3JjZQorCisgICAgIyB1bmluc3RhbGwgRWRnZQorICAgICRzdGFibGVFeGl0Q29kZSA9IFVu
aW5zdGFsbEVkZ2UgIiRlbnY6bG9jYWxhcHBkYXRhXE1pY3Jvc29mdFxFZGdlIiAiLS11bmluc3Rh
bGwgLS1mb3JjZS11bmluc3RhbGwgLS12ZXJib3NlLWxvZ2dpbmciCisgICAgIyB1bmluc3RhbGwg
RWRnZSBCZXRhIGNoYW5uZWwKKyAgICAkYmV0YUV4aXRDb2RlID0gVW5pbnN0YWxsRWRnZSAiJGVu
djpzeXN0ZW1kcml2ZVxQcm9ncmFtIEZpbGVzICh4ODYpXE1pY3Jvc29mdFxFZGdlIEJldGEiICIt
LXVuaW5zdGFsbCAtLW1zZWRnZS1iZXRhIC0tZm9yY2UtdW5pbnN0YWxsIC0tdmVyYm9zZS1sb2dn
aW5nIgorICAgICMgdW5pbnN0YWxsIEVkZ2UgRGV2IGNoYW5uZWwKKyAgICAkZGV2RXhpdENvZGUg
PSBVbmluc3RhbGxFZGdlICIkZW52OnN5c3RlbWRyaXZlXFByb2dyYW0gRmlsZXMgKHg4NilcTWlj
cm9zb2Z0XEVkZ2UgRGV2IiAiLS11bmluc3RhbGwgLS1tc2VkZ2UtZGV2IC0tZm9yY2UtdW5pbnN0
YWxsIC0tdmVyYm9zZS1sb2dnaW5nIgorICAgICMgdW5pbnN0YWxsIEVkZ2UgQ2FuYXJ5IGNoYW5u
ZWwKKyAgICAkY2FuYXJ5RXhpdENvZGUgPSBVbmluc3RhbGxFZGdlICIkZW52OmxvY2FsYXBwZGF0
YVxNaWNyb3NvZnRcRWRnZSBTeFMiICItLXVuaW5zdGFsbCAtLW1zZWRnZS1zeHMgLS1mb3JjZS11
bmluc3RhbGwgLS12ZXJib3NlLWxvZ2dpbmciCisKKyAgICAjIENoZWNrIGlmIEVkZ2UgaXMgc3Rp
bGwgcnVubmluZyBhbmQgdHJ5IHRvIGNsb3NlIGl0LgorICAgICMgSWYgd2UgZmFpbCB0byBjbG9z
ZSBpdCwgdGhlbiByZWJvb3QgdGhlIHN5c3RlbQorICAgICMgYXMgdGhpcyBsaW5nZXJpbmcgcHJv
Y2VzcyBjYW4gbGVhZCB0byBydW4gaW5zdGFiaWxpdHkuCisgICAgaWYgKElzRWRnZVJ1bm5pbmcp
IHsKKyAgICAgIFdyaXRlLUhvc3QgIkZvdW5kIEVkZ2UgcHJvY2VzcyBydW5uaW5nLCB0cnkgdG8g
Y2xvc2UgaXQuIgorICAgICAgU3RvcC1Qcm9jZXNzIC1OYW1lICJtc2VkZ2UiIC1Gb3JjZQorICAg
ICAgaWYgKElzRWRnZVJ1bm5pbmcpIHsKKyAgICAgICAgV3JpdGUtSG9zdCAiRmFpbGVkIHRvIGNs
b3NlIHJ1bm5pbmcgRWRnZSBwcm9jZXNzLCByZWJvb3QgdGhlIHN5c3RlbS4iIC1Gb3JlZ3JvdW5k
Q29sb3IgUmVkCisgICAgICAgIFJlc3RhcnQtQ29tcHV0ZXIgLUZvcmNlCisgICAgICB9CisgICAg
fQorICAgIGlmICgoJHN0YWJsZUV4aXRDb2RlIC1uZSAkZXhpdENvZGVTdWNjZXNzKSAtYW5kCisg
ICAgICAgICgkYmV0YUV4aXRDb2RlIC1uZSAkZXhpdENvZGVTdWNjZXNzKSAtYW5kCisgICAgICAg
ICgkZGV2RXhpdENvZGUgLW5lICRleGl0Q29kZVN1Y2Nlc3MpIC1hbmQKKyAgICAgICAgKCRjYW5h
cnlFeGl0Q29kZSAtbmUgJGV4aXRDb2RlU3VjY2VzcykpIHsKKyAgICAgIENvcHktSXRlbSAtUGF0
aCAiJGVudjp0ZW1wXCplZGdlKi5sb2ciIC1EZXN0aW5hdGlvbiAkKEJ1aWxkLkFydGlmYWN0U3Rh
Z2luZ0RpcmVjdG9yeSkgLUZvcmNlCisgICAgICBUaHJvdyAiRmFpbGVkIHRvIHVuaW5zdGFsbCBF
ZGdlLiIKKyAgICB9IGVsc2UgeworICAgICAgV3JpdGUtSG9zdCAiU3VjY2Vzc2Z1bGx5IHVuaW5z
dGFsbGVkIGFsbCBFZGdlIGNoYW5uZWxzIgorICAgIH0KKyAgZGlzcGxheU5hbWU6ICdSZXN0b3Jl
IGhvc3RzIGZpbGUgYW5kIGNsZWFudXAgdGVzdCBtYWNoaW5lJworICBjb25kaXRpb246IGFsd2F5
cygpCisgIGVycm9yQWN0aW9uUHJlZmVyZW5jZTogc2lsZW50bHlDb250aW51ZQorICBpZ25vcmVM
QVNURVhJVENPREU6IHRydWUKKworLSBwb3dlcnNoZWxsOiB8CisgICAgJGNoYW5uZWxzID0gQCgn
RWRnZScsICdFZGdlIEJldGEnLCAnRWRnZSBEZXYnLCAnRWRnZSBTeFMnKQorICAgIGZvcmVhY2gg
KCRjaGFubmVsIGluICRjaGFubmVscykgeworICAgICAgV3JpdGUtSG9zdCAiRGVsZXRpbmcgcmVn
a2V5cyBmb3IgJGNoYW5uZWwgZm9sZGVyIgorICAgICAgUmVtb3ZlLUl0ZW0gLVBhdGggIkhLTE06
XFNPRlRXQVJFXFdPVzY0MzJOb2RlXE1pY3Jvc29mdFxXaW5kb3dzXEN1cnJlbnRWZXJzaW9uXFVu
aW5zdGFsbFxNaWNyb3NvZnQgJGNoYW5uZWwiIC1SZWN1cnNlIC1Gb3JjZSAtRXJyb3JBY3Rpb24g
U2lsZW50bHlDb250aW51ZQorICAgICAgUmVtb3ZlLUl0ZW0gLVBhdGggIkhLQ1U6XFNPRlRXQVJF
XE1pY3Jvc29mdFxXaW5kb3dzXEN1cnJlbnRWZXJzaW9uXFVuaW5zdGFsbFxNaWNyb3NvZnQgJGNo
YW5uZWwiIC1SZWN1cnNlIC1Gb3JjZSAtRXJyb3JBY3Rpb24gU2lsZW50bHlDb250aW51ZQorICAg
ICAgUmVtb3ZlLUl0ZW0gLVBhdGggIkhLTE06U09GVFdBUkVcV09XNjQzMk5vZGVcTWljcm9zb2Z0
XEVkZ2VVcGRhdGUiIC1SZWN1cnNlIC1Gb3JjZSAtRXJyb3JBY3Rpb24gU2lsZW50bHlDb250aW51
ZQorICAgICAgUmVtb3ZlLUl0ZW0gLVBhdGggIkhLTE06U09GVFdBUkVcV09XNjQzMk5vZGVcTWlj
cm9zb2Z0XCRjaGFubmVsIiAtUmVjdXJzZSAtRm9yY2UgLUVycm9yQWN0aW9uIFNpbGVudGx5Q29u
dGludWUKKyAgICAgIFJlbW92ZS1JdGVtIC1QYXRoICJIS0xNOlNPRlRXQVJFXE1pY3Jvc29mdFxF
ZGdlVXBkYXRlIiAtUmVjdXJzZSAtRm9yY2UgLUVycm9yQWN0aW9uIFNpbGVudGx5Q29udGludWUK
KyAgICAgIFJlbW92ZS1JdGVtIC1QYXRoICJIS0xNOlNPRlRXQVJFXE1pY3Jvc29mdFwkY2hhbm5l
bCIgLVJlY3Vyc2UgLUZvcmNlIC1FcnJvckFjdGlvbiBTaWxlbnRseUNvbnRpbnVlCisgICAgICBS
ZW1vdmUtSXRlbSAtUGF0aCAiSEtDVTpTT0ZUV0FSRVxNaWNyb3NvZnRcRWRnZVVwZGF0ZSIgLVJl
Y3Vyc2UgLUZvcmNlIC1FcnJvckFjdGlvbiBTaWxlbnRseUNvbnRpbnVlCisgICAgICBSZW1vdmUt
SXRlbSAtUGF0aCAiSEtDVTpTT0ZUV0FSRVxNaWNyb3NvZnRcJGNoYW5uZWwiIC1SZWN1cnNlIC1G
b3JjZSAtRXJyb3JBY3Rpb24gU2lsZW50bHlDb250aW51ZQorCisgICAgICBXcml0ZS1Ib3N0ICJE
ZWxldGluZyBhbGwgcmVtYWluaW5nIEVkZ2UgZm9sZGVycyIKKyAgICAgIFJlbW92ZS1JdGVtIC1Q
YXRoICIkZW52OmxvY2FsYXBwZGF0YVxNaWNyb3NvZnRcRWRnZVVwZGF0ZSIgLVJlY3Vyc2UgLUZv
cmNlIC1FcnJvckFjdGlvbiBTaWxlbnRseUNvbnRpbnVlCisgICAgICAkZWRnZVBhdGggPSAiJGVu
djpsb2NhbGFwcGRhdGFcTWljcm9zb2Z0XCRjaGFubmVsIgorICAgICAgUmVtb3ZlLUl0ZW0gLVBh
dGggJGVkZ2VQYXRoIC1SZWN1cnNlIC1Gb3JjZSAtRXJyb3JBY3Rpb24gU2lsZW50bHlDb250aW51
ZQorICAgICAgJGVkZ2VQYXRoID0gIiRlbnY6c3lzdGVtZHJpdmVcUHJvZ3JhbSBGaWxlcyAoeDg2
KVxNaWNyb3NvZnRcJGNoYW5uZWwiCisgICAgICBSZW1vdmUtSXRlbSAtUGF0aCAkZWRnZVBhdGgg
LVJlY3Vyc2UgLUZvcmNlIC1FcnJvckFjdGlvbiBTaWxlbnRseUNvbnRpbnVlCisgICAgfQorICBk
aXNwbGF5TmFtZTogJ0NsZWFudXAgRWRnZSByZWdpc3RyeScKKyAgY29uZGl0aW9uOiBhbHdheXMo
KQorICBlcnJvckFjdGlvblByZWZlcmVuY2U6IHNpbGVudGx5Q29udGludWUKKyAgaWdub3JlTEFT
VEVYSVRDT0RFOiB0cnVlCisKKy0gcG93ZXJzaGVsbDogfAorICAgICgkd2ViZHJpdmVyRmlsZXMg
PSBHZXQtQ2hpbGRJdGVtIC1QQVRIICIkZW52OnN5c3RlbWRyaXZlXCptc2VkZ2Vkcml2ZXIuZXhl
IiAtUmVjdXJzZSkgPiRudWxsIDI+JG51bGwKKyAgICBXcml0ZS1Ib3N0ICJGb3VuZCAkKCR3ZWJk
cml2ZXJGaWxlcy5Db3VudCkgbXNlZGdlZHJpdmVyIGJpbmFyaWVzIgorICAgIGZvcmVhY2ggKCRm
aWxlIGluICR3ZWJkcml2ZXJGaWxlcykgeworICAgICAgV3JpdGUtSG9zdCAiRGVsZXRpbmcgJGZp
bGUiCisgICAgICBSZW1vdmUtSXRlbSAtUGF0aCAkZmlsZS5GdWxsTmFtZSAtRm9yY2UgLUVycm9y
QWN0aW9uIFNpbGVudGx5Q29udGludWUKKyAgICB9CisgICAgKCRkcml2ZXJOb3Rlc0ZvbGRlciA9
IEdldC1DaGlsZEl0ZW0gLVBBVEggIiRlbnY6c3lzdGVtZHJpdmVcKkRyaXZlcl9Ob3RlcyIgLVJl
Y3Vyc2UpID4kbnVsbCAyPiRudWxsCisgICAgZm9yZWFjaCAoJGZpbGUgaW4gJGRyaXZlck5vdGVz
Rm9sZGVyKSB7CisgICAgICBXcml0ZS1Ib3N0ICJEZWxldGluZyAkZmlsZSBmb2xkZXIiCisgICAg
ICBSZW1vdmUtSXRlbSAtUGF0aCAkZmlsZS5GdWxsTmFtZSAtUmVjdXJzZSAtRm9yY2UgLUVycm9y
QWN0aW9uIFNpbGVudGx5Q29udGludWUKKyAgICB9CisgICAgKCR6aXBGaWxlID0gR2V0LUNoaWxk
SXRlbSAtUEFUSCAiJGVudjpzeXN0ZW1kcml2ZVwqZWRnZWRyaXZlcl8qLnppcCIgLVJlY3Vyc2Up
ID4kbnVsbCAyPiRudWxsCisgICAgZm9yZWFjaCAoJGZpbGUgaW4gJHppcEZpbGUpIHsKKyAgICAg
IFdyaXRlLUhvc3QgIkRlbGV0aW5nICRmaWxlIGZpbGUiCisgICAgICBSZW1vdmUtSXRlbSAtUGF0
aCAkZmlsZS5GdWxsTmFtZSAtRm9yY2UgLUVycm9yQWN0aW9uIFNpbGVudGx5Q29udGludWUKKyAg
ICB9CisgIGRpc3BsYXlOYW1lOiAnQ2xlYW51cCBFZGdlIGRyaXZlciBiaW5hcmllcycKKyAgY29u
ZGl0aW9uOiBhbHdheXMoKQorICBlcnJvckFjdGlvblByZWZlcmVuY2U6IHNpbGVudGx5Q29udGlu
dWUKKyAgaWdub3JlTEFTVEVYSVRDT0RFOiB0cnVlClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmls
ZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy9jaS9henVyZS9jb20uYXBwbGUuU2FmYXJpLnBsaXN0IGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9jaS9henVyZS9jb20uYXBwbGUuU2Fm
YXJpLnBsaXN0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjEyMjA4MDk3MmM5ZjYzNDEwMDYyZWU4ZDMzZDBlZDAyODZh
ZjhmMTEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL2NpL2F6dXJlL2NvbS5hcHBsZS5TYWZhcmkucGxpc3QKQEAgLTAs
MCArMSw4IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgorPCFET0NU
WVBFIHBsaXN0IFBVQkxJQyAiLS8vQXBwbGUvL0RURCBQTElTVCAxLjAvL0VOIiAiaHR0cDovL3d3
dy5hcHBsZS5jb20vRFREcy9Qcm9wZXJ0eUxpc3QtMS4wLmR0ZCI+Cis8cGxpc3QgdmVyc2lvbj0i
MS4wIj4KKzxkaWN0PgorCTxrZXk+QWxsb3dSZW1vdGVBdXRvbWF0aW9uPC9rZXk+CisJPHRydWUv
PgorPC9kaWN0PgorPC9wbGlzdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvY2kvYXp1cmUvZnlpX2hvb2sueW1sIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9jaS9henVyZS9meWlf
aG9vay55bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uZjAyZjNjZDgyMjRlMGIzZWI0ZjQ3ODMxOGYwNDM3ZjVhNDc1
ZjRlNQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvY2kvYXp1cmUvZnlpX2hvb2sueW1sCkBAIC0wLDAgKzEsMTkgQEAK
KyMgVGhpcyBqb2IgaXMgdXNlZCB0byBnZXQgYSBydW4gaW50byB3cHQuZnlpIGFuZCBzdGFnaW5n
LndwdC5meWksIGJ5IG5vdGlmeWluZworIyB0aGVtIHdpdGggdGhlIGJ1aWxkIG51bWJlciBhbmQg
YXJ0aWZhY3QgdG8gdXNlLgorCitwYXJhbWV0ZXJzOgorICBkZXBlbmRzT246ICcnCisgIGFydGlm
YWN0TmFtZTogJycKKworam9iczoKKy0gam9iOiAke3sgcGFyYW1ldGVycy5kZXBlbmRzT24gfX1f
aG9vaworICBkaXNwbGF5TmFtZTogJ3dwdC5meWkgaG9vazogJHt7IHBhcmFtZXRlcnMuYXJ0aWZh
Y3ROYW1lIH19JworICBkZXBlbmRzT246ICR7eyBwYXJhbWV0ZXJzLmRlcGVuZHNPbiB9fQorICBw
b29sOgorICAgIHZtSW1hZ2U6ICd1YnVudHUtMTguMDQnCisgIHN0ZXBzOgorICAtIGNoZWNrb3V0
OiBub25lCisgIC0gc2NyaXB0OiBjdXJsIC1mIC1zIC1TIC1kICJhcnRpZmFjdD0ke3sgcGFyYW1l
dGVycy5hcnRpZmFjdE5hbWUgfX0iIC1YIFBPU1QgaHR0cHM6Ly93cHQuZnlpL2FwaS9jaGVja3Mv
YXp1cmUvJChCdWlsZC5CdWlsZElkKQorICAgIGRpc3BsYXlOYW1lOiAnSW52b2tlIHdwdC5meWkg
aG9vaycKKyAgLSBzY3JpcHQ6IGN1cmwgLWYgLXMgLVMgLWQgImFydGlmYWN0PSR7eyBwYXJhbWV0
ZXJzLmFydGlmYWN0TmFtZSB9fSIgLVggUE9TVCBodHRwczovL3N0YWdpbmcud3B0LmZ5aS9hcGkv
Y2hlY2tzL2F6dXJlLyQoQnVpbGQuQnVpbGRJZCkKKyAgICBkaXNwbGF5TmFtZTogJ0ludm9rZSBz
dGFnaW5nLndwdC5meWkgaG9vaycKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvY2kvYXp1cmUvaW5zdGFsbF9jZXJ0cy55bWwgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2NpL2F6dXJl
L2luc3RhbGxfY2VydHMueW1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjU2ODIxOTliMzg3M2EyNzllZGUwMzQ1YzYw
Y2UzN2RjMjgwZmEyYTIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2NpL2F6dXJlL2luc3RhbGxfY2VydHMueW1sCkBA
IC0wLDAgKzEsOSBAQAorc3RlcHM6CistIHNjcmlwdDogfAorICAgICMgaHR0cHM6Ly9naXRodWIu
Y29tL3dlYi1wbGF0Zm9ybS10ZXN0cy9yZXN1bHRzLWNvbGxlY3Rpb24vYmxvYi9tYXN0ZXIvc3Jj
L3NjcmlwdHMvdHJ1c3Qtcm9vdC1jYS5zaAorICAgIHN1ZG8gc2VjdXJpdHkgYWRkLXRydXN0ZWQt
Y2VydCAtZCAtciB0cnVzdFJvb3QgLWsgL0xpYnJhcnkvS2V5Y2hhaW5zL1N5c3RlbS5rZXljaGFp
biB0b29scy9jZXJ0cy9jYWNlcnQucGVtCisgIGRpc3BsYXlOYW1lOiAnSW5zdGFsbCB3ZWItcGxh
dGZvcm0udGVzdCBjZXJ0aWZpY2F0ZSAobWFjT1MpJworICBjb25kaXRpb246IGFuZChzdWNjZWVk
ZWQoKSwgZXEodmFyaWFibGVzWydBZ2VudC5PUyddLCAnRGFyd2luJykpCistIHNjcmlwdDogY2Vy
dHV0aWwg4oCTYWRkc3RvcmUgLWVudGVycHJpc2Ug4oCTZiAiUm9vdCIgdG9vbHNcY2VydHNcY2Fj
ZXJ0LnBlbQorICBkaXNwbGF5TmFtZTogJ0luc3RhbGwgd2ViLXBsYXRmb3JtLnRlc3QgY2VydGlm
aWNhdGUgKFdpbmRvd3MpJworICBjb25kaXRpb246IGFuZChzdWNjZWVkZWQoKSwgZXEodmFyaWFi
bGVzWydBZ2VudC5PUyddLCAnV2luZG93c19OVCcpKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9jaS9henVyZS9pbnN0YWxsX2No
cm9tZS55bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL2NpL2F6dXJlL2luc3RhbGxfY2hyb21lLnltbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42YmQ1YzIzMzRhZDRl
M2U0ZDVkNmZhYWY4MDA1ZjRlMGI0NGNmMWZlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9jaS9henVyZS9pbnN0YWxs
X2Nocm9tZS55bWwKQEAgLTAsMCArMSw2IEBACitzdGVwczoKKyMgVGhpcyBpcyBlcXVpdmFsZW50
IHRvIGBIb21lYnJldy9ob21lYnJldy1jYXNrLXZlcnNpb25zL2dvb2dsZS1jaHJvbWUtZGV2YCwK
KyMgYnV0IHRoZSByYXcgVVJMIGlzIHVzZWQgdG8gYnlwYXNzIGNhY2hpbmcuCistIHNjcmlwdDog
SE9NRUJSRVdfTk9fQVVUT19VUERBVEU9MSBicmV3IGNhc2sgaW5zdGFsbCBodHRwczovL3Jhdy5n
aXRodWJ1c2VyY29udGVudC5jb20vSG9tZWJyZXcvaG9tZWJyZXctY2Fzay12ZXJzaW9ucy9tYXN0
ZXIvQ2Fza3MvZ29vZ2xlLWNocm9tZS1kZXYucmIKKyAgZGlzcGxheU5hbWU6ICdJbnN0YWxsIENo
cm9tZSBEZXYnCisgIGNvbmRpdGlvbjogYW5kKHN1Y2NlZWRlZCgpLCBlcSh2YXJpYWJsZXNbJ0Fn
ZW50Lk9TJ10sICdEYXJ3aW4nKSkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvY2kvYXp1cmUvaW5zdGFsbF9lZGdlLnltbCBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvY2kvYXp1cmUv
aW5zdGFsbF9lZGdlLnltbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lNGM0MjVhYjdhMGYwMzIxOGQ5MjJlNzMxMGVh
OWQ4ZmRlMGY1MWFhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9jaS9henVyZS9pbnN0YWxsX2VkZ2UueW1sCkBAIC0w
LDAgKzEsNDEgQEAKK3BhcmFtZXRlcnM6CisgIGNoYW5uZWw6IGRldgorCisjIFNob3VsZCBtYXRj
aCBodHRwczovL3dlYi1wbGF0Zm9ybS10ZXN0cy5vcmcvcnVubmluZy10ZXN0cy9jaHJvbWUuaHRt
bAorIyBKdXN0IHJlcGxhY2UgY2hyb21lIHdpdGggZWRnZWNocm9taXVtCitzdGVwczoKKy0gJHt7
IGlmIGVxKHBhcmFtZXRlcnMuY2hhbm5lbCwgJ2NhbmFyeScpIH19OgorICAtIHBvd2Vyc2hlbGw6
IHwKKyAgICAgICRlZGdlSW5zdGFsbGVyTmFtZSA9ICdNaWNyb3NvZnRFZGdlU2V0dXAuZXhlJwor
ICAgICAgIyBMaW5rIHRvIENhbmFyeSBjaGFubmVsIGluc3RhbGxlcgorICAgICAgU3RhcnQtQml0
c1RyYW5zZmVyIC1Tb3VyY2UgJ2h0dHBzOi8vZ28ubWljcm9zb2Z0LmNvbS9md2xpbmsvP2xpbmtp
ZD0yMDg0NjQ5JkNoYW5uZWw9Q2FuYXJ5Jmxhbmd1YWdlPWVuLXVzJyAtRGVzdGluYXRpb24gTWlj
cm9zb2Z0RWRnZVNldHVwLmV4ZQorICAgICAgaWYgKC1ub3QgKFRlc3QtUGF0aCAkZWRnZUluc3Rh
bGxlck5hbWUpKSB7CisgICAgICAgIFRocm93ICJGYWlsZWQgdG8gZG93bmxvYWQgRWRnZSBpbnN0
YWxsZXIgdG8gJGVkZ2VJbnN0YWxsZXJOYW1lLiIKKyAgICAgIH0KKyAgICAgIGNtZCAvYyBTVEFS
VCAvV0FJVCAkZWRnZUluc3RhbGxlck5hbWUgL3NpbGVudCAvaW5zdGFsbAorICAgICAgJGVkZ2VQ
YXRoID0gIiRlbnY6bG9jYWxhcHBkYXRhXE1pY3Jvc29mdFxFZGdlIFN4U1xBcHBsaWNhdGlvbiIK
KyAgICAgIGlmIChUZXN0LVBhdGggJGVkZ2VQYXRoKSB7CisgICAgICAgIFdyaXRlLUhvc3QgIiMj
dnNvW3Rhc2sucHJlcGVuZHBhdGhdJGVkZ2VQYXRoIgorICAgICAgICBXcml0ZS1Ib3N0ICJFZGdl
IENhbmFyeSBpbnN0YWxsZWQgYXQgJGVkZ2VQYXRoLiIKKyAgICAgICAgKEdldC1JdGVtIC1QYXRo
ICIkZWRnZVBhdGhcbXNlZGdlLmV4ZSIpLlZlcnNpb25JbmZvIHwgRm9ybWF0LUxpc3QKKyAgICAg
IH0gZWxzZSB7CisgICAgICAgIENvcHktSXRlbSAtUGF0aCAiJGVudjp0ZW1wXCplZGdlKi5sb2ci
IC1EZXN0aW5hdGlvbiAkKEJ1aWxkLkFydGlmYWN0U3RhZ2luZ0RpcmVjdG9yeSkgIC1Gb3JjZQor
ICAgICAgICBUaHJvdyAiRmFpbGVkIHRvIGluc3RhbGwgRWRnZSBDYW5hcnkgYXQgJGVkZ2VQYXRo
IgorICAgICAgfQorICAgIGRpc3BsYXlOYW1lOiAnSW5zdGFsbCBFZGdlIENhbmFyeScKKy0gJHt7
IGlmIGVxKHBhcmFtZXRlcnMuY2hhbm5lbCwgJ2RldicpIH19OgorICAtIHBvd2Vyc2hlbGw6IHwK
KyAgICAgICRlZGdlSW5zdGFsbGVyTmFtZSA9ICdNaWNyb3NvZnRFZGdlU2V0dXAuZXhlJworICAg
ICAgIyBMaW5rIHRvIERldiBjaGFubmVsIGluc3RhbGxlcgorICAgICAgU3RhcnQtQml0c1RyYW5z
ZmVyIC1Tb3VyY2UgJ2h0dHBzOi8vZ28ubWljcm9zb2Z0LmNvbS9md2xpbmsvP2xpbmtpZD0yMDY5
MzI0JkNoYW5uZWw9RGV2Jmxhbmd1YWdlPWVuLXVzJyAtRGVzdGluYXRpb24gTWljcm9zb2Z0RWRn
ZVNldHVwLmV4ZQorICAgICAgY21kIC9jIFNUQVJUIC9XQUlUICRlZGdlSW5zdGFsbGVyTmFtZSAv
c2lsZW50IC9pbnN0YWxsCisgICAgICAkZWRnZVBhdGggPSAiJGVudjpzeXN0ZW1kcml2ZVxQcm9n
cmFtIEZpbGVzICh4ODYpXE1pY3Jvc29mdFxFZGdlIERldlxBcHBsaWNhdGlvbiIKKyAgICAgIGlm
IChUZXN0LVBhdGggJGVkZ2VQYXRoKSB7CisgICAgICAgIFdyaXRlLUhvc3QgIiMjdnNvW3Rhc2su
cHJlcGVuZHBhdGhdJGVkZ2VQYXRoIgorICAgICAgICBXcml0ZS1Ib3N0ICJFZGdlIENhbmFyeSBp
bnN0YWxsZWQgYXQgJGVkZ2VQYXRoLiIKKyAgICAgICAgKEdldC1JdGVtIC1QYXRoICIkZWRnZVBh
dGhcbXNlZGdlLmV4ZSIpLlZlcnNpb25JbmZvIHwgRm9ybWF0LUxpc3QKKyAgICAgIH0gZWxzZSB7
CisgICAgICAgIENvcHktSXRlbSAtUGF0aCAiJGVudjp0ZW1wXCplZGdlKi5sb2ciIC1EZXN0aW5h
dGlvbiAkKEJ1aWxkLkFydGlmYWN0U3RhZ2luZ0RpcmVjdG9yeSkgLUZvcmNlCisgICAgICAgIFRo
cm93ICJGYWlsZWQgdG8gaW5zdGFsbCBFZGdlIERldiBhdCAkZWRnZVBhdGgiCisgICAgICB9Cisg
ICAgZGlzcGxheU5hbWU6ICdJbnN0YWxsIEVkZ2UgRGV2JwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9jaS9henVyZS9pbnN0YWxs
X2ZpcmVmb3gueW1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy9jaS9henVyZS9pbnN0YWxsX2ZpcmVmb3gueW1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmRlNmQwMzM1
ZjIyMWY2ZDIyMTVlYmRjOGVmNWQyZWUyNjlmZGZkZjMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2NpL2F6dXJlL2lu
c3RhbGxfZmlyZWZveC55bWwKQEAgLTAsMCArMSw2IEBACitzdGVwczoKKyMgVGhpcyBpcyBlcXVp
dmFsZW50IHRvIGBIb21lYnJldy9ob21lYnJldy1jYXNrLXZlcnNpb25zL2ZpcmVmb3gtbmlnaHRs
eWAsCisjIGJ1dCB0aGUgcmF3IFVSTCBpcyB1c2VkIHRvIGJ5cGFzcyBjYWNoaW5nLgorLSBzY3Jp
cHQ6IEhPTUVCUkVXX05PX0FVVE9fVVBEQVRFPTEgYnJldyBjYXNrIGluc3RhbGwgaHR0cHM6Ly9y
YXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL0hvbWVicmV3L2hvbWVicmV3LWNhc2stdmVyc2lvbnMv
bWFzdGVyL0Nhc2tzL2ZpcmVmb3gtbmlnaHRseS5yYgorICBkaXNwbGF5TmFtZTogJ0luc3RhbGwg
RmlyZWZveCBOaWdodGx5JworICBjb25kaXRpb246IGFuZChzdWNjZWVkZWQoKSwgZXEodmFyaWFi
bGVzWydBZ2VudC5PUyddLCAnRGFyd2luJykpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2NpL2F6dXJlL2luc3RhbGxfZm9udHMu
eW1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9j
aS9henVyZS9pbnN0YWxsX2ZvbnRzLnltbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zNDhlYjc0NTRlMDY0Y2FkNTVi
OGEyZTZjZTllYmRmOTY3MjJlNGRkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9jaS9henVyZS9pbnN0YWxsX2ZvbnRz
LnltbApAQCAtMCwwICsxLDUgQEAKK3N0ZXBzOgorIyBJbnN0YWxsaWcgQWhlbSBpbiAvTGlicmFy
eS9Gb250cyBpbnN0ZWFkIG9mIHVzaW5nIC0taW5zdGFsbC1mb250cyBpcyBhCisjIHdvcmthcm91
bmQgZm9yIGh0dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxhdGZvcm0tdGVzdHMvd3B0L2lzc3Vlcy8x
MzgwMy4KKy0gc2NyaXB0OiBzdWRvIGNwIGZvbnRzL0FoZW0udHRmIC9MaWJyYXJ5L0ZvbnRzCisg
IGRpc3BsYXlOYW1lOiAnSW5zdGFsbCBBaGVtIGZvbnQnCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2NpL2F6dXJlL2luc3RhbGxf
cHl0aG9uLnltbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvY2kvYXp1cmUvaW5zdGFsbF9weXRob24ueW1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjY1ODUyMzliYzhj
Y2Q5NjU0ZGYxODgwNDIzYzc2MTFlNmRiYmVhNjIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2NpL2F6dXJlL2luc3Rh
bGxfcHl0aG9uLnltbApAQCAtMCwwICsxLDE1IEBACitzdGVwczoKKy0gcG93ZXJzaGVsbDogfAor
ICAgIFN0YXJ0LUJpdHNUcmFuc2ZlciAtU291cmNlIGh0dHBzOi8vd3d3LnB5dGhvbi5vcmcvZnRw
L3B5dGhvbi8yLjcuMTUvcHl0aG9uLTIuNy4xNS5hbWQ2NC5tc2kgLURlc3RpbmF0aW9uIHB5dGhv
bi5tc2kKKyAgICAkaGFzaCA9IChHZXQtRmlsZUhhc2ggcHl0aG9uLm1zaSkuSGFzaC5Ub0xvd2Vy
KCkKKyAgICAkZXhwZWN0ZWRIYXNoID0gIjVlODVmM2M0YzIwOWRlOTg0ODBhY2JmMmJhMmU3MWE5
MDdmZDU1NjdhODM4YWQ0YjY3NDhjNzZkZWIyODZhZDciCisgICAgaWYgKCRoYXNoLkVxdWFscygk
ZXhwZWN0ZWRIYXNoKSkgeworICAgICAgV3JpdGUtSG9zdCAicHl0aG9uLm1zaSBoYXNoIHZlcmlm
aWVkIgorICAgIH0gZWxzZSB7CisgICAgICBUaHJvdyAicHl0aG9uLm1zaSBoYXNoIG1pc21hdGNo
LCBnb3QgJGhhc2gsIGV4cGVjdGVkICRleHBlY3RlZEhhc2giCisgICAgfQorICAgIG1zaWV4ZWMg
L2kgcHl0aG9uLm1zaSBUQVJHRVRESVI9QzpcUHl0aG9uMjcgL3EKKyAgICBXcml0ZS1Ib3N0ICIj
I3Zzb1t0YXNrLnByZXBlbmRwYXRoXUM6XFB5dGhvbjI3IgorICAgIFdyaXRlLUhvc3QgIiMjdnNv
W3Rhc2sucHJlcGVuZHBhdGhdQzpcUHl0aG9uMjdcU2NyaXB0cyIKKyAgZGlzcGxheU5hbWU6ICdJ
bnN0YWxsIFB5dGhvbiAoV2luZG93cyknCisgIGNvbmRpdGlvbjogYW5kKHN1Y2NlZWRlZCgpLCBl
cSh2YXJpYWJsZXNbJ0FnZW50Lk9TJ10sICdXaW5kb3dzX05UJykpCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2NpL2F6dXJlL2lu
c3RhbGxfc2FmYXJpLnltbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvY2kvYXp1cmUvaW5zdGFsbF9zYWZhcmkueW1sCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmE4NjQx
NDY1YWM4ZWFlNzAwODZiZDBjZWQ0YTgwZDNhMmRhMzUxMTMKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2NpL2F6dXJl
L2luc3RhbGxfc2FmYXJpLnltbApAQCAtMCwwICsxLDIwIEBACitwYXJhbWV0ZXJzOgorICBjaGFu
bmVsOiBwcmV2aWV3CisKKyMgU2hvdWxkIG1hdGNoIGh0dHBzOi8vd2ViLXBsYXRmb3JtLXRlc3Rz
Lm9yZy9ydW5uaW5nLXRlc3RzL3NhZmFyaS5odG1sCitzdGVwczoKKy0gJHt7IGlmIGVxKHBhcmFt
ZXRlcnMuY2hhbm5lbCwgJ3ByZXZpZXcnKSB9fToKKyAgLSBzY3JpcHQ6IHwKKyAgICAgIEhPTUVC
UkVXX05PX0FVVE9fVVBEQVRFPTEgYnJldyBjYXNrIGluc3RhbGwgdG9vbHMvY2kvYXp1cmUvc2Fm
YXJpLXRlY2hub2xvZ3ktcHJldmlldy5yYgorICAgICAgc3VkbyAiL0FwcGxpY2F0aW9ucy9TYWZh
cmkgVGVjaG5vbG9neSBQcmV2aWV3LmFwcC9Db250ZW50cy9NYWNPUy9zYWZhcmlkcml2ZXIiIC0t
ZW5hYmxlCisgICAgICBkZWZhdWx0cyB3cml0ZSBjb20uYXBwbGUuU2FmYXJpVGVjaG5vbG9neVBy
ZXZpZXcgV2ViS2l0SmF2YVNjcmlwdENhbk9wZW5XaW5kb3dzQXV0b21hdGljYWxseSAxCisgICAg
ICBkZWZhdWx0cyB3cml0ZSBjb20uYXBwbGUuU2FmYXJpVGVjaG5vbG9neVByZXZpZXcgRXhwZXJp
bWVudGFsU2VydmVyVGltaW5nRW5hYmxlZCAxCisgICAgZGlzcGxheU5hbWU6ICdJbnN0YWxsIFNh
ZmFyaSBUZWNobm9sb2d5IFByZXZpZXcnCistICR7eyBpZiBlcShwYXJhbWV0ZXJzLmNoYW5uZWws
ICdzdGFibGUnKSB9fToKKyAgLSBzY3JpcHQ6IHwKKyAgICAgICMgV29ya2Fyb3VuZCBmb3IgYHN1
ZG8gc2FmYXJkcml2ZXIgLS1lbmFibGVgIG5vdCB3b3JraW5nOgorICAgICAgIyBodHRwczovL2dp
dGh1Yi5jb20vd2ViLXBsYXRmb3JtLXRlc3RzL3dwdC9pc3N1ZXMvMTk4NDUKKyAgICAgIG1rZGly
IC1wIH4vTGlicmFyeS9XZWJEcml2ZXIvCisgICAgICBjcCB0b29scy9jaS9henVyZS9jb20uYXBw
bGUuU2FmYXJpLnBsaXN0IH4vTGlicmFyeS9XZWJEcml2ZXIvCisgICAgICBkZWZhdWx0cyB3cml0
ZSBjb20uYXBwbGUuU2FmYXJpIFdlYktpdEphdmFTY3JpcHRDYW5PcGVuV2luZG93c0F1dG9tYXRp
Y2FsbHkgMQorICAgIGRpc3BsYXlOYW1lOiAnQ29uZmlndXJlIFNhZmFyaScKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvY2kvYXp1
cmUvcGlwX2luc3RhbGwueW1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy9jaS9henVyZS9waXBfaW5zdGFsbC55bWwKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzg3OTUz
NDVmNmJjZjRhOTQzZTA3YTQ1OTk0N2U3MThhZDZhMGFmYwotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvY2kvYXp1cmUv
cGlwX2luc3RhbGwueW1sCkBAIC0wLDAgKzEsMTUgQEAKK3BhcmFtZXRlcnM6CisgIHBhY2thZ2Vz
OiAnJworCitzdGVwczoKKy0gc2NyaXB0OiB8CisgICAgIyBgc3VkbyBwaXAgaW5zdGFsbGAgaXMg
bm90IHVzZWQgYmVjYXVzZSBzb21lIHBhY2thZ2VzIChlLmcuIHRveCkgZGVwZW5kIG9uCisgICAg
IyBzeXN0ZW0gcGFja2FnZXMgKGUuZy4gc2V0dXB0b29scykgd2hpY2ggY2Fubm90IGJlIHVwZ3Jh
ZGVkIGR1ZSB0byBTeXN0ZW0KKyAgICAjIEludGVncml0eSBQcm90ZWN0aW9uLCBzZWUgaHR0cHM6
Ly9zdGFja292ZXJmbG93LmNvbS9hLzMzMDA0OTIwLgorICAgIHBpcCBpbnN0YWxsIC0tdXNlciAk
e3sgcGFyYW1ldGVycy5wYWNrYWdlcyB9fQorICAgIGVjaG8gIiMjdnNvW3Rhc2sucHJlcGVuZHBh
dGhdJEhPTUUvTGlicmFyeS9QeXRob24vMi43L2JpbiIKKyAgZGlzcGxheU5hbWU6ICdJbnN0YWxs
IFB5dGhvbiBwYWNrYWdlcyAobWFjT1MpJworICBjb25kaXRpb246IGFuZChzdWNjZWVkZWQoKSwg
ZXEodmFyaWFibGVzWydBZ2VudC5PUyddLCAnRGFyd2luJykpCistIHNjcmlwdDogcGlwIC0tZGlz
YWJsZS1waXAtdmVyc2lvbi1jaGVjayBpbnN0YWxsIC0tdXBncmFkZSAke3sgcGFyYW1ldGVycy5w
YWNrYWdlcyB9fQorICBkaXNwbGF5TmFtZTogJ0luc3RhbGwgUHl0aG9uIHBhY2thZ2VzIChXaW5k
b3dzKScKKyAgY29uZGl0aW9uOiBhbmQoc3VjY2VlZGVkKCksIGVxKHZhcmlhYmxlc1snQWdlbnQu
T1MnXSwgJ1dpbmRvd3NfTlQnKSkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvY2kvYXp1cmUvc2FmYXJpLXRlY2hub2xvZ3ktcHJl
dmlldy5yYiBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvY2kvYXp1cmUvc2FmYXJpLXRlY2hub2xvZ3ktcHJldmlldy5yYgpuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iMzI3
MzliZTU4YTcwMjhkNWZmNGEyZGU5YjU2ZGZiN2VhMDk5ODJiCi0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9jaS9henVy
ZS9zYWZhcmktdGVjaG5vbG9neS1wcmV2aWV3LnJiCkBAIC0wLDAgKzEsMzMgQEAKK2Nhc2sgJ3Nh
ZmFyaS10ZWNobm9sb2d5LXByZXZpZXcnIGRvCisgIGlmIE1hY09TLnZlcnNpb24gPD0gOm1vamF2
ZQorICAgIHZlcnNpb24gJzk2LDA2MS00NDA1Ni0yMDE5MTEyMC1hYzdiYjE5Ni0yNzI0LTQ4NDAt
YmNlOS02YzgzZWNkYmZiMmMnCisgICAgc2hhMjU2ICdlODBjZWFjZGZmN2U3NTIxODM2NTk5M2U1
YWYxYzgxYzliY2M0Nzg1MjkxYWUwMGFiYmEzZDE0YWM1NjE0MzE3JworICBlbHNlCisgICAgdmVy
c2lvbiAnOTYsMDYxLTQ3NzE4LTIwMTkxMTIwLTAyYmM3NTY5LWVlNmItNGMyOC05ZWM0LTBjZWVk
YTNjM2MzYScKKyAgICBzaGEyNTYgJ2JiZmNkYzM2YmY5YjU1YWVjNTgzOGQ2NmUzNGM0MWRkM2Y2
YTY0MDkxNDA2YmMzOGY0NWM4ODgzNjBmMTkxZmUnCisgIGVuZAorCisgIHVybCAiaHR0cHM6Ly9z
ZWN1cmUtYXBwbGRubGQuYXBwbGUuY29tL1NUUC8je3ZlcnNpb24uYWZ0ZXJfY29tbWF9L1NhZmFy
aVRlY2hub2xvZ3lQcmV2aWV3LmRtZyIKKyAgYXBwY2FzdCAnaHR0cHM6Ly9kZXZlbG9wZXIuYXBw
bGUuY29tL3NhZmFyaS9kb3dubG9hZC8nCisgIG5hbWUgJ1NhZmFyaSBUZWNobm9sb2d5IFByZXZp
ZXcnCisgIGhvbWVwYWdlICdodHRwczovL2RldmVsb3Blci5hcHBsZS5jb20vc2FmYXJpL2Rvd25s
b2FkLycKKworICBhdXRvX3VwZGF0ZXMgdHJ1ZQorICBkZXBlbmRzX29uIG1hY29zOiAnPj0gOm1v
amF2ZScKKworICBwa2cgJ1NhZmFyaSBUZWNobm9sb2d5IFByZXZpZXcucGtnJworCisgIHVuaW5z
dGFsbCBkZWxldGU6ICcvQXBwbGljYXRpb25zL1NhZmFyaSBUZWNobm9sb2d5IFByZXZpZXcuYXBw
JworCisgIHphcCB0cmFzaDogWworICAgICAgICAgICAgICAgJ34vTGlicmFyeS9BcHBsaWNhdGlv
biBTdXBwb3J0L2NvbS5hcHBsZS5zaGFyZWRmaWxlbGlzdC9jb20uYXBwbGUuTFNTaGFyZWRGaWxl
TGlzdC5BcHBsaWNhdGlvblJlY2VudERvY3VtZW50cy9jb20uYXBwbGUuc2FmYXJpdGVjaG5vbG9n
eXByZXZpZXcuc2ZsKicsCisgICAgICAgICAgICAgICAnfi9MaWJyYXJ5L0NhY2hlcy9jb20uYXBw
bGUuU2FmYXJpVGVjaG5vbG9neVByZXZpZXcnLAorICAgICAgICAgICAgICAgJ34vTGlicmFyeS9Q
cmVmZXJlbmNlcy9jb20uYXBwbGUuU2FmYXJpVGVjaG5vbG9neVByZXZpZXcucGxpc3QnLAorICAg
ICAgICAgICAgICAgJ34vTGlicmFyeS9TYWZhcmlUZWNobm9sb2d5UHJldmlldycsCisgICAgICAg
ICAgICAgICAnfi9MaWJyYXJ5L1NhdmVkIEFwcGxpY2F0aW9uIFN0YXRlL2NvbS5hcHBsZS5TYWZh
cmlUZWNobm9sb2d5UHJldmlldy5zYXZlZFN0YXRlJywKKyAgICAgICAgICAgICAgICd+L0xpYnJh
cnkvU3luY2VkUHJlZmVyZW5jZXMvY29tLmFwcGxlLlNhZmFyaVRlY2hub2xvZ3lQcmV2aWV3LWNv
bS5hcHBsZS5TYWZhcmkuVXNlclJlcXVlc3RzLnBsaXN0JywKKyAgICAgICAgICAgICAgICd+L0xp
YnJhcnkvU3luY2VkUHJlZmVyZW5jZXMvY29tLmFwcGxlLlNhZmFyaVRlY2hub2xvZ3lQcmV2aWV3
LWNvbS5hcHBsZS5TYWZhcmkuV2ViRmVlZFN1YnNjcmlwdGlvbnMucGxpc3QnLAorICAgICAgICAg
ICAgICAgJ34vTGlicmFyeS9TeW5jZWRQcmVmZXJlbmNlcy9jb20uYXBwbGUuU2FmYXJpVGVjaG5v
bG9neVByZXZpZXcucGxpc3QnLAorICAgICAgICAgICAgICAgJ34vTGlicmFyeS9XZWJLaXQvY29t
LmFwcGxlLlNhZmFyaVRlY2hub2xvZ3lQcmV2aWV3JywKKyAgICAgICAgICAgICBdCitlbmQKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvY2kvYXp1cmUvc3lzdGVtX2luZm8ueW1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy9jaS9henVyZS9zeXN0ZW1faW5mby55bWwKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uY2MzN2IzNWI4NTNjMDFjZGQ0ZjYwNzVkOWExNGMxZmZmZDZhNGMzYQotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
Y2kvYXp1cmUvc3lzdGVtX2luZm8ueW1sCkBAIC0wLDAgKzEsNCBAQAorc3RlcHM6CistIHNjcmlw
dDogc3lzdGVtaW5mbworICBkaXNwbGF5TmFtZTogJ1Nob3cgc3lzdGVtIGluZm8gKFdpbmRvd3Mp
JworICBjb25kaXRpb246IGFuZChzdWNjZWVkZWQoKSwgZXEodmFyaWFibGVzWydBZ2VudC5PUydd
LCAnV2luZG93c19OVCcpKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy9jaS9henVyZS90b3hfcHl0ZXN0LnltbCBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvY2kvYXp1cmUvdG94X3B5
dGVzdC55bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uYmM5MzA4MzZkM2Q3YjY2YmM2M2FjMjM5MmI1MDVmZDk5YWYz
ZTExZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvY2kvYXp1cmUvdG94X3B5dGVzdC55bWwKQEAgLTAsMCArMSwxOCBA
QAorcGFyYW1ldGVyczoKKyAgZGlyZWN0b3J5OiAnJworICB0b3hlbnY6ICdBTEwnCisKK3N0ZXBz
OgorLSB0ZW1wbGF0ZTogcGlwX2luc3RhbGwueW1sCisgIHBhcmFtZXRlcnM6CisgICAgcGFja2Fn
ZXM6IHRveAorCistIHNjcmlwdDogdG94IC1jICR7eyBwYXJhbWV0ZXJzLmRpcmVjdG9yeSB9fSAt
ZSAke3sgcGFyYW1ldGVycy50b3hlbnYgfX0gLS0gLS1qdW5pdHhtbD1yZXN1bHRzLnhtbAorICBk
aXNwbGF5TmFtZTogJ1J1biB0ZXN0cycKKworLSB0YXNrOiBQdWJsaXNoVGVzdFJlc3VsdHNAMgor
ICBpbnB1dHM6CisgICAgdGVzdFJlc3VsdHNGaWxlczogJyR7eyBwYXJhbWV0ZXJzLmRpcmVjdG9y
eSB9fS9yZXN1bHRzLnhtbCcKKyAgICB0ZXN0UnVuVGl0bGU6ICcke3sgcGFyYW1ldGVycy5kaXJl
Y3RvcnkgfX0nCisgIGRpc3BsYXlOYW1lOiAnUHVibGlzaCByZXN1bHRzJworICBjb25kaXRpb246
IHN1Y2NlZWRlZE9yRmFpbGVkKCkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvY2kvYXp1cmUvdXBkYXRlX2hvc3RzLnltbCBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvY2kvYXp1cmUv
dXBkYXRlX2hvc3RzLnltbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42M2M3ZTQ1ODExMjk3YTJkZDUzNDJiM2IzYWI5
MDkzYWNhYjZmNWNkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9jaS9henVyZS91cGRhdGVfaG9zdHMueW1sCkBAIC0w
LDAgKzEsMTAgQEAKK3N0ZXBzOgorLSBzY3JpcHQ6IC4vd3B0IG1ha2UtaG9zdHMtZmlsZSB8IHN1
ZG8gdGVlIC1hIC9ldGMvaG9zdHMKKyAgZGlzcGxheU5hbWU6ICdVcGRhdGUgaG9zdHMgKG1hY09T
KScKKyAgY29uZGl0aW9uOiBhbmQoc3VjY2VlZGVkKCksIGVxKHZhcmlhYmxlc1snQWdlbnQuT1Mn
XSwgJ0RhcndpbicpKQorLSBwb3dlcnNoZWxsOiB8CisgICAgJGhvc3RGaWxlID0gIiRlbnY6c3lz
dGVtcm9vdFxTeXN0ZW0zMlxkcml2ZXJzXGV0Y1xob3N0cyIKKyAgICBDb3B5LUl0ZW0gLVBhdGgg
JGhvc3RGaWxlIC1EZXN0aW5hdGlvbiAiJGhvc3RGaWxlLmJhY2siIC1Gb3JjZQorICAgIHB5dGhv
biB3cHQgbWFrZS1ob3N0cy1maWxlIHwgT3V0LUZpbGUgJGVudjpzeXN0ZW1yb290XFN5c3RlbTMy
XGRyaXZlcnNcZXRjXGhvc3RzIC1FbmNvZGluZyBhc2NpaSAtQXBwZW5kCisgIGRpc3BsYXlOYW1l
OiAnVXBkYXRlIGhvc3RzIChXaW5kb3dzKScKKyAgY29uZGl0aW9uOiBhbmQoc3VjY2VlZGVkKCks
IGVxKHZhcmlhYmxlc1snQWdlbnQuT1MnXSwgJ1dpbmRvd3NfTlQnKSkKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvY2kvYXp1cmUv
dXBkYXRlX21hbmlmZXN0LnltbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvY2kvYXp1cmUvdXBkYXRlX21hbmlmZXN0LnltbApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40
NTNhYzJhYzNjMDVjZjg3M2JjZjY2ZDFiZTk5MDMyNGJkMjAwMzZlCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9jaS9h
enVyZS91cGRhdGVfbWFuaWZlc3QueW1sCkBAIC0wLDAgKzEsNCBAQAorc3RlcHM6CisjIGBweXRo
b24gd3B0YCBpbnN0ZWFkIG9mIGAuL3dwdGAgaXMgdG8gbWFrZSB0aGlzIHdvcmsgb24gV2luZG93
czoKKy0gc2NyaXB0OiBweXRob24gd3B0IG1hbmlmZXN0CisgIGRpc3BsYXlOYW1lOiAnVXBkYXRl
IG1hbmlmZXN0JwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy9jaS9iZWZvcmVfaW5zdGFsbC5zaCBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvY2kvYmVmb3JlX2luc3RhbGwuc2gKZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGY2ZWY4NGYwMDI2ODFhMDFhNzczNjdjNDZmNWM2
MjZmNTJiNDk4ZjcuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0t
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9jaS9i
ZWZvcmVfaW5zdGFsbC5zaAorKysgL2Rldi9udWxsCkBAIC0xLDE1ICswLDAgQEAKLSMhL2Jpbi9i
YXNoCi1zZXQgLWUKLQotUkVMRVZBTlRfSk9CUz0kKC4vd3B0IHRlc3Qtam9icykKLVJFTEVWQU5U
X0NIQU5HRVM9JChlY2hvICIkUkVMRVZBTlRfSk9CUyIgfCBncmVwICRKT0IgfHwgdHJ1ZSkKLWlm
IFtbIC16ICR7UlVOX0pPQit4fSAmJiAhIC16ICRSRUxFVkFOVF9DSEFOR0VTIF1dIHx8IFtbICRS
VU5fSk9CIC1lcSAxIF1dOyB0aGVuCi0gICAgZXhwb3J0IFJVTl9KT0I9MQotICAgIGdpdCBzdWJt
b2R1bGUgdXBkYXRlIC0taW5pdCAtLXJlY3Vyc2l2ZSAxPiYyCi0gICAgZXhwb3J0IERJU1BMQVk9
Ojk5LjAKLSAgICBzaCAtZSAvZXRjL2luaXQuZC94dmZiIHN0YXJ0IDE+JjIKLSAgICAjIEZvciB1
cGxvYWRpbmcgdGhlIG1hbmlmZXN0Ci0gICAgZXhwb3J0IFdQVF9NQU5JRkVTVF9GSUxFPSRIT01F
L21ldGEvTUFOSUZFU1QtJChnaXQgcmV2LXBhcnNlIEhFQUQpLmpzb24KLWVsaWYgW1sgLXogJHtS
VU5fSk9CK3h9IF1dOyB0aGVuCi0gICAgZXhwb3J0IFJVTl9KT0I9MAotZmkKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvY2kvY2hl
Y2tfc3RhYmlsaXR5LnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy9jaS9jaGVja19zdGFiaWxpdHkucHkKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDMyMzVjZWU1YWM2ODA2ZjhmOTEyNTA3YTdlYzk5ZTUyYzczZDdjOWEuLjAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9jaS9jaGVja19zdGFiaWxpdHkucHkKKysr
IC9kZXYvbnVsbApAQCAtMSwzMTMgKzAsMCBAQAotZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCBwcmlu
dF9mdW5jdGlvbgotCi1pbXBvcnQgYXJncGFyc2UKLWltcG9ydCBsb2dnaW5nCi1pbXBvcnQgb3MK
LWltcG9ydCBzdWJwcm9jZXNzCi1pbXBvcnQgc3lzCi1mcm9tIENvbmZpZ1BhcnNlciBpbXBvcnQg
U2FmZUNvbmZpZ1BhcnNlcgotCi1oZXJlID0gb3MucGF0aC5kaXJuYW1lKF9fZmlsZV9fKQotd3B0
X3Jvb3QgPSBvcy5wYXRoLmFic3BhdGgob3MucGF0aC5qb2luKGhlcmUsIG9zLnBhcmRpciwgb3Mu
cGFyZGlyKSkKLXN5cy5wYXRoLmluc2VydCgwLCB3cHRfcm9vdCkKLQotZnJvbSB0b29scy53cHQg
aW1wb3J0IHRlc3RmaWxlcwotZnJvbSB0b29scy53cHQudGVzdGZpbGVzIGltcG9ydCBnZXRfZ2l0
X2NtZAotZnJvbSB0b29scy53cHQudmlydHVhbGVudiBpbXBvcnQgVmlydHVhbGVudgotZnJvbSB0
b29scy53cHQudXRpbHMgaW1wb3J0IEt3YXJncwotZnJvbSB0b29scy53cHQucnVuIGltcG9ydCBj
cmVhdGVfcGFyc2VyLCBzZXR1cF93cHRydW5uZXIKLWZyb20gdG9vbHMud3B0IGltcG9ydCBtYXJr
ZG93bgotZnJvbSB0b29scyBpbXBvcnQgbG9jYWxwYXRocyAgIyBub3FhOiBGNDAxCi0KLWxvZ2dl
ciA9IE5vbmUKLXJ1bl9zdGVwLCB3cml0ZV9pbmNvbnNpc3RlbnQsIHdyaXRlX3Jlc3VsdHMgPSBO
b25lLCBOb25lLCBOb25lCi13cHRydW5uZXIgPSBOb25lCi0KLWRlZiBzZXR1cF9sb2dnaW5nKCk6
Ci0gICAgIiIiU2V0IHVwIGJhc2ljIGRlYnVnIGxvZ2dlci4iIiIKLSAgICBnbG9iYWwgbG9nZ2Vy
Ci0gICAgbG9nZ2VyID0gbG9nZ2luZy5nZXRMb2dnZXIoaGVyZSkKLSAgICBoYW5kbGVyID0gbG9n
Z2luZy5TdHJlYW1IYW5kbGVyKHN5cy5zdGRvdXQpCi0gICAgZm9ybWF0dGVyID0gbG9nZ2luZy5G
b3JtYXR0ZXIobG9nZ2luZy5CQVNJQ19GT1JNQVQsIE5vbmUpCi0gICAgaGFuZGxlci5zZXRGb3Jt
YXR0ZXIoZm9ybWF0dGVyKQotICAgIGxvZ2dlci5hZGRIYW5kbGVyKGhhbmRsZXIpCi0gICAgbG9n
Z2VyLnNldExldmVsKGxvZ2dpbmcuREVCVUcpCi0KLQotZGVmIGRvX2RlbGF5ZWRfaW1wb3J0cygp
OgotICAgIGdsb2JhbCB3cHRydW5uZXIsIHJ1bl9zdGVwLCB3cml0ZV9pbmNvbnNpc3RlbnQsIHdy
aXRlX3Jlc3VsdHMKLSAgICBmcm9tIHdwdHJ1bm5lciBpbXBvcnQgd3B0cnVubmVyCi0gICAgZnJv
bSB3cHRydW5uZXIuc3RhYmlsaXR5IGltcG9ydCBydW5fc3RlcCwgd3JpdGVfaW5jb25zaXN0ZW50
LCB3cml0ZV9yZXN1bHRzCi0KLQotY2xhc3MgVHJhdmlzRm9sZChvYmplY3QpOgotICAgICIiIkNv
bnRleHQgZm9yIFRyYXZpc0NJIGZvbGRpbmcgbWVjaGFuaXNtLiBTdWJjbGFzc2VzIG9iamVjdC4K
LQotICAgIFNlZTogaHR0cHM6Ly9ibG9nLnRyYXZpcy1jaS5jb20vMjAxMy0wNS0yMi1pbXByb3Zp
bmctYnVpbGQtdmlzaWJpbGl0eS1sb2ctZm9sZHMvCi0gICAgIiIiCi0KLSAgICBkZWYgX19pbml0
X18oc2VsZiwgbmFtZSk6Ci0gICAgICAgICIiIlJlZ2lzdGVyIFRyYXZpc0NJIGZvbGRpbmcgc2Vj
dGlvbiBuYW1lLiIiIgotICAgICAgICBzZWxmLm5hbWUgPSBuYW1lCi0KLSAgICBkZWYgX19lbnRl
cl9fKHNlbGYpOgotICAgICAgICAiIiJFbWl0IGZvbGQgc3RhcnQgc3ludGF4LiIiIgotICAgICAg
ICBwcmludCgidHJhdmlzX2ZvbGQ6c3RhcnQ6JXMiICUgc2VsZi5uYW1lLCBmaWxlPXN5cy5zdGRl
cnIpCi0KLSAgICBkZWYgX19leGl0X18oc2VsZiwgdHlwZSwgdmFsdWUsIHRyYWNlYmFjayk6Ci0g
ICAgICAgICIiIkVtaXQgZm9sZCBlbmQgc3ludGF4LiIiIgotICAgICAgICBwcmludCgidHJhdmlz
X2ZvbGQ6ZW5kOiVzIiAlIHNlbGYubmFtZSwgZmlsZT1zeXMuc3RkZXJyKQotCi0KLWNsYXNzIEZp
bHRlcmVkSU8ob2JqZWN0KToKLSAgICAiIiJXcmFwIGEgZmlsZSBvYmplY3QsIGludm9raW5nIHRo
ZSBwcm92aWRlZCBjYWxsYmFjayBmb3IgZXZlcnkgY2FsbCB0bwotICAgIGB3cml0ZWAgYW5kIG9u
bHkgcHJvY2VlZGluZyB3aXRoIHRoZSBvcGVyYXRpb24gd2hlbiB0aGF0IGNhbGxiYWNrIHJldHVy
bnMKLSAgICBUcnVlLiIiIgotICAgIGRlZiBfX2luaXRfXyhzZWxmLCBvcmlnaW5hbCwgb25fd3Jp
dGUpOgotICAgICAgICBzZWxmLm9yaWdpbmFsID0gb3JpZ2luYWwKLSAgICAgICAgc2VsZi5vbl93
cml0ZSA9IG9uX3dyaXRlCi0KLSAgICBkZWYgX19nZXRhdHRyX18oc2VsZiwgbmFtZSk6Ci0gICAg
ICAgIHJldHVybiBnZXRhdHRyKHNlbGYub3JpZ2luYWwsIG5hbWUpCi0KLSAgICBkZWYgZGlzYWJs
ZShzZWxmKToKLSAgICAgICAgc2VsZi53cml0ZSA9IGxhbWJkYSBtc2c6IE5vbmUKLQotICAgIGRl
ZiB3cml0ZShzZWxmLCBtc2cpOgotICAgICAgICBlbmNvZGVkID0gbXNnLmVuY29kZSgidXRmOCIs
ICJiYWNrc2xhc2hyZXBsYWNlIikuZGVjb2RlKCJ1dGY4IikKLSAgICAgICAgaWYgc2VsZi5vbl93
cml0ZShzZWxmLm9yaWdpbmFsLCBlbmNvZGVkKSBpcyBUcnVlOgotICAgICAgICAgICAgc2VsZi5v
cmlnaW5hbC53cml0ZShlbmNvZGVkKQotCi0KLWRlZiByZXBsYWNlX3N0cmVhbXMoY2FwYWNpdHks
IHdhcm5pbmdfbXNnKToKLSAgICAjIFZhbHVlIG11c3QgYmUgYm94ZWQgdG8gc3VwcG9ydCBtb2Rp
ZmljYXRpb24gZnJvbSBpbm5lciBmdW5jdGlvbiBzY29wZQotICAgIGNvdW50ID0gWzBdCi0gICAg
Y2FwYWNpdHkgLT0gMiArIGxlbih3YXJuaW5nX21zZykKLSAgICBzdGRlcnIgPSBzeXMuc3RkZXJy
Ci0KLSAgICBkZWYgb25fd3JpdGUoaGFuZGxlLCBtc2cpOgotICAgICAgICBsZW5ndGggPSBsZW4o
bXNnKQotICAgICAgICBjb3VudFswXSArPSBsZW5ndGgKLQotICAgICAgICBpZiBjb3VudFswXSA+
IGNhcGFjaXR5OgotICAgICAgICAgICAgd3JhcHBlZF9zdGRvdXQuZGlzYWJsZSgpCi0gICAgICAg
ICAgICB3cmFwcGVkX3N0ZGVyci5kaXNhYmxlKCkKLSAgICAgICAgICAgIGhhbmRsZS53cml0ZSht
c2dbMDpjYXBhY2l0eSAtIGNvdW50WzBdXSkKLSAgICAgICAgICAgIGhhbmRsZS5mbHVzaCgpCi0g
ICAgICAgICAgICBzdGRlcnIud3JpdGUoIlxuJXNcbiIgJSB3YXJuaW5nX21zZykKLSAgICAgICAg
ICAgIHJldHVybiBGYWxzZQotCi0gICAgICAgIHJldHVybiBUcnVlCi0KLSAgICAjIFN0b3JlIGxv
Y2FsIHJlZmVyZW5jZXMgdG8gdGhlIHJlcGxhY2VkIHN0cmVhbXMgdG8gZ3VhcmQgYWdhaW5zdCB0
aGUgY2FzZQotICAgICMgd2hlcmUgb3RoZXIgY29kZSByZXBsYWNlIHRoZSBnbG9iYWwgcmVmZXJl
bmNlcy4KLSAgICBzeXMuc3Rkb3V0ID0gd3JhcHBlZF9zdGRvdXQgPSBGaWx0ZXJlZElPKHN5cy5z
dGRvdXQsIG9uX3dyaXRlKQotICAgIHN5cy5zdGRlcnIgPSB3cmFwcGVkX3N0ZGVyciA9IEZpbHRl
cmVkSU8oc3lzLnN0ZGVyciwgb25fd3JpdGUpCi0KLQotZGVmIGNhbGwoKmFyZ3MpOgotICAgICIi
IkxvZyB0ZXJtaW5hbCBjb21tYW5kLCBpbnZva2UgaXQgYXMgYSBzdWJwcm9jZXNzLgotCi0gICAg
UmV0dXJucyBhIGJ5dGVzdHJpbmcgb2YgdGhlIHN1YnByb2Nlc3Mgb3V0cHV0IGlmIG5vIGVycm9y
LgotICAgICIiIgotICAgIGxvZ2dlci5kZWJ1ZygiJXMiICUgIiAiLmpvaW4oYXJncykpCi0gICAg
dHJ5OgotICAgICAgICByZXR1cm4gc3VicHJvY2Vzcy5jaGVja19vdXRwdXQoYXJncykKLSAgICBl
eGNlcHQgc3VicHJvY2Vzcy5DYWxsZWRQcm9jZXNzRXJyb3IgYXMgZToKLSAgICAgICAgbG9nZ2Vy
LmNyaXRpY2FsKCIlcyBleGl0ZWQgd2l0aCByZXR1cm4gY29kZSAlaSIgJQotICAgICAgICAgICAg
ICAgICAgICAgICAgKGUuY21kLCBlLnJldHVybmNvZGUpKQotICAgICAgICBsb2dnZXIuY3JpdGlj
YWwoZS5vdXRwdXQpCi0gICAgICAgIHJhaXNlCi0KLWRlZiBmZXRjaF93cHQodXNlciwgKmFyZ3Mp
OgotICAgIGdpdCA9IGdldF9naXRfY21kKHdwdF9yb290KQotICAgIGdpdCgiZmV0Y2giLCAiaHR0
cHM6Ly9naXRodWIuY29tLyVzL3dlYi1wbGF0Zm9ybS10ZXN0cy5naXQiICUgdXNlciwgKmFyZ3Mp
Ci0KLQotZGVmIGdldF9zaGExKCk6Ci0gICAgIiIiIEdldCBhbmQgcmV0dXJuIHNoYTEgb2YgY3Vy
cmVudCBnaXQgYnJhbmNoIEhFQUQgY29tbWl0LiIiIgotICAgIGdpdCA9IGdldF9naXRfY21kKHdw
dF9yb290KQotICAgIHJldHVybiBnaXQoInJldi1wYXJzZSIsICJIRUFEIikuc3RyaXAoKQotCi0K
LWRlZiBkZWVwZW5fY2hlY2tvdXQodXNlcik6Ci0gICAgIiIiQ29udmVydCBmcm9tIGEgc2hhbGxv
dyBjaGVja291dCB0byBhIGZ1bGwgb25lIiIiCi0gICAgZmV0Y2hfYXJncyA9IFt1c2VyLCAiK3Jl
ZnMvaGVhZHMvKjpyZWZzL3JlbW90ZXMvb3JpZ2luLyoiXQotICAgIGlmIG9zLnBhdGguZXhpc3Rz
KG9zLnBhdGguam9pbih3cHRfcm9vdCwgIi5naXQiLCAic2hhbGxvdyIpKToKLSAgICAgICAgZmV0
Y2hfYXJncy5pbnNlcnQoMSwgIi0tdW5zaGFsbG93IikKLSAgICBmZXRjaF93cHQoKmZldGNoX2Fy
Z3MpCi0KLQotZGVmIGdldF9wYXJzZXIoKToKLSAgICAiIiJDcmVhdGUgYW5kIHJldHVybiBzY3Jp
cHQtc3BlY2lmaWMgYXJndW1lbnQgcGFyc2VyLiIiIgotICAgIGRlc2NyaXB0aW9uID0gIiIiRGV0
ZWN0IGluc3RhYmlsaXRpZXMgaW4gbmV3IHRlc3RzIGJ5IGV4ZWN1dGluZyB0ZXN0cwotICAgIHJl
cGVhdGVkbHkgYW5kIGNvbXBhcmluZyByZXN1bHRzIGJldHdlZW4gZXhlY3V0aW9ucy4iIiIKLSAg
ICBwYXJzZXIgPSBhcmdwYXJzZS5Bcmd1bWVudFBhcnNlcihkZXNjcmlwdGlvbj1kZXNjcmlwdGlv
bikKLSAgICBwYXJzZXIuYWRkX2FyZ3VtZW50KCItLXVzZXIiLAotICAgICAgICAgICAgICAgICAg
ICAgICAgYWN0aW9uPSJzdG9yZSIsCi0gICAgICAgICAgICAgICAgICAgICAgICAjIFRyYXZpcyBk
b2NzIHNheSBkbyBub3QgZGVwZW5kIG9uIFVTRVIgZW52IHZhcmlhYmxlLgotICAgICAgICAgICAg
ICAgICAgICAgICAgIyBUaGlzIGlzIGEgd29ya2Fyb3VuZCB0byBnZXQgd2hhdCBzaG91bGQgYmUg
dGhlIHNhbWUgdmFsdWUKLSAgICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ9b3MuZW52aXJv
bi5nZXQoIlRSQVZJU19SRVBPX1NMVUciLCAidzNjIikuc3BsaXQoJy8nKVswXSwKLSAgICAgICAg
ICAgICAgICAgICAgICAgIGhlbHA9IlRyYXZpcyB1c2VyIG5hbWUiKQotICAgIHBhcnNlci5hZGRf
YXJndW1lbnQoIi0tb3V0cHV0LWJ5dGVzIiwKLSAgICAgICAgICAgICAgICAgICAgICAgIGFjdGlv
bj0ic3RvcmUiLAotICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1pbnQsCi0gICAgICAgICAg
ICAgICAgICAgICAgICBoZWxwPSJNYXhpbXVtIG51bWJlciBvZiBieXRlcyB0byB3cml0ZSB0byBz
dGFuZGFyZCBvdXRwdXQvZXJyb3IiKQotICAgIHBhcnNlci5hZGRfYXJndW1lbnQoIi0tbWV0YWRh
dGEiLAotICAgICAgICAgICAgICAgICAgICAgICAgZGVzdD0ibWV0YWRhdGFfcm9vdCIsCi0gICAg
ICAgICAgICAgICAgICAgICAgICBhY3Rpb249InN0b3JlIiwKLSAgICAgICAgICAgICAgICAgICAg
ICAgIGRlZmF1bHQ9d3B0X3Jvb3QsCi0gICAgICAgICAgICAgICAgICAgICAgICBoZWxwPSJEaXJl
Y3RvcnkgdGhhdCB3aWxsIGNvbnRhaW4gTUFOSUZFU1QuanNvbiIpCi0gICAgcGFyc2VyLmFkZF9h
cmd1bWVudCgiLS1jb25maWctZmlsZSIsCi0gICAgICAgICAgICAgICAgICAgICAgICBhY3Rpb249
InN0b3JlIiwKLSAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9c3RyLAotICAgICAgICAgICAg
ICAgICAgICAgICAgaGVscD0iTG9jYXRpb24gb2YgaW5pLWZvcm1hdHRlZCBjb25maWd1cmF0aW9u
IGZpbGUiLAotICAgICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdD0iY2hlY2tfc3RhYmlsaXR5
LmluaSIpCi0gICAgcGFyc2VyLmFkZF9hcmd1bWVudCgiLS1yZXYiLAotICAgICAgICAgICAgICAg
ICAgICAgICAgYWN0aW9uPSJzdG9yZSIsCi0gICAgICAgICAgICAgICAgICAgICAgICBkZWZhdWx0
PU5vbmUsCi0gICAgICAgICAgICAgICAgICAgICAgICBoZWxwPSJDb21taXQgcmFuZ2UgdG8gdXNl
IikKLSAgICByZXR1cm4gcGFyc2VyCi0KLQotZGVmIHByKCk6Ci0gICAgcHIgPSBvcy5lbnZpcm9u
LmdldCgiVFJBVklTX1BVTExfUkVRVUVTVCIsICJmYWxzZSIpCi0gICAgcmV0dXJuIHByIGlmIHBy
ICE9ICJmYWxzZSIgZWxzZSBOb25lCi0KLQotZGVmIGdldF9jaGFuZ2VkX2ZpbGVzKG1hbmlmZXN0
X3BhdGgsIHJldiwgaWdub3JlX2NoYW5nZXMsIHNraXBfdGVzdHMpOgotICAgIGlmIG5vdCByZXY6
Ci0gICAgICAgIGJyYW5jaF9wb2ludCA9IHRlc3RmaWxlcy5icmFuY2hfcG9pbnQoKQotICAgICAg
ICByZXZpc2ggPSAiJXMuLkhFQUQiICUgYnJhbmNoX3BvaW50Ci0gICAgZWxzZToKLSAgICAgICAg
cmV2aXNoID0gcmV2Ci0KLSAgICBmaWxlc19jaGFuZ2VkLCBmaWxlc19pZ25vcmVkID0gdGVzdGZp
bGVzLmZpbGVzX2NoYW5nZWQocmV2aXNoLCBpZ25vcmVfY2hhbmdlcykKLQotICAgIGlmIGZpbGVz
X2lnbm9yZWQ6Ci0gICAgICAgIGxvZ2dlci5pbmZvKCJJZ25vcmluZyAlcyBjaGFuZ2VkIGZpbGVz
OlxuJXMiICUKLSAgICAgICAgICAgICAgICAgICAgKGxlbihmaWxlc19pZ25vcmVkKSwgIiIuam9p
bigiICogJXNcbiIgJSBpdGVtIGZvciBpdGVtIGluIGZpbGVzX2lnbm9yZWQpKSkKLQotICAgIHRl
c3RzX2NoYW5nZWQsIGZpbGVzX2FmZmVjdGVkID0gdGVzdGZpbGVzLmFmZmVjdGVkX3Rlc3RmaWxl
cyhmaWxlc19jaGFuZ2VkLCBza2lwX3Rlc3RzLAotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYW5pZmVzdF9wYXRoPW1hbmlm
ZXN0X3BhdGgpCi0KLSAgICByZXR1cm4gdGVzdHNfY2hhbmdlZCwgZmlsZXNfYWZmZWN0ZWQKLQot
Ci1kZWYgbWFpbigpOgotICAgICIiIlBlcmZvcm0gY2hlY2tfc3RhYmlsaXR5IGZ1bmN0aW9uYWxp
dHkgYW5kIHJldHVybiBleGl0IGNvZGUuIiIiCi0KLSAgICB2ZW52ID0gVmlydHVhbGVudihvcy5l
bnZpcm9uLmdldCgiVklSVFVBTF9FTlYiLCBvcy5wYXRoLmpvaW4od3B0X3Jvb3QsICJfdmVudiIp
KSkKLSAgICB2ZW52Lmluc3RhbGxfcmVxdWlyZW1lbnRzKG9zLnBhdGguam9pbih3cHRfcm9vdCwg
InRvb2xzIiwgIndwdHJ1bm5lciIsICJyZXF1aXJlbWVudHMudHh0IikpCi0KLSAgICBhcmdzLCB3
cHRfYXJncyA9IGdldF9wYXJzZXIoKS5wYXJzZV9rbm93bl9hcmdzKCkKLSAgICByZXR1cm4gcnVu
KHZlbnYsIHdwdF9hcmdzLCAqKnZhcnMoYXJncykpCi0KLQotZGVmIHJ1bih2ZW52LCB3cHRfYXJn
cywgKiprd2FyZ3MpOgotICAgIGRvX2RlbGF5ZWRfaW1wb3J0cygpCi0KLSAgICByZXRjb2RlID0g
MAotCi0gICAgd3B0X2FyZ3MgPSBjcmVhdGVfcGFyc2VyKCkucGFyc2VfYXJncyh3cHRfYXJncykK
LQotICAgIHdpdGggb3Blbihrd2FyZ3NbImNvbmZpZ19maWxlIl0sICdyJykgYXMgY29uZmlnX2Zw
OgotICAgICAgICBjb25maWcgPSBTYWZlQ29uZmlnUGFyc2VyKCkKLSAgICAgICAgY29uZmlnLnJl
YWRmcChjb25maWdfZnApCi0gICAgICAgIHNraXBfdGVzdHMgPSBjb25maWcuZ2V0KCJmaWxlIGRl
dGVjdGlvbiIsICJza2lwX3Rlc3RzIikuc3BsaXQoKQotICAgICAgICBpZ25vcmVfY2hhbmdlcyA9
IHNldChjb25maWcuZ2V0KCJmaWxlIGRldGVjdGlvbiIsICJpZ25vcmVfY2hhbmdlcyIpLnNwbGl0
KCkpCi0KLSAgICBpZiBrd2FyZ3NbIm91dHB1dF9ieXRlcyJdIGlzIG5vdCBOb25lOgotICAgICAg
ICByZXBsYWNlX3N0cmVhbXMoa3dhcmdzWyJvdXRwdXRfYnl0ZXMiXSwKLSAgICAgICAgICAgICAg
ICAgICAgICAgICJMb2cgcmVhY2hlZCBjYXBhY2l0eSAoJXMgYnl0ZXMpOyBvdXRwdXQgZGlzYWJs
ZWQuIiAlIGt3YXJnc1sib3V0cHV0X2J5dGVzIl0pCi0KLQotICAgIHdwdF9hcmdzLm1ldGFkYXRh
X3Jvb3QgPSBrd2FyZ3NbIm1ldGFkYXRhX3Jvb3QiXQotICAgIHRyeToKLSAgICAgICAgb3MubWFr
ZWRpcnMod3B0X2FyZ3MubWV0YWRhdGFfcm9vdCkKLSAgICBleGNlcHQgT1NFcnJvcjoKLSAgICAg
ICAgcGFzcwotCi0gICAgc2V0dXBfbG9nZ2luZygpCi0KLSAgICBwcl9udW1iZXIgPSBwcigpCi0K
LSAgICB3aXRoIFRyYXZpc0ZvbGQoImJyb3dzZXJfc2V0dXAiKToKLSAgICAgICAgbG9nZ2VyLmlu
Zm8obWFya2Rvd24uZm9ybWF0X2NvbW1lbnRfdGl0bGUod3B0X2FyZ3MucHJvZHVjdCkpCi0KLSAg
ICAgICAgaWYgcHIgaXMgbm90IE5vbmU6Ci0gICAgICAgICAgICBkZWVwZW5fY2hlY2tvdXQoa3dh
cmdzWyJ1c2VyIl0pCi0KLSAgICAgICAgIyBFbnN1cmUgd2UgaGF2ZSBhIGJyYW5jaCBjYWxsZWQg
Im1hc3RlciIKLSAgICAgICAgZmV0Y2hfd3B0KGt3YXJnc1sidXNlciJdLCAibWFzdGVyOm1hc3Rl
ciIpCi0KLSAgICAgICAgaGVhZF9zaGExID0gZ2V0X3NoYTEoKQotICAgICAgICBsb2dnZXIuaW5m
bygiVGVzdGluZyB3ZWItcGxhdGZvcm0tdGVzdHMgYXQgcmV2aXNpb24gJXMiICUgaGVhZF9zaGEx
KQotCi0gICAgICAgIHdwdF9rd2FyZ3MgPSBLd2FyZ3ModmFycyh3cHRfYXJncykpCi0KLSAgICAg
ICAgaWYgbm90IHdwdF9rd2FyZ3NbInRlc3RfbGlzdCJdOgotICAgICAgICAgICAgbWFuaWZlc3Rf
cGF0aCA9IG9zLnBhdGguam9pbih3cHRfa3dhcmdzWyJtZXRhZGF0YV9yb290Il0sICJNQU5JRkVT
VC5qc29uIikKLSAgICAgICAgICAgIHRlc3RzX2NoYW5nZWQsIGZpbGVzX2FmZmVjdGVkID0gZ2V0
X2NoYW5nZWRfZmlsZXMobWFuaWZlc3RfcGF0aCwga3dhcmdzWyJyZXYiXSwKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWdub3Jl
X2NoYW5nZXMsIHNraXBfdGVzdHMpCi0KLSAgICAgICAgICAgIGlmIG5vdCAodGVzdHNfY2hhbmdl
ZCBvciBmaWxlc19hZmZlY3RlZCk6Ci0gICAgICAgICAgICAgICAgbG9nZ2VyLmluZm8oIk5vIHRl
c3RzIGNoYW5nZWQiKQotICAgICAgICAgICAgICAgIHJldHVybiAwCi0KLSAgICAgICAgICAgIGlm
IHRlc3RzX2NoYW5nZWQ6Ci0gICAgICAgICAgICAgICAgbG9nZ2VyLmRlYnVnKCJUZXN0cyBjaGFu
Z2VkOlxuJXMiICUgIiIuam9pbigiICogJXNcbiIgJSBpdGVtIGZvciBpdGVtIGluIHRlc3RzX2No
YW5nZWQpKQotCi0gICAgICAgICAgICBpZiBmaWxlc19hZmZlY3RlZDoKLSAgICAgICAgICAgICAg
ICBsb2dnZXIuZGVidWcoIkFmZmVjdGVkIHRlc3RzOlxuJXMiICUgIiIuam9pbigiICogJXNcbiIg
JSBpdGVtIGZvciBpdGVtIGluIGZpbGVzX2FmZmVjdGVkKSkKLQotICAgICAgICAgICAgd3B0X2t3
YXJnc1sidGVzdF9saXN0Il0gPSBsaXN0KHRlc3RzX2NoYW5nZWQgfCBmaWxlc19hZmZlY3RlZCkK
LQotICAgICAgICBkb19kZWxheWVkX2ltcG9ydHMoKQotCi0gICAgICAgIHdwdF9rd2FyZ3NbInBy
b21wdCJdID0gRmFsc2UKLSAgICAgICAgd3B0X2t3YXJnc1siaW5zdGFsbF9icm93c2VyIl0gPSBU
cnVlCi0gICAgICAgIHdwdF9rd2FyZ3NbImluc3RhbGwiXSA9IHdwdF9rd2FyZ3NbInByb2R1Y3Qi
XS5zcGxpdCgiOiIpWzBdID09ICJmaXJlZm94IgotCi0gICAgICAgIHdwdF9rd2FyZ3NbInBhdXNl
X2FmdGVyX3Rlc3QiXSA9IEZhbHNlCi0gICAgICAgIHdwdF9rd2FyZ3NbInZlcmlmeV9sb2dfZnVs
bCJdID0gRmFsc2UKLSAgICAgICAgaWYgd3B0X2t3YXJnc1sicmVwZWF0Il0gPT0gMToKLSAgICAg
ICAgICAgIHdwdF9rd2FyZ3NbInJlcGVhdCJdID0gMTAKLQotICAgICAgICB3cHRfa3dhcmdzID0g
c2V0dXBfd3B0cnVubmVyKHZlbnYsICoqd3B0X2t3YXJncykKLQotICAgICAgICBsb2dnZXIuaW5m
bygiVXNpbmcgYmluYXJ5ICVzIiAlIHdwdF9rd2FyZ3NbImJpbmFyeSJdKQotCi0KLSAgICB3aXRo
IFRyYXZpc0ZvbGQoInJ1bm5pbmdfdGVzdHMiKToKLSAgICAgICAgbG9nZ2VyLmluZm8oIlN0YXJ0
aW5nIHRlc3RzIikKLQotICAgICAgICB3cHRfbG9nZ2VyID0gd3B0cnVubmVyLmxvZ2dlcgotICAg
ICAgICByZXN1bHRzLCBpbmNvbnNpc3RlbnQsIGl0ZXJhdGlvbnMgPSBydW5fc3RlcCh3cHRfbG9n
Z2VyLCB3cHRfa3dhcmdzWyJyZXBlYXQiXSwgVHJ1ZSwge30sICoqd3B0X2t3YXJncykKLQotICAg
IGlmIHJlc3VsdHM6Ci0gICAgICAgIGlmIGluY29uc2lzdGVudDoKLSAgICAgICAgICAgIHdyaXRl
X2luY29uc2lzdGVudChsb2dnZXIuZXJyb3IsIGluY29uc2lzdGVudCwgaXRlcmF0aW9ucykKLSAg
ICAgICAgICAgIHJldGNvZGUgPSAyCi0gICAgICAgIGVsc2U6Ci0gICAgICAgICAgICBsb2dnZXIu
aW5mbygiQWxsIHJlc3VsdHMgd2VyZSBzdGFibGVcbiIpCi0gICAgICAgIHdpdGggVHJhdmlzRm9s
ZCgiZnVsbF9yZXN1bHRzIik6Ci0gICAgICAgICAgICB3cml0ZV9yZXN1bHRzKGxvZ2dlci5pbmZv
LCByZXN1bHRzLCBpdGVyYXRpb25zLAotICAgICAgICAgICAgICAgICAgICAgICAgICBwcl9udW1i
ZXI9cHJfbnVtYmVyLAotICAgICAgICAgICAgICAgICAgICAgICAgICB1c2VfZGV0YWlscz1UcnVl
KQotICAgIGVsc2U6Ci0gICAgICAgIGxvZ2dlci5pbmZvKCJObyB0ZXN0cyBydW4uIikKLSAgICAg
ICAgIyBCZSBjb25zZXJ2YXRpdmUgYW5kIG9ubHkgcmV0dXJuIGVycm9ycyB3aGVuIHdlIGtub3cg
Zm9yIHN1cmUgdGVzdHMgYXJlIGNoYW5nZWQuCi0gICAgICAgIGlmIHRlc3RzX2NoYW5nZWQ6Ci0g
ICAgICAgICAgICByZXRjb2RlID0gMwotCi0gICAgcmV0dXJuIHJldGNvZGUKLQotCi1pZiBfX25h
bWVfXyA9PSAiX19tYWluX18iOgotICAgIHRyeToKLSAgICAgICAgc3lzLmV4aXQobWFpbigpKQot
ICAgIGV4Y2VwdCBFeGNlcHRpb246Ci0gICAgICAgIGltcG9ydCB0cmFjZWJhY2sKLSAgICAgICAg
dHJhY2ViYWNrLnByaW50X2V4YygpCi0gICAgICAgIHN5cy5leGl0KDEpCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2NpL2NpX2J1
aWx0X2RpZmYuc2ggYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL2NpL2NpX2J1aWx0X2RpZmYuc2gKb2xkIG1vZGUgMTAwNjQ0Cm5ldyBtb2RlIDEwMDc1
NQppbmRleCAzNGYyNGE3NDI1YjI5ZGE2NzM5Y2RlM2E2ZDdiZGRmODcxNzU5Yzg4Li43MDljYzJh
YTdlNjg2N2Y1NDhkNGVmZGQ2MmQ3NGFiYzE4NWU2NTdiCi0tLSBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvY2kvY2lfYnVpbHRfZGlmZi5zaAorKysg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2NpL2Np
X2J1aWx0X2RpZmYuc2gKQEAgLTEsNyArMSw4IEBACisjIS9iaW4vYmFzaAogc2V0IC1leAogCi1T
Q1JJUFRfRElSPSQoZGlybmFtZSAkKHJlYWRsaW5rIC1mICIkMCIpKQotV1BUX1JPT1Q9JChyZWFk
bGluayAtZiAkU0NSSVBUX0RJUi8uLi8uLikKK1NDUklQVF9ESVI9JChjZCAkKGRpcm5hbWUgIiQw
IikgJiYgcHdkIC1QKQorV1BUX1JPT1Q9JFNDUklQVF9ESVIvLi4vLi4KIGNkICRXUFRfUk9PVAog
CiBtYWluKCkgewpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy9jaS9jaV9saW50LnNoIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9jaS9jaV9saW50LnNoCmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCA0NmIzMTdlMWExOTNiNTcxNjFjNTI0YjJjMTBiM2Q0MmZkM2JlYWRhLi4w
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvY2kvY2lfbGludC5zaAorKysg
L2Rldi9udWxsCkBAIC0xLDkgKzAsMCBAQAotc2V0IC1leAotCi1TQ1JJUFRfRElSPSQoZGlybmFt
ZSAkKHJlYWRsaW5rIC1mICIkMCIpKQotV1BUX1JPT1Q9JChyZWFkbGluayAtZiAkU0NSSVBUX0RJ
Ui8uLi8uLikKLWNkICRXUFRfUk9PVAotCi1ta2RpciAtcCB+L21ldGEKLS4vd3B0IG1hbmlmZXN0
IC1wIH4vbWV0YS9NQU5JRkVTVC5qc29uCi0uL3dwdCBsaW50CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2NpL2NpX21hbmlmZXN0
LnNoIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9j
aS9jaV9tYW5pZmVzdC5zaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZjEzYTcwZjkz
NTQzNmE1MDI1ODExNWNmMDA2ZDY5MTNkMGFmN2VhYi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL2NpL2NpX21hbmlmZXN0LnNoCisrKyAvZGV2L251bGwKQEAgLTEsMTMg
KzAsMCBAQAotc2V0IC1leAotCi1TQ1JJUFRfRElSPSQoZGlybmFtZSAkKHJlYWRsaW5rIC1mICIk
MCIpKQotV1BUX1JPT1Q9JChyZWFkbGluayAtZiAkU0NSSVBUX0RJUi8uLi8uLikKLWNkICRXUFRf
Uk9PVAotCi1ta2RpciAtcCB+L21ldGEKLQotcHl0aG9uIHRvb2xzL2NpL3RhZ19tYXN0ZXIucHkK
LS4vd3B0IG1hbmlmZXN0IC1wIH4vbWV0YS9NQU5JRkVTVC5qc29uCi1jcCB+L21ldGEvTUFOSUZF
U1QuanNvbiAkV1BUX01BTklGRVNUX0ZJTEUKLSMgRm9yY2Ugb3ZlcndyaXRlIG9mIGFueSBleGlz
dGluZyBmaWxlCi1nemlwIC1mICRXUFRfTUFOSUZFU1RfRklMRQpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9jaS9jaV9yZXNvdXJj
ZXNfdW5pdHRlc3Quc2ggYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL2NpL2NpX3Jlc291cmNlc191bml0dGVzdC5zaApvbGQgbW9kZSAxMDA2NDQKbmV3
IG1vZGUgMTAwNzU1CmluZGV4IDc4ODY4YjkzNDMzZTgwMWY5ODc4MmY2MDVlYjlmNjY2YzZlZmU5
Y2QuLjExMTkwZmM1OGQ2NDQ5MWJhZTcxOWY5YWM5MWFkYjFlODc5ODg2ZmIKLS0tIGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9jaS9jaV9yZXNvdXJj
ZXNfdW5pdHRlc3Quc2gKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy9jaS9jaV9yZXNvdXJjZXNfdW5pdHRlc3Quc2gKQEAgLTEsMjMgKzEsMTkg
QEAKICMhL2Jpbi9iYXNoCiBzZXQgLWV4CiAKLVNDUklQVF9ESVI9JChkaXJuYW1lICQocmVhZGxp
bmsgLWYgIiQwIikpCi1XUFRfUk9PVD0kKHJlYWRsaW5rIC1mICRTQ1JJUFRfRElSLy4uLy4uKQor
U0NSSVBUX0RJUj0kKGNkICQoZGlybmFtZSAiJDAiKSAmJiBwd2QgLVApCitXUFRfUk9PVD0kU0NS
SVBUX0RJUi8uLi8uLgogY2QgJFdQVF9ST09UCiAKLXNvdXJjZSB0b29scy9jaS9saWIuc2gKLQog
bWFpbigpIHsKLSAgICBob3N0c19maXh1cAotCiAgICAgY2QgJFdQVF9ST09UCi0gICAgcGlwIGlu
c3RhbGwgLVUgdG94CisgICAgcGlwIGluc3RhbGwgLS11c2VyIC1VIHRveAogICAgIC4vd3B0IGlu
c3RhbGwgZmlyZWZveCBicm93c2VyIC0tZGVzdGluYXRpb24gJEhPTUUKICAgICAuL3dwdCBpbnN0
YWxsIGZpcmVmb3ggd2ViZHJpdmVyIC0tZGVzdGluYXRpb24gJEhPTUUvZmlyZWZveAogICAgIGV4
cG9ydCBQQVRIPSRIT01FL2ZpcmVmb3g6JFBBVEgKIAogICAgIGNkICRXUFRfUk9PVC9yZXNvdXJj
ZXMvdGVzdAotICAgIHRveCAtLSAtLWJpbmFyeT0kSE9NRS9icm93c2Vycy9maXJlZm94L2ZpcmVm
b3gKKyAgICB0b3ggLS0gLS1iaW5hcnk9JEhPTUUvYnJvd3NlcnMvbmlnaHRseS9maXJlZm94L2Zp
cmVmb3gKIH0KIAogbWFpbgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy9jaS9jaV9zdGFiaWxpdHkuc2ggYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2NpL2NpX3N0YWJpbGl0eS5zaApk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYTIzYjA1NzM4NTNhNTNmZTU1MjBkOGZhNmFh
YjAyZjgwYjUzYTE4ZC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAot
LS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2Np
L2NpX3N0YWJpbGl0eS5zaAorKysgL2Rldi9udWxsCkBAIC0xLDMwICswLDAgQEAKLSMhL2Jpbi9i
YXNoCi1zZXQgLWV4Ci0KLVNDUklQVF9ESVI9JChkaXJuYW1lICQocmVhZGxpbmsgLWYgIiQwIikp
Ci1XUFRfUk9PVD0kKHJlYWRsaW5rIC1mICRTQ1JJUFRfRElSLy4uLy4uKQotY2QgJFdQVF9ST09U
Ci0KLXNvdXJjZSB0b29scy9jaS9saWIuc2gKLQotdGVzdF9zdGFiaWxpdHkoKSB7Ci0gICAgbG9j
YWwgZXh0cmFfYXJnPSQxCi0gICAgLi93cHQgY2hlY2stc3RhYmlsaXR5ICRQUk9EVUNUICRleHRy
YV9hcmcgLS1vdXRwdXQtYnl0ZXMgJCgoMTAyNCAqIDEwMjQgKiAzKSkgLS1tZXRhZGF0YSB+L21l
dGEvIC0taW5zdGFsbC1mb250cwotfQotCi1tYWluKCkgewotICAgIGhvc3RzX2ZpeHVwCi0gICAg
bG9jYWwgZXh0cmFfYXJnPSIiCi0gICAgaWYgWyAkKGVjaG8gJFBST0RVQ1QgfCBncmVwICdeY2hy
b21lOicpIF07IHRoZW4KLSAgICAgICAgbG9jYWwgY2hhbm5lbD0kKGVjaG8gJFBST0RVQ1QgfCBn
cmVwIC0tb25seS1tYXRjaGluZyAnXHdcKyQnKQotICAgICAgICBpZiBbWyAkY2hhbm5lbCA9PSAi
ZGV2IiBdXTsgdGhlbgotICAgICAgICAgICAgIyBUaGUgcGFja2FnZSBuYW1lIGZvciBHb29nbGUg
Q2hyb21lIERldiB1c2VzICJ1bnN0YWJsZSIsIG5vdCAiZGV2Ii4KLSAgICAgICAgICAgIGNoYW5u
ZWw9InVuc3RhYmxlIgotICAgICAgICBmaQotICAgICAgICBpbnN0YWxsX2Nocm9tZSAkY2hhbm5l
bAotICAgICAgICBleHRyYV9hcmc9Ii0tYmluYXJ5PSQod2hpY2ggZ29vZ2xlLWNocm9tZS0kY2hh
bm5lbCkiCi0gICAgZmkKLSAgICB0ZXN0X3N0YWJpbGl0eSAkZXh0cmFfYXJnCi19Ci0KLW1haW4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvY2kvY2lfdGFza2NsdXN0ZXIuc2ggYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2NpL2NpX3Rhc2tjbHVzdGVyLnNoCmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAxMTgyNDM4ODFhOTM4YjlkMmNhZTBlYmNlMjY2MmM4ZWQ0MTZlYWE0
Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvY2kvY2lfdGFza2NsdXN0
ZXIuc2gKKysrIC9kZXYvbnVsbApAQCAtMSwxMCArMCwwIEBACi0jIS9iaW4vYmFzaAotCi0uL3dw
dCBtYW5pZmVzdC1kb3dubG9hZAotCi1pZiBbICQxID09ICJmaXJlZm94IiBdOyB0aGVuCi0gICAg
Li93cHQgcnVuIGZpcmVmb3ggLS1sb2ctdGJwbD0uLi9hcnRpZmFjdHMvbG9nX3RicGwubG9nIC0t
bG9nLXRicGwtbGV2ZWw9aW5mbyAtLWxvZy13cHRyZXBvcnQ9Li4vYXJ0aWZhY3RzL3dwdF9yZXBv
cnQuanNvbiAtLWxvZy1tYWNoPS0gLS10aGlzLWNodW5rPSQzIC0tdG90YWwtY2h1bmtzPSQ0IC0t
dGVzdC10eXBlPSQyIC15IC0taW5zdGFsbC1icm93c2VyIC0tbm8tcGF1c2UgLS1uby1yZXN0YXJ0
LW9uLXVuZXhwZWN0ZWQgLS1yZWZ0ZXN0LWludGVybmFsIC0taW5zdGFsbC1mb250cyAtLW5vLWZh
aWwtb24tdW5leHBlY3RlZAotZWxpZiBbICQxID09ICJjaHJvbWUiIF07IHRoZW4KLSAgICAuL3dw
dCBydW4gY2hyb21lIC0tbG9nLXRicGw9Li4vYXJ0aWZhY3RzL2xvZ190YnBsLmxvZyAtLWxvZy10
YnBsLWxldmVsPWluZm8gLS1sb2ctd3B0cmVwb3J0PS4uL2FydGlmYWN0cy93cHRfcmVwb3J0Lmpz
b24gLS1sb2ctbWFjaD0tIC0tdGhpcy1jaHVuaz0kMyAtLXRvdGFsLWNodW5rcz0kNCAtLXRlc3Qt
dHlwZT0kMiAteSAgLS1uby1wYXVzZSAtLW5vLXJlc3RhcnQtb24tdW5leHBlY3RlZCAtLWluc3Rh
bGwtZm9udHMgLS1uby1mYWlsLW9uLXVuZXhwZWN0ZWQKLWZpCi1nemlwIC4uL2FydGlmYWN0cy93
cHRfcmVwb3J0Lmpzb24KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvY2kvY2lfdG9vbHNfdW5pdHRlc3Quc2ggYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2NpL2NpX3Rvb2xzX3VuaXR0
ZXN0LnNoCm9sZCBtb2RlIDEwMDY0NApuZXcgbW9kZSAxMDA3NTUKaW5kZXggZWVhNjU5MGYzN2Fl
ZDdiNWNiZjZhYzJkOTFhZTEzMDZmMjRlOWM0NS4uMzY2ZGNmNjZkZTg4ZTZiYTI5ZmM4NWM5Njk3
ODMyZWVhZDkzNzZjMwotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL2NpL2NpX3Rvb2xzX3VuaXR0ZXN0LnNoCisrKyBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvY2kvY2lfdG9vbHNfdW5pdHRlc3Qu
c2gKQEAgLTEsOCArMSw4IEBACiAjIS9iaW4vYmFzaAogc2V0IC1leAogCi1TQ1JJUFRfRElSPSQo
ZGlybmFtZSAkKHJlYWRsaW5rIC1mICIkMCIpKQotV1BUX1JPT1Q9JChyZWFkbGluayAtZiAkU0NS
SVBUX0RJUi8uLi8uLikKK1NDUklQVF9ESVI9JChjZCAkKGRpcm5hbWUgIiQwIikgJiYgcHdkIC1Q
KQorV1BUX1JPT1Q9JFNDUklQVF9ESVIvLi4vLi4KIGNkICRXUFRfUk9PVAogCiBydW5fYXBwbGlj
YWJsZV90b3ggKCkgewpAQCAtMTgsMTEgKzE4LDggQEAgcnVuX2FwcGxpY2FibGVfdG94ICgpIHsK
ICAgICBleHBvcnQgVE9YRU5WPSIkT0xEX1RPWEVOViIKIH0KIAotUkVMRVZBTlRfSk9CUz0kKC4v
d3B0IHRlc3Qtam9icykKLQotUkVMRVZBTlRfQ0hBTkdFU19UT09MUz0kKGVjaG8gIiRSRUxFVkFO
VF9KT0JTIiB8IGdyZXAgInRvb2xzX3VuaXR0ZXN0IiB8fCB0cnVlKQotaWYgW1sgISAteiAkUkVM
RVZBTlRfQ0hBTkdFU19UT09MUyBdXTsgdGhlbgotICAgIHBpcCBpbnN0YWxsIC1VIHRveCBjb2Rl
Y292CitpZiAuL3dwdCB0ZXN0LWpvYnMgLS1pbmNsdWRlcyB0b29sc191bml0dGVzdDsgdGhlbgor
ICAgIHBpcCBpbnN0YWxsIC0tdXNlciAtVSB0b3ggY29kZWNvdgogICAgIGNkIHRvb2xzCiAgICAg
cnVuX2FwcGxpY2FibGVfdG94CiAgICAgY2QgJFdQVF9ST09UCkBAIC0zMCwxMiArMjcsMTAgQEAg
ZWxzZQogICAgIGVjaG8gIlNraXBwaW5nIHRvb2xzIHVuaXR0ZXN0IgogZmkKIAotUkVMRVZBTlRf
Q0hBTkdFU19XUFRSVU5ORVI9JChlY2hvICIkUkVMRVZBTlRfSk9CUyIgfCBncmVwICJ3cHRydW5u
ZXJfdW5pdHRlc3QiIHx8IHRydWUpCi1pZiBbWyAhIC16ICRSRUxFVkFOVF9DSEFOR0VTX1dQVFJV
Tk5FUiBdXTsgdGhlbgoraWYgLi93cHQgdGVzdC1qb2JzIC0taW5jbHVkZXMgd3B0cnVubmVyX3Vu
aXR0ZXN0OyB0aGVuCiAgICAgY2QgdG9vbHMvd3B0cnVubmVyCiAgICAgcnVuX2FwcGxpY2FibGVf
dG94CiAgICAgY2QgJFdQVF9ST09UCiBlbHNlCiAgICAgZWNobyAiU2tpcHBpbmcgd3B0cnVubmVy
IHVuaXR0ZXN0IgogZmkKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy9jaS9jaV93cHQuc2ggYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2NpL2NpX3dwdC5zaApvbGQgbW9kZSAxMDA2
NDQKbmV3IG1vZGUgMTAwNzU1CmluZGV4IDlhMTY1NmYzM2RhZDEzMDc2OGU1NGM5MmMzNWVmOTEy
OGI0ZjBiNzYuLjdjMzdlNzg2M2UwMDJkYjY2YzU5MDA5YWUzZDQzNjBhYWE3MTc0OTkKLS0tIGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9jaS9jaV93
cHQuc2gKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy9jaS9jaV93cHQuc2gKQEAgLTEsMTcgKzEsMTMgQEAKICMhL2Jpbi9iYXNoCiBzZXQgLWUK
IAotU0NSSVBUX0RJUj0kKGRpcm5hbWUgJChyZWFkbGluayAtZiAiJDAiKSkKLVdQVF9ST09UPSQo
cmVhZGxpbmsgLWYgJFNDUklQVF9ESVIvLi4vLi4pCitTQ1JJUFRfRElSPSQoY2QgJChkaXJuYW1l
ICIkMCIpICYmIHB3ZCAtUCkKK1dQVF9ST09UPSRTQ1JJUFRfRElSLy4uLy4uCiBjZCAkV1BUX1JP
T1QKIAotc291cmNlIHRvb2xzL2NpL2xpYi5zaAotCiBtYWluKCkgewogICAgIGdpdCBmZXRjaCAt
LXF1aWV0IC0tdW5zaGFsbG93IGh0dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxhdGZvcm0tdGVzdHMv
d3B0LmdpdCArcmVmcy9oZWFkcy8qOnJlZnMvcmVtb3Rlcy9vcmlnaW4vKgotICAgIGhvc3RzX2Zp
eHVwCi0gICAgaW5zdGFsbF9jaHJvbWUgdW5zdGFibGUKLSAgICBwaXAgaW5zdGFsbCAtVSB0b3gg
Y29kZWNvdgorICAgIHBpcCBpbnN0YWxsIC0tdXNlciAtVSB0b3ggY29kZWNvdgogICAgIGNkIHRv
b2xzL3dwdAogICAgIHRveAogfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9jaS9jaV93cHRydW5uZXJfaW5mcmFzdHJ1Y3R1cmUu
c2ggYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2Np
L2NpX3dwdHJ1bm5lcl9pbmZyYXN0cnVjdHVyZS5zaApvbGQgbW9kZSAxMDA2NDQKbmV3IG1vZGUg
MTAwNzU1CmluZGV4IGQ2ZDY4MDM5NzRmYjA1OGUxMWFlYmI2NWYxMjc1MmU0ODI0YTU3MWQuLjhk
YjA4Nzk0YWRlMjZiZWY4OTlmMDVjNDg5MGMyYjg4ZTY4ZGYyOTIKLS0tIGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9jaS9jaV93cHRydW5uZXJfaW5m
cmFzdHJ1Y3R1cmUuc2gKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy9jaS9jaV93cHRydW5uZXJfaW5mcmFzdHJ1Y3R1cmUuc2gKQEAgLTEsMTEg
KzEsMTMgQEAKICMhL2Jpbi9iYXNoCiBzZXQgLWV4CiAKLVNDUklQVF9ESVI9JChkaXJuYW1lICQo
cmVhZGxpbmsgLWYgIiQwIikpCi1XUFRfUk9PVD0kKHJlYWRsaW5rIC1mICRTQ1JJUFRfRElSLy4u
Ly4uKQorU0NSSVBUX0RJUj0kKGNkICQoZGlybmFtZSAiJDAiKSAmJiBwd2QgLVApCitXUFRfUk9P
VD0kU0NSSVBUX0RJUi8uLi8uLgogY2QgJFdQVF9ST09UCiAKLXNvdXJjZSB0b29scy9jaS9saWIu
c2gKK2FkZF93cHRfaG9zdHMoKSB7CisgICAgLi93cHQgbWFrZS1ob3N0cy1maWxlIHwgc3VkbyB0
ZWUgLWEgL2V0Yy9ob3N0cworfQogCiB0ZXN0X2luZnJhc3RydWN0dXJlKCkgewogICAgIGxvY2Fs
IEFSR1M9IiI7CkBAIC0xNCwyMCArMTYsMTYgQEAgdGVzdF9pbmZyYXN0cnVjdHVyZSgpIHsKICAg
ICBlbHNlCiAgICAgICAgIEFSR1M9JDEKICAgICBmaQotICAgIC4vd3B0IHJ1biAtLXllcyAtLW1h
bmlmZXN0IH4vbWV0YS9NQU5JRkVTVC5qc29uIC0tbWV0YWRhdGEgaW5mcmFzdHJ1Y3R1cmUvbWV0
YWRhdGEvIC0taW5zdGFsbC1mb250cyAkQVJHUyAkUFJPRFVDVCBpbmZyYXN0cnVjdHVyZS8KKyAg
ICBURVJNPWR1bWIgLi93cHQgcnVuIC0tbG9nLW1hY2ggLSAtLXllcyAtLW1hbmlmZXN0IH4vbWV0
YS9NQU5JRkVTVC5qc29uIC0tbWV0YWRhdGEgaW5mcmFzdHJ1Y3R1cmUvbWV0YWRhdGEvIC0taW5z
dGFsbC1mb250cyAkQVJHUyAkUFJPRFVDVCBpbmZyYXN0cnVjdHVyZS8KIH0KIAogbWFpbigpIHsK
ICAgICBQUk9EVUNUUz0oICJmaXJlZm94IiAiY2hyb21lIiApCisgICAgLi93cHQgbWFuaWZlc3Qg
LS1yZWJ1aWxkIC1wIH4vbWV0YS9NQU5JRkVTVC5qc29uCiAgICAgZm9yIFBST0RVQ1QgaW4gIiR7
UFJPRFVDVFNbQF19IjsgZG8KLSAgICAgICAgaWYgWyAiJFBST0RVQ1QiICE9ICJmaXJlZm94IiBd
OyB0aGVuCi0gICAgICAgICAgICAjIEZpcmVmb3ggaXMgZXhwZWN0ZWQgdG8gd29yayB1c2luZyBw
cmVmIHNldHRpbmdzIGZvciBETlMKLSAgICAgICAgICAgICMgRG9uJ3QgYWRqdXN0IHRoZSBob3N0
bmFtZXMgaW4gdGhhdCBjYXNlIHRvIGVuc3VyZSB0aGlzIGtlZXBzIHdvcmtpbmcKLSAgICAgICAg
ICAgIGhvc3RzX2ZpeHVwCi0gICAgICAgIGZpCi0gICAgICAgIGlmIFsgIiRQUk9EVUNUIiA9PSAi
Y2hyb21lIiBdOyB0aGVuCi0gICAgICAgICAgICBpbnN0YWxsX2Nocm9tZSB1bnN0YWJsZQotICAg
ICAgICAgICAgdGVzdF9pbmZyYXN0cnVjdHVyZSAiLS1iaW5hcnk9JCh3aGljaCBnb29nbGUtY2hy
b21lLXVuc3RhYmxlKSIKKyAgICAgICAgaWYgW1sgIiRQUk9EVUNUIiA9PSAiY2hyb21lIiBdXTsg
dGhlbgorICAgICAgICAgICAgYWRkX3dwdF9ob3N0cworICAgICAgICAgICAgdGVzdF9pbmZyYXN0
cnVjdHVyZSAiLS1iaW5hcnk9JCh3aGljaCBnb29nbGUtY2hyb21lLXVuc3RhYmxlKSAtLWNoYW5u
ZWwgZGV2IgogICAgICAgICBlbHNlCiAgICAgICAgICAgICB0ZXN0X2luZnJhc3RydWN0dXJlCiAg
ICAgICAgIGZpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL2NpL2NvbW1hbmRzLmpzb24gYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2NpL2NvbW1hbmRzLmpzb24KaW5kZXggMGY4ZjU4
MjM2OTk4OTBlNDM1MjAxNjg4NWQyZTdmYmZjMWE5YWYwOC4uYzljZDdjNDU4OTg5ZWM3N2JhY2Q2
NDVjZDUxNDUzNTE0NDNmZjczYyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9jaS9jb21tYW5kcy5qc29uCisrKyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvY2kvY29tbWFuZHMuanNv
bgpAQCAtMSw3ICsxLDUwIEBACiB7Ci0gICAgInRlc3Qtam9icyI6IHsicGF0aCI6ICJqb2JzLnB5
IiwgInNjcmlwdCI6ICJydW4iLCAicGFyc2VyIjogImNyZWF0ZV9wYXJzZXIiLCAiaGVscCI6ICJM
aXN0IHRlc3Qgam9icyB0aGF0IHNob3VsZCBydW4gZm9yIGEgc2V0IG9mIGNvbW1pdHMiLAotICAg
ICAgICAgICAgICAgICAgInZpcnR1YWxlbnYiOiBmYWxzZX0sCi0gICAgImNoZWNrLXN0YWJpbGl0
eSI6IHsicGF0aCI6ICJjaGVja19zdGFiaWxpdHkucHkiLCAic2NyaXB0IjogInJ1biIsICJwYXJz
ZXIiOiAiZ2V0X3BhcnNlciIsICJwYXJzZV9rbm93biI6IHRydWUsICJoZWxwIjogIkNoZWNrIHRl
c3Qgc3RhYmlsaXR5IiwKLSAgICAgICAgICAgICAgICAgICAgICAgICJ2aXJ0dWFsZW52IjogdHJ1
ZSwgImluc3RhbGwiOiBbInJlcXVlc3RzIl0sICJyZXF1aXJlbWVudHMiOiBbIi4uL3dwdHJ1bm5l
ci9yZXF1aXJlbWVudHMudHh0Il19LAotICAgICJtYWtlLWhvc3RzLWZpbGUiOiB7InBhdGgiOiAi
bWFrZV9ob3N0c19maWxlLnB5IiwgInNjcmlwdCI6ICJydW4iLCAicGFyc2VyIjogImNyZWF0ZV9w
YXJzZXIiLCAiaGVscCI6ICJPdXRwdXQgYSBob3N0cyBmaWxlIHRvIHN0ZG91dCIsICJ2aXJ0dWFs
ZW52IjogZmFsc2V9CisgICJ0ZXN0LWpvYnMiOiB7CisgICAgInBhdGgiOiAiam9icy5weSIsCisg
ICAgInNjcmlwdCI6ICJydW4iLAorICAgICJwYXJzZXIiOiAiY3JlYXRlX3BhcnNlciIsCisgICAg
ImhlbHAiOiAiTGlzdCB0ZXN0IGpvYnMgdGhhdCBzaG91bGQgcnVuIGZvciBhIHNldCBvZiBjb21t
aXRzIiwKKyAgICAidmlydHVhbGVudiI6IGZhbHNlCisgIH0sCisgICJtYWtlLWhvc3RzLWZpbGUi
OiB7CisgICAgInBhdGgiOiAibWFrZV9ob3N0c19maWxlLnB5IiwKKyAgICAic2NyaXB0IjogInJ1
biIsCisgICAgInBhcnNlciI6ICJjcmVhdGVfcGFyc2VyIiwKKyAgICAiaGVscCI6ICJPdXRwdXQg
YSBob3N0cyBmaWxlIHRvIHN0ZG91dCIsCisgICAgInZpcnR1YWxlbnYiOiBmYWxzZQorICB9LAor
ICAidGMtZG93bmxvYWQiOiB7CisgICAgInBhdGgiOiAidGMvZG93bmxvYWQucHkiLAorICAgICJz
Y3JpcHQiOiAicnVuIiwKKyAgICAicGFyc2VyIjogImdldF9wYXJzZXIiLAorICAgICJwYXJzZV9r
bm93biI6IHRydWUsCisgICAgImhlbHAiOiAiRG93bmxvYWQgbG9ncyBmcm9tIHRhc2tjbHVzdGVy
IiwKKyAgICAidmlydHVhbGVudiI6IHRydWUsCisgICAgImluc3RhbGwiOiBbCisgICAgICAicmVx
dWVzdHMiLAorICAgICAgInB5Z2l0aHViIgorICAgIF0KKyAgfSwKKyAgInRjLXRhc2tncmFwaCI6
IHsKKyAgICAicGF0aCI6ICJ0Yy90YXNrZ3JhcGgucHkiLAorICAgICJzY3JpcHQiOiAicnVuIiwK
KyAgICAiaGVscCI6ICJCdWlsZCB0aGUgdGFza2dyYXBoIiwKKyAgICAidmlydHVhbGVudiI6IHRy
dWUsCisgICAgImluc3RhbGwiOiBbCisgICAgICAicmVxdWVzdHMiLAorICAgICAgInB5eWFtbCIK
KyAgICBdCisgIH0sCisgICJ0Yy1kZWNpc2lvbiI6IHsKKyAgICAicGF0aCI6ICJ0Yy9kZWNpc2lv
bi5weSIsCisgICAgInBhcnNlciI6ICJnZXRfcGFyc2VyIiwKKyAgICAic2NyaXB0IjogInJ1biIs
CisgICAgImhlbHAiOiAiUnVuIHRoZSBkZWNpc2lvbiB0YXNrIiwKKyAgICAidmlydHVhbGVudiI6
IHRydWUsCisgICAgImluc3RhbGwiOiBbCisgICAgICAgICJyZXF1ZXN0cyIsCisgICAgICAgICJw
eXlhbWwiLAorICAgICAgICAidGFza2NsdXN0ZXIiCisgICAgXQorICB9CiB9CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2NpL2Vw
b2Noc191cGRhdGUuc2ggYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL2NpL2Vwb2Noc191cGRhdGUuc2gKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNGIzOTNmYTZkYjVmOTBj
MThkYWNjZjZjZWYzYTk3MDZmMTQxMTQxNQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvY2kvZXBvY2hzX3VwZGF0ZS5z
aApAQCAtMCwwICsxLDQ2IEBACisjIS9iaW4vYmFzaAorc2V0IC1leAorCitTQ1JJUFRfRElSPSQo
Y2QgJChkaXJuYW1lICIkMCIpICYmIHB3ZCAtUCkKK1dQVF9ST09UPSRTQ1JJUFRfRElSLy4uLy4u
CisKK0VQT0NIUz0oCitlcG9jaHMvdGhyZWVfaG91cmx5OjozaAorZXBvY2hzL3NpeF9ob3VybHk6
OjZoCitlcG9jaHMvdHdlbHZlX2hvdXJseTo6MTJoCitlcG9jaHMvZGFpbHk6OjFkCitlcG9jaHMv
d2Vla2x5OjoxdworKQorCitmdW5jdGlvbiBnZXRfZXBvY2hfYnJhbmNoX25hbWUgKCkgeworICAg
IGVjaG8gJHsxfSB8IGF3ayAtRiAnOjonICd7cHJpbnQgJDF9JworfQorCitmdW5jdGlvbiBnZXRf
ZXBvY2hfdGltZXZhbCAoKSB7CisgICAgZWNobyAkezF9IHwgYXdrIC1GICc6OicgJ3twcmludCAk
Mn0nCit9CisKK21haW4gKCkgeworICAgIEFMTF9CUkFOQ0hFU19OQU1FUz0iIgorICAgIGZvciBl
IGluICIke0VQT0NIU1tAXX0iOworICAgIGRvCisgICAgICAgIEVQT0NIPSQoZ2V0X2Vwb2NoX3Rp
bWV2YWwgJHtlfSkKKyAgICAgICAgRVBPQ0hfQlJBTkNIX05BTUU9JChnZXRfZXBvY2hfYnJhbmNo
X25hbWUgJHtlfSkKKyAgICAgICAgZ2l0IGJyYW5jaCAke0VQT0NIX0JSQU5DSF9OQU1FfSAkKC4v
d3B0IHJldi1saXN0IC0tZXBvY2ggJHtFUE9DSH0pCisgICAgICAgIEFMTF9CUkFOQ0hFU19OQU1F
Uz0iJHtBTExfQlJBTkNIRVNfTkFNRVN9ICR7RVBPQ0hfQlJBTkNIX05BTUV9IgorICAgIGRvbmUK
KyAgICAjIFRoaXMgaXMgc2FmZSBiZWNhdXNlIGBnaXQgcHVzaGAgd2lsbCBieSBkZWZhdWx0IGZh
aWwgZm9yIGEgbm9uLWZhc3QtZm9yd2FyZAorICAgICMgcHVzaCwgZm9yIGV4YW1wbGUgaWYgdGhl
IHJlbW90ZSBicmFuY2ggaXMgYWhlYWQgb2YgdGhlIGxvY2FsIGJyYW5jaC4KKyAgICBnaXQgcHVz
aCAke1JFTU9URX0gJHtBTExfQlJBTkNIRVNfTkFNRVN9Cit9CisKK2NkICRXUFRfUk9PVAorCitp
ZiBbIC16ICIkR0lUSFVCX1RPS0VOIiBdOyB0aGVuCisgICAgZWNobyAiR0lUSFVCX1RPS0VOIG11
c3QgYmUgc2V0IGFzIGFuIGVudmlyb25tZW50IHZhcmlhYmxlIgorICAgIGV4aXQgMQorZmkKKwor
UkVNT1RFPWh0dHBzOi8veC1hY2Nlc3MtdG9rZW46JEdJVEhVQl9UT0tFTkBnaXRodWIuY29tL3dl
Yi1wbGF0Zm9ybS10ZXN0cy93cHQuZ2l0CisKK21haW4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvY2kvaW5zdGFsbC5zaCBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvY2kvaW5zdGFs
bC5zaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZDFkNDM2OGQ0ZmY5NjBhZmEwZDk2
NjhhNTYyNjM3YjNjODZhMzBhMS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL2NpL2luc3RhbGwuc2gKKysrIC9kZXYvbnVsbApAQCAtMSwxMSArMCwwIEBACi0jIS9iaW4v
YmFzaAotc2V0IC1leAotCi1TQ1JJUFRfRElSPSQoZGlybmFtZSAkKHJlYWRsaW5rIC1mICIkMCIp
KQotV1BUX1JPT1Q9JChyZWFkbGluayAtZiAkU0NSSVBUX0RJUi8uLi8uLikKLWNkICRXUFRfUk9P
VAotCi1pZiBbWyAkUlVOX0pPQiAtZXEgMSBdXTsgdGhlbgotICAgIHBpcCBpbnN0YWxsIC1VIHNl
dHVwdG9vbHMKLSAgICBwaXAgaW5zdGFsbCAtVSByZXF1ZXN0cwotZmkKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvY2kvam9icy5w
eSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvY2kv
am9icy5weQppbmRleCA2ZjNmNjQ1NjAxNjdmYTVmZjRmODI0MjA4MmU2MmVjN2JmYjYyNjA4Li4z
ZDgwOWVmYTM3Y2NmZjJjMjU4MzQzYjY0NzkxNzYyZmM1MDdhOTBmIDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2NpL2pvYnMucHkK
KysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9j
aS9qb2JzLnB5CkBAIC04LDM4ICs4LDU4IEBAIGZyb20gc2l4IGltcG9ydCBpdGVyaXRlbXMKIAog
d3B0X3Jvb3QgPSBvcy5wYXRoLmFic3BhdGgob3MucGF0aC5qb2luKG9zLnBhdGguZGlybmFtZShf
X2ZpbGVfXyksIG9zLnBhcmRpciwgb3MucGFyZGlyKSkKIAorIyBDb21tb24gZXhjbHVzaW9ucyBi
ZXR3ZWVuIGFmZmVjdGVkX3Rlc3RzIGFuZCBzdGFiaWxpdHkgam9icy4KKyMgRmlsZXMgaW4gdGhl
c2UgZGlycyB3b3VsZCB0cmlnZ2VyIHRoZSBleGVjdXRpb24gb2YgdG9vIG1hbnkgdGVzdHMuCitF
WENMVURFUyA9IFsKKyAgICAiIXRvb2xzLyIsCisgICAgIiFkb2NzLyIsCisgICAgIiFjb25mb3Jt
YW5jZS1jaGVja2Vycy8iLAorICAgICIhLiovT1dORVJTIiwKKyAgICAiIS4qL01FVEEueW1sIiwK
KyAgICAiIS4qL3Rvb2xzLyIsCisgICAgIiEuKi9SRUFETUUiLAorICAgICIhY3NzL1teL10qJCIK
K10KKwogIyBSdWxlcyBhcmUganVzdCByZWdleCBvbiB0aGUgcGF0aCwgd2l0aCBhIGxlYWRpbmcg
ISBpbmRpY2F0aW5nIGEgcmVnZXggdGhhdCBtdXN0IG5vdAogIyBtYXRjaCBmb3IgdGhlIGpvYgog
am9iX3BhdGhfbWFwID0gewotICAgICJzdGFiaWxpdHkiOiBbIi4qLy4qIiwKLSAgICAgICAgICAg
ICAgICAgICIhdG9vbHMvIiwKLSAgICAgICAgICAgICAgICAgICIhZG9jcy8iLAotICAgICAgICAg
ICAgICAgICAgIiFyZXNvdXJjZXMvKiIsCi0gICAgICAgICAgICAgICAgICAiIWNvbmZvcm1hbmNl
LWNoZWNrZXJzLyIsCi0gICAgICAgICAgICAgICAgICAiIS4qL09XTkVSUyIsCi0gICAgICAgICAg
ICAgICAgICAiIS4qL01FVEEueW1sIiwKLSAgICAgICAgICAgICAgICAgICIhLiovdG9vbHMvIiwK
LSAgICAgICAgICAgICAgICAgICIhLiovUkVBRE1FIiwKLSAgICAgICAgICAgICAgICAgICIhY3Nz
L1teL10qJCJdLAorICAgICJhZmZlY3RlZF90ZXN0cyI6IFsiLiovLioiLCAiIXJlc291cmNlcy8o
PyFpZGxoYXJuZXNzLmpzKSJdICsgRVhDTFVERVMsCisgICAgInN0YWJpbGl0eSI6IFsiLiovLioi
LCAiIXJlc291cmNlcy8uKiJdICsgRVhDTFVERVMsCiAgICAgImxpbnQiOiBbIi4qIl0sCiAgICAg
Im1hbmlmZXN0X3VwbG9hZCI6IFsiLioiXSwKICAgICAicmVzb3VyY2VzX3VuaXR0ZXN0IjogWyJy
ZXNvdXJjZXMvIiwgInRvb2xzLyJdLAogICAgICJ0b29sc191bml0dGVzdCI6IFsidG9vbHMvIl0s
Ci0gICAgIndwdHJ1bm5lcl91bml0dGVzdCI6IFsidG9vbHMvd3B0cnVubmVyLyoiXSwKKyAgICAi
d3B0cnVubmVyX3VuaXR0ZXN0IjogWyJ0b29scy8iXSwKICAgICAiYnVpbGRfY3NzIjogWyJjc3Mv
Il0sCi0gICAgInVwZGF0ZV9idWlsdCI6IFsiMmRjb250ZXh0LyIsCisgICAgInVwZGF0ZV9idWls
dCI6IFsidXBkYXRlLWJ1aWx0LXRlc3RzXFwuc2giLAorICAgICAgICAgICAgICAgICAgICAgIjJk
Y29udGV4dC8iLAorICAgICAgICAgICAgICAgICAgICAgImluZnJhc3RydWN0dXJlLyIsCiAgICAg
ICAgICAgICAgICAgICAgICAiaHRtbC8iLAotICAgICAgICAgICAgICAgICAgICAgIm9mZnNjcmVl
bi1jYW52YXMvIl0sCisgICAgICAgICAgICAgICAgICAgICAib2Zmc2NyZWVuLWNhbnZhcy8iLAor
ICAgICAgICAgICAgICAgICAgICAgIm1pbWVzbmlmZi8iLAorICAgICAgICAgICAgICAgICAgICAg
ImNzcy9jc3MtdWkvIiwKKyAgICAgICAgICAgICAgICAgICAgICJXZWJJREwiXSwKICAgICAid3B0
X2ludGVncmF0aW9uIjogWyJ0b29scy8iXSwKLSAgICAid3B0cnVubmVyX2luZnJhc3RydWN0dXJl
IjogWyJpbmZyYXN0cnVjdHVyZS8iLCAidG9vbHMvIl0sCisgICAgIndwdHJ1bm5lcl9pbmZyYXN0
cnVjdHVyZSI6IFsiaW5mcmFzdHJ1Y3R1cmUvIiwgInRvb2xzLyIsICJyZXNvdXJjZXMvIl0sCiB9
CiAKIAorZGVmIF9wYXRoX25vcm0ocGF0aCk6CisgICAgIiIibm9ybWFsaXplIGEgcGF0aCBmb3Ig
Ym90aCBjYXNlIGFuZCBzbGFzaGVzICh0byAvKSIiIgorICAgIHBhdGggPSBvcy5wYXRoLm5vcm1j
YXNlKHBhdGgpCisgICAgaWYgb3MucGF0aC5zZXAgIT0gIi8iOgorICAgICAgICAjIHRoaXMgbXVz
dCBiZSBhZnRlciB0aGUgbm9ybWNhc2UgY2FsbCBhcyB0aGF0IGRvZXMgc2xhc2ggbm9ybWFsaXph
dGlvbgorICAgICAgICBwYXRoID0gcGF0aC5yZXBsYWNlKG9zLnBhdGguc2VwLCAiLyIpCisgICAg
cmV0dXJuIHBhdGgKKworCiBjbGFzcyBSdWxlc2V0KG9iamVjdCk6CiAgICAgZGVmIF9faW5pdF9f
KHNlbGYsIHJ1bGVzKToKICAgICAgICAgc2VsZi5pbmNsdWRlID0gW10KICAgICAgICAgc2VsZi5l
eGNsdWRlID0gW10KICAgICAgICAgZm9yIHJ1bGUgaW4gcnVsZXM6CisgICAgICAgICAgICBydWxl
ID0gX3BhdGhfbm9ybShydWxlKQogICAgICAgICAgICAgc2VsZi5hZGRfcnVsZShydWxlKQogCiAg
ICAgZGVmIGFkZF9ydWxlKHNlbGYsIHJ1bGUpOgpAQCAtNTIsOSArNzIsNyBAQCBjbGFzcyBSdWxl
c2V0KG9iamVjdCk6CiAgICAgICAgIHRhcmdldC5hcHBlbmQocmUuY29tcGlsZSgiXiVzIiAlIHJ1
bGUpKQogCiAgICAgZGVmIF9fY2FsbF9fKHNlbGYsIHBhdGgpOgotICAgICAgICBpZiBvcy5wYXRo
LnNlcCAhPSAiLyI6Ci0gICAgICAgICAgICBwYXRoID0gcGF0aC5yZXBsYWNlKG9zLnBhdGguc2Vw
LCAiLyIpCi0gICAgICAgIHBhdGggPSBvcy5wYXRoLm5vcm1jYXNlKHBhdGgpCisgICAgICAgIHBh
dGggPSBfcGF0aF9ub3JtKHBhdGgpCiAgICAgICAgIGZvciBpdGVtIGluIHNlbGYuZXhjbHVkZToK
ICAgICAgICAgICAgIGlmIGl0ZW0ubWF0Y2gocGF0aCk6CiAgICAgICAgICAgICAgICAgcmV0dXJu
IEZhbHNlCkBAIC03NiwxMiArOTQsMTQgQEAgZGVmIGdldF9wYXRocygqKmt3YXJncyk6CiAgICAg
ICAgIHJldmlzaCA9IGt3YXJnc1sicmV2aXNoIl0KIAogICAgIGNoYW5nZWQsIF8gPSBmaWxlc19j
aGFuZ2VkKHJldmlzaCkKLSAgICBhbGxfY2hhbmdlZCA9IHNldChvcy5wYXRoLnJlbHBhdGgoaXRl
bSwgd3B0X3Jvb3QpCi0gICAgICAgICAgICAgICAgICAgICAgZm9yIGl0ZW0gaW4gc2V0KGNoYW5n
ZWQpKQorICAgIGFsbF9jaGFuZ2VkID0ge29zLnBhdGgucmVscGF0aChpdGVtLCB3cHRfcm9vdCkg
Zm9yIGl0ZW0gaW4gc2V0KGNoYW5nZWQpfQogICAgIHJldHVybiBhbGxfY2hhbmdlZAogCiAKIGRl
ZiBnZXRfam9icyhwYXRocywgKiprd2FyZ3MpOgorICAgIGlmIGt3YXJncy5nZXQoImFsbCIpOgor
ICAgICAgICByZXR1cm4gc2V0KGpvYl9wYXRoX21hcC5rZXlzKCkpCisKICAgICBqb2JzID0gc2V0
KCkKIAogICAgIHJ1bGVzID0ge30KQEAgLTExMyw2ICsxMzMsNyBAQCBkZWYgZ2V0X2pvYnMocGF0
aHMsICoqa3dhcmdzKToKIGRlZiBjcmVhdGVfcGFyc2VyKCk6CiAgICAgcGFyc2VyID0gYXJncGFy
c2UuQXJndW1lbnRQYXJzZXIoKQogICAgIHBhcnNlci5hZGRfYXJndW1lbnQoInJldmlzaCIsIGRl
ZmF1bHQ9Tm9uZSwgaGVscD0iQ29tbWl0cyB0byBjb25zaWRlci4gRGVmYXVsdHMgdG8gdGhlIGNv
bW1pdHMgb24gdGhlIGN1cnJlbnQgYnJhbmNoIiwgbmFyZ3M9Ij8iKQorICAgIHBhcnNlci5hZGRf
YXJndW1lbnQoIi0tYWxsIiwgaGVscD0iTGlzdCBhbGwgam9icyB1bmNvbmRpdGlvbmFsbHkuIiwg
YWN0aW9uPSJzdG9yZV90cnVlIikKICAgICBwYXJzZXIuYWRkX2FyZ3VtZW50KCItLWluY2x1ZGVz
IiwgZGVmYXVsdD1Ob25lLCBoZWxwPSJKb2JzIHRvIGNoZWNrIGZvci4gUmV0dXJuIGNvZGUgaXMg
MCBpZiBhbGwgam9icyBhcmUgZm91bmQsIG90aGVyd2lzZSAxIiwgbmFyZ3M9IioiKQogICAgIHJl
dHVybiBwYXJzZXIKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy9jaS9saWIuc2ggYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2NpL2xpYi5zaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggN2MwYjgyNTNhOTA2ZTA1ZjdkNzkzZDFjNjI3NGY5YWVkMDFiN2Y4My4uMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2NpL2xpYi5zaAorKysgL2Rldi9udWxs
CkBAIC0xLDM3ICswLDAgQEAKLSMhL2Jpbi9iYXNoCi0KLWhvc3RzX2ZpeHVwKCkgewotICAgIGVj
aG8gInRyYXZpc19mb2xkOnN0YXJ0Omhvc3RzX2ZpeHVwIgotICAgIGVjaG8gIlJld3JpdGluZyBo
b3N0cyBmaWxlIgotICAgIGVjaG8gIiMjIC9ldGMvaG9zdHMgIyMiCi0gICAgY2F0IC9ldGMvaG9z
dHMKLSAgICBzdWRvIHNlZCAtaSAncy9eOjoxXHMqbG9jYWxob3N0Lzo6MS8nIC9ldGMvaG9zdHMK
LSAgICAuL3dwdCBtYWtlLWhvc3RzLWZpbGUgfCBzdWRvIHRlZSAtYSAvZXRjL2hvc3RzCi0gICAg
ZWNobyAiPT0gL2V0Yy9ob3N0cyA9PSIKLSAgICBjYXQgL2V0Yy9ob3N0cwotICAgIGVjaG8gIi0t
LS0tLS0tLS0tLS0tLS0iCi0gICAgZWNobyAidHJhdmlzX2ZvbGQ6ZW5kOmhvc3RzX2ZpeHVwIgot
fQotCi1pbnN0YWxsX2Nocm9tZSgpIHsKLSAgICBjaGFubmVsPSQxCi0gICAgZGViX2FyY2hpdmU9
Z29vZ2xlLWNocm9tZS0ke2NoYW5uZWx9X2N1cnJlbnRfYW1kNjQuZGViCi0gICAgd2dldCAtcSBo
dHRwczovL2RsLmdvb2dsZS5jb20vbGludXgvZGlyZWN0LyRkZWJfYXJjaGl2ZQotCi0gICAgIyBJ
ZiB0aGUgZW52aXJvbm1lbnQgcHJvdmlkZXMgYW4gaW5zdGFsbGF0aW9uIG9mIEdvb2dsZSBDaHJv
bWUsIHRoZQotICAgICMgZXhpc3RpbmcgYmluYXJ5IG1heSB0YWtlIHByZWNlZGVuY2Ugb3ZlciB0
aGUgb25lIGludHJvZHVjZWQgaW4gdGhpcwotICAgICMgc2NyaXB0LiBSZW1vdmUgYW55IHByZXZp
b3VzbHktZXhpc3RpbmcgImFsdGVybmF0aXZlcyIgcHJpb3IgdG8KLSAgICAjIGluc3RhbGxhdGlv
biBpbiBvcmRlciB0byBlbnN1cmUgdGhhdCB0aGUgbmV3IGJpbmFyeSBpcyBpbnN0YWxsZWQgYXMK
LSAgICAjIGludGVuZGVkLgotICAgIGlmIHN1ZG8gdXBkYXRlLWFsdGVybmF0aXZlcyAtLWxpc3Qg
Z29vZ2xlLWNocm9tZTsgdGhlbgotICAgICAgICBzdWRvIHVwZGF0ZS1hbHRlcm5hdGl2ZXMgLS1y
ZW1vdmUtYWxsIGdvb2dsZS1jaHJvbWUKLSAgICBmaQotCi0gICAgIyBJbnN0YWxsYXRpb24gd2ls
bCBmYWlsIGluIGNhc2VzIHdoZXJlIHRoZSBwYWNrYWdlIGhhcyB1bm1ldCBkZXBlbmRlbmNpZXMu
Ci0gICAgIyBXaGVuIHRoaXMgb2NjdXJzLCBhdHRlbXB0IHRvIHVzZSB0aGUgc3lzdGVtIHBhY2th
Z2UgbWFuYWdlciB0byBmZXRjaCB0aGUKLSAgICAjIHJlcXVpcmVkIHBhY2thZ2VzIGFuZCByZXRy
eS4KLSAgICBpZiAhIHN1ZG8gZHBrZyAtLWluc3RhbGwgJGRlYl9hcmNoaXZlOyB0aGVuCi0gICAg
ICBzdWRvIGFwdC1nZXQgaW5zdGFsbCAtLWZpeC1icm9rZW4KLSAgICAgIHN1ZG8gZHBrZyAtLWlu
c3RhbGwgJGRlYl9hcmNoaXZlCi0gICAgZmkKLX0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvY2kvbWFuaWZlc3RfYnVpbGQucHkg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2NpL21h
bmlmZXN0X2J1aWxkLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjFlMzg4ZGZhNzQxOWEyMWIyMDUwM2IzMDc1YzM2
YmMxMTEzNmRkN2QKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2NpL21hbmlmZXN0X2J1aWxkLnB5CkBAIC0wLDAgKzEs
MTk3IEBACitpbXBvcnQganNvbgoraW1wb3J0IGxvZ2dpbmcKK2ltcG9ydCBvcworaW1wb3J0IHN1
YnByb2Nlc3MKK2ltcG9ydCBzeXMKK2ltcG9ydCB0ZW1wZmlsZQorCitpbXBvcnQgcmVxdWVzdHMK
KworaGVyZSA9IG9zLnBhdGguYWJzcGF0aChvcy5wYXRoLmRpcm5hbWUoX19maWxlX18pKQord3B0
X3Jvb3QgPSBvcy5wYXRoLmFic3BhdGgob3MucGF0aC5qb2luKGhlcmUsIG9zLnBhcmRpciwgb3Mu
cGFyZGlyKSkKKworaWYgbm90KHdwdF9yb290IGluIHN5cy5wYXRoKToKKyAgICBzeXMucGF0aC5h
cHBlbmQod3B0X3Jvb3QpCisKK2Zyb20gdG9vbHMud3B0LnRlc3RmaWxlcyBpbXBvcnQgZ2V0X2dp
dF9jbWQKKworbG9nZ2luZy5iYXNpY0NvbmZpZyhsZXZlbD1sb2dnaW5nLklORk8pCitsb2dnZXIg
PSBsb2dnaW5nLmdldExvZ2dlcihfX25hbWVfXykKKworCitjbGFzcyBTdGF0dXMob2JqZWN0KToK
KyAgICBTVUNDRVNTID0gMAorICAgIEZBSUwgPSAxCisKKworZGVmIHJ1bihjbWQsIHJldHVybl9z
dGRvdXQ9RmFsc2UsICoqa3dhcmdzKToKKyAgICBsb2dnZXIuaW5mbygiICIuam9pbihjbWQpKQor
ICAgIGlmIHJldHVybl9zdGRvdXQ6CisgICAgICAgIGYgPSBzdWJwcm9jZXNzLmNoZWNrX291dHB1
dAorICAgIGVsc2U6CisgICAgICAgIGYgPSBzdWJwcm9jZXNzLmNoZWNrX2NhbGwKKyAgICByZXR1
cm4gZihjbWQsICoqa3dhcmdzKQorCisKK2RlZiBjcmVhdGVfbWFuaWZlc3QocGF0aCk6CisgICAg
cnVuKFsiLi93cHQiLCAibWFuaWZlc3QiLCAiLXAiLCBwYXRoXSkKKworCitkZWYgY29tcHJlc3Nf
bWFuaWZlc3QocGF0aCk6CisgICAgZm9yIGFyZ3MgaW4gW1siZ3ppcCIsICItayIsICItZiIsICIt
LWJlc3QiXSwKKyAgICAgICAgICAgICAgICAgWyJiemlwMiIsICItayIsICItZiIsICItLWJlc3Qi
XSwKKyAgICAgICAgICAgICAgICAgWyJ6c3RkIiwgIi1rIiwgIi1mIiwgIi0tdWx0cmEiLCAiLTIy
IiwgIi1xIl1dOgorICAgICAgICBydW4oYXJncyArIFtwYXRoXSkKKworCitkZWYgcmVxdWVzdCh1
cmwsIGRlc2MsIG1ldGhvZD1Ob25lLCBkYXRhPU5vbmUsIGpzb25fZGF0YT1Ob25lLCBwYXJhbXM9
Tm9uZSwgaGVhZGVycz1Ob25lKToKKyAgICBnaXRodWJfdG9rZW4gPSBvcy5lbnZpcm9uLmdldCgi
R0lUSFVCX1RPS0VOIikKKyAgICBkZWZhdWx0X2hlYWRlcnMgPSB7CisgICAgICAgICJBdXRob3Jp
emF0aW9uIjogInRva2VuICVzIiAlIGdpdGh1Yl90b2tlbiwKKyAgICAgICAgIkFjY2VwdCI6ICJh
cHBsaWNhdGlvbi92bmQuZ2l0aHViLm1hY2hpbmUtbWFuLXByZXZpZXcranNvbiIKKyAgICB9CisK
KyAgICBfaGVhZGVycyA9IGRlZmF1bHRfaGVhZGVycworICAgIGlmIGhlYWRlcnMgaXMgbm90IE5v
bmU6CisgICAgICAgIF9oZWFkZXJzLnVwZGF0ZShoZWFkZXJzKQorCisgICAga3dhcmdzID0geyJw
YXJhbXMiOiBwYXJhbXMsCisgICAgICAgICAgICAgICJoZWFkZXJzIjogX2hlYWRlcnN9CisgICAg
dHJ5OgorICAgICAgICBsb2dnZXIuaW5mbygiUmVxdWVzdGluZyBVUkwgJXMiICUgdXJsKQorICAg
ICAgICBpZiBqc29uX2RhdGEgaXMgbm90IE5vbmUgb3IgZGF0YSBpcyBub3QgTm9uZToKKyAgICAg
ICAgICAgIGlmIG1ldGhvZCBpcyBOb25lOgorICAgICAgICAgICAgICAgIG1ldGhvZCA9IHJlcXVl
c3RzLnBvc3QKKyAgICAgICAgICAgIGt3YXJnc1sianNvbiJdID0ganNvbl9kYXRhCisgICAgICAg
ICAgICBrd2FyZ3NbImRhdGEiXSA9IGRhdGEKKyAgICAgICAgZWxpZiBtZXRob2QgaXMgTm9uZToK
KyAgICAgICAgICAgIG1ldGhvZCA9IHJlcXVlc3RzLmdldAorCisgICAgICAgIHJlc3AgPSBtZXRo
b2QodXJsLCAqKmt3YXJncykKKworICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZToKKyAgICAgICAg
bG9nZ2VyLmVycm9yKCIlcyBmYWlsZWQ6XG4lcyIgJSAoZGVzYywgZSkpCisgICAgICAgIHJldHVy
biBOb25lCisKKyAgICB0cnk6CisgICAgICAgIHJlc3AucmFpc2VfZm9yX3N0YXR1cygpCisgICAg
ZXhjZXB0IHJlcXVlc3RzLkhUVFBFcnJvcjoKKyAgICAgICAgbG9nZ2VyLmVycm9yKCIlcyBmYWls
ZWQ6IEdvdCBIVFRQIHN0YXR1cyAlcy4gUmVzcG9uc2U6IiAlCisgICAgICAgICAgICAgICAgICAg
ICAoZGVzYywgcmVzcC5zdGF0dXNfY29kZSkpCisgICAgICAgIGxvZ2dlci5lcnJvcihyZXNwLnRl
eHQpCisgICAgICAgIHJldHVybiBOb25lCisKKyAgICB0cnk6CisgICAgICAgIHJldHVybiByZXNw
Lmpzb24oKQorICAgIGV4Y2VwdCBWYWx1ZUVycm9yOgorICAgICAgICBsb2dnZXIuZXJyb3IoIiVz
IGZhaWxlZDogUmV0dXJuZWQgZGF0YSB3YXMgbm90IEpTT04gUmVzcG9uc2U6IiAlCisgICAgICAg
ICAgICAgICAgICAgICAoZGVzYywgcmVzcC5zdGF0dXNfY29kZSkpCisgICAgICAgIGxvZ2dlci5l
cnJvcihyZXNwLnRleHQpCisKKworZGVmIGdldF9wcihvd25lciwgcmVwbywgc2hhKToKKyAgICBk
YXRhID0gcmVxdWVzdCgiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9zZWFyY2gvaXNzdWVzP3E9dHlw
ZTpwcitpczptZXJnZWQrcmVwbzolcy8lcytzaGE6JXMiICUKKyAgICAgICAgICAgICAgICAgICAo
b3duZXIsIHJlcG8sIHNoYSksICJHZXR0aW5nIFBSIikKKyAgICBpZiBkYXRhIGlzIE5vbmU6Cisg
ICAgICAgIHJldHVybiBOb25lCisKKyAgICBpdGVtcyA9IGRhdGFbIml0ZW1zIl0KKyAgICBpZiBs
ZW4oaXRlbXMpID09IDA6CisgICAgICAgIGxvZ2dlci5lcnJvcigiTm8gUFIgZm91bmQgZm9yICVz
IiAlIHNoYSkKKyAgICAgICAgcmV0dXJuIE5vbmUKKyAgICBpZiBsZW4oaXRlbXMpID4gMToKKyAg
ICAgICAgbG9nZ2VyLndhcm5pbmcoIkZvdW5kIG11bHRpcGxlIFBScyBmb3IgJXMiICUgc2hhKQor
CisgICAgcHIgPSBpdGVtc1swXQorCisgICAgcmV0dXJuIHByWyJudW1iZXIiXQorCisKK2RlZiBj
cmVhdGVfcmVsZWFzZShtYW5pZmVzdF9wYXRoLCBvd25lciwgcmVwbywgc2hhLCB0YWcsIGJvZHkp
OgorICAgIGNyZWF0ZV91cmwgPSAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy8lcy8lcy9y
ZWxlYXNlcyIgJSAob3duZXIsIHJlcG8pCisgICAgY3JlYXRlX2RhdGEgPSB7InRhZ19uYW1lIjog
dGFnLAorICAgICAgICAgICAgICAgICAgICJ0YXJnZXRfY29tbWl0aXNoIjogc2hhLAorICAgICAg
ICAgICAgICAgICAgICJuYW1lIjogdGFnLAorICAgICAgICAgICAgICAgICAgICJib2R5IjogYm9k
eSwKKyAgICAgICAgICAgICAgICAgICAiZHJhZnQiOiBUcnVlfQorICAgIGNyZWF0ZV9yZXNwID0g
cmVxdWVzdChjcmVhdGVfdXJsLCAiUmVsZWFzZSBjcmVhdGlvbiIsIGpzb25fZGF0YT1jcmVhdGVf
ZGF0YSkKKyAgICBpZiBub3QgY3JlYXRlX3Jlc3A6CisgICAgICAgIHJldHVybiBGYWxzZQorCisg
ICAgIyBVcGxvYWQgVVJMIGNvbnRhaW5zICd7P25hbWUsbGFiZWx9JyBhdCB0aGUgZW5kIHdoaWNo
IHdlIHdhbnQgdG8gcmVtb3ZlCisgICAgdXBsb2FkX3VybCA9IGNyZWF0ZV9yZXNwWyJ1cGxvYWRf
dXJsIl0uc3BsaXQoInsiLCAxKVswXQorCisgICAgdXBsb2FkX2V4dHMgPSBbIi5neiIsICIuYnoy
IiwgIi56c3QiXQorICAgIGZvciB1cGxvYWRfZXh0IGluIHVwbG9hZF9leHRzOgorICAgICAgICB1
cGxvYWRfZmlsZW5hbWUgPSAiTUFOSUZFU1QtJXMuanNvbiVzIiAlIChzaGEsIHVwbG9hZF9leHQp
CisgICAgICAgIHBhcmFtcyA9IHsibmFtZSI6IHVwbG9hZF9maWxlbmFtZSwKKyAgICAgICAgICAg
ICAgICAgICJsYWJlbCI6ICJNQU5JRkVTVC5qc29uJXMiICUgdXBsb2FkX2V4dH0KKworICAgICAg
ICB3aXRoIG9wZW4oIiVzJXMiICUgKG1hbmlmZXN0X3BhdGgsIHVwbG9hZF9leHQpLCAicmIiKSBh
cyBmOgorICAgICAgICAgICAgdXBsb2FkX2RhdGEgPSBmLnJlYWQoKQorCisgICAgICAgIGxvZ2dl
ci5pbmZvKCJVcGxvYWRpbmcgJXMgYnl0ZXMiICUgbGVuKHVwbG9hZF9kYXRhKSkKKworICAgICAg
ICB1cGxvYWRfcmVzcCA9IHJlcXVlc3QodXBsb2FkX3VybCwgIk1hbmlmZXN0IHVwbG9hZCIsIGRh
dGE9dXBsb2FkX2RhdGEsIHBhcmFtcz1wYXJhbXMsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBoZWFkZXJzPXsnQ29udGVudC1UeXBlJzogJ2FwcGxpY2F0aW9uL29jdGV0LXN0cmVhbSd9
KQorICAgICAgICBpZiBub3QgdXBsb2FkX3Jlc3A6CisgICAgICAgICAgICByZXR1cm4gRmFsc2UK
KworICAgIHJlbGVhc2VfaWQgPSBjcmVhdGVfcmVzcFsiaWQiXQorICAgIGVkaXRfdXJsID0gImh0
dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3MvJXMvJXMvcmVsZWFzZXMvJXMiICUgKG93bmVyLCBy
ZXBvLCByZWxlYXNlX2lkKQorICAgIGVkaXRfZGF0YSA9IHsiZHJhZnQiOiBGYWxzZX0KKyAgICBl
ZGl0X3Jlc3AgPSByZXF1ZXN0KGVkaXRfdXJsLCAiUmVsZWFzZSBwdWJsaXNoaW5nIiwgbWV0aG9k
PXJlcXVlc3RzLnBhdGNoLCBqc29uX2RhdGE9ZWRpdF9kYXRhKQorICAgIGlmIG5vdCBlZGl0X3Jl
c3A6CisgICAgICAgIHJldHVybiBGYWxzZQorCisgICAgbG9nZ2VyLmluZm8oIlJlbGVhc2VkICVz
IiAlIGVkaXRfcmVzcFsiaHRtbF91cmwiXSkKKyAgICByZXR1cm4gVHJ1ZQorCisKK2RlZiBzaG91
bGRfZHJ5X3J1bigpOgorICAgIHdpdGggb3Blbihvcy5lbnZpcm9uWyJHSVRIVUJfRVZFTlRfUEFU
SCJdKSBhcyBmOgorICAgICAgICBldmVudCA9IGpzb24ubG9hZChmKQorICAgICAgICBsb2dnZXIu
aW5mbyhqc29uLmR1bXBzKGV2ZW50LCBpbmRlbnQ9MikpCisKKyAgICBpZiAicHVsbF9yZXF1ZXN0
IiBpbiBldmVudDoKKyAgICAgICAgbG9nZ2VyLmluZm8oIkRyeSBydW4gZm9yIFBSIikKKyAgICAg
ICAgcmV0dXJuIFRydWUKKyAgICBpZiBldmVudC5nZXQoInJlZiIpICE9ICJyZWZzL2hlYWRzL21h
c3RlciI6CisgICAgICAgIGxvZ2dlci5pbmZvKCJEcnkgcnVuIGZvciByZWYgJXMiICUgZXZlbnQu
Z2V0KCJyZWYiKSkKKyAgICAgICAgcmV0dXJuIFRydWUKKyAgICByZXR1cm4gRmFsc2UKKworCitk
ZWYgbWFpbigpOgorICAgIGRyeV9ydW4gPSBzaG91bGRfZHJ5X3J1bigpCisKKyAgICBtYW5pZmVz
dF9wYXRoID0gb3MucGF0aC5qb2luKHRlbXBmaWxlLm1rZHRlbXAoKSwgIk1BTklGRVNULmpzb24i
KQorCisgICAgY3JlYXRlX21hbmlmZXN0KG1hbmlmZXN0X3BhdGgpCisKKyAgICBjb21wcmVzc19t
YW5pZmVzdChtYW5pZmVzdF9wYXRoKQorCisgICAgb3duZXIsIHJlcG8gPSBvcy5lbnZpcm9uWyJH
SVRIVUJfUkVQT1NJVE9SWSJdLnNwbGl0KCIvIiwgMSkKKworICAgIGdpdCA9IGdldF9naXRfY21k
KHdwdF9yb290KQorICAgIGhlYWRfcmV2ID0gZ2l0KCJyZXYtcGFyc2UiLCAiSEVBRCIpCisgICAg
Ym9keSA9IGdpdCgic2hvdyIsICItLW5vLXBhdGNoIiwgIi0tZm9ybWF0PSVCIiwgIkhFQUQiKQor
CisgICAgaWYgZHJ5X3J1bjoKKyAgICAgICAgcmV0dXJuIFN0YXR1cy5TVUNDRVNTCisKKyAgICBw
ciA9IGdldF9wcihvd25lciwgcmVwbywgaGVhZF9yZXYpCisgICAgaWYgcHIgaXMgTm9uZToKKyAg
ICAgICAgcmV0dXJuIFN0YXR1cy5GQUlMCisgICAgdGFnX25hbWUgPSAibWVyZ2VfcHJfJXMiICUg
cHIKKworICAgIGlmIG5vdCBjcmVhdGVfcmVsZWFzZShtYW5pZmVzdF9wYXRoLCBvd25lciwgcmVw
bywgaGVhZF9yZXYsIHRhZ19uYW1lLCBib2R5KToKKyAgICAgICAgcmV0dXJuIFN0YXR1cy5GQUlM
CisKKyAgICByZXR1cm4gU3RhdHVzLlNVQ0NFU1MKKworCitpZiBfX25hbWVfXyA9PSAiX19tYWlu
X18iOgorICAgIGNvZGUgPSBtYWluKCkKKyAgICBhc3NlcnQgaXNpbnN0YW5jZShjb2RlLCBpbnQp
CisgICAgc3lzLmV4aXQoY29kZSkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvY2kvcHJfcHJldmlldy5weSBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvY2kvcHJfcHJldmlldy5weQpu
ZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi5iYTc3NzQ0NDZlMDgzNmUzMTljMGQwNzFkNjI2MmU1NjJmYjE0NmUxCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy9jaS9wcl9wcmV2aWV3LnB5CkBAIC0wLDAgKzEsNDA4IEBACisjIS91c3IvYmluL2Vu
diBweXRob24KKworIyBUaGUgc2VydmljZSBwcm92aWRlZCBieSB0aGlzIHNjcmlwdCBpcyBub3Qg
Y3JpdGljYWwsIGJ1dCBpdCBzaGFyZXMgYSBHaXRIdWIKKyMgQVBJIHJlcXVlc3QgcXVvdGEgd2l0
aCBjcml0aWNhbCBzZXJ2aWNlcy4gRm9yIHRoaXMgcmVhc29uLCBhbGwgcmVxdWVzdHMgdG8KKyMg
dGhlIEdpdEh1YiBBUEkgYXJlIHByZWNlZGVkIGJ5IGEgImd1YXJkIiB3aGljaCB2ZXJpZmllcyB0
aGF0IHRoZSBzdWJzZXF1ZW50CisjIHJlcXVlc3Qgd2lsbCBub3QgZGVwbGV0ZSB0aGUgc2hhcmVk
IHF1b3RhLgorIworIyBJbiBlZmZlY3QsIHRoaXMgc2NyaXB0IHdpbGwgZmFpbCByYXRoZXIgdGhh
biBpbnRlcmZlcmUgd2l0aCB0aGUgb3BlcmF0aW9uIG9mCisjIGNyaXRpY2FsIHNlcnZpY2VzLgor
CitpbXBvcnQgYXJncGFyc2UKK2ltcG9ydCBqc29uCitpbXBvcnQgbG9nZ2luZworaW1wb3J0IG9z
CitpbXBvcnQgc3VicHJvY2VzcworaW1wb3J0IHRpbWUKKworaW1wb3J0IHJlcXVlc3RzCisKKyMg
VGhlIHJhdGlvIG9mICJyZXF1ZXN0cyByZW1haW5pbmciIHRvICJ0b3RhbCByZXF1ZXN0IHF1b3Rh
IiBiZWxvdyB3aGljaCB0aGlzCisjIHNjcmlwdCBzaG91bGQgcmVmdXNlIHRvIGludGVyYWN0IHdp
dGggdGhlIEdpdEh1Yi5jb20gQVBJCitBUElfUkFURV9MSU1JVF9USFJFU0hPTEQgPSAwLjIKKyMg
VGhlIEdpdEh1YiBQdWxsIFJlcXVlc3QgbGFiZWwgd2hpY2ggaW5kaWNhdGVzIHRoYXQgYSBQdWxs
IFJlcXVlc3QgaXMgZXhwZWN0ZWQKKyMgdG8gYmUgYWN0aXZlbHkgbWlycm9yZWQgYnkgdGhlIHBy
ZXZpZXcgc2VydmVyCitMQUJFTCA9ICdzYWZlIGZvciBwcmV2aWV3JworIyBUaGUgbnVtYmVyIG9m
IHNlY29uZHMgdG8gd2FpdCBiZXR3ZWVuIGF0dGVtcHRzIHRvIHZlcmlmeSB0aGF0IGEgc3VibWlz
c2lvbgorIyBwcmV2aWV3IGlzIGF2YWlsYWJsZSBvbiB0aGUgUHVsbCBSZXF1ZXN0IHByZXZpZXcg
c2VydmVyCitQT0xMSU5HX1BFUklPRCA9IDUKKyMgUHVsbCBSZXF1ZXN0cyBmcm9tIGF1dGhvcnMg
d2l0aCB0aGUgZm9sbG93aW5nIGFzc29jaWF0aW9ucyB0byB0aGUgcHJvamVjdAorIyBzaG91bGQg
YXV0b21hdGljYWxseSByZWNlaXZlIHByZXZpZXdzCisjCisjIGh0dHBzOi8vZGV2ZWxvcGVyLmdp
dGh1Yi5jb20vdjQvZW51bS9jb21tZW50YXV0aG9yYXNzb2NpYXRpb24vIChlcXVpdmFsZW50Cisj
IGRvY3VtZW50YXRpb24gZm9yIHRoZSBSRVNUIEFQSSB3YXMgbm90IGF2YWlsYWJsZSBhdCB0aGUg
dGltZSBvZiB3cml0aW5nKQorVFJVU1RFRF9BVVRIT1JfQVNTT0NJQVRJT05TID0gKCdDT0xMQUJP
UkFUT1InLCAnTUVNQkVSJywgJ09XTkVSJykKKyMgVGhlc2UgR2l0SHViIGFjY291bnRzIGFyZSBu
b3QgYXNzb2NpYXRlZCB3aXRoIGluZGl2aWR1YWxzLCBhbmQgdGhlIFB1bGwKKyMgUmVxdWVzdHMg
dGhleSBzdWJtaXQgcmFyZWx5IHJlcXVpcmUgYSBwcmV2aWV3LgorQVVUT01BVElPTl9HSVRIVUJf
VVNFUlMgPSAoCisgICAgJ2F1dG9mb29saXAnLCAnY2hyb21pdW0td3B0LWV4cG9ydC1ib3QnLCAn
bW96LXdwdHN5bmMtYm90JywKKyAgICAnc2Vydm8td3B0LXN5bmMnCispCitERVBMT1lNRU5UX1BS
RUZJWCA9ICd3cHQtcHJldmlldy0nCisKK2xvZ2dpbmcuYmFzaWNDb25maWcobGV2ZWw9bG9nZ2lu
Zy5JTkZPKQorbG9nZ2VyID0gbG9nZ2luZy5nZXRMb2dnZXIoX19uYW1lX18pCisKK2RlZiBnaF9y
ZXF1ZXN0KG1ldGhvZF9uYW1lLCB1cmwsIGJvZHk9Tm9uZSwgbWVkaWFfdHlwZT1Ob25lKToKKyAg
ICBnaXRodWJfdG9rZW4gPSBvcy5lbnZpcm9uWydERVBMT1lfVE9LRU4nXQorCisgICAga3dhcmdz
ID0geworICAgICAgICAnaGVhZGVycyc6IHsKKyAgICAgICAgICAgICdBdXRob3JpemF0aW9uJzog
J3Rva2VuIHt9Jy5mb3JtYXQoZ2l0aHViX3Rva2VuKSwKKyAgICAgICAgICAgICdBY2NlcHQnOiBt
ZWRpYV90eXBlIG9yICdhcHBsaWNhdGlvbi92bmQuZ2l0aHViLnYzK2pzb24nCisgICAgICAgIH0K
KyAgICB9CisgICAgbWV0aG9kID0gZ2V0YXR0cihyZXF1ZXN0cywgbWV0aG9kX25hbWUubG93ZXIo
KSkKKworICAgIGlmIGJvZHkgaXMgbm90IE5vbmU6CisgICAgICAgIGt3YXJnc1snanNvbiddID0g
Ym9keQorCisgICAgbG9nZ2VyLmluZm8oJ0lzc3VpbmcgcmVxdWVzdDogJXMgJXMnLCBtZXRob2Rf
bmFtZS51cHBlcigpLCB1cmwpCisKKyAgICByZXNwID0gbWV0aG9kKHVybCwgKiprd2FyZ3MpCisK
KyAgICBsb2dnZXIuaW5mbygnUmVzcG9uc2Ugc3RhdHVzIGNvZGU6ICVzJywgcmVzcC5zdGF0dXNf
Y29kZSkKKworICAgIHJlc3AucmFpc2VfZm9yX3N0YXR1cygpCisKKyAgICByZXR1cm4gcmVzcC5q
c29uKCkKKworZGVmIGd1YXJkKHJlc291cmNlKToKKyAgICAnJydEZWNvcmF0ZSBhIGBQcm9qZWN0
YCBpbnN0YW5jZSBtZXRob2Qgd2hpY2ggaW50ZXJhY3RzIHdpdGggdGhlIEdpdEh1YgorICAgIEFQ
SSwgZW5zdXJpbmcgdGhhdCB0aGUgc3Vic2VxdWVudCByZXF1ZXN0IHdpbGwgbm90IGRlcGxldGUg
dGhlIHJlbGV2YW50CisgICAgYWxsb3dhbmNlLiBUaGlzIHZlcmlmaWNhdGlvbiBkb2VzIG5vdCBp
dHNlbGYgaW5mbHVlbmNlIHJhdGUgbGltaXRpbmc6CisKKyAgICA+IEFjY2Vzc2luZyB0aGlzIGVu
ZHBvaW50IGRvZXMgbm90IGNvdW50IGFnYWluc3QgeW91ciBSRVNUIEFQSSByYXRlIGxpbWl0Lgor
CisgICAgaHR0cHM6Ly9kZXZlbG9wZXIuZ2l0aHViLmNvbS92My9yYXRlX2xpbWl0LworICAgICcn
JworICAgIGRlZiBndWFyZF9kZWNvcmF0b3IoZnVuYyk6CisgICAgICAgIGRlZiB3cmFwcGVkKHNl
bGYsICphcmdzLCAqKmt3YXJncyk6CisgICAgICAgICAgICBsaW1pdHMgPSBnaF9yZXF1ZXN0KCdH
RVQnLCAne30vcmF0ZV9saW1pdCcuZm9ybWF0KHNlbGYuX2hvc3QpKQorCisgICAgICAgICAgICB2
YWx1ZXMgPSBsaW1pdHNbJ3Jlc291cmNlcyddLmdldChyZXNvdXJjZSkKKworICAgICAgICAgICAg
cmVtYWluaW5nID0gdmFsdWVzWydyZW1haW5pbmcnXQorICAgICAgICAgICAgbGltaXQgPSB2YWx1
ZXNbJ2xpbWl0J10KKworICAgICAgICAgICAgbG9nZ2VyLmluZm8oCisgICAgICAgICAgICAgICAg
J0xpbWl0IGZvciAiJXMiIHJlc291cmNlOiAlcy8lcycsIHJlc291cmNlLCByZW1haW5pbmcsIGxp
bWl0CisgICAgICAgICAgICApCisKKyAgICAgICAgICAgIGlmIGxpbWl0IGFuZCBmbG9hdChyZW1h
aW5pbmcpIC8gbGltaXQgPCBBUElfUkFURV9MSU1JVF9USFJFU0hPTEQ6CisgICAgICAgICAgICAg
ICAgcmFpc2UgRXhjZXB0aW9uKAorICAgICAgICAgICAgICAgICAgICAnRXhpdGluZyB0byBhdm9p
ZCBHaXRIdWIuY29tIEFQSSByZXF1ZXN0IHRocm90dGxpbmcuJworICAgICAgICAgICAgICAgICkK
KworICAgICAgICAgICAgcmV0dXJuIGZ1bmMoc2VsZiwgKmFyZ3MsICoqa3dhcmdzKQorICAgICAg
ICByZXR1cm4gd3JhcHBlZAorICAgIHJldHVybiBndWFyZF9kZWNvcmF0b3IKKworY2xhc3MgUHJv
amVjdChvYmplY3QpOgorICAgIGRlZiBfX2luaXRfXyhzZWxmLCBob3N0LCBnaXRodWJfcHJvamVj
dCk6CisgICAgICAgIHNlbGYuX2hvc3QgPSBob3N0CisgICAgICAgIHNlbGYuX2dpdGh1Yl9wcm9q
ZWN0ID0gZ2l0aHViX3Byb2plY3QKKworICAgIEBndWFyZCgnc2VhcmNoJykKKyAgICBkZWYgZ2V0
X3B1bGxfcmVxdWVzdHMoc2VsZiwgdXBkYXRlZF9zaW5jZSk6CisgICAgICAgIHdpbmRvd19zdGFy
dCA9IHRpbWUuc3RyZnRpbWUoJyVZLSVtLSVkVCVIOiVNOiVTWicsIHVwZGF0ZWRfc2luY2UpCisg
ICAgICAgIHVybCA9ICd7fS9zZWFyY2gvaXNzdWVzP3E9cmVwbzp7fStpczpwcit1cGRhdGVkOj57
fScuZm9ybWF0KAorICAgICAgICAgICAgc2VsZi5faG9zdCwgc2VsZi5fZ2l0aHViX3Byb2plY3Qs
IHdpbmRvd19zdGFydAorICAgICAgICApCisKKyAgICAgICAgbG9nZ2VyLmluZm8oCisgICAgICAg
ICAgICAnU2VhcmNoaW5nIGZvciBQdWxsIFJlcXVlc3RzIHVwZGF0ZWQgc2luY2UgJXMnLCB3aW5k
b3dfc3RhcnQKKyAgICAgICAgKQorCisgICAgICAgIGRhdGEgPSBnaF9yZXF1ZXN0KCdHRVQnLCB1
cmwpCisKKyAgICAgICAgbG9nZ2VyLmluZm8oJ0ZvdW5kICVkIFB1bGwgUmVxdWVzdHMnLCBsZW4o
ZGF0YVsnaXRlbXMnXSkpCisKKyAgICAgICAgaWYgZGF0YVsnaW5jb21wbGV0ZV9yZXN1bHRzJ106
CisgICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oJ0luY29tcGxldGUgcmVzdWx0cycpCisKKyAg
ICAgICAgcmV0dXJuIGRhdGFbJ2l0ZW1zJ10KKworICAgIEBndWFyZCgnY29yZScpCisgICAgZGVm
IGNyZWF0ZV9yZWYoc2VsZiwgcmVmc3BlYywgcmV2aXNpb24pOgorICAgICAgICB1cmwgPSAne30v
cmVwb3Mve30vZ2l0L3JlZnMnLmZvcm1hdChzZWxmLl9ob3N0LCBzZWxmLl9naXRodWJfcHJvamVj
dCkKKworICAgICAgICBsb2dnZXIuaW5mbygnQ3JlYXRpbmcgcmVmICIlcyIgKCVzKScsIHJlZnNw
ZWMsIHJldmlzaW9uKQorCisgICAgICAgIGdoX3JlcXVlc3QoJ1BPU1QnLCB1cmwsIHsKKyAgICAg
ICAgICAgICdyZWYnOiAncmVmcy97fScuZm9ybWF0KHJlZnNwZWMpLAorICAgICAgICAgICAgJ3No
YSc6IHJldmlzaW9uCisgICAgICAgIH0pCisKKyAgICBAZ3VhcmQoJ2NvcmUnKQorICAgIGRlZiB1
cGRhdGVfcmVmKHNlbGYsIHJlZnNwZWMsIHJldmlzaW9uKToKKyAgICAgICAgdXJsID0gJ3t9L3Jl
cG9zL3t9L2dpdC9yZWZzL3t9Jy5mb3JtYXQoCisgICAgICAgICAgICBzZWxmLl9ob3N0LCBzZWxm
Ll9naXRodWJfcHJvamVjdCwgcmVmc3BlYworICAgICAgICApCisKKyAgICAgICAgbG9nZ2VyLmlu
Zm8oJ1VwZGF0aW5nIHJlZiAiJXMiICglcyknLCByZWZzcGVjLCByZXZpc2lvbikKKworICAgICAg
ICBnaF9yZXF1ZXN0KCdQQVRDSCcsIHVybCwgeydzaGEnOiByZXZpc2lvbn0pCisKKyAgICBAZ3Vh
cmQoJ2NvcmUnKQorICAgIGRlZiBjcmVhdGVfZGVwbG95bWVudChzZWxmLCBwdWxsX3JlcXVlc3Qs
IHJldmlzaW9uKToKKyAgICAgICAgdXJsID0gJ3t9L3JlcG9zL3t9L2RlcGxveW1lbnRzJy5mb3Jt
YXQoCisgICAgICAgICAgICBzZWxmLl9ob3N0LCBzZWxmLl9naXRodWJfcHJvamVjdAorICAgICAg
ICApCisgICAgICAgICMgVGhlIFB1bGwgUmVxdWVzdCBwcmV2aWV3IHN5c3RlbSBvbmx5IGV4cG9z
ZXMgb25lIERlcGxveW1lbnQgZm9yIGEKKyAgICAgICAgIyBnaXZlbiBQdWxsIFJlcXVlc3QuIElk
ZW50aWZ5aW5nIHRoZSBEZXBsb3ltZW50IGJ5IHRoZSBQdWxsIFJlcXVlc3QKKyAgICAgICAgIyBu
dW1iZXIgZW5zdXJlcyB0aGF0IEdpdEh1Yi5jb20gYXV0b21hdGljYWxseSByZXNwb25kcyB0byBu
ZXcKKyAgICAgICAgIyBEZXBsb3ltZW50cyBieSBkZXNpZ25hdGluZyBwcmlvciBEZXBsb3ltZW50
cyBhcyAiaW5hY3RpdmUiCisgICAgICAgIGVudmlyb25tZW50ID0gREVQTE9ZTUVOVF9QUkVGSVgg
KyBzdHIocHVsbF9yZXF1ZXN0WydudW1iZXInXSkKKworICAgICAgICBsb2dnZXIuaW5mbygnQ3Jl
YXRpbmcgRGVwbG95bWVudCAiJXMiIGZvciAiJXMiJywgZW52aXJvbm1lbnQsIHJldmlzaW9uKQor
CisgICAgICAgIHJldHVybiBnaF9yZXF1ZXN0KCdQT1NUJywgdXJsLCB7CisgICAgICAgICAgICAn
cmVmJzogcmV2aXNpb24sCisgICAgICAgICAgICAnZW52aXJvbm1lbnQnOiBlbnZpcm9ubWVudCwK
KyAgICAgICAgICAgICdhdXRvX21lcmdlJzogRmFsc2UsCisgICAgICAgICAgICAjIFB1bGwgUmVx
dWVzdCBwcmV2aWV3cyBhcmUgY3JlYXRlZCByZWdhcmRsZXNzIG9mIEdpdEh1YiBDb21taXQKKyAg
ICAgICAgICAgICMgU3RhdHVzIENoZWNrcywgc28gU3RhdHVzIENoZWNrcyBzaG91bGQgYmUgaWdu
b3JlZCB3aGVuIGNyZWF0aW5nCisgICAgICAgICAgICAjIEdpdEh1YiBEZXBsb3ltZW50cy4KKyAg
ICAgICAgICAgICdyZXF1aXJlZF9jb250ZXh0cyc6IFtdCisgICAgICAgIH0sICdhcHBsaWNhdGlv
bi92bmQuZ2l0aHViLmFudC1tYW4tcHJldmlldytqc29uJykKKworICAgIEBndWFyZCgnY29yZScp
CisgICAgZGVmIGdldF9kZXBsb3ltZW50KHNlbGYsIHJldmlzaW9uKToKKyAgICAgICAgdXJsID0g
J3t9L3JlcG9zL3t9L2RlcGxveW1lbnRzP3NoYT17fScuZm9ybWF0KAorICAgICAgICAgICAgc2Vs
Zi5faG9zdCwgc2VsZi5fZ2l0aHViX3Byb2plY3QsIHJldmlzaW9uCisgICAgICAgICkKKworICAg
ICAgICBkZXBsb3ltZW50cyA9IGdoX3JlcXVlc3QoJ0dFVCcsIHVybCkKKworICAgICAgICByZXR1
cm4gZGVwbG95bWVudHMucG9wKCkgaWYgbGVuKGRlcGxveW1lbnRzKSBlbHNlIE5vbmUKKworICAg
IEBndWFyZCgnY29yZScpCisgICAgZGVmIHVwZGF0ZV9kZXBsb3ltZW50KHNlbGYsIHRhcmdldCwg
ZGVwbG95bWVudCwgc3RhdGUsIGRlc2NyaXB0aW9uPScnKToKKyAgICAgICAgaWYgc3RhdGUgaW4g
KCdwZW5kaW5nJywgJ3N1Y2Nlc3MnKToKKyAgICAgICAgICAgIGVudmlyb25tZW50X3VybCA9ICd7
fS9zdWJtaXNzaW9ucy97fScuZm9ybWF0KAorICAgICAgICAgICAgICAgIHRhcmdldCwgZGVwbG95
bWVudFsnZW52aXJvbm1lbnQnXQorICAgICAgICAgICAgKQorICAgICAgICBlbHNlOgorICAgICAg
ICAgICAgZW52aXJvbm1lbnRfdXJsID0gTm9uZQorICAgICAgICB1cmwgPSAne30vcmVwb3Mve30v
ZGVwbG95bWVudHMve30vc3RhdHVzZXMnLmZvcm1hdCgKKyAgICAgICAgICAgIHNlbGYuX2hvc3Qs
IHNlbGYuX2dpdGh1Yl9wcm9qZWN0LCBkZXBsb3ltZW50WydpZCddCisgICAgICAgICkKKworICAg
ICAgICBnaF9yZXF1ZXN0KCdQT1NUJywgdXJsLCB7CisgICAgICAgICAgICAnc3RhdGUnOiBzdGF0
ZSwKKyAgICAgICAgICAgICdkZXNjcmlwdGlvbic6IGRlc2NyaXB0aW9uLAorICAgICAgICAgICAg
J2Vudmlyb25tZW50X3VybCc6IGVudmlyb25tZW50X3VybAorICAgICAgICB9LCAnYXBwbGljYXRp
b24vdm5kLmdpdGh1Yi5hbnQtbWFuLXByZXZpZXcranNvbicpCisKK2NsYXNzIFJlbW90ZShvYmpl
Y3QpOgorICAgIGRlZiBfX2luaXRfXyhzZWxmLCBnaXRodWJfcHJvamVjdCk6CisgICAgICAgICMg
VGhlIHJlcG9zaXRvcnkgaW4gdGhlIEdpdEh1YiBBY3Rpb25zIGVudmlyb25tZW50IGlzIGNvbmZp
Z3VyZWQgd2l0aAorICAgICAgICAjIGEgcmVtb3RlIHdob3NlIFVSTCB1c2VzIHVuYXV0aGVudGlj
YXRlZCBIVFRQUywgbWFraW5nIGl0IHVuc3VpdGFibGUKKyAgICAgICAgIyBmb3IgcHVzaGluZyBj
aGFuZ2VzLgorICAgICAgICBzZWxmLl90b2tlbiA9IG9zLmVudmlyb25bJ0RFUExPWV9UT0tFTidd
CisKKyAgICBkZWYgZ2V0X3JldmlzaW9uKHNlbGYsIHJlZnNwZWMpOgorICAgICAgICBvdXRwdXQg
PSBzdWJwcm9jZXNzLmNoZWNrX291dHB1dChbCisgICAgICAgICAgICAnZ2l0JywKKyAgICAgICAg
ICAgICctYycsCisgICAgICAgICAgICAnY3JlZGVudGlhbC51c2VybmFtZT17fScuZm9ybWF0KHNl
bGYuX3Rva2VuKSwKKyAgICAgICAgICAgICctYycsCisgICAgICAgICAgICAnY29yZS5hc2tQYXNz
PXRydWUnLAorICAgICAgICAgICAgJ2xzLXJlbW90ZScsCisgICAgICAgICAgICAnb3JpZ2luJywK
KyAgICAgICAgICAgICdyZWZzL3t9Jy5mb3JtYXQocmVmc3BlYykKKyAgICAgICAgXSkKKworICAg
ICAgICBpZiBub3Qgb3V0cHV0OgorICAgICAgICAgICAgcmV0dXJuIE5vbmUKKworICAgICAgICBy
ZXR1cm4gb3V0cHV0LmRlY29kZSgndXRmLTgnKS5zcGxpdCgpWzBdCisKKyAgICBkZWYgZGVsZXRl
X3JlZihzZWxmLCByZWZzcGVjKToKKyAgICAgICAgZnVsbF9yZWYgPSAncmVmcy97fScuZm9ybWF0
KHJlZnNwZWMpCisKKyAgICAgICAgbG9nZ2VyLmluZm8oJ0RlbGV0aW5nIHJlZiAiJXMiJywgcmVm
c3BlYykKKworICAgICAgICBzdWJwcm9jZXNzLmNoZWNrX2NhbGwoWworICAgICAgICAgICAgJ2dp
dCcsCisgICAgICAgICAgICAnLWMnLAorICAgICAgICAgICAgJ2NyZWRlbnRpYWwudXNlcm5hbWU9
e30nLmZvcm1hdChzZWxmLl90b2tlbiksCisgICAgICAgICAgICAnLWMnLAorICAgICAgICAgICAg
J2NvcmUuYXNrUGFzcz10cnVlJywKKyAgICAgICAgICAgICdwdXNoJywKKyAgICAgICAgICAgICdv
cmlnaW4nLAorICAgICAgICAgICAgJy0tZGVsZXRlJywKKyAgICAgICAgICAgIGZ1bGxfcmVmCisg
ICAgICAgIF0pCisKK2RlZiBpc19vcGVuKHB1bGxfcmVxdWVzdCk6CisgICAgcmV0dXJuIG5vdCBw
dWxsX3JlcXVlc3RbJ2Nsb3NlZF9hdCddCisKK2RlZiBoYXNfbWlycm9yaW5nX2xhYmVsKHB1bGxf
cmVxdWVzdCk6CisgICAgZm9yIGxhYmVsIGluIHB1bGxfcmVxdWVzdFsnbGFiZWxzJ106CisgICAg
ICAgIGlmIGxhYmVsWyduYW1lJ10gPT0gTEFCRUw6CisgICAgICAgICAgICByZXR1cm4gVHJ1ZQor
CisgICAgcmV0dXJuIEZhbHNlCisKK2RlZiBzaG91bGRfYmVfbWlycm9yZWQocHVsbF9yZXF1ZXN0
KToKKyAgICByZXR1cm4gKAorICAgICAgICBpc19vcGVuKHB1bGxfcmVxdWVzdCkgYW5kCisgICAg
ICAgIHB1bGxfcmVxdWVzdFsndXNlciddWydsb2dpbiddIG5vdCBpbiBBVVRPTUFUSU9OX0dJVEhV
Ql9VU0VSUyBhbmQgKAorICAgICAgICAgICAgcHVsbF9yZXF1ZXN0WydhdXRob3JfYXNzb2NpYXRp
b24nXSBpbiBUUlVTVEVEX0FVVEhPUl9BU1NPQ0lBVElPTlMgb3IKKyAgICAgICAgICAgIGhhc19t
aXJyb3JpbmdfbGFiZWwocHVsbF9yZXF1ZXN0KQorICAgICAgICApCisgICAgKQorCitkZWYgaXNf
ZGVwbG95ZWQoaG9zdCwgZGVwbG95bWVudCk6CisgICAgd29ya3RyZWVfbmFtZSA9IGRlcGxveW1l
bnRbJ2Vudmlyb25tZW50J11bbGVuKERFUExPWU1FTlRfUFJFRklYKTpdCisgICAgcmVzcG9uc2Ug
PSByZXF1ZXN0cy5nZXQoCisgICAgICAgICd7fS8uZ2l0L3dvcmt0cmVlcy97fS9IRUFEJy5mb3Jt
YXQoaG9zdCwgd29ya3RyZWVfbmFtZSkKKyAgICApCisKKyAgICBpZiByZXNwb25zZS5zdGF0dXNf
Y29kZSAhPSAyMDA6CisgICAgICAgIHJldHVybiBGYWxzZQorCisgICAgcmV0dXJuIHJlc3BvbnNl
LnRleHQuc3RyaXAoKSA9PSBkZXBsb3ltZW50WydzaGEnXQorCitkZWYgc3luY2hyb25pemUoaG9z
dCwgZ2l0aHViX3Byb2plY3QsIHdpbmRvdyk6CisgICAgJycnSW5zcGVjdCBhbGwgUHVsbCBSZXF1
ZXN0cyB3aGljaCBoYXZlIGJlZW4gbW9kaWZpZWQgaW4gYSBnaXZlbiB3aW5kb3cgb2YKKyAgICB0
aW1lLiBBZGQgb3IgcmVtb3ZlIHRoZSAicHJldmlldyIgbGFiZWwgYW5kIHVwZGF0ZSBvciBkZWxl
dGUgdGhlIHJlbGV2YW50CisgICAgZ2l0IHJlZnMgYWNjb3JkaW5nIHRvIHRoZSBzdGF0dXMgb2Yg
ZWFjaCBQdWxsIFJlcXVlc3QuJycnCisKKyAgICBwcm9qZWN0ID0gUHJvamVjdChob3N0LCBnaXRo
dWJfcHJvamVjdCkKKyAgICByZW1vdGUgPSBSZW1vdGUoZ2l0aHViX3Byb2plY3QpCisKKyAgICBw
dWxsX3JlcXVlc3RzID0gcHJvamVjdC5nZXRfcHVsbF9yZXF1ZXN0cygKKyAgICAgICAgdGltZS5n
bXRpbWUodGltZS50aW1lKCkgLSB3aW5kb3cpCisgICAgKQorCisgICAgZm9yIHB1bGxfcmVxdWVz
dCBpbiBwdWxsX3JlcXVlc3RzOgorICAgICAgICBsb2dnZXIuaW5mbygnUHJvY2Vzc2luZyBQdWxs
IFJlcXVlc3QgIyUobnVtYmVyKWQnLCBwdWxsX3JlcXVlc3QpCisKKyAgICAgICAgcmVmc3BlY190
cnVzdGVkID0gJ3Bycy10cnVzdGVkLWZvci1wcmV2aWV3L3tudW1iZXJ9Jy5mb3JtYXQoCisgICAg
ICAgICAgICAqKnB1bGxfcmVxdWVzdAorICAgICAgICApCisgICAgICAgIHJlZnNwZWNfb3BlbiA9
ICdwcnMtb3Blbi97bnVtYmVyfScuZm9ybWF0KCoqcHVsbF9yZXF1ZXN0KQorICAgICAgICByZXZp
c2lvbl9sYXRlc3QgPSByZW1vdGUuZ2V0X3JldmlzaW9uKAorICAgICAgICAgICAgJ3B1bGwve251
bWJlcn0vaGVhZCcuZm9ybWF0KCoqcHVsbF9yZXF1ZXN0KQorICAgICAgICApCisgICAgICAgIHJl
dmlzaW9uX3RydXN0ZWQgPSByZW1vdGUuZ2V0X3JldmlzaW9uKHJlZnNwZWNfdHJ1c3RlZCkKKyAg
ICAgICAgcmV2aXNpb25fb3BlbiA9IHJlbW90ZS5nZXRfcmV2aXNpb24ocmVmc3BlY19vcGVuKQor
CisgICAgICAgIGlmIHNob3VsZF9iZV9taXJyb3JlZChwdWxsX3JlcXVlc3QpOgorICAgICAgICAg
ICAgbG9nZ2VyLmluZm8oJ1B1bGwgUmVxdWVzdCBzaG91bGQgYmUgbWlycm9yZWQnKQorCisgICAg
ICAgICAgICBpZiByZXZpc2lvbl90cnVzdGVkIGlzIE5vbmU6CisgICAgICAgICAgICAgICAgcHJv
amVjdC5jcmVhdGVfcmVmKHJlZnNwZWNfdHJ1c3RlZCwgcmV2aXNpb25fbGF0ZXN0KQorICAgICAg
ICAgICAgZWxpZiByZXZpc2lvbl90cnVzdGVkICE9IHJldmlzaW9uX2xhdGVzdDoKKyAgICAgICAg
ICAgICAgICBwcm9qZWN0LnVwZGF0ZV9yZWYocmVmc3BlY190cnVzdGVkLCByZXZpc2lvbl9sYXRl
c3QpCisKKyAgICAgICAgICAgIGlmIHJldmlzaW9uX29wZW4gaXMgTm9uZToKKyAgICAgICAgICAg
ICAgICBwcm9qZWN0LmNyZWF0ZV9yZWYocmVmc3BlY19vcGVuLCByZXZpc2lvbl9sYXRlc3QpCisg
ICAgICAgICAgICBlbGlmIHJldmlzaW9uX29wZW4gIT0gcmV2aXNpb25fbGF0ZXN0OgorICAgICAg
ICAgICAgICAgIHByb2plY3QudXBkYXRlX3JlZihyZWZzcGVjX29wZW4sIHJldmlzaW9uX2xhdGVz
dCkKKworICAgICAgICAgICAgaWYgcHJvamVjdC5nZXRfZGVwbG95bWVudChyZXZpc2lvbl9sYXRl
c3QpIGlzIE5vbmU6CisgICAgICAgICAgICAgICAgcHJvamVjdC5jcmVhdGVfZGVwbG95bWVudCgK
KyAgICAgICAgICAgICAgICAgICAgcHVsbF9yZXF1ZXN0LCByZXZpc2lvbl9sYXRlc3QKKyAgICAg
ICAgICAgICAgICApCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBsb2dnZXIuaW5mbygnUHVs
bCBSZXF1ZXN0IHNob3VsZCBub3QgYmUgbWlycm9yZWQnKQorCisgICAgICAgICAgICBpZiBub3Qg
aGFzX21pcnJvcmluZ19sYWJlbChwdWxsX3JlcXVlc3QpIGFuZCByZXZpc2lvbl90cnVzdGVkIGlz
IG5vdCBOb25lOgorICAgICAgICAgICAgICAgIHJlbW90ZS5kZWxldGVfcmVmKHJlZnNwZWNfdHJ1
c3RlZCkKKworICAgICAgICAgICAgaWYgcmV2aXNpb25fb3BlbiBpcyBub3QgTm9uZSBhbmQgbm90
IGlzX29wZW4ocHVsbF9yZXF1ZXN0KToKKyAgICAgICAgICAgICAgICByZW1vdGUuZGVsZXRlX3Jl
ZihyZWZzcGVjX29wZW4pCisKK2RlZiBkZXRlY3QoaG9zdCwgZ2l0aHViX3Byb2plY3QsIHRhcmdl
dCwgdGltZW91dCk6CisgICAgJycnTWFuYWdlIHRoZSBzdGF0dXMgb2YgYSBHaXRIdWIgRGVwbG95
bWVudCBieSBwb2xsaW5nIHRoZSBQdWxsIFJlcXVlc3QKKyAgICBwcmV2aWV3IHdlYnNpdGUgdW50
aWwgdGhlIERlcGxveW1lbnQgaXMgY29tcGxldGUgb3IgYSB0aW1lb3V0IGlzCisgICAgcmVhY2hl
ZC4nJycKKworICAgIHByb2plY3QgPSBQcm9qZWN0KGhvc3QsIGdpdGh1Yl9wcm9qZWN0KQorCisg
ICAgd2l0aCBvcGVuKG9zLmVudmlyb25bJ0dJVEhVQl9FVkVOVF9QQVRIJ10pIGFzIGhhbmRsZToK
KyAgICAgICAgZGF0YSA9IGpzb24ubG9hZHMoaGFuZGxlLnJlYWQoKSkKKworICAgIGxvZ2dlci5p
bmZvKCdFdmVudCBkYXRhOiAlcycsIGpzb24uZHVtcHMoZGF0YSwgaW5kZW50PTIpKQorCisgICAg
ZGVwbG95bWVudCA9IGRhdGFbJ2RlcGxveW1lbnQnXQorCisgICAgaWYgbm90IGRlcGxveW1lbnRb
J2Vudmlyb25tZW50J10uc3RhcnRzd2l0aChERVBMT1lNRU5UX1BSRUZJWCk6CisgICAgICAgIGxv
Z2dlci5pbmZvKAorICAgICAgICAgICAgJ0RlcGxveW1lbnQgZW52aXJvbm1lbnQgIiVzIiBpcyB1
bnJlY29nbml6ZWQuIEV4aXRpbmcuJywKKyAgICAgICAgICAgIGRlcGxveW1lbnRbJ2Vudmlyb25t
ZW50J10KKyAgICAgICAgKQorICAgICAgICByZXR1cm4KKworICAgIG1lc3NhZ2UgPSAnV2FpdGlu
ZyB1cCB0byB7fSBzZWNvbmRzIGZvciBEZXBsb3ltZW50IHt9IHRvIGJlIGF2YWlsYWJsZSBvbiB7
fScuZm9ybWF0KAorICAgICAgICB0aW1lb3V0LCBkZXBsb3ltZW50WydlbnZpcm9ubWVudCddLCB0
YXJnZXQKKyAgICApCisgICAgbG9nZ2VyLmluZm8obWVzc2FnZSkKKyAgICBwcm9qZWN0LnVwZGF0
ZV9kZXBsb3ltZW50KHRhcmdldCwgZGVwbG95bWVudCwgJ3BlbmRpbmcnLCBtZXNzYWdlKQorCisg
ICAgc3RhcnQgPSB0aW1lLnRpbWUoKQorCisgICAgd2hpbGUgbm90IGlzX2RlcGxveWVkKHRhcmdl
dCwgZGVwbG95bWVudCk6CisgICAgICAgIGlmIHRpbWUudGltZSgpIC0gc3RhcnQgPiB0aW1lb3V0
OgorICAgICAgICAgICAgbWVzc2FnZSA9ICdEZXBsb3ltZW50IGRpZCBub3QgYmVjb21lIGF2YWls
YWJsZSBhZnRlciB7fSBzZWNvbmRzJy5mb3JtYXQodGltZW91dCkKKyAgICAgICAgICAgIHByb2pl
Y3QudXBkYXRlX2RlcGxveW1lbnQodGFyZ2V0LCBkZXBsb3ltZW50LCAnZXJyb3InLCBtZXNzYWdl
KQorICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKG1lc3NhZ2UpCisKKyAgICAgICAgdGltZS5z
bGVlcChQT0xMSU5HX1BFUklPRCkKKworICAgIHJlc3VsdCA9IHByb2plY3QudXBkYXRlX2RlcGxv
eW1lbnQodGFyZ2V0LCBkZXBsb3ltZW50LCAnc3VjY2VzcycpCisgICAgbG9nZ2VyLmluZm8oanNv
bi5kdW1wcyhyZXN1bHQsIGluZGVudD0yKSkKKworaWYgX19uYW1lX18gPT0gJ19fbWFpbl9fJzoK
KyAgICBwYXJzZXIgPSBhcmdwYXJzZS5Bcmd1bWVudFBhcnNlcigKKyAgICAgICAgZGVzY3JpcHRp
b249JycnU3luY2hyb25pemUgdGhlIHN0YXRlIG9mIGEgR2l0SHViLmNvbSBwcm9qZWN0IHdpdGgg
dGhlCisgICAgICAgICAgICB1bmRlcmx5aW5nIGdpdCByZXBvc2l0b3J5IGluIG9yZGVyIHRvIHN1
cHBvcnQgYSBleHRlcm5hbGx5LWhvc3RlZAorICAgICAgICAgICAgUHVsbCBSZXF1ZXN0IHByZXZp
ZXcgc3lzdGVtLiBDb21tdW5pY2F0ZSB0aGUgc3RhdGUgb2YgdGhhdCBzeXN0ZW0KKyAgICAgICAg
ICAgIHZpYSBHaXRIdWIgRGVwbG95bWVudHMgYXNzb2NpYXRlZCB3aXRoIGVhY2ggUHVsbCBSZXF1
ZXN0LicnJworICAgICkKKyAgICBwYXJzZXIuYWRkX2FyZ3VtZW50KAorICAgICAgICAnLS1ob3N0
JywgcmVxdWlyZWQ9VHJ1ZSwgaGVscD0ndGhlIGxvY2F0aW9uIG9mIHRoZSBHaXRIdWIgQVBJIHNl
cnZlcicKKyAgICApCisgICAgcGFyc2VyLmFkZF9hcmd1bWVudCgKKyAgICAgICAgJy0tZ2l0aHVi
LXByb2plY3QnLAorICAgICAgICByZXF1aXJlZD1UcnVlLAorICAgICAgICBoZWxwPScnJ3RoZSBH
aXRIdWIgb3JnYW5pemF0aW9uIGFuZCBHaXRIdWIgcHJvamVjdCBuYW1lLCBzZXBhcmF0ZWQgYnkK
KyAgICAgICAgICAgIGEgZm9yd2FyZCBzbGFzaCAoZS5nLiAid2ViLXBsYXRmb3JtLXRlc3RzL3dw
dCIpJycnCisgICAgKQorICAgIHN1YnBhcnNlcnMgPSBwYXJzZXIuYWRkX3N1YnBhcnNlcnModGl0
bGU9J3N1YmNvbW1hbmRzJykKKworICAgIHBhcnNlcl9zeW5jID0gc3VicGFyc2Vycy5hZGRfcGFy
c2VyKAorICAgICAgICAnc3luY2hyb25pemUnLCBoZWxwPXN5bmNocm9uaXplLl9fZG9jX18KKyAg
ICApCisgICAgcGFyc2VyX3N5bmMuYWRkX2FyZ3VtZW50KAorICAgICAgICAnLS13aW5kb3cnLAor
ICAgICAgICB0eXBlPWludCwKKyAgICAgICAgcmVxdWlyZWQ9VHJ1ZSwKKyAgICAgICAgaGVscD0n
Jyd0aGUgbnVtYmVyIG9mIHNlY29uZHMgcHJpb3IgdG8gdGhlIGN1cnJlbnQgbW9tZW50IHdpdGhp
biB3aGljaAorICAgICAgICAgICAgdG8gc2VhcmNoIGZvciBHaXRIdWIgUHVsbCBSZXF1ZXN0cy4g
QW55IFB1bGwgUmVxdWVzdHMgdXBkYXRlZCBpbgorICAgICAgICAgICAgdGhpcyB0aW1lIGZyYW1l
IHdpbGwgYmUgY29uc2lkZXJlZCBmb3Igc3luY2hyb25pemF0aW9uLicnJworICAgICkKKyAgICBw
YXJzZXJfc3luYy5zZXRfZGVmYXVsdHMoZnVuYz1zeW5jaHJvbml6ZSkKKworICAgIHBhcnNlcl9k
ZXRlY3QgPSBzdWJwYXJzZXJzLmFkZF9wYXJzZXIoJ2RldGVjdCcsIGhlbHA9ZGV0ZWN0Ll9fZG9j
X18pCisgICAgcGFyc2VyX2RldGVjdC5hZGRfYXJndW1lbnQoCisgICAgICAgICctLXRhcmdldCcs
CisgICAgICAgIHJlcXVpcmVkPVRydWUsCisgICAgICAgIGhlbHA9JycndGhlIFVSTCBvZiB0aGUg
d2Vic2l0ZSB0byB3aGljaCBzdWJtaXNzaW9uIHByZXZpZXdzIGFyZQorICAgICAgICAgICAgZXhw
ZWN0ZWQgdG8gYmVjb21lIGF2YWlsYWJsZScnJworICAgICkKKyAgICBwYXJzZXJfZGV0ZWN0LmFk
ZF9hcmd1bWVudCgKKyAgICAgICAgJy0tdGltZW91dCcsCisgICAgICAgIHR5cGU9aW50LAorICAg
ICAgICByZXF1aXJlZD1UcnVlLAorICAgICAgICBoZWxwPScnJ3RoZSBudW1iZXIgb2Ygc2Vjb25k
cyB0byB3YWl0IGZvciBhIHN1Ym1pc3Npb24gcHJldmlldyB0bworICAgICAgICAgICAgYmVjb21l
IGF2YWlsYWJsZSBiZWZvcmUgcmVwb3J0aW5nIGEgR2l0SHViIERlcGxveW1lbnQgZmFpbHVyZScn
JworICAgICkKKyAgICBwYXJzZXJfZGV0ZWN0LnNldF9kZWZhdWx0cyhmdW5jPWRldGVjdCkKKwor
ICAgIHZhbHVlcyA9IGRpY3QodmFycyhwYXJzZXIucGFyc2VfYXJncygpKSkKKyAgICB2YWx1ZXMu
cG9wKCdmdW5jJykoKip2YWx1ZXMpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2NpL3J1bi5zaCBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvY2kvcnVuLnNoCmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCBhZTU4ZjU4YzMzNjVkYTA3NmViMDUxOGY1MzJlYjU3MTdkMWJmM2Zh
Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvY2kvcnVuLnNoCisrKyAv
ZGV2L251bGwKQEAgLTEsMTAgKzAsMCBAQAotIyEvYmluL2Jhc2gKLXNldCAtZXgKLQotU0NSSVBU
X0RJUj0kKGRpcm5hbWUgJChyZWFkbGluayAtZiAiJDAiKSkKLVdQVF9ST09UPSQocmVhZGxpbmsg
LWYgJFNDUklQVF9ESVIvLi4vLi4pCi1jZCAkV1BUX1JPT1QKLQotaWYgW1sgJFJVTl9KT0IgLWVx
IDEgXV07IHRoZW4KLSAgICAkU0NSSVBUCi1maQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9jaS9ydW5fdGMucHkgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2NpL3J1bl90Yy5weQpu
ZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi5iNGNiMmIwMWI5NzQ1ZGUxYzIzNGM5ZWVhZjQxNGU2NWI4ZmU3YWUzCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy9jaS9ydW5fdGMucHkKQEAgLTAsMCArMSwzNzIgQEAKKyMhL3Vzci9iaW4vZW52IHB5
dGhvbgorCisiIiJXcmFwcGVyIHNjcmlwdCBmb3IgcnVubmluZyBqb2JzIGluIFRhc2tjbHVzdGVy
CisKK1RoaXMgaXMgaW50ZW5kZWQgZm9yIHJ1bm5pbmcgdGVzdCBqb2JzIGluIFRhc2tjbHVzdGVy
LiBUaGUgc2NyaXB0Cit0YWtlcyBhIHR3byBwb3NpdGlvbmFsIGFyZ3VtZW50cyB3aGljaCBhcmUg
dGhlIG5hbWUgb2YgdGhlIHRlc3Qgam9iCithbmQgdGhlIHNjcmlwdCB0byBhY3R1YWxseSBydW4u
CisKK1RoZSBuYW1lIG9mIHRoZSB0ZXN0IGpvYiBpcyB1c2VkIHRvIGRldGVybWluZSB3aGV0aGVy
IHRoZSBzY3JpcHQgc2hvdWxkIGJlIHJ1bgorZm9yIHRoaXMgcHVzaCAodGhpcyBpcyBpbiBsaWV1
IG9mIGhhdmluZyBhIHByb3BlciBkZWNpc2lvbiB0YXNrKS4gVGhlcmUgYXJlCitzZXZlcmFsIHdh
eXMgdGhhdCB0aGUgc2NyaXB0IGNhbiBiZSBzY2hlZHVsZWQgdG8gcnVuCisKKzEuIFRoZSBvdXRw
dXQgb2Ygd3B0IHRlc3Qtam9icyBpbmNsdWRlcyB0aGUgam9iIG5hbWUKKzIuIFRoZSBqb2IgbmFt
ZSBpcyBpbmNsdWRlZCBpbiBhIGpvYiBkZWNsYXJhdGlvbiAoc2VlIGJlbG93KQorMy4gVGhlIHN0
cmluZyAiYWxsIiBpcyBpbmNsdWRlZCBpbiB0aGUgam9iIGRlY2xhcmF0aW9uCis0LiBUaGUgam9i
IG5hbWUgaXMgc2V0IHRvICJhbGwiCisKK0Egam9iIGRlY2xhcmF0aW9uIGlzIGEgbGluZSBhcHBl
YXJpbmcgaW4gdGhlIHB1bGwgcmVxdWVzdCBib2R5IChmb3IKK3B1bGwgcmVxdWVzdHMpIG9yIGZp
cnN0IGNvbW1pdCBtZXNzYWdlIChmb3IgcHVzaGVzKSBvZiB0aGUgZm9ybToKKwordGMtam9iczog
am9iMSxqb2IyLFsuLi5dCisKK0luIGFkZGl0aW9uLCB0aGVyZSBhcmUgYSBudW1iZXIgb2Yga2V5
d29yZCBhcmd1bWVudHMgdXNlZCB0byBzZXQgb3B0aW9ucyBmb3IgdGhlCitlbnZpcm9ubWVudCBp
biB3aGljaCB0aGUgam9icyBydW4uIERvY3VtZW50YXRpb24gZm9yIHRoZXNlIGlzIGluIHRoZSBj
b21tYW5kIGhlbHAuCisKK0FzIHdlbGwgYXMgcnVubmluZyB0aGUgc2NyaXB0LCB0aGUgc2NyaXB0
IHNldHMgdHdvIGVudmlyb25tZW50IHZhcmlhYmxlczsKK0dJVEhVQl9CUkFOQ0ggd2hpY2ggaXMg
dGhlIGJyYW5jaCB0aGF0IHRoZSBjb21taXRzIHdpbGwgbWVyZ2UgaW50byAoaWYgaXQncyBhIFBS
KQorb3IgdGhlIGJyYW5jaCB0aGF0IHRoZSBjb21taXRzIGFyZSBvbiAoaWYgaXQncyBhIHB1c2gp
LCBhbmQgR0lUSFVCX1BVTExfUkVRVUVTVAord2hpY2ggaXMgdGhlIHN0cmluZyAiZmFsc2UiIGlm
IHRoZSBldmVudCB0cmlnZ2VyaW5nIHRoaXMgam9iIHdhc24ndCBhIHB1bGwgcmVxdWVzdAorb3Ig
dGhlIHB1bGwgcmVxdWVzdCBudW1iZXIgaWYgaXQgd2FzLiBUaGUgc2VtYW50aWNzIG9mIHRoZXNl
IHZhcmlhYmxlcyBhcmUgY2hvc2VuCit0byBtYXRjaCB0aGUgY29ycmVzcG9uZGluZyBUUkFWSVNf
KiB2YXJpYWJsZXMuCisKK05vdGU6IGZvciBsb2NhbCB0ZXN0aW5nIGluIHRoZSBEb2NrZXIgaW1h
Z2UgdGhlIHNjcmlwdCBvdWdodCB0byBzdGlsbCB3b3JrLCBidXQKK2Z1bGwgZnVuY3Rpb25hbGl0
eSByZXF1aXJlcyB0aGF0IHRoZSBUQVNLX0VWRU5UIGVudmlyb25tZW50IHZhcmlhYmxlIGlzIHNl
dCB0bwordGhlIHNlcmlhbGl6YXRpb24gb2YgYSBHaXRIdWIgZXZlbnQgcGF5bG9hZC4KKyIiIgor
CitpbXBvcnQgYXJncGFyc2UKK2ltcG9ydCBqc29uCitpbXBvcnQgb3MKK2ltcG9ydCBzdWJwcm9j
ZXNzCitpbXBvcnQgc3lzCitpbXBvcnQgdGVtcGZpbGUKK2Zyb20gc29ja2V0IGltcG9ydCBlcnJv
ciBhcyBTb2NrZXRFcnJvciAgIyBOT1FBOiBOODEyCitpbXBvcnQgZXJybm8KK3RyeToKKyAgICBm
cm9tIHVybGxpYjIgaW1wb3J0IHVybG9wZW4KK2V4Y2VwdCBJbXBvcnRFcnJvcjoKKyAgICAjIFB5
dGhvbiAzIGNhc2UKKyAgICBmcm9tIHVybGxpYi5yZXF1ZXN0IGltcG9ydCB1cmxvcGVuCisKKwor
cm9vdCA9IG9zLnBhdGguYWJzcGF0aCgKKyAgICBvcy5wYXRoLmpvaW4ob3MucGF0aC5kaXJuYW1l
KF9fZmlsZV9fKSwKKyAgICAgICAgICAgICAgICAgb3MucGFyZGlyLAorICAgICAgICAgICAgICAg
ICBvcy5wYXJkaXIpKQorCisKK2RlZiBydW4oY21kLCByZXR1cm5fc3Rkb3V0PUZhbHNlLCAqKmt3
YXJncyk6CisgICAgcHJpbnQoIiAiLmpvaW4oY21kKSkKKyAgICBpZiByZXR1cm5fc3Rkb3V0Ogor
ICAgICAgICBmID0gc3VicHJvY2Vzcy5jaGVja19vdXRwdXQKKyAgICBlbHNlOgorICAgICAgICBm
ID0gc3VicHJvY2Vzcy5jaGVja19jYWxsCisgICAgcmV0dXJuIGYoY21kLCAqKmt3YXJncykKKwor
CitkZWYgc3RhcnQoY21kKToKKyAgICBwcmludCgiICIuam9pbihjbWQpKQorICAgIHN1YnByb2Nl
c3MuUG9wZW4oY21kKQorCisKK2RlZiBnZXRfcGFyc2VyKCk6CisgICAgcCA9IGFyZ3BhcnNlLkFy
Z3VtZW50UGFyc2VyKCkKKyAgICBwLmFkZF9hcmd1bWVudCgiLS1vb20ta2lsbGVyIiwKKyAgICAg
ICAgICAgICAgICAgICBhY3Rpb249InN0b3JlX3RydWUiLAorICAgICAgICAgICAgICAgICAgIGRl
ZmF1bHQ9RmFsc2UsCisgICAgICAgICAgICAgICAgICAgaGVscD0iUnVuIHVzZXJzcGFjZSBPT00g
a2lsbGVyIikKKyAgICBwLmFkZF9hcmd1bWVudCgiLS1ob3N0cyIsCisgICAgICAgICAgICAgICAg
ICAgZGVzdD0iaG9zdHNfZmlsZSIsCisgICAgICAgICAgICAgICAgICAgYWN0aW9uPSJzdG9yZV90
cnVlIiwKKyAgICAgICAgICAgICAgICAgICBkZWZhdWx0PVRydWUsCisgICAgICAgICAgICAgICAg
ICAgaGVscD0iU2V0dXAgd3B0IGVudHJpZXMgaW4gaG9zdHMgZmlsZSIpCisgICAgcC5hZGRfYXJn
dW1lbnQoIi0tbm8taG9zdHMiLAorICAgICAgICAgICAgICAgICAgIGRlc3Q9Imhvc3RzX2ZpbGUi
LAorICAgICAgICAgICAgICAgICAgIGFjdGlvbj0ic3RvcmVfZmFsc2UiLAorICAgICAgICAgICAg
ICAgICAgIGhlbHA9IkRvbid0IHNldHVwIHdwdCBlbnRyaWVzIGluIGhvc3RzIGZpbGUiKQorICAg
IHAuYWRkX2FyZ3VtZW50KCItLWJyb3dzZXIiLAorICAgICAgICAgICAgICAgICAgIGFjdGlvbj0i
YXBwZW5kIiwKKyAgICAgICAgICAgICAgICAgICBkZWZhdWx0PVtdLAorICAgICAgICAgICAgICAg
ICAgIGhlbHA9IkJyb3dzZXJzIHRoYXQgd2lsbCBiZSB1c2VkIGluIHRoZSBqb2IiKQorICAgIHAu
YWRkX2FyZ3VtZW50KCItLWNoYW5uZWwiLAorICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ9Tm9u
ZSwKKyAgICAgICAgICAgICAgICAgICBjaG9pY2VzPVsiZXhwZXJpbWVudGFsIiwgImRldiIsICJu
aWdodGx5IiwgImJldGEiLCAic3RhYmxlIl0sCisgICAgICAgICAgICAgICAgICAgaGVscD0iQ2hy
b21lIGJyb3dzZXIgY2hhbm5lbCIpCisgICAgcC5hZGRfYXJndW1lbnQoIi0teHZmYiIsCisgICAg
ICAgICAgICAgICAgICAgYWN0aW9uPSJzdG9yZV90cnVlIiwKKyAgICAgICAgICAgICAgICAgICBo
ZWxwPSJTdGFydCB4dmZiIikKKyAgICBwLmFkZF9hcmd1bWVudCgiLS1jaGVja291dCIsCisgICAg
ICAgICAgICAgICAgICAgaGVscD0iUmV2aXNpb24gdG8gY2hlY2tvdXQgYmVmb3JlIHN0YXJ0aW5n
IGpvYiIpCisgICAgcC5hZGRfYXJndW1lbnQoIi0taW5zdGFsbC1jZXJ0aWZpY2F0ZXMiLCBhY3Rp
b249InN0b3JlX3RydWUiLCBkZWZhdWx0PU5vbmUsCisgICAgICAgICAgICAgICAgICAgaGVscD0i
SW5zdGFsbCB3ZWItcGxhdGZvcm0udGVzdCBjZXJ0aWZpY2F0ZXMgdG8gVUEgc3RvcmUiKQorICAg
IHAuYWRkX2FyZ3VtZW50KCItLW5vLWluc3RhbGwtY2VydGlmaWNhdGVzIiwgYWN0aW9uPSJzdG9y
ZV9mYWxzZSIsIGRlZmF1bHQ9Tm9uZSwKKyAgICAgICAgICAgICAgICAgICBoZWxwPSJEb24ndCBp
bnN0YWxsIHdlYi1wbGF0Zm9ybS50ZXN0IGNlcnRpZmljYXRlcyB0byBVQSBzdG9yZSIpCisgICAg
cC5hZGRfYXJndW1lbnQoIi0tcmV2IiwKKyAgICAgICAgICAgICAgICAgICBoZWxwPSJSZXZpc2lv
biB0aGF0IHRoZSB0YXNrX2hlYWQgcmVmIGlzIGV4cGVjdGVkIHRvIHBvaW50IHRvIikKKyAgICBw
LmFkZF9hcmd1bWVudCgic2NyaXB0IiwKKyAgICAgICAgICAgICAgICAgICBoZWxwPSJTY3JpcHQg
dG8gcnVuIGZvciB0aGUgam9iIikKKyAgICBwLmFkZF9hcmd1bWVudCgic2NyaXB0X2FyZ3MiLAor
ICAgICAgICAgICAgICAgICAgIG5hcmdzPWFyZ3BhcnNlLlJFTUFJTkRFUiwKKyAgICAgICAgICAg
ICAgICAgICBoZWxwPSJBZGRpdGlvbmFsIGFyZ3VtZW50cyB0byBwYXNzIHRvIHRoZSBzY3JpcHQi
KQorICAgIHJldHVybiBwCisKKworZGVmIHN0YXJ0X3VzZXJzcGFjZV9vb21fa2lsbGVyKCk6Cisg
ICAgIyBTdGFydCB1c2Vyc3BhY2UgT09NIGtpbGxlcjogaHR0cHM6Ly9naXRodWIuY29tL3JmamFr
b2IvZWFybHlvb20KKyAgICAjIEl0IHdpbGwgcmVwb3J0IG1lbW9yeSB1c2FnZSBldmVyeSBtaW51
dGUgYW5kIHByZWZlciB0byBraWxsIGJyb3dzZXJzLgorICAgIHN0YXJ0KFsic3VkbyIsICJlYXJs
eW9vbSIsICItcCIsICItciIsICI2MCIsICItLXByZWZlcj0oY2hyb21lfGZpcmVmb3gpIiwgIi0t
YXZvaWQ9cHl0aG9uIl0pCisKKworZGVmIG1ha2VfaG9zdHNfZmlsZSgpOgorICAgIHJ1bihbInN1
ZG8iLCAic2giLCAiLWMiLCAiLi93cHQgbWFrZS1ob3N0cy1maWxlID4+IC9ldGMvaG9zdHMiXSkK
KworCitkZWYgY2hlY2tvdXRfcmV2aXNpb24ocmV2KToKKyAgICBydW4oWyJnaXQiLCAiY2hlY2tv
dXQiLCAiLS1xdWlldCIsIHJldl0pCisKKworZGVmIGluc3RhbGxfY2VydGlmaWNhdGVzKCk6Cisg
ICAgcnVuKFsic3VkbyIsICJjcCIsICJ0b29scy9jZXJ0cy9jYWNlcnQucGVtIiwKKyAgICAgICAg
ICIvdXNyL2xvY2FsL3NoYXJlL2NhLWNlcnRpZmljYXRlcy9jYWNlcnQuY3J0Il0pCisgICAgcnVu
KFsic3VkbyIsICJ1cGRhdGUtY2EtY2VydGlmaWNhdGVzIl0pCisKKworZGVmIGluc3RhbGxfY2hy
b21lKGNoYW5uZWwpOgorICAgIGlmIGNoYW5uZWwgaW4gKCJleHBlcmltZW50YWwiLCAiZGV2Iiwg
Im5pZ2h0bHkiKToKKyAgICAgICAgZGViX2FyY2hpdmUgPSAiZ29vZ2xlLWNocm9tZS11bnN0YWJs
ZV9jdXJyZW50X2FtZDY0LmRlYiIKKyAgICBlbGlmIGNoYW5uZWwgPT0gImJldGEiOgorICAgICAg
ICBkZWJfYXJjaGl2ZSA9ICJnb29nbGUtY2hyb21lLWJldGFfY3VycmVudF9hbWQ2NC5kZWIiCisg
ICAgZWxpZiBjaGFubmVsID09ICJzdGFibGUiOgorICAgICAgICBkZWJfYXJjaGl2ZSA9ICJnb29n
bGUtY2hyb21lLXN0YWJsZV9jdXJyZW50X2FtZDY0LmRlYiIKKyAgICBlbHNlOgorICAgICAgICBy
YWlzZSBWYWx1ZUVycm9yKCJVbnJlY29nbml6ZWQgcmVsZWFzZSBjaGFubmVsOiAlcyIgJSBjaGFu
bmVsKQorCisgICAgZGVzdCA9IG9zLnBhdGguam9pbigiL3RtcCIsIGRlYl9hcmNoaXZlKQorICAg
IHJlc3AgPSB1cmxvcGVuKCJodHRwczovL2RsLmdvb2dsZS5jb20vbGludXgvZGlyZWN0LyVzIiAl
IGRlYl9hcmNoaXZlKQorICAgIHdpdGggb3BlbihkZXN0LCAidyIpIGFzIGY6CisgICAgICAgIGYu
d3JpdGUocmVzcC5yZWFkKCkpCisKKyAgICBydW4oWyJzdWRvIiwgImFwdC1nZXQiLCAiLXFxeSIs
ICJ1cGRhdGUiXSkKKyAgICBydW4oWyJzdWRvIiwgImdkZWJpIiwgIi1xbiIsICIvdG1wLyVzIiAl
IGRlYl9hcmNoaXZlXSkKKworZGVmIGluc3RhbGxfd2Via2l0Z3RrX2Zyb21fYXB0X3JlcG9zaXRv
cnkoY2hhbm5lbCk6CisgICAgIyBDb25maWd1cmUgd2Via2l0Z3RrLm9yZy9kZWJpYW4gcmVwb3Np
dG9yeSBmb3IgJGNoYW5uZWwgYW5kIHBpbiBpdCB3aXRoIG1heGltdW0gcHJpb3JpdHkKKyAgICBy
dW4oWyJzdWRvIiwgImFwdC1rZXkiLCAiYWR2IiwgIi0tZmV0Y2gta2V5cyIsICJodHRwczovL3dl
YmtpdGd0ay5vcmcvZGViaWFuL2FwdC5rZXkiXSkKKyAgICB3aXRoIG9wZW4oIi90bXAvd2Via2l0
Z3RrLmxpc3QiLCAidyIpIGFzIGY6CisgICAgICAgIGYud3JpdGUoImRlYiBbYXJjaD1hbWQ2NF0g
aHR0cHM6Ly93ZWJraXRndGsub3JnL2FwdCBiaW9uaWMtd3B0LXdlYmtpdC11cGRhdGVzICVzXG4i
ICUgY2hhbm5lbCkKKyAgICBydW4oWyJzdWRvIiwgIm12IiwgIi90bXAvd2Via2l0Z3RrLmxpc3Qi
LCAiL2V0Yy9hcHQvc291cmNlcy5saXN0LmQvIl0pCisgICAgd2l0aCBvcGVuKCIvdG1wLzk5d2Vi
a2l0Z3RrIiwgInciKSBhcyBmOgorICAgICAgICBmLndyaXRlKCJQYWNrYWdlOiAqXG5QaW46IG9y
aWdpbiB3ZWJraXRndGsub3JnXG5QaW4tUHJpb3JpdHk6IDE5OTlcbiIpCisgICAgcnVuKFsic3Vk
byIsICJtdiIsICIvdG1wLzk5d2Via2l0Z3RrIiwgIi9ldGMvYXB0L3ByZWZlcmVuY2VzLmQvIl0p
CisgICAgIyBJbnN0YWxsIHdlYmtpdDJndGsgZnJvbSB0aGUgd2Via2l0Z3RrLm9yZy9hcHQgcmVw
b3NpdG9yeSBmb3IgJGNoYW5uZWwKKyAgICBydW4oWyJzdWRvIiwgImFwdC1nZXQiLCAiLXFxeSIs
ICJ1cGRhdGUiXSkKKyAgICBydW4oWyJzdWRvIiwgImFwdC1nZXQiLCAiLXFxeSIsICJ1cGdyYWRl
Il0pCisgICAgcnVuKFsic3VkbyIsICJhcHQtZ2V0IiwgIi1xcXkiLCAiLXQiLCAiYmlvbmljLXdw
dC13ZWJraXQtdXBkYXRlcyIsICJpbnN0YWxsIiwgIndlYmtpdDJndGstZHJpdmVyIl0pCisKKwor
IyBEb3dubG9hZCBhbiBVUkwgaW4gY2h1bmtzIGFuZCBzYXZlcyBpdCB0byBhIGZpbGUgZGVzY3Jp
cHRvciAodHJ1bmNhdGluZyBpdCkKKyMgSXQgZG9lc24ndCBjbG9zZSB0aGUgZGVzY3JpcHRvciwg
YnV0IGZsdXNoZXMgaXQgb24gc3VjY2Vzcy4KKyMgSXQgcmV0cmllcyB0aGUgZG93bmxvYWQgaW4g
Y2FzZSBvZiBFQ09OTlJFU0VUIHVwIHRvIG1heF9yZXRyaWVzLgorZGVmIGRvd25sb2FkX3VybF90
b19kZXNjcmlwdG9yKGZkLCB1cmwsIG1heF9yZXRyaWVzPTMpOgorICAgIGRvd25sb2FkX3N1Y2Nl
ZWQgPSBGYWxzZQorICAgIGlmIG1heF9yZXRyaWVzIDwgMDoKKyAgICAgICAgbWF4X3JldHJpZXMg
PSAwCisgICAgZm9yIGN1cnJlbnRfcmV0cnkgaW4gcmFuZ2UobWF4X3JldHJpZXMrMSk6CisgICAg
ICAgIHRyeToKKyAgICAgICAgICAgIHJlc3AgPSB1cmxvcGVuKHVybCkKKyAgICAgICAgICAgICMg
V2UgbWF5IGNvbWUgaGVyZSBpbiBhIHJldHJ5LCBlbnN1cmUgdG8gdHJ1bmNhdGUgZmQgYmVmb3Jl
IHN0YXJ0IHdyaXRpbmcuCisgICAgICAgICAgICBmZC5zZWVrKDApCisgICAgICAgICAgICBmZC50
cnVuY2F0ZSgwKQorICAgICAgICAgICAgd2hpbGUgVHJ1ZToKKyAgICAgICAgICAgICAgICBjaHVu
ayA9IHJlc3AucmVhZCgxNioxMDI0KQorICAgICAgICAgICAgICAgIGlmIG5vdCBjaHVuazoKKyAg
ICAgICAgICAgICAgICAgICAgYnJlYWsgICMgRG93bmxvYWQgZmluaXNoZWQKKyAgICAgICAgICAg
ICAgICBmZC53cml0ZShjaHVuaykKKyAgICAgICAgICAgIGZkLmZsdXNoKCkKKyAgICAgICAgICAg
IGRvd25sb2FkX3N1Y2NlZWQgPSBUcnVlCisgICAgICAgICAgICBicmVhayAgIyBTdWNlc3MKKyAg
ICAgICAgZXhjZXB0IFNvY2tldEVycm9yIGFzIGU6CisgICAgICAgICAgICBpZiBlLmVycm5vICE9
IGVycm5vLkVDT05OUkVTRVQ6CisgICAgICAgICAgICAgICAgcmFpc2UgICMgVW5rbm93biBlcnJv
cgorICAgICAgICAgICAgaWYgY3VycmVudF9yZXRyeSA8IG1heF9yZXRyaWVzOgorICAgICAgICAg
ICAgICAgIHByaW50KCJFUlJPUjogQ29ubmVjdGlvbiByZXNldCBieSBwZWVyLiBSZXRyeWluZyAu
Li4iKQorICAgICAgICAgICAgICAgIGNvbnRpbnVlICAjIFJldHJ5CisgICAgcmV0dXJuIGRvd25s
b2FkX3N1Y2NlZWQKKworCitkZWYgaW5zdGFsbF93ZWJraXRndGtfZnJvbV90YXJiYWxsX2J1bmRs
ZShjaGFubmVsKToKKyAgICB3aXRoIHRlbXBmaWxlLk5hbWVkVGVtcG9yYXJ5RmlsZShzdWZmaXg9
Ii50YXIueHoiKSBhcyB0ZW1wX3RhcmJhbGw6CisgICAgICAgIGRvd25sb2FkX3VybCA9ICJodHRw
czovL3dlYmtpdGd0ay5vcmcvYnVpbHQtcHJvZHVjdHMvbmlnaHRseS93ZWJraXRndGstbmlnaHRs
eS1idWlsZC1sYXN0LnRhci54eiIKKyAgICAgICAgaWYgbm90IGRvd25sb2FkX3VybF90b19kZXNj
cmlwdG9yKHRlbXBfdGFyYmFsbCwgZG93bmxvYWRfdXJsKToKKyAgICAgICAgICAgIHJhaXNlIFJ1
bnRpbWVFcnJvcigiQ2FuJ3QgZG93bmxvYWQgJXMuIEFib3J0aW5nIiAlIGRvd25sb2FkX3VybCkK
KyAgICAgICAgcnVuKFsic3VkbyIsICJ0YXIiLCAieGZhIiwgdGVtcF90YXJiYWxsLm5hbWUsICIt
QyIsICIvIl0pCisgICAgIyBJbnN0YWxsIGRlcGVuZGVuY2llcworICAgIHJ1bihbInN1ZG8iLCAi
YXB0LWdldCIsICItcXF5IiwgInVwZGF0ZSJdKQorICAgIHJ1bihbInN1ZG8iLCAiL29wdC93ZWJr
aXRndGsvbmlnaHRseS9pbnN0YWxsLWRlcGVuZGVuY2llcyJdKQorCisKK2RlZiBpbnN0YWxsX3dl
YmtpdGd0ayhjaGFubmVsKToKKyAgICBpZiBjaGFubmVsIGluICgiZXhwZXJpbWVudGFsIiwgImRl
diIsICJuaWdodGx5Iik6CisgICAgICAgIGluc3RhbGxfd2Via2l0Z3RrX2Zyb21fdGFyYmFsbF9i
dW5kbGUoY2hhbm5lbCkKKyAgICBlbGlmIGNoYW5uZWwgaW4gKCJiZXRhIiwgInN0YWJsZSIpOgor
ICAgICAgICBpbnN0YWxsX3dlYmtpdGd0a19mcm9tX2FwdF9yZXBvc2l0b3J5KGNoYW5uZWwpCisg
ICAgZWxzZToKKyAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigiVW5yZWNvZ25pemVkIHJlbGVhc2Ug
Y2hhbm5lbDogJXMiICUgY2hhbm5lbCkKKworZGVmIHN0YXJ0X3h2ZmIoKToKKyAgICBzdGFydChb
InN1ZG8iLCAiWHZmYiIsIG9zLmVudmlyb25bIkRJU1BMQVkiXSwgIi1zY3JlZW4iLCAiMCIsCisg
ICAgICAgICAgICIlc3glc3glcyIgJSAob3MuZW52aXJvblsiU0NSRUVOX1dJRFRIIl0sCisgICAg
ICAgICAgICAgICAgICAgICAgICAgb3MuZW52aXJvblsiU0NSRUVOX0hFSUdIVCJdLAorICAgICAg
ICAgICAgICAgICAgICAgICAgIG9zLmVudmlyb25bIlNDUkVFTl9ERVBUSCJdKV0pCisgICAgc3Rh
cnQoWyJzdWRvIiwgImZsdXhib3giLCAiLWRpc3BsYXkiLCBvcy5lbnZpcm9uWyJESVNQTEFZIl1d
KQorCisKK2RlZiBzZXRfdmFyaWFibGVzKGV2ZW50KToKKyAgICAjIFNldCBzb21lIHZhcmlhYmxl
cyB0aGF0IHdlIHVzZSB0byBnZXQgdGhlIGNvbW1pdHMgb24gdGhlIGN1cnJlbnQgYnJhbmNoCisg
ICAgcmVmX3ByZWZpeCA9ICJyZWZzL2hlYWRzLyIKKyAgICBwdWxsX3JlcXVlc3QgPSAiZmFsc2Ui
CisgICAgYnJhbmNoID0gTm9uZQorICAgIGlmICJwdWxsX3JlcXVlc3QiIGluIGV2ZW50OgorICAg
ICAgICBwdWxsX3JlcXVlc3QgPSBzdHIoZXZlbnRbInB1bGxfcmVxdWVzdCJdWyJudW1iZXIiXSkK
KyAgICAgICAgIyBOb3RlIHRoYXQgdGhpcyBpcyB0aGUgYnJhbmNoIHRoYXQgYSBQUiB3aWxsIG1l
cmdlIHRvLAorICAgICAgICAjIG5vdCB0aGUgYnJhbmNoIG5hbWUgZm9yIHRoZSBQUgorICAgICAg
ICBicmFuY2ggPSBldmVudFsicHVsbF9yZXF1ZXN0Il1bImJhc2UiXVsicmVmIl0KKyAgICBlbGlm
ICJyZWYiIGluIGV2ZW50OgorICAgICAgICBicmFuY2ggPSBldmVudFsicmVmIl0KKyAgICAgICAg
aWYgYnJhbmNoLnN0YXJ0c3dpdGgocmVmX3ByZWZpeCk6CisgICAgICAgICAgICBicmFuY2ggPSBi
cmFuY2hbbGVuKHJlZl9wcmVmaXgpOl0KKworICAgIG9zLmVudmlyb25bIkdJVEhVQl9QVUxMX1JF
UVVFU1QiXSA9IHB1bGxfcmVxdWVzdAorICAgIGlmIGJyYW5jaDoKKyAgICAgICAgb3MuZW52aXJv
blsiR0lUSFVCX0JSQU5DSCJdID0gYnJhbmNoCisKKworZGVmIHNldHVwX2Vudmlyb25tZW50KGFy
Z3MpOgorICAgIGlmIGFyZ3MuaG9zdHNfZmlsZToKKyAgICAgICAgbWFrZV9ob3N0c19maWxlKCkK
KworICAgIGlmIGFyZ3MuaW5zdGFsbF9jZXJ0aWZpY2F0ZXM6CisgICAgICAgIGluc3RhbGxfY2Vy
dGlmaWNhdGVzKCkKKworICAgIGlmICJjaHJvbWUiIGluIGFyZ3MuYnJvd3NlcjoKKyAgICAgICAg
YXNzZXJ0IGFyZ3MuY2hhbm5lbCBpcyBub3QgTm9uZQorICAgICAgICBpbnN0YWxsX2Nocm9tZShh
cmdzLmNoYW5uZWwpCisgICAgZWxpZiAid2Via2l0Z3RrX21pbmlicm93c2VyIiBpbiBhcmdzLmJy
b3dzZXI6CisgICAgICAgIGFzc2VydCBhcmdzLmNoYW5uZWwgaXMgbm90IE5vbmUKKyAgICAgICAg
aW5zdGFsbF93ZWJraXRndGsoYXJncy5jaGFubmVsKQorCisgICAgaWYgYXJncy54dmZiOgorICAg
ICAgICBzdGFydF94dmZiKCkKKworICAgIGlmIGFyZ3Mub29tX2tpbGxlcjoKKyAgICAgICAgc3Rh
cnRfdXNlcnNwYWNlX29vbV9raWxsZXIoKQorCisgICAgaWYgYXJncy5jaGVja291dDoKKyAgICAg
ICAgY2hlY2tvdXRfcmV2aXNpb24oYXJncy5jaGVja291dCkKKworCitkZWYgc2V0dXBfcmVwb3Np
dG9yeSgpOgorICAgIGlmIG9zLmVudmlyb24uZ2V0KCJHSVRIVUJfUFVMTF9SRVFVRVNUIiwgImZh
bHNlIikgIT0gImZhbHNlIjoKKyAgICAgICAgcGFyZW50cyA9IHJ1bihbImdpdCIsICJzaG93Iiwg
Ii0tbm8tcGF0Y2giLCAiLS1mb3JtYXQ9JVAiLCAidGFza19oZWFkIl0sIHJldHVybl9zdGRvdXQ9
VHJ1ZSkuc3RyaXAoKS5zcGxpdCgpCisgICAgICAgIGlmIGxlbihwYXJlbnRzKSA9PSAyOgorICAg
ICAgICAgICAgYmFzZV9oZWFkID0gcGFyZW50c1swXQorICAgICAgICAgICAgcHJfaGVhZCA9IHBh
cmVudHNbMV0KKworICAgICAgICAgICAgcnVuKFsiZ2l0IiwgImJyYW5jaCIsICJiYXNlX2hlYWQi
LCBiYXNlX2hlYWRdKQorICAgICAgICAgICAgcnVuKFsiZ2l0IiwgImJyYW5jaCIsICJwcl9oZWFk
IiwgcHJfaGVhZF0pCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBwcmludCgiRVJST1I6IFB1
bGwgcmVxdWVzdCBIRUFEIHdhc24ndCBhIDItcGFyZW50IG1lcmdlIGNvbW1pdDsgIgorICAgICAg
ICAgICAgICAgICAgImV4cGVjdGVkIHRvIHRlc3QgdGhlIG1lcmdlIG9mIFBSIGludG8gdGhlIGJh
c2UiKQorICAgICAgICAgICAgY29tbWl0ID0gcnVuKFsiZ2l0IiwgInNob3ciLCAiLS1uby1wYXRj
aCIsICItLWZvcm1hdD0lSCIsICJ0YXNrX2hlYWQiXSwgcmV0dXJuX3N0ZG91dD1UcnVlKS5zdHJp
cCgpCisgICAgICAgICAgICBwcmludCgiSEVBRDogJXMiICUgY29tbWl0KQorICAgICAgICAgICAg
cHJpbnQoIlBhcmVudHM6ICVzIiAlICIsICIuam9pbihwYXJlbnRzKSkKKyAgICAgICAgICAgIHN5
cy5leGl0KDEpCisKKyAgICBicmFuY2ggPSBvcy5lbnZpcm9uLmdldCgiR0lUSFVCX0JSQU5DSCIp
CisgICAgaWYgYnJhbmNoOgorICAgICAgICAjIEVuc3VyZSB0aGF0IHRoZSByZW1vdGUgYmFzZSBi
cmFuY2ggZXhpc3RzCisgICAgICAgICMgVE9ETzogbW92ZSB0aGlzIHNvbWV3aGVyZSBlYXJsaWVy
IGluIHRoZSB0YXNrCisgICAgICAgIHJ1bihbImdpdCIsICJmZXRjaCIsICItLXF1aWV0IiwgIm9y
aWdpbiIsICIlczolcyIgJSAoYnJhbmNoLCBicmFuY2gpXSkKKworCitkZWYgZmV0Y2hfZXZlbnRf
ZGF0YSgpOgorICAgIHRyeToKKyAgICAgICAgdGFza19pZCA9IG9zLmVudmlyb25bIlRBU0tfSUQi
XQorICAgIGV4Y2VwdCBLZXlFcnJvcjoKKyAgICAgICAgcHJpbnQoIldBUk5JTkc6IE1pc3Npbmcg
VEFTS19JRCBlbnZpcm9ubWVudCB2YXJpYWJsZSIpCisgICAgICAgICMgRm9yIGV4YW1wbGUgdW5k
ZXIgbG9jYWwgdGVzdGluZworICAgICAgICByZXR1cm4gTm9uZQorCisgICAgcm9vdF91cmwgPSBv
cy5lbnZpcm9uWydUQVNLQ0xVU1RFUl9ST09UX1VSTCddCisgICAgaWYgcm9vdF91cmwgPT0gJ2h0
dHBzOi8vdGFza2NsdXN0ZXIubmV0JzoKKyAgICAgICAgcXVldWVfYmFzZSA9ICJodHRwczovL3F1
ZXVlLnRhc2tjbHVzdGVyLm5ldC92MS90YXNrIgorICAgIGVsc2U6CisgICAgICAgIHF1ZXVlX2Jh
c2UgPSByb290X3VybCArICIvYXBpL3F1ZXVlL3YxL3Rhc2siCisKKworICAgIHJlc3AgPSB1cmxv
cGVuKCIlcy8lcyIgJSAocXVldWVfYmFzZSwgdGFza19pZCkpCisKKyAgICB0YXNrX2RhdGEgPSBq
c29uLmxvYWQocmVzcCkKKyAgICBldmVudF9kYXRhID0gdGFza19kYXRhLmdldCgiZXh0cmEiLCB7
fSkuZ2V0KCJnaXRodWJfZXZlbnQiKQorICAgIGlmIGV2ZW50X2RhdGEgaXMgbm90IE5vbmU6Cisg
ICAgICAgIHJldHVybiBqc29uLmxvYWRzKGV2ZW50X2RhdGEpCisKKworZGVmIGluY2x1ZGVfam9i
KGpvYik6CisgICAgIyBPbmx5IGZvciBzdXBwb3J0aW5nIHByZSBkZWNpc2lvbi10YXNrIFBScwor
ICAgICMgU3BlY2lhbCBjYXNlIHRoaW5ncyB0aGF0IHVuY29uZGl0aW9uYWxseSBydW4gb24gcHVz
aGVzLAorICAgICMgYXNzdW1pbmcgYSBoaWdoZXIgbGF5ZXIgaXMgZmlsdGVyaW5nIHRoZSByZXF1
aXJlZCBsaXN0IG9mIGJyYW5jaGVzCisgICAgaWYgIkdJVEhVQl9QVUxMX1JFUVVFU1QiIG5vdCBp
biBvcy5lbnZpcm9uOgorICAgICAgICByZXR1cm4gVHJ1ZQorCisgICAgaWYgKG9zLmVudmlyb25b
IkdJVEhVQl9QVUxMX1JFUVVFU1QiXSA9PSAiZmFsc2UiIGFuZAorICAgICAgICBqb2IgPT0gInJ1
bi1hbGwiKToKKyAgICAgICAgcmV0dXJuIFRydWUKKworICAgIGpvYnNfc3RyID0gcnVuKFtvcy5w
YXRoLmpvaW4ocm9vdCwgIndwdCIpLAorICAgICAgICAgICAgICAgICAgICAidGVzdC1qb2JzIl0s
IHJldHVybl9zdGRvdXQ9VHJ1ZSkKKyAgICBwcmludChqb2JzX3N0cikKKyAgICByZXR1cm4gam9i
IGluIHNldChqb2JzX3N0ci5zcGxpdGxpbmVzKCkpCisKKworZGVmIG1haW4oKToKKyAgICBhcmdz
ID0gZ2V0X3BhcnNlcigpLnBhcnNlX2FyZ3MoKQorCisgICAgaWYgYXJncy5yZXYgaXMgbm90IE5v
bmU6CisgICAgICAgIHRhc2tfaGVhZCA9IHJ1bihbImdpdCIsICJyZXYtcGFyc2UiLCAidGFza19o
ZWFkIl0sIHJldHVybl9zdGRvdXQ9VHJ1ZSkuc3RyaXAoKQorICAgICAgICBpZiB0YXNrX2hlYWQg
IT0gYXJncy5yZXY6CisgICAgICAgICAgICBwcmludCgiQ1JJVElDQUw6IHRhc2tfaGVhZCBwb2lu
dHMgYXQgJXMsIGV4cGVjdGVkICVzLiAiCisgICAgICAgICAgICAgICAgICAiVGhpcyBtYXkgYmUg
YmVjYXVzZSB0aGUgYnJhbmNoIHdhcyB1cGRhdGVkIiAlICh0YXNrX2hlYWQsIGFyZ3MucmV2KSkK
KyAgICAgICAgICAgIHN5cy5leGl0KDEpCisKKyAgICBpZiAiVEFTS19FVkVOVCIgaW4gb3MuZW52
aXJvbjoKKyAgICAgICAgZXZlbnQgPSBqc29uLmxvYWRzKG9zLmVudmlyb25bIlRBU0tfRVZFTlQi
XSkKKyAgICBlbHNlOgorICAgICAgICBldmVudCA9IGZldGNoX2V2ZW50X2RhdGEoKQorCisgICAg
aWYgZXZlbnQ6CisgICAgICAgIHNldF92YXJpYWJsZXMoZXZlbnQpCisKKyAgICBzZXR1cF9yZXBv
c2l0b3J5KCkKKworICAgICMgSGFjayBmb3IgYmFja3dhcmRzIGNvbXBhdGliaWxpdHkKKyAgICBp
ZiBhcmdzLnNjcmlwdCBpbiBbInJ1bi1hbGwiLCAibGludCIsICJ1cGRhdGVfYnVpbHQiLCAidG9v
bHNfdW5pdHRlc3QiLAorICAgICAgICAgICAgICAgICAgICAgICAid3B0X2ludGVncmF0aW9uIiwg
InJlc291cmNlc191bml0dGVzdCIsCisgICAgICAgICAgICAgICAgICAgICAgICJ3cHRydW5uZXJf
aW5mcmFzdHJ1Y3R1cmUiLCAic3RhYmlsaXR5IiwgImFmZmVjdGVkX3Rlc3RzIl06CisgICAgICAg
IGpvYiA9IGFyZ3Muc2NyaXB0CisgICAgICAgIGlmIG5vdCBpbmNsdWRlX2pvYihqb2IpOgorICAg
ICAgICAgICAgcmV0dXJuCisgICAgICAgIGFyZ3Muc2NyaXB0ID0gYXJncy5zY3JpcHRfYXJnc1sw
XQorICAgICAgICBhcmdzLnNjcmlwdF9hcmdzID0gYXJncy5zY3JpcHRfYXJnc1sxOl0KKworICAg
ICMgUnVuIHRoZSBqb2IKKyAgICBzZXR1cF9lbnZpcm9ubWVudChhcmdzKQorICAgIG9zLmNoZGly
KHJvb3QpCisgICAgY21kID0gW2FyZ3Muc2NyaXB0XSArIGFyZ3Muc2NyaXB0X2FyZ3MKKyAgICBw
cmludCgiICIuam9pbihjbWQpKQorICAgIHN5cy5leGl0KHN1YnByb2Nlc3MuY2FsbChjbWQpKQor
CisKK2lmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CisgICAgbWFpbigpCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2NpL3RhZ19t
YXN0ZXIucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL2NpL3RhZ19tYXN0ZXIucHkKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGYwNDk2
NzFjMzEzYjE4MjAwMjMyZjI3ZDFhYmM3NTc4OWEyZTYxOWQuLjAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy9jaS90YWdfbWFzdGVyLnB5CisrKyAvZGV2L251bGwKQEAgLTEs
MTAxICswLDAgQEAKLWltcG9ydCBiYXNlNjQKLWltcG9ydCBqc29uCi1pbXBvcnQgbG9nZ2luZwot
aW1wb3J0IG9zCi1pbXBvcnQgc3lzCi1pbXBvcnQgdXJsbGliMgotCi1oZXJlID0gb3MucGF0aC5h
YnNwYXRoKG9zLnBhdGguZGlybmFtZShfX2ZpbGVfXykpCi13cHRfcm9vdCA9IG9zLnBhdGguYWJz
cGF0aChvcy5wYXRoLmpvaW4oaGVyZSwgb3MucGFyZGlyLCBvcy5wYXJkaXIpKQotCi1pZiBub3Qo
d3B0X3Jvb3QgaW4gc3lzLnBhdGgpOgotICAgIHN5cy5wYXRoLmFwcGVuZCh3cHRfcm9vdCkKLQot
ZnJvbSB0b29scy53cHQudGVzdGZpbGVzIGltcG9ydCBnZXRfZ2l0X2NtZAotCi1sb2dnaW5nLmJh
c2ljQ29uZmlnKGxldmVsPWxvZ2dpbmcuSU5GTykKLWxvZ2dlciA9IGxvZ2dpbmcuZ2V0TG9nZ2Vy
KF9fbmFtZV9fKQotCi0KLWRlZiBnZXRfcHIocmVwbywgb3duZXIsIHNoYSk6Ci0gICAgdXJsID0g
KCJodHRwczovL2FwaS5naXRodWIuY29tL3NlYXJjaC9pc3N1ZXM/cT10eXBlOnByK2lzOm1lcmdl
ZCtyZXBvOiVzLyVzK3NoYTolcyIgJQotICAgICAgICAgICAocmVwbywgb3duZXIsIHNoYSkpCi0g
ICAgdHJ5OgotICAgICAgICByZXNwID0gdXJsbGliMi51cmxvcGVuKHVybCkKLSAgICAgICAgYm9k
eSA9IHJlc3AucmVhZCgpCi0gICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBlOgotICAgICAgICBsb2dn
ZXIuZXJyb3IoZSkKLSAgICAgICAgcmV0dXJuIE5vbmUKLQotICAgIGlmIHJlc3AuY29kZSAhPSAy
MDA6Ci0gICAgICAgIGxvZ2dlci5lcnJvcigiR290IEhUVFAgc3RhdHVzICVzLiBSZXNwb25zZToi
ICUgcmVzcC5jb2RlKQotICAgICAgICBsb2dnZXIuZXJyb3IoYm9keSkKLSAgICAgICAgcmV0dXJu
IE5vbmUKLQotICAgIHRyeToKLSAgICAgICAgZGF0YSA9IGpzb24ubG9hZHMoYm9keSkKLSAgICBl
eGNlcHQgVmFsdWVFcnJvcjoKLSAgICAgICAgbG9nZ2VyLmVycm9yKCJGYWlsZWQgdG8gcmVhZCBy
ZXNwb25zZSBhcyBKU09OOiIpCi0gICAgICAgIGxvZ2dlci5lcnJvcihib2R5KQotICAgICAgICBy
ZXR1cm4gTm9uZQotCi0gICAgaXRlbXMgPSBkYXRhWyJpdGVtcyJdCi0gICAgaWYgbGVuKGl0ZW1z
KSA9PSAwOgotICAgICAgICBsb2dnZXIuZXJyb3IoIk5vIFBSIGZvdW5kIGZvciAlcyIgJSBzaGEp
Ci0gICAgICAgIHJldHVybiBOb25lCi0gICAgaWYgbGVuKGl0ZW1zKSA+IDE6Ci0gICAgICAgIGxv
Z2dlci53YXJuaW5nKCJGb3VuZCBtdWx0aXBsZSBQUnMgZm9yICVzIiAlIHNoYSkKLQotICAgIHBy
ID0gaXRlbXNbMF0KLQotICAgIHJldHVybiBwclsibnVtYmVyIl0KLQotCi1kZWYgdGFnKHJlcG8s
IG93bmVyLCBzaGEsIHRhZyk6Ci0gICAgZGF0YSA9IGpzb24uZHVtcHMoeyJyZWYiOiAicmVmcy90
YWdzLyVzIiAlIHRhZywKLSAgICAgICAgICAgICAgICAgICAgICAgInNoYSI6IHNoYX0pCi0gICAg
dHJ5OgotICAgICAgICB1cmwgPSAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy8lcy8lcy9n
aXQvcmVmcyIgJSAocmVwbywgb3duZXIpCi0gICAgICAgIHJlcSA9IHVybGxpYjIuUmVxdWVzdCh1
cmwsIGRhdGE9ZGF0YSkKLQotICAgICAgICBiYXNlNjRzdHJpbmcgPSBiYXNlNjQuYjY0ZW5jb2Rl
KCclcycgJSAob3MuZW52aXJvblsiR0hfVE9LRU4iXSkpCi0gICAgICAgIHJlcS5hZGRfaGVhZGVy
KCJBdXRob3JpemF0aW9uIiwgIkJhc2ljICVzIiAlIGJhc2U2NHN0cmluZykKLQotICAgICAgICBv
cGVuZXIgPSB1cmxsaWIyLmJ1aWxkX29wZW5lcih1cmxsaWIyLkhUVFBTSGFuZGxlcigpKQotCi0g
ICAgICAgIHJlc3AgPSBvcGVuZXIub3BlbihyZXEpCi0gICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBl
OgotICAgICAgICBsb2dnZXIuZXJyb3IoIlRhZyBjcmVhdGlvbiBmYWlsZWQ6XG4lcyIgJSBlKQot
ICAgICAgICByZXR1cm4gRmFsc2UKLQotICAgIGlmIHJlc3AuY29kZSAhPSAyMDE6Ci0gICAgICAg
IGxvZ2dlci5lcnJvcigiR290IEhUVFAgc3RhdHVzICVzLiBSZXNwb25zZToiICUgcmVzcC5jb2Rl
KQotICAgICAgICBsb2dnZXIuZXJyb3IocmVzcC5yZWFkKCkpCi0gICAgICAgIHJldHVybiBGYWxz
ZQotCi0gICAgbG9nZ2VyLmluZm8oIlRhZ2dlZCAlcyBhcyAlcyIgJSAoc2hhLCB0YWcpKQotICAg
IHJldHVybiBUcnVlCi0KLQotZGVmIG1haW4oKToKLSAgICBvd25lciwgcmVwbyA9IG9zLmVudmly
b25bIlRSQVZJU19SRVBPX1NMVUciXS5zcGxpdCgiLyIsIDEpCi0gICAgaWYgb3MuZW52aXJvblsi
VFJBVklTX1BVTExfUkVRVUVTVCJdICE9ICJmYWxzZSI6Ci0gICAgICAgIGxvZ2dlci5pbmZvKCJO
b3QgdGFnZ2luZyBmb3IgUFIiKQotICAgICAgICByZXR1cm4KLSAgICBpZiBvcy5lbnZpcm9uWyJU
UkFWSVNfQlJBTkNIIl0gIT0gIm1hc3RlciI6Ci0gICAgICAgIGxvZ2dlci5pbmZvKCJOb3QgdGFn
Z2luZyBmb3Igbm9uLW1hc3RlciBicmFuY2giKQotICAgICAgICByZXR1cm4KLQotICAgIGdpdCA9
IGdldF9naXRfY21kKHdwdF9yb290KQotICAgIGhlYWRfcmV2ID0gZ2l0KCJyZXYtcGFyc2UiLCAi
SEVBRCIpCi0KLSAgICBwciA9IGdldF9wcihvd25lciwgcmVwbywgaGVhZF9yZXYpCi0gICAgaWYg
cHIgaXMgTm9uZToKLSAgICAgICAgc3lzLmV4aXQoMSkKLSAgICB0YWdnZWQgPSB0YWcob3duZXIs
IHJlcG8sIGhlYWRfcmV2LCAibWVyZ2VfcHJfJXMiICUgcHIpCi0gICAgaWYgbm90IHRhZ2dlZDoK
LSAgICAgICAgc3lzLmV4aXQoMSkKLQotCi1pZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgotICAg
IG1haW4oKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy9jaS90YXNrY2x1c3Rlci1ydW4ucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2NpL3Rhc2tjbHVzdGVyLXJ1bi5weQpuZXcg
ZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi44YTYwMDEyZDA5YjRkNWJlOTg0NWNmNGFiNzRlNWY4N2JmNGI1OGNlCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy9jaS90YXNrY2x1c3Rlci1ydW4ucHkKQEAgLTAsMCArMSw5NSBAQAorIyEvdXNyL2Jpbi9l
bnYgcHl0aG9uCisKK2ltcG9ydCBhcmdwYXJzZQoraW1wb3J0IGd6aXAKK2ltcG9ydCBsb2dnaW5n
CitpbXBvcnQgb3MKK2ltcG9ydCBzaHV0aWwKK2ltcG9ydCBzdWJwcm9jZXNzCitpbXBvcnQgc3lz
CisKK2Jyb3dzZXJfc3BlY2lmaWNfYXJncyA9IHsKKyAgICAiZmlyZWZveCI6IFsiLS1pbnN0YWxs
LWJyb3dzZXIiXQorfQorCisKK2RlZiBmaW5kX3dwdHJlcG9ydChhcmdzKToKKyAgICBwYXJzZXIg
PSBhcmdwYXJzZS5Bcmd1bWVudFBhcnNlcigpCisgICAgcGFyc2VyLmFkZF9hcmd1bWVudCgnLS1s
b2ctd3B0cmVwb3J0JywgYWN0aW9uPSdzdG9yZScpCisgICAgcmV0dXJuIHBhcnNlci5wYXJzZV9r
bm93bl9hcmdzKGFyZ3MpWzBdLmxvZ193cHRyZXBvcnQKKworCitkZWYgZmluZF93cHRzY3JlZW5z
aG90KGFyZ3MpOgorICAgIHBhcnNlciA9IGFyZ3BhcnNlLkFyZ3VtZW50UGFyc2VyKCkKKyAgICBw
YXJzZXIuYWRkX2FyZ3VtZW50KCctLWxvZy13cHRzY3JlZW5zaG90JywgYWN0aW9uPSdzdG9yZScp
CisgICAgcmV0dXJuIHBhcnNlci5wYXJzZV9rbm93bl9hcmdzKGFyZ3MpWzBdLmxvZ193cHRzY3Jl
ZW5zaG90CisKKworZGVmIGd6aXBfZmlsZShmaWxlbmFtZSwgZGVsZXRlX29yaWdpbmFsPVRydWUp
OgorICAgIHdpdGggb3BlbihmaWxlbmFtZSwgJ3JiJykgYXMgZl9pbjoKKyAgICAgICAgd2l0aCBn
emlwLm9wZW4oJyVzLmd6JyAlIGZpbGVuYW1lLCAnd2InKSBhcyBmX291dDoKKyAgICAgICAgICAg
IHNodXRpbC5jb3B5ZmlsZW9iaihmX2luLCBmX291dCkKKyAgICBpZiBkZWxldGVfb3JpZ2luYWw6
CisgICAgICAgIG9zLnVubGluayhmaWxlbmFtZSkKKworCitkZWYgbWFpbihwcm9kdWN0LCBjb21t
aXRfcmFuZ2UsIHdwdF9hcmdzKToKKyAgICAiIiJJbnZva2UgdGhlIGB3cHQgcnVuYCBjb21tYW5k
IGFjY29yZGluZyB0byB0aGUgbmVlZHMgb2YgdGhlIFRhc2tjbHVzdGVyCisgICAgY29udGludW91
cyBpbnRlZ3JhdGlvbiBzZXJ2aWNlLiIiIgorCisgICAgbG9nZ2VyID0gbG9nZ2luZy5nZXRMb2dn
ZXIoInRjLXJ1biIpCisgICAgbG9nZ2VyLnNldExldmVsKGxvZ2dpbmcuSU5GTykKKyAgICBoYW5k
bGVyID0gbG9nZ2luZy5TdHJlYW1IYW5kbGVyKCkKKyAgICBoYW5kbGVyLnNldEZvcm1hdHRlcigK
KyAgICAgICAgbG9nZ2luZy5Gb3JtYXR0ZXIoIiUoYXNjdGltZSlzIC0gJShuYW1lKXMgLSAlKGxl
dmVsbmFtZSlzIC0gJShtZXNzYWdlKXMiKQorICAgICkKKyAgICBsb2dnZXIuYWRkSGFuZGxlciho
YW5kbGVyKQorCisgICAgc3VicHJvY2Vzcy5jYWxsKFsncHl0aG9uJywgJy4vd3B0JywgJ21hbmlm
ZXN0LWRvd25sb2FkJ10pCisKKyAgICBpZiBjb21taXRfcmFuZ2U6CisgICAgICAgIGxvZ2dlci5p
bmZvKAorICAgICAgICAgICAgIlJ1bm5pbmcgdGVzdHMgYWZmZWN0ZWQgaW4gcmFuZ2UgJyVzJy4u
LiIgJSBjb21taXRfcmFuZ2UKKyAgICAgICAgKQorICAgICAgICB3cHRfYXJncyArPSBbJy0tYWZm
ZWN0ZWQnLCBjb21taXRfcmFuZ2VdCisgICAgZWxzZToKKyAgICAgICAgbG9nZ2VyLmluZm8oIlJ1
bm5pbmcgYWxsIHRlc3RzIikKKworICAgIHdwdF9hcmdzICs9IFsKKyAgICAgICAgIi0tbG9nLW1h
Y2gtbGV2ZWw9aW5mbyIsCisgICAgICAgICItLWxvZy1tYWNoPS0iLAorICAgICAgICAiLXkiLAor
ICAgICAgICAiLS1uby1wYXVzZSIsCisgICAgICAgICItLW5vLXJlc3RhcnQtb24tdW5leHBlY3Rl
ZCIsCisgICAgICAgICItLWluc3RhbGwtZm9udHMiLAorICAgICAgICAiLS1uby1oZWFkbGVzcyIs
CisgICAgICAgICItLXZlcmlmeS1sb2ctZnVsbCIKKyAgICBdCisgICAgd3B0X2FyZ3MgKz0gYnJv
d3Nlcl9zcGVjaWZpY19hcmdzLmdldChwcm9kdWN0LCBbXSkKKworICAgIGNvbW1hbmQgPSBbInB5
dGhvbiIsICIuL3dwdCIsICJydW4iXSArIHdwdF9hcmdzICsgW3Byb2R1Y3RdCisKKyAgICBsb2dn
ZXIuaW5mbygiRXhlY3V0aW5nIGNvbW1hbmQ6ICVzIiAlICIgIi5qb2luKGNvbW1hbmQpKQorICAg
IHJldGNvZGUgPSBzdWJwcm9jZXNzLmNhbGwoY29tbWFuZCwgZW52PWRpY3Qob3MuZW52aXJvbiwg
VEVSTT0iZHVtYiIpKQorICAgIGlmIHJldGNvZGUgIT0gMDoKKyAgICAgICAgc3lzLmV4aXQocmV0
Y29kZSkKKworICAgIHdwdHJlcG9ydCA9IGZpbmRfd3B0cmVwb3J0KHdwdF9hcmdzKQorICAgIGlm
IHdwdHJlcG9ydDoKKyAgICAgICAgZ3ppcF9maWxlKHdwdHJlcG9ydCkKKyAgICB3cHRzY3JlZW5z
aG90ID0gZmluZF93cHRzY3JlZW5zaG90KHdwdF9hcmdzKQorICAgIGlmIHdwdHNjcmVlbnNob3Q6
CisgICAgICAgIGd6aXBfZmlsZSh3cHRzY3JlZW5zaG90KQorCisKK2lmIF9fbmFtZV9fID09ICJf
X21haW5fXyI6CisgICAgcGFyc2VyID0gYXJncGFyc2UuQXJndW1lbnRQYXJzZXIoZGVzY3JpcHRp
b249bWFpbi5fX2RvY19fKQorICAgIHBhcnNlci5hZGRfYXJndW1lbnQoIi0tY29tbWl0LXJhbmdl
IiwgYWN0aW9uPSJzdG9yZSIsCisgICAgICAgICAgICAgICAgICAgICAgICBoZWxwPSIiIkdpdCBj
b21taXQgcmFuZ2UuIElmIHNwZWNpZmllZCwgdGhpcyB3aWxsIGJlCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHN1cHBsaWVkIHRvIHRoZSBgd3B0IHRlc3RzLWFmZmVjdGVkYCBjb21tYW5k
IHRvCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRldGVybWluZSB0aGUgbGlzdCBvZiB0
ZXN0IHRvIGV4ZWN1dGUiIiIpCisgICAgcGFyc2VyLmFkZF9hcmd1bWVudCgicHJvZHVjdCIsIGFj
dGlvbj0ic3RvcmUiLAorICAgICAgICAgICAgICAgICAgICAgICAgaGVscD0iQnJvd3NlciB0byBy
dW4gdGVzdHMgaW4iKQorICAgIHBhcnNlci5hZGRfYXJndW1lbnQoIndwdF9hcmdzIiwgbmFyZ3M9
IioiLAorICAgICAgICAgICAgICAgICAgICAgICAgaGVscD0iQXJndW1lbnRzIHRvIGZvcndhcmQg
dG8gYHdwdCBydW5gIGNvbW1hbmQiKQorICAgIG1haW4oKip2YXJzKHBhcnNlci5wYXJzZV9hcmdz
KCkpKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy9jaS90Yy9SRUFETUUubWQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2NpL3RjL1JFQURNRS5tZApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xMWYzNjdm
OTg2Zjk3ZmRiZmU0MGYwOWIyYWU0MTE0ZjI2MzkxNmY3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9jaS90Yy9SRUFE
TUUubWQKQEAgLTAsMCArMSwyMzUgQEAKKyMgVGFza2dyYXBoIFNldHVwCisKK1RoZSB0YXNrZ3Jh
cGggaXMgYnVpbHQgZnJvbSBhIFlBTUwgZmlsZS4gVGhpcyBmaWxlIGhhcyB0d28gdG9wLWxldmVs
Citwcm9wZXJ0aWVzOiBgY29tcG9uZW50c2AgYW5kIGB0YXNrc2AuIFRoZSBmdWxsIGxpc3Qgb2Yg
dGFza3MgaXMKK2RlZmluZWQgYnkgdGhlIGB0YXNrc2Agb2JqZWN0OyBlYWNoIHRhc2sgaXMgYW4g
b2JqZWN0IHdpdGggYSBzaW5nbGUKK3Byb3BlcnR5IHJlcHJlc2VudGluZyB0aGUgdGFzayB3aXRo
IHRoZSBjb3JyZXNwb25kaW5nIHZhbHVlIGFuIG9iamVjdAorcmVwcmVzZW50aW5nIHRoZSB0YXNr
IHByb3BlcnRpZXMuIEVhY2ggdGFzayByZXF1aXJlcyB0aGUgZm9sbG93aW5nCit0b3AtbGV2ZWwg
cHJvcGVydGllczoKKworKiBgcHJvdmlzaW9uZXJJZGA6IFN0cmluZy4gTmFtZSBvZiBUYXNrY2x1
c3RlciBwcm92aXNpb25lcgorKiBgc2NoZWR1bGVySWRgOiBTdHJpbmcuIE5hbWUgb2YgVGFza2Ns
dXN0ZXIgc2NoZWR1bGVyCisqIGBkZWFkbGluZWA6IFN0cmluZy4gVGltZSB1bnRpbCB0aGUgdGFz
ayBleHBpcmVzCisqIGBpbWFnZWA6IFN0cmluZy4gTmFtZSBvZiBkb2NrZXIgaW1hZ2UgdG8gdXNl
IGZvciB0YXNrCisqIGBtYXhSdW5UaW1lYDogTnVtYmVyLiBNYXhpbXVtIHRpbWUgaW4gc2Vjb25k
cyBmb3Igd2hpY2ggdGhlIHRhc2sgY2FuCisgIHJ1bi4KKyogYGFydGlmYWN0c2A6IE9iamVjdC4g
TGlzdCBvZiBhcnRpZmFjdHMgYW5kIGRpcmVjdG9yaWVzIHRvIHVwbG9hZDsgc2VlCisgIFRhc2tj
bHVzdGVyIGRvY3VtZW50YXRpb24uCisqIGBjb21tYW5kYDogU3RyaW5nLiBDb21tYW5kIHRvIHJ1
bi4gVGhpcyBpcyBhdXRvbWF0aWNhbGx5IHdyYXBwZWQgaW4gYQorICBydW5fdGMgY29tbWFuZAor
KiBgb3B0aW9uc2A6IE9wdGlvbmFsIE9iamVjdC4gT3B0aW9ucyB0byBwYXNzIGludG8gcnVuX3Rj
CisgIC0geHZmYjogQm9vbGVhbi4gRW5hYmxlIFh2ZmIgZm9yIHJ1bgorICAtIG9vbS1raWxsZXI6
IEJvb2xlYW4uIEVuYWJsZSB4dmZiIGZvciBydW4KKyAgLSBob3N0czogQm9vbGVhbi4gVXBkYXRl
IGhvc3RzIGZpbGUgd2l0aCB3cHQgaG9zdHMgYmVmb3JlIHJ1bgorICAtIGluc3RhbGwtY2VydGlm
aWNhdGVzOiBCb29sZWFuLiBJbnN0YWxsIHdwdCBjZXJ0cyBpbnRvIE9TCisgICAgY2VydGlmaWNh
dGUgc3RvcmUgZm9yIHJ1bgorICAtIGJyb3dzZXI6IExpc3QuIExpc3Qgb2YgYnJvd3NlciBuYW1l
cyBmb3IgcnVuCisgIC0gY2hhbm5lbDogU3RyaW5nLiBCcm93c2VyIGNoYW5uZWwgZm9yIHJ1bgor
KiBgdHJpZ2dlcmA6IE9iamVjdC4gQ29uZGl0aW9ucyBvbiB3aGljaCB0byBjb25zaWRlciB0YXNr
LiBPbmUgb3IgbW9yZQorICBvZiBmb2xsb3dpbmcgcHJvcGVydGllczoKKyAgLSBicmFuY2g6IExp
c3QuIExpc3Qgb2YgYnJhbmNoIG5hbWVzIG9uIHdoaWNoIHRvIHRyaWdnZXIuCisgIC0gcHVsbC1y
ZXF1ZXN0OiBObyB2YWx1ZS4gVHJpZ2dlciBmb3IgcHVsbCByZXF1ZXN0IGFjdGlvbnMKKyogYHNj
aGVkdWxlLWlmYDogT3B0aW9uYWwgT2JqZWN0LiBDb25kaXRpb25zIG9uIHdoaWNoIHRhc2sgc2hv
dWxkIGJlCisgIHNjaGVkdWxlZCBnaXZlbiBpdCBtZWV0cyB0aGUgdHJpZ2dlciBjb25kaXRpb25z
LgorICAtIGBydW4tam9iYDogTGlzdC4gSm9iIG5hbWVzIGZvciB3aGljaCB0aGlzIHRhc2sgc2hv
dWxkIGJlIGNvbnNpZGVyZWQsCisgICAgbWF0Y2hpbmcgdGhlIG91dHB1dCBmcm9tIGAuL3dwdCB0
ZXN0LWpvYnNgCisqIGBlbnZgOiBPcHRpb25hbCBPYmplY3QuIEVudmlyb25tZW50IHZhcmlhYmxl
cyB0byBzZXQgd2hlbiBydW5uaW5nIHRhc2suCisqIGBkZXBlbmRzLW9uYDogT3B0aW9uYWwgbGlz
dC4gTGlzdCBvZiB0YXNrIG5hbWVzIHRoYXQgbXVzdCBiZSBjb21wbGV0ZQorICBiZWZvcmUgdGhl
IGN1cnJlbnQgdGFzayBpcyBzY2hlZHVsZWQuCisqIGBkZXNjcmlwdGlvbmA6IFN0cmluZy4gVGFz
ayBkZXNjcmlwdGlvbi4KKyogYG5hbWVgOiBPcHRpb25hbCBTdHJpbmcuIE5hbWUgdG8gdXNlIGZv
ciB0aGUgdGFzayBvdmVycmlkaW5nIHRoZQorICBwcm9wZXJ0eSBuYW1lLiBUaGlzIGlzIHVzZWZ1
bCBpbiBjb21iaW5hdGlvbiB3aXRoIHN1YnN0aXR1dGlvbnMKKyAgZGVzY3JpYmVkIGJlbG93Lgor
CisjIyBUYXNrIEV4cGFuc2lvbnMKKworVXNpbmcgdGhlIGFib3ZlIHN5bnRheCBpdCdzIHBvc3Ni
bGUgdG8gZGVzY3JpYmUgZWFjaCB0YXNrCitkaXJlY3RseS4gQnV0IHR5cGljYWxseSBpbiBhIHRh
c2tncmFwaCB0aGVyZSBhcmUgbWFueSBjb21tb24KK3Byb3BlcnRpZXMgYmV0d2VlbiB0YXNrcyBz
byBpdCdzIHRlZGlvdXMgYW5kIGVycm9yIHByb25lIHRvIHJlcGVhdAoraW5mb3JtYXRpb24gdGhh
dCdzIGNvbW1vbiB0byBtdWx0aXBsZSB0YXNrcy4gVGhlcmVmb3JlIHRoZSB0YXNrZ3JhcGgKK2Zv
cm1hdCBwcm92aWRlcyBzZXZlcmFsIG1lY2hhbmlzbXMgdG8gcmV1c2UgcGFydGlhbCB0YXNrIGRl
ZmluaXRpb25zCithY3Jvc3MgbXVsdGlwbGUgdGFza3MuCisKKyMjIyBDb21wb25lbnRzCisKK1Ro
ZSBvdGhlciB0b3AtbGV2ZWwgcHJvcGVydHkgaW4gdGhlIHRhc2tncmFwaCBmb3JtYXQgaXMKK2Bj
b21wb25lbnRzYC4gVGhlIHZhbHVlIG9mIHRoaXMgcHJvcGVydHkgaXMgYW4gb2JqZWN0IGNvbnRh
aW5pbmcgbmFtZWQKK3BhcnRpYWwgdGFzayBkZWZpbml0aW9ucy4gRWFjaCB0YXNrIGRlZmluaXRp
b24gbWF5IGNvbnRhaW4gYSBwcm9wZXJ0eSBjYWxsZWQKK2B1c2VgIHdoaWNoIGlzIGEgbGlzdCBv
ZiBjb21wb25lbnRzIHRvIHVzZSBhcyB0aGUgYmFzaXMgZm9yIHRoZSB0YXNrCitkZWZpbml0aW9u
LiBUaGUgY29tcG9uZW50cyBsaXN0IGlzIGV2YWx1YXRlZCBpbiBvcmRlci4gSWYgYSBwcm9wZXJ0
eQoraXMgbm90IHByZXZpb3VzbHkgZGVmaW5lZCBpbiB0aGUgb3V0cHV0IGl0IGlzIGFkZGVkIHRv
IHRoZSBvdXRwdXQuIElmCitpdCB3YXMgcHJldmlvdXNseSBkZWZpbmVkLCB0aGUgdmFsdWUgaXMg
dXBkYXRlZCBhY2NvcmRpbmcgdG8gdGhlIHR5cGU6CisgKiBTdHJpbmdzIGFuZCBudW1iZXJzIGFy
ZSByZXBsYWNlZCB3aXRoIGEgbmV3IHZhbHVlCisgKiBMaXN0cyBhcmUgZXh0ZW5kZWQgd2l0aCB0
aGUgYWRkaXRpb25hbCB2YWx1ZXMKKyAqIE9iamVjdHMgYXJlIHVwZGF0ZWQgcmVjdXJzaXZlbHkg
Zm9sbG93aW5nIHRoZSBhYm92ZSBydWxlcworVGhpcyBtZWFucyB0aGF0IHR5cGVzIG11c3QgYWx3
YXlzIG1hdGNoIGJldHdlZW4gY29tcG9uZW50cyBhbmQgdGhlCitmaW5hbCB2YWx1ZS4KKworRm9y
IGV4YW1wbGUKK2BgYAorY29tcG9uZW50czoKKyAgZXhhbXBsZS0xOgorICAgIGxpc3RfcHJvcDoK
KyAgICAgIC0gZmlyc3QKKyAgICAgIC0gc2Vjb25kCisgICAgb2JqZWN0X3Byb3A6CisgICAgICBr
ZXkxOiB2YWx1ZTEKKyAgICAgIGtleTI6IGJhc2VfdmFsdWUKKyAgZXhhbXBsZS0yOgorICAgIGxp
c3RfcHJvcDoKKyAgICAgIC0gdGhpcmQKKyAgICAgIC0gZm91cnRoCisgICAgb2JqZWN0X3Byb3A6
CisgICAgICBrZXkzOgorICAgICAgICAtIHZhbHVlMy0xCisKK3Rhc2tzOgorICAtIGV4YW1wbGUt
dGFzazoKKyAgICAgIHVzZToKKyAgICAgICAgLSBleGFtcGxlLTEKKyAgICAgICAgLSBleGFtcGxl
LTIKKyAgICAgIG9iamVjdF9wcm9wOgorICAgICAgICBrZXkyOiB2YWx1ZTIKKyAgICAgICAga2V5
MzoKKyAgICAgICAgICAtIHZhbHVlMy0yCitgYGAKKword2lsbCBldmFsdWF0ZSB0byB0aGUgZm9s
bG93aW5nIHRhc2s6CisKK2BgYAorZXhhbXBsZS10YXNrOgorICBsaXN0X3Byb3A6CisgICAgLSBm
aXJzdAorICAgIC0gc2Vjb25kCisgICAgLSB0aGlyZAorICAgIC0gZm91cnRoCisgIG9iamVjdF9w
cm9wOgorICAgIGtleTE6IHZhbHVlMQorICAgIGtleTI6IHZhbHVlMgorICAgIGtleTM6CisgICAg
ICAtIHZhbHVlMy0xCisgICAgICAtIHZhbHVlMy0yCitgYGAKKworTm90ZSB0aGF0IGNvbXBvbmVu
dHMgY2Fubm90IGN1cnJlbnRseSBkZWZpbmUgYHVzZWAgcHJvcGVydGllcyBvZiB0aGVpciBvd24u
CisKKyMjIFN1YnN0aXR1dGlvbnMKKworQ29tcG9uZW50cyBhbmQgdGFza3MgY2FuIGRlZmluZSBh
IHByb3BlcnR5IGB2YXJzYCB0aGF0IGhvbGRzIHZhcmlhYmxlcword2hpY2ggYXJlIGxhdGVyIHN1
YnN0aXR1dGVkIGludG8gdGhlIHRhc2sgZGVmaW5pdGlvbiB1c2luZyB0aGUgc3ludGF4CitgJHt2
YXJzLnByb3BlcnR5LW5hbWV9YC4gRm9yIGV4YW1wbGU6CisKK2BgYAorY29tcG9uZW50czoKKyAg
Z2VuZXJpYy1jb21wb25lbnQ6CisgICAgcHJvcDogJHt2YXJzLnZhbHVlfQorCit0YXNrczoKKyAg
LSBmaXJzdDoKKyAgICAgIHVzZToKKyAgICAgICAgLSBnZW5lcmljLWNvbXBvbmVudAorICAgICAg
dmFyczoKKyAgICAgICAgdmFsdWU6IHZhbHVlMQorICAtIHNlY29uZDoKKyAgICAgIHVzZToKKyAg
ICAgICAgLSBnZW5lcmljLWNvbXBvbmVudAorICAgICAgdmFyczoKKyAgICAgICAgdmFsdWU6IHZh
bHVlMgorYGBgCisKK1Jlc3VsdHMgaW4gdGhlIGZvbGxvd2luZyB0YXNrczoKKworYGBgCitmaXJz
dDoKKyAgcHJvcDogdmFsdWUxCitzZWNvbmQ6CisgIHByb3A6IHZhbHVlMgorYGBgCisKKyMjIE1h
cHMKKworSW5zdGVhZCBvZiBkZWZpbmluZyBhIHRhc2sgZGlyZWN0bHksIGFuIGl0ZW0gaW4gdGhl
IHRhc2tzIHByb3BlcnR5IG1heQorYmUgYW4gb2JqZWN0IHdpdGggYSBzaW5nbGUgcHJvcGVydHkg
YCRtYXBgLiBUaGlzIG9iamVjdCBpdHNlbGYgaGFzIHR3bworY2hpbGQgcHJvcGVydGllczsgYGZv
cmAgYW5kIGBkb2AuIFRoZSB2YWx1ZSBvZiBgZm9yYCBpcyBhIGxpc3Qgb2YKK29iamVjdHMsIGFu
ZCB0aGUgdmFsdWUgb2YgYGRvYCBpcyBlaXRoZXIgYW4gb2JqZWN0IG9yIGEgbGlzdCBvZgorb2Jq
ZWN0cy4gRm9yIGVhY2ggb2JqZWN0IGluIHRoZSBgZm9yYCBwcm9wZXJ0eSwgYSBzZXQgb2YgdGFz
a3MgaXMKK2NyZWF0ZWQgYnkgdGFraW5nIGEgY29weSBvZiB0aGF0IG9iamVjdCBmb3IgZWFjaCB0
YXNrIGluIHRoZSBgZG9gCitwcm9wZXJ0eSwgdXBkYXRpbmcgdGhlIG9iamVjdCB3aXRoIHRoZSBw
cm9wZXJ0aWVzIGZyb20gdGhlCitjb3JyZXNwb25kaW5nIGBkb2Agb2JqZWN0LCB1c2luZyB0aGUg
c2FtZSBydWxlcyBhcyBmb3IgY29tcG9uZW50cworYWJvdmUsIGFuZCB0aGVuIHByb2Nlc3Npbmcg
YXMgZm9yIGEgbm9ybWFsIHRhc2suIGAkbWFwYCBydWxlcyBjYW4gYWxzbworYmUgbmVzdGVkLgor
CitOb3RlOiBBbHRob3VnaCBgJG1hcGAgc2hhcmVzIGEgbmFtZSB3aXRoIHRoZSBgJG1hcGAgdXNl
ZCBpbiBqc29uLWUKKyh1c2VkLiBpbiBgLnRhc2tjbHVzdGVyLnltbGApLCB0aGUgc2VtYW50aWNz
IGFyZSBkaWZmZXJlbnQuCisKK0ZvciBleGFtcGxlCisKK2BgYAorY29tcG9uZW50czoge30KK3Rh
c2tzOgorICAkbWFwOgorICAgIGZvcjoKKyAgICAgIC0gdmFyczoKKyAgICAgICAgICBleGFtcGxl
OiB2YWx1ZTEKKyAgICAgIC0gdmFyczoKKyAgICAgICAgICBleGFtcGxlOiB2YWx1ZTIKKyAgICBk
bzoKKyAgICAgIGV4YW1wbGUtJHt2YXJzLmV4YW1wbGV9CisgICAgICAgIHByb3A6ICR7dmFycy5l
eGFtcGxlfQorYGBgCisKK1Jlc3VsdHMgaW4gdGhlIHRhc2tzCisKK2BgYAorZXhhbXBsZS12YWx1
ZTE6CisgIHByb3A6IHZhbHVlMQorZXhhbXBsZS12YWx1ZTI6CisgIHByb3A6IHZhbHVlMgorYGBg
CisKK05vdGUgdGhhdCBpbiBjb21iaW5hdGlvbiB3aXRoIGAkbWFwYCwgdmFyaWFibGUgc3Vic3Rp
dHV0aW9ucyBhcmUKK2FwcGxpZWQgKnR3aWNlKjsgb25jZSBhZnRlciB0aGUgYCRtYXBgIGlzIGV2
YWx1YXRlZCBhbmQgb25jZSBhZnRlciB0aGUKK2B1c2VgIHN0YXRlbWVudHMgYXJlIGV2YWx1YXRl
ZC4KKworIyMgQ2h1bmtzCisKK0EgY29tbW9uIHJlcXVpcmVtZW50cyBmb3IgdGFza3MgaXMgdGhh
dCB0aGV5IGFyZSAiY2h1bmtlZCIgaW50byBOCitwYXJ0aWFsIHRhc2tzLiBUaGlzIGlzIGhhbmRs
ZWQgc3BlY2lhbGx5IGluIHRoZSBzeW50YXguIEEgdG9wIGxldmVsCitwcm9wZXJ0eSBgY2h1bmtz
YCBjYW4gYmUgdXNlZCB0byBkZWZpbmUgdGhlIG51bWJlciBvZiBpbmRpdmlkdWFsCitjaHVua3Mg
dG8gY3JlYXRlIGZvciBhIHNwZWNpZmljIHRhc2suIEVhY2ggY2h1bmtlZCB0YXNrIGlzIGNyZWF0
ZWQKK3dpdGggYSBgY2h1bmtzYCBwcm9wZXJ0eSBzZXQgdG8gYW4gb2JqZWN0IGNvbnRhaW5pbmcg
YW4gYGlkYCBwcm9wZXJ0eQorY29udGFpbmluZyB0aGUgb25lLWJhc2VkIGluZGV4IG9mIHRoZSBj
aHVuayBhbiBhIGB0b3RhbGAgcHJvcGVydHkKK2NvbnRhaW5pbmcgdGhlIHRvdGFsIG51bWJlciBv
ZiBjaHVua3MuIFRoZXNlIGNhbiBiZSBzdWJzdGl0dXRlZCBpbnRvCit0aGUgdGFzayBkZWZpbml0
aW9uIHVzaW5nIHRoZSBzYW1lIHN5bnRheCBhcyBmb3IgYHZhcnNgIGFib3ZlCitlLmcuIGAke2No
dW5rcy5pZH1gLiBOb3RlIHRoYXQgYmVjYXVzZSB0YXNrIG5hbWVzIG11c3QgYmUgdW5pcXVlLCBp
dCdzCitjb21tb24gdG8gc3BlY2lmeSBhIGBuYW1lYCBwcm9wZXJ0eSBvbiB0aGUgdGFzayB0aGF0
IHdpbGwgb3ZlcnJpZGUgdGhlCitwcm9wZXJ0eSBuYW1lIGUuZy4KKworYGBgCitjb21wb25lbnRz
OiB7fQordGFza3M6CisgIC0gY2h1bmtlZC10YXNrOgorICAgICAgY2h1bmtzOjIKKyAgICAgIGNv
bW1hbmQ6ICJ0YXNrLXJ1biAtLWNodW5rPSR7Y2h1bmtzLmlkfSAtLXRvdGFsQ2h1bmtzPSR7Y2h1
bmtzLnRvdGFsfSIKKyAgICAgIG5hbWU6IHRhc2stY2h1bmstJHtjaHVua3MuaWR9CitgYGAKKwor
Y3JlYXRlcyB0YXNrczoKKworYGBgCit0YXNrLWNodW5rLTE6CisgIGNvbW1hbmQ6ICJ0YXNrLXJ1
biAtLWNodW5rPTEgLS10b3RhbENodW5rcz0yIgordGFzay1jaHVuay0yOgorICBjb21tYW5kOiAi
dGFzay1ydW4gLS1jaHVuaz0yIC0tdG90YWxDaHVua3M9MiIKK2BgYAorCisjIE92ZXJhbGwgcHJv
Y2Vzc2luZyBtb2RlbAorCitUaGUgb3ZlcmFsbCBwcm9jZXNzaW5nIG1vZGVsIGZvciB0YXNrcyBp
cyBhcyBmb2xsb3dzOgorICogRXZhbHVhdGUgbWFwcworICogUGVyZm9ybSBzdWJzaXR1dGlvbnMK
KyAqIEV2YWx1YXRlIHVzZSBzdGF0ZW1lbnRzCisgKiBFeHBhbmQgY2h1bmtzCisgKiBQZXJmb3Jt
IHN1YnNpdHV0aW9ucworCitBdCBlYWNoIHBvaW50IGFmdGVyIG1hcHMgYXJlIGV2YWx1YXRlZCB0
YXNrcyBtdXN0IGhhdmUgYSB1bmlxdWUgbmFtZS4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvY2kvdGMvX19pbml0X18ucHkgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2NpL3RjL19f
aW5pdF9fLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLmU2OWRlMjliYjJkMWQ2NDM0YjhiMjlhZTc3NWFkOGMyZTQ4
YzUzOTEKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvY2kvdGMvZGVjaXNpb24ucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2NpL3RjL2RlY2lzaW9uLnB5Cm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmEz
YzQ3YWE0MDQ5OTAyNTNmNTU2YTljZjU5YmQ3YzYyMzdmZmVjZTMKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2NpL3Rj
L2RlY2lzaW9uLnB5CkBAIC0wLDAgKzEsMzIzIEBACitpbXBvcnQgYXJncGFyc2UKK2ltcG9ydCBq
c29uCitpbXBvcnQgbG9nZ2luZworaW1wb3J0IG9zCitpbXBvcnQgcmUKK2ltcG9ydCBzdWJwcm9j
ZXNzCitmcm9tIGNvbGxlY3Rpb25zIGltcG9ydCBPcmRlcmVkRGljdAorCitpbXBvcnQgdGFza2Ns
dXN0ZXIKK2Zyb20gc2l4IGltcG9ydCBpdGVyaXRlbXMsIGl0ZXJ2YWx1ZXMKKworZnJvbSAuIGlt
cG9ydCB0YXNrZ3JhcGgKKworCitoZXJlID0gb3MucGF0aC5hYnNwYXRoKG9zLnBhdGguZGlybmFt
ZShfX2ZpbGVfXykpCisKKworbG9nZ2luZy5iYXNpY0NvbmZpZygpCitsb2dnZXIgPSBsb2dnaW5n
LmdldExvZ2dlcigpCisKKworZGVmIGdldF90cmlnZ2VycyhldmVudCk6CisgICAgIyBTZXQgc29t
ZSB2YXJpYWJsZXMgdGhhdCB3ZSB1c2UgdG8gZ2V0IHRoZSBjb21taXRzIG9uIHRoZSBjdXJyZW50
IGJyYW5jaAorICAgIHJlZl9wcmVmaXggPSAicmVmcy9oZWFkcy8iCisgICAgaXNfcHIgPSAicHVs
bF9yZXF1ZXN0IiBpbiBldmVudAorICAgIGJyYW5jaCA9IE5vbmUKKyAgICBpZiBub3QgaXNfcHIg
YW5kICJyZWYiIGluIGV2ZW50OgorICAgICAgICBicmFuY2ggPSBldmVudFsicmVmIl0KKyAgICAg
ICAgaWYgYnJhbmNoLnN0YXJ0c3dpdGgocmVmX3ByZWZpeCk6CisgICAgICAgICAgICBicmFuY2gg
PSBicmFuY2hbbGVuKHJlZl9wcmVmaXgpOl0KKworICAgIHJldHVybiBpc19wciwgYnJhbmNoCisK
KworZGVmIGZldGNoX2V2ZW50X2RhdGEocXVldWUpOgorICAgIHRyeToKKyAgICAgICAgdGFza19p
ZCA9IG9zLmVudmlyb25bIlRBU0tfSUQiXQorICAgIGV4Y2VwdCBLZXlFcnJvcjoKKyAgICAgICAg
bG9nZ2VyLndhcm5pbmcoIk1pc3NpbmcgVEFTS19JRCBlbnZpcm9ubWVudCB2YXJpYWJsZSIpCisg
ICAgICAgICMgRm9yIGV4YW1wbGUgdW5kZXIgbG9jYWwgdGVzdGluZworICAgICAgICByZXR1cm4g
Tm9uZQorCisgICAgdGFza19kYXRhID0gcXVldWUudGFzayh0YXNrX2lkKQorCisgICAgcmV0dXJu
IHRhc2tfZGF0YS5nZXQoImV4dHJhIiwge30pLmdldCgiZ2l0aHViX2V2ZW50IikKKworCitkZWYg
ZmlsdGVyX3RyaWdnZXJzKGV2ZW50LCBhbGxfdGFza3MpOgorICAgIGlzX3ByLCBicmFuY2ggPSBn
ZXRfdHJpZ2dlcnMoZXZlbnQpCisgICAgdHJpZ2dlcmVkID0ge30KKyAgICBmb3IgbmFtZSwgdGFz
ayBpbiBpdGVyaXRlbXMoYWxsX3Rhc2tzKToKKyAgICAgICAgaWYgInRyaWdnZXIiIGluIHRhc2s6
CisgICAgICAgICAgICBpZiBpc19wciBhbmQgInB1bGwtcmVxdWVzdCIgaW4gdGFza1sidHJpZ2dl
ciJdOgorICAgICAgICAgICAgICAgIHRyaWdnZXJlZFtuYW1lXSA9IHRhc2sKKyAgICAgICAgICAg
IGVsaWYgYnJhbmNoIGlzIG5vdCBOb25lIGFuZCAiYnJhbmNoIiBpbiB0YXNrWyJ0cmlnZ2VyIl06
CisgICAgICAgICAgICAgICAgZm9yIHRyaWdnZXJfYnJhbmNoIGluIHRhc2tbInRyaWdnZXIiXVsi
YnJhbmNoIl06CisgICAgICAgICAgICAgICAgICAgIGlmICh0cmlnZ2VyX2JyYW5jaCA9PSBicmFu
Y2ggb3IKKyAgICAgICAgICAgICAgICAgICAgICAgIHRyaWdnZXJfYnJhbmNoLmVuZHN3aXRoKCIq
IikgYW5kIGJyYW5jaC5zdGFydHN3aXRoKHRyaWdnZXJfYnJhbmNoWzotMV0pKToKKyAgICAgICAg
ICAgICAgICAgICAgICAgIHRyaWdnZXJlZFtuYW1lXSA9IHRhc2sKKyAgICBsb2dnZXIuaW5mbygi
VHJpZ2dlcnMgbWF0Y2ggdGFza3M6XG4gKiAlcyIgJSAiXG4gKiAiLmpvaW4odHJpZ2dlcmVkLmtl
eXMoKSkpCisgICAgcmV0dXJuIHRyaWdnZXJlZAorCisKK2RlZiBnZXRfcnVuX2pvYnMoZXZlbnQp
OgorICAgIGZyb20gdG9vbHMuY2kgaW1wb3J0IGpvYnMKKyAgICByZXZpc2ggPSAiJXMuLiVzIiAl
IChldmVudFsicHVsbF9yZXF1ZXN0Il1bImJhc2UiXVsic2hhIl0KKyAgICAgICAgICAgICAgICAg
ICAgICAgICBpZiAicHVsbF9yZXF1ZXN0IiBpbiBldmVudAorICAgICAgICAgICAgICAgICAgICAg
ICAgIGVsc2UgZXZlbnRbImJlZm9yZSJdLAorICAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50
WyJwdWxsX3JlcXVlc3QiXVsiaGVhZCJdWyJzaGEiXQorICAgICAgICAgICAgICAgICAgICAgICAg
IGlmICJwdWxsX3JlcXVlc3QiIGluIGV2ZW50CisgICAgICAgICAgICAgICAgICAgICAgICAgZWxz
ZSBldmVudFsiYWZ0ZXIiXSkKKyAgICBsb2dnZXIuaW5mbygiTG9va2luZyBmb3IgY2hhbmdlcyBp
biByYW5nZSAlcyIgJSByZXZpc2gpCisgICAgcGF0aHMgPSBqb2JzLmdldF9wYXRocyhyZXZpc2g9
cmV2aXNoKQorICAgIGxvZ2dlci5pbmZvKCJGb3VuZCBjaGFuZ2VzIGluIHBhdGhzOiVzIiAlICJc
biIuam9pbihwYXRocykpCisgICAgcGF0aF9qb2JzID0gam9icy5nZXRfam9icyhwYXRocykKKyAg
ICBhbGxfam9icyA9IHBhdGhfam9icyB8IGdldF9leHRyYV9qb2JzKGV2ZW50KQorICAgIGxvZ2dl
ci5pbmZvKCJJbmNsdWRpbmcgam9iczpcbiAqICVzIiAlICJcbiAqICIuam9pbihhbGxfam9icykp
CisgICAgcmV0dXJuIGFsbF9qb2JzCisKKworZGVmIGdldF9leHRyYV9qb2JzKGV2ZW50KToKKyAg
ICBib2R5ID0gTm9uZQorICAgIGpvYnMgPSBzZXQoKQorICAgIGlmICJjb21taXRzIiBpbiBldmVu
dCBhbmQgZXZlbnRbImNvbW1pdHMiXToKKyAgICAgICAgYm9keSA9IGV2ZW50WyJjb21taXRzIl1b
MF1bIm1lc3NhZ2UiXQorICAgIGVsaWYgInB1bGxfcmVxdWVzdCIgaW4gZXZlbnQ6CisgICAgICAg
IGJvZHkgPSBldmVudFsicHVsbF9yZXF1ZXN0Il1bImJvZHkiXQorCisgICAgaWYgbm90IGJvZHk6
CisgICAgICAgIHJldHVybiBqb2JzCisKKyAgICByZWdleHAgPSByZS5jb21waWxlKHIiXHMqdGMt
am9iczooLiopJCIpCisKKyAgICBmb3IgbGluZSBpbiBib2R5LnNwbGl0bGluZXMoKToKKyAgICAg
ICAgbSA9IHJlZ2V4cC5tYXRjaChsaW5lKQorICAgICAgICBpZiBtOgorICAgICAgICAgICAgaXRl
bXMgPSBtLmdyb3VwKDEpCisgICAgICAgICAgICBmb3IgaXRlbSBpbiBpdGVtcy5zcGxpdCgiLCIp
OgorICAgICAgICAgICAgICAgIGpvYnMuYWRkKGl0ZW0uc3RyaXAoKSkKKyAgICAgICAgICAgIGJy
ZWFrCisgICAgcmV0dXJuIGpvYnMKKworCitkZWYgZmlsdGVyX3NjaGVkdWxlX2lmKGV2ZW50LCB0
YXNrcyk6CisgICAgc2NoZWR1bGVkID0ge30KKyAgICBydW5fam9icyA9IE5vbmUKKyAgICBmb3Ig
bmFtZSwgdGFzayBpbiBpdGVyaXRlbXModGFza3MpOgorICAgICAgICBpZiAic2NoZWR1bGUtaWYi
IGluIHRhc2s6CisgICAgICAgICAgICBpZiAicnVuLWpvYiIgaW4gdGFza1sic2NoZWR1bGUtaWYi
XToKKyAgICAgICAgICAgICAgICBpZiBydW5fam9icyBpcyBOb25lOgorICAgICAgICAgICAgICAg
ICAgICBydW5fam9icyA9IGdldF9ydW5fam9icyhldmVudCkKKyAgICAgICAgICAgICAgICBpZiAi
YWxsIiBpbiBydW5fam9icyBvciBhbnkoaXRlbSBpbiBydW5fam9icyBmb3IgaXRlbSBpbiB0YXNr
WyJzY2hlZHVsZS1pZiJdWyJydW4tam9iIl0pOgorICAgICAgICAgICAgICAgICAgICBzY2hlZHVs
ZWRbbmFtZV0gPSB0YXNrCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBzY2hlZHVsZWRbbmFt
ZV0gPSB0YXNrCisgICAgbG9nZ2VyLmluZm8oIlNjaGVkdWxpbmcgcnVsZXMgbWF0Y2ggdGFza3M6
XG4gKiAlcyIgJSAiXG4gKiAiLmpvaW4oc2NoZWR1bGVkLmtleXMoKSkpCisgICAgcmV0dXJuIHNj
aGVkdWxlZAorCisKK2RlZiBnZXRfZmV0Y2hfcmV2KGV2ZW50KToKKyAgICBpc19wciwgXyA9IGdl
dF90cmlnZ2VycyhldmVudCkKKyAgICBpZiBpc19wcjoKKyAgICAgICAgIyBUcnkgdG8gZ2V0IHRo
ZSBhY3R1YWwgcmV2IHNvIHRoYXQgYWxsIG5vbi1kZWNpc2lvbiB0YXNrcyBhcmUgcGlubmVkIHRv
IHRoYXQKKyAgICAgICAgcmVmID0gInJlZnMvcHVsbC8lcy9tZXJnZSIgJSBldmVudFsicHVsbF9y
ZXF1ZXN0Il1bIm51bWJlciJdCisgICAgICAgIHRyeToKKyAgICAgICAgICAgIG91dHB1dCA9IHN1
YnByb2Nlc3MuY2hlY2tfb3V0cHV0KFsiZ2l0IiwgImxzLXJlbW90ZSIsICJvcmlnaW4iLCByZWZd
KQorICAgICAgICBleGNlcHQgc3VicHJvY2Vzcy5DYWxsZWRQcm9jZXNzRXJyb3I6CisgICAgICAg
ICAgICBpbXBvcnQgdHJhY2ViYWNrCisgICAgICAgICAgICBsb2dnZXIuZXJyb3IodHJhY2ViYWNr
LmZvcm1hdF9leGMoKSkKKyAgICAgICAgICAgIGxvZ2dlci5lcnJvcigiRmFpbGVkIHRvIGdldCBt
ZXJnZSBjb21taXQgc2hhMSIpCisgICAgICAgICAgICByZXR1cm4gcmVmLCBOb25lCisgICAgICAg
IGlmIG5vdCBvdXRwdXQ6CisgICAgICAgICAgICBsb2dnZXIuZXJyb3IoIkZhaWxlZCB0byBnZXQg
bWVyZ2UgY29tbWl0IikKKyAgICAgICAgICAgIHJldHVybiByZWYsIE5vbmUKKyAgICAgICAgcmV0
dXJuIHJlZiwgb3V0cHV0LnNwbGl0KClbMF0KKyAgICBlbHNlOgorICAgICAgICByZXR1cm4gZXZl
bnRbInJlZiJdLCBldmVudFsiYWZ0ZXIiXQorCisKK2RlZiBidWlsZF9mdWxsX2NvbW1hbmQoZXZl
bnQsIHRhc2spOgorICAgIGZldGNoX3JlZiwgZmV0Y2hfc2hhID0gZ2V0X2ZldGNoX3JldihldmVu
dCkKKyAgICBjbWRfYXJncyA9IHsKKyAgICAgICAgInRhc2tfbmFtZSI6IHRhc2tbIm5hbWUiXSwK
KyAgICAgICAgInJlcG9fdXJsIjogZXZlbnRbInJlcG9zaXRvcnkiXVsiY2xvbmVfdXJsIl0sCisg
ICAgICAgICJmZXRjaF9yZWYiOiBmZXRjaF9yZWYsCisgICAgICAgICJ0YXNrX2NtZCI6IHRhc2tb
ImNvbW1hbmQiXSwKKyAgICAgICAgImluc3RhbGxfc3RyIjogIiIsCisgICAgfQorCisgICAgb3B0
aW9ucyA9IHRhc2suZ2V0KCJvcHRpb25zIiwge30pCisgICAgb3B0aW9uc19hcmdzID0gW10KKyAg
ICBpZiBmZXRjaF9zaGEgaXMgbm90IE5vbmU6CisgICAgICAgIG9wdGlvbnNfYXJncy5hcHBlbmQo
Ii0tcmV2PSVzIiAlIGZldGNoX3NoYSkKKyAgICBpZiBvcHRpb25zLmdldCgib29tLWtpbGxlciIp
OgorICAgICAgICBvcHRpb25zX2FyZ3MuYXBwZW5kKCItLW9vbS1raWxsZXIiKQorICAgIGlmIG9w
dGlvbnMuZ2V0KCJ4dmZiIik6CisgICAgICAgIG9wdGlvbnNfYXJncy5hcHBlbmQoIi0teHZmYiIp
CisgICAgaWYgbm90IG9wdGlvbnMuZ2V0KCJob3N0cyIpOgorICAgICAgICBvcHRpb25zX2FyZ3Mu
YXBwZW5kKCItLW5vLWhvc3RzIikKKyAgICBlbHNlOgorICAgICAgICBvcHRpb25zX2FyZ3MuYXBw
ZW5kKCItLWhvc3RzIikKKyAgICAjIENoZWNrIG91dCB0aGUgZXhwZWN0ZWQgU0hBIHVubGVzcyBp
dCBpcyBvdmVycmlkZGVuIChlLmcuIHRvIGJhc2VfaGVhZCkuCisgICAgaWYgb3B0aW9ucy5nZXQo
ImNoZWNrb3V0Iik6CisgICAgICAgIG9wdGlvbnNfYXJncy5hcHBlbmQoIi0tY2hlY2tvdXQ9JXMi
ICUgb3B0aW9uc1siY2hlY2tvdXQiXSkKKyAgICBlbHNlOgorICAgICAgICBvcHRpb25zX2FyZ3Mu
YXBwZW5kKCItLWNoZWNrb3V0PSVzIiAlIGZldGNoX3NoYSkKKyAgICBmb3IgYnJvd3NlciBpbiBv
cHRpb25zLmdldCgiYnJvd3NlciIsIFtdKToKKyAgICAgICAgb3B0aW9uc19hcmdzLmFwcGVuZCgi
LS1icm93c2VyPSVzIiAlIGJyb3dzZXIpCisgICAgaWYgb3B0aW9ucy5nZXQoImNoYW5uZWwiKToK
KyAgICAgICAgb3B0aW9uc19hcmdzLmFwcGVuZCgiLS1jaGFubmVsPSVzIiAlIG9wdGlvbnNbImNo
YW5uZWwiXSkKKyAgICBpZiBvcHRpb25zLmdldCgiaW5zdGFsbC1jZXJ0aWZpY2F0ZXMiKToKKyAg
ICAgICAgb3B0aW9uc19hcmdzLmFwcGVuZCgiLS1pbnN0YWxsLWNlcnRpZmljYXRlcyIpCisKKyAg
ICBjbWRfYXJnc1sib3B0aW9uc19zdHIiXSA9ICIgIi5qb2luKHN0cihpdGVtKSBmb3IgaXRlbSBp
biBvcHRpb25zX2FyZ3MpCisKKyAgICBpbnN0YWxsX3BhY2thZ2VzID0gdGFzay5nZXQoImluc3Rh
bGwiKQorICAgIGlmIGluc3RhbGxfcGFja2FnZXM6CisgICAgICAgIGluc3RhbGxfaXRlbXMgPSBb
ImFwdCB1cGRhdGUgLXFxeSJdCisgICAgICAgIGluc3RhbGxfaXRlbXMuZXh0ZW5kKCJhcHQgaW5z
dGFsbCAtcXF5ICVzIiAlIGl0ZW0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yIGl0
ZW0gaW4gaW5zdGFsbF9wYWNrYWdlcykKKyAgICAgICAgY21kX2FyZ3NbImluc3RhbGxfc3RyIl0g
PSAiXG4iLmpvaW4oInN1ZG8gJXM7IiAlIGl0ZW0gZm9yIGl0ZW0gaW4gaW5zdGFsbF9pdGVtcykK
KworICAgIHJldHVybiBbIi9iaW4vYmFzaCIsCisgICAgICAgICAgICAiLS1sb2dpbiIsCisgICAg
ICAgICAgICAiLWMiLAorICAgICAgICAgICAgIiIiCit+L3N0YXJ0LnNoIFwKKyAgJShyZXBvX3Vy
bClzIFwKKyAgJShmZXRjaF9yZWYpczsKKyUoaW5zdGFsbF9zdHIpcworY2Qgd2ViLXBsYXRmb3Jt
LXRlc3RzOworLi90b29scy9jaS9ydW5fdGMucHkgJShvcHRpb25zX3N0cilzIC0tICUodGFza19j
bWQpczsKKyIiIiAlIGNtZF9hcmdzXQorCisKK2RlZiBnZXRfb3duZXIoZXZlbnQpOgorICAgIHB1
c2hlciA9IGV2ZW50LmdldCgicHVzaGVyIiwge30pLmdldCgiZW1haWwiLCAiIikKKyAgICBpZiAi
QCIgaW4gcHVzaGVyOgorICAgICAgICByZXR1cm4gcHVzaGVyCisgICAgcmV0dXJuICJ3ZWItcGxh
dGZvcm0tdGVzdHNAdXNlcnMubm9yZXBseS5naXRodWIuY29tIgorCisKK2RlZiBjcmVhdGVfdGNf
dGFzayhldmVudCwgdGFzaywgdGFza2dyb3VwX2lkLCBkZXBlbmRzX29uX2lkcyk6CisgICAgY29t
bWFuZCA9IGJ1aWxkX2Z1bGxfY29tbWFuZChldmVudCwgdGFzaykKKyAgICB0YXNrX2lkID0gdGFz
a2NsdXN0ZXIuc2x1Z0lkKCkKKyAgICB0YXNrX2RhdGEgPSB7CisgICAgICAgICJ0YXNrR3JvdXBJ
ZCI6IHRhc2tncm91cF9pZCwKKyAgICAgICAgImNyZWF0ZWQiOiB0YXNrY2x1c3Rlci5mcm9tTm93
SlNPTigiIiksCisgICAgICAgICJkZWFkbGluZSI6IHRhc2tjbHVzdGVyLmZyb21Ob3dKU09OKHRh
c2tbImRlYWRsaW5lIl0pLAorICAgICAgICAicHJvdmlzaW9uZXJJZCI6IHRhc2tbInByb3Zpc2lv
bmVySWQiXSwKKyAgICAgICAgInNjaGVkdWxlcklkIjogdGFza1sic2NoZWR1bGVySWQiXSwKKyAg
ICAgICAgIndvcmtlclR5cGUiOiB0YXNrWyJ3b3JrZXJUeXBlIl0sCisgICAgICAgICJtZXRhZGF0
YSI6IHsKKyAgICAgICAgICAgICJuYW1lIjogdGFza1sibmFtZSJdLAorICAgICAgICAgICAgImRl
c2NyaXB0aW9uIjogdGFzay5nZXQoImRlc2NyaXB0aW9uIiwgIiIpLAorICAgICAgICAgICAgIm93
bmVyIjogZ2V0X293bmVyKGV2ZW50KSwKKyAgICAgICAgICAgICJzb3VyY2UiOiBldmVudFsicmVw
b3NpdG9yeSJdWyJjbG9uZV91cmwiXQorICAgICAgICB9LAorICAgICAgICAicGF5bG9hZCI6IHsK
KyAgICAgICAgICAgICJhcnRpZmFjdHMiOiB0YXNrLmdldCgiYXJ0aWZhY3RzIiksCisgICAgICAg
ICAgICAiY29tbWFuZCI6IGNvbW1hbmQsCisgICAgICAgICAgICAiaW1hZ2UiOiB0YXNrLmdldCgi
aW1hZ2UiKSwKKyAgICAgICAgICAgICJtYXhSdW5UaW1lIjogdGFzay5nZXQoIm1heFJ1blRpbWUi
KSwKKyAgICAgICAgICAgICJlbnYiOiB0YXNrLmdldCgiZW52Iiwge30pLAorICAgICAgICB9LAor
ICAgICAgICAiZXh0cmEiOiB7CisgICAgICAgICAgICAiZ2l0aHViX2V2ZW50IjoganNvbi5kdW1w
cyhldmVudCkKKyAgICAgICAgfQorICAgIH0KKyAgICBpZiBkZXBlbmRzX29uX2lkczoKKyAgICAg
ICAgdGFza19kYXRhWyJkZXBlbmRlbmNpZXMiXSA9IGRlcGVuZHNfb25faWRzCisgICAgICAgIHRh
c2tfZGF0YVsicmVxdWlyZXMiXSA9ICJhbGwtY29tcGxldGVkIgorICAgIHJldHVybiB0YXNrX2lk
LCB0YXNrX2RhdGEKKworCitkZWYgYnVpbGRfdGFza19ncmFwaChldmVudCwgYWxsX3Rhc2tzLCB0
YXNrcyk6CisgICAgdGFza19pZF9tYXAgPSBPcmRlcmVkRGljdCgpCisgICAgdGFza2dyb3VwX2lk
ID0gb3MuZW52aXJvbi5nZXQoIlRBU0tfSUQiLCB0YXNrY2x1c3Rlci5zbHVnSWQoKSkKKworICAg
IGRlZiBhZGRfdGFzayh0YXNrX25hbWUsIHRhc2spOgorICAgICAgICBkZXBlbmRzX29uX2lkcyA9
IFtdCisgICAgICAgIGlmICJkZXBlbmRzLW9uIiBpbiB0YXNrOgorICAgICAgICAgICAgZm9yIGRl
cGVuZHNfbmFtZSBpbiB0YXNrWyJkZXBlbmRzLW9uIl06CisgICAgICAgICAgICAgICAgaWYgZGVw
ZW5kc19uYW1lIG5vdCBpbiB0YXNrX2lkX21hcDoKKyAgICAgICAgICAgICAgICAgICAgYWRkX3Rh
c2soZGVwZW5kc19uYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbGxfdGFza3Nb
ZGVwZW5kc19uYW1lXSkKKyAgICAgICAgICAgICAgICBkZXBlbmRzX29uX2lkcy5hcHBlbmQodGFz
a19pZF9tYXBbZGVwZW5kc19uYW1lXVswXSkKKyAgICAgICAgdGFza19pZCwgdGFza19kYXRhID0g
Y3JlYXRlX3RjX3Rhc2soZXZlbnQsIHRhc2ssIHRhc2tncm91cF9pZCwgZGVwZW5kc19vbl9pZHMp
CisgICAgICAgIHRhc2tfaWRfbWFwW3Rhc2tfbmFtZV0gPSAodGFza19pZCwgdGFza19kYXRhKQor
CisgICAgZm9yIHRhc2tfbmFtZSwgdGFzayBpbiBpdGVyaXRlbXModGFza3MpOgorICAgICAgICBh
ZGRfdGFzayh0YXNrX25hbWUsIHRhc2spCisKKyAgICByZXR1cm4gdGFza19pZF9tYXAKKworCitk
ZWYgY3JlYXRlX3Rhc2tzKHF1ZXVlLCB0YXNrX2lkX21hcCk6CisgICAgZm9yICh0YXNrX2lkLCB0
YXNrX2RhdGEpIGluIGl0ZXJ2YWx1ZXModGFza19pZF9tYXApOgorICAgICAgICBxdWV1ZS5jcmVh
dGVUYXNrKHRhc2tfaWQsIHRhc2tfZGF0YSkKKworCitkZWYgZ2V0X2V2ZW50KHF1ZXVlLCBldmVu
dF9wYXRoKToKKyAgICBpZiBldmVudF9wYXRoIGlzIG5vdCBOb25lOgorICAgICAgICB0cnk6Cisg
ICAgICAgICAgICB3aXRoIG9wZW4oZXZlbnRfcGF0aCkgYXMgZjoKKyAgICAgICAgICAgICAgICBl
dmVudF9zdHIgPSBmLnJlYWQoKQorICAgICAgICBleGNlcHQgSU9FcnJvcjoKKyAgICAgICAgICAg
IGxvZ2dlci5lcnJvcigiTWlzc2luZyBldmVudCBmaWxlIGF0IHBhdGggJXMiICUgZXZlbnRfcGF0
aCkKKyAgICAgICAgICAgIHJhaXNlCisgICAgZWxpZiAiVEFTS19FVkVOVCIgaW4gb3MuZW52aXJv
bjoKKyAgICAgICAgZXZlbnRfc3RyID0gb3MuZW52aXJvblsiVEFTS19FVkVOVCJdCisgICAgZWxz
ZToKKyAgICAgICAgZXZlbnRfc3RyID0gZmV0Y2hfZXZlbnRfZGF0YShxdWV1ZSkKKyAgICBpZiBu
b3QgZXZlbnRfc3RyOgorICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJDYW4ndCBmaW5kIEdpdEh1
YiBldmVudCBkZWZpbml0aW9uOyBmb3IgbG9jYWwgdGVzdGluZyBwYXNzIC0tZXZlbnQtcGF0aCIp
CisgICAgdHJ5OgorICAgICAgICByZXR1cm4ganNvbi5sb2FkcyhldmVudF9zdHIpCisgICAgZXhj
ZXB0IFZhbHVlRXJyb3I6CisgICAgICAgIGxvZ2dlci5lcnJvcigiRXZlbnQgd2FzIG5vdCB2YWxp
ZCBKU09OIikKKyAgICAgICAgcmFpc2UKKworCitkZWYgZGVjaWRlKGV2ZW50KToKKyAgICBhbGxf
dGFza3MgPSB0YXNrZ3JhcGgubG9hZF90YXNrc19mcm9tX3BhdGgob3MucGF0aC5qb2luKGhlcmUs
ICJ0YXNrcyIsICJ0ZXN0LnltbCIpKQorCisgICAgdHJpZ2dlcmVkX3Rhc2tzID0gZmlsdGVyX3Ry
aWdnZXJzKGV2ZW50LCBhbGxfdGFza3MpCisgICAgc2NoZWR1bGVkX3Rhc2tzID0gZmlsdGVyX3Nj
aGVkdWxlX2lmKGV2ZW50LCB0cmlnZ2VyZWRfdGFza3MpCisKKyAgICBsb2dnZXIuaW5mbygiVU5T
Q0hFRFVMRUQgVEFTS1M6XG4gICVzIiAlICJcbiAgIi5qb2luKHNvcnRlZChzZXQoYWxsX3Rhc2tz
LmtleXMoKSkgLQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgc2V0KHNjaGVkdWxlZF90YXNrcy5rZXlzKCkpKSkpCisgICAgbG9nZ2Vy
LmluZm8oIlNDSEVEVUxFRCBUQVNLUzpcbiAgJXMiICUgIlxuICAiLmpvaW4oc29ydGVkKHNjaGVk
dWxlZF90YXNrcy5rZXlzKCkpKSkKKworICAgIHRhc2tfaWRfbWFwID0gYnVpbGRfdGFza19ncmFw
aChldmVudCwgYWxsX3Rhc2tzLCBzY2hlZHVsZWRfdGFza3MpCisgICAgcmV0dXJuIHRhc2tfaWRf
bWFwCisKKworZGVmIGdldF9wYXJzZXIoKToKKyAgICBwYXJzZXIgPSBhcmdwYXJzZS5Bcmd1bWVu
dFBhcnNlcigpCisgICAgcGFyc2VyLmFkZF9hcmd1bWVudCgiLS1ldmVudC1wYXRoIiwKKyAgICAg
ICAgICAgICAgICAgICAgICAgIGhlbHA9IlBhdGggdG8gZmlsZSBjb250YWluaW5nIHNlcmlhbGl6
ZWQgR2l0SHViIGV2ZW50IikKKyAgICBwYXJzZXIuYWRkX2FyZ3VtZW50KCItLWRyeS1ydW4iLCBh
Y3Rpb249InN0b3JlX3RydWUiLAorICAgICAgICAgICAgICAgICAgICAgICAgaGVscD0iRG9uJ3Qg
YWN0dWFsbHkgY3JlYXRlIHRoZSB0YXNrcywganVzdCBvdXRwdXQgdGhlIHRhc2tzIHRoYXQgIgor
ICAgICAgICAgICAgICAgICAgICAgICAgIndvdWxkIGJlIGNyZWF0ZWQiKQorICAgIHBhcnNlci5h
ZGRfYXJndW1lbnQoIi0tdGFza3MtcGF0aCIsCisgICAgICAgICAgICAgICAgICAgICAgICBoZWxw
PSJQYXRoIHRvIGZpbGUgaW4gd2hpY2ggdG8gd3JpdGUgcGF5bG9hZCBmb3IgYWxsIHNjaGVkdWxl
ZCB0YXNrcyIpCisgICAgcmV0dXJuIHBhcnNlcgorCisKK2RlZiBydW4odmVudiwgKiprd2FyZ3Mp
OgorICAgIHF1ZXVlID0gdGFza2NsdXN0ZXIuUXVldWUoeydyb290VXJsJzogb3MuZW52aXJvblsn
VEFTS0NMVVNURVJfUFJPWFlfVVJMJ119KQorICAgIGV2ZW50ID0gZ2V0X2V2ZW50KHF1ZXVlLCBl
dmVudF9wYXRoPWt3YXJnc1siZXZlbnRfcGF0aCJdKQorCisgICAgdGFza19pZF9tYXAgPSBkZWNp
ZGUoZXZlbnQpCisKKyAgICB0cnk6CisgICAgICAgIGlmIG5vdCBrd2FyZ3NbImRyeV9ydW4iXToK
KyAgICAgICAgICAgIGNyZWF0ZV90YXNrcyhxdWV1ZSwgdGFza19pZF9tYXApCisgICAgICAgIGVs
c2U6CisgICAgICAgICAgICBwcmludChqc29uLmR1bXBzKHRhc2tfaWRfbWFwLCBpbmRlbnQ9Mikp
CisgICAgZmluYWxseToKKyAgICAgICAgaWYga3dhcmdzWyJ0YXNrc19wYXRoIl06CisgICAgICAg
ICAgICB3aXRoIG9wZW4oa3dhcmdzWyJ0YXNrc19wYXRoIl0sICJ3IikgYXMgZjoKKyAgICAgICAg
ICAgICAgICBqc29uLmR1bXAodGFza19pZF9tYXAsIGYsIGluZGVudD0yKQpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9jaS90Yy9k
b3dubG9hZC5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvY2kvdGMvZG93bmxvYWQucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzU5ZWMzMzQwNTA0OGMxMzRkZGNm
YWM3YTU2NGVhOWExN2FjMWIxNAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvY2kvdGMvZG93bmxvYWQucHkKQEAgLTAs
MCArMSwxMDkgQEAKK2ltcG9ydCBhcmdwYXJzZQoraW1wb3J0IG9zCitpbXBvcnQgbG9nZ2luZwor
CitpbXBvcnQgcmVxdWVzdHMKKworaW1wb3J0IGdpdGh1YgorCisKK2xvZ2dpbmcuYmFzaWNDb25m
aWcoKQorbG9nZ2VyID0gbG9nZ2luZy5nZXRMb2dnZXIoInRjLWRvd25sb2FkIikKKworIyBUaGUg
cm9vdCBVUkwgb2YgdGhlIFRhc2tjbHVzdGVyIGRlcGxveW1lbnQgZnJvbSB3aGljaCB0byBkb3du
bG9hZCB3cHQgcmVwb3J0cworIyAoYWZ0ZXIgaHR0cHM6Ly9idWd6aWxsYS5tb3ppbGxhLm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTU3NDY2OCBsYW5kcywgdGhpcyB3aWxsCisjIGJlIGh0dHBzOi8vY29t
bXVuaXR5LXRjLnNlcnZpY2VzLm1vemlsbGEuY29tKQorVEFTS0NMVVNURVJfUk9PVF9VUkwgPSAn
aHR0cHM6Ly90YXNrY2x1c3Rlci5uZXQnCisKKworZGVmIGdldF9wYXJzZXIoKToKKyAgICBwYXJz
ZXIgPSBhcmdwYXJzZS5Bcmd1bWVudFBhcnNlcigpCisgICAgcGFyc2VyLmFkZF9hcmd1bWVudCgi
LS1yZWYiLCBhY3Rpb249InN0b3JlIiwgZGVmYXVsdD0ibWFzdGVyIiwKKyAgICAgICAgICAgICAg
ICAgICAgICAgIGhlbHA9IkJyYW5jaCAoaW4gdGhlIEdpdEh1YiByZXBvc2l0b3J5KSBvciBjb21t
aXQgdG8gZmV0Y2ggbG9ncyBmb3IiKQorICAgIHBhcnNlci5hZGRfYXJndW1lbnQoIi0tYXJ0aWZh
Y3QtbmFtZSIsIGFjdGlvbj0ic3RvcmUiLCBkZWZhdWx0PSJ3cHRfcmVwb3J0Lmpzb24uZ3oiLAor
ICAgICAgICAgICAgICAgICAgICAgICAgaGVscD0iTG9nIHR5cGUgdG8gZmV0Y2giKQorICAgIHBh
cnNlci5hZGRfYXJndW1lbnQoIi0tcmVwby1uYW1lIiwgYWN0aW9uPSJzdG9yZSIsIGRlZmF1bHQ9
IndlYi1wbGF0Zm9ybS10ZXN0cy93cHQiLAorICAgICAgICAgICAgICAgICAgICAgICAgaGVscD0i
R2l0SHViIHJlcG8gbmFtZSBpbiB0aGUgZm9ybWF0IG93bmVyL3JlcG8uICIKKyAgICAgICAgICAg
ICAgICAgICAgICAgICJUaGlzIG11c3QgYmUgdGhlIHJlcG8gZnJvbSB3aGljaCB0aGUgVGFza2Ns
dXN0ZXIgcnVuIHdhcyBzY2hlZHVsZWQgIgorICAgICAgICAgICAgICAgICAgICAgICAgIihmb3Ig
UFJzIHRoaXMgaXMgdGhlIHJlcG8gaW50byB3aGljaCB0aGUgUFIgd291bGQgbWVyZ2UpIikKKyAg
ICBwYXJzZXIuYWRkX2FyZ3VtZW50KCItLXRva2VuLWZpbGUiLCBhY3Rpb249InN0b3JlIiwKKyAg
ICAgICAgICAgICAgICAgICAgICAgIGhlbHA9IkZpbGUgY29udGFpbmluZyBHaXRIdWIgdG9rZW4i
KQorICAgIHBhcnNlci5hZGRfYXJndW1lbnQoIi0tb3V0LWRpciIsIGFjdGlvbj0ic3RvcmUiLCBk
ZWZhdWx0PSIuIiwKKyAgICAgICAgICAgICAgICAgICAgICAgIGhlbHA9IlBhdGggdG8gc2F2ZSB0
aGUgbG9nZmlsZXMiKQorICAgIHJldHVybiBwYXJzZXIKKworCitkZWYgZ2V0X2pzb24odXJsLCBr
ZXk9Tm9uZSk6CisgICAgcmVzcCA9IHJlcXVlc3RzLmdldCh1cmwpCisgICAgcmVzcC5yYWlzZV9m
b3Jfc3RhdHVzKCkKKyAgICBkYXRhID0gcmVzcC5qc29uKCkKKyAgICBpZiBrZXk6CisgICAgICAg
IGRhdGEgPSBkYXRhW2tleV0KKyAgICByZXR1cm4gZGF0YQorCisKK2RlZiBnZXQodXJsLCBkZXN0
LCBuYW1lKToKKyAgICByZXNwID0gcmVxdWVzdHMuZ2V0KHVybCkKKyAgICByZXNwLnJhaXNlX2Zv
cl9zdGF0dXMoKQorICAgIHBhdGggPSBvcy5wYXRoLmpvaW4oZGVzdCwgbmFtZSkKKyAgICB3aXRo
IG9wZW4ocGF0aCwgInciKSBhcyBmOgorICAgICAgICBmLndyaXRlKHJlc3AuY29udGVudCkKKyAg
ICByZXR1cm4gcGF0aAorCisKK2RlZiBydW4oKmFyZ3MsICoqa3dhcmdzKToKKyAgICBpZiBub3Qg
b3MucGF0aC5leGlzdHMoa3dhcmdzWyJvdXRfZGlyIl0pOgorICAgICAgICBvcy5ta2Rpcihrd2Fy
Z3NbIm91dF9kaXIiXSkKKworICAgIGlmIGt3YXJnc1sidG9rZW5fZmlsZSJdOgorICAgICAgICB3
aXRoIG9wZW4oa3dhcmdzWyJ0b2tlbl9maWxlIl0pIGFzIGY6CisgICAgICAgICAgICBnaCA9IGdp
dGh1Yi5HaXRodWIoZi5yZWFkKCkuc3RyaXAoKSkKKyAgICBlbHNlOgorICAgICAgICBnaCA9IGdp
dGh1Yi5HaXRodWIoKQorCisgICAgcmVwbyA9IGdoLmdldF9yZXBvKGt3YXJnc1sicmVwb19uYW1l
Il0pCisgICAgY29tbWl0ID0gcmVwby5nZXRfY29tbWl0KGt3YXJnc1sicmVmIl0pCisgICAgc3Rh
dHVzZXMgPSBjb21taXQuZ2V0X3N0YXR1c2VzKCkKKyAgICB0YXNrZ3JvdXBzID0gc2V0KCkKKwor
ICAgIGZvciBzdGF0dXMgaW4gc3RhdHVzZXM6CisgICAgICAgIGlmIG5vdCBzdGF0dXMuY29udGV4
dC5zdGFydHN3aXRoKCJUYXNrY2x1c3RlciAiKToKKyAgICAgICAgICAgIGNvbnRpbnVlCisgICAg
ICAgIGlmIHN0YXR1cy5zdGF0ZSA9PSAicGVuZGluZyI6CisgICAgICAgICAgICBjb250aW51ZQor
ICAgICAgICB0YXNrZ3JvdXBfaWQgPSBzdGF0dXMudGFyZ2V0X3VybC5yc3BsaXQoIi8iLCAxKVsx
XQorICAgICAgICB0YXNrZ3JvdXBzLmFkZCh0YXNrZ3JvdXBfaWQpCisKKyAgICBpZiBub3QgdGFz
a2dyb3VwczoKKyAgICAgICAgbG9nZ2VyLmVycm9yKCJObyBjb21wbGV0ZSBUYXNrY2x1c3RlciBy
dW5zIGZvdW5kIGZvciByZWYgJXMiICUga3dhcmdzWyJyZWYiXSkKKyAgICAgICAgcmV0dXJuIDEK
KworICAgIGZvciB0YXNrZ3JvdXAgaW4gdGFza2dyb3VwczoKKyAgICAgICAgaWYgVEFTS0NMVVNU
RVJfUk9PVF9VUkwgPT0gJ2h0dHBzOi8vdGFza2NsdXN0ZXIubmV0JzoKKyAgICAgICAgICAgICMg
Tk9URTogdGhpcyBjb25kaXRpb24gY2FuIGJlIHJlbW92ZWQgYWZ0ZXIgTm92ZW1iZXIgOSwgMjAx
OQorICAgICAgICAgICAgdGFza2dyb3VwX3VybCA9ICJodHRwczovL3F1ZXVlLnRhc2tjbHVzdGVy
Lm5ldC92MS90YXNrLWdyb3VwLyVzL2xpc3QiCisgICAgICAgICAgICBhcnRpZmFjdHNfbGlzdF91
cmwgPSAiaHR0cHM6Ly9xdWV1ZS50YXNrY2x1c3Rlci5uZXQvdjEvdGFzay8lcy9hcnRpZmFjdHMi
CisgICAgICAgIGVsc2U6CisgICAgICAgICAgICB0YXNrZ3JvdXBfdXJsID0gVEFTS0NMVVNURVJf
Uk9PVF9VUkwgKyAiL2FwaS9xdWV1ZS92MS90YXNrLWdyb3VwLyVzL2xpc3QiCisgICAgICAgICAg
ICBhcnRpZmFjdHNfbGlzdF91cmwgPSBUQVNLQ0xVU1RFUl9ST09UX1VSTCArICIvYXBpL3F1ZXVl
L3YxL3Rhc2svJXMvYXJ0aWZhY3RzIgorICAgICAgICB0YXNrcyA9IGdldF9qc29uKHRhc2tncm91
cF91cmwgJSB0YXNrZ3JvdXAsICJ0YXNrcyIpCisgICAgICAgIGZvciB0YXNrIGluIHRhc2tzOgor
ICAgICAgICAgICAgdGFza19pZCA9IHRhc2tbInN0YXR1cyJdWyJ0YXNrSWQiXQorICAgICAgICAg
ICAgdXJsID0gYXJ0aWZhY3RzX2xpc3RfdXJsICUgKHRhc2tfaWQsKQorICAgICAgICAgICAgZm9y
IGFydGlmYWN0IGluIGdldF9qc29uKHVybCwgImFydGlmYWN0cyIpOgorICAgICAgICAgICAgICAg
IGlmIGFydGlmYWN0WyJuYW1lIl0uZW5kc3dpdGgoa3dhcmdzWyJhcnRpZmFjdF9uYW1lIl0pOgor
ICAgICAgICAgICAgICAgICAgICBmaWxlbmFtZSA9ICIlcy0lcy0lcyIgJSAodGFza1sidGFzayJd
WyJtZXRhZGF0YSJdWyJuYW1lIl0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICB0YXNrX2lkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAga3dhcmdzWyJhcnRpZmFjdF9uYW1lIl0pCisgICAgICAgICAgICAgICAgICAgIHBh
dGggPSBnZXQoIiVzLyVzIiAlICh1cmwsIGFydGlmYWN0WyJuYW1lIl0pLCBrd2FyZ3NbIm91dF9k
aXIiXSwgZmlsZW5hbWUpCisgICAgICAgICAgICAgICAgICAgIGxvZ2dlci5pbmZvKHBhdGgpCisK
KworZGVmIG1haW4oKToKKyAgICBrd2FyZ3MgPSBnZXRfcGFyc2VyKCkucGFyc2VfYXJncygpCisK
KyAgICBydW4oTm9uZSwgdmFycyhrd2FyZ3MpKQorCisKK2lmIF9fbmFtZV9fID09ICJfX21haW5f
XyI6CisgICAgbWFpbigpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2NpL3RjL3Rhc2tncmFwaC5weSBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvY2kvdGMvdGFza2dyYXBoLnB5Cm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjZhNmNiNDk3ZjJkNDA2ODYyZDE4YmMyMTRkMzZjMWVhMmVjZDdjM2UKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL2NpL3RjL3Rhc2tncmFwaC5weQpAQCAtMCwwICsxLDE3MCBAQAoraW1wb3J0IGpzb24K
K2ltcG9ydCBvcworaW1wb3J0IHJlCitmcm9tIGNvcHkgaW1wb3J0IGRlZXBjb3B5CisKK2ltcG9y
dCBzaXgKK2ltcG9ydCB5YW1sCitmcm9tIHNpeCBpbXBvcnQgaXRlcml0ZW1zCisKK2hlcmUgPSBv
cy5wYXRoLmRpcm5hbWUoX19maWxlX18pCisKKworZGVmIGZpcnN0KGl0ZXJhYmxlKToKKyAgICAj
IEZpcnN0IGl0ZW0gZnJvbSBhIGxpc3Qgb3IgaXRlcmF0b3IKKyAgICBpZiBub3QgaGFzYXR0cihp
dGVyYWJsZSwgIm5leHQiKToKKyAgICAgICAgaWYgaGFzYXR0cihpdGVyYWJsZSwgIl9faXRlcl9f
Iik6CisgICAgICAgICAgICBpdGVyYWJsZSA9IGl0ZXIoaXRlcmFibGUpCisgICAgICAgIGVsc2U6
CisgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJPYmplY3QgaXNuJ3QgaXRlcmFibGUiKQor
ICAgIHJldHVybiBuZXh0KGl0ZXJhYmxlKQorCisKK2RlZiBsb2FkX3Rhc2tfZmlsZShwYXRoKToK
KyAgICB3aXRoIG9wZW4ocGF0aCkgYXMgZjoKKyAgICAgICAgcmV0dXJuIHlhbWwuc2FmZV9sb2Fk
KGYpCisKKworZGVmIHVwZGF0ZV9yZWN1cnNpdmUoZGF0YSwgdXBkYXRlX2RhdGEpOgorICAgIGZv
ciBrZXksIHZhbHVlIGluIGl0ZXJpdGVtcyh1cGRhdGVfZGF0YSk6CisgICAgICAgIGlmIGtleSBu
b3QgaW4gZGF0YToKKyAgICAgICAgICAgIGRhdGFba2V5XSA9IHZhbHVlCisgICAgICAgIGVsc2U6
CisgICAgICAgICAgICBpbml0aWFsX3ZhbHVlID0gZGF0YVtrZXldCisgICAgICAgICAgICBpZiBp
c2luc3RhbmNlKHZhbHVlLCBkaWN0KToKKyAgICAgICAgICAgICAgICBpZiBub3QgaXNpbnN0YW5j
ZShpbml0aWFsX3ZhbHVlLCBkaWN0KToKKyAgICAgICAgICAgICAgICAgICAgcmFpc2UgVmFsdWVF
cnJvcigiVmFyaWFibGUgJXMgaGFzIGluY29uc2lzdGVudCB0eXBlcyAiCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIihleHBlY3RlZCBvYmplY3QpIiAlIGtleSkKKyAgICAg
ICAgICAgICAgICB1cGRhdGVfcmVjdXJzaXZlKGluaXRpYWxfdmFsdWUsIHZhbHVlKQorICAgICAg
ICAgICAgZWxpZiBpc2luc3RhbmNlKHZhbHVlLCBsaXN0KToKKyAgICAgICAgICAgICAgICBpZiBu
b3QgaXNpbnN0YW5jZShpbml0aWFsX3ZhbHVlLCBsaXN0KToKKyAgICAgICAgICAgICAgICAgICAg
cmFpc2UgVmFsdWVFcnJvcigiVmFyaWFibGUgJXMgaGFzIGluY29uc2lzdGVudCB0eXBlcyAiCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIihleHBlY3RlZCBsaXN0KSIgJSBr
ZXkpCisgICAgICAgICAgICAgICAgaW5pdGlhbF92YWx1ZS5leHRlbmQodmFsdWUpCisgICAgICAg
ICAgICBlbHNlOgorICAgICAgICAgICAgICAgIGRhdGFba2V5XSA9IHZhbHVlCisKKworZGVmIHJl
c29sdmVfdXNlKHRhc2tfZGF0YSwgdGVtcGxhdGVzKToKKyAgICBydiA9IHt9CisgICAgaWYgInVz
ZSIgaW4gdGFza19kYXRhOgorICAgICAgICBmb3IgdGVtcGxhdGVfbmFtZSBpbiB0YXNrX2RhdGFb
InVzZSJdOgorICAgICAgICAgICAgdXBkYXRlX3JlY3Vyc2l2ZShydiwgZGVlcGNvcHkodGVtcGxh
dGVzW3RlbXBsYXRlX25hbWVdKSkKKyAgICB1cGRhdGVfcmVjdXJzaXZlKHJ2LCB0YXNrX2RhdGEp
CisgICAgcnYucG9wKCJ1c2UiLCBOb25lKQorICAgIHJldHVybiBydgorCisKK2RlZiByZXNvbHZl
X25hbWUodGFza19kYXRhLCBkZWZhdWx0X25hbWUpOgorICAgIGlmICJuYW1lIiBub3QgaW4gdGFz
a19kYXRhOgorICAgICAgICB0YXNrX2RhdGFbIm5hbWUiXSA9IGRlZmF1bHRfbmFtZQorICAgIHJl
dHVybiB0YXNrX2RhdGEKKworCitkZWYgcmVzb2x2ZV9jaHVua3ModGFza19kYXRhKToKKyAgICBp
ZiAiY2h1bmtzIiBub3QgaW4gdGFza19kYXRhOgorICAgICAgICByZXR1cm4gW3Rhc2tfZGF0YV0K
KyAgICBydiA9IFtdCisgICAgdG90YWxfY2h1bmtzID0gdGFza19kYXRhWyJjaHVua3MiXQorICAg
IGZvciBpIGluIHJhbmdlKDEsIHRvdGFsX2NodW5rcyArIDEpOgorICAgICAgICBjaHVua19kYXRh
ID0gZGVlcGNvcHkodGFza19kYXRhKQorICAgICAgICBjaHVua19kYXRhWyJjaHVua3MiXSA9IHsi
aWQiOiBpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAidG90YWwiOiB0b3RhbF9j
aHVua3N9CisgICAgICAgIHJ2LmFwcGVuZChjaHVua19kYXRhKQorICAgIHJldHVybiBydgorCisK
K2RlZiByZXBsYWNlX3ZhcnMoaW5wdXRfc3RyaW5nLCB2YXJpYWJsZXMpOgorICAgICMgVE9ETzog
c3VwcG9ydCByZXBsYWNpbmcgYXMgYSBub24tc3RyaW5nIHR5cGU/CisgICAgdmFyaWFibGVfcmUg
PSByZS5jb21waWxlKHIiKD88IVxcKVwkeyhbXn1dKyl9IikKKworICAgIGRlZiByZXBsYWNlciht
KToKKyAgICAgICAgdmFyID0gbS5ncm91cCgxKS5zcGxpdCgiLiIpCisgICAgICAgIHJlcGwgPSB2
YXJpYWJsZXMKKyAgICAgICAgZm9yIHBhcnQgaW4gdmFyOgorICAgICAgICAgICAgdHJ5OgorICAg
ICAgICAgICAgICAgIHJlcGwgPSByZXBsW3BhcnRdCisgICAgICAgICAgICBleGNlcHQgRXhjZXB0
aW9uOgorICAgICAgICAgICAgICAgICMgRG9uJ3Qgc3Vic3RpdHV0ZQorICAgICAgICAgICAgICAg
IHJldHVybiBtLmdyb3VwKDApCisgICAgICAgIHJldHVybiBzdHIocmVwbCkKKworICAgIHJldHVy
biB2YXJpYWJsZV9yZS5zdWIocmVwbGFjZXIsIGlucHV0X3N0cmluZykKKworCitkZWYgc3ViX3Zh
cmlhYmxlcyhkYXRhLCB2YXJpYWJsZXMpOgorICAgIGlmIGlzaW5zdGFuY2UoZGF0YSwgc2l4LnN0
cmluZ190eXBlcyk6CisgICAgICAgIHJldHVybiByZXBsYWNlX3ZhcnMoZGF0YSwgdmFyaWFibGVz
KQorICAgIGlmIGlzaW5zdGFuY2UoZGF0YSwgbGlzdCk6CisgICAgICAgIHJldHVybiBbc3ViX3Zh
cmlhYmxlcyhpdGVtLCB2YXJpYWJsZXMpIGZvciBpdGVtIGluIGRhdGFdCisgICAgaWYgaXNpbnN0
YW5jZShkYXRhLCBkaWN0KToKKyAgICAgICAgcmV0dXJuIHtrZXk6IHN1Yl92YXJpYWJsZXModmFs
dWUsIHZhcmlhYmxlcykKKyAgICAgICAgICAgICAgICBmb3Iga2V5LCB2YWx1ZSBpbiBpdGVyaXRl
bXMoZGF0YSl9CisgICAgcmV0dXJuIGRhdGEKKworCitkZWYgc3Vic3RpdHV0ZV92YXJpYWJsZXMo
dGFzayk6CisgICAgdmFyaWFibGVzID0geyJ2YXJzIjogdGFzay5nZXQoInZhcnMiLCB7fSksCisg
ICAgICAgICAgICAgICAgICJjaHVua3MiOiB0YXNrLmdldCgiY2h1bmtzIiwge30pfQorCisgICAg
cmV0dXJuIHN1Yl92YXJpYWJsZXModGFzaywgdmFyaWFibGVzKQorCisKK2RlZiBleHBhbmRfbWFw
cyh0YXNrKToKKyAgICBuYW1lID0gZmlyc3QodGFzay5rZXlzKCkpCisgICAgaWYgbmFtZSAhPSAi
JG1hcCI6CisgICAgICAgIHJldHVybiBbdGFza10KKworICAgIG1hcF9kYXRhID0gdGFza1siJG1h
cCJdCisgICAgaWYgc2V0KG1hcF9kYXRhLmtleXMoKSkgIT0gc2V0KFsiZm9yIiwgImRvIl0pOgor
ICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCIkbWFwIG9iamVjdHMgbXVzdCBoYXZlIGV4YWN0bHkg
dHdvIHByb3BlcnRpZXMgbmFtZWQgJ2ZvcicgIgorICAgICAgICAgICAgICAgICAgICAgICAgICJh
bmQgJ2RvJyAoZ290ICVzKSIgJSAoIm5vIHByb3BlcnRpZXMiIGlmIG5vdCBtYXBfZGF0YS5rZXlz
KCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2Ug
IiwgIi4gam9pbihtYXBfZGF0YS5rZXlzKCkpKSkKKyAgICBydiA9IFtdCisgICAgZm9yIGZvcl9k
YXRhIGluIG1hcF9kYXRhWyJmb3IiXToKKyAgICAgICAgZG9faXRlbXMgPSBtYXBfZGF0YVsiZG8i
XQorICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShkb19pdGVtcywgbGlzdCk6CisgICAgICAgICAg
ICBkb19pdGVtcyA9IGV4cGFuZF9tYXBzKGRvX2l0ZW1zKQorICAgICAgICBmb3IgZG9fZGF0YSBp
biBkb19pdGVtczoKKyAgICAgICAgICAgIHRhc2tfZGF0YSA9IGRlZXBjb3B5KGZvcl9kYXRhKQor
ICAgICAgICAgICAgaWYgbGVuKGRvX2RhdGEua2V5cygpKSAhPSAxOgorICAgICAgICAgICAgICAg
IHJhaXNlIFZhbHVlRXJyb3IoIkVhY2ggaXRlbSBpbiB0aGUgJ2RvJyBsaXN0IG11c3QgYmUgYW4g
b2JqZWN0ICIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ3aXRoIGEgc2luZ2xl
IHByb3BlcnR5IikKKyAgICAgICAgICAgIG5hbWUgPSBmaXJzdChkb19kYXRhLmtleXMoKSkKKyAg
ICAgICAgICAgIHVwZGF0ZV9yZWN1cnNpdmUodGFza19kYXRhLCBkZWVwY29weShkb19kYXRhW25h
bWVdKSkKKyAgICAgICAgICAgIHJ2LmFwcGVuZCh7bmFtZTogdGFza19kYXRhfSkKKyAgICByZXR1
cm4gcnYKKworCitkZWYgbG9hZF90YXNrcyh0YXNrc19kYXRhKToKKyAgICBtYXBfcmVzb2x2ZWRf
dGFza3MgPSB7fQorICAgIHRhc2tzID0gW10KKworICAgIGZvciB0YXNrIGluIHRhc2tzX2RhdGFb
InRhc2tzIl06CisgICAgICAgIGlmIGxlbih0YXNrLmtleXMoKSkgIT0gMToKKyAgICAgICAgICAg
IHJhaXNlIFZhbHVlRXJyb3IoIkVhY2ggdGFzayBtdXN0IGJlIGFuIG9iamVjdCB3aXRoIGEgc2lu
Z2xlIHByb3BlcnR5IikKKyAgICAgICAgZm9yIHRhc2sgaW4gZXhwYW5kX21hcHModGFzayk6Cisg
ICAgICAgICAgICBpZiBsZW4odGFzay5rZXlzKCkpICE9IDE6CisgICAgICAgICAgICAgICAgcmFp
c2UgVmFsdWVFcnJvcigiRWFjaCB0YXNrIG11c3QgYmUgYW4gb2JqZWN0IHdpdGggYSBzaW5nbGUg
cHJvcGVydHkiKQorICAgICAgICAgICAgbmFtZSA9IGZpcnN0KHRhc2sua2V5cygpKQorICAgICAg
ICAgICAgZGF0YSA9IHRhc2tbbmFtZV0KKyAgICAgICAgICAgIG5ld19uYW1lID0gc3ViX3Zhcmlh
YmxlcyhuYW1lLCB7InZhcnMiOiBkYXRhLmdldCgidmFycyIsIHt9KX0pCisgICAgICAgICAgICBp
ZiBuZXdfbmFtZSBpbiBtYXBfcmVzb2x2ZWRfdGFza3M6CisgICAgICAgICAgICAgICAgcmFpc2Ug
VmFsdWVFcnJvcigiR290IGR1cGxpY2F0ZSB0YXNrIG5hbWUgJXMiICUgbmV3X25hbWUpCisgICAg
ICAgICAgICBtYXBfcmVzb2x2ZWRfdGFza3NbbmV3X25hbWVdID0gc3Vic3RpdHV0ZV92YXJpYWJs
ZXMoZGF0YSkKKworICAgIGZvciB0YXNrX2RlZmF1bHRfbmFtZSwgZGF0YSBpbiBpdGVyaXRlbXMo
bWFwX3Jlc29sdmVkX3Rhc2tzKToKKyAgICAgICAgdGFzayA9IHJlc29sdmVfdXNlKGRhdGEsIHRh
c2tzX2RhdGFbImNvbXBvbmVudHMiXSkKKyAgICAgICAgdGFzayA9IHJlc29sdmVfbmFtZSh0YXNr
LCB0YXNrX2RlZmF1bHRfbmFtZSkKKyAgICAgICAgdGFza3MuZXh0ZW5kKHJlc29sdmVfY2h1bmtz
KHRhc2spKQorCisgICAgdGFza3MgPSBbc3Vic3RpdHV0ZV92YXJpYWJsZXModGFza19kYXRhKSBm
b3IgdGFza19kYXRhIGluIHRhc2tzXQorICAgIHJldHVybiB7dGFza1sibmFtZSJdOiB0YXNrIGZv
ciB0YXNrIGluIHRhc2tzfQorCisKK2RlZiBsb2FkX3Rhc2tzX2Zyb21fcGF0aChwYXRoKToKKyAg
ICByZXR1cm4gbG9hZF90YXNrcyhsb2FkX3Rhc2tfZmlsZShwYXRoKSkKKworCitkZWYgcnVuKHZl
bnYsICoqa3dhcmdzKToKKyAgICBwcmludChqc29uLmR1bXBzKGxvYWRfdGFza3NfZnJvbV9wYXRo
KG9zLnBhdGguam9pbihoZXJlLCAidGFza3MiLCAidGVzdC55bWwiKSksIGluZGVudD0yKSkKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvY2kvdGMvdGFza3MvdGVzdC55bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL2NpL3RjL3Rhc2tzL3Rlc3QueW1sCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmE2NGVm
Mzc0OTIxMWJiYjJiMzU4MGVmYzJlZWUzZWE1YTgxMGVhNmYKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2NpL3RjL3Rh
c2tzL3Rlc3QueW1sCkBAIC0wLDAgKzEsMzcwIEBACitjb21wb25lbnRzOgorICB3cHQtYmFzZToK
KyAgICBwcm92aXNpb25lcklkOiBwcm9qLXdwdAorICAgIHdvcmtlclR5cGU6IGNpCisgICAgc2No
ZWR1bGVySWQ6IHRhc2tjbHVzdGVyLWdpdGh1YgorICAgIGRlYWRsaW5lOiAiMjQgaG91cnMiCisg
ICAgaW1hZ2U6IGhhcmpnYW0vd2ViLXBsYXRmb3JtLXRlc3RzOjAuMzMKKyAgICBtYXhSdW5UaW1l
OiA3MjAwCisgICAgYXJ0aWZhY3RzOgorICAgICAgcHVibGljL3Jlc3VsdHM6CisgICAgICAgIHBh
dGg6IC9ob21lL3Rlc3QvYXJ0aWZhY3RzCisgICAgICAgIHR5cGU6IGRpcmVjdG9yeQorCisgIHdw
dC10ZXN0aGFybmVzczoKKyAgICBjaHVua3M6IDE2CisgICAgdmFyczoKKyAgICAgIHRlc3QtdHlw
ZTogdGVzdGhhcm5lc3MKKworICB3cHQtcmVmdGVzdDoKKyAgICBjaHVua3M6IDUKKyAgICB2YXJz
OgorICAgICAgdGVzdC10eXBlOiByZWZ0ZXN0CisKKyAgd3B0LXdkc3BlYzoKKyAgICBjaHVua3M6
IDEKKyAgICB2YXJzOgorICAgICAgdGVzdC10eXBlOiB3ZHNwZWMKKworICBydW4tb3B0aW9uczoK
KyAgICBvcHRpb25zOgorICAgICAgeHZmYjogdHJ1ZQorICAgICAgb29tLWtpbGxlcjogdHJ1ZQor
ICAgICAgaG9zdHM6IHRydWUKKyAgICAgIGluc3RhbGwtY2VydGlmaWNhdGVzOiB0cnVlCisKKyAg
d3B0LXJ1bjoKKyAgICBuYW1lOiB3cHQtJHt2YXJzLmJyb3dzZXJ9LSR7dmFycy5jaGFubmVsfS0k
e3ZhcnMuc3VpdGV9LSR7Y2h1bmtzLmlkfQorICAgIG9wdGlvbnM6CisgICAgICBicm93c2VyOgor
ICAgICAgICAtICR7dmFycy5icm93c2VyfQorICAgICAgY2hhbm5lbDogJHt2YXJzLmNoYW5uZWx9
CisgICAgY29tbWFuZDogPi0KKyAgICAgIC4vdG9vbHMvY2kvdGFza2NsdXN0ZXItcnVuLnB5Cisg
ICAgICAke3ZhcnMuYnJvd3Nlcn0KKyAgICAgIC0tCisgICAgICAtLWNoYW5uZWw9JHt2YXJzLmNo
YW5uZWx9CisgICAgICAtLWxvZy13cHRyZXBvcnQ9Li4vYXJ0aWZhY3RzL3dwdF9yZXBvcnQuanNv
bgorICAgICAgLS1sb2ctd3B0c2NyZWVuc2hvdD0uLi9hcnRpZmFjdHMvd3B0X3NjcmVlbnNob3Qu
dHh0CisgICAgICAtLW5vLWZhaWwtb24tdW5leHBlY3RlZAorICAgICAgLS10aGlzLWNodW5rPSR7
Y2h1bmtzLmlkfQorICAgICAgLS10b3RhbC1jaHVua3M9JHtjaHVua3MudG90YWx9CisgICAgICAt
LXRlc3QtdHlwZT0ke3ZhcnMuc3VpdGV9CisgIHRyaWdnZXItbWFzdGVyOgorICAgIHRyaWdnZXI6
CisgICAgICBicmFuY2g6CisgICAgICAgIC0gbWFzdGVyCisKKyAgdHJpZ2dlci1wdXNoOgorICAg
IHRyaWdnZXI6CisgICAgICBicmFuY2g6CisgICAgICAgIC0gdHJpZ2dlcnMvJHt2YXJzLmJyb3dz
ZXJ9XyR7dmFycy5jaGFubmVsfQorCisgIHRyaWdnZXItZGFpbHk6CisgICAgdHJpZ2dlcjoKKyAg
ICAgIGJyYW5jaDoKKyAgICAgICAgLSBlcG9jaHMvZGFpbHkKKworICB0cmlnZ2VyLXdlZWtseToK
KyAgICB0cmlnZ2VyOgorICAgICAgYnJhbmNoOgorICAgICAgICAtIGVwb2Nocy93ZWVrbHkKKwor
ICB0cmlnZ2VyLXByOgorICAgIHRyaWdnZXI6CisgICAgICBwdWxsLXJlcXVlc3Q6CisKKyAgYnJv
d3Nlci1maXJlZm94OgorICAgIGRlcGVuZHMtb246CisgICAgICAtIGRvd25sb2FkLWZpcmVmb3gt
JHt2YXJzLmNoYW5uZWx9CisKKyAgYnJvd3Nlci13ZWJraXRndGtfbWluaWJyb3dzZXI6IHt9CisK
KyAgYnJvd3Nlci1jaHJvbWU6IHt9CisKKyAgdG94LXB5dGhvbjI6CisgICAgZW52OgorICAgICAg
VE9YRU5WOiBweTI3CisgICAgICBQWV9DT0xPUlM6IDAKKworICB0b3gtcHl0aG9uMzoKKyAgICBl
bnY6CisgICAgICBUT1hFTlY6IHB5MzYKKyAgICAgIFBZX0NPTE9SUzogMAorICAgIGluc3RhbGw6
CisgICAgICAtIHB5dGhvbjMtcGlwCisKKyAgdGVzdHMtYWZmZWN0ZWQ6CisgICAgb3B0aW9uczoK
KyAgICAgIGJyb3dzZXI6CisgICAgICAgIC0gJHt2YXJzLmJyb3dzZXJ9CisgICAgICBjaGFubmVs
OiAke3ZhcnMuY2hhbm5lbH0KKyAgICBzY2hlZHVsZS1pZjoKKyAgICAgIHJ1bi1qb2I6CisgICAg
ICAgIC0gYWZmZWN0ZWRfdGVzdHMKKwordGFza3M6CisgICMgUnVuIGZ1bGwgc3VpdGVzIG9uIHB1
c2gKKyAgLSAkbWFwOgorICAgICAgZm9yOgorICAgICAgICAtIHZhcnM6CisgICAgICAgICAgICBz
dWl0ZTogdGVzdGhhcm5lc3MKKyAgICAgICAgLSB2YXJzOgorICAgICAgICAgICAgc3VpdGU6IHJl
ZnRlc3QKKyAgICAgICAgLSB2YXJzOgorICAgICAgICAgICAgc3VpdGU6IHdkc3BlYworICAgICAg
ZG86CisgICAgICAgICRtYXA6CisgICAgICAgICAgZm9yOgorICAgICAgICAgICAgLSB2YXJzOgor
ICAgICAgICAgICAgICAgIGJyb3dzZXI6IGZpcmVmb3gKKyAgICAgICAgICAgICAgICBjaGFubmVs
OiBuaWdodGx5CisgICAgICAgICAgICAgIHVzZToKKyAgICAgICAgICAgICAgICAtIHRyaWdnZXIt
bWFzdGVyCisgICAgICAgICAgICAgICAgLSB0cmlnZ2VyLXB1c2gKKyAgICAgICAgICAgIC0gdmFy
czoKKyAgICAgICAgICAgICAgICBicm93c2VyOiBmaXJlZm94CisgICAgICAgICAgICAgICAgY2hh
bm5lbDogYmV0YQorICAgICAgICAgICAgICB1c2U6CisgICAgICAgICAgICAgICAgLSB0cmlnZ2Vy
LXdlZWtseQorICAgICAgICAgICAgICAgIC0gdHJpZ2dlci1wdXNoCisgICAgICAgICAgICAtIHZh
cnM6CisgICAgICAgICAgICAgICAgYnJvd3NlcjogZmlyZWZveAorICAgICAgICAgICAgICAgIGNo
YW5uZWw6IHN0YWJsZQorICAgICAgICAgICAgICB1c2U6CisgICAgICAgICAgICAgICAgLSB0cmln
Z2VyLWRhaWx5CisgICAgICAgICAgICAgICAgLSB0cmlnZ2VyLXB1c2gKKyAgICAgICAgICAgIC0g
dmFyczoKKyAgICAgICAgICAgICAgICBicm93c2VyOiBjaHJvbWUKKyAgICAgICAgICAgICAgICBj
aGFubmVsOiBkZXYKKyAgICAgICAgICAgICAgdXNlOgorICAgICAgICAgICAgICAgIC0gdHJpZ2dl
ci1tYXN0ZXIKKyAgICAgICAgICAgICAgICAtIHRyaWdnZXItcHVzaAorICAgICAgICAgICAgLSB2
YXJzOgorICAgICAgICAgICAgICAgIGJyb3dzZXI6IGNocm9tZQorICAgICAgICAgICAgICAgIGNo
YW5uZWw6IGJldGEKKyAgICAgICAgICAgICAgdXNlOgorICAgICAgICAgICAgICAgIC0gdHJpZ2dl
ci13ZWVrbHkKKyAgICAgICAgICAgICAgICAtIHRyaWdnZXItcHVzaAorICAgICAgICAgICAgLSB2
YXJzOgorICAgICAgICAgICAgICAgIGJyb3dzZXI6IGNocm9tZQorICAgICAgICAgICAgICAgIGNo
YW5uZWw6IHN0YWJsZQorICAgICAgICAgICAgICB1c2U6CisgICAgICAgICAgICAgICAgLSB0cmln
Z2VyLWRhaWx5CisgICAgICAgICAgICAgICAgLSB0cmlnZ2VyLXB1c2gKKyAgICAgICAgICAgIC0g
dmFyczoKKyAgICAgICAgICAgICAgICBicm93c2VyOiB3ZWJraXRndGtfbWluaWJyb3dzZXIKKyAg
ICAgICAgICAgICAgICBjaGFubmVsOiBuaWdodGx5CisgICAgICAgICAgICAgIHVzZToKKyAgICAg
ICAgICAgICAgICAtIHRyaWdnZXItZGFpbHkKKyAgICAgICAgICAgICAgICAtIHRyaWdnZXItcHVz
aAorICAgICAgICAgICAgLSB2YXJzOgorICAgICAgICAgICAgICAgIGJyb3dzZXI6IHdlYmtpdGd0
a19taW5pYnJvd3NlcgorICAgICAgICAgICAgICAgIGNoYW5uZWw6IHN0YWJsZQorICAgICAgICAg
ICAgICB1c2U6CisgICAgICAgICAgICAgICAgLSB0cmlnZ2VyLXdlZWtseQorICAgICAgICAgICAg
ICAgIC0gdHJpZ2dlci1wdXNoCisKKyAgICAgICAgICBkbzoKKyAgICAgICAgICAgIC0gJHt2YXJz
LmJyb3dzZXJ9LSR7dmFycy5jaGFubmVsfS0ke3ZhcnMuc3VpdGV9OgorICAgICAgICAgICAgICAg
IHVzZToKKyAgICAgICAgICAgICAgICAgIC0gd3B0LWJhc2UKKyAgICAgICAgICAgICAgICAgIC0g
cnVuLW9wdGlvbnMKKyAgICAgICAgICAgICAgICAgIC0gd3B0LXJ1bgorICAgICAgICAgICAgICAg
ICAgLSBicm93c2VyLSR7dmFycy5icm93c2VyfQorICAgICAgICAgICAgICAgICAgLSB3cHQtJHt2
YXJzLnN1aXRlfQorICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiA+LQorICAgICAgICAgICAg
ICAgICAgQSBzdWJzZXQgb2YgV1BUJ3MgIiR7dmFycy5zdWl0ZX0iIHRlc3RzIChjaHVuayBudW1i
ZXIgJHtjaHVua3MuaWR9CisgICAgICAgICAgICAgICAgICBvZiAke2NodW5rcy50b3RhbH0pLCBy
dW4gaW4gdGhlICR7dmFycy5jaGFubmVsfSByZWxlYXNlIG9mCisgICAgICAgICAgICAgICAgICAk
e3ZhcnMuYnJvd3Nlcn0uCisKKyAgLSAkbWFwOgorICAgICAgZm9yOgorICAgICAgICAtIHZhcnM6
CisgICAgICAgICAgICBicm93c2VyOiBmaXJlZm94CisgICAgICAgICAgICBjaGFubmVsOiBuaWdo
dGx5CisgICAgICAgIC0gdmFyczoKKyAgICAgICAgICAgIGJyb3dzZXI6IGNocm9tZQorICAgICAg
ICAgICAgY2hhbm5lbDogZGV2CisgICAgICBkbzoKKyAgICAgICAgLSB3cHQtJHt2YXJzLmJyb3dz
ZXJ9LSR7dmFycy5jaGFubmVsfS1zdGFiaWxpdHk6CisgICAgICAgICAgICB1c2U6CisgICAgICAg
ICAgICAgIC0gd3B0LWJhc2UKKyAgICAgICAgICAgICAgLSBydW4tb3B0aW9ucworICAgICAgICAg
ICAgICAtIGJyb3dzZXItJHt2YXJzLmJyb3dzZXJ9CisgICAgICAgICAgICAgIC0gdHJpZ2dlci1w
cgorICAgICAgICAgICAgICAtIHRlc3RzLWFmZmVjdGVkCisgICAgICAgICAgICBkZXNjcmlwdGlv
bjogPi0KKyAgICAgICAgICAgICAgVmVyaWZ5IHRoYXQgYWxsIHRlc3RzIGFmZmVjdGVkIGJ5IGEg
cHVsbCByZXF1ZXN0IGFyZSBzdGFibGUKKyAgICAgICAgICAgICAgd2hlbiBleGVjdXRlZCBpbiAk
e3ZhcnMuYnJvd3Nlcn0uCisgICAgICAgICAgICBjb21tYW5kOiA+LQorICAgICAgICAgICAgICAu
L3Rvb2xzL2NpL3Rhc2tjbHVzdGVyLXJ1bi5weQorICAgICAgICAgICAgICAtLWNvbW1pdC1yYW5n
ZSBiYXNlX2hlYWQKKyAgICAgICAgICAgICAgJHt2YXJzLmJyb3dzZXJ9CisgICAgICAgICAgICAg
IC0tCisgICAgICAgICAgICAgIC0tY2hhbm5lbD0ke3ZhcnMuY2hhbm5lbH0KKyAgICAgICAgICAg
ICAgLS12ZXJpZnkKKworICAgICAgICAtIHdwdC0ke3ZhcnMuYnJvd3Nlcn0tJHt2YXJzLmNoYW5u
ZWx9LXJlc3VsdHM6CisgICAgICAgICAgICB1c2U6CisgICAgICAgICAgICAgIC0gd3B0LWJhc2UK
KyAgICAgICAgICAgICAgLSBydW4tb3B0aW9ucworICAgICAgICAgICAgICAtIGJyb3dzZXItJHt2
YXJzLmJyb3dzZXJ9CisgICAgICAgICAgICAgIC0gdHJpZ2dlci1wcgorICAgICAgICAgICAgICAt
IHRlc3RzLWFmZmVjdGVkCisgICAgICAgICAgICBkZXNjcmlwdGlvbjogPi0KKyAgICAgICAgICAg
ICAgQ29sbGVjdCByZXN1bHRzIGZvciBhbGwgdGVzdHMgYWZmZWN0ZWQgYnkgYSBwdWxsIHJlcXVl
c3QgaW4KKyAgICAgICAgICAgICAgJHt2YXJzLmJyb3dzZXJ9LgorICAgICAgICAgICAgY29tbWFu
ZDogPi0KKyAgICAgICAgICAgICAgLi90b29scy9jaS90YXNrY2x1c3Rlci1ydW4ucHkKKyAgICAg
ICAgICAgICAgLS1jb21taXQtcmFuZ2UgYmFzZV9oZWFkCisgICAgICAgICAgICAgICR7dmFycy5i
cm93c2VyfQorICAgICAgICAgICAgICAtLQorICAgICAgICAgICAgICAtLWNoYW5uZWw9JHt2YXJz
LmNoYW5uZWx9CisgICAgICAgICAgICAgIC0tbm8tZmFpbC1vbi11bmV4cGVjdGVkCisgICAgICAg
ICAgICAgIC0tbG9nLXdwdHJlcG9ydD0uLi9hcnRpZmFjdHMvd3B0X3JlcG9ydC5qc29uCisgICAg
ICAgICAgICAgIC0tbG9nLXdwdHNjcmVlbnNob3Q9Li4vYXJ0aWZhY3RzL3dwdF9zY3JlZW5zaG90
LnR4dAorCisgICAgICAgIC0gd3B0LSR7dmFycy5icm93c2VyfS0ke3ZhcnMuY2hhbm5lbH0tcmVz
dWx0cy13aXRob3V0LWNoYW5nZXM6CisgICAgICAgICAgICB1c2U6CisgICAgICAgICAgICAgIC0g
d3B0LWJhc2UKKyAgICAgICAgICAgICAgLSBydW4tb3B0aW9ucworICAgICAgICAgICAgICAtIGJy
b3dzZXItJHt2YXJzLmJyb3dzZXJ9CisgICAgICAgICAgICAgIC0gdHJpZ2dlci1wcgorICAgICAg
ICAgICAgICAtIHRlc3RzLWFmZmVjdGVkCisgICAgICAgICAgICBvcHRpb25zOgorICAgICAgICAg
ICAgICBjaGVja291dDogYmFzZV9oZWFkCisgICAgICAgICAgICBkZXNjcmlwdGlvbjogPi0KKyAg
ICAgICAgICAgICAgQ29sbGVjdCByZXN1bHRzIGZvciBhbGwgdGVzdHMgYWZmZWN0ZWQgYnkgYSBw
dWxsIHJlcXVlc3QgaW4KKyAgICAgICAgICAgICAgJHt2YXJzLmJyb3dzZXJ9IGJ1dCB3aXRob3V0
IHRoZSBjaGFuZ2VzIGluIHRoZSBQUi4KKyAgICAgICAgICAgIGNvbW1hbmQ6ID4tCisgICAgICAg
ICAgICAgIC4vdG9vbHMvY2kvdGFza2NsdXN0ZXItcnVuLnB5CisgICAgICAgICAgICAgIC0tY29t
bWl0LXJhbmdlIHRhc2tfaGVhZAorICAgICAgICAgICAgICAke3ZhcnMuYnJvd3Nlcn0KKyAgICAg
ICAgICAgICAgLS0KKyAgICAgICAgICAgICAgLS1jaGFubmVsPSR7dmFycy5jaGFubmVsfQorICAg
ICAgICAgICAgICAtLW5vLWZhaWwtb24tdW5leHBlY3RlZAorICAgICAgICAgICAgICAtLWxvZy13
cHRyZXBvcnQ9Li4vYXJ0aWZhY3RzL3dwdF9yZXBvcnQuanNvbgorICAgICAgICAgICAgICAtLWxv
Zy13cHRzY3JlZW5zaG90PS4uL2FydGlmYWN0cy93cHRfc2NyZWVuc2hvdC50eHQKKyAgLSAkbWFw
OgorICAgICAgZm9yOgorICAgICAgICAtIHZhcnM6CisgICAgICAgICAgICBjaGFubmVsOiBuaWdo
dGx5CisgICAgICAgIC0gdmFyczoKKyAgICAgICAgICAgIGNoYW5uZWw6IGJldGEKKyAgICAgICAg
LSB2YXJzOgorICAgICAgICAgICAgY2hhbm5lbDogc3RhYmxlCisgICAgICBkbzoKKyAgICAgICAg
ZG93bmxvYWQtZmlyZWZveC0ke3ZhcnMuY2hhbm5lbH06CisgICAgICAgICAgdXNlOgorICAgICAg
ICAgICAgLSB3cHQtYmFzZQorICAgICAgICAgIGNvbW1hbmQ6ICIuL3dwdCBpbnN0YWxsIC0tZG93
bmxvYWQtb25seSAtLWRlc3RpbmF0aW9uIC9ob21lL3Rlc3QvYXJ0aWZhY3RzLyAtLWNoYW5uZWw9
JHt2YXJzLmNoYW5uZWx9IGZpcmVmb3ggYnJvd3NlciIKKworICAtIGxpbnQ6CisgICAgICB1c2U6
CisgICAgICAgIC0gd3B0LWJhc2UKKyAgICAgICAgLSB0cmlnZ2VyLW1hc3RlcgorICAgICAgICAt
IHRyaWdnZXItcHIKKyAgICAgIGRlc2NyaXB0aW9uOiA+LQorICAgICAgICBMaW50IGZvciB3cHQt
c3BlY2lmaWMgcmVxdWlyZW1lbnRzCisgICAgICBjb21tYW5kOiAiLi93cHQgbGludCAtLWFsbCIK
KworICAtIHVwZGF0ZS1idWlsdDoKKyAgICAgIHVzZToKKyAgICAgICAgLSB3cHQtYmFzZQorICAg
ICAgICAtIHRyaWdnZXItcHIKKyAgICAgIHNjaGVkdWxlLWlmOgorICAgICAgICBydW4tam9iOgor
ICAgICAgICAgIC0gdXBkYXRlX2J1aWx0CisgICAgICBjb21tYW5kOiAiLi90b29scy9jaS9jaV9i
dWlsdF9kaWZmLnNoIgorCisgIC0gdG9vbHMvIHVuaXR0ZXN0cyAoUHl0aG9uIDIpOgorICAgICAg
dXNlOgorICAgICAgICAtIHdwdC1iYXNlCisgICAgICAgIC0gdHJpZ2dlci1wcgorICAgICAgICAt
IHRveC1weXRob24yCisgICAgICBkZXNjcmlwdGlvbjogPi0KKyAgICAgICAgVW5pdCB0ZXN0cyBm
b3IgdG9vbHMgcnVubmluZyB1bmRlciBQeXRob24gMi43LCBleGNsdWRpbmcgd3B0cnVubmVyCisg
ICAgICBjb21tYW5kOiAuL3Rvb2xzL2NpL2NpX3Rvb2xzX3VuaXR0ZXN0LnNoCisgICAgICBlbnY6
CisgICAgICAgIEhZUE9USEVTSVNfUFJPRklMRTogY2kKKyAgICAgIHNjaGVkdWxlLWlmOgorICAg
ICAgICBydW4tam9iOgorICAgICAgICAgIC0gdG9vbHNfdW5pdHRlc3QKKworICAtIHRvb2xzLyB1
bml0dGVzdHMgKFB5dGhvbiAzKToKKyAgICAgIGRlc2NyaXB0aW9uOiA+LQorICAgICAgICBVbml0
IHRlc3RzIGZvciB0b29scyBydW5uaW5nIHVuZGVyIFB5dGhvbiAzLCBleGNsdWRpbmcgd3B0cnVu
bmVyCisgICAgICB1c2U6CisgICAgICAgIC0gd3B0LWJhc2UKKyAgICAgICAgLSB0cmlnZ2VyLXBy
CisgICAgICAgIC0gdG94LXB5dGhvbjMKKyAgICAgIGNvbW1hbmQ6IC4vdG9vbHMvY2kvY2lfdG9v
bHNfdW5pdHRlc3Quc2gKKyAgICAgIGVudjoKKyAgICAgICAgSFlQT1RIRVNJU19QUk9GSUxFOiBj
aQorICAgICAgc2NoZWR1bGUtaWY6CisgICAgICAgIHJ1bi1qb2I6CisgICAgICAgICAgLSB0b29s
c191bml0dGVzdAorCisgIC0gdG9vbHMvd3B0LyB0ZXN0czoKKyAgICAgIGRlc2NyaXB0aW9uOiA+
LQorICAgICAgICBJbnRlZ3JhdGlvbiB0ZXN0cyBmb3Igd3B0IGNvbW1hbmRzCisgICAgICB1c2U6
CisgICAgICAgIC0gd3B0LWJhc2UKKyAgICAgICAgLSB0cmlnZ2VyLXByCisgICAgICAgIC0gdG94
LXB5dGhvbjIKKyAgICAgIGNvbW1hbmQ6IC4vdG9vbHMvY2kvY2lfd3B0LnNoCisgICAgICBpbnN0
YWxsOgorICAgICAgICAtIGxpYm5zczMtdG9vbHMKKyAgICAgIG9wdGlvbnM6CisgICAgICAgIG9v
bS1raWxsZXI6IHRydWUKKyAgICAgICAgYnJvd3NlcjoKKyAgICAgICAgICAtIGZpcmVmb3gKKyAg
ICAgICAgICAtIGNocm9tZQorICAgICAgICBjaGFubmVsOiBleHBlcmltZW50YWwKKyAgICAgICAg
eHZmYjogdHJ1ZQorICAgICAgICBob3N0czogdHJ1ZQorICAgICAgc2NoZWR1bGUtaWY6CisgICAg
ICAgIHJ1bi1qb2I6CisgICAgICAgICAgLSB3cHRfaW50ZWdyYXRpb24KKworICAtIHJlc291cmNl
cy8gdGVzdHM6CisgICAgICBkZXNjcmlwdGlvbjogPi0KKyAgICAgICAgVGVzdHMgZm9yIHRlc3Ro
YXJuZXNzLmpzIGFuZCBvdGhlciBmaWxlcyBpbiByZXNvdXJjZXMvCisgICAgICB1c2U6CisgICAg
ICAgIC0gd3B0LWJhc2UKKyAgICAgICAgLSB0cmlnZ2VyLXByCisgICAgICAgIC0gdG94LXB5dGhv
bjIKKyAgICAgIGNvbW1hbmQ6IC4vdG9vbHMvY2kvY2lfcmVzb3VyY2VzX3VuaXR0ZXN0LnNoCisg
ICAgICBvcHRpb25zOgorICAgICAgICBicm93c2VyOgorICAgICAgICAgIC0gZmlyZWZveAorICAg
ICAgICB4dmZiOiB0cnVlCisgICAgICAgIGhvc3RzOiB0cnVlCisgICAgICBzY2hlZHVsZS1pZjoK
KyAgICAgICAgcnVuLWpvYjoKKyAgICAgICAgICAtIHJlc291cmNlc191bml0dGVzdAorCisgIC0g
aW5mcmFzdHJ1Y3R1cmUvIHRlc3RzOgorICAgICAgZGVzY3JpcHRpb246ID4tCisgICAgICAgIFNt
b2tldGVzdHMgZm9yIHdwdHJ1bm5lcgorICAgICAgdXNlOgorICAgICAgICAtIHdwdC1iYXNlCisg
ICAgICAgIC0gdHJpZ2dlci1wcgorICAgICAgICAtIHRveC1weXRob24yCisgICAgICBjb21tYW5k
OiAuL3Rvb2xzL2NpL2NpX3dwdHJ1bm5lcl9pbmZyYXN0cnVjdHVyZS5zaAorICAgICAgaW5zdGFs
bDoKKyAgICAgICAgLSBsaWJuc3MzLXRvb2xzCisgICAgICAgIC0gbGliYXBwaW5kaWNhdG9yMQor
ICAgICAgICAtIGZvbnRzLWxpYmVyYXRpb24KKyAgICAgIG9wdGlvbnM6CisgICAgICAgIG9vbS1r
aWxsZXI6IHRydWUKKyAgICAgICAgYnJvd3NlcjoKKyAgICAgICAgICAtIGZpcmVmb3gKKyAgICAg
ICAgICAtIGNocm9tZQorICAgICAgICBjaGFubmVsOiBleHBlcmltZW50YWwKKyAgICAgICAgeHZm
YjogdHJ1ZQorICAgICAgICBob3N0czogZmFsc2UKKyAgICAgIHNjaGVkdWxlLWlmOgorICAgICAg
ICBydW4tam9iOgorICAgICAgICAgIC0gd3B0cnVubmVyX2luZnJhc3RydWN0dXJlCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2Np
L3RjL3Rlc3RkYXRhL21hc3Rlcl9wdXNoX2V2ZW50Lmpzb24gYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2NpL3RjL3Rlc3RkYXRhL21hc3Rlcl9wdXNo
X2V2ZW50Lmpzb24KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOGU3OWY3NTM3MzQ5YTc5ZmQ3MDc0NmFiNmUzNzE4OTdh
Y2M0ZDVlMQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvY2kvdGMvdGVzdGRhdGEvbWFzdGVyX3B1c2hfZXZlbnQuanNv
bgpAQCAtMCwwICsxLDIxNCBAQAoreworICAicmVmIjogInJlZnMvaGVhZHMvbWFzdGVyIiwKKyAg
ImJlZm9yZSI6ICJhNGJmYTI1YmZjMzVlNmRkOGFhYmY5YmM1YWY3MTRiZjNkNzBkNzEyIiwKKyAg
ImFmdGVyIjogIjViYWVmNzAyYzI2Yjg1ODBmNWE0ZTVlMWEzNGFjNzViYjlkNDk2YWUiLAorICAi
Y3JlYXRlZCI6IGZhbHNlLAorICAiZGVsZXRlZCI6IGZhbHNlLAorICAiZm9yY2VkIjogZmFsc2Us
CisgICJiYXNlX3JlZiI6IG51bGwsCisgICJjb21wYXJlIjogImh0dHBzOi8vZ2l0aHViLmNvbS93
ZWItcGxhdGZvcm0tdGVzdHMvd3B0L2NvbXBhcmUvYTRiZmEyNWJmYzM1Li4uNWJhZWY3MDJjMjZi
IiwKKyAgImNvbW1pdHMiOiBbCisgICAgeworICAgICAgImlkIjogIjViYWVmNzAyYzI2Yjg1ODBm
NWE0ZTVlMWEzNGFjNzViYjlkNDk2YWUiLAorICAgICAgInRyZWVfaWQiOiAiMDQ1OTQ5Y2QwNDU5
OGIxOWY1ZWQxYmViZjJkNWNiZWQ2NDdmM2M4NiIsCisgICAgICAiZGlzdGluY3QiOiB0cnVlLAor
ICAgICAgIm1lc3NhZ2UiOiAiQWRkIHN1cHBvcnQgZm9yIHZlcmlmeWluZyB0YXNrY2x1c3RlciBj
b25maWcgKCMxNTU5MylcblxuQWRkcyBhcyB3cHQgdGMtdmVyaWZ5IGNvbW1hbmQgdGhhdCB2ZXJp
ZmllcyB0aGF0IHRoZSBUYXNrQ2x1c3RlclxyXG5jb25maWcgaXMgYSB2YWxpZCB5YW1sIGZpbGUg
YW5kIGNvbXB1dGVzIHRoZSB0YXNrcyB0aGF0IHdpbGwgcnVuIG9uIGFcclxuUFIgc3luY2hyb25p
emUgZXZlbnQuIFRoaXMgY2FuIGJlIGV4cGFuZGVkIHRvIG1vcmUgZXZlbnRzIGFuZCBwdXNoZXNc
clxuaW4gdGhlIGZ1dHVyZS4iLAorICAgICAgInRpbWVzdGFtcCI6ICIyMDE5LTAzLTAxVDE0OjQz
OjA3WiIsCisgICAgICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxhdGZvcm0tdGVz
dHMvd3B0L2NvbW1pdC81YmFlZjcwMmMyNmI4NTgwZjVhNGU1ZTFhMzRhYzc1YmI5ZDQ5NmFlIiwK
KyAgICAgICJhdXRob3IiOiB7CisgICAgICAgICJuYW1lIjogImpncmFoYW0iLAorICAgICAgICAi
ZW1haWwiOiAiamFtZXNAaG9wcGlwb2xsYS5jby51ayIsCisgICAgICAgICJ1c2VybmFtZSI6ICJq
Z3JhaGFtIgorICAgICAgfSwKKyAgICAgICJjb21taXR0ZXIiOiB7CisgICAgICAgICJuYW1lIjog
IkdpdEh1YiIsCisgICAgICAgICJlbWFpbCI6ICJub3JlcGx5QGdpdGh1Yi5jb20iLAorICAgICAg
ICAidXNlcm5hbWUiOiAid2ViLWZsb3ciCisgICAgICB9LAorICAgICAgImFkZGVkIjogWworICAg
ICAgICAidG9vbHMvdGFza2NsdXN0ZXIvX19pbml0X18ucHkiLAorICAgICAgICAidG9vbHMvdGFz
a2NsdXN0ZXIvY29tbWFuZHMuanNvbiIsCisgICAgICAgICJ0b29scy90YXNrY2x1c3Rlci90ZXN0
ZGF0YS9wcl9ldmVudC5qc29uIiwKKyAgICAgICAgInRvb2xzL3Rhc2tjbHVzdGVyL3ZlcmlmeS5w
eSIKKyAgICAgIF0sCisgICAgICAicmVtb3ZlZCI6IFsKKworICAgICAgXSwKKyAgICAgICJtb2Rp
ZmllZCI6IFsKKyAgICAgICAgInRvb2xzL3dwdC9wYXRocyIKKyAgICAgIF0KKyAgICB9CisgIF0s
CisgICJoZWFkX2NvbW1pdCI6IHsKKyAgICAiaWQiOiAiNWJhZWY3MDJjMjZiODU4MGY1YTRlNWUx
YTM0YWM3NWJiOWQ0OTZhZSIsCisgICAgInRyZWVfaWQiOiAiMDQ1OTQ5Y2QwNDU5OGIxOWY1ZWQx
YmViZjJkNWNiZWQ2NDdmM2M4NiIsCisgICAgImRpc3RpbmN0IjogdHJ1ZSwKKyAgICAibWVzc2Fn
ZSI6ICJBZGQgc3VwcG9ydCBmb3IgdmVyaWZ5aW5nIHRhc2tjbHVzdGVyIGNvbmZpZyAoIzE1NTkz
KVxuXG5BZGRzIGFzIHdwdCB0Yy12ZXJpZnkgY29tbWFuZCB0aGF0IHZlcmlmaWVzIHRoYXQgdGhl
IFRhc2tDbHVzdGVyXHJcbmNvbmZpZyBpcyBhIHZhbGlkIHlhbWwgZmlsZSBhbmQgY29tcHV0ZXMg
dGhlIHRhc2tzIHRoYXQgd2lsbCBydW4gb24gYVxyXG5QUiBzeW5jaHJvbml6ZSBldmVudC4gVGhp
cyBjYW4gYmUgZXhwYW5kZWQgdG8gbW9yZSBldmVudHMgYW5kIHB1c2hlc1xyXG5pbiB0aGUgZnV0
dXJlLiIsCisgICAgInRpbWVzdGFtcCI6ICIyMDE5LTAzLTAxVDE0OjQzOjA3WiIsCisgICAgInVy
bCI6ICJodHRwczovL2dpdGh1Yi5jb20vd2ViLXBsYXRmb3JtLXRlc3RzL3dwdC9jb21taXQvNWJh
ZWY3MDJjMjZiODU4MGY1YTRlNWUxYTM0YWM3NWJiOWQ0OTZhZSIsCisgICAgImF1dGhvciI6IHsK
KyAgICAgICJuYW1lIjogImpncmFoYW0iLAorICAgICAgImVtYWlsIjogImphbWVzQGhvcHBpcG9s
bGEuY28udWsiLAorICAgICAgInVzZXJuYW1lIjogImpncmFoYW0iCisgICAgfSwKKyAgICAiY29t
bWl0dGVyIjogeworICAgICAgIm5hbWUiOiAiR2l0SHViIiwKKyAgICAgICJlbWFpbCI6ICJub3Jl
cGx5QGdpdGh1Yi5jb20iLAorICAgICAgInVzZXJuYW1lIjogIndlYi1mbG93IgorICAgIH0sCisg
ICAgImFkZGVkIjogWworICAgICAgInRvb2xzL3Rhc2tjbHVzdGVyL19faW5pdF9fLnB5IiwKKyAg
ICAgICJ0b29scy90YXNrY2x1c3Rlci9jb21tYW5kcy5qc29uIiwKKyAgICAgICJ0b29scy90YXNr
Y2x1c3Rlci90ZXN0ZGF0YS9wcl9ldmVudC5qc29uIiwKKyAgICAgICJ0b29scy90YXNrY2x1c3Rl
ci92ZXJpZnkucHkiCisgICAgXSwKKyAgICAicmVtb3ZlZCI6IFsKKworICAgIF0sCisgICAgIm1v
ZGlmaWVkIjogWworICAgICAgInRvb2xzL3dwdC9wYXRocyIKKyAgICBdCisgIH0sCisgICJyZXBv
c2l0b3J5IjogeworICAgICJpZCI6IDM2MTgxMzMsCisgICAgIm5vZGVfaWQiOiAiTURFd09sSmxj
Rzl6YVhSdmNua3pOakU0TVRNeiIsCisgICAgIm5hbWUiOiAid3B0IiwKKyAgICAiZnVsbF9uYW1l
IjogIndlYi1wbGF0Zm9ybS10ZXN0cy93cHQiLAorICAgICJwcml2YXRlIjogZmFsc2UsCisgICAg
Im93bmVyIjogeworICAgICAgIm5hbWUiOiAid2ViLXBsYXRmb3JtLXRlc3RzIiwKKyAgICAgICJl
bWFpbCI6ICIiLAorICAgICAgImxvZ2luIjogIndlYi1wbGF0Zm9ybS10ZXN0cyIsCisgICAgICAi
aWQiOiAzNzIyNjIzMywKKyAgICAgICJub2RlX2lkIjogIk1ERXlPazl5WjJGdWFYcGhkR2x2YmpN
M01qSTJNak16IiwKKyAgICAgICJhdmF0YXJfdXJsIjogImh0dHBzOi8vYXZhdGFyczAuZ2l0aHVi
dXNlcmNvbnRlbnQuY29tL3UvMzcyMjYyMzM/dj00IiwKKyAgICAgICJncmF2YXRhcl9pZCI6ICIi
LAorICAgICAgInVybCI6ICJodHRwczovL2FwaS5naXRodWIuY29tL3VzZXJzL3dlYi1wbGF0Zm9y
bS10ZXN0cyIsCisgICAgICAiaHRtbF91cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0
Zm9ybS10ZXN0cyIsCisgICAgICAiZm9sbG93ZXJzX3VybCI6ICJodHRwczovL2FwaS5naXRodWIu
Y29tL3VzZXJzL3dlYi1wbGF0Zm9ybS10ZXN0cy9mb2xsb3dlcnMiLAorICAgICAgImZvbGxvd2lu
Z191cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS91c2Vycy93ZWItcGxhdGZvcm0tdGVzdHMv
Zm9sbG93aW5ney9vdGhlcl91c2VyfSIsCisgICAgICAiZ2lzdHNfdXJsIjogImh0dHBzOi8vYXBp
LmdpdGh1Yi5jb20vdXNlcnMvd2ViLXBsYXRmb3JtLXRlc3RzL2dpc3Rzey9naXN0X2lkfSIsCisg
ICAgICAic3RhcnJlZF91cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS91c2Vycy93ZWItcGxh
dGZvcm0tdGVzdHMvc3RhcnJlZHsvb3duZXJ9ey9yZXBvfSIsCisgICAgICAic3Vic2NyaXB0aW9u
c191cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS91c2Vycy93ZWItcGxhdGZvcm0tdGVzdHMv
c3Vic2NyaXB0aW9ucyIsCisgICAgICAib3JnYW5pemF0aW9uc191cmwiOiAiaHR0cHM6Ly9hcGku
Z2l0aHViLmNvbS91c2Vycy93ZWItcGxhdGZvcm0tdGVzdHMvb3JncyIsCisgICAgICAicmVwb3Nf
dXJsIjogImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vdXNlcnMvd2ViLXBsYXRmb3JtLXRlc3RzL3Jl
cG9zIiwKKyAgICAgICJldmVudHNfdXJsIjogImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vdXNlcnMv
d2ViLXBsYXRmb3JtLXRlc3RzL2V2ZW50c3svcHJpdmFjeX0iLAorICAgICAgInJlY2VpdmVkX2V2
ZW50c191cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS91c2Vycy93ZWItcGxhdGZvcm0tdGVz
dHMvcmVjZWl2ZWRfZXZlbnRzIiwKKyAgICAgICJ0eXBlIjogIk9yZ2FuaXphdGlvbiIsCisgICAg
ICAic2l0ZV9hZG1pbiI6IGZhbHNlCisgICAgfSwKKyAgICAiaHRtbF91cmwiOiAiaHR0cHM6Ly9n
aXRodWIuY29tL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQiLAorICAgICJkZXNjcmlwdGlvbiI6ICJU
ZXN0IHN1aXRlcyBmb3IgV2ViIHBsYXRmb3JtIHNwZWNzIOKAlCBpbmNsdWRpbmcgV0hBVFdHLCBX
M0MsIGFuZCBvdGhlcnMiLAorICAgICJmb3JrIjogZmFsc2UsCisgICAgInVybCI6ICJodHRwczov
L2dpdGh1Yi5jb20vd2ViLXBsYXRmb3JtLXRlc3RzL3dwdCIsCisgICAgImZvcmtzX3VybCI6ICJo
dHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQvZm9ya3Mi
LAorICAgICJrZXlzX3VybCI6ICJodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zL3dlYi1wbGF0
Zm9ybS10ZXN0cy93cHQva2V5c3sva2V5X2lkfSIsCisgICAgImNvbGxhYm9yYXRvcnNfdXJsIjog
Imh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dwdC9jb2xs
YWJvcmF0b3Jzey9jb2xsYWJvcmF0b3J9IiwKKyAgICAidGVhbXNfdXJsIjogImh0dHBzOi8vYXBp
LmdpdGh1Yi5jb20vcmVwb3Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dwdC90ZWFtcyIsCisgICAgImhv
b2tzX3VybCI6ICJodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zL3dlYi1wbGF0Zm9ybS10ZXN0
cy93cHQvaG9va3MiLAorICAgICJpc3N1ZV9ldmVudHNfdXJsIjogImh0dHBzOi8vYXBpLmdpdGh1
Yi5jb20vcmVwb3Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dwdC9pc3N1ZXMvZXZlbnRzey9udW1iZXJ9
IiwKKyAgICAiZXZlbnRzX3VybCI6ICJodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zL3dlYi1w
bGF0Zm9ybS10ZXN0cy93cHQvZXZlbnRzIiwKKyAgICAiYXNzaWduZWVzX3VybCI6ICJodHRwczov
L2FwaS5naXRodWIuY29tL3JlcG9zL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQvYXNzaWduZWVzey91
c2VyfSIsCisgICAgImJyYW5jaGVzX3VybCI6ICJodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9z
L3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQvYnJhbmNoZXN7L2JyYW5jaH0iLAorICAgICJ0YWdzX3Vy
bCI6ICJodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQv
dGFncyIsCisgICAgImJsb2JzX3VybCI6ICJodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zL3dl
Yi1wbGF0Zm9ybS10ZXN0cy93cHQvZ2l0L2Jsb2Jzey9zaGF9IiwKKyAgICAiZ2l0X3RhZ3NfdXJs
IjogImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dwdC9n
aXQvdGFnc3svc2hhfSIsCisgICAgImdpdF9yZWZzX3VybCI6ICJodHRwczovL2FwaS5naXRodWIu
Y29tL3JlcG9zL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQvZ2l0L3JlZnN7L3NoYX0iLAorICAgICJ0
cmVlc191cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy93ZWItcGxhdGZvcm0tdGVz
dHMvd3B0L2dpdC90cmVlc3svc2hhfSIsCisgICAgInN0YXR1c2VzX3VybCI6ICJodHRwczovL2Fw
aS5naXRodWIuY29tL3JlcG9zL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQvc3RhdHVzZXMve3NoYX0i
LAorICAgICJsYW5ndWFnZXNfdXJsIjogImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3dwdC9sYW5ndWFnZXMiLAorICAgICJzdGFyZ2F6ZXJzX3VybCI6ICJo
dHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQvc3Rhcmdh
emVycyIsCisgICAgImNvbnRyaWJ1dG9yc191cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9y
ZXBvcy93ZWItcGxhdGZvcm0tdGVzdHMvd3B0L2NvbnRyaWJ1dG9ycyIsCisgICAgInN1YnNjcmli
ZXJzX3VybCI6ICJodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zL3dlYi1wbGF0Zm9ybS10ZXN0
cy93cHQvc3Vic2NyaWJlcnMiLAorICAgICJzdWJzY3JpcHRpb25fdXJsIjogImh0dHBzOi8vYXBp
LmdpdGh1Yi5jb20vcmVwb3Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dwdC9zdWJzY3JpcHRpb24iLAor
ICAgICJjb21taXRzX3VybCI6ICJodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zL3dlYi1wbGF0
Zm9ybS10ZXN0cy93cHQvY29tbWl0c3svc2hhfSIsCisgICAgImdpdF9jb21taXRzX3VybCI6ICJo
dHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQvZ2l0L2Nv
bW1pdHN7L3NoYX0iLAorICAgICJjb21tZW50c191cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNv
bS9yZXBvcy93ZWItcGxhdGZvcm0tdGVzdHMvd3B0L2NvbW1lbnRzey9udW1iZXJ9IiwKKyAgICAi
aXNzdWVfY29tbWVudF91cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy93ZWItcGxh
dGZvcm0tdGVzdHMvd3B0L2lzc3Vlcy9jb21tZW50c3svbnVtYmVyfSIsCisgICAgImNvbnRlbnRz
X3VybCI6ICJodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zL3dlYi1wbGF0Zm9ybS10ZXN0cy93
cHQvY29udGVudHMveytwYXRofSIsCisgICAgImNvbXBhcmVfdXJsIjogImh0dHBzOi8vYXBpLmdp
dGh1Yi5jb20vcmVwb3Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dwdC9jb21wYXJlL3tiYXNlfS4uLnto
ZWFkfSIsCisgICAgIm1lcmdlc191cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy93
ZWItcGxhdGZvcm0tdGVzdHMvd3B0L21lcmdlcyIsCisgICAgImFyY2hpdmVfdXJsIjogImh0dHBz
Oi8vYXBpLmdpdGh1Yi5jb20vcmVwb3Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dwdC97YXJjaGl2ZV9m
b3JtYXR9ey9yZWZ9IiwKKyAgICAiZG93bmxvYWRzX3VybCI6ICJodHRwczovL2FwaS5naXRodWIu
Y29tL3JlcG9zL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQvZG93bmxvYWRzIiwKKyAgICAiaXNzdWVz
X3VybCI6ICJodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zL3dlYi1wbGF0Zm9ybS10ZXN0cy93
cHQvaXNzdWVzey9udW1iZXJ9IiwKKyAgICAicHVsbHNfdXJsIjogImh0dHBzOi8vYXBpLmdpdGh1
Yi5jb20vcmVwb3Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dwdC9wdWxsc3svbnVtYmVyfSIsCisgICAg
Im1pbGVzdG9uZXNfdXJsIjogImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3dwdC9taWxlc3RvbmVzey9udW1iZXJ9IiwKKyAgICAibm90aWZpY2F0aW9uc191
cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy93ZWItcGxhdGZvcm0tdGVzdHMvd3B0
L25vdGlmaWNhdGlvbnN7P3NpbmNlLGFsbCxwYXJ0aWNpcGF0aW5nfSIsCisgICAgImxhYmVsc191
cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy93ZWItcGxhdGZvcm0tdGVzdHMvd3B0
L2xhYmVsc3svbmFtZX0iLAorICAgICJyZWxlYXNlc191cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHVi
LmNvbS9yZXBvcy93ZWItcGxhdGZvcm0tdGVzdHMvd3B0L3JlbGVhc2Vzey9pZH0iLAorICAgICJk
ZXBsb3ltZW50c191cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy93ZWItcGxhdGZv
cm0tdGVzdHMvd3B0L2RlcGxveW1lbnRzIiwKKyAgICAiY3JlYXRlZF9hdCI6IDEzMzA4NjU4OTEs
CisgICAgInVwZGF0ZWRfYXQiOiAiMjAxOS0wMy0wMVQxNDoxNjo1MloiLAorICAgICJwdXNoZWRf
YXQiOiAxNTUxNDUxMzg5LAorICAgICJnaXRfdXJsIjogImdpdDovL2dpdGh1Yi5jb20vd2ViLXBs
YXRmb3JtLXRlc3RzL3dwdC5naXQiLAorICAgICJzc2hfdXJsIjogImdpdEBnaXRodWIuY29tOndl
Yi1wbGF0Zm9ybS10ZXN0cy93cHQuZ2l0IiwKKyAgICAiY2xvbmVfdXJsIjogImh0dHBzOi8vZ2l0
aHViLmNvbS93ZWItcGxhdGZvcm0tdGVzdHMvd3B0LmdpdCIsCisgICAgInN2bl91cmwiOiAiaHR0
cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQiLAorICAgICJob21lcGFnZSI6
ICJodHRwOi8vaXJjLnczLm9yZy8/Y2hhbm5lbHM9dGVzdGluZyIsCisgICAgInNpemUiOiAzMjQ3
MjIsCisgICAgInN0YXJnYXplcnNfY291bnQiOiAyMDYwLAorICAgICJ3YXRjaGVyc19jb3VudCI6
IDIwNjAsCisgICAgImxhbmd1YWdlIjogIkhUTUwiLAorICAgICJoYXNfaXNzdWVzIjogdHJ1ZSwK
KyAgICAiaGFzX3Byb2plY3RzIjogdHJ1ZSwKKyAgICAiaGFzX2Rvd25sb2FkcyI6IHRydWUsCisg
ICAgImhhc193aWtpIjogdHJ1ZSwKKyAgICAiaGFzX3BhZ2VzIjogdHJ1ZSwKKyAgICAiZm9ya3Nf
Y291bnQiOiAxNjA1LAorICAgICJtaXJyb3JfdXJsIjogbnVsbCwKKyAgICAiYXJjaGl2ZWQiOiBm
YWxzZSwKKyAgICAib3Blbl9pc3N1ZXNfY291bnQiOiAxMzU1LAorICAgICJsaWNlbnNlIjogewor
ICAgICAgImtleSI6ICJvdGhlciIsCisgICAgICAibmFtZSI6ICJPdGhlciIsCisgICAgICAic3Bk
eF9pZCI6ICJOT0FTU0VSVElPTiIsCisgICAgICAidXJsIjogbnVsbCwKKyAgICAgICJub2RlX2lk
IjogIk1EYzZUR2xqWlc1elpUQT0iCisgICAgfSwKKyAgICAiZm9ya3MiOiAxNjA1LAorICAgICJv
cGVuX2lzc3VlcyI6IDEzNjYsCisgICAgIndhdGNoZXJzIjogMjA2MCwKKyAgICAiZGVmYXVsdF9i
cmFuY2giOiAibWFzdGVyIiwKKyAgICAic3RhcmdhemVycyI6IDIwNjAsCisgICAgIm1hc3Rlcl9i
cmFuY2giOiAibWFzdGVyIiwKKyAgICAib3JnYW5pemF0aW9uIjogIndlYi1wbGF0Zm9ybS10ZXN0
cyIKKyAgfSwKKyAgInB1c2hlciI6IHsKKyAgICAibmFtZSI6ICJqZ3JhaGFtIiwKKyAgICAiZW1h
aWwiOiAiamFtZXNAaG9wcGlwb2xsYS5jby51ayIKKyAgfSwKKyAgIm9yZ2FuaXphdGlvbiI6IHsK
KyAgICAibG9naW4iOiAid2ViLXBsYXRmb3JtLXRlc3RzIiwKKyAgICAiaWQiOiAzNzIyNjIzMywK
KyAgICAibm9kZV9pZCI6ICJNREV5T2s5eVoyRnVhWHBoZEdsdmJqTTNNakkyTWpNeiIsCisgICAg
InVybCI6ICJodHRwczovL2FwaS5naXRodWIuY29tL29yZ3Mvd2ViLXBsYXRmb3JtLXRlc3RzIiwK
KyAgICAicmVwb3NfdXJsIjogImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vb3Jncy93ZWItcGxhdGZv
cm0tdGVzdHMvcmVwb3MiLAorICAgICJldmVudHNfdXJsIjogImh0dHBzOi8vYXBpLmdpdGh1Yi5j
b20vb3Jncy93ZWItcGxhdGZvcm0tdGVzdHMvZXZlbnRzIiwKKyAgICAiaG9va3NfdXJsIjogImh0
dHBzOi8vYXBpLmdpdGh1Yi5jb20vb3Jncy93ZWItcGxhdGZvcm0tdGVzdHMvaG9va3MiLAorICAg
ICJpc3N1ZXNfdXJsIjogImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vb3Jncy93ZWItcGxhdGZvcm0t
dGVzdHMvaXNzdWVzIiwKKyAgICAibWVtYmVyc191cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNv
bS9vcmdzL3dlYi1wbGF0Zm9ybS10ZXN0cy9tZW1iZXJzey9tZW1iZXJ9IiwKKyAgICAicHVibGlj
X21lbWJlcnNfdXJsIjogImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vb3Jncy93ZWItcGxhdGZvcm0t
dGVzdHMvcHVibGljX21lbWJlcnN7L21lbWJlcn0iLAorICAgICJhdmF0YXJfdXJsIjogImh0dHBz
Oi8vYXZhdGFyczAuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMzcyMjYyMzM/dj00IiwKKyAgICAi
ZGVzY3JpcHRpb24iOiAiIgorICB9LAorICAic2VuZGVyIjogeworICAgICJsb2dpbiI6ICJqZ3Jh
aGFtIiwKKyAgICAiaWQiOiAyOTQ4NjQsCisgICAgIm5vZGVfaWQiOiAiTURRNlZYTmxjakk1TkRn
Mk5BPT0iLAorICAgICJhdmF0YXJfdXJsIjogImh0dHBzOi8vYXZhdGFyczEuZ2l0aHVidXNlcmNv
bnRlbnQuY29tL3UvMjk0ODY0P3Y9NCIsCisgICAgImdyYXZhdGFyX2lkIjogIiIsCisgICAgInVy
bCI6ICJodHRwczovL2FwaS5naXRodWIuY29tL3VzZXJzL2pncmFoYW0iLAorICAgICJodG1sX3Vy
bCI6ICJodHRwczovL2dpdGh1Yi5jb20vamdyYWhhbSIsCisgICAgImZvbGxvd2Vyc191cmwiOiAi
aHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS91c2Vycy9qZ3JhaGFtL2ZvbGxvd2VycyIsCisgICAgImZv
bGxvd2luZ191cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS91c2Vycy9qZ3JhaGFtL2ZvbGxv
d2luZ3svb3RoZXJfdXNlcn0iLAorICAgICJnaXN0c191cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHVi
LmNvbS91c2Vycy9qZ3JhaGFtL2dpc3Rzey9naXN0X2lkfSIsCisgICAgInN0YXJyZWRfdXJsIjog
Imh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vdXNlcnMvamdyYWhhbS9zdGFycmVkey9vd25lcn17L3Jl
cG99IiwKKyAgICAic3Vic2NyaXB0aW9uc191cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS91
c2Vycy9qZ3JhaGFtL3N1YnNjcmlwdGlvbnMiLAorICAgICJvcmdhbml6YXRpb25zX3VybCI6ICJo
dHRwczovL2FwaS5naXRodWIuY29tL3VzZXJzL2pncmFoYW0vb3JncyIsCisgICAgInJlcG9zX3Vy
bCI6ICJodHRwczovL2FwaS5naXRodWIuY29tL3VzZXJzL2pncmFoYW0vcmVwb3MiLAorICAgICJl
dmVudHNfdXJsIjogImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vdXNlcnMvamdyYWhhbS9ldmVudHN7
L3ByaXZhY3l9IiwKKyAgICAicmVjZWl2ZWRfZXZlbnRzX3VybCI6ICJodHRwczovL2FwaS5naXRo
dWIuY29tL3VzZXJzL2pncmFoYW0vcmVjZWl2ZWRfZXZlbnRzIiwKKyAgICAidHlwZSI6ICJVc2Vy
IiwKKyAgICAic2l0ZV9hZG1pbiI6IGZhbHNlCisgIH0KK30KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvY2kvdGMvdGVzdGRhdGEv
cHJfZXZlbnQuanNvbiBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvY2kvdGMvdGVzdGRhdGEvcHJfZXZlbnQuanNvbgpuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41YWNjMWE2
MDEwMjkxYzg4ZDI2ZjhjMTI1NzNhZWViOWQwYjMzZTk3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9jaS90Yy90ZXN0
ZGF0YS9wcl9ldmVudC5qc29uCkBAIC0wLDAgKzEsNTc3IEBACit7CisgICJhY3Rpb24iOiAic3lu
Y2hyb25pemUiLAorICAibnVtYmVyIjogMTU1NzQsCisgICJwdWxsX3JlcXVlc3QiOiB7CisgICAg
InVybCI6ICJodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zL3dlYi1wbGF0Zm9ybS10ZXN0cy93
cHQvcHVsbHMvMTU1NzQiLAorICAgICJpZCI6IDI1NjY1MzA2NSwKKyAgICAibm9kZV9pZCI6ICJN
REV4T2xCMWJHeFNaWEYxWlhOME1qVTJOalV6TURZMSIsCisgICAgImh0bWxfdXJsIjogImh0dHBz
Oi8vZ2l0aHViLmNvbS93ZWItcGxhdGZvcm0tdGVzdHMvd3B0L3B1bGwvMTU1NzQiLAorICAgICJk
aWZmX3VybCI6ICJodHRwczovL2dpdGh1Yi5jb20vd2ViLXBsYXRmb3JtLXRlc3RzL3dwdC9wdWxs
LzE1NTc0LmRpZmYiLAorICAgICJwYXRjaF91cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3dlYi1w
bGF0Zm9ybS10ZXN0cy93cHQvcHVsbC8xNTU3NC5wYXRjaCIsCisgICAgImlzc3VlX3VybCI6ICJo
dHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQvaXNzdWVz
LzE1NTc0IiwKKyAgICAibnVtYmVyIjogMTU1NzQsCisgICAgInN0YXRlIjogIm9wZW4iLAorICAg
ICJsb2NrZWQiOiBmYWxzZSwKKyAgICAidGl0bGUiOiAiTW92ZSB0aGUgbGludCBmcm9tIFRyYXZp
cyB0byBUYXNrQ2x1c3RlciIsCisgICAgInVzZXIiOiB7CisgICAgICAibG9naW4iOiAiamdyYWhh
bSIsCisgICAgICAiaWQiOiAyOTQ4NjQsCisgICAgICAibm9kZV9pZCI6ICJNRFE2VlhObGNqSTVO
RGcyTkE9PSIsCisgICAgICAiYXZhdGFyX3VybCI6ICJodHRwczovL2F2YXRhcnMxLmdpdGh1YnVz
ZXJjb250ZW50LmNvbS91LzI5NDg2ND92PTQiLAorICAgICAgImdyYXZhdGFyX2lkIjogIiIsCisg
ICAgICAidXJsIjogImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vdXNlcnMvamdyYWhhbSIsCisgICAg
ICAiaHRtbF91cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2pncmFoYW0iLAorICAgICAgImZvbGxv
d2Vyc191cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS91c2Vycy9qZ3JhaGFtL2ZvbGxvd2Vy
cyIsCisgICAgICAiZm9sbG93aW5nX3VybCI6ICJodHRwczovL2FwaS5naXRodWIuY29tL3VzZXJz
L2pncmFoYW0vZm9sbG93aW5ney9vdGhlcl91c2VyfSIsCisgICAgICAiZ2lzdHNfdXJsIjogImh0
dHBzOi8vYXBpLmdpdGh1Yi5jb20vdXNlcnMvamdyYWhhbS9naXN0c3svZ2lzdF9pZH0iLAorICAg
ICAgInN0YXJyZWRfdXJsIjogImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vdXNlcnMvamdyYWhhbS9z
dGFycmVkey9vd25lcn17L3JlcG99IiwKKyAgICAgICJzdWJzY3JpcHRpb25zX3VybCI6ICJodHRw
czovL2FwaS5naXRodWIuY29tL3VzZXJzL2pncmFoYW0vc3Vic2NyaXB0aW9ucyIsCisgICAgICAi
b3JnYW5pemF0aW9uc191cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS91c2Vycy9qZ3JhaGFt
L29yZ3MiLAorICAgICAgInJlcG9zX3VybCI6ICJodHRwczovL2FwaS5naXRodWIuY29tL3VzZXJz
L2pncmFoYW0vcmVwb3MiLAorICAgICAgImV2ZW50c191cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHVi
LmNvbS91c2Vycy9qZ3JhaGFtL2V2ZW50c3svcHJpdmFjeX0iLAorICAgICAgInJlY2VpdmVkX2V2
ZW50c191cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS91c2Vycy9qZ3JhaGFtL3JlY2VpdmVk
X2V2ZW50cyIsCisgICAgICAidHlwZSI6ICJVc2VyIiwKKyAgICAgICJzaXRlX2FkbWluIjogZmFs
c2UKKyAgICB9LAorICAgICJib2R5IjogIiIsCisgICAgImNyZWF0ZWRfYXQiOiAiMjAxOS0wMi0y
N1QxMjowMzozOFoiLAorICAgICJ1cGRhdGVkX2F0IjogIjIwMTktMDItMjhUMTM6NDM6MTdaIiwK
KyAgICAiY2xvc2VkX2F0IjogbnVsbCwKKyAgICAibWVyZ2VkX2F0IjogbnVsbCwKKyAgICAibWVy
Z2VfY29tbWl0X3NoYSI6ICI3MGEyNzIyOTZkYWQwZGI0ZjBiZTExMzNhNTlhYTk3ZjBhNzJkOWFj
IiwKKyAgICAiYXNzaWduZWUiOiB7CisgICAgICAibG9naW4iOiAiZ3NuZWRkZXJzIiwKKyAgICAg
ICJpZCI6IDE3NjIxOCwKKyAgICAgICJub2RlX2lkIjogIk1EUTZWWE5sY2pFM05qSXhPQT09IiwK
KyAgICAgICJhdmF0YXJfdXJsIjogImh0dHBzOi8vYXZhdGFyczIuZ2l0aHVidXNlcmNvbnRlbnQu
Y29tL3UvMTc2MjE4P3Y9NCIsCisgICAgICAiZ3JhdmF0YXJfaWQiOiAiIiwKKyAgICAgICJ1cmwi
OiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS91c2Vycy9nc25lZGRlcnMiLAorICAgICAgImh0bWxf
dXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9nc25lZGRlcnMiLAorICAgICAgImZvbGxvd2Vyc191
cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS91c2Vycy9nc25lZGRlcnMvZm9sbG93ZXJzIiwK
KyAgICAgICJmb2xsb3dpbmdfdXJsIjogImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vdXNlcnMvZ3Nu
ZWRkZXJzL2ZvbGxvd2luZ3svb3RoZXJfdXNlcn0iLAorICAgICAgImdpc3RzX3VybCI6ICJodHRw
czovL2FwaS5naXRodWIuY29tL3VzZXJzL2dzbmVkZGVycy9naXN0c3svZ2lzdF9pZH0iLAorICAg
ICAgInN0YXJyZWRfdXJsIjogImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vdXNlcnMvZ3NuZWRkZXJz
L3N0YXJyZWR7L293bmVyfXsvcmVwb30iLAorICAgICAgInN1YnNjcmlwdGlvbnNfdXJsIjogImh0
dHBzOi8vYXBpLmdpdGh1Yi5jb20vdXNlcnMvZ3NuZWRkZXJzL3N1YnNjcmlwdGlvbnMiLAorICAg
ICAgIm9yZ2FuaXphdGlvbnNfdXJsIjogImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vdXNlcnMvZ3Nu
ZWRkZXJzL29yZ3MiLAorICAgICAgInJlcG9zX3VybCI6ICJodHRwczovL2FwaS5naXRodWIuY29t
L3VzZXJzL2dzbmVkZGVycy9yZXBvcyIsCisgICAgICAiZXZlbnRzX3VybCI6ICJodHRwczovL2Fw
aS5naXRodWIuY29tL3VzZXJzL2dzbmVkZGVycy9ldmVudHN7L3ByaXZhY3l9IiwKKyAgICAgICJy
ZWNlaXZlZF9ldmVudHNfdXJsIjogImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vdXNlcnMvZ3NuZWRk
ZXJzL3JlY2VpdmVkX2V2ZW50cyIsCisgICAgICAidHlwZSI6ICJVc2VyIiwKKyAgICAgICJzaXRl
X2FkbWluIjogZmFsc2UKKyAgICB9LAorICAgICJhc3NpZ25lZXMiOiBbCisgICAgICB7CisgICAg
ICAgICJsb2dpbiI6ICJnc25lZGRlcnMiLAorICAgICAgICAiaWQiOiAxNzYyMTgsCisgICAgICAg
ICJub2RlX2lkIjogIk1EUTZWWE5sY2pFM05qSXhPQT09IiwKKyAgICAgICAgImF2YXRhcl91cmwi
OiAiaHR0cHM6Ly9hdmF0YXJzMi5naXRodWJ1c2VyY29udGVudC5jb20vdS8xNzYyMTg/dj00IiwK
KyAgICAgICAgImdyYXZhdGFyX2lkIjogIiIsCisgICAgICAgICJ1cmwiOiAiaHR0cHM6Ly9hcGku
Z2l0aHViLmNvbS91c2Vycy9nc25lZGRlcnMiLAorICAgICAgICAiaHRtbF91cmwiOiAiaHR0cHM6
Ly9naXRodWIuY29tL2dzbmVkZGVycyIsCisgICAgICAgICJmb2xsb3dlcnNfdXJsIjogImh0dHBz
Oi8vYXBpLmdpdGh1Yi5jb20vdXNlcnMvZ3NuZWRkZXJzL2ZvbGxvd2VycyIsCisgICAgICAgICJm
b2xsb3dpbmdfdXJsIjogImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vdXNlcnMvZ3NuZWRkZXJzL2Zv
bGxvd2luZ3svb3RoZXJfdXNlcn0iLAorICAgICAgICAiZ2lzdHNfdXJsIjogImh0dHBzOi8vYXBp
LmdpdGh1Yi5jb20vdXNlcnMvZ3NuZWRkZXJzL2dpc3Rzey9naXN0X2lkfSIsCisgICAgICAgICJz
dGFycmVkX3VybCI6ICJodHRwczovL2FwaS5naXRodWIuY29tL3VzZXJzL2dzbmVkZGVycy9zdGFy
cmVkey9vd25lcn17L3JlcG99IiwKKyAgICAgICAgInN1YnNjcmlwdGlvbnNfdXJsIjogImh0dHBz
Oi8vYXBpLmdpdGh1Yi5jb20vdXNlcnMvZ3NuZWRkZXJzL3N1YnNjcmlwdGlvbnMiLAorICAgICAg
ICAib3JnYW5pemF0aW9uc191cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS91c2Vycy9nc25l
ZGRlcnMvb3JncyIsCisgICAgICAgICJyZXBvc191cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNv
bS91c2Vycy9nc25lZGRlcnMvcmVwb3MiLAorICAgICAgICAiZXZlbnRzX3VybCI6ICJodHRwczov
L2FwaS5naXRodWIuY29tL3VzZXJzL2dzbmVkZGVycy9ldmVudHN7L3ByaXZhY3l9IiwKKyAgICAg
ICAgInJlY2VpdmVkX2V2ZW50c191cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS91c2Vycy9n
c25lZGRlcnMvcmVjZWl2ZWRfZXZlbnRzIiwKKyAgICAgICAgInR5cGUiOiAiVXNlciIsCisgICAg
ICAgICJzaXRlX2FkbWluIjogZmFsc2UKKyAgICAgIH0KKyAgICBdLAorICAgICJyZXF1ZXN0ZWRf
cmV2aWV3ZXJzIjogWworICAgICAgeworICAgICAgICAibG9naW4iOiAiZ3NuZWRkZXJzIiwKKyAg
ICAgICAgImlkIjogMTc2MjE4LAorICAgICAgICAibm9kZV9pZCI6ICJNRFE2VlhObGNqRTNOakl4
T0E9PSIsCisgICAgICAgICJhdmF0YXJfdXJsIjogImh0dHBzOi8vYXZhdGFyczIuZ2l0aHVidXNl
cmNvbnRlbnQuY29tL3UvMTc2MjE4P3Y9NCIsCisgICAgICAgICJncmF2YXRhcl9pZCI6ICIiLAor
ICAgICAgICAidXJsIjogImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vdXNlcnMvZ3NuZWRkZXJzIiwK
KyAgICAgICAgImh0bWxfdXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9nc25lZGRlcnMiLAorICAg
ICAgICAiZm9sbG93ZXJzX3VybCI6ICJodHRwczovL2FwaS5naXRodWIuY29tL3VzZXJzL2dzbmVk
ZGVycy9mb2xsb3dlcnMiLAorICAgICAgICAiZm9sbG93aW5nX3VybCI6ICJodHRwczovL2FwaS5n
aXRodWIuY29tL3VzZXJzL2dzbmVkZGVycy9mb2xsb3dpbmd7L290aGVyX3VzZXJ9IiwKKyAgICAg
ICAgImdpc3RzX3VybCI6ICJodHRwczovL2FwaS5naXRodWIuY29tL3VzZXJzL2dzbmVkZGVycy9n
aXN0c3svZ2lzdF9pZH0iLAorICAgICAgICAic3RhcnJlZF91cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0
aHViLmNvbS91c2Vycy9nc25lZGRlcnMvc3RhcnJlZHsvb3duZXJ9ey9yZXBvfSIsCisgICAgICAg
ICJzdWJzY3JpcHRpb25zX3VybCI6ICJodHRwczovL2FwaS5naXRodWIuY29tL3VzZXJzL2dzbmVk
ZGVycy9zdWJzY3JpcHRpb25zIiwKKyAgICAgICAgIm9yZ2FuaXphdGlvbnNfdXJsIjogImh0dHBz
Oi8vYXBpLmdpdGh1Yi5jb20vdXNlcnMvZ3NuZWRkZXJzL29yZ3MiLAorICAgICAgICAicmVwb3Nf
dXJsIjogImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vdXNlcnMvZ3NuZWRkZXJzL3JlcG9zIiwKKyAg
ICAgICAgImV2ZW50c191cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS91c2Vycy9nc25lZGRl
cnMvZXZlbnRzey9wcml2YWN5fSIsCisgICAgICAgICJyZWNlaXZlZF9ldmVudHNfdXJsIjogImh0
dHBzOi8vYXBpLmdpdGh1Yi5jb20vdXNlcnMvZ3NuZWRkZXJzL3JlY2VpdmVkX2V2ZW50cyIsCisg
ICAgICAgICJ0eXBlIjogIlVzZXIiLAorICAgICAgICAic2l0ZV9hZG1pbiI6IGZhbHNlCisgICAg
ICB9LAorICAgICAgeworICAgICAgICAibG9naW4iOiAianVnZ2xpbm1pa2UiLAorICAgICAgICAi
aWQiOiA2NzcyNTIsCisgICAgICAgICJub2RlX2lkIjogIk1EUTZWWE5sY2pZM056STFNZz09IiwK
KyAgICAgICAgImF2YXRhcl91cmwiOiAiaHR0cHM6Ly9hdmF0YXJzMi5naXRodWJ1c2VyY29udGVu
dC5jb20vdS82NzcyNTI/dj00IiwKKyAgICAgICAgImdyYXZhdGFyX2lkIjogIiIsCisgICAgICAg
ICJ1cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS91c2Vycy9qdWdnbGlubWlrZSIsCisgICAg
ICAgICJodG1sX3VybCI6ICJodHRwczovL2dpdGh1Yi5jb20vanVnZ2xpbm1pa2UiLAorICAgICAg
ICAiZm9sbG93ZXJzX3VybCI6ICJodHRwczovL2FwaS5naXRodWIuY29tL3VzZXJzL2p1Z2dsaW5t
aWtlL2ZvbGxvd2VycyIsCisgICAgICAgICJmb2xsb3dpbmdfdXJsIjogImh0dHBzOi8vYXBpLmdp
dGh1Yi5jb20vdXNlcnMvanVnZ2xpbm1pa2UvZm9sbG93aW5ney9vdGhlcl91c2VyfSIsCisgICAg
ICAgICJnaXN0c191cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS91c2Vycy9qdWdnbGlubWlr
ZS9naXN0c3svZ2lzdF9pZH0iLAorICAgICAgICAic3RhcnJlZF91cmwiOiAiaHR0cHM6Ly9hcGku
Z2l0aHViLmNvbS91c2Vycy9qdWdnbGlubWlrZS9zdGFycmVkey9vd25lcn17L3JlcG99IiwKKyAg
ICAgICAgInN1YnNjcmlwdGlvbnNfdXJsIjogImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vdXNlcnMv
anVnZ2xpbm1pa2Uvc3Vic2NyaXB0aW9ucyIsCisgICAgICAgICJvcmdhbml6YXRpb25zX3VybCI6
ICJodHRwczovL2FwaS5naXRodWIuY29tL3VzZXJzL2p1Z2dsaW5taWtlL29yZ3MiLAorICAgICAg
ICAicmVwb3NfdXJsIjogImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vdXNlcnMvanVnZ2xpbm1pa2Uv
cmVwb3MiLAorICAgICAgICAiZXZlbnRzX3VybCI6ICJodHRwczovL2FwaS5naXRodWIuY29tL3Vz
ZXJzL2p1Z2dsaW5taWtlL2V2ZW50c3svcHJpdmFjeX0iLAorICAgICAgICAicmVjZWl2ZWRfZXZl
bnRzX3VybCI6ICJodHRwczovL2FwaS5naXRodWIuY29tL3VzZXJzL2p1Z2dsaW5taWtlL3JlY2Vp
dmVkX2V2ZW50cyIsCisgICAgICAgICJ0eXBlIjogIlVzZXIiLAorICAgICAgICAic2l0ZV9hZG1p
biI6IGZhbHNlCisgICAgICB9CisgICAgXSwKKyAgICAicmVxdWVzdGVkX3RlYW1zIjogWworCisg
ICAgXSwKKyAgICAibGFiZWxzIjogWworICAgICAgeworICAgICAgICAiaWQiOiAxMDEyOTk5NjAz
LAorICAgICAgICAibm9kZV9pZCI6ICJNRFU2VEdGaVpXd3hNREV5T1RrNU5qQXoiLAorICAgICAg
ICAidXJsIjogImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3dwdC9sYWJlbHMvY2kiLAorICAgICAgICAibmFtZSI6ICJjaSIsCisgICAgICAgICJjb2xvciI6
ICJmZWYyYzAiLAorICAgICAgICAiZGVmYXVsdCI6IGZhbHNlCisgICAgICB9LAorICAgICAgewor
ICAgICAgICAiaWQiOiA0NTIzMDc5MCwKKyAgICAgICAgIm5vZGVfaWQiOiAiTURVNlRHRmlaV3cw
TlRJek1EYzVNQT09IiwKKyAgICAgICAgInVybCI6ICJodHRwczovL2FwaS5naXRodWIuY29tL3Jl
cG9zL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQvbGFiZWxzL2luZnJhIiwKKyAgICAgICAgIm5hbWUi
OiAiaW5mcmEiLAorICAgICAgICAiY29sb3IiOiAiZmJjYTA0IiwKKyAgICAgICAgImRlZmF1bHQi
OiBmYWxzZQorICAgICAgfQorICAgIF0sCisgICAgIm1pbGVzdG9uZSI6IG51bGwsCisgICAgImNv
bW1pdHNfdXJsIjogImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3dwdC9wdWxscy8xNTU3NC9jb21taXRzIiwKKyAgICAicmV2aWV3X2NvbW1lbnRzX3VybCI6
ICJodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQvcHVs
bHMvMTU1NzQvY29tbWVudHMiLAorICAgICJyZXZpZXdfY29tbWVudF91cmwiOiAiaHR0cHM6Ly9h
cGkuZ2l0aHViLmNvbS9yZXBvcy93ZWItcGxhdGZvcm0tdGVzdHMvd3B0L3B1bGxzL2NvbW1lbnRz
ey9udW1iZXJ9IiwKKyAgICAiY29tbWVudHNfdXJsIjogImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20v
cmVwb3Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dwdC9pc3N1ZXMvMTU1NzQvY29tbWVudHMiLAorICAg
ICJzdGF0dXNlc191cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy93ZWItcGxhdGZv
cm0tdGVzdHMvd3B0L3N0YXR1c2VzL2ZlZjY5YzVkNDcxOTY0MzMyMzRkNmMzN2EwZmY5ODc0OTFi
ZDJkZmMiLAorICAgICJoZWFkIjogeworICAgICAgImxhYmVsIjogIndlYi1wbGF0Zm9ybS10ZXN0
czp0YXNrY2x1c3Rlcl9saW50IiwKKyAgICAgICJyZWYiOiAidGFza2NsdXN0ZXJfbGludCIsCisg
ICAgICAic2hhIjogImZlZjY5YzVkNDcxOTY0MzMyMzRkNmMzN2EwZmY5ODc0OTFiZDJkZmMiLAor
ICAgICAgInVzZXIiOiB7CisgICAgICAgICJsb2dpbiI6ICJ3ZWItcGxhdGZvcm0tdGVzdHMiLAor
ICAgICAgICAiaWQiOiAzNzIyNjIzMywKKyAgICAgICAgIm5vZGVfaWQiOiAiTURFeU9rOXlaMkZ1
YVhwaGRHbHZiak0zTWpJMk1qTXoiLAorICAgICAgICAiYXZhdGFyX3VybCI6ICJodHRwczovL2F2
YXRhcnMwLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzM3MjI2MjMzP3Y9NCIsCisgICAgICAgICJn
cmF2YXRhcl9pZCI6ICIiLAorICAgICAgICAidXJsIjogImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20v
dXNlcnMvd2ViLXBsYXRmb3JtLXRlc3RzIiwKKyAgICAgICAgImh0bWxfdXJsIjogImh0dHBzOi8v
Z2l0aHViLmNvbS93ZWItcGxhdGZvcm0tdGVzdHMiLAorICAgICAgICAiZm9sbG93ZXJzX3VybCI6
ICJodHRwczovL2FwaS5naXRodWIuY29tL3VzZXJzL3dlYi1wbGF0Zm9ybS10ZXN0cy9mb2xsb3dl
cnMiLAorICAgICAgICAiZm9sbG93aW5nX3VybCI6ICJodHRwczovL2FwaS5naXRodWIuY29tL3Vz
ZXJzL3dlYi1wbGF0Zm9ybS10ZXN0cy9mb2xsb3dpbmd7L290aGVyX3VzZXJ9IiwKKyAgICAgICAg
Imdpc3RzX3VybCI6ICJodHRwczovL2FwaS5naXRodWIuY29tL3VzZXJzL3dlYi1wbGF0Zm9ybS10
ZXN0cy9naXN0c3svZ2lzdF9pZH0iLAorICAgICAgICAic3RhcnJlZF91cmwiOiAiaHR0cHM6Ly9h
cGkuZ2l0aHViLmNvbS91c2Vycy93ZWItcGxhdGZvcm0tdGVzdHMvc3RhcnJlZHsvb3duZXJ9ey9y
ZXBvfSIsCisgICAgICAgICJzdWJzY3JpcHRpb25zX3VybCI6ICJodHRwczovL2FwaS5naXRodWIu
Y29tL3VzZXJzL3dlYi1wbGF0Zm9ybS10ZXN0cy9zdWJzY3JpcHRpb25zIiwKKyAgICAgICAgIm9y
Z2FuaXphdGlvbnNfdXJsIjogImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vdXNlcnMvd2ViLXBsYXRm
b3JtLXRlc3RzL29yZ3MiLAorICAgICAgICAicmVwb3NfdXJsIjogImh0dHBzOi8vYXBpLmdpdGh1
Yi5jb20vdXNlcnMvd2ViLXBsYXRmb3JtLXRlc3RzL3JlcG9zIiwKKyAgICAgICAgImV2ZW50c191
cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS91c2Vycy93ZWItcGxhdGZvcm0tdGVzdHMvZXZl
bnRzey9wcml2YWN5fSIsCisgICAgICAgICJyZWNlaXZlZF9ldmVudHNfdXJsIjogImh0dHBzOi8v
YXBpLmdpdGh1Yi5jb20vdXNlcnMvd2ViLXBsYXRmb3JtLXRlc3RzL3JlY2VpdmVkX2V2ZW50cyIs
CisgICAgICAgICJ0eXBlIjogIk9yZ2FuaXphdGlvbiIsCisgICAgICAgICJzaXRlX2FkbWluIjog
ZmFsc2UKKyAgICAgIH0sCisgICAgICAicmVwbyI6IHsKKyAgICAgICAgImlkIjogMzYxODEzMywK
KyAgICAgICAgIm5vZGVfaWQiOiAiTURFd09sSmxjRzl6YVhSdmNua3pOakU0TVRNeiIsCisgICAg
ICAgICJuYW1lIjogIndwdCIsCisgICAgICAgICJmdWxsX25hbWUiOiAid2ViLXBsYXRmb3JtLXRl
c3RzL3dwdCIsCisgICAgICAgICJwcml2YXRlIjogZmFsc2UsCisgICAgICAgICJvd25lciI6IHsK
KyAgICAgICAgICAibG9naW4iOiAid2ViLXBsYXRmb3JtLXRlc3RzIiwKKyAgICAgICAgICAiaWQi
OiAzNzIyNjIzMywKKyAgICAgICAgICAibm9kZV9pZCI6ICJNREV5T2s5eVoyRnVhWHBoZEdsdmJq
TTNNakkyTWpNeiIsCisgICAgICAgICAgImF2YXRhcl91cmwiOiAiaHR0cHM6Ly9hdmF0YXJzMC5n
aXRodWJ1c2VyY29udGVudC5jb20vdS8zNzIyNjIzMz92PTQiLAorICAgICAgICAgICJncmF2YXRh
cl9pZCI6ICIiLAorICAgICAgICAgICJ1cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS91c2Vy
cy93ZWItcGxhdGZvcm0tdGVzdHMiLAorICAgICAgICAgICJodG1sX3VybCI6ICJodHRwczovL2dp
dGh1Yi5jb20vd2ViLXBsYXRmb3JtLXRlc3RzIiwKKyAgICAgICAgICAiZm9sbG93ZXJzX3VybCI6
ICJodHRwczovL2FwaS5naXRodWIuY29tL3VzZXJzL3dlYi1wbGF0Zm9ybS10ZXN0cy9mb2xsb3dl
cnMiLAorICAgICAgICAgICJmb2xsb3dpbmdfdXJsIjogImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20v
dXNlcnMvd2ViLXBsYXRmb3JtLXRlc3RzL2ZvbGxvd2luZ3svb3RoZXJfdXNlcn0iLAorICAgICAg
ICAgICJnaXN0c191cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS91c2Vycy93ZWItcGxhdGZv
cm0tdGVzdHMvZ2lzdHN7L2dpc3RfaWR9IiwKKyAgICAgICAgICAic3RhcnJlZF91cmwiOiAiaHR0
cHM6Ly9hcGkuZ2l0aHViLmNvbS91c2Vycy93ZWItcGxhdGZvcm0tdGVzdHMvc3RhcnJlZHsvb3du
ZXJ9ey9yZXBvfSIsCisgICAgICAgICAgInN1YnNjcmlwdGlvbnNfdXJsIjogImh0dHBzOi8vYXBp
LmdpdGh1Yi5jb20vdXNlcnMvd2ViLXBsYXRmb3JtLXRlc3RzL3N1YnNjcmlwdGlvbnMiLAorICAg
ICAgICAgICJvcmdhbml6YXRpb25zX3VybCI6ICJodHRwczovL2FwaS5naXRodWIuY29tL3VzZXJz
L3dlYi1wbGF0Zm9ybS10ZXN0cy9vcmdzIiwKKyAgICAgICAgICAicmVwb3NfdXJsIjogImh0dHBz
Oi8vYXBpLmdpdGh1Yi5jb20vdXNlcnMvd2ViLXBsYXRmb3JtLXRlc3RzL3JlcG9zIiwKKyAgICAg
ICAgICAiZXZlbnRzX3VybCI6ICJodHRwczovL2FwaS5naXRodWIuY29tL3VzZXJzL3dlYi1wbGF0
Zm9ybS10ZXN0cy9ldmVudHN7L3ByaXZhY3l9IiwKKyAgICAgICAgICAicmVjZWl2ZWRfZXZlbnRz
X3VybCI6ICJodHRwczovL2FwaS5naXRodWIuY29tL3VzZXJzL3dlYi1wbGF0Zm9ybS10ZXN0cy9y
ZWNlaXZlZF9ldmVudHMiLAorICAgICAgICAgICJ0eXBlIjogIk9yZ2FuaXphdGlvbiIsCisgICAg
ICAgICAgInNpdGVfYWRtaW4iOiBmYWxzZQorICAgICAgICB9LAorICAgICAgICAiaHRtbF91cmwi
OiAiaHR0cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQiLAorICAgICAgICAi
ZGVzY3JpcHRpb24iOiAiVGVzdCBzdWl0ZXMgZm9yIFdlYiBwbGF0Zm9ybSBzcGVjcyDigJQgaW5j
bHVkaW5nIFdIQVRXRywgVzNDLCBhbmQgb3RoZXJzIiwKKyAgICAgICAgImZvcmsiOiBmYWxzZSwK
KyAgICAgICAgInVybCI6ICJodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zL3dlYi1wbGF0Zm9y
bS10ZXN0cy93cHQiLAorICAgICAgICAiZm9ya3NfdXJsIjogImh0dHBzOi8vYXBpLmdpdGh1Yi5j
b20vcmVwb3Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dwdC9mb3JrcyIsCisgICAgICAgICJrZXlzX3Vy
bCI6ICJodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQv
a2V5c3sva2V5X2lkfSIsCisgICAgICAgICJjb2xsYWJvcmF0b3JzX3VybCI6ICJodHRwczovL2Fw
aS5naXRodWIuY29tL3JlcG9zL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQvY29sbGFib3JhdG9yc3sv
Y29sbGFib3JhdG9yfSIsCisgICAgICAgICJ0ZWFtc191cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHVi
LmNvbS9yZXBvcy93ZWItcGxhdGZvcm0tdGVzdHMvd3B0L3RlYW1zIiwKKyAgICAgICAgImhvb2tz
X3VybCI6ICJodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zL3dlYi1wbGF0Zm9ybS10ZXN0cy93
cHQvaG9va3MiLAorICAgICAgICAiaXNzdWVfZXZlbnRzX3VybCI6ICJodHRwczovL2FwaS5naXRo
dWIuY29tL3JlcG9zL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQvaXNzdWVzL2V2ZW50c3svbnVtYmVy
fSIsCisgICAgICAgICJldmVudHNfdXJsIjogImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3dwdC9ldmVudHMiLAorICAgICAgICAiYXNzaWduZWVzX3VybCI6
ICJodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQvYXNz
aWduZWVzey91c2VyfSIsCisgICAgICAgICJicmFuY2hlc191cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0
aHViLmNvbS9yZXBvcy93ZWItcGxhdGZvcm0tdGVzdHMvd3B0L2JyYW5jaGVzey9icmFuY2h9IiwK
KyAgICAgICAgInRhZ3NfdXJsIjogImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3dwdC90YWdzIiwKKyAgICAgICAgImJsb2JzX3VybCI6ICJodHRwczovL2Fw
aS5naXRodWIuY29tL3JlcG9zL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQvZ2l0L2Jsb2Jzey9zaGF9
IiwKKyAgICAgICAgImdpdF90YWdzX3VybCI6ICJodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9z
L3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQvZ2l0L3RhZ3N7L3NoYX0iLAorICAgICAgICAiZ2l0X3Jl
ZnNfdXJsIjogImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3dwdC9naXQvcmVmc3svc2hhfSIsCisgICAgICAgICJ0cmVlc191cmwiOiAiaHR0cHM6Ly9hcGku
Z2l0aHViLmNvbS9yZXBvcy93ZWItcGxhdGZvcm0tdGVzdHMvd3B0L2dpdC90cmVlc3svc2hhfSIs
CisgICAgICAgICJzdGF0dXNlc191cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy93
ZWItcGxhdGZvcm0tdGVzdHMvd3B0L3N0YXR1c2VzL3tzaGF9IiwKKyAgICAgICAgImxhbmd1YWdl
c191cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy93ZWItcGxhdGZvcm0tdGVzdHMv
d3B0L2xhbmd1YWdlcyIsCisgICAgICAgICJzdGFyZ2F6ZXJzX3VybCI6ICJodHRwczovL2FwaS5n
aXRodWIuY29tL3JlcG9zL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQvc3RhcmdhemVycyIsCisgICAg
ICAgICJjb250cmlidXRvcnNfdXJsIjogImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3dwdC9jb250cmlidXRvcnMiLAorICAgICAgICAic3Vic2NyaWJlcnNf
dXJsIjogImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dw
dC9zdWJzY3JpYmVycyIsCisgICAgICAgICJzdWJzY3JpcHRpb25fdXJsIjogImh0dHBzOi8vYXBp
LmdpdGh1Yi5jb20vcmVwb3Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dwdC9zdWJzY3JpcHRpb24iLAor
ICAgICAgICAiY29tbWl0c191cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy93ZWIt
cGxhdGZvcm0tdGVzdHMvd3B0L2NvbW1pdHN7L3NoYX0iLAorICAgICAgICAiZ2l0X2NvbW1pdHNf
dXJsIjogImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dw
dC9naXQvY29tbWl0c3svc2hhfSIsCisgICAgICAgICJjb21tZW50c191cmwiOiAiaHR0cHM6Ly9h
cGkuZ2l0aHViLmNvbS9yZXBvcy93ZWItcGxhdGZvcm0tdGVzdHMvd3B0L2NvbW1lbnRzey9udW1i
ZXJ9IiwKKyAgICAgICAgImlzc3VlX2NvbW1lbnRfdXJsIjogImh0dHBzOi8vYXBpLmdpdGh1Yi5j
b20vcmVwb3Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dwdC9pc3N1ZXMvY29tbWVudHN7L251bWJlcn0i
LAorICAgICAgICAiY29udGVudHNfdXJsIjogImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3dwdC9jb250ZW50cy97K3BhdGh9IiwKKyAgICAgICAgImNvbXBh
cmVfdXJsIjogImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3dwdC9jb21wYXJlL3tiYXNlfS4uLntoZWFkfSIsCisgICAgICAgICJtZXJnZXNfdXJsIjogImh0
dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dwdC9tZXJnZXMi
LAorICAgICAgICAiYXJjaGl2ZV91cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy93
ZWItcGxhdGZvcm0tdGVzdHMvd3B0L3thcmNoaXZlX2Zvcm1hdH17L3JlZn0iLAorICAgICAgICAi
ZG93bmxvYWRzX3VybCI6ICJodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zL3dlYi1wbGF0Zm9y
bS10ZXN0cy93cHQvZG93bmxvYWRzIiwKKyAgICAgICAgImlzc3Vlc191cmwiOiAiaHR0cHM6Ly9h
cGkuZ2l0aHViLmNvbS9yZXBvcy93ZWItcGxhdGZvcm0tdGVzdHMvd3B0L2lzc3Vlc3svbnVtYmVy
fSIsCisgICAgICAgICJwdWxsc191cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy93
ZWItcGxhdGZvcm0tdGVzdHMvd3B0L3B1bGxzey9udW1iZXJ9IiwKKyAgICAgICAgIm1pbGVzdG9u
ZXNfdXJsIjogImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3dwdC9taWxlc3RvbmVzey9udW1iZXJ9IiwKKyAgICAgICAgIm5vdGlmaWNhdGlvbnNfdXJsIjog
Imh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dwdC9ub3Rp
ZmljYXRpb25zez9zaW5jZSxhbGwscGFydGljaXBhdGluZ30iLAorICAgICAgICAibGFiZWxzX3Vy
bCI6ICJodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQv
bGFiZWxzey9uYW1lfSIsCisgICAgICAgICJyZWxlYXNlc191cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0
aHViLmNvbS9yZXBvcy93ZWItcGxhdGZvcm0tdGVzdHMvd3B0L3JlbGVhc2Vzey9pZH0iLAorICAg
ICAgICAiZGVwbG95bWVudHNfdXJsIjogImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3dwdC9kZXBsb3ltZW50cyIsCisgICAgICAgICJjcmVhdGVkX2F0Ijog
IjIwMTItMDMtMDRUMTI6NTg6MTFaIiwKKyAgICAgICAgInVwZGF0ZWRfYXQiOiAiMjAxOS0wMi0y
OFQxMjo0MTozM1oiLAorICAgICAgICAicHVzaGVkX2F0IjogIjIwMTktMDItMjhUMTM6NDM6MTZa
IiwKKyAgICAgICAgImdpdF91cmwiOiAiZ2l0Oi8vZ2l0aHViLmNvbS93ZWItcGxhdGZvcm0tdGVz
dHMvd3B0LmdpdCIsCisgICAgICAgICJzc2hfdXJsIjogImdpdEBnaXRodWIuY29tOndlYi1wbGF0
Zm9ybS10ZXN0cy93cHQuZ2l0IiwKKyAgICAgICAgImNsb25lX3VybCI6ICJodHRwczovL2dpdGh1
Yi5jb20vd2ViLXBsYXRmb3JtLXRlc3RzL3dwdC5naXQiLAorICAgICAgICAic3ZuX3VybCI6ICJo
dHRwczovL2dpdGh1Yi5jb20vd2ViLXBsYXRmb3JtLXRlc3RzL3dwdCIsCisgICAgICAgICJob21l
cGFnZSI6ICJodHRwOi8vaXJjLnczLm9yZy8/Y2hhbm5lbHM9dGVzdGluZyIsCisgICAgICAgICJz
aXplIjogMzI0NjQxLAorICAgICAgICAic3RhcmdhemVyc19jb3VudCI6IDIwNTgsCisgICAgICAg
ICJ3YXRjaGVyc19jb3VudCI6IDIwNTgsCisgICAgICAgICJsYW5ndWFnZSI6ICJIVE1MIiwKKyAg
ICAgICAgImhhc19pc3N1ZXMiOiB0cnVlLAorICAgICAgICAiaGFzX3Byb2plY3RzIjogdHJ1ZSwK
KyAgICAgICAgImhhc19kb3dubG9hZHMiOiB0cnVlLAorICAgICAgICAiaGFzX3dpa2kiOiB0cnVl
LAorICAgICAgICAiaGFzX3BhZ2VzIjogdHJ1ZSwKKyAgICAgICAgImZvcmtzX2NvdW50IjogMTYw
NCwKKyAgICAgICAgIm1pcnJvcl91cmwiOiBudWxsLAorICAgICAgICAiYXJjaGl2ZWQiOiBmYWxz
ZSwKKyAgICAgICAgIm9wZW5faXNzdWVzX2NvdW50IjogMTM1NCwKKyAgICAgICAgImxpY2Vuc2Ui
OiB7CisgICAgICAgICAgImtleSI6ICJvdGhlciIsCisgICAgICAgICAgIm5hbWUiOiAiT3RoZXIi
LAorICAgICAgICAgICJzcGR4X2lkIjogIk5PQVNTRVJUSU9OIiwKKyAgICAgICAgICAidXJsIjog
bnVsbCwKKyAgICAgICAgICAibm9kZV9pZCI6ICJNRGM2VEdsalpXNXpaVEE9IgorICAgICAgICB9
LAorICAgICAgICAiZm9ya3MiOiAxNjA0LAorICAgICAgICAib3Blbl9pc3N1ZXMiOiAxMzU0LAor
ICAgICAgICAid2F0Y2hlcnMiOiAyMDU4LAorICAgICAgICAiZGVmYXVsdF9icmFuY2giOiAibWFz
dGVyIgorICAgICAgfQorICAgIH0sCisgICAgImJhc2UiOiB7CisgICAgICAibGFiZWwiOiAid2Vi
LXBsYXRmb3JtLXRlc3RzOm1hc3RlciIsCisgICAgICAicmVmIjogIm1hc3RlciIsCisgICAgICAi
c2hhIjogImJiNjU3YzRiZDBjYzQ3MjlkYWEyN2MxZjNhMWUxZjg2ZWY1YTFkYzAiLAorICAgICAg
InVzZXIiOiB7CisgICAgICAgICJsb2dpbiI6ICJ3ZWItcGxhdGZvcm0tdGVzdHMiLAorICAgICAg
ICAiaWQiOiAzNzIyNjIzMywKKyAgICAgICAgIm5vZGVfaWQiOiAiTURFeU9rOXlaMkZ1YVhwaGRH
bHZiak0zTWpJMk1qTXoiLAorICAgICAgICAiYXZhdGFyX3VybCI6ICJodHRwczovL2F2YXRhcnMw
LmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzM3MjI2MjMzP3Y9NCIsCisgICAgICAgICJncmF2YXRh
cl9pZCI6ICIiLAorICAgICAgICAidXJsIjogImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vdXNlcnMv
d2ViLXBsYXRmb3JtLXRlc3RzIiwKKyAgICAgICAgImh0bWxfdXJsIjogImh0dHBzOi8vZ2l0aHVi
LmNvbS93ZWItcGxhdGZvcm0tdGVzdHMiLAorICAgICAgICAiZm9sbG93ZXJzX3VybCI6ICJodHRw
czovL2FwaS5naXRodWIuY29tL3VzZXJzL3dlYi1wbGF0Zm9ybS10ZXN0cy9mb2xsb3dlcnMiLAor
ICAgICAgICAiZm9sbG93aW5nX3VybCI6ICJodHRwczovL2FwaS5naXRodWIuY29tL3VzZXJzL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9mb2xsb3dpbmd7L290aGVyX3VzZXJ9IiwKKyAgICAgICAgImdpc3Rz
X3VybCI6ICJodHRwczovL2FwaS5naXRodWIuY29tL3VzZXJzL3dlYi1wbGF0Zm9ybS10ZXN0cy9n
aXN0c3svZ2lzdF9pZH0iLAorICAgICAgICAic3RhcnJlZF91cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0
aHViLmNvbS91c2Vycy93ZWItcGxhdGZvcm0tdGVzdHMvc3RhcnJlZHsvb3duZXJ9ey9yZXBvfSIs
CisgICAgICAgICJzdWJzY3JpcHRpb25zX3VybCI6ICJodHRwczovL2FwaS5naXRodWIuY29tL3Vz
ZXJzL3dlYi1wbGF0Zm9ybS10ZXN0cy9zdWJzY3JpcHRpb25zIiwKKyAgICAgICAgIm9yZ2FuaXph
dGlvbnNfdXJsIjogImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vdXNlcnMvd2ViLXBsYXRmb3JtLXRl
c3RzL29yZ3MiLAorICAgICAgICAicmVwb3NfdXJsIjogImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20v
dXNlcnMvd2ViLXBsYXRmb3JtLXRlc3RzL3JlcG9zIiwKKyAgICAgICAgImV2ZW50c191cmwiOiAi
aHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS91c2Vycy93ZWItcGxhdGZvcm0tdGVzdHMvZXZlbnRzey9w
cml2YWN5fSIsCisgICAgICAgICJyZWNlaXZlZF9ldmVudHNfdXJsIjogImh0dHBzOi8vYXBpLmdp
dGh1Yi5jb20vdXNlcnMvd2ViLXBsYXRmb3JtLXRlc3RzL3JlY2VpdmVkX2V2ZW50cyIsCisgICAg
ICAgICJ0eXBlIjogIk9yZ2FuaXphdGlvbiIsCisgICAgICAgICJzaXRlX2FkbWluIjogZmFsc2UK
KyAgICAgIH0sCisgICAgICAicmVwbyI6IHsKKyAgICAgICAgImlkIjogMzYxODEzMywKKyAgICAg
ICAgIm5vZGVfaWQiOiAiTURFd09sSmxjRzl6YVhSdmNua3pOakU0TVRNeiIsCisgICAgICAgICJu
YW1lIjogIndwdCIsCisgICAgICAgICJmdWxsX25hbWUiOiAid2ViLXBsYXRmb3JtLXRlc3RzL3dw
dCIsCisgICAgICAgICJwcml2YXRlIjogZmFsc2UsCisgICAgICAgICJvd25lciI6IHsKKyAgICAg
ICAgICAibG9naW4iOiAid2ViLXBsYXRmb3JtLXRlc3RzIiwKKyAgICAgICAgICAiaWQiOiAzNzIy
NjIzMywKKyAgICAgICAgICAibm9kZV9pZCI6ICJNREV5T2s5eVoyRnVhWHBoZEdsdmJqTTNNakky
TWpNeiIsCisgICAgICAgICAgImF2YXRhcl91cmwiOiAiaHR0cHM6Ly9hdmF0YXJzMC5naXRodWJ1
c2VyY29udGVudC5jb20vdS8zNzIyNjIzMz92PTQiLAorICAgICAgICAgICJncmF2YXRhcl9pZCI6
ICIiLAorICAgICAgICAgICJ1cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS91c2Vycy93ZWIt
cGxhdGZvcm0tdGVzdHMiLAorICAgICAgICAgICJodG1sX3VybCI6ICJodHRwczovL2dpdGh1Yi5j
b20vd2ViLXBsYXRmb3JtLXRlc3RzIiwKKyAgICAgICAgICAiZm9sbG93ZXJzX3VybCI6ICJodHRw
czovL2FwaS5naXRodWIuY29tL3VzZXJzL3dlYi1wbGF0Zm9ybS10ZXN0cy9mb2xsb3dlcnMiLAor
ICAgICAgICAgICJmb2xsb3dpbmdfdXJsIjogImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vdXNlcnMv
d2ViLXBsYXRmb3JtLXRlc3RzL2ZvbGxvd2luZ3svb3RoZXJfdXNlcn0iLAorICAgICAgICAgICJn
aXN0c191cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS91c2Vycy93ZWItcGxhdGZvcm0tdGVz
dHMvZ2lzdHN7L2dpc3RfaWR9IiwKKyAgICAgICAgICAic3RhcnJlZF91cmwiOiAiaHR0cHM6Ly9h
cGkuZ2l0aHViLmNvbS91c2Vycy93ZWItcGxhdGZvcm0tdGVzdHMvc3RhcnJlZHsvb3duZXJ9ey9y
ZXBvfSIsCisgICAgICAgICAgInN1YnNjcmlwdGlvbnNfdXJsIjogImh0dHBzOi8vYXBpLmdpdGh1
Yi5jb20vdXNlcnMvd2ViLXBsYXRmb3JtLXRlc3RzL3N1YnNjcmlwdGlvbnMiLAorICAgICAgICAg
ICJvcmdhbml6YXRpb25zX3VybCI6ICJodHRwczovL2FwaS5naXRodWIuY29tL3VzZXJzL3dlYi1w
bGF0Zm9ybS10ZXN0cy9vcmdzIiwKKyAgICAgICAgICAicmVwb3NfdXJsIjogImh0dHBzOi8vYXBp
LmdpdGh1Yi5jb20vdXNlcnMvd2ViLXBsYXRmb3JtLXRlc3RzL3JlcG9zIiwKKyAgICAgICAgICAi
ZXZlbnRzX3VybCI6ICJodHRwczovL2FwaS5naXRodWIuY29tL3VzZXJzL3dlYi1wbGF0Zm9ybS10
ZXN0cy9ldmVudHN7L3ByaXZhY3l9IiwKKyAgICAgICAgICAicmVjZWl2ZWRfZXZlbnRzX3VybCI6
ICJodHRwczovL2FwaS5naXRodWIuY29tL3VzZXJzL3dlYi1wbGF0Zm9ybS10ZXN0cy9yZWNlaXZl
ZF9ldmVudHMiLAorICAgICAgICAgICJ0eXBlIjogIk9yZ2FuaXphdGlvbiIsCisgICAgICAgICAg
InNpdGVfYWRtaW4iOiBmYWxzZQorICAgICAgICB9LAorICAgICAgICAiaHRtbF91cmwiOiAiaHR0
cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQiLAorICAgICAgICAiZGVzY3Jp
cHRpb24iOiAiVGVzdCBzdWl0ZXMgZm9yIFdlYiBwbGF0Zm9ybSBzcGVjcyDigJQgaW5jbHVkaW5n
IFdIQVRXRywgVzNDLCBhbmQgb3RoZXJzIiwKKyAgICAgICAgImZvcmsiOiBmYWxzZSwKKyAgICAg
ICAgInVybCI6ICJodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zL3dlYi1wbGF0Zm9ybS10ZXN0
cy93cHQiLAorICAgICAgICAiZm9ya3NfdXJsIjogImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVw
b3Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dwdC9mb3JrcyIsCisgICAgICAgICJrZXlzX3VybCI6ICJo
dHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQva2V5c3sv
a2V5X2lkfSIsCisgICAgICAgICJjb2xsYWJvcmF0b3JzX3VybCI6ICJodHRwczovL2FwaS5naXRo
dWIuY29tL3JlcG9zL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQvY29sbGFib3JhdG9yc3svY29sbGFi
b3JhdG9yfSIsCisgICAgICAgICJ0ZWFtc191cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9y
ZXBvcy93ZWItcGxhdGZvcm0tdGVzdHMvd3B0L3RlYW1zIiwKKyAgICAgICAgImhvb2tzX3VybCI6
ICJodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQvaG9v
a3MiLAorICAgICAgICAiaXNzdWVfZXZlbnRzX3VybCI6ICJodHRwczovL2FwaS5naXRodWIuY29t
L3JlcG9zL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQvaXNzdWVzL2V2ZW50c3svbnVtYmVyfSIsCisg
ICAgICAgICJldmVudHNfdXJsIjogImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3dwdC9ldmVudHMiLAorICAgICAgICAiYXNzaWduZWVzX3VybCI6ICJodHRw
czovL2FwaS5naXRodWIuY29tL3JlcG9zL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQvYXNzaWduZWVz
ey91c2VyfSIsCisgICAgICAgICJicmFuY2hlc191cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNv
bS9yZXBvcy93ZWItcGxhdGZvcm0tdGVzdHMvd3B0L2JyYW5jaGVzey9icmFuY2h9IiwKKyAgICAg
ICAgInRhZ3NfdXJsIjogImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3dwdC90YWdzIiwKKyAgICAgICAgImJsb2JzX3VybCI6ICJodHRwczovL2FwaS5naXRo
dWIuY29tL3JlcG9zL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQvZ2l0L2Jsb2Jzey9zaGF9IiwKKyAg
ICAgICAgImdpdF90YWdzX3VybCI6ICJodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zL3dlYi1w
bGF0Zm9ybS10ZXN0cy93cHQvZ2l0L3RhZ3N7L3NoYX0iLAorICAgICAgICAiZ2l0X3JlZnNfdXJs
IjogImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dwdC9n
aXQvcmVmc3svc2hhfSIsCisgICAgICAgICJ0cmVlc191cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHVi
LmNvbS9yZXBvcy93ZWItcGxhdGZvcm0tdGVzdHMvd3B0L2dpdC90cmVlc3svc2hhfSIsCisgICAg
ICAgICJzdGF0dXNlc191cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy93ZWItcGxh
dGZvcm0tdGVzdHMvd3B0L3N0YXR1c2VzL3tzaGF9IiwKKyAgICAgICAgImxhbmd1YWdlc191cmwi
OiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy93ZWItcGxhdGZvcm0tdGVzdHMvd3B0L2xh
bmd1YWdlcyIsCisgICAgICAgICJzdGFyZ2F6ZXJzX3VybCI6ICJodHRwczovL2FwaS5naXRodWIu
Y29tL3JlcG9zL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQvc3RhcmdhemVycyIsCisgICAgICAgICJj
b250cmlidXRvcnNfdXJsIjogImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3dwdC9jb250cmlidXRvcnMiLAorICAgICAgICAic3Vic2NyaWJlcnNfdXJsIjog
Imh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dwdC9zdWJz
Y3JpYmVycyIsCisgICAgICAgICJzdWJzY3JpcHRpb25fdXJsIjogImh0dHBzOi8vYXBpLmdpdGh1
Yi5jb20vcmVwb3Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dwdC9zdWJzY3JpcHRpb24iLAorICAgICAg
ICAiY29tbWl0c191cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy93ZWItcGxhdGZv
cm0tdGVzdHMvd3B0L2NvbW1pdHN7L3NoYX0iLAorICAgICAgICAiZ2l0X2NvbW1pdHNfdXJsIjog
Imh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dwdC9naXQv
Y29tbWl0c3svc2hhfSIsCisgICAgICAgICJjb21tZW50c191cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0
aHViLmNvbS9yZXBvcy93ZWItcGxhdGZvcm0tdGVzdHMvd3B0L2NvbW1lbnRzey9udW1iZXJ9IiwK
KyAgICAgICAgImlzc3VlX2NvbW1lbnRfdXJsIjogImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVw
b3Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dwdC9pc3N1ZXMvY29tbWVudHN7L251bWJlcn0iLAorICAg
ICAgICAiY29udGVudHNfdXJsIjogImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3dwdC9jb250ZW50cy97K3BhdGh9IiwKKyAgICAgICAgImNvbXBhcmVfdXJs
IjogImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dwdC9j
b21wYXJlL3tiYXNlfS4uLntoZWFkfSIsCisgICAgICAgICJtZXJnZXNfdXJsIjogImh0dHBzOi8v
YXBpLmdpdGh1Yi5jb20vcmVwb3Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dwdC9tZXJnZXMiLAorICAg
ICAgICAiYXJjaGl2ZV91cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy93ZWItcGxh
dGZvcm0tdGVzdHMvd3B0L3thcmNoaXZlX2Zvcm1hdH17L3JlZn0iLAorICAgICAgICAiZG93bmxv
YWRzX3VybCI6ICJodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zL3dlYi1wbGF0Zm9ybS10ZXN0
cy93cHQvZG93bmxvYWRzIiwKKyAgICAgICAgImlzc3Vlc191cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0
aHViLmNvbS9yZXBvcy93ZWItcGxhdGZvcm0tdGVzdHMvd3B0L2lzc3Vlc3svbnVtYmVyfSIsCisg
ICAgICAgICJwdWxsc191cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy93ZWItcGxh
dGZvcm0tdGVzdHMvd3B0L3B1bGxzey9udW1iZXJ9IiwKKyAgICAgICAgIm1pbGVzdG9uZXNfdXJs
IjogImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dwdC9t
aWxlc3RvbmVzey9udW1iZXJ9IiwKKyAgICAgICAgIm5vdGlmaWNhdGlvbnNfdXJsIjogImh0dHBz
Oi8vYXBpLmdpdGh1Yi5jb20vcmVwb3Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dwdC9ub3RpZmljYXRp
b25zez9zaW5jZSxhbGwscGFydGljaXBhdGluZ30iLAorICAgICAgICAibGFiZWxzX3VybCI6ICJo
dHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQvbGFiZWxz
ey9uYW1lfSIsCisgICAgICAgICJyZWxlYXNlc191cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNv
bS9yZXBvcy93ZWItcGxhdGZvcm0tdGVzdHMvd3B0L3JlbGVhc2Vzey9pZH0iLAorICAgICAgICAi
ZGVwbG95bWVudHNfdXJsIjogImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3dwdC9kZXBsb3ltZW50cyIsCisgICAgICAgICJjcmVhdGVkX2F0IjogIjIwMTIt
MDMtMDRUMTI6NTg6MTFaIiwKKyAgICAgICAgInVwZGF0ZWRfYXQiOiAiMjAxOS0wMi0yOFQxMjo0
MTozM1oiLAorICAgICAgICAicHVzaGVkX2F0IjogIjIwMTktMDItMjhUMTM6NDM6MTZaIiwKKyAg
ICAgICAgImdpdF91cmwiOiAiZ2l0Oi8vZ2l0aHViLmNvbS93ZWItcGxhdGZvcm0tdGVzdHMvd3B0
LmdpdCIsCisgICAgICAgICJzc2hfdXJsIjogImdpdEBnaXRodWIuY29tOndlYi1wbGF0Zm9ybS10
ZXN0cy93cHQuZ2l0IiwKKyAgICAgICAgImNsb25lX3VybCI6ICJodHRwczovL2dpdGh1Yi5jb20v
d2ViLXBsYXRmb3JtLXRlc3RzL3dwdC5naXQiLAorICAgICAgICAic3ZuX3VybCI6ICJodHRwczov
L2dpdGh1Yi5jb20vd2ViLXBsYXRmb3JtLXRlc3RzL3dwdCIsCisgICAgICAgICJob21lcGFnZSI6
ICJodHRwOi8vaXJjLnczLm9yZy8/Y2hhbm5lbHM9dGVzdGluZyIsCisgICAgICAgICJzaXplIjog
MzI0NjQxLAorICAgICAgICAic3RhcmdhemVyc19jb3VudCI6IDIwNTgsCisgICAgICAgICJ3YXRj
aGVyc19jb3VudCI6IDIwNTgsCisgICAgICAgICJsYW5ndWFnZSI6ICJIVE1MIiwKKyAgICAgICAg
Imhhc19pc3N1ZXMiOiB0cnVlLAorICAgICAgICAiaGFzX3Byb2plY3RzIjogdHJ1ZSwKKyAgICAg
ICAgImhhc19kb3dubG9hZHMiOiB0cnVlLAorICAgICAgICAiaGFzX3dpa2kiOiB0cnVlLAorICAg
ICAgICAiaGFzX3BhZ2VzIjogdHJ1ZSwKKyAgICAgICAgImZvcmtzX2NvdW50IjogMTYwNCwKKyAg
ICAgICAgIm1pcnJvcl91cmwiOiBudWxsLAorICAgICAgICAiYXJjaGl2ZWQiOiBmYWxzZSwKKyAg
ICAgICAgIm9wZW5faXNzdWVzX2NvdW50IjogMTM1NCwKKyAgICAgICAgImxpY2Vuc2UiOiB7Cisg
ICAgICAgICAgImtleSI6ICJvdGhlciIsCisgICAgICAgICAgIm5hbWUiOiAiT3RoZXIiLAorICAg
ICAgICAgICJzcGR4X2lkIjogIk5PQVNTRVJUSU9OIiwKKyAgICAgICAgICAidXJsIjogbnVsbCwK
KyAgICAgICAgICAibm9kZV9pZCI6ICJNRGM2VEdsalpXNXpaVEE9IgorICAgICAgICB9LAorICAg
ICAgICAiZm9ya3MiOiAxNjA0LAorICAgICAgICAib3Blbl9pc3N1ZXMiOiAxMzU0LAorICAgICAg
ICAid2F0Y2hlcnMiOiAyMDU4LAorICAgICAgICAiZGVmYXVsdF9icmFuY2giOiAibWFzdGVyIgor
ICAgICAgfQorICAgIH0sCisgICAgIl9saW5rcyI6IHsKKyAgICAgICJzZWxmIjogeworICAgICAg
ICAiaHJlZiI6ICJodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zL3dlYi1wbGF0Zm9ybS10ZXN0
cy93cHQvcHVsbHMvMTU1NzQiCisgICAgICB9LAorICAgICAgImh0bWwiOiB7CisgICAgICAgICJo
cmVmIjogImh0dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxhdGZvcm0tdGVzdHMvd3B0L3B1bGwvMTU1
NzQiCisgICAgICB9LAorICAgICAgImlzc3VlIjogeworICAgICAgICAiaHJlZiI6ICJodHRwczov
L2FwaS5naXRodWIuY29tL3JlcG9zL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQvaXNzdWVzLzE1NTc0
IgorICAgICAgfSwKKyAgICAgICJjb21tZW50cyI6IHsKKyAgICAgICAgImhyZWYiOiAiaHR0cHM6
Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy93ZWItcGxhdGZvcm0tdGVzdHMvd3B0L2lzc3Vlcy8xNTU3
NC9jb21tZW50cyIKKyAgICAgIH0sCisgICAgICAicmV2aWV3X2NvbW1lbnRzIjogeworICAgICAg
ICAiaHJlZiI6ICJodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zL3dlYi1wbGF0Zm9ybS10ZXN0
cy93cHQvcHVsbHMvMTU1NzQvY29tbWVudHMiCisgICAgICB9LAorICAgICAgInJldmlld19jb21t
ZW50IjogeworICAgICAgICAiaHJlZiI6ICJodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zL3dl
Yi1wbGF0Zm9ybS10ZXN0cy93cHQvcHVsbHMvY29tbWVudHN7L251bWJlcn0iCisgICAgICB9LAor
ICAgICAgImNvbW1pdHMiOiB7CisgICAgICAgICJocmVmIjogImh0dHBzOi8vYXBpLmdpdGh1Yi5j
b20vcmVwb3Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dwdC9wdWxscy8xNTU3NC9jb21taXRzIgorICAg
ICAgfSwKKyAgICAgICJzdGF0dXNlcyI6IHsKKyAgICAgICAgImhyZWYiOiAiaHR0cHM6Ly9hcGku
Z2l0aHViLmNvbS9yZXBvcy93ZWItcGxhdGZvcm0tdGVzdHMvd3B0L3N0YXR1c2VzL2ZlZjY5YzVk
NDcxOTY0MzMyMzRkNmMzN2EwZmY5ODc0OTFiZDJkZmMiCisgICAgICB9CisgICAgfSwKKyAgICAi
YXV0aG9yX2Fzc29jaWF0aW9uIjogIkNPTlRSSUJVVE9SIiwKKyAgICAiZHJhZnQiOiBmYWxzZSwK
KyAgICAibWVyZ2VkIjogZmFsc2UsCisgICAgIm1lcmdlYWJsZSI6IG51bGwsCisgICAgInJlYmFz
ZWFibGUiOiBudWxsLAorICAgICJtZXJnZWFibGVfc3RhdGUiOiAidW5rbm93biIsCisgICAgIm1l
cmdlZF9ieSI6IG51bGwsCisgICAgImNvbW1lbnRzIjogMiwKKyAgICAicmV2aWV3X2NvbW1lbnRz
IjogMywKKyAgICAibWFpbnRhaW5lcl9jYW5fbW9kaWZ5IjogZmFsc2UsCisgICAgImNvbW1pdHMi
OiAyLAorICAgICJhZGRpdGlvbnMiOiA1NSwKKyAgICAiZGVsZXRpb25zIjogNywKKyAgICAiY2hh
bmdlZF9maWxlcyI6IDMKKyAgfSwKKyAgImJlZm9yZSI6ICI0NmQyZjMxNmFlMTBiODM3MjZkZmI0
MzE1MGIzMjE1MzNiYzk1MzlmIiwKKyAgImFmdGVyIjogImZlZjY5YzVkNDcxOTY0MzMyMzRkNmMz
N2EwZmY5ODc0OTFiZDJkZmMiLAorICAicmVwb3NpdG9yeSI6IHsKKyAgICAiaWQiOiAzNjE4MTMz
LAorICAgICJub2RlX2lkIjogIk1ERXdPbEpsY0c5emFYUnZjbmt6TmpFNE1UTXoiLAorICAgICJu
YW1lIjogIndwdCIsCisgICAgImZ1bGxfbmFtZSI6ICJ3ZWItcGxhdGZvcm0tdGVzdHMvd3B0IiwK
KyAgICAicHJpdmF0ZSI6IGZhbHNlLAorICAgICJvd25lciI6IHsKKyAgICAgICJsb2dpbiI6ICJ3
ZWItcGxhdGZvcm0tdGVzdHMiLAorICAgICAgImlkIjogMzcyMjYyMzMsCisgICAgICAibm9kZV9p
ZCI6ICJNREV5T2s5eVoyRnVhWHBoZEdsdmJqTTNNakkyTWpNeiIsCisgICAgICAiYXZhdGFyX3Vy
bCI6ICJodHRwczovL2F2YXRhcnMwLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzM3MjI2MjMzP3Y9
NCIsCisgICAgICAiZ3JhdmF0YXJfaWQiOiAiIiwKKyAgICAgICJ1cmwiOiAiaHR0cHM6Ly9hcGku
Z2l0aHViLmNvbS91c2Vycy93ZWItcGxhdGZvcm0tdGVzdHMiLAorICAgICAgImh0bWxfdXJsIjog
Imh0dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxhdGZvcm0tdGVzdHMiLAorICAgICAgImZvbGxvd2Vy
c191cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS91c2Vycy93ZWItcGxhdGZvcm0tdGVzdHMv
Zm9sbG93ZXJzIiwKKyAgICAgICJmb2xsb3dpbmdfdXJsIjogImh0dHBzOi8vYXBpLmdpdGh1Yi5j
b20vdXNlcnMvd2ViLXBsYXRmb3JtLXRlc3RzL2ZvbGxvd2luZ3svb3RoZXJfdXNlcn0iLAorICAg
ICAgImdpc3RzX3VybCI6ICJodHRwczovL2FwaS5naXRodWIuY29tL3VzZXJzL3dlYi1wbGF0Zm9y
bS10ZXN0cy9naXN0c3svZ2lzdF9pZH0iLAorICAgICAgInN0YXJyZWRfdXJsIjogImh0dHBzOi8v
YXBpLmdpdGh1Yi5jb20vdXNlcnMvd2ViLXBsYXRmb3JtLXRlc3RzL3N0YXJyZWR7L293bmVyfXsv
cmVwb30iLAorICAgICAgInN1YnNjcmlwdGlvbnNfdXJsIjogImh0dHBzOi8vYXBpLmdpdGh1Yi5j
b20vdXNlcnMvd2ViLXBsYXRmb3JtLXRlc3RzL3N1YnNjcmlwdGlvbnMiLAorICAgICAgIm9yZ2Fu
aXphdGlvbnNfdXJsIjogImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vdXNlcnMvd2ViLXBsYXRmb3Jt
LXRlc3RzL29yZ3MiLAorICAgICAgInJlcG9zX3VybCI6ICJodHRwczovL2FwaS5naXRodWIuY29t
L3VzZXJzL3dlYi1wbGF0Zm9ybS10ZXN0cy9yZXBvcyIsCisgICAgICAiZXZlbnRzX3VybCI6ICJo
dHRwczovL2FwaS5naXRodWIuY29tL3VzZXJzL3dlYi1wbGF0Zm9ybS10ZXN0cy9ldmVudHN7L3By
aXZhY3l9IiwKKyAgICAgICJyZWNlaXZlZF9ldmVudHNfdXJsIjogImh0dHBzOi8vYXBpLmdpdGh1
Yi5jb20vdXNlcnMvd2ViLXBsYXRmb3JtLXRlc3RzL3JlY2VpdmVkX2V2ZW50cyIsCisgICAgICAi
dHlwZSI6ICJPcmdhbml6YXRpb24iLAorICAgICAgInNpdGVfYWRtaW4iOiBmYWxzZQorICAgIH0s
CisgICAgImh0bWxfdXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxhdGZvcm0tdGVzdHMv
d3B0IiwKKyAgICAiZGVzY3JpcHRpb24iOiAiVGVzdCBzdWl0ZXMgZm9yIFdlYiBwbGF0Zm9ybSBz
cGVjcyDigJQgaW5jbHVkaW5nIFdIQVRXRywgVzNDLCBhbmQgb3RoZXJzIiwKKyAgICAiZm9yayI6
IGZhbHNlLAorICAgICJ1cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy93ZWItcGxh
dGZvcm0tdGVzdHMvd3B0IiwKKyAgICAiZm9ya3NfdXJsIjogImh0dHBzOi8vYXBpLmdpdGh1Yi5j
b20vcmVwb3Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dwdC9mb3JrcyIsCisgICAgImtleXNfdXJsIjog
Imh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dwdC9rZXlz
ey9rZXlfaWR9IiwKKyAgICAiY29sbGFib3JhdG9yc191cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHVi
LmNvbS9yZXBvcy93ZWItcGxhdGZvcm0tdGVzdHMvd3B0L2NvbGxhYm9yYXRvcnN7L2NvbGxhYm9y
YXRvcn0iLAorICAgICJ0ZWFtc191cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy93
ZWItcGxhdGZvcm0tdGVzdHMvd3B0L3RlYW1zIiwKKyAgICAiaG9va3NfdXJsIjogImh0dHBzOi8v
YXBpLmdpdGh1Yi5jb20vcmVwb3Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dwdC9ob29rcyIsCisgICAg
Imlzc3VlX2V2ZW50c191cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy93ZWItcGxh
dGZvcm0tdGVzdHMvd3B0L2lzc3Vlcy9ldmVudHN7L251bWJlcn0iLAorICAgICJldmVudHNfdXJs
IjogImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dwdC9l
dmVudHMiLAorICAgICJhc3NpZ25lZXNfdXJsIjogImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVw
b3Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dwdC9hc3NpZ25lZXN7L3VzZXJ9IiwKKyAgICAiYnJhbmNo
ZXNfdXJsIjogImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3dwdC9icmFuY2hlc3svYnJhbmNofSIsCisgICAgInRhZ3NfdXJsIjogImh0dHBzOi8vYXBpLmdp
dGh1Yi5jb20vcmVwb3Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dwdC90YWdzIiwKKyAgICAiYmxvYnNf
dXJsIjogImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dw
dC9naXQvYmxvYnN7L3NoYX0iLAorICAgICJnaXRfdGFnc191cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0
aHViLmNvbS9yZXBvcy93ZWItcGxhdGZvcm0tdGVzdHMvd3B0L2dpdC90YWdzey9zaGF9IiwKKyAg
ICAiZ2l0X3JlZnNfdXJsIjogImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3dwdC9naXQvcmVmc3svc2hhfSIsCisgICAgInRyZWVzX3VybCI6ICJodHRwczov
L2FwaS5naXRodWIuY29tL3JlcG9zL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQvZ2l0L3RyZWVzey9z
aGF9IiwKKyAgICAic3RhdHVzZXNfdXJsIjogImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3dwdC9zdGF0dXNlcy97c2hhfSIsCisgICAgImxhbmd1YWdlc191
cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy93ZWItcGxhdGZvcm0tdGVzdHMvd3B0
L2xhbmd1YWdlcyIsCisgICAgInN0YXJnYXplcnNfdXJsIjogImh0dHBzOi8vYXBpLmdpdGh1Yi5j
b20vcmVwb3Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dwdC9zdGFyZ2F6ZXJzIiwKKyAgICAiY29udHJp
YnV0b3JzX3VybCI6ICJodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zL3dlYi1wbGF0Zm9ybS10
ZXN0cy93cHQvY29udHJpYnV0b3JzIiwKKyAgICAic3Vic2NyaWJlcnNfdXJsIjogImh0dHBzOi8v
YXBpLmdpdGh1Yi5jb20vcmVwb3Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dwdC9zdWJzY3JpYmVycyIs
CisgICAgInN1YnNjcmlwdGlvbl91cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy93
ZWItcGxhdGZvcm0tdGVzdHMvd3B0L3N1YnNjcmlwdGlvbiIsCisgICAgImNvbW1pdHNfdXJsIjog
Imh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dwdC9jb21t
aXRzey9zaGF9IiwKKyAgICAiZ2l0X2NvbW1pdHNfdXJsIjogImh0dHBzOi8vYXBpLmdpdGh1Yi5j
b20vcmVwb3Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dwdC9naXQvY29tbWl0c3svc2hhfSIsCisgICAg
ImNvbW1lbnRzX3VybCI6ICJodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zL3dlYi1wbGF0Zm9y
bS10ZXN0cy93cHQvY29tbWVudHN7L251bWJlcn0iLAorICAgICJpc3N1ZV9jb21tZW50X3VybCI6
ICJodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQvaXNz
dWVzL2NvbW1lbnRzey9udW1iZXJ9IiwKKyAgICAiY29udGVudHNfdXJsIjogImh0dHBzOi8vYXBp
LmdpdGh1Yi5jb20vcmVwb3Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dwdC9jb250ZW50cy97K3BhdGh9
IiwKKyAgICAiY29tcGFyZV91cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy93ZWIt
cGxhdGZvcm0tdGVzdHMvd3B0L2NvbXBhcmUve2Jhc2V9Li4ue2hlYWR9IiwKKyAgICAibWVyZ2Vz
X3VybCI6ICJodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zL3dlYi1wbGF0Zm9ybS10ZXN0cy93
cHQvbWVyZ2VzIiwKKyAgICAiYXJjaGl2ZV91cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9y
ZXBvcy93ZWItcGxhdGZvcm0tdGVzdHMvd3B0L3thcmNoaXZlX2Zvcm1hdH17L3JlZn0iLAorICAg
ICJkb3dubG9hZHNfdXJsIjogImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3dwdC9kb3dubG9hZHMiLAorICAgICJpc3N1ZXNfdXJsIjogImh0dHBzOi8vYXBp
LmdpdGh1Yi5jb20vcmVwb3Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dwdC9pc3N1ZXN7L251bWJlcn0i
LAorICAgICJwdWxsc191cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy93ZWItcGxh
dGZvcm0tdGVzdHMvd3B0L3B1bGxzey9udW1iZXJ9IiwKKyAgICAibWlsZXN0b25lc191cmwiOiAi
aHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy93ZWItcGxhdGZvcm0tdGVzdHMvd3B0L21pbGVz
dG9uZXN7L251bWJlcn0iLAorICAgICJub3RpZmljYXRpb25zX3VybCI6ICJodHRwczovL2FwaS5n
aXRodWIuY29tL3JlcG9zL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQvbm90aWZpY2F0aW9uc3s/c2lu
Y2UsYWxsLHBhcnRpY2lwYXRpbmd9IiwKKyAgICAibGFiZWxzX3VybCI6ICJodHRwczovL2FwaS5n
aXRodWIuY29tL3JlcG9zL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQvbGFiZWxzey9uYW1lfSIsCisg
ICAgInJlbGVhc2VzX3VybCI6ICJodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zL3dlYi1wbGF0
Zm9ybS10ZXN0cy93cHQvcmVsZWFzZXN7L2lkfSIsCisgICAgImRlcGxveW1lbnRzX3VybCI6ICJo
dHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQvZGVwbG95
bWVudHMiLAorICAgICJjcmVhdGVkX2F0IjogIjIwMTItMDMtMDRUMTI6NTg6MTFaIiwKKyAgICAi
dXBkYXRlZF9hdCI6ICIyMDE5LTAyLTI4VDEyOjQxOjMzWiIsCisgICAgInB1c2hlZF9hdCI6ICIy
MDE5LTAyLTI4VDEzOjQzOjE2WiIsCisgICAgImdpdF91cmwiOiAiZ2l0Oi8vZ2l0aHViLmNvbS93
ZWItcGxhdGZvcm0tdGVzdHMvd3B0LmdpdCIsCisgICAgInNzaF91cmwiOiAiZ2l0QGdpdGh1Yi5j
b206d2ViLXBsYXRmb3JtLXRlc3RzL3dwdC5naXQiLAorICAgICJjbG9uZV91cmwiOiAiaHR0cHM6
Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQuZ2l0IiwKKyAgICAic3ZuX3VybCI6
ICJodHRwczovL2dpdGh1Yi5jb20vd2ViLXBsYXRmb3JtLXRlc3RzL3dwdCIsCisgICAgImhvbWVw
YWdlIjogImh0dHA6Ly9pcmMudzMub3JnLz9jaGFubmVscz10ZXN0aW5nIiwKKyAgICAic2l6ZSI6
IDMyNDY0MSwKKyAgICAic3RhcmdhemVyc19jb3VudCI6IDIwNTgsCisgICAgIndhdGNoZXJzX2Nv
dW50IjogMjA1OCwKKyAgICAibGFuZ3VhZ2UiOiAiSFRNTCIsCisgICAgImhhc19pc3N1ZXMiOiB0
cnVlLAorICAgICJoYXNfcHJvamVjdHMiOiB0cnVlLAorICAgICJoYXNfZG93bmxvYWRzIjogdHJ1
ZSwKKyAgICAiaGFzX3dpa2kiOiB0cnVlLAorICAgICJoYXNfcGFnZXMiOiB0cnVlLAorICAgICJm
b3Jrc19jb3VudCI6IDE2MDQsCisgICAgIm1pcnJvcl91cmwiOiBudWxsLAorICAgICJhcmNoaXZl
ZCI6IGZhbHNlLAorICAgICJvcGVuX2lzc3Vlc19jb3VudCI6IDEzNTQsCisgICAgImxpY2Vuc2Ui
OiB7CisgICAgICAia2V5IjogIm90aGVyIiwKKyAgICAgICJuYW1lIjogIk90aGVyIiwKKyAgICAg
ICJzcGR4X2lkIjogIk5PQVNTRVJUSU9OIiwKKyAgICAgICJ1cmwiOiBudWxsLAorICAgICAgIm5v
ZGVfaWQiOiAiTURjNlRHbGpaVzV6WlRBPSIKKyAgICB9LAorICAgICJmb3JrcyI6IDE2MDQsCisg
ICAgIm9wZW5faXNzdWVzIjogMTM1NCwKKyAgICAid2F0Y2hlcnMiOiAyMDU4LAorICAgICJkZWZh
dWx0X2JyYW5jaCI6ICJtYXN0ZXIiCisgIH0sCisgICJvcmdhbml6YXRpb24iOiB7CisgICAgImxv
Z2luIjogIndlYi1wbGF0Zm9ybS10ZXN0cyIsCisgICAgImlkIjogMzcyMjYyMzMsCisgICAgIm5v
ZGVfaWQiOiAiTURFeU9rOXlaMkZ1YVhwaGRHbHZiak0zTWpJMk1qTXoiLAorICAgICJ1cmwiOiAi
aHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9vcmdzL3dlYi1wbGF0Zm9ybS10ZXN0cyIsCisgICAgInJl
cG9zX3VybCI6ICJodHRwczovL2FwaS5naXRodWIuY29tL29yZ3Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3JlcG9zIiwKKyAgICAiZXZlbnRzX3VybCI6ICJodHRwczovL2FwaS5naXRodWIuY29tL29yZ3Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2V2ZW50cyIsCisgICAgImhvb2tzX3VybCI6ICJodHRwczovL2Fw
aS5naXRodWIuY29tL29yZ3Mvd2ViLXBsYXRmb3JtLXRlc3RzL2hvb2tzIiwKKyAgICAiaXNzdWVz
X3VybCI6ICJodHRwczovL2FwaS5naXRodWIuY29tL29yZ3Mvd2ViLXBsYXRmb3JtLXRlc3RzL2lz
c3VlcyIsCisgICAgIm1lbWJlcnNfdXJsIjogImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vb3Jncy93
ZWItcGxhdGZvcm0tdGVzdHMvbWVtYmVyc3svbWVtYmVyfSIsCisgICAgInB1YmxpY19tZW1iZXJz
X3VybCI6ICJodHRwczovL2FwaS5naXRodWIuY29tL29yZ3Mvd2ViLXBsYXRmb3JtLXRlc3RzL3B1
YmxpY19tZW1iZXJzey9tZW1iZXJ9IiwKKyAgICAiYXZhdGFyX3VybCI6ICJodHRwczovL2F2YXRh
cnMwLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzM3MjI2MjMzP3Y9NCIsCisgICAgImRlc2NyaXB0
aW9uIjogIiIKKyAgfSwKKyAgInNlbmRlciI6IHsKKyAgICAibG9naW4iOiAiamdyYWhhbSIsCisg
ICAgImlkIjogMjk0ODY0LAorICAgICJub2RlX2lkIjogIk1EUTZWWE5sY2pJNU5EZzJOQT09IiwK
KyAgICAiYXZhdGFyX3VybCI6ICJodHRwczovL2F2YXRhcnMxLmdpdGh1YnVzZXJjb250ZW50LmNv
bS91LzI5NDg2ND92PTQiLAorICAgICJncmF2YXRhcl9pZCI6ICIiLAorICAgICJ1cmwiOiAiaHR0
cHM6Ly9hcGkuZ2l0aHViLmNvbS91c2Vycy9qZ3JhaGFtIiwKKyAgICAiaHRtbF91cmwiOiAiaHR0
cHM6Ly9naXRodWIuY29tL2pncmFoYW0iLAorICAgICJmb2xsb3dlcnNfdXJsIjogImh0dHBzOi8v
YXBpLmdpdGh1Yi5jb20vdXNlcnMvamdyYWhhbS9mb2xsb3dlcnMiLAorICAgICJmb2xsb3dpbmdf
dXJsIjogImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vdXNlcnMvamdyYWhhbS9mb2xsb3dpbmd7L290
aGVyX3VzZXJ9IiwKKyAgICAiZ2lzdHNfdXJsIjogImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vdXNl
cnMvamdyYWhhbS9naXN0c3svZ2lzdF9pZH0iLAorICAgICJzdGFycmVkX3VybCI6ICJodHRwczov
L2FwaS5naXRodWIuY29tL3VzZXJzL2pncmFoYW0vc3RhcnJlZHsvb3duZXJ9ey9yZXBvfSIsCisg
ICAgInN1YnNjcmlwdGlvbnNfdXJsIjogImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vdXNlcnMvamdy
YWhhbS9zdWJzY3JpcHRpb25zIiwKKyAgICAib3JnYW5pemF0aW9uc191cmwiOiAiaHR0cHM6Ly9h
cGkuZ2l0aHViLmNvbS91c2Vycy9qZ3JhaGFtL29yZ3MiLAorICAgICJyZXBvc191cmwiOiAiaHR0
cHM6Ly9hcGkuZ2l0aHViLmNvbS91c2Vycy9qZ3JhaGFtL3JlcG9zIiwKKyAgICAiZXZlbnRzX3Vy
bCI6ICJodHRwczovL2FwaS5naXRodWIuY29tL3VzZXJzL2pncmFoYW0vZXZlbnRzey9wcml2YWN5
fSIsCisgICAgInJlY2VpdmVkX2V2ZW50c191cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS91
c2Vycy9qZ3JhaGFtL3JlY2VpdmVkX2V2ZW50cyIsCisgICAgInR5cGUiOiAiVXNlciIsCisgICAg
InNpdGVfYWRtaW4iOiBmYWxzZQorICB9Cit9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2NpL3RjL3Rlc3RkYXRhL3ByX2V2ZW50
X3Rlc3RzX2FmZmVjdGVkLmpzb24gYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL2NpL3RjL3Rlc3RkYXRhL3ByX2V2ZW50X3Rlc3RzX2FmZmVjdGVkLmpz
b24KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uNzkyZWExYmNjY2ViYzAwZTY2ODBlMDI5Yzc2ODU0MmE2MTE4ODk0Zgot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvY2kvdGMvdGVzdGRhdGEvcHJfZXZlbnRfdGVzdHNfYWZmZWN0ZWQuanNvbgpA
QCAtMCwwICsxLDUwNSBAQAoreworICAiYWN0aW9uIjogInN5bmNocm9uaXplIiwKKyAgIm51bWJl
ciI6IDIwMzc4LAorICAicHVsbF9yZXF1ZXN0IjogeworICAgICJ1cmwiOiAiaHR0cHM6Ly9hcGku
Z2l0aHViLmNvbS9yZXBvcy93ZWItcGxhdGZvcm0tdGVzdHMvd3B0L3B1bGxzLzIwMzc4IiwKKyAg
ICAiaWQiOiAzNDQyODc5MjAsCisgICAgIm5vZGVfaWQiOiAiTURFeE9sQjFiR3hTWlhGMVpYTjBN
elEwTWpnM09USXciLAorICAgICJodG1sX3VybCI6ICJodHRwczovL2dpdGh1Yi5jb20vd2ViLXBs
YXRmb3JtLXRlc3RzL3dwdC9wdWxsLzIwMzc4IiwKKyAgICAiZGlmZl91cmwiOiAiaHR0cHM6Ly9n
aXRodWIuY29tL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQvcHVsbC8yMDM3OC5kaWZmIiwKKyAgICAi
cGF0Y2hfdXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxhdGZvcm0tdGVzdHMvd3B0L3B1
bGwvMjAzNzgucGF0Y2giLAorICAgICJpc3N1ZV91cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNv
bS9yZXBvcy93ZWItcGxhdGZvcm0tdGVzdHMvd3B0L2lzc3Vlcy8yMDM3OCIsCisgICAgIm51bWJl
ciI6IDIwMzc4LAorICAgICJzdGF0ZSI6ICJvcGVuIiwKKyAgICAibG9ja2VkIjogZmFsc2UsCisg
ICAgInRpdGxlIjogIk1pZ3JhdGUgbW9yZSBsYXlvdXQgaW5zdGFiaWxpdHkgdGVzdHMgdG8gV1BU
LiIsCisgICAgInVzZXIiOiB7CisgICAgICAibG9naW4iOiAiY2hyb21pdW0td3B0LWV4cG9ydC1i
b3QiLAorICAgICAgImlkIjogMjU3NTI4OTIsCisgICAgICAibm9kZV9pZCI6ICJNRFE2VlhObGNq
STFOelV5T0RreSIsCisgICAgICAiYXZhdGFyX3VybCI6ICJodHRwczovL2F2YXRhcnMxLmdpdGh1
YnVzZXJjb250ZW50LmNvbS91LzI1NzUyODkyP3Y9NCIsCisgICAgICAiZ3JhdmF0YXJfaWQiOiAi
IiwKKyAgICAgICJ1cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS91c2Vycy9jaHJvbWl1bS13
cHQtZXhwb3J0LWJvdCIsCisgICAgICAiaHRtbF91cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2No
cm9taXVtLXdwdC1leHBvcnQtYm90IiwKKyAgICAgICJmb2xsb3dlcnNfdXJsIjogImh0dHBzOi8v
YXBpLmdpdGh1Yi5jb20vdXNlcnMvY2hyb21pdW0td3B0LWV4cG9ydC1ib3QvZm9sbG93ZXJzIiwK
KyAgICAgICJmb2xsb3dpbmdfdXJsIjogImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vdXNlcnMvY2hy
b21pdW0td3B0LWV4cG9ydC1ib3QvZm9sbG93aW5ney9vdGhlcl91c2VyfSIsCisgICAgICAiZ2lz
dHNfdXJsIjogImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vdXNlcnMvY2hyb21pdW0td3B0LWV4cG9y
dC1ib3QvZ2lzdHN7L2dpc3RfaWR9IiwKKyAgICAgICJzdGFycmVkX3VybCI6ICJodHRwczovL2Fw
aS5naXRodWIuY29tL3VzZXJzL2Nocm9taXVtLXdwdC1leHBvcnQtYm90L3N0YXJyZWR7L293bmVy
fXsvcmVwb30iLAorICAgICAgInN1YnNjcmlwdGlvbnNfdXJsIjogImh0dHBzOi8vYXBpLmdpdGh1
Yi5jb20vdXNlcnMvY2hyb21pdW0td3B0LWV4cG9ydC1ib3Qvc3Vic2NyaXB0aW9ucyIsCisgICAg
ICAib3JnYW5pemF0aW9uc191cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS91c2Vycy9jaHJv
bWl1bS13cHQtZXhwb3J0LWJvdC9vcmdzIiwKKyAgICAgICJyZXBvc191cmwiOiAiaHR0cHM6Ly9h
cGkuZ2l0aHViLmNvbS91c2Vycy9jaHJvbWl1bS13cHQtZXhwb3J0LWJvdC9yZXBvcyIsCisgICAg
ICAiZXZlbnRzX3VybCI6ICJodHRwczovL2FwaS5naXRodWIuY29tL3VzZXJzL2Nocm9taXVtLXdw
dC1leHBvcnQtYm90L2V2ZW50c3svcHJpdmFjeX0iLAorICAgICAgInJlY2VpdmVkX2V2ZW50c191
cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS91c2Vycy9jaHJvbWl1bS13cHQtZXhwb3J0LWJv
dC9yZWNlaXZlZF9ldmVudHMiLAorICAgICAgInR5cGUiOiAiVXNlciIsCisgICAgICAic2l0ZV9h
ZG1pbiI6IGZhbHNlCisgICAgfSwKKyAgICAiYm9keSI6ICJCdWc6IDk4NDEwOVxuQ2hhbmdlLUlk
OiBJZTMxYzYzOTk1ZjYzZjhhY2JmYTI2ZDk3OTY2ZmZlMzAwMTZlZGQzY1xuUmV2aWV3ZWQtb246
IGh0dHBzOi8vY2hyb21pdW0tcmV2aWV3Lmdvb2dsZXNvdXJjZS5jb20vYy9jaHJvbWl1bS9zcmMv
Ky8xOTI1NDQ3XG5Db21taXQtUXVldWU6IFN0ZXZlIEtvYmVzIFxcPHNrb2Jlc0BjaHJvbWl1bS5v
cmc+XG5SZXZpZXdlZC1ieTogTmljb2zDoXMgUGXDsWEgTW9yZW5vIFxcPG5wbUBjaHJvbWl1bS5v
cmc+XG5Dci1Db21taXQtUG9zaXRpb246IHJlZnMvaGVhZHMvbWFzdGVyQHsjNzE4NjQ4fVxuXG4i
LAorICAgICJjcmVhdGVkX2F0IjogIjIwMTktMTEtMjFUMjM6NTM6NThaIiwKKyAgICAidXBkYXRl
ZF9hdCI6ICIyMDE5LTExLTI1VDE1OjU0OjE5WiIsCisgICAgImNsb3NlZF9hdCI6IG51bGwsCisg
ICAgIm1lcmdlZF9hdCI6IG51bGwsCisgICAgIm1lcmdlX2NvbW1pdF9zaGEiOiAiMzY3MjZlM2U5
OTJhODNlODA2MDhhY2Y0N2M4ODZmYzQ0MDM5MDY5MSIsCisgICAgImFzc2lnbmVlIjogbnVsbCwK
KyAgICAiYXNzaWduZWVzIjogWworCisgICAgXSwKKyAgICAicmVxdWVzdGVkX3Jldmlld2VycyI6
IFsKKworICAgIF0sCisgICAgInJlcXVlc3RlZF90ZWFtcyI6IFsKKworICAgIF0sCisgICAgImxh
YmVscyI6IFsKKyAgICAgIHsKKyAgICAgICAgImlkIjogNDkwODkxNTAyLAorICAgICAgICAibm9k
ZV9pZCI6ICJNRFU2VEdGaVpXdzBPVEE0T1RFMU1EST0iLAorICAgICAgICAidXJsIjogImh0dHBz
Oi8vYXBpLmdpdGh1Yi5jb20vcmVwb3Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dwdC9sYWJlbHMvY2hy
b21pdW0tZXhwb3J0IiwKKyAgICAgICAgIm5hbWUiOiAiY2hyb21pdW0tZXhwb3J0IiwKKyAgICAg
ICAgImNvbG9yIjogIjQ3ODhmNCIsCisgICAgICAgICJkZWZhdWx0IjogZmFsc2UsCisgICAgICAg
ICJkZXNjcmlwdGlvbiI6IG51bGwKKyAgICAgIH0sCisgICAgICB7CisgICAgICAgICJpZCI6IDEz
NjMxOTk2NTEsCisgICAgICAgICJub2RlX2lkIjogIk1EVTZUR0ZpWld3eE16WXpNVGs1TmpVeCIs
CisgICAgICAgICJ1cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy93ZWItcGxhdGZv
cm0tdGVzdHMvd3B0L2xhYmVscy9sYXlvdXQtaW5zdGFiaWxpdHkiLAorICAgICAgICAibmFtZSI6
ICJsYXlvdXQtaW5zdGFiaWxpdHkiLAorICAgICAgICAiY29sb3IiOiAiZWRlZGVkIiwKKyAgICAg
ICAgImRlZmF1bHQiOiBmYWxzZSwKKyAgICAgICAgImRlc2NyaXB0aW9uIjogbnVsbAorICAgICAg
fQorICAgIF0sCisgICAgIm1pbGVzdG9uZSI6IG51bGwsCisgICAgImNvbW1pdHNfdXJsIjogImh0
dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dwdC9wdWxscy8y
MDM3OC9jb21taXRzIiwKKyAgICAicmV2aWV3X2NvbW1lbnRzX3VybCI6ICJodHRwczovL2FwaS5n
aXRodWIuY29tL3JlcG9zL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQvcHVsbHMvMjAzNzgvY29tbWVu
dHMiLAorICAgICJyZXZpZXdfY29tbWVudF91cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9y
ZXBvcy93ZWItcGxhdGZvcm0tdGVzdHMvd3B0L3B1bGxzL2NvbW1lbnRzey9udW1iZXJ9IiwKKyAg
ICAiY29tbWVudHNfdXJsIjogImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3dwdC9pc3N1ZXMvMjAzNzgvY29tbWVudHMiLAorICAgICJzdGF0dXNlc191cmwi
OiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy93ZWItcGxhdGZvcm0tdGVzdHMvd3B0L3N0
YXR1c2VzLzdkZjg0ZTNmODdmMDU4NjBhMmI4NmQwYjgwZGMzZWIwNmQ4ZTcxMDMiLAorICAgICJo
ZWFkIjogeworICAgICAgImxhYmVsIjogIndlYi1wbGF0Zm9ybS10ZXN0czpjaHJvbWl1bS1leHBv
cnQtY2wtMTkyNTQ0NyIsCisgICAgICAicmVmIjogImNocm9taXVtLWV4cG9ydC1jbC0xOTI1NDQ3
IiwKKyAgICAgICJzaGEiOiAiN2RmODRlM2Y4N2YwNTg2MGEyYjg2ZDBiODBkYzNlYjA2ZDhlNzEw
MyIsCisgICAgICAidXNlciI6IHsKKyAgICAgICAgImxvZ2luIjogIndlYi1wbGF0Zm9ybS10ZXN0
cyIsCisgICAgICAgICJpZCI6IDM3MjI2MjMzLAorICAgICAgICAibm9kZV9pZCI6ICJNREV5T2s5
eVoyRnVhWHBoZEdsdmJqTTNNakkyTWpNeiIsCisgICAgICAgICJhdmF0YXJfdXJsIjogImh0dHBz
Oi8vYXZhdGFyczAuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMzcyMjYyMzM/dj00IiwKKyAgICAg
ICAgImdyYXZhdGFyX2lkIjogIiIsCisgICAgICAgICJ1cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHVi
LmNvbS91c2Vycy93ZWItcGxhdGZvcm0tdGVzdHMiLAorICAgICAgICAiaHRtbF91cmwiOiAiaHR0
cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9ybS10ZXN0cyIsCisgICAgICAgICJmb2xsb3dlcnNf
dXJsIjogImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vdXNlcnMvd2ViLXBsYXRmb3JtLXRlc3RzL2Zv
bGxvd2VycyIsCisgICAgICAgICJmb2xsb3dpbmdfdXJsIjogImh0dHBzOi8vYXBpLmdpdGh1Yi5j
b20vdXNlcnMvd2ViLXBsYXRmb3JtLXRlc3RzL2ZvbGxvd2luZ3svb3RoZXJfdXNlcn0iLAorICAg
ICAgICAiZ2lzdHNfdXJsIjogImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vdXNlcnMvd2ViLXBsYXRm
b3JtLXRlc3RzL2dpc3Rzey9naXN0X2lkfSIsCisgICAgICAgICJzdGFycmVkX3VybCI6ICJodHRw
czovL2FwaS5naXRodWIuY29tL3VzZXJzL3dlYi1wbGF0Zm9ybS10ZXN0cy9zdGFycmVkey9vd25l
cn17L3JlcG99IiwKKyAgICAgICAgInN1YnNjcmlwdGlvbnNfdXJsIjogImh0dHBzOi8vYXBpLmdp
dGh1Yi5jb20vdXNlcnMvd2ViLXBsYXRmb3JtLXRlc3RzL3N1YnNjcmlwdGlvbnMiLAorICAgICAg
ICAib3JnYW5pemF0aW9uc191cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS91c2Vycy93ZWIt
cGxhdGZvcm0tdGVzdHMvb3JncyIsCisgICAgICAgICJyZXBvc191cmwiOiAiaHR0cHM6Ly9hcGku
Z2l0aHViLmNvbS91c2Vycy93ZWItcGxhdGZvcm0tdGVzdHMvcmVwb3MiLAorICAgICAgICAiZXZl
bnRzX3VybCI6ICJodHRwczovL2FwaS5naXRodWIuY29tL3VzZXJzL3dlYi1wbGF0Zm9ybS10ZXN0
cy9ldmVudHN7L3ByaXZhY3l9IiwKKyAgICAgICAgInJlY2VpdmVkX2V2ZW50c191cmwiOiAiaHR0
cHM6Ly9hcGkuZ2l0aHViLmNvbS91c2Vycy93ZWItcGxhdGZvcm0tdGVzdHMvcmVjZWl2ZWRfZXZl
bnRzIiwKKyAgICAgICAgInR5cGUiOiAiT3JnYW5pemF0aW9uIiwKKyAgICAgICAgInNpdGVfYWRt
aW4iOiBmYWxzZQorICAgICAgfSwKKyAgICAgICJyZXBvIjogeworICAgICAgICAiaWQiOiAzNjE4
MTMzLAorICAgICAgICAibm9kZV9pZCI6ICJNREV3T2xKbGNHOXphWFJ2Y25rek5qRTRNVE16IiwK
KyAgICAgICAgIm5hbWUiOiAid3B0IiwKKyAgICAgICAgImZ1bGxfbmFtZSI6ICJ3ZWItcGxhdGZv
cm0tdGVzdHMvd3B0IiwKKyAgICAgICAgInByaXZhdGUiOiBmYWxzZSwKKyAgICAgICAgIm93bmVy
IjogeworICAgICAgICAgICJsb2dpbiI6ICJ3ZWItcGxhdGZvcm0tdGVzdHMiLAorICAgICAgICAg
ICJpZCI6IDM3MjI2MjMzLAorICAgICAgICAgICJub2RlX2lkIjogIk1ERXlPazl5WjJGdWFYcGhk
R2x2YmpNM01qSTJNak16IiwKKyAgICAgICAgICAiYXZhdGFyX3VybCI6ICJodHRwczovL2F2YXRh
cnMwLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzM3MjI2MjMzP3Y9NCIsCisgICAgICAgICAgImdy
YXZhdGFyX2lkIjogIiIsCisgICAgICAgICAgInVybCI6ICJodHRwczovL2FwaS5naXRodWIuY29t
L3VzZXJzL3dlYi1wbGF0Zm9ybS10ZXN0cyIsCisgICAgICAgICAgImh0bWxfdXJsIjogImh0dHBz
Oi8vZ2l0aHViLmNvbS93ZWItcGxhdGZvcm0tdGVzdHMiLAorICAgICAgICAgICJmb2xsb3dlcnNf
dXJsIjogImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vdXNlcnMvd2ViLXBsYXRmb3JtLXRlc3RzL2Zv
bGxvd2VycyIsCisgICAgICAgICAgImZvbGxvd2luZ191cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHVi
LmNvbS91c2Vycy93ZWItcGxhdGZvcm0tdGVzdHMvZm9sbG93aW5ney9vdGhlcl91c2VyfSIsCisg
ICAgICAgICAgImdpc3RzX3VybCI6ICJodHRwczovL2FwaS5naXRodWIuY29tL3VzZXJzL3dlYi1w
bGF0Zm9ybS10ZXN0cy9naXN0c3svZ2lzdF9pZH0iLAorICAgICAgICAgICJzdGFycmVkX3VybCI6
ICJodHRwczovL2FwaS5naXRodWIuY29tL3VzZXJzL3dlYi1wbGF0Zm9ybS10ZXN0cy9zdGFycmVk
ey9vd25lcn17L3JlcG99IiwKKyAgICAgICAgICAic3Vic2NyaXB0aW9uc191cmwiOiAiaHR0cHM6
Ly9hcGkuZ2l0aHViLmNvbS91c2Vycy93ZWItcGxhdGZvcm0tdGVzdHMvc3Vic2NyaXB0aW9ucyIs
CisgICAgICAgICAgIm9yZ2FuaXphdGlvbnNfdXJsIjogImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20v
dXNlcnMvd2ViLXBsYXRmb3JtLXRlc3RzL29yZ3MiLAorICAgICAgICAgICJyZXBvc191cmwiOiAi
aHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS91c2Vycy93ZWItcGxhdGZvcm0tdGVzdHMvcmVwb3MiLAor
ICAgICAgICAgICJldmVudHNfdXJsIjogImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vdXNlcnMvd2Vi
LXBsYXRmb3JtLXRlc3RzL2V2ZW50c3svcHJpdmFjeX0iLAorICAgICAgICAgICJyZWNlaXZlZF9l
dmVudHNfdXJsIjogImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vdXNlcnMvd2ViLXBsYXRmb3JtLXRl
c3RzL3JlY2VpdmVkX2V2ZW50cyIsCisgICAgICAgICAgInR5cGUiOiAiT3JnYW5pemF0aW9uIiwK
KyAgICAgICAgICAic2l0ZV9hZG1pbiI6IGZhbHNlCisgICAgICAgIH0sCisgICAgICAgICJodG1s
X3VybCI6ICJodHRwczovL2dpdGh1Yi5jb20vd2ViLXBsYXRmb3JtLXRlc3RzL3dwdCIsCisgICAg
ICAgICJkZXNjcmlwdGlvbiI6ICJUZXN0IHN1aXRlcyBmb3IgV2ViIHBsYXRmb3JtIHNwZWNzIOKA
lCBpbmNsdWRpbmcgV0hBVFdHLCBXM0MsIGFuZCBvdGhlcnMiLAorICAgICAgICAiZm9yayI6IGZh
bHNlLAorICAgICAgICAidXJsIjogImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3dwdCIsCisgICAgICAgICJmb3Jrc191cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0
aHViLmNvbS9yZXBvcy93ZWItcGxhdGZvcm0tdGVzdHMvd3B0L2ZvcmtzIiwKKyAgICAgICAgImtl
eXNfdXJsIjogImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3dwdC9rZXlzey9rZXlfaWR9IiwKKyAgICAgICAgImNvbGxhYm9yYXRvcnNfdXJsIjogImh0dHBz
Oi8vYXBpLmdpdGh1Yi5jb20vcmVwb3Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dwdC9jb2xsYWJvcmF0
b3Jzey9jb2xsYWJvcmF0b3J9IiwKKyAgICAgICAgInRlYW1zX3VybCI6ICJodHRwczovL2FwaS5n
aXRodWIuY29tL3JlcG9zL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQvdGVhbXMiLAorICAgICAgICAi
aG9va3NfdXJsIjogImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3dwdC9ob29rcyIsCisgICAgICAgICJpc3N1ZV9ldmVudHNfdXJsIjogImh0dHBzOi8vYXBp
LmdpdGh1Yi5jb20vcmVwb3Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dwdC9pc3N1ZXMvZXZlbnRzey9u
dW1iZXJ9IiwKKyAgICAgICAgImV2ZW50c191cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9y
ZXBvcy93ZWItcGxhdGZvcm0tdGVzdHMvd3B0L2V2ZW50cyIsCisgICAgICAgICJhc3NpZ25lZXNf
dXJsIjogImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dw
dC9hc3NpZ25lZXN7L3VzZXJ9IiwKKyAgICAgICAgImJyYW5jaGVzX3VybCI6ICJodHRwczovL2Fw
aS5naXRodWIuY29tL3JlcG9zL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQvYnJhbmNoZXN7L2JyYW5j
aH0iLAorICAgICAgICAidGFnc191cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy93
ZWItcGxhdGZvcm0tdGVzdHMvd3B0L3RhZ3MiLAorICAgICAgICAiYmxvYnNfdXJsIjogImh0dHBz
Oi8vYXBpLmdpdGh1Yi5jb20vcmVwb3Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dwdC9naXQvYmxvYnN7
L3NoYX0iLAorICAgICAgICAiZ2l0X3RhZ3NfdXJsIjogImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20v
cmVwb3Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dwdC9naXQvdGFnc3svc2hhfSIsCisgICAgICAgICJn
aXRfcmVmc191cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy93ZWItcGxhdGZvcm0t
dGVzdHMvd3B0L2dpdC9yZWZzey9zaGF9IiwKKyAgICAgICAgInRyZWVzX3VybCI6ICJodHRwczov
L2FwaS5naXRodWIuY29tL3JlcG9zL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQvZ2l0L3RyZWVzey9z
aGF9IiwKKyAgICAgICAgInN0YXR1c2VzX3VybCI6ICJodHRwczovL2FwaS5naXRodWIuY29tL3Jl
cG9zL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQvc3RhdHVzZXMve3NoYX0iLAorICAgICAgICAibGFu
Z3VhZ2VzX3VybCI6ICJodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zL3dlYi1wbGF0Zm9ybS10
ZXN0cy93cHQvbGFuZ3VhZ2VzIiwKKyAgICAgICAgInN0YXJnYXplcnNfdXJsIjogImh0dHBzOi8v
YXBpLmdpdGh1Yi5jb20vcmVwb3Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dwdC9zdGFyZ2F6ZXJzIiwK
KyAgICAgICAgImNvbnRyaWJ1dG9yc191cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBv
cy93ZWItcGxhdGZvcm0tdGVzdHMvd3B0L2NvbnRyaWJ1dG9ycyIsCisgICAgICAgICJzdWJzY3Jp
YmVyc191cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy93ZWItcGxhdGZvcm0tdGVz
dHMvd3B0L3N1YnNjcmliZXJzIiwKKyAgICAgICAgInN1YnNjcmlwdGlvbl91cmwiOiAiaHR0cHM6
Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy93ZWItcGxhdGZvcm0tdGVzdHMvd3B0L3N1YnNjcmlwdGlv
biIsCisgICAgICAgICJjb21taXRzX3VybCI6ICJodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9z
L3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQvY29tbWl0c3svc2hhfSIsCisgICAgICAgICJnaXRfY29t
bWl0c191cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy93ZWItcGxhdGZvcm0tdGVz
dHMvd3B0L2dpdC9jb21taXRzey9zaGF9IiwKKyAgICAgICAgImNvbW1lbnRzX3VybCI6ICJodHRw
czovL2FwaS5naXRodWIuY29tL3JlcG9zL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQvY29tbWVudHN7
L251bWJlcn0iLAorICAgICAgICAiaXNzdWVfY29tbWVudF91cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0
aHViLmNvbS9yZXBvcy93ZWItcGxhdGZvcm0tdGVzdHMvd3B0L2lzc3Vlcy9jb21tZW50c3svbnVt
YmVyfSIsCisgICAgICAgICJjb250ZW50c191cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9y
ZXBvcy93ZWItcGxhdGZvcm0tdGVzdHMvd3B0L2NvbnRlbnRzL3srcGF0aH0iLAorICAgICAgICAi
Y29tcGFyZV91cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy93ZWItcGxhdGZvcm0t
dGVzdHMvd3B0L2NvbXBhcmUve2Jhc2V9Li4ue2hlYWR9IiwKKyAgICAgICAgIm1lcmdlc191cmwi
OiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy93ZWItcGxhdGZvcm0tdGVzdHMvd3B0L21l
cmdlcyIsCisgICAgICAgICJhcmNoaXZlX3VybCI6ICJodHRwczovL2FwaS5naXRodWIuY29tL3Jl
cG9zL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQve2FyY2hpdmVfZm9ybWF0fXsvcmVmfSIsCisgICAg
ICAgICJkb3dubG9hZHNfdXJsIjogImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3dwdC9kb3dubG9hZHMiLAorICAgICAgICAiaXNzdWVzX3VybCI6ICJodHRw
czovL2FwaS5naXRodWIuY29tL3JlcG9zL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQvaXNzdWVzey9u
dW1iZXJ9IiwKKyAgICAgICAgInB1bGxzX3VybCI6ICJodHRwczovL2FwaS5naXRodWIuY29tL3Jl
cG9zL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQvcHVsbHN7L251bWJlcn0iLAorICAgICAgICAibWls
ZXN0b25lc191cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy93ZWItcGxhdGZvcm0t
dGVzdHMvd3B0L21pbGVzdG9uZXN7L251bWJlcn0iLAorICAgICAgICAibm90aWZpY2F0aW9uc191
cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy93ZWItcGxhdGZvcm0tdGVzdHMvd3B0
L25vdGlmaWNhdGlvbnN7P3NpbmNlLGFsbCxwYXJ0aWNpcGF0aW5nfSIsCisgICAgICAgICJsYWJl
bHNfdXJsIjogImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3dwdC9sYWJlbHN7L25hbWV9IiwKKyAgICAgICAgInJlbGVhc2VzX3VybCI6ICJodHRwczovL2Fw
aS5naXRodWIuY29tL3JlcG9zL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQvcmVsZWFzZXN7L2lkfSIs
CisgICAgICAgICJkZXBsb3ltZW50c191cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBv
cy93ZWItcGxhdGZvcm0tdGVzdHMvd3B0L2RlcGxveW1lbnRzIiwKKyAgICAgICAgImNyZWF0ZWRf
YXQiOiAiMjAxMi0wMy0wNFQxMjo1ODoxMVoiLAorICAgICAgICAidXBkYXRlZF9hdCI6ICIyMDE5
LTExLTI1VDE1OjQwOjU5WiIsCisgICAgICAgICJwdXNoZWRfYXQiOiAiMjAxOS0xMS0yNVQxNTo1
NDoxOFoiLAorICAgICAgICAiZ2l0X3VybCI6ICJnaXQ6Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9y
bS10ZXN0cy93cHQuZ2l0IiwKKyAgICAgICAgInNzaF91cmwiOiAiZ2l0QGdpdGh1Yi5jb206d2Vi
LXBsYXRmb3JtLXRlc3RzL3dwdC5naXQiLAorICAgICAgICAiY2xvbmVfdXJsIjogImh0dHBzOi8v
Z2l0aHViLmNvbS93ZWItcGxhdGZvcm0tdGVzdHMvd3B0LmdpdCIsCisgICAgICAgICJzdm5fdXJs
IjogImh0dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxhdGZvcm0tdGVzdHMvd3B0IiwKKyAgICAgICAg
ImhvbWVwYWdlIjogImh0dHBzOi8vd2ViLXBsYXRmb3JtLXRlc3RzLm9yZy8iLAorICAgICAgICAi
c2l6ZSI6IDMyOTI3OCwKKyAgICAgICAgInN0YXJnYXplcnNfY291bnQiOiAyNTM2LAorICAgICAg
ICAid2F0Y2hlcnNfY291bnQiOiAyNTM2LAorICAgICAgICAibGFuZ3VhZ2UiOiAiSFRNTCIsCisg
ICAgICAgICJoYXNfaXNzdWVzIjogdHJ1ZSwKKyAgICAgICAgImhhc19wcm9qZWN0cyI6IHRydWUs
CisgICAgICAgICJoYXNfZG93bmxvYWRzIjogdHJ1ZSwKKyAgICAgICAgImhhc193aWtpIjogdHJ1
ZSwKKyAgICAgICAgImhhc19wYWdlcyI6IHRydWUsCisgICAgICAgICJmb3Jrc19jb3VudCI6IDE4
MzcsCisgICAgICAgICJtaXJyb3JfdXJsIjogbnVsbCwKKyAgICAgICAgImFyY2hpdmVkIjogZmFs
c2UsCisgICAgICAgICJkaXNhYmxlZCI6IGZhbHNlLAorICAgICAgICAib3Blbl9pc3N1ZXNfY291
bnQiOiAxNTc2LAorICAgICAgICAibGljZW5zZSI6IHsKKyAgICAgICAgICAia2V5IjogIm90aGVy
IiwKKyAgICAgICAgICAibmFtZSI6ICJPdGhlciIsCisgICAgICAgICAgInNwZHhfaWQiOiAiTk9B
U1NFUlRJT04iLAorICAgICAgICAgICJ1cmwiOiBudWxsLAorICAgICAgICAgICJub2RlX2lkIjog
Ik1EYzZUR2xqWlc1elpUQT0iCisgICAgICAgIH0sCisgICAgICAgICJmb3JrcyI6IDE4MzcsCisg
ICAgICAgICJvcGVuX2lzc3VlcyI6IDE1NzYsCisgICAgICAgICJ3YXRjaGVycyI6IDI1MzYsCisg
ICAgICAgICJkZWZhdWx0X2JyYW5jaCI6ICJtYXN0ZXIiCisgICAgICB9CisgICAgfSwKKyAgICAi
YmFzZSI6IHsKKyAgICAgICJsYWJlbCI6ICJ3ZWItcGxhdGZvcm0tdGVzdHM6bWFzdGVyIiwKKyAg
ICAgICJyZWYiOiAibWFzdGVyIiwKKyAgICAgICJzaGEiOiAiOTBlYmU1YzMzYzQ0MDkwMjcxNzU5
ZjhlOWRjNDNkMGI1YmQwZjhmNyIsCisgICAgICAidXNlciI6IHsKKyAgICAgICAgImxvZ2luIjog
IndlYi1wbGF0Zm9ybS10ZXN0cyIsCisgICAgICAgICJpZCI6IDM3MjI2MjMzLAorICAgICAgICAi
bm9kZV9pZCI6ICJNREV5T2s5eVoyRnVhWHBoZEdsdmJqTTNNakkyTWpNeiIsCisgICAgICAgICJh
dmF0YXJfdXJsIjogImh0dHBzOi8vYXZhdGFyczAuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMzcy
MjYyMzM/dj00IiwKKyAgICAgICAgImdyYXZhdGFyX2lkIjogIiIsCisgICAgICAgICJ1cmwiOiAi
aHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS91c2Vycy93ZWItcGxhdGZvcm0tdGVzdHMiLAorICAgICAg
ICAiaHRtbF91cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9ybS10ZXN0cyIsCisg
ICAgICAgICJmb2xsb3dlcnNfdXJsIjogImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vdXNlcnMvd2Vi
LXBsYXRmb3JtLXRlc3RzL2ZvbGxvd2VycyIsCisgICAgICAgICJmb2xsb3dpbmdfdXJsIjogImh0
dHBzOi8vYXBpLmdpdGh1Yi5jb20vdXNlcnMvd2ViLXBsYXRmb3JtLXRlc3RzL2ZvbGxvd2luZ3sv
b3RoZXJfdXNlcn0iLAorICAgICAgICAiZ2lzdHNfdXJsIjogImh0dHBzOi8vYXBpLmdpdGh1Yi5j
b20vdXNlcnMvd2ViLXBsYXRmb3JtLXRlc3RzL2dpc3Rzey9naXN0X2lkfSIsCisgICAgICAgICJz
dGFycmVkX3VybCI6ICJodHRwczovL2FwaS5naXRodWIuY29tL3VzZXJzL3dlYi1wbGF0Zm9ybS10
ZXN0cy9zdGFycmVkey9vd25lcn17L3JlcG99IiwKKyAgICAgICAgInN1YnNjcmlwdGlvbnNfdXJs
IjogImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vdXNlcnMvd2ViLXBsYXRmb3JtLXRlc3RzL3N1YnNj
cmlwdGlvbnMiLAorICAgICAgICAib3JnYW5pemF0aW9uc191cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0
aHViLmNvbS91c2Vycy93ZWItcGxhdGZvcm0tdGVzdHMvb3JncyIsCisgICAgICAgICJyZXBvc191
cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS91c2Vycy93ZWItcGxhdGZvcm0tdGVzdHMvcmVw
b3MiLAorICAgICAgICAiZXZlbnRzX3VybCI6ICJodHRwczovL2FwaS5naXRodWIuY29tL3VzZXJz
L3dlYi1wbGF0Zm9ybS10ZXN0cy9ldmVudHN7L3ByaXZhY3l9IiwKKyAgICAgICAgInJlY2VpdmVk
X2V2ZW50c191cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS91c2Vycy93ZWItcGxhdGZvcm0t
dGVzdHMvcmVjZWl2ZWRfZXZlbnRzIiwKKyAgICAgICAgInR5cGUiOiAiT3JnYW5pemF0aW9uIiwK
KyAgICAgICAgInNpdGVfYWRtaW4iOiBmYWxzZQorICAgICAgfSwKKyAgICAgICJyZXBvIjogewor
ICAgICAgICAiaWQiOiAzNjE4MTMzLAorICAgICAgICAibm9kZV9pZCI6ICJNREV3T2xKbGNHOXph
WFJ2Y25rek5qRTRNVE16IiwKKyAgICAgICAgIm5hbWUiOiAid3B0IiwKKyAgICAgICAgImZ1bGxf
bmFtZSI6ICJ3ZWItcGxhdGZvcm0tdGVzdHMvd3B0IiwKKyAgICAgICAgInByaXZhdGUiOiBmYWxz
ZSwKKyAgICAgICAgIm93bmVyIjogeworICAgICAgICAgICJsb2dpbiI6ICJ3ZWItcGxhdGZvcm0t
dGVzdHMiLAorICAgICAgICAgICJpZCI6IDM3MjI2MjMzLAorICAgICAgICAgICJub2RlX2lkIjog
Ik1ERXlPazl5WjJGdWFYcGhkR2x2YmpNM01qSTJNak16IiwKKyAgICAgICAgICAiYXZhdGFyX3Vy
bCI6ICJodHRwczovL2F2YXRhcnMwLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzM3MjI2MjMzP3Y9
NCIsCisgICAgICAgICAgImdyYXZhdGFyX2lkIjogIiIsCisgICAgICAgICAgInVybCI6ICJodHRw
czovL2FwaS5naXRodWIuY29tL3VzZXJzL3dlYi1wbGF0Zm9ybS10ZXN0cyIsCisgICAgICAgICAg
Imh0bWxfdXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxhdGZvcm0tdGVzdHMiLAorICAg
ICAgICAgICJmb2xsb3dlcnNfdXJsIjogImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vdXNlcnMvd2Vi
LXBsYXRmb3JtLXRlc3RzL2ZvbGxvd2VycyIsCisgICAgICAgICAgImZvbGxvd2luZ191cmwiOiAi
aHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS91c2Vycy93ZWItcGxhdGZvcm0tdGVzdHMvZm9sbG93aW5n
ey9vdGhlcl91c2VyfSIsCisgICAgICAgICAgImdpc3RzX3VybCI6ICJodHRwczovL2FwaS5naXRo
dWIuY29tL3VzZXJzL3dlYi1wbGF0Zm9ybS10ZXN0cy9naXN0c3svZ2lzdF9pZH0iLAorICAgICAg
ICAgICJzdGFycmVkX3VybCI6ICJodHRwczovL2FwaS5naXRodWIuY29tL3VzZXJzL3dlYi1wbGF0
Zm9ybS10ZXN0cy9zdGFycmVkey9vd25lcn17L3JlcG99IiwKKyAgICAgICAgICAic3Vic2NyaXB0
aW9uc191cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS91c2Vycy93ZWItcGxhdGZvcm0tdGVz
dHMvc3Vic2NyaXB0aW9ucyIsCisgICAgICAgICAgIm9yZ2FuaXphdGlvbnNfdXJsIjogImh0dHBz
Oi8vYXBpLmdpdGh1Yi5jb20vdXNlcnMvd2ViLXBsYXRmb3JtLXRlc3RzL29yZ3MiLAorICAgICAg
ICAgICJyZXBvc191cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS91c2Vycy93ZWItcGxhdGZv
cm0tdGVzdHMvcmVwb3MiLAorICAgICAgICAgICJldmVudHNfdXJsIjogImh0dHBzOi8vYXBpLmdp
dGh1Yi5jb20vdXNlcnMvd2ViLXBsYXRmb3JtLXRlc3RzL2V2ZW50c3svcHJpdmFjeX0iLAorICAg
ICAgICAgICJyZWNlaXZlZF9ldmVudHNfdXJsIjogImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vdXNl
cnMvd2ViLXBsYXRmb3JtLXRlc3RzL3JlY2VpdmVkX2V2ZW50cyIsCisgICAgICAgICAgInR5cGUi
OiAiT3JnYW5pemF0aW9uIiwKKyAgICAgICAgICAic2l0ZV9hZG1pbiI6IGZhbHNlCisgICAgICAg
IH0sCisgICAgICAgICJodG1sX3VybCI6ICJodHRwczovL2dpdGh1Yi5jb20vd2ViLXBsYXRmb3Jt
LXRlc3RzL3dwdCIsCisgICAgICAgICJkZXNjcmlwdGlvbiI6ICJUZXN0IHN1aXRlcyBmb3IgV2Vi
IHBsYXRmb3JtIHNwZWNzIOKAlCBpbmNsdWRpbmcgV0hBVFdHLCBXM0MsIGFuZCBvdGhlcnMiLAor
ICAgICAgICAiZm9yayI6IGZhbHNlLAorICAgICAgICAidXJsIjogImh0dHBzOi8vYXBpLmdpdGh1
Yi5jb20vcmVwb3Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dwdCIsCisgICAgICAgICJmb3Jrc191cmwi
OiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy93ZWItcGxhdGZvcm0tdGVzdHMvd3B0L2Zv
cmtzIiwKKyAgICAgICAgImtleXNfdXJsIjogImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3dwdC9rZXlzey9rZXlfaWR9IiwKKyAgICAgICAgImNvbGxhYm9y
YXRvcnNfdXJsIjogImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3dwdC9jb2xsYWJvcmF0b3Jzey9jb2xsYWJvcmF0b3J9IiwKKyAgICAgICAgInRlYW1zX3Vy
bCI6ICJodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQv
dGVhbXMiLAorICAgICAgICAiaG9va3NfdXJsIjogImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVw
b3Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dwdC9ob29rcyIsCisgICAgICAgICJpc3N1ZV9ldmVudHNf
dXJsIjogImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dw
dC9pc3N1ZXMvZXZlbnRzey9udW1iZXJ9IiwKKyAgICAgICAgImV2ZW50c191cmwiOiAiaHR0cHM6
Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy93ZWItcGxhdGZvcm0tdGVzdHMvd3B0L2V2ZW50cyIsCisg
ICAgICAgICJhc3NpZ25lZXNfdXJsIjogImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3dwdC9hc3NpZ25lZXN7L3VzZXJ9IiwKKyAgICAgICAgImJyYW5jaGVz
X3VybCI6ICJodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zL3dlYi1wbGF0Zm9ybS10ZXN0cy93
cHQvYnJhbmNoZXN7L2JyYW5jaH0iLAorICAgICAgICAidGFnc191cmwiOiAiaHR0cHM6Ly9hcGku
Z2l0aHViLmNvbS9yZXBvcy93ZWItcGxhdGZvcm0tdGVzdHMvd3B0L3RhZ3MiLAorICAgICAgICAi
YmxvYnNfdXJsIjogImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3dwdC9naXQvYmxvYnN7L3NoYX0iLAorICAgICAgICAiZ2l0X3RhZ3NfdXJsIjogImh0dHBz
Oi8vYXBpLmdpdGh1Yi5jb20vcmVwb3Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dwdC9naXQvdGFnc3sv
c2hhfSIsCisgICAgICAgICJnaXRfcmVmc191cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9y
ZXBvcy93ZWItcGxhdGZvcm0tdGVzdHMvd3B0L2dpdC9yZWZzey9zaGF9IiwKKyAgICAgICAgInRy
ZWVzX3VybCI6ICJodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zL3dlYi1wbGF0Zm9ybS10ZXN0
cy93cHQvZ2l0L3RyZWVzey9zaGF9IiwKKyAgICAgICAgInN0YXR1c2VzX3VybCI6ICJodHRwczov
L2FwaS5naXRodWIuY29tL3JlcG9zL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQvc3RhdHVzZXMve3No
YX0iLAorICAgICAgICAibGFuZ3VhZ2VzX3VybCI6ICJodHRwczovL2FwaS5naXRodWIuY29tL3Jl
cG9zL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQvbGFuZ3VhZ2VzIiwKKyAgICAgICAgInN0YXJnYXpl
cnNfdXJsIjogImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3dwdC9zdGFyZ2F6ZXJzIiwKKyAgICAgICAgImNvbnRyaWJ1dG9yc191cmwiOiAiaHR0cHM6Ly9h
cGkuZ2l0aHViLmNvbS9yZXBvcy93ZWItcGxhdGZvcm0tdGVzdHMvd3B0L2NvbnRyaWJ1dG9ycyIs
CisgICAgICAgICJzdWJzY3JpYmVyc191cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBv
cy93ZWItcGxhdGZvcm0tdGVzdHMvd3B0L3N1YnNjcmliZXJzIiwKKyAgICAgICAgInN1YnNjcmlw
dGlvbl91cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy93ZWItcGxhdGZvcm0tdGVz
dHMvd3B0L3N1YnNjcmlwdGlvbiIsCisgICAgICAgICJjb21taXRzX3VybCI6ICJodHRwczovL2Fw
aS5naXRodWIuY29tL3JlcG9zL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQvY29tbWl0c3svc2hhfSIs
CisgICAgICAgICJnaXRfY29tbWl0c191cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBv
cy93ZWItcGxhdGZvcm0tdGVzdHMvd3B0L2dpdC9jb21taXRzey9zaGF9IiwKKyAgICAgICAgImNv
bW1lbnRzX3VybCI6ICJodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zL3dlYi1wbGF0Zm9ybS10
ZXN0cy93cHQvY29tbWVudHN7L251bWJlcn0iLAorICAgICAgICAiaXNzdWVfY29tbWVudF91cmwi
OiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy93ZWItcGxhdGZvcm0tdGVzdHMvd3B0L2lz
c3Vlcy9jb21tZW50c3svbnVtYmVyfSIsCisgICAgICAgICJjb250ZW50c191cmwiOiAiaHR0cHM6
Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy93ZWItcGxhdGZvcm0tdGVzdHMvd3B0L2NvbnRlbnRzL3sr
cGF0aH0iLAorICAgICAgICAiY29tcGFyZV91cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9y
ZXBvcy93ZWItcGxhdGZvcm0tdGVzdHMvd3B0L2NvbXBhcmUve2Jhc2V9Li4ue2hlYWR9IiwKKyAg
ICAgICAgIm1lcmdlc191cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy93ZWItcGxh
dGZvcm0tdGVzdHMvd3B0L21lcmdlcyIsCisgICAgICAgICJhcmNoaXZlX3VybCI6ICJodHRwczov
L2FwaS5naXRodWIuY29tL3JlcG9zL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQve2FyY2hpdmVfZm9y
bWF0fXsvcmVmfSIsCisgICAgICAgICJkb3dubG9hZHNfdXJsIjogImh0dHBzOi8vYXBpLmdpdGh1
Yi5jb20vcmVwb3Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dwdC9kb3dubG9hZHMiLAorICAgICAgICAi
aXNzdWVzX3VybCI6ICJodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zL3dlYi1wbGF0Zm9ybS10
ZXN0cy93cHQvaXNzdWVzey9udW1iZXJ9IiwKKyAgICAgICAgInB1bGxzX3VybCI6ICJodHRwczov
L2FwaS5naXRodWIuY29tL3JlcG9zL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQvcHVsbHN7L251bWJl
cn0iLAorICAgICAgICAibWlsZXN0b25lc191cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9y
ZXBvcy93ZWItcGxhdGZvcm0tdGVzdHMvd3B0L21pbGVzdG9uZXN7L251bWJlcn0iLAorICAgICAg
ICAibm90aWZpY2F0aW9uc191cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy93ZWIt
cGxhdGZvcm0tdGVzdHMvd3B0L25vdGlmaWNhdGlvbnN7P3NpbmNlLGFsbCxwYXJ0aWNpcGF0aW5n
fSIsCisgICAgICAgICJsYWJlbHNfdXJsIjogImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3dwdC9sYWJlbHN7L25hbWV9IiwKKyAgICAgICAgInJlbGVhc2Vz
X3VybCI6ICJodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zL3dlYi1wbGF0Zm9ybS10ZXN0cy93
cHQvcmVsZWFzZXN7L2lkfSIsCisgICAgICAgICJkZXBsb3ltZW50c191cmwiOiAiaHR0cHM6Ly9h
cGkuZ2l0aHViLmNvbS9yZXBvcy93ZWItcGxhdGZvcm0tdGVzdHMvd3B0L2RlcGxveW1lbnRzIiwK
KyAgICAgICAgImNyZWF0ZWRfYXQiOiAiMjAxMi0wMy0wNFQxMjo1ODoxMVoiLAorICAgICAgICAi
dXBkYXRlZF9hdCI6ICIyMDE5LTExLTI1VDE1OjQwOjU5WiIsCisgICAgICAgICJwdXNoZWRfYXQi
OiAiMjAxOS0xMS0yNVQxNTo1NDoxOFoiLAorICAgICAgICAiZ2l0X3VybCI6ICJnaXQ6Ly9naXRo
dWIuY29tL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQuZ2l0IiwKKyAgICAgICAgInNzaF91cmwiOiAi
Z2l0QGdpdGh1Yi5jb206d2ViLXBsYXRmb3JtLXRlc3RzL3dwdC5naXQiLAorICAgICAgICAiY2xv
bmVfdXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxhdGZvcm0tdGVzdHMvd3B0LmdpdCIs
CisgICAgICAgICJzdm5fdXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxhdGZvcm0tdGVz
dHMvd3B0IiwKKyAgICAgICAgImhvbWVwYWdlIjogImh0dHBzOi8vd2ViLXBsYXRmb3JtLXRlc3Rz
Lm9yZy8iLAorICAgICAgICAic2l6ZSI6IDMyOTI3OCwKKyAgICAgICAgInN0YXJnYXplcnNfY291
bnQiOiAyNTM2LAorICAgICAgICAid2F0Y2hlcnNfY291bnQiOiAyNTM2LAorICAgICAgICAibGFu
Z3VhZ2UiOiAiSFRNTCIsCisgICAgICAgICJoYXNfaXNzdWVzIjogdHJ1ZSwKKyAgICAgICAgImhh
c19wcm9qZWN0cyI6IHRydWUsCisgICAgICAgICJoYXNfZG93bmxvYWRzIjogdHJ1ZSwKKyAgICAg
ICAgImhhc193aWtpIjogdHJ1ZSwKKyAgICAgICAgImhhc19wYWdlcyI6IHRydWUsCisgICAgICAg
ICJmb3Jrc19jb3VudCI6IDE4MzcsCisgICAgICAgICJtaXJyb3JfdXJsIjogbnVsbCwKKyAgICAg
ICAgImFyY2hpdmVkIjogZmFsc2UsCisgICAgICAgICJkaXNhYmxlZCI6IGZhbHNlLAorICAgICAg
ICAib3Blbl9pc3N1ZXNfY291bnQiOiAxNTc2LAorICAgICAgICAibGljZW5zZSI6IHsKKyAgICAg
ICAgICAia2V5IjogIm90aGVyIiwKKyAgICAgICAgICAibmFtZSI6ICJPdGhlciIsCisgICAgICAg
ICAgInNwZHhfaWQiOiAiTk9BU1NFUlRJT04iLAorICAgICAgICAgICJ1cmwiOiBudWxsLAorICAg
ICAgICAgICJub2RlX2lkIjogIk1EYzZUR2xqWlc1elpUQT0iCisgICAgICAgIH0sCisgICAgICAg
ICJmb3JrcyI6IDE4MzcsCisgICAgICAgICJvcGVuX2lzc3VlcyI6IDE1NzYsCisgICAgICAgICJ3
YXRjaGVycyI6IDI1MzYsCisgICAgICAgICJkZWZhdWx0X2JyYW5jaCI6ICJtYXN0ZXIiCisgICAg
ICB9CisgICAgfSwKKyAgICAiX2xpbmtzIjogeworICAgICAgInNlbGYiOiB7CisgICAgICAgICJo
cmVmIjogImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dw
dC9wdWxscy8yMDM3OCIKKyAgICAgIH0sCisgICAgICAiaHRtbCI6IHsKKyAgICAgICAgImhyZWYi
OiAiaHR0cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQvcHVsbC8yMDM3OCIK
KyAgICAgIH0sCisgICAgICAiaXNzdWUiOiB7CisgICAgICAgICJocmVmIjogImh0dHBzOi8vYXBp
LmdpdGh1Yi5jb20vcmVwb3Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dwdC9pc3N1ZXMvMjAzNzgiCisg
ICAgICB9LAorICAgICAgImNvbW1lbnRzIjogeworICAgICAgICAiaHJlZiI6ICJodHRwczovL2Fw
aS5naXRodWIuY29tL3JlcG9zL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQvaXNzdWVzLzIwMzc4L2Nv
bW1lbnRzIgorICAgICAgfSwKKyAgICAgICJyZXZpZXdfY29tbWVudHMiOiB7CisgICAgICAgICJo
cmVmIjogImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dw
dC9wdWxscy8yMDM3OC9jb21tZW50cyIKKyAgICAgIH0sCisgICAgICAicmV2aWV3X2NvbW1lbnQi
OiB7CisgICAgICAgICJocmVmIjogImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3dwdC9wdWxscy9jb21tZW50c3svbnVtYmVyfSIKKyAgICAgIH0sCisgICAg
ICAiY29tbWl0cyI6IHsKKyAgICAgICAgImhyZWYiOiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9y
ZXBvcy93ZWItcGxhdGZvcm0tdGVzdHMvd3B0L3B1bGxzLzIwMzc4L2NvbW1pdHMiCisgICAgICB9
LAorICAgICAgInN0YXR1c2VzIjogeworICAgICAgICAiaHJlZiI6ICJodHRwczovL2FwaS5naXRo
dWIuY29tL3JlcG9zL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQvc3RhdHVzZXMvN2RmODRlM2Y4N2Yw
NTg2MGEyYjg2ZDBiODBkYzNlYjA2ZDhlNzEwMyIKKyAgICAgIH0KKyAgICB9LAorICAgICJhdXRo
b3JfYXNzb2NpYXRpb24iOiAiQ09MTEFCT1JBVE9SIiwKKyAgICAiZHJhZnQiOiBmYWxzZSwKKyAg
ICAibWVyZ2VkIjogZmFsc2UsCisgICAgIm1lcmdlYWJsZSI6IG51bGwsCisgICAgInJlYmFzZWFi
bGUiOiBudWxsLAorICAgICJtZXJnZWFibGVfc3RhdGUiOiAidW5rbm93biIsCisgICAgIm1lcmdl
ZF9ieSI6IG51bGwsCisgICAgImNvbW1lbnRzIjogMCwKKyAgICAicmV2aWV3X2NvbW1lbnRzIjog
MCwKKyAgICAibWFpbnRhaW5lcl9jYW5fbW9kaWZ5IjogZmFsc2UsCisgICAgImNvbW1pdHMiOiAx
LAorICAgICJhZGRpdGlvbnMiOiA0MzEsCisgICAgImRlbGV0aW9ucyI6IDAsCisgICAgImNoYW5n
ZWRfZmlsZXMiOiAxMQorICB9LAorICAiYmVmb3JlIjogIjg2NzQyNTExZmEzN2UxZTJjMTYzNWI3
NzQzMWJkNDY5NThlY2ZiOTIiLAorICAiYWZ0ZXIiOiAiN2RmODRlM2Y4N2YwNTg2MGEyYjg2ZDBi
ODBkYzNlYjA2ZDhlNzEwMyIsCisgICJyZXBvc2l0b3J5IjogeworICAgICJpZCI6IDM2MTgxMzMs
CisgICAgIm5vZGVfaWQiOiAiTURFd09sSmxjRzl6YVhSdmNua3pOakU0TVRNeiIsCisgICAgIm5h
bWUiOiAid3B0IiwKKyAgICAiZnVsbF9uYW1lIjogIndlYi1wbGF0Zm9ybS10ZXN0cy93cHQiLAor
ICAgICJwcml2YXRlIjogZmFsc2UsCisgICAgIm93bmVyIjogeworICAgICAgImxvZ2luIjogIndl
Yi1wbGF0Zm9ybS10ZXN0cyIsCisgICAgICAiaWQiOiAzNzIyNjIzMywKKyAgICAgICJub2RlX2lk
IjogIk1ERXlPazl5WjJGdWFYcGhkR2x2YmpNM01qSTJNak16IiwKKyAgICAgICJhdmF0YXJfdXJs
IjogImh0dHBzOi8vYXZhdGFyczAuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMzcyMjYyMzM/dj00
IiwKKyAgICAgICJncmF2YXRhcl9pZCI6ICIiLAorICAgICAgInVybCI6ICJodHRwczovL2FwaS5n
aXRodWIuY29tL3VzZXJzL3dlYi1wbGF0Zm9ybS10ZXN0cyIsCisgICAgICAiaHRtbF91cmwiOiAi
aHR0cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9ybS10ZXN0cyIsCisgICAgICAiZm9sbG93ZXJz
X3VybCI6ICJodHRwczovL2FwaS5naXRodWIuY29tL3VzZXJzL3dlYi1wbGF0Zm9ybS10ZXN0cy9m
b2xsb3dlcnMiLAorICAgICAgImZvbGxvd2luZ191cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNv
bS91c2Vycy93ZWItcGxhdGZvcm0tdGVzdHMvZm9sbG93aW5ney9vdGhlcl91c2VyfSIsCisgICAg
ICAiZ2lzdHNfdXJsIjogImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vdXNlcnMvd2ViLXBsYXRmb3Jt
LXRlc3RzL2dpc3Rzey9naXN0X2lkfSIsCisgICAgICAic3RhcnJlZF91cmwiOiAiaHR0cHM6Ly9h
cGkuZ2l0aHViLmNvbS91c2Vycy93ZWItcGxhdGZvcm0tdGVzdHMvc3RhcnJlZHsvb3duZXJ9ey9y
ZXBvfSIsCisgICAgICAic3Vic2NyaXB0aW9uc191cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNv
bS91c2Vycy93ZWItcGxhdGZvcm0tdGVzdHMvc3Vic2NyaXB0aW9ucyIsCisgICAgICAib3JnYW5p
emF0aW9uc191cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS91c2Vycy93ZWItcGxhdGZvcm0t
dGVzdHMvb3JncyIsCisgICAgICAicmVwb3NfdXJsIjogImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20v
dXNlcnMvd2ViLXBsYXRmb3JtLXRlc3RzL3JlcG9zIiwKKyAgICAgICJldmVudHNfdXJsIjogImh0
dHBzOi8vYXBpLmdpdGh1Yi5jb20vdXNlcnMvd2ViLXBsYXRmb3JtLXRlc3RzL2V2ZW50c3svcHJp
dmFjeX0iLAorICAgICAgInJlY2VpdmVkX2V2ZW50c191cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHVi
LmNvbS91c2Vycy93ZWItcGxhdGZvcm0tdGVzdHMvcmVjZWl2ZWRfZXZlbnRzIiwKKyAgICAgICJ0
eXBlIjogIk9yZ2FuaXphdGlvbiIsCisgICAgICAic2l0ZV9hZG1pbiI6IGZhbHNlCisgICAgfSwK
KyAgICAiaHRtbF91cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9ybS10ZXN0cy93
cHQiLAorICAgICJkZXNjcmlwdGlvbiI6ICJUZXN0IHN1aXRlcyBmb3IgV2ViIHBsYXRmb3JtIHNw
ZWNzIOKAlCBpbmNsdWRpbmcgV0hBVFdHLCBXM0MsIGFuZCBvdGhlcnMiLAorICAgICJmb3JrIjog
ZmFsc2UsCisgICAgInVybCI6ICJodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zL3dlYi1wbGF0
Zm9ybS10ZXN0cy93cHQiLAorICAgICJmb3Jrc191cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNv
bS9yZXBvcy93ZWItcGxhdGZvcm0tdGVzdHMvd3B0L2ZvcmtzIiwKKyAgICAia2V5c191cmwiOiAi
aHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy93ZWItcGxhdGZvcm0tdGVzdHMvd3B0L2tleXN7
L2tleV9pZH0iLAorICAgICJjb2xsYWJvcmF0b3JzX3VybCI6ICJodHRwczovL2FwaS5naXRodWIu
Y29tL3JlcG9zL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQvY29sbGFib3JhdG9yc3svY29sbGFib3Jh
dG9yfSIsCisgICAgInRlYW1zX3VybCI6ICJodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zL3dl
Yi1wbGF0Zm9ybS10ZXN0cy93cHQvdGVhbXMiLAorICAgICJob29rc191cmwiOiAiaHR0cHM6Ly9h
cGkuZ2l0aHViLmNvbS9yZXBvcy93ZWItcGxhdGZvcm0tdGVzdHMvd3B0L2hvb2tzIiwKKyAgICAi
aXNzdWVfZXZlbnRzX3VybCI6ICJodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zL3dlYi1wbGF0
Zm9ybS10ZXN0cy93cHQvaXNzdWVzL2V2ZW50c3svbnVtYmVyfSIsCisgICAgImV2ZW50c191cmwi
OiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy93ZWItcGxhdGZvcm0tdGVzdHMvd3B0L2V2
ZW50cyIsCisgICAgImFzc2lnbmVlc191cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBv
cy93ZWItcGxhdGZvcm0tdGVzdHMvd3B0L2Fzc2lnbmVlc3svdXNlcn0iLAorICAgICJicmFuY2hl
c191cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy93ZWItcGxhdGZvcm0tdGVzdHMv
d3B0L2JyYW5jaGVzey9icmFuY2h9IiwKKyAgICAidGFnc191cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0
aHViLmNvbS9yZXBvcy93ZWItcGxhdGZvcm0tdGVzdHMvd3B0L3RhZ3MiLAorICAgICJibG9ic191
cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy93ZWItcGxhdGZvcm0tdGVzdHMvd3B0
L2dpdC9ibG9ic3svc2hhfSIsCisgICAgImdpdF90YWdzX3VybCI6ICJodHRwczovL2FwaS5naXRo
dWIuY29tL3JlcG9zL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQvZ2l0L3RhZ3N7L3NoYX0iLAorICAg
ICJnaXRfcmVmc191cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy93ZWItcGxhdGZv
cm0tdGVzdHMvd3B0L2dpdC9yZWZzey9zaGF9IiwKKyAgICAidHJlZXNfdXJsIjogImh0dHBzOi8v
YXBpLmdpdGh1Yi5jb20vcmVwb3Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dwdC9naXQvdHJlZXN7L3No
YX0iLAorICAgICJzdGF0dXNlc191cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy93
ZWItcGxhdGZvcm0tdGVzdHMvd3B0L3N0YXR1c2VzL3tzaGF9IiwKKyAgICAibGFuZ3VhZ2VzX3Vy
bCI6ICJodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQv
bGFuZ3VhZ2VzIiwKKyAgICAic3RhcmdhemVyc191cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNv
bS9yZXBvcy93ZWItcGxhdGZvcm0tdGVzdHMvd3B0L3N0YXJnYXplcnMiLAorICAgICJjb250cmli
dXRvcnNfdXJsIjogImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3dwdC9jb250cmlidXRvcnMiLAorICAgICJzdWJzY3JpYmVyc191cmwiOiAiaHR0cHM6Ly9h
cGkuZ2l0aHViLmNvbS9yZXBvcy93ZWItcGxhdGZvcm0tdGVzdHMvd3B0L3N1YnNjcmliZXJzIiwK
KyAgICAic3Vic2NyaXB0aW9uX3VybCI6ICJodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zL3dl
Yi1wbGF0Zm9ybS10ZXN0cy93cHQvc3Vic2NyaXB0aW9uIiwKKyAgICAiY29tbWl0c191cmwiOiAi
aHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy93ZWItcGxhdGZvcm0tdGVzdHMvd3B0L2NvbW1p
dHN7L3NoYX0iLAorICAgICJnaXRfY29tbWl0c191cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNv
bS9yZXBvcy93ZWItcGxhdGZvcm0tdGVzdHMvd3B0L2dpdC9jb21taXRzey9zaGF9IiwKKyAgICAi
Y29tbWVudHNfdXJsIjogImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3dwdC9jb21tZW50c3svbnVtYmVyfSIsCisgICAgImlzc3VlX2NvbW1lbnRfdXJsIjog
Imh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dwdC9pc3N1
ZXMvY29tbWVudHN7L251bWJlcn0iLAorICAgICJjb250ZW50c191cmwiOiAiaHR0cHM6Ly9hcGku
Z2l0aHViLmNvbS9yZXBvcy93ZWItcGxhdGZvcm0tdGVzdHMvd3B0L2NvbnRlbnRzL3srcGF0aH0i
LAorICAgICJjb21wYXJlX3VybCI6ICJodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zL3dlYi1w
bGF0Zm9ybS10ZXN0cy93cHQvY29tcGFyZS97YmFzZX0uLi57aGVhZH0iLAorICAgICJtZXJnZXNf
dXJsIjogImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dw
dC9tZXJnZXMiLAorICAgICJhcmNoaXZlX3VybCI6ICJodHRwczovL2FwaS5naXRodWIuY29tL3Jl
cG9zL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQve2FyY2hpdmVfZm9ybWF0fXsvcmVmfSIsCisgICAg
ImRvd25sb2Fkc191cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy93ZWItcGxhdGZv
cm0tdGVzdHMvd3B0L2Rvd25sb2FkcyIsCisgICAgImlzc3Vlc191cmwiOiAiaHR0cHM6Ly9hcGku
Z2l0aHViLmNvbS9yZXBvcy93ZWItcGxhdGZvcm0tdGVzdHMvd3B0L2lzc3Vlc3svbnVtYmVyfSIs
CisgICAgInB1bGxzX3VybCI6ICJodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zL3dlYi1wbGF0
Zm9ybS10ZXN0cy93cHQvcHVsbHN7L251bWJlcn0iLAorICAgICJtaWxlc3RvbmVzX3VybCI6ICJo
dHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQvbWlsZXN0
b25lc3svbnVtYmVyfSIsCisgICAgIm5vdGlmaWNhdGlvbnNfdXJsIjogImh0dHBzOi8vYXBpLmdp
dGh1Yi5jb20vcmVwb3Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dwdC9ub3RpZmljYXRpb25zez9zaW5j
ZSxhbGwscGFydGljaXBhdGluZ30iLAorICAgICJsYWJlbHNfdXJsIjogImh0dHBzOi8vYXBpLmdp
dGh1Yi5jb20vcmVwb3Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dwdC9sYWJlbHN7L25hbWV9IiwKKyAg
ICAicmVsZWFzZXNfdXJsIjogImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3dwdC9yZWxlYXNlc3svaWR9IiwKKyAgICAiZGVwbG95bWVudHNfdXJsIjogImh0
dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dwdC9kZXBsb3lt
ZW50cyIsCisgICAgImNyZWF0ZWRfYXQiOiAiMjAxMi0wMy0wNFQxMjo1ODoxMVoiLAorICAgICJ1
cGRhdGVkX2F0IjogIjIwMTktMTEtMjVUMTU6NDA6NTlaIiwKKyAgICAicHVzaGVkX2F0IjogIjIw
MTktMTEtMjVUMTU6NTQ6MThaIiwKKyAgICAiZ2l0X3VybCI6ICJnaXQ6Ly9naXRodWIuY29tL3dl
Yi1wbGF0Zm9ybS10ZXN0cy93cHQuZ2l0IiwKKyAgICAic3NoX3VybCI6ICJnaXRAZ2l0aHViLmNv
bTp3ZWItcGxhdGZvcm0tdGVzdHMvd3B0LmdpdCIsCisgICAgImNsb25lX3VybCI6ICJodHRwczov
L2dpdGh1Yi5jb20vd2ViLXBsYXRmb3JtLXRlc3RzL3dwdC5naXQiLAorICAgICJzdm5fdXJsIjog
Imh0dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxhdGZvcm0tdGVzdHMvd3B0IiwKKyAgICAiaG9tZXBh
Z2UiOiAiaHR0cHM6Ly93ZWItcGxhdGZvcm0tdGVzdHMub3JnLyIsCisgICAgInNpemUiOiAzMjky
NzgsCisgICAgInN0YXJnYXplcnNfY291bnQiOiAyNTM2LAorICAgICJ3YXRjaGVyc19jb3VudCI6
IDI1MzYsCisgICAgImxhbmd1YWdlIjogIkhUTUwiLAorICAgICJoYXNfaXNzdWVzIjogdHJ1ZSwK
KyAgICAiaGFzX3Byb2plY3RzIjogdHJ1ZSwKKyAgICAiaGFzX2Rvd25sb2FkcyI6IHRydWUsCisg
ICAgImhhc193aWtpIjogdHJ1ZSwKKyAgICAiaGFzX3BhZ2VzIjogdHJ1ZSwKKyAgICAiZm9ya3Nf
Y291bnQiOiAxODM3LAorICAgICJtaXJyb3JfdXJsIjogbnVsbCwKKyAgICAiYXJjaGl2ZWQiOiBm
YWxzZSwKKyAgICAiZGlzYWJsZWQiOiBmYWxzZSwKKyAgICAib3Blbl9pc3N1ZXNfY291bnQiOiAx
NTc2LAorICAgICJsaWNlbnNlIjogeworICAgICAgImtleSI6ICJvdGhlciIsCisgICAgICAibmFt
ZSI6ICJPdGhlciIsCisgICAgICAic3BkeF9pZCI6ICJOT0FTU0VSVElPTiIsCisgICAgICAidXJs
IjogbnVsbCwKKyAgICAgICJub2RlX2lkIjogIk1EYzZUR2xqWlc1elpUQT0iCisgICAgfSwKKyAg
ICAiZm9ya3MiOiAxODM3LAorICAgICJvcGVuX2lzc3VlcyI6IDE1NzYsCisgICAgIndhdGNoZXJz
IjogMjUzNiwKKyAgICAiZGVmYXVsdF9icmFuY2giOiAibWFzdGVyIgorICB9LAorICAib3JnYW5p
emF0aW9uIjogeworICAgICJsb2dpbiI6ICJ3ZWItcGxhdGZvcm0tdGVzdHMiLAorICAgICJpZCI6
IDM3MjI2MjMzLAorICAgICJub2RlX2lkIjogIk1ERXlPazl5WjJGdWFYcGhkR2x2YmpNM01qSTJN
ak16IiwKKyAgICAidXJsIjogImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vb3Jncy93ZWItcGxhdGZv
cm0tdGVzdHMiLAorICAgICJyZXBvc191cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9vcmdz
L3dlYi1wbGF0Zm9ybS10ZXN0cy9yZXBvcyIsCisgICAgImV2ZW50c191cmwiOiAiaHR0cHM6Ly9h
cGkuZ2l0aHViLmNvbS9vcmdzL3dlYi1wbGF0Zm9ybS10ZXN0cy9ldmVudHMiLAorICAgICJob29r
c191cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9vcmdzL3dlYi1wbGF0Zm9ybS10ZXN0cy9o
b29rcyIsCisgICAgImlzc3Vlc191cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9vcmdzL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9pc3N1ZXMiLAorICAgICJtZW1iZXJzX3VybCI6ICJodHRwczovL2Fw
aS5naXRodWIuY29tL29yZ3Mvd2ViLXBsYXRmb3JtLXRlc3RzL21lbWJlcnN7L21lbWJlcn0iLAor
ICAgICJwdWJsaWNfbWVtYmVyc191cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9vcmdzL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9wdWJsaWNfbWVtYmVyc3svbWVtYmVyfSIsCisgICAgImF2YXRhcl91
cmwiOiAiaHR0cHM6Ly9hdmF0YXJzMC5naXRodWJ1c2VyY29udGVudC5jb20vdS8zNzIyNjIzMz92
PTQiLAorICAgICJkZXNjcmlwdGlvbiI6ICIiCisgIH0sCisgICJzZW5kZXIiOiB7CisgICAgImxv
Z2luIjogImNocm9taXVtLXdwdC1leHBvcnQtYm90IiwKKyAgICAiaWQiOiAyNTc1Mjg5MiwKKyAg
ICAibm9kZV9pZCI6ICJNRFE2VlhObGNqSTFOelV5T0RreSIsCisgICAgImF2YXRhcl91cmwiOiAi
aHR0cHM6Ly9hdmF0YXJzMS5naXRodWJ1c2VyY29udGVudC5jb20vdS8yNTc1Mjg5Mj92PTQiLAor
ICAgICJncmF2YXRhcl9pZCI6ICIiLAorICAgICJ1cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNv
bS91c2Vycy9jaHJvbWl1bS13cHQtZXhwb3J0LWJvdCIsCisgICAgImh0bWxfdXJsIjogImh0dHBz
Oi8vZ2l0aHViLmNvbS9jaHJvbWl1bS13cHQtZXhwb3J0LWJvdCIsCisgICAgImZvbGxvd2Vyc191
cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS91c2Vycy9jaHJvbWl1bS13cHQtZXhwb3J0LWJv
dC9mb2xsb3dlcnMiLAorICAgICJmb2xsb3dpbmdfdXJsIjogImh0dHBzOi8vYXBpLmdpdGh1Yi5j
b20vdXNlcnMvY2hyb21pdW0td3B0LWV4cG9ydC1ib3QvZm9sbG93aW5ney9vdGhlcl91c2VyfSIs
CisgICAgImdpc3RzX3VybCI6ICJodHRwczovL2FwaS5naXRodWIuY29tL3VzZXJzL2Nocm9taXVt
LXdwdC1leHBvcnQtYm90L2dpc3Rzey9naXN0X2lkfSIsCisgICAgInN0YXJyZWRfdXJsIjogImh0
dHBzOi8vYXBpLmdpdGh1Yi5jb20vdXNlcnMvY2hyb21pdW0td3B0LWV4cG9ydC1ib3Qvc3RhcnJl
ZHsvb3duZXJ9ey9yZXBvfSIsCisgICAgInN1YnNjcmlwdGlvbnNfdXJsIjogImh0dHBzOi8vYXBp
LmdpdGh1Yi5jb20vdXNlcnMvY2hyb21pdW0td3B0LWV4cG9ydC1ib3Qvc3Vic2NyaXB0aW9ucyIs
CisgICAgIm9yZ2FuaXphdGlvbnNfdXJsIjogImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vdXNlcnMv
Y2hyb21pdW0td3B0LWV4cG9ydC1ib3Qvb3JncyIsCisgICAgInJlcG9zX3VybCI6ICJodHRwczov
L2FwaS5naXRodWIuY29tL3VzZXJzL2Nocm9taXVtLXdwdC1leHBvcnQtYm90L3JlcG9zIiwKKyAg
ICAiZXZlbnRzX3VybCI6ICJodHRwczovL2FwaS5naXRodWIuY29tL3VzZXJzL2Nocm9taXVtLXdw
dC1leHBvcnQtYm90L2V2ZW50c3svcHJpdmFjeX0iLAorICAgICJyZWNlaXZlZF9ldmVudHNfdXJs
IjogImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vdXNlcnMvY2hyb21pdW0td3B0LWV4cG9ydC1ib3Qv
cmVjZWl2ZWRfZXZlbnRzIiwKKyAgICAidHlwZSI6ICJVc2VyIiwKKyAgICAic2l0ZV9hZG1pbiI6
IGZhbHNlCisgIH0KK30KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvY2kvdGMvdGVzdHMvdGVzdF9kZWNpc2lvbi5weSBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvY2kvdGMvdGVzdHMv
dGVzdF9kZWNpc2lvbi5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40MjViNTgyOWVkZDM2MGIxNDVhY2ViZjI0OWY0
YjFhYzNmNmQxMzk2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9jaS90Yy90ZXN0cy90ZXN0X2RlY2lzaW9uLnB5CkBA
IC0wLDAgKzEsNTQgQEAKK2ltcG9ydCBtb2NrCitpbXBvcnQgcHl0ZXN0CisKK2Zyb20gdG9vbHMu
Y2kudGMgaW1wb3J0IGRlY2lzaW9uCitmcm9tIHNpeCBpbXBvcnQgaXRlcml0ZW1zCisKKworQHB5
dGVzdC5tYXJrLnBhcmFtZXRyaXplKCJydW5fam9icyx0YXNrcyxleHBlY3RlZCIsIFsKKyAgICAo
W10sIHsidGFzay1uby1zY2hlZHVsZS1pZiI6IHt9fSwgWyJ0YXNrLW5vLXNjaGVkdWxlLWlmIl0p
LAorICAgIChbXSwgeyJ0YXNrLXNjaGVkdWxlLWlmLW5vLXJ1bi1qb2IiOiB7InNjaGVkdWxlLWlm
Ijoge319fSwgW10pLAorICAgIChbImpvYiJdLAorICAgICB7ImpvYi1wcmVzZW50IjogeyJzY2hl
ZHVsZS1pZiI6IHsicnVuLWpvYiI6IFsib3RoZXItam9iIiwgImpvYiJdfX19LAorICAgICBbImpv
Yi1wcmVzZW50Il0pLAorICAgIChbImpvYiJdLCB7ImpvYi1taXNzaW5nIjogeyJzY2hlZHVsZS1p
ZiI6IHsicnVuLWpvYiI6IFsib3RoZXItam9iIl19fX0sIFtdKSwKKyAgICAoWyJhbGwiXSwgeyJq
b2ItYWxsIjogeyJzY2hlZHVsZS1pZiI6IHsicnVuLWpvYiI6IFsib3RoZXItam9iIl19fX0sIFsi
am9iLWFsbCJdKSwKKyAgICAoWyJqb2IiXSwKKyAgICAgeyJqb2ItMSI6IHsic2NoZWR1bGUtaWYi
OiB7InJ1bi1qb2IiOiBbImpvYiJdfX0sCisgICAgICAiam9iLTIiOiB7InNjaGVkdWxlLWlmIjog
eyJydW4tam9iIjogWyJvdGhlci1qb2IiXX19fSwKKyAgICAgWyJqb2ItMSJdKSwKK10pCitkZWYg
dGVzdF9maWx0ZXJfc2NoZWR1bGVfaWYocnVuX2pvYnMsIHRhc2tzLCBleHBlY3RlZCk6CisgICAg
d2l0aCBtb2NrLnBhdGNoKCJ0b29scy5jaS50Yy5kZWNpc2lvbi5nZXRfcnVuX2pvYnMiLAorICAg
ICAgICAgICAgICAgICAgICByZXR1cm5fdmFsdWU9cnVuX2pvYnMpIGFzIGdldF9ydW5fam9iczoK
KyAgICAgICAgYXNzZXJ0IChkZWNpc2lvbi5maWx0ZXJfc2NoZWR1bGVfaWYoe30sIHRhc2tzKSA9
PQorICAgICAgICAgICAgICAgIHtuYW1lOiB0YXNrc1tuYW1lXSBmb3IgbmFtZSBpbiBleHBlY3Rl
ZH0pCisgICAgICAgIGdldF9ydW5fam9icy5jYWxsX2NvdW50IGluICgwLCAxKQorCisKK0BweXRl
c3QubWFyay5wYXJhbWV0cml6ZSgibXNnLGV4cGVjdGVkIiwgWworICAgICgiU29tZSBpbml0aWFs
IGxpbmVcblxudGMtam9iczpmb28sYmFyIiwgeyJmb28iLCAiYmFyIn0pLAorICAgICgiU29tZSBp
bml0aWFsIGxpbmVcblxudGMtam9iczpmb28sIGJhciIsIHsiZm9vIiwgImJhciJ9KSwKKyAgICAo
InRjLWpvYnM6Zm9vLCBiYXIgICBcbmJheiIsIHsiZm9vIiwgImJhciJ9KSwKKyAgICAoInRjLWpv
YnM6YWxsIiwgeyJhbGwifSksCisgICAgKCIiLCBzZXQoKSksCisgICAgKCJ0Yy1qb2JzOmZvb1xu
dGMtam9iczpiYXIiLCB7ImZvbyJ9KV0pCitAcHl0ZXN0Lm1hcmsucGFyYW1ldHJpemUoImV2ZW50
IiwgWworICAgIHsiY29tbWl0cyI6IFt7Im1lc3NhZ2UiOiAiPG1lc3NhZ2U+In1dfSwKKyAgICB7
InB1bGxfcmVxdWVzdCI6IHsiYm9keSI6ICI8bWVzc2FnZT4ifX0KK10pCitkZWYgdGVzdF9leHRy
YV9qb2JzX3ByKG1zZywgZXhwZWN0ZWQsIGV2ZW50KToKKyAgICBkZWYgc3ViKG9iaik6CisgICAg
ICAgICIiIkNvcHkgb2JqLCBleGNlcHQgaWYgaXQncyBhIHN0cmluZyB3aXRoIHRoZSB2YWx1ZSA8
bWVzc2FnZT4KKyAgICAgICAgcmVwbGFjZSBpdCB3aXRoIHRoZSB2YWx1ZSBvZiB0aGUgbXNnIGFy
Z3VtZW50IiIiCisgICAgICAgIGlmIGlzaW5zdGFuY2Uob2JqLCBkaWN0KToKKyAgICAgICAgICAg
IHJldHVybiB7a2V5OiBzdWIodmFsdWUpIGZvciAoa2V5LCB2YWx1ZSkgaW4gaXRlcml0ZW1zKG9i
ail9CisgICAgICAgIGVsaWYgaXNpbnN0YW5jZShvYmosIGxpc3QpOgorICAgICAgICAgICAgcmV0
dXJuIFtzdWIodmFsdWUpIGZvciB2YWx1ZSBpbiBvYmpdCisgICAgICAgIGVsaWYgb2JqID09ICI8
bWVzc2FnZT4iOgorICAgICAgICAgICAgcmV0dXJuIG1zZworICAgICAgICByZXR1cm4gb2JqCisK
KyAgICBldmVudCA9IHN1YihldmVudCkKKworICAgIGFzc2VydCBkZWNpc2lvbi5nZXRfZXh0cmFf
am9icyhldmVudCkgPT0gZXhwZWN0ZWQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvY2kvdGMvdGVzdHMvdGVzdF90YXNrZ3JhcGgu
cHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2Np
L3RjL3Rlc3RzL3Rlc3RfdGFza2dyYXBoLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmRkODUzNWJiNjQ3MGZmOTE5
MjUxOTczYjA3M2QyNDQ4OWVkZmZmOGIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2NpL3RjL3Rlc3RzL3Rlc3RfdGFz
a2dyYXBoLnB5CkBAIC0wLDAgKzEsMTQ2IEBACitpbXBvcnQgcHl0ZXN0CitpbXBvcnQgeWFtbAor
Citmcm9tIHRvb2xzLmNpLnRjIGltcG9ydCB0YXNrZ3JhcGgKKworQHB5dGVzdC5tYXJrLnBhcmFt
ZXRyaXplKCJkYXRhLCB1cGRhdGVfZGF0YSwgZXhwZWN0ZWQiLCBbCisgICAgKHsiYSI6IDF9LCB7
ImIiOiAyfSwgeyJhIjogMSwgImIiOiAyfSksCisgICAgKHsiYSI6IDF9LCB7ImEiOiAyfSwgeyJh
IjogMn0pLAorICAgICh7ImEiOiBbMV19LCB7ImEiOiBbMl19LCB7ImEiOiBbMSwgMl19KSwKKyAg
ICAoeyJhIjogeyJiIjogMSwgImMiOiAyfX0sIHsiYSI6IHsiYiI6IDIsICJkIjogM319LCB7ImEi
OiB7ImIiOiAyLCAiYyI6IDIsICJkIjogM319KSwKKyAgICAoeyJhIjogeyJiIjogWzFdfX0sIHsi
YSI6IHsiYiI6IFsyXX19LCB7ImEiOiB7ImIiOiBbMSwgMl19fSksCitdCispCitkZWYgdGVzdF91
cGRhdGVfcmVjdXJzaXZlKGRhdGEsIHVwZGF0ZV9kYXRhLCBleHBlY3RlZCk6CisgICAgdGFza2dy
YXBoLnVwZGF0ZV9yZWN1cnNpdmUoZGF0YSwgdXBkYXRlX2RhdGEpCisgICAgYXNzZXJ0IGRhdGEg
PT0gZXhwZWN0ZWQKKworCitkZWYgdGVzdF91c2UoKToKKyAgICBkYXRhID0gIiIiCitjb21wb25l
bnRzOgorICBjb21wb25lbnQxOgorICAgIGE6IDEKKyAgICBiOiBbMV0KKyAgICBjOiAiYyIKKyAg
Y29tcG9uZW50MjoKKyAgICBhOiAyCisgICAgYjogWzJdCisgICAgZDogImQiCit0YXNrczoKKyAg
LSB0YXNrMToKKyAgICAgIHVzZToKKyAgICAgICAtIGNvbXBvbmVudDEKKyAgICAgICAtIGNvbXBv
bmVudDIKKyAgICAgIGI6IFszXQorICAgICAgYzogImUiCisiIiIKKyAgICB0YXNrc19kYXRhID0g
eWFtbC5zYWZlX2xvYWQoZGF0YSkKKyAgICBhc3NlcnQgdGFza2dyYXBoLmxvYWRfdGFza3ModGFz
a3NfZGF0YSkgPT0geworICAgICAgICAidGFzazEiOiB7CisgICAgICAgICAgICAiYSI6IDIsCisg
ICAgICAgICAgICAiYiI6IFsxLDIsM10sCisgICAgICAgICAgICAiYyI6ICJlIiwKKyAgICAgICAg
ICAgICJkIjogImQiLAorICAgICAgICAgICAgIm5hbWUiOiAidGFzazEiCisgICAgICAgIH0KKyAg
ICB9CisKKworZGVmIHRlc3RfdmFyKCk6CisgICAgZGF0YSA9ICIiIgorY29tcG9uZW50czoKKyAg
Y29tcG9uZW50MToKKyAgICBhOiAke3ZhcnMudmFsdWV9Cit0YXNrczoKKyAgLSB0YXNrMToKKyAg
ICAgIHVzZToKKyAgICAgICAtIGNvbXBvbmVudDEKKyAgICAgIHZhcnM6CisgICAgICAgIHZhbHVl
OiAxCisiIiIKKyAgICB0YXNrc19kYXRhID0geWFtbC5zYWZlX2xvYWQoZGF0YSkKKyAgICBhc3Nl
cnQgdGFza2dyYXBoLmxvYWRfdGFza3ModGFza3NfZGF0YSkgPT0geworICAgICAgICAidGFzazEi
OiB7CisgICAgICAgICAgICAiYSI6ICIxIiwKKyAgICAgICAgICAgICJ2YXJzIjogeyJ2YWx1ZSI6
IDF9LAorICAgICAgICAgICAgIm5hbWUiOiAidGFzazEiCisgICAgICAgIH0KKyAgICB9CisKKwor
ZGVmIHRlc3RfbWFwKCk6CisgICAgZGF0YSA9ICIiIgorY29tcG9uZW50czoge30KK3Rhc2tzOgor
IC0gJG1hcDoKKyAgICAgZm9yOgorICAgICAgIC0gdmFyczoKKyAgICAgICAgICAgYTogMQorICAg
ICAgICAgYjogWzFdCisgICAgICAgLSB2YXJzOgorICAgICAgICAgICBhOiAyCisgICAgICAgICBi
OiBbMl0KKyAgICAgZG86CisgICAgICAgLSB0YXNrMS0ke3ZhcnMuYX06CisgICAgICAgICAgIGE6
ICR7dmFycy5hfQorICAgICAgICAgICBiOiBbM10KKyAgICAgICAtIHRhc2syLSR7dmFycy5hfToK
KyAgICAgICAgICAgYTogJHt2YXJzLmF9CisgICAgICAgICAgIGI6IFs0XQorIiIiCisgICAgdGFz
a3NfZGF0YSA9IHlhbWwuc2FmZV9sb2FkKGRhdGEpCisgICAgYXNzZXJ0IHRhc2tncmFwaC5sb2Fk
X3Rhc2tzKHRhc2tzX2RhdGEpID09IHsKKyAgICAgICAgInRhc2sxLTEiOiB7CisgICAgICAgICAg
ICAiYSI6ICIxIiwKKyAgICAgICAgICAgICJiIjogWzEsIDNdLAorICAgICAgICAgICAgInZhcnMi
OiB7ImEiOiAxfSwKKyAgICAgICAgICAgICJuYW1lIjogInRhc2sxLTEiCisgICAgICAgIH0sCisg
ICAgICAgICJ0YXNrMS0yIjogeworICAgICAgICAgICAgImEiOiAiMiIsCisgICAgICAgICAgICAi
YiI6IFsyLCAzXSwKKyAgICAgICAgICAgICJ2YXJzIjogeyJhIjogMn0sCisgICAgICAgICAgICAi
bmFtZSI6ICJ0YXNrMS0yIgorICAgICAgICB9LAorICAgICAgICAidGFzazItMSI6IHsKKyAgICAg
ICAgICAgICJhIjogIjEiLAorICAgICAgICAgICAgImIiOiBbMSwgNF0sCisgICAgICAgICAgICAi
dmFycyI6IHsiYSI6IDF9LAorICAgICAgICAgICAgIm5hbWUiOiAidGFzazItMSIKKyAgICAgICAg
fSwKKyAgICAgICAgInRhc2syLTIiOiB7CisgICAgICAgICAgICAiYSI6ICIyIiwKKyAgICAgICAg
ICAgICJiIjogWzIsIDRdLAorICAgICAgICAgICAgInZhcnMiOiB7ImEiOiAyfSwKKyAgICAgICAg
ICAgICJuYW1lIjogInRhc2syLTIiCisgICAgICAgIH0sCisKKyAgICB9CisKKworZGVmIHRlc3Rf
Y2h1bmtzKCk6CisgICAgZGF0YSA9ICIiIgorY29tcG9uZW50czoge30KK3Rhc2tzOgorICAtIHRh
c2sxOgorICAgICAgbmFtZTogdGFzazEtJHtjaHVua3MuaWR9CisgICAgICBjaHVua3M6IDIKKyIi
IgorICAgIHRhc2tzX2RhdGEgPSB5YW1sLnNhZmVfbG9hZChkYXRhKQorICAgIGFzc2VydCB0YXNr
Z3JhcGgubG9hZF90YXNrcyh0YXNrc19kYXRhKSA9PSB7CisgICAgICAgICJ0YXNrMS0xIjogewor
ICAgICAgICAgICAgIm5hbWUiOiAidGFzazEtMSIsCisgICAgICAgICAgICAiY2h1bmtzIjogewor
ICAgICAgICAgICAgICAgICJpZCI6IDEsCisgICAgICAgICAgICAgICAgInRvdGFsIjogMgorICAg
ICAgICAgICAgfQorICAgICAgICB9LAorICAgICAgICAidGFzazEtMiI6IHsKKyAgICAgICAgICAg
ICJuYW1lIjogInRhc2sxLTIiLAorICAgICAgICAgICAgImNodW5rcyI6IHsKKyAgICAgICAgICAg
ICAgICAiaWQiOiAyLAorICAgICAgICAgICAgICAgICJ0b3RhbCI6IDIKKyAgICAgICAgICAgIH0K
KyAgICAgICAgfQorICAgIH0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvY2kvdGMvdGVzdHMvdGVzdF92YWxpZC5weSBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvY2kvdGMvdGVzdHMv
dGVzdF92YWxpZC5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45NDgwMTc4MjA2ZGVmOGQxYTVlNGVlNDY3OThiMTIz
ZDdlYWI0NWJlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy9jaS90Yy90ZXN0cy90ZXN0X3ZhbGlkLnB5CkBAIC0wLDAg
KzEsMTUyIEBACitpbXBvcnQganNvbgoraW1wb3J0IG9zCisKK2ltcG9ydCBqc29uZQoraW1wb3J0
IG1vY2sKK2ltcG9ydCBweXRlc3QKK2ltcG9ydCByZXF1ZXN0cworaW1wb3J0IHN5cworaW1wb3J0
IHlhbWwKK2Zyb20ganNvbnNjaGVtYSBpbXBvcnQgdmFsaWRhdGUKKworZnJvbSB0b29scy5jaS50
YyBpbXBvcnQgZGVjaXNpb24KKworaGVyZSA9IG9zLnBhdGguZGlybmFtZShfX2ZpbGVfXykKK3Jv
b3QgPSBvcy5wYXRoLmFic3BhdGgob3MucGF0aC5qb2luKGhlcmUsICIuLiIsICIuLiIsICIuLiIs
ICIuLiIpKQorCisKK2RlZiBkYXRhX3BhdGgoZmlsZW5hbWUpOgorICAgIHJldHVybiBvcy5wYXRo
LmpvaW4oaGVyZSwgIi4uIiwgInRlc3RkYXRhIiwgZmlsZW5hbWUpCisKKworQHB5dGVzdC5tYXJr
LnhmYWlsKHN5cy52ZXJzaW9uX2luZm8ubWFqb3IgPT0gMiwKKyAgICAgICAgICAgICAgICAgICBy
ZWFzb249InRhc2tjbHVzdGVyIGxpYnJhcnkgaGFzIGFuIGVuY29kaW5nIGJ1ZyAiCisgICAgICAg
ICAgICAgICAgICAgImh0dHBzOi8vZ2l0aHViLmNvbS90YXNrY2x1c3Rlci9qc29uLWUvaXNzdWVz
LzMzOCIpCitkZWYgdGVzdF92ZXJpZnlfdGFza2NsdXN0ZXJfeW1sKCk6CisgICAgIiIiVmVyaWZ5
IHRoYXQgdGhlIGpzb24tZSBpbiB0aGUgLnRhc2tjbHVzdGVyLnltbCBpcyB2YWxpZCIiIgorICAg
IHdpdGggb3Blbihvcy5wYXRoLmpvaW4ocm9vdCwgIi50YXNrY2x1c3Rlci55bWwiKSkgYXMgZjoK
KyAgICAgICAgdGVtcGxhdGUgPSB5YW1sLnNhZmVfbG9hZChmKQorCisgICAgZXZlbnRzID0gWygi
cHJfZXZlbnQuanNvbiIsICJnaXRodWItcHVsbC1yZXF1ZXN0IiwgIlB1bGwgUmVxdWVzdCIpLAor
ICAgICAgICAgICAgICAoIm1hc3Rlcl9wdXNoX2V2ZW50Lmpzb24iLCAiZ2l0aHViLXB1c2giLCAi
UHVzaCB0byBtYXN0ZXIiKV0KKworICAgIGZvciBmaWxlbmFtZSwgdGFza3NfZm9yLCB0aXRsZSBp
biBldmVudHM6CisgICAgICAgIHdpdGggb3BlbihkYXRhX3BhdGgoZmlsZW5hbWUpKSBhcyBmOgor
ICAgICAgICAgICAgZXZlbnQgPSBqc29uLmxvYWQoZikKKworICAgICAgICBjb250ZXh0ID0geyJ0
YXNrc19mb3IiOiB0YXNrc19mb3IsCisgICAgICAgICAgICAgICAgICAgImV2ZW50IjogZXZlbnQs
CisgICAgICAgICAgICAgICAgICAgImFzX3NsdWdpZCI6IGxhbWJkYSB4OiB4fQorCisgICAgICAg
IGpzb25lLnJlbmRlcih0ZW1wbGF0ZSwgY29udGV4dCkKKworCitkZWYgdGVzdF92ZXJpZnlfcGF5
bG9hZCgpOgorICAgICIiIlZlcmlmeSB0aGF0IHRoZSBkZWNpc2lvbiB0YXNrIHByb2R1Y2VzIHRh
c2tzIHdpdGggYSB2YWxpZCBwYXlsb2FkIiIiCisgICAgZnJvbSB0b29scy5jaS50Yy5kZWNpc2lv
biBpbXBvcnQgZGVjaWRlCisKKyAgICBjcmVhdGVfdGFza19zY2hlbWEgPSByZXF1ZXN0cy5nZXQo
CisgICAgICAgICJodHRwczovL3Jhdy5naXRodWJ1c2VyY29udGVudC5jb20vdGFza2NsdXN0ZXIv
dGFza2NsdXN0ZXIvYmxvYi9tYXN0ZXIvc2VydmljZXMvcXVldWUvc2NoZW1hcy92MS9jcmVhdGUt
dGFzay1yZXF1ZXN0LnltbCIpCisgICAgY3JlYXRlX3Rhc2tfc2NoZW1hID0geWFtbC5zYWZlX2xv
YWQoY3JlYXRlX3Rhc2tfc2NoZW1hLmNvbnRlbnQpCisKKyAgICBwYXlsb2FkX3NjaGVtYSA9IHJl
cXVlc3RzLmdldCgiaHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3Rhc2tjbHVzdGVy
L2RvY2tlci13b3JrZXIvbWFzdGVyL3NjaGVtYXMvdjEvcGF5bG9hZC5qc29uIikuanNvbigpCisK
KyAgICBqb2JzID0gWyJsaW50IiwKKyAgICAgICAgICAgICJtYW5pZmVzdF91cGxvYWQiLAorICAg
ICAgICAgICAgInJlc291cmNlc191bml0dGVzdCIsCisgICAgICAgICAgICAidG9vbHNfdW5pdHRl
c3QiLAorICAgICAgICAgICAgIndwdF9pbnRlZ3JhdGlvbiIsCisgICAgICAgICAgICAid3B0cnVu
bmVyX2luZnJhc3RydWN0dXJlIiwKKyAgICAgICAgICAgICJ3cHRydW5uZXJfdW5pdHRlc3QiXQor
CisgICAgZm9yIGZpbGVuYW1lIGluIFsicHJfZXZlbnQuanNvbiIsICJtYXN0ZXJfcHVzaF9ldmVu
dC5qc29uIl06CisgICAgICAgIHdpdGggb3BlbihkYXRhX3BhdGgoZmlsZW5hbWUpKSBhcyBmOgor
ICAgICAgICAgICAgZXZlbnQgPSBqc29uLmxvYWQoZikKKworICAgICAgICB3aXRoIG1vY2sucGF0
Y2goInRvb2xzLmNpLnRjLmRlY2lzaW9uLmdldF9mZXRjaF9yZXYiLCByZXR1cm5fdmFsdWU9KGV2
ZW50WyJhZnRlciJdLCBOb25lKSk6CisgICAgICAgICAgICB3aXRoIG1vY2sucGF0Y2goInRvb2xz
LmNpLnRjLmRlY2lzaW9uLmdldF9ydW5fam9icyIsIHJldHVybl92YWx1ZT1zZXQoam9icykpOgor
ICAgICAgICAgICAgICAgIHRhc2tfaWRfbWFwID0gZGVjaWRlKGV2ZW50KQorICAgICAgICBmb3Ig
bmFtZSwgKHRhc2tfaWQsIHRhc2tfZGF0YSkgaW4gdGFza19pZF9tYXAuaXRlbXMoKToKKyAgICAg
ICAgICAgIHRyeToKKyAgICAgICAgICAgICAgICB2YWxpZGF0ZShpbnN0YW5jZT10YXNrX2RhdGEs
IHNjaGVtYT1jcmVhdGVfdGFza19zY2hlbWEpCisgICAgICAgICAgICAgICAgdmFsaWRhdGUoaW5z
dGFuY2U9dGFza19kYXRhWyJwYXlsb2FkIl0sIHNjaGVtYT1wYXlsb2FkX3NjaGVtYSkKKyAgICAg
ICAgICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZToKKyAgICAgICAgICAgICAgICBwcmludCgiVmFs
aWRhdGlvbiBmYWlsZWQgZm9yIHRhc2sgJyVzJzpcbiVzIiAlIChuYW1lLCBqc29uLmR1bXBzKHRh
c2tfZGF0YSwgaW5kZW50PTIpKSkKKyAgICAgICAgICAgICAgICByYWlzZSBlCisKKworQHB5dGVz
dC5tYXJrLnBhcmFtZXRyaXplKCJldmVudF9wYXRoLGlzX3ByLGZpbGVzX2NoYW5nZWQsZXhwZWN0
ZWQiLCBbCisgICAgKCJtYXN0ZXJfcHVzaF9ldmVudC5qc29uIiwgRmFsc2UsIE5vbmUsCisgICAg
IHsnZG93bmxvYWQtZmlyZWZveC1uaWdodGx5JywKKyAgICAgICd3cHQtZmlyZWZveC1uaWdodGx5
LXRlc3RoYXJuZXNzLTEnLAorICAgICAgJ3dwdC1maXJlZm94LW5pZ2h0bHktdGVzdGhhcm5lc3Mt
MicsCisgICAgICAnd3B0LWZpcmVmb3gtbmlnaHRseS10ZXN0aGFybmVzcy0zJywKKyAgICAgICd3
cHQtZmlyZWZveC1uaWdodGx5LXRlc3RoYXJuZXNzLTQnLAorICAgICAgJ3dwdC1maXJlZm94LW5p
Z2h0bHktdGVzdGhhcm5lc3MtNScsCisgICAgICAnd3B0LWZpcmVmb3gtbmlnaHRseS10ZXN0aGFy
bmVzcy02JywKKyAgICAgICd3cHQtZmlyZWZveC1uaWdodGx5LXRlc3RoYXJuZXNzLTcnLAorICAg
ICAgJ3dwdC1maXJlZm94LW5pZ2h0bHktdGVzdGhhcm5lc3MtOCcsCisgICAgICAnd3B0LWZpcmVm
b3gtbmlnaHRseS10ZXN0aGFybmVzcy05JywKKyAgICAgICd3cHQtZmlyZWZveC1uaWdodGx5LXRl
c3RoYXJuZXNzLTEwJywKKyAgICAgICd3cHQtZmlyZWZveC1uaWdodGx5LXRlc3RoYXJuZXNzLTEx
JywKKyAgICAgICd3cHQtZmlyZWZveC1uaWdodGx5LXRlc3RoYXJuZXNzLTEyJywKKyAgICAgICd3
cHQtZmlyZWZveC1uaWdodGx5LXRlc3RoYXJuZXNzLTEzJywKKyAgICAgICd3cHQtZmlyZWZveC1u
aWdodGx5LXRlc3RoYXJuZXNzLTE0JywKKyAgICAgICd3cHQtZmlyZWZveC1uaWdodGx5LXRlc3Ro
YXJuZXNzLTE1JywKKyAgICAgICd3cHQtZmlyZWZveC1uaWdodGx5LXRlc3RoYXJuZXNzLTE2JywK
KyAgICAgICd3cHQtY2hyb21lLWRldi10ZXN0aGFybmVzcy0xJywKKyAgICAgICd3cHQtY2hyb21l
LWRldi10ZXN0aGFybmVzcy0yJywKKyAgICAgICd3cHQtY2hyb21lLWRldi10ZXN0aGFybmVzcy0z
JywKKyAgICAgICd3cHQtY2hyb21lLWRldi10ZXN0aGFybmVzcy00JywKKyAgICAgICd3cHQtY2hy
b21lLWRldi10ZXN0aGFybmVzcy01JywKKyAgICAgICd3cHQtY2hyb21lLWRldi10ZXN0aGFybmVz
cy02JywKKyAgICAgICd3cHQtY2hyb21lLWRldi10ZXN0aGFybmVzcy03JywKKyAgICAgICd3cHQt
Y2hyb21lLWRldi10ZXN0aGFybmVzcy04JywKKyAgICAgICd3cHQtY2hyb21lLWRldi10ZXN0aGFy
bmVzcy05JywKKyAgICAgICd3cHQtY2hyb21lLWRldi10ZXN0aGFybmVzcy0xMCcsCisgICAgICAn
d3B0LWNocm9tZS1kZXYtdGVzdGhhcm5lc3MtMTEnLAorICAgICAgJ3dwdC1jaHJvbWUtZGV2LXRl
c3RoYXJuZXNzLTEyJywKKyAgICAgICd3cHQtY2hyb21lLWRldi10ZXN0aGFybmVzcy0xMycsCisg
ICAgICAnd3B0LWNocm9tZS1kZXYtdGVzdGhhcm5lc3MtMTQnLAorICAgICAgJ3dwdC1jaHJvbWUt
ZGV2LXRlc3RoYXJuZXNzLTE1JywKKyAgICAgICd3cHQtY2hyb21lLWRldi10ZXN0aGFybmVzcy0x
NicsCisgICAgICAnd3B0LWZpcmVmb3gtbmlnaHRseS1yZWZ0ZXN0LTEnLAorICAgICAgJ3dwdC1m
aXJlZm94LW5pZ2h0bHktcmVmdGVzdC0yJywKKyAgICAgICd3cHQtZmlyZWZveC1uaWdodGx5LXJl
ZnRlc3QtMycsCisgICAgICAnd3B0LWZpcmVmb3gtbmlnaHRseS1yZWZ0ZXN0LTQnLAorICAgICAg
J3dwdC1maXJlZm94LW5pZ2h0bHktcmVmdGVzdC01JywKKyAgICAgICd3cHQtY2hyb21lLWRldi1y
ZWZ0ZXN0LTEnLAorICAgICAgJ3dwdC1jaHJvbWUtZGV2LXJlZnRlc3QtMicsCisgICAgICAnd3B0
LWNocm9tZS1kZXYtcmVmdGVzdC0zJywKKyAgICAgICd3cHQtY2hyb21lLWRldi1yZWZ0ZXN0LTQn
LAorICAgICAgJ3dwdC1jaHJvbWUtZGV2LXJlZnRlc3QtNScsCisgICAgICAnd3B0LWZpcmVmb3gt
bmlnaHRseS13ZHNwZWMtMScsCisgICAgICAnd3B0LWNocm9tZS1kZXYtd2RzcGVjLTEnLAorICAg
ICAgJ2xpbnQnfSksCisgICAgKCJwcl9ldmVudC5qc29uIiwgVHJ1ZSwgeyIudGFza2NsdXN0ZXIu
eW1sIiwiLnRyYXZpcy55bWwiLCJ0b29scy9jaS9zdGFydC5zaCJ9LAorICAgICB7J2xpbnQnLAor
ICAgICAgJ3Rvb2xzLyB1bml0dGVzdHMgKFB5dGhvbiAyKScsCisgICAgICAndG9vbHMvIHVuaXR0
ZXN0cyAoUHl0aG9uIDMpJywKKyAgICAgICd0b29scy93cHQvIHRlc3RzJywKKyAgICAgICdyZXNv
dXJjZXMvIHRlc3RzJywKKyAgICAgICdpbmZyYXN0cnVjdHVyZS8gdGVzdHMnfSksCisgICAgIyBN
b3JlIHRlc3RzIGFyZSBhZmZlY3RlZCBpbiB0aGUgYWN0dWFsIFBSIGJ1dCBpdCBzaG91bGRuJ3Qg
YWZmZWN0IHRoZSBzY2hlZHVsZWQgdGFza3MKKyAgICAoInByX2V2ZW50X3Rlc3RzX2FmZmVjdGVk
Lmpzb24iLCBUcnVlLCB7ImxheW91dC1pbnN0YWJpbGl0eS9jbGlwLW5lZ2F0aXZlLWJvdHRvbS1t
YXJnaW4uaHRtbCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICJsYXlvdXQtaW5zdGFiaWxpdHkvY29tcG9zaXRlZC1lbGVtZW50LW1vdmVtZW50Lmh0bWwifSwK
KyAgICAgeydkb3dubG9hZC1maXJlZm94LW5pZ2h0bHknLAorICAgICAgJ3dwdC1maXJlZm94LW5p
Z2h0bHktc3RhYmlsaXR5JywKKyAgICAgICd3cHQtZmlyZWZveC1uaWdodGx5LXJlc3VsdHMnLAor
ICAgICAgJ3dwdC1maXJlZm94LW5pZ2h0bHktcmVzdWx0cy13aXRob3V0LWNoYW5nZXMnLAorICAg
ICAgJ3dwdC1jaHJvbWUtZGV2LXN0YWJpbGl0eScsCisgICAgICAnd3B0LWNocm9tZS1kZXYtcmVz
dWx0cycsCisgICAgICAnd3B0LWNocm9tZS1kZXYtcmVzdWx0cy13aXRob3V0LWNoYW5nZXMnLAor
ICAgICAgJ2xpbnQnfSksCitdKQorZGVmIHRlc3Rfc2NoZWR1bGVfdGFza3MoZXZlbnRfcGF0aCwg
aXNfcHIsIGZpbGVzX2NoYW5nZWQsIGV4cGVjdGVkKToKKyAgICB3aXRoIG1vY2sucGF0Y2goInRv
b2xzLmNpLnRjLmRlY2lzaW9uLmdldF9mZXRjaF9yZXYiLCByZXR1cm5fdmFsdWU9KGlzX3ByLCBO
b25lKSk6CisgICAgICAgIHdpdGggbW9jay5wYXRjaCgidG9vbHMud3B0LnRlc3RmaWxlcy5yZXBv
X2ZpbGVzX2NoYW5nZWQiLAorICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuX3ZhbHVlPWZp
bGVzX2NoYW5nZWQpOgorICAgICAgICAgICAgd2l0aCBvcGVuKGRhdGFfcGF0aChldmVudF9wYXRo
KSkgYXMgZXZlbnRfZmlsZToKKyAgICAgICAgICAgICAgICBldmVudCA9IGpzb24ubG9hZChldmVu
dF9maWxlKQorICAgICAgICAgICAgICAgIHNjaGVkdWxlZCA9IGRlY2lzaW9uLmRlY2lkZShldmVu
dCkKKyAgICAgICAgICAgICAgICBhc3NlcnQgc2V0KHNjaGVkdWxlZC5rZXlzKCkpID09IGV4cGVj
dGVkCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL2NpL3Rlc3RzL3Rlc3Rfam9icy5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvY2kvdGVzdHMvdGVzdF9qb2JzLnB5CmluZGV4IGU4
ODhhZDg4NGExOGYyNTcwMDhmZTg2MGYzMWY3ODkyYjNiZDM5YTMuLjk0Zjc5OTg3NzBjZjVkOGJh
ZDM2ZDE4OGRkNjNlMjUzZjk4MTk5YTggMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvY2kvdGVzdHMvdGVzdF9qb2JzLnB5CisrKyBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvY2kvdGVz
dHMvdGVzdF9qb2JzLnB5CkBAIC0xLDIxICsxLDQ0IEBACiBmcm9tIHRvb2xzLmNpIGltcG9ydCBq
b2JzCiAKLWRlZmF1bHRfam9icyA9IHNldChbImxpbnQiLCAibWFuaWZlc3RfdXBsb2FkIl0pCith
bGxfam9icyA9IHsKKyAgICAiYnVpbGRfY3NzIiwKKyAgICAibGludCIsCisgICAgIm1hbmlmZXN0
X3VwbG9hZCIsCisgICAgInJlc291cmNlc191bml0dGVzdCIsCisgICAgImFmZmVjdGVkX3Rlc3Rz
IiwKKyAgICAic3RhYmlsaXR5IiwKKyAgICAidG9vbHNfdW5pdHRlc3QiLAorICAgICJ1cGRhdGVf
YnVpbHQiLAorICAgICJ3cHRfaW50ZWdyYXRpb24iLAorICAgICJ3cHRydW5uZXJfaW5mcmFzdHJ1
Y3R1cmUiLAorICAgICJ3cHRydW5uZXJfdW5pdHRlc3QiLAorfQorCitkZWZhdWx0X2pvYnMgPSB7
ImxpbnQiLCAibWFuaWZlc3RfdXBsb2FkIn0KKworCitkZWYgdGVzdF9hbGwoKToKKyAgICBhc3Nl
cnQgam9icy5nZXRfam9icyhbIlJFQURNRS5tZCJdLCBhbGw9VHJ1ZSkgPT0gYWxsX2pvYnMKKwor
CitkZWYgdGVzdF9kZWZhdWx0KCk6CisgICAgYXNzZXJ0IGpvYnMuZ2V0X2pvYnMoWyJSRUFETUUu
bWQiXSkgPT0gZGVmYXVsdF9qb2JzCiAKIAogZGVmIHRlc3RfdGVzdGhhcm5lc3MoKToKLSAgICBh
c3NlcnQgam9icy5nZXRfam9icyhbInJlc291cmNlcy90ZXN0aGFybmVzcy5qcyJdKSA9PSBkZWZh
dWx0X2pvYnMgfCBzZXQoWyJyZXNvdXJjZXNfdW5pdHRlc3QiXSkKKyAgICBhc3NlcnQgam9icy5n
ZXRfam9icyhbInJlc291cmNlcy90ZXN0aGFybmVzcy5qcyJdKSA9PSBkZWZhdWx0X2pvYnMgfCB7
InJlc291cmNlc191bml0dGVzdCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ3cHRydW5uZXJfaW5mcmFz
dHJ1Y3R1cmUifQogICAgIGFzc2VydCBqb2JzLmdldF9qb2JzKFsicmVzb3VyY2VzL3Rlc3RoYXJu
ZXNzLmpzIl0sCi0gICAgICAgICAgICAgICAgICAgICAgICAgaW5jbHVkZXM9WyJyZXNvdXJjZXNf
dW5pdHRlc3QiXSkgPT0gc2V0KFsicmVzb3VyY2VzX3VuaXR0ZXN0Il0pCisgICAgICAgICAgICAg
ICAgICAgICAgICAgaW5jbHVkZXM9WyJyZXNvdXJjZXNfdW5pdHRlc3QiXSkgPT0geyJyZXNvdXJj
ZXNfdW5pdHRlc3QifQogICAgIGFzc2VydCBqb2JzLmdldF9qb2JzKFsidG9vbHMvd3B0c2VydmUv
d3B0c2VydmUvY29uZmlnLnB5Il0sCi0gICAgICAgICAgICAgICAgICAgICAgICAgaW5jbHVkZXM9
WyJyZXNvdXJjZXNfdW5pdHRlc3QiXSkgPT0gc2V0KFsicmVzb3VyY2VzX3VuaXR0ZXN0Il0pCisg
ICAgICAgICAgICAgICAgICAgICAgICAgaW5jbHVkZXM9WyJyZXNvdXJjZXNfdW5pdHRlc3QiXSkg
PT0geyJyZXNvdXJjZXNfdW5pdHRlc3QifQogICAgIGFzc2VydCBqb2JzLmdldF9qb2JzKFsiZm9v
L3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyJdLAogICAgICAgICAgICAgICAgICAgICAgICAgIGlu
Y2x1ZGVzPVsicmVzb3VyY2VzX3VuaXR0ZXN0Il0pID09IHNldCgpCiAKIAogZGVmIHRlc3Rfc3Rh
YmlsaXR5KCk6CiAgICAgYXNzZXJ0IGpvYnMuZ2V0X2pvYnMoWyJkb20vaGlzdG9yaWNhbC5odG1s
Il0sCi0gICAgICAgICAgICAgICAgICAgICAgICAgaW5jbHVkZXM9WyJzdGFiaWxpdHkiXSkgPT0g
c2V0KFsic3RhYmlsaXR5Il0pCisgICAgICAgICAgICAgICAgICAgICAgICAgaW5jbHVkZXM9WyJz
dGFiaWxpdHkiXSkgPT0geyJzdGFiaWxpdHkifQogICAgIGFzc2VydCBqb2JzLmdldF9qb2JzKFsi
dG9vbHMvcHl0ZXN0LmluaSJdLAogICAgICAgICAgICAgICAgICAgICAgICAgIGluY2x1ZGVzPVsi
c3RhYmlsaXR5Il0pID09IHNldCgpCiAgICAgYXNzZXJ0IGpvYnMuZ2V0X2pvYnMoWyJzZXJ2ZSJd
LApAQCAtMzMsMTkgKzU2LDQxIEBAIGRlZiB0ZXN0X3N0YWJpbGl0eSgpOgogICAgIGFzc2VydCBq
b2JzLmdldF9qb2JzKFsiY3NzL2J1aWxkLWNzcy10ZXN0c3VpdGUuc2giXSwKICAgICAgICAgICAg
ICAgICAgICAgICAgICBpbmNsdWRlcz1bInN0YWJpbGl0eSJdKSA9PSBzZXQoKQogICAgIGFzc2Vy
dCBqb2JzLmdldF9qb2JzKFsiY3NzL0NTUzIxL3Rlc3QtMDAxLmh0bWwiXSwKLSAgICAgICAgICAg
ICAgICAgICAgICAgICBpbmNsdWRlcz1bInN0YWJpbGl0eSJdKSA9PSBzZXQoWyJzdGFiaWxpdHki
XSkKKyAgICAgICAgICAgICAgICAgICAgICAgICBpbmNsdWRlcz1bInN0YWJpbGl0eSJdKSA9PSB7
InN0YWJpbGl0eSJ9CiAgICAgYXNzZXJ0IGpvYnMuZ2V0X2pvYnMoWyJjc3MvYnVpbGQtY3NzLXRl
c3RzdWl0ZS5zaCIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICJjc3MvQ1NTMjEvdGVzdC0w
MDEuaHRtbCJdLAotICAgICAgICAgICAgICAgICAgICAgICAgIGluY2x1ZGVzPVsic3RhYmlsaXR5
Il0pID09IHNldChbInN0YWJpbGl0eSJdKQotCi0KLWRlZiB0ZXN0X2RlZmF1bHQoKToKLSAgICBh
c3NlcnQgam9icy5nZXRfam9icyhbIlJFQURNRS5tZCJdKSA9PSBkZWZhdWx0X2pvYnMKKyAgICAg
ICAgICAgICAgICAgICAgICAgICBpbmNsdWRlcz1bInN0YWJpbGl0eSJdKSA9PSB7InN0YWJpbGl0
eSJ9CiAKK2RlZiB0ZXN0X2FmZmVjdGVkX3Rlc3RzKCk6CisgICAgYXNzZXJ0IGpvYnMuZ2V0X2pv
YnMoWyJkb20vaGlzdG9yaWNhbC5odG1sIl0sCisgICAgICAgICAgICAgICAgICAgICAgICAgaW5j
bHVkZXM9WyJhZmZlY3RlZF90ZXN0cyJdKSA9PSB7ImFmZmVjdGVkX3Rlc3RzIn0KKyAgICBhc3Nl
cnQgam9icy5nZXRfam9icyhbInRvb2xzL3B5dGVzdC5pbmkiXSwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICBpbmNsdWRlcz1bImFmZmVjdGVkX3Rlc3RzIl0pID09IHNldCgpCisgICAgYXNzZXJ0
IGpvYnMuZ2V0X2pvYnMoWyJzZXJ2ZSJdLAorICAgICAgICAgICAgICAgICAgICAgICAgIGluY2x1
ZGVzPVsiYWZmZWN0ZWRfdGVzdHMiXSkgPT0gc2V0KCkKKyAgICBhc3NlcnQgam9icy5nZXRfam9i
cyhbInJlc291cmNlcy90ZXN0aGFybmVzcy5qcyJdLAorICAgICAgICAgICAgICAgICAgICAgICAg
IGluY2x1ZGVzPVsiYWZmZWN0ZWRfdGVzdHMiXSkgPT0gc2V0KCkKKyAgICBhc3NlcnQgam9icy5n
ZXRfam9icyhbImRvY3MvLmdpdGlnbm9yZSJdLAorICAgICAgICAgICAgICAgICAgICAgICAgIGlu
Y2x1ZGVzPVsiYWZmZWN0ZWRfdGVzdHMiXSkgPT0gc2V0KCkKKyAgICBhc3NlcnQgam9icy5nZXRf
am9icyhbImRvbS90b29scy9leGFtcGxlLnB5Il0sCisgICAgICAgICAgICAgICAgICAgICAgICAg
aW5jbHVkZXM9WyJhZmZlY3RlZF90ZXN0cyJdKSA9PSBzZXQoKQorICAgIGFzc2VydCBqb2JzLmdl
dF9qb2JzKFsiY29uZm9ybWFuY2UtY2hlY2tlcnMvdGVzdC5odG1sIl0sCisgICAgICAgICAgICAg
ICAgICAgICAgICAgaW5jbHVkZXM9WyJhZmZlY3RlZF90ZXN0cyJdKSA9PSBzZXQoKQorICAgIGFz
c2VydCBqb2JzLmdldF9qb2JzKFsiZG9tL1JFQURNRS5tZCJdLAorICAgICAgICAgICAgICAgICAg
ICAgICAgIGluY2x1ZGVzPVsiYWZmZWN0ZWRfdGVzdHMiXSkgPT0gc2V0KCkKKyAgICBhc3NlcnQg
am9icy5nZXRfam9icyhbImNzcy9idWlsZC1jc3MtdGVzdHN1aXRlLnNoIl0sCisgICAgICAgICAg
ICAgICAgICAgICAgICAgaW5jbHVkZXM9WyJhZmZlY3RlZF90ZXN0cyJdKSA9PSBzZXQoKQorICAg
IGFzc2VydCBqb2JzLmdldF9qb2JzKFsiY3NzL0NTUzIxL3Rlc3QtMDAxLmh0bWwiXSwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICBpbmNsdWRlcz1bImFmZmVjdGVkX3Rlc3RzIl0pID09IHsiYWZm
ZWN0ZWRfdGVzdHMifQorICAgIGFzc2VydCBqb2JzLmdldF9qb2JzKFsiY3NzL2J1aWxkLWNzcy10
ZXN0c3VpdGUuc2giLAorICAgICAgICAgICAgICAgICAgICAgICAgICAiY3NzL0NTUzIxL3Rlc3Qt
MDAxLmh0bWwiXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICBpbmNsdWRlcz1bImFmZmVjdGVk
X3Rlc3RzIl0pID09IHsiYWZmZWN0ZWRfdGVzdHMifQorICAgIGFzc2VydCBqb2JzLmdldF9qb2Jz
KFsicmVzb3VyY2VzL2lkbGhhcm5lc3MuanMiXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICBp
bmNsdWRlcz1bImFmZmVjdGVkX3Rlc3RzIl0pID09IHsiYWZmZWN0ZWRfdGVzdHMifQogCiBkZWYg
dGVzdF90b29sc191bml0dGVzdCgpOgogICAgIGFzc2VydCBqb2JzLmdldF9qb2JzKFsidG9vbHMv
Y2kvdGVzdC90ZXN0X2pvYnMucHkiXSwKLSAgICAgICAgICAgICAgICAgICAgICAgICBpbmNsdWRl
cz1bInRvb2xzX3VuaXR0ZXN0Il0pID09IHNldChbInRvb2xzX3VuaXR0ZXN0Il0pCisgICAgICAg
ICAgICAgICAgICAgICAgICAgaW5jbHVkZXM9WyJ0b29sc191bml0dGVzdCJdKSA9PSB7InRvb2xz
X3VuaXR0ZXN0In0KICAgICBhc3NlcnQgam9icy5nZXRfam9icyhbImRvbS90b29scy9leGFtcGxl
LnB5Il0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgaW5jbHVkZXM9WyJ0b29sc191bml0dGVz
dCJdKSA9PSBzZXQoKQogICAgIGFzc2VydCBqb2JzLmdldF9qb2JzKFsiZG9tL2hpc3RvcmljYWwu
aHRtbCJdLApAQCAtNTQsMzcgKzk5LDM4IEBAIGRlZiB0ZXN0X3Rvb2xzX3VuaXR0ZXN0KCk6CiAK
IGRlZiB0ZXN0X3dwdHJ1bm5lcl91bml0dGVzdCgpOgogICAgIGFzc2VydCBqb2JzLmdldF9qb2Jz
KFsidG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci93cHRydW5uZXIucHkiXSwKLSAgICAgICAgICAg
ICAgICAgICAgICAgICBpbmNsdWRlcz1bIndwdHJ1bm5lcl91bml0dGVzdCJdKSA9PSBzZXQoWyJ3
cHRydW5uZXJfdW5pdHRlc3QiXSkKKyAgICAgICAgICAgICAgICAgICAgICAgICBpbmNsdWRlcz1b
IndwdHJ1bm5lcl91bml0dGVzdCJdKSA9PSB7IndwdHJ1bm5lcl91bml0dGVzdCJ9CiAgICAgYXNz
ZXJ0IGpvYnMuZ2V0X2pvYnMoWyJ0b29scy9leGFtcGxlLnB5Il0sCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgaW5jbHVkZXM9WyJ3cHRydW5uZXJfdW5pdHRlc3QiXSkgPT0gc2V0KCkKKyAgICAg
ICAgICAgICAgICAgICAgICAgICBpbmNsdWRlcz1bIndwdHJ1bm5lcl91bml0dGVzdCJdKSA9PSB7
IndwdHJ1bm5lcl91bml0dGVzdCJ9CiAKIAogZGVmIHRlc3RfYnVpbGRfY3NzKCk6CiAgICAgYXNz
ZXJ0IGpvYnMuZ2V0X2pvYnMoWyJjc3MvY3NzLWJ1aWxkLXRlc3RzdWl0ZXMuc2giXSwKLSAgICAg
ICAgICAgICAgICAgICAgICAgICBpbmNsdWRlcz1bImJ1aWxkX2NzcyJdKSA9PSBzZXQoWyJidWls
ZF9jc3MiXSkKKyAgICAgICAgICAgICAgICAgICAgICAgICBpbmNsdWRlcz1bImJ1aWxkX2NzcyJd
KSA9PSB7ImJ1aWxkX2NzcyJ9CiAgICAgYXNzZXJ0IGpvYnMuZ2V0X2pvYnMoWyJjc3MvQ1NTMjEv
dGVzdC5odG1sIl0sCi0gICAgICAgICAgICAgICAgICAgICAgICAgaW5jbHVkZXM9WyJidWlsZF9j
c3MiXSkgPT0gc2V0KFsiYnVpbGRfY3NzIl0pCisgICAgICAgICAgICAgICAgICAgICAgICAgaW5j
bHVkZXM9WyJidWlsZF9jc3MiXSkgPT0geyJidWlsZF9jc3MifQogICAgIGFzc2VydCBqb2JzLmdl
dF9qb2JzKFsiaHRtbC9jc3MvQ1NTMjEvdGVzdC5odG1sIl0sCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgaW5jbHVkZXM9WyJidWlsZF9jc3MiXSkgPT0gc2V0KCkKIAogCiBkZWYgdGVzdF91cGRh
dGVfYnVpbHQoKToKICAgICBhc3NlcnQgam9icy5nZXRfam9icyhbIjJkY29udGV4dC9mb28uaHRt
bCJdLAotICAgICAgICAgICAgICAgICAgICAgICAgIGluY2x1ZGVzPVsidXBkYXRlX2J1aWx0Il0p
ID09IHNldChbInVwZGF0ZV9idWlsdCJdKQorICAgICAgICAgICAgICAgICAgICAgICAgIGluY2x1
ZGVzPVsidXBkYXRlX2J1aWx0Il0pID09IHsidXBkYXRlX2J1aWx0In0KICAgICBhc3NlcnQgam9i
cy5nZXRfam9icyhbImh0bWwvZm9vLmh0bWwiXSwKLSAgICAgICAgICAgICAgICAgICAgICAgICBp
bmNsdWRlcz1bInVwZGF0ZV9idWlsdCJdKSA9PSBzZXQoWyJ1cGRhdGVfYnVpbHQiXSkKKyAgICAg
ICAgICAgICAgICAgICAgICAgICBpbmNsdWRlcz1bInVwZGF0ZV9idWlsdCJdKSA9PSB7InVwZGF0
ZV9idWlsdCJ9CiAgICAgYXNzZXJ0IGpvYnMuZ2V0X2pvYnMoWyJvZmZzY3JlZW4tY2FudmFzL2Zv
by5odG1sIl0sCi0gICAgICAgICAgICAgICAgICAgICAgICAgaW5jbHVkZXM9WyJ1cGRhdGVfYnVp
bHQiXSkgPT0gc2V0KFsidXBkYXRlX2J1aWx0Il0pCisgICAgICAgICAgICAgICAgICAgICAgICAg
aW5jbHVkZXM9WyJ1cGRhdGVfYnVpbHQiXSkgPT0geyJ1cGRhdGVfYnVpbHQifQogCiAKIGRlZiB0
ZXN0X3dwdF9pbnRlZ3JhdGlvbigpOgogICAgIGFzc2VydCBqb2JzLmdldF9qb2JzKFsidG9vbHMv
d3B0L3dwdC5weSJdLAotICAgICAgICAgICAgICAgICAgICAgICAgIGluY2x1ZGVzPVsid3B0X2lu
dGVncmF0aW9uIl0pID09IHNldChbIndwdF9pbnRlZ3JhdGlvbiJdKQorICAgICAgICAgICAgICAg
ICAgICAgICAgIGluY2x1ZGVzPVsid3B0X2ludGVncmF0aW9uIl0pID09IHsid3B0X2ludGVncmF0
aW9uIn0KICAgICBhc3NlcnQgam9icy5nZXRfam9icyhbInRvb2xzL3dwdHJ1bm5lci93cHRydW5u
ZXIvd3B0cnVubmVyLnB5Il0sCi0gICAgICAgICAgICAgICAgICAgICAgICAgaW5jbHVkZXM9WyJ3
cHRfaW50ZWdyYXRpb24iXSkgPT0gc2V0KFsid3B0X2ludGVncmF0aW9uIl0pCisgICAgICAgICAg
ICAgICAgICAgICAgICAgaW5jbHVkZXM9WyJ3cHRfaW50ZWdyYXRpb24iXSkgPT0geyJ3cHRfaW50
ZWdyYXRpb24ifQorCiAKIGRlZiB0ZXN0X3dwdF9pbmZyYXN0cnVjdHVyZSgpOgogICAgIGFzc2Vy
dCBqb2JzLmdldF9qb2JzKFsidG9vbHMvaGFtbWVyLmh0bWwiXSwKLSAgICAgICAgICAgICAgICAg
ICAgICAgICBpbmNsdWRlcz1bIndwdHJ1bm5lcl9pbmZyYXN0cnVjdHVyZSJdKSA9PSBzZXQoWyJ3
cHRydW5uZXJfaW5mcmFzdHJ1Y3R1cmUiXSkKKyAgICAgICAgICAgICAgICAgICAgICAgICBpbmNs
dWRlcz1bIndwdHJ1bm5lcl9pbmZyYXN0cnVjdHVyZSJdKSA9PSB7IndwdHJ1bm5lcl9pbmZyYXN0
cnVjdHVyZSJ9CiAgICAgYXNzZXJ0IGpvYnMuZ2V0X2pvYnMoWyJpbmZyYXN0cnVjdHVyZS9hc3N1
bXB0aW9ucy9haGVtLmh0bWwiXSwKLSAgICAgICAgICAgICAgICAgICAgICAgICBpbmNsdWRlcz1b
IndwdHJ1bm5lcl9pbmZyYXN0cnVjdHVyZSJdKSA9PSBzZXQoWyJ3cHRydW5uZXJfaW5mcmFzdHJ1
Y3R1cmUiXSkKKyAgICAgICAgICAgICAgICAgICAgICAgICBpbmNsdWRlcz1bIndwdHJ1bm5lcl9p
bmZyYXN0cnVjdHVyZSJdKSA9PSB7IndwdHJ1bm5lcl9pbmZyYXN0cnVjdHVyZSJ9CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2Np
L3Rlc3RzL3Rlc3RfcHJfcHJldmlldy5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvY2kvdGVzdHMvdGVzdF9wcl9wcmV2aWV3LnB5Cm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjYzNDgyZmIxODRjN2YxNGRiMGViZDQ1YzE4Nzk0ZTNhOTc3MWM5MGIKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L2NpL3Rlc3RzL3Rlc3RfcHJfcHJldmlldy5weQpAQCAtMCwwICsxLDcyMCBAQAordHJ5OgorICAg
IGZyb20gQmFzZUhUVFBTZXJ2ZXIgaW1wb3J0IEJhc2VIVFRQUmVxdWVzdEhhbmRsZXIsIEhUVFBT
ZXJ2ZXIKK2V4Y2VwdCBJbXBvcnRFcnJvcjoKKyAgICAjIFB5dGhvbiAzIGNhc2UKKyAgICBmcm9t
IGh0dHAuc2VydmVyIGltcG9ydCBCYXNlSFRUUFJlcXVlc3RIYW5kbGVyLCBIVFRQU2VydmVyCitp
bXBvcnQgY29udGV4dGxpYgoraW1wb3J0IGVycm5vCitpbXBvcnQganNvbgoraW1wb3J0IG9zCitp
bXBvcnQgc2h1dGlsCitpbXBvcnQgc3RhdAoraW1wb3J0IHN1YnByb2Nlc3MKK2ltcG9ydCB0ZW1w
ZmlsZQoraW1wb3J0IHRocmVhZGluZworCitzdWJqZWN0ID0gb3MucGF0aC5qb2luKAorICAgIG9z
LnBhdGguZGlybmFtZShvcy5wYXRoLmFic3BhdGgoX19maWxlX18pKSwgJy4uJywgJ3ByX3ByZXZp
ZXcucHknCispCit0ZXN0X2hvc3QgPSAnbG9jYWxob3N0JworCisKK2RlZiBzYW1lX21lbWJlcnMo
YSwgYik6CisgICAgaWYgbGVuKGEpICE9IGxlbihiKToKKyAgICAgICAgcmV0dXJuIEZhbHNlCisg
ICAgYV9jb3B5ID0gbGlzdChhKQorICAgIGZvciBlbGVtIGluIGI6CisgICAgICAgIHRyeToKKyAg
ICAgICAgICAgIGFfY29weS5yZW1vdmUoZWxlbSkKKyAgICAgICAgZXhjZXB0IFZhbHVlRXJyb3I6
CisgICAgICAgICAgICByZXR1cm4gRmFsc2UKKworICAgIHJldHVybiBsZW4oYV9jb3B5KSA9PSAw
CisKKworIyBXaGVuIHRoZXNlIHRlc3RzIGFyZSBleGVjdXRlZCBpbiBXaW5kb3dzLCBmaWxlcyBp
biB0aGUgdGVtcG9yYXJ5IGdpdAorIyByZXBvc2l0b3JpZXMgbWF5IGJlIG1hcmtlZCBhcyAicmVh
ZCBvbmx5IiBhdCB0aGUgbW9tZW50IHRoZXkgYXJlIGludGVuZGVkIHRvCisjIGJlIGRlbGV0ZWQu
IFRoZSBmb2xsb3dpbmcgaGFuZGxlciBmb3IgYHNodXRpbC5ybXRyZWVgIGFjY291bnRzIGZvciB0
aGlzIGJ5CisjIG1ha2luZyB0aGUgZmlsZXMgd3JpdGFibGUgYW5kIGF0dGVtcHRpbmcgdG8gZGVs
ZXRlIHRoZW0gYSBzZWNvbmQgdGltZS4KKyMKKyMgU291cmNlOgorIyBodHRwczovL3N0YWNrb3Zl
cmZsb3cuY29tL3F1ZXN0aW9ucy8xMjEzNzA2L3doYXQtdXNlci1kby1weXRob24tc2NyaXB0cy1y
dW4tYXMtaW4td2luZG93cworZGVmIGhhbmRsZV9yZW1vdmVfcmVhZG9ubHkoZnVuYywgcGF0aCwg
ZXhjKToKKyAgICBleGN2YWx1ZSA9IGV4Y1sxXQorICAgIGNhbmRpZGF0ZXMgPSAob3Mucm1kaXIs
IG9zLnJlbW92ZSwgb3MudW5saW5rKQorICAgIGlmIGZ1bmMgaW4gY2FuZGlkYXRlcyBhbmQgZXhj
dmFsdWUuZXJybm8gPT0gZXJybm8uRUFDQ0VTOgorICAgICAgICBvcy5jaG1vZChwYXRoLCBzdGF0
LlNfSVJXWFUgfCBzdGF0LlNfSVJXWEcgfCBzdGF0LlNfSVJXWE8pICAjIDA3NzcKKyAgICAgICAg
ZnVuYyhwYXRoKQorICAgIGVsc2U6CisgICAgICAgIHJhaXNlCisKKworY2xhc3MgTW9ja0hhbmRs
ZXIoQmFzZUhUVFBSZXF1ZXN0SGFuZGxlciwgb2JqZWN0KToKKyAgICBkZWYgZG9fYWxsKHNlbGYp
OgorICAgICAgICBwYXRoID0gc2VsZi5wYXRoLnNwbGl0KCc/JylbMF0KKyAgICAgICAgcmVxdWVz
dF9ib2R5ID0gTm9uZQorCisgICAgICAgIGlmICdDb250ZW50LUxlbmd0aCcgaW4gc2VsZi5oZWFk
ZXJzOgorICAgICAgICAgICAgcmVxdWVzdF9ib2R5ID0gc2VsZi5yZmlsZS5yZWFkKAorICAgICAg
ICAgICAgICAgIGludChzZWxmLmhlYWRlcnNbJ0NvbnRlbnQtTGVuZ3RoJ10pCisgICAgICAgICAg
ICApLmRlY29kZSgndXRmLTgnKQorCisgICAgICAgICAgICBpZiBzZWxmLmhlYWRlcnMuZ2V0KCdD
b250ZW50LVR5cGUnKSA9PSAnYXBwbGljYXRpb24vanNvbic6CisgICAgICAgICAgICAgICAgcmVx
dWVzdF9ib2R5ID0ganNvbi5sb2FkcyhyZXF1ZXN0X2JvZHkpCisKKyAgICAgICAgZm9yIHJlcXVl
c3QsIHJlc3BvbnNlIGluIHNlbGYuc2VydmVyLmV4cGVjdGVkX3RyYWZmaWM6CisgICAgICAgICAg
ICBpZiByZXF1ZXN0WzBdICE9IHNlbGYuY29tbWFuZDoKKyAgICAgICAgICAgICAgICBjb250aW51
ZQorICAgICAgICAgICAgaWYgcmVxdWVzdFsxXSAhPSBwYXRoOgorICAgICAgICAgICAgICAgIGNv
bnRpbnVlCisgICAgICAgICAgICBib2R5X21hdGNoZXMgPSBUcnVlCisgICAgICAgICAgICBmb3Ig
a2V5IGluIHJlcXVlc3RbMl06CisgICAgICAgICAgICAgICAgYm9keV9tYXRjaGVzICY9IHJlcXVl
c3RbMl1ba2V5XSA9PSByZXF1ZXN0X2JvZHkuZ2V0KGtleSkKKyAgICAgICAgICAgIGlmIG5vdCBi
b2R5X21hdGNoZXM6CisgICAgICAgICAgICAgICAgY29udGludWUKKyAgICAgICAgICAgIGJyZWFr
CisgICAgICAgIGVsc2U6CisgICAgICAgICAgICByZXF1ZXN0ID0gKHNlbGYuY29tbWFuZCwgcGF0
aCwgcmVxdWVzdF9ib2R5KQorICAgICAgICAgICAgcmVzcG9uc2UgPSAoNDAwLCB7fSkKKworICAg
ICAgICBzZWxmLnNlcnZlci5hY3R1YWxfdHJhZmZpYy5hcHBlbmQoKHJlcXVlc3QsIHJlc3BvbnNl
KSkKKyAgICAgICAgc2VsZi5zZW5kX3Jlc3BvbnNlKHJlc3BvbnNlWzBdKQorICAgICAgICBzZWxm
LmVuZF9oZWFkZXJzKCkKKyAgICAgICAgc2VsZi53ZmlsZS53cml0ZShqc29uLmR1bXBzKHJlc3Bv
bnNlWzFdKS5lbmNvZGUoJ3V0Zi04JykpCisKKyAgICBkZWYgZG9fREVMRVRFKHNlbGYpOgorICAg
ICAgICByZXR1cm4gc2VsZi5kb19hbGwoKQorCisgICAgZGVmIGRvX0dFVChzZWxmKToKKyAgICAg
ICAgcmV0dXJuIHNlbGYuZG9fYWxsKCkKKworICAgIGRlZiBkb19QQVRDSChzZWxmKToKKyAgICAg
ICAgcmV0dXJuIHNlbGYuZG9fYWxsKCkKKworICAgIGRlZiBkb19QT1NUKHNlbGYpOgorICAgICAg
ICByZXR1cm4gc2VsZi5kb19hbGwoKQorCisKK2NsYXNzIE1vY2tTZXJ2ZXIoSFRUUFNlcnZlciwg
b2JqZWN0KToKKyAgICAnJydIVFRQIHNlcnZlciB0aGF0IHJlc3BvbmRzIHRvIGFsbCByZXF1ZXN0
cyB3aXRoIHN0YXR1cyBjb2RlIDIwMCBhbmQgYm9keQorICAgICd7fScgdW5sZXNzIGFuIGFsdGVy
bmF0aXZlIHN0YXR1cyBjb2RlIGFuZCBib2R5IGFyZSBzcGVjaWZpZWQgZm9yIHRoZSBnaXZlbgor
ICAgIG1ldGhvZCBhbmQgcGF0aCBpbiB0aGUgYHJlc3BvbnNlc2AgcGFyYW1ldGVyLicnJworICAg
IGRlZiBfX2luaXRfXyhzZWxmLCBhZGRyZXNzLCBleHBlY3RlZF90cmFmZmljKToKKyAgICAgICAg
c3VwZXIoTW9ja1NlcnZlciwgc2VsZikuX19pbml0X18oYWRkcmVzcywgTW9ja0hhbmRsZXIpCisg
ICAgICAgIHNlbGYuZXhwZWN0ZWRfdHJhZmZpYyA9IGV4cGVjdGVkX3RyYWZmaWMKKyAgICAgICAg
c2VsZi5hY3R1YWxfdHJhZmZpYyA9IFtdCisKKyAgICBkZWYgX19lbnRlcl9fKHNlbGYpOgorICAg
ICAgICB0aHJlYWRpbmcuVGhyZWFkKHRhcmdldD1sYW1iZGE6IHNlbGYuc2VydmVfZm9yZXZlcigp
KS5zdGFydCgpCisgICAgICAgIHJldHVybiBzZWxmCisKKyAgICBkZWYgX19leGl0X18oc2VsZiwg
KmFyZ3MpOgorICAgICAgICBzZWxmLnNodXRkb3duKCkKKworCitjbGFzcyBSZXF1ZXN0cyhvYmpl
Y3QpOgorICAgIGdldF9yYXRlID0gKCdHRVQnLCAnL3JhdGVfbGltaXQnLCB7fSkKKyAgICBzZWFy
Y2ggPSAoJ0dFVCcsICcvc2VhcmNoL2lzc3VlcycsIHt9KQorICAgIHJlZl9jcmVhdGVfb3BlbiA9
ICgKKyAgICAgICAgJ1BPU1QnLCAnL3JlcG9zL3Rlc3Qtb3JnL3Rlc3QtcmVwby9naXQvcmVmcycs
IHsncmVmJzoncmVmcy9wcnMtb3Blbi8yMyd9CisgICAgKQorICAgIHJlZl9jcmVhdGVfdHJ1c3Rl
ZCA9ICgKKyAgICAgICAgJ1BPU1QnLAorICAgICAgICAnL3JlcG9zL3Rlc3Qtb3JnL3Rlc3QtcmVw
by9naXQvcmVmcycsCisgICAgICAgIHsncmVmJzoncmVmcy9wcnMtdHJ1c3RlZC1mb3ItcHJldmll
dy8yMyd9CisgICAgKQorICAgIHJlZl91cGRhdGVfb3BlbiA9ICgKKyAgICAgICAgJ1BBVENIJywg
Jy9yZXBvcy90ZXN0LW9yZy90ZXN0LXJlcG8vZ2l0L3JlZnMvcHJzLW9wZW4vMjMnLCB7fQorICAg
ICkKKyAgICByZWZfdXBkYXRlX3RydXN0ZWQgPSAoCisgICAgICAgICdQQVRDSCcsICcvcmVwb3Mv
dGVzdC1vcmcvdGVzdC1yZXBvL2dpdC9yZWZzL3Bycy10cnVzdGVkLWZvci1wcmV2aWV3LzIzJywg
e30KKyAgICApCisgICAgZGVwbG95bWVudF9nZXQgPSAoJ0dFVCcsICcvcmVwb3MvdGVzdC1vcmcv
dGVzdC1yZXBvL2RlcGxveW1lbnRzJywge30pCisgICAgZGVwbG95bWVudF9jcmVhdGUgPSAoJ1BP
U1QnLCAnL3JlcG9zL3Rlc3Qtb3JnL3Rlc3QtcmVwby9kZXBsb3ltZW50cycsIHt9KQorICAgIGRl
cGxveW1lbnRfc3RhdHVzX2NyZWF0ZV9wZW5kaW5nID0gKAorICAgICAgICAnUE9TVCcsCisgICAg
ICAgICcvcmVwb3MvdGVzdC1vcmcvdGVzdC1yZXBvL2RlcGxveW1lbnRzLzI0NjAxL3N0YXR1c2Vz
JywKKyAgICAgICAgeydzdGF0ZSc6J3BlbmRpbmcnfQorICAgICkKKyAgICBkZXBsb3ltZW50X3N0
YXR1c19jcmVhdGVfZXJyb3IgPSAoCisgICAgICAgICdQT1NUJywKKyAgICAgICAgJy9yZXBvcy90
ZXN0LW9yZy90ZXN0LXJlcG8vZGVwbG95bWVudHMvMjQ2MDEvc3RhdHVzZXMnLAorICAgICAgICB7
J3N0YXRlJzonZXJyb3InfQorICAgICkKKyAgICBkZXBsb3ltZW50X3N0YXR1c19jcmVhdGVfc3Vj
Y2VzcyA9ICgKKyAgICAgICAgJ1BPU1QnLAorICAgICAgICAnL3JlcG9zL3Rlc3Qtb3JnL3Rlc3Qt
cmVwby9kZXBsb3ltZW50cy8yNDYwMS9zdGF0dXNlcycsCisgICAgICAgIHsnc3RhdGUnOidzdWNj
ZXNzJ30KKyAgICApCisgICAgcHJldmlldyA9ICgnR0VUJywgJy8uZ2l0L3dvcmt0cmVlcy80NS9I
RUFEJywge30pCisKKworY2xhc3MgUmVzcG9uc2VzKG9iamVjdCk6CisgICAgbm9fbGltaXQgPSAo
MjAwLCB7CisgICAgICAgICdyZXNvdXJjZXMnOiB7CisgICAgICAgICAgICAnc2VhcmNoJzogewor
ICAgICAgICAgICAgICAgICdyZW1haW5pbmcnOiAxMDAsCisgICAgICAgICAgICAgICAgJ2xpbWl0
JzogMTAwCisgICAgICAgICAgICB9LAorICAgICAgICAgICAgJ2NvcmUnOiB7CisgICAgICAgICAg
ICAgICAgJ3JlbWFpbmluZyc6IDEwMCwKKyAgICAgICAgICAgICAgICAnbGltaXQnOiAxMDAKKyAg
ICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0pCisKKworQGNvbnRleHRsaWIuY29udGV4dG1h
bmFnZXIKK2RlZiB0ZW1wX3JlcG8oKToKKyAgICBkaXJlY3RvcnkgPSB0ZW1wZmlsZS5ta2R0ZW1w
KCkKKworICAgIHRyeToKKyAgICAgICAgc3VicHJvY2Vzcy5jaGVja19jYWxsKFsnZ2l0JywgJ2lu
aXQnXSwgY3dkPWRpcmVjdG9yeSkKKyAgICAgICAgc3VicHJvY2Vzcy5jaGVja19jYWxsKAorICAg
ICAgICAgICAgWydnaXQnLCAnY29uZmlnJywgJ3VzZXIubmFtZScsICdleGFtcGxlJ10sCisgICAg
ICAgICAgICBjd2Q9ZGlyZWN0b3J5CisgICAgICAgICkKKyAgICAgICAgc3VicHJvY2Vzcy5jaGVj
a19jYWxsKAorICAgICAgICAgICAgWydnaXQnLCAnY29uZmlnJywgJ3VzZXIuZW1haWwnLCAnZXhh
bXBsZUBleGFtcGxlLmNvbSddLAorICAgICAgICAgICAgY3dkPWRpcmVjdG9yeQorICAgICAgICAp
CisgICAgICAgIHN1YnByb2Nlc3MuY2hlY2tfY2FsbCgKKyAgICAgICAgICAgIFsnZ2l0JywgJ2Nv
bW1pdCcsICctLWFsbG93LWVtcHR5JywgJy1tJywgJ2ZpcnN0J10sCisgICAgICAgICAgICBjd2Q9
ZGlyZWN0b3J5CisgICAgICAgICkKKworICAgICAgICB5aWVsZCBkaXJlY3RvcnkKKyAgICBmaW5h
bGx5OgorICAgICAgICBzaHV0aWwucm10cmVlKAorICAgICAgICAgICAgZGlyZWN0b3J5LCBpZ25v
cmVfZXJyb3JzPUZhbHNlLCBvbmVycm9yPWhhbmRsZV9yZW1vdmVfcmVhZG9ubHkKKyAgICAgICAg
KQorCitkZWYgc3luY2hyb25pemUoZXhwZWN0ZWRfdHJhZmZpYywgcmVmcz17fSk6CisgICAgZW52
ID0geworICAgICAgICAnREVQTE9ZX1RPS0VOJzogJ2MwZmZlZScKKyAgICB9CisgICAgZW52LnVw
ZGF0ZShvcy5lbnZpcm9uKQorICAgIHNlcnZlciA9IE1vY2tTZXJ2ZXIoKHRlc3RfaG9zdCwgMCks
IGV4cGVjdGVkX3RyYWZmaWMpCisgICAgdGVzdF9wb3J0ID0gc2VydmVyLnNlcnZlcl9hZGRyZXNz
WzFdCisgICAgcmVtb3RlX3JlZnMgPSB7fQorCisgICAgd2l0aCB0ZW1wX3JlcG8oKSBhcyBsb2Nh
bF9yZXBvLCB0ZW1wX3JlcG8oKSBhcyByZW1vdGVfcmVwbywgc2VydmVyOgorICAgICAgICBzdWJw
cm9jZXNzLmNoZWNrX2NhbGwoCisgICAgICAgICAgICBbJ2dpdCcsICdjb21taXQnLCAnLS1hbGxv
dy1lbXB0eScsICctbScsICdmaXJzdCddLAorICAgICAgICAgICAgY3dkPXJlbW90ZV9yZXBvCisg
ICAgICAgICkKKyAgICAgICAgc3VicHJvY2Vzcy5jaGVja19jYWxsKAorICAgICAgICAgICAgWydn
aXQnLCAnY29tbWl0JywgJy0tYWxsb3ctZW1wdHknLCAnLW0nLCAnc2Vjb25kJ10sCisgICAgICAg
ICAgICBjd2Q9cmVtb3RlX3JlcG8KKyAgICAgICAgKQorICAgICAgICBzdWJwcm9jZXNzLmNoZWNr
X2NhbGwoCisgICAgICAgICAgICBbJ2dpdCcsICdyZW1vdGUnLCAnYWRkJywgJ29yaWdpbicsIHJl
bW90ZV9yZXBvXSwgY3dkPWxvY2FsX3JlcG8KKyAgICAgICAgKQorCisgICAgICAgIGZvciBuYW1l
LCB2YWx1ZSBpbiByZWZzLml0ZW1zKCk6CisgICAgICAgICAgICBzdWJwcm9jZXNzLmNoZWNrX2Nh
bGwoCisgICAgICAgICAgICAgICAgWydnaXQnLCAndXBkYXRlLXJlZicsIG5hbWUsIHZhbHVlXSwK
KyAgICAgICAgICAgICAgICBjd2Q9cmVtb3RlX3JlcG8KKyAgICAgICAgICAgICkKKworICAgICAg
ICBjaGlsZCA9IHN1YnByb2Nlc3MuUG9wZW4oCisgICAgICAgICAgICBbCisgICAgICAgICAgICAg
ICAgJ3B5dGhvbicsCisgICAgICAgICAgICAgICAgc3ViamVjdCwKKyAgICAgICAgICAgICAgICAn
LS1ob3N0JywKKyAgICAgICAgICAgICAgICAnaHR0cDovL3t9Ont9Jy5mb3JtYXQodGVzdF9ob3N0
LCB0ZXN0X3BvcnQpLAorICAgICAgICAgICAgICAgICctLWdpdGh1Yi1wcm9qZWN0JywKKyAgICAg
ICAgICAgICAgICAndGVzdC1vcmcvdGVzdC1yZXBvJywKKyAgICAgICAgICAgICAgICAnc3luY2hy
b25pemUnLAorICAgICAgICAgICAgICAgICctLXdpbmRvdycsCisgICAgICAgICAgICAgICAgJzMw
MDAnCisgICAgICAgICAgICBdLAorICAgICAgICAgICAgY3dkPWxvY2FsX3JlcG8sCisgICAgICAg
ICAgICBlbnY9ZW52CisgICAgICAgICkKKworICAgICAgICBjaGlsZC5jb21tdW5pY2F0ZSgpCisg
ICAgICAgIGxpbmVzID0gc3VicHJvY2Vzcy5jaGVja19vdXRwdXQoCisgICAgICAgICAgICBbJ2dp
dCcsICdscy1yZW1vdGUnLCAnb3JpZ2luJ10sIGN3ZD1sb2NhbF9yZXBvCisgICAgICAgICkKKyAg
ICAgICAgZm9yIGxpbmUgaW4gbGluZXMuZGVjb2RlKCd1dGYtOCcpLnN0cmlwKCkuc3BsaXQoJ1xu
Jyk6CisgICAgICAgICAgICByZXZpc2lvbiwgcmVmID0gbGluZS5zcGxpdCgpCisKKyAgICAgICAg
ICAgIGlmIG5vdCByZWYgb3IgcmVmIGluICgnSEVBRCcsICdyZWZzL2hlYWRzL21hc3RlcicpOgor
ICAgICAgICAgICAgICAgIGNvbnRpbnVlCisKKyAgICAgICAgICAgIHJlbW90ZV9yZWZzW3JlZl0g
PSByZXZpc2lvbgorCisgICAgcmV0dXJuIGNoaWxkLnJldHVybmNvZGUsIHNlcnZlci5hY3R1YWxf
dHJhZmZpYywgcmVtb3RlX3JlZnMKKworCitkZWYgZGV0ZWN0KGV2ZW50LCBleHBlY3RlZF9naXRo
dWJfdHJhZmZpYywgZXhwZWN0ZWRfcHJldmlld190cmFmZmljKToKKyAgICBlbnYgPSB7CisgICAg
ICAgICdERVBMT1lfVE9LRU4nOiAnYzBmZmVlJworICAgIH0KKyAgICBlbnYudXBkYXRlKG9zLmVu
dmlyb24pCisgICAgZ2l0aHViX3NlcnZlciA9IE1vY2tTZXJ2ZXIoKHRlc3RfaG9zdCwgMCksIGV4
cGVjdGVkX2dpdGh1Yl90cmFmZmljKQorICAgIGdpdGh1Yl9wb3J0ID0gZ2l0aHViX3NlcnZlci5z
ZXJ2ZXJfYWRkcmVzc1sxXQorICAgIHByZXZpZXdfc2VydmVyID0gTW9ja1NlcnZlcigodGVzdF9o
b3N0LCAwKSwgZXhwZWN0ZWRfcHJldmlld190cmFmZmljKQorICAgIHByZXZpZXdfcG9ydCA9IHBy
ZXZpZXdfc2VydmVyLnNlcnZlcl9hZGRyZXNzWzFdCisKKyAgICB3aXRoIHRlbXBfcmVwbygpIGFz
IHJlcG8sIGdpdGh1Yl9zZXJ2ZXIsIHByZXZpZXdfc2VydmVyOgorICAgICAgICBlbnZbJ0dJVEhV
Ql9FVkVOVF9QQVRIJ10gPSByZXBvICsgJy9ldmVudC5qc29uJworCisgICAgICAgIHdpdGggb3Bl
bihlbnZbJ0dJVEhVQl9FVkVOVF9QQVRIJ10sICd3JykgYXMgaGFuZGxlOgorICAgICAgICAgICAg
aGFuZGxlLndyaXRlKGpzb24uZHVtcHMoZXZlbnQpKQorCisgICAgICAgIGNoaWxkID0gc3VicHJv
Y2Vzcy5Qb3BlbigKKyAgICAgICAgICAgIFsKKyAgICAgICAgICAgICAgICAncHl0aG9uJywKKyAg
ICAgICAgICAgICAgICBzdWJqZWN0LAorICAgICAgICAgICAgICAgICctLWhvc3QnLAorICAgICAg
ICAgICAgICAgICdodHRwOi8ve306e30nLmZvcm1hdCh0ZXN0X2hvc3QsIGdpdGh1Yl9wb3J0KSwK
KyAgICAgICAgICAgICAgICAnLS1naXRodWItcHJvamVjdCcsCisgICAgICAgICAgICAgICAgJ3Rl
c3Qtb3JnL3Rlc3QtcmVwbycsCisgICAgICAgICAgICAgICAgJ2RldGVjdCcsCisgICAgICAgICAg
ICAgICAgJy0tdGFyZ2V0JywKKyAgICAgICAgICAgICAgICAnaHR0cDovL3t9Ont9Jy5mb3JtYXQo
dGVzdF9ob3N0LCBwcmV2aWV3X3BvcnQpLAorICAgICAgICAgICAgICAgICctLXRpbWVvdXQnLAor
ICAgICAgICAgICAgICAgICcxJworICAgICAgICAgICAgXSwKKyAgICAgICAgICAgIGN3ZD1yZXBv
LAorICAgICAgICAgICAgZW52PWVudgorICAgICAgICApCisgICAgICAgIGNoaWxkLmNvbW11bmlj
YXRlKCkKKworICAgIHJldHVybiAoCisgICAgICAgIGNoaWxkLnJldHVybmNvZGUsCisgICAgICAg
IGdpdGh1Yl9zZXJ2ZXIuYWN0dWFsX3RyYWZmaWMsCisgICAgICAgIHByZXZpZXdfc2VydmVyLmFj
dHVhbF90cmFmZmljCisgICAgKQorCisKK2RlZiB0ZXN0X3N5bmNocm9uaXplX3plcm9fcmVzdWx0
cygpOgorICAgIGV4cGVjdGVkX3RyYWZmaWMgPSBbCisgICAgICAgIChSZXF1ZXN0cy5nZXRfcmF0
ZSwgUmVzcG9uc2VzLm5vX2xpbWl0KSwKKyAgICAgICAgKFJlcXVlc3RzLnNlYXJjaCwgKAorICAg
ICAgICAgICAgMjAwLAorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICdpdGVtcyc6IFtd
LAorICAgICAgICAgICAgICAgICdpbmNvbXBsZXRlX3Jlc3VsdHMnOiBGYWxzZQorICAgICAgICAg
ICAgfQorICAgICAgICApKQorICAgIF0KKworICAgIHJldHVybmNvZGUsIGFjdHVhbF90cmFmZmlj
LCByZW1vdGVfcmVmcyA9IHN5bmNocm9uaXplKGV4cGVjdGVkX3RyYWZmaWMpCisKKyAgICBhc3Nl
cnQgcmV0dXJuY29kZSA9PSAwCisgICAgYXNzZXJ0IHNhbWVfbWVtYmVycyhleHBlY3RlZF90cmFm
ZmljLCBhY3R1YWxfdHJhZmZpYykKKworZGVmIHRlc3Rfc3luY2hyb25pemVfZmFpbF9zZWFyY2hf
dGhyb3R0bGVkKCk6CisgICAgZXhwZWN0ZWRfdHJhZmZpYyA9IFsKKyAgICAgICAgKFJlcXVlc3Rz
LmdldF9yYXRlLCAoCisgICAgICAgICAgICAyMDAsCisgICAgICAgICAgICB7CisgICAgICAgICAg
ICAgICAgJ3Jlc291cmNlcyc6IHsKKyAgICAgICAgICAgICAgICAgICAgJ3NlYXJjaCc6IHsKKyAg
ICAgICAgICAgICAgICAgICAgICAgICdyZW1haW5pbmcnOiAxLAorICAgICAgICAgICAgICAgICAg
ICAgICAgJ2xpbWl0JzogMTAKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAg
IH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgKSkKKyAgICBdCisKKyAgICByZXR1cm5jb2RlLCBh
Y3R1YWxfdHJhZmZpYywgcmVtb3RlX3JlZnMgPSBzeW5jaHJvbml6ZShleHBlY3RlZF90cmFmZmlj
KQorCisgICAgYXNzZXJ0IHJldHVybmNvZGUgIT0gMAorICAgIGFzc2VydCBzYW1lX21lbWJlcnMo
ZXhwZWN0ZWRfdHJhZmZpYywgYWN0dWFsX3RyYWZmaWMpCisKK2RlZiB0ZXN0X3N5bmNocm9uaXpl
X2ZhaWxfaW5jb21wbGV0ZV9yZXN1bHRzKCk6CisgICAgZXhwZWN0ZWRfdHJhZmZpYyA9IFsKKyAg
ICAgICAgKFJlcXVlc3RzLmdldF9yYXRlLCBSZXNwb25zZXMubm9fbGltaXQpLAorICAgICAgICAo
UmVxdWVzdHMuc2VhcmNoLCAoCisgICAgICAgICAgICAyMDAsCisgICAgICAgICAgICB7CisgICAg
ICAgICAgICAgICAgJ2l0ZW1zJzogW10sCisgICAgICAgICAgICAgICAgJ2luY29tcGxldGVfcmVz
dWx0cyc6IFRydWUKKyAgICAgICAgICAgIH0KKyAgICAgICAgKSkKKyAgICBdCisKKyAgICByZXR1
cm5jb2RlLCBhY3R1YWxfdHJhZmZpYywgcmVtb3ZlX3JlZnMgPSBzeW5jaHJvbml6ZShleHBlY3Rl
ZF90cmFmZmljKQorCisgICAgYXNzZXJ0IHJldHVybmNvZGUgIT0gMAorICAgIGFzc2VydCBzYW1l
X21lbWJlcnMoZXhwZWN0ZWRfdHJhZmZpYywgYWN0dWFsX3RyYWZmaWMpCisKK2RlZiB0ZXN0X3N5
bmNocm9uaXplX2lnbm9yZV9jbG9zZWQoKToKKyAgICBleHBlY3RlZF90cmFmZmljID0gWworICAg
ICAgICAoUmVxdWVzdHMuZ2V0X3JhdGUsIFJlc3BvbnNlcy5ub19saW1pdCksCisgICAgICAgIChS
ZXF1ZXN0cy5zZWFyY2gsICgKKyAgICAgICAgICAgIDIwMCwKKyAgICAgICAgICAgIHsKKyAgICAg
ICAgICAgICAgICAnaXRlbXMnOiBbCisgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAg
ICAgICAgICAgICAgICdudW1iZXInOiAyMywKKyAgICAgICAgICAgICAgICAgICAgICAgICdsYWJl
bHMnOiBbXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICdjbG9zZWRfYXQnOiAnMjAxOS0xMC0y
OCcsCisgICAgICAgICAgICAgICAgICAgICAgICAndXNlcic6IHsnbG9naW4nOiAnZ3JhY2UnfSwK
KyAgICAgICAgICAgICAgICAgICAgICAgICdhdXRob3JfYXNzb2NpYXRpb24nOiAnQ09MTEFCT1JB
VE9SJworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgXSwKKyAgICAgICAg
ICAgICAgICAnaW5jb21wbGV0ZV9yZXN1bHRzJzogRmFsc2UKKyAgICAgICAgICAgIH0KKyAgICAg
ICAgKSkKKyAgICBdCisKKyAgICByZXR1cm5jb2RlLCBhY3R1YWxfdHJhZmZpYywgcmVtb3RlX3Jl
ZnMgPSBzeW5jaHJvbml6ZShleHBlY3RlZF90cmFmZmljKQorCisgICAgYXNzZXJ0IHJldHVybmNv
ZGUgPT0gMAorICAgIGFzc2VydCBzYW1lX21lbWJlcnMoZXhwZWN0ZWRfdHJhZmZpYywgYWN0dWFs
X3RyYWZmaWMpCisKK2RlZiB0ZXN0X3N5bmNocm9uaXplX3N5bmNfY29sbGFib3JhdG9yKCk6Cisg
ICAgZXhwZWN0ZWRfdHJhZmZpYyA9IFsKKyAgICAgICAgKFJlcXVlc3RzLmdldF9yYXRlLCBSZXNw
b25zZXMubm9fbGltaXQpLAorICAgICAgICAoUmVxdWVzdHMuZ2V0X3JhdGUsIFJlc3BvbnNlcy5u
b19saW1pdCksCisgICAgICAgIChSZXF1ZXN0cy5nZXRfcmF0ZSwgUmVzcG9uc2VzLm5vX2xpbWl0
KSwKKyAgICAgICAgKFJlcXVlc3RzLmdldF9yYXRlLCBSZXNwb25zZXMubm9fbGltaXQpLAorICAg
ICAgICAoUmVxdWVzdHMuZ2V0X3JhdGUsIFJlc3BvbnNlcy5ub19saW1pdCksCisgICAgICAgIChS
ZXF1ZXN0cy5zZWFyY2gsICgKKyAgICAgICAgICAgIDIwMCwKKyAgICAgICAgICAgIHsKKyAgICAg
ICAgICAgICAgICAnaXRlbXMnOiBbCisgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAg
ICAgICAgICAgICAgICdudW1iZXInOiAyMywKKyAgICAgICAgICAgICAgICAgICAgICAgICdsYWJl
bHMnOiBbXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICdjbG9zZWRfYXQnOiBOb25lLAorICAg
ICAgICAgICAgICAgICAgICAgICAgJ3VzZXInOiB7J2xvZ2luJzogJ2dyYWNlJ30sCisgICAgICAg
ICAgICAgICAgICAgICAgICAnYXV0aG9yX2Fzc29jaWF0aW9uJzogJ0NPTExBQk9SQVRPUicKKyAg
ICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIF0sCisgICAgICAgICAgICAgICAg
J2luY29tcGxldGVfcmVzdWx0cyc6IEZhbHNlCisgICAgICAgICAgICB9CisgICAgICAgICkpLAor
ICAgICAgICAoUmVxdWVzdHMucmVmX2NyZWF0ZV9vcGVuLCAoMjAwLCB7fSkpLAorICAgICAgICAo
UmVxdWVzdHMucmVmX2NyZWF0ZV90cnVzdGVkLCAoMjAwLCB7fSkpLAorICAgICAgICAoUmVxdWVz
dHMuZGVwbG95bWVudF9nZXQsICgyMDAsIHt9KSksCisgICAgICAgIChSZXF1ZXN0cy5kZXBsb3lt
ZW50X2NyZWF0ZSwgKDIwMCwge30pKQorICAgIF0KKworICAgIHJldHVybmNvZGUsIGFjdHVhbF90
cmFmZmljLCByZW1vdGVfcmVmcyA9IHN5bmNocm9uaXplKGV4cGVjdGVkX3RyYWZmaWMpCisKKyAg
ICBhc3NlcnQgcmV0dXJuY29kZSA9PSAwCisgICAgYXNzZXJ0IHNhbWVfbWVtYmVycyhleHBlY3Rl
ZF90cmFmZmljLCBhY3R1YWxfdHJhZmZpYykKKworZGVmIHRlc3Rfc3luY2hyb25pemVfaWdub3Jl
X2NvbGxhYm9yYXRvcl9ib3QoKToKKyAgICBleHBlY3RlZF90cmFmZmljID0gWworICAgICAgICAo
UmVxdWVzdHMuZ2V0X3JhdGUsIFJlc3BvbnNlcy5ub19saW1pdCksCisgICAgICAgIChSZXF1ZXN0
cy5zZWFyY2gsICgKKyAgICAgICAgICAgIDIwMCwKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAg
ICAgICAnaXRlbXMnOiBbCisgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAg
ICAgICAgICdudW1iZXInOiAyMywKKyAgICAgICAgICAgICAgICAgICAgICAgICdsYWJlbHMnOiBb
XSwKKyAgICAgICAgICAgICAgICAgICAgICAgICdjbG9zZWRfYXQnOiBOb25lLAorICAgICAgICAg
ICAgICAgICAgICAgICAgJ3VzZXInOiB7J2xvZ2luJzogJ2Nocm9taXVtLXdwdC1leHBvcnQtYm90
J30sCisgICAgICAgICAgICAgICAgICAgICAgICAnYXV0aG9yX2Fzc29jaWF0aW9uJzogJ0NPTExB
Qk9SQVRPUicKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIF0sCisgICAg
ICAgICAgICAgICAgJ2luY29tcGxldGVfcmVzdWx0cyc6IEZhbHNlCisgICAgICAgICAgICB9Cisg
ICAgICAgICkpCisgICAgXQorCisgICAgcmV0dXJuY29kZSwgYWN0dWFsX3RyYWZmaWMsIHJlbW90
ZV9yZWZzID0gc3luY2hyb25pemUoZXhwZWN0ZWRfdHJhZmZpYykKKworICAgIGFzc2VydCByZXR1
cm5jb2RlID09IDAKKyAgICBhc3NlcnQgc2FtZV9tZW1iZXJzKGV4cGVjdGVkX3RyYWZmaWMsIGFj
dHVhbF90cmFmZmljKQorCitkZWYgdGVzdF9zeW5jaHJvbml6ZV9pZ25vcmVfdW50cnVzdGVkX2Nv
bnRyaWJ1dG9yKCk6CisgICAgZXhwZWN0ZWRfdHJhZmZpYyA9IFsKKyAgICAgICAgKFJlcXVlc3Rz
LmdldF9yYXRlLCBSZXNwb25zZXMubm9fbGltaXQpLAorICAgICAgICAoUmVxdWVzdHMuc2VhcmNo
LCAoCisgICAgICAgICAgICAyMDAsCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgJ2l0
ZW1zJzogWworICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICAn
bnVtYmVyJzogMjMsCisgICAgICAgICAgICAgICAgICAgICAgICAnbGFiZWxzJzogW10sCisgICAg
ICAgICAgICAgICAgICAgICAgICAnY2xvc2VkX2F0JzogTm9uZSwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICd1c2VyJzogeydsb2dpbic6ICdncmFjZSd9LAorICAgICAgICAgICAgICAgICAgICAg
ICAgJ2F1dGhvcl9hc3NvY2lhdGlvbic6ICdDT05UUklCVVRPUicKKyAgICAgICAgICAgICAgICAg
ICAgfQorICAgICAgICAgICAgICAgIF0sCisgICAgICAgICAgICAgICAgJ2luY29tcGxldGVfcmVz
dWx0cyc6IEZhbHNlCisgICAgICAgICAgICB9CisgICAgICAgICkpCisgICAgXQorCisgICAgcmV0
dXJuY29kZSwgYWN0dWFsX3RyYWZmaWMsIHJlbW90ZV9yZWZzID0gc3luY2hyb25pemUoZXhwZWN0
ZWRfdHJhZmZpYykKKworICAgIGFzc2VydCByZXR1cm5jb2RlID09IDAKKyAgICBhc3NlcnQgc2Ft
ZV9tZW1iZXJzKGV4cGVjdGVkX3RyYWZmaWMsIGFjdHVhbF90cmFmZmljKQorCitkZWYgdGVzdF9z
eW5jaHJvbml6ZV9zeW5jX3RydXN0ZWRfY29udHJpYnV0b3IoKToKKyAgICBleHBlY3RlZF90cmFm
ZmljID0gWworICAgICAgICAoUmVxdWVzdHMuZ2V0X3JhdGUsIFJlc3BvbnNlcy5ub19saW1pdCks
CisgICAgICAgIChSZXF1ZXN0cy5nZXRfcmF0ZSwgUmVzcG9uc2VzLm5vX2xpbWl0KSwKKyAgICAg
ICAgKFJlcXVlc3RzLmdldF9yYXRlLCBSZXNwb25zZXMubm9fbGltaXQpLAorICAgICAgICAoUmVx
dWVzdHMuZ2V0X3JhdGUsIFJlc3BvbnNlcy5ub19saW1pdCksCisgICAgICAgIChSZXF1ZXN0cy5n
ZXRfcmF0ZSwgUmVzcG9uc2VzLm5vX2xpbWl0KSwKKyAgICAgICAgKFJlcXVlc3RzLnNlYXJjaCwg
KAorICAgICAgICAgICAgMjAwLAorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICdpdGVt
cyc6IFsKKyAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgJ251
bWJlcic6IDIzLAorICAgICAgICAgICAgICAgICAgICAgICAgJ2xhYmVscyc6IFt7J25hbWUnOiAn
c2FmZSBmb3IgcHJldmlldyd9XSwKKyAgICAgICAgICAgICAgICAgICAgICAgICdjbG9zZWRfYXQn
OiBOb25lLAorICAgICAgICAgICAgICAgICAgICAgICAgJ3VzZXInOiB7J2xvZ2luJzogJ0hleGNs
ZXMnfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICdhdXRob3JfYXNzb2NpYXRpb24nOiAnQ09O
VFJJQlVUT1InCisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBdLAorICAg
ICAgICAgICAgICAgICdpbmNvbXBsZXRlX3Jlc3VsdHMnOiBGYWxzZQorICAgICAgICAgICAgfQor
ICAgICAgICApKSwKKyAgICAgICAgKFJlcXVlc3RzLnJlZl9jcmVhdGVfb3BlbiwgKDIwMCwge30p
KSwKKyAgICAgICAgKFJlcXVlc3RzLnJlZl9jcmVhdGVfdHJ1c3RlZCwgKDIwMCwge30pKSwKKyAg
ICAgICAgKFJlcXVlc3RzLmRlcGxveW1lbnRfZ2V0LCAoMjAwLCBbXSkpLAorICAgICAgICAoUmVx
dWVzdHMuZGVwbG95bWVudF9jcmVhdGUsICgyMDAsIHt9KSkKKyAgICBdCisKKyAgICByZXR1cm5j
b2RlLCBhY3R1YWxfdHJhZmZpYywgcmVtb3RlX3JlZnMgPSBzeW5jaHJvbml6ZShleHBlY3RlZF90
cmFmZmljKQorCisgICAgYXNzZXJ0IHJldHVybmNvZGUgPT0gMAorICAgIGFzc2VydCBzYW1lX21l
bWJlcnMoZXhwZWN0ZWRfdHJhZmZpYywgYWN0dWFsX3RyYWZmaWMpCisKK2RlZiB0ZXN0X3N5bmNo
cm9uaXplX3VwZGF0ZV9jb2xsYWJvcmF0b3IoKToKKyAgICBleHBlY3RlZF90cmFmZmljID0gWwor
ICAgICAgICAoUmVxdWVzdHMuZ2V0X3JhdGUsIFJlc3BvbnNlcy5ub19saW1pdCksCisgICAgICAg
IChSZXF1ZXN0cy5nZXRfcmF0ZSwgUmVzcG9uc2VzLm5vX2xpbWl0KSwKKyAgICAgICAgKFJlcXVl
c3RzLmdldF9yYXRlLCBSZXNwb25zZXMubm9fbGltaXQpLAorICAgICAgICAoUmVxdWVzdHMuZ2V0
X3JhdGUsIFJlc3BvbnNlcy5ub19saW1pdCksCisgICAgICAgIChSZXF1ZXN0cy5nZXRfcmF0ZSwg
UmVzcG9uc2VzLm5vX2xpbWl0KSwKKyAgICAgICAgKFJlcXVlc3RzLnNlYXJjaCwgKDIwMCwKKyAg
ICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAnaXRlbXMnOiBbCisgICAgICAgICAgICAgICAg
ICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICdudW1iZXInOiAyMywKKyAgICAgICAgICAg
ICAgICAgICAgICAgICdsYWJlbHMnOiBbXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICdjbG9z
ZWRfYXQnOiBOb25lLAorICAgICAgICAgICAgICAgICAgICAgICAgJ3VzZXInOiB7J2xvZ2luJzog
J2dyYWNlJ30sCisgICAgICAgICAgICAgICAgICAgICAgICAnYXV0aG9yX2Fzc29jaWF0aW9uJzog
J0NPTExBQk9SQVRPUicKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIF0s
CisgICAgICAgICAgICAgICAgJ2luY29tcGxldGVfcmVzdWx0cyc6IEZhbHNlCisgICAgICAgICAg
ICB9CisgICAgICAgICkpLAorICAgICAgICAoUmVxdWVzdHMuZGVwbG95bWVudF9nZXQsICgyMDAs
IFtdKSksCisgICAgICAgIChSZXF1ZXN0cy5yZWZfdXBkYXRlX29wZW4sICgyMDAsIHt9KSksCisg
ICAgICAgIChSZXF1ZXN0cy5yZWZfdXBkYXRlX3RydXN0ZWQsICgyMDAsIHt9KSksCisgICAgICAg
IChSZXF1ZXN0cy5kZXBsb3ltZW50X2NyZWF0ZSwgKDIwMCwge30pKQorICAgIF0KKyAgICByZWZz
ID0geworICAgICAgICAncmVmcy9wdWxsLzIzL2hlYWQnOiAnSEVBRCcsCisgICAgICAgICdyZWZz
L3Bycy1vcGVuLzIzJzogJ0hFQUR+JywKKyAgICAgICAgJ3JlZnMvcHJzLXRydXN0ZWQtZm9yLXBy
ZXZpZXcvMjMnOiAnSEVBRH4nCisgICAgfQorCisgICAgcmV0dXJuY29kZSwgYWN0dWFsX3RyYWZm
aWMsIHJlbW90ZV9yZWZzID0gc3luY2hyb25pemUoZXhwZWN0ZWRfdHJhZmZpYywgcmVmcykKKwor
ICAgIGFzc2VydCByZXR1cm5jb2RlID09IDAKKyAgICBhc3NlcnQgc2FtZV9tZW1iZXJzKGV4cGVj
dGVkX3RyYWZmaWMsIGFjdHVhbF90cmFmZmljKQorCitkZWYgdGVzdF9zeW5jaHJvbml6ZV91cGRh
dGVfbWVtYmVyKCk6CisgICAgZXhwZWN0ZWRfdHJhZmZpYyA9IFsKKyAgICAgICAgKFJlcXVlc3Rz
LmdldF9yYXRlLCBSZXNwb25zZXMubm9fbGltaXQpLAorICAgICAgICAoUmVxdWVzdHMuZ2V0X3Jh
dGUsIFJlc3BvbnNlcy5ub19saW1pdCksCisgICAgICAgIChSZXF1ZXN0cy5nZXRfcmF0ZSwgUmVz
cG9uc2VzLm5vX2xpbWl0KSwKKyAgICAgICAgKFJlcXVlc3RzLmdldF9yYXRlLCBSZXNwb25zZXMu
bm9fbGltaXQpLAorICAgICAgICAoUmVxdWVzdHMuc2VhcmNoLCAoMjAwLAorICAgICAgICAgICAg
eworICAgICAgICAgICAgICAgICdpdGVtcyc6IFsKKyAgICAgICAgICAgICAgICAgICAgeworICAg
ICAgICAgICAgICAgICAgICAgICAgJ251bWJlcic6IDIzLAorICAgICAgICAgICAgICAgICAgICAg
ICAgJ2xhYmVscyc6IFtdLAorICAgICAgICAgICAgICAgICAgICAgICAgJ2Nsb3NlZF9hdCc6IE5v
bmUsCisgICAgICAgICAgICAgICAgICAgICAgICAndXNlcic6IHsnbG9naW4nOiAnZ3JhY2UnfSwK
KyAgICAgICAgICAgICAgICAgICAgICAgICdhdXRob3JfYXNzb2NpYXRpb24nOiAnTUVNQkVSJwor
ICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgXSwKKyAgICAgICAgICAgICAg
ICAnaW5jb21wbGV0ZV9yZXN1bHRzJzogRmFsc2UKKyAgICAgICAgICAgIH0KKyAgICAgICAgKSks
CisgICAgICAgIChSZXF1ZXN0cy5kZXBsb3ltZW50X2dldCwgKDIwMCwgW3snc29tZSc6ICdkZXBs
b3ltZW50J31dKSksCisgICAgICAgIChSZXF1ZXN0cy5yZWZfdXBkYXRlX29wZW4sICgyMDAsIHt9
KSksCisgICAgICAgIChSZXF1ZXN0cy5yZWZfdXBkYXRlX3RydXN0ZWQsICgyMDAsIHt9KSkKKyAg
ICBdCisgICAgcmVmcyA9IHsKKyAgICAgICAgJ3JlZnMvcHVsbC8yMy9oZWFkJzogJ0hFQUQnLAor
ICAgICAgICAncmVmcy9wcnMtb3Blbi8yMyc6ICdIRUFEficsCisgICAgICAgICdyZWZzL3Bycy10
cnVzdGVkLWZvci1wcmV2aWV3LzIzJzogJ0hFQUR+JworICAgIH0KKworICAgIHJldHVybmNvZGUs
IGFjdHVhbF90cmFmZmljLCByZW1vdGVfcmVmcyA9IHN5bmNocm9uaXplKGV4cGVjdGVkX3RyYWZm
aWMsIHJlZnMpCisKKyAgICBhc3NlcnQgcmV0dXJuY29kZSA9PSAwCisgICAgYXNzZXJ0IHNhbWVf
bWVtYmVycyhleHBlY3RlZF90cmFmZmljLCBhY3R1YWxfdHJhZmZpYykKKworZGVmIHRlc3Rfc3lu
Y2hyb25pemVfZGVsZXRlX2NvbGxhYm9yYXRvcigpOgorICAgIGV4cGVjdGVkX3RyYWZmaWMgPSBb
CisgICAgICAgIChSZXF1ZXN0cy5nZXRfcmF0ZSwgUmVzcG9uc2VzLm5vX2xpbWl0KSwKKyAgICAg
ICAgKFJlcXVlc3RzLnNlYXJjaCwgKDIwMCwKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAg
ICAnaXRlbXMnOiBbCisgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAg
ICAgICdudW1iZXInOiAyMywKKyAgICAgICAgICAgICAgICAgICAgICAgICdsYWJlbHMnOiBbXSwK
KyAgICAgICAgICAgICAgICAgICAgICAgICdjbG9zZWRfYXQnOiAnMjAxOS0xMC0zMCcsCisgICAg
ICAgICAgICAgICAgICAgICAgICAndXNlcic6IHsnbG9naW4nOiAnZ3JhY2UnfSwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICdhdXRob3JfYXNzb2NpYXRpb24nOiAnQ09MTEFCT1JBVE9SJworICAg
ICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgXSwKKyAgICAgICAgICAgICAgICAn
aW5jb21wbGV0ZV9yZXN1bHRzJzogRmFsc2UKKyAgICAgICAgICAgIH0KKyAgICAgICAgKSkKKyAg
ICBdCisgICAgcmVmcyA9IHsKKyAgICAgICAgJ3JlZnMvcHVsbC8yMy9oZWFkJzogJ0hFQUQnLAor
ICAgICAgICAncmVmcy9wcnMtb3Blbi8yMyc6ICdIRUFEficsCisgICAgICAgICdyZWZzL3Bycy10
cnVzdGVkLWZvci1wcmV2aWV3LzIzJzogJ0hFQUR+JworICAgIH0KKworICAgIHJldHVybmNvZGUs
IGFjdHVhbF90cmFmZmljLCByZW1vdGVfcmVmcyA9IHN5bmNocm9uaXplKGV4cGVjdGVkX3RyYWZm
aWMsIHJlZnMpCisKKyAgICBhc3NlcnQgcmV0dXJuY29kZSA9PSAwCisgICAgYXNzZXJ0IHNhbWVf
bWVtYmVycyhleHBlY3RlZF90cmFmZmljLCBhY3R1YWxfdHJhZmZpYykKKyAgICBhc3NlcnQgbGlz
dChyZW1vdGVfcmVmcykgPT0gWydyZWZzL3B1bGwvMjMvaGVhZCddCisKK2RlZiB0ZXN0X2RldGVj
dF9pZ25vcmVfdW5rbm93bl9lbnYoKToKKyAgICBleHBlY3RlZF9naXRodWJfdHJhZmZpYyA9IFtd
CisgICAgZXhwZWN0ZWRfcHJldmlld190cmFmZmljID0gW10KKyAgICBldmVudCA9IHsKKyAgICAg
ICAgJ2RlcGxveW1lbnQnOiB7CisgICAgICAgICAgICAnaWQnOiAyNDYwMSwKKyAgICAgICAgICAg
ICdlbnZpcm9ubWVudCc6ICdnaG9zdHMnLAorICAgICAgICAgICAgJ3NoYSc6ICczMjMyJworICAg
ICAgICB9CisgICAgfQorCisgICAgcmV0dXJuY29kZSwgYWN0dWFsX2dpdGh1Yl90cmFmZmljLCBh
Y3R1YWxfcHJldmlld190cmFmZmljID0gZGV0ZWN0KAorICAgICAgICBldmVudCwgZXhwZWN0ZWRf
Z2l0aHViX3RyYWZmaWMsIGV4cGVjdGVkX3ByZXZpZXdfdHJhZmZpYworICAgICkKKworICAgIGFz
c2VydCByZXR1cm5jb2RlID09IDAKKyAgICBhc3NlcnQgbGVuKGFjdHVhbF9naXRodWJfdHJhZmZp
YykgPT0gMAorICAgIGFzc2VydCBsZW4oYWN0dWFsX3ByZXZpZXdfdHJhZmZpYykgPT0gMAorCitk
ZWYgdGVzdF9kZXRlY3RfZmFpbF9zZWFyY2hfdGhyb3R0bGVkKCk6CisgICAgZXhwZWN0ZWRfZ2l0
aHViX3RyYWZmaWMgPSBbCisgICAgICAgIChSZXF1ZXN0cy5nZXRfcmF0ZSwgKAorICAgICAgICAg
ICAgMjAwLAorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICdyZXNvdXJjZXMnOiB7Cisg
ICAgICAgICAgICAgICAgICAgICdjb3JlJzogeworICAgICAgICAgICAgICAgICAgICAgICAgJ3Jl
bWFpbmluZyc6IDEsCisgICAgICAgICAgICAgICAgICAgICAgICAnbGltaXQnOiAxMAorICAgICAg
ICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAg
ICApKQorICAgIF0KKyAgICBleHBlY3RlZF9wcmV2aWV3X3RyYWZmaWMgPSBbXQorICAgIGV2ZW50
ID0geworICAgICAgICAnZGVwbG95bWVudCc6IHsKKyAgICAgICAgICAgICdpZCc6IDI0NjAxLAor
ICAgICAgICAgICAgJ2Vudmlyb25tZW50JzogJ3dwdC1wcmV2aWV3LTQ1JywKKyAgICAgICAgICAg
ICdzaGEnOiAnMzIzMicKKyAgICAgICAgfQorICAgIH0KKworICAgIHJldHVybmNvZGUsIGFjdHVh
bF9naXRodWJfdHJhZmZpYywgYWN0dWFsX3ByZXZpZXdfdHJhZmZpYyA9IGRldGVjdCgKKyAgICAg
ICAgZXZlbnQsIGV4cGVjdGVkX2dpdGh1Yl90cmFmZmljLCBleHBlY3RlZF9wcmV2aWV3X3RyYWZm
aWMKKyAgICApCisKKyAgICBhc3NlcnQgcmV0dXJuY29kZSA9PSAxCisgICAgYXNzZXJ0IGFjdHVh
bF9naXRodWJfdHJhZmZpYyA9PSBleHBlY3RlZF9naXRodWJfdHJhZmZpYworICAgIGFzc2VydCBh
Y3R1YWxfcHJldmlld190cmFmZmljID09IGV4cGVjdGVkX3ByZXZpZXdfdHJhZmZpYworCitkZWYg
dGVzdF9kZXRlY3Rfc3VjY2VzcygpOgorICAgIGV4cGVjdGVkX2dpdGh1Yl90cmFmZmljID0gWwor
ICAgICAgICAoUmVxdWVzdHMuZ2V0X3JhdGUsIFJlc3BvbnNlcy5ub19saW1pdCksCisgICAgICAg
IChSZXF1ZXN0cy5kZXBsb3ltZW50X3N0YXR1c19jcmVhdGVfcGVuZGluZywgKDIwMCwge30pKSwK
KyAgICAgICAgKFJlcXVlc3RzLmdldF9yYXRlLCBSZXNwb25zZXMubm9fbGltaXQpLAorICAgICAg
ICAoUmVxdWVzdHMuZGVwbG95bWVudF9zdGF0dXNfY3JlYXRlX3N1Y2Nlc3MsICgyMDAsIHt9KSkK
KyAgICBdCisgICAgZXhwZWN0ZWRfcHJldmlld190cmFmZmljID0gWworICAgICAgICAoUmVxdWVz
dHMucHJldmlldywgKDIwMCwgMzIzMikpCisgICAgXQorICAgIGV2ZW50ID0geworICAgICAgICAn
ZGVwbG95bWVudCc6IHsKKyAgICAgICAgICAgICdpZCc6IDI0NjAxLAorICAgICAgICAgICAgJ2Vu
dmlyb25tZW50JzogJ3dwdC1wcmV2aWV3LTQ1JywKKyAgICAgICAgICAgICdzaGEnOiAnMzIzMicK
KyAgICAgICAgfQorICAgIH0KKworICAgIHJldHVybmNvZGUsIGFjdHVhbF9naXRodWJfdHJhZmZp
YywgYWN0dWFsX3ByZXZpZXdfdHJhZmZpYyA9IGRldGVjdCgKKyAgICAgICAgZXZlbnQsIGV4cGVj
dGVkX2dpdGh1Yl90cmFmZmljLCBleHBlY3RlZF9wcmV2aWV3X3RyYWZmaWMKKyAgICApCisKKyAg
ICBhc3NlcnQgcmV0dXJuY29kZSA9PSAwCisgICAgYXNzZXJ0IGFjdHVhbF9naXRodWJfdHJhZmZp
YyA9PSBleHBlY3RlZF9naXRodWJfdHJhZmZpYworICAgIGFzc2VydCBhY3R1YWxfcHJldmlld190
cmFmZmljID09IGV4cGVjdGVkX3ByZXZpZXdfdHJhZmZpYworCitkZWYgdGVzdF9kZXRlY3RfdGlt
ZW91dF9taXNzaW5nKCk6CisgICAgZXhwZWN0ZWRfZ2l0aHViX3RyYWZmaWMgPSBbCisgICAgICAg
IChSZXF1ZXN0cy5nZXRfcmF0ZSwgUmVzcG9uc2VzLm5vX2xpbWl0KSwKKyAgICAgICAgKFJlcXVl
c3RzLmRlcGxveW1lbnRfc3RhdHVzX2NyZWF0ZV9wZW5kaW5nLCAoMjAwLCB7fSkpLAorICAgICAg
ICAoUmVxdWVzdHMuZ2V0X3JhdGUsIFJlc3BvbnNlcy5ub19saW1pdCksCisgICAgICAgIChSZXF1
ZXN0cy5kZXBsb3ltZW50X3N0YXR1c19jcmVhdGVfZXJyb3IsICgyMDAsIHt9KSkKKyAgICBdCisg
ICAgZXhwZWN0ZWRfcHJldmlld190cmFmZmljID0gWworICAgICAgICAoUmVxdWVzdHMucHJldmll
dywgKDQwNCwge30pKQorICAgIF0KKyAgICBldmVudCA9IHsKKyAgICAgICAgJ2RlcGxveW1lbnQn
OiB7CisgICAgICAgICAgICAnaWQnOiAyNDYwMSwKKyAgICAgICAgICAgICdlbnZpcm9ubWVudCc6
ICd3cHQtcHJldmlldy00NScsCisgICAgICAgICAgICAnc2hhJzogJzMyMzInCisgICAgICAgIH0K
KyAgICB9CisKKyAgICByZXR1cm5jb2RlLCBhY3R1YWxfZ2l0aHViX3RyYWZmaWMsIGFjdHVhbF9w
cmV2aWV3X3RyYWZmaWMgPSBkZXRlY3QoCisgICAgICAgIGV2ZW50LCBleHBlY3RlZF9naXRodWJf
dHJhZmZpYywgZXhwZWN0ZWRfcHJldmlld190cmFmZmljCisgICAgKQorCisgICAgYXNzZXJ0IHJl
dHVybmNvZGUgPT0gMQorICAgIGFzc2VydCBleHBlY3RlZF9naXRodWJfdHJhZmZpYyA9PSBhY3R1
YWxfZ2l0aHViX3RyYWZmaWMKKyAgICBwaW5nX2NvdW50ID0gbGVuKGFjdHVhbF9wcmV2aWV3X3Ry
YWZmaWMpCisgICAgYXNzZXJ0IHBpbmdfY291bnQgPiAwCisgICAgYXNzZXJ0IGFjdHVhbF9wcmV2
aWV3X3RyYWZmaWMgPT0gZXhwZWN0ZWRfcHJldmlld190cmFmZmljICogcGluZ19jb3VudAorCitk
ZWYgdGVzdF9kZXRlY3RfdGltZW91dF93cm9uZ19yZXZpc2lvbigpOgorICAgIGV4cGVjdGVkX2dp
dGh1Yl90cmFmZmljID0gWworICAgICAgICAoUmVxdWVzdHMuZ2V0X3JhdGUsIFJlc3BvbnNlcy5u
b19saW1pdCksCisgICAgICAgIChSZXF1ZXN0cy5kZXBsb3ltZW50X3N0YXR1c19jcmVhdGVfcGVu
ZGluZywgKDIwMCwge30pKSwKKyAgICAgICAgKFJlcXVlc3RzLmdldF9yYXRlLCBSZXNwb25zZXMu
bm9fbGltaXQpLAorICAgICAgICAoUmVxdWVzdHMuZGVwbG95bWVudF9zdGF0dXNfY3JlYXRlX2Vy
cm9yLCAoMjAwLCB7fSkpCisgICAgXQorICAgIGV4cGVjdGVkX3ByZXZpZXdfdHJhZmZpYyA9IFsK
KyAgICAgICAgKFJlcXVlc3RzLnByZXZpZXcsICgyMDAsIDEyMzQpKQorICAgIF0KKyAgICBldmVu
dCA9IHsKKyAgICAgICAgJ2RlcGxveW1lbnQnOiB7CisgICAgICAgICAgICAnaWQnOiAyNDYwMSwK
KyAgICAgICAgICAgICdlbnZpcm9ubWVudCc6ICd3cHQtcHJldmlldy00NScsCisgICAgICAgICAg
ICAnc2hhJzogJzMyMzInCisgICAgICAgIH0KKyAgICB9CisKKyAgICByZXR1cm5jb2RlLCBhY3R1
YWxfZ2l0aHViX3RyYWZmaWMsIGFjdHVhbF9wcmV2aWV3X3RyYWZmaWMgPSBkZXRlY3QoCisgICAg
ICAgIGV2ZW50LCBleHBlY3RlZF9naXRodWJfdHJhZmZpYywgZXhwZWN0ZWRfcHJldmlld190cmFm
ZmljCisgICAgKQorCisgICAgYXNzZXJ0IHJldHVybmNvZGUgPT0gMQorICAgIGFzc2VydCBleHBl
Y3RlZF9naXRodWJfdHJhZmZpYyA9PSBhY3R1YWxfZ2l0aHViX3RyYWZmaWMKKyAgICBwaW5nX2Nv
dW50ID0gbGVuKGFjdHVhbF9wcmV2aWV3X3RyYWZmaWMpCisgICAgYXNzZXJ0IHBpbmdfY291bnQg
PiAwCisgICAgYXNzZXJ0IGFjdHVhbF9wcmV2aWV3X3RyYWZmaWMgPT0gZXhwZWN0ZWRfcHJldmll
d190cmFmZmljICogcGluZ19jb3VudApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9jaS90ZXN0cy93M2MtaW1wb3J0LmxvZyBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvY2kvdGVzdHMv
dzNjLWltcG9ydC5sb2cKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDJlODBlYTFlNmRj
MWNjMjhjMWZhZTE3NWIwZGVjZTY0ZjYyOGExNzQuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy9jaS90ZXN0cy93M2MtaW1wb3J0LmxvZworKysgL2Rldi9udWxsCkBAIC0x
LDE3ICswLDAgQEAKLVRoZSB0ZXN0cyBpbiB0aGlzIGRpcmVjdG9yeSB3ZXJlIGltcG9ydGVkIGZy
b20gdGhlIFczQyByZXBvc2l0b3J5LgotRG8gTk9UIG1vZGlmeSB0aGVzZSB0ZXN0cyBkaXJlY3Rs
eSBpbiBXZWJLaXQuCi1JbnN0ZWFkLCBjcmVhdGUgYSBwdWxsIHJlcXVlc3Qgb24gdGhlIFdQVCBn
aXRodWI6Ci0JaHR0cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQKLQotVGhl
biBydW4gdGhlIFRvb2xzL1NjcmlwdHMvaW1wb3J0LXczYy10ZXN0cyBpbiBXZWJLaXQgdG8gcmVp
bXBvcnQKLQotRG8gTk9UIG1vZGlmeSBvciByZW1vdmUgdGhpcyBmaWxlLgotCi0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0KLVByb3BlcnRpZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLVByb3Bl
cnR5IHZhbHVlcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tCi1MaXN0IG9mIGZpbGVzOgotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvY2kvdGVzdHMvdGVzdF9qb2JzLnB5CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2NpL3czYy1pbXBvcnQu
bG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9j
aS93M2MtaW1wb3J0LmxvZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNTQzMTk1MDMz
N2NjZjJiODY1OGU5NmE0MWEzNGNkNmEwZTcyNGQwYy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL2NpL3czYy1pbXBvcnQubG9nCisrKyAvZGV2L251bGwKQEAgLTEsMzUg
KzAsMCBAQAotVGhlIHRlc3RzIGluIHRoaXMgZGlyZWN0b3J5IHdlcmUgaW1wb3J0ZWQgZnJvbSB0
aGUgVzNDIHJlcG9zaXRvcnkuCi1EbyBOT1QgbW9kaWZ5IHRoZXNlIHRlc3RzIGRpcmVjdGx5IGlu
IFdlYktpdC4KLUluc3RlYWQsIGNyZWF0ZSBhIHB1bGwgcmVxdWVzdCBvbiB0aGUgV1BUIGdpdGh1
YjoKLQlodHRwczovL2dpdGh1Yi5jb20vd2ViLXBsYXRmb3JtLXRlc3RzL3dwdAotCi1UaGVuIHJ1
biB0aGUgVG9vbHMvU2NyaXB0cy9pbXBvcnQtdzNjLXRlc3RzIGluIFdlYktpdCB0byByZWltcG9y
dAotCi1EbyBOT1QgbW9kaWZ5IG9yIHJlbW92ZSB0aGlzIGZpbGUuCi0KLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LQotUHJvcGVydGllcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotUHJvcGVydHkg
dmFsdWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K
LUxpc3Qgb2YgZmlsZXM6Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy9jaS9fX2luaXRfXy5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvY2kvYmVmb3JlX2luc3RhbGwuc2gKLS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2NpL2NoZWNrX3N0YWJpbGl0eS5w
eQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvY2kv
Y2lfYnVpbHRfZGlmZi5zaAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvY2kvY2lfbGludC5zaAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvY2kvY2lfbWFuaWZlc3Quc2gKLS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2NpL2NpX3Jlc291cmNlc191bml0dGVz
dC5zaAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
Y2kvY2lfc3RhYmlsaXR5LnNoCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy9jaS9jaV90YXNrY2x1c3Rlci5zaAotL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvY2kvY2lfdG9vbHNfdW5pdHRlc3Quc2gKLS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2NpL2NpX3dw
dC5zaAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
Y2kvY2lfd3B0cnVubmVyX2luZnJhc3RydWN0dXJlLnNoCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9jaS9jb21tYW5kcy5qc29uCi0vTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9jaS9pbnN0YWxsLnNoCi0v
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9jaS9qb2Jz
LnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9j
aS9saWIuc2gKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL2NpL21ha2VfaG9zdHNfZmlsZS5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvY2kvcnVuLnNoCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9jaS90YWdfbWFzdGVyLnB5CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2NpL3dlYnNp
dGVfYnVpbGQuc2ggYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL2NpL3dlYnNpdGVfYnVpbGQuc2gKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjZiMjYzMTBhYWJjZTIwMGZj
MGQ3Nzg0NGY1ZjNhZDI4ZGUwYmI3ZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvY2kvd2Vic2l0ZV9idWlsZC5zaApA
QCAtMCwwICsxLDgxIEBACisjIS9iaW4vYmFzaAorCitzZXQgLWV4CisKK25ldXRyYWxfc3RhdHVz
PTAKK3NvdXJjZV9yZXZpc2lvbj0kKGdpdCByZXYtcGFyc2UgSEVBRCkKKyMgVGhlIHRva2VuIGF2
YWlsYWJsZSBpbiB0aGUgYEdJVEhVQl9UT0tFTmAgdmFyaWFibGUgbWF5IGJlIHVzZWQgdG8gcHVz
aCB0byB0aGUKKyMgcmVwb3NpdG9yeSwgYnV0IEdpdEh1YiBQYWdlcyB3aWxsIG5vdCByZWJ1aWxk
IHRoZSB3ZWJzaXRlIGluIHJlc3BvbnNlIHRvIHN1Y2gKKyMgZXZlbnRzLiBVc2UgYW4gYWNjZXNz
IHRva2VuIGdlbmVyYXRlZCBmb3IgdGhlIHByb2plY3QncyBtYWNoaW5lIHVzZXIsCisjIHdwdC1w
ci1ib3QuCisjCisjIGh0dHBzOi8vaGVscC5naXRodWIuY29tL2VuL2FydGljbGVzL2dlbmVyaWMt
amVreWxsLWJ1aWxkLWZhaWx1cmVzCityZW1vdGVfdXJsPWh0dHBzOi8vJHtERVBMT1lfVE9LRU59
QGdpdGh1Yi5jb20vd2ViLXBsYXRmb3JtLXRlc3RzL3dwdC5naXQKKworZnVuY3Rpb24ganNvbl9w
cm9wZXJ0eSB7CisgIGNhdCAkezF9IHwgXAorICAgIHB5dGhvbiAtYyAiaW1wb3J0IGpzb24sIHN5
czsgcHJpbnQganNvbi5sb2FkKHN5cy5zdGRpbikuZ2V0KFwiJHsyfVwiLCBcIlwiKSIKK30KKwor
ZnVuY3Rpb24gaXNfcHVsbF9yZXF1ZXN0IHsKKyAgdGVzdCAtbiAiJChqc29uX3Byb3BlcnR5ICR7
R0lUSFVCX0VWRU5UX1BBVEh9IHB1bGxfcmVxdWVzdCkiCit9CisKK2Z1bmN0aW9uIHRhcmdldHNf
bWFzdGVyIHsKKyAgdGVzdCAkKGpzb25fcHJvcGVydHkgJHtHSVRIVUJfRVZFTlRfUEFUSH0gcmVm
KSA9PSAncmVmcy9oZWFkcy9tYXN0ZXInCit9CisKK2dpdCBjb25maWcgLS1nbG9iYWwgdXNlci5l
bWFpbCAid3B0LXByLWJvdEB1c2Vycy5ub3JlcGx5LmdpdGh1Yi5jb20iCitnaXQgY29uZmlnIC0t
Z2xvYmFsIHVzZXIubmFtZSAid3B0LXByLWJvdCIKKworIyBQcmVwYXJlIHRoZSBvdXRwdXQgZGly
ZWN0b3J5IHNvIHRoYXQgdGhlIG5ldyBidWlsZCBjYW4gYmUgcHVzaGVkIHRvIHRoZQorIyByZXBv
c2l0b3J5IGFzIGFuIGluY3JlbWVudGFsIGNoYW5nZSB0byB0aGUgcHJpb3IgYnVpbGQuCitta2Rp
ciAtcCBkb2NzL19idWlsZC9odG1sCitjZCBkb2NzL19idWlsZC9odG1sCitnaXQgaW5pdAorZ2l0
IGZldGNoIC0tZGVwdGggMSAke3JlbW90ZV91cmx9IGdoLXBhZ2VzCitnaXQgY2hlY2tvdXQgRkVU
Q0hfSEVBRAorZ2l0IHJtIC1yZiAuCisKKyMgQnVpbGQgdGhlIHdlYnNpdGUKK2NkIC4uLy4uCitw
aXAgaW5zdGFsbCAtciByZXF1aXJlbWVudHMudHh0CittYWtlIGh0bWwKKworY2QgX2J1aWxkL2h0
bWwKKyMgQ29uZmlndXJlIEROUworZWNobyB3ZWItcGxhdGZvcm0tdGVzdHMub3JnID4gQ05BTUUK
KyMgRGlzYWJsZSBKZWt5bGwKKyMgaHR0cHM6Ly9naXRodWIuYmxvZy8yMDA5LTEyLTI5LWJ5cGFz
c2luZy1qZWt5bGwtb24tZ2l0aHViLXBhZ2VzLwordG91Y2ggLm5vamVreWxsCisKKyMgUHVibGlz
aCB0aGUgd2Vic2l0ZSBieSBwdXNoaW5nIHRoZSBidWlsdCBjb250ZW50cyB0byB0aGUgYGdoLXBh
Z2VzYCBicmFuY2gKK2dpdCBhZGQgLgorCitlY2hvIFRoaXMgc3VibWlzc2lvbiBhbHRlcnMgdGhl
IGNvbXBpbGVkIGZpbGVzIGFzIGZvbGxvd3MKKworZ2l0IGRpZmYgLS1zdGFnZWQKKworaWYgaXNf
cHVsbF9yZXF1ZXN0IDsgdGhlbgorICBlY2hvIFN1Ym1pc3Npb24gY29tZXMgZnJvbSBhIHB1bGwg
cmVxdWVzdC4gRXhpdGluZyB3aXRob3V0IHB1Ymxpc2hpbmcuCisKKyAgZXhpdCAke25ldXRyYWxf
c3RhdHVzfQorZmkKKworaWYgISB0YXJnZXRzX21hc3RlciA7IHRoZW4KKyAgZWNobyBTdWJtaXNz
aW9uIGRvZXMgbm90IHRhcmdldCB0aGUgJ21hc3RlcicgYnJhbmNoLiBFeGl0aW5nIHdpdGhvdXQg
cHVibGlzaGluZy4KKworICBleGl0ICR7bmV1dHJhbF9zdGF0dXN9CitmaQorCitpZiBnaXQgZGlm
ZiAtLWV4aXQtY29kZSAtLXF1aWV0IC0tc3RhZ2VkIDsgdGhlbgorICBlY2hvIE5vIGNoYW5nZSB0
byB0aGUgd2Vic2l0ZSBjb250ZW50cy4gRXhpdGluZyB3aXRob3V0IHB1Ymxpc2hpbmcuCisKKyAg
ZXhpdCAke25ldXRyYWxfc3RhdHVzfQorZmkKKworZ2l0IGNvbW1pdCAtLW1lc3NhZ2UgIkJ1aWxk
IGRvY3VtZW50YXRpb24KKworVGhlc2UgZmlsZXMgd2VyZSBnZW5lcmF0ZWQgZnJvbSBjb21taXQg
JHtzb3VyY2VfcmV2aXNpb259IgorCitnaXQgcHVzaCAtLWZvcmNlICR7cmVtb3RlX3VybH0gSEVB
RDpnaC1wYWdlcwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy9jb25mdGVzdC5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvY29uZnRlc3QucHkKaW5kZXggODk0ZmU2MjIzZWE1M2E3
NzA2N2Q3NTU2ZGJhNmE1MzBhZmJlYTk5NC4uMDIxYTQ5ZmMyOTczMDNiNmU0MTc4YzQyNzQyMmQ5
MTgxM2RiYjc2MiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy9jb25mdGVzdC5weQorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2NvbmZ0ZXN0LnB5CkBAIC02LDggKzYsMTAgQEAg
ZnJvbSBoeXBvdGhlc2lzIGltcG9ydCBzZXR0aW5ncywgSGVhbHRoQ2hlY2sKIGltcGwgPSBwbGF0
Zm9ybS5weXRob25faW1wbGVtZW50YXRpb24oKQogCiBzZXR0aW5ncy5yZWdpc3Rlcl9wcm9maWxl
KCJjaSIsIHNldHRpbmdzKG1heF9leGFtcGxlcz0xMDAwLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBkZWFkbGluZT1Ob25lLAogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBzdXBwcmVzc19oZWFsdGhfY2hlY2s9W0hlYWx0aENoZWNrLnRv
b19zbG93XSkpCi1zZXR0aW5ncy5yZWdpc3Rlcl9wcm9maWxlKCJweXB5Iiwgc2V0dGluZ3Moc3Vw
cHJlc3NfaGVhbHRoX2NoZWNrPVtIZWFsdGhDaGVjay50b29fc2xvd10pKQorc2V0dGluZ3MucmVn
aXN0ZXJfcHJvZmlsZSgicHlweSIsIHNldHRpbmdzKGRlYWRsaW5lPU5vbmUsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3VwcHJlc3NfaGVhbHRoX2NoZWNrPVtI
ZWFsdGhDaGVjay50b29fc2xvd10pKQogCiBzZXR0aW5ncy5sb2FkX3Byb2ZpbGUob3MuZ2V0ZW52
KCJIWVBPVEhFU0lTX1BST0ZJTEUiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAi
ZGVmYXVsdCIgaWYgaW1wbCAhPSAiUHlQeSIgZWxzZSAicHlweSIpKQpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9kb2NrZXIvLmJh
c2hyYyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
ZG9ja2VyLy5iYXNocmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYmJlMDNjNDg5YWE1MjgzNjAwYzQ2MGUxMmFmNGI2
Mzg2OTIzMTFmZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvZG9ja2VyLy5iYXNocmMKQEAgLTAsMCArMSw0IEBACitm
dW5jdGlvbiB4dmZiX3N0YXJ0KCkgeworICAgIEdFT01FVFJZPSIkU0NSRUVOX1dJRFRIIiJ4IiIk
U0NSRUVOX0hFSUdIVCIieCIiJFNDUkVFTl9ERVBUSCIKKyAgICB4dmZiLXJ1biAtLXNlcnZlci1h
cmdzPSItc2NyZWVuIDAgJEdFT01FVFJZIC1hYyArZXh0ZW5zaW9uIFJBTkRSIiAkQAorfQpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy9kb2NrZXIvRG9ja2VyZmlsZSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvZG9ja2VyL0RvY2tlcmZpbGUKaW5kZXggYjA1NDFkYzZjOTgzMzdlNTdm
ODY2YWQ4NGI3YTM1MDVjOGRkZDE0MC4uM2Q0MTgzNGNmYjQxNDMwYjRhOWFhMDVmYThjNmQ2YjZm
MjAxMGI1MSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy9kb2NrZXIvRG9ja2VyZmlsZQorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2RvY2tlci9Eb2NrZXJmaWxlCkBAIC0xLDQg
KzEsNCBAQAotRlJPTSB1YnVudHU6MTYuMDQKK0ZST00gdWJ1bnR1OjE4LjA0CiAKICMgTm8gaW50
ZXJhY3RpdmUgZnJvbnRlbmQgZHVyaW5nIGRvY2tlciBidWlsZAogRU5WIERFQklBTl9GUk9OVEVO
RD1ub25pbnRlcmFjdGl2ZSBcCkBAIC03LDE1ICs3LDIyIEBAIEVOViBERUJJQU5fRlJPTlRFTkQ9
bm9uaW50ZXJhY3RpdmUgXAogIyBHZW5lcmFsIHJlcXVpcmVtZW50cyBub3QgaW4gdGhlIGJhc2Ug
aW1hZ2UKIFJVTiBhcHQtZ2V0IC1xcXkgdXBkYXRlIFwKICAgJiYgYXB0LWdldCAtcXF5IGluc3Rh
bGwgXAorICAgIGJyaWRnZS11dGlscyBcCiAgICAgYnppcDIgXAogICAgIGNhLWNlcnRpZmljYXRl
cyBcCiAgICAgZGJ1cy14MTEgXAorICAgIGVhcmx5b29tIFwKKyAgICBmbHV4Ym94IFwKICAgICBn
ZGViaSBcCiAgICAgZ2l0IFwKKyAgICBsaWJ2aXJ0LWRhZW1vbi1zeXN0ZW0gXAorICAgIGxpYnZp
cnQtY2xpZW50cyBcCiAgICAgbG9jYWxlcyBcCisgICAgb3Blbmpkay04LWpyZS1oZWFkbGVzcyBc
CiAgICAgcHVsc2VhdWRpbyBcCiAgICAgcHl0aG9uIFwKICAgICBweXRob24tcGlwIFwKKyAgICBx
ZW11LWt2bSBcCiAgICAgdHpkYXRhIFwKICAgICBzdWRvIFwKICAgICB1bnppcCBcCkBAIC0zNyw2
ICs0NCw4IEBAIFJVTiBhcHQtZ2V0IC1xcXkgaW5zdGFsbCBcCiAgICAgbGliaW5kaWNhdG9yMy03
IFwKICAgICBsaWJpbmRpY2F0b3I3CiAKK1JVTiBhcHQtZ2V0IC15IGF1dG9yZW1vdmUKKwogUlVO
IHBpcCBpbnN0YWxsIC0tdXBncmFkZSBwaXAKIFJVTiBwaXAgaW5zdGFsbCB2aXJ0dWFsZW52CiAK
QEAgLTQ0LDEwICs1MywxOCBAQCBFTlYgVFogIlVUQyIKIFJVTiBlY2hvICIke1RafSIgPiAvZXRj
L3RpbWV6b25lIFwKICAgJiYgZHBrZy1yZWNvbmZpZ3VyZSAtLWZyb250ZW5kIG5vbmludGVyYWN0
aXZlIHR6ZGF0YQogCisjIFNldCB0aGUgbG9jYWxlCitSVU4gbG9jYWxlLWdlbiBlbl9VUy5VVEYt
OAorRU5WIExBTkcgZW5fVVMuVVRGLTgKK0VOViBMQU5HVUFHRSBlbl9VUzplbgorRU5WIExDX0FM
TCBlbl9VUy5VVEYtOAorCiBSVU4gdXNlcmFkZCB0ZXN0IFwKICAgICAgICAgIC0tc2hlbGwgL2Jp
bi9iYXNoICBcCiAgICAgICAgICAtLWNyZWF0ZS1ob21lIFwKICAgJiYgdXNlcm1vZCAtYSAtRyBz
dWRvIHRlc3QgXAorICAmJiB1c2VybW9kIC1hIC1HIGxpYnZpcnQgdGVzdCBcCisgICYmIHVzZXJt
b2QgLWEgLUcgbGlidmlydC1xZW11IHRlc3QgXAogICAmJiBlY2hvICdBTEwgQUxMID0gKEFMTCkg
Tk9QQVNTV0Q6IEFMTCcgPj4gL2V0Yy9zdWRvZXJzIFwKICAgJiYgZWNobyAndGVzdDpzZWNyZXQn
IHwgY2hwYXNzd2QKIApAQCAtNjQsOSArODEsMTMgQEAgV09SS0RJUiAvaG9tZS90ZXN0CiBSVU4g
c3VkbyBlY2hvICIiCiAKIFJVTiBta2RpciAtcCAvaG9tZS90ZXN0L2FydGlmYWN0cworUlVOIG1r
ZGlyIC1wIC9ob21lL3Rlc3QvYmluCisKK0VOViBQQVRIPSIvaG9tZS90ZXN0L2JpbjovaG9tZS90
ZXN0Ly5sb2NhbC9iaW46JHtQQVRIfSIKIAogV09SS0RJUiAvaG9tZS90ZXN0LwogCiBDT1BZIC5i
YXNocmMgL2hvbWUvdGVzdC8uYmFzaHJjCiAKIENPUFkgc3RhcnQuc2ggL2hvbWUvdGVzdC9zdGFy
dC5zaAorQ09QWSByZXRyeS5weSAvaG9tZS90ZXN0L2Jpbi9yZXRyeQpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9kb2NrZXIvUkVB
RE1FLm1kIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy9kb2NrZXIvUkVBRE1FLm1kCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQ1MDk4MWY2ODZiZmFjZTJkOTI0M2U1NjI4
MDQwYmI2YjJmNmM0ZTAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2RvY2tlci9SRUFETUUubWQKQEAgLTAsMCArMSwx
MCBAQAorVGhpcyBkb2NrZXIgaW1hZ2VzIGlzIHVzZWQgZm9yIHRlc3RpbmcgQ2hyb21lLCBGaXJl
Zm94LCBXZWJLaXRHVEsgYW5kIHJ1bm5pbmcKK290aGVyIHRhc2tzIG9uIFRhc2tjbHVzdGVyLiBX
aGVuIGFueSBvZiB0aGUgZmlsZXMgaW4gdGhpcyBkaXJlY3RvcnkgY2hhbmdlLCB0aGUKK2ltYWdl
cyBtdXN0IGJlIHVwZGF0ZWQgYXMgd2VsbC4gVG8gZG8gdGhpcywgYXNzdW1pbmcgeW91IGhhdmUg
ZG9ja2VyIGluc3RhbGxlZDoKKworSW4gdGhpcyBkaXJlY3RvcnksIHJ1bgorYGBgc2gKK2RvY2tl
ciBidWlsZCAtdCA8dGFnPiAuCitkb2NrZXIgcHVzaCA8dGFnPgorYGBgCisKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvZG9ja2Vy
L19faW5pdF9fLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy9kb2NrZXIvX19pbml0X18ucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTY5ZGUyOWJiMmQxZDY0MzRi
OGIyOWFlNzc1YWQ4YzJlNDhjNTM5MQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9kb2NrZXIvY29tbWFuZHMuanNvbiBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvZG9ja2VyL2NvbW1h
bmRzLmpzb24KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uMTUxODJjYzllNjUzMWQ1YTViYTNkNDJjOWYwMDgyMTk0NmM1
ZThhMwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvZG9ja2VyL2NvbW1hbmRzLmpzb24KQEAgLTAsMCArMSw2IEBACit7
CisgICAgImRvY2tlci1ydW4iOiB7InBhdGgiOiAiZnJvbnRlbmQucHkiLCAic2NyaXB0IjogInJ1
biIsICJwYXJzZXIiOiAicGFyc2VyX3J1biIsICJoZWxwIjogIlJ1biB3cHQgZG9ja2VyIGltYWdl
IiwKKyAgICAgICAgICAgICAgICAgICAidmlydHVhbGVudiI6IGZhbHNlfSwKKyAgICAiZG9ja2Vy
LWJ1aWxkIjogeyJwYXRoIjogImZyb250ZW5kLnB5IiwgInNjcmlwdCI6ICJidWlsZCIsICJoZWxw
IjogIkJ1aWxkIHdwdCBkb2NrZXIgaW1hZ2UiLAorICAgICAgICAgICAgICAgICAgICAgInZpcnR1
YWxlbnYiOiBmYWxzZX0KK30KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvZG9ja2VyL2RvY3VtZW50YXRpb24vRG9ja2VyZmlsZSBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvZG9ja2Vy
L2RvY3VtZW50YXRpb24vRG9ja2VyZmlsZQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lMDFmOThlNGQ0ZGYwZTdmNzUw
MWJiNWQ3MDU3ZDFkNTI4MjIxYmRlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9kb2NrZXIvZG9jdW1lbnRhdGlvbi9E
b2NrZXJmaWxlCkBAIC0wLDAgKzEsMyBAQAorRlJPTSBweXRob246Mi1zdHJldGNoCisKK1JVTiBh
cHQtZ2V0IHVwZGF0ZSAmJiBhcHQtZ2V0IGluc3RhbGwgLS15ZXMgZ2l0CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2RvY2tlci9m
cm9udGVuZC5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvZG9ja2VyL2Zyb250ZW5kLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjk3NjE1NmNmNjVhMDA4MjFhMTFh
MzM1MTMwMWI0N2MxMDc4Yzg0MTYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2RvY2tlci9mcm9udGVuZC5weQpAQCAt
MCwwICsxLDQ1IEBACitpbXBvcnQgYXJncGFyc2UKK2ltcG9ydCBzdWJwcm9jZXNzCitpbXBvcnQg
b3MKKworaGVyZSA9IG9zLnBhdGguYWJzcGF0aChvcy5wYXRoLmRpcm5hbWUoX19maWxlX18pKQor
d3B0X3Jvb3QgPSBvcy5wYXRoLmFic3BhdGgob3MucGF0aC5qb2luKGhlcmUsIG9zLnBhcmRpciwg
b3MucGFyZGlyKSkKKworZGVmIGJ1aWxkKCphcmdzLCAqKmt3YXJncyk6CisgICAgc3VicHJvY2Vz
cy5jaGVja19jYWxsKFsiZG9ja2VyIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICJidWls
ZCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAiLS10YWciLCAid3B0OmxvY2FsIiwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGhlcmVdKQorCisKK2RlZiBwYXJzZXJfcnVuKCk6Cisg
ICAgcGFyc2VyID0gYXJncGFyc2UuQXJndW1lbnRQYXJzZXIoKQorICAgIHBhcnNlci5hZGRfYXJn
dW1lbnQoIi0tcmVidWlsZCIsIGFjdGlvbj0ic3RvcmVfdHJ1ZSIsIGhlbHA9IkZvcmNlIHJlYnVp
bGQgb2YgaW1hZ2UiKQorICAgIHBhcnNlci5hZGRfYXJndW1lbnQoIi0tY2hlY2tvdXQiLCBhY3Rp
b249InN0b3JlIiwKKyAgICAgICAgICAgICAgICAgICAgICAgIGhlbHA9IlJldmlzaW9uIHRvIGNo
ZWNrb3V0IGluIHRoZSBpbWFnZS4gIgorICAgICAgICAgICAgICAgICAgICAgICAgIklmIHRoaXMg
aXMgbm90IHN1cHBsaWVkIHdlIG1vdW50IHRoZSB3cHQgY2hlY2tvdXQgb24gdGhlIGhvc3QgYXMg
IgorICAgICAgICAgICAgICAgICAgICAgICAgIi9ob21lL3Rlc3Qvd2ViLXBsYXRmb3JtLXRlc3Rz
LyIpCisgICAgcGFyc2VyLmFkZF9hcmd1bWVudCgiLS1wcml2aWxlZ2VkIiwgYWN0aW9uPSJzdG9y
ZV90cnVlIiwKKyAgICAgICAgICAgICAgICAgICAgICAgIGhlbHA9IlJ1biB0aGUgaW1hZ2UgaW4g
cHJpdmlsZWRnZWQgbW9kZSAocmVxdWlyZWQgZm9yIGVtdWxhdG9ycykiKQorICAgIHJldHVybiBw
YXJzZXIKKworCitkZWYgcnVuKCphcmdzLCAqKmt3YXJncyk6CisgICAgaWYga3dhcmdzWyJyZWJ1
aWxkIl06CisgICAgICAgIGJ1aWxkKCkKKworICAgIGFyZ3MgPSBbImRvY2tlciIsICJydW4iXQor
ICAgIGFyZ3MuZXh0ZW5kKFsiLS1zZWN1cml0eS1vcHQiLCAic2VjY29tcDolcyIgJQorICAgICAg
ICAgICAgICAgICBvcy5wYXRoLmpvaW4od3B0X3Jvb3QsICJ0b29scyIsICJkb2NrZXIiLCAic2Vj
Y29tcC5qc29uIildKQorICAgIGlmIGt3YXJnc1sicHJpdmlsZWdlZCJdOgorICAgICAgICBhcmdz
LmFwcGVuZCgiLS1wcml2aWxlZ2VkIikKKyAgICBpZiBrd2FyZ3NbImNoZWNrb3V0Il06CisgICAg
ICAgIGFyZ3MuZXh0ZW5kKFsiLS1lbnYiLCAiUkVGPT0lcyIgJSBrd2FyZ3NbImNoZWNrb3V0Il1d
KQorICAgIGVsc2U6CisgICAgICAgIGFyZ3MuZXh0ZW5kKFsiLS1tb3VudCIsCisgICAgICAgICAg
ICAgICAgICAgICAidHlwZT1iaW5kLHNvdXJjZT0lcyx0YXJnZXQ9L2hvbWUvdGVzdC93ZWItcGxh
dGZvcm0tdGVzdHMiICUgd3B0X3Jvb3RdKQorICAgIGFyZ3MuZXh0ZW5kKFsiLWl0IiwgIndwdDps
b2NhbCJdKQorCisgICAgcHJvYyA9IHN1YnByb2Nlc3MuUG9wZW4oYXJncykKKyAgICBwcm9jLndh
aXQoKQorICAgIHJldHVybiBwcm9jLnJldHVybmNvZGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvZG9ja2VyL3JldHJ5LnB5IGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9kb2NrZXIv
cmV0cnkucHkKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uNjEyNmI3ODFiZmFkZDE1ZTgyYjhhM2EzYjk0OTQwNTA5Mzll
YWI2YwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvZG9ja2VyL3JldHJ5LnB5CkBAIC0wLDAgKzEsNTggQEAKKyMhIC91
c3IvYmluL2VudiBweXRob24KK2ltcG9ydCBhcmdwYXJzZQoraW1wb3J0IHN1YnByb2Nlc3MKK2lt
cG9ydCB0aW1lCitpbXBvcnQgc3lzCisKKworZGVmIGdldF9hcmdzKCk6CisgICAgcGFyc2VyID0g
YXJncGFyc2UuQXJndW1lbnRQYXJzZXIoKQorICAgIHBhcnNlci5hZGRfYXJndW1lbnQoIi0tZGVs
YXkiLCBhY3Rpb249InN0b3JlIiwgdHlwZT1mbG9hdCwgZGVmYXVsdD0zLCBoZWxwPSJJbml0aWFs
IGRlbGF5IGJlZm9yZSByZXRyeSwgaW4gc2Vjb25kcyIpCisgICAgcGFyc2VyLmFkZF9hcmd1bWVu
dCgiLS1jb3VudCIsIGFjdGlvbj0ic3RvcmUiLCB0eXBlPWludCwgZGVmYXVsdD01LCBoZWxwPSJU
b3RhbCBudW1iZXIgb2YgdHJpZXMiKQorICAgIHBhcnNlci5hZGRfYXJndW1lbnQoIi0tZmFjdG9y
IiwgYWN0aW9uPSJzdG9yZSIsIHR5cGU9ZmxvYXQsIGRlZmF1bHQ9MiwgaGVscD0iRXhwb25lbnRp
YWwgYmFja29mZiBmYWN0b3IiKQorICAgIHBhcnNlci5hZGRfYXJndW1lbnQoImNtZCIsIG5hcmdz
PWFyZ3BhcnNlLlJFTUFJTkRFUikKKyAgICByZXR1cm4gcGFyc2VyCisKKworZGVmIGl0ZXJfcmFu
Z2Uobik6CisgICAgaSA9IDAKKyAgICB3aGlsZSBpIDwgbjoKKyAgICAgICAgeWllbGQgaQorICAg
ICAgICBpICs9IDEKKworCitkZWYgbWFpbigpOgorICAgIGFyZ3MgPSBnZXRfYXJncygpLnBhcnNl
X2FyZ3MoKQorCisgICAgaWYgbm90IGFyZ3MuY21kOgorICAgICAgICBwcmludCgiTm8gY29tbWFu
ZCBzdXBwbGllZCIpCisgICAgICAgIHN5cy5leGl0KDEpCisKKyAgICByZXRjb2RlID0gTm9uZQor
CisgICAgZm9yIG4gaW4gaXRlcl9yYW5nZShhcmdzLmNvdW50KToKKyAgICAgICAgdHJ5OgorICAg
ICAgICAgICAgcHJpbnQoIlJ1bm5pbmcgJXMgW3RyeSAlZC8lZF0iICUgKCIgIi5qb2luKGFyZ3Mu
Y21kKSwgKG4rMSksIGFyZ3MuY291bnQpKQorICAgICAgICAgICAgc3VicHJvY2Vzcy5jaGVja19j
YWxsKGFyZ3MuY21kKQorICAgICAgICBleGNlcHQgc3VicHJvY2Vzcy5DYWxsZWRQcm9jZXNzRXJy
b3IgYXMgZToKKyAgICAgICAgICAgIHJldGNvZGUgPSBlLnJldHVybmNvZGUKKyAgICAgICAgZWxz
ZToKKyAgICAgICAgICAgIHByaW50KCJDb21tYW5kIHN1Y2NlZWRlZCIpCisgICAgICAgICAgICBy
ZXRjb2RlID0gMAorICAgICAgICAgICAgYnJlYWsKKworICAgICAgICBpZiBhcmdzLmZhY3RvciA9
PSAwOgorICAgICAgICAgICAgd2FpdF90aW1lID0gKG4rMSkgKiBhcmdzLmRlbGF5CisgICAgICAg
IGVsc2U6CisgICAgICAgICAgICB3YWl0X3RpbWUgPSBhcmdzLmZhY3RvcioqbiAqIGFyZ3MuZGVs
YXkKKyAgICAgICAgaWYgbiA8IGFyZ3MuY291bnQgLSAxOgorICAgICAgICAgICAgcHJpbnQoIkNv
bW1hbmQgZmFpbGVkLCB3YWl0aW5nICVzIHNlY29uZHMgdG8gcmV0cnkiICUgd2FpdF90aW1lKQor
ICAgICAgICAgICAgdGltZS5zbGVlcCh3YWl0X3RpbWUpCisgICAgICAgIGVsc2U6CisgICAgICAg
ICAgICBwcmludCgiQ29tbWFuZCBmYWlsZWQsIG91dCBvZiByZXRyaWVzIikKKworICAgIHN5cy5l
eGl0KHJldGNvZGUpCisKKworaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKKyAgICBtYWluKCkK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvZG9ja2VyL3NlY2NvbXAuanNvbiBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvZG9ja2VyL3NlY2NvbXAuanNvbgpuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44ZTgy
NzRjZTMyODBlNjk4ZDJjMWEwYWJlYmEwNWE3NjlmNGM0NTZkCi0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9kb2NrZXIv
c2VjY29tcC5qc29uCkBAIC0wLDAgKzEsNzk4IEBACit7CisgICJkZWZhdWx0QWN0aW9uIjogIlND
TVBfQUNUX0VSUk5PIiwKKyAgImFyY2hNYXAiOiBbCisgICAgeworICAgICAgImFyY2hpdGVjdHVy
ZSI6ICJTQ01QX0FSQ0hfWDg2XzY0IiwKKyAgICAgICJzdWJBcmNoaXRlY3R1cmVzIjogWworICAg
ICAgICAiU0NNUF9BUkNIX1g4NiIsCisgICAgICAgICJTQ01QX0FSQ0hfWDMyIgorICAgICAgXQor
ICAgIH0sCisgICAgeworICAgICAgImFyY2hpdGVjdHVyZSI6ICJTQ01QX0FSQ0hfQUFSQ0g2NCIs
CisgICAgICAic3ViQXJjaGl0ZWN0dXJlcyI6IFsKKyAgICAgICAgIlNDTVBfQVJDSF9BUk0iCisg
ICAgICBdCisgICAgfSwKKyAgICB7CisgICAgICAiYXJjaGl0ZWN0dXJlIjogIlNDTVBfQVJDSF9N
SVBTNjQiLAorICAgICAgInN1YkFyY2hpdGVjdHVyZXMiOiBbCisgICAgICAgICJTQ01QX0FSQ0hf
TUlQUyIsCisgICAgICAgICJTQ01QX0FSQ0hfTUlQUzY0TjMyIgorICAgICAgXQorICAgIH0sCisg
ICAgeworICAgICAgImFyY2hpdGVjdHVyZSI6ICJTQ01QX0FSQ0hfTUlQUzY0TjMyIiwKKyAgICAg
ICJzdWJBcmNoaXRlY3R1cmVzIjogWworICAgICAgICAiU0NNUF9BUkNIX01JUFMiLAorICAgICAg
ICAiU0NNUF9BUkNIX01JUFM2NCIKKyAgICAgIF0KKyAgICB9LAorICAgIHsKKyAgICAgICJhcmNo
aXRlY3R1cmUiOiAiU0NNUF9BUkNIX01JUFNFTDY0IiwKKyAgICAgICJzdWJBcmNoaXRlY3R1cmVz
IjogWworICAgICAgICAiU0NNUF9BUkNIX01JUFNFTCIsCisgICAgICAgICJTQ01QX0FSQ0hfTUlQ
U0VMNjROMzIiCisgICAgICBdCisgICAgfSwKKyAgICB7CisgICAgICAiYXJjaGl0ZWN0dXJlIjog
IlNDTVBfQVJDSF9NSVBTRUw2NE4zMiIsCisgICAgICAic3ViQXJjaGl0ZWN0dXJlcyI6IFsKKyAg
ICAgICAgIlNDTVBfQVJDSF9NSVBTRUwiLAorICAgICAgICAiU0NNUF9BUkNIX01JUFNFTDY0Igor
ICAgICAgXQorICAgIH0sCisgICAgeworICAgICAgImFyY2hpdGVjdHVyZSI6ICJTQ01QX0FSQ0hf
UzM5MFgiLAorICAgICAgInN1YkFyY2hpdGVjdHVyZXMiOiBbCisgICAgICAgICJTQ01QX0FSQ0hf
UzM5MCIKKyAgICAgIF0KKyAgICB9CisgIF0sCisgICJzeXNjYWxscyI6IFsKKyAgICB7CisgICAg
ICAibmFtZXMiOiBbCisgICAgICAgICJhY2NlcHQiLAorICAgICAgICAiYWNjZXB0NCIsCisgICAg
ICAgICJhY2Nlc3MiLAorICAgICAgICAiYWRqdGltZXgiLAorICAgICAgICAiYWxhcm0iLAorICAg
ICAgICAiYmluZCIsCisgICAgICAgICJicmsiLAorICAgICAgICAiY2FwZ2V0IiwKKyAgICAgICAg
ImNhcHNldCIsCisgICAgICAgICJjaGRpciIsCisgICAgICAgICJjaG1vZCIsCisgICAgICAgICJj
aG93biIsCisgICAgICAgICJjaG93bjMyIiwKKyAgICAgICAgImNsb2NrX2dldHJlcyIsCisgICAg
ICAgICJjbG9ja19nZXR0aW1lIiwKKyAgICAgICAgImNsb2NrX25hbm9zbGVlcCIsCisgICAgICAg
ICJjbG9uZSIsCisgICAgICAgICJjbG9zZSIsCisgICAgICAgICJjb25uZWN0IiwKKyAgICAgICAg
ImNvcHlfZmlsZV9yYW5nZSIsCisgICAgICAgICJjcmVhdCIsCisgICAgICAgICJkdXAiLAorICAg
ICAgICAiZHVwMiIsCisgICAgICAgICJkdXAzIiwKKyAgICAgICAgImVwb2xsX2NyZWF0ZSIsCisg
ICAgICAgICJlcG9sbF9jcmVhdGUxIiwKKyAgICAgICAgImVwb2xsX2N0bCIsCisgICAgICAgICJl
cG9sbF9jdGxfb2xkIiwKKyAgICAgICAgImVwb2xsX3B3YWl0IiwKKyAgICAgICAgImVwb2xsX3dh
aXQiLAorICAgICAgICAiZXBvbGxfd2FpdF9vbGQiLAorICAgICAgICAiZXZlbnRmZCIsCisgICAg
ICAgICJldmVudGZkMiIsCisgICAgICAgICJleGVjdmUiLAorICAgICAgICAiZXhlY3ZlYXQiLAor
ICAgICAgICAiZXhpdCIsCisgICAgICAgICJleGl0X2dyb3VwIiwKKyAgICAgICAgImZhY2Nlc3Nh
dCIsCisgICAgICAgICJmYWR2aXNlNjQiLAorICAgICAgICAiZmFkdmlzZTY0XzY0IiwKKyAgICAg
ICAgImZhbGxvY2F0ZSIsCisgICAgICAgICJmYW5vdGlmeV9tYXJrIiwKKyAgICAgICAgImZjaGRp
ciIsCisgICAgICAgICJmY2htb2QiLAorICAgICAgICAiZmNobW9kYXQiLAorICAgICAgICAiZmNo
b3duIiwKKyAgICAgICAgImZjaG93bjMyIiwKKyAgICAgICAgImZjaG93bmF0IiwKKyAgICAgICAg
ImZjbnRsIiwKKyAgICAgICAgImZjbnRsNjQiLAorICAgICAgICAiZmRhdGFzeW5jIiwKKyAgICAg
ICAgImZnZXR4YXR0ciIsCisgICAgICAgICJmbGlzdHhhdHRyIiwKKyAgICAgICAgImZsb2NrIiwK
KyAgICAgICAgImZvcmsiLAorICAgICAgICAiZnJlbW92ZXhhdHRyIiwKKyAgICAgICAgImZzZXR4
YXR0ciIsCisgICAgICAgICJmc3RhdCIsCisgICAgICAgICJmc3RhdDY0IiwKKyAgICAgICAgImZz
dGF0YXQ2NCIsCisgICAgICAgICJmc3RhdGZzIiwKKyAgICAgICAgImZzdGF0ZnM2NCIsCisgICAg
ICAgICJmc3luYyIsCisgICAgICAgICJmdHJ1bmNhdGUiLAorICAgICAgICAiZnRydW5jYXRlNjQi
LAorICAgICAgICAiZnV0ZXgiLAorICAgICAgICAiZnV0aW1lc2F0IiwKKyAgICAgICAgImdldGNw
dSIsCisgICAgICAgICJnZXRjd2QiLAorICAgICAgICAiZ2V0ZGVudHMiLAorICAgICAgICAiZ2V0
ZGVudHM2NCIsCisgICAgICAgICJnZXRlZ2lkIiwKKyAgICAgICAgImdldGVnaWQzMiIsCisgICAg
ICAgICJnZXRldWlkIiwKKyAgICAgICAgImdldGV1aWQzMiIsCisgICAgICAgICJnZXRnaWQiLAor
ICAgICAgICAiZ2V0Z2lkMzIiLAorICAgICAgICAiZ2V0Z3JvdXBzIiwKKyAgICAgICAgImdldGdy
b3VwczMyIiwKKyAgICAgICAgImdldGl0aW1lciIsCisgICAgICAgICJnZXRwZWVybmFtZSIsCisg
ICAgICAgICJnZXRwZ2lkIiwKKyAgICAgICAgImdldHBncnAiLAorICAgICAgICAiZ2V0cGlkIiwK
KyAgICAgICAgImdldHBwaWQiLAorICAgICAgICAiZ2V0cHJpb3JpdHkiLAorICAgICAgICAiZ2V0
cmFuZG9tIiwKKyAgICAgICAgImdldHJlc2dpZCIsCisgICAgICAgICJnZXRyZXNnaWQzMiIsCisg
ICAgICAgICJnZXRyZXN1aWQiLAorICAgICAgICAiZ2V0cmVzdWlkMzIiLAorICAgICAgICAiZ2V0
cmxpbWl0IiwKKyAgICAgICAgImdldF9yb2J1c3RfbGlzdCIsCisgICAgICAgICJnZXRydXNhZ2Ui
LAorICAgICAgICAiZ2V0c2lkIiwKKyAgICAgICAgImdldHNvY2tuYW1lIiwKKyAgICAgICAgImdl
dHNvY2tvcHQiLAorICAgICAgICAiZ2V0X3RocmVhZF9hcmVhIiwKKyAgICAgICAgImdldHRpZCIs
CisgICAgICAgICJnZXR0aW1lb2ZkYXkiLAorICAgICAgICAiZ2V0dWlkIiwKKyAgICAgICAgImdl
dHVpZDMyIiwKKyAgICAgICAgImdldHhhdHRyIiwKKyAgICAgICAgImlub3RpZnlfYWRkX3dhdGNo
IiwKKyAgICAgICAgImlub3RpZnlfaW5pdCIsCisgICAgICAgICJpbm90aWZ5X2luaXQxIiwKKyAg
ICAgICAgImlub3RpZnlfcm1fd2F0Y2giLAorICAgICAgICAiaW9fY2FuY2VsIiwKKyAgICAgICAg
ImlvY3RsIiwKKyAgICAgICAgImlvX2Rlc3Ryb3kiLAorICAgICAgICAiaW9fZ2V0ZXZlbnRzIiwK
KyAgICAgICAgImlvX3BnZXRldmVudHMiLAorICAgICAgICAiaW9wcmlvX2dldCIsCisgICAgICAg
ICJpb3ByaW9fc2V0IiwKKyAgICAgICAgImlvX3NldHVwIiwKKyAgICAgICAgImlvX3N1Ym1pdCIs
CisgICAgICAgICJpb191cmluZ19lbnRlciIsCisgICAgICAgICJpb191cmluZ19yZWdpc3RlciIs
CisgICAgICAgICJpb191cmluZ19zZXR1cCIsCisgICAgICAgICJpcGMiLAorICAgICAgICAia2ls
bCIsCisgICAgICAgICJsY2hvd24iLAorICAgICAgICAibGNob3duMzIiLAorICAgICAgICAibGdl
dHhhdHRyIiwKKyAgICAgICAgImxpbmsiLAorICAgICAgICAibGlua2F0IiwKKyAgICAgICAgImxp
c3RlbiIsCisgICAgICAgICJsaXN0eGF0dHIiLAorICAgICAgICAibGxpc3R4YXR0ciIsCisgICAg
ICAgICJfbGxzZWVrIiwKKyAgICAgICAgImxyZW1vdmV4YXR0ciIsCisgICAgICAgICJsc2VlayIs
CisgICAgICAgICJsc2V0eGF0dHIiLAorICAgICAgICAibHN0YXQiLAorICAgICAgICAibHN0YXQ2
NCIsCisgICAgICAgICJtYWR2aXNlIiwKKyAgICAgICAgIm1lbWZkX2NyZWF0ZSIsCisgICAgICAg
ICJtaW5jb3JlIiwKKyAgICAgICAgIm1rZGlyIiwKKyAgICAgICAgIm1rZGlyYXQiLAorICAgICAg
ICAibWtub2QiLAorICAgICAgICAibWtub2RhdCIsCisgICAgICAgICJtbG9jayIsCisgICAgICAg
ICJtbG9jazIiLAorICAgICAgICAibWxvY2thbGwiLAorICAgICAgICAibW1hcCIsCisgICAgICAg
ICJtbWFwMiIsCisgICAgICAgICJtcHJvdGVjdCIsCisgICAgICAgICJtcV9nZXRzZXRhdHRyIiwK
KyAgICAgICAgIm1xX25vdGlmeSIsCisgICAgICAgICJtcV9vcGVuIiwKKyAgICAgICAgIm1xX3Rp
bWVkcmVjZWl2ZSIsCisgICAgICAgICJtcV90aW1lZHNlbmQiLAorICAgICAgICAibXFfdW5saW5r
IiwKKyAgICAgICAgIm1yZW1hcCIsCisgICAgICAgICJtc2djdGwiLAorICAgICAgICAibXNnZ2V0
IiwKKyAgICAgICAgIm1zZ3JjdiIsCisgICAgICAgICJtc2dzbmQiLAorICAgICAgICAibXN5bmMi
LAorICAgICAgICAibXVubG9jayIsCisgICAgICAgICJtdW5sb2NrYWxsIiwKKyAgICAgICAgIm11
bm1hcCIsCisgICAgICAgICJuYW5vc2xlZXAiLAorICAgICAgICAibmV3ZnN0YXRhdCIsCisgICAg
ICAgICJfbmV3c2VsZWN0IiwKKyAgICAgICAgIm9wZW4iLAorICAgICAgICAib3BlbmF0IiwKKyAg
ICAgICAgInBhdXNlIiwKKyAgICAgICAgInBpcGUiLAorICAgICAgICAicGlwZTIiLAorICAgICAg
ICAicG9sbCIsCisgICAgICAgICJwcG9sbCIsCisgICAgICAgICJwcmN0bCIsCisgICAgICAgICJw
cmVhZDY0IiwKKyAgICAgICAgInByZWFkdiIsCisgICAgICAgICJwcmVhZHYyIiwKKyAgICAgICAg
InBybGltaXQ2NCIsCisgICAgICAgICJwc2VsZWN0NiIsCisgICAgICAgICJwd3JpdGU2NCIsCisg
ICAgICAgICJwd3JpdGV2IiwKKyAgICAgICAgInB3cml0ZXYyIiwKKyAgICAgICAgInJlYWQiLAor
ICAgICAgICAicmVhZGFoZWFkIiwKKyAgICAgICAgInJlYWRsaW5rIiwKKyAgICAgICAgInJlYWRs
aW5rYXQiLAorICAgICAgICAicmVhZHYiLAorICAgICAgICAicmVjdiIsCisgICAgICAgICJyZWN2
ZnJvbSIsCisgICAgICAgICJyZWN2bW1zZyIsCisgICAgICAgICJyZWN2bXNnIiwKKyAgICAgICAg
InJlbWFwX2ZpbGVfcGFnZXMiLAorICAgICAgICAicmVtb3ZleGF0dHIiLAorICAgICAgICAicmVu
YW1lIiwKKyAgICAgICAgInJlbmFtZWF0IiwKKyAgICAgICAgInJlbmFtZWF0MiIsCisgICAgICAg
ICJyZXN0YXJ0X3N5c2NhbGwiLAorICAgICAgICAicm1kaXIiLAorICAgICAgICAicnRfc2lnYWN0
aW9uIiwKKyAgICAgICAgInJ0X3NpZ3BlbmRpbmciLAorICAgICAgICAicnRfc2lncHJvY21hc2si
LAorICAgICAgICAicnRfc2lncXVldWVpbmZvIiwKKyAgICAgICAgInJ0X3NpZ3JldHVybiIsCisg
ICAgICAgICJydF9zaWdzdXNwZW5kIiwKKyAgICAgICAgInJ0X3NpZ3RpbWVkd2FpdCIsCisgICAg
ICAgICJydF90Z3NpZ3F1ZXVlaW5mbyIsCisgICAgICAgICJzY2hlZF9nZXRhZmZpbml0eSIsCisg
ICAgICAgICJzY2hlZF9nZXRhdHRyIiwKKyAgICAgICAgInNjaGVkX2dldHBhcmFtIiwKKyAgICAg
ICAgInNjaGVkX2dldF9wcmlvcml0eV9tYXgiLAorICAgICAgICAic2NoZWRfZ2V0X3ByaW9yaXR5
X21pbiIsCisgICAgICAgICJzY2hlZF9nZXRzY2hlZHVsZXIiLAorICAgICAgICAic2NoZWRfcnJf
Z2V0X2ludGVydmFsIiwKKyAgICAgICAgInNjaGVkX3NldGFmZmluaXR5IiwKKyAgICAgICAgInNj
aGVkX3NldGF0dHIiLAorICAgICAgICAic2NoZWRfc2V0cGFyYW0iLAorICAgICAgICAic2NoZWRf
c2V0c2NoZWR1bGVyIiwKKyAgICAgICAgInNjaGVkX3lpZWxkIiwKKyAgICAgICAgInNlY2NvbXAi
LAorICAgICAgICAic2VsZWN0IiwKKyAgICAgICAgInNlbWN0bCIsCisgICAgICAgICJzZW1nZXQi
LAorICAgICAgICAic2Vtb3AiLAorICAgICAgICAic2VtdGltZWRvcCIsCisgICAgICAgICJzZW5k
IiwKKyAgICAgICAgInNlbmRmaWxlIiwKKyAgICAgICAgInNlbmRmaWxlNjQiLAorICAgICAgICAi
c2VuZG1tc2ciLAorICAgICAgICAic2VuZG1zZyIsCisgICAgICAgICJzZW5kdG8iLAorICAgICAg
ICAic2V0ZnNnaWQiLAorICAgICAgICAic2V0ZnNnaWQzMiIsCisgICAgICAgICJzZXRmc3VpZCIs
CisgICAgICAgICJzZXRmc3VpZDMyIiwKKyAgICAgICAgInNldGdpZCIsCisgICAgICAgICJzZXRn
aWQzMiIsCisgICAgICAgICJzZXRncm91cHMiLAorICAgICAgICAic2V0Z3JvdXBzMzIiLAorICAg
ICAgICAic2V0aXRpbWVyIiwKKyAgICAgICAgInNldHBnaWQiLAorICAgICAgICAic2V0cHJpb3Jp
dHkiLAorICAgICAgICAic2V0cmVnaWQiLAorICAgICAgICAic2V0cmVnaWQzMiIsCisgICAgICAg
ICJzZXRyZXNnaWQiLAorICAgICAgICAic2V0cmVzZ2lkMzIiLAorICAgICAgICAic2V0cmVzdWlk
IiwKKyAgICAgICAgInNldHJlc3VpZDMyIiwKKyAgICAgICAgInNldHJldWlkIiwKKyAgICAgICAg
InNldHJldWlkMzIiLAorICAgICAgICAic2V0cmxpbWl0IiwKKyAgICAgICAgInNldF9yb2J1c3Rf
bGlzdCIsCisgICAgICAgICJzZXRzaWQiLAorICAgICAgICAic2V0c29ja29wdCIsCisgICAgICAg
ICJzZXRfdGhyZWFkX2FyZWEiLAorICAgICAgICAic2V0X3RpZF9hZGRyZXNzIiwKKyAgICAgICAg
InNldHVpZCIsCisgICAgICAgICJzZXR1aWQzMiIsCisgICAgICAgICJzZXR4YXR0ciIsCisgICAg
ICAgICJzaG1hdCIsCisgICAgICAgICJzaG1jdGwiLAorICAgICAgICAic2htZHQiLAorICAgICAg
ICAic2htZ2V0IiwKKyAgICAgICAgInNodXRkb3duIiwKKyAgICAgICAgInNpZ2FsdHN0YWNrIiwK
KyAgICAgICAgInNpZ25hbGZkIiwKKyAgICAgICAgInNpZ25hbGZkNCIsCisgICAgICAgICJzaWdw
cm9jbWFzayIsCisgICAgICAgICJzaWdyZXR1cm4iLAorICAgICAgICAic29ja2V0IiwKKyAgICAg
ICAgInNvY2tldGNhbGwiLAorICAgICAgICAic29ja2V0cGFpciIsCisgICAgICAgICJzcGxpY2Ui
LAorICAgICAgICAic3RhdCIsCisgICAgICAgICJzdGF0NjQiLAorICAgICAgICAic3RhdGZzIiwK
KyAgICAgICAgInN0YXRmczY0IiwKKyAgICAgICAgInN0YXR4IiwKKyAgICAgICAgInN5bWxpbmsi
LAorICAgICAgICAic3ltbGlua2F0IiwKKyAgICAgICAgInN5bmMiLAorICAgICAgICAic3luY19m
aWxlX3JhbmdlIiwKKyAgICAgICAgInN5bmNmcyIsCisgICAgICAgICJzeXNpbmZvIiwKKyAgICAg
ICAgInRlZSIsCisgICAgICAgICJ0Z2tpbGwiLAorICAgICAgICAidGltZSIsCisgICAgICAgICJ0
aW1lcl9jcmVhdGUiLAorICAgICAgICAidGltZXJfZGVsZXRlIiwKKyAgICAgICAgInRpbWVyZmRf
Y3JlYXRlIiwKKyAgICAgICAgInRpbWVyZmRfZ2V0dGltZSIsCisgICAgICAgICJ0aW1lcmZkX3Nl
dHRpbWUiLAorICAgICAgICAidGltZXJfZ2V0b3ZlcnJ1biIsCisgICAgICAgICJ0aW1lcl9nZXR0
aW1lIiwKKyAgICAgICAgInRpbWVyX3NldHRpbWUiLAorICAgICAgICAidGltZXMiLAorICAgICAg
ICAidGtpbGwiLAorICAgICAgICAidHJ1bmNhdGUiLAorICAgICAgICAidHJ1bmNhdGU2NCIsCisg
ICAgICAgICJ1Z2V0cmxpbWl0IiwKKyAgICAgICAgInVtYXNrIiwKKyAgICAgICAgInVuYW1lIiwK
KyAgICAgICAgInVubGluayIsCisgICAgICAgICJ1bmxpbmthdCIsCisgICAgICAgICJ1bnNoYXJl
IiwKKyAgICAgICAgInV0aW1lIiwKKyAgICAgICAgInV0aW1lbnNhdCIsCisgICAgICAgICJ1dGlt
ZXMiLAorICAgICAgICAidmZvcmsiLAorICAgICAgICAidm1zcGxpY2UiLAorICAgICAgICAid2Fp
dDQiLAorICAgICAgICAid2FpdGlkIiwKKyAgICAgICAgIndhaXRwaWQiLAorICAgICAgICAid3Jp
dGUiLAorICAgICAgICAid3JpdGV2IgorICAgICAgXSwKKyAgICAgICJhY3Rpb24iOiAiU0NNUF9B
Q1RfQUxMT1ciLAorICAgICAgImFyZ3MiOiBbXSwKKyAgICAgICJjb21tZW50IjogIiIsCisgICAg
ICAiaW5jbHVkZXMiOiBudWxsLAorICAgICAgImV4Y2x1ZGVzIjogbnVsbAorICAgIH0sCisgICAg
eworICAgICAgIm5hbWVzIjogWworICAgICAgICAicHRyYWNlIgorICAgICAgXSwKKyAgICAgICJh
Y3Rpb24iOiAiU0NNUF9BQ1RfQUxMT1ciLAorICAgICAgImFyZ3MiOiBudWxsLAorICAgICAgImNv
bW1lbnQiOiAiIiwKKyAgICAgICJpbmNsdWRlcyI6IHsKKyAgICAgICAgIm1pbktlcm5lbCI6ICI0
LjgiCisgICAgICB9LAorICAgICAgImV4Y2x1ZGVzIjogbnVsbAorICAgIH0sCisgICAgeworICAg
ICAgIm5hbWVzIjogWworICAgICAgICAicGVyc29uYWxpdHkiCisgICAgICBdLAorICAgICAgImFj
dGlvbiI6ICJTQ01QX0FDVF9BTExPVyIsCisgICAgICAiYXJncyI6IFsKKyAgICAgICAgeworICAg
ICAgICAgICJpbmRleCI6IDAsCisgICAgICAgICAgInZhbHVlIjogMCwKKyAgICAgICAgICAidmFs
dWVUd28iOiAwLAorICAgICAgICAgICJvcCI6ICJTQ01QX0NNUF9FUSIKKyAgICAgICAgfQorICAg
ICAgXSwKKyAgICAgICJjb21tZW50IjogIiIsCisgICAgICAiaW5jbHVkZXMiOiBudWxsLAorICAg
ICAgImV4Y2x1ZGVzIjogbnVsbAorICAgIH0sCisgICAgeworICAgICAgIm5hbWVzIjogWworICAg
ICAgICAicGVyc29uYWxpdHkiCisgICAgICBdLAorICAgICAgImFjdGlvbiI6ICJTQ01QX0FDVF9B
TExPVyIsCisgICAgICAiYXJncyI6IFsKKyAgICAgICAgeworICAgICAgICAgICJpbmRleCI6IDAs
CisgICAgICAgICAgInZhbHVlIjogOCwKKyAgICAgICAgICAidmFsdWVUd28iOiAwLAorICAgICAg
ICAgICJvcCI6ICJTQ01QX0NNUF9FUSIKKyAgICAgICAgfQorICAgICAgXSwKKyAgICAgICJjb21t
ZW50IjogIiIsCisgICAgICAiaW5jbHVkZXMiOiBudWxsLAorICAgICAgImV4Y2x1ZGVzIjogbnVs
bAorICAgIH0sCisgICAgeworICAgICAgIm5hbWVzIjogWworICAgICAgICAicGVyc29uYWxpdHki
CisgICAgICBdLAorICAgICAgImFjdGlvbiI6ICJTQ01QX0FDVF9BTExPVyIsCisgICAgICAiYXJn
cyI6IFsKKyAgICAgICAgeworICAgICAgICAgICJpbmRleCI6IDAsCisgICAgICAgICAgInZhbHVl
IjogMTMxMDcyLAorICAgICAgICAgICJ2YWx1ZVR3byI6IDAsCisgICAgICAgICAgIm9wIjogIlND
TVBfQ01QX0VRIgorICAgICAgICB9CisgICAgICBdLAorICAgICAgImNvbW1lbnQiOiAiIiwKKyAg
ICAgICJpbmNsdWRlcyI6IG51bGwsCisgICAgICAiZXhjbHVkZXMiOiBudWxsCisgICAgfSwKKyAg
ICB7CisgICAgICAibmFtZXMiOiBbCisgICAgICAgICJwZXJzb25hbGl0eSIKKyAgICAgIF0sCisg
ICAgICAiYWN0aW9uIjogIlNDTVBfQUNUX0FMTE9XIiwKKyAgICAgICJhcmdzIjogWworICAgICAg
ICB7CisgICAgICAgICAgImluZGV4IjogMCwKKyAgICAgICAgICAidmFsdWUiOiAxMzEwODAsCisg
ICAgICAgICAgInZhbHVlVHdvIjogMCwKKyAgICAgICAgICAib3AiOiAiU0NNUF9DTVBfRVEiCisg
ICAgICAgIH0KKyAgICAgIF0sCisgICAgICAiY29tbWVudCI6ICIiLAorICAgICAgImluY2x1ZGVz
IjogbnVsbCwKKyAgICAgICJleGNsdWRlcyI6IG51bGwKKyAgICB9LAorICAgIHsKKyAgICAgICJu
YW1lcyI6IFsKKyAgICAgICAgInBlcnNvbmFsaXR5IgorICAgICAgXSwKKyAgICAgICJhY3Rpb24i
OiAiU0NNUF9BQ1RfQUxMT1ciLAorICAgICAgImFyZ3MiOiBbCisgICAgICAgIHsKKyAgICAgICAg
ICAiaW5kZXgiOiAwLAorICAgICAgICAgICJ2YWx1ZSI6IDQyOTQ5NjcyOTUsCisgICAgICAgICAg
InZhbHVlVHdvIjogMCwKKyAgICAgICAgICAib3AiOiAiU0NNUF9DTVBfRVEiCisgICAgICAgIH0K
KyAgICAgIF0sCisgICAgICAiY29tbWVudCI6ICIiLAorICAgICAgImluY2x1ZGVzIjogbnVsbCwK
KyAgICAgICJleGNsdWRlcyI6IG51bGwKKyAgICB9LAorICAgIHsKKyAgICAgICJuYW1lcyI6IFsK
KyAgICAgICAgInN5bmNfZmlsZV9yYW5nZTIiCisgICAgICBdLAorICAgICAgImFjdGlvbiI6ICJT
Q01QX0FDVF9BTExPVyIsCisgICAgICAiYXJncyI6IFtdLAorICAgICAgImNvbW1lbnQiOiAiIiwK
KyAgICAgICJpbmNsdWRlcyI6IHsKKyAgICAgICAgImFyY2hlcyI6IFsKKyAgICAgICAgICAicHBj
NjRsZSIKKyAgICAgICAgXQorICAgICAgfSwKKyAgICAgICJleGNsdWRlcyI6IG51bGwKKyAgICB9
LAorICAgIHsKKyAgICAgICJuYW1lcyI6IFsKKyAgICAgICAgImFybV9mYWR2aXNlNjRfNjQiLAor
ICAgICAgICAiYXJtX3N5bmNfZmlsZV9yYW5nZSIsCisgICAgICAgICJzeW5jX2ZpbGVfcmFuZ2Uy
IiwKKyAgICAgICAgImJyZWFrcG9pbnQiLAorICAgICAgICAiY2FjaGVmbHVzaCIsCisgICAgICAg
ICJzZXRfdGxzIgorICAgICAgXSwKKyAgICAgICJhY3Rpb24iOiAiU0NNUF9BQ1RfQUxMT1ciLAor
ICAgICAgImFyZ3MiOiBbXSwKKyAgICAgICJjb21tZW50IjogIiIsCisgICAgICAiaW5jbHVkZXMi
OiB7CisgICAgICAgICJhcmNoZXMiOiBbCisgICAgICAgICAgImFybSIsCisgICAgICAgICAgImFy
bTY0IgorICAgICAgICBdCisgICAgICB9LAorICAgICAgImV4Y2x1ZGVzIjogbnVsbAorICAgIH0s
CisgICAgeworICAgICAgIm5hbWVzIjogWworICAgICAgICAiYXJjaF9wcmN0bCIKKyAgICAgIF0s
CisgICAgICAiYWN0aW9uIjogIlNDTVBfQUNUX0FMTE9XIiwKKyAgICAgICJhcmdzIjogW10sCisg
ICAgICAiY29tbWVudCI6ICIiLAorICAgICAgImluY2x1ZGVzIjogeworICAgICAgICAiYXJjaGVz
IjogWworICAgICAgICAgICJhbWQ2NCIsCisgICAgICAgICAgIngzMiIKKyAgICAgICAgXQorICAg
ICAgfSwKKyAgICAgICJleGNsdWRlcyI6IG51bGwKKyAgICB9LAorICAgIHsKKyAgICAgICJuYW1l
cyI6IFsKKyAgICAgICAgIm1vZGlmeV9sZHQiCisgICAgICBdLAorICAgICAgImFjdGlvbiI6ICJT
Q01QX0FDVF9BTExPVyIsCisgICAgICAiYXJncyI6IFtdLAorICAgICAgImNvbW1lbnQiOiAiIiwK
KyAgICAgICJpbmNsdWRlcyI6IHsKKyAgICAgICAgImFyY2hlcyI6IFsKKyAgICAgICAgICAiYW1k
NjQiLAorICAgICAgICAgICJ4MzIiLAorICAgICAgICAgICJ4ODYiCisgICAgICAgIF0KKyAgICAg
IH0sCisgICAgICAiZXhjbHVkZXMiOiBudWxsCisgICAgfSwKKyAgICB7CisgICAgICAibmFtZXMi
OiBbCisgICAgICAgICJzMzkwX3BjaV9tbWlvX3JlYWQiLAorICAgICAgICAiczM5MF9wY2lfbW1p
b193cml0ZSIsCisgICAgICAgICJzMzkwX3J1bnRpbWVfaW5zdHIiCisgICAgICBdLAorICAgICAg
ImFjdGlvbiI6ICJTQ01QX0FDVF9BTExPVyIsCisgICAgICAiYXJncyI6IFtdLAorICAgICAgImNv
bW1lbnQiOiAiIiwKKyAgICAgICJpbmNsdWRlcyI6IHsKKyAgICAgICAgImFyY2hlcyI6IFsKKyAg
ICAgICAgICAiczM5MCIsCisgICAgICAgICAgInMzOTB4IgorICAgICAgICBdCisgICAgICB9LAor
ICAgICAgImV4Y2x1ZGVzIjogbnVsbAorICAgIH0sCisgICAgeworICAgICAgIm5hbWVzIjogWwor
ICAgICAgICAib3Blbl9ieV9oYW5kbGVfYXQiCisgICAgICBdLAorICAgICAgImFjdGlvbiI6ICJT
Q01QX0FDVF9BTExPVyIsCisgICAgICAiYXJncyI6IFtdLAorICAgICAgImNvbW1lbnQiOiAiIiwK
KyAgICAgICJpbmNsdWRlcyI6IHsKKyAgICAgICAgImNhcHMiOiBbCisgICAgICAgICAgIkNBUF9E
QUNfUkVBRF9TRUFSQ0giCisgICAgICAgIF0KKyAgICAgIH0sCisgICAgICAiZXhjbHVkZXMiOiBu
dWxsCisgICAgfSwKKyAgICB7CisgICAgICAibmFtZXMiOiBbCisgICAgICAgICJicGYiLAorICAg
ICAgICAiZmFub3RpZnlfaW5pdCIsCisgICAgICAgICJsb29rdXBfZGNvb2tpZSIsCisgICAgICAg
ICJtb3VudCIsCisgICAgICAgICJuYW1lX3RvX2hhbmRsZV9hdCIsCisgICAgICAgICJwZXJmX2V2
ZW50X29wZW4iLAorICAgICAgICAicXVvdGFjdGwiLAorICAgICAgICAic2V0ZG9tYWlubmFtZSIs
CisgICAgICAgICJzZXRob3N0bmFtZSIsCisgICAgICAgICJzZXRucyIsCisgICAgICAgICJzeXNs
b2ciLAorICAgICAgICAidW1vdW50IiwKKyAgICAgICAgInVtb3VudDIiCisgICAgICBdLAorICAg
ICAgImFjdGlvbiI6ICJTQ01QX0FDVF9BTExPVyIsCisgICAgICAiYXJncyI6IFtdLAorICAgICAg
ImNvbW1lbnQiOiAiIiwKKyAgICAgICJpbmNsdWRlcyI6IHsKKyAgICAgICAgImNhcHMiOiBbCisg
ICAgICAgICAgIkNBUF9TWVNfQURNSU4iCisgICAgICAgIF0KKyAgICAgIH0sCisgICAgICAiZXhj
bHVkZXMiOiBudWxsCisgICAgfSwKKyAgICB7CisgICAgICAibmFtZXMiOiBbCisgICAgICAgICJj
bG9uZSIKKyAgICAgIF0sCisgICAgICAiYWN0aW9uIjogIlNDTVBfQUNUX0FMTE9XIiwKKyAgICAg
ICJhcmdzIjogWworICAgICAgICB7CisgICAgICAgICAgImluZGV4IjogMCwKKyAgICAgICAgICAi
dmFsdWUiOiAyMTE0MDYwMjg4LAorICAgICAgICAgICJ2YWx1ZVR3byI6IDAsCisgICAgICAgICAg
Im9wIjogIlNDTVBfQ01QX01BU0tFRF9FUSIKKyAgICAgICAgfQorICAgICAgXSwKKyAgICAgICJj
b21tZW50IjogIiIsCisgICAgICAiaW5jbHVkZXMiOiBudWxsLAorICAgICAgImV4Y2x1ZGVzIjog
eworICAgICAgICAiY2FwcyI6IFsKKyAgICAgICAgICAiQ0FQX1NZU19BRE1JTiIKKyAgICAgICAg
XSwKKyAgICAgICAgImFyY2hlcyI6IFsKKyAgICAgICAgICAiczM5MCIsCisgICAgICAgICAgInMz
OTB4IgorICAgICAgICBdCisgICAgICB9CisgICAgfSwKKyAgICB7CisgICAgICAibmFtZXMiOiBb
CisgICAgICAgICJjbG9uZSIKKyAgICAgIF0sCisgICAgICAiYWN0aW9uIjogIlNDTVBfQUNUX0FM
TE9XIiwKKyAgICAgICJhcmdzIjogWworICAgICAgICB7CisgICAgICAgICAgImluZGV4IjogMSwK
KyAgICAgICAgICAidmFsdWUiOiAyMTE0MDYwMjg4LAorICAgICAgICAgICJ2YWx1ZVR3byI6IDAs
CisgICAgICAgICAgIm9wIjogIlNDTVBfQ01QX01BU0tFRF9FUSIKKyAgICAgICAgfQorICAgICAg
XSwKKyAgICAgICJjb21tZW50IjogInMzOTAgcGFyYW1ldGVyIG9yZGVyaW5nIGZvciBjbG9uZSBp
cyBkaWZmZXJlbnQiLAorICAgICAgImluY2x1ZGVzIjogeworICAgICAgICAiYXJjaGVzIjogWwor
ICAgICAgICAgICJzMzkwIiwKKyAgICAgICAgICAiczM5MHgiCisgICAgICAgIF0KKyAgICAgIH0s
CisgICAgICAiZXhjbHVkZXMiOiB7CisgICAgICAgICJjYXBzIjogWworICAgICAgICAgICJDQVBf
U1lTX0FETUlOIgorICAgICAgICBdCisgICAgICB9CisgICAgfSwKKyAgICB7CisgICAgICAibmFt
ZXMiOiBbCisgICAgICAgICJyZWJvb3QiCisgICAgICBdLAorICAgICAgImFjdGlvbiI6ICJTQ01Q
X0FDVF9BTExPVyIsCisgICAgICAiYXJncyI6IFtdLAorICAgICAgImNvbW1lbnQiOiAiIiwKKyAg
ICAgICJpbmNsdWRlcyI6IHsKKyAgICAgICAgImNhcHMiOiBbCisgICAgICAgICAgIkNBUF9TWVNf
Qk9PVCIKKyAgICAgICAgXQorICAgICAgfSwKKyAgICAgICJleGNsdWRlcyI6IG51bGwKKyAgICB9
LAorICAgIHsKKyAgICAgICJuYW1lcyI6IFsKKyAgICAgICAgImNocm9vdCIKKyAgICAgIF0sCisg
ICAgICAiYWN0aW9uIjogIlNDTVBfQUNUX0FMTE9XIiwKKyAgICAgICJhcmdzIjogW10sCisgICAg
ICAiY29tbWVudCI6ICIiLAorICAgICAgImluY2x1ZGVzIjogeworICAgICAgICAiY2FwcyI6IFsK
KyAgICAgICAgICAiQ0FQX1NZU19DSFJPT1QiCisgICAgICAgIF0KKyAgICAgIH0sCisgICAgICAi
ZXhjbHVkZXMiOiBudWxsCisgICAgfSwKKyAgICB7CisgICAgICAibmFtZXMiOiBbCisgICAgICAg
ICJkZWxldGVfbW9kdWxlIiwKKyAgICAgICAgImluaXRfbW9kdWxlIiwKKyAgICAgICAgImZpbml0
X21vZHVsZSIsCisgICAgICAgICJxdWVyeV9tb2R1bGUiCisgICAgICBdLAorICAgICAgImFjdGlv
biI6ICJTQ01QX0FDVF9BTExPVyIsCisgICAgICAiYXJncyI6IFtdLAorICAgICAgImNvbW1lbnQi
OiAiIiwKKyAgICAgICJpbmNsdWRlcyI6IHsKKyAgICAgICAgImNhcHMiOiBbCisgICAgICAgICAg
IkNBUF9TWVNfTU9EVUxFIgorICAgICAgICBdCisgICAgICB9LAorICAgICAgImV4Y2x1ZGVzIjog
bnVsbAorICAgIH0sCisgICAgeworICAgICAgIm5hbWVzIjogWworICAgICAgICAiYWNjdCIKKyAg
ICAgIF0sCisgICAgICAiYWN0aW9uIjogIlNDTVBfQUNUX0FMTE9XIiwKKyAgICAgICJhcmdzIjog
W10sCisgICAgICAiY29tbWVudCI6ICIiLAorICAgICAgImluY2x1ZGVzIjogeworICAgICAgICAi
Y2FwcyI6IFsKKyAgICAgICAgICAiQ0FQX1NZU19QQUNDVCIKKyAgICAgICAgXQorICAgICAgfSwK
KyAgICAgICJleGNsdWRlcyI6IG51bGwKKyAgICB9LAorICAgIHsKKyAgICAgICJuYW1lcyI6IFsK
KyAgICAgICAgImtjbXAiLAorICAgICAgICAicHJvY2Vzc192bV9yZWFkdiIsCisgICAgICAgICJw
cm9jZXNzX3ZtX3dyaXRldiIsCisgICAgICAgICJwdHJhY2UiCisgICAgICBdLAorICAgICAgImFj
dGlvbiI6ICJTQ01QX0FDVF9BTExPVyIsCisgICAgICAiYXJncyI6IFtdLAorICAgICAgImNvbW1l
bnQiOiAiIiwKKyAgICAgICJpbmNsdWRlcyI6IHsKKyAgICAgICAgImNhcHMiOiBbCisgICAgICAg
ICAgIkNBUF9TWVNfUFRSQUNFIgorICAgICAgICBdCisgICAgICB9LAorICAgICAgImV4Y2x1ZGVz
IjogbnVsbAorICAgIH0sCisgICAgeworICAgICAgIm5hbWVzIjogWworICAgICAgICAiaW9wbCIs
CisgICAgICAgICJpb3Blcm0iCisgICAgICBdLAorICAgICAgImFjdGlvbiI6ICJTQ01QX0FDVF9B
TExPVyIsCisgICAgICAiYXJncyI6IFtdLAorICAgICAgImNvbW1lbnQiOiAiIiwKKyAgICAgICJp
bmNsdWRlcyI6IHsKKyAgICAgICAgImNhcHMiOiBbCisgICAgICAgICAgIkNBUF9TWVNfUkFXSU8i
CisgICAgICAgIF0KKyAgICAgIH0sCisgICAgICAiZXhjbHVkZXMiOiBudWxsCisgICAgfSwKKyAg
ICB7CisgICAgICAibmFtZXMiOiBbCisgICAgICAgICJzZXR0aW1lb2ZkYXkiLAorICAgICAgICAi
c3RpbWUiLAorICAgICAgICAiY2xvY2tfc2V0dGltZSIKKyAgICAgIF0sCisgICAgICAiYWN0aW9u
IjogIlNDTVBfQUNUX0FMTE9XIiwKKyAgICAgICJhcmdzIjogW10sCisgICAgICAiY29tbWVudCI6
ICIiLAorICAgICAgImluY2x1ZGVzIjogeworICAgICAgICAiY2FwcyI6IFsKKyAgICAgICAgICAi
Q0FQX1NZU19USU1FIgorICAgICAgICBdCisgICAgICB9LAorICAgICAgImV4Y2x1ZGVzIjogbnVs
bAorICAgIH0sCisgICAgeworICAgICAgIm5hbWVzIjogWworICAgICAgICAidmhhbmd1cCIKKyAg
ICAgIF0sCisgICAgICAiYWN0aW9uIjogIlNDTVBfQUNUX0FMTE9XIiwKKyAgICAgICJhcmdzIjog
W10sCisgICAgICAiY29tbWVudCI6ICIiLAorICAgICAgImluY2x1ZGVzIjogeworICAgICAgICAi
Y2FwcyI6IFsKKyAgICAgICAgICAiQ0FQX1NZU19UVFlfQ09ORklHIgorICAgICAgICBdCisgICAg
ICB9LAorICAgICAgImV4Y2x1ZGVzIjogbnVsbAorICAgIH0sCisgICAgeworICAgICAgIm5hbWVz
IjogWworICAgICAgICAiZ2V0X21lbXBvbGljeSIsCisgICAgICAgICJtYmluZCIsCisgICAgICAg
ICJzZXRfbWVtcG9saWN5IgorICAgICAgXSwKKyAgICAgICJhY3Rpb24iOiAiU0NNUF9BQ1RfQUxM
T1ciLAorICAgICAgImFyZ3MiOiBbXSwKKyAgICAgICJjb21tZW50IjogIiIsCisgICAgICAiaW5j
bHVkZXMiOiB7CisgICAgICAgICJjYXBzIjogWworICAgICAgICAgICJDQVBfU1lTX05JQ0UiCisg
ICAgICAgIF0KKyAgICAgIH0sCisgICAgICAiZXhjbHVkZXMiOiBudWxsCisgICAgfSwKKyAgICB7
CisgICAgICAibmFtZXMiOiBbCisgICAgICAgICJzeXNsb2ciCisgICAgICBdLAorICAgICAgImFj
dGlvbiI6ICJTQ01QX0FDVF9BTExPVyIsCisgICAgICAiYXJncyI6IFtdLAorICAgICAgImNvbW1l
bnQiOiAiIiwKKyAgICAgICJpbmNsdWRlcyI6IHsKKyAgICAgICAgImNhcHMiOiBbCisgICAgICAg
ICAgIkNBUF9TWVNMT0ciCisgICAgICAgIF0KKyAgICAgIH0sCisgICAgICAiZXhjbHVkZXMiOiBu
dWxsCisgICAgfQorICBdCit9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2RvY2tlci9zdGFydC5zaCBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvZG9ja2VyL3N0YXJ0LnNoCm9sZCBt
b2RlIDEwMDY0NApuZXcgbW9kZSAxMDA3NTUKaW5kZXggMzMyNWJiMjRmNTg3ZGY3MmY3N2M5M2Yw
MWFlNDQ3NzEzY2Q2NDc4MS4uMzQyNzY3MGNjOWZhMTZhMGFlMjNlMmRhMWVjYWZjZmU3NTc4OTA3
MgotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L2RvY2tlci9zdGFydC5zaAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL2RvY2tlci9zdGFydC5zaApAQCAtMSw0NCArMSwyOSBAQAotIyBUaGlz
IHNjcmlwdCBpcyBlbWJlZGRlZCBpbiB0aGUgZG9ja2VyIGltYWdlLCBhbmQgc28gdGhlIGltYWdl
IG11c3QgYmUgdXBkYXRlZCB3aGVuIGNoYW5nZXMKLSMgdG8gdGhlIHNjcmlwdCBhcmUgbWFkZS4g
VG8gZG8gdGhpcywgYXNzdW1pbmcgeW91IGhhdmUgZG9ja2VyIGluc3RhbGxlZDoKLSMgSW4gdG9v
bHMvZG9ja2VyLyA6Ci0jICAgZG9ja2VyIGJ1aWxkIC4KLSMgICBkb2NrZXIgcHMgIyBhbmQgbG9v
ayBmb3IgdGhlIGlkIG9mIHRoZSBpbWFnZSB5b3UganVzdCBidWlsdAotIyAgIGRvY2tlciB0YWcg
PGltYWdlPiA8dGFnPgotIyAgIGRvY2tlciBwdXNoIDx0YWc+Ci0jIFVwZGF0ZSB0aGUgYGltYWdl
YCBzcGVjaWZpZWQgaW4gdGhlIHByb2plY3QncyAudGFza2NsdXN0ZXIueW1sIGZpbGUKLQotCiAj
IS9iaW4vYmFzaAorCiBzZXQgLWV4CiAKIFJFTU9URT0kezE6LWh0dHBzOi8vZ2l0aHViLmNvbS93
ZWItcGxhdGZvcm0tdGVzdHMvd3B0fQotQlJBTkNIPSR7MjotbWFzdGVyfQotUkVWPSR7MzotRkVU
Q0hfSEVBRH0KLUJST1dTRVI9JHs0Oi1hbGx9CitSRUY9JHsyOi1tYXN0ZXJ9CiAKIGNkIH4KIAot
IyBJbml0aWFsbHkgd2UganVzdCBmZXRjaCA1MCBjb21taXRzIGluIG9yZGVyIHRvIHNhdmUgc2V2
ZXJhbCBtaW51dGVzIG9mIGZldGNoaW5nCi1naXQgY2xvbmUgJHtSRU1PVEV9IC0tc2luZ2xlLWJy
YW5jaCAtLWJyYW5jaCAke0JSQU5DSH0gLS1uby1jaGVja291dCAtcSAtLWRlcHRoPTUwIHdlYi1w
bGF0Zm9ybS10ZXN0cwotY2Qgd2ViLXBsYXRmb3JtLXRlc3RzCi1pZiBbWyAhIGBnaXQgcmV2LXBh
cnNlIC0tdmVyaWZ5IC1xICR7UkVWfWAgXV07Ci10aGVuCi0gICAgIyBCdXQgaWYgZm9yIHNvbWUg
cmVhc29uIHRoZSBjb21taXQgdW5kZXIgdGVzdCBpc24ndCBpbiB0aGF0IHJhbmdlLCB3ZSBnaXZl
IGluIGFuZAotICAgICMgZmV0Y2ggZXZlcnl0aGluZwotICAgIGdpdCBmZXRjaCAtcSAtLXVuc2hh
bGxvdyAke1JFTU9URX0KLSAgICBnaXQgcmV2LXBhcnNlIC0tdmVyaWZ5ICR7UkVWfQoraWYgWyAt
ZSAvZGV2L2t2bSBdOyB0aGVuCisgICAgIyBJZiBrdm0gaXMgcHJlc2VudCBlbnN1cmUgdGhhdCB0
aGUgdGVzdCB1c2VyIGNhbiBhY2Nlc3MgaXQKKyAgICAjIElkZWFsbHkgdGhpcyBjb3VsZCBiZSBk
b25lIGJ5IGFkZGluZyB0aGUgdGVzdCB1c2VyIHRvIHRoZQorICAgICMgb3duaW5nIGdyb3VwLCBi
dXQgdGhlbiB3ZSBuZWVkIHRvIHJlLWxvZ2luIHRvIGV2YWx1YXRlIHRoZQorICAgICMgZ3JvdXAg
bWVtYmVyc2hpcC4gVGhpcyBjaG1vZCBkb2Vzbid0IGFmZmVjdCB0aGUgaG9zdC4KKyAgICBzdWRv
IGNobW9kIGErcncgL2Rldi9rdm0KIGZpCi1naXQgY2hlY2tvdXQgLWIgYnVpbGQgJHtSRVZ9CiAK
LXN1ZG8gc2ggLWMgJy4vd3B0IG1ha2UtaG9zdHMtZmlsZSA+PiAvZXRjL2hvc3RzJworaWYgWyAh
IC1kIHdlYi1wbGF0Zm9ybS10ZXN0cyBdOyB0aGVuCisgICAgbWtkaXIgd2ViLXBsYXRmb3JtLXRl
c3RzCisgICAgY2Qgd2ViLXBsYXRmb3JtLXRlc3RzCiAKLWlmIFtbICRCUk9XU0VSID09ICJjaHJv
bWUiKiBdXSB8fCBbWyAiJEJST1dTRVIiID09IGFsbCBdXQotdGhlbgotICAgICMgSW5zdGFsbCBD
aHJvbWUgZGV2Ci0gICAgZGViX2FyY2hpdmU9Z29vZ2xlLWNocm9tZS11bnN0YWJsZV9jdXJyZW50
X2FtZDY0LmRlYgotICAgIHdnZXQgaHR0cHM6Ly9kbC5nb29nbGUuY29tL2xpbnV4L2RpcmVjdC8k
ZGViX2FyY2hpdmUKKyAgICBnaXQgaW5pdAorICAgIGdpdCByZW1vdGUgYWRkIG9yaWdpbiAke1JF
TU9URX0KIAotICAgIHN1ZG8gYXB0LWdldCAtcXF5IHVwZGF0ZSAmJiBzdWRvIGdkZWJpIC1uICRk
ZWJfYXJjaGl2ZQotZmkKKyAgICAjIEluaXRpYWxseSB3ZSBqdXN0IGZldGNoIDUwIGNvbW1pdHMg
aW4gb3JkZXIgdG8gc2F2ZSBzZXZlcmFsIG1pbnV0ZXMgb2YgZmV0Y2hpbmcKKyAgICByZXRyeSBn
aXQgZmV0Y2ggLS1xdWlldCAtLWRlcHRoPTUwIC0tdGFncyBvcmlnaW4gJHtSRUZ9OnRhc2tfaGVh
ZAogCi1zdWRvIFh2ZmIgJERJU1BMQVkgLXNjcmVlbiAwICR7U0NSRUVOX1dJRFRIfXgke1NDUkVF
Tl9IRUlHSFR9eCR7U0NSRUVOX0RFUFRIfSAmCisgICAgZ2l0IGNoZWNrb3V0IC0tcXVpZXQgdGFz
a19oZWFkCitmaQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy9kb2NrZXIvdzNjLWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2RvY2tlci93M2MtaW1wb3J0LmxvZwpk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZWIzN2QwZDQ1NDhlMWE3ZTkzMDRiMmNhZTI0
YWZmODQ1NGZmMGRjZS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAot
LS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2Rv
Y2tlci93M2MtaW1wb3J0LmxvZworKysgL2Rldi9udWxsCkBAIC0xLDE4ICswLDAgQEAKLVRoZSB0
ZXN0cyBpbiB0aGlzIGRpcmVjdG9yeSB3ZXJlIGltcG9ydGVkIGZyb20gdGhlIFczQyByZXBvc2l0
b3J5LgotRG8gTk9UIG1vZGlmeSB0aGVzZSB0ZXN0cyBkaXJlY3RseSBpbiBXZWJLaXQuCi1JbnN0
ZWFkLCBjcmVhdGUgYSBwdWxsIHJlcXVlc3Qgb24gdGhlIFdQVCBnaXRodWI6Ci0JaHR0cHM6Ly9n
aXRodWIuY29tL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQKLQotVGhlbiBydW4gdGhlIFRvb2xzL1Nj
cmlwdHMvaW1wb3J0LXczYy10ZXN0cyBpbiBXZWJLaXQgdG8gcmVpbXBvcnQKLQotRG8gTk9UIG1v
ZGlmeSBvciByZW1vdmUgdGhpcyBmaWxlLgotCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLVByb3BlcnRpZXMg
cmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLVByb3BlcnR5IHZhbHVlcyByZXF1aXJp
bmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1MaXN0IG9mIGZpbGVz
OgotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvZG9j
a2VyL0RvY2tlcmZpbGUKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL2RvY2tlci9zdGFydC5zaApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9mbGFrZTguaW5pIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9mbGFrZTguaW5pCmRlbGV0ZWQg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4NWUyMzA4YWFiYjgyNTZkNTUyNTdkMWY2N2YxZmI4M2M3
MmYwOWEzLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvZmxha2U4Lmlu
aQorKysgL2Rldi9udWxsCkBAIC0xLDIxICswLDAgQEAKLVtmbGFrZThdCi0jIGZsYWtlOCBjb25m
aWcgdXNlZCBpbiB0b29scy90b3guaW5pLCB0b29scy93cHQvdG94LmluaSwgYW5kIHRvb2xzL3dw
dHJ1bm5lci90b3guaW5pCi1zZWxlY3QgPSBFLFcsRixOCi0jIEUxMjg6IGNvbnRpbnVhdGlvbiBs
aW5lIHVuZGVyLWluZGVudGVkIGZvciB2aXN1YWwgaW5kZW50Ci0jIEUxMjk6IHZpc3VhbGx5IGlu
ZGVudGVkIGxpbmUgd2l0aCBzYW1lIGluZGVudCBhcyBuZXh0IGxvZ2ljYWwgbGluZQotIyBFMjIx
OiBtdWx0aXBsZSBzcGFjZXMgYmVmb3JlIG9wZXJhdG9yCi0jIEUyMjY6IG1pc3Npbmcgd2hpdGVz
cGFjZSBhcm91bmQgYXJpdGhtZXRpYyBvcGVyYXRvcgotIyBFMjMxOiBtaXNzaW5nIHdoaXRlc3Bh
Y2UgYWZ0ZXIg4oCYLOKAmSwg4oCYO+KAmSwgb3Ig4oCYOuKAmQotIyBFMjUxOiB1bmV4cGVjdGVk
IHNwYWNlcyBhcm91bmQga2V5d29yZCAvIHBhcmFtZXRlciBlcXVhbHMKLSMgRTI2NTogYmxvY2sg
Y29tbWVudCBzaG91bGQgc3RhcnQgd2l0aCDigJgjIOKAmAotIyBFMzAyOiBleHBlY3RlZCAyIGJs
YW5rIGxpbmVzLCBmb3VuZCAwCi0jIEUzMDM6IHRvbyBtYW55IGJsYW5rIGxpbmVzICgzKQotIyBF
MzA1OiBleHBlY3RlZCAyIGJsYW5rIGxpbmVzIGFmdGVyIGVuZCBvZiBmdW5jdGlvbiBvciBjbGFz
cwotIyBFNDAyOiBtb2R1bGUgbGV2ZWwgaW1wb3J0IG5vdCBhdCB0b3Agb2YgZmlsZQotIyBFNzMx
OiBkbyBub3QgYXNzaWduIGEgbGFtYmRhIGV4cHJlc3Npb24sIHVzZSBhIGRlZgotIyBFOTAxOiBT
eW50YXhFcnJvciBvciBJbmRlbnRhdGlvbkVycm9yCi0jIFc2MDE6IC5oYXNfa2V5KCkgaXMgZGVw
cmVjYXRlZCwgdXNlIOKAmGlu4oCZCi0jIE44MDE6IGNsYXNzIG5hbWVzIHNob3VsZCB1c2UgQ2Fw
V29yZHMgY29udmVudGlvbgotIyBOODAyOiBmdW5jdGlvbiBuYW1lIHNob3VsZCBiZSBsb3dlcmNh
c2UKLWlnbm9yZSA9IEUxMjgsRTEyOSxFMjIxLEUyMjYsRTIzMSxFMjUxLEUyNjUsRTMwMixFMzAz
LEUzMDUsRTQwMixFNzMxLEU5MDEsVzYwMSxOODAxLE44MDIKLW1heC1saW5lLWxlbmd0aCA9IDE0
MQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy9naXRpZ25vcmUvX19pbml0X18ucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2dpdGlnbm9yZS9fX2luaXRfXy5weQppbmRleCBhNjgz
NGI4Mjg1YTU2YmVmMGUxNTQzZmQ5MDFjN2U2ZjJmOGJjMjAyLi5lNjlkZTI5YmIyZDFkNjQzNGI4
YjI5YWU3NzVhZDhjMmU0OGM1MzkxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2dpdGlnbm9yZS9fX2luaXRfXy5weQorKysgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2dpdGlnbm9y
ZS9fX2luaXRfXy5weQpAQCAtMSArMCwwIEBACi0jIFRoaXMgZmlsZSBpcyByZXF1aXJlZCBmb3Ig
UHl0aG9uIHRvIHNlYXJjaCB0aGlzIGRpcmVjdG9yeSBmb3IgbW9kdWxlcy4KXCBObyBuZXdsaW5l
IGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2dpdGlnbm9yZS9naXRpZ25vcmUucHkgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2dpdGlnbm9yZS9naXRpZ25v
cmUucHkKaW5kZXggODcwMmNlYzdkYjVmOGMxMjE0NGNmOWZjNzBiZWM1YTI2NzAxNDNlYy4uZDVl
YTRhNmE4ZjNkNjRkNGFiYTNiOGRjYmU1ZmZlODQ5Yjc0ZTk2OSAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9naXRpZ25vcmUvZ2l0
aWdub3JlLnB5CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvZ2l0aWdub3JlL2dpdGlnbm9yZS5weQpAQCAtMSwyMSArMSw0NyBAQAogaW1wb3J0
IHJlCiBpbXBvcnQgb3MKK2ltcG9ydCBpdGVydG9vbHMKK2Zyb20gc2l4IGltcG9ydCBpdGVydmFs
dWVzLCBpdGVyaXRlbXMKK2Zyb20gY29sbGVjdGlvbnMgaW1wb3J0IGRlZmF1bHRkaWN0CisKK01Z
UFkgPSBGYWxzZQoraWYgTVlQWToKKyAgICAjIE1ZUFkgaXMgc2V0IHRvIFRydWUgd2hlbiBydW4g
dW5kZXIgTXlweS4KKyAgICBmcm9tIHR5cGluZyBpbXBvcnQgQW55CisgICAgZnJvbSB0eXBpbmcg
aW1wb3J0IERpY3QKKyAgICBmcm9tIHR5cGluZyBpbXBvcnQgSXRlcmFibGUKKyAgICBmcm9tIHR5
cGluZyBpbXBvcnQgTGlzdAorICAgIGZyb20gdHlwaW5nIGltcG9ydCBNdXRhYmxlTWFwcGluZwor
ICAgIGZyb20gdHlwaW5nIGltcG9ydCBPcHRpb25hbAorICAgIGZyb20gdHlwaW5nIGltcG9ydCBQ
YXR0ZXJuCisgICAgZnJvbSB0eXBpbmcgaW1wb3J0IFR1cGxlCisgICAgZnJvbSB0eXBpbmcgaW1w
b3J0IFR5cGVWYXIKKyAgICBmcm9tIHR5cGluZyBpbXBvcnQgVW5pb24KKyAgICBmcm9tIHR5cGlu
ZyBpbXBvcnQgY2FzdAorCisgICAgVCA9IFR5cGVWYXIoJ1QnKQorCiAKIGVuZF9zcGFjZSA9IHJl
LmNvbXBpbGUociIoW15cXF1ccykqJCIpCiAKIAotZGVmIGZubWF0Y2hfdHJhbnNsYXRlKHBhdCwg
cGF0aF9uYW1lPUZhbHNlKToKK2RlZiBmbm1hdGNoX3RyYW5zbGF0ZShwYXQpOgorICAgICMgdHlw
ZTogKHN0cikgLT4gVHVwbGVbYm9vbCwgUGF0dGVybltzdHJdXQogICAgIHBhcnRzID0gW10KLSAg
ICBzZXEgPSBGYWxzZQorICAgIHNlcSA9IE5vbmUKICAgICBpID0gMAotICAgIGlmIHBhdFswXSA9
PSAiLyIgb3IgcGF0aF9uYW1lOgorICAgIGFueV9jaGFyID0gIlteL10iCisgICAgaWYgcGF0WzBd
ID09ICIvIjoKICAgICAgICAgcGFydHMuYXBwZW5kKCJeIikKLSAgICAgICAgYW55X2NoYXIgPSAi
W14vXSIKLSAgICAgICAgaWYgcGF0WzBdID09ICIvIjoKLSAgICAgICAgICAgIHBhdCA9IHBhdFsx
Ol0KKyAgICAgICAgcGF0ID0gcGF0WzE6XQogICAgIGVsc2U6Ci0gICAgICAgIGFueV9jaGFyID0g
Ii4iCisgICAgICAgICMgQnkgZGVmYXVsdCBtYXRjaCB0aGUgZW50aXJlIHBhdGggdXAgdG8gYSAv
CisgICAgICAgICMgYnV0IGlmIC8gZG9lc24ndCBhcHBlYXIgaW4gdGhlIHBhdHRlcm4gd2Ugd2ls
bCBtYXJrIGlzIGFzCisgICAgICAgICMgYSBuYW1lIHBhdHRlcm4gYW5kIGp1c3QgcHJvZHVjZSBh
IHBhdHRlcm4gdGhhdCBtYXRjaGVzIGFnYWluc3QKKyAgICAgICAgIyB0aGUgZmlsZW5hbWUKICAg
ICAgICAgcGFydHMuYXBwZW5kKCJeKD86LiovKT8iKQorCisgICAgbmFtZV9wYXR0ZXJuID0gVHJ1
ZQogICAgIGlmIHBhdFstMV0gPT0gIi8iOgogICAgICAgICAjIElmIHRoZSBsYXN0IGNoYXJhY3Rl
ciBpcyAvIG1hdGNoIHRoaXMgZGlyZWN0b3J5IG9yIGFueSBzdWJkaXJlY3RvcnkKICAgICAgICAg
cGF0ID0gcGF0WzotMV0KQEAgLTMxLDExICs1NywxMCBAQCBkZWYgZm5tYXRjaF90cmFuc2xhdGUo
cGF0LCBwYXRoX25hbWU9RmFsc2UpOgogICAgICAgICAgICAgICAgIHBhcnRzLmFwcGVuZChyZS5l
c2NhcGUoYykpCiAgICAgICAgICAgICBlbHNlOgogICAgICAgICAgICAgICAgIHJhaXNlIFZhbHVl
RXJyb3IKLSAgICAgICAgZWxpZiBzZXE6CisgICAgICAgIGVsaWYgc2VxIGlzIG5vdCBOb25lOgor
ICAgICAgICAgICAgIyBUT0RPOiB0aGlzIGRvZXNuJ3QgcmVhbGx5IGhhbmRsZSBpbnZhbGlkIHNl
cXVlbmNlcyBpbiB0aGUgcmlnaHQgd2F5CiAgICAgICAgICAgICBpZiBjID09ICJdIjoKLSAgICAg
ICAgICAgICAgICBzZXEgPSBGYWxzZQotICAgICAgICAgICAgICAgICMgRmlyc3QgdHdvIGNhc2Vz
IGFyZSB0byBkZWFsIHdpdGggdGhlIGNhc2Ugd2hlcmUgLyBpcyB0aGUgb25seSBjaGFyYWN0ZXIK
LSAgICAgICAgICAgICAgICAjIGluIHRoZSBzZXF1ZW5jZSBidXQgcGF0aF9uYW1lIGlzIFRydWUg
c28gaXQgc2hvdWxkbid0IG1hdGNoIGFueXRoaW5nCisgICAgICAgICAgICAgICAgc2VxID0gTm9u
ZQogICAgICAgICAgICAgICAgIGlmIHBhcnRzWy0xXSA9PSAiWyI6CiAgICAgICAgICAgICAgICAg
ICAgIHBhcnRzID0gcGFydHNbOi0xXQogICAgICAgICAgICAgICAgIGVsaWYgcGFydHNbLTFdID09
ICJeIiBhbmQgcGFydHNbLTJdID09ICJbIjoKQEAgLTQ0LDQxICs2OSw1MyBAQCBkZWYgZm5tYXRj
aF90cmFuc2xhdGUocGF0LCBwYXRoX25hbWU9RmFsc2UpOgogICAgICAgICAgICAgICAgICAgICBw
YXJ0cy5hcHBlbmQoYykKICAgICAgICAgICAgIGVsaWYgYyA9PSAiLSI6CiAgICAgICAgICAgICAg
ICAgcGFydHMuYXBwZW5kKGMpCi0gICAgICAgICAgICBlbGlmIG5vdCAocGF0aF9uYW1lIGFuZCBj
ID09ICIvIik6CisgICAgICAgICAgICBlbHNlOgogICAgICAgICAgICAgICAgIHBhcnRzICs9IHJl
LmVzY2FwZShjKQogICAgICAgICBlbGlmIGMgPT0gIlsiOgogICAgICAgICAgICAgcGFydHMuYXBw
ZW5kKCJbIikKICAgICAgICAgICAgIGlmIGkgPCBsZW4ocGF0KSAtIDEgYW5kIHBhdFtpKzFdIGlu
ICgiISIsICJeIik6CiAgICAgICAgICAgICAgICAgcGFydHMuYXBwZW5kKCJeIikKICAgICAgICAg
ICAgICAgICBpICs9IDEKLSAgICAgICAgICAgIHNlcSA9IFRydWUKKyAgICAgICAgICAgIHNlcSA9
IGkKICAgICAgICAgZWxpZiBjID09ICIqIjoKICAgICAgICAgICAgIGlmIGkgPCBsZW4ocGF0KSAt
IDEgYW5kIHBhdFtpKzFdID09ICIqIjoKLSAgICAgICAgICAgICAgICBwYXJ0cy5hcHBlbmQoYW55
X2NoYXIgKyAiKiIpCisgICAgICAgICAgICAgICAgaWYgaSA+IDAgYW5kIHBhdFtpLTFdICE9ICIv
IjoKKyAgICAgICAgICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcgorICAgICAgICAgICAgICAg
IHBhcnRzLmFwcGVuZCgiLioiKQogICAgICAgICAgICAgICAgIGkgKz0gMQotICAgICAgICAgICAg
ICAgIGlmIGkgPCBsZW4ocGF0KSAtIDEgYW5kIHBhdFtpKzFdID09ICIqIjoKKyAgICAgICAgICAg
ICAgICBpZiBpIDwgbGVuKHBhdCkgLSAxIGFuZCBwYXRbaSsxXSAhPSAiLyI6CiAgICAgICAgICAg
ICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IKICAgICAgICAgICAgIGVsc2U6CiAgICAgICAgICAg
ICAgICAgcGFydHMuYXBwZW5kKGFueV9jaGFyICsgIioiKQogICAgICAgICBlbGlmIGMgPT0gIj8i
OgogICAgICAgICAgICAgcGFydHMuYXBwZW5kKGFueV9jaGFyKQorICAgICAgICBlbGlmIGMgPT0g
Ii8iIGFuZCBub3Qgc2VxOgorICAgICAgICAgICAgbmFtZV9wYXR0ZXJuID0gRmFsc2UKKyAgICAg
ICAgICAgIHBhcnRzLmFwcGVuZChjKQogICAgICAgICBlbHNlOgogICAgICAgICAgICAgcGFydHMu
YXBwZW5kKHJlLmVzY2FwZShjKSkKICAgICAgICAgaSArPSAxCiAKLSAgICBpZiBzZXE6CisgICAg
aWYgbmFtZV9wYXR0ZXJuOgorICAgICAgICBwYXJ0c1swXSA9ICJeIgorCisgICAgaWYgc2VxIGlz
IG5vdCBOb25lOgogICAgICAgICByYWlzZSBWYWx1ZUVycm9yCiAgICAgcGFydHMuYXBwZW5kKHN1
ZmZpeCkKICAgICB0cnk6Ci0gICAgICAgIHJldHVybiByZS5jb21waWxlKCIiLmpvaW4ocGFydHMp
KQorICAgICAgICByZXR1cm4gbmFtZV9wYXR0ZXJuLCByZS5jb21waWxlKCIiLmpvaW4ocGFydHMp
KQogICAgIGV4Y2VwdCBFeGNlcHRpb246Ci0gICAgICAgIHJhaXNlCisgICAgICAgIHJhaXNlIFZh
bHVlRXJyb3IKKworIyBSZWdleHAgbWF0Y2hpbmcgcnVsZXMgdGhhdCBoYXZlIHRvIGJlIGNvbnZl
cnRlZCB0byBwYXR0ZXJucworcGF0dGVybl9yZSA9IHJlLmNvbXBpbGUociIuKltcKlxbXD9dIikK
IAogCiBkZWYgcGFyc2VfbGluZShsaW5lKToKKyAgICAjIHR5cGU6IChzdHIpIC0+IE9wdGlvbmFs
W1R1cGxlW2Jvb2wsIGJvb2wsIGJvb2wsIFVuaW9uW1R1cGxlW3N0ciwgLi4uXSwgVHVwbGVbYm9v
bCwgUGF0dGVybltzdHJdXV1dXQogICAgIGxpbmUgPSBsaW5lLnJzdHJpcCgpCiAgICAgaWYgbm90
IGxpbmUgb3IgbGluZVswXSA9PSAiIyI6Ci0gICAgICAgIHJldHVybgorICAgICAgICByZXR1cm4g
Tm9uZQogCiAgICAgaW52ZXJ0ID0gbGluZVswXSA9PSAiISIKICAgICBpZiBpbnZlcnQ6CkBAIC04
OSwxMyArMTI2LDIyIEBAIGRlZiBwYXJzZV9saW5lKGxpbmUpOgogICAgIGlmIGRpcl9vbmx5Ogog
ICAgICAgICBsaW5lID0gbGluZVs6LTFdCiAKLSAgICByZXR1cm4gaW52ZXJ0LCBkaXJfb25seSwg
Zm5tYXRjaF90cmFuc2xhdGUobGluZSwgZGlyX29ubHkpCisgICAgIyBDb3VsZCBtYWtlIGEgc3Bl
Y2lhbCBjYXNlIGZvciAqKi9mb28sIGJ1dCB3ZSBkb24ndCBoYXZlIGFueSBwYXR0ZXJucyBsaWtl
IHRoYXQKKyAgICBpZiBub3QgaW52ZXJ0IGFuZCBub3QgcGF0dGVybl9yZS5tYXRjaChsaW5lKToK
KyAgICAgICAgbGl0ZXJhbCA9IFRydWUKKyAgICAgICAgcGF0dGVybiA9IHR1cGxlKGxpbmUucnNw
bGl0KCIvIiwgMSkpICAjIHR5cGU6IFVuaW9uW1R1cGxlW3N0ciwgLi4uXSwgVHVwbGVbYm9vbCwg
UGF0dGVybltzdHJdXV0KKyAgICBlbHNlOgorICAgICAgICBwYXR0ZXJuID0gZm5tYXRjaF90cmFu
c2xhdGUobGluZSkKKyAgICAgICAgbGl0ZXJhbCA9IEZhbHNlCisKKyAgICByZXR1cm4gaW52ZXJ0
LCBkaXJfb25seSwgbGl0ZXJhbCwgcGF0dGVybgogCiAKIGNsYXNzIFBhdGhGaWx0ZXIob2JqZWN0
KToKLSAgICBkZWYgX19pbml0X18oc2VsZiwgcm9vdCwgZXh0cmFzPU5vbmUpOgorICAgIGRlZiBf
X2luaXRfXyhzZWxmLCByb290LCBleHRyYXM9Tm9uZSwgY2FjaGU9Tm9uZSk6CisgICAgICAgICMg
dHlwZTogKHN0ciwgT3B0aW9uYWxbTGlzdFtzdHJdXSwgT3B0aW9uYWxbTXV0YWJsZU1hcHBpbmdb
c3RyLCBib29sXV0pIC0+IE5vbmUKICAgICAgICAgaWYgcm9vdDoKLSAgICAgICAgICAgIGlnbm9y
ZV9wYXRoID0gb3MucGF0aC5qb2luKHJvb3QsICIuZ2l0aWdub3JlIikKKyAgICAgICAgICAgIGln
bm9yZV9wYXRoID0gb3MucGF0aC5qb2luKHJvb3QsICIuZ2l0aWdub3JlIikgICMgdHlwZTogT3B0
aW9uYWxbc3RyXQogICAgICAgICBlbHNlOgogICAgICAgICAgICAgaWdub3JlX3BhdGggPSBOb25l
CiAgICAgICAgIGlmIG5vdCBpZ25vcmVfcGF0aCBhbmQgbm90IGV4dHJhczoKQEAgLTEwMyw1MSAr
MTQ5LDEzOSBAQCBjbGFzcyBQYXRoRmlsdGVyKG9iamVjdCk6CiAgICAgICAgICAgICByZXR1cm4K
ICAgICAgICAgc2VsZi50cml2aWFsID0gRmFsc2UKIAotICAgICAgICBzZWxmLnJ1bGVzX2ZpbGUg
PSBbXQotICAgICAgICBzZWxmLnJ1bGVzX2RpciA9IFtdCisgICAgICAgIHNlbGYubGl0ZXJhbHNf
ZmlsZSA9IGRlZmF1bHRkaWN0KGRpY3QpICAjIHR5cGU6IERpY3RbT3B0aW9uYWxbc3RyXSwgRGlj
dFtzdHIsIExpc3RbVHVwbGVbYm9vbCwgUGF0dGVybltzdHJdXV1dXQorICAgICAgICBzZWxmLmxp
dGVyYWxzX2RpciA9IGRlZmF1bHRkaWN0KGRpY3QpICAjIHR5cGU6IERpY3RbT3B0aW9uYWxbc3Ry
XSwgRGljdFtzdHIsIExpc3RbVHVwbGVbYm9vbCwgUGF0dGVybltzdHJdXV1dXQorICAgICAgICBz
ZWxmLnBhdHRlcm5zX2ZpbGUgPSBbXSAgIyB0eXBlOiBMaXN0W1R1cGxlW1R1cGxlW2Jvb2wsIFBh
dHRlcm5bc3RyXV0sIExpc3RbVHVwbGVbYm9vbCwgUGF0dGVybltzdHJdXV1dXQorICAgICAgICBz
ZWxmLnBhdHRlcm5zX2RpciA9IFtdICAjIHR5cGU6IExpc3RbVHVwbGVbVHVwbGVbYm9vbCwgUGF0
dGVybltzdHJdXSwgTGlzdFtUdXBsZVtib29sLCBQYXR0ZXJuW3N0cl1dXV1dCisgICAgICAgIHNl
bGYuY2FjaGUgPSBjYWNoZSBvciB7fSAgIyB0eXBlOiBNdXRhYmxlTWFwcGluZ1tzdHIsIGJvb2xd
CiAKICAgICAgICAgaWYgZXh0cmFzIGlzIE5vbmU6CiAgICAgICAgICAgICBleHRyYXMgPSBbXQog
CiAgICAgICAgIGlmIGlnbm9yZV9wYXRoIGFuZCBvcy5wYXRoLmV4aXN0cyhpZ25vcmVfcGF0aCk6
Ci0gICAgICAgICAgICBzZWxmLl9yZWFkX2lnbm9yZShpZ25vcmVfcGF0aCkKLQotICAgICAgICBm
b3IgaXRlbSBpbiBleHRyYXM6Ci0gICAgICAgICAgICBzZWxmLl9yZWFkX2xpbmUoaXRlbSkKKyAg
ICAgICAgICAgIGFyZ3MgPSBpZ25vcmVfcGF0aCwgZXh0cmFzICAjIHR5cGU6IFR1cGxlW09wdGlv
bmFsW3N0cl0sIExpc3Rbc3RyXV0KKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIGFyZ3MgPSBO
b25lLCBleHRyYXMKKyAgICAgICAgc2VsZi5fcmVhZF9pZ25vcmUoKmFyZ3MpCiAKLSAgICBkZWYg
X3JlYWRfaWdub3JlKHNlbGYsIGlnbm9yZV9wYXRoKToKLSAgICAgICAgd2l0aCBvcGVuKGlnbm9y
ZV9wYXRoKSBhcyBmOgotICAgICAgICAgICAgZm9yIGxpbmUgaW4gZjoKLSAgICAgICAgICAgICAg
ICBzZWxmLl9yZWFkX2xpbmUobGluZSkKKyAgICBkZWYgX3JlYWRfaWdub3JlKHNlbGYsIGlnbm9y
ZV9wYXRoLCBleHRyYXMpOgorICAgICAgICAjIHR5cGU6IChPcHRpb25hbFtzdHJdLCBMaXN0W3N0
cl0pIC0+IE5vbmUKKyAgICAgICAgaWYgaWdub3JlX3BhdGggaXMgbm90IE5vbmU6CisgICAgICAg
ICAgICB3aXRoIG9wZW4oaWdub3JlX3BhdGgpIGFzIGY6CisgICAgICAgICAgICAgICAgZm9yIGxp
bmUgaW4gZjoKKyAgICAgICAgICAgICAgICAgICAgc2VsZi5fcmVhZF9saW5lKGxpbmUpCisgICAg
ICAgIGZvciBsaW5lIGluIGV4dHJhczoKKyAgICAgICAgICAgIHNlbGYuX3JlYWRfbGluZShsaW5l
KQogCiAgICAgZGVmIF9yZWFkX2xpbmUoc2VsZiwgbGluZSk6CisgICAgICAgICMgdHlwZTogKHN0
cikgLT4gTm9uZQogICAgICAgICBwYXJzZWQgPSBwYXJzZV9saW5lKGxpbmUpCiAgICAgICAgIGlm
IG5vdCBwYXJzZWQ6CiAgICAgICAgICAgICByZXR1cm4KLSAgICAgICAgaW52ZXJ0LCBkaXJfb25s
eSwgcmVnZXhwID0gcGFyc2VkCi0gICAgICAgIGlmIGRpcl9vbmx5OgotICAgICAgICAgICAgc2Vs
Zi5ydWxlc19kaXIuYXBwZW5kKChyZWdleHAsIGludmVydCkpCisgICAgICAgIGludmVydCwgZGly
X29ubHksIGxpdGVyYWwsIHJ1bGUgPSBwYXJzZWQKKworICAgICAgICBpZiBpbnZlcnQ6CisgICAg
ICAgICAgICAjIEZvciBleGNsdWRlIHJ1bGVzLCB3ZSBhdHRhY2ggdGhlIHJ1bGVzIHRvIGFsbCBw
cmVjZWVkaW5nIHBhdHRlcm5zLCBzbworICAgICAgICAgICAgIyB0aGF0IHdlIGNhbiBtYXRjaCBw
YXR0ZXJucyBvdXQgb2Ygb3JkZXIgYW5kIGNoZWNrIGlmIHRoZXkgd2VyZSBsYXRlcgorICAgICAg
ICAgICAgIyBvdmVycmlkZW4gYnkgYW4gZXhjbHVkZSBydWxlCisgICAgICAgICAgICBhc3NlcnQg
bm90IGxpdGVyYWwKKyAgICAgICAgICAgIGlmIE1ZUFk6CisgICAgICAgICAgICAgICAgcnVsZSA9
IGNhc3QoVHVwbGVbYm9vbCwgUGF0dGVybltzdHJdXSwgcnVsZSkKKyAgICAgICAgICAgIGlmIG5v
dCBkaXJfb25seToKKyAgICAgICAgICAgICAgICBydWxlc19pdGVyID0gaXRlcnRvb2xzLmNoYWlu
KAorICAgICAgICAgICAgICAgICAgICBpdGVydG9vbHMuY2hhaW4oKihpdGVyaXRlbXMoaXRlbSkg
Zm9yIGl0ZW0gaW4gaXRlcnZhbHVlcyhzZWxmLmxpdGVyYWxzX2RpcikpKSwKKyAgICAgICAgICAg
ICAgICAgICAgaXRlcnRvb2xzLmNoYWluKCooaXRlcml0ZW1zKGl0ZW0pIGZvciBpdGVtIGluIGl0
ZXJ2YWx1ZXMoc2VsZi5saXRlcmFsc19maWxlKSkpLAorICAgICAgICAgICAgICAgICAgICBzZWxm
LnBhdHRlcm5zX2RpciwKKyAgICAgICAgICAgICAgICAgICAgc2VsZi5wYXR0ZXJuc19maWxlKSAg
IyB0eXBlOiBJdGVyYWJsZVtUdXBsZVtBbnksIExpc3RbVHVwbGVbYm9vbCwgUGF0dGVybltzdHJd
XV1dXQorICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICBydWxlc19pdGVyID0gaXRl
cnRvb2xzLmNoYWluKAorICAgICAgICAgICAgICAgICAgICBpdGVydG9vbHMuY2hhaW4oKihpdGVy
aXRlbXMoaXRlbSkgZm9yIGl0ZW0gaW4gaXRlcnZhbHVlcyhzZWxmLmxpdGVyYWxzX2RpcikpKSwK
KyAgICAgICAgICAgICAgICAgICAgc2VsZi5wYXR0ZXJuc19kaXIpCisKKyAgICAgICAgICAgIGZv
ciBydWxlcyBpbiBydWxlc19pdGVyOgorICAgICAgICAgICAgICAgIHJ1bGVzWzFdLmFwcGVuZChy
dWxlKQogICAgICAgICBlbHNlOgotICAgICAgICAgICAgc2VsZi5ydWxlc19maWxlLmFwcGVuZCgo
cmVnZXhwLCBpbnZlcnQpKQorICAgICAgICAgICAgaWYgbGl0ZXJhbDoKKyAgICAgICAgICAgICAg
ICBpZiBNWVBZOgorICAgICAgICAgICAgICAgICAgICBydWxlID0gY2FzdChUdXBsZVtzdHIsIC4u
Ll0sIHJ1bGUpCisgICAgICAgICAgICAgICAgaWYgbGVuKHJ1bGUpID09IDE6CisgICAgICAgICAg
ICAgICAgICAgIGRpcl9uYW1lLCBwYXR0ZXJuID0gTm9uZSwgcnVsZVswXSAgIyB0eXBlOiBUdXBs
ZVtPcHRpb25hbFtzdHJdLCBzdHJdCisgICAgICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAg
ICAgICAgICAgZGlyX25hbWUsIHBhdHRlcm4gPSBydWxlCisgICAgICAgICAgICAgICAgc2VsZi5s
aXRlcmFsc19kaXJbZGlyX25hbWVdW3BhdHRlcm5dID0gW10KKyAgICAgICAgICAgICAgICBpZiBu
b3QgZGlyX29ubHk6CisgICAgICAgICAgICAgICAgICAgIHNlbGYubGl0ZXJhbHNfZmlsZVtkaXJf
bmFtZV1bcGF0dGVybl0gPSBbXQorICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICBp
ZiBNWVBZOgorICAgICAgICAgICAgICAgICAgICBydWxlID0gY2FzdChUdXBsZVtib29sLCBQYXR0
ZXJuW3N0cl1dLCBydWxlKQorICAgICAgICAgICAgICAgIHNlbGYucGF0dGVybnNfZGlyLmFwcGVu
ZCgocnVsZSwgW10pKQorICAgICAgICAgICAgICAgIGlmIG5vdCBkaXJfb25seToKKyAgICAgICAg
ICAgICAgICAgICAgc2VsZi5wYXR0ZXJuc19maWxlLmFwcGVuZCgocnVsZSwgW10pKQogCi0gICAg
ZGVmIF9fY2FsbF9fKHNlbGYsIHBhdGgpOgotICAgICAgICBpZiBvcy5wYXRoLnNlcCAhPSAiLyI6
Ci0gICAgICAgICAgICBwYXRoID0gcGF0aC5yZXBsYWNlKG9zLnBhdGguc2VwLCAiLyIpCisgICAg
ZGVmIGZpbHRlcihzZWxmLAorICAgICAgICAgICAgICAgaXRlcmF0b3IgICMgdHlwZTogSXRlcmFi
bGVbVHVwbGVbc3RyLCBMaXN0W1R1cGxlW3N0ciwgVF1dLCBMaXN0W1R1cGxlW3N0ciwgVF1dXV0K
KyAgICAgICAgICAgICAgICk6CisgICAgICAgICMgdHlwZTogKC4uLikgLT4gSXRlcmFibGVbVHVw
bGVbc3RyLCBMaXN0W1R1cGxlW3N0ciwgVF1dLCBMaXN0W1R1cGxlW3N0ciwgVF1dXV0KKyAgICAg
ICAgZW1wdHkgPSB7fSAgIyB0eXBlOiBEaWN0W0FueSwgQW55XQorICAgICAgICBmb3IgZGlycGF0
aCwgZGlybmFtZXMsIGZpbGVuYW1lcyBpbiBpdGVyYXRvcjoKKyAgICAgICAgICAgIG9yaWdfZGly
cGF0aCA9IGRpcnBhdGgKKyAgICAgICAgICAgIGlmIG9zLnBhdGguc2VwICE9ICIvIjoKKyAgICAg
ICAgICAgICAgICBkaXJwYXRoID0gZGlycGF0aC5yZXBsYWNlKG9zLnBhdGguc2VwLCAiLyIpCiAK
KyAgICAgICAgICAgIGtlZXBfZGlycyA9IFtdICAjIHR5cGU6IExpc3RbVHVwbGVbc3RyLCBUXV0K
KyAgICAgICAgICAgIGtlZXBfZmlsZXMgPSBbXSAgIyB0eXBlOiBMaXN0W1R1cGxlW3N0ciwgVF1d
CisKKyAgICAgICAgICAgIGZvciBpdGVyX2l0ZW1zLCBsaXRlcmFscywgcGF0dGVybnMsIHRhcmdl
dCwgc3VmZml4IGluIFsKKyAgICAgICAgICAgICAgICAgICAgKGRpcm5hbWVzLCBzZWxmLmxpdGVy
YWxzX2Rpciwgc2VsZi5wYXR0ZXJuc19kaXIsIGtlZXBfZGlycywgIi8iKSwKKyAgICAgICAgICAg
ICAgICAgICAgKGZpbGVuYW1lcywgc2VsZi5saXRlcmFsc19maWxlLCBzZWxmLnBhdHRlcm5zX2Zp
bGUsIGtlZXBfZmlsZXMsICIiKV06CisgICAgICAgICAgICAgICAgZm9yIGl0ZW0gaW4gaXRlcl9p
dGVtczoKKyAgICAgICAgICAgICAgICAgICAgbmFtZSA9IGl0ZW1bMF0KKyAgICAgICAgICAgICAg
ICAgICAgaWYgZGlycGF0aDoKKyAgICAgICAgICAgICAgICAgICAgICAgIHBhdGggPSAiJXMvJXMi
ICUgKGRpcnBhdGgsIG5hbWUpICsgc3VmZml4CisgICAgICAgICAgICAgICAgICAgIGVsc2U6Cisg
ICAgICAgICAgICAgICAgICAgICAgICBwYXRoID0gbmFtZSArIHN1ZmZpeAorICAgICAgICAgICAg
ICAgICAgICBpZiBwYXRoIGluIHNlbGYuY2FjaGU6CisgICAgICAgICAgICAgICAgICAgICAgICBp
ZiBub3Qgc2VsZi5jYWNoZVtwYXRoXToKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YXJn
ZXQuYXBwZW5kKGl0ZW0pCisgICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZQorICAgICAg
ICAgICAgICAgICAgICBmb3IgcnVsZV9kaXIgaW4gW05vbmUsIGRpcnBhdGhdOgorICAgICAgICAg
ICAgICAgICAgICAgICAgaWYgbmFtZSBpbiBsaXRlcmFscy5nZXQocnVsZV9kaXIsIGVtcHR5KToK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICBleGNsdWRlID0gbGl0ZXJhbHNbcnVsZV9kaXJd
W25hbWVdCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgbm90IGFueShydWxlLm1hdGNo
KG5hbWUgaWYgbmFtZV9vbmx5IGVsc2UgcGF0aCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGZvciBuYW1lX29ubHksIHJ1bGUgaW4gZXhjbHVkZSk6CisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICMgU2tpcCB0aGlzIGl0ZW0KKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgc2VsZi5jYWNoZVtwYXRoXSA9IFRydWUKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgYnJlYWsKKyAgICAgICAgICAgICAgICAgICAgZWxzZToKKyAgICAgICAg
ICAgICAgICAgICAgICAgIGZvciAoY29tcG9uZW50X29ubHksIHBhdHRlcm4pLCBleGNsdWRlIGlu
IHBhdHRlcm5zOgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIGNvbXBvbmVudF9vbmx5
OgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXRjaCA9IHBhdHRlcm4ubWF0Y2go
bmFtZSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBtYXRjaCA9IHBhdHRlcm4ubWF0Y2gocGF0aCkKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBpZiBtYXRjaDoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgaWYgbm90IGFueShydWxlLm1hdGNoKG5hbWUgaWYgbmFtZV9vbmx5IGVsc2UgcGF0aCkKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3IgbmFtZV9vbmx5LCBy
dWxlIGluIGV4Y2x1ZGUpOgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBT
a2lwIHRoaXMgaXRlbQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5j
YWNoZVtwYXRoXSA9IFRydWUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJy
ZWFrCisgICAgICAgICAgICAgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHNlbGYuY2FjaGVbcGF0aF0gPSBGYWxzZQorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHRhcmdldC5hcHBlbmQoaXRlbSkKKworICAgICAgICAgICAgZGlybmFtZXNbOl0gPSBrZWVw
X2RpcnMKKyAgICAgICAgICAgIGFzc2VydCAiLmdpdCIgbm90IGluIGRpcm5hbWVzCisgICAgICAg
ICAgICB5aWVsZCBvcmlnX2RpcnBhdGgsIGRpcm5hbWVzLCBrZWVwX2ZpbGVzCisKKyAgICBkZWYg
X19jYWxsX18oc2VsZiwKKyAgICAgICAgICAgICAgICAgaXRlcmF0b3IgICMgdHlwZTogSXRlcmFi
bGVbVHVwbGVbc3RyLCBMaXN0W1R1cGxlW3N0ciwgVF1dLCBMaXN0W1R1cGxlW3N0ciwgVF1dXV0K
KyAgICAgICAgICAgICAgICAgKToKKyAgICAgICAgIyB0eXBlOiAoLi4uKSAtPiBJdGVyYWJsZVtU
dXBsZVtzdHIsIExpc3RbVHVwbGVbc3RyLCBUXV0sIExpc3RbVHVwbGVbc3RyLCBUXV1dXQogICAg
ICAgICBpZiBzZWxmLnRyaXZpYWw6Ci0gICAgICAgICAgICByZXR1cm4gVHJ1ZQorICAgICAgICAg
ICAgcmV0dXJuIGl0ZXJhdG9yCiAKLSAgICAgICAgcGF0aF9pc19kaXIgPSBwYXRoWy0xXSA9PSAi
LyIKLSAgICAgICAgaWYgcGF0aF9pc19kaXI6Ci0gICAgICAgICAgICBwYXRoID0gcGF0aFs6LTFd
Ci0gICAgICAgICAgICBydWxlcyA9IHNlbGYucnVsZXNfZGlyCi0gICAgICAgIGVsc2U6Ci0gICAg
ICAgICAgICBydWxlcyA9IHNlbGYucnVsZXNfZmlsZQotCi0gICAgICAgIGluY2x1ZGUgPSBUcnVl
Ci0gICAgICAgIGZvciByZWdleHAsIGludmVydCBpbiBydWxlczoKLSAgICAgICAgICAgIGlmIG5v
dCBpbmNsdWRlIGFuZCBpbnZlcnQgYW5kIHJlZ2V4cC5tYXRjaChwYXRoKToKLSAgICAgICAgICAg
ICAgICBpbmNsdWRlID0gVHJ1ZQotICAgICAgICAgICAgZWxpZiBpbmNsdWRlIGFuZCBub3QgaW52
ZXJ0IGFuZCByZWdleHAubWF0Y2gocGF0aCk6Ci0gICAgICAgICAgICAgICAgaW5jbHVkZSA9IEZh
bHNlCi0gICAgICAgIHJldHVybiBpbmNsdWRlCisgICAgICAgIHJldHVybiBzZWxmLmZpbHRlcihp
dGVyYXRvcikKKworCitkZWYgaGFzX2lnbm9yZShkaXJwYXRoKToKKyAgICAjIHR5cGU6IChzdHIp
IC0+IGJvb2wKKyAgICByZXR1cm4gb3MucGF0aC5leGlzdHMob3MucGF0aC5qb2luKGRpcnBhdGgs
ICIuZ2l0aWdub3JlIikpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2dpdGlnbm9yZS90ZXN0cy9fX2luaXRfXy5weSBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvZ2l0aWdub3JlL3Rl
c3RzL19faW5pdF9fLnB5CmluZGV4IGE2ODM0YjgyODVhNTZiZWYwZTE1NDNmZDkwMWM3ZTZmMmY4
YmMyMDIuLmU2OWRlMjliYjJkMWQ2NDM0YjhiMjlhZTc3NWFkOGMyZTQ4YzUzOTEgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvZ2l0
aWdub3JlL3Rlc3RzL19faW5pdF9fLnB5CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvZ2l0aWdub3JlL3Rlc3RzL19faW5pdF9fLnB5CkBAIC0x
ICswLDAgQEAKLSMgVGhpcyBmaWxlIGlzIHJlcXVpcmVkIGZvciBQeXRob24gdG8gc2VhcmNoIHRo
aXMgZGlyZWN0b3J5IGZvciBtb2R1bGVzLgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvZ2l0aWdub3JlL3Rlc3RzL3Rlc3RfZ2l0aWdub3JlLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9naXRpZ25vcmUvdGVzdHMvdGVzdF9naXRp
Z25vcmUucHkKaW5kZXggNzVhMGQ1OGIyYzYwMWM0YjEwMjNmYmIxMTdkMzlhNDI5ZDhiYjA5ZS4u
ODEzMWE3MTg3NWI0ZDU2OWZlZDk1ZjY3ODFmZWNhMDY0NzBlYTY4ZCAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9naXRpZ25vcmUv
dGVzdHMvdGVzdF9naXRpZ25vcmUucHkKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy9naXRpZ25vcmUvdGVzdHMvdGVzdF9naXRpZ25vcmUucHkK
QEAgLTIsODEgKzIsMTEwIEBAIGltcG9ydCBweXRlc3QKIAogZnJvbSAuLmdpdGlnbm9yZSBpbXBv
cnQgZm5tYXRjaF90cmFuc2xhdGUsIFBhdGhGaWx0ZXIKIAorTVlQWSA9IEZhbHNlCitpZiBNWVBZ
OgorICAgICMgTVlQWSBpcyBzZXQgdG8gVHJ1ZSB3aGVuIHJ1biB1bmRlciBNeXB5LgorICAgIGZy
b20gdHlwaW5nIGltcG9ydCBUdXBsZQorICAgIGZyb20gdHlwaW5nIGltcG9ydCBJdGVyYWJsZQor
ICAgIGZyb20gdHlwaW5nIGltcG9ydCBTZXF1ZW5jZQorCiBtYXRjaF9kYXRhID0gWwotICAgICgi
Zm9vIiwgRmFsc2UsIFsiYS9mb28iLCAiZm9vIl0pLAotICAgICgiKi5hIiwgRmFsc2UsIFsiZm9v
LmEiLCAiYS9mb28uYSIsICJhL2IvZm9vLmEiLCAiYS5hL2Zvby5hIl0pLAotICAgICgiKi5weVtj
b10iLCBGYWxzZSwgWyJhLnB5YyIsICJhLnB5byIsICJhL2IvYy5weWMiXSksCi0gICAgKCJcXCMq
IiwgRmFsc2UsIFsiI2EiLCAiYS8jYiJdKSwKLSAgICAoIiojIiwgRmFsc2UsIFsiYSMiLCAiYS9i
IyIsICIjYSMiXSksCi0gICAgKCIvKi5jIiwgRmFsc2UsIFsiYS5jIiwgIi5jIl0pLAorICAgICgi
Zm9vIiwgVHJ1ZSwgWyJhL2ZvbyIsICJmb28iXSksCisgICAgKCIqLmEiLCBUcnVlLCBbImZvby5h
IiwgImEvZm9vLmEiLCAiYS9iL2Zvby5hIiwgImEuYS9mb28uYSJdKSwKKyAgICAoIioucHlbY29d
IiwgVHJ1ZSwgWyJhLnB5YyIsICJhLnB5byIsICJhL2IvYy5weWMiXSksCisgICAgKCJcXCMqIiwg
VHJ1ZSwgWyIjYSIsICJhLyNiIl0pLAorICAgICgiKiMiLCBUcnVlLCBbImEjIiwgImEvYiMiLCAi
I2EjIl0pLAorICAgICgiLyouYyIsIFRydWUsIFsiYS5jIiwgIi5jIl0pLAogICAgICgiKiovYiIs
IEZhbHNlLCBbImEvYiIsICJhL2MvYiJdKSwKICAgICAoIipiIiwgVHJ1ZSwgWyJhYiJdKSwKLSAg
ICAoIioqL2IiLCBUcnVlLCBbImEvYiJdKSwKLSAgICAoImEvIiwgVHJ1ZSwgWyJhIiwgImEvYiIs
ICJhL2IvYyJdKQotXQorICAgICgiKmIiLCBUcnVlLCBbImEvYiJdKSwKKyAgICAoIioqL2IiLCBG
YWxzZSwgWyJhL2IiXSksCisgICAgKCJhLyIsIFRydWUsIFsiYSJdKSwKKyAgICAoImFbL11iIiwg
VHJ1ZSwgW10pLAorICAgICgiKiovYiIsIEZhbHNlLCBbImEvYy9iIl0pLAorICAgICgiYT9jIiwg
VHJ1ZSwgWyJhYmMiXSksCisgICAgKCJhW15iXWMiLCBUcnVlLCBbImFjYyJdKSwKKyAgICAoImFb
Yi1jXWMiLCBUcnVlLCBbImFiYyIsICJhY2MiXSksCisgICAgKCJhW15dYyIsIFRydWUsIFsiYWMi
XSksICAjIFRoaXMgaXMgcHJvYmFibHkgd3JvbmcKKyAgICAoImFbXl1jIiwgVHJ1ZSwgWyJhYyJd
KSwgICMgVGhpcyBpcyBwcm9iYWJseSB3cm9uZworXSAgIyB0eXBlOiBTZXF1ZW5jZVtUdXBsZVtz
dHIsIGJvb2wsIEl0ZXJhYmxlW3N0cl1dXQogCiBtaXNtYXRjaF9kYXRhID0gWwotICAgICgiZm9v
IiwgRmFsc2UsIFsiZm9vYiIsICJhZm9vIl0pLAotICAgICgiKi5hIiwgRmFsc2UsIFsiYSIsICJm
b286YSIsICJhLmEvZm9vIl0pLAotICAgICgiKi5weVtjb10iLCBGYWxzZSwgWyJhLnB5ZCIsICJw
eW8iXSksCi0gICAgKCIvKi5jIiwgRmFsc2UsIFsiYS9iLmMiXSksCi0gICAgKCIqYiIsIFRydWUs
IFsiYS9iIl0pLAotICAgICgiKipiIiwgVHJ1ZSwgWyJhL2IiXSksCi0gICAgKCJhWy9dYiIsIFRy
dWUsIFsiYS9iIl0pLAotICAgICgiKiovYiIsIFRydWUsIFsiYS9jL2IiXSksCi0gICAgKCJhIiwg
VHJ1ZSwgWyJhYiJdKQotXQorICAgICgiZm9vIiwgVHJ1ZSwgWyJmb29iIiwgImFmb28iXSksCisg
ICAgKCIqLmEiLCBUcnVlLCBbImEiLCAiZm9vOmEiLCAiYS5hL2ZvbyJdKSwKKyAgICAoIioucHlb
Y29dIiwgVHJ1ZSwgWyJhLnB5ZCIsICJweW8iLCAiYS5weSJdKSwKKyAgICAoImEiLCBUcnVlLCBb
ImFiIl0pLAorICAgICgiYT9jIiwgVHJ1ZSwgWyJhYyIsICJhYmJjIl0pLAorICAgICgiYVteYl1j
IiwgVHJ1ZSwgWyJhYmMiXSksCisgICAgKCJhW2ItY11jIiwgVHJ1ZSwgWyJhZGMiXSksCitdICAj
IHR5cGU6IFNlcXVlbmNlW1R1cGxlW3N0ciwgYm9vbCwgSXRlcmFibGVbc3RyXV1dCiAKIGludmFs
aWRfZGF0YSA9IFsKICAgICAiW2EiLAogICAgICIqKiovZm9vIiwKICAgICAiYVxcIiwKKyAgICAi
KipiIiwKKyAgICAiYioqLyIsCisgICAgIltbXSIKIF0KIAogZmlsdGVyX2RhdGEgPSBbCi0gICAg
KCJmb28iLCBUcnVlKSwKLSAgICAoImEiLCBGYWxzZSksCi0gICAgKCJhL2IiLCBGYWxzZSksCi0g
ICAgKCJhL2MiLCBUcnVlKSwKLSAgICAoImEvYy8iLCBGYWxzZSksCi0gICAgKCJjL2IiLCBUcnVl
KQorICAgIChbImZvbyIsICJiYXIvIiwgIi9hIiwgIioucHkiXSwKKyAgICAgWygiIiwgWyJmb28i
LCAiYmFyIiwgImJheiJdLCBbImEiXSksCisgICAgICAoImJheiIsIFsiYSJdLCBbImZvbyIsICJi
YXIiXSldLAorICAgICBbKFsiYmF6Il0sIFtdKSwKKyAgICAgIChbImEiXSwgWyJiYXIiXSldKSwK
KyAgICAoWyIjZm9vIiwgIiIsICJhKiIsICIhYS5weSJdLAorICAgICBbKCIiLCBbImZvbyJdLCBb
ImEiLCAiYS5mb28iLCAiYS5weSJdKV0sCisgICAgIFsoWyJmb28iXSwgWyJhLnB5Il0pXSksCisg
ICAgKFsiYS5mb28iLCAiIWEucHkiXSwKKyAgICAgWygiIiwgWyJmb28iXSwgWyJhIiwgImEuZm9v
IiwgImEucHkiXSldLAorICAgICBbKFsiZm9vIl0sIFsiYSIsICJhLnB5Il0pXSksCiBdCiAKIAog
ZGVmIGV4cGFuZF9kYXRhKGNvbXBhY3RfZGF0YSk6Ci0gICAgZm9yIHBhdHRlcm4sIHBhdGhfbmFt
ZSwgaW5wdXRzIGluIGNvbXBhY3RfZGF0YToKKyAgICAjIHR5cGU6IChTZXF1ZW5jZVtUdXBsZVtz
dHIsIGJvb2wsIEl0ZXJhYmxlW3N0cl1dXSkgLT4gSXRlcmFibGVbVHVwbGVbc3RyLCBib29sLCBz
dHJdXQorICAgIGZvciBwYXR0ZXJuLCBuYW1lX29ubHksIGlucHV0cyBpbiBjb21wYWN0X2RhdGE6
CiAgICAgICAgIGZvciBpbnB1dCBpbiBpbnB1dHM6Ci0gICAgICAgICAgICB5aWVsZCBwYXR0ZXJu
LCBpbnB1dCwgcGF0aF9uYW1lCisgICAgICAgICAgICB5aWVsZCBwYXR0ZXJuLCBuYW1lX29ubHks
IGlucHV0CiAKIAotQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKCJwYXR0ZXJuLCBpbnB1dCwgcGF0
aF9uYW1lIiwgZXhwYW5kX2RhdGEobWF0Y2hfZGF0YSkpCi1kZWYgdGVzdHNfbWF0Y2gocGF0dGVy
biwgaW5wdXQsIHBhdGhfbmFtZSk6Ci0gICAgcmVnZXhwID0gZm5tYXRjaF90cmFuc2xhdGUocGF0
dGVybiwgcGF0aF9uYW1lKQorQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKCJwYXR0ZXJuLCBuYW1l
X29ubHksIGlucHV0IiwgZXhwYW5kX2RhdGEobWF0Y2hfZGF0YSkpCitkZWYgdGVzdHNfbWF0Y2go
cGF0dGVybiwgbmFtZV9vbmx5LCBpbnB1dCk6CisgICAgbmFtZV9vbmx5X3Jlc3VsdCwgcmVnZXhw
ID0gZm5tYXRjaF90cmFuc2xhdGUocGF0dGVybikKKyAgICBhc3NlcnQgbmFtZV9vbmx5X3Jlc3Vs
dCA9PSBuYW1lX29ubHkKKyAgICBpZiBuYW1lX29ubHk6CisgICAgICAgIGlucHV0ID0gaW5wdXQu
cnNwbGl0KCIvIiwgMSlbLTFdCiAgICAgYXNzZXJ0IHJlZ2V4cC5tYXRjaChpbnB1dCkgaXMgbm90
IE5vbmUKIAogCi1AcHl0ZXN0Lm1hcmsucGFyYW1ldHJpemUoInBhdHRlcm4sIGlucHV0LCBwYXRo
X25hbWUiLCBleHBhbmRfZGF0YShtaXNtYXRjaF9kYXRhKSkKLWRlZiB0ZXN0c19ub19tYXRjaChw
YXR0ZXJuLCBpbnB1dCwgcGF0aF9uYW1lKToKLSAgICByZWdleHAgPSBmbm1hdGNoX3RyYW5zbGF0
ZShwYXR0ZXJuLCBwYXRoX25hbWUpCitAcHl0ZXN0Lm1hcmsucGFyYW1ldHJpemUoInBhdHRlcm4s
IG5hbWVfb25seSwgaW5wdXQiLCBleHBhbmRfZGF0YShtaXNtYXRjaF9kYXRhKSkKK2RlZiB0ZXN0
c19ub19tYXRjaChwYXR0ZXJuLCBuYW1lX29ubHksIGlucHV0KToKKyAgICBuYW1lX29ubHlfcmVz
dWx0LCByZWdleHAgPSBmbm1hdGNoX3RyYW5zbGF0ZShwYXR0ZXJuKQorICAgIGFzc2VydCBuYW1l
X29ubHlfcmVzdWx0ID09IG5hbWVfb25seQorICAgIGlmIG5hbWVfb25seToKKyAgICAgICAgaW5w
dXQgPSBpbnB1dC5yc3BsaXQoIi8iLCAxKVstMV0KICAgICBhc3NlcnQgcmVnZXhwLm1hdGNoKGlu
cHV0KSBpcyBOb25lCiAKIAogQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKCJwYXR0ZXJuIiwgaW52
YWxpZF9kYXRhKQogZGVmIHRlc3RzX2ludmFsaWQocGF0dGVybik6CiAgICAgd2l0aCBweXRlc3Qu
cmFpc2VzKFZhbHVlRXJyb3IpOgotICAgICAgICBmbm1hdGNoX3RyYW5zbGF0ZShwYXR0ZXJuLCBG
YWxzZSkKLSAgICB3aXRoIHB5dGVzdC5yYWlzZXMoVmFsdWVFcnJvcik6Ci0gICAgICAgIGZubWF0
Y2hfdHJhbnNsYXRlKHBhdHRlcm4sIFRydWUpCi0KLQotQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXpl
KCJwYXRoLCBleHBlY3RlZCIsIGZpbHRlcl9kYXRhKQotZGVmIHRlc3RfcGF0aF9maWx0ZXIocGF0
aCwgZXhwZWN0ZWQpOgotICAgIGV4dHJhcyA9IFsKLSAgICAgICAgIiNmb28iLAotICAgICAgICAi
YSAgIiwKLSAgICAgICAgIioqL2IiLAotICAgICAgICAiYS9jLyIsCi0gICAgICAgICIhYy9iIiwK
LSAgICBdCi0gICAgZiA9IFBhdGhGaWx0ZXIoTm9uZSwgZXh0cmFzKQotICAgIGFzc2VydCBmKHBh
dGgpID09IGV4cGVjdGVkCisgICAgICAgIGZubWF0Y2hfdHJhbnNsYXRlKHBhdHRlcm4pCisKKwor
QHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKCJydWxlcywgaW5wdXQsIGV4cGVjdGVkIiwgZmlsdGVy
X2RhdGEpCitkZWYgdGVzdF9wYXRoX2ZpbHRlcihydWxlcywgaW5wdXQsIGV4cGVjdGVkKToKKyAg
ICBmID0gUGF0aEZpbHRlcihOb25lLCBydWxlcykKKyAgICAjIEFkZCBzb21lIGZha2Ugc3RhdCBk
YXRhCisgICAgZm9yIGksIGl0ZW0gaW4gZW51bWVyYXRlKGlucHV0KToKKyAgICAgICAgcmVwbCA9
IFtpbnB1dFtpXVswXV0KKyAgICAgICAgZm9yIGogaW4gWzEsIDJdOgorICAgICAgICAgICAgcmVw
bC5hcHBlbmQoWyhuYW1lLCBOb25lKSBmb3IgbmFtZSBpbiBpbnB1dFtpXVtqXV0pCisgICAgICAg
IGlucHV0W2ldID0gdHVwbGUocmVwbCkKKworICAgIGZvciBpLCBvdXRwdXQgaW4gZW51bWVyYXRl
KGYoaW5wdXQpKToKKyAgICAgICAgYXNzZXJ0IG91dHB1dFswXSA9PSBpbnB1dFtpXVswXQorICAg
ICAgICBmb3IgaiBpbiBbMSwgMl06CisgICAgICAgICAgICBhc3NlcnQgW2l0ZW1bMF0gZm9yIGl0
ZW0gaW4gb3V0cHV0W2pdXSA9PSBleHBlY3RlZFtpXVtqLTFdCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2dpdGlnbm9yZS90ZXN0
cy93M2MtaW1wb3J0LmxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvZ2l0aWdub3JlL3Rlc3RzL3czYy1pbXBvcnQubG9nCmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCBjMmI4MDQwMmNmZmIyMjg5MWI4Nzk2ZGRmMzQ5MmE3OGQ2YjY3ZWZj
Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvZ2l0aWdub3JlL3Rlc3Rz
L3czYy1pbXBvcnQubG9nCisrKyAvZGV2L251bGwKQEAgLTEsMTggKzAsMCBAQAotVGhlIHRlc3Rz
IGluIHRoaXMgZGlyZWN0b3J5IHdlcmUgaW1wb3J0ZWQgZnJvbSB0aGUgVzNDIHJlcG9zaXRvcnku
Ci1EbyBOT1QgbW9kaWZ5IHRoZXNlIHRlc3RzIGRpcmVjdGx5IGluIFdlYktpdC4KLUluc3RlYWQs
IGNyZWF0ZSBhIHB1bGwgcmVxdWVzdCBvbiB0aGUgV1BUIGdpdGh1YjoKLQlodHRwczovL2dpdGh1
Yi5jb20vd2ViLXBsYXRmb3JtLXRlc3RzL3dwdAotCi1UaGVuIHJ1biB0aGUgVG9vbHMvU2NyaXB0
cy9pbXBvcnQtdzNjLXRlc3RzIGluIFdlYktpdCB0byByZWltcG9ydAotCi1EbyBOT1QgbW9kaWZ5
IG9yIHJlbW92ZSB0aGlzIGZpbGUuCi0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotUHJvcGVydGllcyByZXF1
aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotUHJvcGVydHkgdmFsdWVzIHJlcXVpcmluZyB2
ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLUxpc3Qgb2YgZmlsZXM6Ci0v
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9naXRpZ25v
cmUvdGVzdHMvX19pbml0X18ucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL2dpdGlnbm9yZS90ZXN0cy90ZXN0X2dpdGlnbm9yZS5weQpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9n
aXRpZ25vcmUvdzNjLWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL2dpdGlnbm9yZS93M2MtaW1wb3J0LmxvZwpkZWxldGVkIGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMzA4Y2M3NDdhY2NkZDJkNDJhYjU3MjFkMzNhZTg0N2VhMDUwOTg4
MC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2dpdGlnbm9yZS93M2Mt
aW1wb3J0LmxvZworKysgL2Rldi9udWxsCkBAIC0xLDIwICswLDAgQEAKLVRoZSB0ZXN0cyBpbiB0
aGlzIGRpcmVjdG9yeSB3ZXJlIGltcG9ydGVkIGZyb20gdGhlIFczQyByZXBvc2l0b3J5LgotRG8g
Tk9UIG1vZGlmeSB0aGVzZSB0ZXN0cyBkaXJlY3RseSBpbiBXZWJLaXQuCi1JbnN0ZWFkLCBjcmVh
dGUgYSBwdWxsIHJlcXVlc3Qgb24gdGhlIFdQVCBnaXRodWI6Ci0JaHR0cHM6Ly9naXRodWIuY29t
L3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQKLQotVGhlbiBydW4gdGhlIFRvb2xzL1NjcmlwdHMvaW1w
b3J0LXczYy10ZXN0cyBpbiBXZWJLaXQgdG8gcmVpbXBvcnQKLQotRG8gTk9UIG1vZGlmeSBvciBy
ZW1vdmUgdGhpcyBmaWxlLgotCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLVByb3BlcnRpZXMgcmVxdWlyaW5n
IHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLVByb3BlcnR5IHZhbHVlcyByZXF1aXJpbmcgdmVuZG9y
IHByZWZpeGVzOgotTm9uZQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1MaXN0IG9mIGZpbGVzOgotL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvZ2l0aWdub3JlL19f
aW5pdF9fLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy9naXRpZ25vcmUvX19pbml0X18ucHljCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy9naXRpZ25vcmUvZ2l0aWdub3JlLnB5Ci0vTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9naXRpZ25vcmUvZ2l0aWdu
b3JlLnB5YwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy9odG1sNWxpYi9BVVRIT1JTLnJzdCBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvaHRtbDVsaWIvQVVUSE9SUy5yc3QKZGVsZXRl
ZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDQxNDhhNmVkMjYyZDRkNGEzOGY3MDM3MGI1MmI4Zjhk
ZDVlZTZlMzMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9odG1sNWxp
Yi9BVVRIT1JTLnJzdAorKysgL2Rldi9udWxsCkBAIC0xLDM0ICswLDAgQEAKLUNyZWRpdHMKLT09
PT09PT0KLQotYGBodG1sNWxpYmBgIGlzIHdyaXR0ZW4gYW5kIG1haW50YWluZWQgYnk6Ci0KLS0g
SmFtZXMgR3JhaGFtCi0tIEdlb2ZmcmV5IFNuZWRkb24KLS0gxYF1a2FzeiBMYW5nYQotCi0KLVBh
dGNoZXMgYW5kIHN1Z2dlc3Rpb25zCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotKEluIGNocm9u
b2xvZ2ljYWwgb3JkZXIsIGJ5IGZpcnN0IGNvbW1pdDopCi0KLS0gQW5uZSB2YW4gS2VzdGVyZW4K
LS0gTGFjaGxhbiBIdW50Ci0tIGxhbnRpczYzCi0tIFNhbSBSdWJ5Ci0tIFRpbSBGbGV0Y2hlcgot
LSBUaG9tYXMgQnJveWVyCi0tIE1hcmsgUGlsZ3JpbQotLSBQaGlsaXAgVGF5bG9yCi0tIFJ5YW4g
S2luZwotLSBFZHdhcmQgWi4gWWFuZwotLSBmYW50YXNhaQotLSBQaGlsaXAgSsOkZ2Vuc3RlZHQK
LS0gTXMyZ2VyCi0tIEFuZHkgV2luZ28KLS0gQW5kcmVhcyBNYWRzYWNrCi0tIEthcmltIFZhbGll
dgotLSBNb2hhbW1hZCBUYWhhIEphaGFuZ2lyCi0tIEp1YW4gQ2FybG9zIEdhcmNpYSBTZWdvdmlh
Ci0tIE1pa2UgV2VzdAotLSBNYXJjIERNCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2h0bWw1bGliL0NIQU5HRVMucnN0IGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9odG1sNWxpYi9D
SEFOR0VTLnJzdApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMTQzMWIzYzliOGZhY2E4
MTA0Y2I3NDE0MWZiMzZhZmMxYjE5ZjljMS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL2h0bWw1bGliL0NIQU5HRVMucnN0CisrKyAvZGV2L251bGwKQEAgLTEsMTcxICsw
LDAgQEAKLUNoYW5nZSBMb2cKLS0tLS0tLS0tLS0KLQotMC45OTk5Ci1+fn5+fn4KLQotUmVsZWFz
ZWQgb24gWFhYLCAyMDE0Ci0KLSogWFhYCi0KLQotMC45OTkKLX5+fn5+Ci0KLVJlbGVhc2VkIG9u
IERlY2VtYmVyIDIzLCAyMDEzCi0KLSogRml4ICMxMjc6IGFkZCB3b3JrLWFyb3VuZCBmb3IgQ1B5
dGhvbiBpc3N1ZSAjMjAwMDc6IC5yZWFkKDApIG9uCi0gIGh0dHAuY2xpZW50LkhUVFBSZXNwb25z
ZSBkcm9wcyB0aGUgcmVzdCBvZiB0aGUgY29udGVudC4KLQotKiBGaXggIzExNTogbHhtbCB0cmVl
d2Fsa2VyIGNhbiBub3cgZGVhbCB3aXRoIGZyYWdtZW50cyBjb250YWluaW5nLCBhdAotICB0aGVp
ciByb290IGxldmVsLCB0ZXh0IG5vZGVzIHdpdGggbm9uLUFTQ0lJIGNoYXJhY3RlcnMgb24gUHl0
aG9uIDIuCi0KLQotMC45OQotfn5+fgotCi1SZWxlYXNlZCBvbiBTZXB0ZW1iZXIgMTAsIDIwMTMK
LQotKiBObyBsaWJyYXJ5IGNoYW5nZXMgZnJvbSAxLjBiMzsgcmVsZWFzZWQgYXMgMC45OSBhcyBw
aXAgaGFzIGNoYW5nZWQKLSAgYmVoYXZpb3VyIGZyb20gMS40IHRvIGF2b2lkIGluc3RhbGxpbmcg
cHJlLXJlbGVhc2UgdmVyc2lvbnMgcGVyCi0gIFBFUCA0NDAuCi0KLQotMS4wYjMKLX5+fn5+Ci0K
LVJlbGVhc2VkIG9uIEp1bHkgMjQsIDIwMTMKLQotKiBSZW1vdmVkIGBgUmVjdXJzaXZlVHJlZVdh
bGtlcmBgIGZyb20gYGB0cmVld2Fsa2Vycy5fYmFzZWBgLiBBbnkKLSAgaW1wbGVtZW50YXRpb24g
dXNpbmcgaXQgc2hvdWxkIGJlIG1vdmVkIHRvCi0gIGBgTm9uUmVjdXJzaXZlVHJlZVdhbGtlcmBg
LCBhcyBldmVyeXRoaW5nIGJ1bmRsZWQgd2l0aCBodG1sNWxpYiBoYXMKLSAgZm9yIHllYXJzLgot
Ci0qIEZpeCAjNjcgc28gdGhhdCBgYEJ1ZmZlcmVkU3RyZWFtYGAgdG8gY29ycmVjdGx5IHJldHVy
bnMgYSBieXRlcwotICBvYmplY3QsIHRoZXJlYnkgZml4aW5nIGFueSBjYXNlIHdoZXJlIGh0bWw1
bGliIGlzIHBhc3NlZCBhCi0gIG5vbi1zZWVrYWJsZSBSYXdJT0Jhc2UtbGlrZSBvYmplY3QuCi0K
LQotMS4wYjIKLX5+fn5+Ci0KLVJlbGVhc2VkIG9uIEp1bmUgMjcsIDIwMTMKLQotKiBSZW1vdmVk
IHJlb3JkZXJpbmcgb2YgYXR0cmlidXRlcyB3aXRoaW4gdGhlIHNlcmlhbGl6ZXIuIFRoZXJlIGlz
IG5vdwotICBhbiBgYGFscGhhYmV0aWNhbF9hdHRyaWJ1dGVzYGAgb3B0aW9uIHdoaWNoIHByZXNl
cnZlcyB0aGUgcHJldmlvdXMKLSAgYmVoYXZpb3VyIHRocm91Z2ggYSBuZXcgZmlsdGVyLiBUaGlz
IGFsbG93cyBhdHRyaWJ1dGUgb3JkZXIgdG8gYmUKLSAgcHJlc2VydmVkIHRocm91Z2ggaHRtbDVs
aWIgaWYgdGhlIHRyZWUgYnVpbGRlciBwcmVzZXJ2ZXMgb3JkZXIuCi0KLSogUmVtb3ZlZCBgYGRv
bTJzYXhgYCBmcm9tIERPTSB0cmVlYnVpbGRlcnMuIEl0IGhhcyBiZWVuIHJlcGxhY2VkIGJ5Ci0g
IGBgdHJlZWFkYXB0ZXJzLnNheC50b19zYXhgYCB3aGljaCBpcyBnZW5lcmljIGFuZCBzdXBwb3J0
cyBhbnkKLSAgdHJlZXdhbGtlcjsgaXQgYWxzbyByZXNvbHZlcyBhbGwga25vd24gYnVncyB3aXRo
IGBgZG9tMnNheGBgLgotCi0qIEZpeCB0cmVld2Fsa2VyIGFzc2VydGlvbnMgb24gaGl0dGluZyBi
eXRlcyBzdHJpbmdzIG9uCi0gIFB5dGhvbiAyLiBQcmV2aW91cyB0byAxLjBiMSwgdHJlZXdhbGtl
cnMgY29wZWQgd2l0aCBtaXhlZAotICBieXRlcy91bmljb2RlIGRhdGEgb24gUHl0aG9uIDI7IHRo
aXMgcmVpbnRyb2R1Y2VzIHRoaXMgcHJpb3IKLSAgYmVoYXZpb3VyIG9uIFB5dGhvbiAyLiBCZWhh
dmlvdXIgaXMgdW5jaGFuZ2VkIG9uIFB5dGhvbiAzLgotCi0KLTEuMGIxCi1+fn5+fgotCi1SZWxl
YXNlZCBvbiBNYXkgMTcsIDIwMTMKLQotKiBJbXBsZW1lbnRhdGlvbiB1cGRhdGVkIHRvIGltcGxl
bWVudCB0aGUgYEhUTUwgc3BlY2lmaWNhdGlvbgotICA8aHR0cDovL3d3dy53aGF0d2cub3JnL3Nw
ZWNzL3dlYi1hcHBzL2N1cnJlbnQtd29yay8+YF8gYXMgb2YgNXRoIE1heQotICAyMDEzIChgU1ZO
IDxodHRwOi8vc3ZuLndoYXR3Zy5vcmcvd2ViYXBwcy8+YF8gcmV2aXNpb24gcjc4NjcpLgotCi0q
IFB5dGhvbiAzLjIrIHN1cHBvcnRlZCBpbiBhIHNpbmdsZSBjb2RlYmFzZSB1c2luZyB0aGUgYGBz
aXhgYCBsaWJyYXJ5LgotCi0qIFJlbW92ZWQgc3VwcG9ydCBmb3IgUHl0aG9uIDIuNSBhbmQgb2xk
ZXIuCi0KLSogUmVtb3ZlZCB0aGUgZGVwcmVjYXRlZCBCZWF1dGlmdWwgU291cCAzIHRyZWVidWls
ZGVyLgotICBgYGJlYXV0aWZ1bHNvdXA0YGAgY2FuIHVzZSBgYGh0bWw1bGliYGAgYXMgYSBwYXJz
ZXIgaW5zdGVhZC4gTm90ZSB0aGF0Ci0gIHNpbmNlIGl0IGRvZXNuJ3Qgc3VwcG9ydCBuYW1lc3Bh
Y2VzLCBmb3JlaWduIGNvbnRlbnQgbGlrZSBTVkcgYW5kCi0gIE1hdGhNTCBpcyBwYXJzZWQgaW5j
b3JyZWN0bHkuCi0KLSogUmVtb3ZlZCBgYHNpbXBsZXRyZWVgYCBmcm9tIHRoZSBwYWNrYWdlLiBU
aGUgZGVmYXVsdCB0cmVlIGJ1aWxkZXIgaXMKLSAgbm93IGBgZXRyZWVgYCAodXNpbmcgdGhlIGBg
eG1sLmV0cmVlLmNFbGVtZW50VHJlZWBgIGltcGxlbWVudGF0aW9uIGlmCi0gIGF2YWlsYWJsZSwg
YW5kIGBgeG1sLmV0cmVlLkVsZW1lbnRUcmVlYGAgb3RoZXJ3aXNlKS4KLQotKiBSZW1vdmVkIHRo
ZSBgYFhIVE1MU2VyaWFsaXplcmBgIGFzIGl0IG5ldmVyIGFjdHVhbGx5IGd1YXJhbnRlZWQgaXRz
Ci0gIG91dHB1dCB3YXMgd2VsbC1mb3JtZWQgWE1MLCBhbmQgaGVuY2UgcHJvdmlkZWQgbGl0dGxl
IG9mIHVzZS4KLQotKiBSZW1vdmVkIGRlZmF1bHQgRE9NIHRyZWVidWlsZGVyLCBzbyBgYGh0bWw1
bGliLnRyZWVidWlsZGVycy5kb21gYCBpcyBubwotICBsb25nZXIgc3VwcG9ydGVkLiBgYGh0bWw1
bGliLnRyZWVidWlsZGVycy5nZXRUcmVlQnVpbGRlcigiZG9tIilgYCB3aWxsCi0gIHJldHVybiB0
aGUgZGVmYXVsdCBET00gdHJlZWJ1aWxkZXIsIHdoaWNoIHVzZXMgYGB4bWwuZG9tLm1pbmlkb21g
YC4KLQotKiBPcHRpb25hbCBoZXVyaXN0aWMgY2hhcmFjdGVyIGVuY29kaW5nIGRldGVjdGlvbiBu
b3cgYmFzZWQgb24KLSAgYGBjaGFyYWRlYGAgZm9yIFB5dGhvbiAyLjYgLSAzLjMgY29tcGF0aWJp
bGl0eS4KLQotKiBPcHRpb25hbCBgYEdlbnNoaWBgIHRyZWV3YWxrZXIgc3VwcG9ydCBmaXhlZC4K
LQotKiBNYW55IGJ1Z2ZpeGVzLCBpbmNsdWRpbmc6Ci0KLSAgKiAjMzM6IG51bGwgaW4gYXR0cmli
dXRlIHZhbHVlIGJyZWFrcyBYTUwgQXR0VmFsdWU7Ci0KLSAgKiAjNDogbmVzdGVkLCBpbmRpcmVj
dCBkZXNjZW5kYW50LCA8YnV0dG9uPiBjYXVzZXMgaW5maW5pdGUgbG9vcDsKLQotICAqIGBHb29n
bGUgQ29kZSAyMTUKLSAgICA8aHR0cDovL2NvZGUuZ29vZ2xlLmNvbS9wL2h0bWw1bGliL2lzc3Vl
cy9kZXRhaWw/aWQ9MjE1PmBfOiBQcm9wZXJseQotICAgIGRldGVjdCBzZWVrYWJsZSBzdHJlYW1z
OwotCi0gICogYEdvb2dsZSBDb2RlIDIwNgotICAgIDxodHRwOi8vY29kZS5nb29nbGUuY29tL3Av
aHRtbDVsaWIvaXNzdWVzL2RldGFpbD9pZD0yMDY+YF86IGFkZAotICAgIHN1cHBvcnQgZm9yIDx2
aWRlbyBwcmVsb2FkPS4uLj4sIDxhdWRpbyBwcmVsb2FkPS4uLj47Ci0KLSAgKiBgR29vZ2xlIENv
ZGUgMjA1Ci0gICAgPGh0dHA6Ly9jb2RlLmdvb2dsZS5jb20vcC9odG1sNWxpYi9pc3N1ZXMvZGV0
YWlsP2lkPTIwNT5gXzogYWRkCi0gICAgc3VwcG9ydCBmb3IgPHZpZGVvIHBvc3Rlcj0uLi4+Owot
Ci0gICogYEdvb2dsZSBDb2RlIDIwMgotICAgIDxodHRwOi8vY29kZS5nb29nbGUuY29tL3AvaHRt
bDVsaWIvaXNzdWVzL2RldGFpbD9pZD0yMDI+YF86IFVuaWNvZGUKLSAgICBmaWxlIGJyZWFrcyBJ
bnB1dFN0cmVhbS4KLQotKiBTb3VyY2UgY29kZSBpcyBub3cgbW9zdGx5IFBFUCA4IGNvbXBsaWFu
dC4KLQotKiBUZXN0IGhhcm5lc3MgaGFzIGJlZW4gaW1wcm92ZWQgYW5kIG5vdyBkZXBlbmRzIG9u
IGBgbm9zZWBgLgotCi0qIERvY3VtZW50YXRpb24gdXBkYXRlZCBhbmQgbW92ZWQgdG8gaHR0cDov
L2h0bWw1bGliLnJlYWR0aGVkb2NzLm9yZy8uCi0KLQotMC45NQotfn5+fgotCi1SZWxlYXNlZCBv
biBGZWJydWFyeSAxMSwgMjAxMgotCi0KLTAuOTAKLX5+fn4KLQotUmVsZWFzZWQgb24gSmFudWFy
eSAxNywgMjAxMAotCi0KLTAuMTEuMQotfn5+fn5+Ci0KLVJlbGVhc2VkIG9uIEp1bmUgMTIsIDIw
MDgKLQotCi0wLjExCi1+fn5+Ci0KLVJlbGVhc2VkIG9uIEp1bmUgMTAsIDIwMDgKLQotCi0wLjEw
Ci1+fn5+Ci0KLVJlbGVhc2VkIG9uIE9jdG9iZXIgNywgMjAwNwotCi0KLTAuOQotfn5+Ci0KLVJl
bGVhc2VkIG9uIE1hcmNoIDExLCAyMDA3Ci0KLQotMC4yCi1+fn4KLQotUmVsZWFzZWQgb24gSmFu
dWFyeSA4LCAyMDA3CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL2h0bWw1bGliL0NPTlRSSUJVVElORy5yc3QgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2h0bWw1bGliL0NPTlRSSUJV
VElORy5yc3QKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDhjNWUxOTg1MzVkMjQwNjIw
MDgxMjQ4NWViMjA3YTlhM2UyOGUzMDUuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy9odG1sNWxpYi9DT05UUklCVVRJTkcucnN0CisrKyAvZGV2L251bGwKQEAgLTEsNjAg
KzAsMCBAQAotQ29udHJpYnV0aW5nCi09PT09PT09PT09PT0KLQotUHVsbCByZXF1ZXN0cyBhcmUg
bW9yZSB0aGFuIHdlbGNvbWUg4oCUIGJvdGggdG8gdGhlIGxpYnJhcnkgYW5kIHRvIHRoZQotZG9j
dW1lbnRhdGlvbi4gU29tZSB1c2VmdWwgaW5mb3JtYXRpb246Ci0KLS0gV2UgYWltIHRvIGZvbGxv
dyBQRVAgOCBpbiB0aGUgbGlicmFyeSwgYnV0IGlnbm9yaW5nIHRoZQotICA3OS1jaGFyYWN0ZXIt
cGVyLWxpbmUgbGltaXQsIGluc3RlYWQgZm9sbG93aW5nIGEgc29mdCBsaW1pdCBvZiA5OSwKLSAg
YnV0IGFsbG93aW5nIGxpbmVzIG92ZXIgdGhpcyB3aGVyZSBpdCBpcyB0aGUgcmVhZGFibGUgdGhp
bmcgdG8gZG8uCi0KLS0gV2UgYWltIHRvIGZvbGxvdyBQRVAgMjU3IGZvciBhbGwgZG9jc3RyaW5n
cywgYW5kIG1ha2UgdGhlbSBwcm9wZXJseQotICBwYXJzZWFibGUgYnkgU3BoaW54IHdoaWxlIGdl
bmVyYXRpbmcgQVBJIGRvY3VtZW50YXRpb24uCi0KLS0gV2Uga2VlcCBgYHB5Zmxha2VzYGAgcmVw
b3J0aW5nIG5vIGVycm9ycyBvciB3YXJuaW5ncyBhdCBhbGwgdGltZXMuCi0KLS0gV2Uga2VlcCB0
aGUgbWFzdGVyIGJyYW5jaCBwYXNzaW5nIGFsbCB0ZXN0cyBhdCBhbGwgdGltZXMgb24gYWxsCi0g
IHN1cHBvcnRlZCB2ZXJzaW9ucy4KLQotYFRyYXZpcyBDSSA8aHR0cHM6Ly90cmF2aXMtY2kub3Jn
L2h0bWw1bGliL2h0bWw1bGliLXB5dGhvbi8+YF8gaXMgcnVuCi1hZ2FpbnN0IGFsbCBwdWxsIHJl
cXVlc3RzIGFuZCBzaG91bGQgZW5mb3JjZSBhbGwgb2YgdGhlIGFib3ZlLgotCi1XZSB1c2UgYE9w
ZXJhIENyaXRpYyA8aHR0cHM6Ly9jcml0aWMuaG9wcGlwb2xsYS5jby51ay8+YF8gYXMgYW4gZXh0
ZXJuYWwKLWNvZGUtcmV2aWV3IHRvb2wsIHdoaWNoIHVzZXMgeW91ciBHaXRIdWIgbG9naW4gdG8g
YXV0aGVudGljYXRlLiAgWW91J2xsCi1nZXQgZW1haWwgbm90aWZpY2F0aW9ucyBmb3IgaXNzdWVz
IHJhaXNlZCBpbiB0aGUgcmV2aWV3LgotCi0KLVBhdGNoIHN1Ym1pc3Npb24gZ3VpZGVsaW5lcwot
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0KLS0gKipDcmVhdGUgYSBuZXcgR2l0IGJyYW5j
aCBzcGVjaWZpYyB0byB5b3VyIGNoYW5nZS4qKiBEbyBub3QgcHV0Ci0gIG11bHRpcGxlIGZpeGVz
L2ZlYXR1cmVzIGluIHRoZSBzYW1lIHB1bGwgcmVxdWVzdC4gSWYgeW91IGZpbmQgYW4KLSAgdW5y
ZWxhdGVkIGJ1ZywgY3JlYXRlIGEgZGlzdGluY3QgYnJhbmNoIGFuZCBzdWJtaXQgYSBzZXBhcmF0
ZSBwdWxsCi0gIHJlcXVlc3QgZm9yIHRoZSBidWdmaXguIFRoaXMgbWFrZXMgbGlmZSBtdWNoIGVh
c2llciBmb3IgbWFpbnRhaW5lcnMKLSAgYW5kIHdpbGwgc3BlZWQgdXAgbWVyZ2luZyB5b3VyIHBh
dGNoZXMuCi0KLS0gKipXcml0ZSBhIHRlc3QqKiB3aGVuZXZlciBwb3NzaWJsZS4gRm9sbG93aW5n
IGV4aXN0aW5nIHRlc3RzIGlzIG9mdGVuCi0gIGVhc2llc3QsIGFuZCBhIGdvb2Qgd2F5IHRvIHRl
bGwgd2hldGhlciB0aGUgZmVhdHVyZSB5b3UncmUgbW9kaWZ5aW5nCi0gIGlzIGVhc2lseSB0ZXN0
YWJsZS4KLQotLSAqKk1ha2Ugc3VyZSBkb2N1bWVudGF0aW9uIGlzIHVwZGF0ZWQuKiogS2VlcCBk
b2NzdHJpbmdzIGN1cnJlbnQsIGFuZAotICBpZiBuZWNlc3NhcnksIHVwZGF0ZSB0aGUgU3BoaW54
IGRvY3VtZW50YXRpb24gaW4gYGBkb2MvYGAuCi0KLS0gKipBZGQgYSBjaGFuZ2Vsb2cgZW50cnkq
KiBhdCB0aGUgdG9wIG9mIGBgQ0hBTkdFUy5yc3RgYCBmb2xsb3dpbmcKLSAgZXhpc3RpbmcgZW50
cmllcycgc3R5bGVzLgotCi0tICoqUnVuIHRlc3RzIHdpdGggdG94KiogaWYgcG9zc2libGUsIHRv
IG1ha2Ugc3VyZSB5b3VyIGNoYW5nZXMgYXJlCi0gIGNvbXBhdGlibGUgd2l0aCBhbGwgc3VwcG9y
dGVkIFB5dGhvbiB2ZXJzaW9ucy4KLQotLSAqKlNxdWFzaCBjb21taXRzKiogYmVmb3JlIHN1Ym1p
dHRpbmcgdGhlIHB1bGwgcmVxdWVzdCBzbyB0aGF0IGEgc2luZ2xlCi0gIGNvbW1pdCBjb250YWlu
cyB0aGUgZW50aXJlIGNoYW5nZSwgYW5kIG9ubHkgdGhhdCBjaGFuZ2UgKHNlZSB0aGUgZmlyc3QK
LSAgYnVsbGV0KS4KLQotLSAqKkRvbid0IHJlYmFzZSBhZnRlciBjcmVhdGluZyB0aGUgcHVsbCBy
ZXF1ZXN0LioqIE1lcmdlIHdpdGggdXBzdHJlYW0sCi0gIGlmIG5lY2Vzc2FyeSwgYW5kIHVzZSBg
YGdpdCBjb21taXQgLS1maXh1cGBgIGZvciBmaXhpbmcgaXNzdWVzIHJhaXNlZAotICBpbiBhIENy
aXRpYyByZXZpZXcgb3IgYnkgYSBmYWlsaW5nIFRyYXZpcyBidWlsZC4gVGhlIHJldmlld2VyIHdp
bGwKLSAgc3F1YXNoIGFuZCByZWJhc2UgeW91ciBwdWxsIHJlcXVlc3Qgd2hpbGUgYWNjZXB0aW5n
IGl0LiBFdmVuIHRob3VnaAotICBHaXRIdWIgd29uJ3QgcmVjb2duaXplIHRoZSBwdWxsIHJlcXVl
c3QgYXMgYWNjZXB0ZWQsIHRoZSBzcXVhc2hlZAotICBjb21taXRzIHdpbGwgcHJvcGVybHkgc3Bl
Y2lmeSB5b3UgYXMgdGhlIGF1dGhvci4KLQotLSAqKkF0dHJpYnV0ZSB5b3Vyc2VsZioqIGluIGBg
QVVUSE9SUy5yc3RgYC4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvaHRtbDVsaWIvTElDRU5TRSBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvaHRtbDVsaWIvTElDRU5TRQpkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYzg3ZmE3YTAwMDY5ZjkwNWRmMDMzMWQyZWNjYzE3MTMy
ODJhMWU0Ni4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2h0bWw1bGli
L0xJQ0VOU0UKKysrIC9kZXYvbnVsbApAQCAtMSwyMCArMCwwIEBACi1Db3B5cmlnaHQgKGMpIDIw
MDYtMjAxMyBKYW1lcyBHcmFoYW0gYW5kIG90aGVyIGNvbnRyaWJ1dG9ycwotCi1QZXJtaXNzaW9u
IGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5p
bmcKLWEgY29weSBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24g
ZmlsZXMgKHRoZQotIlNvZnR3YXJlIiksIHRvIGRlYWwgaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQg
cmVzdHJpY3Rpb24sIGluY2x1ZGluZwotd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHMgdG8g
dXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLAotZGlzdHJpYnV0ZSwgc3VibGljZW5z
ZSwgYW5kL29yIHNlbGwgY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvCi1wZXJtaXQgcGVy
c29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpcyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3Qg
dG8KLXRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKLQotVGhlIGFib3ZlIGNvcHlyaWdodCBub3Rp
Y2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUKLWluY2x1ZGVkIGluIGFsbCBj
b3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLgotCi1USEUgU09G
VFdBUkUgSVMgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwK
LUVYUFJFU1MgT1IgSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FS
UkFOVElFUyBPRgotTUVSQ0hBTlRBQklMSVRZLCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVS
UE9TRSBBTkQKLU5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhPUlMg
T1IgQ09QWVJJR0hUIEhPTERFUlMgQkUKLUxJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9S
IE9USEVSIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04KLU9GIENPTlRSQUNULCBUT1JU
IE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLCBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTgotV0lU
SCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTiBUSEUgU09GVFdB
UkUuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL2h0bWw1bGliL01BTklGRVNULmluIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9odG1sNWxpYi9NQU5JRkVTVC5pbgpkZWxldGVkIGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMWVkZDBiN2RlZWE1YjgyMDA0YjgyNGFjM2ZlMmUxMDJhMzg4
NTZhMC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2h0bWw1bGliL01B
TklGRVNULmluCisrKyAvZGV2L251bGwKQEAgLTEsNiArMCwwIEBACi1pbmNsdWRlIExJQ0VOU0UK
LWluY2x1ZGUgQ0hBTkdFUy5yc3QKLWluY2x1ZGUgUkVBRE1FLnJzdAotaW5jbHVkZSByZXF1aXJl
bWVudHMqLnR4dAotZ3JhZnQgaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEKLXJlY3Vyc2l2ZS1pbmNs
dWRlIGh0bWw1bGliL3Rlc3RzICoucHkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvaHRtbDVsaWIvUkVBRE1FLnJzdCBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvaHRtbDVsaWIvUkVB
RE1FLnJzdApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOWUwYTBmNzQwNDg1YjE5MDFi
MTYyZjBiYTU5NjEzODEwYTU2Y2VlNy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL2h0bWw1bGliL1JFQURNRS5yc3QKKysrIC9kZXYvbnVsbApAQCAtMSwxNTcgKzAsMCBA
QAotaHRtbDVsaWIKLT09PT09PT09Ci0KLS4uIGltYWdlOjogaHR0cHM6Ly90cmF2aXMtY2kub3Jn
L2h0bWw1bGliL2h0bWw1bGliLXB5dGhvbi5wbmc/YnJhbmNoPW1hc3RlcgotICA6dGFyZ2V0OiBo
dHRwczovL3RyYXZpcy1jaS5vcmcvaHRtbDVsaWIvaHRtbDVsaWItcHl0aG9uCi0KLWh0bWw1bGli
IGlzIGEgcHVyZS1weXRob24gbGlicmFyeSBmb3IgcGFyc2luZyBIVE1MLiBJdCBpcyBkZXNpZ25l
ZCB0bwotY29uZm9ybSB0byB0aGUgV0hBVFdHIEhUTUwgc3BlY2lmaWNhdGlvbiwgYXMgaXMgaW1w
bGVtZW50ZWQgYnkgYWxsIG1ham9yCi13ZWIgYnJvd3NlcnMuCi0KLQotVXNhZ2UKLS0tLS0tCi0K
LVNpbXBsZSB1c2FnZSBmb2xsb3dzIHRoaXMgcGF0dGVybjoKLQotLi4gY29kZS1ibG9jazo6IHB5
dGhvbgotCi0gIGltcG9ydCBodG1sNWxpYgotICB3aXRoIG9wZW4oIm15ZG9jdW1lbnQuaHRtbCIs
ICJyYiIpIGFzIGY6Ci0gICAgICBkb2N1bWVudCA9IGh0bWw1bGliLnBhcnNlKGYpCi0KLW9yOgot
Ci0uLiBjb2RlLWJsb2NrOjogcHl0aG9uCi0KLSAgaW1wb3J0IGh0bWw1bGliCi0gIGRvY3VtZW50
ID0gaHRtbDVsaWIucGFyc2UoIjxwPkhlbGxvIFdvcmxkISIpCi0KLUJ5IGRlZmF1bHQsIHRoZSBg
YGRvY3VtZW50YGAgd2lsbCBiZSBhbiBgYHhtbC5ldHJlZWBgIGVsZW1lbnQgaW5zdGFuY2UuCi1X
aGVuZXZlciBwb3NzaWJsZSwgaHRtbDVsaWIgY2hvb3NlcyB0aGUgYWNjZWxlcmF0ZWQgYGBFbGVt
ZW50VHJlZWBgCi1pbXBsZW1lbnRhdGlvbiAoaS5lLiBgYHhtbC5ldHJlZS5jRWxlbWVudFRyZWVg
YCBvbiBQeXRob24gMi54KS4KLQotVHdvIG90aGVyIHRyZWUgdHlwZXMgYXJlIHN1cHBvcnRlZDog
YGB4bWwuZG9tLm1pbmlkb21gYCBhbmQKLWBgbHhtbC5ldHJlZWBgLiBUbyB1c2UgYW4gYWx0ZXJu
YXRpdmUgZm9ybWF0LCBzcGVjaWZ5IHRoZSBuYW1lIG9mCi1hIHRyZWVidWlsZGVyOgotCi0uLiBj
b2RlLWJsb2NrOjogcHl0aG9uCi0KLSAgaW1wb3J0IGh0bWw1bGliCi0gIHdpdGggb3BlbigibXlk
b2N1bWVudC5odG1sIiwgInJiIikgYXMgZjoKLSAgICAgIGx4bWxfZXRyZWVfZG9jdW1lbnQgPSBo
dG1sNWxpYi5wYXJzZShmLCB0cmVlYnVpbGRlcj0ibHhtbCIpCi0KLVdoZW4gdXNpbmcgd2l0aCBg
YHVybGxpYjJgYCAoUHl0aG9uIDIpLCB0aGUgY2hhcnNldCBmcm9tIEhUVFAgc2hvdWxkIGJlCi1w
YXNzIGludG8gaHRtbDVsaWIgYXMgZm9sbG93czoKLQotLi4gY29kZS1ibG9jazo6IHB5dGhvbgot
Ci0gIGZyb20gY29udGV4dGxpYiBpbXBvcnQgY2xvc2luZwotICBmcm9tIHVybGxpYjIgaW1wb3J0
IHVybG9wZW4KLSAgaW1wb3J0IGh0bWw1bGliCi0KLSAgd2l0aCBjbG9zaW5nKHVybG9wZW4oImh0
dHA6Ly9leGFtcGxlLmNvbS8iKSkgYXMgZjoKLSAgICAgIGRvY3VtZW50ID0gaHRtbDVsaWIucGFy
c2UoZiwgZW5jb2Rpbmc9Zi5pbmZvKCkuZ2V0cGFyYW0oImNoYXJzZXQiKSkKLQotV2hlbiB1c2lu
ZyB3aXRoIGBgdXJsbGliLnJlcXVlc3RgYCAoUHl0aG9uIDMpLCB0aGUgY2hhcnNldCBmcm9tIEhU
VFAKLXNob3VsZCBiZSBwYXNzIGludG8gaHRtbDVsaWIgYXMgZm9sbG93czoKLQotLi4gY29kZS1i
bG9jazo6IHB5dGhvbgotCi0gIGZyb20gdXJsbGliLnJlcXVlc3QgaW1wb3J0IHVybG9wZW4KLSAg
aW1wb3J0IGh0bWw1bGliCi0KLSAgd2l0aCB1cmxvcGVuKCJodHRwOi8vZXhhbXBsZS5jb20vIikg
YXMgZjoKLSAgICAgIGRvY3VtZW50ID0gaHRtbDVsaWIucGFyc2UoZiwgZW5jb2Rpbmc9Zi5pbmZv
KCkuZ2V0X2NvbnRlbnRfY2hhcnNldCgpKQotCi1UbyBoYXZlIG1vcmUgY29udHJvbCBvdmVyIHRo
ZSBwYXJzZXIsIGNyZWF0ZSBhIHBhcnNlciBvYmplY3QgZXhwbGljaXRseS4KLUZvciBpbnN0YW5j
ZSwgdG8gbWFrZSB0aGUgcGFyc2VyIHJhaXNlIGV4Y2VwdGlvbnMgb24gcGFyc2UgZXJyb3JzLCB1
c2U6Ci0KLS4uIGNvZGUtYmxvY2s6OiBweXRob24KLQotICBpbXBvcnQgaHRtbDVsaWIKLSAgd2l0
aCBvcGVuKCJteWRvY3VtZW50Lmh0bWwiLCAicmIiKSBhcyBmOgotICAgICAgcGFyc2VyID0gaHRt
bDVsaWIuSFRNTFBhcnNlcihzdHJpY3Q9VHJ1ZSkKLSAgICAgIGRvY3VtZW50ID0gcGFyc2VyLnBh
cnNlKGYpCi0KLVdoZW4geW91J3JlIGluc3RhbnRpYXRpbmcgcGFyc2VyIG9iamVjdHMgZXhwbGlj
aXRseSwgcGFzcyBhIHRyZWVidWlsZGVyCi1jbGFzcyBhcyB0aGUgYGB0cmVlYGAga2V5d29yZCBh
cmd1bWVudCB0byB1c2UgYW4gYWx0ZXJuYXRpdmUgZG9jdW1lbnQKLWZvcm1hdDoKLQotLi4gY29k
ZS1ibG9jazo6IHB5dGhvbgotCi0gIGltcG9ydCBodG1sNWxpYgotICBwYXJzZXIgPSBodG1sNWxp
Yi5IVE1MUGFyc2VyKHRyZWU9aHRtbDVsaWIuZ2V0VHJlZUJ1aWxkZXIoImRvbSIpKQotICBtaW5p
ZG9tX2RvY3VtZW50ID0gcGFyc2VyLnBhcnNlKCI8cD5IZWxsbyBXb3JsZCEiKQotCi1Nb3JlIGRv
Y3VtZW50YXRpb24gaXMgYXZhaWxhYmxlIGF0IGh0dHA6Ly9odG1sNWxpYi5yZWFkdGhlZG9jcy5v
cmcvLgotCi0KLUluc3RhbGxhdGlvbgotLS0tLS0tLS0tLS0tCi0KLWh0bWw1bGliIHdvcmtzIG9u
IENQeXRob24gMi42KywgQ1B5dGhvbiAzLjIrIGFuZCBQeVB5LiAgVG8gaW5zdGFsbCBpdCwKLXVz
ZToKLQotLi4gY29kZS1ibG9jazo6IGJhc2gKLQotICAgICQgcGlwIGluc3RhbGwgaHRtbDVsaWIK
LQotCi1PcHRpb25hbCBEZXBlbmRlbmNpZXMKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotCi1UaGUg
Zm9sbG93aW5nIHRoaXJkLXBhcnR5IGxpYnJhcmllcyBtYXkgYmUgdXNlZCBmb3IgYWRkaXRpb25h
bAotZnVuY3Rpb25hbGl0eToKLQotLSBgYGRhdHJpZWBgIGNhbiBiZSB1c2VkIHRvIGltcHJvdmUg
cGFyc2luZyBwZXJmb3JtYW5jZSAodGhvdWdoIGluCi0gIGFsbW9zdCBhbGwgY2FzZXMgdGhlIGlt
cHJvdmVtZW50IGlzIG1hcmdpbmFsKTsKLQotLSBgYGx4bWxgYCBpcyBzdXBwb3J0ZWQgYXMgYSB0
cmVlIGZvcm1hdCAoZm9yIGJvdGggYnVpbGRpbmcgYW5kCi0gIHdhbGtpbmcpIHVuZGVyIENQeXRo
b24gKGJ1dCAqbm90KiBQeVB5IHdoZXJlIGl0IGlzIGtub3duIHRvIGNhdXNlCi0gIHNlZ2ZhdWx0
cyk7Ci0KLS0gYGBnZW5zaGlgYCBoYXMgYSB0cmVld2Fsa2VyIChidXQgbm90IGJ1aWxkZXIpOyBh
bmQKLQotLSBgYGNoYXJhZGVgYCBjYW4gYmUgdXNlZCBhcyBhIGZhbGxiYWNrIHdoZW4gY2hhcmFj
dGVyIGVuY29kaW5nIGNhbm5vdAotICBiZSBkZXRlcm1pbmVkOyBgYGNoYXJkZXRgYCwgZnJvbSB3
aGljaCBpdCB3YXMgZm9ya2VkLCBjYW4gYWxzbyBiZSB1c2VkCi0gIG9uIFB5dGhvbiAyLgotCi0t
IGBgb3JkZXJlZGRpY3RgYCBjYW4gYmUgdXNlZCB1bmRlciBQeXRob24gMi42Ci0gIChgYGNvbGxl
Y3Rpb25zLk9yZGVyZWREaWN0YGAgaXMgdXNlZCBpbnN0ZWFkIG9uIGxhdGVyIHZlcnNpb25zKSB0
bwotICBzZXJpYWxpemUgYXR0cmlidXRlcyBpbiBhbHBoYWJldGljYWwgb3JkZXIuCi0KLQotQnVn
cwotLS0tLQotCi1QbGVhc2UgcmVwb3J0IGFueSBidWdzIG9uIHRoZSBgaXNzdWUgdHJhY2tlcgot
PGh0dHBzOi8vZ2l0aHViLmNvbS9odG1sNWxpYi9odG1sNWxpYi1weXRob24vaXNzdWVzPmBfLgot
Ci0KLVRlc3RzCi0tLS0tLQotCi1Vbml0IHRlc3RzIHJlcXVpcmUgdGhlIGBgbm9zZWBgIGxpYnJh
cnkgYW5kIGNhbiBiZSBydW4gdXNpbmcgdGhlCi1gYG5vc2V0ZXN0c2BgIGNvbW1hbmQgaW4gdGhl
IHJvb3QgZGlyZWN0b3J5OyBgYG9yZGVyZWRkaWN0YGAgaXMKLXJlcXVpcmVkIHVuZGVyIFB5dGhv
biAyLjYuIEFsbCBzaG91bGQgcGFzcy4KLQotVGVzdCBkYXRhIGFyZSBjb250YWluZWQgaW4gYSBz
ZXBhcmF0ZSBgaHRtbDVsaWItdGVzdHMKLTxodHRwczovL2dpdGh1Yi5jb20vaHRtbDVsaWIvaHRt
bDVsaWItdGVzdHM+YF8gcmVwb3NpdG9yeSBhbmQgaW5jbHVkZWQKLWFzIGEgc3VibW9kdWxlLCB0
aHVzIGZvciBnaXQgY2hlY2tvdXRzIHRoZXkgbXVzdCBiZSBpbml0aWFsaXplZDo6Ci0KLSAgJCBn
aXQgc3VibW9kdWxlIGluaXQKLSAgJCBnaXQgc3VibW9kdWxlIHVwZGF0ZQotCi1JZiB5b3UgaGF2
ZSBhbGwgY29tcGF0aWJsZSBQeXRob24gaW1wbGVtZW50YXRpb25zIGF2YWlsYWJsZSBvbiB5b3Vy
Ci1zeXN0ZW0sIHlvdSBjYW4gcnVuIHRlc3RzIG9uIGFsbCBvZiB0aGVtIHVzaW5nIHRoZSBgYHRv
eGBgIHV0aWxpdHksCi13aGljaCBjYW4gYmUgZm91bmQgb24gUHlQSS4KLQotCi1RdWVzdGlvbnM/
Ci0tLS0tLS0tLS0tCi0KLVRoZXJlJ3MgYSBtYWlsaW5nIGxpc3QgYXZhaWxhYmxlIGZvciBzdXBw
b3J0IG9uIEdvb2dsZSBHcm91cHMsCi1gaHRtbDVsaWItZGlzY3VzcyA8aHR0cDovL2dyb3Vwcy5n
b29nbGUuY29tL2dyb3VwL2h0bWw1bGliLWRpc2N1c3M+YF8sCi10aG91Z2ggeW91IG1heSBnZXQg
YSBxdWlja2VyIHJlc3BvbnNlIGFza2luZyBvbiBJUkMgaW4gYCN3aGF0d2cgb24KLWlyYy5mcmVl
bm9kZS5uZXQgPGh0dHA6Ly93aWtpLndoYXR3Zy5vcmcvd2lraS9JUkM+YF8uCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2h0bWw1
bGliL2RlYnVnLWluZm8ucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL2h0bWw1bGliL2RlYnVnLWluZm8ucHkKZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IGI1ZDJiYjZhMzA1NzRhYWMyMzQ5MTQ4NTQwNGI2MjIyMjU2ODM1YzkuLjAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9odG1sNWxpYi9kZWJ1Zy1pbmZvLnB5
CisrKyAvZGV2L251bGwKQEAgLTEsMzcgKzAsMCBAQAotZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCBw
cmludF9mdW5jdGlvbiwgdW5pY29kZV9saXRlcmFscwotCi1pbXBvcnQgcGxhdGZvcm0KLWltcG9y
dCBzeXMKLQotCi1pbmZvID0gewotICAgICJpbXBsIjogcGxhdGZvcm0ucHl0aG9uX2ltcGxlbWVu
dGF0aW9uKCksCi0gICAgInZlcnNpb24iOiBwbGF0Zm9ybS5weXRob25fdmVyc2lvbigpLAotICAg
ICJyZXZpc2lvbiI6IHBsYXRmb3JtLnB5dGhvbl9yZXZpc2lvbigpLAotICAgICJtYXh1bmljb2Rl
Ijogc3lzLm1heHVuaWNvZGUsCi0gICAgIm1heHNpemUiOiBzeXMubWF4c2l6ZQotfQotCi1zZWFy
Y2hfbW9kdWxlcyA9IFsiY2hhcmFkZSIsICJjaGFyZGV0IiwgImRhdHJpZSIsICJnZW5zaGkiLCAi
aHRtbDVsaWIiLCAibHhtbCIsICJzaXgiXQotZm91bmRfbW9kdWxlcyA9IFtdCi0KLWZvciBtIGlu
IHNlYXJjaF9tb2R1bGVzOgotICAgIHRyeToKLSAgICAgICAgX19pbXBvcnRfXyhtKQotICAgIGV4
Y2VwdCBJbXBvcnRFcnJvcjoKLSAgICAgICAgcGFzcwotICAgIGVsc2U6Ci0gICAgICAgIGZvdW5k
X21vZHVsZXMuYXBwZW5kKG0pCi0KLWluZm9bIm1vZHVsZXMiXSA9ICIsICIuam9pbihmb3VuZF9t
b2R1bGVzKQotCi0KLXByaW50KCIiImh0bWw1bGliIGRlYnVnIGluZm86Ci0KLVB5dGhvbiAlKHZl
cnNpb24pcyAocmV2aXNpb246ICUocmV2aXNpb24pcykKLUltcGxlbWVudGF0aW9uOiAlKGltcGwp
cwotCi1zeXMubWF4dW5pY29kZTogJShtYXh1bmljb2RlKVgKLXN5cy5tYXhzaXplOiAlKG1heHNp
emUpWAotCi1JbnN0YWxsZWQgbW9kdWxlczogJShtb2R1bGVzKXMiIiIgJSBpbmZvKQpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9o
dG1sNWxpYi9kb2MvTWFrZWZpbGUgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL2h0bWw1bGliL2RvYy9NYWtlZmlsZQpkZWxldGVkIGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggZTBlNTg2NjdlN2Q5ZTcwMzA4M2M0ZDI5MTVlN2JiOGMyNmM1N2JmNi4uMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2h0bWw1bGliL2RvYy9NYWtlZmls
ZQorKysgL2Rldi9udWxsCkBAIC0xLDE3NyArMCwwIEBACi0jIE1ha2VmaWxlIGZvciBTcGhpbngg
ZG9jdW1lbnRhdGlvbgotIwotCi0jIFlvdSBjYW4gc2V0IHRoZXNlIHZhcmlhYmxlcyBmcm9tIHRo
ZSBjb21tYW5kIGxpbmUuCi1TUEhJTlhPUFRTICAgID0KLVNQSElOWEJVSUxEICAgPSBzcGhpbngt
YnVpbGQKLVBBUEVSICAgICAgICAgPQotQlVJTERESVIgICAgICA9IF9idWlsZAotCi0jIFVzZXIt
ZnJpZW5kbHkgY2hlY2sgZm9yIHNwaGlueC1idWlsZAotaWZlcSAoJChzaGVsbCB3aGljaCAkKFNQ
SElOWEJVSUxEKSA+L2Rldi9udWxsIDI+JjE7IGVjaG8gJCQ/KSwgMSkKLSQoZXJyb3IgVGhlICck
KFNQSElOWEJVSUxEKScgY29tbWFuZCB3YXMgbm90IGZvdW5kLiBNYWtlIHN1cmUgeW91IGhhdmUg
U3BoaW54IGluc3RhbGxlZCwgdGhlbiBzZXQgdGhlIFNQSElOWEJVSUxEIGVudmlyb25tZW50IHZh
cmlhYmxlIHRvIHBvaW50IHRvIHRoZSBmdWxsIHBhdGggb2YgdGhlICckKFNQSElOWEJVSUxEKScg
ZXhlY3V0YWJsZS4gQWx0ZXJuYXRpdmVseSB5b3UgY2FuIGFkZCB0aGUgZGlyZWN0b3J5IHdpdGgg
dGhlIGV4ZWN1dGFibGUgdG8geW91ciBQQVRILiBJZiB5b3UgZG9uJ3QgaGF2ZSBTcGhpbnggaW5z
dGFsbGVkLCBncmFiIGl0IGZyb20gaHR0cDovL3NwaGlueC1kb2Mub3JnLykKLWVuZGlmCi0KLSMg
SW50ZXJuYWwgdmFyaWFibGVzLgotUEFQRVJPUFRfYTQgICAgID0gLUQgbGF0ZXhfcGFwZXJfc2l6
ZT1hNAotUEFQRVJPUFRfbGV0dGVyID0gLUQgbGF0ZXhfcGFwZXJfc2l6ZT1sZXR0ZXIKLUFMTFNQ
SElOWE9QVFMgICA9IC1kICQoQlVJTERESVIpL2RvY3RyZWVzICQoUEFQRVJPUFRfJChQQVBFUikp
ICQoU1BISU5YT1BUUykgLgotIyB0aGUgaTE4biBidWlsZGVyIGNhbm5vdCBzaGFyZSB0aGUgZW52
aXJvbm1lbnQgYW5kIGRvY3RyZWVzIHdpdGggdGhlIG90aGVycwotSTE4TlNQSElOWE9QVFMgID0g
JChQQVBFUk9QVF8kKFBBUEVSKSkgJChTUEhJTlhPUFRTKSAuCi0KLS5QSE9OWTogaGVscCBjbGVh
biBodG1sIGRpcmh0bWwgc2luZ2xlaHRtbCBwaWNrbGUganNvbiBodG1saGVscCBxdGhlbHAgZGV2
aGVscCBlcHViIGxhdGV4IGxhdGV4cGRmIHRleHQgbWFuIGNoYW5nZXMgbGlua2NoZWNrIGRvY3Rl
c3QgZ2V0dGV4dAotCi1oZWxwOgotCUBlY2hvICJQbGVhc2UgdXNlIFxgbWFrZSA8dGFyZ2V0Picg
d2hlcmUgPHRhcmdldD4gaXMgb25lIG9mIgotCUBlY2hvICIgIGh0bWwgICAgICAgdG8gbWFrZSBz
dGFuZGFsb25lIEhUTUwgZmlsZXMiCi0JQGVjaG8gIiAgZGlyaHRtbCAgICB0byBtYWtlIEhUTUwg
ZmlsZXMgbmFtZWQgaW5kZXguaHRtbCBpbiBkaXJlY3RvcmllcyIKLQlAZWNobyAiICBzaW5nbGVo
dG1sIHRvIG1ha2UgYSBzaW5nbGUgbGFyZ2UgSFRNTCBmaWxlIgotCUBlY2hvICIgIHBpY2tsZSAg
ICAgdG8gbWFrZSBwaWNrbGUgZmlsZXMiCi0JQGVjaG8gIiAganNvbiAgICAgICB0byBtYWtlIEpT
T04gZmlsZXMiCi0JQGVjaG8gIiAgaHRtbGhlbHAgICB0byBtYWtlIEhUTUwgZmlsZXMgYW5kIGEg
SFRNTCBoZWxwIHByb2plY3QiCi0JQGVjaG8gIiAgcXRoZWxwICAgICB0byBtYWtlIEhUTUwgZmls
ZXMgYW5kIGEgcXRoZWxwIHByb2plY3QiCi0JQGVjaG8gIiAgZGV2aGVscCAgICB0byBtYWtlIEhU
TUwgZmlsZXMgYW5kIGEgRGV2aGVscCBwcm9qZWN0IgotCUBlY2hvICIgIGVwdWIgICAgICAgdG8g
bWFrZSBhbiBlcHViIgotCUBlY2hvICIgIGxhdGV4ICAgICAgdG8gbWFrZSBMYVRlWCBmaWxlcywg
eW91IGNhbiBzZXQgUEFQRVI9YTQgb3IgUEFQRVI9bGV0dGVyIgotCUBlY2hvICIgIGxhdGV4cGRm
ICAgdG8gbWFrZSBMYVRlWCBmaWxlcyBhbmQgcnVuIHRoZW0gdGhyb3VnaCBwZGZsYXRleCIKLQlA
ZWNobyAiICBsYXRleHBkZmphIHRvIG1ha2UgTGFUZVggZmlsZXMgYW5kIHJ1biB0aGVtIHRocm91
Z2ggcGxhdGV4L2R2aXBkZm14IgotCUBlY2hvICIgIHRleHQgICAgICAgdG8gbWFrZSB0ZXh0IGZp
bGVzIgotCUBlY2hvICIgIG1hbiAgICAgICAgdG8gbWFrZSBtYW51YWwgcGFnZXMiCi0JQGVjaG8g
IiAgdGV4aW5mbyAgICB0byBtYWtlIFRleGluZm8gZmlsZXMiCi0JQGVjaG8gIiAgaW5mbyAgICAg
ICB0byBtYWtlIFRleGluZm8gZmlsZXMgYW5kIHJ1biB0aGVtIHRocm91Z2ggbWFrZWluZm8iCi0J
QGVjaG8gIiAgZ2V0dGV4dCAgICB0byBtYWtlIFBPIG1lc3NhZ2UgY2F0YWxvZ3MiCi0JQGVjaG8g
IiAgY2hhbmdlcyAgICB0byBtYWtlIGFuIG92ZXJ2aWV3IG9mIGFsbCBjaGFuZ2VkL2FkZGVkL2Rl
cHJlY2F0ZWQgaXRlbXMiCi0JQGVjaG8gIiAgeG1sICAgICAgICB0byBtYWtlIERvY3V0aWxzLW5h
dGl2ZSBYTUwgZmlsZXMiCi0JQGVjaG8gIiAgcHNldWRveG1sICB0byBtYWtlIHBzZXVkb3htbC1Y
TUwgZmlsZXMgZm9yIGRpc3BsYXkgcHVycG9zZXMiCi0JQGVjaG8gIiAgbGlua2NoZWNrICB0byBj
aGVjayBhbGwgZXh0ZXJuYWwgbGlua3MgZm9yIGludGVncml0eSIKLQlAZWNobyAiICBkb2N0ZXN0
ICAgIHRvIHJ1biBhbGwgZG9jdGVzdHMgZW1iZWRkZWQgaW4gdGhlIGRvY3VtZW50YXRpb24gKGlm
IGVuYWJsZWQpIgotCi1jbGVhbjoKLQlybSAtcmYgJChCVUlMRERJUikvKgotCi1odG1sOgotCSQo
U1BISU5YQlVJTEQpIC1iIGh0bWwgJChBTExTUEhJTlhPUFRTKSAkKEJVSUxERElSKS9odG1sCi0J
QGVjaG8KLQlAZWNobyAiQnVpbGQgZmluaXNoZWQuIFRoZSBIVE1MIHBhZ2VzIGFyZSBpbiAkKEJV
SUxERElSKS9odG1sLiIKLQotZGlyaHRtbDoKLQkkKFNQSElOWEJVSUxEKSAtYiBkaXJodG1sICQo
QUxMU1BISU5YT1BUUykgJChCVUlMRERJUikvZGlyaHRtbAotCUBlY2hvCi0JQGVjaG8gIkJ1aWxk
IGZpbmlzaGVkLiBUaGUgSFRNTCBwYWdlcyBhcmUgaW4gJChCVUlMRERJUikvZGlyaHRtbC4iCi0K
LXNpbmdsZWh0bWw6Ci0JJChTUEhJTlhCVUlMRCkgLWIgc2luZ2xlaHRtbCAkKEFMTFNQSElOWE9Q
VFMpICQoQlVJTERESVIpL3NpbmdsZWh0bWwKLQlAZWNobwotCUBlY2hvICJCdWlsZCBmaW5pc2hl
ZC4gVGhlIEhUTUwgcGFnZSBpcyBpbiAkKEJVSUxERElSKS9zaW5nbGVodG1sLiIKLQotcGlja2xl
OgotCSQoU1BISU5YQlVJTEQpIC1iIHBpY2tsZSAkKEFMTFNQSElOWE9QVFMpICQoQlVJTERESVIp
L3BpY2tsZQotCUBlY2hvCi0JQGVjaG8gIkJ1aWxkIGZpbmlzaGVkOyBub3cgeW91IGNhbiBwcm9j
ZXNzIHRoZSBwaWNrbGUgZmlsZXMuIgotCi1qc29uOgotCSQoU1BISU5YQlVJTEQpIC1iIGpzb24g
JChBTExTUEhJTlhPUFRTKSAkKEJVSUxERElSKS9qc29uCi0JQGVjaG8KLQlAZWNobyAiQnVpbGQg
ZmluaXNoZWQ7IG5vdyB5b3UgY2FuIHByb2Nlc3MgdGhlIEpTT04gZmlsZXMuIgotCi1odG1saGVs
cDoKLQkkKFNQSElOWEJVSUxEKSAtYiBodG1saGVscCAkKEFMTFNQSElOWE9QVFMpICQoQlVJTERE
SVIpL2h0bWxoZWxwCi0JQGVjaG8KLQlAZWNobyAiQnVpbGQgZmluaXNoZWQ7IG5vdyB5b3UgY2Fu
IHJ1biBIVE1MIEhlbHAgV29ya3Nob3Agd2l0aCB0aGUiIFwKLQkgICAgICAiLmhocCBwcm9qZWN0
IGZpbGUgaW4gJChCVUlMRERJUikvaHRtbGhlbHAuIgotCi1xdGhlbHA6Ci0JJChTUEhJTlhCVUlM
RCkgLWIgcXRoZWxwICQoQUxMU1BISU5YT1BUUykgJChCVUlMRERJUikvcXRoZWxwCi0JQGVjaG8K
LQlAZWNobyAiQnVpbGQgZmluaXNoZWQ7IG5vdyB5b3UgY2FuIHJ1biAicWNvbGxlY3Rpb25nZW5l
cmF0b3IiIHdpdGggdGhlIiBcCi0JICAgICAgIi5xaGNwIHByb2plY3QgZmlsZSBpbiAkKEJVSUxE
RElSKS9xdGhlbHAsIGxpa2UgdGhpczoiCi0JQGVjaG8gIiMgcWNvbGxlY3Rpb25nZW5lcmF0b3Ig
JChCVUlMRERJUikvcXRoZWxwL2h0bWw1bGliLnFoY3AiCi0JQGVjaG8gIlRvIHZpZXcgdGhlIGhl
bHAgZmlsZToiCi0JQGVjaG8gIiMgYXNzaXN0YW50IC1jb2xsZWN0aW9uRmlsZSAkKEJVSUxERElS
KS9xdGhlbHAvaHRtbDVsaWIucWhjIgotCi1kZXZoZWxwOgotCSQoU1BISU5YQlVJTEQpIC1iIGRl
dmhlbHAgJChBTExTUEhJTlhPUFRTKSAkKEJVSUxERElSKS9kZXZoZWxwCi0JQGVjaG8KLQlAZWNo
byAiQnVpbGQgZmluaXNoZWQuIgotCUBlY2hvICJUbyB2aWV3IHRoZSBoZWxwIGZpbGU6IgotCUBl
Y2hvICIjIG1rZGlyIC1wICQkSE9NRS8ubG9jYWwvc2hhcmUvZGV2aGVscC9odG1sNWxpYiIKLQlA
ZWNobyAiIyBsbiAtcyAkKEJVSUxERElSKS9kZXZoZWxwICQkSE9NRS8ubG9jYWwvc2hhcmUvZGV2
aGVscC9odG1sNWxpYiIKLQlAZWNobyAiIyBkZXZoZWxwIgotCi1lcHViOgotCSQoU1BISU5YQlVJ
TEQpIC1iIGVwdWIgJChBTExTUEhJTlhPUFRTKSAkKEJVSUxERElSKS9lcHViCi0JQGVjaG8KLQlA
ZWNobyAiQnVpbGQgZmluaXNoZWQuIFRoZSBlcHViIGZpbGUgaXMgaW4gJChCVUlMRERJUikvZXB1
Yi4iCi0KLWxhdGV4OgotCSQoU1BISU5YQlVJTEQpIC1iIGxhdGV4ICQoQUxMU1BISU5YT1BUUykg
JChCVUlMRERJUikvbGF0ZXgKLQlAZWNobwotCUBlY2hvICJCdWlsZCBmaW5pc2hlZDsgdGhlIExh
VGVYIGZpbGVzIGFyZSBpbiAkKEJVSUxERElSKS9sYXRleC4iCi0JQGVjaG8gIlJ1biBcYG1ha2Un
IGluIHRoYXQgZGlyZWN0b3J5IHRvIHJ1biB0aGVzZSB0aHJvdWdoIChwZGYpbGF0ZXgiIFwKLQkg
ICAgICAiKHVzZSBcYG1ha2UgbGF0ZXhwZGYnIGhlcmUgdG8gZG8gdGhhdCBhdXRvbWF0aWNhbGx5
KS4iCi0KLWxhdGV4cGRmOgotCSQoU1BISU5YQlVJTEQpIC1iIGxhdGV4ICQoQUxMU1BISU5YT1BU
UykgJChCVUlMRERJUikvbGF0ZXgKLQlAZWNobyAiUnVubmluZyBMYVRlWCBmaWxlcyB0aHJvdWdo
IHBkZmxhdGV4Li4uIgotCSQoTUFLRSkgLUMgJChCVUlMRERJUikvbGF0ZXggYWxsLXBkZgotCUBl
Y2hvICJwZGZsYXRleCBmaW5pc2hlZDsgdGhlIFBERiBmaWxlcyBhcmUgaW4gJChCVUlMRERJUikv
bGF0ZXguIgotCi1sYXRleHBkZmphOgotCSQoU1BISU5YQlVJTEQpIC1iIGxhdGV4ICQoQUxMU1BI
SU5YT1BUUykgJChCVUlMRERJUikvbGF0ZXgKLQlAZWNobyAiUnVubmluZyBMYVRlWCBmaWxlcyB0
aHJvdWdoIHBsYXRleCBhbmQgZHZpcGRmbXguLi4iCi0JJChNQUtFKSAtQyAkKEJVSUxERElSKS9s
YXRleCBhbGwtcGRmLWphCi0JQGVjaG8gInBkZmxhdGV4IGZpbmlzaGVkOyB0aGUgUERGIGZpbGVz
IGFyZSBpbiAkKEJVSUxERElSKS9sYXRleC4iCi0KLXRleHQ6Ci0JJChTUEhJTlhCVUlMRCkgLWIg
dGV4dCAkKEFMTFNQSElOWE9QVFMpICQoQlVJTERESVIpL3RleHQKLQlAZWNobwotCUBlY2hvICJC
dWlsZCBmaW5pc2hlZC4gVGhlIHRleHQgZmlsZXMgYXJlIGluICQoQlVJTERESVIpL3RleHQuIgot
Ci1tYW46Ci0JJChTUEhJTlhCVUlMRCkgLWIgbWFuICQoQUxMU1BISU5YT1BUUykgJChCVUlMRERJ
UikvbWFuCi0JQGVjaG8KLQlAZWNobyAiQnVpbGQgZmluaXNoZWQuIFRoZSBtYW51YWwgcGFnZXMg
YXJlIGluICQoQlVJTERESVIpL21hbi4iCi0KLXRleGluZm86Ci0JJChTUEhJTlhCVUlMRCkgLWIg
dGV4aW5mbyAkKEFMTFNQSElOWE9QVFMpICQoQlVJTERESVIpL3RleGluZm8KLQlAZWNobwotCUBl
Y2hvICJCdWlsZCBmaW5pc2hlZC4gVGhlIFRleGluZm8gZmlsZXMgYXJlIGluICQoQlVJTERESVIp
L3RleGluZm8uIgotCUBlY2hvICJSdW4gXGBtYWtlJyBpbiB0aGF0IGRpcmVjdG9yeSB0byBydW4g
dGhlc2UgdGhyb3VnaCBtYWtlaW5mbyIgXAotCSAgICAgICIodXNlIFxgbWFrZSBpbmZvJyBoZXJl
IHRvIGRvIHRoYXQgYXV0b21hdGljYWxseSkuIgotCi1pbmZvOgotCSQoU1BISU5YQlVJTEQpIC1i
IHRleGluZm8gJChBTExTUEhJTlhPUFRTKSAkKEJVSUxERElSKS90ZXhpbmZvCi0JQGVjaG8gIlJ1
bm5pbmcgVGV4aW5mbyBmaWxlcyB0aHJvdWdoIG1ha2VpbmZvLi4uIgotCW1ha2UgLUMgJChCVUlM
RERJUikvdGV4aW5mbyBpbmZvCi0JQGVjaG8gIm1ha2VpbmZvIGZpbmlzaGVkOyB0aGUgSW5mbyBm
aWxlcyBhcmUgaW4gJChCVUlMRERJUikvdGV4aW5mby4iCi0KLWdldHRleHQ6Ci0JJChTUEhJTlhC
VUlMRCkgLWIgZ2V0dGV4dCAkKEkxOE5TUEhJTlhPUFRTKSAkKEJVSUxERElSKS9sb2NhbGUKLQlA
ZWNobwotCUBlY2hvICJCdWlsZCBmaW5pc2hlZC4gVGhlIG1lc3NhZ2UgY2F0YWxvZ3MgYXJlIGlu
ICQoQlVJTERESVIpL2xvY2FsZS4iCi0KLWNoYW5nZXM6Ci0JJChTUEhJTlhCVUlMRCkgLWIgY2hh
bmdlcyAkKEFMTFNQSElOWE9QVFMpICQoQlVJTERESVIpL2NoYW5nZXMKLQlAZWNobwotCUBlY2hv
ICJUaGUgb3ZlcnZpZXcgZmlsZSBpcyBpbiAkKEJVSUxERElSKS9jaGFuZ2VzLiIKLQotbGlua2No
ZWNrOgotCSQoU1BISU5YQlVJTEQpIC1iIGxpbmtjaGVjayAkKEFMTFNQSElOWE9QVFMpICQoQlVJ
TERESVIpL2xpbmtjaGVjawotCUBlY2hvCi0JQGVjaG8gIkxpbmsgY2hlY2sgY29tcGxldGU7IGxv
b2sgZm9yIGFueSBlcnJvcnMgaW4gdGhlIGFib3ZlIG91dHB1dCAiIFwKLQkgICAgICAib3IgaW4g
JChCVUlMRERJUikvbGlua2NoZWNrL291dHB1dC50eHQuIgotCi1kb2N0ZXN0OgotCSQoU1BISU5Y
QlVJTEQpIC1iIGRvY3Rlc3QgJChBTExTUEhJTlhPUFRTKSAkKEJVSUxERElSKS9kb2N0ZXN0Ci0J
QGVjaG8gIlRlc3Rpbmcgb2YgZG9jdGVzdHMgaW4gdGhlIHNvdXJjZXMgZmluaXNoZWQsIGxvb2sg
YXQgdGhlICIgXAotCSAgICAgICJyZXN1bHRzIGluICQoQlVJTERESVIpL2RvY3Rlc3Qvb3V0cHV0
LnR4dC4iCi0KLXhtbDoKLQkkKFNQSElOWEJVSUxEKSAtYiB4bWwgJChBTExTUEhJTlhPUFRTKSAk
KEJVSUxERElSKS94bWwKLQlAZWNobwotCUBlY2hvICJCdWlsZCBmaW5pc2hlZC4gVGhlIFhNTCBm
aWxlcyBhcmUgaW4gJChCVUlMRERJUikveG1sLiIKLQotcHNldWRveG1sOgotCSQoU1BISU5YQlVJ
TEQpIC1iIHBzZXVkb3htbCAkKEFMTFNQSElOWE9QVFMpICQoQlVJTERESVIpL3BzZXVkb3htbAot
CUBlY2hvCi0JQGVjaG8gIkJ1aWxkIGZpbmlzaGVkLiBUaGUgcHNldWRvLVhNTCBmaWxlcyBhcmUg
aW4gJChCVUlMRERJUikvcHNldWRveG1sLiIKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvaHRtbDVsaWIvZG9jL2NoYW5nZXMucnN0
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9odG1s
NWxpYi9kb2MvY2hhbmdlcy5yc3QKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGRlZDNi
NzA1ZDBmZTQzMTRkNzFhNmI1MzJiMmRkYjBhNDc2NWQ4NzIuLjAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy9odG1sNWxpYi9kb2MvY2hhbmdlcy5yc3QKKysrIC9kZXYvbnVs
bApAQCAtMSwzICswLDAgQEAKLS4uIDpjaGFuZ2Vsb2c6Ci0KLS4uIGluY2x1ZGU6OiAuLi9DSEFO
R0VTLnJzdApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy9odG1sNWxpYi9kb2MvY29uZi5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvaHRtbDVsaWIvZG9jL2NvbmYucHkKZGVsZXRl
ZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDQzNGYyMWM0MmViYzUyOTYzYjFlZGVlYTJiMGU3Mjgx
ZjAxYjE2ZDAuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9odG1sNWxp
Yi9kb2MvY29uZi5weQorKysgL2Rldi9udWxsCkBAIC0xLDI4MCArMCwwIEBACi0jIS91c3IvYmlu
L2VudiBweXRob24zCi0jIC0qLSBjb2Rpbmc6IHV0Zi04IC0qLQotIwotIyBodG1sNWxpYiBkb2N1
bWVudGF0aW9uIGJ1aWxkIGNvbmZpZ3VyYXRpb24gZmlsZSwgY3JlYXRlZCBieQotIyBzcGhpbngt
cXVpY2tzdGFydCBvbiBXZWQgTWF5ICA4IDAwOjA0OjQ5IDIwMTMuCi0jCi0jIFRoaXMgZmlsZSBp
cyBleGVjZmlsZSgpZCB3aXRoIHRoZSBjdXJyZW50IGRpcmVjdG9yeSBzZXQgdG8gaXRzIGNvbnRh
aW5pbmcgZGlyLgotIwotIyBOb3RlIHRoYXQgbm90IGFsbCBwb3NzaWJsZSBjb25maWd1cmF0aW9u
IHZhbHVlcyBhcmUgcHJlc2VudCBpbiB0aGlzCi0jIGF1dG9nZW5lcmF0ZWQgZmlsZS4KLSMKLSMg
QWxsIGNvbmZpZ3VyYXRpb24gdmFsdWVzIGhhdmUgYSBkZWZhdWx0OyB2YWx1ZXMgdGhhdCBhcmUg
Y29tbWVudGVkIG91dAotIyBzZXJ2ZSB0byBzaG93IHRoZSBkZWZhdWx0LgotCi1pbXBvcnQgc3lz
LCBvcwotCi0jIElmIGV4dGVuc2lvbnMgKG9yIG1vZHVsZXMgdG8gZG9jdW1lbnQgd2l0aCBhdXRv
ZG9jKSBhcmUgaW4gYW5vdGhlciBkaXJlY3RvcnksCi0jIGFkZCB0aGVzZSBkaXJlY3RvcmllcyB0
byBzeXMucGF0aCBoZXJlLiBJZiB0aGUgZGlyZWN0b3J5IGlzIHJlbGF0aXZlIHRvIHRoZQotIyBk
b2N1bWVudGF0aW9uIHJvb3QsIHVzZSBvcy5wYXRoLmFic3BhdGggdG8gbWFrZSBpdCBhYnNvbHV0
ZSwgbGlrZSBzaG93biBoZXJlLgotI3N5cy5wYXRoLmluc2VydCgwLCBvcy5wYXRoLmFic3BhdGgo
Jy4nKSkKLQotIyAtLSBHZW5lcmFsIGNvbmZpZ3VyYXRpb24gLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLQotIyBJZiB5b3VyIGRvY3VtZW50YXRp
b24gbmVlZHMgYSBtaW5pbWFsIFNwaGlueCB2ZXJzaW9uLCBzdGF0ZSBpdCBoZXJlLgotI25lZWRz
X3NwaGlueCA9ICcxLjAnCi0KLSMgQWRkIGFueSBTcGhpbnggZXh0ZW5zaW9uIG1vZHVsZSBuYW1l
cyBoZXJlLCBhcyBzdHJpbmdzLiBUaGV5IGNhbiBiZSBleHRlbnNpb25zCi0jIGNvbWluZyB3aXRo
IFNwaGlueCAobmFtZWQgJ3NwaGlueC5leHQuKicpIG9yIHlvdXIgY3VzdG9tIG9uZXMuCi1leHRl
bnNpb25zID0gWydzcGhpbnguZXh0LmF1dG9kb2MnLCAnc3BoaW54LmV4dC5kb2N0ZXN0JywgJ3Nw
aGlueC5leHQudmlld2NvZGUnXQotCi0jIEFkZCBhbnkgcGF0aHMgdGhhdCBjb250YWluIHRlbXBs
YXRlcyBoZXJlLCByZWxhdGl2ZSB0byB0aGlzIGRpcmVjdG9yeS4KLXRlbXBsYXRlc19wYXRoID0g
WydfdGVtcGxhdGVzJ10KLQotIyBUaGUgc3VmZml4IG9mIHNvdXJjZSBmaWxlbmFtZXMuCi1zb3Vy
Y2Vfc3VmZml4ID0gJy5yc3QnCi0KLSMgVGhlIGVuY29kaW5nIG9mIHNvdXJjZSBmaWxlcy4KLSNz
b3VyY2VfZW5jb2RpbmcgPSAndXRmLTgtc2lnJwotCi0jIFRoZSBtYXN0ZXIgdG9jdHJlZSBkb2N1
bWVudC4KLW1hc3Rlcl9kb2MgPSAnaW5kZXgnCi0KLSMgR2VuZXJhbCBpbmZvcm1hdGlvbiBhYm91
dCB0aGUgcHJvamVjdC4KLXByb2plY3QgPSAnaHRtbDVsaWInCi1jb3B5cmlnaHQgPSAnMjAwNiAt
IDIwMTMsIEphbWVzIEdyYWhhbSwgR2VvZmZyZXkgU25lZGRvbiwgYW5kIGNvbnRyaWJ1dG9ycycK
LQotIyBUaGUgdmVyc2lvbiBpbmZvIGZvciB0aGUgcHJvamVjdCB5b3UncmUgZG9jdW1lbnRpbmcs
IGFjdHMgYXMgcmVwbGFjZW1lbnQgZm9yCi0jIHx2ZXJzaW9ufCBhbmQgfHJlbGVhc2V8LCBhbHNv
IHVzZWQgaW4gdmFyaW91cyBvdGhlciBwbGFjZXMgdGhyb3VnaG91dCB0aGUKLSMgYnVpbHQgZG9j
dW1lbnRzLgotIwotIyBUaGUgc2hvcnQgWC5ZIHZlcnNpb24uCi12ZXJzaW9uID0gJzEuMCcKLSMg
VGhlIGZ1bGwgdmVyc2lvbiwgaW5jbHVkaW5nIGFscGhhL2JldGEvcmMgdGFncy4KLXN5cy5wYXRo
LmFwcGVuZChvcy5wYXRoLmFic3BhdGgoJy4uJykpCi1mcm9tIGh0bWw1bGliIGltcG9ydCBfX3Zl
cnNpb25fXwotcmVsZWFzZSA9IF9fdmVyc2lvbl9fCi0KLSMgVGhlIGxhbmd1YWdlIGZvciBjb250
ZW50IGF1dG9nZW5lcmF0ZWQgYnkgU3BoaW54LiBSZWZlciB0byBkb2N1bWVudGF0aW9uCi0jIGZv
ciBhIGxpc3Qgb2Ygc3VwcG9ydGVkIGxhbmd1YWdlcy4KLSNsYW5ndWFnZSA9ICdlbicKLQotIyBU
aGVyZSBhcmUgdHdvIG9wdGlvbnMgZm9yIHJlcGxhY2luZyB8dG9kYXl8OiBlaXRoZXIsIHlvdSBz
ZXQgdG9kYXkgdG8gc29tZQotIyBub24tZmFsc2UgdmFsdWUsIHRoZW4gaXQgaXMgdXNlZDoKLSN0
b2RheSA9ICcnCi0jIEVsc2UsIHRvZGF5X2ZtdCBpcyB1c2VkIGFzIHRoZSBmb3JtYXQgZm9yIGEg
c3RyZnRpbWUgY2FsbC4KLSN0b2RheV9mbXQgPSAnJUIgJWQsICVZJwotCi0jIExpc3Qgb2YgcGF0
dGVybnMsIHJlbGF0aXZlIHRvIHNvdXJjZSBkaXJlY3RvcnksIHRoYXQgbWF0Y2ggZmlsZXMgYW5k
Ci0jIGRpcmVjdG9yaWVzIHRvIGlnbm9yZSB3aGVuIGxvb2tpbmcgZm9yIHNvdXJjZSBmaWxlcy4K
LWV4Y2x1ZGVfcGF0dGVybnMgPSBbJ19idWlsZCcsICd0aGVtZSddCi0KLSMgVGhlIHJlU1QgZGVm
YXVsdCByb2xlICh1c2VkIGZvciB0aGlzIG1hcmt1cDogYHRleHRgKSB0byB1c2UgZm9yIGFsbCBk
b2N1bWVudHMuCi0jZGVmYXVsdF9yb2xlID0gTm9uZQotCi0jIElmIHRydWUsICcoKScgd2lsbCBi
ZSBhcHBlbmRlZCB0byA6ZnVuYzogZXRjLiBjcm9zcy1yZWZlcmVuY2UgdGV4dC4KLSNhZGRfZnVu
Y3Rpb25fcGFyZW50aGVzZXMgPSBUcnVlCi0KLSMgSWYgdHJ1ZSwgdGhlIGN1cnJlbnQgbW9kdWxl
IG5hbWUgd2lsbCBiZSBwcmVwZW5kZWQgdG8gYWxsIGRlc2NyaXB0aW9uCi0jIHVuaXQgdGl0bGVz
IChzdWNoIGFzIC4uIGZ1bmN0aW9uOjopLgotI2FkZF9tb2R1bGVfbmFtZXMgPSBUcnVlCi0KLSMg
SWYgdHJ1ZSwgc2VjdGlvbmF1dGhvciBhbmQgbW9kdWxlYXV0aG9yIGRpcmVjdGl2ZXMgd2lsbCBi
ZSBzaG93biBpbiB0aGUKLSMgb3V0cHV0LiBUaGV5IGFyZSBpZ25vcmVkIGJ5IGRlZmF1bHQuCi0j
c2hvd19hdXRob3JzID0gRmFsc2UKLQotIyBUaGUgbmFtZSBvZiB0aGUgUHlnbWVudHMgKHN5bnRh
eCBoaWdobGlnaHRpbmcpIHN0eWxlIHRvIHVzZS4KLXB5Z21lbnRzX3N0eWxlID0gJ3NwaGlueCcK
LQotIyBBIGxpc3Qgb2YgaWdub3JlZCBwcmVmaXhlcyBmb3IgbW9kdWxlIGluZGV4IHNvcnRpbmcu
Ci0jbW9kaW5kZXhfY29tbW9uX3ByZWZpeCA9IFtdCi0KLSMgSWYgdHJ1ZSwga2VlcCB3YXJuaW5n
cyBhcyAic3lzdGVtIG1lc3NhZ2UiIHBhcmFncmFwaHMgaW4gdGhlIGJ1aWx0IGRvY3VtZW50cy4K
LSNrZWVwX3dhcm5pbmdzID0gRmFsc2UKLQotCi0jIC0tIE9wdGlvbnMgZm9yIEhUTUwgb3V0cHV0
IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotCi0j
IFRoZSB0aGVtZSB0byB1c2UgZm9yIEhUTUwgYW5kIEhUTUwgSGVscCBwYWdlcy4gIFNlZSB0aGUg
ZG9jdW1lbnRhdGlvbiBmb3IKLSMgYSBsaXN0IG9mIGJ1aWx0aW4gdGhlbWVzLgotaHRtbF90aGVt
ZSA9ICdkZWZhdWx0JwotCi0jIFRoZW1lIG9wdGlvbnMgYXJlIHRoZW1lLXNwZWNpZmljIGFuZCBj
dXN0b21pemUgdGhlIGxvb2sgYW5kIGZlZWwgb2YgYSB0aGVtZQotIyBmdXJ0aGVyLiAgRm9yIGEg
bGlzdCBvZiBvcHRpb25zIGF2YWlsYWJsZSBmb3IgZWFjaCB0aGVtZSwgc2VlIHRoZQotIyBkb2N1
bWVudGF0aW9uLgotI2h0bWxfdGhlbWVfb3B0aW9ucyA9IHt9Ci0KLSMgQWRkIGFueSBwYXRocyB0
aGF0IGNvbnRhaW4gY3VzdG9tIHRoZW1lcyBoZXJlLCByZWxhdGl2ZSB0byB0aGlzIGRpcmVjdG9y
eS4KLSNodG1sX3RoZW1lX3BhdGggPSBbXQotCi0jIFRoZSBuYW1lIGZvciB0aGlzIHNldCBvZiBT
cGhpbnggZG9jdW1lbnRzLiAgSWYgTm9uZSwgaXQgZGVmYXVsdHMgdG8KLSMgIjxwcm9qZWN0PiB2
PHJlbGVhc2U+IGRvY3VtZW50YXRpb24iLgotI2h0bWxfdGl0bGUgPSBOb25lCi0KLSMgQSBzaG9y
dGVyIHRpdGxlIGZvciB0aGUgbmF2aWdhdGlvbiBiYXIuICBEZWZhdWx0IGlzIHRoZSBzYW1lIGFz
IGh0bWxfdGl0bGUuCi0jaHRtbF9zaG9ydF90aXRsZSA9IE5vbmUKLQotIyBUaGUgbmFtZSBvZiBh
biBpbWFnZSBmaWxlIChyZWxhdGl2ZSB0byB0aGlzIGRpcmVjdG9yeSkgdG8gcGxhY2UgYXQgdGhl
IHRvcAotIyBvZiB0aGUgc2lkZWJhci4KLSNodG1sX2xvZ28gPSBOb25lCi0KLSMgVGhlIG5hbWUg
b2YgYW4gaW1hZ2UgZmlsZSAod2l0aGluIHRoZSBzdGF0aWMgcGF0aCkgdG8gdXNlIGFzIGZhdmlj
b24gb2YgdGhlCi0jIGRvY3MuICBUaGlzIGZpbGUgc2hvdWxkIGJlIGEgV2luZG93cyBpY29uIGZp
bGUgKC5pY28pIGJlaW5nIDE2eDE2IG9yIDMyeDMyCi0jIHBpeGVscyBsYXJnZS4KLSNodG1sX2Zh
dmljb24gPSBOb25lCi0KLSMgQWRkIGFueSBwYXRocyB0aGF0IGNvbnRhaW4gY3VzdG9tIHN0YXRp
YyBmaWxlcyAoc3VjaCBhcyBzdHlsZSBzaGVldHMpIGhlcmUsCi0jIHJlbGF0aXZlIHRvIHRoaXMg
ZGlyZWN0b3J5LiBUaGV5IGFyZSBjb3BpZWQgYWZ0ZXIgdGhlIGJ1aWx0aW4gc3RhdGljIGZpbGVz
LAotIyBzbyBhIGZpbGUgbmFtZWQgImRlZmF1bHQuY3NzIiB3aWxsIG92ZXJ3cml0ZSB0aGUgYnVp
bHRpbiAiZGVmYXVsdC5jc3MiLgotaHRtbF9zdGF0aWNfcGF0aCA9IFsnX3N0YXRpYyddCi0KLSMg
SWYgbm90ICcnLCBhICdMYXN0IHVwZGF0ZWQgb246JyB0aW1lc3RhbXAgaXMgaW5zZXJ0ZWQgYXQg
ZXZlcnkgcGFnZSBib3R0b20sCi0jIHVzaW5nIHRoZSBnaXZlbiBzdHJmdGltZSBmb3JtYXQuCi0j
aHRtbF9sYXN0X3VwZGF0ZWRfZm10ID0gJyViICVkLCAlWScKLQotIyBJZiB0cnVlLCBTbWFydHlQ
YW50cyB3aWxsIGJlIHVzZWQgdG8gY29udmVydCBxdW90ZXMgYW5kIGRhc2hlcyB0bwotIyB0eXBv
Z3JhcGhpY2FsbHkgY29ycmVjdCBlbnRpdGllcy4KLSNodG1sX3VzZV9zbWFydHlwYW50cyA9IFRy
dWUKLQotIyBDdXN0b20gc2lkZWJhciB0ZW1wbGF0ZXMsIG1hcHMgZG9jdW1lbnQgbmFtZXMgdG8g
dGVtcGxhdGUgbmFtZXMuCi0jaHRtbF9zaWRlYmFycyA9IHt9Ci0KLSMgQWRkaXRpb25hbCB0ZW1w
bGF0ZXMgdGhhdCBzaG91bGQgYmUgcmVuZGVyZWQgdG8gcGFnZXMsIG1hcHMgcGFnZSBuYW1lcyB0
bwotIyB0ZW1wbGF0ZSBuYW1lcy4KLSNodG1sX2FkZGl0aW9uYWxfcGFnZXMgPSB7fQotCi0jIElm
IGZhbHNlLCBubyBtb2R1bGUgaW5kZXggaXMgZ2VuZXJhdGVkLgotI2h0bWxfZG9tYWluX2luZGlj
ZXMgPSBUcnVlCi0KLSMgSWYgZmFsc2UsIG5vIGluZGV4IGlzIGdlbmVyYXRlZC4KLSNodG1sX3Vz
ZV9pbmRleCA9IFRydWUKLQotIyBJZiB0cnVlLCB0aGUgaW5kZXggaXMgc3BsaXQgaW50byBpbmRp
dmlkdWFsIHBhZ2VzIGZvciBlYWNoIGxldHRlci4KLSNodG1sX3NwbGl0X2luZGV4ID0gRmFsc2UK
LQotIyBJZiB0cnVlLCBsaW5rcyB0byB0aGUgcmVTVCBzb3VyY2VzIGFyZSBhZGRlZCB0byB0aGUg
cGFnZXMuCi0jaHRtbF9zaG93X3NvdXJjZWxpbmsgPSBUcnVlCi0KLSMgSWYgdHJ1ZSwgIkNyZWF0
ZWQgdXNpbmcgU3BoaW54IiBpcyBzaG93biBpbiB0aGUgSFRNTCBmb290ZXIuIERlZmF1bHQgaXMg
VHJ1ZS4KLSNodG1sX3Nob3dfc3BoaW54ID0gVHJ1ZQotCi0jIElmIHRydWUsICIoQykgQ29weXJp
Z2h0IC4uLiIgaXMgc2hvd24gaW4gdGhlIEhUTUwgZm9vdGVyLiBEZWZhdWx0IGlzIFRydWUuCi0j
aHRtbF9zaG93X2NvcHlyaWdodCA9IFRydWUKLQotIyBJZiB0cnVlLCBhbiBPcGVuU2VhcmNoIGRl
c2NyaXB0aW9uIGZpbGUgd2lsbCBiZSBvdXRwdXQsIGFuZCBhbGwgcGFnZXMgd2lsbAotIyBjb250
YWluIGEgPGxpbms+IHRhZyByZWZlcnJpbmcgdG8gaXQuICBUaGUgdmFsdWUgb2YgdGhpcyBvcHRp
b24gbXVzdCBiZSB0aGUKLSMgYmFzZSBVUkwgZnJvbSB3aGljaCB0aGUgZmluaXNoZWQgSFRNTCBp
cyBzZXJ2ZWQuCi0jaHRtbF91c2Vfb3BlbnNlYXJjaCA9ICcnCi0KLSMgVGhpcyBpcyB0aGUgZmls
ZSBuYW1lIHN1ZmZpeCBmb3IgSFRNTCBmaWxlcyAoZS5nLiAiLnhodG1sIikuCi0jaHRtbF9maWxl
X3N1ZmZpeCA9IE5vbmUKLQotIyBPdXRwdXQgZmlsZSBiYXNlIG5hbWUgZm9yIEhUTUwgaGVscCBi
dWlsZGVyLgotaHRtbGhlbHBfYmFzZW5hbWUgPSAnaHRtbDVsaWJkb2MnCi0KLQotIyAtLSBPcHRp
b25zIGZvciBMYVRlWCBvdXRwdXQgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0KLQotbGF0ZXhfZWxlbWVudHMgPSB7Ci0jIFRoZSBwYXBlciBzaXplICgn
bGV0dGVycGFwZXInIG9yICdhNHBhcGVyJykuCi0jJ3BhcGVyc2l6ZSc6ICdsZXR0ZXJwYXBlcics
Ci0KLSMgVGhlIGZvbnQgc2l6ZSAoJzEwcHQnLCAnMTFwdCcgb3IgJzEycHQnKS4KLSMncG9pbnRz
aXplJzogJzEwcHQnLAotCi0jIEFkZGl0aW9uYWwgc3R1ZmYgZm9yIHRoZSBMYVRlWCBwcmVhbWJs
ZS4KLSMncHJlYW1ibGUnOiAnJywKLX0KLQotIyBHcm91cGluZyB0aGUgZG9jdW1lbnQgdHJlZSBp
bnRvIExhVGVYIGZpbGVzLiBMaXN0IG9mIHR1cGxlcwotIyAoc291cmNlIHN0YXJ0IGZpbGUsIHRh
cmdldCBuYW1lLCB0aXRsZSwgYXV0aG9yLCBkb2N1bWVudGNsYXNzIFtob3d0by9tYW51YWxdKS4K
LWxhdGV4X2RvY3VtZW50cyA9IFsKLSAgKCdpbmRleCcsICdodG1sNWxpYi50ZXgnLCAnaHRtbDVs
aWIgRG9jdW1lbnRhdGlvbicsCi0gICAnSmFtZXMgR3JhaGFtLCBHZW9mZnJleSBTbmVkZG9uLCBh
bmQgY29udHJpYnV0b3JzJywgJ21hbnVhbCcpLAotXQotCi0jIFRoZSBuYW1lIG9mIGFuIGltYWdl
IGZpbGUgKHJlbGF0aXZlIHRvIHRoaXMgZGlyZWN0b3J5KSB0byBwbGFjZSBhdCB0aGUgdG9wIG9m
Ci0jIHRoZSB0aXRsZSBwYWdlLgotI2xhdGV4X2xvZ28gPSBOb25lCi0KLSMgRm9yICJtYW51YWwi
IGRvY3VtZW50cywgaWYgdGhpcyBpcyB0cnVlLCB0aGVuIHRvcGxldmVsIGhlYWRpbmdzIGFyZSBw
YXJ0cywKLSMgbm90IGNoYXB0ZXJzLgotI2xhdGV4X3VzZV9wYXJ0cyA9IEZhbHNlCi0KLSMgSWYg
dHJ1ZSwgc2hvdyBwYWdlIHJlZmVyZW5jZXMgYWZ0ZXIgaW50ZXJuYWwgbGlua3MuCi0jbGF0ZXhf
c2hvd19wYWdlcmVmcyA9IEZhbHNlCi0KLSMgSWYgdHJ1ZSwgc2hvdyBVUkwgYWRkcmVzc2VzIGFm
dGVyIGV4dGVybmFsIGxpbmtzLgotI2xhdGV4X3Nob3dfdXJscyA9IEZhbHNlCi0KLSMgRG9jdW1l
bnRzIHRvIGFwcGVuZCBhcyBhbiBhcHBlbmRpeCB0byBhbGwgbWFudWFscy4KLSNsYXRleF9hcHBl
bmRpY2VzID0gW10KLQotIyBJZiBmYWxzZSwgbm8gbW9kdWxlIGluZGV4IGlzIGdlbmVyYXRlZC4K
LSNsYXRleF9kb21haW5faW5kaWNlcyA9IFRydWUKLQotCi0jIC0tIE9wdGlvbnMgZm9yIG1hbnVh
bCBwYWdlIG91dHB1dCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LQotCi0jIE9uZSBlbnRyeSBwZXIgbWFudWFsIHBhZ2UuIExpc3Qgb2YgdHVwbGVzCi0jIChzb3Vy
Y2Ugc3RhcnQgZmlsZSwgbmFtZSwgZGVzY3JpcHRpb24sIGF1dGhvcnMsIG1hbnVhbCBzZWN0aW9u
KS4KLW1hbl9wYWdlcyA9IFsKLSAgICAoJ2luZGV4JywgJ2h0bWw1bGliJywgJ2h0bWw1bGliIERv
Y3VtZW50YXRpb24nLAotICAgICBbJ0phbWVzIEdyYWhhbSwgR2VvZmZyZXkgU25lZGRvbiwgYW5k
IGNvbnRyaWJ1dG9ycyddLCAxKQotXQotCi0jIElmIHRydWUsIHNob3cgVVJMIGFkZHJlc3NlcyBh
ZnRlciBleHRlcm5hbCBsaW5rcy4KLSNtYW5fc2hvd191cmxzID0gRmFsc2UKLQotCi0jIC0tIE9w
dGlvbnMgZm9yIFRleGluZm8gb3V0cHV0IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLQotCi0jIEdyb3VwaW5nIHRoZSBkb2N1bWVudCB0cmVlIGludG8gVGV4
aW5mbyBmaWxlcy4gTGlzdCBvZiB0dXBsZXMKLSMgKHNvdXJjZSBzdGFydCBmaWxlLCB0YXJnZXQg
bmFtZSwgdGl0bGUsIGF1dGhvciwKLSMgIGRpciBtZW51IGVudHJ5LCBkZXNjcmlwdGlvbiwgY2F0
ZWdvcnkpCi10ZXhpbmZvX2RvY3VtZW50cyA9IFsKLSAgKCdpbmRleCcsICdodG1sNWxpYicsICdo
dG1sNWxpYiBEb2N1bWVudGF0aW9uJywKLSAgICdKYW1lcyBHcmFoYW0sIEdlb2ZmcmV5IFNuZWRk
b24sIGFuZCBjb250cmlidXRvcnMnLCAnaHRtbDVsaWInLCAnT25lIGxpbmUgZGVzY3JpcHRpb24g
b2YgcHJvamVjdC4nLAotICAgJ01pc2NlbGxhbmVvdXMnKSwKLV0KLQotIyBEb2N1bWVudHMgdG8g
YXBwZW5kIGFzIGFuIGFwcGVuZGl4IHRvIGFsbCBtYW51YWxzLgotI3RleGluZm9fYXBwZW5kaWNl
cyA9IFtdCi0KLSMgSWYgZmFsc2UsIG5vIG1vZHVsZSBpbmRleCBpcyBnZW5lcmF0ZWQuCi0jdGV4
aW5mb19kb21haW5faW5kaWNlcyA9IFRydWUKLQotIyBIb3cgdG8gZGlzcGxheSBVUkwgYWRkcmVz
c2VzOiAnZm9vdG5vdGUnLCAnbm8nLCBvciAnaW5saW5lJy4KLSN0ZXhpbmZvX3Nob3dfdXJscyA9
ICdmb290bm90ZScKLQotIyBJZiB0cnVlLCBkbyBub3QgZ2VuZXJhdGUgYSBAZGV0YWlsbWVudSBp
biB0aGUgIlRvcCIgbm9kZSdzIG1lbnUuCi0jdGV4aW5mb19ub19kZXRhaWxtZW51ID0gRmFsc2UK
LQotY2xhc3MgQ0V4dE1vY2sob2JqZWN0KToKLSAgICAiIiJSZXF1aXJlZCBmb3IgYXV0b2RvYyBv
biByZWFkdGhlZG9jcy5vcmcgd2hlcmUgeW91IGNhbm5vdCBidWlsZCBDIGV4dGVuc2lvbnMuIiIi
Ci0gICAgZGVmIF9faW5pdF9fKHNlbGYsICphcmdzLCAqKmt3YXJncyk6Ci0gICAgICAgIHBhc3MK
LQotICAgIGRlZiBfX2NhbGxfXyhzZWxmLCAqYXJncywgKiprd2FyZ3MpOgotICAgICAgICByZXR1
cm4gQ0V4dE1vY2soKQotCi0gICAgQGNsYXNzbWV0aG9kCi0gICAgZGVmIF9fZ2V0YXR0cl9fKGNs
cywgbmFtZSk6Ci0gICAgICAgIGlmIG5hbWUgaW4gKCdfX2ZpbGVfXycsICdfX3BhdGhfXycpOgot
ICAgICAgICAgICAgcmV0dXJuICcvZGV2L251bGwnCi0gICAgICAgIGVsc2U6Ci0gICAgICAgICAg
ICByZXR1cm4gQ0V4dE1vY2soKQotCi10cnk6Ci0gICAgaW1wb3J0IGx4bWwgICAjIGZsYWtlODog
bm9xYQotZXhjZXB0IEltcG9ydEVycm9yOgotICAgIHN5cy5tb2R1bGVzWydseG1sJ10gPSBDRXh0
TW9jaygpCi0gICAgc3lzLm1vZHVsZXNbJ2x4bWwuZXRyZWUnXSA9IENFeHRNb2NrKCkKLSAgICBw
cmludCgid2FybmluZzogbHhtbCBtb2R1bGVzIG1vY2tlZC4iKQotCi10cnk6Ci0gICAgaW1wb3J0
IGdlbnNoaSAgICMgZmxha2U4OiBub3FhCi1leGNlcHQgSW1wb3J0RXJyb3I6Ci0gICAgc3lzLm1v
ZHVsZXNbJ2dlbnNoaSddID0gQ0V4dE1vY2soKQotICAgIHN5cy5tb2R1bGVzWydnZW5zaGkuY29y
ZSddID0gQ0V4dE1vY2soKQotICAgIHByaW50KCJ3YXJuaW5nOiBnZW5zaGkgbW9kdWxlcyBtb2Nr
ZWQuIikKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvaHRtbDVsaWIvZG9jL2h0bWw1bGliLmZpbHRlcnMucnN0IGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9odG1sNWxpYi9kb2MvaHRt
bDVsaWIuZmlsdGVycy5yc3QKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDFmZGEzOGE3
MzVhMTM2YWE4MzNkZTUwZjk5Y2FjYjZmYTE4Y2VmYWEuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy9odG1sNWxpYi9kb2MvaHRtbDVsaWIuZmlsdGVycy5yc3QKKysrIC9k
ZXYvbnVsbApAQCAtMSw1OSArMCwwIEBACi1maWx0ZXJzIFBhY2thZ2UKLT09PT09PT09PT09PT09
PQotCi06bW9kOmBfYmFzZWAgTW9kdWxlCi0tLS0tLS0tLS0tLS0tLS0tLS0tCi0KLS4uIGF1dG9t
b2R1bGU6OiBodG1sNWxpYi5maWx0ZXJzLl9iYXNlCi0gICAgOm1lbWJlcnM6Ci0gICAgOnVuZG9j
LW1lbWJlcnM6Ci0gICAgOnNob3ctaW5oZXJpdGFuY2U6Ci0KLTptb2Q6YGFscGhhYmV0aWNhbGF0
dHJpYnV0ZXNgIE1vZHVsZQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0K
LS4uIGF1dG9tb2R1bGU6OiBodG1sNWxpYi5maWx0ZXJzLmFscGhhYmV0aWNhbGF0dHJpYnV0ZXMK
LSAgICA6bWVtYmVyczoKLSAgICA6dW5kb2MtbWVtYmVyczoKLSAgICA6c2hvdy1pbmhlcml0YW5j
ZToKLQotOm1vZDpgaW5qZWN0X21ldGFfY2hhcnNldGAgTW9kdWxlCi0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0KLQotLi4gYXV0b21vZHVsZTo6IGh0bWw1bGliLmZpbHRlcnMuaW5q
ZWN0X21ldGFfY2hhcnNldAotICAgIDptZW1iZXJzOgotICAgIDp1bmRvYy1tZW1iZXJzOgotICAg
IDpzaG93LWluaGVyaXRhbmNlOgotCi06bW9kOmBsaW50YCBNb2R1bGUKLS0tLS0tLS0tLS0tLS0t
LS0tLQotCi0uLiBhdXRvbW9kdWxlOjogaHRtbDVsaWIuZmlsdGVycy5saW50Ci0gICAgOm1lbWJl
cnM6Ci0gICAgOnVuZG9jLW1lbWJlcnM6Ci0gICAgOnNob3ctaW5oZXJpdGFuY2U6Ci0KLTptb2Q6
YG9wdGlvbmFsdGFnc2AgTW9kdWxlCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotCi0uLiBh
dXRvbW9kdWxlOjogaHRtbDVsaWIuZmlsdGVycy5vcHRpb25hbHRhZ3MKLSAgICA6bWVtYmVyczoK
LSAgICA6dW5kb2MtbWVtYmVyczoKLSAgICA6c2hvdy1pbmhlcml0YW5jZToKLQotOm1vZDpgc2Fu
aXRpemVyYCBNb2R1bGUKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0KLS4uIGF1dG9tb2R1bGU6
OiBodG1sNWxpYi5maWx0ZXJzLnNhbml0aXplcgotICAgIDptZW1iZXJzOgotICAgIDp1bmRvYy1t
ZW1iZXJzOgotICAgIDpzaG93LWluaGVyaXRhbmNlOgotCi06bW9kOmB3aGl0ZXNwYWNlYCBNb2R1
bGUKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotCi0uLiBhdXRvbW9kdWxlOjogaHRtbDVsaWIu
ZmlsdGVycy53aGl0ZXNwYWNlCi0gICAgOm1lbWJlcnM6Ci0gICAgOnVuZG9jLW1lbWJlcnM6Ci0g
ICAgOnNob3ctaW5oZXJpdGFuY2U6Ci0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvaHRtbDVsaWIvZG9jL2h0bWw1bGliLnJzdCBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvaHRtbDVs
aWIvZG9jL2h0bWw1bGliLnJzdApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZDRlZDEy
YjQ2NDY5ZDBhNTU4YTQ1Yzk0Zjg2NTQ3YWFhYmNlYWJkYy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL2h0bWw1bGliL2RvYy9odG1sNWxpYi5yc3QKKysrIC9kZXYvbnVs
bApAQCAtMSw3NyArMCwwIEBACi1odG1sNWxpYiBQYWNrYWdlCi09PT09PT09PT09PT09PT09Ci0K
LTptb2Q6YGh0bWw1bGliYCBQYWNrYWdlCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotCi0uLiBh
dXRvbW9kdWxlOjogaHRtbDVsaWIuX19pbml0X18KLSAgICA6bWVtYmVyczoKLSAgICA6dW5kb2Mt
bWVtYmVyczoKLSAgICA6c2hvdy1pbmhlcml0YW5jZToKLQotOm1vZDpgY29uc3RhbnRzYCBNb2R1
bGUKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0KLS4uIGF1dG9tb2R1bGU6OiBodG1sNWxpYi5j
b25zdGFudHMKLSAgICA6bWVtYmVyczoKLSAgICA6dW5kb2MtbWVtYmVyczoKLSAgICA6c2hvdy1p
bmhlcml0YW5jZToKLQotOm1vZDpgaHRtbDVwYXJzZXJgIE1vZHVsZQotLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLQotCi0uLiBhdXRvbW9kdWxlOjogaHRtbDVsaWIuaHRtbDVwYXJzZXIKLSAgICA6
bWVtYmVyczoKLSAgICA6dW5kb2MtbWVtYmVyczoKLSAgICA6c2hvdy1pbmhlcml0YW5jZToKLQot
Om1vZDpgaWhhdGV4bWxgIE1vZHVsZQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotCi0uLiBhdXRv
bW9kdWxlOjogaHRtbDVsaWIuaWhhdGV4bWwKLSAgICA6bWVtYmVyczoKLSAgICA6dW5kb2MtbWVt
YmVyczoKLSAgICA6c2hvdy1pbmhlcml0YW5jZToKLQotOm1vZDpgaW5wdXRzdHJlYW1gIE1vZHVs
ZQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotCi0uLiBhdXRvbW9kdWxlOjogaHRtbDVsaWIu
aW5wdXRzdHJlYW0KLSAgICA6bWVtYmVyczoKLSAgICA6dW5kb2MtbWVtYmVyczoKLSAgICA6c2hv
dy1pbmhlcml0YW5jZToKLQotOm1vZDpgc2FuaXRpemVyYCBNb2R1bGUKLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tCi0KLS4uIGF1dG9tb2R1bGU6OiBodG1sNWxpYi5zYW5pdGl6ZXIKLSAgICA6bWVt
YmVyczoKLSAgICA6dW5kb2MtbWVtYmVyczoKLSAgICA6c2hvdy1pbmhlcml0YW5jZToKLQotOm1v
ZDpgdG9rZW5pemVyYCBNb2R1bGUKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0KLS4uIGF1dG9t
b2R1bGU6OiBodG1sNWxpYi50b2tlbml6ZXIKLSAgICA6bWVtYmVyczoKLSAgICA6dW5kb2MtbWVt
YmVyczoKLSAgICA6c2hvdy1pbmhlcml0YW5jZToKLQotOm1vZDpgdXRpbHNgIE1vZHVsZQotLS0t
LS0tLS0tLS0tLS0tLS0tLQotCi0uLiBhdXRvbW9kdWxlOjogaHRtbDVsaWIudXRpbHMKLSAgICA6
bWVtYmVyczoKLSAgICA6dW5kb2MtbWVtYmVyczoKLSAgICA6c2hvdy1pbmhlcml0YW5jZToKLQot
U3VicGFja2FnZXMKLS0tLS0tLS0tLS0tCi0KLS4uIHRvY3RyZWU6OgotCi0gICAgaHRtbDVsaWIu
ZmlsdGVycwotICAgIGh0bWw1bGliLnNlcmlhbGl6ZXIKLSAgICBodG1sNWxpYi50cmVlYnVpbGRl
cnMKLSAgICBodG1sNWxpYi50cmVld2Fsa2VycwotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2h0bWw1bGliL2RvYy9odG1sNWxp
Yi5zZXJpYWxpemVyLnJzdCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvaHRtbDVsaWIvZG9jL2h0bWw1bGliLnNlcmlhbGl6ZXIucnN0CmRlbGV0ZWQg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCBmYTk1NDc0MjFiMTNjNDJhZmUyN2IzMDRkOGU2NTMwNDgx
MDFhMDBmLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvaHRtbDVsaWIv
ZG9jL2h0bWw1bGliLnNlcmlhbGl6ZXIucnN0CisrKyAvZGV2L251bGwKQEAgLTEsMTkgKzAsMCBA
QAotc2VyaWFsaXplciBQYWNrYWdlCi09PT09PT09PT09PT09PT09PT0KLQotOm1vZDpgc2VyaWFs
aXplcmAgUGFja2FnZQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotCi0uLiBhdXRvbW9kdWxl
OjogaHRtbDVsaWIuc2VyaWFsaXplcgotICAgIDptZW1iZXJzOgotICAgIDp1bmRvYy1tZW1iZXJz
OgotICAgIDpzaG93LWluaGVyaXRhbmNlOgotCi06bW9kOmBodG1sc2VyaWFsaXplcmAgTW9kdWxl
Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0KLS4uIGF1dG9tb2R1bGU6OiBodG1sNWxp
Yi5zZXJpYWxpemVyLmh0bWxzZXJpYWxpemVyCi0gICAgOm1lbWJlcnM6Ci0gICAgOnVuZG9jLW1l
bWJlcnM6Ci0gICAgOnNob3ctaW5oZXJpdGFuY2U6Ci0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvaHRtbDVsaWIvZG9jL2h0bWw1
bGliLnRyZWVidWlsZGVycy5yc3QgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL2h0bWw1bGliL2RvYy9odG1sNWxpYi50cmVlYnVpbGRlcnMucnN0CmRl
bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5OTExOTgzOTQ4ZGUzMjI4NjcxNTViOWYyNDNj
M2U1MTBjZDM2Y2E0Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0t
LSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvaHRt
bDVsaWIvZG9jL2h0bWw1bGliLnRyZWVidWlsZGVycy5yc3QKKysrIC9kZXYvbnVsbApAQCAtMSw0
MyArMCwwIEBACi10cmVlYnVpbGRlcnMgUGFja2FnZQotPT09PT09PT09PT09PT09PT09PT0KLQot
Om1vZDpgdHJlZWJ1aWxkZXJzYCBQYWNrYWdlCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K
LQotLi4gYXV0b21vZHVsZTo6IGh0bWw1bGliLnRyZWVidWlsZGVycwotICAgIDptZW1iZXJzOgot
ICAgIDp1bmRvYy1tZW1iZXJzOgotICAgIDpzaG93LWluaGVyaXRhbmNlOgotCi06bW9kOmBfYmFz
ZWAgTW9kdWxlCi0tLS0tLS0tLS0tLS0tLS0tLS0tCi0KLS4uIGF1dG9tb2R1bGU6OiBodG1sNWxp
Yi50cmVlYnVpbGRlcnMuX2Jhc2UKLSAgICA6bWVtYmVyczoKLSAgICA6dW5kb2MtbWVtYmVyczoK
LSAgICA6c2hvdy1pbmhlcml0YW5jZToKLQotOm1vZDpgZG9tYCBNb2R1bGUKLS0tLS0tLS0tLS0t
LS0tLS0tCi0KLS4uIGF1dG9tb2R1bGU6OiBodG1sNWxpYi50cmVlYnVpbGRlcnMuZG9tCi0gICAg
Om1lbWJlcnM6Ci0gICAgOnVuZG9jLW1lbWJlcnM6Ci0gICAgOnNob3ctaW5oZXJpdGFuY2U6Ci0K
LTptb2Q6YGV0cmVlYCBNb2R1bGUKLS0tLS0tLS0tLS0tLS0tLS0tLS0KLQotLi4gYXV0b21vZHVs
ZTo6IGh0bWw1bGliLnRyZWVidWlsZGVycy5ldHJlZQotICAgIDptZW1iZXJzOgotICAgIDp1bmRv
Yy1tZW1iZXJzOgotICAgIDpzaG93LWluaGVyaXRhbmNlOgotCi06bW9kOmBldHJlZV9seG1sYCBN
b2R1bGUKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotCi0uLiBhdXRvbW9kdWxlOjogaHRtbDVs
aWIudHJlZWJ1aWxkZXJzLmV0cmVlX2x4bWwKLSAgICA6bWVtYmVyczoKLSAgICA6dW5kb2MtbWVt
YmVyczoKLSAgICA6c2hvdy1pbmhlcml0YW5jZToKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9odG1sNWxpYi9kb2MvaHRtbDVs
aWIudHJlZXdhbGtlcnMucnN0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy9odG1sNWxpYi9kb2MvaHRtbDVsaWIudHJlZXdhbGtlcnMucnN0CmRlbGV0
ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4MDU5NWUyZDdkMGU1NGUwZWI4ODVmNTBjMjM3Yzlj
MzFjYWUyZmE3Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvaHRtbDVs
aWIvZG9jL2h0bWw1bGliLnRyZWV3YWxrZXJzLnJzdAorKysgL2Rldi9udWxsCkBAIC0xLDU5ICsw
LDAgQEAKLXRyZWV3YWxrZXJzIFBhY2thZ2UKLT09PT09PT09PT09PT09PT09PT0KLQotOm1vZDpg
dHJlZXdhbGtlcnNgIFBhY2thZ2UKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0KLS4uIGF1
dG9tb2R1bGU6OiBodG1sNWxpYi50cmVld2Fsa2VycwotICAgIDptZW1iZXJzOgotICAgIDp1bmRv
Yy1tZW1iZXJzOgotICAgIDpzaG93LWluaGVyaXRhbmNlOgotCi06bW9kOmBfYmFzZWAgTW9kdWxl
Ci0tLS0tLS0tLS0tLS0tLS0tLS0tCi0KLS4uIGF1dG9tb2R1bGU6OiBodG1sNWxpYi50cmVld2Fs
a2Vycy5fYmFzZQotICAgIDptZW1iZXJzOgotICAgIDp1bmRvYy1tZW1iZXJzOgotICAgIDpzaG93
LWluaGVyaXRhbmNlOgotCi06bW9kOmBkb21gIE1vZHVsZQotLS0tLS0tLS0tLS0tLS0tLS0KLQot
Li4gYXV0b21vZHVsZTo6IGh0bWw1bGliLnRyZWV3YWxrZXJzLmRvbQotICAgIDptZW1iZXJzOgot
ICAgIDp1bmRvYy1tZW1iZXJzOgotICAgIDpzaG93LWluaGVyaXRhbmNlOgotCi06bW9kOmBldHJl
ZWAgTW9kdWxlCi0tLS0tLS0tLS0tLS0tLS0tLS0tCi0KLS4uIGF1dG9tb2R1bGU6OiBodG1sNWxp
Yi50cmVld2Fsa2Vycy5ldHJlZQotICAgIDptZW1iZXJzOgotICAgIDp1bmRvYy1tZW1iZXJzOgot
ICAgIDpzaG93LWluaGVyaXRhbmNlOgotCi06bW9kOmBnZW5zaGlzdHJlYW1gIE1vZHVsZQotLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLQotLi4gYXV0b21vZHVsZTo6IGh0bWw1bGliLnRyZWV3
YWxrZXJzLmdlbnNoaXN0cmVhbQotICAgIDptZW1iZXJzOgotICAgIDp1bmRvYy1tZW1iZXJzOgot
ICAgIDpzaG93LWluaGVyaXRhbmNlOgotCi06bW9kOmBseG1sZXRyZWVgIE1vZHVsZQotLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0KLQotLi4gYXV0b21vZHVsZTo6IGh0bWw1bGliLnRyZWV3YWxrZXJz
Lmx4bWxldHJlZQotICAgIDptZW1iZXJzOgotICAgIDp1bmRvYy1tZW1iZXJzOgotICAgIDpzaG93
LWluaGVyaXRhbmNlOgotCi06bW9kOmBwdWxsZG9tYCBNb2R1bGUKLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLQotCi0uLiBhdXRvbW9kdWxlOjogaHRtbDVsaWIudHJlZXdhbGtlcnMucHVsbGRvbQotICAg
IDptZW1iZXJzOgotICAgIDp1bmRvYy1tZW1iZXJzOgotICAgIDpzaG93LWluaGVyaXRhbmNlOgot
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL2h0bWw1bGliL2RvYy9pbmRleC5yc3QgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2h0bWw1bGliL2RvYy9pbmRleC5yc3QKZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IGNhMmUxYjk2OWNkYzlhYjllMzVkMDlmNWI5NWNhMThmMWE0
ZDY2NjEuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9odG1sNWxpYi9k
b2MvaW5kZXgucnN0CisrKyAvZGV2L251bGwKQEAgLTEsMjEgKzAsMCBAQAotT3ZlcnZpZXcKLT09
PT09PT09Ci0KLS4uIGluY2x1ZGU6OiAuLi9SRUFETUUucnN0Ci0gICA6c3RhcnQtbGluZTogNgot
Ci0uLiB0b2N0cmVlOjoKLSAgIDptYXhkZXB0aDogMgotCi0gICBtb3ZpbmdwYXJ0cwotICAgY2hh
bmdlcwotICAgTGljZW5zZSA8bGljZW5zZT4KLQotCi1JbmRpY2VzIGFuZCB0YWJsZXMKLT09PT09
PT09PT09PT09PT09PQotCi0qIDpyZWY6YGdlbmluZGV4YAotKiA6cmVmOmBtb2RpbmRleGAKLSog
OnJlZjpgc2VhcmNoYAotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2h0bWw1bGliL2RvYy9saWNlbnNlLnJzdCBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvaHRtbDVsaWIvZG9jL2xp
Y2Vuc2UucnN0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3ZTYyOTFmM2I5YmVhMzQ1
NDJiZDBiZjRhZjJmZTIzOGQ5ODE5NTJhLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvaHRtbDVsaWIvZG9jL2xpY2Vuc2UucnN0CisrKyAvZGV2L251bGwKQEAgLTEsNCAr
MCwwIEBACi1MaWNlbnNlCi09PT09PT09Ci0KLS4uIGluY2x1ZGU6OiAuLi9MSUNFTlNFCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L2h0bWw1bGliL2RvYy9tYWtlLmJhdCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvaHRtbDVsaWIvZG9jL21ha2UuYmF0CmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCBlODhjNzY5Y2UzM2QzYTJkMTQwOWI2ODMzM2IwNjk5NmJlOWNlMjBkLi4w
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvaHRtbDVsaWIvZG9jL21ha2Uu
YmF0CisrKyAvZGV2L251bGwKQEAgLTEsMjQyICswLDAgQEAKLUBFQ0hPIE9GRg0KLQ0KLVJFTSBD
b21tYW5kIGZpbGUgZm9yIFNwaGlueCBkb2N1bWVudGF0aW9uDQotDQotaWYgIiVTUEhJTlhCVUlM
RCUiID09ICIiICgNCi0Jc2V0IFNQSElOWEJVSUxEPXNwaGlueC1idWlsZA0KLSkNCi1zZXQgQlVJ
TERESVI9X2J1aWxkDQotc2V0IEFMTFNQSElOWE9QVFM9LWQgJUJVSUxERElSJS9kb2N0cmVlcyAl
U1BISU5YT1BUUyUgLg0KLXNldCBJMThOU1BISU5YT1BUUz0lU1BISU5YT1BUUyUgLg0KLWlmIE5P
VCAiJVBBUEVSJSIgPT0gIiIgKA0KLQlzZXQgQUxMU1BISU5YT1BUUz0tRCBsYXRleF9wYXBlcl9z
aXplPSVQQVBFUiUgJUFMTFNQSElOWE9QVFMlDQotCXNldCBJMThOU1BISU5YT1BUUz0tRCBsYXRl
eF9wYXBlcl9zaXplPSVQQVBFUiUgJUkxOE5TUEhJTlhPUFRTJQ0KLSkNCi0NCi1pZiAiJTEiID09
ICIiIGdvdG8gaGVscA0KLQ0KLWlmICIlMSIgPT0gImhlbHAiICgNCi0JOmhlbHANCi0JZWNoby5Q
bGVhc2UgdXNlIGBtYWtlIF48dGFyZ2V0Xj5gIHdoZXJlIF48dGFyZ2V0Xj4gaXMgb25lIG9mDQot
CWVjaG8uICBodG1sICAgICAgIHRvIG1ha2Ugc3RhbmRhbG9uZSBIVE1MIGZpbGVzDQotCWVjaG8u
ICBkaXJodG1sICAgIHRvIG1ha2UgSFRNTCBmaWxlcyBuYW1lZCBpbmRleC5odG1sIGluIGRpcmVj
dG9yaWVzDQotCWVjaG8uICBzaW5nbGVodG1sIHRvIG1ha2UgYSBzaW5nbGUgbGFyZ2UgSFRNTCBm
aWxlDQotCWVjaG8uICBwaWNrbGUgICAgIHRvIG1ha2UgcGlja2xlIGZpbGVzDQotCWVjaG8uICBq
c29uICAgICAgIHRvIG1ha2UgSlNPTiBmaWxlcw0KLQllY2hvLiAgaHRtbGhlbHAgICB0byBtYWtl
IEhUTUwgZmlsZXMgYW5kIGEgSFRNTCBoZWxwIHByb2plY3QNCi0JZWNoby4gIHF0aGVscCAgICAg
dG8gbWFrZSBIVE1MIGZpbGVzIGFuZCBhIHF0aGVscCBwcm9qZWN0DQotCWVjaG8uICBkZXZoZWxw
ICAgIHRvIG1ha2UgSFRNTCBmaWxlcyBhbmQgYSBEZXZoZWxwIHByb2plY3QNCi0JZWNoby4gIGVw
dWIgICAgICAgdG8gbWFrZSBhbiBlcHViDQotCWVjaG8uICBsYXRleCAgICAgIHRvIG1ha2UgTGFU
ZVggZmlsZXMsIHlvdSBjYW4gc2V0IFBBUEVSPWE0IG9yIFBBUEVSPWxldHRlcg0KLQllY2hvLiAg
dGV4dCAgICAgICB0byBtYWtlIHRleHQgZmlsZXMNCi0JZWNoby4gIG1hbiAgICAgICAgdG8gbWFr
ZSBtYW51YWwgcGFnZXMNCi0JZWNoby4gIHRleGluZm8gICAgdG8gbWFrZSBUZXhpbmZvIGZpbGVz
DQotCWVjaG8uICBnZXR0ZXh0ICAgIHRvIG1ha2UgUE8gbWVzc2FnZSBjYXRhbG9ncw0KLQllY2hv
LiAgY2hhbmdlcyAgICB0byBtYWtlIGFuIG92ZXJ2aWV3IG92ZXIgYWxsIGNoYW5nZWQvYWRkZWQv
ZGVwcmVjYXRlZCBpdGVtcw0KLQllY2hvLiAgeG1sICAgICAgICB0byBtYWtlIERvY3V0aWxzLW5h
dGl2ZSBYTUwgZmlsZXMNCi0JZWNoby4gIHBzZXVkb3htbCAgdG8gbWFrZSBwc2V1ZG94bWwtWE1M
IGZpbGVzIGZvciBkaXNwbGF5IHB1cnBvc2VzDQotCWVjaG8uICBsaW5rY2hlY2sgIHRvIGNoZWNr
IGFsbCBleHRlcm5hbCBsaW5rcyBmb3IgaW50ZWdyaXR5DQotCWVjaG8uICBkb2N0ZXN0ICAgIHRv
IHJ1biBhbGwgZG9jdGVzdHMgZW1iZWRkZWQgaW4gdGhlIGRvY3VtZW50YXRpb24gaWYgZW5hYmxl
ZA0KLQlnb3RvIGVuZA0KLSkNCi0NCi1pZiAiJTEiID09ICJjbGVhbiIgKA0KLQlmb3IgL2QgJSVp
IGluICglQlVJTERESVIlXCopIGRvIHJtZGlyIC9xIC9zICUlaQ0KLQlkZWwgL3EgL3MgJUJVSUxE
RElSJVwqDQotCWdvdG8gZW5kDQotKQ0KLQ0KLQ0KLSVTUEhJTlhCVUlMRCUgMj4gbnVsDQotaWYg
ZXJyb3JsZXZlbCA5MDA5ICgNCi0JZWNoby4NCi0JZWNoby5UaGUgJ3NwaGlueC1idWlsZCcgY29t
bWFuZCB3YXMgbm90IGZvdW5kLiBNYWtlIHN1cmUgeW91IGhhdmUgU3BoaW54DQotCWVjaG8uaW5z
dGFsbGVkLCB0aGVuIHNldCB0aGUgU1BISU5YQlVJTEQgZW52aXJvbm1lbnQgdmFyaWFibGUgdG8g
cG9pbnQNCi0JZWNoby50byB0aGUgZnVsbCBwYXRoIG9mIHRoZSAnc3BoaW54LWJ1aWxkJyBleGVj
dXRhYmxlLiBBbHRlcm5hdGl2ZWx5IHlvdQ0KLQllY2hvLm1heSBhZGQgdGhlIFNwaGlueCBkaXJl
Y3RvcnkgdG8gUEFUSC4NCi0JZWNoby4NCi0JZWNoby5JZiB5b3UgZG9uJ3QgaGF2ZSBTcGhpbngg
aW5zdGFsbGVkLCBncmFiIGl0IGZyb20NCi0JZWNoby5odHRwOi8vc3BoaW54LWRvYy5vcmcvDQot
CWV4aXQgL2IgMQ0KLSkNCi0NCi1pZiAiJTEiID09ICJodG1sIiAoDQotCSVTUEhJTlhCVUlMRCUg
LWIgaHRtbCAlQUxMU1BISU5YT1BUUyUgJUJVSUxERElSJS9odG1sDQotCWlmIGVycm9ybGV2ZWwg
MSBleGl0IC9iIDENCi0JZWNoby4NCi0JZWNoby5CdWlsZCBmaW5pc2hlZC4gVGhlIEhUTUwgcGFn
ZXMgYXJlIGluICVCVUlMRERJUiUvaHRtbC4NCi0JZ290byBlbmQNCi0pDQotDQotaWYgIiUxIiA9
PSAiZGlyaHRtbCIgKA0KLQklU1BISU5YQlVJTEQlIC1iIGRpcmh0bWwgJUFMTFNQSElOWE9QVFMl
ICVCVUlMRERJUiUvZGlyaHRtbA0KLQlpZiBlcnJvcmxldmVsIDEgZXhpdCAvYiAxDQotCWVjaG8u
DQotCWVjaG8uQnVpbGQgZmluaXNoZWQuIFRoZSBIVE1MIHBhZ2VzIGFyZSBpbiAlQlVJTERESVIl
L2Rpcmh0bWwuDQotCWdvdG8gZW5kDQotKQ0KLQ0KLWlmICIlMSIgPT0gInNpbmdsZWh0bWwiICgN
Ci0JJVNQSElOWEJVSUxEJSAtYiBzaW5nbGVodG1sICVBTExTUEhJTlhPUFRTJSAlQlVJTERESVIl
L3NpbmdsZWh0bWwNCi0JaWYgZXJyb3JsZXZlbCAxIGV4aXQgL2IgMQ0KLQllY2hvLg0KLQllY2hv
LkJ1aWxkIGZpbmlzaGVkLiBUaGUgSFRNTCBwYWdlcyBhcmUgaW4gJUJVSUxERElSJS9zaW5nbGVo
dG1sLg0KLQlnb3RvIGVuZA0KLSkNCi0NCi1pZiAiJTEiID09ICJwaWNrbGUiICgNCi0JJVNQSElO
WEJVSUxEJSAtYiBwaWNrbGUgJUFMTFNQSElOWE9QVFMlICVCVUlMRERJUiUvcGlja2xlDQotCWlm
IGVycm9ybGV2ZWwgMSBleGl0IC9iIDENCi0JZWNoby4NCi0JZWNoby5CdWlsZCBmaW5pc2hlZDsg
bm93IHlvdSBjYW4gcHJvY2VzcyB0aGUgcGlja2xlIGZpbGVzLg0KLQlnb3RvIGVuZA0KLSkNCi0N
Ci1pZiAiJTEiID09ICJqc29uIiAoDQotCSVTUEhJTlhCVUlMRCUgLWIganNvbiAlQUxMU1BISU5Y
T1BUUyUgJUJVSUxERElSJS9qc29uDQotCWlmIGVycm9ybGV2ZWwgMSBleGl0IC9iIDENCi0JZWNo
by4NCi0JZWNoby5CdWlsZCBmaW5pc2hlZDsgbm93IHlvdSBjYW4gcHJvY2VzcyB0aGUgSlNPTiBm
aWxlcy4NCi0JZ290byBlbmQNCi0pDQotDQotaWYgIiUxIiA9PSAiaHRtbGhlbHAiICgNCi0JJVNQ
SElOWEJVSUxEJSAtYiBodG1saGVscCAlQUxMU1BISU5YT1BUUyUgJUJVSUxERElSJS9odG1saGVs
cA0KLQlpZiBlcnJvcmxldmVsIDEgZXhpdCAvYiAxDQotCWVjaG8uDQotCWVjaG8uQnVpbGQgZmlu
aXNoZWQ7IG5vdyB5b3UgY2FuIHJ1biBIVE1MIEhlbHAgV29ya3Nob3Agd2l0aCB0aGUgXg0KLS5o
aHAgcHJvamVjdCBmaWxlIGluICVCVUlMRERJUiUvaHRtbGhlbHAuDQotCWdvdG8gZW5kDQotKQ0K
LQ0KLWlmICIlMSIgPT0gInF0aGVscCIgKA0KLQklU1BISU5YQlVJTEQlIC1iIHF0aGVscCAlQUxM
U1BISU5YT1BUUyUgJUJVSUxERElSJS9xdGhlbHANCi0JaWYgZXJyb3JsZXZlbCAxIGV4aXQgL2Ig
MQ0KLQllY2hvLg0KLQllY2hvLkJ1aWxkIGZpbmlzaGVkOyBub3cgeW91IGNhbiBydW4gInFjb2xs
ZWN0aW9uZ2VuZXJhdG9yIiB3aXRoIHRoZSBeDQotLnFoY3AgcHJvamVjdCBmaWxlIGluICVCVUlM
RERJUiUvcXRoZWxwLCBsaWtlIHRoaXM6DQotCWVjaG8uXj4gcWNvbGxlY3Rpb25nZW5lcmF0b3Ig
JUJVSUxERElSJVxxdGhlbHBcaHRtbDVsaWIucWhjcA0KLQllY2hvLlRvIHZpZXcgdGhlIGhlbHAg
ZmlsZToNCi0JZWNoby5ePiBhc3Npc3RhbnQgLWNvbGxlY3Rpb25GaWxlICVCVUlMRERJUiVccXRo
ZWxwXGh0bWw1bGliLmdoYw0KLQlnb3RvIGVuZA0KLSkNCi0NCi1pZiAiJTEiID09ICJkZXZoZWxw
IiAoDQotCSVTUEhJTlhCVUlMRCUgLWIgZGV2aGVscCAlQUxMU1BISU5YT1BUUyUgJUJVSUxERElS
JS9kZXZoZWxwDQotCWlmIGVycm9ybGV2ZWwgMSBleGl0IC9iIDENCi0JZWNoby4NCi0JZWNoby5C
dWlsZCBmaW5pc2hlZC4NCi0JZ290byBlbmQNCi0pDQotDQotaWYgIiUxIiA9PSAiZXB1YiIgKA0K
LQklU1BISU5YQlVJTEQlIC1iIGVwdWIgJUFMTFNQSElOWE9QVFMlICVCVUlMRERJUiUvZXB1Yg0K
LQlpZiBlcnJvcmxldmVsIDEgZXhpdCAvYiAxDQotCWVjaG8uDQotCWVjaG8uQnVpbGQgZmluaXNo
ZWQuIFRoZSBlcHViIGZpbGUgaXMgaW4gJUJVSUxERElSJS9lcHViLg0KLQlnb3RvIGVuZA0KLSkN
Ci0NCi1pZiAiJTEiID09ICJsYXRleCIgKA0KLQklU1BISU5YQlVJTEQlIC1iIGxhdGV4ICVBTExT
UEhJTlhPUFRTJSAlQlVJTERESVIlL2xhdGV4DQotCWlmIGVycm9ybGV2ZWwgMSBleGl0IC9iIDEN
Ci0JZWNoby4NCi0JZWNoby5CdWlsZCBmaW5pc2hlZDsgdGhlIExhVGVYIGZpbGVzIGFyZSBpbiAl
QlVJTERESVIlL2xhdGV4Lg0KLQlnb3RvIGVuZA0KLSkNCi0NCi1pZiAiJTEiID09ICJsYXRleHBk
ZiIgKA0KLQklU1BISU5YQlVJTEQlIC1iIGxhdGV4ICVBTExTUEhJTlhPUFRTJSAlQlVJTERESVIl
L2xhdGV4DQotCWNkICVCVUlMRERJUiUvbGF0ZXgNCi0JbWFrZSBhbGwtcGRmDQotCWNkICVCVUlM
RERJUiUvLi4NCi0JZWNoby4NCi0JZWNoby5CdWlsZCBmaW5pc2hlZDsgdGhlIFBERiBmaWxlcyBh
cmUgaW4gJUJVSUxERElSJS9sYXRleC4NCi0JZ290byBlbmQNCi0pDQotDQotaWYgIiUxIiA9PSAi
bGF0ZXhwZGZqYSIgKA0KLQklU1BISU5YQlVJTEQlIC1iIGxhdGV4ICVBTExTUEhJTlhPUFRTJSAl
QlVJTERESVIlL2xhdGV4DQotCWNkICVCVUlMRERJUiUvbGF0ZXgNCi0JbWFrZSBhbGwtcGRmLWph
DQotCWNkICVCVUlMRERJUiUvLi4NCi0JZWNoby4NCi0JZWNoby5CdWlsZCBmaW5pc2hlZDsgdGhl
IFBERiBmaWxlcyBhcmUgaW4gJUJVSUxERElSJS9sYXRleC4NCi0JZ290byBlbmQNCi0pDQotDQot
aWYgIiUxIiA9PSAidGV4dCIgKA0KLQklU1BISU5YQlVJTEQlIC1iIHRleHQgJUFMTFNQSElOWE9Q
VFMlICVCVUlMRERJUiUvdGV4dA0KLQlpZiBlcnJvcmxldmVsIDEgZXhpdCAvYiAxDQotCWVjaG8u
DQotCWVjaG8uQnVpbGQgZmluaXNoZWQuIFRoZSB0ZXh0IGZpbGVzIGFyZSBpbiAlQlVJTERESVIl
L3RleHQuDQotCWdvdG8gZW5kDQotKQ0KLQ0KLWlmICIlMSIgPT0gIm1hbiIgKA0KLQklU1BISU5Y
QlVJTEQlIC1iIG1hbiAlQUxMU1BISU5YT1BUUyUgJUJVSUxERElSJS9tYW4NCi0JaWYgZXJyb3Js
ZXZlbCAxIGV4aXQgL2IgMQ0KLQllY2hvLg0KLQllY2hvLkJ1aWxkIGZpbmlzaGVkLiBUaGUgbWFu
dWFsIHBhZ2VzIGFyZSBpbiAlQlVJTERESVIlL21hbi4NCi0JZ290byBlbmQNCi0pDQotDQotaWYg
IiUxIiA9PSAidGV4aW5mbyIgKA0KLQklU1BISU5YQlVJTEQlIC1iIHRleGluZm8gJUFMTFNQSElO
WE9QVFMlICVCVUlMRERJUiUvdGV4aW5mbw0KLQlpZiBlcnJvcmxldmVsIDEgZXhpdCAvYiAxDQot
CWVjaG8uDQotCWVjaG8uQnVpbGQgZmluaXNoZWQuIFRoZSBUZXhpbmZvIGZpbGVzIGFyZSBpbiAl
QlVJTERESVIlL3RleGluZm8uDQotCWdvdG8gZW5kDQotKQ0KLQ0KLWlmICIlMSIgPT0gImdldHRl
eHQiICgNCi0JJVNQSElOWEJVSUxEJSAtYiBnZXR0ZXh0ICVJMThOU1BISU5YT1BUUyUgJUJVSUxE
RElSJS9sb2NhbGUNCi0JaWYgZXJyb3JsZXZlbCAxIGV4aXQgL2IgMQ0KLQllY2hvLg0KLQllY2hv
LkJ1aWxkIGZpbmlzaGVkLiBUaGUgbWVzc2FnZSBjYXRhbG9ncyBhcmUgaW4gJUJVSUxERElSJS9s
b2NhbGUuDQotCWdvdG8gZW5kDQotKQ0KLQ0KLWlmICIlMSIgPT0gImNoYW5nZXMiICgNCi0JJVNQ
SElOWEJVSUxEJSAtYiBjaGFuZ2VzICVBTExTUEhJTlhPUFRTJSAlQlVJTERESVIlL2NoYW5nZXMN
Ci0JaWYgZXJyb3JsZXZlbCAxIGV4aXQgL2IgMQ0KLQllY2hvLg0KLQllY2hvLlRoZSBvdmVydmll
dyBmaWxlIGlzIGluICVCVUlMRERJUiUvY2hhbmdlcy4NCi0JZ290byBlbmQNCi0pDQotDQotaWYg
IiUxIiA9PSAibGlua2NoZWNrIiAoDQotCSVTUEhJTlhCVUlMRCUgLWIgbGlua2NoZWNrICVBTExT
UEhJTlhPUFRTJSAlQlVJTERESVIlL2xpbmtjaGVjaw0KLQlpZiBlcnJvcmxldmVsIDEgZXhpdCAv
YiAxDQotCWVjaG8uDQotCWVjaG8uTGluayBjaGVjayBjb21wbGV0ZTsgbG9vayBmb3IgYW55IGVy
cm9ycyBpbiB0aGUgYWJvdmUgb3V0cHV0IF4NCi1vciBpbiAlQlVJTERESVIlL2xpbmtjaGVjay9v
dXRwdXQudHh0Lg0KLQlnb3RvIGVuZA0KLSkNCi0NCi1pZiAiJTEiID09ICJkb2N0ZXN0IiAoDQot
CSVTUEhJTlhCVUlMRCUgLWIgZG9jdGVzdCAlQUxMU1BISU5YT1BUUyUgJUJVSUxERElSJS9kb2N0
ZXN0DQotCWlmIGVycm9ybGV2ZWwgMSBleGl0IC9iIDENCi0JZWNoby4NCi0JZWNoby5UZXN0aW5n
IG9mIGRvY3Rlc3RzIGluIHRoZSBzb3VyY2VzIGZpbmlzaGVkLCBsb29rIGF0IHRoZSBeDQotcmVz
dWx0cyBpbiAlQlVJTERESVIlL2RvY3Rlc3Qvb3V0cHV0LnR4dC4NCi0JZ290byBlbmQNCi0pDQot
DQotaWYgIiUxIiA9PSAieG1sIiAoDQotCSVTUEhJTlhCVUlMRCUgLWIgeG1sICVBTExTUEhJTlhP
UFRTJSAlQlVJTERESVIlL3htbA0KLQlpZiBlcnJvcmxldmVsIDEgZXhpdCAvYiAxDQotCWVjaG8u
DQotCWVjaG8uQnVpbGQgZmluaXNoZWQuIFRoZSBYTUwgZmlsZXMgYXJlIGluICVCVUlMRERJUiUv
eG1sLg0KLQlnb3RvIGVuZA0KLSkNCi0NCi1pZiAiJTEiID09ICJwc2V1ZG94bWwiICgNCi0JJVNQ
SElOWEJVSUxEJSAtYiBwc2V1ZG94bWwgJUFMTFNQSElOWE9QVFMlICVCVUlMRERJUiUvcHNldWRv
eG1sDQotCWlmIGVycm9ybGV2ZWwgMSBleGl0IC9iIDENCi0JZWNoby4NCi0JZWNoby5CdWlsZCBm
aW5pc2hlZC4gVGhlIHBzZXVkby1YTUwgZmlsZXMgYXJlIGluICVCVUlMRERJUiUvcHNldWRveG1s
Lg0KLQlnb3RvIGVuZA0KLSkNCi0NCi06ZW5kDQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9odG1sNWxpYi9kb2MvbW9kdWxlcy5y
c3QgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2h0
bWw1bGliL2RvYy9tb2R1bGVzLnJzdApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNTlm
YmNjODZiYzEzN2NiY2I4YWYzYzE3NGYzZDhjMzQ4MjJmYmI3Zi4uMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2h0bWw1bGliL2RvYy9tb2R1bGVzLnJzdAorKysgL2Rldi9u
dWxsCkBAIC0xLDcgKzAsMCBAQAotaHRtbDVsaWIKLT09PT09PT09Ci0KLS4uIHRvY3RyZWU6Ogot
ICAgOm1heGRlcHRoOiA0Ci0KLSAgIGh0bWw1bGliCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2h0bWw1bGliL2RvYy9tb3Zpbmdw
YXJ0cy5yc3QgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL2h0bWw1bGliL2RvYy9tb3ZpbmdwYXJ0cy5yc3QKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDM2NTM5Nzg1YTdlYzkxNTkyOTBhYTFmZmQ3M2VlNWNiYmY5Y2NmYWYuLjAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9odG1sNWxpYi9kb2MvbW92aW5ncGFydHMu
cnN0CisrKyAvZGV2L251bGwKQEAgLTEsMjA5ICswLDAgQEAKLVRoZSBtb3ZpbmcgcGFydHMKLT09
PT09PT09PT09PT09PT0KLQotaHRtbDVsaWIgY29uc2lzdHMgb2YgYSBudW1iZXIgb2YgY29tcG9u
ZW50cywgd2hpY2ggYXJlIHJlc3BvbnNpYmxlIGZvcgotaGFuZGxpbmcgaXRzIGZlYXR1cmVzLgot
Ci0KLVRyZWUgYnVpbGRlcnMKLS0tLS0tLS0tLS0tLS0KLQotVGhlIHBhcnNlciByZWFkcyBIVE1M
IGJ5IHRva2VuaXppbmcgdGhlIGNvbnRlbnQgYW5kIGJ1aWxkaW5nIGEgdHJlZSB0aGF0Ci10aGUg
dXNlciBjYW4gbGF0ZXIgYWNjZXNzLiBUaGVyZSBhcmUgdGhyZWUgbWFpbiB0eXBlcyBvZiB0cmVl
cyB0aGF0Ci1odG1sNWxpYiBjYW4gYnVpbGQ6Ci0KLSogYGBldHJlZWBgIC0gdGhpcyBpcyB0aGUg
ZGVmYXVsdDsgYnVpbGRzIGEgdHJlZSBiYXNlZCBvbiBgYHhtbC5ldHJlZWBgLAotICB3aGljaCBj
YW4gYmUgZm91bmQgaW4gdGhlIHN0YW5kYXJkIGxpYnJhcnkuIFdoZW5ldmVyIHBvc3NpYmxlLCB0
aGUKLSAgYWNjZWxlcmF0ZWQgYGBFbGVtZW50VHJlZWBgIGltcGxlbWVudGF0aW9uIChpLmUuCi0g
IGBgeG1sLmV0cmVlLmNFbGVtZW50VHJlZWBgIG9uIFB5dGhvbiAyLngpIGlzIHVzZWQuCi0KLSog
YGBkb21gYCAtIGJ1aWxkcyBhIHRyZWUgYmFzZWQgb24gYGB4bWwuZG9tLm1pbmlkb21gYC4KLQot
KiBgYGx4bWwuZXRyZWVgYCAtIHVzZXMgbHhtbCdzIGltcGxlbWVudGF0aW9uIG9mIHRoZSBgYEVs
ZW1lbnRUcmVlYGAKLSAgQVBJLiAgVGhlIHBlcmZvcm1hbmNlIGdhaW5zIGFyZSByZWxhdGl2ZWx5
IHNtYWxsIGNvbXBhcmVkIHRvIHVzaW5nIHRoZQotICBhY2NlbGVyYXRlZCBgYEVsZW1lbnRUcmVl
YGAgbW9kdWxlLgotCi1Zb3UgY2FuIHNwZWNpZnkgdGhlIGJ1aWxkZXIgYnkgbmFtZSB3aGVuIHVz
aW5nIHRoZSBzaG9ydGhhbmQgQVBJOgotCi0uLiBjb2RlLWJsb2NrOjogcHl0aG9uCi0KLSAgaW1w
b3J0IGh0bWw1bGliCi0gIHdpdGggb3BlbigibXlkb2N1bWVudC5odG1sIiwgInJiIikgYXMgZjoK
LSAgICAgIGx4bWxfZXRyZWVfZG9jdW1lbnQgPSBodG1sNWxpYi5wYXJzZShmLCB0cmVlYnVpbGRl
cj0ibHhtbCIpCi0KLVdoZW4gaW5zdGFudGlhdGluZyBhIHBhcnNlciBvYmplY3QsIHlvdSBoYXZl
IHRvIHBhc3MgYSB0cmVlIGJ1aWxkZXIKLWNsYXNzIGluIHRoZSBgYHRyZWVgYCBrZXl3b3JkIGF0
dHJpYnV0ZToKLQotLi4gY29kZS1ibG9jazo6IHB5dGhvbgotCi0gIGltcG9ydCBodG1sNWxpYgot
ICBwYXJzZXIgPSBodG1sNWxpYi5IVE1MUGFyc2VyKHRyZWU9U29tZVRyZWVCdWlsZGVyKQotICBk
b2N1bWVudCA9IHBhcnNlci5wYXJzZSgiPHA+SGVsbG8gV29ybGQhIikKLQotVG8gZ2V0IGEgYnVp
bGRlciBjbGFzcyBieSBuYW1lLCB1c2UgdGhlIGBgZ2V0VHJlZUJ1aWxkZXJgYCBmdW5jdGlvbjoK
LQotLi4gY29kZS1ibG9jazo6IHB5dGhvbgotCi0gIGltcG9ydCBodG1sNWxpYgotICBwYXJzZXIg
PSBodG1sNWxpYi5IVE1MUGFyc2VyKHRyZWU9aHRtbDVsaWIuZ2V0VHJlZUJ1aWxkZXIoImRvbSIp
KQotICBtaW5pZG9tX2RvY3VtZW50ID0gcGFyc2VyLnBhcnNlKCI8cD5IZWxsbyBXb3JsZCEiKQot
Ci1UaGUgaW1wbGVtZW50YXRpb24gb2YgYnVpbGRlcnMgY2FuIGJlIGZvdW5kIGluIGBodG1sNWxp
Yi90cmVlYnVpbGRlcnMvCi08aHR0cHM6Ly9naXRodWIuY29tL2h0bWw1bGliL2h0bWw1bGliLXB5
dGhvbi90cmVlL21hc3Rlci9odG1sNWxpYi90cmVlYnVpbGRlcnM+YF8uCi0KLQotVHJlZSB3YWxr
ZXJzCi0tLS0tLS0tLS0tLS0KLQotT25jZSBhIHRyZWUgaXMgcmVhZHksIHlvdSBjYW4gd29yayBv
biBpdCBlaXRoZXIgbWFudWFsbHksIG9yIHVzaW5nCi1hIHRyZWUgd2Fsa2VyLCB3aGljaCBwcm92
aWRlcyBhIHN0cmVhbWluZyB2aWV3IG9mIHRoZSB0cmVlLiBodG1sNWxpYgotcHJvdmlkZXMgd2Fs
a2VycyBmb3IgYWxsIHRocmVlIHN1cHBvcnRlZCB0eXBlcyBvZiB0cmVlcyAoYGBldHJlZWBgLAot
YGBkb21gYCBhbmQgYGBseG1sYGApLgotCi1UaGUgaW1wbGVtZW50YXRpb24gb2Ygd2Fsa2VycyBj
YW4gYmUgZm91bmQgaW4gYGh0bWw1bGliL3RyZWV3YWxrZXJzLwotPGh0dHBzOi8vZ2l0aHViLmNv
bS9odG1sNWxpYi9odG1sNWxpYi1weXRob24vdHJlZS9tYXN0ZXIvaHRtbDVsaWIvdHJlZXdhbGtl
cnM+YF8uCi0KLVdhbGtlcnMgbWFrZSBjb25zdW1pbmcgSFRNTCBlYXNpZXIuIGh0bWw1bGliIHVz
ZXMgdGhlbSB0byBwcm92aWRlIHlvdQotd2l0aCBoYXMgYSBjb3VwbGUgb2YgaGFuZHkgdG9vbHMu
Ci0KLQotSFRNTFNlcmlhbGl6ZXIKLX5+fn5+fn5+fn5+fn5+Ci0KLVRoZSBzZXJpYWxpemVyIGxl
dHMgeW91IHdyaXRlIEhUTUwgYmFjayBhcyBhIHN0cmVhbSBvZiBieXRlcy4KLQotLi4gY29kZS1i
bG9jazo6IHB5Y29uCi0KLSAgPj4+IGltcG9ydCBodG1sNWxpYgotICA+Pj4gZWxlbWVudCA9IGh0
bWw1bGliLnBhcnNlKCc8cCB4bWw6bGFuZz0icGwiPldpdGFtIHdzenlzdGtpY2gnKQotICA+Pj4g
d2Fsa2VyID0gaHRtbDVsaWIuZ2V0VHJlZVdhbGtlcigiZXRyZWUiKQotICA+Pj4gc3RyZWFtID0g
d2Fsa2VyKGVsZW1lbnQpCi0gID4+PiBzID0gaHRtbDVsaWIuc2VyaWFsaXplci5IVE1MU2VyaWFs
aXplcigpCi0gID4+PiBvdXRwdXQgPSBzLnNlcmlhbGl6ZShzdHJlYW0pCi0gID4+PiBmb3IgaXRl
bSBpbiBvdXRwdXQ6Ci0gIC4uLiAgIHByaW50KCIlciIgJSBpdGVtKQotICAnPHAnCi0gICcgJwot
ICAneG1sOmxhbmcnCi0gICc9JwotICAncGwnCi0gICc+JwotICAnV2l0YW0gd3N6eXN0a2ljaCcK
LQotWW91IGNhbiBjdXN0b21pemUgdGhlIHNlcmlhbGl6ZXIgYmVoYXZpb3VyIGluIGEgdmFyaWV0
eSBvZiB3YXlzLCBjb25zdWx0Ci10aGUgOmNsYXNzOmB+aHRtbDVsaWIuc2VyaWFsaXplci5odG1s
c2VyaWFsaXplci5IVE1MU2VyaWFsaXplcmAKLWRvY3VtZW50YXRpb24uCi0KLQotRmlsdGVycwot
fn5+fn5+fgotCi1Zb3UgY2FuIGFsdGVyIHRoZSBzdHJlYW0gY29udGVudCB3aXRoIGZpbHRlcnMg
cHJvdmlkZWQgYnkgaHRtbDVsaWI6Ci0KLSogOmNsYXNzOmBhbHBoYWJldGljYWxhdHRyaWJ1dGVz
LkZpbHRlcgotICA8aHRtbDVsaWIuZmlsdGVycy5hbHBoYWJldGljYWxhdHRyaWJ1dGVzLkZpbHRl
cj5gIHNvcnRzIGF0dHJpYnV0ZXMgb24KLSAgdGFncyB0byBiZSBpbiBhbHBoYWJldGljYWwgb3Jk
ZXIKLQotKiA6Y2xhc3M6YGluamVjdF9tZXRhX2NoYXJzZXQuRmlsdGVyCi0gIDxodG1sNWxpYi5m
aWx0ZXJzLmluamVjdF9tZXRhX2NoYXJzZXQuRmlsdGVyPmAgc2V0cyBhIHVzZXItc3BlY2lmaWVk
Ci0gIGVuY29kaW5nIGluIHRoZSBjb3JyZWN0IGBgPG1ldGE+YGAgdGFnIGluIHRoZSBgYDxoZWFk
PmBgIHNlY3Rpb24gb2YKLSAgdGhlIGRvY3VtZW50Ci0KLSogOmNsYXNzOmBsaW50LkZpbHRlciA8
aHRtbDVsaWIuZmlsdGVycy5saW50LkZpbHRlcj5gIHJhaXNlcwotICBgYExpbnRFcnJvcmBgIGV4
Y2VwdGlvbnMgb24gaW52YWxpZCB0YWcgYW5kIGF0dHJpYnV0ZSBuYW1lcywgaW52YWxpZAotICBQ
Q0RBVEEsIGV0Yy4KLQotKiA6Y2xhc3M6YG9wdGlvbmFsdGFncy5GaWx0ZXIgPGh0bWw1bGliLmZp
bHRlcnMub3B0aW9uYWx0YWdzLkZpbHRlcj5gCi0gIHJlbW92ZXMgdGFncyBmcm9tIHRoZSBzdHJl
YW0gd2hpY2ggYXJlIG5vdCBuZWNlc3NhcnkgdG8gcHJvZHVjZSB2YWxpZAotICBIVE1MCi0KLSog
OmNsYXNzOmBzYW5pdGl6ZXIuRmlsdGVyIDxodG1sNWxpYi5maWx0ZXJzLnNhbml0aXplci5GaWx0
ZXI+YCByZW1vdmVzCi0gIHVuc2FmZSBtYXJrdXAgYW5kIENTUy4gRWxlbWVudHMgdGhhdCBhcmUg
a25vd24gdG8gYmUgc2FmZSBhcmUgcGFzc2VkCi0gIHRocm91Z2ggYW5kIHRoZSByZXN0IGlzIGNv
bnZlcnRlZCB0byB2aXNpYmxlIHRleHQuIFRoZSBkZWZhdWx0Ci0gIGNvbmZpZ3VyYXRpb24gb2Yg
dGhlIHNhbml0aXplciBmb2xsb3dzIHRoZSBgV0hBVFdHIFNhbml0aXphdGlvbiBSdWxlcwotICA8
aHR0cDovL3dpa2kud2hhdHdnLm9yZy93aWtpL1Nhbml0aXphdGlvbl9ydWxlcz5gXy4KLQotKiA6
Y2xhc3M6YHdoaXRlc3BhY2UuRmlsdGVyIDxodG1sNWxpYi5maWx0ZXJzLndoaXRlc3BhY2UuRmls
dGVyPmAKLSAgY29sbGFwc2VzIGFsbCB3aGl0ZXNwYWNlIGNoYXJhY3RlcnMgdG8gc2luZ2xlIHNw
YWNlcyB1bmxlc3MgdGhleSdyZSBpbgotICBgYDxwcmUvPmBgIG9yIGBgdGV4dGFyZWFgYCB0YWdz
LgotCi1UbyB1c2UgYSBmaWx0ZXIsIHNpbXBseSB3cmFwIGl0IGFyb3VuZCBhIHN0cmVhbToKLQot
Li4gY29kZS1ibG9jazo6IHB5dGhvbgotCi0gID4+PiBpbXBvcnQgaHRtbDVsaWIKLSAgPj4+IGZy
b20gaHRtbDVsaWIuZmlsdGVycyBpbXBvcnQgc2FuaXRpemVyCi0gID4+PiBkb20gPSBodG1sNWxp
Yi5wYXJzZSgiPHA+PHNjcmlwdD5hbGVydCgnQm9vIScpIiwgdHJlZWJ1aWxkZXI9ImRvbSIpCi0g
ID4+PiB3YWxrZXIgPSBodG1sNWxpYi5nZXRUcmVlV2Fsa2VyKCJkb20iKQotICA+Pj4gc3RyZWFt
ID0gd2Fsa2VyKGRvbSkKLSAgPj4+IHNhbmVfc3RyZWFtID0gc2FuaXRpemVyLkZpbHRlcihzdHJl
YW0pIGNsZWFuX3N0cmVhbSA9IHNhbml0aXplci5GaWx0ZXIoc3RyZWFtKQotCi0KLVRyZWUgYWRh
cHRlcnMKLS0tLS0tLS0tLS0tLS0KLQotVXNlZCB0byB0cmFuc2xhdGUgb25lIHR5cGUgb2YgdHJl
ZSB0byBhbm90aGVyLiBNb3JlIGRvY3VtZW50YXRpb24KLXBlbmRpbmcsIHNvcnJ5LgotCi0KLUVu
Y29kaW5nIGRpc2NvdmVyeQotLS0tLS0tLS0tLS0tLS0tLS0tCi0KLVBhcnNlZCB0cmVlcyBhcmUg
YWx3YXlzIFVuaWNvZGUuIEhvd2V2ZXIgYSBsYXJnZSB2YXJpZXR5IG9mIGlucHV0Ci1lbmNvZGlu
Z3MgYXJlIHN1cHBvcnRlZC4gVGhlIGVuY29kaW5nIG9mIHRoZSBkb2N1bWVudCBpcyBkZXRlcm1p
bmVkIGluCi10aGUgZm9sbG93aW5nIHdheToKLQotKiBUaGUgZW5jb2RpbmcgbWF5IGJlIGV4cGxp
Y2l0bHkgc3BlY2lmaWVkIGJ5IHBhc3NpbmcgdGhlIG5hbWUgb2YgdGhlCi0gIGVuY29kaW5nIGFz
IHRoZSBlbmNvZGluZyBwYXJhbWV0ZXIgdG8gdGhlCi0gIDptZXRoOmB+aHRtbDVsaWIuaHRtbDVw
YXJzZXIuSFRNTFBhcnNlci5wYXJzZWAgbWV0aG9kIG9uCi0gIGBgSFRNTFBhcnNlcmBgIG9iamVj
dHMuCi0KLSogSWYgbm8gZW5jb2RpbmcgaXMgc3BlY2lmaWVkLCB0aGUgcGFyc2VyIHdpbGwgYXR0
ZW1wdCB0byBkZXRlY3QgdGhlCi0gIGVuY29kaW5nIGZyb20gYSBgYDxtZXRhPmBgICBlbGVtZW50
IGluIHRoZSBmaXJzdCA1MTIgYnl0ZXMgb2YgdGhlCi0gIGRvY3VtZW50ICh0aGlzIGlzIG9ubHkg
YSBwYXJ0aWFsIGltcGxlbWVudGF0aW9uIG9mIHRoZSBjdXJyZW50IEhUTUwKLSAgNSBzcGVjaWZp
Y2F0aW9uKS4KLQotKiBJZiBubyBlbmNvZGluZyBjYW4gYmUgZm91bmQgYW5kIHRoZSBjaGFyZGV0
IGxpYnJhcnkgaXMgYXZhaWxhYmxlLCBhbgotICBhdHRlbXB0IHdpbGwgYmUgbWFkZSB0byBzbmlm
ZiB0aGUgZW5jb2RpbmcgZnJvbSB0aGUgYnl0ZSBwYXR0ZXJuLgotCi0qIElmIGFsbCBlbHNlIGZh
aWxzLCB0aGUgZGVmYXVsdCBlbmNvZGluZyB3aWxsIGJlIHVzZWQuIFRoaXMgaXMgdXN1YWxseQot
ICBgV2luZG93cy0xMjUyIDxodHRwOi8vZW4ud2lraXBlZGlhLm9yZy93aWtpL1dpbmRvd3MtMTI1
Mj5gXywgd2hpY2ggaXMKLSAgYSBjb21tb24gZmFsbGJhY2sgdXNlZCBieSBXZWIgYnJvd3NlcnMu
Ci0KLQotVG9rZW5pemVycwotLS0tLS0tLS0tLQotCi1UaGUgcGFydCBvZiB0aGUgcGFyc2VyIHJl
c3BvbnNpYmxlIGZvciB0cmFuc2xhdGluZyBhIHJhdyBpbnB1dCBzdHJlYW0KLWludG8gbWVhbmlu
Z2Z1bCB0b2tlbnMgaXMgdGhlIHRva2VuaXplci4gQ3VycmVudGx5IGh0bWw1bGliIHByb3ZpZGVz
Ci10d28uCi0KLVRvIHNldCB1cCBhIHRva2VuaXplciwgc2ltcGx5IHBhc3MgaXQgd2hlbiBpbnN0
YW50aWF0aW5nCi1hIDpjbGFzczpgfmh0bWw1bGliLmh0bWw1cGFyc2VyLkhUTUxQYXJzZXJgOgot
Ci0uLiBjb2RlLWJsb2NrOjogcHl0aG9uCi0KLSAgaW1wb3J0IGh0bWw1bGliCi0gIGZyb20gaHRt
bDVsaWIgaW1wb3J0IHNhbml0aXplcgotCi0gIHAgPSBodG1sNWxpYi5IVE1MUGFyc2VyKHRva2Vu
aXplcj1zYW5pdGl6ZXIuSFRNTFNhbml0aXplcikKLSAgcC5wYXJzZSgiPHA+U3VycHJpc2UhPHNj
cmlwdD5hbGVydCgnQm9vIScpOzwvc2NyaXB0PiIpCi0KLUhUTUxUb2tlbml6ZXIKLX5+fn5+fn5+
fn5+fn4KLQotVGhpcyBpcyB0aGUgZGVmYXVsdCB0b2tlbml6ZXIsIHRoZSBoZWFydCBvZiBodG1s
NWxpYi4gVGhlIGltcGxlbWVudGF0aW9uCi1jYW4gYmUgZm91bmQgaW4gYGh0bWw1bGliL3Rva2Vu
aXplci5weQotPGh0dHBzOi8vZ2l0aHViLmNvbS9odG1sNWxpYi9odG1sNWxpYi1weXRob24vYmxv
Yi9tYXN0ZXIvaHRtbDVsaWIvdG9rZW5pemVyLnB5PmBfLgotCi1IVE1MU2FuaXRpemVyCi1+fn5+
fn5+fn5+fn5+Ci0KLVRoaXMgaXMgYSB0b2tlbml6ZXIgdGhhdCByZW1vdmVzIHVuc2FmZSBtYXJr
dXAgYW5kIENTUyBzdHlsZXMgZnJvbSB0aGUKLWlucHV0LiBFbGVtZW50cyB0aGF0IGFyZSBrbm93
biB0byBiZSBzYWZlIGFyZSBwYXNzZWQgdGhyb3VnaCBhbmQgdGhlCi1yZXN0IGlzIGNvbnZlcnRl
ZCB0byB2aXNpYmxlIHRleHQuIFRoZSBkZWZhdWx0IGNvbmZpZ3VyYXRpb24gb2YgdGhlCi1zYW5p
dGl6ZXIgZm9sbG93cyB0aGUgYFdIQVRXRyBTYW5pdGl6YXRpb24gUnVsZXMKLTxodHRwOi8vd2lr
aS53aGF0d2cub3JnL3dpa2kvU2FuaXRpemF0aW9uX3J1bGVzPmBfLgotCi1UaGUgaW1wbGVtZW50
YXRpb24gY2FuIGJlIGZvdW5kIGluIGBodG1sNWxpYi9zYW5pdGl6ZXIucHkKLTxodHRwczovL2dp
dGh1Yi5jb20vaHRtbDVsaWIvaHRtbDVsaWItcHl0aG9uL2Jsb2IvbWFzdGVyL2h0bWw1bGliL3Nh
bml0aXplci5weT5gXy4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvaHRtbDVsaWIvZG9jL3czYy1pbXBvcnQubG9nIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9odG1sNWxpYi9kb2Mv
dzNjLWltcG9ydC5sb2cKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGFhOWIzOWZmZDkz
OGQzYWRhYWNmMjQwNjJiYmRlMTY0NTViYjAyY2IuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy9odG1sNWxpYi9kb2MvdzNjLWltcG9ydC5sb2cKKysrIC9kZXYvbnVsbApA
QCAtMSwyOSArMCwwIEBACi1UaGUgdGVzdHMgaW4gdGhpcyBkaXJlY3Rvcnkgd2VyZSBpbXBvcnRl
ZCBmcm9tIHRoZSBXM0MgcmVwb3NpdG9yeS4KLURvIE5PVCBtb2RpZnkgdGhlc2UgdGVzdHMgZGly
ZWN0bHkgaW4gV2ViS2l0LgotSW5zdGVhZCwgY3JlYXRlIGEgcHVsbCByZXF1ZXN0IG9uIHRoZSBX
UFQgZ2l0aHViOgotCWh0dHBzOi8vZ2l0aHViLmNvbS93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzCi0K
LVRoZW4gcnVuIHRoZSBUb29scy9TY3JpcHRzL2ltcG9ydC13M2MtdGVzdHMgaW4gV2ViS2l0IHRv
IHJlaW1wb3J0Ci0KLURvIE5PVCBtb2RpZnkgb3IgcmVtb3ZlIHRoaXMgZmlsZS4KLQotLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tCi1Qcm9wZXJ0aWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi1Q
cm9wZXJ0eSB2YWx1ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLQotTGlzdCBvZiBmaWxlczoKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL2h0bWw1bGliL2RvYy9NYWtlZmlsZQotL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvaHRtbDVsaWIvZG9jL2NoYW5nZXMu
cnN0Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9o
dG1sNWxpYi9kb2MvY29uZi5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvaHRtbDVsaWIvZG9jL2h0bWw1bGliLmZpbHRlcnMucnN0Ci0vTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9odG1sNWxpYi9kb2Mv
aHRtbDVsaWIucnN0Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy9odG1sNWxpYi9kb2MvaHRtbDVsaWIuc2VyaWFsaXplci5yc3QKLS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2h0bWw1bGliL2RvYy9odG1s
NWxpYi50cmVlYnVpbGRlcnMucnN0Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy9odG1sNWxpYi9kb2MvaHRtbDVsaWIudHJlZXdhbGtlcnMucnN0Ci0v
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9odG1sNWxp
Yi9kb2MvaW5kZXgucnN0Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy9odG1sNWxpYi9kb2MvbGljZW5zZS5yc3QKLS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2h0bWw1bGliL2RvYy9tYWtlLmJhdAotL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvaHRtbDVsaWIv
ZG9jL21vZHVsZXMucnN0Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy9odG1sNWxpYi9kb2MvbW92aW5ncGFydHMucnN0CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2h0bWw1bGliL2Zs
YWtlOC1ydW4uc2ggYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL2h0bWw1bGliL2ZsYWtlOC1ydW4uc2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IGQxYTU4N2QzNTA2NzY5ZWExMWZmM2EwMGE0Y2ZjYzliOGVjZmYyZmUuLjAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9odG1sNWxpYi9mbGFrZTgtcnVuLnNoCisrKyAv
ZGV2L251bGwKQEAgLTEsMTQgKzAsMCBAQAotIyEvYmluL2Jhc2ggLWUKLQotaWYgW1sgISAteCAk
KHdoaWNoIGZsYWtlOCkgXV07IHRoZW4KLSAgZWNobyAiZmF0YWw6IGZsYWtlOCBub3QgZm91bmQg
b24gJFBBVEguIEV4aXRpbmcuIgotICBleGl0IDEKLWZpCi0KLWlmIFtbICRUUkFWSVMgIT0gInRy
dWUiIHx8ICRGTEFLRSA9PSAidHJ1ZSIgXV07IHRoZW4KLSAgZmluZCBodG1sNWxpYi8gLW5hbWUg
JyoucHknIC1hbmQgLW5vdCAtbmFtZSAnY29uc3RhbnRzLnB5JyAtcHJpbnQwIHwgeGFyZ3MgLTAg
Zmxha2U4IC0taWdub3JlPUU1MDEKLSAgZmxha2UxPSQ/Ci0gIGZsYWtlOCAtLW1heC1saW5lLWxl
bmd0aD05OSAtLWlnbm9yZT1FMTI2IGh0bWw1bGliL2NvbnN0YW50cy5weQotICBmbGFrZTI9JD8K
LSAgZXhpdCAkWyRmbGFrZTEgfHwgJGZsYWtlMl0KLWZpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2h0bWw1bGliL2h0bWw1bGli
L2ZpbHRlcnMvX19pbml0X18ucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL2h0bWw1bGliL2h0bWw1bGliL2ZpbHRlcnMvX19pbml0X18ucHkKZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGE2ODM0YjgyODVhNTZiZWYwZTE1NDNmZDkwMWM3
ZTZmMmY4YmMyMDIuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0t
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9odG1s
NWxpYi9odG1sNWxpYi9maWx0ZXJzL19faW5pdF9fLnB5CisrKyAvZGV2L251bGwKQEAgLTEgKzAs
MCBAQAotIyBUaGlzIGZpbGUgaXMgcmVxdWlyZWQgZm9yIFB5dGhvbiB0byBzZWFyY2ggdGhpcyBk
aXJlY3RvcnkgZm9yIG1vZHVsZXMuClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9o
dG1sNWxpYi9odG1sNWxpYi9maWx0ZXJzL19iYXNlLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9odG1sNWxpYi9odG1sNWxpYi9maWx0ZXJzL19i
YXNlLnB5CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjN2RiYWVkMGZhYjVhZmI0Zjg5
NDdiMjRkZDE3NWQyMjM5ZDM1ZDZiLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvaHRtbDVsaWIvaHRtbDVsaWIvZmlsdGVycy9fYmFzZS5weQorKysgL2Rldi9udWxsCkBA
IC0xLDEyICswLDAgQEAKLWZyb20gX19mdXR1cmVfXyBpbXBvcnQgYWJzb2x1dGVfaW1wb3J0LCBk
aXZpc2lvbiwgdW5pY29kZV9saXRlcmFscwotCi0KLWNsYXNzIEZpbHRlcihvYmplY3QpOgotICAg
IGRlZiBfX2luaXRfXyhzZWxmLCBzb3VyY2UpOgotICAgICAgICBzZWxmLnNvdXJjZSA9IHNvdXJj
ZQotCi0gICAgZGVmIF9faXRlcl9fKHNlbGYpOgotICAgICAgICByZXR1cm4gaXRlcihzZWxmLnNv
dXJjZSkKLQotICAgIGRlZiBfX2dldGF0dHJfXyhzZWxmLCBuYW1lKToKLSAgICAgICAgcmV0dXJu
IGdldGF0dHIoc2VsZi5zb3VyY2UsIG5hbWUpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2h0bWw1bGliL2h0bWw1bGliL2ZpbHRl
cnMvYWxwaGFiZXRpY2FsYXR0cmlidXRlcy5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvaHRtbDVsaWIvaHRtbDVsaWIvZmlsdGVycy9hbHBoYWJl
dGljYWxhdHRyaWJ1dGVzLnB5CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBmZWQ2OTk2
YzFkOWIwZGNjNTQ2MmYzZTFjYzhlNGUxNTNjYjQxNGNlLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvaHRtbDVsaWIvaHRtbDVsaWIvZmlsdGVycy9hbHBoYWJldGljYWxh
dHRyaWJ1dGVzLnB5CisrKyAvZGV2L251bGwKQEAgLTEsMjAgKzAsMCBAQAotZnJvbSBfX2Z1dHVy
ZV9fIGltcG9ydCBhYnNvbHV0ZV9pbXBvcnQsIGRpdmlzaW9uLCB1bmljb2RlX2xpdGVyYWxzCi0K
LWZyb20gLiBpbXBvcnQgX2Jhc2UKLQotdHJ5OgotICAgIGZyb20gY29sbGVjdGlvbnMgaW1wb3J0
IE9yZGVyZWREaWN0Ci1leGNlcHQgSW1wb3J0RXJyb3I6Ci0gICAgZnJvbSBvcmRlcmVkZGljdCBp
bXBvcnQgT3JkZXJlZERpY3QKLQotCi1jbGFzcyBGaWx0ZXIoX2Jhc2UuRmlsdGVyKToKLSAgICBk
ZWYgX19pdGVyX18oc2VsZik6Ci0gICAgICAgIGZvciB0b2tlbiBpbiBfYmFzZS5GaWx0ZXIuX19p
dGVyX18oc2VsZik6Ci0gICAgICAgICAgICBpZiB0b2tlblsidHlwZSJdIGluICgiU3RhcnRUYWci
LCAiRW1wdHlUYWciKToKLSAgICAgICAgICAgICAgICBhdHRycyA9IE9yZGVyZWREaWN0KCkKLSAg
ICAgICAgICAgICAgICBmb3IgbmFtZSwgdmFsdWUgaW4gc29ydGVkKHRva2VuWyJkYXRhIl0uaXRl
bXMoKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtleT1sYW1i
ZGEgeDogeFswXSk6Ci0gICAgICAgICAgICAgICAgICAgIGF0dHJzW25hbWVdID0gdmFsdWUKLSAg
ICAgICAgICAgICAgICB0b2tlblsiZGF0YSJdID0gYXR0cnMKLSAgICAgICAgICAgIHlpZWxkIHRv
a2VuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL2h0bWw1bGliL2h0bWw1bGliL2ZpbHRlcnMvaW5qZWN0X21ldGFfY2hhcnNldC5w
eSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvaHRt
bDVsaWIvaHRtbDVsaWIvZmlsdGVycy9pbmplY3RfbWV0YV9jaGFyc2V0LnB5CmRlbGV0ZWQgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCBjYTMzYjcwYjUzMDdlNjlkZGNhZjFkMGQ2M2Y0M2VhNjRmYTY1
MjhhLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvaHRtbDVsaWIvaHRt
bDVsaWIvZmlsdGVycy9pbmplY3RfbWV0YV9jaGFyc2V0LnB5CisrKyAvZGV2L251bGwKQEAgLTEs
NjUgKzAsMCBAQAotZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCBhYnNvbHV0ZV9pbXBvcnQsIGRpdmlz
aW9uLCB1bmljb2RlX2xpdGVyYWxzCi0KLWZyb20gLiBpbXBvcnQgX2Jhc2UKLQotCi1jbGFzcyBG
aWx0ZXIoX2Jhc2UuRmlsdGVyKToKLSAgICBkZWYgX19pbml0X18oc2VsZiwgc291cmNlLCBlbmNv
ZGluZyk6Ci0gICAgICAgIF9iYXNlLkZpbHRlci5fX2luaXRfXyhzZWxmLCBzb3VyY2UpCi0gICAg
ICAgIHNlbGYuZW5jb2RpbmcgPSBlbmNvZGluZwotCi0gICAgZGVmIF9faXRlcl9fKHNlbGYpOgot
ICAgICAgICBzdGF0ZSA9ICJwcmVfaGVhZCIKLSAgICAgICAgbWV0YV9mb3VuZCA9IChzZWxmLmVu
Y29kaW5nIGlzIE5vbmUpCi0gICAgICAgIHBlbmRpbmcgPSBbXQotCi0gICAgICAgIGZvciB0b2tl
biBpbiBfYmFzZS5GaWx0ZXIuX19pdGVyX18oc2VsZik6Ci0gICAgICAgICAgICB0eXBlID0gdG9r
ZW5bInR5cGUiXQotICAgICAgICAgICAgaWYgdHlwZSA9PSAiU3RhcnRUYWciOgotICAgICAgICAg
ICAgICAgIGlmIHRva2VuWyJuYW1lIl0ubG93ZXIoKSA9PSAiaGVhZCI6Ci0gICAgICAgICAgICAg
ICAgICAgIHN0YXRlID0gImluX2hlYWQiCi0KLSAgICAgICAgICAgIGVsaWYgdHlwZSA9PSAiRW1w
dHlUYWciOgotICAgICAgICAgICAgICAgIGlmIHRva2VuWyJuYW1lIl0ubG93ZXIoKSA9PSAibWV0
YSI6Ci0gICAgICAgICAgICAgICAgICAgICMgcmVwbGFjZSBjaGFyc2V0IHdpdGggYWN0dWFsIGVu
Y29kaW5nCi0gICAgICAgICAgICAgICAgICAgIGhhc19odHRwX2VxdWl2X2NvbnRlbnRfdHlwZSA9
IEZhbHNlCi0gICAgICAgICAgICAgICAgICAgIGZvciAobmFtZXNwYWNlLCBuYW1lKSwgdmFsdWUg
aW4gdG9rZW5bImRhdGEiXS5pdGVtcygpOgotICAgICAgICAgICAgICAgICAgICAgICAgaWYgbmFt
ZXNwYWNlIGlzIG5vdCBOb25lOgotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVl
Ci0gICAgICAgICAgICAgICAgICAgICAgICBlbGlmIG5hbWUubG93ZXIoKSA9PSAnY2hhcnNldCc6
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgdG9rZW5bImRhdGEiXVsobmFtZXNwYWNlLCBu
YW1lKV0gPSBzZWxmLmVuY29kaW5nCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgbWV0YV9m
b3VuZCA9IFRydWUKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhawotICAgICAgICAg
ICAgICAgICAgICAgICAgZWxpZiBuYW1lID09ICdodHRwLWVxdWl2JyBhbmQgdmFsdWUubG93ZXIo
KSA9PSAnY29udGVudC10eXBlJzoKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYXNfaHR0
cF9lcXVpdl9jb250ZW50X3R5cGUgPSBUcnVlCi0gICAgICAgICAgICAgICAgICAgIGVsc2U6Ci0g
ICAgICAgICAgICAgICAgICAgICAgICBpZiBoYXNfaHR0cF9lcXVpdl9jb250ZW50X3R5cGUgYW5k
IChOb25lLCAiY29udGVudCIpIGluIHRva2VuWyJkYXRhIl06Ci0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgdG9rZW5bImRhdGEiXVsoTm9uZSwgImNvbnRlbnQiKV0gPSAndGV4dC9odG1sOyBj
aGFyc2V0PSVzJyAlIHNlbGYuZW5jb2RpbmcKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBt
ZXRhX2ZvdW5kID0gVHJ1ZQotCi0gICAgICAgICAgICAgICAgZWxpZiB0b2tlblsibmFtZSJdLmxv
d2VyKCkgPT0gImhlYWQiIGFuZCBub3QgbWV0YV9mb3VuZDoKLSAgICAgICAgICAgICAgICAgICAg
IyBpbnNlcnQgbWV0YSBpbnRvIGVtcHR5IGhlYWQKLSAgICAgICAgICAgICAgICAgICAgeWllbGQg
eyJ0eXBlIjogIlN0YXJ0VGFnIiwgIm5hbWUiOiAiaGVhZCIsCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAiZGF0YSI6IHRva2VuWyJkYXRhIl19Ci0gICAgICAgICAgICAgICAgICAgIHlpZWxk
IHsidHlwZSI6ICJFbXB0eVRhZyIsICJuYW1lIjogIm1ldGEiLAotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgImRhdGEiOiB7KE5vbmUsICJjaGFyc2V0Iik6IHNlbGYuZW5jb2Rpbmd9fQotICAg
ICAgICAgICAgICAgICAgICB5aWVsZCB7InR5cGUiOiAiRW5kVGFnIiwgIm5hbWUiOiAiaGVhZCJ9
Ci0gICAgICAgICAgICAgICAgICAgIG1ldGFfZm91bmQgPSBUcnVlCi0gICAgICAgICAgICAgICAg
ICAgIGNvbnRpbnVlCi0KLSAgICAgICAgICAgIGVsaWYgdHlwZSA9PSAiRW5kVGFnIjoKLSAgICAg
ICAgICAgICAgICBpZiB0b2tlblsibmFtZSJdLmxvd2VyKCkgPT0gImhlYWQiIGFuZCBwZW5kaW5n
OgotICAgICAgICAgICAgICAgICAgICAjIGluc2VydCBtZXRhIGludG8gaGVhZCAoaWYgbmVjZXNz
YXJ5KSBhbmQgZmx1c2ggcGVuZGluZyBxdWV1ZQotICAgICAgICAgICAgICAgICAgICB5aWVsZCBw
ZW5kaW5nLnBvcCgwKQotICAgICAgICAgICAgICAgICAgICBpZiBub3QgbWV0YV9mb3VuZDoKLSAg
ICAgICAgICAgICAgICAgICAgICAgIHlpZWxkIHsidHlwZSI6ICJFbXB0eVRhZyIsICJuYW1lIjog
Im1ldGEiLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJkYXRhIjogeyhOb25lLCAi
Y2hhcnNldCIpOiBzZWxmLmVuY29kaW5nfX0KLSAgICAgICAgICAgICAgICAgICAgd2hpbGUgcGVu
ZGluZzoKLSAgICAgICAgICAgICAgICAgICAgICAgIHlpZWxkIHBlbmRpbmcucG9wKDApCi0gICAg
ICAgICAgICAgICAgICAgIG1ldGFfZm91bmQgPSBUcnVlCi0gICAgICAgICAgICAgICAgICAgIHN0
YXRlID0gInBvc3RfaGVhZCIKLQotICAgICAgICAgICAgaWYgc3RhdGUgPT0gImluX2hlYWQiOgot
ICAgICAgICAgICAgICAgIHBlbmRpbmcuYXBwZW5kKHRva2VuKQotICAgICAgICAgICAgZWxzZToK
LSAgICAgICAgICAgICAgICB5aWVsZCB0b2tlbgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9odG1sNWxpYi9odG1sNWxpYi9maWx0
ZXJzL2xpbnQucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL2h0bWw1bGliL2h0bWw1bGliL2ZpbHRlcnMvbGludC5weQpkZWxldGVkIGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggN2NjOTlhNGJhN2MwMTBmYzQyZGYzMGFjY2U3MTU5ODcxMWRiY2M1Zi4u
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2h0bWw1bGliL2h0bWw1bGli
L2ZpbHRlcnMvbGludC5weQorKysgL2Rldi9udWxsCkBAIC0xLDkzICswLDAgQEAKLWZyb20gX19m
dXR1cmVfXyBpbXBvcnQgYWJzb2x1dGVfaW1wb3J0LCBkaXZpc2lvbiwgdW5pY29kZV9saXRlcmFs
cwotCi1mcm9tIGdldHRleHQgaW1wb3J0IGdldHRleHQKLV8gPSBnZXR0ZXh0Ci0KLWZyb20gLiBp
bXBvcnQgX2Jhc2UKLWZyb20gLi5jb25zdGFudHMgaW1wb3J0IGNkYXRhRWxlbWVudHMsIHJjZGF0
YUVsZW1lbnRzLCB2b2lkRWxlbWVudHMKLQotZnJvbSAuLmNvbnN0YW50cyBpbXBvcnQgc3BhY2VD
aGFyYWN0ZXJzCi1zcGFjZUNoYXJhY3RlcnMgPSAiIi5qb2luKHNwYWNlQ2hhcmFjdGVycykKLQot
Ci1jbGFzcyBMaW50RXJyb3IoRXhjZXB0aW9uKToKLSAgICBwYXNzCi0KLQotY2xhc3MgRmlsdGVy
KF9iYXNlLkZpbHRlcik6Ci0gICAgZGVmIF9faXRlcl9fKHNlbGYpOgotICAgICAgICBvcGVuX2Vs
ZW1lbnRzID0gW10KLSAgICAgICAgY29udGVudE1vZGVsRmxhZyA9ICJQQ0RBVEEiCi0gICAgICAg
IGZvciB0b2tlbiBpbiBfYmFzZS5GaWx0ZXIuX19pdGVyX18oc2VsZik6Ci0gICAgICAgICAgICB0
eXBlID0gdG9rZW5bInR5cGUiXQotICAgICAgICAgICAgaWYgdHlwZSBpbiAoIlN0YXJ0VGFnIiwg
IkVtcHR5VGFnIik6Ci0gICAgICAgICAgICAgICAgbmFtZSA9IHRva2VuWyJuYW1lIl0KLSAgICAg
ICAgICAgICAgICBpZiBjb250ZW50TW9kZWxGbGFnICE9ICJQQ0RBVEEiOgotICAgICAgICAgICAg
ICAgICAgICByYWlzZSBMaW50RXJyb3IoXygiU3RhcnRUYWcgbm90IGluIFBDREFUQSBjb250ZW50
IG1vZGVsIGZsYWc6ICUodGFnKXMiKSAlIHsidGFnIjogbmFtZX0pCi0gICAgICAgICAgICAgICAg
aWYgbm90IGlzaW5zdGFuY2UobmFtZSwgc3RyKToKLSAgICAgICAgICAgICAgICAgICAgcmFpc2Ug
TGludEVycm9yKF8oIlRhZyBuYW1lIGlzIG5vdCBhIHN0cmluZzogJSh0YWcpciIpICUgeyJ0YWci
OiBuYW1lfSkKLSAgICAgICAgICAgICAgICBpZiBub3QgbmFtZToKLSAgICAgICAgICAgICAgICAg
ICAgcmFpc2UgTGludEVycm9yKF8oIkVtcHR5IHRhZyBuYW1lIikpCi0gICAgICAgICAgICAgICAg
aWYgdHlwZSA9PSAiU3RhcnRUYWciIGFuZCBuYW1lIGluIHZvaWRFbGVtZW50czoKLSAgICAgICAg
ICAgICAgICAgICAgcmFpc2UgTGludEVycm9yKF8oIlZvaWQgZWxlbWVudCByZXBvcnRlZCBhcyBT
dGFydFRhZyB0b2tlbjogJSh0YWcpcyIpICUgeyJ0YWciOiBuYW1lfSkKLSAgICAgICAgICAgICAg
ICBlbGlmIHR5cGUgPT0gIkVtcHR5VGFnIiBhbmQgbmFtZSBub3QgaW4gdm9pZEVsZW1lbnRzOgot
ICAgICAgICAgICAgICAgICAgICByYWlzZSBMaW50RXJyb3IoXygiTm9uLXZvaWQgZWxlbWVudCBy
ZXBvcnRlZCBhcyBFbXB0eVRhZyB0b2tlbjogJSh0YWcpcyIpICUgeyJ0YWciOiB0b2tlblsibmFt
ZSJdfSkKLSAgICAgICAgICAgICAgICBpZiB0eXBlID09ICJTdGFydFRhZyI6Ci0gICAgICAgICAg
ICAgICAgICAgIG9wZW5fZWxlbWVudHMuYXBwZW5kKG5hbWUpCi0gICAgICAgICAgICAgICAgZm9y
IG5hbWUsIHZhbHVlIGluIHRva2VuWyJkYXRhIl06Ci0gICAgICAgICAgICAgICAgICAgIGlmIG5v
dCBpc2luc3RhbmNlKG5hbWUsIHN0cik6Ci0gICAgICAgICAgICAgICAgICAgICAgICByYWlzZSBM
aW50RXJyb3IoXygiQXR0cmlidXRlIG5hbWUgaXMgbm90IGEgc3RyaW5nOiAlKG5hbWUpciIpICUg
eyJuYW1lIjogbmFtZX0pCi0gICAgICAgICAgICAgICAgICAgIGlmIG5vdCBuYW1lOgotICAgICAg
ICAgICAgICAgICAgICAgICAgcmFpc2UgTGludEVycm9yKF8oIkVtcHR5IGF0dHJpYnV0ZSBuYW1l
IikpCi0gICAgICAgICAgICAgICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKHZhbHVlLCBzdHIpOgot
ICAgICAgICAgICAgICAgICAgICAgICAgcmFpc2UgTGludEVycm9yKF8oIkF0dHJpYnV0ZSB2YWx1
ZSBpcyBub3QgYSBzdHJpbmc6ICUodmFsdWUpciIpICUgeyJ2YWx1ZSI6IHZhbHVlfSkKLSAgICAg
ICAgICAgICAgICBpZiBuYW1lIGluIGNkYXRhRWxlbWVudHM6Ci0gICAgICAgICAgICAgICAgICAg
IGNvbnRlbnRNb2RlbEZsYWcgPSAiQ0RBVEEiCi0gICAgICAgICAgICAgICAgZWxpZiBuYW1lIGlu
IHJjZGF0YUVsZW1lbnRzOgotICAgICAgICAgICAgICAgICAgICBjb250ZW50TW9kZWxGbGFnID0g
IlJDREFUQSIKLSAgICAgICAgICAgICAgICBlbGlmIG5hbWUgPT0gInBsYWludGV4dCI6Ci0gICAg
ICAgICAgICAgICAgICAgIGNvbnRlbnRNb2RlbEZsYWcgPSAiUExBSU5URVhUIgotCi0gICAgICAg
ICAgICBlbGlmIHR5cGUgPT0gIkVuZFRhZyI6Ci0gICAgICAgICAgICAgICAgbmFtZSA9IHRva2Vu
WyJuYW1lIl0KLSAgICAgICAgICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShuYW1lLCBzdHIpOgot
ICAgICAgICAgICAgICAgICAgICByYWlzZSBMaW50RXJyb3IoXygiVGFnIG5hbWUgaXMgbm90IGEg
c3RyaW5nOiAlKHRhZylyIikgJSB7InRhZyI6IG5hbWV9KQotICAgICAgICAgICAgICAgIGlmIG5v
dCBuYW1lOgotICAgICAgICAgICAgICAgICAgICByYWlzZSBMaW50RXJyb3IoXygiRW1wdHkgdGFn
IG5hbWUiKSkKLSAgICAgICAgICAgICAgICBpZiBuYW1lIGluIHZvaWRFbGVtZW50czoKLSAgICAg
ICAgICAgICAgICAgICAgcmFpc2UgTGludEVycm9yKF8oIlZvaWQgZWxlbWVudCByZXBvcnRlZCBh
cyBFbmRUYWcgdG9rZW46ICUodGFnKXMiKSAlIHsidGFnIjogbmFtZX0pCi0gICAgICAgICAgICAg
ICAgc3RhcnRfbmFtZSA9IG9wZW5fZWxlbWVudHMucG9wKCkKLSAgICAgICAgICAgICAgICBpZiBz
dGFydF9uYW1lICE9IG5hbWU6Ci0gICAgICAgICAgICAgICAgICAgIHJhaXNlIExpbnRFcnJvcihf
KCJFbmRUYWcgKCUoZW5kKXMpIGRvZXMgbm90IG1hdGNoIFN0YXJ0VGFnICglKHN0YXJ0KXMpIikg
JSB7ImVuZCI6IG5hbWUsICJzdGFydCI6IHN0YXJ0X25hbWV9KQotICAgICAgICAgICAgICAgIGNv
bnRlbnRNb2RlbEZsYWcgPSAiUENEQVRBIgotCi0gICAgICAgICAgICBlbGlmIHR5cGUgPT0gIkNv
bW1lbnQiOgotICAgICAgICAgICAgICAgIGlmIGNvbnRlbnRNb2RlbEZsYWcgIT0gIlBDREFUQSI6
Ci0gICAgICAgICAgICAgICAgICAgIHJhaXNlIExpbnRFcnJvcihfKCJDb21tZW50IG5vdCBpbiBQ
Q0RBVEEgY29udGVudCBtb2RlbCBmbGFnIikpCi0KLSAgICAgICAgICAgIGVsaWYgdHlwZSBpbiAo
IkNoYXJhY3RlcnMiLCAiU3BhY2VDaGFyYWN0ZXJzIik6Ci0gICAgICAgICAgICAgICAgZGF0YSA9
IHRva2VuWyJkYXRhIl0KLSAgICAgICAgICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShkYXRhLCBz
dHIpOgotICAgICAgICAgICAgICAgICAgICByYWlzZSBMaW50RXJyb3IoXygiQXR0cmlidXRlIG5h
bWUgaXMgbm90IGEgc3RyaW5nOiAlKG5hbWUpciIpICUgeyJuYW1lIjogZGF0YX0pCi0gICAgICAg
ICAgICAgICAgaWYgbm90IGRhdGE6Ci0gICAgICAgICAgICAgICAgICAgIHJhaXNlIExpbnRFcnJv
cihfKCIlKHR5cGUpcyB0b2tlbiB3aXRoIGVtcHR5IGRhdGEiKSAlIHsidHlwZSI6IHR5cGV9KQot
ICAgICAgICAgICAgICAgIGlmIHR5cGUgPT0gIlNwYWNlQ2hhcmFjdGVycyI6Ci0gICAgICAgICAg
ICAgICAgICAgIGRhdGEgPSBkYXRhLnN0cmlwKHNwYWNlQ2hhcmFjdGVycykKLSAgICAgICAgICAg
ICAgICAgICAgaWYgZGF0YToKLSAgICAgICAgICAgICAgICAgICAgICAgIHJhaXNlIExpbnRFcnJv
cihfKCJOb24tc3BhY2UgY2hhcmFjdGVyKHMpIGZvdW5kIGluIFNwYWNlQ2hhcmFjdGVycyB0b2tl
bjogJSh0b2tlbilyIikgJSB7InRva2VuIjogZGF0YX0pCi0KLSAgICAgICAgICAgIGVsaWYgdHlw
ZSA9PSAiRG9jdHlwZSI6Ci0gICAgICAgICAgICAgICAgbmFtZSA9IHRva2VuWyJuYW1lIl0KLSAg
ICAgICAgICAgICAgICBpZiBjb250ZW50TW9kZWxGbGFnICE9ICJQQ0RBVEEiOgotICAgICAgICAg
ICAgICAgICAgICByYWlzZSBMaW50RXJyb3IoXygiRG9jdHlwZSBub3QgaW4gUENEQVRBIGNvbnRl
bnQgbW9kZWwgZmxhZzogJShuYW1lKXMiKSAlIHsibmFtZSI6IG5hbWV9KQotICAgICAgICAgICAg
ICAgIGlmIG5vdCBpc2luc3RhbmNlKG5hbWUsIHN0cik6Ci0gICAgICAgICAgICAgICAgICAgIHJh
aXNlIExpbnRFcnJvcihfKCJUYWcgbmFtZSBpcyBub3QgYSBzdHJpbmc6ICUodGFnKXIiKSAlIHsi
dGFnIjogbmFtZX0pCi0gICAgICAgICAgICAgICAgIyBYWFg6IHdoYXQgdG8gZG8gd2l0aCB0b2tl
blsiZGF0YSJdID8KLQotICAgICAgICAgICAgZWxpZiB0eXBlIGluICgiUGFyc2VFcnJvciIsICJT
ZXJpYWxpemVFcnJvciIpOgotICAgICAgICAgICAgICAgIHBhc3MKLQotICAgICAgICAgICAgZWxz
ZToKLSAgICAgICAgICAgICAgICByYWlzZSBMaW50RXJyb3IoXygiVW5rbm93biB0b2tlbiB0eXBl
OiAlKHR5cGUpcyIpICUgeyJ0eXBlIjogdHlwZX0pCi0KLSAgICAgICAgICAgIHlpZWxkIHRva2Vu
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL2h0bWw1bGliL2h0bWw1bGliL2ZpbHRlcnMvb3B0aW9uYWx0YWdzLnB5IGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9odG1sNWxpYi9odG1s
NWxpYi9maWx0ZXJzL29wdGlvbmFsdGFncy5weQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggZmVmZTBiMzA5N2JkOTY0NmI0M2M0YzNmM2JkOGJhOGQwYmJiMDFhMC4uMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2h0bWw1bGliL2h0bWw1bGliL2ZpbHRlcnMvb3B0
aW9uYWx0YWdzLnB5CisrKyAvZGV2L251bGwKQEAgLTEsMjA1ICswLDAgQEAKLWZyb20gX19mdXR1
cmVfXyBpbXBvcnQgYWJzb2x1dGVfaW1wb3J0LCBkaXZpc2lvbiwgdW5pY29kZV9saXRlcmFscwot
Ci1mcm9tIC4gaW1wb3J0IF9iYXNlCi0KLQotY2xhc3MgRmlsdGVyKF9iYXNlLkZpbHRlcik6Ci0g
ICAgZGVmIHNsaWRlcihzZWxmKToKLSAgICAgICAgcHJldmlvdXMxID0gcHJldmlvdXMyID0gTm9u
ZQotICAgICAgICBmb3IgdG9rZW4gaW4gc2VsZi5zb3VyY2U6Ci0gICAgICAgICAgICBpZiBwcmV2
aW91czEgaXMgbm90IE5vbmU6Ci0gICAgICAgICAgICAgICAgeWllbGQgcHJldmlvdXMyLCBwcmV2
aW91czEsIHRva2VuCi0gICAgICAgICAgICBwcmV2aW91czIgPSBwcmV2aW91czEKLSAgICAgICAg
ICAgIHByZXZpb3VzMSA9IHRva2VuCi0gICAgICAgIHlpZWxkIHByZXZpb3VzMiwgcHJldmlvdXMx
LCBOb25lCi0KLSAgICBkZWYgX19pdGVyX18oc2VsZik6Ci0gICAgICAgIGZvciBwcmV2aW91cywg
dG9rZW4sIG5leHQgaW4gc2VsZi5zbGlkZXIoKToKLSAgICAgICAgICAgIHR5cGUgPSB0b2tlblsi
dHlwZSJdCi0gICAgICAgICAgICBpZiB0eXBlID09ICJTdGFydFRhZyI6Ci0gICAgICAgICAgICAg
ICAgaWYgKHRva2VuWyJkYXRhIl0gb3IKLSAgICAgICAgICAgICAgICAgICAgICAgIG5vdCBzZWxm
LmlzX29wdGlvbmFsX3N0YXJ0KHRva2VuWyJuYW1lIl0sIHByZXZpb3VzLCBuZXh0KSk6Ci0gICAg
ICAgICAgICAgICAgICAgIHlpZWxkIHRva2VuCi0gICAgICAgICAgICBlbGlmIHR5cGUgPT0gIkVu
ZFRhZyI6Ci0gICAgICAgICAgICAgICAgaWYgbm90IHNlbGYuaXNfb3B0aW9uYWxfZW5kKHRva2Vu
WyJuYW1lIl0sIG5leHQpOgotICAgICAgICAgICAgICAgICAgICB5aWVsZCB0b2tlbgotICAgICAg
ICAgICAgZWxzZToKLSAgICAgICAgICAgICAgICB5aWVsZCB0b2tlbgotCi0gICAgZGVmIGlzX29w
dGlvbmFsX3N0YXJ0KHNlbGYsIHRhZ25hbWUsIHByZXZpb3VzLCBuZXh0KToKLSAgICAgICAgdHlw
ZSA9IG5leHQgYW5kIG5leHRbInR5cGUiXSBvciBOb25lCi0gICAgICAgIGlmIHRhZ25hbWUgaW4g
J2h0bWwnOgotICAgICAgICAgICAgIyBBbiBodG1sIGVsZW1lbnQncyBzdGFydCB0YWcgbWF5IGJl
IG9taXR0ZWQgaWYgdGhlIGZpcnN0IHRoaW5nCi0gICAgICAgICAgICAjIGluc2lkZSB0aGUgaHRt
bCBlbGVtZW50IGlzIG5vdCBhIHNwYWNlIGNoYXJhY3RlciBvciBhIGNvbW1lbnQuCi0gICAgICAg
ICAgICByZXR1cm4gdHlwZSBub3QgaW4gKCJDb21tZW50IiwgIlNwYWNlQ2hhcmFjdGVycyIpCi0g
ICAgICAgIGVsaWYgdGFnbmFtZSA9PSAnaGVhZCc6Ci0gICAgICAgICAgICAjIEEgaGVhZCBlbGVt
ZW50J3Mgc3RhcnQgdGFnIG1heSBiZSBvbWl0dGVkIGlmIHRoZSBmaXJzdCB0aGluZwotICAgICAg
ICAgICAgIyBpbnNpZGUgdGhlIGhlYWQgZWxlbWVudCBpcyBhbiBlbGVtZW50LgotICAgICAgICAg
ICAgIyBYWFg6IHdlIGFsc28gb21pdCB0aGUgc3RhcnQgdGFnIGlmIHRoZSBoZWFkIGVsZW1lbnQg
aXMgZW1wdHkKLSAgICAgICAgICAgIGlmIHR5cGUgaW4gKCJTdGFydFRhZyIsICJFbXB0eVRhZyIp
OgotICAgICAgICAgICAgICAgIHJldHVybiBUcnVlCi0gICAgICAgICAgICBlbGlmIHR5cGUgPT0g
IkVuZFRhZyI6Ci0gICAgICAgICAgICAgICAgcmV0dXJuIG5leHRbIm5hbWUiXSA9PSAiaGVhZCIK
LSAgICAgICAgZWxpZiB0YWduYW1lID09ICdib2R5JzoKLSAgICAgICAgICAgICMgQSBib2R5IGVs
ZW1lbnQncyBzdGFydCB0YWcgbWF5IGJlIG9taXR0ZWQgaWYgdGhlIGZpcnN0IHRoaW5nCi0gICAg
ICAgICAgICAjIGluc2lkZSB0aGUgYm9keSBlbGVtZW50IGlzIG5vdCBhIHNwYWNlIGNoYXJhY3Rl
ciBvciBhIGNvbW1lbnQsCi0gICAgICAgICAgICAjIGV4Y2VwdCBpZiB0aGUgZmlyc3QgdGhpbmcg
aW5zaWRlIHRoZSBib2R5IGVsZW1lbnQgaXMgYSBzY3JpcHQKLSAgICAgICAgICAgICMgb3Igc3R5
bGUgZWxlbWVudCBhbmQgdGhlIG5vZGUgaW1tZWRpYXRlbHkgcHJlY2VkaW5nIHRoZSBib2R5Ci0g
ICAgICAgICAgICAjIGVsZW1lbnQgaXMgYSBoZWFkIGVsZW1lbnQgd2hvc2UgZW5kIHRhZyBoYXMg
YmVlbiBvbWl0dGVkLgotICAgICAgICAgICAgaWYgdHlwZSBpbiAoIkNvbW1lbnQiLCAiU3BhY2VD
aGFyYWN0ZXJzIik6Ci0gICAgICAgICAgICAgICAgcmV0dXJuIEZhbHNlCi0gICAgICAgICAgICBl
bGlmIHR5cGUgPT0gIlN0YXJ0VGFnIjoKLSAgICAgICAgICAgICAgICAjIFhYWDogd2UgZG8gbm90
IGxvb2sgYXQgdGhlIHByZWNlZGluZyBldmVudCwgc28gd2UgbmV2ZXIgb21pdAotICAgICAgICAg
ICAgICAgICMgdGhlIGJvZHkgZWxlbWVudCdzIHN0YXJ0IHRhZyBpZiBpdCdzIGZvbGxvd2VkIGJ5
IGEgc2NyaXB0IG9yCi0gICAgICAgICAgICAgICAgIyBhIHN0eWxlIGVsZW1lbnQuCi0gICAgICAg
ICAgICAgICAgcmV0dXJuIG5leHRbIm5hbWUiXSBub3QgaW4gKCdzY3JpcHQnLCAnc3R5bGUnKQot
ICAgICAgICAgICAgZWxzZToKLSAgICAgICAgICAgICAgICByZXR1cm4gVHJ1ZQotICAgICAgICBl
bGlmIHRhZ25hbWUgPT0gJ2NvbGdyb3VwJzoKLSAgICAgICAgICAgICMgQSBjb2xncm91cCBlbGVt
ZW50J3Mgc3RhcnQgdGFnIG1heSBiZSBvbWl0dGVkIGlmIHRoZSBmaXJzdCB0aGluZwotICAgICAg
ICAgICAgIyBpbnNpZGUgdGhlIGNvbGdyb3VwIGVsZW1lbnQgaXMgYSBjb2wgZWxlbWVudCwgYW5k
IGlmIHRoZSBlbGVtZW50Ci0gICAgICAgICAgICAjIGlzIG5vdCBpbW1lZGlhdGVseSBwcmVjZWVk
ZWQgYnkgYW5vdGhlciBjb2xncm91cCBlbGVtZW50IHdob3NlCi0gICAgICAgICAgICAjIGVuZCB0
YWcgaGFzIGJlZW4gb21pdHRlZC4KLSAgICAgICAgICAgIGlmIHR5cGUgaW4gKCJTdGFydFRhZyIs
ICJFbXB0eVRhZyIpOgotICAgICAgICAgICAgICAgICMgWFhYOiB3ZSBkbyBub3QgbG9vayBhdCB0
aGUgcHJlY2VkaW5nIGV2ZW50LCBzbyBpbnN0ZWFkIHdlIG5ldmVyCi0gICAgICAgICAgICAgICAg
IyBvbWl0IHRoZSBjb2xncm91cCBlbGVtZW50J3MgZW5kIHRhZyB3aGVuIGl0IGlzIGltbWVkaWF0
ZWx5Ci0gICAgICAgICAgICAgICAgIyBmb2xsb3dlZCBieSBhbm90aGVyIGNvbGdyb3VwIGVsZW1l
bnQuIFNlZSBpc19vcHRpb25hbF9lbmQuCi0gICAgICAgICAgICAgICAgcmV0dXJuIG5leHRbIm5h
bWUiXSA9PSAiY29sIgotICAgICAgICAgICAgZWxzZToKLSAgICAgICAgICAgICAgICByZXR1cm4g
RmFsc2UKLSAgICAgICAgZWxpZiB0YWduYW1lID09ICd0Ym9keSc6Ci0gICAgICAgICAgICAjIEEg
dGJvZHkgZWxlbWVudCdzIHN0YXJ0IHRhZyBtYXkgYmUgb21pdHRlZCBpZiB0aGUgZmlyc3QgdGhp
bmcKLSAgICAgICAgICAgICMgaW5zaWRlIHRoZSB0Ym9keSBlbGVtZW50IGlzIGEgdHIgZWxlbWVu
dCwgYW5kIGlmIHRoZSBlbGVtZW50IGlzCi0gICAgICAgICAgICAjIG5vdCBpbW1lZGlhdGVseSBw
cmVjZWVkZWQgYnkgYSB0Ym9keSwgdGhlYWQsIG9yIHRmb290IGVsZW1lbnQKLSAgICAgICAgICAg
ICMgd2hvc2UgZW5kIHRhZyBoYXMgYmVlbiBvbWl0dGVkLgotICAgICAgICAgICAgaWYgdHlwZSA9
PSAiU3RhcnRUYWciOgotICAgICAgICAgICAgICAgICMgb21pdCB0aGUgdGhlYWQgYW5kIHRmb290
IGVsZW1lbnRzJyBlbmQgdGFnIHdoZW4gdGhleSBhcmUKLSAgICAgICAgICAgICAgICAjIGltbWVk
aWF0ZWx5IGZvbGxvd2VkIGJ5IGEgdGJvZHkgZWxlbWVudC4gU2VlIGlzX29wdGlvbmFsX2VuZC4K
LSAgICAgICAgICAgICAgICBpZiBwcmV2aW91cyBhbmQgcHJldmlvdXNbJ3R5cGUnXSA9PSAnRW5k
VGFnJyBhbmQgXAotICAgICAgICAgICAgICAgICAgICAgICAgcHJldmlvdXNbJ25hbWUnXSBpbiAo
J3Rib2R5JywgJ3RoZWFkJywgJ3Rmb290Jyk6Ci0gICAgICAgICAgICAgICAgICAgIHJldHVybiBG
YWxzZQotICAgICAgICAgICAgICAgIHJldHVybiBuZXh0WyJuYW1lIl0gPT0gJ3RyJwotICAgICAg
ICAgICAgZWxzZToKLSAgICAgICAgICAgICAgICByZXR1cm4gRmFsc2UKLSAgICAgICAgcmV0dXJu
IEZhbHNlCi0KLSAgICBkZWYgaXNfb3B0aW9uYWxfZW5kKHNlbGYsIHRhZ25hbWUsIG5leHQpOgot
ICAgICAgICB0eXBlID0gbmV4dCBhbmQgbmV4dFsidHlwZSJdIG9yIE5vbmUKLSAgICAgICAgaWYg
dGFnbmFtZSBpbiAoJ2h0bWwnLCAnaGVhZCcsICdib2R5Jyk6Ci0gICAgICAgICAgICAjIEFuIGh0
bWwgZWxlbWVudCdzIGVuZCB0YWcgbWF5IGJlIG9taXR0ZWQgaWYgdGhlIGh0bWwgZWxlbWVudAot
ICAgICAgICAgICAgIyBpcyBub3QgaW1tZWRpYXRlbHkgZm9sbG93ZWQgYnkgYSBzcGFjZSBjaGFy
YWN0ZXIgb3IgYSBjb21tZW50LgotICAgICAgICAgICAgcmV0dXJuIHR5cGUgbm90IGluICgiQ29t
bWVudCIsICJTcGFjZUNoYXJhY3RlcnMiKQotICAgICAgICBlbGlmIHRhZ25hbWUgaW4gKCdsaScs
ICdvcHRncm91cCcsICd0cicpOgotICAgICAgICAgICAgIyBBIGxpIGVsZW1lbnQncyBlbmQgdGFn
IG1heSBiZSBvbWl0dGVkIGlmIHRoZSBsaSBlbGVtZW50IGlzCi0gICAgICAgICAgICAjIGltbWVk
aWF0ZWx5IGZvbGxvd2VkIGJ5IGFub3RoZXIgbGkgZWxlbWVudCBvciBpZiB0aGVyZSBpcwotICAg
ICAgICAgICAgIyBubyBtb3JlIGNvbnRlbnQgaW4gdGhlIHBhcmVudCBlbGVtZW50LgotICAgICAg
ICAgICAgIyBBbiBvcHRncm91cCBlbGVtZW50J3MgZW5kIHRhZyBtYXkgYmUgb21pdHRlZCBpZiB0
aGUgb3B0Z3JvdXAKLSAgICAgICAgICAgICMgZWxlbWVudCBpcyBpbW1lZGlhdGVseSBmb2xsb3dl
ZCBieSBhbm90aGVyIG9wdGdyb3VwIGVsZW1lbnQsCi0gICAgICAgICAgICAjIG9yIGlmIHRoZXJl
IGlzIG5vIG1vcmUgY29udGVudCBpbiB0aGUgcGFyZW50IGVsZW1lbnQuCi0gICAgICAgICAgICAj
IEEgdHIgZWxlbWVudCdzIGVuZCB0YWcgbWF5IGJlIG9taXR0ZWQgaWYgdGhlIHRyIGVsZW1lbnQg
aXMKLSAgICAgICAgICAgICMgaW1tZWRpYXRlbHkgZm9sbG93ZWQgYnkgYW5vdGhlciB0ciBlbGVt
ZW50LCBvciBpZiB0aGVyZSBpcwotICAgICAgICAgICAgIyBubyBtb3JlIGNvbnRlbnQgaW4gdGhl
IHBhcmVudCBlbGVtZW50LgotICAgICAgICAgICAgaWYgdHlwZSA9PSAiU3RhcnRUYWciOgotICAg
ICAgICAgICAgICAgIHJldHVybiBuZXh0WyJuYW1lIl0gPT0gdGFnbmFtZQotICAgICAgICAgICAg
ZWxzZToKLSAgICAgICAgICAgICAgICByZXR1cm4gdHlwZSA9PSAiRW5kVGFnIiBvciB0eXBlIGlz
IE5vbmUKLSAgICAgICAgZWxpZiB0YWduYW1lIGluICgnZHQnLCAnZGQnKToKLSAgICAgICAgICAg
ICMgQSBkdCBlbGVtZW50J3MgZW5kIHRhZyBtYXkgYmUgb21pdHRlZCBpZiB0aGUgZHQgZWxlbWVu
dCBpcwotICAgICAgICAgICAgIyBpbW1lZGlhdGVseSBmb2xsb3dlZCBieSBhbm90aGVyIGR0IGVs
ZW1lbnQgb3IgYSBkZCBlbGVtZW50LgotICAgICAgICAgICAgIyBBIGRkIGVsZW1lbnQncyBlbmQg
dGFnIG1heSBiZSBvbWl0dGVkIGlmIHRoZSBkZCBlbGVtZW50IGlzCi0gICAgICAgICAgICAjIGlt
bWVkaWF0ZWx5IGZvbGxvd2VkIGJ5IGFub3RoZXIgZGQgZWxlbWVudCBvciBhIGR0IGVsZW1lbnQs
Ci0gICAgICAgICAgICAjIG9yIGlmIHRoZXJlIGlzIG5vIG1vcmUgY29udGVudCBpbiB0aGUgcGFy
ZW50IGVsZW1lbnQuCi0gICAgICAgICAgICBpZiB0eXBlID09ICJTdGFydFRhZyI6Ci0gICAgICAg
ICAgICAgICAgcmV0dXJuIG5leHRbIm5hbWUiXSBpbiAoJ2R0JywgJ2RkJykKLSAgICAgICAgICAg
IGVsaWYgdGFnbmFtZSA9PSAnZGQnOgotICAgICAgICAgICAgICAgIHJldHVybiB0eXBlID09ICJF
bmRUYWciIG9yIHR5cGUgaXMgTm9uZQotICAgICAgICAgICAgZWxzZToKLSAgICAgICAgICAgICAg
ICByZXR1cm4gRmFsc2UKLSAgICAgICAgZWxpZiB0YWduYW1lID09ICdwJzoKLSAgICAgICAgICAg
ICMgQSBwIGVsZW1lbnQncyBlbmQgdGFnIG1heSBiZSBvbWl0dGVkIGlmIHRoZSBwIGVsZW1lbnQg
aXMKLSAgICAgICAgICAgICMgaW1tZWRpYXRlbHkgZm9sbG93ZWQgYnkgYW4gYWRkcmVzcywgYXJ0
aWNsZSwgYXNpZGUsCi0gICAgICAgICAgICAjIGJsb2NrcXVvdGUsIGRhdGFncmlkLCBkaWFsb2cs
IGRpciwgZGl2LCBkbCwgZmllbGRzZXQsCi0gICAgICAgICAgICAjIGZvb3RlciwgZm9ybSwgaDEs
IGgyLCBoMywgaDQsIGg1LCBoNiwgaGVhZGVyLCBociwgbWVudSwKLSAgICAgICAgICAgICMgbmF2
LCBvbCwgcCwgcHJlLCBzZWN0aW9uLCB0YWJsZSwgb3IgdWwsIGVsZW1lbnQsIG9yIGlmCi0gICAg
ICAgICAgICAjIHRoZXJlIGlzIG5vIG1vcmUgY29udGVudCBpbiB0aGUgcGFyZW50IGVsZW1lbnQu
Ci0gICAgICAgICAgICBpZiB0eXBlIGluICgiU3RhcnRUYWciLCAiRW1wdHlUYWciKToKLSAgICAg
ICAgICAgICAgICByZXR1cm4gbmV4dFsibmFtZSJdIGluICgnYWRkcmVzcycsICdhcnRpY2xlJywg
J2FzaWRlJywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnYmxvY2tx
dW90ZScsICdkYXRhZ3JpZCcsICdkaWFsb2cnLAotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICdkaXInLCAnZGl2JywgJ2RsJywgJ2ZpZWxkc2V0JywgJ2Zvb3RlcicsCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2Zvcm0nLCAnaDEnLCAnaDIn
LCAnaDMnLCAnaDQnLCAnaDUnLCAnaDYnLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICdoZWFkZXInLCAnaHInLCAnbWVudScsICduYXYnLCAnb2wnLAotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdwJywgJ3ByZScsICdzZWN0aW9uJywgJ3Rh
YmxlJywgJ3VsJykKLSAgICAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAgICAgcmV0dXJuIHR5
cGUgPT0gIkVuZFRhZyIgb3IgdHlwZSBpcyBOb25lCi0gICAgICAgIGVsaWYgdGFnbmFtZSA9PSAn
b3B0aW9uJzoKLSAgICAgICAgICAgICMgQW4gb3B0aW9uIGVsZW1lbnQncyBlbmQgdGFnIG1heSBi
ZSBvbWl0dGVkIGlmIHRoZSBvcHRpb24KLSAgICAgICAgICAgICMgZWxlbWVudCBpcyBpbW1lZGlh
dGVseSBmb2xsb3dlZCBieSBhbm90aGVyIG9wdGlvbiBlbGVtZW50LAotICAgICAgICAgICAgIyBv
ciBpZiBpdCBpcyBpbW1lZGlhdGVseSBmb2xsb3dlZCBieSBhbiA8Y29kZT5vcHRncm91cDwvY29k
ZT4KLSAgICAgICAgICAgICMgZWxlbWVudCwgb3IgaWYgdGhlcmUgaXMgbm8gbW9yZSBjb250ZW50
IGluIHRoZSBwYXJlbnQKLSAgICAgICAgICAgICMgZWxlbWVudC4KLSAgICAgICAgICAgIGlmIHR5
cGUgPT0gIlN0YXJ0VGFnIjoKLSAgICAgICAgICAgICAgICByZXR1cm4gbmV4dFsibmFtZSJdIGlu
ICgnb3B0aW9uJywgJ29wdGdyb3VwJykKLSAgICAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAg
ICAgcmV0dXJuIHR5cGUgPT0gIkVuZFRhZyIgb3IgdHlwZSBpcyBOb25lCi0gICAgICAgIGVsaWYg
dGFnbmFtZSBpbiAoJ3J0JywgJ3JwJyk6Ci0gICAgICAgICAgICAjIEFuIHJ0IGVsZW1lbnQncyBl
bmQgdGFnIG1heSBiZSBvbWl0dGVkIGlmIHRoZSBydCBlbGVtZW50IGlzCi0gICAgICAgICAgICAj
IGltbWVkaWF0ZWx5IGZvbGxvd2VkIGJ5IGFuIHJ0IG9yIHJwIGVsZW1lbnQsIG9yIGlmIHRoZXJl
IGlzCi0gICAgICAgICAgICAjIG5vIG1vcmUgY29udGVudCBpbiB0aGUgcGFyZW50IGVsZW1lbnQu
Ci0gICAgICAgICAgICAjIEFuIHJwIGVsZW1lbnQncyBlbmQgdGFnIG1heSBiZSBvbWl0dGVkIGlm
IHRoZSBycCBlbGVtZW50IGlzCi0gICAgICAgICAgICAjIGltbWVkaWF0ZWx5IGZvbGxvd2VkIGJ5
IGFuIHJ0IG9yIHJwIGVsZW1lbnQsIG9yIGlmIHRoZXJlIGlzCi0gICAgICAgICAgICAjIG5vIG1v
cmUgY29udGVudCBpbiB0aGUgcGFyZW50IGVsZW1lbnQuCi0gICAgICAgICAgICBpZiB0eXBlID09
ICJTdGFydFRhZyI6Ci0gICAgICAgICAgICAgICAgcmV0dXJuIG5leHRbIm5hbWUiXSBpbiAoJ3J0
JywgJ3JwJykKLSAgICAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAgICAgcmV0dXJuIHR5cGUg
PT0gIkVuZFRhZyIgb3IgdHlwZSBpcyBOb25lCi0gICAgICAgIGVsaWYgdGFnbmFtZSA9PSAnY29s
Z3JvdXAnOgotICAgICAgICAgICAgIyBBIGNvbGdyb3VwIGVsZW1lbnQncyBlbmQgdGFnIG1heSBi
ZSBvbWl0dGVkIGlmIHRoZSBjb2xncm91cAotICAgICAgICAgICAgIyBlbGVtZW50IGlzIG5vdCBp
bW1lZGlhdGVseSBmb2xsb3dlZCBieSBhIHNwYWNlIGNoYXJhY3RlciBvcgotICAgICAgICAgICAg
IyBhIGNvbW1lbnQuCi0gICAgICAgICAgICBpZiB0eXBlIGluICgiQ29tbWVudCIsICJTcGFjZUNo
YXJhY3RlcnMiKToKLSAgICAgICAgICAgICAgICByZXR1cm4gRmFsc2UKLSAgICAgICAgICAgIGVs
aWYgdHlwZSA9PSAiU3RhcnRUYWciOgotICAgICAgICAgICAgICAgICMgWFhYOiB3ZSBhbHNvIGxv
b2sgZm9yIGFuIGltbWVkaWF0ZWx5IGZvbGxvd2luZyBjb2xncm91cAotICAgICAgICAgICAgICAg
ICMgZWxlbWVudC4gU2VlIGlzX29wdGlvbmFsX3N0YXJ0LgotICAgICAgICAgICAgICAgIHJldHVy
biBuZXh0WyJuYW1lIl0gIT0gJ2NvbGdyb3VwJwotICAgICAgICAgICAgZWxzZToKLSAgICAgICAg
ICAgICAgICByZXR1cm4gVHJ1ZQotICAgICAgICBlbGlmIHRhZ25hbWUgaW4gKCd0aGVhZCcsICd0
Ym9keScpOgotICAgICAgICAgICAgIyBBIHRoZWFkIGVsZW1lbnQncyBlbmQgdGFnIG1heSBiZSBv
bWl0dGVkIGlmIHRoZSB0aGVhZCBlbGVtZW50Ci0gICAgICAgICAgICAjIGlzIGltbWVkaWF0ZWx5
IGZvbGxvd2VkIGJ5IGEgdGJvZHkgb3IgdGZvb3QgZWxlbWVudC4KLSAgICAgICAgICAgICMgQSB0
Ym9keSBlbGVtZW50J3MgZW5kIHRhZyBtYXkgYmUgb21pdHRlZCBpZiB0aGUgdGJvZHkgZWxlbWVu
dAotICAgICAgICAgICAgIyBpcyBpbW1lZGlhdGVseSBmb2xsb3dlZCBieSBhIHRib2R5IG9yIHRm
b290IGVsZW1lbnQsIG9yIGlmCi0gICAgICAgICAgICAjIHRoZXJlIGlzIG5vIG1vcmUgY29udGVu
dCBpbiB0aGUgcGFyZW50IGVsZW1lbnQuCi0gICAgICAgICAgICAjIEEgdGZvb3QgZWxlbWVudCdz
IGVuZCB0YWcgbWF5IGJlIG9taXR0ZWQgaWYgdGhlIHRmb290IGVsZW1lbnQKLSAgICAgICAgICAg
ICMgaXMgaW1tZWRpYXRlbHkgZm9sbG93ZWQgYnkgYSB0Ym9keSBlbGVtZW50LCBvciBpZiB0aGVy
ZSBpcyBubwotICAgICAgICAgICAgIyBtb3JlIGNvbnRlbnQgaW4gdGhlIHBhcmVudCBlbGVtZW50
LgotICAgICAgICAgICAgIyBYWFg6IHdlIG5ldmVyIG9taXQgdGhlIGVuZCB0YWcgd2hlbiB0aGUg
Zm9sbG93aW5nIGVsZW1lbnQgaXMKLSAgICAgICAgICAgICMgYSB0Ym9keS4gU2VlIGlzX29wdGlv
bmFsX3N0YXJ0LgotICAgICAgICAgICAgaWYgdHlwZSA9PSAiU3RhcnRUYWciOgotICAgICAgICAg
ICAgICAgIHJldHVybiBuZXh0WyJuYW1lIl0gaW4gWyd0Ym9keScsICd0Zm9vdCddCi0gICAgICAg
ICAgICBlbGlmIHRhZ25hbWUgPT0gJ3Rib2R5JzoKLSAgICAgICAgICAgICAgICByZXR1cm4gdHlw
ZSA9PSAiRW5kVGFnIiBvciB0eXBlIGlzIE5vbmUKLSAgICAgICAgICAgIGVsc2U6Ci0gICAgICAg
ICAgICAgICAgcmV0dXJuIEZhbHNlCi0gICAgICAgIGVsaWYgdGFnbmFtZSA9PSAndGZvb3QnOgot
ICAgICAgICAgICAgIyBBIHRmb290IGVsZW1lbnQncyBlbmQgdGFnIG1heSBiZSBvbWl0dGVkIGlm
IHRoZSB0Zm9vdCBlbGVtZW50Ci0gICAgICAgICAgICAjIGlzIGltbWVkaWF0ZWx5IGZvbGxvd2Vk
IGJ5IGEgdGJvZHkgZWxlbWVudCwgb3IgaWYgdGhlcmUgaXMgbm8KLSAgICAgICAgICAgICMgbW9y
ZSBjb250ZW50IGluIHRoZSBwYXJlbnQgZWxlbWVudC4KLSAgICAgICAgICAgICMgWFhYOiB3ZSBu
ZXZlciBvbWl0IHRoZSBlbmQgdGFnIHdoZW4gdGhlIGZvbGxvd2luZyBlbGVtZW50IGlzCi0gICAg
ICAgICAgICAjIGEgdGJvZHkuIFNlZSBpc19vcHRpb25hbF9zdGFydC4KLSAgICAgICAgICAgIGlm
IHR5cGUgPT0gIlN0YXJ0VGFnIjoKLSAgICAgICAgICAgICAgICByZXR1cm4gbmV4dFsibmFtZSJd
ID09ICd0Ym9keScKLSAgICAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAgICAgcmV0dXJuIHR5
cGUgPT0gIkVuZFRhZyIgb3IgdHlwZSBpcyBOb25lCi0gICAgICAgIGVsaWYgdGFnbmFtZSBpbiAo
J3RkJywgJ3RoJyk6Ci0gICAgICAgICAgICAjIEEgdGQgZWxlbWVudCdzIGVuZCB0YWcgbWF5IGJl
IG9taXR0ZWQgaWYgdGhlIHRkIGVsZW1lbnQgaXMKLSAgICAgICAgICAgICMgaW1tZWRpYXRlbHkg
Zm9sbG93ZWQgYnkgYSB0ZCBvciB0aCBlbGVtZW50LCBvciBpZiB0aGVyZSBpcwotICAgICAgICAg
ICAgIyBubyBtb3JlIGNvbnRlbnQgaW4gdGhlIHBhcmVudCBlbGVtZW50LgotICAgICAgICAgICAg
IyBBIHRoIGVsZW1lbnQncyBlbmQgdGFnIG1heSBiZSBvbWl0dGVkIGlmIHRoZSB0aCBlbGVtZW50
IGlzCi0gICAgICAgICAgICAjIGltbWVkaWF0ZWx5IGZvbGxvd2VkIGJ5IGEgdGQgb3IgdGggZWxl
bWVudCwgb3IgaWYgdGhlcmUgaXMKLSAgICAgICAgICAgICMgbm8gbW9yZSBjb250ZW50IGluIHRo
ZSBwYXJlbnQgZWxlbWVudC4KLSAgICAgICAgICAgIGlmIHR5cGUgPT0gIlN0YXJ0VGFnIjoKLSAg
ICAgICAgICAgICAgICByZXR1cm4gbmV4dFsibmFtZSJdIGluICgndGQnLCAndGgnKQotICAgICAg
ICAgICAgZWxzZToKLSAgICAgICAgICAgICAgICByZXR1cm4gdHlwZSA9PSAiRW5kVGFnIiBvciB0
eXBlIGlzIE5vbmUKLSAgICAgICAgcmV0dXJuIEZhbHNlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2h0bWw1bGliL2h0bWw1bGli
L2ZpbHRlcnMvc2FuaXRpemVyLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy9odG1sNWxpYi9odG1sNWxpYi9maWx0ZXJzL3Nhbml0aXplci5weQpk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYjIwNmI1NGU3YTc0ZmJjZmMwZWJkNTgwZGMz
ZDI1NWZkNGU3NTQ1Ni4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAot
LS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2h0
bWw1bGliL2h0bWw1bGliL2ZpbHRlcnMvc2FuaXRpemVyLnB5CisrKyAvZGV2L251bGwKQEAgLTEs
MTIgKzAsMCBAQAotZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCBhYnNvbHV0ZV9pbXBvcnQsIGRpdmlz
aW9uLCB1bmljb2RlX2xpdGVyYWxzCi0KLWZyb20gLiBpbXBvcnQgX2Jhc2UKLWZyb20gLi5zYW5p
dGl6ZXIgaW1wb3J0IEhUTUxTYW5pdGl6ZXJNaXhpbgotCi0KLWNsYXNzIEZpbHRlcihfYmFzZS5G
aWx0ZXIsIEhUTUxTYW5pdGl6ZXJNaXhpbik6Ci0gICAgZGVmIF9faXRlcl9fKHNlbGYpOgotICAg
ICAgICBmb3IgdG9rZW4gaW4gX2Jhc2UuRmlsdGVyLl9faXRlcl9fKHNlbGYpOgotICAgICAgICAg
ICAgdG9rZW4gPSBzZWxmLnNhbml0aXplX3Rva2VuKHRva2VuKQotICAgICAgICAgICAgaWYgdG9r
ZW46Ci0gICAgICAgICAgICAgICAgeWllbGQgdG9rZW4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvaHRtbDVsaWIvaHRtbDVsaWIv
ZmlsdGVycy93M2MtaW1wb3J0LmxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvaHRtbDVsaWIvaHRtbDVsaWIvZmlsdGVycy93M2MtaW1wb3J0Lmxv
ZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNTIzMDI0YTRhYmVkNWJkZDI3ZTNjZDJl
YWRhYTU0YTQ1MjM4M2M5NC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L2h0bWw1bGliL2h0bWw1bGliL2ZpbHRlcnMvdzNjLWltcG9ydC5sb2cKKysrIC9kZXYvbnVsbApA
QCAtMSwyNCArMCwwIEBACi1UaGUgdGVzdHMgaW4gdGhpcyBkaXJlY3Rvcnkgd2VyZSBpbXBvcnRl
ZCBmcm9tIHRoZSBXM0MgcmVwb3NpdG9yeS4KLURvIE5PVCBtb2RpZnkgdGhlc2UgdGVzdHMgZGly
ZWN0bHkgaW4gV2ViS2l0LgotSW5zdGVhZCwgY3JlYXRlIGEgcHVsbCByZXF1ZXN0IG9uIHRoZSBX
UFQgZ2l0aHViOgotCWh0dHBzOi8vZ2l0aHViLmNvbS93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzCi0K
LVRoZW4gcnVuIHRoZSBUb29scy9TY3JpcHRzL2ltcG9ydC13M2MtdGVzdHMgaW4gV2ViS2l0IHRv
IHJlaW1wb3J0Ci0KLURvIE5PVCBtb2RpZnkgb3IgcmVtb3ZlIHRoaXMgZmlsZS4KLQotLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tCi1Qcm9wZXJ0aWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi1Q
cm9wZXJ0eSB2YWx1ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLQotTGlzdCBvZiBmaWxlczoKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL2h0bWw1bGliL2h0bWw1bGliL2ZpbHRlcnMvX19pbml0X18ucHkK
LS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2h0bWw1
bGliL2h0bWw1bGliL2ZpbHRlcnMvX2Jhc2UucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2h0bWw1bGliL2h0bWw1bGliL2ZpbHRlcnMvYWxwaGFi
ZXRpY2FsYXR0cmlidXRlcy5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvaHRtbDVsaWIvaHRtbDVsaWIvZmlsdGVycy9pbmplY3RfbWV0YV9jaGFy
c2V0LnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy9odG1sNWxpYi9odG1sNWxpYi9maWx0ZXJzL2xpbnQucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2h0bWw1bGliL2h0bWw1bGliL2ZpbHRlcnMv
b3B0aW9uYWx0YWdzLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy9odG1sNWxpYi9odG1sNWxpYi9maWx0ZXJzL3Nhbml0aXplci5weQotL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvaHRtbDVsaWIvaHRt
bDVsaWIvZmlsdGVycy93aGl0ZXNwYWNlLnB5CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2h0bWw1bGliL2h0bWw1bGliL2ZpbHRl
cnMvd2hpdGVzcGFjZS5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvaHRtbDVsaWIvaHRtbDVsaWIvZmlsdGVycy93aGl0ZXNwYWNlLnB5CmRlbGV0
ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkZmM2MGVlYmQzNWJkNjQ1MGQ4MmNmNjVhYmNiZWRj
YThmOGZiOWRhLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvaHRtbDVs
aWIvaHRtbDVsaWIvZmlsdGVycy93aGl0ZXNwYWNlLnB5CisrKyAvZGV2L251bGwKQEAgLTEsMzgg
KzAsMCBAQAotZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCBhYnNvbHV0ZV9pbXBvcnQsIGRpdmlzaW9u
LCB1bmljb2RlX2xpdGVyYWxzCi0KLWltcG9ydCByZQotCi1mcm9tIC4gaW1wb3J0IF9iYXNlCi1m
cm9tIC4uY29uc3RhbnRzIGltcG9ydCByY2RhdGFFbGVtZW50cywgc3BhY2VDaGFyYWN0ZXJzCi1z
cGFjZUNoYXJhY3RlcnMgPSAiIi5qb2luKHNwYWNlQ2hhcmFjdGVycykKLQotU1BBQ0VTX1JFR0VY
ID0gcmUuY29tcGlsZSgiWyVzXSsiICUgc3BhY2VDaGFyYWN0ZXJzKQotCi0KLWNsYXNzIEZpbHRl
cihfYmFzZS5GaWx0ZXIpOgotCi0gICAgc3BhY2VQcmVzZXJ2ZUVsZW1lbnRzID0gZnJvemVuc2V0
KFsicHJlIiwgInRleHRhcmVhIl0gKyBsaXN0KHJjZGF0YUVsZW1lbnRzKSkKLQotICAgIGRlZiBf
X2l0ZXJfXyhzZWxmKToKLSAgICAgICAgcHJlc2VydmUgPSAwCi0gICAgICAgIGZvciB0b2tlbiBp
biBfYmFzZS5GaWx0ZXIuX19pdGVyX18oc2VsZik6Ci0gICAgICAgICAgICB0eXBlID0gdG9rZW5b
InR5cGUiXQotICAgICAgICAgICAgaWYgdHlwZSA9PSAiU3RhcnRUYWciIFwKLSAgICAgICAgICAg
ICAgICAgICAgYW5kIChwcmVzZXJ2ZSBvciB0b2tlblsibmFtZSJdIGluIHNlbGYuc3BhY2VQcmVz
ZXJ2ZUVsZW1lbnRzKToKLSAgICAgICAgICAgICAgICBwcmVzZXJ2ZSArPSAxCi0KLSAgICAgICAg
ICAgIGVsaWYgdHlwZSA9PSAiRW5kVGFnIiBhbmQgcHJlc2VydmU6Ci0gICAgICAgICAgICAgICAg
cHJlc2VydmUgLT0gMQotCi0gICAgICAgICAgICBlbGlmIG5vdCBwcmVzZXJ2ZSBhbmQgdHlwZSA9
PSAiU3BhY2VDaGFyYWN0ZXJzIiBhbmQgdG9rZW5bImRhdGEiXToKLSAgICAgICAgICAgICAgICAj
IFRlc3Qgb24gdG9rZW5bImRhdGEiXSBhYm92ZSB0byBub3QgaW50cm9kdWNlIHNwYWNlcyB3aGVy
ZSB0aGVyZSB3ZXJlIG5vdAotICAgICAgICAgICAgICAgIHRva2VuWyJkYXRhIl0gPSAiICIKLQot
ICAgICAgICAgICAgZWxpZiBub3QgcHJlc2VydmUgYW5kIHR5cGUgPT0gIkNoYXJhY3RlcnMiOgot
ICAgICAgICAgICAgICAgIHRva2VuWyJkYXRhIl0gPSBjb2xsYXBzZV9zcGFjZXModG9rZW5bImRh
dGEiXSkKLQotICAgICAgICAgICAgeWllbGQgdG9rZW4KLQotCi1kZWYgY29sbGFwc2Vfc3BhY2Vz
KHRleHQpOgotICAgIHJldHVybiBTUEFDRVNfUkVHRVguc3ViKCcgJywgdGV4dCkKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvaHRt
bDVsaWIvaHRtbDVsaWIvc2VyaWFsaXplci93M2MtaW1wb3J0LmxvZyBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvaHRtbDVsaWIvaHRtbDVsaWIvc2Vy
aWFsaXplci93M2MtaW1wb3J0LmxvZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOWQx
YjliYTY3MmQ1YzY1OGRlMDkxMDIwMTZlNDk2ZmEwNmM5NjFiZS4uMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2h0bWw1bGliL2h0bWw1bGliL3NlcmlhbGl6ZXIvdzNjLWlt
cG9ydC5sb2cKKysrIC9kZXYvbnVsbApAQCAtMSwxOCArMCwwIEBACi1UaGUgdGVzdHMgaW4gdGhp
cyBkaXJlY3Rvcnkgd2VyZSBpbXBvcnRlZCBmcm9tIHRoZSBXM0MgcmVwb3NpdG9yeS4KLURvIE5P
VCBtb2RpZnkgdGhlc2UgdGVzdHMgZGlyZWN0bHkgaW4gV2ViS2l0LgotSW5zdGVhZCwgY3JlYXRl
IGEgcHVsbCByZXF1ZXN0IG9uIHRoZSBXUFQgZ2l0aHViOgotCWh0dHBzOi8vZ2l0aHViLmNvbS93
ZWItcGxhdGZvcm0tdGVzdHMvd3B0Ci0KLVRoZW4gcnVuIHRoZSBUb29scy9TY3JpcHRzL2ltcG9y
dC13M2MtdGVzdHMgaW4gV2ViS2l0IHRvIHJlaW1wb3J0Ci0KLURvIE5PVCBtb2RpZnkgb3IgcmVt
b3ZlIHRoaXMgZmlsZS4KLQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1Qcm9wZXJ0aWVzIHJlcXVpcmluZyB2
ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi1Qcm9wZXJ0eSB2YWx1ZXMgcmVxdWlyaW5nIHZlbmRvciBw
cmVmaXhlczoKLU5vbmUKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotTGlzdCBvZiBmaWxlczoKLS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2h0bWw1bGliL2h0bWw1
bGliL3NlcmlhbGl6ZXIvX19pbml0X18ucHljCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy9odG1sNWxpYi9odG1sNWxpYi9zZXJpYWxpemVyL2h0bWxz
ZXJpYWxpemVyLnB5YwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy9odG1sNWxpYi9odG1sNWxpYi90ZXN0cy9SRUFETUUgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2h0bWw1bGliL2h0
bWw1bGliL3Rlc3RzL1JFQURNRQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYzU2NGI2
ODM2ZTQ2Yzk3YmJjNDQ3N2QzNTEwY2U5MTdiNmIzMDM0ZC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL2h0bWw1bGliL2h0bWw1bGliL3Rlc3RzL1JFQURNRQorKysgL2Rl
di9udWxsCkBAIC0xICswLDAgQEAKLUVhY2ggdGVzdGNhc2UgZmlsZSBjYW4gYmUgcnVuIHRocm91
Z2ggbm9zZSAodXNpbmcgYGBub3NldGVzdHNgYCkuClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmls
ZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy9odG1sNWxpYi9odG1sNWxpYi90ZXN0cy9fX2luaXRfXy5weSBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvaHRtbDVsaWIvaHRtbDVsaWIv
dGVzdHMvX19pbml0X18ucHkKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGI4Y2UyZGUz
MmU1ZmE0MmIzYjZhMjdiZDgzZmJmMDUwYjE3ZWNhZDEuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy9odG1sNWxpYi9odG1sNWxpYi90ZXN0cy9fX2luaXRfXy5weQorKysg
L2Rldi9udWxsCkBAIC0xICswLDAgQEAKLWZyb20gX19mdXR1cmVfXyBpbXBvcnQgYWJzb2x1dGVf
aW1wb3J0LCBkaXZpc2lvbiwgdW5pY29kZV9saXRlcmFscwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9odG1sNWxpYi9odG1sNWxp
Yi90ZXN0cy9tb2NrUGFyc2VyLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy9odG1sNWxpYi9odG1sNWxpYi90ZXN0cy9tb2NrUGFyc2VyLnB5CmRl
bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlZjMxNTI3ZTgyZGY5NTJiODdkMDNlNDUyZjcx
MzYwMzg0ODhiN2IyLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0t
LSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvaHRt
bDVsaWIvaHRtbDVsaWIvdGVzdHMvbW9ja1BhcnNlci5weQorKysgL2Rldi9udWxsCkBAIC0xLDQx
ICswLDAgQEAKLWZyb20gX19mdXR1cmVfXyBpbXBvcnQgYWJzb2x1dGVfaW1wb3J0LCBkaXZpc2lv
biwgdW5pY29kZV9saXRlcmFscwotCi1pbXBvcnQgc3lzCi1pbXBvcnQgb3MKLQotaWYgX19uYW1l
X18gPT0gJ19fbWFpbl9fJzoKLSAgICAjIEFsbG93IHVzIHRvIGltcG9ydCBmcm9tIHRoZSBzcmMg
ZGlyZWN0b3J5Ci0gICAgb3MuY2hkaXIob3MucGF0aC5zcGxpdChvcy5wYXRoLmFic3BhdGgoX19m
aWxlX18pKVswXSkKLSAgICBzeXMucGF0aC5pbnNlcnQoMCwgb3MucGF0aC5hYnNwYXRoKG9zLnBh
dGguam9pbihvcy5wYXJkaXIsICJzcmMiKSkpCi0KLWZyb20gaHRtbDVsaWIudG9rZW5pemVyIGlt
cG9ydCBIVE1MVG9rZW5pemVyCi0KLQotY2xhc3MgSFRNTFBhcnNlcihvYmplY3QpOgotICAgICIi
IiBGYWtlIHBhcnNlciB0byB0ZXN0IHRva2VuaXplciBvdXRwdXQgIiIiCi0gICAgZGVmIHBhcnNl
KHNlbGYsIHN0cmVhbSwgb3V0cHV0PVRydWUpOgotICAgICAgICB0b2tlbml6ZXIgPSBIVE1MVG9r
ZW5pemVyKHN0cmVhbSkKLSAgICAgICAgZm9yIHRva2VuIGluIHRva2VuaXplcjoKLSAgICAgICAg
ICAgIGlmIG91dHB1dDoKLSAgICAgICAgICAgICAgICBwcmludCh0b2tlbikKLQotaWYgX19uYW1l
X18gPT0gIl9fbWFpbl9fIjoKLSAgICB4ID0gSFRNTFBhcnNlcigpCi0gICAgaWYgbGVuKHN5cy5h
cmd2KSA+IDE6Ci0gICAgICAgIGlmIGxlbihzeXMuYXJndikgPiAyOgotICAgICAgICAgICAgaW1w
b3J0IGhvdHNob3QKLSAgICAgICAgICAgIGltcG9ydCBob3RzaG90LnN0YXRzCi0gICAgICAgICAg
ICBwcm9mID0gaG90c2hvdC5Qcm9maWxlKCdzdGF0cy5wcm9mJykKLSAgICAgICAgICAgIHByb2Yu
cnVuY2FsbCh4LnBhcnNlLCBzeXMuYXJndlsxXSwgRmFsc2UpCi0gICAgICAgICAgICBwcm9mLmNs
b3NlKCkKLSAgICAgICAgICAgIHN0YXRzID0gaG90c2hvdC5zdGF0cy5sb2FkKCdzdGF0cy5wcm9m
JykKLSAgICAgICAgICAgIHN0YXRzLnN0cmlwX2RpcnMoKQotICAgICAgICAgICAgc3RhdHMuc29y
dF9zdGF0cygndGltZScpCi0gICAgICAgICAgICBzdGF0cy5wcmludF9zdGF0cygpCi0gICAgICAg
IGVsc2U6Ci0gICAgICAgICAgICB4LnBhcnNlKHN5cy5hcmd2WzFdKQotICAgIGVsc2U6Ci0gICAg
ICAgIHByaW50KCIiIlVzYWdlOiBweXRob24gbW9ja1BhcnNlci5weSBmaWxlbmFtZSBbc3RhdHNd
Ci0gICAgICAgIElmIHN0YXRzIGlzIHNwZWNpZmllZCB0aGUgaG90c2hvdHMgcHJvZmlsZXIgd2ls
bCBydW4gYW5kIG91dHB1dCB0aGUKLSAgICAgICAgc3RhdHMgaW5zdGVhZC4KLSAgICAgICAgIiIi
KQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy9odG1sNWxpYi9odG1sNWxpYi90ZXN0cy9wZXJmb3JtYW5jZS9jb25jYXRlbmF0aW9u
LnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9o
dG1sNWxpYi9odG1sNWxpYi90ZXN0cy9wZXJmb3JtYW5jZS9jb25jYXRlbmF0aW9uLnB5CmRlbGV0
ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhMTQ2NTAzNmU1MmIxNWUxNWFmNDBiNDM4Yjk4OTlh
OWZkZjQ1MzcwLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvaHRtbDVs
aWIvaHRtbDVsaWIvdGVzdHMvcGVyZm9ybWFuY2UvY29uY2F0ZW5hdGlvbi5weQorKysgL2Rldi9u
dWxsCkBAIC0xLDM2ICswLDAgQEAKLWZyb20gX19mdXR1cmVfXyBpbXBvcnQgYWJzb2x1dGVfaW1w
b3J0LCBkaXZpc2lvbiwgdW5pY29kZV9saXRlcmFscwotCi0KLWRlZiBmMSgpOgotICAgIHggPSAi
QUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVpBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWiIKLSAg
ICB5ID0gIkFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaQUJDREVGR0hJSktMTU5PUFFSU1RVVldY
WVoiCi0gICAgeiA9ICJBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWkFCQ0RFRkdISUpLTE1OT1BR
UlNUVVZXWFlaIgotICAgIHggKz0geSArIHoKLQotCi1kZWYgZjIoKToKLSAgICB4ID0gIkFCQ0RF
RkdISUpLTE1OT1BRUlNUVVZXWFlaQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVoiCi0gICAgeSA9
ICJBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWkFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaIgot
ICAgIHogPSAiQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVpBQkNERUZHSElKS0xNTk9QUVJTVFVW
V1hZWiIKLSAgICB4ID0geCArIHkgKyB6Ci0KLQotZGVmIGYzKCk6Ci0gICAgeCA9ICJBQkNERUZH
SElKS0xNTk9QUVJTVFVWV1hZWkFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaIgotICAgIHkgPSAi
QUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVpBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWiIKLSAg
ICB6ID0gIkFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaQUJDREVGR0hJSktMTU5PUFFSU1RVVldY
WVoiCi0gICAgeCA9ICIiLmpvaW4oKHgsIHksIHopKQotCi0KLWRlZiBmNCgpOgotICAgIHggPSAi
QUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVpBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWiIKLSAg
ICB5ID0gIkFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaQUJDREVGR0hJSktMTU5PUFFSU1RVVldY
WVoiCi0gICAgeiA9ICJBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWkFCQ0RFRkdISUpLTE1OT1BR
UlNUVVZXWFlaIgotICAgIHggPSAiJXMlcyVzIiAlICh4LCB5LCB6KQotCi1pbXBvcnQgdGltZWl0
Ci1mb3IgeCBpbiByYW5nZSg0KToKLSAgICBzdGF0ZW1lbnQgPSAiZiVzIiAlICh4ICsgMSkKLSAg
ICB0ID0gdGltZWl0LlRpbWVyKHN0YXRlbWVudCwgImZyb20gX19tYWluX18gaW1wb3J0ICIgKyBz
dGF0ZW1lbnQpCi0gICAgciA9IHQucmVwZWF0KDMsIDEwMDAwMDApCi0gICAgcHJpbnQociwgbWlu
KHIpKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy9odG1sNWxpYi9odG1sNWxpYi90ZXN0cy9wZXJmb3JtYW5jZS93M2MtaW1wb3J0
LmxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
aHRtbDVsaWIvaHRtbDVsaWIvdGVzdHMvcGVyZm9ybWFuY2UvdzNjLWltcG9ydC5sb2cKZGVsZXRl
ZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGM2NzBlZjlmOWEwM2VlZGEzN2M0OTEzZDhkOTRlNWZm
OTZhZWE0OTMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9odG1sNWxp
Yi9odG1sNWxpYi90ZXN0cy9wZXJmb3JtYW5jZS93M2MtaW1wb3J0LmxvZworKysgL2Rldi9udWxs
CkBAIC0xLDE3ICswLDAgQEAKLVRoZSB0ZXN0cyBpbiB0aGlzIGRpcmVjdG9yeSB3ZXJlIGltcG9y
dGVkIGZyb20gdGhlIFczQyByZXBvc2l0b3J5LgotRG8gTk9UIG1vZGlmeSB0aGVzZSB0ZXN0cyBk
aXJlY3RseSBpbiBXZWJLaXQuCi1JbnN0ZWFkLCBjcmVhdGUgYSBwdWxsIHJlcXVlc3Qgb24gdGhl
IFdQVCBnaXRodWI6Ci0JaHR0cHM6Ly9naXRodWIuY29tL3czYy93ZWItcGxhdGZvcm0tdGVzdHMK
LQotVGhlbiBydW4gdGhlIFRvb2xzL1NjcmlwdHMvaW1wb3J0LXczYy10ZXN0cyBpbiBXZWJLaXQg
dG8gcmVpbXBvcnQKLQotRG8gTk9UIG1vZGlmeSBvciByZW1vdmUgdGhpcyBmaWxlLgotCi0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0KLVByb3BlcnRpZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUK
LVByb3BlcnR5IHZhbHVlcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tCi1MaXN0IG9mIGZpbGVzOgotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvaHRtbDVsaWIvaHRtbDVsaWIvdGVzdHMvcGVyZm9ybWFuY2Uv
Y29uY2F0ZW5hdGlvbi5weQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy9odG1sNWxpYi9odG1sNWxpYi90ZXN0cy9zdXBwb3J0LnB5
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9odG1s
NWxpYi9odG1sNWxpYi90ZXN0cy9zdXBwb3J0LnB5CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCA0MWYyZDJhMDcyZDdhMTIxMjc5ZGFlMDMwMGQ5MDRiMWNkNTZlMDg2Li4wMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvaHRtbDVsaWIvaHRtbDVsaWIvdGVzdHMvc3Vw
cG9ydC5weQorKysgL2Rldi9udWxsCkBAIC0xLDE3NyArMCwwIEBACi1mcm9tIF9fZnV0dXJlX18g
aW1wb3J0IGFic29sdXRlX2ltcG9ydCwgZGl2aXNpb24sIHVuaWNvZGVfbGl0ZXJhbHMKLQotaW1w
b3J0IG9zCi1pbXBvcnQgc3lzCi1pbXBvcnQgY29kZWNzCi1pbXBvcnQgZ2xvYgotaW1wb3J0IHht
bC5zYXguaGFuZGxlcgotCi1iYXNlX3BhdGggPSBvcy5wYXRoLnNwbGl0KF9fZmlsZV9fKVswXQot
Ci10ZXN0X2RpciA9IG9zLnBhdGguam9pbihiYXNlX3BhdGgsICd0ZXN0ZGF0YScpCi1zeXMucGF0
aC5pbnNlcnQoMCwgb3MucGF0aC5hYnNwYXRoKG9zLnBhdGguam9pbihiYXNlX3BhdGgsCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcy5wYXRoLnBhcmRp
ciwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9zLnBh
dGgucGFyZGlyKSkpCi0KLWZyb20gaHRtbDVsaWIgaW1wb3J0IHRyZWVidWlsZGVycwotZGVsIGJh
c2VfcGF0aAotCi0jIEJ1aWxkIGEgZGljdCBvZiBhdmFsaWFibGUgdHJlZXMKLXRyZWVUeXBlcyA9
IHsiRE9NIjogdHJlZWJ1aWxkZXJzLmdldFRyZWVCdWlsZGVyKCJkb20iKX0KLQotIyBUcnkgd2hh
dGV2ZXIgZXRyZWUgaW1wbGVtZW50YXRpb25zIGFyZSBhdmFsaWFibGUgZnJvbSBhIGxpc3QgdGhh
dCBhcmUKLSMic3VwcG9zZWQiIHRvIHdvcmsKLXRyeToKLSAgICBpbXBvcnQgeG1sLmV0cmVlLkVs
ZW1lbnRUcmVlIGFzIEVsZW1lbnRUcmVlCi0gICAgdHJlZVR5cGVzWydFbGVtZW50VHJlZSddID0g
dHJlZWJ1aWxkZXJzLmdldFRyZWVCdWlsZGVyKCJldHJlZSIsIEVsZW1lbnRUcmVlLCBmdWxsVHJl
ZT1UcnVlKQotZXhjZXB0IEltcG9ydEVycm9yOgotICAgIHRyeToKLSAgICAgICAgaW1wb3J0IGVs
ZW1lbnR0cmVlLkVsZW1lbnRUcmVlIGFzIEVsZW1lbnRUcmVlCi0gICAgICAgIHRyZWVUeXBlc1sn
RWxlbWVudFRyZWUnXSA9IHRyZWVidWlsZGVycy5nZXRUcmVlQnVpbGRlcigiZXRyZWUiLCBFbGVt
ZW50VHJlZSwgZnVsbFRyZWU9VHJ1ZSkKLSAgICBleGNlcHQgSW1wb3J0RXJyb3I6Ci0gICAgICAg
IHBhc3MKLQotdHJ5OgotICAgIGltcG9ydCB4bWwuZXRyZWUuY0VsZW1lbnRUcmVlIGFzIGNFbGVt
ZW50VHJlZQotICAgIHRyZWVUeXBlc1snY0VsZW1lbnRUcmVlJ10gPSB0cmVlYnVpbGRlcnMuZ2V0
VHJlZUJ1aWxkZXIoImV0cmVlIiwgY0VsZW1lbnRUcmVlLCBmdWxsVHJlZT1UcnVlKQotZXhjZXB0
IEltcG9ydEVycm9yOgotICAgIHRyeToKLSAgICAgICAgaW1wb3J0IGNFbGVtZW50VHJlZQotICAg
ICAgICB0cmVlVHlwZXNbJ2NFbGVtZW50VHJlZSddID0gdHJlZWJ1aWxkZXJzLmdldFRyZWVCdWls
ZGVyKCJldHJlZSIsIGNFbGVtZW50VHJlZSwgZnVsbFRyZWU9VHJ1ZSkKLSAgICBleGNlcHQgSW1w
b3J0RXJyb3I6Ci0gICAgICAgIHBhc3MKLQotdHJ5OgotICAgIGltcG9ydCBseG1sLmV0cmVlIGFz
IGx4bWwgICMgZmxha2U4OiBub3FhCi1leGNlcHQgSW1wb3J0RXJyb3I6Ci0gICAgcGFzcwotZWxz
ZToKLSAgICB0cmVlVHlwZXNbJ2x4bWwnXSA9IHRyZWVidWlsZGVycy5nZXRUcmVlQnVpbGRlcigi
bHhtbCIpCi0KLQotZGVmIGdldF9kYXRhX2ZpbGVzKHN1YmRpcmVjdG9yeSwgZmlsZXM9JyouZGF0
Jyk6Ci0gICAgcmV0dXJuIGdsb2IuZ2xvYihvcy5wYXRoLmpvaW4odGVzdF9kaXIsIHN1YmRpcmVj
dG9yeSwgZmlsZXMpKQotCi0KLWNsYXNzIERlZmF1bHREaWN0KGRpY3QpOgotICAgIGRlZiBfX2lu
aXRfXyhzZWxmLCBkZWZhdWx0LCAqYXJncywgKiprd2FyZ3MpOgotICAgICAgICBzZWxmLmRlZmF1
bHQgPSBkZWZhdWx0Ci0gICAgICAgIGRpY3QuX19pbml0X18oc2VsZiwgKmFyZ3MsICoqa3dhcmdz
KQotCi0gICAgZGVmIF9fZ2V0aXRlbV9fKHNlbGYsIGtleSk6Ci0gICAgICAgIHJldHVybiBkaWN0
LmdldChzZWxmLCBrZXksIHNlbGYuZGVmYXVsdCkKLQotCi1jbGFzcyBUZXN0RGF0YShvYmplY3Qp
OgotICAgIGRlZiBfX2luaXRfXyhzZWxmLCBmaWxlbmFtZSwgbmV3VGVzdEhlYWRpbmc9ImRhdGEi
LCBlbmNvZGluZz0idXRmOCIpOgotICAgICAgICBpZiBlbmNvZGluZyBpcyBOb25lOgotICAgICAg
ICAgICAgc2VsZi5mID0gb3BlbihmaWxlbmFtZSwgbW9kZT0icmIiKQotICAgICAgICBlbHNlOgot
ICAgICAgICAgICAgc2VsZi5mID0gY29kZWNzLm9wZW4oZmlsZW5hbWUsIGVuY29kaW5nPWVuY29k
aW5nKQotICAgICAgICBzZWxmLmVuY29kaW5nID0gZW5jb2RpbmcKLSAgICAgICAgc2VsZi5uZXdU
ZXN0SGVhZGluZyA9IG5ld1Rlc3RIZWFkaW5nCi0KLSAgICBkZWYgX19kZWxfXyhzZWxmKToKLSAg
ICAgICAgc2VsZi5mLmNsb3NlKCkKLQotICAgIGRlZiBfX2l0ZXJfXyhzZWxmKToKLSAgICAgICAg
ZGF0YSA9IERlZmF1bHREaWN0KE5vbmUpCi0gICAgICAgIGtleSA9IE5vbmUKLSAgICAgICAgZm9y
IGxpbmUgaW4gc2VsZi5mOgotICAgICAgICAgICAgaGVhZGluZyA9IHNlbGYuaXNTZWN0aW9uSGVh
ZGluZyhsaW5lKQotICAgICAgICAgICAgaWYgaGVhZGluZzoKLSAgICAgICAgICAgICAgICBpZiBk
YXRhIGFuZCBoZWFkaW5nID09IHNlbGYubmV3VGVzdEhlYWRpbmc6Ci0gICAgICAgICAgICAgICAg
ICAgICMgUmVtb3ZlIHRyYWlsaW5nIG5ld2xpbmUKLSAgICAgICAgICAgICAgICAgICAgZGF0YVtr
ZXldID0gZGF0YVtrZXldWzotMV0KLSAgICAgICAgICAgICAgICAgICAgeWllbGQgc2VsZi5ub3Jt
YWxpc2VPdXRwdXQoZGF0YSkKLSAgICAgICAgICAgICAgICAgICAgZGF0YSA9IERlZmF1bHREaWN0
KE5vbmUpCi0gICAgICAgICAgICAgICAga2V5ID0gaGVhZGluZwotICAgICAgICAgICAgICAgIGRh
dGFba2V5XSA9ICIiIGlmIHNlbGYuZW5jb2RpbmcgZWxzZSBiIiIKLSAgICAgICAgICAgIGVsaWYg
a2V5IGlzIG5vdCBOb25lOgotICAgICAgICAgICAgICAgIGRhdGFba2V5XSArPSBsaW5lCi0gICAg
ICAgIGlmIGRhdGE6Ci0gICAgICAgICAgICB5aWVsZCBzZWxmLm5vcm1hbGlzZU91dHB1dChkYXRh
KQotCi0gICAgZGVmIGlzU2VjdGlvbkhlYWRpbmcoc2VsZiwgbGluZSk6Ci0gICAgICAgICIiIklm
IHRoZSBjdXJyZW50IGhlYWRpbmcgaXMgYSB0ZXN0IHNlY3Rpb24gaGVhZGluZyByZXR1cm4gdGhl
IGhlYWRpbmcsCi0gICAgICAgIG90aGVyd2lzZSByZXR1cm4gRmFsc2UiIiIKLSAgICAgICAgIyBw
cmludChsaW5lKQotICAgICAgICBpZiBsaW5lLnN0YXJ0c3dpdGgoIiMiIGlmIHNlbGYuZW5jb2Rp
bmcgZWxzZSBiIiMiKToKLSAgICAgICAgICAgIHJldHVybiBsaW5lWzE6XS5zdHJpcCgpCi0gICAg
ICAgIGVsc2U6Ci0gICAgICAgICAgICByZXR1cm4gRmFsc2UKLQotICAgIGRlZiBub3JtYWxpc2VP
dXRwdXQoc2VsZiwgZGF0YSk6Ci0gICAgICAgICMgUmVtb3ZlIHRyYWlsaW5nIG5ld2xpbmVzCi0g
ICAgICAgIGZvciBrZXksIHZhbHVlIGluIGRhdGEuaXRlbXMoKToKLSAgICAgICAgICAgIGlmIHZh
bHVlLmVuZHN3aXRoKCJcbiIgaWYgc2VsZi5lbmNvZGluZyBlbHNlIGIiXG4iKToKLSAgICAgICAg
ICAgICAgICBkYXRhW2tleV0gPSB2YWx1ZVs6LTFdCi0gICAgICAgIHJldHVybiBkYXRhCi0KLQot
ZGVmIGNvbnZlcnQoc3RyaXBDaGFycyk6Ci0gICAgZGVmIGNvbnZlcnREYXRhKGRhdGEpOgotICAg
ICAgICAiIiJjb252ZXJ0IHRoZSBvdXRwdXQgb2Ygc3RyKGRvY3VtZW50KSB0byB0aGUgZm9ybWF0
IHVzZWQgaW4gdGhlIHRlc3RjYXNlcyIiIgotICAgICAgICBkYXRhID0gZGF0YS5zcGxpdCgiXG4i
KQotICAgICAgICBydiA9IFtdCi0gICAgICAgIGZvciBsaW5lIGluIGRhdGE6Ci0gICAgICAgICAg
ICBpZiBsaW5lLnN0YXJ0c3dpdGgoInwiKToKLSAgICAgICAgICAgICAgICBydi5hcHBlbmQobGlu
ZVtzdHJpcENoYXJzOl0pCi0gICAgICAgICAgICBlbHNlOgotICAgICAgICAgICAgICAgIHJ2LmFw
cGVuZChsaW5lKQotICAgICAgICByZXR1cm4gIlxuIi5qb2luKHJ2KQotICAgIHJldHVybiBjb252
ZXJ0RGF0YQotCi1jb252ZXJ0RXhwZWN0ZWQgPSBjb252ZXJ0KDIpCi0KLQotZGVmIGVycm9yTWVz
c2FnZShpbnB1dCwgZXhwZWN0ZWQsIGFjdHVhbCk6Ci0gICAgbXNnID0gKCJJbnB1dDpcbiVzXG5F
eHBlY3RlZDpcbiVzXG5SZWNpZXZlZFxuJXNcbiIgJQotICAgICAgICAgICAocmVwcihpbnB1dCks
IHJlcHIoZXhwZWN0ZWQpLCByZXByKGFjdHVhbCkpKQotICAgIGlmIHN5cy52ZXJzaW9uX2luZm8u
bWFqb3IgPT0gMjoKLSAgICAgICAgbXNnID0gbXNnLmVuY29kZSgiYXNjaWkiLCAiYmFja3NsYXNo
cmVwbGFjZSIpCi0gICAgcmV0dXJuIG1zZwotCi0KLWNsYXNzIFRyYWNpbmdTYXhIYW5kbGVyKHht
bC5zYXguaGFuZGxlci5Db250ZW50SGFuZGxlcik6Ci0gICAgZGVmIF9faW5pdF9fKHNlbGYpOgot
ICAgICAgICB4bWwuc2F4LmhhbmRsZXIuQ29udGVudEhhbmRsZXIuX19pbml0X18oc2VsZikKLSAg
ICAgICAgc2VsZi52aXNpdGVkID0gW10KLQotICAgIGRlZiBzdGFydERvY3VtZW50KHNlbGYpOgot
ICAgICAgICBzZWxmLnZpc2l0ZWQuYXBwZW5kKCdzdGFydERvY3VtZW50JykKLQotICAgIGRlZiBl
bmREb2N1bWVudChzZWxmKToKLSAgICAgICAgc2VsZi52aXNpdGVkLmFwcGVuZCgnZW5kRG9jdW1l
bnQnKQotCi0gICAgZGVmIHN0YXJ0UHJlZml4TWFwcGluZyhzZWxmLCBwcmVmaXgsIHVyaSk6Ci0g
ICAgICAgICMgVGhlc2UgYXJlIGlnbm9yZWQgYXMgdGhlaXIgb3JkZXIgaXMgbm90IGd1YXJhbnRl
ZWQKLSAgICAgICAgcGFzcwotCi0gICAgZGVmIGVuZFByZWZpeE1hcHBpbmcoc2VsZiwgcHJlZml4
KToKLSAgICAgICAgIyBUaGVzZSBhcmUgaWdub3JlZCBhcyB0aGVpciBvcmRlciBpcyBub3QgZ3Vh
cmFudGVlZAotICAgICAgICBwYXNzCi0KLSAgICBkZWYgc3RhcnRFbGVtZW50KHNlbGYsIG5hbWUs
IGF0dHJzKToKLSAgICAgICAgc2VsZi52aXNpdGVkLmFwcGVuZCgoJ3N0YXJ0RWxlbWVudCcsIG5h
bWUsIGF0dHJzKSkKLQotICAgIGRlZiBlbmRFbGVtZW50KHNlbGYsIG5hbWUpOgotICAgICAgICBz
ZWxmLnZpc2l0ZWQuYXBwZW5kKCgnZW5kRWxlbWVudCcsIG5hbWUpKQotCi0gICAgZGVmIHN0YXJ0
RWxlbWVudE5TKHNlbGYsIG5hbWUsIHFuYW1lLCBhdHRycyk6Ci0gICAgICAgIHNlbGYudmlzaXRl
ZC5hcHBlbmQoKCdzdGFydEVsZW1lbnROUycsIG5hbWUsIHFuYW1lLCBkaWN0KGF0dHJzKSkpCi0K
LSAgICBkZWYgZW5kRWxlbWVudE5TKHNlbGYsIG5hbWUsIHFuYW1lKToKLSAgICAgICAgc2VsZi52
aXNpdGVkLmFwcGVuZCgoJ2VuZEVsZW1lbnROUycsIG5hbWUsIHFuYW1lKSkKLQotICAgIGRlZiBj
aGFyYWN0ZXJzKHNlbGYsIGNvbnRlbnQpOgotICAgICAgICBzZWxmLnZpc2l0ZWQuYXBwZW5kKCgn
Y2hhcmFjdGVycycsIGNvbnRlbnQpKQotCi0gICAgZGVmIGlnbm9yYWJsZVdoaXRlc3BhY2Uoc2Vs
Ziwgd2hpdGVzcGFjZSk6Ci0gICAgICAgIHNlbGYudmlzaXRlZC5hcHBlbmQoKCdpZ25vcmFibGVX
aGl0ZXNwYWNlJywgd2hpdGVzcGFjZSkpCi0KLSAgICBkZWYgcHJvY2Vzc2luZ0luc3RydWN0aW9u
KHNlbGYsIHRhcmdldCwgZGF0YSk6Ci0gICAgICAgIHNlbGYudmlzaXRlZC5hcHBlbmQoKCdwcm9j
ZXNzaW5nSW5zdHJ1Y3Rpb24nLCB0YXJnZXQsIGRhdGEpKQotCi0gICAgZGVmIHNraXBwZWRFbnRp
dHkoc2VsZiwgbmFtZSk6Ci0gICAgICAgIHNlbGYudmlzaXRlZC5hcHBlbmQoKCdza2lwcGVkRW50
aXR5JywgbmFtZSkpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL2h0bWw1bGliL2h0bWw1bGliL3Rlc3RzL3Rlc3RfZW5jb2Rpbmcu
cHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2h0
bWw1bGliL2h0bWw1bGliL3Rlc3RzL3Rlc3RfZW5jb2RpbmcucHkKZGVsZXRlZCBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IGQ3NzRjZTBmNjAwZjA0YTM1ZjJhMGVlMTcwMTVhZDQyNTA5NTAzOTguLjAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9odG1sNWxpYi9odG1sNWxpYi90
ZXN0cy90ZXN0X2VuY29kaW5nLnB5CisrKyAvZGV2L251bGwKQEAgLTEsNjcgKzAsMCBAQAotZnJv
bSBfX2Z1dHVyZV9fIGltcG9ydCBhYnNvbHV0ZV9pbXBvcnQsIGRpdmlzaW9uLCB1bmljb2RlX2xp
dGVyYWxzCi0KLWltcG9ydCBvcwotaW1wb3J0IHVuaXR0ZXN0Ci0KLXRyeToKLSAgICB1bml0dGVz
dC5UZXN0Q2FzZS5hc3NlcnRFcXVhbAotZXhjZXB0IEF0dHJpYnV0ZUVycm9yOgotICAgIHVuaXR0
ZXN0LlRlc3RDYXNlLmFzc2VydEVxdWFsID0gdW5pdHRlc3QuVGVzdENhc2UuYXNzZXJ0RXF1YWxz
Ci0KLWZyb20gLnN1cHBvcnQgaW1wb3J0IGdldF9kYXRhX2ZpbGVzLCBUZXN0RGF0YSwgdGVzdF9k
aXIsIGVycm9yTWVzc2FnZQotZnJvbSBodG1sNWxpYiBpbXBvcnQgSFRNTFBhcnNlciwgaW5wdXRz
dHJlYW0KLQotCi1jbGFzcyBIdG1sNUVuY29kaW5nVGVzdENhc2UodW5pdHRlc3QuVGVzdENhc2Up
OgotICAgIGRlZiB0ZXN0X2NvZGVjX25hbWVfYShzZWxmKToKLSAgICAgICAgc2VsZi5hc3NlcnRF
cXVhbChpbnB1dHN0cmVhbS5jb2RlY05hbWUoInV0Zi04IiksICJ1dGYtOCIpCi0KLSAgICBkZWYg
dGVzdF9jb2RlY19uYW1lX2Ioc2VsZik6Ci0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoaW5wdXRz
dHJlYW0uY29kZWNOYW1lKCJ1dGY4IiksICJ1dGYtOCIpCi0KLSAgICBkZWYgdGVzdF9jb2RlY19u
YW1lX2Moc2VsZik6Ci0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoaW5wdXRzdHJlYW0uY29kZWNO
YW1lKCIgIHV0ZjggICIpLCAidXRmLTgiKQotCi0gICAgZGVmIHRlc3RfY29kZWNfbmFtZV9kKHNl
bGYpOgotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGlucHV0c3RyZWFtLmNvZGVjTmFtZSgiSVNP
Xzg4NTktLTEiKSwgIndpbmRvd3MtMTI1MiIpCi0KLQotZGVmIHJ1blBhcnNlckVuY29kaW5nVGVz
dChkYXRhLCBlbmNvZGluZyk6Ci0gICAgcCA9IEhUTUxQYXJzZXIoKQotICAgIGFzc2VydCBwLmRv
Y3VtZW50RW5jb2RpbmcgaXMgTm9uZQotICAgIHAucGFyc2UoZGF0YSwgdXNlQ2hhcmRldD1GYWxz
ZSkKLSAgICBlbmNvZGluZyA9IGVuY29kaW5nLmxvd2VyKCkuZGVjb2RlKCJhc2NpaSIpCi0KLSAg
ICBhc3NlcnQgZW5jb2RpbmcgPT0gcC5kb2N1bWVudEVuY29kaW5nLCBlcnJvck1lc3NhZ2UoZGF0
YSwgZW5jb2RpbmcsIHAuZG9jdW1lbnRFbmNvZGluZykKLQotCi1kZWYgcnVuUHJlU2NhbkVuY29k
aW5nVGVzdChkYXRhLCBlbmNvZGluZyk6Ci0gICAgc3RyZWFtID0gaW5wdXRzdHJlYW0uSFRNTEJp
bmFyeUlucHV0U3RyZWFtKGRhdGEsIGNoYXJkZXQ9RmFsc2UpCi0gICAgZW5jb2RpbmcgPSBlbmNv
ZGluZy5sb3dlcigpLmRlY29kZSgiYXNjaWkiKQotCi0gICAgIyBWZXJ5IGNydWRlIHdheSB0byBp
Z25vcmUgaXJyZWxldmFudCB0ZXN0cwotICAgIGlmIGxlbihkYXRhKSA+IHN0cmVhbS5udW1CeXRl
c01ldGE6Ci0gICAgICAgIHJldHVybgotCi0gICAgYXNzZXJ0IGVuY29kaW5nID09IHN0cmVhbS5j
aGFyRW5jb2RpbmdbMF0sIGVycm9yTWVzc2FnZShkYXRhLCBlbmNvZGluZywgc3RyZWFtLmNoYXJF
bmNvZGluZ1swXSkKLQotCi1kZWYgdGVzdF9lbmNvZGluZygpOgotICAgIGZvciBmaWxlbmFtZSBp
biBnZXRfZGF0YV9maWxlcygiZW5jb2RpbmciKToKLSAgICAgICAgdGVzdHMgPSBUZXN0RGF0YShm
aWxlbmFtZSwgYiJkYXRhIiwgZW5jb2Rpbmc9Tm9uZSkKLSAgICAgICAgZm9yIGlkeCwgdGVzdCBp
biBlbnVtZXJhdGUodGVzdHMpOgotICAgICAgICAgICAgeWllbGQgKHJ1blBhcnNlckVuY29kaW5n
VGVzdCwgdGVzdFtiJ2RhdGEnXSwgdGVzdFtiJ2VuY29kaW5nJ10pCi0gICAgICAgICAgICB5aWVs
ZCAocnVuUHJlU2NhbkVuY29kaW5nVGVzdCwgdGVzdFtiJ2RhdGEnXSwgdGVzdFtiJ2VuY29kaW5n
J10pCi0KLXRyeToKLSAgICB0cnk6Ci0gICAgICAgIGltcG9ydCBjaGFyYWRlICAjIGZsYWtlODog
bm9xYQotICAgIGV4Y2VwdCBJbXBvcnRFcnJvcjoKLSAgICAgICAgaW1wb3J0IGNoYXJkZXQgICMg
Zmxha2U4OiBub3FhCi1leGNlcHQgSW1wb3J0RXJyb3I6Ci0gICAgcHJpbnQoImNoYXJhZGUvY2hh
cmRldCBub3QgZm91bmQsIHNraXBwaW5nIGNoYXJkZXQgdGVzdHMiKQotZWxzZToKLSAgICBkZWYg
dGVzdF9jaGFyZGV0KCk6Ci0gICAgICAgIHdpdGggb3Blbihvcy5wYXRoLmpvaW4odGVzdF9kaXIs
ICJlbmNvZGluZyIgLCAiY2hhcmRldCIsICJ0ZXN0X2JpZzUudHh0IiksICJyYiIpIGFzIGZwOgot
ICAgICAgICAgICAgZW5jb2RpbmcgPSBpbnB1dHN0cmVhbS5IVE1MSW5wdXRTdHJlYW0oZnAucmVh
ZCgpKS5jaGFyRW5jb2RpbmcKLSAgICAgICAgICAgIGFzc2VydCBlbmNvZGluZ1swXS5sb3dlcigp
ID09ICJiaWc1IgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy9odG1sNWxpYi9odG1sNWxpYi90ZXN0cy90ZXN0X3BhcnNlci5weSBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvaHRtbDVs
aWIvaHRtbDVsaWIvdGVzdHMvdGVzdF9wYXJzZXIucHkKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDIzMGNkYjQyZDU5Y2EyOGY4ZWYzYTE3OGJkMTA1NzVkNDRkMzBiODkuLjAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9odG1sNWxpYi9odG1sNWxpYi90ZXN0cy90
ZXN0X3BhcnNlci5weQorKysgL2Rldi9udWxsCkBAIC0xLDk2ICswLDAgQEAKLWZyb20gX19mdXR1
cmVfXyBpbXBvcnQgYWJzb2x1dGVfaW1wb3J0LCBkaXZpc2lvbiwgdW5pY29kZV9saXRlcmFscwot
Ci1pbXBvcnQgb3MKLWltcG9ydCBzeXMKLWltcG9ydCB0cmFjZWJhY2sKLWltcG9ydCB3YXJuaW5n
cwotaW1wb3J0IHJlCi0KLXdhcm5pbmdzLnNpbXBsZWZpbHRlcigiZXJyb3IiKQotCi1mcm9tIC5z
dXBwb3J0IGltcG9ydCBnZXRfZGF0YV9maWxlcwotZnJvbSAuc3VwcG9ydCBpbXBvcnQgVGVzdERh
dGEsIGNvbnZlcnQsIGNvbnZlcnRFeHBlY3RlZCwgdHJlZVR5cGVzCi1mcm9tIGh0bWw1bGliIGlt
cG9ydCBodG1sNXBhcnNlciwgY29uc3RhbnRzCi0KLSMgUnVuIHRoZSBwYXJzZSBlcnJvciBjaGVj
a3MKLWNoZWNrUGFyc2VFcnJvcnMgPSBGYWxzZQotCi0jIFhYWCAtIFRoZXJlIHNob3VsZCBqdXN0
IGJlIG9uZSBmdW5jdGlvbiBoZXJlIGJ1dCBmb3Igc29tZSByZWFzb24gdGhlIHRlc3RjYXNlCi0j
IGZvcm1hdCBkaWZmZXJzIGZyb20gdGhlIHRyZWVkdW1wIGZvcm1hdCBieSBhIHNpbmdsZSBzcGFj
ZSBjaGFyYWN0ZXIKLQotCi1kZWYgY29udmVydFRyZWVEdW1wKGRhdGEpOgotICAgIHJldHVybiAi
XG4iLmpvaW4oY29udmVydCgzKShkYXRhKS5zcGxpdCgiXG4iKVsxOl0pCi0KLW5hbWVzcGFjZUV4
cGVjdGVkID0gcmUuY29tcGlsZShyIl4oXHMqKTwoXFMrKT4iLCByZS5NKS5zdWIKLQotCi1kZWYg
cnVuUGFyc2VyVGVzdChpbm5lckhUTUwsIGlucHV0LCBleHBlY3RlZCwgZXJyb3JzLCB0cmVlQ2xh
c3MsCi0gICAgICAgICAgICAgICAgICBuYW1lc3BhY2VIVE1MRWxlbWVudHMpOgotICAgIHdpdGgg
d2FybmluZ3MuY2F0Y2hfd2FybmluZ3MocmVjb3JkPVRydWUpIGFzIGNhdWdodFdhcm5pbmdzOgot
ICAgICAgICB3YXJuaW5ncy5zaW1wbGVmaWx0ZXIoImFsd2F5cyIpCi0gICAgICAgIHAgPSBodG1s
NXBhcnNlci5IVE1MUGFyc2VyKHRyZWU9dHJlZUNsYXNzLAotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBuYW1lc3BhY2VIVE1MRWxlbWVudHM9bmFtZXNwYWNlSFRNTEVsZW1lbnRz
KQotCi0gICAgICAgIHRyeToKLSAgICAgICAgICAgIGlmIGlubmVySFRNTDoKLSAgICAgICAgICAg
ICAgICBkb2N1bWVudCA9IHAucGFyc2VGcmFnbWVudChpbnB1dCwgaW5uZXJIVE1MKQotICAgICAg
ICAgICAgZWxzZToKLSAgICAgICAgICAgICAgICBkb2N1bWVudCA9IHAucGFyc2UoaW5wdXQpCi0g
ICAgICAgIGV4Y2VwdDoKLSAgICAgICAgICAgIGVycm9yTXNnID0gIlxuIi5qb2luKFsiXG5cbklu
cHV0OiIsIGlucHV0LCAiXG5FeHBlY3RlZDoiLCBleHBlY3RlZCwKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAiXG5UcmFjZWJhY2s6IiwgdHJhY2ViYWNrLmZvcm1hdF9leGMoKV0p
Ci0gICAgICAgICAgICBhc3NlcnQgRmFsc2UsIGVycm9yTXNnCi0KLSAgICBvdGhlcldhcm5pbmdz
ID0gW3ggZm9yIHggaW4gY2F1Z2h0V2FybmluZ3MKLSAgICAgICAgICAgICAgICAgICAgIGlmIG5v
dCBpc3N1YmNsYXNzKHguY2F0ZWdvcnksIGNvbnN0YW50cy5EYXRhTG9zc1dhcm5pbmcpXQotICAg
IGFzc2VydCBsZW4ob3RoZXJXYXJuaW5ncykgPT0gMCwgWyh4LmNhdGVnb3J5LCB4Lm1lc3NhZ2Up
IGZvciB4IGluIG90aGVyV2FybmluZ3NdCi0gICAgaWYgbGVuKGNhdWdodFdhcm5pbmdzKToKLSAg
ICAgICAgcmV0dXJuCi0KLSAgICBvdXRwdXQgPSBjb252ZXJ0VHJlZUR1bXAocC50cmVlLnRlc3RT
ZXJpYWxpemVyKGRvY3VtZW50KSkKLQotICAgIGV4cGVjdGVkID0gY29udmVydEV4cGVjdGVkKGV4
cGVjdGVkKQotICAgIGlmIG5hbWVzcGFjZUhUTUxFbGVtZW50czoKLSAgICAgICAgZXhwZWN0ZWQg
PSBuYW1lc3BhY2VFeHBlY3RlZChyIlwxPGh0bWwgXDI+IiwgZXhwZWN0ZWQpCi0KLSAgICBlcnJv
ck1zZyA9ICJcbiIuam9pbihbIlxuXG5JbnB1dDoiLCBpbnB1dCwgIlxuRXhwZWN0ZWQ6IiwgZXhw
ZWN0ZWQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICJcblJlY2VpdmVkOiIsIG91dHB1dF0p
Ci0gICAgYXNzZXJ0IGV4cGVjdGVkID09IG91dHB1dCwgZXJyb3JNc2cKLQotICAgIGVyclN0ciA9
IFtdCi0gICAgZm9yIChsaW5lLCBjb2wpLCBlcnJvcmNvZGUsIGRhdGF2YXJzIGluIHAuZXJyb3Jz
OgotICAgICAgICBhc3NlcnQgaXNpbnN0YW5jZShkYXRhdmFycywgZGljdCksICIlcywgJXMiICUg
KGVycm9yY29kZSwgcmVwcihkYXRhdmFycykpCi0gICAgICAgIGVyclN0ci5hcHBlbmQoIkxpbmU6
ICVpIENvbDogJWkgJXMiICUgKGxpbmUsIGNvbCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgY29uc3RhbnRzLkVbZXJyb3Jjb2RlXSAlIGRhdGF2YXJzKSkK
LQotICAgIGVycm9yTXNnMiA9ICJcbiIuam9pbihbIlxuXG5JbnB1dDoiLCBpbnB1dCwKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICJcbkV4cGVjdGVkIGVycm9ycyAoIiArIHN0cihsZW4oZXJy
b3JzKSkgKyAiKTpcbiIgKyAiXG4iLmpvaW4oZXJyb3JzKSwKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICJcbkFjdHVhbCBlcnJvcnMgKCIgKyBzdHIobGVuKHAuZXJyb3JzKSkgKyAiKTpcbiIg
KyAiXG4iLmpvaW4oZXJyU3RyKV0pCi0gICAgaWYgY2hlY2tQYXJzZUVycm9yczoKLSAgICAgICAg
ICAgIGFzc2VydCBsZW4ocC5lcnJvcnMpID09IGxlbihlcnJvcnMpLCBlcnJvck1zZzIKLQotCi1k
ZWYgdGVzdF9wYXJzZXIoKToKLSAgICBzeXMuc3RkZXJyLndyaXRlKCdUZXN0aW5nIHRyZWUgYnVp
bGRlcnMgJyArICIgIi5qb2luKGxpc3QodHJlZVR5cGVzLmtleXMoKSkpICsgIlxuIikKLSAgICBm
aWxlcyA9IGdldF9kYXRhX2ZpbGVzKCd0cmVlLWNvbnN0cnVjdGlvbicpCi0KLSAgICBmb3IgZmls
ZW5hbWUgaW4gZmlsZXM6Ci0gICAgICAgIHRlc3ROYW1lID0gb3MucGF0aC5iYXNlbmFtZShmaWxl
bmFtZSkucmVwbGFjZSgiLmRhdCIsICIiKQotICAgICAgICBpZiB0ZXN0TmFtZSBpbiAoInRlbXBs
YXRlIiwpOgotICAgICAgICAgICAgY29udGludWUKLQotICAgICAgICB0ZXN0cyA9IFRlc3REYXRh
KGZpbGVuYW1lLCAiZGF0YSIpCi0KLSAgICAgICAgZm9yIGluZGV4LCB0ZXN0IGluIGVudW1lcmF0
ZSh0ZXN0cyk6Ci0gICAgICAgICAgICBpbnB1dCwgZXJyb3JzLCBpbm5lckhUTUwsIGV4cGVjdGVk
ID0gW3Rlc3Rba2V5XSBmb3Iga2V5IGluCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICgnZGF0YScsICdlcnJvcnMnLAotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2RvY3VtZW50LWZyYWdtZW50JywKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdkb2N1bWVu
dCcpXQotICAgICAgICAgICAgaWYgZXJyb3JzOgotICAgICAgICAgICAgICAgIGVycm9ycyA9IGVy
cm9ycy5zcGxpdCgiXG4iKQotCi0gICAgICAgICAgICBmb3IgdHJlZU5hbWUsIHRyZWVDbHMgaW4g
dHJlZVR5cGVzLml0ZW1zKCk6Ci0gICAgICAgICAgICAgICAgZm9yIG5hbWVzcGFjZUhUTUxFbGVt
ZW50cyBpbiAoVHJ1ZSwgRmFsc2UpOgotICAgICAgICAgICAgICAgICAgICB5aWVsZCAocnVuUGFy
c2VyVGVzdCwgaW5uZXJIVE1MLCBpbnB1dCwgZXhwZWN0ZWQsIGVycm9ycywgdHJlZUNscywKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWVzcGFjZUhUTUxFbGVtZW50cykKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvaHRt
bDVsaWIvaHRtbDVsaWIvdGVzdHMvdGVzdF9wYXJzZXIyLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9odG1sNWxpYi9odG1sNWxpYi90ZXN0cy90
ZXN0X3BhcnNlcjIucHkKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDIwYmJkZjMxNzlj
OWU4MTVhYmIyYzdiZGU4YjJiMjRmYTg5NGU4NmYuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy9odG1sNWxpYi9odG1sNWxpYi90ZXN0cy90ZXN0X3BhcnNlcjIucHkKKysr
IC9kZXYvbnVsbApAQCAtMSw2NCArMCwwIEBACi1mcm9tIF9fZnV0dXJlX18gaW1wb3J0IGFic29s
dXRlX2ltcG9ydCwgZGl2aXNpb24sIHVuaWNvZGVfbGl0ZXJhbHMKLQotaW1wb3J0IGlvCi0KLWZy
b20gLiBpbXBvcnQgc3VwcG9ydCAgIyBmbGFrZTg6IG5vcWEKLWZyb20gaHRtbDVsaWIgaW1wb3J0
IGh0bWw1cGFyc2VyCi1mcm9tIGh0bWw1bGliLmNvbnN0YW50cyBpbXBvcnQgbmFtZXNwYWNlcwot
ZnJvbSBodG1sNWxpYiBpbXBvcnQgdHJlZWJ1aWxkZXJzCi0KLWltcG9ydCB1bml0dGVzdAotCi0j
IHRlc3RzIHRoYXQgYXJlbid0IGF1dG9nZW5lcmF0ZWQgZnJvbSB0ZXh0IGZpbGVzCi0KLQotY2xh
c3MgTW9yZVBhcnNlclRlc3RzKHVuaXR0ZXN0LlRlc3RDYXNlKToKLQotICAgIGRlZiBzZXRVcChz
ZWxmKToKLSAgICAgICAgc2VsZi5kb21fdHJlZSA9IHRyZWVidWlsZGVycy5nZXRUcmVlQnVpbGRl
cigiZG9tIikKLQotICAgIGRlZiB0ZXN0X2Fzc2VydERvY3R5cGVDbG9uZWFibGUoc2VsZik6Ci0g
ICAgICAgIHBhcnNlciA9IGh0bWw1cGFyc2VyLkhUTUxQYXJzZXIodHJlZT1zZWxmLmRvbV90cmVl
KQotICAgICAgICBkb2MgPSBwYXJzZXIucGFyc2UoJzwhRE9DVFlQRSBIVE1MPicpCi0gICAgICAg
IHNlbGYuYXNzZXJ0VHJ1ZShkb2MuY2xvbmVOb2RlKFRydWUpKQotCi0gICAgZGVmIHRlc3RfbGlu
ZV9jb3VudGVyKHNlbGYpOgotICAgICAgICAjIGh0dHA6Ly9ncm91cHMuZ29vZ2xlLmNvbS9ncm91
cC9odG1sNWxpYi1kaXNjdXNzL2Jyb3dzZV9mcm0vdGhyZWFkL2Y0ZjAwZTRhMmYyNmQ1YzAKLSAg
ICAgICAgcGFyc2VyID0gaHRtbDVwYXJzZXIuSFRNTFBhcnNlcih0cmVlPXNlbGYuZG9tX3RyZWUp
Ci0gICAgICAgIHBhcnNlci5wYXJzZSgiPHByZT5cbnhcbiZndDtcbjwvcHJlPiIpCi0KLSAgICBk
ZWYgdGVzdF9uYW1lc3BhY2VfaHRtbF9lbGVtZW50c18wX2RvbShzZWxmKToKLSAgICAgICAgcGFy
c2VyID0gaHRtbDVwYXJzZXIuSFRNTFBhcnNlcih0cmVlPXNlbGYuZG9tX3RyZWUsIG5hbWVzcGFj
ZUhUTUxFbGVtZW50cz1UcnVlKQotICAgICAgICBkb2MgPSBwYXJzZXIucGFyc2UoIjxodG1sPjwv
aHRtbD4iKQotICAgICAgICBzZWxmLmFzc2VydFRydWUoZG9jLmNoaWxkTm9kZXNbMF0ubmFtZXNw
YWNlVVJJID09IG5hbWVzcGFjZXNbImh0bWwiXSkKLQotICAgIGRlZiB0ZXN0X25hbWVzcGFjZV9o
dG1sX2VsZW1lbnRzXzFfZG9tKHNlbGYpOgotICAgICAgICBwYXJzZXIgPSBodG1sNXBhcnNlci5I
VE1MUGFyc2VyKHRyZWU9c2VsZi5kb21fdHJlZSwgbmFtZXNwYWNlSFRNTEVsZW1lbnRzPUZhbHNl
KQotICAgICAgICBkb2MgPSBwYXJzZXIucGFyc2UoIjxodG1sPjwvaHRtbD4iKQotICAgICAgICBz
ZWxmLmFzc2VydFRydWUoZG9jLmNoaWxkTm9kZXNbMF0ubmFtZXNwYWNlVVJJIGlzIE5vbmUpCi0K
LSAgICBkZWYgdGVzdF9uYW1lc3BhY2VfaHRtbF9lbGVtZW50c18wX2V0cmVlKHNlbGYpOgotICAg
ICAgICBwYXJzZXIgPSBodG1sNXBhcnNlci5IVE1MUGFyc2VyKG5hbWVzcGFjZUhUTUxFbGVtZW50
cz1UcnVlKQotICAgICAgICBkb2MgPSBwYXJzZXIucGFyc2UoIjxodG1sPjwvaHRtbD4iKQotICAg
ICAgICBzZWxmLmFzc2VydFRydWUobGlzdChkb2MpWzBdLnRhZyA9PSAieyVzfWh0bWwiICUgKG5h
bWVzcGFjZXNbImh0bWwiXSwpKQotCi0gICAgZGVmIHRlc3RfbmFtZXNwYWNlX2h0bWxfZWxlbWVu
dHNfMV9ldHJlZShzZWxmKToKLSAgICAgICAgcGFyc2VyID0gaHRtbDVwYXJzZXIuSFRNTFBhcnNl
cihuYW1lc3BhY2VIVE1MRWxlbWVudHM9RmFsc2UpCi0gICAgICAgIGRvYyA9IHBhcnNlci5wYXJz
ZSgiPGh0bWw+PC9odG1sPiIpCi0gICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShsaXN0KGRvYylbMF0u
dGFnID09ICJodG1sIikKLQotICAgIGRlZiB0ZXN0X3VuaWNvZGVfZmlsZShzZWxmKToKLSAgICAg
ICAgcGFyc2VyID0gaHRtbDVwYXJzZXIuSFRNTFBhcnNlcigpCi0gICAgICAgIHBhcnNlci5wYXJz
ZShpby5TdHJpbmdJTygiYSIpKQotCi0KLWRlZiBidWlsZFRlc3RTdWl0ZSgpOgotICAgIHJldHVy
biB1bml0dGVzdC5kZWZhdWx0VGVzdExvYWRlci5sb2FkVGVzdHNGcm9tTmFtZShfX25hbWVfXykK
LQotCi1kZWYgbWFpbigpOgotICAgIGJ1aWxkVGVzdFN1aXRlKCkKLSAgICB1bml0dGVzdC5tYWlu
KCkKLQotaWYgX19uYW1lX18gPT0gJ19fbWFpbl9fJzoKLSAgICBtYWluKCkKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvaHRtbDVs
aWIvaHRtbDVsaWIvdGVzdHMvdGVzdF9zYW5pdGl6ZXIucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2h0bWw1bGliL2h0bWw1bGliL3Rlc3RzL3Rl
c3Rfc2FuaXRpemVyLnB5CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxY2M2ODdkZmNh
ZDdmYmI0YjI2NjlkYTc3MjE5NzFiZTVlYzc4YTNjLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvaHRtbDVsaWIvaHRtbDVsaWIvdGVzdHMvdGVzdF9zYW5pdGl6ZXIucHkK
KysrIC9kZXYvbnVsbApAQCAtMSwxMDUgKzAsMCBAQAotZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCBh
YnNvbHV0ZV9pbXBvcnQsIGRpdmlzaW9uLCB1bmljb2RlX2xpdGVyYWxzCi0KLXRyeToKLSAgICBp
bXBvcnQganNvbgotZXhjZXB0IEltcG9ydEVycm9yOgotICAgIGltcG9ydCBzaW1wbGVqc29uIGFz
IGpzb24KLQotZnJvbSBodG1sNWxpYiBpbXBvcnQgaHRtbDVwYXJzZXIsIHNhbml0aXplciwgY29u
c3RhbnRzLCB0cmVlYnVpbGRlcnMKLQotCi1kZWYgdG94bWxGYWN0b3J5KCk6Ci0gICAgdHJlZSA9
IHRyZWVidWlsZGVycy5nZXRUcmVlQnVpbGRlcigiZXRyZWUiKQotCi0gICAgZGVmIHRveG1sKGVs
ZW1lbnQpOgotICAgICAgICAjIGVuY29kZS9kZWNvZGUgcm91bmR0cmlwIHJlcXVpcmVkIGZvciBQ
eXRob24gMi42IGNvbXBhdGliaWxpdHkKLSAgICAgICAgcmVzdWx0X2J5dGVzID0gdHJlZS5pbXBs
ZW1lbnRhdGlvbi50b3N0cmluZyhlbGVtZW50LCBlbmNvZGluZz0idXRmLTgiKQotICAgICAgICBy
ZXR1cm4gcmVzdWx0X2J5dGVzLmRlY29kZSgidXRmLTgiKQotCi0gICAgcmV0dXJuIHRveG1sCi0K
LQotZGVmIHJ1blNhbml0aXplclRlc3QobmFtZSwgZXhwZWN0ZWQsIGlucHV0LCB0b3htbD1Ob25l
KToKLSAgICBpZiB0b3htbCBpcyBOb25lOgotICAgICAgICB0b3htbCA9IHRveG1sRmFjdG9yeSgp
Ci0gICAgZXhwZWN0ZWQgPSAnJy5qb2luKFt0b3htbCh0b2tlbikgZm9yIHRva2VuIGluIGh0bWw1
cGFyc2VyLkhUTUxQYXJzZXIoKS4KLSAgICAgICAgICAgICAgICAgICAgICAgIHBhcnNlRnJhZ21l
bnQoZXhwZWN0ZWQpXSkKLSAgICBleHBlY3RlZCA9IGpzb24ubG9hZHMoanNvbi5kdW1wcyhleHBl
Y3RlZCkpCi0gICAgYXNzZXJ0IGV4cGVjdGVkID09IHNhbml0aXplX2h0bWwoaW5wdXQpCi0KLQot
ZGVmIHNhbml0aXplX2h0bWwoc3RyZWFtLCB0b3htbD1Ob25lKToKLSAgICBpZiB0b3htbCBpcyBO
b25lOgotICAgICAgICB0b3htbCA9IHRveG1sRmFjdG9yeSgpCi0gICAgcmV0dXJuICcnLmpvaW4o
W3RveG1sKHRva2VuKSBmb3IgdG9rZW4gaW4KLSAgICAgICAgICAgICAgICAgICAgaHRtbDVwYXJz
ZXIuSFRNTFBhcnNlcih0b2tlbml6ZXI9c2FuaXRpemVyLkhUTUxTYW5pdGl6ZXIpLgotICAgICAg
ICAgICAgICAgICAgICBwYXJzZUZyYWdtZW50KHN0cmVhbSldKQotCi0KLWRlZiB0ZXN0X3Nob3Vs
ZF9oYW5kbGVfYXN0cmFsX3BsYW5lX2NoYXJhY3RlcnMoKToKLSAgICBhc3NlcnQgJzxodG1sOnAg
eG1sbnM6aHRtbD0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCI+XFUwMDAxZDRiNSBcVTAw
MDFkNTM4PC9odG1sOnA+JyA9PSBzYW5pdGl6ZV9odG1sKCI8cD4mI3gxZDRiNTsgJiN4MWQ1Mzg7
PC9wPiIpCi0KLQotZGVmIHRlc3Rfc2FuaXRpemVyKCk6Ci0gICAgdG94bWwgPSB0b3htbEZhY3Rv
cnkoKQotICAgIGZvciB0YWdfbmFtZSBpbiBzYW5pdGl6ZXIuSFRNTFNhbml0aXplci5hbGxvd2Vk
X2VsZW1lbnRzOgotICAgICAgICBpZiB0YWdfbmFtZSBpbiBbJ2NhcHRpb24nLCAnY29sJywgJ2Nv
bGdyb3VwJywgJ29wdGdyb3VwJywgJ29wdGlvbicsICd0YWJsZScsICd0Ym9keScsICd0ZCcsICd0
Zm9vdCcsICd0aCcsICd0aGVhZCcsICd0ciddOgotICAgICAgICAgICAgY29udGludWUgICMgVE9E
TwotICAgICAgICBpZiB0YWdfbmFtZSAhPSB0YWdfbmFtZS5sb3dlcigpOgotICAgICAgICAgICAg
Y29udGludWUgICMgVE9ETwotICAgICAgICBpZiB0YWdfbmFtZSA9PSAnaW1hZ2UnOgotICAgICAg
ICAgICAgeWllbGQgKHJ1blNhbml0aXplclRlc3QsICJ0ZXN0X3Nob3VsZF9hbGxvd18lc190YWci
ICUgdGFnX25hbWUsCi0gICAgICAgICAgICAgICAgICAgIjxpbWcgdGl0bGU9XCIxXCIvPmZvbyAm
bHQ7YmFkJmd0O2JhciZsdDsvYmFkJmd0OyBiYXoiLAotICAgICAgICAgICAgICAgICAgICI8JXMg
dGl0bGU9JzEnPmZvbyA8YmFkPmJhcjwvYmFkPiBiYXo8LyVzPiIgJSAodGFnX25hbWUsIHRhZ19u
YW1lKSwKLSAgICAgICAgICAgICAgICAgICB0b3htbCkKLSAgICAgICAgZWxpZiB0YWdfbmFtZSA9
PSAnYnInOgotICAgICAgICAgICAgeWllbGQgKHJ1blNhbml0aXplclRlc3QsICJ0ZXN0X3Nob3Vs
ZF9hbGxvd18lc190YWciICUgdGFnX25hbWUsCi0gICAgICAgICAgICAgICAgICAgIjxiciB0aXRs
ZT1cIjFcIi8+Zm9vICZsdDtiYWQmZ3Q7YmFyJmx0Oy9iYWQmZ3Q7IGJhejxici8+IiwKLSAgICAg
ICAgICAgICAgICAgICAiPCVzIHRpdGxlPScxJz5mb28gPGJhZD5iYXI8L2JhZD4gYmF6PC8lcz4i
ICUgKHRhZ19uYW1lLCB0YWdfbmFtZSksCi0gICAgICAgICAgICAgICAgICAgdG94bWwpCi0gICAg
ICAgIGVsaWYgdGFnX25hbWUgaW4gY29uc3RhbnRzLnZvaWRFbGVtZW50czoKLSAgICAgICAgICAg
IHlpZWxkIChydW5TYW5pdGl6ZXJUZXN0LCAidGVzdF9zaG91bGRfYWxsb3dfJXNfdGFnIiAlIHRh
Z19uYW1lLAotICAgICAgICAgICAgICAgICAgICI8JXMgdGl0bGU9XCIxXCIvPmZvbyAmbHQ7YmFk
Jmd0O2JhciZsdDsvYmFkJmd0OyBiYXoiICUgdGFnX25hbWUsCi0gICAgICAgICAgICAgICAgICAg
IjwlcyB0aXRsZT0nMSc+Zm9vIDxiYWQ+YmFyPC9iYWQ+IGJhejwvJXM+IiAlICh0YWdfbmFtZSwg
dGFnX25hbWUpLAotICAgICAgICAgICAgICAgICAgIHRveG1sKQotICAgICAgICBlbHNlOgotICAg
ICAgICAgICAgeWllbGQgKHJ1blNhbml0aXplclRlc3QsICJ0ZXN0X3Nob3VsZF9hbGxvd18lc190
YWciICUgdGFnX25hbWUsCi0gICAgICAgICAgICAgICAgICAgIjwlcyB0aXRsZT1cIjFcIj5mb28g
Jmx0O2JhZCZndDtiYXImbHQ7L2JhZCZndDsgYmF6PC8lcz4iICUgKHRhZ19uYW1lLCB0YWdfbmFt
ZSksCi0gICAgICAgICAgICAgICAgICAgIjwlcyB0aXRsZT0nMSc+Zm9vIDxiYWQ+YmFyPC9iYWQ+
IGJhejwvJXM+IiAlICh0YWdfbmFtZSwgdGFnX25hbWUpLAotICAgICAgICAgICAgICAgICAgIHRv
eG1sKQotCi0gICAgZm9yIHRhZ19uYW1lIGluIHNhbml0aXplci5IVE1MU2FuaXRpemVyLmFsbG93
ZWRfZWxlbWVudHM6Ci0gICAgICAgIHRhZ19uYW1lID0gdGFnX25hbWUudXBwZXIoKQotICAgICAg
ICB5aWVsZCAocnVuU2FuaXRpemVyVGVzdCwgInRlc3Rfc2hvdWxkX2ZvcmJpZF8lc190YWciICUg
dGFnX25hbWUsCi0gICAgICAgICAgICAgICAiJmx0OyVzIHRpdGxlPVwiMVwiJmd0O2ZvbyAmbHQ7
YmFkJmd0O2JhciZsdDsvYmFkJmd0OyBiYXombHQ7LyVzJmd0OyIgJSAodGFnX25hbWUsIHRhZ19u
YW1lKSwKLSAgICAgICAgICAgICAgICI8JXMgdGl0bGU9JzEnPmZvbyA8YmFkPmJhcjwvYmFkPiBi
YXo8LyVzPiIgJSAodGFnX25hbWUsIHRhZ19uYW1lKSwKLSAgICAgICAgICAgICAgIHRveG1sKQot
Ci0gICAgZm9yIGF0dHJpYnV0ZV9uYW1lIGluIHNhbml0aXplci5IVE1MU2FuaXRpemVyLmFsbG93
ZWRfYXR0cmlidXRlczoKLSAgICAgICAgaWYgYXR0cmlidXRlX25hbWUgIT0gYXR0cmlidXRlX25h
bWUubG93ZXIoKToKLSAgICAgICAgICAgIGNvbnRpbnVlICAjIFRPRE8KLSAgICAgICAgaWYgYXR0
cmlidXRlX25hbWUgPT0gJ3N0eWxlJzoKLSAgICAgICAgICAgIGNvbnRpbnVlCi0gICAgICAgIHlp
ZWxkIChydW5TYW5pdGl6ZXJUZXN0LCAidGVzdF9zaG91bGRfYWxsb3dfJXNfYXR0cmlidXRlIiAl
IGF0dHJpYnV0ZV9uYW1lLAotICAgICAgICAgICAgICAgIjxwICVzPVwiZm9vXCI+Zm9vICZsdDti
YWQmZ3Q7YmFyJmx0Oy9iYWQmZ3Q7IGJhejwvcD4iICUgYXR0cmlidXRlX25hbWUsCi0gICAgICAg
ICAgICAgICAiPHAgJXM9J2Zvbyc+Zm9vIDxiYWQ+YmFyPC9iYWQ+IGJhejwvcD4iICUgYXR0cmli
dXRlX25hbWUsCi0gICAgICAgICAgICAgICB0b3htbCkKLQotICAgIGZvciBhdHRyaWJ1dGVfbmFt
ZSBpbiBzYW5pdGl6ZXIuSFRNTFNhbml0aXplci5hbGxvd2VkX2F0dHJpYnV0ZXM6Ci0gICAgICAg
IGF0dHJpYnV0ZV9uYW1lID0gYXR0cmlidXRlX25hbWUudXBwZXIoKQotICAgICAgICB5aWVsZCAo
cnVuU2FuaXRpemVyVGVzdCwgInRlc3Rfc2hvdWxkX2ZvcmJpZF8lc19hdHRyaWJ1dGUiICUgYXR0
cmlidXRlX25hbWUsCi0gICAgICAgICAgICAgICAiPHA+Zm9vICZsdDtiYWQmZ3Q7YmFyJmx0Oy9i
YWQmZ3Q7IGJhejwvcD4iLAotICAgICAgICAgICAgICAgIjxwICVzPSdkaXNwbGF5OiBub25lOyc+
Zm9vIDxiYWQ+YmFyPC9iYWQ+IGJhejwvcD4iICUgYXR0cmlidXRlX25hbWUsCi0gICAgICAgICAg
ICAgICB0b3htbCkKLQotICAgIGZvciBwcm90b2NvbCBpbiBzYW5pdGl6ZXIuSFRNTFNhbml0aXpl
ci5hbGxvd2VkX3Byb3RvY29sczoKLSAgICAgICAgeWllbGQgKHJ1blNhbml0aXplclRlc3QsICJ0
ZXN0X3Nob3VsZF9hbGxvd18lc191cmlzIiAlIHByb3RvY29sLAotICAgICAgICAgICAgICAgIjxh
IGhyZWY9XCIlc1wiPmZvbzwvYT4iICUgcHJvdG9jb2wsCi0gICAgICAgICAgICAgICAiIiI8YSBo
cmVmPSIlcyI+Zm9vPC9hPiIiIiAlIHByb3RvY29sLAotICAgICAgICAgICAgICAgdG94bWwpCi0K
LSAgICBmb3IgcHJvdG9jb2wgaW4gc2FuaXRpemVyLkhUTUxTYW5pdGl6ZXIuYWxsb3dlZF9wcm90
b2NvbHM6Ci0gICAgICAgIHlpZWxkIChydW5TYW5pdGl6ZXJUZXN0LCAidGVzdF9zaG91bGRfYWxs
b3dfdXBwZXJjYXNlXyVzX3VyaXMiICUgcHJvdG9jb2wsCi0gICAgICAgICAgICAgICAiPGEgaHJl
Zj1cIiVzXCI+Zm9vPC9hPiIgJSBwcm90b2NvbCwKLSAgICAgICAgICAgICAgICIiIjxhIGhyZWY9
IiVzIj5mb288L2E+IiIiICUgcHJvdG9jb2wsCi0gICAgICAgICAgICAgICB0b3htbCkKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
aHRtbDVsaWIvaHRtbDVsaWIvdGVzdHMvdGVzdF9zZXJpYWxpemVyLnB5IGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9odG1sNWxpYi9odG1sNWxpYi90
ZXN0cy90ZXN0X3NlcmlhbGl6ZXIucHkKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDNj
MzdmZWZmNzBiMmI2MmYwYzYxMzVhMmRmN2YyOWQ5NzU2YTFiYjguLjAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy9odG1sNWxpYi9odG1sNWxpYi90ZXN0cy90ZXN0X3Nlcmlh
bGl6ZXIucHkKKysrIC9kZXYvbnVsbApAQCAtMSwxNzggKzAsMCBAQAotZnJvbSBfX2Z1dHVyZV9f
IGltcG9ydCBhYnNvbHV0ZV9pbXBvcnQsIGRpdmlzaW9uLCB1bmljb2RlX2xpdGVyYWxzCi0KLWlt
cG9ydCBqc29uCi1pbXBvcnQgdW5pdHRlc3QKLQotZnJvbSAuc3VwcG9ydCBpbXBvcnQgZ2V0X2Rh
dGFfZmlsZXMKLQotdHJ5OgotICAgIHVuaXR0ZXN0LlRlc3RDYXNlLmFzc2VydEVxdWFsCi1leGNl
cHQgQXR0cmlidXRlRXJyb3I6Ci0gICAgdW5pdHRlc3QuVGVzdENhc2UuYXNzZXJ0RXF1YWwgPSB1
bml0dGVzdC5UZXN0Q2FzZS5hc3NlcnRFcXVhbHMKLQotaW1wb3J0IGh0bWw1bGliCi1mcm9tIGh0
bWw1bGliIGltcG9ydCBjb25zdGFudHMKLWZyb20gaHRtbDVsaWIuc2VyaWFsaXplciBpbXBvcnQg
SFRNTFNlcmlhbGl6ZXIsIHNlcmlhbGl6ZQotZnJvbSBodG1sNWxpYi50cmVld2Fsa2Vycy5fYmFz
ZSBpbXBvcnQgVHJlZVdhbGtlcgotCi1vcHRpb25hbHNfbG9hZGVkID0gW10KLQotdHJ5OgotICAg
IGZyb20gbHhtbCBpbXBvcnQgZXRyZWUKLSAgICBvcHRpb25hbHNfbG9hZGVkLmFwcGVuZCgibHht
bCIpCi1leGNlcHQgSW1wb3J0RXJyb3I6Ci0gICAgcGFzcwotCi1kZWZhdWx0X25hbWVzcGFjZSA9
IGNvbnN0YW50cy5uYW1lc3BhY2VzWyJodG1sIl0KLQotCi1jbGFzcyBKc29uV2Fsa2VyKFRyZWVX
YWxrZXIpOgotICAgIGRlZiBfX2l0ZXJfXyhzZWxmKToKLSAgICAgICAgZm9yIHRva2VuIGluIHNl
bGYudHJlZToKLSAgICAgICAgICAgIHR5cGUgPSB0b2tlblswXQotICAgICAgICAgICAgaWYgdHlw
ZSA9PSAiU3RhcnRUYWciOgotICAgICAgICAgICAgICAgIGlmIGxlbih0b2tlbikgPT0gNDoKLSAg
ICAgICAgICAgICAgICAgICAgbmFtZXNwYWNlLCBuYW1lLCBhdHRyaWIgPSB0b2tlblsxOjRdCi0g
ICAgICAgICAgICAgICAgZWxzZToKLSAgICAgICAgICAgICAgICAgICAgbmFtZXNwYWNlID0gZGVm
YXVsdF9uYW1lc3BhY2UKLSAgICAgICAgICAgICAgICAgICAgbmFtZSwgYXR0cmliID0gdG9rZW5b
MTozXQotICAgICAgICAgICAgICAgIHlpZWxkIHNlbGYuc3RhcnRUYWcobmFtZXNwYWNlLCBuYW1l
LCBzZWxmLl9jb252ZXJ0QXR0cmliKGF0dHJpYikpCi0gICAgICAgICAgICBlbGlmIHR5cGUgPT0g
IkVuZFRhZyI6Ci0gICAgICAgICAgICAgICAgaWYgbGVuKHRva2VuKSA9PSAzOgotICAgICAgICAg
ICAgICAgICAgICBuYW1lc3BhY2UsIG5hbWUgPSB0b2tlblsxOjNdCi0gICAgICAgICAgICAgICAg
ZWxzZToKLSAgICAgICAgICAgICAgICAgICAgbmFtZXNwYWNlID0gZGVmYXVsdF9uYW1lc3BhY2UK
LSAgICAgICAgICAgICAgICAgICAgbmFtZSA9IHRva2VuWzFdCi0gICAgICAgICAgICAgICAgeWll
bGQgc2VsZi5lbmRUYWcobmFtZXNwYWNlLCBuYW1lKQotICAgICAgICAgICAgZWxpZiB0eXBlID09
ICJFbXB0eVRhZyI6Ci0gICAgICAgICAgICAgICAgaWYgbGVuKHRva2VuKSA9PSA0OgotICAgICAg
ICAgICAgICAgICAgICBuYW1lc3BhY2UsIG5hbWUsIGF0dHJpYiA9IHRva2VuWzE6XQotICAgICAg
ICAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAgICAgICAgIG5hbWVzcGFjZSA9IGRlZmF1bHRf
bmFtZXNwYWNlCi0gICAgICAgICAgICAgICAgICAgIG5hbWUsIGF0dHJpYiA9IHRva2VuWzE6XQot
ICAgICAgICAgICAgICAgIGZvciB0b2tlbiBpbiBzZWxmLmVtcHR5VGFnKG5hbWVzcGFjZSwgbmFt
ZSwgc2VsZi5fY29udmVydEF0dHJpYihhdHRyaWIpKToKLSAgICAgICAgICAgICAgICAgICAgeWll
bGQgdG9rZW4KLSAgICAgICAgICAgIGVsaWYgdHlwZSA9PSAiQ29tbWVudCI6Ci0gICAgICAgICAg
ICAgICAgeWllbGQgc2VsZi5jb21tZW50KHRva2VuWzFdKQotICAgICAgICAgICAgZWxpZiB0eXBl
IGluICgiQ2hhcmFjdGVycyIsICJTcGFjZUNoYXJhY3RlcnMiKToKLSAgICAgICAgICAgICAgICBm
b3IgdG9rZW4gaW4gc2VsZi50ZXh0KHRva2VuWzFdKToKLSAgICAgICAgICAgICAgICAgICAgeWll
bGQgdG9rZW4KLSAgICAgICAgICAgIGVsaWYgdHlwZSA9PSAiRG9jdHlwZSI6Ci0gICAgICAgICAg
ICAgICAgaWYgbGVuKHRva2VuKSA9PSA0OgotICAgICAgICAgICAgICAgICAgICB5aWVsZCBzZWxm
LmRvY3R5cGUodG9rZW5bMV0sIHRva2VuWzJdLCB0b2tlblszXSkKLSAgICAgICAgICAgICAgICBl
bGlmIGxlbih0b2tlbikgPT0gMzoKLSAgICAgICAgICAgICAgICAgICAgeWllbGQgc2VsZi5kb2N0
eXBlKHRva2VuWzFdLCB0b2tlblsyXSkKLSAgICAgICAgICAgICAgICBlbHNlOgotICAgICAgICAg
ICAgICAgICAgICB5aWVsZCBzZWxmLmRvY3R5cGUodG9rZW5bMV0pCi0gICAgICAgICAgICBlbHNl
OgotICAgICAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoIlVua25vd24gdG9rZW4gdHlwZTog
IiArIHR5cGUpCi0KLSAgICBkZWYgX2NvbnZlcnRBdHRyaWIoc2VsZiwgYXR0cmlicyk6Ci0gICAg
ICAgICIiImh0bWw1bGliIHRyZWUtd2Fsa2VycyB1c2UgYSBkaWN0IG9mIChuYW1lc3BhY2UsIG5h
bWUpOiB2YWx1ZSBmb3IKLSAgICAgICAgYXR0cmlidXRlcywgYnV0IEpTT04gY2Fubm90IHJlcHJl
c2VudCB0aGlzLiBDb252ZXJ0IGZyb20gdGhlIGZvcm1hdAotICAgICAgICBpbiB0aGUgc2VyaWFs
aXplciB0ZXN0cyAoYSBsaXN0IG9mIGRpY3RzIHdpdGggIm5hbWVzcGFjZSIsICJuYW1lIiwKLSAg
ICAgICAgYW5kICJ2YWx1ZSIgYXMga2V5cykgdG8gaHRtbDVsaWIncyB0cmVlLXdhbGtlciBmb3Jt
YXQuIiIiCi0gICAgICAgIGF0dHJzID0ge30KLSAgICAgICAgZm9yIGF0dHJpYiBpbiBhdHRyaWJz
OgotICAgICAgICAgICAgbmFtZSA9IChhdHRyaWJbIm5hbWVzcGFjZSJdLCBhdHRyaWJbIm5hbWUi
XSkKLSAgICAgICAgICAgIGFzc2VydChuYW1lIG5vdCBpbiBhdHRycykKLSAgICAgICAgICAgIGF0
dHJzW25hbWVdID0gYXR0cmliWyJ2YWx1ZSJdCi0gICAgICAgIHJldHVybiBhdHRycwotCi0KLWRl
ZiBzZXJpYWxpemVfaHRtbChpbnB1dCwgb3B0aW9ucyk6Ci0gICAgb3B0aW9ucyA9IGRpY3QoWyhz
dHIoayksIHYpIGZvciBrLCB2IGluIG9wdGlvbnMuaXRlbXMoKV0pCi0gICAgc3RyZWFtID0gSnNv
bldhbGtlcihpbnB1dCkKLSAgICBzZXJpYWxpemVyID0gSFRNTFNlcmlhbGl6ZXIoYWxwaGFiZXRp
Y2FsX2F0dHJpYnV0ZXM9VHJ1ZSwgKipvcHRpb25zKQotICAgIHJldHVybiBzZXJpYWxpemVyLnJl
bmRlcihzdHJlYW0sIG9wdGlvbnMuZ2V0KCJlbmNvZGluZyIsIE5vbmUpKQotCi0KLWRlZiBydW5T
ZXJpYWxpemVyVGVzdChpbnB1dCwgZXhwZWN0ZWQsIG9wdGlvbnMpOgotICAgIGVuY29kaW5nID0g
b3B0aW9ucy5nZXQoImVuY29kaW5nIiwgTm9uZSkKLQotICAgIGlmIGVuY29kaW5nOgotICAgICAg
ICBlbmNvZGUgPSBsYW1iZGEgeDogeC5lbmNvZGUoZW5jb2RpbmcpCi0gICAgICAgIGV4cGVjdGVk
ID0gbGlzdChtYXAoZW5jb2RlLCBleHBlY3RlZCkpCi0KLSAgICByZXN1bHQgPSBzZXJpYWxpemVf
aHRtbChpbnB1dCwgb3B0aW9ucykKLSAgICBpZiBsZW4oZXhwZWN0ZWQpID09IDE6Ci0gICAgICAg
IGFzc2VydCBleHBlY3RlZFswXSA9PSByZXN1bHQsICJFeHBlY3RlZDpcbiVzXG5BY3R1YWw6XG4l
c1xuT3B0aW9uczpcbiVzIiAlIChleHBlY3RlZFswXSwgcmVzdWx0LCBzdHIob3B0aW9ucykpCi0g
ICAgZWxpZiByZXN1bHQgbm90IGluIGV4cGVjdGVkOgotICAgICAgICBhc3NlcnQgRmFsc2UsICJF
eHBlY3RlZDogJXMsIFJlY2VpdmVkOiAlcyIgJSAoZXhwZWN0ZWQsIHJlc3VsdCkKLQotCi1jbGFz
cyBFbmNvZGluZ1Rlc3RDYXNlKHVuaXR0ZXN0LlRlc3RDYXNlKToKLSAgICBkZWYgdGhyb3dzV2l0
aExhdGluMShzZWxmLCBpbnB1dCk6Ci0gICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFVuaWNvZGVF
bmNvZGVFcnJvciwgc2VyaWFsaXplX2h0bWwsIGlucHV0LCB7ImVuY29kaW5nIjogImlzby04ODU5
LTEifSkKLQotICAgIGRlZiB0ZXN0RG9jdHlwZU5hbWUoc2VsZik6Ci0gICAgICAgIHNlbGYudGhy
b3dzV2l0aExhdGluMShbWyJEb2N0eXBlIiwgIlx1MDEwMSJdXSkKLQotICAgIGRlZiB0ZXN0RG9j
dHlwZVB1YmxpY0lkKHNlbGYpOgotICAgICAgICBzZWxmLnRocm93c1dpdGhMYXRpbjEoW1siRG9j
dHlwZSIsICJwb3RhdG8iLCAiXHUwMTAxIl1dKQotCi0gICAgZGVmIHRlc3REb2N0eXBlU3lzdGVt
SWQoc2VsZik6Ci0gICAgICAgIHNlbGYudGhyb3dzV2l0aExhdGluMShbWyJEb2N0eXBlIiwgInBv
dGF0byIsICJwb3RhdG8iLCAiXHUwMTAxIl1dKQotCi0gICAgZGVmIHRlc3RDZGF0YUNoYXJhY3Rl
cnMoc2VsZik6Ci0gICAgICAgIHJ1blNlcmlhbGl6ZXJUZXN0KFtbIlN0YXJ0VGFnIiwgImh0dHA6
Ly93d3cudzMub3JnLzE5OTkveGh0bWwiLCAic3R5bGUiLCB7fV0sIFsiQ2hhcmFjdGVycyIsICJc
dTAxMDEiXV0sCi0gICAgICAgICAgICAgICAgICAgICAgICAgIFsiPHN0eWxlPiZhbWFjcjsiXSwg
eyJlbmNvZGluZyI6ICJpc28tODg1OS0xIn0pCi0KLSAgICBkZWYgdGVzdENoYXJhY3RlcnMoc2Vs
Zik6Ci0gICAgICAgIHJ1blNlcmlhbGl6ZXJUZXN0KFtbIkNoYXJhY3RlcnMiLCAiXHUwMTAxIl1d
LAotICAgICAgICAgICAgICAgICAgICAgICAgICBbIiZhbWFjcjsiXSwgeyJlbmNvZGluZyI6ICJp
c28tODg1OS0xIn0pCi0KLSAgICBkZWYgdGVzdFN0YXJ0VGFnTmFtZShzZWxmKToKLSAgICAgICAg
c2VsZi50aHJvd3NXaXRoTGF0aW4xKFtbIlN0YXJ0VGFnIiwgImh0dHA6Ly93d3cudzMub3JnLzE5
OTkveGh0bWwiLCAiXHUwMTAxIiwgW11dXSkKLQotICAgIGRlZiB0ZXN0RW1wdHlUYWdOYW1lKHNl
bGYpOgotICAgICAgICBzZWxmLnRocm93c1dpdGhMYXRpbjEoW1siRW1wdHlUYWciLCAiaHR0cDov
L3d3dy53My5vcmcvMTk5OS94aHRtbCIsICJcdTAxMDEiLCBbXV1dKQotCi0gICAgZGVmIHRlc3RB
dHRyaWJ1dGVOYW1lKHNlbGYpOgotICAgICAgICBzZWxmLnRocm93c1dpdGhMYXRpbjEoW1siU3Rh
cnRUYWciLCAiaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCIsICJzcGFuIiwgW3sibmFtZXNw
YWNlIjogTm9uZSwgIm5hbWUiOiAiXHUwMTAxIiwgInZhbHVlIjogInBvdGF0byJ9XV1dKQotCi0g
ICAgZGVmIHRlc3RBdHRyaWJ1dGVWYWx1ZShzZWxmKToKLSAgICAgICAgcnVuU2VyaWFsaXplclRl
c3QoW1siU3RhcnRUYWciLCAiaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCIsICJzcGFuIiwK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICBbeyJuYW1lc3BhY2UiOiBOb25lLCAibmFtZSI6
ICJwb3RhdG8iLCAidmFsdWUiOiAiXHUwMTAxIn1dXV0sCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgIFsiPHNwYW4gcG90YXRvPSZhbWFjcjs+Il0sIHsiZW5jb2RpbmciOiAiaXNvLTg4NTktMSJ9
KQotCi0gICAgZGVmIHRlc3RFbmRUYWdOYW1lKHNlbGYpOgotICAgICAgICBzZWxmLnRocm93c1dp
dGhMYXRpbjEoW1siRW5kVGFnIiwgImh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiLCAiXHUw
MTAxIl1dKQotCi0gICAgZGVmIHRlc3RDb21tZW50KHNlbGYpOgotICAgICAgICBzZWxmLnRocm93
c1dpdGhMYXRpbjEoW1siQ29tbWVudCIsICJcdTAxMDEiXV0pCi0KLQotaWYgImx4bWwiIGluIG9w
dGlvbmFsc19sb2FkZWQ6Ci0gICAgY2xhc3MgTHhtbFRlc3RDYXNlKHVuaXR0ZXN0LlRlc3RDYXNl
KToKLSAgICAgICAgZGVmIHNldFVwKHNlbGYpOgotICAgICAgICAgICAgc2VsZi5wYXJzZXIgPSBl
dHJlZS5YTUxQYXJzZXIocmVzb2x2ZV9lbnRpdGllcz1GYWxzZSkKLSAgICAgICAgICAgIHNlbGYu
dHJlZXdhbGtlciA9IGh0bWw1bGliLmdldFRyZWVXYWxrZXIoImx4bWwiKQotICAgICAgICAgICAg
c2VsZi5zZXJpYWxpemVyID0gSFRNTFNlcmlhbGl6ZXIoKQotCi0gICAgICAgIGRlZiB0ZXN0RW50
aXR5UmVwbGFjZW1lbnQoc2VsZik6Ci0gICAgICAgICAgICBkb2MgPSAiIiI8IURPQ1RZUEUgaHRt
bCBTWVNURU0gImFib3V0OmxlZ2FjeS1jb21wYXQiPjxodG1sPiZiZXRhOzwvaHRtbD4iIiIKLSAg
ICAgICAgICAgIHRyZWUgPSBldHJlZS5mcm9tc3RyaW5nKGRvYywgcGFyc2VyPXNlbGYucGFyc2Vy
KS5nZXRyb290dHJlZSgpCi0gICAgICAgICAgICByZXN1bHQgPSBzZXJpYWxpemUodHJlZSwgdHJl
ZT0ibHhtbCIsIG9taXRfb3B0aW9uYWxfdGFncz1GYWxzZSkKLSAgICAgICAgICAgIHNlbGYuYXNz
ZXJ0RXF1YWwoIiIiPCFET0NUWVBFIGh0bWwgU1lTVEVNICJhYm91dDpsZWdhY3ktY29tcGF0Ij48
aHRtbD5cdTAzQjI8L2h0bWw+IiIiLCByZXN1bHQpCi0KLSAgICAgICAgZGVmIHRlc3RFbnRpdHlY
TUwoc2VsZik6Ci0gICAgICAgICAgICBkb2MgPSAiIiI8IURPQ1RZUEUgaHRtbCBTWVNURU0gImFi
b3V0OmxlZ2FjeS1jb21wYXQiPjxodG1sPiZndDs8L2h0bWw+IiIiCi0gICAgICAgICAgICB0cmVl
ID0gZXRyZWUuZnJvbXN0cmluZyhkb2MsIHBhcnNlcj1zZWxmLnBhcnNlcikuZ2V0cm9vdHRyZWUo
KQotICAgICAgICAgICAgcmVzdWx0ID0gc2VyaWFsaXplKHRyZWUsIHRyZWU9Imx4bWwiLCBvbWl0
X29wdGlvbmFsX3RhZ3M9RmFsc2UpCi0gICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCIiIjwh
RE9DVFlQRSBodG1sIFNZU1RFTSAiYWJvdXQ6bGVnYWN5LWNvbXBhdCI+PGh0bWw+Jmd0OzwvaHRt
bD4iIiIsIHJlc3VsdCkKLQotICAgICAgICBkZWYgdGVzdEVudGl0eU5vUmVzb2x2ZShzZWxmKToK
LSAgICAgICAgICAgIGRvYyA9ICIiIjwhRE9DVFlQRSBodG1sIFNZU1RFTSAiYWJvdXQ6bGVnYWN5
LWNvbXBhdCI+PGh0bWw+JmJldGE7PC9odG1sPiIiIgotICAgICAgICAgICAgdHJlZSA9IGV0cmVl
LmZyb21zdHJpbmcoZG9jLCBwYXJzZXI9c2VsZi5wYXJzZXIpLmdldHJvb3R0cmVlKCkKLSAgICAg
ICAgICAgIHJlc3VsdCA9IHNlcmlhbGl6ZSh0cmVlLCB0cmVlPSJseG1sIiwgb21pdF9vcHRpb25h
bF90YWdzPUZhbHNlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
cmVzb2x2ZV9lbnRpdGllcz1GYWxzZSkKLSAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoIiIi
PCFET0NUWVBFIGh0bWwgU1lTVEVNICJhYm91dDpsZWdhY3ktY29tcGF0Ij48aHRtbD4mYmV0YTs8
L2h0bWw+IiIiLCByZXN1bHQpCi0KLQotZGVmIHRlc3Rfc2VyaWFsaXplcigpOgotICAgIGZvciBm
aWxlbmFtZSBpbiBnZXRfZGF0YV9maWxlcygnc2VyaWFsaXplcicsICcqLnRlc3QnKToKLSAgICAg
ICAgd2l0aCBvcGVuKGZpbGVuYW1lKSBhcyBmcDoKLSAgICAgICAgICAgIHRlc3RzID0ganNvbi5s
b2FkKGZwKQotICAgICAgICAgICAgZm9yIGluZGV4LCB0ZXN0IGluIGVudW1lcmF0ZSh0ZXN0c1sn
dGVzdHMnXSk6Ci0gICAgICAgICAgICAgICAgeWllbGQgcnVuU2VyaWFsaXplclRlc3QsIHRlc3Rb
ImlucHV0Il0sIHRlc3RbImV4cGVjdGVkIl0sIHRlc3QuZ2V0KCJvcHRpb25zIiwge30pCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L2h0bWw1bGliL2h0bWw1bGliL3Rlc3RzL3Rlc3Rfc3RyZWFtLnB5IGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9odG1sNWxpYi9odG1sNWxpYi90ZXN0
cy90ZXN0X3N0cmVhbS5weQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMmE4NzZjMWRi
ZmRiOGZlOGMxNWRjYmJiZWViZWFkYTJhZDQyZDllZC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL2h0bWw1bGliL2h0bWw1bGliL3Rlc3RzL3Rlc3Rfc3RyZWFtLnB5Cisr
KyAvZGV2L251bGwKQEAgLTEsMTgzICswLDAgQEAKLWZyb20gX19mdXR1cmVfXyBpbXBvcnQgYWJz
b2x1dGVfaW1wb3J0LCBkaXZpc2lvbiwgdW5pY29kZV9saXRlcmFscwotCi1mcm9tIC4gaW1wb3J0
IHN1cHBvcnQgICMgZmxha2U4OiBub3FhCi1pbXBvcnQgdW5pdHRlc3QKLWltcG9ydCBjb2RlY3MK
LWZyb20gaW8gaW1wb3J0IEJ5dGVzSU8KLQotZnJvbSBzaXgubW92ZXMgaW1wb3J0IGh0dHBfY2xp
ZW50Ci0KLWZyb20gaHRtbDVsaWIuaW5wdXRzdHJlYW0gaW1wb3J0IChCdWZmZXJlZFN0cmVhbSwg
SFRNTElucHV0U3RyZWFtLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEhUTUxV
bmljb2RlSW5wdXRTdHJlYW0sIEhUTUxCaW5hcnlJbnB1dFN0cmVhbSkKLQotY2xhc3MgQnVmZmVy
ZWRTdHJlYW1UZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKLSAgICBkZWYgdGVzdF9iYXNpYyhzZWxm
KToKLSAgICAgICAgcyA9IGIiYWJjIgotICAgICAgICBmcCA9IEJ1ZmZlcmVkU3RyZWFtKEJ5dGVz
SU8ocykpCi0gICAgICAgIHJlYWQgPSBmcC5yZWFkKDEwKQotICAgICAgICBhc3NlcnQgcmVhZCA9
PSBzCi0KLSAgICBkZWYgdGVzdF9yZWFkX2xlbmd0aChzZWxmKToKLSAgICAgICAgZnAgPSBCdWZm
ZXJlZFN0cmVhbShCeXRlc0lPKGIiYWJjZGVmIikpCi0gICAgICAgIHJlYWQxID0gZnAucmVhZCgx
KQotICAgICAgICBhc3NlcnQgcmVhZDEgPT0gYiJhIgotICAgICAgICByZWFkMiA9IGZwLnJlYWQo
MikKLSAgICAgICAgYXNzZXJ0IHJlYWQyID09IGIiYmMiCi0gICAgICAgIHJlYWQzID0gZnAucmVh
ZCgzKQotICAgICAgICBhc3NlcnQgcmVhZDMgPT0gYiJkZWYiCi0gICAgICAgIHJlYWQ0ID0gZnAu
cmVhZCg0KQotICAgICAgICBhc3NlcnQgcmVhZDQgPT0gYiIiCi0KLSAgICBkZWYgdGVzdF90ZWxs
KHNlbGYpOgotICAgICAgICBmcCA9IEJ1ZmZlcmVkU3RyZWFtKEJ5dGVzSU8oYiJhYmNkZWYiKSkK
LSAgICAgICAgcmVhZDEgPSBmcC5yZWFkKDEpCi0gICAgICAgIGFzc2VydCBmcC50ZWxsKCkgPT0g
MQotICAgICAgICByZWFkMiA9IGZwLnJlYWQoMikKLSAgICAgICAgYXNzZXJ0IGZwLnRlbGwoKSA9
PSAzCi0gICAgICAgIHJlYWQzID0gZnAucmVhZCgzKQotICAgICAgICBhc3NlcnQgZnAudGVsbCgp
ID09IDYKLSAgICAgICAgcmVhZDQgPSBmcC5yZWFkKDQpCi0gICAgICAgIGFzc2VydCBmcC50ZWxs
KCkgPT0gNgotCi0gICAgZGVmIHRlc3Rfc2VlayhzZWxmKToKLSAgICAgICAgZnAgPSBCdWZmZXJl
ZFN0cmVhbShCeXRlc0lPKGIiYWJjZGVmIikpCi0gICAgICAgIHJlYWQxID0gZnAucmVhZCgxKQot
ICAgICAgICBhc3NlcnQgcmVhZDEgPT0gYiJhIgotICAgICAgICBmcC5zZWVrKDApCi0gICAgICAg
IHJlYWQyID0gZnAucmVhZCgxKQotICAgICAgICBhc3NlcnQgcmVhZDIgPT0gYiJhIgotICAgICAg
ICByZWFkMyA9IGZwLnJlYWQoMikKLSAgICAgICAgYXNzZXJ0IHJlYWQzID09IGIiYmMiCi0gICAg
ICAgIGZwLnNlZWsoMikKLSAgICAgICAgcmVhZDQgPSBmcC5yZWFkKDIpCi0gICAgICAgIGFzc2Vy
dCByZWFkNCA9PSBiImNkIgotICAgICAgICBmcC5zZWVrKDQpCi0gICAgICAgIHJlYWQ1ID0gZnAu
cmVhZCgyKQotICAgICAgICBhc3NlcnQgcmVhZDUgPT0gYiJlZiIKLQotICAgIGRlZiB0ZXN0X3Nl
ZWtfdGVsbChzZWxmKToKLSAgICAgICAgZnAgPSBCdWZmZXJlZFN0cmVhbShCeXRlc0lPKGIiYWJj
ZGVmIikpCi0gICAgICAgIHJlYWQxID0gZnAucmVhZCgxKQotICAgICAgICBhc3NlcnQgZnAudGVs
bCgpID09IDEKLSAgICAgICAgZnAuc2VlaygwKQotICAgICAgICByZWFkMiA9IGZwLnJlYWQoMSkK
LSAgICAgICAgYXNzZXJ0IGZwLnRlbGwoKSA9PSAxCi0gICAgICAgIHJlYWQzID0gZnAucmVhZCgy
KQotICAgICAgICBhc3NlcnQgZnAudGVsbCgpID09IDMKLSAgICAgICAgZnAuc2VlaygyKQotICAg
ICAgICByZWFkNCA9IGZwLnJlYWQoMikKLSAgICAgICAgYXNzZXJ0IGZwLnRlbGwoKSA9PSA0Ci0g
ICAgICAgIGZwLnNlZWsoNCkKLSAgICAgICAgcmVhZDUgPSBmcC5yZWFkKDIpCi0gICAgICAgIGFz
c2VydCBmcC50ZWxsKCkgPT0gNgotCi0KLWNsYXNzIEhUTUxVbmljb2RlSW5wdXRTdHJlYW1TaG9y
dENodW5rKEhUTUxVbmljb2RlSW5wdXRTdHJlYW0pOgotICAgIF9kZWZhdWx0Q2h1bmtTaXplID0g
MgotCi0KLWNsYXNzIEhUTUxCaW5hcnlJbnB1dFN0cmVhbVNob3J0Q2h1bmsoSFRNTEJpbmFyeUlu
cHV0U3RyZWFtKToKLSAgICBfZGVmYXVsdENodW5rU2l6ZSA9IDIKLQotCi1jbGFzcyBIVE1MSW5w
dXRTdHJlYW1UZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKLQotICAgIGRlZiB0ZXN0X2NoYXJfYXNj
aWkoc2VsZik6Ci0gICAgICAgIHN0cmVhbSA9IEhUTUxJbnB1dFN0cmVhbShiIiciLCBlbmNvZGlu
Zz0nYXNjaWknKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHN0cmVhbS5jaGFyRW5jb2Rpbmdb
MF0sICdhc2NpaScpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc3RyZWFtLmNoYXIoKSwgIici
KQotCi0gICAgZGVmIHRlc3RfY2hhcl91dGY4KHNlbGYpOgotICAgICAgICBzdHJlYW0gPSBIVE1M
SW5wdXRTdHJlYW0oJ1x1MjAxOCcuZW5jb2RlKCd1dGYtOCcpLCBlbmNvZGluZz0ndXRmLTgnKQot
ICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHN0cmVhbS5jaGFyRW5jb2RpbmdbMF0sICd1dGYtOCcp
Ci0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc3RyZWFtLmNoYXIoKSwgJ1x1MjAxOCcpCi0KLSAg
ICBkZWYgdGVzdF9jaGFyX3dpbjEyNTIoc2VsZik6Ci0gICAgICAgIHN0cmVhbSA9IEhUTUxJbnB1
dFN0cmVhbSgiXHhhOVx4ZjFcdTIwMTkiLmVuY29kZSgnd2luZG93cy0xMjUyJykpCi0gICAgICAg
IHNlbGYuYXNzZXJ0RXF1YWwoc3RyZWFtLmNoYXJFbmNvZGluZ1swXSwgJ3dpbmRvd3MtMTI1Micp
Ci0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc3RyZWFtLmNoYXIoKSwgIlx4YTkiKQotICAgICAg
ICBzZWxmLmFzc2VydEVxdWFsKHN0cmVhbS5jaGFyKCksICJceGYxIikKLSAgICAgICAgc2VsZi5h
c3NlcnRFcXVhbChzdHJlYW0uY2hhcigpLCAiXHUyMDE5IikKLQotICAgIGRlZiB0ZXN0X2JvbShz
ZWxmKToKLSAgICAgICAgc3RyZWFtID0gSFRNTElucHV0U3RyZWFtKGNvZGVjcy5CT01fVVRGOCAr
IGIiJyIpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc3RyZWFtLmNoYXJFbmNvZGluZ1swXSwg
J3V0Zi04JykKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzdHJlYW0uY2hhcigpLCAiJyIpCi0K
LSAgICBkZWYgdGVzdF91dGZfMTYoc2VsZik6Ci0gICAgICAgIHN0cmVhbSA9IEhUTUxJbnB1dFN0
cmVhbSgoJyAnICogMTAyNSkuZW5jb2RlKCd1dGYtMTYnKSkKLSAgICAgICAgc2VsZi5hc3NlcnRU
cnVlKHN0cmVhbS5jaGFyRW5jb2RpbmdbMF0gaW4gWyd1dGYtMTYtbGUnLCAndXRmLTE2LWJlJ10s
IHN0cmVhbS5jaGFyRW5jb2RpbmcpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobGVuKHN0cmVh
bS5jaGFyc1VudGlsKCcgJywgVHJ1ZSkpLCAxMDI1KQotCi0gICAgZGVmIHRlc3RfbmV3bGluZXMo
c2VsZik6Ci0gICAgICAgIHN0cmVhbSA9IEhUTUxCaW5hcnlJbnB1dFN0cmVhbVNob3J0Q2h1bmso
Y29kZWNzLkJPTV9VVEY4ICsgYiJhXG5iYlxyXG5jY2NccmRkZGR4ZSIpCi0gICAgICAgIHNlbGYu
YXNzZXJ0RXF1YWwoc3RyZWFtLnBvc2l0aW9uKCksICgxLCAwKSkKLSAgICAgICAgc2VsZi5hc3Nl
cnRFcXVhbChzdHJlYW0uY2hhcnNVbnRpbCgnYycpLCAiYVxuYmJcbiIpCi0gICAgICAgIHNlbGYu
YXNzZXJ0RXF1YWwoc3RyZWFtLnBvc2l0aW9uKCksICgzLCAwKSkKLSAgICAgICAgc2VsZi5hc3Nl
cnRFcXVhbChzdHJlYW0uY2hhcnNVbnRpbCgneCcpLCAiY2NjXG5kZGRkIikKLSAgICAgICAgc2Vs
Zi5hc3NlcnRFcXVhbChzdHJlYW0ucG9zaXRpb24oKSwgKDQsIDQpKQotICAgICAgICBzZWxmLmFz
c2VydEVxdWFsKHN0cmVhbS5jaGFyc1VudGlsKCdlJyksICJ4IikKLSAgICAgICAgc2VsZi5hc3Nl
cnRFcXVhbChzdHJlYW0ucG9zaXRpb24oKSwgKDQsIDUpKQotCi0gICAgZGVmIHRlc3RfbmV3bGlu
ZXMyKHNlbGYpOgotICAgICAgICBzaXplID0gSFRNTFVuaWNvZGVJbnB1dFN0cmVhbS5fZGVmYXVs
dENodW5rU2l6ZQotICAgICAgICBzdHJlYW0gPSBIVE1MSW5wdXRTdHJlYW0oIlxyIiAqIHNpemUg
KyAiXG4iKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHN0cmVhbS5jaGFyc1VudGlsKCd4Jyks
ICJcbiIgKiBzaXplKQotCi0gICAgZGVmIHRlc3RfcG9zaXRpb24oc2VsZik6Ci0gICAgICAgIHN0
cmVhbSA9IEhUTUxCaW5hcnlJbnB1dFN0cmVhbVNob3J0Q2h1bmsoY29kZWNzLkJPTV9VVEY4ICsg
YiJhXG5iYlxuY2NjXG5kZGRlXG5mXG5naCIpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc3Ry
ZWFtLnBvc2l0aW9uKCksICgxLCAwKSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzdHJlYW0u
Y2hhcnNVbnRpbCgnYycpLCAiYVxuYmJcbiIpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc3Ry
ZWFtLnBvc2l0aW9uKCksICgzLCAwKSkKLSAgICAgICAgc3RyZWFtLnVuZ2V0KCJcbiIpCi0gICAg
ICAgIHNlbGYuYXNzZXJ0RXF1YWwoc3RyZWFtLnBvc2l0aW9uKCksICgyLCAyKSkKLSAgICAgICAg
c2VsZi5hc3NlcnRFcXVhbChzdHJlYW0uY2hhcnNVbnRpbCgnYycpLCAiXG4iKQotICAgICAgICBz
ZWxmLmFzc2VydEVxdWFsKHN0cmVhbS5wb3NpdGlvbigpLCAoMywgMCkpCi0gICAgICAgIHN0cmVh
bS51bmdldCgiXG4iKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHN0cmVhbS5wb3NpdGlvbigp
LCAoMiwgMikpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc3RyZWFtLmNoYXIoKSwgIlxuIikK
LSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzdHJlYW0ucG9zaXRpb24oKSwgKDMsIDApKQotICAg
ICAgICBzZWxmLmFzc2VydEVxdWFsKHN0cmVhbS5jaGFyc1VudGlsKCdlJyksICJjY2NcbmRkZCIp
Ci0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc3RyZWFtLnBvc2l0aW9uKCksICg0LCAzKSkKLSAg
ICAgICAgc2VsZi5hc3NlcnRFcXVhbChzdHJlYW0uY2hhcnNVbnRpbCgnaCcpLCAiZVxuZlxuZyIp
Ci0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc3RyZWFtLnBvc2l0aW9uKCksICg2LCAxKSkKLQot
ICAgIGRlZiB0ZXN0X3Bvc2l0aW9uMihzZWxmKToKLSAgICAgICAgc3RyZWFtID0gSFRNTFVuaWNv
ZGVJbnB1dFN0cmVhbVNob3J0Q2h1bmsoImFiY1xuZCIpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1
YWwoc3RyZWFtLnBvc2l0aW9uKCksICgxLCAwKSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChz
dHJlYW0uY2hhcigpLCAiYSIpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc3RyZWFtLnBvc2l0
aW9uKCksICgxLCAxKSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzdHJlYW0uY2hhcigpLCAi
YiIpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc3RyZWFtLnBvc2l0aW9uKCksICgxLCAyKSkK
LSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzdHJlYW0uY2hhcigpLCAiYyIpCi0gICAgICAgIHNl
bGYuYXNzZXJ0RXF1YWwoc3RyZWFtLnBvc2l0aW9uKCksICgxLCAzKSkKLSAgICAgICAgc2VsZi5h
c3NlcnRFcXVhbChzdHJlYW0uY2hhcigpLCAiXG4iKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFs
KHN0cmVhbS5wb3NpdGlvbigpLCAoMiwgMCkpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc3Ry
ZWFtLmNoYXIoKSwgImQiKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHN0cmVhbS5wb3NpdGlv
bigpLCAoMiwgMSkpCi0KLSAgICBkZWYgdGVzdF9weXRob25faXNzdWVfMjAwMDcoc2VsZik6Ci0g
ICAgICAgICIiIgotICAgICAgICBNYWtlIHN1cmUgd2UgaGF2ZSBhIHdvcmstYXJvdW5kIGZvciBQ
eXRob24gYnVnICMyMDAwNwotICAgICAgICBodHRwOi8vYnVncy5weXRob24ub3JnL2lzc3VlMjAw
MDcKLSAgICAgICAgIiIiCi0gICAgICAgIGNsYXNzIEZha2VTb2NrZXQob2JqZWN0KToKLSAgICAg
ICAgICAgIGRlZiBtYWtlZmlsZShzZWxmLCBfbW9kZSwgX2J1ZnNpemU9Tm9uZSk6Ci0gICAgICAg
ICAgICAgICAgcmV0dXJuIEJ5dGVzSU8oYiJIVFRQLzEuMSAyMDAgT2tcclxuXHJcblRleHQiKQot
Ci0gICAgICAgIHNvdXJjZSA9IGh0dHBfY2xpZW50LkhUVFBSZXNwb25zZShGYWtlU29ja2V0KCkp
Ci0gICAgICAgIHNvdXJjZS5iZWdpbigpCi0gICAgICAgIHN0cmVhbSA9IEhUTUxJbnB1dFN0cmVh
bShzb3VyY2UpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc3RyZWFtLmNoYXJzVW50aWwoIiAi
KSwgIlRleHQiKQotCi0KLWRlZiBidWlsZFRlc3RTdWl0ZSgpOgotICAgIHJldHVybiB1bml0dGVz
dC5kZWZhdWx0VGVzdExvYWRlci5sb2FkVGVzdHNGcm9tTmFtZShfX25hbWVfXykKLQotCi1kZWYg
bWFpbigpOgotICAgIGJ1aWxkVGVzdFN1aXRlKCkKLSAgICB1bml0dGVzdC5tYWluKCkKLQotaWYg
X19uYW1lX18gPT0gJ19fbWFpbl9fJzoKLSAgICBtYWluKCkKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvaHRtbDVsaWIvaHRtbDVs
aWIvdGVzdHMvdGVzdF90b2tlbml6ZXIucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2h0bWw1bGliL2h0bWw1bGliL3Rlc3RzL3Rlc3RfdG9rZW5p
emVyLnB5CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5MDMxNWFiMzVkMjQ2MDRjNWE5
YzM0YjI0MGY4OTBjZTlhNGE3ZTA4Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvaHRtbDVsaWIvaHRtbDVsaWIvdGVzdHMvdGVzdF90b2tlbml6ZXIucHkKKysrIC9kZXYv
bnVsbApAQCAtMSwxODggKzAsMCBAQAotZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCBhYnNvbHV0ZV9p
bXBvcnQsIGRpdmlzaW9uLCB1bmljb2RlX2xpdGVyYWxzCi0KLWltcG9ydCBqc29uCi1pbXBvcnQg
d2FybmluZ3MKLWltcG9ydCByZQotCi1mcm9tIC5zdXBwb3J0IGltcG9ydCBnZXRfZGF0YV9maWxl
cwotCi1mcm9tIGh0bWw1bGliLnRva2VuaXplciBpbXBvcnQgSFRNTFRva2VuaXplcgotZnJvbSBo
dG1sNWxpYiBpbXBvcnQgY29uc3RhbnRzCi0KLQotY2xhc3MgVG9rZW5pemVyVGVzdFBhcnNlcihv
YmplY3QpOgotICAgIGRlZiBfX2luaXRfXyhzZWxmLCBpbml0aWFsU3RhdGUsIGxhc3RTdGFydFRh
Zz1Ob25lKToKLSAgICAgICAgc2VsZi50b2tlbml6ZXIgPSBIVE1MVG9rZW5pemVyCi0gICAgICAg
IHNlbGYuX3N0YXRlID0gaW5pdGlhbFN0YXRlCi0gICAgICAgIHNlbGYuX2xhc3RTdGFydFRhZyA9
IGxhc3RTdGFydFRhZwotCi0gICAgZGVmIHBhcnNlKHNlbGYsIHN0cmVhbSwgZW5jb2Rpbmc9Tm9u
ZSwgaW5uZXJIVE1MPUZhbHNlKToKLSAgICAgICAgdG9rZW5pemVyID0gc2VsZi50b2tlbml6ZXIo
c3RyZWFtLCBlbmNvZGluZykKLSAgICAgICAgc2VsZi5vdXRwdXRUb2tlbnMgPSBbXQotCi0gICAg
ICAgIHRva2VuaXplci5zdGF0ZSA9IGdldGF0dHIodG9rZW5pemVyLCBzZWxmLl9zdGF0ZSkKLSAg
ICAgICAgaWYgc2VsZi5fbGFzdFN0YXJ0VGFnIGlzIG5vdCBOb25lOgotICAgICAgICAgICAgdG9r
ZW5pemVyLmN1cnJlbnRUb2tlbiA9IHsidHlwZSI6ICJzdGFydFRhZyIsCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICJuYW1lIjogc2VsZi5fbGFzdFN0YXJ0VGFnfQotCi0g
ICAgICAgIHR5cGVzID0gZGljdCgodiwgaykgZm9yIGssIHYgaW4gY29uc3RhbnRzLnRva2VuVHlw
ZXMuaXRlbXMoKSkKLSAgICAgICAgZm9yIHRva2VuIGluIHRva2VuaXplcjoKLSAgICAgICAgICAg
IGdldGF0dHIoc2VsZiwgJ3Byb2Nlc3MlcycgJSB0eXBlc1t0b2tlblsidHlwZSJdXSkodG9rZW4p
Ci0KLSAgICAgICAgcmV0dXJuIHNlbGYub3V0cHV0VG9rZW5zCi0KLSAgICBkZWYgcHJvY2Vzc0Rv
Y3R5cGUoc2VsZiwgdG9rZW4pOgotICAgICAgICBzZWxmLm91dHB1dFRva2Vucy5hcHBlbmQoWyJE
T0NUWVBFIiwgdG9rZW5bIm5hbWUiXSwgdG9rZW5bInB1YmxpY0lkIl0sCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgdG9rZW5bInN5c3RlbUlkIl0sIHRva2VuWyJjb3JyZWN0Il1d
KQotCi0gICAgZGVmIHByb2Nlc3NTdGFydFRhZyhzZWxmLCB0b2tlbik6Ci0gICAgICAgIHNlbGYu
b3V0cHV0VG9rZW5zLmFwcGVuZChbIlN0YXJ0VGFnIiwgdG9rZW5bIm5hbWUiXSwKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBkaWN0KHRva2VuWyJkYXRhIl1bOjotMV0pLCB0b2tl
blsic2VsZkNsb3NpbmciXV0pCi0KLSAgICBkZWYgcHJvY2Vzc0VtcHR5VGFnKHNlbGYsIHRva2Vu
KToKLSAgICAgICAgaWYgdG9rZW5bIm5hbWUiXSBub3QgaW4gY29uc3RhbnRzLnZvaWRFbGVtZW50
czoKLSAgICAgICAgICAgIHNlbGYub3V0cHV0VG9rZW5zLmFwcGVuZCgiUGFyc2VFcnJvciIpCi0g
ICAgICAgIHNlbGYub3V0cHV0VG9rZW5zLmFwcGVuZChbIlN0YXJ0VGFnIiwgdG9rZW5bIm5hbWUi
XSwgZGljdCh0b2tlblsiZGF0YSJdWzo6LTFdKV0pCi0KLSAgICBkZWYgcHJvY2Vzc0VuZFRhZyhz
ZWxmLCB0b2tlbik6Ci0gICAgICAgIHNlbGYub3V0cHV0VG9rZW5zLmFwcGVuZChbIkVuZFRhZyIs
IHRva2VuWyJuYW1lIl0sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG9rZW5b
InNlbGZDbG9zaW5nIl1dKQotCi0gICAgZGVmIHByb2Nlc3NDb21tZW50KHNlbGYsIHRva2VuKToK
LSAgICAgICAgc2VsZi5vdXRwdXRUb2tlbnMuYXBwZW5kKFsiQ29tbWVudCIsIHRva2VuWyJkYXRh
Il1dKQotCi0gICAgZGVmIHByb2Nlc3NTcGFjZUNoYXJhY3RlcnMoc2VsZiwgdG9rZW4pOgotICAg
ICAgICBzZWxmLm91dHB1dFRva2Vucy5hcHBlbmQoWyJDaGFyYWN0ZXIiLCB0b2tlblsiZGF0YSJd
XSkKLSAgICAgICAgc2VsZi5wcm9jZXNzU3BhY2VDaGFyYWN0ZXJzID0gc2VsZi5wcm9jZXNzQ2hh
cmFjdGVycwotCi0gICAgZGVmIHByb2Nlc3NDaGFyYWN0ZXJzKHNlbGYsIHRva2VuKToKLSAgICAg
ICAgc2VsZi5vdXRwdXRUb2tlbnMuYXBwZW5kKFsiQ2hhcmFjdGVyIiwgdG9rZW5bImRhdGEiXV0p
Ci0KLSAgICBkZWYgcHJvY2Vzc0VPRihzZWxmLCB0b2tlbik6Ci0gICAgICAgIHBhc3MKLQotICAg
IGRlZiBwcm9jZXNzUGFyc2VFcnJvcihzZWxmLCB0b2tlbik6Ci0gICAgICAgIHNlbGYub3V0cHV0
VG9rZW5zLmFwcGVuZChbIlBhcnNlRXJyb3IiLCB0b2tlblsiZGF0YSJdXSkKLQotCi1kZWYgY29u
Y2F0ZW5hdGVDaGFyYWN0ZXJUb2tlbnModG9rZW5zKToKLSAgICBvdXRwdXRUb2tlbnMgPSBbXQot
ICAgIGZvciB0b2tlbiBpbiB0b2tlbnM6Ci0gICAgICAgIGlmICJQYXJzZUVycm9yIiBub3QgaW4g
dG9rZW4gYW5kIHRva2VuWzBdID09ICJDaGFyYWN0ZXIiOgotICAgICAgICAgICAgaWYgKG91dHB1
dFRva2VucyBhbmQgIlBhcnNlRXJyb3IiIG5vdCBpbiBvdXRwdXRUb2tlbnNbLTFdIGFuZAotICAg
ICAgICAgICAgICAgICAgICBvdXRwdXRUb2tlbnNbLTFdWzBdID09ICJDaGFyYWN0ZXIiKToKLSAg
ICAgICAgICAgICAgICBvdXRwdXRUb2tlbnNbLTFdWzFdICs9IHRva2VuWzFdCi0gICAgICAgICAg
ICBlbHNlOgotICAgICAgICAgICAgICAgIG91dHB1dFRva2Vucy5hcHBlbmQodG9rZW4pCi0gICAg
ICAgIGVsc2U6Ci0gICAgICAgICAgICBvdXRwdXRUb2tlbnMuYXBwZW5kKHRva2VuKQotICAgIHJl
dHVybiBvdXRwdXRUb2tlbnMKLQotCi1kZWYgbm9ybWFsaXplVG9rZW5zKHRva2Vucyk6Ci0gICAg
IyBUT0RPOiBjb252ZXJ0IHRlc3RzIHRvIHJlZmxlY3QgYXJyYXlzCi0gICAgZm9yIGksIHRva2Vu
IGluIGVudW1lcmF0ZSh0b2tlbnMpOgotICAgICAgICBpZiB0b2tlblswXSA9PSAnUGFyc2VFcnJv
cic6Ci0gICAgICAgICAgICB0b2tlbnNbaV0gPSB0b2tlblswXQotICAgIHJldHVybiB0b2tlbnMK
LQotCi1kZWYgdG9rZW5zTWF0Y2goZXhwZWN0ZWRUb2tlbnMsIHJlY2VpdmVkVG9rZW5zLCBpZ25v
cmVFcnJvck9yZGVyLAotICAgICAgICAgICAgICAgIGlnbm9yZUVycm9ycz1GYWxzZSk6Ci0gICAg
IiIiVGVzdCB3aGV0aGVyIHRoZSB0ZXN0IGhhcyBwYXNzZWQgb3IgZmFpbGVkCi0KLSAgICBJZiB0
aGUgaWdub3JlRXJyb3JPcmRlciBmbGFnIGlzIHNldCB0byB0cnVlIHdlIGRvbid0IHRlc3QgdGhl
IHJlbGF0aXZlCi0gICAgcG9zaXRpb25zIG9mIHBhcnNlIGVycm9ycyBhbmQgbm9uIHBhcnNlIGVy
cm9ycwotICAgICIiIgotICAgIGNoZWNrU2VsZkNsb3NpbmcgPSBGYWxzZQotICAgIGZvciB0b2tl
biBpbiBleHBlY3RlZFRva2VuczoKLSAgICAgICAgaWYgKHRva2VuWzBdID09ICJTdGFydFRhZyIg
YW5kIGxlbih0b2tlbikgPT0gNAotICAgICAgICAgICAgICAgIG9yIHRva2VuWzBdID09ICJFbmRU
YWciIGFuZCBsZW4odG9rZW4pID09IDMpOgotICAgICAgICAgICAgY2hlY2tTZWxmQ2xvc2luZyA9
IFRydWUKLSAgICAgICAgICAgIGJyZWFrCi0KLSAgICBpZiBub3QgY2hlY2tTZWxmQ2xvc2luZzoK
LSAgICAgICAgZm9yIHRva2VuIGluIHJlY2VpdmVkVG9rZW5zOgotICAgICAgICAgICAgaWYgdG9r
ZW5bMF0gPT0gIlN0YXJ0VGFnIiBvciB0b2tlblswXSA9PSAiRW5kVGFnIjoKLSAgICAgICAgICAg
ICAgICB0b2tlbi5wb3AoKQotCi0gICAgaWYgbm90IGlnbm9yZUVycm9yT3JkZXIgYW5kIG5vdCBp
Z25vcmVFcnJvcnM6Ci0gICAgICAgIHJldHVybiBleHBlY3RlZFRva2VucyA9PSByZWNlaXZlZFRv
a2VucwotICAgIGVsc2U6Ci0gICAgICAgICMgU29ydCB0aGUgdG9rZW5zIGludG8gdHdvIGdyb3Vw
czsgbm9uLXBhcnNlIGVycm9ycyBhbmQgcGFyc2UgZXJyb3JzCi0gICAgICAgIHRva2VucyA9IHsi
ZXhwZWN0ZWQiOiBbW10sIFtdXSwgInJlY2VpdmVkIjogW1tdLCBbXV19Ci0gICAgICAgIGZvciB0
b2tlblR5cGUsIHRva2VuTGlzdCBpbiB6aXAobGlzdCh0b2tlbnMua2V5cygpKSwKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZXhwZWN0ZWRUb2tlbnMsIHJlY2VpdmVk
VG9rZW5zKSk6Ci0gICAgICAgICAgICBmb3IgdG9rZW4gaW4gdG9rZW5MaXN0OgotICAgICAgICAg
ICAgICAgIGlmIHRva2VuICE9ICJQYXJzZUVycm9yIjoKLSAgICAgICAgICAgICAgICAgICAgdG9r
ZW5zW3Rva2VuVHlwZV1bMF0uYXBwZW5kKHRva2VuKQotICAgICAgICAgICAgICAgIGVsc2U6Ci0g
ICAgICAgICAgICAgICAgICAgIGlmIG5vdCBpZ25vcmVFcnJvcnM6Ci0gICAgICAgICAgICAgICAg
ICAgICAgICB0b2tlbnNbdG9rZW5UeXBlXVsxXS5hcHBlbmQodG9rZW4pCi0gICAgICAgIHJldHVy
biB0b2tlbnNbImV4cGVjdGVkIl0gPT0gdG9rZW5zWyJyZWNlaXZlZCJdCi0KLQotZGVmIHVuZXNj
YXBlKHRlc3QpOgotICAgIGRlZiBkZWNvZGUoaW5wKToKLSAgICAgICAgcmV0dXJuIGlucC5lbmNv
ZGUoInV0Zi04IikuZGVjb2RlKCJ1bmljb2RlLWVzY2FwZSIpCi0KLSAgICB0ZXN0WyJpbnB1dCJd
ID0gZGVjb2RlKHRlc3RbImlucHV0Il0pCi0gICAgZm9yIHRva2VuIGluIHRlc3RbIm91dHB1dCJd
OgotICAgICAgICBpZiB0b2tlbiA9PSAiUGFyc2VFcnJvciI6Ci0gICAgICAgICAgICBjb250aW51
ZQotICAgICAgICBlbHNlOgotICAgICAgICAgICAgdG9rZW5bMV0gPSBkZWNvZGUodG9rZW5bMV0p
Ci0gICAgICAgICAgICBpZiBsZW4odG9rZW4pID4gMjoKLSAgICAgICAgICAgICAgICBmb3Iga2V5
LCB2YWx1ZSBpbiB0b2tlblsyXToKLSAgICAgICAgICAgICAgICAgICAgZGVsIHRva2VuWzJdW2tl
eV0KLSAgICAgICAgICAgICAgICAgICAgdG9rZW5bMl1bZGVjb2RlKGtleSldID0gZGVjb2RlKHZh
bHVlKQotICAgIHJldHVybiB0ZXN0Ci0KLQotZGVmIHJ1blRva2VuaXplclRlc3QodGVzdCk6Ci0g
ICAgd2FybmluZ3MucmVzZXR3YXJuaW5ncygpCi0gICAgd2FybmluZ3Muc2ltcGxlZmlsdGVyKCJl
cnJvciIpCi0KLSAgICBleHBlY3RlZCA9IGNvbmNhdGVuYXRlQ2hhcmFjdGVyVG9rZW5zKHRlc3Rb
J291dHB1dCddKQotICAgIGlmICdsYXN0U3RhcnRUYWcnIG5vdCBpbiB0ZXN0OgotICAgICAgICB0
ZXN0WydsYXN0U3RhcnRUYWcnXSA9IE5vbmUKLSAgICBwYXJzZXIgPSBUb2tlbml6ZXJUZXN0UGFy
c2VyKHRlc3RbJ2luaXRpYWxTdGF0ZSddLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgdGVzdFsnbGFzdFN0YXJ0VGFnJ10pCi0gICAgdG9rZW5zID0gcGFyc2VyLnBhcnNlKHRlc3Rb
J2lucHV0J10pCi0gICAgdG9rZW5zID0gY29uY2F0ZW5hdGVDaGFyYWN0ZXJUb2tlbnModG9rZW5z
KQotICAgIHJlY2VpdmVkID0gbm9ybWFsaXplVG9rZW5zKHRva2VucykKLSAgICBlcnJvck1zZyA9
ICJcbiIuam9pbihbIlxuXG5Jbml0aWFsIHN0YXRlOiIsCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgIHRlc3RbJ2luaXRpYWxTdGF0ZSddLAotICAgICAgICAgICAgICAgICAgICAgICAgICAiXG5J
bnB1dDoiLCB0ZXN0WydpbnB1dCddLAotICAgICAgICAgICAgICAgICAgICAgICAgICAiXG5FeHBl
Y3RlZDoiLCByZXByKGV4cGVjdGVkKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIlxucmVj
ZWl2ZWQ6IiwgcmVwcih0b2tlbnMpXSkKLSAgICBlcnJvck1zZyA9IGVycm9yTXNnCi0gICAgaWdu
b3JlRXJyb3JPcmRlciA9IHRlc3QuZ2V0KCdpZ25vcmVFcnJvck9yZGVyJywgRmFsc2UpCi0gICAg
YXNzZXJ0IHRva2Vuc01hdGNoKGV4cGVjdGVkLCByZWNlaXZlZCwgaWdub3JlRXJyb3JPcmRlciwg
VHJ1ZSksIGVycm9yTXNnCi0KLQotZGVmIF9kb0NhcGl0YWxpemUobWF0Y2gpOgotICAgIHJldHVy
biBtYXRjaC5ncm91cCgxKS51cHBlcigpCi0KLV9jYXBpdGFsaXplUmUgPSByZS5jb21waWxlKHIi
XFcrKFx3KSIpLnN1YgotCi0KLWRlZiBjYXBpdGFsaXplKHMpOgotICAgIHMgPSBzLmxvd2VyKCkK
LSAgICBzID0gX2NhcGl0YWxpemVSZShfZG9DYXBpdGFsaXplLCBzKQotICAgIHJldHVybiBzCi0K
LQotZGVmIHRlc3RUb2tlbml6ZXIoKToKLSAgICBmb3IgZmlsZW5hbWUgaW4gZ2V0X2RhdGFfZmls
ZXMoJ3Rva2VuaXplcicsICcqLnRlc3QnKToKLSAgICAgICAgd2l0aCBvcGVuKGZpbGVuYW1lKSBh
cyBmcDoKLSAgICAgICAgICAgIHRlc3RzID0ganNvbi5sb2FkKGZwKQotICAgICAgICAgICAgaWYg
J3Rlc3RzJyBpbiB0ZXN0czoKLSAgICAgICAgICAgICAgICBmb3IgaW5kZXgsIHRlc3QgaW4gZW51
bWVyYXRlKHRlc3RzWyd0ZXN0cyddKToKLSAgICAgICAgICAgICAgICAgICAgaWYgJ2luaXRpYWxT
dGF0ZXMnIG5vdCBpbiB0ZXN0OgotICAgICAgICAgICAgICAgICAgICAgICAgdGVzdFsiaW5pdGlh
bFN0YXRlcyJdID0gWyJEYXRhIHN0YXRlIl0KLSAgICAgICAgICAgICAgICAgICAgaWYgJ2RvdWJs
ZUVzY2FwZWQnIGluIHRlc3Q6Ci0gICAgICAgICAgICAgICAgICAgICAgICB0ZXN0ID0gdW5lc2Nh
cGUodGVzdCkKLSAgICAgICAgICAgICAgICAgICAgZm9yIGluaXRpYWxTdGF0ZSBpbiB0ZXN0WyJp
bml0aWFsU3RhdGVzIl06Ci0gICAgICAgICAgICAgICAgICAgICAgICB0ZXN0WyJpbml0aWFsU3Rh
dGUiXSA9IGNhcGl0YWxpemUoaW5pdGlhbFN0YXRlKQotICAgICAgICAgICAgICAgICAgICAgICAg
eWllbGQgcnVuVG9rZW5pemVyVGVzdCwgdGVzdApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9odG1sNWxpYi9odG1sNWxpYi90ZXN0
cy90ZXN0X3RyZWVhZGFwdGVycy5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvaHRtbDVsaWIvaHRtbDVsaWIvdGVzdHMvdGVzdF90cmVlYWRhcHRl
cnMucHkKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDVmMzhiNmMzM2QyNTk5MGI2MWU1
NGQ2NTViMzg5Y2EyN2EyYTIxOTAuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy9odG1sNWxpYi9odG1sNWxpYi90ZXN0cy90ZXN0X3RyZWVhZGFwdGVycy5weQorKysgL2Rl
di9udWxsCkBAIC0xLDQwICswLDAgQEAKLWZyb20gX19mdXR1cmVfXyBpbXBvcnQgYWJzb2x1dGVf
aW1wb3J0LCBkaXZpc2lvbiwgdW5pY29kZV9saXRlcmFscwotCi1mcm9tIC4gaW1wb3J0IHN1cHBv
cnQgICMgZmxha2U4OiBub3FhCi0KLWltcG9ydCBodG1sNWxpYgotZnJvbSBodG1sNWxpYi50cmVl
YWRhcHRlcnMgaW1wb3J0IHNheAotZnJvbSBodG1sNWxpYi50cmVld2Fsa2VycyBpbXBvcnQgZ2V0
VHJlZVdhbGtlcgotCi0KLWRlZiB0ZXN0X3RvX3NheCgpOgotICAgIGhhbmRsZXIgPSBzdXBwb3J0
LlRyYWNpbmdTYXhIYW5kbGVyKCkKLSAgICB0cmVlID0gaHRtbDVsaWIucGFyc2UoIiIiPGh0bWwg
eG1sOmxhbmc9ImVuIj4KLSAgICAgICAgPHRpdGxlPkRpcmVjdG9yeSBMaXN0aW5nPC90aXRsZT4K
LSAgICAgICAgPGEgaHJlZj0iLyI+PGIvPjwvcD4KLSAgICAiIiIsIHRyZWVidWlsZGVyPSJldHJl
ZSIpCi0gICAgd2Fsa2VyID0gZ2V0VHJlZVdhbGtlcigiZXRyZWUiKQotICAgIHNheC50b19zYXgo
d2Fsa2VyKHRyZWUpLCBoYW5kbGVyKQotICAgIGV4cGVjdGVkID0gWwotICAgICAgICAnc3RhcnRE
b2N1bWVudCcsCi0gICAgICAgICgnc3RhcnRFbGVtZW50TlMnLCAoJ2h0dHA6Ly93d3cudzMub3Jn
LzE5OTkveGh0bWwnLCAnaHRtbCcpLAotICAgICAgICAgICAgJ2h0bWwnLCB7KE5vbmUsICd4bWw6
bGFuZycpOiAnZW4nfSksCi0gICAgICAgICgnc3RhcnRFbGVtZW50TlMnLCAoJ2h0dHA6Ly93d3cu
dzMub3JnLzE5OTkveGh0bWwnLCAnaGVhZCcpLCAnaGVhZCcsIHt9KSwKLSAgICAgICAgKCdzdGFy
dEVsZW1lbnROUycsICgnaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCcsICd0aXRsZScpLCAn
dGl0bGUnLCB7fSksCi0gICAgICAgICgnY2hhcmFjdGVycycsICdEaXJlY3RvcnkgTGlzdGluZycp
LAotICAgICAgICAoJ2VuZEVsZW1lbnROUycsICgnaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRt
bCcsICd0aXRsZScpLCAndGl0bGUnKSwKLSAgICAgICAgKCdjaGFyYWN0ZXJzJywgJ1xuICAgICAg
ICAnKSwKLSAgICAgICAgKCdlbmRFbGVtZW50TlMnLCAoJ2h0dHA6Ly93d3cudzMub3JnLzE5OTkv
eGh0bWwnLCAnaGVhZCcpLCAnaGVhZCcpLAotICAgICAgICAoJ3N0YXJ0RWxlbWVudE5TJywgICgn
aHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCcsICdib2R5JyksICdib2R5Jywge30pLAotICAg
ICAgICAoJ3N0YXJ0RWxlbWVudE5TJywgKCdodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sJywg
J2EnKSwgJ2EnLCB7KE5vbmUsICdocmVmJyk6ICcvJ30pLAotICAgICAgICAoJ3N0YXJ0RWxlbWVu
dE5TJywgKCdodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sJywgJ2InKSwgJ2InLCB7fSksCi0g
ICAgICAgICgnc3RhcnRFbGVtZW50TlMnLCAoJ2h0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwn
LCAncCcpLCAncCcsIHt9KSwKLSAgICAgICAgKCdlbmRFbGVtZW50TlMnLCAoJ2h0dHA6Ly93d3cu
dzMub3JnLzE5OTkveGh0bWwnLCAncCcpLCAncCcpLAotICAgICAgICAoJ2NoYXJhY3RlcnMnLCAn
XG4gICAgJyksCi0gICAgICAgICgnZW5kRWxlbWVudE5TJywgKCdodHRwOi8vd3d3LnczLm9yZy8x
OTk5L3hodG1sJywgJ2InKSwgJ2InKSwKLSAgICAgICAgKCdlbmRFbGVtZW50TlMnLCAoJ2h0dHA6
Ly93d3cudzMub3JnLzE5OTkveGh0bWwnLCAnYScpLCAnYScpLAotICAgICAgICAoJ2VuZEVsZW1l
bnROUycsICgnaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCcsICdib2R5JyksICdib2R5Jyks
Ci0gICAgICAgICgnZW5kRWxlbWVudE5TJywgKCdodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1s
JywgJ2h0bWwnKSwgJ2h0bWwnKSwKLSAgICAgICAgJ2VuZERvY3VtZW50JywKLSAgICBdCi0gICAg
YXNzZXJ0IGV4cGVjdGVkID09IGhhbmRsZXIudmlzaXRlZApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9odG1sNWxpYi9odG1sNWxp
Yi90ZXN0cy90ZXN0X3RyZWV3YWxrZXJzLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy9odG1sNWxpYi9odG1sNWxpYi90ZXN0cy90ZXN0X3RyZWV3
YWxrZXJzLnB5CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiNzc1NjAzNWMyNjMxNWI0
NDU2OGIyZjU4MTQ2OWQ2MWU5MjM0MmYzLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvaHRtbDVsaWIvaHRtbDVsaWIvdGVzdHMvdGVzdF90cmVld2Fsa2Vycy5weQorKysg
L2Rldi9udWxsCkBAIC0xLDM1MyArMCwwIEBACi1mcm9tIF9fZnV0dXJlX18gaW1wb3J0IGFic29s
dXRlX2ltcG9ydCwgZGl2aXNpb24sIHVuaWNvZGVfbGl0ZXJhbHMKLQotaW1wb3J0IG9zCi1pbXBv
cnQgc3lzCi1pbXBvcnQgdW5pdHRlc3QKLWltcG9ydCB3YXJuaW5ncwotZnJvbSBkaWZmbGliIGlt
cG9ydCB1bmlmaWVkX2RpZmYKLQotdHJ5OgotICAgIHVuaXR0ZXN0LlRlc3RDYXNlLmFzc2VydEVx
dWFsCi1leGNlcHQgQXR0cmlidXRlRXJyb3I6Ci0gICAgdW5pdHRlc3QuVGVzdENhc2UuYXNzZXJ0
RXF1YWwgPSB1bml0dGVzdC5UZXN0Q2FzZS5hc3NlcnRFcXVhbHMKLQotZnJvbSAuc3VwcG9ydCBp
bXBvcnQgZ2V0X2RhdGFfZmlsZXMsIFRlc3REYXRhLCBjb252ZXJ0RXhwZWN0ZWQKLQotZnJvbSBo
dG1sNWxpYiBpbXBvcnQgaHRtbDVwYXJzZXIsIHRyZWV3YWxrZXJzLCB0cmVlYnVpbGRlcnMsIGNv
bnN0YW50cwotCi0KLWRlZiBQdWxsRE9NQWRhcHRlcihub2RlKToKLSAgICBmcm9tIHhtbC5kb20g
aW1wb3J0IE5vZGUKLSAgICBmcm9tIHhtbC5kb20ucHVsbGRvbSBpbXBvcnQgU1RBUlRfRUxFTUVO
VCwgRU5EX0VMRU1FTlQsIENPTU1FTlQsIENIQVJBQ1RFUlMKLQotICAgIGlmIG5vZGUubm9kZVR5
cGUgaW4gKE5vZGUuRE9DVU1FTlRfTk9ERSwgTm9kZS5ET0NVTUVOVF9GUkFHTUVOVF9OT0RFKToK
LSAgICAgICAgZm9yIGNoaWxkTm9kZSBpbiBub2RlLmNoaWxkTm9kZXM6Ci0gICAgICAgICAgICBm
b3IgZXZlbnQgaW4gUHVsbERPTUFkYXB0ZXIoY2hpbGROb2RlKToKLSAgICAgICAgICAgICAgICB5
aWVsZCBldmVudAotCi0gICAgZWxpZiBub2RlLm5vZGVUeXBlID09IE5vZGUuRE9DVU1FTlRfVFlQ
RV9OT0RFOgotICAgICAgICByYWlzZSBOb3RJbXBsZW1lbnRlZEVycm9yKCJET0NUWVBFIG5vZGVz
IGFyZSBub3Qgc3VwcG9ydGVkIGJ5IFB1bGxET00iKQotCi0gICAgZWxpZiBub2RlLm5vZGVUeXBl
ID09IE5vZGUuQ09NTUVOVF9OT0RFOgotICAgICAgICB5aWVsZCBDT01NRU5ULCBub2RlCi0KLSAg
ICBlbGlmIG5vZGUubm9kZVR5cGUgaW4gKE5vZGUuVEVYVF9OT0RFLCBOb2RlLkNEQVRBX1NFQ1RJ
T05fTk9ERSk6Ci0gICAgICAgIHlpZWxkIENIQVJBQ1RFUlMsIG5vZGUKLQotICAgIGVsaWYgbm9k
ZS5ub2RlVHlwZSA9PSBOb2RlLkVMRU1FTlRfTk9ERToKLSAgICAgICAgeWllbGQgU1RBUlRfRUxF
TUVOVCwgbm9kZQotICAgICAgICBmb3IgY2hpbGROb2RlIGluIG5vZGUuY2hpbGROb2RlczoKLSAg
ICAgICAgICAgIGZvciBldmVudCBpbiBQdWxsRE9NQWRhcHRlcihjaGlsZE5vZGUpOgotICAgICAg
ICAgICAgICAgIHlpZWxkIGV2ZW50Ci0gICAgICAgIHlpZWxkIEVORF9FTEVNRU5ULCBub2RlCi0K
LSAgICBlbHNlOgotICAgICAgICByYWlzZSBOb3RJbXBsZW1lbnRlZEVycm9yKCJOb2RlIHR5cGUg
bm90IHN1cHBvcnRlZDogIiArIHN0cihub2RlLm5vZGVUeXBlKSkKLQotdHJlZVR5cGVzID0gewot
ICAgICJET00iOiB7ImJ1aWxkZXIiOiB0cmVlYnVpbGRlcnMuZ2V0VHJlZUJ1aWxkZXIoImRvbSIp
LAotICAgICAgICAgICAgIndhbGtlciI6IHRyZWV3YWxrZXJzLmdldFRyZWVXYWxrZXIoImRvbSIp
fSwKLSAgICAiUHVsbERPTSI6IHsiYnVpbGRlciI6IHRyZWVidWlsZGVycy5nZXRUcmVlQnVpbGRl
cigiZG9tIiksCi0gICAgICAgICAgICAgICAgImFkYXB0ZXIiOiBQdWxsRE9NQWRhcHRlciwKLSAg
ICAgICAgICAgICAgICAid2Fsa2VyIjogdHJlZXdhbGtlcnMuZ2V0VHJlZVdhbGtlcigicHVsbGRv
bSIpfSwKLX0KLQotIyBUcnkgd2hhdGV2ZXIgZXRyZWUgaW1wbGVtZW50YXRpb25zIGFyZSBhdmFp
bGFibGUgZnJvbSBhIGxpc3QgdGhhdCBhcmUKLSMic3VwcG9zZWQiIHRvIHdvcmsKLXRyeToKLSAg
ICBpbXBvcnQgeG1sLmV0cmVlLkVsZW1lbnRUcmVlIGFzIEVsZW1lbnRUcmVlCi1leGNlcHQgSW1w
b3J0RXJyb3I6Ci0gICAgcGFzcwotZWxzZToKLSAgICB0cmVlVHlwZXNbJ0VsZW1lbnRUcmVlJ10g
PSBcCi0gICAgICAgIHsiYnVpbGRlciI6IHRyZWVidWlsZGVycy5nZXRUcmVlQnVpbGRlcigiZXRy
ZWUiLCBFbGVtZW50VHJlZSksCi0gICAgICAgICAid2Fsa2VyIjogdHJlZXdhbGtlcnMuZ2V0VHJl
ZVdhbGtlcigiZXRyZWUiLCBFbGVtZW50VHJlZSl9Ci0KLXRyeToKLSAgICBpbXBvcnQgeG1sLmV0
cmVlLmNFbGVtZW50VHJlZSBhcyBFbGVtZW50VHJlZQotZXhjZXB0IEltcG9ydEVycm9yOgotICAg
IHBhc3MKLWVsc2U6Ci0gICAgdHJlZVR5cGVzWydjRWxlbWVudFRyZWUnXSA9IFwKLSAgICAgICAg
eyJidWlsZGVyIjogdHJlZWJ1aWxkZXJzLmdldFRyZWVCdWlsZGVyKCJldHJlZSIsIEVsZW1lbnRU
cmVlKSwKLSAgICAgICAgICJ3YWxrZXIiOiB0cmVld2Fsa2Vycy5nZXRUcmVlV2Fsa2VyKCJldHJl
ZSIsIEVsZW1lbnRUcmVlKX0KLQotCi10cnk6Ci0gICAgaW1wb3J0IGx4bWwuZXRyZWUgYXMgRWxl
bWVudFRyZWUgICMgZmxha2U4OiBub3FhCi1leGNlcHQgSW1wb3J0RXJyb3I6Ci0gICAgcGFzcwot
ZWxzZToKLSAgICB0cmVlVHlwZXNbJ2x4bWxfbmF0aXZlJ10gPSBcCi0gICAgICAgIHsiYnVpbGRl
ciI6IHRyZWVidWlsZGVycy5nZXRUcmVlQnVpbGRlcigibHhtbCIpLAotICAgICAgICAgIndhbGtl
ciI6IHRyZWV3YWxrZXJzLmdldFRyZWVXYWxrZXIoImx4bWwiKX0KLQotCi10cnk6Ci0gICAgZnJv
bSBnZW5zaGkuY29yZSBpbXBvcnQgUU5hbWUsIEF0dHJzCi0gICAgZnJvbSBnZW5zaGkuY29yZSBp
bXBvcnQgU1RBUlQsIEVORCwgVEVYVCwgQ09NTUVOVCwgRE9DVFlQRQotZXhjZXB0IEltcG9ydEVy
cm9yOgotICAgIHBhc3MKLWVsc2U6Ci0gICAgZGVmIEdlbnNoaUFkYXB0ZXIodHJlZSk6Ci0gICAg
ICAgIHRleHQgPSBOb25lCi0gICAgICAgIGZvciB0b2tlbiBpbiB0cmVld2Fsa2Vycy5nZXRUcmVl
V2Fsa2VyKCJkb20iKSh0cmVlKToKLSAgICAgICAgICAgIHR5cGUgPSB0b2tlblsidHlwZSJdCi0g
ICAgICAgICAgICBpZiB0eXBlIGluICgiQ2hhcmFjdGVycyIsICJTcGFjZUNoYXJhY3RlcnMiKToK
LSAgICAgICAgICAgICAgICBpZiB0ZXh0IGlzIE5vbmU6Ci0gICAgICAgICAgICAgICAgICAgIHRl
eHQgPSB0b2tlblsiZGF0YSJdCi0gICAgICAgICAgICAgICAgZWxzZToKLSAgICAgICAgICAgICAg
ICAgICAgdGV4dCArPSB0b2tlblsiZGF0YSJdCi0gICAgICAgICAgICBlbGlmIHRleHQgaXMgbm90
IE5vbmU6Ci0gICAgICAgICAgICAgICAgeWllbGQgVEVYVCwgdGV4dCwgKE5vbmUsIC0xLCAtMSkK
LSAgICAgICAgICAgICAgICB0ZXh0ID0gTm9uZQotCi0gICAgICAgICAgICBpZiB0eXBlIGluICgi
U3RhcnRUYWciLCAiRW1wdHlUYWciKToKLSAgICAgICAgICAgICAgICBpZiB0b2tlblsibmFtZXNw
YWNlIl06Ci0gICAgICAgICAgICAgICAgICAgIG5hbWUgPSAieyVzfSVzIiAlICh0b2tlblsibmFt
ZXNwYWNlIl0sIHRva2VuWyJuYW1lIl0pCi0gICAgICAgICAgICAgICAgZWxzZToKLSAgICAgICAg
ICAgICAgICAgICAgbmFtZSA9IHRva2VuWyJuYW1lIl0KLSAgICAgICAgICAgICAgICBhdHRycyA9
IEF0dHJzKFsoUU5hbWUoInslc30lcyIgJSBhdHRyIGlmIGF0dHJbMF0gaXMgbm90IE5vbmUgZWxz
ZSBhdHRyWzFdKSwgdmFsdWUpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yIGF0
dHIsIHZhbHVlIGluIHRva2VuWyJkYXRhIl0uaXRlbXMoKV0pCi0gICAgICAgICAgICAgICAgeWll
bGQgKFNUQVJULCAoUU5hbWUobmFtZSksIGF0dHJzKSwgKE5vbmUsIC0xLCAtMSkpCi0gICAgICAg
ICAgICAgICAgaWYgdHlwZSA9PSAiRW1wdHlUYWciOgotICAgICAgICAgICAgICAgICAgICB0eXBl
ID0gIkVuZFRhZyIKLQotICAgICAgICAgICAgaWYgdHlwZSA9PSAiRW5kVGFnIjoKLSAgICAgICAg
ICAgICAgICBpZiB0b2tlblsibmFtZXNwYWNlIl06Ci0gICAgICAgICAgICAgICAgICAgIG5hbWUg
PSAieyVzfSVzIiAlICh0b2tlblsibmFtZXNwYWNlIl0sIHRva2VuWyJuYW1lIl0pCi0gICAgICAg
ICAgICAgICAgZWxzZToKLSAgICAgICAgICAgICAgICAgICAgbmFtZSA9IHRva2VuWyJuYW1lIl0K
LQotICAgICAgICAgICAgICAgIHlpZWxkIEVORCwgUU5hbWUobmFtZSksIChOb25lLCAtMSwgLTEp
Ci0KLSAgICAgICAgICAgIGVsaWYgdHlwZSA9PSAiQ29tbWVudCI6Ci0gICAgICAgICAgICAgICAg
eWllbGQgQ09NTUVOVCwgdG9rZW5bImRhdGEiXSwgKE5vbmUsIC0xLCAtMSkKLQotICAgICAgICAg
ICAgZWxpZiB0eXBlID09ICJEb2N0eXBlIjoKLSAgICAgICAgICAgICAgICB5aWVsZCBET0NUWVBF
LCAodG9rZW5bIm5hbWUiXSwgdG9rZW5bInB1YmxpY0lkIl0sCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHRva2VuWyJzeXN0ZW1JZCJdKSwgKE5vbmUsIC0xLCAtMSkKLQotICAgICAg
ICAgICAgZWxzZToKLSAgICAgICAgICAgICAgICBwYXNzICAjIEZJWE1FOiBXaGF0IHRvIGRvPwot
Ci0gICAgICAgIGlmIHRleHQgaXMgbm90IE5vbmU6Ci0gICAgICAgICAgICB5aWVsZCBURVhULCB0
ZXh0LCAoTm9uZSwgLTEsIC0xKQotCi0gICAgdHJlZVR5cGVzWyJnZW5zaGkiXSA9IFwKLSAgICAg
ICAgeyJidWlsZGVyIjogdHJlZWJ1aWxkZXJzLmdldFRyZWVCdWlsZGVyKCJkb20iKSwKLSAgICAg
ICAgICJhZGFwdGVyIjogR2Vuc2hpQWRhcHRlciwKLSAgICAgICAgICJ3YWxrZXIiOiB0cmVld2Fs
a2Vycy5nZXRUcmVlV2Fsa2VyKCJnZW5zaGkiKX0KLQotCi1kZWYgY29uY2F0ZW5hdGVDaGFyYWN0
ZXJUb2tlbnModG9rZW5zKToKLSAgICBjaGFyYWN0ZXJzVG9rZW4gPSBOb25lCi0gICAgZm9yIHRv
a2VuIGluIHRva2VuczoKLSAgICAgICAgdHlwZSA9IHRva2VuWyJ0eXBlIl0KLSAgICAgICAgaWYg
dHlwZSBpbiAoIkNoYXJhY3RlcnMiLCAiU3BhY2VDaGFyYWN0ZXJzIik6Ci0gICAgICAgICAgICBp
ZiBjaGFyYWN0ZXJzVG9rZW4gaXMgTm9uZToKLSAgICAgICAgICAgICAgICBjaGFyYWN0ZXJzVG9r
ZW4gPSB7InR5cGUiOiAiQ2hhcmFjdGVycyIsICJkYXRhIjogdG9rZW5bImRhdGEiXX0KLSAgICAg
ICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAgICAgY2hhcmFjdGVyc1Rva2VuWyJkYXRhIl0gKz0g
dG9rZW5bImRhdGEiXQotICAgICAgICBlbHNlOgotICAgICAgICAgICAgaWYgY2hhcmFjdGVyc1Rv
a2VuIGlzIG5vdCBOb25lOgotICAgICAgICAgICAgICAgIHlpZWxkIGNoYXJhY3RlcnNUb2tlbgot
ICAgICAgICAgICAgICAgIGNoYXJhY3RlcnNUb2tlbiA9IE5vbmUKLSAgICAgICAgICAgIHlpZWxk
IHRva2VuCi0gICAgaWYgY2hhcmFjdGVyc1Rva2VuIGlzIG5vdCBOb25lOgotICAgICAgICB5aWVs
ZCBjaGFyYWN0ZXJzVG9rZW4KLQotCi1kZWYgY29udmVydFRva2Vucyh0b2tlbnMpOgotICAgIG91
dHB1dCA9IFtdCi0gICAgaW5kZW50ID0gMAotICAgIGZvciB0b2tlbiBpbiBjb25jYXRlbmF0ZUNo
YXJhY3RlclRva2Vucyh0b2tlbnMpOgotICAgICAgICB0eXBlID0gdG9rZW5bInR5cGUiXQotICAg
ICAgICBpZiB0eXBlIGluICgiU3RhcnRUYWciLCAiRW1wdHlUYWciKToKLSAgICAgICAgICAgIGlm
ICh0b2tlblsibmFtZXNwYWNlIl0gYW5kCi0gICAgICAgICAgICAgICAgICAgIHRva2VuWyJuYW1l
c3BhY2UiXSAhPSBjb25zdGFudHMubmFtZXNwYWNlc1siaHRtbCJdKToKLSAgICAgICAgICAgICAg
ICBpZiB0b2tlblsibmFtZXNwYWNlIl0gaW4gY29uc3RhbnRzLnByZWZpeGVzOgotICAgICAgICAg
ICAgICAgICAgICBuYW1lID0gY29uc3RhbnRzLnByZWZpeGVzW3Rva2VuWyJuYW1lc3BhY2UiXV0K
LSAgICAgICAgICAgICAgICBlbHNlOgotICAgICAgICAgICAgICAgICAgICBuYW1lID0gdG9rZW5b
Im5hbWVzcGFjZSJdCi0gICAgICAgICAgICAgICAgbmFtZSArPSAiICIgKyB0b2tlblsibmFtZSJd
Ci0gICAgICAgICAgICBlbHNlOgotICAgICAgICAgICAgICAgIG5hbWUgPSB0b2tlblsibmFtZSJd
Ci0gICAgICAgICAgICBvdXRwdXQuYXBwZW5kKCIlczwlcz4iICUgKCIgIiAqIGluZGVudCwgbmFt
ZSkpCi0gICAgICAgICAgICBpbmRlbnQgKz0gMgotICAgICAgICAgICAgYXR0cnMgPSB0b2tlblsi
ZGF0YSJdCi0gICAgICAgICAgICBpZiBhdHRyczoKLSAgICAgICAgICAgICAgICAjIFRPRE86IFJl
bW92ZSB0aGlzIGlmIHN0YXRlbWVudCwgYXR0cnMgc2hvdWxkIGFsd2F5cyBleGlzdAotICAgICAg
ICAgICAgICAgIGZvciAobmFtZXNwYWNlLCBuYW1lKSwgdmFsdWUgaW4gc29ydGVkKGF0dHJzLml0
ZW1zKCkpOgotICAgICAgICAgICAgICAgICAgICBpZiBuYW1lc3BhY2U6Ci0gICAgICAgICAgICAg
ICAgICAgICAgICBpZiBuYW1lc3BhY2UgaW4gY29uc3RhbnRzLnByZWZpeGVzOgotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIG91dHB1dG5hbWUgPSBjb25zdGFudHMucHJlZml4ZXNbbmFtZXNw
YWNlXQotICAgICAgICAgICAgICAgICAgICAgICAgZWxzZToKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBvdXRwdXRuYW1lID0gbmFtZXNwYWNlCi0gICAgICAgICAgICAgICAgICAgICAgICBv
dXRwdXRuYW1lICs9ICIgIiArIG5hbWUKLSAgICAgICAgICAgICAgICAgICAgZWxzZToKLSAgICAg
ICAgICAgICAgICAgICAgICAgIG91dHB1dG5hbWUgPSBuYW1lCi0gICAgICAgICAgICAgICAgICAg
IG91dHB1dC5hcHBlbmQoIiVzJXM9XCIlc1wiIiAlICgiICIgKiBpbmRlbnQsIG91dHB1dG5hbWUs
IHZhbHVlKSkKLSAgICAgICAgICAgIGlmIHR5cGUgPT0gIkVtcHR5VGFnIjoKLSAgICAgICAgICAg
ICAgICBpbmRlbnQgLT0gMgotICAgICAgICBlbGlmIHR5cGUgPT0gIkVuZFRhZyI6Ci0gICAgICAg
ICAgICBpbmRlbnQgLT0gMgotICAgICAgICBlbGlmIHR5cGUgPT0gIkNvbW1lbnQiOgotICAgICAg
ICAgICAgb3V0cHV0LmFwcGVuZCgiJXM8IS0tICVzIC0tPiIgJSAoIiAiICogaW5kZW50LCB0b2tl
blsiZGF0YSJdKSkKLSAgICAgICAgZWxpZiB0eXBlID09ICJEb2N0eXBlIjoKLSAgICAgICAgICAg
IGlmIHRva2VuWyJuYW1lIl06Ci0gICAgICAgICAgICAgICAgaWYgdG9rZW5bInB1YmxpY0lkIl06
Ci0gICAgICAgICAgICAgICAgICAgIG91dHB1dC5hcHBlbmQoIiIiJXM8IURPQ1RZUEUgJXMgIiVz
IiAiJXMiPiIiIiAlCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCIgIiAqIGlu
ZGVudCwgdG9rZW5bIm5hbWUiXSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
dG9rZW5bInB1YmxpY0lkIl0sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRv
a2VuWyJzeXN0ZW1JZCJdIGFuZCB0b2tlblsic3lzdGVtSWQiXSBvciAiIikpCi0gICAgICAgICAg
ICAgICAgZWxpZiB0b2tlblsic3lzdGVtSWQiXToKLSAgICAgICAgICAgICAgICAgICAgb3V0cHV0
LmFwcGVuZCgiIiIlczwhRE9DVFlQRSAlcyAiIiAiJXMiPiIiIiAlCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgKCIgIiAqIGluZGVudCwgdG9rZW5bIm5hbWUiXSwKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgdG9rZW5bInN5c3RlbUlkIl0pKQotICAgICAgICAg
ICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAgICAgICAgIG91dHB1dC5hcHBlbmQoIiVzPCFET0NU
WVBFICVzPiIgJSAoIiAiICogaW5kZW50LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHRva2VuWyJuYW1lIl0pKQotICAgICAgICAgICAgZWxz
ZToKLSAgICAgICAgICAgICAgICBvdXRwdXQuYXBwZW5kKCIlczwhRE9DVFlQRSA+IiAlICgiICIg
KiBpbmRlbnQsKSkKLSAgICAgICAgZWxpZiB0eXBlIGluICgiQ2hhcmFjdGVycyIsICJTcGFjZUNo
YXJhY3RlcnMiKToKLSAgICAgICAgICAgIG91dHB1dC5hcHBlbmQoIiVzXCIlc1wiIiAlICgiICIg
KiBpbmRlbnQsIHRva2VuWyJkYXRhIl0pKQotICAgICAgICBlbHNlOgotICAgICAgICAgICAgcGFz
cyAgIyBUT0RPOiB3aGF0IHRvIGRvIHdpdGggZXJyb3JzPwotICAgIHJldHVybiAiXG4iLmpvaW4o
b3V0cHV0KQotCi1pbXBvcnQgcmUKLWF0dHJsaXN0ID0gcmUuY29tcGlsZShyIl4oXHMrKVx3Kz0u
KihcblwxXHcrPS4qKSsiLCByZS5NKQotCi0KLWRlZiBzb3J0YXR0cnMoeCk6Ci0gICAgbGluZXMg
PSB4Lmdyb3VwKDApLnNwbGl0KCJcbiIpCi0gICAgbGluZXMuc29ydCgpCi0gICAgcmV0dXJuICJc
biIuam9pbihsaW5lcykKLQotCi1jbGFzcyBUb2tlblRlc3RDYXNlKHVuaXR0ZXN0LlRlc3RDYXNl
KToKLSAgICBkZWYgdGVzdF9hbGxfdG9rZW5zKHNlbGYpOgotICAgICAgICBleHBlY3RlZCA9IFsK
LSAgICAgICAgICAgIHsnZGF0YSc6IHt9LCAndHlwZSc6ICdTdGFydFRhZycsICduYW1lc3BhY2Un
OiAnaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCcsICduYW1lJzogJ2h0bWwnfSwKLSAgICAg
ICAgICAgIHsnZGF0YSc6IHt9LCAndHlwZSc6ICdTdGFydFRhZycsICduYW1lc3BhY2UnOiAnaHR0
cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCcsICduYW1lJzogJ2hlYWQnfSwKLSAgICAgICAgICAg
IHsnZGF0YSc6IHt9LCAndHlwZSc6ICdFbmRUYWcnLCAnbmFtZXNwYWNlJzogJ2h0dHA6Ly93d3cu
dzMub3JnLzE5OTkveGh0bWwnLCAnbmFtZSc6ICdoZWFkJ30sCi0gICAgICAgICAgICB7J2RhdGEn
OiB7fSwgJ3R5cGUnOiAnU3RhcnRUYWcnLCAnbmFtZXNwYWNlJzogJ2h0dHA6Ly93d3cudzMub3Jn
LzE5OTkveGh0bWwnLCAnbmFtZSc6ICdib2R5J30sCi0gICAgICAgICAgICB7J2RhdGEnOiAnYScs
ICd0eXBlJzogJ0NoYXJhY3RlcnMnfSwKLSAgICAgICAgICAgIHsnZGF0YSc6IHt9LCAndHlwZSc6
ICdTdGFydFRhZycsICduYW1lc3BhY2UnOiAnaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCcs
ICduYW1lJzogJ2Rpdid9LAotICAgICAgICAgICAgeydkYXRhJzogJ2InLCAndHlwZSc6ICdDaGFy
YWN0ZXJzJ30sCi0gICAgICAgICAgICB7J2RhdGEnOiB7fSwgJ3R5cGUnOiAnRW5kVGFnJywgJ25h
bWVzcGFjZSc6ICdodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sJywgJ25hbWUnOiAnZGl2J30s
Ci0gICAgICAgICAgICB7J2RhdGEnOiAnYycsICd0eXBlJzogJ0NoYXJhY3RlcnMnfSwKLSAgICAg
ICAgICAgIHsnZGF0YSc6IHt9LCAndHlwZSc6ICdFbmRUYWcnLCAnbmFtZXNwYWNlJzogJ2h0dHA6
Ly93d3cudzMub3JnLzE5OTkveGh0bWwnLCAnbmFtZSc6ICdib2R5J30sCi0gICAgICAgICAgICB7
J2RhdGEnOiB7fSwgJ3R5cGUnOiAnRW5kVGFnJywgJ25hbWVzcGFjZSc6ICdodHRwOi8vd3d3Lncz
Lm9yZy8xOTk5L3hodG1sJywgJ25hbWUnOiAnaHRtbCd9Ci0gICAgICAgIF0KLSAgICAgICAgZm9y
IHRyZWVOYW1lLCB0cmVlQ2xzIGluIHRyZWVUeXBlcy5pdGVtcygpOgotICAgICAgICAgICAgcCA9
IGh0bWw1cGFyc2VyLkhUTUxQYXJzZXIodHJlZT10cmVlQ2xzWyJidWlsZGVyIl0pCi0gICAgICAg
ICAgICBkb2N1bWVudCA9IHAucGFyc2UoIjxodG1sPjxoZWFkPjwvaGVhZD48Ym9keT5hPGRpdj5i
PC9kaXY+YzwvYm9keT48L2h0bWw+IikKLSAgICAgICAgICAgIGRvY3VtZW50ID0gdHJlZUNscy5n
ZXQoImFkYXB0ZXIiLCBsYW1iZGEgeDogeCkoZG9jdW1lbnQpCi0gICAgICAgICAgICBvdXRwdXQg
PSB0cmVlQ2xzWyJ3YWxrZXIiXShkb2N1bWVudCkKLSAgICAgICAgICAgIGZvciBleHBlY3RlZFRv
a2VuLCBvdXRwdXRUb2tlbiBpbiB6aXAoZXhwZWN0ZWQsIG91dHB1dCk6Ci0gICAgICAgICAgICAg
ICAgc2VsZi5hc3NlcnRFcXVhbChleHBlY3RlZFRva2VuLCBvdXRwdXRUb2tlbikKLQotCi1kZWYg
cnVuVHJlZXdhbGtlclRlc3QoaW5uZXJIVE1MLCBpbnB1dCwgZXhwZWN0ZWQsIGVycm9ycywgdHJl
ZUNsYXNzKToKLSAgICB3YXJuaW5ncy5yZXNldHdhcm5pbmdzKCkKLSAgICB3YXJuaW5ncy5zaW1w
bGVmaWx0ZXIoImVycm9yIikKLSAgICB0cnk6Ci0gICAgICAgIHAgPSBodG1sNXBhcnNlci5IVE1M
UGFyc2VyKHRyZWU9dHJlZUNsYXNzWyJidWlsZGVyIl0pCi0gICAgICAgIGlmIGlubmVySFRNTDoK
LSAgICAgICAgICAgIGRvY3VtZW50ID0gcC5wYXJzZUZyYWdtZW50KGlucHV0LCBpbm5lckhUTUwp
Ci0gICAgICAgIGVsc2U6Ci0gICAgICAgICAgICBkb2N1bWVudCA9IHAucGFyc2UoaW5wdXQpCi0g
ICAgZXhjZXB0IGNvbnN0YW50cy5EYXRhTG9zc1dhcm5pbmc6Ci0gICAgICAgICMgSWdub3JlIHRl
c3RjYXNlcyB3ZSBrbm93IHdlIGRvbid0IHBhc3MKLSAgICAgICAgcmV0dXJuCi0KLSAgICBkb2N1
bWVudCA9IHRyZWVDbGFzcy5nZXQoImFkYXB0ZXIiLCBsYW1iZGEgeDogeCkoZG9jdW1lbnQpCi0g
ICAgdHJ5OgotICAgICAgICBvdXRwdXQgPSBjb252ZXJ0VG9rZW5zKHRyZWVDbGFzc1sid2Fsa2Vy
Il0oZG9jdW1lbnQpKQotICAgICAgICBvdXRwdXQgPSBhdHRybGlzdC5zdWIoc29ydGF0dHJzLCBv
dXRwdXQpCi0gICAgICAgIGV4cGVjdGVkID0gYXR0cmxpc3Quc3ViKHNvcnRhdHRycywgY29udmVy
dEV4cGVjdGVkKGV4cGVjdGVkKSkKLSAgICAgICAgZGlmZiA9ICIiLmpvaW4odW5pZmllZF9kaWZm
KFtsaW5lICsgIlxuIiBmb3IgbGluZSBpbiBleHBlY3RlZC5zcGxpdGxpbmVzKCldLAotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2xpbmUgKyAiXG4iIGZvciBsaW5lIGluIG91
dHB1dC5zcGxpdGxpbmVzKCldLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IkV4cGVjdGVkIiwgIlJlY2VpdmVkIikpCi0gICAgICAgIGFzc2VydCBleHBlY3RlZCA9PSBvdXRw
dXQsICJcbiIuam9pbihbCi0gICAgICAgICAgICAiIiwgIklucHV0OiIsIGlucHV0LAotICAgICAg
ICAgICAgICAgICIiLCAiRXhwZWN0ZWQ6IiwgZXhwZWN0ZWQsCi0gICAgICAgICAgICAgICAgIiIs
ICJSZWNlaXZlZDoiLCBvdXRwdXQsCi0gICAgICAgICAgICAgICAgIiIsICJEaWZmOiIsIGRpZmYs
Ci0gICAgICAgIF0pCi0gICAgZXhjZXB0IE5vdEltcGxlbWVudGVkRXJyb3I6Ci0gICAgICAgIHBh
c3MgICMgQW1uZXN0eSBmb3IgdGhvc2UgdGhhdCBjb25mZXNzLi4uCi0KLQotZGVmIHRlc3RfdHJl
ZXdhbGtlcigpOgotICAgIHN5cy5zdGRvdXQud3JpdGUoJ1Rlc3RpbmcgdHJlZSB3YWxrZXJzICcg
KyAiICIuam9pbihsaXN0KHRyZWVUeXBlcy5rZXlzKCkpKSArICJcbiIpCi0KLSAgICBmb3IgdHJl
ZU5hbWUsIHRyZWVDbHMgaW4gdHJlZVR5cGVzLml0ZW1zKCk6Ci0gICAgICAgIGZpbGVzID0gZ2V0
X2RhdGFfZmlsZXMoJ3RyZWUtY29uc3RydWN0aW9uJykKLSAgICAgICAgZm9yIGZpbGVuYW1lIGlu
IGZpbGVzOgotICAgICAgICAgICAgdGVzdE5hbWUgPSBvcy5wYXRoLmJhc2VuYW1lKGZpbGVuYW1l
KS5yZXBsYWNlKCIuZGF0IiwgIiIpCi0gICAgICAgICAgICBpZiB0ZXN0TmFtZSBpbiAoInRlbXBs
YXRlIiwpOgotICAgICAgICAgICAgICAgIGNvbnRpbnVlCi0KLSAgICAgICAgICAgIHRlc3RzID0g
VGVzdERhdGEoZmlsZW5hbWUsICJkYXRhIikKLQotICAgICAgICAgICAgZm9yIGluZGV4LCB0ZXN0
IGluIGVudW1lcmF0ZSh0ZXN0cyk6Ci0gICAgICAgICAgICAgICAgKGlucHV0LCBlcnJvcnMsCi0g
ICAgICAgICAgICAgICAgIGlubmVySFRNTCwgZXhwZWN0ZWQpID0gW3Rlc3Rba2V5XSBmb3Iga2V5
IGluICgiZGF0YSIsICJlcnJvcnMiLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImRvY3VtZW50LWZyYWdtZW50IiwKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICJkb2N1bWVudCIpXQotICAgICAgICAgICAgICAgIGVycm9ycyA9IGVycm9ycy5zcGxpdCgiXG4i
KQotICAgICAgICAgICAgICAgIHlpZWxkIHJ1blRyZWV3YWxrZXJUZXN0LCBpbm5lckhUTUwsIGlu
cHV0LCBleHBlY3RlZCwgZXJyb3JzLCB0cmVlQ2xzCi0KLQotZGVmIHNldF9hdHRyaWJ1dGVfb25f
Zmlyc3RfY2hpbGQoZG9jZnJhZywgbmFtZSwgdmFsdWUsIHRyZWVOYW1lKToKLSAgICAiIiJuYWl2
ZWx5IHNldHMgYW4gYXR0cmlidXRlIG9uIHRoZSBmaXJzdCBjaGlsZCBvZiB0aGUgZG9jdW1lbnQK
LSAgICBmcmFnbWVudCBwYXNzZWQgaW4iIiIKLSAgICBzZXR0ZXIgPSB7J0VsZW1lbnRUcmVlJzog
bGFtYmRhIGQ6IGRbMF0uc2V0LAotICAgICAgICAgICAgICAnRE9NJzogbGFtYmRhIGQ6IGQuZmly
c3RDaGlsZC5zZXRBdHRyaWJ1dGV9Ci0gICAgc2V0dGVyWydjRWxlbWVudFRyZWUnXSA9IHNldHRl
clsnRWxlbWVudFRyZWUnXQotICAgIHRyeToKLSAgICAgICAgc2V0dGVyLmdldCh0cmVlTmFtZSwg
c2V0dGVyWydET00nXSkoZG9jZnJhZykobmFtZSwgdmFsdWUpCi0gICAgZXhjZXB0IEF0dHJpYnV0
ZUVycm9yOgotICAgICAgICBzZXR0ZXJbJ0VsZW1lbnRUcmVlJ10oZG9jZnJhZykobmFtZSwgdmFs
dWUpCi0KLQotZGVmIHJ1blRyZWV3YWxrZXJFZGl0VGVzdChpbnRleHQsIGV4cGVjdGVkLCBhdHRy
c190b19hZGQsIHRyZWUpOgotICAgICIiInRlc3RzIHdoYXQgaGFwcGVucyB3aGVuIHdlIGFkZCBh
dHRyaWJ1dGVzIHRvIHRoZSBpbnRleHQiIiIKLSAgICB0cmVlTmFtZSwgdHJlZUNsYXNzID0gdHJl
ZQotICAgIHBhcnNlciA9IGh0bWw1cGFyc2VyLkhUTUxQYXJzZXIodHJlZT10cmVlQ2xhc3NbImJ1
aWxkZXIiXSkKLSAgICBkb2N1bWVudCA9IHBhcnNlci5wYXJzZUZyYWdtZW50KGludGV4dCkKLSAg
ICBmb3Igbm9tLCB2YWwgaW4gYXR0cnNfdG9fYWRkOgotICAgICAgICBzZXRfYXR0cmlidXRlX29u
X2ZpcnN0X2NoaWxkKGRvY3VtZW50LCBub20sIHZhbCwgdHJlZU5hbWUpCi0KLSAgICBkb2N1bWVu
dCA9IHRyZWVDbGFzcy5nZXQoImFkYXB0ZXIiLCBsYW1iZGEgeDogeCkoZG9jdW1lbnQpCi0gICAg
b3V0cHV0ID0gY29udmVydFRva2Vucyh0cmVlQ2xhc3NbIndhbGtlciJdKGRvY3VtZW50KSkKLSAg
ICBvdXRwdXQgPSBhdHRybGlzdC5zdWIoc29ydGF0dHJzLCBvdXRwdXQpCi0gICAgaWYgbm90IG91
dHB1dCBpbiBleHBlY3RlZDoKLSAgICAgICAgcmFpc2UgQXNzZXJ0aW9uRXJyb3IoIlRyZWV3YWxr
ZXJFZGl0VGVzdDogJXNcbkV4cGVjdGVkOlxuJXNcblJlY2VpdmVkOlxuJXMiICUgKHRyZWVOYW1l
LCBleHBlY3RlZCwgb3V0cHV0KSkKLQotCi1kZWYgdGVzdF90cmVld2Fsa2VyX3NpeF9taXgoKToK
LSAgICAiIiJTdHIvVW5pY29kZSBtaXguIElmIHN0ciBhdHRycyBhZGRlZCB0byB0cmVlIiIiCi0K
LSAgICAjIE9uIFB5dGhvbiAyLnggc3RyaW5nIGxpdGVyYWxzIGFyZSBvZiB0eXBlIHN0ci4gVW5s
ZXNzLCBsaWtlIHRoaXMKLSAgICAjIGZpbGUsIHRoZSBwcm9ncmFtbWVyIGltcG9ydHMgdW5pY29k
ZV9saXRlcmFscyBmcm9tIF9fZnV0dXJlX18uCi0gICAgIyBJbiB0aGF0IGNhc2UsIHN0cmluZyBs
aXRlcmFscyBiZWNvbWUgb2JqZWN0cyBvZiB0eXBlIHVuaWNvZGUuCi0KLSAgICAjIFRoaXMgdGVz
dCBzaW11bGF0ZXMgYSBQeTIgdXNlciwgbW9kaWZ5aW5nIGF0dHJpYnV0ZXMgb24gYSBkb2N1bWVu
dAotICAgICMgZnJhZ21lbnQgYnV0IG5vdCB1c2luZyB0aGUgdScnIHN5bnRheCBub3IgaW1wb3J0
aW5nIHVuaWNvZGVfbGl0ZXJhbHMKLSAgICBzbV90ZXN0cyA9IFsKLSAgICAgICAgKCc8YSBocmVm
PSJodHRwOi8vZXhhbXBsZS5jb20iPkV4YW1wbGU8L2E+JywKLSAgICAgICAgIFsoc3RyKCdjbGFz
cycpLCBzdHIoJ3Rlc3QxMjMnKSldLAotICAgICAgICAgJzxhPlxuICBjbGFzcz0idGVzdDEyMyJc
biAgaHJlZj0iaHR0cDovL2V4YW1wbGUuY29tIlxuICAiRXhhbXBsZSInKSwKLQotICAgICAgICAo
JzxsaW5rIGhyZWY9Imh0dHA6Ly9leGFtcGxlLmNvbS9jb3ciPicsCi0gICAgICAgICBbKHN0cign
cmVsJyksIHN0cignYWx0ZXJuYXRlJykpXSwKLSAgICAgICAgICc8bGluaz5cbiAgaHJlZj0iaHR0
cDovL2V4YW1wbGUuY29tL2NvdyJcbiAgcmVsPSJhbHRlcm5hdGUiXG4gICJFeGFtcGxlIicpCi0g
ICAgXQotCi0gICAgZm9yIHRyZWUgaW4gdHJlZVR5cGVzLml0ZW1zKCk6Ci0gICAgICAgIGZvciBp
bnRleHQsIGF0dHJzLCBleHBlY3RlZCBpbiBzbV90ZXN0czoKLSAgICAgICAgICAgIHlpZWxkIHJ1
blRyZWV3YWxrZXJFZGl0VGVzdCwgaW50ZXh0LCBleHBlY3RlZCwgYXR0cnMsIHRyZWUKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
aHRtbDVsaWIvaHRtbDVsaWIvdGVzdHMvdGVzdF93aGl0ZXNwYWNlX2ZpbHRlci5weSBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvaHRtbDVsaWIvaHRt
bDVsaWIvdGVzdHMvdGVzdF93aGl0ZXNwYWNlX2ZpbHRlci5weQpkZWxldGVkIGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggOWVkMjdmZDZhYzBhNjc4YmRjNDhmMGZkOTFlZTRlNGY0Y2I2NThlMS4uMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2h0bWw1bGliL2h0bWw1bGliL3Rl
c3RzL3Rlc3Rfd2hpdGVzcGFjZV9maWx0ZXIucHkKKysrIC9kZXYvbnVsbApAQCAtMSwxMzMgKzAs
MCBAQAotZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCBhYnNvbHV0ZV9pbXBvcnQsIGRpdmlzaW9uLCB1
bmljb2RlX2xpdGVyYWxzCi0KLWltcG9ydCB1bml0dGVzdAotCi1mcm9tIGh0bWw1bGliLmZpbHRl
cnMud2hpdGVzcGFjZSBpbXBvcnQgRmlsdGVyCi1mcm9tIGh0bWw1bGliLmNvbnN0YW50cyBpbXBv
cnQgc3BhY2VDaGFyYWN0ZXJzCi1zcGFjZUNoYXJhY3RlcnMgPSAiIi5qb2luKHNwYWNlQ2hhcmFj
dGVycykKLQotdHJ5OgotICAgIHVuaXR0ZXN0LlRlc3RDYXNlLmFzc2VydEVxdWFsCi1leGNlcHQg
QXR0cmlidXRlRXJyb3I6Ci0gICAgdW5pdHRlc3QuVGVzdENhc2UuYXNzZXJ0RXF1YWwgPSB1bml0
dGVzdC5UZXN0Q2FzZS5hc3NlcnRFcXVhbHMKLQotCi1jbGFzcyBUZXN0Q2FzZSh1bml0dGVzdC5U
ZXN0Q2FzZSk6Ci0gICAgZGVmIHJ1blRlc3Qoc2VsZiwgaW5wdXQsIGV4cGVjdGVkKToKLSAgICAg
ICAgb3V0cHV0ID0gbGlzdChGaWx0ZXIoaW5wdXQpKQotICAgICAgICBlcnJvck1zZyA9ICJcbiIu
am9pbihbIlxuXG5JbnB1dDoiLCBzdHIoaW5wdXQpLAotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIlxuRXhwZWN0ZWQ6Iiwgc3RyKGV4cGVjdGVkKSwKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICJcblJlY2VpdmVkOiIsIHN0cihvdXRwdXQpXSkKLSAgICAgICAgc2VsZi5hc3Nl
cnRFcXVhbChvdXRwdXQsIGV4cGVjdGVkLCBlcnJvck1zZykKLQotICAgIGRlZiBydW5UZXN0VW5t
b2RpZmllZE91dHB1dChzZWxmLCBpbnB1dCk6Ci0gICAgICAgIHNlbGYucnVuVGVzdChpbnB1dCwg
aW5wdXQpCi0KLSAgICBkZWYgdGVzdFBocmFzaW5nRWxlbWVudHMoc2VsZik6Ci0gICAgICAgIHNl
bGYucnVuVGVzdFVubW9kaWZpZWRPdXRwdXQoCi0gICAgICAgICAgICBbeyJ0eXBlIjogIkNoYXJh
Y3RlcnMiLCAiZGF0YSI6ICJUaGlzIGlzIGEgIn0sCi0gICAgICAgICAgICAgeyJ0eXBlIjogIlN0
YXJ0VGFnIiwgIm5hbWUiOiAic3BhbiIsICJkYXRhIjogW119LAotICAgICAgICAgICAgIHsidHlw
ZSI6ICJDaGFyYWN0ZXJzIiwgImRhdGEiOiAicGhyYXNlIn0sCi0gICAgICAgICAgICAgeyJ0eXBl
IjogIkVuZFRhZyIsICJuYW1lIjogInNwYW4iLCAiZGF0YSI6IFtdfSwKLSAgICAgICAgICAgICB7
InR5cGUiOiAiU3BhY2VDaGFyYWN0ZXJzIiwgImRhdGEiOiAiICJ9LAotICAgICAgICAgICAgIHsi
dHlwZSI6ICJDaGFyYWN0ZXJzIiwgImRhdGEiOiAid2l0aCJ9LAotICAgICAgICAgICAgIHsidHlw
ZSI6ICJTcGFjZUNoYXJhY3RlcnMiLCAiZGF0YSI6ICIgIn0sCi0gICAgICAgICAgICAgeyJ0eXBl
IjogIlN0YXJ0VGFnIiwgIm5hbWUiOiAiZW0iLCAiZGF0YSI6IFtdfSwKLSAgICAgICAgICAgICB7
InR5cGUiOiAiQ2hhcmFjdGVycyIsICJkYXRhIjogImVtcGhhc2lzZWQgdGV4dCJ9LAotICAgICAg
ICAgICAgIHsidHlwZSI6ICJFbmRUYWciLCAibmFtZSI6ICJlbSIsICJkYXRhIjogW119LAotICAg
ICAgICAgICAgIHsidHlwZSI6ICJDaGFyYWN0ZXJzIiwgImRhdGEiOiAiIGFuZCBhbiAifSwKLSAg
ICAgICAgICAgICB7InR5cGUiOiAiU3RhcnRUYWciLCAibmFtZSI6ICJpbWciLCAiZGF0YSI6IFtb
ImFsdCIsICJpbWFnZSJdXX0sCi0gICAgICAgICAgICAgeyJ0eXBlIjogIkNoYXJhY3RlcnMiLCAi
ZGF0YSI6ICIuIn1dKQotCi0gICAgZGVmIHRlc3RMZWFkaW5nV2hpdGVzcGFjZShzZWxmKToKLSAg
ICAgICAgc2VsZi5ydW5UZXN0KAotICAgICAgICAgICAgW3sidHlwZSI6ICJTdGFydFRhZyIsICJu
YW1lIjogInAiLCAiZGF0YSI6IFtdfSwKLSAgICAgICAgICAgICB7InR5cGUiOiAiU3BhY2VDaGFy
YWN0ZXJzIiwgImRhdGEiOiBzcGFjZUNoYXJhY3RlcnN9LAotICAgICAgICAgICAgIHsidHlwZSI6
ICJDaGFyYWN0ZXJzIiwgImRhdGEiOiAiZm9vIn0sCi0gICAgICAgICAgICAgeyJ0eXBlIjogIkVu
ZFRhZyIsICJuYW1lIjogInAiLCAiZGF0YSI6IFtdfV0sCi0gICAgICAgICAgICBbeyJ0eXBlIjog
IlN0YXJ0VGFnIiwgIm5hbWUiOiAicCIsICJkYXRhIjogW119LAotICAgICAgICAgICAgIHsidHlw
ZSI6ICJTcGFjZUNoYXJhY3RlcnMiLCAiZGF0YSI6ICIgIn0sCi0gICAgICAgICAgICAgeyJ0eXBl
IjogIkNoYXJhY3RlcnMiLCAiZGF0YSI6ICJmb28ifSwKLSAgICAgICAgICAgICB7InR5cGUiOiAi
RW5kVGFnIiwgIm5hbWUiOiAicCIsICJkYXRhIjogW119XSkKLQotICAgIGRlZiB0ZXN0TGVhZGlu
Z1doaXRlc3BhY2VBc0NoYXJhY3RlcnMoc2VsZik6Ci0gICAgICAgIHNlbGYucnVuVGVzdCgKLSAg
ICAgICAgICAgIFt7InR5cGUiOiAiU3RhcnRUYWciLCAibmFtZSI6ICJwIiwgImRhdGEiOiBbXX0s
Ci0gICAgICAgICAgICAgeyJ0eXBlIjogIkNoYXJhY3RlcnMiLCAiZGF0YSI6IHNwYWNlQ2hhcmFj
dGVycyArICJmb28ifSwKLSAgICAgICAgICAgICB7InR5cGUiOiAiRW5kVGFnIiwgIm5hbWUiOiAi
cCIsICJkYXRhIjogW119XSwKLSAgICAgICAgICAgIFt7InR5cGUiOiAiU3RhcnRUYWciLCAibmFt
ZSI6ICJwIiwgImRhdGEiOiBbXX0sCi0gICAgICAgICAgICAgeyJ0eXBlIjogIkNoYXJhY3RlcnMi
LCAiZGF0YSI6ICIgZm9vIn0sCi0gICAgICAgICAgICAgeyJ0eXBlIjogIkVuZFRhZyIsICJuYW1l
IjogInAiLCAiZGF0YSI6IFtdfV0pCi0KLSAgICBkZWYgdGVzdFRyYWlsaW5nV2hpdGVzcGFjZShz
ZWxmKToKLSAgICAgICAgc2VsZi5ydW5UZXN0KAotICAgICAgICAgICAgW3sidHlwZSI6ICJTdGFy
dFRhZyIsICJuYW1lIjogInAiLCAiZGF0YSI6IFtdfSwKLSAgICAgICAgICAgICB7InR5cGUiOiAi
Q2hhcmFjdGVycyIsICJkYXRhIjogImZvbyJ9LAotICAgICAgICAgICAgIHsidHlwZSI6ICJTcGFj
ZUNoYXJhY3RlcnMiLCAiZGF0YSI6IHNwYWNlQ2hhcmFjdGVyc30sCi0gICAgICAgICAgICAgeyJ0
eXBlIjogIkVuZFRhZyIsICJuYW1lIjogInAiLCAiZGF0YSI6IFtdfV0sCi0gICAgICAgICAgICBb
eyJ0eXBlIjogIlN0YXJ0VGFnIiwgIm5hbWUiOiAicCIsICJkYXRhIjogW119LAotICAgICAgICAg
ICAgIHsidHlwZSI6ICJDaGFyYWN0ZXJzIiwgImRhdGEiOiAiZm9vIn0sCi0gICAgICAgICAgICAg
eyJ0eXBlIjogIlNwYWNlQ2hhcmFjdGVycyIsICJkYXRhIjogIiAifSwKLSAgICAgICAgICAgICB7
InR5cGUiOiAiRW5kVGFnIiwgIm5hbWUiOiAicCIsICJkYXRhIjogW119XSkKLQotICAgIGRlZiB0
ZXN0VHJhaWxpbmdXaGl0ZXNwYWNlQXNDaGFyYWN0ZXJzKHNlbGYpOgotICAgICAgICBzZWxmLnJ1
blRlc3QoCi0gICAgICAgICAgICBbeyJ0eXBlIjogIlN0YXJ0VGFnIiwgIm5hbWUiOiAicCIsICJk
YXRhIjogW119LAotICAgICAgICAgICAgIHsidHlwZSI6ICJDaGFyYWN0ZXJzIiwgImRhdGEiOiAi
Zm9vIiArIHNwYWNlQ2hhcmFjdGVyc30sCi0gICAgICAgICAgICAgeyJ0eXBlIjogIkVuZFRhZyIs
ICJuYW1lIjogInAiLCAiZGF0YSI6IFtdfV0sCi0gICAgICAgICAgICBbeyJ0eXBlIjogIlN0YXJ0
VGFnIiwgIm5hbWUiOiAicCIsICJkYXRhIjogW119LAotICAgICAgICAgICAgIHsidHlwZSI6ICJD
aGFyYWN0ZXJzIiwgImRhdGEiOiAiZm9vICJ9LAotICAgICAgICAgICAgIHsidHlwZSI6ICJFbmRU
YWciLCAibmFtZSI6ICJwIiwgImRhdGEiOiBbXX1dKQotCi0gICAgZGVmIHRlc3RXaGl0ZXNwYWNl
KHNlbGYpOgotICAgICAgICBzZWxmLnJ1blRlc3QoCi0gICAgICAgICAgICBbeyJ0eXBlIjogIlN0
YXJ0VGFnIiwgIm5hbWUiOiAicCIsICJkYXRhIjogW119LAotICAgICAgICAgICAgIHsidHlwZSI6
ICJDaGFyYWN0ZXJzIiwgImRhdGEiOiAiZm9vIiArIHNwYWNlQ2hhcmFjdGVycyArICJiYXIifSwK
LSAgICAgICAgICAgICB7InR5cGUiOiAiRW5kVGFnIiwgIm5hbWUiOiAicCIsICJkYXRhIjogW119
XSwKLSAgICAgICAgICAgIFt7InR5cGUiOiAiU3RhcnRUYWciLCAibmFtZSI6ICJwIiwgImRhdGEi
OiBbXX0sCi0gICAgICAgICAgICAgeyJ0eXBlIjogIkNoYXJhY3RlcnMiLCAiZGF0YSI6ICJmb28g
YmFyIn0sCi0gICAgICAgICAgICAgeyJ0eXBlIjogIkVuZFRhZyIsICJuYW1lIjogInAiLCAiZGF0
YSI6IFtdfV0pCi0KLSAgICBkZWYgdGVzdExlYWRpbmdXaGl0ZXNwYWNlSW5QcmUoc2VsZik6Ci0g
ICAgICAgIHNlbGYucnVuVGVzdFVubW9kaWZpZWRPdXRwdXQoCi0gICAgICAgICAgICBbeyJ0eXBl
IjogIlN0YXJ0VGFnIiwgIm5hbWUiOiAicHJlIiwgImRhdGEiOiBbXX0sCi0gICAgICAgICAgICAg
eyJ0eXBlIjogIlNwYWNlQ2hhcmFjdGVycyIsICJkYXRhIjogc3BhY2VDaGFyYWN0ZXJzfSwKLSAg
ICAgICAgICAgICB7InR5cGUiOiAiQ2hhcmFjdGVycyIsICJkYXRhIjogImZvbyJ9LAotICAgICAg
ICAgICAgIHsidHlwZSI6ICJFbmRUYWciLCAibmFtZSI6ICJwcmUiLCAiZGF0YSI6IFtdfV0pCi0K
LSAgICBkZWYgdGVzdExlYWRpbmdXaGl0ZXNwYWNlQXNDaGFyYWN0ZXJzSW5QcmUoc2VsZik6Ci0g
ICAgICAgIHNlbGYucnVuVGVzdFVubW9kaWZpZWRPdXRwdXQoCi0gICAgICAgICAgICBbeyJ0eXBl
IjogIlN0YXJ0VGFnIiwgIm5hbWUiOiAicHJlIiwgImRhdGEiOiBbXX0sCi0gICAgICAgICAgICAg
eyJ0eXBlIjogIkNoYXJhY3RlcnMiLCAiZGF0YSI6IHNwYWNlQ2hhcmFjdGVycyArICJmb28ifSwK
LSAgICAgICAgICAgICB7InR5cGUiOiAiRW5kVGFnIiwgIm5hbWUiOiAicHJlIiwgImRhdGEiOiBb
XX1dKQotCi0gICAgZGVmIHRlc3RUcmFpbGluZ1doaXRlc3BhY2VJblByZShzZWxmKToKLSAgICAg
ICAgc2VsZi5ydW5UZXN0VW5tb2RpZmllZE91dHB1dCgKLSAgICAgICAgICAgIFt7InR5cGUiOiAi
U3RhcnRUYWciLCAibmFtZSI6ICJwcmUiLCAiZGF0YSI6IFtdfSwKLSAgICAgICAgICAgICB7InR5
cGUiOiAiQ2hhcmFjdGVycyIsICJkYXRhIjogImZvbyJ9LAotICAgICAgICAgICAgIHsidHlwZSI6
ICJTcGFjZUNoYXJhY3RlcnMiLCAiZGF0YSI6IHNwYWNlQ2hhcmFjdGVyc30sCi0gICAgICAgICAg
ICAgeyJ0eXBlIjogIkVuZFRhZyIsICJuYW1lIjogInByZSIsICJkYXRhIjogW119XSkKLQotICAg
IGRlZiB0ZXN0VHJhaWxpbmdXaGl0ZXNwYWNlQXNDaGFyYWN0ZXJzSW5QcmUoc2VsZik6Ci0gICAg
ICAgIHNlbGYucnVuVGVzdFVubW9kaWZpZWRPdXRwdXQoCi0gICAgICAgICAgICBbeyJ0eXBlIjog
IlN0YXJ0VGFnIiwgIm5hbWUiOiAicHJlIiwgImRhdGEiOiBbXX0sCi0gICAgICAgICAgICAgeyJ0
eXBlIjogIkNoYXJhY3RlcnMiLCAiZGF0YSI6ICJmb28iICsgc3BhY2VDaGFyYWN0ZXJzfSwKLSAg
ICAgICAgICAgICB7InR5cGUiOiAiRW5kVGFnIiwgIm5hbWUiOiAicHJlIiwgImRhdGEiOiBbXX1d
KQotCi0gICAgZGVmIHRlc3RXaGl0ZXNwYWNlSW5QcmUoc2VsZik6Ci0gICAgICAgIHNlbGYucnVu
VGVzdFVubW9kaWZpZWRPdXRwdXQoCi0gICAgICAgICAgICBbeyJ0eXBlIjogIlN0YXJ0VGFnIiwg
Im5hbWUiOiAicHJlIiwgImRhdGEiOiBbXX0sCi0gICAgICAgICAgICAgeyJ0eXBlIjogIkNoYXJh
Y3RlcnMiLCAiZGF0YSI6ICJmb28iICsgc3BhY2VDaGFyYWN0ZXJzICsgImJhciJ9LAotICAgICAg
ICAgICAgIHsidHlwZSI6ICJFbmRUYWciLCAibmFtZSI6ICJwcmUiLCAiZGF0YSI6IFtdfV0pCi0K
LQotZGVmIGJ1aWxkVGVzdFN1aXRlKCk6Ci0gICAgcmV0dXJuIHVuaXR0ZXN0LmRlZmF1bHRUZXN0
TG9hZGVyLmxvYWRUZXN0c0Zyb21OYW1lKF9fbmFtZV9fKQotCi0KLWRlZiBtYWluKCk6Ci0gICAg
YnVpbGRUZXN0U3VpdGUoKQotICAgIHVuaXR0ZXN0Lm1haW4oKQotCi1pZiBfX25hbWVfXyA9PSAi
X19tYWluX18iOgotICAgIG1haW4oKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9odG1sNWxpYi9odG1sNWxpYi90ZXN0cy90b2tl
bml6ZXJ0b3RyZWUucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL2h0bWw1bGliL2h0bWw1bGliL3Rlc3RzL3Rva2VuaXplcnRvdHJlZS5weQpkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYjg0MWM3NmNlNDFhMDZmNmFhYWIzZDM5YmVlNDYz
NzY0NTgzMzViOC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0g
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2h0bWw1
bGliL2h0bWw1bGliL3Rlc3RzL3Rva2VuaXplcnRvdHJlZS5weQorKysgL2Rldi9udWxsCkBAIC0x
LDY4ICswLDAgQEAKLWZyb20gX19mdXR1cmVfXyBpbXBvcnQgYWJzb2x1dGVfaW1wb3J0LCBkaXZp
c2lvbiwgdW5pY29kZV9saXRlcmFscwotCi1pbXBvcnQgc3lzCi1pbXBvcnQgb3MKLWltcG9ydCBq
c29uCi1pbXBvcnQgcmUKLQotaW1wb3J0IGh0bWw1bGliCi1mcm9tIC4gaW1wb3J0IHN1cHBvcnQK
LWZyb20gLiBpbXBvcnQgdGVzdF90b2tlbml6ZXIKLQotcCA9IGh0bWw1bGliLkhUTUxQYXJzZXIo
KQotCi11bm5hbWVzcGFjZUV4cGVjdGVkID0gcmUuY29tcGlsZShyIl4oXHxccyopPGh0bWwgKFte
Pl0rKT4iLCByZS5NKS5zdWIKLQotCi1kZWYgbWFpbihvdXRfcGF0aCk6Ci0gICAgaWYgbm90IG9z
LnBhdGguZXhpc3RzKG91dF9wYXRoKToKLSAgICAgICAgc3lzLnN0ZGVyci53cml0ZSgiUGF0aCAl
cyBkb2VzIG5vdCBleGlzdCIgJSBvdXRfcGF0aCkKLSAgICAgICAgc3lzLmV4aXQoMSkKLQotICAg
IGZvciBmaWxlbmFtZSBpbiBzdXBwb3J0LmdldF9kYXRhX2ZpbGVzKCd0b2tlbml6ZXInLCAnKi50
ZXN0Jyk6Ci0gICAgICAgIHJ1bl9maWxlKGZpbGVuYW1lLCBvdXRfcGF0aCkKLQotCi1kZWYgcnVu
X2ZpbGUoZmlsZW5hbWUsIG91dF9wYXRoKToKLSAgICB0cnk6Ci0gICAgICAgIHRlc3RzX2RhdGEg
PSBqc29uLmxvYWQob3BlbihmaWxlbmFtZSwgInIiKSkKLSAgICBleGNlcHQgVmFsdWVFcnJvcjoK
LSAgICAgICAgc3lzLnN0ZGVyci53cml0ZSgiRmFpbGVkIHRvIGxvYWQgJXNcbiIgJSBmaWxlbmFt
ZSkKLSAgICAgICAgcmV0dXJuCi0gICAgbmFtZSA9IG9zLnBhdGguc3BsaXRleHQob3MucGF0aC5z
cGxpdChmaWxlbmFtZSlbMV0pWzBdCi0gICAgb3V0cHV0X2ZpbGUgPSBvcGVuKG9zLnBhdGguam9p
bihvdXRfcGF0aCwgInRva2VuaXplcl8lcy5kYXQiICUgbmFtZSksICJ3IikKLQotICAgIGlmICd0
ZXN0cycgaW4gdGVzdHNfZGF0YToKLSAgICAgICAgZm9yIHRlc3RfZGF0YSBpbiB0ZXN0c19kYXRh
Wyd0ZXN0cyddOgotICAgICAgICAgICAgaWYgJ2luaXRpYWxTdGF0ZXMnIG5vdCBpbiB0ZXN0X2Rh
dGE6Ci0gICAgICAgICAgICAgICAgdGVzdF9kYXRhWyJpbml0aWFsU3RhdGVzIl0gPSBbIkRhdGEg
c3RhdGUiXQotCi0gICAgICAgICAgICBmb3IgaW5pdGlhbF9zdGF0ZSBpbiB0ZXN0X2RhdGFbImlu
aXRpYWxTdGF0ZXMiXToKLSAgICAgICAgICAgICAgICBpZiBpbml0aWFsX3N0YXRlICE9ICJEYXRh
IHN0YXRlIjoKLSAgICAgICAgICAgICAgICAgICAgIyBkb24ndCBzdXBwb3J0IHRoaXMgeWV0Ci0g
ICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlCi0gICAgICAgICAgICAgICAgdGVzdCA9IG1ha2Vf
dGVzdCh0ZXN0X2RhdGEpCi0gICAgICAgICAgICAgICAgb3V0cHV0X2ZpbGUud3JpdGUodGVzdCkK
LQotICAgIG91dHB1dF9maWxlLmNsb3NlKCkKLQotCi1kZWYgbWFrZV90ZXN0KHRlc3RfZGF0YSk6
Ci0gICAgaWYgJ2RvdWJsZUVzY2FwZWQnIGluIHRlc3RfZGF0YToKLSAgICAgICAgdGVzdF9kYXRh
ID0gdGVzdF90b2tlbml6ZXIudW5lc2NhcGVfdGVzdCh0ZXN0X2RhdGEpCi0KLSAgICBydiA9IFtd
Ci0gICAgcnYuYXBwZW5kKCIjZGF0YSIpCi0gICAgcnYuYXBwZW5kKHRlc3RfZGF0YVsiaW5wdXQi
XS5lbmNvZGUoInV0ZjgiKSkKLSAgICBydi5hcHBlbmQoIiNlcnJvcnMiKQotICAgIHRyZWUgPSBw
LnBhcnNlKHRlc3RfZGF0YVsiaW5wdXQiXSkKLSAgICBvdXRwdXQgPSBwLnRyZWUudGVzdFNlcmlh
bGl6ZXIodHJlZSkKLSAgICBvdXRwdXQgPSAiXG4iLmpvaW4oKCJ8ICIgKyBsaW5lWzM6XSkgaWYg
bGluZS5zdGFydHN3aXRoKCJ8ICAiKSBlbHNlIGxpbmUKLSAgICAgICAgICAgICAgICAgICAgICAg
Zm9yIGxpbmUgaW4gb3V0cHV0LnNwbGl0KCJcbiIpKQotICAgIG91dHB1dCA9IHVubmFtZXNwYWNl
RXhwZWN0ZWQociJcMTxcMj4iLCBvdXRwdXQpCi0gICAgcnYuYXBwZW5kKG91dHB1dC5lbmNvZGUo
InV0ZjgiKSkKLSAgICBydi5hcHBlbmQoIiIpCi0gICAgcmV0dXJuICJcbiIuam9pbihydikKLQot
aWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKLSAgICBtYWluKHN5cy5hcmd2WzFdKQpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9o
dG1sNWxpYi9odG1sNWxpYi90ZXN0cy91cy1hc2NpaS5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9odG1sNWxpYi9odG1sNWxpYi90ZXN0cy91
cy1hc2NpaS5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3MjhjYjZiYWY5OGFm
ZWVlNTgxYzBjOWVkYjU0ZjNmMGY1MDNjMmFjLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvaHRtbDVsaWIvaHRtbDVsaWIvdGVzdHMvdXMtYXNjaWkuaHRtbAorKysgL2Rl
di9udWxsCkBAIC0xLDMgKzAsMCBAQAotPCFkb2N0eXBlIGh0bWw+DQotPHRpdGxlPlRlc3Q8L3Rp
dGxlPg0KLTxwPkhlbGxvIFdvcmxkIQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
aHRtbDVsaWIvaHRtbDVsaWIvdGVzdHMvdXRmLTgtYm9tLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2h0bWw1bGliL2h0bWw1bGliL3Rlc3Rz
L3V0Zi04LWJvbS5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2YWM1ZWZjZWRm
MWJlYjBkMWMwMDAxNjc1NjBjNTFiNWZkZmIzZTQyLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvaHRtbDVsaWIvaHRtbDVsaWIvdGVzdHMvdXRmLTgtYm9tLmh0bWwKKysr
IC9kZXYvbnVsbApAQCAtMSwzICswLDAgQEAKLe+7vzwhZG9jdHlwZSBodG1sPg0KLTx0aXRsZT5U
ZXN0PC90aXRsZT4NCi08cD5IZWxsbyBXb3JsZCEgwqkKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBm
aWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL2h0bWw1bGliL2h0bWw1bGliL3Rlc3RzL3czYy1pbXBvcnQubG9nIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9odG1sNWxpYi9odG1s
NWxpYi90ZXN0cy93M2MtaW1wb3J0LmxvZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
NzRlMDM0NmVhYjZiMWVlMGE1ZGYzYTI5NDE3YjEzZjc1NjRhNTQ0Yi4uMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2h0bWw1bGliL2h0bWw1bGliL3Rlc3RzL3czYy1pbXBv
cnQubG9nCisrKyAvZGV2L251bGwKQEAgLTEsMzMgKzAsMCBAQAotVGhlIHRlc3RzIGluIHRoaXMg
ZGlyZWN0b3J5IHdlcmUgaW1wb3J0ZWQgZnJvbSB0aGUgVzNDIHJlcG9zaXRvcnkuCi1EbyBOT1Qg
bW9kaWZ5IHRoZXNlIHRlc3RzIGRpcmVjdGx5IGluIFdlYktpdC4KLUluc3RlYWQsIGNyZWF0ZSBh
IHB1bGwgcmVxdWVzdCBvbiB0aGUgV1BUIGdpdGh1YjoKLQlodHRwczovL2dpdGh1Yi5jb20vdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cwotCi1UaGVuIHJ1biB0aGUgVG9vbHMvU2NyaXB0cy9pbXBvcnQt
dzNjLXRlc3RzIGluIFdlYktpdCB0byByZWltcG9ydAotCi1EbyBOT1QgbW9kaWZ5IG9yIHJlbW92
ZSB0aGlzIGZpbGUuCi0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotUHJvcGVydGllcyByZXF1aXJpbmcgdmVu
ZG9yIHByZWZpeGVzOgotTm9uZQotUHJvcGVydHkgdmFsdWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJl
Zml4ZXM6Ci1Ob25lCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLUxpc3Qgb2YgZmlsZXM6Ci0vTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9odG1sNWxpYi9odG1sNWxp
Yi90ZXN0cy9SRUFETUUKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL2h0bWw1bGliL2h0bWw1bGliL3Rlc3RzL19faW5pdF9fLnB5Ci0vTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9odG1sNWxpYi9odG1sNWxp
Yi90ZXN0cy9tb2NrUGFyc2VyLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy9odG1sNWxpYi9odG1sNWxpYi90ZXN0cy9zdXBwb3J0LnB5Ci0vTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9odG1sNWxpYi9o
dG1sNWxpYi90ZXN0cy90ZXN0X2VuY29kaW5nLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9odG1sNWxpYi9odG1sNWxpYi90ZXN0cy90ZXN0X3Bh
cnNlci5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvaHRtbDVsaWIvaHRtbDVsaWIvdGVzdHMvdGVzdF9wYXJzZXIyLnB5Ci0vTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9odG1sNWxpYi9odG1sNWxpYi90
ZXN0cy90ZXN0X3Nhbml0aXplci5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvaHRtbDVsaWIvaHRtbDVsaWIvdGVzdHMvdGVzdF9zZXJpYWxpemVy
LnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9o
dG1sNWxpYi9odG1sNWxpYi90ZXN0cy90ZXN0X3N0cmVhbS5weQotL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvaHRtbDVsaWIvaHRtbDVsaWIvdGVzdHMv
dGVzdF90b2tlbml6ZXIucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL2h0bWw1bGliL2h0bWw1bGliL3Rlc3RzL3Rlc3RfdHJlZWFkYXB0ZXJzLnB5
Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9odG1s
NWxpYi9odG1sNWxpYi90ZXN0cy90ZXN0X3RyZWV3YWxrZXJzLnB5Ci0vTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9odG1sNWxpYi9odG1sNWxpYi90ZXN0
cy90ZXN0X3doaXRlc3BhY2VfZmlsdGVyLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy9odG1sNWxpYi9odG1sNWxpYi90ZXN0cy90b2tlbml6ZXJ0
b3RyZWUucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL2h0bWw1bGliL2h0bWw1bGliL3Rlc3RzL3VzLWFzY2lpLmh0bWwKLS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2h0bWw1bGliL2h0bWw1bGliL3Rl
c3RzL3V0Zi04LWJvbS5odG1sCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2h0bWw1bGliL2h0bWw1bGliL3RyZWVhZGFwdGVycy9f
X2luaXRfXy5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvaHRtbDVsaWIvaHRtbDVsaWIvdHJlZWFkYXB0ZXJzL19faW5pdF9fLnB5CmRlbGV0ZWQg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhNjgzNGI4Mjg1YTU2YmVmMGUxNTQzZmQ5MDFjN2U2ZjJm
OGJjMjAyLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvaHRtbDVsaWIv
aHRtbDVsaWIvdHJlZWFkYXB0ZXJzL19faW5pdF9fLnB5CisrKyAvZGV2L251bGwKQEAgLTEgKzAs
MCBAQAotIyBUaGlzIGZpbGUgaXMgcmVxdWlyZWQgZm9yIFB5dGhvbiB0byBzZWFyY2ggdGhpcyBk
aXJlY3RvcnkgZm9yIG1vZHVsZXMuClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9o
dG1sNWxpYi9odG1sNWxpYi90cmVlYWRhcHRlcnMvc2F4LnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9odG1sNWxpYi9odG1sNWxpYi90cmVlYWRh
cHRlcnMvc2F4LnB5CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhZDQ3ZGY5NTY0OGNk
Nzk3MjI1MDRhYzVjZWIwYTM5NjU1N2MxZTcxLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvaHRtbDVsaWIvaHRtbDVsaWIvdHJlZWFkYXB0ZXJzL3NheC5weQorKysgL2Rl
di9udWxsCkBAIC0xLDQ0ICswLDAgQEAKLWZyb20gX19mdXR1cmVfXyBpbXBvcnQgYWJzb2x1dGVf
aW1wb3J0LCBkaXZpc2lvbiwgdW5pY29kZV9saXRlcmFscwotCi1mcm9tIHhtbC5zYXgueG1scmVh
ZGVyIGltcG9ydCBBdHRyaWJ1dGVzTlNJbXBsCi0KLWZyb20gLi5jb25zdGFudHMgaW1wb3J0IGFk
anVzdEZvcmVpZ25BdHRyaWJ1dGVzLCB1bmFkanVzdEZvcmVpZ25BdHRyaWJ1dGVzCi0KLXByZWZp
eF9tYXBwaW5nID0ge30KLWZvciBwcmVmaXgsIGxvY2FsTmFtZSwgbmFtZXNwYWNlIGluIGFkanVz
dEZvcmVpZ25BdHRyaWJ1dGVzLnZhbHVlcygpOgotICAgIGlmIHByZWZpeCBpcyBub3QgTm9uZToK
LSAgICAgICAgcHJlZml4X21hcHBpbmdbcHJlZml4XSA9IG5hbWVzcGFjZQotCi0KLWRlZiB0b19z
YXgod2Fsa2VyLCBoYW5kbGVyKToKLSAgICAiIiJDYWxsIFNBWC1saWtlIGNvbnRlbnQgaGFuZGxl
ciBiYXNlZCBvbiB0cmVld2Fsa2VyIHdhbGtlciIiIgotICAgIGhhbmRsZXIuc3RhcnREb2N1bWVu
dCgpCi0gICAgZm9yIHByZWZpeCwgbmFtZXNwYWNlIGluIHByZWZpeF9tYXBwaW5nLml0ZW1zKCk6
Ci0gICAgICAgIGhhbmRsZXIuc3RhcnRQcmVmaXhNYXBwaW5nKHByZWZpeCwgbmFtZXNwYWNlKQot
Ci0gICAgZm9yIHRva2VuIGluIHdhbGtlcjoKLSAgICAgICAgdHlwZSA9IHRva2VuWyJ0eXBlIl0K
LSAgICAgICAgaWYgdHlwZSA9PSAiRG9jdHlwZSI6Ci0gICAgICAgICAgICBjb250aW51ZQotICAg
ICAgICBlbGlmIHR5cGUgaW4gKCJTdGFydFRhZyIsICJFbXB0eVRhZyIpOgotICAgICAgICAgICAg
YXR0cnMgPSBBdHRyaWJ1dGVzTlNJbXBsKHRva2VuWyJkYXRhIl0sCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgdW5hZGp1c3RGb3JlaWduQXR0cmlidXRlcykKLSAgICAgICAg
ICAgIGhhbmRsZXIuc3RhcnRFbGVtZW50TlMoKHRva2VuWyJuYW1lc3BhY2UiXSwgdG9rZW5bIm5h
bWUiXSksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRva2VuWyJuYW1lIl0s
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF0dHJzKQotICAgICAgICAgICAg
aWYgdHlwZSA9PSAiRW1wdHlUYWciOgotICAgICAgICAgICAgICAgIGhhbmRsZXIuZW5kRWxlbWVu
dE5TKCh0b2tlblsibmFtZXNwYWNlIl0sIHRva2VuWyJuYW1lIl0pLAotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHRva2VuWyJuYW1lIl0pCi0gICAgICAgIGVsaWYgdHlwZSA9
PSAiRW5kVGFnIjoKLSAgICAgICAgICAgIGhhbmRsZXIuZW5kRWxlbWVudE5TKCh0b2tlblsibmFt
ZXNwYWNlIl0sIHRva2VuWyJuYW1lIl0pLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgdG9rZW5bIm5hbWUiXSkKLSAgICAgICAgZWxpZiB0eXBlIGluICgiQ2hhcmFjdGVycyIsICJT
cGFjZUNoYXJhY3RlcnMiKToKLSAgICAgICAgICAgIGhhbmRsZXIuY2hhcmFjdGVycyh0b2tlblsi
ZGF0YSJdKQotICAgICAgICBlbGlmIHR5cGUgPT0gIkNvbW1lbnQiOgotICAgICAgICAgICAgcGFz
cwotICAgICAgICBlbHNlOgotICAgICAgICAgICAgYXNzZXJ0IEZhbHNlLCAiVW5rbm93biB0b2tl
biB0eXBlIgotCi0gICAgZm9yIHByZWZpeCwgbmFtZXNwYWNlIGluIHByZWZpeF9tYXBwaW5nLml0
ZW1zKCk6Ci0gICAgICAgIGhhbmRsZXIuZW5kUHJlZml4TWFwcGluZyhwcmVmaXgpCi0gICAgaGFu
ZGxlci5lbmREb2N1bWVudCgpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2h0bWw1bGliL2h0bWw1bGliL3RyZWVhZGFwdGVycy93
M2MtaW1wb3J0LmxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvaHRtbDVsaWIvaHRtbDVsaWIvdHJlZWFkYXB0ZXJzL3czYy1pbXBvcnQubG9nCmRl
bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkYmNlYjI0MWUyZDFjMDI4OGZiMDI4NGRiYzc0
YzhiODg4YjNmMzc3Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0t
LSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvaHRt
bDVsaWIvaHRtbDVsaWIvdHJlZWFkYXB0ZXJzL3czYy1pbXBvcnQubG9nCisrKyAvZGV2L251bGwK
QEAgLTEsMTggKzAsMCBAQAotVGhlIHRlc3RzIGluIHRoaXMgZGlyZWN0b3J5IHdlcmUgaW1wb3J0
ZWQgZnJvbSB0aGUgVzNDIHJlcG9zaXRvcnkuCi1EbyBOT1QgbW9kaWZ5IHRoZXNlIHRlc3RzIGRp
cmVjdGx5IGluIFdlYktpdC4KLUluc3RlYWQsIGNyZWF0ZSBhIHB1bGwgcmVxdWVzdCBvbiB0aGUg
V1BUIGdpdGh1YjoKLQlodHRwczovL2dpdGh1Yi5jb20vdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cwot
Ci1UaGVuIHJ1biB0aGUgVG9vbHMvU2NyaXB0cy9pbXBvcnQtdzNjLXRlc3RzIGluIFdlYktpdCB0
byByZWltcG9ydAotCi1EbyBOT1QgbW9kaWZ5IG9yIHJlbW92ZSB0aGlzIGZpbGUuCi0KLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLQotUHJvcGVydGllcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQot
UHJvcGVydHkgdmFsdWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0KLUxpc3Qgb2YgZmlsZXM6Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy9odG1sNWxpYi9odG1sNWxpYi90cmVlYWRhcHRlcnMvX19pbml0
X18ucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L2h0bWw1bGliL2h0bWw1bGliL3RyZWVhZGFwdGVycy9zYXgucHkKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvaHRtbDVsaWIvaHRt
bDVsaWIvdHJlZWJ1aWxkZXJzL3czYy1pbXBvcnQubG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9odG1sNWxpYi9odG1sNWxpYi90cmVlYnVpbGRl
cnMvdzNjLWltcG9ydC5sb2cKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGQ0NDNmNjFi
ODU2OWM5OWJkMmZjZDgxYWJjY2FkNWJlZDM2NWUxMWUuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy9odG1sNWxpYi9odG1sNWxpYi90cmVlYnVpbGRlcnMvdzNjLWltcG9y
dC5sb2cKKysrIC9kZXYvbnVsbApAQCAtMSwxOSArMCwwIEBACi1UaGUgdGVzdHMgaW4gdGhpcyBk
aXJlY3Rvcnkgd2VyZSBpbXBvcnRlZCBmcm9tIHRoZSBXM0MgcmVwb3NpdG9yeS4KLURvIE5PVCBt
b2RpZnkgdGhlc2UgdGVzdHMgZGlyZWN0bHkgaW4gV2ViS2l0LgotSW5zdGVhZCwgY3JlYXRlIGEg
cHVsbCByZXF1ZXN0IG9uIHRoZSBXUFQgZ2l0aHViOgotCWh0dHBzOi8vZ2l0aHViLmNvbS93ZWIt
cGxhdGZvcm0tdGVzdHMvd3B0Ci0KLVRoZW4gcnVuIHRoZSBUb29scy9TY3JpcHRzL2ltcG9ydC13
M2MtdGVzdHMgaW4gV2ViS2l0IHRvIHJlaW1wb3J0Ci0KLURvIE5PVCBtb2RpZnkgb3IgcmVtb3Zl
IHRoaXMgZmlsZS4KLQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1Qcm9wZXJ0aWVzIHJlcXVpcmluZyB2ZW5k
b3IgcHJlZml4ZXM6Ci1Ob25lCi1Qcm9wZXJ0eSB2YWx1ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVm
aXhlczoKLU5vbmUKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotTGlzdCBvZiBmaWxlczoKLS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2h0bWw1bGliL2h0bWw1bGli
L3RyZWVidWlsZGVycy9fX2luaXRfXy5weWMKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2h0bWw1bGliL2h0bWw1bGliL3RyZWVidWlsZGVycy9fYmFz
ZS5weWMKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L2h0bWw1bGliL2h0bWw1bGliL3RyZWVidWlsZGVycy9ldHJlZS5weWMKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvaHRtbDVsaWIv
aHRtbDVsaWIvdHJlZXdhbGtlcnMvdzNjLWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2h0bWw1bGliL2h0bWw1bGliL3RyZWV3YWxr
ZXJzL3czYy1pbXBvcnQubG9nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3M2UzN2Ez
NTQyMzNkYzYwM2Q3MWExNzBiMDc0ODllYWI4NDAwMzQ3Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvaHRtbDVsaWIvaHRtbDVsaWIvdHJlZXdhbGtlcnMvdzNjLWltcG9y
dC5sb2cKKysrIC9kZXYvbnVsbApAQCAtMSwxNyArMCwwIEBACi1UaGUgdGVzdHMgaW4gdGhpcyBk
aXJlY3Rvcnkgd2VyZSBpbXBvcnRlZCBmcm9tIHRoZSBXM0MgcmVwb3NpdG9yeS4KLURvIE5PVCBt
b2RpZnkgdGhlc2UgdGVzdHMgZGlyZWN0bHkgaW4gV2ViS2l0LgotSW5zdGVhZCwgY3JlYXRlIGEg
cHVsbCByZXF1ZXN0IG9uIHRoZSBXUFQgZ2l0aHViOgotCWh0dHBzOi8vZ2l0aHViLmNvbS93ZWIt
cGxhdGZvcm0tdGVzdHMvd3B0Ci0KLVRoZW4gcnVuIHRoZSBUb29scy9TY3JpcHRzL2ltcG9ydC13
M2MtdGVzdHMgaW4gV2ViS2l0IHRvIHJlaW1wb3J0Ci0KLURvIE5PVCBtb2RpZnkgb3IgcmVtb3Zl
IHRoaXMgZmlsZS4KLQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1Qcm9wZXJ0aWVzIHJlcXVpcmluZyB2ZW5k
b3IgcHJlZml4ZXM6Ci1Ob25lCi1Qcm9wZXJ0eSB2YWx1ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVm
aXhlczoKLU5vbmUKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotTGlzdCBvZiBmaWxlczoKLS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2h0bWw1bGliL2h0bWw1bGli
L3RyZWV3YWxrZXJzL19faW5pdF9fLnB5YwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9odG1sNWxpYi9odG1sNWxpYi90cmllL3cz
Yy1pbXBvcnQubG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy9odG1sNWxpYi9odG1sNWxpYi90cmllL3czYy1pbXBvcnQubG9nCmRlbGV0ZWQgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCBjMmI1MGY2MGExNjBmMTllNjIyZjM0M2UwY2I5Y2Y4YTk3MDAw
NGZiLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvaHRtbDVsaWIvaHRt
bDVsaWIvdHJpZS93M2MtaW1wb3J0LmxvZworKysgL2Rldi9udWxsCkBAIC0xLDIwICswLDAgQEAK
LVRoZSB0ZXN0cyBpbiB0aGlzIGRpcmVjdG9yeSB3ZXJlIGltcG9ydGVkIGZyb20gdGhlIFczQyBy
ZXBvc2l0b3J5LgotRG8gTk9UIG1vZGlmeSB0aGVzZSB0ZXN0cyBkaXJlY3RseSBpbiBXZWJLaXQu
Ci1JbnN0ZWFkLCBjcmVhdGUgYSBwdWxsIHJlcXVlc3Qgb24gdGhlIFdQVCBnaXRodWI6Ci0JaHR0
cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQKLQotVGhlbiBydW4gdGhlIFRv
b2xzL1NjcmlwdHMvaW1wb3J0LXczYy10ZXN0cyBpbiBXZWJLaXQgdG8gcmVpbXBvcnQKLQotRG8g
Tk9UIG1vZGlmeSBvciByZW1vdmUgdGhpcyBmaWxlLgotCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLVByb3Bl
cnRpZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLVByb3BlcnR5IHZhbHVlcyBy
ZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1MaXN0IG9m
IGZpbGVzOgotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvaHRtbDVsaWIvaHRtbDVsaWIvdHJpZS9fX2luaXRfXy5weWMKLS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2h0bWw1bGliL2h0bWw1bGliL3RyaWUv
X2Jhc2UucHljCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy9odG1sNWxpYi9odG1sNWxpYi90cmllL2RhdHJpZS5weWMKLS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2h0bWw1bGliL2h0bWw1bGliL3RyaWUv
cHkucHljCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL2h0bWw1bGliL2h0bWw1bGliL3czYy1pbXBvcnQubG9nIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9odG1sNWxpYi9odG1sNWxp
Yi93M2MtaW1wb3J0LmxvZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNWE0NGI3M2Q1
N2MzZmUyNjdjOWFmOWQ0N2NkY2U3MWRkYWFiM2VlYi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL2h0bWw1bGliL2h0bWw1bGliL3czYy1pbXBvcnQubG9nCisrKyAvZGV2
L251bGwKQEAgLTEsMjMgKzAsMCBAQAotVGhlIHRlc3RzIGluIHRoaXMgZGlyZWN0b3J5IHdlcmUg
aW1wb3J0ZWQgZnJvbSB0aGUgVzNDIHJlcG9zaXRvcnkuCi1EbyBOT1QgbW9kaWZ5IHRoZXNlIHRl
c3RzIGRpcmVjdGx5IGluIFdlYktpdC4KLUluc3RlYWQsIGNyZWF0ZSBhIHB1bGwgcmVxdWVzdCBv
biB0aGUgV1BUIGdpdGh1YjoKLQlodHRwczovL2dpdGh1Yi5jb20vd2ViLXBsYXRmb3JtLXRlc3Rz
L3dwdAotCi1UaGVuIHJ1biB0aGUgVG9vbHMvU2NyaXB0cy9pbXBvcnQtdzNjLXRlc3RzIGluIFdl
YktpdCB0byByZWltcG9ydAotCi1EbyBOT1QgbW9kaWZ5IG9yIHJlbW92ZSB0aGlzIGZpbGUuCi0K
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLQotUHJvcGVydGllcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgot
Tm9uZQotUHJvcGVydHkgdmFsdWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0KLUxpc3Qgb2YgZmlsZXM6Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9odG1sNWxpYi9odG1sNWxpYi9fX2luaXRfXy5weWMK
LS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2h0bWw1
bGliL2h0bWw1bGliL2NvbnN0YW50cy5weWMKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2h0bWw1bGliL2h0bWw1bGliL2h0bWw1cGFyc2VyLnB5Ywot
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvaHRtbDVs
aWIvaHRtbDVsaWIvaWhhdGV4bWwucHljCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy9odG1sNWxpYi9odG1sNWxpYi9pbnB1dHN0cmVhbS5weWMKLS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2h0bWw1bGli
L2h0bWw1bGliL3Rva2VuaXplci5weWMKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL2h0bWw1bGliL2h0bWw1bGliL3V0aWxzLnB5YwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9odG1s
NWxpYi9wYXJzZS5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvaHRtbDVsaWIvcGFyc2UucHkKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDljYmYzYjhkMWNjNWNiYThhYWUzNzhjYjdjMGRkODhkOTc3MWE2MmYuLjAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9odG1sNWxpYi9wYXJzZS5weQorKysgL2Rldi9udWxs
CkBAIC0xLDIzMyArMCwwIEBACi0jIS91c3IvYmluL2VudiBweXRob24KLSIiInVzYWdlOiAlcHJv
ZyBbb3B0aW9uc10gZmlsZW5hbWUKLQotUGFyc2UgYSBkb2N1bWVudCB0byBhIHRyZWUsIHdpdGgg
b3B0aW9uYWwgcHJvZmlsaW5nCi0iIiIKLQotaW1wb3J0IHN5cwotaW1wb3J0IG9zCi1pbXBvcnQg
dHJhY2ViYWNrCi1mcm9tIG9wdHBhcnNlIGltcG9ydCBPcHRpb25QYXJzZXIKLQotZnJvbSBodG1s
NWxpYiBpbXBvcnQgaHRtbDVwYXJzZXIsIHNhbml0aXplcgotZnJvbSBodG1sNWxpYi50b2tlbml6
ZXIgaW1wb3J0IEhUTUxUb2tlbml6ZXIKLWZyb20gaHRtbDVsaWIgaW1wb3J0IHRyZWVidWlsZGVy
cywgc2VyaWFsaXplciwgdHJlZXdhbGtlcnMKLWZyb20gaHRtbDVsaWIgaW1wb3J0IGNvbnN0YW50
cwotCi1kZWYgcGFyc2UoKToKLSAgICBvcHRQYXJzZXIgPSBnZXRPcHRQYXJzZXIoKQotICAgIG9w
dHMsYXJncyA9IG9wdFBhcnNlci5wYXJzZV9hcmdzKCkKLSAgICBlbmNvZGluZyA9ICJ1dGY4Igot
Ci0gICAgdHJ5OgotICAgICAgICBmID0gYXJnc1stMV0KLSAgICAgICAgIyBUcnkgb3BlbmluZyBm
cm9tIHRoZSBpbnRlcm5ldAotICAgICAgICBpZiBmLnN0YXJ0c3dpdGgoJ2h0dHA6Ly8nKToKLSAg
ICAgICAgICAgIHRyeToKLSAgICAgICAgICAgICAgICBpbXBvcnQgdXJsbGliLnJlcXVlc3QsIHVy
bGxpYi5wYXJzZSwgdXJsbGliLmVycm9yLCBjZ2kKLSAgICAgICAgICAgICAgICBmID0gdXJsbGli
LnJlcXVlc3QudXJsb3BlbihmKQotICAgICAgICAgICAgICAgIGNvbnRlbnRUeXBlID0gZi5oZWFk
ZXJzLmdldCgnY29udGVudC10eXBlJykKLSAgICAgICAgICAgICAgICBpZiBjb250ZW50VHlwZToK
LSAgICAgICAgICAgICAgICAgICAgKG1lZGlhVHlwZSwgcGFyYW1zKSA9IGNnaS5wYXJzZV9oZWFk
ZXIoY29udGVudFR5cGUpCi0gICAgICAgICAgICAgICAgICAgIGVuY29kaW5nID0gcGFyYW1zLmdl
dCgnY2hhcnNldCcpCi0gICAgICAgICAgICBleGNlcHQ6Ci0gICAgICAgICAgICAgICAgcGFzcwot
ICAgICAgICBlbGlmIGYgPT0gJy0nOgotICAgICAgICAgICAgZiA9IHN5cy5zdGRpbgotICAgICAg
ICAgICAgaWYgc3lzLnZlcnNpb25faW5mb1swXSA+PSAzOgotICAgICAgICAgICAgICAgIGVuY29k
aW5nID0gTm9uZQotICAgICAgICBlbHNlOgotICAgICAgICAgICAgdHJ5OgotICAgICAgICAgICAg
ICAgICMgVHJ5IG9wZW5pbmcgZnJvbSBmaWxlIHN5c3RlbQotICAgICAgICAgICAgICAgIGYgPSBv
cGVuKGYsICJyYiIpCi0gICAgICAgICAgICBleGNlcHQgSU9FcnJvciBhcyBlOiAgICAgICAgICAg
ICAgICAKLSAgICAgICAgICAgICAgICBzeXMuc3RkZXJyLndyaXRlKCJVbmFibGUgdG8gb3BlbiBm
aWxlOiAlc1xuIiAlIGUpCi0gICAgICAgICAgICAgICAgc3lzLmV4aXQoMSkKLSAgICBleGNlcHQg
SW5kZXhFcnJvcjoKLSAgICAgICAgc3lzLnN0ZGVyci53cml0ZSgiTm8gZmlsZW5hbWUgcHJvdmlk
ZWQuIFVzZSAtaCBmb3IgaGVscFxuIikKLSAgICAgICAgc3lzLmV4aXQoMSkKLQotICAgIHRyZWVi
dWlsZGVyID0gdHJlZWJ1aWxkZXJzLmdldFRyZWVCdWlsZGVyKG9wdHMudHJlZWJ1aWxkZXIpCi0K
LSAgICBpZiBvcHRzLnNhbml0aXplOgotICAgICAgICB0b2tlbml6ZXIgPSBzYW5pdGl6ZXIuSFRN
TFNhbml0aXplcgotICAgIGVsc2U6Ci0gICAgICAgIHRva2VuaXplciA9IEhUTUxUb2tlbml6ZXIK
LQotICAgIHAgPSBodG1sNXBhcnNlci5IVE1MUGFyc2VyKHRyZWU9dHJlZWJ1aWxkZXIsIHRva2Vu
aXplcj10b2tlbml6ZXIsIGRlYnVnPW9wdHMubG9nKQotCi0gICAgaWYgb3B0cy5mcmFnbWVudDoK
LSAgICAgICAgcGFyc2VNZXRob2QgPSBwLnBhcnNlRnJhZ21lbnQKLSAgICBlbHNlOgotICAgICAg
ICBwYXJzZU1ldGhvZCA9IHAucGFyc2UKLQotICAgIGlmIG9wdHMucHJvZmlsZToKLSAgICAgICAg
aW1wb3J0IGNQcm9maWxlCi0gICAgICAgIGltcG9ydCBwc3RhdHMKLSAgICAgICAgY1Byb2ZpbGUu
cnVuY3R4KCJydW4ocGFyc2VNZXRob2QsIGYsIGVuY29kaW5nKSIsIE5vbmUsCi0gICAgICAgICAg
ICAgICAgICAgICAgICB7InJ1biI6IHJ1biwKLSAgICAgICAgICAgICAgICAgICAgICAgICAicGFy
c2VNZXRob2QiOiBwYXJzZU1ldGhvZCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAiZiI6IGYs
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgImVuY29kaW5nIjogZW5jb2Rpbmd9LAotICAgICAg
ICAgICAgICAgICAgICAgICAgInN0YXRzLnByb2YiKQotICAgICAgICAjIFhYWCAtIFdlIHNob3Vs
ZCB1c2UgYSB0ZW1wIGZpbGUgaGVyZQotICAgICAgICBzdGF0cyA9IHBzdGF0cy5TdGF0cygnc3Rh
dHMucHJvZicpCi0gICAgICAgIHN0YXRzLnN0cmlwX2RpcnMoKQotICAgICAgICBzdGF0cy5zb3J0
X3N0YXRzKCd0aW1lJykKLSAgICAgICAgc3RhdHMucHJpbnRfc3RhdHMoKQotICAgIGVsaWYgb3B0
cy50aW1lOgotICAgICAgICBpbXBvcnQgdGltZQotICAgICAgICB0MCA9IHRpbWUudGltZSgpCi0g
ICAgICAgIGRvY3VtZW50ID0gcnVuKHBhcnNlTWV0aG9kLCBmLCBlbmNvZGluZykKLSAgICAgICAg
dDEgPSB0aW1lLnRpbWUoKQotICAgICAgICBpZiBkb2N1bWVudDoKLSAgICAgICAgICAgIHByaW50
T3V0cHV0KHAsIGRvY3VtZW50LCBvcHRzKQotICAgICAgICAgICAgdDIgPSB0aW1lLnRpbWUoKQot
ICAgICAgICAgICAgc3lzLnN0ZGVyci53cml0ZSgiXG5cblJ1biB0b29rOiAlZnMgKHBsdXMgJWZz
IHRvIHByaW50IHRoZSBvdXRwdXQpIiUodDEtdDAsIHQyLXQxKSkKLSAgICAgICAgZWxzZToKLSAg
ICAgICAgICAgIHN5cy5zdGRlcnIud3JpdGUoIlxuXG5SdW4gdG9vazogJWZzIiUodDEtdDApKQot
ICAgIGVsc2U6Ci0gICAgICAgIGRvY3VtZW50ID0gcnVuKHBhcnNlTWV0aG9kLCBmLCBlbmNvZGlu
ZykKLSAgICAgICAgaWYgZG9jdW1lbnQ6Ci0gICAgICAgICAgICBwcmludE91dHB1dChwLCBkb2N1
bWVudCwgb3B0cykKLQotZGVmIHJ1bihwYXJzZU1ldGhvZCwgZiwgZW5jb2RpbmcpOgotICAgIHRy
eToKLSAgICAgICAgZG9jdW1lbnQgPSBwYXJzZU1ldGhvZChmLCBlbmNvZGluZz1lbmNvZGluZykK
LSAgICBleGNlcHQ6Ci0gICAgICAgIGRvY3VtZW50ID0gTm9uZQotICAgICAgICB0cmFjZWJhY2su
cHJpbnRfZXhjKCkKLSAgICByZXR1cm4gZG9jdW1lbnQKLQotZGVmIHByaW50T3V0cHV0KHBhcnNl
ciwgZG9jdW1lbnQsIG9wdHMpOgotICAgIGlmIG9wdHMuZW5jb2Rpbmc6Ci0gICAgICAgIHByaW50
KCJFbmNvZGluZzoiLCBwYXJzZXIudG9rZW5pemVyLnN0cmVhbS5jaGFyRW5jb2RpbmcpCi0KLSAg
ICBmb3IgaXRlbSBpbiBwYXJzZXIubG9nOgotICAgICAgICBwcmludChpdGVtKQotCi0gICAgaWYg
ZG9jdW1lbnQgaXMgbm90IE5vbmU6Ci0gICAgICAgIGlmIG9wdHMueG1sOgotICAgICAgICAgICAg
c3lzLnN0ZG91dC53cml0ZShkb2N1bWVudC50b3htbCgidXRmLTgiKSkKLSAgICAgICAgZWxpZiBv
cHRzLnRyZWU6Ci0gICAgICAgICAgICBpZiBub3QgaGFzYXR0cihkb2N1bWVudCwnX19nZXRpdGVt
X18nKToKLSAgICAgICAgICAgICAgICBkb2N1bWVudCA9IFtkb2N1bWVudF0KLSAgICAgICAgICAg
IGZvciBmcmFnbWVudCBpbiBkb2N1bWVudDoKLSAgICAgICAgICAgICAgICBwcmludChwYXJzZXIu
dHJlZS50ZXN0U2VyaWFsaXplcihmcmFnbWVudCkpCi0gICAgICAgIGVsaWYgb3B0cy5oaWxpdGU6
Ci0gICAgICAgICAgICBzeXMuc3Rkb3V0LndyaXRlKGRvY3VtZW50LmhpbGl0ZSgidXRmLTgiKSkK
LSAgICAgICAgZWxpZiBvcHRzLmh0bWw6Ci0gICAgICAgICAgICBrd2FyZ3MgPSB7fQotICAgICAg
ICAgICAgZm9yIG9wdCBpbiBzZXJpYWxpemVyLkhUTUxTZXJpYWxpemVyLm9wdGlvbnM6Ci0gICAg
ICAgICAgICAgICAgdHJ5OgotICAgICAgICAgICAgICAgICAgICBrd2FyZ3Nbb3B0XSA9IGdldGF0
dHIob3B0cyxvcHQpCi0gICAgICAgICAgICAgICAgZXhjZXB0OgotICAgICAgICAgICAgICAgICAg
ICBwYXNzCi0gICAgICAgICAgICBpZiBub3Qga3dhcmdzWydxdW90ZV9jaGFyJ106Ci0gICAgICAg
ICAgICAgICAgZGVsIGt3YXJnc1sncXVvdGVfY2hhciddCi0KLSAgICAgICAgICAgIHRva2VucyA9
IHRyZWV3YWxrZXJzLmdldFRyZWVXYWxrZXIob3B0cy50cmVlYnVpbGRlcikoZG9jdW1lbnQpCi0g
ICAgICAgICAgICBpZiBzeXMudmVyc2lvbl9pbmZvWzBdID49IDM6Ci0gICAgICAgICAgICAgICAg
ZW5jb2RpbmcgPSBOb25lCi0gICAgICAgICAgICBlbHNlOgotICAgICAgICAgICAgICAgIGVuY29k
aW5nID0gInV0Zi04IgotICAgICAgICAgICAgZm9yIHRleHQgaW4gc2VyaWFsaXplci5IVE1MU2Vy
aWFsaXplcigqKmt3YXJncykuc2VyaWFsaXplKHRva2VucywgZW5jb2Rpbmc9ZW5jb2RpbmcpOgot
ICAgICAgICAgICAgICAgIHN5cy5zdGRvdXQud3JpdGUodGV4dCkKLSAgICAgICAgICAgIGlmIG5v
dCB0ZXh0LmVuZHN3aXRoKCdcbicpOiBzeXMuc3Rkb3V0LndyaXRlKCdcbicpCi0gICAgaWYgb3B0
cy5lcnJvcjoKLSAgICAgICAgZXJyTGlzdD1bXQotICAgICAgICBmb3IgcG9zLCBlcnJvcmNvZGUs
IGRhdGF2YXJzIGluIHBhcnNlci5lcnJvcnM6Ci0gICAgICAgICAgICBlcnJMaXN0LmFwcGVuZCgi
TGluZSAlaSBDb2wgJWkiJXBvcyArICIgIiArIGNvbnN0YW50cy5FLmdldChlcnJvcmNvZGUsICdV
bmtub3duIGVycm9yICIlcyInICUgZXJyb3Jjb2RlKSAlIGRhdGF2YXJzKQotICAgICAgICBzeXMu
c3Rkb3V0LndyaXRlKCJcblBhcnNlIGVycm9yczpcbiIgKyAiXG4iLmpvaW4oZXJyTGlzdCkrIlxu
IikKLQotZGVmIGdldE9wdFBhcnNlcigpOgotICAgIHBhcnNlciA9IE9wdGlvblBhcnNlcih1c2Fn
ZT1fX2RvY19fKQotCi0gICAgcGFyc2VyLmFkZF9vcHRpb24oIi1wIiwgIi0tcHJvZmlsZSIsIGFj
dGlvbj0ic3RvcmVfdHJ1ZSIsIGRlZmF1bHQ9RmFsc2UsCi0gICAgICAgICAgICAgICAgICAgICAg
ZGVzdD0icHJvZmlsZSIsIGhlbHA9IlVzZSB0aGUgaG90c2hvdCBwcm9maWxlciB0byAiCi0gICAg
ICAgICAgICAgICAgICAgICAgInByb2R1Y2UgYSBkZXRhaWxlZCBsb2cgb2YgdGhlIHJ1biIpCi0K
LSAgICBwYXJzZXIuYWRkX29wdGlvbigiLXQiLCAiLS10aW1lIiwKLSAgICAgICAgICAgICAgICAg
ICAgICBhY3Rpb249InN0b3JlX3RydWUiLCBkZWZhdWx0PUZhbHNlLCBkZXN0PSJ0aW1lIiwKLSAg
ICAgICAgICAgICAgICAgICAgICBoZWxwPSJUaW1lIHRoZSBydW4gdXNpbmcgdGltZS50aW1lICht
YXkgbm90IGJlIGFjY3VyYXRlIG9uIGFsbCBwbGF0Zm9ybXMsIGVzcGVjaWFsbHkgZm9yIHNob3J0
IHJ1bnMpIikKLQotICAgIHBhcnNlci5hZGRfb3B0aW9uKCItYiIsICItLXRyZWVidWlsZGVyIiwg
YWN0aW9uPSJzdG9yZSIsIHR5cGU9InN0cmluZyIsCi0gICAgICAgICAgICAgICAgICAgICAgZGVz
dD0idHJlZWJ1aWxkZXIiLCBkZWZhdWx0PSJzaW1wbGVUcmVlIikKLQotICAgIHBhcnNlci5hZGRf
b3B0aW9uKCItZSIsICItLWVycm9yIiwgYWN0aW9uPSJzdG9yZV90cnVlIiwgZGVmYXVsdD1GYWxz
ZSwKLSAgICAgICAgICAgICAgICAgICAgICBkZXN0PSJlcnJvciIsIGhlbHA9IlByaW50IGEgbGlz
dCBvZiBwYXJzZSBlcnJvcnMiKQotCi0gICAgcGFyc2VyLmFkZF9vcHRpb24oIi1mIiwgIi0tZnJh
Z21lbnQiLCBhY3Rpb249InN0b3JlX3RydWUiLCBkZWZhdWx0PUZhbHNlLAotICAgICAgICAgICAg
ICAgICAgICAgIGRlc3Q9ImZyYWdtZW50IiwgaGVscD0iUGFyc2UgYXMgYSBmcmFnbWVudCIpCi0K
LSAgICBwYXJzZXIuYWRkX29wdGlvbigiIiwgIi0tdHJlZSIsIGFjdGlvbj0ic3RvcmVfdHJ1ZSIs
IGRlZmF1bHQ9RmFsc2UsCi0gICAgICAgICAgICAgICAgICAgICAgZGVzdD0idHJlZSIsIGhlbHA9
Ik91dHB1dCBhcyBkZWJ1ZyB0cmVlIikKLQotICAgIHBhcnNlci5hZGRfb3B0aW9uKCIteCIsICIt
LXhtbCIsIGFjdGlvbj0ic3RvcmVfdHJ1ZSIsIGRlZmF1bHQ9RmFsc2UsCi0gICAgICAgICAgICAg
ICAgICAgICAgZGVzdD0ieG1sIiwgaGVscD0iT3V0cHV0IGFzIHhtbCIpCi0KLSAgICBwYXJzZXIu
YWRkX29wdGlvbigiIiwgIi0tbm8taHRtbCIsIGFjdGlvbj0ic3RvcmVfZmFsc2UiLCBkZWZhdWx0
PVRydWUsCi0gICAgICAgICAgICAgICAgICAgICAgZGVzdD0iaHRtbCIsIGhlbHA9IkRvbid0IG91
dHB1dCBodG1sIikKLQotICAgIHBhcnNlci5hZGRfb3B0aW9uKCIiLCAiLS1oaWxpdGUiLCBhY3Rp
b249InN0b3JlX3RydWUiLCBkZWZhdWx0PUZhbHNlLAotICAgICAgICAgICAgICAgICAgICAgIGRl
c3Q9ImhpbGl0ZSIsIGhlbHA9Ik91dHB1dCBhcyBmb3JtYXR0ZWQgaGlnaGxpZ2h0ZWQgY29kZS4i
KQotCi0gICAgcGFyc2VyLmFkZF9vcHRpb24oIi1jIiwgIi0tZW5jb2RpbmciLCBhY3Rpb249InN0
b3JlX3RydWUiLCBkZWZhdWx0PUZhbHNlLAotICAgICAgICAgICAgICAgICAgICAgIGRlc3Q9ImVu
Y29kaW5nIiwgaGVscD0iUHJpbnQgY2hhcmFjdGVyIGVuY29kaW5nIHVzZWQiKQotCi0gICAgcGFy
c2VyLmFkZF9vcHRpb24oIiIsICItLWluamVjdC1tZXRhLWNoYXJzZXQiLCBhY3Rpb249InN0b3Jl
X3RydWUiLAotICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ9RmFsc2UsIGRlc3Q9ImluamVj
dF9tZXRhX2NoYXJzZXQiLAotICAgICAgICAgICAgICAgICAgICAgIGhlbHA9ImluamVjdCA8bWV0
YSBjaGFyc2V0PiIpCi0KLSAgICBwYXJzZXIuYWRkX29wdGlvbigiIiwgIi0tc3RyaXAtd2hpdGVz
cGFjZSIsIGFjdGlvbj0ic3RvcmVfdHJ1ZSIsCi0gICAgICAgICAgICAgICAgICAgICAgZGVmYXVs
dD1GYWxzZSwgZGVzdD0ic3RyaXBfd2hpdGVzcGFjZSIsCi0gICAgICAgICAgICAgICAgICAgICAg
aGVscD0ic3RyaXAgd2hpdGVzcGFjZSIpCi0KLSAgICBwYXJzZXIuYWRkX29wdGlvbigiIiwgIi0t
b21pdC1vcHRpb25hbC10YWdzIiwgYWN0aW9uPSJzdG9yZV90cnVlIiwKLSAgICAgICAgICAgICAg
ICAgICAgICBkZWZhdWx0PUZhbHNlLCBkZXN0PSJvbWl0X29wdGlvbmFsX3RhZ3MiLAotICAgICAg
ICAgICAgICAgICAgICAgIGhlbHA9Im9taXQgb3B0aW9uYWwgdGFncyIpCi0KLSAgICBwYXJzZXIu
YWRkX29wdGlvbigiIiwgIi0tcXVvdGUtYXR0ci12YWx1ZXMiLCBhY3Rpb249InN0b3JlX3RydWUi
LAotICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ9RmFsc2UsIGRlc3Q9InF1b3RlX2F0dHJf
dmFsdWVzIiwKLSAgICAgICAgICAgICAgICAgICAgICBoZWxwPSJxdW90ZSBhdHRyaWJ1dGUgdmFs
dWVzIikKLQotICAgIHBhcnNlci5hZGRfb3B0aW9uKCIiLCAiLS11c2UtYmVzdC1xdW90ZS1jaGFy
IiwgYWN0aW9uPSJzdG9yZV90cnVlIiwKLSAgICAgICAgICAgICAgICAgICAgICBkZWZhdWx0PUZh
bHNlLCBkZXN0PSJ1c2VfYmVzdF9xdW90ZV9jaGFyIiwKLSAgICAgICAgICAgICAgICAgICAgICBo
ZWxwPSJ1c2UgYmVzdCBxdW90ZSBjaGFyYWN0ZXIiKQotCi0gICAgcGFyc2VyLmFkZF9vcHRpb24o
IiIsICItLXF1b3RlLWNoYXIiLCBhY3Rpb249InN0b3JlIiwKLSAgICAgICAgICAgICAgICAgICAg
ICBkZWZhdWx0PU5vbmUsIGRlc3Q9InF1b3RlX2NoYXIiLAotICAgICAgICAgICAgICAgICAgICAg
IGhlbHA9InF1b3RlIGNoYXJhY3RlciIpCi0KLSAgICBwYXJzZXIuYWRkX29wdGlvbigiIiwgIi0t
bm8tbWluaW1pemUtYm9vbGVhbi1hdHRyaWJ1dGVzIiwKLSAgICAgICAgICAgICAgICAgICAgICBh
Y3Rpb249InN0b3JlX2ZhbHNlIiwgZGVmYXVsdD1UcnVlLAotICAgICAgICAgICAgICAgICAgICAg
IGRlc3Q9Im1pbmltaXplX2Jvb2xlYW5fYXR0cmlidXRlcyIsCi0gICAgICAgICAgICAgICAgICAg
ICAgaGVscD0ibWluaW1pemUgYm9vbGVhbiBhdHRyaWJ1dGVzIikKLQotICAgIHBhcnNlci5hZGRf
b3B0aW9uKCIiLCAiLS11c2UtdHJhaWxpbmctc29saWR1cyIsIGFjdGlvbj0ic3RvcmVfdHJ1ZSIs
Ci0gICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdD1GYWxzZSwgZGVzdD0idXNlX3RyYWlsaW5n
X3NvbGlkdXMiLAotICAgICAgICAgICAgICAgICAgICAgIGhlbHA9InVzZSB0cmFpbGluZyBzb2xp
ZHVzIikKLQotICAgIHBhcnNlci5hZGRfb3B0aW9uKCIiLCAiLS1zcGFjZS1iZWZvcmUtdHJhaWxp
bmctc29saWR1cyIsCi0gICAgICAgICAgICAgICAgICAgICAgYWN0aW9uPSJzdG9yZV90cnVlIiwg
ZGVmYXVsdD1GYWxzZSwKLSAgICAgICAgICAgICAgICAgICAgICBkZXN0PSJzcGFjZV9iZWZvcmVf
dHJhaWxpbmdfc29saWR1cyIsCi0gICAgICAgICAgICAgICAgICAgICAgaGVscD0iYWRkIHNwYWNl
IGJlZm9yZSB0cmFpbGluZyBzb2xpZHVzIikKLQotICAgIHBhcnNlci5hZGRfb3B0aW9uKCIiLCAi
LS1lc2NhcGUtbHQtaW4tYXR0cnMiLCBhY3Rpb249InN0b3JlX3RydWUiLAotICAgICAgICAgICAg
ICAgICAgICAgIGRlZmF1bHQ9RmFsc2UsIGRlc3Q9ImVzY2FwZV9sdF9pbl9hdHRycyIsCi0gICAg
ICAgICAgICAgICAgICAgICAgaGVscD0iZXNjYXBlIGxlc3MgdGhhbiBzaWducyBpbiBhdHRyaWJ1
dGUgdmFsdWVzIikKLQotICAgIHBhcnNlci5hZGRfb3B0aW9uKCIiLCAiLS1lc2NhcGUtcmNkYXRh
IiwgYWN0aW9uPSJzdG9yZV90cnVlIiwKLSAgICAgICAgICAgICAgICAgICAgICBkZWZhdWx0PUZh
bHNlLCBkZXN0PSJlc2NhcGVfcmNkYXRhIiwKLSAgICAgICAgICAgICAgICAgICAgICBoZWxwPSJl
c2NhcGUgcmNkYXRhIGVsZW1lbnQgdmFsdWVzIikKLQotICAgIHBhcnNlci5hZGRfb3B0aW9uKCIi
LCAiLS1zYW5pdGl6ZSIsIGFjdGlvbj0ic3RvcmVfdHJ1ZSIsIGRlZmF1bHQ9RmFsc2UsCi0gICAg
ICAgICAgICAgICAgICAgICAgZGVzdD0ic2FuaXRpemUiLCBoZWxwPSJzYW5pdGl6ZSIpCi0KLSAg
ICBwYXJzZXIuYWRkX29wdGlvbigiLWwiLCAiLS1sb2ciLCBhY3Rpb249InN0b3JlX3RydWUiLCBk
ZWZhdWx0PUZhbHNlLAotICAgICAgICAgICAgICAgICAgICAgIGRlc3Q9ImxvZyIsIGhlbHA9Imxv
ZyBzdGF0ZSB0cmFuc2l0aW9ucyIpCi0KLSAgICByZXR1cm4gcGFyc2VyCi0KLWlmIF9fbmFtZV9f
ID09ICJfX21haW5fXyI6Ci0gICAgcGFyc2UoKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9odG1sNWxpYi9yZXF1aXJlbWVudHMt
aW5zdGFsbC5zaCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvaHRtbDVsaWIvcmVxdWlyZW1lbnRzLWluc3RhbGwuc2gKZGVsZXRlZCBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDVmOGJhNTA2NDVmOWI5OTU2OWZkYWUyYmE3OGNiNTU1NTU1ODYzODAuLjAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9odG1sNWxpYi9yZXF1aXJlbWVu
dHMtaW5zdGFsbC5zaAorKysgL2Rldi9udWxsCkBAIC0xLDE2ICswLDAgQEAKLSMhL2Jpbi9iYXNo
IC1lCi0KLWlmIFtbICRVU0VfT1BUSU9OQUwgIT0gInRydWUiICYmICRVU0VfT1BUSU9OQUwgIT0g
ImZhbHNlIiBdXTsgdGhlbgotICBlY2hvICJmYXRhbDogXCRVU0VfT1BUSU9OQUwgbm90IHNldCB0
byB0cnVlIG9yIGZhbHNlLiBFeGl0aW5nLiIKLSAgZXhpdCAxCi1maQotCi1waXAgaW5zdGFsbCAt
ciByZXF1aXJlbWVudHMtdGVzdC50eHQKLQotaWYgW1sgJFVTRV9PUFRJT05BTCA9PSAidHJ1ZSIg
JiYgJFRSQVZJU19QWVRIT05fVkVSU0lPTiAhPSAicHlweSIgXV07IHRoZW4KLSAgaWYgW1sgJFRS
QVZJU19QWVRIT05fVkVSU0lPTiA9PSAiMi42IiBdXTsgdGhlbgotICAgIHBpcCBpbnN0YWxsIC0t
YWxsb3ctZXh0ZXJuYWwgR2Vuc2hpIC0tYWxsb3ctaW5zZWN1cmUgR2Vuc2hpIC1yIHJlcXVpcmVt
ZW50cy1vcHRpb25hbC0yLjYudHh0Ci0gIGVsc2UKLSAgICBwaXAgaW5zdGFsbCAtLWFsbG93LWV4
dGVybmFsIEdlbnNoaSAtLWFsbG93LWluc2VjdXJlIEdlbnNoaSAtciByZXF1aXJlbWVudHMtb3B0
aW9uYWwtY3B5dGhvbi50eHQKLSAgZmkKLWZpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2h0bWw1bGliL3JlcXVpcmVtZW50cy1v
cHRpb25hbC0yLjYudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy9odG1sNWxpYi9yZXF1aXJlbWVudHMtb3B0aW9uYWwtMi42LnR4dApkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMzc1NTdhYzQwM2RmMWVlMzQ5MWY2MzBlYjA4MGZhYTAz
YjI0MDMwYS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2h0bWw1bGli
L3JlcXVpcmVtZW50cy1vcHRpb25hbC0yLjYudHh0CisrKyAvZGV2L251bGwKQEAgLTEsNSArMCww
IEBACi0tciByZXF1aXJlbWVudHMtb3B0aW9uYWwtY3B5dGhvbi50eHQKLQotIyBDYW4gYmUgdXNl
ZCB0byBmb3JjZSBhdHRyaWJ1dGVzIHRvIGJlIHNlcmlhbGl6ZWQgaW4gYWxwaGFiZXRpY2FsCi0j
IG9yZGVyLgotb3JkZXJlZGRpY3QKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvaHRtbDVsaWIvcmVxdWlyZW1lbnRzLW9wdGlvbmFs
LWNweXRob24udHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy9odG1sNWxpYi9yZXF1aXJlbWVudHMtb3B0aW9uYWwtY3B5dGhvbi50eHQKZGVsZXRl
ZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDM1ZWQzNTI5YzJjM2IwNzI4MTQyNTMwM2I2OTY0Yjg3
NTJmODRiOTkuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9odG1sNWxp
Yi9yZXF1aXJlbWVudHMtb3B0aW9uYWwtY3B5dGhvbi50eHQKKysrIC9kZXYvbnVsbApAQCAtMSw1
ICswLDAgQEAKLS1yIHJlcXVpcmVtZW50cy1vcHRpb25hbC50eHQKLQotIyBseG1sIGlzIHN1cHBv
cnRlZCB3aXRoIGl0cyBvd24gdHJlZWJ1aWxkZXIgKCJseG1sIikgYW5kIG90aGVyd2lzZQotIyB1
c2VzIHRoZSBzdGFuZGFyZCBFbGVtZW50VHJlZSBzdXBwb3J0Ci1seG1sCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2h0bWw1bGli
L3JlcXVpcmVtZW50cy1vcHRpb25hbC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2h0bWw1bGliL3JlcXVpcmVtZW50cy1vcHRpb25hbC50eHQK
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGM2MzU1MjcwMTI3ZWM4MWEwNGM2YmZmZjUx
NWYxYjI0NGQ2MGFhYTYuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAK
LS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9o
dG1sNWxpYi9yZXF1aXJlbWVudHMtb3B0aW9uYWwudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMTMg
KzAsMCBAQAotLXIgcmVxdWlyZW1lbnRzLnR4dAotCi0jIFdlIHN1cHBvcnQgYSBHZW5zaGkgdHJl
ZXdhbGtlciB0aGF0IGNhbiBiZSB1c2VkIHRvIHNlcmlhbGl6ZSBHZW5zaGkKLSMgc3RyZWFtcy4K
LWdlbnNoaQotCi0jIERBVHJpZSBjYW4gYmUgdXNlZCBpbiBwbGFjZSBvZiBvdXIgUHl0aG9uIHRy
aWUgaW1wbGVtZW50YXRpb24gZm9yCi0jIHNsaWdodGx5IGJldHRlciBwYXJzaW5nIHBlcmZvcm1h
bmNlLgotZGF0cmllCi0KLSMgY2hhcmFkZSBjYW4gYmUgdXNlZCBhcyBhIGZhbGxiYWNrIGluIGNh
c2Ugd2UgYXJlIHVuYWJsZSB0byBkZXRlcm1pbmUKLSMgdGhlIGVuY29kaW5nIG9mIGEgZG9jdW1l
bnQuCi1jaGFyYWRlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL2h0bWw1bGliL3JlcXVpcmVtZW50cy10ZXN0LnR4dCBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvaHRtbDVsaWIvcmVx
dWlyZW1lbnRzLXRlc3QudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkNWY4MDg4
YzFjMTNjYjZlZThlZjFkZmYzZThhZmQ2N2E4OTY5MGE5Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvaHRtbDVsaWIvcmVxdWlyZW1lbnRzLXRlc3QudHh0CisrKyAvZGV2
L251bGwKQEAgLTEsNSArMCwwIEBACi0tciByZXF1aXJlbWVudHMudHh0Ci0KLWZsYWtlOAotbm9z
ZQotb3JkZXJlZGRpY3QgIyBQeXRob24gMi42CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2h0bWw1bGliL3JlcXVpcmVtZW50cy50
eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2h0
bWw1bGliL3JlcXVpcmVtZW50cy50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGZm
ZTJmY2U0OTg5NTViNjI4MDE0NjE4YjI4YzZiY2YxNTI0NjZhNGEuLjAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy9odG1sNWxpYi9yZXF1aXJlbWVudHMudHh0CisrKyAvZGV2
L251bGwKQEAgLTEgKzAsMCBAQAotc2l4CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2h0bWw1bGliL3NldHVwLnB5IGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9odG1sNWxpYi9zZXR1
cC5weQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZjc1OTEwZWFmMjEwOGQ3OGQ4ZTQ2
YWIyMDc0NmM2ZWJhNGYxMTQ0OS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL2h0bWw1bGliL3NldHVwLnB5CisrKyAvZGV2L251bGwKQEAgLTEsNDQgKzAsMCBAQAotZnJv
bSBkaXN0dXRpbHMuY29yZSBpbXBvcnQgc2V0dXAKLWltcG9ydCBvcwotaW1wb3J0IGNvZGVjcwot
Ci1jbGFzc2lmaWVycz1bCi0gICAgJ0RldmVsb3BtZW50IFN0YXR1cyA6OiA1IC0gUHJvZHVjdGlv
bi9TdGFibGUnLAotICAgICdJbnRlbmRlZCBBdWRpZW5jZSA6OiBEZXZlbG9wZXJzJywKLSAgICAn
TGljZW5zZSA6OiBPU0kgQXBwcm92ZWQgOjogTUlUIExpY2Vuc2UnLAotICAgICdPcGVyYXRpbmcg
U3lzdGVtIDo6IE9TIEluZGVwZW5kZW50JywKLSAgICAnUHJvZ3JhbW1pbmcgTGFuZ3VhZ2UgOjog
UHl0aG9uJywKLSAgICAnUHJvZ3JhbW1pbmcgTGFuZ3VhZ2UgOjogUHl0aG9uIDo6IDInLAotICAg
ICdQcm9ncmFtbWluZyBMYW5ndWFnZSA6OiBQeXRob24gOjogMi42JywKLSAgICAnUHJvZ3JhbW1p
bmcgTGFuZ3VhZ2UgOjogUHl0aG9uIDo6IDIuNycsCi0gICAgJ1Byb2dyYW1taW5nIExhbmd1YWdl
IDo6IFB5dGhvbiA6OiAzJywKLSAgICAnUHJvZ3JhbW1pbmcgTGFuZ3VhZ2UgOjogUHl0aG9uIDo6
IDMuMicsCi0gICAgJ1Byb2dyYW1taW5nIExhbmd1YWdlIDo6IFB5dGhvbiA6OiAzLjMnLAotICAg
ICdUb3BpYyA6OiBTb2Z0d2FyZSBEZXZlbG9wbWVudCA6OiBMaWJyYXJpZXMgOjogUHl0aG9uIE1v
ZHVsZXMnLAotICAgICdUb3BpYyA6OiBUZXh0IFByb2Nlc3NpbmcgOjogTWFya3VwIDo6IEhUTUwn
Ci0gICAgXQotCi1wYWNrYWdlcyA9IFsnaHRtbDVsaWInXSArIFsnaHRtbDVsaWIuJytuYW1lCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICBmb3IgbmFtZSBpbiBvcy5saXN0ZGlyKG9zLnBhdGgu
am9pbignaHRtbDVsaWInKSkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIG9zLnBhdGgu
aXNkaXIob3MucGF0aC5qb2luKCdodG1sNWxpYicsIG5hbWUpKSBhbmQKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgIG5vdCBuYW1lLnN0YXJ0c3dpdGgoJy4nKSBhbmQgbmFtZSAhPSAndGVzdHMn
XQotCi1jdXJyZW50X2RpciA9IG9zLnBhdGguZGlybmFtZShfX2ZpbGVfXykKLXdpdGggY29kZWNz
Lm9wZW4ob3MucGF0aC5qb2luKGN1cnJlbnRfZGlyLCAnUkVBRE1FLnJzdCcpLCAncicsICd1dGY4
JykgYXMgcmVhZG1lX2ZpbGU6Ci0gICAgd2l0aCBjb2RlY3Mub3Blbihvcy5wYXRoLmpvaW4oY3Vy
cmVudF9kaXIsICdDSEFOR0VTLnJzdCcpLCAncicsICd1dGY4JykgYXMgY2hhbmdlc19maWxlOgot
ICAgICAgICBsb25nX2Rlc2NyaXB0aW9uID0gcmVhZG1lX2ZpbGUucmVhZCgpICsgJ1xuJyArIGNo
YW5nZXNfZmlsZS5yZWFkKCkKLQotc2V0dXAobmFtZT0naHRtbDVsaWInLAotICAgICAgdmVyc2lv
bj0nMC45OTk5LWRldicsCi0gICAgICB1cmw9J2h0dHBzOi8vZ2l0aHViLmNvbS9odG1sNWxpYi9o
dG1sNWxpYi1weXRob24nLAotICAgICAgbGljZW5zZT0iTUlUIExpY2Vuc2UiLAotICAgICAgZGVz
Y3JpcHRpb249J0hUTUwgcGFyc2VyIGJhc2VkIG9uIHRoZSBXSEFUV0cgSFRNTCBzcGVjaWZjYXRp
b24nLAotICAgICAgbG9uZ19kZXNjcmlwdGlvbj1sb25nX2Rlc2NyaXB0aW9uLAotICAgICAgY2xh
c3NpZmllcnM9Y2xhc3NpZmllcnMsCi0gICAgICBtYWludGFpbmVyPSdKYW1lcyBHcmFoYW0nLAot
ICAgICAgbWFpbnRhaW5lcl9lbWFpbD0namFtZXNAaG9wcGlwb2xsYS5jby51aycsCi0gICAgICBw
YWNrYWdlcz1wYWNrYWdlcywKLSAgICAgIGluc3RhbGxfcmVxdWlyZXM9WwotICAgICAgICAgICdz
aXgnLAotICAgICAgXSwKLSAgICAgICkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvaHRtbDVsaWIvdG94LmluaSBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvaHRtbDVsaWIvdG94Lmlu
aQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNDc5ZjllMWY3MzIzZmFjM2UwN2QzNzNk
NGYwMjM3ZWQ5ZDU0YTg4Yi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L2h0bWw1bGliL3RveC5pbmkKKysrIC9kZXYvbnVsbApAQCAtMSwzMCArMCwwIEBACi1bdG94XQot
ZW52bGlzdCA9IHB5MjYscHkyNyxweTMyLHB5MzMscHkzNCxweXB5Ci0KLVt0ZXN0ZW52XQotZGVw
cyA9Ci0gIC1ye3RveGluaWRpcn0vcmVxdWlyZW1lbnRzLW9wdGlvbmFsLWNweXRob24udHh0Ci0g
IGZsYWtlOAotICBub3NlCi1jb21tYW5kcyA9Ci0gIHtlbnZiaW5kaXJ9L25vc2V0ZXN0cyAtcQot
ICB7dG94aW5pZGlyfS9mbGFrZTgtcnVuLnNoCi1pbnN0YWxsX2NvbW1hbmQgPQotICBwaXAgaW5z
dGFsbCB7b3B0c30ge3BhY2thZ2VzfQotCi1bdGVzdGVudjpweXB5XQotIyBseG1sIGRvZXNuJ3Qg
d29yayBhbmQgZGF0cmllIGRvZXNuJ3QgbWFrZSBzZW5zZQotIyAoaXQncyBzbG93ZXIgdGhhbiB0
aGUgcHVyZS1weXRob24gdmVyc2lvbikKLWRlcHMgPQotICBjaGFyYWRlCi0gIGZsYWtlOAotICBH
ZW5zaGkKLSAgbm9zZQotICBzaXgKLQotW3Rlc3RlbnY6cHkyNl0KLWJhc2VweXRob24gPSBweXRo
b24yLjYKLWRlcHMgPQotICAtcnt0b3hpbmlkaXJ9L3JlcXVpcmVtZW50cy1vcHRpb25hbC0yLjYu
dHh0Ci0gIGZsYWtlOAotICBub3NlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2h0bWw1bGliL3V0aWxzL2VudGl0aWVzLnB5IGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9odG1sNWxp
Yi91dGlscy9lbnRpdGllcy5weQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMTE2YTI3
Y2JjOWI5MGM4N2Q5ZGRjMWI5YWVmZWJhOGQyNjQzMTllOS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL2h0bWw1bGliL3V0aWxzL2VudGl0aWVzLnB5CisrKyAvZGV2L251
bGwKQEAgLTEsODggKzAsMCBAQAotaW1wb3J0IGpzb24KLQotaW1wb3J0IGh0bWw1bGliCi0KLWRl
ZiBwYXJzZShwYXRoPSJodG1sNWVudHMueG1sIik6Ci0gICAgcmV0dXJuIGh0bWw1bGliLnBhcnNl
KG9wZW4ocGF0aCksIHRyZWVidWlsZGVyPSJseG1sIikKLQotZGVmIGVudGl0eV90YWJsZSh0cmVl
KToKLSAgICByZXR1cm4gZGljdCgoZW50aXR5X25hbWUoIiIuam9pbih0clswXS54cGF0aCgiLi8v
dGV4dCgpIikpKSwKLSAgICAgICAgICAgICAgICAgZW50aXR5X2NoYXJhY3RlcnModHJbMV0udGV4
dCkpCi0gICAgICAgICAgICAgICAgZm9yIHRyIGluIHRyZWUueHBhdGgoIi8vaDp0Ym9keS9oOnRy
IiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lc3BhY2VzPXsiaCI6
Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwifSkpCi0KLWRlZiBlbnRpdHlfbmFtZShpbnAp
OgotICAgIHJldHVybiBpbnAuc3RyaXAoKQotCi1kZWYgZW50aXR5X2NoYXJhY3RlcnMoaW5wKToK
LSAgICByZXR1cm4gIiIuam9pbihjb2RlcG9pbnRfdG9fY2hhcmFjdGVyKGl0ZW0pCi0gICAgICAg
ICAgICAgICAgICAgIGZvciBpdGVtIGluIGlucC5zcGxpdCgpCi0gICAgICAgICAgICAgICAgICAg
IGlmIGl0ZW0pCi0KLWRlZiBjb2RlcG9pbnRfdG9fY2hhcmFjdGVyKGlucCk6Ci0gICAgcmV0dXJu
ICgiXFUwMDAiK2lucFsyOl0pLmRlY29kZSgidW5pY29kZS1lc2NhcGUiKQotCi1kZWYgbWFrZV90
ZXN0c19qc29uKGVudGl0aWVzKToKLSAgICB0ZXN0X2xpc3QgPSBtYWtlX3Rlc3RfbGlzdChlbnRp
dGllcykKLSAgICB0ZXN0c19qc29uID0geyJ0ZXN0cyI6Ci0gICAgICAgICAgICAgICAgICAgICAg
W21ha2VfdGVzdCgqaXRlbSkgZm9yIGl0ZW0gaW4gdGVzdF9saXN0XQotICAgICAgICAgICAgICAg
ICAgfQotICAgIHJldHVybiB0ZXN0c19qc29uCi0KLWRlZiBtYWtlX3Rlc3QobmFtZSwgY2hhcmFj
dGVycywgZ29vZCk6Ci0gICAgcmV0dXJuIHsKLSAgICAgICAgImRlc2NyaXB0aW9uIjp0ZXN0X2Rl
c2NyaXB0aW9uKG5hbWUsIGdvb2QpLAotICAgICAgICAiaW5wdXQiOiImJXMiJW5hbWUsCi0gICAg
ICAgICJvdXRwdXQiOnRlc3RfZXhwZWN0ZWQobmFtZSwgY2hhcmFjdGVycywgZ29vZCkKLSAgICAg
ICAgfQotCi1kZWYgdGVzdF9kZXNjcmlwdGlvbihuYW1lLCBnb29kKToKLSAgICB3aXRoX3NlbWlj
b2xvbiA9IG5hbWUuZW5kc3dpdGgoIjsiKQotICAgIHNlbWljb2xvbl90ZXh0ID0ge1RydWU6Indp
dGggYSBzZW1pLWNvbG9uIiwKLSAgICAgICAgICAgICAgICAgICAgICBGYWxzZToid2l0aG91dCBh
IHNlbWktY29sb24ifVt3aXRoX3NlbWljb2xvbl0KLSAgICBpZiBnb29kOgotICAgICAgICB0ZXh0
ID0gIk5hbWVkIGVudGl0eTogJXMgJXMiJShuYW1lLCBzZW1pY29sb25fdGV4dCkKLSAgICBlbHNl
OgotICAgICAgICB0ZXh0ID0gIkJhZCBuYW1lZCBlbnRpdHk6ICVzICVzIiUobmFtZSwgc2VtaWNv
bG9uX3RleHQpCi0gICAgcmV0dXJuIHRleHQKLQotZGVmIHRlc3RfZXhwZWN0ZWQobmFtZSwgY2hh
cmFjdGVycywgZ29vZCk6Ci0gICAgcnYgPSBbXQotICAgIGlmIG5vdCBnb29kIG9yIG5vdCBuYW1l
LmVuZHN3aXRoKCI7Iik6Ci0gICAgICAgIHJ2LmFwcGVuZCgiUGFyc2VFcnJvciIpCi0gICAgcnYu
YXBwZW5kKFsiQ2hhcmFjdGVyIiwgY2hhcmFjdGVyc10pCi0gICAgcmV0dXJuIHJ2Ci0KLWRlZiBt
YWtlX3Rlc3RfbGlzdChlbnRpdGllcyk6Ci0gICAgdGVzdHMgPSBbXQotICAgIGZvciBlbnRpdHlf
bmFtZSwgY2hhcmFjdGVycyBpbiBlbnRpdGllcy5pdGVtcygpOgotICAgICAgICBpZiBlbnRpdHlf
bmFtZS5lbmRzd2l0aCgiOyIpIGFuZCBub3Qgc3ViZW50aXR5X2V4aXN0cyhlbnRpdHlfbmFtZSwg
ZW50aXRpZXMpOgotICAgICAgICAgICAgdGVzdHMuYXBwZW5kKChlbnRpdHlfbmFtZVs6LTFdLCAi
JiIgKyBlbnRpdHlfbmFtZVs6LTFdLCBGYWxzZSkpCi0gICAgICAgIHRlc3RzLmFwcGVuZCgoZW50
aXR5X25hbWUsIGNoYXJhY3RlcnMsIFRydWUpKQotICAgIHJldHVybiBzb3J0ZWQodGVzdHMpCi0K
LWRlZiBzdWJlbnRpdHlfZXhpc3RzKGVudGl0eV9uYW1lLCBlbnRpdGllcyk6Ci0gICAgZm9yIGkg
aW4gcmFuZ2UoMSwgbGVuKGVudGl0eV9uYW1lKSk6Ci0gICAgICAgIGlmIGVudGl0eV9uYW1lWzot
aV0gaW4gZW50aXRpZXM6Ci0gICAgICAgICAgICByZXR1cm4gVHJ1ZQotICAgIHJldHVybiBGYWxz
ZQotCi1kZWYgbWFrZV9lbnRpdGllc19jb2RlKGVudGl0aWVzKToKLSAgICBlbnRpdGllc190ZXh0
ID0gIlxuIi5qb2luKCIgICAgXCIlc1wiOiB1XCIlc1wiLCIlKAotICAgICAgICAgICAgbmFtZSwg
ZW50aXRpZXNbbmFtZV0uZW5jb2RlKAotICAgICAgICAgICAgICAgICJ1bmljb2RlLWVzY2FwZSIp
LnJlcGxhY2UoIlwiIiwgIlxcXCIiKSkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZv
ciBuYW1lIGluIHNvcnRlZChlbnRpdGllcy5rZXlzKCkpKQotICAgIHJldHVybiAiIiJlbnRpdGll
cyA9IHsKLSVzCi19IiIiJWVudGl0aWVzX3RleHQKLQotZGVmIG1haW4oKToKLSAgICBlbnRpdGll
cyA9IGVudGl0eV90YWJsZShwYXJzZSgpKQotICAgIHRlc3RzX2pzb24gPSBtYWtlX3Rlc3RzX2pz
b24oZW50aXRpZXMpCi0gICAganNvbi5kdW1wKHRlc3RzX2pzb24sIG9wZW4oIm5hbWVkRW50aXRp
ZXMudGVzdCIsICJ3IiksIGluZGVudD00KQotICAgIGNvZGUgPSBtYWtlX2VudGl0aWVzX2NvZGUo
ZW50aXRpZXMpCi0gICAgb3BlbigiZW50aXRpZXNfY29uc3RhbnRzLnB5IiwgInciKS53cml0ZShj
b2RlKQotCi1pZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgotICAgIG1haW4oKQotCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2h0
bWw1bGliL3V0aWxzL2lhbmFfcGFyc2UucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2h0bWw1bGliL3V0aWxzL2lhbmFfcGFyc2UucHkKZGVsZXRl
ZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDZkZGU5NGMyODI5MjJhMGMyMmY4NmQ4YTdmOGJjNmEz
MmRkZWI2NDUuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9odG1sNWxp
Yi91dGlscy9pYW5hX3BhcnNlLnB5CisrKyAvZGV2L251bGwKQEAgLTEsMjQgKzAsMCBAQAotIyEv
dXNyL2Jpbi9lbnYgcHl0aG9uCi1pbXBvcnQgc3lzCi1pbXBvcnQgdXJsbGliLnJlcXVlc3QsIHVy
bGxpYi5lcnJvciwgdXJsbGliLnBhcnNlCi1pbXBvcnQgY29kZWNzCi0KLWRlZiBtYWluKCk6Ci0g
ICAgZW5jb2RpbmdzID0gW10KLSAgICBmID0gdXJsbGliLnJlcXVlc3QudXJsb3BlbihzeXMuYXJn
dlsxXSkKLSAgICBmb3IgbGluZSBpbiBmOgotICAgICAgICBpZiBsaW5lLnN0YXJ0c3dpdGgoIk5h
bWU6ICIpIG9yIGxpbmUuc3RhcnRzd2l0aCgiQWxpYXM6ICIpOgotICAgICAgICAgICAgZW5jID0g
bGluZS5zcGxpdCgpWzFdCi0gICAgICAgICAgICB0cnk6Ci0gICAgICAgICAgICAgICAgY29kZWNz
Lmxvb2t1cChlbmMpCi0gICAgICAgICAgICAgICAgaWYgZW5jLmxvd2VyIG5vdCBpbiBlbmNvZGlu
Z3M6Ci0gICAgICAgICAgICAgICAgICAgIGVuY29kaW5ncy5hcHBlbmQoZW5jLmxvd2VyKCkpCi0g
ICAgICAgICAgICBleGNlcHQgTG9va3VwRXJyb3I6Ci0gICAgICAgICAgICAgICAgcGFzcwotICAg
IHN5cy5zdGRvdXQud3JpdGUoImVuY29kaW5ncyA9IGZyb3plbnNldCgoXG4iKQotICAgIGZvciBl
bmMgaW4gZW5jb2RpbmdzOgotICAgICAgICBzeXMuc3Rkb3V0LndyaXRlKCcgICAgIiVzIixcbicl
ZW5jKQotICAgIHN5cy5zdGRvdXQud3JpdGUoJyAgICApKScpCi0KLWlmIF9fbmFtZV9fID09ICJf
X21haW5fXyI6Ci0gICAgbWFpbigpClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9o
dG1sNWxpYi91dGlscy9zcGlkZXIucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL2h0bWw1bGliL3V0aWxzL3NwaWRlci5weQpkZWxldGVkIGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggYTdiODAzMTk3NGIxMzE3ODdmZTlhZGQxN2U1NTA2Y2RjN2I4MmYz
MS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2h0bWw1bGliL3V0aWxz
L3NwaWRlci5weQorKysgL2Rldi9udWxsCkBAIC0xLDEyMiArMCwwIEBACi0jIS91c3IvYmluL2Vu
diBweXRob24KLSIiIlNwaWRlciB0byB0cnkgYW5kIGZpbmQgYnVncyBpbiB0aGUgcGFyc2VyLiBS
ZXF1aXJlcyBodHRwbGliMiBhbmQgZWxlbWVudHRyZWUKLQotdXNhZ2U6Ci1pbXBvcnQgc3BpZGVy
Ci1zID0gc3BpZGVyLlNwaWRlcigpCi1zLnNwaWRlcigiaHR0cDovL3d3dy5nb29nbGUuY29tIiwg
bWF4VVJMcz0xMDApCi0iIiIKLQotaW1wb3J0IHVybGxpYi5yZXF1ZXN0LCB1cmxsaWIuZXJyb3Is
IHVybGxpYi5wYXJzZQotaW1wb3J0IHVybGxpYi5yb2JvdHBhcnNlcgotaW1wb3J0IG1kNQotCi1p
bXBvcnQgaHR0cGxpYjIKLQotaW1wb3J0IGh0bWw1bGliCi1mcm9tIGh0bWw1bGliLnRyZWVidWls
ZGVycyBpbXBvcnQgZXRyZWUKLQotY2xhc3MgU3BpZGVyKG9iamVjdCk6Ci0gICAgZGVmIF9faW5p
dF9fKHNlbGYpOgotICAgICAgICBzZWxmLnVudmlzaXRlZFVSTHMgPSBzZXQoKQotICAgICAgICBz
ZWxmLnZpc2l0ZWRVUkxzID0gc2V0KCkKLSAgICAgICAgc2VsZi5idWdneVVSTHM9c2V0KCkKLSAg
ICAgICAgc2VsZi5yb2JvdFBhcnNlciA9IHVybGxpYi5yb2JvdHBhcnNlci5Sb2JvdEZpbGVQYXJz
ZXIoKQotICAgICAgICBzZWxmLmNvbnRlbnREaWdlc3QgPSB7fQotICAgICAgICBzZWxmLmh0dHAg
PSBodHRwbGliMi5IdHRwKCIuY2FjaGUiKQotCi0gICAgZGVmIHJ1bihzZWxmLCBpbml0aWFsVVJM
LCBtYXhVUkxzPTEwMDApOgotICAgICAgICB1cmxOdW1iZXIgPSAwCi0gICAgICAgIHNlbGYudmlz
aXRlZFVSTHMuYWRkKGluaXRpYWxVUkwpCi0gICAgICAgIGNvbnRlbnQgPSBzZWxmLmxvYWRVUkwo
aW5pdGlhbFVSTCkKLSAgICAgICAgd2hpbGUgbWF4VVJMcyBpcyBOb25lIG9yIHVybE51bWJlciA8
IG1heFVSTHM6Ci0gICAgICAgICAgICBpZiBjb250ZW50IGlzIG5vdCBOb25lOgotICAgICAgICAg
ICAgICAgIHNlbGYucGFyc2UoY29udGVudCkKLSAgICAgICAgICAgICAgICB1cmxOdW1iZXIgKz0g
MQotICAgICAgICAgICAgaWYgbm90IHNlbGYudW52aXNpdGVkVVJMczoKLSAgICAgICAgICAgICAg
ICBicmVhawotICAgICAgICAgICAgY29udGVudCA9IHNlbGYubG9hZFVSTChzZWxmLnVudmlzaXRl
ZFVSTHMucG9wKCkpCi0KLSAgICBkZWYgcGFyc2Uoc2VsZiwgY29udGVudCk6Ci0gICAgICAgIGZh
aWxlZCA9IEZhbHNlCi0gICAgICAgIHAgPSBodG1sNWxpYi5IVE1MUGFyc2VyKHRyZWU9ZXRyZWUu
VHJlZUJ1aWxkZXIpCi0gICAgICAgIHRyeToKLSAgICAgICAgICAgIHRyZWUgPSBwLnBhcnNlKGNv
bnRlbnQpCi0gICAgICAgIGV4Y2VwdDoKLSAgICAgICAgICAgIHNlbGYuYnVnZ3lVUkxzLmFkZChz
ZWxmLmN1cnJlbnRVUkwpCi0gICAgICAgICAgICBmYWlsZWQgPSBUcnVlCi0gICAgICAgICAgICBw
cmludCgiQlVHR1k6Iiwgc2VsZi5jdXJyZW50VVJMKQotICAgICAgICBzZWxmLnZpc2l0ZWRVUkxz
LmFkZChzZWxmLmN1cnJlbnRVUkwpCi0gICAgICAgIGlmIG5vdCBmYWlsZWQ6Ci0gICAgICAgICAg
ICBzZWxmLnVwZGF0ZVVSTHModHJlZSkKLQotICAgIGRlZiBsb2FkVVJMKHNlbGYsIHVybCk6Ci0g
ICAgICAgIHJlc3AsIGNvbnRlbnQgPSBzZWxmLmh0dHAucmVxdWVzdCh1cmwsICJHRVQiKQotICAg
ICAgICBzZWxmLmN1cnJlbnRVUkwgPSB1cmwKLSAgICAgICAgZGlnZXN0ID0gbWQ1Lm1kNShjb250
ZW50KS5oZXhkaWdlc3QoKQotICAgICAgICBpZiBkaWdlc3QgaW4gc2VsZi5jb250ZW50RGlnZXN0
OgotICAgICAgICAgICAgY29udGVudCA9IE5vbmUKLSAgICAgICAgICAgIHNlbGYudmlzaXRlZFVS
THMuYWRkKHVybCkKLSAgICAgICAgZWxzZToKLSAgICAgICAgICAgIHNlbGYuY29udGVudERpZ2Vz
dFtkaWdlc3RdID0gdXJsCi0KLSAgICAgICAgaWYgcmVzcFsnc3RhdHVzJ10gIT0gIjIwMCI6Ci0g
ICAgICAgICAgICBjb250ZW50ID0gTm9uZQotCi0gICAgICAgIHJldHVybiBjb250ZW50Ci0KLSAg
ICBkZWYgdXBkYXRlVVJMcyhzZWxmLCB0cmVlKToKLSAgICAgICAgIiIiVGFrZSBhbGwgdGhlIGxp
bmtzIGluIHRoZSBjdXJyZW50IGRvY3VtZW50LCBleHRyYWN0IHRoZSBVUkxzIGFuZAotICAgICAg
ICB1cGRhdGUgdGhlIGxpc3Qgb2YgdmlzaXRlZCBhbmQgdW52aXNpdGVkIFVSTHMgYWNjb3JkaW5n
IHRvIHdoZXRoZXIgd2UKLSAgICAgICAgaGF2ZSBzZWVuIHRoZW0gYmVmb3JlIG9yIG5vdCIiIgot
ICAgICAgICB1cmxzID0gc2V0KCkKLSAgICAgICAgI1JlbW92ZSBhbGwgbGlua3Mgd2UgaGF2ZSBh
bHJlYWR5IHZpc2l0ZWQKLSAgICAgICAgZm9yIGxpbmsgaW4gdHJlZS5maW5kYWxsKCIuLy9hIik6
Ci0gICAgICAgICAgICAgICAgdHJ5OgotICAgICAgICAgICAgICAgICAgICB1cmwgPSB1cmxsaWIu
cGFyc2UudXJsZGVmcmFnKGxpbmsuYXR0cmliWydocmVmJ10pWzBdCi0gICAgICAgICAgICAgICAg
ICAgIGlmICh1cmwgYW5kIHVybCBub3QgaW4gc2VsZi51bnZpc2l0ZWRVUkxzIGFuZCB1cmwKLSAg
ICAgICAgICAgICAgICAgICAgICAgIG5vdCBpbiBzZWxmLnZpc2l0ZWRVUkxzKToKLSAgICAgICAg
ICAgICAgICAgICAgICAgIHVybHMuYWRkKHVybCkKLSAgICAgICAgICAgICAgICBleGNlcHQgS2V5
RXJyb3I6Ci0gICAgICAgICAgICAgICAgICAgIHBhc3MKLQotICAgICAgICAjUmVtb3ZlIGFsbCBu
b24taHR0cCBVUkxzIGFuZCBhIGRkIGEgc3V0aWFibGUgYmFzZSBVUkwgd2hlcmUgdGhhdCBpcwot
ICAgICAgICAjbWlzc2luZwotICAgICAgICBuZXdVcmxzID0gc2V0KCkKLSAgICAgICAgZm9yIHVy
bCBpbiB1cmxzOgotICAgICAgICAgICAgc3BsaXRVUkwgPSBsaXN0KHVybGxpYi5wYXJzZS51cmxz
cGxpdCh1cmwpKQotICAgICAgICAgICAgaWYgc3BsaXRVUkxbMF0gIT0gImh0dHAiOgotICAgICAg
ICAgICAgICAgIGNvbnRpbnVlCi0gICAgICAgICAgICBpZiBzcGxpdFVSTFsxXSA9PSAiIjoKLSAg
ICAgICAgICAgICAgICBzcGxpdFVSTFsxXSA9IHVybGxpYi5wYXJzZS51cmxzcGxpdChzZWxmLmN1
cnJlbnRVUkwpWzFdCi0gICAgICAgICAgICBuZXdVcmxzLmFkZCh1cmxsaWIucGFyc2UudXJsdW5z
cGxpdChzcGxpdFVSTCkpCi0gICAgICAgIHVybHMgPSBuZXdVcmxzCi0KLSAgICAgICAgcmVzcG9u
c2VIZWFkZXJzID0ge30KLSAgICAgICAgI05vdyB3ZSB3YW50IHRvIGZpbmQgdGhlIGNvbnRlbnQg
dHlwZXMgb2YgdGhlIGxpbmtzIHdlIGhhdmVuJ3QgdmlzaXRlZAotICAgICAgICBmb3IgdXJsIGlu
IHVybHM6Ci0gICAgICAgICAgICB0cnk6Ci0gICAgICAgICAgICAgICAgcmVzcCwgY29udGVudCA9
IHNlbGYuaHR0cC5yZXF1ZXN0KHVybCwgIkhFQUQiKQotICAgICAgICAgICAgICAgIHJlc3BvbnNl
SGVhZGVyc1t1cmxdID0gcmVzcAotICAgICAgICAgICAgZXhjZXB0IEF0dHJpYnV0ZUVycm9yIGFz
IEtleUVycm9yOgotICAgICAgICAgICAgICAgICNEb24ndCBrbm93IHdoeSB0aGlzIGhhcHBlbnMK
LSAgICAgICAgICAgICAgICBwYXNzCi0KLQotICAgICAgICAjUmVtb3ZlIGxpbmtzIG5vdCBvZiBj
b250ZW50LXR5cGUgaHRtbCBvciBwYWdlcyBub3QgZm91bmQKLSAgICAgICAgI1hYWCAtIG5lZWQg
dG8gZGVhbCB3aXRoIG90aGVyIHN0YXR1cyBjb2Rlcz8KLSAgICAgICAgdG9WaXNpdCA9IHNldChb
dXJsIGZvciB1cmwgaW4gdXJscyBpZiB1cmwgaW4gcmVzcG9uc2VIZWFkZXJzIGFuZAotICAgICAg
ICAgICAgICAgICAgICAgICJodG1sIiBpbiByZXNwb25zZUhlYWRlcnNbdXJsXVsnY29udGVudC10
eXBlJ10gYW5kCi0gICAgICAgICAgICAgICAgICAgICAgcmVzcG9uc2VIZWFkZXJzW3VybF1bJ3N0
YXR1cyddID09ICIyMDAiXSkKLQotICAgICAgICAjTm93IGNoZWNrIHdlIGFyZSBhbGxvd2VkIHRv
IHNwaWRlciB0aGUgcGFnZQotICAgICAgICBmb3IgdXJsIGluIHRvVmlzaXQ6Ci0gICAgICAgICAg
ICByb2JvdFVSTCA9IGxpc3QodXJsbGliLnBhcnNlLnVybHNwbGl0KHVybClbOjJdKQotICAgICAg
ICAgICAgcm9ib3RVUkwuZXh0ZW5kKFsicm9ib3RzLnR4dCIsICIiLCAiIl0pCi0gICAgICAgICAg
ICByb2JvdFVSTCA9IHVybGxpYi5wYXJzZS51cmx1bnNwbGl0KHJvYm90VVJMKQotICAgICAgICAg
ICAgc2VsZi5yb2JvdFBhcnNlci5zZXRfdXJsKHJvYm90VVJMKQotICAgICAgICAgICAgaWYgbm90
IHNlbGYucm9ib3RQYXJzZXIuY2FuX2ZldGNoKCIqIiwgdXJsKToKLSAgICAgICAgICAgICAgICB0
b1Zpc2l0LnJlbW92ZSh1cmwpCi0KLSAgICAgICAgc2VsZi52aXNpdGVkVVJMcy51cGRhdGUodXJs
cykKLSAgICAgICAgc2VsZi51bnZpc2l0ZWRVUkxzLnVwZGF0ZSh0b1Zpc2l0KQpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9odG1s
NWxpYi91dGlscy93M2MtaW1wb3J0LmxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvaHRtbDVsaWIvdXRpbHMvdzNjLWltcG9ydC5sb2cKZGVsZXRl
ZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDRiNGY1MmIyODJlNDgxZDNkNTY0MDFkYTQwZTA3Yzhh
ZWQ4OGYxZTUuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9odG1sNWxp
Yi91dGlscy93M2MtaW1wb3J0LmxvZworKysgL2Rldi9udWxsCkBAIC0xLDE5ICswLDAgQEAKLVRo
ZSB0ZXN0cyBpbiB0aGlzIGRpcmVjdG9yeSB3ZXJlIGltcG9ydGVkIGZyb20gdGhlIFczQyByZXBv
c2l0b3J5LgotRG8gTk9UIG1vZGlmeSB0aGVzZSB0ZXN0cyBkaXJlY3RseSBpbiBXZWJLaXQuCi1J
bnN0ZWFkLCBjcmVhdGUgYSBwdWxsIHJlcXVlc3Qgb24gdGhlIFdQVCBnaXRodWI6Ci0JaHR0cHM6
Ly9naXRodWIuY29tL3czYy93ZWItcGxhdGZvcm0tdGVzdHMKLQotVGhlbiBydW4gdGhlIFRvb2xz
L1NjcmlwdHMvaW1wb3J0LXczYy10ZXN0cyBpbiBXZWJLaXQgdG8gcmVpbXBvcnQKLQotRG8gTk9U
IG1vZGlmeSBvciByZW1vdmUgdGhpcyBmaWxlLgotCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLVByb3BlcnRp
ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLVByb3BlcnR5IHZhbHVlcyByZXF1
aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1MaXN0IG9mIGZp
bGVzOgotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
aHRtbDVsaWIvdXRpbHMvZW50aXRpZXMucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2h0bWw1bGliL3V0aWxzL2lhbmFfcGFyc2UucHkKLS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2h0bWw1bGliL3V0
aWxzL3NwaWRlci5weQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy9odG1sNWxpYi93M2MtaW1wb3J0LmxvZyBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvaHRtbDVsaWIvdzNjLWltcG9y
dC5sb2cKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDkwNTZhNDJkZjM0MzQyM2I5NWM0
YWM5YTE5NGIzOWY1ODgwZmZjNTIuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy9odG1sNWxpYi93M2MtaW1wb3J0LmxvZworKysgL2Rldi9udWxsCkBAIC0xLDMzICswLDAg
QEAKLVRoZSB0ZXN0cyBpbiB0aGlzIGRpcmVjdG9yeSB3ZXJlIGltcG9ydGVkIGZyb20gdGhlIFcz
QyByZXBvc2l0b3J5LgotRG8gTk9UIG1vZGlmeSB0aGVzZSB0ZXN0cyBkaXJlY3RseSBpbiBXZWJL
aXQuCi1JbnN0ZWFkLCBjcmVhdGUgYSBwdWxsIHJlcXVlc3Qgb24gdGhlIFdQVCBnaXRodWI6Ci0J
aHR0cHM6Ly9naXRodWIuY29tL3czYy93ZWItcGxhdGZvcm0tdGVzdHMKLQotVGhlbiBydW4gdGhl
IFRvb2xzL1NjcmlwdHMvaW1wb3J0LXczYy10ZXN0cyBpbiBXZWJLaXQgdG8gcmVpbXBvcnQKLQot
RG8gTk9UIG1vZGlmeSBvciByZW1vdmUgdGhpcyBmaWxlLgotCi0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLVBy
b3BlcnRpZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLVByb3BlcnR5IHZhbHVl
cyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1MaXN0
IG9mIGZpbGVzOgotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvaHRtbDVsaWIvQVVUSE9SUy5yc3QKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2h0bWw1bGliL0NIQU5HRVMucnN0Ci0vTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9odG1sNWxpYi9DT05UUklCVVRJ
TkcucnN0Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy9odG1sNWxpYi9MSUNFTlNFCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy9odG1sNWxpYi9NQU5JRkVTVC5pbgotL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvaHRtbDVsaWIvUkVBRE1FLnJzdAotL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvaHRtbDVsaWIvZGVi
dWctaW5mby5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvaHRtbDVsaWIvZmxha2U4LXJ1bi5zaAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvaHRtbDVsaWIvcGFyc2UucHkKLS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2h0bWw1bGliL3JlcXVpcmVtZW50
cy1pbnN0YWxsLnNoCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy9odG1sNWxpYi9yZXF1aXJlbWVudHMtb3B0aW9uYWwtMi42LnR4dAotL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvaHRtbDVsaWIvcmVxdWly
ZW1lbnRzLW9wdGlvbmFsLWNweXRob24udHh0Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy9odG1sNWxpYi9yZXF1aXJlbWVudHMtb3B0aW9uYWwudHh0
Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9odG1s
NWxpYi9yZXF1aXJlbWVudHMtdGVzdC50eHQKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2h0bWw1bGliL3JlcXVpcmVtZW50cy50eHQKLS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2h0bWw1bGliL3NldHVw
LnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9o
dG1sNWxpYi90b3guaW5pCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2xpbnQvZm5tYXRjaC5weSBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvbGludC9mbm1hdGNoLnB5CmluZGV4IDJm
ZTNlYjBhYTllNWFmMDdlMTFhZDViMDhkOTBmODI5YjhhNTFhNTAuLjNkOWVlMjNjOTdlNWJhZjE2
NTc3NThlZjE4MjQ0MTA0YzdmN2MxZTMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvbGludC9mbm1hdGNoLnB5CisrKyBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvbGludC9mbm1hdGNo
LnB5CkBAIC0zLDE3ICszLDI2IEBAIGZyb20gX19mdXR1cmVfXyBpbXBvcnQgYWJzb2x1dGVfaW1w
b3J0CiBpbXBvcnQgZm5tYXRjaCBhcyBfc3RkbGliX2ZubWF0Y2gKIGltcG9ydCBvcwogCitNWVBZ
ID0gRmFsc2UKK2lmIE1ZUFk6CisgICAgIyBNWVBZIGlzIHNldCB0byBUcnVlIHdoZW4gcnVuIHVu
ZGVyIE15cHkuCisgICAgZnJvbSB0eXBpbmcgaW1wb3J0IEFueVN0cgorICAgIGZyb20gdHlwaW5n
IGltcG9ydCBJdGVyYWJsZQorICAgIGZyb20gdHlwaW5nIGltcG9ydCBMaXN0CisKIAogX19hbGxf
XyA9IFsiZm5tYXRjaCIsICJmbm1hdGNoY2FzZSIsICJmaWx0ZXIiLCAidHJhbnNsYXRlIl0KIAog
CiBkZWYgZm5tYXRjaChuYW1lLCBwYXQpOgorICAgICMgdHlwZTogKEFueVN0ciwgQW55U3RyKSAt
PiBib29sCiAgICAgbmFtZSA9IG9zLnBhdGgubm9ybWNhc2UobmFtZSkKICAgICBwYXQgPSBvcy5w
YXRoLm5vcm1jYXNlKHBhdCkKICAgICByZXR1cm4gZm5tYXRjaGNhc2UobmFtZSwgcGF0KQogCiAK
IGRlZiBmbm1hdGNoY2FzZShuYW1lLCBwYXQpOgorICAgICMgdHlwZTogKEFueVN0ciwgQW55U3Ry
KSAtPiBib29sCiAgICAgaWYgJz8nIG5vdCBpbiBwYXQgYW5kICdbJyBub3QgaW4gcGF0OgogICAg
ICAgICB3aWxkY2FyZHMgPSBwYXQuY291bnQoIioiKQogICAgICAgICBpZiB3aWxkY2FyZHMgPT0g
MDoKQEAgLTI2LDYgKzM1LDcgQEAgZGVmIGZubWF0Y2hjYXNlKG5hbWUsIHBhdCk6CiAKIAogZGVm
IGZpbHRlcihuYW1lcywgcGF0KToKKyAgICAjIHR5cGU6IChJdGVyYWJsZVtBbnlTdHJdLCBBbnlT
dHIpIC0+IExpc3RbQW55U3RyXQogICAgIHJldHVybiBbbiBmb3IgbiBpbiBuYW1lcyBpZiBmbm1h
dGNoKG4sIHBhdCldCiAKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy9saW50L2xpbnQucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2xpbnQvbGludC5weQppbmRleCAzZjQzYjM3
M2FiZTc5M2U4ODU0YmFhODBkNGFjMTI3ZWQ2NmQwZDk1Li5jN2MwMTk3MjEzYzQ2NjBkMDVhM2Q4
NjhlZGQ4N2JkOTA3NDMwZjZiIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2xpbnQvbGludC5weQorKysgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2xpbnQvbGludC5weQpAQCAtNCw2
ICs0LDcgQEAgaW1wb3J0IGFiYwogaW1wb3J0IGFyZ3BhcnNlCiBpbXBvcnQgYXN0CiBpbXBvcnQg
anNvbgoraW1wb3J0IGxvZ2dpbmcKIGltcG9ydCBvcwogaW1wb3J0IHJlCiBpbXBvcnQgc3VicHJv
Y2VzcwpAQCAtMTMsMzIgKzE0LDU0IEBAIGltcG9ydCB0ZW1wZmlsZQogZnJvbSBjb2xsZWN0aW9u
cyBpbXBvcnQgZGVmYXVsdGRpY3QKIAogZnJvbSAuIGltcG9ydCBmbm1hdGNoCitmcm9tIC4gaW1w
b3J0IHJ1bGVzCiBmcm9tIC4uIGltcG9ydCBsb2NhbHBhdGhzCiBmcm9tIC4uZ2l0aWdub3JlLmdp
dGlnbm9yZSBpbXBvcnQgUGF0aEZpbHRlcgogZnJvbSAuLndwdCBpbXBvcnQgdGVzdGZpbGVzCitm
cm9tIC4ubWFuaWZlc3QudmNzIGltcG9ydCB3YWxrCiAKLWZyb20gbWFuaWZlc3Quc291cmNlZmls
ZSBpbXBvcnQgU291cmNlRmlsZSwganNfbWV0YV9yZSwgcHl0aG9uX21ldGFfcmUsIHNwYWNlX2No
YXJzLCBnZXRfYW55X3ZhcmlhbnRzLCBnZXRfZGVmYXVsdF9hbnlfdmFyaWFudHMKLWZyb20gc2l4
IGltcG9ydCBiaW5hcnlfdHlwZSwgaXRlcml0ZW1zLCBpdGVydmFsdWVzCitmcm9tIC4ubWFuaWZl
c3Quc291cmNlZmlsZSBpbXBvcnQgU291cmNlRmlsZSwganNfbWV0YV9yZSwgcHl0aG9uX21ldGFf
cmUsIHNwYWNlX2NoYXJzLCBnZXRfYW55X3ZhcmlhbnRzLCBnZXRfZGVmYXVsdF9hbnlfdmFyaWFu
dHMKK2Zyb20gc2l4IGltcG9ydCBiaW5hcnlfdHlwZSwgaXRlcml0ZW1zLCBpdGVydmFsdWVzLCB3
aXRoX21ldGFjbGFzcwogZnJvbSBzaXgubW92ZXMgaW1wb3J0IHJhbmdlCiBmcm9tIHNpeC5tb3Zl
cy51cmxsaWIucGFyc2UgaW1wb3J0IHVybHNwbGl0LCB1cmxqb2luCiAKLWltcG9ydCBsb2dnaW5n
CitNWVBZID0gRmFsc2UKK2lmIE1ZUFk6CisgICAgIyBNWVBZIGlzIHNldCB0byBUcnVlIHdoZW4g
cnVuIHVuZGVyIE15cHkuCisgICAgZnJvbSB0eXBpbmcgaW1wb3J0IEFueQorICAgIGZyb20gdHlw
aW5nIGltcG9ydCBEaWN0CisgICAgZnJvbSB0eXBpbmcgaW1wb3J0IElPCisgICAgZnJvbSB0eXBp
bmcgaW1wb3J0IEl0ZXJhYmxlCisgICAgZnJvbSB0eXBpbmcgaW1wb3J0IExpc3QKKyAgICBmcm9t
IHR5cGluZyBpbXBvcnQgT3B0aW9uYWwKKyAgICBmcm9tIHR5cGluZyBpbXBvcnQgU2VxdWVuY2UK
KyAgICBmcm9tIHR5cGluZyBpbXBvcnQgU2V0CisgICAgZnJvbSB0eXBpbmcgaW1wb3J0IFRleHQK
KyAgICBmcm9tIHR5cGluZyBpbXBvcnQgVHVwbGUKKyAgICBmcm9tIHR5cGluZyBpbXBvcnQgVHlw
ZQorICAgIGZyb20gdHlwaW5nIGltcG9ydCBVbmlvbgorCisgICAgV2hpdGVsaXN0ID0gRGljdFtU
ZXh0LCBEaWN0W1RleHQsIFNldFtPcHRpb25hbFtpbnRdXV1dCiAKLWxvZ2dlciA9IE5vbmUKKwor
bG9nZ2VyID0gTm9uZSAgIyB0eXBlOiBPcHRpb25hbFtsb2dnaW5nLkxvZ2dlcl0KIAogZGVmIHNl
dHVwX2xvZ2dpbmcocHJlZml4PUZhbHNlKToKKyAgICAjIHR5cGU6IChib29sKSAtPiBOb25lCiAg
ICAgZ2xvYmFsIGxvZ2dlcgogICAgIGlmIGxvZ2dlciBpcyBOb25lOgogICAgICAgICBsb2dnZXIg
PSBsb2dnaW5nLmdldExvZ2dlcihvcy5wYXRoLmJhc2VuYW1lKG9zLnBhdGguc3BsaXRleHQoX19m
aWxlX18pWzBdKSkKLSAgICAgICAgaGFuZGxlciA9IGxvZ2dpbmcuU3RyZWFtSGFuZGxlcihzeXMu
c3Rkb3V0KQorICAgICAgICBoYW5kbGVyID0gbG9nZ2luZy5TdHJlYW1IYW5kbGVyKHN5cy5zdGRv
dXQpICAjIHR5cGU6IGxvZ2dpbmcuSGFuZGxlcgogICAgICAgICAjIE9ubHkgYWRkIGEgaGFuZGxl
ciBpZiB0aGUgcGFyZW50IGxvZ2dlciBpcyBtaXNzaW5nIGEgaGFuZGxlcgotICAgICAgICBpZiBs
b2dnZXIucGFyZW50IGFuZCBsZW4obG9nZ2VyLnBhcmVudC5oYW5kbGVycykgPT0gMDoKKyAgICAg
ICAgcGFyZW50ID0gbG9nZ2VyLnBhcmVudAorICAgICAgICBhc3NlcnQgaXNpbnN0YW5jZShwYXJl
bnQsIGxvZ2dpbmcuTG9nZ2VyKQorICAgICAgICBpZiBwYXJlbnQgYW5kIGxlbihwYXJlbnQuaGFu
ZGxlcnMpID09IDA6CiAgICAgICAgICAgICBoYW5kbGVyID0gbG9nZ2luZy5TdHJlYW1IYW5kbGVy
KHN5cy5zdGRvdXQpCiAgICAgICAgICAgICBsb2dnZXIuYWRkSGFuZGxlcihoYW5kbGVyKQogICAg
IGlmIHByZWZpeDoKICAgICAgICAgZm9ybWF0ID0gbG9nZ2luZy5CQVNJQ19GT1JNQVQKICAgICBl
bHNlOgotICAgICAgICBmb3JtYXQgPSAiJShtZXNzYWdlKXMiCisgICAgICAgIGZvcm1hdCA9IHN0
cigiJShtZXNzYWdlKXMiKQogICAgIGZvcm1hdHRlciA9IGxvZ2dpbmcuRm9ybWF0dGVyKGZvcm1h
dCkKICAgICBmb3IgaGFuZGxlciBpbiBsb2dnZXIuaGFuZGxlcnM6CiAgICAgICAgIGhhbmRsZXIu
c2V0Rm9ybWF0dGVyKGZvcm1hdHRlcikKQEAgLTYyLDIxICs4NSwyMyBAQCB5b3UgY291bGQgYWRk
IHRoZSBmb2xsb3dpbmcgbGluZSB0byB0aGUgbGludC53aGl0ZWxpc3QgZmlsZS4KICVzOiAlcyIi
IgogCiBkZWYgYWxsX2ZpbGVzeXN0ZW1fcGF0aHMocmVwb19yb290LCBzdWJkaXI9Tm9uZSk6Ci0g
ICAgcGF0aF9maWx0ZXIgPSBQYXRoRmlsdGVyKHJlcG9fcm9vdCwgZXh0cmFzPVsiLmdpdC8iXSkK
KyAgICAjIHR5cGU6IChzdHIsIE9wdGlvbmFsW3N0cl0pIC0+IEl0ZXJhYmxlW3N0cl0KKyAgICBw
YXRoX2ZpbHRlciA9IFBhdGhGaWx0ZXIocmVwb19yb290LCBleHRyYXM9W3N0cigiLmdpdC8iKV0p
CiAgICAgaWYgc3ViZGlyOgogICAgICAgICBleHBhbmRlZF9wYXRoID0gc3ViZGlyCiAgICAgZWxz
ZToKICAgICAgICAgZXhwYW5kZWRfcGF0aCA9IHJlcG9fcm9vdAotICAgIGZvciBkaXJwYXRoLCBk
aXJuYW1lcywgZmlsZW5hbWVzIGluIG9zLndhbGsoZXhwYW5kZWRfcGF0aCk6Ci0gICAgICAgIGZv
ciBmaWxlbmFtZSBpbiBmaWxlbmFtZXM6Ci0gICAgICAgICAgICBwYXRoID0gb3MucGF0aC5yZWxw
YXRoKG9zLnBhdGguam9pbihkaXJwYXRoLCBmaWxlbmFtZSksIHJlcG9fcm9vdCkKLSAgICAgICAg
ICAgIGlmIHBhdGhfZmlsdGVyKHBhdGgpOgotICAgICAgICAgICAgICAgIHlpZWxkIHBhdGgKLSAg
ICAgICAgZGlybmFtZXNbOl0gPSBbaXRlbSBmb3IgaXRlbSBpbiBkaXJuYW1lcyBpZgotICAgICAg
ICAgICAgICAgICAgICAgICBwYXRoX2ZpbHRlcihvcy5wYXRoLnJlbHBhdGgob3MucGF0aC5qb2lu
KGRpcnBhdGgsIGl0ZW0pICsgIi8iLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgcmVwb19yb290KSsiLyIpXQorICAgIGZvciBkaXJwYXRoLCBkaXJu
YW1lcywgZmlsZW5hbWVzIGluIHBhdGhfZmlsdGVyKHdhbGsoZXhwYW5kZWRfcGF0aCkpOgorICAg
ICAgICBmb3IgZmlsZW5hbWUsIF8gaW4gZmlsZW5hbWVzOgorICAgICAgICAgICAgcGF0aCA9IG9z
LnBhdGguam9pbihkaXJwYXRoLCBmaWxlbmFtZSkKKyAgICAgICAgICAgIGlmIHN1YmRpcjoKKyAg
ICAgICAgICAgICAgICBwYXRoID0gb3MucGF0aC5qb2luKHN1YmRpciwgcGF0aCkKKyAgICAgICAg
ICAgIGFzc2VydCBub3Qgb3MucGF0aC5pc2FicyhwYXRoKSwgcGF0aAorICAgICAgICAgICAgeWll
bGQgcGF0aAorCiAKIGRlZiBfYWxsX2ZpbGVzX2VxdWFsKHBhdGhzKToKKyAgICAjIHR5cGU6IChJ
dGVyYWJsZVtzdHJdKSAtPiBib29sCiAgICAgIiIiCiAgICAgQ2hlY2tzIGFsbCB0aGUgcGF0aHMg
YXJlIGZpbGVzIHRoYXQgYXJlIGJ5dGUtZm9yLWJ5dGUgaWRlbnRpY2FsCiAKQEAgLTExNSwzMiAr
MTQwLDYwIEBAIGRlZiBfYWxsX2ZpbGVzX2VxdWFsKHBhdGhzKToKIAogCiBkZWYgY2hlY2tfcGF0
aF9sZW5ndGgocmVwb19yb290LCBwYXRoKToKKyAgICAjIHR5cGU6IChzdHIsIHN0cikgLT4gTGlz
dFtydWxlcy5FcnJvcl0KICAgICBpZiBsZW4ocGF0aCkgKyAxID4gMTUwOgotICAgICAgICByZXR1
cm4gWygiUEFUSCBMRU5HVEgiLCAiLyVzIGxvbmdlciB0aGFuIG1heGltdW0gcGF0aCBsZW5ndGgg
KCVkID4gMTUwKSIgJSAocGF0aCwgbGVuKHBhdGgpICsgMSksIHBhdGgsIE5vbmUpXQorICAgICAg
ICByZXR1cm4gW3J1bGVzLlBhdGhMZW5ndGguZXJyb3IocGF0aCwgKHBhdGgsIGxlbihwYXRoKSAr
IDEpKV0KKyAgICByZXR1cm4gW10KKworCitkZWYgY2hlY2tfZmlsZV90eXBlKHJlcG9fcm9vdCwg
cGF0aCk6CisgICAgIyB0eXBlOiAoc3RyLCBzdHIpIC0+IExpc3RbcnVsZXMuRXJyb3JdCisgICAg
aWYgb3MucGF0aC5pc2xpbmsocGF0aCk6CisgICAgICAgIHJldHVybiBbcnVsZXMuRmlsZVR5cGUu
ZXJyb3IocGF0aCwgKHBhdGgsICJzeW1saW5rIikpXQogICAgIHJldHVybiBbXQogCiAKIGRlZiBj
aGVja193b3JrZXJfY29sbGlzaW9uKHJlcG9fcm9vdCwgcGF0aCk6CisgICAgIyB0eXBlOiAoc3Ry
LCBzdHIpIC0+IExpc3RbcnVsZXMuRXJyb3JdCiAgICAgZW5kaW5ncyA9IFsoIi5hbnkuaHRtbCIs
ICIuYW55LmpzIiksCiAgICAgICAgICAgICAgICAoIi5hbnkud29ya2VyLmh0bWwiLCAiLmFueS5q
cyIpLAogICAgICAgICAgICAgICAgKCIud29ya2VyLmh0bWwiLCAiLndvcmtlci5qcyIpXQogICAg
IGZvciBwYXRoX2VuZGluZywgZ2VuZXJhdGVkIGluIGVuZGluZ3M6CiAgICAgICAgIGlmIHBhdGgu
ZW5kc3dpdGgocGF0aF9lbmRpbmcpOgotICAgICAgICAgICAgcmV0dXJuIFsoIldPUktFUiBDT0xM
SVNJT04iLAotICAgICAgICAgICAgICAgICAgICAgInBhdGggZW5kcyB3aXRoICVzIHdoaWNoIGNv
bGxpZGVzIHdpdGggZ2VuZXJhdGVkIHRlc3RzIGZyb20gJXMgZmlsZXMiICUgKHBhdGhfZW5kaW5n
LCBnZW5lcmF0ZWQpLAotICAgICAgICAgICAgICAgICAgICAgcGF0aCwKLSAgICAgICAgICAgICAg
ICAgICAgIE5vbmUpXQorICAgICAgICAgICAgcmV0dXJuIFtydWxlcy5Xb3JrZXJDb2xsaXNpb24u
ZXJyb3IocGF0aCwgKHBhdGhfZW5kaW5nLCBnZW5lcmF0ZWQpKV0KICAgICByZXR1cm4gW10KIAog
CitkZWYgY2hlY2tfZ2l0aWdub3JlX2ZpbGUocmVwb19yb290LCBwYXRoKToKKyAgICAjIHR5cGU6
IChzdHIsIHN0cikgLT4gTGlzdFtydWxlcy5FcnJvcl0KKyAgICBpZiBub3QgcGF0aC5lbmRzd2l0
aCgiLmdpdGlnbm9yZSIpOgorICAgICAgICByZXR1cm4gW10KKworICAgIHBhdGhfcGFydHMgPSBw
YXRoLnNwbGl0KG9zLnBhdGguc2VwKQorICAgIGlmIGxlbihwYXRoX3BhcnRzKSA9PSAxOgorICAg
ICAgICByZXR1cm4gW10KKworICAgIGlmIHBhdGhfcGFydHNbLTFdICE9ICIuZ2l0aWdub3JlIjoK
KyAgICAgICAgcmV0dXJuIFtdCisKKyAgICBpZiAocGF0aF9wYXJ0c1swXSBpbiBbInRvb2xzIiwg
ImRvY3MiXSBvcgorICAgICAgICBwYXRoX3BhcnRzWzoyXSA9PSBbInJlc291cmNlcyIsICJ3ZWJp
ZGwyIl0gb3IKKyAgICAgICAgcGF0aF9wYXJ0c1s6M10gPT0gWyJjc3MiLCAidG9vbHMiLCAiYXBp
Y2xpZW50Il0pOgorICAgICAgICByZXR1cm4gW10KKworICAgIHJldHVybiBbcnVsZXMuR2l0SWdu
b3JlRmlsZS5lcnJvcihwYXRoKV0KKworCiBkZWYgY2hlY2tfYWhlbV9jb3B5KHJlcG9fcm9vdCwg
cGF0aCk6CisgICAgIyB0eXBlOiAoc3RyLCBzdHIpIC0+IExpc3RbcnVsZXMuRXJyb3JdCiAgICAg
bHBhdGggPSBwYXRoLmxvd2VyKCkKICAgICBpZiAiYWhlbSIgaW4gbHBhdGggYW5kIGxwYXRoLmVu
ZHN3aXRoKCIudHRmIik6Ci0gICAgICAgIHJldHVybiBbKCJBSEVNIENPUFkiLCAiRG9uJ3QgYWRk
IGV4dHJhIGNvcGllcyBvZiBBaGVtLCB1c2UgL2ZvbnRzL0FoZW0udHRmIiwgcGF0aCwgTm9uZSld
CisgICAgICAgIHJldHVybiBbcnVsZXMuQWhlbUNvcHkuZXJyb3IocGF0aCldCiAgICAgcmV0dXJu
IFtdCiAKIAogZGVmIGNoZWNrX2dpdF9pZ25vcmUocmVwb19yb290LCBwYXRocyk6CisgICAgIyB0
eXBlOiAoc3RyLCBMaXN0W3N0cl0pIC0+IExpc3RbcnVsZXMuRXJyb3JdCiAgICAgZXJyb3JzID0g
W10KICAgICB3aXRoIHRlbXBmaWxlLlRlbXBvcmFyeUZpbGUoJ3crJykgYXMgZjoKICAgICAgICAg
Zi53cml0ZSgnXG4nLmpvaW4ocGF0aHMpKQpAQCAtMTU0LDggKzIwNyw3IEBAIGRlZiBjaGVja19n
aXRfaWdub3JlKHJlcG9fcm9vdCwgcGF0aHMpOgogICAgICAgICAgICAgICAgICMgSWYgdGhlIG1h
dGNoaW5nIGZpbHRlciByZXBvcnRlZCBieSBjaGVjay1pZ25vcmUgaXMgYSBzcGVjaWFsLWNhc2Ug
ZXhjZXB0aW9uLAogICAgICAgICAgICAgICAgICMgdGhhdCdzIGZpbmUuIE90aGVyd2lzZSwgaXQg
cmVxdWlyZXMgYSBuZXcgc3BlY2lhbC1jYXNlIGV4Y2VwdGlvbi4KICAgICAgICAgICAgICAgICBp
ZiBmaWx0ZXJfc3RyaW5nWzBdICE9ICchJzoKLSAgICAgICAgICAgICAgICAgICAgZXJyb3JzICs9
IFsoIklHTk9SRUQgUEFUSCIsICIlcyBtYXRjaGVzIGFuIGlnbm9yZSBmaWx0ZXIgaW4gLmdpdGln
bm9yZSAtICIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInBsZWFzZSBhZGQgYSAu
Z2l0aWdub3JlIGV4Y2VwdGlvbiIgJSBwYXRoLCBwYXRoLCBOb25lKV0KKyAgICAgICAgICAgICAg
ICAgICAgZXJyb3JzLmFwcGVuZChydWxlcy5JZ25vcmVkUGF0aC5lcnJvcihwYXRoLCAocGF0aCwp
KSkKICAgICAgICAgZXhjZXB0IHN1YnByb2Nlc3MuQ2FsbGVkUHJvY2Vzc0Vycm9yOgogICAgICAg
ICAgICAgIyBOb256ZXJvIHJldHVybiBjb2RlIG1lYW5zIHRoYXQgbm8gbWF0Y2ggZXhpc3RzLgog
ICAgICAgICAgICAgcGFzcwpAQCAtMTY4LDYgKzIyMCw3IEBAIHczY19kZXZfcmUgPSByZS5jb21w
aWxlKHIiaHR0cHM/XDpcL1wvZGV2XC53M2M/XC5vcmdcL1teLz8jXStcLyhbXi8/I10rKSIpCiAK
IAogZGVmIGNoZWNrX2Nzc19nbG9iYWxseV91bmlxdWUocmVwb19yb290LCBwYXRocyk6CisgICAg
IyB0eXBlOiAoc3RyLCBMaXN0W3N0cl0pIC0+IExpc3RbcnVsZXMuRXJyb3JdCiAgICAgIiIiCiAg
ICAgQ2hlY2tzIHRoYXQgQ1NTIGZpbGVuYW1lcyBhcmUgc3VmZmljaWVudGx5IHVuaXF1ZQogCkBA
IC0xODUsMTMgKzIzOCwxNiBAQCBkZWYgY2hlY2tfY3NzX2dsb2JhbGx5X3VuaXF1ZShyZXBvX3Jv
b3QsIHBhdGhzKToKICAgICA6cmV0dXJuczogYSBsaXN0IG9mIGVycm9ycyBmb3VuZCBpbiBgYHBh
dGhzYGAKIAogICAgICIiIgotICAgIHRlc3RfZmlsZXMgPSBkZWZhdWx0ZGljdChzZXQpCi0gICAg
cmVmX2ZpbGVzID0gZGVmYXVsdGRpY3Qoc2V0KQotICAgIHN1cHBvcnRfZmlsZXMgPSBkZWZhdWx0
ZGljdChzZXQpCisgICAgdGVzdF9maWxlcyA9IGRlZmF1bHRkaWN0KHNldCkgICMgdHlwZTogRGlj
dFtVbmlvbltieXRlcywgVGV4dF0sIFNldFtzdHJdXQorICAgIHJlZl9maWxlcyA9IGRlZmF1bHRk
aWN0KHNldCkgICMgdHlwZTogRGljdFtVbmlvbltieXRlcywgVGV4dF0sIFNldFtzdHJdXQorICAg
IHN1cHBvcnRfZmlsZXMgPSBkZWZhdWx0ZGljdChzZXQpICAjIHR5cGU6IERpY3RbVW5pb25bYnl0
ZXMsIFRleHRdLCBTZXRbc3RyXV0KIAogICAgIGZvciBwYXRoIGluIHBhdGhzOgogICAgICAgICBp
ZiBvcy5uYW1lID09ICJudCI6Ci0gICAgICAgICAgICBwYXRoID0gcGF0aC5yZXBsYWNlKCJcXCIs
ICIvIikKKyAgICAgICAgICAgIGlmIGlzaW5zdGFuY2UocGF0aCwgYmluYXJ5X3R5cGUpOgorICAg
ICAgICAgICAgICAgIHBhdGggPSBwYXRoLnJlcGxhY2UoYiJcXCIsIGIiLyIpCisgICAgICAgICAg
ICBlbHNlOgorICAgICAgICAgICAgICAgIHBhdGggPSBwYXRoLnJlcGxhY2UodSJcXCIsIHUiLyIp
CiAKICAgICAgICAgaWYgbm90IHBhdGguc3RhcnRzd2l0aCgiY3NzLyIpOgogICAgICAgICAgICAg
Y29udGludWUKQEAgLTIxMSwxMiArMjY3LDE3IEBAIGRlZiBjaGVja19jc3NfZ2xvYmFsbHlfdW5p
cXVlKHJlcG9fcm9vdCwgcGF0aHMpOgogICAgICAgICAgICAgICAgIGFueShwYXJ0c1s6bGVuKG5v
bl90ZXN0X3BhdGgpXSA9PSBsaXN0KG5vbl90ZXN0X3BhdGgpIGZvciBub25fdGVzdF9wYXRoIGlu
IHNvdXJjZV9maWxlLmRpcl9wYXRoX25vbl90ZXN0KSk6CiAgICAgICAgICAgICAgICAgY29udGlu
dWUKIAotICAgICAgICAgICAgbmFtZSA9IHBhdGhbb2Zmc2V0KzE6XQotICAgICAgICAgICAgc3Vw
cG9ydF9maWxlc1tuYW1lXS5hZGQocGF0aCkKKyAgICAgICAgICAgIHN1cHBvcnRfbmFtZSA9IHBh
dGhbb2Zmc2V0KzE6XQorICAgICAgICAgICAgc3VwcG9ydF9maWxlc1tzdXBwb3J0X25hbWVdLmFk
ZChwYXRoKQogICAgICAgICBlbGlmIHNvdXJjZV9maWxlLm5hbWVfaXNfcmVmZXJlbmNlOgogICAg
ICAgICAgICAgcmVmX2ZpbGVzW3NvdXJjZV9maWxlLm5hbWVdLmFkZChwYXRoKQogICAgICAgICBl
bHNlOgotICAgICAgICAgICAgdGVzdF9maWxlc1tzb3VyY2VfZmlsZS5uYW1lXS5hZGQocGF0aCkK
KyAgICAgICAgICAgIHRlc3RfbmFtZSA9IHNvdXJjZV9maWxlLm5hbWUgICMgdHlwZTogVW5pb25b
Ynl0ZXMsIFRleHRdCisgICAgICAgICAgICBpZiBpc2luc3RhbmNlKHRlc3RfbmFtZSwgYnl0ZXMp
OgorICAgICAgICAgICAgICAgIHRlc3RfbmFtZSA9IHRlc3RfbmFtZS5yZXBsYWNlKGInLW1hbnVh
bCcsIGInJykKKyAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgdGVzdF9uYW1lID0g
dGVzdF9uYW1lLnJlcGxhY2UodSctbWFudWFsJywgdScnKQorICAgICAgICAgICAgdGVzdF9maWxl
c1t0ZXN0X25hbWVdLmFkZChwYXRoKQogCiAgICAgZXJyb3JzID0gW10KIApAQCAtMjI0LDcgKzI4
NSw3IEBAIGRlZiBjaGVja19jc3NfZ2xvYmFsbHlfdW5pcXVlKHJlcG9fcm9vdCwgcGF0aHMpOgog
ICAgICAgICBpZiBsZW4oY29sbGlkaW5nKSA+IDE6CiAgICAgICAgICAgICBpZiBub3QgX2FsbF9m
aWxlc19lcXVhbChbb3MucGF0aC5qb2luKHJlcG9fcm9vdCwgeCkgZm9yIHggaW4gY29sbGlkaW5n
XSk6CiAgICAgICAgICAgICAgICAgIyBPbmx5IGNvbXB1dGUgYnlfc3BlYyBpZiB0aGVyZSBhcmUg
cHJpbWEtZmFjaWUgY29sbGlzaW9ucyBiZWNhdXNlIG9mIGNvc3QKLSAgICAgICAgICAgICAgICBi
eV9zcGVjID0gZGVmYXVsdGRpY3Qoc2V0KQorICAgICAgICAgICAgICAgIGJ5X3NwZWMgPSBkZWZh
dWx0ZGljdChzZXQpICAjIHR5cGU6IERpY3RbVGV4dCwgU2V0W3N0cl1dCiAgICAgICAgICAgICAg
ICAgZm9yIHBhdGggaW4gY29sbGlkaW5nOgogICAgICAgICAgICAgICAgICAgICBzb3VyY2VfZmls
ZSA9IFNvdXJjZUZpbGUocmVwb19yb290LCBwYXRoLCAiLyIpCiAgICAgICAgICAgICAgICAgICAg
IGZvciBsaW5rIGluIHNvdXJjZV9maWxlLnNwZWNfbGlua3M6CkBAIC0yMzcsNTIgKzI5OCw0OSBA
QCBkZWYgY2hlY2tfY3NzX2dsb2JhbGx5X3VuaXF1ZShyZXBvX3Jvb3QsIHBhdGhzKToKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZQogICAgICAgICAgICAgICAgICAgICAgICAg
Ynlfc3BlY1tzcGVjXS5hZGQocGF0aCkKIAotICAgICAgICAgICAgICAgIGZvciBzcGVjLCBwYXRo
cyBpbiBpdGVyaXRlbXMoYnlfc3BlYyk6Ci0gICAgICAgICAgICAgICAgICAgIGlmIG5vdCBfYWxs
X2ZpbGVzX2VxdWFsKFtvcy5wYXRoLmpvaW4ocmVwb19yb290LCB4KSBmb3IgeCBpbiBwYXRoc10p
OgotICAgICAgICAgICAgICAgICAgICAgICAgZm9yIHggaW4gcGF0aHM6Ci0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgZXJyb3JzLmFwcGVuZCgoIkNTUy1DT0xMSURJTkctVEVTVC1OQU1FIiwK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiVGhlIGZpbGVuYW1l
ICVzIGluIHRoZSAlcyB0ZXN0c3VpdGUgaXMgc2hhcmVkIGJ5OiAlcyIKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAlIChuYW1lLAotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNwZWMsCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIiwgIi5qb2luKHNvcnRlZChwYXRocykpKSwKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB4LAotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5vbmUpKQotCi0gICAgZm9yIGVycm9yX25hbWUs
IGQgaW4gWygiQ1NTLUNPTExJRElORy1SRUYtTkFNRSIsIHJlZl9maWxlcyksCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICgiQ1NTLUNPTExJRElORy1TVVBQT1JULU5BTUUiLCBzdXBwb3J0X2Zp
bGVzKV06CisgICAgICAgICAgICAgICAgZm9yIHNwZWMsIHNwZWNfcGF0aHMgaW4gaXRlcml0ZW1z
KGJ5X3NwZWMpOgorICAgICAgICAgICAgICAgICAgICBpZiBub3QgX2FsbF9maWxlc19lcXVhbChb
b3MucGF0aC5qb2luKHJlcG9fcm9vdCwgeCkgZm9yIHggaW4gc3BlY19wYXRoc10pOgorICAgICAg
ICAgICAgICAgICAgICAgICAgZm9yIHggaW4gc3BlY19wYXRoczoKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBjb250ZXh0MSA9IChuYW1lLCBzcGVjLCAiLCAiLmpvaW4oc29ydGVkKHNwZWNf
cGF0aHMpKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBlcnJvcnMuYXBwZW5kKHJ1bGVz
LkNTU0NvbGxpZGluZ1Rlc3ROYW1lLmVycm9yKHgsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250ZXh0
MSkpCisKKyAgICBmb3IgcnVsZV9jbGFzcywgZCBpbiBbKHJ1bGVzLkNTU0NvbGxpZGluZ1JlZk5h
bWUsIHJlZl9maWxlcyksCisgICAgICAgICAgICAgICAgICAgICAgICAgIChydWxlcy5DU1NDb2xs
aWRpbmdTdXBwb3J0TmFtZSwgc3VwcG9ydF9maWxlcyldOgogICAgICAgICBmb3IgbmFtZSwgY29s
bGlkaW5nIGluIGl0ZXJpdGVtcyhkKToKICAgICAgICAgICAgIGlmIGxlbihjb2xsaWRpbmcpID4g
MToKICAgICAgICAgICAgICAgICBpZiBub3QgX2FsbF9maWxlc19lcXVhbChbb3MucGF0aC5qb2lu
KHJlcG9fcm9vdCwgeCkgZm9yIHggaW4gY29sbGlkaW5nXSk6CisgICAgICAgICAgICAgICAgICAg
IGNvbnRleHQyID0gKG5hbWUsICIsICIuam9pbihzb3J0ZWQoY29sbGlkaW5nKSkpCisKICAgICAg
ICAgICAgICAgICAgICAgZm9yIHggaW4gY29sbGlkaW5nOgotICAgICAgICAgICAgICAgICAgICAg
ICAgZXJyb3JzLmFwcGVuZCgoZXJyb3JfbmFtZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICJUaGUgZmlsZW5hbWUgJXMgaXMgc2hhcmVkIGJ5OiAlcyIgJSAobmFtZSwK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIiwgIi5qb2luKHNvcnRlZChjb2xsaWRpbmcpKSksCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB4LAotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgTm9uZSkpCisgICAgICAgICAgICAgICAgICAgICAgICBlcnJv
cnMuYXBwZW5kKHJ1bGVfY2xhc3MuZXJyb3IoeCwgY29udGV4dDIpKQogCiAgICAgcmV0dXJuIGVy
cm9ycwogCiAKIGRlZiBwYXJzZV93aGl0ZWxpc3QoZik6CisgICAgIyB0eXBlOiAoSU9bYnl0ZXNd
KSAtPiBUdXBsZVtXaGl0ZWxpc3QsIFNldFtUZXh0XV0KICAgICAiIiIKICAgICBQYXJzZSB0aGUg
d2hpdGVsaXN0IGZpbGUgZ2l2ZW4gYnkgYGZgLCBhbmQgcmV0dXJuIHRoZSBwYXJzZWQgc3RydWN0
dXJlLgogICAgICIiIgogCi0gICAgZGF0YSA9IGRlZmF1bHRkaWN0KGxhbWJkYTpkZWZhdWx0ZGlj
dChzZXQpKQotICAgIGlnbm9yZWRfZmlsZXMgPSBzZXQoKQorICAgIGRhdGEgPSBkZWZhdWx0ZGlj
dChsYW1iZGE6ZGVmYXVsdGRpY3Qoc2V0KSkgICMgdHlwZTogV2hpdGVsaXN0CisgICAgaWdub3Jl
ZF9maWxlcyA9IHNldCgpICAjIHR5cGU6IFNldFtUZXh0XQogCiAgICAgZm9yIGxpbmUgaW4gZjoK
ICAgICAgICAgbGluZSA9IGxpbmUuc3RyaXAoKQogICAgICAgICBpZiBub3QgbGluZSBvciBsaW5l
LnN0YXJ0c3dpdGgoIiMiKToKICAgICAgICAgICAgIGNvbnRpbnVlCiAgICAgICAgIHBhcnRzID0g
W2l0ZW0uc3RyaXAoKSBmb3IgaXRlbSBpbiBsaW5lLnNwbGl0KCI6IildCisKICAgICAgICAgaWYg
bGVuKHBhcnRzKSA9PSAyOgotICAgICAgICAgICAgcGFydHMuYXBwZW5kKE5vbmUpCisgICAgICAg
ICAgICBlcnJvcl90eXBlc19zLCBmaWxlX21hdGNoID0gcGFydHMKKyAgICAgICAgICAgIGxpbmVf
bnVtYmVyID0gTm9uZSAgIyB0eXBlOiBPcHRpb25hbFtpbnRdCiAgICAgICAgIGVsc2U6Ci0gICAg
ICAgICAgICBwYXJ0c1stMV0gPSBpbnQocGFydHNbLTFdKQorICAgICAgICAgICAgZXJyb3JfdHlw
ZXNfcywgZmlsZV9tYXRjaCwgbGluZV9udW1iZXJfcyA9IHBhcnRzCisgICAgICAgICAgICBsaW5l
X251bWJlciA9IGludChsaW5lX251bWJlcl9zKQogCi0gICAgICAgIGVycm9yX3R5cGVzLCBmaWxl
X21hdGNoLCBsaW5lX251bWJlciA9IHBhcnRzCi0gICAgICAgIGVycm9yX3R5cGVzID0ge2l0ZW0u
c3RyaXAoKSBmb3IgaXRlbSBpbiBlcnJvcl90eXBlcy5zcGxpdCgiLCIpfQorICAgICAgICBlcnJv
cl90eXBlcyA9IHtpdGVtLnN0cmlwKCkgZm9yIGl0ZW0gaW4gZXJyb3JfdHlwZXNfcy5zcGxpdCgi
LCIpfQogICAgICAgICBmaWxlX21hdGNoID0gb3MucGF0aC5ub3JtY2FzZShmaWxlX21hdGNoKQog
CiAgICAgICAgIGlmICIqIiBpbiBlcnJvcl90eXBlczoKQEAgLTI5NSw2ICszNTMsNyBAQCBkZWYg
cGFyc2Vfd2hpdGVsaXN0KGYpOgogCiAKIGRlZiBmaWx0ZXJfd2hpdGVsaXN0X2Vycm9ycyhkYXRh
LCBlcnJvcnMpOgorICAgICMgdHlwZTogKFdoaXRlbGlzdCwgU2VxdWVuY2VbcnVsZXMuRXJyb3Jd
KSAtPiBMaXN0W3J1bGVzLkVycm9yXQogICAgICIiIgogICAgIEZpbHRlciBvdXQgdGhvc2UgZXJy
b3JzIHRoYXQgYXJlIHdoaXRlbGlzdGVkIGluIGBkYXRhYC4KICAgICAiIiIKQEAgLTMxNywxMzAg
KzM3Niw1MSBAQCBkZWYgZmlsdGVyX3doaXRlbGlzdF9lcnJvcnMoZGF0YSwgZXJyb3JzKToKIAog
ICAgIHJldHVybiBbaXRlbSBmb3IgaSwgaXRlbSBpbiBlbnVtZXJhdGUoZXJyb3JzKSBpZiBub3Qg
d2hpdGVsaXN0ZWRbaV1dCiAKLWNsYXNzIFJlZ2V4cChvYmplY3QpOgotICAgIHBhdHRlcm4gPSBO
b25lCi0gICAgZmlsZV9leHRlbnNpb25zID0gTm9uZQotICAgIGVycm9yID0gTm9uZQotICAgIF9y
ZSA9IE5vbmUKLQotICAgIGRlZiBfX2luaXRfXyhzZWxmKToKLSAgICAgICAgc2VsZi5fcmUgPSBy
ZS5jb21waWxlKHNlbGYucGF0dGVybikKLQotICAgIGRlZiBhcHBsaWVzKHNlbGYsIHBhdGgpOgot
ICAgICAgICByZXR1cm4gKHNlbGYuZmlsZV9leHRlbnNpb25zIGlzIE5vbmUgb3IKLSAgICAgICAg
ICAgICAgICBvcy5wYXRoLnNwbGl0ZXh0KHBhdGgpWzFdIGluIHNlbGYuZmlsZV9leHRlbnNpb25z
KQotCi0gICAgZGVmIHNlYXJjaChzZWxmLCBsaW5lKToKLSAgICAgICAgcmV0dXJuIHNlbGYuX3Jl
LnNlYXJjaChsaW5lKQotCi1jbGFzcyBUcmFpbGluZ1doaXRlc3BhY2VSZWdleHAoUmVnZXhwKToK
LSAgICBwYXR0ZXJuID0gYiJbIFx0XGZcdl0kIgotICAgIGVycm9yID0gIlRSQUlMSU5HIFdISVRF
U1BBQ0UiCi0gICAgZGVzY3JpcHRpb24gPSAiV2hpdGVzcGFjZSBhdCBFT0wiCi0KLWNsYXNzIFRh
YnNSZWdleHAoUmVnZXhwKToKLSAgICBwYXR0ZXJuID0gYiJeXHQiCi0gICAgZXJyb3IgPSAiSU5E
RU5UIFRBQlMiCi0gICAgZGVzY3JpcHRpb24gPSAiVGFicyB1c2VkIGZvciBpbmRlbnRhdGlvbiIK
LQotY2xhc3MgQ1JSZWdleHAoUmVnZXhwKToKLSAgICBwYXR0ZXJuID0gYiJcciQiCi0gICAgZXJy
b3IgPSAiQ1IgQVQgRU9MIgotICAgIGRlc2NyaXB0aW9uID0gIkNSIGNoYXJhY3RlciBpbiBsaW5l
IHNlcGFyYXRvciIKLQotY2xhc3MgU2V0VGltZW91dFJlZ2V4cChSZWdleHApOgotICAgIHBhdHRl
cm4gPSBiInNldFRpbWVvdXRccypcKCIKLSAgICBlcnJvciA9ICJTRVQgVElNRU9VVCIKLSAgICBm
aWxlX2V4dGVuc2lvbnMgPSBbIi5odG1sIiwgIi5odG0iLCAiLmpzIiwgIi54aHQiLCAiLnhodG1s
IiwgIi5zdmciXQotICAgIGRlc2NyaXB0aW9uID0gInNldFRpbWVvdXQgdXNlZDsgc3RlcF90aW1l
b3V0IHNob3VsZCB0eXBpY2FsbHkgYmUgdXNlZCBpbnN0ZWFkIgotCi1jbGFzcyBXM0NUZXN0T3Jn
UmVnZXhwKFJlZ2V4cCk6Ci0gICAgcGF0dGVybiA9IGIidzNjXC10ZXN0XC5vcmciCi0gICAgZXJy
b3IgPSAiVzNDLVRFU1QuT1JHIgotICAgIGRlc2NyaXB0aW9uID0gIkV4dGVybmFsIHczYy10ZXN0
Lm9yZyBkb21haW4gdXNlZCIKLQotY2xhc3MgV2ViUGxhdGZvcm1UZXN0UmVnZXhwKFJlZ2V4cCk6
Ci0gICAgcGF0dGVybiA9IGIid2ViXC1wbGF0Zm9ybVwudGVzdCIKLSAgICBlcnJvciA9ICJXRUIt
UExBVEZPUk0uVEVTVCIKLSAgICBkZXNjcmlwdGlvbiA9ICJJbnRlcm5hbCB3ZWItcGxhdGZvcm0u
dGVzdCBkb21haW4gdXNlZCIKLQotY2xhc3MgV2ViaWRsMlJlZ2V4cChSZWdleHApOgotICAgIHBh
dHRlcm4gPSBiIndlYmlkbDJcLmpzIgotICAgIGVycm9yID0gIldFQklETDIuSlMiCi0gICAgZGVz
Y3JpcHRpb24gPSAiTGVnYWN5IHdlYmlkbDIuanMgc2NyaXB0IHVzZWQiCi0KLWNsYXNzIENvbnNv
bGVSZWdleHAoUmVnZXhwKToKLSAgICBwYXR0ZXJuID0gYiJjb25zb2xlXC5bYS16QS1aXStccypc
KCIKLSAgICBlcnJvciA9ICJDT05TT0xFIgotICAgIGZpbGVfZXh0ZW5zaW9ucyA9IFsiLmh0bWwi
LCAiLmh0bSIsICIuanMiLCAiLnhodCIsICIueGh0bWwiLCAiLnN2ZyJdCi0gICAgZGVzY3JpcHRp
b24gPSAiQ29uc29sZSBsb2dnaW5nIEFQSSB1c2VkIgotCi1jbGFzcyBHZW5lcmF0ZVRlc3RzUmVn
ZXhwKFJlZ2V4cCk6Ci0gICAgcGF0dGVybiA9IGIiZ2VuZXJhdGVfdGVzdHNccypcKCIKLSAgICBl
cnJvciA9ICJHRU5FUkFURV9URVNUUyIKLSAgICBmaWxlX2V4dGVuc2lvbnMgPSBbIi5odG1sIiwg
Ii5odG0iLCAiLmpzIiwgIi54aHQiLCAiLnhodG1sIiwgIi5zdmciXQotICAgIGRlc2NyaXB0aW9u
ID0gImdlbmVyYXRlX3Rlc3RzIHVzZWQiCi0KLWNsYXNzIFByaW50UmVnZXhwKFJlZ2V4cCk6Ci0g
ICAgcGF0dGVybiA9IGIicHJpbnQoPzpcc3xccypcKCkiCi0gICAgZXJyb3IgPSAiUFJJTlQgU1RB
VEVNRU5UIgotICAgIGZpbGVfZXh0ZW5zaW9ucyA9IFsiLnB5Il0KLSAgICBkZXNjcmlwdGlvbiA9
ICJQcmludCBmdW5jdGlvbiB1c2VkIgotCi1jbGFzcyBMYXlvdXRUZXN0c1JlZ2V4cChSZWdleHAp
OgotICAgIHBhdHRlcm4gPSBiImV2ZW50U2VuZGVyfHRlc3RSdW5uZXJ8d2luZG93XC5pbnRlcm5h
bHMiCi0gICAgZXJyb3IgPSAiTEFZT1VUVEVTVFMgQVBJUyIKLSAgICBmaWxlX2V4dGVuc2lvbnMg
PSBbIi5odG1sIiwgIi5odG0iLCAiLmpzIiwgIi54aHQiLCAiLnhodG1sIiwgIi5zdmciXQotICAg
IGRlc2NyaXB0aW9uID0gImV2ZW50U2VuZGVyL3Rlc3RSdW5uZXIvd2luZG93LmludGVybmFscyB1
c2VkOyB0aGVzZSBhcmUgTGF5b3V0VGVzdHMtc3BlY2lmaWMgQVBJcyAoV2ViS2l0L0JsaW5rKSIK
LQotY2xhc3MgU3BlY2lhbFBvd2Vyc1JlZ2V4cChSZWdleHApOgotICAgIHBhdHRlcm4gPSBiIlNw
ZWNpYWxQb3dlcnMiCi0gICAgZXJyb3IgPSAiU1BFQ0lBTFBPV0VSUyBBUEkiCi0gICAgZmlsZV9l
eHRlbnNpb25zID0gWyIuaHRtbCIsICIuaHRtIiwgIi5qcyIsICIueGh0IiwgIi54aHRtbCIsICIu
c3ZnIl0KLSAgICBkZXNjcmlwdGlvbiA9ICJTcGVjaWFsUG93ZXJzIHVzZWQ7IHRoaXMgaXMgZ2Vj
a28tc3BlY2lmaWMgYW5kIG5vdCBzdXBwb3J0ZWQgaW4gd3B0IgotCi0KLXJlZ2V4cHMgPSBbaXRl
bSgpIGZvciBpdGVtIGluCi0gICAgICAgICAgIFtUcmFpbGluZ1doaXRlc3BhY2VSZWdleHAsCi0g
ICAgICAgICAgICBUYWJzUmVnZXhwLAotICAgICAgICAgICAgQ1JSZWdleHAsCi0gICAgICAgICAg
ICBTZXRUaW1lb3V0UmVnZXhwLAotICAgICAgICAgICAgVzNDVGVzdE9yZ1JlZ2V4cCwKLSAgICAg
ICAgICAgIFdlYlBsYXRmb3JtVGVzdFJlZ2V4cCwKLSAgICAgICAgICAgIFdlYmlkbDJSZWdleHAs
Ci0gICAgICAgICAgICBDb25zb2xlUmVnZXhwLAotICAgICAgICAgICAgR2VuZXJhdGVUZXN0c1Jl
Z2V4cCwKLSAgICAgICAgICAgIFByaW50UmVnZXhwLAotICAgICAgICAgICAgTGF5b3V0VGVzdHNS
ZWdleHAsCi0gICAgICAgICAgICBTcGVjaWFsUG93ZXJzUmVnZXhwXV0KKworcmVnZXhwcyA9IFtp
dGVtKCkgZm9yIGl0ZW0gaW4gICMgdHlwZTogaWdub3JlCisgICAgICAgICAgIFtydWxlcy5UcmFp
bGluZ1doaXRlc3BhY2VSZWdleHAsCisgICAgICAgICAgICBydWxlcy5UYWJzUmVnZXhwLAorICAg
ICAgICAgICAgcnVsZXMuQ1JSZWdleHAsCisgICAgICAgICAgICBydWxlcy5TZXRUaW1lb3V0UmVn
ZXhwLAorICAgICAgICAgICAgcnVsZXMuVzNDVGVzdE9yZ1JlZ2V4cCwKKyAgICAgICAgICAgIHJ1
bGVzLldlYlBsYXRmb3JtVGVzdFJlZ2V4cCwKKyAgICAgICAgICAgIHJ1bGVzLldlYmlkbDJSZWdl
eHAsCisgICAgICAgICAgICBydWxlcy5Db25zb2xlUmVnZXhwLAorICAgICAgICAgICAgcnVsZXMu
R2VuZXJhdGVUZXN0c1JlZ2V4cCwKKyAgICAgICAgICAgIHJ1bGVzLlByaW50UmVnZXhwLAorICAg
ICAgICAgICAgcnVsZXMuTGF5b3V0VGVzdHNSZWdleHAsCisgICAgICAgICAgICBydWxlcy5NaXNz
aW5nRGVwc1JlZ2V4cCwKKyAgICAgICAgICAgIHJ1bGVzLlNwZWNpYWxQb3dlcnNSZWdleHBdXQog
CiBkZWYgY2hlY2tfcmVnZXhwX2xpbmUocmVwb19yb290LCBwYXRoLCBmKToKLSAgICBlcnJvcnMg
PSBbXQorICAgICMgdHlwZTogKHN0ciwgc3RyLCBJT1tieXRlc10pIC0+IExpc3RbcnVsZXMuRXJy
b3JdCisgICAgZXJyb3JzID0gW10gICMgdHlwZTogTGlzdFtydWxlcy5FcnJvcl0KIAogICAgIGFw
cGxpY2FibGVfcmVnZXhwcyA9IFtyZWdleHAgZm9yIHJlZ2V4cCBpbiByZWdleHBzIGlmIHJlZ2V4
cC5hcHBsaWVzKHBhdGgpXQogCiAgICAgZm9yIGksIGxpbmUgaW4gZW51bWVyYXRlKGYpOgogICAg
ICAgICBmb3IgcmVnZXhwIGluIGFwcGxpY2FibGVfcmVnZXhwczoKICAgICAgICAgICAgIGlmIHJl
Z2V4cC5zZWFyY2gobGluZSk6Ci0gICAgICAgICAgICAgICAgZXJyb3JzLmFwcGVuZCgocmVnZXhw
LmVycm9yLCByZWdleHAuZGVzY3JpcHRpb24sIHBhdGgsIGkrMSkpCisgICAgICAgICAgICAgICAg
ZXJyb3JzLmFwcGVuZCgocmVnZXhwLm5hbWUsIHJlZ2V4cC5kZXNjcmlwdGlvbiwgcGF0aCwgaSsx
KSkKIAogICAgIHJldHVybiBlcnJvcnMKIAogZGVmIGNoZWNrX3BhcnNlZChyZXBvX3Jvb3QsIHBh
dGgsIGYpOgorICAgICMgdHlwZTogKHN0ciwgc3RyLCBJT1tieXRlc10pIC0+IExpc3RbcnVsZXMu
RXJyb3JdCiAgICAgc291cmNlX2ZpbGUgPSBTb3VyY2VGaWxlKHJlcG9fcm9vdCwgcGF0aCwgIi8i
LCBjb250ZW50cz1mLnJlYWQoKSkKIAotICAgIGVycm9ycyA9IFtdCisgICAgZXJyb3JzID0gW10g
ICMgdHlwZTogTGlzdFtydWxlcy5FcnJvcl0KIAogICAgIGlmIHBhdGguc3RhcnRzd2l0aCgiY3Nz
LyIpOgogICAgICAgICBpZiAoc291cmNlX2ZpbGUudHlwZSA9PSAic3VwcG9ydCIgYW5kCiAgICAg
ICAgICAgICBub3Qgc291cmNlX2ZpbGUubmFtZV9pc19ub25fdGVzdCBhbmQKICAgICAgICAgICAg
IG5vdCBzb3VyY2VfZmlsZS5uYW1lX2lzX3JlZmVyZW5jZSk6Ci0gICAgICAgICAgICByZXR1cm4g
WygiU1VQUE9SVC1XUk9ORy1ESVIiLCAiU3VwcG9ydCBmaWxlIG5vdCBpbiBzdXBwb3J0IGRpcmVj
dG9yeSIsIHBhdGgsIE5vbmUpXQorICAgICAgICAgICAgcmV0dXJuIFtydWxlcy5TdXBwb3J0V3Jv
bmdEaXIuZXJyb3IocGF0aCldCiAKICAgICAgICAgaWYgKHNvdXJjZV9maWxlLnR5cGUgIT0gInN1
cHBvcnQiIGFuZAogICAgICAgICAgICAgbm90IHNvdXJjZV9maWxlLm5hbWVfaXNfcmVmZXJlbmNl
IGFuZAogICAgICAgICAgICAgbm90IHNvdXJjZV9maWxlLnNwZWNfbGlua3MpOgotICAgICAgICAg
ICAgcmV0dXJuIFsoIk1JU1NJTkctTElOSyIsICJUZXN0Y2FzZSBmaWxlIG11c3QgaGF2ZSBhIGxp
bmsgdG8gYSBzcGVjIiwgcGF0aCwgTm9uZSldCisgICAgICAgICAgICByZXR1cm4gW3J1bGVzLk1p
c3NpbmdMaW5rLmVycm9yKHBhdGgpXQogCiAgICAgaWYgc291cmNlX2ZpbGUubmFtZV9pc19ub25f
dGVzdDoKICAgICAgICAgcmV0dXJuIFtdCkBAIC00NDksMzAgKzQyOSwzMSBAQCBkZWYgY2hlY2tf
cGFyc2VkKHJlcG9fcm9vdCwgcGF0aCwgZik6CiAgICAgICAgIHJldHVybiBbXQogCiAgICAgaWYg
c291cmNlX2ZpbGUucm9vdCBpcyBOb25lOgotICAgICAgICByZXR1cm4gWygiUEFSU0UtRkFJTEVE
IiwgIlVuYWJsZSB0byBwYXJzZSBmaWxlIiwgcGF0aCwgTm9uZSldCisgICAgICAgIHJldHVybiBb
cnVsZXMuUGFyc2VGYWlsZWQuZXJyb3IocGF0aCldCiAKICAgICBpZiBzb3VyY2VfZmlsZS50eXBl
ID09ICJtYW51YWwiIGFuZCBub3Qgc291cmNlX2ZpbGUubmFtZV9pc19tYW51YWw6Ci0gICAgICAg
IGVycm9ycy5hcHBlbmQoKCJDT05URU5ULU1BTlVBTCIsICJNYW51YWwgdGVzdCB3aG9zZSBmaWxl
bmFtZSBkb2Vzbid0IGVuZCBpbiAnLW1hbnVhbCciLCBwYXRoLCBOb25lKSkKKyAgICAgICAgZXJy
b3JzLmFwcGVuZChydWxlcy5Db250ZW50TWFudWFsLmVycm9yKHBhdGgpKQogCiAgICAgaWYgc291
cmNlX2ZpbGUudHlwZSA9PSAidmlzdWFsIiBhbmQgbm90IHNvdXJjZV9maWxlLm5hbWVfaXNfdmlz
dWFsOgotICAgICAgICBlcnJvcnMuYXBwZW5kKCgiQ09OVEVOVC1WSVNVQUwiLCAiVmlzdWFsIHRl
c3Qgd2hvc2UgZmlsZW5hbWUgZG9lc24ndCBlbmQgaW4gJy12aXN1YWwnIiwgcGF0aCwgTm9uZSkp
CisgICAgICAgIGVycm9ycy5hcHBlbmQocnVsZXMuQ29udGVudFZpc3VhbC5lcnJvcihwYXRoKSkK
IAorICAgIGFib3V0X2JsYW5rX3BhcnRzID0gdXJsc3BsaXQoImFib3V0OmJsYW5rIikKICAgICBm
b3IgcmVmdGVzdF9ub2RlIGluIHNvdXJjZV9maWxlLnJlZnRlc3Rfbm9kZXM6CiAgICAgICAgIGhy
ZWYgPSByZWZ0ZXN0X25vZGUuYXR0cmliLmdldCgiaHJlZiIsICIiKS5zdHJpcChzcGFjZV9jaGFy
cykKICAgICAgICAgcGFydHMgPSB1cmxzcGxpdChocmVmKQotICAgICAgICBpZiAocGFydHMuc2No
ZW1lIG9yIHBhcnRzLm5ldGxvYykgYW5kIHBhcnRzICE9IHVybHNwbGl0KCJhYm91dDpibGFuayIp
OgotICAgICAgICAgICAgZXJyb3JzLmFwcGVuZCgoIkFCU09MVVRFLVVSTC1SRUYiLAotICAgICAg
ICAgICAgICAgICAgICAgIlJlZmVyZW5jZSB0ZXN0IHdpdGggYSByZWZlcmVuY2UgZmlsZSBzcGVj
aWZpZWQgdmlhIGFuIGFic29sdXRlIFVSTDogJyVzJyIgJSBocmVmLCBwYXRoLCBOb25lKSkKKwor
ICAgICAgICBpZiBwYXJ0cyA9PSBhYm91dF9ibGFua19wYXJ0czoKKyAgICAgICAgICAgIGNvbnRp
bnVlCisKKyAgICAgICAgaWYgKHBhcnRzLnNjaGVtZSBvciBwYXJ0cy5uZXRsb2MpOgorICAgICAg
ICAgICAgZXJyb3JzLmFwcGVuZChydWxlcy5BYnNvbHV0ZVVybFJlZi5lcnJvcihwYXRoLCAoaHJl
ZiwpKSkKICAgICAgICAgICAgIGNvbnRpbnVlCiAKICAgICAgICAgcmVmX3VybCA9IHVybGpvaW4o
c291cmNlX2ZpbGUudXJsLCBocmVmKQogICAgICAgICByZWZfcGFydHMgPSB1cmxzcGxpdChyZWZf
dXJsKQogCiAgICAgICAgIGlmIHNvdXJjZV9maWxlLnVybCA9PSByZWZfdXJsOgotICAgICAgICAg
ICAgZXJyb3JzLmFwcGVuZCgoIlNBTUUtRklMRS1SRUYiLAotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIlJlZmVyZW5jZSB0ZXN0IHdoaWNoIHBvaW50cyBhdCBpdHNlbGYgYXMgYSByZWZlcmVu
Y2UiLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgcGF0aCwKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgIE5vbmUpKQorICAgICAgICAgICAgZXJyb3JzLmFwcGVuZChydWxlcy5TYW1lRmls
ZVJlZi5lcnJvcihwYXRoKSkKICAgICAgICAgICAgIGNvbnRpbnVlCiAKICAgICAgICAgYXNzZXJ0
IHJlZl9wYXJ0cy5wYXRoICE9ICIiCkBAIC00ODEsNDUgKzQ2MiwzOSBAQCBkZWYgY2hlY2tfcGFy
c2VkKHJlcG9fcm9vdCwgcGF0aCwgZik6CiAgICAgICAgIHJlZmVyZW5jZV9yZWwgPSByZWZ0ZXN0
X25vZGUuYXR0cmliLmdldCgicmVsIiwgIiIpCiAKICAgICAgICAgaWYgbm90IG9zLnBhdGguaXNm
aWxlKHJlZmVyZW5jZV9maWxlKToKLSAgICAgICAgICAgIGVycm9ycy5hcHBlbmQoKCJOT04tRVhJ
U1RFTlQtUkVGIiwKLSAgICAgICAgICAgICAgICAgICAgICJSZWZlcmVuY2UgdGVzdCB3aXRoIGEg
bm9uLWV4aXN0ZW50ICclcycgcmVsYXRpb25zaGlwIHJlZmVyZW5jZTogJyVzJyIgJSAocmVmZXJl
bmNlX3JlbCwgaHJlZiksIHBhdGgsIE5vbmUpKQorICAgICAgICAgICAgZXJyb3JzLmFwcGVuZChy
dWxlcy5Ob25leGlzdGVudFJlZi5lcnJvcihwYXRoLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAocmVmZXJlbmNlX3JlbCwgaHJlZikpKQogCiAg
ICAgaWYgbGVuKHNvdXJjZV9maWxlLnRpbWVvdXRfbm9kZXMpID4gMToKLSAgICAgICAgZXJyb3Jz
LmFwcGVuZCgoIk1VTFRJUExFLVRJTUVPVVQiLCAiTW9yZSB0aGFuIG9uZSBtZXRhIG5hbWU9J3Rp
bWVvdXQnIiwgcGF0aCwgTm9uZSkpCisgICAgICAgIGVycm9ycy5hcHBlbmQocnVsZXMuTXVsdGlw
bGVUaW1lb3V0LmVycm9yKHBhdGgpKQogCiAgICAgZm9yIHRpbWVvdXRfbm9kZSBpbiBzb3VyY2Vf
ZmlsZS50aW1lb3V0X25vZGVzOgogICAgICAgICB0aW1lb3V0X3ZhbHVlID0gdGltZW91dF9ub2Rl
LmF0dHJpYi5nZXQoImNvbnRlbnQiLCAiIikubG93ZXIoKQogICAgICAgICBpZiB0aW1lb3V0X3Zh
bHVlICE9ICJsb25nIjoKLSAgICAgICAgICAgIGVycm9ycy5hcHBlbmQoKCJJTlZBTElELVRJTUVP
VVQiLCAiSW52YWxpZCB0aW1lb3V0IHZhbHVlICVzIiAlIHRpbWVvdXRfdmFsdWUsIHBhdGgsIE5v
bmUpKQorICAgICAgICAgICAgZXJyb3JzLmFwcGVuZChydWxlcy5JbnZhbGlkVGltZW91dC5lcnJv
cihwYXRoLCAodGltZW91dF92YWx1ZSwpKSkKIAogICAgIGlmIHNvdXJjZV9maWxlLnRlc3RoYXJu
ZXNzX25vZGVzOgogICAgICAgICBpZiBsZW4oc291cmNlX2ZpbGUudGVzdGhhcm5lc3Nfbm9kZXMp
ID4gMToKLSAgICAgICAgICAgIGVycm9ycy5hcHBlbmQoKCJNVUxUSVBMRS1URVNUSEFSTkVTUyIs
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAiTW9yZSB0aGFuIG9uZSA8c2NyaXB0IHNyYz0n
L3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyc+IiwgcGF0aCwgTm9uZSkpCisgICAgICAgICAgICBl
cnJvcnMuYXBwZW5kKHJ1bGVzLk11bHRpcGxlVGVzdGhhcm5lc3MuZXJyb3IocGF0aCkpCiAKICAg
ICAgICAgdGVzdGhhcm5lc3NyZXBvcnRfbm9kZXMgPSBzb3VyY2VfZmlsZS5yb290LmZpbmRhbGwo
Ii4vL3todHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sfXNjcmlwdFtAc3JjPScvcmVzb3VyY2Vz
L3Rlc3RoYXJuZXNzcmVwb3J0LmpzJ10iKQogICAgICAgICBpZiBub3QgdGVzdGhhcm5lc3NyZXBv
cnRfbm9kZXM6Ci0gICAgICAgICAgICBlcnJvcnMuYXBwZW5kKCgiTUlTU0lORy1URVNUSEFSTkVT
U1JFUE9SVCIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAiTWlzc2luZyA8c2NyaXB0IHNy
Yz0nL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyc+IiwgcGF0aCwgTm9uZSkpCisgICAg
ICAgICAgICBlcnJvcnMuYXBwZW5kKHJ1bGVzLk1pc3NpbmdUZXN0aGFybmVzc1JlcG9ydC5lcnJv
cihwYXRoKSkKICAgICAgICAgZWxzZToKICAgICAgICAgICAgIGlmIGxlbih0ZXN0aGFybmVzc3Jl
cG9ydF9ub2RlcykgPiAxOgotICAgICAgICAgICAgICAgIGVycm9ycy5hcHBlbmQoKCJNVUxUSVBM
RS1URVNUSEFSTkVTU1JFUE9SVCIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIk1v
cmUgdGhhbiBvbmUgPHNjcmlwdCBzcmM9Jy9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMn
PiIsIHBhdGgsIE5vbmUpKQorICAgICAgICAgICAgICAgIGVycm9ycy5hcHBlbmQocnVsZXMuTXVs
dGlwbGVUZXN0aGFybmVzc1JlcG9ydC5lcnJvcihwYXRoKSkKIAogICAgICAgICB0ZXN0aGFybmVz
c2Nzc19ub2RlcyA9IHNvdXJjZV9maWxlLnJvb3QuZmluZGFsbCgiLi8ve2h0dHA6Ly93d3cudzMu
b3JnLzE5OTkveGh0bWx9bGlua1tAaHJlZj0nL3Jlc291cmNlcy90ZXN0aGFybmVzcy5jc3MnXSIp
CiAgICAgICAgIGlmIHRlc3RoYXJuZXNzY3NzX25vZGVzOgotICAgICAgICAgICAgZXJyb3JzLmFw
cGVuZCgoIlBSRVNFTlQtVEVTVEhBUk5FU1NDU1MiLAotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIkV4cGxpY2l0IGxpbmsgdG8gdGVzdGhhcm5lc3MuY3NzIHByZXNlbnQiLCBwYXRoLCBOb25l
KSkKKyAgICAgICAgICAgIGVycm9ycy5hcHBlbmQocnVsZXMuUHJlc2VudFRlc3RoYXJuZXNzQ1NT
LmVycm9yKHBhdGgpKQogCiAgICAgICAgIGZvciBlbGVtZW50IGluIHNvdXJjZV9maWxlLnZhcmlh
bnRfbm9kZXM6CiAgICAgICAgICAgICBpZiAiY29udGVudCIgbm90IGluIGVsZW1lbnQuYXR0cmli
OgotICAgICAgICAgICAgICAgIGVycm9ycy5hcHBlbmQoKCJWQVJJQU5ULU1JU1NJTkciLAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICI8bWV0YSBuYW1lPXZhcmlhbnQ+IG1pc3Npbmcg
J2NvbnRlbnQnIGF0dHJpYnV0ZSIsIHBhdGgsIE5vbmUpKQorICAgICAgICAgICAgICAgIGVycm9y
cy5hcHBlbmQocnVsZXMuVmFyaWFudE1pc3NpbmcuZXJyb3IocGF0aCkpCiAgICAgICAgICAgICBl
bHNlOgogICAgICAgICAgICAgICAgIHZhcmlhbnQgPSBlbGVtZW50LmF0dHJpYlsiY29udGVudCJd
CiAgICAgICAgICAgICAgICAgaWYgdmFyaWFudCAhPSAiIiBhbmQgdmFyaWFudFswXSBub3QgaW4g
KCI/IiwgIiMiKToKLSAgICAgICAgICAgICAgICAgICAgZXJyb3JzLmFwcGVuZCgoIk1BTEZPUk1F
RC1WQVJJQU5UIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiJXMgPG1ldGEgbmFt
ZT12YXJpYW50PiAnY29udGVudCcgYXR0cmlidXRlIG11c3QgYmUgdGhlIGVtcHR5IHN0cmluZyBv
ciBzdGFydCB3aXRoICc/JyBvciAnIyciICUgcGF0aCwgTm9uZSkpCisgICAgICAgICAgICAgICAg
ICAgIGVycm9ycy5hcHBlbmQocnVsZXMuTWFsZm9ybWVkVmFyaWFudC5lcnJvcihwYXRoLCAocGF0
aCwpKSkKIAogICAgICAgICBzZWVuX2VsZW1lbnRzID0geyJ0aW1lb3V0IjogRmFsc2UsCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgInRlc3RoYXJuZXNzIjogRmFsc2UsCkBAIC01MzMsOCArNTA4
LDcgQEAgZGVmIGNoZWNrX3BhcnNlZChyZXBvX3Jvb3QsIHBhdGgsIGYpOgogICAgICAgICAgICAg
aWYgc291cmNlX2ZpbGUudGltZW91dF9ub2RlcyBhbmQgZWxlbSA9PSBzb3VyY2VfZmlsZS50aW1l
b3V0X25vZGVzWzBdOgogICAgICAgICAgICAgICAgIHNlZW5fZWxlbWVudHNbInRpbWVvdXQiXSA9
IFRydWUKICAgICAgICAgICAgICAgICBpZiBzZWVuX2VsZW1lbnRzWyJ0ZXN0aGFybmVzcyJdOgot
ICAgICAgICAgICAgICAgICAgICBlcnJvcnMuYXBwZW5kKCgiTEFURS1USU1FT1VUIiwKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIjxtZXRhIG5hbWU9dGltZW91dD4gc2VlbiBh
ZnRlciB0ZXN0aGFybmVzcy5qcyBzY3JpcHQiLCBwYXRoLCBOb25lKSkKKyAgICAgICAgICAgICAg
ICAgICAgZXJyb3JzLmFwcGVuZChydWxlcy5MYXRlVGltZW91dC5lcnJvcihwYXRoKSkKIAogICAg
ICAgICAgICAgZWxpZiBlbGVtID09IHNvdXJjZV9maWxlLnRlc3RoYXJuZXNzX25vZGVzWzBdOgog
ICAgICAgICAgICAgICAgIHNlZW5fZWxlbWVudHNbInRlc3RoYXJuZXNzIl0gPSBUcnVlCkBAIC01
NDIsNTIgKzUxNiw2NCBAQCBkZWYgY2hlY2tfcGFyc2VkKHJlcG9fcm9vdCwgcGF0aCwgZik6CiAg
ICAgICAgICAgICBlbGlmIHRlc3RoYXJuZXNzcmVwb3J0X25vZGVzIGFuZCBlbGVtID09IHRlc3Ro
YXJuZXNzcmVwb3J0X25vZGVzWzBdOgogICAgICAgICAgICAgICAgIHNlZW5fZWxlbWVudHNbInRl
c3RoYXJuZXNzcmVwb3J0Il0gPSBUcnVlCiAgICAgICAgICAgICAgICAgaWYgbm90IHNlZW5fZWxl
bWVudHNbInRlc3RoYXJuZXNzIl06Ci0gICAgICAgICAgICAgICAgICAgIGVycm9ycy5hcHBlbmQo
KCJFQVJMWS1URVNUSEFSTkVTU1JFUE9SVCIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICJ0ZXN0aGFybmVzc3JlcG9ydC5qcyBzY3JpcHQgc2VlbiBiZWZvcmUgdGVzdGhhcm5l
c3MuanMgc2NyaXB0IiwgcGF0aCwgTm9uZSkpCisgICAgICAgICAgICAgICAgICAgIGVycm9ycy5h
cHBlbmQocnVsZXMuRWFybHlUZXN0aGFybmVzc1JlcG9ydC5lcnJvcihwYXRoKSkKIAogICAgICAg
ICAgICAgaWYgYWxsKHNlZW5fZWxlbWVudHNbbmFtZV0gZm9yIG5hbWUgaW4gcmVxdWlyZWRfZWxl
bWVudHMpOgogICAgICAgICAgICAgICAgIGJyZWFrCiAKICAgICBpZiBzb3VyY2VfZmlsZS50ZXN0
ZHJpdmVyX25vZGVzOgogICAgICAgICBpZiBsZW4oc291cmNlX2ZpbGUudGVzdGRyaXZlcl9ub2Rl
cykgPiAxOgotICAgICAgICAgICAgZXJyb3JzLmFwcGVuZCgoIk1VTFRJUExFLVRFU1REUklWRVIi
LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIk1vcmUgdGhhbiBvbmUgPHNjcmlwdCBzcmM9
Jy9yZXNvdXJjZXMvdGVzdGRyaXZlci5qcyc+IiwgcGF0aCwgTm9uZSkpCisgICAgICAgICAgICBl
cnJvcnMuYXBwZW5kKHJ1bGVzLk11bHRpcGxlVGVzdGRyaXZlci5lcnJvcihwYXRoKSkKIAogICAg
ICAgICB0ZXN0ZHJpdmVyX3ZlbmRvcl9ub2RlcyA9IHNvdXJjZV9maWxlLnJvb3QuZmluZGFsbCgi
Li8ve2h0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWx9c2NyaXB0W0BzcmM9Jy9yZXNvdXJjZXMv
dGVzdGRyaXZlci12ZW5kb3IuanMnXSIpCiAgICAgICAgIGlmIG5vdCB0ZXN0ZHJpdmVyX3ZlbmRv
cl9ub2RlczoKLSAgICAgICAgICAgIGVycm9ycy5hcHBlbmQoKCJNSVNTSU5HLVRFU1REUklWRVIt
VkVORE9SIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICJNaXNzaW5nIDxzY3JpcHQgc3Jj
PScvcmVzb3VyY2VzL3Rlc3Rkcml2ZXItdmVuZG9yLmpzJz4iLCBwYXRoLCBOb25lKSkKKyAgICAg
ICAgICAgIGVycm9ycy5hcHBlbmQocnVsZXMuTWlzc2luZ1Rlc3Rkcml2ZXJWZW5kb3IuZXJyb3Io
cGF0aCkpCiAgICAgICAgIGVsc2U6CiAgICAgICAgICAgICBpZiBsZW4odGVzdGRyaXZlcl92ZW5k
b3Jfbm9kZXMpID4gMToKLSAgICAgICAgICAgICAgICBlcnJvcnMuYXBwZW5kKCgiTVVMVElQTEUt
VEVTVERSSVZFUi1WRU5ET1IiLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJNb3Jl
IHRoYW4gb25lIDxzY3JpcHQgc3JjPScvcmVzb3VyY2VzL3Rlc3Rkcml2ZXItdmVuZG9yLmpzJz4i
LCBwYXRoLCBOb25lKSkKKyAgICAgICAgICAgICAgICBlcnJvcnMuYXBwZW5kKHJ1bGVzLk11bHRp
cGxlVGVzdGRyaXZlclZlbmRvci5lcnJvcihwYXRoKSkKIAogICAgIGZvciBlbGVtZW50IGluIHNv
dXJjZV9maWxlLnJvb3QuZmluZGFsbCgiLi8ve2h0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWx9
c2NyaXB0W0BzcmNdIik6CiAgICAgICAgIHNyYyA9IGVsZW1lbnQuYXR0cmliWyJzcmMiXQotICAg
ICAgICBmb3IgbmFtZSBpbiBbInRlc3RoYXJuZXNzIiwgInRlc3RoYXJuZXNzcmVwb3J0IiwgInRl
c3Rkcml2ZXIiLCAidGVzdGRyaXZlci12ZW5kb3IiXToKLSAgICAgICAgICAgIGlmICIlcy5qcyIg
JSBuYW1lID09IHNyYyBvciAoIi8lcy5qcyIgJSBuYW1lIGluIHNyYyBhbmQgc3JjICE9ICIvcmVz
b3VyY2VzLyVzLmpzIiAlIG5hbWUpOgotICAgICAgICAgICAgICAgIGVycm9ycy5hcHBlbmQoKCIl
cy1QQVRIIiAlIG5hbWUudXBwZXIoKSwgIiVzLmpzIHNjcmlwdCBzZWVuIHdpdGggaW5jb3JyZWN0
IHBhdGgiICUgbmFtZSwgcGF0aCwgTm9uZSkpCisKKyAgICAgICAgZGVmIGluY29ycmVjdF9wYXRo
KHNjcmlwdCwgc3JjKToKKyAgICAgICAgICAgICMgdHlwZTogKFRleHQsIFRleHQpIC0+IGJvb2wK
KyAgICAgICAgICAgIHJldHVybiAoc2NyaXB0ID09IHNyYyBvcgorICAgICAgICAgICAgICAgICgi
LyVzIiAlIHNjcmlwdCBpbiBzcmMgYW5kIHNyYyAhPSAiL3Jlc291cmNlcy8lcyIgJSBzY3JpcHQp
KQorCisgICAgICAgIGlmIGluY29ycmVjdF9wYXRoKCJ0ZXN0aGFybmVzcy5qcyIsIHNyYyk6Cisg
ICAgICAgICAgICBlcnJvcnMuYXBwZW5kKHJ1bGVzLlRlc3RoYXJuZXNzUGF0aC5lcnJvcihwYXRo
KSkKKworICAgICAgICBpZiBpbmNvcnJlY3RfcGF0aCgidGVzdGhhcm5lc3NyZXBvcnQuanMiLCBz
cmMpOgorICAgICAgICAgICAgZXJyb3JzLmFwcGVuZChydWxlcy5UZXN0aGFybmVzc1JlcG9ydFBh
dGguZXJyb3IocGF0aCkpCisKKyAgICAgICAgaWYgaW5jb3JyZWN0X3BhdGgoInRlc3Rkcml2ZXIu
anMiLCBzcmMpOgorICAgICAgICAgICAgZXJyb3JzLmFwcGVuZChydWxlcy5UZXN0ZHJpdmVyUGF0
aC5lcnJvcihwYXRoKSkKKworICAgICAgICBpZiBpbmNvcnJlY3RfcGF0aCgidGVzdGRyaXZlci12
ZW5kb3IuanMiLCBzcmMpOgorICAgICAgICAgICAgZXJyb3JzLmFwcGVuZChydWxlcy5UZXN0ZHJp
dmVyVmVuZG9yUGF0aC5lcnJvcihwYXRoKSkKIAogICAgIHJldHVybiBlcnJvcnMKIAotY2xhc3Mg
QVNUQ2hlY2sob2JqZWN0KToKLSAgICBfX21ldGFjbGFzc19fID0gYWJjLkFCQ01ldGEKLSAgICBl
cnJvciA9IE5vbmUKLSAgICBkZXNjcmlwdGlvbiA9IE5vbmUKK2NsYXNzIEFTVENoZWNrKHdpdGhf
bWV0YWNsYXNzKGFiYy5BQkNNZXRhKSk6CisgICAgQGFiYy5hYnN0cmFjdHByb3BlcnR5CisgICAg
ZGVmIHJ1bGUoc2VsZik6CisgICAgICAgICMgdHlwZTogKCkgLT4gVHlwZVtydWxlcy5SdWxlXQor
ICAgICAgICBwYXNzCiAKICAgICBAYWJjLmFic3RyYWN0bWV0aG9kCiAgICAgZGVmIGNoZWNrKHNl
bGYsIHJvb3QpOgorICAgICAgICAjIHR5cGU6IChhc3QuQVNUKSAtPiBMaXN0W2ludF0KICAgICAg
ICAgcGFzcwogCiBjbGFzcyBPcGVuTW9kZUNoZWNrKEFTVENoZWNrKToKLSAgICBlcnJvciA9ICJP
UEVOLU5PLU1PREUiCi0gICAgZGVzY3JpcHRpb24gPSAiRmlsZSBvcGVuZWQgd2l0aG91dCBwcm92
aWRpbmcgYW4gZXhwbGljaXQgbW9kZSAobm90ZTogYmluYXJ5IGZpbGVzIG11c3QgYmUgcmVhZCB3
aXRoICdiJyBpbiB0aGUgbW9kZSBmbGFncykiCisgICAgcnVsZSA9IHJ1bGVzLk9wZW5Ob01vZGUK
IAogICAgIGRlZiBjaGVjayhzZWxmLCByb290KToKKyAgICAgICAgIyB0eXBlOiAoYXN0LkFTVCkg
LT4gTGlzdFtpbnRdCiAgICAgICAgIGVycm9ycyA9IFtdCiAgICAgICAgIGZvciBub2RlIGluIGFz
dC53YWxrKHJvb3QpOgogICAgICAgICAgICAgaWYgaXNpbnN0YW5jZShub2RlLCBhc3QuQ2FsbCk6
Ci0gICAgICAgICAgICAgICAgaWYgaGFzYXR0cihub2RlLmZ1bmMsICJpZCIpIGFuZCBub2RlLmZ1
bmMuaWQgaW4gKCJvcGVuIiwgImZpbGUiKToKKyAgICAgICAgICAgICAgICBpZiBoYXNhdHRyKG5v
ZGUuZnVuYywgImlkIikgYW5kIG5vZGUuZnVuYy5pZCBpbiAoIm9wZW4iLCAiZmlsZSIpOiAgIyB0
eXBlOiBpZ25vcmUKICAgICAgICAgICAgICAgICAgICAgaWYgKGxlbihub2RlLmFyZ3MpIDwgMiBh
bmQKICAgICAgICAgICAgICAgICAgICAgICAgIGFsbChpdGVtLmFyZyAhPSAibW9kZSIgZm9yIGl0
ZW0gaW4gbm9kZS5rZXl3b3JkcykpOgogICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3JzLmFw
cGVuZChub2RlLmxpbmVubykKQEAgLTU5NiwyNiArNTgyLDI4IEBAIGNsYXNzIE9wZW5Nb2RlQ2hl
Y2soQVNUQ2hlY2spOgogYXN0X2NoZWNrZXJzID0gW2l0ZW0oKSBmb3IgaXRlbSBpbiBbT3Blbk1v
ZGVDaGVja11dCiAKIGRlZiBjaGVja19weXRob25fYXN0KHJlcG9fcm9vdCwgcGF0aCwgZik6Cisg
ICAgIyB0eXBlOiAoc3RyLCBzdHIsIElPW2J5dGVzXSkgLT4gTGlzdFtydWxlcy5FcnJvcl0KICAg
ICBpZiBub3QgcGF0aC5lbmRzd2l0aCgiLnB5Iik6CiAgICAgICAgIHJldHVybiBbXQogCiAgICAg
dHJ5OgogICAgICAgICByb290ID0gYXN0LnBhcnNlKGYucmVhZCgpKQogICAgIGV4Y2VwdCBTeW50
YXhFcnJvciBhcyBlOgotICAgICAgICByZXR1cm4gWygiUEFSU0UtRkFJTEVEIiwgIlVuYWJsZSB0
byBwYXJzZSBmaWxlIiwgcGF0aCwgZS5saW5lbm8pXQorICAgICAgICByZXR1cm4gW3J1bGVzLlBh
cnNlRmFpbGVkLmVycm9yKHBhdGgsIGxpbmVfbm89ZS5saW5lbm8pXQogCiAgICAgZXJyb3JzID0g
W10KICAgICBmb3IgY2hlY2tlciBpbiBhc3RfY2hlY2tlcnM6CiAgICAgICAgIGZvciBsaW5lbm8g
aW4gY2hlY2tlci5jaGVjayhyb290KToKLSAgICAgICAgICAgIGVycm9ycy5hcHBlbmQoKGNoZWNr
ZXIuZXJyb3IsIGNoZWNrZXIuZGVzY3JpcHRpb24sIHBhdGgsIGxpbmVubykpCisgICAgICAgICAg
ICBlcnJvcnMuYXBwZW5kKGNoZWNrZXIucnVsZS5lcnJvcihwYXRoLCBsaW5lX25vPWxpbmVubykp
CiAgICAgcmV0dXJuIGVycm9ycwogCiAKLWJyb2tlbl9qc19tZXRhZGF0YSA9IHJlLmNvbXBpbGUo
YiIvL1xzKk1FVEE6IikKLWJyb2tlbl9weXRob25fbWV0YWRhdGEgPSByZS5jb21waWxlKGIiI1xz
Kk1FVEE6IikKK2Jyb2tlbl9qc19tZXRhZGF0YSA9IHJlLmNvbXBpbGUoYnIiLy9ccypNRVRBOiIp
Citicm9rZW5fcHl0aG9uX21ldGFkYXRhID0gcmUuY29tcGlsZShiciIjXHMqTUVUQToiKQogCiAK
IGRlZiBjaGVja19nbG9iYWxfbWV0YWRhdGEodmFsdWUpOgorICAgICMgdHlwZTogKHN0cikgLT4g
SXRlcmFibGVbVHVwbGVbVHlwZVtydWxlcy5SdWxlXSwgVHVwbGVbQW55LCAuLi5dXV0KICAgICBn
bG9iYWxfdmFsdWVzID0ge2l0ZW0uc3RyaXAoKSBmb3IgaXRlbSBpbiB2YWx1ZS5zcGxpdChiIiwi
KSBpZiBpdGVtLnN0cmlwKCl9CiAKICAgICBpbmNsdWRlZF92YXJpYW50cyA9IHNldC51bmlvbihn
ZXRfZGVmYXVsdF9hbnlfdmFyaWFudHMoKSwKQEAgLTYyNSwyMiArNjEzLDI1IEBAIGRlZiBjaGVj
a19nbG9iYWxfbWV0YWRhdGEodmFsdWUpOgogICAgICAgICBpZiBnbG9iYWxfdmFsdWUuc3RhcnRz
d2l0aChiIiEiKToKICAgICAgICAgICAgIGV4Y2x1ZGVkX3ZhbHVlID0gZ2xvYmFsX3ZhbHVlWzE6
XQogICAgICAgICAgICAgaWYgbm90IGdldF9hbnlfdmFyaWFudHMoZXhjbHVkZWRfdmFsdWUpOgot
ICAgICAgICAgICAgICAgIHlpZWxkICgiVU5LTk9XTi1HTE9CQUwtTUVUQURBVEEiLCAiVW5leHBl
Y3RlZCB2YWx1ZSBmb3IgZ2xvYmFsIG1ldGFkYXRhIikKKyAgICAgICAgICAgICAgICB5aWVsZCAo
cnVsZXMuVW5rbm93bkdsb2JhbE1ldGFkYXRhLCAoKSkKIAogICAgICAgICAgICAgZWxpZiBleGNs
dWRlZF92YWx1ZSBpbiBnbG9iYWxfdmFsdWVzOgotICAgICAgICAgICAgICAgIHlpZWxkICgiQlJP
S0VOLUdMT0JBTC1NRVRBREFUQSIsICJDYW5ub3Qgc3BlY2lmeSBib3RoICVzIGFuZCAlcyIgJSAo
Z2xvYmFsX3ZhbHVlLCBleGNsdWRlZF92YWx1ZSkpCisgICAgICAgICAgICAgICAgeWllbGQgKHJ1
bGVzLkJyb2tlbkdsb2JhbE1ldGFkYXRhLAorICAgICAgICAgICAgICAgICAgICAgICAoKCJDYW5u
b3Qgc3BlY2lmeSBib3RoICVzIGFuZCAlcyIgJSAoZ2xvYmFsX3ZhbHVlLCBleGNsdWRlZF92YWx1
ZSkpLCkpCiAKICAgICAgICAgICAgIGVsc2U6CiAgICAgICAgICAgICAgICAgZXhjbHVkZWRfdmFy
aWFudHMgPSBnZXRfYW55X3ZhcmlhbnRzKGV4Y2x1ZGVkX3ZhbHVlKQogICAgICAgICAgICAgICAg
IGlmIG5vdCAoZXhjbHVkZWRfdmFyaWFudHMgJiBpbmNsdWRlZF92YXJpYW50cyk6Ci0gICAgICAg
ICAgICAgICAgICAgIHlpZWxkICgiQlJPS0VOLUdMT0JBTC1NRVRBREFUQSIsICJDYW5ub3QgZXhj
bHVkZSAlcyBpZiBpdCBpcyBub3QgaW5jbHVkZWQiICUgKGV4Y2x1ZGVkX3ZhbHVlLCkpCisgICAg
ICAgICAgICAgICAgICAgIHlpZWxkIChydWxlcy5Ccm9rZW5HbG9iYWxNZXRhZGF0YSwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICgoIkNhbm5vdCBleGNsdWRlICVzIGlmIGl0IGlzIG5vdCBp
bmNsdWRlZCIgJSAoZXhjbHVkZWRfdmFsdWUsKSksKSkKIAogICAgICAgICBlbHNlOgogICAgICAg
ICAgICAgaWYgbm90IGdldF9hbnlfdmFyaWFudHMoZ2xvYmFsX3ZhbHVlKToKLSAgICAgICAgICAg
ICAgICB5aWVsZCAoIlVOS05PV04tR0xPQkFMLU1FVEFEQVRBIiwgIlVuZXhwZWN0ZWQgdmFsdWUg
Zm9yIGdsb2JhbCBtZXRhZGF0YSIpCisgICAgICAgICAgICAgICAgeWllbGQgKHJ1bGVzLlVua25v
d25HbG9iYWxNZXRhZGF0YSwgKCkpCiAKIAogZGVmIGNoZWNrX3NjcmlwdF9tZXRhZGF0YShyZXBv
X3Jvb3QsIHBhdGgsIGYpOgorICAgICMgdHlwZTogKHN0ciwgc3RyLCBJT1tieXRlc10pIC0+IExp
c3RbcnVsZXMuRXJyb3JdCiAgICAgaWYgcGF0aC5lbmRzd2l0aCgoIi53b3JrZXIuanMiLCAiLmFu
eS5qcyIpKToKICAgICAgICAgbWV0YV9yZSA9IGpzX21ldGFfcmUKICAgICAgICAgYnJva2VuX21l
dGFkYXRhID0gYnJva2VuX2pzX21ldGFkYXRhCkBAIC02NTksMTAgKzY1MCwxMiBAQCBkZWYgY2hl
Y2tfc2NyaXB0X21ldGFkYXRhKHJlcG9fcm9vdCwgcGF0aCwgZik6CiAgICAgICAgIGlmIG06CiAg
ICAgICAgICAgICBrZXksIHZhbHVlID0gbS5ncm91cHMoKQogICAgICAgICAgICAgaWYga2V5ID09
IGIiZ2xvYmFsIjoKLSAgICAgICAgICAgICAgICBlcnJvcnMuZXh0ZW5kKChraW5kLCBtZXNzYWdl
LCBwYXRoLCBpZHggKyAxKSBmb3IgKGtpbmQsIG1lc3NhZ2UpIGluIGNoZWNrX2dsb2JhbF9tZXRh
ZGF0YSh2YWx1ZSkpCisgICAgICAgICAgICAgICAgZm9yIHJ1bGVfY2xhc3MsIGNvbnRleHQgaW4g
Y2hlY2tfZ2xvYmFsX21ldGFkYXRhKHZhbHVlKToKKyAgICAgICAgICAgICAgICAgICAgZXJyb3Jz
LmFwcGVuZChydWxlX2NsYXNzLmVycm9yKHBhdGgsIGNvbnRleHQsIGlkeCArIDEpKQogICAgICAg
ICAgICAgZWxpZiBrZXkgPT0gYiJ0aW1lb3V0IjoKICAgICAgICAgICAgICAgICBpZiB2YWx1ZSAh
PSBiImxvbmciOgotICAgICAgICAgICAgICAgICAgICBlcnJvcnMuYXBwZW5kKCgiVU5LTk9XTi1U
SU1FT1VULU1FVEFEQVRBIiwgIlVuZXhwZWN0ZWQgdmFsdWUgZm9yIHRpbWVvdXQgbWV0YWRhdGEi
LCBwYXRoLCBpZHggKyAxKSkKKyAgICAgICAgICAgICAgICAgICAgZXJyb3JzLmFwcGVuZChydWxl
cy5Vbmtub3duVGltZW91dE1ldGFkYXRhLmVycm9yKHBhdGgsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaW5lX25v
PWlkeCArIDEpKQogICAgICAgICAgICAgZWxpZiBrZXkgPT0gYiJ0aXRsZSI6CiAgICAgICAgICAg
ICAgICAgcGFzcwogICAgICAgICAgICAgZWxpZiBrZXkgPT0gYiJzY3JpcHQiOgpAQCAtNjcwLDIy
ICs2NjMsNDMgQEAgZGVmIGNoZWNrX3NjcmlwdF9tZXRhZGF0YShyZXBvX3Jvb3QsIHBhdGgsIGYp
OgogICAgICAgICAgICAgZWxpZiBrZXkgPT0gYiJ2YXJpYW50IjoKICAgICAgICAgICAgICAgICBw
YXNzCiAgICAgICAgICAgICBlbHNlOgotICAgICAgICAgICAgICAgIGVycm9ycy5hcHBlbmQoKCJV
TktOT1dOLU1FVEFEQVRBIiwgIlVuZXhwZWN0ZWQga2luZCBvZiBtZXRhZGF0YSIsIHBhdGgsIGlk
eCArIDEpKQorICAgICAgICAgICAgICAgIGVycm9ycy5hcHBlbmQocnVsZXMuVW5rbm93bk1ldGFk
YXRhLmVycm9yKHBhdGgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgbGluZV9ubz1pZHggKyAxKSkKICAgICAgICAgZWxzZToKICAgICAg
ICAgICAgIGRvbmUgPSBUcnVlCiAKICAgICAgICAgaWYgZG9uZToKICAgICAgICAgICAgIGlmIG1l
dGFfcmUubWF0Y2gobGluZSk6Ci0gICAgICAgICAgICAgICAgZXJyb3JzLmFwcGVuZCgoIlNUUkFZ
LU1FVEFEQVRBIiwgIk1ldGFkYXRhIGNvbW1lbnRzIHNob3VsZCBzdGFydCB0aGUgZmlsZSIsIHBh
dGgsIGlkeCArIDEpKQorICAgICAgICAgICAgICAgIGVycm9ycy5hcHBlbmQocnVsZXMuU3RyYXlN
ZXRhZGF0YS5lcnJvcihwYXRoLCBsaW5lX25vPWlkeCArIDEpKQogICAgICAgICAgICAgZWxpZiBt
ZXRhX3JlLnNlYXJjaChsaW5lKToKLSAgICAgICAgICAgICAgICBlcnJvcnMuYXBwZW5kKCgiSU5E
RU5URUQtTUVUQURBVEEiLCAiTWV0YWRhdGEgY29tbWVudHMgc2hvdWxkIHN0YXJ0IHRoZSBsaW5l
IiwgcGF0aCwgaWR4ICsgMSkpCisgICAgICAgICAgICAgICAgZXJyb3JzLmFwcGVuZChydWxlcy5J
bmRlbnRlZE1ldGFkYXRhLmVycm9yKHBhdGgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpbmVfbm89aWR4ICsgMSkpCiAgICAgICAg
ICAgICBlbGlmIGJyb2tlbl9tZXRhZGF0YS5zZWFyY2gobGluZSk6Ci0gICAgICAgICAgICAgICAg
ZXJyb3JzLmFwcGVuZCgoIkJST0tFTi1NRVRBREFUQSIsICJNZXRhZGF0YSBjb21tZW50IGlzIG5v
dCBmb3JtYXR0ZWQgY29ycmVjdGx5IiwgcGF0aCwgaWR4ICsgMSkpCisgICAgICAgICAgICAgICAg
ZXJyb3JzLmFwcGVuZChydWxlcy5Ccm9rZW5NZXRhZGF0YS5lcnJvcihwYXRoLCBsaW5lX25vPWlk
eCArIDEpKQogCiAgICAgcmV0dXJuIGVycm9ycwogCiAKK2FoZW1fZm9udF9yZSA9IHJlLmNvbXBp
bGUoYiJmb250Lio6LiphaGVtIiwgZmxhZ3M9cmUuSUdOT1JFQ0FTRSkKKyMgQWhlbSBjYW4gYXBw
ZWFyIGVpdGhlciBpbiB0aGUgZ2xvYmFsIGxvY2F0aW9uIG9yIGluIHRoZSBzdXBwb3J0CisjIGRp
cmVjdG9yeSBmb3IgbGVnYWN5IE1vemlsbGEgaW1wb3J0cworYWhlbV9zdHlsZXNoZWV0X3JlID0g
cmUuY29tcGlsZShiIlwvZm9udHNcL2FoZW1cLmNzc3xzdXBwb3J0XC9haGVtLmNzcyIsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZsYWdzPXJlLklHTk9SRUNBU0UpCisKKworZGVm
IGNoZWNrX2FoZW1fc3lzdGVtX2ZvbnQocmVwb19yb290LCBwYXRoLCBmKToKKyAgICAjIHR5cGU6
IChzdHIsIHN0ciwgSU9bYnl0ZXNdKSAtPiBMaXN0W3J1bGVzLkVycm9yXQorICAgIGlmIG5vdCBw
YXRoLmVuZHN3aXRoKCgiLmh0bWwiLCAiLmh0bSIsICIueGh0IiwgIi54aHRtbCIpKToKKyAgICAg
ICAgcmV0dXJuIFtdCisgICAgY29udGVudHMgPSBmLnJlYWQoKQorICAgIGVycm9ycyA9IFtdCisg
ICAgaWYgYWhlbV9mb250X3JlLnNlYXJjaChjb250ZW50cykgYW5kIG5vdCBhaGVtX3N0eWxlc2hl
ZXRfcmUuc2VhcmNoKGNvbnRlbnRzKToKKyAgICAgICAgZXJyb3JzLmFwcGVuZChydWxlcy5BaGVt
U3lzdGVtRm9udC5lcnJvcihwYXRoKSkKKyAgICByZXR1cm4gZXJyb3JzCisKKwogZGVmIGNoZWNr
X3BhdGgocmVwb19yb290LCBwYXRoKToKKyAgICAjIHR5cGU6IChzdHIsIHN0cikgLT4gTGlzdFty
dWxlcy5FcnJvcl0KICAgICAiIiIKICAgICBSdW5zIGxpbnRzIHRoYXQgY2hlY2sgdGhlIGZpbGUg
cGF0aC4KIApAQCAtNzAxLDYgKzcxNSw3IEBAIGRlZiBjaGVja19wYXRoKHJlcG9fcm9vdCwgcGF0
aCk6CiAKIAogZGVmIGNoZWNrX2FsbF9wYXRocyhyZXBvX3Jvb3QsIHBhdGhzKToKKyAgICAjIHR5
cGU6IChzdHIsIExpc3Rbc3RyXSkgLT4gTGlzdFtydWxlcy5FcnJvcl0KICAgICAiIiIKICAgICBS
dW5zIGxpbnRzIHRoYXQgY2hlY2sgYWxsIHBhdGhzIGdsb2JhbGx5LgogCkBAIC03MTYsNiArNzMx
LDcgQEAgZGVmIGNoZWNrX2FsbF9wYXRocyhyZXBvX3Jvb3QsIHBhdGhzKToKIAogCiBkZWYgY2hl
Y2tfZmlsZV9jb250ZW50cyhyZXBvX3Jvb3QsIHBhdGgsIGYpOgorICAgICMgdHlwZTogKHN0ciwg
c3RyLCBJT1tieXRlc10pIC0+IExpc3RbcnVsZXMuRXJyb3JdCiAgICAgIiIiCiAgICAgUnVucyBs
aW50cyB0aGF0IGNoZWNrIHRoZSBmaWxlIGNvbnRlbnRzLgogCkBAIC03MzMsNiArNzQ5LDggQEAg
ZGVmIGNoZWNrX2ZpbGVfY29udGVudHMocmVwb19yb290LCBwYXRoLCBmKToKIAogCiBkZWYgb3V0
cHV0X2Vycm9yc190ZXh0KGVycm9ycyk6CisgICAgIyB0eXBlOiAoTGlzdFtydWxlcy5FcnJvcl0p
IC0+IE5vbmUKKyAgICBhc3NlcnQgbG9nZ2VyIGlzIG5vdCBOb25lCiAgICAgZm9yIGVycm9yX3R5
cGUsIGRlc2NyaXB0aW9uLCBwYXRoLCBsaW5lX251bWJlciBpbiBlcnJvcnM6CiAgICAgICAgIHBv
c19zdHJpbmcgPSBwYXRoCiAgICAgICAgIGlmIGxpbmVfbnVtYmVyOgpAQCAtNzQxLDggKzc1OSwx
MCBAQCBkZWYgb3V0cHV0X2Vycm9yc190ZXh0KGVycm9ycyk6CiAKIAogZGVmIG91dHB1dF9lcnJv
cnNfbWFya2Rvd24oZXJyb3JzKToKKyAgICAjIHR5cGU6IChMaXN0W3J1bGVzLkVycm9yXSkgLT4g
Tm9uZQogICAgIGlmIG5vdCBlcnJvcnM6CiAgICAgICAgIHJldHVybgorICAgIGFzc2VydCBsb2dn
ZXIgaXMgbm90IE5vbmUKICAgICBoZWFkaW5nID0gIiIiR290IGxpbnQgZXJyb3JzOgogCiB8IEVy
cm9yIFR5cGUgfCBQb3NpdGlvbiB8IE1lc3NhZ2UgfApAQCAtNzU3LDE1ICs3NzcsMTggQEAgZGVm
IG91dHB1dF9lcnJvcnNfbWFya2Rvd24oZXJyb3JzKToKIAogCiBkZWYgb3V0cHV0X2Vycm9yc19q
c29uKGVycm9ycyk6CisgICAgIyB0eXBlOiAoTGlzdFtydWxlcy5FcnJvcl0pIC0+IE5vbmUKICAg
ICBmb3IgZXJyb3JfdHlwZSwgZXJyb3IsIHBhdGgsIGxpbmVfbnVtYmVyIGluIGVycm9yczoKICAg
ICAgICAgcHJpbnQoanNvbi5kdW1wcyh7InBhdGgiOiBwYXRoLCAibGluZW5vIjogbGluZV9udW1i
ZXIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICJydWxlIjogZXJyb3JfdHlwZSwgIm1lc3Nh
Z2UiOiBlcnJvcn0pKQogCiAKIGRlZiBvdXRwdXRfZXJyb3JfY291bnQoZXJyb3JfY291bnQpOgor
ICAgICMgdHlwZTogKERpY3RbVGV4dCwgaW50XSkgLT4gTm9uZQogICAgIGlmIG5vdCBlcnJvcl9j
b3VudDoKICAgICAgICAgcmV0dXJuCiAKKyAgICBhc3NlcnQgbG9nZ2VyIGlzIG5vdCBOb25lCiAg
ICAgYnlfdHlwZSA9ICIgIi5qb2luKCIlczogJWQiICUgaXRlbSBmb3IgaXRlbSBpbiBlcnJvcl9j
b3VudC5pdGVtcygpKQogICAgIGNvdW50ID0gc3VtKGVycm9yX2NvdW50LnZhbHVlcygpKQogICAg
IGxvZ2dlci5pbmZvKCIiKQpAQCAtNzc2LDE1ICs3OTksMTcgQEAgZGVmIG91dHB1dF9lcnJvcl9j
b3VudChlcnJvcl9jb3VudCk6CiAKIAogZGVmIGNoYW5nZWRfZmlsZXMod3B0X3Jvb3QpOgorICAg
ICMgdHlwZTogKHN0cikgLT4gTGlzdFtUZXh0XQogICAgIHJldmlzaCA9IHRlc3RmaWxlcy5nZXRf
cmV2aXNoKHJldmlzaD1Ob25lKQotICAgIGNoYW5nZWQsIF8gPSB0ZXN0ZmlsZXMuZmlsZXNfY2hh
bmdlZChyZXZpc2gsIHNldCgpLCBpbmNsdWRlX3VuY29tbWl0dGVkPVRydWUsIGluY2x1ZGVfbmV3
PVRydWUpCisgICAgY2hhbmdlZCwgXyA9IHRlc3RmaWxlcy5maWxlc19jaGFuZ2VkKHJldmlzaCwg
Tm9uZSwgaW5jbHVkZV91bmNvbW1pdHRlZD1UcnVlLCBpbmNsdWRlX25ldz1UcnVlKQogICAgIHJl
dHVybiBbb3MucGF0aC5yZWxwYXRoKGl0ZW0sIHdwdF9yb290KSBmb3IgaXRlbSBpbiBjaGFuZ2Vk
XQogCiAKIGRlZiBsaW50X3BhdGhzKGt3YXJncywgd3B0X3Jvb3QpOgotICAgIGlmIGt3YXJncy5n
ZXQoInBhdGhzIik6CisgICAgIyB0eXBlOiAoRGljdFtzdHIsIEFueV0sIHN0cikgLT4gTGlzdFtz
dHJdCisgICAgaWYga3dhcmdzLmdldChzdHIoInBhdGhzIikpOgogICAgICAgICBwYXRocyA9IFtd
Ci0gICAgICAgIGZvciBwYXRoIGluIGt3YXJncy5nZXQoInBhdGhzIik6CisgICAgICAgIGZvciBw
YXRoIGluIGt3YXJncy5nZXQoc3RyKCJwYXRocyIpLCBbXSk6CiAgICAgICAgICAgICBpZiBvcy5w
YXRoLmlzZGlyKHBhdGgpOgogICAgICAgICAgICAgICAgIHBhdGhfZGlyID0gbGlzdChhbGxfZmls
ZXN5c3RlbV9wYXRocyh3cHRfcm9vdCwgcGF0aCkpCiAgICAgICAgICAgICAgICAgcGF0aHMuZXh0
ZW5kKHBhdGhfZGlyKQpAQCAtNzkyLDcgKzgxNyw3IEBAIGRlZiBsaW50X3BhdGhzKGt3YXJncywg
d3B0X3Jvb3QpOgogICAgICAgICAgICAgICAgIHBhdGhzLmFwcGVuZChvcy5wYXRoLnJlbHBhdGgo
b3MucGF0aC5hYnNwYXRoKHBhdGgpLCB3cHRfcm9vdCkpCiAKIAotICAgIGVsaWYga3dhcmdzWyJh
bGwiXToKKyAgICBlbGlmIGt3YXJnc1tzdHIoImFsbCIpXToKICAgICAgICAgcGF0aHMgPSBsaXN0
KGFsbF9maWxlc3lzdGVtX3BhdGhzKHdwdF9yb290KSkKICAgICBlbHNlOgogICAgICAgICBjaGFu
Z2VkX3BhdGhzID0gY2hhbmdlZF9maWxlcyh3cHRfcm9vdCkKQEAgLTgwMiwxMyArODI3LDE0IEBA
IGRlZiBsaW50X3BhdGhzKGt3YXJncywgd3B0X3Jvb3QpOgogICAgICAgICAgICAgaWYgcGF0aCA9
PSAibGludC53aGl0ZWxpc3QiIG9yIHBhdGguc3RhcnRzd2l0aCgidG9vbHMvbGludC8iKToKICAg
ICAgICAgICAgICAgICBmb3JjZV9hbGwgPSBUcnVlCiAgICAgICAgICAgICAgICAgYnJlYWsKLSAg
ICAgICAgcGF0aHMgPSAobGlzdChjaGFuZ2VkX3BhdGhzKSBpZiBub3QgZm9yY2VfYWxsCisgICAg
ICAgIHBhdGhzID0gKGxpc3QoY2hhbmdlZF9wYXRocykgaWYgbm90IGZvcmNlX2FsbCAgIyB0eXBl
OiBpZ25vcmUKICAgICAgICAgICAgICAgICAgZWxzZSBsaXN0KGFsbF9maWxlc3lzdGVtX3BhdGhz
KHdwdF9yb290KSkpCiAKICAgICByZXR1cm4gcGF0aHMKIAogCiBkZWYgY3JlYXRlX3BhcnNlcigp
OgorICAgICMgdHlwZTogKCkgLT4gYXJncGFyc2UuQXJndW1lbnRQYXJzZXIKICAgICBwYXJzZXIg
PSBhcmdwYXJzZS5Bcmd1bWVudFBhcnNlcigpCiAgICAgcGFyc2VyLmFkZF9hcmd1bWVudCgicGF0
aHMiLCBuYXJncz0iKiIsCiAgICAgICAgICAgICAgICAgICAgICAgICBoZWxwPSJMaXN0IG9mIHBh
dGhzIHRvIGxpbnQiKQpAQCAtODE4LDQyICs4NDQsNTIgQEAgZGVmIGNyZWF0ZV9wYXJzZXIoKToK
ICAgICAgICAgICAgICAgICAgICAgICAgIGhlbHA9Ik91dHB1dCBtYXJrZG93biIpCiAgICAgcGFy
c2VyLmFkZF9hcmd1bWVudCgiLS1yZXBvLXJvb3QiLCBoZWxwPSJUaGUgV1BUIGRpcmVjdG9yeS4g
VXNlIHRoaXMiCiAgICAgICAgICAgICAgICAgICAgICAgICAib3B0aW9uIGlmIHRoZSBsaW50IHNj
cmlwdCBleGlzdHMgb3V0c2lkZSB0aGUgcmVwb3NpdG9yeSIpCisgICAgcGFyc2VyLmFkZF9hcmd1
bWVudCgiLS1pZ25vcmUtZ2xvYiIsIGhlbHA9IkFkZGl0aW9uYWwgZmlsZSBnbG9iIHRvIGlnbm9y
ZS4iKQogICAgIHBhcnNlci5hZGRfYXJndW1lbnQoIi0tYWxsIiwgYWN0aW9uPSJzdG9yZV90cnVl
IiwgaGVscD0iSWYgbm8gcGF0aHMgYXJlIHBhc3NlZCwgdHJ5IHRvIGxpbnQgdGhlIHdob2xlICIK
ICAgICAgICAgICAgICAgICAgICAgICAgICJ3b3JraW5nIGRpcmVjdG9yeSwgbm90IGp1c3QgZmls
ZXMgdGhhdCBjaGFuZ2VkIikKICAgICByZXR1cm4gcGFyc2VyCiAKIAogZGVmIG1haW4oKiprd2Fy
Z3MpOgotICAgIGlmIGt3YXJncy5nZXQoImpzb24iKSBhbmQga3dhcmdzLmdldCgibWFya2Rvd24i
KToKKyAgICAjIHR5cGU6ICgqKkFueSkgLT4gaW50CisgICAgYXNzZXJ0IGxvZ2dlciBpcyBub3Qg
Tm9uZQorICAgIGlmIGt3YXJncy5nZXQoc3RyKCJqc29uIikpIGFuZCBrd2FyZ3MuZ2V0KHN0cigi
bWFya2Rvd24iKSk6CiAgICAgICAgIGxvZ2dlci5jcml0aWNhbCgiQ2Fubm90IHNwZWNpZnkgLS1q
c29uIGFuZCAtLW1hcmtkb3duIikKICAgICAgICAgc3lzLmV4aXQoMikKIAotICAgIHJlcG9fcm9v
dCA9IGt3YXJncy5nZXQoJ3JlcG9fcm9vdCcpIG9yIGxvY2FscGF0aHMucmVwb19yb290Ci0gICAg
b3V0cHV0X2Zvcm1hdCA9IHsoVHJ1ZSwgRmFsc2UpOiAianNvbiIsCi0gICAgICAgICAgICAgICAg
ICAgICAoRmFsc2UsIFRydWUpOiAibWFya2Rvd24iLAotICAgICAgICAgICAgICAgICAgICAgKEZh
bHNlLCBGYWxzZSk6ICJub3JtYWwifVsoa3dhcmdzLmdldCgianNvbiIsIEZhbHNlKSwKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGt3YXJncy5nZXQoIm1h
cmtkb3duIiwgRmFsc2UpKV0KKyAgICByZXBvX3Jvb3QgPSBrd2FyZ3MuZ2V0KHN0cigncmVwb19y
b290JykpIG9yIGxvY2FscGF0aHMucmVwb19yb290CisgICAgb3V0cHV0X2Zvcm1hdCA9IHsoVHJ1
ZSwgRmFsc2UpOiBzdHIoImpzb24iKSwKKyAgICAgICAgICAgICAgICAgICAgIChGYWxzZSwgVHJ1
ZSk6IHN0cigibWFya2Rvd24iKSwKKyAgICAgICAgICAgICAgICAgICAgIChGYWxzZSwgRmFsc2Up
OiBzdHIoIm5vcm1hbCIpfVsoa3dhcmdzLmdldChzdHIoImpzb24iKSwgRmFsc2UpLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrd2FyZ3MuZ2V0
KHN0cigibWFya2Rvd24iKSwgRmFsc2UpKV0KIAogICAgIGlmIG91dHB1dF9mb3JtYXQgPT0gIm1h
cmtkb3duIjoKICAgICAgICAgc2V0dXBfbG9nZ2luZyhUcnVlKQogCiAgICAgcGF0aHMgPSBsaW50
X3BhdGhzKGt3YXJncywgcmVwb19yb290KQogCi0gICAgcmV0dXJuIGxpbnQocmVwb19yb290LCBw
YXRocywgb3V0cHV0X2Zvcm1hdCkKKyAgICBpZ25vcmVfZ2xvYiA9IGt3YXJncy5nZXQoc3RyKCJp
Z25vcmVfZ2xvYiIpKSBvciBzdHIoKQogCisgICAgcmV0dXJuIGxpbnQocmVwb19yb290LCBwYXRo
cywgb3V0cHV0X2Zvcm1hdCwgc3RyKGlnbm9yZV9nbG9iKSkKIAotZGVmIGxpbnQocmVwb19yb290
LCBwYXRocywgb3V0cHV0X2Zvcm1hdCk6Ci0gICAgZXJyb3JfY291bnQgPSBkZWZhdWx0ZGljdChp
bnQpCisKK2RlZiBsaW50KHJlcG9fcm9vdCwgcGF0aHMsIG91dHB1dF9mb3JtYXQsIGlnbm9yZV9n
bG9iPXN0cigpKToKKyAgICAjIHR5cGU6IChzdHIsIExpc3Rbc3RyXSwgc3RyLCBzdHIpIC0+IGlu
dAorICAgIGVycm9yX2NvdW50ID0gZGVmYXVsdGRpY3QoaW50KSAgIyB0eXBlOiBEaWN0W1RleHQs
IGludF0KICAgICBsYXN0ID0gTm9uZQogCiAgICAgd2l0aCBvcGVuKG9zLnBhdGguam9pbihyZXBv
X3Jvb3QsICJsaW50LndoaXRlbGlzdCIpKSBhcyBmOgogICAgICAgICB3aGl0ZWxpc3QsIGlnbm9y
ZWRfZmlsZXMgPSBwYXJzZV93aGl0ZWxpc3QoZikKIAorICAgIGlmIGlnbm9yZV9nbG9iOgorICAg
ICAgICBpZ25vcmVkX2ZpbGVzLmFkZChpZ25vcmVfZ2xvYikKKwogICAgIG91dHB1dF9lcnJvcnMg
PSB7Impzb24iOiBvdXRwdXRfZXJyb3JzX2pzb24sCiAgICAgICAgICAgICAgICAgICAgICAibWFy
a2Rvd24iOiBvdXRwdXRfZXJyb3JzX21hcmtkb3duLAogICAgICAgICAgICAgICAgICAgICAgIm5v
cm1hbCI6IG91dHB1dF9lcnJvcnNfdGV4dH1bb3V0cHV0X2Zvcm1hdF0KIAogICAgIGRlZiBwcm9j
ZXNzX2Vycm9ycyhlcnJvcnMpOgorICAgICAgICAjIHR5cGU6IChMaXN0W3J1bGVzLkVycm9yXSkg
LT4gT3B0aW9uYWxbVHVwbGVbVGV4dCwgVGV4dF1dCiAgICAgICAgICIiIgogICAgICAgICBGaWx0
ZXJzIGFuZCBwcmludHMgdGhlIGVycm9ycywgYW5kIHVwZGF0ZXMgdGhlIGBgZXJyb3JfY291bnRg
YCBvYmplY3QuCiAKQEAgLTg5NywxMyArOTMzLDE3IEBAIGRlZiBsaW50KHJlcG9fcm9vdCwgcGF0
aHMsIG91dHB1dF9mb3JtYXQpOgogICAgIGlmIG91dHB1dF9mb3JtYXQgaW4gKCJub3JtYWwiLCAi
bWFya2Rvd24iKToKICAgICAgICAgb3V0cHV0X2Vycm9yX2NvdW50KGVycm9yX2NvdW50KQogICAg
ICAgICBpZiBlcnJvcl9jb3VudDoKKyAgICAgICAgICAgIGFzc2VydCBsYXN0IGlzIG5vdCBOb25l
CisgICAgICAgICAgICBhc3NlcnQgbG9nZ2VyIGlzIG5vdCBOb25lCiAgICAgICAgICAgICBmb3Ig
bGluZSBpbiAoRVJST1JfTVNHICUgKGxhc3RbMF0sIGxhc3RbMV0sIGxhc3RbMF0sIGxhc3RbMV0p
KS5zcGxpdCgiXG4iKToKICAgICAgICAgICAgICAgICBsb2dnZXIuaW5mbyhsaW5lKQogICAgIHJl
dHVybiBzdW0oaXRlcnZhbHVlcyhlcnJvcl9jb3VudCkpCiAKLXBhdGhfbGludHMgPSBbY2hlY2tf
cGF0aF9sZW5ndGgsIGNoZWNrX3dvcmtlcl9jb2xsaXNpb24sIGNoZWNrX2FoZW1fY29weV0KK3Bh
dGhfbGludHMgPSBbY2hlY2tfZmlsZV90eXBlLCBjaGVja19wYXRoX2xlbmd0aCwgY2hlY2tfd29y
a2VyX2NvbGxpc2lvbiwgY2hlY2tfYWhlbV9jb3B5LAorICAgICAgICAgICAgICBjaGVja19naXRp
Z25vcmVfZmlsZV0KIGFsbF9wYXRoc19saW50cyA9IFtjaGVja19jc3NfZ2xvYmFsbHlfdW5pcXVl
XQotZmlsZV9saW50cyA9IFtjaGVja19yZWdleHBfbGluZSwgY2hlY2tfcGFyc2VkLCBjaGVja19w
eXRob25fYXN0LCBjaGVja19zY3JpcHRfbWV0YWRhdGFdCitmaWxlX2xpbnRzID0gW2NoZWNrX3Jl
Z2V4cF9saW5lLCBjaGVja19wYXJzZWQsIGNoZWNrX3B5dGhvbl9hc3QsIGNoZWNrX3NjcmlwdF9t
ZXRhZGF0YSwKKyAgICAgICAgICAgICAgY2hlY2tfYWhlbV9zeXN0ZW1fZm9udF0KIAogIyBEb24n
dCBicmVhayB1c2VycyBvZiB0aGUgbGludCB0aGF0IGRvbid0IGhhdmUgZ2l0IGluc3RhbGxlZC4K
IHRyeToKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvbGludC9ydWxlcy5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvbGludC9ydWxlcy5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41ODcwMjhkNmM1
ZjkyNzc4MWMyZTcyMzhhYWQxNWM4NzViZDM5ZDFjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9saW50L3J1bGVzLnB5
CkBAIC0wLDAgKzEsNDUyIEBACitmcm9tIF9fZnV0dXJlX18gaW1wb3J0IHVuaWNvZGVfbGl0ZXJh
bHMKKworaW1wb3J0IGFiYworaW1wb3J0IGluc3BlY3QKK2ltcG9ydCBvcworaW1wb3J0IHJlCisK
K2ltcG9ydCBzaXgKKworTVlQWSA9IEZhbHNlCitpZiBNWVBZOgorICAgICMgTVlQWSBpcyBzZXQg
dG8gVHJ1ZSB3aGVuIHJ1biB1bmRlciBNeXB5LgorICAgIGZyb20gdHlwaW5nIGltcG9ydCBBbnks
IExpc3QsIE1hdGNoLCBPcHRpb25hbCwgUGF0dGVybiwgVGV4dCwgVHVwbGUsIGNhc3QKKyAgICBF
cnJvciA9IFR1cGxlW1RleHQsIFRleHQsIFRleHQsIE9wdGlvbmFsW2ludF1dCisKKworZGVmIGNv
bGxhcHNlKHRleHQpOgorICAgICMgdHlwZTogKFRleHQpIC0+IFRleHQKKyAgICByZXR1cm4gaW5z
cGVjdC5jbGVhbmRvYyhzdHIodGV4dCkpLnJlcGxhY2UoIlxuIiwgIiAiKQorCisKK2NsYXNzIFJ1
bGUoc2l4LndpdGhfbWV0YWNsYXNzKGFiYy5BQkNNZXRhKSk6CisgICAgQGFiYy5hYnN0cmFjdHBy
b3BlcnR5CisgICAgZGVmIG5hbWUoc2VsZik6CisgICAgICAgICMgdHlwZTogKCkgLT4gVGV4dAor
ICAgICAgICBwYXNzCisKKyAgICBAYWJjLmFic3RyYWN0cHJvcGVydHkKKyAgICBkZWYgZGVzY3Jp
cHRpb24oc2VsZik6CisgICAgICAgICMgdHlwZTogKCkgLT4gVGV4dAorICAgICAgICBwYXNzCisK
KyAgICB0b19maXggPSBOb25lICAjIHR5cGU6IE9wdGlvbmFsW1RleHRdCisKKyAgICBAY2xhc3Nt
ZXRob2QKKyAgICBkZWYgZXJyb3IoY2xzLCBwYXRoLCBjb250ZXh0PSgpLCBsaW5lX25vPU5vbmUp
OgorICAgICAgICAjIHR5cGU6IChUZXh0LCBUdXBsZVtBbnksIC4uLl0sIE9wdGlvbmFsW2ludF0p
IC0+IEVycm9yCisgICAgICAgIGlmIE1ZUFk6CisgICAgICAgICAgICBuYW1lID0gY2FzdChUZXh0
LCBjbHMubmFtZSkKKyAgICAgICAgICAgIGRlc2NyaXB0aW9uID0gY2FzdChUZXh0LCBjbHMuZGVz
Y3JpcHRpb24pCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBuYW1lID0gY2xzLm5hbWUKKyAg
ICAgICAgICAgIGRlc2NyaXB0aW9uID0gY2xzLmRlc2NyaXB0aW9uCisgICAgICAgIGRlc2NyaXB0
aW9uID0gZGVzY3JpcHRpb24gJSBjb250ZXh0CisgICAgICAgIHJldHVybiAobmFtZSwgZGVzY3Jp
cHRpb24sIHBhdGgsIGxpbmVfbm8pCisKKworY2xhc3MgTWlzc2luZ0xpbmsoUnVsZSk6CisgICAg
bmFtZSA9ICJNSVNTSU5HLUxJTksiCisgICAgZGVzY3JpcHRpb24gPSAiVGVzdGNhc2UgZmlsZSBt
dXN0IGhhdmUgYSBsaW5rIHRvIGEgc3BlYyIKKyAgICB0b19maXggPSAiIiIKKyAgICAgICAgRW5z
dXJlIHRoYXQgdGhlcmUgaXMgYSBgPGxpbmsgcmVsPSJoZWxwIiBocmVmPSJbdXJsXSI+YCBmb3Ig
dGhlIHNwZWMuCisgICAgICAgIGBNSVNTSU5HLUxJTktgIGlzIGRlc2lnbmVkIHRvIGVuc3VyZSB0
aGF0IHRoZSBDU1MgYnVpbGQgdG9vbCBjYW4gZmluZAorICAgICAgICB0aGUgdGVzdHMuIE5vdGUg
dGhhdCB0aGUgQ1NTIGJ1aWxkIHN5c3RlbSBpcyBwcmltYXJpbHkgdXNlZCBieQorICAgICAgICBb
dGVzdC5jc3N3Zy5vcmcvXShodHRwOi8vdGVzdC5jc3N3Zy5vcmcvKSwgd2hpY2ggZG9lc24ndCB1
c2UKKyAgICAgICAgYHdwdHNlcnZlYCwgc28gYCouYW55LmpzYCBhbmQgc2ltaWxhciB0ZXN0cyB3
b24ndCB3b3JrIHRoZXJlOyBzdGljaworICAgICAgICB3aXRoIHRoZSBgLmh0bWxgIGVxdWl2YWxl
bnQuCisgICAgIiIiCisKKworY2xhc3MgUGF0aExlbmd0aChSdWxlKToKKyAgICBuYW1lID0gIlBB
VEggTEVOR1RIIgorICAgIGRlc2NyaXB0aW9uID0gIi8lcyBsb25nZXIgdGhhbiBtYXhpbXVtIHBh
dGggbGVuZ3RoICglZCA+IDE1MCkiCisgICAgdG9fZml4ID0gInVzZSBzaG9ydGVyIGZpbGVuYW1l
IHRvIHJlbmFtZSB0aGUgdGVzdCBmaWxlIgorCisKK2NsYXNzIEZpbGVUeXBlKFJ1bGUpOgorICAg
IG5hbWUgPSAiRklMRSBUWVBFIgorICAgIGRlc2NyaXB0aW9uID0gIi8lcyBpcyBhbiB1bnN1cHBv
cnRlZCBmaWxlIHR5cGUgKCVzKSIKKworCitjbGFzcyBXb3JrZXJDb2xsaXNpb24oUnVsZSk6Cisg
ICAgbmFtZSA9ICJXT1JLRVIgQ09MTElTSU9OIgorICAgIGRlc2NyaXB0aW9uID0gY29sbGFwc2Uo
IiIiCisgICAgICAgIHBhdGggZW5kcyB3aXRoICVzIHdoaWNoIGNvbGxpZGVzIHdpdGggZ2VuZXJh
dGVkIHRlc3RzIGZyb20gJXMgZmlsZXMKKyAgICAiIiIpCisKKworY2xhc3MgR2l0SWdub3JlRmls
ZShSdWxlKToKKyAgICBuYW1lID0gIkdJVElHTk9SRSIKKyAgICBkZXNjcmlwdGlvbiA9ICIuZ2l0
aWdub3JlIGZvdW5kIG91dHNpZGUgdGhlIHJvb3QiCisKKworY2xhc3MgQWhlbUNvcHkoUnVsZSk6
CisgICAgbmFtZSA9ICJBSEVNIENPUFkiCisgICAgZGVzY3JpcHRpb24gPSAiRG9uJ3QgYWRkIGV4
dHJhIGNvcGllcyBvZiBBaGVtLCB1c2UgL2ZvbnRzL0FoZW0udHRmIgorCisKK2NsYXNzIEFoZW1T
eXN0ZW1Gb250KFJ1bGUpOgorICAgIG5hbWUgPSAiQUhFTSBTWVNURU0gRk9OVCIKKyAgICBkZXNj
cmlwdGlvbiA9ICJEb24ndCB1c2UgQWhlbSBhcyBhIHN5c3RlbSBmb250LCB1c2UgL2ZvbnRzL2Fo
ZW0uY3NzIgorCisKKyMgVE9ETzogQWRkIHRlc3RzIGZvciB0aGlzIHJ1bGUKK2NsYXNzIElnbm9y
ZWRQYXRoKFJ1bGUpOgorICAgIG5hbWUgPSAiSUdOT1JFRCBQQVRIIgorICAgIGRlc2NyaXB0aW9u
ID0gY29sbGFwc2UoIiIiCisgICAgICAgICVzIG1hdGNoZXMgYW4gaWdub3JlIGZpbHRlciBpbiAu
Z2l0aWdub3JlIC0gcGxlYXNlIGFkZCBhIC5naXRpZ25vcmUKKyAgICAgICAgZXhjZXB0aW9uCisg
ICAgIiIiKQorCisKK2NsYXNzIENTU0NvbGxpZGluZ1Rlc3ROYW1lKFJ1bGUpOgorICAgIG5hbWUg
PSAiQ1NTLUNPTExJRElORy1URVNULU5BTUUiCisgICAgZGVzY3JpcHRpb24gPSAiVGhlIGZpbGVu
YW1lICVzIGluIHRoZSAlcyB0ZXN0c3VpdGUgaXMgc2hhcmVkIGJ5OiAlcyIKKworCitjbGFzcyBD
U1NDb2xsaWRpbmdSZWZOYW1lKFJ1bGUpOgorICAgIG5hbWUgPSAiQ1NTLUNPTExJRElORy1SRUYt
TkFNRSIKKyAgICBkZXNjcmlwdGlvbiA9ICJUaGUgZmlsZW5hbWUgJXMgaXMgc2hhcmVkIGJ5OiAl
cyIKKworCitjbGFzcyBDU1NDb2xsaWRpbmdTdXBwb3J0TmFtZShSdWxlKToKKyAgICBuYW1lID0g
IkNTUy1DT0xMSURJTkctU1VQUE9SVC1OQU1FIgorICAgIGRlc2NyaXB0aW9uID0gIlRoZSBmaWxl
bmFtZSAlcyBpcyBzaGFyZWQgYnk6ICVzIgorCisKK2NsYXNzIFN1cHBvcnRXcm9uZ0RpcihSdWxl
KToKKyAgICBuYW1lID0gIlNVUFBPUlQtV1JPTkctRElSIgorICAgIGRlc2NyaXB0aW9uID0gIlN1
cHBvcnQgZmlsZSBub3QgaW4gc3VwcG9ydCBkaXJlY3RvcnkiCisKKworY2xhc3MgUGFyc2VGYWls
ZWQoUnVsZSk6CisgICAgbmFtZSA9ICJQQVJTRS1GQUlMRUQiCisgICAgZGVzY3JpcHRpb24gPSAi
VW5hYmxlIHRvIHBhcnNlIGZpbGUiCisgICAgdG9fZml4ID0gIiIiCisgICAgICAgIGV4YW1pbmUg
dGhlIGZpbGUgdG8gZmluZCB0aGUgY2F1c2VzIG9mIGFueSBwYXJzZSBlcnJvcnMsIGFuZCBmaXgg
dGhlbS4KKyAgICAiIiIKKworCitjbGFzcyBDb250ZW50TWFudWFsKFJ1bGUpOgorICAgIG5hbWUg
PSAiQ09OVEVOVC1NQU5VQUwiCisgICAgZGVzY3JpcHRpb24gPSAiTWFudWFsIHRlc3Qgd2hvc2Ug
ZmlsZW5hbWUgZG9lc24ndCBlbmQgaW4gJy1tYW51YWwnIgorCisKK2NsYXNzIENvbnRlbnRWaXN1
YWwoUnVsZSk6CisgICAgbmFtZSA9ICJDT05URU5ULVZJU1VBTCIKKyAgICBkZXNjcmlwdGlvbiA9
ICJWaXN1YWwgdGVzdCB3aG9zZSBmaWxlbmFtZSBkb2Vzbid0IGVuZCBpbiAnLXZpc3VhbCciCisK
KworY2xhc3MgQWJzb2x1dGVVcmxSZWYoUnVsZSk6CisgICAgbmFtZSA9ICJBQlNPTFVURS1VUkwt
UkVGIgorICAgIGRlc2NyaXB0aW9uID0gY29sbGFwc2UoIiIiCisgICAgICAgIFJlZmVyZW5jZSB0
ZXN0IHdpdGggYSByZWZlcmVuY2UgZmlsZSBzcGVjaWZpZWQgdmlhIGFuIGFic29sdXRlIFVSTDoK
KyAgICAgICAgJyVzJworICAgICIiIikKKworCitjbGFzcyBTYW1lRmlsZVJlZihSdWxlKToKKyAg
ICBuYW1lID0gIlNBTUUtRklMRS1SRUYiCisgICAgZGVzY3JpcHRpb24gPSAiUmVmZXJlbmNlIHRl
c3Qgd2hpY2ggcG9pbnRzIGF0IGl0c2VsZiBhcyBhIHJlZmVyZW5jZSIKKworCitjbGFzcyBOb25l
eGlzdGVudFJlZihSdWxlKToKKyAgICBuYW1lID0gIk5PTi1FWElTVEVOVC1SRUYiCisgICAgZGVz
Y3JpcHRpb24gPSBjb2xsYXBzZSgiIiIKKyAgICAgICAgUmVmZXJlbmNlIHRlc3Qgd2l0aCBhIG5v
bi1leGlzdGVudCAnJXMnIHJlbGF0aW9uc2hpcCByZWZlcmVuY2U6ICclcycKKyAgICAiIiIpCisK
KworY2xhc3MgTXVsdGlwbGVUaW1lb3V0KFJ1bGUpOgorICAgIG5hbWUgPSAiTVVMVElQTEUtVElN
RU9VVCIKKyAgICBkZXNjcmlwdGlvbiA9ICJNb3JlIHRoYW4gb25lIG1ldGEgbmFtZT0ndGltZW91
dCciCisgICAgdG9fZml4ID0gIiIiCisgICAgICAgIGVuc3VyZSBlYWNoIHRlc3QgZmlsZSBoYXMg
b25seSBvbmUgaW5zdGFuY2Ugb2YgYSBgPG1ldGEKKyAgICAgICAgbmFtZT0idGltZW91dCIuLi4+
YCBlbGVtZW50CisgICAgIiIiCisKKworY2xhc3MgSW52YWxpZFRpbWVvdXQoUnVsZSk6CisgICAg
bmFtZSA9ICJJTlZBTElELVRJTUVPVVQiCisgICAgZGVzY3JpcHRpb24gPSBjb2xsYXBzZSgiIiIK
KyAgICAgICAgVGVzdCBmaWxlIHdpdGggYDxtZXRhIG5hbWU9J3RpbWVvdXQnLi4uPmAgZWxlbWVu
dCB0aGF0IGhhcyBhIGBjb250ZW50YAorICAgICAgICBhdHRyaWJ1dGUgd2hvc2UgdmFsdWUgaXMg
bm90IGBsb25nYDogJXMKKyAgICAiIiIpCisgICAgdG9fZml4ID0gInJlcGxhY2UgdGhlIHZhbHVl
IG9mIHRoZSBgY29udGVudGAgYXR0cmlidXRlIHdpdGggYGxvbmdgIgorCisKK2NsYXNzIE11bHRp
cGxlVGVzdGhhcm5lc3MoUnVsZSk6CisgICAgbmFtZSA9ICJNVUxUSVBMRS1URVNUSEFSTkVTUyIK
KyAgICBkZXNjcmlwdGlvbiA9ICJNb3JlIHRoYW4gb25lIGA8c2NyaXB0IHNyYz0nL3Jlc291cmNl
cy90ZXN0aGFybmVzcy5qcyc+YCIKKyAgICB0b19maXggPSAiIiIKKyAgICAgICAgZW5zdXJlIGVh
Y2ggdGVzdCBoYXMgb25seSBvbmUgYDxzY3JpcHQKKyAgICAgICAgc3JjPScvcmVzb3VyY2VzL3Rl
c3RoYXJuZXNzcmVwb3J0LmpzJz5gIGluc3RhbmNlCisgICAgIiIiCisKKworY2xhc3MgTWlzc2lu
Z1Rlc3RoYXJuZXNzUmVwb3J0KFJ1bGUpOgorICAgIG5hbWUgPSAiTUlTU0lORy1URVNUSEFSTkVT
U1JFUE9SVCIKKyAgICBkZXNjcmlwdGlvbiA9ICJNaXNzaW5nIGA8c2NyaXB0IHNyYz0nL3Jlc291
cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyc+YCIKKyAgICB0b19maXggPSAiIiIKKyAgICAgICAg
ZW5zdXJlIGVhY2ggdGVzdCBmaWxlIGNvbnRhaW5zIGA8c2NyaXB0CisgICAgICAgIHNyYz0nL3Jl
c291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyc+YAorICAgICIiIgorCisKK2NsYXNzIE11bHRp
cGxlVGVzdGhhcm5lc3NSZXBvcnQoUnVsZSk6CisgICAgbmFtZSA9ICJNVUxUSVBMRS1URVNUSEFS
TkVTU1JFUE9SVCIKKyAgICBkZXNjcmlwdGlvbiA9ICJNb3JlIHRoYW4gb25lIGA8c2NyaXB0IHNy
Yz0nL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyc+YCIKKworCitjbGFzcyBQcmVzZW50
VGVzdGhhcm5lc3NDU1MoUnVsZSk6CisgICAgbmFtZSA9ICJQUkVTRU5ULVRFU1RIQVJORVNTQ1NT
IgorICAgIGRlc2NyaXB0aW9uID0gIkV4cGxpY2l0IGxpbmsgdG8gdGVzdGhhcm5lc3MuY3NzIHBy
ZXNlbnQiCisKKworY2xhc3MgVmFyaWFudE1pc3NpbmcoUnVsZSk6CisgICAgbmFtZSA9ICJWQVJJ
QU5ULU1JU1NJTkciCisgICAgZGVzY3JpcHRpb24gPSBjb2xsYXBzZSgiIiIKKyAgICAgICAgVGVz
dCBmaWxlIHdpdGggYSBgPG1ldGEgbmFtZT0ndmFyaWFudCcuLi4+YCBlbGVtZW50IHRoYXQncyBt
aXNzaW5nIGEKKyAgICAgICAgYGNvbnRlbnRgIGF0dHJpYnV0ZQorICAgICIiIikKKyAgICB0b19m
aXggPSAiIiIKKyAgICAgICAgYWRkIGEgYGNvbnRlbnRgIGF0dHJpYnV0ZSB3aXRoIGFuIGFwcHJv
cHJpYXRlIHZhbHVlIHRvIHRoZSBgPG1ldGEKKyAgICAgICAgbmFtZT0ndmFyaWFudCcuLi4+YCBl
bGVtZW50CisgICAgIiIiCisKKworY2xhc3MgTWFsZm9ybWVkVmFyaWFudChSdWxlKToKKyAgICBu
YW1lID0gIk1BTEZPUk1FRC1WQVJJQU5UIgorICAgIGRlc2NyaXB0aW9uID0gY29sbGFwc2UoIiIi
CisgICAgICAgICVzIGA8bWV0YSBuYW1lPXZhcmlhbnQ+YCAnY29udGVudCcgYXR0cmlidXRlIG11
c3QgYmUgdGhlIGVtcHR5IHN0cmluZworICAgICAgICBvciBzdGFydCB3aXRoICc/JyBvciAnIycK
KyAgICAiIiIpCisKKworY2xhc3MgTGF0ZVRpbWVvdXQoUnVsZSk6CisgICAgbmFtZSA9ICJMQVRF
LVRJTUVPVVQiCisgICAgZGVzY3JpcHRpb24gPSAiYDxtZXRhIG5hbWU9dGltZW91dD5gIHNlZW4g
YWZ0ZXIgdGVzdGhhcm5lc3MuanMgc2NyaXB0IgorICAgIGRlc2NyaXB0aW9uID0gY29sbGFwc2Uo
IiIiCisgICAgICAgIFRlc3QgZmlsZSB3aXRoIGA8bWV0YSBuYW1lPSd0aW1lb3V0Jy4uLj5gIGVs
ZW1lbnQgYWZ0ZXIgYDxzY3JpcHQKKyAgICAgICAgc3JjPScvcmVzb3VyY2VzL3Rlc3RoYXJuZXNz
cmVwb3J0LmpzJz5gIGVsZW1lbnQKKyAgICAiIiIpCisgICAgdG9fZml4ID0gIiIiCisgICAgICAg
IG1vdmUgdGhlIGA8bWV0YSBuYW1lPSJ0aW1lb3V0Ii4uLj5gIGVsZW1lbnQgdG8gcHJlY2VkZSB0
aGUgYHNjcmlwdGAKKyAgICAgICAgZWxlbWVudC4KKyAgICAiIiIKKworCitjbGFzcyBFYXJseVRl
c3RoYXJuZXNzUmVwb3J0KFJ1bGUpOgorICAgIG5hbWUgPSAiRUFSTFktVEVTVEhBUk5FU1NSRVBP
UlQiCisgICAgZGVzY3JpcHRpb24gPSBjb2xsYXBzZSgiIiIKKyAgICAgICAgVGVzdCBmaWxlIGhh
cyBhbiBpbnN0YW5jZSBvZgorICAgICAgICBgPHNjcmlwdCBzcmM9Jy9yZXNvdXJjZXMvdGVzdGhh
cm5lc3NyZXBvcnQuanMnPmAgcHJpb3IgdG8KKyAgICAgICAgYDxzY3JpcHQgc3JjPScvcmVzb3Vy
Y2VzL3Rlc3RoYXJuZXNzLmpzJz5gCisgICAgIiIiKQorICAgIHRvX2ZpeCA9ICJmbGlwIHRoZSBv
cmRlciIKKworCitjbGFzcyBNdWx0aXBsZVRlc3Rkcml2ZXIoUnVsZSk6CisgICAgbmFtZSA9ICJN
VUxUSVBMRS1URVNURFJJVkVSIgorICAgIGRlc2NyaXB0aW9uID0gIk1vcmUgdGhhbiBvbmUgYDxz
Y3JpcHQgc3JjPScvcmVzb3VyY2VzL3Rlc3Rkcml2ZXIuanMnPmAiCisKKworY2xhc3MgTWlzc2lu
Z1Rlc3Rkcml2ZXJWZW5kb3IoUnVsZSk6CisgICAgbmFtZSA9ICJNSVNTSU5HLVRFU1REUklWRVIt
VkVORE9SIgorICAgIGRlc2NyaXB0aW9uID0gIk1pc3NpbmcgYDxzY3JpcHQgc3JjPScvcmVzb3Vy
Y2VzL3Rlc3Rkcml2ZXItdmVuZG9yLmpzJz5gIgorCisKK2NsYXNzIE11bHRpcGxlVGVzdGRyaXZl
clZlbmRvcihSdWxlKToKKyAgICBuYW1lID0gIk1VTFRJUExFLVRFU1REUklWRVItVkVORE9SIgor
ICAgIGRlc2NyaXB0aW9uID0gIk1vcmUgdGhhbiBvbmUgYDxzY3JpcHQgc3JjPScvcmVzb3VyY2Vz
L3Rlc3Rkcml2ZXItdmVuZG9yLmpzJz5gIgorCisKK2NsYXNzIFRlc3RoYXJuZXNzUGF0aChSdWxl
KToKKyAgICBuYW1lID0gIlRFU1RIQVJORVNTLVBBVEgiCisgICAgZGVzY3JpcHRpb24gPSAidGVz
dGhhcm5lc3MuanMgc2NyaXB0IHNlZW4gd2l0aCBpbmNvcnJlY3QgcGF0aCIKKworCitjbGFzcyBU
ZXN0aGFybmVzc1JlcG9ydFBhdGgoUnVsZSk6CisgICAgbmFtZSA9ICJURVNUSEFSTkVTU1JFUE9S
VC1QQVRIIgorICAgIGRlc2NyaXB0aW9uID0gInRlc3RoYXJuZXNzcmVwb3J0LmpzIHNjcmlwdCBz
ZWVuIHdpdGggaW5jb3JyZWN0IHBhdGgiCisKKworY2xhc3MgVGVzdGRyaXZlclBhdGgoUnVsZSk6
CisgICAgbmFtZSA9ICJURVNURFJJVkVSLVBBVEgiCisgICAgZGVzY3JpcHRpb24gPSAidGVzdGRy
aXZlci5qcyBzY3JpcHQgc2VlbiB3aXRoIGluY29ycmVjdCBwYXRoIgorCisKK2NsYXNzIFRlc3Rk
cml2ZXJWZW5kb3JQYXRoKFJ1bGUpOgorICAgIG5hbWUgPSAiVEVTVERSSVZFUi1WRU5ET1ItUEFU
SCIKKyAgICBkZXNjcmlwdGlvbiA9ICJ0ZXN0ZHJpdmVyLXZlbmRvci5qcyBzY3JpcHQgc2VlbiB3
aXRoIGluY29ycmVjdCBwYXRoIgorCisKK2NsYXNzIE9wZW5Ob01vZGUoUnVsZSk6CisgICAgbmFt
ZSA9ICJPUEVOLU5PLU1PREUiCisgICAgZGVzY3JpcHRpb24gPSAiRmlsZSBvcGVuZWQgd2l0aG91
dCBwcm92aWRpbmcgYW4gZXhwbGljaXQgbW9kZSAobm90ZTogYmluYXJ5IGZpbGVzIG11c3QgYmUg
cmVhZCB3aXRoICdiJyBpbiB0aGUgbW9kZSBmbGFncykiCisKKworY2xhc3MgVW5rbm93bkdsb2Jh
bE1ldGFkYXRhKFJ1bGUpOgorICAgIG5hbWUgPSAiVU5LTk9XTi1HTE9CQUwtTUVUQURBVEEiCisg
ICAgZGVzY3JpcHRpb24gPSAiVW5leHBlY3RlZCB2YWx1ZSBmb3IgZ2xvYmFsIG1ldGFkYXRhIgor
CisKK2NsYXNzIEJyb2tlbkdsb2JhbE1ldGFkYXRhKFJ1bGUpOgorICAgIG5hbWUgPSAiQlJPS0VO
LUdMT0JBTC1NRVRBREFUQSIKKyAgICBkZXNjcmlwdGlvbiA9ICJJbnZhbGlkIGdsb2JhbCBtZXRh
ZGF0YTogJXMiCisKKworY2xhc3MgVW5rbm93blRpbWVvdXRNZXRhZGF0YShSdWxlKToKKyAgICBu
YW1lID0gIlVOS05PV04tVElNRU9VVC1NRVRBREFUQSIKKyAgICBkZXNjcmlwdGlvbiA9ICJVbmV4
cGVjdGVkIHZhbHVlIGZvciB0aW1lb3V0IG1ldGFkYXRhIgorCisKK2NsYXNzIFVua25vd25NZXRh
ZGF0YShSdWxlKToKKyAgICBuYW1lID0gIlVOS05PV04tTUVUQURBVEEiCisgICAgZGVzY3JpcHRp
b24gPSAiVW5leHBlY3RlZCBraW5kIG9mIG1ldGFkYXRhIgorCisKK2NsYXNzIFN0cmF5TWV0YWRh
dGEoUnVsZSk6CisgICAgbmFtZSA9ICJTVFJBWS1NRVRBREFUQSIKKyAgICBkZXNjcmlwdGlvbiA9
ICJNZXRhZGF0YSBjb21tZW50cyBzaG91bGQgc3RhcnQgdGhlIGZpbGUiCisKKworY2xhc3MgSW5k
ZW50ZWRNZXRhZGF0YShSdWxlKToKKyAgICBuYW1lID0gIklOREVOVEVELU1FVEFEQVRBIgorICAg
IGRlc2NyaXB0aW9uID0gIk1ldGFkYXRhIGNvbW1lbnRzIHNob3VsZCBzdGFydCB0aGUgbGluZSIK
KworCitjbGFzcyBCcm9rZW5NZXRhZGF0YShSdWxlKToKKyAgICBuYW1lID0gIkJST0tFTi1NRVRB
REFUQSIKKyAgICBkZXNjcmlwdGlvbiA9ICJNZXRhZGF0YSBjb21tZW50IGlzIG5vdCBmb3JtYXR0
ZWQgY29ycmVjdGx5IgorCisKK2NsYXNzIFJlZ2V4cChzaXgud2l0aF9tZXRhY2xhc3MoYWJjLkFC
Q01ldGEpKToKKyAgICBAYWJjLmFic3RyYWN0cHJvcGVydHkKKyAgICBkZWYgcGF0dGVybihzZWxm
KToKKyAgICAgICAgIyB0eXBlOiAoKSAtPiBieXRlcworICAgICAgICBwYXNzCisKKyAgICBAYWJj
LmFic3RyYWN0cHJvcGVydHkKKyAgICBkZWYgbmFtZShzZWxmKToKKyAgICAgICAgIyB0eXBlOiAo
KSAtPiBUZXh0CisgICAgICAgIHBhc3MKKworICAgIEBhYmMuYWJzdHJhY3Rwcm9wZXJ0eQorICAg
IGRlZiBkZXNjcmlwdGlvbihzZWxmKToKKyAgICAgICAgIyB0eXBlOiAoKSAtPiBUZXh0CisgICAg
ICAgIHBhc3MKKworICAgIGZpbGVfZXh0ZW5zaW9ucyA9IE5vbmUgICMgdHlwZTogT3B0aW9uYWxb
TGlzdFtUZXh0XV0KKworICAgIGRlZiBfX2luaXRfXyhzZWxmKToKKyAgICAgICAgIyB0eXBlOiAo
KSAtPiBOb25lCisgICAgICAgIHNlbGYuX3JlID0gcmUuY29tcGlsZShzZWxmLnBhdHRlcm4pICAj
IHR5cGU6IFBhdHRlcm5bYnl0ZXNdCisKKyAgICBkZWYgYXBwbGllcyhzZWxmLCBwYXRoKToKKyAg
ICAgICAgIyB0eXBlOiAoc3RyKSAtPiBib29sCisgICAgICAgIHJldHVybiAoc2VsZi5maWxlX2V4
dGVuc2lvbnMgaXMgTm9uZSBvcgorICAgICAgICAgICAgICAgIG9zLnBhdGguc3BsaXRleHQocGF0
aClbMV0gaW4gc2VsZi5maWxlX2V4dGVuc2lvbnMpCisKKyAgICBkZWYgc2VhcmNoKHNlbGYsIGxp
bmUpOgorICAgICAgICAjIHR5cGU6IChieXRlcykgLT4gT3B0aW9uYWxbTWF0Y2hbYnl0ZXNdXQor
ICAgICAgICByZXR1cm4gc2VsZi5fcmUuc2VhcmNoKGxpbmUpCisKKworY2xhc3MgVGFic1JlZ2V4
cChSZWdleHApOgorICAgIHBhdHRlcm4gPSBiIl5cdCIKKyAgICBuYW1lID0gIklOREVOVCBUQUJT
IgorICAgIGRlc2NyaXB0aW9uID0gIlRlc3QtZmlsZSBsaW5lIHN0YXJ0cyB3aXRoIG9uZSBvciBt
b3JlIHRhYiBjaGFyYWN0ZXJzIgorICAgIHRvX2ZpeCA9ICJ1c2Ugc3BhY2VzIHRvIHJlcGxhY2Ug
YW55IHRhYiBjaGFyYWN0ZXJzIGF0IGJlZ2lubmluZyBvZiBsaW5lcyIKKworY2xhc3MgQ1JSZWdl
eHAoUmVnZXhwKToKKyAgICBwYXR0ZXJuID0gYiJcciQiCisgICAgbmFtZSA9ICJDUiBBVCBFT0wi
CisgICAgZGVzY3JpcHRpb24gPSAiVGVzdC1maWxlIGxpbmUgZW5kcyB3aXRoIENSIChVKzAwMEQp
IGNoYXJhY3RlciIKKyAgICB0b19maXggPSAiIiIKKyAgICAgICAgcmVmb3JtYXQgZmlsZSBzbyBl
YWNoIGxpbmUganVzdCBoYXMgTEYgKFUrMDAwQSkgbGluZSBlbmRpbmcgKHN0YW5kYXJkLAorICAg
ICAgICBjcm9zcy1wbGF0Zm9ybSAiVW5peCIgbGluZSBlbmRpbmdzIGluc3RlYWQgb2YsIGUuZy4s
IERPUyBsaW5lIGVuZGluZ3MpLgorICAgICIiIgorCitjbGFzcyBTZXRUaW1lb3V0UmVnZXhwKFJl
Z2V4cCk6CisgICAgcGF0dGVybiA9IGJyInNldFRpbWVvdXRccypcKCIKKyAgICBuYW1lID0gIlNF
VCBUSU1FT1VUIgorICAgIGZpbGVfZXh0ZW5zaW9ucyA9IFsiLmh0bWwiLCAiLmh0bSIsICIuanMi
LCAiLnhodCIsICIueGh0bWwiLCAiLnN2ZyJdCisgICAgZGVzY3JpcHRpb24gPSAic2V0VGltZW91
dCB1c2VkIgorICAgIHRvX2ZpeCA9ICIiIgorICAgICAgICByZXBsYWNlIGFsbCBgc2V0VGltZW91
dCguLi4pYCBjYWxscyB3aXRoIGBzdGVwX3RpbWVvdXQoLi4uKWAgY2FsbHMKKyAgICAiIiIKKwor
Y2xhc3MgVzNDVGVzdE9yZ1JlZ2V4cChSZWdleHApOgorICAgIHBhdHRlcm4gPSBiciJ3M2NcLXRl
c3RcLm9yZyIKKyAgICBuYW1lID0gIlczQy1URVNULk9SRyIKKyAgICBkZXNjcmlwdGlvbiA9ICJU
ZXN0LWZpbGUgbGluZSBoYXMgdGhlIHN0cmluZyBgdzNjLXRlc3Qub3JnYCIKKyAgICB0b19maXgg
PSAiIiIKKyAgICAgICAgZWl0aGVyIHJlcGxhY2UgdGhlIGB3M2MtdGVzdC5vcmdgIHN0cmluZyB3
aXRoIHRoZSBleHByZXNzaW9uCisgICAgICAgIGB7e2hvc3R9fTp7e3BvcnRzW2h0dHBdWzBdfX1g
IG9yIGEgZ2VuZXJpYyBob3N0bmFtZSBsaWtlIGBleGFtcGxlLm9yZ2AKKyAgICAiIiIKKworY2xh
c3MgV2ViUGxhdGZvcm1UZXN0UmVnZXhwKFJlZ2V4cCk6CisgICAgcGF0dGVybiA9IGJyIndlYlwt
cGxhdGZvcm1cLnRlc3QiCisgICAgbmFtZSA9ICJXRUItUExBVEZPUk0uVEVTVCIKKyAgICBkZXNj
cmlwdGlvbiA9ICJJbnRlcm5hbCB3ZWItcGxhdGZvcm0udGVzdCBkb21haW4gdXNlZCIKKworY2xh
c3MgV2ViaWRsMlJlZ2V4cChSZWdleHApOgorICAgIHBhdHRlcm4gPSBiciJ3ZWJpZGwyXC5qcyIK
KyAgICBuYW1lID0gIldFQklETDIuSlMiCisgICAgZGVzY3JpcHRpb24gPSAiTGVnYWN5IHdlYmlk
bDIuanMgc2NyaXB0IHVzZWQiCisKK2NsYXNzIENvbnNvbGVSZWdleHAoUmVnZXhwKToKKyAgICBw
YXR0ZXJuID0gYnIiY29uc29sZVwuW2EtekEtWl0rXHMqXCgiCisgICAgbmFtZSA9ICJDT05TT0xF
IgorICAgIGZpbGVfZXh0ZW5zaW9ucyA9IFsiLmh0bWwiLCAiLmh0bSIsICIuanMiLCAiLnhodCIs
ICIueGh0bWwiLCAiLnN2ZyJdCisgICAgZGVzY3JpcHRpb24gPSAiVGVzdC1maWxlIGxpbmUgaGFz
IGEgYGNvbnNvbGUuKiguLi4pYCBjYWxsIgorICAgIHRvX2ZpeCA9ICIiIgorICAgICAgICByZW1v
dmUgdGhlIGBjb25zb2xlLiooLi4uKWAgY2FsbCAoYW5kIGluIHNvbWUgY2FzZXMsIGNvbnNpZGVy
IGFkZGluZyBhbgorICAgICAgICBgYXNzZXJ0XypgIG9mIHNvbWUga2luZCBpbiBwbGFjZSBvZiBp
dCkKKyAgICAiIiIKKworY2xhc3MgR2VuZXJhdGVUZXN0c1JlZ2V4cChSZWdleHApOgorICAgIHBh
dHRlcm4gPSBiciJnZW5lcmF0ZV90ZXN0c1xzKlwoIgorICAgIG5hbWUgPSAiR0VORVJBVEVfVEVT
VFMiCisgICAgZmlsZV9leHRlbnNpb25zID0gWyIuaHRtbCIsICIuaHRtIiwgIi5qcyIsICIueGh0
IiwgIi54aHRtbCIsICIuc3ZnIl0KKyAgICBkZXNjcmlwdGlvbiA9ICJUZXN0IGZpbGUgbGluZSBo
YXMgYSBnZW5lcmF0ZV90ZXN0cyBjYWxsIgorICAgIHRvX2ZpeCA9ICJyZW1vdmUgdGhlIGNhbGwg
YW5kIGNhbGwgYHRlc3QoKWAgYSBudW1iZXIgb2YgdGltZXMgaW5zdGVhZCIKKworY2xhc3MgUHJp
bnRSZWdleHAoUmVnZXhwKToKKyAgICBwYXR0ZXJuID0gYnIicHJpbnQoPzpcc3xccypcKCkiCisg
ICAgbmFtZSA9ICJQUklOVCBTVEFURU1FTlQiCisgICAgZmlsZV9leHRlbnNpb25zID0gWyIucHki
XQorICAgIGRlc2NyaXB0aW9uID0gY29sbGFwc2UoIiIiCisgICAgICAgIEEgc2VydmVyLXNpZGUg
cHl0aG9uIHN1cHBvcnQgZmlsZSBjb250YWlucyBhIGBwcmludGAgc3RhdGVtZW50CisgICAgIiIi
KQorICAgIHRvX2ZpeCA9ICIiIgorICAgICAgICByZW1vdmUgdGhlIGBwcmludGAgc3RhdGVtZW50
IG9yIHJlcGxhY2UgaXQgd2l0aCBzb21ldGhpbmcgZWxzZSB0aGF0CisgICAgICAgIGFjaGlldmVz
IHRoZSBpbnRlbmRlZCBlZmZlY3QgKGUuZy4sIGEgbG9nZ2luZyBjYWxsKQorICAgICIiIgorCitj
bGFzcyBMYXlvdXRUZXN0c1JlZ2V4cChSZWdleHApOgorICAgIHBhdHRlcm4gPSBiciIoZXZlbnRT
ZW5kZXJ8dGVzdFJ1bm5lcnxpbnRlcm5hbHMpXC4iCisgICAgbmFtZSA9ICJMQVlPVVRURVNUUyBB
UElTIgorICAgIGZpbGVfZXh0ZW5zaW9ucyA9IFsiLmh0bWwiLCAiLmh0bSIsICIuanMiLCAiLnho
dCIsICIueGh0bWwiLCAiLnN2ZyJdCisgICAgZGVzY3JpcHRpb24gPSAiZXZlbnRTZW5kZXIvdGVz
dFJ1bm5lci9pbnRlcm5hbHMgdXNlZDsgdGhlc2UgYXJlIExheW91dFRlc3RzLXNwZWNpZmljIEFQ
SXMgKFdlYktpdC9CbGluaykiCisKK2NsYXNzIE1pc3NpbmdEZXBzUmVnZXhwKFJlZ2V4cCk6Cisg
ICAgcGF0dGVybiA9IGJyIlteXHddL2dlbi8iCisgICAgbmFtZSA9ICJNSVNTSU5HIERFUEVOREVO
Q1kiCisgICAgZmlsZV9leHRlbnNpb25zID0gWyIuaHRtbCIsICIuaHRtIiwgIi5qcyIsICIueGh0
IiwgIi54aHRtbCIsICIuc3ZnIl0KKyAgICBkZXNjcmlwdGlvbiA9ICJDaHJvbWl1bS1zcGVjaWZp
YyBjb250ZW50IHJlZmVyZW5jZWQiCisgICAgdG9fZml4ID0gIlJlaW1wbGVtZW50IHRoZSB0ZXN0
IHRvIHVzZSB3ZWxsLWRvY3VtZW50ZWQgdGVzdGluZyBpbnRlcmZhY2VzIgorCitjbGFzcyBTcGVj
aWFsUG93ZXJzUmVnZXhwKFJlZ2V4cCk6CisgICAgcGF0dGVybiA9IGIiU3BlY2lhbFBvd2VycyIK
KyAgICBuYW1lID0gIlNQRUNJQUxQT1dFUlMgQVBJIgorICAgIGZpbGVfZXh0ZW5zaW9ucyA9IFsi
Lmh0bWwiLCAiLmh0bSIsICIuanMiLCAiLnhodCIsICIueGh0bWwiLCAiLnN2ZyJdCisgICAgZGVz
Y3JpcHRpb24gPSAiU3BlY2lhbFBvd2VycyB1c2VkOyB0aGlzIGlzIGdlY2tvLXNwZWNpZmljIGFu
ZCBub3Qgc3VwcG9ydGVkIGluIHdwdCIKKworY2xhc3MgVHJhaWxpbmdXaGl0ZXNwYWNlUmVnZXhw
KFJlZ2V4cCk6CisgICAgbmFtZSA9ICJUUkFJTElORyBXSElURVNQQUNFIgorICAgIGRlc2NyaXB0
aW9uID0gIldoaXRlc3BhY2UgYXQgRU9MIgorICAgIHBhdHRlcm4gPSBiIlsgXHRcZlx2XSQiCisg
ICAgdG9fZml4ID0gIiIiUmVtb3ZlIHRyYWlsaW5nIHdoaXRlc3BhY2UgZnJvbSBhbGwgbGluZXMg
aW4gdGhlIGZpbGUuIiIiCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2xpbnQvdGVzdHMvX19pbml0X18ucHkgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2xpbnQvdGVzdHMvX19pbml0
X18ucHkKaW5kZXggYTY4MzRiODI4NWE1NmJlZjBlMTU0M2ZkOTAxYzdlNmYyZjhiYzIwMi4uZTY5
ZGUyOWJiMmQxZDY0MzRiOGIyOWFlNzc1YWQ4YzJlNDhjNTM5MSAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9saW50L3Rlc3RzL19f
aW5pdF9fLnB5CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvbGludC90ZXN0cy9fX2luaXRfXy5weQpAQCAtMSArMCwwIEBACi0jIFRoaXMgZmls
ZSBpcyByZXF1aXJlZCBmb3IgUHl0aG9uIHRvIHNlYXJjaCB0aGlzIGRpcmVjdG9yeSBmb3IgbW9k
dWxlcy4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2xpbnQvdGVzdHMvZHVtbXkv
YWJvdXRfYmxhbmsuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvbGludC90ZXN0cy9kdW1teS9hYm91dF9ibGFuay5odG1sCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjhmOTQwYjU0MGY5YmQzODI5MmVmZTdkZjhiZDk3YmRhZjM4NjNhZmIKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2xp
bnQvdGVzdHMvZHVtbXkvYWJvdXRfYmxhbmsuaHRtbApAQCAtMCwwICsxIEBACis8bGluayByZWw9
Im1hdGNoIiBocmVmPWFib3V0OmJsYW5rPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9saW50L3Rlc3RzL2R1bW15L2Nzcy9jc3Mt
dW5pcXVlL2EtZXhwZWN0ZWQuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvbGludC90ZXN0cy9kdW1teS9jc3MvY3NzLXVuaXF1ZS9hLWV4cGVj
dGVkLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGQwMDQ5MWZkN2U1YmI2ZmEy
OGM1MTdhMGJiMzJiOGI1MDY1MzlkNGQuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy9saW50L3Rlc3RzL2R1bW15L2Nzcy9jc3MtdW5pcXVlL2EtZXhwZWN0ZWQuaHRtbAor
KysgL2Rldi9udWxsCkBAIC0xICswLDAgQEAKLTEKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvbGludC90ZXN0cy9kdW1teS9jc3Mv
Y3NzLXVuaXF1ZS9hLXJlZi5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy9saW50L3Rlc3RzL2R1bW15L2Nzcy9jc3MtdW5pcXVlL2EtcmVmLmh0
bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uZDAwNDkxZmQ3ZTViYjZmYTI4YzUxN2EwYmIzMmI4YjUwNjUzOWQ0ZAot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvbGludC90ZXN0cy9kdW1teS9jc3MvY3NzLXVuaXF1ZS9hLXJlZi5odG1sCkBA
IC0wLDAgKzEgQEAKKzEKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvbGludC90ZXN0cy9kdW1teS9jc3MvY3NzLXVuaXF1ZS9tYXRj
aC9hLWV4cGVjdGVkLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL2xpbnQvdGVzdHMvZHVtbXkvY3NzL2Nzcy11bmlxdWUvbWF0Y2gvYS1leHBl
Y3RlZC5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkMDA0OTFmZDdlNWJiNmZh
MjhjNTE3YTBiYjMyYjhiNTA2NTM5ZDRkLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvbGludC90ZXN0cy9kdW1teS9jc3MvY3NzLXVuaXF1ZS9tYXRjaC9hLWV4cGVjdGVk
Lmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSArMCwwIEBACi0xCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2xpbnQvdGVzdHMvZHVt
bXkvY3NzL2Nzcy11bmlxdWUvbWF0Y2gvYS1yZWYuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvbGludC90ZXN0cy9kdW1teS9jc3MvY3NzLXVu
aXF1ZS9tYXRjaC9hLXJlZi5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQwMDQ5MWZkN2U1YmI2ZmEyOGM1MTdh
MGJiMzJiOGI1MDY1MzlkNGQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2xpbnQvdGVzdHMvZHVtbXkvY3NzL2Nzcy11
bmlxdWUvbWF0Y2gvYS1yZWYuaHRtbApAQCAtMCwwICsxIEBACisxCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2xpbnQvdGVzdHMv
ZHVtbXkvY3NzL2Nzcy11bmlxdWUvbWF0Y2gvc3VwcG9ydC90b29scy93M2MtaW1wb3J0LmxvZyBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvbGludC90
ZXN0cy9kdW1teS9jc3MvY3NzLXVuaXF1ZS9tYXRjaC9zdXBwb3J0L3Rvb2xzL3czYy1pbXBvcnQu
bG9nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4MWRiYTM0NGNiYWY2N2FlMjU1NWYz
YzgwYmIzMGNmYzJlY2Q4NjA1Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvbGludC90ZXN0cy9kdW1teS9jc3MvY3NzLXVuaXF1ZS9tYXRjaC9zdXBwb3J0L3Rvb2xzL3cz
Yy1pbXBvcnQubG9nCisrKyAvZGV2L251bGwKQEAgLTEsMTcgKzAsMCBAQAotVGhlIHRlc3RzIGlu
IHRoaXMgZGlyZWN0b3J5IHdlcmUgaW1wb3J0ZWQgZnJvbSB0aGUgVzNDIHJlcG9zaXRvcnkuCi1E
byBOT1QgbW9kaWZ5IHRoZXNlIHRlc3RzIGRpcmVjdGx5IGluIFdlYktpdC4KLUluc3RlYWQsIGNy
ZWF0ZSBhIHB1bGwgcmVxdWVzdCBvbiB0aGUgV1BUIGdpdGh1YjoKLQlodHRwczovL2dpdGh1Yi5j
b20vd2ViLXBsYXRmb3JtLXRlc3RzL3dwdAotCi1UaGVuIHJ1biB0aGUgVG9vbHMvU2NyaXB0cy9p
bXBvcnQtdzNjLXRlc3RzIGluIFdlYktpdCB0byByZWltcG9ydAotCi1EbyBOT1QgbW9kaWZ5IG9y
IHJlbW92ZSB0aGlzIGZpbGUuCi0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotUHJvcGVydGllcyByZXF1aXJp
bmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotUHJvcGVydHkgdmFsdWVzIHJlcXVpcmluZyB2ZW5k
b3IgcHJlZml4ZXM6Ci1Ob25lCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLUxpc3Qgb2YgZmlsZXM6Ci0vTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9saW50L3Rlc3Rz
L2R1bW15L2Nzcy9jc3MtdW5pcXVlL21hdGNoL3N1cHBvcnQvdG9vbHMvYS5odG1sCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2xp
bnQvdGVzdHMvZHVtbXkvY3NzL2Nzcy11bmlxdWUvbWF0Y2gvc3VwcG9ydC93M2MtaW1wb3J0Lmxv
ZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvbGlu
dC90ZXN0cy9kdW1teS9jc3MvY3NzLXVuaXF1ZS9tYXRjaC9zdXBwb3J0L3czYy1pbXBvcnQubG9n
CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwZmIzNTIzZWUyMjRkY2M2OWRmMzY5ZGUz
M2I3NTQ5OGY3Y2E3NTRkLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
bGludC90ZXN0cy9kdW1teS9jc3MvY3NzLXVuaXF1ZS9tYXRjaC9zdXBwb3J0L3czYy1pbXBvcnQu
bG9nCisrKyAvZGV2L251bGwKQEAgLTEsMTcgKzAsMCBAQAotVGhlIHRlc3RzIGluIHRoaXMgZGly
ZWN0b3J5IHdlcmUgaW1wb3J0ZWQgZnJvbSB0aGUgVzNDIHJlcG9zaXRvcnkuCi1EbyBOT1QgbW9k
aWZ5IHRoZXNlIHRlc3RzIGRpcmVjdGx5IGluIFdlYktpdC4KLUluc3RlYWQsIGNyZWF0ZSBhIHB1
bGwgcmVxdWVzdCBvbiB0aGUgV1BUIGdpdGh1YjoKLQlodHRwczovL2dpdGh1Yi5jb20vd2ViLXBs
YXRmb3JtLXRlc3RzL3dwdAotCi1UaGVuIHJ1biB0aGUgVG9vbHMvU2NyaXB0cy9pbXBvcnQtdzNj
LXRlc3RzIGluIFdlYktpdCB0byByZWltcG9ydAotCi1EbyBOT1QgbW9kaWZ5IG9yIHJlbW92ZSB0
aGlzIGZpbGUuCi0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotUHJvcGVydGllcyByZXF1aXJpbmcgdmVuZG9y
IHByZWZpeGVzOgotTm9uZQotUHJvcGVydHkgdmFsdWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4
ZXM6Ci1Ob25lCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLUxpc3Qgb2YgZmlsZXM6Ci0vTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9saW50L3Rlc3RzL2R1bW15L2Nz
cy9jc3MtdW5pcXVlL21hdGNoL3N1cHBvcnQvYS5odG1sCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2xpbnQvdGVzdHMvZHVtbXkv
Y3NzL2Nzcy11bmlxdWUvbWF0Y2gvdG9vbHMvdzNjLWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2xpbnQvdGVzdHMvZHVtbXkvY3Nz
L2Nzcy11bmlxdWUvbWF0Y2gvdG9vbHMvdzNjLWltcG9ydC5sb2cKZGVsZXRlZCBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IGRjOGNiMGYyOTMzOWM1OGUwMWI2ODM3YzExMDI4YTRjMDViMTk3NmEuLjAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9saW50L3Rlc3RzL2R1bW15L2Nz
cy9jc3MtdW5pcXVlL21hdGNoL3Rvb2xzL3czYy1pbXBvcnQubG9nCisrKyAvZGV2L251bGwKQEAg
LTEsMTcgKzAsMCBAQAotVGhlIHRlc3RzIGluIHRoaXMgZGlyZWN0b3J5IHdlcmUgaW1wb3J0ZWQg
ZnJvbSB0aGUgVzNDIHJlcG9zaXRvcnkuCi1EbyBOT1QgbW9kaWZ5IHRoZXNlIHRlc3RzIGRpcmVj
dGx5IGluIFdlYktpdC4KLUluc3RlYWQsIGNyZWF0ZSBhIHB1bGwgcmVxdWVzdCBvbiB0aGUgV1BU
IGdpdGh1YjoKLQlodHRwczovL2dpdGh1Yi5jb20vd2ViLXBsYXRmb3JtLXRlc3RzL3dwdAotCi1U
aGVuIHJ1biB0aGUgVG9vbHMvU2NyaXB0cy9pbXBvcnQtdzNjLXRlc3RzIGluIFdlYktpdCB0byBy
ZWltcG9ydAotCi1EbyBOT1QgbW9kaWZ5IG9yIHJlbW92ZSB0aGlzIGZpbGUuCi0KLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLQotUHJvcGVydGllcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotUHJv
cGVydHkgdmFsdWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0KLUxpc3Qgb2YgZmlsZXM6Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy9saW50L3Rlc3RzL2R1bW15L2Nzcy9jc3MtdW5pcXVlL21hdGNoL3Rv
b2xzL2EuaHRtbApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy9saW50L3Rlc3RzL2R1bW15L2Nzcy9jc3MtdW5pcXVlL21hdGNoL3cz
Yy1pbXBvcnQubG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy9saW50L3Rlc3RzL2R1bW15L2Nzcy9jc3MtdW5pcXVlL21hdGNoL3czYy1pbXBvcnQu
bG9nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3Y2ZhNmRkYzBiNTE1NTFmZDQxYzZk
OWE4ZDBhZjJkNTk1MTk1NjczLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvbGludC90ZXN0cy9kdW1teS9jc3MvY3NzLXVuaXF1ZS9tYXRjaC93M2MtaW1wb3J0LmxvZwor
KysgL2Rldi9udWxsCkBAIC0xLDE4ICswLDAgQEAKLVRoZSB0ZXN0cyBpbiB0aGlzIGRpcmVjdG9y
eSB3ZXJlIGltcG9ydGVkIGZyb20gdGhlIFczQyByZXBvc2l0b3J5LgotRG8gTk9UIG1vZGlmeSB0
aGVzZSB0ZXN0cyBkaXJlY3RseSBpbiBXZWJLaXQuCi1JbnN0ZWFkLCBjcmVhdGUgYSBwdWxsIHJl
cXVlc3Qgb24gdGhlIFdQVCBnaXRodWI6Ci0JaHR0cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9y
bS10ZXN0cy93cHQKLQotVGhlbiBydW4gdGhlIFRvb2xzL1NjcmlwdHMvaW1wb3J0LXczYy10ZXN0
cyBpbiBXZWJLaXQgdG8gcmVpbXBvcnQKLQotRG8gTk9UIG1vZGlmeSBvciByZW1vdmUgdGhpcyBm
aWxlLgotCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLVByb3BlcnRpZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVm
aXhlczoKLU5vbmUKLVByb3BlcnR5IHZhbHVlcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgot
Tm9uZQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1MaXN0IG9mIGZpbGVzOgotL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvbGludC90ZXN0cy9kdW1teS9jc3MvY3Nz
LXVuaXF1ZS9tYXRjaC9hLWV4cGVjdGVkLmh0bWwKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2xpbnQvdGVzdHMvZHVtbXkvY3NzL2Nzcy11bmlxdWUv
bWF0Y2gvYS5odG1sCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL2xpbnQvdGVzdHMvZHVtbXkvY3NzL2Nzcy11bmlxdWUvbm90LW1h
dGNoL2EtZXhwZWN0ZWQuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvbGludC90ZXN0cy9kdW1teS9jc3MvY3NzLXVuaXF1ZS9ub3QtbWF0Y2gv
YS1leHBlY3RlZC5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwY2ZiZjA4ODg2
ZmNhOWE5MWNiNzUzZWM4NzM0Yzg0ZmNiZTUyYzlmLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvbGludC90ZXN0cy9kdW1teS9jc3MvY3NzLXVuaXF1ZS9ub3QtbWF0Y2gv
YS1leHBlY3RlZC5odG1sCisrKyAvZGV2L251bGwKQEAgLTEgKzAsMCBAQAotMgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9saW50
L3Rlc3RzL2R1bW15L2Nzcy9jc3MtdW5pcXVlL25vdC1tYXRjaC9hLXJlZi5odG1sIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9saW50L3Rlc3RzL2R1
bW15L2Nzcy9jc3MtdW5pcXVlL25vdC1tYXRjaC9hLXJlZi5odG1sCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjBjZmJm
MDg4ODZmY2E5YTkxY2I3NTNlYzg3MzRjODRmY2JlNTJjOWYKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2xpbnQvdGVz
dHMvZHVtbXkvY3NzL2Nzcy11bmlxdWUvbm90LW1hdGNoL2EtcmVmLmh0bWwKQEAgLTAsMCArMSBA
QAorMgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy9saW50L3Rlc3RzL2R1bW15L2Nzcy9jc3MtdW5pcXVlL25vdC1tYXRjaC9zdXBw
b3J0L3czYy1pbXBvcnQubG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy9saW50L3Rlc3RzL2R1bW15L2Nzcy9jc3MtdW5pcXVlL25vdC1tYXRjaC9z
dXBwb3J0L3czYy1pbXBvcnQubG9nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBmNTIz
NDY0MGVhM2FkYmZhY2I4MmViM2E5YWE2OWJkZDljMDE0YWZhLi4wMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvbGludC90ZXN0cy9kdW1teS9jc3MvY3NzLXVuaXF1ZS9ub3Qt
bWF0Y2gvc3VwcG9ydC93M2MtaW1wb3J0LmxvZworKysgL2Rldi9udWxsCkBAIC0xLDE3ICswLDAg
QEAKLVRoZSB0ZXN0cyBpbiB0aGlzIGRpcmVjdG9yeSB3ZXJlIGltcG9ydGVkIGZyb20gdGhlIFcz
QyByZXBvc2l0b3J5LgotRG8gTk9UIG1vZGlmeSB0aGVzZSB0ZXN0cyBkaXJlY3RseSBpbiBXZWJL
aXQuCi1JbnN0ZWFkLCBjcmVhdGUgYSBwdWxsIHJlcXVlc3Qgb24gdGhlIFdQVCBnaXRodWI6Ci0J
aHR0cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQKLQotVGhlbiBydW4gdGhl
IFRvb2xzL1NjcmlwdHMvaW1wb3J0LXczYy10ZXN0cyBpbiBXZWJLaXQgdG8gcmVpbXBvcnQKLQot
RG8gTk9UIG1vZGlmeSBvciByZW1vdmUgdGhpcyBmaWxlLgotCi0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLVBy
b3BlcnRpZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLVByb3BlcnR5IHZhbHVl
cyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1MaXN0
IG9mIGZpbGVzOgotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvbGludC90ZXN0cy9kdW1teS9jc3MvY3NzLXVuaXF1ZS9ub3QtbWF0Y2gvc3VwcG9ydC9h
Lmh0bWwKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvbGludC90ZXN0cy9kdW1teS9jc3MvY3NzLXVuaXF1ZS9ub3QtbWF0Y2gvdG9v
bHMvdzNjLWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL2xpbnQvdGVzdHMvZHVtbXkvY3NzL2Nzcy11bmlxdWUvbm90LW1hdGNoL3Rv
b2xzL3czYy1pbXBvcnQubG9nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyNGZhNzgx
ODk4OWJiMzYyNDIyZTE0MWZmMTdmMDMyMTA3OTAwZmZjLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvbGludC90ZXN0cy9kdW1teS9jc3MvY3NzLXVuaXF1ZS9ub3QtbWF0
Y2gvdG9vbHMvdzNjLWltcG9ydC5sb2cKKysrIC9kZXYvbnVsbApAQCAtMSwxNyArMCwwIEBACi1U
aGUgdGVzdHMgaW4gdGhpcyBkaXJlY3Rvcnkgd2VyZSBpbXBvcnRlZCBmcm9tIHRoZSBXM0MgcmVw
b3NpdG9yeS4KLURvIE5PVCBtb2RpZnkgdGhlc2UgdGVzdHMgZGlyZWN0bHkgaW4gV2ViS2l0Lgot
SW5zdGVhZCwgY3JlYXRlIGEgcHVsbCByZXF1ZXN0IG9uIHRoZSBXUFQgZ2l0aHViOgotCWh0dHBz
Oi8vZ2l0aHViLmNvbS93ZWItcGxhdGZvcm0tdGVzdHMvd3B0Ci0KLVRoZW4gcnVuIHRoZSBUb29s
cy9TY3JpcHRzL2ltcG9ydC13M2MtdGVzdHMgaW4gV2ViS2l0IHRvIHJlaW1wb3J0Ci0KLURvIE5P
VCBtb2RpZnkgb3IgcmVtb3ZlIHRoaXMgZmlsZS4KLQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1Qcm9wZXJ0
aWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi1Qcm9wZXJ0eSB2YWx1ZXMgcmVx
dWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotTGlzdCBvZiBm
aWxlczoKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L2xpbnQvdGVzdHMvZHVtbXkvY3NzL2Nzcy11bmlxdWUvbm90LW1hdGNoL3Rvb2xzL2EuaHRtbApk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy9saW50L3Rlc3RzL2R1bW15L2Nzcy9jc3MtdW5pcXVlL25vdC1tYXRjaC93M2MtaW1wb3J0
LmxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
bGludC90ZXN0cy9kdW1teS9jc3MvY3NzLXVuaXF1ZS9ub3QtbWF0Y2gvdzNjLWltcG9ydC5sb2cK
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDhkZGJjM2JhMGNiNjZjODE3NWZmNjkwZjA2
YjgzNjEyMGUyZGEzYTcuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAK
LS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9s
aW50L3Rlc3RzL2R1bW15L2Nzcy9jc3MtdW5pcXVlL25vdC1tYXRjaC93M2MtaW1wb3J0LmxvZwor
KysgL2Rldi9udWxsCkBAIC0xLDE4ICswLDAgQEAKLVRoZSB0ZXN0cyBpbiB0aGlzIGRpcmVjdG9y
eSB3ZXJlIGltcG9ydGVkIGZyb20gdGhlIFczQyByZXBvc2l0b3J5LgotRG8gTk9UIG1vZGlmeSB0
aGVzZSB0ZXN0cyBkaXJlY3RseSBpbiBXZWJLaXQuCi1JbnN0ZWFkLCBjcmVhdGUgYSBwdWxsIHJl
cXVlc3Qgb24gdGhlIFdQVCBnaXRodWI6Ci0JaHR0cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9y
bS10ZXN0cy93cHQKLQotVGhlbiBydW4gdGhlIFRvb2xzL1NjcmlwdHMvaW1wb3J0LXczYy10ZXN0
cyBpbiBXZWJLaXQgdG8gcmVpbXBvcnQKLQotRG8gTk9UIG1vZGlmeSBvciByZW1vdmUgdGhpcyBm
aWxlLgotCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLVByb3BlcnRpZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVm
aXhlczoKLU5vbmUKLVByb3BlcnR5IHZhbHVlcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgot
Tm9uZQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1MaXN0IG9mIGZpbGVzOgotL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvbGludC90ZXN0cy9kdW1teS9jc3MvY3Nz
LXVuaXF1ZS9ub3QtbWF0Y2gvYS1leHBlY3RlZC5odG1sCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9saW50L3Rlc3RzL2R1bW15L2Nzcy9jc3MtdW5p
cXVlL25vdC1tYXRjaC9hLmh0bWwKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvbGludC90ZXN0cy9kdW1teS9jc3MvY3NzLXVuaXF1
ZS9yZWxhdGl2ZS10ZXN0aGFybmVzcy1pbnRlcmFjdC5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9saW50L3Rlc3RzL2R1bW15L2Nzcy9jc3Mt
dW5pcXVlL3JlbGF0aXZlLXRlc3RoYXJuZXNzLWludGVyYWN0Lmh0bWwKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYTUw
ZWY5ODNhOTM5ZGFhNDViNDY3MWFlZjBhYjAwOTQ0NWE2YWEzNQotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvbGludC90
ZXN0cy9kdW1teS9jc3MvY3NzLXVuaXF1ZS9yZWxhdGl2ZS10ZXN0aGFybmVzcy1pbnRlcmFjdC5o
dG1sCkBAIC0wLDAgKzEsNSBAQAorPCFkb2N0eXBlIGh0bWw+Cis8bGluayByZWw9aGVscCBocmVm
PSJodHRwczovL3d3dy53My5vcmcvVFIvQ1NTMi92aXN1ZnguaHRtbCNvdmVyZmxvdy1jbGlwcGlu
ZyI+Cis8bWV0YSBuYW1lPWZsYWdzIGNvbnRlbnQ9aW50ZXJhY3Q+Cis8c2NyaXB0IHNyYz0iLi4v
Li4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIu
Li8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9s
aW50L3Rlc3RzL2R1bW15L2Nzcy9jc3MtdW5pcXVlL3NlbGVjdG9ycy93M2MtaW1wb3J0LmxvZyBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvbGludC90
ZXN0cy9kdW1teS9jc3MvY3NzLXVuaXF1ZS9zZWxlY3RvcnMvdzNjLWltcG9ydC5sb2cKZGVsZXRl
ZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGQ1ODJhNDYwZjJjY2QxYjA0MzAwYjJhZmQxMDdlMTc3
ZTI0M2U4NWYuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9saW50L3Rl
c3RzL2R1bW15L2Nzcy9jc3MtdW5pcXVlL3NlbGVjdG9ycy93M2MtaW1wb3J0LmxvZworKysgL2Rl
di9udWxsCkBAIC0xLDE3ICswLDAgQEAKLVRoZSB0ZXN0cyBpbiB0aGlzIGRpcmVjdG9yeSB3ZXJl
IGltcG9ydGVkIGZyb20gdGhlIFczQyByZXBvc2l0b3J5LgotRG8gTk9UIG1vZGlmeSB0aGVzZSB0
ZXN0cyBkaXJlY3RseSBpbiBXZWJLaXQuCi1JbnN0ZWFkLCBjcmVhdGUgYSBwdWxsIHJlcXVlc3Qg
b24gdGhlIFdQVCBnaXRodWI6Ci0JaHR0cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9ybS10ZXN0
cy93cHQKLQotVGhlbiBydW4gdGhlIFRvb2xzL1NjcmlwdHMvaW1wb3J0LXczYy10ZXN0cyBpbiBX
ZWJLaXQgdG8gcmVpbXBvcnQKLQotRG8gTk9UIG1vZGlmeSBvciByZW1vdmUgdGhpcyBmaWxlLgot
Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0KLVByb3BlcnRpZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoK
LU5vbmUKLVByb3BlcnR5IHZhbHVlcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQot
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tCi1MaXN0IG9mIGZpbGVzOgotL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvbGludC90ZXN0cy9kdW1teS9jc3MvY3NzLXVuaXF1
ZS9zZWxlY3RvcnMvYS5odG1sCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2xpbnQvdGVzdHMvZHVtbXkvY3NzL2Nzcy11bmlxdWUv
c3VwcG9ydC90b29scy93M2MtaW1wb3J0LmxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvbGludC90ZXN0cy9kdW1teS9jc3MvY3NzLXVuaXF1ZS9z
dXBwb3J0L3Rvb2xzL3czYy1pbXBvcnQubG9nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCA2MzQ2NDlhNDljYWJkNDgwOWJjNDcxYjg2ZjMwMmVmOTZjMTBkYTE5Li4wMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvbGludC90ZXN0cy9kdW1teS9jc3MvY3NzLXVuaXF1
ZS9zdXBwb3J0L3Rvb2xzL3czYy1pbXBvcnQubG9nCisrKyAvZGV2L251bGwKQEAgLTEsMTcgKzAs
MCBAQAotVGhlIHRlc3RzIGluIHRoaXMgZGlyZWN0b3J5IHdlcmUgaW1wb3J0ZWQgZnJvbSB0aGUg
VzNDIHJlcG9zaXRvcnkuCi1EbyBOT1QgbW9kaWZ5IHRoZXNlIHRlc3RzIGRpcmVjdGx5IGluIFdl
YktpdC4KLUluc3RlYWQsIGNyZWF0ZSBhIHB1bGwgcmVxdWVzdCBvbiB0aGUgV1BUIGdpdGh1YjoK
LQlodHRwczovL2dpdGh1Yi5jb20vd2ViLXBsYXRmb3JtLXRlc3RzL3dwdAotCi1UaGVuIHJ1biB0
aGUgVG9vbHMvU2NyaXB0cy9pbXBvcnQtdzNjLXRlc3RzIGluIFdlYktpdCB0byByZWltcG9ydAot
Ci1EbyBOT1QgbW9kaWZ5IG9yIHJlbW92ZSB0aGlzIGZpbGUuCi0KLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQot
UHJvcGVydGllcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotUHJvcGVydHkgdmFs
dWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLUxp
c3Qgb2YgZmlsZXM6Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy9saW50L3Rlc3RzL2R1bW15L2Nzcy9jc3MtdW5pcXVlL3N1cHBvcnQvdG9vbHMvYS5o
dG1sCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL2xpbnQvdGVzdHMvZHVtbXkvY3NzL2Nzcy11bmlxdWUvc3VwcG9ydC93M2MtaW1w
b3J0LmxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvbGludC90ZXN0cy9kdW1teS9jc3MvY3NzLXVuaXF1ZS9zdXBwb3J0L3czYy1pbXBvcnQubG9n
CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiZjQzZDRhNTQ1NGQyZDVjYWJiMDAxYzdk
NjdiYjI5ZDlhYTE4ZTdmLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
bGludC90ZXN0cy9kdW1teS9jc3MvY3NzLXVuaXF1ZS9zdXBwb3J0L3czYy1pbXBvcnQubG9nCisr
KyAvZGV2L251bGwKQEAgLTEsMTcgKzAsMCBAQAotVGhlIHRlc3RzIGluIHRoaXMgZGlyZWN0b3J5
IHdlcmUgaW1wb3J0ZWQgZnJvbSB0aGUgVzNDIHJlcG9zaXRvcnkuCi1EbyBOT1QgbW9kaWZ5IHRo
ZXNlIHRlc3RzIGRpcmVjdGx5IGluIFdlYktpdC4KLUluc3RlYWQsIGNyZWF0ZSBhIHB1bGwgcmVx
dWVzdCBvbiB0aGUgV1BUIGdpdGh1YjoKLQlodHRwczovL2dpdGh1Yi5jb20vd2ViLXBsYXRmb3Jt
LXRlc3RzL3dwdAotCi1UaGVuIHJ1biB0aGUgVG9vbHMvU2NyaXB0cy9pbXBvcnQtdzNjLXRlc3Rz
IGluIFdlYktpdCB0byByZWltcG9ydAotCi1EbyBOT1QgbW9kaWZ5IG9yIHJlbW92ZSB0aGlzIGZp
bGUuCi0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotUHJvcGVydGllcyByZXF1aXJpbmcgdmVuZG9yIHByZWZp
eGVzOgotTm9uZQotUHJvcGVydHkgdmFsdWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1O
b25lCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0KLUxpc3Qgb2YgZmlsZXM6Ci0vTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9saW50L3Rlc3RzL2R1bW15L2Nzcy9jc3Mt
dW5pcXVlL3N1cHBvcnQvYS5odG1sCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2xpbnQvdGVzdHMvZHVtbXkvY3NzL2Nzcy11bmlx
dWUvdG9vbHMvdzNjLWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL2xpbnQvdGVzdHMvZHVtbXkvY3NzL2Nzcy11bmlxdWUvdG9vbHMv
dzNjLWltcG9ydC5sb2cKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDhkYjZiODg3ODMy
YzI3ZjJkNGM4OTczOGEzMzEzNTNjNzQ2M2JiZjguLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy9saW50L3Rlc3RzL2R1bW15L2Nzcy9jc3MtdW5pcXVlL3Rvb2xzL3czYy1p
bXBvcnQubG9nCisrKyAvZGV2L251bGwKQEAgLTEsMTcgKzAsMCBAQAotVGhlIHRlc3RzIGluIHRo
aXMgZGlyZWN0b3J5IHdlcmUgaW1wb3J0ZWQgZnJvbSB0aGUgVzNDIHJlcG9zaXRvcnkuCi1EbyBO
T1QgbW9kaWZ5IHRoZXNlIHRlc3RzIGRpcmVjdGx5IGluIFdlYktpdC4KLUluc3RlYWQsIGNyZWF0
ZSBhIHB1bGwgcmVxdWVzdCBvbiB0aGUgV1BUIGdpdGh1YjoKLQlodHRwczovL2dpdGh1Yi5jb20v
d2ViLXBsYXRmb3JtLXRlc3RzL3dwdAotCi1UaGVuIHJ1biB0aGUgVG9vbHMvU2NyaXB0cy9pbXBv
cnQtdzNjLXRlc3RzIGluIFdlYktpdCB0byByZWltcG9ydAotCi1EbyBOT1QgbW9kaWZ5IG9yIHJl
bW92ZSB0aGlzIGZpbGUuCi0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotUHJvcGVydGllcyByZXF1aXJpbmcg
dmVuZG9yIHByZWZpeGVzOgotTm9uZQotUHJvcGVydHkgdmFsdWVzIHJlcXVpcmluZyB2ZW5kb3Ig
cHJlZml4ZXM6Ci1Ob25lCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLUxpc3Qgb2YgZmlsZXM6Ci0vTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9saW50L3Rlc3RzL2R1
bW15L2Nzcy9jc3MtdW5pcXVlL3Rvb2xzL2EuaHRtbApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9saW50L3Rlc3RzL2R1bW15L2Nz
cy9jc3MtdW5pcXVlL3czYy1pbXBvcnQubG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy9saW50L3Rlc3RzL2R1bW15L2Nzcy9jc3MtdW5pcXVlL3cz
Yy1pbXBvcnQubG9nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5NGQzMjUxZTM1NGM3
NjNiMWE1OWI5MWY3ZTgxMWRmZjJmZWRlZTIyLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvbGludC90ZXN0cy9kdW1teS9jc3MvY3NzLXVuaXF1ZS93M2MtaW1wb3J0Lmxv
ZworKysgL2Rldi9udWxsCkBAIC0xLDE5ICswLDAgQEAKLVRoZSB0ZXN0cyBpbiB0aGlzIGRpcmVj
dG9yeSB3ZXJlIGltcG9ydGVkIGZyb20gdGhlIFczQyByZXBvc2l0b3J5LgotRG8gTk9UIG1vZGlm
eSB0aGVzZSB0ZXN0cyBkaXJlY3RseSBpbiBXZWJLaXQuCi1JbnN0ZWFkLCBjcmVhdGUgYSBwdWxs
IHJlcXVlc3Qgb24gdGhlIFdQVCBnaXRodWI6Ci0JaHR0cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0
Zm9ybS10ZXN0cy93cHQKLQotVGhlbiBydW4gdGhlIFRvb2xzL1NjcmlwdHMvaW1wb3J0LXczYy10
ZXN0cyBpbiBXZWJLaXQgdG8gcmVpbXBvcnQKLQotRG8gTk9UIG1vZGlmeSBvciByZW1vdmUgdGhp
cyBmaWxlLgotCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLVByb3BlcnRpZXMgcmVxdWlyaW5nIHZlbmRvciBw
cmVmaXhlczoKLU5vbmUKLVByb3BlcnR5IHZhbHVlcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVz
OgotTm9uZQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1MaXN0IG9mIGZpbGVzOgotL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvbGludC90ZXN0cy9kdW1teS9jc3Mv
Y3NzLXVuaXF1ZS9hLWV4cGVjdGVkLmh0bWwKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2xpbnQvdGVzdHMvZHVtbXkvY3NzL2Nzcy11bmlxdWUvYS5o
dG1sCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9s
aW50L3Rlc3RzL2R1bW15L2Nzcy9jc3MtdW5pcXVlL3JlbGF0aXZlLXRlc3RoYXJuZXNzLmh0bWwK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvbGludC90ZXN0cy9kdW1teS9yZWYvYWJvdXRfYmxhbmstcmVmLmh0bWwgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2xpbnQvdGVzdHMvZHVt
bXkvcmVmL2Fib3V0X2JsYW5rLXJlZi5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCA4Zjk0MGI1NDBmOWJkMzgyOTJlZmU3ZGY4YmQ5N2JkYWYzODYzYWZiLi4wMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvbGludC90ZXN0cy9kdW1teS9yZWYvYWJvdXRfYmxh
bmstcmVmLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSArMCwwIEBACi08bGluayByZWw9Im1hdGNo
IiBocmVmPWFib3V0OmJsYW5rPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9saW50L3Rlc3RzL2R1bW15L3JlZi9leGlzdGVudF9y
ZWxhdGl2ZS1leHBlY3RlZC5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy9saW50L3Rlc3RzL2R1bW15L3JlZi9leGlzdGVudF9yZWxhdGl2ZS1l
eHBlY3RlZC5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlNjlkZTI5YmIyZDFk
NjQzNGI4YjI5YWU3NzVhZDhjMmU0OGM1MzkxLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL2xpbnQvdGVzdHMvZHVtbXkvcmVmL2V4aXN0ZW50X3JlbGF0aXZl
LXJlZi5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy9saW50L3Rlc3RzL2R1bW15L3JlZi9leGlzdGVudF9yZWxhdGl2ZS1yZWYuaHRtbApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5lNjlkZTI5YmIyZDFkNjQzNGI4YjI5YWU3NzVhZDhjMmU0OGM1MzkxCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2xp
bnQvdGVzdHMvZHVtbXkvcmVmL3NhbWVfZmlsZV9wYXRoLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2xpbnQvdGVzdHMvZHVtbXkvcmVmL3Nh
bWVfZmlsZV9wYXRoLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNmE4MGMxZjIwZGRmMGRmZjhiYTEwZWZmM2Nj
ZTRmYzcyODZmNzljOAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvbGludC90ZXN0cy9kdW1teS9yZWYvc2FtZV9maWxl
X3BhdGguaHRtbApAQCAtMCwwICsxIEBACis8bGluayByZWw9Im1hdGNoIiBocmVmPSJzYW1lX2Zp
bGVfcGF0aC5odG1sIj4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvbGludC90ZXN0cy9kdW1teS9yZWYvdzNjLWltcG9ydC5sb2cg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2xpbnQv
dGVzdHMvZHVtbXkvcmVmL3czYy1pbXBvcnQubG9nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwODUyM2U5NzliNTM1YmNhZjZhYTdmMjU5MmFhNzM5ZmE5YWE4YWQ1Li4wMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvbGludC90ZXN0cy9kdW1teS9yZWYvdzNjLWlt
cG9ydC5sb2cKKysrIC9kZXYvbnVsbApAQCAtMSwyNCArMCwwIEBACi1UaGUgdGVzdHMgaW4gdGhp
cyBkaXJlY3Rvcnkgd2VyZSBpbXBvcnRlZCBmcm9tIHRoZSBXM0MgcmVwb3NpdG9yeS4KLURvIE5P
VCBtb2RpZnkgdGhlc2UgdGVzdHMgZGlyZWN0bHkgaW4gV2ViS2l0LgotSW5zdGVhZCwgY3JlYXRl
IGEgcHVsbCByZXF1ZXN0IG9uIHRoZSBXUFQgZ2l0aHViOgotCWh0dHBzOi8vZ2l0aHViLmNvbS93
ZWItcGxhdGZvcm0tdGVzdHMvd3B0Ci0KLVRoZW4gcnVuIHRoZSBUb29scy9TY3JpcHRzL2ltcG9y
dC13M2MtdGVzdHMgaW4gV2ViS2l0IHRvIHJlaW1wb3J0Ci0KLURvIE5PVCBtb2RpZnkgb3IgcmVt
b3ZlIHRoaXMgZmlsZS4KLQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1Qcm9wZXJ0aWVzIHJlcXVpcmluZyB2
ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi1Qcm9wZXJ0eSB2YWx1ZXMgcmVxdWlyaW5nIHZlbmRvciBw
cmVmaXhlczoKLU5vbmUKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotTGlzdCBvZiBmaWxlczoKLS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2xpbnQvdGVzdHMvZHVt
bXkvcmVmL2Fib3V0X2JsYW5rLXJlZi5odG1sCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy9saW50L3Rlc3RzL2R1bW15L3JlZi9hYnNvbHV0ZS5odG1s
Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9saW50
L3Rlc3RzL2R1bW15L3JlZi9leGlzdGVudF9yZWxhdGl2ZS1leHBlY3RlZC5odG1sCi0vTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9saW50L3Rlc3RzL2R1
bW15L3JlZi9leGlzdGVudF9yZWxhdGl2ZS5odG1sCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9saW50L3Rlc3RzL2R1bW15L3JlZi9leGlzdGVudF9y
b290X3JlbGF0aXZlLmh0bWwKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL2xpbnQvdGVzdHMvZHVtbXkvcmVmL25vbl9leGlzdGVudF9yZWxhdGl2ZS5o
dG1sCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9s
aW50L3Rlc3RzL2R1bW15L3JlZi9ub25fZXhpc3RlbnRfcm9vdF9yZWxhdGl2ZS5odG1sCi0vTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9saW50L3Rlc3Rz
L2R1bW15L3JlZi9zYW1lX2ZpbGVfZW1wdHkuaHRtbApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9saW50L3Rlc3RzL2R1bW15L3Rl
c3RzL3JlbGF0aXZlLXRlc3RoYXJuZXNzLW1hbnVhbC5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9saW50L3Rlc3RzL2R1bW15L3Rlc3RzL3Jl
bGF0aXZlLXRlc3RoYXJuZXNzLW1hbnVhbC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjE1NjkzYjk5MGMxZDUx
NjVhYTUxMDM3M2Q1YzY5NTVlMDY2MWI4YTAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2xpbnQvdGVzdHMvZHVtbXkv
dGVzdHMvcmVsYXRpdmUtdGVzdGhhcm5lc3MtbWFudWFsLmh0bWwKQEAgLTAsMCArMSwzIEBACis8
IWRvY3R5cGUgaHRtbD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5l
c3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFy
bmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2xpbnQvdGVzdHMvZHVtbXkvdzNjLWltcG9y
dC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L2xpbnQvdGVzdHMvZHVtbXkvdzNjLWltcG9ydC5sb2cKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IGVlZmUzMGU2MzJiYWFiYmIzN2E1MzNiMTc4Mjc0YTdmODU3ODNkMDAuLjAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9saW50L3Rlc3RzL2R1bW15L3czYy1pbXBv
cnQubG9nCisrKyAvZGV2L251bGwKQEAgLTEsMjEgKzAsMCBAQAotVGhlIHRlc3RzIGluIHRoaXMg
ZGlyZWN0b3J5IHdlcmUgaW1wb3J0ZWQgZnJvbSB0aGUgVzNDIHJlcG9zaXRvcnkuCi1EbyBOT1Qg
bW9kaWZ5IHRoZXNlIHRlc3RzIGRpcmVjdGx5IGluIFdlYktpdC4KLUluc3RlYWQsIGNyZWF0ZSBh
IHB1bGwgcmVxdWVzdCBvbiB0aGUgV1BUIGdpdGh1YjoKLQlodHRwczovL2dpdGh1Yi5jb20vd2Vi
LXBsYXRmb3JtLXRlc3RzL3dwdAotCi1UaGVuIHJ1biB0aGUgVG9vbHMvU2NyaXB0cy9pbXBvcnQt
dzNjLXRlc3RzIGluIFdlYktpdCB0byByZWltcG9ydAotCi1EbyBOT1QgbW9kaWZ5IG9yIHJlbW92
ZSB0aGlzIGZpbGUuCi0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotUHJvcGVydGllcyByZXF1aXJpbmcgdmVu
ZG9yIHByZWZpeGVzOgotTm9uZQotUHJvcGVydHkgdmFsdWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJl
Zml4ZXM6Ci1Ob25lCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLUxpc3Qgb2YgZmlsZXM6Ci0vTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9saW50L3Rlc3RzL2R1bW15
L2Jyb2tlbi5odG1sCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy9saW50L3Rlc3RzL2R1bW15L2Jyb2tlbl9pZ25vcmVkLmh0bWwKLS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2xpbnQvdGVzdHMvZHVtbXkv
ZGVwZW5kZW5jeS5odG1sCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy9saW50L3Rlc3RzL2R1bW15L2xpbnQud2hpdGVsaXN0Ci0vTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9saW50L3Rlc3RzL2R1bW15L29r
YXkuaHRtbApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy9saW50L3Rlc3RzL3Rlc3RfZmlsZV9saW50cy5weSBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvbGludC90ZXN0cy90ZXN0X2Zp
bGVfbGludHMucHkKaW5kZXggMjhjY2FjYzg3ODdjNjFjMmE2Y2YzNDU1MmYxNzllZjg5MzM2MGZl
ZC4uODA5NGQ2ZDQwYTU0NjAyNDc3YTA1MjQ2ZmFmOWViYzA3MzRjYjk1ZSAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9saW50L3Rl
c3RzL3Rlc3RfZmlsZV9saW50cy5weQorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2xpbnQvdGVzdHMvdGVzdF9maWxlX2xpbnRzLnB5CkBAIC01
NCw3ICs1NCw3IEBAIGRlZiB0ZXN0X2luZGVudF90YWJzKCk6CiAgICAgZm9yIChmaWxlbmFtZSwg
KGVycm9ycywga2luZCkpIGluIGVycm9yX21hcC5pdGVtcygpOgogICAgICAgICBjaGVja19lcnJv
cnMoZXJyb3JzKQogCi0gICAgICAgIGV4cGVjdGVkID0gWygiSU5ERU5UIFRBQlMiLCAiVGFicyB1
c2VkIGZvciBpbmRlbnRhdGlvbiIsIGZpbGVuYW1lLCAyKV0KKyAgICAgICAgZXhwZWN0ZWQgPSBb
KCJJTkRFTlQgVEFCUyIsICJUZXN0LWZpbGUgbGluZSBzdGFydHMgd2l0aCBvbmUgb3IgbW9yZSB0
YWIgY2hhcmFjdGVycyIsIGZpbGVuYW1lLCAyKV0KICAgICAgICAgaWYga2luZCA9PSAid2ViLXN0
cmljdCI6CiAgICAgICAgICAgICBleHBlY3RlZC5hcHBlbmQoKCJQQVJTRS1GQUlMRUQiLCAiVW5h
YmxlIHRvIHBhcnNlIGZpbGUiLCBmaWxlbmFtZSwgTm9uZSkpCiAgICAgICAgIGFzc2VydCBlcnJv
cnMgPT0gZXhwZWN0ZWQKQEAgLTY2LDcgKzY2LDcgQEAgZGVmIHRlc3RfY3Jfbm90X2F0X2VvbCgp
OgogICAgIGZvciAoZmlsZW5hbWUsIChlcnJvcnMsIGtpbmQpKSBpbiBlcnJvcl9tYXAuaXRlbXMo
KToKICAgICAgICAgY2hlY2tfZXJyb3JzKGVycm9ycykKIAotICAgICAgICBleHBlY3RlZCA9IFso
IkNSIEFUIEVPTCIsICJDUiBjaGFyYWN0ZXIgaW4gbGluZSBzZXBhcmF0b3IiLCBmaWxlbmFtZSwg
MSldCisgICAgICAgIGV4cGVjdGVkID0gWygiQ1IgQVQgRU9MIiwgIlRlc3QtZmlsZSBsaW5lIGVu
ZHMgd2l0aCBDUiAoVSswMDBEKSBjaGFyYWN0ZXIiLCBmaWxlbmFtZSwgMSldCiAgICAgICAgIGlm
IGtpbmQgPT0gIndlYi1zdHJpY3QiOgogICAgICAgICAgICAgZXhwZWN0ZWQuYXBwZW5kKCgiUEFS
U0UtRkFJTEVEIiwgIlVuYWJsZSB0byBwYXJzZSBmaWxlIiwgZmlsZW5hbWUsIE5vbmUpKQogICAg
ICAgICBhc3NlcnQgZXJyb3JzID09IGV4cGVjdGVkCkBAIC03OSw4ICs3OSw4IEBAIGRlZiB0ZXN0
X2NyX2F0X2VvbCgpOgogICAgICAgICBjaGVja19lcnJvcnMoZXJyb3JzKQogCiAgICAgICAgIGV4
cGVjdGVkID0gWwotICAgICAgICAgICAgKCJDUiBBVCBFT0wiLCAiQ1IgY2hhcmFjdGVyIGluIGxp
bmUgc2VwYXJhdG9yIiwgZmlsZW5hbWUsIDEpLAotICAgICAgICAgICAgKCJDUiBBVCBFT0wiLCAi
Q1IgY2hhcmFjdGVyIGluIGxpbmUgc2VwYXJhdG9yIiwgZmlsZW5hbWUsIDIpLAorICAgICAgICAg
ICAgKCJDUiBBVCBFT0wiLCAiVGVzdC1maWxlIGxpbmUgZW5kcyB3aXRoIENSIChVKzAwMEQpIGNo
YXJhY3RlciIsIGZpbGVuYW1lLCAxKSwKKyAgICAgICAgICAgICgiQ1IgQVQgRU9MIiwgIlRlc3Qt
ZmlsZSBsaW5lIGVuZHMgd2l0aCBDUiAoVSswMDBEKSBjaGFyYWN0ZXIiLCBmaWxlbmFtZSwgMiks
CiAgICAgICAgIF0KICAgICAgICAgaWYga2luZCA9PSAid2ViLXN0cmljdCI6CiAgICAgICAgICAg
ICBleHBlY3RlZC5hcHBlbmQoKCJQQVJTRS1GQUlMRUQiLCAiVW5hYmxlIHRvIHBhcnNlIGZpbGUi
LCBmaWxlbmFtZSwgTm9uZSkpCkBAIC05Myw3ICs5Myw3IEBAIGRlZiB0ZXN0X3czY190ZXN0X29y
ZygpOgogICAgIGZvciAoZmlsZW5hbWUsIChlcnJvcnMsIGtpbmQpKSBpbiBlcnJvcl9tYXAuaXRl
bXMoKToKICAgICAgICAgY2hlY2tfZXJyb3JzKGVycm9ycykKIAotICAgICAgICBleHBlY3RlZCA9
IFsoIlczQy1URVNULk9SRyIsICJFeHRlcm5hbCB3M2MtdGVzdC5vcmcgZG9tYWluIHVzZWQiLCBm
aWxlbmFtZSwgMSldCisgICAgICAgIGV4cGVjdGVkID0gWygiVzNDLVRFU1QuT1JHIiwgIlRlc3Qt
ZmlsZSBsaW5lIGhhcyB0aGUgc3RyaW5nIGB3M2MtdGVzdC5vcmdgIiwgZmlsZW5hbWUsIDEpXQog
ICAgICAgICBpZiBraW5kID09ICJweXRob24iOgogICAgICAgICAgICAgZXhwZWN0ZWQuYXBwZW5k
KCgiUEFSU0UtRkFJTEVEIiwgIlVuYWJsZSB0byBwYXJzZSBmaWxlIiwgZmlsZW5hbWUsIDEpKQog
ICAgICAgICBlbGlmIGtpbmQgPT0gIndlYi1zdHJpY3QiOgpAQCAtMTM2LDggKzEzNiw4IEBAIGRl
ZiB0ZXN0X2NvbnNvbGUoKToKIAogICAgICAgICBpZiBraW5kIGluIFsid2ViLWxheCIsICJ3ZWIt
c3RyaWN0IiwgImpzIl06CiAgICAgICAgICAgICBhc3NlcnQgZXJyb3JzID09IFsKLSAgICAgICAg
ICAgICAgICAoIkNPTlNPTEUiLCAiQ29uc29sZSBsb2dnaW5nIEFQSSB1c2VkIiwgZmlsZW5hbWUs
IDIpLAotICAgICAgICAgICAgICAgICgiQ09OU09MRSIsICJDb25zb2xlIGxvZ2dpbmcgQVBJIHVz
ZWQiLCBmaWxlbmFtZSwgMyksCisgICAgICAgICAgICAgICAgKCJDT05TT0xFIiwgIlRlc3QtZmls
ZSBsaW5lIGhhcyBhIGBjb25zb2xlLiooLi4uKWAgY2FsbCIsIGZpbGVuYW1lLCAyKSwKKyAgICAg
ICAgICAgICAgICAoIkNPTlNPTEUiLCAiVGVzdC1maWxlIGxpbmUgaGFzIGEgYGNvbnNvbGUuKigu
Li4pYCBjYWxsIiwgZmlsZW5hbWUsIDMpLAogICAgICAgICAgICAgXQogICAgICAgICBlbHNlOgog
ICAgICAgICAgICAgYXNzZXJ0IGVycm9ycyA9PSBbKCJQQVJTRS1GQUlMRUQiLCAiVW5hYmxlIHRv
IHBhcnNlIGZpbGUiLCBmaWxlbmFtZSwgMSldCkBAIC0xNTMsNyArMTUzLDcgQEAgZGVmIHRlc3Rf
c2V0VGltZW91dCgpOgogICAgICAgICAgICAgYXNzZXJ0IGVycm9ycyA9PSBbKCJQQVJTRS1GQUlM
RUQiLCAiVW5hYmxlIHRvIHBhcnNlIGZpbGUiLCBmaWxlbmFtZSwgMSldCiAgICAgICAgIGVsc2U6
CiAgICAgICAgICAgICBhc3NlcnQgZXJyb3JzID09IFsoJ1NFVCBUSU1FT1VUJywKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAnc2V0VGltZW91dCB1c2VkOyBzdGVwX3RpbWVvdXQgc2hv
dWxkIHR5cGljYWxseSBiZSB1c2VkIGluc3RlYWQnLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICdzZXRUaW1lb3V0IHVzZWQnLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGZpbGVuYW1lLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEpXQogCkBAIC0xNjgs
NyArMTY4LDcgQEAgZGVmIHRlc3RfZXZlbnRTZW5kZXIoKToKICAgICAgICAgICAgIGFzc2VydCBl
cnJvcnMgPT0gWygiUEFSU0UtRkFJTEVEIiwgIlVuYWJsZSB0byBwYXJzZSBmaWxlIiwgZmlsZW5h
bWUsIDEpXQogICAgICAgICBlbHNlOgogICAgICAgICAgICAgYXNzZXJ0IGVycm9ycyA9PSBbKCdM
QVlPVVRURVNUUyBBUElTJywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZXZlbnRT
ZW5kZXIvdGVzdFJ1bm5lci93aW5kb3cuaW50ZXJuYWxzIHVzZWQ7IHRoZXNlIGFyZSBMYXlvdXRU
ZXN0cy1zcGVjaWZpYyBBUElzIChXZWJLaXQvQmxpbmspJywKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAnZXZlbnRTZW5kZXIvdGVzdFJ1bm5lci9pbnRlcm5hbHMgdXNlZDsgdGhlc2Ug
YXJlIExheW91dFRlc3RzLXNwZWNpZmljIEFQSXMgKFdlYktpdC9CbGluayknLAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGZpbGVuYW1lLAogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIDEpXQogCkBAIC0xODMsMTIgKzE4MywxMiBAQCBkZWYgdGVzdF90ZXN0UnVubmVyKCk6
CiAgICAgICAgICAgICBhc3NlcnQgZXJyb3JzID09IFsoIlBBUlNFLUZBSUxFRCIsICJVbmFibGUg
dG8gcGFyc2UgZmlsZSIsIGZpbGVuYW1lLCAxKV0KICAgICAgICAgZWxzZToKICAgICAgICAgICAg
IGFzc2VydCBlcnJvcnMgPT0gWygnTEFZT1VUVEVTVFMgQVBJUycsCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgJ2V2ZW50U2VuZGVyL3Rlc3RSdW5uZXIvd2luZG93LmludGVybmFscyB1
c2VkOyB0aGVzZSBhcmUgTGF5b3V0VGVzdHMtc3BlY2lmaWMgQVBJcyAoV2ViS2l0L0JsaW5rKScs
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2V2ZW50U2VuZGVyL3Rlc3RSdW5uZXIv
aW50ZXJuYWxzIHVzZWQ7IHRoZXNlIGFyZSBMYXlvdXRUZXN0cy1zcGVjaWZpYyBBUElzIChXZWJL
aXQvQmxpbmspJywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWxlbmFtZSwKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxKV0KIAogCi1kZWYgdGVzdF93aW5kb3dEb3RJ
bnRlcm5hbHMoKToKK2RlZiB0ZXN0X2ludGVybmFscygpOgogICAgIGVycm9yX21hcCA9IGNoZWNr
X3dpdGhfZmlsZXMoYiI8c2NyaXB0PmlmICh3aW5kb3cuaW50ZXJuYWxzKSB7IGludGVybmFscy5k
b0FUaGluZygpOyB9PC9zY3JpcHQ+IikKIAogICAgIGZvciAoZmlsZW5hbWUsIChlcnJvcnMsIGtp
bmQpKSBpbiBlcnJvcl9tYXAuaXRlbXMoKToKQEAgLTE5OCwxMSArMTk4LDQxIEBAIGRlZiB0ZXN0
X3dpbmRvd0RvdEludGVybmFscygpOgogICAgICAgICAgICAgYXNzZXJ0IGVycm9ycyA9PSBbKCJQ
QVJTRS1GQUlMRUQiLCAiVW5hYmxlIHRvIHBhcnNlIGZpbGUiLCBmaWxlbmFtZSwgMSldCiAgICAg
ICAgIGVsc2U6CiAgICAgICAgICAgICBhc3NlcnQgZXJyb3JzID09IFsoJ0xBWU9VVFRFU1RTIEFQ
SVMnLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdldmVudFNlbmRlci90ZXN0UnVu
bmVyL3dpbmRvdy5pbnRlcm5hbHMgdXNlZDsgdGhlc2UgYXJlIExheW91dFRlc3RzLXNwZWNpZmlj
IEFQSXMgKFdlYktpdC9CbGluayknLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdl
dmVudFNlbmRlci90ZXN0UnVubmVyL2ludGVybmFscyB1c2VkOyB0aGVzZSBhcmUgTGF5b3V0VGVz
dHMtc3BlY2lmaWMgQVBJcyAoV2ViS2l0L0JsaW5rKScsCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgZmlsZW5hbWUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMSldCiAK
IAorZGVmIHRlc3RfbWlzc2luZ19kZXBzKCk6CisgICAgZXJyb3JfbWFwID0gY2hlY2tfd2l0aF9m
aWxlcyhiIjxzY3JpcHQgc3JjPScvZ2VuL2Zvby5qcyc+PC9zY3JpcHQ+IikKKworICAgIGZvciAo
ZmlsZW5hbWUsIChlcnJvcnMsIGtpbmQpKSBpbiBlcnJvcl9tYXAuaXRlbXMoKToKKyAgICAgICAg
Y2hlY2tfZXJyb3JzKGVycm9ycykKKworICAgICAgICBpZiBraW5kID09ICJweXRob24iOgorICAg
ICAgICAgICAgYXNzZXJ0IGVycm9ycyA9PSBbKCJQQVJTRS1GQUlMRUQiLCAiVW5hYmxlIHRvIHBh
cnNlIGZpbGUiLCBmaWxlbmFtZSwgMSldCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBhc3Nl
cnQgZXJyb3JzID09IFsoJ01JU1NJTkcgREVQRU5ERU5DWScsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgJ0Nocm9taXVtLXNwZWNpZmljIGNvbnRlbnQgcmVmZXJlbmNlZCcsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsZW5hbWUsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgMSldCisKKworZGVmIHRlc3Rfbm9fbWlzc2luZ19kZXBzKCk6CisgICAgZXJy
b3JfbWFwID0gY2hlY2tfd2l0aF9maWxlcyhiIiIiPGhlYWQ+Cis8c2NyaXB0IHNyYz0nL2Zvby9n
ZW4vZm9vLmpzJz48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPScvZ2Vucy9mb28uanMnPjwvc2NyaXB0
PgorPC9oZWFkPiIiIikKKworICAgIGZvciAoZmlsZW5hbWUsIChlcnJvcnMsIGtpbmQpKSBpbiBl
cnJvcl9tYXAuaXRlbXMoKToKKyAgICAgICAgY2hlY2tfZXJyb3JzKGVycm9ycykKKworICAgICAg
ICBpZiBraW5kID09ICJweXRob24iOgorICAgICAgICAgICAgYXNzZXJ0IGVycm9ycyA9PSBbKCJQ
QVJTRS1GQUlMRUQiLCAiVW5hYmxlIHRvIHBhcnNlIGZpbGUiLCBmaWxlbmFtZSwgMSldCisgICAg
ICAgIGVsc2U6CisgICAgICAgICAgICBhc3NlcnQgZXJyb3JzID09IFtdCisKKwogZGVmIHRlc3Rf
bWV0YV90aW1lb3V0KCk6CiAgICAgY29kZSA9IGIiIiIKIDxodG1sIHhtbG5zPSJodHRwOi8vd3d3
LnczLm9yZy8xOTk5L3hodG1sIj4KQEAgLTIxOSw4ICsyNDksMTQgQEAgZGVmIHRlc3RfbWV0YV90
aW1lb3V0KCk6CiAgICAgICAgIGlmIGtpbmQgaW4gWyJ3ZWItbGF4IiwgIndlYi1zdHJpY3QiXToK
ICAgICAgICAgICAgIGFzc2VydCBlcnJvcnMgPT0gWwogICAgICAgICAgICAgICAgICgiTVVMVElQ
TEUtVElNRU9VVCIsICJNb3JlIHRoYW4gb25lIG1ldGEgbmFtZT0ndGltZW91dCciLCBmaWxlbmFt
ZSwgTm9uZSksCi0gICAgICAgICAgICAgICAgKCJJTlZBTElELVRJTUVPVVQiLCAiSW52YWxpZCB0
aW1lb3V0IHZhbHVlICIsIGZpbGVuYW1lLCBOb25lKSwKLSAgICAgICAgICAgICAgICAoIklOVkFM
SUQtVElNRU9VVCIsICJJbnZhbGlkIHRpbWVvdXQgdmFsdWUgc2hvcnQiLCBmaWxlbmFtZSwgTm9u
ZSksCisgICAgICAgICAgICAgICAgKCJJTlZBTElELVRJTUVPVVQiLAorICAgICAgICAgICAgICAg
ICAgICAiVGVzdCBmaWxlIHdpdGggYDxtZXRhIG5hbWU9J3RpbWVvdXQnLi4uPmAgZWxlbWVudCB0
aGF0IGhhcyBhIGBjb250ZW50YCBhdHRyaWJ1dGUgd2hvc2UgdmFsdWUgaXMgbm90IGBsb25nYDog
IiwKKyAgICAgICAgICAgICAgICAgICAgZmlsZW5hbWUsCisgICAgICAgICAgICAgICAgICAgIE5v
bmUpLAorICAgICAgICAgICAgICAgICgiSU5WQUxJRC1USU1FT1VUIiwKKyAgICAgICAgICAgICAg
ICAgICAgIlRlc3QgZmlsZSB3aXRoIGA8bWV0YSBuYW1lPSd0aW1lb3V0Jy4uLj5gIGVsZW1lbnQg
dGhhdCBoYXMgYSBgY29udGVudGAgYXR0cmlidXRlIHdob3NlIHZhbHVlIGlzIG5vdCBgbG9uZ2A6
IHNob3J0IiwKKyAgICAgICAgICAgICAgICAgICAgZmlsZW5hbWUsCisgICAgICAgICAgICAgICAg
ICAgIE5vbmUpLAogICAgICAgICAgICAgXQogICAgICAgICBlbGlmIGtpbmQgPT0gInB5dGhvbiI6
CiAgICAgICAgICAgICBhc3NlcnQgZXJyb3JzID09IFsKQEAgLTI0Miw3ICsyNzgsMTIgQEAgZGVm
IHRlc3RfZWFybHlfdGVzdGhhcm5lc3NyZXBvcnQoKToKIAogICAgICAgICBpZiBraW5kIGluIFsi
d2ViLWxheCIsICJ3ZWItc3RyaWN0Il06CiAgICAgICAgICAgICBhc3NlcnQgZXJyb3JzID09IFsK
LSAgICAgICAgICAgICAgICAoIkVBUkxZLVRFU1RIQVJORVNTUkVQT1JUIiwgInRlc3RoYXJuZXNz
cmVwb3J0LmpzIHNjcmlwdCBzZWVuIGJlZm9yZSB0ZXN0aGFybmVzcy5qcyBzY3JpcHQiLCBmaWxl
bmFtZSwgTm9uZSksCisgICAgICAgICAgICAgICAgKCJFQVJMWS1URVNUSEFSTkVTU1JFUE9SVCIs
CisgICAgICAgICAgICAgICAgICAgICJUZXN0IGZpbGUgaGFzIGFuIGluc3RhbmNlIG9mICIKKyAg
ICAgICAgICAgICAgICAgICAgImA8c2NyaXB0IHNyYz0nL3Jlc291cmNlcy90ZXN0aGFybmVzc3Jl
cG9ydC5qcyc+YCAiCisgICAgICAgICAgICAgICAgICAgICJwcmlvciB0byBgPHNjcmlwdCBzcmM9
Jy9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMnPmAiLAorICAgICAgICAgICAgICAgICAgICBmaWxl
bmFtZSwKKyAgICAgICAgICAgICAgICAgICAgTm9uZSksCiAgICAgICAgICAgICBdCiAgICAgICAg
IGVsaWYga2luZCA9PSAicHl0aG9uIjoKICAgICAgICAgICAgIGFzc2VydCBlcnJvcnMgPT0gWwpA
QCAtMjY0LDggKzMwNSw4IEBAIGRlZiB0ZXN0X211bHRpcGxlX3Rlc3RoYXJuZXNzKCk6CiAKICAg
ICAgICAgaWYga2luZCBpbiBbIndlYi1sYXgiLCAid2ViLXN0cmljdCJdOgogICAgICAgICAgICAg
YXNzZXJ0IGVycm9ycyA9PSBbCi0gICAgICAgICAgICAgICAgKCJNVUxUSVBMRS1URVNUSEFSTkVT
UyIsICJNb3JlIHRoYW4gb25lIDxzY3JpcHQgc3JjPScvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpz
Jz4iLCBmaWxlbmFtZSwgTm9uZSksCi0gICAgICAgICAgICAgICAgKCJNSVNTSU5HLVRFU1RIQVJO
RVNTUkVQT1JUIiwgIk1pc3NpbmcgPHNjcmlwdCBzcmM9Jy9yZXNvdXJjZXMvdGVzdGhhcm5lc3Ny
ZXBvcnQuanMnPiIsIGZpbGVuYW1lLCBOb25lKSwKKyAgICAgICAgICAgICAgICAoIk1VTFRJUExF
LVRFU1RIQVJORVNTIiwgIk1vcmUgdGhhbiBvbmUgYDxzY3JpcHQgc3JjPScvcmVzb3VyY2VzL3Rl
c3RoYXJuZXNzLmpzJz5gIiwgZmlsZW5hbWUsIE5vbmUpLAorICAgICAgICAgICAgICAgICgiTUlT
U0lORy1URVNUSEFSTkVTU1JFUE9SVCIsICJNaXNzaW5nIGA8c2NyaXB0IHNyYz0nL3Jlc291cmNl
cy90ZXN0aGFybmVzc3JlcG9ydC5qcyc+YCIsIGZpbGVuYW1lLCBOb25lKSwKICAgICAgICAgICAg
IF0KICAgICAgICAgZWxpZiBraW5kID09ICJweXRob24iOgogICAgICAgICAgICAgYXNzZXJ0IGVy
cm9ycyA9PSBbCkBAIC0yODgsNyArMzI5LDgwIEBAIGRlZiB0ZXN0X211bHRpcGxlX3Rlc3RoYXJu
ZXNzcmVwb3J0KCk6CiAKICAgICAgICAgaWYga2luZCBpbiBbIndlYi1sYXgiLCAid2ViLXN0cmlj
dCJdOgogICAgICAgICAgICAgYXNzZXJ0IGVycm9ycyA9PSBbCi0gICAgICAgICAgICAgICAgKCJN
VUxUSVBMRS1URVNUSEFSTkVTU1JFUE9SVCIsICJNb3JlIHRoYW4gb25lIDxzY3JpcHQgc3JjPScv
cmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzJz4iLCBmaWxlbmFtZSwgTm9uZSksCisgICAg
ICAgICAgICAgICAgKCJNVUxUSVBMRS1URVNUSEFSTkVTU1JFUE9SVCIsICJNb3JlIHRoYW4gb25l
IGA8c2NyaXB0IHNyYz0nL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyc+YCIsIGZpbGVu
YW1lLCBOb25lKSwKKyAgICAgICAgICAgIF0KKyAgICAgICAgZWxpZiBraW5kID09ICJweXRob24i
OgorICAgICAgICAgICAgYXNzZXJ0IGVycm9ycyA9PSBbCisgICAgICAgICAgICAgICAgKCJQQVJT
RS1GQUlMRUQiLCAiVW5hYmxlIHRvIHBhcnNlIGZpbGUiLCBmaWxlbmFtZSwgMiksCisgICAgICAg
ICAgICBdCisKKworZGVmIHRlc3RfbXVsdGlwbGVfdGVzdGRyaXZlcigpOgorICAgIGNvZGUgPSBi
IiIiCis8aHRtbCB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCI+Cis8c2NyaXB0
IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0i
L3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0i
L3Jlc291cmNlcy90ZXN0ZHJpdmVyLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIvcmVzb3Vy
Y2VzL3Rlc3Rkcml2ZXIuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVz
dGRyaXZlci12ZW5kb3IuanMiPjwvc2NyaXB0PgorPC9odG1sPgorIiIiCisgICAgZXJyb3JfbWFw
ID0gY2hlY2tfd2l0aF9maWxlcyhjb2RlKQorCisgICAgZm9yIChmaWxlbmFtZSwgKGVycm9ycywg
a2luZCkpIGluIGVycm9yX21hcC5pdGVtcygpOgorICAgICAgICBjaGVja19lcnJvcnMoZXJyb3Jz
KQorCisgICAgICAgIGlmIGtpbmQgaW4gWyJ3ZWItbGF4IiwgIndlYi1zdHJpY3QiXToKKyAgICAg
ICAgICAgIGFzc2VydCBlcnJvcnMgPT0gWworICAgICAgICAgICAgICAgICgiTVVMVElQTEUtVEVT
VERSSVZFUiIsICJNb3JlIHRoYW4gb25lIGA8c2NyaXB0IHNyYz0nL3Jlc291cmNlcy90ZXN0ZHJp
dmVyLmpzJz5gIiwgZmlsZW5hbWUsIE5vbmUpLAorICAgICAgICAgICAgXQorICAgICAgICBlbGlm
IGtpbmQgPT0gInB5dGhvbiI6CisgICAgICAgICAgICBhc3NlcnQgZXJyb3JzID09IFsKKyAgICAg
ICAgICAgICAgICAoIlBBUlNFLUZBSUxFRCIsICJVbmFibGUgdG8gcGFyc2UgZmlsZSIsIGZpbGVu
YW1lLCAyKSwKKyAgICAgICAgICAgIF0KKworCitkZWYgdGVzdF9tdWx0aXBsZV90ZXN0ZHJpdmVy
X3ZlbmRvcigpOgorICAgIGNvZGUgPSBiIiIiCis8aHRtbCB4bWxucz0iaHR0cDovL3d3dy53My5v
cmcvMTk5OS94aHRtbCI+Cis8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+
PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+
PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0ZHJpdmVyLmpzIj48L3Njcmlw
dD4KKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3Rkcml2ZXItdmVuZG9yLmpzIj48L3Njcmlw
dD4KKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3Rkcml2ZXItdmVuZG9yLmpzIj48L3Njcmlw
dD4KKzwvaHRtbD4KKyIiIgorICAgIGVycm9yX21hcCA9IGNoZWNrX3dpdGhfZmlsZXMoY29kZSkK
KworICAgIGZvciAoZmlsZW5hbWUsIChlcnJvcnMsIGtpbmQpKSBpbiBlcnJvcl9tYXAuaXRlbXMo
KToKKyAgICAgICAgY2hlY2tfZXJyb3JzKGVycm9ycykKKworICAgICAgICBpZiBraW5kIGluIFsi
d2ViLWxheCIsICJ3ZWItc3RyaWN0Il06CisgICAgICAgICAgICBhc3NlcnQgZXJyb3JzID09IFsK
KyAgICAgICAgICAgICAgICAoIk1VTFRJUExFLVRFU1REUklWRVItVkVORE9SIiwgIk1vcmUgdGhh
biBvbmUgYDxzY3JpcHQgc3JjPScvcmVzb3VyY2VzL3Rlc3Rkcml2ZXItdmVuZG9yLmpzJz5gIiwg
ZmlsZW5hbWUsIE5vbmUpLAorICAgICAgICAgICAgXQorICAgICAgICBlbGlmIGtpbmQgPT0gInB5
dGhvbiI6CisgICAgICAgICAgICBhc3NlcnQgZXJyb3JzID09IFsKKyAgICAgICAgICAgICAgICAo
IlBBUlNFLUZBSUxFRCIsICJVbmFibGUgdG8gcGFyc2UgZmlsZSIsIGZpbGVuYW1lLCAyKSwKKyAg
ICAgICAgICAgIF0KKworCitkZWYgdGVzdF9taXNzaW5nX3Rlc3Rkcml2ZXJfdmVuZG9yKCk6Cisg
ICAgY29kZSA9IGIiIiIKKzxodG1sIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1s
Ij4KKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxz
Y3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxz
Y3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3Rkcml2ZXIuanMiPjwvc2NyaXB0PgorPC9odG1sPgor
IiIiCisgICAgZXJyb3JfbWFwID0gY2hlY2tfd2l0aF9maWxlcyhjb2RlKQorCisgICAgZm9yIChm
aWxlbmFtZSwgKGVycm9ycywga2luZCkpIGluIGVycm9yX21hcC5pdGVtcygpOgorICAgICAgICBj
aGVja19lcnJvcnMoZXJyb3JzKQorCisgICAgICAgIGlmIGtpbmQgaW4gWyJ3ZWItbGF4IiwgIndl
Yi1zdHJpY3QiXToKKyAgICAgICAgICAgIGFzc2VydCBlcnJvcnMgPT0gWworICAgICAgICAgICAg
ICAgICgiTUlTU0lORy1URVNURFJJVkVSLVZFTkRPUiIsICJNaXNzaW5nIGA8c2NyaXB0IHNyYz0n
L3Jlc291cmNlcy90ZXN0ZHJpdmVyLXZlbmRvci5qcyc+YCIsIGZpbGVuYW1lLCBOb25lKSwKICAg
ICAgICAgICAgIF0KICAgICAgICAgZWxpZiBraW5kID09ICJweXRob24iOgogICAgICAgICAgICAg
YXNzZXJ0IGVycm9ycyA9PSBbCkBAIC0zMzMsNyArNDQ3LDcgQEAgZGVmIHRlc3RfdGVzdGhhcm5l
c3NfcGF0aCgpOgogICAgIGZvciAoZmlsZW5hbWUsIChlcnJvcnMsIGtpbmQpKSBpbiBlcnJvcl9t
YXAuaXRlbXMoKToKICAgICAgICAgY2hlY2tfZXJyb3JzKGVycm9ycykKIAotICAgICAgICBleHBl
Y3RlZCA9IFsoIlczQy1URVNULk9SRyIsICJFeHRlcm5hbCB3M2MtdGVzdC5vcmcgZG9tYWluIHVz
ZWQiLCBmaWxlbmFtZSwgNSldCisgICAgICAgIGV4cGVjdGVkID0gWygiVzNDLVRFU1QuT1JHIiwg
IlRlc3QtZmlsZSBsaW5lIGhhcyB0aGUgc3RyaW5nIGB3M2MtdGVzdC5vcmdgIiwgZmlsZW5hbWUs
IDUpXQogICAgICAgICBpZiBraW5kID09ICJweXRob24iOgogICAgICAgICAgICAgZXhwZWN0ZWQu
YXBwZW5kKCgiUEFSU0UtRkFJTEVEIiwgIlVuYWJsZSB0byBwYXJzZSBmaWxlIiwgZmlsZW5hbWUs
IDEpKQogICAgICAgICBlbGlmIGtpbmQgaW4gWyJ3ZWItbGF4IiwgIndlYi1zdHJpY3QiXToKQEAg
LTM2MCw3ICs0NzQsNyBAQCBkZWYgdGVzdF90ZXN0aGFybmVzc3JlcG9ydF9wYXRoKCk6CiAgICAg
Zm9yIChmaWxlbmFtZSwgKGVycm9ycywga2luZCkpIGluIGVycm9yX21hcC5pdGVtcygpOgogICAg
ICAgICBjaGVja19lcnJvcnMoZXJyb3JzKQogCi0gICAgICAgIGV4cGVjdGVkID0gWygiVzNDLVRF
U1QuT1JHIiwgIkV4dGVybmFsIHczYy10ZXN0Lm9yZyBkb21haW4gdXNlZCIsIGZpbGVuYW1lLCA1
KV0KKyAgICAgICAgZXhwZWN0ZWQgPSBbKCJXM0MtVEVTVC5PUkciLCAiVGVzdC1maWxlIGxpbmUg
aGFzIHRoZSBzdHJpbmcgYHczYy10ZXN0Lm9yZ2AiLCBmaWxlbmFtZSwgNSldCiAgICAgICAgIGlm
IGtpbmQgPT0gInB5dGhvbiI6CiAgICAgICAgICAgICBleHBlY3RlZC5hcHBlbmQoKCJQQVJTRS1G
QUlMRUQiLCAiVW5hYmxlIHRvIHBhcnNlIGZpbGUiLCBmaWxlbmFtZSwgMSkpCiAgICAgICAgIGVs
aWYga2luZCBpbiBbIndlYi1sYXgiLCAid2ViLXN0cmljdCJdOgpAQCAtMzczLDEyICs0ODcsODEg
QEAgZGVmIHRlc3RfdGVzdGhhcm5lc3NyZXBvcnRfcGF0aCgpOgogICAgICAgICBhc3NlcnQgZXJy
b3JzID09IGV4cGVjdGVkCiAKIAorZGVmIHRlc3RfdGVzdGRyaXZlcl9wYXRoKCk6CisgICAgY29k
ZSA9IGIiIiJcCis8aHRtbCB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCI+Cis8
c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0
IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0
IHNyYz0idGVzdGRyaXZlci5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iL2Vsc2V3aGVyZS90
ZXN0ZHJpdmVyLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIvZWxzZXdoZXJlL3Jlc291cmNl
cy90ZXN0ZHJpdmVyLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL2Vsc2V3
aGVyZS90ZXN0ZHJpdmVyLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMv
dGVzdGRyaXZlci5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0ZHJp
dmVyLXZlbmRvci5qcyI+PC9zY3JpcHQ+Cis8L2h0bWw+CisiIiIKKyAgICBlcnJvcl9tYXAgPSBj
aGVja193aXRoX2ZpbGVzKGNvZGUpCisKKyAgICBmb3IgKGZpbGVuYW1lLCAoZXJyb3JzLCBraW5k
KSkgaW4gZXJyb3JfbWFwLml0ZW1zKCk6CisgICAgICAgIGNoZWNrX2Vycm9ycyhlcnJvcnMpCisK
KyAgICAgICAgZXhwZWN0ZWQgPSBbXQorICAgICAgICBpZiBraW5kID09ICJweXRob24iOgorICAg
ICAgICAgICAgZXhwZWN0ZWQuYXBwZW5kKCgiUEFSU0UtRkFJTEVEIiwgIlVuYWJsZSB0byBwYXJz
ZSBmaWxlIiwgZmlsZW5hbWUsIDEpKQorICAgICAgICBlbGlmIGtpbmQgaW4gWyJ3ZWItbGF4Iiwg
IndlYi1zdHJpY3QiXToKKyAgICAgICAgICAgIGV4cGVjdGVkLmV4dGVuZChbCisgICAgICAgICAg
ICAgICAgKCJURVNURFJJVkVSLVBBVEgiLCAidGVzdGRyaXZlci5qcyBzY3JpcHQgc2VlbiB3aXRo
IGluY29ycmVjdCBwYXRoIiwgZmlsZW5hbWUsIE5vbmUpLAorICAgICAgICAgICAgICAgICgiVEVT
VERSSVZFUi1QQVRIIiwgInRlc3Rkcml2ZXIuanMgc2NyaXB0IHNlZW4gd2l0aCBpbmNvcnJlY3Qg
cGF0aCIsIGZpbGVuYW1lLCBOb25lKSwKKyAgICAgICAgICAgICAgICAoIlRFU1REUklWRVItUEFU
SCIsICJ0ZXN0ZHJpdmVyLmpzIHNjcmlwdCBzZWVuIHdpdGggaW5jb3JyZWN0IHBhdGgiLCBmaWxl
bmFtZSwgTm9uZSksCisgICAgICAgICAgICAgICAgKCJURVNURFJJVkVSLVBBVEgiLCAidGVzdGRy
aXZlci5qcyBzY3JpcHQgc2VlbiB3aXRoIGluY29ycmVjdCBwYXRoIiwgZmlsZW5hbWUsIE5vbmUp
LAorICAgICAgICAgICAgICAgICgiVEVTVERSSVZFUi1QQVRIIiwgInRlc3Rkcml2ZXIuanMgc2Ny
aXB0IHNlZW4gd2l0aCBpbmNvcnJlY3QgcGF0aCIsIGZpbGVuYW1lLCBOb25lKQorICAgICAgICAg
ICAgXSkKKyAgICAgICAgYXNzZXJ0IGVycm9ycyA9PSBleHBlY3RlZAorCisKK2RlZiB0ZXN0X3Rl
c3Rkcml2ZXJfdmVuZG9yX3BhdGgoKToKKyAgICBjb2RlID0gYiIiIlwKKzxodG1sIHhtbG5zPSJo
dHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIj4KKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rl
c3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJu
ZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3Rkcml2
ZXIuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InRlc3Rkcml2ZXItdmVuZG9yLmpzIj48L3Nj
cmlwdD4KKzxzY3JpcHQgc3JjPSIvZWxzZXdoZXJlL3Rlc3Rkcml2ZXItdmVuZG9yLmpzIj48L3Nj
cmlwdD4KKzxzY3JpcHQgc3JjPSIvZWxzZXdoZXJlL3Jlc291cmNlcy90ZXN0ZHJpdmVyLXZlbmRv
ci5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy9lbHNld2hlcmUvdGVzdGRy
aXZlci12ZW5kb3IuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy90ZXN0
ZHJpdmVyLXZlbmRvci5qcyI+PC9zY3JpcHQ+Cis8L2h0bWw+CisiIiIKKyAgICBlcnJvcl9tYXAg
PSBjaGVja193aXRoX2ZpbGVzKGNvZGUpCisKKyAgICBmb3IgKGZpbGVuYW1lLCAoZXJyb3JzLCBr
aW5kKSkgaW4gZXJyb3JfbWFwLml0ZW1zKCk6CisgICAgICAgIGNoZWNrX2Vycm9ycyhlcnJvcnMp
CisKKyAgICAgICAgaWYga2luZCA9PSAicHl0aG9uIjoKKyAgICAgICAgICAgIGV4cGVjdGVkID0g
c2V0KFsoIlBBUlNFLUZBSUxFRCIsICJVbmFibGUgdG8gcGFyc2UgZmlsZSIsIGZpbGVuYW1lLCAx
KV0pCisgICAgICAgIGVsaWYga2luZCBpbiBbIndlYi1sYXgiLCAid2ViLXN0cmljdCJdOgorICAg
ICAgICAgICAgZXhwZWN0ZWQgPSBzZXQoWworICAgICAgICAgICAgICAgICgiTUlTU0lORy1URVNU
RFJJVkVSLVZFTkRPUiIsICJNaXNzaW5nIGA8c2NyaXB0IHNyYz0nL3Jlc291cmNlcy90ZXN0ZHJp
dmVyLXZlbmRvci5qcyc+YCIsIGZpbGVuYW1lLCBOb25lKSwKKyAgICAgICAgICAgICAgICAoIlRF
U1REUklWRVItVkVORE9SLVBBVEgiLCAidGVzdGRyaXZlci12ZW5kb3IuanMgc2NyaXB0IHNlZW4g
d2l0aCBpbmNvcnJlY3QgcGF0aCIsIGZpbGVuYW1lLCBOb25lKSwKKyAgICAgICAgICAgICAgICAo
IlRFU1REUklWRVItVkVORE9SLVBBVEgiLCAidGVzdGRyaXZlci12ZW5kb3IuanMgc2NyaXB0IHNl
ZW4gd2l0aCBpbmNvcnJlY3QgcGF0aCIsIGZpbGVuYW1lLCBOb25lKSwKKyAgICAgICAgICAgICAg
ICAoIlRFU1REUklWRVItVkVORE9SLVBBVEgiLCAidGVzdGRyaXZlci12ZW5kb3IuanMgc2NyaXB0
IHNlZW4gd2l0aCBpbmNvcnJlY3QgcGF0aCIsIGZpbGVuYW1lLCBOb25lKSwKKyAgICAgICAgICAg
ICAgICAoIlRFU1REUklWRVItVkVORE9SLVBBVEgiLCAidGVzdGRyaXZlci12ZW5kb3IuanMgc2Ny
aXB0IHNlZW4gd2l0aCBpbmNvcnJlY3QgcGF0aCIsIGZpbGVuYW1lLCBOb25lKSwKKyAgICAgICAg
ICAgICAgICAoIlRFU1REUklWRVItVkVORE9SLVBBVEgiLCAidGVzdGRyaXZlci12ZW5kb3IuanMg
c2NyaXB0IHNlZW4gd2l0aCBpbmNvcnJlY3QgcGF0aCIsIGZpbGVuYW1lLCBOb25lKQorICAgICAg
ICAgICAgXSkKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIGV4cGVjdGVkID0gc2V0KCkKKwor
ICAgICAgICBhc3NlcnQgc2V0KGVycm9ycykgPT0gZXhwZWN0ZWQKKworCiBkZWYgdGVzdF9ub3Rf
dGVzdGhhcm5lc3NfcGF0aCgpOgogICAgIGNvZGUgPSBiIiIiXAogPGh0bWwgeG1sbnM9Imh0dHA6
Ly93d3cudzMub3JnLzE5OTkveGh0bWwiPgogPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhh
cm5lc3MuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3Ny
ZXBvcnQuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9InJlc291cmNlcy93ZWJwZXJmdGVzdGhh
cm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGRyaXZlci5q
cyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0ZHJpdmVyLXZlbmRvci5q
cyI+PC9zY3JpcHQ+CiA8L2h0bWw+CiAiIiIKICAgICBlcnJvcl9tYXAgPSBjaGVja193aXRoX2Zp
bGVzKGNvZGUpCkBAIC0zOTQsNiArNTc3LDg1IEBAIGRlZiB0ZXN0X25vdF90ZXN0aGFybmVzc19w
YXRoKCk6CiAgICAgICAgICAgICBhc3NlcnQgZXJyb3JzID09IFtdCiAKIAorZGVmIHRlc3RfdmFy
aWFudF9taXNzaW5nKCk6CisgICAgY29kZSA9IGIiIiJcCis8aHRtbCB4bWxucz0iaHR0cDovL3d3
dy53My5vcmcvMTk5OS94aHRtbCI+Cis8bWV0YSBuYW1lPSJ2YXJpYW50Ij4KKzxzY3JpcHQgc3Jj
PSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIvcmVz
b3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzwvaHRtbD4KKyIiIgorICAg
IGVycm9yX21hcCA9IGNoZWNrX3dpdGhfZmlsZXMoY29kZSkKKworICAgIGZvciAoZmlsZW5hbWUs
IChlcnJvcnMsIGtpbmQpKSBpbiBlcnJvcl9tYXAuaXRlbXMoKToKKyAgICAgICAgY2hlY2tfZXJy
b3JzKGVycm9ycykKKworICAgICAgICBpZiBraW5kID09ICJweXRob24iOgorICAgICAgICAgICAg
YXNzZXJ0IGVycm9ycyA9PSBbCisgICAgICAgICAgICAgICAgKCJQQVJTRS1GQUlMRUQiLCAiVW5h
YmxlIHRvIHBhcnNlIGZpbGUiLCBmaWxlbmFtZSwgMSksCisgICAgICAgICAgICBdCisgICAgICAg
IGVsaWYga2luZCA9PSAid2ViLWxheCI6CisgICAgICAgICAgICBhc3NlcnQgZXJyb3JzID09IFsK
KyAgICAgICAgICAgICAgICAoIlZBUklBTlQtTUlTU0lORyIsCisgICAgICAgICAgICAgICAgICAg
ICJUZXN0IGZpbGUgd2l0aCBhIGA8bWV0YSBuYW1lPSd2YXJpYW50Jy4uLj5gIGVsZW1lbnQgdGhh
dCdzIG1pc3NpbmcgYSBgY29udGVudGAgYXR0cmlidXRlIiwKKyAgICAgICAgICAgICAgICAgICAg
ZmlsZW5hbWUsCisgICAgICAgICAgICAgICAgICAgIE5vbmUpCisgICAgICAgICAgICBdCisKKwor
IyBBIGNvcnJlc3BvbmRpbmcgInBvc2l0aXZlIiB0ZXN0IGNhbm5vdCBiZSB3cml0dGVuIGJlY2F1
c2UgdGhlIG1hbmlmZXN0CisjIFNvdXJjZUZpbGUgaW1wbGVtZW50YXRpb24gcmFpc2VzIGEgcnVu
dGltZSBleGNlcHRpb24gZm9yIHRoZSBjb25kaXRpb24gdGhpcworIyBsaW50aW5nIHJ1bGUgZGVz
Y3JpYmVzCitAcHl0ZXN0Lm1hcmsucGFyYW1ldHJpemUoImNvbnRlbnQiLCBbIiIsCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIj8iCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIiMiXSkKK2RlZiB0ZXN0X3ZhcmlhbnRfbWFsZm9ybWVkX25lZ2F0aXZl
KGNvbnRlbnQpOgorICAgIGNvZGUgPSAiIiJcCis8aHRtbCB4bWxucz0iaHR0cDovL3d3dy53My5v
cmcvMTk5OS94aHRtbCI+Cis8bWV0YSBuYW1lPSJ2YXJpYW50IiBjb250ZW50PSJ7fSI+Cis8c2Ny
aXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNy
Yz0iL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8L2h0bWw+Cisi
IiIuZm9ybWF0KGNvbnRlbnQpLmVuY29kZSgidXRmLTgiKQorICAgIGVycm9yX21hcCA9IGNoZWNr
X3dpdGhfZmlsZXMoY29kZSkKKworICAgIGZvciAoZmlsZW5hbWUsIChlcnJvcnMsIGtpbmQpKSBp
biBlcnJvcl9tYXAuaXRlbXMoKToKKyAgICAgICAgY2hlY2tfZXJyb3JzKGVycm9ycykKKworICAg
ICAgICBpZiBraW5kID09ICJweXRob24iOgorICAgICAgICAgICAgYXNzZXJ0IGVycm9ycyA9PSBb
CisgICAgICAgICAgICAgICAgKCJQQVJTRS1GQUlMRUQiLCAiVW5hYmxlIHRvIHBhcnNlIGZpbGUi
LCBmaWxlbmFtZSwgMSksCisgICAgICAgICAgICBdCisgICAgICAgIGVsaWYga2luZCA9PSAid2Vi
LWxheCI6CisgICAgICAgICAgICBhc3NlcnQgZXJyb3JzID09IFtdCisKKworZGVmIHRlc3RfbGF0
ZV90aW1lb3V0KCk6CisgICAgY29kZSA9IGIiIiJcCis8aHRtbCB4bWxucz0iaHR0cDovL3d3dy53
My5vcmcvMTk5OS94aHRtbCI+Cis8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzcy5q
cyI+PC9zY3JpcHQ+Cis8bWV0YSBuYW1lPSJ0aW1lb3V0IiBjb250ZW50PSJsb25nIj4KKzxzY3Jp
cHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzwvaHRt
bD4KKyIiIgorICAgIGVycm9yX21hcCA9IGNoZWNrX3dpdGhfZmlsZXMoY29kZSkKKworICAgIGZv
ciAoZmlsZW5hbWUsIChlcnJvcnMsIGtpbmQpKSBpbiBlcnJvcl9tYXAuaXRlbXMoKToKKyAgICAg
ICAgY2hlY2tfZXJyb3JzKGVycm9ycykKKworICAgICAgICBpZiBraW5kID09ICJweXRob24iOgor
ICAgICAgICAgICAgYXNzZXJ0IGVycm9ycyA9PSBbCisgICAgICAgICAgICAgICAgKCJQQVJTRS1G
QUlMRUQiLCAiVW5hYmxlIHRvIHBhcnNlIGZpbGUiLCBmaWxlbmFtZSwgMSksCisgICAgICAgICAg
ICBdCisgICAgICAgIGVsaWYga2luZCA9PSAid2ViLWxheCI6CisgICAgICAgICAgICBhc3NlcnQg
ZXJyb3JzID09IFsKKyAgICAgICAgICAgICAgICAoIkxBVEUtVElNRU9VVCIsCisgICAgICAgICAg
ICAgICAgICAgICJUZXN0IGZpbGUgd2l0aCBgPG1ldGEgbmFtZT0ndGltZW91dCcuLi4+YCBlbGVt
ZW50IGFmdGVyIGA8c2NyaXB0IHNyYz0nL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyc+
YCBlbGVtZW50IiwKKyAgICAgICAgICAgICAgICAgICAgZmlsZW5hbWUsCisgICAgICAgICAgICAg
ICAgICAgIE5vbmUpCisgICAgICAgICAgICBdCisKKwogQHB5dGVzdC5tYXJrLnNraXBpZihzaXgu
UFkzLCByZWFzb249IkNhbm5vdCBwYXJzZSBwcmludCBzdGF0ZW1lbnRzIGZyb20gcHl0aG9uIDMi
KQogZGVmIHRlc3RfcHJpbnRfc3RhdGVtZW50KCk6CiAgICAgZXJyb3JfbWFwID0gY2hlY2tfd2l0
aF9maWxlcyhiImRlZiBmb28oKTpcbiAgcHJpbnQgJ3N0YXRlbWVudCdcbiAgcHJpbnRcbiIpCkBA
IC00MDMsOCArNjY1LDggQEAgZGVmIHRlc3RfcHJpbnRfc3RhdGVtZW50KCk6CiAKICAgICAgICAg
aWYga2luZCA9PSAicHl0aG9uIjoKICAgICAgICAgICAgIGFzc2VydCBlcnJvcnMgPT0gWwotICAg
ICAgICAgICAgICAgICgiUFJJTlQgU1RBVEVNRU5UIiwgIlByaW50IGZ1bmN0aW9uIHVzZWQiLCBm
aWxlbmFtZSwgMiksCi0gICAgICAgICAgICAgICAgKCJQUklOVCBTVEFURU1FTlQiLCAiUHJpbnQg
ZnVuY3Rpb24gdXNlZCIsIGZpbGVuYW1lLCAzKSwKKyAgICAgICAgICAgICAgICAoIlBSSU5UIFNU
QVRFTUVOVCIsICJBIHNlcnZlci1zaWRlIHB5dGhvbiBzdXBwb3J0IGZpbGUgY29udGFpbnMgYSBg
cHJpbnRgIHN0YXRlbWVudCIsIGZpbGVuYW1lLCAyKSwKKyAgICAgICAgICAgICAgICAoIlBSSU5U
IFNUQVRFTUVOVCIsICJBIHNlcnZlci1zaWRlIHB5dGhvbiBzdXBwb3J0IGZpbGUgY29udGFpbnMg
YSBgcHJpbnRgIHN0YXRlbWVudCIsIGZpbGVuYW1lLCAzKSwKICAgICAgICAgICAgIF0KICAgICAg
ICAgZWxpZiBraW5kID09ICJ3ZWItc3RyaWN0IjoKICAgICAgICAgICAgIGFzc2VydCBlcnJvcnMg
PT0gWwpAQCAtNDIyLDcgKzY4NCw3IEBAIGRlZiB0ZXN0X3ByaW50X2Z1bmN0aW9uKCk6CiAKICAg
ICAgICAgaWYga2luZCA9PSAicHl0aG9uIjoKICAgICAgICAgICAgIGFzc2VydCBlcnJvcnMgPT0g
WwotICAgICAgICAgICAgICAgICgiUFJJTlQgU1RBVEVNRU5UIiwgIlByaW50IGZ1bmN0aW9uIHVz
ZWQiLCBmaWxlbmFtZSwgMiksCisgICAgICAgICAgICAgICAgKCJQUklOVCBTVEFURU1FTlQiLCAi
QSBzZXJ2ZXItc2lkZSBweXRob24gc3VwcG9ydCBmaWxlIGNvbnRhaW5zIGEgYHByaW50YCBzdGF0
ZW1lbnQiLCBmaWxlbmFtZSwgMiksCiAgICAgICAgICAgICBdCiAgICAgICAgIGVsaWYga2luZCA9
PSAid2ViLXN0cmljdCI6CiAgICAgICAgICAgICBhc3NlcnQgZXJyb3JzID09IFsKQEAgLTQzMiw2
ICs2OTQsNDUgQEAgZGVmIHRlc3RfcHJpbnRfZnVuY3Rpb24oKToKICAgICAgICAgICAgIGFzc2Vy
dCBlcnJvcnMgPT0gW10KIAogCitkZWYgdGVzdF9haGVtX3N5c3RlbV9mb250KCk6CisgICAgY29k
ZSA9IGIiIiJcCis8aHRtbD4KKzxzdHlsZT4KK2JvZHkgeworICBmb250LWZhbWlseTogYUhFbSwg
c2Fucy1zZXJpZjsKK30KKzwvc3R5bGU+Cis8L2h0bWw+CisiIiIKKyAgICBlcnJvcl9tYXAgPSBj
aGVja193aXRoX2ZpbGVzKGNvZGUpCisgICAgZm9yIChmaWxlbmFtZSwgKGVycm9ycywga2luZCkp
IGluIGVycm9yX21hcC5pdGVtcygpOgorICAgICAgICBjaGVja19lcnJvcnMoZXJyb3JzKQorCisg
ICAgICAgIGlmIGZpbGVuYW1lLmVuZHN3aXRoKCgiLmh0bSIsICIuaHRtbCIsICIueGh0IiwgIi54
aHRtbCIpKToKKyAgICAgICAgICAgIGFzc2VydCBlcnJvcnMgPT0gWworICAgICAgICAgICAgICAg
ICgiQUhFTSBTWVNURU0gRk9OVCIsICJEb24ndCB1c2UgQWhlbSBhcyBhIHN5c3RlbSBmb250LCB1
c2UgL2ZvbnRzL2FoZW0uY3NzIiwgZmlsZW5hbWUsIE5vbmUpCisgICAgICAgICAgICBdCisKKwor
ZGVmIHRlc3RfYWhlbV93ZWJfZm9udCgpOgorICAgIGNvZGUgPSBiIiIiXAorPGh0bWw+Cis8bGlu
ayByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIiBocmVmPSIvZm9udHMvYWhlbS5jc3Mi
IC8+Cis8c3R5bGU+Citib2R5IHsKKyAgZm9udC1mYW1pbHk6IGFIRW0sIHNhbnMtc2VyaWY7Cit9
Cis8L3N0eWxlPgorPC9odG1sPgorIiIiCisgICAgZXJyb3JfbWFwID0gY2hlY2tfd2l0aF9maWxl
cyhjb2RlKQorICAgIGZvciAoZmlsZW5hbWUsIChlcnJvcnMsIGtpbmQpKSBpbiBlcnJvcl9tYXAu
aXRlbXMoKToKKyAgICAgICAgY2hlY2tfZXJyb3JzKGVycm9ycykKKworICAgICAgICBpZiBmaWxl
bmFtZS5lbmRzd2l0aCgoIi5odG0iLCAiLmh0bWwiLCAiLnhodCIsICIueGh0bWwiKSk6CisgICAg
ICAgICAgICBhc3NlcnQgZXJyb3JzID09IFtdCisKKwogb3Blbl9tb2RlX2NvZGUgPSAiIiIKIGRl
ZiBmaXJzdCgpOgogICAgIHJldHVybiB7MH0oInRlc3QucG5nIikKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvbGludC90ZXN0cy90
ZXN0X2xpbnQucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL2xpbnQvdGVzdHMvdGVzdF9saW50LnB5CmluZGV4IDFmYzBjN2E3MTVjY2I2NzVlZjU1
NWU2ZDg5OWIzYTg1YTkzYmJmNDAuLmFmMmI3ZDNkNGFhMTlmMGMxZDcyYTU1NzViNTAxM2M3ODk3
ZTFkYzQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvbGludC90ZXN0cy90ZXN0X2xpbnQucHkKKysrIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9saW50L3Rlc3RzL3Rlc3RfbGludC5w
eQpAQCAtMjEzLDEyICsyMTMsMTEgQEAgZGVmIHRlc3RfcmVmX2Fic29sdXRlX3VybChjYXBsb2cp
OgogCiAKIGRlZiB0ZXN0X2Fib3V0X2JsYW5rX2FzX3JlZihjYXBsb2cpOgotICAgIHdpdGggX21v
Y2tfbGludCgiY2hlY2tfcGF0aCIpIGFzIG1vY2tlZF9jaGVja19wYXRoOgorICAgIHdpdGggX21v
Y2tfbGludCgiY2hlY2tfcGF0aCIpOgogICAgICAgICB3aXRoIF9tb2NrX2xpbnQoImNoZWNrX2Zp
bGVfY29udGVudHMiKSBhcyBtb2NrZWRfY2hlY2tfZmlsZV9jb250ZW50czoKLSAgICAgICAgICAg
IHJ2ID0gbGludChfZHVtbXlfcmVwbywgWyJhYm91dF9ibGFuay1yZWYuaHRtbCJdLCAibm9ybWFs
IikKKyAgICAgICAgICAgIHJ2ID0gbGludChfZHVtbXlfcmVwbywgWyJhYm91dF9ibGFuay5odG1s
Il0sICJub3JtYWwiKQogICAgICAgICAgICAgYXNzZXJ0IHJ2ID09IDAKLSAgICAgICAgICAgIGFz
c2VydCBub3QgbW9ja2VkX2NoZWNrX3BhdGguY2FsbGVkCi0gICAgICAgICAgICBhc3NlcnQgbm90
IG1vY2tlZF9jaGVja19maWxlX2NvbnRlbnRzLmNhbGxlZAorICAgICAgICAgICAgYXNzZXJ0IG1v
Y2tlZF9jaGVja19maWxlX2NvbnRlbnRzLmNhbGxfY291bnQgPT0gMQogICAgIGFzc2VydCBjYXBs
b2cudGV4dCA9PSAiIgogCiAKQEAgLTM5OSwxNSArMzk4LDM4IEBAIGRlZiB0ZXN0X2NoZWNrX2Nz
c19nbG9iYWxseV91bmlxdWVfaWdub3JlZF9kaXIoY2FwbG9nKToKICAgICBhc3NlcnQgY2FwbG9n
LnRleHQgPT0gIiIKIAogCitkZWYgdGVzdF9pZ25vcmVfZ2xvYihjYXBsb2cpOgorICAgICMgTGlu
dCB0d28gZmlsZXMgaW4gdGhlIHJlZi8gZGlyZWN0b3J5LCBhbmQgcGFzcyBpbiBpZ25vcmVfZ2xv
YiB0byBvbWl0IG9uZQorICAgICMgb2YgdGhlbS4KKyAgICAjIFdoZW4gd2Ugb21pdCBhYnNvbHV0
ZS5odG1sLCBubyBsaW50IGVycm9ycyBhcHBlYXIgc2luY2UgdGhlIG90aGVyIGZpbGUgaXMKKyAg
ICAjIGNsZWFuLgorICAgIHdpdGggX21vY2tfbGludCgiY2hlY2tfcGF0aCIpIGFzIG1vY2tlZF9j
aGVja19wYXRoOgorICAgICAgICB3aXRoIF9tb2NrX2xpbnQoImNoZWNrX2ZpbGVfY29udGVudHMi
KSBhcyBtb2NrZWRfY2hlY2tfZmlsZV9jb250ZW50czoKKyAgICAgICAgICAgIHJ2ID0gbGludChf
ZHVtbXlfcmVwbywgWyJyZWYvYWJzb2x1dGUuaHRtbCIsICJyZWYvZXhpc3RlbnRfcmVsYXRpdmUu
aHRtbCJdLCAibm9ybWFsIiwgIipzb2x1KiIpCisgICAgICAgICAgICBhc3NlcnQgcnYgPT0gMAor
ICAgICAgICAgICAgIyBBbHNvIGNvbmZpcm0gdGhhdCBvbmx5IG9uZSBmaWxlIGlzIGNoZWNrZWQK
KyAgICAgICAgICAgIGFzc2VydCBtb2NrZWRfY2hlY2tfcGF0aC5jYWxsX2NvdW50ID09IDEKKyAg
ICAgICAgICAgIGFzc2VydCBtb2NrZWRfY2hlY2tfZmlsZV9jb250ZW50cy5jYWxsX2NvdW50ID09
IDEKKyAgICAgICAgICAgIGFzc2VydCBjYXBsb2cudGV4dCA9PSAiIgorICAgICMgSG93ZXZlciwg
bGludGluZyB0aGUgc2FtZSB0d28gZmlsZXMgd2l0aG91dCBpZ25vcmVfZ2xvYiB5aWVsZHMgbGlu
dCBlcnJvcnMuCisgICAgd2l0aCBfbW9ja19saW50KCJjaGVja19wYXRoIikgYXMgbW9ja2VkX2No
ZWNrX3BhdGg6CisgICAgICAgIHdpdGggX21vY2tfbGludCgiY2hlY2tfZmlsZV9jb250ZW50cyIp
IGFzIG1vY2tlZF9jaGVja19maWxlX2NvbnRlbnRzOgorICAgICAgICAgICAgcnYgPSBsaW50KF9k
dW1teV9yZXBvLCBbInJlZi9hYnNvbHV0ZS5odG1sIiwgInJlZi9leGlzdGVudF9yZWxhdGl2ZS5o
dG1sIl0sICJub3JtYWwiKQorICAgICAgICAgICAgYXNzZXJ0IHJ2ID09IDEKKyAgICAgICAgICAg
IGFzc2VydCBtb2NrZWRfY2hlY2tfcGF0aC5jYWxsX2NvdW50ID09IDIKKyAgICAgICAgICAgIGFz
c2VydCBtb2NrZWRfY2hlY2tfZmlsZV9jb250ZW50cy5jYWxsX2NvdW50ID09IDIKKyAgICAgICAg
ICAgIGFzc2VydCAiQUJTT0xVVEUtVVJMLVJFRiIgaW4gY2FwbG9nLnRleHQKKworCiBkZWYgdGVz
dF9hbGxfZmlsZXN5c3RlbV9wYXRocygpOgogICAgIHdpdGggbW9jay5wYXRjaCgKLSAgICAgICAg
ICAgICdvcy53YWxrJywKLSAgICAgICAgICAgIHJldHVybl92YWx1ZT1bKCcuJywKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgIFsnZGlyX2EnLCAnZGlyX2InXSwKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgIFsnZmlsZV9hJywgJ2ZpbGVfYiddKSwKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgKG9zLnBhdGguam9pbignLicsICdkaXJfYScpLAorICAgICAgICAgICAgJ3Rvb2xzLmxpbnQu
bGludC53YWxrJywKKyAgICAgICAgICAgIHJldHVybl92YWx1ZT1bKCcnLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgWygnZGlyX2EnLCBOb25lKSwgKCdkaXJfYicsIE5vbmUpXSwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgIFsoJ2ZpbGVfYScsIE5vbmUpLCAoJ2ZpbGVfYicsIE5vbmUp
XSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICgnZGlyX2EnLAogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgW10sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICBbJ2ZpbGVfYycsICdm
aWxlX2QnXSldCisgICAgICAgICAgICAgICAgICAgICAgICAgICBbKCdmaWxlX2MnLCBOb25lKSwg
KCdmaWxlX2QnLCBOb25lKV0pXQogICAgICk6CiAgICAgICAgIGdvdCA9IGxpc3QobGludF9tb2Qu
YWxsX2ZpbGVzeXN0ZW1fcGF0aHMoJy4nKSkKICAgICAgICAgYXNzZXJ0IGdvdCA9PSBbJ2ZpbGVf
YScsCkBAIC00MTYsNiArNDM4LDIzIEBAIGRlZiB0ZXN0X2FsbF9maWxlc3lzdGVtX3BhdGhzKCk6
CiAgICAgICAgICAgICAgICAgICAgICAgIG9zLnBhdGguam9pbignZGlyX2EnLCAnZmlsZV9kJyld
CiAKIAorZGVmIHRlc3RfZmlsZXN5c3RlbV9wYXRoc19zdWJkaXIoKToKKyAgICB3aXRoIG1vY2su
cGF0Y2goCisgICAgICAgICAgICAndG9vbHMubGludC5saW50LndhbGsnLAorICAgICAgICAgICAg
cmV0dXJuX3ZhbHVlPVsoJycsCisgICAgICAgICAgICAgICAgICAgICAgICAgICBbKCdkaXJfYScs
IE5vbmUpLCAoJ2Rpcl9iJywgTm9uZSldLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgWygn
ZmlsZV9hJywgTm9uZSksICgnZmlsZV9iJywgTm9uZSldKSwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgKCdkaXJfYScsCisgICAgICAgICAgICAgICAgICAgICAgICAgICBbXSwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgIFsoJ2ZpbGVfYycsIE5vbmUpLCAoJ2ZpbGVfZCcsIE5vbmUpXSld
CisgICAgKToKKyAgICAgICAgZ290ID0gbGlzdChsaW50X21vZC5hbGxfZmlsZXN5c3RlbV9wYXRo
cygnLicsICdkaXInKSkKKyAgICAgICAgYXNzZXJ0IGdvdCA9PSBbb3MucGF0aC5qb2luKCdkaXIn
LCAnZmlsZV9hJyksCisgICAgICAgICAgICAgICAgICAgICAgIG9zLnBhdGguam9pbignZGlyJywg
J2ZpbGVfYicpLAorICAgICAgICAgICAgICAgICAgICAgICBvcy5wYXRoLmpvaW4oJ2RpcicsICdk
aXJfYScsICdmaWxlX2MnKSwKKyAgICAgICAgICAgICAgICAgICAgICAgb3MucGF0aC5qb2luKCdk
aXInLCAnZGlyX2EnLCAnZmlsZV9kJyldCisKKwogZGVmIHRlc3RfbWFpbl93aXRoX2FyZ3MoKToK
ICAgICBvcmlnX2FyZ3YgPSBzeXMuYXJndgogICAgIHRyeToKQEAgLTQyNyw3ICs0NjYsOCBAQCBk
ZWYgdGVzdF9tYWluX3dpdGhfYXJncygpOgogICAgICAgICAgICAgICAgIG0uYXNzZXJ0X2NhbGxl
ZF9vbmNlX3dpdGgocmVwb19yb290LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgW29zLnBhdGgucmVscGF0aChvcy5wYXRoLmpvaW4ob3MuZ2V0Y3dkKCksIHgpLCBy
ZXBvX3Jvb3QpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9y
IHggaW4gWydhJywgJ2InLCAnYyddXSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICJub3JtYWwiKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIm5vcm1hbCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBzdHIoKSkKICAgICBmaW5hbGx5OgogICAgICAgICBzeXMuYXJndiA9IG9yaWdfYXJndgogCkBA
IC00MzksNyArNDc5LDcgQEAgZGVmIHRlc3RfbWFpbl9ub19hcmdzKCk6CiAgICAgICAgIHdpdGgg
X21vY2tfbGludCgnbGludCcsIHJldHVybl92YWx1ZT1UcnVlKSBhcyBtOgogICAgICAgICAgICAg
d2l0aCBfbW9ja19saW50KCdjaGFuZ2VkX2ZpbGVzJywgcmV0dXJuX3ZhbHVlPVsnZm9vJywgJ2Jh
ciddKToKICAgICAgICAgICAgICAgICBsaW50X21vZC5tYWluKCoqdmFycyhjcmVhdGVfcGFyc2Vy
KCkucGFyc2VfYXJncygpKSkKLSAgICAgICAgICAgICAgICBtLmFzc2VydF9jYWxsZWRfb25jZV93
aXRoKHJlcG9fcm9vdCwgWydmb28nLCAnYmFyJ10sICJub3JtYWwiKQorICAgICAgICAgICAgICAg
IG0uYXNzZXJ0X2NhbGxlZF9vbmNlX3dpdGgocmVwb19yb290LCBbJ2ZvbycsICdiYXInXSwgIm5v
cm1hbCIsIHN0cigpKQogICAgIGZpbmFsbHk6CiAgICAgICAgIHN5cy5hcmd2ID0gb3JpZ19hcmd2
CiAKQEAgLTQ1MSw2ICs0OTEsNiBAQCBkZWYgdGVzdF9tYWluX2FsbCgpOgogICAgICAgICB3aXRo
IF9tb2NrX2xpbnQoJ2xpbnQnLCByZXR1cm5fdmFsdWU9VHJ1ZSkgYXMgbToKICAgICAgICAgICAg
IHdpdGggX21vY2tfbGludCgnYWxsX2ZpbGVzeXN0ZW1fcGF0aHMnLCByZXR1cm5fdmFsdWU9Wydm
b28nLCAnYmFyJ10pOgogICAgICAgICAgICAgICAgIGxpbnRfbW9kLm1haW4oKip2YXJzKGNyZWF0
ZV9wYXJzZXIoKS5wYXJzZV9hcmdzKCkpKQotICAgICAgICAgICAgICAgIG0uYXNzZXJ0X2NhbGxl
ZF9vbmNlX3dpdGgocmVwb19yb290LCBbJ2ZvbycsICdiYXInXSwgIm5vcm1hbCIpCisgICAgICAg
ICAgICAgICAgbS5hc3NlcnRfY2FsbGVkX29uY2Vfd2l0aChyZXBvX3Jvb3QsIFsnZm9vJywgJ2Jh
ciddLCAibm9ybWFsIiwgc3RyKCkpCiAgICAgZmluYWxseToKICAgICAgICAgc3lzLmFyZ3YgPSBv
cmlnX2FyZ3YKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvbGludC90ZXN0cy90ZXN0X3BhdGhfbGludHMucHkgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2xpbnQvdGVzdHMvdGVzdF9w
YXRoX2xpbnRzLnB5CmluZGV4IGJmODQxOGQ1MmEwMmUxYTIyYjgzZmJiMTVjMGI0Njg5Njk1NDZk
YzYuLjU1OGIwZWQ0ZjY0OGY0MWU3ODg4ZDMzYjA0Yzk3YmNlNzIwY2E1ZGEgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvbGludC90
ZXN0cy90ZXN0X3BhdGhfbGludHMucHkKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy9saW50L3Rlc3RzL3Rlc3RfcGF0aF9saW50cy5weQpAQCAt
MSw1ICsxLDggQEAKIGZyb20gX19mdXR1cmVfXyBpbXBvcnQgdW5pY29kZV9saXRlcmFscwogCitp
bXBvcnQgbW9jaworaW1wb3J0IG9zCisKIGZyb20gLi5saW50IGltcG9ydCBjaGVja19wYXRoCiBm
cm9tIC5iYXNlIGltcG9ydCBjaGVja19lcnJvcnMKIGltcG9ydCBweXRlc3QKQEAgLTMwLDcgKzMz
LDcgQEAgZGVmIHRlc3RfZm9yYmlkZGVuX3BhdGhfbGVuZ3RoKCk6CiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIi5hbnkud29ya2VyLmh0bWwiLCAi
LmFueS5qcyIpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgKCIuYW55Lmh0bWwiLCAiLmFueS5qcyIpXSkKIGRlZiB0ZXN0X2ZvcmJpZGRlbl9wYXRo
X2VuZGluZ3MocGF0aF9lbmRpbmcsIGdlbmVyYXRlZCk6Ci0gICAgcGF0aCA9ICIvdGVzdC90ZXN0
IiArIHBhdGhfZW5kaW5nCisgICAgcGF0aCA9ICJ0ZXN0L3Rlc3QiICsgcGF0aF9lbmRpbmcKIAog
ICAgIG1lc3NhZ2UgPSAoInBhdGggZW5kcyB3aXRoICVzIHdoaWNoIGNvbGxpZGVzIHdpdGggZ2Vu
ZXJhdGVkIHRlc3RzIGZyb20gJXMgZmlsZXMiICUKICAgICAgICAgICAgICAgIChwYXRoX2VuZGlu
ZywgZ2VuZXJhdGVkKSkKQEAgLTM4LDMgKzQxLDc2IEBAIGRlZiB0ZXN0X2ZvcmJpZGRlbl9wYXRo
X2VuZGluZ3MocGF0aF9lbmRpbmcsIGdlbmVyYXRlZCk6CiAgICAgZXJyb3JzID0gY2hlY2tfcGF0
aCgiL2Zvby8iLCBwYXRoKQogICAgIGNoZWNrX2Vycm9ycyhlcnJvcnMpCiAgICAgYXNzZXJ0IGVy
cm9ycyA9PSBbKCJXT1JLRVIgQ09MTElTSU9OIiwgbWVzc2FnZSwgcGF0aCwgTm9uZSldCisKKwor
ZGVmIHRlc3RfZmlsZV90eXBlKCk6CisgICAgcGF0aCA9ICJ0ZXN0L3Rlc3QiCisKKyAgICBtZXNz
YWdlID0gIi8lcyBpcyBhbiB1bnN1cHBvcnRlZCBmaWxlIHR5cGUgKHN5bWxpbmspIiAlIChwYXRo
LCkKKworICAgIHdpdGggbW9jay5wYXRjaCgib3MucGF0aC5pc2xpbmsiLCByZXR1cm52YWx1ZT1U
cnVlKToKKyAgICAgICAgZXJyb3JzID0gY2hlY2tfcGF0aCgiL2Zvby8iLCBwYXRoKQorCisgICAg
YXNzZXJ0IGVycm9ycyA9PSBbKCJGSUxFIFRZUEUiLCBtZXNzYWdlLCBwYXRoLCBOb25lKV0KKwor
CitAcHl0ZXN0Lm1hcmsucGFyYW1ldHJpemUoInBhdGgiLCBbImFoZW0udHRmIiwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAiQWhlbS50dGYiLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICJhaGVtLnRUZiIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIm5vdC1haGVtLnR0ZiIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
InN1cHBvcnQvYWhlbS50dGYiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJh
aGVtL290aGVyLnR0ZiJdKQorZGVmIHRlc3RfYWhlbV9jb3B5KHBhdGgpOgorICAgIGV4cGVjdGVk
X2Vycm9yID0gKCJBSEVNIENPUFkiLAorICAgICAgICAgICAgICAgICAgICAgICJEb24ndCBhZGQg
ZXh0cmEgY29waWVzIG9mIEFoZW0sIHVzZSAvZm9udHMvQWhlbS50dGYiLAorICAgICAgICAgICAg
ICAgICAgICAgIHBhdGgsCisgICAgICAgICAgICAgICAgICAgICAgTm9uZSkKKworICAgIGVycm9y
cyA9IGNoZWNrX3BhdGgoIi9mb28vIiwgcGF0aCkKKworICAgIGFzc2VydCBlcnJvcnMgPT0gW2V4
cGVjdGVkX2Vycm9yXQorCitAcHl0ZXN0Lm1hcmsucGFyYW1ldHJpemUoInBhdGgiLCBbImFoZW0u
d29mZiIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImFoZW0udHRmZiIsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInN1cHBvcnQvYWhlbS53b2ZmIiwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiYWhlbS9vdGhlci53b2ZmIl0pCitkZWYg
dGVzdF9haGVtX2NvcHlfbmVnYXRpdmUocGF0aCk6CisgICAgZXJyb3JzID0gY2hlY2tfcGF0aCgi
L2Zvby8iLCBwYXRoKQorCisgICAgYXNzZXJ0IGVycm9ycyA9PSBbXQorCitAcHl0ZXN0Lm1hcmsu
cGFyYW1ldHJpemUoInBhdGgiLCBbImVsc2V3aGVyZS8uZ2l0aWdub3JlIiwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAiZWxzZS93aGVyZS8uZ2l0aWdub3JlIgorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICJlbHNld2hlcmUvdG9vbHMvLmdpdGlnbm9yZSIsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImVsc2V3aGVyZS9kb2NzLy5naXRpZ25v
cmUiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJlbHNld2hlcmUvcmVzb3Vy
Y2VzL3dlYmlkbDIvLmdpdGlnbm9yZSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgImVsc2V3aGVyZS9jc3MvdG9vbHMvYXBpY2xpZW50Ly5naXRpZ25vcmUiXSkKK2RlZiB0ZXN0
X2dpdGlnbm9yZV9maWxlKHBhdGgpOgorICAgIHBhdGggPSBvcy5wYXRoLmpvaW4oKnBhdGguc3Bs
aXQoIi8iKSkKKworICAgIGV4cGVjdGVkX2Vycm9yID0gKCJHSVRJR05PUkUiLAorICAgICAgICAg
ICAgICAgICAgICAgICIuZ2l0aWdub3JlIGZvdW5kIG91dHNpZGUgdGhlIHJvb3QiLAorICAgICAg
ICAgICAgICAgICAgICAgIHBhdGgsCisgICAgICAgICAgICAgICAgICAgICAgTm9uZSkKKworICAg
IGVycm9ycyA9IGNoZWNrX3BhdGgoIi9mb28vIiwgcGF0aCkKKworICAgIGFzc2VydCBlcnJvcnMg
PT0gW2V4cGVjdGVkX2Vycm9yXQorCitAcHl0ZXN0Lm1hcmsucGFyYW1ldHJpemUoInBhdGgiLCBb
Ii5naXRpZ25vcmUiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJlbHNld2hl
cmUvLmdpdGlnbm9yZXMiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJlbHNl
d2hlcmUvbmFtZS5naXRpZ25vcmUiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICJ0b29scy8uZ2l0aWdub3JlIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAi
dG9vbHMvZWxzZXdoZXJlLy5naXRpZ25vcmUiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICJkb2NzLy5naXRpZ25vcmUiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgImRvY3MvZWxzZXdoZXJlLy5naXRpZ25vcmUiLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICJyZXNvdXJjZXMvd2ViaWRsMi8uZ2l0aWdub3JlIiwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAicmVzb3VyY2VzL3dlYmlkbDIvZWxzZXdoZXJlLy5naXRpZ25v
cmUiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJjc3MvdG9vbHMvYXBpY2xp
ZW50Ly5naXRpZ25vcmUiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJjc3Mv
dG9vbHMvYXBpY2xpZW50L2Vsc2V3aGVyZS8uZ2l0aWdub3JlIl0pCitkZWYgdGVzdF9naXRpZ25v
cmVfbmVnYXRpdmUocGF0aCk6CisgICAgcGF0aCA9IG9zLnBhdGguam9pbigqcGF0aC5zcGxpdCgi
LyIpKQorCisgICAgZXJyb3JzID0gY2hlY2tfcGF0aCgiL2Zvby8iLCBwYXRoKQorCisgICAgYXNz
ZXJ0IGVycm9ycyA9PSBbXQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy9saW50L3Rlc3RzL3czYy1pbXBvcnQubG9nIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9saW50L3Rlc3RzL3cz
Yy1pbXBvcnQubG9nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2N2I1MTg5ZmJlMTFk
OThjZGQ3ODhmMzA2ZGU2NTZiMTY2OGJlYjg0Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvbGludC90ZXN0cy93M2MtaW1wb3J0LmxvZworKysgL2Rldi9udWxsCkBAIC0x
LDIxICswLDAgQEAKLVRoZSB0ZXN0cyBpbiB0aGlzIGRpcmVjdG9yeSB3ZXJlIGltcG9ydGVkIGZy
b20gdGhlIFczQyByZXBvc2l0b3J5LgotRG8gTk9UIG1vZGlmeSB0aGVzZSB0ZXN0cyBkaXJlY3Rs
eSBpbiBXZWJLaXQuCi1JbnN0ZWFkLCBjcmVhdGUgYSBwdWxsIHJlcXVlc3Qgb24gdGhlIFdQVCBn
aXRodWI6Ci0JaHR0cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQKLQotVGhl
biBydW4gdGhlIFRvb2xzL1NjcmlwdHMvaW1wb3J0LXczYy10ZXN0cyBpbiBXZWJLaXQgdG8gcmVp
bXBvcnQKLQotRG8gTk9UIG1vZGlmeSBvciByZW1vdmUgdGhpcyBmaWxlLgotCi0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0KLVByb3BlcnRpZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLVByb3Bl
cnR5IHZhbHVlcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tCi1MaXN0IG9mIGZpbGVzOgotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvbGludC90ZXN0cy9fX2luaXRfXy5weQotL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvbGludC90ZXN0cy9iYXNlLnB5Ci0vTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9saW50L3Rlc3Rz
L3Rlc3RfZmlsZV9saW50cy5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvbGludC90ZXN0cy90ZXN0X2xpbnQucHkKLS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2xpbnQvdGVzdHMvdGVzdF9wYXRoX2xp
bnRzLnB5CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL2xpbnQvdzNjLWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2xpbnQvdzNjLWltcG9ydC5sb2cKZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDA0OTQzNjQyNjRlYmRkZGZmMTNhZDUzNWNmOTAyNDllODM1
MDc0ZjEuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9saW50L3czYy1p
bXBvcnQubG9nCisrKyAvZGV2L251bGwKQEAgLTEsMjMgKzAsMCBAQAotVGhlIHRlc3RzIGluIHRo
aXMgZGlyZWN0b3J5IHdlcmUgaW1wb3J0ZWQgZnJvbSB0aGUgVzNDIHJlcG9zaXRvcnkuCi1EbyBO
T1QgbW9kaWZ5IHRoZXNlIHRlc3RzIGRpcmVjdGx5IGluIFdlYktpdC4KLUluc3RlYWQsIGNyZWF0
ZSBhIHB1bGwgcmVxdWVzdCBvbiB0aGUgV1BUIGdpdGh1YjoKLQlodHRwczovL2dpdGh1Yi5jb20v
d2ViLXBsYXRmb3JtLXRlc3RzL3dwdAotCi1UaGVuIHJ1biB0aGUgVG9vbHMvU2NyaXB0cy9pbXBv
cnQtdzNjLXRlc3RzIGluIFdlYktpdCB0byByZWltcG9ydAotCi1EbyBOT1QgbW9kaWZ5IG9yIHJl
bW92ZSB0aGlzIGZpbGUuCi0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotUHJvcGVydGllcyByZXF1aXJpbmcg
dmVuZG9yIHByZWZpeGVzOgotTm9uZQotUHJvcGVydHkgdmFsdWVzIHJlcXVpcmluZyB2ZW5kb3Ig
cHJlZml4ZXM6Ci1Ob25lCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLUxpc3Qgb2YgZmlsZXM6Ci0vTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9saW50L19faW5pdF9f
LnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9s
aW50L19faW5pdF9fLnB5YwotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvbGludC9jb21tYW5kcy5qc29uCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9saW50L2ZubWF0Y2gucHkKLS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2xpbnQvZm5tYXRjaC5weWMKLS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2xpbnQvbGlu
dC5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
bGludC9saW50LnB5YwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy9tYW5pZmVzdC9YTUxQYXJzZXIucHkgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL21hbmlmZXN0L1hNTFBhcnNlci5w
eQppbmRleCA1MjNmNTQ0YjdjNGU4MzRiODVkOTcwYTM1MmFhYjI4ZDNjODQ2MTQ1Li42ZjVmZjRk
MzVkYWI2Nzk1OTliMTE1NWM2YmJiMzM0YjJmMDdmN2IxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL21hbmlmZXN0L1hNTFBhcnNl
ci5weQorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL21hbmlmZXN0L1hNTFBhcnNlci5weQpAQCAtMSwyMCArMSwzMiBAQAoraW1wb3J0IHN5cwog
ZnJvbSBvcy5wYXRoIGltcG9ydCBkaXJuYW1lLCBqb2luCiAKIGZyb20gY29sbGVjdGlvbnMgaW1w
b3J0IE9yZGVyZWREaWN0CiAKIGZyb20geG1sLnBhcnNlcnMgaW1wb3J0IGV4cGF0Ci1pbXBvcnQg
eG1sLmV0cmVlLkVsZW1lbnRUcmVlIGFzIGV0cmVlCitpbXBvcnQgeG1sLmV0cmVlLkVsZW1lbnRU
cmVlIGFzIGV0cmVlICAjIG5vcWE6IE44MTMKKworTVlQWSA9IEZhbHNlCitpZiBNWVBZOgorICAg
ICMgTVlQWSBpcyBzZXQgdG8gVHJ1ZSB3aGVuIHJ1biB1bmRlciBNeXB5LgorICAgIGZyb20gdHlw
aW5nIGltcG9ydCBEaWN0CisgICAgZnJvbSB0eXBpbmcgaW1wb3J0IExpc3QKKyAgICBmcm9tIHR5
cGluZyBpbXBvcnQgT3B0aW9uYWwKKyAgICBmcm9tIHR5cGluZyBpbXBvcnQgVGV4dAorICAgIGZy
b20gdHlwaW5nIGltcG9ydCBVbmlvbgogCiBfY2F0YWxvZyA9IGpvaW4oZGlybmFtZShfX2ZpbGVf
XyksICJjYXRhbG9nIikKIAogZGVmIF93cmFwX2Vycm9yKGUpOgorICAgICMgdHlwZTogKGV4cGF0
LmVycm9yKSAtPiBldHJlZS5QYXJzZUVycm9yCiAgICAgZXJyID0gZXRyZWUuUGFyc2VFcnJvcihl
KQogICAgIGVyci5jb2RlID0gZS5jb2RlCiAgICAgZXJyLnBvc2l0aW9uID0gZS5saW5lbm8sIGUu
b2Zmc2V0CiAgICAgcmFpc2UgZXJyCiAKLV9uYW1lcyA9IHt9CitfbmFtZXMgPSB7fSAgIyB0eXBl
OiBEaWN0W3N0ciwgc3RyXQogZGVmIF9maXhuYW1lKGtleSk6CisgICAgIyB0eXBlOiAoc3RyKSAt
PiBzdHIKICAgICB0cnk6CiAgICAgICAgIG5hbWUgPSBfbmFtZXNba2V5XQogICAgIGV4Y2VwdCBL
ZXlFcnJvcjoKQEAgLTI1LDYgKzM3LDEzIEBAIGRlZiBfZml4bmFtZShrZXkpOgogICAgIHJldHVy
biBuYW1lCiAKIAoraWYgc3lzLnZlcnNpb25faW5mb1swOjJdID49ICgzLCAyKToKKyAgICBfdW5k
ZWZpbmVkX2VudGl0eV9jb2RlID0gZXhwYXQuZXJyb3JzLmNvZGVzW2V4cGF0LmVycm9ycy5YTUxf
RVJST1JfVU5ERUZJTkVEX0VOVElUWV0gICMgdHlwZTogaW50CitlbHNlOgorICAgIF9jb2RlcyA9
IHtleHBhdC5FcnJvclN0cmluZyhpKTogaSBmb3IgaSBpbiByYW5nZSgweDEwMCl9ICAjIHR5cGU6
IERpY3Rbc3RyLCBpbnRdCisgICAgX3VuZGVmaW5lZF9lbnRpdHlfY29kZSA9IF9jb2Rlc1tleHBh
dC5lcnJvcnMuWE1MX0VSUk9SX1VOREVGSU5FRF9FTlRJVFldCisKKwogY2xhc3MgWE1MUGFyc2Vy
KG9iamVjdCk6CiAgICAgIiIiCiAgICAgQW4gWE1MIHBhcnNlciB3aXRoIHN1cHBvcnQgZm9yIFhI
VE1MIERURHMgYW5kIGFsbCBQeXRob24tc3VwcG9ydGVkIGVuY29kaW5ncwpAQCAtMzUsMTEgKzU0
LDEyIEBAIGNsYXNzIFhNTFBhcnNlcihvYmplY3QpOgogICAgIFB5dGhvbiBkb2VzLCByYXRoZXIg
dGhhbiBqdXN0IHRob3NlIHN1cHBvcnRlZCBieSBleHBhdC4KICAgICAiIiIKICAgICBkZWYgX19p
bml0X18oc2VsZiwgZW5jb2Rpbmc9Tm9uZSk6CisgICAgICAgICMgdHlwZTogKE9wdGlvbmFsW3N0
cl0pIC0+IE5vbmUKICAgICAgICAgc2VsZi5fcGFyc2VyID0gZXhwYXQuUGFyc2VyQ3JlYXRlKGVu
Y29kaW5nLCAifSIpCiAgICAgICAgIHNlbGYuX3RhcmdldCA9IGV0cmVlLlRyZWVCdWlsZGVyKCkK
ICAgICAgICAgIyBwYXJzZXIgc2V0dGluZ3MKLSAgICAgICAgc2VsZi5fcGFyc2VyLmJ1ZmZlcl90
ZXh0ID0gMQotICAgICAgICBzZWxmLl9wYXJzZXIub3JkZXJlZF9hdHRyaWJ1dGVzID0gMQorICAg
ICAgICBzZWxmLl9wYXJzZXIuYnVmZmVyX3RleHQgPSBUcnVlCisgICAgICAgIHNlbGYuX3BhcnNl
ci5vcmRlcmVkX2F0dHJpYnV0ZXMgPSBUcnVlCiAgICAgICAgIHNlbGYuX3BhcnNlci5TZXRQYXJh
bUVudGl0eVBhcnNpbmcoZXhwYXQuWE1MX1BBUkFNX0VOVElUWV9QQVJTSU5HX1VOTEVTU19TVEFO
REFMT05FKQogICAgICAgICAjIHBhcnNlciBjYWxsYmFja3MKICAgICAgICAgc2VsZi5fcGFyc2Vy
LlhtbERlY2xIYW5kbGVyID0gc2VsZi5feG1sX2RlY2wKQEAgLTQ3LDMwICs2NywzNSBAQCBjbGFz
cyBYTUxQYXJzZXIob2JqZWN0KToKICAgICAgICAgc2VsZi5fcGFyc2VyLkVuZEVsZW1lbnRIYW5k
bGVyID0gc2VsZi5fZW5kCiAgICAgICAgIHNlbGYuX3BhcnNlci5DaGFyYWN0ZXJEYXRhSGFuZGxl
ciA9IHNlbGYuX2RhdGEKICAgICAgICAgc2VsZi5fcGFyc2VyLkV4dGVybmFsRW50aXR5UmVmSGFu
ZGxlciA9IHNlbGYuX2V4dGVybmFsCi0gICAgICAgIHNlbGYuX3BhcnNlci5Ta2lwcGVkRW50aXR5
SGFuZGxlciA9IHNlbGYuX3NraXBwZWQKKyAgICAgICAgc2VsZi5fcGFyc2VyLlNraXBwZWRFbnRp
dHlIYW5kbGVyID0gc2VsZi5fc2tpcHBlZCAgIyB0eXBlOiBpZ25vcmUKICAgICAgICAgIyB1c2Vk
IGZvciBvdXIgaG9ycmlibGUgcmUtZW5jb2RpbmcgaGFjawotICAgICAgICBzZWxmLl9mZWRfZGF0
YSA9IFtdCi0gICAgICAgIHNlbGYuX3JlYWRfZW5jb2RpbmcgPSBOb25lCisgICAgICAgIHNlbGYu
X2ZlZF9kYXRhID0gW10gICMgdHlwZTogT3B0aW9uYWxbTGlzdFtieXRlc11dCisgICAgICAgIHNl
bGYuX3JlYWRfZW5jb2RpbmcgPSBOb25lICAjIHR5cGU6IE9wdGlvbmFsW3N0cl0KIAogICAgIGRl
ZiBfeG1sX2RlY2woc2VsZiwgdmVyc2lvbiwgZW5jb2RpbmcsIHN0YW5kYWxvbmUpOgorICAgICAg
ICAjIHR5cGU6IChzdHIsIE9wdGlvbmFsW3N0cl0sIGludCkgLT4gTm9uZQogICAgICAgICBzZWxm
Ll9yZWFkX2VuY29kaW5nID0gZW5jb2RpbmcKIAogICAgIGRlZiBfc3RhcnQoc2VsZiwgdGFnLCBh
dHRyaWJfaW4pOgorICAgICAgICAjIHR5cGU6IChzdHIsIExpc3Rbc3RyXSkgLT4gZXRyZWUuRWxl
bWVudAogICAgICAgICBzZWxmLl9mZWRfZGF0YSA9IE5vbmUKICAgICAgICAgdGFnID0gX2ZpeG5h
bWUodGFnKQotICAgICAgICBhdHRyaWIgPSBPcmRlcmVkRGljdCgpCisgICAgICAgIGF0dHJpYiA9
IE9yZGVyZWREaWN0KCkgICMgdHlwZTogRGljdFtVbmlvbltzdHIsIFRleHRdLCBVbmlvbltzdHIs
IFRleHRdXQogICAgICAgICBpZiBhdHRyaWJfaW46CiAgICAgICAgICAgICBmb3IgaSBpbiByYW5n
ZSgwLCBsZW4oYXR0cmliX2luKSwgMik6CiAgICAgICAgICAgICAgICAgYXR0cmliW19maXhuYW1l
KGF0dHJpYl9pbltpXSldID0gYXR0cmliX2luW2krMV0KICAgICAgICAgcmV0dXJuIHNlbGYuX3Rh
cmdldC5zdGFydCh0YWcsIGF0dHJpYikKIAogICAgIGRlZiBfZGF0YShzZWxmLCB0ZXh0KToKLSAg
ICAgICAgcmV0dXJuIHNlbGYuX3RhcmdldC5kYXRhKHRleHQpCisgICAgICAgICMgdHlwZTogKHN0
cikgLT4gTm9uZQorICAgICAgICBzZWxmLl90YXJnZXQuZGF0YSh0ZXh0KQogCiAgICAgZGVmIF9l
bmQoc2VsZiwgdGFnKToKKyAgICAgICAgIyB0eXBlOiAoc3RyKSAtPiBldHJlZS5FbGVtZW50CiAg
ICAgICAgIHJldHVybiBzZWxmLl90YXJnZXQuZW5kKF9maXhuYW1lKHRhZykpCiAKICAgICBkZWYg
X2V4dGVybmFsKHNlbGYsIGNvbnRleHQsIGJhc2UsIHN5c3RlbV9pZCwgcHVibGljX2lkKToKKyAg
ICAgICAgIyB0eXBlOiAoc3RyLCBPcHRpb25hbFtzdHJdLCBPcHRpb25hbFtzdHJdLCBPcHRpb25h
bFtzdHJdKSAtPiBib29sCiAgICAgICAgIGlmIHB1YmxpY19pZCBpbiB7CiAgICAgICAgICAgICAg
ICAgIi0vL1czQy8vRFREIFhIVE1MIDEuMCBUcmFuc2l0aW9uYWwvL0VOIiwKICAgICAgICAgICAg
ICAgICAiLS8vVzNDLy9EVEQgWEhUTUwgMS4xLy9FTiIsCkBAIC05MiwxNSArMTE3LDE3IEBAIGNs
YXNzIFhNTFBhcnNlcihvYmplY3QpOgogICAgICAgICByZXR1cm4gVHJ1ZQogCiAgICAgZGVmIF9z
a2lwcGVkKHNlbGYsIG5hbWUsIGlzX3BhcmFtZXRlcl9lbnRpdHkpOgorICAgICAgICAjIHR5cGU6
IChzdHIsIGJvb2wpIC0+IE5vbmUKICAgICAgICAgZXJyID0gZXhwYXQuZXJyb3IoInVuZGVmaW5l
ZCBlbnRpdHkgJXM6IGxpbmUgJWQsIGNvbHVtbiAlZCIgJQogICAgICAgICAgICAgICAgICAgICAg
ICAgICAobmFtZSwgc2VsZi5fcGFyc2VyLkVycm9yTGluZU51bWJlciwKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHNlbGYuX3BhcnNlci5FcnJvckNvbHVtbk51bWJlcikpCi0gICAgICAgIGVy
ci5jb2RlID0gZXhwYXQuZXJyb3JzLlhNTF9FUlJPUl9VTkRFRklORURfRU5USVRZCisgICAgICAg
IGVyci5jb2RlID0gX3VuZGVmaW5lZF9lbnRpdHlfY29kZQogICAgICAgICBlcnIubGluZW5vID0g
c2VsZi5fcGFyc2VyLkVycm9yTGluZU51bWJlcgogICAgICAgICBlcnIub2Zmc2V0ID0gc2VsZi5f
cGFyc2VyLkVycm9yQ29sdW1uTnVtYmVyCiAgICAgICAgIHJhaXNlIGVycgogCiAgICAgZGVmIGZl
ZWQoc2VsZiwgZGF0YSk6CisgICAgICAgICMgdHlwZTogKHN0cikgLT4gTm9uZQogICAgICAgICBp
ZiBzZWxmLl9mZWRfZGF0YSBpcyBub3QgTm9uZToKICAgICAgICAgICAgIHNlbGYuX2ZlZF9kYXRh
LmFwcGVuZChkYXRhKQogICAgICAgICB0cnk6CkBAIC0xMTAsNiArMTM3LDcgQEAgY2xhc3MgWE1M
UGFyc2VyKG9iamVjdCk6CiAgICAgICAgIGV4Y2VwdCBWYWx1ZUVycm9yIGFzIGU6CiAgICAgICAg
ICAgICBpZiBlLmFyZ3NbMF0gPT0gJ211bHRpLWJ5dGUgZW5jb2RpbmdzIGFyZSBub3Qgc3VwcG9y
dGVkJzoKICAgICAgICAgICAgICAgICBhc3NlcnQgc2VsZi5fcmVhZF9lbmNvZGluZyBpcyBub3Qg
Tm9uZQorICAgICAgICAgICAgICAgIGFzc2VydCBzZWxmLl9mZWRfZGF0YSBpcyBub3QgTm9uZQog
ICAgICAgICAgICAgICAgIHhtbCA9IGIiIi5qb2luKHNlbGYuX2ZlZF9kYXRhKS5kZWNvZGUoc2Vs
Zi5fcmVhZF9lbmNvZGluZykuZW5jb2RlKCJ1dGYtOCIpCiAgICAgICAgICAgICAgICAgbmV3X3Bh
cnNlciA9IFhNTFBhcnNlcigidXRmLTgiKQogICAgICAgICAgICAgICAgIHNlbGYuX3BhcnNlciA9
IG5ld19wYXJzZXIuX3BhcnNlcgpAQCAtMTE4LDYgKzE0Niw3IEBAIGNsYXNzIFhNTFBhcnNlcihv
YmplY3QpOgogICAgICAgICAgICAgICAgIHNlbGYuZmVlZCh4bWwpCiAKICAgICBkZWYgY2xvc2Uo
c2VsZik6CisgICAgICAgICMgdHlwZTogKCkgLT4gZXRyZWUuRWxlbWVudAogICAgICAgICB0cnk6
CiAgICAgICAgICAgICBzZWxmLl9wYXJzZXIuUGFyc2UoIiIsIFRydWUpCiAgICAgICAgIGV4Y2Vw
dCBleHBhdC5lcnJvciBhcyB2OgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9tYW5pZmVzdC9jYXRhbG9nL3czYy1pbXBvcnQubG9n
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9tYW5p
ZmVzdC9jYXRhbG9nL3czYy1pbXBvcnQubG9nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCA3ZDEzOTExYzBhN2JiZWNlY2Y2YWFkZmExMDVmZDhkNTU5YTA3Mjc2Li4wMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvbWFuaWZlc3QvY2F0YWxvZy93M2MtaW1wb3J0Lmxv
ZworKysgL2Rldi9udWxsCkBAIC0xLDE3ICswLDAgQEAKLVRoZSB0ZXN0cyBpbiB0aGlzIGRpcmVj
dG9yeSB3ZXJlIGltcG9ydGVkIGZyb20gdGhlIFczQyByZXBvc2l0b3J5LgotRG8gTk9UIG1vZGlm
eSB0aGVzZSB0ZXN0cyBkaXJlY3RseSBpbiBXZWJLaXQuCi1JbnN0ZWFkLCBjcmVhdGUgYSBwdWxs
IHJlcXVlc3Qgb24gdGhlIFdQVCBnaXRodWI6Ci0JaHR0cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0
Zm9ybS10ZXN0cy93cHQKLQotVGhlbiBydW4gdGhlIFRvb2xzL1NjcmlwdHMvaW1wb3J0LXczYy10
ZXN0cyBpbiBXZWJLaXQgdG8gcmVpbXBvcnQKLQotRG8gTk9UIG1vZGlmeSBvciByZW1vdmUgdGhp
cyBmaWxlLgotCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLVByb3BlcnRpZXMgcmVxdWlyaW5nIHZlbmRvciBw
cmVmaXhlczoKLU5vbmUKLVByb3BlcnR5IHZhbHVlcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVz
OgotTm9uZQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1MaXN0IG9mIGZpbGVzOgotL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvbWFuaWZlc3QvY2F0YWxvZy94aHRt
bC5kdGQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvbWFuaWZlc3QvY29tbWFuZHMuanNvbiBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvbWFuaWZlc3QvY29tbWFuZHMuanNvbgppbmRl
eCBkNmNjZDk4ODA5ZWY4OTUxNjYyYmRiOWMwYmYwNWYyMzNlYWU0ZGIyLi43Njk2NzVlMGVlNDJj
NmVmYzM2ZmMxMTUwNzc4NjgyZjkzM2E2NDY1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL21hbmlmZXN0L2NvbW1hbmRzLmpzb24K
KysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9t
YW5pZmVzdC9jb21tYW5kcy5qc29uCkBAIC0xLDYgKzEsMjMgQEAKLXsibWFuaWZlc3QiOgotIHsi
cGF0aCI6ICJ1cGRhdGUucHkiLCAic2NyaXB0IjogInJ1biIsICJwYXJzZXIiOiAiY3JlYXRlX3Bh
cnNlciIsICJoZWxwIjogIlVwZGF0ZSB0aGUgTUFOSUZFU1QuanNvbiBmaWxlIiwKLSAgInZpcnR1
YWxlbnYiOiBmYWxzZX0sCi0gIm1hbmlmZXN0LWRvd25sb2FkIjoKLSB7InBhdGgiOiAiZG93bmxv
YWQucHkiLCAic2NyaXB0IjogInJ1biIsICJwYXJzZXIiOiAiY3JlYXRlX3BhcnNlciIsICJoZWxw
IjogIkRvd25sb2FkIHJlY2VudCBwcmVnZW5lcmF0ZWQgTUFOSUZFU1QuanNvbiBmaWxlIiwKLSAg
InZpcnR1YWxlbnYiOiBmYWxzZX19Cit7CisgICJtYW5pZmVzdCI6IHsKKyAgICAicGF0aCI6ICJ1
cGRhdGUucHkiLAorICAgICJzY3JpcHQiOiAicnVuIiwKKyAgICAicGFyc2VyIjogImNyZWF0ZV9w
YXJzZXIiLAorICAgICJoZWxwIjogIlVwZGF0ZSB0aGUgTUFOSUZFU1QuanNvbiBmaWxlIiwKKyAg
ICAidmlydHVhbGVudiI6IGZhbHNlCisgIH0sCisgICJtYW5pZmVzdC1kb3dubG9hZCI6IHsKKyAg
ICAicGF0aCI6ICJkb3dubG9hZC5weSIsCisgICAgInNjcmlwdCI6ICJydW4iLAorICAgICJwYXJz
ZXIiOiAiY3JlYXRlX3BhcnNlciIsCisgICAgImhlbHAiOiAiRG93bmxvYWQgcmVjZW50IHByZWdl
bmVyYXRlZCBNQU5JRkVTVC5qc29uIGZpbGUiLAorICAgICJ2aXJ0dWFsZW52IjogZmFsc2UKKyAg
fSwKKyAgInRlc3QtcGF0aHMiOiB7CisgICAgInBhdGgiOiAidGVzdHBhdGhzLnB5IiwKKyAgICAi
c2NyaXB0IjogInJ1biIsCisgICAgInBhcnNlciI6ICJjcmVhdGVfcGFyc2VyIiwKKyAgICAiaGVs
cCI6ICJQcmludCB0ZXN0IHBhdGhzIGdpdmVuIGEgc2V0IG9mIHRlc3QgaWRzIiwKKyAgICAidmly
dHVhbGVudiI6IGZhbHNlCisgIH0KK30KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvbWFuaWZlc3QvZG93bmxvYWQucHkgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL21hbmlmZXN0L2Rv
d25sb2FkLnB5CmluZGV4IDhiYjNjYjY3M2RlNTRmMDY3NmQxY2I4NzNhMDg1M2M5ZGRmNjVkNGIu
LjM3MzZkNTRmMTVkYzVlOWM2NmM1NjA3MzBhY2QwOGY0M2U1M2RiMzAgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvbWFuaWZlc3Qv
ZG93bmxvYWQucHkKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy9tYW5pZmVzdC9kb3dubG9hZC5weQpAQCAtMSw2ICsxLDcgQEAKIGZyb20gX19m
dXR1cmVfXyBpbXBvcnQgYWJzb2x1dGVfaW1wb3J0CiAKIGltcG9ydCBhcmdwYXJzZQoraW1wb3J0
IGJ6MgogaW1wb3J0IGd6aXAKIGltcG9ydCBqc29uCiBpbXBvcnQgaW8KQEAgLTksMTAgKzEwLDIz
IEBAIGZyb20gZGF0ZXRpbWUgaW1wb3J0IGRhdGV0aW1lLCB0aW1lZGVsdGEKIAogZnJvbSBzaXgu
bW92ZXMudXJsbGliLnJlcXVlc3QgaW1wb3J0IHVybG9wZW4KIAotZnJvbSAudmNzIGltcG9ydCBH
aXQKK3RyeToKKyAgICBpbXBvcnQgenN0YW5kYXJkCitleGNlcHQgSW1wb3J0RXJyb3I6CisgICAg
enN0YW5kYXJkID0gTm9uZQorCitmcm9tIC51dGlscyBpbXBvcnQgZ2l0CiAKIGZyb20gLiBpbXBv
cnQgbG9nCiAKK01ZUFkgPSBGYWxzZQoraWYgTVlQWToKKyAgICAjIE1ZUFkgaXMgc2V0IHRvIFRy
dWUgd2hlbiBydW4gdW5kZXIgTXlweS4KKyAgICBmcm9tIHR5cGluZyBpbXBvcnQgQW55CisgICAg
ZnJvbSB0eXBpbmcgaW1wb3J0IENhbGxhYmxlCisgICAgZnJvbSB0eXBpbmcgaW1wb3J0IExpc3QK
KyAgICBmcm9tIHR5cGluZyBpbXBvcnQgT3B0aW9uYWwKKwogaGVyZSA9IG9zLnBhdGguZGlybmFt
ZShfX2ZpbGVfXykKIAogd3B0X3Jvb3QgPSBvcy5wYXRoLmFic3BhdGgob3MucGF0aC5qb2luKGhl
cmUsIG9zLnBhcmRpciwgb3MucGFyZGlyKSkKQEAgLTIwLDEwICszNCwxMiBAQCBsb2dnZXIgPSBs
b2cuZ2V0X2xvZ2dlcigpCiAKIAogZGVmIGFic19wYXRoKHBhdGgpOgorICAgICMgdHlwZTogKHN0
cikgLT4gc3RyCiAgICAgcmV0dXJuIG9zLnBhdGguYWJzcGF0aChvcy5wYXRoLmV4cGFuZHVzZXIo
cGF0aCkpCiAKIAogZGVmIHNob3VsZF9kb3dubG9hZChtYW5pZmVzdF9wYXRoLCByZWJ1aWxkX3Rp
bWU9dGltZWRlbHRhKGRheXM9NSkpOgorICAgICMgdHlwZTogKHN0ciwgdGltZWRlbHRhKSAtPiBi
b29sCiAgICAgaWYgbm90IG9zLnBhdGguZXhpc3RzKG1hbmlmZXN0X3BhdGgpOgogICAgICAgICBy
ZXR1cm4gVHJ1ZQogICAgIG10aW1lID0gZGF0ZXRpbWUuZnJvbXRpbWVzdGFtcChvcy5wYXRoLmdl
dG10aW1lKG1hbmlmZXN0X3BhdGgpKQpAQCAtMzMsNzIgKzQ5LDEyOCBAQCBkZWYgc2hvdWxkX2Rv
d25sb2FkKG1hbmlmZXN0X3BhdGgsIHJlYnVpbGRfdGltZT10aW1lZGVsdGEoZGF5cz01KSk6CiAg
ICAgcmV0dXJuIEZhbHNlCiAKIAotZGVmIGdpdF9jb21taXRzKHJlcG9fcm9vdCk6Ci0gICAgZ2l0
ID0gR2l0LmdldF9mdW5jKHJlcG9fcm9vdCkKLSAgICByZXR1cm4gW2l0ZW0gZm9yIGl0ZW0gaW4g
Z2l0KCJsb2ciLCAiLS1mb3JtYXQ9JUgiLCAiLW41MCIpLnNwbGl0KCJcbiIpIGlmIGl0ZW1dCi0K
LQotZGVmIGdpdGh1Yl91cmwoY29tbWl0cyk6Ci0gICAgdHJ5OgotICAgICAgICByZXNwID0gdXJs
b3BlbigiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy93ZWItcGxhdGZvcm0tdGVzdHMvd3B0
L3JlbGVhc2VzIikKLSAgICBleGNlcHQgRXhjZXB0aW9uOgotICAgICAgICByZXR1cm4gTm9uZQot
Ci0gICAgaWYgcmVzcC5jb2RlICE9IDIwMDoKLSAgICAgICAgcmV0dXJuIE5vbmUKLQotICAgIHRy
eToKLSAgICAgICAgcmVsZWFzZXMgPSBqc29uLmxvYWQocmVzcC5mcCkKLSAgICBleGNlcHQgVmFs
dWVFcnJvcjoKLSAgICAgICAgbG9nZ2VyLndhcm5pbmcoIlJlc3BvbnNlIHdhcyBub3QgdmFsaWQg
SlNPTiIpCi0gICAgICAgIHJldHVybiBOb25lCi0KLSAgICBmYWxsYmFjayA9IE5vbmUKLSAgICBm
b3IgcmVsZWFzZSBpbiByZWxlYXNlczoKLSAgICAgICAgZm9yIGNvbW1pdCBpbiBjb21taXRzOgot
ICAgICAgICAgICAgZm9yIGl0ZW0gaW4gcmVsZWFzZVsiYXNzZXRzIl06Ci0gICAgICAgICAgICAg
ICAgaWYgaXRlbVsibmFtZSJdID09ICJNQU5JRkVTVC0lcy5qc29uLmd6IiAlIGNvbW1pdDoKLSAg
ICAgICAgICAgICAgICAgICAgcmV0dXJuIGl0ZW1bImJyb3dzZXJfZG93bmxvYWRfdXJsIl0KLSAg
ICAgICAgICAgICAgICBlbGlmIGl0ZW1bIm5hbWUiXSA9PSAiTUFOSUZFU1QuanNvbi5neiIgYW5k
IG5vdCBmYWxsYmFjazoKLSAgICAgICAgICAgICAgICAgICAgZmFsbGJhY2sgPSBpdGVtWyJicm93
c2VyX2Rvd25sb2FkX3VybCJdCi0gICAgaWYgZmFsbGJhY2s6Ci0gICAgICAgIGxvZ2dlci5pbmZv
KCJDYW4ndCBmaW5kIGEgY29tbWl0LXNwZWNpZmljIG1hbmlmZXN0IHNvIGp1c3QgdXNpbmcgdGhl
IG1vc3QgcmVjZW50IG9uZSIpCi0gICAgICAgIHJldHVybiBmYWxsYmFjawotCi0KLWRlZiBkb3du
bG9hZF9tYW5pZmVzdChtYW5pZmVzdF9wYXRoLCBjb21taXRzX2Z1bmMsIHVybF9mdW5jLCBmb3Jj
ZT1GYWxzZSk6CitkZWYgbWVyZ2VfcHJfdGFncyhyZXBvX3Jvb3QsIG1heF9jb3VudD01MCk6Cisg
ICAgIyB0eXBlOiAoc3RyLCBpbnQpIC0+IExpc3Rbc3RyXQorICAgIGdpdGZ1bmMgPSBnaXQocmVw
b19yb290KQorICAgIHRhZ3MgPSBbXSAgIyB0eXBlOiBMaXN0W3N0cl0KKyAgICBpZiBnaXRmdW5j
IGlzIE5vbmU6CisgICAgICAgIHJldHVybiB0YWdzCisgICAgZm9yIGxpbmUgaW4gZ2l0ZnVuYygi
bG9nIiwgIi0tZm9ybWF0PSVEIiwgIi0tbWF4LWNvdW50PSVzIiAlIG1heF9jb3VudCkuc3BsaXQo
IlxuIik6CisgICAgICAgIGZvciByZWYgaW4gbGluZS5zcGxpdCgiLCAiKToKKyAgICAgICAgICAg
IGlmIHJlZi5zdGFydHN3aXRoKCJ0YWc6IG1lcmdlX3ByXyIpOgorICAgICAgICAgICAgICAgIHRh
Z3MuYXBwZW5kKHJlZls1Ol0pCisgICAgcmV0dXJuIHRhZ3MKKworCitkZWYgc2NvcmVfbmFtZShu
YW1lKToKKyAgICAjIHR5cGU6IChzdHIpIC0+IE9wdGlvbmFsW2ludF0KKyAgICAiIiJTY29yZSBo
b3cgbXVjaCB3ZSBsaWtlIGVhY2ggZmlsZW5hbWUsIGxvd2VyIHdpbnMsIE5vbmUgcmVqZWN0cyIi
IgorCisgICAgIyBBY2NlcHQgYm90aCB3YXlzIG9mIG5hbWluZyB0aGUgbWFuaWZlc3QgYXNzZXQs
IGV2ZW4gdGhvdWdoCisgICAgIyB0aGVyZSdzIG5vIGxvbmdlciBhIHJlYXNvbiB0byBpbmNsdWRl
IHRoZSBjb21taXQgc2hhLgorICAgIGlmIG5hbWUuc3RhcnRzd2l0aCgiTUFOSUZFU1QtIikgb3Ig
bmFtZS5zdGFydHN3aXRoKCJNQU5JRkVTVC4iKToKKyAgICAgICAgaWYgenN0YW5kYXJkIGFuZCBu
YW1lLmVuZHN3aXRoKCJqc29uLnpzdCIpOgorICAgICAgICAgICAgcmV0dXJuIDEKKyAgICAgICAg
aWYgbmFtZS5lbmRzd2l0aCgiLmpzb24uYnoyIik6CisgICAgICAgICAgICByZXR1cm4gMgorICAg
ICAgICBpZiBuYW1lLmVuZHN3aXRoKCIuanNvbi5neiIpOgorICAgICAgICAgICAgcmV0dXJuIDMK
KyAgICByZXR1cm4gTm9uZQorCisKK2RlZiBnaXRodWJfdXJsKHRhZ3MpOgorICAgICMgdHlwZTog
KExpc3Rbc3RyXSkgLT4gT3B0aW9uYWxbTGlzdFtzdHJdXQorICAgIGZvciB0YWcgaW4gdGFnczoK
KyAgICAgICAgdXJsID0gImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3dwdC9yZWxlYXNlcy90YWdzLyVzIiAlIHRhZworICAgICAgICB0cnk6CisgICAgICAg
ICAgICByZXNwID0gdXJsb3Blbih1cmwpCisgICAgICAgIGV4Y2VwdCBFeGNlcHRpb246CisgICAg
ICAgICAgICBsb2dnZXIud2FybmluZygiRmV0Y2hpbmcgJXMgZmFpbGVkIiAlIHVybCkKKyAgICAg
ICAgICAgIGNvbnRpbnVlCisKKyAgICAgICAgaWYgcmVzcC5jb2RlICE9IDIwMDoKKyAgICAgICAg
ICAgIGxvZ2dlci53YXJuaW5nKCJGZXRjaGluZyAlcyBmYWlsZWQ7IGdvdCBIVFRQIHN0YXR1cyAl
ZCIgJSAodXJsLCByZXNwLmNvZGUpKQorICAgICAgICAgICAgY29udGludWUKKworICAgICAgICB0
cnk6CisgICAgICAgICAgICByZWxlYXNlID0ganNvbi5sb2FkKHJlc3AuZnApCisgICAgICAgIGV4
Y2VwdCBWYWx1ZUVycm9yOgorICAgICAgICAgICAgbG9nZ2VyLndhcm5pbmcoIlJlc3BvbnNlIHdh
cyBub3QgdmFsaWQgSlNPTiIpCisgICAgICAgICAgICByZXR1cm4gTm9uZQorCisgICAgICAgIGNh
bmRpZGF0ZXMgPSBbXQorICAgICAgICBmb3IgaXRlbSBpbiByZWxlYXNlWyJhc3NldHMiXToKKyAg
ICAgICAgICAgIHNjb3JlID0gc2NvcmVfbmFtZShpdGVtWyJuYW1lIl0pCisgICAgICAgICAgICBp
ZiBzY29yZSBpcyBub3QgTm9uZToKKyAgICAgICAgICAgICAgICBjYW5kaWRhdGVzLmFwcGVuZCgo
c2NvcmUsIGl0ZW1bImJyb3dzZXJfZG93bmxvYWRfdXJsIl0pKQorCisgICAgICAgIHJldHVybiBb
aXRlbVsxXSBmb3IgaXRlbSBpbiBzb3J0ZWQoY2FuZGlkYXRlcyldCisKKyAgICByZXR1cm4gTm9u
ZQorCisKK2RlZiBkb3dubG9hZF9tYW5pZmVzdCgKKyAgICAgICAgbWFuaWZlc3RfcGF0aCwgICMg
dHlwZTogc3RyCisgICAgICAgIHRhZ3NfZnVuYywgICMgdHlwZTogQ2FsbGFibGVbW10sIExpc3Rb
c3RyXV0KKyAgICAgICAgdXJsX2Z1bmMsICAjIHR5cGU6IENhbGxhYmxlW1tMaXN0W3N0cl1dLCBP
cHRpb25hbFtMaXN0W3N0cl1dXQorICAgICAgICBmb3JjZT1GYWxzZSAgIyB0eXBlOiBib29sCisp
OgorICAgICMgdHlwZTogKC4uLikgLT4gYm9vbAogICAgIGlmIG5vdCBmb3JjZSBhbmQgbm90IHNo
b3VsZF9kb3dubG9hZChtYW5pZmVzdF9wYXRoKToKICAgICAgICAgcmV0dXJuIEZhbHNlCiAKLSAg
ICBjb21taXRzID0gY29tbWl0c19mdW5jKCkKKyAgICB0YWdzID0gdGFnc19mdW5jKCkKIAotICAg
IHVybCA9IHVybF9mdW5jKGNvbW1pdHMpCi0gICAgaWYgbm90IHVybDoKKyAgICB1cmxzID0gdXJs
X2Z1bmModGFncykKKyAgICBpZiBub3QgdXJsczoKICAgICAgICAgbG9nZ2VyLndhcm5pbmcoIk5v
IGdlbmVyYXRlZCBtYW5pZmVzdCBmb3VuZCIpCiAgICAgICAgIHJldHVybiBGYWxzZQogCi0gICAg
bG9nZ2VyLmluZm8oIkRvd25sb2FkaW5nIG1hbmlmZXN0IGZyb20gJXMiICUgdXJsKQotICAgIHRy
eToKLSAgICAgICAgcmVzcCA9IHVybG9wZW4odXJsKQotICAgIGV4Y2VwdCBFeGNlcHRpb246Ci0g
ICAgICAgIGxvZ2dlci53YXJuaW5nKCJEb3dubG9hZGluZyBwcmVnZW5lcmF0ZWQgbWFuaWZlc3Qg
ZmFpbGVkIikKLSAgICAgICAgcmV0dXJuIEZhbHNlCi0KLSAgICBpZiByZXNwLmNvZGUgIT0gMjAw
OgotICAgICAgICBsb2dnZXIud2FybmluZygiRG93bmxvYWRpbmcgcHJlZ2VuZXJhdGVkIG1hbmlm
ZXN0IGZhaWxlZDsgZ290IEhUVFAgc3RhdHVzICVkIiAlCi0gICAgICAgICAgICAgICAgICAgICAg
IHJlc3AuY29kZSkKLSAgICAgICAgcmV0dXJuIEZhbHNlCi0KLSAgICBnemYgPSBnemlwLkd6aXBG
aWxlKGZpbGVvYmo9aW8uQnl0ZXNJTyhyZXNwLnJlYWQoKSkpCi0KLSAgICB0cnk6Ci0gICAgICAg
IGRlY29tcHJlc3NlZCA9IGd6Zi5yZWFkKCkKLSAgICBleGNlcHQgSU9FcnJvcjoKLSAgICAgICAg
bG9nZ2VyLndhcm5pbmcoIkZhaWxlZCB0byBkZWNvbXByZXNzIGRvd25sb2FkZWQgZmlsZSIpCisg
ICAgZm9yIHVybCBpbiB1cmxzOgorICAgICAgICBsb2dnZXIuaW5mbygiRG93bmxvYWRpbmcgbWFu
aWZlc3QgZnJvbSAlcyIgJSB1cmwpCisgICAgICAgIHRyeToKKyAgICAgICAgICAgIHJlc3AgPSB1
cmxvcGVuKHVybCkKKyAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbjoKKyAgICAgICAgICAgIGxvZ2dl
ci53YXJuaW5nKCJEb3dubG9hZGluZyBwcmVnZW5lcmF0ZWQgbWFuaWZlc3QgZmFpbGVkIikKKyAg
ICAgICAgICAgIGNvbnRpbnVlCisKKyAgICAgICAgaWYgcmVzcC5jb2RlICE9IDIwMDoKKyAgICAg
ICAgICAgIGxvZ2dlci53YXJuaW5nKCJEb3dubG9hZGluZyBwcmVnZW5lcmF0ZWQgbWFuaWZlc3Qg
ZmFpbGVkOyBnb3QgSFRUUCBzdGF0dXMgJWQiICUKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
IHJlc3AuY29kZSkKKyAgICAgICAgICAgIGNvbnRpbnVlCisKKyAgICAgICAgaWYgdXJsLmVuZHN3
aXRoKCIuenN0Iik6CisgICAgICAgICAgICBpZiBub3QgenN0YW5kYXJkOgorICAgICAgICAgICAg
ICAgIGNvbnRpbnVlCisgICAgICAgICAgICB0cnk6CisgICAgICAgICAgICAgICAgZGN0eCA9IHpz
dGFuZGFyZC5ac3RkRGVjb21wcmVzc29yKCkKKyAgICAgICAgICAgICAgICBkZWNvbXByZXNzZWQg
PSBkY3R4LmRlY29tcHJlc3MocmVzcC5yZWFkKCkpCisgICAgICAgICAgICBleGNlcHQgSU9FcnJv
cjoKKyAgICAgICAgICAgICAgICBsb2dnZXIud2FybmluZygiRmFpbGVkIHRvIGRlY29tcHJlc3Mg
ZG93bmxvYWRlZCBmaWxlIikKKyAgICAgICAgICAgICAgICBjb250aW51ZQorICAgICAgICBlbGlm
IHVybC5lbmRzd2l0aCgiLmJ6MiIpOgorICAgICAgICAgICAgdHJ5OgorICAgICAgICAgICAgICAg
IGRlY29tcHJlc3NlZCA9IGJ6Mi5kZWNvbXByZXNzKHJlc3AucmVhZCgpKQorICAgICAgICAgICAg
ZXhjZXB0IElPRXJyb3I6CisgICAgICAgICAgICAgICAgbG9nZ2VyLndhcm5pbmcoIkZhaWxlZCB0
byBkZWNvbXByZXNzIGRvd25sb2FkZWQgZmlsZSIpCisgICAgICAgICAgICAgICAgY29udGludWUK
KyAgICAgICAgZWxpZiB1cmwuZW5kc3dpdGgoIi5neiIpOgorICAgICAgICAgICAgZmlsZW9iaiA9
IGlvLkJ5dGVzSU8ocmVzcC5yZWFkKCkpCisgICAgICAgICAgICB0cnk6CisgICAgICAgICAgICAg
ICAgd2l0aCBnemlwLkd6aXBGaWxlKGZpbGVvYmo9ZmlsZW9iaikgYXMgZ3pmOgorICAgICAgICAg
ICAgICAgICAgICBkZWNvbXByZXNzZWQgPSBnemYucmVhZCgpICAjIHR5cGU6IGlnbm9yZQorICAg
ICAgICAgICAgZXhjZXB0IElPRXJyb3I6CisgICAgICAgICAgICAgICAgbG9nZ2VyLndhcm5pbmco
IkZhaWxlZCB0byBkZWNvbXByZXNzIGRvd25sb2FkZWQgZmlsZSIpCisgICAgICAgICAgICAgICAg
Y29udGludWUKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIGxvZ2dlci53YXJuaW5nKCJVbmtu
b3duIGZpbGUgZXh0ZW5zaW9uOiAlcyIgJSB1cmwpCisgICAgICAgICAgICBjb250aW51ZQorICAg
ICAgICBicmVhaworICAgIGVsc2U6CiAgICAgICAgIHJldHVybiBGYWxzZQogCiAgICAgdHJ5Ogot
ICAgICAgICB3aXRoIG9wZW4obWFuaWZlc3RfcGF0aCwgInciKSBhcyBmOgorICAgICAgICB3aXRo
IG9wZW4obWFuaWZlc3RfcGF0aCwgIndiIikgYXMgZjoKICAgICAgICAgICAgIGYud3JpdGUoZGVj
b21wcmVzc2VkKQogICAgIGV4Y2VwdCBFeGNlcHRpb246CiAgICAgICAgIGxvZ2dlci53YXJuaW5n
KCJGYWlsZWQgdG8gd3JpdGUgbWFuaWZlc3QiKQpAQCAtMTA4LDYgKzE4MCw3IEBAIGRlZiBkb3du
bG9hZF9tYW5pZmVzdChtYW5pZmVzdF9wYXRoLCBjb21taXRzX2Z1bmMsIHVybF9mdW5jLCBmb3Jj
ZT1GYWxzZSk6CiAKIAogZGVmIGNyZWF0ZV9wYXJzZXIoKToKKyAgICAjIHR5cGU6ICgpIC0+IGFy
Z3BhcnNlLkFyZ3VtZW50UGFyc2VyCiAgICAgcGFyc2VyID0gYXJncGFyc2UuQXJndW1lbnRQYXJz
ZXIoKQogICAgIHBhcnNlci5hZGRfYXJndW1lbnQoCiAgICAgICAgICItcCIsICItLXBhdGgiLCB0
eXBlPWFic19wYXRoLCBoZWxwPSJQYXRoIHRvIG1hbmlmZXN0IGZpbGUuIikKQEAgLTEyMCwxMSAr
MTkzLDEzIEBAIGRlZiBjcmVhdGVfcGFyc2VyKCk6CiAKIAogZGVmIGRvd25sb2FkX2Zyb21fZ2l0
aHViKHBhdGgsIHRlc3RzX3Jvb3QsIGZvcmNlPUZhbHNlKToKLSAgICByZXR1cm4gZG93bmxvYWRf
bWFuaWZlc3QocGF0aCwgbGFtYmRhOiBnaXRfY29tbWl0cyh0ZXN0c19yb290KSwgZ2l0aHViX3Vy
bCwKKyAgICAjIHR5cGU6IChzdHIsIHN0ciwgYm9vbCkgLT4gYm9vbAorICAgIHJldHVybiBkb3du
bG9hZF9tYW5pZmVzdChwYXRoLCBsYW1iZGE6IG1lcmdlX3ByX3RhZ3ModGVzdHNfcm9vdCksIGdp
dGh1Yl91cmwsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcmNlPWZvcmNlKQogCiAK
IGRlZiBydW4oKiprd2FyZ3MpOgorICAgICMgdHlwZTogKCoqQW55KSAtPiBpbnQKICAgICBpZiBr
d2FyZ3NbInBhdGgiXSBpcyBOb25lOgogICAgICAgICBwYXRoID0gb3MucGF0aC5qb2luKGt3YXJn
c1sidGVzdHNfcm9vdCJdLCAiTUFOSUZFU1QuanNvbiIpCiAgICAgZWxzZToKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvbWFuaWZl
c3QvaXRlbS5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvbWFuaWZlc3QvaXRlbS5weQppbmRleCA2MTkxOWZjYzMxZTljN2FmYThjMWQ1NzMzYTI3
MjNmYzQxYmQzMjZkLi4yMTdmNmNhYzI2MmZiYTAyMGMwNDRkOTYzZDQyY2E1NWEyMzYxZTUzIDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL21hbmlmZXN0L2l0ZW0ucHkKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy9tYW5pZmVzdC9pdGVtLnB5CkBAIC0xLDIzICsxLDI4IEBACitm
cm9tIGNvcHkgaW1wb3J0IGNvcHkKK2Zyb20gaW5zcGVjdCBpbXBvcnQgaXNhYnN0cmFjdAorZnJv
bSBzaXggaW1wb3J0IGl0ZXJpdGVtcywgd2l0aF9tZXRhY2xhc3MKIGZyb20gc2l4Lm1vdmVzLnVy
bGxpYi5wYXJzZSBpbXBvcnQgdXJsam9pbiwgdXJscGFyc2UKIGZyb20gYWJjIGltcG9ydCBBQkNN
ZXRhLCBhYnN0cmFjdHByb3BlcnR5CiAKK2Zyb20gLnV0aWxzIGltcG9ydCB0b19vc19wYXRoCiAK
LWRlZiBnZXRfc291cmNlX2ZpbGUoc291cmNlX2ZpbGVzLCB0ZXN0c19yb290LCBtYW5pZmVzdCwg
cGF0aCk6Ci0gICAgZGVmIG1ha2VfbmV3KCk6Ci0gICAgICAgIGZyb20gLnNvdXJjZWZpbGUgaW1w
b3J0IFNvdXJjZUZpbGUKK01ZUFkgPSBGYWxzZQoraWYgTVlQWToKKyAgICAjIE1ZUFkgaXMgc2V0
IHRvIFRydWUgd2hlbiBydW4gdW5kZXIgTXlweS4KKyAgICBmcm9tIHR5cGluZyBpbXBvcnQgT3B0
aW9uYWwKKyAgICBmcm9tIHR5cGluZyBpbXBvcnQgVGV4dAorICAgIGZyb20gdHlwaW5nIGltcG9y
dCBEaWN0CisgICAgZnJvbSB0eXBpbmcgaW1wb3J0IFR1cGxlCisgICAgZnJvbSB0eXBpbmcgaW1w
b3J0IExpc3QKKyAgICBmcm9tIHR5cGluZyBpbXBvcnQgVW5pb24KKyAgICBmcm9tIHR5cGluZyBp
bXBvcnQgVHlwZQorICAgIGZyb20gdHlwaW5nIGltcG9ydCBBbnkKKyAgICBmcm9tIHR5cGluZyBp
bXBvcnQgU2VxdWVuY2UKKyAgICBmcm9tIHR5cGluZyBpbXBvcnQgSGFzaGFibGUKKyAgICBmcm9t
IC5tYW5pZmVzdCBpbXBvcnQgTWFuaWZlc3QKKyAgICBGdXp6eSA9IERpY3RbT3B0aW9uYWxbVHVw
bGVbVGV4dCwgVGV4dCwgVGV4dF1dLCBMaXN0W2ludF1dCiAKLSAgICAgICAgcmV0dXJuIFNvdXJj
ZUZpbGUodGVzdHNfcm9vdCwgcGF0aCwgbWFuaWZlc3QudXJsX2Jhc2UpCi0KLSAgICBpZiBzb3Vy
Y2VfZmlsZXMgaXMgTm9uZToKLSAgICAgICAgcmV0dXJuIG1ha2VfbmV3KCkKLQotICAgIGlmIHBh
dGggbm90IGluIHNvdXJjZV9maWxlczoKLSAgICAgICAgc291cmNlX2ZpbGVzW3BhdGhdID0gbWFr
ZV9uZXcoKQotCi0gICAgcmV0dXJuIHNvdXJjZV9maWxlc1twYXRoXQotCi0KLWl0ZW1fdHlwZXMg
PSB7fQoraXRlbV90eXBlcyA9IHt9ICAjIHR5cGU6IERpY3Rbc3RyLCBUeXBlW01hbmlmZXN0SXRl
bV1dCiAKIAogY2xhc3MgTWFuaWZlc3RJdGVtTWV0YShBQkNNZXRhKToKQEAgLTI1LDE1OCArMzAs
MjI1IEBAIGNsYXNzIE1hbmlmZXN0SXRlbU1ldGEoQUJDTWV0YSk6CiAgICAgaXRlbV90eXBlcyBk
aWN0aW9uYXJ5IGFjY29yZGluZyB0byB0aGUgdmFsdWUgb2YgdGhlaXIgaXRlbV90eXBlCiAgICAg
YXR0cmlidXRlLCBhbmQgb3RoZXJ3aXNlIGJlaGF2ZXMgbGlrZSBhbiBBQkNNZXRhLiIiIgogCi0g
ICAgZGVmIF9fbmV3X18oY2xzLCBuYW1lLCBiYXNlcywgYXR0cnMsICoqa3dhcmdzKToKLSAgICAg
ICAgcnYgPSBBQkNNZXRhLl9fbmV3X18oY2xzLCBuYW1lLCBiYXNlcywgYXR0cnMsICoqa3dhcmdz
KQotICAgICAgICBpdGVtX3R5cGVzW3J2Lml0ZW1fdHlwZV0gPSBydgotCi0gICAgICAgIHJldHVy
biBydgorICAgIGRlZiBfX25ld19fKGNscywgbmFtZSwgYmFzZXMsIGF0dHJzKToKKyAgICAgICAg
IyB0eXBlOiAoVHlwZVtNYW5pZmVzdEl0ZW1NZXRhXSwgc3RyLCBUdXBsZVtNYW5pZmVzdEl0ZW1N
ZXRhLCAuLi5dLCBEaWN0W3N0ciwgQW55XSkgLT4gTWFuaWZlc3RJdGVtTWV0YQorICAgICAgICBy
diA9IHN1cGVyKE1hbmlmZXN0SXRlbU1ldGEsIGNscykuX19uZXdfXyhjbHMsIG5hbWUsIGJhc2Vz
LCBhdHRycykKKyAgICAgICAgaWYgbm90IGlzYWJzdHJhY3QocnYpOgorICAgICAgICAgICAgYXNz
ZXJ0IGlzc3ViY2xhc3MocnYsIE1hbmlmZXN0SXRlbSkKKyAgICAgICAgICAgIGFzc2VydCBpc2lu
c3RhbmNlKHJ2Lml0ZW1fdHlwZSwgc3RyKQorICAgICAgICAgICAgaXRlbV90eXBlc1tydi5pdGVt
X3R5cGVdID0gcnYKIAorICAgICAgICByZXR1cm4gcnYgICMgdHlwZTogaWdub3JlCiAKLWNsYXNz
IE1hbmlmZXN0SXRlbShvYmplY3QpOgotICAgIF9fbWV0YWNsYXNzX18gPSBNYW5pZmVzdEl0ZW1N
ZXRhCiAKLSAgICBpdGVtX3R5cGUgPSBOb25lCitjbGFzcyBNYW5pZmVzdEl0ZW0od2l0aF9tZXRh
Y2xhc3MoTWFuaWZlc3RJdGVtTWV0YSkpOgorICAgIF9fc2xvdHNfXyA9ICgiX3Rlc3RzX3Jvb3Qi
LCAicGF0aCIpCiAKLSAgICBkZWYgX19pbml0X18oc2VsZiwgc291cmNlX2ZpbGUsIG1hbmlmZXN0
PU5vbmUpOgotICAgICAgICBzZWxmLm1hbmlmZXN0ID0gbWFuaWZlc3QKLSAgICAgICAgc2VsZi5z
b3VyY2VfZmlsZSA9IHNvdXJjZV9maWxlCisgICAgZGVmIF9faW5pdF9fKHNlbGYsIHRlc3RzX3Jv
b3QsIHBhdGgpOgorICAgICAgICAjIHR5cGU6IChUZXh0LCBUZXh0KSAtPiBOb25lCisgICAgICAg
IHNlbGYuX3Rlc3RzX3Jvb3QgPSB0ZXN0c19yb290CisgICAgICAgIHNlbGYucGF0aCA9IHBhdGgK
IAogICAgIEBhYnN0cmFjdHByb3BlcnR5CiAgICAgZGVmIGlkKHNlbGYpOgorICAgICAgICAjIHR5
cGU6ICgpIC0+IFRleHQKICAgICAgICAgIiIiVGhlIHRlc3QncyBpZCAodXN1YWxseSBpdHMgdXJs
KSIiIgogICAgICAgICBwYXNzCiAKLSAgICBAcHJvcGVydHkKLSAgICBkZWYgbWV0YV9mbGFncyhz
ZWxmKToKLSAgICAgICAgcmV0dXJuIHNldChzZWxmLnNvdXJjZV9maWxlLm1ldGFfZmxhZ3MpCi0K
LSAgICBAcHJvcGVydHkKLSAgICBkZWYgcGF0aChzZWxmKToKLSAgICAgICAgIiIiVGhlIHRlc3Qg
cGF0aCByZWxhdGl2ZSB0byB0aGUgdGVzdF9yb290IiIiCi0gICAgICAgIHJldHVybiBzZWxmLnNv
dXJjZV9maWxlLnJlbF9wYXRoCi0KLSAgICBAcHJvcGVydHkKLSAgICBkZWYgaHR0cHMoc2VsZik6
Ci0gICAgICAgIGZsYWdzID0gc2VsZi5tZXRhX2ZsYWdzCi0gICAgICAgIHJldHVybiAoImh0dHBz
IiBpbiBmbGFncyBvciAic2VydmljZXdvcmtlciIgaW4gZmxhZ3MpCisgICAgQGFic3RyYWN0cHJv
cGVydHkKKyAgICBkZWYgaXRlbV90eXBlKHNlbGYpOgorICAgICAgICAjIHR5cGU6ICgpIC0+IHN0
cgorICAgICAgICAiIiJUaGUgaXRlbSdzIHR5cGUiIiIKKyAgICAgICAgcGFzcwogCiAgICAgZGVm
IGtleShzZWxmKToKKyAgICAgICAgIyB0eXBlOiAoKSAtPiBIYXNoYWJsZQogICAgICAgICAiIiJB
IHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgdGVzdCIiIgogICAgICAgICByZXR1cm4gKHNlbGYu
aXRlbV90eXBlLCBzZWxmLmlkKQogCi0gICAgZGVmIG1ldGFfa2V5KHNlbGYpOgotICAgICAgICAi
IiJFeHRyYSBtZXRhZGF0YSB0aGF0IGRvZXNuJ3QgZm9ybSBwYXJ0IG9mIHRoZSB0ZXN0IGlkZW50
aXR5LCBidXQgZm9yCi0gICAgICAgIHdoaWNoIGNoYW5nZXMgbWVhbiByZWdlbmVyYXRpbmcgdGhl
IG1hbmlmZXN0IChlLmcuIHRoZSB0ZXN0IHRpbWVvdXQuIiIiCi0gICAgICAgIHJldHVybiAoKQot
CiAgICAgZGVmIF9fZXFfXyhzZWxmLCBvdGhlcik6CisgICAgICAgICMgdHlwZTogKEFueSkgLT4g
Ym9vbAogICAgICAgICBpZiBub3QgaGFzYXR0cihvdGhlciwgImtleSIpOgogICAgICAgICAgICAg
cmV0dXJuIEZhbHNlCi0gICAgICAgIHJldHVybiBzZWxmLmtleSgpID09IG90aGVyLmtleSgpCisg
ICAgICAgIHJldHVybiBib29sKHNlbGYua2V5KCkgPT0gb3RoZXIua2V5KCkpCiAKICAgICBkZWYg
X19oYXNoX18oc2VsZik6Ci0gICAgICAgIHJldHVybiBoYXNoKHNlbGYua2V5KCkgKyBzZWxmLm1l
dGFfa2V5KCkpCisgICAgICAgICMgdHlwZTogKCkgLT4gaW50CisgICAgICAgIHJldHVybiBoYXNo
KHNlbGYua2V5KCkpCiAKICAgICBkZWYgX19yZXByX18oc2VsZik6Ci0gICAgICAgIHJldHVybiAi
PCVzLiVzIGlkPSVzLCBwYXRoPSVzPiIgJSAoc2VsZi5fX21vZHVsZV9fLCBzZWxmLl9fY2xhc3Nf
Xy5fX25hbWVfXywgc2VsZi5pZCwgc2VsZi5wYXRoKQorICAgICAgICAjIHR5cGU6ICgpIC0+IHN0
cgorICAgICAgICByZXR1cm4gIjwlcy4lcyBpZD0lciwgcGF0aD0lcj4iICUgKHNlbGYuX19tb2R1
bGVfXywgc2VsZi5fX2NsYXNzX18uX19uYW1lX18sIHNlbGYuaWQsIHNlbGYucGF0aCkKIAogICAg
IGRlZiB0b19qc29uKHNlbGYpOgotICAgICAgICByZXR1cm4gW3t9XQorICAgICAgICAjIHR5cGU6
ICgpIC0+IFR1cGxlW0FueSwgLi4uXQorICAgICAgICByZXR1cm4gKCkKIAogICAgIEBjbGFzc21l
dGhvZAotICAgIGRlZiBmcm9tX2pzb24oY2xzLCBtYW5pZmVzdCwgdGVzdHNfcm9vdCwgcGF0aCwg
b2JqLCBzb3VyY2VfZmlsZXM9Tm9uZSk6Ci0gICAgICAgIHNvdXJjZV9maWxlID0gZ2V0X3NvdXJj
ZV9maWxlKHNvdXJjZV9maWxlcywgdGVzdHNfcm9vdCwgbWFuaWZlc3QsIHBhdGgpCi0gICAgICAg
IHJldHVybiBjbHMoc291cmNlX2ZpbGUsCi0gICAgICAgICAgICAgICAgICAgbWFuaWZlc3Q9bWFu
aWZlc3QpCisgICAgZGVmIGZyb21fanNvbihjbHMsCisgICAgICAgICAgICAgICAgICBtYW5pZmVz
dCwgICMgdHlwZTogTWFuaWZlc3QKKyAgICAgICAgICAgICAgICAgIHBhdGgsICAjIHR5cGU6IFRl
eHQKKyAgICAgICAgICAgICAgICAgIG9iaiAgIyB0eXBlOiBBbnkKKyAgICAgICAgICAgICAgICAg
ICk6CisgICAgICAgICMgdHlwZTogKC4uLikgLT4gTWFuaWZlc3RJdGVtCisgICAgICAgIHBhdGgg
PSB0b19vc19wYXRoKHBhdGgpCisgICAgICAgIHRlc3RzX3Jvb3QgPSBtYW5pZmVzdC50ZXN0c19y
b290CisgICAgICAgIGFzc2VydCB0ZXN0c19yb290IGlzIG5vdCBOb25lCisgICAgICAgIHJldHVy
biBjbHModGVzdHNfcm9vdCwgcGF0aCkKIAogCiBjbGFzcyBVUkxNYW5pZmVzdEl0ZW0oTWFuaWZl
c3RJdGVtKToKLSAgICBkZWYgX19pbml0X18oc2VsZiwgc291cmNlX2ZpbGUsIHVybCwgdXJsX2Jh
c2U9Ii8iLCBtYW5pZmVzdD1Ob25lKToKLSAgICAgICAgTWFuaWZlc3RJdGVtLl9faW5pdF9fKHNl
bGYsIHNvdXJjZV9maWxlLCBtYW5pZmVzdD1tYW5pZmVzdCkKLSAgICAgICAgc2VsZi5fdXJsID0g
dXJsCisgICAgX19zbG90c19fID0gKCJ1cmxfYmFzZSIsICJfdXJsIiwgIl9leHRyYXMiKQorCisg
ICAgZGVmIF9faW5pdF9fKHNlbGYsCisgICAgICAgICAgICAgICAgIHRlc3RzX3Jvb3QsICAjIHR5
cGU6IFRleHQKKyAgICAgICAgICAgICAgICAgcGF0aCwgICMgdHlwZTogVGV4dAorICAgICAgICAg
ICAgICAgICB1cmxfYmFzZSwgICMgdHlwZTogVGV4dAorICAgICAgICAgICAgICAgICB1cmwsICAj
IHR5cGU6IFRleHQKKyAgICAgICAgICAgICAgICAgKipleHRyYXMgICMgdHlwZTogQW55CisgICAg
ICAgICAgICAgICAgICk6CisgICAgICAgICMgdHlwZTogKC4uLikgLT4gTm9uZQorICAgICAgICBz
dXBlcihVUkxNYW5pZmVzdEl0ZW0sIHNlbGYpLl9faW5pdF9fKHRlc3RzX3Jvb3QsIHBhdGgpCisg
ICAgICAgIGFzc2VydCB1cmxfYmFzZVswXSA9PSAiLyIKICAgICAgICAgc2VsZi51cmxfYmFzZSA9
IHVybF9iYXNlCisgICAgICAgIGFzc2VydCB1cmxbMF0gIT0gIi8iCisgICAgICAgIHNlbGYuX3Vy
bCA9IHVybAorICAgICAgICBzZWxmLl9leHRyYXMgPSBleHRyYXMKIAogICAgIEBwcm9wZXJ0eQog
ICAgIGRlZiBpZChzZWxmKToKKyAgICAgICAgIyB0eXBlOiAoKSAtPiBUZXh0CiAgICAgICAgIHJl
dHVybiBzZWxmLnVybAogCi0gICAgQHByb3BlcnR5Ci0gICAgZGVmIG1ldGFfZmxhZ3Moc2VsZik6
Ci0gICAgICAgIHJldHVybiBzZXQodXJscGFyc2Uoc2VsZi51cmwpLnBhdGgucnNwbGl0KCIvIiwg
MSlbMV0uc3BsaXQoIi4iKVsxOi0xXSkKLQogICAgIEBwcm9wZXJ0eQogICAgIGRlZiB1cmwoc2Vs
Zik6CisgICAgICAgICMgdHlwZTogKCkgLT4gVGV4dAorICAgICAgICAjIHdlIGNhbiBvdXRwZXJm
b3JtIHVybGpvaW4sIGJlY2F1c2Ugd2Uga25vdyB3ZSBqdXN0IGhhdmUgcGF0aCByZWxhdGl2ZSBV
UkxzCisgICAgICAgIGlmIHNlbGYudXJsX2Jhc2UgPT0gIi8iOgorICAgICAgICAgICAgcmV0dXJu
ICIvIiArIHNlbGYuX3VybAogICAgICAgICByZXR1cm4gdXJsam9pbihzZWxmLnVybF9iYXNlLCBz
ZWxmLl91cmwpCiAKKyAgICBAcHJvcGVydHkKKyAgICBkZWYgaHR0cHMoc2VsZik6CisgICAgICAg
ICMgdHlwZTogKCkgLT4gYm9vbAorICAgICAgICBmbGFncyA9IHNldCh1cmxwYXJzZShzZWxmLnVy
bCkucGF0aC5yc3BsaXQoIi8iLCAxKVsxXS5zcGxpdCgiLiIpWzE6LTFdKQorICAgICAgICByZXR1
cm4gKCJodHRwcyIgaW4gZmxhZ3Mgb3IgInNlcnZpY2V3b3JrZXIiIGluIGZsYWdzKQorCiAgICAg
ZGVmIHRvX2pzb24oc2VsZik6Ci0gICAgICAgIHJ2ID0gW3NlbGYuX3VybCwge31dCisgICAgICAg
ICMgdHlwZTogKCkgLT4gVHVwbGVbVGV4dCwgRGljdFtBbnksIEFueV1dCisgICAgICAgIHJ2ID0g
KHNlbGYuX3VybCwge30pICAjIHR5cGU6IFR1cGxlW1RleHQsIERpY3RbQW55LCBBbnldXQogICAg
ICAgICByZXR1cm4gcnYKIAogICAgIEBjbGFzc21ldGhvZAotICAgIGRlZiBmcm9tX2pzb24oY2xz
LCBtYW5pZmVzdCwgdGVzdHNfcm9vdCwgcGF0aCwgb2JqLCBzb3VyY2VfZmlsZXM9Tm9uZSk6Ci0g
ICAgICAgIHNvdXJjZV9maWxlID0gZ2V0X3NvdXJjZV9maWxlKHNvdXJjZV9maWxlcywgdGVzdHNf
cm9vdCwgbWFuaWZlc3QsIHBhdGgpCisgICAgZGVmIGZyb21fanNvbihjbHMsCisgICAgICAgICAg
ICAgICAgICBtYW5pZmVzdCwgICMgdHlwZTogTWFuaWZlc3QKKyAgICAgICAgICAgICAgICAgIHBh
dGgsICAjIHR5cGU6IFRleHQKKyAgICAgICAgICAgICAgICAgIG9iaiAgIyB0eXBlOiBUdXBsZVtU
ZXh0LCBEaWN0W0FueSwgQW55XV0KKyAgICAgICAgICAgICAgICAgICk6CisgICAgICAgICMgdHlw
ZTogKC4uLikgLT4gVVJMTWFuaWZlc3RJdGVtCisgICAgICAgIHBhdGggPSB0b19vc19wYXRoKHBh
dGgpCiAgICAgICAgIHVybCwgZXh0cmFzID0gb2JqCi0gICAgICAgIHJldHVybiBjbHMoc291cmNl
X2ZpbGUsCisgICAgICAgIHRlc3RzX3Jvb3QgPSBtYW5pZmVzdC50ZXN0c19yb290CisgICAgICAg
IGFzc2VydCB0ZXN0c19yb290IGlzIG5vdCBOb25lCisgICAgICAgIHJldHVybiBjbHModGVzdHNf
cm9vdCwKKyAgICAgICAgICAgICAgICAgICBwYXRoLAorICAgICAgICAgICAgICAgICAgIG1hbmlm
ZXN0LnVybF9iYXNlLAogICAgICAgICAgICAgICAgICAgIHVybCwKLSAgICAgICAgICAgICAgICAg
ICB1cmxfYmFzZT1tYW5pZmVzdC51cmxfYmFzZSwKLSAgICAgICAgICAgICAgICAgICBtYW5pZmVz
dD1tYW5pZmVzdCkKKyAgICAgICAgICAgICAgICAgICAqKmV4dHJhcykKIAogCiBjbGFzcyBUZXN0
aGFybmVzc1Rlc3QoVVJMTWFuaWZlc3RJdGVtKToKKyAgICBfX3Nsb3RzX18gPSAoKQorCiAgICAg
aXRlbV90eXBlID0gInRlc3RoYXJuZXNzIgogCi0gICAgZGVmIF9faW5pdF9fKHNlbGYsIHNvdXJj
ZV9maWxlLCB1cmwsIHVybF9iYXNlPSIvIiwgdGltZW91dD1Ob25lLCB0ZXN0ZHJpdmVyPUZhbHNl
LCBqc3NoZWxsPUZhbHNlLCBtYW5pZmVzdD1Ob25lKToKLSAgICAgICAgVVJMTWFuaWZlc3RJdGVt
Ll9faW5pdF9fKHNlbGYsIHNvdXJjZV9maWxlLCB1cmwsIHVybF9iYXNlPXVybF9iYXNlLCBtYW5p
ZmVzdD1tYW5pZmVzdCkKLSAgICAgICAgc2VsZi50aW1lb3V0ID0gdGltZW91dAotICAgICAgICBz
ZWxmLnRlc3Rkcml2ZXIgPSB0ZXN0ZHJpdmVyCi0gICAgICAgIHNlbGYuanNzaGVsbCA9IGpzc2hl
bGwKKyAgICBAcHJvcGVydHkKKyAgICBkZWYgdGltZW91dChzZWxmKToKKyAgICAgICAgIyB0eXBl
OiAoKSAtPiBPcHRpb25hbFtUZXh0XQorICAgICAgICByZXR1cm4gc2VsZi5fZXh0cmFzLmdldCgi
dGltZW91dCIpCiAKLSAgICBkZWYgbWV0YV9rZXkoc2VsZik6Ci0gICAgICAgIHJldHVybiAoc2Vs
Zi50aW1lb3V0LCBzZWxmLnRlc3Rkcml2ZXIpCisgICAgQHByb3BlcnR5CisgICAgZGVmIHRlc3Rk
cml2ZXIoc2VsZik6CisgICAgICAgICMgdHlwZTogKCkgLT4gT3B0aW9uYWxbVGV4dF0KKyAgICAg
ICAgcmV0dXJuIHNlbGYuX2V4dHJhcy5nZXQoInRlc3Rkcml2ZXIiKQorCisgICAgQHByb3BlcnR5
CisgICAgZGVmIGpzc2hlbGwoc2VsZik6CisgICAgICAgICMgdHlwZTogKCkgLT4gT3B0aW9uYWxb
VGV4dF0KKyAgICAgICAgcmV0dXJuIHNlbGYuX2V4dHJhcy5nZXQoImpzc2hlbGwiKQorCisgICAg
QHByb3BlcnR5CisgICAgZGVmIHNjcmlwdF9tZXRhZGF0YShzZWxmKToKKyAgICAgICAgIyB0eXBl
OiAoKSAtPiBPcHRpb25hbFtUZXh0XQorICAgICAgICByZXR1cm4gc2VsZi5fZXh0cmFzLmdldCgi
c2NyaXB0X21ldGFkYXRhIikKIAogICAgIGRlZiB0b19qc29uKHNlbGYpOgotICAgICAgICBydiA9
IFVSTE1hbmlmZXN0SXRlbS50b19qc29uKHNlbGYpCisgICAgICAgICMgdHlwZTogKCkgLT4gVHVw
bGVbVGV4dCwgRGljdFtUZXh0LCBBbnldXQorICAgICAgICBydiA9IHN1cGVyKFRlc3RoYXJuZXNz
VGVzdCwgc2VsZikudG9fanNvbigpCiAgICAgICAgIGlmIHNlbGYudGltZW91dCBpcyBub3QgTm9u
ZToKICAgICAgICAgICAgIHJ2Wy0xXVsidGltZW91dCJdID0gc2VsZi50aW1lb3V0CiAgICAgICAg
IGlmIHNlbGYudGVzdGRyaXZlcjoKICAgICAgICAgICAgIHJ2Wy0xXVsidGVzdGRyaXZlciJdID0g
c2VsZi50ZXN0ZHJpdmVyCiAgICAgICAgIGlmIHNlbGYuanNzaGVsbDoKICAgICAgICAgICAgIHJ2
Wy0xXVsianNzaGVsbCJdID0gVHJ1ZQorICAgICAgICBpZiBzZWxmLnNjcmlwdF9tZXRhZGF0YToK
KyAgICAgICAgICAgIHJ2Wy0xXVsic2NyaXB0X21ldGFkYXRhIl0gPSBzZWxmLnNjcmlwdF9tZXRh
ZGF0YQogICAgICAgICByZXR1cm4gcnYKIAotICAgIEBjbGFzc21ldGhvZAotICAgIGRlZiBmcm9t
X2pzb24oY2xzLCBtYW5pZmVzdCwgdGVzdHNfcm9vdCwgcGF0aCwgb2JqLCBzb3VyY2VfZmlsZXM9
Tm9uZSk6Ci0gICAgICAgIHNvdXJjZV9maWxlID0gZ2V0X3NvdXJjZV9maWxlKHNvdXJjZV9maWxl
cywgdGVzdHNfcm9vdCwgbWFuaWZlc3QsIHBhdGgpCiAKLSAgICAgICAgdXJsLCBleHRyYXMgPSBv
YmoKLSAgICAgICAgcmV0dXJuIGNscyhzb3VyY2VfZmlsZSwKLSAgICAgICAgICAgICAgICAgICB1
cmwsCi0gICAgICAgICAgICAgICAgICAgdXJsX2Jhc2U9bWFuaWZlc3QudXJsX2Jhc2UsCi0gICAg
ICAgICAgICAgICAgICAgdGltZW91dD1leHRyYXMuZ2V0KCJ0aW1lb3V0IiksCi0gICAgICAgICAg
ICAgICAgICAgdGVzdGRyaXZlcj1ib29sKGV4dHJhcy5nZXQoInRlc3Rkcml2ZXIiKSksCi0gICAg
ICAgICAgICAgICAgICAganNzaGVsbD1ib29sKGV4dHJhcy5nZXQoImpzc2hlbGwiKSksCi0gICAg
ICAgICAgICAgICAgICAgbWFuaWZlc3Q9bWFuaWZlc3QpCitjbGFzcyBSZWZUZXN0QmFzZShVUkxN
YW5pZmVzdEl0ZW0pOgorICAgIF9fc2xvdHNfXyA9ICgicmVmZXJlbmNlcyIsKQogCisgICAgZGVm
IF9faW5pdF9fKHNlbGYsCisgICAgICAgICAgICAgICAgIHRlc3RzX3Jvb3QsICAjIHR5cGU6IFRl
eHQKKyAgICAgICAgICAgICAgICAgcGF0aCwgICMgdHlwZTogVGV4dAorICAgICAgICAgICAgICAg
ICB1cmxfYmFzZSwgICMgdHlwZTogVGV4dAorICAgICAgICAgICAgICAgICB1cmwsICAjIHR5cGU6
IFRleHQKKyAgICAgICAgICAgICAgICAgcmVmZXJlbmNlcz1Ob25lLCAgIyB0eXBlOiBPcHRpb25h
bFtMaXN0W1R1cGxlW1RleHQsIFRleHRdXV0KKyAgICAgICAgICAgICAgICAgKipleHRyYXMgICMg
dHlwZTogQW55CisgICAgICAgICAgICAgICAgICk6CisgICAgICAgIHN1cGVyKFJlZlRlc3RCYXNl
LCBzZWxmKS5fX2luaXRfXyh0ZXN0c19yb290LCBwYXRoLCB1cmxfYmFzZSwgdXJsLCAqKmV4dHJh
cykKKyAgICAgICAgaWYgcmVmZXJlbmNlcyBpcyBOb25lOgorICAgICAgICAgICAgc2VsZi5yZWZl
cmVuY2VzID0gW10gICMgdHlwZTogTGlzdFtUdXBsZVtUZXh0LCBUZXh0XV0KKyAgICAgICAgZWxz
ZToKKyAgICAgICAgICAgIHNlbGYucmVmZXJlbmNlcyA9IHJlZmVyZW5jZXMKIAotY2xhc3MgUmVm
VGVzdE5vZGUoVVJMTWFuaWZlc3RJdGVtKToKLSAgICBpdGVtX3R5cGUgPSAicmVmdGVzdF9ub2Rl
IgorICAgIEBwcm9wZXJ0eQorICAgIGRlZiB0aW1lb3V0KHNlbGYpOgorICAgICAgICAjIHR5cGU6
ICgpIC0+IE9wdGlvbmFsW1RleHRdCisgICAgICAgIHJldHVybiBzZWxmLl9leHRyYXMuZ2V0KCJ0
aW1lb3V0IikKIAotICAgIGRlZiBfX2luaXRfXyhzZWxmLCBzb3VyY2VfZmlsZSwgdXJsLCByZWZl
cmVuY2VzLCB1cmxfYmFzZT0iLyIsIHRpbWVvdXQ9Tm9uZSwKLSAgICAgICAgICAgICAgICAgdmll
d3BvcnRfc2l6ZT1Ob25lLCBkcGk9Tm9uZSwgbWFuaWZlc3Q9Tm9uZSk6Ci0gICAgICAgIFVSTE1h
bmlmZXN0SXRlbS5fX2luaXRfXyhzZWxmLCBzb3VyY2VfZmlsZSwgdXJsLCB1cmxfYmFzZT11cmxf
YmFzZSwgbWFuaWZlc3Q9bWFuaWZlc3QpCi0gICAgICAgIGZvciBfLCByZWZfdHlwZSBpbiByZWZl
cmVuY2VzOgotICAgICAgICAgICAgaWYgcmVmX3R5cGUgbm90IGluIFsiPT0iLCAiIT0iXToKLSAg
ICAgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJVbnJlY29nbmlzZWQgcmVmX3R5cGUgJXMi
ICUgcmVmX3R5cGUpCi0gICAgICAgIHNlbGYucmVmZXJlbmNlcyA9IHR1cGxlKHJlZmVyZW5jZXMp
Ci0gICAgICAgIHNlbGYudGltZW91dCA9IHRpbWVvdXQKLSAgICAgICAgc2VsZi52aWV3cG9ydF9z
aXplID0gdmlld3BvcnRfc2l6ZQotICAgICAgICBzZWxmLmRwaSA9IGRwaQorICAgIEBwcm9wZXJ0
eQorICAgIGRlZiB2aWV3cG9ydF9zaXplKHNlbGYpOgorICAgICAgICAjIHR5cGU6ICgpIC0+IE9w
dGlvbmFsW1RleHRdCisgICAgICAgIHJldHVybiBzZWxmLl9leHRyYXMuZ2V0KCJ2aWV3cG9ydF9z
aXplIikKIAotICAgIGRlZiBtZXRhX2tleShzZWxmKToKLSAgICAgICAgcmV0dXJuIChzZWxmLnRp
bWVvdXQsIHNlbGYudmlld3BvcnRfc2l6ZSwgc2VsZi5kcGkpCisgICAgQHByb3BlcnR5CisgICAg
ZGVmIGRwaShzZWxmKToKKyAgICAgICAgIyB0eXBlOiAoKSAtPiBPcHRpb25hbFtUZXh0XQorICAg
ICAgICByZXR1cm4gc2VsZi5fZXh0cmFzLmdldCgiZHBpIikKIAotICAgIGRlZiB0b19qc29uKHNl
bGYpOgotICAgICAgICBydiA9IFtzZWxmLnVybCwgc2VsZi5yZWZlcmVuY2VzLCB7fV0KKyAgICBA
cHJvcGVydHkKKyAgICBkZWYgZnV6enkoc2VsZik6CisgICAgICAgICMgdHlwZTogKCkgLT4gRnV6
enkKKyAgICAgICAgZnV6enkgPSBzZWxmLl9leHRyYXMuZ2V0KCJmdXp6eSIsIHt9KSAgIyB0eXBl
OiBVbmlvbltGdXp6eSwgTGlzdFtUdXBsZVtPcHRpb25hbFtTZXF1ZW5jZVtUZXh0XV0sIExpc3Rb
aW50XV1dXQorICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShmdXp6eSwgbGlzdCk6CisgICAgICAg
ICAgICByZXR1cm4gZnV6enkKKworICAgICAgICBydiA9IHt9ICAjIHR5cGU6IEZ1enp5CisgICAg
ICAgIGZvciBrLCB2IGluIGZ1enp5OiAgIyB0eXBlOiBUdXBsZVtPcHRpb25hbFtTZXF1ZW5jZVtU
ZXh0XV0sIExpc3RbaW50XV0KKyAgICAgICAgICAgIGlmIGsgaXMgTm9uZToKKyAgICAgICAgICAg
ICAgICBrZXkgPSBOb25lICAjIHR5cGU6IE9wdGlvbmFsW1R1cGxlW1RleHQsIFRleHQsIFRleHRd
XQorICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICAjIG15cHkgdHlwZXMgdGhpcyBh
cyBUdXBsZVtUZXh0LCAuLi5dCisgICAgICAgICAgICAgICAgYXNzZXJ0IGxlbihrKSA9PSAzCisg
ICAgICAgICAgICAgICAga2V5ID0gdHVwbGUoaykgICMgdHlwZTogaWdub3JlCisgICAgICAgICAg
ICBydltrZXldID0gdgorICAgICAgICByZXR1cm4gcnYKKworICAgIGRlZiB0b19qc29uKHNlbGYp
OiAgIyB0eXBlOiBpZ25vcmUKKyAgICAgICAgIyB0eXBlOiAoKSAtPiBUdXBsZVtUZXh0LCBMaXN0
W1R1cGxlW1RleHQsIFRleHRdXSwgRGljdFtUZXh0LCBBbnldXQorICAgICAgICBydiA9IChzZWxm
Ll91cmwsIHNlbGYucmVmZXJlbmNlcywge30pICAjIHR5cGU6IFR1cGxlW1RleHQsIExpc3RbVHVw
bGVbVGV4dCwgVGV4dF1dLCBEaWN0W1RleHQsIEFueV1dCiAgICAgICAgIGV4dHJhcyA9IHJ2Wy0x
XQogICAgICAgICBpZiBzZWxmLnRpbWVvdXQgaXMgbm90IE5vbmU6CiAgICAgICAgICAgICBleHRy
YXNbInRpbWVvdXQiXSA9IHNlbGYudGltZW91dApAQCAtMTg0LDg0ICsyNTYsMTAzIEBAIGNsYXNz
IFJlZlRlc3ROb2RlKFVSTE1hbmlmZXN0SXRlbSk6CiAgICAgICAgICAgICBleHRyYXNbInZpZXdw
b3J0X3NpemUiXSA9IHNlbGYudmlld3BvcnRfc2l6ZQogICAgICAgICBpZiBzZWxmLmRwaSBpcyBu
b3QgTm9uZToKICAgICAgICAgICAgIGV4dHJhc1siZHBpIl0gPSBzZWxmLmRwaQorICAgICAgICBp
ZiBzZWxmLmZ1enp5OgorICAgICAgICAgICAgZXh0cmFzWyJmdXp6eSJdID0gbGlzdChpdGVyaXRl
bXMoc2VsZi5mdXp6eSkpCiAgICAgICAgIHJldHVybiBydgogCiAgICAgQGNsYXNzbWV0aG9kCi0g
ICAgZGVmIGZyb21fanNvbihjbHMsIG1hbmlmZXN0LCB0ZXN0c19yb290LCBwYXRoLCBvYmosIHNv
dXJjZV9maWxlcz1Ob25lKToKLSAgICAgICAgc291cmNlX2ZpbGUgPSBnZXRfc291cmNlX2ZpbGUo
c291cmNlX2ZpbGVzLCB0ZXN0c19yb290LCBtYW5pZmVzdCwgcGF0aCkKKyAgICBkZWYgZnJvbV9q
c29uKGNscywgICMgdHlwZTogaWdub3JlCisgICAgICAgICAgICAgICAgICBtYW5pZmVzdCwgICMg
dHlwZTogTWFuaWZlc3QKKyAgICAgICAgICAgICAgICAgIHBhdGgsICAjIHR5cGU6IFRleHQKKyAg
ICAgICAgICAgICAgICAgIG9iaiAgIyB0eXBlOiBUdXBsZVtUZXh0LCBMaXN0W1R1cGxlW1RleHQs
IFRleHRdXSwgRGljdFtBbnksIEFueV1dCisgICAgICAgICAgICAgICAgICApOgorICAgICAgICAj
IHR5cGU6ICguLi4pIC0+IFJlZlRlc3RCYXNlCisgICAgICAgIHRlc3RzX3Jvb3QgPSBtYW5pZmVz
dC50ZXN0c19yb290CisgICAgICAgIGFzc2VydCB0ZXN0c19yb290IGlzIG5vdCBOb25lCisgICAg
ICAgIHBhdGggPSB0b19vc19wYXRoKHBhdGgpCiAgICAgICAgIHVybCwgcmVmZXJlbmNlcywgZXh0
cmFzID0gb2JqCi0gICAgICAgIHJldHVybiBjbHMoc291cmNlX2ZpbGUsCisgICAgICAgIHJldHVy
biBjbHModGVzdHNfcm9vdCwKKyAgICAgICAgICAgICAgICAgICBwYXRoLAorICAgICAgICAgICAg
ICAgICAgIG1hbmlmZXN0LnVybF9iYXNlLAogICAgICAgICAgICAgICAgICAgIHVybCwKICAgICAg
ICAgICAgICAgICAgICByZWZlcmVuY2VzLAotICAgICAgICAgICAgICAgICAgIHVybF9iYXNlPW1h
bmlmZXN0LnVybF9iYXNlLAotICAgICAgICAgICAgICAgICAgIHRpbWVvdXQ9ZXh0cmFzLmdldCgi
dGltZW91dCIpLAotICAgICAgICAgICAgICAgICAgIHZpZXdwb3J0X3NpemU9ZXh0cmFzLmdldCgi
dmlld3BvcnRfc2l6ZSIpLAotICAgICAgICAgICAgICAgICAgIGRwaT1leHRyYXMuZ2V0KCJkcGki
KSwKLSAgICAgICAgICAgICAgICAgICBtYW5pZmVzdD1tYW5pZmVzdCkKKyAgICAgICAgICAgICAg
ICAgICAqKmV4dHJhcykKIAogICAgIGRlZiB0b19SZWZUZXN0KHNlbGYpOgorICAgICAgICAjIHR5
cGU6ICgpIC0+IFJlZlRlc3QKICAgICAgICAgaWYgdHlwZShzZWxmKSA9PSBSZWZUZXN0OgorICAg
ICAgICAgICAgYXNzZXJ0IGlzaW5zdGFuY2Uoc2VsZiwgUmVmVGVzdCkKICAgICAgICAgICAgIHJl
dHVybiBzZWxmCi0gICAgICAgIHJ2ID0gUmVmVGVzdC5fX25ld19fKFJlZlRlc3QpCi0gICAgICAg
IHJ2Ll9fZGljdF9fLnVwZGF0ZShzZWxmLl9fZGljdF9fKQorICAgICAgICBydiA9IGNvcHkoc2Vs
ZikKKyAgICAgICAgcnYuX19jbGFzc19fID0gUmVmVGVzdAorICAgICAgICBhc3NlcnQgaXNpbnN0
YW5jZShydiwgUmVmVGVzdCkKICAgICAgICAgcmV0dXJuIHJ2CiAKICAgICBkZWYgdG9fUmVmVGVz
dE5vZGUoc2VsZik6CisgICAgICAgICMgdHlwZTogKCkgLT4gUmVmVGVzdE5vZGUKICAgICAgICAg
aWYgdHlwZShzZWxmKSA9PSBSZWZUZXN0Tm9kZToKKyAgICAgICAgICAgIGFzc2VydCBpc2luc3Rh
bmNlKHNlbGYsIFJlZlRlc3ROb2RlKQogICAgICAgICAgICAgcmV0dXJuIHNlbGYKLSAgICAgICAg
cnYgPSBSZWZUZXN0Tm9kZS5fX25ld19fKFJlZlRlc3ROb2RlKQotICAgICAgICBydi5fX2RpY3Rf
Xy51cGRhdGUoc2VsZi5fX2RpY3RfXykKKyAgICAgICAgcnYgPSBjb3B5KHNlbGYpCisgICAgICAg
IHJ2Ll9fY2xhc3NfXyA9IFJlZlRlc3ROb2RlCisgICAgICAgIGFzc2VydCBpc2luc3RhbmNlKHJ2
LCBSZWZUZXN0Tm9kZSkKICAgICAgICAgcmV0dXJuIHJ2CiAKIAotY2xhc3MgUmVmVGVzdChSZWZU
ZXN0Tm9kZSk6CitjbGFzcyBSZWZUZXN0Tm9kZShSZWZUZXN0QmFzZSk6CisgICAgX19zbG90c19f
ID0gKCkKKworICAgIGl0ZW1fdHlwZSA9ICJyZWZ0ZXN0X25vZGUiCisKKworY2xhc3MgUmVmVGVz
dChSZWZUZXN0QmFzZSk6CisgICAgX19zbG90c19fID0gKCkKKwogICAgIGl0ZW1fdHlwZSA9ICJy
ZWZ0ZXN0IgogCiAKIGNsYXNzIE1hbnVhbFRlc3QoVVJMTWFuaWZlc3RJdGVtKToKKyAgICBfX3Ns
b3RzX18gPSAoKQorCiAgICAgaXRlbV90eXBlID0gIm1hbnVhbCIKIAogCiBjbGFzcyBDb25mb3Jt
YW5jZUNoZWNrZXJUZXN0KFVSTE1hbmlmZXN0SXRlbSk6CisgICAgX19zbG90c19fID0gKCkKKwog
ICAgIGl0ZW1fdHlwZSA9ICJjb25mb3JtYW5jZWNoZWNrZXIiCiAKIAogY2xhc3MgVmlzdWFsVGVz
dChVUkxNYW5pZmVzdEl0ZW0pOgotICAgIGl0ZW1fdHlwZSA9ICJ2aXN1YWwiCisgICAgX19zbG90
c19fID0gKCkKIAorICAgIGl0ZW1fdHlwZSA9ICJ2aXN1YWwiCiAKLWNsYXNzIFN0dWIoVVJMTWFu
aWZlc3RJdGVtKToKLSAgICBpdGVtX3R5cGUgPSAic3R1YiIKIAorY2xhc3MgV2ViRHJpdmVyU3Bl
Y1Rlc3QoVVJMTWFuaWZlc3RJdGVtKToKKyAgICBfX3Nsb3RzX18gPSAoKQogCi1jbGFzcyBXZWJk
cml2ZXJTcGVjVGVzdChVUkxNYW5pZmVzdEl0ZW0pOgogICAgIGl0ZW1fdHlwZSA9ICJ3ZHNwZWMi
CiAKLSAgICBkZWYgX19pbml0X18oc2VsZiwgc291cmNlX2ZpbGUsIHVybCwgdXJsX2Jhc2U9Ii8i
LCB0aW1lb3V0PU5vbmUsIG1hbmlmZXN0PU5vbmUpOgotICAgICAgICBVUkxNYW5pZmVzdEl0ZW0u
X19pbml0X18oc2VsZiwgc291cmNlX2ZpbGUsIHVybCwgdXJsX2Jhc2U9dXJsX2Jhc2UsIG1hbmlm
ZXN0PW1hbmlmZXN0KQotICAgICAgICBzZWxmLnRpbWVvdXQgPSB0aW1lb3V0CisgICAgQHByb3Bl
cnR5CisgICAgZGVmIHRpbWVvdXQoc2VsZik6CisgICAgICAgICMgdHlwZTogKCkgLT4gT3B0aW9u
YWxbVGV4dF0KKyAgICAgICAgcmV0dXJuIHNlbGYuX2V4dHJhcy5nZXQoInRpbWVvdXQiKQogCiAg
ICAgZGVmIHRvX2pzb24oc2VsZik6Ci0gICAgICAgIHJ2ID0gVVJMTWFuaWZlc3RJdGVtLnRvX2pz
b24oc2VsZikKKyAgICAgICAgIyB0eXBlOiAoKSAtPiBUdXBsZVtUZXh0LCBEaWN0W1RleHQsIEFu
eV1dCisgICAgICAgIHJ2ID0gc3VwZXIoV2ViRHJpdmVyU3BlY1Rlc3QsIHNlbGYpLnRvX2pzb24o
KQogICAgICAgICBpZiBzZWxmLnRpbWVvdXQgaXMgbm90IE5vbmU6CiAgICAgICAgICAgICBydlst
MV1bInRpbWVvdXQiXSA9IHNlbGYudGltZW91dAogICAgICAgICByZXR1cm4gcnYKIAotICAgIEBj
bGFzc21ldGhvZAotICAgIGRlZiBmcm9tX2pzb24oY2xzLCBtYW5pZmVzdCwgdGVzdHNfcm9vdCwg
cGF0aCwgb2JqLCBzb3VyY2VfZmlsZXM9Tm9uZSk6Ci0gICAgICAgIHNvdXJjZV9maWxlID0gZ2V0
X3NvdXJjZV9maWxlKHNvdXJjZV9maWxlcywgdGVzdHNfcm9vdCwgbWFuaWZlc3QsIHBhdGgpCi0K
LSAgICAgICAgdXJsLCBleHRyYXMgPSBvYmoKLSAgICAgICAgcmV0dXJuIGNscyhzb3VyY2VfZmls
ZSwKLSAgICAgICAgICAgICAgICAgICB1cmwsCi0gICAgICAgICAgICAgICAgICAgdXJsX2Jhc2U9
bWFuaWZlc3QudXJsX2Jhc2UsCi0gICAgICAgICAgICAgICAgICAgdGltZW91dD1leHRyYXMuZ2V0
KCJ0aW1lb3V0IiksCi0gICAgICAgICAgICAgICAgICAgbWFuaWZlc3Q9bWFuaWZlc3QpCi0KIAog
Y2xhc3MgU3VwcG9ydEZpbGUoTWFuaWZlc3RJdGVtKToKKyAgICBfX3Nsb3RzX18gPSAoKQorCiAg
ICAgaXRlbV90eXBlID0gInN1cHBvcnQiCiAKICAgICBAcHJvcGVydHkKICAgICBkZWYgaWQoc2Vs
Zik6Ci0gICAgICAgIHJldHVybiBzZWxmLnNvdXJjZV9maWxlLnJlbF9wYXRoCisgICAgICAgICMg
dHlwZTogKCkgLT4gVGV4dAorICAgICAgICByZXR1cm4gc2VsZi5wYXRoCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL21hbmlmZXN0
L2xvZy5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvbWFuaWZlc3QvbG9nLnB5CmluZGV4IDU1ZmY2ZTg3YzlkYzAwM2UyODRiMGNlOWMzMzBhOWU1
NDk2M2ExMzIuLjllMmFkNzQwODFlNGExYjM4YjljM2MzYmE2MWQ0OWJlMmU4MTUxZmQgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
bWFuaWZlc3QvbG9nLnB5CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvbWFuaWZlc3QvbG9nLnB5CkBAIC00LDYgKzQsNyBAQCBpbXBvcnQgc3lz
CiBsb2dnZXIgPSBsb2dnaW5nLmdldExvZ2dlcigibWFuaWZlc3QiKQogCiBkZWYgc2V0dXAoKToK
KyAgICAjIHR5cGU6ICgpIC0+IE5vbmUKICAgICBsb2dnZXIuc2V0TGV2ZWwobG9nZ2luZy5ERUJV
RykKICAgICBoYW5kbGVyID0gbG9nZ2luZy5TdHJlYW1IYW5kbGVyKHN5cy5zdGRvdXQpCiAgICAg
Zm9ybWF0dGVyID0gbG9nZ2luZy5Gb3JtYXR0ZXIobG9nZ2luZy5CQVNJQ19GT1JNQVQsIE5vbmUp
CkBAIC0xMSw0ICsxMiw1IEBAIGRlZiBzZXR1cCgpOgogICAgIGxvZ2dlci5hZGRIYW5kbGVyKGhh
bmRsZXIpCiAKIGRlZiBnZXRfbG9nZ2VyKCk6CisgICAgIyB0eXBlOiAoKSAtPiBsb2dnaW5nLkxv
Z2dlcgogICAgIHJldHVybiBsb2dnZXIKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvbWFuaWZlc3QvbWFuaWZlc3QucHkgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL21hbmlmZXN0L21h
bmlmZXN0LnB5CmluZGV4IDQyYThlMWNlYjIzNjkzYTNlMTM5Y2Y2MTI5YmM4MjMyN2I3NjUxODIu
LjZmYjU5MWI5YzMxNGIwZGQwMWQ5M2ZmMTJmMzgyMGJmMjZkNGZlNzkgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvbWFuaWZlc3Qv
bWFuaWZlc3QucHkKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy9tYW5pZmVzdC9tYW5pZmVzdC5weQpAQCAtMSwxNSArMSw0MiBAQAogaW1wb3J0
IGl0ZXJ0b29scwogaW1wb3J0IGpzb24KIGltcG9ydCBvcwotZnJvbSBjb2xsZWN0aW9ucyBpbXBv
cnQgZGVmYXVsdGRpY3QKLWZyb20gc2l4IGltcG9ydCBpdGVyaXRlbXMsIGl0ZXJ2YWx1ZXMsIHZp
ZXdrZXlzLCBzdHJpbmdfdHlwZXMKK2Zyb20gY29sbGVjdGlvbnMgaW1wb3J0IE11dGFibGVNYXBw
aW5nLCBkZWZhdWx0ZGljdAorZnJvbSBzaXggaW1wb3J0IGl0ZXJpdGVtcywgaXRlcmtleXMsIGl0
ZXJ2YWx1ZXMsIHN0cmluZ190eXBlcywgYmluYXJ5X3R5cGUsIHRleHRfdHlwZQogCi1mcm9tIC5p
dGVtIGltcG9ydCBNYW51YWxUZXN0LCBXZWJkcml2ZXJTcGVjVGVzdCwgU3R1YiwgUmVmVGVzdE5v
ZGUsIFJlZlRlc3QsIFRlc3RoYXJuZXNzVGVzdCwgU3VwcG9ydEZpbGUsIENvbmZvcm1hbmNlQ2hl
Y2tlclRlc3QsIFZpc3VhbFRlc3QKK2Zyb20gLiBpbXBvcnQgdmNzCitmcm9tIC5pdGVtIGltcG9y
dCAoQ29uZm9ybWFuY2VDaGVja2VyVGVzdCwgTWFuaWZlc3RJdGVtLCBNYW51YWxUZXN0LCBSZWZU
ZXN0LCBSZWZUZXN0Tm9kZSwKKyAgICAgICAgICAgICAgICAgICBTdXBwb3J0RmlsZSwgVGVzdGhh
cm5lc3NUZXN0LCBWaXN1YWxUZXN0LCBXZWJEcml2ZXJTcGVjVGVzdCkKIGZyb20gLmxvZyBpbXBv
cnQgZ2V0X2xvZ2dlcgorZnJvbSAuc291cmNlZmlsZSBpbXBvcnQgU291cmNlRmlsZQogZnJvbSAu
dXRpbHMgaW1wb3J0IGZyb21fb3NfcGF0aCwgdG9fb3NfcGF0aAogCi0KLUNVUlJFTlRfVkVSU0lP
TiA9IDUKK01ZUFkgPSBGYWxzZQoraWYgTVlQWToKKyAgICAjIE1ZUFkgaXMgc2V0IHRvIFRydWUg
d2hlbiBydW4gdW5kZXIgTXlweS4KKyAgICBmcm9tIGxvZ2dpbmcgaW1wb3J0IExvZ2dlcgorICAg
IGZyb20gdHlwaW5nIGltcG9ydCBBbnkKKyAgICBmcm9tIHR5cGluZyBpbXBvcnQgQ29udGFpbmVy
CisgICAgZnJvbSB0eXBpbmcgaW1wb3J0IERpY3QKKyAgICBmcm9tIHR5cGluZyBpbXBvcnQgSU8K
KyAgICBmcm9tIHR5cGluZyBpbXBvcnQgSXRlcmFibGUKKyAgICBmcm9tIHR5cGluZyBpbXBvcnQg
SXRlcmF0b3IKKyAgICBmcm9tIHR5cGluZyBpbXBvcnQgTGlzdAorICAgIGZyb20gdHlwaW5nIGlt
cG9ydCBPcHRpb25hbAorICAgIGZyb20gdHlwaW5nIGltcG9ydCBTZXQKKyAgICBmcm9tIHR5cGlu
ZyBpbXBvcnQgVGV4dAorICAgIGZyb20gdHlwaW5nIGltcG9ydCBUdXBsZQorICAgIGZyb20gdHlw
aW5nIGltcG9ydCBUeXBlCisgICAgZnJvbSB0eXBpbmcgaW1wb3J0IFVuaW9uCisgICAgZnJvbSB0
eXBpbmcgaW1wb3J0IGNhc3QKKwordHJ5OgorICAgIGltcG9ydCB1anNvbgorICAgIGZhc3RfanNv
biA9IHVqc29uCitleGNlcHQgSW1wb3J0RXJyb3I6CisgICAgZmFzdF9qc29uID0ganNvbiAgIyB0
eXBlOiBpZ25vcmUKKworQ1VSUkVOVF9WRVJTSU9OID0gNgogCiAKIGNsYXNzIE1hbmlmZXN0RXJy
b3IoRXhjZXB0aW9uKToKQEAgLTIwLDM3ICs0NywyMzAgQEAgY2xhc3MgTWFuaWZlc3RWZXJzaW9u
TWlzbWF0Y2goTWFuaWZlc3RFcnJvcik6CiAgICAgcGFzcwogCiAKLWRlZiBpdGVyZmlsdGVyKGZp
bHRlcnMsIGl0ZXIpOgotICAgIGZvciBmIGluIGZpbHRlcnM6Ci0gICAgICAgIGl0ZXIgPSBmKGl0
ZXIpCi0gICAgZm9yIGl0ZW0gaW4gaXRlcjoKLSAgICAgICAgeWllbGQgaXRlbQoraXRlbV9jbGFz
c2VzID0geyJ0ZXN0aGFybmVzcyI6IFRlc3RoYXJuZXNzVGVzdCwKKyAgICAgICAgICAgICAgICAi
cmVmdGVzdCI6IFJlZlRlc3QsCisgICAgICAgICAgICAgICAgInJlZnRlc3Rfbm9kZSI6IFJlZlRl
c3ROb2RlLAorICAgICAgICAgICAgICAgICJtYW51YWwiOiBNYW51YWxUZXN0LAorICAgICAgICAg
ICAgICAgICJ3ZHNwZWMiOiBXZWJEcml2ZXJTcGVjVGVzdCwKKyAgICAgICAgICAgICAgICAiY29u
Zm9ybWFuY2VjaGVja2VyIjogQ29uZm9ybWFuY2VDaGVja2VyVGVzdCwKKyAgICAgICAgICAgICAg
ICAidmlzdWFsIjogVmlzdWFsVGVzdCwKKyAgICAgICAgICAgICAgICAic3VwcG9ydCI6IFN1cHBv
cnRGaWxlfSAgIyB0eXBlOiBEaWN0W3N0ciwgVHlwZVtNYW5pZmVzdEl0ZW1dXQorCisKK2lmIE1Z
UFk6CisgICAgVHlwZURhdGFUeXBlID0gTXV0YWJsZU1hcHBpbmdbVGV4dCwgU2V0W01hbmlmZXN0
SXRlbV1dCitlbHNlOgorICAgIFR5cGVEYXRhVHlwZSA9IE11dGFibGVNYXBwaW5nCisKK2NsYXNz
IFR5cGVEYXRhKFR5cGVEYXRhVHlwZSk6CisgICAgZGVmIF9faW5pdF9fKHNlbGYsIG1hbmlmZXN0
LCB0eXBlX2Nscyk6CisgICAgICAgICMgdHlwZTogKE1hbmlmZXN0LCBUeXBlW01hbmlmZXN0SXRl
bV0pIC0+IE5vbmUKKyAgICAgICAgIiIiRGljdC1saWtlIG9iamVjdCBjb250YWluaW5nIHRoZSBU
ZXN0SXRlbXMgZm9yIGVhY2ggdGVzdCB0eXBlLgorCisgICAgICAgIExvYWRpbmcgYW4gYWN0dWFs
IEl0ZW0gY2xhc3MgZm9yIGVhY2ggdGVzdCBpcyB1bm5lY2Vzc2FyaWx5CisgICAgICAgIHNsb3cs
IHNvIHRoaXMgY2xhc3MgYWxsb3dzIGxhenktbG9hZGluZyBvZiB0aGUgdGVzdAorICAgICAgICBp
dGVtcy4gV2hlbiB0aGUgbWFuaWZlc3QgaXMgbG9hZGVkIHdlIHN0b3JlIHRoZSByYXcganNvbgor
ICAgICAgICBjb3JyZXNwb25kaW5nIHRvIHRoZSB0ZXN0IHR5cGUsIGFuZCBvbmx5IGNyZWF0ZSBh
biBJdGVtCisgICAgICAgIHN1YmNsYXNzIHdoZW4gdGhlIHRlc3QgaXMgYWNjZXNzZWQuIEluIG9y
ZGVyIHRvIHJlbWFpbgorICAgICAgICBBUEktY29tcGF0aWJsZSB3aXRoIGNvbnN1bWVycyB0aGF0
IGRlcGVuZCBvbiBnZXR0aW5nIGFuIEl0ZW0KKyAgICAgICAgZnJvbSBpdGVyYXRpb24sIHdlIGRv
IGVnZXJseSBsb2FkIGFsbCBpdGVtcyB3aGVuIGl0ZXJhdGluZworICAgICAgICBvdmVyIHRoZSBj
bGFzcy4iIiIKKyAgICAgICAgc2VsZi5tYW5pZmVzdCA9IG1hbmlmZXN0CisgICAgICAgIHNlbGYu
dHlwZV9jbHMgPSB0eXBlX2NscworICAgICAgICBzZWxmLmpzb25fZGF0YSA9IHt9ICAjIHR5cGU6
IE9wdGlvbmFsW0RpY3RbVGV4dCwgTGlzdFtBbnldXV0KKyAgICAgICAgc2VsZi50ZXN0c19yb290
ID0gTm9uZSAgIyB0eXBlOiBPcHRpb25hbFtzdHJdCisgICAgICAgIHNlbGYuZGF0YSA9IHt9ICAj
IHR5cGU6IERpY3RbVGV4dCwgU2V0W01hbmlmZXN0SXRlbV1dCisKKyAgICBkZWYgX19nZXRpdGVt
X18oc2VsZiwga2V5KToKKyAgICAgICAgIyB0eXBlOiAoVGV4dCkgLT4gU2V0W01hbmlmZXN0SXRl
bV0KKyAgICAgICAgaWYga2V5IG5vdCBpbiBzZWxmLmRhdGEgYW5kIHNlbGYuanNvbl9kYXRhIGlz
IG5vdCBOb25lOgorICAgICAgICAgICAgc2VsZi5sb2FkKGtleSkKKyAgICAgICAgcmV0dXJuIHNl
bGYuZGF0YVtrZXldCisKKyAgICBkZWYgX19ub256ZXJvX18oc2VsZik6CisgICAgICAgICMgdHlw
ZTogKCkgLT4gYm9vbAorICAgICAgICByZXR1cm4gYm9vbChzZWxmLmRhdGEpIG9yIGJvb2woc2Vs
Zi5qc29uX2RhdGEpCisKKyAgICBkZWYgX19sZW5fXyhzZWxmKToKKyAgICAgICAgIyB0eXBlOiAo
KSAtPiBpbnQKKyAgICAgICAgcnYgPSBsZW4oc2VsZi5kYXRhKQorICAgICAgICBpZiBzZWxmLmpz
b25fZGF0YSBpcyBub3QgTm9uZToKKyAgICAgICAgICAgIHJ2ICs9IGxlbihzZWxmLmpzb25fZGF0
YSkKKyAgICAgICAgcmV0dXJuIHJ2CisKKyAgICBkZWYgX19kZWxpdGVtX18oc2VsZiwga2V5KToK
KyAgICAgICAgIyB0eXBlOiAoVGV4dCkgLT4gTm9uZQorICAgICAgICBpZiBrZXkgaW4gc2VsZi5k
YXRhOgorICAgICAgICAgICAgZGVsIHNlbGYuZGF0YVtrZXldCisgICAgICAgIGVsaWYgc2VsZi5q
c29uX2RhdGEgaXMgbm90IE5vbmU6CisgICAgICAgICAgICBkZWwgc2VsZi5qc29uX2RhdGFbZnJv
bV9vc19wYXRoKGtleSldCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICByYWlzZSBLZXlFcnJv
cgorCisgICAgZGVmIF9fc2V0aXRlbV9fKHNlbGYsIGtleSwgdmFsdWUpOgorICAgICAgICAjIHR5
cGU6IChUZXh0LCBTZXRbTWFuaWZlc3RJdGVtXSkgLT4gTm9uZQorICAgICAgICBpZiBzZWxmLmpz
b25fZGF0YSBpcyBub3QgTm9uZToKKyAgICAgICAgICAgIHBhdGggPSBmcm9tX29zX3BhdGgoa2V5
KQorICAgICAgICAgICAgaWYgcGF0aCBpbiBzZWxmLmpzb25fZGF0YToKKyAgICAgICAgICAgICAg
ICBkZWwgc2VsZi5qc29uX2RhdGFbcGF0aF0KKyAgICAgICAgc2VsZi5kYXRhW2tleV0gPSB2YWx1
ZQorCisgICAgZGVmIF9fY29udGFpbnNfXyhzZWxmLCBrZXkpOgorICAgICAgICAjIHR5cGU6IChB
bnkpIC0+IGJvb2wKKyAgICAgICAgc2VsZi5sb2FkX2FsbCgpCisgICAgICAgIHJldHVybiBrZXkg
aW4gc2VsZi5kYXRhCisKKyAgICBkZWYgX19pdGVyX18oc2VsZik6CisgICAgICAgICMgdHlwZTog
KCkgLT4gSXRlcmF0b3JbVGV4dF0KKyAgICAgICAgc2VsZi5sb2FkX2FsbCgpCisgICAgICAgIHJl
dHVybiBzZWxmLmRhdGEuX19pdGVyX18oKQorCisgICAgZGVmIGl0ZXJ2YWx1ZXMoc2VsZik6Cisg
ICAgICAgICMgdHlwZTogKCkgLT4gSXRlcmF0b3JbU2V0W01hbmlmZXN0SXRlbV1dCisgICAgICAg
IHNlbGYubG9hZF9hbGwoKQorICAgICAgICByZXR1cm4gaXRlcnZhbHVlcyhzZWxmLmRhdGEpCisK
KyAgICBkZWYgaXRlcml0ZW1zKHNlbGYpOgorICAgICAgICAjIHR5cGU6ICgpIC0+IEl0ZXJhdG9y
W1R1cGxlW1RleHQsIFNldFtNYW5pZmVzdEl0ZW1dXV0KKyAgICAgICAgc2VsZi5sb2FkX2FsbCgp
CisgICAgICAgIHJldHVybiBpdGVyaXRlbXMoc2VsZi5kYXRhKQorCisgICAgZGVmIHZhbHVlcyhz
ZWxmKToKKyAgICAgICAgIyB0eXBlOiAoKSAtPiBMaXN0W1NldFtNYW5pZmVzdEl0ZW1dXQorICAg
ICAgICByZXR1cm4gbGlzdChzZWxmLml0ZXJ2YWx1ZXMoKSkKKworICAgIGRlZiBpdGVtcyhzZWxm
KToKKyAgICAgICAgIyB0eXBlOiAoKSAtPiBMaXN0W1R1cGxlW1RleHQsIFNldFtNYW5pZmVzdEl0
ZW1dXV0KKyAgICAgICAgcmV0dXJuIGxpc3Qoc2VsZi5pdGVyaXRlbXMoKSkKKworICAgIGRlZiBs
b2FkKHNlbGYsIGtleSk6CisgICAgICAgICMgdHlwZTogKFRleHQpIC0+IE5vbmUKKyAgICAgICAg
IiIiTG9hZCBhIHNwZWNpZmljIEl0ZW0gZ2l2ZW4gYSBwYXRoIiIiCisgICAgICAgIGlmIHNlbGYu
anNvbl9kYXRhIGlzIG5vdCBOb25lOgorICAgICAgICAgICAgZGF0YSA9IHNldCgpCisgICAgICAg
ICAgICBwYXRoID0gZnJvbV9vc19wYXRoKGtleSkKKyAgICAgICAgICAgIGZvciB0ZXN0IGluIHNl
bGYuanNvbl9kYXRhLmdldChwYXRoLCBbXSk6CisgICAgICAgICAgICAgICAgbWFuaWZlc3RfaXRl
bSA9IHNlbGYudHlwZV9jbHMuZnJvbV9qc29uKHNlbGYubWFuaWZlc3QsIHBhdGgsIHRlc3QpCisg
ICAgICAgICAgICAgICAgZGF0YS5hZGQobWFuaWZlc3RfaXRlbSkKKyAgICAgICAgICAgIHRyeToK
KyAgICAgICAgICAgICAgICBkZWwgc2VsZi5qc29uX2RhdGFbcGF0aF0KKyAgICAgICAgICAgIGV4
Y2VwdCBLZXlFcnJvcjoKKyAgICAgICAgICAgICAgICBwYXNzCisgICAgICAgICAgICBzZWxmLmRh
dGFba2V5XSA9IGRhdGEKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJy
b3IKKworICAgIGRlZiBsb2FkX2FsbChzZWxmKToKKyAgICAgICAgIyB0eXBlOiAoKSAtPiBOb25l
CisgICAgICAgICIiIkxvYWQgYWxsIHRlc3QgaXRlbXMgaW4gdGhpcyBjbGFzcyIiIgorICAgICAg
ICBpZiBzZWxmLmpzb25fZGF0YSBpcyBub3QgTm9uZToKKyAgICAgICAgICAgIGZvciBwYXRoLCB2
YWx1ZSBpbiBpdGVyaXRlbXMoc2VsZi5qc29uX2RhdGEpOgorICAgICAgICAgICAgICAgIGtleSA9
IHRvX29zX3BhdGgocGF0aCkKKyAgICAgICAgICAgICAgICBpZiBrZXkgaW4gc2VsZi5kYXRhOgor
ICAgICAgICAgICAgICAgICAgICBjb250aW51ZQorICAgICAgICAgICAgICAgIGRhdGEgPSBzZXQo
KQorICAgICAgICAgICAgICAgIGZvciB0ZXN0IGluIHNlbGYuanNvbl9kYXRhLmdldChwYXRoLCBb
XSk6CisgICAgICAgICAgICAgICAgICAgIG1hbmlmZXN0X2l0ZW0gPSBzZWxmLnR5cGVfY2xzLmZy
b21fanNvbihzZWxmLm1hbmlmZXN0LCBwYXRoLCB0ZXN0KQorICAgICAgICAgICAgICAgICAgICBk
YXRhLmFkZChtYW5pZmVzdF9pdGVtKQorICAgICAgICAgICAgICAgIHNlbGYuZGF0YVtrZXldID0g
ZGF0YQorICAgICAgICAgICAgc2VsZi5qc29uX2RhdGEgPSBOb25lCisKKyAgICBkZWYgc2V0X2pz
b24oc2VsZiwgdGVzdHNfcm9vdCwgZGF0YSk6CisgICAgICAgICMgdHlwZTogKHN0ciwgRGljdFtU
ZXh0LCBBbnldKSAtPiBOb25lCisgICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKGRhdGEsIGRpY3Qp
OgorICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigiR290IGEgJXMgZXhwZWN0ZWQgYSBkaWN0
IiAlICh0eXBlKGRhdGEpKSkKKyAgICAgICAgc2VsZi50ZXN0c19yb290ID0gdGVzdHNfcm9vdAor
ICAgICAgICBzZWxmLmpzb25fZGF0YSA9IGRhdGEKKworICAgIGRlZiB0b19qc29uKHNlbGYpOgor
ICAgICAgICAjIHR5cGU6ICgpIC0+IERpY3RbVGV4dCwgQW55XQorICAgICAgICBkYXRhID0gewor
ICAgICAgICAgICAgZnJvbV9vc19wYXRoKHBhdGgpOgorICAgICAgICAgICAgW3QgZm9yIHQgaW4g
c29ydGVkKHRlc3QudG9fanNvbigpIGZvciB0ZXN0IGluIHRlc3RzKV0KKyAgICAgICAgICAgIGZv
ciBwYXRoLCB0ZXN0cyBpbiBpdGVyaXRlbXMoc2VsZi5kYXRhKQorICAgICAgICB9CisKKyAgICAg
ICAgaWYgc2VsZi5qc29uX2RhdGEgaXMgbm90IE5vbmU6CisgICAgICAgICAgICBpZiBub3QgZGF0
YToKKyAgICAgICAgICAgICAgICAjIGF2b2lkIGNvcHlpbmcgaWYgdGhlcmUncyBub3RoaW5nIGhl
cmUgeWV0CisgICAgICAgICAgICAgICAgcmV0dXJuIHNlbGYuanNvbl9kYXRhCisgICAgICAgICAg
ICBkYXRhLnVwZGF0ZShzZWxmLmpzb25fZGF0YSkKKworICAgICAgICByZXR1cm4gZGF0YQorCisg
ICAgZGVmIHBhdGhzKHNlbGYpOgorICAgICAgICAjIHR5cGU6ICgpIC0+IFNldFtUZXh0XQorICAg
ICAgICAiIiJHZXQgYSBsaXN0IG9mIGFsbCBwYXRocyBjb250YWluaW5nIGl0ZW1zIG9mIHRoaXMg
dHlwZSwKKyAgICAgICAgd2l0aG91dCBhY3R1YWxseSBjb25zdHJ1Y3RpbmcgYWxsIHRoZSBpdGVt
cyIiIgorICAgICAgICBydiA9IHNldChpdGVya2V5cyhzZWxmLmRhdGEpKQorICAgICAgICBpZiBz
ZWxmLmpzb25fZGF0YToKKyAgICAgICAgICAgIHJ2IHw9IHt0b19vc19wYXRoKGl0ZW0pIGZvciBp
dGVtIGluIGl0ZXJrZXlzKHNlbGYuanNvbl9kYXRhKX0KKyAgICAgICAgcmV0dXJuIHJ2CisKKwor
aWYgTVlQWToKKyAgICBNYW5pZmVzdERhdGFUeXBlID0gRGljdFtBbnksIFR5cGVEYXRhXQorZWxz
ZToKKyAgICBNYW5pZmVzdERhdGFUeXBlID0gZGljdAorCitjbGFzcyBNYW5pZmVzdERhdGEoTWFu
aWZlc3REYXRhVHlwZSk6CisgICAgZGVmIF9faW5pdF9fKHNlbGYsIG1hbmlmZXN0KToKKyAgICAg
ICAgIyB0eXBlOiAoTWFuaWZlc3QpIC0+IE5vbmUKKyAgICAgICAgIiIiRGljdGlvbmFyeSBzdWJj
bGFzcyBjb250YWluaW5nIGEgVHlwZURhdGEgaW5zdGFuY2UgZm9yIGVhY2ggdGVzdCB0eXBlLAor
ICAgICAgICBrZXllZCBieSB0eXBlIG5hbWUiIiIKKyAgICAgICAgc2VsZi5pbml0aWFsaXplZCA9
IEZhbHNlICAjIHR5cGU6IGJvb2wKKyAgICAgICAgZm9yIGtleSwgdmFsdWUgaW4gaXRlcml0ZW1z
KGl0ZW1fY2xhc3Nlcyk6CisgICAgICAgICAgICBzZWxmW2tleV0gPSBUeXBlRGF0YShtYW5pZmVz
dCwgdmFsdWUpCisgICAgICAgIHNlbGYuaW5pdGlhbGl6ZWQgPSBUcnVlCisgICAgICAgIHNlbGYu
anNvbl9vYmogPSBOb25lICAjIHR5cGU6IE5vbmUKKworICAgIGRlZiBfX3NldGl0ZW1fXyhzZWxm
LCBrZXksIHZhbHVlKToKKyAgICAgICAgIyB0eXBlOiAoc3RyLCBUeXBlRGF0YSkgLT4gTm9uZQor
ICAgICAgICBpZiBzZWxmLmluaXRpYWxpemVkOgorICAgICAgICAgICAgcmFpc2UgQXR0cmlidXRl
RXJyb3IKKyAgICAgICAgZGljdC5fX3NldGl0ZW1fXyhzZWxmLCBrZXksIHZhbHVlKQorCisgICAg
ZGVmIHBhdGhzKHNlbGYpOgorICAgICAgICAjIHR5cGU6ICgpIC0+IFNldFtUZXh0XQorICAgICAg
ICAiIiJHZXQgYSBsaXN0IG9mIGFsbCBwYXRocyBjb250YWluaW5nIHRlc3QgaXRlbXMKKyAgICAg
ICAgd2l0aG91dCBhY3R1YWxseSBjb25zdHJ1Y3RpbmcgYWxsIHRoZSBpdGVtcyIiIgorICAgICAg
ICBydiA9IHNldCgpICAjIHR5cGU6IFNldFtUZXh0XQorICAgICAgICBmb3IgaXRlbV9kYXRhIGlu
IGl0ZXJ2YWx1ZXMoc2VsZik6CisgICAgICAgICAgICBydiB8PSBzZXQoaXRlbV9kYXRhLnBhdGhz
KCkpCisgICAgICAgIHJldHVybiBydgogCiAKIGNsYXNzIE1hbmlmZXN0KG9iamVjdCk6Ci0gICAg
ZGVmIF9faW5pdF9fKHNlbGYsIHVybF9iYXNlPSIvIik6CisgICAgZGVmIF9faW5pdF9fKHNlbGYs
IHRlc3RzX3Jvb3Q9Tm9uZSwgdXJsX2Jhc2U9Ii8iKToKKyAgICAgICAgIyB0eXBlOiAoT3B0aW9u
YWxbc3RyXSwgVGV4dCkgLT4gTm9uZQogICAgICAgICBhc3NlcnQgdXJsX2Jhc2UgaXMgbm90IE5v
bmUKLSAgICAgICAgc2VsZi5fcGF0aF9oYXNoID0ge30KLSAgICAgICAgc2VsZi5fZGF0YSA9IGRl
ZmF1bHRkaWN0KGRpY3QpCi0gICAgICAgIHNlbGYuX3JlZnRlc3Rfbm9kZXNfYnlfdXJsID0gTm9u
ZQotICAgICAgICBzZWxmLnVybF9iYXNlID0gdXJsX2Jhc2UKKyAgICAgICAgc2VsZi5fcGF0aF9o
YXNoID0ge30gICMgdHlwZTogRGljdFtUZXh0LCBUdXBsZVtUZXh0LCBUZXh0XV0KKyAgICAgICAg
c2VsZi5fZGF0YSA9IE1hbmlmZXN0RGF0YShzZWxmKSAgIyB0eXBlOiBNYW5pZmVzdERhdGEKKyAg
ICAgICAgc2VsZi5fcmVmdGVzdF9ub2Rlc19ieV91cmwgPSBOb25lICAjIHR5cGU6IE9wdGlvbmFs
W0RpY3RbVGV4dCwgVW5pb25bUmVmVGVzdCwgUmVmVGVzdE5vZGVdXV0KKyAgICAgICAgc2VsZi50
ZXN0c19yb290ID0gdGVzdHNfcm9vdCAgIyB0eXBlOiBPcHRpb25hbFtzdHJdCisgICAgICAgIHNl
bGYudXJsX2Jhc2UgPSB1cmxfYmFzZSAgIyB0eXBlOiBUZXh0CiAKICAgICBkZWYgX19pdGVyX18o
c2VsZik6CisgICAgICAgICMgdHlwZTogKCkgLT4gSXRlcmF0b3JbVHVwbGVbc3RyLCBUZXh0LCBT
ZXRbTWFuaWZlc3RJdGVtXV1dCiAgICAgICAgIHJldHVybiBzZWxmLml0ZXJ0eXBlcygpCiAKICAg
ICBkZWYgaXRlcnR5cGVzKHNlbGYsICp0eXBlcyk6Ci0gICAgICAgIGlmIG5vdCB0eXBlczoKLSAg
ICAgICAgICAgIHR5cGVzID0gc29ydGVkKHNlbGYuX2RhdGEua2V5cygpKQotICAgICAgICBmb3Ig
aXRlbV90eXBlIGluIHR5cGVzOgotICAgICAgICAgICAgZm9yIHBhdGgsIHRlc3RzIGluIHNvcnRl
ZChpdGVyaXRlbXMoc2VsZi5fZGF0YVtpdGVtX3R5cGVdKSk6CisgICAgICAgICMgdHlwZTogKCpz
dHIpIC0+IEl0ZXJhdG9yW1R1cGxlW3N0ciwgVGV4dCwgU2V0W01hbmlmZXN0SXRlbV1dXQorICAg
ICAgICBmb3IgaXRlbV90eXBlIGluICh0eXBlcyBvciBzb3J0ZWQoc2VsZi5fZGF0YS5rZXlzKCkp
KToKKyAgICAgICAgICAgIGZvciBwYXRoIGluIHNvcnRlZChzZWxmLl9kYXRhW2l0ZW1fdHlwZV0p
OgorICAgICAgICAgICAgICAgIHRlc3RzID0gc2VsZi5fZGF0YVtpdGVtX3R5cGVdW3BhdGhdCiAg
ICAgICAgICAgICAgICAgeWllbGQgaXRlbV90eXBlLCBwYXRoLCB0ZXN0cwogCiAgICAgZGVmIGl0
ZXJwYXRoKHNlbGYsIHBhdGgpOgorICAgICAgICAjIHR5cGU6IChUZXh0KSAtPiBJdGVyYXRvcltN
YW5pZmVzdEl0ZW1dCiAgICAgICAgIGZvciB0eXBlX3Rlc3RzIGluIHNlbGYuX2RhdGEudmFsdWVz
KCk6Ci0gICAgICAgICAgICBmb3IgdGVzdCBpbiB0eXBlX3Rlc3RzLmdldChwYXRoLCBzZXQoKSk6
CisgICAgICAgICAgICBpID0gdHlwZV90ZXN0cy5nZXQocGF0aCwgc2V0KCkpCisgICAgICAgICAg
ICBhc3NlcnQgaSBpcyBub3QgTm9uZQorICAgICAgICAgICAgZm9yIHRlc3QgaW4gaToKICAgICAg
ICAgICAgICAgICB5aWVsZCB0ZXN0CiAKICAgICBkZWYgaXRlcmRpcihzZWxmLCBkaXJfbmFtZSk6
CisgICAgICAgICMgdHlwZTogKFRleHQpIC0+IEl0ZXJhdG9yW01hbmlmZXN0SXRlbV0KICAgICAg
ICAgaWYgbm90IGRpcl9uYW1lLmVuZHN3aXRoKG9zLnBhdGguc2VwKToKICAgICAgICAgICAgIGRp
cl9uYW1lID0gZGlyX25hbWUgKyBvcy5wYXRoLnNlcAogICAgICAgICBmb3IgdHlwZV90ZXN0cyBp
biBzZWxmLl9kYXRhLnZhbHVlcygpOgpAQCAtNjEsMTk2ICsyODEsMzE2IEBAIGNsYXNzIE1hbmlm
ZXN0KG9iamVjdCk6CiAKICAgICBAcHJvcGVydHkKICAgICBkZWYgcmVmdGVzdF9ub2Rlc19ieV91
cmwoc2VsZik6CisgICAgICAgICMgdHlwZTogKCkgLT4gRGljdFtUZXh0LCBVbmlvbltSZWZUZXN0
LCBSZWZUZXN0Tm9kZV1dCiAgICAgICAgIGlmIHNlbGYuX3JlZnRlc3Rfbm9kZXNfYnlfdXJsIGlz
IE5vbmU6CiAgICAgICAgICAgICBieV91cmwgPSB7fQotICAgICAgICAgICAgZm9yIHBhdGgsIG5v
ZGVzIGluIGl0ZXJ0b29scy5jaGFpbihpdGVyaXRlbXMoc2VsZi5fZGF0YS5nZXQoInJlZnRlc3Qi
LCB7fSkpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBp
dGVyaXRlbXMoc2VsZi5fZGF0YS5nZXQoInJlZnRlc3Rfbm9kZSIsIHt9KSkpOgorICAgICAgICAg
ICAgZm9yIHBhdGgsIG5vZGVzIGluIGl0ZXJ0b29scy5jaGFpbihpdGVyaXRlbXMoc2VsZi5fZGF0
YVsicmVmdGVzdCJdKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgaXRlcml0ZW1zKHNlbGYuX2RhdGFbInJlZnRlc3Rfbm9kZSJdKSk6CiAgICAgICAgICAg
ICAgICAgZm9yIG5vZGUgaW4gbm9kZXM6CisgICAgICAgICAgICAgICAgICAgIGFzc2VydCBpc2lu
c3RhbmNlKG5vZGUsIChSZWZUZXN0LCBSZWZUZXN0Tm9kZSkpCiAgICAgICAgICAgICAgICAgICAg
IGJ5X3VybFtub2RlLnVybF0gPSBub2RlCiAgICAgICAgICAgICBzZWxmLl9yZWZ0ZXN0X25vZGVz
X2J5X3VybCA9IGJ5X3VybAogICAgICAgICByZXR1cm4gc2VsZi5fcmVmdGVzdF9ub2Rlc19ieV91
cmwKIAogICAgIGRlZiBnZXRfcmVmZXJlbmNlKHNlbGYsIHVybCk6CisgICAgICAgICMgdHlwZTog
KFRleHQpIC0+IE9wdGlvbmFsW01hbmlmZXN0SXRlbV0KICAgICAgICAgcmV0dXJuIHNlbGYucmVm
dGVzdF9ub2Rlc19ieV91cmwuZ2V0KHVybCkKIAogICAgIGRlZiB1cGRhdGUoc2VsZiwgdHJlZSk6
Ci0gICAgICAgIG5ld19kYXRhID0gZGVmYXVsdGRpY3QoZGljdCkKLSAgICAgICAgbmV3X2hhc2hl
cyA9IHt9CisgICAgICAgICMgdHlwZTogKEl0ZXJhYmxlW1R1cGxlW1VuaW9uW1NvdXJjZUZpbGUs
IGJ5dGVzXSwgYm9vbF1dKSAtPiBib29sCisgICAgICAgICIiIlVwZGF0ZSB0aGUgbWFuaWZlc3Qg
Z2l2ZW4gYW4gaXRlcmFibGUgb2YgaXRlbXMgdGhhdCBtYWtlIHVwIHRoZSB1cGRhdGVkIG1hbmlm
ZXN0LgogCi0gICAgICAgIHJlZnRlc3Rfbm9kZXMgPSBbXQotICAgICAgICBvbGRfZmlsZXMgPSBk
ZWZhdWx0ZGljdChzZXQsIHtrOiBzZXQodmlld2tleXModikpIGZvciBrLCB2IGluIGl0ZXJpdGVt
cyhzZWxmLl9kYXRhKX0pCisgICAgICAgIFRoZSBpdGVyYWJsZSBtdXN0IGVpdGhlciBnZW5lcmF0
ZSB0dXBsZXMgb2YgdGhlIGZvcm0gKFNvdXJjZUZpbGUsIFRydWUpIGZvciBwYXRocworICAgICAg
ICB0aGF0IGFyZSB0byBiZSB1cGRhdGVkLCBvciAocGF0aCwgRmFsc2UpIGZvciBpdGVtcyB0aGF0
IGFyZSBub3QgdG8gYmUgdXBkYXRlZC4gVGhpcworICAgICAgICB1bnVzdWFsIEFQSSBpcyBkZXNp
Z25lZCBhcyBhbiBvcHRpbWlzdGFpb24gbWVhbmluZyB0aGF0IFNvdXJjZUZpbGUgaXRlbXMgbmVl
ZCBub3QgYmUKKyAgICAgICAgY29uc3RydWN0ZWQgaW4gdGhlIGNhc2Ugd2UgYXJlIG5vdCB1cGRh
dGluZyBhIHBhdGgsIGJ1dCB0aGUgYWJzZW5jZSBvZiBhbiBpdGVtIGZyb20KKyAgICAgICAgdGhl
IGl0ZXJhdG9yIG1heSBiZSB1c2VkIHRvIHJlbW92ZSBkZWZ1bmN0IGVudHJpZXMgZnJvbSB0aGUg
bWFuaWZlc3QuIiIiCisgICAgICAgIGFsbF9yZWZ0ZXN0X25vZGVzID0gW10gICMgdHlwZTogTGlz
dFtUdXBsZVtNYW5pZmVzdEl0ZW0sIFRleHRdXQorICAgICAgICBzZWVuX2ZpbGVzID0gc2V0KCkg
ICMgdHlwZTogU2V0W1RleHRdCiAKICAgICAgICAgY2hhbmdlZCA9IEZhbHNlCiAgICAgICAgIHJl
ZnRlc3RfY2hhbmdlcyA9IEZhbHNlCiAKLSAgICAgICAgZm9yIHNvdXJjZV9maWxlIGluIHRyZWU6
Ci0gICAgICAgICAgICByZWxfcGF0aCA9IHNvdXJjZV9maWxlLnJlbF9wYXRoCi0gICAgICAgICAg
ICBmaWxlX2hhc2ggPSBzb3VyY2VfZmlsZS5oYXNoCi0KLSAgICAgICAgICAgIGlzX25ldyA9IHJl
bF9wYXRoIG5vdCBpbiBzZWxmLl9wYXRoX2hhc2gKLSAgICAgICAgICAgIGhhc2hfY2hhbmdlZCA9
IEZhbHNlCi0KLSAgICAgICAgICAgIGlmIG5vdCBpc19uZXc6Ci0gICAgICAgICAgICAgICAgb2xk
X2hhc2gsIG9sZF90eXBlID0gc2VsZi5fcGF0aF9oYXNoW3JlbF9wYXRoXQotICAgICAgICAgICAg
ICAgIG9sZF9maWxlc1tvbGRfdHlwZV0ucmVtb3ZlKHJlbF9wYXRoKQotICAgICAgICAgICAgICAg
IGlmIG9sZF9oYXNoICE9IGZpbGVfaGFzaDoKLSAgICAgICAgICAgICAgICAgICAgbmV3X3R5cGUs
IG1hbmlmZXN0X2l0ZW1zID0gc291cmNlX2ZpbGUubWFuaWZlc3RfaXRlbXMoKQotICAgICAgICAg
ICAgICAgICAgICBoYXNoX2NoYW5nZWQgPSBUcnVlCi0gICAgICAgICAgICAgICAgZWxzZToKLSAg
ICAgICAgICAgICAgICAgICAgbmV3X3R5cGUsIG1hbmlmZXN0X2l0ZW1zID0gb2xkX3R5cGUsIHNl
bGYuX2RhdGFbb2xkX3R5cGVdW3JlbF9wYXRoXQotICAgICAgICAgICAgICAgIGlmIG9sZF90eXBl
IGluICgicmVmdGVzdCIsICJyZWZ0ZXN0X25vZGUiKSBhbmQgbmV3X3R5cGUgIT0gb2xkX3R5cGU6
Ci0gICAgICAgICAgICAgICAgICAgIHJlZnRlc3RfY2hhbmdlcyA9IFRydWUKKyAgICAgICAgIyBD
cmVhdGUgbG9jYWwgdmFyaWFibGUgcmVmZXJlbmNlcyB0byB0aGVzZSBkaWN0cyBzbyB3ZSBhdm9p
ZCB0aGUKKyAgICAgICAgIyBhdHRyaWJ1dGUgYWNjZXNzIGluIHRoZSBob3QgbG9vcCBiZWxvdwor
ICAgICAgICBwYXRoX2hhc2ggPSBzZWxmLl9wYXRoX2hhc2ggICMgdHlwZTogRGljdFtUZXh0LCBU
dXBsZVtUZXh0LCBUZXh0XV0KKyAgICAgICAgZGF0YSA9IHNlbGYuX2RhdGEKKworICAgICAgICBw
cmV2X2ZpbGVzID0gZGF0YS5wYXRocygpICAjIHR5cGU6IFNldFtUZXh0XQorCisgICAgICAgIHJl
ZnRlc3RfdHlwZXMgPSAoInJlZnRlc3QiLCAicmVmdGVzdF9ub2RlIikKKworICAgICAgICBmb3Ig
c291cmNlX2ZpbGUsIHVwZGF0ZSBpbiB0cmVlOgorICAgICAgICAgICAgaWYgbm90IHVwZGF0ZToK
KyAgICAgICAgICAgICAgICBhc3NlcnQgaXNpbnN0YW5jZShzb3VyY2VfZmlsZSwgKGJpbmFyeV90
eXBlLCB0ZXh0X3R5cGUpKQorICAgICAgICAgICAgICAgIHJlbF9wYXRoID0gc291cmNlX2ZpbGUg
ICMgdHlwZTogVGV4dAorICAgICAgICAgICAgICAgIHNlZW5fZmlsZXMuYWRkKHJlbF9wYXRoKQor
ICAgICAgICAgICAgICAgIGFzc2VydCByZWxfcGF0aCBpbiBwYXRoX2hhc2gKKyAgICAgICAgICAg
ICAgICBvbGRfaGFzaCwgb2xkX3R5cGUgPSBwYXRoX2hhc2hbcmVsX3BhdGhdICAjIHR5cGU6IFR1
cGxlW1RleHQsIFRleHRdCisgICAgICAgICAgICAgICAgaWYgb2xkX3R5cGUgaW4gcmVmdGVzdF90
eXBlczoKKyAgICAgICAgICAgICAgICAgICAgbWFuaWZlc3RfaXRlbXMgPSBkYXRhW29sZF90eXBl
XVtyZWxfcGF0aF0gICMgdHlwZTogSXRlcmFibGVbTWFuaWZlc3RJdGVtXQorICAgICAgICAgICAg
ICAgICAgICBhbGxfcmVmdGVzdF9ub2Rlcy5leHRlbmQoKGl0ZW0sIG9sZF9oYXNoKSBmb3IgaXRl
bSBpbiBtYW5pZmVzdF9pdGVtcykKICAgICAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAgICAg
bmV3X3R5cGUsIG1hbmlmZXN0X2l0ZW1zID0gc291cmNlX2ZpbGUubWFuaWZlc3RfaXRlbXMoKQot
Ci0gICAgICAgICAgICBpZiBuZXdfdHlwZSBpbiAoInJlZnRlc3QiLCAicmVmdGVzdF9ub2RlIik6
Ci0gICAgICAgICAgICAgICAgcmVmdGVzdF9ub2Rlcy5leHRlbmQobWFuaWZlc3RfaXRlbXMpCi0g
ICAgICAgICAgICAgICAgaWYgaXNfbmV3IG9yIGhhc2hfY2hhbmdlZDoKLSAgICAgICAgICAgICAg
ICAgICAgcmVmdGVzdF9jaGFuZ2VzID0gVHJ1ZQotICAgICAgICAgICAgZWxpZiBuZXdfdHlwZToK
LSAgICAgICAgICAgICAgICBuZXdfZGF0YVtuZXdfdHlwZV1bcmVsX3BhdGhdID0gc2V0KG1hbmlm
ZXN0X2l0ZW1zKQotCi0gICAgICAgICAgICBuZXdfaGFzaGVzW3JlbF9wYXRoXSA9IChmaWxlX2hh
c2gsIG5ld190eXBlKQorICAgICAgICAgICAgICAgIGFzc2VydCBub3QgaXNpbnN0YW5jZShzb3Vy
Y2VfZmlsZSwgYnl0ZXMpCisgICAgICAgICAgICAgICAgcmVsX3BhdGggPSBzb3VyY2VfZmlsZS5y
ZWxfcGF0aAorICAgICAgICAgICAgICAgIHNlZW5fZmlsZXMuYWRkKHJlbF9wYXRoKQorCisgICAg
ICAgICAgICAgICAgZmlsZV9oYXNoID0gc291cmNlX2ZpbGUuaGFzaCAgIyB0eXBlOiBUZXh0CisK
KyAgICAgICAgICAgICAgICBpc19uZXcgPSByZWxfcGF0aCBub3QgaW4gcGF0aF9oYXNoICAjIHR5
cGU6IGJvb2wKKyAgICAgICAgICAgICAgICBoYXNoX2NoYW5nZWQgPSBGYWxzZSAgIyB0eXBlOiBi
b29sCisKKyAgICAgICAgICAgICAgICBpZiBub3QgaXNfbmV3OgorICAgICAgICAgICAgICAgICAg
ICBvbGRfaGFzaCwgb2xkX3R5cGUgPSBwYXRoX2hhc2hbcmVsX3BhdGhdCisgICAgICAgICAgICAg
ICAgICAgIGlmIG9sZF9oYXNoICE9IGZpbGVfaGFzaDoKKyAgICAgICAgICAgICAgICAgICAgICAg
IG5ld190eXBlLCBtYW5pZmVzdF9pdGVtcyA9IHNvdXJjZV9maWxlLm1hbmlmZXN0X2l0ZW1zKCkK
KyAgICAgICAgICAgICAgICAgICAgICAgIGhhc2hfY2hhbmdlZCA9IFRydWUKKyAgICAgICAgICAg
ICAgICAgICAgICAgIGlmIG5ld190eXBlICE9IG9sZF90eXBlOgorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGRlbCBkYXRhW29sZF90eXBlXVtyZWxfcGF0aF0KKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBpZiBvbGRfdHlwZSBpbiByZWZ0ZXN0X3R5cGVzOgorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICByZWZ0ZXN0X2NoYW5nZXMgPSBUcnVlCisgICAgICAgICAgICAgICAg
ICAgIGVsc2U6CisgICAgICAgICAgICAgICAgICAgICAgICBuZXdfdHlwZSA9IG9sZF90eXBlCisg
ICAgICAgICAgICAgICAgICAgICAgICBpZiBvbGRfdHlwZSBpbiByZWZ0ZXN0X3R5cGVzOgorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIG1hbmlmZXN0X2l0ZW1zID0gZGF0YVtvbGRfdHlwZV1b
cmVsX3BhdGhdCisgICAgICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICAgICAgbmV3
X3R5cGUsIG1hbmlmZXN0X2l0ZW1zID0gc291cmNlX2ZpbGUubWFuaWZlc3RfaXRlbXMoKQogCi0g
ICAgICAgICAgICBpZiBpc19uZXcgb3IgaGFzaF9jaGFuZ2VkOgotICAgICAgICAgICAgICAgIGNo
YW5nZWQgPSBUcnVlCisgICAgICAgICAgICAgICAgaWYgbmV3X3R5cGUgaW4gcmVmdGVzdF90eXBl
czoKKyAgICAgICAgICAgICAgICAgICAgYWxsX3JlZnRlc3Rfbm9kZXMuZXh0ZW5kKChpdGVtLCBm
aWxlX2hhc2gpIGZvciBpdGVtIGluIG1hbmlmZXN0X2l0ZW1zKQorICAgICAgICAgICAgICAgICAg
ICBpZiBpc19uZXcgb3IgaGFzaF9jaGFuZ2VkOgorICAgICAgICAgICAgICAgICAgICAgICAgcmVm
dGVzdF9jaGFuZ2VzID0gVHJ1ZQorICAgICAgICAgICAgICAgIGVsaWYgaXNfbmV3IG9yIGhhc2hf
Y2hhbmdlZDoKKyAgICAgICAgICAgICAgICAgICAgZGF0YVtuZXdfdHlwZV1bcmVsX3BhdGhdID0g
c2V0KG1hbmlmZXN0X2l0ZW1zKQogCi0gICAgICAgIGlmIHJlZnRlc3RfY2hhbmdlcyBvciBvbGRf
ZmlsZXNbInJlZnRlc3QiXSBvciBvbGRfZmlsZXNbInJlZnRlc3Rfbm9kZSJdOgotICAgICAgICAg
ICAgcmVmdGVzdHMsIHJlZnRlc3Rfbm9kZXMsIGNoYW5nZWRfaGFzaGVzID0gc2VsZi5fY29tcHV0
ZV9yZWZ0ZXN0cyhyZWZ0ZXN0X25vZGVzKQotICAgICAgICAgICAgbmV3X2RhdGFbInJlZnRlc3Qi
XSA9IHJlZnRlc3RzCi0gICAgICAgICAgICBuZXdfZGF0YVsicmVmdGVzdF9ub2RlIl0gPSByZWZ0
ZXN0X25vZGVzCi0gICAgICAgICAgICBuZXdfaGFzaGVzLnVwZGF0ZShjaGFuZ2VkX2hhc2hlcykK
LSAgICAgICAgZWxzZToKLSAgICAgICAgICAgIG5ld19kYXRhWyJyZWZ0ZXN0Il0gPSBzZWxmLl9k
YXRhWyJyZWZ0ZXN0Il0KLSAgICAgICAgICAgIG5ld19kYXRhWyJyZWZ0ZXN0X25vZGUiXSA9IHNl
bGYuX2RhdGFbInJlZnRlc3Rfbm9kZSJdCisgICAgICAgICAgICAgICAgaWYgaXNfbmV3IG9yIGhh
c2hfY2hhbmdlZDoKKyAgICAgICAgICAgICAgICAgICAgcGF0aF9oYXNoW3JlbF9wYXRoXSA9IChm
aWxlX2hhc2gsIG5ld190eXBlKQorICAgICAgICAgICAgICAgICAgICBjaGFuZ2VkID0gVHJ1ZQog
Ci0gICAgICAgIGlmIGFueShpdGVydmFsdWVzKG9sZF9maWxlcykpOgorICAgICAgICBkZWxldGVk
ID0gcHJldl9maWxlcyAtIHNlZW5fZmlsZXMKKyAgICAgICAgaWYgZGVsZXRlZDoKICAgICAgICAg
ICAgIGNoYW5nZWQgPSBUcnVlCisgICAgICAgICAgICBmb3IgcmVsX3BhdGggaW4gZGVsZXRlZDoK
KyAgICAgICAgICAgICAgICBpZiByZWxfcGF0aCBpbiBwYXRoX2hhc2g6CisgICAgICAgICAgICAg
ICAgICAgIF8sIG9sZF90eXBlID0gcGF0aF9oYXNoW3JlbF9wYXRoXQorICAgICAgICAgICAgICAg
ICAgICBpZiBvbGRfdHlwZSBpbiByZWZ0ZXN0X3R5cGVzOgorICAgICAgICAgICAgICAgICAgICAg
ICAgcmVmdGVzdF9jaGFuZ2VzID0gVHJ1ZQorICAgICAgICAgICAgICAgICAgICBkZWwgcGF0aF9o
YXNoW3JlbF9wYXRoXQorICAgICAgICAgICAgICAgICAgICB0cnk6CisgICAgICAgICAgICAgICAg
ICAgICAgICBkZWwgZGF0YVtvbGRfdHlwZV1bcmVsX3BhdGhdCisgICAgICAgICAgICAgICAgICAg
IGV4Y2VwdCBLZXlFcnJvcjoKKyAgICAgICAgICAgICAgICAgICAgICAgIHBhc3MKKyAgICAgICAg
ICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgICAgICBmb3IgdGVzdF9kYXRhIGluIGl0ZXJ2
YWx1ZXMoZGF0YSk6CisgICAgICAgICAgICAgICAgICAgICAgICBpZiByZWxfcGF0aCBpbiB0ZXN0
X2RhdGE6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVsIHRlc3RfZGF0YVtyZWxfcGF0
aF0KKworICAgICAgICBpZiByZWZ0ZXN0X2NoYW5nZXM6CisgICAgICAgICAgICByZWZ0ZXN0cywg
cmVmdGVzdF9ub2RlcywgY2hhbmdlZF9oYXNoZXMgPSBzZWxmLl9jb21wdXRlX3JlZnRlc3RzKGFs
bF9yZWZ0ZXN0X25vZGVzKQorICAgICAgICAgICAgcmVmdGVzdF9kYXRhID0gZGF0YVsicmVmdGVz
dCJdCisgICAgICAgICAgICByZWZ0ZXN0X2RhdGEuY2xlYXIoKQorICAgICAgICAgICAgZm9yIHBh
dGgsIGl0ZW1zIGluIGl0ZXJpdGVtcyhyZWZ0ZXN0cyk6CisgICAgICAgICAgICAgICAgaWYgTVlQ
WToKKyAgICAgICAgICAgICAgICAgICAgcmVmdGVzdF9kYXRhW3BhdGhdID0gY2FzdChTZXRbTWFu
aWZlc3RJdGVtXSwgaXRlbXMpCisgICAgICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAg
ICAgICAgcmVmdGVzdF9kYXRhW3BhdGhdID0gaXRlbXMKKworICAgICAgICAgICAgcmVmdGVzdF9u
b2RlX2RhdGEgPSBkYXRhWyJyZWZ0ZXN0X25vZGUiXQorICAgICAgICAgICAgcmVmdGVzdF9ub2Rl
X2RhdGEuY2xlYXIoKQorICAgICAgICAgICAgZm9yIG5vZGVfcGF0aCwgbm9kZV9pdGVtcyBpbiBp
dGVyaXRlbXMocmVmdGVzdF9ub2Rlcyk6CisgICAgICAgICAgICAgICAgaWYgTVlQWToKKyAgICAg
ICAgICAgICAgICAgICAgcmVmdGVzdF9ub2RlX2RhdGFbbm9kZV9wYXRoXSA9IGNhc3QoU2V0W01h
bmlmZXN0SXRlbV0sIG5vZGVfaXRlbXMpCisgICAgICAgICAgICAgICAgZWxzZToKKyAgICAgICAg
ICAgICAgICAgICAgcmVmdGVzdF9ub2RlX2RhdGFbbm9kZV9wYXRoXSA9IG5vZGVfaXRlbXMKIAot
ICAgICAgICBzZWxmLl9kYXRhID0gbmV3X2RhdGEKLSAgICAgICAgc2VsZi5fcGF0aF9oYXNoID0g
bmV3X2hhc2hlcworICAgICAgICAgICAgcGF0aF9oYXNoLnVwZGF0ZShjaGFuZ2VkX2hhc2hlcykK
IAogICAgICAgICByZXR1cm4gY2hhbmdlZAogCi0gICAgZGVmIF9jb21wdXRlX3JlZnRlc3RzKHNl
bGYsIHJlZnRlc3Rfbm9kZXMpOgorICAgIGRlZiBfY29tcHV0ZV9yZWZ0ZXN0cyhzZWxmLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICByZWZ0ZXN0X25vZGVzICAjIHR5cGU6IExpc3RbVHVwbGVb
TWFuaWZlc3RJdGVtLCBUZXh0XV0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgKToKKyAgICAg
ICAgIyB0eXBlOiAoLi4uKSAtPiBUdXBsZVtEaWN0W1RleHQsIFNldFtSZWZUZXN0XV0sIERpY3Rb
VGV4dCwgU2V0W1JlZlRlc3ROb2RlXV0sIERpY3RbVGV4dCwgVHVwbGVbVGV4dCwgVGV4dF1dXQog
ICAgICAgICBzZWxmLl9yZWZ0ZXN0X25vZGVzX2J5X3VybCA9IHt9CiAgICAgICAgIGhhc19pbmJv
dW5kID0gc2V0KCkKLSAgICAgICAgZm9yIGl0ZW0gaW4gcmVmdGVzdF9ub2RlczoKKyAgICAgICAg
Zm9yIGl0ZW0sIF8gaW4gcmVmdGVzdF9ub2RlczoKKyAgICAgICAgICAgIGFzc2VydCBpc2luc3Rh
bmNlKGl0ZW0sIChSZWZUZXN0Tm9kZSwgUmVmVGVzdCkpCiAgICAgICAgICAgICBmb3IgcmVmX3Vy
bCwgcmVmX3R5cGUgaW4gaXRlbS5yZWZlcmVuY2VzOgogICAgICAgICAgICAgICAgIGhhc19pbmJv
dW5kLmFkZChyZWZfdXJsKQogCi0gICAgICAgIHJlZnRlc3RzID0gZGVmYXVsdGRpY3Qoc2V0KQot
ICAgICAgICByZWZlcmVuY2VzID0gZGVmYXVsdGRpY3Qoc2V0KQotICAgICAgICBjaGFuZ2VkX2hh
c2hlcyA9IHt9CisgICAgICAgIHJlZnRlc3RzID0gZGVmYXVsdGRpY3Qoc2V0KSAgIyB0eXBlOiBE
aWN0W1RleHQsIFNldFtSZWZUZXN0XV0KKyAgICAgICAgcmVmZXJlbmNlcyA9IGRlZmF1bHRkaWN0
KHNldCkgICMgdHlwZTogRGljdFtUZXh0LCBTZXRbUmVmVGVzdE5vZGVdXQorICAgICAgICBjaGFu
Z2VkX2hhc2hlcyA9IHt9ICAjIHR5cGU6IERpY3RbVGV4dCwgVHVwbGVbVGV4dCwgVGV4dF1dCiAK
LSAgICAgICAgZm9yIGl0ZW0gaW4gcmVmdGVzdF9ub2RlczoKKyAgICAgICAgZm9yIGl0ZW0sIGZp
bGVfaGFzaCBpbiByZWZ0ZXN0X25vZGVzOgorICAgICAgICAgICAgYXNzZXJ0IGlzaW5zdGFuY2Uo
aXRlbSwgKFJlZlRlc3ROb2RlLCBSZWZUZXN0KSkKICAgICAgICAgICAgIGlmIGl0ZW0udXJsIGlu
IGhhc19pbmJvdW5kOgogICAgICAgICAgICAgICAgICMgVGhpcyBpcyBhIHJlZmVyZW5jZQogICAg
ICAgICAgICAgICAgIGlmIGlzaW5zdGFuY2UoaXRlbSwgUmVmVGVzdCk6CiAgICAgICAgICAgICAg
ICAgICAgIGl0ZW0gPSBpdGVtLnRvX1JlZlRlc3ROb2RlKCkKLSAgICAgICAgICAgICAgICAgICAg
Y2hhbmdlZF9oYXNoZXNbaXRlbS5zb3VyY2VfZmlsZS5yZWxfcGF0aF0gPSAoaXRlbS5zb3VyY2Vf
ZmlsZS5oYXNoLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBpdGVtLml0ZW1fdHlwZSkKLSAgICAgICAgICAgICAgICByZWZl
cmVuY2VzW2l0ZW0uc291cmNlX2ZpbGUucmVsX3BhdGhdLmFkZChpdGVtKQorICAgICAgICAgICAg
ICAgICAgICBjaGFuZ2VkX2hhc2hlc1tpdGVtLnBhdGhdID0gKGZpbGVfaGFzaCwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpdGVtLml0ZW1fdHlwZSkK
KyAgICAgICAgICAgICAgICBhc3NlcnQgaXNpbnN0YW5jZShpdGVtLCBSZWZUZXN0Tm9kZSkKKyAg
ICAgICAgICAgICAgICByZWZlcmVuY2VzW2l0ZW0ucGF0aF0uYWRkKGl0ZW0pCiAgICAgICAgICAg
ICBlbHNlOgogICAgICAgICAgICAgICAgIGlmIGlzaW5zdGFuY2UoaXRlbSwgUmVmVGVzdE5vZGUp
OgogICAgICAgICAgICAgICAgICAgICBpdGVtID0gaXRlbS50b19SZWZUZXN0KCkKLSAgICAgICAg
ICAgICAgICAgICAgY2hhbmdlZF9oYXNoZXNbaXRlbS5zb3VyY2VfZmlsZS5yZWxfcGF0aF0gPSAo
aXRlbS5zb3VyY2VfZmlsZS5oYXNoLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpdGVtLml0ZW1fdHlwZSkKLSAgICAgICAg
ICAgICAgICByZWZ0ZXN0c1tpdGVtLnNvdXJjZV9maWxlLnJlbF9wYXRoXS5hZGQoaXRlbSkKKyAg
ICAgICAgICAgICAgICAgICAgY2hhbmdlZF9oYXNoZXNbaXRlbS5wYXRoXSA9IChmaWxlX2hhc2gs
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXRlbS5p
dGVtX3R5cGUpCisgICAgICAgICAgICAgICAgYXNzZXJ0IGlzaW5zdGFuY2UoaXRlbSwgUmVmVGVz
dCkKKyAgICAgICAgICAgICAgICByZWZ0ZXN0c1tpdGVtLnBhdGhdLmFkZChpdGVtKQorICAgICAg
ICAgICAgYXNzZXJ0IGlzaW5zdGFuY2UoaXRlbSwgKFJlZlRlc3ROb2RlLCBSZWZUZXN0KSkKICAg
ICAgICAgICAgIHNlbGYuX3JlZnRlc3Rfbm9kZXNfYnlfdXJsW2l0ZW0udXJsXSA9IGl0ZW0KIAog
ICAgICAgICByZXR1cm4gcmVmdGVzdHMsIHJlZmVyZW5jZXMsIGNoYW5nZWRfaGFzaGVzCiAKICAg
ICBkZWYgdG9fanNvbihzZWxmKToKKyAgICAgICAgIyB0eXBlOiAoKSAtPiBEaWN0W1RleHQsIEFu
eV0KICAgICAgICAgb3V0X2l0ZW1zID0gewotICAgICAgICAgICAgdGVzdF90eXBlOiB7Ci0gICAg
ICAgICAgICAgICAgZnJvbV9vc19wYXRoKHBhdGgpOgotICAgICAgICAgICAgICAgIFt0IGZvciB0
IGluIHNvcnRlZCh0ZXN0LnRvX2pzb24oKSBmb3IgdGVzdCBpbiB0ZXN0cyldCi0gICAgICAgICAg
ICAgICAgZm9yIHBhdGgsIHRlc3RzIGluIGl0ZXJpdGVtcyh0eXBlX3BhdGhzKQotICAgICAgICAg
ICAgfQotICAgICAgICAgICAgZm9yIHRlc3RfdHlwZSwgdHlwZV9wYXRocyBpbiBpdGVyaXRlbXMo
c2VsZi5fZGF0YSkKKyAgICAgICAgICAgIHRlc3RfdHlwZTogdHlwZV9wYXRocy50b19qc29uKCkK
KyAgICAgICAgICAgIGZvciB0ZXN0X3R5cGUsIHR5cGVfcGF0aHMgaW4gaXRlcml0ZW1zKHNlbGYu
X2RhdGEpIGlmIHR5cGVfcGF0aHMKICAgICAgICAgfQogICAgICAgICBydiA9IHsidXJsX2Jhc2Ui
OiBzZWxmLnVybF9iYXNlLAogICAgICAgICAgICAgICAicGF0aHMiOiB7ZnJvbV9vc19wYXRoKGsp
OiB2IGZvciBrLCB2IGluIGl0ZXJpdGVtcyhzZWxmLl9wYXRoX2hhc2gpfSwKICAgICAgICAgICAg
ICAgIml0ZW1zIjogb3V0X2l0ZW1zLAotICAgICAgICAgICAgICAidmVyc2lvbiI6IENVUlJFTlRf
VkVSU0lPTn0KKyAgICAgICAgICAgICAgInZlcnNpb24iOiBDVVJSRU5UX1ZFUlNJT059ICAjIHR5
cGU6IERpY3RbVGV4dCwgQW55XQogICAgICAgICByZXR1cm4gcnYKIAogICAgIEBjbGFzc21ldGhv
ZAotICAgIGRlZiBmcm9tX2pzb24oY2xzLCB0ZXN0c19yb290LCBvYmosIHR5cGVzPU5vbmUsIG1l
dGFfZmlsdGVycz1Ob25lKToKKyAgICBkZWYgZnJvbV9qc29uKGNscywgdGVzdHNfcm9vdCwgb2Jq
LCB0eXBlcz1Ob25lKToKKyAgICAgICAgIyB0eXBlOiAoc3RyLCBEaWN0W1RleHQsIEFueV0sIE9w
dGlvbmFsW0NvbnRhaW5lcltUZXh0XV0pIC0+IE1hbmlmZXN0CiAgICAgICAgIHZlcnNpb24gPSBv
YmouZ2V0KCJ2ZXJzaW9uIikKICAgICAgICAgaWYgdmVyc2lvbiAhPSBDVVJSRU5UX1ZFUlNJT046
CiAgICAgICAgICAgICByYWlzZSBNYW5pZmVzdFZlcnNpb25NaXNtYXRjaAogCi0gICAgICAgIHNl
bGYgPSBjbHModXJsX2Jhc2U9b2JqLmdldCgidXJsX2Jhc2UiLCAiLyIpKQorICAgICAgICBzZWxm
ID0gY2xzKHRlc3RzX3Jvb3QsIHVybF9iYXNlPW9iai5nZXQoInVybF9iYXNlIiwgIi8iKSkKICAg
ICAgICAgaWYgbm90IGhhc2F0dHIob2JqLCAiaXRlbXMiKSBhbmQgaGFzYXR0cihvYmosICJwYXRo
cyIpOgogICAgICAgICAgICAgcmFpc2UgTWFuaWZlc3RFcnJvcgogCiAgICAgICAgIHNlbGYuX3Bh
dGhfaGFzaCA9IHt0b19vc19wYXRoKGspOiB2IGZvciBrLCB2IGluIGl0ZXJpdGVtcyhvYmpbInBh
dGhzIl0pfQogCi0gICAgICAgIGl0ZW1fY2xhc3NlcyA9IHsidGVzdGhhcm5lc3MiOiBUZXN0aGFy
bmVzc1Rlc3QsCi0gICAgICAgICAgICAgICAgICAgICAgICAicmVmdGVzdCI6IFJlZlRlc3QsCi0g
ICAgICAgICAgICAgICAgICAgICAgICAicmVmdGVzdF9ub2RlIjogUmVmVGVzdE5vZGUsCi0gICAg
ICAgICAgICAgICAgICAgICAgICAibWFudWFsIjogTWFudWFsVGVzdCwKLSAgICAgICAgICAgICAg
ICAgICAgICAgICJzdHViIjogU3R1YiwKLSAgICAgICAgICAgICAgICAgICAgICAgICJ3ZHNwZWMi
OiBXZWJkcml2ZXJTcGVjVGVzdCwKLSAgICAgICAgICAgICAgICAgICAgICAgICJjb25mb3JtYW5j
ZWNoZWNrZXIiOiBDb25mb3JtYW5jZUNoZWNrZXJUZXN0LAotICAgICAgICAgICAgICAgICAgICAg
ICAgInZpc3VhbCI6IFZpc3VhbFRlc3QsCi0gICAgICAgICAgICAgICAgICAgICAgICAic3VwcG9y
dCI6IFN1cHBvcnRGaWxlfQotCi0gICAgICAgIG1ldGFfZmlsdGVycyA9IG1ldGFfZmlsdGVycyBv
ciBbXQotCi0gICAgICAgIHNvdXJjZV9maWxlcyA9IHt9Ci0KICAgICAgICAgZm9yIHRlc3RfdHlw
ZSwgdHlwZV9wYXRocyBpbiBpdGVyaXRlbXMob2JqWyJpdGVtcyJdKToKKyAgICAgICAgICAgICMg
RHJvcCAic3R1YiIgaXRlbXMsIHdoaWNoIGFyZSBubyBsb25nZXIgc3VwcG9ydGVkIGJ1dCBtYXkg
YmUKKyAgICAgICAgICAgICMgcHJlc2VudCB3aGVuIGRvaW5nIGFuIGluY3JlbWVudGFsIG1hbmlm
ZXN0IHVwZGF0ZS4KKyAgICAgICAgICAgICMgU2VlIGh0dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxh
dGZvcm0tdGVzdHMvcmZjcy9wdWxsLzI3IGZvciBiYWNrZ3JvdW5kLgorICAgICAgICAgICAgIwor
ICAgICAgICAgICAgIyBUT0RPKE1BTklGRVNUdjcpOiByZW1vdmUgdGhpcyBjb25kaXRpb24KKyAg
ICAgICAgICAgIGlmIHRlc3RfdHlwZSA9PSAic3R1YiI6CisgICAgICAgICAgICAgICAgY29udGlu
dWUKKwogICAgICAgICAgICAgaWYgdGVzdF90eXBlIG5vdCBpbiBpdGVtX2NsYXNzZXM6CiAgICAg
ICAgICAgICAgICAgcmFpc2UgTWFuaWZlc3RFcnJvcgogCiAgICAgICAgICAgICBpZiB0eXBlcyBh
bmQgdGVzdF90eXBlIG5vdCBpbiB0eXBlczoKICAgICAgICAgICAgICAgICBjb250aW51ZQogCi0g
ICAgICAgICAgICB0ZXN0X2NscyA9IGl0ZW1fY2xhc3Nlc1t0ZXN0X3R5cGVdCi0gICAgICAgICAg
ICB0ZXN0cyA9IGRlZmF1bHRkaWN0KHNldCkKLSAgICAgICAgICAgIGZvciBwYXRoLCBtYW5pZmVz
dF90ZXN0cyBpbiBpdGVyaXRlbXModHlwZV9wYXRocyk6Ci0gICAgICAgICAgICAgICAgcGF0aCA9
IHRvX29zX3BhdGgocGF0aCkKLSAgICAgICAgICAgICAgICBmb3IgdGVzdCBpbiBpdGVyZmlsdGVy
KG1ldGFfZmlsdGVycywgbWFuaWZlc3RfdGVzdHMpOgotICAgICAgICAgICAgICAgICAgICBtYW5p
ZmVzdF9pdGVtID0gdGVzdF9jbHMuZnJvbV9qc29uKHNlbGYsCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGVzdHNfcm9vdCwKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXRoLAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRlc3Qs
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
c291cmNlX2ZpbGVzPXNvdXJjZV9maWxlcykKLSAgICAgICAgICAgICAgICAgICAgdGVzdHNbcGF0
aF0uYWRkKG1hbmlmZXN0X2l0ZW0pCi0gICAgICAgICAgICBzZWxmLl9kYXRhW3Rlc3RfdHlwZV0g
PSB0ZXN0cworICAgICAgICAgICAgc2VsZi5fZGF0YVt0ZXN0X3R5cGVdLnNldF9qc29uKHRlc3Rz
X3Jvb3QsIHR5cGVfcGF0aHMpCiAKICAgICAgICAgcmV0dXJuIHNlbGYKIAogCi1kZWYgbG9hZCh0
ZXN0c19yb290LCBtYW5pZmVzdCwgdHlwZXM9Tm9uZSwgbWV0YV9maWx0ZXJzPU5vbmUpOgorZGVm
IGxvYWQodGVzdHNfcm9vdCwgbWFuaWZlc3QsIHR5cGVzPU5vbmUpOgorICAgICMgdHlwZTogKHN0
ciwgVW5pb25bSU9bYnl0ZXNdLCBzdHJdLCBPcHRpb25hbFtDb250YWluZXJbVGV4dF1dKSAtPiBP
cHRpb25hbFtNYW5pZmVzdF0KICAgICBsb2dnZXIgPSBnZXRfbG9nZ2VyKCkKIAotICAgICMgIm1h
bmlmZXN0IiBpcyBhIHBhdGggb3IgZmlsZS1saWtlIG9iamVjdC4KKyAgICBsb2dnZXIud2Fybmlu
ZygiUHJlZmVyIGxvYWRfYW5kX3VwZGF0ZSBpbnN0ZWFkIikKKyAgICByZXR1cm4gX2xvYWQobG9n
Z2VyLCB0ZXN0c19yb290LCBtYW5pZmVzdCwgdHlwZXMpCisKKworX19sb2FkX2NhY2hlID0ge30g
ICMgdHlwZTogRGljdFtzdHIsIE1hbmlmZXN0XQorCisKK2RlZiBfbG9hZChsb2dnZXIsICAjIHR5
cGU6IExvZ2dlcgorICAgICAgICAgIHRlc3RzX3Jvb3QsICAjIHR5cGU6IHN0cgorICAgICAgICAg
IG1hbmlmZXN0LCAgIyB0eXBlOiBVbmlvbltJT1tieXRlc10sIHN0cl0KKyAgICAgICAgICB0eXBl
cz1Ob25lLCAgIyB0eXBlOiBPcHRpb25hbFtDb250YWluZXJbVGV4dF1dCisgICAgICAgICAgYWxs
b3dfY2FjaGVkPVRydWUgICMgdHlwZTogYm9vbAorICAgICAgICAgICk6CisgICAgIyB0eXBlOiAo
Li4uKSAtPiBPcHRpb25hbFtNYW5pZmVzdF0KKyAgICBtYW5pZmVzdF9wYXRoID0gKG1hbmlmZXN0
IGlmIGlzaW5zdGFuY2UobWFuaWZlc3QsIHN0cmluZ190eXBlcykKKyAgICAgICAgICAgICAgICAg
ICAgIGVsc2UgbWFuaWZlc3QubmFtZSkKKyAgICBpZiBhbGxvd19jYWNoZWQgYW5kIG1hbmlmZXN0
X3BhdGggaW4gX19sb2FkX2NhY2hlOgorICAgICAgICByZXR1cm4gX19sb2FkX2NhY2hlW21hbmlm
ZXN0X3BhdGhdCisKICAgICBpZiBpc2luc3RhbmNlKG1hbmlmZXN0LCBzdHJpbmdfdHlwZXMpOgog
ICAgICAgICBpZiBvcy5wYXRoLmV4aXN0cyhtYW5pZmVzdCk6CiAgICAgICAgICAgICBsb2dnZXIu
ZGVidWcoIk9wZW5pbmcgbWFuaWZlc3QgYXQgJXMiICUgbWFuaWZlc3QpCiAgICAgICAgIGVsc2U6
CiAgICAgICAgICAgICBsb2dnZXIuZGVidWcoIkNyZWF0aW5nIG5ldyBtYW5pZmVzdCBhdCAlcyIg
JSBtYW5pZmVzdCkKICAgICAgICAgdHJ5OgotICAgICAgICAgICAgd2l0aCBvcGVuKG1hbmlmZXN0
KSBhcyBmOgotICAgICAgICAgICAgICAgIHJ2ID0gTWFuaWZlc3QuZnJvbV9qc29uKHRlc3RzX3Jv
b3QsIGpzb24ubG9hZChmKSwgdHlwZXM9dHlwZXMsIG1ldGFfZmlsdGVycz1tZXRhX2ZpbHRlcnMp
CisgICAgICAgICAgICB3aXRoIG9wZW4obWFuaWZlc3QsICJyYiIpIGFzIGY6CisgICAgICAgICAg
ICAgICAgcnYgPSBNYW5pZmVzdC5mcm9tX2pzb24odGVzdHNfcm9vdCwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBmYXN0X2pzb24ubG9hZChmKSwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlcz10eXBlcykKICAgICAgICAgZXhjZXB0
IElPRXJyb3I6CiAgICAgICAgICAgICByZXR1cm4gTm9uZQogICAgICAgICBleGNlcHQgVmFsdWVF
cnJvcjoKICAgICAgICAgICAgIGxvZ2dlci53YXJuaW5nKCIlciBtYXkgYmUgY29ycnVwdGVkIiwg
bWFuaWZlc3QpCiAgICAgICAgICAgICByZXR1cm4gTm9uZQotICAgICAgICByZXR1cm4gcnYKKyAg
ICBlbHNlOgorICAgICAgICBydiA9IE1hbmlmZXN0LmZyb21fanNvbih0ZXN0c19yb290LAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYXN0X2pzb24ubG9hZChtYW5pZmVzdCksCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGVzPXR5cGVzKQorCisgICAgaWYgYWxs
b3dfY2FjaGVkOgorICAgICAgICBfX2xvYWRfY2FjaGVbbWFuaWZlc3RfcGF0aF0gPSBydgorICAg
IHJldHVybiBydgorCisKK2RlZiBsb2FkX2FuZF91cGRhdGUodGVzdHNfcm9vdCwgICMgdHlwZTog
Ynl0ZXMKKyAgICAgICAgICAgICAgICAgICAgbWFuaWZlc3RfcGF0aCwgICMgdHlwZTogYnl0ZXMK
KyAgICAgICAgICAgICAgICAgICAgdXJsX2Jhc2UsICAjIHR5cGU6IFRleHQKKyAgICAgICAgICAg
ICAgICAgICAgdXBkYXRlPVRydWUsICAjIHR5cGU6IGJvb2wKKyAgICAgICAgICAgICAgICAgICAg
cmVidWlsZD1GYWxzZSwgICMgdHlwZTogYm9vbAorICAgICAgICAgICAgICAgICAgICBtZXRhZGF0
YV9wYXRoPU5vbmUsICAjIHR5cGU6IE9wdGlvbmFsW2J5dGVzXQorICAgICAgICAgICAgICAgICAg
ICBjYWNoZV9yb290PU5vbmUsICAjIHR5cGU6IE9wdGlvbmFsW2J5dGVzXQorICAgICAgICAgICAg
ICAgICAgICB3b3JraW5nX2NvcHk9VHJ1ZSwgICMgdHlwZTogYm9vbAorICAgICAgICAgICAgICAg
ICAgICB0eXBlcz1Ob25lLCAgIyB0eXBlOiBPcHRpb25hbFtDb250YWluZXJbVGV4dF1dCisgICAg
ICAgICAgICAgICAgICAgIHdyaXRlX21hbmlmZXN0PVRydWUsICAjIHR5cGU6IGJvb2wKKyAgICAg
ICAgICAgICAgICAgICAgYWxsb3dfY2FjaGVkPVRydWUgICMgdHlwZTogYm9vbAorICAgICAgICAg
ICAgICAgICAgICApOgorICAgICMgdHlwZTogKC4uLikgLT4gTWFuaWZlc3QKKyAgICBsb2dnZXIg
PSBnZXRfbG9nZ2VyKCkKIAotICAgIHJldHVybiBNYW5pZmVzdC5mcm9tX2pzb24odGVzdHNfcm9v
dCwganNvbi5sb2FkKG1hbmlmZXN0KSwgdHlwZXM9dHlwZXMsIG1ldGFfZmlsdGVycz1tZXRhX2Zp
bHRlcnMpCisgICAgbWFuaWZlc3QgPSBOb25lCisgICAgaWYgbm90IHJlYnVpbGQ6CisgICAgICAg
IHRyeToKKyAgICAgICAgICAgIG1hbmlmZXN0ID0gX2xvYWQobG9nZ2VyLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICB0ZXN0c19yb290LAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBtYW5pZmVzdF9wYXRoLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlcz10eXBl
cywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWxsb3dfY2FjaGVkPWFsbG93X2NhY2hl
ZCkKKyAgICAgICAgZXhjZXB0IE1hbmlmZXN0VmVyc2lvbk1pc21hdGNoOgorICAgICAgICAgICAg
bG9nZ2VyLmluZm8oIk1hbmlmZXN0IHZlcnNpb24gY2hhbmdlZCwgcmVidWlsZGluZyIpCisKKyAg
ICAgICAgaWYgbWFuaWZlc3QgaXMgbm90IE5vbmUgYW5kIG1hbmlmZXN0LnVybF9iYXNlICE9IHVy
bF9iYXNlOgorICAgICAgICAgICAgbG9nZ2VyLmluZm8oIk1hbmlmZXN0IHVybCBiYXNlIGRpZCBu
b3QgbWF0Y2gsIHJlYnVpbGRpbmciKQorICAgICAgICAgICAgbWFuaWZlc3QgPSBOb25lCisKKyAg
ICBpZiBtYW5pZmVzdCBpcyBOb25lOgorICAgICAgICBtYW5pZmVzdCA9IE1hbmlmZXN0KHRlc3Rz
X3Jvb3QsIHVybF9iYXNlKQorICAgICAgICByZWJ1aWxkID0gVHJ1ZQorICAgICAgICB1cGRhdGUg
PSBUcnVlCisKKyAgICBpZiByZWJ1aWxkIG9yIHVwZGF0ZToKKyAgICAgICAgdHJlZSA9IHZjcy5n
ZXRfdHJlZSh0ZXN0c19yb290LCBtYW5pZmVzdCwgbWFuaWZlc3RfcGF0aCwgY2FjaGVfcm9vdCwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICB3b3JraW5nX2NvcHksIHJlYnVpbGQpCisgICAg
ICAgIGNoYW5nZWQgPSBtYW5pZmVzdC51cGRhdGUodHJlZSkKKyAgICAgICAgaWYgd3JpdGVfbWFu
aWZlc3QgYW5kIGNoYW5nZWQ6CisgICAgICAgICAgICB3cml0ZShtYW5pZmVzdCwgbWFuaWZlc3Rf
cGF0aCkKKyAgICAgICAgdHJlZS5kdW1wX2NhY2hlcygpCisKKyAgICByZXR1cm4gbWFuaWZlc3QK
IAogCiBkZWYgd3JpdGUobWFuaWZlc3QsIG1hbmlmZXN0X3BhdGgpOgorICAgICMgdHlwZTogKE1h
bmlmZXN0LCBieXRlcykgLT4gTm9uZQogICAgIGRpcl9uYW1lID0gb3MucGF0aC5kaXJuYW1lKG1h
bmlmZXN0X3BhdGgpCiAgICAgaWYgbm90IG9zLnBhdGguZXhpc3RzKGRpcl9uYW1lKToKICAgICAg
ICAgb3MubWFrZWRpcnMoZGlyX25hbWUpCiAgICAgd2l0aCBvcGVuKG1hbmlmZXN0X3BhdGgsICJ3
YiIpIGFzIGY6Ci0gICAgICAgIGpzb24uZHVtcChtYW5pZmVzdC50b19qc29uKCksIGYsIHNvcnRf
a2V5cz1UcnVlLCBpbmRlbnQ9MSwgc2VwYXJhdG9ycz0oJywnLCAnOiAnKSkKKyAgICAgICAgIyBV
c2UgJywnIGluc3RlYWQgb2YgdGhlIGRlZmF1bHQgJywgJyBzZXBhcmF0b3IgdG8gcHJldmVudCB0
cmFpbGluZworICAgICAgICAjIHNwYWNlczogaHR0cHM6Ly9kb2NzLnB5dGhvbi5vcmcvMi9saWJy
YXJ5L2pzb24uaHRtbCNqc29uLmR1bXAKKyAgICAgICAganNvbi5kdW1wKG1hbmlmZXN0LnRvX2pz
b24oKSwgZiwKKyAgICAgICAgICAgICAgICAgIHNvcnRfa2V5cz1UcnVlLCBpbmRlbnQ9MSwgc2Vw
YXJhdG9ycz0oJywnLCAnOiAnKSkKICAgICAgICAgZi53cml0ZSgiXG4iKQpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9tYW5pZmVz
dC9zb3VyY2VmaWxlLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy9tYW5pZmVzdC9zb3VyY2VmaWxlLnB5CmluZGV4IDEzM2Y4YjU5ODI4ZGFmZDAx
NmRmOTU0MjlmZTUyODY1NjJiNDczM2MuLjQ3ODhmYzliZGI2NDA0NDdlYjk5OTc4MDhjNWI3MTEw
NjYxYTM5NjAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvbWFuaWZlc3Qvc291cmNlZmlsZS5weQorKysgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL21hbmlmZXN0L3NvdXJjZWZpbGUu
cHkKQEAgLTEsMjkgKzEsNTIgQEAKIGltcG9ydCBoYXNobGliCiBpbXBvcnQgcmUKIGltcG9ydCBv
cwotZnJvbSBzaXggaW1wb3J0IGJpbmFyeV90eXBlCitmcm9tIGNvbGxlY3Rpb25zIGltcG9ydCBk
ZXF1ZQorZnJvbSBzaXggaW1wb3J0IGJpbmFyeV90eXBlLCBQWTMKIGZyb20gc2l4Lm1vdmVzLnVy
bGxpYi5wYXJzZSBpbXBvcnQgdXJsam9pbgogZnJvbSBmbm1hdGNoIGltcG9ydCBmbm1hdGNoCisK
K01ZUFkgPSBGYWxzZQoraWYgTVlQWToKKyAgICAjIE1ZUFkgaXMgc2V0IHRvIFRydWUgd2hlbiBy
dW4gdW5kZXIgTXlweS4KKyAgICBmcm9tIHR5cGluZyBpbXBvcnQgQW55CisgICAgZnJvbSB0eXBp
bmcgaW1wb3J0IEFueVN0cgorICAgIGZyb20gdHlwaW5nIGltcG9ydCBCaW5hcnlJTworICAgIGZy
b20gdHlwaW5nIGltcG9ydCBDYWxsYWJsZQorICAgIGZyb20gdHlwaW5nIGltcG9ydCBEZXF1ZQor
ICAgIGZyb20gdHlwaW5nIGltcG9ydCBEaWN0CisgICAgZnJvbSB0eXBpbmcgaW1wb3J0IEl0ZXJh
YmxlCisgICAgZnJvbSB0eXBpbmcgaW1wb3J0IExpc3QKKyAgICBmcm9tIHR5cGluZyBpbXBvcnQg
T3B0aW9uYWwKKyAgICBmcm9tIHR5cGluZyBpbXBvcnQgUGF0dGVybgorICAgIGZyb20gdHlwaW5n
IGltcG9ydCBTZXQKKyAgICBmcm9tIHR5cGluZyBpbXBvcnQgVGV4dAorICAgIGZyb20gdHlwaW5n
IGltcG9ydCBUdXBsZQorICAgIGZyb20gdHlwaW5nIGltcG9ydCBVbmlvbgorICAgIGZyb20gdHlw
aW5nIGltcG9ydCBjYXN0CisKIHRyeToKICAgICBmcm9tIHhtbC5ldHJlZSBpbXBvcnQgY0VsZW1l
bnRUcmVlIGFzIEVsZW1lbnRUcmVlCiBleGNlcHQgSW1wb3J0RXJyb3I6Ci0gICAgZnJvbSB4bWwu
ZXRyZWUgaW1wb3J0IEVsZW1lbnRUcmVlCisgICAgZnJvbSB4bWwuZXRyZWUgaW1wb3J0IEVsZW1l
bnRUcmVlIGFzIEVsZW1lbnRUcmVlICAjIHR5cGU6IGlnbm9yZQogCiBpbXBvcnQgaHRtbDVsaWIK
IAogZnJvbSAuIGltcG9ydCBYTUxQYXJzZXIKLWZyb20gLml0ZW0gaW1wb3J0IFN0dWIsIE1hbnVh
bFRlc3QsIFdlYmRyaXZlclNwZWNUZXN0LCBSZWZUZXN0Tm9kZSwgVGVzdGhhcm5lc3NUZXN0LCBT
dXBwb3J0RmlsZSwgQ29uZm9ybWFuY2VDaGVja2VyVGVzdCwgVmlzdWFsVGVzdAotZnJvbSAudXRp
bHMgaW1wb3J0IHJlbF9wYXRoX3RvX3VybCwgQ29udGV4dE1hbmFnZXJCeXRlc0lPLCBjYWNoZWRf
cHJvcGVydHkKK2Zyb20gLml0ZW0gaW1wb3J0IChNYW5pZmVzdEl0ZW0sIE1hbnVhbFRlc3QsIFdl
YkRyaXZlclNwZWNUZXN0LCBSZWZUZXN0Tm9kZSwgVGVzdGhhcm5lc3NUZXN0LAorICAgICAgICAg
ICAgICAgICAgIFN1cHBvcnRGaWxlLCBDb25mb3JtYW5jZUNoZWNrZXJUZXN0LCBWaXN1YWxUZXN0
KQorZnJvbSAudXRpbHMgaW1wb3J0IENvbnRleHRNYW5hZ2VyQnl0ZXNJTywgY2FjaGVkX3Byb3Bl
cnR5CiAKIHdkX3BhdHRlcm4gPSAiKi5weSIKLWpzX21ldGFfcmUgPSByZS5jb21waWxlKGIiLy9c
cypNRVRBOlxzKihcdyopPSguKikkIikKLXB5dGhvbl9tZXRhX3JlID0gcmUuY29tcGlsZShiIiNc
cypNRVRBOlxzKihcdyopPSguKikkIikKK2pzX21ldGFfcmUgPSByZS5jb21waWxlKGJyIi8vXHMq
TUVUQTpccyooXHcqKT0oLiopJCIpCitweXRob25fbWV0YV9yZSA9IHJlLmNvbXBpbGUoYnIiI1xz
Kk1FVEE6XHMqKFx3Kik9KC4qKSQiKQogCiByZWZlcmVuY2VfZmlsZV9yZSA9IHJlLmNvbXBpbGUo
cicoXnxbXC1fXSkobm90KT9yZWZbMC05XSooW1wtX118JCknKQogCi1zcGFjZV9jaGFycyA9IHUi
Ii5qb2luKGh0bWw1bGliLmNvbnN0YW50cy5zcGFjZUNoYXJhY3RlcnMpCitzcGFjZV9jaGFycyA9
IHUiIi5qb2luKGh0bWw1bGliLmNvbnN0YW50cy5zcGFjZUNoYXJhY3RlcnMpICAjIHR5cGU6IFRl
eHQKIAogZGVmIHJlcGxhY2VfZW5kKHMsIG9sZCwgbmV3KToKKyAgICAjIHR5cGU6IChUZXh0LCBU
ZXh0LCBUZXh0KSAtPiBUZXh0CiAgICAgIiIiCiAgICAgR2l2ZW4gYSBzdHJpbmcgYHNgIHRoYXQg
ZW5kcyB3aXRoIGBvbGRgLCByZXBsYWNlIHRoYXQgb2NjdXJyZW5jZSBvZiBgb2xkYAogICAgIHdp
dGggYG5ld2AuCkBAIC0zMyw2ICs1Niw3IEBAIGRlZiByZXBsYWNlX2VuZChzLCBvbGQsIG5ldyk6
CiAKIAogZGVmIHJlYWRfc2NyaXB0X21ldGFkYXRhKGYsIHJlZ2V4cCk6CisgICAgIyB0eXBlOiAo
QmluYXJ5SU8sIFBhdHRlcm5bYnl0ZXNdKSAtPiBJdGVyYWJsZVtUdXBsZVtieXRlcywgYnl0ZXNd
XQogICAgICIiIgogICAgIFlpZWxkcyBhbnkgbWV0YWRhdGEgKHBhaXJzIG9mIGJ5dGVzdHJpbmdz
KSBmcm9tIHRoZSBmaWxlLWxpa2Ugb2JqZWN0IGBmYCwKICAgICBhcyBzcGVjaWZpZWQgYWNjb3Jk
aW5nIHRvIGEgc3VwcGxpZWQgcmVnZXhwLgpAQCAtNTcsMTAgKzgxLDExIEBAIF9hbnlfdmFyaWFu
dHMgPSB7CiAgICAgYiJkZWRpY2F0ZWR3b3JrZXIiOiB7InN1ZmZpeCI6ICIuYW55Lndvcmtlci5o
dG1sIn0sCiAgICAgYiJ3b3JrZXIiOiB7ImxvbmdoYW5kIjoge2IiZGVkaWNhdGVkd29ya2VyIiwg
YiJzaGFyZWR3b3JrZXIiLCBiInNlcnZpY2V3b3JrZXIifX0sCiAgICAgYiJqc3NoZWxsIjogeyJz
dWZmaXgiOiAiLmFueS5qcyJ9LAotfQorfSAgIyB0eXBlOiBEaWN0W2J5dGVzLCBEaWN0W3N0ciwg
QW55XV0KIAogCiBkZWYgZ2V0X2FueV92YXJpYW50cyhpdGVtKToKKyAgICAjIHR5cGU6IChieXRl
cykgLT4gU2V0W2J5dGVzXQogICAgICIiIgogICAgIFJldHVybnMgYSBzZXQgb2YgdmFyaWFudHMg
KGJ5dGVzdHJpbmdzKSBkZWZpbmVkIGJ5IHRoZSBnaXZlbiBrZXl3b3JkLgogICAgICIiIgpAQCAt
NzUsNiArMTAwLDcgQEAgZGVmIGdldF9hbnlfdmFyaWFudHMoaXRlbSk6CiAKIAogZGVmIGdldF9k
ZWZhdWx0X2FueV92YXJpYW50cygpOgorICAgICMgdHlwZTogKCkgLT4gU2V0W2J5dGVzXQogICAg
ICIiIgogICAgIFJldHVybnMgYSBzZXQgb2YgdmFyaWFudHMgKGJ5dGVzdHJpbmdzKSB0aGF0IHdp
bGwgYmUgdXNlZCBieSBkZWZhdWx0LgogICAgICIiIgpAQCAtODIsNiArMTA4LDcgQEAgZGVmIGdl
dF9kZWZhdWx0X2FueV92YXJpYW50cygpOgogCiAKIGRlZiBwYXJzZV92YXJpYW50cyh2YWx1ZSk6
CisgICAgIyB0eXBlOiAoYnl0ZXMpIC0+IFNldFtieXRlc10KICAgICAiIiIKICAgICBSZXR1cm5z
IGEgc2V0IG9mIHZhcmlhbnRzIChieXRlc3RyaW5ncykgZGVmaW5lZCBieSBhIGNvbW1hLXNlcGFy
YXRlZCB2YWx1ZS4KICAgICAiIiIKQEAgLTEwMCw2ICsxMjcsNyBAQCBkZWYgcGFyc2VfdmFyaWFu
dHModmFsdWUpOgogCiAKIGRlZiBnbG9iYWxfc3VmZml4ZXModmFsdWUpOgorICAgICMgdHlwZTog
KGJ5dGVzKSAtPiBTZXRbVHVwbGVbYnl0ZXMsIGJvb2xdXQogICAgICIiIgogICAgIFlpZWxkcyB0
dXBsZXMgb2YgdGhlIHJlbGV2YW50IGZpbGVuYW1lIHN1ZmZpeCAoYSBzdHJpbmcpIGFuZCB3aGV0
aGVyIHRoZQogICAgIHZhcmlhbnQgaXMgaW50ZW5kZWQgdG8gcnVuIGluIGEgSlMgc2hlbGwsIGZv
ciB0aGUgdmFyaWFudHMgZGVmaW5lZCBieSB0aGUKQEAgLTExOSw2ICsxNDcsNyBAQCBkZWYgZ2xv
YmFsX3N1ZmZpeGVzKHZhbHVlKToKIAogCiBkZWYgZ2xvYmFsX3ZhcmlhbnRfdXJsKHVybCwgc3Vm
Zml4KToKKyAgICAjIHR5cGU6IChUZXh0LCBUZXh0KSAtPiBUZXh0CiAgICAgIiIiCiAgICAgUmV0
dXJucyBhIHVybCBjcmVhdGVkIGZyb20gdGhlIGdpdmVuIHVybCBhbmQgc3VmZml4IChhbGwgc3Ry
aW5ncykuCiAgICAgIiIiCkBAIC0xMzAsMzIgKzE1OSw0MSBAQCBkZWYgZ2xvYmFsX3ZhcmlhbnRf
dXJsKHVybCwgc3VmZml4KToKICAgICByZXR1cm4gcmVwbGFjZV9lbmQodXJsLCAiLmpzIiwgc3Vm
Zml4KQogCiAKK2RlZiBfcGFyc2VfaHRtbChmKToKKyAgICAjIHR5cGU6IChCaW5hcnlJTykgLT4g
RWxlbWVudFRyZWUuRWxlbWVudFRyZWUKKyAgICBkb2MgPSBodG1sNWxpYi5wYXJzZShmLCB0cmVl
YnVpbGRlcj0iZXRyZWUiLCB1c2VDaGFyZGV0PUZhbHNlKQorICAgIGlmIE1ZUFk6CisgICAgICAg
IHJldHVybiBjYXN0KEVsZW1lbnRUcmVlLkVsZW1lbnRUcmVlLCBkb2MpCisgICAgcmV0dXJuIGRv
YworCiBkZWYgX3BhcnNlX3htbChmKToKKyAgICAjIHR5cGU6IChCaW5hcnlJTykgLT4gRWxlbWVu
dFRyZWUuRWxlbWVudFRyZWUKICAgICB0cnk6CiAgICAgICAgICMgcmFpc2VzIFZhbHVlRXJyb3Ig
d2l0aCBhbiB1bnN1cHBvcnRlZCBlbmNvZGluZywKICAgICAgICAgIyBQYXJzZUVycm9yIHdoZW4g
dGhlcmUncyBhbiB1bmRlZmluZWQgZW50aXR5CiAgICAgICAgIHJldHVybiBFbGVtZW50VHJlZS5w
YXJzZShmKQogICAgIGV4Y2VwdCAoVmFsdWVFcnJvciwgRWxlbWVudFRyZWUuUGFyc2VFcnJvcik6
CiAgICAgICAgIGYuc2VlaygwKQotICAgICAgICByZXR1cm4gRWxlbWVudFRyZWUucGFyc2UoZiwg
WE1MUGFyc2VyLlhNTFBhcnNlcigpKQorICAgICAgICByZXR1cm4gRWxlbWVudFRyZWUucGFyc2Uo
ZiwgWE1MUGFyc2VyLlhNTFBhcnNlcigpKSAgIyB0eXBlOiBpZ25vcmUKIAogCiBjbGFzcyBTb3Vy
Y2VGaWxlKG9iamVjdCk6Ci0gICAgcGFyc2VycyA9IHsiaHRtbCI6bGFtYmRhIHg6aHRtbDVsaWIu
cGFyc2UoeCwgdHJlZWJ1aWxkZXI9ImV0cmVlIiwgdXNlQ2hhcmRldD1GYWxzZSksCisgICAgcGFy
c2VycyA9IHsiaHRtbCI6X3BhcnNlX2h0bWwsCiAgICAgICAgICAgICAgICAieGh0bWwiOl9wYXJz
ZV94bWwsCi0gICAgICAgICAgICAgICAic3ZnIjpfcGFyc2VfeG1sfQorICAgICAgICAgICAgICAg
InN2ZyI6X3BhcnNlX3htbH0gICMgdHlwZTogRGljdFtUZXh0LCBDYWxsYWJsZVtbQmluYXJ5SU9d
LCBFbGVtZW50VHJlZS5FbGVtZW50VHJlZV1dCiAKLSAgICByb290X2Rpcl9ub25fdGVzdCA9IHNl
dChbImNvbW1vbiJdKQorICAgIHJvb3RfZGlyX25vbl90ZXN0ID0geyJjb21tb24ifQogCi0gICAg
ZGlyX25vbl90ZXN0ID0gc2V0KFsicmVzb3VyY2VzIiwKLSAgICAgICAgICAgICAgICAgICAgICAg
ICJzdXBwb3J0IiwKLSAgICAgICAgICAgICAgICAgICAgICAgICJ0b29scyJdKQorICAgIGRpcl9u
b25fdGVzdCA9IHsicmVzb3VyY2VzIiwKKyAgICAgICAgICAgICAgICAgICAgInN1cHBvcnQiLAor
ICAgICAgICAgICAgICAgICAgICAidG9vbHMifQogCiAgICAgZGlyX3BhdGhfbm9uX3Rlc3QgPSB7
KCJjc3MyMSIsICJhcmNoaXZlIiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgKCJjc3MiLCAi
Q1NTMiIsICJhcmNoaXZlIiksCi0gICAgICAgICAgICAgICAgICAgICAgICAgKCJjc3MiLCAiY29t
bW9uIil9CisgICAgICAgICAgICAgICAgICAgICAgICAgKCJjc3MiLCAiY29tbW9uIil9ICAjIHR5
cGU6IFNldFtUdXBsZVtieXRlcywgLi4uXV0KIAogICAgIGRlZiBfX2luaXRfXyhzZWxmLCB0ZXN0
c19yb290LCByZWxfcGF0aCwgdXJsX2Jhc2UsIGhhc2g9Tm9uZSwgY29udGVudHM9Tm9uZSk6Cisg
ICAgICAgICMgdHlwZTogKEFueVN0ciwgQW55U3RyLCBUZXh0LCBPcHRpb25hbFtieXRlc10sIE9w
dGlvbmFsW2J5dGVzXSkgLT4gTm9uZQogICAgICAgICAiIiJPYmplY3QgcmVwcmVzZW50aW5nIGEg
ZmlsZSBpbiBhIHNvdXJjZSB0cmVlLgogCiAgICAgICAgIDpwYXJhbSB0ZXN0c19yb290OiBQYXRo
IHRvIHRoZSByb290IG9mIHRoZSBzb3VyY2UgdHJlZQpAQCAtMTY0LDMxICsyMDIsMzkgQEAgY2xh
c3MgU291cmNlRmlsZShvYmplY3QpOgogICAgICAgICA6cGFyYW0gY29udGVudHM6IEJ5dGUgYXJy
YXkgb2YgdGhlIGNvbnRlbnRzIG9mIHRoZSBmaWxlIG9yIGBgTm9uZWBgLgogICAgICAgICAiIiIK
IAotICAgICAgICBzZWxmLnRlc3RzX3Jvb3QgPSB0ZXN0c19yb290CisgICAgICAgIGFzc2VydCBu
b3Qgb3MucGF0aC5pc2FicyhyZWxfcGF0aCksIHJlbF9wYXRoCisKICAgICAgICAgaWYgb3MubmFt
ZSA9PSAibnQiOgogICAgICAgICAgICAgIyBkbyBzbGFzaCBub3JtYWxpemF0aW9uIG9uIFdpbmRv
d3MKICAgICAgICAgICAgIGlmIGlzaW5zdGFuY2UocmVsX3BhdGgsIGJpbmFyeV90eXBlKToKLSAg
ICAgICAgICAgICAgICBzZWxmLnJlbF9wYXRoID0gcmVsX3BhdGgucmVwbGFjZShiIi8iLCBiIlxc
IikKKyAgICAgICAgICAgICAgICByZWxfcGF0aCA9IHJlbF9wYXRoLnJlcGxhY2UoYiIvIiwgYiJc
XCIpCiAgICAgICAgICAgICBlbHNlOgotICAgICAgICAgICAgICAgIHNlbGYucmVsX3BhdGggPSBy
ZWxfcGF0aC5yZXBsYWNlKHUiLyIsIHUiXFwiKQotICAgICAgICBlbHNlOgotICAgICAgICAgICAg
c2VsZi5yZWxfcGF0aCA9IHJlbF9wYXRoCi0gICAgICAgIHNlbGYudXJsX2Jhc2UgPSB1cmxfYmFz
ZQotICAgICAgICBzZWxmLmNvbnRlbnRzID0gY29udGVudHMKKyAgICAgICAgICAgICAgICByZWxf
cGF0aCA9IHJlbF9wYXRoLnJlcGxhY2UodSIvIiwgdSJcXCIpCiAKLSAgICAgICAgc2VsZi5kaXJf
cGF0aCwgc2VsZi5maWxlbmFtZSA9IG9zLnBhdGguc3BsaXQoc2VsZi5yZWxfcGF0aCkKLSAgICAg
ICAgc2VsZi5uYW1lLCBzZWxmLmV4dCA9IG9zLnBhdGguc3BsaXRleHQoc2VsZi5maWxlbmFtZSkK
KyAgICAgICAgZGlyX3BhdGgsIGZpbGVuYW1lID0gb3MucGF0aC5zcGxpdChyZWxfcGF0aCkKKyAg
ICAgICAgbmFtZSwgZXh0ID0gb3MucGF0aC5zcGxpdGV4dChmaWxlbmFtZSkKIAotICAgICAgICBz
ZWxmLnR5cGVfZmxhZyA9IE5vbmUKLSAgICAgICAgaWYgIi0iIGluIHNlbGYubmFtZToKLSAgICAg
ICAgICAgIHNlbGYudHlwZV9mbGFnID0gc2VsZi5uYW1lLnJzcGxpdCgiLSIsIDEpWzFdLnNwbGl0
KCIuIilbMF0KKyAgICAgICAgdHlwZV9mbGFnID0gTm9uZQorICAgICAgICBpZiAiLSIgaW4gbmFt
ZToKKyAgICAgICAgICAgIHR5cGVfZmxhZyA9IG5hbWUucnNwbGl0KCItIiwgMSlbMV0uc3BsaXQo
Ii4iKVswXQogCi0gICAgICAgIHNlbGYubWV0YV9mbGFncyA9IHNlbGYubmFtZS5zcGxpdCgiLiIp
WzE6XQorICAgICAgICBtZXRhX2ZsYWdzID0gbmFtZS5zcGxpdCgiLiIpWzE6XQogCi0gICAgICAg
IHNlbGYuaXRlbXNfY2FjaGUgPSBOb25lCisgICAgICAgIHNlbGYudGVzdHNfcm9vdCA9IHRlc3Rz
X3Jvb3QgICMgdHlwZTogVW5pb25bYnl0ZXMsIFRleHRdCisgICAgICAgIHNlbGYucmVsX3BhdGgg
PSByZWxfcGF0aCAgIyB0eXBlOiBVbmlvbltieXRlcywgVGV4dF0KKyAgICAgICAgc2VsZi5kaXJf
cGF0aCA9IGRpcl9wYXRoICAjIHR5cGU6IFVuaW9uW2J5dGVzLCBUZXh0XQorICAgICAgICBzZWxm
LmZpbGVuYW1lID0gZmlsZW5hbWUgICMgdHlwZTogVW5pb25bYnl0ZXMsIFRleHRdCisgICAgICAg
IHNlbGYubmFtZSA9IG5hbWUgICMgdHlwZTogVW5pb25bYnl0ZXMsIFRleHRdCisgICAgICAgIHNl
bGYuZXh0ID0gZXh0ICAjIHR5cGU6IFVuaW9uW2J5dGVzLCBUZXh0XQorICAgICAgICBzZWxmLnR5
cGVfZmxhZyA9IHR5cGVfZmxhZyAgIyB0eXBlOiBPcHRpb25hbFtVbmlvbltieXRlcywgVGV4dF1d
CisgICAgICAgIHNlbGYubWV0YV9mbGFncyA9IG1ldGFfZmxhZ3MgICMgdHlwZTogVW5pb25bTGlz
dFtieXRlc10sIExpc3RbVGV4dF1dCisgICAgICAgIHNlbGYudXJsX2Jhc2UgPSB1cmxfYmFzZQor
ICAgICAgICBzZWxmLmNvbnRlbnRzID0gY29udGVudHMKKyAgICAgICAgc2VsZi5pdGVtc19jYWNo
ZSA9IE5vbmUgICMgdHlwZTogT3B0aW9uYWxbVHVwbGVbVGV4dCwgTGlzdFtNYW5pZmVzdEl0ZW1d
XV0KICAgICAgICAgc2VsZi5faGFzaCA9IGhhc2gKIAogICAgIGRlZiBfX2dldHN0YXRlX18oc2Vs
Zik6CisgICAgICAgICMgdHlwZTogKCkgLT4gRGljdFtzdHIsIEFueV0KICAgICAgICAgIyBSZW1v
dmUgY29tcHV0ZWQgcHJvcGVydGllcyBpZiB3ZSBwaWNrbGUgdGhpcyBjbGFzcwogICAgICAgICBy
diA9IHNlbGYuX19kaWN0X18uY29weSgpCiAKQEAgLTIwMSwxMiArMjQ3LDE0IEBAIGNsYXNzIFNv
dXJjZUZpbGUob2JqZWN0KToKICAgICAgICAgcmV0dXJuIHJ2CiAKICAgICBkZWYgbmFtZV9wcmVm
aXgoc2VsZiwgcHJlZml4KToKKyAgICAgICAgIyB0eXBlOiAoYnl0ZXMpIC0+IGJvb2wKICAgICAg
ICAgIiIiQ2hlY2sgaWYgdGhlIGZpbGVuYW1lIHN0YXJ0cyB3aXRoIGEgZ2l2ZW4gcHJlZml4CiAK
ICAgICAgICAgOnBhcmFtIHByZWZpeDogVGhlIHByZWZpeCB0byBjaGVjayIiIgogICAgICAgICBy
ZXR1cm4gc2VsZi5uYW1lLnN0YXJ0c3dpdGgocHJlZml4KQogCiAgICAgZGVmIGlzX2RpcihzZWxm
KToKKyAgICAgICAgIyB0eXBlOiAoKSAtPiBib29sCiAgICAgICAgICIiIlJldHVybiB3aGV0aGVy
IHRoaXMgZmlsZSByZXByZXNlbnRzIGEgZGlyZWN0b3J5LiIiIgogICAgICAgICBpZiBzZWxmLmNv
bnRlbnRzIGlzIG5vdCBOb25lOgogICAgICAgICAgICAgcmV0dXJuIEZhbHNlCkBAIC0yMTQsNiAr
MjYyLDcgQEAgY2xhc3MgU291cmNlRmlsZShvYmplY3QpOgogICAgICAgICByZXR1cm4gb3MucGF0
aC5pc2RpcihzZWxmLnJlbF9wYXRoKQogCiAgICAgZGVmIG9wZW4oc2VsZik6CisgICAgICAgICMg
dHlwZTogKCkgLT4gQmluYXJ5SU8KICAgICAgICAgIiIiCiAgICAgICAgIFJldHVybiBlaXRoZXIK
ICAgICAgICAgKiB0aGUgY29udGVudHMgc3BlY2lmaWVkIGluIHRoZSBjb25zdHJ1Y3RvciwgaWYg
YW55OwpAQCAtMjIxLDI5ICsyNzAsNDkgQEAgY2xhc3MgU291cmNlRmlsZShvYmplY3QpOgogICAg
ICAgICAiIiIKIAogICAgICAgICBpZiBzZWxmLmNvbnRlbnRzIGlzIG5vdCBOb25lOgotICAgICAg
ICAgICAgZmlsZV9vYmogPSBDb250ZXh0TWFuYWdlckJ5dGVzSU8oc2VsZi5jb250ZW50cykKKyAg
ICAgICAgICAgIHdyYXBwZWQgPSBDb250ZXh0TWFuYWdlckJ5dGVzSU8oc2VsZi5jb250ZW50cykK
KyAgICAgICAgICAgIGlmIE1ZUFk6CisgICAgICAgICAgICAgICAgZmlsZV9vYmogPSBjYXN0KEJp
bmFyeUlPLCB3cmFwcGVkKQorICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICBmaWxl
X29iaiA9IHdyYXBwZWQKICAgICAgICAgZWxzZToKICAgICAgICAgICAgIGZpbGVfb2JqID0gb3Bl
bihzZWxmLnBhdGgsICdyYicpCiAgICAgICAgIHJldHVybiBmaWxlX29iagogCiAgICAgQGNhY2hl
ZF9wcm9wZXJ0eQogICAgIGRlZiBwYXRoKHNlbGYpOgorICAgICAgICAjIHR5cGU6ICgpIC0+IFVu
aW9uW2J5dGVzLCBUZXh0XQogICAgICAgICByZXR1cm4gb3MucGF0aC5qb2luKHNlbGYudGVzdHNf
cm9vdCwgc2VsZi5yZWxfcGF0aCkKIAorICAgIEBjYWNoZWRfcHJvcGVydHkKKyAgICBkZWYgcmVs
X3VybChzZWxmKToKKyAgICAgICAgIyB0eXBlOiAoKSAtPiBUZXh0CisgICAgICAgIGFzc2VydCBu
b3Qgb3MucGF0aC5pc2FicyhzZWxmLnJlbF9wYXRoKSwgc2VsZi5yZWxfcGF0aAorICAgICAgICBy
ZXR1cm4gc2VsZi5yZWxfcGF0aC5yZXBsYWNlKG9zLnNlcCwgIi8iKQorCiAgICAgQGNhY2hlZF9w
cm9wZXJ0eQogICAgIGRlZiB1cmwoc2VsZik6Ci0gICAgICAgIHJldHVybiByZWxfcGF0aF90b191
cmwoc2VsZi5yZWxfcGF0aCwgc2VsZi51cmxfYmFzZSkKKyAgICAgICAgIyB0eXBlOiAoKSAtPiBU
ZXh0CisgICAgICAgIHJldHVybiB1cmxqb2luKHNlbGYudXJsX2Jhc2UsIHNlbGYucmVsX3VybCkK
IAogICAgIEBjYWNoZWRfcHJvcGVydHkKICAgICBkZWYgaGFzaChzZWxmKToKKyAgICAgICAgIyB0
eXBlOiAoKSAtPiBieXRlcwogICAgICAgICBpZiBub3Qgc2VsZi5faGFzaDoKICAgICAgICAgICAg
IHdpdGggc2VsZi5vcGVuKCkgYXMgZjoKICAgICAgICAgICAgICAgICBjb250ZW50ID0gZi5yZWFk
KCkKLSAgICAgICAgICAgIGRhdGEgPSAiIi5qb2luKCgiYmxvYiAiLCBzdHIobGVuKGNvbnRlbnQp
KSwgIlwwIiwgY29udGVudCkpCi0gICAgICAgICAgICBzZWxmLl9oYXNoID0gaGFzaGxpYi5zaGEx
KGRhdGEpLmhleGRpZ2VzdCgpCisKKyAgICAgICAgICAgIGRhdGEgPSBiIiIuam9pbigoYiJibG9i
ICIsIGIiJWQiICUgbGVuKGNvbnRlbnQpLCBiIlwwIiwgY29udGVudCkpCisgICAgICAgICAgICBo
YXNoX3N0ciA9IGhhc2hsaWIuc2hhMShkYXRhKS5oZXhkaWdlc3QoKSAgIyB0eXBlOiBzdHIKKyAg
ICAgICAgICAgIGlmIFBZMzoKKyAgICAgICAgICAgICAgICBzZWxmLl9oYXNoID0gaGFzaF9zdHIu
ZW5jb2RlKCJhc2NpaSIpCisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgIHNlbGYu
X2hhc2ggPSBoYXNoX3N0cgorCiAgICAgICAgIHJldHVybiBzZWxmLl9oYXNoCiAKICAgICBkZWYg
aW5fbm9uX3Rlc3RfZGlyKHNlbGYpOgorICAgICAgICAjIHR5cGU6ICgpIC0+IGJvb2wKICAgICAg
ICAgaWYgc2VsZi5kaXJfcGF0aCA9PSAiIjoKICAgICAgICAgICAgIHJldHVybiBUcnVlCiAKQEAg
LTI1Niw2NyArMzI1LDcxIEBAIGNsYXNzIFNvdXJjZUZpbGUob2JqZWN0KToKICAgICAgICAgcmV0
dXJuIEZhbHNlCiAKICAgICBkZWYgaW5fY29uZm9ybWFuY2VfY2hlY2tlcl9kaXIoc2VsZik6Cisg
ICAgICAgICMgdHlwZTogKCkgLT4gYm9vbAogICAgICAgICByZXR1cm4gKHNlbGYuZGlyX3BhdGgg
PT0gImNvbmZvcm1hbmNlLWNoZWNrZXJzIiBvcgogICAgICAgICAgICAgICAgIHNlbGYuZGlyX3Bh
dGguc3RhcnRzd2l0aCgiY29uZm9ybWFuY2UtY2hlY2tlcnMiICsgb3MucGF0aC5zZXApKQogCiAg
ICAgQHByb3BlcnR5CiAgICAgZGVmIG5hbWVfaXNfbm9uX3Rlc3Qoc2VsZik6CisgICAgICAgICMg
dHlwZTogKCkgLT4gYm9vbAogICAgICAgICAiIiJDaGVjayBpZiB0aGUgZmlsZSBuYW1lIG1hdGNo
ZXMgdGhlIGNvbmRpdGlvbnMgZm9yIHRoZSBmaWxlIHRvCiAgICAgICAgIGJlIGEgbm9uLXRlc3Qg
ZmlsZSIiIgogICAgICAgICByZXR1cm4gKHNlbGYuaXNfZGlyKCkgb3IKICAgICAgICAgICAgICAg
ICBzZWxmLm5hbWVfcHJlZml4KCJNQU5JRkVTVCIpIG9yCiAgICAgICAgICAgICAgICAgc2VsZi5m
aWxlbmFtZSA9PSAiTUVUQS55bWwiIG9yCiAgICAgICAgICAgICAgICAgc2VsZi5maWxlbmFtZS5z
dGFydHN3aXRoKCIuIikgb3IKLSAgICAgICAgICAgICAgICBzZWxmLnR5cGVfZmxhZyA9PSAic3Vw
cG9ydCIgb3IKKyAgICAgICAgICAgICAgICBzZWxmLmZpbGVuYW1lLmVuZHN3aXRoKCIuaGVhZGVy
cyIpIG9yCiAgICAgICAgICAgICAgICAgc2VsZi5pbl9ub25fdGVzdF9kaXIoKSkKIAogICAgIEBw
cm9wZXJ0eQogICAgIGRlZiBuYW1lX2lzX2NvbmZvcm1hbmNlKHNlbGYpOgorICAgICAgICAjIHR5
cGU6ICgpIC0+IGJvb2wKICAgICAgICAgcmV0dXJuIChzZWxmLmluX2NvbmZvcm1hbmNlX2NoZWNr
ZXJfZGlyKCkgYW5kCiAgICAgICAgICAgICAgICAgc2VsZi50eXBlX2ZsYWcgaW4gKCJpcy12YWxp
ZCIsICJuby12YWxpZCIpKQogCiAgICAgQHByb3BlcnR5CiAgICAgZGVmIG5hbWVfaXNfY29uZm9y
bWFuY2Vfc3VwcG9ydChzZWxmKToKKyAgICAgICAgIyB0eXBlOiAoKSAtPiBib29sCiAgICAgICAg
IHJldHVybiBzZWxmLmluX2NvbmZvcm1hbmNlX2NoZWNrZXJfZGlyKCkKIAotICAgIEBwcm9wZXJ0
eQotICAgIGRlZiBuYW1lX2lzX3N0dWIoc2VsZik6Ci0gICAgICAgICIiIkNoZWNrIGlmIHRoZSBm
aWxlIG5hbWUgbWF0Y2hlcyB0aGUgY29uZGl0aW9ucyBmb3IgdGhlIGZpbGUgdG8KLSAgICAgICAg
YmUgYSBzdHViIGZpbGUiIiIKLSAgICAgICAgcmV0dXJuIHNlbGYubmFtZV9wcmVmaXgoInN0dWIt
IikKLQogICAgIEBwcm9wZXJ0eQogICAgIGRlZiBuYW1lX2lzX21hbnVhbChzZWxmKToKKyAgICAg
ICAgIyB0eXBlOiAoKSAtPiBib29sCiAgICAgICAgICIiIkNoZWNrIGlmIHRoZSBmaWxlIG5hbWUg
bWF0Y2hlcyB0aGUgY29uZGl0aW9ucyBmb3IgdGhlIGZpbGUgdG8KICAgICAgICAgYmUgYSBtYW51
YWwgdGVzdCBmaWxlIiIiCiAgICAgICAgIHJldHVybiBzZWxmLnR5cGVfZmxhZyA9PSAibWFudWFs
IgogCiAgICAgQHByb3BlcnR5CiAgICAgZGVmIG5hbWVfaXNfdmlzdWFsKHNlbGYpOgorICAgICAg
ICAjIHR5cGU6ICgpIC0+IGJvb2wKICAgICAgICAgIiIiQ2hlY2sgaWYgdGhlIGZpbGUgbmFtZSBt
YXRjaGVzIHRoZSBjb25kaXRpb25zIGZvciB0aGUgZmlsZSB0bwogICAgICAgICBiZSBhIHZpc3Vh
bCB0ZXN0IGZpbGUiIiIKICAgICAgICAgcmV0dXJuIHNlbGYudHlwZV9mbGFnID09ICJ2aXN1YWwi
CiAKICAgICBAcHJvcGVydHkKICAgICBkZWYgbmFtZV9pc19tdWx0aV9nbG9iYWwoc2VsZik6Cisg
ICAgICAgICMgdHlwZTogKCkgLT4gYm9vbAogICAgICAgICAiIiJDaGVjayBpZiB0aGUgZmlsZSBu
YW1lIG1hdGNoZXMgdGhlIGNvbmRpdGlvbnMgZm9yIHRoZSBmaWxlIHRvCiAgICAgICAgIGJlIGEg
bXVsdGktZ2xvYmFsIGpzIHRlc3QgZmlsZSIiIgogICAgICAgICByZXR1cm4gImFueSIgaW4gc2Vs
Zi5tZXRhX2ZsYWdzIGFuZCBzZWxmLmV4dCA9PSAiLmpzIgogCiAgICAgQHByb3BlcnR5CiAgICAg
ZGVmIG5hbWVfaXNfd29ya2VyKHNlbGYpOgorICAgICAgICAjIHR5cGU6ICgpIC0+IGJvb2wKICAg
ICAgICAgIiIiQ2hlY2sgaWYgdGhlIGZpbGUgbmFtZSBtYXRjaGVzIHRoZSBjb25kaXRpb25zIGZv
ciB0aGUgZmlsZSB0bwogICAgICAgICBiZSBhIHdvcmtlciBqcyB0ZXN0IGZpbGUiIiIKICAgICAg
ICAgcmV0dXJuICJ3b3JrZXIiIGluIHNlbGYubWV0YV9mbGFncyBhbmQgc2VsZi5leHQgPT0gIi5q
cyIKIAogICAgIEBwcm9wZXJ0eQogICAgIGRlZiBuYW1lX2lzX3dpbmRvdyhzZWxmKToKKyAgICAg
ICAgIyB0eXBlOiAoKSAtPiBib29sCiAgICAgICAgICIiIkNoZWNrIGlmIHRoZSBmaWxlIG5hbWUg
bWF0Y2hlcyB0aGUgY29uZGl0aW9ucyBmb3IgdGhlIGZpbGUgdG8KICAgICAgICAgYmUgYSB3aW5k
b3cganMgdGVzdCBmaWxlIiIiCiAgICAgICAgIHJldHVybiAid2luZG93IiBpbiBzZWxmLm1ldGFf
ZmxhZ3MgYW5kIHNlbGYuZXh0ID09ICIuanMiCiAKICAgICBAcHJvcGVydHkKICAgICBkZWYgbmFt
ZV9pc193ZWJkcml2ZXIoc2VsZik6CisgICAgICAgICMgdHlwZTogKCkgLT4gYm9vbAogICAgICAg
ICAiIiJDaGVjayBpZiB0aGUgZmlsZSBuYW1lIG1hdGNoZXMgdGhlIGNvbmRpdGlvbnMgZm9yIHRo
ZSBmaWxlIHRvCiAgICAgICAgIGJlIGEgd2ViZHJpdmVyIHNwZWMgdGVzdCBmaWxlIiIiCiAgICAg
ICAgICMgd2RzcGVjIHRlc3RzIGFyZSBpbiBzdWJkaXJlY3RvcmllcyBvZiAvd2ViZHJpdmVyIGV4
Y2x1ZGluZyBfX2luaXRfXy5weQpAQCAtMzMwLDEyICs0MDMsMTQgQEAgY2xhc3MgU291cmNlRmls
ZShvYmplY3QpOgogCiAgICAgQHByb3BlcnR5CiAgICAgZGVmIG5hbWVfaXNfcmVmZXJlbmNlKHNl
bGYpOgorICAgICAgICAjIHR5cGU6ICgpIC0+IGJvb2wKICAgICAgICAgIiIiQ2hlY2sgaWYgdGhl
IGZpbGUgbmFtZSBtYXRjaGVzIHRoZSBjb25kaXRpb25zIGZvciB0aGUgZmlsZSB0bwogICAgICAg
ICBiZSBhIHJlZmVyZW5jZSBmaWxlIChub3QgYSByZWZ0ZXN0KSIiIgotICAgICAgICByZXR1cm4g
Ii9yZWZlcmVuY2UvIiBpbiBzZWxmLnVybCBvciAiL3JlZnRlc3QvIiBpbiBzZWxmLnVybCBvciBi
b29sKHJlZmVyZW5jZV9maWxlX3JlLnNlYXJjaChzZWxmLm5hbWUpKQorICAgICAgICByZXR1cm4g
Ii9yZWZlcmVuY2UvIiBpbiBzZWxmLnVybCBvciBib29sKHJlZmVyZW5jZV9maWxlX3JlLnNlYXJj
aChzZWxmLm5hbWUpKQogCiAgICAgQHByb3BlcnR5CiAgICAgZGVmIG1hcmt1cF90eXBlKHNlbGYp
OgorICAgICAgICAjIHR5cGU6ICgpIC0+IE9wdGlvbmFsW1RleHRdCiAgICAgICAgICIiIlJldHVy
biB0aGUgdHlwZSBvZiBtYXJrdXAgY29udGFpbmVkIGluIGEgZmlsZSwgYmFzZWQgb24gaXRzIGV4
dGVuc2lvbiwKICAgICAgICAgb3IgTm9uZSBpZiBpdCBkb2Vzbid0IGNvbnRhaW4gbWFya3VwIiIi
CiAgICAgICAgIGV4dCA9IHNlbGYuZXh0CkBAIC0zNTQsNiArNDI5LDcgQEAgY2xhc3MgU291cmNl
RmlsZShvYmplY3QpOgogCiAgICAgQGNhY2hlZF9wcm9wZXJ0eQogICAgIGRlZiByb290KHNlbGYp
OgorICAgICAgICAjIHR5cGU6ICgpIC0+IE9wdGlvbmFsW1VuaW9uW0VsZW1lbnRUcmVlLkVsZW1l
bnQsIEVsZW1lbnRUcmVlLkVsZW1lbnRUcmVlXV0KICAgICAgICAgIiIiUmV0dXJuIGFuIEVsZW1l
bnRUcmVlIEVsZW1lbnQgZm9yIHRoZSByb290IG5vZGUgb2YgdGhlIGZpbGUgaWYgaXQgY29udGFp
bnMKICAgICAgICAgbWFya3VwLCBvciBOb25lIGlmIGl0IGRvZXMgbm90IiIiCiAgICAgICAgIGlm
IG5vdCBzZWxmLm1hcmt1cF90eXBlOgpAQCAtMzY4LDcgKzQ0NCw3IEBAIGNsYXNzIFNvdXJjZUZp
bGUob2JqZWN0KToKICAgICAgICAgICAgICAgICByZXR1cm4gTm9uZQogCiAgICAgICAgIGlmIGhh
c2F0dHIodHJlZSwgImdldHJvb3QiKToKLSAgICAgICAgICAgIHJvb3QgPSB0cmVlLmdldHJvb3Qo
KQorICAgICAgICAgICAgcm9vdCA9IHRyZWUuZ2V0cm9vdCgpICAjIHR5cGU6IFVuaW9uW0VsZW1l
bnRUcmVlLkVsZW1lbnQsIEVsZW1lbnRUcmVlLkVsZW1lbnRUcmVlXQogICAgICAgICBlbHNlOgog
ICAgICAgICAgICAgcm9vdCA9IHRyZWUKIApAQCAtMzc2LDEyICs0NTIsMTUgQEAgY2xhc3MgU291
cmNlRmlsZShvYmplY3QpOgogCiAgICAgQGNhY2hlZF9wcm9wZXJ0eQogICAgIGRlZiB0aW1lb3V0
X25vZGVzKHNlbGYpOgorICAgICAgICAjIHR5cGU6ICgpIC0+IExpc3RbRWxlbWVudFRyZWUuRWxl
bWVudF0KICAgICAgICAgIiIiTGlzdCBvZiBFbGVtZW50VHJlZSBFbGVtZW50cyBjb3JyZXNwb25k
aW5nIHRvIG5vZGVzIGluIGEgdGVzdCB0aGF0CiAgICAgICAgIHNwZWNpZnkgdGltZW91dHMiIiIK
KyAgICAgICAgYXNzZXJ0IHNlbGYucm9vdCBpcyBub3QgTm9uZQogICAgICAgICByZXR1cm4gc2Vs
Zi5yb290LmZpbmRhbGwoIi4vL3todHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sfW1ldGFbQG5h
bWU9J3RpbWVvdXQnXSIpCiAKICAgICBAY2FjaGVkX3Byb3BlcnR5CiAgICAgZGVmIHNjcmlwdF9t
ZXRhZGF0YShzZWxmKToKKyAgICAgICAgIyB0eXBlOiAoKSAtPiBPcHRpb25hbFtMaXN0W1R1cGxl
W2J5dGVzLCBieXRlc11dXQogICAgICAgICBpZiBzZWxmLm5hbWVfaXNfd29ya2VyIG9yIHNlbGYu
bmFtZV9pc19tdWx0aV9nbG9iYWwgb3Igc2VsZi5uYW1lX2lzX3dpbmRvdzoKICAgICAgICAgICAg
IHJlZ2V4cCA9IGpzX21ldGFfcmUKICAgICAgICAgZWxpZiBzZWxmLm5hbWVfaXNfd2ViZHJpdmVy
OgpAQCAtMzk0LDYgKzQ3Myw3IEBAIGNsYXNzIFNvdXJjZUZpbGUob2JqZWN0KToKIAogICAgIEBj
YWNoZWRfcHJvcGVydHkKICAgICBkZWYgdGltZW91dChzZWxmKToKKyAgICAgICAgIyB0eXBlOiAo
KSAtPiBPcHRpb25hbFtUZXh0XQogICAgICAgICAiIiJUaGUgdGltZW91dCBvZiBhIHRlc3Qgb3Ig
cmVmZXJlbmNlIGZpbGUuICJsb25nIiBpZiB0aGUgZmlsZSBoYXMgYW4gZXh0ZW5kZWQgdGltZW91
dAogICAgICAgICBvciBOb25lIG90aGVyd2lzZSIiIgogICAgICAgICBpZiBzZWxmLnNjcmlwdF9t
ZXRhZGF0YToKQEAgLTQwNCw3ICs0ODQsNyBAQCBjbGFzcyBTb3VyY2VGaWxlKG9iamVjdCk6CiAg
ICAgICAgICAgICByZXR1cm4gTm9uZQogCiAgICAgICAgIGlmIHNlbGYudGltZW91dF9ub2RlczoK
LSAgICAgICAgICAgIHRpbWVvdXRfc3RyID0gc2VsZi50aW1lb3V0X25vZGVzWzBdLmF0dHJpYi5n
ZXQoImNvbnRlbnQiLCBOb25lKQorICAgICAgICAgICAgdGltZW91dF9zdHIgPSBzZWxmLnRpbWVv
dXRfbm9kZXNbMF0uYXR0cmliLmdldCgiY29udGVudCIsIE5vbmUpICAjIHR5cGU6IE9wdGlvbmFs
W1RleHRdCiAgICAgICAgICAgICBpZiB0aW1lb3V0X3N0ciBhbmQgdGltZW91dF9zdHIubG93ZXIo
KSA9PSAibG9uZyI6CiAgICAgICAgICAgICAgICAgcmV0dXJuICJsb25nIgogCkBAIC00MTIsMTIg
KzQ5MiwxNSBAQCBjbGFzcyBTb3VyY2VGaWxlKG9iamVjdCk6CiAKICAgICBAY2FjaGVkX3Byb3Bl
cnR5CiAgICAgZGVmIHZpZXdwb3J0X25vZGVzKHNlbGYpOgorICAgICAgICAjIHR5cGU6ICgpIC0+
IExpc3RbRWxlbWVudFRyZWUuRWxlbWVudF0KICAgICAgICAgIiIiTGlzdCBvZiBFbGVtZW50VHJl
ZSBFbGVtZW50cyBjb3JyZXNwb25kaW5nIHRvIG5vZGVzIGluIGEgdGVzdCB0aGF0CiAgICAgICAg
IHNwZWNpZnkgdmlld3BvcnQgc2l6ZXMiIiIKKyAgICAgICAgYXNzZXJ0IHNlbGYucm9vdCBpcyBu
b3QgTm9uZQogICAgICAgICByZXR1cm4gc2VsZi5yb290LmZpbmRhbGwoIi4vL3todHRwOi8vd3d3
LnczLm9yZy8xOTk5L3hodG1sfW1ldGFbQG5hbWU9J3ZpZXdwb3J0LXNpemUnXSIpCiAKICAgICBA
Y2FjaGVkX3Byb3BlcnR5CiAgICAgZGVmIHZpZXdwb3J0X3NpemUoc2VsZik6CisgICAgICAgICMg
dHlwZTogKCkgLT4gT3B0aW9uYWxbVGV4dF0KICAgICAgICAgIiIiVGhlIHZpZXdwb3J0IHNpemUg
b2YgYSB0ZXN0IG9yIHJlZmVyZW5jZSBmaWxlIiIiCiAgICAgICAgIGlmIHNlbGYucm9vdCBpcyBO
b25lOgogICAgICAgICAgICAgcmV0dXJuIE5vbmUKQEAgLTQyOSwxMiArNTEyLDE1IEBAIGNsYXNz
IFNvdXJjZUZpbGUob2JqZWN0KToKIAogICAgIEBjYWNoZWRfcHJvcGVydHkKICAgICBkZWYgZHBp
X25vZGVzKHNlbGYpOgorICAgICAgICAjIHR5cGU6ICgpIC0+IExpc3RbRWxlbWVudFRyZWUuRWxl
bWVudF0KICAgICAgICAgIiIiTGlzdCBvZiBFbGVtZW50VHJlZSBFbGVtZW50cyBjb3JyZXNwb25k
aW5nIHRvIG5vZGVzIGluIGEgdGVzdCB0aGF0CiAgICAgICAgIHNwZWNpZnkgZGV2aWNlIHBpeGVs
IHJhdGlvcyIiIgorICAgICAgICBhc3NlcnQgc2VsZi5yb290IGlzIG5vdCBOb25lCiAgICAgICAg
IHJldHVybiBzZWxmLnJvb3QuZmluZGFsbCgiLi8ve2h0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0
bWx9bWV0YVtAbmFtZT0nZGV2aWNlLXBpeGVsLXJhdGlvJ10iKQogCiAgICAgQGNhY2hlZF9wcm9w
ZXJ0eQogICAgIGRlZiBkcGkoc2VsZik6CisgICAgICAgICMgdHlwZTogKCkgLT4gT3B0aW9uYWxb
VGV4dF0KICAgICAgICAgIiIiVGhlIGRldmljZSBwaXhlbCByYXRpbyBvZiBhIHRlc3Qgb3IgcmVm
ZXJlbmNlIGZpbGUiIiIKICAgICAgICAgaWYgc2VsZi5yb290IGlzIE5vbmU6CiAgICAgICAgICAg
ICByZXR1cm4gTm9uZQpAQCAtNDQ0LDE0ICs1MzAsOTMgQEAgY2xhc3MgU291cmNlRmlsZShvYmpl
Y3QpOgogCiAgICAgICAgIHJldHVybiBzZWxmLmRwaV9ub2Rlc1swXS5hdHRyaWIuZ2V0KCJjb250
ZW50IiwgTm9uZSkKIAorICAgIEBjYWNoZWRfcHJvcGVydHkKKyAgICBkZWYgZnV6enlfbm9kZXMo
c2VsZik6CisgICAgICAgICMgdHlwZTogKCkgLT4gTGlzdFtFbGVtZW50VHJlZS5FbGVtZW50XQor
ICAgICAgICAiIiJMaXN0IG9mIEVsZW1lbnRUcmVlIEVsZW1lbnRzIGNvcnJlc3BvbmRpbmcgdG8g
bm9kZXMgaW4gYSB0ZXN0IHRoYXQKKyAgICAgICAgc3BlY2lmeSByZWZ0ZXN0IGZ1enppbmVzcyIi
IgorICAgICAgICBhc3NlcnQgc2VsZi5yb290IGlzIG5vdCBOb25lCisgICAgICAgIHJldHVybiBz
ZWxmLnJvb3QuZmluZGFsbCgiLi8ve2h0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWx9bWV0YVtA
bmFtZT0nZnV6enknXSIpCisKKyAgICBAY2FjaGVkX3Byb3BlcnR5CisgICAgZGVmIGZ1enp5KHNl
bGYpOgorICAgICAgICAjIHR5cGU6ICgpIC0+IERpY3RbT3B0aW9uYWxbVHVwbGVbVGV4dCwgVGV4
dCwgVGV4dF1dLCBMaXN0W0xpc3RbaW50XV1dCisgICAgICAgIHJ2ID0ge30gICMgdHlwZTogRGlj
dFtPcHRpb25hbFtUdXBsZVtUZXh0LCBUZXh0LCBUZXh0XV0sIExpc3RbTGlzdFtpbnRdXV0KKyAg
ICAgICAgaWYgc2VsZi5yb290IGlzIE5vbmU6CisgICAgICAgICAgICByZXR1cm4gcnYKKworICAg
ICAgICBpZiBub3Qgc2VsZi5mdXp6eV9ub2RlczoKKyAgICAgICAgICAgIHJldHVybiBydgorCisg
ICAgICAgIGFyZ3MgPSBbdSJtYXhEaWZmZXJlbmNlIiwgdSJ0b3RhbFBpeGVscyJdCisKKyAgICAg
ICAgZm9yIG5vZGUgaW4gc2VsZi5mdXp6eV9ub2RlczoKKyAgICAgICAgICAgIGl0ZW0gPSBub2Rl
LmF0dHJpYi5nZXQodSJjb250ZW50IiwgdSIiKSAgIyB0eXBlOiBUZXh0CisKKyAgICAgICAgICAg
IHBhcnRzID0gaXRlbS5yc3BsaXQodSI6IiwgMSkKKyAgICAgICAgICAgIGlmIGxlbihwYXJ0cykg
PT0gMToKKyAgICAgICAgICAgICAgICBrZXkgPSBOb25lICAjIHR5cGU6IE9wdGlvbmFsW1R1cGxl
W1RleHQsIFRleHQsIFRleHRdXQorICAgICAgICAgICAgICAgIHZhbHVlID0gcGFydHNbMF0KKyAg
ICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAga2V5X3BhcnQgPSB1cmxqb2luKHNlbGYu
dXJsLCBwYXJ0c1swXSkKKyAgICAgICAgICAgICAgICByZWZ0eXBlID0gTm9uZQorICAgICAgICAg
ICAgICAgIGZvciByZWYgaW4gc2VsZi5yZWZlcmVuY2VzOiAgIyB0eXBlOiBUdXBsZVtUZXh0LCBU
ZXh0XQorICAgICAgICAgICAgICAgICAgICBpZiByZWZbMF0gPT0ga2V5X3BhcnQ6CisgICAgICAg
ICAgICAgICAgICAgICAgICByZWZ0eXBlID0gcmVmWzFdCisgICAgICAgICAgICAgICAgICAgICAg
ICBicmVhaworICAgICAgICAgICAgICAgIGlmIHJlZnR5cGUgbm90IGluICh1Ij09IiwgdSIhPSIp
OgorICAgICAgICAgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJGdXp6eSBrZXkgJXMgZG9l
c24ndCBjb3JyZXNwb25kIHRvIGEgcmVmZXJlbmNlcyIgJSBrZXlfcGFydCkKKyAgICAgICAgICAg
ICAgICBrZXkgPSAoc2VsZi51cmwsIGtleV9wYXJ0LCByZWZ0eXBlKQorICAgICAgICAgICAgICAg
IHZhbHVlID0gcGFydHNbMV0KKyAgICAgICAgICAgIHJhbmdlcyA9IHZhbHVlLnNwbGl0KHUiOyIp
CisgICAgICAgICAgICBpZiBsZW4ocmFuZ2VzKSAhPSAyOgorICAgICAgICAgICAgICAgIHJhaXNl
IFZhbHVlRXJyb3IoIk1hbGZvcm1lZCBmdXp6eSB2YWx1ZSAlcyIgJSBpdGVtKQorICAgICAgICAg
ICAgYXJnX3ZhbHVlcyA9IHt9ICAjIHR5cGU6IERpY3RbVGV4dCwgTGlzdFtpbnRdXQorICAgICAg
ICAgICAgcG9zaXRpb25hbF9hcmdzID0gZGVxdWUoKSAgIyB0eXBlOiBEZXF1ZVtMaXN0W2ludF1d
CisgICAgICAgICAgICBmb3IgcmFuZ2Vfc3RyX3ZhbHVlIGluIHJhbmdlczogICMgdHlwZTogVGV4
dAorICAgICAgICAgICAgICAgIG5hbWUgPSBOb25lICAjIHR5cGU6IE9wdGlvbmFsW1RleHRdCisg
ICAgICAgICAgICAgICAgaWYgdSI9IiBpbiByYW5nZV9zdHJfdmFsdWU6CisgICAgICAgICAgICAg
ICAgICAgIG5hbWUsIHJhbmdlX3N0cl92YWx1ZSA9IFtwYXJ0LnN0cmlwKCkKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvciBwYXJ0IGluIHJhbmdlX3N0cl92
YWx1ZS5zcGxpdCh1Ij0iLCAxKV0KKyAgICAgICAgICAgICAgICAgICAgaWYgbmFtZSBub3QgaW4g
YXJnczoKKyAgICAgICAgICAgICAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoIiVzIGlzIG5v
dCBhIHZhbGlkIGZ1enp5IHByb3BlcnR5IiAlIG5hbWUpCisgICAgICAgICAgICAgICAgICAgIGlm
IGFyZ192YWx1ZXMuZ2V0KG5hbWUpOgorICAgICAgICAgICAgICAgICAgICAgICAgcmFpc2UgVmFs
dWVFcnJvcigiR290IG11bHRpcGxlIHZhbHVlcyBmb3IgYXJndW1lbnQgJXMiICUgbmFtZSkKKyAg
ICAgICAgICAgICAgICBpZiB1Ii0iIGluIHJhbmdlX3N0cl92YWx1ZToKKyAgICAgICAgICAgICAg
ICAgICAgcmFuZ2VfbWluLCByYW5nZV9tYXggPSByYW5nZV9zdHJfdmFsdWUuc3BsaXQodSItIikK
KyAgICAgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgICAgICByYW5nZV9taW4gPSBy
YW5nZV9zdHJfdmFsdWUKKyAgICAgICAgICAgICAgICAgICAgcmFuZ2VfbWF4ID0gcmFuZ2Vfc3Ry
X3ZhbHVlCisgICAgICAgICAgICAgICAgdHJ5OgorICAgICAgICAgICAgICAgICAgICByYW5nZV92
YWx1ZSA9IFtpbnQoeC5zdHJpcCgpKSBmb3IgeCBpbiAocmFuZ2VfbWluLCByYW5nZV9tYXgpXQor
ICAgICAgICAgICAgICAgIGV4Y2VwdCBWYWx1ZUVycm9yOgorICAgICAgICAgICAgICAgICAgICBy
YWlzZSBWYWx1ZUVycm9yKCJGdXp6eSB2YWx1ZSAlcyBtdXN0IGJlIGEgcmFuZ2Ugb2YgaW50ZWdl
cnMiICUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByYW5nZV9zdHJfdmFs
dWUpCisgICAgICAgICAgICAgICAgaWYgbmFtZSBpcyBOb25lOgorICAgICAgICAgICAgICAgICAg
ICBwb3NpdGlvbmFsX2FyZ3MuYXBwZW5kKHJhbmdlX3ZhbHVlKQorICAgICAgICAgICAgICAgIGVs
c2U6CisgICAgICAgICAgICAgICAgICAgIGFyZ192YWx1ZXNbbmFtZV0gPSByYW5nZV92YWx1ZQor
ICAgICAgICAgICAgcnZba2V5XSA9IFtdCisgICAgICAgICAgICBmb3IgYXJnX25hbWUgaW4gYXJn
czoKKyAgICAgICAgICAgICAgICBpZiBhcmdfdmFsdWVzLmdldChhcmdfbmFtZSk6CisgICAgICAg
ICAgICAgICAgICAgIGFyZ192YWx1ZSA9IGFyZ192YWx1ZXMucG9wKGFyZ19uYW1lKQorICAgICAg
ICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgICAgIGFyZ192YWx1ZSA9IHBvc2l0aW9u
YWxfYXJncy5wb3BsZWZ0KCkKKyAgICAgICAgICAgICAgICBydltrZXldLmFwcGVuZChhcmdfdmFs
dWUpCisgICAgICAgICAgICBhc3NlcnQgbGVuKGFyZ192YWx1ZXMpID09IDAgYW5kIGxlbihwb3Np
dGlvbmFsX2FyZ3MpID09IDAKKyAgICAgICAgcmV0dXJuIHJ2CisKICAgICBAY2FjaGVkX3Byb3Bl
cnR5CiAgICAgZGVmIHRlc3RoYXJuZXNzX25vZGVzKHNlbGYpOgorICAgICAgICAjIHR5cGU6ICgp
IC0+IExpc3RbRWxlbWVudFRyZWUuRWxlbWVudF0KICAgICAgICAgIiIiTGlzdCBvZiBFbGVtZW50
VHJlZSBFbGVtZW50cyBjb3JyZXNwb25kaW5nIHRvIG5vZGVzIHJlcHJlc2VudGluZyBhCiAgICAg
ICAgIHRlc3RoYXJuZXNzLmpzIHNjcmlwdCIiIgorICAgICAgICBhc3NlcnQgc2VsZi5yb290IGlz
IG5vdCBOb25lCiAgICAgICAgIHJldHVybiBzZWxmLnJvb3QuZmluZGFsbCgiLi8ve2h0dHA6Ly93
d3cudzMub3JnLzE5OTkveGh0bWx9c2NyaXB0W0BzcmM9Jy9yZXNvdXJjZXMvdGVzdGhhcm5lc3Mu
anMnXSIpCiAKICAgICBAY2FjaGVkX3Byb3BlcnR5CiAgICAgZGVmIGNvbnRlbnRfaXNfdGVzdGhh
cm5lc3Moc2VsZik6CisgICAgICAgICMgdHlwZTogKCkgLT4gT3B0aW9uYWxbYm9vbF0KICAgICAg
ICAgIiIiQm9vbGVhbiBpbmRpY2F0aW5nIHdoZXRoZXIgdGhlIGZpbGUgY29udGVudCByZXByZXNl
bnRzIGEKICAgICAgICAgdGVzdGhhcm5lc3MuanMgdGVzdCIiIgogICAgICAgICBpZiBzZWxmLnJv
b3QgaXMgTm9uZToKQEAgLTQ2MCwyMSArNjI1LDI2IEBAIGNsYXNzIFNvdXJjZUZpbGUob2JqZWN0
KToKIAogICAgIEBjYWNoZWRfcHJvcGVydHkKICAgICBkZWYgdmFyaWFudF9ub2RlcyhzZWxmKToK
KyAgICAgICAgIyB0eXBlOiAoKSAtPiBMaXN0W0VsZW1lbnRUcmVlLkVsZW1lbnRdCiAgICAgICAg
ICIiIkxpc3Qgb2YgRWxlbWVudFRyZWUgRWxlbWVudHMgY29ycmVzcG9uZGluZyB0byBub2RlcyBy
ZXByZXNlbnRpbmcgYQogICAgICAgICB0ZXN0IHZhcmlhbnQiIiIKKyAgICAgICAgYXNzZXJ0IHNl
bGYucm9vdCBpcyBub3QgTm9uZQogICAgICAgICByZXR1cm4gc2VsZi5yb290LmZpbmRhbGwoIi4v
L3todHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sfW1ldGFbQG5hbWU9J3ZhcmlhbnQnXSIpCiAK
ICAgICBAY2FjaGVkX3Byb3BlcnR5CiAgICAgZGVmIHRlc3RfdmFyaWFudHMoc2VsZik6Ci0gICAg
ICAgIHJ2ID0gW10KKyAgICAgICAgIyB0eXBlOiAoKSAtPiBMaXN0W1RleHRdCisgICAgICAgIHJ2
ID0gW10gICMgdHlwZTogTGlzdFtUZXh0XQogICAgICAgICBpZiBzZWxmLmV4dCA9PSAiLmpzIjoK
LSAgICAgICAgICAgIGZvciAoa2V5LCB2YWx1ZSkgaW4gc2VsZi5zY3JpcHRfbWV0YWRhdGE6Cisg
ICAgICAgICAgICBzY3JpcHRfbWV0YWRhdGEgPSBzZWxmLnNjcmlwdF9tZXRhZGF0YQorICAgICAg
ICAgICAgYXNzZXJ0IHNjcmlwdF9tZXRhZGF0YSBpcyBub3QgTm9uZQorICAgICAgICAgICAgZm9y
IChrZXksIHZhbHVlKSBpbiBzY3JpcHRfbWV0YWRhdGE6CiAgICAgICAgICAgICAgICAgaWYga2V5
ID09IGIidmFyaWFudCI6CiAgICAgICAgICAgICAgICAgICAgIHJ2LmFwcGVuZCh2YWx1ZS5kZWNv
ZGUoInV0Zi04IikpCiAgICAgICAgIGVsc2U6CiAgICAgICAgICAgICBmb3IgZWxlbWVudCBpbiBz
ZWxmLnZhcmlhbnRfbm9kZXM6CiAgICAgICAgICAgICAgICAgaWYgImNvbnRlbnQiIGluIGVsZW1l
bnQuYXR0cmliOgotICAgICAgICAgICAgICAgICAgICB2YXJpYW50ID0gZWxlbWVudC5hdHRyaWJb
ImNvbnRlbnQiXQorICAgICAgICAgICAgICAgICAgICB2YXJpYW50ID0gZWxlbWVudC5hdHRyaWJb
ImNvbnRlbnQiXSAgIyB0eXBlOiBUZXh0CiAgICAgICAgICAgICAgICAgICAgIHJ2LmFwcGVuZCh2
YXJpYW50KQogCiAgICAgICAgIGZvciB2YXJpYW50IGluIHJ2OgpAQCAtNDg3LDEyICs2NTcsMTUg
QEAgY2xhc3MgU291cmNlRmlsZShvYmplY3QpOgogCiAgICAgQGNhY2hlZF9wcm9wZXJ0eQogICAg
IGRlZiB0ZXN0ZHJpdmVyX25vZGVzKHNlbGYpOgorICAgICAgICAjIHR5cGU6ICgpIC0+IExpc3Rb
RWxlbWVudFRyZWUuRWxlbWVudF0KICAgICAgICAgIiIiTGlzdCBvZiBFbGVtZW50VHJlZSBFbGVt
ZW50cyBjb3JyZXNwb25kaW5nIHRvIG5vZGVzIHJlcHJlc2VudGluZyBhCiAgICAgICAgIHRlc3Rk
cml2ZXIuanMgc2NyaXB0IiIiCisgICAgICAgIGFzc2VydCBzZWxmLnJvb3QgaXMgbm90IE5vbmUK
ICAgICAgICAgcmV0dXJuIHNlbGYucm9vdC5maW5kYWxsKCIuLy97aHR0cDovL3d3dy53My5vcmcv
MTk5OS94aHRtbH1zY3JpcHRbQHNyYz0nL3Jlc291cmNlcy90ZXN0ZHJpdmVyLmpzJ10iKQogCiAg
ICAgQGNhY2hlZF9wcm9wZXJ0eQogICAgIGRlZiBoYXNfdGVzdGRyaXZlcihzZWxmKToKKyAgICAg
ICAgIyB0eXBlOiAoKSAtPiBPcHRpb25hbFtib29sXQogICAgICAgICAiIiJCb29sZWFuIGluZGlj
YXRpbmcgd2hldGhlciB0aGUgZmlsZSBjb250ZW50IHJlcHJlc2VudHMgYQogICAgICAgICB0ZXN0
aGFybmVzcy5qcyB0ZXN0IiIiCiAgICAgICAgIGlmIHNlbGYucm9vdCBpcyBOb25lOgpAQCAtNTAx
LDYgKzY3NCw3IEBAIGNsYXNzIFNvdXJjZUZpbGUob2JqZWN0KToKIAogICAgIEBjYWNoZWRfcHJv
cGVydHkKICAgICBkZWYgcmVmdGVzdF9ub2RlcyhzZWxmKToKKyAgICAgICAgIyB0eXBlOiAoKSAt
PiBMaXN0W0VsZW1lbnRUcmVlLkVsZW1lbnRdCiAgICAgICAgICIiIkxpc3Qgb2YgRWxlbWVudFRy
ZWUgRWxlbWVudHMgY29ycmVzcG9uZGluZyB0byBub2RlcyByZXByZXNlbnRpbmcgYQogICAgICAg
ICB0byBhIHJlZnRlc3QgPGxpbms+IiIiCiAgICAgICAgIGlmIHNlbGYucm9vdCBpcyBOb25lOgpA
QCAtNTEyLDkgKzY4NiwxMCBAQCBjbGFzcyBTb3VyY2VGaWxlKG9iamVjdCk6CiAKICAgICBAY2Fj
aGVkX3Byb3BlcnR5CiAgICAgZGVmIHJlZmVyZW5jZXMoc2VsZik6CisgICAgICAgICMgdHlwZTog
KCkgLT4gTGlzdFtUdXBsZVtUZXh0LCBUZXh0XV0KICAgICAgICAgIiIiTGlzdCBvZiAocmVmX3Vy
bCwgcmVsYXRpb24pIHR1cGxlcyBmb3IgYW55IHJlZnRlc3QgcmVmZXJlbmNlcyBzcGVjaWZpZWQg
aW4KICAgICAgICAgdGhlIGZpbGUiIiIKLSAgICAgICAgcnYgPSBbXQorICAgICAgICBydiA9IFtd
ICAjIHR5cGU6IExpc3RbVHVwbGVbVGV4dCwgVGV4dF1dCiAgICAgICAgIHJlbF9tYXAgPSB7Im1h
dGNoIjogIj09IiwgIm1pc21hdGNoIjogIiE9In0KICAgICAgICAgZm9yIGl0ZW0gaW4gc2VsZi5y
ZWZ0ZXN0X25vZGVzOgogICAgICAgICAgICAgaWYgImhyZWYiIGluIGl0ZW0uYXR0cmliOgpAQCAt
NTI1LDEyICs3MDAsMTQgQEAgY2xhc3MgU291cmNlRmlsZShvYmplY3QpOgogCiAgICAgQGNhY2hl
ZF9wcm9wZXJ0eQogICAgIGRlZiBjb250ZW50X2lzX3JlZl9ub2RlKHNlbGYpOgorICAgICAgICAj
IHR5cGU6ICgpIC0+IGJvb2wKICAgICAgICAgIiIiQm9vbGVhbiBpbmRpY2F0aW5nIHdoZXRoZXIg
dGhlIGZpbGUgaXMgYSBub24tbGVhZiBub2RlIGluIGEgcmVmdGVzdAogICAgICAgICBncmFwaCAo
aS5lLiBpZiBpdCBjb250YWlucyBhbnkgPGxpbmsgcmVsPVttaXNdbWF0Y2g+IiIiCiAgICAgICAg
IHJldHVybiBib29sKHNlbGYucmVmZXJlbmNlcykKIAogICAgIEBjYWNoZWRfcHJvcGVydHkKICAg
ICBkZWYgY3NzX2ZsYWdfbm9kZXMoc2VsZik6CisgICAgICAgICMgdHlwZTogKCkgLT4gTGlzdFtF
bGVtZW50VHJlZS5FbGVtZW50XQogICAgICAgICAiIiJMaXN0IG9mIEVsZW1lbnRUcmVlIEVsZW1l
bnRzIGNvcnJlc3BvbmRpbmcgdG8gbm9kZXMgcmVwcmVzZW50aW5nIGEKICAgICAgICAgZmxhZyA8
bWV0YT4iIiIKICAgICAgICAgaWYgc2VsZi5yb290IGlzIE5vbmU6CkBAIC01MzksOCArNzE2LDkg
QEAgY2xhc3MgU291cmNlRmlsZShvYmplY3QpOgogCiAgICAgQGNhY2hlZF9wcm9wZXJ0eQogICAg
IGRlZiBjc3NfZmxhZ3Moc2VsZik6CisgICAgICAgICMgdHlwZTogKCkgLT4gU2V0W1RleHRdCiAg
ICAgICAgICIiIlNldCBvZiBmbGFncyBzcGVjaWZpZWQgaW4gdGhlIGZpbGUiIiIKLSAgICAgICAg
cnYgPSBzZXQoKQorICAgICAgICBydiA9IHNldCgpICAjIHR5cGU6IFNldFtUZXh0XQogICAgICAg
ICBmb3IgaXRlbSBpbiBzZWxmLmNzc19mbGFnX25vZGVzOgogICAgICAgICAgICAgaWYgImNvbnRl
bnQiIGluIGl0ZW0uYXR0cmliOgogICAgICAgICAgICAgICAgIGZvciBmbGFnIGluIGl0ZW0uYXR0
cmliWyJjb250ZW50Il0uc3BsaXQoKToKQEAgLTU0OSw2ICs3MjcsNyBAQCBjbGFzcyBTb3VyY2VG
aWxlKG9iamVjdCk6CiAKICAgICBAY2FjaGVkX3Byb3BlcnR5CiAgICAgZGVmIGNvbnRlbnRfaXNf
Y3NzX21hbnVhbChzZWxmKToKKyAgICAgICAgIyB0eXBlOiAoKSAtPiBPcHRpb25hbFtib29sXQog
ICAgICAgICAiIiJCb29sZWFuIGluZGljYXRpbmcgd2hldGhlciB0aGUgZmlsZSBjb250ZW50IHJl
cHJlc2VudHMgYQogICAgICAgICBDU1MgV0ctc3R5bGUgbWFudWFsIHRlc3QiIiIKICAgICAgICAg
aWYgc2VsZi5yb290IGlzIE5vbmU6CkBAIC01NTgsNiArNzM3LDcgQEAgY2xhc3MgU291cmNlRmls
ZShvYmplY3QpOgogCiAgICAgQGNhY2hlZF9wcm9wZXJ0eQogICAgIGRlZiBzcGVjX2xpbmtfbm9k
ZXMoc2VsZik6CisgICAgICAgICMgdHlwZTogKCkgLT4gTGlzdFtFbGVtZW50VHJlZS5FbGVtZW50
XQogICAgICAgICAiIiJMaXN0IG9mIEVsZW1lbnRUcmVlIEVsZW1lbnRzIGNvcnJlc3BvbmRpbmcg
dG8gbm9kZXMgcmVwcmVzZW50aW5nIGEKICAgICAgICAgPGxpbmsgcmVsPWhlbHA+LCB1c2VkIHRv
IHBvaW50IHRvIHNwZWNzIiIiCiAgICAgICAgIGlmIHNlbGYucm9vdCBpcyBOb25lOgpAQCAtNTY2
LDggKzc0Niw5IEBAIGNsYXNzIFNvdXJjZUZpbGUob2JqZWN0KToKIAogICAgIEBjYWNoZWRfcHJv
cGVydHkKICAgICBkZWYgc3BlY19saW5rcyhzZWxmKToKKyAgICAgICAgIyB0eXBlOiAoKSAtPiBT
ZXRbVGV4dF0KICAgICAgICAgIiIiU2V0IG9mIHNwZWMgbGlua3Mgc3BlY2lmaWVkIGluIHRoZSBm
aWxlIiIiCi0gICAgICAgIHJ2ID0gc2V0KCkKKyAgICAgICAgcnYgPSBzZXQoKSAgIyB0eXBlOiBT
ZXRbVGV4dF0KICAgICAgICAgZm9yIGl0ZW0gaW4gc2VsZi5zcGVjX2xpbmtfbm9kZXM6CiAgICAg
ICAgICAgICBpZiAiaHJlZiIgaW4gaXRlbS5hdHRyaWI6CiAgICAgICAgICAgICAgICAgcnYuYWRk
KGl0ZW0uYXR0cmliWyJocmVmIl0uc3RyaXAoc3BhY2VfY2hhcnMpKQpAQCAtNTc1LDYgKzc1Niw3
IEBAIGNsYXNzIFNvdXJjZUZpbGUob2JqZWN0KToKIAogICAgIEBjYWNoZWRfcHJvcGVydHkKICAg
ICBkZWYgY29udGVudF9pc19jc3NfdmlzdWFsKHNlbGYpOgorICAgICAgICAjIHR5cGU6ICgpIC0+
IE9wdGlvbmFsW2Jvb2xdCiAgICAgICAgICIiIkJvb2xlYW4gaW5kaWNhdGluZyB3aGV0aGVyIHRo
ZSBmaWxlIGNvbnRlbnQgcmVwcmVzZW50cyBhCiAgICAgICAgIENTUyBXRy1zdHlsZSB2aXN1YWwg
dGVzdCIiIgogICAgICAgICBpZiBzZWxmLnJvb3QgaXMgTm9uZToKQEAgLTU4NCwxMCArNzY2LDEy
IEBAIGNsYXNzIFNvdXJjZUZpbGUob2JqZWN0KToKIAogICAgIEBwcm9wZXJ0eQogICAgIGRlZiB0
eXBlKHNlbGYpOgorICAgICAgICAjIHR5cGU6ICgpIC0+IFRleHQKICAgICAgICAgcnYsIF8gPSBz
ZWxmLm1hbmlmZXN0X2l0ZW1zKCkKICAgICAgICAgcmV0dXJuIHJ2CiAKICAgICBkZWYgbWFuaWZl
c3RfaXRlbXMoc2VsZik6CisgICAgICAgICMgdHlwZTogKCkgLT4gVHVwbGVbVGV4dCwgTGlzdFtN
YW5pZmVzdEl0ZW1dXQogICAgICAgICAiIiJMaXN0IG9mIG1hbmlmZXN0IGl0ZW1zIGNvcnJlc3Bv
bmRpbmcgdG8gdGhlIGZpbGUuIFRoZXJlIGlzIHR5cGljYWxseSBvbmUKICAgICAgICAgcGVyIHRl
c3QsIGJ1dCBpbiB0aGUgY2FzZSBvZiByZWZ0ZXN0cyBhIG5vZGUgbWF5IGhhdmUgY29ycmVzcG9u
ZGluZyBtYW5pZmVzdAogICAgICAgICBpdGVtcyB3aXRob3V0IGJlaW5nIGEgdGVzdCBpdHNlbGYu
IiIiCkBAIC01OTYsNzggKzc4MCwxNjUgQEAgY2xhc3MgU291cmNlRmlsZShvYmplY3QpOgogICAg
ICAgICAgICAgcmV0dXJuIHNlbGYuaXRlbXNfY2FjaGUKIAogICAgICAgICBpZiBzZWxmLm5hbWVf
aXNfbm9uX3Rlc3Q6Ci0gICAgICAgICAgICBydiA9ICJzdXBwb3J0IiwgW1N1cHBvcnRGaWxlKHNl
bGYpXQotCi0gICAgICAgIGVsaWYgc2VsZi5uYW1lX2lzX3N0dWI6Ci0gICAgICAgICAgICBydiA9
IFN0dWIuaXRlbV90eXBlLCBbU3R1YihzZWxmLCBzZWxmLnVybCldCisgICAgICAgICAgICBydiA9
ICJzdXBwb3J0IiwgWworICAgICAgICAgICAgICAgIFN1cHBvcnRGaWxlKAorICAgICAgICAgICAg
ICAgICAgICBzZWxmLnRlc3RzX3Jvb3QsCisgICAgICAgICAgICAgICAgICAgIHNlbGYucmVsX3Bh
dGgKKyAgICAgICAgICAgICAgICApXSAgIyB0eXBlOiBUdXBsZVtUZXh0LCBMaXN0W01hbmlmZXN0
SXRlbV1dCiAKICAgICAgICAgZWxpZiBzZWxmLm5hbWVfaXNfbWFudWFsOgotICAgICAgICAgICAg
cnYgPSBNYW51YWxUZXN0Lml0ZW1fdHlwZSwgW01hbnVhbFRlc3Qoc2VsZiwgc2VsZi51cmwpXQor
ICAgICAgICAgICAgcnYgPSBNYW51YWxUZXN0Lml0ZW1fdHlwZSwgWworICAgICAgICAgICAgICAg
IE1hbnVhbFRlc3QoCisgICAgICAgICAgICAgICAgICAgIHNlbGYudGVzdHNfcm9vdCwKKyAgICAg
ICAgICAgICAgICAgICAgc2VsZi5yZWxfcGF0aCwKKyAgICAgICAgICAgICAgICAgICAgc2VsZi51
cmxfYmFzZSwKKyAgICAgICAgICAgICAgICAgICAgc2VsZi5yZWxfdXJsCisgICAgICAgICAgICAg
ICAgKV0KIAogICAgICAgICBlbGlmIHNlbGYubmFtZV9pc19jb25mb3JtYW5jZToKLSAgICAgICAg
ICAgIHJ2ID0gQ29uZm9ybWFuY2VDaGVja2VyVGVzdC5pdGVtX3R5cGUsIFtDb25mb3JtYW5jZUNo
ZWNrZXJUZXN0KHNlbGYsIHNlbGYudXJsKV0KKyAgICAgICAgICAgIHJ2ID0gQ29uZm9ybWFuY2VD
aGVja2VyVGVzdC5pdGVtX3R5cGUsIFsKKyAgICAgICAgICAgICAgICBDb25mb3JtYW5jZUNoZWNr
ZXJUZXN0KAorICAgICAgICAgICAgICAgICAgICBzZWxmLnRlc3RzX3Jvb3QsCisgICAgICAgICAg
ICAgICAgICAgIHNlbGYucmVsX3BhdGgsCisgICAgICAgICAgICAgICAgICAgIHNlbGYudXJsX2Jh
c2UsCisgICAgICAgICAgICAgICAgICAgIHNlbGYucmVsX3VybAorICAgICAgICAgICAgICAgICld
CiAKICAgICAgICAgZWxpZiBzZWxmLm5hbWVfaXNfY29uZm9ybWFuY2Vfc3VwcG9ydDoKLSAgICAg
ICAgICAgIHJ2ID0gInN1cHBvcnQiLCBbU3VwcG9ydEZpbGUoc2VsZildCisgICAgICAgICAgICBy
diA9ICJzdXBwb3J0IiwgWworICAgICAgICAgICAgICAgIFN1cHBvcnRGaWxlKAorICAgICAgICAg
ICAgICAgICAgICBzZWxmLnRlc3RzX3Jvb3QsCisgICAgICAgICAgICAgICAgICAgIHNlbGYucmVs
X3BhdGgKKyAgICAgICAgICAgICAgICApXQogCiAgICAgICAgIGVsaWYgc2VsZi5uYW1lX2lzX3Zp
c3VhbDoKLSAgICAgICAgICAgIHJ2ID0gVmlzdWFsVGVzdC5pdGVtX3R5cGUsIFtWaXN1YWxUZXN0
KHNlbGYsIHNlbGYudXJsKV0KKyAgICAgICAgICAgIHJ2ID0gVmlzdWFsVGVzdC5pdGVtX3R5cGUs
IFsKKyAgICAgICAgICAgICAgICBWaXN1YWxUZXN0KAorICAgICAgICAgICAgICAgICAgICBzZWxm
LnRlc3RzX3Jvb3QsCisgICAgICAgICAgICAgICAgICAgIHNlbGYucmVsX3BhdGgsCisgICAgICAg
ICAgICAgICAgICAgIHNlbGYudXJsX2Jhc2UsCisgICAgICAgICAgICAgICAgICAgIHNlbGYucmVs
X3VybAorICAgICAgICAgICAgICAgICldCiAKICAgICAgICAgZWxpZiBzZWxmLm5hbWVfaXNfbXVs
dGlfZ2xvYmFsOgogICAgICAgICAgICAgZ2xvYmFscyA9IGIiIgotICAgICAgICAgICAgZm9yIChr
ZXksIHZhbHVlKSBpbiBzZWxmLnNjcmlwdF9tZXRhZGF0YToKKyAgICAgICAgICAgIHNjcmlwdF9t
ZXRhZGF0YSA9IHNlbGYuc2NyaXB0X21ldGFkYXRhCisgICAgICAgICAgICBhc3NlcnQgc2NyaXB0
X21ldGFkYXRhIGlzIG5vdCBOb25lCisgICAgICAgICAgICBmb3IgKGtleSwgdmFsdWUpIGluIHNj
cmlwdF9tZXRhZGF0YToKICAgICAgICAgICAgICAgICBpZiBrZXkgPT0gYiJnbG9iYWwiOgogICAg
ICAgICAgICAgICAgICAgICBnbG9iYWxzID0gdmFsdWUKICAgICAgICAgICAgICAgICAgICAgYnJl
YWsKIAogICAgICAgICAgICAgdGVzdHMgPSBbCi0gICAgICAgICAgICAgICAgVGVzdGhhcm5lc3NU
ZXN0KHNlbGYsIGdsb2JhbF92YXJpYW50X3VybChzZWxmLnVybCwgc3VmZml4KSArIHZhcmlhbnQs
IHRpbWVvdXQ9c2VsZi50aW1lb3V0LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBq
c3NoZWxsPWpzc2hlbGwpCisgICAgICAgICAgICAgICAgVGVzdGhhcm5lc3NUZXN0KAorICAgICAg
ICAgICAgICAgICAgICBzZWxmLnRlc3RzX3Jvb3QsCisgICAgICAgICAgICAgICAgICAgIHNlbGYu
cmVsX3BhdGgsCisgICAgICAgICAgICAgICAgICAgIHNlbGYudXJsX2Jhc2UsCisgICAgICAgICAg
ICAgICAgICAgIGdsb2JhbF92YXJpYW50X3VybChzZWxmLnJlbF91cmwsIHN1ZmZpeCkgKyB2YXJp
YW50LAorICAgICAgICAgICAgICAgICAgICB0aW1lb3V0PXNlbGYudGltZW91dCwKKyAgICAgICAg
ICAgICAgICAgICAganNzaGVsbD1qc3NoZWxsLAorICAgICAgICAgICAgICAgICAgICBzY3JpcHRf
bWV0YWRhdGE9c2VsZi5zY3JpcHRfbWV0YWRhdGEKKyAgICAgICAgICAgICAgICApCiAgICAgICAg
ICAgICAgICAgZm9yIChzdWZmaXgsIGpzc2hlbGwpIGluIHNvcnRlZChnbG9iYWxfc3VmZml4ZXMo
Z2xvYmFscykpCiAgICAgICAgICAgICAgICAgZm9yIHZhcmlhbnQgaW4gc2VsZi50ZXN0X3Zhcmlh
bnRzCi0gICAgICAgICAgICBdCisgICAgICAgICAgICBdICAgIyB0eXBlOiBMaXN0W01hbmlmZXN0
SXRlbV0KICAgICAgICAgICAgIHJ2ID0gVGVzdGhhcm5lc3NUZXN0Lml0ZW1fdHlwZSwgdGVzdHMK
IAogICAgICAgICBlbGlmIHNlbGYubmFtZV9pc193b3JrZXI6Ci0gICAgICAgICAgICB0ZXN0X3Vy
bCA9IHJlcGxhY2VfZW5kKHNlbGYudXJsLCAiLndvcmtlci5qcyIsICIud29ya2VyLmh0bWwiKQor
ICAgICAgICAgICAgdGVzdF91cmwgPSByZXBsYWNlX2VuZChzZWxmLnJlbF91cmwsICIud29ya2Vy
LmpzIiwgIi53b3JrZXIuaHRtbCIpCiAgICAgICAgICAgICB0ZXN0cyA9IFsKLSAgICAgICAgICAg
ICAgICBUZXN0aGFybmVzc1Rlc3Qoc2VsZiwgdGVzdF91cmwgKyB2YXJpYW50LCB0aW1lb3V0PXNl
bGYudGltZW91dCkKKyAgICAgICAgICAgICAgICBUZXN0aGFybmVzc1Rlc3QoCisgICAgICAgICAg
ICAgICAgICAgIHNlbGYudGVzdHNfcm9vdCwKKyAgICAgICAgICAgICAgICAgICAgc2VsZi5yZWxf
cGF0aCwKKyAgICAgICAgICAgICAgICAgICAgc2VsZi51cmxfYmFzZSwKKyAgICAgICAgICAgICAg
ICAgICAgdGVzdF91cmwgKyB2YXJpYW50LAorICAgICAgICAgICAgICAgICAgICB0aW1lb3V0PXNl
bGYudGltZW91dCwKKyAgICAgICAgICAgICAgICAgICAgc2NyaXB0X21ldGFkYXRhPXNlbGYuc2Ny
aXB0X21ldGFkYXRhCisgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgIGZvciB2YXJp
YW50IGluIHNlbGYudGVzdF92YXJpYW50cwogICAgICAgICAgICAgXQogICAgICAgICAgICAgcnYg
PSBUZXN0aGFybmVzc1Rlc3QuaXRlbV90eXBlLCB0ZXN0cwogCiAgICAgICAgIGVsaWYgc2VsZi5u
YW1lX2lzX3dpbmRvdzoKLSAgICAgICAgICAgIHRlc3RfdXJsID0gcmVwbGFjZV9lbmQoc2VsZi51
cmwsICIud2luZG93LmpzIiwgIi53aW5kb3cuaHRtbCIpCisgICAgICAgICAgICB0ZXN0X3VybCA9
IHJlcGxhY2VfZW5kKHNlbGYucmVsX3VybCwgIi53aW5kb3cuanMiLCAiLndpbmRvdy5odG1sIikK
ICAgICAgICAgICAgIHRlc3RzID0gWwotICAgICAgICAgICAgICAgIFRlc3RoYXJuZXNzVGVzdChz
ZWxmLCB0ZXN0X3VybCArIHZhcmlhbnQsIHRpbWVvdXQ9c2VsZi50aW1lb3V0KQorICAgICAgICAg
ICAgICAgIFRlc3RoYXJuZXNzVGVzdCgKKyAgICAgICAgICAgICAgICAgICAgc2VsZi50ZXN0c19y
b290LAorICAgICAgICAgICAgICAgICAgICBzZWxmLnJlbF9wYXRoLAorICAgICAgICAgICAgICAg
ICAgICBzZWxmLnVybF9iYXNlLAorICAgICAgICAgICAgICAgICAgICB0ZXN0X3VybCArIHZhcmlh
bnQsCisgICAgICAgICAgICAgICAgICAgIHRpbWVvdXQ9c2VsZi50aW1lb3V0LAorICAgICAgICAg
ICAgICAgICAgICBzY3JpcHRfbWV0YWRhdGE9c2VsZi5zY3JpcHRfbWV0YWRhdGEKKyAgICAgICAg
ICAgICAgICApCiAgICAgICAgICAgICAgICAgZm9yIHZhcmlhbnQgaW4gc2VsZi50ZXN0X3Zhcmlh
bnRzCiAgICAgICAgICAgICBdCiAgICAgICAgICAgICBydiA9IFRlc3RoYXJuZXNzVGVzdC5pdGVt
X3R5cGUsIHRlc3RzCiAKICAgICAgICAgZWxpZiBzZWxmLm5hbWVfaXNfd2ViZHJpdmVyOgotICAg
ICAgICAgICAgcnYgPSBXZWJkcml2ZXJTcGVjVGVzdC5pdGVtX3R5cGUsIFtXZWJkcml2ZXJTcGVj
VGVzdChzZWxmLCBzZWxmLnVybCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGltZW91dD1zZWxmLnRpbWVvdXQpXQorICAg
ICAgICAgICAgcnYgPSBXZWJEcml2ZXJTcGVjVGVzdC5pdGVtX3R5cGUsIFsKKyAgICAgICAgICAg
ICAgICBXZWJEcml2ZXJTcGVjVGVzdCgKKyAgICAgICAgICAgICAgICAgICAgc2VsZi50ZXN0c19y
b290LAorICAgICAgICAgICAgICAgICAgICBzZWxmLnJlbF9wYXRoLAorICAgICAgICAgICAgICAg
ICAgICBzZWxmLnVybF9iYXNlLAorICAgICAgICAgICAgICAgICAgICBzZWxmLnJlbF91cmwsCisg
ICAgICAgICAgICAgICAgICAgIHRpbWVvdXQ9c2VsZi50aW1lb3V0CisgICAgICAgICAgICAgICAg
KV0KIAogICAgICAgICBlbGlmIHNlbGYuY29udGVudF9pc19jc3NfbWFudWFsIGFuZCBub3Qgc2Vs
Zi5uYW1lX2lzX3JlZmVyZW5jZToKLSAgICAgICAgICAgIHJ2ID0gTWFudWFsVGVzdC5pdGVtX3R5
cGUsIFtNYW51YWxUZXN0KHNlbGYsIHNlbGYudXJsKV0KKyAgICAgICAgICAgIHJ2ID0gTWFudWFs
VGVzdC5pdGVtX3R5cGUsIFsKKyAgICAgICAgICAgICAgICBNYW51YWxUZXN0KAorICAgICAgICAg
ICAgICAgICAgICBzZWxmLnRlc3RzX3Jvb3QsCisgICAgICAgICAgICAgICAgICAgIHNlbGYucmVs
X3BhdGgsCisgICAgICAgICAgICAgICAgICAgIHNlbGYudXJsX2Jhc2UsCisgICAgICAgICAgICAg
ICAgICAgIHNlbGYucmVsX3VybAorICAgICAgICAgICAgICAgICldCiAKICAgICAgICAgZWxpZiBz
ZWxmLmNvbnRlbnRfaXNfdGVzdGhhcm5lc3M6CiAgICAgICAgICAgICBydiA9IFRlc3RoYXJuZXNz
VGVzdC5pdGVtX3R5cGUsIFtdCiAgICAgICAgICAgICB0ZXN0ZHJpdmVyID0gc2VsZi5oYXNfdGVz
dGRyaXZlcgogICAgICAgICAgICAgZm9yIHZhcmlhbnQgaW4gc2VsZi50ZXN0X3ZhcmlhbnRzOgot
ICAgICAgICAgICAgICAgIHVybCA9IHNlbGYudXJsICsgdmFyaWFudAotICAgICAgICAgICAgICAg
IHJ2WzFdLmFwcGVuZChUZXN0aGFybmVzc1Rlc3Qoc2VsZiwgdXJsLCB0aW1lb3V0PXNlbGYudGlt
ZW91dCwgdGVzdGRyaXZlcj10ZXN0ZHJpdmVyKSkKKyAgICAgICAgICAgICAgICB1cmwgPSBzZWxm
LnJlbF91cmwgKyB2YXJpYW50CisgICAgICAgICAgICAgICAgcnZbMV0uYXBwZW5kKFRlc3RoYXJu
ZXNzVGVzdCgKKyAgICAgICAgICAgICAgICAgICAgc2VsZi50ZXN0c19yb290LAorICAgICAgICAg
ICAgICAgICAgICBzZWxmLnJlbF9wYXRoLAorICAgICAgICAgICAgICAgICAgICBzZWxmLnVybF9i
YXNlLAorICAgICAgICAgICAgICAgICAgICB1cmwsCisgICAgICAgICAgICAgICAgICAgIHRpbWVv
dXQ9c2VsZi50aW1lb3V0LAorICAgICAgICAgICAgICAgICAgICB0ZXN0ZHJpdmVyPXRlc3Rkcml2
ZXIsCisgICAgICAgICAgICAgICAgICAgIHNjcmlwdF9tZXRhZGF0YT1zZWxmLnNjcmlwdF9tZXRh
ZGF0YQorICAgICAgICAgICAgICAgICkpCiAKICAgICAgICAgZWxpZiBzZWxmLmNvbnRlbnRfaXNf
cmVmX25vZGU6Ci0gICAgICAgICAgICBydiA9IChSZWZUZXN0Tm9kZS5pdGVtX3R5cGUsCi0gICAg
ICAgICAgICAgICAgICBbUmVmVGVzdE5vZGUoc2VsZiwgc2VsZi51cmwsIHNlbGYucmVmZXJlbmNl
cywgdGltZW91dD1zZWxmLnRpbWVvdXQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
dmlld3BvcnRfc2l6ZT1zZWxmLnZpZXdwb3J0X3NpemUsIGRwaT1zZWxmLmRwaSldKQorICAgICAg
ICAgICAgcnYgPSBSZWZUZXN0Tm9kZS5pdGVtX3R5cGUsIFsKKyAgICAgICAgICAgICAgICBSZWZU
ZXN0Tm9kZSgKKyAgICAgICAgICAgICAgICAgICAgc2VsZi50ZXN0c19yb290LAorICAgICAgICAg
ICAgICAgICAgICBzZWxmLnJlbF9wYXRoLAorICAgICAgICAgICAgICAgICAgICBzZWxmLnVybF9i
YXNlLAorICAgICAgICAgICAgICAgICAgICBzZWxmLnJlbF91cmwsCisgICAgICAgICAgICAgICAg
ICAgIHJlZmVyZW5jZXM9c2VsZi5yZWZlcmVuY2VzLAorICAgICAgICAgICAgICAgICAgICB0aW1l
b3V0PXNlbGYudGltZW91dCwKKyAgICAgICAgICAgICAgICAgICAgdmlld3BvcnRfc2l6ZT1zZWxm
LnZpZXdwb3J0X3NpemUsCisgICAgICAgICAgICAgICAgICAgIGRwaT1zZWxmLmRwaSwKKyAgICAg
ICAgICAgICAgICAgICAgZnV6enk9c2VsZi5mdXp6eQorICAgICAgICAgICAgICAgICldCiAKICAg
ICAgICAgZWxpZiBzZWxmLmNvbnRlbnRfaXNfY3NzX3Zpc3VhbCBhbmQgbm90IHNlbGYubmFtZV9p
c19yZWZlcmVuY2U6Ci0gICAgICAgICAgICBydiA9IFZpc3VhbFRlc3QuaXRlbV90eXBlLCBbVmlz
dWFsVGVzdChzZWxmLCBzZWxmLnVybCldCisgICAgICAgICAgICBydiA9IFZpc3VhbFRlc3QuaXRl
bV90eXBlLCBbCisgICAgICAgICAgICAgICAgVmlzdWFsVGVzdCgKKyAgICAgICAgICAgICAgICAg
ICAgc2VsZi50ZXN0c19yb290LAorICAgICAgICAgICAgICAgICAgICBzZWxmLnJlbF9wYXRoLAor
ICAgICAgICAgICAgICAgICAgICBzZWxmLnVybF9iYXNlLAorICAgICAgICAgICAgICAgICAgICBz
ZWxmLnJlbF91cmwKKyAgICAgICAgICAgICAgICApXQogCiAgICAgICAgIGVsc2U6Ci0gICAgICAg
ICAgICBydiA9ICJzdXBwb3J0IiwgW1N1cHBvcnRGaWxlKHNlbGYpXQorICAgICAgICAgICAgcnYg
PSAic3VwcG9ydCIsIFsKKyAgICAgICAgICAgICAgICBTdXBwb3J0RmlsZSgKKyAgICAgICAgICAg
ICAgICAgICAgc2VsZi50ZXN0c19yb290LAorICAgICAgICAgICAgICAgICAgICBzZWxmLnJlbF9w
YXRoCisgICAgICAgICAgICAgICAgKV0KKworICAgICAgICBhc3NlcnQgbGVuKHJ2WzFdKSA9PSBs
ZW4oc2V0KHJ2WzFdKSkKIAogICAgICAgICBzZWxmLml0ZW1zX2NhY2hlID0gcnYKIApkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9t
YW5pZmVzdC90ZXN0cGF0aHMucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL21hbmlmZXN0L3Rlc3RwYXRocy5weQpuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zYzFmMDlk
NDM3MzA0YTBjZTdiYmNiYzU0MmRlZGU2NzJmMDFhMTdlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9tYW5pZmVzdC90
ZXN0cGF0aHMucHkKQEAgLTAsMCArMSw5MiBAQAoraW1wb3J0IGFyZ3BhcnNlCitpbXBvcnQganNv
bgoraW1wb3J0IG9zCitmcm9tIGNvbGxlY3Rpb25zIGltcG9ydCBkZWZhdWx0ZGljdAorCitmcm9t
IHNpeCBpbXBvcnQgaXRlcml0ZW1zCisKK2Zyb20gLm1hbmlmZXN0IGltcG9ydCBsb2FkX2FuZF91
cGRhdGUsIE1hbmlmZXN0Citmcm9tIC5sb2cgaW1wb3J0IGdldF9sb2dnZXIKKworTVlQWSA9IEZh
bHNlCitpZiBNWVBZOgorICAgICMgTVlQWSBpcyBzZXQgdG8gVHJ1ZSB3aGVuIHJ1biB1bmRlciBN
eXB5LgorICAgIGZyb20gdHlwaW5nIGltcG9ydCBBbnkKKyAgICBmcm9tIHR5cGluZyBpbXBvcnQg
RGljdAorICAgIGZyb20gdHlwaW5nIGltcG9ydCBJdGVyYWJsZQorICAgIGZyb20gdHlwaW5nIGlt
cG9ydCBMaXN0CisgICAgZnJvbSB0eXBpbmcgaW1wb3J0IFRleHQKKword3B0X3Jvb3QgPSBvcy5w
YXRoLmFic3BhdGgob3MucGF0aC5qb2luKG9zLnBhdGguZGlybmFtZShfX2ZpbGVfXyksIG9zLnBh
cmRpciwgb3MucGFyZGlyKSkKKworbG9nZ2VyID0gZ2V0X2xvZ2dlcigpCisKKworZGVmIGFic19w
YXRoKHBhdGgpOgorICAgICMgdHlwZTogKHN0cikgLT4gc3RyCisgICAgcmV0dXJuIG9zLnBhdGgu
YWJzcGF0aChvcy5wYXRoLmV4cGFuZHVzZXIocGF0aCkpCisKKworZGVmIGNyZWF0ZV9wYXJzZXIo
KToKKyAgICAjIHR5cGU6ICgpIC0+IGFyZ3BhcnNlLkFyZ3VtZW50UGFyc2VyCisgICAgcGFyc2Vy
ID0gYXJncGFyc2UuQXJndW1lbnRQYXJzZXIoKQorICAgIHBhcnNlci5hZGRfYXJndW1lbnQoCisg
ICAgICAgICItcCIsICItLXBhdGgiLCB0eXBlPWFic19wYXRoLCBoZWxwPSJQYXRoIHRvIG1hbmlm
ZXN0IGZpbGUuIikKKyAgICBwYXJzZXIuYWRkX2FyZ3VtZW50KAorICAgICAgICAiLS10ZXN0cy1y
b290IiwgdHlwZT1hYnNfcGF0aCwgZGVmYXVsdD13cHRfcm9vdCwgaGVscD0iUGF0aCB0byByb290
IG9mIHRlc3RzLiIpCisgICAgcGFyc2VyLmFkZF9hcmd1bWVudCgKKyAgICAgICAgIi0tbm8tdXBk
YXRlIiwgZGVzdD0idXBkYXRlIiwgYWN0aW9uPSJzdG9yZV9mYWxzZSIsIGRlZmF1bHQ9VHJ1ZSwK
KyAgICAgICAgaGVscD0iRG9uJ3QgdXBkYXRlIG1hbmlmZXN0IGJlZm9yZSBjb250aW51aW5nIikK
KyAgICBwYXJzZXIuYWRkX2FyZ3VtZW50KAorICAgICAgICAiLXIiLCAiLS1yZWJ1aWxkIiwgYWN0
aW9uPSJzdG9yZV90cnVlIiwgZGVmYXVsdD1GYWxzZSwKKyAgICAgICAgaGVscD0iRm9yY2UgYSBm
dWxsIHJlYnVpbGQgb2YgdGhlIG1hbmlmZXN0LiIpCisgICAgcGFyc2VyLmFkZF9hcmd1bWVudCgK
KyAgICAgICAgIi0tdXJsLWJhc2UiLCBhY3Rpb249InN0b3JlIiwgZGVmYXVsdD0iLyIsCisgICAg
ICAgIGhlbHA9IkJhc2UgdXJsIHRvIHVzZSBhcyB0aGUgbW91bnQgcG9pbnQgZm9yIHRlc3RzIGlu
IHRoaXMgbWFuaWZlc3QuIikKKyAgICBwYXJzZXIuYWRkX2FyZ3VtZW50KAorICAgICAgICAiLS1j
YWNoZS1yb290IiwgYWN0aW9uPSJzdG9yZSIsIGRlZmF1bHQ9b3MucGF0aC5qb2luKHdwdF9yb290
LCAiLndwdGNhY2hlIiksCisgICAgICAgIGhlbHA9IlBhdGggaW4gd2hpY2ggdG8gc3RvcmUgYW55
IGNhY2hlcyAoZGVmYXVsdCA8dGVzdHNfcm9vdD4vLndwdGNhY2hlLykiKQorICAgIHBhcnNlci5h
ZGRfYXJndW1lbnQoCisgICAgICAgICItLWpzb24iLCBhY3Rpb249InN0b3JlX3RydWUiLCBkZWZh
dWx0PUZhbHNlLAorICAgICAgICBoZWxwPSJPdXRwdXQgYXMgSlNPTiIpCisgICAgcGFyc2VyLmFk
ZF9hcmd1bWVudCgKKyAgICAgICAgInRlc3RfaWRzIiwgYWN0aW9uPSJzdG9yZSIsIG5hcmdzPSIr
IiwKKyAgICAgICAgaGVscD0iVGVzdCBpZHMgZm9yIHdoaWNoIHRvIGdldCBwYXRocyIpCisgICAg
cmV0dXJuIHBhcnNlcgorCisKK2RlZiBnZXRfcGF0aF9pZF9tYXAobWFuaWZlc3RfZmlsZSwgdGVz
dF9pZHMpOgorICAgICMgdHlwZTogKE1hbmlmZXN0LCBJdGVyYWJsZVtUZXh0XSkgLT4gRGljdFtU
ZXh0LCBMaXN0W1RleHRdXQorICAgIHRlc3RfaWRzID0gc2V0KHRlc3RfaWRzKQorICAgIHBhdGhf
aWRfbWFwID0gZGVmYXVsdGRpY3QobGlzdCkgICMgdHlwZTogRGljdFtUZXh0LCBMaXN0W1RleHRd
XQorCisgICAgZm9yIGl0ZW1fdHlwZSwgcGF0aCwgdGVzdHMgaW4gbWFuaWZlc3RfZmlsZToKKyAg
ICAgICAgZm9yIHRlc3QgaW4gdGVzdHM6CisgICAgICAgICAgICBpZiB0ZXN0LmlkIGluIHRlc3Rf
aWRzOgorICAgICAgICAgICAgICAgIHBhdGhfaWRfbWFwW3BhdGhdLmFwcGVuZCh0ZXN0LmlkKQor
ICAgIHJldHVybiBwYXRoX2lkX21hcAorCisKK2RlZiBydW4oKiprd2FyZ3MpOgorICAgICMgdHlw
ZTogKCoqQW55KSAtPiBOb25lCisgICAgdGVzdHNfcm9vdCA9IGt3YXJnc1sidGVzdHNfcm9vdCJd
CisgICAgYXNzZXJ0IHRlc3RzX3Jvb3QgaXMgbm90IE5vbmUKKyAgICBwYXRoID0ga3dhcmdzWyJw
YXRoIl0KKyAgICBpZiBwYXRoIGlzIE5vbmU6CisgICAgICAgIHBhdGggPSBvcy5wYXRoLmpvaW4o
a3dhcmdzWyJ0ZXN0c19yb290Il0sICJNQU5JRkVTVC5qc29uIikKKworICAgIG1hbmlmZXN0X2Zp
bGUgPSBsb2FkX2FuZF91cGRhdGUodGVzdHNfcm9vdCwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHBhdGgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBr
d2FyZ3NbInVybF9iYXNlIl0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1
cGRhdGU9a3dhcmdzWyJ1cGRhdGUiXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHJlYnVpbGQ9a3dhcmdzWyJyZWJ1aWxkIl0sCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBjYWNoZV9yb290PWt3YXJnc1siY2FjaGVfcm9vdCJdKQorCisgICAgcGF0aF9p
ZF9tYXAgPSBnZXRfcGF0aF9pZF9tYXAobWFuaWZlc3RfZmlsZSwga3dhcmdzWyJ0ZXN0X2lkcyJd
KQorICAgIGlmIGt3YXJnc1sianNvbiJdOgorICAgICAgICBwcmludChqc29uLmR1bXBzKHBhdGhf
aWRfbWFwKSkKKyAgICBlbHNlOgorICAgICAgICBmb3IgcGF0aCwgdGVzdF9pZHMgaW4gc29ydGVk
KGl0ZXJpdGVtcyhwYXRoX2lkX21hcCkpOgorICAgICAgICAgICAgcHJpbnQocGF0aCkKKyAgICAg
ICAgICAgIGZvciB0ZXN0X2lkIGluIHNvcnRlZCh0ZXN0X2lkcyk6CisgICAgICAgICAgICAgICAg
cHJpbnQoIiAgIiArIHRlc3RfaWQpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL21hbmlmZXN0L3Rlc3RzL19faW5pdF9fLnB5IGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9tYW5pZmVz
dC90ZXN0cy9fX2luaXRfXy5weQppbmRleCBhNjgzNGI4Mjg1YTU2YmVmMGUxNTQzZmQ5MDFjN2U2
ZjJmOGJjMjAyLi5lNjlkZTI5YmIyZDFkNjQzNGI4YjI5YWU3NzVhZDhjMmU0OGM1MzkxIDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L21hbmlmZXN0L3Rlc3RzL19faW5pdF9fLnB5CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvbWFuaWZlc3QvdGVzdHMvX19pbml0X18ucHkKQEAg
LTEgKzAsMCBAQAotIyBUaGlzIGZpbGUgaXMgcmVxdWlyZWQgZm9yIFB5dGhvbiB0byBzZWFyY2gg
dGhpcyBkaXJlY3RvcnkgZm9yIG1vZHVsZXMuClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy9tYW5pZmVzdC90ZXN0cy90ZXN0X2l0ZW0ucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL21hbmlmZXN0L3Rlc3RzL3Rlc3RfaXRlbS5weQpp
bmRleCA5Zjc5ODc0N2JkNGVkNWU5NzJhMTFiMjMyNDgwZmNhMTY3MjhmMjVkLi5jZjUyZmU4MGFh
ZDA0ZTVkY2IzNTAzNDM1MmU5ZmI4ZWRkNTNlY2I2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL21hbmlmZXN0L3Rlc3RzL3Rlc3Rf
aXRlbS5weQorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL21hbmlmZXN0L3Rlc3RzL3Rlc3RfaXRlbS5weQpAQCAtMSwyMyArMSwxMDUgQEAKLWZy
b20gLi5pdGVtIGltcG9ydCBTdXBwb3J0RmlsZSwgVVJMTWFuaWZlc3RJdGVtCi1mcm9tIC4uc291
cmNlZmlsZSBpbXBvcnQgU291cmNlRmlsZQoraW1wb3J0IGluc3BlY3QKK2ltcG9ydCBqc29uCiAK
K2ltcG9ydCBweXRlc3QKIAotZGVmIHRlc3RfYmFzZV9tZXRhX2ZsYWdzKCk6Ci0gICAgcyA9IFNv
dXJjZUZpbGUoIi8iLCAiYS5iLmMuZCIsICIvIiwgY29udGVudHM9IiIpCi0gICAgbSA9IFN1cHBv
cnRGaWxlKHMpCitmcm9tIC4ubWFuaWZlc3QgaW1wb3J0IE1hbmlmZXN0CisjIFByZXZlbnQgcHl0
ZXN0IGZyb20gdHJlYXRpbmcgVGVzdGhhcm5lc3NUZXN0IGFzIGEgdGVzdCBjbGFzcworZnJvbSAu
Lml0ZW0gaW1wb3J0IFRlc3RoYXJuZXNzVGVzdCBhcyBIYXJuZXNzVGVzdAorZnJvbSAuLml0ZW0g
aW1wb3J0IFJlZlRlc3QsIGl0ZW1fdHlwZXMKIAotICAgIGFzc2VydCBtLm1ldGFfZmxhZ3MgPT0g
eyJiIiwgImMifQogCitAcHl0ZXN0Lm1hcmsucGFyYW1ldHJpemUoInBhdGgiLCBbCisgICAgImEu
aHR0cHMuYyIsCisgICAgImEuYi5odHRwcy5jIiwKKyAgICAiYS5odHRwcy5iLmMiLAorICAgICJh
LmIuaHR0cHMuYy5kIiwKKyAgICAiYS5zZXJ2aWNld29ya2VyLmMiLAorICAgICJhLmIuc2Vydmlj
ZXdvcmtlci5jIiwKKyAgICAiYS5zZXJ2aWNld29ya2VyLmIuYyIsCisgICAgImEuYi5zZXJ2aWNl
d29ya2VyLmMuZCIsCitdKQorZGVmIHRlc3RfdXJsX2h0dHBzKHBhdGgpOgorICAgIG0gPSBIYXJu
ZXNzVGVzdCgiL2ZvbyIsICJiYXIvIiArIHBhdGgsICIvIiwgImJhci8iICsgcGF0aCkKIAotZGVm
IHRlc3RfdXJsX21ldGFfZmxhZ3MoKToKLSAgICBzID0gU291cmNlRmlsZSgiLyIsICJhLmIuYyIs
ICIvIiwgY29udGVudHM9IiIpCi0gICAgbSA9IFVSTE1hbmlmZXN0SXRlbShzLCAiL2Zvby5iYXIv
YS5iLmQuZSIpCisgICAgYXNzZXJ0IG0uaHR0cHMgaXMgVHJ1ZQogCi0gICAgYXNzZXJ0IG0ubWV0
YV9mbGFncyA9PSB7ImIiLCAiZCJ9CiAKK0BweXRlc3QubWFyay5wYXJhbWV0cml6ZSgicGF0aCIs
IFsKKyAgICAiaHR0cHMiLAorICAgICJhLmh0dHBzIiwKKyAgICAiYS5iLmh0dHBzIiwKKyAgICAi
aHR0cHMuYSIsCisgICAgImh0dHBzLmEuYiIsCisgICAgImEuYmh0dHBzLmMiLAorICAgICJhLmh0
dHBzYi5jIiwKKyAgICAic2VydmljZXdvcmtlciIsCisgICAgImEuc2VydmljZXdvcmtlciIsCisg
ICAgImEuYi5zZXJ2aWNld29ya2VyIiwKKyAgICAic2VydmljZXdvcmtlci5hIiwKKyAgICAic2Vy
dmljZXdvcmtlci5hLmIiLAorICAgICJhLmJzZXJ2aWNld29ya2VyLmMiLAorICAgICJhLnNlcnZp
Y2V3b3JrZXJiLmMiLAorXSkKK2RlZiB0ZXN0X3VybF9ub3RfaHR0cHMocGF0aCk6CisgICAgbSA9
IEhhcm5lc3NUZXN0KCIvZm9vIiwgImJhci8iICsgcGF0aCwgIi8iLCAiYmFyLyIgKyBwYXRoKQog
Ci1kZWYgdGVzdF91cmxfZW1wdHlfbWV0YV9mbGFncygpOgotICAgIHMgPSBTb3VyY2VGaWxlKCIv
IiwgImEuYi5jIiwgIi8iLCBjb250ZW50cz0iIikKLSAgICBtID0gVVJMTWFuaWZlc3RJdGVtKHMs
ICIvZm9vLmJhci9hYmNkZSIpCisgICAgYXNzZXJ0IG0uaHR0cHMgaXMgRmFsc2UKIAotICAgIGFz
c2VydCBtLm1ldGFfZmxhZ3MgPT0gc2V0KCkKKworQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKCJm
dXp6eSIsIFsKKyAgICB7KCcvZm9vL3Rlc3QuaHRtbCcsIHUnL2Zvby9yZWYuaHRtbCcsICc9PScp
OiBbWzEsIDFdLCBbMjAwLCAyMDBdXX0sCisgICAgeygnL2Zvby90ZXN0Lmh0bWwnLCB1Jy9mb28v
cmVmLmh0bWwnLCAnPT0nKTogW1swLCAxXSwgWzEwMCwgMjAwXV19LAorICAgIHtOb25lOiBbWzAs
IDFdLCBbMTAwLCAyMDBdXX0sCisgICAge05vbmU6IFtbMSwgMV0sIFsyMDAsIDIwMF1dfSwKK10p
CitkZWYgdGVzdF9yZWZ0ZXN0X2Z1enp5KGZ1enp5KToKKyAgICB0ID0gUmVmVGVzdCgnLycsCisg
ICAgICAgICAgICAgICAgJ2Zvby90ZXN0Lmh0bWwnLAorICAgICAgICAgICAgICAgICcvJywKKyAg
ICAgICAgICAgICAgICAnZm9vL3Rlc3QuaHRtbCcsCisgICAgICAgICAgICAgICAgWygnL2Zvby9y
ZWYuaHRtbCcsICc9PScpXSwKKyAgICAgICAgICAgICAgICBmdXp6eT1mdXp6eSkKKyAgICBhc3Nl
cnQgZnV6enkgPT0gdC5mdXp6eQorCisgICAganNvbl9vYmogPSB0LnRvX2pzb24oKQorCisgICAg
bSA9IE1hbmlmZXN0KCIvIiwgIi8iKQorICAgIHQyID0gUmVmVGVzdC5mcm9tX2pzb24obSwgdC5w
YXRoLCBqc29uX29iaikKKyAgICBhc3NlcnQgZnV6enkgPT0gdDIuZnV6enkKKworICAgICMgdGVz
dCB0aGUgcm91bmR0cmlwIGNhc2UsIGdpdmVuIHR1cGxlcyBiZWNvbWUgbGlzdHMKKyAgICByb3Vu
ZHRyaXAgPSBqc29uLmxvYWRzKGpzb24uZHVtcHMoanNvbl9vYmopKQorICAgIHQzID0gUmVmVGVz
dC5mcm9tX2pzb24obSwgdC5wYXRoLCByb3VuZHRyaXApCisgICAgYXNzZXJ0IGZ1enp5ID09IHQz
LmZ1enp5CisKKworQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKCJmdXp6eSIsIFsKKyAgICB7KCcv
Zm9vL3Rlc3QuaHRtbCcsIHUnL2Zvby9yZWYtMi5odG1sJywgJz09Jyk6IFtbMCwgMV0sIFsxMDAs
IDIwMF1dfSwKKyAgICB7Tm9uZTogW1sxLCAxXSwgWzIwMCwgMjAwXV0sICgnL2Zvby90ZXN0Lmh0
bWwnLCB1Jy9mb28vcmVmLTIuaHRtbCcsICc9PScpOiBbWzAsIDFdLCBbMTAwLCAyMDBdXX0sCitd
KQorZGVmIHRlc3RfcmVmdGVzdF9mdXp6eV9tdWx0aShmdXp6eSk6CisgICAgdCA9IFJlZlRlc3Qo
Jy8nLAorICAgICAgICAgICAgICAgICdmb28vdGVzdC5odG1sJywKKyAgICAgICAgICAgICAgICAn
LycsCisgICAgICAgICAgICAgICAgJ2Zvby90ZXN0Lmh0bWwnLAorICAgICAgICAgICAgICAgIFso
Jy9mb28vcmVmLTEuaHRtbCcsICc9PScpLCAoJy9mb28vcmVmLTIuaHRtbCcsICc9PScpXSwKKyAg
ICAgICAgICAgICAgICBmdXp6eT1mdXp6eSkKKyAgICBhc3NlcnQgZnV6enkgPT0gdC5mdXp6eQor
CisgICAganNvbl9vYmogPSB0LnRvX2pzb24oKQorCisgICAgbSA9IE1hbmlmZXN0KCIvIiwgIi8i
KQorICAgIHQyID0gUmVmVGVzdC5mcm9tX2pzb24obSwgdC5wYXRoLCBqc29uX29iaikKKyAgICBh
c3NlcnQgZnV6enkgPT0gdDIuZnV6enkKKworICAgICMgdGVzdCB0aGUgcm91bmR0cmlwIGNhc2Us
IGdpdmVuIHR1cGxlcyBiZWNvbWUgbGlzdHMKKyAgICByb3VuZHRyaXAgPSBqc29uLmxvYWRzKGpz
b24uZHVtcHMoanNvbl9vYmopKQorICAgIHQzID0gUmVmVGVzdC5mcm9tX2pzb24obSwgdC5wYXRo
LCByb3VuZHRyaXApCisgICAgYXNzZXJ0IGZ1enp5ID09IHQzLmZ1enp5CisKKworZGVmIHRlc3Rf
aXRlbV90eXBlcygpOgorICAgIGZvciBrZXksIHZhbHVlIGluIGl0ZW1fdHlwZXMuaXRlbXMoKToK
KyAgICAgICAgYXNzZXJ0IGlzaW5zdGFuY2Uoa2V5LCBzdHIpCisgICAgICAgIGFzc2VydCBub3Qg
aW5zcGVjdC5pc2Fic3RyYWN0KHZhbHVlKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9tYW5pZmVzdC90ZXN0cy90ZXN0X21hbmlm
ZXN0LnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy9tYW5pZmVzdC90ZXN0cy90ZXN0X21hbmlmZXN0LnB5CmluZGV4IDhiZjdlZjk2YzVmNTEyNDhj
NzYyNTRhZjMwMmFkNjM5MWJiMmQ5MDMuLjhlMDA4YmUwOTExODFkZGEzYTA4NjczYTM4ZTRmYWFl
YmZiMTE5YzEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvbWFuaWZlc3QvdGVzdHMvdGVzdF9tYW5pZmVzdC5weQorKysgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL21hbmlmZXN0L3Rl
c3RzL3Rlc3RfbWFuaWZlc3QucHkKQEAgLTcsMjAgKzcsMzIgQEAgaW1wb3J0IGh5cG90aGVzaXMu
c3RyYXRlZ2llcyBhcyBocwogCiBpbXBvcnQgcHl0ZXN0CiAKLWZyb20gLi4gaW1wb3J0IG1hbmlm
ZXN0LCBpdGVtLCB1dGlscworZnJvbSAuLiBpbXBvcnQgbWFuaWZlc3QsIHNvdXJjZWZpbGUsIGl0
ZW0sIHV0aWxzCiAKK01ZUFkgPSBGYWxzZQoraWYgTVlQWToKKyAgICAjIE1ZUFkgaXMgc2V0IHRv
IFRydWUgd2hlbiBydW4gdW5kZXIgTXlweS4KKyAgICBmcm9tIHR5cGluZyBpbXBvcnQgQW55Cisg
ICAgZnJvbSB0eXBpbmcgaW1wb3J0IFR5cGUKIAotZGVmIFNvdXJjZUZpbGVXaXRoVGVzdChwYXRo
LCBoYXNoLCBjbHMsICphcmdzKToKKworZGVmIFNvdXJjZUZpbGVXaXRoVGVzdChwYXRoLCBoYXNo
LCBjbHMsICoqa3dhcmdzKToKKyAgICAjIHR5cGU6IChzdHIsIHN0ciwgVHlwZVtpdGVtLk1hbmlm
ZXN0SXRlbV0sICoqQW55KSAtPiBzb3VyY2VmaWxlLlNvdXJjZUZpbGUKICAgICBzID0gbW9jay5N
b2NrKHJlbF9wYXRoPXBhdGgsIGhhc2g9aGFzaCkKLSAgICB0ZXN0ID0gY2xzKHMsIHV0aWxzLnJl
bF9wYXRoX3RvX3VybChwYXRoKSwgKmFyZ3MpCisgICAgaWYgY2xzID09IGl0ZW0uU3VwcG9ydEZp
bGU6CisgICAgICAgIHRlc3QgPSBjbHMoIi9mb29iYXIiLCBwYXRoKQorICAgIGVsc2U6CisgICAg
ICAgIGFzc2VydCBpc3N1YmNsYXNzKGNscywgaXRlbS5VUkxNYW5pZmVzdEl0ZW0pCisgICAgICAg
IHRlc3QgPSBjbHMoIi9mb29iYXIiLCBwYXRoLCAiLyIsIHV0aWxzLmZyb21fb3NfcGF0aChwYXRo
KSwgKiprd2FyZ3MpCiAgICAgcy5tYW5pZmVzdF9pdGVtcyA9IG1vY2suTW9jayhyZXR1cm5fdmFs
dWU9KGNscy5pdGVtX3R5cGUsIFt0ZXN0XSkpCi0gICAgcmV0dXJuIHMKKyAgICByZXR1cm4gcyAg
IyB0eXBlOiBpZ25vcmUKIAogZGVmIFNvdXJjZUZpbGVXaXRoVGVzdHMocGF0aCwgaGFzaCwgY2xz
LCB2YXJpYW50cyk6CisgICAgIyB0eXBlOiAoc3RyLCBzdHIsIFR5cGVbaXRlbS5VUkxNYW5pZmVz
dEl0ZW1dLCAqKkFueSkgLT4gc291cmNlZmlsZS5Tb3VyY2VGaWxlCiAgICAgcyA9IG1vY2suTW9j
ayhyZWxfcGF0aD1wYXRoLCBoYXNoPWhhc2gpCi0gICAgdGVzdHMgPSBbY2xzKHMsIGl0ZW1bMF0s
ICppdGVtWzE6XSkgZm9yIGl0ZW0gaW4gdmFyaWFudHNdCisgICAgdGVzdHMgPSBbY2xzKCIvZm9v
YmFyIiwgcGF0aCwgIi8iLCBpdGVtWzBdLCAqKml0ZW1bMV0pIGZvciBpdGVtIGluIHZhcmlhbnRz
XQogICAgIHMubWFuaWZlc3RfaXRlbXMgPSBtb2NrLk1vY2socmV0dXJuX3ZhbHVlPShjbHMuaXRl
bV90eXBlLCB0ZXN0cykpCi0gICAgcmV0dXJuIHMKKyAgICByZXR1cm4gcyAgIyB0eXBlOiBpZ25v
cmUKIAogCiBAaHMuY29tcG9zaXRlCkBAIC0zMCwyMCArNDIsMTUgQEAgZGVmIHJlbF9kaXJfZmls
ZV9wYXRoKGRyYXcpOgogICAgICAgICByZXR1cm4gImEiCiAgICAgZWxzZToKICAgICAgICAgcmVt
YWluaW5nID0gbGVuZ3RoIC0gMgotICAgICAgICBpZiBvcy5wYXRoLnNlcCA9PSAiLyI6Ci0gICAg
ICAgICAgICBhbHBoYWJldCA9ICJhLyIKLSAgICAgICAgZWxpZiBvcy5wYXRoLnNlcCA9PSAiXFwi
OgotICAgICAgICAgICAgYWxwaGFiZXQgPSAiYS9cXCIKLSAgICAgICAgZWxzZToKLSAgICAgICAg
ICAgIGFzc2VydCBGYWxzZSwgInVoaGhoLCB0aGlzIHBsYXRmb3JtIGlzIHdlaXJkIgorICAgICAg
ICBhbHBoYWJldCA9ICJhIiArIG9zLnBhdGguc2VwCiAgICAgICAgIG1pZCA9IGRyYXcoaHMudGV4
dChhbHBoYWJldD1hbHBoYWJldCwgbWluX3NpemU9cmVtYWluaW5nLCBtYXhfc2l6ZT1yZW1haW5p
bmcpKQogICAgICAgICByZXR1cm4gb3MucGF0aC5ub3JtY2FzZSgiYSIgKyBtaWQgKyAiYSIpCiAK
IAogQGhzLmNvbXBvc2l0ZQogZGVmIHNvdXJjZWZpbGVfc3RyYXRlZ3koZHJhdyk6Ci0gICAgaXRl
bV9jbGFzc2VzID0gW2l0ZW0uVGVzdGhhcm5lc3NUZXN0LCBpdGVtLlJlZlRlc3QsIGl0ZW0uUmVm
VGVzdE5vZGUsCi0gICAgICAgICAgICAgICAgICAgIGl0ZW0uTWFudWFsVGVzdCwgaXRlbS5TdHVi
LCBpdGVtLldlYmRyaXZlclNwZWNUZXN0LAorICAgIGl0ZW1fY2xhc3NlcyA9IFtpdGVtLlRlc3Ro
YXJuZXNzVGVzdCwgaXRlbS5SZWZUZXN0Tm9kZSwKKyAgICAgICAgICAgICAgICAgICAgaXRlbS5N
YW51YWxUZXN0LCBpdGVtLldlYkRyaXZlclNwZWNUZXN0LAogICAgICAgICAgICAgICAgICAgICBp
dGVtLkNvbmZvcm1hbmNlQ2hlY2tlclRlc3QsIGl0ZW0uU3VwcG9ydEZpbGVdCiAgICAgY2xzID0g
ZHJhdyhocy5zYW1wbGVkX2Zyb20oaXRlbV9jbGFzc2VzKSkKIApAQCAtNTEsMjggKzU4LDI3IEBA
IGRlZiBzb3VyY2VmaWxlX3N0cmF0ZWd5KGRyYXcpOgogICAgIGhhc2ggPSBkcmF3KGhzLnRleHQo
YWxwaGFiZXQ9IjAxMjM0NTY3ODlhYmNkZWYiLCBtaW5fc2l6ZT00MCwgbWF4X3NpemU9NDApKQog
ICAgIHMgPSBtb2NrLk1vY2socmVsX3BhdGg9cGF0aCwgaGFzaD1oYXNoKQogCi0gICAgaWYgY2xz
IGluIChpdGVtLlJlZlRlc3QsIGl0ZW0uUmVmVGVzdE5vZGUpOgorICAgIGlmIGNscyBpcyBpdGVt
LlJlZlRlc3ROb2RlOgogICAgICAgICByZWZfcGF0aCA9IGRyYXcocmVsX2Rpcl9maWxlX3BhdGgo
KSkKICAgICAgICAgaC5hc3N1bWUocGF0aCAhPSByZWZfcGF0aCkKICAgICAgICAgcmVmX2VxID0g
ZHJhdyhocy5zYW1wbGVkX2Zyb20oWyI9PSIsICIhPSJdKSkKLSAgICAgICAgdGVzdCA9IGNscyhz
LCB1dGlscy5yZWxfcGF0aF90b191cmwocGF0aCksIFsodXRpbHMucmVsX3BhdGhfdG9fdXJsKHJl
Zl9wYXRoKSwgcmVmX2VxKV0pCisgICAgICAgIHRlc3QgPSBjbHMoIi9mb29iYXIiLCBwYXRoLCAi
LyIsIHV0aWxzLmZyb21fb3NfcGF0aChwYXRoKSwgcmVmZXJlbmNlcz1bKHV0aWxzLmZyb21fb3Nf
cGF0aChyZWZfcGF0aCksIHJlZl9lcSldKQogICAgIGVsaWYgY2xzIGlzIGl0ZW0uU3VwcG9ydEZp
bGU6Ci0gICAgICAgIHRlc3QgPSBjbHMocykKKyAgICAgICAgdGVzdCA9IGNscygiL2Zvb2JhciIs
IHBhdGgpCiAgICAgZWxzZToKLSAgICAgICAgdGVzdCA9IGNscyhzLCB1dGlscy5yZWxfcGF0aF90
b191cmwocGF0aCkpCisgICAgICAgIHRlc3QgPSBjbHMoIi9mb29iYXIiLCBwYXRoLCAiLyIsIHV0
aWxzLmZyb21fb3NfcGF0aChwYXRoKSkKIAogICAgIHMubWFuaWZlc3RfaXRlbXMgPSBtb2NrLk1v
Y2socmV0dXJuX3ZhbHVlPShjbHMuaXRlbV90eXBlLCBbdGVzdF0pKQogICAgIHJldHVybiBzCiAK
IAogQGguZ2l2ZW4oaHMubGlzdHMoc291cmNlZmlsZV9zdHJhdGVneSgpLAotICAgICAgICAgICAg
ICAgICAgbWluX3NpemU9MSwgYXZlcmFnZV9zaXplPTEwLCBtYXhfc2l6ZT0xMDAwLAotICAgICAg
ICAgICAgICAgICAgdW5pcXVlX2J5PWxhbWJkYSB4OiB4LnJlbF9wYXRoKSkKKyAgICAgICAgICAg
ICAgICAgIG1pbl9zaXplPTEsIG1heF9zaXplPTEwMDAsIHVuaXF1ZV9ieT1sYW1iZGEgeDogeC5y
ZWxfcGF0aCkpCiBAaC5leGFtcGxlKFtTb3VyY2VGaWxlV2l0aFRlc3QoImEiLCAiMCIqNDAsIGl0
ZW0uQ29uZm9ybWFuY2VDaGVja2VyVGVzdCldKQogZGVmIHRlc3RfbWFuaWZlc3RfdG9fanNvbihz
KToKICAgICBtID0gbWFuaWZlc3QuTWFuaWZlc3QoKQogCi0gICAgYXNzZXJ0IG0udXBkYXRlKHMp
IGlzIFRydWUKKyAgICBhc3NlcnQgbS51cGRhdGUoKGl0ZW0sIFRydWUpIGZvciBpdGVtIGluIHMp
IGlzIFRydWUKIAogICAgIGpzb25fc3RyID0gbS50b19qc29uKCkKICAgICBsb2FkZWQgPSBtYW5p
ZmVzdC5NYW5pZmVzdC5mcm9tX2pzb24oIi8iLCBqc29uX3N0cikKQEAgLTgzLDE4ICs4OSwxNyBA
QCBkZWYgdGVzdF9tYW5pZmVzdF90b19qc29uKHMpOgogCiAKIEBoLmdpdmVuKGhzLmxpc3RzKHNv
dXJjZWZpbGVfc3RyYXRlZ3koKSwKLSAgICAgICAgICAgICAgICAgIG1pbl9zaXplPTEsIGF2ZXJh
Z2Vfc2l6ZT0xMCwKLSAgICAgICAgICAgICAgICAgIHVuaXF1ZV9ieT1sYW1iZGEgeDogeC5yZWxf
cGF0aCkpCisgICAgICAgICAgICAgICAgICBtaW5fc2l6ZT0xLCB1bmlxdWVfYnk9bGFtYmRhIHg6
IHgucmVsX3BhdGgpKQogQGguZXhhbXBsZShbU291cmNlRmlsZVdpdGhUZXN0KCJhIiwgIjAiKjQw
LCBpdGVtLlRlc3RoYXJuZXNzVGVzdCldKQotQGguZXhhbXBsZShbU291cmNlRmlsZVdpdGhUZXN0
KCJhIiwgIjAiKjQwLCBpdGVtLlJlZlRlc3QsIFsoIi9hYSIsICI9PSIpXSldKQorQGguZXhhbXBs
ZShbU291cmNlRmlsZVdpdGhUZXN0KCJhIiwgIjAiKjQwLCBpdGVtLlJlZlRlc3ROb2RlLCByZWZl
cmVuY2VzPVsoIi9hYSIsICI9PSIpXSldKQogZGVmIHRlc3RfbWFuaWZlc3RfaWRlbXBvdGVudChz
KToKICAgICBtID0gbWFuaWZlc3QuTWFuaWZlc3QoKQogCi0gICAgYXNzZXJ0IG0udXBkYXRlKHMp
IGlzIFRydWUKKyAgICBhc3NlcnQgbS51cGRhdGUoKGl0ZW0sIFRydWUpIGZvciBpdGVtIGluIHMp
IGlzIFRydWUKIAogICAgIG0xID0gbGlzdChtKQogCi0gICAgYXNzZXJ0IG0udXBkYXRlKHMpIGlz
IEZhbHNlCisgICAgYXNzZXJ0IG0udXBkYXRlKChpdGVtLCBUcnVlKSBmb3IgaXRlbSBpbiBzKSBp
cyBGYWxzZQogCiAgICAgYXNzZXJ0IGxpc3QobSkgPT0gbTEKIApAQCAtMTA0LDUyICsxMDksNDIg
QEAgZGVmIHRlc3RfbWFuaWZlc3RfdG9fanNvbl9mb3J3YXJkc2xhc2goKToKIAogICAgIHMgPSBT
b3VyY2VGaWxlV2l0aFRlc3QoImEvYiIsICIwIio0MCwgaXRlbS5UZXN0aGFybmVzc1Rlc3QpCiAK
LSAgICBhc3NlcnQgbS51cGRhdGUoW3NdKSBpcyBUcnVlCisgICAgYXNzZXJ0IG0udXBkYXRlKFso
cywgVHJ1ZSldKSBpcyBUcnVlCiAKICAgICBhc3NlcnQgbS50b19qc29uKCkgPT0gewogICAgICAg
ICAncGF0aHMnOiB7CiAgICAgICAgICAgICAnYS9iJzogKCcwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwJywgJ3Rlc3RoYXJuZXNzJykKICAgICAgICAgfSwKLSAgICAgICAg
J3ZlcnNpb24nOiA1LAorICAgICAgICAndmVyc2lvbic6IDYsCiAgICAgICAgICd1cmxfYmFzZSc6
ICcvJywKICAgICAgICAgJ2l0ZW1zJzogewotICAgICAgICAgICAgJ3JlZnRlc3QnOiB7fSwKLSAg
ICAgICAgICAgICdyZWZ0ZXN0X25vZGUnOiB7fSwKICAgICAgICAgICAgICd0ZXN0aGFybmVzcyc6
IHsKLSAgICAgICAgICAgICAgICAnYS9iJzogW1snL2EvYicsIHt9XV0KKyAgICAgICAgICAgICAg
ICAnYS9iJzogWygnYS9iJywge30pXQogICAgICAgICAgICAgfQogICAgICAgICB9CiAgICAgfQog
CiAKK0BweXRlc3QubWFyay5za2lwaWYob3Muc2VwICE9ICJcXCIsIHJlYXNvbj0iYmFja3NsYXNo
IHBhdGgiKQogZGVmIHRlc3RfbWFuaWZlc3RfdG9fanNvbl9iYWNrc2xhc2goKToKICAgICBtID0g
bWFuaWZlc3QuTWFuaWZlc3QoKQogCiAgICAgcyA9IFNvdXJjZUZpbGVXaXRoVGVzdCgiYVxcYiIs
ICIwIio0MCwgaXRlbS5UZXN0aGFybmVzc1Rlc3QpCiAKLSAgICBpZiBvcy5wYXRoLnNlcCA9PSAi
XFwiOgotICAgICAgICBhc3NlcnQgbS51cGRhdGUoW3NdKSBpcyBUcnVlCi0KLSAgICAgICAgYXNz
ZXJ0IG0udG9fanNvbigpID09IHsKLSAgICAgICAgICAgICdwYXRocyc6IHsKLSAgICAgICAgICAg
ICAgICAnYS9iJzogKCcwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwJywg
J3Rlc3RoYXJuZXNzJykKLSAgICAgICAgICAgIH0sCi0gICAgICAgICAgICAndmVyc2lvbic6IDUs
Ci0gICAgICAgICAgICAndXJsX2Jhc2UnOiAnLycsCi0gICAgICAgICAgICAnaXRlbXMnOiB7Ci0g
ICAgICAgICAgICAgICAgJ3JlZnRlc3QnOiB7fSwKLSAgICAgICAgICAgICAgICAncmVmdGVzdF9u
b2RlJzoge30sCi0gICAgICAgICAgICAgICAgJ3Rlc3RoYXJuZXNzJzogewotICAgICAgICAgICAg
ICAgICAgICAnYS9iJzogW1snL2EvYicsIHt9XV0KLSAgICAgICAgICAgICAgICB9CisgICAgYXNz
ZXJ0IG0udXBkYXRlKFsocywgVHJ1ZSldKSBpcyBUcnVlCisKKyAgICBhc3NlcnQgbS50b19qc29u
KCkgPT0geworICAgICAgICAncGF0aHMnOiB7CisgICAgICAgICAgICAnYS9iJzogKCcwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwJywgJ3Rlc3RoYXJuZXNzJykKKyAgICAg
ICAgfSwKKyAgICAgICAgJ3ZlcnNpb24nOiA2LAorICAgICAgICAndXJsX2Jhc2UnOiAnLycsCisg
ICAgICAgICdpdGVtcyc6IHsKKyAgICAgICAgICAgICd0ZXN0aGFybmVzcyc6IHsKKyAgICAgICAg
ICAgICAgICAnYS9iJzogWygnYS9iJywge30pXQogICAgICAgICAgICAgfQogICAgICAgICB9Ci0g
ICAgZWxzZToKLSAgICAgICAgd2l0aCBweXRlc3QucmFpc2VzKFZhbHVlRXJyb3IpOgotICAgICAg
ICAgICAgIyBvbmUgb2YgdGhlc2UgbXVzdCByYWlzZSBWYWx1ZUVycm9yCi0gICAgICAgICAgICAj
IHRoZSBmaXJzdCBtdXN0IHJldHVybiBUcnVlIGlmIGl0IGRvZXNuJ3QgcmFpc2UKLSAgICAgICAg
ICAgIGFzc2VydCBtLnVwZGF0ZShbc10pIGlzIFRydWUKLSAgICAgICAgICAgIG0udG9fanNvbigp
CisgICAgfQogCiAKIGRlZiB0ZXN0X21hbmlmZXN0X2Zyb21fanNvbl9iYWNrc2xhc2goKToKQEAg
LTE1NywxMyArMTUyLDExIEBAIGRlZiB0ZXN0X21hbmlmZXN0X2Zyb21fanNvbl9iYWNrc2xhc2go
KToKICAgICAgICAgJ3BhdGhzJzogewogICAgICAgICAgICAgJ2FcXGInOiAoJzAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAnLCAndGVzdGhhcm5lc3MnKQogICAgICAgICB9
LAotICAgICAgICAndmVyc2lvbic6IDUsCisgICAgICAgICd2ZXJzaW9uJzogNiwKICAgICAgICAg
J3VybF9iYXNlJzogJy8nLAogICAgICAgICAnaXRlbXMnOiB7Ci0gICAgICAgICAgICAncmVmdGVz
dCc6IHt9LAotICAgICAgICAgICAgJ3JlZnRlc3Rfbm9kZSc6IHt9LAogICAgICAgICAgICAgJ3Rl
c3RoYXJuZXNzJzogewotICAgICAgICAgICAgICAgICdhXFxiJzogW1snL2EvYicsIHt9XV0KKyAg
ICAgICAgICAgICAgICAnYVxcYic6IFtbJ2EvYicsIHt9XV0KICAgICAgICAgICAgIH0KICAgICAg
ICAgfQogICAgIH0KQEAgLTE3NSw3OCArMTY4LDc0IEBAIGRlZiB0ZXN0X21hbmlmZXN0X2Zyb21f
anNvbl9iYWNrc2xhc2goKToKIGRlZiB0ZXN0X3JlZnRlc3RfY29tcHV0YXRpb25fY2hhaW4oKToK
ICAgICBtID0gbWFuaWZlc3QuTWFuaWZlc3QoKQogCi0gICAgczEgPSBTb3VyY2VGaWxlV2l0aFRl
c3QoInRlc3QxIiwgIjAiKjQwLCBpdGVtLlJlZlRlc3QsIFsoIi90ZXN0MiIsICI9PSIpXSkKLSAg
ICBzMiA9IFNvdXJjZUZpbGVXaXRoVGVzdCgidGVzdDIiLCAiMCIqNDAsIGl0ZW0uUmVmVGVzdCwg
WygiL3Rlc3QzIiwgIj09IildKQorICAgIHMxID0gU291cmNlRmlsZVdpdGhUZXN0KCJ0ZXN0MSIs
ICIwIio0MCwgaXRlbS5SZWZUZXN0Tm9kZSwgcmVmZXJlbmNlcz1bKCIvdGVzdDIiLCAiPT0iKV0p
CisgICAgczIgPSBTb3VyY2VGaWxlV2l0aFRlc3QoInRlc3QyIiwgIjAiKjQwLCBpdGVtLlJlZlRl
c3ROb2RlLCByZWZlcmVuY2VzPVsoIi90ZXN0MyIsICI9PSIpXSkKIAotICAgIG0udXBkYXRlKFtz
MSwgczJdKQorICAgIG0udXBkYXRlKFsoczEsIFRydWUpLCAoczIsIFRydWUpXSkKIAogICAgIHRl
c3QxID0gczEubWFuaWZlc3RfaXRlbXMoKVsxXVswXQogICAgIHRlc3QyID0gczIubWFuaWZlc3Rf
aXRlbXMoKVsxXVswXQotICAgIHRlc3QyX25vZGUgPSB0ZXN0Mi50b19SZWZUZXN0Tm9kZSgpCiAK
LSAgICBhc3NlcnQgbGlzdChtKSA9PSBbKCJyZWZ0ZXN0IiwgdGVzdDEucGF0aCwge3Rlc3QxfSks
Ci0gICAgICAgICAgICAgICAgICAgICAgICgicmVmdGVzdF9ub2RlIiwgdGVzdDIucGF0aCwge3Rl
c3QyX25vZGV9KV0KKyAgICBhc3NlcnQgbGlzdChtKSA9PSBbKCJyZWZ0ZXN0IiwgdGVzdDEucGF0
aCwge3Rlc3QxLnRvX1JlZlRlc3QoKX0pLAorICAgICAgICAgICAgICAgICAgICAgICAoInJlZnRl
c3Rfbm9kZSIsIHRlc3QyLnBhdGgsIHt0ZXN0Mn0pXQogCiAKIGRlZiB0ZXN0X3JlZnRlc3RfY29t
cHV0YXRpb25fY2hhaW5fdXBkYXRlX2FkZCgpOgogICAgIG0gPSBtYW5pZmVzdC5NYW5pZmVzdCgp
CiAKLSAgICBzMiA9IFNvdXJjZUZpbGVXaXRoVGVzdCgidGVzdDIiLCAiMCIqNDAsIGl0ZW0uUmVm
VGVzdCwgWygiL3Rlc3QzIiwgIj09IildKQorICAgIHMyID0gU291cmNlRmlsZVdpdGhUZXN0KCJ0
ZXN0MiIsICIwIio0MCwgaXRlbS5SZWZUZXN0Tm9kZSwgcmVmZXJlbmNlcz1bKCIvdGVzdDMiLCAi
PT0iKV0pCiAgICAgdGVzdDIgPSBzMi5tYW5pZmVzdF9pdGVtcygpWzFdWzBdCiAKLSAgICBhc3Nl
cnQgbS51cGRhdGUoW3MyXSkgaXMgVHJ1ZQorICAgIGFzc2VydCBtLnVwZGF0ZShbKHMyLCBUcnVl
KV0pIGlzIFRydWUKIAotICAgIGFzc2VydCBsaXN0KG0pID09IFsoInJlZnRlc3QiLCB0ZXN0Mi5w
YXRoLCB7dGVzdDJ9KV0KKyAgICBhc3NlcnQgbGlzdChtKSA9PSBbKCJyZWZ0ZXN0IiwgdGVzdDIu
cGF0aCwge3Rlc3QyLnRvX1JlZlRlc3QoKX0pXQogCi0gICAgczEgPSBTb3VyY2VGaWxlV2l0aFRl
c3QoInRlc3QxIiwgIjAiKjQwLCBpdGVtLlJlZlRlc3QsIFsoIi90ZXN0MiIsICI9PSIpXSkKKyAg
ICBzMSA9IFNvdXJjZUZpbGVXaXRoVGVzdCgidGVzdDEiLCAiMCIqNDAsIGl0ZW0uUmVmVGVzdE5v
ZGUsIHJlZmVyZW5jZXM9WygiL3Rlc3QyIiwgIj09IildKQogICAgIHRlc3QxID0gczEubWFuaWZl
c3RfaXRlbXMoKVsxXVswXQogCiAgICAgIyBzMidzIGhhc2ggaXMgdW5jaGFuZ2VkLCBidXQgaXQg
aGFzIGdvbmUgZnJvbSBhIHRlc3QgdG8gYSBub2RlCi0gICAgYXNzZXJ0IG0udXBkYXRlKFtzMSwg
czJdKSBpcyBUcnVlCisgICAgYXNzZXJ0IG0udXBkYXRlKFsoczEsIFRydWUpLCAoczIsIFRydWUp
XSkgaXMgVHJ1ZQogCi0gICAgdGVzdDJfbm9kZSA9IHRlc3QyLnRvX1JlZlRlc3ROb2RlKCkKLQot
ICAgIGFzc2VydCBsaXN0KG0pID09IFsoInJlZnRlc3QiLCB0ZXN0MS5wYXRoLCB7dGVzdDF9KSwK
LSAgICAgICAgICAgICAgICAgICAgICAgKCJyZWZ0ZXN0X25vZGUiLCB0ZXN0Mi5wYXRoLCB7dGVz
dDJfbm9kZX0pXQorICAgIGFzc2VydCBsaXN0KG0pID09IFsoInJlZnRlc3QiLCB0ZXN0MS5wYXRo
LCB7dGVzdDEudG9fUmVmVGVzdCgpfSksCisgICAgICAgICAgICAgICAgICAgICAgICgicmVmdGVz
dF9ub2RlIiwgdGVzdDIucGF0aCwge3Rlc3QyfSldCiAKIAogZGVmIHRlc3RfcmVmdGVzdF9jb21w
dXRhdGlvbl9jaGFpbl91cGRhdGVfcmVtb3ZlKCk6CiAgICAgbSA9IG1hbmlmZXN0Lk1hbmlmZXN0
KCkKIAotICAgIHMxID0gU291cmNlRmlsZVdpdGhUZXN0KCJ0ZXN0MSIsICIwIio0MCwgaXRlbS5S
ZWZUZXN0LCBbKCIvdGVzdDIiLCAiPT0iKV0pCi0gICAgczIgPSBTb3VyY2VGaWxlV2l0aFRlc3Qo
InRlc3QyIiwgIjAiKjQwLCBpdGVtLlJlZlRlc3QsIFsoIi90ZXN0MyIsICI9PSIpXSkKKyAgICBz
MSA9IFNvdXJjZUZpbGVXaXRoVGVzdCgidGVzdDEiLCAiMCIqNDAsIGl0ZW0uUmVmVGVzdE5vZGUs
IHJlZmVyZW5jZXM9WygiL3Rlc3QyIiwgIj09IildKQorICAgIHMyID0gU291cmNlRmlsZVdpdGhU
ZXN0KCJ0ZXN0MiIsICIwIio0MCwgaXRlbS5SZWZUZXN0Tm9kZSwgcmVmZXJlbmNlcz1bKCIvdGVz
dDMiLCAiPT0iKV0pCiAKLSAgICBhc3NlcnQgbS51cGRhdGUoW3MxLCBzMl0pIGlzIFRydWUKKyAg
ICBhc3NlcnQgbS51cGRhdGUoWyhzMSwgVHJ1ZSksIChzMiwgVHJ1ZSldKSBpcyBUcnVlCiAKICAg
ICB0ZXN0MSA9IHMxLm1hbmlmZXN0X2l0ZW1zKClbMV1bMF0KICAgICB0ZXN0MiA9IHMyLm1hbmlm
ZXN0X2l0ZW1zKClbMV1bMF0KLSAgICB0ZXN0Ml9ub2RlID0gdGVzdDIudG9fUmVmVGVzdE5vZGUo
KQogCi0gICAgYXNzZXJ0IGxpc3QobSkgPT0gWygicmVmdGVzdCIsIHRlc3QxLnBhdGgsIHt0ZXN0
MX0pLAotICAgICAgICAgICAgICAgICAgICAgICAoInJlZnRlc3Rfbm9kZSIsIHRlc3QyLnBhdGgs
IHt0ZXN0Ml9ub2RlfSldCisgICAgYXNzZXJ0IGxpc3QobSkgPT0gWygicmVmdGVzdCIsIHRlc3Qx
LnBhdGgsIHt0ZXN0MS50b19SZWZUZXN0KCl9KSwKKyAgICAgICAgICAgICAgICAgICAgICAgKCJy
ZWZ0ZXN0X25vZGUiLCB0ZXN0Mi5wYXRoLCB7dGVzdDJ9KV0KIAogICAgICMgczIncyBoYXNoIGlz
IHVuY2hhbmdlZCwgYnV0IGl0IGhhcyBnb25lIGZyb20gYSBub2RlIHRvIGEgdGVzdAotICAgIGFz
c2VydCBtLnVwZGF0ZShbczJdKSBpcyBUcnVlCisgICAgYXNzZXJ0IG0udXBkYXRlKFsoczIsIFRy
dWUpXSkgaXMgVHJ1ZQogCi0gICAgYXNzZXJ0IGxpc3QobSkgPT0gWygicmVmdGVzdCIsIHRlc3Qy
LnBhdGgsIHt0ZXN0Mn0pXQorICAgIGFzc2VydCBsaXN0KG0pID09IFsoInJlZnRlc3QiLCB0ZXN0
Mi5wYXRoLCB7dGVzdDIudG9fUmVmVGVzdCgpfSldCiAKIAogZGVmIHRlc3RfcmVmdGVzdF9jb21w
dXRhdGlvbl9jaGFpbl91cGRhdGVfdGVzdF90eXBlKCk6CiAgICAgbSA9IG1hbmlmZXN0Lk1hbmlm
ZXN0KCkKIAotICAgIHMxID0gU291cmNlRmlsZVdpdGhUZXN0KCJ0ZXN0IiwgIjAiKjQwLCBpdGVt
LlJlZlRlc3QsIFsoIi90ZXN0LXJlZiIsICI9PSIpXSkKKyAgICBzMSA9IFNvdXJjZUZpbGVXaXRo
VGVzdCgidGVzdCIsICIwIio0MCwgaXRlbS5SZWZUZXN0Tm9kZSwgcmVmZXJlbmNlcz1bKCIvdGVz
dC1yZWYiLCAiPT0iKV0pCiAKLSAgICBhc3NlcnQgbS51cGRhdGUoW3MxXSkgaXMgVHJ1ZQorICAg
IGFzc2VydCBtLnVwZGF0ZShbKHMxLCBUcnVlKV0pIGlzIFRydWUKIAogICAgIHRlc3QxID0gczEu
bWFuaWZlc3RfaXRlbXMoKVsxXVswXQogCi0gICAgYXNzZXJ0IGxpc3QobSkgPT0gWygicmVmdGVz
dCIsIHRlc3QxLnBhdGgsIHt0ZXN0MX0pXQorICAgIGFzc2VydCBsaXN0KG0pID09IFsoInJlZnRl
c3QiLCB0ZXN0MS5wYXRoLCB7dGVzdDEudG9fUmVmVGVzdCgpfSldCiAKICAgICAjIHRlc3QgYmVj
b21lcyBhIHRlc3RoYXJuZXNzIHRlc3QgKGhhc2ggY2hhbmdlIGJlY2F1c2UgdGhhdCBpcyBkZXRl
cm1pbmVkCiAgICAgIyBiYXNlZCBvbiB0aGUgZmlsZSBjb250ZW50cykuIFRoZSB1cGRhdGVkIG1h
bmlmZXN0IHNob3VsZCBub3QgaW5jbHVkZXMgdGhlCiAgICAgIyBvbGQgcmVmdGVzdC4KICAgICBz
MiA9IFNvdXJjZUZpbGVXaXRoVGVzdCgidGVzdCIsICIxIio0MCwgaXRlbS5UZXN0aGFybmVzc1Rl
c3QpCi0gICAgYXNzZXJ0IG0udXBkYXRlKFtzMl0pIGlzIFRydWUKKyAgICBhc3NlcnQgbS51cGRh
dGUoWyhzMiwgVHJ1ZSldKSBpcyBUcnVlCiAKICAgICB0ZXN0MiA9IHMyLm1hbmlmZXN0X2l0ZW1z
KClbMV1bMF0KIApAQCAtMjU2LDg2ICsyNDUsMTU4IEBAIGRlZiB0ZXN0X3JlZnRlc3RfY29tcHV0
YXRpb25fY2hhaW5fdXBkYXRlX3Rlc3RfdHlwZSgpOgogZGVmIHRlc3RfcmVmdGVzdF9jb21wdXRh
dGlvbl9jaGFpbl91cGRhdGVfbm9kZV9jaGFuZ2UoKToKICAgICBtID0gbWFuaWZlc3QuTWFuaWZl
c3QoKQogCi0gICAgczEgPSBTb3VyY2VGaWxlV2l0aFRlc3QoInRlc3QxIiwgIjAiKjQwLCBpdGVt
LlJlZlRlc3QsIFsoIi90ZXN0MiIsICI9PSIpXSkKLSAgICBzMiA9IFNvdXJjZUZpbGVXaXRoVGVz
dCgidGVzdDIiLCAiMCIqNDAsIGl0ZW0uUmVmVGVzdE5vZGUsIFsoIi90ZXN0MyIsICI9PSIpXSkK
KyAgICBzMSA9IFNvdXJjZUZpbGVXaXRoVGVzdCgidGVzdDEiLCAiMCIqNDAsIGl0ZW0uUmVmVGVz
dE5vZGUsIHJlZmVyZW5jZXM9WygiL3Rlc3QyIiwgIj09IildKQorICAgIHMyID0gU291cmNlRmls
ZVdpdGhUZXN0KCJ0ZXN0MiIsICIwIio0MCwgaXRlbS5SZWZUZXN0Tm9kZSwgcmVmZXJlbmNlcz1b
KCIvdGVzdDMiLCAiPT0iKV0pCiAKLSAgICBhc3NlcnQgbS51cGRhdGUoW3MxLCBzMl0pIGlzIFRy
dWUKKyAgICBhc3NlcnQgbS51cGRhdGUoWyhzMSwgVHJ1ZSksIChzMiwgVHJ1ZSldKSBpcyBUcnVl
CiAKICAgICB0ZXN0MSA9IHMxLm1hbmlmZXN0X2l0ZW1zKClbMV1bMF0KICAgICB0ZXN0MiA9IHMy
Lm1hbmlmZXN0X2l0ZW1zKClbMV1bMF0KIAotICAgIGFzc2VydCBsaXN0KG0pID09IFsoInJlZnRl
c3QiLCB0ZXN0MS5wYXRoLCB7dGVzdDF9KSwKKyAgICBhc3NlcnQgbGlzdChtKSA9PSBbKCJyZWZ0
ZXN0IiwgdGVzdDEucGF0aCwge3Rlc3QxLnRvX1JlZlRlc3QoKX0pLAogICAgICAgICAgICAgICAg
ICAgICAgICAoInJlZnRlc3Rfbm9kZSIsIHRlc3QyLnBhdGgsIHt0ZXN0Mn0pXQogCiAgICAgI3Rl
c3QyIGNoYW5nZXMgdG8gc3VwcG9ydCB0eXBlCiAgICAgczIgPSBTb3VyY2VGaWxlV2l0aFRlc3Qo
InRlc3QyIiwgIjEiKjQwLCBpdGVtLlN1cHBvcnRGaWxlKQogCi0gICAgYXNzZXJ0IG0udXBkYXRl
KFtzMSxzMl0pIGlzIFRydWUKKyAgICBhc3NlcnQgbS51cGRhdGUoWyhzMSwgVHJ1ZSksIChzMiwg
VHJ1ZSldKSBpcyBUcnVlCiAgICAgdGVzdDMgPSBzMi5tYW5pZmVzdF9pdGVtcygpWzFdWzBdCiAK
LSAgICBhc3NlcnQgbGlzdChtKSA9PSBbKCJyZWZ0ZXN0IiwgdGVzdDEucGF0aCwge3Rlc3QxfSks
CisgICAgYXNzZXJ0IGxpc3QobSkgPT0gWygicmVmdGVzdCIsIHRlc3QxLnBhdGgsIHt0ZXN0MS50
b19SZWZUZXN0KCl9KSwKICAgICAgICAgICAgICAgICAgICAgICAgKCJzdXBwb3J0IiwgdGVzdDMu
cGF0aCwge3Rlc3QzfSldCiAKIAorZGVmIHRlc3RfcmVmdGVzdF9jb21wdXRhdGlvbl9jaGFpbl91
cGRhdGVfbm9kZV9jaGFuZ2VfcGFydGlhbCgpOgorICAgIG0gPSBtYW5pZmVzdC5NYW5pZmVzdCgp
CisKKyAgICBzMSA9IFNvdXJjZUZpbGVXaXRoVGVzdCgidGVzdDEiLCAiMCIqNDAsIGl0ZW0uUmVm
VGVzdE5vZGUsIHJlZmVyZW5jZXM9WygiL3Rlc3QyIiwgIj09IildKQorICAgIHMyID0gU291cmNl
RmlsZVdpdGhUZXN0KCJ0ZXN0MiIsICIwIio0MCwgaXRlbS5SZWZUZXN0Tm9kZSwgcmVmZXJlbmNl
cz1bKCIvdGVzdDMiLCAiPT0iKV0pCisKKyAgICBhc3NlcnQgbS51cGRhdGUoWyhzMSwgVHJ1ZSks
IChzMiwgVHJ1ZSldKSBpcyBUcnVlCisKKyAgICB0ZXN0MSA9IHMxLm1hbmlmZXN0X2l0ZW1zKClb
MV1bMF0KKyAgICB0ZXN0MiA9IHMyLm1hbmlmZXN0X2l0ZW1zKClbMV1bMF0KKworICAgIGFzc2Vy
dCBsaXN0KG0pID09IFsoInJlZnRlc3QiLCB0ZXN0MS5wYXRoLCB7dGVzdDEudG9fUmVmVGVzdCgp
fSksCisgICAgICAgICAgICAgICAgICAgICAgICgicmVmdGVzdF9ub2RlIiwgdGVzdDIucGF0aCwg
e3Rlc3QyfSldCisKKyAgICBzMiA9IFNvdXJjZUZpbGVXaXRoVGVzdCgidGVzdDIiLCAiMSIqNDAs
IGl0ZW0uUmVmVGVzdE5vZGUsIHJlZmVyZW5jZXM9WygiL3Rlc3QzIiwgIj09IildKQorCisgICAg
YXNzZXJ0IG0udXBkYXRlKFsoczEucmVsX3BhdGgsIEZhbHNlKSwgKHMyLCBUcnVlKV0pIGlzIFRy
dWUKKworICAgIGFzc2VydCBsaXN0KG0pID09IFsoInJlZnRlc3QiLCB0ZXN0MS5wYXRoLCB7dGVz
dDEudG9fUmVmVGVzdCgpfSksCisgICAgICAgICAgICAgICAgICAgICAgICgicmVmdGVzdF9ub2Rl
IiwgdGVzdDIucGF0aCwge3Rlc3QyfSldCisKKwogZGVmIHRlc3RfaXRlcnBhdGgoKToKICAgICBt
ID0gbWFuaWZlc3QuTWFuaWZlc3QoKQogCi0gICAgc291cmNlcyA9IFtTb3VyY2VGaWxlV2l0aFRl
c3QoInRlc3QxIiwgIjAiKjQwLCBpdGVtLlJlZlRlc3QsIFsoIi90ZXN0MS1yZWYiLCAiPT0iKV0p
LAotICAgICAgICAgICAgICAgU291cmNlRmlsZVdpdGhUZXN0KCJ0ZXN0MiIsICIwIio0MCwgaXRl
bS5SZWZUZXN0LCBbKCIvdGVzdDItcmVmIiwgIj09IildKSwKLSAgICAgICAgICAgICAgIFNvdXJj
ZUZpbGVXaXRoVGVzdHMoInRlc3QyIiwgIjAiKjQwLCBpdGVtLlRlc3RoYXJuZXNzVGVzdCwgWygi
L3Rlc3QyLTEuaHRtbCIsKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgiL3Rlc3QyLTIuaHRtbCIsKV0p
LAorICAgIHNvdXJjZXMgPSBbU291cmNlRmlsZVdpdGhUZXN0KCJ0ZXN0MSIsICIwIio0MCwgaXRl
bS5SZWZUZXN0Tm9kZSwgcmVmZXJlbmNlcz1bKCIvdGVzdDEtcmVmIiwgIj09IildKSwKKyAgICAg
ICAgICAgICAgIFNvdXJjZUZpbGVXaXRoVGVzdHMoInRlc3QyIiwgIjEiKjQwLCBpdGVtLlRlc3Ro
YXJuZXNzVGVzdCwgWygidGVzdDItMS5odG1sIiwge30pLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCJ0
ZXN0Mi0yLmh0bWwiLCB7fSldKSwKICAgICAgICAgICAgICAgIFNvdXJjZUZpbGVXaXRoVGVzdCgi
dGVzdDMiLCAiMCIqNDAsIGl0ZW0uVGVzdGhhcm5lc3NUZXN0KV0KLSAgICBtLnVwZGF0ZShzb3Vy
Y2VzKQorICAgIG0udXBkYXRlKFsocywgVHJ1ZSkgZm9yIHMgaW4gc291cmNlc10pCiAKLSAgICBh
c3NlcnQgc2V0KGl0ZW0udXJsIGZvciBpdGVtIGluIG0uaXRlcnBhdGgoInRlc3QyIikpID09IHNl
dChbIi90ZXN0MiIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICIvdGVzdDItMS5odG1sIiwKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIi90ZXN0Mi0y
Lmh0bWwiXSkKKyAgICBhc3NlcnQge2l0ZW0udXJsIGZvciBpdGVtIGluIG0uaXRlcnBhdGgoInRl
c3QyIil9ID09IHsiL3Rlc3QyLTEuaHRtbCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIi90ZXN0Mi0yLmh0bWwifQogICAgIGFzc2Vy
dCBzZXQobS5pdGVycGF0aCgibWlzc2luZyIpKSA9PSBzZXQoKQogCiAKLWRlZiB0ZXN0X2ZpbHRl
cigpOgorZGVmIHRlc3RfcmVmdGVzdF9ub2RlX2J5X3VybCgpOgogICAgIG0gPSBtYW5pZmVzdC5N
YW5pZmVzdCgpCiAKLSAgICBzb3VyY2VzID0gW1NvdXJjZUZpbGVXaXRoVGVzdCgidGVzdDEiLCAi
MCIqNDAsIGl0ZW0uUmVmVGVzdCwgWygiL3Rlc3QxLXJlZiIsICI9PSIpXSksCi0gICAgICAgICAg
ICAgICBTb3VyY2VGaWxlV2l0aFRlc3QoInRlc3QyIiwgIjAiKjQwLCBpdGVtLlJlZlRlc3QsIFso
Ii90ZXN0Mi1yZWYiLCAiPT0iKV0pLAotICAgICAgICAgICAgICAgU291cmNlRmlsZVdpdGhUZXN0
cygidGVzdDIiLCAiMCIqNDAsIGl0ZW0uVGVzdGhhcm5lc3NUZXN0LCBbKCIvdGVzdDItMS5odG1s
IiwpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgKCIvdGVzdDItMi5odG1sIiwpXSksCi0gICAgICAgICAg
ICAgICBTb3VyY2VGaWxlV2l0aFRlc3QoInRlc3QzIiwgIjAiKjQwLCBpdGVtLlRlc3RoYXJuZXNz
VGVzdCldCi0gICAgbS51cGRhdGUoc291cmNlcykKLQotICAgIGpzb24gPSBtLnRvX2pzb24oKQor
ICAgIHMxID0gU291cmNlRmlsZVdpdGhUZXN0KCJ0ZXN0MSIsICIwIio0MCwgaXRlbS5SZWZUZXN0
Tm9kZSwgcmVmZXJlbmNlcz1bKCIvdGVzdDIiLCAiPT0iKV0pCisgICAgczIgPSBTb3VyY2VGaWxl
V2l0aFRlc3QoInRlc3QyIiwgIjAiKjQwLCBpdGVtLlJlZlRlc3ROb2RlLCByZWZlcmVuY2VzPVso
Ii90ZXN0MyIsICI9PSIpXSkKIAotICAgIGRlZiBmaWx0ZXIoaXQpOgotICAgICAgICBmb3IgdGVz
dCBpbiBpdDoKLSAgICAgICAgICAgIGlmIHRlc3RbMF0gaW4gWyIvdGVzdDItMi5odG1sIiwgIi90
ZXN0MyJdOgotICAgICAgICAgICAgICAgIHlpZWxkIHRlc3QKKyAgICBtLnVwZGF0ZShbKHMxLCBU
cnVlKSwgKHMyLCBUcnVlKV0pCiAKLSAgICBmaWx0ZXJlZF9tYW5pZmVzdCA9IG1hbmlmZXN0Lk1h
bmlmZXN0LmZyb21fanNvbigiLyIsIGpzb24sIHR5cGVzPVsidGVzdGhhcm5lc3MiXSwgbWV0YV9m
aWx0ZXJzPVtmaWx0ZXJdKQorICAgIHRlc3QxID0gczEubWFuaWZlc3RfaXRlbXMoKVsxXVswXQor
ICAgIHRlc3QyID0gczIubWFuaWZlc3RfaXRlbXMoKVsxXVswXQogCi0gICAgYWN0dWFsID0gWwot
ICAgICAgICAodHksIHBhdGgsIFt0ZXN0LmlkIGZvciB0ZXN0IGluIHRlc3RzXSkKLSAgICAgICAg
Zm9yICh0eSwgcGF0aCwgdGVzdHMpIGluIGZpbHRlcmVkX21hbmlmZXN0Ci0gICAgXQotICAgIGFz
c2VydCBhY3R1YWwgPT0gWwotICAgICAgICAoInRlc3RoYXJuZXNzIiwgInRlc3QyIiwgWyIvdGVz
dDItMi5odG1sIl0pLAotICAgICAgICAoInRlc3RoYXJuZXNzIiwgInRlc3QzIiwgWyIvdGVzdDMi
XSksCi0gICAgXQorICAgIGFzc2VydCBtLnJlZnRlc3Rfbm9kZXNfYnlfdXJsID09IHsiL3Rlc3Qx
IjogdGVzdDEudG9fUmVmVGVzdCgpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAiL3Rlc3QyIjogdGVzdDJ9CisgICAgbS5fcmVmdGVzdF9ub2Rlc19ieV91cmwgPSBOb25l
CisgICAgYXNzZXJ0IG0ucmVmdGVzdF9ub2Rlc19ieV91cmwgPT0geyIvdGVzdDEiOiB0ZXN0MS50
b19SZWZUZXN0KCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIvdGVz
dDIiOiB0ZXN0Mn0KIAogCi1kZWYgdGVzdF9yZWZ0ZXN0X25vZGVfYnlfdXJsKCk6CitkZWYgdGVz
dF9ub191cGRhdGUoKToKICAgICBtID0gbWFuaWZlc3QuTWFuaWZlc3QoKQogCi0gICAgczEgPSBT
b3VyY2VGaWxlV2l0aFRlc3QoInRlc3QxIiwgIjAiKjQwLCBpdGVtLlJlZlRlc3QsIFsoIi90ZXN0
MiIsICI9PSIpXSkKLSAgICBzMiA9IFNvdXJjZUZpbGVXaXRoVGVzdCgidGVzdDIiLCAiMCIqNDAs
IGl0ZW0uUmVmVGVzdCwgWygiL3Rlc3QzIiwgIj09IildKQorICAgIHMxID0gU291cmNlRmlsZVdp
dGhUZXN0KCJ0ZXN0MSIsICIwIio0MCwgaXRlbS5UZXN0aGFybmVzc1Rlc3QpCisgICAgczIgPSBT
b3VyY2VGaWxlV2l0aFRlc3QoInRlc3QyIiwgIjAiKjQwLCBpdGVtLlRlc3RoYXJuZXNzVGVzdCkK
IAotICAgIG0udXBkYXRlKFtzMSwgczJdKQorICAgIG0udXBkYXRlKFsoczEsIFRydWUpLCAoczIs
IFRydWUpXSkKIAogICAgIHRlc3QxID0gczEubWFuaWZlc3RfaXRlbXMoKVsxXVswXQogICAgIHRl
c3QyID0gczIubWFuaWZlc3RfaXRlbXMoKVsxXVswXQotICAgIHRlc3QyX25vZGUgPSB0ZXN0Mi50
b19SZWZUZXN0Tm9kZSgpCiAKLSAgICBhc3NlcnQgbS5yZWZ0ZXN0X25vZGVzX2J5X3VybCA9PSB7
Ii90ZXN0MSI6IHRlc3QxLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAi
L3Rlc3QyIjogdGVzdDJfbm9kZX0KLSAgICBtLl9yZWZ0ZXN0X25vZGVzX2J5X3VybCA9IE5vbmUK
LSAgICBhc3NlcnQgbS5yZWZ0ZXN0X25vZGVzX2J5X3VybCA9PSB7Ii90ZXN0MSI6IHRlc3QxLAot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiL3Rlc3QyIjogdGVzdDJfbm9k
ZX0KKyAgICBhc3NlcnQgbGlzdChtKSA9PSBbKCJ0ZXN0aGFybmVzcyIsIHRlc3QxLnBhdGgsIHt0
ZXN0MX0pLAorICAgICAgICAgICAgICAgICAgICAgICAoInRlc3RoYXJuZXNzIiwgdGVzdDIucGF0
aCwge3Rlc3QyfSldCisKKyAgICBzMV8xID0gU291cmNlRmlsZVdpdGhUZXN0KCJ0ZXN0MSIsICIx
Iio0MCwgaXRlbS5NYW51YWxUZXN0KQorCisgICAgbS51cGRhdGUoWyhzMV8xLCBUcnVlKSwgKHMy
LnJlbF9wYXRoLCBGYWxzZSldKQorCisgICAgdGVzdDFfMSA9IHMxXzEubWFuaWZlc3RfaXRlbXMo
KVsxXVswXQorCisgICAgYXNzZXJ0IGxpc3QobSkgPT0gWygibWFudWFsIiwgdGVzdDFfMS5wYXRo
LCB7dGVzdDFfMX0pLAorICAgICAgICAgICAgICAgICAgICAgICAoInRlc3RoYXJuZXNzIiwgdGVz
dDIucGF0aCwge3Rlc3QyfSldCisKKworZGVmIHRlc3Rfbm9fdXBkYXRlX2RlbGV0ZSgpOgorICAg
IG0gPSBtYW5pZmVzdC5NYW5pZmVzdCgpCisKKyAgICBzMSA9IFNvdXJjZUZpbGVXaXRoVGVzdCgi
dGVzdDEiLCAiMCIqNDAsIGl0ZW0uVGVzdGhhcm5lc3NUZXN0KQorICAgIHMyID0gU291cmNlRmls
ZVdpdGhUZXN0KCJ0ZXN0MiIsICIwIio0MCwgaXRlbS5UZXN0aGFybmVzc1Rlc3QpCisKKyAgICBt
LnVwZGF0ZShbKHMxLCBUcnVlKSwgKHMyLCBUcnVlKV0pCisKKyAgICB0ZXN0MSA9IHMxLm1hbmlm
ZXN0X2l0ZW1zKClbMV1bMF0KKworICAgIHMxXzEgPSBTb3VyY2VGaWxlV2l0aFRlc3QoInRlc3Qx
IiwgIjEiKjQwLCBpdGVtLk1hbnVhbFRlc3QpCisKKyAgICBtLnVwZGF0ZShbKHMxXzEucmVsX3Bh
dGgsIEZhbHNlKV0pCisKKyAgICBhc3NlcnQgbGlzdChtKSA9PSBbKCJ0ZXN0aGFybmVzcyIsIHRl
c3QxLnBhdGgsIHt0ZXN0MX0pXQorCisKK2RlZiB0ZXN0X3VwZGF0ZV9mcm9tX2pzb24oKToKKyAg
ICBtID0gbWFuaWZlc3QuTWFuaWZlc3QoKQorCisgICAgczEgPSBTb3VyY2VGaWxlV2l0aFRlc3Qo
InRlc3QxIiwgIjAiKjQwLCBpdGVtLlRlc3RoYXJuZXNzVGVzdCkKKyAgICBzMiA9IFNvdXJjZUZp
bGVXaXRoVGVzdCgidGVzdDIiLCAiMCIqNDAsIGl0ZW0uVGVzdGhhcm5lc3NUZXN0KQorCisgICAg
bS51cGRhdGUoWyhzMSwgVHJ1ZSksIChzMiwgVHJ1ZSldKQorCisgICAganNvbl9zdHIgPSBtLnRv
X2pzb24oKQorICAgIG0gPSBtYW5pZmVzdC5NYW5pZmVzdC5mcm9tX2pzb24oIi8iLCBqc29uX3N0
cikKKworICAgIG0udXBkYXRlKFsoczEsIFRydWUpXSkKKworICAgIHRlc3QxID0gczEubWFuaWZl
c3RfaXRlbXMoKVsxXVswXQorCisgICAgYXNzZXJ0IGxpc3QobSkgPT0gWygidGVzdGhhcm5lc3Mi
LCB0ZXN0MS5wYXRoLCB7dGVzdDF9KV0KKworCitkZWYgdGVzdF91cGRhdGVfZnJvbV9qc29uX21v
ZGlmaWVkKCk6CisgICAgIyBDcmVhdGUgdGhlIG9yaWdpbmFsIG1hbmlmZXN0CisgICAgbSA9IG1h
bmlmZXN0Lk1hbmlmZXN0KCkKKyAgICBzMSA9IFNvdXJjZUZpbGVXaXRoVGVzdCgidGVzdDEiLCAi
MCIqNDAsIGl0ZW0uVGVzdGhhcm5lc3NUZXN0KQorICAgIG0udXBkYXRlKFsoczEsIFRydWUpXSkK
KyAgICBqc29uX3N0ciA9IG0udG9fanNvbigpCisKKyAgICAjIFJlbG9hZCBpdCBmcm9tIEpTT04K
KyAgICBtID0gbWFuaWZlc3QuTWFuaWZlc3QuZnJvbV9qc29uKCIvIiwganNvbl9zdHIpCisKKyAg
ICAjIFVwZGF0ZSBpdCB3aXRoIHRpbWVvdXQ9ImxvbmciCisgICAgczIgPSBTb3VyY2VGaWxlV2l0
aFRlc3QoInRlc3QxIiwgIjEiKjQwLCBpdGVtLlRlc3RoYXJuZXNzVGVzdCwgdGltZW91dD0ibG9u
ZyIpCisgICAgbS51cGRhdGUoWyhzMiwgVHJ1ZSldKQorICAgIGpzb25fc3RyID0gbS50b19qc29u
KCkKKyAgICBhc3NlcnQganNvbl9zdHIgPT0geworICAgICAgICAnaXRlbXMnOiB7J3Rlc3RoYXJu
ZXNzJzogeyd0ZXN0MSc6IFsoJ3Rlc3QxJywgeyJ0aW1lb3V0IjogImxvbmcifSldfX0sCisgICAg
ICAgICdwYXRocyc6IHsndGVzdDEnOiAoJzExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTEx
MTExMTExMTEnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICd0ZXN0aGFybmVzcycpfSwK
KyAgICAgICAgJ3VybF9iYXNlJzogJy8nLAorICAgICAgICAndmVyc2lvbic6IDYKKyAgICB9CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL21hbmlmZXN0L3Rlc3RzL3Rlc3Rfc291cmNlZmlsZS5weSBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvbWFuaWZlc3QvdGVzdHMvdGVzdF9zb3Vy
Y2VmaWxlLnB5CmluZGV4IDU3YTE3NWNhZTkxM2EyNzNjNmJhNGViYmNjMTNkZDQ3NTcxZTQ5NzAu
LjBhN2ExY2EwYjQxYTljMWI5NWZjZWEzMDk1NGNlZmY0YmNjNzRhZDggMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvbWFuaWZlc3Qv
dGVzdHMvdGVzdF9zb3VyY2VmaWxlLnB5CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvbWFuaWZlc3QvdGVzdHMvdGVzdF9zb3VyY2VmaWxlLnB5
CkBAIC0zNSw3ICszNSw3IEBAIGRlZiBpdGVtcyhzKToKICAgICAiZm9vL3Rvb2xzL3Rlc3QuaHRt
bCIsCiAgICAgImZvby9yZXNvdXJjZXMvdGVzdC5odG1sIiwKICAgICAiZm9vL3N1cHBvcnQvdGVz
dC5odG1sIiwKLSAgICAiZm9vL3Rlc3Qtc3VwcG9ydC5odG1sIiwKKyAgICAiZm9vL2Zvby1tYW51
YWwuaHRtbC5oZWFkZXJzIiwKICAgICAiY3NzL2NvbW1vbi90ZXN0Lmh0bWwiLAogICAgICJjc3Mv
Q1NTMi9hcmNoaXZlL3Rlc3QuaHRtbCIsCiBdKQpAQCAtNTUsNiArNTUsNyBAQCBkZWYgdGVzdF9u
YW1lX2lzX25vbl90ZXN0KHJlbF9wYXRoKToKICAgICAiZm9vL2NzczIxL2FyY2hpdmUvdGVzdC5o
dG1sIiwKICAgICAiZm9vL0NTUzIvYXJjaGl2ZS90ZXN0Lmh0bWwiLAogICAgICJjc3MvY3NzMjEv
YXJjaGl2ZS90ZXN0Lmh0bWwiLAorICAgICJmb28vdGVzdC1zdXBwb3J0Lmh0bWwiLAogXSkKIGRl
ZiB0ZXN0X25vdF9uYW1lX2lzX25vbl90ZXN0KHJlbF9wYXRoKToKICAgICBzID0gY3JlYXRlKHJl
bF9wYXRoKQpAQCAtNjQsNiArNjUsNyBAQCBkZWYgdGVzdF9ub3RfbmFtZV9pc19ub25fdGVzdChy
ZWxfcGF0aCk6CiAKIAogQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKCJyZWxfcGF0aCIsIFsKKyAg
ICAiZm9vL2Zvby1tYW51YWwuaHRtbCIsCiAgICAgImh0bWwvdGVzdC1tYW51YWwuaHRtbCIsCiAg
ICAgImh0bWwvdGVzdC1tYW51YWwueGh0bWwiLAogICAgICJodG1sL3Rlc3QtbWFudWFsLmh0dHBz
Lmh0bWwiLApAQCAtNzY0LDMgKzc2Niw2OSBAQCBkZWYgdGVzdF9zcGVjX2xpbmtzX3doaXRlc3Bh
Y2UodXJsKToKICAgICBjb250ZW50ID0gYiI8bGluayByZWw9aGVscCBocmVmPSclcyc+IiAlIHVy
bAogICAgIHMgPSBjcmVhdGUoImZvby90ZXN0Lmh0bWwiLCBjb250ZW50KQogICAgIGFzc2VydCBz
LnNwZWNfbGlua3MgPT0geyJodHRwOi8vZXhhbXBsZS5jb20vIn0KKworCitkZWYgdGVzdF91cmxf
YmFzZSgpOgorICAgIGNvbnRlbnRzID0gYiIiIi8vIE1FVEE6IGdsb2JhbD13aW5kb3csd29ya2Vy
CisvLyBNRVRBOiB2YXJpYW50PQorLy8gTUVUQTogdmFyaWFudD0/d3NzCit0ZXN0KCkiIiIKKwor
ICAgIHMgPSBTb3VyY2VGaWxlKCIvIiwgImh0bWwvdGVzdC5hbnkuanMiLCAiL19mYWtlX2Jhc2Uv
IiwgY29udGVudHM9Y29udGVudHMpCisgICAgaXRlbV90eXBlLCBpdGVtcyA9IHMubWFuaWZlc3Rf
aXRlbXMoKQorCisgICAgYXNzZXJ0IGl0ZW1fdHlwZSA9PSAidGVzdGhhcm5lc3MiCisKKyAgICBh
c3NlcnQgW2l0ZW0udXJsIGZvciBpdGVtIGluIGl0ZW1zXSA9PSBbdScvX2Zha2VfYmFzZS9odG1s
L3Rlc3QuYW55Lmh0bWwnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICB1Jy9fZmFrZV9iYXNlL2h0bWwvdGVzdC5hbnkuaHRtbD93c3MnLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1Jy9fZmFrZV9iYXNlL2h0bWwvdGVzdC5h
bnkuc2VydmljZXdvcmtlci5odG1sJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgdScvX2Zha2VfYmFzZS9odG1sL3Rlc3QuYW55LnNlcnZpY2V3b3JrZXIuaHRt
bD93c3MnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1Jy9f
ZmFrZV9iYXNlL2h0bWwvdGVzdC5hbnkuc2hhcmVkd29ya2VyLmh0bWwnLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1Jy9fZmFrZV9iYXNlL2h0bWwvdGVzdC5h
bnkuc2hhcmVkd29ya2VyLmh0bWw/d3NzJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgdScvX2Zha2VfYmFzZS9odG1sL3Rlc3QuYW55Lndvcmtlci5odG1sJywK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdScvX2Zha2VfYmFz
ZS9odG1sL3Rlc3QuYW55Lndvcmtlci5odG1sP3dzcyddCisKKyAgICBhc3NlcnQgaXRlbXNbMF0u
dXJsX2Jhc2UgPT0gIi9fZmFrZV9iYXNlLyIKKworCitAcHl0ZXN0Lm1hcmsucGFyYW1ldHJpemUo
ImZ1enp5LCBleHBlY3RlZCIsIFsKKyAgICAoYiJyZWYuaHRtbDoxOzIwMCIsIHsoIi9mb28vdGVz
dC5odG1sIiwgIi9mb28vcmVmLmh0bWwiLCAiPT0iKTogW1sxLCAxXSwgWzIwMCwgMjAwXV19KSwK
KyAgICAoYiJyZWYuaHRtbDowLTE7MTAwLTIwMCIsIHsoIi9mb28vdGVzdC5odG1sIiwgIi9mb28v
cmVmLmh0bWwiLCAiPT0iKTogW1swLCAxXSwgWzEwMCwgMjAwXV19KSwKKyAgICAoYiIwLTE7MTAw
LTIwMCIsIHtOb25lOiBbWzAsMV0sIFsxMDAsIDIwMF1dfSksCisgICAgKGIibWF4RGlmZmVyZW5j
ZT0xO3RvdGFsUGl4ZWxzPTIwMCIsIHtOb25lOiBbWzEsIDFdLCBbMjAwLCAyMDBdXX0pLAorICAg
IChiInRvdGFsUGl4ZWxzPTIwMDttYXhEaWZmZXJlbmNlPTEiLCB7Tm9uZTogW1sxLCAxXSwgWzIw
MCwgMjAwXV19KSwKKyAgICAoYiJ0b3RhbFBpeGVscz0yMDA7MSIsIHtOb25lOiBbWzEsIDFdLCBb
MjAwLCAyMDBdXX0pLAorICAgIChiIm1heERpZmZlcmVuY2U9MTsyMDAiLCB7Tm9uZTogW1sxLCAx
XSwgWzIwMCwgMjAwXV19KSxdKQorZGVmIHRlc3RfcmVmdGVzdF9mdXp6eShmdXp6eSwgZXhwZWN0
ZWQpOgorICAgIGNvbnRlbnQgPSBiIiIiPGxpbmsgcmVsPW1hdGNoIGhyZWY9cmVmLmh0bWw+Cis8
bWV0YSBuYW1lPWZ1enp5IGNvbnRlbnQ9IiVzIj4KKyIiIiAlIGZ1enp5CisKKyAgICBzID0gY3Jl
YXRlKCJmb28vdGVzdC5odG1sIiwgY29udGVudCkKKworICAgIGFzc2VydCBzLmNvbnRlbnRfaXNf
cmVmX25vZGUKKyAgICBhc3NlcnQgcy5mdXp6eSA9PSBleHBlY3RlZAorCisKK0BweXRlc3QubWFy
ay5wYXJhbWV0cml6ZSgiZnV6enksIGV4cGVjdGVkIiwgWworICAgIChbYiIxOzIwMCJdLCB7Tm9u
ZTogW1sxLCAxXSwgWzIwMCwgMjAwXV19KSwKKyAgICAoW2IicmVmLTIuaHRtbDowLTE7MTAwLTIw
MCJdLCB7KCIvZm9vL3Rlc3QuaHRtbCIsICIvZm9vL3JlZi0yLmh0bWwiLCAiPT0iKTogW1swLCAx
XSwgWzEwMCwgMjAwXV19KSwKKyAgICAoW2IiMTsyMDAiLCBiInJlZi0yLmh0bWw6MC0xOzEwMC0y
MDAiXSwKKyAgICAge05vbmU6IFtbMSwgMV0sIFsyMDAsIDIwMF1dLAorICAgICAgKCIvZm9vL3Rl
c3QuaHRtbCIsICIvZm9vL3JlZi0yLmh0bWwiLCAiPT0iKTogW1swLDFdLCBbMTAwLCAyMDBdXX0p
XSkKK2RlZiB0ZXN0X3JlZnRlc3RfZnV6enlfbXVsdGkoZnV6enksIGV4cGVjdGVkKToKKyAgICBj
b250ZW50ID0gYiIiIjxsaW5rIHJlbD1tYXRjaCBocmVmPXJlZi0xLmh0bWw+Cis8bGluayByZWw9
bWF0Y2ggaHJlZj1yZWYtMi5odG1sPgorIiIiCisgICAgZm9yIGl0ZW0gaW4gZnV6enk6CisgICAg
ICAgIGNvbnRlbnQgKz0gYidcbjxtZXRhIG5hbWU9ZnV6enkgY29udGVudD0iJXMiPicgJSBpdGVt
CisKKyAgICBzID0gY3JlYXRlKCJmb28vdGVzdC5odG1sIiwgY29udGVudCkKKworICAgIGFzc2Vy
dCBzLmNvbnRlbnRfaXNfcmVmX25vZGUKKyAgICBhc3NlcnQgcy5mdXp6eSA9PSBleHBlY3RlZAor
CisKK2RlZiB0ZXN0X2hhc2goKToKKyAgICBzID0gU291cmNlRmlsZSgiLyIsICJmb28iLCAiLyIs
IGNvbnRlbnRzPWIiSGVsbG8sIFdvcmxkISIpCisgICAgYXNzZXJ0IGIiYjQ1ZWY2ZmVjODk1MThk
MzE0ZjU0NmZkNmMzMDI1MzY3YjcyMTY4NCIgPT0gcy5oYXNoCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL21hbmlmZXN0L3Rlc3Rz
L3Rlc3RfdXRpbHMucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL21hbmlmZXN0L3Rlc3RzL3Rlc3RfdXRpbHMucHkKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMWJkZmZi
OWIxZmUwZjEwYjZlNDk3NjhmZDNiZGQ1MDJmOGFlYjNmZAotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvbWFuaWZlc3Qv
dGVzdHMvdGVzdF91dGlscy5weQpAQCAtMCwwICsxLDE0IEBACitpbXBvcnQgb3MKK2ltcG9ydCBz
dWJwcm9jZXNzCisKK2ltcG9ydCBtb2NrCisKK2Zyb20gLi4gaW1wb3J0IHV0aWxzCisKKworZGVm
IHRlc3RfZ2l0X2Zvcl9wYXRoX25vX2dpdCgpOgorICAgIHRoaXNfZGlyID0gb3MucGF0aC5kaXJu
YW1lKF9fZmlsZV9fKQorICAgIHdpdGggbW9jay5wYXRjaCgKKyAgICAgICAgICAgICJzdWJwcm9j
ZXNzLmNoZWNrX291dHB1dCIsCisgICAgICAgICAgICBzaWRlX2VmZmVjdD1zdWJwcm9jZXNzLkNh
bGxlZFByb2Nlc3NFcnJvcigxLCAiZm9vIikpOgorICAgICAgICBhc3NlcnQgdXRpbHMuZ2l0KHRo
aXNfZGlyKSBpcyBOb25lCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL21hbmlmZXN0L3Rlc3RzL3czYy1pbXBvcnQubG9nIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9tYW5pZmVzdC90
ZXN0cy93M2MtaW1wb3J0LmxvZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMWYyMGFj
ODQ0NmZmZmQxMTZjODVkYTVhNzcwNWQzYzI1NWQ5YTA2ZC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL21hbmlmZXN0L3Rlc3RzL3czYy1pbXBvcnQubG9nCisrKyAvZGV2
L251bGwKQEAgLTEsMjEgKzAsMCBAQAotVGhlIHRlc3RzIGluIHRoaXMgZGlyZWN0b3J5IHdlcmUg
aW1wb3J0ZWQgZnJvbSB0aGUgVzNDIHJlcG9zaXRvcnkuCi1EbyBOT1QgbW9kaWZ5IHRoZXNlIHRl
c3RzIGRpcmVjdGx5IGluIFdlYktpdC4KLUluc3RlYWQsIGNyZWF0ZSBhIHB1bGwgcmVxdWVzdCBv
biB0aGUgV1BUIGdpdGh1YjoKLQlodHRwczovL2dpdGh1Yi5jb20vd2ViLXBsYXRmb3JtLXRlc3Rz
L3dwdAotCi1UaGVuIHJ1biB0aGUgVG9vbHMvU2NyaXB0cy9pbXBvcnQtdzNjLXRlc3RzIGluIFdl
YktpdCB0byByZWltcG9ydAotCi1EbyBOT1QgbW9kaWZ5IG9yIHJlbW92ZSB0aGlzIGZpbGUuCi0K
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLQotUHJvcGVydGllcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgot
Tm9uZQotUHJvcGVydHkgdmFsdWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0KLUxpc3Qgb2YgZmlsZXM6Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9tYW5pZmVzdC90ZXN0cy9fX2luaXRfXy5weQotL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvbWFuaWZlc3Qv
dGVzdHMvdGVzdF9YTUxQYXJzZXIucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL21hbmlmZXN0L3Rlc3RzL3Rlc3RfaXRlbS5weQotL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvbWFuaWZlc3QvdGVzdHMv
dGVzdF9tYW5pZmVzdC5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvbWFuaWZlc3QvdGVzdHMvdGVzdF9zb3VyY2VmaWxlLnB5CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL21hbmlm
ZXN0L3VwZGF0ZS5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvbWFuaWZlc3QvdXBkYXRlLnB5Cm9sZCBtb2RlIDEwMDY0NApuZXcgbW9kZSAxMDA3
NTUKaW5kZXggOTkyM2NjNWZlNjI5NTVkZWU2N2Y5NTg2YjcyMTkyMzUxODQ4NzdhNC4uYmZiYWFm
ODk3MTI2ZDhlZWNhNjlkY2VmOTRiYjMxMzA4ODk3ZmRlMgotLS0gYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL21hbmlmZXN0L3VwZGF0ZS5weQorKysg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL21hbmlm
ZXN0L3VwZGF0ZS5weQpAQCAtMiw3ICsyLDcgQEAKIGltcG9ydCBhcmdwYXJzZQogaW1wb3J0IG9z
CiAKLWltcG9ydCBtYW5pZmVzdAorZnJvbSAuIGltcG9ydCBtYW5pZmVzdAogZnJvbSAuIGltcG9y
dCB2Y3MKIGZyb20gLmxvZyBpbXBvcnQgZ2V0X2xvZ2dlcgogZnJvbSAuZG93bmxvYWQgaW1wb3J0
IGRvd25sb2FkX2Zyb21fZ2l0aHViCkBAIC0xMyw0OSArMTMsNTQgQEAgd3B0X3Jvb3QgPSBvcy5w
YXRoLmFic3BhdGgob3MucGF0aC5qb2luKGhlcmUsIG9zLnBhcmRpciwgb3MucGFyZGlyKSkKIAog
bG9nZ2VyID0gZ2V0X2xvZ2dlcigpCiAKLWRlZiB1cGRhdGUodGVzdHNfcm9vdCwgbWFuaWZlc3Qs
IHdvcmtpbmdfY29weT1GYWxzZSk6CitNWVBZID0gRmFsc2UKK2lmIE1ZUFk6CisgICAgIyBNWVBZ
IGlzIHNldCB0byBUcnVlIHdoZW4gcnVuIHVuZGVyIE15cHkuCisgICAgZnJvbSB0eXBpbmcgaW1w
b3J0IEFueQorICAgIGZyb20gdHlwaW5nIGltcG9ydCBPcHRpb25hbAorICAgIGZyb20gLm1hbmlm
ZXN0IGltcG9ydCBNYW5pZmVzdCAgIyBhdm9pZCBjeWNsaWMgaW1wb3J0CisKKworZGVmIHVwZGF0
ZSh0ZXN0c19yb290LCAgIyB0eXBlOiBzdHIKKyAgICAgICAgICAgbWFuaWZlc3QsICAjIHR5cGU6
IE1hbmlmZXN0CisgICAgICAgICAgIG1hbmlmZXN0X3BhdGg9Tm9uZSwgICMgdHlwZTogT3B0aW9u
YWxbc3RyXQorICAgICAgICAgICB3b3JraW5nX2NvcHk9VHJ1ZSwgICMgdHlwZTogYm9vbAorICAg
ICAgICAgICBjYWNoZV9yb290PU5vbmUsICAjIHR5cGU6IE9wdGlvbmFsW3N0cl0KKyAgICAgICAg
ICAgcmVidWlsZD1GYWxzZSAgIyB0eXBlOiBib29sCisgICAgICAgICAgICk6CisgICAgIyB0eXBl
OiAoLi4uKSAtPiBib29sCisgICAgbG9nZ2VyLndhcm5pbmcoIkRlcHJlY2F0ZWQ7IHVzZSBtYW5p
ZmVzdC5sb2FkX2FuZF91cGRhdGUgaW5zdGVhZCIpCiAgICAgbG9nZ2VyLmluZm8oIlVwZGF0aW5n
IG1hbmlmZXN0IikKLSAgICB0cmVlID0gTm9uZQotICAgIGlmIG5vdCB3b3JraW5nX2NvcHk6Ci0g
ICAgICAgIHRyZWUgPSB2Y3MuR2l0LmZvcl9wYXRoKHRlc3RzX3Jvb3QsIG1hbmlmZXN0LnVybF9i
YXNlKQotICAgIGlmIHRyZWUgaXMgTm9uZToKLSAgICAgICAgdHJlZSA9IHZjcy5GaWxlU3lzdGVt
KHRlc3RzX3Jvb3QsIG1hbmlmZXN0LnVybF9iYXNlKQogCisgICAgdHJlZSA9IHZjcy5nZXRfdHJl
ZSh0ZXN0c19yb290LCBtYW5pZmVzdCwgbWFuaWZlc3RfcGF0aCwgY2FjaGVfcm9vdCwKKyAgICAg
ICAgICAgICAgICAgICAgICAgIHdvcmtpbmdfY29weSwgcmVidWlsZCkKICAgICByZXR1cm4gbWFu
aWZlc3QudXBkYXRlKHRyZWUpCiAKIAogZGVmIHVwZGF0ZV9mcm9tX2NsaSgqKmt3YXJncyk6Cisg
ICAgIyB0eXBlOiAoKipBbnkpIC0+IE5vbmUKICAgICB0ZXN0c19yb290ID0ga3dhcmdzWyJ0ZXN0
c19yb290Il0KICAgICBwYXRoID0ga3dhcmdzWyJwYXRoIl0KICAgICBhc3NlcnQgdGVzdHNfcm9v
dCBpcyBub3QgTm9uZQogCi0gICAgbSA9IE5vbmUKLQotICAgIGlmIGt3YXJnc1siZG93bmxvYWQi
XToKKyAgICBpZiBub3Qga3dhcmdzWyJyZWJ1aWxkIl0gYW5kIGt3YXJnc1siZG93bmxvYWQiXToK
ICAgICAgICAgZG93bmxvYWRfZnJvbV9naXRodWIocGF0aCwgdGVzdHNfcm9vdCkKIAotICAgIGlm
IG5vdCBrd2FyZ3MuZ2V0KCJyZWJ1aWxkIiwgRmFsc2UpOgotICAgICAgICB0cnk6Ci0gICAgICAg
ICAgICBtID0gbWFuaWZlc3QubG9hZCh0ZXN0c19yb290LCBwYXRoKQotICAgICAgICBleGNlcHQg
bWFuaWZlc3QuTWFuaWZlc3RWZXJzaW9uTWlzbWF0Y2g6Ci0gICAgICAgICAgICBsb2dnZXIuaW5m
bygiTWFuaWZlc3QgdmVyc2lvbiBjaGFuZ2VkLCByZWJ1aWxkaW5nIikKLSAgICAgICAgICAgIG0g
PSBOb25lCi0KLSAgICBpZiBtIGlzIE5vbmU6Ci0gICAgICAgIG0gPSBtYW5pZmVzdC5NYW5pZmVz
dChrd2FyZ3NbInVybF9iYXNlIl0pCi0KLSAgICBjaGFuZ2VkID0gdXBkYXRlKHRlc3RzX3Jvb3Qs
Ci0gICAgICAgICAgICAgICAgICAgICBtLAotICAgICAgICAgICAgICAgICAgICAgd29ya2luZ19j
b3B5PWt3YXJnc1sid29yayJdKQotICAgIGlmIGNoYW5nZWQ6Ci0gICAgICAgIG1hbmlmZXN0Lndy
aXRlKG0sIHBhdGgpCisgICAgbWFuaWZlc3QubG9hZF9hbmRfdXBkYXRlKHRlc3RzX3Jvb3QsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhdGgsCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGt3YXJnc1sidXJsX2Jhc2UiXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
dXBkYXRlPVRydWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlYnVpbGQ9a3dhcmdz
WyJyZWJ1aWxkIl0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhY2hlX3Jvb3Q9a3dh
cmdzWyJjYWNoZV9yb290Il0pCiAKIAogZGVmIGFic19wYXRoKHBhdGgpOgorICAgICMgdHlwZTog
KHN0cikgLT4gc3RyCiAgICAgcmV0dXJuIG9zLnBhdGguYWJzcGF0aChvcy5wYXRoLmV4cGFuZHVz
ZXIocGF0aCkpCiAKIAogZGVmIGNyZWF0ZV9wYXJzZXIoKToKKyAgICAjIHR5cGU6ICgpIC0+IGFy
Z3BhcnNlLkFyZ3VtZW50UGFyc2VyCiAgICAgcGFyc2VyID0gYXJncGFyc2UuQXJndW1lbnRQYXJz
ZXIoKQogICAgIHBhcnNlci5hZGRfYXJndW1lbnQoCiAgICAgICAgICItcCIsICItLXBhdGgiLCB0
eXBlPWFic19wYXRoLCBoZWxwPSJQYXRoIHRvIG1hbmlmZXN0IGZpbGUuIikKQEAgLTY0LDM3ICs2
OSwyNyBAQCBkZWYgY3JlYXRlX3BhcnNlcigpOgogICAgIHBhcnNlci5hZGRfYXJndW1lbnQoCiAg
ICAgICAgICItciIsICItLXJlYnVpbGQiLCBhY3Rpb249InN0b3JlX3RydWUiLCBkZWZhdWx0PUZh
bHNlLAogICAgICAgICBoZWxwPSJGb3JjZSBhIGZ1bGwgcmVidWlsZCBvZiB0aGUgbWFuaWZlc3Qu
IikKLSAgICBwYXJzZXIuYWRkX2FyZ3VtZW50KAotICAgICAgICAiLS13b3JrIiwgYWN0aW9uPSJz
dG9yZV90cnVlIiwgZGVmYXVsdD1GYWxzZSwKLSAgICAgICAgaGVscD0iQnVpbGQgZnJvbSB0aGUg
d29ya2luZyB0cmVlIHJhdGhlciB0aGFuIHRoZSBsYXRlc3QgY29tbWl0IikKICAgICBwYXJzZXIu
YWRkX2FyZ3VtZW50KAogICAgICAgICAiLS11cmwtYmFzZSIsIGFjdGlvbj0ic3RvcmUiLCBkZWZh
dWx0PSIvIiwKICAgICAgICAgaGVscD0iQmFzZSB1cmwgdG8gdXNlIGFzIHRoZSBtb3VudCBwb2lu
dCBmb3IgdGVzdHMgaW4gdGhpcyBtYW5pZmVzdC4iKQogICAgIHBhcnNlci5hZGRfYXJndW1lbnQo
CiAgICAgICAgICItLW5vLWRvd25sb2FkIiwgZGVzdD0iZG93bmxvYWQiLCBhY3Rpb249InN0b3Jl
X2ZhbHNlIiwgZGVmYXVsdD1UcnVlLAogICAgICAgICBoZWxwPSJOZXZlciBhdHRlbXB0IHRvIGRv
d25sb2FkIHRoZSBtYW5pZmVzdC4iKQorICAgIHBhcnNlci5hZGRfYXJndW1lbnQoCisgICAgICAg
ICItLWNhY2hlLXJvb3QiLCBhY3Rpb249InN0b3JlIiwgZGVmYXVsdD1vcy5wYXRoLmpvaW4od3B0
X3Jvb3QsICIud3B0Y2FjaGUiKSwKKyAgICAgICAgaGVscD0iUGF0aCBpbiB3aGljaCB0byBzdG9y
ZSBhbnkgY2FjaGVzIChkZWZhdWx0IDx0ZXN0c19yb290Pi8ud3B0Y2FjaGUvKSIpCiAgICAgcmV0
dXJuIHBhcnNlcgogCiAKLWRlZiBmaW5kX3RvcF9yZXBvKCk6Ci0gICAgcGF0aCA9IGhlcmUKLSAg
ICBydiA9IE5vbmUKLSAgICB3aGlsZSBwYXRoICE9ICIvIjoKLSAgICAgICAgaWYgdmNzLmlzX2dp
dF9yZXBvKHBhdGgpOgotICAgICAgICAgICAgcnYgPSBwYXRoCi0gICAgICAgIHBhdGggPSBvcy5w
YXRoLmFic3BhdGgob3MucGF0aC5qb2luKHBhdGgsIG9zLnBhcmRpcikpCi0KLSAgICByZXR1cm4g
cnYKLQotCi1kZWYgcnVuKCoqa3dhcmdzKToKK2RlZiBydW4oKmFyZ3MsICoqa3dhcmdzKToKKyAg
ICAjIHR5cGU6ICgqQW55LCAqKkFueSkgLT4gTm9uZQogICAgIGlmIGt3YXJnc1sicGF0aCJdIGlz
IE5vbmU6CiAgICAgICAgIGt3YXJnc1sicGF0aCJdID0gb3MucGF0aC5qb2luKGt3YXJnc1sidGVz
dHNfcm9vdCJdLCAiTUFOSUZFU1QuanNvbiIpCi0KICAgICB1cGRhdGVfZnJvbV9jbGkoKiprd2Fy
Z3MpCiAKIAogZGVmIG1haW4oKToKKyAgICAjIHR5cGU6ICgpIC0+IE5vbmUKICAgICBvcHRzID0g
Y3JlYXRlX3BhcnNlcigpLnBhcnNlX2FyZ3MoKQogCiAgICAgcnVuKCoqdmFycyhvcHRzKSkKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvbWFuaWZlc3QvdXRpbHMucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL21hbmlmZXN0L3V0aWxzLnB5CmluZGV4IGQ5YmU3NTBlNDE2OTM1NTUw
ZTQ0NDI4MTJiNTI1MzFjNzA5MTkwYmQuLjJlZWQ3OWY0Mjc5ZDBlYzc4YzY5M2Y2MzJiOTZlMzZj
ZTNjOTZmYTkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvbWFuaWZlc3QvdXRpbHMucHkKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9tYW5pZmVzdC91dGlscy5weQpAQCAtMSwx
MCArMSwzMCBAQAotaW1wb3J0IHBsYXRmb3JtCiBpbXBvcnQgb3MKK2ltcG9ydCBwbGF0Zm9ybQor
aW1wb3J0IHN1YnByb2Nlc3MKIAogZnJvbSBzaXggaW1wb3J0IEJ5dGVzSU8KIAorTVlQWSA9IEZh
bHNlCitpZiBNWVBZOgorICAgICMgTVlQWSBpcyBzZXQgdG8gVHJ1ZSB3aGVuIHJ1biB1bmRlciBN
eXB5LgorICAgIGZyb20gdHlwaW5nIGltcG9ydCBUZXh0CisgICAgZnJvbSB0eXBpbmcgaW1wb3J0
IENhbGxhYmxlCisgICAgZnJvbSB0eXBpbmcgaW1wb3J0IEFueVN0cgorICAgIGZyb20gdHlwaW5n
IGltcG9ydCBBbnkKKyAgICBmcm9tIHR5cGluZyBpbXBvcnQgQmluYXJ5SU8KKyAgICBmcm9tIHR5
cGluZyBpbXBvcnQgR2VuZXJpYworICAgIGZyb20gdHlwaW5nIGltcG9ydCBUeXBlVmFyCisgICAg
ZnJvbSB0eXBpbmcgaW1wb3J0IE9wdGlvbmFsCisgICAgVCA9IFR5cGVWYXIoIlQiKQorZWxzZToK
KyAgICAjIGV3dywgZXd3LCBld3d3dworICAgIEdlbmVyaWMgPSB7fQorICAgIFQgPSBvYmplY3Qo
KQorICAgIEdlbmVyaWNbVF0gPSBvYmplY3QKKwogZGVmIHJlbF9wYXRoX3RvX3VybChyZWxfcGF0
aCwgdXJsX2Jhc2U9Ii8iKToKLSAgICBhc3NlcnQgbm90IG9zLnBhdGguaXNhYnMocmVsX3BhdGgp
CisgICAgIyB0eXBlOiAoYnl0ZXMsIFRleHQpIC0+IFRleHQKKyAgICBhc3NlcnQgbm90IG9zLnBh
dGguaXNhYnMocmVsX3BhdGgpLCByZWxfcGF0aAogICAgIGlmIHVybF9iYXNlWzBdICE9ICIvIjoK
ICAgICAgICAgdXJsX2Jhc2UgPSAiLyIgKyB1cmxfYmFzZQogICAgIGlmIHVybF9iYXNlWy0xXSAh
PSAiLyI6CkBAIC0xMywzOSArMzMsNzQgQEAgZGVmIHJlbF9wYXRoX3RvX3VybChyZWxfcGF0aCwg
dXJsX2Jhc2U9Ii8iKToKIAogCiBkZWYgZnJvbV9vc19wYXRoKHBhdGgpOgorICAgICMgdHlwZTog
KEFueVN0cikgLT4gQW55U3RyCiAgICAgYXNzZXJ0IG9zLnBhdGguc2VwID09ICIvIiBvciBwbGF0
Zm9ybS5zeXN0ZW0oKSA9PSAiV2luZG93cyIKLSAgICBydiA9IHBhdGgucmVwbGFjZShvcy5wYXRo
LnNlcCwgIi8iKQorICAgIGlmICIvIiA9PSBvcy5wYXRoLnNlcDoKKyAgICAgICAgcnYgPSBwYXRo
CisgICAgZWxzZToKKyAgICAgICAgcnYgPSBwYXRoLnJlcGxhY2Uob3MucGF0aC5zZXAsICIvIikK
ICAgICBpZiAiXFwiIGluIHJ2OgogICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJwYXRoIGNvbnRh
aW5zIFxcIHdoZW4gc2VwYXJhdG9yIGlzICVzIiAlIG9zLnBhdGguc2VwKQogICAgIHJldHVybiBy
dgogCiAKIGRlZiB0b19vc19wYXRoKHBhdGgpOgorICAgICMgdHlwZTogKEFueVN0cikgLT4gQW55
U3RyCiAgICAgYXNzZXJ0IG9zLnBhdGguc2VwID09ICIvIiBvciBwbGF0Zm9ybS5zeXN0ZW0oKSA9
PSAiV2luZG93cyIKICAgICBpZiAiXFwiIGluIHBhdGg6CiAgICAgICAgIHJhaXNlIFZhbHVlRXJy
b3IoIm5vcm1hbGlzZWQgcGF0aCBjb250YWlucyBcXCIpCisgICAgaWYgIi8iID09IG9zLnBhdGgu
c2VwOgorICAgICAgICByZXR1cm4gcGF0aAogICAgIHJldHVybiBwYXRoLnJlcGxhY2UoIi8iLCBv
cy5wYXRoLnNlcCkKIAogCi1jbGFzcyBDb250ZXh0TWFuYWdlckJ5dGVzSU8oQnl0ZXNJTyk6Citk
ZWYgZ2l0KHBhdGgpOgorICAgICMgdHlwZTogKGJ5dGVzKSAtPiBPcHRpb25hbFtDYWxsYWJsZVsu
Li4sIGJ5dGVzXV0KKyAgICBkZWYgZ2l0ZnVuYyhjbWQsICphcmdzKToKKyAgICAgICAgIyB0eXBl
OiAoYnl0ZXMsICpieXRlcykgLT4gYnl0ZXMKKyAgICAgICAgZnVsbF9jbWQgPSBbImdpdCIsIGNt
ZF0gKyBsaXN0KGFyZ3MpCisgICAgICAgIHRyeToKKyAgICAgICAgICAgIHJldHVybiBzdWJwcm9j
ZXNzLmNoZWNrX291dHB1dChmdWxsX2NtZCwgY3dkPXBhdGgsIHN0ZGVycj1zdWJwcm9jZXNzLlNU
RE9VVCkKKyAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBlOgorICAgICAgICAgICAgaWYgcGxh
dGZvcm0udW5hbWUoKVswXSA9PSAiV2luZG93cyIgYW5kIGlzaW5zdGFuY2UoZSwgV2luZG93c0Vy
cm9yKToKKyAgICAgICAgICAgICAgICBmdWxsX2NtZFswXSA9ICJnaXQuYmF0IgorICAgICAgICAg
ICAgICAgIHJldHVybiBzdWJwcm9jZXNzLmNoZWNrX291dHB1dChmdWxsX2NtZCwgY3dkPXBhdGgs
IHN0ZGVycj1zdWJwcm9jZXNzLlNURE9VVCkKKyAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAg
ICAgICAgcmFpc2UKKworICAgIHRyeToKKyAgICAgICAgIyB0aGlzIG5lZWRzIHRvIGJlIGEgY29t
bWFuZCB0aGF0IGZhaWxzIGlmIHdlIGFyZW4ndCBpbiBhIGdpdCByZXBvCisgICAgICAgIGdpdGZ1
bmMoInJldi1wYXJzZSIsICItLXNob3ctdG9wbGV2ZWwiKQorICAgIGV4Y2VwdCAoc3VicHJvY2Vz
cy5DYWxsZWRQcm9jZXNzRXJyb3IsIE9TRXJyb3IpOgorICAgICAgICByZXR1cm4gTm9uZQorICAg
IGVsc2U6CisgICAgICAgIHJldHVybiBnaXRmdW5jCisKKworY2xhc3MgQ29udGV4dE1hbmFnZXJC
eXRlc0lPKEJ5dGVzSU8pOiAgIyB0eXBlOiBpZ25vcmUKICAgICBkZWYgX19lbnRlcl9fKHNlbGYp
OgotICAgICAgICByZXR1cm4gc2VsZgorICAgICAgICAjIHR5cGU6ICgpIC0+IEJpbmFyeUlPCisg
ICAgICAgIHJldHVybiBzZWxmICAjIHR5cGU6IGlnbm9yZQogCiAgICAgZGVmIF9fZXhpdF9fKHNl
bGYsICphcmdzLCAqKmt3YXJncyk6CisgICAgICAgICMgdHlwZTogKCpBbnksICoqQW55KSAtPiBi
b29sCiAgICAgICAgIHNlbGYuY2xvc2UoKQorICAgICAgICByZXR1cm4gVHJ1ZQogCiAKLWNsYXNz
IGNhY2hlZF9wcm9wZXJ0eShvYmplY3QpOgorY2xhc3MgY2FjaGVkX3Byb3BlcnR5KEdlbmVyaWNb
VF0pOgogICAgIGRlZiBfX2luaXRfXyhzZWxmLCBmdW5jKToKKyAgICAgICAgIyB0eXBlOiAoQ2Fs
bGFibGVbW0FueV0sIFRdKSAtPiBOb25lCiAgICAgICAgIHNlbGYuZnVuYyA9IGZ1bmMKICAgICAg
ICAgc2VsZi5fX2RvY19fID0gZ2V0YXR0cihmdW5jLCAiX19kb2NfXyIpCiAgICAgICAgIHNlbGYu
bmFtZSA9IGZ1bmMuX19uYW1lX18KIAogICAgIGRlZiBfX2dldF9fKHNlbGYsIG9iaiwgY2xzPU5v
bmUpOgorICAgICAgICAjIHR5cGU6IChBbnksIE9wdGlvbmFsW3R5cGVdKSAtPiBUCiAgICAgICAg
IGlmIG9iaiBpcyBOb25lOgotICAgICAgICAgICAgcmV0dXJuIHNlbGYKKyAgICAgICAgICAgIHJl
dHVybiBzZWxmICAjIHR5cGU6IGlnbm9yZQogCi0gICAgICAgIGlmIHNlbGYubmFtZSBub3QgaW4g
b2JqLl9fZGljdF9fOgotICAgICAgICAgICAgb2JqLl9fZGljdF9fW3NlbGYubmFtZV0gPSBzZWxm
LmZ1bmMob2JqKQotICAgICAgICAgICAgb2JqLl9fZGljdF9fLnNldGRlZmF1bHQoIl9fY2FjaGVk
X3Byb3BlcnRpZXNfXyIsIHNldCgpKS5hZGQoc2VsZi5uYW1lKQotICAgICAgICByZXR1cm4gb2Jq
Ll9fZGljdF9fW3NlbGYubmFtZV0KKyAgICAgICAgIyB3ZSBjYW4gdW5jb25kaXRpb25hbGx5IGFz
c2lnbiBhcyBuZXh0IHRpbWUgdGhpcyB3b24ndCBiZSBjYWxsZWQKKyAgICAgICAgYXNzZXJ0IHNl
bGYubmFtZSBub3QgaW4gb2JqLl9fZGljdF9fCisgICAgICAgIHJ2ID0gb2JqLl9fZGljdF9fW3Nl
bGYubmFtZV0gPSBzZWxmLmZ1bmMob2JqKQorICAgICAgICByZXR1cm4gcnYKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvbWFuaWZl
c3QvdmNzLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy9tYW5pZmVzdC92Y3MucHkKaW5kZXggNDJlOTg2MzcxMmY0MWQ1Y2ZkZjkyNzk1MTM5MzFi
MWNiZTQ3Zjk4Yi4uZDRmNDdmNmJmMGFiMzVjOWRhNTE0ZWRiNGM0Yjc3OTY0NGZmOTBkZCAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy9tYW5pZmVzdC92Y3MucHkKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy9tYW5pZmVzdC92Y3MucHkKQEAgLTEsOTYgKzEsMzE2IEBACitpbXBv
cnQgYWJjCitpbXBvcnQganNvbgogaW1wb3J0IG9zCi1pbXBvcnQgc3VicHJvY2VzcworaW1wb3J0
IHN0YXQKK2Zyb20gY29sbGVjdGlvbnMgaW1wb3J0IGRlcXVlCitmcm9tIGNvbGxlY3Rpb25zIGlt
cG9ydCBNdXRhYmxlTWFwcGluZworCitmcm9tIHNpeCBpbXBvcnQgd2l0aF9tZXRhY2xhc3MsIFBZ
MgogCiBmcm9tIC5zb3VyY2VmaWxlIGltcG9ydCBTb3VyY2VGaWxlCitmcm9tIC51dGlscyBpbXBv
cnQgZ2l0CiAKK3RyeToKKyAgICBmcm9tIC4uZ2l0aWdub3JlIGltcG9ydCBnaXRpZ25vcmUKK2V4
Y2VwdCBWYWx1ZUVycm9yOgorICAgICMgcmVsYXRpdmUgaW1wb3J0IGJleW9uZCB0b3BsZXZlbCB0
aHJvd3MgKlZhbHVlRXJyb3IqIQorICAgIGZyb20gZ2l0aWdub3JlIGltcG9ydCBnaXRpZ25vcmUg
ICMgdHlwZTogaWdub3JlCiAKLWNsYXNzIEdpdChvYmplY3QpOgotICAgIGRlZiBfX2luaXRfXyhz
ZWxmLCByZXBvX3Jvb3QsIHVybF9iYXNlKToKLSAgICAgICAgc2VsZi5yb290ID0gb3MucGF0aC5h
YnNwYXRoKHJlcG9fcm9vdCkKLSAgICAgICAgc2VsZi5naXQgPSBHaXQuZ2V0X2Z1bmMocmVwb19y
b290KQotICAgICAgICBzZWxmLnVybF9iYXNlID0gdXJsX2Jhc2UKIAotICAgIEBzdGF0aWNtZXRo
b2QKLSAgICBkZWYgZ2V0X2Z1bmMocmVwb19wYXRoKToKLSAgICAgICAgZGVmIGdpdChjbWQsICph
cmdzKToKLSAgICAgICAgICAgIGZ1bGxfY21kID0gWyJnaXQiLCBjbWRdICsgbGlzdChhcmdzKQot
ICAgICAgICAgICAgdHJ5OgotICAgICAgICAgICAgICAgIHJldHVybiBzdWJwcm9jZXNzLmNoZWNr
X291dHB1dChmdWxsX2NtZCwgY3dkPXJlcG9fcGF0aCwgc3RkZXJyPXN1YnByb2Nlc3MuU1RET1VU
KQotICAgICAgICAgICAgZXhjZXB0IFdpbmRvd3NFcnJvcjoKLSAgICAgICAgICAgICAgICBmdWxs
X2NtZFswXSA9ICJnaXQuYmF0IgotICAgICAgICAgICAgICAgIHJldHVybiBzdWJwcm9jZXNzLmNo
ZWNrX291dHB1dChmdWxsX2NtZCwgY3dkPXJlcG9fcGF0aCwgc3RkZXJyPXN1YnByb2Nlc3MuU1RE
T1VUKQotICAgICAgICByZXR1cm4gZ2l0Ci0KLSAgICBAY2xhc3NtZXRob2QKLSAgICBkZWYgZm9y
X3BhdGgoY2xzLCBwYXRoLCB1cmxfYmFzZSk6Ci0gICAgICAgIGdpdCA9IEdpdC5nZXRfZnVuYyhw
YXRoKQorTVlQWSA9IEZhbHNlCitpZiBNWVBZOgorICAgICMgTVlQWSBpcyBzZXQgdG8gVHJ1ZSB3
aGVuIHJ1biB1bmRlciBNeXB5LgorICAgIGZyb20gdHlwaW5nIGltcG9ydCBEaWN0LCBPcHRpb25h
bCwgTGlzdCwgU2V0LCBUZXh0LCBJdGVyYWJsZSwgQW55LCBUdXBsZSwgVW5pb24sIEl0ZXJhdG9y
CisgICAgZnJvbSAubWFuaWZlc3QgaW1wb3J0IE1hbmlmZXN0ICAjIGN5Y2xpYyBpbXBvcnQgdW5k
ZXIgTVlQWSBndWFyZAorICAgIGlmIFBZMjoKKyAgICAgICAgc3RhdF9yZXN1bHQgPSBBbnkKKyAg
ICBlbHNlOgorICAgICAgICBzdGF0X3Jlc3VsdCA9IG9zLnN0YXRfcmVzdWx0CisKKworZGVmIGdl
dF90cmVlKHRlc3RzX3Jvb3QsIG1hbmlmZXN0LCBtYW5pZmVzdF9wYXRoLCBjYWNoZV9yb290LAor
ICAgICAgICAgICAgIHdvcmtpbmdfY29weT1UcnVlLCByZWJ1aWxkPUZhbHNlKToKKyAgICAjIHR5
cGU6IChieXRlcywgTWFuaWZlc3QsIE9wdGlvbmFsW2J5dGVzXSwgT3B0aW9uYWxbYnl0ZXNdLCBi
b29sLCBib29sKSAtPiBGaWxlU3lzdGVtCisgICAgdHJlZSA9IE5vbmUKKyAgICBpZiBjYWNoZV9y
b290IGlzIE5vbmU6CisgICAgICAgIGNhY2hlX3Jvb3QgPSBvcy5wYXRoLmpvaW4odGVzdHNfcm9v
dCwgYiIud3B0Y2FjaGUiKQorICAgIGlmIG5vdCBvcy5wYXRoLmV4aXN0cyhjYWNoZV9yb290KToK
ICAgICAgICAgdHJ5OgotICAgICAgICAgICAgcmV0dXJuIGNscyhnaXQoInJldi1wYXJzZSIsICIt
LXNob3ctdG9wbGV2ZWwiKS5yc3RyaXAoKSwgdXJsX2Jhc2UpCi0gICAgICAgIGV4Y2VwdCBzdWJw
cm9jZXNzLkNhbGxlZFByb2Nlc3NFcnJvcjoKLSAgICAgICAgICAgIHJldHVybiBOb25lCisgICAg
ICAgICAgICBvcy5tYWtlZGlycyhjYWNoZV9yb290KQorICAgICAgICBleGNlcHQgSU9FcnJvcjoK
KyAgICAgICAgICAgIGNhY2hlX3Jvb3QgPSBOb25lCisKKyAgICBpZiBub3Qgd29ya2luZ19jb3B5
OgorICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJ3b3JraW5nX2NvcHk9RmFsc2UgdW5zdXBwb3J0
ZWQiKQorCisgICAgaWYgdHJlZSBpcyBOb25lOgorICAgICAgICB0cmVlID0gRmlsZVN5c3RlbSh0
ZXN0c19yb290LAorICAgICAgICAgICAgICAgICAgICAgICAgICBtYW5pZmVzdC51cmxfYmFzZSwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgbWFuaWZlc3RfcGF0aD1tYW5pZmVzdF9wYXRoLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICBjYWNoZV9wYXRoPWNhY2hlX3Jvb3QsCisgICAgICAg
ICAgICAgICAgICAgICAgICAgIHJlYnVpbGQ9cmVidWlsZCkKKyAgICByZXR1cm4gdHJlZQorCisK
K2NsYXNzIEdpdEhhc2hlcihvYmplY3QpOgorICAgIGRlZiBfX2luaXRfXyhzZWxmLCBwYXRoKToK
KyAgICAgICAgIyB0eXBlOiAoYnl0ZXMpIC0+IE5vbmUKKyAgICAgICAgc2VsZi5naXQgPSBnaXQo
cGF0aCkKIAogICAgIGRlZiBfbG9jYWxfY2hhbmdlcyhzZWxmKToKLSAgICAgICAgY2hhbmdlcyA9
IHt9Ci0gICAgICAgIGNtZCA9IFsic3RhdHVzIiwgIi16IiwgIi0taWdub3JlLXN1Ym1vZHVsZXM9
YWxsIl0KKyAgICAgICAgIyB0eXBlOiAoKSAtPiBTZXRbYnl0ZXNdCisgICAgICAgICIiImdldCBh
IHNldCBvZiBmaWxlcyB3aGljaCBoYXZlIGNoYW5nZWQgYmV0d2VlbiBIRUFEIGFuZCB3b3JraW5n
IGNvcHkiIiIKKyAgICAgICAgYXNzZXJ0IHNlbGYuZ2l0IGlzIG5vdCBOb25lCisgICAgICAgICMg
bm90ZSB0aGF0IGdpdCBydW5zIHRoZSBjb21tYW5kIHdpdGggdGVzdHNfcm9vdCBhcyB0aGUgY3dk
LCB3aGljaCBtYXkKKyAgICAgICAgIyBub3QgYmUgdGhlIHJvb3Qgb2YgdGhlIGdpdCByZXBvIChl
LmcuLCB3aXRoaW4gYSBicm93c2VyIHJlcG8pCisgICAgICAgIGNtZCA9IFtiImRpZmYtaW5kZXgi
LCBiIi0tcmVsYXRpdmUiLCBiIi0tbm8tcmVuYW1lcyIsIGIiLS1uYW1lLW9ubHkiLCBiIi16Iiwg
YiJIRUFEIl0KICAgICAgICAgZGF0YSA9IHNlbGYuZ2l0KCpjbWQpCisgICAgICAgIHJldHVybiBz
ZXQoZGF0YS5zcGxpdChiIlwwIikpCiAKLSAgICAgICAgaWYgZGF0YSA9PSAiIjoKLSAgICAgICAg
ICAgIHJldHVybiBjaGFuZ2VzCisgICAgZGVmIGhhc2hfY2FjaGUoc2VsZik6CisgICAgICAgICMg
dHlwZTogKCkgLT4gRGljdFtieXRlcywgT3B0aW9uYWxbYnl0ZXNdXQorICAgICAgICAiIiIKKyAg
ICAgICAgQSBkaWN0IG9mIHJlbF9wYXRoIC0+IGN1cnJlbnQgZ2l0IG9iamVjdCBpZCBpZiB0aGUg
d29ya2luZyB0cmVlIG1hdGNoZXMgSEVBRCBlbHNlIE5vbmUKKyAgICAgICAgIiIiCisgICAgICAg
IGhhc2hfY2FjaGUgPSB7fSAgIyB0eXBlOiBEaWN0W2J5dGVzLCBPcHRpb25hbFtieXRlc11dCiAK
LSAgICAgICAgcmVuYW1lX2RhdGEgPSBOb25lCi0gICAgICAgIGZvciBlbnRyeSBpbiBkYXRhLnNw
bGl0KCJcMCIpWzotMV06Ci0gICAgICAgICAgICBpZiByZW5hbWVfZGF0YSBpcyBub3QgTm9uZToK
LSAgICAgICAgICAgICAgICBzdGF0dXMsIHJlbF9wYXRoID0gZW50cnkuc3BsaXQoIiAiKQotICAg
ICAgICAgICAgICAgIGlmIHN0YXR1c1swXSA9PSAiUiI6Ci0gICAgICAgICAgICAgICAgICAgIHJl
bmFtZV9kYXRhID0gKHJlbF9wYXRoLCBzdGF0dXMpCi0gICAgICAgICAgICAgICAgZWxzZToKLSAg
ICAgICAgICAgICAgICAgICAgY2hhbmdlc1tyZWxfcGF0aF0gPSAoc3RhdHVzLCBOb25lKQotICAg
ICAgICAgICAgZWxzZToKLSAgICAgICAgICAgICAgICByZWxfcGF0aCA9IGVudHJ5Ci0gICAgICAg
ICAgICAgICAgY2hhbmdlc1tyZWxfcGF0aF0gPSByZW5hbWVfZGF0YQotICAgICAgICAgICAgICAg
IHJlbmFtZV9kYXRhID0gTm9uZQotICAgICAgICByZXR1cm4gY2hhbmdlcworICAgICAgICBpZiBz
ZWxmLmdpdCBpcyBOb25lOgorICAgICAgICAgICAgcmV0dXJuIGhhc2hfY2FjaGUKIAotICAgIGRl
ZiBfc2hvd19maWxlKHNlbGYsIHBhdGgpOgotICAgICAgICBwYXRoID0gb3MucGF0aC5yZWxwYXRo
KG9zLnBhdGguYWJzcGF0aChwYXRoKSwgc2VsZi5yb290KQotICAgICAgICByZXR1cm4gc2VsZi5n
aXQoInNob3ciLCAiSEVBRDolcyIgJSBwYXRoKQotCi0gICAgZGVmIF9faXRlcl9fKHNlbGYpOgor
ICAgICAgICAjIG5vdGUgdGhhdCBnaXQgcnVucyB0aGUgY29tbWFuZCB3aXRoIHRlc3RzX3Jvb3Qg
YXMgdGhlIGN3ZCwgd2hpY2ggbWF5CisgICAgICAgICMgbm90IGJlIHRoZSByb290IG9mIHRoZSBn
aXQgcmVwbyAoZS5nLiwgd2l0aGluIGEgYnJvd3NlciByZXBvKQogICAgICAgICBjbWQgPSBbImxz
LXRyZWUiLCAiLXIiLCAiLXoiLCAiSEVBRCJdCiAgICAgICAgIGxvY2FsX2NoYW5nZXMgPSBzZWxm
Ll9sb2NhbF9jaGFuZ2VzKCkKLSAgICAgICAgZm9yIHJlc3VsdCBpbiBzZWxmLmdpdCgqY21kKS5z
cGxpdCgiXDAiKVs6LTFdOgotICAgICAgICAgICAgcmVsX3BhdGggPSByZXN1bHQuc3BsaXQoIlx0
IilbLTFdCi0gICAgICAgICAgICBoYXNoID0gcmVzdWx0LnNwbGl0KClbMl0KLSAgICAgICAgICAg
IGlmIG5vdCBvcy5wYXRoLmlzZGlyKG9zLnBhdGguam9pbihzZWxmLnJvb3QsIHJlbF9wYXRoKSk6
Ci0gICAgICAgICAgICAgICAgaWYgcmVsX3BhdGggaW4gbG9jYWxfY2hhbmdlczoKLSAgICAgICAg
ICAgICAgICAgICAgY29udGVudHMgPSBzZWxmLl9zaG93X2ZpbGUocmVsX3BhdGgpCi0gICAgICAg
ICAgICAgICAgZWxzZToKLSAgICAgICAgICAgICAgICAgICAgY29udGVudHMgPSBOb25lCi0gICAg
ICAgICAgICAgICAgeWllbGQgU291cmNlRmlsZShzZWxmLnJvb3QsCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICByZWxfcGF0aCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHNlbGYudXJsX2Jhc2UsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYXNo
LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGVudHM9Y29udGVudHMpCisg
ICAgICAgIGZvciByZXN1bHQgaW4gc2VsZi5naXQoKmNtZCkuc3BsaXQoYiJcMCIpWzotMV06ICAj
IHR5cGU6IGJ5dGVzCisgICAgICAgICAgICBkYXRhLCByZWxfcGF0aCA9IHJlc3VsdC5yc3BsaXQo
YiJcdCIsIDEpCisgICAgICAgICAgICBoYXNoX2NhY2hlW3JlbF9wYXRoXSA9IE5vbmUgaWYgcmVs
X3BhdGggaW4gbG9jYWxfY2hhbmdlcyBlbHNlIGRhdGEuc3BsaXQoYiIgIiwgMylbMl0KKworICAg
ICAgICByZXR1cm4gaGFzaF9jYWNoZQorCiAKIAogY2xhc3MgRmlsZVN5c3RlbShvYmplY3QpOgot
ICAgIGRlZiBfX2luaXRfXyhzZWxmLCByb290LCB1cmxfYmFzZSk6Ci0gICAgICAgIHNlbGYucm9v
dCA9IHJvb3QKKyAgICBkZWYgX19pbml0X18oc2VsZiwgcm9vdCwgdXJsX2Jhc2UsIGNhY2hlX3Bh
dGgsIG1hbmlmZXN0X3BhdGg9Tm9uZSwgcmVidWlsZD1GYWxzZSk6CisgICAgICAgICMgdHlwZTog
KGJ5dGVzLCBUZXh0LCBPcHRpb25hbFtieXRlc10sIE9wdGlvbmFsW2J5dGVzXSwgYm9vbCkgLT4g
Tm9uZQorICAgICAgICBzZWxmLnJvb3QgPSBvcy5wYXRoLmFic3BhdGgocm9vdCkKICAgICAgICAg
c2VsZi51cmxfYmFzZSA9IHVybF9iYXNlCi0gICAgICAgIGZyb20gZ2l0aWdub3JlIGltcG9ydCBn
aXRpZ25vcmUKLSAgICAgICAgc2VsZi5wYXRoX2ZpbHRlciA9IGdpdGlnbm9yZS5QYXRoRmlsdGVy
KHNlbGYucm9vdCwgZXh0cmFzPVsiLmdpdC8iXSkKKyAgICAgICAgc2VsZi5pZ25vcmVfY2FjaGUg
PSBOb25lCisgICAgICAgIHNlbGYubXRpbWVfY2FjaGUgPSBOb25lCisgICAgICAgIGlmIGNhY2hl
X3BhdGggaXMgbm90IE5vbmU6CisgICAgICAgICAgICBpZiBtYW5pZmVzdF9wYXRoIGlzIG5vdCBO
b25lOgorICAgICAgICAgICAgICAgIHNlbGYubXRpbWVfY2FjaGUgPSBNdGltZUNhY2hlKGNhY2hl
X3BhdGgsIHJvb3QsIG1hbmlmZXN0X3BhdGgsIHJlYnVpbGQpCisgICAgICAgICAgICBpZiBnaXRp
Z25vcmUuaGFzX2lnbm9yZShyb290KToKKyAgICAgICAgICAgICAgICBzZWxmLmlnbm9yZV9jYWNo
ZSA9IEdpdElnbm9yZUNhY2hlKGNhY2hlX3BhdGgsIHJvb3QsIHJlYnVpbGQpCisgICAgICAgIHNl
bGYucGF0aF9maWx0ZXIgPSBnaXRpZ25vcmUuUGF0aEZpbHRlcihzZWxmLnJvb3QsCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBleHRyYXM9WyIuZ2l0LyJd
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FjaGU9
c2VsZi5pZ25vcmVfY2FjaGUpCisgICAgICAgIGdpdCA9IEdpdEhhc2hlcihyb290KQorICAgICAg
ICBpZiBnaXQgaXMgbm90IE5vbmU6CisgICAgICAgICAgICBzZWxmLmhhc2hfY2FjaGUgPSBnaXQu
aGFzaF9jYWNoZSgpCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBzZWxmLmhhc2hfY2FjaGUg
PSB7fQogCiAgICAgZGVmIF9faXRlcl9fKHNlbGYpOgotICAgICAgICBwYXRocyA9IHNlbGYuZ2V0
X3BhdGhzKCkKLSAgICAgICAgZm9yIHBhdGggaW4gcGF0aHM6Ci0gICAgICAgICAgICB5aWVsZCBT
b3VyY2VGaWxlKHNlbGYucm9vdCwgcGF0aCwgc2VsZi51cmxfYmFzZSkKLQotICAgIGRlZiBnZXRf
cGF0aHMoc2VsZik6Ci0gICAgICAgIGZvciBkaXJwYXRoLCBkaXJuYW1lcywgZmlsZW5hbWVzIGlu
IG9zLndhbGsoc2VsZi5yb290KToKLSAgICAgICAgICAgIGZvciBmaWxlbmFtZSBpbiBmaWxlbmFt
ZXM6Ci0gICAgICAgICAgICAgICAgcGF0aCA9IG9zLnBhdGgucmVscGF0aChvcy5wYXRoLmpvaW4o
ZGlycGF0aCwgZmlsZW5hbWUpLCBzZWxmLnJvb3QpCi0gICAgICAgICAgICAgICAgaWYgc2VsZi5w
YXRoX2ZpbHRlcihwYXRoKToKLSAgICAgICAgICAgICAgICAgICAgeWllbGQgcGF0aAotCi0gICAg
ICAgICAgICBkaXJuYW1lc1s6XSA9IFtpdGVtIGZvciBpdGVtIGluIGRpcm5hbWVzIGlmIHNlbGYu
cGF0aF9maWx0ZXIoCi0gICAgICAgICAgICAgICAgICAgICAgICAgICBvcy5wYXRoLnJlbHBhdGgo
b3MucGF0aC5qb2luKGRpcnBhdGgsIGl0ZW0pLCBzZWxmLnJvb3QpICsgIi8iKV0KKyAgICAgICAg
IyB0eXBlOiAoKSAtPiBJdGVyYXRvcltUdXBsZVtVbmlvbltieXRlcywgU291cmNlRmlsZV0sIGJv
b2xdXQorICAgICAgICBtdGltZV9jYWNoZSA9IHNlbGYubXRpbWVfY2FjaGUKKyAgICAgICAgZm9y
IGRpcnBhdGgsIGRpcm5hbWVzLCBmaWxlbmFtZXMgaW4gc2VsZi5wYXRoX2ZpbHRlcih3YWxrKHNl
bGYucm9vdCkpOgorICAgICAgICAgICAgZm9yIGZpbGVuYW1lLCBwYXRoX3N0YXQgaW4gZmlsZW5h
bWVzOgorICAgICAgICAgICAgICAgIHBhdGggPSBvcy5wYXRoLmpvaW4oZGlycGF0aCwgZmlsZW5h
bWUpCisgICAgICAgICAgICAgICAgaWYgbXRpbWVfY2FjaGUgaXMgTm9uZSBvciBtdGltZV9jYWNo
ZS51cGRhdGVkKHBhdGgsIHBhdGhfc3RhdCk6CisgICAgICAgICAgICAgICAgICAgIGhhc2ggPSBz
ZWxmLmhhc2hfY2FjaGUuZ2V0KHBhdGgsIE5vbmUpCisgICAgICAgICAgICAgICAgICAgIHlpZWxk
IFNvdXJjZUZpbGUoc2VsZi5yb290LCBwYXRoLCBzZWxmLnVybF9iYXNlLCBoYXNoKSwgVHJ1ZQor
ICAgICAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgICAgIHlpZWxkIHBhdGgsIEZh
bHNlCisKKyAgICBkZWYgZHVtcF9jYWNoZXMoc2VsZik6CisgICAgICAgICMgdHlwZTogKCkgLT4g
Tm9uZQorICAgICAgICBmb3IgY2FjaGUgaW4gW3NlbGYubXRpbWVfY2FjaGUsIHNlbGYuaWdub3Jl
X2NhY2hlXToKKyAgICAgICAgICAgIGlmIGNhY2hlIGlzIG5vdCBOb25lOgorICAgICAgICAgICAg
ICAgIGNhY2hlLmR1bXAoKQorCisKK2NsYXNzIENhY2hlRmlsZSh3aXRoX21ldGFjbGFzcyhhYmMu
QUJDTWV0YSkpOgorICAgIGRlZiBfX2luaXRfXyhzZWxmLCBjYWNoZV9yb290LCB0ZXN0c19yb290
LCByZWJ1aWxkPUZhbHNlKToKKyAgICAgICAgIyB0eXBlOiAoYnl0ZXMsIGJ5dGVzLCBib29sKSAt
PiBOb25lCisgICAgICAgIHNlbGYudGVzdHNfcm9vdCA9IHRlc3RzX3Jvb3QKKyAgICAgICAgaWYg
bm90IG9zLnBhdGguZXhpc3RzKGNhY2hlX3Jvb3QpOgorICAgICAgICAgICAgb3MubWFrZWRpcnMo
Y2FjaGVfcm9vdCkKKyAgICAgICAgc2VsZi5wYXRoID0gb3MucGF0aC5qb2luKGNhY2hlX3Jvb3Qs
IHNlbGYuZmlsZV9uYW1lKQorICAgICAgICBzZWxmLm1vZGlmaWVkID0gRmFsc2UKKyAgICAgICAg
c2VsZi5kYXRhID0gc2VsZi5sb2FkKHJlYnVpbGQpCisKKyAgICBAYWJjLmFic3RyYWN0cHJvcGVy
dHkKKyAgICBkZWYgZmlsZV9uYW1lKHNlbGYpOgorICAgICAgICAjIHR5cGU6ICgpIC0+IGJ5dGVz
CisgICAgICAgIHBhc3MKKworICAgIGRlZiBkdW1wKHNlbGYpOgorICAgICAgICAjIHR5cGU6ICgp
IC0+IE5vbmUKKyAgICAgICAgaWYgbm90IHNlbGYubW9kaWZpZWQ6CisgICAgICAgICAgICByZXR1
cm4KKyAgICAgICAgd2l0aCBvcGVuKHNlbGYucGF0aCwgJ3cnKSBhcyBmOgorICAgICAgICAgICAg
anNvbi5kdW1wKHNlbGYuZGF0YSwgZiwgaW5kZW50PTEpCisKKyAgICBkZWYgbG9hZChzZWxmLCBy
ZWJ1aWxkPUZhbHNlKToKKyAgICAgICAgIyB0eXBlOiAoYm9vbCkgLT4gRGljdFtBbnksIEFueV0K
KyAgICAgICAgZGF0YSA9IHt9ICAjIHR5cGU6IERpY3RbQW55LCBBbnldCisgICAgICAgIHRyeToK
KyAgICAgICAgICAgIGlmIG5vdCByZWJ1aWxkOgorICAgICAgICAgICAgICAgIHdpdGggb3Blbihz
ZWxmLnBhdGgsICdyJykgYXMgZjoKKyAgICAgICAgICAgICAgICAgICAgdHJ5OgorICAgICAgICAg
ICAgICAgICAgICAgICAgZGF0YSA9IGpzb24ubG9hZChmKQorICAgICAgICAgICAgICAgICAgICBl
eGNlcHQgVmFsdWVFcnJvcjoKKyAgICAgICAgICAgICAgICAgICAgICAgIHBhc3MKKyAgICAgICAg
ICAgICAgICBkYXRhID0gc2VsZi5jaGVja192YWxpZChkYXRhKQorICAgICAgICBleGNlcHQgSU9F
cnJvcjoKKyAgICAgICAgICAgIHBhc3MKKyAgICAgICAgcmV0dXJuIGRhdGEKKworICAgIGRlZiBj
aGVja192YWxpZChzZWxmLCBkYXRhKToKKyAgICAgICAgIyB0eXBlOiAoRGljdFtBbnksIEFueV0p
IC0+IERpY3RbQW55LCBBbnldCisgICAgICAgICIiIkNoZWNrIGlmIHRoZSBjYWNoZWQgZGF0YSBp
cyB2YWxpZCBhbmQgcmV0dXJuIGFuIHVwZGF0ZWQgY29weSBvZiB0aGUKKyAgICAgICAgY2FjaGUg
Y29udGFpbmluZyBvbmx5IGRhdGEgdGhhdCBjYW4gYmUgdXNlZC4iIiIKKyAgICAgICAgcmV0dXJu
IGRhdGEKKworCitjbGFzcyBNdGltZUNhY2hlKENhY2hlRmlsZSk6CisgICAgZmlsZV9uYW1lID0g
YiJtdGltZS5qc29uIgorCisgICAgZGVmIF9faW5pdF9fKHNlbGYsIGNhY2hlX3Jvb3QsIHRlc3Rz
X3Jvb3QsIG1hbmlmZXN0X3BhdGgsIHJlYnVpbGQ9RmFsc2UpOgorICAgICAgICAjIHR5cGU6IChi
eXRlcywgYnl0ZXMsIGJ5dGVzLCBib29sKSAtPiBOb25lCisgICAgICAgIHNlbGYubWFuaWZlc3Rf
cGF0aCA9IG1hbmlmZXN0X3BhdGgKKyAgICAgICAgc3VwZXIoTXRpbWVDYWNoZSwgc2VsZikuX19p
bml0X18oY2FjaGVfcm9vdCwgdGVzdHNfcm9vdCwgcmVidWlsZCkKKworICAgIGRlZiB1cGRhdGVk
KHNlbGYsIHJlbF9wYXRoLCBzdGF0KToKKyAgICAgICAgIyB0eXBlOiAoYnl0ZXMsIHN0YXRfcmVz
dWx0KSAtPiBib29sCisgICAgICAgICIiIlJldHVybiBhIGJvb2xlYW4gaW5kaWNhdGluZyB3aGV0
aGVyIHRoZSBmaWxlIGNoYW5nZWQgc2luY2UgdGhlIGNhY2hlIHdhcyBsYXN0IHVwZGF0ZWQuCisK
KyAgICAgICAgVGhpcyBpbXBsaWNpdGx5IHVwZGF0ZXMgdGhlIGNhY2hlIHdpdGggdGhlIG5ldyBt
dGltZSBkYXRhLiIiIgorICAgICAgICBtdGltZSA9IHN0YXQuc3RfbXRpbWUKKyAgICAgICAgaWYg
bXRpbWUgIT0gc2VsZi5kYXRhLmdldChyZWxfcGF0aCk6CisgICAgICAgICAgICBzZWxmLm1vZGlm
aWVkID0gVHJ1ZQorICAgICAgICAgICAgc2VsZi5kYXRhW3JlbF9wYXRoXSA9IG10aW1lCisgICAg
ICAgICAgICByZXR1cm4gVHJ1ZQorICAgICAgICByZXR1cm4gRmFsc2UKKworICAgIGRlZiBjaGVj
a192YWxpZChzZWxmLCBkYXRhKToKKyAgICAgICAgIyB0eXBlOiAoRGljdFtBbnksIEFueV0pIC0+
IERpY3RbQW55LCBBbnldCisgICAgICAgIGlmIGRhdGEuZ2V0KCIvdGVzdHNfcm9vdCIpICE9IHNl
bGYudGVzdHNfcm9vdDoKKyAgICAgICAgICAgIHNlbGYubW9kaWZpZWQgPSBUcnVlCisgICAgICAg
IGVsc2U6CisgICAgICAgICAgICBpZiBzZWxmLm1hbmlmZXN0X3BhdGggaXMgbm90IE5vbmUgYW5k
IG9zLnBhdGguZXhpc3RzKHNlbGYubWFuaWZlc3RfcGF0aCk6CisgICAgICAgICAgICAgICAgbXRp
bWUgPSBvcy5wYXRoLmdldG10aW1lKHNlbGYubWFuaWZlc3RfcGF0aCkKKyAgICAgICAgICAgICAg
ICBpZiBkYXRhLmdldCgiL21hbmlmZXN0X3BhdGgiKSAhPSBbc2VsZi5tYW5pZmVzdF9wYXRoLCBt
dGltZV06CisgICAgICAgICAgICAgICAgICAgIHNlbGYubW9kaWZpZWQgPSBUcnVlCisgICAgICAg
ICAgICBlbHNlOgorICAgICAgICAgICAgICAgIHNlbGYubW9kaWZpZWQgPSBUcnVlCisgICAgICAg
IGlmIHNlbGYubW9kaWZpZWQ6CisgICAgICAgICAgICBkYXRhID0ge30KKyAgICAgICAgICAgIGRh
dGFbIi90ZXN0c19yb290Il0gPSBzZWxmLnRlc3RzX3Jvb3QKKyAgICAgICAgcmV0dXJuIGRhdGEK
KworICAgIGRlZiBkdW1wKHNlbGYpOgorICAgICAgICAjIHR5cGU6ICgpIC0+IE5vbmUKKyAgICAg
ICAgaWYgc2VsZi5tYW5pZmVzdF9wYXRoIGlzIE5vbmU6CisgICAgICAgICAgICByYWlzZSBWYWx1
ZUVycm9yCisgICAgICAgIGlmIG5vdCBvcy5wYXRoLmV4aXN0cyhzZWxmLm1hbmlmZXN0X3BhdGgp
OgorICAgICAgICAgICAgcmV0dXJuCisgICAgICAgIG10aW1lID0gb3MucGF0aC5nZXRtdGltZShz
ZWxmLm1hbmlmZXN0X3BhdGgpCisgICAgICAgIHNlbGYuZGF0YVsiL21hbmlmZXN0X3BhdGgiXSA9
IFtzZWxmLm1hbmlmZXN0X3BhdGgsIG10aW1lXQorICAgICAgICBzZWxmLmRhdGFbIi90ZXN0c19y
b290Il0gPSBzZWxmLnRlc3RzX3Jvb3QKKyAgICAgICAgc3VwZXIoTXRpbWVDYWNoZSwgc2VsZiku
ZHVtcCgpCisKKworY2xhc3MgR2l0SWdub3JlQ2FjaGUoQ2FjaGVGaWxlLCBNdXRhYmxlTWFwcGlu
Zyk6ICAjIHR5cGU6IGlnbm9yZQorICAgIGZpbGVfbmFtZSA9IGIiZ2l0aWdub3JlLmpzb24iCisK
KyAgICBkZWYgY2hlY2tfdmFsaWQoc2VsZiwgZGF0YSk6CisgICAgICAgICMgdHlwZTogKERpY3Rb
QW55LCBBbnldKSAtPiBEaWN0W0FueSwgQW55XQorICAgICAgICBpZ25vcmVfcGF0aCA9IG9zLnBh
dGguam9pbihzZWxmLnRlc3RzX3Jvb3QsIGIiLmdpdGlnbm9yZSIpCisgICAgICAgIG10aW1lID0g
b3MucGF0aC5nZXRtdGltZShpZ25vcmVfcGF0aCkKKyAgICAgICAgaWYgZGF0YS5nZXQoYiIvZ2l0
aWdub3JlX2ZpbGUiKSAhPSBbaWdub3JlX3BhdGgsIG10aW1lXToKKyAgICAgICAgICAgIHNlbGYu
bW9kaWZpZWQgPSBUcnVlCisgICAgICAgICAgICBkYXRhID0ge30KKyAgICAgICAgICAgIGRhdGFb
YiIvZ2l0aWdub3JlX2ZpbGUiXSA9IFtpZ25vcmVfcGF0aCwgbXRpbWVdCisgICAgICAgIHJldHVy
biBkYXRhCisKKyAgICBkZWYgX19jb250YWluc19fKHNlbGYsIGtleSk6CisgICAgICAgICMgdHlw
ZTogKEFueSkgLT4gYm9vbAorICAgICAgICByZXR1cm4ga2V5IGluIHNlbGYuZGF0YQorCisgICAg
ZGVmIF9fZ2V0aXRlbV9fKHNlbGYsIGtleSk6CisgICAgICAgICMgdHlwZTogKGJ5dGVzKSAtPiBi
b29sCisgICAgICAgIHYgPSBzZWxmLmRhdGFba2V5XQorICAgICAgICBhc3NlcnQgaXNpbnN0YW5j
ZSh2LCBib29sKQorICAgICAgICByZXR1cm4gdgorCisgICAgZGVmIF9fc2V0aXRlbV9fKHNlbGYs
IGtleSwgdmFsdWUpOgorICAgICAgICAjIHR5cGU6IChieXRlcywgYm9vbCkgLT4gTm9uZQorICAg
ICAgICBpZiBzZWxmLmRhdGEuZ2V0KGtleSkgIT0gdmFsdWU6CisgICAgICAgICAgICBzZWxmLm1v
ZGlmaWVkID0gVHJ1ZQorICAgICAgICAgICAgc2VsZi5kYXRhW2tleV0gPSB2YWx1ZQorCisgICAg
ZGVmIF9fZGVsaXRlbV9fKHNlbGYsIGtleSk6CisgICAgICAgICMgdHlwZTogKGJ5dGVzKSAtPiBO
b25lCisgICAgICAgIGRlbCBzZWxmLmRhdGFba2V5XQorCisgICAgZGVmIF9faXRlcl9fKHNlbGYp
OgorICAgICAgICAjIHR5cGU6ICgpIC0+IEl0ZXJhdG9yW2J5dGVzXQorICAgICAgICByZXR1cm4g
aXRlcihzZWxmLmRhdGEpCisKKyAgICBkZWYgX19sZW5fXyhzZWxmKToKKyAgICAgICAgIyB0eXBl
OiAoKSAtPiBpbnQKKyAgICAgICAgcmV0dXJuIGxlbihzZWxmLmRhdGEpCisKKworZGVmIHdhbGso
cm9vdCk6CisgICAgIyB0eXBlOiAoYnl0ZXMpIC0+IEl0ZXJhYmxlW1R1cGxlW2J5dGVzLCBMaXN0
W1R1cGxlW2J5dGVzLCBzdGF0X3Jlc3VsdF1dLCBMaXN0W1R1cGxlW2J5dGVzLCBzdGF0X3Jlc3Vs
dF1dXV0KKyAgICAiIiJSZS1pbXBsZW1lbnRhdGlvbiBvZiBvcy53YWxrLiBSZXR1cm5zIGFuIGl0
ZXJhdG9yIG92ZXIKKyAgICAoZGlycGF0aCwgZGlybmFtZXMsIGZpbGVuYW1lcyksIHdpdGggc29t
ZSBzZW1hbnRpYyBkaWZmZXJlbmNlcworICAgIHRvIG9zLndhbGsuCisKKyAgICBUaGlzIGhhcyBh
IHNpbWlsYXIgaW50ZXJmYWNlIHRvIG9zLndhbGssIHdpdGggdGhlIGltcG9ydGFudCBkaWZmZXJl
bmNlCisgICAgdGhhdCBpbnN0ZWFkIG9mIGxpc3RzIG9mIGZpbGVuYW1lcyBhbmQgZGlyZWN0b3J5
IG5hbWVzLCBpdCB5aWVsZHMKKyAgICBsaXN0cyBvZiB0dXBsZXMgb2YgdGhlIGZvcm0gWyhuYW1l
LCBzdGF0KV0gd2hlcmUgc3RhdCBpcyB0aGUgcmVzdWx0IG9mCisgICAgb3Muc3RhdCBmb3IgdGhl
IGZpbGUuIFRoYXQgYWxsb3dzIHJldXNpbmcgdGhlIHNhbWUgc3RhdCBkYXRhIGluIHRoZQorICAg
IGNhbGxlci4gSXQgYWxzbyBhbHdheXMgcmV0dXJucyB0aGUgZGlycGF0aCByZWxhdGl2ZSB0byB0
aGUgcm9vdCwgd2l0aAorICAgIHRoZSByb290IGlzZWxmIGJlaW5nIHJldHVybmVkIGFzIHRoZSBl
bXB0eSBzdHJpbmcuCisKKyAgICBVbmxpa2Ugb3Mud2FsayB0aGUgaW1wbGVtZW50YXRpb24gaXMg
bm90IHJlY3Vyc2l2ZS4iIiIKKworICAgIGdldF9zdGF0ID0gb3Muc3RhdAorICAgIGlzX2RpciA9
IHN0YXQuU19JU0RJUgorICAgIGlzX2xpbmsgPSBzdGF0LlNfSVNMTksKKyAgICBqb2luID0gb3Mu
cGF0aC5qb2luCisgICAgbGlzdGRpciA9IG9zLmxpc3RkaXIKKyAgICByZWxwYXRoID0gb3MucGF0
aC5yZWxwYXRoCisKKyAgICByb290ID0gb3MucGF0aC5hYnNwYXRoKHJvb3QpCisgICAgc3RhY2sg
PSBkZXF1ZShbKHJvb3QsIGIiIildKQorCisgICAgd2hpbGUgc3RhY2s6CisgICAgICAgIGRpcl9w
YXRoLCByZWxfcGF0aCA9IHN0YWNrLnBvcGxlZnQoKQorICAgICAgICB0cnk6CisgICAgICAgICAg
ICAjIE5vdGUgdGhhdCBsaXN0ZGlyIGFuZCBlcnJvciBhcmUgZ2xvYmFscyBpbiB0aGlzIG1vZHVs
ZSBkdWUKKyAgICAgICAgICAgICMgdG8gZWFybGllciBpbXBvcnQtKi4KKyAgICAgICAgICAgIG5h
bWVzID0gbGlzdGRpcihkaXJfcGF0aCkKKyAgICAgICAgZXhjZXB0IE9TRXJyb3I6CisgICAgICAg
ICAgICBjb250aW51ZQorCisgICAgICAgIGRpcnMsIG5vbl9kaXJzID0gW10sIFtdCisgICAgICAg
IGZvciBuYW1lIGluIG5hbWVzOgorICAgICAgICAgICAgcGF0aCA9IGpvaW4oZGlyX3BhdGgsIG5h
bWUpCisgICAgICAgICAgICB0cnk6CisgICAgICAgICAgICAgICAgcGF0aF9zdGF0ID0gZ2V0X3N0
YXQocGF0aCkKKyAgICAgICAgICAgIGV4Y2VwdCBPU0Vycm9yOgorICAgICAgICAgICAgICAgIGNv
bnRpbnVlCisgICAgICAgICAgICBpZiBpc19kaXIocGF0aF9zdGF0LnN0X21vZGUpOgorICAgICAg
ICAgICAgICAgIGRpcnMuYXBwZW5kKChuYW1lLCBwYXRoX3N0YXQpKQorICAgICAgICAgICAgZWxz
ZToKKyAgICAgICAgICAgICAgICBub25fZGlycy5hcHBlbmQoKG5hbWUsIHBhdGhfc3RhdCkpCisK
KyAgICAgICAgeWllbGQgcmVsX3BhdGgsIGRpcnMsIG5vbl9kaXJzCisgICAgICAgIGZvciBuYW1l
LCBwYXRoX3N0YXQgaW4gZGlyczoKKyAgICAgICAgICAgIG5ld19wYXRoID0gam9pbihkaXJfcGF0
aCwgbmFtZSkKKyAgICAgICAgICAgIGlmIG5vdCBpc19saW5rKHBhdGhfc3RhdC5zdF9tb2RlKToK
KyAgICAgICAgICAgICAgICBzdGFjay5hcHBlbmQoKG5ld19wYXRoLCByZWxwYXRoKG5ld19wYXRo
LCByb290KSkpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL21hbmlmZXN0L3czYy1pbXBvcnQubG9nIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9tYW5pZmVzdC93M2MtaW1wb3J0Lmxv
ZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNWY1ZjI4MzRjMDMwNDViNWRmMTBjNTdh
ZmQ1MDY3OTQwMWYyM2MwMi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L21hbmlmZXN0L3czYy1pbXBvcnQubG9nCisrKyAvZGV2L251bGwKQEAgLTEsMzcgKzAsMCBAQAot
VGhlIHRlc3RzIGluIHRoaXMgZGlyZWN0b3J5IHdlcmUgaW1wb3J0ZWQgZnJvbSB0aGUgVzNDIHJl
cG9zaXRvcnkuCi1EbyBOT1QgbW9kaWZ5IHRoZXNlIHRlc3RzIGRpcmVjdGx5IGluIFdlYktpdC4K
LUluc3RlYWQsIGNyZWF0ZSBhIHB1bGwgcmVxdWVzdCBvbiB0aGUgV1BUIGdpdGh1YjoKLQlodHRw
czovL2dpdGh1Yi5jb20vd2ViLXBsYXRmb3JtLXRlc3RzL3dwdAotCi1UaGVuIHJ1biB0aGUgVG9v
bHMvU2NyaXB0cy9pbXBvcnQtdzNjLXRlc3RzIGluIFdlYktpdCB0byByZWltcG9ydAotCi1EbyBO
T1QgbW9kaWZ5IG9yIHJlbW92ZSB0aGlzIGZpbGUuCi0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotUHJvcGVy
dGllcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotUHJvcGVydHkgdmFsdWVzIHJl
cXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLUxpc3Qgb2Yg
ZmlsZXM6Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy9tYW5pZmVzdC9YTUxQYXJzZXIucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL21hbmlmZXN0L1hNTFBhcnNlci5weWMKLS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL21hbmlmZXN0L19faW5pdF9fLnB5
Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9tYW5p
ZmVzdC9fX2luaXRfXy5weWMKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL21hbmlmZXN0L2NvbW1hbmRzLmpzb24KLS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL21hbmlmZXN0L2Rvd25sb2FkLnB5Ci0vTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9tYW5pZmVzdC9k
b3dubG9hZC5weWMKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL21hbmlmZXN0L2l0ZW0ucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL21hbmlmZXN0L2l0ZW0ucHljCi0vTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9tYW5pZmVzdC9sb2cucHkKLS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL21hbmlmZXN0L2xvZy5w
eWMKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL21h
bmlmZXN0L21hbmlmZXN0LnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy9tYW5pZmVzdC9tYW5pZmVzdC5weWMKLS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL21hbmlmZXN0L3NvdXJjZWZpbGUucHkKLS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL21hbmlmZXN0
L3NvdXJjZWZpbGUucHljCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy9tYW5pZmVzdC91cGRhdGUucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL21hbmlmZXN0L3VwZGF0ZS5weWMKLS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL21hbmlmZXN0L3V0aWxzLnB5
Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9tYW5p
ZmVzdC91dGlscy5weWMKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL21hbmlmZXN0L3Zjcy5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvbWFuaWZlc3QvdmNzLnB5YwpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9teXB5LmluaSBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvbXlweS5pbmkK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uYWM4ZWRkMzdkM2FjMjkwNDEzM2ExMmVlOWU3NTUwZGQ1YTQ4NzIzOAotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvbXlweS5pbmkKQEAgLTAsMCArMSwzNCBAQAorW215cHldCisjY2hlY2tfdW50eXBl
ZF9kZWZzID0gVHJ1ZQorZGlzYWxsb3dfdW50eXBlZF9kZWZzID0gVHJ1ZQorZGlzYWxsb3dfYW55
X2dlbmVyaWNzID0gVHJ1ZQorZGlzYWxsb3dfaW5jb21wbGV0ZV9kZWZzID0gVHJ1ZQorZGlzYWxs
b3dfc3ViY2xhc3NpbmdfYW55ID0gVHJ1ZQorZGlzYWxsb3dfdW50eXBlZF9jYWxscyA9IFRydWUK
K2Rpc2FsbG93X3VudHlwZWRfZGVjb3JhdG9ycyA9IFRydWUKK25vX2ltcGxpY2l0X29wdGlvbmFs
ID0gVHJ1ZQord2Fybl9yZWR1bmRhbnRfY2FzdHMgPSBUcnVlCit3YXJuX3JldHVybl9hbnkgPSBU
cnVlCit3YXJuX3VudXNlZF9jb25maWdzID0gVHJ1ZQord2Fybl91bnVzZWRfaWdub3JlcyA9IFRy
dWUKKworW215cHktaHRtbDVsaWIuKl0KK2lnbm9yZV9taXNzaW5nX2ltcG9ydHMgPSBUcnVlCisK
K1tteXB5LWh5cG90aGVzaXMuKl0KK2lnbm9yZV9taXNzaW5nX2ltcG9ydHMgPSBUcnVlCisKK1tt
eXB5LXB5dGVzdC4qXQoraWdub3JlX21pc3NpbmdfaW1wb3J0cyA9IFRydWUKKworW215cHktenN0
YW5kYXJkLipdCitpZ25vcmVfbWlzc2luZ19pbXBvcnRzID0gVHJ1ZQorCitbbXlweS10b29scy5n
aXRpZ25vcmUudGVzdHMuKl0KK2lnbm9yZV9lcnJvcnMgPSBUcnVlCisKK1tteXB5LXRvb2xzLm1h
bmlmZXN0LnRlc3RzLipdCitpZ25vcmVfZXJyb3JzID0gVHJ1ZQorCitbbXlweS10b29scy5saW50
LnRlc3RzLipdCitpZ25vcmVfZXJyb3JzID0gVHJ1ZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weTI3LWZsYWtlOC5pbmkgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5MjctZmxh
a2U4LmluaQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi45OTMyNGIyYWFkMTRkOTIxZjQ2OWY1MjkzNGY3ZmY5Mzc0YTFk
OWVlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy9weTI3LWZsYWtlOC5pbmkKQEAgLTAsMCArMSwyOCBAQAorW2ZsYWtl
OF0KK3NlbGVjdCA9IEUsVyxGLE4KKyMgRTEyODogY29udGludWF0aW9uIGxpbmUgdW5kZXItaW5k
ZW50ZWQgZm9yIHZpc3VhbCBpbmRlbnQKKyMgRTEyOTogdmlzdWFsbHkgaW5kZW50ZWQgbGluZSB3
aXRoIHNhbWUgaW5kZW50IGFzIG5leHQgbG9naWNhbCBsaW5lCisjIEUyMjY6IG1pc3Npbmcgd2hp
dGVzcGFjZSBhcm91bmQgYXJpdGhtZXRpYyBvcGVyYXRvcgorIyBFMjMxOiBtaXNzaW5nIHdoaXRl
c3BhY2UgYWZ0ZXIg4oCYLOKAmSwg4oCYO+KAmSwgb3Ig4oCYOuKAmQorIyBFMjUxOiB1bmV4cGVj
dGVkIHNwYWNlcyBhcm91bmQga2V5d29yZCAvIHBhcmFtZXRlciBlcXVhbHMKKyMgRTI2NTogYmxv
Y2sgY29tbWVudCBzaG91bGQgc3RhcnQgd2l0aCDigJgjIOKAmAorIyBFMzAyOiBleHBlY3RlZCAy
IGJsYW5rIGxpbmVzLCBmb3VuZCAwCisjIEUzMDM6IHRvbyBtYW55IGJsYW5rIGxpbmVzICgzKQor
IyBFMzA1OiBleHBlY3RlZCAyIGJsYW5rIGxpbmVzIGFmdGVyIGVuZCBvZiBmdW5jdGlvbiBvciBj
bGFzcworIyBFNDAyOiBtb2R1bGUgbGV2ZWwgaW1wb3J0IG5vdCBhdCB0b3Agb2YgZmlsZQorIyBF
NzMxOiBkbyBub3QgYXNzaWduIGEgbGFtYmRhIGV4cHJlc3Npb24sIHVzZSBhIGRlZgorIyBXNTA0
OiBsaW5lIGJyZWFrIGFmdGVyIGJpbmFyeSBvcGVyYXRvcgorIyBXNjAxOiAuaGFzX2tleSgpIGlz
IGRlcHJlY2F0ZWQsIHVzZSDigJhpbuKAmQorIyBXNjA1OiBpbnZhbGlkIGVzY2FwZSBzZXF1ZW5j
ZQorIyBXNjA2OiAnYXN5bmMnIGFuZCAnYXdhaXQnIGFyZSByZXNlcnZlZCBrZXl3b3JkcyBzdGFy
dGluZyB3aXRoIFB5dGhvbiAzLjcKKyMgTjgwMTogY2xhc3MgbmFtZXMgc2hvdWxkIHVzZSBDYXBX
b3JkcyBjb252ZW50aW9uCisjIE44MDI6IGZ1bmN0aW9uIG5hbWUgc2hvdWxkIGJlIGxvd2VyY2Fz
ZQorIyBOODA2OiB2YXJpYWJsZSBpbiBmdW5jdGlvbiBzaG91bGQgYmUgbG93ZXJjYXNlCitpZ25v
cmUgPSBFMTI4LEUxMjksRTIyNixFMjMxLEUyNTEsRTI2NSxFMzAyLEUzMDMsRTMwNSxFNDAyLEU3
MzEsVzUwNCxXNjAxLFc2MDUsVzYwNixOODAxLE44MDIsTjgwNgorZXhjbHVkZSA9CisgICAgLnRv
eCwKKyAgICBweXdlYnNvY2tldCwKKyAgICB0aGlyZF9wYXJ0eSwKKyAgICB3cHRzZXJ2ZS9kb2Nz
L2NvbmYucHksCisgICAgd3B0c2VydmUvdGVzdHMvZnVuY3Rpb25hbC9kb2Nyb290L2ludmFsaWQu
cHkKK21heC1saW5lLWxlbmd0aCA9IDE0MQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weTM2LWZsYWtlOC5pbmkgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5MzYtZmxha2U4Lmlu
aQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi4xNGNjMWRjNmY2YTdhZmI0MWYxMmM0MWZhODI5MzMzN2QxOWEwMjNiCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy9weTM2LWZsYWtlOC5pbmkKQEAgLTAsMCArMSwyNyBAQAorW2ZsYWtlOF0KK3Nl
bGVjdCA9IEUsVyxGLE4KKyMgRTEyODogY29udGludWF0aW9uIGxpbmUgdW5kZXItaW5kZW50ZWQg
Zm9yIHZpc3VhbCBpbmRlbnQKKyMgRTEyOTogdmlzdWFsbHkgaW5kZW50ZWQgbGluZSB3aXRoIHNh
bWUgaW5kZW50IGFzIG5leHQgbG9naWNhbCBsaW5lCisjIEUyMjY6IG1pc3Npbmcgd2hpdGVzcGFj
ZSBhcm91bmQgYXJpdGhtZXRpYyBvcGVyYXRvcgorIyBFMjMxOiBtaXNzaW5nIHdoaXRlc3BhY2Ug
YWZ0ZXIg4oCYLOKAmSwg4oCYO+KAmSwgb3Ig4oCYOuKAmQorIyBFMjUxOiB1bmV4cGVjdGVkIHNw
YWNlcyBhcm91bmQga2V5d29yZCAvIHBhcmFtZXRlciBlcXVhbHMKKyMgRTI2NTogYmxvY2sgY29t
bWVudCBzaG91bGQgc3RhcnQgd2l0aCDigJgjIOKAmAorIyBFMzAyOiBleHBlY3RlZCAyIGJsYW5r
IGxpbmVzLCBmb3VuZCAwCisjIEUzMDM6IHRvbyBtYW55IGJsYW5rIGxpbmVzICgzKQorIyBFMzA1
OiBleHBlY3RlZCAyIGJsYW5rIGxpbmVzIGFmdGVyIGVuZCBvZiBmdW5jdGlvbiBvciBjbGFzcwor
IyBFNDAyOiBtb2R1bGUgbGV2ZWwgaW1wb3J0IG5vdCBhdCB0b3Agb2YgZmlsZQorIyBFNzMxOiBk
byBub3QgYXNzaWduIGEgbGFtYmRhIGV4cHJlc3Npb24sIHVzZSBhIGRlZgorIyBXNTA0OiBsaW5l
IGJyZWFrIGFmdGVyIGJpbmFyeSBvcGVyYXRvcgorIyBXNjA1OiBpbnZhbGlkIGVzY2FwZSBzZXF1
ZW5jZQorIyBOODAxOiBjbGFzcyBuYW1lcyBzaG91bGQgdXNlIENhcFdvcmRzIGNvbnZlbnRpb24K
KyMgTjgwMjogZnVuY3Rpb24gbmFtZSBzaG91bGQgYmUgbG93ZXJjYXNlCisjIE44MDY6IHZhcmlh
YmxlIGluIGZ1bmN0aW9uIHNob3VsZCBiZSBsb3dlcmNhc2UKK2lnbm9yZSA9IEUxMjgsRTEyOSxF
MjI2LEUyMzEsRTI1MSxFMjY1LEUzMDIsRTMwMyxFMzA1LEU0MDIsRTczMSxXNTA0LFc2MDUsTjgw
MSxOODAyLE44MDYKK2V4Y2x1ZGUgPQorICAgIC50b3gsCisgICAgcHl3ZWJzb2NrZXQsCisgICAg
dGhpcmRfcGFydHksCisgICAgd3B0cnVubmVyLAorICAgIHdwdHNlcnZlL2RvY3MvY29uZi5weSwK
KyAgICB3cHRzZXJ2ZS90ZXN0cy9mdW5jdGlvbmFsL2RvY3Jvb3QvaW52YWxpZC5weQorbWF4LWxp
bmUtbGVuZ3RoID0gMTQxCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5dGVzdC5pbmkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5dGVzdC5pbmkKaW5kZXggYjUyZTQ2NTU5OGFi
OTdmYWE2YjcxODg1OTYxN2YyMTk0MTQxZmJiNC4uNmJkYjRkNTYzZjZkZDUwODZlZDNlMDk3MTUx
ODdlNTQ5ZWRmMjU1YSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy9weXRlc3QuaW5pCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl0ZXN0LmluaQpAQCAtMSwzICsxLDcgQEAK
IFtweXRlc3RdCiBub3JlY3Vyc2VkaXJzID0gLioge2FyY2h9ICouZWdnIGh0bWw1bGliIHRoaXJk
X3BhcnR5IHB5d2Vic29ja2V0IHNpeCB3cHQgd3B0cnVubmVyCi14ZmFpbF9zdHJpY3Q9dHJ1ZQor
eGZhaWxfc3RyaWN0ID0gdHJ1ZQorYWRkb3B0cyA9IC0tc3RyaWN0LW1hcmtlcnMKK21hcmtlcnMg
PQorICAgIHNsb3c6IG1hcmtzIHRlc3RzIGFzIHNsb3cgKGRlc2VsZWN0IHdpdGggJy1tICJub3Qg
c2xvdyInKQorICAgIHJlbW90ZV9uZXR3b3JrCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L2V4YW1wbGUvZWNo
b19jbGllbnQucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3B5d2Vic29ja2V0L2V4YW1wbGUvZWNob19jbGllbnQucHkKb2xkIG1vZGUgMTAwNjQ0
Cm5ldyBtb2RlIDEwMDc1NQppbmRleCA5NDNjZTY0ZThiODg2NTYyZmM2OTIwOTgzNGJmOTJiMTM5
OTE0MmY3Li44YWM3NDBlNzA1OGJkMzFhNzhiY2YxYjFiODk3ZDNiZGYzZmM3ZDRiCi0tLSBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2Nr
ZXQvZXhhbXBsZS9lY2hvX2NsaWVudC5weQorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L2V4YW1wbGUvZWNob19jbGllbnQu
cHkKQEAgLTUxLDYgKzUxLDcgQEAgb3IKICMgcnVuIGVjaG8gY2xpZW50IHRvIHRlc3QgSUVURiBI
eUJpIDAwIHByb3RvY29sCiAgcnVuIHdpdGggLS1wcm90b2NvbC12ZXJzaW9uPWh5YmkwMAogIiIi
Citmcm9tIF9fZnV0dXJlX18gaW1wb3J0IHByaW50X2Z1bmN0aW9uCiAKIAogaW1wb3J0IGJhc2U2
NApAQCAtNDgzLDcgKzQ4NCw3IEBAIGNsYXNzIENsaWVudEhhbmRzaGFrZVByb2Nlc3NvcihDbGll
bnRIYW5kc2hha2VCYXNlKToKICAgICAgICAgICAgIGlmIGNoID09ICdcbic6CiAgICAgICAgICAg
ICAgICAgYnJlYWsKIAotICAgICAgICBtID0gcmUubWF0Y2goJ0hUVFAvXFxkK1wuXFxkKyAoXFxk
XFxkXFxkKSAuKlxyXG4nLCBzdGF0dXNfbGluZSkKKyAgICAgICAgbSA9IHJlLm1hdGNoKCdIVFRQ
L1xcZCtcXC5cXGQrIChcXGRcXGRcXGQpIC4qXHJcbicsIHN0YXR1c19saW5lKQogICAgICAgICBp
ZiBtIGlzIE5vbmU6CiAgICAgICAgICAgICByYWlzZSBDbGllbnRIYW5kc2hha2VFcnJvcigKICAg
ICAgICAgICAgICAgICAnV3Jvbmcgc3RhdHVzIGxpbmUgZm9ybWF0OiAlcicgJSBzdGF0dXNfbGlu
ZSkKQEAgLTUyNiw3ICs1MjcsNyBAQCBjbGFzcyBDbGllbnRIYW5kc2hha2VQcm9jZXNzb3IoQ2xp
ZW50SGFuZHNoYWtlQmFzZSk6CiAgICAgICAgICMgVmFsaWRhdGUKICAgICAgICAgdHJ5OgogICAg
ICAgICAgICAgYmluYXJ5X2FjY2VwdCA9IGJhc2U2NC5iNjRkZWNvZGUoYWNjZXB0KQotICAgICAg
ICBleGNlcHQgVHlwZUVycm9yLCBlOgorICAgICAgICBleGNlcHQgVHlwZUVycm9yOgogICAgICAg
ICAgICAgcmFpc2UgSGFuZHNoYWtlRXJyb3IoCiAgICAgICAgICAgICAgICAgJ0lsbGVnYWwgdmFs
dWUgZm9yIGhlYWRlciAlczogJXInICUKICAgICAgICAgICAgICAgICAoY29tbW9uLlNFQ19XRUJT
T0NLRVRfQUNDRVBUX0hFQURFUiwgYWNjZXB0KSkKQEAgLTk0MCwxNSArOTQxLDE1IEBAIGNsYXNz
IEVjaG9DbGllbnQob2JqZWN0KToKICAgICAgICAgICAgIGZvciBsaW5lIGluIHNlbGYuX29wdGlv
bnMubWVzc2FnZS5zcGxpdCgnLCcpOgogICAgICAgICAgICAgICAgIHNlbGYuX3N0cmVhbS5zZW5k
X21lc3NhZ2UobGluZSkKICAgICAgICAgICAgICAgICBpZiBzZWxmLl9vcHRpb25zLnZlcmJvc2U6
Ci0gICAgICAgICAgICAgICAgICAgIHByaW50ICdTZW5kOiAlcycgJSBsaW5lCisgICAgICAgICAg
ICAgICAgICAgIHByaW50KCdTZW5kOiAlcycgJSBsaW5lKQogICAgICAgICAgICAgICAgIHRyeToK
ICAgICAgICAgICAgICAgICAgICAgcmVjZWl2ZWQgPSBzZWxmLl9zdHJlYW0ucmVjZWl2ZV9tZXNz
YWdlKCkKIAogICAgICAgICAgICAgICAgICAgICBpZiBzZWxmLl9vcHRpb25zLnZlcmJvc2U6Ci0g
ICAgICAgICAgICAgICAgICAgICAgICBwcmludCAnUmVjdjogJXMnICUgcmVjZWl2ZWQKLSAgICAg
ICAgICAgICAgICBleGNlcHQgRXhjZXB0aW9uLCBlOgorICAgICAgICAgICAgICAgICAgICAgICAg
cHJpbnQoJ1JlY3Y6ICVzJyAlIHJlY2VpdmVkKQorICAgICAgICAgICAgICAgIGV4Y2VwdCBFeGNl
cHRpb24gYXMgZToKICAgICAgICAgICAgICAgICAgICAgaWYgc2VsZi5fb3B0aW9ucy52ZXJib3Nl
OgotICAgICAgICAgICAgICAgICAgICAgICAgcHJpbnQgJ0Vycm9yOiAlcycgJSBlCisgICAgICAg
ICAgICAgICAgICAgICAgICBwcmludCgnRXJyb3I6ICVzJyAlIGUpCiAgICAgICAgICAgICAgICAg
ICAgIHJhaXNlCiAKICAgICAgICAgICAgIHNlbGYuX2RvX2Nsb3NpbmdfaGFuZHNoYWtlKCkKQEAg
LTk2NCwxNSArOTY1LDE1IEBAIGNsYXNzIEVjaG9DbGllbnQob2JqZWN0KToKICAgICAgICAgICAg
IHNlbGYuX2xvZ2dlci5pbmZvKCdXYWl0IGZvciBzZXJ2ZXItaW5pdGlhdGVkIGNsb3NpbmcgaGFu
ZHNoYWtlJykKICAgICAgICAgICAgIG1lc3NhZ2UgPSBzZWxmLl9zdHJlYW0ucmVjZWl2ZV9tZXNz
YWdlKCkKICAgICAgICAgICAgIGlmIG1lc3NhZ2UgaXMgTm9uZToKLSAgICAgICAgICAgICAgICBw
cmludCAnUmVjdiBjbG9zZScKLSAgICAgICAgICAgICAgICBwcmludCAnU2VuZCBhY2snCisgICAg
ICAgICAgICAgICAgcHJpbnQoJ1JlY3YgY2xvc2UnKQorICAgICAgICAgICAgICAgIHByaW50KCdT
ZW5kIGFjaycpCiAgICAgICAgICAgICAgICAgc2VsZi5fbG9nZ2VyLmluZm8oCiAgICAgICAgICAg
ICAgICAgICAgICdSZWNlaXZlZCBjbG9zaW5nIGhhbmRzaGFrZSBhbmQgc2VudCBhY2snKQogICAg
ICAgICAgICAgICAgIHJldHVybgotICAgICAgICBwcmludCAnU2VuZCBjbG9zZScKKyAgICAgICAg
cHJpbnQoJ1NlbmQgY2xvc2UnKQogICAgICAgICBzZWxmLl9zdHJlYW0uY2xvc2VfY29ubmVjdGlv
bigpCiAgICAgICAgIHNlbGYuX2xvZ2dlci5pbmZvKCdTZW50IGNsb3NpbmcgaGFuZHNoYWtlJykK
LSAgICAgICAgcHJpbnQgJ1JlY3YgYWNrJworICAgICAgICBwcmludCgnUmVjdiBhY2snKQogICAg
ICAgICBzZWxmLl9sb2dnZXIuaW5mbygnUmVjZWl2ZWQgYWNrJykKIAogCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29j
a2V0L2V4YW1wbGUvZXZlbnRzb3VyY2UuY2dpIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9leGFtcGxlL2V2ZW50c291cmNlLmNn
aQpvbGQgbW9kZSAxMDA2NDQKbmV3IG1vZGUgMTAwNzU1CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L2V4YW1w
bGUvc3BlY2lhbF9oZWFkZXJzLmNnaSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvZXhhbXBsZS9zcGVjaWFsX2hlYWRlcnMuY2dp
Cm9sZCBtb2RlIDEwMDY0NApuZXcgbW9kZSAxMDA3NTUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvZXhhbXBs
ZS93M2MtaW1wb3J0LmxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvZXhhbXBsZS93M2MtaW1wb3J0LmxvZwpkZWxldGVkIGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMGY5M2I4YjY5NTViMDYyNWE2MTE0N2QzYzMzYjI3ZTllOWI1
NWQ3ZS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0
L2V4YW1wbGUvdzNjLWltcG9ydC5sb2cKKysrIC9kZXYvbnVsbApAQCAtMSw0OSArMCwwIEBACi1U
aGUgdGVzdHMgaW4gdGhpcyBkaXJlY3Rvcnkgd2VyZSBpbXBvcnRlZCBmcm9tIHRoZSBXM0MgcmVw
b3NpdG9yeS4KLURvIE5PVCBtb2RpZnkgdGhlc2UgdGVzdHMgZGlyZWN0bHkgaW4gV2ViS2l0Lgot
SW5zdGVhZCwgY3JlYXRlIGEgcHVsbCByZXF1ZXN0IG9uIHRoZSBXUFQgZ2l0aHViOgotCWh0dHBz
Oi8vZ2l0aHViLmNvbS93ZWItcGxhdGZvcm0tdGVzdHMvd3B0Ci0KLVRoZW4gcnVuIHRoZSBUb29s
cy9TY3JpcHRzL2ltcG9ydC13M2MtdGVzdHMgaW4gV2ViS2l0IHRvIHJlaW1wb3J0Ci0KLURvIE5P
VCBtb2RpZnkgb3IgcmVtb3ZlIHRoaXMgZmlsZS4KLQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1Qcm9wZXJ0
aWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi1Qcm9wZXJ0eSB2YWx1ZXMgcmVx
dWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotTGlzdCBvZiBm
aWxlczoKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3B5d2Vic29ja2V0L2V4YW1wbGUvYWJvcnRfaGFuZHNoYWtlX3dzaC5weQotL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvZXhhbXBs
ZS9hYm9ydF93c2gucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3B5d2Vic29ja2V0L2V4YW1wbGUvYXJyYXlidWZmZXJfYmVuY2htYXJrLmh0bWwK
LS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vi
c29ja2V0L2V4YW1wbGUvYmVuY2hfd3NoLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9leGFtcGxlL2JlbmNobWFyay5odG1s
Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdl
YnNvY2tldC9leGFtcGxlL2JlbmNobWFyay5qcwotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvZXhhbXBsZS9iZW5jaG1hcmtfaGVs
cGVyX3dzaC5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvcHl3ZWJzb2NrZXQvZXhhbXBsZS9jbG9zZV93c2gucHkKLS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L2V4YW1wbGUvY29u
c29sZS5odG1sCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy9weXdlYnNvY2tldC9leGFtcGxlL2Nvb2tpZV93c2gucHkKLS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L2V4YW1wbGUvZWNo
b19jbGllbnQucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3B5d2Vic29ja2V0L2V4YW1wbGUvZWNob19ub2V4dF93c2gucHkKLS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L2V4YW1w
bGUvZWNob193c2gucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3B5d2Vic29ja2V0L2V4YW1wbGUvZXZlbnRzb3VyY2UuY2dpCi0vTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9leGFt
cGxlL2V2ZW50c291cmNlLmh0bWwKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L2V4YW1wbGUvZmV0Y2hfYmVuY2htYXJrLmh0bWwK
LS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vi
c29ja2V0L2V4YW1wbGUvZmV0Y2hfYmVuY2htYXJrLmpzCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9leGFtcGxlL2ZldGNoX3Bl
cmZvcm1hbmNlX3Rlc3RfaWZyYW1lLmh0bWwKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L2V4YW1wbGUvaGFuZGxlcl9tYXAudHh0
Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdl
YnNvY2tldC9leGFtcGxlL2hzdHNfd3NoLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9leGFtcGxlL2ludGVybmFsX2Vycm9y
X3dzaC5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvcHl3ZWJzb2NrZXQvZXhhbXBsZS9vcmlnaW5fY2hlY2tfd3NoLnB5Ci0vTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9leGFtcGxl
L3BlcmZvcm1hbmNlX3Rlc3RfaWZyYW1lLmh0bWwKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L2V4YW1wbGUvcGVyZm9ybWFuY2Vf
dGVzdF9pZnJhbWUuanMKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3B5d2Vic29ja2V0L2V4YW1wbGUvcHl3ZWJzb2NrZXQuY29uZgotL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvZXhh
bXBsZS9zcGVjaWFsX2hlYWRlcnMuY2dpCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9leGFtcGxlL3V0aWwuanMKLS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L2V4
YW1wbGUvdXRpbF9tYWluLmpzCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy9weXdlYnNvY2tldC9leGFtcGxlL3V0aWxfd29ya2VyLmpzCi0vTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9l
eGFtcGxlL3hocl9iZW5jaG1hcmsuaHRtbAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvZXhhbXBsZS94aHJfYmVuY2htYXJrLmpz
Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdl
YnNvY2tldC9leGFtcGxlL3hocl9ldmVudF9sb2dnZXIuaHRtbAotL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvZXhhbXBsZS94aHJf
cGVyZm9ybWFuY2VfdGVzdF9pZnJhbWUuaHRtbApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9tb2RfcHl3ZWJz
b2NrZXQvaGFuZHNoYWtlL3czYy1pbXBvcnQubG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9tb2RfcHl3ZWJzb2NrZXQvaGFu
ZHNoYWtlL3czYy1pbXBvcnQubG9nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBmNTdh
NDhjNjI3YmJkMjgwMzZjZTZiNzM3YzY1YWJkM2VkMDZiZWM2Li4wMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvbW9kX3B5d2Vic29ja2V0L2hhbmRzaGFr
ZS93M2MtaW1wb3J0LmxvZworKysgL2Rldi9udWxsCkBAIC0xLDIwICswLDAgQEAKLVRoZSB0ZXN0
cyBpbiB0aGlzIGRpcmVjdG9yeSB3ZXJlIGltcG9ydGVkIGZyb20gdGhlIFczQyByZXBvc2l0b3J5
LgotRG8gTk9UIG1vZGlmeSB0aGVzZSB0ZXN0cyBkaXJlY3RseSBpbiBXZWJLaXQuCi1JbnN0ZWFk
LCBjcmVhdGUgYSBwdWxsIHJlcXVlc3Qgb24gdGhlIFdQVCBnaXRodWI6Ci0JaHR0cHM6Ly9naXRo
dWIuY29tL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQKLQotVGhlbiBydW4gdGhlIFRvb2xzL1Njcmlw
dHMvaW1wb3J0LXczYy10ZXN0cyBpbiBXZWJLaXQgdG8gcmVpbXBvcnQKLQotRG8gTk9UIG1vZGlm
eSBvciByZW1vdmUgdGhpcyBmaWxlLgotCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLVByb3BlcnRpZXMgcmVx
dWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLVByb3BlcnR5IHZhbHVlcyByZXF1aXJpbmcg
dmVuZG9yIHByZWZpeGVzOgotTm9uZQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1MaXN0IG9mIGZpbGVzOgot
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJz
b2NrZXQvbW9kX3B5d2Vic29ja2V0L2hhbmRzaGFrZS9fX2luaXRfXy5weQotL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvbW9kX3B5
d2Vic29ja2V0L2hhbmRzaGFrZS9fYmFzZS5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvbW9kX3B5d2Vic29ja2V0L2hhbmRz
aGFrZS9oeWJpLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy9weXdlYnNvY2tldC9tb2RfcHl3ZWJzb2NrZXQvaGFuZHNoYWtlL2h5YmkwMC5weQpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy9weXdlYnNvY2tldC9tb2RfcHl3ZWJzb2NrZXQvaGVhZGVycGFyc2VyaGFuZGxlci5weSBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJz
b2NrZXQvbW9kX3B5d2Vic29ja2V0L2hlYWRlcnBhcnNlcmhhbmRsZXIucHkKaW5kZXggZGRhNDNj
OWQ4MTk3ZjIxNzgwNDMzMWZiMWJlOTcwNjUyODJlMzY0Ni4uMDZlNzYzODU5Nzk4NWE5NmE0YzAw
ZWEwMDUyYTBkMzcxN2U0NDAzYyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9tb2RfcHl3ZWJzb2NrZXQvaGVh
ZGVycGFyc2VyaGFuZGxlci5weQorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L21vZF9weXdlYnNvY2tldC9oZWFkZXJwYXJz
ZXJoYW5kbGVyLnB5CkBAIC0yMDEsNyArMjAxLDcgQEAgZGVmIGhlYWRlcnBhcnNlcmhhbmRsZXIo
cmVxdWVzdCk6CiAgICAgICAgICAgICByZXF1ZXN0LmxvZ19lcnJvcigKICAgICAgICAgICAgICAg
ICAnbW9kX3B5d2Vic29ja2V0OiBGYWxsYmFjayB0byBBcGFjaGUnLCBhcGFjaGUuQVBMT0dfSU5G
TykKICAgICAgICAgICAgIHJldHVybiBhcGFjaGUuREVDTElORUQKLSAgICBleGNlcHQgZGlzcGF0
Y2guRGlzcGF0Y2hFeGNlcHRpb24sIGU6CisgICAgZXhjZXB0IGRpc3BhdGNoLkRpc3BhdGNoRXhj
ZXB0aW9uIGFzIGU6CiAgICAgICAgIHJlcXVlc3QubG9nX2Vycm9yKAogICAgICAgICAgICAgJ21v
ZF9weXdlYnNvY2tldDogRGlzcGF0Y2ggZmFpbGVkIGZvciBlcnJvcjogJXMnICUgZSwKICAgICAg
ICAgICAgIGFwYWNoZS5BUExPR19JTkZPKQpAQCAtMjE3LDE0ICsyMTcsMTQgQEAgZGVmIGhlYWRl
cnBhcnNlcmhhbmRsZXIocmVxdWVzdCk6CiAgICAgICAgIHRyeToKICAgICAgICAgICAgIGhhbmRz
aGFrZS5kb19oYW5kc2hha2UoCiAgICAgICAgICAgICAgICAgcmVxdWVzdCwgX2Rpc3BhdGNoZXIs
IGFsbG93RHJhZnQ3NT1hbGxvd19kcmFmdDc1KQotICAgICAgICBleGNlcHQgaGFuZHNoYWtlLlZl
cnNpb25FeGNlcHRpb24sIGU6CisgICAgICAgIGV4Y2VwdCBoYW5kc2hha2UuVmVyc2lvbkV4Y2Vw
dGlvbiBhcyBlOgogICAgICAgICAgICAgcmVxdWVzdC5sb2dfZXJyb3IoCiAgICAgICAgICAgICAg
ICAgJ21vZF9weXdlYnNvY2tldDogSGFuZHNoYWtlIGZhaWxlZCBmb3IgdmVyc2lvbiBlcnJvcjog
JXMnICUgZSwKICAgICAgICAgICAgICAgICBhcGFjaGUuQVBMT0dfSU5GTykKICAgICAgICAgICAg
IHJlcXVlc3QuZXJyX2hlYWRlcnNfb3V0LmFkZChjb21tb24uU0VDX1dFQlNPQ0tFVF9WRVJTSU9O
X0hFQURFUiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlLnN1cHBv
cnRlZF92ZXJzaW9ucykKICAgICAgICAgICAgIHJldHVybiBhcGFjaGUuSFRUUF9CQURfUkVRVUVT
VAotICAgICAgICBleGNlcHQgaGFuZHNoYWtlLkhhbmRzaGFrZUV4Y2VwdGlvbiwgZToKKyAgICAg
ICAgZXhjZXB0IGhhbmRzaGFrZS5IYW5kc2hha2VFeGNlcHRpb24gYXMgZToKICAgICAgICAgICAg
ICMgSGFuZHNoYWtlIGZvciB3cy93c3MgZmFpbGVkLgogICAgICAgICAgICAgIyBTZW5kIGh0dHAg
cmVzcG9uc2Ugd2l0aCBlcnJvciBzdGF0dXMuCiAgICAgICAgICAgICByZXF1ZXN0LmxvZ19lcnJv
cigKQEAgLTIzNSwxMCArMjM1LDEwIEBAIGRlZiBoZWFkZXJwYXJzZXJoYW5kbGVyKHJlcXVlc3Qp
OgogICAgICAgICBoYW5kc2hha2VfaXNfZG9uZSA9IFRydWUKICAgICAgICAgcmVxdWVzdC5fZGlz
cGF0Y2hlciA9IF9kaXNwYXRjaGVyCiAgICAgICAgIF9kaXNwYXRjaGVyLnRyYW5zZmVyX2RhdGEo
cmVxdWVzdCkKLSAgICBleGNlcHQgaGFuZHNoYWtlLkFib3J0ZWRCeVVzZXJFeGNlcHRpb24sIGU6
CisgICAgZXhjZXB0IGhhbmRzaGFrZS5BYm9ydGVkQnlVc2VyRXhjZXB0aW9uIGFzIGU6CiAgICAg
ICAgIHJlcXVlc3QubG9nX2Vycm9yKCdtb2RfcHl3ZWJzb2NrZXQ6IEFib3J0ZWQ6ICVzJyAlIGUs
CiAgICAgICAgICAgICAgICAgICAgICAgICAgIGFwYWNoZS5BUExPR19JTkZPKQotICAgIGV4Y2Vw
dCBFeGNlcHRpb24sIGU6CisgICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBlOgogICAgICAgICAjIERp
c3BhdGNoRXhjZXB0aW9uIGNhbiBhbHNvIGJlIHRocm93biBpZiBzb21ldGhpbmcgaXMgd3Jvbmcg
aW4KICAgICAgICAgIyBweXdlYnNvY2tldCBjb2RlLiBJdCdzIGNhdWdodCBoZXJlLCB0aGVuLgog
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3B5d2Vic29ja2V0L21vZF9weXdlYnNvY2tldC9tZW1vcml6aW5nZmlsZS5weSBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2Nr
ZXQvbW9kX3B5d2Vic29ja2V0L21lbW9yaXppbmdmaWxlLnB5CmluZGV4IDA3YmNiZDU4NzZjYzM1
NTMyOGViZjVjN2E5Y2Q5ODg1MGFiYjhjNmEuLmM3YWZjYzE1N2VkN2ExZDk0MmNiZjQzNThhZmEw
NDU0ODQ2ZjAxZDQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvbW9kX3B5d2Vic29ja2V0L21lbW9yaXppbmdm
aWxlLnB5CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvcHl3ZWJzb2NrZXQvbW9kX3B5d2Vic29ja2V0L21lbW9yaXppbmdmaWxlLnB5CkBAIC0x
LDUgKzEsMyBAQAotIyEvdXNyL2Jpbi9lbnYgcHl0aG9uCi0jCiAjIENvcHlyaWdodCAyMDExLCBH
b29nbGUgSW5jLgogIyBBbGwgcmlnaHRzIHJlc2VydmVkLgogIwpAQCAtNjIsNyArNjAsNyBAQCBj
bGFzcyBNZW1vcml6aW5nRmlsZShvYmplY3QpOgogCiAgICAgZGVmIF9fZ2V0YXR0cmlidXRlX18o
c2VsZiwgbmFtZSk6CiAgICAgICAgICIiIlJldHVybiBhIGZpbGUgYXR0cmlidXRlLgotICAgICAg
ICAKKwogICAgICAgICBSZXR1cm5zIHRoZSB2YWx1ZSBvdmVycmlkZGVuIGJ5IHRoaXMgY2xhc3Mg
Zm9yIHNvbWUgYXR0cmlidXRlcywKICAgICAgICAgYW5kIGZvcndhcmRzIHRoZSBjYWxsIHRvIF9m
aWxlIGZvciB0aGUgb3RoZXIgYXR0cmlidXRlcy4KICAgICAgICAgIiIiCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29j
a2V0L21vZF9weXdlYnNvY2tldC9zdGFuZGFsb25lLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9tb2RfcHl3ZWJzb2NrZXQv
c3RhbmRhbG9uZS5weQpvbGQgbW9kZSAxMDA2NDQKbmV3IG1vZGUgMTAwNzU1CmluZGV4IDg0YjI0
NzBjOGY5NzNhZDRjNDFiYTE4MTY0YTRjYmM3N2E3MWM3NjYuLjJjODc4NjA2NDg4OWU4NGYxMTVh
NzU2NzlhYjcxYzc0NDY2YTBjNjIKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9tb2RfcHl3ZWJzb2NrZXQvc3RhbmRhbG9u
ZS5weQorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3B5d2Vic29ja2V0L21vZF9weXdlYnNvY2tldC9zdGFuZGFsb25lLnB5CkBAIC0zNjksNyAr
MzY5LDcgQEAgZGVmIF9hbGlhc19oYW5kbGVycyhkaXNwYXRjaGVyLCB3ZWJzb2NrX2hhbmRsZXJz
X21hcF9maWxlKToKICAgICAgICAgZm9yIGxpbmUgaW4gZnA6CiAgICAgICAgICAgICBpZiBsaW5l
WzBdID09ICcjJyBvciBsaW5lLmlzc3BhY2UoKToKICAgICAgICAgICAgICAgICBjb250aW51ZQot
ICAgICAgICAgICAgbSA9IHJlLm1hdGNoKCcoXFMrKVxzKyhcUyspJywgbGluZSkKKyAgICAgICAg
ICAgIG0gPSByZS5tYXRjaChyJyhcUyspXHMrKFxTKyknLCBsaW5lKQogICAgICAgICAgICAgaWYg
bm90IG06CiAgICAgICAgICAgICAgICAgbG9nZ2luZy53YXJuaW5nKCdXcm9uZyBmb3JtYXQgaW4g
bWFwIGZpbGU6JyArIGxpbmUpCiAgICAgICAgICAgICAgICAgY29udGludWUKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJz
b2NrZXQvbW9kX3B5d2Vic29ja2V0L3czYy1pbXBvcnQubG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9tb2RfcHl3ZWJzb2Nr
ZXQvdzNjLWltcG9ydC5sb2cKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGJjMjNhNWQy
OGI3NWJjZDljNGE1ZGUwY2RjOGJkNWQ2NTM3ODU2OWEuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9tb2RfcHl3ZWJzb2NrZXQvdzNjLWltcG9ydC5s
b2cKKysrIC9kZXYvbnVsbApAQCAtMSwzMyArMCwwIEBACi1UaGUgdGVzdHMgaW4gdGhpcyBkaXJl
Y3Rvcnkgd2VyZSBpbXBvcnRlZCBmcm9tIHRoZSBXM0MgcmVwb3NpdG9yeS4KLURvIE5PVCBtb2Rp
ZnkgdGhlc2UgdGVzdHMgZGlyZWN0bHkgaW4gV2ViS2l0LgotSW5zdGVhZCwgY3JlYXRlIGEgcHVs
bCByZXF1ZXN0IG9uIHRoZSBXUFQgZ2l0aHViOgotCWh0dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxh
dGZvcm0tdGVzdHMvd3B0Ci0KLVRoZW4gcnVuIHRoZSBUb29scy9TY3JpcHRzL2ltcG9ydC13M2Mt
dGVzdHMgaW4gV2ViS2l0IHRvIHJlaW1wb3J0Ci0KLURvIE5PVCBtb2RpZnkgb3IgcmVtb3ZlIHRo
aXMgZmlsZS4KLQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1Qcm9wZXJ0aWVzIHJlcXVpcmluZyB2ZW5kb3Ig
cHJlZml4ZXM6Ci1Ob25lCi1Qcm9wZXJ0eSB2YWx1ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhl
czoKLU5vbmUKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotTGlzdCBvZiBmaWxlczoKLS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L21vZF9weXdl
YnNvY2tldC9fX2luaXRfXy5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvbW9kX3B5d2Vic29ja2V0L19zdHJlYW1fYmFzZS5w
eQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3
ZWJzb2NrZXQvbW9kX3B5d2Vic29ja2V0L19zdHJlYW1faGl4aWU3NS5weQotL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvbW9kX3B5
d2Vic29ja2V0L19zdHJlYW1faHliaS5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvbW9kX3B5d2Vic29ja2V0L2NvbW1vbi5w
eQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3
ZWJzb2NrZXQvbW9kX3B5d2Vic29ja2V0L2Rpc3BhdGNoLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9tb2RfcHl3ZWJzb2Nr
ZXQvZXh0ZW5zaW9ucy5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvbW9kX3B5d2Vic29ja2V0L2Zhc3RfbWFza2luZy5pCi0v
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNv
Y2tldC9tb2RfcHl3ZWJzb2NrZXQvaGVhZGVycGFyc2VyaGFuZGxlci5weQotL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvbW9kX3B5
d2Vic29ja2V0L2h0dHBfaGVhZGVyX3V0aWwucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L21vZF9weXdlYnNvY2tldC9tZW1v
cml6aW5nZmlsZS5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvcHl3ZWJzb2NrZXQvbW9kX3B5d2Vic29ja2V0L21zZ3V0aWwucHkKLS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L21v
ZF9weXdlYnNvY2tldC9tdXgucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L21vZF9weXdlYnNvY2tldC9zdGFuZGFsb25lLnB5
Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdl
YnNvY2tldC9tb2RfcHl3ZWJzb2NrZXQvc3RyZWFtLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9tb2RfcHl3ZWJzb2NrZXQv
dXRpbC5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvcHl3ZWJzb2NrZXQvbW9kX3B5d2Vic29ja2V0L3hocl9iZW5jaG1hcmtfaGFuZGxlci5weQpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy9weXdlYnNvY2tldC9zZXR1cC5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvc2V0dXAucHkKb2xkIG1vZGUgMTAwNjQ0
Cm5ldyBtb2RlIDEwMDc1NQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9zcmMvQ09QWUlORyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3Jj
L0NPUFlJTkcKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDk4OWQwMmU0Y2QwOTIzNzgw
NmY3ZGY4YmVhZWNjNjkxNTI3MzQyOGUuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy9weXdlYnNvY2tldC9zcmMvQ09QWUlORworKysgL2Rldi9udWxsCkBAIC0xLDI4ICsw
LDAgQEAKLUNvcHlyaWdodCAyMDEyLCBHb29nbGUgSW5jLgotQWxsIHJpZ2h0cyByZXNlcnZlZC4K
LQotUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0Ci1tb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCi1tZXQ6Ci0KLSAgICAqIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci1ub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0g
ICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlCi1jb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyCi1pbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCi1kaXN0cmlidXRpb24uCi0gICAgKiBOZWl0aGVyIHRo
ZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCi1jb250cmlidXRvcnMg
bWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQot
dGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4K
LQotVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5E
IENPTlRSSUJVVE9SUwotIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKLUxJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgotQSBQQVJUSUNVTEFSIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKLU9XTkVS
IE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLAotU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVAotTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCi1EQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKLVRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQK
LShJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRQotT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3JjL01BTklGRVNU
LmluIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9w
eXdlYnNvY2tldC9zcmMvTUFOSUZFU1QuaW4KZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDE5MjU2ODgyYzU2ZmViNzI4MTJjOTljOGE4Mzc5OTc5ZTYzZTRhMGMuLjAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9zcmMvTUFOSUZFU1QuaW4KKysr
IC9kZXYvbnVsbApAQCAtMSw2ICswLDAgQEAKLWluY2x1ZGUgQ09QWUlORwotaW5jbHVkZSBNQU5J
RkVTVC5pbgotaW5jbHVkZSBSRUFETUUKLXJlY3Vyc2l2ZS1pbmNsdWRlIGV4YW1wbGUgKi5weQot
cmVjdXJzaXZlLWluY2x1ZGUgbW9kX3B5d2Vic29ja2V0ICoucHkKLXJlY3Vyc2l2ZS1pbmNsdWRl
IHRlc3QgKi5weQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9zcmMvUkVBRE1FIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9zcmMvUkVBRE1F
CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjOGM3NThmNWVlZjRjNzMxODkyNjQxZGUz
MzNlNWQ3NWQxMGEzZTU2Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
cHl3ZWJzb2NrZXQvc3JjL1JFQURNRQorKysgL2Rldi9udWxsCkBAIC0xLDE3ICswLDAgQEAKLUlO
U1RBTEwKLQotVG8gaW5zdGFsbCB0aGlzIHBhY2thZ2UgdG8gdGhlIHN5c3RlbSwgcnVuIHRoaXM6
Ci0kIHB5dGhvbiBzZXR1cC5weSBidWlsZAotJCBzdWRvIHB5dGhvbiBzZXR1cC5weSBpbnN0YWxs
Ci0KLVRvIGluc3RhbGwgdGhpcyBwYWNrYWdlIGFzIGEgbm9ybWFsIHVzZXIsIHJ1biB0aGlzIGlu
c3RlYWQ6Ci0kIHB5dGhvbiBzZXR1cC5weSBidWlsZAotJCBweXRob24gc2V0dXAucHkgaW5zdGFs
bCAtLXVzZXIKLQotTEFVTkNICi0KLVRvIHVzZSBweXdlYnNvY2tldCBhcyBBcGFjaGUgbW9kdWxl
LCBydW4gdGhpcyB0byByZWFkIHRoZSBkb2N1bWVudDoKLSQgcHlkb2MgbW9kX3B5d2Vic29ja2V0
Ci0KLVRvIHVzZSBweXdlYnNvY2tldCBhcyBzdGFuZGFsb25lIHNlcnZlciwgcnVuIHRoaXMgdG8g
cmVhZCB0aGUgZG9jdW1lbnQ6Ci0kIHB5ZG9jIG1vZF9weXdlYnNvY2tldC5zdGFuZGFsb25lCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3B5d2Vic29ja2V0L3NyYy9leGFtcGxlL2Fib3J0X2hhbmRzaGFrZV93c2gucHkgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0
L3NyYy9leGFtcGxlL2Fib3J0X2hhbmRzaGFrZV93c2gucHkKZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwODAyM2ExZmU5MWUyZjI5NzdiMTYzZjk3N2RhZTY4NTAwMDlhYTQuLjAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9zcmMvZXhhbXBs
ZS9hYm9ydF9oYW5kc2hha2Vfd3NoLnB5CisrKyAvZGV2L251bGwKQEAgLTEsNDMgKzAsMCBAQAot
IyBDb3B5cmlnaHQgMjAxMiwgR29vZ2xlIEluYy4KLSMgQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSMK
LSMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0Ci0jIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKLSMgbWV0OgotIwotIyAgICAgKiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAot
IyBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCi0jICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUKLSMgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgotIyBpbiB0aGUgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCi0jIGRpc3RyaWJ1dGlvbi4K
LSMgICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9m
IGl0cwotIyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHBy
b2R1Y3RzIGRlcml2ZWQgZnJvbQotIyB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJp
b3Igd3JpdHRlbiBwZXJtaXNzaW9uLgotIwotIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCi0jICJBUyBJUyIgQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCi0jIExJ
TUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUgotIyBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAotIyBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKLSMgU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAotIyBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwKLSMgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCi0jIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSMgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
Ci0jIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCi0KLQotZnJvbSBtb2RfcHl3ZWJzb2NrZXQgaW1wb3J0IGhhbmRzaGFr
ZQotCi0KLWRlZiB3ZWJfc29ja2V0X2RvX2V4dHJhX2hhbmRzaGFrZShyZXF1ZXN0KToKLSAgICBy
YWlzZSBoYW5kc2hha2UuQWJvcnRlZEJ5VXNlckV4Y2VwdGlvbigKLSAgICAgICAgIkFib3J0ZWQg
aW4gd2ViX3NvY2tldF9kb19leHRyYV9oYW5kc2hha2UiKQotCi0KLWRlZiB3ZWJfc29ja2V0X3Ry
YW5zZmVyX2RhdGEocmVxdWVzdCk6Ci0gICAgcGFzcwotCi0KLSMgdmk6c3RzPTQgc3c9NCBldApk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy9weXdlYnNvY2tldC9zcmMvZXhhbXBsZS9hYm9ydF93c2gucHkgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3NyYy9leGFt
cGxlL2Fib3J0X3dzaC5weQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMmJiZjAwNWY2
YTM3YzYwOWUxNmFiZGU0ZGY5NDAyNDI2OGQwZGFlZS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3NyYy9leGFtcGxlL2Fib3J0X3dzaC5weQorKysg
L2Rldi9udWxsCkBAIC0xLDQzICswLDAgQEAKLSMgQ29weXJpZ2h0IDIwMTIsIEdvb2dsZSBJbmMu
Ci0jIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0jCi0jIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotIyBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJl
Ci0jIG1ldDoKLSMKLSMgICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSMgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotIyAgICAgKiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCi0jIGNvcHlyaWdodCBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIKLSMgaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZQotIyBkaXN0cmlidXRpb24uCi0jICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2Yg
R29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKLSMgY29udHJpYnV0b3JzIG1heSBiZSB1
c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KLSMgdGhpcyBz
b2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLSMKLSMg
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENP
TlRSSUJVVE9SUwotIyAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVAotIyBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKLSMgQSBQQVJUSUNVTEFSIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKLSMg
T1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsCi0jIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QKLSMgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCi0jIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQot
IyBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUCi0jIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotCi0KLWZyb20gbW9k
X3B5d2Vic29ja2V0IGltcG9ydCBoYW5kc2hha2UKLQotCi1kZWYgd2ViX3NvY2tldF9kb19leHRy
YV9oYW5kc2hha2UocmVxdWVzdCk6Ci0gICAgcGFzcwotCi0KLWRlZiB3ZWJfc29ja2V0X3RyYW5z
ZmVyX2RhdGEocmVxdWVzdCk6Ci0gICAgcmFpc2UgaGFuZHNoYWtlLkFib3J0ZWRCeVVzZXJFeGNl
cHRpb24oCi0gICAgICAgICJBYm9ydGVkIGluIHdlYl9zb2NrZXRfdHJhbnNmZXJfZGF0YSIpCi0K
LQotIyB2aTpzdHM9NCBzdz00IGV0CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3NyYy9leGFtcGxlL2FycmF5
YnVmZmVyX2JlbmNobWFyay5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9zcmMvZXhhbXBsZS9hcnJheWJ1ZmZlcl9iZW5j
aG1hcmsuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggODY5Y2Q3ZTFlZTY1M2Q1
OWYwNGI4MDJmZjM0YzhkMDgxMzE3Y2E4OS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3B5d2Vic29ja2V0L3NyYy9leGFtcGxlL2FycmF5YnVmZmVyX2JlbmNobWFyay5o
dG1sCisrKyAvZGV2L251bGwKQEAgLTEsMTM0ICswLDAgQEAKLTwhLS0KLUNvcHlyaWdodCAyMDEz
LCBHb29nbGUgSW5jLgotQWxsIHJpZ2h0cyByZXNlcnZlZC4KLQotUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci1tb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMgYXJlCi1tZXQ6Ci0KLSAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci1ub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gICAgKiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCi1jb3B5cmlnaHQgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCi1p
biB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlCi1kaXN0cmlidXRpb24uCi0gICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMu
IG5vciB0aGUgbmFtZXMgb2YgaXRzCi1jb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3Jz
ZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQotdGhpcyBzb2Z0d2FyZSB3aXRob3V0
IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLQotVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwotIkFTIElT
IiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QKLUxJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUgotQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKLU9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAotU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAotTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsCi1EQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKLVRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4g
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLShJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KLS0tPgotCi08aHRtbD4KLTxoZWFkPgotPHRpdGxlPkFycmF5QnVmZmVyIGJlbmNobWFy
azwvdGl0bGU+Ci08c2NyaXB0IHNyYz0idXRpbC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0PgotdmFy
IFBSSU5UX1NJWkUgPSB0cnVlOwotCi0vLyBJbml0aWFsIHNpemUgb2YgYXJyYXlzLgotdmFyIFNU
QVJUX1NJWkUgPSAxMCAqIDEwMjQ7Ci0vLyBTdG9wcyBiZW5jaG1hcmsgd2hlbiB0aGUgc2l6ZSBv
ZiBhbiBhcnJheSBleGNlZWRzIHRoaXMgdGhyZXNob2xkLgotdmFyIFNUT1BfVEhSRVNIT0xEID0g
MTAwMDAwICogMTAyNDsKLS8vIElmIHRoZSBzaXplIG9mIGVhY2ggYXJyYXkgaXMgc21hbGwsIHdy
aXRlL3JlYWQgdGhlIGFycmF5IG11bHRpcGxlIHRpbWVzCi0vLyB1bnRpbCB0aGUgc3VtIG9mIHNp
emVzIHJlYWNoZXMgdGhpcyB0aHJlc2hvbGQuCi12YXIgTUlOX1RPVEFMID0gMTAwMDAwICogMTAy
NDsKLXZhciBNVUxUSVBMSUVSUyA9IFs1LCAyXTsKLQotLy8gUmVwZWF0IGJlbmNobWFyayBmb3Ig
c2V2ZXJhbCB0aW1lcyB0byBtZWFzdXJlIHBlcmZvcm1hbmNlIG9mIG9wdGltaXplZAotLy8gKHN1
Y2ggYXMgSklUKSBydW4uCi12YXIgUkVQRUFUX0ZPUl9XQVJNVVAgPSAzOwotCi1mdW5jdGlvbiB3
cml0ZUJlbmNobWFyayhzaXplLCBtaW5Ub3RhbCkgewotICB2YXIgdG90YWxTaXplID0gMDsKLSAg
d2hpbGUgKHRvdGFsU2l6ZSA8IG1pblRvdGFsKSB7Ci0gICAgdmFyIGFycmF5QnVmZmVyID0gbmV3
IEFycmF5QnVmZmVyKHNpemUpOwotCi0gICAgLy8gV3JpdGUgJ2Ency4KLSAgICBmaWxsQXJyYXlC
dWZmZXIoYXJyYXlCdWZmZXIsIDB4NjEpOwotCi0gICAgdG90YWxTaXplICs9IHNpemU7Ci0gIH0K
LSAgcmV0dXJuIHRvdGFsU2l6ZTsKLX0KLQotZnVuY3Rpb24gcmVhZEJlbmNobWFyayhzaXplLCBt
aW5Ub3RhbCkgewotICB2YXIgdG90YWxTaXplID0gMDsKLSAgd2hpbGUgKHRvdGFsU2l6ZSA8IG1p
blRvdGFsKSB7Ci0gICAgdmFyIGFycmF5QnVmZmVyID0gbmV3IEFycmF5QnVmZmVyKHNpemUpOwot
Ci0gICAgaWYgKCF2ZXJpZnlBcnJheUJ1ZmZlcihhcnJheUJ1ZmZlciwgMHgwMCkpIHsKLSAgICAg
IHF1ZXVlTG9nKCdWZXJpZmljYXRpb24gZmFpbGVkJyk7Ci0gICAgICByZXR1cm4gLTE7Ci0gICAg
fQotCi0gICAgdG90YWxTaXplICs9IHNpemU7Ci0gIH0KLSAgcmV0dXJuIHRvdGFsU2l6ZTsKLX0K
LQotZnVuY3Rpb24gcnVuQmVuY2htYXJrKGJlbmNobWFya0Z1bmN0aW9uLAotICAgICAgICAgICAg
ICAgICAgICAgIHNpemUsCi0gICAgICAgICAgICAgICAgICAgICAgc3RvcFRocmVzaG9sZCwKLSAg
ICAgICAgICAgICAgICAgICAgICBtaW5Ub3RhbCwKLSAgICAgICAgICAgICAgICAgICAgICBtdWx0
aXBsaWVycywKLSAgICAgICAgICAgICAgICAgICAgICBtdWx0aXBsaWVySW5kZXgpIHsKLSAgd2hp
bGUgKHNpemUgPD0gc3RvcFRocmVzaG9sZCkgewotICAgIHZhciBtYXhTcGVlZCA9IDA7Ci0KLSAg
ICBmb3IgKHZhciBpID0gMDsgaSA8IFJFUEVBVF9GT1JfV0FSTVVQOyArK2kpIHsKLSAgICAgIHZh
ciBzdGFydFRpbWVJbk1zID0gZ2V0VGltZVN0YW1wKCk7Ci0KLSAgICAgIHZhciB0b3RhbFNpemUg
PSBiZW5jaG1hcmtGdW5jdGlvbihzaXplLCBtaW5Ub3RhbCk7Ci0KLSAgICAgIG1heFNwZWVkID0g
TWF0aC5tYXgobWF4U3BlZWQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgIGNhbGN1bGF0ZVNw
ZWVkSW5LQih0b3RhbFNpemUsIHN0YXJ0VGltZUluTXMpKTsKLSAgICB9Ci0gICAgcXVldWVMb2co
Zm9ybWF0UmVzdWx0SW5LaUIoc2l6ZSwgbWF4U3BlZWQsIFBSSU5UX1NJWkUpKTsKLQotICAgIHNp
emUgKj0gbXVsdGlwbGllcnNbbXVsdGlwbGllckluZGV4XTsKLSAgICBtdWx0aXBsaWVySW5kZXgg
PSAobXVsdGlwbGllckluZGV4ICsgMSkgJSBtdWx0aXBsaWVycy5sZW5ndGg7Ci0gIH0KLX0KLQot
ZnVuY3Rpb24gcnVuQmVuY2htYXJrcygpIHsKLSAgcXVldWVMb2coJ01lc3NhZ2Ugc2l6ZSBpbiBL
aUIsIFNwZWVkIGluIGtCL3MnKTsKLQotICBxdWV1ZUxvZygnV3JpdGUgYmVuY2htYXJrJyk7Ci0g
IHJ1bkJlbmNobWFyaygKLSAgICAgIHdyaXRlQmVuY2htYXJrLCBTVEFSVF9TSVpFLCBTVE9QX1RI
UkVTSE9MRCwgTUlOX1RPVEFMLCBNVUxUSVBMSUVSUywgMCk7Ci0gIHF1ZXVlTG9nKCdGaW5pc2hl
ZCcpOwotCi0gIHF1ZXVlTG9nKCdSZWFkIGJlbmNobWFyaycpOwotICBydW5CZW5jaG1hcmsoCi0g
ICAgICByZWFkQmVuY2htYXJrLCBTVEFSVF9TSVpFLCBTVE9QX1RIUkVTSE9MRCwgTUlOX1RPVEFM
LCBNVUxUSVBMSUVSUywgMCk7Ci0gIGFkZFRvTG9nKCdGaW5pc2hlZCcpOwotfQotCi1mdW5jdGlv
biBpbml0KCkgewotICBsb2dCb3ggPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbG9nJyk7Ci0K
LSAgcXVldWVMb2cod2luZG93Lm5hdmlnYXRvci51c2VyQWdlbnQudG9Mb3dlckNhc2UoKSk7Ci0K
LSAgYWRkVG9Mb2coJ1N0YXJ0ZWQuLi4nKTsKLQotICBzZXRUaW1lb3V0KHJ1bkJlbmNobWFya3Ms
IDApOwotfQotCi08L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5IG9ubG9hZD0iaW5pdCgpIj4KLTx0
ZXh0YXJlYQotICAgIGlkPSJsb2ciIHJvd3M9IjUwIiBzdHlsZT0id2lkdGg6IDEwMCUiIHJlYWRv
bmx5PjwvdGV4dGFyZWE+Ci08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3NyYy9l
eGFtcGxlL2JlbmNoX3dzaC5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3JjL2V4YW1wbGUvYmVuY2hfd3NoLnB5CmRlbGV0
ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1MDY3Y2E3ZDg5NTVmYzE2M2Q1MDAxY2Q4ODEyZTZh
ZTIwYzE2MjkzLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJz
b2NrZXQvc3JjL2V4YW1wbGUvYmVuY2hfd3NoLnB5CisrKyAvZGV2L251bGwKQEAgLTEsNjAgKzAs
MCBAQAotIyBDb3B5cmlnaHQgMjAxMSwgR29vZ2xlIEluYy4KLSMgQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KLSMKLSMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0Ci0jIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKLSMgbWV0OgotIwotIyAgICAgKiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAotIyBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCi0jICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUKLSMgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgotIyBpbiB0aGUgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCi0jIGRpc3RyaWJ1
dGlvbi4KLSMgICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5h
bWVzIG9mIGl0cwotIyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9t
b3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQotIyB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lm
aWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgotIwotIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCi0jICJBUyBJUyIg
QU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
Ci0jIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUgotIyBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAotIyBPV05FUiBPUiBDT05UUklCVVRPUlMg
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKLSMgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VAotIyBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwKLSMgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCi0jIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSMgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFCi0jIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0KLQotIiIiQSBzaW1wbGUgbG9hZCB0ZXN0ZXIgZm9yIFdl
YlNvY2tldCBjbGllbnRzLgotCi1BIGNsaWVudCBwcm9ncmFtIHNlbmRzIGEgbWVzc2FnZSBmb3Jt
YXR0ZWQgYXMgIjx0aW1lPiA8Y291bnQ+IDxtZXNzYWdlPiIgdG8KLXRoaXMgaGFuZGxlci4gVGhp
cyBoYW5kbGVyIHN0YXJ0cyBzZW5kaW5nIHRvdGFsIDxjb3VudD4gV2ViU29ja2V0IG1lc3NhZ2Vz
Ci1jb250YWluaW5nIDxtZXNzYWdlPiBldmVyeSA8dGltZT4gc2Vjb25kcy4gPHRpbWU+IGNhbiBi
ZSBhIGZsb2F0aW5nIHBvaW50Ci12YWx1ZS4gPGNvdW50PiBtdXN0IGJlIGFuIGludGVnZXIgdmFs
dWUuCi0iIiIKLQotCi1pbXBvcnQgdGltZQotCi0KLWRlZiB3ZWJfc29ja2V0X2RvX2V4dHJhX2hh
bmRzaGFrZShyZXF1ZXN0KToKLSAgICBwYXNzICAjIEFsd2F5cyBhY2NlcHQuCi0KLQotZGVmIHdl
Yl9zb2NrZXRfdHJhbnNmZXJfZGF0YShyZXF1ZXN0KToKLSAgICBsaW5lID0gcmVxdWVzdC53c19z
dHJlYW0ucmVjZWl2ZV9tZXNzYWdlKCkKLSAgICBwYXJ0cyA9IGxpbmUuc3BsaXQoJyAnKQotICAg
IGlmIGxlbihwYXJ0cykgIT0gMzoKLSAgICAgICAgcmFpc2UgVmFsdWVFcnJvcignQmFkIHBhcmFt
ZXRlciBmb3JtYXQnKQotICAgIHdhaXQgPSBmbG9hdChwYXJ0c1swXSkKLSAgICBjb3VudCA9IGlu
dChwYXJ0c1sxXSkKLSAgICBtZXNzYWdlID0gcGFydHNbMl0KLSAgICBmb3IgaSBpbiB4cmFuZ2Uo
Y291bnQpOgotICAgICAgICByZXF1ZXN0LndzX3N0cmVhbS5zZW5kX21lc3NhZ2UobWVzc2FnZSkK
LSAgICAgICAgdGltZS5zbGVlcCh3YWl0KQotCi0KLSMgdmk6c3RzPTQgc3c9NCBldApkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9w
eXdlYnNvY2tldC9zcmMvZXhhbXBsZS9iZW5jaG1hcmsuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3JjL2V4YW1wbGUv
YmVuY2htYXJrLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDNhMjE4MTczYTBm
MWYzM2E0ZWQ0NjJlMjFmODZjMWI4ZDQ4YmE2MjAuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy9weXdlYnNvY2tldC9zcmMvZXhhbXBsZS9iZW5jaG1hcmsuaHRtbAorKysg
L2Rldi9udWxsCkBAIC0xLDIwMyArMCwwIEBACi08IS0tCi1Db3B5cmlnaHQgMjAxMywgR29vZ2xl
IEluYy4KLUFsbCByaWdodHMgcmVzZXJ2ZWQuCi0KLVJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQot
bWV0OgotCi0gICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAotbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQotY29weXJpZ2h0IG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgotaW4gdGhlIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQotZGlz
dHJpYnV0aW9uLgotICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhl
IG5hbWVzIG9mIGl0cwotY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJv
bW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KLXRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZp
YyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0KLVRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKLSJBUyBJUyIgQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCi1MSU1J
VEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IKLUEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBUSEUgQ09QWVJJR0hUCi1PV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKLVNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKLUxJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LAotREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZCi1USEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0oSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLU9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0t
LT4KLQotPGh0bWw+Ci08aGVhZD4KLTx0aXRsZT5XZWJTb2NrZXQgYmVuY2htYXJrPC90aXRsZT4K
LTxzY3JpcHQgc3JjPSJ1dGlsX21haW4uanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9InV0aWwu
anMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9ImJlbmNobWFyay5qcyI+PC9zY3JpcHQ+Ci08c2Ny
aXB0PgotdmFyIGFkZHJlc3NCb3ggPSBudWxsOwotCi1mdW5jdGlvbiBnZXRDb25maWcoKSB7Ci0g
IHJldHVybiB7Ci0gICAgcHJlZml4VXJsOiBhZGRyZXNzQm94LnZhbHVlLAotICAgIHByaW50U2l6
ZTogZ2V0Qm9vbEZyb21DaGVja0JveCgncHJpbnRzaXplJyksCi0gICAgbnVtU29ja2V0czogZ2V0
SW50RnJvbUlucHV0KCdudW1zb2NrZXRzJyksCi0gICAgLy8gSW5pdGlhbCBzaXplIG9mIG1lc3Nh
Z2VzLgotICAgIG51bUl0ZXJhdGlvbnM6IGdldEludEZyb21JbnB1dCgnbnVtaXRlcmF0aW9ucycp
LAotICAgIG51bVdhcm1VcEl0ZXJhdGlvbnM6IGdldEludEZyb21JbnB1dCgnbnVtd2FybXVwaXRl
cmF0aW9ucycpLAotICAgIHN0YXJ0U2l6ZTogZ2V0SW50RnJvbUlucHV0KCdzdGFydHNpemUnKSwK
LSAgICAvLyBTdG9wcyBiZW5jaG1hcmsgd2hlbiB0aGUgc2l6ZSBvZiBtZXNzYWdlIGV4Y2VlZHMg
dGhpcyB0aHJlc2hvbGQuCi0gICAgc3RvcFRocmVzaG9sZDogZ2V0SW50RnJvbUlucHV0KCdzdG9w
dGhyZXNob2xkJyksCi0gICAgLy8gSWYgdGhlIHNpemUgb2YgZWFjaCBtZXNzYWdlIGlzIHNtYWxs
LCBzZW5kL3JlY2VpdmUgbXVsdGlwbGUgbWVzc2FnZXMKLSAgICAvLyB1bnRpbCB0aGUgc3VtIG9m
IHNpemVzIHJlYWNoZXMgdGhpcyB0aHJlc2hvbGQuCi0gICAgbWluVG90YWw6IGdldEludEZyb21J
bnB1dCgnbWludG90YWwnKSwKLSAgICBtdWx0aXBsaWVyczogZ2V0SW50QXJyYXlGcm9tSW5wdXQo
J211bHRpcGxpZXJzJyksCi0gICAgdmVyaWZ5RGF0YTogZ2V0Qm9vbEZyb21DaGVja0JveCgndmVy
aWZ5ZGF0YScpCi0gIH07Ci19Ci0KLXZhciB3b3JrZXIgPSBuZXcgV29ya2VyKCdiZW5jaG1hcmsu
anMnKTsKLXdvcmtlci5vbm1lc3NhZ2UgPSBvbk1lc3NhZ2U7Ci0KLWZ1bmN0aW9uIG9uU2VuZEJl
bmNobWFyaygpIHsKLSAgdmFyIGNvbmZpZyA9IGdldENvbmZpZygpOwotCi0gIGlmIChnZXRCb29s
RnJvbUNoZWNrQm94KCd3b3JrZXInKSkgewotICAgIHdvcmtlci5wb3N0TWVzc2FnZSh7dHlwZTog
J3NlbmRCZW5jaG1hcmsnLCBjb25maWc6IGNvbmZpZ30pOwotICB9IGVsc2UgewotICAgIGNvbmZp
Zy5hZGRUb0xvZyA9IGFkZFRvTG9nOwotICAgIGNvbmZpZy5hZGRUb1N1bW1hcnkgPSBhZGRUb1N1
bW1hcnk7Ci0gICAgY29uZmlnLm1lYXN1cmVWYWx1ZSA9IG1lYXN1cmVWYWx1ZTsKLSAgICBzZW5k
QmVuY2htYXJrKGNvbmZpZyk7Ci0gIH0KLX0KLQotZnVuY3Rpb24gb25SZWNlaXZlQmVuY2htYXJr
KCkgewotICB2YXIgY29uZmlnID0gZ2V0Q29uZmlnKCk7Ci0KLSAgaWYgKGdldEJvb2xGcm9tQ2hl
Y2tCb3goJ3dvcmtlcicpKSB7Ci0gICAgd29ya2VyLnBvc3RNZXNzYWdlKHt0eXBlOiAncmVjZWl2
ZUJlbmNobWFyaycsIGNvbmZpZzogY29uZmlnfSk7Ci0gIH0gZWxzZSB7Ci0gICAgY29uZmlnLmFk
ZFRvTG9nID0gYWRkVG9Mb2c7Ci0gICAgY29uZmlnLmFkZFRvU3VtbWFyeSA9IGFkZFRvU3VtbWFy
eTsKLSAgICBjb25maWcubWVhc3VyZVZhbHVlID0gbWVhc3VyZVZhbHVlOwotICAgIHJlY2VpdmVC
ZW5jaG1hcmsoY29uZmlnKTsKLSAgfQotfQotCi1mdW5jdGlvbiBvbkJhdGNoQmVuY2htYXJrKCkg
ewotICB2YXIgY29uZmlnID0gZ2V0Q29uZmlnKCk7Ci0KLSAgaWYgKGdldEJvb2xGcm9tQ2hlY2tC
b3goJ3dvcmtlcicpKSB7Ci0gICAgd29ya2VyLnBvc3RNZXNzYWdlKHt0eXBlOiAnYmF0Y2hCZW5j
aG1hcmsnLCBjb25maWc6IGNvbmZpZ30pOwotICB9IGVsc2UgewotICAgIGNvbmZpZy5hZGRUb0xv
ZyA9IGFkZFRvTG9nOwotICAgIGNvbmZpZy5hZGRUb1N1bW1hcnkgPSBhZGRUb1N1bW1hcnk7Ci0g
ICAgY29uZmlnLm1lYXN1cmVWYWx1ZSA9IG1lYXN1cmVWYWx1ZTsKLSAgICBiYXRjaEJlbmNobWFy
ayhjb25maWcpOwotICB9Ci19Ci0KLWZ1bmN0aW9uIG9uU3RvcCgpIHsKLSAgdmFyIGNvbmZpZyA9
IGdldENvbmZpZygpOwotCi0gIGlmIChnZXRCb29sRnJvbUNoZWNrQm94KCd3b3JrZXInKSkgewot
ICAgIHdvcmtlci5wb3N0TWVzc2FnZSh7dHlwZTogJ3N0b3AnLCBjb25maWc6IGNvbmZpZ30pOwot
ICB9IGVsc2UgewotICAgIGNvbmZpZy5hZGRUb0xvZyA9IGFkZFRvTG9nOwotICAgIGNvbmZpZy5h
ZGRUb1N1bW1hcnkgPSBhZGRUb1N1bW1hcnk7Ci0gICAgY29uZmlnLm1lYXN1cmVWYWx1ZSA9IG1l
YXN1cmVWYWx1ZTsKLSAgICBzdG9wKGNvbmZpZyk7Ci0gIH0KLX0KLWZ1bmN0aW9uIGluaXQoKSB7
Ci0gIGFkZHJlc3NCb3ggPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYWRkcmVzcycpOwotICBs
b2dCb3ggPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbG9nJyk7Ci0KLSAgc3VtbWFyeUJveCA9
IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdzdW1tYXJ5Jyk7Ci0KLSAgdmFyIHNjaGVtZSA9IHdp
bmRvdy5sb2NhdGlvbi5wcm90b2NvbCA9PSAnaHR0cHM6JyA/ICd3c3M6Ly8nIDogJ3dzOi8vJzsK
LSAgdmFyIGRlZmF1bHRBZGRyZXNzID0gc2NoZW1lICsgd2luZG93LmxvY2F0aW9uLmhvc3QgKyAn
L2JlbmNobWFya19oZWxwZXInOwotCi0gIGFkZHJlc3NCb3gudmFsdWUgPSBkZWZhdWx0QWRkcmVz
czsKLQotICBhZGRUb0xvZyh3aW5kb3cubmF2aWdhdG9yLnVzZXJBZ2VudC50b0xvd2VyQ2FzZSgp
KTsKLSAgYWRkVG9TdW1tYXJ5KHdpbmRvdy5uYXZpZ2F0b3IudXNlckFnZW50LnRvTG93ZXJDYXNl
KCkpOwotCi0gIGlmICghKCdXZWJTb2NrZXQnIGluIHdpbmRvdykpIHsKLSAgICBhZGRUb0xvZygn
V2ViU29ja2V0IGlzIG5vdCBhdmFpbGFibGUnKTsKLSAgfQotfQotPC9zY3JpcHQ+Ci08L2hlYWQ+
Ci08Ym9keSBvbmxvYWQ9ImluaXQoKSI+Ci0KLTxkaXYgaWQ9ImJlbmNobWFya19kaXYiPgotICB1
cmwgPGlucHV0IHR5cGU9InRleHQiIGlkPSJhZGRyZXNzIiBzaXplPSI0MCI+Ci0gIDxpbnB1dCB0
eXBlPSJidXR0b24iIHZhbHVlPSJzZW5kIiBvbmNsaWNrPSJvblNlbmRCZW5jaG1hcmsoKSI+Ci0g
IDxpbnB1dCB0eXBlPSJidXR0b24iIHZhbHVlPSJyZWNlaXZlIiBvbmNsaWNrPSJvblJlY2VpdmVC
ZW5jaG1hcmsoKSI+Ci0gIDxpbnB1dCB0eXBlPSJidXR0b24iIHZhbHVlPSJiYXRjaCIgb25jbGlj
az0ib25CYXRjaEJlbmNobWFyaygpIj4KLSAgPGlucHV0IHR5cGU9ImJ1dHRvbiIgdmFsdWU9InN0
b3AiIG9uY2xpY2s9Im9uU3RvcCgpIj4KLQotICA8YnIvPgotCi0gIDxpbnB1dCB0eXBlPSJjaGVj
a2JveCIgaWQ9InByaW50c2l6ZSIgY2hlY2tlZD4KLSAgPGxhYmVsIGZvcj0icHJpbnRzaXplIj5Q
cmludCBzaXplIGFuZCB0aW1lIHBlciBtZXNzYWdlPC9sYWJlbD4KLSAgPGlucHV0IHR5cGU9ImNo
ZWNrYm94IiBpZD0idmVyaWZ5ZGF0YSIgY2hlY2tlZD4KLSAgPGxhYmVsIGZvcj0idmVyaWZ5ZGF0
YSI+VmVyaWZ5IGRhdGE8L2xhYmVsPgotICA8aW5wdXQgdHlwZT0iY2hlY2tib3giIGlkPSJ3b3Jr
ZXIiPgotICA8bGFiZWwgZm9yPSJ3b3JrZXIiPlJ1biBvbiB3b3JrZXI8L2xhYmVsPgotCi0gIDxi
ci8+Ci0KLSAgUGFyYW1ldGVyczoKLQotICA8YnIvPgotCi0gIDx0YWJsZT4KLSAgICA8dHI+Ci0g
ICAgICA8dGQ+TnVtIHNvY2tldHM8L3RkPgotICAgICAgPHRkPjxpbnB1dCB0eXBlPSJ0ZXh0IiBp
ZD0ibnVtc29ja2V0cyIgdmFsdWU9IjEiPjwvdGQ+Ci0gICAgPC90cj4KLSAgICA8dHI+Ci0gICAg
ICA8dGQ+TnVtYmVyIG9mIGl0ZXJhdGlvbnM8L3RkPgotICAgICAgPHRkPjxpbnB1dCB0eXBlPSJ0
ZXh0IiBpZD0ibnVtaXRlcmF0aW9ucyIgdmFsdWU9IjEiPjwvdGQ+Ci0gICAgPC90cj4KLSAgICA8
dHI+Ci0gICAgICA8dGQ+TnVtYmVyIG9mIHdhcm0tdXAgaXRlcmF0aW9uczwvdGQ+Ci0gICAgICA8
dGQ+PGlucHV0IHR5cGU9InRleHQiIGlkPSJudW13YXJtdXBpdGVyYXRpb25zIiB2YWx1ZT0iMCI+
PC90ZD4KLSAgICA8L3RyPgotICAgIDx0cj4KLSAgICAgIDx0ZD5TdGFydCBzaXplPC90ZD4KLSAg
ICAgIDx0ZD48aW5wdXQgdHlwZT0idGV4dCIgaWQ9InN0YXJ0c2l6ZSIgdmFsdWU9IjEwMjQwIj48
L3RkPgotICAgIDwvdHI+Ci0gICAgPHRyPgotICAgICAgPHRkPlN0b3AgdGhyZXNob2xkPC90ZD4K
LSAgICAgIDx0ZD48aW5wdXQgdHlwZT0idGV4dCIgaWQ9InN0b3B0aHJlc2hvbGQiIHZhbHVlPSIx
MDI0MDAwMDAiPjwvdGQ+Ci0gICAgPC90cj4KLSAgICA8dHI+Ci0gICAgICA8dGQ+TWluaW11bSB0
b3RhbDwvdGQ+Ci0gICAgICA8dGQ+PGlucHV0IHR5cGU9InRleHQiIGlkPSJtaW50b3RhbCIgdmFs
dWU9IjEwMjQwMDAwMCI+PC90ZD4KLSAgICA8L3RyPgotICAgIDx0cj4KLSAgICAgIDx0ZD5NdWx0
aXBsaWVyczwvdGQ+Ci0gICAgICA8dGQ+PGlucHV0IHR5cGU9InRleHQiIGlkPSJtdWx0aXBsaWVy
cyIgdmFsdWU9IjUsIDIiPjwvdGQ+Ci0gICAgPC90cj4KLSAgPC90YWJsZT4KLTwvZGl2PgotCi08
ZGl2IGlkPSJsb2dfZGl2Ij4KLSAgPHRleHRhcmVhCi0gICAgICBpZD0ibG9nIiByb3dzPSIyMCIg
c3R5bGU9IndpZHRoOiAxMDAlIiByZWFkb25seT48L3RleHRhcmVhPgotPC9kaXY+Ci08ZGl2IGlk
PSJzdW1tYXJ5X2RpdiI+Ci0gIFN1bW1hcnkKLSAgPHRleHRhcmVhCi0gICAgICBpZD0ic3VtbWFy
eSIgcm93cz0iMjAiIHN0eWxlPSJ3aWR0aDogMTAwJSIgcmVhZG9ubHk+PC90ZXh0YXJlYT4KLTwv
ZGl2PgotCi1Ob3RlOiBFZmZlY3Qgb2YgUlRUIGlzIG5vdCBlbGltaW5hdGVkLgotCi08L2JvZHk+
Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3NyYy9leGFtcGxlL2JlbmNobWFyay5qcyBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2Nr
ZXQvc3JjL2V4YW1wbGUvYmVuY2htYXJrLmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCBkMzQ3YWU5ZTEzZGUyZjA1ZGEwODVjNDkyMTFmNTRjMGI2ODUyYWYxLi4wMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3JjL2V4YW1wbGUvYmVuY2ht
YXJrLmpzCisrKyAvZGV2L251bGwKQEAgLTEsMzA5ICswLDAgQEAKLS8vIENvcHlyaWdodCAyMDE0
IEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0vLwotLy8gVXNlIG9mIHRoaXMgc291
cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUKLS8vIGxpY2Vuc2UgdGhhdCBjYW4g
YmUgZm91bmQgaW4gdGhlIENPUFlJTkcgZmlsZSBvciBhdAotLy8gaHR0cHM6Ly9kZXZlbG9wZXJz
Lmdvb2dsZS5jb20vb3Blbi1zb3VyY2UvbGljZW5zZXMvYnNkCi0KLWlmICh0eXBlb2YgaW1wb3J0
U2NyaXB0cyAhPT0gInVuZGVmaW5lZCIpIHsKLSAgLy8gUnVubmluZyBvbiBhIHdvcmtlcgotICBp
bXBvcnRTY3JpcHRzKCd1dGlsLmpzJywgJ3V0aWxfd29ya2VyLmpzJyk7Ci19Ci0KLS8vIE5hbWVz
cGFjZSBmb3IgaG9sZGluZyBnbG9iYWxzLgotdmFyIGJlbmNobWFyayA9IHtzdGFydFRpbWVJbk1z
OiAwfTsKLQotdmFyIHNvY2tldHMgPSBbXTsKLXZhciBudW1Fc3RhYmxpc2hlZFNvY2tldHMgPSAw
OwotCi12YXIgdGltZXJJRCA9IG51bGw7Ci0KLWZ1bmN0aW9uIGRlc3Ryb3lTb2NrZXQoc29ja2V0
KSB7Ci0gIHNvY2tldC5vbm9wZW4gPSBudWxsOwotICBzb2NrZXQub25tZXNzYWdlID0gbnVsbDsK
LSAgc29ja2V0Lm9uZXJyb3IgPSBudWxsOwotICBzb2NrZXQub25jbG9zZSA9IG51bGw7Ci0gIHNv
Y2tldC5jbG9zZSgpOwotfQotCi1mdW5jdGlvbiBkZXN0cm95QWxsU29ja2V0cygpIHsKLSAgZm9y
ICh2YXIgaSA9IDA7IGkgPCBzb2NrZXRzLmxlbmd0aDsgKytpKSB7Ci0gICAgZGVzdHJveVNvY2tl
dChzb2NrZXRzW2ldKTsKLSAgfQotICBzb2NrZXRzID0gW107Ci19Ci0KLWZ1bmN0aW9uIHNlbmRC
ZW5jaG1hcmtTdGVwKHNpemUsIGNvbmZpZykgewotICB0aW1lcklEID0gbnVsbDsKLQotICB2YXIg
dG90YWxTaXplID0gMDsKLSAgdmFyIHRvdGFsUmVwbGllZCA9IDA7Ci0KLSAgdmFyIG9uTWVzc2Fn
ZUhhbmRsZXIgPSBmdW5jdGlvbihldmVudCkgewotICAgIGlmICghdmVyaWZ5QWNrbm93bGVkZ2Vt
ZW50KGNvbmZpZywgZXZlbnQuZGF0YSwgc2l6ZSkpIHsKLSAgICAgIGRlc3Ryb3lBbGxTb2NrZXRz
KCk7Ci0gICAgICByZXR1cm47Ci0gICAgfQotCi0gICAgdG90YWxSZXBsaWVkICs9IHNpemU7Ci0K
LSAgICBpZiAodG90YWxSZXBsaWVkIDwgdG90YWxTaXplKSB7Ci0gICAgICByZXR1cm47Ci0gICAg
fQotCi0gICAgY2FsY3VsYXRlQW5kTG9nUmVzdWx0KGNvbmZpZywgc2l6ZSwgYmVuY2htYXJrLnN0
YXJ0VGltZUluTXMsIHRvdGFsU2l6ZSk7Ci0KLSAgICBydW5OZXh0VGFzayhjb25maWcpOwotICB9
OwotCi0gIGZvciAodmFyIGkgPSAwOyBpIDwgc29ja2V0cy5sZW5ndGg7ICsraSkgewotICAgIHZh
ciBzb2NrZXQgPSBzb2NrZXRzW2ldOwotICAgIHNvY2tldC5vbm1lc3NhZ2UgPSBvbk1lc3NhZ2VI
YW5kbGVyOwotICB9Ci0KLSAgdmFyIGRhdGFBcnJheSA9IFtdOwotCi0gIHdoaWxlICh0b3RhbFNp
emUgPCBjb25maWcubWluVG90YWwpIHsKLSAgICB2YXIgYnVmZmVyID0gbmV3IEFycmF5QnVmZmVy
KHNpemUpOwotCi0gICAgZmlsbEFycmF5QnVmZmVyKGJ1ZmZlciwgMHg2MSk7Ci0KLSAgICBkYXRh
QXJyYXkucHVzaChidWZmZXIpOwotICAgIHRvdGFsU2l6ZSArPSBzaXplOwotICB9Ci0KLSAgYmVu
Y2htYXJrLnN0YXJ0VGltZUluTXMgPSBnZXRUaW1lU3RhbXAoKTsKLQotICB0b3RhbFNpemUgPSAw
OwotCi0gIHZhciBzb2NrZXRJbmRleCA9IDA7Ci0gIHZhciBkYXRhSW5kZXggPSAwOwotICB3aGls
ZSAodG90YWxTaXplIDwgY29uZmlnLm1pblRvdGFsKSB7Ci0gICAgdmFyIGNvbW1hbmQgPSBbJ3Nl
bmQnXTsKLSAgICBjb21tYW5kLnB1c2goY29uZmlnLnZlcmlmeURhdGEgPyAnMScgOiAnMCcpOwot
ICAgIHNvY2tldHNbc29ja2V0SW5kZXhdLnNlbmQoY29tbWFuZC5qb2luKCcgJykpOwotICAgIHNv
Y2tldHNbc29ja2V0SW5kZXhdLnNlbmQoZGF0YUFycmF5W2RhdGFJbmRleF0pOwotICAgIHNvY2tl
dEluZGV4ID0gKHNvY2tldEluZGV4ICsgMSkgJSBzb2NrZXRzLmxlbmd0aDsKLQotICAgIHRvdGFs
U2l6ZSArPSBzaXplOwotICAgICsrZGF0YUluZGV4OwotICB9Ci19Ci0KLWZ1bmN0aW9uIHJlY2Vp
dmVCZW5jaG1hcmtTdGVwKHNpemUsIGNvbmZpZykgewotICB0aW1lcklEID0gbnVsbDsKLQotICB2
YXIgdG90YWxTaXplID0gMDsKLSAgdmFyIHRvdGFsUmVwbGllZCA9IDA7Ci0KLSAgdmFyIG9uTWVz
c2FnZUhhbmRsZXIgPSBmdW5jdGlvbihldmVudCkgewotICAgIHZhciBieXRlc1JlY2VpdmVkID0g
ZXZlbnQuZGF0YS5ieXRlTGVuZ3RoOwotICAgIGlmIChieXRlc1JlY2VpdmVkICE9IHNpemUpIHsK
LSAgICAgIGNvbmZpZy5hZGRUb0xvZygnRXhwZWN0ZWQgJyArIHNpemUgKyAnQiBidXQgcmVjZWl2
ZWQgJyArCi0gICAgICAgICAgYnl0ZXNSZWNlaXZlZCArICdCJyk7Ci0gICAgICBkZXN0cm95QWxs
U29ja2V0cygpOwotICAgICAgcmV0dXJuOwotICAgIH0KLQotICAgIGlmIChjb25maWcudmVyaWZ5
RGF0YSAmJiAhdmVyaWZ5QXJyYXlCdWZmZXIoZXZlbnQuZGF0YSwgMHg2MSkpIHsKLSAgICAgIGNv
bmZpZy5hZGRUb0xvZygnUmVzcG9uc2UgdmVyaWZpY2F0aW9uIGZhaWxlZCcpOwotICAgICAgZGVz
dHJveUFsbFNvY2tldHMoKTsKLSAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICB0b3RhbFJlcGxp
ZWQgKz0gYnl0ZXNSZWNlaXZlZDsKLQotICAgIGlmICh0b3RhbFJlcGxpZWQgPCB0b3RhbFNpemUp
IHsKLSAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICBjYWxjdWxhdGVBbmRMb2dSZXN1bHQoY29u
ZmlnLCBzaXplLCBiZW5jaG1hcmsuc3RhcnRUaW1lSW5NcywgdG90YWxTaXplKTsKLQotICAgIHJ1
bk5leHRUYXNrKGNvbmZpZyk7Ci0gIH07Ci0KLSAgZm9yICh2YXIgaSA9IDA7IGkgPCBzb2NrZXRz
Lmxlbmd0aDsgKytpKSB7Ci0gICAgdmFyIHNvY2tldCA9IHNvY2tldHNbaV07Ci0gICAgc29ja2V0
LmJpbmFyeVR5cGUgPSAnYXJyYXlidWZmZXInOwotICAgIHNvY2tldC5vbm1lc3NhZ2UgPSBvbk1l
c3NhZ2VIYW5kbGVyOwotICB9Ci0KLSAgYmVuY2htYXJrLnN0YXJ0VGltZUluTXMgPSBnZXRUaW1l
U3RhbXAoKTsKLQotICB2YXIgc29ja2V0SW5kZXggPSAwOwotICB3aGlsZSAodG90YWxTaXplIDwg
Y29uZmlnLm1pblRvdGFsKSB7Ci0gICAgc29ja2V0c1tzb2NrZXRJbmRleF0uc2VuZCgncmVjZWl2
ZSAnICsgc2l6ZSk7Ci0gICAgc29ja2V0SW5kZXggPSAoc29ja2V0SW5kZXggKyAxKSAlIHNvY2tl
dHMubGVuZ3RoOwotCi0gICAgdG90YWxTaXplICs9IHNpemU7Ci0gIH0KLX0KLQotZnVuY3Rpb24g
Y3JlYXRlU29ja2V0KGNvbmZpZykgewotICAvLyBUT0RPKHR5b3NoaW5vKTogQWRkIFRDUCB3YXJt
IHVwLgotICB2YXIgdXJsID0gY29uZmlnLnByZWZpeFVybDsKLQotICBjb25maWcuYWRkVG9Mb2co
J0Nvbm5lY3QgJyArIHVybCk7Ci0KLSAgdmFyIHNvY2tldCA9IG5ldyBXZWJTb2NrZXQodXJsKTsK
LSAgc29ja2V0Lm9ubWVzc2FnZSA9IGZ1bmN0aW9uKGV2ZW50KSB7Ci0gICAgY29uZmlnLmFkZFRv
TG9nKCdVbmV4cGVjdGVkIG1lc3NhZ2UgcmVjZWl2ZWQuIEFib3J0aW5nLicpOwotICB9OwotICBz
b2NrZXQub25lcnJvciA9IGZ1bmN0aW9uKCkgewotICAgIGNvbmZpZy5hZGRUb0xvZygnRXJyb3In
KTsKLSAgfTsKLSAgc29ja2V0Lm9uY2xvc2UgPSBmdW5jdGlvbihldmVudCkgewotICAgIGNvbmZp
Zy5hZGRUb0xvZygnQ2xvc2VkJyk7Ci0gIH07Ci0gIHJldHVybiBzb2NrZXQ7Ci19Ci0KLXZhciB0
YXNrcyA9IFtdOwotCi1mdW5jdGlvbiBzdGFydEJlbmNobWFyayhjb25maWcpIHsKLSAgY2xlYXJU
aW1lb3V0KHRpbWVySUQpOwotICBkZXN0cm95QWxsU29ja2V0cygpOwotCi0gIG51bUVzdGFibGlz
aGVkU29ja2V0cyA9IDA7Ci0KLSAgZm9yICh2YXIgaSA9IDA7IGkgPCBjb25maWcubnVtU29ja2V0
czsgKytpKSB7Ci0gICAgdmFyIHNvY2tldCA9IGNyZWF0ZVNvY2tldChjb25maWcpOwotICAgIHNv
Y2tldC5vbm9wZW4gPSBmdW5jdGlvbigpIHsKLSAgICAgIGNvbmZpZy5hZGRUb0xvZygnT3BlbmVk
Jyk7Ci0KLSAgICAgICsrbnVtRXN0YWJsaXNoZWRTb2NrZXRzOwotCi0gICAgICBpZiAobnVtRXN0
YWJsaXNoZWRTb2NrZXRzID09IHNvY2tldHMubGVuZ3RoKSB7Ci0gICAgICAgIHJ1bk5leHRUYXNr
KGNvbmZpZyk7Ci0gICAgICB9Ci0gICAgfTsKLSAgICBzb2NrZXRzLnB1c2goc29ja2V0KTsKLSAg
fQotfQotCi1mdW5jdGlvbiBydW5OZXh0VGFzayhjb25maWcpIHsKLSAgdmFyIHRhc2sgPSB0YXNr
cy5zaGlmdCgpOwotICBpZiAodGFzayA9PSB1bmRlZmluZWQpIHsKLSAgICBjb25maWcuYWRkVG9M
b2coJ0ZpbmlzaGVkJyk7Ci0gICAgZGVzdHJveUFsbFNvY2tldHMoKTsKLSAgICByZXR1cm47Ci0g
IH0KLSAgdGltZXJJRCA9IHNldFRpbWVvdXQodGFzaywgMCk7Ci19Ci0KLWZ1bmN0aW9uIGJ1aWxk
TGVnZW5kU3RyaW5nKGNvbmZpZykgewotICB2YXIgbGVnZW5kID0gJycKLSAgaWYgKGNvbmZpZy5w
cmludFNpemUpCi0gICAgbGVnZW5kID0gJ01lc3NhZ2Ugc2l6ZSBpbiBLaUIsIFRpbWUvbWVzc2Fn
ZSBpbiBtcywgJzsKLSAgbGVnZW5kICs9ICdTcGVlZCBpbiBrQi9zJzsKLSAgcmV0dXJuIGxlZ2Vu
ZDsKLX0KLQotZnVuY3Rpb24gZ2V0Q29uZmlnU3RyaW5nKGNvbmZpZykgewotICByZXR1cm4gJyhX
ZWJTb2NrZXQnICsKLSAgICAnLCAnICsgKHR5cGVvZiBpbXBvcnRTY3JpcHRzICE9PSAidW5kZWZp
bmVkIiA/ICdXb3JrZXInIDogJ01haW4nKSArCi0gICAgJywgbnVtU29ja2V0cz0nICsgY29uZmln
Lm51bVNvY2tldHMgKwotICAgICcsIG51bUl0ZXJhdGlvbnM9JyArIGNvbmZpZy5udW1JdGVyYXRp
b25zICsKLSAgICAnLCB2ZXJpZnlEYXRhPScgKyBjb25maWcudmVyaWZ5RGF0YSArCi0gICAgJywg
bWluVG90YWw9JyArIGNvbmZpZy5taW5Ub3RhbCArCi0gICAgJywgbnVtV2FybVVwSXRlcmF0aW9u
cz0nICsgY29uZmlnLm51bVdhcm1VcEl0ZXJhdGlvbnMgKwotICAgICcpJzsKLX0KLQotZnVuY3Rp
b24gYWRkVGFza3MoY29uZmlnLCBzdGVwRnVuYykgewotICBmb3IgKHZhciBpID0gMDsKLSAgICAg
IGkgPCBjb25maWcubnVtV2FybVVwSXRlcmF0aW9ucyArIGNvbmZpZy5udW1JdGVyYXRpb25zOyAr
K2kpIHsKLSAgICAvLyBJZ25vcmUgdGhlIGZpcnN0IHxjb25maWcubnVtV2FybVVwSXRlcmF0aW9u
c3wgaXRlcmF0aW9ucy4KLSAgICBpZiAoaSA9PSBjb25maWcubnVtV2FybVVwSXRlcmF0aW9ucykK
LSAgICAgIGFkZFJlc3VsdENsZWFyaW5nVGFzayhjb25maWcpOwotCi0gICAgdmFyIG11bHRpcGxp
ZXJJbmRleCA9IDA7Ci0gICAgZm9yICh2YXIgc2l6ZSA9IGNvbmZpZy5zdGFydFNpemU7Ci0gICAg
ICAgICBzaXplIDw9IGNvbmZpZy5zdG9wVGhyZXNob2xkOwotICAgICAgICAgKyttdWx0aXBsaWVy
SW5kZXgpIHsKLSAgICAgIHZhciB0YXNrID0gc3RlcEZ1bmMuYmluZCgKLSAgICAgICAgICBudWxs
LAotICAgICAgICAgIHNpemUsCi0gICAgICAgICAgY29uZmlnKTsKLSAgICAgIHRhc2tzLnB1c2go
dGFzayk7Ci0gICAgICBzaXplICo9IGNvbmZpZy5tdWx0aXBsaWVyc1sKLSAgICAgICAgICBtdWx0
aXBsaWVySW5kZXggJSBjb25maWcubXVsdGlwbGllcnMubGVuZ3RoXTsKLSAgICB9Ci0gIH0KLX0K
LQotZnVuY3Rpb24gYWRkUmVzdWx0UmVwb3J0aW5nVGFzayhjb25maWcsIHRpdGxlKSB7Ci0gIHRh
c2tzLnB1c2goZnVuY3Rpb24oKXsKLSAgICAgIHRpbWVySUQgPSBudWxsOwotICAgICAgY29uZmln
LmFkZFRvU3VtbWFyeSh0aXRsZSk7Ci0gICAgICByZXBvcnRBdmVyYWdlRGF0YShjb25maWcpOwot
ICAgICAgY2xlYXJBdmVyYWdlRGF0YSgpOwotICAgICAgcnVuTmV4dFRhc2soY29uZmlnKTsKLSAg
fSk7Ci19Ci0KLWZ1bmN0aW9uIGFkZFJlc3VsdENsZWFyaW5nVGFzayhjb25maWcpIHsKLSAgdGFz
a3MucHVzaChmdW5jdGlvbigpewotICAgICAgdGltZXJJRCA9IG51bGw7Ci0gICAgICBjbGVhckF2
ZXJhZ2VEYXRhKCk7Ci0gICAgICBydW5OZXh0VGFzayhjb25maWcpOwotICB9KTsKLX0KLQotZnVu
Y3Rpb24gc2VuZEJlbmNobWFyayhjb25maWcpIHsKLSAgY29uZmlnLmFkZFRvTG9nKCdTZW5kIGJl
bmNobWFyaycpOwotICBjb25maWcuYWRkVG9Mb2coYnVpbGRMZWdlbmRTdHJpbmcoY29uZmlnKSk7
Ci0KLSAgdGFza3MgPSBbXTsKLSAgY2xlYXJBdmVyYWdlRGF0YSgpOwotICBhZGRUYXNrcyhjb25m
aWcsIHNlbmRCZW5jaG1hcmtTdGVwKTsKLSAgYWRkUmVzdWx0UmVwb3J0aW5nVGFzayhjb25maWcs
ICdTZW5kIEJlbmNobWFyayAnICsgZ2V0Q29uZmlnU3RyaW5nKGNvbmZpZykpOwotICBzdGFydEJl
bmNobWFyayhjb25maWcpOwotfQotCi1mdW5jdGlvbiByZWNlaXZlQmVuY2htYXJrKGNvbmZpZykg
ewotICBjb25maWcuYWRkVG9Mb2coJ1JlY2VpdmUgYmVuY2htYXJrJyk7Ci0gIGNvbmZpZy5hZGRU
b0xvZyhidWlsZExlZ2VuZFN0cmluZyhjb25maWcpKTsKLQotICB0YXNrcyA9IFtdOwotICBjbGVh
ckF2ZXJhZ2VEYXRhKCk7Ci0gIGFkZFRhc2tzKGNvbmZpZywgcmVjZWl2ZUJlbmNobWFya1N0ZXAp
OwotICBhZGRSZXN1bHRSZXBvcnRpbmdUYXNrKGNvbmZpZywKLSAgICAgICdSZWNlaXZlIEJlbmNo
bWFyayAnICsgZ2V0Q29uZmlnU3RyaW5nKGNvbmZpZykpOwotICBzdGFydEJlbmNobWFyayhjb25m
aWcpOwotfQotCi1mdW5jdGlvbiBiYXRjaEJlbmNobWFyayhjb25maWcpIHsKLSAgY29uZmlnLmFk
ZFRvTG9nKCdCYXRjaCBiZW5jaG1hcmsnKTsKLSAgY29uZmlnLmFkZFRvTG9nKGJ1aWxkTGVnZW5k
U3RyaW5nKGNvbmZpZykpOwotCi0gIHRhc2tzID0gW107Ci0gIGNsZWFyQXZlcmFnZURhdGEoKTsK
LSAgYWRkVGFza3MoY29uZmlnLCBzZW5kQmVuY2htYXJrU3RlcCk7Ci0gIGFkZFJlc3VsdFJlcG9y
dGluZ1Rhc2soY29uZmlnLCAnU2VuZCBCZW5jaG1hcmsgJyArIGdldENvbmZpZ1N0cmluZyhjb25m
aWcpKTsKLSAgYWRkVGFza3MoY29uZmlnLCByZWNlaXZlQmVuY2htYXJrU3RlcCk7Ci0gIGFkZFJl
c3VsdFJlcG9ydGluZ1Rhc2soY29uZmlnLCAnUmVjZWl2ZSBCZW5jaG1hcmsgJyArCi0gICAgICBn
ZXRDb25maWdTdHJpbmcoY29uZmlnKSk7Ci0gIHN0YXJ0QmVuY2htYXJrKGNvbmZpZyk7Ci19Ci0K
LWZ1bmN0aW9uIHN0b3AoY29uZmlnKSB7Ci0gIGNsZWFyVGltZW91dCh0aW1lcklEKTsKLSAgdGlt
ZXJJRCA9IG51bGw7Ci0gIGNvbmZpZy5hZGRUb0xvZygnU3RvcHBlZCcpOwotICBkZXN0cm95QWxs
U29ja2V0cygpOwotfQotCi1vbm1lc3NhZ2UgPSBmdW5jdGlvbiAobWVzc2FnZSkgewotICB2YXIg
Y29uZmlnID0gbWVzc2FnZS5kYXRhLmNvbmZpZzsKLSAgY29uZmlnLmFkZFRvTG9nID0gd29ya2Vy
QWRkVG9Mb2c7Ci0gIGNvbmZpZy5hZGRUb1N1bW1hcnkgPSB3b3JrZXJBZGRUb1N1bW1hcnk7Ci0g
IGNvbmZpZy5tZWFzdXJlVmFsdWUgPSB3b3JrZXJNZWFzdXJlVmFsdWU7Ci0gIGlmIChtZXNzYWdl
LmRhdGEudHlwZSA9PT0gJ3NlbmRCZW5jaG1hcmsnKQotICAgIHNlbmRCZW5jaG1hcmsoY29uZmln
KTsKLSAgZWxzZSBpZiAobWVzc2FnZS5kYXRhLnR5cGUgPT09ICdyZWNlaXZlQmVuY2htYXJrJykK
LSAgICByZWNlaXZlQmVuY2htYXJrKGNvbmZpZyk7Ci0gIGVsc2UgaWYgKG1lc3NhZ2UuZGF0YS50
eXBlID09PSAnYmF0Y2hCZW5jaG1hcmsnKQotICAgIGJhdGNoQmVuY2htYXJrKGNvbmZpZyk7Ci0g
IGVsc2UgaWYgKG1lc3NhZ2UuZGF0YS50eXBlID09PSAnc3RvcCcpCi0gICAgc3RvcChjb25maWcp
OwotfTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3JjL2V4YW1wbGUvYmVuY2htYXJrX2hlbHBlcl93c2gu
cHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5
d2Vic29ja2V0L3NyYy9leGFtcGxlL2JlbmNobWFya19oZWxwZXJfd3NoLnB5CmRlbGV0ZWQgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCA0NGFkMGJmZWVmYzZmNDQzMDU3MWI3YjUzMjMzZmI3OTUwNjE0
Y2YyLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQv
c3JjL2V4YW1wbGUvYmVuY2htYXJrX2hlbHBlcl93c2gucHkKKysrIC9kZXYvbnVsbApAQCAtMSw4
NSArMCwwIEBACi0jIENvcHlyaWdodCAyMDEzLCBHb29nbGUgSW5jLgotIyBBbGwgcmlnaHRzIHJl
c2VydmVkLgotIwotIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQotIyBtZXQ6Ci0jCi0jICAg
ICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0Ci0jIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KLSMgICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQotIyBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCi0jIGluIHRoZSBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKLSMgZGlz
dHJpYnV0aW9uLgotIyAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0
aGUgbmFtZXMgb2YgaXRzCi0jIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9y
IHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCi0jIHRoaXMgc29mdHdhcmUgd2l0aG91dCBz
cGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0jCi0jIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKLSMgIkFT
IElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QKLSMgTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SCi0jIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCi0jIE9XTkVSIE9SIENPTlRSSUJV
VE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAotIyBT
UEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UCi0jIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLAotIyBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKLSMgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotIyAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UKLSMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLQotCi0iIiJIYW5kbGVyIGZvciBiZW5jaG1hcmsu
aHRtbC4iIiIKLQotCi1kZWYgd2ViX3NvY2tldF9kb19leHRyYV9oYW5kc2hha2UocmVxdWVzdCk6
Ci0gICAgIyBUdXJuIG9mZiBjb21wcmVzc2lvbi4KLSAgICByZXF1ZXN0LndzX2V4dGVuc2lvbl9w
cm9jZXNzb3JzID0gW10KLQotCi1kZWYgd2ViX3NvY2tldF90cmFuc2Zlcl9kYXRhKHJlcXVlc3Qp
OgotICAgIGRhdGEgPSAnJwotCi0gICAgd2hpbGUgVHJ1ZToKLSAgICAgICAgY29tbWFuZCA9IHJl
cXVlc3Qud3Nfc3RyZWFtLnJlY2VpdmVfbWVzc2FnZSgpCi0gICAgICAgIGlmIGNvbW1hbmQgaXMg
Tm9uZToKLSAgICAgICAgICAgIHJldHVybgotCi0gICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKGNv
bW1hbmQsIHVuaWNvZGUpOgotICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcignSW52YWxpZCBj
b21tYW5kIGRhdGE6JyArIGNvbW1hbmQpCi0gICAgICAgIGNvbW1hbmRzID0gY29tbWFuZC5zcGxp
dCgnICcpCi0gICAgICAgIGlmIGxlbihjb21tYW5kcykgPT0gMDoKLSAgICAgICAgICAgIHJhaXNl
IFZhbHVlRXJyb3IoJ0ludmFsaWQgY29tbWFuZCBkYXRhOiAnICsgY29tbWFuZCkKLQotICAgICAg
ICBpZiBjb21tYW5kc1swXSA9PSAncmVjZWl2ZSc6Ci0gICAgICAgICAgICBpZiBsZW4oY29tbWFu
ZHMpICE9IDI6Ci0gICAgICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigKLSAgICAgICAgICAg
ICAgICAgICAgICAgICdJbGxlZ2FsIG51bWJlciBvZiBhcmd1bWVudHMgZm9yIHNlbmQgY29tbWFu
ZCcgKwotICAgICAgICAgICAgICAgICAgICAgICAgY29tbWFuZCkKLSAgICAgICAgICAgIHNpemUg
PSBpbnQoY29tbWFuZHNbMV0pCi0KLSAgICAgICAgICAgICMgUmV1c2UgZGF0YSBpZiBwb3NzaWJs
ZS4KLSAgICAgICAgICAgIGlmIGxlbihkYXRhKSAhPSBzaXplOgotICAgICAgICAgICAgICAgIGRh
dGEgPSAnYScgKiBzaXplCi0gICAgICAgICAgICByZXF1ZXN0LndzX3N0cmVhbS5zZW5kX21lc3Nh
Z2UoZGF0YSwgYmluYXJ5PVRydWUpCi0gICAgICAgIGVsaWYgY29tbWFuZHNbMF0gPT0gJ3NlbmQn
OgotICAgICAgICAgICAgaWYgbGVuKGNvbW1hbmRzKSAhPSAyOgotICAgICAgICAgICAgICAgIHJh
aXNlIFZhbHVlRXJyb3IoCi0gICAgICAgICAgICAgICAgICAgICAgICAnSWxsZWdhbCBudW1iZXIg
b2YgYXJndW1lbnRzIGZvciByZWNlaXZlIGNvbW1hbmQnICsKLSAgICAgICAgICAgICAgICAgICAg
ICAgIGNvbW1hbmQpCi0gICAgICAgICAgICB2ZXJpZnlfZGF0YSA9IGNvbW1hbmRzWzFdID09ICcx
JwotCi0gICAgICAgICAgICBkYXRhID0gcmVxdWVzdC53c19zdHJlYW0ucmVjZWl2ZV9tZXNzYWdl
KCkKLSAgICAgICAgICAgIGlmIGRhdGEgaXMgTm9uZToKLSAgICAgICAgICAgICAgICByYWlzZSBW
YWx1ZUVycm9yKCdQYXlsb2FkIG5vdCByZWNlaXZlZCcpCi0gICAgICAgICAgICBzaXplID0gbGVu
KGRhdGEpCi0KLSAgICAgICAgICAgIGlmIHZlcmlmeV9kYXRhOgotICAgICAgICAgICAgICAgIGlm
IGRhdGEgIT0gJ2EnICogc2l6ZToKLSAgICAgICAgICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJv
cignUGF5bG9hZCB2ZXJpZmljYXRpb24gZmFpbGVkJykKLQotICAgICAgICAgICAgcmVxdWVzdC53
c19zdHJlYW0uc2VuZF9tZXNzYWdlKHN0cihzaXplKSkKLSAgICAgICAgZWxzZToKLSAgICAgICAg
ICAgIHJhaXNlIFZhbHVlRXJyb3IoJ0ludmFsaWQgY29tbWFuZDogJyArIGNvbW1hbmRzWzBdKQot
Ci0KLSMgdmk6c3RzPTQgc3c9NCBldApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9zcmMvZXhhbXBsZS9jbG9z
ZV93c2gucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3B5d2Vic29ja2V0L3NyYy9leGFtcGxlL2Nsb3NlX3dzaC5weQpkZWxldGVkIGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMjZiMDgzODQwODEyNDUzOTc5NzY1N2Q0MGQ2NDI3OGYxYTY0ODFjMC4u
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3NyYy9l
eGFtcGxlL2Nsb3NlX3dzaC5weQorKysgL2Rldi9udWxsCkBAIC0xLDY5ICswLDAgQEAKLSMgQ29w
eXJpZ2h0IDIwMTIsIEdvb2dsZSBJbmMuCi0jIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0jCi0jIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAotIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCi0jIG1ldDoKLSMKLSMgICAgICogUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSMgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgotIyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlCi0jIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKLSMgaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQotIyBkaXN0cmlidXRpb24uCi0jICAg
ICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMK
LSMgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0
cyBkZXJpdmVkIGZyb20KLSMgdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdy
aXR0ZW4gcGVybWlzc2lvbi4KLSMKLSMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUg
Q09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwotIyAiQVMgSVMiIEFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAotIyBMSU1JVEVE
IFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IKLSMgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIFRIRSBDT1BZUklHSFQKLSMgT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCi0jIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKLSMgTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsCi0jIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWQotIyBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0jIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotIyBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgotCi1pbXBvcnQgc3RydWN0Ci0KLWZyb20gbW9kX3B5d2Vic29ja2V0IGltcG9y
dCBjb21tb24KLWZyb20gbW9kX3B5d2Vic29ja2V0IGltcG9ydCBzdHJlYW0KLQotCi1kZWYgd2Vi
X3NvY2tldF9kb19leHRyYV9oYW5kc2hha2UocmVxdWVzdCk6Ci0gICAgcGFzcwotCi0KLWRlZiB3
ZWJfc29ja2V0X3RyYW5zZmVyX2RhdGEocmVxdWVzdCk6Ci0gICAgd2hpbGUgVHJ1ZToKLSAgICAg
ICAgbGluZSA9IHJlcXVlc3Qud3Nfc3RyZWFtLnJlY2VpdmVfbWVzc2FnZSgpCi0gICAgICAgIGlm
IGxpbmUgaXMgTm9uZToKLSAgICAgICAgICAgIHJldHVybgotICAgICAgICBjb2RlLCByZWFzb24g
PSBsaW5lLnNwbGl0KCcgJywgMSkKLSAgICAgICAgaWYgY29kZSBpcyBOb25lIG9yIHJlYXNvbiBp
cyBOb25lOgotICAgICAgICAgICAgcmV0dXJuCi0gICAgICAgIHJlcXVlc3Qud3Nfc3RyZWFtLmNs
b3NlX2Nvbm5lY3Rpb24oaW50KGNvZGUpLCByZWFzb24pCi0gICAgICAgICMgY2xvc2VfY29ubmVj
dGlvbigpIGluaXRpYXRlcyBjbG9zaW5nIGhhbmRzaGFrZS4gSXQgdmFsaWRhdGVzIGNvZGUKLSAg
ICAgICAgIyBhbmQgcmVhc29uLiBJZiB5b3Ugd2FudCB0byBzZW5kIGEgYnJva2VuIGNsb3NlIGZy
YW1lIGZvciBhIHRlc3QsCi0gICAgICAgICMgZm9sbG93aW5nIGNvZGUgd2lsbCBiZSB1c2VmdWwu
Ci0gICAgICAgICMgPiBkYXRhID0gc3RydWN0LnBhY2soJyFIJywgaW50KGNvZGUpKSArIHJlYXNv
bi5lbmNvZGUoJ1VURi04JykKLSAgICAgICAgIyA+IHJlcXVlc3QuY29ubmVjdGlvbi53cml0ZShz
dHJlYW0uY3JlYXRlX2Nsb3NlX2ZyYW1lKGRhdGEpKQotICAgICAgICAjID4gIyBTdXBwcmVzcyB0
byByZS1yZXNwb25kIGNsaWVudCByZXNwb25kaW5nIGNsb3NlIGZyYW1lLgotICAgICAgICAjID4g
cmFpc2UgRXhjZXB0aW9uKCJjdXN0b21pemVkIHNlcnZlciBpbml0aWF0ZWQgY2xvc2luZyBoYW5k
c2hha2UiKQotCi0KLWRlZiB3ZWJfc29ja2V0X3Bhc3NpdmVfY2xvc2luZ19oYW5kc2hha2UocmVx
dWVzdCk6Ci0gICAgIyBTaW1wbHkgZWNobyBhIGNsb3NlIHN0YXR1cyBjb2RlCi0gICAgY29kZSwg
cmVhc29uID0gcmVxdWVzdC53c19jbG9zZV9jb2RlLCByZXF1ZXN0LndzX2Nsb3NlX3JlYXNvbgot
Ci0gICAgIyBweXdlYnNvY2tldCBzZXRzIHBzZXVkbyBjb2RlIGZvciByZWNlaXZpbmcgYW4gZW1w
dHkgYm9keSBjbG9zZSBmcmFtZS4KLSAgICBpZiBjb2RlID09IGNvbW1vbi5TVEFUVVNfTk9fU1RB
VFVTX1JFQ0VJVkVEOgotICAgICAgICBjb2RlID0gTm9uZQotICAgICAgICByZWFzb24gPSAnJwot
ICAgIHJldHVybiBjb2RlLCByZWFzb24KLQotCi0jIHZpOnN0cz00IHN3PTQgZXQKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3
ZWJzb2NrZXQvc3JjL2V4YW1wbGUvY29uc29sZS5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9zcmMvZXhhbXBsZS9jb25z
b2xlLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGNjZDZkOGY4MDY3NmI5OTkx
ZTIyZGZjN2VjODUwODM0MTFkZGQwYjMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy9weXdlYnNvY2tldC9zcmMvZXhhbXBsZS9jb25zb2xlLmh0bWwKKysrIC9kZXYvbnVs
bApAQCAtMSwzMTcgKzAsMCBAQAotPCEtLQotQ29weXJpZ2h0IDIwMTEsIEdvb2dsZSBJbmMuCi1B
bGwgcmlnaHRzIHJlc2VydmVkLgotCi1SZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLW1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKLW1ldDoKLQot
ICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKLW5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KLSAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKLWNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKLWluIHRoZSBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKLWRpc3RyaWJ1dGlv
bi4KLSAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBv
ZiBpdHMKLWNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJv
ZHVjdHMgZGVyaXZlZCBmcm9tCi10aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Ig
d3JpdHRlbiBwZXJtaXNzaW9uLgotCi1USElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBD
T1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCi0iQVMgSVMiIEFORCBBTlkgRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAotTElNSVRFRCBUTywg
VEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
Ci1BIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
VEhFIENPUFlSSUdIVAotT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCi1TUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCi1MSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKLURBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWQotVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVAotKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkg
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi1PRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotLS0+Ci0KLTwh
LS0KLUEgc2ltcGxlIGNvbnNvbGUgZm9yIHRlc3RpbmcgV2ViU29ja2V0IHNlcnZlci4KLQotVHlw
ZSBhbiBhZGRyZXNzIGludG8gdGhlIHRvcCB0ZXh0IGlucHV0IGFuZCBjbGljayBjb25uZWN0IHRv
IGVzdGFibGlzaAotV2ViU29ja2V0LiBUaGVuLCB0eXBlIHNvbWUgbWVzc2FnZSBpbnRvIHRoZSBi
b3R0b20gdGV4dCBpbnB1dCBhbmQgY2xpY2sgc2VuZAotdG8gc2VuZCB0aGUgbWVzc2FnZS4gUmVj
ZWl2ZWQvc2VudCBtZXNzYWdlcyBhbmQgY29ubmVjdGlvbiBzdGF0ZSB3aWxsIGJlIHNob3duCi1v
biB0aGUgbWlkZGxlIHRleHRhcmVhLgotLS0+Ci0KLTxodG1sPgotPGhlYWQ+Ci08dGl0bGU+V2Vi
U29ja2V0IGNvbnNvbGU8L3RpdGxlPgotPHNjcmlwdD4KLXZhciBzb2NrZXQgPSBudWxsOwotCi12
YXIgc2hvd1RpbWVTdGFtcCA9IGZhbHNlOwotCi12YXIgYWRkcmVzc0JveCA9IG51bGw7Ci12YXIg
cHJvdG9jb2xzQm94ID0gbnVsbDsKLXZhciBsb2dCb3ggPSBudWxsOwotdmFyIG1lc3NhZ2VCb3gg
PSBudWxsOwotdmFyIGZpbGVCb3ggPSBudWxsOwotdmFyIGNvZGVCb3ggPSBudWxsOwotdmFyIHJl
YXNvbkJveCA9IG51bGw7Ci0KLWZ1bmN0aW9uIGdldFRpbWVTdGFtcCgpIHsKLSAgcmV0dXJuIG5l
dyBEYXRlKCkuZ2V0VGltZSgpOwotfQotCi1mdW5jdGlvbiBhZGRUb0xvZyhsb2cpIHsKLSAgaWYg
KHNob3dUaW1lU3RhbXApIHsKLSAgICBsb2dCb3gudmFsdWUgKz0gJ1snICsgZ2V0VGltZVN0YW1w
KCkgKyAnXSAnOwotICB9Ci0gIGxvZ0JveC52YWx1ZSArPSBsb2cgKyAnXG4nCi0gIC8vIExhcmdl
IGVub3VnaCB0byBrZWVwIHNob3dpbmcgdGhlIGxhdGVzdCBtZXNzYWdlLgotICBsb2dCb3guc2Ny
b2xsVG9wID0gMTAwMDAwMDsKLX0KLQotZnVuY3Rpb24gc2V0YmluYXJ5dHlwZShiaW5hcnlUeXBl
KSB7Ci0gIGlmICghc29ja2V0KSB7Ci0gICAgYWRkVG9Mb2coJ05vdCBjb25uZWN0ZWQnKTsKLSAg
ICByZXR1cm47Ci0gIH0KLQotICBzb2NrZXQuYmluYXJ5VHlwZSA9IGJpbmFyeVR5cGU7Ci0gIGFk
ZFRvTG9nKCdTZXQgYmluYXJ5VHlwZSB0byAnICsgYmluYXJ5VHlwZSk7Ci19Ci0KLWZ1bmN0aW9u
IHNlbmQoKSB7Ci0gIGlmICghc29ja2V0KSB7Ci0gICAgYWRkVG9Mb2coJ05vdCBjb25uZWN0ZWQn
KTsKLSAgICByZXR1cm47Ci0gIH0KLQotICBzb2NrZXQuc2VuZChtZXNzYWdlQm94LnZhbHVlKTsK
LSAgYWRkVG9Mb2coJz4gJyArIG1lc3NhZ2VCb3gudmFsdWUpOwotICBtZXNzYWdlQm94LnZhbHVl
ID0gJyc7Ci19Ci0KLWZ1bmN0aW9uIHNlbmRmaWxlKCkgewotICBpZiAoIXNvY2tldCkgewotICAg
IGFkZFRvTG9nKCdOb3QgY29ubmVjdGVkJyk7Ci0gICAgcmV0dXJuOwotICB9Ci0KLSAgdmFyIGZp
bGVzID0gZmlsZUJveC5maWxlczsKLQotICBpZiAoZmlsZXMubGVuZ3RoID09IDApIHsKLSAgICBh
ZGRUb0xvZygnRmlsZSBub3Qgc2VsZWN0ZWQnKTsKLSAgICByZXR1cm47Ci0gIH0KLQotICBzb2Nr
ZXQuc2VuZChmaWxlc1swXSk7Ci0gIGFkZFRvTG9nKCc+IFNlbmQgJyArIGZpbGVzWzBdLm5hbWUp
OwotfQotCi1mdW5jdGlvbiBwYXJzZVByb3RvY29scyhwcm90b2NvbHNUZXh0KSB7Ci0gIHZhciBw
cm90b2NvbHMgPSBwcm90b2NvbHNUZXh0LnNwbGl0KCcsJyk7Ci0gIGZvciAodmFyIGkgPSAwOyBp
IDwgcHJvdG9jb2xzLmxlbmd0aDsgKytpKSB7Ci0gICAgcHJvdG9jb2xzW2ldID0gcHJvdG9jb2xz
W2ldLnRyaW0oKTsKLSAgfQotCi0gIGlmIChwcm90b2NvbHMubGVuZ3RoID09IDApIHsKLSAgICAv
LyBEb24ndCBwYXNzLgotICAgIHByb3RvY29scyA9IG51bGw7Ci0gIH0gZWxzZSBpZiAocHJvdG9j
b2xzLmxlbmd0aCA9PSAxKSB7Ci0gICAgaWYgKHByb3RvY29sc1swXS5sZW5ndGggPT0gMCkgewot
ICAgICAgLy8gRG9uJ3QgcGFzcy4KLSAgICAgIHByb3RvY29scyA9IG51bGw7Ci0gICAgfSBlbHNl
IHsKLSAgICAgIC8vIFBhc3MgYXMgYSBzdHJpbmcuCi0gICAgICBwcm90b2NvbHMgPSBwcm90b2Nv
bHNbMF07Ci0gICAgfQotICB9Ci0KLSAgcmV0dXJuIHByb3RvY29sczsKLX0KLQotZnVuY3Rpb24g
Y29ubmVjdCgpIHsKLSAgdmFyIHVybCA9IGFkZHJlc3NCb3gudmFsdWU7Ci0gIHZhciBwcm90b2Nv
bHMgPSBwYXJzZVByb3RvY29scyhwcm90b2NvbHNCb3gudmFsdWUpOwotCi0gIGlmICgnV2ViU29j
a2V0JyBpbiB3aW5kb3cpIHsKLSAgICBpZiAocHJvdG9jb2xzKSB7Ci0gICAgICBzb2NrZXQgPSBu
ZXcgV2ViU29ja2V0KHVybCwgcHJvdG9jb2xzKTsKLSAgICB9IGVsc2UgewotICAgICAgc29ja2V0
ID0gbmV3IFdlYlNvY2tldCh1cmwpOwotICAgIH0KLSAgfSBlbHNlIHsKLSAgICByZXR1cm47Ci0g
IH0KLQotICBzb2NrZXQub25vcGVuID0gZnVuY3Rpb24gKCkgewotICAgIHZhciBleHRyYUluZm8g
PSBbXTsKLSAgICBpZiAoKCdwcm90b2NvbCcgaW4gc29ja2V0KSAmJiBzb2NrZXQucHJvdG9jb2wp
IHsKLSAgICAgIGV4dHJhSW5mby5wdXNoKCdwcm90b2NvbCA9ICcgKyBzb2NrZXQucHJvdG9jb2wp
OwotICAgIH0KLSAgICBpZiAoKCdleHRlbnNpb25zJyBpbiBzb2NrZXQpICYmIHNvY2tldC5leHRl
bnNpb25zKSB7Ci0gICAgICBleHRyYUluZm8ucHVzaCgnZXh0ZW5zaW9ucyA9ICcgKyBzb2NrZXQu
ZXh0ZW5zaW9ucyk7Ci0gICAgfQotCi0gICAgdmFyIGxvZ01lc3NhZ2UgPSAnT3BlbmVkJzsKLSAg
ICBpZiAoZXh0cmFJbmZvLmxlbmd0aCA+IDApIHsKLSAgICAgIGxvZ01lc3NhZ2UgKz0gJyAoJyAr
IGV4dHJhSW5mby5qb2luKCcsICcpICsgJyknOwotICAgIH0KLSAgICBhZGRUb0xvZyhsb2dNZXNz
YWdlKTsKLSAgfTsKLSAgc29ja2V0Lm9ubWVzc2FnZSA9IGZ1bmN0aW9uIChldmVudCkgewotICAg
IGlmICgoJ0FycmF5QnVmZmVyJyBpbiB3aW5kb3cpICYmIChldmVudC5kYXRhIGluc3RhbmNlb2Yg
QXJyYXlCdWZmZXIpKSB7Ci0gICAgICBhZGRUb0xvZygnPCBSZWNlaXZlZCBhbiBBcnJheUJ1ZmZl
ciBvZiAnICsgZXZlbnQuZGF0YS5ieXRlTGVuZ3RoICsKLSAgICAgICAgICAgICAgICcgYnl0ZXMn
KQotICAgIH0gZWxzZSBpZiAoKCdCbG9iJyBpbiB3aW5kb3cpICYmIChldmVudC5kYXRhIGluc3Rh
bmNlb2YgQmxvYikpIHsKLSAgICAgIGFkZFRvTG9nKCc8IFJlY2VpdmVkIGEgQmxvYiBvZiAnICsg
ZXZlbnQuZGF0YS5zaXplICsgJyBieXRlcycpCi0gICAgfSBlbHNlIHsKLSAgICAgIGFkZFRvTG9n
KCc8ICcgKyBldmVudC5kYXRhKTsKLSAgICB9Ci0gIH07Ci0gIHNvY2tldC5vbmVycm9yID0gZnVu
Y3Rpb24gKCkgewotICAgIGFkZFRvTG9nKCdFcnJvcicpOwotICB9OwotICBzb2NrZXQub25jbG9z
ZSA9IGZ1bmN0aW9uIChldmVudCkgewotICAgIHZhciBsb2dNZXNzYWdlID0gJ0Nsb3NlZCAoJzsK
LSAgICBpZiAoKGFyZ3VtZW50cy5sZW5ndGggPT0gMSkgJiYgKCdDbG9zZUV2ZW50JyBpbiB3aW5k
b3cpICYmCi0gICAgICAgIChldmVudCBpbnN0YW5jZW9mIENsb3NlRXZlbnQpKSB7Ci0gICAgICBs
b2dNZXNzYWdlICs9ICd3YXNDbGVhbiA9ICcgKyBldmVudC53YXNDbGVhbjsKLSAgICAgIC8vIGNv
ZGUgYW5kIHJlYXNvbiBhcmUgcHJlc2VudCBvbmx5IGZvcgotICAgICAgLy8gZHJhZnQtaWV0Zi1o
eWJpLXRoZXdlYnNvY2tldHByb3RvY29sLTA2IGFuZCBsYXRlcgotICAgICAgaWYgKCdjb2RlJyBp
biBldmVudCkgewotICAgICAgICBsb2dNZXNzYWdlICs9ICcsIGNvZGUgPSAnICsgZXZlbnQuY29k
ZTsKLSAgICAgIH0KLSAgICAgIGlmICgncmVhc29uJyBpbiBldmVudCkgewotICAgICAgICBsb2dN
ZXNzYWdlICs9ICcsIHJlYXNvbiA9ICcgKyBldmVudC5yZWFzb247Ci0gICAgICB9Ci0gICAgfSBl
bHNlIHsKLSAgICAgIGxvZ01lc3NhZ2UgKz0gJ0Nsb3NlRXZlbnQgaXMgbm90IGF2YWlsYWJsZSc7
Ci0gICAgfQotICAgIGFkZFRvTG9nKGxvZ01lc3NhZ2UgKyAnKScpOwotICB9OwotCi0gIGlmIChw
cm90b2NvbHMpIHsKLSAgICBhZGRUb0xvZygnQ29ubmVjdCAnICsgdXJsICsgJyAocHJvdG9jb2xz
ID0gJyArIHByb3RvY29scyArICcpJyk7Ci0gIH0gZWxzZSB7Ci0gICAgYWRkVG9Mb2coJ0Nvbm5l
Y3QgJyArIHVybCk7Ci0gIH0KLX0KLQotZnVuY3Rpb24gY2xvc2VTb2NrZXQoKSB7Ci0gIGlmICgh
c29ja2V0KSB7Ci0gICAgYWRkVG9Mb2coJ05vdCBjb25uZWN0ZWQnKTsKLSAgICByZXR1cm47Ci0g
IH0KLQotICBpZiAoY29kZUJveC52YWx1ZSB8fCByZWFzb25Cb3gudmFsdWUpIHsKLSAgICBzb2Nr
ZXQuY2xvc2UoY29kZUJveC52YWx1ZSwgcmVhc29uQm94LnZhbHVlKTsKLSAgfSBlbHNlIHsKLSAg
ICBzb2NrZXQuY2xvc2UoKTsKLSAgfQotfQotCi1mdW5jdGlvbiBwcmludFN0YXRlKCkgewotICBp
ZiAoIXNvY2tldCkgewotICAgIGFkZFRvTG9nKCdOb3QgY29ubmVjdGVkJyk7Ci0gICAgcmV0dXJu
OwotICB9Ci0KLSAgYWRkVG9Mb2coCi0gICAgICAndXJsID0gJyArIHNvY2tldC51cmwgKwotICAg
ICAgJywgcmVhZHlTdGF0ZSA9ICcgKyBzb2NrZXQucmVhZHlTdGF0ZSArCi0gICAgICAnLCBidWZm
ZXJlZEFtb3VudCA9ICcgKyBzb2NrZXQuYnVmZmVyZWRBbW91bnQpOwotfQotCi1mdW5jdGlvbiBp
bml0KCkgewotICB2YXIgc2NoZW1lID0gd2luZG93LmxvY2F0aW9uLnByb3RvY29sID09ICdodHRw
czonID8gJ3dzczovLycgOiAnd3M6Ly8nOwotICB2YXIgZGVmYXVsdEFkZHJlc3MgPSBzY2hlbWUg
KyB3aW5kb3cubG9jYXRpb24uaG9zdCArICcvZWNobyc7Ci0KLSAgYWRkcmVzc0JveCA9IGRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKCdhZGRyZXNzJyk7Ci0gIHByb3RvY29sc0JveCA9IGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCdwcm90b2NvbHMnKTsKLSAgbG9nQm94ID0gZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoJ2xvZycpOwotICBtZXNzYWdlQm94ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
J21lc3NhZ2UnKTsKLSAgZmlsZUJveCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdmaWxlJyk7
Ci0gIGNvZGVCb3ggPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY29kZScpOwotICByZWFzb25C
b3ggPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncmVhc29uJyk7Ci0KLSAgYWRkcmVzc0JveC52
YWx1ZSA9IGRlZmF1bHRBZGRyZXNzOwotCi0gIGlmICghKCdXZWJTb2NrZXQnIGluIHdpbmRvdykp
IHsKLSAgICBhZGRUb0xvZygnV2ViU29ja2V0IGlzIG5vdCBhdmFpbGFibGUnKTsKLSAgfQotfQot
PC9zY3JpcHQ+Ci08c3R5bGUgdHlwZT0idGV4dC9jc3MiPgotZm9ybSB7Ci0gIG1hcmdpbjogMHB4
OwotfQotCi0jY29ubmVjdF9kaXYsICNsb2dfZGl2LCAjc2VuZF9kaXYsICNzZW5kZmlsZV9kaXYs
ICNjbG9zZV9kaXYsICNwcmludHN0YXRlX2RpdiB7Ci0gIHBhZGRpbmc6IDVweDsKLSAgbWFyZ2lu
OiA1cHg7Ci0gIGJvcmRlci13aWR0aDogMHB4IDBweCAwcHggMTBweDsKLSAgYm9yZGVyLXN0eWxl
OiBzb2xpZDsKLSAgYm9yZGVyLWNvbG9yOiBzaWx2ZXI7Ci19Ci08L3N0eWxlPgotPC9oZWFkPgot
PGJvZHkgb25sb2FkPSJpbml0KCkiPgotCi08ZGl2PgotCi08ZGl2IGlkPSJjb25uZWN0X2RpdiI+
Ci0gIDxmb3JtIGFjdGlvbj0iIyIgb25zdWJtaXQ9ImNvbm5lY3QoKTsgcmV0dXJuIGZhbHNlOyI+
Ci0gICAgdXJsIDxpbnB1dCB0eXBlPSJ0ZXh0IiBpZD0iYWRkcmVzcyIgc2l6ZT0iNDAiPgotICAg
IDxpbnB1dCB0eXBlPSJzdWJtaXQiIHZhbHVlPSJjb25uZWN0Ij4KLSAgICA8YnIvPgotICAgIHBy
b3RvY29scyA8aW5wdXQgdHlwZT0idGV4dCIgaWQ9InByb3RvY29scyIgc2l6ZT0iMjAiPgotICA8
L2Zvcm0+Ci08L2Rpdj4KLQotPGRpdiBpZD0ibG9nX2RpdiI+Ci0gIDx0ZXh0YXJlYSBpZD0ibG9n
IiByb3dzPSIxMCIgY29scz0iNDAiIHJlYWRvbmx5PjwvdGV4dGFyZWE+Ci0gIDxici8+Ci0gIDxp
bnB1dCB0eXBlPSJjaGVja2JveCIKLSAgICAgICAgIG5hbWU9InNob3d0aW1lc3RhbXAiCi0gICAg
ICAgICB2YWx1ZT0ic2hvd3RpbWVzdGFtcCIKLSAgICAgICAgIG9uY2xpY2s9InNob3dUaW1lU3Rh
bXAgPSB0aGlzLmNoZWNrZWQiPlNob3cgdGltZSBzdGFtcAotPC9kaXY+Ci0KLTxkaXYgaWQ9InNl
bmRfZGl2Ij4KLSAgPGZvcm0gYWN0aW9uPSIjIiBvbnN1Ym1pdD0ic2VuZCgpOyByZXR1cm4gZmFs
c2U7Ij4KLSAgICBkYXRhIDxpbnB1dCB0eXBlPSJ0ZXh0IiBpZD0ibWVzc2FnZSIgc2l6ZT0iNDAi
PgotICAgIDxpbnB1dCB0eXBlPSJzdWJtaXQiIHZhbHVlPSJzZW5kIj4KLSAgPC9mb3JtPgotPC9k
aXY+Ci0KLTxkaXYgaWQ9InNlbmRmaWxlX2RpdiI+Ci0gIDxmb3JtIGFjdGlvbj0iIyIgb25zdWJt
aXQ9InNlbmRmaWxlKCk7IHJldHVybiBmYWxzZTsiPgotICAgIDxpbnB1dCB0eXBlPSJmaWxlIiBp
ZD0iZmlsZSIgc2l6ZT0iNDAiPgotICAgIDxpbnB1dCB0eXBlPSJzdWJtaXQiIHZhbHVlPSJzZW5k
IGZpbGUiPgotICA8L2Zvcm0+Ci0KLSAgU2V0IGJpbmFyeVR5cGUKLSAgPGlucHV0IHR5cGU9InJh
ZGlvIgotICAgICAgICAgbmFtZT0iYmluYXJ5dHlwZSIKLSAgICAgICAgIHZhbHVlPSJibG9iIgot
ICAgICAgICAgb25jbGljaz0ic2V0YmluYXJ5dHlwZSgnYmxvYicpIiBjaGVja2VkPmJsb2IKLSAg
PGlucHV0IHR5cGU9InJhZGlvIgotICAgICAgICAgbmFtZT0iYmluYXJ5dHlwZSIKLSAgICAgICAg
IHZhbHVlPSJhcnJheWJ1ZmZlciIKLSAgICAgICAgIG9uY2xpY2s9InNldGJpbmFyeXR5cGUoJ2Fy
cmF5YnVmZmVyJykiPmFycmF5YnVmZmVyCi08L2Rpdj4KLQotPGRpdiBpZD0iY2xvc2VfZGl2Ij4K
LSAgPGZvcm0gYWN0aW9uPSIjIiBvbnN1Ym1pdD0iY2xvc2VTb2NrZXQoKTsgcmV0dXJuIGZhbHNl
OyI+Ci0gICAgY29kZSA8aW5wdXQgdHlwZT0idGV4dCIgaWQ9ImNvZGUiIHNpemU9IjEwIj4KLSAg
ICByZWFzb24gPGlucHV0IHR5cGU9InRleHQiIGlkPSJyZWFzb24iIHNpemU9IjIwIj4KLSAgICA8
aW5wdXQgdHlwZT0ic3VibWl0IiB2YWx1ZT0iY2xvc2UiPgotICA8L2Zvcm0+Ci08L2Rpdj4KLQot
PGRpdiBpZD0icHJpbnRzdGF0ZV9kaXYiPgotICA8aW5wdXQgdHlwZT0iYnV0dG9uIiB2YWx1ZT0i
cHJpbnQgc3RhdGUiIG9uY2xpY2s9InByaW50U3RhdGUoKTsiPgotPC9kaXY+Ci0KLTwvZGl2Pgot
Ci08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3NyYy9leGFtcGxlL2Nvb2tpZV93
c2gucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3B5d2Vic29ja2V0L3NyYy9leGFtcGxlL2Nvb2tpZV93c2gucHkKZGVsZXRlZCBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDhiMzI3MTUyZTcwMWY3ZDIwMzFkN2M5Y2UwNDYyNGNmYTg0YWMxNmQuLjAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9zcmMvZXhh
bXBsZS9jb29raWVfd3NoLnB5CisrKyAvZGV2L251bGwKQEAgLTEsMzIgKzAsMCBAQAotIyBDb3B5
cmlnaHQgMjAxNCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotIwotIyBVc2Ugb2Yg
dGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZQotIyBsaWNlbnNlIHRo
YXQgY2FuIGJlIGZvdW5kIGluIHRoZSBDT1BZSU5HIGZpbGUgb3IgYXQKLSMgaHR0cHM6Ly9kZXZl
bG9wZXJzLmdvb2dsZS5jb20vb3Blbi1zb3VyY2UvbGljZW5zZXMvYnNkCi0KLQotaW1wb3J0IHVy
bHBhcnNlCi0KLQotZGVmIF9hZGRfc2V0X2Nvb2tpZShyZXF1ZXN0LCB2YWx1ZSk6Ci0gICAgcmVx
dWVzdC5leHRyYV9oZWFkZXJzLmFwcGVuZCgoJ1NldC1Db29raWUnLCB2YWx1ZSkpCi0KLQotZGVm
IHdlYl9zb2NrZXRfZG9fZXh0cmFfaGFuZHNoYWtlKHJlcXVlc3QpOgotICAgIGNvbXBvbmVudHMg
PSB1cmxwYXJzZS51cmxwYXJzZShyZXF1ZXN0LnVyaSkKLSAgICBjb21tYW5kID0gY29tcG9uZW50
c1s0XQotCi0gICAgT05FX0RBWV9MSUZFID0gJ01heC1BZ2U9ODY0MDAnCi0KLSAgICBpZiBjb21t
YW5kID09ICdzZXQnOgotICAgICAgICBfYWRkX3NldF9jb29raWUocmVxdWVzdCwgJzsgJy5qb2lu
KFsnZm9vPWJhcicsIE9ORV9EQVlfTElGRV0pKQotICAgIGVsaWYgY29tbWFuZCA9PSAnc2V0X2h0
dHBvbmx5JzoKLSAgICAgICAgX2FkZF9zZXRfY29va2llKHJlcXVlc3QsCi0gICAgICAgICAgICAn
OyAnLmpvaW4oWydodHRwT25seUZvbz1iYXInLCBPTkVfREFZX0xJRkUsICdodHRwT25seSddKSkK
LSAgICBlbGlmIGNvbW1hbmQgPT0gJ2NsZWFyJzoKLSAgICAgICAgX2FkZF9zZXRfY29va2llKHJl
cXVlc3QsICdmb289MDsgTWF4LUFnZT0wJykKLSAgICAgICAgX2FkZF9zZXRfY29va2llKHJlcXVl
c3QsICdodHRwT25seUZvbz0wOyBNYXgtQWdlPTAnKQotCi0KLWRlZiB3ZWJfc29ja2V0X3RyYW5z
ZmVyX2RhdGEocmVxdWVzdCk6Ci0gICAgcGFzcwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9zcmMvZXhhbXBs
ZS9lY2hvX2NsaWVudC5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3JjL2V4YW1wbGUvZWNob19jbGllbnQucHkKZGVsZXRl
ZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDk0M2NlNjRlOGI4ODY1NjJmYzY5MjA5ODM0YmY5MmIx
Mzk5MTQyZjcuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNv
Y2tldC9zcmMvZXhhbXBsZS9lY2hvX2NsaWVudC5weQorKysgL2Rldi9udWxsCkBAIC0xLDExMjgg
KzAsMCBAQAotIyEvdXNyL2Jpbi9lbnYgcHl0aG9uCi0jCi0jIENvcHlyaWdodCAyMDExLCBHb29n
bGUgSW5jLgotIyBBbGwgcmlnaHRzIHJlc2VydmVkLgotIwotIyBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSMgbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zIGFyZQotIyBtZXQ6Ci0jCi0jICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0jIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSMgICAgICogUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQotIyBjb3B5
cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyCi0jIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUKLSMgZGlzdHJpYnV0aW9uLgotIyAgICAgKiBOZWl0aGVyIHRoZSBu
YW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCi0jIGNvbnRyaWJ1dG9ycyBt
YXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCi0j
IHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24u
Ci0jCi0jIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJT
IEFORCBDT05UUklCVVRPUlMKLSMgIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKLSMgTElNSVRFRCBUTywgVEhFIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCi0jIEEgUEFSVElD
VUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJ
R0hUCi0jIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLAotIyBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCi0jIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAotIyBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkKLSMgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVAotIyAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSMgT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLQotCi0i
IiJTaW1wbGUgV2ViU29ja2V0IGNsaWVudCBuYW1lZCBlY2hvX2NsaWVudCBqdXN0IGJlY2F1c2Ug
b2YgaGlzdG9yaWNhbCByZWFzb24uCi0KLW1vZF9weXdlYnNvY2tldCBkaXJlY3RvcnkgbXVzdCBi
ZSBpbiBQWVRIT05QQVRILgotCi1FeGFtcGxlIFVzYWdlOgotCi0jIHNlcnZlciBzZXR1cAotICUg
Y2QgJHB5d2Vic29ja2V0Ci0gJSBQWVRIT05QQVRIPSRjd2Qvc3JjIHB5dGhvbiAuL21vZF9weXdl
YnNvY2tldC9zdGFuZGFsb25lLnB5IC1wIDg4ODAgXAotICAgIC1kICRjd2Qvc3JjL2V4YW1wbGUK
LQotIyBydW4gY2xpZW50Ci0gJSBQWVRIT05QQVRIPSRjd2Qvc3JjIHB5dGhvbiAuL3NyYy9leGFt
cGxlL2VjaG9fY2xpZW50LnB5IC1wIDg4ODAgXAotICAgICAtcyBsb2NhbGhvc3QgXAotICAgICAt
byBodHRwOi8vbG9jYWxob3N0IC1yIC9lY2hvIC1tIHRlc3QKLQotb3IKLQotIyBydW4gZWNobyBj
bGllbnQgdG8gdGVzdCBJRVRGIEh5QmkgMDAgcHJvdG9jb2wKLSBydW4gd2l0aCAtLXByb3RvY29s
LXZlcnNpb249aHliaTAwCi0iIiIKLQotCi1pbXBvcnQgYmFzZTY0Ci1pbXBvcnQgY29kZWNzCi1p
bXBvcnQgbG9nZ2luZwotZnJvbSBvcHRwYXJzZSBpbXBvcnQgT3B0aW9uUGFyc2VyCi1pbXBvcnQg
b3MKLWltcG9ydCByYW5kb20KLWltcG9ydCByZQotaW1wb3J0IHNvY2tldAotaW1wb3J0IHN0cnVj
dAotaW1wb3J0IHN5cwotCi1mcm9tIG1vZF9weXdlYnNvY2tldCBpbXBvcnQgY29tbW9uCi1mcm9t
IG1vZF9weXdlYnNvY2tldC5leHRlbnNpb25zIGltcG9ydCBEZWZsYXRlRnJhbWVFeHRlbnNpb25Q
cm9jZXNzb3IKLWZyb20gbW9kX3B5d2Vic29ja2V0LmV4dGVuc2lvbnMgaW1wb3J0IFBlck1lc3Nh
Z2VEZWZsYXRlRXh0ZW5zaW9uUHJvY2Vzc29yCi1mcm9tIG1vZF9weXdlYnNvY2tldC5leHRlbnNp
b25zIGltcG9ydCBfUGVyTWVzc2FnZURlZmxhdGVGcmFtZXIKLWZyb20gbW9kX3B5d2Vic29ja2V0
LmV4dGVuc2lvbnMgaW1wb3J0IF9wYXJzZV93aW5kb3dfYml0cwotZnJvbSBtb2RfcHl3ZWJzb2Nr
ZXQuc3RyZWFtIGltcG9ydCBTdHJlYW0KLWZyb20gbW9kX3B5d2Vic29ja2V0LnN0cmVhbSBpbXBv
cnQgU3RyZWFtSGl4aWU3NQotZnJvbSBtb2RfcHl3ZWJzb2NrZXQuc3RyZWFtIGltcG9ydCBTdHJl
YW1PcHRpb25zCi1mcm9tIG1vZF9weXdlYnNvY2tldCBpbXBvcnQgdXRpbAotCi0KLV9USU1FT1VU
X1NFQyA9IDEwCi1fVU5ERUZJTkVEX1BPUlQgPSAtMQotCi1fVVBHUkFERV9IRUFERVIgPSAnVXBn
cmFkZTogd2Vic29ja2V0XHJcbicKLV9VUEdSQURFX0hFQURFUl9ISVhJRTc1ID0gJ1VwZ3JhZGU6
IFdlYlNvY2tldFxyXG4nCi1fQ09OTkVDVElPTl9IRUFERVIgPSAnQ29ubmVjdGlvbjogVXBncmFk
ZVxyXG4nCi0KLSMgU3BlY2lhbCBtZXNzYWdlIHRoYXQgdGVsbHMgdGhlIGVjaG8gc2VydmVyIHRv
IHN0YXJ0IGNsb3NpbmcgaGFuZHNoYWtlCi1fR09PREJZRV9NRVNTQUdFID0gJ0dvb2RieWUnCi0K
LV9QUk9UT0NPTF9WRVJTSU9OX0hZQkkxMyA9ICdoeWJpMTMnCi1fUFJPVE9DT0xfVkVSU0lPTl9I
WUJJMDggPSAnaHliaTA4JwotX1BST1RPQ09MX1ZFUlNJT05fSFlCSTAwID0gJ2h5YmkwMCcKLV9Q
Uk9UT0NPTF9WRVJTSU9OX0hJWElFNzUgPSAnaGl4aWU3NScKLQotIyBDb25zdGFudHMgZm9yIHRo
ZSAtLXRsc19tb2R1bGUgZmxhZy4KLV9UTFNfQllfU1RBTkRBUkRfTU9EVUxFID0gJ3NzbCcKLV9U
TFNfQllfUFlPUEVOU1NMID0gJ3B5b3BlbnNzbCcKLQotIyBWYWx1ZXMgdXNlZCBieSB0aGUgLS10
bHMtdmVyc2lvbiBmbGFnLgotX1RMU19WRVJTSU9OX1NTTDIzID0gJ3NzbDIzJwotX1RMU19WRVJT
SU9OX1NTTDMgPSAnc3NsMycKLV9UTFNfVkVSU0lPTl9UTFMxID0gJ3RsczEnCi0KLQotY2xhc3Mg
Q2xpZW50SGFuZHNoYWtlRXJyb3IoRXhjZXB0aW9uKToKLSAgICBwYXNzCi0KLQotZGVmIF9idWls
ZF9tZXRob2RfbGluZShyZXNvdXJjZSk6Ci0gICAgcmV0dXJuICdHRVQgJXMgSFRUUC8xLjFcclxu
JyAlIHJlc291cmNlCi0KLQotZGVmIF9vcmlnaW5faGVhZGVyKGhlYWRlciwgb3JpZ2luKToKLSAg
ICAjIDQuMSAxMy4gY29uY2F0ZW5hdGlvbiBvZiB0aGUgc3RyaW5nICJPcmlnaW46IiwgYSBVKzAw
MjAgU1BBQ0UgY2hhcmFjdGVyLAotICAgICMgYW5kIHRoZSAvb3JpZ2luLyB2YWx1ZSwgY29udmVy
dGVkIHRvIEFTQ0lJIGxvd2VyY2FzZSwgdG8gL2ZpZWxkcy8uCi0gICAgcmV0dXJuICclczogJXNc
clxuJyAlIChoZWFkZXIsIG9yaWdpbi5sb3dlcigpKQotCi0KLWRlZiBfZm9ybWF0X2hvc3RfaGVh
ZGVyKGhvc3QsIHBvcnQsIHNlY3VyZSk6Ci0gICAgIyA0LjEgOS4gTGV0IC9ob3N0cG9ydC8gYmUg
YW4gZW1wdHkgc3RyaW5nLgotICAgICMgNC4xIDEwLiBBcHBlbmQgdGhlIC9ob3N0LyB2YWx1ZSwg
Y29udmVydGVkIHRvIEFTQ0lJIGxvd2VyY2FzZSwgdG8KLSAgICAjIC9ob3N0cG9ydC8KLSAgICBo
b3N0cG9ydCA9IGhvc3QubG93ZXIoKQotICAgICMgNC4xIDExLiBJZiAvc2VjdXJlLyBpcyBmYWxz
ZSwgYW5kIC9wb3J0LyBpcyBub3QgODAsIG9yIGlmIC9zZWN1cmUvCi0gICAgIyBpcyB0cnVlLCBh
bmQgL3BvcnQvIGlzIG5vdCA0NDMsIHRoZW4gYXBwZW5kIGEgVSswMDNBIENPTE9OIGNoYXJhY3Rl
cgotICAgICMgKDopIGZvbGxvd2VkIGJ5IHRoZSB2YWx1ZSBvZiAvcG9ydC8sIGV4cHJlc3NlZCBh
cyBhIGJhc2UtdGVuIGludGVnZXIsCi0gICAgIyB0byAvaG9zdHBvcnQvCi0gICAgaWYgKChub3Qg
c2VjdXJlIGFuZCBwb3J0ICE9IGNvbW1vbi5ERUZBVUxUX1dFQl9TT0NLRVRfUE9SVCkgb3IKLSAg
ICAgICAgKHNlY3VyZSBhbmQgcG9ydCAhPSBjb21tb24uREVGQVVMVF9XRUJfU09DS0VUX1NFQ1VS
RV9QT1JUKSk6Ci0gICAgICAgIGhvc3Rwb3J0ICs9ICc6JyArIHN0cihwb3J0KQotICAgICMgNC4x
IDEyLiBjb25jYXRlbmF0aW9uIG9mIHRoZSBzdHJpbmcgIkhvc3Q6IiwgYSBVKzAwMjAgU1BBQ0UK
LSAgICAjIGNoYXJhY3RlciwgYW5kIC9ob3N0cG9ydC8sIHRvIC9maWVsZHMvLgotICAgIHJldHVy
biAnJXM6ICVzXHJcbicgJSAoY29tbW9uLkhPU1RfSEVBREVSLCBob3N0cG9ydCkKLQotCi1kZWYg
X3JlY2VpdmVfYnl0ZXMoc29ja2V0LCBsZW5ndGgpOgotICAgIGJ5dGVzID0gW10KLSAgICByZW1h
aW5pbmcgPSBsZW5ndGgKLSAgICB3aGlsZSByZW1haW5pbmcgPiAwOgotICAgICAgICByZWNlaXZl
ZF9ieXRlcyA9IHNvY2tldC5yZWN2KHJlbWFpbmluZykKLSAgICAgICAgaWYgbm90IHJlY2VpdmVk
X2J5dGVzOgotICAgICAgICAgICAgcmFpc2UgSU9FcnJvcigKLSAgICAgICAgICAgICAgICAnQ29u
bmVjdGlvbiBjbG9zZWQgYmVmb3JlIHJlY2VpdmluZyByZXF1ZXN0ZWQgbGVuZ3RoICcKLSAgICAg
ICAgICAgICAgICAnKHJlcXVlc3RlZCAlZCBieXRlcyBidXQgcmVjZWl2ZWQgb25seSAlZCBieXRl
cyknICUKLSAgICAgICAgICAgICAgICAobGVuZ3RoLCBsZW5ndGggLSByZW1haW5pbmcpKQotICAg
ICAgICBieXRlcy5hcHBlbmQocmVjZWl2ZWRfYnl0ZXMpCi0gICAgICAgIHJlbWFpbmluZyAtPSBs
ZW4ocmVjZWl2ZWRfYnl0ZXMpCi0gICAgcmV0dXJuICcnLmpvaW4oYnl0ZXMpCi0KLQotZGVmIF9n
ZXRfbWFuZGF0b3J5X2hlYWRlcihmaWVsZHMsIG5hbWUpOgotICAgICIiIkdldHMgdGhlIHZhbHVl
IG9mIHRoZSBoZWFkZXIgc3BlY2lmaWVkIGJ5IG5hbWUgZnJvbSBmaWVsZHMuCi0KLSAgICBUaGlz
IGZ1bmN0aW9uIGV4cGVjdHMgdGhhdCB0aGVyZSdzIG9ubHkgb25lIGhlYWRlciB3aXRoIHRoZSBz
cGVjaWZpZWQgbmFtZQotICAgIGluIGZpZWxkcy4gT3RoZXJ3aXNlLCByYWlzZXMgYW4gQ2xpZW50
SGFuZHNoYWtlRXJyb3IuCi0gICAgIiIiCi0KLSAgICB2YWx1ZXMgPSBmaWVsZHMuZ2V0KG5hbWUu
bG93ZXIoKSkKLSAgICBpZiB2YWx1ZXMgaXMgTm9uZSBvciBsZW4odmFsdWVzKSA9PSAwOgotICAg
ICAgICByYWlzZSBDbGllbnRIYW5kc2hha2VFcnJvcigKLSAgICAgICAgICAgICclcyBoZWFkZXIg
bm90IGZvdW5kOiAlcicgJSAobmFtZSwgdmFsdWVzKSkKLSAgICBpZiBsZW4odmFsdWVzKSA+IDE6
Ci0gICAgICAgIHJhaXNlIENsaWVudEhhbmRzaGFrZUVycm9yKAotICAgICAgICAgICAgJ011bHRp
cGxlICVzIGhlYWRlcnMgZm91bmQ6ICVyJyAlIChuYW1lLCB2YWx1ZXMpKQotICAgIHJldHVybiB2
YWx1ZXNbMF0KLQotCi1kZWYgX3ZhbGlkYXRlX21hbmRhdG9yeV9oZWFkZXIoZmllbGRzLCBuYW1l
LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4cGVjdGVkX3ZhbHVlLCBjYXNlX3Nl
bnNpdGl2ZT1GYWxzZSk6Ci0gICAgIiIiR2V0cyBhbmQgdmFsaWRhdGVzIHRoZSB2YWx1ZSBvZiB0
aGUgaGVhZGVyIHNwZWNpZmllZCBieSBuYW1lIGZyb20KLSAgICBmaWVsZHMuCi0KLSAgICBJZiBl
eHBlY3RlZF92YWx1ZSBpcyBzcGVjaWZpZWQsIGNvbXBhcmVzIGV4cGVjdGVkIHZhbHVlIGFuZCBh
Y3R1YWwgdmFsdWUKLSAgICBhbmQgcmFpc2VzIGFuIENsaWVudEhhbmRzaGFrZUVycm9yIG9uIGZh
aWx1cmUuIFlvdSBjYW4gc3BlY2lmeSBjYXNlCi0gICAgc2Vuc2l0aXZlbmVzcyBpbiB0aGlzIGNv
bXBhcmlzb24gYnkgY2FzZV9zZW5zaXRpdmUgcGFyYW1ldGVyLiBUaGlzIGZ1bmN0aW9uCi0gICAg
ZXhwZWN0cyB0aGF0IHRoZXJlJ3Mgb25seSBvbmUgaGVhZGVyIHdpdGggdGhlIHNwZWNpZmllZCBu
YW1lIGluIGZpZWxkcy4KLSAgICBPdGhlcndpc2UsIHJhaXNlcyBhbiBDbGllbnRIYW5kc2hha2VF
cnJvci4KLSAgICAiIiIKLQotICAgIHZhbHVlID0gX2dldF9tYW5kYXRvcnlfaGVhZGVyKGZpZWxk
cywgbmFtZSkKLQotICAgIGlmICgoY2FzZV9zZW5zaXRpdmUgYW5kIHZhbHVlICE9IGV4cGVjdGVk
X3ZhbHVlKSBvcgotICAgICAgICAobm90IGNhc2Vfc2Vuc2l0aXZlIGFuZCB2YWx1ZS5sb3dlcigp
ICE9IGV4cGVjdGVkX3ZhbHVlLmxvd2VyKCkpKToKLSAgICAgICAgcmFpc2UgQ2xpZW50SGFuZHNo
YWtlRXJyb3IoCi0gICAgICAgICAgICAnSWxsZWdhbCB2YWx1ZSBmb3IgaGVhZGVyICVzOiAlciAo
ZXhwZWN0ZWQpIHZzICVyIChhY3R1YWwpJyAlCi0gICAgICAgICAgICAobmFtZSwgZXhwZWN0ZWRf
dmFsdWUsIHZhbHVlKSkKLQotCi1jbGFzcyBfVExTU29ja2V0KG9iamVjdCk6Ci0gICAgIiIiV3Jh
cHBlciBmb3IgYSBUTFMgY29ubmVjdGlvbi4iIiIKLQotICAgIGRlZiBfX2luaXRfXyhzZWxmLAot
ICAgICAgICAgICAgICAgICByYXdfc29ja2V0LCB0bHNfbW9kdWxlLCB0bHNfdmVyc2lvbiwgZGlz
YWJsZV90bHNfY29tcHJlc3Npb24pOgotICAgICAgICBzZWxmLl9sb2dnZXIgPSB1dGlsLmdldF9j
bGFzc19sb2dnZXIoc2VsZikKLQotICAgICAgICBpZiB0bHNfbW9kdWxlID09IF9UTFNfQllfU1RB
TkRBUkRfTU9EVUxFOgotICAgICAgICAgICAgaWYgdGxzX3ZlcnNpb24gPT0gX1RMU19WRVJTSU9O
X1NTTDIzOgotICAgICAgICAgICAgICAgIHZlcnNpb24gPSBzc2wuUFJPVE9DT0xfU1NMdjIzCi0g
ICAgICAgICAgICBlbGlmIHRsc192ZXJzaW9uID09IF9UTFNfVkVSU0lPTl9TU0wzOgotICAgICAg
ICAgICAgICAgIHZlcnNpb24gPSBzc2wuUFJPVE9DT0xfU1NMdjMKLSAgICAgICAgICAgIGVsaWYg
dGxzX3ZlcnNpb24gPT0gX1RMU19WRVJTSU9OX1RMUzE6Ci0gICAgICAgICAgICAgICAgdmVyc2lv
biA9IHNzbC5QUk9UT0NPTF9UTFN2MQotICAgICAgICAgICAgZWxzZToKLSAgICAgICAgICAgICAg
ICByYWlzZSBWYWx1ZUVycm9yKAotICAgICAgICAgICAgICAgICAgICAnSW52YWxpZCAtLXRscy12
ZXJzaW9uIGZsYWc6ICVyJyAlIHRsc192ZXJzaW9uKQotCi0gICAgICAgICAgICBpZiBkaXNhYmxl
X3Rsc19jb21wcmVzc2lvbjoKLSAgICAgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKAotICAg
ICAgICAgICAgICAgICAgICAnLS1kaXNhYmxlLXRscy1jb21wcmVzc2lvbiBpcyBub3QgYXZhaWxh
YmxlIGZvciBzc2wgJwotICAgICAgICAgICAgICAgICAgICAnbW9kdWxlJykKLQotICAgICAgICAg
ICAgc2VsZi5fdGxzX3NvY2tldCA9IHNzbC53cmFwX3NvY2tldChyYXdfc29ja2V0LCBzc2xfdmVy
c2lvbj12ZXJzaW9uKQotCi0gICAgICAgICAgICAjIFByaW50IGNpcGhlciBpbiB1c2UuIEhhbmRz
aGFrZSBpcyBkb25lIG9uIHdyYXBfc29ja2V0IGNhbGwuCi0gICAgICAgICAgICBzZWxmLl9sb2dn
ZXIuaW5mbygiQ2lwaGVyOiAlcyIsIHNlbGYuX3Rsc19zb2NrZXQuY2lwaGVyKCkpCi0gICAgICAg
IGVsaWYgdGxzX21vZHVsZSA9PSBfVExTX0JZX1BZT1BFTlNTTDoKLSAgICAgICAgICAgIGlmIHRs
c192ZXJzaW9uID09IF9UTFNfVkVSU0lPTl9TU0wyMzoKLSAgICAgICAgICAgICAgICB2ZXJzaW9u
ID0gT3BlblNTTC5TU0wuU1NMdjIzX01FVEhPRAotICAgICAgICAgICAgZWxpZiB0bHNfdmVyc2lv
biA9PSBfVExTX1ZFUlNJT05fU1NMMzoKLSAgICAgICAgICAgICAgICB2ZXJzaW9uID0gT3BlblNT
TC5TU0wuU1NMdjNfTUVUSE9ECi0gICAgICAgICAgICBlbGlmIHRsc192ZXJzaW9uID09IF9UTFNf
VkVSU0lPTl9UTFMxOgotICAgICAgICAgICAgICAgIHZlcnNpb24gPSBPcGVuU1NMLlNTTC5UTFN2
MV9NRVRIT0QKLSAgICAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAgICAgcmFpc2UgVmFsdWVF
cnJvcigKLSAgICAgICAgICAgICAgICAgICAgJ0ludmFsaWQgLS10bHMtdmVyc2lvbiBmbGFnOiAl
cicgJSB0bHNfdmVyc2lvbikKLQotICAgICAgICAgICAgY29udGV4dCA9IE9wZW5TU0wuU1NMLkNv
bnRleHQodmVyc2lvbikKLQotICAgICAgICAgICAgaWYgZGlzYWJsZV90bHNfY29tcHJlc3Npb246
Ci0gICAgICAgICAgICAgICAgIyBPUF9OT19DT01QUkVTU0lPTiBpcyBub3QgZGVmaW5lZCBpbiBP
cGVuU1NMIG1vZHVsZS4KLSAgICAgICAgICAgICAgICBjb250ZXh0LnNldF9vcHRpb25zKDB4MDAw
MjAwMDApCi0KLSAgICAgICAgICAgIHNlbGYuX3Rsc19zb2NrZXQgPSBPcGVuU1NMLlNTTC5Db25u
ZWN0aW9uKGNvbnRleHQsIHJhd19zb2NrZXQpCi0gICAgICAgICAgICAjIENsaWVudCBtb2RlLgot
ICAgICAgICAgICAgc2VsZi5fdGxzX3NvY2tldC5zZXRfY29ubmVjdF9zdGF0ZSgpCi0gICAgICAg
ICAgICBzZWxmLl90bHNfc29ja2V0LnNldGJsb2NraW5nKFRydWUpCi0KLSAgICAgICAgICAgICMg
RG8gaGFuZHNoYWtlIG5vdyAobm90IG5lY2Vzc2FyeSkuCi0gICAgICAgICAgICBzZWxmLl90bHNf
c29ja2V0LmRvX2hhbmRzaGFrZSgpCi0gICAgICAgIGVsc2U6Ci0gICAgICAgICAgICByYWlzZSBW
YWx1ZUVycm9yKCdObyBUTFMgc3VwcG9ydCBtb2R1bGUgaXMgYXZhaWxhYmxlJykKLQotICAgIGRl
ZiBzZW5kKHNlbGYsIGRhdGEpOgotICAgICAgICByZXR1cm4gc2VsZi5fdGxzX3NvY2tldC53cml0
ZShkYXRhKQotCi0gICAgZGVmIHNlbmRhbGwoc2VsZiwgZGF0YSk6Ci0gICAgICAgIHJldHVybiBz
ZWxmLl90bHNfc29ja2V0LnNlbmRhbGwoZGF0YSkKLQotICAgIGRlZiByZWN2KHNlbGYsIHNpemU9
LTEpOgotICAgICAgICByZXR1cm4gc2VsZi5fdGxzX3NvY2tldC5yZWFkKHNpemUpCi0KLSAgICBk
ZWYgY2xvc2Uoc2VsZik6Ci0gICAgICAgIHJldHVybiBzZWxmLl90bHNfc29ja2V0LmNsb3NlKCkK
LQotICAgIGRlZiBnZXRwZWVybmFtZShzZWxmKToKLSAgICAgICAgcmV0dXJuIHNlbGYuX3Rsc19z
b2NrZXQuZ2V0cGVlcm5hbWUoKQotCi0KLWNsYXNzIENsaWVudEhhbmRzaGFrZUJhc2Uob2JqZWN0
KToKLSAgICAiIiJBIGJhc2UgY2xhc3MgZm9yIFdlYlNvY2tldCBvcGVuaW5nIGhhbmRzaGFrZSBw
cm9jZXNzb3JzIGZvciBlYWNoCi0gICAgcHJvdG9jb2wgdmVyc2lvbi4KLSAgICAiIiIKLQotICAg
IGRlZiBfX2luaXRfXyhzZWxmKToKLSAgICAgICAgc2VsZi5fbG9nZ2VyID0gdXRpbC5nZXRfY2xh
c3NfbG9nZ2VyKHNlbGYpCi0KLSAgICBkZWYgX3JlYWRfZmllbGRzKHNlbGYpOgotICAgICAgICAj
IDQuMSAzMi4gbGV0IC9maWVsZHMvIGJlIGEgbGlzdCBvZiBuYW1lLXZhbHVlIHBhaXJzLCBpbml0
aWFsbHkgZW1wdHkuCi0gICAgICAgIGZpZWxkcyA9IHt9Ci0gICAgICAgIHdoaWxlIFRydWU6ICAj
ICJGaWVsZCIKLSAgICAgICAgICAgICMgNC4xIDMzLiBsZXQgL25hbWUvIGFuZCAvdmFsdWUvIGJl
IGVtcHR5IGJ5dGUgYXJyYXlzCi0gICAgICAgICAgICBuYW1lID0gJycKLSAgICAgICAgICAgIHZh
bHVlID0gJycKLSAgICAgICAgICAgICMgNC4xIDM0LiByZWFkIC9uYW1lLwotICAgICAgICAgICAg
bmFtZSA9IHNlbGYuX3JlYWRfbmFtZSgpCi0gICAgICAgICAgICBpZiBuYW1lIGlzIE5vbmU6Ci0g
ICAgICAgICAgICAgICAgYnJlYWsKLSAgICAgICAgICAgICMgNC4xIDM1LiByZWFkIHNwYWNlcwot
ICAgICAgICAgICAgIyBUT0RPKHR5b3NoaW5vKTogU2tpcCBvbmx5IG9uZSBzcGFjZSBhcyBkZXNj
cmliZWQgaW4gdGhlIHNwZWMuCi0gICAgICAgICAgICBjaCA9IHNlbGYuX3NraXBfc3BhY2VzKCkK
LSAgICAgICAgICAgICMgNC4xIDM2LiByZWFkIC92YWx1ZS8KLSAgICAgICAgICAgIHZhbHVlID0g
c2VsZi5fcmVhZF92YWx1ZShjaCkKLSAgICAgICAgICAgICMgNC4xIDM3LiByZWFkIGEgYnl0ZSBm
cm9tIHRoZSBzZXJ2ZXIKLSAgICAgICAgICAgIGNoID0gX3JlY2VpdmVfYnl0ZXMoc2VsZi5fc29j
a2V0LCAxKQotICAgICAgICAgICAgaWYgY2ggIT0gJ1xuJzogICMgMHgwQQotICAgICAgICAgICAg
ICAgIHJhaXNlIENsaWVudEhhbmRzaGFrZUVycm9yKAotICAgICAgICAgICAgICAgICAgICAnRXhw
ZWN0ZWQgTEYgYnV0IGZvdW5kICVyIHdoaWxlIHJlYWRpbmcgdmFsdWUgJXIgZm9yICcKLSAgICAg
ICAgICAgICAgICAgICAgJ2hlYWRlciAlcicgJSAoY2gsIHZhbHVlLCBuYW1lKSkKLSAgICAgICAg
ICAgIHNlbGYuX2xvZ2dlci5kZWJ1ZygnUmVjZWl2ZWQgJXIgaGVhZGVyJywgbmFtZSkKLSAgICAg
ICAgICAgICMgNC4xIDM4LiBhcHBlbmQgYW4gZW50cnkgdG8gdGhlIC9maWVsZHMvIGxpc3QgdGhh
dCBoYXMgdGhlIG5hbWUKLSAgICAgICAgICAgICMgZ2l2ZW4gYnkgdGhlIHN0cmluZyBvYnRhaW5l
ZCBieSBpbnRlcnByZXRpbmcgdGhlIC9uYW1lLyBieXRlCi0gICAgICAgICAgICAjIGFycmF5IGFz
IGEgVVRGLTggc3RyZWFtIGFuZCB0aGUgdmFsdWUgZ2l2ZW4gYnkgdGhlIHN0cmluZwotICAgICAg
ICAgICAgIyBvYnRhaW5lZCBieSBpbnRlcnByZXRpbmcgdGhlIC92YWx1ZS8gYnl0ZSBhcnJheSBh
cyBhIFVURi04IGJ5dGUKLSAgICAgICAgICAgICMgc3RyZWFtLgotICAgICAgICAgICAgZmllbGRz
LnNldGRlZmF1bHQobmFtZSwgW10pLmFwcGVuZCh2YWx1ZSkKLSAgICAgICAgICAgICMgNC4xIDM5
LiByZXR1cm4gdG8gdGhlICJGaWVsZCIgc3RlcCBhYm92ZQotICAgICAgICByZXR1cm4gZmllbGRz
Ci0KLSAgICBkZWYgX3JlYWRfbmFtZShzZWxmKToKLSAgICAgICAgIyA0LjEgMzMuIGxldCAvbmFt
ZS8gYmUgZW1wdHkgYnl0ZSBhcnJheXMKLSAgICAgICAgbmFtZSA9ICcnCi0gICAgICAgIHdoaWxl
IFRydWU6Ci0gICAgICAgICAgICAjIDQuMSAzNC4gcmVhZCBhIGJ5dGUgZnJvbSB0aGUgc2VydmVy
Ci0gICAgICAgICAgICBjaCA9IF9yZWNlaXZlX2J5dGVzKHNlbGYuX3NvY2tldCwgMSkKLSAgICAg
ICAgICAgIGlmIGNoID09ICdccic6ICAjIDB4MEQKLSAgICAgICAgICAgICAgICByZXR1cm4gTm9u
ZQotICAgICAgICAgICAgZWxpZiBjaCA9PSAnXG4nOiAgIyAweDBBCi0gICAgICAgICAgICAgICAg
cmFpc2UgQ2xpZW50SGFuZHNoYWtlRXJyb3IoCi0gICAgICAgICAgICAgICAgICAgICdVbmV4cGVj
dGVkIExGIHdoZW4gcmVhZGluZyBoZWFkZXIgbmFtZSAlcicgJSBuYW1lKQotICAgICAgICAgICAg
ZWxpZiBjaCA9PSAnOic6ICAjIDB4M0EKLSAgICAgICAgICAgICAgICByZXR1cm4gbmFtZQotICAg
ICAgICAgICAgZWxpZiBjaCA+PSAnQScgYW5kIGNoIDw9ICdaJzogICMgUmFuZ2UgMHgzMSB0byAw
eDVBCi0gICAgICAgICAgICAgICAgY2ggPSBjaHIob3JkKGNoKSArIDB4MjApCi0gICAgICAgICAg
ICAgICAgbmFtZSArPSBjaAotICAgICAgICAgICAgZWxzZToKLSAgICAgICAgICAgICAgICBuYW1l
ICs9IGNoCi0KLSAgICBkZWYgX3NraXBfc3BhY2VzKHNlbGYpOgotICAgICAgICAjIDQuMSAzNS4g
cmVhZCBhIGJ5dGUgZnJvbSB0aGUgc2VydmVyCi0gICAgICAgIHdoaWxlIFRydWU6Ci0gICAgICAg
ICAgICBjaCA9IF9yZWNlaXZlX2J5dGVzKHNlbGYuX3NvY2tldCwgMSkKLSAgICAgICAgICAgIGlm
IGNoID09ICcgJzogICMgMHgyMAotICAgICAgICAgICAgICAgIGNvbnRpbnVlCi0gICAgICAgICAg
ICByZXR1cm4gY2gKLQotICAgIGRlZiBfcmVhZF92YWx1ZShzZWxmLCBjaCk6Ci0gICAgICAgICMg
NC4xIDMzLiBsZXQgL3ZhbHVlLyBiZSBlbXB0eSBieXRlIGFycmF5cwotICAgICAgICB2YWx1ZSA9
ICcnCi0gICAgICAgICMgNC4xIDM2LiByZWFkIGEgYnl0ZSBmcm9tIHNlcnZlci4KLSAgICAgICAg
d2hpbGUgVHJ1ZToKLSAgICAgICAgICAgIGlmIGNoID09ICdccic6ICAjIDB4MEQKLSAgICAgICAg
ICAgICAgICByZXR1cm4gdmFsdWUKLSAgICAgICAgICAgIGVsaWYgY2ggPT0gJ1xuJzogICMgMHgw
QQotICAgICAgICAgICAgICAgIHJhaXNlIENsaWVudEhhbmRzaGFrZUVycm9yKAotICAgICAgICAg
ICAgICAgICAgICAnVW5leHBlY3RlZCBMRiB3aGVuIHJlYWRpbmcgaGVhZGVyIHZhbHVlICVyJyAl
IHZhbHVlKQotICAgICAgICAgICAgZWxzZToKLSAgICAgICAgICAgICAgICB2YWx1ZSArPSBjaAot
ICAgICAgICAgICAgY2ggPSBfcmVjZWl2ZV9ieXRlcyhzZWxmLl9zb2NrZXQsIDEpCi0KLQotZGVm
IF9nZXRfcGVybWVzc2FnZV9kZWZsYXRlX2ZyYW1lcihleHRlbnNpb25fcmVzcG9uc2UpOgotICAg
ICIiIlZhbGlkYXRlIHRoZSByZXNwb25zZSBhbmQgcmV0dXJuIGEgZnJhbWVyIG9iamVjdCB1c2lu
ZyB0aGUgcGFyYW1ldGVycyBpbgotICAgIHRoZSByZXNwb25zZS4gVGhpcyBtZXRob2QgZG9lc24n
dCBhY2NlcHQgdGhlIHNlcnZlcl8uKiBwYXJhbWV0ZXJzLgotICAgICIiIgotCi0gICAgY2xpZW50
X21heF93aW5kb3dfYml0cyA9IE5vbmUKLSAgICBjbGllbnRfbm9fY29udGV4dF90YWtlb3ZlciA9
IE5vbmUKLQotICAgIGNsaWVudF9tYXhfd2luZG93X2JpdHNfbmFtZSA9ICgKLSAgICAgICAgICAg
IFBlck1lc3NhZ2VEZWZsYXRlRXh0ZW5zaW9uUHJvY2Vzc29yLgotICAgICAgICAgICAgICAgICAg
ICBfQ0xJRU5UX01BWF9XSU5ET1dfQklUU19QQVJBTSkKLSAgICBjbGllbnRfbm9fY29udGV4dF90
YWtlb3Zlcl9uYW1lID0gKAotICAgICAgICAgICAgUGVyTWVzc2FnZURlZmxhdGVFeHRlbnNpb25Q
cm9jZXNzb3IuCi0gICAgICAgICAgICAgICAgICAgIF9DTElFTlRfTk9fQ09OVEVYVF9UQUtFT1ZF
Ul9QQVJBTSkKLQotICAgICMgV2UgZGlkbid0IHNlbmQgYW55IHNlcnZlcl8uKiBwYXJhbWV0ZXIu
Ci0gICAgIyBIYW5kbGUgdGhvc2UgcGFyYW1ldGVycyBhcyBpbnZhbGlkIGlmIGZvdW5kIGluIHRo
ZSByZXNwb25zZS4KLQotICAgIGZvciBwYXJhbV9uYW1lLCBwYXJhbV92YWx1ZSBpbiBleHRlbnNp
b25fcmVzcG9uc2UuZ2V0X3BhcmFtZXRlcnMoKToKLSAgICAgICAgaWYgcGFyYW1fbmFtZSA9PSBj
bGllbnRfbWF4X3dpbmRvd19iaXRzX25hbWU6Ci0gICAgICAgICAgICBpZiBjbGllbnRfbWF4X3dp
bmRvd19iaXRzIGlzIG5vdCBOb25lOgotICAgICAgICAgICAgICAgIHJhaXNlIENsaWVudEhhbmRz
aGFrZUVycm9yKAotICAgICAgICAgICAgICAgICAgICAgICAgJ011bHRpcGxlICVzIGZvdW5kJyAl
IGNsaWVudF9tYXhfd2luZG93X2JpdHNfbmFtZSkKLQotICAgICAgICAgICAgcGFyc2VkX3ZhbHVl
ID0gX3BhcnNlX3dpbmRvd19iaXRzKHBhcmFtX3ZhbHVlKQotICAgICAgICAgICAgaWYgcGFyc2Vk
X3ZhbHVlIGlzIE5vbmU6Ci0gICAgICAgICAgICAgICAgcmFpc2UgQ2xpZW50SGFuZHNoYWtlRXJy
b3IoCi0gICAgICAgICAgICAgICAgICAgICAgICAnQmFkICVzOiAlcicgJQotICAgICAgICAgICAg
ICAgICAgICAgICAgKGNsaWVudF9tYXhfd2luZG93X2JpdHNfbmFtZSwgcGFyYW1fdmFsdWUpKQot
ICAgICAgICAgICAgY2xpZW50X21heF93aW5kb3dfYml0cyA9IHBhcnNlZF92YWx1ZQotICAgICAg
ICBlbGlmIHBhcmFtX25hbWUgPT0gY2xpZW50X25vX2NvbnRleHRfdGFrZW92ZXJfbmFtZToKLSAg
ICAgICAgICAgIGlmIGNsaWVudF9ub19jb250ZXh0X3Rha2VvdmVyIGlzIG5vdCBOb25lOgotICAg
ICAgICAgICAgICAgIHJhaXNlIENsaWVudEhhbmRzaGFrZUVycm9yKAotICAgICAgICAgICAgICAg
ICAgICAgICAgJ011bHRpcGxlICVzIGZvdW5kJyAlIGNsaWVudF9ub19jb250ZXh0X3Rha2VvdmVy
X25hbWUpCi0KLSAgICAgICAgICAgIGlmIHBhcmFtX3ZhbHVlIGlzIG5vdCBOb25lOgotICAgICAg
ICAgICAgICAgIHJhaXNlIENsaWVudEhhbmRzaGFrZUVycm9yKAotICAgICAgICAgICAgICAgICAg
ICAgICAgJ0JhZCAlczogSGFzIHZhbHVlICVyJyAlCi0gICAgICAgICAgICAgICAgICAgICAgICAo
Y2xpZW50X25vX2NvbnRleHRfdGFrZW92ZXJfbmFtZSwgcGFyYW1fdmFsdWUpKQotICAgICAgICAg
ICAgY2xpZW50X25vX2NvbnRleHRfdGFrZW92ZXIgPSBUcnVlCi0KLSAgICBpZiBjbGllbnRfbm9f
Y29udGV4dF90YWtlb3ZlciBpcyBOb25lOgotICAgICAgICBjbGllbnRfbm9fY29udGV4dF90YWtl
b3ZlciA9IEZhbHNlCi0KLSAgICByZXR1cm4gX1Blck1lc3NhZ2VEZWZsYXRlRnJhbWVyKGNsaWVu
dF9tYXhfd2luZG93X2JpdHMsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBj
bGllbnRfbm9fY29udGV4dF90YWtlb3ZlcikKLQotCi1jbGFzcyBDbGllbnRIYW5kc2hha2VQcm9j
ZXNzb3IoQ2xpZW50SGFuZHNoYWtlQmFzZSk6Ci0gICAgIiIiV2ViU29ja2V0IG9wZW5pbmcgaGFu
ZHNoYWtlIHByb2Nlc3NvciBmb3IKLSAgICBkcmFmdC1pZXRmLWh5YmktdGhld2Vic29ja2V0cHJv
dG9jb2wtMDYgYW5kIGxhdGVyLgotICAgICIiIgotCi0gICAgZGVmIF9faW5pdF9fKHNlbGYsIHNv
Y2tldCwgb3B0aW9ucyk6Ci0gICAgICAgIHN1cGVyKENsaWVudEhhbmRzaGFrZVByb2Nlc3Nvciwg
c2VsZikuX19pbml0X18oKQotCi0gICAgICAgIHNlbGYuX3NvY2tldCA9IHNvY2tldAotICAgICAg
ICBzZWxmLl9vcHRpb25zID0gb3B0aW9ucwotCi0gICAgICAgIHNlbGYuX2xvZ2dlciA9IHV0aWwu
Z2V0X2NsYXNzX2xvZ2dlcihzZWxmKQotCi0gICAgZGVmIGhhbmRzaGFrZShzZWxmKToKLSAgICAg
ICAgIiIiUGVyZm9ybXMgb3BlbmluZyBoYW5kc2hha2Ugb24gdGhlIHNwZWNpZmllZCBzb2NrZXQu
Ci0KLSAgICAgICAgUmFpc2VzOgotICAgICAgICAgICAgQ2xpZW50SGFuZHNoYWtlRXJyb3I6IGhh
bmRzaGFrZSBmYWlsZWQuCi0gICAgICAgICIiIgotCi0gICAgICAgIHJlcXVlc3RfbGluZSA9IF9i
dWlsZF9tZXRob2RfbGluZShzZWxmLl9vcHRpb25zLnJlc291cmNlKQotICAgICAgICBzZWxmLl9s
b2dnZXIuZGVidWcoJ0NsaWVudFwncyBvcGVuaW5nIGhhbmRzaGFrZSBSZXF1ZXN0LUxpbmU6ICVy
JywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3RfbGluZSkKLSAgICAgICAgc2Vs
Zi5fc29ja2V0LnNlbmRhbGwocmVxdWVzdF9saW5lKQotCi0gICAgICAgIGZpZWxkcyA9IFtdCi0g
ICAgICAgIGZpZWxkcy5hcHBlbmQoX2Zvcm1hdF9ob3N0X2hlYWRlcigKLSAgICAgICAgICAgIHNl
bGYuX29wdGlvbnMuc2VydmVyX2hvc3QsCi0gICAgICAgICAgICBzZWxmLl9vcHRpb25zLnNlcnZl
cl9wb3J0LAotICAgICAgICAgICAgc2VsZi5fb3B0aW9ucy51c2VfdGxzKSkKLSAgICAgICAgZmll
bGRzLmFwcGVuZChfVVBHUkFERV9IRUFERVIpCi0gICAgICAgIGZpZWxkcy5hcHBlbmQoX0NPTk5F
Q1RJT05fSEVBREVSKQotICAgICAgICBpZiBzZWxmLl9vcHRpb25zLm9yaWdpbiBpcyBub3QgTm9u
ZToKLSAgICAgICAgICAgIGlmIHNlbGYuX29wdGlvbnMucHJvdG9jb2xfdmVyc2lvbiA9PSBfUFJP
VE9DT0xfVkVSU0lPTl9IWUJJMDg6Ci0gICAgICAgICAgICAgICAgZmllbGRzLmFwcGVuZChfb3Jp
Z2luX2hlYWRlcigKLSAgICAgICAgICAgICAgICAgICAgY29tbW9uLlNFQ19XRUJTT0NLRVRfT1JJ
R0lOX0hFQURFUiwKLSAgICAgICAgICAgICAgICAgICAgc2VsZi5fb3B0aW9ucy5vcmlnaW4pKQot
ICAgICAgICAgICAgZWxzZToKLSAgICAgICAgICAgICAgICBmaWVsZHMuYXBwZW5kKF9vcmlnaW5f
aGVhZGVyKGNvbW1vbi5PUklHSU5fSEVBREVSLAotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgc2VsZi5fb3B0aW9ucy5vcmlnaW4pKQotCi0gICAgICAgIG9yaWdp
bmFsX2tleSA9IG9zLnVyYW5kb20oMTYpCi0gICAgICAgIHNlbGYuX2tleSA9IGJhc2U2NC5iNjRl
bmNvZGUob3JpZ2luYWxfa2V5KQotICAgICAgICBzZWxmLl9sb2dnZXIuZGVidWcoCi0gICAgICAg
ICAgICAnJXM6ICVyICglcyknLAotICAgICAgICAgICAgY29tbW9uLlNFQ19XRUJTT0NLRVRfS0VZ
X0hFQURFUiwKLSAgICAgICAgICAgIHNlbGYuX2tleSwKLSAgICAgICAgICAgIHV0aWwuaGV4aWZ5
KG9yaWdpbmFsX2tleSkpCi0gICAgICAgIGZpZWxkcy5hcHBlbmQoCi0gICAgICAgICAgICAnJXM6
ICVzXHJcbicgJSAoY29tbW9uLlNFQ19XRUJTT0NLRVRfS0VZX0hFQURFUiwgc2VsZi5fa2V5KSkK
LQotICAgICAgICBpZiBzZWxmLl9vcHRpb25zLnZlcnNpb25faGVhZGVyID4gMDoKLSAgICAgICAg
ICAgIGZpZWxkcy5hcHBlbmQoJyVzOiAlZFxyXG4nICUgKGNvbW1vbi5TRUNfV0VCU09DS0VUX1ZF
UlNJT05fSEVBREVSLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
c2VsZi5fb3B0aW9ucy52ZXJzaW9uX2hlYWRlcikpCi0gICAgICAgIGVsaWYgc2VsZi5fb3B0aW9u
cy5wcm90b2NvbF92ZXJzaW9uID09IF9QUk9UT0NPTF9WRVJTSU9OX0hZQkkwODoKLSAgICAgICAg
ICAgIGZpZWxkcy5hcHBlbmQoJyVzOiAlZFxyXG4nICUgKGNvbW1vbi5TRUNfV0VCU09DS0VUX1ZF
UlNJT05fSEVBREVSLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
Y29tbW9uLlZFUlNJT05fSFlCSTA4KSkKLSAgICAgICAgZWxzZToKLSAgICAgICAgICAgIGZpZWxk
cy5hcHBlbmQoJyVzOiAlZFxyXG4nICUgKGNvbW1vbi5TRUNfV0VCU09DS0VUX1ZFUlNJT05fSEVB
REVSLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29tbW9uLlZF
UlNJT05fSFlCSV9MQVRFU1QpKQotCi0gICAgICAgIGV4dGVuc2lvbnNfdG9fcmVxdWVzdCA9IFtd
Ci0KLSAgICAgICAgaWYgc2VsZi5fb3B0aW9ucy5kZWZsYXRlX2ZyYW1lOgotICAgICAgICAgICAg
ZXh0ZW5zaW9uc190b19yZXF1ZXN0LmFwcGVuZCgKLSAgICAgICAgICAgICAgICBjb21tb24uRXh0
ZW5zaW9uUGFyYW1ldGVyKGNvbW1vbi5ERUZMQVRFX0ZSQU1FX0VYVEVOU0lPTikpCi0KLSAgICAg
ICAgaWYgc2VsZi5fb3B0aW9ucy51c2VfcGVybWVzc2FnZV9kZWZsYXRlOgotICAgICAgICAgICAg
ZXh0ZW5zaW9uID0gY29tbW9uLkV4dGVuc2lvblBhcmFtZXRlcigKLSAgICAgICAgICAgICAgICAg
ICAgY29tbW9uLlBFUk1FU1NBR0VfREVGTEFURV9FWFRFTlNJT04pCi0gICAgICAgICAgICAjIEFj
Y2VwdCB0aGUgY2xpZW50X21heF93aW5kb3dfYml0cyBleHRlbnNpb24gcGFyYW1ldGVyIGJ5IGRl
ZmF1bHQuCi0gICAgICAgICAgICBleHRlbnNpb24uYWRkX3BhcmFtZXRlcigKLSAgICAgICAgICAg
ICAgICAgICAgUGVyTWVzc2FnZURlZmxhdGVFeHRlbnNpb25Qcm9jZXNzb3IuCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgX0NMSUVOVF9NQVhfV0lORE9XX0JJVFNfUEFSQU0sCi0gICAgICAg
ICAgICAgICAgICAgIE5vbmUpCi0gICAgICAgICAgICBleHRlbnNpb25zX3RvX3JlcXVlc3QuYXBw
ZW5kKGV4dGVuc2lvbikKLQotICAgICAgICBpZiBsZW4oZXh0ZW5zaW9uc190b19yZXF1ZXN0KSAh
PSAwOgotICAgICAgICAgICAgZmllbGRzLmFwcGVuZCgKLSAgICAgICAgICAgICAgICAnJXM6ICVz
XHJcbicgJQotICAgICAgICAgICAgICAgIChjb21tb24uU0VDX1dFQlNPQ0tFVF9FWFRFTlNJT05T
X0hFQURFUiwKLSAgICAgICAgICAgICAgICAgY29tbW9uLmZvcm1hdF9leHRlbnNpb25zKGV4dGVu
c2lvbnNfdG9fcmVxdWVzdCkpKQotCi0gICAgICAgIGZvciBmaWVsZCBpbiBmaWVsZHM6Ci0gICAg
ICAgICAgICBzZWxmLl9zb2NrZXQuc2VuZGFsbChmaWVsZCkKLQotICAgICAgICBzZWxmLl9zb2Nr
ZXQuc2VuZGFsbCgnXHJcbicpCi0KLSAgICAgICAgc2VsZi5fbG9nZ2VyLmRlYnVnKCdTZW50IGNs
aWVudFwncyBvcGVuaW5nIGhhbmRzaGFrZSBoZWFkZXJzOiAlcicsCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICBmaWVsZHMpCi0gICAgICAgIHNlbGYuX2xvZ2dlci5kZWJ1ZygnU3RhcnQgcmVh
ZGluZyBTdGF0dXMtTGluZScpCi0KLSAgICAgICAgc3RhdHVzX2xpbmUgPSAnJwotICAgICAgICB3
aGlsZSBUcnVlOgotICAgICAgICAgICAgY2ggPSBfcmVjZWl2ZV9ieXRlcyhzZWxmLl9zb2NrZXQs
IDEpCi0gICAgICAgICAgICBzdGF0dXNfbGluZSArPSBjaAotICAgICAgICAgICAgaWYgY2ggPT0g
J1xuJzoKLSAgICAgICAgICAgICAgICBicmVhawotCi0gICAgICAgIG0gPSByZS5tYXRjaCgnSFRU
UC9cXGQrXC5cXGQrIChcXGRcXGRcXGQpIC4qXHJcbicsIHN0YXR1c19saW5lKQotICAgICAgICBp
ZiBtIGlzIE5vbmU6Ci0gICAgICAgICAgICByYWlzZSBDbGllbnRIYW5kc2hha2VFcnJvcigKLSAg
ICAgICAgICAgICAgICAnV3Jvbmcgc3RhdHVzIGxpbmUgZm9ybWF0OiAlcicgJSBzdGF0dXNfbGlu
ZSkKLSAgICAgICAgc3RhdHVzX2NvZGUgPSBtLmdyb3VwKDEpCi0gICAgICAgIGlmIHN0YXR1c19j
b2RlICE9ICcxMDEnOgotICAgICAgICAgICAgc2VsZi5fbG9nZ2VyLmRlYnVnKCdVbmV4cGVjdGVk
IHN0YXR1cyBjb2RlICVzIHdpdGggZm9sbG93aW5nICcKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAnaGVhZGVyczogJXInLCBzdGF0dXNfY29kZSwgc2VsZi5fcmVhZF9maWVsZHMoKSkK
LSAgICAgICAgICAgIHJhaXNlIENsaWVudEhhbmRzaGFrZUVycm9yKAotICAgICAgICAgICAgICAg
ICdFeHBlY3RlZCBIVFRQIHN0YXR1cyBjb2RlIDEwMSBidXQgZm91bmQgJXInICUgc3RhdHVzX2Nv
ZGUpCi0KLSAgICAgICAgc2VsZi5fbG9nZ2VyLmRlYnVnKCdSZWNlaXZlZCB2YWxpZCBTdGF0dXMt
TGluZScpCi0gICAgICAgIHNlbGYuX2xvZ2dlci5kZWJ1ZygnU3RhcnQgcmVhZGluZyBoZWFkZXJz
IHVudGlsIHdlIHNlZSBhbiBlbXB0eSBsaW5lJykKLQotICAgICAgICBmaWVsZHMgPSBzZWxmLl9y
ZWFkX2ZpZWxkcygpCi0KLSAgICAgICAgY2ggPSBfcmVjZWl2ZV9ieXRlcyhzZWxmLl9zb2NrZXQs
IDEpCi0gICAgICAgIGlmIGNoICE9ICdcbic6ICAjIDB4MEEKLSAgICAgICAgICAgIHJhaXNlIENs
aWVudEhhbmRzaGFrZUVycm9yKAotICAgICAgICAgICAgICAgICdFeHBlY3RlZCBMRiBidXQgZm91
bmQgJXIgd2hpbGUgcmVhZGluZyB2YWx1ZSAlciBmb3IgaGVhZGVyICcKLSAgICAgICAgICAgICAg
ICAnbmFtZSAlcicgJSAoY2gsIHZhbHVlLCBuYW1lKSkKLQotICAgICAgICBzZWxmLl9sb2dnZXIu
ZGVidWcoJ1JlY2VpdmVkIGFuIGVtcHR5IGxpbmUnKQotICAgICAgICBzZWxmLl9sb2dnZXIuZGVi
dWcoJ1NlcnZlclwncyBvcGVuaW5nIGhhbmRzaGFrZSBoZWFkZXJzOiAlcicsIGZpZWxkcykKLQot
ICAgICAgICBfdmFsaWRhdGVfbWFuZGF0b3J5X2hlYWRlcigKLSAgICAgICAgICAgIGZpZWxkcywK
LSAgICAgICAgICAgIGNvbW1vbi5VUEdSQURFX0hFQURFUiwKLSAgICAgICAgICAgIGNvbW1vbi5X
RUJTT0NLRVRfVVBHUkFERV9UWVBFLAotICAgICAgICAgICAgRmFsc2UpCi0KLSAgICAgICAgX3Zh
bGlkYXRlX21hbmRhdG9yeV9oZWFkZXIoCi0gICAgICAgICAgICBmaWVsZHMsCi0gICAgICAgICAg
ICBjb21tb24uQ09OTkVDVElPTl9IRUFERVIsCi0gICAgICAgICAgICBjb21tb24uVVBHUkFERV9D
T05ORUNUSU9OX1RZUEUsCi0gICAgICAgICAgICBGYWxzZSkKLQotICAgICAgICBhY2NlcHQgPSBf
Z2V0X21hbmRhdG9yeV9oZWFkZXIoCi0gICAgICAgICAgICBmaWVsZHMsIGNvbW1vbi5TRUNfV0VC
U09DS0VUX0FDQ0VQVF9IRUFERVIpCi0KLSAgICAgICAgIyBWYWxpZGF0ZQotICAgICAgICB0cnk6
Ci0gICAgICAgICAgICBiaW5hcnlfYWNjZXB0ID0gYmFzZTY0LmI2NGRlY29kZShhY2NlcHQpCi0g
ICAgICAgIGV4Y2VwdCBUeXBlRXJyb3IsIGU6Ci0gICAgICAgICAgICByYWlzZSBIYW5kc2hha2VF
cnJvcigKLSAgICAgICAgICAgICAgICAnSWxsZWdhbCB2YWx1ZSBmb3IgaGVhZGVyICVzOiAlcicg
JQotICAgICAgICAgICAgICAgIChjb21tb24uU0VDX1dFQlNPQ0tFVF9BQ0NFUFRfSEVBREVSLCBh
Y2NlcHQpKQotCi0gICAgICAgIGlmIGxlbihiaW5hcnlfYWNjZXB0KSAhPSAyMDoKLSAgICAgICAg
ICAgIHJhaXNlIENsaWVudEhhbmRzaGFrZUVycm9yKAotICAgICAgICAgICAgICAgICdEZWNvZGVk
IHZhbHVlIG9mICVzIGlzIG5vdCAyMC1ieXRlIGxvbmcnICUKLSAgICAgICAgICAgICAgICBjb21t
b24uU0VDX1dFQlNPQ0tFVF9BQ0NFUFRfSEVBREVSKQotCi0gICAgICAgIHNlbGYuX2xvZ2dlci5k
ZWJ1ZygKLSAgICAgICAgICAgICdSZXNwb25zZSBmb3IgY2hhbGxlbmdlIDogJXIgKCVzKScsCi0g
ICAgICAgICAgICBhY2NlcHQsIHV0aWwuaGV4aWZ5KGJpbmFyeV9hY2NlcHQpKQotCi0gICAgICAg
IGJpbmFyeV9leHBlY3RlZF9hY2NlcHQgPSB1dGlsLnNoYTFfaGFzaCgKLSAgICAgICAgICAgIHNl
bGYuX2tleSArIGNvbW1vbi5XRUJTT0NLRVRfQUNDRVBUX1VVSUQpLmRpZ2VzdCgpCi0gICAgICAg
IGV4cGVjdGVkX2FjY2VwdCA9IGJhc2U2NC5iNjRlbmNvZGUoYmluYXJ5X2V4cGVjdGVkX2FjY2Vw
dCkKLQotICAgICAgICBzZWxmLl9sb2dnZXIuZGVidWcoCi0gICAgICAgICAgICAnRXhwZWN0ZWQg
cmVzcG9uc2UgZm9yIGNoYWxsZW5nZTogJXIgKCVzKScsCi0gICAgICAgICAgICBleHBlY3RlZF9h
Y2NlcHQsIHV0aWwuaGV4aWZ5KGJpbmFyeV9leHBlY3RlZF9hY2NlcHQpKQotCi0gICAgICAgIGlm
IGFjY2VwdCAhPSBleHBlY3RlZF9hY2NlcHQ6Ci0gICAgICAgICAgICByYWlzZSBDbGllbnRIYW5k
c2hha2VFcnJvcigKLSAgICAgICAgICAgICAgICAnSW52YWxpZCAlcyBoZWFkZXI6ICVyIChleHBl
Y3RlZDogJXMpJyAlCi0gICAgICAgICAgICAgICAgKGNvbW1vbi5TRUNfV0VCU09DS0VUX0FDQ0VQ
VF9IRUFERVIsIGFjY2VwdCwgZXhwZWN0ZWRfYWNjZXB0KSkKLQotICAgICAgICBkZWZsYXRlX2Zy
YW1lX2FjY2VwdGVkID0gRmFsc2UKLSAgICAgICAgcGVybWVzc2FnZV9kZWZsYXRlX2FjY2VwdGVk
ID0gRmFsc2UKLQotICAgICAgICBleHRlbnNpb25zX2hlYWRlciA9IGZpZWxkcy5nZXQoCi0gICAg
ICAgICAgICBjb21tb24uU0VDX1dFQlNPQ0tFVF9FWFRFTlNJT05TX0hFQURFUi5sb3dlcigpKQot
ICAgICAgICBhY2NlcHRlZF9leHRlbnNpb25zID0gW10KLSAgICAgICAgaWYgZXh0ZW5zaW9uc19o
ZWFkZXIgaXMgbm90IE5vbmUgYW5kIGxlbihleHRlbnNpb25zX2hlYWRlcikgIT0gMDoKLSAgICAg
ICAgICAgIGFjY2VwdGVkX2V4dGVuc2lvbnMgPSBjb21tb24ucGFyc2VfZXh0ZW5zaW9ucyhleHRl
bnNpb25zX2hlYWRlclswXSkKLQotICAgICAgICAjIFRPRE8oYmFzaGkpOiBTdXBwb3J0IHRoZSBu
ZXcgc3R5bGUgcGVyZnJhbWUgY29tcHJlc3Npb24gZXh0ZW5zaW9uLgotICAgICAgICBmb3IgZXh0
ZW5zaW9uIGluIGFjY2VwdGVkX2V4dGVuc2lvbnM6Ci0gICAgICAgICAgICBleHRlbnNpb25fbmFt
ZSA9IGV4dGVuc2lvbi5uYW1lKCkKLSAgICAgICAgICAgIGlmIChleHRlbnNpb25fbmFtZSA9PSBj
b21tb24uREVGTEFURV9GUkFNRV9FWFRFTlNJT04gYW5kCi0gICAgICAgICAgICAgICAgc2VsZi5f
b3B0aW9ucy5kZWZsYXRlX2ZyYW1lKToKLSAgICAgICAgICAgICAgICBkZWZsYXRlX2ZyYW1lX2Fj
Y2VwdGVkID0gVHJ1ZQotICAgICAgICAgICAgICAgIHByb2Nlc3NvciA9IERlZmxhdGVGcmFtZUV4
dGVuc2lvblByb2Nlc3NvcihleHRlbnNpb24pCi0gICAgICAgICAgICAgICAgdW51c2VkX2V4dGVu
c2lvbl9yZXNwb25zZSA9IHByb2Nlc3Nvci5nZXRfZXh0ZW5zaW9uX3Jlc3BvbnNlKCkKLSAgICAg
ICAgICAgICAgICBzZWxmLl9vcHRpb25zLmRlZmxhdGVfZnJhbWUgPSBwcm9jZXNzb3IKLSAgICAg
ICAgICAgICAgICBjb250aW51ZQotICAgICAgICAgICAgZWxpZiAoZXh0ZW5zaW9uX25hbWUgPT0g
Y29tbW9uLlBFUk1FU1NBR0VfREVGTEFURV9FWFRFTlNJT04gYW5kCi0gICAgICAgICAgICAgICAg
ICBzZWxmLl9vcHRpb25zLnVzZV9wZXJtZXNzYWdlX2RlZmxhdGUpOgotICAgICAgICAgICAgICAg
IHBlcm1lc3NhZ2VfZGVmbGF0ZV9hY2NlcHRlZCA9IFRydWUKLQotICAgICAgICAgICAgICAgIGZy
YW1lciA9IF9nZXRfcGVybWVzc2FnZV9kZWZsYXRlX2ZyYW1lcihleHRlbnNpb24pCi0gICAgICAg
ICAgICAgICAgZnJhbWVyLnNldF9jb21wcmVzc19vdXRnb2luZ19lbmFibGVkKFRydWUpCi0gICAg
ICAgICAgICAgICAgc2VsZi5fb3B0aW9ucy51c2VfcGVybWVzc2FnZV9kZWZsYXRlID0gZnJhbWVy
Ci0gICAgICAgICAgICAgICAgY29udGludWUKLQotICAgICAgICAgICAgcmFpc2UgQ2xpZW50SGFu
ZHNoYWtlRXJyb3IoCi0gICAgICAgICAgICAgICAgJ1VuZXhwZWN0ZWQgZXh0ZW5zaW9uICVyJyAl
IGV4dGVuc2lvbl9uYW1lKQotCi0gICAgICAgIGlmIChzZWxmLl9vcHRpb25zLmRlZmxhdGVfZnJh
bWUgYW5kIG5vdCBkZWZsYXRlX2ZyYW1lX2FjY2VwdGVkKToKLSAgICAgICAgICAgIHJhaXNlIENs
aWVudEhhbmRzaGFrZUVycm9yKAotICAgICAgICAgICAgICAgICdSZXF1ZXN0ZWQgJXMsIGJ1dCB0
aGUgc2VydmVyIHJlamVjdGVkIGl0JyAlCi0gICAgICAgICAgICAgICAgY29tbW9uLkRFRkxBVEVf
RlJBTUVfRVhURU5TSU9OKQotCi0gICAgICAgIGlmIChzZWxmLl9vcHRpb25zLnVzZV9wZXJtZXNz
YWdlX2RlZmxhdGUgYW5kCi0gICAgICAgICAgICBub3QgcGVybWVzc2FnZV9kZWZsYXRlX2FjY2Vw
dGVkKToKLSAgICAgICAgICAgIHJhaXNlIENsaWVudEhhbmRzaGFrZUVycm9yKAotICAgICAgICAg
ICAgICAgICAgICAnUmVxdWVzdGVkICVzLCBidXQgdGhlIHNlcnZlciByZWplY3RlZCBpdCcgJQot
ICAgICAgICAgICAgICAgICAgICBjb21tb24uUEVSTUVTU0FHRV9ERUZMQVRFX0VYVEVOU0lPTikK
LQotICAgICAgICAjIFRPRE8odHlvc2hpbm8pOiBIYW5kbGUgU2VjLVdlYlNvY2tldC1Qcm90b2Nv
bAotICAgICAgICAjIFRPRE8odHlvc2hpbm8pOiBIYW5kbGUgQ29va2llLCBldGMuCi0KLQotY2xh
c3MgQ2xpZW50SGFuZHNoYWtlUHJvY2Vzc29ySHliaTAwKENsaWVudEhhbmRzaGFrZUJhc2UpOgot
ICAgICIiIldlYlNvY2tldCBvcGVuaW5nIGhhbmRzaGFrZSBwcm9jZXNzb3IgZm9yCi0gICAgZHJh
ZnQtaWV0Zi1oeWJpLXRoZXdlYnNvY2tldHByb3RvY29sLTAwIChlcXVpdmFsZW50IHRvCi0gICAg
ZHJhZnQtaGl4aWUtdGhld2Vic29ja2V0cHJvdG9jb2wtNzYpLgotICAgICIiIgotCi0gICAgZGVm
IF9faW5pdF9fKHNlbGYsIHNvY2tldCwgb3B0aW9ucyk6Ci0gICAgICAgIHN1cGVyKENsaWVudEhh
bmRzaGFrZVByb2Nlc3Nvckh5YmkwMCwgc2VsZikuX19pbml0X18oKQotCi0gICAgICAgIHNlbGYu
X3NvY2tldCA9IHNvY2tldAotICAgICAgICBzZWxmLl9vcHRpb25zID0gb3B0aW9ucwotCi0gICAg
ICAgIHNlbGYuX2xvZ2dlciA9IHV0aWwuZ2V0X2NsYXNzX2xvZ2dlcihzZWxmKQotCi0gICAgICAg
IGlmIChzZWxmLl9vcHRpb25zLmRlZmxhdGVfZnJhbWUgb3IKLSAgICAgICAgICAgIHNlbGYuX29w
dGlvbnMudXNlX3Blcm1lc3NhZ2VfZGVmbGF0ZSk6Ci0gICAgICAgICAgICBsb2dnaW5nLmNyaXRp
Y2FsKCdIeUJpIDAwIGRvZXNuXCd0IHN1cHBvcnQgZXh0ZW5zaW9ucy4nKQotICAgICAgICAgICAg
c3lzLmV4aXQoMSkKLQotICAgIGRlZiBoYW5kc2hha2Uoc2VsZik6Ci0gICAgICAgICIiIlBlcmZv
cm1zIG9wZW5pbmcgaGFuZHNoYWtlIG9uIHRoZSBzcGVjaWZpZWQgc29ja2V0LgotCi0gICAgICAg
IFJhaXNlczoKLSAgICAgICAgICAgIENsaWVudEhhbmRzaGFrZUVycm9yOiBoYW5kc2hha2UgZmFp
bGVkLgotICAgICAgICAiIiIKLQotICAgICAgICAjIDQuMSA1LiBzZW5kIHJlcXVlc3QgbGluZS4K
LSAgICAgICAgc2VsZi5fc29ja2V0LnNlbmRhbGwoX2J1aWxkX21ldGhvZF9saW5lKHNlbGYuX29w
dGlvbnMucmVzb3VyY2UpKQotICAgICAgICAjIDQuMSA2LiBMZXQgL2ZpZWxkcy8gYmUgYW4gZW1w
dHkgbGlzdCBvZiBzdHJpbmdzLgotICAgICAgICBmaWVsZHMgPSBbXQotICAgICAgICAjIDQuMSA3
LiBBZGQgdGhlIHN0cmluZyAiVXBncmFkZTogV2ViU29ja2V0IiB0byAvZmllbGRzLy4KLSAgICAg
ICAgZmllbGRzLmFwcGVuZChfVVBHUkFERV9IRUFERVJfSElYSUU3NSkKLSAgICAgICAgIyA0LjEg
OC4gQWRkIHRoZSBzdHJpbmcgIkNvbm5lY3Rpb246IFVwZ3JhZGUiIHRvIC9maWVsZHMvLgotICAg
ICAgICBmaWVsZHMuYXBwZW5kKF9DT05ORUNUSU9OX0hFQURFUikKLSAgICAgICAgIyA0LjEgOS0x
Mi4gQWRkIEhvc3Q6IGZpZWxkIHRvIC9maWVsZHMvLgotICAgICAgICBmaWVsZHMuYXBwZW5kKF9m
b3JtYXRfaG9zdF9oZWFkZXIoCi0gICAgICAgICAgICBzZWxmLl9vcHRpb25zLnNlcnZlcl9ob3N0
LAotICAgICAgICAgICAgc2VsZi5fb3B0aW9ucy5zZXJ2ZXJfcG9ydCwKLSAgICAgICAgICAgIHNl
bGYuX29wdGlvbnMudXNlX3RscykpCi0gICAgICAgICMgNC4xIDEzLiBBZGQgT3JpZ2luOiBmaWVs
ZCB0byAvZmllbGRzLy4KLSAgICAgICAgaWYgbm90IHNlbGYuX29wdGlvbnMub3JpZ2luOgotICAg
ICAgICAgICAgcmFpc2UgQ2xpZW50SGFuZHNoYWtlRXJyb3IoCi0gICAgICAgICAgICAgICAgJ1Nw
ZWNpZnkgdGhlIG9yaWdpbiBvZiB0aGUgY29ubmVjdGlvbiBieSAtLW9yaWdpbiBmbGFnJykKLSAg
ICAgICAgZmllbGRzLmFwcGVuZChfb3JpZ2luX2hlYWRlcihjb21tb24uT1JJR0lOX0hFQURFUiwK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLl9vcHRpb25zLm9yaWdp
bikpCi0gICAgICAgICMgVE9ETzogNC4xIDE0IEFkZCBTZWMtV2ViU29ja2V0LVByb3RvY29sOiBm
aWVsZCB0byAvZmllbGRzLy4KLSAgICAgICAgIyBUT0RPOiA0LjEgMTUgQWRkIGNvb2tpZSBoZWFk
ZXJzIHRvIC9maWVsZHMvLgotCi0gICAgICAgICMgNC4xIDE2LTIzLiBBZGQgU2VjLVdlYlNvY2tl
dC1LZXk8bj4gdG8gL2ZpZWxkcy8uCi0gICAgICAgIHNlbGYuX251bWJlcjEsIGtleTEgPSBzZWxm
Ll9nZW5lcmF0ZV9zZWNfd2Vic29ja2V0X2tleSgpCi0gICAgICAgIHNlbGYuX2xvZ2dlci5kZWJ1
ZygnTnVtYmVyMTogJWQnLCBzZWxmLl9udW1iZXIxKQotICAgICAgICBmaWVsZHMuYXBwZW5kKCcl
czogJXNcclxuJyAlIChjb21tb24uU0VDX1dFQlNPQ0tFVF9LRVkxX0hFQURFUiwga2V5MSkpCi0g
ICAgICAgIHNlbGYuX251bWJlcjIsIGtleTIgPSBzZWxmLl9nZW5lcmF0ZV9zZWNfd2Vic29ja2V0
X2tleSgpCi0gICAgICAgIHNlbGYuX2xvZ2dlci5kZWJ1ZygnTnVtYmVyMjogJWQnLCBzZWxmLl9u
dW1iZXIyKQotICAgICAgICBmaWVsZHMuYXBwZW5kKCclczogJXNcclxuJyAlIChjb21tb24uU0VD
X1dFQlNPQ0tFVF9LRVkyX0hFQURFUiwga2V5MikpCi0KLSAgICAgICAgZmllbGRzLmFwcGVuZCgn
JXM6IDBcclxuJyAlIGNvbW1vbi5TRUNfV0VCU09DS0VUX0RSQUZUX0hFQURFUikKLQotICAgICAg
ICAjIDQuMSAyNC4gRm9yIGVhY2ggc3RyaW5nIGluIC9maWVsZHMvLCBpbiBhIHJhbmRvbSBvcmRl
cjogc2VuZCB0aGUKLSAgICAgICAgIyBzdHJpbmcsIGVuY29kZWQgYXMgVVRGLTgsIGZvbGxvd2Vk
IGJ5IGEgVVRGLTggZW5jb2RlZCBVKzAwMEQgQ0FSUklBR0UKLSAgICAgICAgIyBSRVRVUk4gVSsw
MDBBIExJTkUgRkVFRCBjaGFyYWN0ZXIgcGFpciAoQ1JMRikuCi0gICAgICAgIHJhbmRvbS5zaHVm
ZmxlKGZpZWxkcykKLSAgICAgICAgZm9yIGZpZWxkIGluIGZpZWxkczoKLSAgICAgICAgICAgIHNl
bGYuX3NvY2tldC5zZW5kYWxsKGZpZWxkKQotICAgICAgICAjIDQuMSAyNS4gc2VuZCBhIFVURi04
LWVuY29kZWQgVSswMDBEIENBUlJJQUdFIFJFVFVSTiBVKzAwMEEgTElORSBGRUVECi0gICAgICAg
ICMgY2hhcmFjdGVyIHBhaXIgKENSTEYpLgotICAgICAgICBzZWxmLl9zb2NrZXQuc2VuZGFsbCgn
XHJcbicpCi0gICAgICAgICMgNC4xIDI2LiBsZXQgL2tleTMvIGJlIGEgc3RyaW5nIGNvbnNpc3Rp
bmcgb2YgZWlnaHQgcmFuZG9tIGJ5dGVzIChvcgotICAgICAgICAjIGVxdWl2YWxlbnRseSwgYSBy
YW5kb20gNjQgYml0IGludGVnZXIgZW5jb2RlZCBpbiBhIGJpZy1lbmRpYW4gb3JkZXIpLgotICAg
ICAgICBzZWxmLl9rZXkzID0gc2VsZi5fZ2VuZXJhdGVfa2V5MygpCi0gICAgICAgICMgNC4xIDI3
LiBzZW5kIC9rZXkzLyB0byB0aGUgc2VydmVyLgotICAgICAgICBzZWxmLl9zb2NrZXQuc2VuZGFs
bChzZWxmLl9rZXkzKQotICAgICAgICBzZWxmLl9sb2dnZXIuZGVidWcoCi0gICAgICAgICAgICAn
S2V5MzogJXIgKCVzKScsIHNlbGYuX2tleTMsIHV0aWwuaGV4aWZ5KHNlbGYuX2tleTMpKQotCi0g
ICAgICAgIHNlbGYuX2xvZ2dlci5pbmZvKCdTZW50IGhhbmRzaGFrZScpCi0KLSAgICAgICAgIyA0
LjEgMjguIFJlYWQgYnl0ZXMgZnJvbSB0aGUgc2VydmVyIHVudGlsIGVpdGhlciB0aGUgY29ubmVj
dGlvbgotICAgICAgICAjIGNsb3Nlcywgb3IgYSAweDBBIGJ5dGUgaXMgcmVhZC4gbGV0IC9maWVs
ZC8gYmUgdGhlc2UgYnl0ZXMsIGluY2x1ZGluZwotICAgICAgICAjIHRoZSAweDBBIGJ5dGVzLgot
ICAgICAgICBmaWVsZCA9ICcnCi0gICAgICAgIHdoaWxlIFRydWU6Ci0gICAgICAgICAgICBjaCA9
IF9yZWNlaXZlX2J5dGVzKHNlbGYuX3NvY2tldCwgMSkKLSAgICAgICAgICAgIGZpZWxkICs9IGNo
Ci0gICAgICAgICAgICBpZiBjaCA9PSAnXG4nOgotICAgICAgICAgICAgICAgIGJyZWFrCi0gICAg
ICAgICMgaWYgL2ZpZWxkLyBpcyBub3QgYXQgbGVhc3Qgc2V2ZW4gYnl0ZXMgbG9uZywgb3IgaWYg
dGhlIGxhc3QKLSAgICAgICAgIyB0d28gYnl0ZXMgYXJlbid0IDB4MEQgYW5kIDB4MEEgcmVzcGVj
dGl2ZWx5LCBvciBpZiBpdCBkb2VzIG5vdAotICAgICAgICAjIGNvbnRhaW4gYXQgbGVhc3QgdHdv
IDB4MjAgYnl0ZXMsIHRoZW4gZmFpbCB0aGUgV2ViU29ja2V0IGNvbm5lY3Rpb24KLSAgICAgICAg
IyBhbmQgYWJvcnQgdGhlc2Ugc3RlcHMuCi0gICAgICAgIGlmIGxlbihmaWVsZCkgPCA3IG9yIG5v
dCBmaWVsZC5lbmRzd2l0aCgnXHJcbicpOgotICAgICAgICAgICAgcmFpc2UgQ2xpZW50SGFuZHNo
YWtlRXJyb3IoJ1dyb25nIHN0YXR1cyBsaW5lOiAlcicgJSBmaWVsZCkKLSAgICAgICAgbSA9IHJl
Lm1hdGNoKCdbXiBdKiAoW14gXSopIC4qJywgZmllbGQpCi0gICAgICAgIGlmIG0gaXMgTm9uZToK
LSAgICAgICAgICAgIHJhaXNlIENsaWVudEhhbmRzaGFrZUVycm9yKAotICAgICAgICAgICAgICAg
ICdObyBIVFRQIHN0YXR1cyBjb2RlIGZvdW5kIGluIHN0YXR1cyBsaW5lOiAlcicgJSBmaWVsZCkK
LSAgICAgICAgIyA0LjEgMjkuIGxldCAvY29kZS8gYmUgdGhlIHN1YnN0cmluZyBvZiAvZmllbGQv
IHRoYXQgc3RhcnRzIGZyb20gdGhlCi0gICAgICAgICMgYnl0ZSBhZnRlciB0aGUgZmlyc3QgMHgy
MCBieXRlLCBhbmQgZW5kcyB3aXRoIHRoZSBieXRlIGJlZm9yZSB0aGUKLSAgICAgICAgIyBzZWNv
bmQgMHgyMCBieXRlLgotICAgICAgICBjb2RlID0gbS5ncm91cCgxKQotICAgICAgICAjIDQuMSAz
MC4gaWYgL2NvZGUvIGlzIG5vdCB0aHJlZSBieXRlcyBsb25nLCBvciBpZiBhbnkgb2YgdGhlIGJ5
dGVzIGluCi0gICAgICAgICMgL2NvZGUvIGFyZSBub3QgaW4gdGhlIHJhbmdlIDB4MzAgdG8gMHg5
MCwgdGhlbiBmYWlsIHRoZSBXZWJTb2NrZXQKLSAgICAgICAgIyBjb25uZWN0aW9uIGFuZCBhYm9y
dCB0aGVzZSBzdGVwcy4KLSAgICAgICAgaWYgbm90IHJlLm1hdGNoKCdbMC05XVswLTldWzAtOV0n
LCBjb2RlKToKLSAgICAgICAgICAgIHJhaXNlIENsaWVudEhhbmRzaGFrZUVycm9yKAotICAgICAg
ICAgICAgICAgICdIVFRQIHN0YXR1cyBjb2RlICVyIGlzIG5vdCB0aHJlZSBkaWdpdCBpbiBzdGF0
dXMgbGluZTogJXInICUKLSAgICAgICAgICAgICAgICAoY29kZSwgZmllbGQpKQotICAgICAgICAj
IDQuMSAzMS4gaWYgL2NvZGUvLCBpbnRlcnByZXRlZCBhcyBVVEYtOCwgaXMgIjEwMSIsIHRoZW4g
bW92ZSB0byB0aGUKLSAgICAgICAgIyBuZXh0IHN0ZXAuCi0gICAgICAgIGlmIGNvZGUgIT0gJzEw
MSc6Ci0gICAgICAgICAgICByYWlzZSBDbGllbnRIYW5kc2hha2VFcnJvcigKLSAgICAgICAgICAg
ICAgICAnRXhwZWN0ZWQgSFRUUCBzdGF0dXMgY29kZSAxMDEgYnV0IGZvdW5kICVyIGluIHN0YXR1
cyBsaW5lOiAnCi0gICAgICAgICAgICAgICAgJyVyJyAlIChjb2RlLCBmaWVsZCkpCi0gICAgICAg
ICMgNC4xIDMyLTM5LiByZWFkIGZpZWxkcyBpbnRvIC9maWVsZHMvCi0gICAgICAgIGZpZWxkcyA9
IHNlbGYuX3JlYWRfZmllbGRzKCkKLSAgICAgICAgIyA0LjEgNDAuIF9GaWVsZHMgcHJvY2Vzc2lu
Z18KLSAgICAgICAgIyByZWFkIGEgYnl0ZSBmcm9tIHNlcnZlcgotICAgICAgICBjaCA9IF9yZWNl
aXZlX2J5dGVzKHNlbGYuX3NvY2tldCwgMSkKLSAgICAgICAgaWYgY2ggIT0gJ1xuJzogICMgMHgw
QQotICAgICAgICAgICAgcmFpc2UgQ2xpZW50SGFuZHNoYWtlRXJyb3IoJ0V4cGVjdGVkIExGIGJ1
dCBmb3VuZCAlcicgJSBjaCkKLSAgICAgICAgIyA0LjEgNDEuIGNoZWNrIC9maWVsZHMvCi0gICAg
ICAgICMgVE9ETyh1a2FpKTogcHJvdG9jb2wKLSAgICAgICAgIyBpZiB0aGUgZW50cnkncyBuYW1l
IGlzICJ1cGdyYWRlIgotICAgICAgICAjICBpZiB0aGUgdmFsdWUgaXMgbm90IGV4YWN0bHkgZXF1
YWwgdG8gdGhlIHN0cmluZyAiV2ViU29ja2V0IiwKLSAgICAgICAgIyAgdGhlbiBmYWlsIHRoZSBX
ZWJTb2NrZXQgY29ubmVjdGlvbiBhbmQgYWJvcnQgdGhlc2Ugc3RlcHMuCi0gICAgICAgIF92YWxp
ZGF0ZV9tYW5kYXRvcnlfaGVhZGVyKAotICAgICAgICAgICAgZmllbGRzLAotICAgICAgICAgICAg
Y29tbW9uLlVQR1JBREVfSEVBREVSLAotICAgICAgICAgICAgY29tbW9uLldFQlNPQ0tFVF9VUEdS
QURFX1RZUEVfSElYSUU3NSwKLSAgICAgICAgICAgIFRydWUpCi0gICAgICAgICMgaWYgdGhlIGVu
dHJ5J3MgbmFtZSBpcyAiY29ubmVjdGlvbiIKLSAgICAgICAgIyAgaWYgdGhlIHZhbHVlLCBjb252
ZXJ0ZWQgdG8gQVNDSUkgbG93ZXJjYXNlLCBpcyBub3QgZXhhY3RseSBlcXVhbAotICAgICAgICAj
ICB0byB0aGUgc3RyaW5nICJ1cGdyYWRlIiwgdGhlbiBmYWlsIHRoZSBXZWJTb2NrZXQgY29ubmVj
dGlvbiBhbmQKLSAgICAgICAgIyAgYWJvcnQgdGhlc2Ugc3RlcHMuCi0gICAgICAgIF92YWxpZGF0
ZV9tYW5kYXRvcnlfaGVhZGVyKAotICAgICAgICAgICAgZmllbGRzLAotICAgICAgICAgICAgY29t
bW9uLkNPTk5FQ1RJT05fSEVBREVSLAotICAgICAgICAgICAgY29tbW9uLlVQR1JBREVfQ09OTkVD
VElPTl9UWVBFLAotICAgICAgICAgICAgRmFsc2UpCi0KLSAgICAgICAgb3JpZ2luID0gX2dldF9t
YW5kYXRvcnlfaGVhZGVyKAotICAgICAgICAgICAgZmllbGRzLCBjb21tb24uU0VDX1dFQlNPQ0tF
VF9PUklHSU5fSEVBREVSKQotCi0gICAgICAgIGxvY2F0aW9uID0gX2dldF9tYW5kYXRvcnlfaGVh
ZGVyKAotICAgICAgICAgICAgZmllbGRzLCBjb21tb24uU0VDX1dFQlNPQ0tFVF9MT0NBVElPTl9I
RUFERVIpCi0KLSAgICAgICAgIyBUT0RPKHVrYWkpOiBjaGVjayBvcmlnaW4sIGxvY2F0aW9uLCBj
b29raWUsIC4uCi0KLSAgICAgICAgIyA0LjEgNDIuIGxldCAvY2hhbGxlbmdlLyBiZSB0aGUgY29u
Y2F0ZW5hdGlvbiBvZiAvbnVtYmVyXzEvLAotICAgICAgICAjIGV4cHJlc3NlZCBhcyBhIGJpZyBl
bmRpYW4gMzIgYml0IGludGVnZXIsIC9udW1iZXJfMi8sIGV4cHJlc3NlZAotICAgICAgICAjIGFz
IGJpZyBlbmRpYW4gMzIgYml0IGludGVnZXIsIGFuZCB0aGUgZWlnaHQgYnl0ZXMgb2YgL2tleV8z
LyBpbiB0aGUKLSAgICAgICAgIyBvcmRlciB0aGV5IHdlcmUgc2VudCBvbiB0aGUgd2lyZS4KLSAg
ICAgICAgY2hhbGxlbmdlID0gc3RydWN0LnBhY2soJyFJJywgc2VsZi5fbnVtYmVyMSkKLSAgICAg
ICAgY2hhbGxlbmdlICs9IHN0cnVjdC5wYWNrKCchSScsIHNlbGYuX251bWJlcjIpCi0gICAgICAg
IGNoYWxsZW5nZSArPSBzZWxmLl9rZXkzCi0KLSAgICAgICAgc2VsZi5fbG9nZ2VyLmRlYnVnKAot
ICAgICAgICAgICAgJ0NoYWxsZW5nZTogJXIgKCVzKScsIGNoYWxsZW5nZSwgdXRpbC5oZXhpZnko
Y2hhbGxlbmdlKSkKLQotICAgICAgICAjIDQuMSA0My4gbGV0IC9leHBlY3RlZC8gYmUgdGhlIE1E
NSBmaW5nZXJwcmludCBvZiAvY2hhbGxlbmdlLyBhcyBhCi0gICAgICAgICMgYmlnLWVuZGlhbiAx
MjggYml0IHN0cmluZy4KLSAgICAgICAgZXhwZWN0ZWQgPSB1dGlsLm1kNV9oYXNoKGNoYWxsZW5n
ZSkuZGlnZXN0KCkKLSAgICAgICAgc2VsZi5fbG9nZ2VyLmRlYnVnKAotICAgICAgICAgICAgJ0V4
cGVjdGVkIGNoYWxsZW5nZSByZXNwb25zZTogJXIgKCVzKScsCi0gICAgICAgICAgICBleHBlY3Rl
ZCwgdXRpbC5oZXhpZnkoZXhwZWN0ZWQpKQotCi0gICAgICAgICMgNC4xIDQ0LiByZWFkIHNpeHRl
ZW4gYnl0ZXMgZnJvbSB0aGUgc2VydmVyLgotICAgICAgICAjIGxldCAvcmVwbHkvIGJlIHRob3Nl
IGJ5dGVzLgotICAgICAgICByZXBseSA9IF9yZWNlaXZlX2J5dGVzKHNlbGYuX3NvY2tldCwgMTYp
Ci0gICAgICAgIHNlbGYuX2xvZ2dlci5kZWJ1ZygKLSAgICAgICAgICAgICdBY3R1YWwgY2hhbGxl
bmdlIHJlc3BvbnNlOiAlciAoJXMpJywgcmVwbHksIHV0aWwuaGV4aWZ5KHJlcGx5KSkKLQotICAg
ICAgICAjIDQuMSA0NS4gaWYgL3JlcGx5LyBkb2VzIG5vdCBleGFjdGx5IGVxdWFsIC9leHBlY3Rl
ZC8sIHRoZW4gZmFpbAotICAgICAgICAjIHRoZSBXZWJTb2NrZXQgY29ubmVjdGlvbiBhbmQgYWJv
cnQgdGhlc2Ugc3RlcHMuCi0gICAgICAgIGlmIGV4cGVjdGVkICE9IHJlcGx5OgotICAgICAgICAg
ICAgcmFpc2UgQ2xpZW50SGFuZHNoYWtlRXJyb3IoCi0gICAgICAgICAgICAgICAgJ0JhZCBjaGFs
bGVuZ2UgcmVzcG9uc2U6ICVyIChleHBlY3RlZCkgIT0gJXIgKGFjdHVhbCknICUKLSAgICAgICAg
ICAgICAgICAoZXhwZWN0ZWQsIHJlcGx5KSkKLSAgICAgICAgIyA0LjEgNDYuIFRoZSAqV2ViU29j
a2V0IGNvbm5lY3Rpb24gaXMgZXN0YWJsaXNoZWQqLgotCi0gICAgZGVmIF9nZW5lcmF0ZV9zZWNf
d2Vic29ja2V0X2tleShzZWxmKToKLSAgICAgICAgIyA0LjEgMTYuIGxldCAvc3BhY2VzX24vIGJl
IGEgcmFuZG9tIGludGVnZXIgZnJvbSAxIHRvIDEyIGluY2x1c2l2ZS4KLSAgICAgICAgc3BhY2Vz
ID0gcmFuZG9tLnJhbmRpbnQoMSwgMTIpCi0gICAgICAgICMgNC4xIDE3LiBsZXQgL21heF9uLyBi
ZSB0aGUgbGFyZ2VzdCBpbnRlZ2VyIG5vdCBncmVhdGVyIHRoYW4KLSAgICAgICAgIyAgNCwyOTQs
OTY3LDI5NSBkaXZpZGVkIGJ5IC9zcGFjZXNfbi8uCi0gICAgICAgIG1heG51bSA9IDQyOTQ5Njcy
OTUgLyBzcGFjZXMKLSAgICAgICAgIyA0LjEgMTguIGxldCAvbnVtYmVyX24vIGJlIGEgcmFuZG9t
IGludGVnZXIgZnJvbSAwIHRvIC9tYXhfbi8KLSAgICAgICAgIyBpbmNsdXNpdmUuCi0gICAgICAg
IG51bWJlciA9IHJhbmRvbS5yYW5kaW50KDAsIG1heG51bSkKLSAgICAgICAgIyA0LjEgMTkuIGxl
dCAvcHJvZHVjdF9uLyBiZSB0aGUgcmVzdWx0IG9mIG11bHRpcGx5aW5nIC9udW1iZXJfbi8gYW5k
Ci0gICAgICAgICMgL3NwYWNlc19uLyB0b2dldGhlci4KLSAgICAgICAgcHJvZHVjdCA9IG51bWJl
ciAqIHNwYWNlcwotICAgICAgICAjIDQuMSAyMC4gbGV0IC9rZXlfbi8gYmUgYSBzdHJpbmcgY29u
c2lzdGluZyBvZiAvcHJvZHVjdF9uLywgZXhwcmVzc2VkCi0gICAgICAgICMgaW4gYmFzZSB0ZW4g
dXNpbmcgdGhlIG51bWVyYWxzIGluIHRoZSByYW5nZSBVKzAwMzAgRElHSVQgWkVSTyAoMCkgdG8K
LSAgICAgICAgIyBVKzAwMzkgRElHSVQgTklORSAoOSkuCi0gICAgICAgIGtleSA9IHN0cihwcm9k
dWN0KQotICAgICAgICAjIDQuMSAyMS4gaW5zZXJ0IGJldHdlZW4gb25lIGFuZCB0d2VsdmUgcmFu
ZG9tIGNoYXJhY3RlcnMgZnJvbSB0aGUKLSAgICAgICAgIyByYW5nZSBVKzAwMjEgdG8gVSswMDJG
IGFuZCBVKzAwM0EgdG8gVSswMDdFIGludG8gL2tleV9uLyBhdCByYW5kb20KLSAgICAgICAgIyBw
b3NpdGlvbnMuCi0gICAgICAgIGF2YWlsYWJsZV9jaGFycyA9IHJhbmdlKDB4MjEsIDB4MmYgKyAx
KSArIHJhbmdlKDB4M2EsIDB4N2UgKyAxKQotICAgICAgICBuID0gcmFuZG9tLnJhbmRpbnQoMSwg
MTIpCi0gICAgICAgIGZvciBfIGluIHhyYW5nZShuKToKLSAgICAgICAgICAgIGNoID0gcmFuZG9t
LmNob2ljZShhdmFpbGFibGVfY2hhcnMpCi0gICAgICAgICAgICBwb3MgPSByYW5kb20ucmFuZGlu
dCgwLCBsZW4oa2V5KSkKLSAgICAgICAgICAgIGtleSA9IGtleVswOnBvc10gKyBjaHIoY2gpICsg
a2V5W3BvczpdCi0gICAgICAgICMgNC4xIDIyLiBpbnNlcnQgL3NwYWNlc19uLyBVKzAwMjAgU1BB
Q0UgY2hhcmFjdGVycyBpbnRvIC9rZXlfbi8gYXQKLSAgICAgICAgIyByYW5kb20gcG9zaXRpb25z
IG90aGVyIHRoYW4gc3RhcnQgb3IgZW5kIG9mIHRoZSBzdHJpbmcuCi0gICAgICAgIGZvciBfIGlu
IHhyYW5nZShzcGFjZXMpOgotICAgICAgICAgICAgcG9zID0gcmFuZG9tLnJhbmRpbnQoMSwgbGVu
KGtleSkgLSAxKQotICAgICAgICAgICAga2V5ID0ga2V5WzA6cG9zXSArICcgJyArIGtleVtwb3M6
XQotICAgICAgICByZXR1cm4gbnVtYmVyLCBrZXkKLQotICAgIGRlZiBfZ2VuZXJhdGVfa2V5Myhz
ZWxmKToKLSAgICAgICAgIyA0LjEgMjYuIGxldCAva2V5My8gYmUgYSBzdHJpbmcgY29uc2lzdGlu
ZyBvZiBlaWdodCByYW5kb20gYnl0ZXMgKG9yCi0gICAgICAgICMgZXF1aXZhbGVudGx5LCBhIHJh
bmRvbSA2NCBiaXQgaW50ZWdlciBlbmNvZGVkIGluIGEgYmlnLWVuZGlhbiBvcmRlcikuCi0gICAg
ICAgIHJldHVybiAnJy5qb2luKFtjaHIocmFuZG9tLnJhbmRpbnQoMCwgMjU1KSkgZm9yIF8gaW4g
eHJhbmdlKDgpXSkKLQotCi1jbGFzcyBDbGllbnRDb25uZWN0aW9uKG9iamVjdCk6Ci0gICAgIiIi
QSB3cmFwcGVyIGZvciBzb2NrZXQgb2JqZWN0IHRvIHByb3ZpZGUgdGhlIG1wX2Nvbm4gaW50ZXJm
YWNlLgotICAgIG1vZF9weXdlYnNvY2tldCBsaWJyYXJ5IGlzIGRlc2lnbmVkIHRvIGJlIHdvcmtp
bmcgb24gQXBhY2hlIG1vZF9weXRob24ncwotICAgIG1wX2Nvbm4gb2JqZWN0LgotICAgICIiIgot
Ci0gICAgZGVmIF9faW5pdF9fKHNlbGYsIHNvY2tldCk6Ci0gICAgICAgIHNlbGYuX3NvY2tldCA9
IHNvY2tldAotCi0gICAgZGVmIHdyaXRlKHNlbGYsIGRhdGEpOgotICAgICAgICBzZWxmLl9zb2Nr
ZXQuc2VuZGFsbChkYXRhKQotCi0gICAgZGVmIHJlYWQoc2VsZiwgbik6Ci0gICAgICAgIHJldHVy
biBzZWxmLl9zb2NrZXQucmVjdihuKQotCi0gICAgZGVmIGdldF9yZW1vdGVfYWRkcihzZWxmKToK
LSAgICAgICAgcmV0dXJuIHNlbGYuX3NvY2tldC5nZXRwZWVybmFtZSgpCi0gICAgcmVtb3RlX2Fk
ZHIgPSBwcm9wZXJ0eShnZXRfcmVtb3RlX2FkZHIpCi0KLQotY2xhc3MgQ2xpZW50UmVxdWVzdChv
YmplY3QpOgotICAgICIiIkEgd3JhcHBlciBjbGFzcyBqdXN0IHRvIG1ha2UgaXQgYWJsZSB0byBw
YXNzIGEgc29ja2V0IG9iamVjdCB0bwotICAgIGZ1bmN0aW9ucyB0aGF0IGV4cGVjdCBhIG1wX3Jl
cXVlc3Qgb2JqZWN0LgotICAgICIiIgotCi0gICAgZGVmIF9faW5pdF9fKHNlbGYsIHNvY2tldCk6
Ci0gICAgICAgIHNlbGYuX2xvZ2dlciA9IHV0aWwuZ2V0X2NsYXNzX2xvZ2dlcihzZWxmKQotCi0g
ICAgICAgIHNlbGYuX3NvY2tldCA9IHNvY2tldAotICAgICAgICBzZWxmLmNvbm5lY3Rpb24gPSBD
bGllbnRDb25uZWN0aW9uKHNvY2tldCkKLQotCi1kZWYgX2ltcG9ydF9zc2woKToKLSAgICBnbG9i
YWwgc3NsCi0gICAgdHJ5OgotICAgICAgICBpbXBvcnQgc3NsCi0gICAgICAgIHJldHVybiBUcnVl
Ci0gICAgZXhjZXB0IEltcG9ydEVycm9yOgotICAgICAgICByZXR1cm4gRmFsc2UKLQotCi1kZWYg
X2ltcG9ydF9weW9wZW5zc2woKToKLSAgICBnbG9iYWwgT3BlblNTTAotICAgIHRyeToKLSAgICAg
ICAgaW1wb3J0IE9wZW5TU0wuU1NMCi0gICAgICAgIHJldHVybiBUcnVlCi0gICAgZXhjZXB0IElt
cG9ydEVycm9yOgotICAgICAgICByZXR1cm4gRmFsc2UKLQotCi1jbGFzcyBFY2hvQ2xpZW50KG9i
amVjdCk6Ci0gICAgIiIiV2ViU29ja2V0IGVjaG8gY2xpZW50LiIiIgotCi0gICAgZGVmIF9faW5p
dF9fKHNlbGYsIG9wdGlvbnMpOgotICAgICAgICBzZWxmLl9vcHRpb25zID0gb3B0aW9ucwotICAg
ICAgICBzZWxmLl9zb2NrZXQgPSBOb25lCi0KLSAgICAgICAgc2VsZi5fbG9nZ2VyID0gdXRpbC5n
ZXRfY2xhc3NfbG9nZ2VyKHNlbGYpCi0KLSAgICBkZWYgcnVuKHNlbGYpOgotICAgICAgICAiIiJS
dW4gdGhlIGNsaWVudC4KLQotICAgICAgICBTaGFrZSBoYW5kcyBhbmQgdGhlbiByZXBlYXQgc2Vu
ZGluZyBtZXNzYWdlIGFuZCByZWNlaXZpbmcgaXRzIGVjaG8uCi0gICAgICAgICIiIgotCi0gICAg
ICAgIHNlbGYuX3NvY2tldCA9IHNvY2tldC5zb2NrZXQoKQotICAgICAgICBzZWxmLl9zb2NrZXQu
c2V0dGltZW91dChzZWxmLl9vcHRpb25zLnNvY2tldF90aW1lb3V0KQotICAgICAgICB0cnk6Ci0g
ICAgICAgICAgICBzZWxmLl9zb2NrZXQuY29ubmVjdCgoc2VsZi5fb3B0aW9ucy5zZXJ2ZXJfaG9z
dCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLl9vcHRpb25zLnNlcnZl
cl9wb3J0KSkKLSAgICAgICAgICAgIGlmIHNlbGYuX29wdGlvbnMudXNlX3RsczoKLSAgICAgICAg
ICAgICAgICBzZWxmLl9zb2NrZXQgPSBfVExTU29ja2V0KAotICAgICAgICAgICAgICAgICAgICBz
ZWxmLl9zb2NrZXQsCi0gICAgICAgICAgICAgICAgICAgIHNlbGYuX29wdGlvbnMudGxzX21vZHVs
ZSwKLSAgICAgICAgICAgICAgICAgICAgc2VsZi5fb3B0aW9ucy50bHNfdmVyc2lvbiwKLSAgICAg
ICAgICAgICAgICAgICAgc2VsZi5fb3B0aW9ucy5kaXNhYmxlX3Rsc19jb21wcmVzc2lvbikKLQot
ICAgICAgICAgICAgdmVyc2lvbiA9IHNlbGYuX29wdGlvbnMucHJvdG9jb2xfdmVyc2lvbgotCi0g
ICAgICAgICAgICBpZiAodmVyc2lvbiA9PSBfUFJPVE9DT0xfVkVSU0lPTl9IWUJJMDggb3IKLSAg
ICAgICAgICAgICAgICB2ZXJzaW9uID09IF9QUk9UT0NPTF9WRVJTSU9OX0hZQkkxMyk6Ci0gICAg
ICAgICAgICAgICAgc2VsZi5faGFuZHNoYWtlID0gQ2xpZW50SGFuZHNoYWtlUHJvY2Vzc29yKAot
ICAgICAgICAgICAgICAgICAgICBzZWxmLl9zb2NrZXQsIHNlbGYuX29wdGlvbnMpCi0gICAgICAg
ICAgICBlbGlmIHZlcnNpb24gPT0gX1BST1RPQ09MX1ZFUlNJT05fSFlCSTAwOgotICAgICAgICAg
ICAgICAgIHNlbGYuX2hhbmRzaGFrZSA9IENsaWVudEhhbmRzaGFrZVByb2Nlc3Nvckh5YmkwMCgK
LSAgICAgICAgICAgICAgICAgICAgc2VsZi5fc29ja2V0LCBzZWxmLl9vcHRpb25zKQotICAgICAg
ICAgICAgZWxzZToKLSAgICAgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKAotICAgICAgICAg
ICAgICAgICAgICAnSW52YWxpZCAtLXByb3RvY29sLXZlcnNpb24gZmxhZzogJXInICUgdmVyc2lv
bikKLQotICAgICAgICAgICAgc2VsZi5faGFuZHNoYWtlLmhhbmRzaGFrZSgpCi0KLSAgICAgICAg
ICAgIHNlbGYuX2xvZ2dlci5pbmZvKCdDb25uZWN0aW9uIGVzdGFibGlzaGVkJykKLQotICAgICAg
ICAgICAgcmVxdWVzdCA9IENsaWVudFJlcXVlc3Qoc2VsZi5fc29ja2V0KQotCi0gICAgICAgICAg
ICB2ZXJzaW9uX21hcCA9IHsKLSAgICAgICAgICAgICAgICBfUFJPVE9DT0xfVkVSU0lPTl9IWUJJ
MDg6IGNvbW1vbi5WRVJTSU9OX0hZQkkwOCwKLSAgICAgICAgICAgICAgICBfUFJPVE9DT0xfVkVS
U0lPTl9IWUJJMTM6IGNvbW1vbi5WRVJTSU9OX0hZQkkxMywKLSAgICAgICAgICAgICAgICBfUFJP
VE9DT0xfVkVSU0lPTl9IWUJJMDA6IGNvbW1vbi5WRVJTSU9OX0hZQkkwMH0KLSAgICAgICAgICAg
IHJlcXVlc3Qud3NfdmVyc2lvbiA9IHZlcnNpb25fbWFwW3ZlcnNpb25dCi0KLSAgICAgICAgICAg
IGlmICh2ZXJzaW9uID09IF9QUk9UT0NPTF9WRVJTSU9OX0hZQkkwOCBvcgotICAgICAgICAgICAg
ICAgIHZlcnNpb24gPT0gX1BST1RPQ09MX1ZFUlNJT05fSFlCSTEzKToKLSAgICAgICAgICAgICAg
ICBzdHJlYW1fb3B0aW9uID0gU3RyZWFtT3B0aW9ucygpCi0gICAgICAgICAgICAgICAgc3RyZWFt
X29wdGlvbi5tYXNrX3NlbmQgPSBUcnVlCi0gICAgICAgICAgICAgICAgc3RyZWFtX29wdGlvbi51
bm1hc2tfcmVjZWl2ZSA9IEZhbHNlCi0KLSAgICAgICAgICAgICAgICBpZiBzZWxmLl9vcHRpb25z
LmRlZmxhdGVfZnJhbWUgaXMgbm90IEZhbHNlOgotICAgICAgICAgICAgICAgICAgICBwcm9jZXNz
b3IgPSBzZWxmLl9vcHRpb25zLmRlZmxhdGVfZnJhbWUKLSAgICAgICAgICAgICAgICAgICAgcHJv
Y2Vzc29yLnNldHVwX3N0cmVhbV9vcHRpb25zKHN0cmVhbV9vcHRpb24pCi0KLSAgICAgICAgICAg
ICAgICBpZiBzZWxmLl9vcHRpb25zLnVzZV9wZXJtZXNzYWdlX2RlZmxhdGUgaXMgbm90IEZhbHNl
OgotICAgICAgICAgICAgICAgICAgICBmcmFtZXIgPSBzZWxmLl9vcHRpb25zLnVzZV9wZXJtZXNz
YWdlX2RlZmxhdGUKLSAgICAgICAgICAgICAgICAgICAgZnJhbWVyLnNldHVwX3N0cmVhbV9vcHRp
b25zKHN0cmVhbV9vcHRpb24pCi0KLSAgICAgICAgICAgICAgICBzZWxmLl9zdHJlYW0gPSBTdHJl
YW0ocmVxdWVzdCwgc3RyZWFtX29wdGlvbikKLSAgICAgICAgICAgIGVsaWYgdmVyc2lvbiA9PSBf
UFJPVE9DT0xfVkVSU0lPTl9IWUJJMDA6Ci0gICAgICAgICAgICAgICAgc2VsZi5fc3RyZWFtID0g
U3RyZWFtSGl4aWU3NShyZXF1ZXN0LCBUcnVlKQotCi0gICAgICAgICAgICBmb3IgbGluZSBpbiBz
ZWxmLl9vcHRpb25zLm1lc3NhZ2Uuc3BsaXQoJywnKToKLSAgICAgICAgICAgICAgICBzZWxmLl9z
dHJlYW0uc2VuZF9tZXNzYWdlKGxpbmUpCi0gICAgICAgICAgICAgICAgaWYgc2VsZi5fb3B0aW9u
cy52ZXJib3NlOgotICAgICAgICAgICAgICAgICAgICBwcmludCAnU2VuZDogJXMnICUgbGluZQot
ICAgICAgICAgICAgICAgIHRyeToKLSAgICAgICAgICAgICAgICAgICAgcmVjZWl2ZWQgPSBzZWxm
Ll9zdHJlYW0ucmVjZWl2ZV9tZXNzYWdlKCkKLQotICAgICAgICAgICAgICAgICAgICBpZiBzZWxm
Ll9vcHRpb25zLnZlcmJvc2U6Ci0gICAgICAgICAgICAgICAgICAgICAgICBwcmludCAnUmVjdjog
JXMnICUgcmVjZWl2ZWQKLSAgICAgICAgICAgICAgICBleGNlcHQgRXhjZXB0aW9uLCBlOgotICAg
ICAgICAgICAgICAgICAgICBpZiBzZWxmLl9vcHRpb25zLnZlcmJvc2U6Ci0gICAgICAgICAgICAg
ICAgICAgICAgICBwcmludCAnRXJyb3I6ICVzJyAlIGUKLSAgICAgICAgICAgICAgICAgICAgcmFp
c2UKLQotICAgICAgICAgICAgc2VsZi5fZG9fY2xvc2luZ19oYW5kc2hha2UoKQotICAgICAgICBm
aW5hbGx5OgotICAgICAgICAgICAgc2VsZi5fc29ja2V0LmNsb3NlKCkKLQotICAgIGRlZiBfZG9f
Y2xvc2luZ19oYW5kc2hha2Uoc2VsZik6Ci0gICAgICAgICIiIlBlcmZvcm0gY2xvc2luZyBoYW5k
c2hha2UgdXNpbmcgdGhlIHNwZWNpZmllZCBjbG9zaW5nIGZyYW1lLiIiIgotCi0gICAgICAgIGlm
IHNlbGYuX29wdGlvbnMubWVzc2FnZS5zcGxpdCgnLCcpWy0xXSA9PSBfR09PREJZRV9NRVNTQUdF
OgotICAgICAgICAgICAgIyByZXF1ZXN0ZWQgc2VydmVyIGluaXRpYXRlZCBjbG9zaW5nIGhhbmRz
aGFrZSwgc28KLSAgICAgICAgICAgICMgZXhwZWN0aW5nIGNsb3NpbmcgaGFuZHNoYWtlIG1lc3Nh
Z2UgZnJvbSBzZXJ2ZXIuCi0gICAgICAgICAgICBzZWxmLl9sb2dnZXIuaW5mbygnV2FpdCBmb3Ig
c2VydmVyLWluaXRpYXRlZCBjbG9zaW5nIGhhbmRzaGFrZScpCi0gICAgICAgICAgICBtZXNzYWdl
ID0gc2VsZi5fc3RyZWFtLnJlY2VpdmVfbWVzc2FnZSgpCi0gICAgICAgICAgICBpZiBtZXNzYWdl
IGlzIE5vbmU6Ci0gICAgICAgICAgICAgICAgcHJpbnQgJ1JlY3YgY2xvc2UnCi0gICAgICAgICAg
ICAgICAgcHJpbnQgJ1NlbmQgYWNrJwotICAgICAgICAgICAgICAgIHNlbGYuX2xvZ2dlci5pbmZv
KAotICAgICAgICAgICAgICAgICAgICAnUmVjZWl2ZWQgY2xvc2luZyBoYW5kc2hha2UgYW5kIHNl
bnQgYWNrJykKLSAgICAgICAgICAgICAgICByZXR1cm4KLSAgICAgICAgcHJpbnQgJ1NlbmQgY2xv
c2UnCi0gICAgICAgIHNlbGYuX3N0cmVhbS5jbG9zZV9jb25uZWN0aW9uKCkKLSAgICAgICAgc2Vs
Zi5fbG9nZ2VyLmluZm8oJ1NlbnQgY2xvc2luZyBoYW5kc2hha2UnKQotICAgICAgICBwcmludCAn
UmVjdiBhY2snCi0gICAgICAgIHNlbGYuX2xvZ2dlci5pbmZvKCdSZWNlaXZlZCBhY2snKQotCi0K
LWRlZiBtYWluKCk6Ci0gICAgc3lzLnN0ZG91dCA9IGNvZGVjcy5nZXR3cml0ZXIoJ3V0Zi04Jyko
c3lzLnN0ZG91dCkKLQotICAgIHBhcnNlciA9IE9wdGlvblBhcnNlcigpCi0gICAgIyBXZSBhY2Nl
cHQgLS1jb21tYW5kX2xpbmVfZmxhZyBzdHlsZSBmbGFncyB3aGljaCBpcyB0aGUgc2FtZSBhcyBH
b29nbGUKLSAgICAjIGdmbGFncyBpbiBhZGRpdGlvbiB0byBjb21tb24gLS1jb21tYW5kLWxpbmUt
ZmxhZyBzdHlsZSBmbGFncy4KLSAgICBwYXJzZXIuYWRkX29wdGlvbignLXMnLCAnLS1zZXJ2ZXIt
aG9zdCcsICctLXNlcnZlcl9ob3N0JywKLSAgICAgICAgICAgICAgICAgICAgICBkZXN0PSdzZXJ2
ZXJfaG9zdCcsIHR5cGU9J3N0cmluZycsCi0gICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdD0n
bG9jYWxob3N0JywgaGVscD0nc2VydmVyIGhvc3QnKQotICAgIHBhcnNlci5hZGRfb3B0aW9uKCct
cCcsICctLXNlcnZlci1wb3J0JywgJy0tc2VydmVyX3BvcnQnLAotICAgICAgICAgICAgICAgICAg
ICAgIGRlc3Q9J3NlcnZlcl9wb3J0JywgdHlwZT0naW50JywKLSAgICAgICAgICAgICAgICAgICAg
ICBkZWZhdWx0PV9VTkRFRklORURfUE9SVCwgaGVscD0nc2VydmVyIHBvcnQnKQotICAgIHBhcnNl
ci5hZGRfb3B0aW9uKCctbycsICctLW9yaWdpbicsIGRlc3Q9J29yaWdpbicsIHR5cGU9J3N0cmlu
ZycsCi0gICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdD1Ob25lLCBoZWxwPSdvcmlnaW4nKQot
ICAgIHBhcnNlci5hZGRfb3B0aW9uKCctcicsICctLXJlc291cmNlJywgZGVzdD0ncmVzb3VyY2Un
LCB0eXBlPSdzdHJpbmcnLAotICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ9Jy9lY2hvJywg
aGVscD0ncmVzb3VyY2UgcGF0aCcpCi0gICAgcGFyc2VyLmFkZF9vcHRpb24oJy1tJywgJy0tbWVz
c2FnZScsIGRlc3Q9J21lc3NhZ2UnLCB0eXBlPSdzdHJpbmcnLAotICAgICAgICAgICAgICAgICAg
ICAgIGhlbHA9KCdjb21tYS1zZXBhcmF0ZWQgbWVzc2FnZXMgdG8gc2VuZC4gJwotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgJyVzIHdpbGwgZm9yY2UgY2xvc2UgdGhlIGNvbm5lY3Rpb24gZnJv
bSBzZXJ2ZXIuJyAlCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgX0dPT0RCWUVfTUVTU0FH
RSkpCi0gICAgcGFyc2VyLmFkZF9vcHRpb24oJy1xJywgJy0tcXVpZXQnLCBkZXN0PSd2ZXJib3Nl
JywgYWN0aW9uPSdzdG9yZV9mYWxzZScsCi0gICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdD1U
cnVlLCBoZWxwPSdzdXBwcmVzcyBtZXNzYWdlcycpCi0gICAgcGFyc2VyLmFkZF9vcHRpb24oJy10
JywgJy0tdGxzJywgZGVzdD0ndXNlX3RscycsIGFjdGlvbj0nc3RvcmVfdHJ1ZScsCi0gICAgICAg
ICAgICAgICAgICAgICAgZGVmYXVsdD1GYWxzZSwgaGVscD0ndXNlIFRMUyAod3NzOi8vKS4gQnkg
ZGVmYXVsdCwgJwotICAgICAgICAgICAgICAgICAgICAgICdpdCBsb29rcyBmb3Igc3NsIGFuZCBw
eU9wZW5TU0wgbW9kdWxlIGFuZCB1c2VzIGZvdW5kICcKLSAgICAgICAgICAgICAgICAgICAgICAn
b25lLiBVc2UgLS10bHMtbW9kdWxlIG9wdGlvbiB0byBzcGVjaWZ5IHdoaWNoIG1vZHVsZSAnCi0g
ICAgICAgICAgICAgICAgICAgICAgJ3RvIHVzZScpCi0gICAgcGFyc2VyLmFkZF9vcHRpb24oJy0t
dGxzLW1vZHVsZScsICctLXRsc19tb2R1bGUnLCBkZXN0PSd0bHNfbW9kdWxlJywKLSAgICAgICAg
ICAgICAgICAgICAgICB0eXBlPSdjaG9pY2UnLAotICAgICAgICAgICAgICAgICAgICAgIGNob2lj
ZXM9W19UTFNfQllfU1RBTkRBUkRfTU9EVUxFLCBfVExTX0JZX1BZT1BFTlNTTF0sCi0gICAgICAg
ICAgICAgICAgICAgICAgaGVscD0nVXNlIHNzbCBtb2R1bGUgaWYgIiVzIiBpcyBzcGVjaWZpZWQu
ICcKLSAgICAgICAgICAgICAgICAgICAgICAnVXNlIHB5T3BlblNTTCBtb2R1bGUgaWYgIiVzIiBp
cyBzcGVjaWZpZWQnICUKLSAgICAgICAgICAgICAgICAgICAgICAoX1RMU19CWV9TVEFOREFSRF9N
T0RVTEUsIF9UTFNfQllfUFlPUEVOU1NMKSkKLSAgICBwYXJzZXIuYWRkX29wdGlvbignLS10bHMt
dmVyc2lvbicsICctLXRsc192ZXJzaW9uJywKLSAgICAgICAgICAgICAgICAgICAgICBkZXN0PSd0
bHNfdmVyc2lvbicsCi0gICAgICAgICAgICAgICAgICAgICAgdHlwZT0nc3RyaW5nJywgZGVmYXVs
dD1fVExTX1ZFUlNJT05fU1NMMjMsCi0gICAgICAgICAgICAgICAgICAgICAgaGVscD0nVExTL1NT
TCB2ZXJzaW9uIHRvIHVzZS4gT25lIG9mIFwnJyArCi0gICAgICAgICAgICAgICAgICAgICAgX1RM
U19WRVJTSU9OX1NTTDIzICsgJ1wnIChTU0wgdmVyc2lvbiAyIG9yIDMpLCBcJycgKwotICAgICAg
ICAgICAgICAgICAgICAgIF9UTFNfVkVSU0lPTl9TU0wzICsgJ1wnIChTU0wgdmVyc2lvbiAzKSwg
XCcnICsKLSAgICAgICAgICAgICAgICAgICAgICBfVExTX1ZFUlNJT05fVExTMSArICdcJyAoVExT
IHZlcnNpb24gMSknKQotICAgIHBhcnNlci5hZGRfb3B0aW9uKCctLWRpc2FibGUtdGxzLWNvbXBy
ZXNzaW9uJywgJy0tZGlzYWJsZV90bHNfY29tcHJlc3Npb24nLAotICAgICAgICAgICAgICAgICAg
ICAgIGRlc3Q9J2Rpc2FibGVfdGxzX2NvbXByZXNzaW9uJywKLSAgICAgICAgICAgICAgICAgICAg
ICBhY3Rpb249J3N0b3JlX3RydWUnLCBkZWZhdWx0PUZhbHNlLAotICAgICAgICAgICAgICAgICAg
ICAgIGhlbHA9J0Rpc2FibGUgVExTIGNvbXByZXNzaW9uLiBBdmFpbGFibGUgb25seSB3aGVuICcK
LSAgICAgICAgICAgICAgICAgICAgICAncHlPcGVuU1NMIG1vZHVsZSBpcyB1c2VkLicpCi0gICAg
cGFyc2VyLmFkZF9vcHRpb24oJy1rJywgJy0tc29ja2V0LXRpbWVvdXQnLCAnLS1zb2NrZXRfdGlt
ZW91dCcsCi0gICAgICAgICAgICAgICAgICAgICAgZGVzdD0nc29ja2V0X3RpbWVvdXQnLCB0eXBl
PSdpbnQnLCBkZWZhdWx0PV9USU1FT1VUX1NFQywKLSAgICAgICAgICAgICAgICAgICAgICBoZWxw
PSdUaW1lb3V0KHNlYykgZm9yIHNvY2tldHMnKQotICAgIHBhcnNlci5hZGRfb3B0aW9uKCctLWRy
YWZ0NzUnLCBkZXN0PSdkcmFmdDc1JywKLSAgICAgICAgICAgICAgICAgICAgICBhY3Rpb249J3N0
b3JlX3RydWUnLCBkZWZhdWx0PUZhbHNlLAotICAgICAgICAgICAgICAgICAgICAgIGhlbHA9J09i
c29sZXRlIG9wdGlvbi4gRG9uXCd0IHVzZSB0aGlzLicpCi0gICAgcGFyc2VyLmFkZF9vcHRpb24o
Jy0tcHJvdG9jb2wtdmVyc2lvbicsICctLXByb3RvY29sX3ZlcnNpb24nLAotICAgICAgICAgICAg
ICAgICAgICAgIGRlc3Q9J3Byb3RvY29sX3ZlcnNpb24nLAotICAgICAgICAgICAgICAgICAgICAg
IHR5cGU9J3N0cmluZycsIGRlZmF1bHQ9X1BST1RPQ09MX1ZFUlNJT05fSFlCSTEzLAotICAgICAg
ICAgICAgICAgICAgICAgIGhlbHA9J1dlYlNvY2tldCBwcm90b2NvbCB2ZXJzaW9uIHRvIHVzZS4g
T25lIG9mIFwnJyArCi0gICAgICAgICAgICAgICAgICAgICAgX1BST1RPQ09MX1ZFUlNJT05fSFlC
STEzICsgJ1wnLCBcJycgKwotICAgICAgICAgICAgICAgICAgICAgIF9QUk9UT0NPTF9WRVJTSU9O
X0hZQkkwOCArICdcJywgXCcnICsKLSAgICAgICAgICAgICAgICAgICAgICBfUFJPVE9DT0xfVkVS
U0lPTl9IWUJJMDAgKyAnXCcnKQotICAgIHBhcnNlci5hZGRfb3B0aW9uKCctLXZlcnNpb24taGVh
ZGVyJywgJy0tdmVyc2lvbl9oZWFkZXInLAotICAgICAgICAgICAgICAgICAgICAgIGRlc3Q9J3Zl
cnNpb25faGVhZGVyJywKLSAgICAgICAgICAgICAgICAgICAgICB0eXBlPSdpbnQnLCBkZWZhdWx0
PS0xLAotICAgICAgICAgICAgICAgICAgICAgIGhlbHA9J1NwZWNpZnkgU2VjLVdlYlNvY2tldC1W
ZXJzaW9uIGhlYWRlciB2YWx1ZScpCi0gICAgcGFyc2VyLmFkZF9vcHRpb24oJy0tZGVmbGF0ZS1m
cmFtZScsICctLWRlZmxhdGVfZnJhbWUnLAotICAgICAgICAgICAgICAgICAgICAgIGRlc3Q9J2Rl
ZmxhdGVfZnJhbWUnLAotICAgICAgICAgICAgICAgICAgICAgIGFjdGlvbj0nc3RvcmVfdHJ1ZScs
IGRlZmF1bHQ9RmFsc2UsCi0gICAgICAgICAgICAgICAgICAgICAgaGVscD0nVXNlIHRoZSBkZWZs
YXRlLWZyYW1lIGV4dGVuc2lvbi4nKQotICAgIHBhcnNlci5hZGRfb3B0aW9uKCctLXVzZS1wZXJt
ZXNzYWdlLWRlZmxhdGUnLCAnLS11c2VfcGVybWVzc2FnZV9kZWZsYXRlJywKLSAgICAgICAgICAg
ICAgICAgICAgICBkZXN0PSd1c2VfcGVybWVzc2FnZV9kZWZsYXRlJywKLSAgICAgICAgICAgICAg
ICAgICAgICBhY3Rpb249J3N0b3JlX3RydWUnLCBkZWZhdWx0PUZhbHNlLAotICAgICAgICAgICAg
ICAgICAgICAgIGhlbHA9J1VzZSB0aGUgcGVybWVzc2FnZS1kZWZsYXRlIGV4dGVuc2lvbi4nKQot
ICAgIHBhcnNlci5hZGRfb3B0aW9uKCctLWxvZy1sZXZlbCcsICctLWxvZ19sZXZlbCcsIHR5cGU9
J2Nob2ljZScsCi0gICAgICAgICAgICAgICAgICAgICAgZGVzdD0nbG9nX2xldmVsJywgZGVmYXVs
dD0nd2FybicsCi0gICAgICAgICAgICAgICAgICAgICAgY2hvaWNlcz1bJ2RlYnVnJywgJ2luZm8n
LCAnd2FybicsICdlcnJvcicsICdjcml0aWNhbCddLAotICAgICAgICAgICAgICAgICAgICAgIGhl
bHA9J0xvZyBsZXZlbC4nKQotCi0gICAgKG9wdGlvbnMsIHVudXNlZF9hcmdzKSA9IHBhcnNlci5w
YXJzZV9hcmdzKCkKLQotICAgIGxvZ2dpbmcuYmFzaWNDb25maWcobGV2ZWw9bG9nZ2luZy5nZXRM
ZXZlbE5hbWUob3B0aW9ucy5sb2dfbGV2ZWwudXBwZXIoKSkpCi0KLSAgICBpZiBvcHRpb25zLmRy
YWZ0NzU6Ci0gICAgICAgIGxvZ2dpbmcuY3JpdGljYWwoJy0tZHJhZnQ3NSBvcHRpb24gaXMgb2Jz
b2xldGUuJykKLSAgICAgICAgc3lzLmV4aXQoMSkKLQotICAgIGlmIG9wdGlvbnMucHJvdG9jb2xf
dmVyc2lvbiA9PSBfUFJPVE9DT0xfVkVSU0lPTl9ISVhJRTc1OgotICAgICAgICBsb2dnaW5nLmNy
aXRpY2FsKAotICAgICAgICAgICAgJ1ZhbHVlICVzIGlzIG9ic29sZXRlIGZvciAtLXByb3RvY29s
X3ZlcnNpb24gb3B0aW9ucycgJQotICAgICAgICAgICAgX1BST1RPQ09MX1ZFUlNJT05fSElYSUU3
NSkKLSAgICAgICAgc3lzLmV4aXQoMSkKLQotICAgIGlmIG9wdGlvbnMudXNlX3RsczoKLSAgICAg
ICAgaWYgb3B0aW9ucy50bHNfbW9kdWxlIGlzIE5vbmU6Ci0gICAgICAgICAgICBpZiBfaW1wb3J0
X3NzbCgpOgotICAgICAgICAgICAgICAgIG9wdGlvbnMudGxzX21vZHVsZSA9IF9UTFNfQllfU1RB
TkRBUkRfTU9EVUxFCi0gICAgICAgICAgICAgICAgbG9nZ2luZy5kZWJ1ZygnVXNpbmcgc3NsIG1v
ZHVsZScpCi0gICAgICAgICAgICBlbGlmIF9pbXBvcnRfcHlvcGVuc3NsKCk6Ci0gICAgICAgICAg
ICAgICAgb3B0aW9ucy50bHNfbW9kdWxlID0gX1RMU19CWV9QWU9QRU5TU0wKLSAgICAgICAgICAg
ICAgICBsb2dnaW5nLmRlYnVnKCdVc2luZyBweU9wZW5TU0wgbW9kdWxlJykKLSAgICAgICAgICAg
IGVsc2U6Ci0gICAgICAgICAgICAgICAgbG9nZ2luZy5jcml0aWNhbCgKLSAgICAgICAgICAgICAg
ICAgICAgICAgICdUTFMgc3VwcG9ydCByZXF1aXJlcyBzc2wgb3IgcHlPcGVuU1NMIG1vZHVsZS4n
KQotICAgICAgICAgICAgICAgIHN5cy5leGl0KDEpCi0gICAgICAgIGVsaWYgb3B0aW9ucy50bHNf
bW9kdWxlID09IF9UTFNfQllfU1RBTkRBUkRfTU9EVUxFOgotICAgICAgICAgICAgaWYgbm90IF9p
bXBvcnRfc3NsKCk6Ci0gICAgICAgICAgICAgICAgbG9nZ2luZy5jcml0aWNhbCgnc3NsIG1vZHVs
ZSBpcyBub3QgYXZhaWxhYmxlJykKLSAgICAgICAgICAgICAgICBzeXMuZXhpdCgxKQotICAgICAg
ICBlbGlmIG9wdGlvbnMudGxzX21vZHVsZSA9PSBfVExTX0JZX1BZT1BFTlNTTDoKLSAgICAgICAg
ICAgIGlmIG5vdCBfaW1wb3J0X3B5b3BlbnNzbCgpOgotICAgICAgICAgICAgICAgIGxvZ2dpbmcu
Y3JpdGljYWwoJ3B5T3BlblNTTCBtb2R1bGUgaXMgbm90IGF2YWlsYWJsZScpCi0gICAgICAgICAg
ICAgICAgc3lzLmV4aXQoMSkKLSAgICAgICAgZWxzZToKLSAgICAgICAgICAgIGxvZ2dpbmcuY3Jp
dGljYWwoJ0ludmFsaWQgLS10bHMtbW9kdWxlIG9wdGlvbjogJXInLAotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBvcHRpb25zLnRsc19tb2R1bGUpCi0gICAgICAgICAgICBzeXMuZXhpdCgx
KQotCi0gICAgICAgIGlmIChvcHRpb25zLmRpc2FibGVfdGxzX2NvbXByZXNzaW9uIGFuZAotICAg
ICAgICAgICAgb3B0aW9ucy50bHNfbW9kdWxlICE9IF9UTFNfQllfUFlPUEVOU1NMKToKLSAgICAg
ICAgICAgIGxvZ2dpbmcuY3JpdGljYWwoJ1lvdSBjYW4gZGlzYWJsZSBUTFMgY29tcHJlc3Npb24g
b25seSB3aGVuICcKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3B5T3BlblNTTCBtb2R1
bGUgaXMgdXNlZC4nKQotICAgICAgICAgICAgc3lzLmV4aXQoMSkKLSAgICBlbHNlOgotICAgICAg
ICBpZiBvcHRpb25zLnRsc19tb2R1bGUgaXMgbm90IE5vbmU6Ci0gICAgICAgICAgICBsb2dnaW5n
LmNyaXRpY2FsKCdVc2UgLS10bHMtbW9kdWxlIG9wdGlvbiBvbmx5IHRvZ2V0aGVyIHdpdGggJwot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnLS11c2UtdGxzIG9wdGlvbi4nKQotICAgICAg
ICAgICAgc3lzLmV4aXQoMSkKLQotICAgICAgICBpZiBvcHRpb25zLmRpc2FibGVfdGxzX2NvbXBy
ZXNzaW9uOgotICAgICAgICAgICAgbG9nZ2luZy5jcml0aWNhbCgnVXNlIC0tZGlzYWJsZS10bHMt
Y29tcHJlc3Npb24gb25seSB0b2dldGhlciAnCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICd3aXRoIC0tdXNlLXRscyBvcHRpb24uJykKLSAgICAgICAgICAgIHN5cy5leGl0KDEpCi0KLSAg
ICAjIERlZmF1bHQgcG9ydCBudW1iZXIgZGVwZW5kcyBvbiB3aGV0aGVyIFRMUyBpcyB1c2VkLgot
ICAgIGlmIG9wdGlvbnMuc2VydmVyX3BvcnQgPT0gX1VOREVGSU5FRF9QT1JUOgotICAgICAgICBp
ZiBvcHRpb25zLnVzZV90bHM6Ci0gICAgICAgICAgICBvcHRpb25zLnNlcnZlcl9wb3J0ID0gY29t
bW9uLkRFRkFVTFRfV0VCX1NPQ0tFVF9TRUNVUkVfUE9SVAotICAgICAgICBlbHNlOgotICAgICAg
ICAgICAgb3B0aW9ucy5zZXJ2ZXJfcG9ydCA9IGNvbW1vbi5ERUZBVUxUX1dFQl9TT0NLRVRfUE9S
VAotCi0gICAgIyBvcHRwYXJzZSBkb2Vzbid0IHNlZW0gdG8gaGFuZGxlIG5vbi1hc2NpaSBkZWZh
dWx0IHZhbHVlcy4KLSAgICAjIFNldCBkZWZhdWx0IG1lc3NhZ2UgaGVyZS4KLSAgICBpZiBub3Qg
b3B0aW9ucy5tZXNzYWdlOgotICAgICAgICBvcHRpb25zLm1lc3NhZ2UgPSB1J0hlbGxvLFx1NjVl
NVx1NjcyYycgICAjICJKYXBhbiIgaW4gSmFwYW5lc2UKLQotICAgIEVjaG9DbGllbnQob3B0aW9u
cykucnVuKCkKLQotCi1pZiBfX25hbWVfXyA9PSAnX19tYWluX18nOgotICAgIG1haW4oKQotCi0K
LSMgdmk6c3RzPTQgc3c9NCBldApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9zcmMvZXhhbXBsZS9lY2hvX25v
ZXh0X3dzaC5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvcHl3ZWJzb2NrZXQvc3JjL2V4YW1wbGUvZWNob19ub2V4dF93c2gucHkKZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDFkZjUxNTEyMjcxMTFlMTE0NDI0YzU1ODZhMTQyYTlhZGI3
ZDYwNGQuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tl
dC9zcmMvZXhhbXBsZS9lY2hvX25vZXh0X3dzaC5weQorKysgL2Rldi9udWxsCkBAIC0xLDYxICsw
LDAgQEAKLSMgQ29weXJpZ2h0IDIwMTMsIEdvb2dsZSBJbmMuCi0jIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCi0jCi0jIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAotIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCi0jIG1ldDoKLSMKLSMgICAgICog
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKLSMgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgotIyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlCi0jIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKLSMgaW4gdGhlIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQotIyBkaXN0cmli
dXRpb24uCi0jICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBu
YW1lcyBvZiBpdHMKLSMgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJv
bW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KLSMgdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNp
ZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLSMKLSMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwotIyAiQVMgSVMi
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VAotIyBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IKLSMgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKLSMgT1dORVIgT1IgQ09OVFJJQlVUT1JT
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCi0jIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QKLSMgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsCi0jIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQotIyBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0jIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRQotIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgotCi0KLV9HT09EQllFX01FU1NBR0UgPSB1J0dvb2RieWUn
Ci0KLQotZGVmIHdlYl9zb2NrZXRfZG9fZXh0cmFfaGFuZHNoYWtlKHJlcXVlc3QpOgotICAgICIi
IlJlY2VpdmVkIFNlYy1XZWJTb2NrZXQtRXh0ZW5zaW9ucyBoZWFkZXIgdmFsdWUgaXMgcGFyc2Vk
IGludG8KLSAgICByZXF1ZXN0LndzX3JlcXVlc3RlZF9leHRlbnNpb25zLiBweXdlYnNvY2tldCBj
cmVhdGVzIGV4dGVuc2lvbgotICAgIHByb2Nlc3NvcnMgdXNpbmcgaXQgYmVmb3JlIGRvX2V4dHJh
X2hhbmRzaGFrZSBjYWxsIGFuZCBuZXZlciBsb29rcyBhdCBpdAotICAgIGFmdGVyIHRoZSBjYWxs
LgotCi0gICAgVG8gcmVqZWN0IHJlcXVlc3RlZCBleHRlbnNpb25zLCBjbGVhciB0aGUgcHJvY2Vz
c29yIGxpc3QuCi0gICAgIiIiCi0KLSAgICByZXF1ZXN0LndzX2V4dGVuc2lvbl9wcm9jZXNzb3Jz
ID0gW10KLQotCi1kZWYgd2ViX3NvY2tldF90cmFuc2Zlcl9kYXRhKHJlcXVlc3QpOgotICAgICIi
IkVjaG8uIFNhbWUgYXMgZWNob193c2gucHkuIiIiCi0KLSAgICB3aGlsZSBUcnVlOgotICAgICAg
ICBsaW5lID0gcmVxdWVzdC53c19zdHJlYW0ucmVjZWl2ZV9tZXNzYWdlKCkKLSAgICAgICAgaWYg
bGluZSBpcyBOb25lOgotICAgICAgICAgICAgcmV0dXJuCi0gICAgICAgIGlmIGlzaW5zdGFuY2Uo
bGluZSwgdW5pY29kZSk6Ci0gICAgICAgICAgICByZXF1ZXN0LndzX3N0cmVhbS5zZW5kX21lc3Nh
Z2UobGluZSwgYmluYXJ5PUZhbHNlKQotICAgICAgICAgICAgaWYgbGluZSA9PSBfR09PREJZRV9N
RVNTQUdFOgotICAgICAgICAgICAgICAgIHJldHVybgotICAgICAgICBlbHNlOgotICAgICAgICAg
ICAgcmVxdWVzdC53c19zdHJlYW0uc2VuZF9tZXNzYWdlKGxpbmUsIGJpbmFyeT1UcnVlKQotCi0K
LSMgdmk6c3RzPTQgc3c9NCBldApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9zcmMvZXhhbXBsZS9lY2hvX3dz
aC5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
cHl3ZWJzb2NrZXQvc3JjL2V4YW1wbGUvZWNob193c2gucHkKZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDM4NjQ2YzMyY2ViNTE1ZjE1ZGQ1NzI2MjI2ODljNzllZTYxZTU0M2YuLjAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9zcmMvZXhhbXBs
ZS9lY2hvX3dzaC5weQorKysgL2Rldi9udWxsCkBAIC0xLDU0ICswLDAgQEAKLSMgQ29weXJpZ2h0
IDIwMTEsIEdvb2dsZSBJbmMuCi0jIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0jCi0jIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAotIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMgYXJlCi0jIG1ldDoKLSMKLSMgICAgICogUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSMgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotIyAg
ICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlCi0jIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIKLSMgaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQotIyBkaXN0cmlidXRpb24uCi0jICAgICAqIE5l
aXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKLSMgY29u
dHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJp
dmVkIGZyb20KLSMgdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4g
cGVybWlzc2lvbi4KLSMKLSMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJ
R0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwotIyAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAotIyBMSU1JVEVEIFRPLCBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IK
LSMgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IFRIRSBDT1BZUklHSFQKLSMgT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCi0jIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1Ig
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKLSMgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
Ci0jIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWQotIyBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0jIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotIyBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgotCi0KLV9HT09EQllFX01FU1NBR0UgPSB1J0dvb2RieWUnCi0KLQotZGVmIHdlYl9zb2Nr
ZXRfZG9fZXh0cmFfaGFuZHNoYWtlKHJlcXVlc3QpOgotICAgICMgVGhpcyBleGFtcGxlIGhhbmRs
ZXIgYWNjZXB0cyBhbnkgcmVxdWVzdC4gU2VlIG9yaWdpbl9jaGVja193c2gucHkgZm9yIGhvdwot
ICAgICMgdG8gcmVqZWN0IGFjY2VzcyBmcm9tIHVudHJ1c3RlZCBzY3JpcHRzIGJhc2VkIG9uIG9y
aWdpbiB2YWx1ZS4KLQotICAgIHBhc3MgICMgQWx3YXlzIGFjY2VwdC4KLQotCi1kZWYgd2ViX3Nv
Y2tldF90cmFuc2Zlcl9kYXRhKHJlcXVlc3QpOgotICAgIHdoaWxlIFRydWU6Ci0gICAgICAgIGxp
bmUgPSByZXF1ZXN0LndzX3N0cmVhbS5yZWNlaXZlX21lc3NhZ2UoKQotICAgICAgICBpZiBsaW5l
IGlzIE5vbmU6Ci0gICAgICAgICAgICByZXR1cm4KLSAgICAgICAgaWYgaXNpbnN0YW5jZShsaW5l
LCB1bmljb2RlKToKLSAgICAgICAgICAgIHJlcXVlc3Qud3Nfc3RyZWFtLnNlbmRfbWVzc2FnZShs
aW5lLCBiaW5hcnk9RmFsc2UpCi0gICAgICAgICAgICBpZiBsaW5lID09IF9HT09EQllFX01FU1NB
R0U6Ci0gICAgICAgICAgICAgICAgcmV0dXJuCi0gICAgICAgIGVsc2U6Ci0gICAgICAgICAgICBy
ZXF1ZXN0LndzX3N0cmVhbS5zZW5kX21lc3NhZ2UobGluZSwgYmluYXJ5PVRydWUpCi0KLQotIyB2
aTpzdHM9NCBzdz00IGV0CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3NyYy9leGFtcGxlL2V2ZW50c291cmNl
LmNnaSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
cHl3ZWJzb2NrZXQvc3JjL2V4YW1wbGUvZXZlbnRzb3VyY2UuY2dpCmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCBhZGRkZjIzN2NmN2Q0NzY0OTczNDdkMDk1YTEyMjk5NDE3N2UxNDA5Li4w
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3JjL2V4
YW1wbGUvZXZlbnRzb3VyY2UuY2dpCisrKyAvZGV2L251bGwKQEAgLTEsNTQgKzAsMCBAQAotIyEv
dXNyL2Jpbi9weXRob24KLQotIyBDb3B5cmlnaHQgMjAxMywgR29vZ2xlIEluYy4KLSMgQWxsIHJp
Z2h0cyByZXNlcnZlZC4KLSMKLSMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0jIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKLSMgbWV0Ogot
IwotIyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAotIyBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0jICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKLSMgY29weXJpZ2h0IG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgotIyBpbiB0
aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
Ci0jIGRpc3RyaWJ1dGlvbi4KLSMgICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5j
LiBub3IgdGhlIG5hbWVzIG9mIGl0cwotIyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5k
b3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQotIyB0aGlzIHNvZnR3YXJlIHdp
dGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgotIwotIyBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JT
Ci0jICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UCi0jIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgotIyBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAotIyBPV05FUiBPUiBD
T05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwKLSMgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVAotIyBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKLSMgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCi0jIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQKLSMgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFCi0jIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0KLQotIiIiVGhpcyBDR0kgc2NyaXB0
IGdlbmVyYXRlcyB0ZXh0L2V2ZW50LXN0cmVhbSB0eXBlIGRhdGEgc3RyZWFtIGZvciB0ZXN0aW5n
Ci10aGUgU2VydmVyLVNlbnQgRXZlbnRzLgotCi1JdCB3aWxsIG9ubHkgd29yayBjb3JyZWN0bHkg
d2l0aCBIVFRQIHNlcnZlcnMgdGhhdCBkbyBub3QgYnVmZmVyIHRoZSBvdXRwdXQgb2YKLUNHSSBz
Y3JpcHRzLgotIiIiCi0KLQotaW1wb3J0IHN5cwotaW1wb3J0IHRpbWUKLQotc3lzLnN0ZG91dC53
cml0ZSgnQ29udGVudC10eXBlOiB0ZXh0L2V2ZW50LXN0cmVhbVxyXG5cclxuJykKLQotaWQgPSAw
Ci0KLXdoaWxlIFRydWU6Ci0gIHN5cy5zdGRvdXQud3JpdGUoJ2RhdGE6IEhlbGxvXHJcbmlkOiAl
ZFxyXG5cclxuJyAlIGlkKQotICBzeXMuc3Rkb3V0LmZsdXNoKCkKLQotICBpZCA9IGlkICsgMQot
Ci0gIHRpbWUuc2xlZXAoMSkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3JjL2V4YW1wbGUvZXZlbnRzb3Vy
Y2UuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvcHl3ZWJzb2NrZXQvc3JjL2V4YW1wbGUvZXZlbnRzb3VyY2UuaHRtbApkZWxldGVkIGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMTU5OGE4ODA3ZDFmZmNjZWNmNTg1ZjFiYjY1NmZkMmQ5MDJmY2Qz
OS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3Ny
Yy9leGFtcGxlL2V2ZW50c291cmNlLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw3NCArMCwwIEBA
Ci08IS0tCi1Db3B5cmlnaHQgMjAxMywgR29vZ2xlIEluYy4KLUFsbCByaWdodHMgcmVzZXJ2ZWQu
Ci0KLVJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAotbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQotbWV0OgotCi0gICAgKiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgot
ICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZQotY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lcgotaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQotZGlzdHJpYnV0aW9uLgotICAgICogTmVpdGhlciB0
aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwotY29udHJpYnV0b3Jz
IG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20K
LXRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24u
Ci0KLVRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFO
RCBDT05UUklCVVRPUlMKLSJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UCi1MSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKLUEgUEFSVElDVUxBUiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCi1PV05F
UiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwKLVNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QKLUxJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAotREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCi1USEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
Ci0oSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UKLU9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0tLT4KLQotPCEtLQotU2ltcGxlIGV4YW1wbGUg
b2YgdGhlIFNlcnZlci1TZW50IEV2ZW50cwotaHR0cDovL2Rldi53My5vcmcvaHRtbDUvZXZlbnRz
b3VyY2UvCi0KLUZvciBjb21wYXJpc29uIHdpdGggdGhlIFdlYlNvY2tldCBQcm90b2NvbCAmIEFQ
SS4KLQotUnVuIHRoZSBweXdlYnNvY2tldCB3aXRoIHRoZSAtLWNnaV9wYXRoIHBhcmFtZXRlci4K
LS0tPgotCi08aHRtbD4KLTxoZWFkPgotPHRpdGxlPlNlcnZlci1TZW50IEV2ZW50cyBFeGFtcGxl
PC90aXRsZT4KLTxzY3JpcHQ+Ci12YXIgZXZlbnRTb3VyY2UgPSBudWxsOwotCi1mdW5jdGlvbiBh
ZGRUb0xvZyhkYXRhKSB7Ci0gIGxvZ0JveC52YWx1ZSArPSBkYXRhICsgJ1xuJzsKLSAgbG9nQm94
LnNjcm9sbFRvcCA9IDEwMDAwMDA7Ci19Ci0KLWZ1bmN0aW9uIGluaXQoKSB7Ci0gIGxvZ0JveCA9
IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdsb2cnKTsKLQotICBldmVudFNvdXJjZSAgPSBuZXcg
RXZlbnRTb3VyY2UoJy9ldmVudHNvdXJjZS5jZ2knKTsKLSAgZXZlbnRTb3VyY2Uub25vcGVuID0g
ZnVuY3Rpb24oKSB7Ci0gICAgYWRkVG9Mb2coJ29ub3BlbiAocmVhZHlTdGF0ZSA9ICcgKyBldmVu
dFNvdXJjZS5yZWFkeVN0YXRlICsgJyknKTsKLSAgfQotICBldmVudFNvdXJjZS5vbm1lc3NhZ2Ug
PSBmdW5jdGlvbihldmVudCkgewotICAgIGFkZFRvTG9nKGV2ZW50LmRhdGEpOwotICB9Ci0gIGV2
ZW50U291cmNlLm9uZXJyb3IgPSBmdW5jdGlvbihldmVudCkgewotICAgIGFkZFRvTG9nKCdvbmVy
cm9yIChyZWFkeVN0YXRlID0gJyArIGV2ZW50U291cmNlLnJlYWR5U3RhdGUgKyAnKScpOwotICB9
Ci19Ci08L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5IG9ubG9hZD0iaW5pdCgpIj4KLTx0ZXh0YXJl
YSBpZD0ibG9nIiByb3dzPSIxMCIgY29scz0iNDAiIHJlYWRvbmx5PjwvdGV4dGFyZWE+Ci08cCBz
dHlsZT0iZm9udC1zaXplOiBzbWFsbCI+Ci0gIE1ha2Ugc3VyZSB0aGF0IHB5d2Vic29ja2V0IGlz
IHJ1biB3aXRoIC0tY2dpX3BhdGggcGFyYW1ldGVyLgotPC9wPgotPC9ib2R5PgotPC9odG1sPgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy9weXdlYnNvY2tldC9zcmMvZXhhbXBsZS9oYW5kbGVyX21hcC50eHQgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3NyYy9l
eGFtcGxlL2hhbmRsZXJfbWFwLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMjFj
NGMwOWFhMDA5MWQ4YmFmMjkwODk1OTkwNTg2Nzg0MmFlYjg2NS4uMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3NyYy9leGFtcGxlL2hhbmRsZXJfbWFw
LnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDExICswLDAgQEAKLSMgd2Vic29ja2V0IGhhbmRsZXIg
bWFwIGZpbGUsIHVzZWQgYnkgc3RhbmRhbG9uZS5weSAtbSBvcHRpb24uCi0jIEEgbGluZSBzdGFy
dGluZyB3aXRoICcjJyBpcyBhIGNvbW1lbnQgbGluZS4KLSMgRWFjaCBsaW5lIGNvbnNpc3RzIG9m
ICdhbGlhc19yZXNvdXJjZV9wYXRoJyBhbmQgJ2V4aXN0aW5nX3Jlc291cmNlX3BhdGgnCi0jIHNl
cGFyYXRlZCBieSBzcGFjZXMuCi0jIEFsaWFzaW5nIGlzIHByb2Nlc3NlZCBmcm9tIHRoZSB0b3Ag
dG8gdGhlIGJvdHRvbSBvZiB0aGUgbGluZSwgYW5kCi0jICdleGlzdGluZ19yZXNvdXJjZV9wYXRo
JyBtdXN0IGV4aXN0IGJlZm9yZSBpdCBpcyBhbGlhc2VkLgotIyBGb3IgZXhhbXBsZSwKLSMgIC8g
L2VjaG8KLSMgbWVhbnMgdGhhdCBhIHJlcXVlc3QgdG8gJy8nIHdpbGwgYmUgaGFuZGxlZCBieSBo
YW5kbGVycyBmb3IgJy9lY2hvJy4KLS8gL2VjaG8KLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9zcmMvZXhh
bXBsZS9oc3RzX3dzaC5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3JjL2V4YW1wbGUvaHN0c193c2gucHkKZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IGU4NjE5NDY5MjFhZjA0NTk0ZDYyMDI2YjQ2ZjA3NzU4ZGRm
ZTQwMmEuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tl
dC9zcmMvZXhhbXBsZS9oc3RzX3dzaC5weQorKysgL2Rldi9udWxsCkBAIC0xLDQwICswLDAgQEAK
LSMgQ29weXJpZ2h0IDIwMTMsIEdvb2dsZSBJbmMuCi0jIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0j
Ci0jIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAotIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCi0jIG1ldDoKLSMKLSMgICAgICogUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
LSMgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgotIyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlCi0jIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKLSMgaW4gdGhlIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQotIyBkaXN0cmlidXRpb24u
Ci0jICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBv
ZiBpdHMKLSMgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBw
cm9kdWN0cyBkZXJpdmVkIGZyb20KLSMgdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHBy
aW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLSMKLSMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwotIyAiQVMgSVMiIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAotIyBM
SU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IKLSMgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKLSMgT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCi0jIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKLSMg
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsCi0jIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQotIyBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0jIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RQotIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgotCi0KLWRlZiB3ZWJfc29ja2V0X2RvX2V4dHJhX2hhbmRzaGFrZShy
ZXF1ZXN0KToKLSAgICByZXF1ZXN0LmV4dHJhX2hlYWRlcnMuYXBwZW5kKAotICAgICAgICAoJ1N0
cmljdC1UcmFuc3BvcnQtU2VjdXJpdHknLCAnbWF4LWFnZT04NjQwMCcpKQotCi0KLWRlZiB3ZWJf
c29ja2V0X3RyYW5zZmVyX2RhdGEocmVxdWVzdCk6Ci0gICAgcmVxdWVzdC53c19zdHJlYW0uc2Vu
ZF9tZXNzYWdlKCdIZWxsbycsIGJpbmFyeT1GYWxzZSkKLQotCi0jIHZpOnN0cz00IHN3PTQgZXQK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvcHl3ZWJzb2NrZXQvc3JjL2V4YW1wbGUvaW50ZXJuYWxfZXJyb3Jfd3NoLnB5IGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tl
dC9zcmMvZXhhbXBsZS9pbnRlcm5hbF9lcnJvcl93c2gucHkKZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IGZlNTgxYjU0YTY0OGMwOWEyMmYyNTQ1MTI3ZDcwZGYwNTEzNDkyMzQuLjAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9zcmMvZXhhbXBs
ZS9pbnRlcm5hbF9lcnJvcl93c2gucHkKKysrIC9kZXYvbnVsbApAQCAtMSw0MiArMCwwIEBACi0j
IENvcHlyaWdodCAyMDEyLCBHb29nbGUgSW5jLgotIyBBbGwgcmlnaHRzIHJlc2VydmVkLgotIwot
IyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKLSMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQotIyBtZXQ6Ci0jCi0jICAgICAqIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0j
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KLSMgICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZQotIyBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCi0jIGluIHRoZSBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKLSMgZGlzdHJpYnV0aW9uLgot
IyAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2Yg
aXRzCi0jIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJv
ZHVjdHMgZGVyaXZlZCBmcm9tCi0jIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlv
ciB3cml0dGVuIHBlcm1pc3Npb24uCi0jCi0jIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
VEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKLSMgIkFTIElTIiBBTkQgQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKLSMgTElN
SVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SCi0jIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCi0jIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAotIyBTUEVDSUFMLCBFWEVN
UExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCi0jIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLAotIyBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKLSMgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotIyAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UK
LSMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KLQotCi1mcm9tIG1vZF9weXdlYnNvY2tldCBpbXBvcnQgbXNndXRpbAot
Ci0KLWRlZiB3ZWJfc29ja2V0X2RvX2V4dHJhX2hhbmRzaGFrZShyZXF1ZXN0KToKLSAgICBwYXNz
Ci0KLQotZGVmIHdlYl9zb2NrZXRfdHJhbnNmZXJfZGF0YShyZXF1ZXN0KToKLSAgICByYWlzZSBt
c2d1dGlsLkJhZE9wZXJhdGlvbkV4Y2VwdGlvbignSW50ZW50aW9uYWwnKQotCi0KLSMgdmk6c3Rz
PTQgc3c9NCBldApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9zcmMvZXhhbXBsZS9vcmlnaW5fY2hlY2tfd3No
LnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9w
eXdlYnNvY2tldC9zcmMvZXhhbXBsZS9vcmlnaW5fY2hlY2tfd3NoLnB5CmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCBlMDU3NjdhYjkzMmZiNTgyODI0YWFmMWE1N2Q5MjQ5YzMwNGJkNTFl
Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3Jj
L2V4YW1wbGUvb3JpZ2luX2NoZWNrX3dzaC5weQorKysgL2Rldi9udWxsCkBAIC0xLDQ0ICswLDAg
QEAKLSMgQ29weXJpZ2h0IDIwMTEsIEdvb2dsZSBJbmMuCi0jIEFsbCByaWdodHMgcmVzZXJ2ZWQu
Ci0jCi0jIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAotIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCi0jIG1ldDoKLSMKLSMgICAgICogUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKLSMgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgotIyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlCi0jIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKLSMgaW4gdGhlIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQotIyBkaXN0cmlidXRp
b24uCi0jICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1l
cyBvZiBpdHMKLSMgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90
ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KLSMgdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmlj
IHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLSMKLSMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwotIyAiQVMgSVMiIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAot
IyBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IKLSMgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKLSMgT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCi0jIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QK
LSMgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsCi0jIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQotIyBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0jIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRQotIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgotCi0jIFRoaXMgZXhhbXBsZSBpcyBkZXJpdmVkIGZyb20gdGVz
dC90ZXN0ZGF0YS9oYW5kbGVycy9vcmlnaW5fY2hlY2tfd3NoLnB5LgotCi0KLWRlZiB3ZWJfc29j
a2V0X2RvX2V4dHJhX2hhbmRzaGFrZShyZXF1ZXN0KToKLSAgICBpZiByZXF1ZXN0LndzX29yaWdp
biA9PSAnaHR0cDovL2V4YW1wbGUuY29tJzoKLSAgICAgICAgcmV0dXJuCi0gICAgcmFpc2UgVmFs
dWVFcnJvcignVW5hY2NlcHRhYmxlIG9yaWdpbjogJXInICUgcmVxdWVzdC53c19vcmlnaW4pCi0K
LQotZGVmIHdlYl9zb2NrZXRfdHJhbnNmZXJfZGF0YShyZXF1ZXN0KToKLSAgICByZXF1ZXN0LmNv
bm5lY3Rpb24ud3JpdGUoJ29yaWdpbl9jaGVja193c2gucHkgaXMgY2FsbGVkIGZvciAlcywgJXMn
ICUKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHJlcXVlc3Qud3NfcmVzb3VyY2UsIHJl
cXVlc3Qud3NfcHJvdG9jb2wpKQotCi0KLSMgdmk6c3RzPTQgc3c9NCBldApkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNv
Y2tldC9zcmMvZXhhbXBsZS9weXdlYnNvY2tldC5jb25mIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9zcmMvZXhhbXBsZS9weXdl
YnNvY2tldC5jb25mCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzMzVkMTMwYTVjODRm
NjlkZTRmODFkMzU4ZmIyY2RiNWJkZTRhZjZkLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3JjL2V4YW1wbGUvcHl3ZWJzb2NrZXQuY29uZgorKysg
L2Rldi9udWxsCkBAIC0xLDQyICswLDAgQEAKLSMgQ29weXJpZ2h0IDIwMTEsIEdvb2dsZSBJbmMu
Ci0jIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0jCi0jIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotIyBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJl
Ci0jIG1ldDoKLSMKLSMgICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSMgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotIyAgICAgKiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCi0jIGNvcHlyaWdodCBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIKLSMgaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZQotIyBkaXN0cmlidXRpb24uCi0jICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2Yg
R29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKLSMgY29udHJpYnV0b3JzIG1heSBiZSB1
c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KLSMgdGhpcyBz
b2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLSMKLSMg
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENP
TlRSSUJVVE9SUwotIyAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVAotIyBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKLSMgQSBQQVJUSUNVTEFSIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKLSMg
T1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsCi0jIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QKLSMgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCi0jIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQot
IyBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUCi0jIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotCi0jCi0jIFNhbXBs
ZSBjb25maWd1cmF0aW9uIGZpbGUgZm9yIGFwYWNoZTIKLSMKLUxvZ0xldmVsIGRlYnVnCi08SWZN
b2R1bGUgcHl0aG9uX21vZHVsZT4KLSAgUHl0aG9uUGF0aCAic3lzLnBhdGgrWycvbW9kX3B5d2Vi
c29ja2V0J10iCi0gIFB5dGhvbk9wdGlvbiBtb2RfcHl3ZWJzb2NrZXQuaGFuZGxlcl9yb290IC92
YXIvd3d3Ci0gIFB5dGhvbk9wdGlvbiBtb2RfcHl3ZWJzb2NrZXQuaGFuZGxlcl9zY2FuIC92YXIv
d3d3L3dzCi0gICNQeXRob25PcHRpb24gbW9kX3B5d2Vic29ja2V0LmFsbG93X2RyYWZ0NzUgT24K
LSAgPExvY2F0aW9uIC93cz4KLSAgICBQeXRob25IZWFkZXJQYXJzZXJIYW5kbGVyIG1vZF9weXdl
YnNvY2tldC5oZWFkZXJwYXJzZXJoYW5kbGVyCi0gIDwvTG9jYXRpb24+Ci08L0lmTW9kdWxlPgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy9weXdlYnNvY2tldC9zcmMvZXhhbXBsZS9zcGVjaWFsX2hlYWRlcnMuY2dpIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9z
cmMvZXhhbXBsZS9zcGVjaWFsX2hlYWRlcnMuY2dpCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCBlYTUwODBmMWYxYWVhM2EzN2E3ZTcyOWM2NzhkNmExMjMzN2JlZGI3Li4wMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3JjL2V4YW1wbGUvc3Bl
Y2lhbF9oZWFkZXJzLmNnaQorKysgL2Rldi9udWxsCkBAIC0xLDI4ICswLDAgQEAKLSMhL3Vzci9i
aW4vcHl0aG9uCi0KLSMgQ29weXJpZ2h0IDIwMTQgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KLSMKLSMgVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qt
c3R5bGUKLSMgbGljZW5zZSB0aGF0IGNhbiBiZSBmb3VuZCBpbiB0aGUgQ09QWUlORyBmaWxlIG9y
IGF0Ci0jIGh0dHBzOi8vZGV2ZWxvcGVycy5nb29nbGUuY29tL29wZW4tc291cmNlL2xpY2Vuc2Vz
L2JzZAotCi0iIiJDR0kgc2NyaXB0IHNhbXBsZSBmb3IgdGVzdGluZyBlZmZlY3Qgb2YgSFRUUCBo
ZWFkZXJzIG9uIHRoZSBvcmlnaW4gcGFnZS4KLQotTm90ZSB0aGF0IENHSSBzY3JpcHRzIGRvbid0
IHdvcmsgb24gdGhlIHN0YW5kYWxvbmUgcHl3ZWJzb2NrZXQgcnVubmluZyBpbiBUTFMKLW1vZGUu
Ci0iIiIKLQotCi1wcmludCAiIiJDb250ZW50LXR5cGU6IHRleHQvaHRtbAotQ29udGVudC1TZWN1
cml0eS1Qb2xpY3k6IGNvbm5lY3Qtc3JjIHNlbGYKLQotPGh0bWw+Ci08aGVhZD4KLTx0aXRsZT48
L3RpdGxlPgotPC9oZWFkPgotPGJvZHk+Ci08c2NyaXB0PgotdmFyIHNvY2tldCA9IG5ldyBXZWJT
b2NrZXQoIndzOi8vZXhhbXBsZS5jb20iKTsKLTwvc2NyaXB0PgotPC9ib2R5PgotPC9odG1sPiIi
IgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy9weXdlYnNvY2tldC9zcmMvZXhhbXBsZS91dGlsLmpzIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9zcmMvZXhhbXBs
ZS91dGlsLmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhMWNhZDQ5NzVlZTBjZWFl
YzZhODk4MmUyOTU0Y2Y5NjRmZGU1MmU5Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3JjL2V4YW1wbGUvdXRpbC5qcworKysgL2Rldi9udWxsCkBA
IC0xLDE3NyArMCwwIEBACi0vLyBDb3B5cmlnaHQgMjAxMywgR29vZ2xlIEluYy4KLS8vIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCi0vLwotLy8gUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0vLyBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCi0vLyBt
ZXQ6Ci0vLwotLy8gICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLS8vIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLS8vICAgICAqIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKLS8vIGNvcHlyaWdodCBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIKLS8vIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUKLS8vIGRpc3RyaWJ1dGlvbi4KLS8vICAgICAqIE5laXRoZXIgdGhlIG5hbWUg
b2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKLS8vIGNvbnRyaWJ1dG9ycyBtYXkg
YmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCi0vLyB0
aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgot
Ly8KLS8vIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJT
IEFORCBDT05UUklCVVRPUlMKLS8vICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCi0vLyBMSU1JVEVEIFRPLCBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKLS8vIEEgUEFS
VElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09Q
WVJJR0hUCi0vLyBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKLS8vIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKLS8vIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAotLy8g
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZCi0vLyBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0vLyAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLS8vIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCi0KLQotLy8gVXRpbGl0aWVzIGZvciBleGFtcGxlIGFwcGxpY2F0aW9ucyAoZm9yIGJvdGgg
bWFpbiBhbmQgd29ya2VyIHRocmVhZCkuCi0KLXZhciByZXN1bHRzID0ge307Ci0KLWZ1bmN0aW9u
IGdldFRpbWVTdGFtcCgpIHsKLSAgcmV0dXJuIERhdGUubm93KCk7Ci19Ci0KLWZ1bmN0aW9uIGZv
cm1hdFJlc3VsdEluS2lCKHNpemUsIHRpbWVQZXJNZXNzYWdlSW5Ncywgc3RkZGV2VGltZVBlck1l
c3NhZ2VJbk1zLAotICAgIHNwZWVkLCBwcmludFNpemUpIHsKLSAgaWYgKHByaW50U2l6ZSkgewot
ICAgIHJldHVybiAoc2l6ZSAvIDEwMjQpICsKLSAgICAgICAgJ1x0JyArIHRpbWVQZXJNZXNzYWdl
SW5Ncy50b0ZpeGVkKDMpICsKLSAgICAgICAgKHN0ZGRldlRpbWVQZXJNZXNzYWdlSW5NcyA9PSAt
MSA/Ci0gICAgICAgICAgICAnJyA6Ci0gICAgICAgICAgICAnXHQnICsgc3RkZGV2VGltZVBlck1l
c3NhZ2VJbk1zLnRvRml4ZWQoMykpICsKLSAgICAgICAgJ1x0JyArIHNwZWVkLnRvRml4ZWQoMyk7
Ci0gIH0gZWxzZSB7Ci0gICAgcmV0dXJuIHNwZWVkLnRvU3RyaW5nKCk7Ci0gIH0KLX0KLQotZnVu
Y3Rpb24gY2xlYXJBdmVyYWdlRGF0YSgpIHsKLSAgcmVzdWx0cyA9IHt9OwotfQotCi1mdW5jdGlv
biByZXBvcnRBdmVyYWdlRGF0YShjb25maWcpIHsKLSAgY29uZmlnLmFkZFRvU3VtbWFyeSgKLSAg
ICAgICdTaXplW0tpQl1cdEF2ZXJhZ2UgdGltZVttc11cdFN0ZGRldiB0aW1lW21zXVx0U3BlZWRb
S0Ivc10nKTsKLSAgZm9yICh2YXIgc2l6ZSBpbiByZXN1bHRzKSB7Ci0gICAgdmFyIGF2ZXJhZ2VU
aW1lUGVyTWVzc2FnZUluTXMgPSByZXN1bHRzW3NpemVdLnN1bV90IC8gcmVzdWx0c1tzaXplXS5u
OwotICAgIHZhciBzcGVlZCA9IGNhbGN1bGF0ZVNwZWVkSW5LQihzaXplLCBhdmVyYWdlVGltZVBl
ck1lc3NhZ2VJbk1zKTsKLSAgICAvLyBDYWxjdWxhdGUgc2FtcGxlIHN0YW5kYXJkIGRldmlhdGlv
bgotICAgIHZhciBzdGRkZXZUaW1lUGVyTWVzc2FnZUluTXMgPSBNYXRoLnNxcnQoCi0gICAgICAg
IChyZXN1bHRzW3NpemVdLnN1bV90MiAvIHJlc3VsdHNbc2l6ZV0ubiAtCi0gICAgICAgICAgICBh
dmVyYWdlVGltZVBlck1lc3NhZ2VJbk1zICogYXZlcmFnZVRpbWVQZXJNZXNzYWdlSW5NcykgKgot
ICAgICAgICByZXN1bHRzW3NpemVdLm4gLwotICAgICAgICAocmVzdWx0c1tzaXplXS5uIC0gMSkp
OwotICAgIGNvbmZpZy5hZGRUb1N1bW1hcnkoZm9ybWF0UmVzdWx0SW5LaUIoCi0gICAgICAgIHNp
emUsIGF2ZXJhZ2VUaW1lUGVyTWVzc2FnZUluTXMsIHN0ZGRldlRpbWVQZXJNZXNzYWdlSW5Ncywg
c3BlZWQsCi0gICAgICAgIHRydWUpKTsKLSAgfQotfQotCi1mdW5jdGlvbiBjYWxjdWxhdGVTcGVl
ZEluS0Ioc2l6ZSwgdGltZVNwZW50SW5NcykgewotICByZXR1cm4gTWF0aC5yb3VuZChzaXplIC8g
dGltZVNwZW50SW5NcyAqIDEwMDApIC8gMTAwMDsKLX0KLQotZnVuY3Rpb24gY2FsY3VsYXRlQW5k
TG9nUmVzdWx0KGNvbmZpZywgc2l6ZSwgc3RhcnRUaW1lSW5NcywgdG90YWxTaXplKSB7Ci0gIHZh
ciB0aW1lU3BlbnRJbk1zID0gZ2V0VGltZVN0YW1wKCkgLSBzdGFydFRpbWVJbk1zOwotICB2YXIg
c3BlZWQgPSBjYWxjdWxhdGVTcGVlZEluS0IodG90YWxTaXplLCB0aW1lU3BlbnRJbk1zKTsKLSAg
dmFyIHRpbWVQZXJNZXNzYWdlSW5NcyA9IHRpbWVTcGVudEluTXMgLyAodG90YWxTaXplIC8gc2l6
ZSk7Ci0gIGlmICghcmVzdWx0c1tzaXplXSkgewotICAgIHJlc3VsdHNbc2l6ZV0gPSB7bjogMCwg
c3VtX3Q6IDAsIHN1bV90MjogMH07Ci0gIH0KLSAgY29uZmlnLm1lYXN1cmVWYWx1ZSh0aW1lUGVy
TWVzc2FnZUluTXMpOwotICByZXN1bHRzW3NpemVdLm4gKys7Ci0gIHJlc3VsdHNbc2l6ZV0uc3Vt
X3QgKz0gdGltZVBlck1lc3NhZ2VJbk1zOwotICByZXN1bHRzW3NpemVdLnN1bV90MiArPSB0aW1l
UGVyTWVzc2FnZUluTXMgKiB0aW1lUGVyTWVzc2FnZUluTXM7Ci0gIGNvbmZpZy5hZGRUb0xvZyhm
b3JtYXRSZXN1bHRJbktpQihzaXplLCB0aW1lUGVyTWVzc2FnZUluTXMsIC0xLCBzcGVlZCwKLSAg
ICAgIGNvbmZpZy5wcmludFNpemUpKTsKLX0KLQotZnVuY3Rpb24gZmlsbEFycmF5QnVmZmVyKGJ1
ZmZlciwgYykgewotICB2YXIgaTsKLQotICB2YXIgdTMyQ29udGVudCA9IGMgKiAweDAxMDEwMTAx
OwotCi0gIHZhciB1MzJCbG9ja3MgPSBNYXRoLmZsb29yKGJ1ZmZlci5ieXRlTGVuZ3RoIC8gNCk7
Ci0gIHZhciB1MzJWaWV3ID0gbmV3IFVpbnQzMkFycmF5KGJ1ZmZlciwgMCwgdTMyQmxvY2tzKTsK
LSAgLy8gbGVuZ3RoIGF0dHJpYnV0ZSBpcyBzbG93IG9uIENocm9tZS4gRG9uJ3QgdXNlIGl0IGZv
ciBsb29wIGNvbmRpdGlvbi4KLSAgZm9yIChpID0gMDsgaSA8IHUzMkJsb2NrczsgKytpKSB7Ci0g
ICAgdTMyVmlld1tpXSA9IHUzMkNvbnRlbnQ7Ci0gIH0KLQotICAvLyBGcmFjdGlvbgotICB2YXIg
dThCbG9ja3MgPSBidWZmZXIuYnl0ZUxlbmd0aCAtIHUzMkJsb2NrcyAqIDQ7Ci0gIHZhciB1OFZp
ZXcgPSBuZXcgVWludDhBcnJheShidWZmZXIsIHUzMkJsb2NrcyAqIDQsIHU4QmxvY2tzKTsKLSAg
Zm9yIChpID0gMDsgaSA8IHU4QmxvY2tzOyArK2kpIHsKLSAgICB1OFZpZXdbaV0gPSBjOwotICB9
Ci19Ci0KLWZ1bmN0aW9uIHZlcmlmeUFycmF5QnVmZmVyKGJ1ZmZlciwgZXhwZWN0ZWRDaGFyKSB7
Ci0gIHZhciBpOwotCi0gIHZhciBleHBlY3RlZFUzMlZhbHVlID0gZXhwZWN0ZWRDaGFyICogMHgw
MTAxMDEwMTsKLQotICB2YXIgdTMyQmxvY2tzID0gTWF0aC5mbG9vcihidWZmZXIuYnl0ZUxlbmd0
aCAvIDQpOwotICB2YXIgdTMyVmlldyA9IG5ldyBVaW50MzJBcnJheShidWZmZXIsIDAsIHUzMkJs
b2Nrcyk7Ci0gIGZvciAoaSA9IDA7IGkgPCB1MzJCbG9ja3M7ICsraSkgewotICAgIGlmICh1MzJW
aWV3W2ldICE9IGV4cGVjdGVkVTMyVmFsdWUpIHsKLSAgICAgIHJldHVybiBmYWxzZTsKLSAgICB9
Ci0gIH0KLQotICB2YXIgdThCbG9ja3MgPSBidWZmZXIuYnl0ZUxlbmd0aCAtIHUzMkJsb2NrcyAq
IDQ7Ci0gIHZhciB1OFZpZXcgPSBuZXcgVWludDhBcnJheShidWZmZXIsIHUzMkJsb2NrcyAqIDQs
IHU4QmxvY2tzKTsKLSAgZm9yIChpID0gMDsgaSA8IHU4QmxvY2tzOyArK2kpIHsKLSAgICBpZiAo
dThWaWV3W2ldICE9IGV4cGVjdGVkQ2hhcikgewotICAgICAgcmV0dXJuIGZhbHNlOwotICAgIH0K
LSAgfQotCi0gIHJldHVybiB0cnVlOwotfQotCi1mdW5jdGlvbiB2ZXJpZnlCbG9iKGNvbmZpZywg
YmxvYiwgZXhwZWN0ZWRDaGFyLCBkb25lQ2FsbGJhY2spIHsKLSAgdmFyIHJlYWRlciA9IG5ldyBG
aWxlUmVhZGVyKGJsb2IpOwotICByZWFkZXIub25lcnJvciA9IGZ1bmN0aW9uKCkgewotICAgIGNv
bmZpZy5hZGRUb0xvZygnRmlsZVJlYWRlciBFcnJvcjogJyArIHJlYWRlci5lcnJvci5tZXNzYWdl
KTsKLSAgICBkb25lQ2FsbGJhY2soYmxvYi5zaXplLCBmYWxzZSk7Ci0gIH0KLSAgcmVhZGVyLm9u
bG9hZGVuZCA9IGZ1bmN0aW9uKCkgewotICAgIHZhciByZXN1bHQgPSB2ZXJpZnlBcnJheUJ1ZmZl
cihyZWFkZXIucmVzdWx0LCBleHBlY3RlZENoYXIpOwotICAgIGRvbmVDYWxsYmFjayhibG9iLnNp
emUsIHJlc3VsdCk7Ci0gIH0KLSAgcmVhZGVyLnJlYWRBc0FycmF5QnVmZmVyKGJsb2IpOwotfQot
Ci1mdW5jdGlvbiB2ZXJpZnlBY2tub3dsZWRnZW1lbnQoY29uZmlnLCBtZXNzYWdlLCBzaXplKSB7
Ci0gIGlmICh0eXBlb2YgbWVzc2FnZSAhPSAnc3RyaW5nJykgewotICAgIGNvbmZpZy5hZGRUb0xv
ZygnSW52YWxpZCBhY2sgdHlwZTogJyArIHR5cGVvZiBtZXNzYWdlKTsKLSAgICByZXR1cm4gZmFs
c2U7Ci0gIH0KLSAgdmFyIHBhcnNlZEFjayA9IHBhcnNlSW50KG1lc3NhZ2UpOwotICBpZiAoaXNO
YU4ocGFyc2VkQWNrKSkgewotICAgIGNvbmZpZy5hZGRUb0xvZygnSW52YWxpZCBhY2sgdmFsdWU6
ICcgKyBtZXNzYWdlKTsKLSAgICByZXR1cm4gZmFsc2U7Ci0gIH0KLSAgaWYgKHBhcnNlZEFjayAh
PSBzaXplKSB7Ci0gICAgY29uZmlnLmFkZFRvTG9nKAotICAgICAgICAnRXhwZWN0ZWQgYWNrIGZv
ciAnICsgc2l6ZSArICdCIGJ1dCByZWNlaXZlZCBvbmUgZm9yICcgKyBwYXJzZWRBY2sgKwotICAg
ICAgICAnQicpOwotICAgIHJldHVybiBmYWxzZTsKLSAgfQotCi0gIHJldHVybiB0cnVlOwotfQot
Ci1mdW5jdGlvbiBjbG9uZUNvbmZpZyhvYmopIHsKLSAgdmFyIG5ld09iaiA9IHt9OwotICBmb3Ig
KGtleSBpbiBvYmopIHsKLSAgICBuZXdPYmpba2V5XSA9IG9ialtrZXldOwotICB9Ci0gIHJldHVy
biBuZXdPYmo7Ci19CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3NyYy9leGFtcGxlL3V0aWxfbWFpbi5qcyBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJz
b2NrZXQvc3JjL2V4YW1wbGUvdXRpbF9tYWluLmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCBiMDNkMWMyYmRjNDYyYzY1NGY2MDM1YmE5NmU0ZWI4YTJiYWE3Yjg0Li4wMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3JjL2V4YW1wbGUvdXRp
bF9tYWluLmpzCisrKyAvZGV2L251bGwKQEAgLTEsNjMgKzAsMCBAQAotLy8gQ29weXJpZ2h0IDIw
MTQgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLS8vCi0vLyBVc2Ugb2YgdGhpcyBz
b3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZQotLy8gbGljZW5zZSB0aGF0IGNh
biBiZSBmb3VuZCBpbiB0aGUgQ09QWUlORyBmaWxlIG9yIGF0Ci0vLyBodHRwczovL2RldmVsb3Bl
cnMuZ29vZ2xlLmNvbS9vcGVuLXNvdXJjZS9saWNlbnNlcy9ic2QKLQotLy8gVXRpbGl0aWVzIGZv
ciBleGFtcGxlIGFwcGxpY2F0aW9ucyAoZm9yIHRoZSBtYWluIHRocmVhZCBvbmx5KS4KLQotdmFy
IGxvZ0JveCA9IG51bGw7Ci12YXIgcXVldWVkTG9nID0gJyc7Ci0KLXZhciBzdW1tYXJ5Qm94ID0g
bnVsbDsKLQotZnVuY3Rpb24gcXVldWVMb2cobG9nKSB7Ci0gIHF1ZXVlZExvZyArPSBsb2cgKyAn
XG4nOwotfQotCi1mdW5jdGlvbiBhZGRUb0xvZyhsb2cpIHsKLSAgbG9nQm94LnZhbHVlICs9IHF1
ZXVlZExvZzsKLSAgcXVldWVkTG9nID0gJyc7Ci0gIGxvZ0JveC52YWx1ZSArPSBsb2cgKyAnXG4n
OwotICBsb2dCb3guc2Nyb2xsVG9wID0gMTAwMDAwMDsKLX0KLQotZnVuY3Rpb24gYWRkVG9TdW1t
YXJ5KGxvZykgewotICBzdW1tYXJ5Qm94LnZhbHVlICs9IGxvZyArICdcbic7Ci0gIHN1bW1hcnlC
b3guc2Nyb2xsVG9wID0gMTAwMDAwMDsKLX0KLQotLy8gdmFsdWU6IGV4ZWN1dGlvbiB0aW1lIGlu
IG1pbGxpc2Vjb25kcy4KLS8vIGNvbmZpZy5tZWFzdXJlVmFsdWUgaXMgaW50ZW5kZWQgdG8gYmUg
dXNlZCBpbiBQZXJmb3JtYW5jZSBUZXN0cy4KLS8vIERvIG5vdGhpbmcgaGVyZSBpbiBub24tUGVy
Zm9ybWFuY2VUZXN0LgotZnVuY3Rpb24gbWVhc3VyZVZhbHVlKHZhbHVlKSB7Ci19Ci0KLWZ1bmN0
aW9uIGdldEludEZyb21JbnB1dChpZCkgewotICByZXR1cm4gcGFyc2VJbnQoZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoaWQpLnZhbHVlKTsKLX0KLQotZnVuY3Rpb24gZ2V0U3RyaW5nRnJvbVJhZGlv
Qm94KG5hbWUpIHsKLSAgdmFyIGxpc3QgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYmVuY2ht
YXJrX2Zvcm0nKVtuYW1lXTsKLSAgZm9yICh2YXIgaSA9IDA7IGkgPCBsaXN0Lmxlbmd0aDsgKytp
KQotICAgIGlmIChsaXN0Lml0ZW0oaSkuY2hlY2tlZCkKLSAgICAgIHJldHVybiBsaXN0Lml0ZW0o
aSkudmFsdWU7Ci0gIHJldHVybiB1bmRlZmluZWQ7Ci19Ci1mdW5jdGlvbiBnZXRCb29sRnJvbUNo
ZWNrQm94KGlkKSB7Ci0gIHJldHVybiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCkuY2hlY2tl
ZDsKLX0KLQotZnVuY3Rpb24gZ2V0SW50QXJyYXlGcm9tSW5wdXQoaWQpIHsKLSAgdmFyIHN0ckFy
cmF5ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpLnZhbHVlLnNwbGl0KCcsJyk7Ci0gIHJl
dHVybiBzdHJBcnJheS5tYXAoZnVuY3Rpb24oc3RyKSB7IHJldHVybiBwYXJzZUludChzdHIsIDEw
KTsgfSk7Ci19Ci0KLWZ1bmN0aW9uIG9uTWVzc2FnZShtZXNzYWdlKSB7Ci0gIGlmIChtZXNzYWdl
LmRhdGEudHlwZSA9PT0gJ2FkZFRvTG9nJykKLSAgICBhZGRUb0xvZyhtZXNzYWdlLmRhdGEuZGF0
YSk7Ci0gIGVsc2UgaWYgKG1lc3NhZ2UuZGF0YS50eXBlID09PSAnYWRkVG9TdW1tYXJ5JykKLSAg
ICBhZGRUb1N1bW1hcnkobWVzc2FnZS5kYXRhLmRhdGEpOwotICBlbHNlIGlmIChtZXNzYWdlLmRh
dGEudHlwZSA9PT0gJ21lYXN1cmVWYWx1ZScpCi0gICAgbWVhc3VyZVZhbHVlKG1lc3NhZ2UuZGF0
YS5kYXRhKTsKLX0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3JjL2V4YW1wbGUvdXRpbF93b3JrZXIuanMg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vi
c29ja2V0L3NyYy9leGFtcGxlL3V0aWxfd29ya2VyLmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCBiNjRmNzgyOWQ1MmQ4NTA2NDk4ODlmOWIwYWNlOTk4NWM3YjYyMTFlLi4wMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3JjL2V4YW1wbGUv
dXRpbF93b3JrZXIuanMKKysrIC9kZXYvbnVsbApAQCAtMSwxOSArMCwwIEBACi0vLyBDb3B5cmln
aHQgMjAxNCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotLy8KLS8vIFVzZSBvZiB0
aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlCi0vLyBsaWNlbnNlIHRo
YXQgY2FuIGJlIGZvdW5kIGluIHRoZSBDT1BZSU5HIGZpbGUgb3IgYXQKLS8vIGh0dHBzOi8vZGV2
ZWxvcGVycy5nb29nbGUuY29tL29wZW4tc291cmNlL2xpY2Vuc2VzL2JzZAotCi0vLyBVdGlsaXRp
ZXMgZm9yIGV4YW1wbGUgYXBwbGljYXRpb25zIChmb3IgdGhlIHdvcmtlciB0aHJlYWRzIG9ubHkp
LgotCi1mdW5jdGlvbiB3b3JrZXJBZGRUb0xvZyh0ZXh0KSB7Ci0gIHBvc3RNZXNzYWdlKHt0eXBl
OiAnYWRkVG9Mb2cnLCBkYXRhOiB0ZXh0fSk7Ci19Ci0KLWZ1bmN0aW9uIHdvcmtlckFkZFRvU3Vt
bWFyeSh0ZXh0KSB7Ci0gIHBvc3RNZXNzYWdlKHt0eXBlOiAnYWRkVG9TdW1tYXJ5JywgZGF0YTog
dGV4dH0pOwotfQotCi1mdW5jdGlvbiB3b3JrZXJNZWFzdXJlVmFsdWUodmFsdWUpIHsKLSAgcG9z
dE1lc3NhZ2Uoe3R5cGU6ICdtZWFzdXJlVmFsdWUnLCBkYXRhOiB2YWx1ZX0pOwotfQpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9w
eXdlYnNvY2tldC9zcmMvZXhhbXBsZS93M2MtaW1wb3J0LmxvZyBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3JjL2V4YW1wbGUv
dzNjLWltcG9ydC5sb2cKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGRmMWY3OTliYzQx
YzRhYzEwYzU4NmM3MWJjYTNjYmIzMDljMWI5YTYuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy9weXdlYnNvY2tldC9zcmMvZXhhbXBsZS93M2MtaW1wb3J0LmxvZworKysg
L2Rldi9udWxsCkBAIC0xLDQzICswLDAgQEAKLVRoZSB0ZXN0cyBpbiB0aGlzIGRpcmVjdG9yeSB3
ZXJlIGltcG9ydGVkIGZyb20gdGhlIFczQyByZXBvc2l0b3J5LgotRG8gTk9UIG1vZGlmeSB0aGVz
ZSB0ZXN0cyBkaXJlY3RseSBpbiBXZWJLaXQuCi1JbnN0ZWFkLCBjcmVhdGUgYSBwdWxsIHJlcXVl
c3Qgb24gdGhlIFdQVCBnaXRodWI6Ci0JaHR0cHM6Ly9naXRodWIuY29tL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMKLQotVGhlbiBydW4gdGhlIFRvb2xzL1NjcmlwdHMvaW1wb3J0LXczYy10ZXN0cyBp
biBXZWJLaXQgdG8gcmVpbXBvcnQKLQotRG8gTk9UIG1vZGlmeSBvciByZW1vdmUgdGhpcyBmaWxl
LgotCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0KLVByb3BlcnRpZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhl
czoKLU5vbmUKLVByb3BlcnR5IHZhbHVlcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9u
ZQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tCi1MaXN0IG9mIGZpbGVzOgotL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3JjL2V4YW1wbGUvYWJv
cnRfaGFuZHNoYWtlX3dzaC5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3JjL2V4YW1wbGUvYWJvcnRfd3NoLnB5Ci0vTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tl
dC9zcmMvZXhhbXBsZS9hcnJheWJ1ZmZlcl9iZW5jaG1hcmsuaHRtbAotL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3JjL2V4YW1w
bGUvYmVuY2hfd3NoLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy9weXdlYnNvY2tldC9zcmMvZXhhbXBsZS9iZW5jaG1hcmsuaHRtbAotL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQv
c3JjL2V4YW1wbGUvYmVuY2htYXJrLmpzCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9zcmMvZXhhbXBsZS9iZW5jaG1hcmtfaGVs
cGVyX3dzaC5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvcHl3ZWJzb2NrZXQvc3JjL2V4YW1wbGUvY2xvc2Vfd3NoLnB5Ci0vTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9zcmMvZXhh
bXBsZS9jb25zb2xlLmh0bWwKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3NyYy9leGFtcGxlL2Nvb2tpZV93c2gucHkKLS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0
L3NyYy9leGFtcGxlL2VjaG9fY2xpZW50LnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9zcmMvZXhhbXBsZS9lY2hvX25vZXh0
X3dzaC5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvcHl3ZWJzb2NrZXQvc3JjL2V4YW1wbGUvZWNob193c2gucHkKLS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3NyYy9leGFtcGxl
L2V2ZW50c291cmNlLmNnaQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3JjL2V4YW1wbGUvZXZlbnRzb3VyY2UuaHRtbAotL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2Nr
ZXQvc3JjL2V4YW1wbGUvaGFuZGxlcl9tYXAudHh0Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9zcmMvZXhhbXBsZS9oc3RzX3dz
aC5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
cHl3ZWJzb2NrZXQvc3JjL2V4YW1wbGUvaW50ZXJuYWxfZXJyb3Jfd3NoLnB5Ci0vTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9zcmMv
ZXhhbXBsZS9vcmlnaW5fY2hlY2tfd3NoLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9zcmMvZXhhbXBsZS9weXdlYnNvY2tl
dC5jb25mCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy9weXdlYnNvY2tldC9zcmMvZXhhbXBsZS9zcGVjaWFsX2hlYWRlcnMuY2dpCi0vTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9zcmMv
ZXhhbXBsZS91dGlsLmpzCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy9weXdlYnNvY2tldC9zcmMvZXhhbXBsZS91dGlsX21haW4uanMKLS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3Ny
Yy9leGFtcGxlL3V0aWxfd29ya2VyLmpzCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9zcmMvZXhhbXBsZS94aHJfYmVuY2htYXJr
Lmh0bWwKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3B5d2Vic29ja2V0L3NyYy9leGFtcGxlL3hocl9iZW5jaG1hcmsuanMKLS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3NyYy9leGFt
cGxlL3hocl9ldmVudF9sb2dnZXIuaHRtbApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9zcmMvZXhhbXBsZS94
aHJfYmVuY2htYXJrLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3NyYy9leGFtcGxlL3hocl9iZW5jaG1hcmsuaHRtbApk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMTg2MjI5Nzc1ZjVhYzA4MmExZmRkMzI3YTQ1
OTVkZjkxZDFmYmQ1MS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAot
LS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5
d2Vic29ja2V0L3NyYy9leGFtcGxlL3hocl9iZW5jaG1hcmsuaHRtbAorKysgL2Rldi9udWxsCkBA
IC0xLDIyMiArMCwwIEBACi08IS0tCi1Db3B5cmlnaHQgMjAxMywgR29vZ2xlIEluYy4KLUFsbCBy
aWdodHMgcmVzZXJ2ZWQuCi0KLVJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQotbWV0OgotCi0gICAg
KiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAotbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgotICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZQotY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgotaW4gdGhlIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQotZGlzdHJpYnV0aW9uLgot
ICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0
cwotY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0
cyBkZXJpdmVkIGZyb20KLXRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0
dGVuIHBlcm1pc3Npb24uCi0KLVRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlS
SUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKLSJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCi1MSU1JVEVEIFRPLCBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKLUEg
UEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUg
Q09QWVJJR0hUCi1PV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKLVNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKLUxJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAotREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZCi1USEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUCi0oSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLU9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0tLT4KLQotPGh0bWw+
Ci08aGVhZD4KLTx0aXRsZT5YTUxIdHRwUmVxdWVzdCBiZW5jaG1hcms8L3RpdGxlPgotPHNjcmlw
dCBzcmM9InV0aWxfbWFpbi5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0idXRpbC5qcyI+PC9z
Y3JpcHQ+Ci08c2NyaXB0IHNyYz0ieGhyX2JlbmNobWFyay5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0
PgotdmFyIGFkZHJlc3NCb3ggPSBudWxsOwotCi1mdW5jdGlvbiBnZXRDb25maWcoKSB7Ci0gIHJl
dHVybiB7Ci0gICAgcHJlZml4VXJsOiBhZGRyZXNzQm94LnZhbHVlLAotICAgIHByaW50U2l6ZTog
Z2V0Qm9vbEZyb21DaGVja0JveCgncHJpbnRzaXplJyksCi0gICAgbnVtWEhSczogZ2V0SW50RnJv
bUlucHV0KCdudW1YSFJzJyksCi0gICAgYXN5bmM6IGdldEJvb2xGcm9tQ2hlY2tCb3goJ2FzeW5j
JyksCi0gICAgLy8gSW5pdGlhbCBzaXplIG9mIG1lc3NhZ2VzLgotICAgIG51bUl0ZXJhdGlvbnM6
IGdldEludEZyb21JbnB1dCgnbnVtaXRlcmF0aW9ucycpLAotICAgIG51bVdhcm1VcEl0ZXJhdGlv
bnM6IGdldEludEZyb21JbnB1dCgnbnVtd2FybXVwaXRlcmF0aW9ucycpLAotICAgIHN0YXJ0U2l6
ZTogZ2V0SW50RnJvbUlucHV0KCdzdGFydHNpemUnKSwKLSAgICAvLyBTdG9wcyBiZW5jaG1hcmsg
d2hlbiB0aGUgc2l6ZSBvZiBtZXNzYWdlIGV4Y2VlZHMgdGhpcyB0aHJlc2hvbGQuCi0gICAgc3Rv
cFRocmVzaG9sZDogZ2V0SW50RnJvbUlucHV0KCdzdG9wdGhyZXNob2xkJyksCi0gICAgLy8gSWYg
dGhlIHNpemUgb2YgZWFjaCBtZXNzYWdlIGlzIHNtYWxsLCBzZW5kL3JlY2VpdmUgbXVsdGlwbGUg
bWVzc2FnZXMKLSAgICAvLyB1bnRpbCB0aGUgc3VtIG9mIHNpemVzIHJlYWNoZXMgdGhpcyB0aHJl
c2hvbGQuCi0gICAgLy8gbWluVG90YWw6IGdldEludEZyb21JbnB1dCgnbWludG90YWwnKSwKLSAg
ICAvLyBtaW5Ub3RhbCBpcyBub3QgeWV0IGltcGxlbWVudGVkIG9uIFhIUiBiZW5jaG1hcmsKLSAg
ICBtdWx0aXBsaWVyczogZ2V0SW50QXJyYXlGcm9tSW5wdXQoJ211bHRpcGxpZXJzJyksCi0gICAg
dmVyaWZ5RGF0YTogZ2V0Qm9vbEZyb21DaGVja0JveCgndmVyaWZ5ZGF0YScpCi0gIH07Ci19Ci0K
LXZhciB3b3JrZXIgPSBuZXcgV29ya2VyKCd4aHJfYmVuY2htYXJrLmpzJyk7Ci13b3JrZXIub25t
ZXNzYWdlID0gb25NZXNzYWdlOwotCi1mdW5jdGlvbiBvblNlbmRCZW5jaG1hcmsoKSB7Ci0gIHZh
ciBjb25maWcgPSBnZXRDb25maWcoKTsKLSAgY29uZmlnLmRhdGFUeXBlID0gZ2V0U3RyaW5nRnJv
bVJhZGlvQm94KCdkYXRhdHlwZXJhZGlvJyk7Ci0KLSAgaWYgKGdldEJvb2xGcm9tQ2hlY2tCb3go
J3dvcmtlcicpKSB7Ci0gICAgd29ya2VyLnBvc3RNZXNzYWdlKHt0eXBlOiAnc2VuZEJlbmNobWFy
aycsIGNvbmZpZzogY29uZmlnfSk7Ci0gIH0gZWxzZSB7Ci0gICAgY29uZmlnLmFkZFRvTG9nID0g
YWRkVG9Mb2c7Ci0gICAgY29uZmlnLmFkZFRvU3VtbWFyeSA9IGFkZFRvU3VtbWFyeTsKLSAgICBj
b25maWcubWVhc3VyZVZhbHVlID0gbWVhc3VyZVZhbHVlOwotICAgIHNlbmRCZW5jaG1hcmsoY29u
ZmlnKTsKLSAgfQotfQotCi1mdW5jdGlvbiBvblJlY2VpdmVCZW5jaG1hcmsoKSB7Ci0gIHZhciBj
b25maWcgPSBnZXRDb25maWcoKTsKLSAgY29uZmlnLmRhdGFUeXBlID0gZ2V0U3RyaW5nRnJvbVJh
ZGlvQm94KCdkYXRhdHlwZXJhZGlvJyk7Ci0KLSAgaWYgKGdldEJvb2xGcm9tQ2hlY2tCb3goJ3dv
cmtlcicpKSB7Ci0gICAgd29ya2VyLnBvc3RNZXNzYWdlKHt0eXBlOiAncmVjZWl2ZUJlbmNobWFy
aycsIGNvbmZpZzogY29uZmlnfSk7Ci0gIH0gZWxzZSB7Ci0gICAgY29uZmlnLmFkZFRvTG9nID0g
YWRkVG9Mb2c7Ci0gICAgY29uZmlnLmFkZFRvU3VtbWFyeSA9IGFkZFRvU3VtbWFyeTsKLSAgICBj
b25maWcubWVhc3VyZVZhbHVlID0gbWVhc3VyZVZhbHVlOwotICAgIHJlY2VpdmVCZW5jaG1hcmso
Y29uZmlnKTsKLSAgfQotfQotCi1mdW5jdGlvbiBvbkJhdGNoQmVuY2htYXJrKCkgewotICB2YXIg
Y29uZmlnID0gZ2V0Q29uZmlnKCk7Ci0KLSAgaWYgKGdldEJvb2xGcm9tQ2hlY2tCb3goJ3dvcmtl
cicpKSB7Ci0gICAgd29ya2VyLnBvc3RNZXNzYWdlKHt0eXBlOiAnYmF0Y2hCZW5jaG1hcmsnLCBj
b25maWc6IGNvbmZpZ30pOwotICB9IGVsc2UgewotICAgIGNvbmZpZy5hZGRUb0xvZyA9IGFkZFRv
TG9nOwotICAgIGNvbmZpZy5hZGRUb1N1bW1hcnkgPSBhZGRUb1N1bW1hcnk7Ci0gICAgY29uZmln
Lm1lYXN1cmVWYWx1ZSA9IG1lYXN1cmVWYWx1ZTsKLSAgICBiYXRjaEJlbmNobWFyayhjb25maWcp
OwotICB9Ci19Ci0KLWZ1bmN0aW9uIG9uU3RvcCgpIHsKLSAgdmFyIGNvbmZpZyA9IGdldENvbmZp
ZygpOwotCi0gIGlmIChnZXRCb29sRnJvbUNoZWNrQm94KCd3b3JrZXInKSkgewotICAgIHdvcmtl
ci5wb3N0TWVzc2FnZSh7dHlwZTogJ3N0b3AnLCBjb25maWc6IGNvbmZpZ30pOwotICB9IGVsc2Ug
ewotICAgIGNvbmZpZy5hZGRUb0xvZyA9IGFkZFRvTG9nOwotICAgIGNvbmZpZy5hZGRUb1N1bW1h
cnkgPSBhZGRUb1N1bW1hcnk7Ci0gICAgY29uZmlnLm1lYXN1cmVWYWx1ZSA9IG1lYXN1cmVWYWx1
ZTsKLSAgICBzdG9wKGNvbmZpZyk7Ci0gIH0KLX0KLQotZnVuY3Rpb24gaW5pdCgpIHsKLSAgYWRk
cmVzc0JveCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdhZGRyZXNzJyk7Ci0gIGxvZ0JveCA9
IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdsb2cnKTsKLQotICBzdW1tYXJ5Qm94ID0gZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoJ3N1bW1hcnknKTsKLQotICAvLyBTcGVjaWFsIGFkZHJlc3Mgb2Yg
cHl3ZWJzb2NrZXQgZm9yIFhIUiBiZW5jaG1hcmsuCi0gIGFkZHJlc3NCb3gudmFsdWUgPSAnLzA3
M2JlMDAxZTEwOTUwNjkyY2NiZjNhMmFkMjFjMjQ1JzsKLQotICBhZGRUb0xvZyh3aW5kb3cubmF2
aWdhdG9yLnVzZXJBZ2VudC50b0xvd2VyQ2FzZSgpKTsKLSAgYWRkVG9TdW1tYXJ5KHdpbmRvdy5u
YXZpZ2F0b3IudXNlckFnZW50LnRvTG93ZXJDYXNlKCkpOwotfQotPC9zY3JpcHQ+Ci08L2hlYWQ+
Ci08Ym9keSBvbmxvYWQ9ImluaXQoKSI+Ci0KLTxmb3JtIGlkPSJiZW5jaG1hcmtfZm9ybSI+Ci0g
IHVybCBwcmVmaXggPGlucHV0IHR5cGU9InRleHQiIGlkPSJhZGRyZXNzIiBzaXplPSI0MCI+Ci0g
IDxpbnB1dCB0eXBlPSJidXR0b24iIHZhbHVlPSJzZW5kIiBvbmNsaWNrPSJvblNlbmRCZW5jaG1h
cmsoKSI+Ci0gIDxpbnB1dCB0eXBlPSJidXR0b24iIHZhbHVlPSJyZWNlaXZlIiBvbmNsaWNrPSJv
blJlY2VpdmVCZW5jaG1hcmsoKSI+Ci0gIDxpbnB1dCB0eXBlPSJidXR0b24iIHZhbHVlPSJiYXRj
aCIgb25jbGljaz0ib25CYXRjaEJlbmNobWFyaygpIj4KLSAgPGlucHV0IHR5cGU9ImJ1dHRvbiIg
dmFsdWU9InN0b3AiIG9uY2xpY2s9Im9uU3RvcCgpIj4KLQotICA8YnIvPgotCi0gIDxpbnB1dCB0
eXBlPSJjaGVja2JveCIgaWQ9InByaW50c2l6ZSIgY2hlY2tlZD4KLSAgPGxhYmVsIGZvcj0icHJp
bnRzaXplIj5QcmludCBzaXplIGFuZCB0aW1lIHBlciBtZXNzYWdlPC9sYWJlbD4KLSAgPGlucHV0
IHR5cGU9ImNoZWNrYm94IiBpZD0idmVyaWZ5ZGF0YSIgY2hlY2tlZD4KLSAgPGxhYmVsIGZvcj0i
dmVyaWZ5ZGF0YSI+VmVyaWZ5IGRhdGE8L2xhYmVsPgotICA8aW5wdXQgdHlwZT0iY2hlY2tib3gi
IGlkPSJ3b3JrZXIiPgotICA8bGFiZWwgZm9yPSJ3b3JrZXIiPlJ1biBvbiB3b3JrZXI8L2xhYmVs
PgotICA8aW5wdXQgdHlwZT0iY2hlY2tib3giIGlkPSJhc3luYyIgY2hlY2tlZD4KLSAgPGxhYmVs
IGZvcj0iYXN5bmMiPkFzeW5jPC9sYWJlbD48YnI+Ci0gIChSZWNlaXZlICZhbXA7JmFtcDsgTm9u
LVdvcmtlciAmYW1wOyZhbXA7IFN5bmMgaXMgbm90IHN1cHBvcnRlZCBieSBzcGVjKQotCi0gIDxi
ci8+Ci0KLSAgUGFyYW1ldGVyczoKLQotICA8YnIvPgotCi0gIDx0YWJsZT4KLSAgICA8dHI+Ci0g
ICAgICA8dGQ+TnVtIFhIUnM8L3RkPgotICAgICAgPHRkPjxpbnB1dCB0eXBlPSJ0ZXh0IiBpZD0i
bnVtWEhScyIgdmFsdWU9IjEiPjwvdGQ+Ci0gICAgPC90cj4KLSAgICA8dHI+Ci0gICAgICA8dGQ+
TnVtYmVyIG9mIGl0ZXJhdGlvbnM8L3RkPgotICAgICAgPHRkPjxpbnB1dCB0eXBlPSJ0ZXh0IiBp
ZD0ibnVtaXRlcmF0aW9ucyIgdmFsdWU9IjEiPjwvdGQ+Ci0gICAgPC90cj4KLSAgICA8dHI+Ci0g
ICAgICA8dGQ+TnVtYmVyIG9mIHdhcm0tdXAgaXRlcmF0aW9uczwvdGQ+Ci0gICAgICA8dGQ+PGlu
cHV0IHR5cGU9InRleHQiIGlkPSJudW13YXJtdXBpdGVyYXRpb25zIiB2YWx1ZT0iMCI+PC90ZD4K
LSAgICA8L3RyPgotICAgIDx0cj4KLSAgICAgIDx0ZD5TdGFydCBzaXplPC90ZD4KLSAgICAgIDx0
ZD48aW5wdXQgdHlwZT0idGV4dCIgaWQ9InN0YXJ0c2l6ZSIgdmFsdWU9IjEwMjQwIj48L3RkPgot
ICAgIDwvdHI+Ci0gICAgPHRyPgotICAgICAgPHRkPlN0b3AgdGhyZXNob2xkPC90ZD4KLSAgICAg
IDx0ZD48aW5wdXQgdHlwZT0idGV4dCIgaWQ9InN0b3B0aHJlc2hvbGQiIHZhbHVlPSIxMDI0MDAw
MDAiPjwvdGQ+Ci0gICAgPC90cj4KLSAgICA8dHI+Ci0gICAgICA8dGQ+TWluaW11bSB0b3RhbDwv
dGQ+Ci0gICAgICA8dGQ+PGlucHV0IHR5cGU9InRleHQiIGlkPSJtaW50b3RhbCIgdmFsdWU9IjEw
MjQwMDAwMCI+PC90ZD4KLSAgICA8L3RyPgotICAgIDx0cj4KLSAgICAgIDx0ZD5NdWx0aXBsaWVy
czwvdGQ+Ci0gICAgICA8dGQ+PGlucHV0IHR5cGU9InRleHQiIGlkPSJtdWx0aXBsaWVycyIgdmFs
dWU9IjUsIDIiPjwvdGQ+Ci0gICAgPC90cj4KLSAgPC90YWJsZT4KLQotICBTZXQgZGF0YSB0eXBl
Ci0gIDxpbnB1dCB0eXBlPSJyYWRpbyIKLSAgICAgICAgIG5hbWU9ImRhdGF0eXBlcmFkaW8iCi0g
ICAgICAgICBpZD0iZGF0YXR5cGVyYWRpb3RleHQiCi0gICAgICAgICB2YWx1ZT0idGV4dCIKLSAg
ICAgICAgIGNoZWNrZWQ+PGxhYmVsIGZvcj0iZGF0YXR5cGVyYWRpb3RleHQiPnRleHQ8L2xhYmVs
PgotICA8aW5wdXQgdHlwZT0icmFkaW8iCi0gICAgICAgICBuYW1lPSJkYXRhdHlwZXJhZGlvIgot
ICAgICAgICAgaWQ9ImRhdGF0eXBlcmFkaW9ibG9iIgotICAgICAgICAgdmFsdWU9ImJsb2IiCi0g
ICAgICAgICA+PGxhYmVsIGZvcj0iZGF0YXR5cGVyYWRpb2Jsb2IiPmJsb2I8L2xhYmVsPgotICA8
aW5wdXQgdHlwZT0icmFkaW8iCi0gICAgICAgICBuYW1lPSJkYXRhdHlwZXJhZGlvIgotICAgICAg
ICAgaWQ9ImRhdGF0eXBlcmFkaW9hcnJheWJ1ZmZlciIKLSAgICAgICAgIHZhbHVlPSJhcnJheWJ1
ZmZlciIKLSAgICAgICAgID48bGFiZWwgZm9yPSJkYXRhdHlwZXJhZGlvYXJyYXlidWZmZXIiPmFy
cmF5YnVmZmVyPC9sYWJlbD4KLTwvZm9ybT4KLQotPGRpdiBpZD0ibG9nX2RpdiI+Ci0gIDx0ZXh0
YXJlYQotICAgICAgaWQ9ImxvZyIgcm93cz0iMjAiIHN0eWxlPSJ3aWR0aDogMTAwJSIgcmVhZG9u
bHk+PC90ZXh0YXJlYT4KLTwvZGl2PgotPGRpdiBpZD0ic3VtbWFyeV9kaXYiPgotICBTdW1tYXJ5
Ci0gIDx0ZXh0YXJlYQotICAgICAgaWQ9InN1bW1hcnkiIHJvd3M9IjIwIiBzdHlsZT0id2lkdGg6
IDEwMCUiIHJlYWRvbmx5PjwvdGV4dGFyZWE+Ci08L2Rpdj4KLQotTm90ZTogRWZmZWN0IG9mIFJU
VCBhbmQgdGltZSBzcGVudCBmb3IgQXJyYXlCdWZmZXIgY3JlYXRpb24gaW4gcmVjZWl2ZSBiZW5j
aG1hcmtzIGFyZSBub3QgZWxpbWluYXRlZC4KLQotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdl
YnNvY2tldC9zcmMvZXhhbXBsZS94aHJfYmVuY2htYXJrLmpzIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9zcmMvZXhhbXBsZS94
aHJfYmVuY2htYXJrLmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyMzNjN2NiMzhj
NDllMTU5ZGI1YTQxNmQ5YWZkYTA5YjJlZjM4NmNiLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3JjL2V4YW1wbGUveGhyX2JlbmNobWFyay5qcwor
KysgL2Rldi9udWxsCkBAIC0xLDM4OSArMCwwIEBACi0vLyBDb3B5cmlnaHQgMjAxNCBHb29nbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotLy8KLS8vIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2Rl
IGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlCi0vLyBsaWNlbnNlIHRoYXQgY2FuIGJlIGZvdW5k
IGluIHRoZSBDT1BZSU5HIGZpbGUgb3IgYXQKLS8vIGh0dHBzOi8vZGV2ZWxvcGVycy5nb29nbGUu
Y29tL29wZW4tc291cmNlL2xpY2Vuc2VzL2JzZAotCi12YXIgaXNXb3JrZXIgPSB0eXBlb2YgaW1w
b3J0U2NyaXB0cyAhPT0gInVuZGVmaW5lZCI7Ci0KLWlmIChpc1dvcmtlcikgewotICAvLyBSdW5u
aW5nIG9uIGEgd29ya2VyCi0gIGltcG9ydFNjcmlwdHMoJ3V0aWwuanMnLCAndXRpbF93b3JrZXIu
anMnKTsKLX0KLQotLy8gTmFtZXNwYWNlIGZvciBob2xkaW5nIGdsb2JhbHMuCi12YXIgYmVuY2ht
YXJrID0ge307Ci1iZW5jaG1hcmsuc3RhcnRUaW1lSW5NcyA9IDA7Ci0KLXZhciB4aHJzID0gW107
Ci0KLXZhciB0aW1lcklEID0gbnVsbDsKLQotZnVuY3Rpb24gZGVzdHJveUFsbFhIUnMoKSB7Ci0g
IGZvciAodmFyIGkgPSAwOyBpIDwgeGhycy5sZW5ndGg7ICsraSkgewotICAgIHhocnNbaV0ub25y
ZWFkeXN0YXRlY2hhbmdlID0gbnVsbDsKLSAgICAvLyBBYm9ydCBYSFJzIGlmIHRoZXkgYXJlIG5v
dCB5ZXQgRE9ORSBzdGF0ZS4KLSAgICAvLyBDYWxsaW5nIGFib3J0KCkgaGVyZSAoaS5lLiBpbiBv
bnJlYWR5c3RhdGVjaGFuZ2UgaGFuZGxlcikgCi0gICAgLy8gY2F1c2VzICJOZXR3b3JrRXJyb3Ii
IG1lc3NhZ2VzIGluIERldlRvb2xzIGluIHN5bmMgbW9kZSwKLSAgICAvLyBldmVuIGlmIGl0IGlz
IGFmdGVyIHRyYW5zaXRpb24gdG8gRE9ORSBzdGF0ZS4KLSAgICBpZiAoeGhyc1tpXS5yZWFkeVN0
YXRlICE9IFhNTEh0dHBSZXF1ZXN0LkRPTkUpCi0gICAgICB4aHJzW2ldLmFib3J0KCk7Ci0gIH0K
LSAgeGhycyA9IFtdOwotICAvLyBnYygpIG1pZ2h0IGJlIG5lZWRlZCBmb3IgQ2hyb21lL0Jsb2IK
LX0KLQotZnVuY3Rpb24gcmVwZWF0U3RyaW5nKHN0ciwgY291bnQpIHsKLSAgdmFyIGRhdGEgPSAn
JzsKLSAgdmFyIGV4cENodW5rID0gc3RyOwotICB2YXIgcmVtYWluID0gY291bnQ7Ci0gIHdoaWxl
ICh0cnVlKSB7Ci0gICAgaWYgKHJlbWFpbiAlIDIpIHsKLSAgICAgIGRhdGEgKz0gZXhwQ2h1bms7
Ci0gICAgICByZW1haW4gPSAocmVtYWluIC0gMSkgLyAyOwotICAgIH0gZWxzZSB7Ci0gICAgICBy
ZW1haW4gLz0gMjsKLSAgICB9Ci0KLSAgICBpZiAocmVtYWluID09IDApCi0gICAgICBicmVhazsK
LQotICAgIGV4cENodW5rID0gZXhwQ2h1bmsgKyBleHBDaHVuazsKLSAgfQotICByZXR1cm4gZGF0
YTsKLX0KLQotZnVuY3Rpb24gc2VuZEJlbmNobWFya1N0ZXAoc2l6ZSwgY29uZmlnKSB7Ci0gIHRp
bWVySUQgPSBudWxsOwotCi0gIGJlbmNobWFyay5zdGFydFRpbWVJbk1zID0gbnVsbDsKLSAgdmFy
IHRvdGFsU2l6ZSA9IDA7Ci0gIHZhciB0b3RhbFJlcGxpZWQgPSAwOwotCi0gIHZhciBvblJlYWR5
U3RhdGVDaGFuZ2VIYW5kbGVyID0gZnVuY3Rpb24gKCkgewotICAgIGlmICh0aGlzLnJlYWR5U3Rh
dGUgIT0gdGhpcy5ET05FKSB7Ci0gICAgICByZXR1cm47Ci0gICAgfQotCi0gICAgaWYgKHRoaXMu
c3RhdHVzICE9IDIwMCkgewotICAgICAgY29uZmlnLmFkZFRvTG9nKCdGYWlsZWQgKHN0YXR1cz0n
ICsgdGhpcy5zdGF0dXMgKyAnKScpOwotICAgICAgZGVzdHJveUFsbFhIUnMoKTsKLSAgICAgIHJl
dHVybjsKLSAgICB9Ci0KLSAgICBpZiAoY29uZmlnLnZlcmlmeURhdGEgJiYKLSAgICAgICAgIXZl
cmlmeUFja25vd2xlZGdlbWVudChjb25maWcsIHRoaXMucmVzcG9uc2UsIHNpemUpKSB7Ci0gICAg
ICBkZXN0cm95QWxsWEhScygpOwotICAgICAgcmV0dXJuOwotICAgIH0KLQotICAgIHRvdGFsUmVw
bGllZCArPSBzaXplOwotCi0gICAgaWYgKHRvdGFsUmVwbGllZCA8IHRvdGFsU2l6ZSkgewotICAg
ICAgcmV0dXJuOwotICAgIH0KLQotICAgIGlmIChiZW5jaG1hcmsuc3RhcnRUaW1lSW5NcyA9PSBu
dWxsKSB7Ci0gICAgICBjb25maWcuYWRkVG9Mb2coJ3N0YXJ0VGltZUluTXMgbm90IHNldCcpOwot
ICAgICAgZGVzdHJveUFsbFhIUnMoKTsKLSAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICBjYWxj
dWxhdGVBbmRMb2dSZXN1bHQoY29uZmlnLCBzaXplLCBiZW5jaG1hcmsuc3RhcnRUaW1lSW5Ncywg
dG90YWxTaXplKTsKLQotICAgIGRlc3Ryb3lBbGxYSFJzKCk7Ci0KLSAgICBydW5OZXh0VGFzayhj
b25maWcpOwotICB9OwotCi0gIGZvciAodmFyIGkgPSAwOyBpIDwgY29uZmlnLm51bVhIUnM7ICsr
aSkgewotICAgIHZhciB4aHIgPSBuZXcgWE1MSHR0cFJlcXVlc3QoKTsKLSAgICB4aHIub25yZWFk
eXN0YXRlY2hhbmdlID0gb25SZWFkeVN0YXRlQ2hhbmdlSGFuZGxlcjsKLSAgICB4aHJzLnB1c2go
eGhyKTsKLSAgfQotCi0gIHZhciBkYXRhQXJyYXkgPSBbXTsKLQotICBmb3IgKHZhciBpID0gMDsg
aSA8IHhocnMubGVuZ3RoOyArK2kpIHsKLSAgICB2YXIgZGF0YSA9IG51bGw7Ci0gICAgaWYgKGNv
bmZpZy5kYXRhVHlwZSA9PSAnYXJyYXlidWZmZXInIHx8Ci0gICAgICAgIGNvbmZpZy5kYXRhVHlw
ZSA9PSAnYmxvYicpIHsKLSAgICAgIGRhdGEgPSBuZXcgQXJyYXlCdWZmZXIoc2l6ZSk7Ci0KLSAg
ICAgIGZpbGxBcnJheUJ1ZmZlcihkYXRhLCAweDYxKTsKLQotICAgICAgaWYgKGNvbmZpZy5kYXRh
VHlwZSA9PSAnYmxvYicpIHsKLSAgICAgICAgZGF0YSA9IG5ldyBCbG9iKFtkYXRhXSk7Ci0gICAg
ICB9Ci0gICAgfSBlbHNlIHsKLSAgICAgIGRhdGEgPSByZXBlYXRTdHJpbmcoJ2EnLCBzaXplKTsK
LSAgICB9Ci0KLSAgICBkYXRhQXJyYXkucHVzaChkYXRhKTsKLSAgfQotCi0KLSAgYmVuY2htYXJr
LnN0YXJ0VGltZUluTXMgPSBnZXRUaW1lU3RhbXAoKTsKLSAgdG90YWxTaXplID0gc2l6ZSAqIHho
cnMubGVuZ3RoOwotCi0gIGZvciAodmFyIGkgPSAwOyBpIDwgeGhycy5sZW5ndGg7ICsraSkgewot
ICAgIHZhciBkYXRhID0gZGF0YUFycmF5W2ldOwotICAgIHZhciB4aHIgPSB4aHJzW2ldOwotICAg
IHhoci5vcGVuKCdQT1NUJywgY29uZmlnLnByZWZpeFVybCArICdfc2VuZCcsIGNvbmZpZy5hc3lu
Yyk7Ci0gICAgeGhyLnNlbmQoZGF0YSk7Ci0gIH0KLX0KLQotZnVuY3Rpb24gcmVjZWl2ZUJlbmNo
bWFya1N0ZXAoc2l6ZSwgY29uZmlnKSB7Ci0gIHRpbWVySUQgPSBudWxsOwotCi0gIGJlbmNobWFy
ay5zdGFydFRpbWVJbk1zID0gbnVsbDsKLSAgdmFyIHRvdGFsU2l6ZSA9IDA7Ci0gIHZhciB0b3Rh
bFJlcGxpZWQgPSAwOwotCi0gIHZhciBjaGVja1Jlc3VsdEFuZENvbnRpbnVlID0gZnVuY3Rpb24g
KGJ5dGVzUmVjZWl2ZWQsIHZlcmlmaWNhdGlvblJlc3VsdCkgewotICAgIGlmICghdmVyaWZpY2F0
aW9uUmVzdWx0KSB7Ci0gICAgICBjb25maWcuYWRkVG9Mb2coJ1Jlc3BvbnNlIHZlcmlmaWNhdGlv
biBmYWlsZWQnKTsKLSAgICAgIGRlc3Ryb3lBbGxYSFJzKCk7Ci0gICAgICByZXR1cm47Ci0gICAg
fQotCi0gICAgdG90YWxSZXBsaWVkICs9IGJ5dGVzUmVjZWl2ZWQ7Ci0KLSAgICBpZiAodG90YWxS
ZXBsaWVkIDwgdG90YWxTaXplKSB7Ci0gICAgICByZXR1cm47Ci0gICAgfQotCi0gICAgaWYgKGJl
bmNobWFyay5zdGFydFRpbWVJbk1zID09IG51bGwpIHsKLSAgICAgIGNvbmZpZy5hZGRUb0xvZygn
c3RhcnRUaW1lSW5NcyBub3Qgc2V0Jyk7Ci0gICAgICBkZXN0cm95QWxsWEhScygpOwotICAgICAg
cmV0dXJuOwotICAgIH0KLQotICAgIGNhbGN1bGF0ZUFuZExvZ1Jlc3VsdChjb25maWcsIHNpemUs
IGJlbmNobWFyay5zdGFydFRpbWVJbk1zLCB0b3RhbFNpemUpOwotCi0gICAgZGVzdHJveUFsbFhI
UnMoKTsKLQotICAgIHJ1bk5leHRUYXNrKGNvbmZpZyk7Ci0gIH0KLQotICB2YXIgb25SZWFkeVN0
YXRlQ2hhbmdlSGFuZGxlciA9IGZ1bmN0aW9uICgpIHsKLSAgICBpZiAodGhpcy5yZWFkeVN0YXRl
ICE9IHRoaXMuRE9ORSkgewotICAgICAgcmV0dXJuOwotICAgIH0KLQotICAgIGlmICh0aGlzLnN0
YXR1cyAhPSAyMDApIHsKLSAgICAgIGNvbmZpZy5hZGRUb0xvZygnRmFpbGVkIChzdGF0dXM9JyAr
IHRoaXMuc3RhdHVzICsgJyknKTsKLSAgICAgIGRlc3Ryb3lBbGxYSFJzKCk7Ci0gICAgICByZXR1
cm47Ci0gICAgfQotCi0gICAgdmFyIGJ5dGVzUmVjZWl2ZWQgPSAtMTsKLSAgICBpZiAodGhpcy5y
ZXNwb25zZVR5cGUgPT0gJ2FycmF5YnVmZmVyJykgewotICAgICAgYnl0ZXNSZWNlaXZlZCA9IHRo
aXMucmVzcG9uc2UuYnl0ZUxlbmd0aDsKLSAgICB9IGVsc2UgaWYgKHRoaXMucmVzcG9uc2VUeXBl
ID09ICdibG9iJykgewotICAgICAgYnl0ZXNSZWNlaXZlZCA9IHRoaXMucmVzcG9uc2Uuc2l6ZTsK
LSAgICB9IGVsc2UgewotICAgICAgYnl0ZXNSZWNlaXZlZCA9IHRoaXMucmVzcG9uc2UubGVuZ3Ro
OwotICAgIH0KLSAgICBpZiAoYnl0ZXNSZWNlaXZlZCAhPSBzaXplKSB7Ci0gICAgICBjb25maWcu
YWRkVG9Mb2coJ0V4cGVjdGVkICcgKyBzaXplICsKLSAgICAgICAgICAnQiBidXQgcmVjZWl2ZWQg
JyArIGJ5dGVzUmVjZWl2ZWQgKyAnQicpOwotICAgICAgZGVzdHJveUFsbFhIUnMoKTsKLSAgICAg
IHJldHVybjsKLSAgICB9Ci0KLSAgICBpZiAodGhpcy5yZXNwb25zZVR5cGUgPT0gJ2FycmF5YnVm
ZmVyJykgewotICAgICAgY2hlY2tSZXN1bHRBbmRDb250aW51ZShieXRlc1JlY2VpdmVkLAotICAg
ICAgICAgICFjb25maWcudmVyaWZ5RGF0YSB8fCB2ZXJpZnlBcnJheUJ1ZmZlcih0aGlzLnJlc3Bv
bnNlLCAweDYxKSk7Ci0gICAgfSBlbHNlIGlmICh0aGlzLnJlc3BvbnNlVHlwZSA9PSAnYmxvYicp
IHsKLSAgICAgIGlmIChjb25maWcudmVyaWZ5RGF0YSkKLSAgICAgICAgdmVyaWZ5QmxvYihjb25m
aWcsIHRoaXMucmVzcG9uc2UsIDB4NjEsIGNoZWNrUmVzdWx0QW5kQ29udGludWUpOwotICAgICAg
ZWxzZQotICAgICAgICBjaGVja1Jlc3VsdEFuZENvbnRpbnVlKGJ5dGVzUmVjZWl2ZWQsIHRydWUp
OwotICAgIH0gZWxzZSB7Ci0gICAgICBjaGVja1Jlc3VsdEFuZENvbnRpbnVlKAotICAgICAgICAg
IGJ5dGVzUmVjZWl2ZWQsCi0gICAgICAgICAgIWNvbmZpZy52ZXJpZnlEYXRhIHx8Ci0gICAgICAg
ICAgICAgIHRoaXMucmVzcG9uc2UgPT0gcmVwZWF0U3RyaW5nKCdhJywgdGhpcy5yZXNwb25zZS5s
ZW5ndGgpKTsKLSAgICB9Ci0gIH07Ci0KLSAgZm9yICh2YXIgaSA9IDA7IGkgPCBjb25maWcubnVt
WEhSczsgKytpKSB7Ci0gICAgdmFyIHhociA9IG5ldyBYTUxIdHRwUmVxdWVzdCgpOwotICAgIHho
ci5vbnJlYWR5c3RhdGVjaGFuZ2UgPSBvblJlYWR5U3RhdGVDaGFuZ2VIYW5kbGVyOwotICAgIHho
cnMucHVzaCh4aHIpOwotICB9Ci0KLSAgYmVuY2htYXJrLnN0YXJ0VGltZUluTXMgPSBnZXRUaW1l
U3RhbXAoKTsKLSAgdG90YWxTaXplID0gc2l6ZSAqIHhocnMubGVuZ3RoOwotCi0gIGZvciAodmFy
IGkgPSAwOyBpIDwgeGhycy5sZW5ndGg7ICsraSkgewotICAgIHZhciB4aHIgPSB4aHJzW2ldOwot
ICAgIHhoci5vcGVuKCdQT1NUJywgY29uZmlnLnByZWZpeFVybCArICdfcmVjZWl2ZScsIGNvbmZp
Zy5hc3luYyk7Ci0gICAgeGhyLnJlc3BvbnNlVHlwZSA9IGNvbmZpZy5kYXRhVHlwZTsKLSAgICB4
aHIuc2VuZChzaXplICsgJyBub25lJyk7Ci0gIH0KLX0KLQotCi1mdW5jdGlvbiBnZXRDb25maWdT
dHJpbmcoY29uZmlnKSB7Ci0gIHJldHVybiAnKCcgKyBjb25maWcuZGF0YVR5cGUgKwotICAgICcs
IHZlcmlmeURhdGE9JyArIGNvbmZpZy52ZXJpZnlEYXRhICsKLSAgICAnLCAnICsgKGlzV29ya2Vy
ID8gJ1dvcmtlcicgOiAnTWFpbicpICsKLSAgICAnLCAnICsgKGNvbmZpZy5hc3luYyA/ICdBc3lu
YycgOiAnU3luYycpICsKLSAgICAnLCBudW1YSFJzPScgKyBjb25maWcubnVtWEhScyArCi0gICAg
JywgbnVtSXRlcmF0aW9ucz0nICsgY29uZmlnLm51bUl0ZXJhdGlvbnMgKwotICAgICcsIG51bVdh
cm1VcEl0ZXJhdGlvbnM9JyArIGNvbmZpZy5udW1XYXJtVXBJdGVyYXRpb25zICsKLSAgICAnKSc7
Ci19Ci0KLWZ1bmN0aW9uIHN0YXJ0QmVuY2htYXJrKGNvbmZpZykgewotICBjbGVhclRpbWVvdXQo
dGltZXJJRCk7Ci0gIGRlc3Ryb3lBbGxYSFJzKCk7Ci0KLSAgcnVuTmV4dFRhc2soY29uZmlnKTsK
LX0KLQotLy8gVE9ETyhoaXJvc2hpZ2UpOiB0aGUgZm9sbG93aW5nIGNvZGUgaXMgdGhlIHNhbWUg
YXMgYmVuY2htYXJrLmh0bWwKLS8vIGFuZCBzb21lIG9mIHRoZW0gc2hvdWxkIGJlIG1lcmdlZCBp
bnRvIGUuZy4gdXRpbC5qcwotCi12YXIgdGFza3MgPSBbXTsKLQotZnVuY3Rpb24gcnVuTmV4dFRh
c2soY29uZmlnKSB7Ci0gIHZhciB0YXNrID0gdGFza3Muc2hpZnQoKTsKLSAgaWYgKHRhc2sgPT0g
dW5kZWZpbmVkKSB7Ci0gICAgY29uZmlnLmFkZFRvTG9nKCdGaW5pc2hlZCcpOwotICAgIGRlc3Ry
b3lBbGxYSFJzKCk7Ci0gICAgcmV0dXJuOwotICB9Ci0gIHRpbWVySUQgPSBzZXRUaW1lb3V0KHRh
c2ssIDApOwotfQotCi1mdW5jdGlvbiBidWlsZExlZ2VuZFN0cmluZyhjb25maWcpIHsKLSAgdmFy
IGxlZ2VuZCA9ICcnCi0gIGlmIChjb25maWcucHJpbnRTaXplKQotICAgIGxlZ2VuZCA9ICdNZXNz
YWdlIHNpemUgaW4gS2lCLCBUaW1lL21lc3NhZ2UgaW4gbXMsICc7Ci0gIGxlZ2VuZCArPSAnU3Bl
ZWQgaW4ga0Ivcyc7Ci0gIHJldHVybiBsZWdlbmQ7Ci19Ci0KLWZ1bmN0aW9uIGFkZFRhc2tzKGNv
bmZpZywgc3RlcEZ1bmMpIHsKLSAgZm9yICh2YXIgaSA9IDA7Ci0gICAgICBpIDwgY29uZmlnLm51
bVdhcm1VcEl0ZXJhdGlvbnMgKyBjb25maWcubnVtSXRlcmF0aW9uczsgKytpKSB7Ci0gICAgLy8g
SWdub3JlIHRoZSBmaXJzdCB8Y29uZmlnLm51bVdhcm1VcEl0ZXJhdGlvbnN8IGl0ZXJhdGlvbnMu
Ci0gICAgaWYgKGkgPT0gY29uZmlnLm51bVdhcm1VcEl0ZXJhdGlvbnMpCi0gICAgICBhZGRSZXN1
bHRDbGVhcmluZ1Rhc2soY29uZmlnKTsKLQotICAgIHZhciBtdWx0aXBsaWVySW5kZXggPSAwOwot
ICAgIGZvciAodmFyIHNpemUgPSBjb25maWcuc3RhcnRTaXplOwotICAgICAgICAgc2l6ZSA8PSBj
b25maWcuc3RvcFRocmVzaG9sZDsKLSAgICAgICAgICsrbXVsdGlwbGllckluZGV4KSB7Ci0gICAg
ICB2YXIgdGFzayA9IHN0ZXBGdW5jLmJpbmQoCi0gICAgICAgICAgbnVsbCwKLSAgICAgICAgICBz
aXplLAotICAgICAgICAgIGNvbmZpZyk7Ci0gICAgICB0YXNrcy5wdXNoKHRhc2spOwotICAgICAg
c2l6ZSAqPSBjb25maWcubXVsdGlwbGllcnNbCi0gICAgICAgICAgbXVsdGlwbGllckluZGV4ICUg
Y29uZmlnLm11bHRpcGxpZXJzLmxlbmd0aF07Ci0gICAgfQotICB9Ci19Ci0KLWZ1bmN0aW9uIGFk
ZFJlc3VsdFJlcG9ydGluZ1Rhc2soY29uZmlnLCB0aXRsZSkgewotICB0YXNrcy5wdXNoKGZ1bmN0
aW9uKCl7Ci0gICAgICB0aW1lcklEID0gbnVsbDsKLSAgICAgIGNvbmZpZy5hZGRUb1N1bW1hcnko
dGl0bGUpOwotICAgICAgcmVwb3J0QXZlcmFnZURhdGEoY29uZmlnKTsKLSAgICAgIGNsZWFyQXZl
cmFnZURhdGEoKTsKLSAgICAgIHJ1bk5leHRUYXNrKGNvbmZpZyk7Ci0gIH0pOwotfQotCi1mdW5j
dGlvbiBhZGRSZXN1bHRDbGVhcmluZ1Rhc2soY29uZmlnKSB7Ci0gIHRhc2tzLnB1c2goZnVuY3Rp
b24oKXsKLSAgICAgIHRpbWVySUQgPSBudWxsOwotICAgICAgY2xlYXJBdmVyYWdlRGF0YSgpOwot
ICAgICAgcnVuTmV4dFRhc2soY29uZmlnKTsKLSAgfSk7Ci19Ci0KLS8vIC0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tCi0KLWZ1bmN0aW9uIHNlbmRCZW5jaG1hcmsoY29uZmlnKSB7Ci0g
IGNvbmZpZy5hZGRUb0xvZygnU2VuZCBiZW5jaG1hcmsnKTsKLSAgY29uZmlnLmFkZFRvTG9nKGJ1
aWxkTGVnZW5kU3RyaW5nKGNvbmZpZykpOwotCi0gIHRhc2tzID0gW107Ci0gIGNsZWFyQXZlcmFn
ZURhdGEoKTsKLSAgYWRkVGFza3MoY29uZmlnLCBzZW5kQmVuY2htYXJrU3RlcCk7Ci0gIGFkZFJl
c3VsdFJlcG9ydGluZ1Rhc2soY29uZmlnLCAnU2VuZCBCZW5jaG1hcmsgJyArIGdldENvbmZpZ1N0
cmluZyhjb25maWcpKTsKLSAgc3RhcnRCZW5jaG1hcmsoY29uZmlnKTsKLX0KLQotZnVuY3Rpb24g
cmVjZWl2ZUJlbmNobWFyayhjb25maWcpIHsKLSAgY29uZmlnLmFkZFRvTG9nKCdSZWNlaXZlIGJl
bmNobWFyaycpOwotICBjb25maWcuYWRkVG9Mb2coYnVpbGRMZWdlbmRTdHJpbmcoY29uZmlnKSk7
Ci0KLSAgdGFza3MgPSBbXTsKLSAgY2xlYXJBdmVyYWdlRGF0YSgpOwotICBhZGRUYXNrcyhjb25m
aWcsIHJlY2VpdmVCZW5jaG1hcmtTdGVwKTsKLSAgYWRkUmVzdWx0UmVwb3J0aW5nVGFzayhjb25m
aWcsCi0gICAgICAnUmVjZWl2ZSBCZW5jaG1hcmsgJyArIGdldENvbmZpZ1N0cmluZyhjb25maWcp
KTsKLSAgc3RhcnRCZW5jaG1hcmsoY29uZmlnKTsKLX0KLQotZnVuY3Rpb24gYmF0Y2hCZW5jaG1h
cmsob3JpZ2luYWxDb25maWcpIHsKLSAgb3JpZ2luYWxDb25maWcuYWRkVG9Mb2coJ0JhdGNoIGJl
bmNobWFyaycpOwotCi0gIHRhc2tzID0gW107Ci0gIGNsZWFyQXZlcmFnZURhdGEoKTsKLQotICB2
YXIgZGF0YVR5cGVzID0gWyd0ZXh0JywgJ2Jsb2InLCAnYXJyYXlidWZmZXInXTsKLSAgdmFyIHN0
ZXBGdW5jcyA9IFtzZW5kQmVuY2htYXJrU3RlcCwgcmVjZWl2ZUJlbmNobWFya1N0ZXBdOwotICB2
YXIgbmFtZXMgPSBbJ1NlbmQnLCAnUmVjZWl2ZSddOwotICB2YXIgYXN5bmMgPSBbdHJ1ZSwgZmFs
c2VdOwotICBmb3IgKHZhciBpID0gMDsgaSA8IHN0ZXBGdW5jcy5sZW5ndGg7ICsraSkgewotICAg
IGZvciAodmFyIGogPSAwOyBqIDwgZGF0YVR5cGVzLmxlbmd0aDsgKytqKSB7Ci0gICAgICBmb3Ig
KHZhciBrID0gMDsgayA8IGFzeW5jLmxlbmd0aDsgKytrKSB7Ci0gICAgICAgIHZhciBjb25maWcg
PSBjbG9uZUNvbmZpZyhvcmlnaW5hbENvbmZpZyk7Ci0gICAgICAgIGNvbmZpZy5kYXRhVHlwZSA9
IGRhdGFUeXBlc1tqXTsKLSAgICAgICAgY29uZmlnLmFzeW5jID0gYXN5bmNba107Ci0KLSAgICAg
ICAgLy8gUmVjZWl2ZSAmJiBOb24tV29ya2VyICYmIFN5bmMgaXMgbm90IHN1cHBvcnRlZCBieSB0
aGUgc3BlYwotICAgICAgICBpZiAoc3RlcEZ1bmNzW2ldID09PSByZWNlaXZlQmVuY2htYXJrU3Rl
cCAmJiAhaXNXb3JrZXIgJiYKLSAgICAgICAgICAgICFjb25maWcuYXN5bmMpCi0gICAgICAgICAg
Y29udGludWU7Ci0KLSAgICAgICAgYWRkVGFza3MoY29uZmlnLCBzdGVwRnVuY3NbaV0pOwotICAg
ICAgICBhZGRSZXN1bHRSZXBvcnRpbmdUYXNrKGNvbmZpZywKLSAgICAgICAgICAgIG5hbWVzW2ld
ICsgJyBiZW5jaG1hcmsgJyArIGdldENvbmZpZ1N0cmluZyhjb25maWcpKTsKLSAgICAgIH0KLSAg
ICB9Ci0gIH0KLQotICBzdGFydEJlbmNobWFyayhjb25maWcpOwotfQotCi0KLWZ1bmN0aW9uIHN0
b3AoY29uZmlnKSB7Ci0gIGRlc3Ryb3lBbGxYSFJzKCk7Ci0gIGNsZWFyVGltZW91dCh0aW1lcklE
KTsKLSAgdGltZXJJRCA9IG51bGw7Ci0gIGNvbmZpZy5hZGRUb0xvZygnU3RvcHBlZCcpOwotfQot
Ci1vbm1lc3NhZ2UgPSBmdW5jdGlvbiAobWVzc2FnZSkgewotICB2YXIgY29uZmlnID0gbWVzc2Fn
ZS5kYXRhLmNvbmZpZzsKLSAgY29uZmlnLmFkZFRvTG9nID0gd29ya2VyQWRkVG9Mb2c7Ci0gIGNv
bmZpZy5hZGRUb1N1bW1hcnkgPSB3b3JrZXJBZGRUb1N1bW1hcnk7Ci0gIGNvbmZpZy5tZWFzdXJl
VmFsdWUgPSB3b3JrZXJNZWFzdXJlVmFsdWU7Ci0gIGlmIChtZXNzYWdlLmRhdGEudHlwZSA9PT0g
J3NlbmRCZW5jaG1hcmsnKQotICAgIHNlbmRCZW5jaG1hcmsoY29uZmlnKTsKLSAgZWxzZSBpZiAo
bWVzc2FnZS5kYXRhLnR5cGUgPT09ICdyZWNlaXZlQmVuY2htYXJrJykKLSAgICByZWNlaXZlQmVu
Y2htYXJrKGNvbmZpZyk7Ci0gIGVsc2UgaWYgKG1lc3NhZ2UuZGF0YS50eXBlID09PSAnYmF0Y2hC
ZW5jaG1hcmsnKQotICAgIGJhdGNoQmVuY2htYXJrKGNvbmZpZyk7Ci0gIGVsc2UgaWYgKG1lc3Nh
Z2UuZGF0YS50eXBlID09PSAnc3RvcCcpCi0gICAgc3RvcChjb25maWcpOwotfTsKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3
ZWJzb2NrZXQvc3JjL2V4YW1wbGUveGhyX2V2ZW50X2xvZ2dlci5odG1sIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9zcmMvZXhh
bXBsZS94aHJfZXZlbnRfbG9nZ2VyLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDY5ODM1NTNiOGFjODAzNTllZTg1YmE5ODFlNTAwNThlY2U0MzdjOGEuLjAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9zcmMvZXhhbXBsZS94aHJfZXZl
bnRfbG9nZ2VyLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwxMTAgKzAsMCBAQAotPCEtLQotQ29w
eXJpZ2h0IDIwMTQgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLQotVXNlIG9mIHRo
aXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUKLWxpY2Vuc2UgdGhhdCBj
YW4gYmUgZm91bmQgaW4gdGhlIENPUFlJTkcgZmlsZSBvciBhdAotaHR0cHM6Ly9kZXZlbG9wZXJz
Lmdvb2dsZS5jb20vb3Blbi1zb3VyY2UvbGljZW5zZXMvYnNkCi0tLT4KLQotPGh0bWw+Ci08aGVh
ZD4KLTx0aXRsZT5YSFIgZXZlbnQgbG9nZ2VyPC90aXRsZT4KLTxzY3JpcHQgc3JjPSJ1dGlsX21h
aW4uanMiPjwvc2NyaXB0PgotPHNjcmlwdD4KLXZhciBldmVudHMgPSBbXTsKLQotZnVuY3Rpb24g
cnVuKCkgewotICBldmVudHMgPSBbXTsKLQotICBmdW5jdGlvbiBwdXNoVG9Mb2codHlwZSkgewot
ICAgIGlmIChldmVudHMubGVuZ3RoICE9IDAgJiYgdHlwZSA9PT0gZXZlbnRzW2V2ZW50cy5sZW5n
dGggLSAxXS50eXBlKSB7Ci0gICAgICBldmVudHNbZXZlbnRzLmxlbmd0aCAtIDFdLmNvdW50ICs9
IDE7Ci0gICAgfSBlbHNlIHsKLSAgICAgIGV2ZW50cy5wdXNoKHt0eXBlOiB0eXBlLCBjb3VudDog
MX0pOwotICAgIH0KLSAgfQotCi0gIHZhciB4aHIgPSBuZXcgWE1MSHR0cFJlcXVlc3QoKTsKLQot
ICBmdW5jdGlvbiBnZXRQcm9ncmVzc0V2ZW50RHVtcChlKSB7Ci0gICAgcmV0dXJuICcoJyArIGUu
bGVuZ3RoQ29tcHV0YWJsZSArICcsICcgKyBlLmxvYWRlZCArICcsICcgKyBlLnRvdGFsICsgJykn
OwotICB9Ci0KLSAgdmFyIGR1bXBQcm9ncmVzc0V2ZW50ID0gZ2V0Qm9vbEZyb21DaGVja0JveCgn
ZHVtcHByb2dyZXNzZXZlbnQnKTsKLQotICBmdW5jdGlvbiBsb2coZSkgewotICAgIHZhciB0eXBl
ID0gZS50eXBlOwotICAgIGlmICh0eXBlID09PSAncmVhZHlzdGF0ZWNoYW5nZScpIHsKLSAgICAg
IHR5cGUgKz0gZS50YXJnZXQucmVhZHlTdGF0ZTsKLSAgICB9Ci0gICAgaWYgKGR1bXBQcm9ncmVz
c0V2ZW50ICYmIChlIGluc3RhbmNlb2YgUHJvZ3Jlc3NFdmVudCkpIHsKLSAgICAgIHR5cGUgKz0g
Z2V0UHJvZ3Jlc3NFdmVudER1bXAoZSk7Ci0gICAgfQotICAgIHB1c2hUb0xvZyh0eXBlKTsKLSAg
fTsKLQotICBmdW5jdGlvbiBsb2dVcGxvYWQoZSkgewotICAgIHZhciB0eXBlID0gZS50eXBlOwot
ICAgIGlmIChkdW1wUHJvZ3Jlc3NFdmVudCAmJiAoZSBpbnN0YW5jZW9mIFByb2dyZXNzRXZlbnQp
KSB7Ci0gICAgICB0eXBlICs9IGdldFByb2dyZXNzRXZlbnREdW1wKGUpOwotICAgIH0KLSAgICBw
dXNoVG9Mb2coJ3VwbG9hZCcgKyB0eXBlKTsKLSAgfQotCi0gIGlmIChnZXRCb29sRnJvbUNoZWNr
Qm94KCd1cGxvYWQnKSkgewotICAgIHZhciB1cGxvYWQgPSB4aHIudXBsb2FkOwotICAgIHVwbG9h
ZC5vbmxvYWRzdGFydCA9IGxvZ1VwbG9hZDsKLSAgICB1cGxvYWQub25wcm9ncmVzcyA9IGxvZ1Vw
bG9hZDsKLSAgICB1cGxvYWQub25hYm9ydCA9IGxvZ1VwbG9hZDsKLSAgICB1cGxvYWQub25lcnJv
ciA9IGxvZ1VwbG9hZDsKLSAgICB1cGxvYWQub25sb2FkID0gbG9nVXBsb2FkOwotICAgIHVwbG9h
ZC5vbnRpbWVvdXQgPSBsb2dVcGxvYWQ7Ci0gICAgdXBsb2FkLm9ubG9hZGVuZCA9IGxvZ1VwbG9h
ZDsKLSAgfQotCi0gIHhoci5vbnJlYWR5c3RhdGVjaGFuZ2UgPSBsb2c7Ci0gIHhoci5vbmxvYWRz
dGFydCA9IGxvZzsKLSAgeGhyLm9ucHJvZ3Jlc3MgPSBsb2c7Ci0gIHhoci5vbmFib3J0ID0gbG9n
OwotICB4aHIub25lcnJvciA9IGxvZzsKLSAgeGhyLm9ubG9hZCA9IGxvZzsKLSAgeGhyLm9udGlt
ZW91dCA9IGxvZzsKLSAgeGhyLm9ubG9hZGVuZCA9IGxvZzsKLQotICB4aHIub3BlbignUE9TVCcs
ICcvMDczYmUwMDFlMTA5NTA2OTJjY2JmM2EyYWQyMWMyNDVfcmVjZWl2ZScsCi0gICAgICAgICAg
IGdldEJvb2xGcm9tQ2hlY2tCb3goJ2FzeW5jJykpOwotICB2YXIgc2l6ZSA9IGdldEludEZyb21J
bnB1dCgnc2l6ZScpOwotICB2YXIgY2h1bmtlZE1vZGUgPSAnbm9uZSc7Ci0gIGlmIChnZXRCb29s
RnJvbUNoZWNrQm94KCdjaHVua2VkcmVzcG9uc2UnKSkgewotICAgIGNodW5rZWRNb2RlID0gJ2No
dW5rZWQnOwotICB9Ci0gIHhoci5zZW5kKHNpemUgKyAnICcgKyBjaHVua2VkTW9kZSk7Ci19Ci0K
LWZ1bmN0aW9uIHByaW50KCkgewotICB2YXIgcmVzdWx0ID0gJyc7Ci0gIGZvciAodmFyIGkgPSAw
OyBpIDwgZXZlbnRzLmxlbmd0aDsgKytpKSB7Ci0gICAgdmFyIGV2ZW50ID0gZXZlbnRzW2ldOwot
ICAgIHJlc3VsdCArPSBldmVudC50eXBlICsgJyAqICcgKyBldmVudC5jb3VudCArICdcbic7Ci0g
IH0KLSAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2xvZycpLnZhbHVlID0gcmVzdWx0OwotfQot
PC9zY3JpcHQ+Ci0KLTxib2R5PgotICA8dGV4dGFyZWEgaWQ9ImxvZyIgcm93cz0iMTAiIGNvbHM9
IjQwIiByZWFkb25seT48L3RleHRhcmVhPgotICA8YnIvPgotICBTaXplOiA8aW5wdXQgdHlwZT0i
dGV4dCIgaWQ9InNpemUiIHZhbHVlPSI2NTUzNiI+PGJyLz4KLSAgPGlucHV0IHR5cGU9ImNoZWNr
Ym94IiBpZD0iY2h1bmtlZHJlc3BvbnNlIj4KLSAgPGxhYmVsIGZvcj0iY2h1bmtlZHJlc3BvbnNl
Ij5Vc2UgQ2h1bmtlZCBULUUgZm9yIHJlc3BvbnNlPC9sYWJlbD48YnIvPgotICA8aW5wdXQgdHlw
ZT0iY2hlY2tib3giIGlkPSJ1cGxvYWQiPgotICA8bGFiZWwgZm9yPSJ1cGxvYWQiPlVwbG9hZCBw
cm9ncmVzczwvbGFiZWw+PGJyLz4KLSAgPGlucHV0IHR5cGU9ImNoZWNrYm94IiBpZD0iZHVtcHBy
b2dyZXNzZXZlbnQiPgotICA8bGFiZWwgZm9yPSJkdW1wcHJvZ3Jlc3NldmVudCI+Ci0gICAgRHVt
cCBsZW5ndGhDb21wdXRhYmxlL2xvYWRlZC90b3RhbDwvbGFiZWw+PGJyLz4KLSAgPGlucHV0IHR5
cGU9ImNoZWNrYm94IiBpZD0iYXN5bmMiIGNoZWNrZWQ+Ci0gIDxsYWJlbCBmb3I9ImFzeW5jIj5B
c3luYzwvbGFiZWw+PGJyLz4KLSAgPGlucHV0IHR5cGU9ImJ1dHRvbiIgb25jbGljaz0icnVuKCki
IHZhbHVlPSJSdW4gWEhSIj4KLSAgPGlucHV0IHR5cGU9ImJ1dHRvbiIgb25jbGljaz0icHJpbnQo
KSIgdmFsdWU9IlByaW50IGxvZyI+Ci08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0
L3NyYy9tb2RfcHl3ZWJzb2NrZXQvX19pbml0X18ucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3NyYy9tb2RfcHl3ZWJzb2Nr
ZXQvX19pbml0X18ucHkKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDcwOTMzYTIyMDQ1
MWZhZGI2YTAxYTVjMWQ0NWMyNTUxNDY4ZDdkODUuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy9weXdlYnNvY2tldC9zcmMvbW9kX3B5d2Vic29ja2V0L19faW5pdF9fLnB5
CisrKyAvZGV2L251bGwKQEAgLTEsMjI0ICswLDAgQEAKLSMgQ29weXJpZ2h0IDIwMTEsIEdvb2ds
ZSBJbmMuCi0jIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0jCi0jIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotIyBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMgYXJlCi0jIG1ldDoKLSMKLSMgICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSMgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotIyAgICAgKiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCi0jIGNvcHly
aWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIKLSMgaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZQotIyBkaXN0cmlidXRpb24uCi0jICAgICAqIE5laXRoZXIgdGhlIG5h
bWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKLSMgY29udHJpYnV0b3JzIG1h
eSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KLSMg
dGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4K
LSMKLSMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMg
QU5EIENPTlRSSUJVVE9SUwotIyAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAotIyBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKLSMgQSBQQVJUSUNV
TEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklH
SFQKLSMgT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsCi0jIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKLSMgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCi0jIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWQotIyBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUCi0jIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotIyBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotCi0KLSIi
IldlYlNvY2tldCBleHRlbnNpb24gZm9yIEFwYWNoZSBIVFRQIFNlcnZlci4KLQotbW9kX3B5d2Vi
c29ja2V0IGlzIGEgV2ViU29ja2V0IGV4dGVuc2lvbiBmb3IgQXBhY2hlIEhUVFAgU2VydmVyCi1p
bnRlbmRlZCBmb3IgdGVzdGluZyBvciBleHBlcmltZW50YWwgcHVycG9zZXMuIG1vZF9weXRob24g
aXMgcmVxdWlyZWQuCi0KLQotSW5zdGFsbGF0aW9uCi09PT09PT09PT09PT0KLQotMC4gUHJlcGFy
ZSBhbiBBcGFjaGUgSFRUUCBTZXJ2ZXIgZm9yIHdoaWNoIG1vZF9weXRob24gaXMgZW5hYmxlZC4K
LQotMS4gU3BlY2lmeSB0aGUgZm9sbG93aW5nIEFwYWNoZSBIVFRQIFNlcnZlciBkaXJlY3RpdmVz
IHRvIHN1aXQgeW91cgotICAgY29uZmlndXJhdGlvbi4KLQotICAgSWYgbW9kX3B5d2Vic29ja2V0
IGlzIG5vdCBpbiB0aGUgUHl0aG9uIHBhdGgsIHNwZWNpZnkgdGhlIGZvbGxvd2luZy4KLSAgIDx3
ZWJzb2NrX2xpYj4gaXMgdGhlIGRpcmVjdG9yeSB3aGVyZSBtb2RfcHl3ZWJzb2NrZXQgaXMgaW5z
dGFsbGVkLgotCi0gICAgICAgUHl0aG9uUGF0aCAic3lzLnBhdGgrWyc8d2Vic29ja19saWI+J10i
Ci0KLSAgIEFsd2F5cyBzcGVjaWZ5IHRoZSBmb2xsb3dpbmcuIDx3ZWJzb2NrX2hhbmRsZXJzPiBp
cyB0aGUgZGlyZWN0b3J5IHdoZXJlCi0gICB1c2VyLXdyaXR0ZW4gV2ViU29ja2V0IGhhbmRsZXJz
IGFyZSBwbGFjZWQuCi0KLSAgICAgICBQeXRob25PcHRpb24gbW9kX3B5d2Vic29ja2V0LmhhbmRs
ZXJfcm9vdCA8d2Vic29ja19oYW5kbGVycz4KLSAgICAgICBQeXRob25IZWFkZXJQYXJzZXJIYW5k
bGVyIG1vZF9weXdlYnNvY2tldC5oZWFkZXJwYXJzZXJoYW5kbGVyCi0KLSAgIFRvIGxpbWl0IHRo
ZSBzZWFyY2ggZm9yIFdlYlNvY2tldCBoYW5kbGVycyB0byBhIGRpcmVjdG9yeSA8c2Nhbl9kaXI+
Ci0gICB1bmRlciA8d2Vic29ja19oYW5kbGVycz4sIGNvbmZpZ3VyZSBhcyBmb2xsb3dzOgotCi0g
ICAgICAgUHl0aG9uT3B0aW9uIG1vZF9weXdlYnNvY2tldC5oYW5kbGVyX3NjYW4gPHNjYW5fZGly
PgotCi0gICA8c2Nhbl9kaXI+IGlzIHVzZWZ1bCBpbiBzYXZpbmcgc2NhbiB0aW1lIHdoZW4gPHdl
YnNvY2tfaGFuZGxlcnM+Ci0gICBjb250YWlucyBtYW55IG5vbi1XZWJTb2NrZXQgaGFuZGxlciBm
aWxlcy4KLQotICAgSWYgeW91IHdhbnQgdG8gYWxsb3cgaGFuZGxlcnMgd2hvc2UgY2Fub25pY2Fs
IHBhdGggaXMgbm90IHVuZGVyIHRoZSByb290Ci0gICBkaXJlY3RvcnkgKGkuZS4gc3ltYm9saWMg
bGluayBpcyBpbiByb290IGRpcmVjdG9yeSBidXQgaXRzIHRhcmdldCBpcyBub3QpLAotICAgY29u
ZmlndXJlIGFzIGZvbGxvd3M6Ci0KLSAgICAgICBQeXRob25PcHRpb24gbW9kX3B5d2Vic29ja2V0
LmFsbG93X2hhbmRsZXJzX291dHNpZGVfcm9vdF9kaXIgT24KLQotICAgRXhhbXBsZSBzbmlwcGV0
IG9mIGh0dHBkLmNvbmY6Ci0gICAobW9kX3B5d2Vic29ja2V0IGlzIGluIC93ZWJzb2NrX2xpYiwg
V2ViU29ja2V0IGhhbmRsZXJzIGFyZSBpbgotICAgL3dlYnNvY2tfaGFuZGxlcnMsIHBvcnQgaXMg
ODAgZm9yIHdzLCA0NDMgZm9yIHdzcy4pCi0KLSAgICAgICA8SWZNb2R1bGUgcHl0aG9uX21vZHVs
ZT4KLSAgICAgICAgIFB5dGhvblBhdGggInN5cy5wYXRoK1snL3dlYnNvY2tfbGliJ10iCi0gICAg
ICAgICBQeXRob25PcHRpb24gbW9kX3B5d2Vic29ja2V0LmhhbmRsZXJfcm9vdCAvd2Vic29ja19o
YW5kbGVycwotICAgICAgICAgUHl0aG9uSGVhZGVyUGFyc2VySGFuZGxlciBtb2RfcHl3ZWJzb2Nr
ZXQuaGVhZGVycGFyc2VyaGFuZGxlcgotICAgICAgIDwvSWZNb2R1bGU+Ci0KLTIuIFR1bmUgQXBh
Y2hlIHBhcmFtZXRlcnMgZm9yIHNlcnZpbmcgV2ViU29ja2V0LiBXZSdkIGxpa2UgdG8gbm90ZSB0
aGF0IGF0Ci0gICBsZWFzdCBUaW1lT3V0IGRpcmVjdGl2ZSBmcm9tIGNvcmUgZmVhdHVyZXMgYW5k
IFJlcXVlc3RSZWFkVGltZW91dAotICAgZGlyZWN0aXZlIGZyb20gbW9kX3JlcXRpbWVvdXQgc2hv
dWxkIGJlIG1vZGlmaWVkIG5vdCB0byBraWxsIGNvbm5lY3Rpb25zCi0gICBpbiBvbmx5IGEgZmV3
IHNlY29uZHMgb2YgaWRsZSB0aW1lLgotCi0zLiBWZXJpZnkgaW5zdGFsbGF0aW9uLiBZb3UgY2Fu
IHVzZSBleGFtcGxlL2NvbnNvbGUuaHRtbCB0byBwb2tlIHRoZSBzZXJ2ZXIuCi0KLQotV3JpdGlu
ZyBXZWJTb2NrZXQgaGFuZGxlcnMKLT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0KLVdoZW4g
YSBXZWJTb2NrZXQgcmVxdWVzdCBjb21lcyBpbiwgdGhlIHJlc291cmNlIG5hbWUKLXNwZWNpZmll
ZCBpbiB0aGUgaGFuZHNoYWtlIGlzIGNvbnNpZGVyZWQgYXMgaWYgaXQgaXMgYSBmaWxlIHBhdGgg
dW5kZXIKLTx3ZWJzb2NrX2hhbmRsZXJzPiBhbmQgdGhlIGhhbmRsZXIgZGVmaW5lZCBpbgotPHdl
YnNvY2tfaGFuZGxlcnM+LzxyZXNvdXJjZV9uYW1lPl93c2gucHkgaXMgaW52b2tlZC4KLQotRm9y
IGV4YW1wbGUsIGlmIHRoZSByZXNvdXJjZSBuYW1lIGlzIC9leGFtcGxlL2NoYXQsIHRoZSBoYW5k
bGVyIGRlZmluZWQgaW4KLTx3ZWJzb2NrX2hhbmRsZXJzPi9leGFtcGxlL2NoYXRfd3NoLnB5IGlz
IGludm9rZWQuCi0KLUEgV2ViU29ja2V0IGhhbmRsZXIgaXMgY29tcG9zZWQgb2YgdGhlIGZvbGxv
d2luZyB0aHJlZSBmdW5jdGlvbnM6Ci0KLSAgICB3ZWJfc29ja2V0X2RvX2V4dHJhX2hhbmRzaGFr
ZShyZXF1ZXN0KQotICAgIHdlYl9zb2NrZXRfdHJhbnNmZXJfZGF0YShyZXF1ZXN0KQotICAgIHdl
Yl9zb2NrZXRfcGFzc2l2ZV9jbG9zaW5nX2hhbmRzaGFrZShyZXF1ZXN0KQotCi13aGVyZToKLSAg
ICByZXF1ZXN0OiBtb2RfcHl0aG9uIHJlcXVlc3QuCi0KLXdlYl9zb2NrZXRfZG9fZXh0cmFfaGFu
ZHNoYWtlIGlzIGNhbGxlZCBkdXJpbmcgdGhlIGhhbmRzaGFrZSBhZnRlciB0aGUKLWhlYWRlcnMg
YXJlIHN1Y2Nlc3NmdWxseSBwYXJzZWQgYW5kIFdlYlNvY2tldCBwcm9wZXJ0aWVzICh3c19sb2Nh
dGlvbiwKLXdzX29yaWdpbiwgYW5kIHdzX3Jlc291cmNlKSBhcmUgYWRkZWQgdG8gcmVxdWVzdC4g
QSBoYW5kbGVyCi1jYW4gcmVqZWN0IHRoZSByZXF1ZXN0IGJ5IHJhaXNpbmcgYW4gZXhjZXB0aW9u
LgotCi1BIHJlcXVlc3Qgb2JqZWN0IGhhcyB0aGUgZm9sbG93aW5nIHByb3BlcnRpZXMgdGhhdCB5
b3UgY2FuIHVzZSBkdXJpbmcgdGhlCi1leHRyYSBoYW5kc2hha2UgKHdlYl9zb2NrZXRfZG9fZXh0
cmFfaGFuZHNoYWtlKToKLS0gd3NfcmVzb3VyY2UKLS0gd3Nfb3JpZ2luCi0tIHdzX3ZlcnNpb24K
LS0gd3NfbG9jYXRpb24gKEh5QmkgMDAgb25seSkKLS0gd3NfZXh0ZW5zaW9ucyAoSHlCaSAwNiBh
bmQgbGF0ZXIpCi0tIHdzX2RlZmxhdGUgKEh5QmkgMDYgYW5kIGxhdGVyKQotLSB3c19wcm90b2Nv
bAotLSB3c19yZXF1ZXN0ZWRfcHJvdG9jb2xzIChIeUJpIDA2IGFuZCBsYXRlcikKLQotVGhlIGxh
c3QgdHdvIGFyZSBhIGJpdCB0cmlja3kuIFNlZSB0aGUgbmV4dCBzdWJzZWN0aW9uLgotCi0KLVN1
YnByb3RvY29sIE5lZ290aWF0aW9uCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotCi1Gb3IgSHlC
aSAwNiBhbmQgbGF0ZXIsIHdzX3Byb3RvY29sIGlzIGFsd2F5cyBzZXQgdG8gTm9uZSB3aGVuCi13
ZWJfc29ja2V0X2RvX2V4dHJhX2hhbmRzaGFrZSBpcyBjYWxsZWQuIElmIHdzX3JlcXVlc3RlZF9w
cm90b2NvbHMgaXMgbm90Ci1Ob25lLCB5b3UgbXVzdCBjaG9vc2Ugb25lIHN1YnByb3RvY29sIGZy
b20gdGhpcyBsaXN0IGFuZCBzZXQgaXQgdG8KLXdzX3Byb3RvY29sLgotCi1Gb3IgSHlCaSAwMCwg
d2hlbiB3ZWJfc29ja2V0X2RvX2V4dHJhX2hhbmRzaGFrZSBpcyBjYWxsZWQsCi13c19wcm90b2Nv
bCBpcyBzZXQgdG8gdGhlIHZhbHVlIGdpdmVuIGJ5IHRoZSBjbGllbnQgaW4KLVNlYy1XZWJTb2Nr
ZXQtUHJvdG9jb2wgaGVhZGVyIG9yIE5vbmUgaWYKLXN1Y2ggaGVhZGVyIHdhcyBub3QgZm91bmQg
aW4gdGhlIG9wZW5pbmcgaGFuZHNoYWtlIHJlcXVlc3QuIEZpbmlzaCBleHRyYQotaGFuZHNoYWtl
IHdpdGggd3NfcHJvdG9jb2wgdW50b3VjaGVkIHRvIGFjY2VwdCB0aGUgcmVxdWVzdCBzdWJwcm90
b2NvbC4KLVRoZW4sIFNlYy1XZWJTb2NrZXQtUHJvdG9jb2wgaGVhZGVyIHdpbGwgYmUgc2VudCB0
bwotdGhlIGNsaWVudCBpbiByZXNwb25zZSB3aXRoIHRoZSBzYW1lIHZhbHVlIGFzIHJlcXVlc3Rl
ZC4gUmFpc2UgYW4gZXhjZXB0aW9uCi1pbiB3ZWJfc29ja2V0X2RvX2V4dHJhX2hhbmRzaGFrZSB0
byByZWplY3QgdGhlIHJlcXVlc3RlZCBzdWJwcm90b2NvbC4KLQotCi1EYXRhIFRyYW5zZmVyCi0t
LS0tLS0tLS0tLS0tCi0KLXdlYl9zb2NrZXRfdHJhbnNmZXJfZGF0YSBpcyBjYWxsZWQgYWZ0ZXIg
dGhlIGhhbmRzaGFrZSBjb21wbGV0ZWQKLXN1Y2Nlc3NmdWxseS4gQSBoYW5kbGVyIGNhbiByZWNl
aXZlL3NlbmQgbWVzc2FnZXMgZnJvbS90byB0aGUgY2xpZW50Ci11c2luZyByZXF1ZXN0LiBtb2Rf
cHl3ZWJzb2NrZXQubXNndXRpbCBtb2R1bGUgcHJvdmlkZXMgdXRpbGl0aWVzCi1mb3IgZGF0YSB0
cmFuc2Zlci4KLQotWW91IGNhbiByZWNlaXZlIGEgbWVzc2FnZSBieSB0aGUgZm9sbG93aW5nIHN0
YXRlbWVudC4KLQotICAgIG1lc3NhZ2UgPSByZXF1ZXN0LndzX3N0cmVhbS5yZWNlaXZlX21lc3Nh
Z2UoKQotCi1UaGlzIGNhbGwgYmxvY2tzIHVudGlsIGFueSBjb21wbGV0ZSB0ZXh0IGZyYW1lIGFy
cml2ZXMsIGFuZCB0aGUgcGF5bG9hZCBkYXRhCi1vZiB0aGUgaW5jb21pbmcgZnJhbWUgd2lsbCBi
ZSBzdG9yZWQgaW50byBtZXNzYWdlLiBXaGVuIHlvdSdyZSB1c2luZyBJRVRGCi1IeUJpIDAwIG9y
IGxhdGVyIHByb3RvY29sLCByZWNlaXZlX21lc3NhZ2UoKSB3aWxsIHJldHVybiBOb25lIG9uIHJl
Y2VpdmluZwotY2xpZW50LWluaXRpYXRlZCBjbG9zaW5nIGhhbmRzaGFrZS4gV2hlbiBhbnkgZXJy
b3Igb2NjdXJzLCByZWNlaXZlX21lc3NhZ2UoKQotd2lsbCByYWlzZSBzb21lIGV4Y2VwdGlvbi4K
LQotWW91IGNhbiBzZW5kIGEgbWVzc2FnZSBieSB0aGUgZm9sbG93aW5nIHN0YXRlbWVudC4KLQot
ICAgIHJlcXVlc3Qud3Nfc3RyZWFtLnNlbmRfbWVzc2FnZShtZXNzYWdlKQotCi0KLUNsb3Npbmcg
Q29ubmVjdGlvbgotLS0tLS0tLS0tLS0tLS0tLS0tCi0KLUV4ZWN1dGluZyB0aGUgZm9sbG93aW5n
IHN0YXRlbWVudCBvciBqdXN0IHJldHVybi1pbmcgZnJvbQotd2ViX3NvY2tldF90cmFuc2Zlcl9k
YXRhIGNhdXNlIGNvbm5lY3Rpb24gY2xvc2UuCi0KLSAgICByZXF1ZXN0LndzX3N0cmVhbS5jbG9z
ZV9jb25uZWN0aW9uKCkKLQotY2xvc2VfY29ubmVjdGlvbiB3aWxsIHdhaXQKLWZvciBjbG9zaW5n
IGhhbmRzaGFrZSBhY2tub3dsZWRnZW1lbnQgY29taW5nIGZyb20gdGhlIGNsaWVudC4gV2hlbiBp
dAotY291bGRuJ3QgcmVjZWl2ZSBhIHZhbGlkIGFja25vd2xlZGdlbWVudCwgcmFpc2VzIGFuIGV4
Y2VwdGlvbi4KLQotd2ViX3NvY2tldF9wYXNzaXZlX2Nsb3NpbmdfaGFuZHNoYWtlIGlzIGNhbGxl
ZCBhZnRlciB0aGUgc2VydmVyIHJlY2VpdmVzCi1pbmNvbWluZyBjbG9zaW5nIGZyYW1lIGZyb20g
dGhlIGNsaWVudCBwZWVyIGltbWVkaWF0ZWx5LiBZb3UgY2FuIHNwZWNpZnkKLWNvZGUgYW5kIHJl
YXNvbiBieSByZXR1cm4gdmFsdWVzLiBUaGV5IGFyZSBzZW50IGFzIGEgb3V0Z29pbmcgY2xvc2lu
ZyBmcmFtZQotZnJvbSB0aGUgc2VydmVyLiBBIHJlcXVlc3Qgb2JqZWN0IGhhcyB0aGUgZm9sbG93
aW5nIHByb3BlcnRpZXMgdGhhdCB5b3UgY2FuCi11c2UgaW4gd2ViX3NvY2tldF9wYXNzaXZlX2Ns
b3NpbmdfaGFuZHNoYWtlLgotLSB3c19jbG9zZV9jb2RlCi0tIHdzX2Nsb3NlX3JlYXNvbgotCi0K
LVRocmVhZGluZwotLS0tLS0tLS0tCi0KLUEgV2ViU29ja2V0IGhhbmRsZXIgbXVzdCBiZSB0aHJl
YWQtc2FmZSBpZiB0aGUgc2VydmVyIChBcGFjaGUgb3IKLXN0YW5kYWxvbmUucHkpIGlzIGNvbmZp
Z3VyZWQgdG8gdXNlIHRocmVhZHMuCi0KLQotQ29uZmlndXJpbmcgV2ViU29ja2V0IEV4dGVuc2lv
biBQcm9jZXNzb3JzCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K
LQotU2VlIGV4dGVuc2lvbnMucHkgZm9yIHN1cHBvcnRlZCBXZWJTb2NrZXQgZXh0ZW5zaW9ucy4g
Tm90ZSB0aGF0IHRoZXkgYXJlCi11bnN0YWJsZSBhbmQgdGhlaXIgQVBJcyBhcmUgc3ViamVjdCB0
byBjaGFuZ2Ugc3Vic3RhbnRpYWxseS4KLQotQSByZXF1ZXN0IG9iamVjdCBoYXMgdGhlc2UgZXh0
ZW5zaW9uIHByb2Nlc3NpbmcgcmVsYXRlZCBhdHRyaWJ1dGVzLgotCi0tIHdzX3JlcXVlc3RlZF9l
eHRlbnNpb25zOgotCi0gIEEgbGlzdCBvZiBjb21tb24uRXh0ZW5zaW9uUGFyYW1ldGVyIGluc3Rh
bmNlcyByZXByZXNlbnRpbmcgZXh0ZW5zaW9uCi0gIHBhcmFtZXRlcnMgcmVjZWl2ZWQgZnJvbSB0
aGUgY2xpZW50IGluIHRoZSBjbGllbnQncyBvcGVuaW5nIGhhbmRzaGFrZS4KLSAgWW91IHNob3Vs
ZG4ndCBtb2RpZnkgaXQgbWFudWFsbHkuCi0KLS0gd3NfZXh0ZW5zaW9uczoKLQotICBBIGxpc3Qg
b2YgY29tbW9uLkV4dGVuc2lvblBhcmFtZXRlciBpbnN0YW5jZXMgcmVwcmVzZW50aW5nIGV4dGVu
c2lvbgotICBwYXJhbWV0ZXJzIHRvIHNlbmQgYmFjayB0byB0aGUgY2xpZW50IGluIHRoZSBzZXJ2
ZXIncyBvcGVuaW5nIGhhbmRzaGFrZS4KLSAgWW91IHNob3VsZG4ndCB0b3VjaCBpdCBkaXJlY3Rs
eS4gSW5zdGVhZCwgY2FsbCBtZXRob2RzIG9uIGV4dGVuc2lvbgotICBwcm9jZXNzb3JzLgotCi0t
IHdzX2V4dGVuc2lvbl9wcm9jZXNzb3JzOgotCi0gIEEgbGlzdCBvZiBsb2FkZWQgZXh0ZW5zaW9u
IHByb2Nlc3NvcnMuIEZpbmQgdGhlIHByb2Nlc3NvciBmb3IgdGhlCi0gIGV4dGVuc2lvbiB5b3Ug
d2FudCB0byBjb25maWd1cmUgZnJvbSBpdCwgYW5kIGNhbGwgaXRzIG1ldGhvZHMuCi0iIiIKLQot
Ci0jIHZpOnN0cz00IHN3PTQgZXQgdHc9NzIKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3JjL21vZF9weXdl
YnNvY2tldC9fc3RyZWFtX2Jhc2UucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3NyYy9tb2RfcHl3ZWJzb2NrZXQvX3N0cmVh
bV9iYXNlLnB5CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4MjM1NjY2YmJiMWQ1MWMx
MGRiM2Y5MWJkYTRhYmNkN2FmZWIyNjgyLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3JjL21vZF9weXdlYnNvY2tldC9fc3RyZWFtX2Jhc2UucHkK
KysrIC9kZXYvbnVsbApAQCAtMSwxODEgKzAsMCBAQAotIyBDb3B5cmlnaHQgMjAxMSwgR29vZ2xl
IEluYy4KLSMgQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSMKLSMgUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0jIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cyBhcmUKLSMgbWV0OgotIwotIyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotIyBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0jICAgICAqIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKLSMgY29weXJp
Z2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lcgotIyBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlCi0jIGRpc3RyaWJ1dGlvbi4KLSMgICAgICogTmVpdGhlciB0aGUgbmFt
ZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwotIyBjb250cmlidXRvcnMgbWF5
IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQotIyB0
aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgot
IwotIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBB
TkQgQ09OVFJJQlVUT1JTCi0jICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCi0jIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgotIyBBIFBBUlRJQ1VM
QVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdI
VAotIyBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwKLSMgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAotIyBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKLSMgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZCi0jIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQKLSMgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkg
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0jIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0KLQotIiIi
QmFzZSBzdHJlYW0gY2xhc3MuCi0iIiIKLQotCi0jIE5vdGU6IHJlcXVlc3QuY29ubmVjdGlvbi53
cml0ZS9yZWFkIGFyZSB1c2VkIGluIHRoaXMgbW9kdWxlLCBldmVuIHRob3VnaAotIyBtb2RfcHl0
aG9uIGRvY3VtZW50IHNheXMgdGhhdCB0aGV5IHNob3VsZCBiZSB1c2VkIG9ubHkgaW4gY29ubmVj
dGlvbgotIyBoYW5kbGVycy4gVW5mb3J0dW5hdGVseSwgd2UgaGF2ZSBubyBvdGhlciBvcHRpb25z
LiBGb3IgZXhhbXBsZSwKLSMgcmVxdWVzdC53cml0ZS9yZWFkIGFyZSBub3Qgc3VpdGFibGUgYmVj
YXVzZSB0aGV5IGRvbid0IGFsbG93IGRpcmVjdCByYXcgYnl0ZXMKLSMgd3JpdGluZy9yZWFkaW5n
LgotCi0KLWltcG9ydCBzb2NrZXQKLQotZnJvbSBtb2RfcHl3ZWJzb2NrZXQgaW1wb3J0IHV0aWwK
LQotCi0jIEV4Y2VwdGlvbnMKLQotCi1jbGFzcyBDb25uZWN0aW9uVGVybWluYXRlZEV4Y2VwdGlv
bihFeGNlcHRpb24pOgotICAgICIiIlRoaXMgZXhjZXB0aW9uIHdpbGwgYmUgcmFpc2VkIHdoZW4g
YSBjb25uZWN0aW9uIGlzIHRlcm1pbmF0ZWQKLSAgICB1bmV4cGVjdGVkbHkuCi0gICAgIiIiCi0K
LSAgICBwYXNzCi0KLQotY2xhc3MgSW52YWxpZEZyYW1lRXhjZXB0aW9uKENvbm5lY3Rpb25UZXJt
aW5hdGVkRXhjZXB0aW9uKToKLSAgICAiIiJUaGlzIGV4Y2VwdGlvbiB3aWxsIGJlIHJhaXNlZCB3
aGVuIHdlIHJlY2VpdmVkIGFuIGludmFsaWQgZnJhbWUgd2UKLSAgICBjYW5ub3QgcGFyc2UuCi0g
ICAgIiIiCi0KLSAgICBwYXNzCi0KLQotY2xhc3MgQmFkT3BlcmF0aW9uRXhjZXB0aW9uKEV4Y2Vw
dGlvbik6Ci0gICAgIiIiVGhpcyBleGNlcHRpb24gd2lsbCBiZSByYWlzZWQgd2hlbiBzZW5kX21l
c3NhZ2UoKSBpcyBjYWxsZWQgb24KLSAgICBzZXJ2ZXItdGVybWluYXRlZCBjb25uZWN0aW9uIG9y
IHJlY2VpdmVfbWVzc2FnZSgpIGlzIGNhbGxlZCBvbgotICAgIGNsaWVudC10ZXJtaW5hdGVkIGNv
bm5lY3Rpb24uCi0gICAgIiIiCi0KLSAgICBwYXNzCi0KLQotY2xhc3MgVW5zdXBwb3J0ZWRGcmFt
ZUV4Y2VwdGlvbihFeGNlcHRpb24pOgotICAgICIiIlRoaXMgZXhjZXB0aW9uIHdpbGwgYmUgcmFp
c2VkIHdoZW4gd2UgcmVjZWl2ZSBhIGZyYW1lIHdpdGggZmxhZywgb3Bjb2RlCi0gICAgd2UgY2Fu
bm90IGhhbmRsZS4gSGFuZGxlcnMgY2FuIGp1c3QgY2F0Y2ggYW5kIGlnbm9yZSB0aGlzIGV4Y2Vw
dGlvbiBhbmQKLSAgICBjYWxsIHJlY2VpdmVfbWVzc2FnZSgpIGFnYWluIHRvIGNvbnRpbnVlIHBy
b2Nlc3NpbmcgdGhlIG5leHQgZnJhbWUuCi0gICAgIiIiCi0KLSAgICBwYXNzCi0KLQotY2xhc3Mg
SW52YWxpZFVURjhFeGNlcHRpb24oRXhjZXB0aW9uKToKLSAgICAiIiJUaGlzIGV4Y2VwdGlvbiB3
aWxsIGJlIHJhaXNlZCB3aGVuIHdlIHJlY2VpdmUgYSB0ZXh0IGZyYW1lIHdoaWNoCi0gICAgY29u
dGFpbnMgaW52YWxpZCBVVEYtOCBzdHJpbmdzLgotICAgICIiIgotCi0gICAgcGFzcwotCi0KLWNs
YXNzIFN0cmVhbUJhc2Uob2JqZWN0KToKLSAgICAiIiJCYXNlIHN0cmVhbSBjbGFzcy4iIiIKLQot
ICAgIGRlZiBfX2luaXRfXyhzZWxmLCByZXF1ZXN0KToKLSAgICAgICAgIiIiQ29uc3RydWN0IGFu
IGluc3RhbmNlLgotCi0gICAgICAgIEFyZ3M6Ci0gICAgICAgICAgICByZXF1ZXN0OiBtb2RfcHl0
aG9uIHJlcXVlc3QuCi0gICAgICAgICIiIgotCi0gICAgICAgIHNlbGYuX2xvZ2dlciA9IHV0aWwu
Z2V0X2NsYXNzX2xvZ2dlcihzZWxmKQotCi0gICAgICAgIHNlbGYuX3JlcXVlc3QgPSByZXF1ZXN0
Ci0KLSAgICBkZWYgX3JlYWQoc2VsZiwgbGVuZ3RoKToKLSAgICAgICAgIiIiUmVhZHMgbGVuZ3Ro
IGJ5dGVzIGZyb20gY29ubmVjdGlvbi4gSW4gY2FzZSB3ZSBjYXRjaCBhbnkgZXhjZXB0aW9uLAot
ICAgICAgICBwcmVwZW5kcyByZW1vdGUgYWRkcmVzcyB0byB0aGUgZXhjZXB0aW9uIG1lc3NhZ2Ug
YW5kIHJhaXNlIGFnYWluLgotCi0gICAgICAgIFJhaXNlczoKLSAgICAgICAgICAgIENvbm5lY3Rp
b25UZXJtaW5hdGVkRXhjZXB0aW9uOiB3aGVuIHJlYWQgcmV0dXJucyBlbXB0eSBzdHJpbmcuCi0g
ICAgICAgICIiIgotCi0gICAgICAgIHRyeToKLSAgICAgICAgICAgIHJlYWRfYnl0ZXMgPSBzZWxm
Ll9yZXF1ZXN0LmNvbm5lY3Rpb24ucmVhZChsZW5ndGgpCi0gICAgICAgICAgICBpZiBub3QgcmVh
ZF9ieXRlczoKLSAgICAgICAgICAgICAgICByYWlzZSBDb25uZWN0aW9uVGVybWluYXRlZEV4Y2Vw
dGlvbigKLSAgICAgICAgICAgICAgICAgICAgJ1JlY2VpdmluZyAlZCBieXRlIGZhaWxlZC4gUGVl
ciAoJXIpIGNsb3NlZCBjb25uZWN0aW9uJyAlCi0gICAgICAgICAgICAgICAgICAgIChsZW5ndGgs
IChzZWxmLl9yZXF1ZXN0LmNvbm5lY3Rpb24ucmVtb3RlX2FkZHIsKSkpCi0gICAgICAgICAgICBy
ZXR1cm4gcmVhZF9ieXRlcwotICAgICAgICBleGNlcHQgc29ja2V0LmVycm9yLCBlOgotICAgICAg
ICAgICAgIyBDYXRjaCBhIHNvY2tldC5lcnJvci4gQmVjYXVzZSBpdCdzIG5vdCBhIGNoaWxkIGNs
YXNzIG9mIHRoZQotICAgICAgICAgICAgIyBJT0Vycm9yIHByaW9yIHRvIFB5dGhvbiAyLjYsIHdl
IGNhbm5vdCBvbWl0IHRoaXMgZXhjZXB0IGNsYXVzZS4KLSAgICAgICAgICAgICMgVXNlICVzIHJh
dGhlciB0aGFuICVyIGZvciB0aGUgZXhjZXB0aW9uIHRvIHVzZSBodW1hbiBmcmllbmRseQotICAg
ICAgICAgICAgIyBmb3JtYXQuCi0gICAgICAgICAgICByYWlzZSBDb25uZWN0aW9uVGVybWluYXRl
ZEV4Y2VwdGlvbigKLSAgICAgICAgICAgICAgICAnUmVjZWl2aW5nICVkIGJ5dGUgZmFpbGVkLiBz
b2NrZXQuZXJyb3IgKCVzKSBvY2N1cnJlZCcgJQotICAgICAgICAgICAgICAgIChsZW5ndGgsIGUp
KQotICAgICAgICBleGNlcHQgSU9FcnJvciwgZToKLSAgICAgICAgICAgICMgQWxzbyBjYXRjaCBh
biBJT0Vycm9yIGJlY2F1c2UgbW9kX3B5dGhvbiB0aHJvd3MgaXQuCi0gICAgICAgICAgICByYWlz
ZSBDb25uZWN0aW9uVGVybWluYXRlZEV4Y2VwdGlvbigKLSAgICAgICAgICAgICAgICAnUmVjZWl2
aW5nICVkIGJ5dGUgZmFpbGVkLiBJT0Vycm9yICglcykgb2NjdXJyZWQnICUKLSAgICAgICAgICAg
ICAgICAobGVuZ3RoLCBlKSkKLQotICAgIGRlZiBfd3JpdGUoc2VsZiwgYnl0ZXNfdG9fd3JpdGUp
OgotICAgICAgICAiIiJXcml0ZXMgZ2l2ZW4gYnl0ZXMgdG8gY29ubmVjdGlvbi4gSW4gY2FzZSB3
ZSBjYXRjaCBhbnkgZXhjZXB0aW9uLAotICAgICAgICBwcmVwZW5kcyByZW1vdGUgYWRkcmVzcyB0
byB0aGUgZXhjZXB0aW9uIG1lc3NhZ2UgYW5kIHJhaXNlIGFnYWluLgotICAgICAgICAiIiIKLQot
ICAgICAgICB0cnk6Ci0gICAgICAgICAgICBzZWxmLl9yZXF1ZXN0LmNvbm5lY3Rpb24ud3JpdGUo
Ynl0ZXNfdG9fd3JpdGUpCi0gICAgICAgIGV4Y2VwdCBFeGNlcHRpb24sIGU6Ci0gICAgICAgICAg
ICB1dGlsLnByZXBlbmRfbWVzc2FnZV90b19leGNlcHRpb24oCi0gICAgICAgICAgICAgICAgICAg
ICdGYWlsZWQgdG8gc2VuZCBtZXNzYWdlIHRvICVyOiAnICUKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAoc2VsZi5fcmVxdWVzdC5jb25uZWN0aW9uLnJlbW90ZV9hZGRyLCksCi0gICAgICAg
ICAgICAgICAgICAgIGUpCi0gICAgICAgICAgICByYWlzZQotCi0gICAgZGVmIHJlY2VpdmVfYnl0
ZXMoc2VsZiwgbGVuZ3RoKToKLSAgICAgICAgIiIiUmVjZWl2ZXMgbXVsdGlwbGUgYnl0ZXMuIFJl
dHJpZXMgcmVhZCB3aGVuIHdlIGNvdWxkbid0IHJlY2VpdmUgdGhlCi0gICAgICAgIHNwZWNpZmll
ZCBhbW91bnQuCi0KLSAgICAgICAgUmFpc2VzOgotICAgICAgICAgICAgQ29ubmVjdGlvblRlcm1p
bmF0ZWRFeGNlcHRpb246IHdoZW4gcmVhZCByZXR1cm5zIGVtcHR5IHN0cmluZy4KLSAgICAgICAg
IiIiCi0KLSAgICAgICAgcmVhZF9ieXRlcyA9IFtdCi0gICAgICAgIHdoaWxlIGxlbmd0aCA+IDA6
Ci0gICAgICAgICAgICBuZXdfcmVhZF9ieXRlcyA9IHNlbGYuX3JlYWQobGVuZ3RoKQotICAgICAg
ICAgICAgcmVhZF9ieXRlcy5hcHBlbmQobmV3X3JlYWRfYnl0ZXMpCi0gICAgICAgICAgICBsZW5n
dGggLT0gbGVuKG5ld19yZWFkX2J5dGVzKQotICAgICAgICByZXR1cm4gJycuam9pbihyZWFkX2J5
dGVzKQotCi0gICAgZGVmIF9yZWFkX3VudGlsKHNlbGYsIGRlbGltX2NoYXIpOgotICAgICAgICAi
IiJSZWFkcyBieXRlcyB1bnRpbCB3ZSBlbmNvdW50ZXIgZGVsaW1fY2hhci4gVGhlIHJlc3VsdCB3
aWxsIG5vdAotICAgICAgICBjb250YWluIGRlbGltX2NoYXIuCi0KLSAgICAgICAgUmFpc2VzOgot
ICAgICAgICAgICAgQ29ubmVjdGlvblRlcm1pbmF0ZWRFeGNlcHRpb246IHdoZW4gcmVhZCByZXR1
cm5zIGVtcHR5IHN0cmluZy4KLSAgICAgICAgIiIiCi0KLSAgICAgICAgcmVhZF9ieXRlcyA9IFtd
Ci0gICAgICAgIHdoaWxlIFRydWU6Ci0gICAgICAgICAgICBjaCA9IHNlbGYuX3JlYWQoMSkKLSAg
ICAgICAgICAgIGlmIGNoID09IGRlbGltX2NoYXI6Ci0gICAgICAgICAgICAgICAgYnJlYWsKLSAg
ICAgICAgICAgIHJlYWRfYnl0ZXMuYXBwZW5kKGNoKQotICAgICAgICByZXR1cm4gJycuam9pbihy
ZWFkX2J5dGVzKQotCi0KLSMgdmk6c3RzPTQgc3c9NCBldApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9zcmMv
bW9kX3B5d2Vic29ja2V0L19zdHJlYW1faGl4aWU3NS5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3JjL21vZF9weXdlYnNv
Y2tldC9fc3RyZWFtX2hpeGllNzUucHkKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDk0
Y2Y1YjMxYmEwZmMzYzNhMzQ3N2RlODIyOTdhMGMyNmRhMWM0OGMuLjAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9zcmMvbW9kX3B5d2Vic29ja2V0L19z
dHJlYW1faGl4aWU3NS5weQorKysgL2Rldi9udWxsCkBAIC0xLDIyOSArMCwwIEBACi0jIENvcHly
aWdodCAyMDExLCBHb29nbGUgSW5jLgotIyBBbGwgcmlnaHRzIHJlc2VydmVkLgotIwotIyBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKLSMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zIGFyZQotIyBtZXQ6Ci0jCi0jICAgICAqIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0jIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
LSMgICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZQotIyBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCi0jIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKLSMgZGlzdHJpYnV0aW9uLgotIyAgICAg
KiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCi0j
IGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMg
ZGVyaXZlZCBmcm9tCi0jIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0
dGVuIHBlcm1pc3Npb24uCi0jCi0jIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENP
UFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKLSMgIkFTIElTIiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKLSMgTElNSVRFRCBU
TywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SCi0jIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBUSEUgQ09QWVJJR0hUCi0jIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAotIyBTUEVDSUFMLCBFWEVNUExBUlks
IE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCi0jIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLAotIyBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkKLSMgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotIyAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSMgT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KLQotCi0iIiJUaGlzIGZpbGUgcHJvdmlkZXMgYSBjbGFzcyBmb3IgcGFyc2luZy9i
dWlsZGluZyBmcmFtZXMgb2YgdGhlIFdlYlNvY2tldAotcHJvdG9jb2wgdmVyc2lvbiBIeUJpIDAw
IGFuZCBIaXhpZSA3NS4KLQotU3BlY2lmaWNhdGlvbjoKLS0gSHlCaSAwMCBodHRwOi8vdG9vbHMu
aWV0Zi5vcmcvaHRtbC9kcmFmdC1pZXRmLWh5YmktdGhld2Vic29ja2V0cHJvdG9jb2wtMDAKLS0g
SGl4aWUgNzUgaHR0cDovL3Rvb2xzLmlldGYub3JnL2h0bWwvZHJhZnQtaGl4aWUtdGhld2Vic29j
a2V0cHJvdG9jb2wtNzUKLSIiIgotCi0KLWZyb20gbW9kX3B5d2Vic29ja2V0IGltcG9ydCBjb21t
b24KLWZyb20gbW9kX3B5d2Vic29ja2V0Ll9zdHJlYW1fYmFzZSBpbXBvcnQgQmFkT3BlcmF0aW9u
RXhjZXB0aW9uCi1mcm9tIG1vZF9weXdlYnNvY2tldC5fc3RyZWFtX2Jhc2UgaW1wb3J0IENvbm5l
Y3Rpb25UZXJtaW5hdGVkRXhjZXB0aW9uCi1mcm9tIG1vZF9weXdlYnNvY2tldC5fc3RyZWFtX2Jh
c2UgaW1wb3J0IEludmFsaWRGcmFtZUV4Y2VwdGlvbgotZnJvbSBtb2RfcHl3ZWJzb2NrZXQuX3N0
cmVhbV9iYXNlIGltcG9ydCBTdHJlYW1CYXNlCi1mcm9tIG1vZF9weXdlYnNvY2tldC5fc3RyZWFt
X2Jhc2UgaW1wb3J0IFVuc3VwcG9ydGVkRnJhbWVFeGNlcHRpb24KLWZyb20gbW9kX3B5d2Vic29j
a2V0IGltcG9ydCB1dGlsCi0KLQotY2xhc3MgU3RyZWFtSGl4aWU3NShTdHJlYW1CYXNlKToKLSAg
ICAiIiJBIGNsYXNzIGZvciBwYXJzaW5nL2J1aWxkaW5nIGZyYW1lcyBvZiB0aGUgV2ViU29ja2V0
IHByb3RvY29sIHZlcnNpb24KLSAgICBIeUJpIDAwIGFuZCBIaXhpZSA3NS4KLSAgICAiIiIKLQot
ICAgIGRlZiBfX2luaXRfXyhzZWxmLCByZXF1ZXN0LCBlbmFibGVfY2xvc2luZ19oYW5kc2hha2U9
RmFsc2UpOgotICAgICAgICAiIiJDb25zdHJ1Y3QgYW4gaW5zdGFuY2UuCi0KLSAgICAgICAgQXJn
czoKLSAgICAgICAgICAgIHJlcXVlc3Q6IG1vZF9weXRob24gcmVxdWVzdC4KLSAgICAgICAgICAg
IGVuYWJsZV9jbG9zaW5nX2hhbmRzaGFrZTogdG8gbGV0IFN0cmVhbUhpeGllNzUgcGVyZm9ybSBj
bG9zaW5nCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRzaGFrZSBh
cyBzcGVjaWZpZWQgaW4gSHlCaSAwMCwgc2V0Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHRoaXMgb3B0aW9uIHRvIFRydWUuCi0gICAgICAgICIiIgotCi0gICAgICAgIFN0
cmVhbUJhc2UuX19pbml0X18oc2VsZiwgcmVxdWVzdCkKLQotICAgICAgICBzZWxmLl9sb2dnZXIg
PSB1dGlsLmdldF9jbGFzc19sb2dnZXIoc2VsZikKLQotICAgICAgICBzZWxmLl9lbmFibGVfY2xv
c2luZ19oYW5kc2hha2UgPSBlbmFibGVfY2xvc2luZ19oYW5kc2hha2UKLQotICAgICAgICBzZWxm
Ll9yZXF1ZXN0LmNsaWVudF90ZXJtaW5hdGVkID0gRmFsc2UKLSAgICAgICAgc2VsZi5fcmVxdWVz
dC5zZXJ2ZXJfdGVybWluYXRlZCA9IEZhbHNlCi0KLSAgICBkZWYgc2VuZF9tZXNzYWdlKHNlbGYs
IG1lc3NhZ2UsIGVuZD1UcnVlLCBiaW5hcnk9RmFsc2UpOgotICAgICAgICAiIiJTZW5kIG1lc3Nh
Z2UuCi0KLSAgICAgICAgQXJnczoKLSAgICAgICAgICAgIG1lc3NhZ2U6IHVuaWNvZGUgc3RyaW5n
IHRvIHNlbmQuCi0gICAgICAgICAgICBiaW5hcnk6IG5vdCB1c2VkIGluIGhpeGllNzUuCi0KLSAg
ICAgICAgUmFpc2VzOgotICAgICAgICAgICAgQmFkT3BlcmF0aW9uRXhjZXB0aW9uOiB3aGVuIGNh
bGxlZCBvbiBhIHNlcnZlci10ZXJtaW5hdGVkCi0gICAgICAgICAgICAgICAgY29ubmVjdGlvbi4K
LSAgICAgICAgIiIiCi0KLSAgICAgICAgaWYgbm90IGVuZDoKLSAgICAgICAgICAgIHJhaXNlIEJh
ZE9wZXJhdGlvbkV4Y2VwdGlvbigKLSAgICAgICAgICAgICAgICAnU3RyZWFtSGl4aWU3NSBkb2Vz
blwndCBzdXBwb3J0IHNlbmRfbWVzc2FnZSB3aXRoIGVuZD1GYWxzZScpCi0KLSAgICAgICAgaWYg
YmluYXJ5OgotICAgICAgICAgICAgcmFpc2UgQmFkT3BlcmF0aW9uRXhjZXB0aW9uKAotICAgICAg
ICAgICAgICAgICdTdHJlYW1IaXhpZTc1IGRvZXNuXCd0IHN1cHBvcnQgc2VuZF9tZXNzYWdlIHdp
dGggYmluYXJ5PVRydWUnKQotCi0gICAgICAgIGlmIHNlbGYuX3JlcXVlc3Quc2VydmVyX3Rlcm1p
bmF0ZWQ6Ci0gICAgICAgICAgICByYWlzZSBCYWRPcGVyYXRpb25FeGNlcHRpb24oCi0gICAgICAg
ICAgICAgICAgJ1JlcXVlc3RlZCBzZW5kX21lc3NhZ2UgYWZ0ZXIgc2VuZGluZyBvdXQgYSBjbG9z
aW5nIGhhbmRzaGFrZScpCi0KLSAgICAgICAgc2VsZi5fd3JpdGUoJycuam9pbihbJ1x4MDAnLCBt
ZXNzYWdlLmVuY29kZSgndXRmLTgnKSwgJ1x4ZmYnXSkpCi0KLSAgICBkZWYgX3JlYWRfcGF5bG9h
ZF9sZW5ndGhfaGl4aWU3NShzZWxmKToKLSAgICAgICAgIiIiUmVhZHMgYSBsZW5ndGggaGVhZGVy
IGluIGEgSGl4aWU3NSB2ZXJzaW9uIGZyYW1lIHdpdGggbGVuZ3RoLgotCi0gICAgICAgIFJhaXNl
czoKLSAgICAgICAgICAgIENvbm5lY3Rpb25UZXJtaW5hdGVkRXhjZXB0aW9uOiB3aGVuIHJlYWQg
cmV0dXJucyBlbXB0eSBzdHJpbmcuCi0gICAgICAgICIiIgotCi0gICAgICAgIGxlbmd0aCA9IDAK
LSAgICAgICAgd2hpbGUgVHJ1ZToKLSAgICAgICAgICAgIGJfc3RyID0gc2VsZi5fcmVhZCgxKQot
ICAgICAgICAgICAgYiA9IG9yZChiX3N0cikKLSAgICAgICAgICAgIGxlbmd0aCA9IGxlbmd0aCAq
IDEyOCArIChiICYgMHg3ZikKLSAgICAgICAgICAgIGlmIChiICYgMHg4MCkgPT0gMDoKLSAgICAg
ICAgICAgICAgICBicmVhawotICAgICAgICByZXR1cm4gbGVuZ3RoCi0KLSAgICBkZWYgcmVjZWl2
ZV9tZXNzYWdlKHNlbGYpOgotICAgICAgICAiIiJSZWNlaXZlIGEgV2ViU29ja2V0IGZyYW1lIGFu
ZCByZXR1cm4gaXRzIHBheWxvYWQgYW4gdW5pY29kZSBzdHJpbmcuCi0KLSAgICAgICAgUmV0dXJu
czoKLSAgICAgICAgICAgIHBheWxvYWQgdW5pY29kZSBzdHJpbmcgaW4gYSBXZWJTb2NrZXQgZnJh
bWUuCi0KLSAgICAgICAgUmFpc2VzOgotICAgICAgICAgICAgQ29ubmVjdGlvblRlcm1pbmF0ZWRF
eGNlcHRpb246IHdoZW4gcmVhZCByZXR1cm5zIGVtcHR5Ci0gICAgICAgICAgICAgICAgc3RyaW5n
LgotICAgICAgICAgICAgQmFkT3BlcmF0aW9uRXhjZXB0aW9uOiB3aGVuIGNhbGxlZCBvbiBhIGNs
aWVudC10ZXJtaW5hdGVkCi0gICAgICAgICAgICAgICAgY29ubmVjdGlvbi4KLSAgICAgICAgIiIi
Ci0KLSAgICAgICAgaWYgc2VsZi5fcmVxdWVzdC5jbGllbnRfdGVybWluYXRlZDoKLSAgICAgICAg
ICAgIHJhaXNlIEJhZE9wZXJhdGlvbkV4Y2VwdGlvbigKLSAgICAgICAgICAgICAgICAnUmVxdWVz
dGVkIHJlY2VpdmVfbWVzc2FnZSBhZnRlciByZWNlaXZpbmcgYSBjbG9zaW5nICcKLSAgICAgICAg
ICAgICAgICAnaGFuZHNoYWtlJykKLQotICAgICAgICB3aGlsZSBUcnVlOgotICAgICAgICAgICAg
IyBSZWFkIDEgYnl0ZS4KLSAgICAgICAgICAgICMgbXBfY29ubi5yZWFkIHdpbGwgYmxvY2sgaWYg
bm8gYnl0ZXMgYXJlIGF2YWlsYWJsZS4KLSAgICAgICAgICAgICMgVGltZW91dCBpcyBjb250cm9s
bGVkIGJ5IFRpbWVPdXQgZGlyZWN0aXZlIG9mIEFwYWNoZS4KLSAgICAgICAgICAgIGZyYW1lX3R5
cGVfc3RyID0gc2VsZi5yZWNlaXZlX2J5dGVzKDEpCi0gICAgICAgICAgICBmcmFtZV90eXBlID0g
b3JkKGZyYW1lX3R5cGVfc3RyKQotICAgICAgICAgICAgaWYgKGZyYW1lX3R5cGUgJiAweDgwKSA9
PSAweDgwOgotICAgICAgICAgICAgICAgICMgVGhlIHBheWxvYWQgbGVuZ3RoIGlzIHNwZWNpZmll
ZCBpbiB0aGUgZnJhbWUuCi0gICAgICAgICAgICAgICAgIyBSZWFkIGFuZCBkaXNjYXJkLgotICAg
ICAgICAgICAgICAgIGxlbmd0aCA9IHNlbGYuX3JlYWRfcGF5bG9hZF9sZW5ndGhfaGl4aWU3NSgp
Ci0gICAgICAgICAgICAgICAgaWYgbGVuZ3RoID4gMDoKLSAgICAgICAgICAgICAgICAgICAgXyA9
IHNlbGYucmVjZWl2ZV9ieXRlcyhsZW5ndGgpCi0gICAgICAgICAgICAgICAgIyA1LjMgMy4gMTIu
IGlmIC90eXBlLyBpcyAweEZGIGFuZCAvbGVuZ3RoLyBpcyAwLCB0aGVuIHNldCB0aGUKLSAgICAg
ICAgICAgICAgICAjIC9jbGllbnQgdGVybWluYXRlZC8gZmxhZyBhbmQgYWJvcnQgdGhlc2Ugc3Rl
cHMuCi0gICAgICAgICAgICAgICAgaWYgbm90IHNlbGYuX2VuYWJsZV9jbG9zaW5nX2hhbmRzaGFr
ZToKLSAgICAgICAgICAgICAgICAgICAgY29udGludWUKLQotICAgICAgICAgICAgICAgIGlmIGZy
YW1lX3R5cGUgPT0gMHhGRiBhbmQgbGVuZ3RoID09IDA6Ci0gICAgICAgICAgICAgICAgICAgIHNl
bGYuX3JlcXVlc3QuY2xpZW50X3Rlcm1pbmF0ZWQgPSBUcnVlCi0KLSAgICAgICAgICAgICAgICAg
ICAgaWYgc2VsZi5fcmVxdWVzdC5zZXJ2ZXJfdGVybWluYXRlZDoKLSAgICAgICAgICAgICAgICAg
ICAgICAgIHNlbGYuX2xvZ2dlci5kZWJ1ZygKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAn
UmVjZWl2ZWQgYWNrIGZvciBzZXJ2ZXItaW5pdGlhdGVkIGNsb3NpbmcgJwotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICdoYW5kc2hha2UnKQotICAgICAgICAgICAgICAgICAgICAgICAgcmV0
dXJuIE5vbmUKLQotICAgICAgICAgICAgICAgICAgICBzZWxmLl9sb2dnZXIuZGVidWcoCi0gICAg
ICAgICAgICAgICAgICAgICAgICAnUmVjZWl2ZWQgY2xpZW50LWluaXRpYXRlZCBjbG9zaW5nIGhh
bmRzaGFrZScpCi0KLSAgICAgICAgICAgICAgICAgICAgc2VsZi5fc2VuZF9jbG9zaW5nX2hhbmRz
aGFrZSgpCi0gICAgICAgICAgICAgICAgICAgIHNlbGYuX2xvZ2dlci5kZWJ1ZygKLSAgICAgICAg
ICAgICAgICAgICAgICAgICdTZW50IGFjayBmb3IgY2xpZW50LWluaXRpYXRlZCBjbG9zaW5nIGhh
bmRzaGFrZScpCi0gICAgICAgICAgICAgICAgICAgIHJldHVybiBOb25lCi0gICAgICAgICAgICBl
bHNlOgotICAgICAgICAgICAgICAgICMgVGhlIHBheWxvYWQgaXMgZGVsaW1pdGVkIHdpdGggXHhm
Zi4KLSAgICAgICAgICAgICAgICBieXRlcyA9IHNlbGYuX3JlYWRfdW50aWwoJ1x4ZmYnKQotICAg
ICAgICAgICAgICAgICMgVGhlIFdlYlNvY2tldCBwcm90b2NvbCBzZWN0aW9uIDQuNCBzcGVjaWZp
ZXMgdGhhdCBpbnZhbGlkCi0gICAgICAgICAgICAgICAgIyBjaGFyYWN0ZXJzIG11c3QgYmUgcmVw
bGFjZWQgd2l0aCBVK2ZmZmQgUkVQTEFDRU1FTlQKLSAgICAgICAgICAgICAgICAjIENIQVJBQ1RF
Ui4KLSAgICAgICAgICAgICAgICBtZXNzYWdlID0gYnl0ZXMuZGVjb2RlKCd1dGYtOCcsICdyZXBs
YWNlJykKLSAgICAgICAgICAgICAgICBpZiBmcmFtZV90eXBlID09IDB4MDA6Ci0gICAgICAgICAg
ICAgICAgICAgIHJldHVybiBtZXNzYWdlCi0gICAgICAgICAgICAgICAgIyBEaXNjYXJkIGRhdGEg
b2Ygb3RoZXIgdHlwZXMuCi0KLSAgICBkZWYgX3NlbmRfY2xvc2luZ19oYW5kc2hha2Uoc2VsZik6
Ci0gICAgICAgIGlmIG5vdCBzZWxmLl9lbmFibGVfY2xvc2luZ19oYW5kc2hha2U6Ci0gICAgICAg
ICAgICByYWlzZSBCYWRPcGVyYXRpb25FeGNlcHRpb24oCi0gICAgICAgICAgICAgICAgJ0Nsb3Np
bmcgaGFuZHNoYWtlIGlzIG5vdCBzdXBwb3J0ZWQgaW4gSGl4aWUgNzUgcHJvdG9jb2wnKQotCi0g
ICAgICAgIHNlbGYuX3JlcXVlc3Quc2VydmVyX3Rlcm1pbmF0ZWQgPSBUcnVlCi0KLSAgICAgICAg
IyA1LjMgdGhlIHNlcnZlciBtYXkgZGVjaWRlIHRvIHRlcm1pbmF0ZSB0aGUgV2ViU29ja2V0IGNv
bm5lY3Rpb24gYnkKLSAgICAgICAgIyBydW5uaW5nIHRocm91Z2ggdGhlIGZvbGxvd2luZyBzdGVw
czoKLSAgICAgICAgIyAxLiBzZW5kIGEgMHhGRiBieXRlIGFuZCBhIDB4MDAgYnl0ZSB0byB0aGUg
Y2xpZW50IHRvIGluZGljYXRlIHRoZQotICAgICAgICAjIHN0YXJ0IG9mIHRoZSBjbG9zaW5nIGhh
bmRzaGFrZS4KLSAgICAgICAgc2VsZi5fd3JpdGUoJ1x4ZmZceDAwJykKLQotICAgIGRlZiBjbG9z
ZV9jb25uZWN0aW9uKHNlbGYsIHVudXNlZF9jb2RlPScnLCB1bnVzZWRfcmVhc29uPScnKToKLSAg
ICAgICAgIiIiQ2xvc2VzIGEgV2ViU29ja2V0IGNvbm5lY3Rpb24uCi0KLSAgICAgICAgUmFpc2Vz
OgotICAgICAgICAgICAgQ29ubmVjdGlvblRlcm1pbmF0ZWRFeGNlcHRpb246IHdoZW4gY2xvc2lu
ZyBoYW5kc2hha2Ugd2FzCi0gICAgICAgICAgICAgICAgbm90IHN1Y2Nlc3NmdWxsLgotICAgICAg
ICAiIiIKLQotICAgICAgICBpZiBzZWxmLl9yZXF1ZXN0LnNlcnZlcl90ZXJtaW5hdGVkOgotICAg
ICAgICAgICAgc2VsZi5fbG9nZ2VyLmRlYnVnKAotICAgICAgICAgICAgICAgICdSZXF1ZXN0ZWQg
Y2xvc2VfY29ubmVjdGlvbiBidXQgc2VydmVyIGlzIGFscmVhZHkgdGVybWluYXRlZCcpCi0gICAg
ICAgICAgICByZXR1cm4KLQotICAgICAgICBpZiBub3Qgc2VsZi5fZW5hYmxlX2Nsb3NpbmdfaGFu
ZHNoYWtlOgotICAgICAgICAgICAgc2VsZi5fcmVxdWVzdC5zZXJ2ZXJfdGVybWluYXRlZCA9IFRy
dWUKLSAgICAgICAgICAgIHNlbGYuX2xvZ2dlci5kZWJ1ZygnQ29ubmVjdGlvbiBjbG9zZWQnKQot
ICAgICAgICAgICAgcmV0dXJuCi0KLSAgICAgICAgc2VsZi5fc2VuZF9jbG9zaW5nX2hhbmRzaGFr
ZSgpCi0gICAgICAgIHNlbGYuX2xvZ2dlci5kZWJ1ZygnU2VudCBzZXJ2ZXItaW5pdGlhdGVkIGNs
b3NpbmcgaGFuZHNoYWtlJykKLQotICAgICAgICAjIFRPRE8odWthaSk6IDIuIHdhaXQgdW50aWwg
dGhlIC9jbGllbnQgdGVybWluYXRlZC8gZmxhZyBoYXMgYmVlbiBzZXQsCi0gICAgICAgICMgb3Ig
dW50aWwgYSBzZXJ2ZXItZGVmaW5lZCB0aW1lb3V0IGV4cGlyZXMuCi0gICAgICAgICMKLSAgICAg
ICAgIyBGb3Igbm93LCB3ZSBleHBlY3QgcmVjZWl2aW5nIGNsb3NpbmcgaGFuZHNoYWtlIHJpZ2h0
IGFmdGVyIHNlbmRpbmcKLSAgICAgICAgIyBvdXQgY2xvc2luZyBoYW5kc2hha2UsIGFuZCBpZiB3
ZSBjb3VsZG4ndCByZWNlaXZlIG5vbi1oYW5kc2hha2UKLSAgICAgICAgIyBmcmFtZSwgd2UgdGFr
ZSBpdCBhcyBDb25uZWN0aW9uVGVybWluYXRlZEV4Y2VwdGlvbi4KLSAgICAgICAgbWVzc2FnZSA9
IHNlbGYucmVjZWl2ZV9tZXNzYWdlKCkKLSAgICAgICAgaWYgbWVzc2FnZSBpcyBub3QgTm9uZToK
LSAgICAgICAgICAgIHJhaXNlIENvbm5lY3Rpb25UZXJtaW5hdGVkRXhjZXB0aW9uKAotICAgICAg
ICAgICAgICAgICdEaWRuXCd0IHJlY2VpdmUgdmFsaWQgYWNrIGZvciBjbG9zaW5nIGhhbmRzaGFr
ZScpCi0gICAgICAgICMgVE9ETzogMy4gY2xvc2UgdGhlIFdlYlNvY2tldCBjb25uZWN0aW9uLgot
ICAgICAgICAjIG5vdGU6IG1vZF9weXRob24gQ29ubmVjdGlvbiAobXBfY29ubikgZG9lc24ndCBo
YXZlIGNsb3NlIG1ldGhvZC4KLQotICAgIGRlZiBzZW5kX3Bpbmcoc2VsZiwgYm9keSk6Ci0gICAg
ICAgIHJhaXNlIEJhZE9wZXJhdGlvbkV4Y2VwdGlvbigKLSAgICAgICAgICAgICdTdHJlYW1IaXhp
ZTc1IGRvZXNuXCd0IHN1cHBvcnQgc2VuZF9waW5nJykKLQotCi0jIHZpOnN0cz00IHN3PTQgZXQK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvcHl3ZWJzb2NrZXQvc3JjL21vZF9weXdlYnNvY2tldC9fc3RyZWFtX2h5YmkucHkgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29j
a2V0L3NyYy9tb2RfcHl3ZWJzb2NrZXQvX3N0cmVhbV9oeWJpLnB5CmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCBhOGE0OWUzYzNkYzk1YmE5ZjdmZDQxMjg5MzgzZmUwN2FmZGQ1NzdmLi4w
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3JjL21v
ZF9weXdlYnNvY2tldC9fc3RyZWFtX2h5YmkucHkKKysrIC9kZXYvbnVsbApAQCAtMSw4ODcgKzAs
MCBAQAotIyBDb3B5cmlnaHQgMjAxMiwgR29vZ2xlIEluYy4KLSMgQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KLSMKLSMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0Ci0jIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKLSMgbWV0OgotIwotIyAgICAgKiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAotIyBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCi0jICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUKLSMgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgotIyBpbiB0aGUgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCi0jIGRpc3RyaWJ1
dGlvbi4KLSMgICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5h
bWVzIG9mIGl0cwotIyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9t
b3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQotIyB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lm
aWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgotIwotIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCi0jICJBUyBJUyIg
QU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
Ci0jIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUgotIyBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAotIyBPV05FUiBPUiBDT05UUklCVVRPUlMg
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKLSMgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VAotIyBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwKLSMgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCi0jIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSMgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFCi0jIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0KLQotIiIiVGhpcyBmaWxlIHByb3ZpZGVzIGNsYXNzZXMg
YW5kIGhlbHBlciBmdW5jdGlvbnMgZm9yIHBhcnNpbmcvYnVpbGRpbmcgZnJhbWVzCi1vZiB0aGUg
V2ViU29ja2V0IHByb3RvY29sIChSRkMgNjQ1NSkuCi0KLVNwZWNpZmljYXRpb246Ci1odHRwOi8v
dG9vbHMuaWV0Zi5vcmcvaHRtbC9yZmM2NDU1Ci0iIiIKLQotCi1mcm9tIGNvbGxlY3Rpb25zIGlt
cG9ydCBkZXF1ZQotaW1wb3J0IGxvZ2dpbmcKLWltcG9ydCBvcwotaW1wb3J0IHN0cnVjdAotaW1w
b3J0IHRpbWUKLQotZnJvbSBtb2RfcHl3ZWJzb2NrZXQgaW1wb3J0IGNvbW1vbgotZnJvbSBtb2Rf
cHl3ZWJzb2NrZXQgaW1wb3J0IHV0aWwKLWZyb20gbW9kX3B5d2Vic29ja2V0Ll9zdHJlYW1fYmFz
ZSBpbXBvcnQgQmFkT3BlcmF0aW9uRXhjZXB0aW9uCi1mcm9tIG1vZF9weXdlYnNvY2tldC5fc3Ry
ZWFtX2Jhc2UgaW1wb3J0IENvbm5lY3Rpb25UZXJtaW5hdGVkRXhjZXB0aW9uCi1mcm9tIG1vZF9w
eXdlYnNvY2tldC5fc3RyZWFtX2Jhc2UgaW1wb3J0IEludmFsaWRGcmFtZUV4Y2VwdGlvbgotZnJv
bSBtb2RfcHl3ZWJzb2NrZXQuX3N0cmVhbV9iYXNlIGltcG9ydCBJbnZhbGlkVVRGOEV4Y2VwdGlv
bgotZnJvbSBtb2RfcHl3ZWJzb2NrZXQuX3N0cmVhbV9iYXNlIGltcG9ydCBTdHJlYW1CYXNlCi1m
cm9tIG1vZF9weXdlYnNvY2tldC5fc3RyZWFtX2Jhc2UgaW1wb3J0IFVuc3VwcG9ydGVkRnJhbWVF
eGNlcHRpb24KLQotCi1fTk9PUF9NQVNLRVIgPSB1dGlsLk5vb3BNYXNrZXIoKQotCi0KLWNsYXNz
IEZyYW1lKG9iamVjdCk6Ci0KLSAgICBkZWYgX19pbml0X18oc2VsZiwgZmluPTEsIHJzdjE9MCwg
cnN2Mj0wLCByc3YzPTAsCi0gICAgICAgICAgICAgICAgIG9wY29kZT1Ob25lLCBwYXlsb2FkPScn
KToKLSAgICAgICAgc2VsZi5maW4gPSBmaW4KLSAgICAgICAgc2VsZi5yc3YxID0gcnN2MQotICAg
ICAgICBzZWxmLnJzdjIgPSByc3YyCi0gICAgICAgIHNlbGYucnN2MyA9IHJzdjMKLSAgICAgICAg
c2VsZi5vcGNvZGUgPSBvcGNvZGUKLSAgICAgICAgc2VsZi5wYXlsb2FkID0gcGF5bG9hZAotCi0K
LSMgSGVscGVyIGZ1bmN0aW9ucyBtYWRlIHB1YmxpYyB0byBiZSB1c2VkIGZvciB3cml0aW5nIHVu
aXR0ZXN0cyBmb3IgV2ViU29ja2V0Ci0jIGNsaWVudHMuCi0KLQotZGVmIGNyZWF0ZV9sZW5ndGhf
aGVhZGVyKGxlbmd0aCwgbWFzayk6Ci0gICAgIiIiQ3JlYXRlcyBhIGxlbmd0aCBoZWFkZXIuCi0K
LSAgICBBcmdzOgotICAgICAgICBsZW5ndGg6IEZyYW1lIGxlbmd0aC4gTXVzdCBiZSBsZXNzIHRo
YW4gMl42My4KLSAgICAgICAgbWFzazogTWFzayBiaXQuIE11c3QgYmUgYm9vbGVhbi4KLQotICAg
IFJhaXNlczoKLSAgICAgICAgVmFsdWVFcnJvcjogd2hlbiBiYWQgZGF0YSBpcyBnaXZlbi4KLSAg
ICAiIiIKLQotICAgIGlmIG1hc2s6Ci0gICAgICAgIG1hc2tfYml0ID0gMSA8PCA3Ci0gICAgZWxz
ZToKLSAgICAgICAgbWFza19iaXQgPSAwCi0KLSAgICBpZiBsZW5ndGggPCAwOgotICAgICAgICBy
YWlzZSBWYWx1ZUVycm9yKCdsZW5ndGggbXVzdCBiZSBub24gbmVnYXRpdmUgaW50ZWdlcicpCi0g
ICAgZWxpZiBsZW5ndGggPD0gMTI1OgotICAgICAgICByZXR1cm4gY2hyKG1hc2tfYml0IHwgbGVu
Z3RoKQotICAgIGVsaWYgbGVuZ3RoIDwgKDEgPDwgMTYpOgotICAgICAgICByZXR1cm4gY2hyKG1h
c2tfYml0IHwgMTI2KSArIHN0cnVjdC5wYWNrKCchSCcsIGxlbmd0aCkKLSAgICBlbGlmIGxlbmd0
aCA8ICgxIDw8IDYzKToKLSAgICAgICAgcmV0dXJuIGNocihtYXNrX2JpdCB8IDEyNykgKyBzdHJ1
Y3QucGFjaygnIVEnLCBsZW5ndGgpCi0gICAgZWxzZToKLSAgICAgICAgcmFpc2UgVmFsdWVFcnJv
cignUGF5bG9hZCBpcyB0b28gYmlnIGZvciBvbmUgZnJhbWUnKQotCi0KLWRlZiBjcmVhdGVfaGVh
ZGVyKG9wY29kZSwgcGF5bG9hZF9sZW5ndGgsIGZpbiwgcnN2MSwgcnN2MiwgcnN2MywgbWFzayk6
Ci0gICAgIiIiQ3JlYXRlcyBhIGZyYW1lIGhlYWRlci4KLQotICAgIFJhaXNlczoKLSAgICAgICAg
RXhjZXB0aW9uOiB3aGVuIGJhZCBkYXRhIGlzIGdpdmVuLgotICAgICIiIgotCi0gICAgaWYgb3Bj
b2RlIDwgMCBvciAweGYgPCBvcGNvZGU6Ci0gICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoJ09wY29k
ZSBvdXQgb2YgcmFuZ2UnKQotCi0gICAgaWYgcGF5bG9hZF9sZW5ndGggPCAwIG9yICgxIDw8IDYz
KSA8PSBwYXlsb2FkX2xlbmd0aDoKLSAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigncGF5bG9hZF9s
ZW5ndGggb3V0IG9mIHJhbmdlJykKLQotICAgIGlmIChmaW4gfCByc3YxIHwgcnN2MiB8IHJzdjMp
ICYgfjE6Ci0gICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoJ0ZJTiBiaXQgYW5kIFJlc2VydmVkIGJp
dCBwYXJhbWV0ZXIgbXVzdCBiZSAwIG9yIDEnKQotCi0gICAgaGVhZGVyID0gJycKLQotICAgIGZp
cnN0X2J5dGUgPSAoKGZpbiA8PCA3KQotICAgICAgICAgICAgICAgICAgfCAocnN2MSA8PCA2KSB8
IChyc3YyIDw8IDUpIHwgKHJzdjMgPDwgNCkKLSAgICAgICAgICAgICAgICAgIHwgb3Bjb2RlKQot
ICAgIGhlYWRlciArPSBjaHIoZmlyc3RfYnl0ZSkKLSAgICBoZWFkZXIgKz0gY3JlYXRlX2xlbmd0
aF9oZWFkZXIocGF5bG9hZF9sZW5ndGgsIG1hc2spCi0KLSAgICByZXR1cm4gaGVhZGVyCi0KLQot
ZGVmIF9idWlsZF9mcmFtZShoZWFkZXIsIGJvZHksIG1hc2spOgotICAgIGlmIG5vdCBtYXNrOgot
ICAgICAgICByZXR1cm4gaGVhZGVyICsgYm9keQotCi0gICAgbWFza2luZ19ub25jZSA9IG9zLnVy
YW5kb20oNCkKLSAgICBtYXNrZXIgPSB1dGlsLlJlcGVhdGVkWG9yTWFza2VyKG1hc2tpbmdfbm9u
Y2UpCi0KLSAgICByZXR1cm4gaGVhZGVyICsgbWFza2luZ19ub25jZSArIG1hc2tlci5tYXNrKGJv
ZHkpCi0KLQotZGVmIF9maWx0ZXJfYW5kX2Zvcm1hdF9mcmFtZV9vYmplY3QoZnJhbWUsIG1hc2ss
IGZyYW1lX2ZpbHRlcnMpOgotICAgIGZvciBmcmFtZV9maWx0ZXIgaW4gZnJhbWVfZmlsdGVyczoK
LSAgICAgICAgZnJhbWVfZmlsdGVyLmZpbHRlcihmcmFtZSkKLQotICAgIGhlYWRlciA9IGNyZWF0
ZV9oZWFkZXIoCi0gICAgICAgIGZyYW1lLm9wY29kZSwgbGVuKGZyYW1lLnBheWxvYWQpLCBmcmFt
ZS5maW4sCi0gICAgICAgIGZyYW1lLnJzdjEsIGZyYW1lLnJzdjIsIGZyYW1lLnJzdjMsIG1hc2sp
Ci0gICAgcmV0dXJuIF9idWlsZF9mcmFtZShoZWFkZXIsIGZyYW1lLnBheWxvYWQsIG1hc2spCi0K
LQotZGVmIGNyZWF0ZV9iaW5hcnlfZnJhbWUoCi0gICAgbWVzc2FnZSwgb3Bjb2RlPWNvbW1vbi5P
UENPREVfQklOQVJZLCBmaW49MSwgbWFzaz1GYWxzZSwgZnJhbWVfZmlsdGVycz1bXSk6Ci0gICAg
IiIiQ3JlYXRlcyBhIHNpbXBsZSBiaW5hcnkgZnJhbWUgd2l0aCBubyBleHRlbnNpb24sIHJlc2Vy
dmVkIGJpdC4iIiIKLQotICAgIGZyYW1lID0gRnJhbWUoZmluPWZpbiwgb3Bjb2RlPW9wY29kZSwg
cGF5bG9hZD1tZXNzYWdlKQotICAgIHJldHVybiBfZmlsdGVyX2FuZF9mb3JtYXRfZnJhbWVfb2Jq
ZWN0KGZyYW1lLCBtYXNrLCBmcmFtZV9maWx0ZXJzKQotCi0KLWRlZiBjcmVhdGVfdGV4dF9mcmFt
ZSgKLSAgICBtZXNzYWdlLCBvcGNvZGU9Y29tbW9uLk9QQ09ERV9URVhULCBmaW49MSwgbWFzaz1G
YWxzZSwgZnJhbWVfZmlsdGVycz1bXSk6Ci0gICAgIiIiQ3JlYXRlcyBhIHNpbXBsZSB0ZXh0IGZy
YW1lIHdpdGggbm8gZXh0ZW5zaW9uLCByZXNlcnZlZCBiaXQuIiIiCi0KLSAgICBlbmNvZGVkX21l
c3NhZ2UgPSBtZXNzYWdlLmVuY29kZSgndXRmLTgnKQotICAgIHJldHVybiBjcmVhdGVfYmluYXJ5
X2ZyYW1lKGVuY29kZWRfbWVzc2FnZSwgb3Bjb2RlLCBmaW4sIG1hc2ssCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgZnJhbWVfZmlsdGVycykKLQotCi1kZWYgcGFyc2VfZnJhbWUocmVj
ZWl2ZV9ieXRlcywgbG9nZ2VyPU5vbmUsCi0gICAgICAgICAgICAgICAgd3NfdmVyc2lvbj1jb21t
b24uVkVSU0lPTl9IWUJJX0xBVEVTVCwKLSAgICAgICAgICAgICAgICB1bm1hc2tfcmVjZWl2ZT1U
cnVlKToKLSAgICAiIiJQYXJzZXMgYSBmcmFtZS4gUmV0dXJucyBhIHR1cGxlIGNvbnRhaW5pbmcg
ZWFjaCBoZWFkZXIgZmllbGQgYW5kCi0gICAgcGF5bG9hZC4KLQotICAgIEFyZ3M6Ci0gICAgICAg
IHJlY2VpdmVfYnl0ZXM6IGEgZnVuY3Rpb24gdGhhdCByZWFkcyBmcmFtZSBkYXRhIGZyb20gYSBz
dHJlYW0gb3IKLSAgICAgICAgICAgIHNvbWV0aGluZyBzaW1pbGFyLiBUaGUgZnVuY3Rpb24gdGFr
ZXMgbGVuZ3RoIG9mIHRoZSBieXRlcyB0byBiZQotICAgICAgICAgICAgcmVhZC4gVGhlIGZ1bmN0
aW9uIG11c3QgcmFpc2UgQ29ubmVjdGlvblRlcm1pbmF0ZWRFeGNlcHRpb24gaWYKLSAgICAgICAg
ICAgIHRoZXJlIGlzIG5vdCBlbm91Z2ggZGF0YSB0byBiZSByZWFkLgotICAgICAgICBsb2dnZXI6
IGEgbG9nZ2luZyBvYmplY3QuCi0gICAgICAgIHdzX3ZlcnNpb246IHRoZSB2ZXJzaW9uIG9mIFdl
YlNvY2tldCBwcm90b2NvbC4KLSAgICAgICAgdW5tYXNrX3JlY2VpdmU6IHVubWFzayByZWNlaXZl
ZCBmcmFtZXMuIFdoZW4gcmVjZWl2ZWQgdW5tYXNrZWQKLSAgICAgICAgICAgIGZyYW1lLCByYWlz
ZXMgSW52YWxpZEZyYW1lRXhjZXB0aW9uLgotCi0gICAgUmFpc2VzOgotICAgICAgICBDb25uZWN0
aW9uVGVybWluYXRlZEV4Y2VwdGlvbjogd2hlbiByZWNlaXZlX2J5dGVzIHJhaXNlcyBpdC4KLSAg
ICAgICAgSW52YWxpZEZyYW1lRXhjZXB0aW9uOiB3aGVuIHRoZSBmcmFtZSBjb250YWlucyBpbnZh
bGlkIGRhdGEuCi0gICAgIiIiCi0KLSAgICBpZiBub3QgbG9nZ2VyOgotICAgICAgICBsb2dnZXIg
PSBsb2dnaW5nLmdldExvZ2dlcigpCi0KLSAgICBsb2dnZXIubG9nKGNvbW1vbi5MT0dMRVZFTF9G
SU5FLCAnUmVjZWl2ZSB0aGUgZmlyc3QgMiBvY3RldHMgb2YgYSBmcmFtZScpCi0KLSAgICByZWNl
aXZlZCA9IHJlY2VpdmVfYnl0ZXMoMikKLQotICAgIGZpcnN0X2J5dGUgPSBvcmQocmVjZWl2ZWRb
MF0pCi0gICAgZmluID0gKGZpcnN0X2J5dGUgPj4gNykgJiAxCi0gICAgcnN2MSA9IChmaXJzdF9i
eXRlID4+IDYpICYgMQotICAgIHJzdjIgPSAoZmlyc3RfYnl0ZSA+PiA1KSAmIDEKLSAgICByc3Yz
ID0gKGZpcnN0X2J5dGUgPj4gNCkgJiAxCi0gICAgb3Bjb2RlID0gZmlyc3RfYnl0ZSAmIDB4Zgot
Ci0gICAgc2Vjb25kX2J5dGUgPSBvcmQocmVjZWl2ZWRbMV0pCi0gICAgbWFzayA9IChzZWNvbmRf
Ynl0ZSA+PiA3KSAmIDEKLSAgICBwYXlsb2FkX2xlbmd0aCA9IHNlY29uZF9ieXRlICYgMHg3Zgot
Ci0gICAgbG9nZ2VyLmxvZyhjb21tb24uTE9HTEVWRUxfRklORSwKLSAgICAgICAgICAgICAgICdG
SU49JXMsIFJTVjE9JXMsIFJTVjI9JXMsIFJTVjM9JXMsIG9wY29kZT0lcywgJwotICAgICAgICAg
ICAgICAgJ01hc2s9JXMsIFBheWxvYWRfbGVuZ3RoPSVzJywKLSAgICAgICAgICAgICAgIGZpbiwg
cnN2MSwgcnN2MiwgcnN2Mywgb3Bjb2RlLCBtYXNrLCBwYXlsb2FkX2xlbmd0aCkKLQotICAgIGlm
IChtYXNrID09IDEpICE9IHVubWFza19yZWNlaXZlOgotICAgICAgICByYWlzZSBJbnZhbGlkRnJh
bWVFeGNlcHRpb24oCi0gICAgICAgICAgICAnTWFzayBiaXQgb24gdGhlIHJlY2VpdmVkIGZyYW1l
IGRpZFwnbnQgbWF0Y2ggbWFza2luZyAnCi0gICAgICAgICAgICAnY29uZmlndXJhdGlvbiBmb3Ig
cmVjZWl2ZWQgZnJhbWVzJykKLQotICAgICMgVGhlIEh5QmkgYW5kIGxhdGVyIHNwZWNzIGRpc2Fs
bG93IHB1dHRpbmcgYSB2YWx1ZSBpbiAweDAtMHhGRkZGCi0gICAgIyBpbnRvIHRoZSA4LW9jdGV0
IGV4dGVuZGVkIHBheWxvYWQgbGVuZ3RoIGZpZWxkIChvciAweDAtMHhGRCBpbgotICAgICMgMi1v
Y3RldCBmaWVsZCkuCi0gICAgdmFsaWRfbGVuZ3RoX2VuY29kaW5nID0gVHJ1ZQotICAgIGxlbmd0
aF9lbmNvZGluZ19ieXRlcyA9IDEKLSAgICBpZiBwYXlsb2FkX2xlbmd0aCA9PSAxMjc6Ci0gICAg
ICAgIGxvZ2dlci5sb2coY29tbW9uLkxPR0xFVkVMX0ZJTkUsCi0gICAgICAgICAgICAgICAgICAg
J1JlY2VpdmUgOC1vY3RldCBleHRlbmRlZCBwYXlsb2FkIGxlbmd0aCcpCi0KLSAgICAgICAgZXh0
ZW5kZWRfcGF5bG9hZF9sZW5ndGggPSByZWNlaXZlX2J5dGVzKDgpCi0gICAgICAgIHBheWxvYWRf
bGVuZ3RoID0gc3RydWN0LnVucGFjaygKLSAgICAgICAgICAgICchUScsIGV4dGVuZGVkX3BheWxv
YWRfbGVuZ3RoKVswXQotICAgICAgICBpZiBwYXlsb2FkX2xlbmd0aCA+IDB4N0ZGRkZGRkZGRkZG
RkZGRjoKLSAgICAgICAgICAgIHJhaXNlIEludmFsaWRGcmFtZUV4Y2VwdGlvbigKLSAgICAgICAg
ICAgICAgICAnRXh0ZW5kZWQgcGF5bG9hZCBsZW5ndGggPj0gMl42MycpCi0gICAgICAgIGlmIHdz
X3ZlcnNpb24gPj0gMTMgYW5kIHBheWxvYWRfbGVuZ3RoIDwgMHgxMDAwMDoKLSAgICAgICAgICAg
IHZhbGlkX2xlbmd0aF9lbmNvZGluZyA9IEZhbHNlCi0gICAgICAgICAgICBsZW5ndGhfZW5jb2Rp
bmdfYnl0ZXMgPSA4Ci0KLSAgICAgICAgbG9nZ2VyLmxvZyhjb21tb24uTE9HTEVWRUxfRklORSwK
LSAgICAgICAgICAgICAgICAgICAnRGVjb2RlZF9wYXlsb2FkX2xlbmd0aD0lcycsIHBheWxvYWRf
bGVuZ3RoKQotICAgIGVsaWYgcGF5bG9hZF9sZW5ndGggPT0gMTI2OgotICAgICAgICBsb2dnZXIu
bG9nKGNvbW1vbi5MT0dMRVZFTF9GSU5FLAotICAgICAgICAgICAgICAgICAgICdSZWNlaXZlIDIt
b2N0ZXQgZXh0ZW5kZWQgcGF5bG9hZCBsZW5ndGgnKQotCi0gICAgICAgIGV4dGVuZGVkX3BheWxv
YWRfbGVuZ3RoID0gcmVjZWl2ZV9ieXRlcygyKQotICAgICAgICBwYXlsb2FkX2xlbmd0aCA9IHN0
cnVjdC51bnBhY2soCi0gICAgICAgICAgICAnIUgnLCBleHRlbmRlZF9wYXlsb2FkX2xlbmd0aClb
MF0KLSAgICAgICAgaWYgd3NfdmVyc2lvbiA+PSAxMyBhbmQgcGF5bG9hZF9sZW5ndGggPCAxMjY6
Ci0gICAgICAgICAgICB2YWxpZF9sZW5ndGhfZW5jb2RpbmcgPSBGYWxzZQotICAgICAgICAgICAg
bGVuZ3RoX2VuY29kaW5nX2J5dGVzID0gMgotCi0gICAgICAgIGxvZ2dlci5sb2coY29tbW9uLkxP
R0xFVkVMX0ZJTkUsCi0gICAgICAgICAgICAgICAgICAgJ0RlY29kZWRfcGF5bG9hZF9sZW5ndGg9
JXMnLCBwYXlsb2FkX2xlbmd0aCkKLQotICAgIGlmIG5vdCB2YWxpZF9sZW5ndGhfZW5jb2Rpbmc6
Ci0gICAgICAgIGxvZ2dlci53YXJuaW5nKAotICAgICAgICAgICAgJ1BheWxvYWQgbGVuZ3RoIGlz
IG5vdCBlbmNvZGVkIHVzaW5nIHRoZSBtaW5pbWFsIG51bWJlciBvZiAnCi0gICAgICAgICAgICAn
Ynl0ZXMgKCVkIGlzIGVuY29kZWQgdXNpbmcgJWQgYnl0ZXMpJywKLSAgICAgICAgICAgIHBheWxv
YWRfbGVuZ3RoLAotICAgICAgICAgICAgbGVuZ3RoX2VuY29kaW5nX2J5dGVzKQotCi0gICAgaWYg
bWFzayA9PSAxOgotICAgICAgICBsb2dnZXIubG9nKGNvbW1vbi5MT0dMRVZFTF9GSU5FLCAnUmVj
ZWl2ZSBtYXNrJykKLQotICAgICAgICBtYXNraW5nX25vbmNlID0gcmVjZWl2ZV9ieXRlcyg0KQot
ICAgICAgICBtYXNrZXIgPSB1dGlsLlJlcGVhdGVkWG9yTWFza2VyKG1hc2tpbmdfbm9uY2UpCi0K
LSAgICAgICAgbG9nZ2VyLmxvZyhjb21tb24uTE9HTEVWRUxfRklORSwgJ01hc2s9JXInLCBtYXNr
aW5nX25vbmNlKQotICAgIGVsc2U6Ci0gICAgICAgIG1hc2tlciA9IF9OT09QX01BU0tFUgotCi0g
ICAgbG9nZ2VyLmxvZyhjb21tb24uTE9HTEVWRUxfRklORSwgJ1JlY2VpdmUgcGF5bG9hZCBkYXRh
JykKLSAgICBpZiBsb2dnZXIuaXNFbmFibGVkRm9yKGNvbW1vbi5MT0dMRVZFTF9GSU5FKToKLSAg
ICAgICAgcmVjZWl2ZV9zdGFydCA9IHRpbWUudGltZSgpCi0KLSAgICByYXdfcGF5bG9hZF9ieXRl
cyA9IHJlY2VpdmVfYnl0ZXMocGF5bG9hZF9sZW5ndGgpCi0KLSAgICBpZiBsb2dnZXIuaXNFbmFi
bGVkRm9yKGNvbW1vbi5MT0dMRVZFTF9GSU5FKToKLSAgICAgICAgbG9nZ2VyLmxvZygKLSAgICAg
ICAgICAgIGNvbW1vbi5MT0dMRVZFTF9GSU5FLAotICAgICAgICAgICAgJ0RvbmUgcmVjZWl2aW5n
IHBheWxvYWQgZGF0YSBhdCAlcyBNQi9zJywKLSAgICAgICAgICAgIHBheWxvYWRfbGVuZ3RoIC8g
KHRpbWUudGltZSgpIC0gcmVjZWl2ZV9zdGFydCkgLyAxMDAwIC8gMTAwMCkKLSAgICBsb2dnZXIu
bG9nKGNvbW1vbi5MT0dMRVZFTF9GSU5FLCAnVW5tYXNrIHBheWxvYWQgZGF0YScpCi0KLSAgICBp
ZiBsb2dnZXIuaXNFbmFibGVkRm9yKGNvbW1vbi5MT0dMRVZFTF9GSU5FKToKLSAgICAgICAgdW5t
YXNrX3N0YXJ0ID0gdGltZS50aW1lKCkKLQotICAgIHVubWFza2VkX2J5dGVzID0gbWFza2VyLm1h
c2socmF3X3BheWxvYWRfYnl0ZXMpCi0KLSAgICBpZiBsb2dnZXIuaXNFbmFibGVkRm9yKGNvbW1v
bi5MT0dMRVZFTF9GSU5FKToKLSAgICAgICAgbG9nZ2VyLmxvZygKLSAgICAgICAgICAgIGNvbW1v
bi5MT0dMRVZFTF9GSU5FLAotICAgICAgICAgICAgJ0RvbmUgdW5tYXNraW5nIHBheWxvYWQgZGF0
YSBhdCAlcyBNQi9zJywKLSAgICAgICAgICAgIHBheWxvYWRfbGVuZ3RoIC8gKHRpbWUudGltZSgp
IC0gdW5tYXNrX3N0YXJ0KSAvIDEwMDAgLyAxMDAwKQotCi0gICAgcmV0dXJuIG9wY29kZSwgdW5t
YXNrZWRfYnl0ZXMsIGZpbiwgcnN2MSwgcnN2MiwgcnN2MwotCi0KLWNsYXNzIEZyYWdtZW50ZWRG
cmFtZUJ1aWxkZXIob2JqZWN0KToKLSAgICAiIiJBIHN0YXRlZnVsIGNsYXNzIHRvIHNlbmQgYSBt
ZXNzYWdlIGFzIGZyYWdtZW50cy4iIiIKLQotICAgIGRlZiBfX2luaXRfXyhzZWxmLCBtYXNrLCBm
cmFtZV9maWx0ZXJzPVtdLCBlbmNvZGVfdXRmOD1UcnVlKToKLSAgICAgICAgIiIiQ29uc3RydWN0
cyBhbiBpbnN0YW5jZS4iIiIKLQotICAgICAgICBzZWxmLl9tYXNrID0gbWFzawotICAgICAgICBz
ZWxmLl9mcmFtZV9maWx0ZXJzID0gZnJhbWVfZmlsdGVycwotICAgICAgICAjIFRoaXMgaXMgZm9y
IHNraXBwaW5nIFVURi04IGVuY29kaW5nIHdoZW4gYnVpbGRpbmcgdGV4dCB0eXBlIGZyYW1lcwot
ICAgICAgICAjIGZyb20gY29tcHJlc3NlZCBkYXRhLgotICAgICAgICBzZWxmLl9lbmNvZGVfdXRm
OCA9IGVuY29kZV91dGY4Ci0KLSAgICAgICAgc2VsZi5fc3RhcnRlZCA9IEZhbHNlCi0KLSAgICAg
ICAgIyBIb2xkIG9wY29kZSBvZiB0aGUgZmlyc3QgZnJhbWUgaW4gbWVzc2FnZXMgdG8gdmVyaWZ5
IHR5cGVzIG9mIG90aGVyCi0gICAgICAgICMgZnJhbWVzIGluIHRoZSBtZXNzYWdlIGFyZSBhbGwg
dGhlIHNhbWUuCi0gICAgICAgIHNlbGYuX29wY29kZSA9IGNvbW1vbi5PUENPREVfVEVYVAotCi0g
ICAgZGVmIGJ1aWxkKHNlbGYsIHBheWxvYWRfZGF0YSwgZW5kLCBiaW5hcnkpOgotICAgICAgICBp
ZiBiaW5hcnk6Ci0gICAgICAgICAgICBmcmFtZV90eXBlID0gY29tbW9uLk9QQ09ERV9CSU5BUlkK
LSAgICAgICAgZWxzZToKLSAgICAgICAgICAgIGZyYW1lX3R5cGUgPSBjb21tb24uT1BDT0RFX1RF
WFQKLSAgICAgICAgaWYgc2VsZi5fc3RhcnRlZDoKLSAgICAgICAgICAgIGlmIHNlbGYuX29wY29k
ZSAhPSBmcmFtZV90eXBlOgotICAgICAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoJ01lc3Nh
Z2UgdHlwZXMgYXJlIGRpZmZlcmVudCBpbiBmcmFtZXMgZm9yICcKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICd0aGUgc2FtZSBtZXNzYWdlJykKLSAgICAgICAgICAgIG9wY29kZSA9
IGNvbW1vbi5PUENPREVfQ09OVElOVUFUSU9OCi0gICAgICAgIGVsc2U6Ci0gICAgICAgICAgICBv
cGNvZGUgPSBmcmFtZV90eXBlCi0gICAgICAgICAgICBzZWxmLl9vcGNvZGUgPSBmcmFtZV90eXBl
Ci0KLSAgICAgICAgaWYgZW5kOgotICAgICAgICAgICAgc2VsZi5fc3RhcnRlZCA9IEZhbHNlCi0g
ICAgICAgICAgICBmaW4gPSAxCi0gICAgICAgIGVsc2U6Ci0gICAgICAgICAgICBzZWxmLl9zdGFy
dGVkID0gVHJ1ZQotICAgICAgICAgICAgZmluID0gMAotCi0gICAgICAgIGlmIGJpbmFyeSBvciBu
b3Qgc2VsZi5fZW5jb2RlX3V0Zjg6Ci0gICAgICAgICAgICByZXR1cm4gY3JlYXRlX2JpbmFyeV9m
cmFtZSgKLSAgICAgICAgICAgICAgICBwYXlsb2FkX2RhdGEsIG9wY29kZSwgZmluLCBzZWxmLl9t
YXNrLCBzZWxmLl9mcmFtZV9maWx0ZXJzKQotICAgICAgICBlbHNlOgotICAgICAgICAgICAgcmV0
dXJuIGNyZWF0ZV90ZXh0X2ZyYW1lKAotICAgICAgICAgICAgICAgIHBheWxvYWRfZGF0YSwgb3Bj
b2RlLCBmaW4sIHNlbGYuX21hc2ssIHNlbGYuX2ZyYW1lX2ZpbHRlcnMpCi0KLQotZGVmIF9jcmVh
dGVfY29udHJvbF9mcmFtZShvcGNvZGUsIGJvZHksIG1hc2ssIGZyYW1lX2ZpbHRlcnMpOgotICAg
IGZyYW1lID0gRnJhbWUob3Bjb2RlPW9wY29kZSwgcGF5bG9hZD1ib2R5KQotCi0gICAgZm9yIGZy
YW1lX2ZpbHRlciBpbiBmcmFtZV9maWx0ZXJzOgotICAgICAgICBmcmFtZV9maWx0ZXIuZmlsdGVy
KGZyYW1lKQotCi0gICAgaWYgbGVuKGZyYW1lLnBheWxvYWQpID4gMTI1OgotICAgICAgICByYWlz
ZSBCYWRPcGVyYXRpb25FeGNlcHRpb24oCi0gICAgICAgICAgICAnUGF5bG9hZCBkYXRhIHNpemUg
b2YgY29udHJvbCBmcmFtZXMgbXVzdCBiZSAxMjUgYnl0ZXMgb3IgbGVzcycpCi0KLSAgICBoZWFk
ZXIgPSBjcmVhdGVfaGVhZGVyKAotICAgICAgICBmcmFtZS5vcGNvZGUsIGxlbihmcmFtZS5wYXls
b2FkKSwgZnJhbWUuZmluLAotICAgICAgICBmcmFtZS5yc3YxLCBmcmFtZS5yc3YyLCBmcmFtZS5y
c3YzLCBtYXNrKQotICAgIHJldHVybiBfYnVpbGRfZnJhbWUoaGVhZGVyLCBmcmFtZS5wYXlsb2Fk
LCBtYXNrKQotCi0KLWRlZiBjcmVhdGVfcGluZ19mcmFtZShib2R5LCBtYXNrPUZhbHNlLCBmcmFt
ZV9maWx0ZXJzPVtdKToKLSAgICByZXR1cm4gX2NyZWF0ZV9jb250cm9sX2ZyYW1lKGNvbW1vbi5P
UENPREVfUElORywgYm9keSwgbWFzaywgZnJhbWVfZmlsdGVycykKLQotCi1kZWYgY3JlYXRlX3Bv
bmdfZnJhbWUoYm9keSwgbWFzaz1GYWxzZSwgZnJhbWVfZmlsdGVycz1bXSk6Ci0gICAgcmV0dXJu
IF9jcmVhdGVfY29udHJvbF9mcmFtZShjb21tb24uT1BDT0RFX1BPTkcsIGJvZHksIG1hc2ssIGZy
YW1lX2ZpbHRlcnMpCi0KLQotZGVmIGNyZWF0ZV9jbG9zZV9mcmFtZShib2R5LCBtYXNrPUZhbHNl
LCBmcmFtZV9maWx0ZXJzPVtdKToKLSAgICByZXR1cm4gX2NyZWF0ZV9jb250cm9sX2ZyYW1lKAot
ICAgICAgICBjb21tb24uT1BDT0RFX0NMT1NFLCBib2R5LCBtYXNrLCBmcmFtZV9maWx0ZXJzKQot
Ci0KLWRlZiBjcmVhdGVfY2xvc2luZ19oYW5kc2hha2VfYm9keShjb2RlLCByZWFzb24pOgotICAg
IGJvZHkgPSAnJwotICAgIGlmIGNvZGUgaXMgbm90IE5vbmU6Ci0gICAgICAgIGlmIChjb2RlID4g
Y29tbW9uLlNUQVRVU19VU0VSX1BSSVZBVEVfTUFYIG9yCi0gICAgICAgICAgICBjb2RlIDwgY29t
bW9uLlNUQVRVU19OT1JNQUxfQ0xPU1VSRSk6Ci0gICAgICAgICAgICByYWlzZSBCYWRPcGVyYXRp
b25FeGNlcHRpb24oJ1N0YXR1cyBjb2RlIGlzIG91dCBvZiByYW5nZScpCi0gICAgICAgIGlmIChj
b2RlID09IGNvbW1vbi5TVEFUVVNfTk9fU1RBVFVTX1JFQ0VJVkVEIG9yCi0gICAgICAgICAgICBj
b2RlID09IGNvbW1vbi5TVEFUVVNfQUJOT1JNQUxfQ0xPU1VSRSBvcgotICAgICAgICAgICAgY29k
ZSA9PSBjb21tb24uU1RBVFVTX1RMU19IQU5EU0hBS0UpOgotICAgICAgICAgICAgcmFpc2UgQmFk
T3BlcmF0aW9uRXhjZXB0aW9uKCdTdGF0dXMgY29kZSBpcyByZXNlcnZlZCBwc2V1ZG8gJwotICAg
ICAgICAgICAgICAgICdjb2RlJykKLSAgICAgICAgZW5jb2RlZF9yZWFzb24gPSByZWFzb24uZW5j
b2RlKCd1dGYtOCcpCi0gICAgICAgIGJvZHkgPSBzdHJ1Y3QucGFjaygnIUgnLCBjb2RlKSArIGVu
Y29kZWRfcmVhc29uCi0gICAgcmV0dXJuIGJvZHkKLQotCi1jbGFzcyBTdHJlYW1PcHRpb25zKG9i
amVjdCk6Ci0gICAgIiIiSG9sZHMgb3B0aW9uIHZhbHVlcyB0byBjb25maWd1cmUgU3RyZWFtIG9i
amVjdHMuIiIiCi0KLSAgICBkZWYgX19pbml0X18oc2VsZik6Ci0gICAgICAgICIiIkNvbnN0cnVj
dHMgU3RyZWFtT3B0aW9ucy4iIiIKLQotICAgICAgICAjIEZpbHRlcnMgYXBwbGllZCB0byBmcmFt
ZXMuCi0gICAgICAgIHNlbGYub3V0Z29pbmdfZnJhbWVfZmlsdGVycyA9IFtdCi0gICAgICAgIHNl
bGYuaW5jb21pbmdfZnJhbWVfZmlsdGVycyA9IFtdCi0KLSAgICAgICAgIyBGaWx0ZXJzIGFwcGxp
ZWQgdG8gbWVzc2FnZXMuIENvbnRyb2wgZnJhbWVzIGFyZSBub3QgYWZmZWN0ZWQgYnkgdGhlbS4K
LSAgICAgICAgc2VsZi5vdXRnb2luZ19tZXNzYWdlX2ZpbHRlcnMgPSBbXQotICAgICAgICBzZWxm
LmluY29taW5nX21lc3NhZ2VfZmlsdGVycyA9IFtdCi0KLSAgICAgICAgc2VsZi5lbmNvZGVfdGV4
dF9tZXNzYWdlX3RvX3V0ZjggPSBUcnVlCi0gICAgICAgIHNlbGYubWFza19zZW5kID0gRmFsc2UK
LSAgICAgICAgc2VsZi51bm1hc2tfcmVjZWl2ZSA9IFRydWUKLQotCi1jbGFzcyBTdHJlYW0oU3Ry
ZWFtQmFzZSk6Ci0gICAgIiIiQSBjbGFzcyBmb3IgcGFyc2luZy9idWlsZGluZyBmcmFtZXMgb2Yg
dGhlIFdlYlNvY2tldCBwcm90b2NvbAotICAgIChSRkMgNjQ1NSkuCi0gICAgIiIiCi0KLSAgICBk
ZWYgX19pbml0X18oc2VsZiwgcmVxdWVzdCwgb3B0aW9ucyk6Ci0gICAgICAgICIiIkNvbnN0cnVj
dHMgYW4gaW5zdGFuY2UuCi0KLSAgICAgICAgQXJnczoKLSAgICAgICAgICAgIHJlcXVlc3Q6IG1v
ZF9weXRob24gcmVxdWVzdC4KLSAgICAgICAgIiIiCi0KLSAgICAgICAgU3RyZWFtQmFzZS5fX2lu
aXRfXyhzZWxmLCByZXF1ZXN0KQotCi0gICAgICAgIHNlbGYuX2xvZ2dlciA9IHV0aWwuZ2V0X2Ns
YXNzX2xvZ2dlcihzZWxmKQotCi0gICAgICAgIHNlbGYuX29wdGlvbnMgPSBvcHRpb25zCi0KLSAg
ICAgICAgc2VsZi5fcmVxdWVzdC5jbGllbnRfdGVybWluYXRlZCA9IEZhbHNlCi0gICAgICAgIHNl
bGYuX3JlcXVlc3Quc2VydmVyX3Rlcm1pbmF0ZWQgPSBGYWxzZQotCi0gICAgICAgICMgSG9sZHMg
Ym9keSBvZiByZWNlaXZlZCBmcmFnbWVudHMuCi0gICAgICAgIHNlbGYuX3JlY2VpdmVkX2ZyYWdt
ZW50cyA9IFtdCi0gICAgICAgICMgSG9sZHMgdGhlIG9wY29kZSBvZiB0aGUgZmlyc3QgZnJhZ21l
bnQuCi0gICAgICAgIHNlbGYuX29yaWdpbmFsX29wY29kZSA9IE5vbmUKLQotICAgICAgICBzZWxm
Ll93cml0ZXIgPSBGcmFnbWVudGVkRnJhbWVCdWlsZGVyKAotICAgICAgICAgICAgc2VsZi5fb3B0
aW9ucy5tYXNrX3NlbmQsIHNlbGYuX29wdGlvbnMub3V0Z29pbmdfZnJhbWVfZmlsdGVycywKLSAg
ICAgICAgICAgIHNlbGYuX29wdGlvbnMuZW5jb2RlX3RleHRfbWVzc2FnZV90b191dGY4KQotCi0g
ICAgICAgIHNlbGYuX3BpbmdfcXVldWUgPSBkZXF1ZSgpCi0KLSAgICBkZWYgX3JlY2VpdmVfZnJh
bWUoc2VsZik6Ci0gICAgICAgICIiIlJlY2VpdmVzIGEgZnJhbWUgYW5kIHJldHVybiBkYXRhIGlu
IHRoZSBmcmFtZSBhcyBhIHR1cGxlIGNvbnRhaW5pbmcKLSAgICAgICAgZWFjaCBoZWFkZXIgZmll
bGQgYW5kIHBheWxvYWQgc2VwYXJhdGVseS4KLQotICAgICAgICBSYWlzZXM6Ci0gICAgICAgICAg
ICBDb25uZWN0aW9uVGVybWluYXRlZEV4Y2VwdGlvbjogd2hlbiByZWFkIHJldHVybnMgZW1wdHkK
LSAgICAgICAgICAgICAgICBzdHJpbmcuCi0gICAgICAgICAgICBJbnZhbGlkRnJhbWVFeGNlcHRp
b246IHdoZW4gdGhlIGZyYW1lIGNvbnRhaW5zIGludmFsaWQgZGF0YS4KLSAgICAgICAgIiIiCi0K
LSAgICAgICAgZGVmIF9yZWNlaXZlX2J5dGVzKGxlbmd0aCk6Ci0gICAgICAgICAgICByZXR1cm4g
c2VsZi5yZWNlaXZlX2J5dGVzKGxlbmd0aCkKLQotICAgICAgICByZXR1cm4gcGFyc2VfZnJhbWUo
cmVjZWl2ZV9ieXRlcz1fcmVjZWl2ZV9ieXRlcywKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
IGxvZ2dlcj1zZWxmLl9sb2dnZXIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICB3c192ZXJz
aW9uPXNlbGYuX3JlcXVlc3Qud3NfdmVyc2lvbiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
IHVubWFza19yZWNlaXZlPXNlbGYuX29wdGlvbnMudW5tYXNrX3JlY2VpdmUpCi0KLSAgICBkZWYg
X3JlY2VpdmVfZnJhbWVfYXNfZnJhbWVfb2JqZWN0KHNlbGYpOgotICAgICAgICBvcGNvZGUsIHVu
bWFza2VkX2J5dGVzLCBmaW4sIHJzdjEsIHJzdjIsIHJzdjMgPSBzZWxmLl9yZWNlaXZlX2ZyYW1l
KCkKLQotICAgICAgICByZXR1cm4gRnJhbWUoZmluPWZpbiwgcnN2MT1yc3YxLCByc3YyPXJzdjIs
IHJzdjM9cnN2MywKLSAgICAgICAgICAgICAgICAgICAgIG9wY29kZT1vcGNvZGUsIHBheWxvYWQ9
dW5tYXNrZWRfYnl0ZXMpCi0KLSAgICBkZWYgcmVjZWl2ZV9maWx0ZXJlZF9mcmFtZShzZWxmKToK
LSAgICAgICAgIiIiUmVjZWl2ZXMgYSBmcmFtZSBhbmQgYXBwbGllcyBmcmFtZSBmaWx0ZXJzIGFu
ZCBtZXNzYWdlIGZpbHRlcnMuCi0gICAgICAgIFRoZSBmcmFtZSB0byBiZSByZWNlaXZlZCBtdXN0
IHNhdGlzZnkgZm9sbG93aW5nIGNvbmRpdGlvbnM6Ci0gICAgICAgIC0gVGhlIGZyYW1lIGlzIG5v
dCBmcmFnbWVudGVkLgotICAgICAgICAtIFRoZSBvcGNvZGUgb2YgdGhlIGZyYW1lIGlzIFRFWFQg
b3IgQklOQVJZLgotCi0gICAgICAgIERPIE5PVCBVU0UgdGhpcyBtZXRob2QgZXhjZXB0IGZvciB0
ZXN0aW5nIHB1cnBvc2UuCi0gICAgICAgICIiIgotCi0gICAgICAgIGZyYW1lID0gc2VsZi5fcmVj
ZWl2ZV9mcmFtZV9hc19mcmFtZV9vYmplY3QoKQotICAgICAgICBpZiBub3QgZnJhbWUuZmluOgot
ICAgICAgICAgICAgcmFpc2UgSW52YWxpZEZyYW1lRXhjZXB0aW9uKAotICAgICAgICAgICAgICAg
ICdTZWdtZW50ZWQgZnJhbWVzIG11c3Qgbm90IGJlIHJlY2VpdmVkIHZpYSAnCi0gICAgICAgICAg
ICAgICAgJ3JlY2VpdmVfZmlsdGVyZWRfZnJhbWUoKScpCi0gICAgICAgIGlmIChmcmFtZS5vcGNv
ZGUgIT0gY29tbW9uLk9QQ09ERV9URVhUIGFuZAotICAgICAgICAgICAgZnJhbWUub3Bjb2RlICE9
IGNvbW1vbi5PUENPREVfQklOQVJZKToKLSAgICAgICAgICAgIHJhaXNlIEludmFsaWRGcmFtZUV4
Y2VwdGlvbigKLSAgICAgICAgICAgICAgICAnQ29udHJvbCBmcmFtZXMgbXVzdCBub3QgYmUgcmVj
ZWl2ZWQgdmlhICcKLSAgICAgICAgICAgICAgICAncmVjZWl2ZV9maWx0ZXJlZF9mcmFtZSgpJykK
LQotICAgICAgICBmb3IgZnJhbWVfZmlsdGVyIGluIHNlbGYuX29wdGlvbnMuaW5jb21pbmdfZnJh
bWVfZmlsdGVyczoKLSAgICAgICAgICAgIGZyYW1lX2ZpbHRlci5maWx0ZXIoZnJhbWUpCi0gICAg
ICAgIGZvciBtZXNzYWdlX2ZpbHRlciBpbiBzZWxmLl9vcHRpb25zLmluY29taW5nX21lc3NhZ2Vf
ZmlsdGVyczoKLSAgICAgICAgICAgIGZyYW1lLnBheWxvYWQgPSBtZXNzYWdlX2ZpbHRlci5maWx0
ZXIoZnJhbWUucGF5bG9hZCkKLSAgICAgICAgcmV0dXJuIGZyYW1lCi0KLSAgICBkZWYgc2VuZF9t
ZXNzYWdlKHNlbGYsIG1lc3NhZ2UsIGVuZD1UcnVlLCBiaW5hcnk9RmFsc2UpOgotICAgICAgICAi
IiJTZW5kIG1lc3NhZ2UuCi0KLSAgICAgICAgQXJnczoKLSAgICAgICAgICAgIG1lc3NhZ2U6IHRl
eHQgaW4gdW5pY29kZSBvciBiaW5hcnkgaW4gc3RyIHRvIHNlbmQuCi0gICAgICAgICAgICBiaW5h
cnk6IHNlbmQgbWVzc2FnZSBhcyBiaW5hcnkgZnJhbWUuCi0KLSAgICAgICAgUmFpc2VzOgotICAg
ICAgICAgICAgQmFkT3BlcmF0aW9uRXhjZXB0aW9uOiB3aGVuIGNhbGxlZCBvbiBhIHNlcnZlci10
ZXJtaW5hdGVkCi0gICAgICAgICAgICAgICAgY29ubmVjdGlvbiBvciBjYWxsZWQgd2l0aCBpbmNv
bnNpc3RlbnQgbWVzc2FnZSB0eXBlIG9yCi0gICAgICAgICAgICAgICAgYmluYXJ5IHBhcmFtZXRl
ci4KLSAgICAgICAgIiIiCi0KLSAgICAgICAgaWYgc2VsZi5fcmVxdWVzdC5zZXJ2ZXJfdGVybWlu
YXRlZDoKLSAgICAgICAgICAgIHJhaXNlIEJhZE9wZXJhdGlvbkV4Y2VwdGlvbigKLSAgICAgICAg
ICAgICAgICAnUmVxdWVzdGVkIHNlbmRfbWVzc2FnZSBhZnRlciBzZW5kaW5nIG91dCBhIGNsb3Np
bmcgaGFuZHNoYWtlJykKLQotICAgICAgICBpZiBiaW5hcnkgYW5kIGlzaW5zdGFuY2UobWVzc2Fn
ZSwgdW5pY29kZSk6Ci0gICAgICAgICAgICByYWlzZSBCYWRPcGVyYXRpb25FeGNlcHRpb24oCi0g
ICAgICAgICAgICAgICAgJ01lc3NhZ2UgZm9yIGJpbmFyeSBmcmFtZSBtdXN0IGJlIGluc3RhbmNl
IG9mIHN0cicpCi0KLSAgICAgICAgZm9yIG1lc3NhZ2VfZmlsdGVyIGluIHNlbGYuX29wdGlvbnMu
b3V0Z29pbmdfbWVzc2FnZV9maWx0ZXJzOgotICAgICAgICAgICAgbWVzc2FnZSA9IG1lc3NhZ2Vf
ZmlsdGVyLmZpbHRlcihtZXNzYWdlLCBlbmQsIGJpbmFyeSkKLQotICAgICAgICB0cnk6Ci0gICAg
ICAgICAgICAjIFNldCB0aGlzIHRvIGFueSBwb3NpdGl2ZSBpbnRlZ2VyIHRvIGxpbWl0IG1heGlt
dW0gc2l6ZSBvZiBkYXRhIGluCi0gICAgICAgICAgICAjIHBheWxvYWQgZGF0YSBvZiBlYWNoIGZy
YW1lLgotICAgICAgICAgICAgTUFYX1BBWUxPQURfREFUQV9TSVpFID0gLTEKLQotICAgICAgICAg
ICAgaWYgTUFYX1BBWUxPQURfREFUQV9TSVpFIDw9IDA6Ci0gICAgICAgICAgICAgICAgc2VsZi5f
d3JpdGUoc2VsZi5fd3JpdGVyLmJ1aWxkKG1lc3NhZ2UsIGVuZCwgYmluYXJ5KSkKLSAgICAgICAg
ICAgICAgICByZXR1cm4KLQotICAgICAgICAgICAgYnl0ZXNfd3JpdHRlbiA9IDAKLSAgICAgICAg
ICAgIHdoaWxlIFRydWU6Ci0gICAgICAgICAgICAgICAgZW5kX2Zvcl90aGlzX2ZyYW1lID0gZW5k
Ci0gICAgICAgICAgICAgICAgYnl0ZXNfdG9fd3JpdGUgPSBsZW4obWVzc2FnZSkgLSBieXRlc193
cml0dGVuCi0gICAgICAgICAgICAgICAgaWYgKE1BWF9QQVlMT0FEX0RBVEFfU0laRSA+IDAgYW5k
Ci0gICAgICAgICAgICAgICAgICAgIGJ5dGVzX3RvX3dyaXRlID4gTUFYX1BBWUxPQURfREFUQV9T
SVpFKToKLSAgICAgICAgICAgICAgICAgICAgZW5kX2Zvcl90aGlzX2ZyYW1lID0gRmFsc2UKLSAg
ICAgICAgICAgICAgICAgICAgYnl0ZXNfdG9fd3JpdGUgPSBNQVhfUEFZTE9BRF9EQVRBX1NJWkUK
LQotICAgICAgICAgICAgICAgIGZyYW1lID0gc2VsZi5fd3JpdGVyLmJ1aWxkKAotICAgICAgICAg
ICAgICAgICAgICBtZXNzYWdlW2J5dGVzX3dyaXR0ZW46Ynl0ZXNfd3JpdHRlbiArIGJ5dGVzX3Rv
X3dyaXRlXSwKLSAgICAgICAgICAgICAgICAgICAgZW5kX2Zvcl90aGlzX2ZyYW1lLAotICAgICAg
ICAgICAgICAgICAgICBiaW5hcnkpCi0gICAgICAgICAgICAgICAgc2VsZi5fd3JpdGUoZnJhbWUp
Ci0KLSAgICAgICAgICAgICAgICBieXRlc193cml0dGVuICs9IGJ5dGVzX3RvX3dyaXRlCi0KLSAg
ICAgICAgICAgICAgICAjIFRoaXMgaWYgbXVzdCBiZSBwbGFjZWQgaGVyZSAodGhlIGVuZCBvZiB3
aGlsZSBibG9jaykgc28gdGhhdAotICAgICAgICAgICAgICAgICMgYXQgbGVhc3Qgb25lIGZyYW1l
IGlzIHNlbnQuCi0gICAgICAgICAgICAgICAgaWYgbGVuKG1lc3NhZ2UpIDw9IGJ5dGVzX3dyaXR0
ZW46Ci0gICAgICAgICAgICAgICAgICAgIGJyZWFrCi0gICAgICAgIGV4Y2VwdCBWYWx1ZUVycm9y
LCBlOgotICAgICAgICAgICAgcmFpc2UgQmFkT3BlcmF0aW9uRXhjZXB0aW9uKGUpCi0KLSAgICBk
ZWYgX2dldF9tZXNzYWdlX2Zyb21fZnJhbWUoc2VsZiwgZnJhbWUpOgotICAgICAgICAiIiJHZXRz
IGEgbWVzc2FnZSBmcm9tIGZyYW1lLiBJZiB0aGUgbWVzc2FnZSBpcyBjb21wb3NlZCBvZiBmcmFn
bWVudGVkCi0gICAgICAgIGZyYW1lcyBhbmQgdGhlIGZyYW1lIGlzIG5vdCB0aGUgbGFzdCBmcmFn
bWVudGVkIGZyYW1lLCB0aGlzIG1ldGhvZAotICAgICAgICByZXR1cm5zIE5vbmUuIFRoZSB3aG9s
ZSBtZXNzYWdlIHdpbGwgYmUgcmV0dXJuZWQgd2hlbiB0aGUgbGFzdAotICAgICAgICBmcmFnbWVu
dGVkIGZyYW1lIGlzIHBhc3NlZCB0byB0aGlzIG1ldGhvZC4KLQotICAgICAgICBSYWlzZXM6Ci0g
ICAgICAgICAgICBJbnZhbGlkRnJhbWVFeGNlcHRpb246IHdoZW4gdGhlIGZyYW1lIGRvZXNuJ3Qg
bWF0Y2ggZGVmcmFnbWVudGF0aW9uCi0gICAgICAgICAgICAgICAgY29udGV4dCwgb3IgdGhlIGZy
YW1lIGNvbnRhaW5zIGludmFsaWQgZGF0YS4KLSAgICAgICAgIiIiCi0KLSAgICAgICAgaWYgZnJh
bWUub3Bjb2RlID09IGNvbW1vbi5PUENPREVfQ09OVElOVUFUSU9OOgotICAgICAgICAgICAgaWYg
bm90IHNlbGYuX3JlY2VpdmVkX2ZyYWdtZW50czoKLSAgICAgICAgICAgICAgICBpZiBmcmFtZS5m
aW46Ci0gICAgICAgICAgICAgICAgICAgIHJhaXNlIEludmFsaWRGcmFtZUV4Y2VwdGlvbigKLSAg
ICAgICAgICAgICAgICAgICAgICAgICdSZWNlaXZlZCBhIHRlcm1pbmF0aW9uIGZyYW1lIGJ1dCBm
cmFnbWVudGF0aW9uICcKLSAgICAgICAgICAgICAgICAgICAgICAgICdub3Qgc3RhcnRlZCcpCi0g
ICAgICAgICAgICAgICAgZWxzZToKLSAgICAgICAgICAgICAgICAgICAgcmFpc2UgSW52YWxpZEZy
YW1lRXhjZXB0aW9uKAotICAgICAgICAgICAgICAgICAgICAgICAgJ1JlY2VpdmVkIGFuIGludGVy
bWVkaWF0ZSBmcmFtZSBidXQgJwotICAgICAgICAgICAgICAgICAgICAgICAgJ2ZyYWdtZW50YXRp
b24gbm90IHN0YXJ0ZWQnKQotCi0gICAgICAgICAgICBpZiBmcmFtZS5maW46Ci0gICAgICAgICAg
ICAgICAgIyBFbmQgb2YgZnJhZ21lbnRhdGlvbiBmcmFtZQotICAgICAgICAgICAgICAgIHNlbGYu
X3JlY2VpdmVkX2ZyYWdtZW50cy5hcHBlbmQoZnJhbWUucGF5bG9hZCkKLSAgICAgICAgICAgICAg
ICBtZXNzYWdlID0gJycuam9pbihzZWxmLl9yZWNlaXZlZF9mcmFnbWVudHMpCi0gICAgICAgICAg
ICAgICAgc2VsZi5fcmVjZWl2ZWRfZnJhZ21lbnRzID0gW10KLSAgICAgICAgICAgICAgICByZXR1
cm4gbWVzc2FnZQotICAgICAgICAgICAgZWxzZToKLSAgICAgICAgICAgICAgICAjIEludGVybWVk
aWF0ZSBmcmFtZQotICAgICAgICAgICAgICAgIHNlbGYuX3JlY2VpdmVkX2ZyYWdtZW50cy5hcHBl
bmQoZnJhbWUucGF5bG9hZCkKLSAgICAgICAgICAgICAgICByZXR1cm4gTm9uZQotICAgICAgICBl
bHNlOgotICAgICAgICAgICAgaWYgc2VsZi5fcmVjZWl2ZWRfZnJhZ21lbnRzOgotICAgICAgICAg
ICAgICAgIGlmIGZyYW1lLmZpbjoKLSAgICAgICAgICAgICAgICAgICAgcmFpc2UgSW52YWxpZEZy
YW1lRXhjZXB0aW9uKAotICAgICAgICAgICAgICAgICAgICAgICAgJ1JlY2VpdmVkIGFuIHVuZnJh
Z21lbnRlZCBmcmFtZSB3aXRob3V0ICcKLSAgICAgICAgICAgICAgICAgICAgICAgICd0ZXJtaW5h
dGluZyBleGlzdGluZyBmcmFnbWVudGF0aW9uJykKLSAgICAgICAgICAgICAgICBlbHNlOgotICAg
ICAgICAgICAgICAgICAgICByYWlzZSBJbnZhbGlkRnJhbWVFeGNlcHRpb24oCi0gICAgICAgICAg
ICAgICAgICAgICAgICAnTmV3IGZyYWdtZW50YXRpb24gc3RhcnRlZCB3aXRob3V0IHRlcm1pbmF0
aW5nICcKLSAgICAgICAgICAgICAgICAgICAgICAgICdleGlzdGluZyBmcmFnbWVudGF0aW9uJykK
LQotICAgICAgICAgICAgaWYgZnJhbWUuZmluOgotICAgICAgICAgICAgICAgICMgVW5mcmFnbWVu
dGVkIGZyYW1lCi0KLSAgICAgICAgICAgICAgICBzZWxmLl9vcmlnaW5hbF9vcGNvZGUgPSBmcmFt
ZS5vcGNvZGUKLSAgICAgICAgICAgICAgICByZXR1cm4gZnJhbWUucGF5bG9hZAotICAgICAgICAg
ICAgZWxzZToKLSAgICAgICAgICAgICAgICAjIFN0YXJ0IG9mIGZyYWdtZW50YXRpb24gZnJhbWUK
LQotICAgICAgICAgICAgICAgIGlmIGNvbW1vbi5pc19jb250cm9sX29wY29kZShmcmFtZS5vcGNv
ZGUpOgotICAgICAgICAgICAgICAgICAgICByYWlzZSBJbnZhbGlkRnJhbWVFeGNlcHRpb24oCi0g
ICAgICAgICAgICAgICAgICAgICAgICAnQ29udHJvbCBmcmFtZXMgbXVzdCBub3QgYmUgZnJhZ21l
bnRlZCcpCi0KLSAgICAgICAgICAgICAgICBzZWxmLl9vcmlnaW5hbF9vcGNvZGUgPSBmcmFtZS5v
cGNvZGUKLSAgICAgICAgICAgICAgICBzZWxmLl9yZWNlaXZlZF9mcmFnbWVudHMuYXBwZW5kKGZy
YW1lLnBheWxvYWQpCi0gICAgICAgICAgICAgICAgcmV0dXJuIE5vbmUKLQotICAgIGRlZiBfcHJv
Y2Vzc19jbG9zZV9tZXNzYWdlKHNlbGYsIG1lc3NhZ2UpOgotICAgICAgICAiIiJQcm9jZXNzZXMg
Y2xvc2UgbWVzc2FnZS4KLQotICAgICAgICBBcmdzOgotICAgICAgICAgICAgbWVzc2FnZTogY2xv
c2UgbWVzc2FnZS4KLQotICAgICAgICBSYWlzZXM6Ci0gICAgICAgICAgICBJbnZhbGlkRnJhbWVF
eGNlcHRpb246IHdoZW4gdGhlIG1lc3NhZ2UgaXMgaW52YWxpZC4KLSAgICAgICAgIiIiCi0KLSAg
ICAgICAgc2VsZi5fcmVxdWVzdC5jbGllbnRfdGVybWluYXRlZCA9IFRydWUKLQotICAgICAgICAj
IFN0YXR1cyBjb2RlIGlzIG9wdGlvbmFsLiBXZSBjYW4gaGF2ZSBzdGF0dXMgcmVhc29uIG9ubHkg
aWYgd2UKLSAgICAgICAgIyBoYXZlIHN0YXR1cyBjb2RlLiBTdGF0dXMgcmVhc29uIGNhbiBiZSBl
bXB0eSBzdHJpbmcuIFNvLAotICAgICAgICAjIGFsbG93ZWQgY2FzZXMgYXJlCi0gICAgICAgICMg
LSBubyBhcHBsaWNhdGlvbiBkYXRhOiBubyBjb2RlIG5vIHJlYXNvbgotICAgICAgICAjIC0gMiBv
Y3RldCBvZiBhcHBsaWNhdGlvbiBkYXRhOiBoYXMgY29kZSBidXQgbm8gcmVhc29uCi0gICAgICAg
ICMgLSAzIG9yIG1vcmUgb2N0ZXQgb2YgYXBwbGljYXRpb24gZGF0YTogYm90aCBjb2RlIGFuZCBy
ZWFzb24KLSAgICAgICAgaWYgbGVuKG1lc3NhZ2UpID09IDA6Ci0gICAgICAgICAgICBzZWxmLl9s
b2dnZXIuZGVidWcoJ1JlY2VpdmVkIGNsb3NlIGZyYW1lIChlbXB0eSBib2R5KScpCi0gICAgICAg
ICAgICBzZWxmLl9yZXF1ZXN0LndzX2Nsb3NlX2NvZGUgPSAoCi0gICAgICAgICAgICAgICAgY29t
bW9uLlNUQVRVU19OT19TVEFUVVNfUkVDRUlWRUQpCi0gICAgICAgIGVsaWYgbGVuKG1lc3NhZ2Up
ID09IDE6Ci0gICAgICAgICAgICByYWlzZSBJbnZhbGlkRnJhbWVFeGNlcHRpb24oCi0gICAgICAg
ICAgICAgICAgJ0lmIGEgY2xvc2UgZnJhbWUgaGFzIHN0YXR1cyBjb2RlLCB0aGUgbGVuZ3RoIG9m
ICcKLSAgICAgICAgICAgICAgICAnc3RhdHVzIGNvZGUgbXVzdCBiZSAyIG9jdGV0JykKLSAgICAg
ICAgZWxpZiBsZW4obWVzc2FnZSkgPj0gMjoKLSAgICAgICAgICAgIHNlbGYuX3JlcXVlc3Qud3Nf
Y2xvc2VfY29kZSA9IHN0cnVjdC51bnBhY2soCi0gICAgICAgICAgICAgICAgJyFIJywgbWVzc2Fn
ZVswOjJdKVswXQotICAgICAgICAgICAgc2VsZi5fcmVxdWVzdC53c19jbG9zZV9yZWFzb24gPSBt
ZXNzYWdlWzI6XS5kZWNvZGUoCi0gICAgICAgICAgICAgICAgJ3V0Zi04JywgJ3JlcGxhY2UnKQot
ICAgICAgICAgICAgc2VsZi5fbG9nZ2VyLmRlYnVnKAotICAgICAgICAgICAgICAgICdSZWNlaXZl
ZCBjbG9zZSBmcmFtZSAoY29kZT0lZCwgcmVhc29uPSVyKScsCi0gICAgICAgICAgICAgICAgc2Vs
Zi5fcmVxdWVzdC53c19jbG9zZV9jb2RlLAotICAgICAgICAgICAgICAgIHNlbGYuX3JlcXVlc3Qu
d3NfY2xvc2VfcmVhc29uKQotCi0gICAgICAgICMgQXMgd2UndmUgcmVjZWl2ZWQgYSBjbG9zZSBm
cmFtZSwgbm8gbW9yZSBkYXRhIGlzIGNvbWluZyBvdmVyIHRoZQotICAgICAgICAjIHNvY2tldC4g
V2UgY2FuIG5vdyBzYWZlbHkgY2xvc2UgdGhlIHNvY2tldCB3aXRob3V0IHdvcnJ5aW5nIGFib3V0
Ci0gICAgICAgICMgUlNUIHNlbmRpbmcuCi0KLSAgICAgICAgaWYgc2VsZi5fcmVxdWVzdC5zZXJ2
ZXJfdGVybWluYXRlZDoKLSAgICAgICAgICAgIHNlbGYuX2xvZ2dlci5kZWJ1ZygKLSAgICAgICAg
ICAgICAgICAnUmVjZWl2ZWQgYWNrIGZvciBzZXJ2ZXItaW5pdGlhdGVkIGNsb3NpbmcgaGFuZHNo
YWtlJykKLSAgICAgICAgICAgIHJldHVybgotCi0gICAgICAgIHNlbGYuX2xvZ2dlci5kZWJ1ZygK
LSAgICAgICAgICAgICdSZWNlaXZlZCBjbGllbnQtaW5pdGlhdGVkIGNsb3NpbmcgaGFuZHNoYWtl
JykKLQotICAgICAgICBjb2RlID0gY29tbW9uLlNUQVRVU19OT1JNQUxfQ0xPU1VSRQotICAgICAg
ICByZWFzb24gPSAnJwotICAgICAgICBpZiBoYXNhdHRyKHNlbGYuX3JlcXVlc3QsICdfZGlzcGF0
Y2hlcicpOgotICAgICAgICAgICAgZGlzcGF0Y2hlciA9IHNlbGYuX3JlcXVlc3QuX2Rpc3BhdGNo
ZXIKLSAgICAgICAgICAgIGNvZGUsIHJlYXNvbiA9IGRpc3BhdGNoZXIucGFzc2l2ZV9jbG9zaW5n
X2hhbmRzaGFrZSgKLSAgICAgICAgICAgICAgICBzZWxmLl9yZXF1ZXN0KQotICAgICAgICAgICAg
aWYgY29kZSBpcyBOb25lIGFuZCByZWFzb24gaXMgbm90IE5vbmUgYW5kIGxlbihyZWFzb24pID4g
MDoKLSAgICAgICAgICAgICAgICBzZWxmLl9sb2dnZXIud2FybmluZygKLSAgICAgICAgICAgICAg
ICAgICAgJ0hhbmRsZXIgc3BlY2lmaWVkIHJlYXNvbiBkZXNwaXRlIGNvZGUgYmVpbmcgTm9uZScp
Ci0gICAgICAgICAgICAgICAgcmVhc29uID0gJycKLSAgICAgICAgICAgIGlmIHJlYXNvbiBpcyBO
b25lOgotICAgICAgICAgICAgICAgIHJlYXNvbiA9ICcnCi0gICAgICAgIHNlbGYuX3NlbmRfY2xv
c2luZ19oYW5kc2hha2UoY29kZSwgcmVhc29uKQotICAgICAgICBzZWxmLl9sb2dnZXIuZGVidWco
Ci0gICAgICAgICAgICAnQWNrbm93bGVkZ2VkIGNsb3NpbmcgaGFuZHNoYWtlIGluaXRpYXRlZCBi
eSB0aGUgcGVlciAnCi0gICAgICAgICAgICAnKGNvZGU9JXIsIHJlYXNvbj0lciknLCBjb2RlLCBy
ZWFzb24pCi0KLSAgICBkZWYgX3Byb2Nlc3NfcGluZ19tZXNzYWdlKHNlbGYsIG1lc3NhZ2UpOgot
ICAgICAgICAiIiJQcm9jZXNzZXMgcGluZyBtZXNzYWdlLgotCi0gICAgICAgIEFyZ3M6Ci0gICAg
ICAgICAgICBtZXNzYWdlOiBwaW5nIG1lc3NhZ2UuCi0gICAgICAgICIiIgotCi0gICAgICAgIHRy
eToKLSAgICAgICAgICAgIGhhbmRsZXIgPSBzZWxmLl9yZXF1ZXN0Lm9uX3BpbmdfaGFuZGxlcgot
ICAgICAgICAgICAgaWYgaGFuZGxlcjoKLSAgICAgICAgICAgICAgICBoYW5kbGVyKHNlbGYuX3Jl
cXVlc3QsIG1lc3NhZ2UpCi0gICAgICAgICAgICAgICAgcmV0dXJuCi0gICAgICAgIGV4Y2VwdCBB
dHRyaWJ1dGVFcnJvciwgZToKLSAgICAgICAgICAgIHBhc3MKLSAgICAgICAgc2VsZi5fc2VuZF9w
b25nKG1lc3NhZ2UpCi0KLSAgICBkZWYgX3Byb2Nlc3NfcG9uZ19tZXNzYWdlKHNlbGYsIG1lc3Nh
Z2UpOgotICAgICAgICAiIiJQcm9jZXNzZXMgcG9uZyBtZXNzYWdlLgotCi0gICAgICAgIEFyZ3M6
Ci0gICAgICAgICAgICBtZXNzYWdlOiBwb25nIG1lc3NhZ2UuCi0gICAgICAgICIiIgotCi0gICAg
ICAgICMgVE9ETyh0eW9zaGlubyk6IEFkZCBwaW5nIHRpbWVvdXQgaGFuZGxpbmcuCi0KLSAgICAg
ICAgaW5mbGlnaHRfcGluZ3MgPSBkZXF1ZSgpCi0KLSAgICAgICAgd2hpbGUgVHJ1ZToKLSAgICAg
ICAgICAgIHRyeToKLSAgICAgICAgICAgICAgICBleHBlY3RlZF9ib2R5ID0gc2VsZi5fcGluZ19x
dWV1ZS5wb3BsZWZ0KCkKLSAgICAgICAgICAgICAgICBpZiBleHBlY3RlZF9ib2R5ID09IG1lc3Nh
Z2U6Ci0gICAgICAgICAgICAgICAgICAgICMgaW5mbGlnaHRfcGluZ3MgY29udGFpbnMgcGluZ3Mg
aWdub3JlZCBieSB0aGUKLSAgICAgICAgICAgICAgICAgICAgIyBvdGhlciBwZWVyLiBKdXN0IGZv
cmdldCB0aGVtLgotICAgICAgICAgICAgICAgICAgICBzZWxmLl9sb2dnZXIuZGVidWcoCi0gICAg
ICAgICAgICAgICAgICAgICAgICAnUGluZyAlciBpcyBhY2tlZCAoJWQgcGluZ3Mgd2VyZSBpZ25v
cmVkKScsCi0gICAgICAgICAgICAgICAgICAgICAgICBleHBlY3RlZF9ib2R5LCBsZW4oaW5mbGln
aHRfcGluZ3MpKQotICAgICAgICAgICAgICAgICAgICBicmVhawotICAgICAgICAgICAgICAgIGVs
c2U6Ci0gICAgICAgICAgICAgICAgICAgIGluZmxpZ2h0X3BpbmdzLmFwcGVuZChleHBlY3RlZF9i
b2R5KQotICAgICAgICAgICAgZXhjZXB0IEluZGV4RXJyb3IsIGU6Ci0gICAgICAgICAgICAgICAg
IyBUaGUgcmVjZWl2ZWQgcG9uZyB3YXMgdW5zb2xpY2l0ZWQgcG9uZy4gS2VlcCB0aGUKLSAgICAg
ICAgICAgICAgICAjIHBpbmcgcXVldWUgYXMgaXMuCi0gICAgICAgICAgICAgICAgc2VsZi5fcGlu
Z19xdWV1ZSA9IGluZmxpZ2h0X3BpbmdzCi0gICAgICAgICAgICAgICAgc2VsZi5fbG9nZ2VyLmRl
YnVnKCdSZWNlaXZlZCBhIHVuc29saWNpdGVkIHBvbmcnKQotICAgICAgICAgICAgICAgIGJyZWFr
Ci0KLSAgICAgICAgdHJ5OgotICAgICAgICAgICAgaGFuZGxlciA9IHNlbGYuX3JlcXVlc3Qub25f
cG9uZ19oYW5kbGVyCi0gICAgICAgICAgICBpZiBoYW5kbGVyOgotICAgICAgICAgICAgICAgIGhh
bmRsZXIoc2VsZi5fcmVxdWVzdCwgbWVzc2FnZSkKLSAgICAgICAgZXhjZXB0IEF0dHJpYnV0ZUVy
cm9yLCBlOgotICAgICAgICAgICAgcGFzcwotCi0gICAgZGVmIHJlY2VpdmVfbWVzc2FnZShzZWxm
KToKLSAgICAgICAgIiIiUmVjZWl2ZSBhIFdlYlNvY2tldCBmcmFtZSBhbmQgcmV0dXJuIGl0cyBw
YXlsb2FkIGFzIGEgdGV4dCBpbgotICAgICAgICB1bmljb2RlIG9yIGEgYmluYXJ5IGluIHN0ci4K
LQotICAgICAgICBSZXR1cm5zOgotICAgICAgICAgICAgcGF5bG9hZCBkYXRhIG9mIHRoZSBmcmFt
ZQotICAgICAgICAgICAgLSBhcyB1bmljb2RlIGluc3RhbmNlIGlmIHJlY2VpdmVkIHRleHQgZnJh
bWUKLSAgICAgICAgICAgIC0gYXMgc3RyIGluc3RhbmNlIGlmIHJlY2VpdmVkIGJpbmFyeSBmcmFt
ZQotICAgICAgICAgICAgb3IgTm9uZSBpZmYgcmVjZWl2ZWQgY2xvc2luZyBoYW5kc2hha2UuCi0g
ICAgICAgIFJhaXNlczoKLSAgICAgICAgICAgIEJhZE9wZXJhdGlvbkV4Y2VwdGlvbjogd2hlbiBj
YWxsZWQgb24gYSBjbGllbnQtdGVybWluYXRlZAotICAgICAgICAgICAgICAgIGNvbm5lY3Rpb24u
Ci0gICAgICAgICAgICBDb25uZWN0aW9uVGVybWluYXRlZEV4Y2VwdGlvbjogd2hlbiByZWFkIHJl
dHVybnMgZW1wdHkKLSAgICAgICAgICAgICAgICBzdHJpbmcuCi0gICAgICAgICAgICBJbnZhbGlk
RnJhbWVFeGNlcHRpb246IHdoZW4gdGhlIGZyYW1lIGNvbnRhaW5zIGludmFsaWQKLSAgICAgICAg
ICAgICAgICBkYXRhLgotICAgICAgICAgICAgVW5zdXBwb3J0ZWRGcmFtZUV4Y2VwdGlvbjogd2hl
biB0aGUgcmVjZWl2ZWQgZnJhbWUgaGFzCi0gICAgICAgICAgICAgICAgZmxhZ3MsIG9wY29kZSB3
ZSBjYW5ub3QgaGFuZGxlLiBZb3UgY2FuIGlnbm9yZSB0aGlzCi0gICAgICAgICAgICAgICAgZXhj
ZXB0aW9uIGFuZCBjb250aW51ZSByZWNlaXZpbmcgdGhlIG5leHQgZnJhbWUuCi0gICAgICAgICIi
IgotCi0gICAgICAgIGlmIHNlbGYuX3JlcXVlc3QuY2xpZW50X3Rlcm1pbmF0ZWQ6Ci0gICAgICAg
ICAgICByYWlzZSBCYWRPcGVyYXRpb25FeGNlcHRpb24oCi0gICAgICAgICAgICAgICAgJ1JlcXVl
c3RlZCByZWNlaXZlX21lc3NhZ2UgYWZ0ZXIgcmVjZWl2aW5nIGEgY2xvc2luZyAnCi0gICAgICAg
ICAgICAgICAgJ2hhbmRzaGFrZScpCi0KLSAgICAgICAgd2hpbGUgVHJ1ZToKLSAgICAgICAgICAg
ICMgbXBfY29ubi5yZWFkIHdpbGwgYmxvY2sgaWYgbm8gYnl0ZXMgYXJlIGF2YWlsYWJsZS4KLSAg
ICAgICAgICAgICMgVGltZW91dCBpcyBjb250cm9sbGVkIGJ5IFRpbWVPdXQgZGlyZWN0aXZlIG9m
IEFwYWNoZS4KLQotICAgICAgICAgICAgZnJhbWUgPSBzZWxmLl9yZWNlaXZlX2ZyYW1lX2FzX2Zy
YW1lX29iamVjdCgpCi0KLSAgICAgICAgICAgICMgQ2hlY2sgdGhlIGNvbnN0cmFpbnQgb24gdGhl
IHBheWxvYWQgc2l6ZSBmb3IgY29udHJvbCBmcmFtZXMKLSAgICAgICAgICAgICMgYmVmb3JlIGV4
dGVuc2lvbiBwcm9jZXNzZXMgdGhlIGZyYW1lLgotICAgICAgICAgICAgIyBTZWUgYWxzbyBodHRw
Oi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC9yZmM2NDU1I3NlY3Rpb24tNS41Ci0gICAgICAgICAgICBp
ZiAoY29tbW9uLmlzX2NvbnRyb2xfb3Bjb2RlKGZyYW1lLm9wY29kZSkgYW5kCi0gICAgICAgICAg
ICAgICAgbGVuKGZyYW1lLnBheWxvYWQpID4gMTI1KToKLSAgICAgICAgICAgICAgICByYWlzZSBJ
bnZhbGlkRnJhbWVFeGNlcHRpb24oCi0gICAgICAgICAgICAgICAgICAgICdQYXlsb2FkIGRhdGEg
c2l6ZSBvZiBjb250cm9sIGZyYW1lcyBtdXN0IGJlIDEyNSBieXRlcyBvciAnCi0gICAgICAgICAg
ICAgICAgICAgICdsZXNzJykKLQotICAgICAgICAgICAgZm9yIGZyYW1lX2ZpbHRlciBpbiBzZWxm
Ll9vcHRpb25zLmluY29taW5nX2ZyYW1lX2ZpbHRlcnM6Ci0gICAgICAgICAgICAgICAgZnJhbWVf
ZmlsdGVyLmZpbHRlcihmcmFtZSkKLQotICAgICAgICAgICAgaWYgZnJhbWUucnN2MSBvciBmcmFt
ZS5yc3YyIG9yIGZyYW1lLnJzdjM6Ci0gICAgICAgICAgICAgICAgcmFpc2UgVW5zdXBwb3J0ZWRG
cmFtZUV4Y2VwdGlvbigKLSAgICAgICAgICAgICAgICAgICAgJ1Vuc3VwcG9ydGVkIGZsYWcgaXMg
c2V0IChyc3YgPSAlZCVkJWQpJyAlCi0gICAgICAgICAgICAgICAgICAgIChmcmFtZS5yc3YxLCBm
cmFtZS5yc3YyLCBmcmFtZS5yc3YzKSkKLQotICAgICAgICAgICAgbWVzc2FnZSA9IHNlbGYuX2dl
dF9tZXNzYWdlX2Zyb21fZnJhbWUoZnJhbWUpCi0gICAgICAgICAgICBpZiBtZXNzYWdlIGlzIE5v
bmU6Ci0gICAgICAgICAgICAgICAgY29udGludWUKLQotICAgICAgICAgICAgZm9yIG1lc3NhZ2Vf
ZmlsdGVyIGluIHNlbGYuX29wdGlvbnMuaW5jb21pbmdfbWVzc2FnZV9maWx0ZXJzOgotICAgICAg
ICAgICAgICAgIG1lc3NhZ2UgPSBtZXNzYWdlX2ZpbHRlci5maWx0ZXIobWVzc2FnZSkKLQotICAg
ICAgICAgICAgaWYgc2VsZi5fb3JpZ2luYWxfb3Bjb2RlID09IGNvbW1vbi5PUENPREVfVEVYVDoK
LSAgICAgICAgICAgICAgICAjIFRoZSBXZWJTb2NrZXQgcHJvdG9jb2wgc2VjdGlvbiA0LjQgc3Bl
Y2lmaWVzIHRoYXQgaW52YWxpZAotICAgICAgICAgICAgICAgICMgY2hhcmFjdGVycyBtdXN0IGJl
IHJlcGxhY2VkIHdpdGggVStmZmZkIFJFUExBQ0VNRU5UCi0gICAgICAgICAgICAgICAgIyBDSEFS
QUNURVIuCi0gICAgICAgICAgICAgICAgdHJ5OgotICAgICAgICAgICAgICAgICAgICByZXR1cm4g
bWVzc2FnZS5kZWNvZGUoJ3V0Zi04JykKLSAgICAgICAgICAgICAgICBleGNlcHQgVW5pY29kZURl
Y29kZUVycm9yLCBlOgotICAgICAgICAgICAgICAgICAgICByYWlzZSBJbnZhbGlkVVRGOEV4Y2Vw
dGlvbihlKQotICAgICAgICAgICAgZWxpZiBzZWxmLl9vcmlnaW5hbF9vcGNvZGUgPT0gY29tbW9u
Lk9QQ09ERV9CSU5BUlk6Ci0gICAgICAgICAgICAgICAgcmV0dXJuIG1lc3NhZ2UKLSAgICAgICAg
ICAgIGVsaWYgc2VsZi5fb3JpZ2luYWxfb3Bjb2RlID09IGNvbW1vbi5PUENPREVfQ0xPU0U6Ci0g
ICAgICAgICAgICAgICAgc2VsZi5fcHJvY2Vzc19jbG9zZV9tZXNzYWdlKG1lc3NhZ2UpCi0gICAg
ICAgICAgICAgICAgcmV0dXJuIE5vbmUKLSAgICAgICAgICAgIGVsaWYgc2VsZi5fb3JpZ2luYWxf
b3Bjb2RlID09IGNvbW1vbi5PUENPREVfUElORzoKLSAgICAgICAgICAgICAgICBzZWxmLl9wcm9j
ZXNzX3BpbmdfbWVzc2FnZShtZXNzYWdlKQotICAgICAgICAgICAgZWxpZiBzZWxmLl9vcmlnaW5h
bF9vcGNvZGUgPT0gY29tbW9uLk9QQ09ERV9QT05HOgotICAgICAgICAgICAgICAgIHNlbGYuX3By
b2Nlc3NfcG9uZ19tZXNzYWdlKG1lc3NhZ2UpCi0gICAgICAgICAgICBlbHNlOgotICAgICAgICAg
ICAgICAgIHJhaXNlIFVuc3VwcG9ydGVkRnJhbWVFeGNlcHRpb24oCi0gICAgICAgICAgICAgICAg
ICAgICdPcGNvZGUgJWQgaXMgbm90IHN1cHBvcnRlZCcgJSBzZWxmLl9vcmlnaW5hbF9vcGNvZGUp
Ci0KLSAgICBkZWYgX3NlbmRfY2xvc2luZ19oYW5kc2hha2Uoc2VsZiwgY29kZSwgcmVhc29uKToK
LSAgICAgICAgYm9keSA9IGNyZWF0ZV9jbG9zaW5nX2hhbmRzaGFrZV9ib2R5KGNvZGUsIHJlYXNv
bikKLSAgICAgICAgZnJhbWUgPSBjcmVhdGVfY2xvc2VfZnJhbWUoCi0gICAgICAgICAgICBib2R5
LCBtYXNrPXNlbGYuX29wdGlvbnMubWFza19zZW5kLAotICAgICAgICAgICAgZnJhbWVfZmlsdGVy
cz1zZWxmLl9vcHRpb25zLm91dGdvaW5nX2ZyYW1lX2ZpbHRlcnMpCi0KLSAgICAgICAgc2VsZi5f
cmVxdWVzdC5zZXJ2ZXJfdGVybWluYXRlZCA9IFRydWUKLQotICAgICAgICBzZWxmLl93cml0ZShm
cmFtZSkKLQotICAgIGRlZiBjbG9zZV9jb25uZWN0aW9uKHNlbGYsIGNvZGU9Y29tbW9uLlNUQVRV
U19OT1JNQUxfQ0xPU1VSRSwgcmVhc29uPScnLAotICAgICAgICAgICAgICAgICAgICAgICAgIHdh
aXRfcmVzcG9uc2U9VHJ1ZSk6Ci0gICAgICAgICIiIkNsb3NlcyBhIFdlYlNvY2tldCBjb25uZWN0
aW9uLgotCi0gICAgICAgIEFyZ3M6Ci0gICAgICAgICAgICBjb2RlOiBTdGF0dXMgY29kZSBmb3Ig
Y2xvc2UgZnJhbWUuIElmIGNvZGUgaXMgTm9uZSwgYSBjbG9zZQotICAgICAgICAgICAgICAgIGZy
YW1lIHdpdGggZW1wdHkgYm9keSB3aWxsIGJlIHNlbnQuCi0gICAgICAgICAgICByZWFzb246IHN0
cmluZyByZXByZXNlbnRpbmcgY2xvc2UgcmVhc29uLgotICAgICAgICAgICAgd2FpdF9yZXNwb25z
ZTogVHJ1ZSB3aGVuIGNhbGxlciB3YW50IHRvIHdhaXQgdGhlIHJlc3BvbnNlLgotICAgICAgICBS
YWlzZXM6Ci0gICAgICAgICAgICBCYWRPcGVyYXRpb25FeGNlcHRpb246IHdoZW4gcmVhc29uIGlz
IHNwZWNpZmllZCB3aXRoIGNvZGUgTm9uZQotICAgICAgICAgICAgb3IgcmVhc29uIGlzIG5vdCBh
biBpbnN0YW5jZSBvZiBib3RoIHN0ciBhbmQgdW5pY29kZS4KLSAgICAgICAgIiIiCi0KLSAgICAg
ICAgaWYgc2VsZi5fcmVxdWVzdC5zZXJ2ZXJfdGVybWluYXRlZDoKLSAgICAgICAgICAgIHNlbGYu
X2xvZ2dlci5kZWJ1ZygKLSAgICAgICAgICAgICAgICAnUmVxdWVzdGVkIGNsb3NlX2Nvbm5lY3Rp
b24gYnV0IHNlcnZlciBpcyBhbHJlYWR5IHRlcm1pbmF0ZWQnKQotICAgICAgICAgICAgcmV0dXJu
Ci0KLSAgICAgICAgaWYgY29kZSBpcyBOb25lOgotICAgICAgICAgICAgaWYgcmVhc29uIGlzIG5v
dCBOb25lIGFuZCBsZW4ocmVhc29uKSA+IDA6Ci0gICAgICAgICAgICAgICAgcmFpc2UgQmFkT3Bl
cmF0aW9uRXhjZXB0aW9uKAotICAgICAgICAgICAgICAgICAgICAnY2xvc2UgcmVhc29uIG11c3Qg
bm90IGJlIHNwZWNpZmllZCBpZiBjb2RlIGlzIE5vbmUnKQotICAgICAgICAgICAgcmVhc29uID0g
JycKLSAgICAgICAgZWxzZToKLSAgICAgICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKHJlYXNvbiwg
c3RyKSBhbmQgbm90IGlzaW5zdGFuY2UocmVhc29uLCB1bmljb2RlKToKLSAgICAgICAgICAgICAg
ICByYWlzZSBCYWRPcGVyYXRpb25FeGNlcHRpb24oCi0gICAgICAgICAgICAgICAgICAgICdjbG9z
ZSByZWFzb24gbXVzdCBiZSBhbiBpbnN0YW5jZSBvZiBzdHIgb3IgdW5pY29kZScpCi0KLSAgICAg
ICAgc2VsZi5fc2VuZF9jbG9zaW5nX2hhbmRzaGFrZShjb2RlLCByZWFzb24pCi0gICAgICAgIHNl
bGYuX2xvZ2dlci5kZWJ1ZygKLSAgICAgICAgICAgICdJbml0aWF0ZWQgY2xvc2luZyBoYW5kc2hh
a2UgKGNvZGU9JXIsIHJlYXNvbj0lciknLAotICAgICAgICAgICAgY29kZSwgcmVhc29uKQotCi0g
ICAgICAgIGlmIChjb2RlID09IGNvbW1vbi5TVEFUVVNfR09JTkdfQVdBWSBvcgotICAgICAgICAg
ICAgY29kZSA9PSBjb21tb24uU1RBVFVTX1BST1RPQ09MX0VSUk9SKSBvciBub3Qgd2FpdF9yZXNw
b25zZToKLSAgICAgICAgICAgICMgSXQgZG9lc24ndCBtYWtlIHNlbnNlIHRvIHdhaXQgZm9yIGEg
Y2xvc2UgZnJhbWUgaWYgdGhlIHJlYXNvbiBpcwotICAgICAgICAgICAgIyBwcm90b2NvbCBlcnJv
ciBvciB0aGF0IHRoZSBzZXJ2ZXIgaXMgZ29pbmcgYXdheS4gRm9yIHNvbWUgb2YKLSAgICAgICAg
ICAgICMgb3RoZXIgcmVhc29ucywgaXQgbWlnaHQgbm90IG1ha2Ugc2Vuc2UgdG8gd2FpdCBmb3Ig
YSBjbG9zZSBmcmFtZSwKLSAgICAgICAgICAgICMgYnV0IGl0J3Mgbm90IGNsZWFyLCB5ZXQuCi0g
ICAgICAgICAgICByZXR1cm4KLQotICAgICAgICAjIFRPRE8odWthaSk6IDIuIHdhaXQgdW50aWwg
dGhlIC9jbGllbnQgdGVybWluYXRlZC8gZmxhZyBoYXMgYmVlbiBzZXQsCi0gICAgICAgICMgb3Ig
dW50aWwgYSBzZXJ2ZXItZGVmaW5lZCB0aW1lb3V0IGV4cGlyZXMuCi0gICAgICAgICMKLSAgICAg
ICAgIyBGb3Igbm93LCB3ZSBleHBlY3QgcmVjZWl2aW5nIGNsb3NpbmcgaGFuZHNoYWtlIHJpZ2h0
IGFmdGVyIHNlbmRpbmcKLSAgICAgICAgIyBvdXQgY2xvc2luZyBoYW5kc2hha2UuCi0gICAgICAg
IG1lc3NhZ2UgPSBzZWxmLnJlY2VpdmVfbWVzc2FnZSgpCi0gICAgICAgIGlmIG1lc3NhZ2UgaXMg
bm90IE5vbmU6Ci0gICAgICAgICAgICByYWlzZSBDb25uZWN0aW9uVGVybWluYXRlZEV4Y2VwdGlv
bigKLSAgICAgICAgICAgICAgICAnRGlkblwndCByZWNlaXZlIHZhbGlkIGFjayBmb3IgY2xvc2lu
ZyBoYW5kc2hha2UnKQotICAgICAgICAjIFRPRE86IDMuIGNsb3NlIHRoZSBXZWJTb2NrZXQgY29u
bmVjdGlvbi4KLSAgICAgICAgIyBub3RlOiBtb2RfcHl0aG9uIENvbm5lY3Rpb24gKG1wX2Nvbm4p
IGRvZXNuJ3QgaGF2ZSBjbG9zZSBtZXRob2QuCi0KLSAgICBkZWYgc2VuZF9waW5nKHNlbGYsIGJv
ZHk9JycpOgotICAgICAgICBmcmFtZSA9IGNyZWF0ZV9waW5nX2ZyYW1lKAotICAgICAgICAgICAg
Ym9keSwKLSAgICAgICAgICAgIHNlbGYuX29wdGlvbnMubWFza19zZW5kLAotICAgICAgICAgICAg
c2VsZi5fb3B0aW9ucy5vdXRnb2luZ19mcmFtZV9maWx0ZXJzKQotICAgICAgICBzZWxmLl93cml0
ZShmcmFtZSkKLQotICAgICAgICBzZWxmLl9waW5nX3F1ZXVlLmFwcGVuZChib2R5KQotCi0gICAg
ZGVmIF9zZW5kX3Bvbmcoc2VsZiwgYm9keSk6Ci0gICAgICAgIGZyYW1lID0gY3JlYXRlX3Bvbmdf
ZnJhbWUoCi0gICAgICAgICAgICBib2R5LAotICAgICAgICAgICAgc2VsZi5fb3B0aW9ucy5tYXNr
X3NlbmQsCi0gICAgICAgICAgICBzZWxmLl9vcHRpb25zLm91dGdvaW5nX2ZyYW1lX2ZpbHRlcnMp
Ci0gICAgICAgIHNlbGYuX3dyaXRlKGZyYW1lKQotCi0gICAgZGVmIGdldF9sYXN0X3JlY2VpdmVk
X29wY29kZShzZWxmKToKLSAgICAgICAgIiIiUmV0dXJucyB0aGUgb3Bjb2RlIG9mIHRoZSBXZWJT
b2NrZXQgbWVzc2FnZSB3aGljaCB0aGUgbGFzdCByZWNlaXZlZAotICAgICAgICBmcmFtZSBiZWxv
bmdzIHRvLiBUaGUgcmV0dXJuIHZhbHVlIGlzIHZhbGlkIGlmZiBpbW1lZGlhdGVseSBhZnRlcgot
ICAgICAgICByZWNlaXZlX21lc3NhZ2UgY2FsbC4KLSAgICAgICAgIiIiCi0KLSAgICAgICAgcmV0
dXJuIHNlbGYuX29yaWdpbmFsX29wY29kZQotCi0KLSMgdmk6c3RzPTQgc3c9NCBldApkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9w
eXdlYnNvY2tldC9zcmMvbW9kX3B5d2Vic29ja2V0L2NvbW1vbi5weSBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3JjL21vZF9w
eXdlYnNvY2tldC9jb21tb24ucHkKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDJmYzJl
YWQ2NDgxYmU1N2I3YWU0YzY2OGMyMmVjYjFlYzRiYmNiMmIuLjAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9zcmMvbW9kX3B5d2Vic29ja2V0L2NvbW1v
bi5weQorKysgL2Rldi9udWxsCkBAIC0xLDMwMyArMCwwIEBACi0jIENvcHlyaWdodCAyMDEyLCBH
b29nbGUgSW5jLgotIyBBbGwgcmlnaHRzIHJlc2VydmVkLgotIwotIyBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSMgbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zIGFyZQotIyBtZXQ6Ci0jCi0jICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0jIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSMgICAgICogUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQotIyBj
b3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyCi0jIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUKLSMgZGlzdHJpYnV0aW9uLgotIyAgICAgKiBOZWl0aGVyIHRo
ZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCi0jIGNvbnRyaWJ1dG9y
cyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9t
Ci0jIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Np
b24uCi0jCi0jIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xE
RVJTIEFORCBDT05UUklCVVRPUlMKLSMgIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKLSMgTElNSVRFRCBUTywgVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCi0jIEEgUEFS
VElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09Q
WVJJR0hUCi0jIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLAotIyBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCi0jIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAotIyBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkKLSMgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVAotIyAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSMgT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLQot
Ci0iIiJUaGlzIGZpbGUgbXVzdCBub3QgZGVwZW5kIG9uIGFueSBtb2R1bGUgc3BlY2lmaWMgdG8g
dGhlIFdlYlNvY2tldCBwcm90b2NvbC4KLSIiIgotCi0KLWZyb20gbW9kX3B5d2Vic29ja2V0IGlt
cG9ydCBodHRwX2hlYWRlcl91dGlsCi0KLQotIyBBZGRpdGlvbmFsIGxvZyBsZXZlbCBkZWZpbml0
aW9ucy4KLUxPR0xFVkVMX0ZJTkUgPSA5Ci0KLSMgQ29uc3RhbnRzIGluZGljYXRpbmcgV2ViU29j
a2V0IHByb3RvY29sIHZlcnNpb24uCi1WRVJTSU9OX0hJWElFNzUgPSAtMQotVkVSU0lPTl9IWUJJ
MDAgPSAwCi1WRVJTSU9OX0hZQkkwMSA9IDEKLVZFUlNJT05fSFlCSTAyID0gMgotVkVSU0lPTl9I
WUJJMDMgPSAyCi1WRVJTSU9OX0hZQkkwNCA9IDQKLVZFUlNJT05fSFlCSTA1ID0gNQotVkVSU0lP
Tl9IWUJJMDYgPSA2Ci1WRVJTSU9OX0hZQkkwNyA9IDcKLVZFUlNJT05fSFlCSTA4ID0gOAotVkVS
U0lPTl9IWUJJMDkgPSA4Ci1WRVJTSU9OX0hZQkkxMCA9IDgKLVZFUlNJT05fSFlCSTExID0gOAot
VkVSU0lPTl9IWUJJMTIgPSA4Ci1WRVJTSU9OX0hZQkkxMyA9IDEzCi1WRVJTSU9OX0hZQkkxNCA9
IDEzCi1WRVJTSU9OX0hZQkkxNSA9IDEzCi1WRVJTSU9OX0hZQkkxNiA9IDEzCi1WRVJTSU9OX0hZ
QkkxNyA9IDEzCi0KLSMgQ29uc3RhbnRzIGluZGljYXRpbmcgV2ViU29ja2V0IHByb3RvY29sIGxh
dGVzdCB2ZXJzaW9uLgotVkVSU0lPTl9IWUJJX0xBVEVTVCA9IFZFUlNJT05fSFlCSTEzCi0KLSMg
UG9ydCBudW1iZXJzCi1ERUZBVUxUX1dFQl9TT0NLRVRfUE9SVCA9IDgwCi1ERUZBVUxUX1dFQl9T
T0NLRVRfU0VDVVJFX1BPUlQgPSA0NDMKLQotIyBTY2hlbWVzCi1XRUJfU09DS0VUX1NDSEVNRSA9
ICd3cycKLVdFQl9TT0NLRVRfU0VDVVJFX1NDSEVNRSA9ICd3c3MnCi0KLSMgRnJhbWUgb3Bjb2Rl
cyBkZWZpbmVkIGluIHRoZSBzcGVjLgotT1BDT0RFX0NPTlRJTlVBVElPTiA9IDB4MAotT1BDT0RF
X1RFWFQgPSAweDEKLU9QQ09ERV9CSU5BUlkgPSAweDIKLU9QQ09ERV9DTE9TRSA9IDB4OAotT1BD
T0RFX1BJTkcgPSAweDkKLU9QQ09ERV9QT05HID0gMHhhCi0KLSMgVVVJRHMgdXNlZCBieSBIeUJp
IDA0IGFuZCBsYXRlciBvcGVuaW5nIGhhbmRzaGFrZSBhbmQgZnJhbWUgbWFza2luZy4KLVdFQlNP
Q0tFVF9BQ0NFUFRfVVVJRCA9ICcyNThFQUZBNS1FOTE0LTQ3REEtOTVDQS1DNUFCMERDODVCMTEn
Ci0KLSMgT3BlbmluZyBoYW5kc2hha2UgaGVhZGVyIG5hbWVzIGFuZCBleHBlY3RlZCB2YWx1ZXMu
Ci1VUEdSQURFX0hFQURFUiA9ICdVcGdyYWRlJwotV0VCU09DS0VUX1VQR1JBREVfVFlQRSA9ICd3
ZWJzb2NrZXQnCi1XRUJTT0NLRVRfVVBHUkFERV9UWVBFX0hJWElFNzUgPSAnV2ViU29ja2V0Jwot
Q09OTkVDVElPTl9IRUFERVIgPSAnQ29ubmVjdGlvbicKLVVQR1JBREVfQ09OTkVDVElPTl9UWVBF
ID0gJ1VwZ3JhZGUnCi1IT1NUX0hFQURFUiA9ICdIb3N0JwotT1JJR0lOX0hFQURFUiA9ICdPcmln
aW4nCi1TRUNfV0VCU09DS0VUX09SSUdJTl9IRUFERVIgPSAnU2VjLVdlYlNvY2tldC1PcmlnaW4n
Ci1TRUNfV0VCU09DS0VUX0tFWV9IRUFERVIgPSAnU2VjLVdlYlNvY2tldC1LZXknCi1TRUNfV0VC
U09DS0VUX0FDQ0VQVF9IRUFERVIgPSAnU2VjLVdlYlNvY2tldC1BY2NlcHQnCi1TRUNfV0VCU09D
S0VUX1ZFUlNJT05fSEVBREVSID0gJ1NlYy1XZWJTb2NrZXQtVmVyc2lvbicKLVNFQ19XRUJTT0NL
RVRfUFJPVE9DT0xfSEVBREVSID0gJ1NlYy1XZWJTb2NrZXQtUHJvdG9jb2wnCi1TRUNfV0VCU09D
S0VUX0VYVEVOU0lPTlNfSEVBREVSID0gJ1NlYy1XZWJTb2NrZXQtRXh0ZW5zaW9ucycKLVNFQ19X
RUJTT0NLRVRfRFJBRlRfSEVBREVSID0gJ1NlYy1XZWJTb2NrZXQtRHJhZnQnCi1TRUNfV0VCU09D
S0VUX0tFWTFfSEVBREVSID0gJ1NlYy1XZWJTb2NrZXQtS2V5MScKLVNFQ19XRUJTT0NLRVRfS0VZ
Ml9IRUFERVIgPSAnU2VjLVdlYlNvY2tldC1LZXkyJwotU0VDX1dFQlNPQ0tFVF9MT0NBVElPTl9I
RUFERVIgPSAnU2VjLVdlYlNvY2tldC1Mb2NhdGlvbicKLQotIyBFeHRlbnNpb25zCi1ERUZMQVRF
X0ZSQU1FX0VYVEVOU0lPTiA9ICdkZWZsYXRlLWZyYW1lJwotUEVSTUVTU0FHRV9DT01QUkVTU0lP
Tl9FWFRFTlNJT04gPSAncGVybWVzc2FnZS1jb21wcmVzcycKLVBFUk1FU1NBR0VfREVGTEFURV9F
WFRFTlNJT04gPSAncGVybWVzc2FnZS1kZWZsYXRlJwotWF9XRUJLSVRfREVGTEFURV9GUkFNRV9F
WFRFTlNJT04gPSAneC13ZWJraXQtZGVmbGF0ZS1mcmFtZScKLVhfV0VCS0lUX1BFUk1FU1NBR0Vf
Q09NUFJFU1NJT05fRVhURU5TSU9OID0gJ3gtd2Via2l0LXBlcm1lc3NhZ2UtY29tcHJlc3MnCi1N
VVhfRVhURU5TSU9OID0gJ211eF9ET19OT1RfVVNFJwotCi0jIFN0YXR1cyBjb2RlcwotIyBDb2Rl
IFNUQVRVU19OT19TVEFUVVNfUkVDRUlWRUQsIFNUQVRVU19BQk5PUk1BTF9DTE9TVVJFLCBhbmQK
LSMgU1RBVFVTX1RMU19IQU5EU0hBS0UgYXJlIHBzZXVkbyBjb2RlcyB0byBpbmRpY2F0ZSBzcGVj
aWZpYyBlcnJvciBjYXNlcy4KLSMgQ291bGQgbm90IGJlIHVzZWQgZm9yIGNvZGVzIGluIGFjdHVh
bCBjbG9zaW5nIGZyYW1lcy4KLSMgQXBwbGljYXRpb24gbGV2ZWwgZXJyb3JzIG11c3QgdXNlIGNv
ZGVzIGluIHRoZSByYW5nZQotIyBTVEFUVVNfVVNFUl9SRUdJU1RFUkVEX0JBU0UgdG8gU1RBVFVT
X1VTRVJfUFJJVkFURV9NQVguIFRoZSBjb2RlcyBpbiB0aGUKLSMgcmFuZ2UgU1RBVFVTX1VTRVJf
UkVHSVNURVJFRF9CQVNFIHRvIFNUQVRVU19VU0VSX1JFR0lTVEVSRURfTUFYIGFyZSBtYW5hZ2Vk
Ci0jIGJ5IElBTkEuIFVzdWFsbHkgYXBwbGljYXRpb24gbXVzdCBkZWZpbmUgdXNlciBwcm90b2Nv
bCBsZXZlbCBlcnJvcnMgaW4gdGhlCi0jIHJhbmdlIFNUQVRVU19VU0VSX1BSSVZBVEVfQkFTRSB0
byBTVEFUVVNfVVNFUl9QUklWQVRFX01BWC4KLVNUQVRVU19OT1JNQUxfQ0xPU1VSRSA9IDEwMDAK
LVNUQVRVU19HT0lOR19BV0FZID0gMTAwMQotU1RBVFVTX1BST1RPQ09MX0VSUk9SID0gMTAwMgot
U1RBVFVTX1VOU1VQUE9SVEVEX0RBVEEgPSAxMDAzCi1TVEFUVVNfTk9fU1RBVFVTX1JFQ0VJVkVE
ID0gMTAwNQotU1RBVFVTX0FCTk9STUFMX0NMT1NVUkUgPSAxMDA2Ci1TVEFUVVNfSU5WQUxJRF9G
UkFNRV9QQVlMT0FEX0RBVEEgPSAxMDA3Ci1TVEFUVVNfUE9MSUNZX1ZJT0xBVElPTiA9IDEwMDgK
LVNUQVRVU19NRVNTQUdFX1RPT19CSUcgPSAxMDA5Ci1TVEFUVVNfTUFOREFUT1JZX0VYVEVOU0lP
TiA9IDEwMTAKLVNUQVRVU19JTlRFUk5BTF9FTkRQT0lOVF9FUlJPUiA9IDEwMTEKLVNUQVRVU19U
TFNfSEFORFNIQUtFID0gMTAxNQotU1RBVFVTX1VTRVJfUkVHSVNURVJFRF9CQVNFID0gMzAwMAot
U1RBVFVTX1VTRVJfUkVHSVNURVJFRF9NQVggPSAzOTk5Ci1TVEFUVVNfVVNFUl9QUklWQVRFX0JB
U0UgPSA0MDAwCi1TVEFUVVNfVVNFUl9QUklWQVRFX01BWCA9IDQ5OTkKLSMgRm9sbG93aW5nIGRl
ZmluaXRpb25zIGFyZSBhbGlhc2VzIHRvIGtlZXAgY29tcGF0aWJpbGl0eS4gQXBwbGljYXRpb25z
IG11c3QKLSMgbm90IHVzZSB0aGVzZSBvYnNvbGV0ZWQgZGVmaW5pdGlvbnMgYW55bW9yZS4KLVNU
QVRVU19OT1JNQUwgPSBTVEFUVVNfTk9STUFMX0NMT1NVUkUKLVNUQVRVU19VTlNVUFBPUlRFRCA9
IFNUQVRVU19VTlNVUFBPUlRFRF9EQVRBCi1TVEFUVVNfQ09ERV9OT1RfQVZBSUxBQkxFID0gU1RB
VFVTX05PX1NUQVRVU19SRUNFSVZFRAotU1RBVFVTX0FCTk9STUFMX0NMT1NFID0gU1RBVFVTX0FC
Tk9STUFMX0NMT1NVUkUKLVNUQVRVU19JTlZBTElEX0ZSQU1FX1BBWUxPQUQgPSBTVEFUVVNfSU5W
QUxJRF9GUkFNRV9QQVlMT0FEX0RBVEEKLVNUQVRVU19NQU5EQVRPUllfRVhUID0gU1RBVFVTX01B
TkRBVE9SWV9FWFRFTlNJT04KLQotIyBIVFRQIHN0YXR1cyBjb2RlcwotSFRUUF9TVEFUVVNfQkFE
X1JFUVVFU1QgPSA0MDAKLUhUVFBfU1RBVFVTX0ZPUkJJRERFTiA9IDQwMwotSFRUUF9TVEFUVVNf
Tk9UX0ZPVU5EID0gNDA0Ci0KLQotZGVmIGlzX2NvbnRyb2xfb3Bjb2RlKG9wY29kZSk6Ci0gICAg
cmV0dXJuIChvcGNvZGUgPj4gMykgPT0gMQotCi0KLWNsYXNzIEV4dGVuc2lvblBhcmFtZXRlcihv
YmplY3QpOgotICAgICIiIkhvbGRzIGluZm9ybWF0aW9uIGFib3V0IGFuIGV4dGVuc2lvbiB3aGlj
aCBpcyBleGNoYW5nZWQgb24gZXh0ZW5zaW9uCi0gICAgbmVnb3RpYXRpb24gaW4gb3BlbmluZyBo
YW5kc2hha2UuCi0gICAgIiIiCi0KLSAgICBkZWYgX19pbml0X18oc2VsZiwgbmFtZSk6Ci0gICAg
ICAgIHNlbGYuX25hbWUgPSBuYW1lCi0gICAgICAgICMgVE9ETyh0eW9zaGlubyk6IENoYW5nZSB0
aGUgZGF0YSBzdHJ1Y3R1cmUgdG8gbW9yZSBlZmZpY2llbnQgb25lIHN1Y2gKLSAgICAgICAgIyBh
cyBkaWN0IHdoZW4gdGhlIHNwZWMgY2hhbmdlcyB0byBzYXkgbGlrZQotICAgICAgICAjIC0gUGFy
YW1ldGVyIG5hbWVzIG11c3QgYmUgdW5pcXVlCi0gICAgICAgICMgLSBUaGUgb3JkZXIgb2YgcGFy
YW1ldGVycyBpcyBub3Qgc2lnbmlmaWNhbnQKLSAgICAgICAgc2VsZi5fcGFyYW1ldGVycyA9IFtd
Ci0KLSAgICBkZWYgbmFtZShzZWxmKToKLSAgICAgICAgcmV0dXJuIHNlbGYuX25hbWUKLQotICAg
IGRlZiBhZGRfcGFyYW1ldGVyKHNlbGYsIG5hbWUsIHZhbHVlKToKLSAgICAgICAgc2VsZi5fcGFy
YW1ldGVycy5hcHBlbmQoKG5hbWUsIHZhbHVlKSkKLQotICAgIGRlZiBnZXRfcGFyYW1ldGVycyhz
ZWxmKToKLSAgICAgICAgcmV0dXJuIHNlbGYuX3BhcmFtZXRlcnMKLQotICAgIGRlZiBnZXRfcGFy
YW1ldGVyX25hbWVzKHNlbGYpOgotICAgICAgICByZXR1cm4gW25hbWUgZm9yIG5hbWUsIHVudXNl
ZF92YWx1ZSBpbiBzZWxmLl9wYXJhbWV0ZXJzXQotCi0gICAgZGVmIGhhc19wYXJhbWV0ZXIoc2Vs
ZiwgbmFtZSk6Ci0gICAgICAgIGZvciBwYXJhbV9uYW1lLCBwYXJhbV92YWx1ZSBpbiBzZWxmLl9w
YXJhbWV0ZXJzOgotICAgICAgICAgICAgaWYgcGFyYW1fbmFtZSA9PSBuYW1lOgotICAgICAgICAg
ICAgICAgIHJldHVybiBUcnVlCi0gICAgICAgIHJldHVybiBGYWxzZQotCi0gICAgZGVmIGdldF9w
YXJhbWV0ZXJfdmFsdWUoc2VsZiwgbmFtZSk6Ci0gICAgICAgIGZvciBwYXJhbV9uYW1lLCBwYXJh
bV92YWx1ZSBpbiBzZWxmLl9wYXJhbWV0ZXJzOgotICAgICAgICAgICAgaWYgcGFyYW1fbmFtZSA9
PSBuYW1lOgotICAgICAgICAgICAgICAgIHJldHVybiBwYXJhbV92YWx1ZQotCi0KLWNsYXNzIEV4
dGVuc2lvblBhcnNpbmdFeGNlcHRpb24oRXhjZXB0aW9uKToKLSAgICBkZWYgX19pbml0X18oc2Vs
ZiwgbmFtZSk6Ci0gICAgICAgIHN1cGVyKEV4dGVuc2lvblBhcnNpbmdFeGNlcHRpb24sIHNlbGYp
Ll9faW5pdF9fKG5hbWUpCi0KLQotZGVmIF9wYXJzZV9leHRlbnNpb25fcGFyYW0oc3RhdGUsIGRl
ZmluaXRpb24pOgotICAgIHBhcmFtX25hbWUgPSBodHRwX2hlYWRlcl91dGlsLmNvbnN1bWVfdG9r
ZW4oc3RhdGUpCi0KLSAgICBpZiBwYXJhbV9uYW1lIGlzIE5vbmU6Ci0gICAgICAgIHJhaXNlIEV4
dGVuc2lvblBhcnNpbmdFeGNlcHRpb24oJ05vIHZhbGlkIHBhcmFtZXRlciBuYW1lIGZvdW5kJykK
LQotICAgIGh0dHBfaGVhZGVyX3V0aWwuY29uc3VtZV9sd3NlcyhzdGF0ZSkKLQotICAgIGlmIG5v
dCBodHRwX2hlYWRlcl91dGlsLmNvbnN1bWVfc3RyaW5nKHN0YXRlLCAnPScpOgotICAgICAgICBk
ZWZpbml0aW9uLmFkZF9wYXJhbWV0ZXIocGFyYW1fbmFtZSwgTm9uZSkKLSAgICAgICAgcmV0dXJu
Ci0KLSAgICBodHRwX2hlYWRlcl91dGlsLmNvbnN1bWVfbHdzZXMoc3RhdGUpCi0KLSAgICAjIFRP
RE8odHlvc2hpbm8pOiBBZGQgY29kZSB0byB2YWxpZGF0ZSB0aGF0IHBhcnNlZCBwYXJhbV92YWx1
ZSBpcyB0b2tlbgotICAgIHBhcmFtX3ZhbHVlID0gaHR0cF9oZWFkZXJfdXRpbC5jb25zdW1lX3Rv
a2VuX29yX3F1b3RlZF9zdHJpbmcoc3RhdGUpCi0gICAgaWYgcGFyYW1fdmFsdWUgaXMgTm9uZToK
LSAgICAgICAgcmFpc2UgRXh0ZW5zaW9uUGFyc2luZ0V4Y2VwdGlvbigKLSAgICAgICAgICAgICdO
byB2YWxpZCBwYXJhbWV0ZXIgdmFsdWUgZm91bmQgb24gdGhlIHJpZ2h0LWhhbmQgc2lkZSBvZiAn
Ci0gICAgICAgICAgICAncGFyYW1ldGVyICVyJyAlIHBhcmFtX25hbWUpCi0KLSAgICBkZWZpbml0
aW9uLmFkZF9wYXJhbWV0ZXIocGFyYW1fbmFtZSwgcGFyYW1fdmFsdWUpCi0KLQotZGVmIF9wYXJz
ZV9leHRlbnNpb24oc3RhdGUpOgotICAgIGV4dGVuc2lvbl90b2tlbiA9IGh0dHBfaGVhZGVyX3V0
aWwuY29uc3VtZV90b2tlbihzdGF0ZSkKLSAgICBpZiBleHRlbnNpb25fdG9rZW4gaXMgTm9uZToK
LSAgICAgICAgcmV0dXJuIE5vbmUKLQotICAgIGV4dGVuc2lvbiA9IEV4dGVuc2lvblBhcmFtZXRl
cihleHRlbnNpb25fdG9rZW4pCi0KLSAgICB3aGlsZSBUcnVlOgotICAgICAgICBodHRwX2hlYWRl
cl91dGlsLmNvbnN1bWVfbHdzZXMoc3RhdGUpCi0KLSAgICAgICAgaWYgbm90IGh0dHBfaGVhZGVy
X3V0aWwuY29uc3VtZV9zdHJpbmcoc3RhdGUsICc7Jyk6Ci0gICAgICAgICAgICBicmVhawotCi0g
ICAgICAgIGh0dHBfaGVhZGVyX3V0aWwuY29uc3VtZV9sd3NlcyhzdGF0ZSkKLQotICAgICAgICB0
cnk6Ci0gICAgICAgICAgICBfcGFyc2VfZXh0ZW5zaW9uX3BhcmFtKHN0YXRlLCBleHRlbnNpb24p
Ci0gICAgICAgIGV4Y2VwdCBFeHRlbnNpb25QYXJzaW5nRXhjZXB0aW9uLCBlOgotICAgICAgICAg
ICAgcmFpc2UgRXh0ZW5zaW9uUGFyc2luZ0V4Y2VwdGlvbigKLSAgICAgICAgICAgICAgICAnRmFp
bGVkIHRvIHBhcnNlIHBhcmFtZXRlciBmb3IgJXIgKCVyKScgJQotICAgICAgICAgICAgICAgIChl
eHRlbnNpb25fdG9rZW4sIGUpKQotCi0gICAgcmV0dXJuIGV4dGVuc2lvbgotCi0KLWRlZiBwYXJz
ZV9leHRlbnNpb25zKGRhdGEpOgotICAgICIiIlBhcnNlcyBTZWMtV2ViU29ja2V0LUV4dGVuc2lv
bnMgaGVhZGVyIHZhbHVlIHJldHVybnMgYSBsaXN0IG9mCi0gICAgRXh0ZW5zaW9uUGFyYW1ldGVy
IG9iamVjdHMuCi0KLSAgICBMZWFkaW5nIExXU2VzIG11c3QgYmUgdHJpbW1lZC4KLSAgICAiIiIK
LQotICAgIHN0YXRlID0gaHR0cF9oZWFkZXJfdXRpbC5QYXJzaW5nU3RhdGUoZGF0YSkKLQotICAg
IGV4dGVuc2lvbl9saXN0ID0gW10KLSAgICB3aGlsZSBUcnVlOgotICAgICAgICBleHRlbnNpb24g
PSBfcGFyc2VfZXh0ZW5zaW9uKHN0YXRlKQotICAgICAgICBpZiBleHRlbnNpb24gaXMgbm90IE5v
bmU6Ci0gICAgICAgICAgICBleHRlbnNpb25fbGlzdC5hcHBlbmQoZXh0ZW5zaW9uKQotCi0gICAg
ICAgIGh0dHBfaGVhZGVyX3V0aWwuY29uc3VtZV9sd3NlcyhzdGF0ZSkKLQotICAgICAgICBpZiBo
dHRwX2hlYWRlcl91dGlsLnBlZWsoc3RhdGUpIGlzIE5vbmU6Ci0gICAgICAgICAgICBicmVhawot
Ci0gICAgICAgIGlmIG5vdCBodHRwX2hlYWRlcl91dGlsLmNvbnN1bWVfc3RyaW5nKHN0YXRlLCAn
LCcpOgotICAgICAgICAgICAgcmFpc2UgRXh0ZW5zaW9uUGFyc2luZ0V4Y2VwdGlvbigKLSAgICAg
ICAgICAgICAgICAnRmFpbGVkIHRvIHBhcnNlIFNlYy1XZWJTb2NrZXQtRXh0ZW5zaW9ucyBoZWFk
ZXI6ICcKLSAgICAgICAgICAgICAgICAnRXhwZWN0ZWQgYSBjb21tYSBidXQgZm91bmQgJXInICUK
LSAgICAgICAgICAgICAgICBodHRwX2hlYWRlcl91dGlsLnBlZWsoc3RhdGUpKQotCi0gICAgICAg
IGh0dHBfaGVhZGVyX3V0aWwuY29uc3VtZV9sd3NlcyhzdGF0ZSkKLQotICAgIGlmIGxlbihleHRl
bnNpb25fbGlzdCkgPT0gMDoKLSAgICAgICAgcmFpc2UgRXh0ZW5zaW9uUGFyc2luZ0V4Y2VwdGlv
bigKLSAgICAgICAgICAgICdObyB2YWxpZCBleHRlbnNpb24gZW50cnkgZm91bmQnKQotCi0gICAg
cmV0dXJuIGV4dGVuc2lvbl9saXN0Ci0KLQotZGVmIGZvcm1hdF9leHRlbnNpb24oZXh0ZW5zaW9u
KToKLSAgICAiIiJGb3JtYXRzIGFuIEV4dGVuc2lvblBhcmFtZXRlciBvYmplY3QuIiIiCi0KLSAg
ICBmb3JtYXR0ZWRfcGFyYW1zID0gW2V4dGVuc2lvbi5uYW1lKCldCi0gICAgZm9yIHBhcmFtX25h
bWUsIHBhcmFtX3ZhbHVlIGluIGV4dGVuc2lvbi5nZXRfcGFyYW1ldGVycygpOgotICAgICAgICBp
ZiBwYXJhbV92YWx1ZSBpcyBOb25lOgotICAgICAgICAgICAgZm9ybWF0dGVkX3BhcmFtcy5hcHBl
bmQocGFyYW1fbmFtZSkKLSAgICAgICAgZWxzZToKLSAgICAgICAgICAgIHF1b3RlZF92YWx1ZSA9
IGh0dHBfaGVhZGVyX3V0aWwucXVvdGVfaWZfbmVjZXNzYXJ5KHBhcmFtX3ZhbHVlKQotICAgICAg
ICAgICAgZm9ybWF0dGVkX3BhcmFtcy5hcHBlbmQoJyVzPSVzJyAlIChwYXJhbV9uYW1lLCBxdW90
ZWRfdmFsdWUpKQotICAgIHJldHVybiAnOyAnLmpvaW4oZm9ybWF0dGVkX3BhcmFtcykKLQotCi1k
ZWYgZm9ybWF0X2V4dGVuc2lvbnMoZXh0ZW5zaW9uX2xpc3QpOgotICAgICIiIkZvcm1hdHMgYSBs
aXN0IG9mIEV4dGVuc2lvblBhcmFtZXRlciBvYmplY3RzLiIiIgotCi0gICAgZm9ybWF0dGVkX2V4
dGVuc2lvbl9saXN0ID0gW10KLSAgICBmb3IgZXh0ZW5zaW9uIGluIGV4dGVuc2lvbl9saXN0Ogot
ICAgICAgICBmb3JtYXR0ZWRfZXh0ZW5zaW9uX2xpc3QuYXBwZW5kKGZvcm1hdF9leHRlbnNpb24o
ZXh0ZW5zaW9uKSkKLSAgICByZXR1cm4gJywgJy5qb2luKGZvcm1hdHRlZF9leHRlbnNpb25fbGlz
dCkKLQotCi0jIHZpOnN0cz00IHN3PTQgZXQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3JjL21vZF9weXdl
YnNvY2tldC9kaXNwYXRjaC5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3JjL21vZF9weXdlYnNvY2tldC9kaXNwYXRjaC5w
eQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOTZjOTFlMGM5MGU3NDI5ZDBmNzYwYzBl
OWM3Yjk4MTIwNDA5MmEwYS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3B5d2Vic29ja2V0L3NyYy9tb2RfcHl3ZWJzb2NrZXQvZGlzcGF0Y2gucHkKKysrIC9kZXYvbnVs
bApAQCAtMSwzOTMgKzAsMCBAQAotIyBDb3B5cmlnaHQgMjAxMiwgR29vZ2xlIEluYy4KLSMgQWxs
IHJpZ2h0cyByZXNlcnZlZC4KLSMKLSMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0jIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKLSMgbWV0
OgotIwotIyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAotIyBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0jICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKLSMgY29weXJpZ2h0IG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgotIyBp
biB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlCi0jIGRpc3RyaWJ1dGlvbi4KLSMgICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUg
SW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwotIyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8g
ZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQotIyB0aGlzIHNvZnR3YXJl
IHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgotIwotIyBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVU
T1JTCi0jICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UCi0jIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgotIyBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAotIyBPV05FUiBP
UiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwKLSMgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVAotIyBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKLSMgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCi0jIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQKLSMgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0jIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0KLQotIiIiRGlzcGF0Y2ggV2Vi
U29ja2V0IHJlcXVlc3QuCi0iIiIKLQotCi1pbXBvcnQgbG9nZ2luZwotaW1wb3J0IG9zCi1pbXBv
cnQgcmUKLQotZnJvbSBtb2RfcHl3ZWJzb2NrZXQgaW1wb3J0IGNvbW1vbgotZnJvbSBtb2RfcHl3
ZWJzb2NrZXQgaW1wb3J0IGhhbmRzaGFrZQotZnJvbSBtb2RfcHl3ZWJzb2NrZXQgaW1wb3J0IG1z
Z3V0aWwKLWZyb20gbW9kX3B5d2Vic29ja2V0IGltcG9ydCBtdXgKLWZyb20gbW9kX3B5d2Vic29j
a2V0IGltcG9ydCBzdHJlYW0KLWZyb20gbW9kX3B5d2Vic29ja2V0IGltcG9ydCB1dGlsCi0KLQot
X1NPVVJDRV9QQVRIX1BBVFRFUk4gPSByZS5jb21waWxlKHInKD9pKV93c2hcLnB5JCcpCi1fU09V
UkNFX1NVRkZJWCA9ICdfd3NoLnB5JwotX0RPX0VYVFJBX0hBTkRTSEFLRV9IQU5ETEVSX05BTUUg
PSAnd2ViX3NvY2tldF9kb19leHRyYV9oYW5kc2hha2UnCi1fVFJBTlNGRVJfREFUQV9IQU5ETEVS
X05BTUUgPSAnd2ViX3NvY2tldF90cmFuc2Zlcl9kYXRhJwotX1BBU1NJVkVfQ0xPU0lOR19IQU5E
U0hBS0VfSEFORExFUl9OQU1FID0gKAotICAgICd3ZWJfc29ja2V0X3Bhc3NpdmVfY2xvc2luZ19o
YW5kc2hha2UnKQotCi0KLWNsYXNzIERpc3BhdGNoRXhjZXB0aW9uKEV4Y2VwdGlvbik6Ci0gICAg
IiIiRXhjZXB0aW9uIGluIGRpc3BhdGNoaW5nIFdlYlNvY2tldCByZXF1ZXN0LiIiIgotCi0gICAg
ZGVmIF9faW5pdF9fKHNlbGYsIG5hbWUsIHN0YXR1cz1jb21tb24uSFRUUF9TVEFUVVNfTk9UX0ZP
VU5EKToKLSAgICAgICAgc3VwZXIoRGlzcGF0Y2hFeGNlcHRpb24sIHNlbGYpLl9faW5pdF9fKG5h
bWUpCi0gICAgICAgIHNlbGYuc3RhdHVzID0gc3RhdHVzCi0KLQotZGVmIF9kZWZhdWx0X3Bhc3Np
dmVfY2xvc2luZ19oYW5kc2hha2VfaGFuZGxlcihyZXF1ZXN0KToKLSAgICAiIiJEZWZhdWx0IHdl
Yl9zb2NrZXRfcGFzc2l2ZV9jbG9zaW5nX2hhbmRzaGFrZSBoYW5kbGVyLiIiIgotCi0gICAgcmV0
dXJuIGNvbW1vbi5TVEFUVVNfTk9STUFMX0NMT1NVUkUsICcnCi0KLQotZGVmIF9ub3JtYWxpemVf
cGF0aChwYXRoKToKLSAgICAiIiJOb3JtYWxpemUgcGF0aC4KLQotICAgIEFyZ3M6Ci0gICAgICAg
IHBhdGg6IHRoZSBwYXRoIHRvIG5vcm1hbGl6ZS4KLQotICAgIFBhdGggaXMgY29udmVydGVkIHRv
IHRoZSBhYnNvbHV0ZSBwYXRoLgotICAgIFRoZSBpbnB1dCBwYXRoIGNhbiB1c2UgZWl0aGVyICdc
XCcgb3IgJy8nIGFzIHRoZSBzZXBhcmF0b3IuCi0gICAgVGhlIG5vcm1hbGl6ZWQgcGF0aCBhbHdh
eXMgdXNlcyAnLycgcmVnYXJkbGVzcyBvZiB0aGUgcGxhdGZvcm0uCi0gICAgIiIiCi0KLSAgICBw
YXRoID0gcGF0aC5yZXBsYWNlKCdcXCcsIG9zLnBhdGguc2VwKQotICAgIHBhdGggPSBvcy5wYXRo
LnJlYWxwYXRoKHBhdGgpCi0gICAgcGF0aCA9IHBhdGgucmVwbGFjZSgnXFwnLCAnLycpCi0gICAg
cmV0dXJuIHBhdGgKLQotCi1kZWYgX2NyZWF0ZV9wYXRoX3RvX3Jlc291cmNlX2NvbnZlcnRlcihi
YXNlX2Rpcik6Ci0gICAgIiIiUmV0dXJucyBhIGZ1bmN0aW9uIHRoYXQgY29udmVydHMgdGhlIHBh
dGggb2YgYSBXZWJTb2NrZXQgaGFuZGxlciBzb3VyY2UKLSAgICBmaWxlIHRvIGEgcmVzb3VyY2Ug
c3RyaW5nIGJ5IHJlbW92aW5nIHRoZSBwYXRoIHRvIHRoZSBiYXNlIGRpcmVjdG9yeSBmcm9tCi0g
ICAgaXRzIGhlYWQsIHJlbW92aW5nIF9TT1VSQ0VfU1VGRklYIGZyb20gaXRzIHRhaWwsIGFuZCBy
ZXBsYWNpbmcgcGF0aAotICAgIHNlcGFyYXRvcnMgaW4gaXQgd2l0aCAnLycuCi0KLSAgICBBcmdz
OgotICAgICAgICBiYXNlX2RpcjogdGhlIHBhdGggdG8gdGhlIGJhc2UgZGlyZWN0b3J5LgotICAg
ICIiIgotCi0gICAgYmFzZV9kaXIgPSBfbm9ybWFsaXplX3BhdGgoYmFzZV9kaXIpCi0KLSAgICBi
YXNlX2xlbiA9IGxlbihiYXNlX2RpcikKLSAgICBzdWZmaXhfbGVuID0gbGVuKF9TT1VSQ0VfU1VG
RklYKQotCi0gICAgZGVmIGNvbnZlcnRlcihwYXRoKToKLSAgICAgICAgaWYgbm90IHBhdGguZW5k
c3dpdGgoX1NPVVJDRV9TVUZGSVgpOgotICAgICAgICAgICAgcmV0dXJuIE5vbmUKLSAgICAgICAg
IyBfbm9ybWFsaXplX3BhdGggbXVzdCBub3QgYmUgdXNlZCBiZWNhdXNlIHJlc29sdmluZyBzeW1s
aW5rIGJyZWFrcwotICAgICAgICAjIGZvbGxvd2luZyBwYXRoIGNoZWNrLgotICAgICAgICBwYXRo
ID0gcGF0aC5yZXBsYWNlKCdcXCcsICcvJykKLSAgICAgICAgaWYgbm90IHBhdGguc3RhcnRzd2l0
aChiYXNlX2Rpcik6Ci0gICAgICAgICAgICByZXR1cm4gTm9uZQotICAgICAgICByZXR1cm4gcGF0
aFtiYXNlX2xlbjotc3VmZml4X2xlbl0KLQotICAgIHJldHVybiBjb252ZXJ0ZXIKLQotCi1kZWYg
X2VudW1lcmF0ZV9oYW5kbGVyX2ZpbGVfcGF0aHMoZGlyZWN0b3J5KToKLSAgICAiIiJSZXR1cm5z
IGEgZ2VuZXJhdG9yIHRoYXQgZW51bWVyYXRlcyBXZWJTb2NrZXQgSGFuZGxlciBzb3VyY2UgZmls
ZSBuYW1lcwotICAgIGluIHRoZSBnaXZlbiBkaXJlY3RvcnkuCi0gICAgIiIiCi0KLSAgICBmb3Ig
cm9vdCwgdW51c2VkX2RpcnMsIGZpbGVzIGluIG9zLndhbGsoZGlyZWN0b3J5KToKLSAgICAgICAg
Zm9yIGJhc2UgaW4gZmlsZXM6Ci0gICAgICAgICAgICBwYXRoID0gb3MucGF0aC5qb2luKHJvb3Qs
IGJhc2UpCi0gICAgICAgICAgICBpZiBfU09VUkNFX1BBVEhfUEFUVEVSTi5zZWFyY2gocGF0aCk6
Ci0gICAgICAgICAgICAgICAgeWllbGQgcGF0aAotCi0KLWNsYXNzIF9IYW5kbGVyU3VpdGUob2Jq
ZWN0KToKLSAgICAiIiJBIGhhbmRsZXIgc3VpdGUgaG9sZGVyIGNsYXNzLiIiIgotCi0gICAgZGVm
IF9faW5pdF9fKHNlbGYsIGRvX2V4dHJhX2hhbmRzaGFrZSwgdHJhbnNmZXJfZGF0YSwKLSAgICAg
ICAgICAgICAgICAgcGFzc2l2ZV9jbG9zaW5nX2hhbmRzaGFrZSk6Ci0gICAgICAgIHNlbGYuZG9f
ZXh0cmFfaGFuZHNoYWtlID0gZG9fZXh0cmFfaGFuZHNoYWtlCi0gICAgICAgIHNlbGYudHJhbnNm
ZXJfZGF0YSA9IHRyYW5zZmVyX2RhdGEKLSAgICAgICAgc2VsZi5wYXNzaXZlX2Nsb3NpbmdfaGFu
ZHNoYWtlID0gcGFzc2l2ZV9jbG9zaW5nX2hhbmRzaGFrZQotCi0KLWRlZiBfc291cmNlX2hhbmRs
ZXJfZmlsZShoYW5kbGVyX2RlZmluaXRpb24pOgotICAgICIiIlNvdXJjZSBhIGhhbmRsZXIgZGVm
aW5pdGlvbiBzdHJpbmcuCi0KLSAgICBBcmdzOgotICAgICAgICBoYW5kbGVyX2RlZmluaXRpb246
IGEgc3RyaW5nIGNvbnRhaW5pbmcgUHl0aG9uIHN0YXRlbWVudHMgdGhhdCBkZWZpbmUKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVyIGZ1bmN0aW9ucy4KLSAgICAiIiIKLQotICAg
IGdsb2JhbF9kaWMgPSB7fQotICAgIHRyeToKLSAgICAgICAgZXhlYyBoYW5kbGVyX2RlZmluaXRp
b24gaW4gZ2xvYmFsX2RpYwotICAgIGV4Y2VwdCBFeGNlcHRpb246Ci0gICAgICAgIHJhaXNlIERp
c3BhdGNoRXhjZXB0aW9uKCdFcnJvciBpbiBzb3VyY2luZyBoYW5kbGVyOicgKwotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICB1dGlsLmdldF9zdGFja190cmFjZSgpKQotICAgIHBhc3Np
dmVfY2xvc2luZ19oYW5kc2hha2VfaGFuZGxlciA9IE5vbmUKLSAgICB0cnk6Ci0gICAgICAgIHBh
c3NpdmVfY2xvc2luZ19oYW5kc2hha2VfaGFuZGxlciA9IF9leHRyYWN0X2hhbmRsZXIoCi0gICAg
ICAgICAgICBnbG9iYWxfZGljLCBfUEFTU0lWRV9DTE9TSU5HX0hBTkRTSEFLRV9IQU5ETEVSX05B
TUUpCi0gICAgZXhjZXB0IEV4Y2VwdGlvbjoKLSAgICAgICAgcGFzc2l2ZV9jbG9zaW5nX2hhbmRz
aGFrZV9oYW5kbGVyID0gKAotICAgICAgICAgICAgX2RlZmF1bHRfcGFzc2l2ZV9jbG9zaW5nX2hh
bmRzaGFrZV9oYW5kbGVyKQotICAgIHJldHVybiBfSGFuZGxlclN1aXRlKAotICAgICAgICBfZXh0
cmFjdF9oYW5kbGVyKGdsb2JhbF9kaWMsIF9ET19FWFRSQV9IQU5EU0hBS0VfSEFORExFUl9OQU1F
KSwKLSAgICAgICAgX2V4dHJhY3RfaGFuZGxlcihnbG9iYWxfZGljLCBfVFJBTlNGRVJfREFUQV9I
QU5ETEVSX05BTUUpLAotICAgICAgICBwYXNzaXZlX2Nsb3NpbmdfaGFuZHNoYWtlX2hhbmRsZXIp
Ci0KLQotZGVmIF9leHRyYWN0X2hhbmRsZXIoZGljLCBuYW1lKToKLSAgICAiIiJFeHRyYWN0cyBh
IGNhbGxhYmxlIHdpdGggdGhlIHNwZWNpZmllZCBuYW1lIGZyb20gdGhlIGdpdmVuIGRpY3Rpb25h
cnkKLSAgICBkaWMuCi0gICAgIiIiCi0KLSAgICBpZiBuYW1lIG5vdCBpbiBkaWM6Ci0gICAgICAg
IHJhaXNlIERpc3BhdGNoRXhjZXB0aW9uKCclcyBpcyBub3QgZGVmaW5lZC4nICUgbmFtZSkKLSAg
ICBoYW5kbGVyID0gZGljW25hbWVdCi0gICAgaWYgbm90IGNhbGxhYmxlKGhhbmRsZXIpOgotICAg
ICAgICByYWlzZSBEaXNwYXRjaEV4Y2VwdGlvbignJXMgaXMgbm90IGNhbGxhYmxlLicgJSBuYW1l
KQotICAgIHJldHVybiBoYW5kbGVyCi0KLQotY2xhc3MgRGlzcGF0Y2hlcihvYmplY3QpOgotICAg
ICIiIkRpc3BhdGNoZXMgV2ViU29ja2V0IHJlcXVlc3RzLgotCi0gICAgVGhpcyBjbGFzcyBtYWlu
dGFpbnMgYSBtYXAgZnJvbSByZXNvdXJjZSBuYW1lIHRvIGhhbmRsZXJzLgotICAgICIiIgotCi0g
ICAgZGVmIF9faW5pdF9fKAotICAgICAgICBzZWxmLCByb290X2Rpciwgc2Nhbl9kaXI9Tm9uZSwK
LSAgICAgICAgYWxsb3dfaGFuZGxlcnNfb3V0c2lkZV9yb290X2Rpcj1UcnVlKToKLSAgICAgICAg
IiIiQ29uc3RydWN0IGFuIGluc3RhbmNlLgotCi0gICAgICAgIEFyZ3M6Ci0gICAgICAgICAgICBy
b290X2RpcjogVGhlIGRpcmVjdG9yeSB3aGVyZSBoYW5kbGVyIGRlZmluaXRpb24gZmlsZXMgYXJl
Ci0gICAgICAgICAgICAgICAgICAgICAgcGxhY2VkLgotICAgICAgICAgICAgc2Nhbl9kaXI6IFRo
ZSBkaXJlY3Rvcnkgd2hlcmUgaGFuZGxlciBkZWZpbml0aW9uIGZpbGVzIGFyZQotICAgICAgICAg
ICAgICAgICAgICAgIHNlYXJjaGVkLiBzY2FuX2RpciBtdXN0IGJlIGEgZGlyZWN0b3J5IHVuZGVy
IHJvb3RfZGlyLAotICAgICAgICAgICAgICAgICAgICAgIGluY2x1ZGluZyByb290X2RpciBpdHNl
bGYuICBJZiBzY2FuX2RpciBpcyBOb25lLAotICAgICAgICAgICAgICAgICAgICAgIHJvb3RfZGly
IGlzIHVzZWQgYXMgc2Nhbl9kaXIuIHNjYW5fZGlyIGNhbiBiZSB1c2VmdWwKLSAgICAgICAgICAg
ICAgICAgICAgICBpbiBzYXZpbmcgc2NhbiB0aW1lIHdoZW4gcm9vdF9kaXIgY29udGFpbnMgbWFu
eQotICAgICAgICAgICAgICAgICAgICAgIHN1YmRpcmVjdG9yaWVzLgotICAgICAgICAgICAgYWxs
b3dfaGFuZGxlcnNfb3V0c2lkZV9yb290X2RpcjogU2NhbnMgaGFuZGxlciBmaWxlcyBldmVuIGlm
IHRoZWlyCi0gICAgICAgICAgICAgICAgICAgICAgY2Fub25pY2FsIHBhdGggaXMgbm90IHVuZGVy
IHJvb3RfZGlyLgotICAgICAgICAiIiIKLQotICAgICAgICBzZWxmLl9sb2dnZXIgPSB1dGlsLmdl
dF9jbGFzc19sb2dnZXIoc2VsZikKLQotICAgICAgICBzZWxmLl9oYW5kbGVyX3N1aXRlX21hcCA9
IHt9Ci0gICAgICAgIHNlbGYuX3NvdXJjZV93YXJuaW5ncyA9IFtdCi0gICAgICAgIGlmIHNjYW5f
ZGlyIGlzIE5vbmU6Ci0gICAgICAgICAgICBzY2FuX2RpciA9IHJvb3RfZGlyCi0gICAgICAgIGlm
IG5vdCBvcy5wYXRoLnJlYWxwYXRoKHNjYW5fZGlyKS5zdGFydHN3aXRoKAotICAgICAgICAgICAg
ICAgIG9zLnBhdGgucmVhbHBhdGgocm9vdF9kaXIpKToKLSAgICAgICAgICAgIHJhaXNlIERpc3Bh
dGNoRXhjZXB0aW9uKCdzY2FuX2RpcjolcyBtdXN0IGJlIGEgZGlyZWN0b3J5IHVuZGVyICcKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdyb290X2Rpcjolcy4nICUgKHNjYW5f
ZGlyLCByb290X2RpcikpCi0gICAgICAgIHNlbGYuX3NvdXJjZV9oYW5kbGVyX2ZpbGVzX2luX2Rp
cigKLSAgICAgICAgICAgIHJvb3RfZGlyLCBzY2FuX2RpciwgYWxsb3dfaGFuZGxlcnNfb3V0c2lk
ZV9yb290X2RpcikKLQotICAgIGRlZiBhZGRfcmVzb3VyY2VfcGF0aF9hbGlhcyhzZWxmLAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbGlhc19yZXNvdXJjZV9wYXRoLCBleGlzdGlu
Z19yZXNvdXJjZV9wYXRoKToKLSAgICAgICAgIiIiQWRkIHJlc291cmNlIHBhdGggYWxpYXMuCi0K
LSAgICAgICAgT25jZSBhZGRlZCwgcmVxdWVzdCB0byBhbGlhc19yZXNvdXJjZV9wYXRoIHdvdWxk
IGJlIGhhbmRsZWQgYnkKLSAgICAgICAgaGFuZGxlciByZWdpc3RlcmVkIGZvciBleGlzdGluZ19y
ZXNvdXJjZV9wYXRoLgotCi0gICAgICAgIEFyZ3M6Ci0gICAgICAgICAgICBhbGlhc19yZXNvdXJj
ZV9wYXRoOiBhbGlhcyByZXNvdXJjZSBwYXRoCi0gICAgICAgICAgICBleGlzdGluZ19yZXNvdXJj
ZV9wYXRoOiBleGlzdGluZyByZXNvdXJjZSBwYXRoCi0gICAgICAgICIiIgotICAgICAgICB0cnk6
Ci0gICAgICAgICAgICBoYW5kbGVyX3N1aXRlID0gc2VsZi5faGFuZGxlcl9zdWl0ZV9tYXBbZXhp
c3RpbmdfcmVzb3VyY2VfcGF0aF0KLSAgICAgICAgICAgIHNlbGYuX2hhbmRsZXJfc3VpdGVfbWFw
W2FsaWFzX3Jlc291cmNlX3BhdGhdID0gaGFuZGxlcl9zdWl0ZQotICAgICAgICBleGNlcHQgS2V5
RXJyb3I6Ci0gICAgICAgICAgICByYWlzZSBEaXNwYXRjaEV4Y2VwdGlvbignTm8gaGFuZGxlciBm
b3I6ICVyJyAlCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBleGlzdGluZ19y
ZXNvdXJjZV9wYXRoKQotCi0gICAgZGVmIHNvdXJjZV93YXJuaW5ncyhzZWxmKToKLSAgICAgICAg
IiIiUmV0dXJuIHdhcm5pbmdzIGluIHNvdXJjaW5nIGhhbmRsZXJzLiIiIgotCi0gICAgICAgIHJl
dHVybiBzZWxmLl9zb3VyY2Vfd2FybmluZ3MKLQotICAgIGRlZiBkb19leHRyYV9oYW5kc2hha2Uo
c2VsZiwgcmVxdWVzdCk6Ci0gICAgICAgICIiIkRvIGV4dHJhIGNoZWNraW5nIGluIFdlYlNvY2tl
dCBoYW5kc2hha2UuCi0KLSAgICAgICAgU2VsZWN0IGEgaGFuZGxlciBiYXNlZCBvbiByZXF1ZXN0
LnVyaSBhbmQgY2FsbCBpdHMKLSAgICAgICAgd2ViX3NvY2tldF9kb19leHRyYV9oYW5kc2hha2Ug
ZnVuY3Rpb24uCi0KLSAgICAgICAgQXJnczoKLSAgICAgICAgICAgIHJlcXVlc3Q6IG1vZF9weXRo
b24gcmVxdWVzdC4KLQotICAgICAgICBSYWlzZXM6Ci0gICAgICAgICAgICBEaXNwYXRjaEV4Y2Vw
dGlvbjogd2hlbiBoYW5kbGVyIHdhcyBub3QgZm91bmQKLSAgICAgICAgICAgIEFib3J0ZWRCeVVz
ZXJFeGNlcHRpb246IHdoZW4gdXNlciBoYW5kbGVyIGFib3J0IGNvbm5lY3Rpb24KLSAgICAgICAg
ICAgIEhhbmRzaGFrZUV4Y2VwdGlvbjogd2hlbiBvcGVuaW5nIGhhbmRzaGFrZSBmYWlsZWQKLSAg
ICAgICAgIiIiCi0KLSAgICAgICAgaGFuZGxlcl9zdWl0ZSA9IHNlbGYuZ2V0X2hhbmRsZXJfc3Vp
dGUocmVxdWVzdC53c19yZXNvdXJjZSkKLSAgICAgICAgaWYgaGFuZGxlcl9zdWl0ZSBpcyBOb25l
OgotICAgICAgICAgICAgcmFpc2UgRGlzcGF0Y2hFeGNlcHRpb24oJ05vIGhhbmRsZXIgZm9yOiAl
cicgJSByZXF1ZXN0LndzX3Jlc291cmNlKQotICAgICAgICBkb19leHRyYV9oYW5kc2hha2VfID0g
aGFuZGxlcl9zdWl0ZS5kb19leHRyYV9oYW5kc2hha2UKLSAgICAgICAgdHJ5OgotICAgICAgICAg
ICAgZG9fZXh0cmFfaGFuZHNoYWtlXyhyZXF1ZXN0KQotICAgICAgICBleGNlcHQgaGFuZHNoYWtl
LkFib3J0ZWRCeVVzZXJFeGNlcHRpb24sIGU6Ci0gICAgICAgICAgICAjIFJlLXJhaXNlIHRvIHRl
bGwgdGhlIGNhbGxlciBvZiB0aGlzIGZ1bmN0aW9uIHRvIGZpbmlzaCB0aGlzCi0gICAgICAgICAg
ICAjIGNvbm5lY3Rpb24gd2l0aG91dCBzZW5kaW5nIGFueSBlcnJvci4KLSAgICAgICAgICAgIHNl
bGYuX2xvZ2dlci5kZWJ1ZygnJXMnLCB1dGlsLmdldF9zdGFja190cmFjZSgpKQotICAgICAgICAg
ICAgcmFpc2UKLSAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbiwgZToKLSAgICAgICAgICAgIHV0aWwu
cHJlcGVuZF9tZXNzYWdlX3RvX2V4Y2VwdGlvbigKLSAgICAgICAgICAgICAgICAgICAgJyVzIHJh
aXNlZCBleGNlcHRpb24gZm9yICVzOiAnICUgKAotICAgICAgICAgICAgICAgICAgICAgICAgICAg
IF9ET19FWFRSQV9IQU5EU0hBS0VfSEFORExFUl9OQU1FLAotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHJlcXVlc3Qud3NfcmVzb3VyY2UpLAotICAgICAgICAgICAgICAgICAgICBlKQotICAg
ICAgICAgICAgcmFpc2UgaGFuZHNoYWtlLkhhbmRzaGFrZUV4Y2VwdGlvbihlLCBjb21tb24uSFRU
UF9TVEFUVVNfRk9SQklEREVOKQotCi0gICAgZGVmIHRyYW5zZmVyX2RhdGEoc2VsZiwgcmVxdWVz
dCk6Ci0gICAgICAgICIiIkxldCBhIGhhbmRsZXIgdHJhbnNmZXJfZGF0YSB3aXRoIGEgV2ViU29j
a2V0IGNsaWVudC4KLQotICAgICAgICBTZWxlY3QgYSBoYW5kbGVyIGJhc2VkIG9uIHJlcXVlc3Qu
d3NfcmVzb3VyY2UgYW5kIGNhbGwgaXRzCi0gICAgICAgIHdlYl9zb2NrZXRfdHJhbnNmZXJfZGF0
YSBmdW5jdGlvbi4KLQotICAgICAgICBBcmdzOgotICAgICAgICAgICAgcmVxdWVzdDogbW9kX3B5
dGhvbiByZXF1ZXN0LgotCi0gICAgICAgIFJhaXNlczoKLSAgICAgICAgICAgIERpc3BhdGNoRXhj
ZXB0aW9uOiB3aGVuIGhhbmRsZXIgd2FzIG5vdCBmb3VuZAotICAgICAgICAgICAgQWJvcnRlZEJ5
VXNlckV4Y2VwdGlvbjogd2hlbiB1c2VyIGhhbmRsZXIgYWJvcnQgY29ubmVjdGlvbgotICAgICAg
ICAiIiIKLQotICAgICAgICAjIFRPRE8odHlvc2hpbm8pOiBUZXJtaW5hdGUgdW5kZXJseWluZyBU
Q1AgY29ubmVjdGlvbiBpZiBwb3NzaWJsZS4KLSAgICAgICAgdHJ5OgotICAgICAgICAgICAgaWYg
bXV4LnVzZV9tdXgocmVxdWVzdCk6Ci0gICAgICAgICAgICAgICAgbXV4LnN0YXJ0KHJlcXVlc3Qs
IHNlbGYpCi0gICAgICAgICAgICBlbHNlOgotICAgICAgICAgICAgICAgIGhhbmRsZXJfc3VpdGUg
PSBzZWxmLmdldF9oYW5kbGVyX3N1aXRlKHJlcXVlc3Qud3NfcmVzb3VyY2UpCi0gICAgICAgICAg
ICAgICAgaWYgaGFuZGxlcl9zdWl0ZSBpcyBOb25lOgotICAgICAgICAgICAgICAgICAgICByYWlz
ZSBEaXNwYXRjaEV4Y2VwdGlvbignTm8gaGFuZGxlciBmb3I6ICVyJyAlCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Qud3NfcmVzb3VyY2UpCi0gICAg
ICAgICAgICAgICAgdHJhbnNmZXJfZGF0YV8gPSBoYW5kbGVyX3N1aXRlLnRyYW5zZmVyX2RhdGEK
LSAgICAgICAgICAgICAgICB0cmFuc2Zlcl9kYXRhXyhyZXF1ZXN0KQotCi0gICAgICAgICAgICBp
ZiBub3QgcmVxdWVzdC5zZXJ2ZXJfdGVybWluYXRlZDoKLSAgICAgICAgICAgICAgICByZXF1ZXN0
LndzX3N0cmVhbS5jbG9zZV9jb25uZWN0aW9uKCkKLSAgICAgICAgIyBDYXRjaCBub24tY3JpdGlj
YWwgZXhjZXB0aW9ucyB0aGUgaGFuZGxlciBkaWRuJ3QgaGFuZGxlLgotICAgICAgICBleGNlcHQg
aGFuZHNoYWtlLkFib3J0ZWRCeVVzZXJFeGNlcHRpb24sIGU6Ci0gICAgICAgICAgICBzZWxmLl9s
b2dnZXIuZGVidWcoJyVzJywgdXRpbC5nZXRfc3RhY2tfdHJhY2UoKSkKLSAgICAgICAgICAgIHJh
aXNlCi0gICAgICAgIGV4Y2VwdCBtc2d1dGlsLkJhZE9wZXJhdGlvbkV4Y2VwdGlvbiwgZToKLSAg
ICAgICAgICAgIHNlbGYuX2xvZ2dlci5kZWJ1ZygnJXMnLCBlKQotICAgICAgICAgICAgcmVxdWVz
dC53c19zdHJlYW0uY2xvc2VfY29ubmVjdGlvbigKLSAgICAgICAgICAgICAgICBjb21tb24uU1RB
VFVTX0lOVEVSTkFMX0VORFBPSU5UX0VSUk9SKQotICAgICAgICBleGNlcHQgbXNndXRpbC5JbnZh
bGlkRnJhbWVFeGNlcHRpb24sIGU6Ci0gICAgICAgICAgICAjIEludmFsaWRGcmFtZUV4Y2VwdGlv
biBtdXN0IGJlIGNhdWdodCBiZWZvcmUKLSAgICAgICAgICAgICMgQ29ubmVjdGlvblRlcm1pbmF0
ZWRFeGNlcHRpb24gdGhhdCBjYXRjaGVzIEludmFsaWRGcmFtZUV4Y2VwdGlvbi4KLSAgICAgICAg
ICAgIHNlbGYuX2xvZ2dlci5kZWJ1ZygnJXMnLCBlKQotICAgICAgICAgICAgcmVxdWVzdC53c19z
dHJlYW0uY2xvc2VfY29ubmVjdGlvbihjb21tb24uU1RBVFVTX1BST1RPQ09MX0VSUk9SKQotICAg
ICAgICBleGNlcHQgbXNndXRpbC5VbnN1cHBvcnRlZEZyYW1lRXhjZXB0aW9uLCBlOgotICAgICAg
ICAgICAgc2VsZi5fbG9nZ2VyLmRlYnVnKCclcycsIGUpCi0gICAgICAgICAgICByZXF1ZXN0Lndz
X3N0cmVhbS5jbG9zZV9jb25uZWN0aW9uKGNvbW1vbi5TVEFUVVNfVU5TVVBQT1JURURfREFUQSkK
LSAgICAgICAgZXhjZXB0IHN0cmVhbS5JbnZhbGlkVVRGOEV4Y2VwdGlvbiwgZToKLSAgICAgICAg
ICAgIHNlbGYuX2xvZ2dlci5kZWJ1ZygnJXMnLCBlKQotICAgICAgICAgICAgcmVxdWVzdC53c19z
dHJlYW0uY2xvc2VfY29ubmVjdGlvbigKLSAgICAgICAgICAgICAgICBjb21tb24uU1RBVFVTX0lO
VkFMSURfRlJBTUVfUEFZTE9BRF9EQVRBKQotICAgICAgICBleGNlcHQgbXNndXRpbC5Db25uZWN0
aW9uVGVybWluYXRlZEV4Y2VwdGlvbiwgZToKLSAgICAgICAgICAgIHNlbGYuX2xvZ2dlci5kZWJ1
ZygnJXMnLCBlKQotICAgICAgICBleGNlcHQgRXhjZXB0aW9uLCBlOgotICAgICAgICAgICAgIyBB
bnkgb3RoZXIgZXhjZXB0aW9ucyBhcmUgZm9yd2FyZGVkIHRvIHRoZSBjYWxsZXIgb2YgdGhpcwot
ICAgICAgICAgICAgIyBmdW5jdGlvbi4KLSAgICAgICAgICAgIHV0aWwucHJlcGVuZF9tZXNzYWdl
X3RvX2V4Y2VwdGlvbigKLSAgICAgICAgICAgICAgICAnJXMgcmFpc2VkIGV4Y2VwdGlvbiBmb3Ig
JXM6ICcgJSAoCi0gICAgICAgICAgICAgICAgICAgIF9UUkFOU0ZFUl9EQVRBX0hBTkRMRVJfTkFN
RSwgcmVxdWVzdC53c19yZXNvdXJjZSksCi0gICAgICAgICAgICAgICAgZSkKLSAgICAgICAgICAg
IHJhaXNlCi0KLSAgICBkZWYgcGFzc2l2ZV9jbG9zaW5nX2hhbmRzaGFrZShzZWxmLCByZXF1ZXN0
KToKLSAgICAgICAgIiIiUHJlcGFyZSBjb2RlIGFuZCByZWFzb24gZm9yIHJlc3BvbmRpbmcgY2xp
ZW50IGluaXRpYXRlZCBjbG9zaW5nCi0gICAgICAgIGhhbmRzaGFrZS4KLSAgICAgICAgIiIiCi0K
LSAgICAgICAgaGFuZGxlcl9zdWl0ZSA9IHNlbGYuZ2V0X2hhbmRsZXJfc3VpdGUocmVxdWVzdC53
c19yZXNvdXJjZSkKLSAgICAgICAgaWYgaGFuZGxlcl9zdWl0ZSBpcyBOb25lOgotICAgICAgICAg
ICAgcmV0dXJuIF9kZWZhdWx0X3Bhc3NpdmVfY2xvc2luZ19oYW5kc2hha2VfaGFuZGxlcihyZXF1
ZXN0KQotICAgICAgICByZXR1cm4gaGFuZGxlcl9zdWl0ZS5wYXNzaXZlX2Nsb3NpbmdfaGFuZHNo
YWtlKHJlcXVlc3QpCi0KLSAgICBkZWYgZ2V0X2hhbmRsZXJfc3VpdGUoc2VsZiwgcmVzb3VyY2Up
OgotICAgICAgICAiIiJSZXRyaWV2ZXMgdHdvIGhhbmRsZXJzIChvbmUgZm9yIGV4dHJhIGhhbmRz
aGFrZSBwcm9jZXNzaW5nLCBhbmQgb25lCi0gICAgICAgIGZvciBkYXRhIHRyYW5zZmVyKSBmb3Ig
dGhlIGdpdmVuIHJlcXVlc3QgYXMgYSBIYW5kbGVyU3VpdGUgb2JqZWN0LgotICAgICAgICAiIiIK
LQotICAgICAgICBmcmFnbWVudCA9IE5vbmUKLSAgICAgICAgaWYgJyMnIGluIHJlc291cmNlOgot
ICAgICAgICAgICAgcmVzb3VyY2UsIGZyYWdtZW50ID0gcmVzb3VyY2Uuc3BsaXQoJyMnLCAxKQot
ICAgICAgICBpZiAnPycgaW4gcmVzb3VyY2U6Ci0gICAgICAgICAgICByZXNvdXJjZSA9IHJlc291
cmNlLnNwbGl0KCc/JywgMSlbMF0KLSAgICAgICAgaGFuZGxlcl9zdWl0ZSA9IHNlbGYuX2hhbmRs
ZXJfc3VpdGVfbWFwLmdldChyZXNvdXJjZSkKLSAgICAgICAgaWYgaGFuZGxlcl9zdWl0ZSBhbmQg
ZnJhZ21lbnQ6Ci0gICAgICAgICAgICByYWlzZSBEaXNwYXRjaEV4Y2VwdGlvbignRnJhZ21lbnQg
aWRlbnRpZmllcnMgTVVTVCBOT1QgYmUgdXNlZCBvbiAnCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAnV2ViU29ja2V0IFVSSXMnLAotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgY29tbW9uLkhUVFBfU1RBVFVTX0JBRF9SRVFVRVNUKQotICAgICAgICByZXR1
cm4gaGFuZGxlcl9zdWl0ZQotCi0gICAgZGVmIF9zb3VyY2VfaGFuZGxlcl9maWxlc19pbl9kaXIo
Ci0gICAgICAgIHNlbGYsIHJvb3RfZGlyLCBzY2FuX2RpciwgYWxsb3dfaGFuZGxlcnNfb3V0c2lk
ZV9yb290X2Rpcik6Ci0gICAgICAgICIiIlNvdXJjZSBhbGwgdGhlIGhhbmRsZXIgc291cmNlIGZp
bGVzIGluIHRoZSBzY2FuX2RpciBkaXJlY3RvcnkuCi0KLSAgICAgICAgVGhlIHJlc291cmNlIHBh
dGggaXMgZGV0ZXJtaW5lZCByZWxhdGl2ZSB0byByb290X2Rpci4KLSAgICAgICAgIiIiCi0KLSAg
ICAgICAgIyBXZSBidWlsZCBhIG1hcCBmcm9tIHJlc291cmNlIHRvIGhhbmRsZXIgY29kZSBhc3N1
bWluZyB0aGF0IHRoZXJlJ3MKLSAgICAgICAgIyBvbmx5IG9uZSBwYXRoIGZyb20gcm9vdF9kaXIg
dG8gc2Nhbl9kaXIgYW5kIGl0IGNhbiBiZSBvYnRhaW5lZCBieQotICAgICAgICAjIGNvbXBhcmlu
ZyByZWFscGF0aCBvZiB0aGVtLgotCi0gICAgICAgICMgSGVyZSB3ZSBjYW5ub3QgdXNlIGFic3Bh
dGguIFNlZQotICAgICAgICAjIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0zMTYwMwotCi0gICAgICAgIGNvbnZlcnQgPSBfY3JlYXRlX3BhdGhfdG9fcmVzb3VyY2VfY29u
dmVydGVyKHJvb3RfZGlyKQotICAgICAgICBzY2FuX3JlYWxwYXRoID0gb3MucGF0aC5yZWFscGF0
aChzY2FuX2RpcikKLSAgICAgICAgcm9vdF9yZWFscGF0aCA9IG9zLnBhdGgucmVhbHBhdGgocm9v
dF9kaXIpCi0gICAgICAgIGZvciBwYXRoIGluIF9lbnVtZXJhdGVfaGFuZGxlcl9maWxlX3BhdGhz
KHNjYW5fcmVhbHBhdGgpOgotICAgICAgICAgICAgaWYgKG5vdCBhbGxvd19oYW5kbGVyc19vdXRz
aWRlX3Jvb3RfZGlyIGFuZAotICAgICAgICAgICAgICAgIChub3Qgb3MucGF0aC5yZWFscGF0aChw
YXRoKS5zdGFydHN3aXRoKHJvb3RfcmVhbHBhdGgpKSk6Ci0gICAgICAgICAgICAgICAgc2VsZi5f
bG9nZ2VyLmRlYnVnKAotICAgICAgICAgICAgICAgICAgICAnQ2Fub25pY2FsIHBhdGggb2YgJXMg
aXMgbm90IHVuZGVyIHJvb3QgZGlyZWN0b3J5JyAlCi0gICAgICAgICAgICAgICAgICAgIHBhdGgp
Ci0gICAgICAgICAgICAgICAgY29udGludWUKLSAgICAgICAgICAgIHRyeToKLSAgICAgICAgICAg
ICAgICBoYW5kbGVyX3N1aXRlID0gX3NvdXJjZV9oYW5kbGVyX2ZpbGUob3BlbihwYXRoKS5yZWFk
KCkpCi0gICAgICAgICAgICBleGNlcHQgRGlzcGF0Y2hFeGNlcHRpb24sIGU6Ci0gICAgICAgICAg
ICAgICAgc2VsZi5fc291cmNlX3dhcm5pbmdzLmFwcGVuZCgnJXM6ICVzJyAlIChwYXRoLCBlKSkK
LSAgICAgICAgICAgICAgICBjb250aW51ZQotICAgICAgICAgICAgcmVzb3VyY2UgPSBjb252ZXJ0
KHBhdGgpCi0gICAgICAgICAgICBpZiByZXNvdXJjZSBpcyBOb25lOgotICAgICAgICAgICAgICAg
IHNlbGYuX2xvZ2dlci5kZWJ1ZygKLSAgICAgICAgICAgICAgICAgICAgJ1BhdGggdG8gcmVzb3Vy
Y2UgY29udmVyc2lvbiBvbiAlcyBmYWlsZWQnICUgcGF0aCkKLSAgICAgICAgICAgIGVsc2U6Ci0g
ICAgICAgICAgICAgICAgc2VsZi5faGFuZGxlcl9zdWl0ZV9tYXBbY29udmVydChwYXRoKV0gPSBo
YW5kbGVyX3N1aXRlCi0KLQotIyB2aTpzdHM9NCBzdz00IGV0CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3Ny
Yy9tb2RfcHl3ZWJzb2NrZXQvZXh0ZW5zaW9ucy5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3JjL21vZF9weXdlYnNvY2tl
dC9leHRlbnNpb25zLnB5CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0OWE5ZmRjZjk0
Nzk4NmExYjRjYWNiZTQ2ZjNkNTNlMDE1OGRiN2NhLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3JjL21vZF9weXdlYnNvY2tldC9leHRlbnNpb25z
LnB5CisrKyAvZGV2L251bGwKQEAgLTEsODg1ICswLDAgQEAKLSMgQ29weXJpZ2h0IDIwMTIsIEdv
b2dsZSBJbmMuCi0jIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0jCi0jIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotIyBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMgYXJlCi0jIG1ldDoKLSMKLSMgICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSMgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotIyAgICAgKiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCi0jIGNv
cHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIKLSMgaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZQotIyBkaXN0cmlidXRpb24uCi0jICAgICAqIE5laXRoZXIgdGhl
IG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKLSMgY29udHJpYnV0b3Jz
IG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20K
LSMgdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lv
bi4KLSMKLSMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERF
UlMgQU5EIENPTlRSSUJVVE9SUwotIyAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAotIyBMSU1JVEVEIFRPLCBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKLSMgQSBQQVJU
SUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZ
UklHSFQKLSMgT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsCi0jIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKLSMgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCi0jIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWQotIyBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUCi0jIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotIyBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotCi0K
LWZyb20gbW9kX3B5d2Vic29ja2V0IGltcG9ydCBjb21tb24KLWZyb20gbW9kX3B5d2Vic29ja2V0
IGltcG9ydCB1dGlsCi1mcm9tIG1vZF9weXdlYnNvY2tldC5odHRwX2hlYWRlcl91dGlsIGltcG9y
dCBxdW90ZV9pZl9uZWNlc3NhcnkKLQotCi0jIFRoZSBsaXN0IG9mIGF2YWlsYWJsZSBzZXJ2ZXIg
c2lkZSBleHRlbnNpb24gcHJvY2Vzc29yIGNsYXNzZXMuCi1fYXZhaWxhYmxlX3Byb2Nlc3NvcnMg
PSB7fQotX2NvbXByZXNzaW9uX2V4dGVuc2lvbl9uYW1lcyA9IFtdCi0KLQotY2xhc3MgRXh0ZW5z
aW9uUHJvY2Vzc29ySW50ZXJmYWNlKG9iamVjdCk6Ci0KLSAgICBkZWYgX19pbml0X18oc2VsZiwg
cmVxdWVzdCk6Ci0gICAgICAgIHNlbGYuX2xvZ2dlciA9IHV0aWwuZ2V0X2NsYXNzX2xvZ2dlcihz
ZWxmKQotCi0gICAgICAgIHNlbGYuX3JlcXVlc3QgPSByZXF1ZXN0Ci0gICAgICAgIHNlbGYuX2Fj
dGl2ZSA9IFRydWUKLQotICAgIGRlZiByZXF1ZXN0KHNlbGYpOgotICAgICAgICByZXR1cm4gc2Vs
Zi5fcmVxdWVzdAotCi0gICAgZGVmIG5hbWUoc2VsZik6Ci0gICAgICAgIHJldHVybiBOb25lCi0K
LSAgICBkZWYgY2hlY2tfY29uc2lzdGVuY3lfd2l0aF9vdGhlcl9wcm9jZXNzb3JzKHNlbGYsIHBy
b2Nlc3NvcnMpOgotICAgICAgICBwYXNzCi0KLSAgICBkZWYgc2V0X2FjdGl2ZShzZWxmLCBhY3Rp
dmUpOgotICAgICAgICBzZWxmLl9hY3RpdmUgPSBhY3RpdmUKLQotICAgIGRlZiBpc19hY3RpdmUo
c2VsZik6Ci0gICAgICAgIHJldHVybiBzZWxmLl9hY3RpdmUKLQotICAgIGRlZiBfZ2V0X2V4dGVu
c2lvbl9yZXNwb25zZV9pbnRlcm5hbChzZWxmKToKLSAgICAgICAgcmV0dXJuIE5vbmUKLQotICAg
IGRlZiBnZXRfZXh0ZW5zaW9uX3Jlc3BvbnNlKHNlbGYpOgotICAgICAgICBpZiBub3Qgc2VsZi5f
YWN0aXZlOgotICAgICAgICAgICAgc2VsZi5fbG9nZ2VyLmRlYnVnKCdFeHRlbnNpb24gJXMgaXMg
ZGVhY3RpdmF0ZWQnLCBzZWxmLm5hbWUoKSkKLSAgICAgICAgICAgIHJldHVybiBOb25lCi0KLSAg
ICAgICAgcmVzcG9uc2UgPSBzZWxmLl9nZXRfZXh0ZW5zaW9uX3Jlc3BvbnNlX2ludGVybmFsKCkK
LSAgICAgICAgaWYgcmVzcG9uc2UgaXMgTm9uZToKLSAgICAgICAgICAgIHNlbGYuX2FjdGl2ZSA9
IEZhbHNlCi0gICAgICAgIHJldHVybiByZXNwb25zZQotCi0gICAgZGVmIF9zZXR1cF9zdHJlYW1f
b3B0aW9uc19pbnRlcm5hbChzZWxmLCBzdHJlYW1fb3B0aW9ucyk6Ci0gICAgICAgIHBhc3MKLQot
ICAgIGRlZiBzZXR1cF9zdHJlYW1fb3B0aW9ucyhzZWxmLCBzdHJlYW1fb3B0aW9ucyk6Ci0gICAg
ICAgIGlmIHNlbGYuX2FjdGl2ZToKLSAgICAgICAgICAgIHNlbGYuX3NldHVwX3N0cmVhbV9vcHRp
b25zX2ludGVybmFsKHN0cmVhbV9vcHRpb25zKQotCi0KLWRlZiBfbG9nX291dGdvaW5nX2NvbXBy
ZXNzaW9uX3JhdGlvKAotICAgICAgICBsb2dnZXIsIG9yaWdpbmFsX2J5dGVzLCBmaWx0ZXJlZF9i
eXRlcywgYXZlcmFnZV9yYXRpbyk6Ci0gICAgIyBQcmludCBpbmYgd2hlbiByYXRpbyBpcyBub3Qg
YXZhaWxhYmxlLgotICAgIHJhdGlvID0gZmxvYXQoJ2luZicpCi0gICAgaWYgb3JpZ2luYWxfYnl0
ZXMgIT0gMDoKLSAgICAgICAgcmF0aW8gPSBmbG9hdChmaWx0ZXJlZF9ieXRlcykgLyBvcmlnaW5h
bF9ieXRlcwotCi0gICAgbG9nZ2VyLmRlYnVnKCdPdXRnb2luZyBjb21wcmVzc2lvbiByYXRpbzog
JWYgKGF2ZXJhZ2U6ICVmKScgJQotICAgICAgICAgICAgKHJhdGlvLCBhdmVyYWdlX3JhdGlvKSkK
LQotCi1kZWYgX2xvZ19pbmNvbWluZ19jb21wcmVzc2lvbl9yYXRpbygKLSAgICAgICAgbG9nZ2Vy
LCByZWNlaXZlZF9ieXRlcywgZmlsdGVyZWRfYnl0ZXMsIGF2ZXJhZ2VfcmF0aW8pOgotICAgICMg
UHJpbnQgaW5mIHdoZW4gcmF0aW8gaXMgbm90IGF2YWlsYWJsZS4KLSAgICByYXRpbyA9IGZsb2F0
KCdpbmYnKQotICAgIGlmIGZpbHRlcmVkX2J5dGVzICE9IDA6Ci0gICAgICAgIHJhdGlvID0gZmxv
YXQocmVjZWl2ZWRfYnl0ZXMpIC8gZmlsdGVyZWRfYnl0ZXMKLQotICAgIGxvZ2dlci5kZWJ1Zygn
SW5jb21pbmcgY29tcHJlc3Npb24gcmF0aW86ICVmIChhdmVyYWdlOiAlZiknICUKLSAgICAgICAg
ICAgIChyYXRpbywgYXZlcmFnZV9yYXRpbykpCi0KLQotZGVmIF9wYXJzZV93aW5kb3dfYml0cyhi
aXRzKToKLSAgICAiIiJSZXR1cm4gcGFyc2VkIGludGVnZXIgdmFsdWUgaWZmIHRoZSBnaXZlbiBz
dHJpbmcgY29uZm9ybXMgdG8gdGhlCi0gICAgZ3JhbW1hciBvZiB0aGUgd2luZG93IGJpdHMgZXh0
ZW5zaW9uIHBhcmFtZXRlcnMuCi0gICAgIiIiCi0KLSAgICBpZiBiaXRzIGlzIE5vbmU6Ci0gICAg
ICAgIHJhaXNlIFZhbHVlRXJyb3IoJ1ZhbHVlIGlzIHJlcXVpcmVkJykKLQotICAgICMgRm9yIG5v
biBpbnRlZ2VyIHZhbHVlcyBzdWNoIGFzICIxMC4wIiwgVmFsdWVFcnJvciB3aWxsIGJlIHJhaXNl
ZC4KLSAgICBpbnRfYml0cyA9IGludChiaXRzKQotCi0gICAgIyBGaXJzdCBjb25kaXRpb24gaXMg
dG8gZHJvcCBsZWFkaW5nIHplcm8gY2FzZSBlLmcuICIwOCIuCi0gICAgaWYgYml0cyAhPSBzdHIo
aW50X2JpdHMpIG9yIGludF9iaXRzIDwgOCBvciBpbnRfYml0cyA+IDE1OgotICAgICAgICByYWlz
ZSBWYWx1ZUVycm9yKCdJbnZhbGlkIHZhbHVlOiAlcicgJSBiaXRzKQotCi0gICAgcmV0dXJuIGlu
dF9iaXRzCi0KLQotY2xhc3MgX0F2ZXJhZ2VSYXRpb0NhbGN1bGF0b3Iob2JqZWN0KToKLSAgICAi
IiJTdG9yZXMgdG90YWwgYnl0ZXMgb2Ygb3JpZ2luYWwgYW5kIHJlc3VsdCBkYXRhLCBhbmQgY2Fs
Y3VsYXRlcyBhdmVyYWdlCi0gICAgcmVzdWx0IC8gb3JpZ2luYWwgcmF0aW8uCi0gICAgIiIiCi0K
LSAgICBkZWYgX19pbml0X18oc2VsZik6Ci0gICAgICAgIHNlbGYuX3RvdGFsX29yaWdpbmFsX2J5
dGVzID0gMAotICAgICAgICBzZWxmLl90b3RhbF9yZXN1bHRfYnl0ZXMgPSAwCi0KLSAgICBkZWYg
YWRkX29yaWdpbmFsX2J5dGVzKHNlbGYsIHZhbHVlKToKLSAgICAgICAgc2VsZi5fdG90YWxfb3Jp
Z2luYWxfYnl0ZXMgKz0gdmFsdWUKLQotICAgIGRlZiBhZGRfcmVzdWx0X2J5dGVzKHNlbGYsIHZh
bHVlKToKLSAgICAgICAgc2VsZi5fdG90YWxfcmVzdWx0X2J5dGVzICs9IHZhbHVlCi0KLSAgICBk
ZWYgZ2V0X2F2ZXJhZ2VfcmF0aW8oc2VsZik6Ci0gICAgICAgIGlmIHNlbGYuX3RvdGFsX29yaWdp
bmFsX2J5dGVzICE9IDA6Ci0gICAgICAgICAgICByZXR1cm4gKGZsb2F0KHNlbGYuX3RvdGFsX3Jl
c3VsdF9ieXRlcykgLwotICAgICAgICAgICAgICAgICAgICBzZWxmLl90b3RhbF9vcmlnaW5hbF9i
eXRlcykKLSAgICAgICAgZWxzZToKLSAgICAgICAgICAgIHJldHVybiBmbG9hdCgnaW5mJykKLQot
Ci1jbGFzcyBEZWZsYXRlRnJhbWVFeHRlbnNpb25Qcm9jZXNzb3IoRXh0ZW5zaW9uUHJvY2Vzc29y
SW50ZXJmYWNlKToKLSAgICAiIiJkZWZsYXRlLWZyYW1lIGV4dGVuc2lvbiBwcm9jZXNzb3IuCi0K
LSAgICBTcGVjaWZpY2F0aW9uOgotICAgIGh0dHA6Ly90b29scy5pZXRmLm9yZy9odG1sL2RyYWZ0
LXR5b3NoaW5vLWh5Ymktd2Vic29ja2V0LXBlcmZyYW1lLWRlZmxhdGUKLSAgICAiIiIKLQotICAg
IF9XSU5ET1dfQklUU19QQVJBTSA9ICdtYXhfd2luZG93X2JpdHMnCi0gICAgX05PX0NPTlRFWFRf
VEFLRU9WRVJfUEFSQU0gPSAnbm9fY29udGV4dF90YWtlb3ZlcicKLQotICAgIGRlZiBfX2luaXRf
XyhzZWxmLCByZXF1ZXN0KToKLSAgICAgICAgRXh0ZW5zaW9uUHJvY2Vzc29ySW50ZXJmYWNlLl9f
aW5pdF9fKHNlbGYsIHJlcXVlc3QpCi0gICAgICAgIHNlbGYuX2xvZ2dlciA9IHV0aWwuZ2V0X2Ns
YXNzX2xvZ2dlcihzZWxmKQotCi0gICAgICAgIHNlbGYuX3Jlc3BvbnNlX3dpbmRvd19iaXRzID0g
Tm9uZQotICAgICAgICBzZWxmLl9yZXNwb25zZV9ub19jb250ZXh0X3Rha2VvdmVyID0gRmFsc2UK
LSAgICAgICAgc2VsZi5fYmZpbmFsID0gRmFsc2UKLQotICAgICAgICAjIENhbGN1bGF0ZXMKLSAg
ICAgICAgIyAgICAgKFRvdGFsIG91dGdvaW5nIGJ5dGVzIHN1cHBsaWVkIHRvIHRoaXMgZmlsdGVy
KSAvCi0gICAgICAgICMgICAgIChUb3RhbCBieXRlcyBzZW50IHRvIHRoZSBuZXR3b3JrIGFmdGVy
IGFwcGx5aW5nIHRoaXMgZmlsdGVyKQotICAgICAgICBzZWxmLl9vdXRnb2luZ19hdmVyYWdlX3Jh
dGlvX2NhbGN1bGF0b3IgPSBfQXZlcmFnZVJhdGlvQ2FsY3VsYXRvcigpCi0KLSAgICAgICAgIyBD
YWxjdWxhdGVzCi0gICAgICAgICMgICAgIChUb3RhbCBieXRlcyByZWNlaXZlZCBmcm9tIHRoZSBu
ZXR3b3JrKSAvCi0gICAgICAgICMgICAgIChUb3RhbCBpbmNvbWluZyBieXRlcyBvYnRhaW5lZCBh
ZnRlciBhcHBseWluZyB0aGlzIGZpbHRlcikKLSAgICAgICAgc2VsZi5faW5jb21pbmdfYXZlcmFn
ZV9yYXRpb19jYWxjdWxhdG9yID0gX0F2ZXJhZ2VSYXRpb0NhbGN1bGF0b3IoKQotCi0gICAgZGVm
IG5hbWUoc2VsZik6Ci0gICAgICAgIHJldHVybiBjb21tb24uREVGTEFURV9GUkFNRV9FWFRFTlNJ
T04KLQotICAgIGRlZiBfZ2V0X2V4dGVuc2lvbl9yZXNwb25zZV9pbnRlcm5hbChzZWxmKToKLSAg
ICAgICAgIyBBbnkgdW5rbm93biBwYXJhbWV0ZXIgd2lsbCBiZSBqdXN0IGlnbm9yZWQuCi0KLSAg
ICAgICAgd2luZG93X2JpdHMgPSBOb25lCi0gICAgICAgIGlmIHNlbGYuX3JlcXVlc3QuaGFzX3Bh
cmFtZXRlcihzZWxmLl9XSU5ET1dfQklUU19QQVJBTSk6Ci0gICAgICAgICAgICB3aW5kb3dfYml0
cyA9IHNlbGYuX3JlcXVlc3QuZ2V0X3BhcmFtZXRlcl92YWx1ZSgKLSAgICAgICAgICAgICAgICBz
ZWxmLl9XSU5ET1dfQklUU19QQVJBTSkKLSAgICAgICAgICAgIHRyeToKLSAgICAgICAgICAgICAg
ICB3aW5kb3dfYml0cyA9IF9wYXJzZV93aW5kb3dfYml0cyh3aW5kb3dfYml0cykKLSAgICAgICAg
ICAgIGV4Y2VwdCBWYWx1ZUVycm9yLCBlOgotICAgICAgICAgICAgICAgIHJldHVybiBOb25lCi0K
LSAgICAgICAgbm9fY29udGV4dF90YWtlb3ZlciA9IHNlbGYuX3JlcXVlc3QuaGFzX3BhcmFtZXRl
cigKLSAgICAgICAgICAgIHNlbGYuX05PX0NPTlRFWFRfVEFLRU9WRVJfUEFSQU0pCi0gICAgICAg
IGlmIChub19jb250ZXh0X3Rha2VvdmVyIGFuZAotICAgICAgICAgICAgc2VsZi5fcmVxdWVzdC5n
ZXRfcGFyYW1ldGVyX3ZhbHVlKAotICAgICAgICAgICAgICAgIHNlbGYuX05PX0NPTlRFWFRfVEFL
RU9WRVJfUEFSQU0pIGlzIG5vdCBOb25lKToKLSAgICAgICAgICAgIHJldHVybiBOb25lCi0KLSAg
ICAgICAgc2VsZi5fcmZjMTk3OV9kZWZsYXRlciA9IHV0aWwuX1JGQzE5NzlEZWZsYXRlcigKLSAg
ICAgICAgICAgIHdpbmRvd19iaXRzLCBub19jb250ZXh0X3Rha2VvdmVyKQotCi0gICAgICAgIHNl
bGYuX3JmYzE5NzlfaW5mbGF0ZXIgPSB1dGlsLl9SRkMxOTc5SW5mbGF0ZXIoKQotCi0gICAgICAg
IHNlbGYuX2NvbXByZXNzX291dGdvaW5nID0gVHJ1ZQotCi0gICAgICAgIHJlc3BvbnNlID0gY29t
bW9uLkV4dGVuc2lvblBhcmFtZXRlcihzZWxmLl9yZXF1ZXN0Lm5hbWUoKSkKLQotICAgICAgICBp
ZiBzZWxmLl9yZXNwb25zZV93aW5kb3dfYml0cyBpcyBub3QgTm9uZToKLSAgICAgICAgICAgIHJl
c3BvbnNlLmFkZF9wYXJhbWV0ZXIoCi0gICAgICAgICAgICAgICAgc2VsZi5fV0lORE9XX0JJVFNf
UEFSQU0sIHN0cihzZWxmLl9yZXNwb25zZV93aW5kb3dfYml0cykpCi0gICAgICAgIGlmIHNlbGYu
X3Jlc3BvbnNlX25vX2NvbnRleHRfdGFrZW92ZXI6Ci0gICAgICAgICAgICByZXNwb25zZS5hZGRf
cGFyYW1ldGVyKAotICAgICAgICAgICAgICAgIHNlbGYuX05PX0NPTlRFWFRfVEFLRU9WRVJfUEFS
QU0sIE5vbmUpCi0KLSAgICAgICAgc2VsZi5fbG9nZ2VyLmRlYnVnKAotICAgICAgICAgICAgJ0Vu
YWJsZSAlcyBleHRlbnNpb24gKCcKLSAgICAgICAgICAgICdyZXF1ZXN0OiB3aW5kb3dfYml0cz0l
czsgbm9fY29udGV4dF90YWtlb3Zlcj0lciwgJwotICAgICAgICAgICAgJ3Jlc3BvbnNlOiB3aW5k
b3dfd2JpdHM9JXM7IG5vX2NvbnRleHRfdGFrZW92ZXI9JXIpJyAlCi0gICAgICAgICAgICAoc2Vs
Zi5fcmVxdWVzdC5uYW1lKCksCi0gICAgICAgICAgICAgd2luZG93X2JpdHMsCi0gICAgICAgICAg
ICAgbm9fY29udGV4dF90YWtlb3ZlciwKLSAgICAgICAgICAgICBzZWxmLl9yZXNwb25zZV93aW5k
b3dfYml0cywKLSAgICAgICAgICAgICBzZWxmLl9yZXNwb25zZV9ub19jb250ZXh0X3Rha2VvdmVy
KSkKLQotICAgICAgICByZXR1cm4gcmVzcG9uc2UKLQotICAgIGRlZiBfc2V0dXBfc3RyZWFtX29w
dGlvbnNfaW50ZXJuYWwoc2VsZiwgc3RyZWFtX29wdGlvbnMpOgotCi0gICAgICAgIGNsYXNzIF9P
dXRnb2luZ0ZpbHRlcihvYmplY3QpOgotCi0gICAgICAgICAgICBkZWYgX19pbml0X18oc2VsZiwg
cGFyZW50KToKLSAgICAgICAgICAgICAgICBzZWxmLl9wYXJlbnQgPSBwYXJlbnQKLQotICAgICAg
ICAgICAgZGVmIGZpbHRlcihzZWxmLCBmcmFtZSk6Ci0gICAgICAgICAgICAgICAgc2VsZi5fcGFy
ZW50Ll9vdXRnb2luZ19maWx0ZXIoZnJhbWUpCi0KLSAgICAgICAgY2xhc3MgX0luY29taW5nRmls
dGVyKG9iamVjdCk6Ci0KLSAgICAgICAgICAgIGRlZiBfX2luaXRfXyhzZWxmLCBwYXJlbnQpOgot
ICAgICAgICAgICAgICAgIHNlbGYuX3BhcmVudCA9IHBhcmVudAotCi0gICAgICAgICAgICBkZWYg
ZmlsdGVyKHNlbGYsIGZyYW1lKToKLSAgICAgICAgICAgICAgICBzZWxmLl9wYXJlbnQuX2luY29t
aW5nX2ZpbHRlcihmcmFtZSkKLQotICAgICAgICBzdHJlYW1fb3B0aW9ucy5vdXRnb2luZ19mcmFt
ZV9maWx0ZXJzLmFwcGVuZCgKLSAgICAgICAgICAgIF9PdXRnb2luZ0ZpbHRlcihzZWxmKSkKLSAg
ICAgICAgc3RyZWFtX29wdGlvbnMuaW5jb21pbmdfZnJhbWVfZmlsdGVycy5pbnNlcnQoCi0gICAg
ICAgICAgICAwLCBfSW5jb21pbmdGaWx0ZXIoc2VsZikpCi0KLSAgICBkZWYgc2V0X3Jlc3BvbnNl
X3dpbmRvd19iaXRzKHNlbGYsIHZhbHVlKToKLSAgICAgICAgc2VsZi5fcmVzcG9uc2Vfd2luZG93
X2JpdHMgPSB2YWx1ZQotCi0gICAgZGVmIHNldF9yZXNwb25zZV9ub19jb250ZXh0X3Rha2VvdmVy
KHNlbGYsIHZhbHVlKToKLSAgICAgICAgc2VsZi5fcmVzcG9uc2Vfbm9fY29udGV4dF90YWtlb3Zl
ciA9IHZhbHVlCi0KLSAgICBkZWYgc2V0X2JmaW5hbChzZWxmLCB2YWx1ZSk6Ci0gICAgICAgIHNl
bGYuX2JmaW5hbCA9IHZhbHVlCi0KLSAgICBkZWYgZW5hYmxlX291dGdvaW5nX2NvbXByZXNzaW9u
KHNlbGYpOgotICAgICAgICBzZWxmLl9jb21wcmVzc19vdXRnb2luZyA9IFRydWUKLQotICAgIGRl
ZiBkaXNhYmxlX291dGdvaW5nX2NvbXByZXNzaW9uKHNlbGYpOgotICAgICAgICBzZWxmLl9jb21w
cmVzc19vdXRnb2luZyA9IEZhbHNlCi0KLSAgICBkZWYgX291dGdvaW5nX2ZpbHRlcihzZWxmLCBm
cmFtZSk6Ci0gICAgICAgICIiIlRyYW5zZm9ybSBvdXRnb2luZyBmcmFtZXMuIFRoaXMgbWV0aG9k
IGlzIGNhbGxlZCBvbmx5IGJ5Ci0gICAgICAgIGFuIF9PdXRnb2luZ0ZpbHRlciBpbnN0YW5jZS4K
LSAgICAgICAgIiIiCi0KLSAgICAgICAgb3JpZ2luYWxfcGF5bG9hZF9zaXplID0gbGVuKGZyYW1l
LnBheWxvYWQpCi0gICAgICAgIHNlbGYuX291dGdvaW5nX2F2ZXJhZ2VfcmF0aW9fY2FsY3VsYXRv
ci5hZGRfb3JpZ2luYWxfYnl0ZXMoCi0gICAgICAgICAgICAgICAgb3JpZ2luYWxfcGF5bG9hZF9z
aXplKQotCi0gICAgICAgIGlmIChub3Qgc2VsZi5fY29tcHJlc3Nfb3V0Z29pbmcgb3IKLSAgICAg
ICAgICAgIGNvbW1vbi5pc19jb250cm9sX29wY29kZShmcmFtZS5vcGNvZGUpKToKLSAgICAgICAg
ICAgIHNlbGYuX291dGdvaW5nX2F2ZXJhZ2VfcmF0aW9fY2FsY3VsYXRvci5hZGRfcmVzdWx0X2J5
dGVzKAotICAgICAgICAgICAgICAgICAgICBvcmlnaW5hbF9wYXlsb2FkX3NpemUpCi0gICAgICAg
ICAgICByZXR1cm4KLQotICAgICAgICBmcmFtZS5wYXlsb2FkID0gc2VsZi5fcmZjMTk3OV9kZWZs
YXRlci5maWx0ZXIoCi0gICAgICAgICAgICBmcmFtZS5wYXlsb2FkLCBiZmluYWw9c2VsZi5fYmZp
bmFsKQotICAgICAgICBmcmFtZS5yc3YxID0gMQotCi0gICAgICAgIGZpbHRlcmVkX3BheWxvYWRf
c2l6ZSA9IGxlbihmcmFtZS5wYXlsb2FkKQotICAgICAgICBzZWxmLl9vdXRnb2luZ19hdmVyYWdl
X3JhdGlvX2NhbGN1bGF0b3IuYWRkX3Jlc3VsdF9ieXRlcygKLSAgICAgICAgICAgICAgICBmaWx0
ZXJlZF9wYXlsb2FkX3NpemUpCi0KLSAgICAgICAgX2xvZ19vdXRnb2luZ19jb21wcmVzc2lvbl9y
YXRpbygKLSAgICAgICAgICAgICAgICBzZWxmLl9sb2dnZXIsCi0gICAgICAgICAgICAgICAgb3Jp
Z2luYWxfcGF5bG9hZF9zaXplLAotICAgICAgICAgICAgICAgIGZpbHRlcmVkX3BheWxvYWRfc2l6
ZSwKLSAgICAgICAgICAgICAgICBzZWxmLl9vdXRnb2luZ19hdmVyYWdlX3JhdGlvX2NhbGN1bGF0
b3IuZ2V0X2F2ZXJhZ2VfcmF0aW8oKSkKLQotICAgIGRlZiBfaW5jb21pbmdfZmlsdGVyKHNlbGYs
IGZyYW1lKToKLSAgICAgICAgIiIiVHJhbnNmb3JtIGluY29taW5nIGZyYW1lcy4gVGhpcyBtZXRo
b2QgaXMgY2FsbGVkIG9ubHkgYnkKLSAgICAgICAgYW4gX0luY29taW5nRmlsdGVyIGluc3RhbmNl
LgotICAgICAgICAiIiIKLQotICAgICAgICByZWNlaXZlZF9wYXlsb2FkX3NpemUgPSBsZW4oZnJh
bWUucGF5bG9hZCkKLSAgICAgICAgc2VsZi5faW5jb21pbmdfYXZlcmFnZV9yYXRpb19jYWxjdWxh
dG9yLmFkZF9yZXN1bHRfYnl0ZXMoCi0gICAgICAgICAgICAgICAgcmVjZWl2ZWRfcGF5bG9hZF9z
aXplKQotCi0gICAgICAgIGlmIGZyYW1lLnJzdjEgIT0gMSBvciBjb21tb24uaXNfY29udHJvbF9v
cGNvZGUoZnJhbWUub3Bjb2RlKToKLSAgICAgICAgICAgIHNlbGYuX2luY29taW5nX2F2ZXJhZ2Vf
cmF0aW9fY2FsY3VsYXRvci5hZGRfb3JpZ2luYWxfYnl0ZXMoCi0gICAgICAgICAgICAgICAgICAg
IHJlY2VpdmVkX3BheWxvYWRfc2l6ZSkKLSAgICAgICAgICAgIHJldHVybgotCi0gICAgICAgIGZy
YW1lLnBheWxvYWQgPSBzZWxmLl9yZmMxOTc5X2luZmxhdGVyLmZpbHRlcihmcmFtZS5wYXlsb2Fk
KQotICAgICAgICBmcmFtZS5yc3YxID0gMAotCi0gICAgICAgIGZpbHRlcmVkX3BheWxvYWRfc2l6
ZSA9IGxlbihmcmFtZS5wYXlsb2FkKQotICAgICAgICBzZWxmLl9pbmNvbWluZ19hdmVyYWdlX3Jh
dGlvX2NhbGN1bGF0b3IuYWRkX29yaWdpbmFsX2J5dGVzKAotICAgICAgICAgICAgICAgIGZpbHRl
cmVkX3BheWxvYWRfc2l6ZSkKLQotICAgICAgICBfbG9nX2luY29taW5nX2NvbXByZXNzaW9uX3Jh
dGlvKAotICAgICAgICAgICAgICAgIHNlbGYuX2xvZ2dlciwKLSAgICAgICAgICAgICAgICByZWNl
aXZlZF9wYXlsb2FkX3NpemUsCi0gICAgICAgICAgICAgICAgZmlsdGVyZWRfcGF5bG9hZF9zaXpl
LAotICAgICAgICAgICAgICAgIHNlbGYuX2luY29taW5nX2F2ZXJhZ2VfcmF0aW9fY2FsY3VsYXRv
ci5nZXRfYXZlcmFnZV9yYXRpbygpKQotCi0KLV9hdmFpbGFibGVfcHJvY2Vzc29yc1tjb21tb24u
REVGTEFURV9GUkFNRV9FWFRFTlNJT05dID0gKAotICAgIERlZmxhdGVGcmFtZUV4dGVuc2lvblBy
b2Nlc3NvcikKLV9jb21wcmVzc2lvbl9leHRlbnNpb25fbmFtZXMuYXBwZW5kKGNvbW1vbi5ERUZM
QVRFX0ZSQU1FX0VYVEVOU0lPTikKLQotX2F2YWlsYWJsZV9wcm9jZXNzb3JzW2NvbW1vbi5YX1dF
QktJVF9ERUZMQVRFX0ZSQU1FX0VYVEVOU0lPTl0gPSAoCi0gICAgRGVmbGF0ZUZyYW1lRXh0ZW5z
aW9uUHJvY2Vzc29yKQotX2NvbXByZXNzaW9uX2V4dGVuc2lvbl9uYW1lcy5hcHBlbmQoY29tbW9u
LlhfV0VCS0lUX0RFRkxBVEVfRlJBTUVfRVhURU5TSU9OKQotCi0KLWRlZiBfcGFyc2VfY29tcHJl
c3Npb25fbWV0aG9kKGRhdGEpOgotICAgICIiIlBhcnNlcyB0aGUgdmFsdWUgb2YgIm1ldGhvZCIg
ZXh0ZW5zaW9uIHBhcmFtZXRlci4iIiIKLQotICAgIHJldHVybiBjb21tb24ucGFyc2VfZXh0ZW5z
aW9ucyhkYXRhKQotCi0KLWRlZiBfY3JlYXRlX2FjY2VwdGVkX21ldGhvZF9kZXNjKG1ldGhvZF9u
YW1lLCBtZXRob2RfcGFyYW1zKToKLSAgICAiIiJDcmVhdGVzIGFjY2VwdGVkLW1ldGhvZC1kZXNj
IGZyb20gZ2l2ZW4gbWV0aG9kIG5hbWUgYW5kIHBhcmFtZXRlcnMiIiIKLQotICAgIGV4dGVuc2lv
biA9IGNvbW1vbi5FeHRlbnNpb25QYXJhbWV0ZXIobWV0aG9kX25hbWUpCi0gICAgZm9yIG5hbWUs
IHZhbHVlIGluIG1ldGhvZF9wYXJhbXM6Ci0gICAgICAgIGV4dGVuc2lvbi5hZGRfcGFyYW1ldGVy
KG5hbWUsIHZhbHVlKQotICAgIHJldHVybiBjb21tb24uZm9ybWF0X2V4dGVuc2lvbihleHRlbnNp
b24pCi0KLQotY2xhc3MgQ29tcHJlc3Npb25FeHRlbnNpb25Qcm9jZXNzb3JCYXNlKEV4dGVuc2lv
blByb2Nlc3NvckludGVyZmFjZSk6Ci0gICAgIiIiQmFzZSBjbGFzcyBmb3IgcGVyZnJhbWUtY29t
cHJlc3MgYW5kIHBlcm1lc3NhZ2UtY29tcHJlc3MgZXh0ZW5zaW9uLiIiIgotCi0gICAgX01FVEhP
RF9QQVJBTSA9ICdtZXRob2QnCi0KLSAgICBkZWYgX19pbml0X18oc2VsZiwgcmVxdWVzdCk6Ci0g
ICAgICAgIEV4dGVuc2lvblByb2Nlc3NvckludGVyZmFjZS5fX2luaXRfXyhzZWxmLCByZXF1ZXN0
KQotICAgICAgICBzZWxmLl9sb2dnZXIgPSB1dGlsLmdldF9jbGFzc19sb2dnZXIoc2VsZikKLSAg
ICAgICAgc2VsZi5fY29tcHJlc3Npb25fbWV0aG9kX25hbWUgPSBOb25lCi0gICAgICAgIHNlbGYu
X2NvbXByZXNzaW9uX3Byb2Nlc3NvciA9IE5vbmUKLSAgICAgICAgc2VsZi5fY29tcHJlc3Npb25f
cHJvY2Vzc29yX2hvb2sgPSBOb25lCi0KLSAgICBkZWYgbmFtZShzZWxmKToKLSAgICAgICAgcmV0
dXJuICcnCi0KLSAgICBkZWYgX2xvb2t1cF9jb21wcmVzc2lvbl9wcm9jZXNzb3Ioc2VsZiwgbWV0
aG9kX2Rlc2MpOgotICAgICAgICByZXR1cm4gTm9uZQotCi0gICAgZGVmIF9nZXRfY29tcHJlc3Np
b25fcHJvY2Vzc29yX3Jlc3BvbnNlKHNlbGYpOgotICAgICAgICAiIiJMb29rcyB1cCB0aGUgY29t
cHJlc3Npb24gcHJvY2Vzc29yIGJhc2VkIG9uIHRoZSBzZWxmLl9yZXF1ZXN0IGFuZAotICAgICAg
ICAgICByZXR1cm5zIHRoZSBjb21wcmVzc2lvbiBwcm9jZXNzb3IncyByZXNwb25zZS4KLSAgICAg
ICAgIiIiCi0KLSAgICAgICAgbWV0aG9kX2xpc3QgPSBzZWxmLl9yZXF1ZXN0LmdldF9wYXJhbWV0
ZXJfdmFsdWUoc2VsZi5fTUVUSE9EX1BBUkFNKQotICAgICAgICBpZiBtZXRob2RfbGlzdCBpcyBO
b25lOgotICAgICAgICAgICAgcmV0dXJuIE5vbmUKLSAgICAgICAgbWV0aG9kcyA9IF9wYXJzZV9j
b21wcmVzc2lvbl9tZXRob2QobWV0aG9kX2xpc3QpCi0gICAgICAgIGlmIG1ldGhvZHMgaXMgTm9u
ZToKLSAgICAgICAgICAgIHJldHVybiBOb25lCi0gICAgICAgIGNvbXJlc3Npb25fcHJvY2Vzc29y
ID0gTm9uZQotICAgICAgICAjIFRoZSBjdXJyZW50IGltcGxlbWVudGF0aW9uIHRyaWVzIG9ubHkg
dGhlIGZpcnN0IG1ldGhvZCB0aGF0IG1hdGNoZXMKLSAgICAgICAgIyBzdXBwb3J0ZWQgYWxnb3Jp
dGhtLiBGb2xsb3dpbmcgbWV0aG9kcyBhcmVuJ3QgdHJpZWQgZXZlbiBpZiB0aGUKLSAgICAgICAg
IyBmaXJzdCBvbmUgaXMgcmVqZWN0ZWQuCi0gICAgICAgICMgVE9ETyhiYXNoaSk6IE5lZWQgdG8g
Y2xhcmlmeSB0aGlzIGJlaGF2aW9yLgotICAgICAgICBmb3IgbWV0aG9kX2Rlc2MgaW4gbWV0aG9k
czoKLSAgICAgICAgICAgIGNvbXByZXNzaW9uX3Byb2Nlc3NvciA9IHNlbGYuX2xvb2t1cF9jb21w
cmVzc2lvbl9wcm9jZXNzb3IoCi0gICAgICAgICAgICAgICAgbWV0aG9kX2Rlc2MpCi0gICAgICAg
ICAgICBpZiBjb21wcmVzc2lvbl9wcm9jZXNzb3IgaXMgbm90IE5vbmU6Ci0gICAgICAgICAgICAg
ICAgc2VsZi5fY29tcHJlc3Npb25fbWV0aG9kX25hbWUgPSBtZXRob2RfZGVzYy5uYW1lKCkKLSAg
ICAgICAgICAgICAgICBicmVhawotICAgICAgICBpZiBjb21wcmVzc2lvbl9wcm9jZXNzb3IgaXMg
Tm9uZToKLSAgICAgICAgICAgIHJldHVybiBOb25lCi0KLSAgICAgICAgaWYgc2VsZi5fY29tcHJl
c3Npb25fcHJvY2Vzc29yX2hvb2s6Ci0gICAgICAgICAgICBzZWxmLl9jb21wcmVzc2lvbl9wcm9j
ZXNzb3JfaG9vayhjb21wcmVzc2lvbl9wcm9jZXNzb3IpCi0KLSAgICAgICAgcHJvY2Vzc29yX3Jl
c3BvbnNlID0gY29tcHJlc3Npb25fcHJvY2Vzc29yLmdldF9leHRlbnNpb25fcmVzcG9uc2UoKQot
ICAgICAgICBpZiBwcm9jZXNzb3JfcmVzcG9uc2UgaXMgTm9uZToKLSAgICAgICAgICAgIHJldHVy
biBOb25lCi0gICAgICAgIHNlbGYuX2NvbXByZXNzaW9uX3Byb2Nlc3NvciA9IGNvbXByZXNzaW9u
X3Byb2Nlc3NvcgotICAgICAgICByZXR1cm4gcHJvY2Vzc29yX3Jlc3BvbnNlCi0KLSAgICBkZWYg
X2dldF9leHRlbnNpb25fcmVzcG9uc2VfaW50ZXJuYWwoc2VsZik6Ci0gICAgICAgIHByb2Nlc3Nv
cl9yZXNwb25zZSA9IHNlbGYuX2dldF9jb21wcmVzc2lvbl9wcm9jZXNzb3JfcmVzcG9uc2UoKQot
ICAgICAgICBpZiBwcm9jZXNzb3JfcmVzcG9uc2UgaXMgTm9uZToKLSAgICAgICAgICAgIHJldHVy
biBOb25lCi0KLSAgICAgICAgcmVzcG9uc2UgPSBjb21tb24uRXh0ZW5zaW9uUGFyYW1ldGVyKHNl
bGYuX3JlcXVlc3QubmFtZSgpKQotICAgICAgICBhY2NlcHRlZF9tZXRob2RfZGVzYyA9IF9jcmVh
dGVfYWNjZXB0ZWRfbWV0aG9kX2Rlc2MoCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHNlbGYuX2NvbXByZXNzaW9uX21ldGhvZF9uYW1lLAotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBwcm9jZXNzb3JfcmVzcG9uc2UuZ2V0X3BhcmFtZXRlcnMoKSkKLSAgICAg
ICAgcmVzcG9uc2UuYWRkX3BhcmFtZXRlcihzZWxmLl9NRVRIT0RfUEFSQU0sIGFjY2VwdGVkX21l
dGhvZF9kZXNjKQotICAgICAgICBzZWxmLl9sb2dnZXIuZGVidWcoCi0gICAgICAgICAgICAnRW5h
YmxlICVzIGV4dGVuc2lvbiAobWV0aG9kOiAlcyknICUKLSAgICAgICAgICAgIChzZWxmLl9yZXF1
ZXN0Lm5hbWUoKSwgc2VsZi5fY29tcHJlc3Npb25fbWV0aG9kX25hbWUpKQotICAgICAgICByZXR1
cm4gcmVzcG9uc2UKLQotICAgIGRlZiBfc2V0dXBfc3RyZWFtX29wdGlvbnNfaW50ZXJuYWwoc2Vs
Ziwgc3RyZWFtX29wdGlvbnMpOgotICAgICAgICBpZiBzZWxmLl9jb21wcmVzc2lvbl9wcm9jZXNz
b3IgaXMgTm9uZToKLSAgICAgICAgICAgIHJldHVybgotICAgICAgICBzZWxmLl9jb21wcmVzc2lv
bl9wcm9jZXNzb3Iuc2V0dXBfc3RyZWFtX29wdGlvbnMoc3RyZWFtX29wdGlvbnMpCi0KLSAgICBk
ZWYgc2V0X2NvbXByZXNzaW9uX3Byb2Nlc3Nvcl9ob29rKHNlbGYsIGhvb2spOgotICAgICAgICBz
ZWxmLl9jb21wcmVzc2lvbl9wcm9jZXNzb3JfaG9vayA9IGhvb2sKLQotICAgIGRlZiBnZXRfY29t
cHJlc3Npb25fcHJvY2Vzc29yKHNlbGYpOgotICAgICAgICByZXR1cm4gc2VsZi5fY29tcHJlc3Np
b25fcHJvY2Vzc29yCi0KLQotY2xhc3MgUGVyTWVzc2FnZURlZmxhdGVFeHRlbnNpb25Qcm9jZXNz
b3IoRXh0ZW5zaW9uUHJvY2Vzc29ySW50ZXJmYWNlKToKLSAgICAiIiJwZXJtZXNzYWdlLWRlZmxh
dGUgZXh0ZW5zaW9uIHByb2Nlc3Nvci4gSXQncyBhbHNvIHVzZWQgZm9yCi0gICAgcGVybWVzc2Fn
ZS1jb21wcmVzcyBleHRlbnNpb24gd2hlbiB0aGUgZGVmbGF0ZSBtZXRob2QgaXMgY2hvc2VuLgot
Ci0gICAgU3BlY2lmaWNhdGlvbjoKLSAgICBodHRwOi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC9kcmFm
dC1pZXRmLWh5YmktcGVybWVzc2FnZS1jb21wcmVzc2lvbi0wOAotICAgICIiIgotCi0gICAgX1NF
UlZFUl9NQVhfV0lORE9XX0JJVFNfUEFSQU0gPSAnc2VydmVyX21heF93aW5kb3dfYml0cycKLSAg
ICBfU0VSVkVSX05PX0NPTlRFWFRfVEFLRU9WRVJfUEFSQU0gPSAnc2VydmVyX25vX2NvbnRleHRf
dGFrZW92ZXInCi0gICAgX0NMSUVOVF9NQVhfV0lORE9XX0JJVFNfUEFSQU0gPSAnY2xpZW50X21h
eF93aW5kb3dfYml0cycKLSAgICBfQ0xJRU5UX05PX0NPTlRFWFRfVEFLRU9WRVJfUEFSQU0gPSAn
Y2xpZW50X25vX2NvbnRleHRfdGFrZW92ZXInCi0KLSAgICBkZWYgX19pbml0X18oc2VsZiwgcmVx
dWVzdCwgZHJhZnQwOD1UcnVlKToKLSAgICAgICAgIiIiQ29uc3RydWN0IFBlck1lc3NhZ2VEZWZs
YXRlRXh0ZW5zaW9uUHJvY2Vzc29yCi0KLSAgICAgICAgQXJnczoKLSAgICAgICAgICAgIGRyYWZ0
MDg6IEZvbGxvdyB0aGUgY29uc3RyYWludHMgb24gdGhlIHBhcmFtZXRlcnMgdGhhdCB3ZXJlIG5v
dAotICAgICAgICAgICAgICAgIHNwZWNpZmllZCBmb3IgcGVybWVzc2FnZS1jb21wcmVzcyBidXQg
YXJlIHNwZWNpZmllZCBmb3IKLSAgICAgICAgICAgICAgICBwZXJtZXNzYWdlLWRlZmxhdGUgYXMg
b24KLSAgICAgICAgICAgICAgICBkcmFmdC1pZXRmLWh5YmktcGVybWVzc2FnZS1jb21wcmVzc2lv
bi0wOC4KLSAgICAgICAgIiIiCi0KLSAgICAgICAgRXh0ZW5zaW9uUHJvY2Vzc29ySW50ZXJmYWNl
Ll9faW5pdF9fKHNlbGYsIHJlcXVlc3QpCi0gICAgICAgIHNlbGYuX2xvZ2dlciA9IHV0aWwuZ2V0
X2NsYXNzX2xvZ2dlcihzZWxmKQotCi0gICAgICAgIHNlbGYuX3ByZWZlcnJlZF9jbGllbnRfbWF4
X3dpbmRvd19iaXRzID0gTm9uZQotICAgICAgICBzZWxmLl9jbGllbnRfbm9fY29udGV4dF90YWtl
b3ZlciA9IEZhbHNlCi0KLSAgICAgICAgc2VsZi5fZHJhZnQwOCA9IGRyYWZ0MDgKLQotICAgIGRl
ZiBuYW1lKHNlbGYpOgotICAgICAgICByZXR1cm4gJ2RlZmxhdGUnCi0KLSAgICBkZWYgX2dldF9l
eHRlbnNpb25fcmVzcG9uc2VfaW50ZXJuYWwoc2VsZik6Ci0gICAgICAgIGlmIHNlbGYuX2RyYWZ0
MDg6Ci0gICAgICAgICAgICBmb3IgbmFtZSBpbiBzZWxmLl9yZXF1ZXN0LmdldF9wYXJhbWV0ZXJf
bmFtZXMoKToKLSAgICAgICAgICAgICAgICBpZiBuYW1lIG5vdCBpbiBbc2VsZi5fU0VSVkVSX01B
WF9XSU5ET1dfQklUU19QQVJBTSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2Vs
Zi5fU0VSVkVSX05PX0NPTlRFWFRfVEFLRU9WRVJfUEFSQU0sCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHNlbGYuX0NMSUVOVF9NQVhfV0lORE9XX0JJVFNfUEFSQU1dOgotICAgICAg
ICAgICAgICAgICAgICBzZWxmLl9sb2dnZXIuZGVidWcoJ1Vua25vd24gcGFyYW1ldGVyOiAlcics
IG5hbWUpCi0gICAgICAgICAgICAgICAgICAgIHJldHVybiBOb25lCi0gICAgICAgIGVsc2U6Ci0g
ICAgICAgICAgICAjIEFueSB1bmtub3duIHBhcmFtZXRlciB3aWxsIGJlIGp1c3QgaWdub3JlZC4K
LSAgICAgICAgICAgIHBhc3MKLQotICAgICAgICBzZXJ2ZXJfbWF4X3dpbmRvd19iaXRzID0gTm9u
ZQotICAgICAgICBpZiBzZWxmLl9yZXF1ZXN0Lmhhc19wYXJhbWV0ZXIoc2VsZi5fU0VSVkVSX01B
WF9XSU5ET1dfQklUU19QQVJBTSk6Ci0gICAgICAgICAgICBzZXJ2ZXJfbWF4X3dpbmRvd19iaXRz
ID0gc2VsZi5fcmVxdWVzdC5nZXRfcGFyYW1ldGVyX3ZhbHVlKAotICAgICAgICAgICAgICAgICAg
ICBzZWxmLl9TRVJWRVJfTUFYX1dJTkRPV19CSVRTX1BBUkFNKQotICAgICAgICAgICAgdHJ5Ogot
ICAgICAgICAgICAgICAgIHNlcnZlcl9tYXhfd2luZG93X2JpdHMgPSBfcGFyc2Vfd2luZG93X2Jp
dHMoCi0gICAgICAgICAgICAgICAgICAgIHNlcnZlcl9tYXhfd2luZG93X2JpdHMpCi0gICAgICAg
ICAgICBleGNlcHQgVmFsdWVFcnJvciwgZToKLSAgICAgICAgICAgICAgICBzZWxmLl9sb2dnZXIu
ZGVidWcoJ0JhZCAlcyBwYXJhbWV0ZXI6ICVyJywKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgc2VsZi5fU0VSVkVSX01BWF9XSU5ET1dfQklUU19QQVJBTSwKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgZSkKLSAgICAgICAgICAgICAgICByZXR1cm4gTm9uZQot
Ci0gICAgICAgIHNlcnZlcl9ub19jb250ZXh0X3Rha2VvdmVyID0gc2VsZi5fcmVxdWVzdC5oYXNf
cGFyYW1ldGVyKAotICAgICAgICAgICAgc2VsZi5fU0VSVkVSX05PX0NPTlRFWFRfVEFLRU9WRVJf
UEFSQU0pCi0gICAgICAgIGlmIChzZXJ2ZXJfbm9fY29udGV4dF90YWtlb3ZlciBhbmQKLSAgICAg
ICAgICAgIHNlbGYuX3JlcXVlc3QuZ2V0X3BhcmFtZXRlcl92YWx1ZSgKLSAgICAgICAgICAgICAg
ICBzZWxmLl9TRVJWRVJfTk9fQ09OVEVYVF9UQUtFT1ZFUl9QQVJBTSkgaXMgbm90IE5vbmUpOgot
ICAgICAgICAgICAgc2VsZi5fbG9nZ2VyLmRlYnVnKCclcyBwYXJhbWV0ZXIgbXVzdCBub3QgaGF2
ZSBhIHZhbHVlOiAlcicsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5fU0VS
VkVSX05PX0NPTlRFWFRfVEFLRU9WRVJfUEFSQU0sCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgc2VydmVyX25vX2NvbnRleHRfdGFrZW92ZXIpCi0gICAgICAgICAgICByZXR1cm4gTm9u
ZQotCi0gICAgICAgICMgY2xpZW50X21heF93aW5kb3dfYml0cyBmcm9tIGEgY2xpZW50IGluZGlj
YXRlcyB3aGV0aGVyIHRoZSBjbGllbnQgY2FuCi0gICAgICAgICMgYWNjZXB0IGNsaWVudF9tYXhf
d2luZG93X2JpdHMgZnJvbSBhIHNlcnZlciBvciBub3QuCi0gICAgICAgIGNsaWVudF9jbGllbnRf
bWF4X3dpbmRvd19iaXRzID0gc2VsZi5fcmVxdWVzdC5oYXNfcGFyYW1ldGVyKAotICAgICAgICAg
ICAgc2VsZi5fQ0xJRU5UX01BWF9XSU5ET1dfQklUU19QQVJBTSkKLSAgICAgICAgaWYgKHNlbGYu
X2RyYWZ0MDggYW5kCi0gICAgICAgICAgICBjbGllbnRfY2xpZW50X21heF93aW5kb3dfYml0cyBh
bmQKLSAgICAgICAgICAgIHNlbGYuX3JlcXVlc3QuZ2V0X3BhcmFtZXRlcl92YWx1ZSgKLSAgICAg
ICAgICAgICAgICBzZWxmLl9DTElFTlRfTUFYX1dJTkRPV19CSVRTX1BBUkFNKSBpcyBub3QgTm9u
ZSk6Ci0gICAgICAgICAgICBzZWxmLl9sb2dnZXIuZGVidWcoJyVzIHBhcmFtZXRlciBtdXN0IG5v
dCBoYXZlIGEgdmFsdWUgaW4gYSAnCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2Ns
aWVudFwncyBvcGVuaW5nIGhhbmRzaGFrZTogJXInLAotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHNlbGYuX0NMSUVOVF9NQVhfV0lORE9XX0JJVFNfUEFSQU0sCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgY2xpZW50X2NsaWVudF9tYXhfd2luZG93X2JpdHMpCi0gICAgICAg
ICAgICByZXR1cm4gTm9uZQotCi0gICAgICAgIHNlbGYuX3JmYzE5NzlfZGVmbGF0ZXIgPSB1dGls
Ll9SRkMxOTc5RGVmbGF0ZXIoCi0gICAgICAgICAgICBzZXJ2ZXJfbWF4X3dpbmRvd19iaXRzLCBz
ZXJ2ZXJfbm9fY29udGV4dF90YWtlb3ZlcikKLQotICAgICAgICAjIE5vdGUgdGhhdCB3ZSBwcmVw
YXJlIGZvciBpbmNvbWluZyBtZXNzYWdlcyBjb21wcmVzc2VkIHdpdGggd2luZG93Ci0gICAgICAg
ICMgYml0cyB1cHRvIDE1IHJlZ2FyZGxlc3Mgb2YgdGhlIGNsaWVudF9tYXhfd2luZG93X2JpdHMg
dmFsdWUgdG8gYmUKLSAgICAgICAgIyBzZW50IHRvIHRoZSBjbGllbnQuCi0gICAgICAgIHNlbGYu
X3JmYzE5NzlfaW5mbGF0ZXIgPSB1dGlsLl9SRkMxOTc5SW5mbGF0ZXIoKQotCi0gICAgICAgIHNl
bGYuX2ZyYW1lciA9IF9QZXJNZXNzYWdlRGVmbGF0ZUZyYW1lcigKLSAgICAgICAgICAgIHNlcnZl
cl9tYXhfd2luZG93X2JpdHMsIHNlcnZlcl9ub19jb250ZXh0X3Rha2VvdmVyKQotICAgICAgICBz
ZWxmLl9mcmFtZXIuc2V0X2JmaW5hbChGYWxzZSkKLSAgICAgICAgc2VsZi5fZnJhbWVyLnNldF9j
b21wcmVzc19vdXRnb2luZ19lbmFibGVkKFRydWUpCi0KLSAgICAgICAgcmVzcG9uc2UgPSBjb21t
b24uRXh0ZW5zaW9uUGFyYW1ldGVyKHNlbGYuX3JlcXVlc3QubmFtZSgpKQotCi0gICAgICAgIGlm
IHNlcnZlcl9tYXhfd2luZG93X2JpdHMgaXMgbm90IE5vbmU6Ci0gICAgICAgICAgICByZXNwb25z
ZS5hZGRfcGFyYW1ldGVyKAotICAgICAgICAgICAgICAgIHNlbGYuX1NFUlZFUl9NQVhfV0lORE9X
X0JJVFNfUEFSQU0sCi0gICAgICAgICAgICAgICAgc3RyKHNlcnZlcl9tYXhfd2luZG93X2JpdHMp
KQotCi0gICAgICAgIGlmIHNlcnZlcl9ub19jb250ZXh0X3Rha2VvdmVyOgotICAgICAgICAgICAg
cmVzcG9uc2UuYWRkX3BhcmFtZXRlcigKLSAgICAgICAgICAgICAgICBzZWxmLl9TRVJWRVJfTk9f
Q09OVEVYVF9UQUtFT1ZFUl9QQVJBTSwgTm9uZSkKLQotICAgICAgICBpZiBzZWxmLl9wcmVmZXJy
ZWRfY2xpZW50X21heF93aW5kb3dfYml0cyBpcyBub3QgTm9uZToKLSAgICAgICAgICAgIGlmIHNl
bGYuX2RyYWZ0MDggYW5kIG5vdCBjbGllbnRfY2xpZW50X21heF93aW5kb3dfYml0czoKLSAgICAg
ICAgICAgICAgICBzZWxmLl9sb2dnZXIuZGVidWcoJ1Byb2Nlc3NvciBpcyBjb25maWd1cmVkIHRv
IHVzZSAlcyBidXQgJwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAndGhlIGNs
aWVudCBjYW5ub3QgYWNjZXB0IGl0JywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgc2VsZi5fQ0xJRU5UX01BWF9XSU5ET1dfQklUU19QQVJBTSkKLSAgICAgICAgICAgICAgICBy
ZXR1cm4gTm9uZQotICAgICAgICAgICAgcmVzcG9uc2UuYWRkX3BhcmFtZXRlcigKLSAgICAgICAg
ICAgICAgICBzZWxmLl9DTElFTlRfTUFYX1dJTkRPV19CSVRTX1BBUkFNLAotICAgICAgICAgICAg
ICAgIHN0cihzZWxmLl9wcmVmZXJyZWRfY2xpZW50X21heF93aW5kb3dfYml0cykpCi0KLSAgICAg
ICAgaWYgc2VsZi5fY2xpZW50X25vX2NvbnRleHRfdGFrZW92ZXI6Ci0gICAgICAgICAgICByZXNw
b25zZS5hZGRfcGFyYW1ldGVyKAotICAgICAgICAgICAgICAgIHNlbGYuX0NMSUVOVF9OT19DT05U
RVhUX1RBS0VPVkVSX1BBUkFNLCBOb25lKQotCi0gICAgICAgIHNlbGYuX2xvZ2dlci5kZWJ1ZygK
LSAgICAgICAgICAgICdFbmFibGUgJXMgZXh0ZW5zaW9uICgnCi0gICAgICAgICAgICAncmVxdWVz
dDogc2VydmVyX21heF93aW5kb3dfYml0cz0lczsgJwotICAgICAgICAgICAgJ3NlcnZlcl9ub19j
b250ZXh0X3Rha2VvdmVyPSVyLCAnCi0gICAgICAgICAgICAncmVzcG9uc2U6IGNsaWVudF9tYXhf
d2luZG93X2JpdHM9JXM7ICcKLSAgICAgICAgICAgICdjbGllbnRfbm9fY29udGV4dF90YWtlb3Zl
cj0lciknICUKLSAgICAgICAgICAgIChzZWxmLl9yZXF1ZXN0Lm5hbWUoKSwKLSAgICAgICAgICAg
ICBzZXJ2ZXJfbWF4X3dpbmRvd19iaXRzLAotICAgICAgICAgICAgIHNlcnZlcl9ub19jb250ZXh0
X3Rha2VvdmVyLAotICAgICAgICAgICAgIHNlbGYuX3ByZWZlcnJlZF9jbGllbnRfbWF4X3dpbmRv
d19iaXRzLAotICAgICAgICAgICAgIHNlbGYuX2NsaWVudF9ub19jb250ZXh0X3Rha2VvdmVyKSkK
LQotICAgICAgICByZXR1cm4gcmVzcG9uc2UKLQotICAgIGRlZiBfc2V0dXBfc3RyZWFtX29wdGlv
bnNfaW50ZXJuYWwoc2VsZiwgc3RyZWFtX29wdGlvbnMpOgotICAgICAgICBzZWxmLl9mcmFtZXIu
c2V0dXBfc3RyZWFtX29wdGlvbnMoc3RyZWFtX29wdGlvbnMpCi0KLSAgICBkZWYgc2V0X2NsaWVu
dF9tYXhfd2luZG93X2JpdHMoc2VsZiwgdmFsdWUpOgotICAgICAgICAiIiJJZiB0aGlzIG9wdGlv
biBpcyBzcGVjaWZpZWQsIHRoaXMgY2xhc3MgYWRkcyB0aGUKLSAgICAgICAgY2xpZW50X21heF93
aW5kb3dfYml0cyBleHRlbnNpb24gcGFyYW1ldGVyIHRvIHRoZSBoYW5kc2hha2UgcmVzcG9uc2Us
Ci0gICAgICAgIGJ1dCBkb2Vzbid0IHJlZHVjZSB0aGUgTFo3NyBzbGlkaW5nIHdpbmRvdyBzaXpl
IG9mIGl0cyBpbmZsYXRlci4KLSAgICAgICAgSS5lLiwgeW91IGNhbiB1c2UgdGhpcyBmb3IgdGVz
dGluZyBjbGllbnQgaW1wbGVtZW50YXRpb24gYnV0IGNhbm5vdAotICAgICAgICByZWR1Y2UgbWVt
b3J5IHVzYWdlIG9mIHRoaXMgY2xhc3MuCi0KLSAgICAgICAgSWYgdGhpcyBtZXRob2QgaGFzIGJl
ZW4gY2FsbGVkIHdpdGggVHJ1ZSBhbmQgYW4gb2ZmZXIgd2l0aG91dCB0aGUKLSAgICAgICAgY2xp
ZW50X21heF93aW5kb3dfYml0cyBleHRlbnNpb24gcGFyYW1ldGVyIGlzIHJlY2VpdmVkLAotICAg
ICAgICAtIChXaGVuIHByb2Nlc3NpbmcgdGhlIHBlcm1lc3NhZ2UtZGVmbGF0ZSBleHRlbnNpb24p
IHRoaXMgcHJvY2Vzc29yCi0gICAgICAgICAgZGVjbGluZXMgdGhlIHJlcXVlc3QuCi0gICAgICAg
IC0gKFdoZW4gcHJvY2Vzc2luZyB0aGUgcGVybWVzc2FnZS1jb21wcmVzcyBleHRlbnNpb24pIHRo
aXMgcHJvY2Vzc29yCi0gICAgICAgICAgYWNjZXB0cyB0aGUgcmVxdWVzdC4KLSAgICAgICAgIiIi
Ci0KLSAgICAgICAgc2VsZi5fcHJlZmVycmVkX2NsaWVudF9tYXhfd2luZG93X2JpdHMgPSB2YWx1
ZQotCi0gICAgZGVmIHNldF9jbGllbnRfbm9fY29udGV4dF90YWtlb3ZlcihzZWxmLCB2YWx1ZSk6
Ci0gICAgICAgICIiIklmIHRoaXMgb3B0aW9uIGlzIHNwZWNpZmllZCwgdGhpcyBjbGFzcyBhZGRz
IHRoZQotICAgICAgICBjbGllbnRfbm9fY29udGV4dF90YWtlb3ZlciBleHRlbnNpb24gcGFyYW1l
dGVyIHRvIHRoZSBoYW5kc2hha2UKLSAgICAgICAgcmVzcG9uc2UsIGJ1dCBkb2Vzbid0IHJlc2V0
IGluZmxhdGVyIGZvciBlYWNoIG1lc3NhZ2UuIEkuZS4sIHlvdSBjYW4KLSAgICAgICAgdXNlIHRo
aXMgZm9yIHRlc3RpbmcgY2xpZW50IGltcGxlbWVudGF0aW9uIGJ1dCBjYW5ub3QgcmVkdWNlIG1l
bW9yeQotICAgICAgICB1c2FnZSBvZiB0aGlzIGNsYXNzLgotICAgICAgICAiIiIKLQotICAgICAg
ICBzZWxmLl9jbGllbnRfbm9fY29udGV4dF90YWtlb3ZlciA9IHZhbHVlCi0KLSAgICBkZWYgc2V0
X2JmaW5hbChzZWxmLCB2YWx1ZSk6Ci0gICAgICAgIHNlbGYuX2ZyYW1lci5zZXRfYmZpbmFsKHZh
bHVlKQotCi0gICAgZGVmIGVuYWJsZV9vdXRnb2luZ19jb21wcmVzc2lvbihzZWxmKToKLSAgICAg
ICAgc2VsZi5fZnJhbWVyLnNldF9jb21wcmVzc19vdXRnb2luZ19lbmFibGVkKFRydWUpCi0KLSAg
ICBkZWYgZGlzYWJsZV9vdXRnb2luZ19jb21wcmVzc2lvbihzZWxmKToKLSAgICAgICAgc2VsZi5f
ZnJhbWVyLnNldF9jb21wcmVzc19vdXRnb2luZ19lbmFibGVkKEZhbHNlKQotCi0KLWNsYXNzIF9Q
ZXJNZXNzYWdlRGVmbGF0ZUZyYW1lcihvYmplY3QpOgotICAgICIiIkEgZnJhbWVyIGZvciBleHRl
bnNpb25zIHdpdGggcGVyLW1lc3NhZ2UgREVGTEFURSBmZWF0dXJlLiIiIgotCi0gICAgZGVmIF9f
aW5pdF9fKHNlbGYsIGRlZmxhdGVfbWF4X3dpbmRvd19iaXRzLCBkZWZsYXRlX25vX2NvbnRleHRf
dGFrZW92ZXIpOgotICAgICAgICBzZWxmLl9sb2dnZXIgPSB1dGlsLmdldF9jbGFzc19sb2dnZXIo
c2VsZikKLQotICAgICAgICBzZWxmLl9yZmMxOTc5X2RlZmxhdGVyID0gdXRpbC5fUkZDMTk3OURl
ZmxhdGVyKAotICAgICAgICAgICAgZGVmbGF0ZV9tYXhfd2luZG93X2JpdHMsIGRlZmxhdGVfbm9f
Y29udGV4dF90YWtlb3ZlcikKLQotICAgICAgICBzZWxmLl9yZmMxOTc5X2luZmxhdGVyID0gdXRp
bC5fUkZDMTk3OUluZmxhdGVyKCkKLQotICAgICAgICBzZWxmLl9iZmluYWwgPSBGYWxzZQotCi0g
ICAgICAgIHNlbGYuX2NvbXByZXNzX291dGdvaW5nX2VuYWJsZWQgPSBGYWxzZQotCi0gICAgICAg
ICMgVHJ1ZSBpZiBhIG1lc3NhZ2UgaXMgZnJhZ21lbnRlZCBhbmQgY29tcHJlc3Npb24gaXMgb25n
b2luZy4KLSAgICAgICAgc2VsZi5fY29tcHJlc3Nfb25nb2luZyA9IEZhbHNlCi0KLSAgICAgICAg
IyBDYWxjdWxhdGVzCi0gICAgICAgICMgICAgIChUb3RhbCBvdXRnb2luZyBieXRlcyBzdXBwbGll
ZCB0byB0aGlzIGZpbHRlcikgLwotICAgICAgICAjICAgICAoVG90YWwgYnl0ZXMgc2VudCB0byB0
aGUgbmV0d29yayBhZnRlciBhcHBseWluZyB0aGlzIGZpbHRlcikKLSAgICAgICAgc2VsZi5fb3V0
Z29pbmdfYXZlcmFnZV9yYXRpb19jYWxjdWxhdG9yID0gX0F2ZXJhZ2VSYXRpb0NhbGN1bGF0b3Io
KQotCi0gICAgICAgICMgQ2FsY3VsYXRlcwotICAgICAgICAjICAgICAoVG90YWwgYnl0ZXMgcmVj
ZWl2ZWQgZnJvbSB0aGUgbmV0d29yaykgLwotICAgICAgICAjICAgICAoVG90YWwgaW5jb21pbmcg
Ynl0ZXMgb2J0YWluZWQgYWZ0ZXIgYXBwbHlpbmcgdGhpcyBmaWx0ZXIpCi0gICAgICAgIHNlbGYu
X2luY29taW5nX2F2ZXJhZ2VfcmF0aW9fY2FsY3VsYXRvciA9IF9BdmVyYWdlUmF0aW9DYWxjdWxh
dG9yKCkKLQotICAgIGRlZiBzZXRfYmZpbmFsKHNlbGYsIHZhbHVlKToKLSAgICAgICAgc2VsZi5f
YmZpbmFsID0gdmFsdWUKLQotICAgIGRlZiBzZXRfY29tcHJlc3Nfb3V0Z29pbmdfZW5hYmxlZChz
ZWxmLCB2YWx1ZSk6Ci0gICAgICAgIHNlbGYuX2NvbXByZXNzX291dGdvaW5nX2VuYWJsZWQgPSB2
YWx1ZQotCi0gICAgZGVmIF9wcm9jZXNzX2luY29taW5nX21lc3NhZ2Uoc2VsZiwgbWVzc2FnZSwg
ZGVjb21wcmVzcyk6Ci0gICAgICAgIGlmIG5vdCBkZWNvbXByZXNzOgotICAgICAgICAgICAgcmV0
dXJuIG1lc3NhZ2UKLQotICAgICAgICByZWNlaXZlZF9wYXlsb2FkX3NpemUgPSBsZW4obWVzc2Fn
ZSkKLSAgICAgICAgc2VsZi5faW5jb21pbmdfYXZlcmFnZV9yYXRpb19jYWxjdWxhdG9yLmFkZF9y
ZXN1bHRfYnl0ZXMoCi0gICAgICAgICAgICAgICAgcmVjZWl2ZWRfcGF5bG9hZF9zaXplKQotCi0g
ICAgICAgIG1lc3NhZ2UgPSBzZWxmLl9yZmMxOTc5X2luZmxhdGVyLmZpbHRlcihtZXNzYWdlKQot
Ci0gICAgICAgIGZpbHRlcmVkX3BheWxvYWRfc2l6ZSA9IGxlbihtZXNzYWdlKQotICAgICAgICBz
ZWxmLl9pbmNvbWluZ19hdmVyYWdlX3JhdGlvX2NhbGN1bGF0b3IuYWRkX29yaWdpbmFsX2J5dGVz
KAotICAgICAgICAgICAgICAgIGZpbHRlcmVkX3BheWxvYWRfc2l6ZSkKLQotICAgICAgICBfbG9n
X2luY29taW5nX2NvbXByZXNzaW9uX3JhdGlvKAotICAgICAgICAgICAgICAgIHNlbGYuX2xvZ2dl
ciwKLSAgICAgICAgICAgICAgICByZWNlaXZlZF9wYXlsb2FkX3NpemUsCi0gICAgICAgICAgICAg
ICAgZmlsdGVyZWRfcGF5bG9hZF9zaXplLAotICAgICAgICAgICAgICAgIHNlbGYuX2luY29taW5n
X2F2ZXJhZ2VfcmF0aW9fY2FsY3VsYXRvci5nZXRfYXZlcmFnZV9yYXRpbygpKQotCi0gICAgICAg
IHJldHVybiBtZXNzYWdlCi0KLSAgICBkZWYgX3Byb2Nlc3Nfb3V0Z29pbmdfbWVzc2FnZShzZWxm
LCBtZXNzYWdlLCBlbmQsIGJpbmFyeSk6Ci0gICAgICAgIGlmIG5vdCBiaW5hcnk6Ci0gICAgICAg
ICAgICBtZXNzYWdlID0gbWVzc2FnZS5lbmNvZGUoJ3V0Zi04JykKLQotICAgICAgICBpZiBub3Qg
c2VsZi5fY29tcHJlc3Nfb3V0Z29pbmdfZW5hYmxlZDoKLSAgICAgICAgICAgIHJldHVybiBtZXNz
YWdlCi0KLSAgICAgICAgb3JpZ2luYWxfcGF5bG9hZF9zaXplID0gbGVuKG1lc3NhZ2UpCi0gICAg
ICAgIHNlbGYuX291dGdvaW5nX2F2ZXJhZ2VfcmF0aW9fY2FsY3VsYXRvci5hZGRfb3JpZ2luYWxf
Ynl0ZXMoCi0gICAgICAgICAgICBvcmlnaW5hbF9wYXlsb2FkX3NpemUpCi0KLSAgICAgICAgbWVz
c2FnZSA9IHNlbGYuX3JmYzE5NzlfZGVmbGF0ZXIuZmlsdGVyKAotICAgICAgICAgICAgbWVzc2Fn
ZSwgZW5kPWVuZCwgYmZpbmFsPXNlbGYuX2JmaW5hbCkKLQotICAgICAgICBmaWx0ZXJlZF9wYXls
b2FkX3NpemUgPSBsZW4obWVzc2FnZSkKLSAgICAgICAgc2VsZi5fb3V0Z29pbmdfYXZlcmFnZV9y
YXRpb19jYWxjdWxhdG9yLmFkZF9yZXN1bHRfYnl0ZXMoCi0gICAgICAgICAgICBmaWx0ZXJlZF9w
YXlsb2FkX3NpemUpCi0KLSAgICAgICAgX2xvZ19vdXRnb2luZ19jb21wcmVzc2lvbl9yYXRpbygK
LSAgICAgICAgICAgICAgICBzZWxmLl9sb2dnZXIsCi0gICAgICAgICAgICAgICAgb3JpZ2luYWxf
cGF5bG9hZF9zaXplLAotICAgICAgICAgICAgICAgIGZpbHRlcmVkX3BheWxvYWRfc2l6ZSwKLSAg
ICAgICAgICAgICAgICBzZWxmLl9vdXRnb2luZ19hdmVyYWdlX3JhdGlvX2NhbGN1bGF0b3IuZ2V0
X2F2ZXJhZ2VfcmF0aW8oKSkKLQotICAgICAgICBpZiBub3Qgc2VsZi5fY29tcHJlc3Nfb25nb2lu
ZzoKLSAgICAgICAgICAgIHNlbGYuX291dGdvaW5nX2ZyYW1lX2ZpbHRlci5zZXRfY29tcHJlc3Np
b25fYml0KCkKLSAgICAgICAgc2VsZi5fY29tcHJlc3Nfb25nb2luZyA9IG5vdCBlbmQKLSAgICAg
ICAgcmV0dXJuIG1lc3NhZ2UKLQotICAgIGRlZiBfcHJvY2Vzc19pbmNvbWluZ19mcmFtZShzZWxm
LCBmcmFtZSk6Ci0gICAgICAgIGlmIGZyYW1lLnJzdjEgPT0gMSBhbmQgbm90IGNvbW1vbi5pc19j
b250cm9sX29wY29kZShmcmFtZS5vcGNvZGUpOgotICAgICAgICAgICAgc2VsZi5faW5jb21pbmdf
bWVzc2FnZV9maWx0ZXIuZGVjb21wcmVzc19uZXh0X21lc3NhZ2UoKQotICAgICAgICAgICAgZnJh
bWUucnN2MSA9IDAKLQotICAgIGRlZiBfcHJvY2Vzc19vdXRnb2luZ19mcmFtZShzZWxmLCBmcmFt
ZSwgY29tcHJlc3Npb25fYml0KToKLSAgICAgICAgaWYgKG5vdCBjb21wcmVzc2lvbl9iaXQgb3IK
LSAgICAgICAgICAgIGNvbW1vbi5pc19jb250cm9sX29wY29kZShmcmFtZS5vcGNvZGUpKToKLSAg
ICAgICAgICAgIHJldHVybgotCi0gICAgICAgIGZyYW1lLnJzdjEgPSAxCi0KLSAgICBkZWYgc2V0
dXBfc3RyZWFtX29wdGlvbnMoc2VsZiwgc3RyZWFtX29wdGlvbnMpOgotICAgICAgICAiIiJDcmVh
dGVzIGZpbHRlcnMgYW5kIHNldHMgdGhlbSB0byB0aGUgU3RyZWFtT3B0aW9ucy4iIiIKLQotICAg
ICAgICBjbGFzcyBfT3V0Z29pbmdNZXNzYWdlRmlsdGVyKG9iamVjdCk6Ci0KLSAgICAgICAgICAg
IGRlZiBfX2luaXRfXyhzZWxmLCBwYXJlbnQpOgotICAgICAgICAgICAgICAgIHNlbGYuX3BhcmVu
dCA9IHBhcmVudAotCi0gICAgICAgICAgICBkZWYgZmlsdGVyKHNlbGYsIG1lc3NhZ2UsIGVuZD1U
cnVlLCBiaW5hcnk9RmFsc2UpOgotICAgICAgICAgICAgICAgIHJldHVybiBzZWxmLl9wYXJlbnQu
X3Byb2Nlc3Nfb3V0Z29pbmdfbWVzc2FnZSgKLSAgICAgICAgICAgICAgICAgICAgbWVzc2FnZSwg
ZW5kLCBiaW5hcnkpCi0KLSAgICAgICAgY2xhc3MgX0luY29taW5nTWVzc2FnZUZpbHRlcihvYmpl
Y3QpOgotCi0gICAgICAgICAgICBkZWYgX19pbml0X18oc2VsZiwgcGFyZW50KToKLSAgICAgICAg
ICAgICAgICBzZWxmLl9wYXJlbnQgPSBwYXJlbnQKLSAgICAgICAgICAgICAgICBzZWxmLl9kZWNv
bXByZXNzX25leHRfbWVzc2FnZSA9IEZhbHNlCi0KLSAgICAgICAgICAgIGRlZiBkZWNvbXByZXNz
X25leHRfbWVzc2FnZShzZWxmKToKLSAgICAgICAgICAgICAgICBzZWxmLl9kZWNvbXByZXNzX25l
eHRfbWVzc2FnZSA9IFRydWUKLQotICAgICAgICAgICAgZGVmIGZpbHRlcihzZWxmLCBtZXNzYWdl
KToKLSAgICAgICAgICAgICAgICBtZXNzYWdlID0gc2VsZi5fcGFyZW50Ll9wcm9jZXNzX2luY29t
aW5nX21lc3NhZ2UoCi0gICAgICAgICAgICAgICAgICAgIG1lc3NhZ2UsIHNlbGYuX2RlY29tcHJl
c3NfbmV4dF9tZXNzYWdlKQotICAgICAgICAgICAgICAgIHNlbGYuX2RlY29tcHJlc3NfbmV4dF9t
ZXNzYWdlID0gRmFsc2UKLSAgICAgICAgICAgICAgICByZXR1cm4gbWVzc2FnZQotCi0gICAgICAg
IHNlbGYuX291dGdvaW5nX21lc3NhZ2VfZmlsdGVyID0gX091dGdvaW5nTWVzc2FnZUZpbHRlcihz
ZWxmKQotICAgICAgICBzZWxmLl9pbmNvbWluZ19tZXNzYWdlX2ZpbHRlciA9IF9JbmNvbWluZ01l
c3NhZ2VGaWx0ZXIoc2VsZikKLSAgICAgICAgc3RyZWFtX29wdGlvbnMub3V0Z29pbmdfbWVzc2Fn
ZV9maWx0ZXJzLmFwcGVuZCgKLSAgICAgICAgICAgIHNlbGYuX291dGdvaW5nX21lc3NhZ2VfZmls
dGVyKQotICAgICAgICBzdHJlYW1fb3B0aW9ucy5pbmNvbWluZ19tZXNzYWdlX2ZpbHRlcnMuYXBw
ZW5kKAotICAgICAgICAgICAgc2VsZi5faW5jb21pbmdfbWVzc2FnZV9maWx0ZXIpCi0KLSAgICAg
ICAgY2xhc3MgX091dGdvaW5nRnJhbWVGaWx0ZXIob2JqZWN0KToKLQotICAgICAgICAgICAgZGVm
IF9faW5pdF9fKHNlbGYsIHBhcmVudCk6Ci0gICAgICAgICAgICAgICAgc2VsZi5fcGFyZW50ID0g
cGFyZW50Ci0gICAgICAgICAgICAgICAgc2VsZi5fc2V0X2NvbXByZXNzaW9uX2JpdCA9IEZhbHNl
Ci0KLSAgICAgICAgICAgIGRlZiBzZXRfY29tcHJlc3Npb25fYml0KHNlbGYpOgotICAgICAgICAg
ICAgICAgIHNlbGYuX3NldF9jb21wcmVzc2lvbl9iaXQgPSBUcnVlCi0KLSAgICAgICAgICAgIGRl
ZiBmaWx0ZXIoc2VsZiwgZnJhbWUpOgotICAgICAgICAgICAgICAgIHNlbGYuX3BhcmVudC5fcHJv
Y2Vzc19vdXRnb2luZ19mcmFtZSgKLSAgICAgICAgICAgICAgICAgICAgZnJhbWUsIHNlbGYuX3Nl
dF9jb21wcmVzc2lvbl9iaXQpCi0gICAgICAgICAgICAgICAgc2VsZi5fc2V0X2NvbXByZXNzaW9u
X2JpdCA9IEZhbHNlCi0KLSAgICAgICAgY2xhc3MgX0luY29taW5nRnJhbWVGaWx0ZXIob2JqZWN0
KToKLQotICAgICAgICAgICAgZGVmIF9faW5pdF9fKHNlbGYsIHBhcmVudCk6Ci0gICAgICAgICAg
ICAgICAgc2VsZi5fcGFyZW50ID0gcGFyZW50Ci0KLSAgICAgICAgICAgIGRlZiBmaWx0ZXIoc2Vs
ZiwgZnJhbWUpOgotICAgICAgICAgICAgICAgIHNlbGYuX3BhcmVudC5fcHJvY2Vzc19pbmNvbWlu
Z19mcmFtZShmcmFtZSkKLQotICAgICAgICBzZWxmLl9vdXRnb2luZ19mcmFtZV9maWx0ZXIgPSBf
T3V0Z29pbmdGcmFtZUZpbHRlcihzZWxmKQotICAgICAgICBzZWxmLl9pbmNvbWluZ19mcmFtZV9m
aWx0ZXIgPSBfSW5jb21pbmdGcmFtZUZpbHRlcihzZWxmKQotICAgICAgICBzdHJlYW1fb3B0aW9u
cy5vdXRnb2luZ19mcmFtZV9maWx0ZXJzLmFwcGVuZCgKLSAgICAgICAgICAgIHNlbGYuX291dGdv
aW5nX2ZyYW1lX2ZpbHRlcikKLSAgICAgICAgc3RyZWFtX29wdGlvbnMuaW5jb21pbmdfZnJhbWVf
ZmlsdGVycy5hcHBlbmQoCi0gICAgICAgICAgICBzZWxmLl9pbmNvbWluZ19mcmFtZV9maWx0ZXIp
Ci0KLSAgICAgICAgc3RyZWFtX29wdGlvbnMuZW5jb2RlX3RleHRfbWVzc2FnZV90b191dGY4ID0g
RmFsc2UKLQotCi1fYXZhaWxhYmxlX3Byb2Nlc3NvcnNbY29tbW9uLlBFUk1FU1NBR0VfREVGTEFU
RV9FWFRFTlNJT05dID0gKAotICAgICAgICBQZXJNZXNzYWdlRGVmbGF0ZUV4dGVuc2lvblByb2Nl
c3NvcikKLSMgVE9ETyh0eW9zaGlubyk6IFJlb3JnYW5pemUgY2xhc3MgbmFtZXMuCi1fY29tcHJl
c3Npb25fZXh0ZW5zaW9uX25hbWVzLmFwcGVuZCgnZGVmbGF0ZScpCi0KLQotY2xhc3MgUGVyTWVz
c2FnZUNvbXByZXNzRXh0ZW5zaW9uUHJvY2Vzc29yKAotICAgIENvbXByZXNzaW9uRXh0ZW5zaW9u
UHJvY2Vzc29yQmFzZSk6Ci0gICAgIiIicGVybWVzc2FnZS1jb21wcmVzcyBleHRlbnNpb24gcHJv
Y2Vzc29yLgotCi0gICAgU3BlY2lmaWNhdGlvbjoKLSAgICBodHRwOi8vdG9vbHMuaWV0Zi5vcmcv
aHRtbC9kcmFmdC1pZXRmLWh5YmktcGVybWVzc2FnZS1jb21wcmVzc2lvbgotICAgICIiIgotCi0g
ICAgX0RFRkxBVEVfTUVUSE9EID0gJ2RlZmxhdGUnCi0KLSAgICBkZWYgX19pbml0X18oc2VsZiwg
cmVxdWVzdCk6Ci0gICAgICAgIENvbXByZXNzaW9uRXh0ZW5zaW9uUHJvY2Vzc29yQmFzZS5fX2lu
aXRfXyhzZWxmLCByZXF1ZXN0KQotCi0gICAgZGVmIG5hbWUoc2VsZik6Ci0gICAgICAgIHJldHVy
biBjb21tb24uUEVSTUVTU0FHRV9DT01QUkVTU0lPTl9FWFRFTlNJT04KLQotICAgIGRlZiBfbG9v
a3VwX2NvbXByZXNzaW9uX3Byb2Nlc3NvcihzZWxmLCBtZXRob2RfZGVzYyk6Ci0gICAgICAgIGlm
IG1ldGhvZF9kZXNjLm5hbWUoKSA9PSBzZWxmLl9ERUZMQVRFX01FVEhPRDoKLSAgICAgICAgICAg
IHJldHVybiBQZXJNZXNzYWdlRGVmbGF0ZUV4dGVuc2lvblByb2Nlc3NvcihtZXRob2RfZGVzYywg
RmFsc2UpCi0gICAgICAgIHJldHVybiBOb25lCi0KLQotX2F2YWlsYWJsZV9wcm9jZXNzb3JzW2Nv
bW1vbi5QRVJNRVNTQUdFX0NPTVBSRVNTSU9OX0VYVEVOU0lPTl0gPSAoCi0gICAgUGVyTWVzc2Fn
ZUNvbXByZXNzRXh0ZW5zaW9uUHJvY2Vzc29yKQotX2NvbXByZXNzaW9uX2V4dGVuc2lvbl9uYW1l
cy5hcHBlbmQoY29tbW9uLlBFUk1FU1NBR0VfQ09NUFJFU1NJT05fRVhURU5TSU9OKQotCi0KLWNs
YXNzIE11eEV4dGVuc2lvblByb2Nlc3NvcihFeHRlbnNpb25Qcm9jZXNzb3JJbnRlcmZhY2UpOgot
ICAgICIiIldlYlNvY2tldCBtdWx0aXBsZXhpbmcgZXh0ZW5zaW9uIHByb2Nlc3Nvci4iIiIKLQot
ICAgIF9RVU9UQV9QQVJBTSA9ICdxdW90YScKLQotICAgIGRlZiBfX2luaXRfXyhzZWxmLCByZXF1
ZXN0KToKLSAgICAgICAgRXh0ZW5zaW9uUHJvY2Vzc29ySW50ZXJmYWNlLl9faW5pdF9fKHNlbGYs
IHJlcXVlc3QpCi0gICAgICAgIHNlbGYuX3F1b3RhID0gMAotICAgICAgICBzZWxmLl9leHRlbnNp
b25zID0gW10KLQotICAgIGRlZiBuYW1lKHNlbGYpOgotICAgICAgICByZXR1cm4gY29tbW9uLk1V
WF9FWFRFTlNJT04KLQotICAgIGRlZiBjaGVja19jb25zaXN0ZW5jeV93aXRoX290aGVyX3Byb2Nl
c3NvcnMoc2VsZiwgcHJvY2Vzc29ycyk6Ci0gICAgICAgIGJlZm9yZV9tdXggPSBUcnVlCi0gICAg
ICAgIGZvciBwcm9jZXNzb3IgaW4gcHJvY2Vzc29yczoKLSAgICAgICAgICAgIG5hbWUgPSBwcm9j
ZXNzb3IubmFtZSgpCi0gICAgICAgICAgICBpZiBuYW1lID09IHNlbGYubmFtZSgpOgotICAgICAg
ICAgICAgICAgIGJlZm9yZV9tdXggPSBGYWxzZQotICAgICAgICAgICAgICAgIGNvbnRpbnVlCi0g
ICAgICAgICAgICBpZiBub3QgcHJvY2Vzc29yLmlzX2FjdGl2ZSgpOgotICAgICAgICAgICAgICAg
IGNvbnRpbnVlCi0gICAgICAgICAgICBpZiBiZWZvcmVfbXV4OgotICAgICAgICAgICAgICAgICMg
TXV4IGV4dGVuc2lvbiBjYW5ub3QgYmUgdXNlZCBhZnRlciBleHRlbnNpb25zCi0gICAgICAgICAg
ICAgICAgIyB0aGF0IGRlcGVuZCBvbiBmcmFtZSBib3VuZGFyeSwgZXh0ZW5zaW9uIGRhdGEgZmll
bGQsIG9yIGFueQotICAgICAgICAgICAgICAgICMgcmVzZXJ2ZWQgYml0cyB3aGljaCBhcmUgYXR0
cmlidXRlZCB0byBlYWNoIGZyYW1lLgotICAgICAgICAgICAgICAgIGlmIChuYW1lID09IGNvbW1v
bi5ERUZMQVRFX0ZSQU1FX0VYVEVOU0lPTiBvcgotICAgICAgICAgICAgICAgICAgICBuYW1lID09
IGNvbW1vbi5YX1dFQktJVF9ERUZMQVRFX0ZSQU1FX0VYVEVOU0lPTik6Ci0gICAgICAgICAgICAg
ICAgICAgIHNlbGYuc2V0X2FjdGl2ZShGYWxzZSkKLSAgICAgICAgICAgICAgICAgICAgcmV0dXJu
Ci0gICAgICAgICAgICBlbHNlOgotICAgICAgICAgICAgICAgICMgTXV4IGV4dGVuc2lvbiBzaG91
bGQgbm90IGJlIGFwcGxpZWQgYmVmb3JlIGFueSBoaXN0b3J5LWJhc2VkCi0gICAgICAgICAgICAg
ICAgIyBjb21wcmVzc2lvbiBleHRlbnNpb24uCi0gICAgICAgICAgICAgICAgaWYgKG5hbWUgPT0g
Y29tbW9uLkRFRkxBVEVfRlJBTUVfRVhURU5TSU9OIG9yCi0gICAgICAgICAgICAgICAgICAgIG5h
bWUgPT0gY29tbW9uLlhfV0VCS0lUX0RFRkxBVEVfRlJBTUVfRVhURU5TSU9OIG9yCi0gICAgICAg
ICAgICAgICAgICAgIG5hbWUgPT0gY29tbW9uLlBFUk1FU1NBR0VfQ09NUFJFU1NJT05fRVhURU5T
SU9OIG9yCi0gICAgICAgICAgICAgICAgICAgIG5hbWUgPT0gY29tbW9uLlhfV0VCS0lUX1BFUk1F
U1NBR0VfQ09NUFJFU1NJT05fRVhURU5TSU9OKToKLSAgICAgICAgICAgICAgICAgICAgc2VsZi5z
ZXRfYWN0aXZlKEZhbHNlKQotICAgICAgICAgICAgICAgICAgICByZXR1cm4KLQotICAgIGRlZiBf
Z2V0X2V4dGVuc2lvbl9yZXNwb25zZV9pbnRlcm5hbChzZWxmKToKLSAgICAgICAgc2VsZi5fYWN0
aXZlID0gRmFsc2UKLSAgICAgICAgcXVvdGEgPSBzZWxmLl9yZXF1ZXN0LmdldF9wYXJhbWV0ZXJf
dmFsdWUoc2VsZi5fUVVPVEFfUEFSQU0pCi0gICAgICAgIGlmIHF1b3RhIGlzIG5vdCBOb25lOgot
ICAgICAgICAgICAgdHJ5OgotICAgICAgICAgICAgICAgIHF1b3RhID0gaW50KHF1b3RhKQotICAg
ICAgICAgICAgZXhjZXB0IFZhbHVlRXJyb3IsIGU6Ci0gICAgICAgICAgICAgICAgcmV0dXJuIE5v
bmUKLSAgICAgICAgICAgIGlmIHF1b3RhIDwgMCBvciBxdW90YSA+PSAyICoqIDMyOgotICAgICAg
ICAgICAgICAgIHJldHVybiBOb25lCi0gICAgICAgICAgICBzZWxmLl9xdW90YSA9IHF1b3RhCi0K
LSAgICAgICAgc2VsZi5fYWN0aXZlID0gVHJ1ZQotICAgICAgICByZXR1cm4gY29tbW9uLkV4dGVu
c2lvblBhcmFtZXRlcihjb21tb24uTVVYX0VYVEVOU0lPTikKLQotICAgIGRlZiBfc2V0dXBfc3Ry
ZWFtX29wdGlvbnNfaW50ZXJuYWwoc2VsZiwgc3RyZWFtX29wdGlvbnMpOgotICAgICAgICBwYXNz
Ci0KLSAgICBkZWYgc2V0X3F1b3RhKHNlbGYsIHF1b3RhKToKLSAgICAgICAgc2VsZi5fcXVvdGEg
PSBxdW90YQotCi0gICAgZGVmIHF1b3RhKHNlbGYpOgotICAgICAgICByZXR1cm4gc2VsZi5fcXVv
dGEKLQotICAgIGRlZiBzZXRfZXh0ZW5zaW9ucyhzZWxmLCBleHRlbnNpb25zKToKLSAgICAgICAg
c2VsZi5fZXh0ZW5zaW9ucyA9IGV4dGVuc2lvbnMKLQotICAgIGRlZiBleHRlbnNpb25zKHNlbGYp
OgotICAgICAgICByZXR1cm4gc2VsZi5fZXh0ZW5zaW9ucwotCi0KLV9hdmFpbGFibGVfcHJvY2Vz
c29yc1tjb21tb24uTVVYX0VYVEVOU0lPTl0gPSBNdXhFeHRlbnNpb25Qcm9jZXNzb3IKLQotCi1k
ZWYgZ2V0X2V4dGVuc2lvbl9wcm9jZXNzb3IoZXh0ZW5zaW9uX3JlcXVlc3QpOgotICAgICIiIkdp
dmVuIGFuIEV4dGVuc2lvblBhcmFtZXRlciByZXByZXNlbnRpbmcgYW4gZXh0ZW5zaW9uIG9mZmVy
IHJlY2VpdmVkCi0gICAgZnJvbSBhIGNsaWVudCwgY29uZmlndXJlcyBhbmQgcmV0dXJucyBhbiBp
bnN0YW5jZSBvZiB0aGUgY29ycmVzcG9uZGluZwotICAgIGV4dGVuc2lvbiBwcm9jZXNzb3IgY2xh
c3MuCi0gICAgIiIiCi0KLSAgICBwcm9jZXNzb3JfY2xhc3MgPSBfYXZhaWxhYmxlX3Byb2Nlc3Nv
cnMuZ2V0KGV4dGVuc2lvbl9yZXF1ZXN0Lm5hbWUoKSkKLSAgICBpZiBwcm9jZXNzb3JfY2xhc3Mg
aXMgTm9uZToKLSAgICAgICAgcmV0dXJuIE5vbmUKLSAgICByZXR1cm4gcHJvY2Vzc29yX2NsYXNz
KGV4dGVuc2lvbl9yZXF1ZXN0KQotCi0KLWRlZiBpc19jb21wcmVzc2lvbl9leHRlbnNpb24oZXh0
ZW5zaW9uX25hbWUpOgotICAgIHJldHVybiBleHRlbnNpb25fbmFtZSBpbiBfY29tcHJlc3Npb25f
ZXh0ZW5zaW9uX25hbWVzCi0KLQotIyB2aTpzdHM9NCBzdz00IGV0CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0
L3NyYy9tb2RfcHl3ZWJzb2NrZXQvZmFzdF9tYXNraW5nLmkgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3NyYy9tb2RfcHl3ZWJz
b2NrZXQvZmFzdF9tYXNraW5nLmkKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGRkYWFk
MjdmNTNjNDZiZTJhNzFjNzA0YzcwOGZiYjNmNDJmMWEzZDEuLjAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9zcmMvbW9kX3B5d2Vic29ja2V0L2Zhc3Rf
bWFza2luZy5pCisrKyAvZGV2L251bGwKQEAgLTEsOTggKzAsMCBAQAotLy8gQ29weXJpZ2h0IDIw
MTMsIEdvb2dsZSBJbmMuCi0vLyBBbGwgcmlnaHRzIHJlc2VydmVkLgotLy8KLS8vIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAotLy8gbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zIGFyZQotLy8gbWV0OgotLy8KLS8vICAgICAqIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0vLyBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
Ci0vLyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlCi0vLyBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCi0vLyBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCi0vLyBkaXN0cmlidXRpb24uCi0v
LyAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2Yg
aXRzCi0vLyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHBy
b2R1Y3RzIGRlcml2ZWQgZnJvbQotLy8gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHBy
aW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLS8vCi0vLyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCi0vLyAiQVMgSVMiIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAot
Ly8gTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SCi0vLyBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAotLy8gT1dORVIgT1IgQ09OVFJJQlVUT1JT
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCi0vLyBTUEVD
SUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UCi0vLyBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwKLS8vIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQotLy8gVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotLy8g
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFCi0vLyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotCi0KLSVtb2R1bGUgZmFzdF9tYXNraW5nCi0K
LSVpbmNsdWRlICJjc3RyaW5nLmkiCi0KLSV7Ci0jaW5jbHVkZSA8Y3N0cmluZz4KLQotI2lmZGVm
IF9fU1NFMl9fCi0jaW5jbHVkZSA8ZW1taW50cmluLmg+Ci0jZW5kaWYKLSV9Ci0KLSVhcHBseSAo
Y2hhciAqU1RSSU5HLCBpbnQgTEVOR1RIKSB7Ci0gICAgKGNvbnN0IGNoYXIqIHBheWxvYWQsIGlu
dCBwYXlsb2FkX2xlbmd0aCksCi0gICAgKGNvbnN0IGNoYXIqIG1hc2tpbmdfa2V5LCBpbnQgbWFz
a2luZ19rZXlfbGVuZ3RoKSB9OwotJWNzdHJpbmdfb3V0cHV0X2FsbG9jYXRlX3NpemUoCi0gICAg
Y2hhcioqIHJlc3VsdCwgaW50KiByZXN1bHRfbGVuZ3RoLCBkZWxldGUgW10gKiQxKTsKLQotJWlu
bGluZSAlewotCi12b2lkIG1hc2soCi0gICAgY29uc3QgY2hhciogcGF5bG9hZCwgaW50IHBheWxv
YWRfbGVuZ3RoLAotICAgIGNvbnN0IGNoYXIqIG1hc2tpbmdfa2V5LCBpbnQgbWFza2luZ19rZXlf
bGVuZ3RoLAotICAgIGludCBtYXNraW5nX2tleV9pbmRleCwKLSAgICBjaGFyKiogcmVzdWx0LCBp
bnQqIHJlc3VsdF9sZW5ndGgpIHsKLSAgKnJlc3VsdCA9IG5ldyBjaGFyW3BheWxvYWRfbGVuZ3Ro
XTsKLSAgKnJlc3VsdF9sZW5ndGggPSBwYXlsb2FkX2xlbmd0aDsKLSAgbWVtY3B5KCpyZXN1bHQs
IHBheWxvYWQsIHBheWxvYWRfbGVuZ3RoKTsKLQotICBjaGFyKiBjdXJzb3IgPSAqcmVzdWx0Owot
ICBjaGFyKiBjdXJzb3JfZW5kID0gKnJlc3VsdCArICpyZXN1bHRfbGVuZ3RoOwotCi0jaWZkZWYg
X19TU0UyX18KLSAgd2hpbGUgKChjdXJzb3IgPCBjdXJzb3JfZW5kKSAmJgotICAgICAgICAgKHJl
aW50ZXJwcmV0X2Nhc3Q8c2l6ZV90PihjdXJzb3IpICYgMHhmKSkgewotICAgICpjdXJzb3IgXj0g
bWFza2luZ19rZXlbbWFza2luZ19rZXlfaW5kZXhdOwotICAgICsrY3Vyc29yOwotICAgIG1hc2tp
bmdfa2V5X2luZGV4ID0gKG1hc2tpbmdfa2V5X2luZGV4ICsgMSkgJSBtYXNraW5nX2tleV9sZW5n
dGg7Ci0gIH0KLSAgaWYgKGN1cnNvciA9PSBjdXJzb3JfZW5kKSB7Ci0gICAgcmV0dXJuOwotICB9
Ci0KLSAgY29uc3QgaW50IGtCbG9ja1NpemUgPSAxNjsKLSAgX19tMTI4aSBtYXNraW5nX2tleV9i
bG9jazsKLSAgZm9yIChpbnQgaSA9IDA7IGkgPCBrQmxvY2tTaXplOyArK2kpIHsKLSAgICAqKHJl
aW50ZXJwcmV0X2Nhc3Q8Y2hhcio+KCZtYXNraW5nX2tleV9ibG9jaykgKyBpKSA9Ci0gICAgICAg
IG1hc2tpbmdfa2V5W21hc2tpbmdfa2V5X2luZGV4XTsKLSAgICBtYXNraW5nX2tleV9pbmRleCA9
IChtYXNraW5nX2tleV9pbmRleCArIDEpICUgbWFza2luZ19rZXlfbGVuZ3RoOwotICB9Ci0KLSAg
d2hpbGUgKGN1cnNvciArIGtCbG9ja1NpemUgPD0gY3Vyc29yX2VuZCkgewotICAgIF9fbTEyOGkg
cGF5bG9hZF9ibG9jayA9Ci0gICAgICAgIF9tbV9sb2FkX3NpMTI4KHJlaW50ZXJwcmV0X2Nhc3Q8
X19tMTI4aSo+KGN1cnNvcikpOwotICAgIF9tbV9zdHJlYW1fc2kxMjgocmVpbnRlcnByZXRfY2Fz
dDxfX20xMjhpKj4oY3Vyc29yKSwKLSAgICAgICAgICAgICAgICAgICAgIF9tbV94b3Jfc2kxMjgo
cGF5bG9hZF9ibG9jaywgbWFza2luZ19rZXlfYmxvY2spKTsKLSAgICBjdXJzb3IgKz0ga0Jsb2Nr
U2l6ZTsKLSAgfQotI2VuZGlmCi0KLSAgd2hpbGUgKGN1cnNvciA8IGN1cnNvcl9lbmQpIHsKLSAg
ICAqY3Vyc29yIF49IG1hc2tpbmdfa2V5W21hc2tpbmdfa2V5X2luZGV4XTsKLSAgICArK2N1cnNv
cjsKLSAgICBtYXNraW5nX2tleV9pbmRleCA9IChtYXNraW5nX2tleV9pbmRleCArIDEpICUgbWFz
a2luZ19rZXlfbGVuZ3RoOwotICB9Ci19Ci0KLSV9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3NyYy9tb2Rf
cHl3ZWJzb2NrZXQvaGFuZHNoYWtlL19faW5pdF9fLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9zcmMvbW9kX3B5d2Vic29j
a2V0L2hhbmRzaGFrZS9fX2luaXRfXy5weQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MTk0ZjZiMzk1YWUyM2IzYTEzNjQxY2Q0YjkwNGY1OTM1ZDFmYTFmMi4uMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3NyYy9tb2RfcHl3ZWJzb2NrZXQv
aGFuZHNoYWtlL19faW5pdF9fLnB5CisrKyAvZGV2L251bGwKQEAgLTEsMTEwICswLDAgQEAKLSMg
Q29weXJpZ2h0IDIwMTEsIEdvb2dsZSBJbmMuCi0jIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0jCi0j
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAotIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCi0jIG1ldDoKLSMKLSMgICAgICogUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSMg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgotIyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlCi0jIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKLSMgaW4gdGhlIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQotIyBkaXN0cmlidXRpb24uCi0j
ICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBp
dHMKLSMgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9k
dWN0cyBkZXJpdmVkIGZyb20KLSMgdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9y
IHdyaXR0ZW4gcGVybWlzc2lvbi4KLSMKLSMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBU
SEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwotIyAiQVMgSVMiIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAotIyBMSU1J
VEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IKLSMgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKLSMgT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCi0jIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKLSMgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsCi0jIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQotIyBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0jIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQot
IyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgotCi0KLSIiIldlYlNvY2tldCBvcGVuaW5nIGhhbmRzaGFrZSBwcm9jZXNz
b3IuIFRoaXMgY2xhc3MgdHJ5IHRvIGFwcGx5IGF2YWlsYWJsZQotb3BlbmluZyBoYW5kc2hha2Ug
cHJvY2Vzc29ycyBmb3IgZWFjaCBwcm90b2NvbCB2ZXJzaW9uIHVudGlsIGEgY29ubmVjdGlvbiBp
cwotc3VjY2Vzc2Z1bGx5IGVzdGFibGlzaGVkLgotIiIiCi0KLQotaW1wb3J0IGxvZ2dpbmcKLQot
ZnJvbSBtb2RfcHl3ZWJzb2NrZXQgaW1wb3J0IGNvbW1vbgotZnJvbSBtb2RfcHl3ZWJzb2NrZXQu
aGFuZHNoYWtlIGltcG9ydCBoeWJpMDAKLWZyb20gbW9kX3B5d2Vic29ja2V0LmhhbmRzaGFrZSBp
bXBvcnQgaHliaQotIyBFeHBvcnQgQWJvcnRlZEJ5VXNlckV4Y2VwdGlvbiwgSGFuZHNoYWtlRXhj
ZXB0aW9uLCBhbmQgVmVyc2lvbkV4Y2VwdGlvbgotIyBzeW1ib2wgZnJvbSB0aGlzIG1vZHVsZS4K
LWZyb20gbW9kX3B5d2Vic29ja2V0LmhhbmRzaGFrZS5fYmFzZSBpbXBvcnQgQWJvcnRlZEJ5VXNl
ckV4Y2VwdGlvbgotZnJvbSBtb2RfcHl3ZWJzb2NrZXQuaGFuZHNoYWtlLl9iYXNlIGltcG9ydCBI
YW5kc2hha2VFeGNlcHRpb24KLWZyb20gbW9kX3B5d2Vic29ja2V0LmhhbmRzaGFrZS5fYmFzZSBp
bXBvcnQgVmVyc2lvbkV4Y2VwdGlvbgotCi0KLV9MT0dHRVIgPSBsb2dnaW5nLmdldExvZ2dlcihf
X25hbWVfXykKLQotCi1kZWYgZG9faGFuZHNoYWtlKHJlcXVlc3QsIGRpc3BhdGNoZXIsIGFsbG93
RHJhZnQ3NT1GYWxzZSwgc3RyaWN0PUZhbHNlKToKLSAgICAiIiJQZXJmb3JtcyBXZWJTb2NrZXQg
aGFuZHNoYWtlLgotCi0gICAgQXJnczoKLSAgICAgICAgcmVxdWVzdDogbW9kX3B5dGhvbiByZXF1
ZXN0LgotICAgICAgICBkaXNwYXRjaGVyOiBEaXNwYXRjaGVyIChkaXNwYXRjaC5EaXNwYXRjaGVy
KS4KLSAgICAgICAgYWxsb3dEcmFmdDc1OiBvYnNvbGV0ZSBhcmd1bWVudC4gaWdub3JlZC4KLSAg
ICAgICAgc3RyaWN0OiBvYnNvbGV0ZSBhcmd1bWVudC4gaWdub3JlZC4KLQotICAgIEhhbmRzaGFr
ZXIgd2lsbCBhZGQgYXR0cmlidXRlcyBzdWNoIGFzIHdzX3Jlc291cmNlIGluIHBlcmZvcm1pbmcK
LSAgICBoYW5kc2hha2UuCi0gICAgIiIiCi0KLSAgICBfTE9HR0VSLmRlYnVnKCdDbGllbnRcJ3Mg
b3BlbmluZyBoYW5kc2hha2UgcmVzb3VyY2U6ICVyJywgcmVxdWVzdC51cmkpCi0gICAgIyBUbyBw
cmludCBtaW1ldG9vbHMuTWVzc2FnZSBhcyBlc2NhcGVkIG9uZS1saW5lIHN0cmluZywgd2UgY29u
dmVydHMKLSAgICAjIGhlYWRlcnNfaW4gdG8gZGljdCBvYmplY3QuIFdpdGhvdXQgY29udmVyc2lv
biwgaWYgd2UgdXNlICVyLCBpdCBqdXN0Ci0gICAgIyBwcmludHMgdGhlIHR5cGUgYW5kIGFkZHJl
c3MsIGFuZCBpZiB3ZSB1c2UgJXMsIGl0IHByaW50cyB0aGUgb3JpZ2luYWwKLSAgICAjIGhlYWRl
ciBzdHJpbmcgYXMgbXVsdGlwbGUgbGluZXMuCi0gICAgIwotICAgICMgQm90aCBtaW1ldG9vbHMu
TWVzc2FnZSBhbmQgTXBUYWJsZV9UeXBlIG9mIG1vZF9weXRob24gY2FuIGJlCi0gICAgIyBjb252
ZXJ0ZWQgdG8gZGljdC4KLSAgICAjCi0gICAgIyBtaW1ldG9vbHMuTWVzc2FnZS5fX3N0cl9fIHJl
dHVybnMgdGhlIG9yaWdpbmFsIGhlYWRlciBzdHJpbmcuCi0gICAgIyBkaWN0KG1pbWV0b29scy5N
ZXNzYWdlIG9iamVjdCkgcmV0dXJucyB0aGUgbWFwIGZyb20gaGVhZGVyIG5hbWVzIHRvCi0gICAg
IyBoZWFkZXIgdmFsdWVzLiBXaGlsZSBNcFRhYmxlX1R5cGUgZG9lc24ndCBoYXZlIHN1Y2ggX19z
dHJfXyBidXQganVzdAotICAgICMgX19yZXByX18gd2hpY2ggZm9ybWF0cyBpdHNlbGYgYXMgd2Vs
bCBhcyBkaWN0aW9uYXJ5IG9iamVjdC4KLSAgICBfTE9HR0VSLmRlYnVnKAotICAgICAgICAnQ2xp
ZW50XCdzIG9wZW5pbmcgaGFuZHNoYWtlIGhlYWRlcnM6ICVyJywgZGljdChyZXF1ZXN0LmhlYWRl
cnNfaW4pKQotCi0gICAgaGFuZHNoYWtlcnMgPSBbXQotICAgIGhhbmRzaGFrZXJzLmFwcGVuZCgK
LSAgICAgICAgKCdSRkMgNjQ1NScsIGh5YmkuSGFuZHNoYWtlcihyZXF1ZXN0LCBkaXNwYXRjaGVy
KSkpCi0gICAgaGFuZHNoYWtlcnMuYXBwZW5kKAotICAgICAgICAoJ0h5QmkgMDAnLCBoeWJpMDAu
SGFuZHNoYWtlcihyZXF1ZXN0LCBkaXNwYXRjaGVyKSkpCi0KLSAgICBmb3IgbmFtZSwgaGFuZHNo
YWtlciBpbiBoYW5kc2hha2VyczoKLSAgICAgICAgX0xPR0dFUi5kZWJ1ZygnVHJ5aW5nIHByb3Rv
Y29sIHZlcnNpb24gJXMnLCBuYW1lKQotICAgICAgICB0cnk6Ci0gICAgICAgICAgICBoYW5kc2hh
a2VyLmRvX2hhbmRzaGFrZSgpCi0gICAgICAgICAgICBfTE9HR0VSLmluZm8oJ0VzdGFibGlzaGVk
ICglcyBwcm90b2NvbCknLCBuYW1lKQotICAgICAgICAgICAgcmV0dXJuCi0gICAgICAgIGV4Y2Vw
dCBIYW5kc2hha2VFeGNlcHRpb24sIGU6Ci0gICAgICAgICAgICBfTE9HR0VSLmRlYnVnKAotICAg
ICAgICAgICAgICAgICdGYWlsZWQgdG8gY29tcGxldGUgb3BlbmluZyBoYW5kc2hha2UgYXMgJXMg
cHJvdG9jb2w6ICVyJywKLSAgICAgICAgICAgICAgICBuYW1lLCBlKQotICAgICAgICAgICAgaWYg
ZS5zdGF0dXM6Ci0gICAgICAgICAgICAgICAgcmFpc2UgZQotICAgICAgICBleGNlcHQgQWJvcnRl
ZEJ5VXNlckV4Y2VwdGlvbiwgZToKLSAgICAgICAgICAgIHJhaXNlCi0gICAgICAgIGV4Y2VwdCBW
ZXJzaW9uRXhjZXB0aW9uLCBlOgotICAgICAgICAgICAgcmFpc2UKLQotICAgICMgVE9ETyh0b3lv
c2hpbSk6IEFkZCBhIHRlc3QgdG8gY292ZXIgdGhlIGNhc2UgYWxsIGhhbmRzaGFrZXJzIGZhaWwu
Ci0gICAgcmFpc2UgSGFuZHNoYWtlRXhjZXB0aW9uKAotICAgICAgICAnRmFpbGVkIHRvIGNvbXBs
ZXRlIG9wZW5pbmcgaGFuZHNoYWtlIGZvciBhbGwgYXZhaWxhYmxlIHByb3RvY29scycsCi0gICAg
ICAgIHN0YXR1cz1jb21tb24uSFRUUF9TVEFUVVNfQkFEX1JFUVVFU1QpCi0KLQotIyB2aTpzdHM9
NCBzdz00IGV0CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3NyYy9tb2RfcHl3ZWJzb2NrZXQvaGFuZHNoYWtl
L19iYXNlLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy9weXdlYnNvY2tldC9zcmMvbW9kX3B5d2Vic29ja2V0L2hhbmRzaGFrZS9fYmFzZS5weQpk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYzk5M2E1ODRiN2IzZTUyYjYwN2I2NWJmMzhh
ZmRjYWRkY2EyZmU3OC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAot
LS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5
d2Vic29ja2V0L3NyYy9tb2RfcHl3ZWJzb2NrZXQvaGFuZHNoYWtlL19iYXNlLnB5CisrKyAvZGV2
L251bGwKQEAgLTEsMTgyICswLDAgQEAKLSMgQ29weXJpZ2h0IDIwMTIsIEdvb2dsZSBJbmMuCi0j
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0jCi0jIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotIyBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCi0j
IG1ldDoKLSMKLSMgICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSMgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotIyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCi0jIGNvcHlyaWdodCBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIK
LSMgaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZQotIyBkaXN0cmlidXRpb24uCi0jICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29v
Z2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKLSMgY29udHJpYnV0b3JzIG1heSBiZSB1c2Vk
IHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KLSMgdGhpcyBzb2Z0
d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLSMKLSMgVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRS
SUJVVE9SUwotIyAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVAotIyBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKLSMgQSBQQVJUSUNVTEFSIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKLSMgT1dO
RVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsCi0jIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QKLSMgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCi0jIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQotIyBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUCi0jIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotCi0KLSIiIkNvbW1vbiBm
dW5jdGlvbnMgYW5kIGV4Y2VwdGlvbnMgdXNlZCBieSBXZWJTb2NrZXQgb3BlbmluZyBoYW5kc2hh
a2UKLXByb2Nlc3NvcnMuCi0iIiIKLQotCi1mcm9tIG1vZF9weXdlYnNvY2tldCBpbXBvcnQgY29t
bW9uCi1mcm9tIG1vZF9weXdlYnNvY2tldCBpbXBvcnQgaHR0cF9oZWFkZXJfdXRpbAotCi0KLWNs
YXNzIEFib3J0ZWRCeVVzZXJFeGNlcHRpb24oRXhjZXB0aW9uKToKLSAgICAiIiJFeGNlcHRpb24g
Zm9yIGFib3J0aW5nIGEgY29ubmVjdGlvbiBpbnRlbnRpb25hbGx5LgotCi0gICAgSWYgdGhpcyBl
eGNlcHRpb24gaXMgcmFpc2VkIGluIGRvX2V4dHJhX2hhbmRzaGFrZSBoYW5kbGVyLCB0aGUgY29u
bmVjdGlvbgotICAgIHdpbGwgYmUgYWJhbmRvbmVkLiBObyBvdGhlciBXZWJTb2NrZXQgb3IgSFRU
UChTKSBoYW5kbGVyIHdpbGwgYmUgaW52b2tlZC4KLQotICAgIElmIHRoaXMgZXhjZXB0aW9uIGlz
IHJhaXNlZCBpbiB0cmFuc2Zlcl9kYXRhX2hhbmRsZXIsIHRoZSBjb25uZWN0aW9uIHdpbGwKLSAg
ICBiZSBjbG9zZWQgd2l0aG91dCBjbG9zaW5nIGhhbmRzaGFrZS4gTm8gb3RoZXIgV2ViU29ja2V0
IG9yIEhUVFAoUykgaGFuZGxlcgotICAgIHdpbGwgYmUgaW52b2tlZC4KLSAgICAiIiIKLQotICAg
IHBhc3MKLQotCi1jbGFzcyBIYW5kc2hha2VFeGNlcHRpb24oRXhjZXB0aW9uKToKLSAgICAiIiJU
aGlzIGV4Y2VwdGlvbiB3aWxsIGJlIHJhaXNlZCB3aGVuIGFuIGVycm9yIG9jY3VycmVkIHdoaWxl
IHByb2Nlc3NpbmcKLSAgICBXZWJTb2NrZXQgaW5pdGlhbCBoYW5kc2hha2UuCi0gICAgIiIiCi0K
LSAgICBkZWYgX19pbml0X18oc2VsZiwgbmFtZSwgc3RhdHVzPU5vbmUpOgotICAgICAgICBzdXBl
cihIYW5kc2hha2VFeGNlcHRpb24sIHNlbGYpLl9faW5pdF9fKG5hbWUpCi0gICAgICAgIHNlbGYu
c3RhdHVzID0gc3RhdHVzCi0KLQotY2xhc3MgVmVyc2lvbkV4Y2VwdGlvbihFeGNlcHRpb24pOgot
ICAgICIiIlRoaXMgZXhjZXB0aW9uIHdpbGwgYmUgcmFpc2VkIHdoZW4gYSB2ZXJzaW9uIG9mIGNs
aWVudCByZXF1ZXN0IGRvZXMgbm90Ci0gICAgbWF0Y2ggd2l0aCB2ZXJzaW9uIHRoZSBzZXJ2ZXIg
c3VwcG9ydHMuCi0gICAgIiIiCi0KLSAgICBkZWYgX19pbml0X18oc2VsZiwgbmFtZSwgc3VwcG9y
dGVkX3ZlcnNpb25zPScnKToKLSAgICAgICAgIiIiQ29uc3RydWN0IGFuIGluc3RhbmNlLgotCi0g
ICAgICAgIEFyZ3M6Ci0gICAgICAgICAgICBzdXBwb3J0ZWRfdmVyc2lvbjogYSBzdHIgb2JqZWN0
IHRvIHNob3cgc3VwcG9ydGVkIGh5YmkgdmVyc2lvbnMuCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgKGUuZy4gJzgsIDEzJykKLSAgICAgICAgIiIiCi0gICAgICAgIHN1cGVyKFZlcnNp
b25FeGNlcHRpb24sIHNlbGYpLl9faW5pdF9fKG5hbWUpCi0gICAgICAgIHNlbGYuc3VwcG9ydGVk
X3ZlcnNpb25zID0gc3VwcG9ydGVkX3ZlcnNpb25zCi0KLQotZGVmIGdldF9kZWZhdWx0X3BvcnQo
aXNfc2VjdXJlKToKLSAgICBpZiBpc19zZWN1cmU6Ci0gICAgICAgIHJldHVybiBjb21tb24uREVG
QVVMVF9XRUJfU09DS0VUX1NFQ1VSRV9QT1JUCi0gICAgZWxzZToKLSAgICAgICAgcmV0dXJuIGNv
bW1vbi5ERUZBVUxUX1dFQl9TT0NLRVRfUE9SVAotCi0KLWRlZiB2YWxpZGF0ZV9zdWJwcm90b2Nv
bChzdWJwcm90b2NvbCk6Ci0gICAgIiIiVmFsaWRhdGUgYSB2YWx1ZSBpbiB0aGUgU2VjLVdlYlNv
Y2tldC1Qcm90b2NvbCBmaWVsZC4KLQotICAgIFNlZSB0aGUgU2VjdGlvbiA0LjEuLCA0LjIuMi4s
IGFuZCA0LjMuIG9mIFJGQyA2NDU1LgotICAgICIiIgotCi0gICAgaWYgbm90IHN1YnByb3RvY29s
OgotICAgICAgICByYWlzZSBIYW5kc2hha2VFeGNlcHRpb24oJ0ludmFsaWQgc3VicHJvdG9jb2wg
bmFtZTogZW1wdHknKQotCi0gICAgIyBQYXJhbWV0ZXIgc2hvdWxkIGJlIGVuY29kZWQgSFRUUCB0
b2tlbi4KLSAgICBzdGF0ZSA9IGh0dHBfaGVhZGVyX3V0aWwuUGFyc2luZ1N0YXRlKHN1YnByb3Rv
Y29sKQotICAgIHRva2VuID0gaHR0cF9oZWFkZXJfdXRpbC5jb25zdW1lX3Rva2VuKHN0YXRlKQot
ICAgIHJlc3QgPSBodHRwX2hlYWRlcl91dGlsLnBlZWsoc3RhdGUpCi0gICAgIyBJZiB8cmVzdHwg
aXMgbm90IE5vbmUsIHxzdWJwcm90b2NvbHwgaXMgbm90IG9uZSB0b2tlbiBvciBpbnZhbGlkLiBJ
ZgotICAgICMgfHJlc3R8IGlzIE5vbmUsIHx0b2tlbnwgbXVzdCBub3QgYmUgTm9uZSBiZWNhdXNl
IHxzdWJwcm90b2NvbHwgaXMKLSAgICAjIGNvbmNhdGVuYXRpb24gb2YgfHRva2VufCBhbmQgfHJl
c3R8IGFuZCBpcyBub3QgTm9uZS4KLSAgICBpZiByZXN0IGlzIG5vdCBOb25lOgotICAgICAgICBy
YWlzZSBIYW5kc2hha2VFeGNlcHRpb24oJ0ludmFsaWQgbm9uLXRva2VuIHN0cmluZyBpbiBzdWJw
cm90b2NvbCAnCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnbmFtZTogJXInICUg
cmVzdCkKLQotCi1kZWYgcGFyc2VfaG9zdF9oZWFkZXIocmVxdWVzdCk6Ci0gICAgZmllbGRzID0g
cmVxdWVzdC5oZWFkZXJzX2luW2NvbW1vbi5IT1NUX0hFQURFUl0uc3BsaXQoJzonLCAxKQotICAg
IGlmIGxlbihmaWVsZHMpID09IDE6Ci0gICAgICAgIHJldHVybiBmaWVsZHNbMF0sIGdldF9kZWZh
dWx0X3BvcnQocmVxdWVzdC5pc19odHRwcygpKQotICAgIHRyeToKLSAgICAgICAgcmV0dXJuIGZp
ZWxkc1swXSwgaW50KGZpZWxkc1sxXSkKLSAgICBleGNlcHQgVmFsdWVFcnJvciwgZToKLSAgICAg
ICAgcmFpc2UgSGFuZHNoYWtlRXhjZXB0aW9uKCdJbnZhbGlkIHBvcnQgbnVtYmVyIGZvcm1hdDog
JXInICUgZSkKLQotCi1kZWYgZm9ybWF0X2hlYWRlcihuYW1lLCB2YWx1ZSk6Ci0gICAgcmV0dXJu
ICclczogJXNcclxuJyAlIChuYW1lLCB2YWx1ZSkKLQotCi1kZWYgZ2V0X21hbmRhdG9yeV9oZWFk
ZXIocmVxdWVzdCwga2V5KToKLSAgICB2YWx1ZSA9IHJlcXVlc3QuaGVhZGVyc19pbi5nZXQoa2V5
KQotICAgIGlmIHZhbHVlIGlzIE5vbmU6Ci0gICAgICAgIHJhaXNlIEhhbmRzaGFrZUV4Y2VwdGlv
bignSGVhZGVyICVzIGlzIG5vdCBkZWZpbmVkJyAlIGtleSkKLSAgICByZXR1cm4gdmFsdWUKLQot
Ci1kZWYgdmFsaWRhdGVfbWFuZGF0b3J5X2hlYWRlcihyZXF1ZXN0LCBrZXksIGV4cGVjdGVkX3Zh
bHVlLCBmYWlsX3N0YXR1cz1Ob25lKToKLSAgICB2YWx1ZSA9IGdldF9tYW5kYXRvcnlfaGVhZGVy
KHJlcXVlc3QsIGtleSkKLQotICAgIGlmIHZhbHVlLmxvd2VyKCkgIT0gZXhwZWN0ZWRfdmFsdWUu
bG93ZXIoKToKLSAgICAgICAgcmFpc2UgSGFuZHNoYWtlRXhjZXB0aW9uKAotICAgICAgICAgICAg
J0V4cGVjdGVkICVyIGZvciBoZWFkZXIgJXMgYnV0IGZvdW5kICVyIChjYXNlLWluc2Vuc2l0aXZl
KScgJQotICAgICAgICAgICAgKGV4cGVjdGVkX3ZhbHVlLCBrZXksIHZhbHVlKSwgc3RhdHVzPWZh
aWxfc3RhdHVzKQotCi0KLWRlZiBjaGVja19yZXF1ZXN0X2xpbmUocmVxdWVzdCk6Ci0gICAgIyA1
LjEgMS4gVGhlIHRocmVlIGNoYXJhY3RlciBVVEYtOCBzdHJpbmcgIkdFVCIuCi0gICAgIyA1LjEg
Mi4gQSBVVEYtOC1lbmNvZGVkIFUrMDAyMCBTUEFDRSBjaGFyYWN0ZXIgKDB4MjAgYnl0ZSkuCi0g
ICAgaWYgcmVxdWVzdC5tZXRob2QgIT0gJ0dFVCc6Ci0gICAgICAgIHJhaXNlIEhhbmRzaGFrZUV4
Y2VwdGlvbignTWV0aG9kIGlzIG5vdCBHRVQ6ICVyJyAlIHJlcXVlc3QubWV0aG9kKQotCi0gICAg
aWYgcmVxdWVzdC5wcm90b2NvbCAhPSAnSFRUUC8xLjEnOgotICAgICAgICByYWlzZSBIYW5kc2hh
a2VFeGNlcHRpb24oJ1ZlcnNpb24gaXMgbm90IEhUVFAvMS4xOiAlcicgJQotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdC5wcm90b2NvbCkKLQotCi1kZWYgcGFyc2VfdG9r
ZW5fbGlzdChkYXRhKToKLSAgICAiIiJQYXJzZXMgYSBoZWFkZXIgdmFsdWUgd2hpY2ggZm9sbG93
cyAxI3Rva2VuIGFuZCByZXR1cm5zIHBhcnNlZCBlbGVtZW50cwotICAgIGFzIGEgbGlzdCBvZiBz
dHJpbmdzLgotCi0gICAgTGVhZGluZyBMV1NlcyBtdXN0IGJlIHRyaW1tZWQuCi0gICAgIiIiCi0K
LSAgICBzdGF0ZSA9IGh0dHBfaGVhZGVyX3V0aWwuUGFyc2luZ1N0YXRlKGRhdGEpCi0KLSAgICB0
b2tlbl9saXN0ID0gW10KLQotICAgIHdoaWxlIFRydWU6Ci0gICAgICAgIHRva2VuID0gaHR0cF9o
ZWFkZXJfdXRpbC5jb25zdW1lX3Rva2VuKHN0YXRlKQotICAgICAgICBpZiB0b2tlbiBpcyBub3Qg
Tm9uZToKLSAgICAgICAgICAgIHRva2VuX2xpc3QuYXBwZW5kKHRva2VuKQotCi0gICAgICAgIGh0
dHBfaGVhZGVyX3V0aWwuY29uc3VtZV9sd3NlcyhzdGF0ZSkKLQotICAgICAgICBpZiBodHRwX2hl
YWRlcl91dGlsLnBlZWsoc3RhdGUpIGlzIE5vbmU6Ci0gICAgICAgICAgICBicmVhawotCi0gICAg
ICAgIGlmIG5vdCBodHRwX2hlYWRlcl91dGlsLmNvbnN1bWVfc3RyaW5nKHN0YXRlLCAnLCcpOgot
ICAgICAgICAgICAgcmFpc2UgSGFuZHNoYWtlRXhjZXB0aW9uKAotICAgICAgICAgICAgICAgICdF
eHBlY3RlZCBhIGNvbW1hIGJ1dCBmb3VuZCAlcicgJSBodHRwX2hlYWRlcl91dGlsLnBlZWsoc3Rh
dGUpKQotCi0gICAgICAgIGh0dHBfaGVhZGVyX3V0aWwuY29uc3VtZV9sd3NlcyhzdGF0ZSkKLQot
ICAgIGlmIGxlbih0b2tlbl9saXN0KSA9PSAwOgotICAgICAgICByYWlzZSBIYW5kc2hha2VFeGNl
cHRpb24oJ05vIHZhbGlkIHRva2VuIGZvdW5kJykKLQotICAgIHJldHVybiB0b2tlbl9saXN0Ci0K
LQotIyB2aTpzdHM9NCBzdz00IGV0CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3NyYy9tb2RfcHl3ZWJzb2Nr
ZXQvaGFuZHNoYWtlL2h5YmkucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3NyYy9tb2RfcHl3ZWJzb2NrZXQvaGFuZHNoYWtl
L2h5YmkucHkKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDFhZDEwZWEzNzI4MjlkMDkz
ZDY2ZTZhYzYwYWNjY2Q5YzFjYWVmYjYuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy9weXdlYnNvY2tldC9zcmMvbW9kX3B5d2Vic29ja2V0L2hhbmRzaGFrZS9oeWJpLnB5
CisrKyAvZGV2L251bGwKQEAgLTEsNDIwICswLDAgQEAKLSMgQ29weXJpZ2h0IDIwMTIsIEdvb2ds
ZSBJbmMuCi0jIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0jCi0jIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotIyBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMgYXJlCi0jIG1ldDoKLSMKLSMgICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSMgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotIyAgICAgKiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCi0jIGNvcHly
aWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIKLSMgaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZQotIyBkaXN0cmlidXRpb24uCi0jICAgICAqIE5laXRoZXIgdGhlIG5h
bWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKLSMgY29udHJpYnV0b3JzIG1h
eSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KLSMg
dGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4K
LSMKLSMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMg
QU5EIENPTlRSSUJVVE9SUwotIyAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAotIyBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKLSMgQSBQQVJUSUNV
TEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklH
SFQKLSMgT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsCi0jIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKLSMgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCi0jIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWQotIyBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUCi0jIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotIyBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotCi0KLSIi
IlRoaXMgZmlsZSBwcm92aWRlcyB0aGUgb3BlbmluZyBoYW5kc2hha2UgcHJvY2Vzc29yIGZvciB0
aGUgV2ViU29ja2V0Ci1wcm90b2NvbCAoUkZDIDY0NTUpLgotCi1TcGVjaWZpY2F0aW9uOgotaHR0
cDovL3Rvb2xzLmlldGYub3JnL2h0bWwvcmZjNjQ1NQotIiIiCi0KLQotIyBOb3RlOiByZXF1ZXN0
LmNvbm5lY3Rpb24ud3JpdGUgaXMgdXNlZCBpbiB0aGlzIG1vZHVsZSwgZXZlbiB0aG91Z2ggbW9k
X3B5dGhvbgotIyBkb2N1bWVudCBzYXlzIHRoYXQgaXQgc2hvdWxkIGJlIHVzZWQgb25seSBpbiBj
b25uZWN0aW9uIGhhbmRsZXJzLgotIyBVbmZvcnR1bmF0ZWx5LCB3ZSBoYXZlIG5vIG90aGVyIG9w
dGlvbnMuIEZvciBleGFtcGxlLCByZXF1ZXN0LndyaXRlIGlzIG5vdAotIyBzdWl0YWJsZSBiZWNh
dXNlIGl0IGRvZXNuJ3QgYWxsb3cgZGlyZWN0IHJhdyBieXRlcyB3cml0aW5nLgotCi0KLWltcG9y
dCBiYXNlNjQKLWltcG9ydCBsb2dnaW5nCi1pbXBvcnQgb3MKLWltcG9ydCByZQotCi1mcm9tIG1v
ZF9weXdlYnNvY2tldCBpbXBvcnQgY29tbW9uCi1mcm9tIG1vZF9weXdlYnNvY2tldC5leHRlbnNp
b25zIGltcG9ydCBnZXRfZXh0ZW5zaW9uX3Byb2Nlc3NvcgotZnJvbSBtb2RfcHl3ZWJzb2NrZXQu
ZXh0ZW5zaW9ucyBpbXBvcnQgaXNfY29tcHJlc3Npb25fZXh0ZW5zaW9uCi1mcm9tIG1vZF9weXdl
YnNvY2tldC5oYW5kc2hha2UuX2Jhc2UgaW1wb3J0IGNoZWNrX3JlcXVlc3RfbGluZQotZnJvbSBt
b2RfcHl3ZWJzb2NrZXQuaGFuZHNoYWtlLl9iYXNlIGltcG9ydCBmb3JtYXRfaGVhZGVyCi1mcm9t
IG1vZF9weXdlYnNvY2tldC5oYW5kc2hha2UuX2Jhc2UgaW1wb3J0IGdldF9tYW5kYXRvcnlfaGVh
ZGVyCi1mcm9tIG1vZF9weXdlYnNvY2tldC5oYW5kc2hha2UuX2Jhc2UgaW1wb3J0IEhhbmRzaGFr
ZUV4Y2VwdGlvbgotZnJvbSBtb2RfcHl3ZWJzb2NrZXQuaGFuZHNoYWtlLl9iYXNlIGltcG9ydCBw
YXJzZV90b2tlbl9saXN0Ci1mcm9tIG1vZF9weXdlYnNvY2tldC5oYW5kc2hha2UuX2Jhc2UgaW1w
b3J0IHZhbGlkYXRlX21hbmRhdG9yeV9oZWFkZXIKLWZyb20gbW9kX3B5d2Vic29ja2V0LmhhbmRz
aGFrZS5fYmFzZSBpbXBvcnQgdmFsaWRhdGVfc3VicHJvdG9jb2wKLWZyb20gbW9kX3B5d2Vic29j
a2V0LmhhbmRzaGFrZS5fYmFzZSBpbXBvcnQgVmVyc2lvbkV4Y2VwdGlvbgotZnJvbSBtb2RfcHl3
ZWJzb2NrZXQuc3RyZWFtIGltcG9ydCBTdHJlYW0KLWZyb20gbW9kX3B5d2Vic29ja2V0LnN0cmVh
bSBpbXBvcnQgU3RyZWFtT3B0aW9ucwotZnJvbSBtb2RfcHl3ZWJzb2NrZXQgaW1wb3J0IHV0aWwK
LQotCi0jIFVzZWQgdG8gdmFsaWRhdGUgdGhlIHZhbHVlIGluIHRoZSBTZWMtV2ViU29ja2V0LUtl
eSBoZWFkZXIgc3RyaWN0bHkuIFJGQyA0NjQ4Ci0jIGRpc2FsbG93cyBub24temVybyBwYWRkaW5n
LCBzbyB0aGUgY2hhcmFjdGVyIHJpZ2h0IGJlZm9yZSA9PSBtdXN0IGJlIGFueSBvZgotIyBBLCBR
LCBnIGFuZCB3LgotX1NFQ19XRUJTT0NLRVRfS0VZX1JFR0VYID0gcmUuY29tcGlsZSgnXlsrLzAt
OUEtWmEtel17MjF9W0FRZ3ddPT0kJykKLQotIyBEZWZpbmluZyBhbGlhc2VzIGZvciB2YWx1ZXMg
dXNlZCBmcmVxdWVudGx5LgotX1ZFUlNJT05fTEFURVNUID0gY29tbW9uLlZFUlNJT05fSFlCSV9M
QVRFU1QKLV9WRVJTSU9OX0xBVEVTVF9TVFJJTkcgPSBzdHIoX1ZFUlNJT05fTEFURVNUKQotX1NV
UFBPUlRFRF9WRVJTSU9OUyA9IFsKLSAgICBfVkVSU0lPTl9MQVRFU1QsCi1dCi0KLQotZGVmIGNv
bXB1dGVfYWNjZXB0KGtleSk6Ci0gICAgIiIiQ29tcHV0ZXMgdmFsdWUgZm9yIHRoZSBTZWMtV2Vi
U29ja2V0LUFjY2VwdCBoZWFkZXIgZnJvbSB2YWx1ZSBvZiB0aGUKLSAgICBTZWMtV2ViU29ja2V0
LUtleSBoZWFkZXIuCi0gICAgIiIiCi0KLSAgICBhY2NlcHRfYmluYXJ5ID0gdXRpbC5zaGExX2hh
c2goCi0gICAgICAgIGtleSArIGNvbW1vbi5XRUJTT0NLRVRfQUNDRVBUX1VVSUQpLmRpZ2VzdCgp
Ci0gICAgYWNjZXB0ID0gYmFzZTY0LmI2NGVuY29kZShhY2NlcHRfYmluYXJ5KQotCi0gICAgcmV0
dXJuIChhY2NlcHQsIGFjY2VwdF9iaW5hcnkpCi0KLQotY2xhc3MgSGFuZHNoYWtlcihvYmplY3Qp
OgotICAgICIiIk9wZW5pbmcgaGFuZHNoYWtlIHByb2Nlc3NvciBmb3IgdGhlIFdlYlNvY2tldCBw
cm90b2NvbCAoUkZDIDY0NTUpLiIiIgotCi0gICAgZGVmIF9faW5pdF9fKHNlbGYsIHJlcXVlc3Qs
IGRpc3BhdGNoZXIpOgotICAgICAgICAiIiJDb25zdHJ1Y3QgYW4gaW5zdGFuY2UuCi0KLSAgICAg
ICAgQXJnczoKLSAgICAgICAgICAgIHJlcXVlc3Q6IG1vZF9weXRob24gcmVxdWVzdC4KLSAgICAg
ICAgICAgIGRpc3BhdGNoZXI6IERpc3BhdGNoZXIgKGRpc3BhdGNoLkRpc3BhdGNoZXIpLgotCi0g
ICAgICAgIEhhbmRzaGFrZXIgd2lsbCBhZGQgYXR0cmlidXRlcyBzdWNoIGFzIHdzX3Jlc291cmNl
IGR1cmluZyBoYW5kc2hha2UuCi0gICAgICAgICIiIgotCi0gICAgICAgIHNlbGYuX2xvZ2dlciA9
IHV0aWwuZ2V0X2NsYXNzX2xvZ2dlcihzZWxmKQotCi0gICAgICAgIHNlbGYuX3JlcXVlc3QgPSBy
ZXF1ZXN0Ci0gICAgICAgIHNlbGYuX2Rpc3BhdGNoZXIgPSBkaXNwYXRjaGVyCi0KLSAgICBkZWYg
X3ZhbGlkYXRlX2Nvbm5lY3Rpb25faGVhZGVyKHNlbGYpOgotICAgICAgICBjb25uZWN0aW9uID0g
Z2V0X21hbmRhdG9yeV9oZWFkZXIoCi0gICAgICAgICAgICBzZWxmLl9yZXF1ZXN0LCBjb21tb24u
Q09OTkVDVElPTl9IRUFERVIpCi0KLSAgICAgICAgdHJ5OgotICAgICAgICAgICAgY29ubmVjdGlv
bl90b2tlbnMgPSBwYXJzZV90b2tlbl9saXN0KGNvbm5lY3Rpb24pCi0gICAgICAgIGV4Y2VwdCBI
YW5kc2hha2VFeGNlcHRpb24sIGU6Ci0gICAgICAgICAgICByYWlzZSBIYW5kc2hha2VFeGNlcHRp
b24oCi0gICAgICAgICAgICAgICAgJ0ZhaWxlZCB0byBwYXJzZSAlczogJXMnICUgKGNvbW1vbi5D
T05ORUNUSU9OX0hFQURFUiwgZSkpCi0KLSAgICAgICAgY29ubmVjdGlvbl9pc192YWxpZCA9IEZh
bHNlCi0gICAgICAgIGZvciB0b2tlbiBpbiBjb25uZWN0aW9uX3Rva2VuczoKLSAgICAgICAgICAg
IGlmIHRva2VuLmxvd2VyKCkgPT0gY29tbW9uLlVQR1JBREVfQ09OTkVDVElPTl9UWVBFLmxvd2Vy
KCk6Ci0gICAgICAgICAgICAgICAgY29ubmVjdGlvbl9pc192YWxpZCA9IFRydWUKLSAgICAgICAg
ICAgICAgICBicmVhawotICAgICAgICBpZiBub3QgY29ubmVjdGlvbl9pc192YWxpZDoKLSAgICAg
ICAgICAgIHJhaXNlIEhhbmRzaGFrZUV4Y2VwdGlvbigKLSAgICAgICAgICAgICAgICAnJXMgaGVh
ZGVyIGRvZXNuXCd0IGNvbnRhaW4gIiVzIicgJQotICAgICAgICAgICAgICAgIChjb21tb24uQ09O
TkVDVElPTl9IRUFERVIsIGNvbW1vbi5VUEdSQURFX0NPTk5FQ1RJT05fVFlQRSkpCi0KLSAgICBk
ZWYgZG9faGFuZHNoYWtlKHNlbGYpOgotICAgICAgICBzZWxmLl9yZXF1ZXN0LndzX2Nsb3NlX2Nv
ZGUgPSBOb25lCi0gICAgICAgIHNlbGYuX3JlcXVlc3Qud3NfY2xvc2VfcmVhc29uID0gTm9uZQot
Ci0gICAgICAgICMgUGFyc2luZy4KLQotICAgICAgICBjaGVja19yZXF1ZXN0X2xpbmUoc2VsZi5f
cmVxdWVzdCkKLQotICAgICAgICB2YWxpZGF0ZV9tYW5kYXRvcnlfaGVhZGVyKAotICAgICAgICAg
ICAgc2VsZi5fcmVxdWVzdCwKLSAgICAgICAgICAgIGNvbW1vbi5VUEdSQURFX0hFQURFUiwKLSAg
ICAgICAgICAgIGNvbW1vbi5XRUJTT0NLRVRfVVBHUkFERV9UWVBFKQotCi0gICAgICAgIHNlbGYu
X3ZhbGlkYXRlX2Nvbm5lY3Rpb25faGVhZGVyKCkKLQotICAgICAgICBzZWxmLl9yZXF1ZXN0Lndz
X3Jlc291cmNlID0gc2VsZi5fcmVxdWVzdC51cmkKLQotICAgICAgICB1bnVzZWRfaG9zdCA9IGdl
dF9tYW5kYXRvcnlfaGVhZGVyKHNlbGYuX3JlcXVlc3QsIGNvbW1vbi5IT1NUX0hFQURFUikKLQot
ICAgICAgICBzZWxmLl9yZXF1ZXN0LndzX3ZlcnNpb24gPSBzZWxmLl9jaGVja192ZXJzaW9uKCkK
LQotICAgICAgICB0cnk6Ci0gICAgICAgICAgICBzZWxmLl9nZXRfb3JpZ2luKCkKLSAgICAgICAg
ICAgIHNlbGYuX3NldF9wcm90b2NvbCgpCi0gICAgICAgICAgICBzZWxmLl9wYXJzZV9leHRlbnNp
b25zKCkKLQotICAgICAgICAgICAgIyBLZXkgdmFsaWRhdGlvbiwgcmVzcG9uc2UgZ2VuZXJhdGlv
bi4KLQotICAgICAgICAgICAga2V5ID0gc2VsZi5fZ2V0X2tleSgpCi0gICAgICAgICAgICAoYWNj
ZXB0LCBhY2NlcHRfYmluYXJ5KSA9IGNvbXB1dGVfYWNjZXB0KGtleSkKLSAgICAgICAgICAgIHNl
bGYuX2xvZ2dlci5kZWJ1ZygKLSAgICAgICAgICAgICAgICAnJXM6ICVyICglcyknLAotICAgICAg
ICAgICAgICAgIGNvbW1vbi5TRUNfV0VCU09DS0VUX0FDQ0VQVF9IRUFERVIsCi0gICAgICAgICAg
ICAgICAgYWNjZXB0LAotICAgICAgICAgICAgICAgIHV0aWwuaGV4aWZ5KGFjY2VwdF9iaW5hcnkp
KQotCi0gICAgICAgICAgICBzZWxmLl9sb2dnZXIuZGVidWcoJ1Byb3RvY29sIHZlcnNpb24gaXMg
UkZDIDY0NTUnKQotCi0gICAgICAgICAgICAjIFNldHVwIGV4dGVuc2lvbiBwcm9jZXNzb3JzLgot
Ci0gICAgICAgICAgICBwcm9jZXNzb3JzID0gW10KLSAgICAgICAgICAgIGlmIHNlbGYuX3JlcXVl
c3Qud3NfcmVxdWVzdGVkX2V4dGVuc2lvbnMgaXMgbm90IE5vbmU6Ci0gICAgICAgICAgICAgICAg
Zm9yIGV4dGVuc2lvbl9yZXF1ZXN0IGluIHNlbGYuX3JlcXVlc3Qud3NfcmVxdWVzdGVkX2V4dGVu
c2lvbnM6Ci0gICAgICAgICAgICAgICAgICAgIHByb2Nlc3NvciA9IGdldF9leHRlbnNpb25fcHJv
Y2Vzc29yKGV4dGVuc2lvbl9yZXF1ZXN0KQotICAgICAgICAgICAgICAgICAgICAjIFVua25vd24g
ZXh0ZW5zaW9uIHJlcXVlc3RzIGFyZSBqdXN0IGlnbm9yZWQuCi0gICAgICAgICAgICAgICAgICAg
IGlmIHByb2Nlc3NvciBpcyBub3QgTm9uZToKLSAgICAgICAgICAgICAgICAgICAgICAgIHByb2Nl
c3NvcnMuYXBwZW5kKHByb2Nlc3NvcikKLSAgICAgICAgICAgIHNlbGYuX3JlcXVlc3Qud3NfZXh0
ZW5zaW9uX3Byb2Nlc3NvcnMgPSBwcm9jZXNzb3JzCi0KLSAgICAgICAgICAgICMgTGlzdCBvZiBl
eHRyYSBoZWFkZXJzLiBUaGUgZXh0cmEgaGFuZHNoYWtlIGhhbmRsZXIgbWF5IGFkZCBoZWFkZXIK
LSAgICAgICAgICAgICMgZGF0YSBhcyBuYW1lL3ZhbHVlIHBhaXJzIHRvIHRoaXMgbGlzdCBhbmQg
cHl3ZWJzb2NrZXQgYXBwZW5kcwotICAgICAgICAgICAgIyB0aGVtIHRvIHRoZSBXZWJTb2NrZXQg
aGFuZHNoYWtlLgotICAgICAgICAgICAgc2VsZi5fcmVxdWVzdC5leHRyYV9oZWFkZXJzID0gW10K
LQotICAgICAgICAgICAgIyBFeHRyYSBoYW5kc2hha2UgaGFuZGxlciBtYXkgbW9kaWZ5L3JlbW92
ZSBwcm9jZXNzb3JzLgotICAgICAgICAgICAgc2VsZi5fZGlzcGF0Y2hlci5kb19leHRyYV9oYW5k
c2hha2Uoc2VsZi5fcmVxdWVzdCkKLSAgICAgICAgICAgIHByb2Nlc3NvcnMgPSBmaWx0ZXIobGFt
YmRhIHByb2Nlc3NvcjogcHJvY2Vzc29yIGlzIG5vdCBOb25lLAotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBzZWxmLl9yZXF1ZXN0LndzX2V4dGVuc2lvbl9wcm9jZXNzb3JzKQotCi0g
ICAgICAgICAgICAjIEFzayBlYWNoIHByb2Nlc3NvciBpZiB0aGVyZSBhcmUgZXh0ZW5zaW9ucyBv
biB0aGUgcmVxdWVzdCB3aGljaAotICAgICAgICAgICAgIyBjYW5ub3QgY28tZXhpc3QuIFdoZW4g
cHJvY2Vzc29yIGRlY2lkZWQgb3RoZXIgcHJvY2Vzc29ycyBjYW5ub3QKLSAgICAgICAgICAgICMg
Y28tZXhpc3Qgd2l0aCBpdCwgdGhlIHByb2Nlc3NvciBtYXJrcyB0aGVtIChvciBpdHNlbGYpIGFz
Ci0gICAgICAgICAgICAjICJpbmFjdGl2ZSIuIFRoZSBmaXJzdCBleHRlbnNpb24gcHJvY2Vzc29y
IGhhcyB0aGUgcmlnaHQgdG8KLSAgICAgICAgICAgICMgbWFrZSB0aGUgZmluYWwgY2FsbC4KLSAg
ICAgICAgICAgIGZvciBwcm9jZXNzb3IgaW4gcmV2ZXJzZWQocHJvY2Vzc29ycyk6Ci0gICAgICAg
ICAgICAgICAgaWYgcHJvY2Vzc29yLmlzX2FjdGl2ZSgpOgotICAgICAgICAgICAgICAgICAgICBw
cm9jZXNzb3IuY2hlY2tfY29uc2lzdGVuY3lfd2l0aF9vdGhlcl9wcm9jZXNzb3JzKAotICAgICAg
ICAgICAgICAgICAgICAgICAgcHJvY2Vzc29ycykKLSAgICAgICAgICAgIHByb2Nlc3NvcnMgPSBm
aWx0ZXIobGFtYmRhIHByb2Nlc3NvcjogcHJvY2Vzc29yLmlzX2FjdGl2ZSgpLAotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBwcm9jZXNzb3JzKQotCi0gICAgICAgICAgICBhY2NlcHRl
ZF9leHRlbnNpb25zID0gW10KLQotICAgICAgICAgICAgIyBXZSBuZWVkIHRvIHRha2UgaW50byBh
Y2NvdW50IG9mIG11eCBleHRlbnNpb24gaGVyZS4KLSAgICAgICAgICAgICMgSWYgbXV4IGV4dGVu
c2lvbiBleGlzdHM6Ci0gICAgICAgICAgICAjIC0gUmVtb3ZlIHByb2Nlc3NvcnMgb2YgZXh0ZW5z
aW9ucyBmb3IgbG9naWNhbCBjaGFubmVsLAotICAgICAgICAgICAgIyAgIHdoaWNoIGFyZSBwcm9j
ZXNzb3JzIGxvY2F0ZWQgYmVmb3JlIHRoZSBtdXggcHJvY2Vzc29yCi0gICAgICAgICAgICAjIC0g
UGFzcyBleHRlbnNpb24gcmVxdWVzdHMgZm9yIGxvZ2ljYWwgY2hhbm5lbCB0byBtdXggcHJvY2Vz
c29yCi0gICAgICAgICAgICAjIC0gQXR0YWNoIHRoZSBtdXggcHJvY2Vzc29yIHRvIHRoZSByZXF1
ZXN0LiBJdCB3aWxsIGJlIHJlZmVycmVkCi0gICAgICAgICAgICAjICAgYnkgZGlzcGF0Y2hlciB0
byBzZWUgd2hldGhlciB0aGUgZGlzcGF0Y2hlciBzaG91bGQgdXNlIG11eAotICAgICAgICAgICAg
IyAgIGhhbmRsZXIgb3Igbm90LgotICAgICAgICAgICAgbXV4X2luZGV4ID0gLTEKLSAgICAgICAg
ICAgIGZvciBpLCBwcm9jZXNzb3IgaW4gZW51bWVyYXRlKHByb2Nlc3NvcnMpOgotICAgICAgICAg
ICAgICAgIGlmIHByb2Nlc3Nvci5uYW1lKCkgPT0gY29tbW9uLk1VWF9FWFRFTlNJT046Ci0gICAg
ICAgICAgICAgICAgICAgIG11eF9pbmRleCA9IGkKLSAgICAgICAgICAgICAgICAgICAgYnJlYWsK
LSAgICAgICAgICAgIGlmIG11eF9pbmRleCA+PSAwOgotICAgICAgICAgICAgICAgIGxvZ2ljYWxf
Y2hhbm5lbF9leHRlbnNpb25zID0gW10KLSAgICAgICAgICAgICAgICBmb3IgcHJvY2Vzc29yIGlu
IHByb2Nlc3NvcnNbOm11eF9pbmRleF06Ci0gICAgICAgICAgICAgICAgICAgIGxvZ2ljYWxfY2hh
bm5lbF9leHRlbnNpb25zLmFwcGVuZChwcm9jZXNzb3IucmVxdWVzdCgpKQotICAgICAgICAgICAg
ICAgICAgICBwcm9jZXNzb3Iuc2V0X2FjdGl2ZShGYWxzZSkKLSAgICAgICAgICAgICAgICBzZWxm
Ll9yZXF1ZXN0Lm11eF9wcm9jZXNzb3IgPSBwcm9jZXNzb3JzW211eF9pbmRleF0KLSAgICAgICAg
ICAgICAgICBzZWxmLl9yZXF1ZXN0Lm11eF9wcm9jZXNzb3Iuc2V0X2V4dGVuc2lvbnMoCi0gICAg
ICAgICAgICAgICAgICAgIGxvZ2ljYWxfY2hhbm5lbF9leHRlbnNpb25zKQotICAgICAgICAgICAg
ICAgIHByb2Nlc3NvcnMgPSBmaWx0ZXIobGFtYmRhIHByb2Nlc3NvcjogcHJvY2Vzc29yLmlzX2Fj
dGl2ZSgpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvY2Vzc29ycykK
LQotICAgICAgICAgICAgc3RyZWFtX29wdGlvbnMgPSBTdHJlYW1PcHRpb25zKCkKLQotICAgICAg
ICAgICAgZm9yIGluZGV4LCBwcm9jZXNzb3IgaW4gZW51bWVyYXRlKHByb2Nlc3NvcnMpOgotICAg
ICAgICAgICAgICAgIGlmIG5vdCBwcm9jZXNzb3IuaXNfYWN0aXZlKCk6Ci0gICAgICAgICAgICAg
ICAgICAgIGNvbnRpbnVlCi0KLSAgICAgICAgICAgICAgICBleHRlbnNpb25fcmVzcG9uc2UgPSBw
cm9jZXNzb3IuZ2V0X2V4dGVuc2lvbl9yZXNwb25zZSgpCi0gICAgICAgICAgICAgICAgaWYgZXh0
ZW5zaW9uX3Jlc3BvbnNlIGlzIE5vbmU6Ci0gICAgICAgICAgICAgICAgICAgICMgUmVqZWN0ZWQu
Ci0gICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlCi0KLSAgICAgICAgICAgICAgICBhY2NlcHRl
ZF9leHRlbnNpb25zLmFwcGVuZChleHRlbnNpb25fcmVzcG9uc2UpCi0KLSAgICAgICAgICAgICAg
ICBwcm9jZXNzb3Iuc2V0dXBfc3RyZWFtX29wdGlvbnMoc3RyZWFtX29wdGlvbnMpCi0KLSAgICAg
ICAgICAgICAgICBpZiBub3QgaXNfY29tcHJlc3Npb25fZXh0ZW5zaW9uKHByb2Nlc3Nvci5uYW1l
KCkpOgotICAgICAgICAgICAgICAgICAgICBjb250aW51ZQotCi0gICAgICAgICAgICAgICAgIyBJ
bmFjdGl2YXRlIGFsbCBvZiB0aGUgZm9sbG93aW5nIGNvbXByZXNzaW9uIGV4dGVuc2lvbnMuCi0g
ICAgICAgICAgICAgICAgZm9yIGogaW4geHJhbmdlKGluZGV4ICsgMSwgbGVuKHByb2Nlc3NvcnMp
KToKLSAgICAgICAgICAgICAgICAgICAgaWYgaXNfY29tcHJlc3Npb25fZXh0ZW5zaW9uKHByb2Nl
c3NvcnNbal0ubmFtZSgpKToKLSAgICAgICAgICAgICAgICAgICAgICAgIHByb2Nlc3NvcnNbal0u
c2V0X2FjdGl2ZShGYWxzZSkKLQotICAgICAgICAgICAgaWYgbGVuKGFjY2VwdGVkX2V4dGVuc2lv
bnMpID4gMDoKLSAgICAgICAgICAgICAgICBzZWxmLl9yZXF1ZXN0LndzX2V4dGVuc2lvbnMgPSBh
Y2NlcHRlZF9leHRlbnNpb25zCi0gICAgICAgICAgICAgICAgc2VsZi5fbG9nZ2VyLmRlYnVnKAot
ICAgICAgICAgICAgICAgICAgICAnRXh0ZW5zaW9ucyBhY2NlcHRlZDogJXInLAotICAgICAgICAg
ICAgICAgICAgICBtYXAoY29tbW9uLkV4dGVuc2lvblBhcmFtZXRlci5uYW1lLCBhY2NlcHRlZF9l
eHRlbnNpb25zKSkKLSAgICAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAgICAgc2VsZi5fcmVx
dWVzdC53c19leHRlbnNpb25zID0gTm9uZQotCi0gICAgICAgICAgICBzZWxmLl9yZXF1ZXN0Lndz
X3N0cmVhbSA9IHNlbGYuX2NyZWF0ZV9zdHJlYW0oc3RyZWFtX29wdGlvbnMpCi0KLSAgICAgICAg
ICAgIGlmIHNlbGYuX3JlcXVlc3Qud3NfcmVxdWVzdGVkX3Byb3RvY29scyBpcyBub3QgTm9uZToK
LSAgICAgICAgICAgICAgICBpZiBzZWxmLl9yZXF1ZXN0LndzX3Byb3RvY29sIGlzIE5vbmU6Ci0g
ICAgICAgICAgICAgICAgICAgIHJhaXNlIEhhbmRzaGFrZUV4Y2VwdGlvbigKLSAgICAgICAgICAg
ICAgICAgICAgICAgICdkb19leHRyYV9oYW5kc2hha2UgbXVzdCBjaG9vc2Ugb25lIHN1YnByb3Rv
Y29sIGZyb20gJwotICAgICAgICAgICAgICAgICAgICAgICAgJ3dzX3JlcXVlc3RlZF9wcm90b2Nv
bHMgYW5kIHNldCBpdCB0byB3c19wcm90b2NvbCcpCi0gICAgICAgICAgICAgICAgdmFsaWRhdGVf
c3VicHJvdG9jb2woc2VsZi5fcmVxdWVzdC53c19wcm90b2NvbCkKLQotICAgICAgICAgICAgICAg
IHNlbGYuX2xvZ2dlci5kZWJ1ZygKLSAgICAgICAgICAgICAgICAgICAgJ1N1YnByb3RvY29sIGFj
Y2VwdGVkOiAlcicsCi0gICAgICAgICAgICAgICAgICAgIHNlbGYuX3JlcXVlc3Qud3NfcHJvdG9j
b2wpCi0gICAgICAgICAgICBlbHNlOgotICAgICAgICAgICAgICAgIGlmIHNlbGYuX3JlcXVlc3Qu
d3NfcHJvdG9jb2wgaXMgbm90IE5vbmU6Ci0gICAgICAgICAgICAgICAgICAgIHJhaXNlIEhhbmRz
aGFrZUV4Y2VwdGlvbigKLSAgICAgICAgICAgICAgICAgICAgICAgICd3c19wcm90b2NvbCBtdXN0
IGJlIE5vbmUgd2hlbiB0aGUgY2xpZW50IGRpZG5cJ3QgJwotICAgICAgICAgICAgICAgICAgICAg
ICAgJ3JlcXVlc3QgYW55IHN1YnByb3RvY29sJykKLQotICAgICAgICAgICAgc2VsZi5fc2VuZF9o
YW5kc2hha2UoYWNjZXB0KQotICAgICAgICBleGNlcHQgSGFuZHNoYWtlRXhjZXB0aW9uLCBlOgot
ICAgICAgICAgICAgaWYgbm90IGUuc3RhdHVzOgotICAgICAgICAgICAgICAgICMgRmFsbGJhY2sg
dG8gNDAwIGJhZCByZXF1ZXN0IGJ5IGRlZmF1bHQuCi0gICAgICAgICAgICAgICAgZS5zdGF0dXMg
PSBjb21tb24uSFRUUF9TVEFUVVNfQkFEX1JFUVVFU1QKLSAgICAgICAgICAgIHJhaXNlIGUKLQot
ICAgIGRlZiBfZ2V0X29yaWdpbihzZWxmKToKLSAgICAgICAgb3JpZ2luX2hlYWRlciA9IGNvbW1v
bi5PUklHSU5fSEVBREVSCi0gICAgICAgIG9yaWdpbiA9IHNlbGYuX3JlcXVlc3QuaGVhZGVyc19p
bi5nZXQob3JpZ2luX2hlYWRlcikKLSAgICAgICAgaWYgb3JpZ2luIGlzIE5vbmU6Ci0gICAgICAg
ICAgICBzZWxmLl9sb2dnZXIuZGVidWcoJ0NsaWVudCByZXF1ZXN0IGRvZXMgbm90IGhhdmUgb3Jp
Z2luIGhlYWRlcicpCi0gICAgICAgIHNlbGYuX3JlcXVlc3Qud3Nfb3JpZ2luID0gb3JpZ2luCi0K
LSAgICBkZWYgX2NoZWNrX3ZlcnNpb24oc2VsZik6Ci0gICAgICAgIHZlcnNpb24gPSBnZXRfbWFu
ZGF0b3J5X2hlYWRlcihzZWxmLl9yZXF1ZXN0LAotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgY29tbW9uLlNFQ19XRUJTT0NLRVRfVkVSU0lPTl9IRUFERVIpCi0gICAgICAg
IGlmIHZlcnNpb24gPT0gX1ZFUlNJT05fTEFURVNUX1NUUklORzoKLSAgICAgICAgICAgIHJldHVy
biBfVkVSU0lPTl9MQVRFU1QKLQotICAgICAgICBpZiB2ZXJzaW9uLmZpbmQoJywnKSA+PSAwOgot
ICAgICAgICAgICAgcmFpc2UgSGFuZHNoYWtlRXhjZXB0aW9uKAotICAgICAgICAgICAgICAgICdN
dWx0aXBsZSB2ZXJzaW9ucyAoJXIpIGFyZSBub3QgYWxsb3dlZCBmb3IgaGVhZGVyICVzJyAlCi0g
ICAgICAgICAgICAgICAgKHZlcnNpb24sIGNvbW1vbi5TRUNfV0VCU09DS0VUX1ZFUlNJT05fSEVB
REVSKSwKLSAgICAgICAgICAgICAgICBzdGF0dXM9Y29tbW9uLkhUVFBfU1RBVFVTX0JBRF9SRVFV
RVNUKQotICAgICAgICByYWlzZSBWZXJzaW9uRXhjZXB0aW9uKAotICAgICAgICAgICAgJ1Vuc3Vw
cG9ydGVkIHZlcnNpb24gJXIgZm9yIGhlYWRlciAlcycgJQotICAgICAgICAgICAgKHZlcnNpb24s
IGNvbW1vbi5TRUNfV0VCU09DS0VUX1ZFUlNJT05fSEVBREVSKSwKLSAgICAgICAgICAgIHN1cHBv
cnRlZF92ZXJzaW9ucz0nLCAnLmpvaW4obWFwKHN0ciwgX1NVUFBPUlRFRF9WRVJTSU9OUykpKQot
Ci0gICAgZGVmIF9zZXRfcHJvdG9jb2woc2VsZik6Ci0gICAgICAgIHNlbGYuX3JlcXVlc3Qud3Nf
cHJvdG9jb2wgPSBOb25lCi0KLSAgICAgICAgcHJvdG9jb2xfaGVhZGVyID0gc2VsZi5fcmVxdWVz
dC5oZWFkZXJzX2luLmdldCgKLSAgICAgICAgICAgIGNvbW1vbi5TRUNfV0VCU09DS0VUX1BST1RP
Q09MX0hFQURFUikKLQotICAgICAgICBpZiBwcm90b2NvbF9oZWFkZXIgaXMgTm9uZToKLSAgICAg
ICAgICAgIHNlbGYuX3JlcXVlc3Qud3NfcmVxdWVzdGVkX3Byb3RvY29scyA9IE5vbmUKLSAgICAg
ICAgICAgIHJldHVybgotCi0gICAgICAgIHNlbGYuX3JlcXVlc3Qud3NfcmVxdWVzdGVkX3Byb3Rv
Y29scyA9IHBhcnNlX3Rva2VuX2xpc3QoCi0gICAgICAgICAgICBwcm90b2NvbF9oZWFkZXIpCi0g
ICAgICAgIHNlbGYuX2xvZ2dlci5kZWJ1ZygnU3VicHJvdG9jb2xzIHJlcXVlc3RlZDogJXInLAot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5fcmVxdWVzdC53c19yZXF1ZXN0ZWRfcHJv
dG9jb2xzKQotCi0gICAgZGVmIF9wYXJzZV9leHRlbnNpb25zKHNlbGYpOgotICAgICAgICBleHRl
bnNpb25zX2hlYWRlciA9IHNlbGYuX3JlcXVlc3QuaGVhZGVyc19pbi5nZXQoCi0gICAgICAgICAg
ICBjb21tb24uU0VDX1dFQlNPQ0tFVF9FWFRFTlNJT05TX0hFQURFUikKLSAgICAgICAgaWYgbm90
IGV4dGVuc2lvbnNfaGVhZGVyOgotICAgICAgICAgICAgc2VsZi5fcmVxdWVzdC53c19yZXF1ZXN0
ZWRfZXh0ZW5zaW9ucyA9IE5vbmUKLSAgICAgICAgICAgIHJldHVybgotCi0gICAgICAgIHRyeToK
LSAgICAgICAgICAgIHNlbGYuX3JlcXVlc3Qud3NfcmVxdWVzdGVkX2V4dGVuc2lvbnMgPSBjb21t
b24ucGFyc2VfZXh0ZW5zaW9ucygKLSAgICAgICAgICAgICAgICBleHRlbnNpb25zX2hlYWRlcikK
LSAgICAgICAgZXhjZXB0IGNvbW1vbi5FeHRlbnNpb25QYXJzaW5nRXhjZXB0aW9uLCBlOgotICAg
ICAgICAgICAgcmFpc2UgSGFuZHNoYWtlRXhjZXB0aW9uKAotICAgICAgICAgICAgICAgICdGYWls
ZWQgdG8gcGFyc2UgU2VjLVdlYlNvY2tldC1FeHRlbnNpb25zIGhlYWRlcjogJXInICUgZSkKLQot
ICAgICAgICBzZWxmLl9sb2dnZXIuZGVidWcoCi0gICAgICAgICAgICAnRXh0ZW5zaW9ucyByZXF1
ZXN0ZWQ6ICVyJywKLSAgICAgICAgICAgIG1hcChjb21tb24uRXh0ZW5zaW9uUGFyYW1ldGVyLm5h
bWUsCi0gICAgICAgICAgICAgICAgc2VsZi5fcmVxdWVzdC53c19yZXF1ZXN0ZWRfZXh0ZW5zaW9u
cykpCi0KLSAgICBkZWYgX3ZhbGlkYXRlX2tleShzZWxmLCBrZXkpOgotICAgICAgICBpZiBrZXku
ZmluZCgnLCcpID49IDA6Ci0gICAgICAgICAgICByYWlzZSBIYW5kc2hha2VFeGNlcHRpb24oJ1Jl
cXVlc3QgaGFzIG11bHRpcGxlICVzIGhlYWRlciBsaW5lcyBvciAnCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgJ2NvbnRhaW5zIGlsbGVnYWwgY2hhcmFjdGVyIFwnLFwnOiAl
cicgJQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjb21tb24uU0VDX1dF
QlNPQ0tFVF9LRVlfSEVBREVSLCBrZXkpKQotCi0gICAgICAgICMgVmFsaWRhdGUKLSAgICAgICAg
a2V5X2lzX3ZhbGlkID0gRmFsc2UKLSAgICAgICAgdHJ5OgotICAgICAgICAgICAgIyBWYWxpZGF0
ZSBrZXkgYnkgcXVpY2sgcmVnZXggbWF0Y2ggYmVmb3JlIHBhcnNpbmcgYnkgYmFzZTY0Ci0gICAg
ICAgICAgICAjIG1vZHVsZS4gQmVjYXVzZSBiYXNlNjQgbW9kdWxlIHNraXBzIGludmFsaWQgY2hh
cmFjdGVycywgd2UgaGF2ZQotICAgICAgICAgICAgIyB0byBkbyB0aGlzIGluIGFkdmFuY2UgdG8g
bWFrZSB0aGlzIHNlcnZlciBzdHJpY3RseSByZWplY3QgaWxsZWdhbAotICAgICAgICAgICAgIyBr
ZXlzLgotICAgICAgICAgICAgaWYgX1NFQ19XRUJTT0NLRVRfS0VZX1JFR0VYLm1hdGNoKGtleSk6
Ci0gICAgICAgICAgICAgICAgZGVjb2RlZF9rZXkgPSBiYXNlNjQuYjY0ZGVjb2RlKGtleSkKLSAg
ICAgICAgICAgICAgICBpZiBsZW4oZGVjb2RlZF9rZXkpID09IDE2OgotICAgICAgICAgICAgICAg
ICAgICBrZXlfaXNfdmFsaWQgPSBUcnVlCi0gICAgICAgIGV4Y2VwdCBUeXBlRXJyb3IsIGU6Ci0g
ICAgICAgICAgICBwYXNzCi0KLSAgICAgICAgaWYgbm90IGtleV9pc192YWxpZDoKLSAgICAgICAg
ICAgIHJhaXNlIEhhbmRzaGFrZUV4Y2VwdGlvbigKLSAgICAgICAgICAgICAgICAnSWxsZWdhbCB2
YWx1ZSBmb3IgaGVhZGVyICVzOiAlcicgJQotICAgICAgICAgICAgICAgIChjb21tb24uU0VDX1dF
QlNPQ0tFVF9LRVlfSEVBREVSLCBrZXkpKQotCi0gICAgICAgIHJldHVybiBkZWNvZGVkX2tleQot
Ci0gICAgZGVmIF9nZXRfa2V5KHNlbGYpOgotICAgICAgICBrZXkgPSBnZXRfbWFuZGF0b3J5X2hl
YWRlcigKLSAgICAgICAgICAgIHNlbGYuX3JlcXVlc3QsIGNvbW1vbi5TRUNfV0VCU09DS0VUX0tF
WV9IRUFERVIpCi0KLSAgICAgICAgZGVjb2RlZF9rZXkgPSBzZWxmLl92YWxpZGF0ZV9rZXkoa2V5
KQotCi0gICAgICAgIHNlbGYuX2xvZ2dlci5kZWJ1ZygKLSAgICAgICAgICAgICclczogJXIgKCVz
KScsCi0gICAgICAgICAgICBjb21tb24uU0VDX1dFQlNPQ0tFVF9LRVlfSEVBREVSLAotICAgICAg
ICAgICAga2V5LAotICAgICAgICAgICAgdXRpbC5oZXhpZnkoZGVjb2RlZF9rZXkpKQotCi0gICAg
ICAgIHJldHVybiBrZXkKLQotICAgIGRlZiBfY3JlYXRlX3N0cmVhbShzZWxmLCBzdHJlYW1fb3B0
aW9ucyk6Ci0gICAgICAgIHJldHVybiBTdHJlYW0oc2VsZi5fcmVxdWVzdCwgc3RyZWFtX29wdGlv
bnMpCi0KLSAgICBkZWYgX2NyZWF0ZV9oYW5kc2hha2VfcmVzcG9uc2Uoc2VsZiwgYWNjZXB0KToK
LSAgICAgICAgcmVzcG9uc2UgPSBbXQotCi0gICAgICAgIHJlc3BvbnNlLmFwcGVuZCgnSFRUUC8x
LjEgMTAxIFN3aXRjaGluZyBQcm90b2NvbHNcclxuJykKLQotICAgICAgICAjIFdlYlNvY2tldCBo
ZWFkZXJzCi0gICAgICAgIHJlc3BvbnNlLmFwcGVuZChmb3JtYXRfaGVhZGVyKAotICAgICAgICAg
ICAgY29tbW9uLlVQR1JBREVfSEVBREVSLCBjb21tb24uV0VCU09DS0VUX1VQR1JBREVfVFlQRSkp
Ci0gICAgICAgIHJlc3BvbnNlLmFwcGVuZChmb3JtYXRfaGVhZGVyKAotICAgICAgICAgICAgY29t
bW9uLkNPTk5FQ1RJT05fSEVBREVSLCBjb21tb24uVVBHUkFERV9DT05ORUNUSU9OX1RZUEUpKQot
ICAgICAgICByZXNwb25zZS5hcHBlbmQoZm9ybWF0X2hlYWRlcigKLSAgICAgICAgICAgIGNvbW1v
bi5TRUNfV0VCU09DS0VUX0FDQ0VQVF9IRUFERVIsIGFjY2VwdCkpCi0gICAgICAgIGlmIHNlbGYu
X3JlcXVlc3Qud3NfcHJvdG9jb2wgaXMgbm90IE5vbmU6Ci0gICAgICAgICAgICByZXNwb25zZS5h
cHBlbmQoZm9ybWF0X2hlYWRlcigKLSAgICAgICAgICAgICAgICBjb21tb24uU0VDX1dFQlNPQ0tF
VF9QUk9UT0NPTF9IRUFERVIsCi0gICAgICAgICAgICAgICAgc2VsZi5fcmVxdWVzdC53c19wcm90
b2NvbCkpCi0gICAgICAgIGlmIChzZWxmLl9yZXF1ZXN0LndzX2V4dGVuc2lvbnMgaXMgbm90IE5v
bmUgYW5kCi0gICAgICAgICAgICBsZW4oc2VsZi5fcmVxdWVzdC53c19leHRlbnNpb25zKSAhPSAw
KToKLSAgICAgICAgICAgIHJlc3BvbnNlLmFwcGVuZChmb3JtYXRfaGVhZGVyKAotICAgICAgICAg
ICAgICAgIGNvbW1vbi5TRUNfV0VCU09DS0VUX0VYVEVOU0lPTlNfSEVBREVSLAotICAgICAgICAg
ICAgICAgIGNvbW1vbi5mb3JtYXRfZXh0ZW5zaW9ucyhzZWxmLl9yZXF1ZXN0LndzX2V4dGVuc2lv
bnMpKSkKLQotICAgICAgICAjIEhlYWRlcnMgbm90IHNwZWNpZmljIGZvciBXZWJTb2NrZXQKLSAg
ICAgICAgZm9yIG5hbWUsIHZhbHVlIGluIHNlbGYuX3JlcXVlc3QuZXh0cmFfaGVhZGVyczoKLSAg
ICAgICAgICAgIHJlc3BvbnNlLmFwcGVuZChmb3JtYXRfaGVhZGVyKG5hbWUsIHZhbHVlKSkKLQot
ICAgICAgICByZXNwb25zZS5hcHBlbmQoJ1xyXG4nKQotCi0gICAgICAgIHJldHVybiAnJy5qb2lu
KHJlc3BvbnNlKQotCi0gICAgZGVmIF9zZW5kX2hhbmRzaGFrZShzZWxmLCBhY2NlcHQpOgotICAg
ICAgICByYXdfcmVzcG9uc2UgPSBzZWxmLl9jcmVhdGVfaGFuZHNoYWtlX3Jlc3BvbnNlKGFjY2Vw
dCkKLSAgICAgICAgc2VsZi5fcmVxdWVzdC5jb25uZWN0aW9uLndyaXRlKHJhd19yZXNwb25zZSkK
LSAgICAgICAgc2VsZi5fbG9nZ2VyLmRlYnVnKCdTZW50IHNlcnZlclwncyBvcGVuaW5nIGhhbmRz
aGFrZTogJXInLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgcmF3X3Jlc3BvbnNlKQotCi0K
LSMgdmk6c3RzPTQgc3c9NCBldApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9zcmMvbW9kX3B5d2Vic29ja2V0
L2hhbmRzaGFrZS9oeWJpMDAucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3NyYy9tb2RfcHl3ZWJzb2NrZXQvaGFuZHNoYWtl
L2h5YmkwMC5weQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggODc1NzcxN2E2MzliYWMz
ZGIwNWQ0Y2IzMDI3ZTA1NWZkYmY3ZjNjZi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3B5d2Vic29ja2V0L3NyYy9tb2RfcHl3ZWJzb2NrZXQvaGFuZHNoYWtlL2h5Ymkw
MC5weQorKysgL2Rldi9udWxsCkBAIC0xLDI5MyArMCwwIEBACi0jIENvcHlyaWdodCAyMDExLCBH
b29nbGUgSW5jLgotIyBBbGwgcmlnaHRzIHJlc2VydmVkLgotIwotIyBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSMgbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zIGFyZQotIyBtZXQ6Ci0jCi0jICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0jIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSMgICAgICogUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQotIyBj
b3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyCi0jIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUKLSMgZGlzdHJpYnV0aW9uLgotIyAgICAgKiBOZWl0aGVyIHRo
ZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCi0jIGNvbnRyaWJ1dG9y
cyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9t
Ci0jIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Np
b24uCi0jCi0jIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xE
RVJTIEFORCBDT05UUklCVVRPUlMKLSMgIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKLSMgTElNSVRFRCBUTywgVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCi0jIEEgUEFS
VElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09Q
WVJJR0hUCi0jIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLAotIyBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCi0jIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAotIyBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkKLSMgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVAotIyAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSMgT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLQot
Ci0iIiJUaGlzIGZpbGUgcHJvdmlkZXMgdGhlIG9wZW5pbmcgaGFuZHNoYWtlIHByb2Nlc3NvciBm
b3IgdGhlIFdlYlNvY2tldAotcHJvdG9jb2wgdmVyc2lvbiBIeUJpIDAwLgotCi1TcGVjaWZpY2F0
aW9uOgotaHR0cDovL3Rvb2xzLmlldGYub3JnL2h0bWwvZHJhZnQtaWV0Zi1oeWJpLXRoZXdlYnNv
Y2tldHByb3RvY29sLTAwCi0iIiIKLQotCi0jIE5vdGU6IHJlcXVlc3QuY29ubmVjdGlvbi53cml0
ZS9yZWFkIGFyZSB1c2VkIGluIHRoaXMgbW9kdWxlLCBldmVuIHRob3VnaAotIyBtb2RfcHl0aG9u
IGRvY3VtZW50IHNheXMgdGhhdCB0aGV5IHNob3VsZCBiZSB1c2VkIG9ubHkgaW4gY29ubmVjdGlv
bgotIyBoYW5kbGVycy4gVW5mb3J0dW5hdGVseSwgd2UgaGF2ZSBubyBvdGhlciBvcHRpb25zLiBG
b3IgZXhhbXBsZSwKLSMgcmVxdWVzdC53cml0ZS9yZWFkIGFyZSBub3Qgc3VpdGFibGUgYmVjYXVz
ZSB0aGV5IGRvbid0IGFsbG93IGRpcmVjdCByYXcgYnl0ZXMKLSMgd3JpdGluZy9yZWFkaW5nLgot
Ci0KLWltcG9ydCBsb2dnaW5nCi1pbXBvcnQgcmUKLWltcG9ydCBzdHJ1Y3QKLQotZnJvbSBtb2Rf
cHl3ZWJzb2NrZXQgaW1wb3J0IGNvbW1vbgotZnJvbSBtb2RfcHl3ZWJzb2NrZXQuc3RyZWFtIGlt
cG9ydCBTdHJlYW1IaXhpZTc1Ci1mcm9tIG1vZF9weXdlYnNvY2tldCBpbXBvcnQgdXRpbAotZnJv
bSBtb2RfcHl3ZWJzb2NrZXQuaGFuZHNoYWtlLl9iYXNlIGltcG9ydCBIYW5kc2hha2VFeGNlcHRp
b24KLWZyb20gbW9kX3B5d2Vic29ja2V0LmhhbmRzaGFrZS5fYmFzZSBpbXBvcnQgY2hlY2tfcmVx
dWVzdF9saW5lCi1mcm9tIG1vZF9weXdlYnNvY2tldC5oYW5kc2hha2UuX2Jhc2UgaW1wb3J0IGZv
cm1hdF9oZWFkZXIKLWZyb20gbW9kX3B5d2Vic29ja2V0LmhhbmRzaGFrZS5fYmFzZSBpbXBvcnQg
Z2V0X2RlZmF1bHRfcG9ydAotZnJvbSBtb2RfcHl3ZWJzb2NrZXQuaGFuZHNoYWtlLl9iYXNlIGlt
cG9ydCBnZXRfbWFuZGF0b3J5X2hlYWRlcgotZnJvbSBtb2RfcHl3ZWJzb2NrZXQuaGFuZHNoYWtl
Ll9iYXNlIGltcG9ydCBwYXJzZV9ob3N0X2hlYWRlcgotZnJvbSBtb2RfcHl3ZWJzb2NrZXQuaGFu
ZHNoYWtlLl9iYXNlIGltcG9ydCB2YWxpZGF0ZV9tYW5kYXRvcnlfaGVhZGVyCi0KLQotX01BTkRB
VE9SWV9IRUFERVJTID0gWwotICAgICMga2V5LCBleHBlY3RlZCB2YWx1ZSBvciBOb25lCi0gICAg
W2NvbW1vbi5VUEdSQURFX0hFQURFUiwgY29tbW9uLldFQlNPQ0tFVF9VUEdSQURFX1RZUEVfSElY
SUU3NV0sCi0gICAgW2NvbW1vbi5DT05ORUNUSU9OX0hFQURFUiwgY29tbW9uLlVQR1JBREVfQ09O
TkVDVElPTl9UWVBFXSwKLV0KLQotCi1kZWYgX3ZhbGlkYXRlX3N1YnByb3RvY29sKHN1YnByb3Rv
Y29sKToKLSAgICAiIiJDaGVja3MgaWYgY2hhcmFjdGVycyBpbiBzdWJwcm90b2NvbCBhcmUgaW4g
cmFuZ2UgYmV0d2VlbiBVKzAwMjAgYW5kCi0gICAgVSswMDdFLiBBIHZhbHVlIGluIHRoZSBTZWMt
V2ViU29ja2V0LVByb3RvY29sIGZpZWxkIG5lZWQgdG8gc2F0aXNmeSB0aGlzCi0gICAgcmVxdWly
ZW1lbnQuCi0KLSAgICBTZWUgdGhlIFNlY3Rpb24gNC4xLiBPcGVuaW5nIGhhbmRzaGFrZSBvZiB0
aGUgc3BlYy4KLSAgICAiIiIKLQotICAgIGlmIG5vdCBzdWJwcm90b2NvbDoKLSAgICAgICAgcmFp
c2UgSGFuZHNoYWtlRXhjZXB0aW9uKCdJbnZhbGlkIHN1YnByb3RvY29sIG5hbWU6IGVtcHR5JykK
LQotICAgICMgUGFyYW1ldGVyIHNob3VsZCBiZSBpbiB0aGUgcmFuZ2UgVSswMDIwIHRvIFUrMDA3
RS4KLSAgICBmb3IgYyBpbiBzdWJwcm90b2NvbDoKLSAgICAgICAgaWYgbm90IDB4MjAgPD0gb3Jk
KGMpIDw9IDB4N2U6Ci0gICAgICAgICAgICByYWlzZSBIYW5kc2hha2VFeGNlcHRpb24oCi0gICAg
ICAgICAgICAgICAgJ0lsbGVnYWwgY2hhcmFjdGVyIGluIHN1YnByb3RvY29sIG5hbWU6ICVyJyAl
IGMpCi0KLQotZGVmIF9jaGVja19oZWFkZXJfbGluZXMocmVxdWVzdCwgbWFuZGF0b3J5X2hlYWRl
cnMpOgotICAgIGNoZWNrX3JlcXVlc3RfbGluZShyZXF1ZXN0KQotCi0gICAgIyBUaGUgZXhwZWN0
ZWQgZmllbGQgbmFtZXMsIGFuZCB0aGUgbWVhbmluZyBvZiB0aGVpciBjb3JyZXNwb25kaW5nCi0g
ICAgIyB2YWx1ZXMsIGFyZSBhcyBmb2xsb3dzLgotICAgICMgIHxVcGdyYWRlfCBhbmQgfENvbm5l
Y3Rpb258Ci0gICAgZm9yIGtleSwgZXhwZWN0ZWRfdmFsdWUgaW4gbWFuZGF0b3J5X2hlYWRlcnM6
Ci0gICAgICAgIHZhbGlkYXRlX21hbmRhdG9yeV9oZWFkZXIocmVxdWVzdCwga2V5LCBleHBlY3Rl
ZF92YWx1ZSkKLQotCi1kZWYgX2J1aWxkX2xvY2F0aW9uKHJlcXVlc3QpOgotICAgICIiIkJ1aWxk
IFdlYlNvY2tldCBsb2NhdGlvbiBmb3IgcmVxdWVzdC4iIiIKLQotICAgIGxvY2F0aW9uX3BhcnRz
ID0gW10KLSAgICBpZiByZXF1ZXN0LmlzX2h0dHBzKCk6Ci0gICAgICAgIGxvY2F0aW9uX3BhcnRz
LmFwcGVuZChjb21tb24uV0VCX1NPQ0tFVF9TRUNVUkVfU0NIRU1FKQotICAgIGVsc2U6Ci0gICAg
ICAgIGxvY2F0aW9uX3BhcnRzLmFwcGVuZChjb21tb24uV0VCX1NPQ0tFVF9TQ0hFTUUpCi0gICAg
bG9jYXRpb25fcGFydHMuYXBwZW5kKCc6Ly8nKQotICAgIGhvc3QsIHBvcnQgPSBwYXJzZV9ob3N0
X2hlYWRlcihyZXF1ZXN0KQotICAgIGNvbm5lY3Rpb25fcG9ydCA9IHJlcXVlc3QuY29ubmVjdGlv
bi5sb2NhbF9hZGRyWzFdCi0gICAgaWYgcG9ydCAhPSBjb25uZWN0aW9uX3BvcnQ6Ci0gICAgICAg
IHJhaXNlIEhhbmRzaGFrZUV4Y2VwdGlvbignSGVhZGVyL2Nvbm5lY3Rpb24gcG9ydCBtaXNtYXRj
aDogJWQvJWQnICUKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChwb3J0LCBjb25u
ZWN0aW9uX3BvcnQpKQotICAgIGxvY2F0aW9uX3BhcnRzLmFwcGVuZChob3N0KQotICAgIGlmIChw
b3J0ICE9IGdldF9kZWZhdWx0X3BvcnQocmVxdWVzdC5pc19odHRwcygpKSk6Ci0gICAgICAgIGxv
Y2F0aW9uX3BhcnRzLmFwcGVuZCgnOicpCi0gICAgICAgIGxvY2F0aW9uX3BhcnRzLmFwcGVuZChz
dHIocG9ydCkpCi0gICAgbG9jYXRpb25fcGFydHMuYXBwZW5kKHJlcXVlc3QudW5wYXJzZWRfdXJp
KQotICAgIHJldHVybiAnJy5qb2luKGxvY2F0aW9uX3BhcnRzKQotCi0KLWNsYXNzIEhhbmRzaGFr
ZXIob2JqZWN0KToKLSAgICAiIiJPcGVuaW5nIGhhbmRzaGFrZSBwcm9jZXNzb3IgZm9yIHRoZSBX
ZWJTb2NrZXQgcHJvdG9jb2wgdmVyc2lvbiBIeUJpIDAwLgotICAgICIiIgotCi0gICAgZGVmIF9f
aW5pdF9fKHNlbGYsIHJlcXVlc3QsIGRpc3BhdGNoZXIpOgotICAgICAgICAiIiJDb25zdHJ1Y3Qg
YW4gaW5zdGFuY2UuCi0KLSAgICAgICAgQXJnczoKLSAgICAgICAgICAgIHJlcXVlc3Q6IG1vZF9w
eXRob24gcmVxdWVzdC4KLSAgICAgICAgICAgIGRpc3BhdGNoZXI6IERpc3BhdGNoZXIgKGRpc3Bh
dGNoLkRpc3BhdGNoZXIpLgotCi0gICAgICAgIEhhbmRzaGFrZXIgd2lsbCBhZGQgYXR0cmlidXRl
cyBzdWNoIGFzIHdzX3Jlc291cmNlIGluIHBlcmZvcm1pbmcKLSAgICAgICAgaGFuZHNoYWtlLgot
ICAgICAgICAiIiIKLQotICAgICAgICBzZWxmLl9sb2dnZXIgPSB1dGlsLmdldF9jbGFzc19sb2dn
ZXIoc2VsZikKLQotICAgICAgICBzZWxmLl9yZXF1ZXN0ID0gcmVxdWVzdAotICAgICAgICBzZWxm
Ll9kaXNwYXRjaGVyID0gZGlzcGF0Y2hlcgotCi0gICAgZGVmIGRvX2hhbmRzaGFrZShzZWxmKToK
LSAgICAgICAgIiIiUGVyZm9ybSBXZWJTb2NrZXQgSGFuZHNoYWtlLgotCi0gICAgICAgIE9uIF9y
ZXF1ZXN0LCB3ZSBzZXQKLSAgICAgICAgICAgIHdzX3Jlc291cmNlLCB3c19wcm90b2NvbCwgd3Nf
bG9jYXRpb24sIHdzX29yaWdpbiwgd3NfY2hhbGxlbmdlLAotICAgICAgICAgICAgd3NfY2hhbGxl
bmdlX21kNTogV2ViU29ja2V0IGhhbmRzaGFrZSBpbmZvcm1hdGlvbi4KLSAgICAgICAgICAgIHdz
X3N0cmVhbTogRnJhbWUgZ2VuZXJhdGlvbi9wYXJzaW5nIGNsYXNzLgotICAgICAgICAgICAgd3Nf
dmVyc2lvbjogUHJvdG9jb2wgdmVyc2lvbi4KLQotICAgICAgICBSYWlzZXM6Ci0gICAgICAgICAg
ICBIYW5kc2hha2VFeGNlcHRpb246IHdoZW4gYW55IGVycm9yIGhhcHBlbmVkIGluIHBhcnNpbmcg
dGhlIG9wZW5pbmcKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFuZHNoYWtlIHJl
cXVlc3QuCi0gICAgICAgICIiIgotCi0gICAgICAgICMgNS4xIFJlYWRpbmcgdGhlIGNsaWVudCdz
IG9wZW5pbmcgaGFuZHNoYWtlLgotICAgICAgICAjIGRpc3BhdGNoZXIgc2V0cyBpdCBpbiBzZWxm
Ll9yZXF1ZXN0LgotICAgICAgICBfY2hlY2tfaGVhZGVyX2xpbmVzKHNlbGYuX3JlcXVlc3QsIF9N
QU5EQVRPUllfSEVBREVSUykKLSAgICAgICAgc2VsZi5fc2V0X3Jlc291cmNlKCkKLSAgICAgICAg
c2VsZi5fc2V0X3N1YnByb3RvY29sKCkKLSAgICAgICAgc2VsZi5fc2V0X2xvY2F0aW9uKCkKLSAg
ICAgICAgc2VsZi5fc2V0X29yaWdpbigpCi0gICAgICAgIHNlbGYuX3NldF9jaGFsbGVuZ2VfcmVz
cG9uc2UoKQotICAgICAgICBzZWxmLl9zZXRfcHJvdG9jb2xfdmVyc2lvbigpCi0KLSAgICAgICAg
c2VsZi5fZGlzcGF0Y2hlci5kb19leHRyYV9oYW5kc2hha2Uoc2VsZi5fcmVxdWVzdCkKLQotICAg
ICAgICBzZWxmLl9zZW5kX2hhbmRzaGFrZSgpCi0KLSAgICBkZWYgX3NldF9yZXNvdXJjZShzZWxm
KToKLSAgICAgICAgc2VsZi5fcmVxdWVzdC53c19yZXNvdXJjZSA9IHNlbGYuX3JlcXVlc3QudXJp
Ci0KLSAgICBkZWYgX3NldF9zdWJwcm90b2NvbChzZWxmKToKLSAgICAgICAgIyB8U2VjLVdlYlNv
Y2tldC1Qcm90b2NvbHwKLSAgICAgICAgc3VicHJvdG9jb2wgPSBzZWxmLl9yZXF1ZXN0LmhlYWRl
cnNfaW4uZ2V0KAotICAgICAgICAgICAgY29tbW9uLlNFQ19XRUJTT0NLRVRfUFJPVE9DT0xfSEVB
REVSKQotICAgICAgICBpZiBzdWJwcm90b2NvbCBpcyBub3QgTm9uZToKLSAgICAgICAgICAgIF92
YWxpZGF0ZV9zdWJwcm90b2NvbChzdWJwcm90b2NvbCkKLSAgICAgICAgc2VsZi5fcmVxdWVzdC53
c19wcm90b2NvbCA9IHN1YnByb3RvY29sCi0KLSAgICBkZWYgX3NldF9sb2NhdGlvbihzZWxmKToK
LSAgICAgICAgIyB8SG9zdHwKLSAgICAgICAgaG9zdCA9IHNlbGYuX3JlcXVlc3QuaGVhZGVyc19p
bi5nZXQoY29tbW9uLkhPU1RfSEVBREVSKQotICAgICAgICBpZiBob3N0IGlzIG5vdCBOb25lOgot
ICAgICAgICAgICAgc2VsZi5fcmVxdWVzdC53c19sb2NhdGlvbiA9IF9idWlsZF9sb2NhdGlvbihz
ZWxmLl9yZXF1ZXN0KQotICAgICAgICAjIFRPRE8odWthaSk6IGNoZWNrIGhvc3QgaXMgdGhpcyBo
b3N0LgotCi0gICAgZGVmIF9zZXRfb3JpZ2luKHNlbGYpOgotICAgICAgICAjIHxPcmlnaW58Ci0g
ICAgICAgIG9yaWdpbiA9IHNlbGYuX3JlcXVlc3QuaGVhZGVyc19pbi5nZXQoY29tbW9uLk9SSUdJ
Tl9IRUFERVIpCi0gICAgICAgIGlmIG9yaWdpbiBpcyBub3QgTm9uZToKLSAgICAgICAgICAgIHNl
bGYuX3JlcXVlc3Qud3Nfb3JpZ2luID0gb3JpZ2luCi0KLSAgICBkZWYgX3NldF9wcm90b2NvbF92
ZXJzaW9uKHNlbGYpOgotICAgICAgICAjIHxTZWMtV2ViU29ja2V0LURyYWZ0fAotICAgICAgICBk
cmFmdCA9IHNlbGYuX3JlcXVlc3QuaGVhZGVyc19pbi5nZXQoY29tbW9uLlNFQ19XRUJTT0NLRVRf
RFJBRlRfSEVBREVSKQotICAgICAgICBpZiBkcmFmdCBpcyBub3QgTm9uZSBhbmQgZHJhZnQgIT0g
JzAnOgotICAgICAgICAgICAgcmFpc2UgSGFuZHNoYWtlRXhjZXB0aW9uKCdJbGxlZ2FsIHZhbHVl
IGZvciAlczogJXMnICUKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY29t
bW9uLlNFQ19XRUJTT0NLRVRfRFJBRlRfSEVBREVSLAotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBkcmFmdCkpCi0KLSAgICAgICAgc2VsZi5fbG9nZ2VyLmRlYnVnKCdQcm90
b2NvbCB2ZXJzaW9uIGlzIEh5QmkgMDAnKQotICAgICAgICBzZWxmLl9yZXF1ZXN0LndzX3ZlcnNp
b24gPSBjb21tb24uVkVSU0lPTl9IWUJJMDAKLSAgICAgICAgc2VsZi5fcmVxdWVzdC53c19zdHJl
YW0gPSBTdHJlYW1IaXhpZTc1KHNlbGYuX3JlcXVlc3QsIFRydWUpCi0KLSAgICBkZWYgX3NldF9j
aGFsbGVuZ2VfcmVzcG9uc2Uoc2VsZik6Ci0gICAgICAgICMgNS4yIDQtOC4KLSAgICAgICAgc2Vs
Zi5fcmVxdWVzdC53c19jaGFsbGVuZ2UgPSBzZWxmLl9nZXRfY2hhbGxlbmdlKCkKLSAgICAgICAg
IyA1LjIgOS4gbGV0IC9yZXNwb25zZS8gYmUgdGhlIE1ENSBmaW50ZXJwcmludCBvZiAvY2hhbGxl
bmdlLwotICAgICAgICBzZWxmLl9yZXF1ZXN0LndzX2NoYWxsZW5nZV9tZDUgPSB1dGlsLm1kNV9o
YXNoKAotICAgICAgICAgICAgc2VsZi5fcmVxdWVzdC53c19jaGFsbGVuZ2UpLmRpZ2VzdCgpCi0g
ICAgICAgIHNlbGYuX2xvZ2dlci5kZWJ1ZygKLSAgICAgICAgICAgICdDaGFsbGVuZ2U6ICVyICgl
cyknLAotICAgICAgICAgICAgc2VsZi5fcmVxdWVzdC53c19jaGFsbGVuZ2UsCi0gICAgICAgICAg
ICB1dGlsLmhleGlmeShzZWxmLl9yZXF1ZXN0LndzX2NoYWxsZW5nZSkpCi0gICAgICAgIHNlbGYu
X2xvZ2dlci5kZWJ1ZygKLSAgICAgICAgICAgICdDaGFsbGVuZ2UgcmVzcG9uc2U6ICVyICglcykn
LAotICAgICAgICAgICAgc2VsZi5fcmVxdWVzdC53c19jaGFsbGVuZ2VfbWQ1LAotICAgICAgICAg
ICAgdXRpbC5oZXhpZnkoc2VsZi5fcmVxdWVzdC53c19jaGFsbGVuZ2VfbWQ1KSkKLQotICAgIGRl
ZiBfZ2V0X2tleV92YWx1ZShzZWxmLCBrZXlfZmllbGQpOgotICAgICAgICBrZXlfdmFsdWUgPSBn
ZXRfbWFuZGF0b3J5X2hlYWRlcihzZWxmLl9yZXF1ZXN0LCBrZXlfZmllbGQpCi0KLSAgICAgICAg
c2VsZi5fbG9nZ2VyLmRlYnVnKCclczogJXInLCBrZXlfZmllbGQsIGtleV92YWx1ZSkKLQotICAg
ICAgICAjIDUuMiA0LiBsZXQgL2tleS1udW1iZXJfbi8gYmUgdGhlIGRpZ2l0cyAoY2hhcmFjdGVy
cyBpbiB0aGUgcmFuZ2UKLSAgICAgICAgIyBVKzAwMzAgRElHSVQgWkVSTyAoMCkgdG8gVSswMDM5
IERJR0lUIE5JTkUgKDkpKSBpbiAva2V5X24vLAotICAgICAgICAjIGludGVycHJldGVkIGFzIGEg
YmFzZSB0ZW4gaW50ZWdlciwgaWdub3JpbmcgYWxsIG90aGVyIGNoYXJhY3RlcnMKLSAgICAgICAg
IyBpbiAva2V5X24vLgotICAgICAgICB0cnk6Ci0gICAgICAgICAgICBrZXlfbnVtYmVyID0gaW50
KHJlLnN1YigiXFxEIiwgIiIsIGtleV92YWx1ZSkpCi0gICAgICAgIGV4Y2VwdDoKLSAgICAgICAg
ICAgIHJhaXNlIEhhbmRzaGFrZUV4Y2VwdGlvbignJXMgZmllbGQgY29udGFpbnMgbm8gZGlnaXQn
ICUga2V5X2ZpZWxkKQotICAgICAgICAjIDUuMiA1LiBsZXQgL3NwYWNlc19uLyBiZSB0aGUgbnVt
YmVyIG9mIFUrMDAyMCBTUEFDRSBjaGFyYWN0ZXJzCi0gICAgICAgICMgaW4gL2tleV9uLy4KLSAg
ICAgICAgc3BhY2VzID0gcmUuc3VibigiICIsICIiLCBrZXlfdmFsdWUpWzFdCi0gICAgICAgIGlm
IHNwYWNlcyA9PSAwOgotICAgICAgICAgICAgcmFpc2UgSGFuZHNoYWtlRXhjZXB0aW9uKCclcyBm
aWVsZCBjb250YWlucyBubyBzcGFjZScgJSBrZXlfZmllbGQpCi0KLSAgICAgICAgc2VsZi5fbG9n
Z2VyLmRlYnVnKAotICAgICAgICAgICAgJyVzOiBLZXktbnVtYmVyIGlzICVkIGFuZCBudW1iZXIg
b2Ygc3BhY2VzIGlzICVkJywKLSAgICAgICAgICAgIGtleV9maWVsZCwga2V5X251bWJlciwgc3Bh
Y2VzKQotCi0gICAgICAgICMgNS4yIDYuIGlmIC9rZXktbnVtYmVyX24vIGlzIG5vdCBhbiBpbnRl
Z3JhbCBtdWx0aXBsZSBvZiAvc3BhY2VzX24vCi0gICAgICAgICMgdGhlbiBhYm9ydCB0aGUgV2Vi
U29ja2V0IGNvbm5lY3Rpb24uCi0gICAgICAgIGlmIGtleV9udW1iZXIgJSBzcGFjZXMgIT0gMDoK
LSAgICAgICAgICAgIHJhaXNlIEhhbmRzaGFrZUV4Y2VwdGlvbigKLSAgICAgICAgICAgICAgICAn
JXM6IEtleS1udW1iZXIgKCVkKSBpcyBub3QgYW4gaW50ZWdyYWwgbXVsdGlwbGUgb2Ygc3BhY2Vz
ICcKLSAgICAgICAgICAgICAgICAnKCVkKScgJSAoa2V5X2ZpZWxkLCBrZXlfbnVtYmVyLCBzcGFj
ZXMpKQotICAgICAgICAjIDUuMiA3LiBsZXQgL3BhcnRfbi8gYmUgL2tleS1udW1iZXJfbi8gZGl2
aWRlZCBieSAvc3BhY2VzX24vLgotICAgICAgICBwYXJ0ID0ga2V5X251bWJlciAvIHNwYWNlcwot
ICAgICAgICBzZWxmLl9sb2dnZXIuZGVidWcoJyVzOiBQYXJ0IGlzICVkJywga2V5X2ZpZWxkLCBw
YXJ0KQotICAgICAgICByZXR1cm4gcGFydAotCi0gICAgZGVmIF9nZXRfY2hhbGxlbmdlKHNlbGYp
OgotICAgICAgICAjIDUuMiA0LTcuCi0gICAgICAgIGtleTEgPSBzZWxmLl9nZXRfa2V5X3ZhbHVl
KGNvbW1vbi5TRUNfV0VCU09DS0VUX0tFWTFfSEVBREVSKQotICAgICAgICBrZXkyID0gc2VsZi5f
Z2V0X2tleV92YWx1ZShjb21tb24uU0VDX1dFQlNPQ0tFVF9LRVkyX0hFQURFUikKLSAgICAgICAg
IyA1LjIgOC4gbGV0IC9jaGFsbGVuZ2UvIGJlIHRoZSBjb25jYXRlbmF0aW9uIG9mIC9wYXJ0XzEv
LAotICAgICAgICBjaGFsbGVuZ2UgPSAnJwotICAgICAgICBjaGFsbGVuZ2UgKz0gc3RydWN0LnBh
Y2soJyFJJywga2V5MSkgICMgbmV0d29yayBieXRlb3JkZXIgaW50Ci0gICAgICAgIGNoYWxsZW5n
ZSArPSBzdHJ1Y3QucGFjaygnIUknLCBrZXkyKSAgIyBuZXR3b3JrIGJ5dGVvcmRlciBpbnQKLSAg
ICAgICAgY2hhbGxlbmdlICs9IHNlbGYuX3JlcXVlc3QuY29ubmVjdGlvbi5yZWFkKDgpCi0gICAg
ICAgIHJldHVybiBjaGFsbGVuZ2UKLQotICAgIGRlZiBfc2VuZF9oYW5kc2hha2Uoc2VsZik6Ci0g
ICAgICAgIHJlc3BvbnNlID0gW10KLQotICAgICAgICAjIDUuMiAxMC4gc2VuZCB0aGUgZm9sbG93
aW5nIGxpbmUuCi0gICAgICAgIHJlc3BvbnNlLmFwcGVuZCgnSFRUUC8xLjEgMTAxIFdlYlNvY2tl
dCBQcm90b2NvbCBIYW5kc2hha2VcclxuJykKLQotICAgICAgICAjIDUuMiAxMS4gc2VuZCB0aGUg
Zm9sbG93aW5nIGZpZWxkcyB0byB0aGUgY2xpZW50LgotICAgICAgICByZXNwb25zZS5hcHBlbmQo
Zm9ybWF0X2hlYWRlcigKLSAgICAgICAgICAgIGNvbW1vbi5VUEdSQURFX0hFQURFUiwgY29tbW9u
LldFQlNPQ0tFVF9VUEdSQURFX1RZUEVfSElYSUU3NSkpCi0gICAgICAgIHJlc3BvbnNlLmFwcGVu
ZChmb3JtYXRfaGVhZGVyKAotICAgICAgICAgICAgY29tbW9uLkNPTk5FQ1RJT05fSEVBREVSLCBj
b21tb24uVVBHUkFERV9DT05ORUNUSU9OX1RZUEUpKQotICAgICAgICByZXNwb25zZS5hcHBlbmQo
Zm9ybWF0X2hlYWRlcigKLSAgICAgICAgICAgIGNvbW1vbi5TRUNfV0VCU09DS0VUX0xPQ0FUSU9O
X0hFQURFUiwgc2VsZi5fcmVxdWVzdC53c19sb2NhdGlvbikpCi0gICAgICAgIHJlc3BvbnNlLmFw
cGVuZChmb3JtYXRfaGVhZGVyKAotICAgICAgICAgICAgY29tbW9uLlNFQ19XRUJTT0NLRVRfT1JJ
R0lOX0hFQURFUiwgc2VsZi5fcmVxdWVzdC53c19vcmlnaW4pKQotICAgICAgICBpZiBzZWxmLl9y
ZXF1ZXN0LndzX3Byb3RvY29sOgotICAgICAgICAgICAgcmVzcG9uc2UuYXBwZW5kKGZvcm1hdF9o
ZWFkZXIoCi0gICAgICAgICAgICAgICAgY29tbW9uLlNFQ19XRUJTT0NLRVRfUFJPVE9DT0xfSEVB
REVSLAotICAgICAgICAgICAgICAgIHNlbGYuX3JlcXVlc3Qud3NfcHJvdG9jb2wpKQotICAgICAg
ICAjIDUuMiAxMi4gc2VuZCB0d28gYnl0ZXMgMHgwRCAweDBBLgotICAgICAgICByZXNwb25zZS5h
cHBlbmQoJ1xyXG4nKQotICAgICAgICAjIDUuMiAxMy4gc2VuZCAvcmVzcG9uc2UvCi0gICAgICAg
IHJlc3BvbnNlLmFwcGVuZChzZWxmLl9yZXF1ZXN0LndzX2NoYWxsZW5nZV9tZDUpCi0KLSAgICAg
ICAgcmF3X3Jlc3BvbnNlID0gJycuam9pbihyZXNwb25zZSkKLSAgICAgICAgc2VsZi5fcmVxdWVz
dC5jb25uZWN0aW9uLndyaXRlKHJhd19yZXNwb25zZSkKLSAgICAgICAgc2VsZi5fbG9nZ2VyLmRl
YnVnKCdTZW50IHNlcnZlclwncyBvcGVuaW5nIGhhbmRzaGFrZTogJXInLAotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgcmF3X3Jlc3BvbnNlKQotCi0KLSMgdmk6c3RzPTQgc3c9NCBldApkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy9weXdlYnNvY2tldC9zcmMvbW9kX3B5d2Vic29ja2V0L2hhbmRzaGFrZS93M2MtaW1wb3J0Lmxv
ZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3
ZWJzb2NrZXQvc3JjL21vZF9weXdlYnNvY2tldC9oYW5kc2hha2UvdzNjLWltcG9ydC5sb2cKZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDc5MGRkNzU0YTQ5MDM2OGI5ZTdhNTkzMzY1ZjJm
ZDBjMDQxN2QyZDIuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0t
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdl
YnNvY2tldC9zcmMvbW9kX3B5d2Vic29ja2V0L2hhbmRzaGFrZS93M2MtaW1wb3J0LmxvZworKysg
L2Rldi9udWxsCkBAIC0xLDIwICswLDAgQEAKLVRoZSB0ZXN0cyBpbiB0aGlzIGRpcmVjdG9yeSB3
ZXJlIGltcG9ydGVkIGZyb20gdGhlIFczQyByZXBvc2l0b3J5LgotRG8gTk9UIG1vZGlmeSB0aGVz
ZSB0ZXN0cyBkaXJlY3RseSBpbiBXZWJLaXQuCi1JbnN0ZWFkLCBjcmVhdGUgYSBwdWxsIHJlcXVl
c3Qgb24gdGhlIFdQVCBnaXRodWI6Ci0JaHR0cHM6Ly9naXRodWIuY29tL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMKLQotVGhlbiBydW4gdGhlIFRvb2xzL1NjcmlwdHMvaW1wb3J0LXczYy10ZXN0cyBp
biBXZWJLaXQgdG8gcmVpbXBvcnQKLQotRG8gTk9UIG1vZGlmeSBvciByZW1vdmUgdGhpcyBmaWxl
LgotCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0KLVByb3BlcnRpZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhl
czoKLU5vbmUKLVByb3BlcnR5IHZhbHVlcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9u
ZQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tCi1MaXN0IG9mIGZpbGVzOgotL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3JjL21vZF9weXdlYnNv
Y2tldC9oYW5kc2hha2UvX19pbml0X18ucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3NyYy9tb2RfcHl3ZWJzb2NrZXQvaGFu
ZHNoYWtlL19iYXNlLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy9weXdlYnNvY2tldC9zcmMvbW9kX3B5d2Vic29ja2V0L2hhbmRzaGFrZS9oeWJp
LnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9w
eXdlYnNvY2tldC9zcmMvbW9kX3B5d2Vic29ja2V0L2hhbmRzaGFrZS9oeWJpMDAucHkKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
cHl3ZWJzb2NrZXQvc3JjL21vZF9weXdlYnNvY2tldC9oZWFkZXJwYXJzZXJoYW5kbGVyLnB5IGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNv
Y2tldC9zcmMvbW9kX3B5d2Vic29ja2V0L2hlYWRlcnBhcnNlcmhhbmRsZXIucHkKZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IGMyNDQ0MjFjZjc5YmNkZDczN2RjYjU3ZjlmNDMzNmJlMGU4
NGNhNTQuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tl
dC9zcmMvbW9kX3B5d2Vic29ja2V0L2hlYWRlcnBhcnNlcmhhbmRsZXIucHkKKysrIC9kZXYvbnVs
bApAQCAtMSwyNTQgKzAsMCBAQAotIyBDb3B5cmlnaHQgMjAxMSwgR29vZ2xlIEluYy4KLSMgQWxs
IHJpZ2h0cyByZXNlcnZlZC4KLSMKLSMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0jIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKLSMgbWV0
OgotIwotIyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAotIyBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0jICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKLSMgY29weXJpZ2h0IG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgotIyBp
biB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlCi0jIGRpc3RyaWJ1dGlvbi4KLSMgICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUg
SW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwotIyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8g
ZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQotIyB0aGlzIHNvZnR3YXJl
IHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgotIwotIyBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVU
T1JTCi0jICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UCi0jIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgotIyBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAotIyBPV05FUiBP
UiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwKLSMgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVAotIyBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKLSMgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCi0jIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQKLSMgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0jIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0KLQotIiIiUHl0aG9uSGVhZGVy
UGFyc2VySGFuZGxlciBmb3IgbW9kX3B5d2Vic29ja2V0LgotCi1BcGFjaGUgSFRUUCBTZXJ2ZXIg
YW5kIG1vZF9weXRob24gbXVzdCBiZSBjb25maWd1cmVkIHN1Y2ggdGhhdCB0aGlzCi1mdW5jdGlv
biBpcyBjYWxsZWQgdG8gaGFuZGxlIFdlYlNvY2tldCByZXF1ZXN0LgotIiIiCi0KLQotaW1wb3J0
IGxvZ2dpbmcKLQotZnJvbSBtb2RfcHl0aG9uIGltcG9ydCBhcGFjaGUKLQotZnJvbSBtb2RfcHl3
ZWJzb2NrZXQgaW1wb3J0IGNvbW1vbgotZnJvbSBtb2RfcHl3ZWJzb2NrZXQgaW1wb3J0IGRpc3Bh
dGNoCi1mcm9tIG1vZF9weXdlYnNvY2tldCBpbXBvcnQgaGFuZHNoYWtlCi1mcm9tIG1vZF9weXdl
YnNvY2tldCBpbXBvcnQgdXRpbAotCi0KLSMgUHl0aG9uT3B0aW9uIHRvIHNwZWNpZnkgdGhlIGhh
bmRsZXIgcm9vdCBkaXJlY3RvcnkuCi1fUFlPUFRfSEFORExFUl9ST09UID0gJ21vZF9weXdlYnNv
Y2tldC5oYW5kbGVyX3Jvb3QnCi0KLSMgUHl0aG9uT3B0aW9uIHRvIHNwZWNpZnkgdGhlIGhhbmRs
ZXIgc2NhbiBkaXJlY3RvcnkuCi0jIFRoaXMgbXVzdCBiZSBhIGRpcmVjdG9yeSB1bmRlciB0aGUg
cm9vdCBkaXJlY3RvcnkuCi0jIFRoZSBkZWZhdWx0IGlzIHRoZSByb290IGRpcmVjdG9yeS4KLV9Q
WU9QVF9IQU5ETEVSX1NDQU4gPSAnbW9kX3B5d2Vic29ja2V0LmhhbmRsZXJfc2NhbicKLQotIyBQ
eXRob25PcHRpb24gdG8gYWxsb3cgaGFuZGxlcnMgd2hvc2UgY2Fub25pY2FsIHBhdGggaXMKLSMg
bm90IHVuZGVyIHRoZSByb290IGRpcmVjdG9yeS4gSXQncyBkaXNhbGxvd2VkIGJ5IGRlZmF1bHQu
Ci0jIFNldCB0aGlzIG9wdGlvbiB3aXRoIHZhbHVlIG9mICd5ZXMnIHRvIGFsbG93LgotX1BZT1BU
X0FMTE9XX0hBTkRMRVJTX09VVFNJREVfUk9PVCA9ICgKLSAgICAnbW9kX3B5d2Vic29ja2V0LmFs
bG93X2hhbmRsZXJzX291dHNpZGVfcm9vdF9kaXInKQotIyBNYXAgZnJvbSB2YWx1ZXMgdG8gdGhl
aXIgbWVhbmluZ3MuICdZZXMnIGFuZCAnTm8nIGFyZSBhbGxvd2VkIGp1c3QgZm9yCi0jIGNvbXBh
dGliaWxpdHkuCi1fUFlPUFRfQUxMT1dfSEFORExFUlNfT1VUU0lERV9ST09UX0RFRklOSVRJT04g
PSB7Ci0gICAgJ29mZic6IEZhbHNlLCAnbm8nOiBGYWxzZSwgJ29uJzogVHJ1ZSwgJ3llcyc6IFRy
dWV9Ci0KLSMgKE9ic29sZXRlIG9wdGlvbi4gSWdub3JlZC4pCi0jIFB5dGhvbk9wdGlvbiB0byBz
cGVjaWZ5IHRvIGFsbG93IGhhbmRzaGFrZSBkZWZpbmVkIGluIEhpeGllIDc1IHZlcnNpb24KLSMg
cHJvdG9jb2wuIFRoZSBkZWZhdWx0IGlzIE5vbmUgKE9mZikKLV9QWU9QVF9BTExPV19EUkFGVDc1
ID0gJ21vZF9weXdlYnNvY2tldC5hbGxvd19kcmFmdDc1JwotIyBNYXAgZnJvbSB2YWx1ZXMgdG8g
dGhlaXIgbWVhbmluZ3MuCi1fUFlPUFRfQUxMT1dfRFJBRlQ3NV9ERUZJTklUSU9OID0geydvZmYn
OiBGYWxzZSwgJ29uJzogVHJ1ZX0KLQotCi1jbGFzcyBBcGFjaGVMb2dIYW5kbGVyKGxvZ2dpbmcu
SGFuZGxlcik6Ci0gICAgIiIiV3JhcHBlciBsb2dnaW5nLkhhbmRsZXIgdG8gZW1pdCBsb2cgbWVz
c2FnZSB0byBhcGFjaGUncyBlcnJvci5sb2cuIiIiCi0KLSAgICBfTEVWRUxTID0gewotICAgICAg
ICBsb2dnaW5nLkRFQlVHOiBhcGFjaGUuQVBMT0dfREVCVUcsCi0gICAgICAgIGxvZ2dpbmcuSU5G
TzogYXBhY2hlLkFQTE9HX0lORk8sCi0gICAgICAgIGxvZ2dpbmcuV0FSTklORzogYXBhY2hlLkFQ
TE9HX1dBUk5JTkcsCi0gICAgICAgIGxvZ2dpbmcuRVJST1I6IGFwYWNoZS5BUExPR19FUlIsCi0g
ICAgICAgIGxvZ2dpbmcuQ1JJVElDQUw6IGFwYWNoZS5BUExPR19DUklULAotICAgICAgICB9Ci0K
LSAgICBkZWYgX19pbml0X18oc2VsZiwgcmVxdWVzdD1Ob25lKToKLSAgICAgICAgbG9nZ2luZy5I
YW5kbGVyLl9faW5pdF9fKHNlbGYpCi0gICAgICAgIHNlbGYuX2xvZ19lcnJvciA9IGFwYWNoZS5s
b2dfZXJyb3IKLSAgICAgICAgaWYgcmVxdWVzdCBpcyBub3QgTm9uZToKLSAgICAgICAgICAgIHNl
bGYuX2xvZ19lcnJvciA9IHJlcXVlc3QubG9nX2Vycm9yCi0KLSAgICAgICAgIyBUaW1lIGFuZCBs
ZXZlbCB3aWxsIGJlIHByaW50ZWQgYnkgQXBhY2hlLgotICAgICAgICBzZWxmLl9mb3JtYXR0ZXIg
PSBsb2dnaW5nLkZvcm1hdHRlcignJShuYW1lKXM6ICUobWVzc2FnZSlzJykKLQotICAgIGRlZiBl
bWl0KHNlbGYsIHJlY29yZCk6Ci0gICAgICAgIGFwYWNoZV9sZXZlbCA9IGFwYWNoZS5BUExPR19E
RUJVRwotICAgICAgICBpZiByZWNvcmQubGV2ZWxubyBpbiBBcGFjaGVMb2dIYW5kbGVyLl9MRVZF
TFM6Ci0gICAgICAgICAgICBhcGFjaGVfbGV2ZWwgPSBBcGFjaGVMb2dIYW5kbGVyLl9MRVZFTFNb
cmVjb3JkLmxldmVsbm9dCi0KLSAgICAgICAgbXNnID0gc2VsZi5fZm9ybWF0dGVyLmZvcm1hdChy
ZWNvcmQpCi0KLSAgICAgICAgIyAic2VydmVyIiBwYXJhbWV0ZXIgbXVzdCBiZSBwYXNzZWQgdG8g
aGF2ZSAibGV2ZWwiIHBhcmFtZXRlciB3b3JrLgotICAgICAgICAjIElmIG9ubHkgImxldmVsIiBw
YXJhbWV0ZXIgaXMgcGFzc2VkLCBub3RoaW5nIHNob3dzIHVwIG9uIEFwYWNoZSdzCi0gICAgICAg
ICMgbG9nLiBIb3dldmVyLCBhdCB0aGlzIHBvaW50LCB3ZSBjYW5ub3QgZ2V0IHRoZSBzZXJ2ZXIg
b2JqZWN0IG9mIHRoZQotICAgICAgICAjIHZpcnR1YWwgaG9zdCB3aGljaCB3aWxsIHByb2Nlc3Mg
V2ViU29ja2V0IHJlcXVlc3RzLiBUaGUgb25seSBzZXJ2ZXIKLSAgICAgICAgIyBvYmplY3Qgd2Ug
Y2FuIGdldCBoZXJlIGlzIGFwYWNoZS5tYWluX3NlcnZlci4gQnV0IFdoZXJldmVyIChzZXJ2ZXIK
LSAgICAgICAgIyBjb25maWd1cmF0aW9uIGNvbnRleHQgb3IgdmlydHVhbCBob3N0IGNvbnRleHQp
IHdlIHB1dAotICAgICAgICAjIFB5dGhvbkhlYWRlclBhcnNlckhhbmRsZXIgZGlyZWN0aXZlLCBh
cGFjaGUubWFpbl9zZXJ2ZXIganVzdCBwb2ludHMKLSAgICAgICAgIyB0aGUgbWFpbiBzZXJ2ZXIg
aW5zdGFuY2UgKG5vdCBhbnkgb2YgdmlydHVhbCBzZXJ2ZXIgaW5zdGFuY2UpLiBUaGVuLAotICAg
ICAgICAjIEFwYWNoZSBmb2xsb3dzIExvZ0xldmVsIGRpcmVjdGl2ZSBpbiB0aGUgc2VydmVyIGNv
bmZpZ3VyYXRpb24gY29udGV4dAotICAgICAgICAjIHRvIGZpbHRlciBsb2dzLiBTbywgd2UgbmVl
ZCB0byBzcGVjaWZ5IExvZ0xldmVsIGluIHRoZSBzZXJ2ZXIKLSAgICAgICAgIyBjb25maWd1cmF0
aW9uIGNvbnRleHQuIEV2ZW4gaWYgd2Ugc3BlY2lmeSAiTG9nTGV2ZWwgZGVidWciIGluIHRoZQot
ICAgICAgICAjIHZpcnR1YWwgaG9zdCBjb250ZXh0IHdoaWNoIGFjdHVhbGx5IGhhbmRsZXMgV2Vi
U29ja2V0IGNvbm5lY3Rpb25zLAotICAgICAgICAjIERFQlVHIGxldmVsIGxvZ3MgbmV2ZXIgc2hv
dyB1cCB1bmxlc3MgIkxvZ0xldmVsIGRlYnVnIiBpcyBzcGVjaWZpZWQKLSAgICAgICAgIyBpbiB0
aGUgc2VydmVyIGNvbmZpZ3VyYXRpb24gY29udGV4dC4KLSAgICAgICAgIwotICAgICAgICAjIFRP
RE8odHlvc2hpbm8pOiBQcm92aWRlIGxvZ2dpbmcgbWV0aG9kcyBvbiByZXF1ZXN0IG9iamVjdC4g
V2hlbgotICAgICAgICAjIHJlcXVlc3QgaXMgbXBfcmVxdWVzdCBvYmplY3QgKHdoZW4gdXNlZCB0
b2dldGhlciB3aXRoIEFwYWNoZSksIHRoZQotICAgICAgICAjIG1ldGhvZHMgY2FsbCByZXF1ZXN0
LmxvZ19lcnJvciBpbmRpcmVjdGx5LiBXaGVuIHJlcXVlc3QgaXMKLSAgICAgICAgIyBfU3RhbmRh
bG9uZVJlcXVlc3QsIHRoZSBtZXRob2RzIGNhbGwgUHl0aG9uJ3MgbG9nZ2luZyBmYWNpbGl0eSB3
aGljaAotICAgICAgICAjIHdlIGNyZWF0ZSBpbiBzdGFuZGFsb25lLnB5LgotICAgICAgICBzZWxm
Ll9sb2dfZXJyb3IobXNnLCBhcGFjaGVfbGV2ZWwsIGFwYWNoZS5tYWluX3NlcnZlcikKLQotCi1k
ZWYgX2NvbmZpZ3VyZV9sb2dnaW5nKCk6Ci0gICAgbG9nZ2VyID0gbG9nZ2luZy5nZXRMb2dnZXIo
KQotICAgICMgTG9ncyBhcmUgZmlsdGVyZWQgYnkgQXBhY2hlIGJhc2VkIG9uIExvZ0xldmVsIGRp
cmVjdGl2ZSBpbiBBcGFjaGUKLSAgICAjIGNvbmZpZ3VyYXRpb24gZmlsZS4gV2UgbXVzdCBqdXN0
IHBhc3MgbG9ncyBmb3IgYWxsIGxldmVscyB0bwotICAgICMgQXBhY2hlTG9nSGFuZGxlci4KLSAg
ICBsb2dnZXIuc2V0TGV2ZWwobG9nZ2luZy5ERUJVRykKLSAgICBsb2dnZXIuYWRkSGFuZGxlcihB
cGFjaGVMb2dIYW5kbGVyKCkpCi0KLQotX2NvbmZpZ3VyZV9sb2dnaW5nKCkKLQotX0xPR0dFUiA9
IGxvZ2dpbmcuZ2V0TG9nZ2VyKF9fbmFtZV9fKQotCi0KLWRlZiBfcGFyc2Vfb3B0aW9uKG5hbWUs
IHZhbHVlLCBkZWZpbml0aW9uKToKLSAgICBpZiB2YWx1ZSBpcyBOb25lOgotICAgICAgICByZXR1
cm4gRmFsc2UKLQotICAgIG1lYW5pbmcgPSBkZWZpbml0aW9uLmdldCh2YWx1ZS5sb3dlcigpKQot
ICAgIGlmIG1lYW5pbmcgaXMgTm9uZToKLSAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCdJbnZhbGlk
IHZhbHVlIGZvciBQeXRob25PcHRpb24gJXM6ICVyJyAlCi0gICAgICAgICAgICAgICAgICAgICAg
ICAobmFtZSwgdmFsdWUpKQotICAgIHJldHVybiBtZWFuaW5nCi0KLQotZGVmIF9jcmVhdGVfZGlz
cGF0Y2hlcigpOgotICAgIF9MT0dHRVIuaW5mbygnSW5pdGlhbGl6aW5nIERpc3BhdGNoZXInKQot
Ci0gICAgb3B0aW9ucyA9IGFwYWNoZS5tYWluX3NlcnZlci5nZXRfb3B0aW9ucygpCi0KLSAgICBo
YW5kbGVyX3Jvb3QgPSBvcHRpb25zLmdldChfUFlPUFRfSEFORExFUl9ST09ULCBOb25lKQotICAg
IGlmIG5vdCBoYW5kbGVyX3Jvb3Q6Ci0gICAgICAgIHJhaXNlIEV4Y2VwdGlvbignUHl0aG9uT3B0
aW9uICVzIGlzIG5vdCBkZWZpbmVkJyAlIF9QWU9QVF9IQU5ETEVSX1JPT1QsCi0gICAgICAgICAg
ICAgICAgICAgICAgICBhcGFjaGUuQVBMT0dfRVJSKQotCi0gICAgaGFuZGxlcl9zY2FuID0gb3B0
aW9ucy5nZXQoX1BZT1BUX0hBTkRMRVJfU0NBTiwgaGFuZGxlcl9yb290KQotCi0gICAgYWxsb3df
aGFuZGxlcnNfb3V0c2lkZV9yb290ID0gX3BhcnNlX29wdGlvbigKLSAgICAgICAgX1BZT1BUX0FM
TE9XX0hBTkRMRVJTX09VVFNJREVfUk9PVCwKLSAgICAgICAgb3B0aW9ucy5nZXQoX1BZT1BUX0FM
TE9XX0hBTkRMRVJTX09VVFNJREVfUk9PVCksCi0gICAgICAgIF9QWU9QVF9BTExPV19IQU5ETEVS
U19PVVRTSURFX1JPT1RfREVGSU5JVElPTikKLQotICAgIGRpc3BhdGNoZXIgPSBkaXNwYXRjaC5E
aXNwYXRjaGVyKAotICAgICAgICBoYW5kbGVyX3Jvb3QsIGhhbmRsZXJfc2NhbiwgYWxsb3dfaGFu
ZGxlcnNfb3V0c2lkZV9yb290KQotCi0gICAgZm9yIHdhcm5pbmcgaW4gZGlzcGF0Y2hlci5zb3Vy
Y2Vfd2FybmluZ3MoKToKLSAgICAgICAgYXBhY2hlLmxvZ19lcnJvcigKLSAgICAgICAgICAgICdt
b2RfcHl3ZWJzb2NrZXQ6IFdhcm5pbmcgaW4gc291cmNlIGxvYWRpbmc6ICVzJyAlIHdhcm5pbmcs
Ci0gICAgICAgICAgICBhcGFjaGUuQVBMT0dfV0FSTklORykKLQotICAgIHJldHVybiBkaXNwYXRj
aGVyCi0KLQotIyBJbml0aWFsaXplCi1fZGlzcGF0Y2hlciA9IF9jcmVhdGVfZGlzcGF0Y2hlcigp
Ci0KLQotZGVmIGhlYWRlcnBhcnNlcmhhbmRsZXIocmVxdWVzdCk6Ci0gICAgIiIiSGFuZGxlIHJl
cXVlc3QuCi0KLSAgICBBcmdzOgotICAgICAgICByZXF1ZXN0OiBtb2RfcHl0aG9uIHJlcXVlc3Qu
Ci0KLSAgICBUaGlzIGZ1bmN0aW9uIGlzIG5hbWVkIGhlYWRlcnBhcnNlcmhhbmRsZXIgYmVjYXVz
ZSBpdCBpcyB0aGUgZGVmYXVsdAotICAgIG5hbWUgZm9yIGEgUHl0aG9uSGVhZGVyUGFyc2VySGFu
ZGxlci4KLSAgICAiIiIKLQotICAgIGhhbmRzaGFrZV9pc19kb25lID0gRmFsc2UKLSAgICB0cnk6
Ci0gICAgICAgICMgRmFsbGJhY2sgdG8gZGVmYXVsdCBodHRwIGhhbmRsZXIgZm9yIHJlcXVlc3Qg
cGF0aHMgZm9yIHdoaWNoCi0gICAgICAgICMgd2UgZG9uJ3QgaGF2ZSByZXF1ZXN0IGhhbmRsZXJz
LgotICAgICAgICBpZiBub3QgX2Rpc3BhdGNoZXIuZ2V0X2hhbmRsZXJfc3VpdGUocmVxdWVzdC51
cmkpOgotICAgICAgICAgICAgcmVxdWVzdC5sb2dfZXJyb3IoCi0gICAgICAgICAgICAgICAgJ21v
ZF9weXdlYnNvY2tldDogTm8gaGFuZGxlciBmb3IgcmVzb3VyY2U6ICVyJyAlIHJlcXVlc3QudXJp
LAotICAgICAgICAgICAgICAgIGFwYWNoZS5BUExPR19JTkZPKQotICAgICAgICAgICAgcmVxdWVz
dC5sb2dfZXJyb3IoCi0gICAgICAgICAgICAgICAgJ21vZF9weXdlYnNvY2tldDogRmFsbGJhY2sg
dG8gQXBhY2hlJywgYXBhY2hlLkFQTE9HX0lORk8pCi0gICAgICAgICAgICByZXR1cm4gYXBhY2hl
LkRFQ0xJTkVECi0gICAgZXhjZXB0IGRpc3BhdGNoLkRpc3BhdGNoRXhjZXB0aW9uLCBlOgotICAg
ICAgICByZXF1ZXN0LmxvZ19lcnJvcigKLSAgICAgICAgICAgICdtb2RfcHl3ZWJzb2NrZXQ6IERp
c3BhdGNoIGZhaWxlZCBmb3IgZXJyb3I6ICVzJyAlIGUsCi0gICAgICAgICAgICBhcGFjaGUuQVBM
T0dfSU5GTykKLSAgICAgICAgaWYgbm90IGhhbmRzaGFrZV9pc19kb25lOgotICAgICAgICAgICAg
cmV0dXJuIGUuc3RhdHVzCi0KLSAgICB0cnk6Ci0gICAgICAgIGFsbG93X2RyYWZ0NzUgPSBfcGFy
c2Vfb3B0aW9uKAotICAgICAgICAgICAgX1BZT1BUX0FMTE9XX0RSQUZUNzUsCi0gICAgICAgICAg
ICBhcGFjaGUubWFpbl9zZXJ2ZXIuZ2V0X29wdGlvbnMoKS5nZXQoX1BZT1BUX0FMTE9XX0RSQUZU
NzUpLAotICAgICAgICAgICAgX1BZT1BUX0FMTE9XX0RSQUZUNzVfREVGSU5JVElPTikKLQotICAg
ICAgICB0cnk6Ci0gICAgICAgICAgICBoYW5kc2hha2UuZG9faGFuZHNoYWtlKAotICAgICAgICAg
ICAgICAgIHJlcXVlc3QsIF9kaXNwYXRjaGVyLCBhbGxvd0RyYWZ0NzU9YWxsb3dfZHJhZnQ3NSkK
LSAgICAgICAgZXhjZXB0IGhhbmRzaGFrZS5WZXJzaW9uRXhjZXB0aW9uLCBlOgotICAgICAgICAg
ICAgcmVxdWVzdC5sb2dfZXJyb3IoCi0gICAgICAgICAgICAgICAgJ21vZF9weXdlYnNvY2tldDog
SGFuZHNoYWtlIGZhaWxlZCBmb3IgdmVyc2lvbiBlcnJvcjogJXMnICUgZSwKLSAgICAgICAgICAg
ICAgICBhcGFjaGUuQVBMT0dfSU5GTykKLSAgICAgICAgICAgIHJlcXVlc3QuZXJyX2hlYWRlcnNf
b3V0LmFkZChjb21tb24uU0VDX1dFQlNPQ0tFVF9WRVJTSU9OX0hFQURFUiwKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlLnN1cHBvcnRlZF92ZXJzaW9ucykKLSAgICAg
ICAgICAgIHJldHVybiBhcGFjaGUuSFRUUF9CQURfUkVRVUVTVAotICAgICAgICBleGNlcHQgaGFu
ZHNoYWtlLkhhbmRzaGFrZUV4Y2VwdGlvbiwgZToKLSAgICAgICAgICAgICMgSGFuZHNoYWtlIGZv
ciB3cy93c3MgZmFpbGVkLgotICAgICAgICAgICAgIyBTZW5kIGh0dHAgcmVzcG9uc2Ugd2l0aCBl
cnJvciBzdGF0dXMuCi0gICAgICAgICAgICByZXF1ZXN0LmxvZ19lcnJvcigKLSAgICAgICAgICAg
ICAgICAnbW9kX3B5d2Vic29ja2V0OiBIYW5kc2hha2UgZmFpbGVkIGZvciBlcnJvcjogJXMnICUg
ZSwKLSAgICAgICAgICAgICAgICBhcGFjaGUuQVBMT0dfSU5GTykKLSAgICAgICAgICAgIHJldHVy
biBlLnN0YXR1cwotCi0gICAgICAgIGhhbmRzaGFrZV9pc19kb25lID0gVHJ1ZQotICAgICAgICBy
ZXF1ZXN0Ll9kaXNwYXRjaGVyID0gX2Rpc3BhdGNoZXIKLSAgICAgICAgX2Rpc3BhdGNoZXIudHJh
bnNmZXJfZGF0YShyZXF1ZXN0KQotICAgIGV4Y2VwdCBoYW5kc2hha2UuQWJvcnRlZEJ5VXNlckV4
Y2VwdGlvbiwgZToKLSAgICAgICAgcmVxdWVzdC5sb2dfZXJyb3IoJ21vZF9weXdlYnNvY2tldDog
QWJvcnRlZDogJXMnICUgZSwgYXBhY2hlLkFQTE9HX0lORk8pCi0gICAgZXhjZXB0IEV4Y2VwdGlv
biwgZToKLSAgICAgICAgIyBEaXNwYXRjaEV4Y2VwdGlvbiBjYW4gYWxzbyBiZSB0aHJvd24gaWYg
c29tZXRoaW5nIGlzIHdyb25nIGluCi0gICAgICAgICMgcHl3ZWJzb2NrZXQgY29kZS4gSXQncyBj
YXVnaHQgaGVyZSwgdGhlbi4KLQotICAgICAgICByZXF1ZXN0LmxvZ19lcnJvcignbW9kX3B5d2Vi
c29ja2V0OiBFeGNlcHRpb24gb2NjdXJyZWQ6ICVzXG4lcycgJQotICAgICAgICAgICAgICAgICAg
ICAgICAgICAoZSwgdXRpbC5nZXRfc3RhY2tfdHJhY2UoKSksCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgIGFwYWNoZS5BUExPR19FUlIpCi0gICAgICAgICMgVW5rbm93biBleGNlcHRpb25zIGJl
Zm9yZSBoYW5kc2hha2UgbWVhbiBBcGFjaGUgbXVzdCBoYW5kbGUgaXRzCi0gICAgICAgICMgcmVx
dWVzdCB3aXRoIGFub3RoZXIgaGFuZGxlci4KLSAgICAgICAgaWYgbm90IGhhbmRzaGFrZV9pc19k
b25lOgotICAgICAgICAgICAgcmV0dXJuIGFwYWNoZS5ERUNMSU5FRAotICAgICMgU2V0IGFzc2Jh
Y2t3YXJkcyB0byBzdXBwcmVzcyByZXNwb25zZSBoZWFkZXIgZ2VuZXJhdGlvbiBieSBBcGFjaGUu
Ci0gICAgcmVxdWVzdC5hc3NiYWNrd2FyZHMgPSAxCi0gICAgcmV0dXJuIGFwYWNoZS5ET05FICAj
IFJldHVybiBET05FIHN1Y2ggdGhhdCBubyBvdGhlciBoYW5kbGVycyBhcmUgaW52b2tlZC4KLQot
Ci0jIHZpOnN0cz00IHN3PTQgZXQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3JjL21vZF9weXdlYnNvY2tl
dC9odHRwX2hlYWRlcl91dGlsLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9zcmMvbW9kX3B5d2Vic29ja2V0L2h0dHBfaGVh
ZGVyX3V0aWwucHkKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGI3NzQ2NTM5MzI4NWZm
MWJkNmJmOGQ5OTQwMWNjNjc0NDIxMjVlMGIuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy9weXdlYnNvY2tldC9zcmMvbW9kX3B5d2Vic29ja2V0L2h0dHBfaGVhZGVyX3V0
aWwucHkKKysrIC9kZXYvbnVsbApAQCAtMSwyNjMgKzAsMCBAQAotIyBDb3B5cmlnaHQgMjAxMSwg
R29vZ2xlIEluYy4KLSMgQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSMKLSMgUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0jIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucyBhcmUKLSMgbWV0OgotIwotIyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotIyBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0jICAgICAqIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKLSMg
Y29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lcgotIyBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlCi0jIGRpc3RyaWJ1dGlvbi4KLSMgICAgICogTmVpdGhlciB0
aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwotIyBjb250cmlidXRv
cnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJv
bQotIyB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNz
aW9uLgotIwotIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9M
REVSUyBBTkQgQ09OVFJJQlVUT1JTCi0jICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCi0jIExJTUlURUQgVE8sIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgotIyBBIFBB
UlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENP
UFlSSUdIVAotIyBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKLSMgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAotIyBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKLSMgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZCi0jIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSMgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0jIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0K
LQotIiIiVXRpbGl0aWVzIGZvciBwYXJzaW5nIGFuZCBmb3JtYXR0aW5nIGhlYWRlcnMgdGhhdCBm
b2xsb3cgdGhlIGdyYW1tYXIgZGVmaW5lZAotaW4gSFRUUCBSRkMgaHR0cDovL3d3dy5pZXRmLm9y
Zy9yZmMvcmZjMjYxNi50eHQuCi0iIiIKLQotCi1pbXBvcnQgdXJscGFyc2UKLQotCi1fU0VQQVJB
VE9SUyA9ICcoKTw+QCw7OlxcIi9bXT89e30gXHQnCi0KLQotZGVmIF9pc19jaGFyKGMpOgotICAg
ICIiIlJldHVybnMgdHJ1ZSBpZmYgYyBpcyBpbiBDSEFSIGFzIHNwZWNpZmllZCBpbiBIVFRQIFJG
Qy4iIiIKLQotICAgIHJldHVybiBvcmQoYykgPD0gMTI3Ci0KLQotZGVmIF9pc19jdGwoYyk6Ci0g
ICAgIiIiUmV0dXJucyB0cnVlIGlmZiBjIGlzIGluIENUTCBhcyBzcGVjaWZpZWQgaW4gSFRUUCBS
RkMuIiIiCi0KLSAgICByZXR1cm4gb3JkKGMpIDw9IDMxIG9yIG9yZChjKSA9PSAxMjcKLQotCi1j
bGFzcyBQYXJzaW5nU3RhdGUob2JqZWN0KToKLQotICAgIGRlZiBfX2luaXRfXyhzZWxmLCBkYXRh
KToKLSAgICAgICAgc2VsZi5kYXRhID0gZGF0YQotICAgICAgICBzZWxmLmhlYWQgPSAwCi0KLQot
ZGVmIHBlZWsoc3RhdGUsIHBvcz0wKToKLSAgICAiIiJQZWVrcyB0aGUgY2hhcmFjdGVyIGF0IHBv
cyBmcm9tIHRoZSBoZWFkIG9mIGRhdGEuIiIiCi0KLSAgICBpZiBzdGF0ZS5oZWFkICsgcG9zID49
IGxlbihzdGF0ZS5kYXRhKToKLSAgICAgICAgcmV0dXJuIE5vbmUKLQotICAgIHJldHVybiBzdGF0
ZS5kYXRhW3N0YXRlLmhlYWQgKyBwb3NdCi0KLQotZGVmIGNvbnN1bWUoc3RhdGUsIGFtb3VudD0x
KToKLSAgICAiIiJDb25zdW1lcyBzcGVjaWZpZWQgYW1vdW50IG9mIGJ5dGVzIGZyb20gdGhlIGhl
YWQgYW5kIHJldHVybnMgdGhlCi0gICAgY29uc3VtZWQgYnl0ZXMuIElmIHRoZXJlJ3Mgbm90IGVu
b3VnaCBieXRlcyB0byBjb25zdW1lLCByZXR1cm5zIE5vbmUuCi0gICAgIiIiCi0KLSAgICBpZiBz
dGF0ZS5oZWFkICsgYW1vdW50ID4gbGVuKHN0YXRlLmRhdGEpOgotICAgICAgICByZXR1cm4gTm9u
ZQotCi0gICAgcmVzdWx0ID0gc3RhdGUuZGF0YVtzdGF0ZS5oZWFkOnN0YXRlLmhlYWQgKyBhbW91
bnRdCi0gICAgc3RhdGUuaGVhZCA9IHN0YXRlLmhlYWQgKyBhbW91bnQKLSAgICByZXR1cm4gcmVz
dWx0Ci0KLQotZGVmIGNvbnN1bWVfc3RyaW5nKHN0YXRlLCBleHBlY3RlZCk6Ci0gICAgIiIiR2l2
ZW4gYSBwYXJzaW5nIHN0YXRlIGFuZCBhIGV4cGVjdGVkIHN0cmluZywgY29uc3VtZXMgdGhlIHN0
cmluZyBmcm9tCi0gICAgdGhlIGhlYWQuIFJldHVybnMgVHJ1ZSBpZiBjb25zdW1lZCBzdWNjZXNz
ZnVsbHkuIE90aGVyd2lzZSwgcmV0dXJucwotICAgIEZhbHNlLgotICAgICIiIgotCi0gICAgcG9z
ID0gMAotCi0gICAgZm9yIGMgaW4gZXhwZWN0ZWQ6Ci0gICAgICAgIGlmIGMgIT0gcGVlayhzdGF0
ZSwgcG9zKToKLSAgICAgICAgICAgIHJldHVybiBGYWxzZQotICAgICAgICBwb3MgKz0gMQotCi0g
ICAgY29uc3VtZShzdGF0ZSwgcG9zKQotICAgIHJldHVybiBUcnVlCi0KLQotZGVmIGNvbnN1bWVf
bHdzKHN0YXRlKToKLSAgICAiIiJDb25zdW1lcyBhIExXUyBmcm9tIHRoZSBoZWFkLiBSZXR1cm5z
IFRydWUgaWYgYW55IExXUyBpcyBjb25zdW1lZC4KLSAgICBPdGhlcndpc2UsIHJldHVybnMgRmFs
c2UuCi0KLSAgICBMV1MgPSBbQ1JMRl0gMSooIFNQIHwgSFQgKQotICAgICIiIgotCi0gICAgb3Jp
Z2luYWxfaGVhZCA9IHN0YXRlLmhlYWQKLQotICAgIGNvbnN1bWVfc3RyaW5nKHN0YXRlLCAnXHJc
bicpCi0KLSAgICBwb3MgPSAwCi0KLSAgICB3aGlsZSBUcnVlOgotICAgICAgICBjID0gcGVlayhz
dGF0ZSwgcG9zKQotICAgICAgICBpZiBjID09ICcgJyBvciBjID09ICdcdCc6Ci0gICAgICAgICAg
ICBwb3MgKz0gMQotICAgICAgICBlbHNlOgotICAgICAgICAgICAgaWYgcG9zID09IDA6Ci0gICAg
ICAgICAgICAgICAgc3RhdGUuaGVhZCA9IG9yaWdpbmFsX2hlYWQKLSAgICAgICAgICAgICAgICBy
ZXR1cm4gRmFsc2UKLSAgICAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAgICAgY29uc3VtZShz
dGF0ZSwgcG9zKQotICAgICAgICAgICAgICAgIHJldHVybiBUcnVlCi0KLQotZGVmIGNvbnN1bWVf
bHdzZXMoc3RhdGUpOgotICAgICIiIkNvbnN1bWVzICpMV1MgZnJvbSB0aGUgaGVhZC4iIiIKLQot
ICAgIHdoaWxlIGNvbnN1bWVfbHdzKHN0YXRlKToKLSAgICAgICAgcGFzcwotCi0KLWRlZiBjb25z
dW1lX3Rva2VuKHN0YXRlKToKLSAgICAiIiJDb25zdW1lcyBhIHRva2VuIGZyb20gdGhlIGhlYWQu
IFJldHVybnMgdGhlIHRva2VuIG9yIE5vbmUgaWYgbm8gdG9rZW4KLSAgICB3YXMgZm91bmQuCi0g
ICAgIiIiCi0KLSAgICBwb3MgPSAwCi0KLSAgICB3aGlsZSBUcnVlOgotICAgICAgICBjID0gcGVl
ayhzdGF0ZSwgcG9zKQotICAgICAgICBpZiBjIGlzIE5vbmUgb3IgYyBpbiBfU0VQQVJBVE9SUyBv
ciBfaXNfY3RsKGMpIG9yIG5vdCBfaXNfY2hhcihjKToKLSAgICAgICAgICAgIGlmIHBvcyA9PSAw
OgotICAgICAgICAgICAgICAgIHJldHVybiBOb25lCi0KLSAgICAgICAgICAgIHJldHVybiBjb25z
dW1lKHN0YXRlLCBwb3MpCi0gICAgICAgIGVsc2U6Ci0gICAgICAgICAgICBwb3MgKz0gMQotCi0K
LWRlZiBjb25zdW1lX3Rva2VuX29yX3F1b3RlZF9zdHJpbmcoc3RhdGUpOgotICAgICIiIkNvbnN1
bWVzIGEgdG9rZW4gb3IgYSBxdW90ZWQtc3RyaW5nLCBhbmQgcmV0dXJucyB0aGUgdG9rZW4gb3Ig
dW5xdW90ZWQKLSAgICBzdHJpbmcuIElmIG5vIHRva2VuIG9yIHF1b3RlZC1zdHJpbmcgd2FzIGZv
dW5kLCByZXR1cm5zIE5vbmUuCi0gICAgIiIiCi0KLSAgICBvcmlnaW5hbF9oZWFkID0gc3RhdGUu
aGVhZAotCi0gICAgaWYgbm90IGNvbnN1bWVfc3RyaW5nKHN0YXRlLCAnIicpOgotICAgICAgICBy
ZXR1cm4gY29uc3VtZV90b2tlbihzdGF0ZSkKLQotICAgIHJlc3VsdCA9IFtdCi0KLSAgICBleHBl
Y3RfcXVvdGVkX3BhaXIgPSBGYWxzZQotCi0gICAgd2hpbGUgVHJ1ZToKLSAgICAgICAgaWYgbm90
IGV4cGVjdF9xdW90ZWRfcGFpciBhbmQgY29uc3VtZV9sd3Moc3RhdGUpOgotICAgICAgICAgICAg
cmVzdWx0LmFwcGVuZCgnICcpCi0gICAgICAgICAgICBjb250aW51ZQotCi0gICAgICAgIGMgPSBj
b25zdW1lKHN0YXRlKQotICAgICAgICBpZiBjIGlzIE5vbmU6Ci0gICAgICAgICAgICAjIHF1b3Rl
ZC1zdHJpbmcgaXMgbm90IGVuY2xvc2VkIHdpdGggZG91YmxlIHF1b3RhdGlvbgotICAgICAgICAg
ICAgc3RhdGUuaGVhZCA9IG9yaWdpbmFsX2hlYWQKLSAgICAgICAgICAgIHJldHVybiBOb25lCi0g
ICAgICAgIGVsaWYgZXhwZWN0X3F1b3RlZF9wYWlyOgotICAgICAgICAgICAgZXhwZWN0X3F1b3Rl
ZF9wYWlyID0gRmFsc2UKLSAgICAgICAgICAgIGlmIF9pc19jaGFyKGMpOgotICAgICAgICAgICAg
ICAgIHJlc3VsdC5hcHBlbmQoYykKLSAgICAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAgICAg
IyBOb24gQ0hBUiBjaGFyYWN0ZXIgZm91bmQgaW4gcXVvdGVkLXBhaXIKLSAgICAgICAgICAgICAg
ICBzdGF0ZS5oZWFkID0gb3JpZ2luYWxfaGVhZAotICAgICAgICAgICAgICAgIHJldHVybiBOb25l
Ci0gICAgICAgIGVsaWYgYyA9PSAnXFwnOgotICAgICAgICAgICAgZXhwZWN0X3F1b3RlZF9wYWly
ID0gVHJ1ZQotICAgICAgICBlbGlmIGMgPT0gJyInOgotICAgICAgICAgICAgcmV0dXJuICcnLmpv
aW4ocmVzdWx0KQotICAgICAgICBlbGlmIF9pc19jdGwoYyk6Ci0gICAgICAgICAgICAjIEludmFs
aWQgY2hhcmFjdGVyICVyIGZvdW5kIGluIHFkdGV4dAotICAgICAgICAgICAgc3RhdGUuaGVhZCA9
IG9yaWdpbmFsX2hlYWQKLSAgICAgICAgICAgIHJldHVybiBOb25lCi0gICAgICAgIGVsc2U6Ci0g
ICAgICAgICAgICByZXN1bHQuYXBwZW5kKGMpCi0KLQotZGVmIHF1b3RlX2lmX25lY2Vzc2FyeShz
KToKLSAgICAiIiJRdW90ZXMgYXJiaXRyYXJ5IHN0cmluZyBpbnRvIHF1b3RlZC1zdHJpbmcuIiIi
Ci0KLSAgICBxdW90ZSA9IEZhbHNlCi0gICAgaWYgcyA9PSAnJzoKLSAgICAgICAgcmV0dXJuICci
IicKLQotICAgIHJlc3VsdCA9IFtdCi0gICAgZm9yIGMgaW4gczoKLSAgICAgICAgaWYgYyA9PSAn
Iicgb3IgYyBpbiBfU0VQQVJBVE9SUyBvciBfaXNfY3RsKGMpIG9yIG5vdCBfaXNfY2hhcihjKToK
LSAgICAgICAgICAgIHF1b3RlID0gVHJ1ZQotCi0gICAgICAgIGlmIGMgPT0gJyInIG9yIF9pc19j
dGwoYyk6Ci0gICAgICAgICAgICByZXN1bHQuYXBwZW5kKCdcXCcgKyBjKQotICAgICAgICBlbHNl
OgotICAgICAgICAgICAgcmVzdWx0LmFwcGVuZChjKQotCi0gICAgaWYgcXVvdGU6Ci0gICAgICAg
IHJldHVybiAnIicgKyAnJy5qb2luKHJlc3VsdCkgKyAnIicKLSAgICBlbHNlOgotICAgICAgICBy
ZXR1cm4gJycuam9pbihyZXN1bHQpCi0KLQotZGVmIHBhcnNlX3VyaSh1cmkpOgotICAgICIiIlBh
cnNlIGFic29sdXRlIFVSSSB0aGVuIHJldHVybiBob3N0LCBwb3J0IGFuZCByZXNvdXJjZS4iIiIK
LQotICAgIHBhcnNlZCA9IHVybHBhcnNlLnVybHNwbGl0KHVyaSkKLSAgICBpZiBwYXJzZWQuc2No
ZW1lICE9ICd3c3MnIGFuZCBwYXJzZWQuc2NoZW1lICE9ICd3cyc6Ci0gICAgICAgICMgfHVyaXwg
bXVzdCBiZSBhIHJlbGF0aXZlIFVSSS4KLSAgICAgICAgIyBUT0RPKHRveW9zaGltKTogU2hvdWxk
IHZhbGlkYXRlIHx1cml8LgotICAgICAgICByZXR1cm4gTm9uZSwgTm9uZSwgdXJpCi0KLSAgICBp
ZiBwYXJzZWQuaG9zdG5hbWUgaXMgTm9uZToKLSAgICAgICAgcmV0dXJuIE5vbmUsIE5vbmUsIE5v
bmUKLQotICAgIHBvcnQgPSBOb25lCi0gICAgdHJ5OgotICAgICAgICBwb3J0ID0gcGFyc2VkLnBv
cnQKLSAgICBleGNlcHQgVmFsdWVFcnJvciwgZToKLSAgICAgICAgIyBwb3J0IHByb3BlcnR5IGNh
dXNlIFZhbHVlRXJyb3Igb24gaW52YWxpZCBudWxsIHBvcnQgZGVzY3JpcHRpb24gbGlrZQotICAg
ICAgICAjICd3czovL2hvc3Q6L3BhdGgnLgotICAgICAgICByZXR1cm4gTm9uZSwgTm9uZSwgTm9u
ZQotCi0gICAgaWYgcG9ydCBpcyBOb25lOgotICAgICAgICBpZiBwYXJzZWQuc2NoZW1lID09ICd3
cyc6Ci0gICAgICAgICAgICBwb3J0ID0gODAKLSAgICAgICAgZWxzZToKLSAgICAgICAgICAgIHBv
cnQgPSA0NDMKLQotICAgIHBhdGggPSBwYXJzZWQucGF0aAotICAgIGlmIG5vdCBwYXRoOgotICAg
ICAgICBwYXRoICs9ICcvJwotICAgIGlmIHBhcnNlZC5xdWVyeToKLSAgICAgICAgcGF0aCArPSAn
PycgKyBwYXJzZWQucXVlcnkKLSAgICBpZiBwYXJzZWQuZnJhZ21lbnQ6Ci0gICAgICAgIHBhdGgg
Kz0gJyMnICsgcGFyc2VkLmZyYWdtZW50Ci0KLSAgICByZXR1cm4gcGFyc2VkLmhvc3RuYW1lLCBw
b3J0LCBwYXRoCi0KLQotdHJ5OgotICAgIHVybHBhcnNlLnVzZXNfbmV0bG9jLmluZGV4KCd3cycp
Ci1leGNlcHQgVmFsdWVFcnJvciwgZToKLSAgICAjIHVybHBhcnNlIGluIFB5dGhvbjIuNS4xIGRv
ZXNuJ3QgaGF2ZSAnd3MnIGFuZCAnd3NzJyBlbnRyaWVzLgotICAgIHVybHBhcnNlLnVzZXNfbmV0
bG9jLmFwcGVuZCgnd3MnKQotICAgIHVybHBhcnNlLnVzZXNfbmV0bG9jLmFwcGVuZCgnd3NzJykK
LQotCi0jIHZpOnN0cz00IHN3PTQgZXQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3JjL21vZF9weXdlYnNv
Y2tldC9tZW1vcml6aW5nZmlsZS5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3JjL21vZF9weXdlYnNvY2tldC9tZW1vcml6
aW5nZmlsZS5weQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNGQ0Y2Q5NTg1OTVhYmRm
YzBjNDBkNDMwODQ4ODcwMGI3YjkzYzZiNy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3B5d2Vic29ja2V0L3NyYy9tb2RfcHl3ZWJzb2NrZXQvbWVtb3JpemluZ2ZpbGUu
cHkKKysrIC9kZXYvbnVsbApAQCAtMSw5OSArMCwwIEBACi0jIS91c3IvYmluL2VudiBweXRob24K
LSMKLSMgQ29weXJpZ2h0IDIwMTEsIEdvb2dsZSBJbmMuCi0jIEFsbCByaWdodHMgcmVzZXJ2ZWQu
Ci0jCi0jIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAotIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCi0jIG1ldDoKLSMKLSMgICAgICogUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKLSMgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgotIyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlCi0jIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKLSMgaW4gdGhlIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQotIyBkaXN0cmlidXRp
b24uCi0jICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1l
cyBvZiBpdHMKLSMgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90
ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KLSMgdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmlj
IHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLSMKLSMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwotIyAiQVMgSVMiIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAot
IyBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IKLSMgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKLSMgT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCi0jIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QK
LSMgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsCi0jIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQotIyBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0jIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRQotIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgotCi0KLSIiIk1lbW9yaXppbmcgZmlsZS4KLQotQSBtZW1vcml6
aW5nIGZpbGUgd3JhcHMgYSBmaWxlIGFuZCBtZW1vcml6ZXMgbGluZXMgcmVhZCBieSByZWFkbGlu
ZS4KLSIiIgotCi0KLWltcG9ydCBzeXMKLQotCi1jbGFzcyBNZW1vcml6aW5nRmlsZShvYmplY3Qp
OgotICAgICIiIk1lbW9yaXppbmdGaWxlIHdyYXBzIGEgZmlsZSBhbmQgbWVtb3JpemVzIGxpbmVz
IHJlYWQgYnkgcmVhZGxpbmUuCi0KLSAgICBOb3RlIHRoYXQgZGF0YSByZWFkIGJ5IG90aGVyIG1l
dGhvZHMgYXJlIG5vdCBtZW1vcml6ZWQuIFRoaXMgYmVoYXZpb3IKLSAgICBpcyBnb29kIGVub3Vn
aCBmb3IgbWVtb3JpemluZyBsaW5lcyBTaW1wbGVIVFRQU2VydmVyIHJlYWRzIGJlZm9yZQotICAg
IHRoZSBjb250cm9sIHJlYWNoZXMgV2ViU29ja2V0UmVxdWVzdEhhbmRsZXIuCi0gICAgIiIiCi0K
LSAgICBkZWYgX19pbml0X18oc2VsZiwgZmlsZV8sIG1heF9tZW1vcml6ZWRfbGluZXM9c3lzLm1h
eGludCk6Ci0gICAgICAgICIiIkNvbnN0cnVjdCBhbiBpbnN0YW5jZS4KLQotICAgICAgICBBcmdz
OgotICAgICAgICAgICAgZmlsZV86IHRoZSBmaWxlIG9iamVjdCB0byB3cmFwLgotICAgICAgICAg
ICAgbWF4X21lbW9yaXplZF9saW5lczogdGhlIG1heGltdW0gbnVtYmVyIG9mIGxpbmVzIHRvIG1l
bW9yaXplLgotICAgICAgICAgICAgICAgIE9ubHkgdGhlIGZpcnN0IG1heF9tZW1vcml6ZWRfbGlu
ZXMgYXJlIG1lbW9yaXplZC4KLSAgICAgICAgICAgICAgICBEZWZhdWx0OiBzeXMubWF4aW50Lgot
ICAgICAgICAiIiIKLQotICAgICAgICBzZWxmLl9maWxlID0gZmlsZV8KLSAgICAgICAgc2VsZi5f
bWVtb3JpemVkX2xpbmVzID0gW10KLSAgICAgICAgc2VsZi5fbWF4X21lbW9yaXplZF9saW5lcyA9
IG1heF9tZW1vcml6ZWRfbGluZXMKLSAgICAgICAgc2VsZi5fYnVmZmVyZWQgPSBGYWxzZQotICAg
ICAgICBzZWxmLl9idWZmZXJlZF9saW5lID0gTm9uZQotCi0gICAgZGVmIF9fZ2V0YXR0cmlidXRl
X18oc2VsZiwgbmFtZSk6Ci0gICAgICAgIGlmIG5hbWUgaW4gKCdfZmlsZScsICdfbWVtb3JpemVk
X2xpbmVzJywgJ19tYXhfbWVtb3JpemVkX2xpbmVzJywKLSAgICAgICAgICAgICAgICAgICAgJ19i
dWZmZXJlZCcsICdfYnVmZmVyZWRfbGluZScsICdyZWFkbGluZScsCi0gICAgICAgICAgICAgICAg
ICAgICdnZXRfbWVtb3JpemVkX2xpbmVzJyk6Ci0gICAgICAgICAgICByZXR1cm4gb2JqZWN0Ll9f
Z2V0YXR0cmlidXRlX18oc2VsZiwgbmFtZSkKLSAgICAgICAgcmV0dXJuIHNlbGYuX2ZpbGUuX19n
ZXRhdHRyaWJ1dGVfXyhuYW1lKQotCi0gICAgZGVmIHJlYWRsaW5lKHNlbGYsIHNpemU9LTEpOgot
ICAgICAgICAiIiJPdmVycmlkZSBmaWxlLnJlYWRsaW5lIGFuZCBtZW1vcml6ZSB0aGUgbGluZSBy
ZWFkLgotCi0gICAgICAgIE5vdGUgdGhhdCBldmVuIGlmIHNpemUgaXMgc3BlY2lmaWVkIGFuZCBz
bWFsbGVyIHRoYW4gYWN0dWFsIHNpemUsCi0gICAgICAgIHRoZSB3aG9sZSBsaW5lIHdpbGwgYmUg
cmVhZCBvdXQgZnJvbSB1bmRlcmx5aW5nIGZpbGUgb2JqZWN0IGJ5Ci0gICAgICAgIHN1YnNlcXVl
bnQgcmVhZGxpbmUgY2FsbHMuCi0gICAgICAgICIiIgotCi0gICAgICAgIGlmIHNlbGYuX2J1ZmZl
cmVkOgotICAgICAgICAgICAgbGluZSA9IHNlbGYuX2J1ZmZlcmVkX2xpbmUKLSAgICAgICAgICAg
IHNlbGYuX2J1ZmZlcmVkID0gRmFsc2UKLSAgICAgICAgZWxzZToKLSAgICAgICAgICAgIGxpbmUg
PSBzZWxmLl9maWxlLnJlYWRsaW5lKCkKLSAgICAgICAgICAgIGlmIGxpbmUgYW5kIGxlbihzZWxm
Ll9tZW1vcml6ZWRfbGluZXMpIDwgc2VsZi5fbWF4X21lbW9yaXplZF9saW5lczoKLSAgICAgICAg
ICAgICAgICBzZWxmLl9tZW1vcml6ZWRfbGluZXMuYXBwZW5kKGxpbmUpCi0gICAgICAgIGlmIHNp
emUgPj0gMCBhbmQgc2l6ZSA8IGxlbihsaW5lKToKLSAgICAgICAgICAgIHNlbGYuX2J1ZmZlcmVk
ID0gVHJ1ZQotICAgICAgICAgICAgc2VsZi5fYnVmZmVyZWRfbGluZSA9IGxpbmVbc2l6ZTpdCi0g
ICAgICAgICAgICByZXR1cm4gbGluZVs6c2l6ZV0KLSAgICAgICAgcmV0dXJuIGxpbmUKLQotICAg
IGRlZiBnZXRfbWVtb3JpemVkX2xpbmVzKHNlbGYpOgotICAgICAgICAiIiJHZXQgbGluZXMgbWVt
b3JpemVkIHNvIGZhci4iIiIKLSAgICAgICAgcmV0dXJuIHNlbGYuX21lbW9yaXplZF9saW5lcwot
Ci0KLSMgdmk6c3RzPTQgc3c9NCBldApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9zcmMvbW9kX3B5d2Vic29j
a2V0L21zZ3V0aWwucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3B5d2Vic29ja2V0L3NyYy9tb2RfcHl3ZWJzb2NrZXQvbXNndXRpbC5weQpkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNGMxYTAxMTRiNGJjNDE4YjIwZTZhMTU1NjU5ZTky
NTdhYWI3MzZlZi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0g
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vi
c29ja2V0L3NyYy9tb2RfcHl3ZWJzb2NrZXQvbXNndXRpbC5weQorKysgL2Rldi9udWxsCkBAIC0x
LDIxOSArMCwwIEBACi0jIENvcHlyaWdodCAyMDExLCBHb29nbGUgSW5jLgotIyBBbGwgcmlnaHRz
IHJlc2VydmVkLgotIwotIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQotIyBtZXQ6Ci0jCi0j
ICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0Ci0jIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KLSMgICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQotIyBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCi0jIGluIHRoZSBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKLSMg
ZGlzdHJpYnV0aW9uLgotIyAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5v
ciB0aGUgbmFtZXMgb2YgaXRzCi0jIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNl
IG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCi0jIHRoaXMgc29mdHdhcmUgd2l0aG91
dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0jCi0jIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKLSMg
IkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QKLSMgTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCi0jIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCi0jIE9XTkVSIE9SIENPTlRS
SUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAot
IyBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UCi0jIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAotIyBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKLSMgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAot
IyAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UKLSMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLQotCi0iIiJNZXNzYWdlIHJlbGF0ZWQgdXRp
bGl0aWVzLgotCi1Ob3RlOiByZXF1ZXN0LmNvbm5lY3Rpb24ud3JpdGUvcmVhZCBhcmUgdXNlZCBp
biB0aGlzIG1vZHVsZSwgZXZlbiB0aG91Z2gKLW1vZF9weXRob24gZG9jdW1lbnQgc2F5cyB0aGF0
IHRoZXkgc2hvdWxkIGJlIHVzZWQgb25seSBpbiBjb25uZWN0aW9uCi1oYW5kbGVycy4gVW5mb3J0
dW5hdGVseSwgd2UgaGF2ZSBubyBvdGhlciBvcHRpb25zLiBGb3IgZXhhbXBsZSwKLXJlcXVlc3Qu
d3JpdGUvcmVhZCBhcmUgbm90IHN1aXRhYmxlIGJlY2F1c2UgdGhleSBkb24ndCBhbGxvdyBkaXJl
Y3QgcmF3Ci1ieXRlcyB3cml0aW5nL3JlYWRpbmcuCi0iIiIKLQotCi1pbXBvcnQgUXVldWUKLWlt
cG9ydCB0aHJlYWRpbmcKLQotCi0jIEV4cG9ydCBFeGNlcHRpb24gc3ltYm9scyBmcm9tIG1zZ3V0
aWwgZm9yIGJhY2t3YXJkIGNvbXBhdGliaWxpdHkKLWZyb20gbW9kX3B5d2Vic29ja2V0Ll9zdHJl
YW1fYmFzZSBpbXBvcnQgQ29ubmVjdGlvblRlcm1pbmF0ZWRFeGNlcHRpb24KLWZyb20gbW9kX3B5
d2Vic29ja2V0Ll9zdHJlYW1fYmFzZSBpbXBvcnQgSW52YWxpZEZyYW1lRXhjZXB0aW9uCi1mcm9t
IG1vZF9weXdlYnNvY2tldC5fc3RyZWFtX2Jhc2UgaW1wb3J0IEJhZE9wZXJhdGlvbkV4Y2VwdGlv
bgotZnJvbSBtb2RfcHl3ZWJzb2NrZXQuX3N0cmVhbV9iYXNlIGltcG9ydCBVbnN1cHBvcnRlZEZy
YW1lRXhjZXB0aW9uCi0KLQotIyBBbiBBUEkgZm9yIGhhbmRsZXIgdG8gc2VuZC9yZWNlaXZlIFdl
YlNvY2tldCBtZXNzYWdlcy4KLWRlZiBjbG9zZV9jb25uZWN0aW9uKHJlcXVlc3QpOgotICAgICIi
IkNsb3NlIGNvbm5lY3Rpb24uCi0KLSAgICBBcmdzOgotICAgICAgICByZXF1ZXN0OiBtb2RfcHl0
aG9uIHJlcXVlc3QuCi0gICAgIiIiCi0gICAgcmVxdWVzdC53c19zdHJlYW0uY2xvc2VfY29ubmVj
dGlvbigpCi0KLQotZGVmIHNlbmRfbWVzc2FnZShyZXF1ZXN0LCBwYXlsb2FkX2RhdGEsIGVuZD1U
cnVlLCBiaW5hcnk9RmFsc2UpOgotICAgICIiIlNlbmQgYSBtZXNzYWdlIChvciBwYXJ0IG9mIGEg
bWVzc2FnZSkuCi0KLSAgICBBcmdzOgotICAgICAgICByZXF1ZXN0OiBtb2RfcHl0aG9uIHJlcXVl
c3QuCi0gICAgICAgIHBheWxvYWRfZGF0YTogdW5pY29kZSB0ZXh0IG9yIHN0ciBiaW5hcnkgdG8g
c2VuZC4KLSAgICAgICAgZW5kOiBUcnVlIHRvIHRlcm1pbmF0ZSBhIG1lc3NhZ2UuCi0gICAgICAg
ICAgICAgRmFsc2UgdG8gc2VuZCBwYXlsb2FkX2RhdGEgYXMgcGFydCBvZiBhIG1lc3NhZ2UgdGhh
dCBpcyB0byBiZQotICAgICAgICAgICAgIHRlcm1pbmF0ZWQgYnkgbmV4dCBvciBsYXRlciBzZW5k
X21lc3NhZ2UgY2FsbCB3aXRoIGVuZD1UcnVlLgotICAgICAgICBiaW5hcnk6IHNlbmQgcGF5bG9h
ZF9kYXRhIGFzIGJpbmFyeSBmcmFtZShzKS4KLSAgICBSYWlzZXM6Ci0gICAgICAgIEJhZE9wZXJh
dGlvbkV4Y2VwdGlvbjogd2hlbiBzZXJ2ZXIgYWxyZWFkeSB0ZXJtaW5hdGVkLgotICAgICIiIgot
ICAgIHJlcXVlc3Qud3Nfc3RyZWFtLnNlbmRfbWVzc2FnZShwYXlsb2FkX2RhdGEsIGVuZCwgYmlu
YXJ5KQotCi0KLWRlZiByZWNlaXZlX21lc3NhZ2UocmVxdWVzdCk6Ci0gICAgIiIiUmVjZWl2ZSBh
IFdlYlNvY2tldCBmcmFtZSBhbmQgcmV0dXJuIGl0cyBwYXlsb2FkIGFzIGEgdGV4dCBpbgotICAg
IHVuaWNvZGUgb3IgYSBiaW5hcnkgaW4gc3RyLgotCi0gICAgQXJnczoKLSAgICAgICAgcmVxdWVz
dDogbW9kX3B5dGhvbiByZXF1ZXN0LgotICAgIFJhaXNlczoKLSAgICAgICAgSW52YWxpZEZyYW1l
RXhjZXB0aW9uOiAgICAgd2hlbiBjbGllbnQgc2VuZCBpbnZhbGlkIGZyYW1lLgotICAgICAgICBV
bnN1cHBvcnRlZEZyYW1lRXhjZXB0aW9uOiB3aGVuIGNsaWVudCBzZW5kIHVuc3VwcG9ydGVkIGZy
YW1lIGUuZy4gc29tZQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvZiByZXNl
cnZlZCBiaXQgaXMgc2V0IGJ1dCBubyBleHRlbnNpb24gY2FuCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHJlY29nbml6ZSBpdC4KLSAgICAgICAgSW52YWxpZFVURjhFeGNlcHRp
b246ICAgICAgd2hlbiBjbGllbnQgc2VuZCBhIHRleHQgZnJhbWUgY29udGFpbmluZyBhbnkKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW52YWxpZCBVVEYtOCBzdHJpbmcuCi0g
ICAgICAgIENvbm5lY3Rpb25UZXJtaW5hdGVkRXhjZXB0aW9uOiB3aGVuIHRoZSBjb25uZWN0aW9u
IGlzIGNsb3NlZAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bmV4cGVjdGVk
bHkuCi0gICAgICAgIEJhZE9wZXJhdGlvbkV4Y2VwdGlvbjogICAgIHdoZW4gY2xpZW50IGFscmVh
ZHkgdGVybWluYXRlZC4KLSAgICAiIiIKLSAgICByZXR1cm4gcmVxdWVzdC53c19zdHJlYW0ucmVj
ZWl2ZV9tZXNzYWdlKCkKLQotCi1kZWYgc2VuZF9waW5nKHJlcXVlc3QsIGJvZHk9JycpOgotICAg
IHJlcXVlc3Qud3Nfc3RyZWFtLnNlbmRfcGluZyhib2R5KQotCi0KLWNsYXNzIE1lc3NhZ2VSZWNl
aXZlcih0aHJlYWRpbmcuVGhyZWFkKToKLSAgICAiIiJUaGlzIGNsYXNzIHJlY2VpdmVzIG1lc3Nh
Z2VzIGZyb20gdGhlIGNsaWVudC4KLQotICAgIFRoaXMgY2xhc3MgcHJvdmlkZXMgdGhyZWUgd2F5
cyB0byByZWNlaXZlIG1lc3NhZ2VzOiBibG9ja2luZywKLSAgICBub24tYmxvY2tpbmcsIGFuZCB2
aWEgY2FsbGJhY2suIENhbGxiYWNrIGhhcyB0aGUgaGlnaGVzdCBwcmVjZWRlbmNlLgotCi0gICAg
Tm90ZTogVGhpcyBjbGFzcyBzaG91bGQgbm90IGJlIHVzZWQgd2l0aCB0aGUgc3RhbmRhbG9uZSBz
ZXJ2ZXIgZm9yIHdzcwotICAgIGJlY2F1c2UgcHlPcGVuU1NMIHVzZWQgYnkgdGhlIHNlcnZlciBy
YWlzZXMgYSBmYXRhbCBlcnJvciBpZiB0aGUgc29ja2V0Ci0gICAgaXMgYWNjZXNzZWQgZnJvbSBt
dWx0aXBsZSB0aHJlYWRzLgotICAgICIiIgotCi0gICAgZGVmIF9faW5pdF9fKHNlbGYsIHJlcXVl
c3QsIG9ubWVzc2FnZT1Ob25lKToKLSAgICAgICAgIiIiQ29uc3RydWN0IGFuIGluc3RhbmNlLgot
Ci0gICAgICAgIEFyZ3M6Ci0gICAgICAgICAgICByZXF1ZXN0OiBtb2RfcHl0aG9uIHJlcXVlc3Qu
Ci0gICAgICAgICAgICBvbm1lc3NhZ2U6IGEgZnVuY3Rpb24gdG8gYmUgY2FsbGVkIHdoZW4gYSBt
ZXNzYWdlIGlzIHJlY2VpdmVkLgotICAgICAgICAgICAgICAgICAgICAgICBNYXkgYmUgTm9uZS4g
SWYgbm90IE5vbmUsIHRoZSBmdW5jdGlvbiBpcyBjYWxsZWQgb24KLSAgICAgICAgICAgICAgICAg
ICAgICAgYW5vdGhlciB0aHJlYWQuIEluIHRoYXQgY2FzZSwgTWVzc2FnZVJlY2VpdmVyLnJlY2Vp
dmUKLSAgICAgICAgICAgICAgICAgICAgICAgYW5kIE1lc3NhZ2VSZWNlaXZlci5yZWNlaXZlX25v
d2FpdCBhcmUgdXNlbGVzcwotICAgICAgICAgICAgICAgICAgICAgICBiZWNhdXNlIHRoZXkgd2ls
bCBuZXZlciByZXR1cm4gYW55IG1lc3NhZ2VzLgotICAgICAgICAiIiIKLQotICAgICAgICB0aHJl
YWRpbmcuVGhyZWFkLl9faW5pdF9fKHNlbGYpCi0gICAgICAgIHNlbGYuX3JlcXVlc3QgPSByZXF1
ZXN0Ci0gICAgICAgIHNlbGYuX3F1ZXVlID0gUXVldWUuUXVldWUoKQotICAgICAgICBzZWxmLl9v
bm1lc3NhZ2UgPSBvbm1lc3NhZ2UKLSAgICAgICAgc2VsZi5fc3RvcF9yZXF1ZXN0ZWQgPSBGYWxz
ZQotICAgICAgICBzZWxmLnNldERhZW1vbihUcnVlKQotICAgICAgICBzZWxmLnN0YXJ0KCkKLQot
ICAgIGRlZiBydW4oc2VsZik6Ci0gICAgICAgIHRyeToKLSAgICAgICAgICAgIHdoaWxlIG5vdCBz
ZWxmLl9zdG9wX3JlcXVlc3RlZDoKLSAgICAgICAgICAgICAgICBtZXNzYWdlID0gcmVjZWl2ZV9t
ZXNzYWdlKHNlbGYuX3JlcXVlc3QpCi0gICAgICAgICAgICAgICAgaWYgc2VsZi5fb25tZXNzYWdl
OgotICAgICAgICAgICAgICAgICAgICBzZWxmLl9vbm1lc3NhZ2UobWVzc2FnZSkKLSAgICAgICAg
ICAgICAgICBlbHNlOgotICAgICAgICAgICAgICAgICAgICBzZWxmLl9xdWV1ZS5wdXQobWVzc2Fn
ZSkKLSAgICAgICAgZmluYWxseToKLSAgICAgICAgICAgIGNsb3NlX2Nvbm5lY3Rpb24oc2VsZi5f
cmVxdWVzdCkKLQotICAgIGRlZiByZWNlaXZlKHNlbGYpOgotICAgICAgICAiIiIgUmVjZWl2ZSBh
IG1lc3NhZ2UgZnJvbSB0aGUgY2hhbm5lbCwgYmxvY2tpbmcuCi0KLSAgICAgICAgUmV0dXJuczoK
LSAgICAgICAgICAgIG1lc3NhZ2UgYXMgYSB1bmljb2RlIHN0cmluZy4KLSAgICAgICAgIiIiCi0g
ICAgICAgIHJldHVybiBzZWxmLl9xdWV1ZS5nZXQoKQotCi0gICAgZGVmIHJlY2VpdmVfbm93YWl0
KHNlbGYpOgotICAgICAgICAiIiIgUmVjZWl2ZSBhIG1lc3NhZ2UgZnJvbSB0aGUgY2hhbm5lbCwg
bm9uLWJsb2NraW5nLgotCi0gICAgICAgIFJldHVybnM6Ci0gICAgICAgICAgICBtZXNzYWdlIGFz
IGEgdW5pY29kZSBzdHJpbmcgaWYgYXZhaWxhYmxlLiBOb25lIG90aGVyd2lzZS4KLSAgICAgICAg
IiIiCi0gICAgICAgIHRyeToKLSAgICAgICAgICAgIG1lc3NhZ2UgPSBzZWxmLl9xdWV1ZS5nZXRf
bm93YWl0KCkKLSAgICAgICAgZXhjZXB0IFF1ZXVlLkVtcHR5OgotICAgICAgICAgICAgbWVzc2Fn
ZSA9IE5vbmUKLSAgICAgICAgcmV0dXJuIG1lc3NhZ2UKLQotICAgIGRlZiBzdG9wKHNlbGYpOgot
ICAgICAgICAiIiJSZXF1ZXN0IHRvIHN0b3AgdGhpcyBpbnN0YW5jZS4KLQotICAgICAgICBUaGUg
aW5zdGFuY2Ugd2lsbCBiZSBzdG9wcGVkIGFmdGVyIHJlY2VpdmluZyB0aGUgbmV4dCBtZXNzYWdl
LgotICAgICAgICBUaGlzIG1ldGhvZCBtYXkgbm90IGJlIHZlcnkgdXNlZnVsLCBidXQgdGhlcmUg
aXMgbm8gY2xlYW4gd2F5Ci0gICAgICAgIGluIFB5dGhvbiB0byBmb3JjZWZ1bGx5IHN0b3AgYSBy
dW5uaW5nIHRocmVhZC4KLSAgICAgICAgIiIiCi0gICAgICAgIHNlbGYuX3N0b3BfcmVxdWVzdGVk
ID0gVHJ1ZQotCi0KLWNsYXNzIE1lc3NhZ2VTZW5kZXIodGhyZWFkaW5nLlRocmVhZCk6Ci0gICAg
IiIiVGhpcyBjbGFzcyBzZW5kcyBtZXNzYWdlcyB0byB0aGUgY2xpZW50LgotCi0gICAgVGhpcyBj
bGFzcyBwcm92aWRlcyBib3RoIHN5bmNocm9ub3VzIGFuZCBhc3luY2hyb25vdXMgd2F5cyB0byBz
ZW5kCi0gICAgbWVzc2FnZXMuCi0KLSAgICBOb3RlOiBUaGlzIGNsYXNzIHNob3VsZCBub3QgYmUg
dXNlZCB3aXRoIHRoZSBzdGFuZGFsb25lIHNlcnZlciBmb3Igd3NzCi0gICAgYmVjYXVzZSBweU9w
ZW5TU0wgdXNlZCBieSB0aGUgc2VydmVyIHJhaXNlcyBhIGZhdGFsIGVycm9yIGlmIHRoZSBzb2Nr
ZXQKLSAgICBpcyBhY2Nlc3NlZCBmcm9tIG11bHRpcGxlIHRocmVhZHMuCi0gICAgIiIiCi0KLSAg
ICBkZWYgX19pbml0X18oc2VsZiwgcmVxdWVzdCk6Ci0gICAgICAgICIiIkNvbnN0cnVjdCBhbiBp
bnN0YW5jZS4KLQotICAgICAgICBBcmdzOgotICAgICAgICAgICAgcmVxdWVzdDogbW9kX3B5dGhv
biByZXF1ZXN0LgotICAgICAgICAiIiIKLSAgICAgICAgdGhyZWFkaW5nLlRocmVhZC5fX2luaXRf
XyhzZWxmKQotICAgICAgICBzZWxmLl9yZXF1ZXN0ID0gcmVxdWVzdAotICAgICAgICBzZWxmLl9x
dWV1ZSA9IFF1ZXVlLlF1ZXVlKCkKLSAgICAgICAgc2VsZi5zZXREYWVtb24oVHJ1ZSkKLSAgICAg
ICAgc2VsZi5zdGFydCgpCi0KLSAgICBkZWYgcnVuKHNlbGYpOgotICAgICAgICB3aGlsZSBUcnVl
OgotICAgICAgICAgICAgbWVzc2FnZSwgY29uZGl0aW9uID0gc2VsZi5fcXVldWUuZ2V0KCkKLSAg
ICAgICAgICAgIGNvbmRpdGlvbi5hY3F1aXJlKCkKLSAgICAgICAgICAgIHNlbmRfbWVzc2FnZShz
ZWxmLl9yZXF1ZXN0LCBtZXNzYWdlKQotICAgICAgICAgICAgY29uZGl0aW9uLm5vdGlmeSgpCi0g
ICAgICAgICAgICBjb25kaXRpb24ucmVsZWFzZSgpCi0KLSAgICBkZWYgc2VuZChzZWxmLCBtZXNz
YWdlKToKLSAgICAgICAgIiIiU2VuZCBhIG1lc3NhZ2UsIGJsb2NraW5nLiIiIgotCi0gICAgICAg
IGNvbmRpdGlvbiA9IHRocmVhZGluZy5Db25kaXRpb24oKQotICAgICAgICBjb25kaXRpb24uYWNx
dWlyZSgpCi0gICAgICAgIHNlbGYuX3F1ZXVlLnB1dCgobWVzc2FnZSwgY29uZGl0aW9uKSkKLSAg
ICAgICAgY29uZGl0aW9uLndhaXQoKQotCi0gICAgZGVmIHNlbmRfbm93YWl0KHNlbGYsIG1lc3Nh
Z2UpOgotICAgICAgICAiIiJTZW5kIGEgbWVzc2FnZSwgbm9uLWJsb2NraW5nLiIiIgotCi0gICAg
ICAgIHNlbGYuX3F1ZXVlLnB1dCgobWVzc2FnZSwgdGhyZWFkaW5nLkNvbmRpdGlvbigpKSkKLQot
Ci0jIHZpOnN0cz00IHN3PTQgZXQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3JjL21vZF9weXdlYnNvY2tl
dC9tdXgucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3B5d2Vic29ja2V0L3NyYy9tb2RfcHl3ZWJzb2NrZXQvbXV4LnB5CmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCA3NjMzNDY4NWIzMTEyMjVlMzg3M2I5YjgyOGVkMDMxYTdlOTA3ODAy
Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3Jj
L21vZF9weXdlYnNvY2tldC9tdXgucHkKKysrIC9kZXYvbnVsbApAQCAtMSwxODg5ICswLDAgQEAK
LSMgQ29weXJpZ2h0IDIwMTIsIEdvb2dsZSBJbmMuCi0jIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0j
Ci0jIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAotIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCi0jIG1ldDoKLSMKLSMgICAgICogUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
LSMgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgotIyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlCi0jIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKLSMgaW4gdGhlIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQotIyBkaXN0cmlidXRpb24u
Ci0jICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBv
ZiBpdHMKLSMgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBw
cm9kdWN0cyBkZXJpdmVkIGZyb20KLSMgdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHBy
aW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLSMKLSMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwotIyAiQVMgSVMiIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAotIyBM
SU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IKLSMgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKLSMgT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCi0jIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKLSMg
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsCi0jIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQotIyBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0jIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RQotIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgotCi0KLSIiIlRoaXMgZmlsZSBwcm92aWRlcyBjbGFzc2VzIGFuZCBo
ZWxwZXIgZnVuY3Rpb25zIGZvciBtdWx0aXBsZXhpbmcgZXh0ZW5zaW9uLgotCi1TcGVjaWZpY2F0
aW9uOgotaHR0cDovL3Rvb2xzLmlldGYub3JnL2h0bWwvZHJhZnQtaWV0Zi1oeWJpLXdlYnNvY2tl
dC1tdWx0aXBsZXhpbmctMDYKLSIiIgotCi0KLWltcG9ydCBjb2xsZWN0aW9ucwotaW1wb3J0IGNv
cHkKLWltcG9ydCBlbWFpbAotaW1wb3J0IGVtYWlsLnBhcnNlcgotaW1wb3J0IGxvZ2dpbmcKLWlt
cG9ydCBtYXRoCi1pbXBvcnQgc3RydWN0Ci1pbXBvcnQgdGhyZWFkaW5nCi1pbXBvcnQgdHJhY2Vi
YWNrCi0KLWZyb20gbW9kX3B5d2Vic29ja2V0IGltcG9ydCBjb21tb24KLWZyb20gbW9kX3B5d2Vi
c29ja2V0IGltcG9ydCBoYW5kc2hha2UKLWZyb20gbW9kX3B5d2Vic29ja2V0IGltcG9ydCB1dGls
Ci1mcm9tIG1vZF9weXdlYnNvY2tldC5fc3RyZWFtX2Jhc2UgaW1wb3J0IEJhZE9wZXJhdGlvbkV4
Y2VwdGlvbgotZnJvbSBtb2RfcHl3ZWJzb2NrZXQuX3N0cmVhbV9iYXNlIGltcG9ydCBDb25uZWN0
aW9uVGVybWluYXRlZEV4Y2VwdGlvbgotZnJvbSBtb2RfcHl3ZWJzb2NrZXQuX3N0cmVhbV9iYXNl
IGltcG9ydCBJbnZhbGlkRnJhbWVFeGNlcHRpb24KLWZyb20gbW9kX3B5d2Vic29ja2V0Ll9zdHJl
YW1faHliaSBpbXBvcnQgRnJhbWUKLWZyb20gbW9kX3B5d2Vic29ja2V0Ll9zdHJlYW1faHliaSBp
bXBvcnQgU3RyZWFtCi1mcm9tIG1vZF9weXdlYnNvY2tldC5fc3RyZWFtX2h5YmkgaW1wb3J0IFN0
cmVhbU9wdGlvbnMKLWZyb20gbW9kX3B5d2Vic29ja2V0Ll9zdHJlYW1faHliaSBpbXBvcnQgY3Jl
YXRlX2JpbmFyeV9mcmFtZQotZnJvbSBtb2RfcHl3ZWJzb2NrZXQuX3N0cmVhbV9oeWJpIGltcG9y
dCBjcmVhdGVfY2xvc2luZ19oYW5kc2hha2VfYm9keQotZnJvbSBtb2RfcHl3ZWJzb2NrZXQuX3N0
cmVhbV9oeWJpIGltcG9ydCBjcmVhdGVfaGVhZGVyCi1mcm9tIG1vZF9weXdlYnNvY2tldC5fc3Ry
ZWFtX2h5YmkgaW1wb3J0IGNyZWF0ZV9sZW5ndGhfaGVhZGVyCi1mcm9tIG1vZF9weXdlYnNvY2tl
dC5fc3RyZWFtX2h5YmkgaW1wb3J0IHBhcnNlX2ZyYW1lCi1mcm9tIG1vZF9weXdlYnNvY2tldC5o
YW5kc2hha2UgaW1wb3J0IGh5YmkKLQotCi1fQ09OVFJPTF9DSEFOTkVMX0lEID0gMAotX0RFRkFV
TFRfQ0hBTk5FTF9JRCA9IDEKLQotX01VWF9PUENPREVfQUREX0NIQU5ORUxfUkVRVUVTVCA9IDAK
LV9NVVhfT1BDT0RFX0FERF9DSEFOTkVMX1JFU1BPTlNFID0gMQotX01VWF9PUENPREVfRkxPV19D
T05UUk9MID0gMgotX01VWF9PUENPREVfRFJPUF9DSEFOTkVMID0gMwotX01VWF9PUENPREVfTkVX
X0NIQU5ORUxfU0xPVCA9IDQKLQotX01BWF9DSEFOTkVMX0lEID0gMiAqKiAyOSAtIDEKLQotX0lO
SVRJQUxfTlVNQkVSX09GX0NIQU5ORUxfU0xPVFMgPSA2NAotX0lOSVRJQUxfUVVPVEFfRk9SX0NM
SUVOVCA9IDggKiAxMDI0Ci0KLV9IQU5EU0hBS0VfRU5DT0RJTkdfSURFTlRJVFkgPSAwCi1fSEFO
RFNIQUtFX0VOQ09ESU5HX0RFTFRBID0gMQotCi0jIFdlIG5lZWQgb25seSB0aGVzZSBzdGF0dXMg
Y29kZSBmb3Igbm93LgotX0hUVFBfQkFEX1JFU1BPTlNFX01FU1NBR0VTID0gewotICAgIGNvbW1v
bi5IVFRQX1NUQVRVU19CQURfUkVRVUVTVDogJ0JhZCBSZXF1ZXN0JywKLX0KLQotIyBEcm9wQ2hh
bm5lbCByZWFzb24gY29kZQotIyBUT0RPKGJhc2hpKTogRGVmaW5lIGFsbCByZWFzb24gY29kZSBk
ZWZpbmVkIGluIC0wNSBkcmFmdC4KLV9EUk9QX0NPREVfTk9STUFMX0NMT1NVUkUgPSAxMDAwCi0K
LV9EUk9QX0NPREVfSU5WQUxJRF9FTkNBUFNVTEFUSU5HX01FU1NBR0UgPSAyMDAxCi1fRFJPUF9D
T0RFX0NIQU5ORUxfSURfVFJVTkNBVEVEID0gMjAwMgotX0RST1BfQ09ERV9FTkNBUFNVTEFURURf
RlJBTUVfSVNfVFJVTkNBVEVEID0gMjAwMwotX0RST1BfQ09ERV9VTktOT1dOX01VWF9PUENPREUg
PSAyMDA0Ci1fRFJPUF9DT0RFX0lOVkFMSURfTVVYX0NPTlRST0xfQkxPQ0sgPSAyMDA1Ci1fRFJP
UF9DT0RFX0NIQU5ORUxfQUxSRUFEWV9FWElTVFMgPSAyMDA2Ci1fRFJPUF9DT0RFX05FV19DSEFO
TkVMX1NMT1RfVklPTEFUSU9OID0gMjAwNwotX0RST1BfQ09ERV9VTktOT1dOX1JFUVVFU1RfRU5D
T0RJTkcgPSAyMDEwCi0KLV9EUk9QX0NPREVfU0VORF9RVU9UQV9WSU9MQVRJT04gPSAzMDA1Ci1f
RFJPUF9DT0RFX1NFTkRfUVVPVEFfT1ZFUkZMT1cgPSAzMDA2Ci1fRFJPUF9DT0RFX0FDS05PV0xF
REdFRCA9IDMwMDgKLV9EUk9QX0NPREVfQkFEX0ZSQUdNRU5UQVRJT04gPSAzMDA5Ci0KLQotY2xh
c3MgTXV4VW5leHBlY3RlZEV4Y2VwdGlvbihFeGNlcHRpb24pOgotICAgICIiIkV4Y2VwdGlvbiBp
biBoYW5kbGluZyBtdWx0aXBsZXhpbmcgZXh0ZW5zaW9uLiIiIgotICAgIHBhc3MKLQotCi0jIFRl
bXBvcmFyeQotY2xhc3MgTXV4Tm90SW1wbGVtZW50ZWRFeGNlcHRpb24oRXhjZXB0aW9uKToKLSAg
ICAiIiJSYWlzZWQgd2hlbiBhIGZsb3cgZW50ZXJzIHVuaW1wbGVtZW50ZWQgY29kZSBwYXRoLiIi
IgotICAgIHBhc3MKLQotCi1jbGFzcyBMb2dpY2FsQ29ubmVjdGlvbkNsb3NlZEV4Y2VwdGlvbihF
eGNlcHRpb24pOgotICAgICIiIlJhaXNlZCB3aGVuIGxvZ2ljYWwgY29ubmVjdGlvbiBpcyBncmFj
ZWZ1bGx5IGNsb3NlZC4iIiIKLSAgICBwYXNzCi0KLQotY2xhc3MgUGh5c2ljYWxDb25uZWN0aW9u
RXJyb3IoRXhjZXB0aW9uKToKLSAgICAiIiJSYWlzZWQgd2hlbiB0aGVyZSBpcyBhIHBoeXNpY2Fs
IGNvbm5lY3Rpb24gZXJyb3IuIiIiCi0gICAgZGVmIF9faW5pdF9fKHNlbGYsIGRyb3BfY29kZSwg
bWVzc2FnZT0nJyk6Ci0gICAgICAgIHN1cGVyKFBoeXNpY2FsQ29ubmVjdGlvbkVycm9yLCBzZWxm
KS5fX2luaXRfXygKLSAgICAgICAgICAgICdjb2RlPSVkLCBtZXNzYWdlPSVyJyAlIChkcm9wX2Nv
ZGUsIG1lc3NhZ2UpKQotICAgICAgICBzZWxmLmRyb3BfY29kZSA9IGRyb3BfY29kZQotICAgICAg
ICBzZWxmLm1lc3NhZ2UgPSBtZXNzYWdlCi0KLQotY2xhc3MgTG9naWNhbENoYW5uZWxFcnJvcihF
eGNlcHRpb24pOgotICAgICIiIlJhaXNlZCB3aGVuIHRoZXJlIGlzIGEgbG9naWNhbCBjaGFubmVs
IGVycm9yLiIiIgotICAgIGRlZiBfX2luaXRfXyhzZWxmLCBjaGFubmVsX2lkLCBkcm9wX2NvZGUs
IG1lc3NhZ2U9JycpOgotICAgICAgICBzdXBlcihMb2dpY2FsQ2hhbm5lbEVycm9yLCBzZWxmKS5f
X2luaXRfXygKLSAgICAgICAgICAgICdjaGFubmVsX2lkPSVkLCBjb2RlPSVkLCBtZXNzYWdlPSVy
JyAlICgKLSAgICAgICAgICAgICAgICBjaGFubmVsX2lkLCBkcm9wX2NvZGUsIG1lc3NhZ2UpKQot
ICAgICAgICBzZWxmLmNoYW5uZWxfaWQgPSBjaGFubmVsX2lkCi0gICAgICAgIHNlbGYuZHJvcF9j
b2RlID0gZHJvcF9jb2RlCi0gICAgICAgIHNlbGYubWVzc2FnZSA9IG1lc3NhZ2UKLQotCi1kZWYg
X2VuY29kZV9jaGFubmVsX2lkKGNoYW5uZWxfaWQpOgotICAgIGlmIGNoYW5uZWxfaWQgPCAwOgot
ICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCdDaGFubmVsIGlkICVkIG11c3Qgbm90IGJlIG5lZ2F0
aXZlJyAlIGNoYW5uZWxfaWQpCi0KLSAgICBpZiBjaGFubmVsX2lkIDwgMiAqKiA3OgotICAgICAg
ICByZXR1cm4gY2hyKGNoYW5uZWxfaWQpCi0gICAgaWYgY2hhbm5lbF9pZCA8IDIgKiogMTQ6Ci0g
ICAgICAgIHJldHVybiBzdHJ1Y3QucGFjaygnIUgnLCAweDgwMDAgKyBjaGFubmVsX2lkKQotICAg
IGlmIGNoYW5uZWxfaWQgPCAyICoqIDIxOgotICAgICAgICBmaXJzdCA9IGNocigweGMwICsgKGNo
YW5uZWxfaWQgPj4gMTYpKQotICAgICAgICByZXR1cm4gZmlyc3QgKyBzdHJ1Y3QucGFjaygnIUgn
LCBjaGFubmVsX2lkICYgMHhmZmZmKQotICAgIGlmIGNoYW5uZWxfaWQgPCAyICoqIDI5OgotICAg
ICAgICByZXR1cm4gc3RydWN0LnBhY2soJyFMJywgMHhlMDAwMDAwMCArIGNoYW5uZWxfaWQpCi0K
LSAgICByYWlzZSBWYWx1ZUVycm9yKCdDaGFubmVsIGlkICVkIGlzIHRvbyBsYXJnZScgJSBjaGFu
bmVsX2lkKQotCi0KLWRlZiBfZW5jb2RlX251bWJlcihudW1iZXIpOgotICAgIHJldHVybiBjcmVh
dGVfbGVuZ3RoX2hlYWRlcihudW1iZXIsIEZhbHNlKQotCi0KLWRlZiBfY3JlYXRlX2FkZF9jaGFu
bmVsX3Jlc3BvbnNlKGNoYW5uZWxfaWQsIGVuY29kZWRfaGFuZHNoYWtlLAotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgZW5jb2Rpbmc9MCwgcmVqZWN0ZWQ9RmFsc2UpOgotICAgIGlm
IGVuY29kaW5nICE9IDAgYW5kIGVuY29kaW5nICE9IDE6Ci0gICAgICAgIHJhaXNlIFZhbHVlRXJy
b3IoJ0ludmFsaWQgZW5jb2RpbmcgJWQnICUgZW5jb2RpbmcpCi0KLSAgICBmaXJzdF9ieXRlID0g
KChfTVVYX09QQ09ERV9BRERfQ0hBTk5FTF9SRVNQT05TRSA8PCA1KSB8Ci0gICAgICAgICAgICAg
ICAgICAocmVqZWN0ZWQgPDwgNCkgfCBlbmNvZGluZykKLSAgICBibG9jayA9IChjaHIoZmlyc3Rf
Ynl0ZSkgKwotICAgICAgICAgICAgIF9lbmNvZGVfY2hhbm5lbF9pZChjaGFubmVsX2lkKSArCi0g
ICAgICAgICAgICAgX2VuY29kZV9udW1iZXIobGVuKGVuY29kZWRfaGFuZHNoYWtlKSkgKwotICAg
ICAgICAgICAgIGVuY29kZWRfaGFuZHNoYWtlKQotICAgIHJldHVybiBibG9jawotCi0KLWRlZiBf
Y3JlYXRlX2Ryb3BfY2hhbm5lbChjaGFubmVsX2lkLCBjb2RlPU5vbmUsIG1lc3NhZ2U9JycpOgot
ICAgIGlmIGxlbihtZXNzYWdlKSA+IDAgYW5kIGNvZGUgaXMgTm9uZToKLSAgICAgICAgcmFpc2Ug
VmFsdWVFcnJvcignQ29kZSBtdXN0IGJlIHNwZWNpZmllZCBpZiBtZXNzYWdlIGlzIHNwZWNpZmll
ZCcpCi0KLSAgICBmaXJzdF9ieXRlID0gX01VWF9PUENPREVfRFJPUF9DSEFOTkVMIDw8IDUKLSAg
ICBibG9jayA9IGNocihmaXJzdF9ieXRlKSArIF9lbmNvZGVfY2hhbm5lbF9pZChjaGFubmVsX2lk
KQotICAgIGlmIGNvZGUgaXMgTm9uZToKLSAgICAgICAgYmxvY2sgKz0gX2VuY29kZV9udW1iZXIo
MCkgIyBSZWFzb24gc2l6ZQotICAgIGVsc2U6Ci0gICAgICAgIHJlYXNvbiA9IHN0cnVjdC5wYWNr
KCchSCcsIGNvZGUpICsgbWVzc2FnZQotICAgICAgICByZWFzb25fc2l6ZSA9IF9lbmNvZGVfbnVt
YmVyKGxlbihyZWFzb24pKQotICAgICAgICBibG9jayArPSByZWFzb25fc2l6ZSArIHJlYXNvbgot
Ci0gICAgcmV0dXJuIGJsb2NrCi0KLQotZGVmIF9jcmVhdGVfZmxvd19jb250cm9sKGNoYW5uZWxf
aWQsIHJlcGxlbmlzaGVkX3F1b3RhKToKLSAgICBmaXJzdF9ieXRlID0gX01VWF9PUENPREVfRkxP
V19DT05UUk9MIDw8IDUKLSAgICBibG9jayA9IChjaHIoZmlyc3RfYnl0ZSkgKwotICAgICAgICAg
ICAgIF9lbmNvZGVfY2hhbm5lbF9pZChjaGFubmVsX2lkKSArCi0gICAgICAgICAgICAgX2VuY29k
ZV9udW1iZXIocmVwbGVuaXNoZWRfcXVvdGEpKQotICAgIHJldHVybiBibG9jawotCi0KLWRlZiBf
Y3JlYXRlX25ld19jaGFubmVsX3Nsb3Qoc2xvdHMsIHNlbmRfcXVvdGEpOgotICAgIGlmIHNsb3Rz
IDwgMCBvciBzZW5kX3F1b3RhIDwgMDoKLSAgICAgICAgcmFpc2UgVmFsdWVFcnJvcignc2xvdHMg
YW5kIHNlbmRfcXVvdGEgbXVzdCBiZSBub24tbmVnYXRpdmUuJykKLSAgICBmaXJzdF9ieXRlID0g
X01VWF9PUENPREVfTkVXX0NIQU5ORUxfU0xPVCA8PCA1Ci0gICAgYmxvY2sgPSAoY2hyKGZpcnN0
X2J5dGUpICsKLSAgICAgICAgICAgICBfZW5jb2RlX251bWJlcihzbG90cykgKwotICAgICAgICAg
ICAgIF9lbmNvZGVfbnVtYmVyKHNlbmRfcXVvdGEpKQotICAgIHJldHVybiBibG9jawotCi0KLWRl
ZiBfY3JlYXRlX2ZhbGxiYWNrX25ld19jaGFubmVsX3Nsb3QoKToKLSAgICBmaXJzdF9ieXRlID0g
KF9NVVhfT1BDT0RFX05FV19DSEFOTkVMX1NMT1QgPDwgNSkgfCAxICMgU2V0IHRoZSBGIGZsYWcK
LSAgICBibG9jayA9IChjaHIoZmlyc3RfYnl0ZSkgKyBfZW5jb2RlX251bWJlcigwKSArIF9lbmNv
ZGVfbnVtYmVyKDApKQotICAgIHJldHVybiBibG9jawotCi0KLWRlZiBfcGFyc2VfcmVxdWVzdF90
ZXh0KHJlcXVlc3RfdGV4dCk6Ci0gICAgcmVxdWVzdF9saW5lLCBoZWFkZXJfbGluZXMgPSByZXF1
ZXN0X3RleHQuc3BsaXQoJ1xyXG4nLCAxKQotCi0gICAgd29yZHMgPSByZXF1ZXN0X2xpbmUuc3Bs
aXQoJyAnKQotICAgIGlmIGxlbih3b3JkcykgIT0gMzoKLSAgICAgICAgcmFpc2UgVmFsdWVFcnJv
cignQmFkIFJlcXVlc3QtTGluZSBzeW50YXggJXInICUgcmVxdWVzdF9saW5lKQotICAgIFtjb21t
YW5kLCBwYXRoLCB2ZXJzaW9uXSA9IHdvcmRzCi0gICAgaWYgdmVyc2lvbiAhPSAnSFRUUC8xLjEn
OgotICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCdCYWQgcmVxdWVzdCB2ZXJzaW9uICVyJyAlIHZl
cnNpb24pCi0KLSAgICAjIGVtYWlsLnBhcnNlci5QYXJzZXIoKSBwYXJzZXMgUkZDIDI4MjIgKFJG
QyA4MjIpIHN0eWxlIGhlYWRlcnMuCi0gICAgIyBSRkMgNjQ1NSByZWZlcnMgUkZDIDI2MTYgZm9y
IGhhbmRzaGFrZSBwYXJzaW5nLCBhbmQgUkZDIDI2MTYgcmVmZXJzCi0gICAgIyBSRkMgODIyLgot
ICAgIGhlYWRlcnMgPSBlbWFpbC5wYXJzZXIuUGFyc2VyKCkucGFyc2VzdHIoaGVhZGVyX2xpbmVz
KQotICAgIHJldHVybiBjb21tYW5kLCBwYXRoLCB2ZXJzaW9uLCBoZWFkZXJzCi0KLQotY2xhc3Mg
X0NvbnRyb2xCbG9jayhvYmplY3QpOgotICAgICIiIkEgc3RydWN0dXJlIHRoYXQgaG9sZHMgcGFy
c2luZyByZXN1bHQgb2YgbXVsdGlwbGV4aW5nIGNvbnRyb2wgYmxvY2suCi0gICAgQ29udHJvbCBi
bG9jayBzcGVjaWZpYyBhdHRyaWJ1dGVzIHdpbGwgYmUgYWRkZWQgYnkgX011eEZyYW1lUGF5bG9h
ZFBhcnNlci4KLSAgICAoZS5nLiBlbmNvZGVkX2hhbmRzaGFrZSB3aWxsIGJlIGFkZGVkIGZvciBB
ZGRDaGFubmVsUmVxdWVzdCBhbmQKLSAgICBBZGRDaGFubmVsUmVzcG9uc2UpCi0gICAgIiIiCi0K
LSAgICBkZWYgX19pbml0X18oc2VsZiwgb3Bjb2RlKToKLSAgICAgICAgc2VsZi5vcGNvZGUgPSBv
cGNvZGUKLQotCi1jbGFzcyBfTXV4RnJhbWVQYXlsb2FkUGFyc2VyKG9iamVjdCk6Ci0gICAgIiIi
QSBjbGFzcyB0aGF0IHBhcnNlcyBtdWx0aXBsZXhlZCBmcmFtZSBwYXlsb2FkLiIiIgotCi0gICAg
ZGVmIF9faW5pdF9fKHNlbGYsIHBheWxvYWQpOgotICAgICAgICBzZWxmLl9kYXRhID0gcGF5bG9h
ZAotICAgICAgICBzZWxmLl9yZWFkX3Bvc2l0aW9uID0gMAotICAgICAgICBzZWxmLl9sb2dnZXIg
PSB1dGlsLmdldF9jbGFzc19sb2dnZXIoc2VsZikKLQotICAgIGRlZiByZWFkX2NoYW5uZWxfaWQo
c2VsZik6Ci0gICAgICAgICIiIlJlYWRzIGNoYW5uZWwgaWQuCi0KLSAgICAgICAgUmFpc2VzOgot
ICAgICAgICAgICAgVmFsdWVFcnJvcjogd2hlbiB0aGUgcGF5bG9hZCBkb2Vzbid0IGNvbnRhaW4K
LSAgICAgICAgICAgICAgICB2YWxpZCBjaGFubmVsIGlkLgotICAgICAgICAiIiIKLQotICAgICAg
ICByZW1haW5pbmdfbGVuZ3RoID0gbGVuKHNlbGYuX2RhdGEpIC0gc2VsZi5fcmVhZF9wb3NpdGlv
bgotICAgICAgICBwb3MgPSBzZWxmLl9yZWFkX3Bvc2l0aW9uCi0gICAgICAgIGlmIHJlbWFpbmlu
Z19sZW5ndGggPT0gMDoKLSAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoJ0ludmFsaWQgY2hh
bm5lbCBpZCBmb3JtYXQnKQotCi0gICAgICAgIGNoYW5uZWxfaWQgPSBvcmQoc2VsZi5fZGF0YVtw
b3NdKQotICAgICAgICBjaGFubmVsX2lkX2xlbmd0aCA9IDEKLSAgICAgICAgaWYgY2hhbm5lbF9p
ZCAmIDB4ZTAgPT0gMHhlMDoKLSAgICAgICAgICAgIGlmIHJlbWFpbmluZ19sZW5ndGggPCA0Ogot
ICAgICAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoJ0ludmFsaWQgY2hhbm5lbCBpZCBmb3Jt
YXQnKQotICAgICAgICAgICAgY2hhbm5lbF9pZCA9IHN0cnVjdC51bnBhY2soJyFMJywKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuX2RhdGFbcG9zOnBvcys0XSlb
MF0gJiAweDFmZmZmZmZmCi0gICAgICAgICAgICBjaGFubmVsX2lkX2xlbmd0aCA9IDQKLSAgICAg
ICAgZWxpZiBjaGFubmVsX2lkICYgMHhjMCA9PSAweGMwOgotICAgICAgICAgICAgaWYgcmVtYWlu
aW5nX2xlbmd0aCA8IDM6Ci0gICAgICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcignSW52YWxp
ZCBjaGFubmVsIGlkIGZvcm1hdCcpCi0gICAgICAgICAgICBjaGFubmVsX2lkID0gKCgoY2hhbm5l
bF9pZCAmIDB4MWYpIDw8IDE2KSArCi0gICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdC51
bnBhY2soJyFIJywgc2VsZi5fZGF0YVtwb3MrMTpwb3MrM10pWzBdKQotICAgICAgICAgICAgY2hh
bm5lbF9pZF9sZW5ndGggPSAzCi0gICAgICAgIGVsaWYgY2hhbm5lbF9pZCAmIDB4ODAgPT0gMHg4
MDoKLSAgICAgICAgICAgIGlmIHJlbWFpbmluZ19sZW5ndGggPCAyOgotICAgICAgICAgICAgICAg
IHJhaXNlIFZhbHVlRXJyb3IoJ0ludmFsaWQgY2hhbm5lbCBpZCBmb3JtYXQnKQotICAgICAgICAg
ICAgY2hhbm5lbF9pZCA9IHN0cnVjdC51bnBhY2soJyFIJywKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHNlbGYuX2RhdGFbcG9zOnBvcysyXSlbMF0gJiAweDNmZmYKLSAg
ICAgICAgICAgIGNoYW5uZWxfaWRfbGVuZ3RoID0gMgotICAgICAgICBzZWxmLl9yZWFkX3Bvc2l0
aW9uICs9IGNoYW5uZWxfaWRfbGVuZ3RoCi0KLSAgICAgICAgcmV0dXJuIGNoYW5uZWxfaWQKLQot
ICAgIGRlZiByZWFkX2lubmVyX2ZyYW1lKHNlbGYpOgotICAgICAgICAiIiJSZWFkcyBhbiBpbm5l
ciBmcmFtZS4KLQotICAgICAgICBSYWlzZXM6Ci0gICAgICAgICAgICBQaHlzaWNhbENvbm5lY3Rp
b25FcnJvcjogd2hlbiB0aGUgaW5uZXIgZnJhbWUgaXMgaW52YWxpZC4KLSAgICAgICAgIiIiCi0K
LSAgICAgICAgaWYgbGVuKHNlbGYuX2RhdGEpID09IHNlbGYuX3JlYWRfcG9zaXRpb246Ci0gICAg
ICAgICAgICByYWlzZSBQaHlzaWNhbENvbm5lY3Rpb25FcnJvcigKLSAgICAgICAgICAgICAgICBf
RFJPUF9DT0RFX0VOQ0FQU1VMQVRFRF9GUkFNRV9JU19UUlVOQ0FURUQpCi0KLSAgICAgICAgYml0
cyA9IG9yZChzZWxmLl9kYXRhW3NlbGYuX3JlYWRfcG9zaXRpb25dKQotICAgICAgICBzZWxmLl9y
ZWFkX3Bvc2l0aW9uICs9IDEKLSAgICAgICAgZmluID0gKGJpdHMgJiAweDgwKSA9PSAweDgwCi0g
ICAgICAgIHJzdjEgPSAoYml0cyAmIDB4NDApID09IDB4NDAKLSAgICAgICAgcnN2MiA9IChiaXRz
ICYgMHgyMCkgPT0gMHgyMAotICAgICAgICByc3YzID0gKGJpdHMgJiAweDEwKSA9PSAweDEwCi0g
ICAgICAgIG9wY29kZSA9IGJpdHMgJiAweGYKLSAgICAgICAgcGF5bG9hZCA9IHNlbGYucmVtYWlu
aW5nX2RhdGEoKQotICAgICAgICAjIENvbnN1bWUgcmVzdCBvZiB0aGUgbWVzc2FnZSB3aGljaCBp
cyBwYXlsb2FkIGRhdGEgb2YgdGhlIG9yaWdpbmFsCi0gICAgICAgICMgZnJhbWUuCi0gICAgICAg
IHNlbGYuX3JlYWRfcG9zaXRpb24gPSBsZW4oc2VsZi5fZGF0YSkKLSAgICAgICAgcmV0dXJuIGZp
biwgcnN2MSwgcnN2MiwgcnN2Mywgb3Bjb2RlLCBwYXlsb2FkCi0KLSAgICBkZWYgX3JlYWRfbnVt
YmVyKHNlbGYpOgotICAgICAgICBpZiBzZWxmLl9yZWFkX3Bvc2l0aW9uICsgMSA+IGxlbihzZWxm
Ll9kYXRhKToKLSAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoCi0gICAgICAgICAgICAgICAg
J0Nhbm5vdCByZWFkIHRoZSBmaXJzdCBieXRlIG9mIG51bWJlciBmaWVsZCcpCi0KLSAgICAgICAg
bnVtYmVyID0gb3JkKHNlbGYuX2RhdGFbc2VsZi5fcmVhZF9wb3NpdGlvbl0pCi0gICAgICAgIGlm
IG51bWJlciAmIDB4ODAgPT0gMHg4MDoKLSAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoCi0g
ICAgICAgICAgICAgICAgJ1RoZSBtb3N0IHNpZ25pZmljYW50IGJpdCBvZiB0aGUgZmlyc3QgYnl0
ZSBvZiBudW1iZXIgc2hvdWxkICcKLSAgICAgICAgICAgICAgICAnYmUgdW5zZXQnKQotICAgICAg
ICBzZWxmLl9yZWFkX3Bvc2l0aW9uICs9IDEKLSAgICAgICAgcG9zID0gc2VsZi5fcmVhZF9wb3Np
dGlvbgotICAgICAgICBpZiBudW1iZXIgPT0gMTI3OgotICAgICAgICAgICAgaWYgcG9zICsgOCA+
IGxlbihzZWxmLl9kYXRhKToKLSAgICAgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCdJbnZh
bGlkIG51bWJlciBmaWVsZCcpCi0gICAgICAgICAgICBzZWxmLl9yZWFkX3Bvc2l0aW9uICs9IDgK
LSAgICAgICAgICAgIG51bWJlciA9IHN0cnVjdC51bnBhY2soJyFRJywgc2VsZi5fZGF0YVtwb3M6
cG9zKzhdKVswXQotICAgICAgICAgICAgaWYgbnVtYmVyID4gMHg3RkZGRkZGRkZGRkZGRkZGOgot
ICAgICAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoJ0VuY29kZWQgbnVtYmVyKCVkKSA+PSAy
XjYzJyAlIG51bWJlcikKLSAgICAgICAgICAgIGlmIG51bWJlciA8PSAweEZGRkY6Ci0gICAgICAg
ICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigKLSAgICAgICAgICAgICAgICAgICAgJyVkIHNob3Vs
ZCBub3QgYmUgZW5jb2RlZCBieSA5IGJ5dGVzIGVuY29kaW5nJyAlIG51bWJlcikKLSAgICAgICAg
ICAgIHJldHVybiBudW1iZXIKLSAgICAgICAgaWYgbnVtYmVyID09IDEyNjoKLSAgICAgICAgICAg
IGlmIHBvcyArIDIgPiBsZW4oc2VsZi5fZGF0YSk6Ci0gICAgICAgICAgICAgICAgcmFpc2UgVmFs
dWVFcnJvcignSW52YWxpZCBudW1iZXIgZmllbGQnKQotICAgICAgICAgICAgc2VsZi5fcmVhZF9w
b3NpdGlvbiArPSAyCi0gICAgICAgICAgICBudW1iZXIgPSBzdHJ1Y3QudW5wYWNrKCchSCcsIHNl
bGYuX2RhdGFbcG9zOnBvcysyXSlbMF0KLSAgICAgICAgICAgIGlmIG51bWJlciA8PSAxMjU6Ci0g
ICAgICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigKLSAgICAgICAgICAgICAgICAgICAgJyVk
IHNob3VsZCBub3QgYmUgZW5jb2RlZCBieSAzIGJ5dGVzIGVuY29kaW5nJyAlIG51bWJlcikKLSAg
ICAgICAgcmV0dXJuIG51bWJlcgotCi0gICAgZGVmIF9yZWFkX3NpemVfYW5kX2NvbnRlbnRzKHNl
bGYpOgotICAgICAgICAiIiJSZWFkcyBkYXRhIHRoYXQgY29uc2lzdHMgb2YgZm9sbG93aW5nczoK
LSAgICAgICAgICAgIC0gdGhlIHNpemUgb2YgdGhlIGNvbnRlbnRzIGVuY29kZWQgdGhlIHNhbWUg
d2F5IGFzIHBheWxvYWQgbGVuZ3RoCi0gICAgICAgICAgICAgIG9mIHRoZSBXZWJTb2NrZXQgUHJv
dG9jb2wgd2l0aCAxIGJpdCBwYWRkaW5nIGF0IHRoZSBoZWFkLgotICAgICAgICAgICAgLSB0aGUg
Y29udGVudHMuCi0gICAgICAgICIiIgotCi0gICAgICAgIHRyeToKLSAgICAgICAgICAgIHNpemUg
PSBzZWxmLl9yZWFkX251bWJlcigpCi0gICAgICAgIGV4Y2VwdCBWYWx1ZUVycm9yLCBlOgotICAg
ICAgICAgICAgcmFpc2UgUGh5c2ljYWxDb25uZWN0aW9uRXJyb3IoX0RST1BfQ09ERV9JTlZBTElE
X01VWF9DT05UUk9MX0JMT0NLLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgc3RyKGUpKQotICAgICAgICBwb3MgPSBzZWxmLl9yZWFkX3Bvc2l0aW9uCi0gICAgICAg
IGlmIHBvcyArIHNpemUgPiBsZW4oc2VsZi5fZGF0YSk6Ci0gICAgICAgICAgICByYWlzZSBQaHlz
aWNhbENvbm5lY3Rpb25FcnJvcigKLSAgICAgICAgICAgICAgICBfRFJPUF9DT0RFX0lOVkFMSURf
TVVYX0NPTlRST0xfQkxPQ0ssCi0gICAgICAgICAgICAgICAgJ0Nhbm5vdCByZWFkICVkIGJ5dGVz
IGRhdGEnICUgc2l6ZSkKLQotICAgICAgICBzZWxmLl9yZWFkX3Bvc2l0aW9uICs9IHNpemUKLSAg
ICAgICAgcmV0dXJuIHNlbGYuX2RhdGFbcG9zOnBvcytzaXplXQotCi0gICAgZGVmIF9yZWFkX2Fk
ZF9jaGFubmVsX3JlcXVlc3Qoc2VsZiwgZmlyc3RfYnl0ZSwgY29udHJvbF9ibG9jayk6Ci0gICAg
ICAgIHJlc2VydmVkID0gKGZpcnN0X2J5dGUgPj4gMikgJiAweDcKLSAgICAgICAgaWYgcmVzZXJ2
ZWQgIT0gMDoKLSAgICAgICAgICAgIHJhaXNlIFBoeXNpY2FsQ29ubmVjdGlvbkVycm9yKAotICAg
ICAgICAgICAgICAgIF9EUk9QX0NPREVfSU5WQUxJRF9NVVhfQ09OVFJPTF9CTE9DSywKLSAgICAg
ICAgICAgICAgICAnUmVzZXJ2ZWQgYml0cyBtdXN0IGJlIHVuc2V0JykKLQotICAgICAgICAjIElu
dmFsaWQgZW5jb2Rpbmcgd2lsbCBiZSBoYW5kbGVkIGJ5IE11eEhhbmRsZXIuCi0gICAgICAgIGVu
Y29kaW5nID0gZmlyc3RfYnl0ZSAmIDB4MwotICAgICAgICB0cnk6Ci0gICAgICAgICAgICBjb250
cm9sX2Jsb2NrLmNoYW5uZWxfaWQgPSBzZWxmLnJlYWRfY2hhbm5lbF9pZCgpCi0gICAgICAgIGV4
Y2VwdCBWYWx1ZUVycm9yLCBlOgotICAgICAgICAgICAgcmFpc2UgUGh5c2ljYWxDb25uZWN0aW9u
RXJyb3IoX0RST1BfQ09ERV9JTlZBTElEX01VWF9DT05UUk9MX0JMT0NLKQotICAgICAgICBjb250
cm9sX2Jsb2NrLmVuY29kaW5nID0gZW5jb2RpbmcKLSAgICAgICAgZW5jb2RlZF9oYW5kc2hha2Ug
PSBzZWxmLl9yZWFkX3NpemVfYW5kX2NvbnRlbnRzKCkKLSAgICAgICAgY29udHJvbF9ibG9jay5l
bmNvZGVkX2hhbmRzaGFrZSA9IGVuY29kZWRfaGFuZHNoYWtlCi0gICAgICAgIHJldHVybiBjb250
cm9sX2Jsb2NrCi0KLSAgICBkZWYgX3JlYWRfYWRkX2NoYW5uZWxfcmVzcG9uc2Uoc2VsZiwgZmly
c3RfYnl0ZSwgY29udHJvbF9ibG9jayk6Ci0gICAgICAgIHJlc2VydmVkID0gKGZpcnN0X2J5dGUg
Pj4gMikgJiAweDMKLSAgICAgICAgaWYgcmVzZXJ2ZWQgIT0gMDoKLSAgICAgICAgICAgIHJhaXNl
IFBoeXNpY2FsQ29ubmVjdGlvbkVycm9yKAotICAgICAgICAgICAgICAgIF9EUk9QX0NPREVfSU5W
QUxJRF9NVVhfQ09OVFJPTF9CTE9DSywKLSAgICAgICAgICAgICAgICAnUmVzZXJ2ZWQgYml0cyBt
dXN0IGJlIHVuc2V0JykKLQotICAgICAgICBjb250cm9sX2Jsb2NrLmFjY2VwdGVkID0gKGZpcnN0
X2J5dGUgPj4gNCkgJiAxCi0gICAgICAgIGNvbnRyb2xfYmxvY2suZW5jb2RpbmcgPSBmaXJzdF9i
eXRlICYgMHgzCi0gICAgICAgIHRyeToKLSAgICAgICAgICAgIGNvbnRyb2xfYmxvY2suY2hhbm5l
bF9pZCA9IHNlbGYucmVhZF9jaGFubmVsX2lkKCkKLSAgICAgICAgZXhjZXB0IFZhbHVlRXJyb3Is
IGU6Ci0gICAgICAgICAgICByYWlzZSBQaHlzaWNhbENvbm5lY3Rpb25FcnJvcihfRFJPUF9DT0RF
X0lOVkFMSURfTVVYX0NPTlRST0xfQkxPQ0spCi0gICAgICAgIGNvbnRyb2xfYmxvY2suZW5jb2Rl
ZF9oYW5kc2hha2UgPSBzZWxmLl9yZWFkX3NpemVfYW5kX2NvbnRlbnRzKCkKLSAgICAgICAgcmV0
dXJuIGNvbnRyb2xfYmxvY2sKLQotICAgIGRlZiBfcmVhZF9mbG93X2NvbnRyb2woc2VsZiwgZmly
c3RfYnl0ZSwgY29udHJvbF9ibG9jayk6Ci0gICAgICAgIHJlc2VydmVkID0gZmlyc3RfYnl0ZSAm
IDB4MWYKLSAgICAgICAgaWYgcmVzZXJ2ZWQgIT0gMDoKLSAgICAgICAgICAgIHJhaXNlIFBoeXNp
Y2FsQ29ubmVjdGlvbkVycm9yKAotICAgICAgICAgICAgICAgIF9EUk9QX0NPREVfSU5WQUxJRF9N
VVhfQ09OVFJPTF9CTE9DSywKLSAgICAgICAgICAgICAgICAnUmVzZXJ2ZWQgYml0cyBtdXN0IGJl
IHVuc2V0JykKLQotICAgICAgICB0cnk6Ci0gICAgICAgICAgICBjb250cm9sX2Jsb2NrLmNoYW5u
ZWxfaWQgPSBzZWxmLnJlYWRfY2hhbm5lbF9pZCgpCi0gICAgICAgICAgICBjb250cm9sX2Jsb2Nr
LnNlbmRfcXVvdGEgPSBzZWxmLl9yZWFkX251bWJlcigpCi0gICAgICAgIGV4Y2VwdCBWYWx1ZUVy
cm9yLCBlOgotICAgICAgICAgICAgcmFpc2UgUGh5c2ljYWxDb25uZWN0aW9uRXJyb3IoX0RST1Bf
Q09ERV9JTlZBTElEX01VWF9DT05UUk9MX0JMT0NLLAotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgc3RyKGUpKQotCi0gICAgICAgIHJldHVybiBjb250cm9sX2Jsb2Nr
Ci0KLSAgICBkZWYgX3JlYWRfZHJvcF9jaGFubmVsKHNlbGYsIGZpcnN0X2J5dGUsIGNvbnRyb2xf
YmxvY2spOgotICAgICAgICByZXNlcnZlZCA9IGZpcnN0X2J5dGUgJiAweDFmCi0gICAgICAgIGlm
IHJlc2VydmVkICE9IDA6Ci0gICAgICAgICAgICByYWlzZSBQaHlzaWNhbENvbm5lY3Rpb25FcnJv
cigKLSAgICAgICAgICAgICAgICBfRFJPUF9DT0RFX0lOVkFMSURfTVVYX0NPTlRST0xfQkxPQ0ss
Ci0gICAgICAgICAgICAgICAgJ1Jlc2VydmVkIGJpdHMgbXVzdCBiZSB1bnNldCcpCi0KLSAgICAg
ICAgdHJ5OgotICAgICAgICAgICAgY29udHJvbF9ibG9jay5jaGFubmVsX2lkID0gc2VsZi5yZWFk
X2NoYW5uZWxfaWQoKQotICAgICAgICBleGNlcHQgVmFsdWVFcnJvciwgZToKLSAgICAgICAgICAg
IHJhaXNlIFBoeXNpY2FsQ29ubmVjdGlvbkVycm9yKF9EUk9QX0NPREVfSU5WQUxJRF9NVVhfQ09O
VFJPTF9CTE9DSykKLSAgICAgICAgcmVhc29uID0gc2VsZi5fcmVhZF9zaXplX2FuZF9jb250ZW50
cygpCi0gICAgICAgIGlmIGxlbihyZWFzb24pID09IDA6Ci0gICAgICAgICAgICBjb250cm9sX2Js
b2NrLmRyb3BfY29kZSA9IE5vbmUKLSAgICAgICAgICAgIGNvbnRyb2xfYmxvY2suZHJvcF9tZXNz
YWdlID0gJycKLSAgICAgICAgZWxpZiBsZW4ocmVhc29uKSA+PSAyOgotICAgICAgICAgICAgY29u
dHJvbF9ibG9jay5kcm9wX2NvZGUgPSBzdHJ1Y3QudW5wYWNrKCchSCcsIHJlYXNvbls6Ml0pWzBd
Ci0gICAgICAgICAgICBjb250cm9sX2Jsb2NrLmRyb3BfbWVzc2FnZSA9IHJlYXNvblsyOl0KLSAg
ICAgICAgZWxzZToKLSAgICAgICAgICAgIHJhaXNlIFBoeXNpY2FsQ29ubmVjdGlvbkVycm9yKAot
ICAgICAgICAgICAgICAgIF9EUk9QX0NPREVfSU5WQUxJRF9NVVhfQ09OVFJPTF9CTE9DSywKLSAg
ICAgICAgICAgICAgICAnUmVjZWl2ZWQgRHJvcENoYW5uZWwgdGhhdCBjb25haW5zIG9ubHkgMS1i
eXRlIHJlYXNvbicpCi0gICAgICAgIHJldHVybiBjb250cm9sX2Jsb2NrCi0KLSAgICBkZWYgX3Jl
YWRfbmV3X2NoYW5uZWxfc2xvdChzZWxmLCBmaXJzdF9ieXRlLCBjb250cm9sX2Jsb2NrKToKLSAg
ICAgICAgcmVzZXJ2ZWQgPSBmaXJzdF9ieXRlICYgMHgxZQotICAgICAgICBpZiByZXNlcnZlZCAh
PSAwOgotICAgICAgICAgICAgcmFpc2UgUGh5c2ljYWxDb25uZWN0aW9uRXJyb3IoCi0gICAgICAg
ICAgICAgICAgX0RST1BfQ09ERV9JTlZBTElEX01VWF9DT05UUk9MX0JMT0NLLAotICAgICAgICAg
ICAgICAgICdSZXNlcnZlZCBiaXRzIG11c3QgYmUgdW5zZXQnKQotICAgICAgICBjb250cm9sX2Js
b2NrLmZhbGxiYWNrID0gZmlyc3RfYnl0ZSAmIDEKLSAgICAgICAgdHJ5OgotICAgICAgICAgICAg
Y29udHJvbF9ibG9jay5zbG90cyA9IHNlbGYuX3JlYWRfbnVtYmVyKCkKLSAgICAgICAgICAgIGNv
bnRyb2xfYmxvY2suc2VuZF9xdW90YSA9IHNlbGYuX3JlYWRfbnVtYmVyKCkKLSAgICAgICAgZXhj
ZXB0IFZhbHVlRXJyb3IsIGU6Ci0gICAgICAgICAgICByYWlzZSBQaHlzaWNhbENvbm5lY3Rpb25F
cnJvcihfRFJPUF9DT0RFX0lOVkFMSURfTVVYX0NPTlRST0xfQkxPQ0ssCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHIoZSkpCi0gICAgICAgIHJldHVybiBjb250
cm9sX2Jsb2NrCi0KLSAgICBkZWYgcmVhZF9jb250cm9sX2Jsb2NrcyhzZWxmKToKLSAgICAgICAg
IiIiUmVhZHMgY29udHJvbCBibG9jayhzKS4KLQotICAgICAgICBSYWlzZXM6Ci0gICAgICAgICAg
IFBoeXNpY2FsQ29ubmVjdGlvbkVycm9yOiB3aGVuIHRoZSBwYXlsb2FkIGNvbnRhaW5zIGludmFs
aWQgY29udHJvbAotICAgICAgICAgICAgICAgYmxvY2socykuCi0gICAgICAgICAgIFN0b3BJdGVy
YXRpb246IHdoZW4gbm8gY29udHJvbCBibG9ja3MgbGVmdC4KLSAgICAgICAgIiIiCi0KLSAgICAg
ICAgd2hpbGUgc2VsZi5fcmVhZF9wb3NpdGlvbiA8IGxlbihzZWxmLl9kYXRhKToKLSAgICAgICAg
ICAgIGZpcnN0X2J5dGUgPSBvcmQoc2VsZi5fZGF0YVtzZWxmLl9yZWFkX3Bvc2l0aW9uXSkKLSAg
ICAgICAgICAgIHNlbGYuX3JlYWRfcG9zaXRpb24gKz0gMQotICAgICAgICAgICAgb3Bjb2RlID0g
KGZpcnN0X2J5dGUgPj4gNSkgJiAweDcKLSAgICAgICAgICAgIGNvbnRyb2xfYmxvY2sgPSBfQ29u
dHJvbEJsb2NrKG9wY29kZT1vcGNvZGUpCi0gICAgICAgICAgICBpZiBvcGNvZGUgPT0gX01VWF9P
UENPREVfQUREX0NIQU5ORUxfUkVRVUVTVDoKLSAgICAgICAgICAgICAgICB5aWVsZCBzZWxmLl9y
ZWFkX2FkZF9jaGFubmVsX3JlcXVlc3QoZmlyc3RfYnl0ZSwgY29udHJvbF9ibG9jaykKLSAgICAg
ICAgICAgIGVsaWYgb3Bjb2RlID09IF9NVVhfT1BDT0RFX0FERF9DSEFOTkVMX1JFU1BPTlNFOgot
ICAgICAgICAgICAgICAgIHlpZWxkIHNlbGYuX3JlYWRfYWRkX2NoYW5uZWxfcmVzcG9uc2UoCi0g
ICAgICAgICAgICAgICAgICAgIGZpcnN0X2J5dGUsIGNvbnRyb2xfYmxvY2spCi0gICAgICAgICAg
ICBlbGlmIG9wY29kZSA9PSBfTVVYX09QQ09ERV9GTE9XX0NPTlRST0w6Ci0gICAgICAgICAgICAg
ICAgeWllbGQgc2VsZi5fcmVhZF9mbG93X2NvbnRyb2woZmlyc3RfYnl0ZSwgY29udHJvbF9ibG9j
aykKLSAgICAgICAgICAgIGVsaWYgb3Bjb2RlID09IF9NVVhfT1BDT0RFX0RST1BfQ0hBTk5FTDoK
LSAgICAgICAgICAgICAgICB5aWVsZCBzZWxmLl9yZWFkX2Ryb3BfY2hhbm5lbChmaXJzdF9ieXRl
LCBjb250cm9sX2Jsb2NrKQotICAgICAgICAgICAgZWxpZiBvcGNvZGUgPT0gX01VWF9PUENPREVf
TkVXX0NIQU5ORUxfU0xPVDoKLSAgICAgICAgICAgICAgICB5aWVsZCBzZWxmLl9yZWFkX25ld19j
aGFubmVsX3Nsb3QoZmlyc3RfYnl0ZSwgY29udHJvbF9ibG9jaykKLSAgICAgICAgICAgIGVsc2U6
Ci0gICAgICAgICAgICAgICAgcmFpc2UgUGh5c2ljYWxDb25uZWN0aW9uRXJyb3IoCi0gICAgICAg
ICAgICAgICAgICAgIF9EUk9QX0NPREVfVU5LTk9XTl9NVVhfT1BDT0RFLAotICAgICAgICAgICAg
ICAgICAgICAnSW52YWxpZCBvcGNvZGUgJWQnICUgb3Bjb2RlKQotCi0gICAgICAgIGFzc2VydCBz
ZWxmLl9yZWFkX3Bvc2l0aW9uID09IGxlbihzZWxmLl9kYXRhKQotICAgICAgICByYWlzZSBTdG9w
SXRlcmF0aW9uCi0KLSAgICBkZWYgcmVtYWluaW5nX2RhdGEoc2VsZik6Ci0gICAgICAgICIiIlJl
dHVybnMgcmVtYWluaW5nIGRhdGEuIiIiCi0KLSAgICAgICAgcmV0dXJuIHNlbGYuX2RhdGFbc2Vs
Zi5fcmVhZF9wb3NpdGlvbjpdCi0KLQotY2xhc3MgX0xvZ2ljYWxSZXF1ZXN0KG9iamVjdCk6Ci0g
ICAgIiIiTWltaWNzIG1vZF9weXRob24gcmVxdWVzdC4iIiIKLQotICAgIGRlZiBfX2luaXRfXyhz
ZWxmLCBjaGFubmVsX2lkLCBjb21tYW5kLCBwYXRoLCBwcm90b2NvbCwgaGVhZGVycywKLSAgICAg
ICAgICAgICAgICAgY29ubmVjdGlvbik6Ci0gICAgICAgICIiIkNvbnN0cnVjdHMgYW4gaW5zdGFu
Y2UuCi0KLSAgICAgICAgQXJnczoKLSAgICAgICAgICAgIGNoYW5uZWxfaWQ6IHRoZSBjaGFubmVs
IGlkIG9mIHRoZSBsb2dpY2FsIGNoYW5uZWwuCi0gICAgICAgICAgICBjb21tYW5kOiBIVFRQIHJl
cXVlc3QgY29tbWFuZC4KLSAgICAgICAgICAgIHBhdGg6IEhUVFAgcmVxdWVzdCBwYXRoLgotICAg
ICAgICAgICAgaGVhZGVyczogSFRUUCBoZWFkZXJzLgotICAgICAgICAgICAgY29ubmVjdGlvbjog
X0xvZ2ljYWxDb25uZWN0aW9uIGluc3RhbmNlLgotICAgICAgICAiIiIKLQotICAgICAgICBzZWxm
LmNoYW5uZWxfaWQgPSBjaGFubmVsX2lkCi0gICAgICAgIHNlbGYubWV0aG9kID0gY29tbWFuZAot
ICAgICAgICBzZWxmLnVyaSA9IHBhdGgKLSAgICAgICAgc2VsZi5wcm90b2NvbCA9IHByb3RvY29s
Ci0gICAgICAgIHNlbGYuaGVhZGVyc19pbiA9IGhlYWRlcnMKLSAgICAgICAgc2VsZi5jb25uZWN0
aW9uID0gY29ubmVjdGlvbgotICAgICAgICBzZWxmLnNlcnZlcl90ZXJtaW5hdGVkID0gRmFsc2UK
LSAgICAgICAgc2VsZi5jbGllbnRfdGVybWluYXRlZCA9IEZhbHNlCi0KLSAgICBkZWYgaXNfaHR0
cHMoc2VsZik6Ci0gICAgICAgICIiIk1pbWljcyByZXF1ZXN0LmlzX2h0dHBzKCkuIFJldHVybnMg
RmFsc2UgYmVjYXVzZSB0aGlzIG1ldGhvZCBpcwotICAgICAgICB1c2VkIG9ubHkgYnkgb2xkIHBy
b3RvY29scyAoaGl4aWUgYW5kIGh5YmkwMCkuCi0gICAgICAgICIiIgotCi0gICAgICAgIHJldHVy
biBGYWxzZQotCi0KLWNsYXNzIF9Mb2dpY2FsQ29ubmVjdGlvbihvYmplY3QpOgotICAgICIiIk1p
bWljcyBtb2RfcHl0aG9uIG1wX2Nvbm4uIiIiCi0KLSAgICAjIEZvciBkZXRhaWxzLCBzZWUgdGhl
IGNvbW1lbnQgb2Ygc2V0X3JlYWRfc3RhdGUoKS4KLSAgICBTVEFURV9BQ1RJVkUgPSAxCi0gICAg
U1RBVEVfR1JBQ0VGVUxMWV9DTE9TRUQgPSAyCi0gICAgU1RBVEVfVEVSTUlOQVRFRCA9IDMKLQot
ICAgIGRlZiBfX2luaXRfXyhzZWxmLCBtdXhfaGFuZGxlciwgY2hhbm5lbF9pZCk6Ci0gICAgICAg
ICIiIkNvbnN0cnVjdHMgYW4gaW5zdGFuY2UuCi0KLSAgICAgICAgQXJnczoKLSAgICAgICAgICAg
IG11eF9oYW5kbGVyOiBfTXV4SGFuZGxlciBpbnN0YW5jZS4KLSAgICAgICAgICAgIGNoYW5uZWxf
aWQ6IGNoYW5uZWwgaWQgb2YgdGhpcyBjb25uZWN0aW9uLgotICAgICAgICAiIiIKLQotICAgICAg
ICBzZWxmLl9tdXhfaGFuZGxlciA9IG11eF9oYW5kbGVyCi0gICAgICAgIHNlbGYuX2NoYW5uZWxf
aWQgPSBjaGFubmVsX2lkCi0gICAgICAgIHNlbGYuX2luY29taW5nX2RhdGEgPSAnJwotCi0gICAg
ICAgICMgLSBQcm90ZWN0cyBfd2FpdGluZ193cml0ZV9jb21wbGV0aW9uCi0gICAgICAgICMgLSBT
aWduYWxzIHRoZSB0aHJlYWQgd2FpdGluZyBmb3IgY29tcGxldGlvbiBvZiB3cml0ZSBieSBtdXgg
aGFuZGxlcgotICAgICAgICBzZWxmLl93cml0ZV9jb25kaXRpb24gPSB0aHJlYWRpbmcuQ29uZGl0
aW9uKCkKLSAgICAgICAgc2VsZi5fd2FpdGluZ193cml0ZV9jb21wbGV0aW9uID0gRmFsc2UKLQot
ICAgICAgICBzZWxmLl9yZWFkX2NvbmRpdGlvbiA9IHRocmVhZGluZy5Db25kaXRpb24oKQotICAg
ICAgICBzZWxmLl9yZWFkX3N0YXRlID0gc2VsZi5TVEFURV9BQ1RJVkUKLQotICAgIGRlZiBnZXRf
bG9jYWxfYWRkcihzZWxmKToKLSAgICAgICAgIiIiR2V0dGVyIHRvIG1pbWljIG1wX2Nvbm4ubG9j
YWxfYWRkci4iIiIKLQotICAgICAgICByZXR1cm4gc2VsZi5fbXV4X2hhbmRsZXIucGh5c2ljYWxf
Y29ubmVjdGlvbi5nZXRfbG9jYWxfYWRkcigpCi0gICAgbG9jYWxfYWRkciA9IHByb3BlcnR5KGdl
dF9sb2NhbF9hZGRyKQotCi0gICAgZGVmIGdldF9yZW1vdGVfYWRkcihzZWxmKToKLSAgICAgICAg
IiIiR2V0dGVyIHRvIG1pbWljIG1wX2Nvbm4ucmVtb3RlX2FkZHIuIiIiCi0KLSAgICAgICAgcmV0
dXJuIHNlbGYuX211eF9oYW5kbGVyLnBoeXNpY2FsX2Nvbm5lY3Rpb24uZ2V0X3JlbW90ZV9hZGRy
KCkKLSAgICByZW1vdGVfYWRkciA9IHByb3BlcnR5KGdldF9yZW1vdGVfYWRkcikKLQotICAgIGRl
ZiBnZXRfbWVtb3JpemVkX2xpbmVzKHNlbGYpOgotICAgICAgICAiIiJHZXRzIG1lbW9yaXplZCBs
aW5lcy4gTm90IHN1cHBvcnRlZC4iIiIKLQotICAgICAgICByYWlzZSBNdXhVbmV4cGVjdGVkRXhj
ZXB0aW9uKCdfTG9naWNhbENvbm5lY3Rpb24gZG9lcyBub3Qgc3VwcG9ydCAnCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2dldF9tZW1vcml6ZWRfbGluZXMnKQotCi0gICAg
ZGVmIHdyaXRlKHNlbGYsIGRhdGEpOgotICAgICAgICAiIiJXcml0ZXMgZGF0YS4gbXV4X2hhbmRs
ZXIgc2VuZHMgZGF0YSBhc3luY2hyb25vdXNseS4gVGhlIGNhbGxlciB3aWxsCi0gICAgICAgIGJl
IHN1c3BlbmRlZCB1bnRpbCB3cml0ZSBkb25lLgotCi0gICAgICAgIEFyZ3M6Ci0gICAgICAgICAg
ICBkYXRhOiBkYXRhIHRvIGJlIHdyaXR0ZW4uCi0KLSAgICAgICAgUmFpc2VzOgotICAgICAgICAg
ICAgTXV4VW5leHBlY3RlZEV4Y2VwdGlvbjogd2hlbiBjYWxsZWQgYmVmb3JlIGZpbmlzaGluZyB0
aGUgcHJldmlvdXMKLSAgICAgICAgICAgICAgICB3cml0ZS4KLSAgICAgICAgIiIiCi0KLSAgICAg
ICAgdHJ5OgotICAgICAgICAgICAgc2VsZi5fd3JpdGVfY29uZGl0aW9uLmFjcXVpcmUoKQotICAg
ICAgICAgICAgaWYgc2VsZi5fd2FpdGluZ193cml0ZV9jb21wbGV0aW9uOgotICAgICAgICAgICAg
ICAgIHJhaXNlIE11eFVuZXhwZWN0ZWRFeGNlcHRpb24oCi0gICAgICAgICAgICAgICAgICAgICdM
b2dpY2FsIGNvbm5lY3Rpb24gJWQgaXMgYWxyZWFkeSB3YWl0aW5nIHRoZSBjb21wbGV0aW9uICcK
LSAgICAgICAgICAgICAgICAgICAgJ29mIHdyaXRlJyAlIHNlbGYuX2NoYW5uZWxfaWQpCi0KLSAg
ICAgICAgICAgIHNlbGYuX3dhaXRpbmdfd3JpdGVfY29tcGxldGlvbiA9IFRydWUKLSAgICAgICAg
ICAgIHNlbGYuX211eF9oYW5kbGVyLnNlbmRfZGF0YShzZWxmLl9jaGFubmVsX2lkLCBkYXRhKQot
ICAgICAgICAgICAgc2VsZi5fd3JpdGVfY29uZGl0aW9uLndhaXQoKQotICAgICAgICAgICAgIyBU
T0RPKHR5b3NoaW5vKTogUmFpc2UgYW4gZXhjZXB0aW9uIGlmIHdva2UgdXAgYnkgb25fd3JpdGVy
X2RvbmUuCi0gICAgICAgIGZpbmFsbHk6Ci0gICAgICAgICAgICBzZWxmLl93cml0ZV9jb25kaXRp
b24ucmVsZWFzZSgpCi0KLSAgICBkZWYgd3JpdGVfY29udHJvbF9kYXRhKHNlbGYsIGRhdGEpOgot
ICAgICAgICAiIiJXcml0ZXMgZGF0YSB2aWEgdGhlIGNvbnRyb2wgY2hhbm5lbC4gRG9uJ3Qgd2Fp
dCBmaW5pc2hpbmcgd3JpdGUKLSAgICAgICAgYmVjYXVzZSB0aGlzIG1ldGhvZCBjYW4gYmUgY2Fs
bGVkIGJ5IG11eCBkaXNwYXRjaGVyLgotCi0gICAgICAgIEFyZ3M6Ci0gICAgICAgICAgICBkYXRh
OiBkYXRhIHRvIGJlIHdyaXR0ZW4uCi0gICAgICAgICIiIgotCi0gICAgICAgIHNlbGYuX211eF9o
YW5kbGVyLnNlbmRfY29udHJvbF9kYXRhKGRhdGEpCi0KLSAgICBkZWYgb25fd3JpdGVfZGF0YV9k
b25lKHNlbGYpOgotICAgICAgICAiIiJDYWxsZWQgd2hlbiBzZW5kaW5nIGRhdGEgaXMgY29tcGxl
dGVkLiIiIgotCi0gICAgICAgIHRyeToKLSAgICAgICAgICAgIHNlbGYuX3dyaXRlX2NvbmRpdGlv
bi5hY3F1aXJlKCkKLSAgICAgICAgICAgIGlmIG5vdCBzZWxmLl93YWl0aW5nX3dyaXRlX2NvbXBs
ZXRpb246Ci0gICAgICAgICAgICAgICAgcmFpc2UgTXV4VW5leHBlY3RlZEV4Y2VwdGlvbigKLSAg
ICAgICAgICAgICAgICAgICAgJ0ludmFsaWQgY2FsbCBvZiBvbl93cml0ZV9kYXRhX2RvbmUgZm9y
IGxvZ2ljYWwgJwotICAgICAgICAgICAgICAgICAgICAnY29ubmVjdGlvbiAlZCcgJSBzZWxmLl9j
aGFubmVsX2lkKQotICAgICAgICAgICAgc2VsZi5fd2FpdGluZ193cml0ZV9jb21wbGV0aW9uID0g
RmFsc2UKLSAgICAgICAgICAgIHNlbGYuX3dyaXRlX2NvbmRpdGlvbi5ub3RpZnkoKQotICAgICAg
ICBmaW5hbGx5OgotICAgICAgICAgICAgc2VsZi5fd3JpdGVfY29uZGl0aW9uLnJlbGVhc2UoKQot
Ci0gICAgZGVmIG9uX3dyaXRlcl9kb25lKHNlbGYpOgotICAgICAgICAiIiJDYWxsZWQgYnkgdGhl
IG11eCBoYW5kbGVyIHdoZW4gdGhlIHdyaXRlciB0aHJlYWQgaGFzIGZpbmlzaGVkLiIiIgotCi0g
ICAgICAgIHRyeToKLSAgICAgICAgICAgIHNlbGYuX3dyaXRlX2NvbmRpdGlvbi5hY3F1aXJlKCkK
LSAgICAgICAgICAgIHNlbGYuX3dhaXRpbmdfd3JpdGVfY29tcGxldGlvbiA9IEZhbHNlCi0gICAg
ICAgICAgICBzZWxmLl93cml0ZV9jb25kaXRpb24ubm90aWZ5KCkKLSAgICAgICAgZmluYWxseToK
LSAgICAgICAgICAgIHNlbGYuX3dyaXRlX2NvbmRpdGlvbi5yZWxlYXNlKCkKLQotCi0gICAgZGVm
IGFwcGVuZF9mcmFtZV9kYXRhKHNlbGYsIGZyYW1lX2RhdGEpOgotICAgICAgICAiIiJBcHBlbmRz
IGluY29taW5nIGZyYW1lIGRhdGEuIENhbGxlZCB3aGVuIG11eF9oYW5kbGVyIGRpc3BhdGNoZXMK
LSAgICAgICAgZnJhbWUgZGF0YSB0byB0aGUgY29ycmVzcG9uZGluZyBhcHBsaWNhdGlvbi4KLQot
ICAgICAgICBBcmdzOgotICAgICAgICAgICAgZnJhbWVfZGF0YTogaW5jb21pbmcgZnJhbWUgZGF0
YS4KLSAgICAgICAgIiIiCi0KLSAgICAgICAgc2VsZi5fcmVhZF9jb25kaXRpb24uYWNxdWlyZSgp
Ci0gICAgICAgIHNlbGYuX2luY29taW5nX2RhdGEgKz0gZnJhbWVfZGF0YQotICAgICAgICBzZWxm
Ll9yZWFkX2NvbmRpdGlvbi5ub3RpZnkoKQotICAgICAgICBzZWxmLl9yZWFkX2NvbmRpdGlvbi5y
ZWxlYXNlKCkKLQotICAgIGRlZiByZWFkKHNlbGYsIGxlbmd0aCk6Ci0gICAgICAgICIiIlJlYWRz
IGRhdGEuIEJsb2NrcyB1bnRpbCBlbm91Z2ggZGF0YSBoYXMgYXJyaXZlZCB2aWEgcGh5c2ljYWwK
LSAgICAgICAgY29ubmVjdGlvbi4KLQotICAgICAgICBBcmdzOgotICAgICAgICAgICAgbGVuZ3Ro
OiBsZW5ndGggb2YgZGF0YSB0byBiZSByZWFkLgotICAgICAgICBSYWlzZXM6Ci0gICAgICAgICAg
ICBMb2dpY2FsQ29ubmVjdGlvbkNsb3NlZEV4Y2VwdGlvbjogd2hlbiBjbG9zaW5nIGhhbmRzaGFr
ZSBmb3IgdGhpcwotICAgICAgICAgICAgICAgIGxvZ2ljYWwgY2hhbm5lbCBoYXMgYmVlbiByZWNl
aXZlZC4KLSAgICAgICAgICAgIENvbm5lY3Rpb25UZXJtaW5hdGVkRXhjZXB0aW9uOiB3aGVuIHRo
ZSBwaHlzaWNhbCBjb25uZWN0aW9uIGhhcwotICAgICAgICAgICAgICAgIGNsb3NlZCwgb3IgYW4g
ZXJyb3IgaXMgY2F1c2VkIG9uIHRoZSByZWFkZXIgdGhyZWFkLgotICAgICAgICAiIiIKLQotICAg
ICAgICBzZWxmLl9yZWFkX2NvbmRpdGlvbi5hY3F1aXJlKCkKLSAgICAgICAgd2hpbGUgKHNlbGYu
X3JlYWRfc3RhdGUgPT0gc2VsZi5TVEFURV9BQ1RJVkUgYW5kCi0gICAgICAgICAgICAgICBsZW4o
c2VsZi5faW5jb21pbmdfZGF0YSkgPCBsZW5ndGgpOgotICAgICAgICAgICAgc2VsZi5fcmVhZF9j
b25kaXRpb24ud2FpdCgpCi0KLSAgICAgICAgdHJ5OgotICAgICAgICAgICAgaWYgc2VsZi5fcmVh
ZF9zdGF0ZSA9PSBzZWxmLlNUQVRFX0dSQUNFRlVMTFlfQ0xPU0VEOgotICAgICAgICAgICAgICAg
IHJhaXNlIExvZ2ljYWxDb25uZWN0aW9uQ2xvc2VkRXhjZXB0aW9uKAotICAgICAgICAgICAgICAg
ICAgICAnTG9naWNhbCBjaGFubmVsICVkIGhhcyBjbG9zZWQuJyAlIHNlbGYuX2NoYW5uZWxfaWQp
Ci0gICAgICAgICAgICBlbGlmIHNlbGYuX3JlYWRfc3RhdGUgPT0gc2VsZi5TVEFURV9URVJNSU5B
VEVEOgotICAgICAgICAgICAgICAgIHJhaXNlIENvbm5lY3Rpb25UZXJtaW5hdGVkRXhjZXB0aW9u
KAotICAgICAgICAgICAgICAgICAgICAnUmVjZWl2aW5nICVkIGJ5dGUgZmFpbGVkLiBMb2dpY2Fs
IGNoYW5uZWwgKCVkKSBjbG9zZWQnICUKLSAgICAgICAgICAgICAgICAgICAgKGxlbmd0aCwgc2Vs
Zi5fY2hhbm5lbF9pZCkpCi0KLSAgICAgICAgICAgIHZhbHVlID0gc2VsZi5faW5jb21pbmdfZGF0
YVs6bGVuZ3RoXQotICAgICAgICAgICAgc2VsZi5faW5jb21pbmdfZGF0YSA9IHNlbGYuX2luY29t
aW5nX2RhdGFbbGVuZ3RoOl0KLSAgICAgICAgZmluYWxseToKLSAgICAgICAgICAgIHNlbGYuX3Jl
YWRfY29uZGl0aW9uLnJlbGVhc2UoKQotCi0gICAgICAgIHJldHVybiB2YWx1ZQotCi0gICAgZGVm
IHNldF9yZWFkX3N0YXRlKHNlbGYsIG5ld19zdGF0ZSk6Ci0gICAgICAgICIiIlNldHMgdGhlIHN0
YXRlIG9mIHRoaXMgY29ubmVjdGlvbi4gQ2FsbGVkIHdoZW4gYW4gZXZlbnQgZm9yIHRoaXMKLSAg
ICAgICAgY29ubmVjdGlvbiBoYXMgb2NjdXJyZWQuCi0KLSAgICAgICAgQXJnczoKLSAgICAgICAg
ICAgIG5ld19zdGF0ZTogc3RhdGUgdG8gYmUgc2V0LiBuZXdfc3RhdGUgbXVzdCBiZSBvbmUgb2Yg
Zm9sbG93aW5nczoKLSAgICAgICAgICAgIC0gU1RBVEVfR1JBQ0VGVUxMWV9DTE9TRUQ6IHdoZW4g
Y2xvc2luZyBoYW5kc2hha2UgZm9yIHRoaXMKLSAgICAgICAgICAgICAgICBjb25uZWN0aW9uIGhh
cyBiZWVuIHJlY2VpdmVkLgotICAgICAgICAgICAgLSBTVEFURV9URVJNSU5BVEVEOiB3aGVuIHRo
ZSBwaHlzaWNhbCBjb25uZWN0aW9uIGhhcyBjbG9zZWQgb3IKLSAgICAgICAgICAgICAgICBEcm9w
Q2hhbm5lbCBvZiB0aGlzIGNvbm5lY3Rpb24gaGFzIHJlY2VpdmVkLgotICAgICAgICAiIiIKLQot
ICAgICAgICBzZWxmLl9yZWFkX2NvbmRpdGlvbi5hY3F1aXJlKCkKLSAgICAgICAgc2VsZi5fcmVh
ZF9zdGF0ZSA9IG5ld19zdGF0ZQotICAgICAgICBzZWxmLl9yZWFkX2NvbmRpdGlvbi5ub3RpZnko
KQotICAgICAgICBzZWxmLl9yZWFkX2NvbmRpdGlvbi5yZWxlYXNlKCkKLQotCi1jbGFzcyBfSW5u
ZXJNZXNzYWdlKG9iamVjdCk6Ci0gICAgIiIiSG9sZHMgdGhlIHJlc3VsdCBvZiBfSW5uZXJNZXNz
YWdlQnVpbGRlci5idWlsZCgpLgotICAgICIiIgotCi0gICAgZGVmIF9faW5pdF9fKHNlbGYsIG9w
Y29kZSwgcGF5bG9hZCk6Ci0gICAgICAgIHNlbGYub3Bjb2RlID0gb3Bjb2RlCi0gICAgICAgIHNl
bGYucGF5bG9hZCA9IHBheWxvYWQKLQotCi1jbGFzcyBfSW5uZXJNZXNzYWdlQnVpbGRlcihvYmpl
Y3QpOgotICAgICIiIkEgY2xhc3MgdGhhdCBob2xkcyB0aGUgY29udGV4dCBvZiBpbm5lciBtZXNz
YWdlIGZyYWdtZW50YXRpb24gYW5kCi0gICAgYnVpbGRzIGEgbWVzc2FnZSBmcm9tIGZyYWdtZW50
ZWQgaW5uZXIgZnJhbWUocykuCi0gICAgIiIiCi0KLSAgICBkZWYgX19pbml0X18oc2VsZik6Ci0g
ICAgICAgIHNlbGYuX2NvbnRyb2xfb3Bjb2RlID0gTm9uZQotICAgICAgICBzZWxmLl9wZW5kaW5n
X2NvbnRyb2xfZnJhZ21lbnRzID0gW10KLSAgICAgICAgc2VsZi5fbWVzc2FnZV9vcGNvZGUgPSBO
b25lCi0gICAgICAgIHNlbGYuX3BlbmRpbmdfbWVzc2FnZV9mcmFnbWVudHMgPSBbXQotICAgICAg
ICBzZWxmLl9mcmFtZV9oYW5kbGVyID0gc2VsZi5faGFuZGxlX2ZpcnN0Ci0KLSAgICBkZWYgX2hh
bmRsZV9maXJzdChzZWxmLCBmcmFtZSk6Ci0gICAgICAgIGlmIGZyYW1lLm9wY29kZSA9PSBjb21t
b24uT1BDT0RFX0NPTlRJTlVBVElPTjoKLSAgICAgICAgICAgIHJhaXNlIEludmFsaWRGcmFtZUV4
Y2VwdGlvbignU2VuZGluZyBpbnZhbGlkIGNvbnRpbnVhdGlvbiBvcGNvZGUnKQotCi0gICAgICAg
IGlmIGNvbW1vbi5pc19jb250cm9sX29wY29kZShmcmFtZS5vcGNvZGUpOgotICAgICAgICAgICAg
cmV0dXJuIHNlbGYuX3Byb2Nlc3NfZmlyc3RfZnJhZ21lbnRlZF9jb250cm9sKGZyYW1lKQotICAg
ICAgICBlbHNlOgotICAgICAgICAgICAgcmV0dXJuIHNlbGYuX3Byb2Nlc3NfZmlyc3RfZnJhZ21l
bnRlZF9tZXNzYWdlKGZyYW1lKQotCi0gICAgZGVmIF9wcm9jZXNzX2ZpcnN0X2ZyYWdtZW50ZWRf
Y29udHJvbChzZWxmLCBmcmFtZSk6Ci0gICAgICAgIHNlbGYuX2NvbnRyb2xfb3Bjb2RlID0gZnJh
bWUub3Bjb2RlCi0gICAgICAgIHNlbGYuX3BlbmRpbmdfY29udHJvbF9mcmFnbWVudHMuYXBwZW5k
KGZyYW1lLnBheWxvYWQpCi0gICAgICAgIGlmIG5vdCBmcmFtZS5maW46Ci0gICAgICAgICAgICBz
ZWxmLl9mcmFtZV9oYW5kbGVyID0gc2VsZi5faGFuZGxlX2ZyYWdtZW50ZWRfY29udHJvbAotICAg
ICAgICAgICAgcmV0dXJuIE5vbmUKLSAgICAgICAgcmV0dXJuIHNlbGYuX3JlYXNzZW1ibGVfZnJh
Z21lbnRlZF9jb250cm9sKCkKLQotICAgIGRlZiBfcHJvY2Vzc19maXJzdF9mcmFnbWVudGVkX21l
c3NhZ2Uoc2VsZiwgZnJhbWUpOgotICAgICAgICBzZWxmLl9tZXNzYWdlX29wY29kZSA9IGZyYW1l
Lm9wY29kZQotICAgICAgICBzZWxmLl9wZW5kaW5nX21lc3NhZ2VfZnJhZ21lbnRzLmFwcGVuZChm
cmFtZS5wYXlsb2FkKQotICAgICAgICBpZiBub3QgZnJhbWUuZmluOgotICAgICAgICAgICAgc2Vs
Zi5fZnJhbWVfaGFuZGxlciA9IHNlbGYuX2hhbmRsZV9mcmFnbWVudGVkX21lc3NhZ2UKLSAgICAg
ICAgICAgIHJldHVybiBOb25lCi0gICAgICAgIHJldHVybiBzZWxmLl9yZWFzc2VtYmxlX2ZyYWdt
ZW50ZWRfbWVzc2FnZSgpCi0KLSAgICBkZWYgX2hhbmRsZV9mcmFnbWVudGVkX2NvbnRyb2woc2Vs
ZiwgZnJhbWUpOgotICAgICAgICBpZiBmcmFtZS5vcGNvZGUgIT0gY29tbW9uLk9QQ09ERV9DT05U
SU5VQVRJT046Ci0gICAgICAgICAgICByYWlzZSBJbnZhbGlkRnJhbWVFeGNlcHRpb24oCi0gICAg
ICAgICAgICAgICAgJ1NlbmRpbmcgaW52YWxpZCBvcGNvZGUgJWQgd2hpbGUgc2VuZGluZyBmcmFn
bWVudGVkIGNvbnRyb2wgJwotICAgICAgICAgICAgICAgICdtZXNzYWdlJyAlIGZyYW1lLm9wY29k
ZSkKLSAgICAgICAgc2VsZi5fcGVuZGluZ19jb250cm9sX2ZyYWdtZW50cy5hcHBlbmQoZnJhbWUu
cGF5bG9hZCkKLSAgICAgICAgaWYgbm90IGZyYW1lLmZpbjoKLSAgICAgICAgICAgIHJldHVybiBO
b25lCi0gICAgICAgIHJldHVybiBzZWxmLl9yZWFzc2VtYmxlX2ZyYWdtZW50ZWRfY29udHJvbCgp
Ci0KLSAgICBkZWYgX3JlYXNzZW1ibGVfZnJhZ21lbnRlZF9jb250cm9sKHNlbGYpOgotICAgICAg
ICBvcGNvZGUgPSBzZWxmLl9jb250cm9sX29wY29kZQotICAgICAgICBwYXlsb2FkID0gJycuam9p
bihzZWxmLl9wZW5kaW5nX2NvbnRyb2xfZnJhZ21lbnRzKQotICAgICAgICBzZWxmLl9jb250cm9s
X29wY29kZSA9IE5vbmUKLSAgICAgICAgc2VsZi5fcGVuZGluZ19jb250cm9sX2ZyYWdtZW50cyA9
IFtdCi0gICAgICAgIGlmIHNlbGYuX21lc3NhZ2Vfb3Bjb2RlIGlzIG5vdCBOb25lOgotICAgICAg
ICAgICAgc2VsZi5fZnJhbWVfaGFuZGxlciA9IHNlbGYuX2hhbmRsZV9mcmFnbWVudGVkX21lc3Nh
Z2UKLSAgICAgICAgZWxzZToKLSAgICAgICAgICAgIHNlbGYuX2ZyYW1lX2hhbmRsZXIgPSBzZWxm
Ll9oYW5kbGVfZmlyc3QKLSAgICAgICAgcmV0dXJuIF9Jbm5lck1lc3NhZ2Uob3Bjb2RlLCBwYXls
b2FkKQotCi0gICAgZGVmIF9oYW5kbGVfZnJhZ21lbnRlZF9tZXNzYWdlKHNlbGYsIGZyYW1lKToK
LSAgICAgICAgIyBTZW5kZXIgY2FuIGludGVybGVhdmUgYSBjb250cm9sIG1lc3NhZ2Ugd2hpbGUg
c2VuZGluZyBmcmFnbWVudGVkCi0gICAgICAgICMgbWVzc2FnZXMuCi0gICAgICAgIGlmIGNvbW1v
bi5pc19jb250cm9sX29wY29kZShmcmFtZS5vcGNvZGUpOgotICAgICAgICAgICAgaWYgc2VsZi5f
Y29udHJvbF9vcGNvZGUgaXMgbm90IE5vbmU6Ci0gICAgICAgICAgICAgICAgcmFpc2UgTXV4VW5l
eHBlY3RlZEV4Y2VwdGlvbigKLSAgICAgICAgICAgICAgICAgICAgJ1Nob3VsZCBub3QgcmVhY2gg
aGVyZShCdWcgaW4gYnVpbGRlciknKQotICAgICAgICAgICAgcmV0dXJuIHNlbGYuX3Byb2Nlc3Nf
Zmlyc3RfZnJhZ21lbnRlZF9jb250cm9sKGZyYW1lKQotCi0gICAgICAgIGlmIGZyYW1lLm9wY29k
ZSAhPSBjb21tb24uT1BDT0RFX0NPTlRJTlVBVElPTjoKLSAgICAgICAgICAgIHJhaXNlIEludmFs
aWRGcmFtZUV4Y2VwdGlvbigKLSAgICAgICAgICAgICAgICAnU2VuZGluZyBpbnZhbGlkIG9wY29k
ZSAlZCB3aGlsZSBzZW5kaW5nIGZyYWdtZW50ZWQgbWVzc2FnZScgJQotICAgICAgICAgICAgICAg
IGZyYW1lLm9wY29kZSkKLSAgICAgICAgc2VsZi5fcGVuZGluZ19tZXNzYWdlX2ZyYWdtZW50cy5h
cHBlbmQoZnJhbWUucGF5bG9hZCkKLSAgICAgICAgaWYgbm90IGZyYW1lLmZpbjoKLSAgICAgICAg
ICAgIHJldHVybiBOb25lCi0gICAgICAgIHJldHVybiBzZWxmLl9yZWFzc2VtYmxlX2ZyYWdtZW50
ZWRfbWVzc2FnZSgpCi0KLSAgICBkZWYgX3JlYXNzZW1ibGVfZnJhZ21lbnRlZF9tZXNzYWdlKHNl
bGYpOgotICAgICAgICBvcGNvZGUgPSBzZWxmLl9tZXNzYWdlX29wY29kZQotICAgICAgICBwYXls
b2FkID0gJycuam9pbihzZWxmLl9wZW5kaW5nX21lc3NhZ2VfZnJhZ21lbnRzKQotICAgICAgICBz
ZWxmLl9tZXNzYWdlX29wY29kZSA9IE5vbmUKLSAgICAgICAgc2VsZi5fcGVuZGluZ19tZXNzYWdl
X2ZyYWdtZW50cyA9IFtdCi0gICAgICAgIHNlbGYuX2ZyYW1lX2hhbmRsZXIgPSBzZWxmLl9oYW5k
bGVfZmlyc3QKLSAgICAgICAgcmV0dXJuIF9Jbm5lck1lc3NhZ2Uob3Bjb2RlLCBwYXlsb2FkKQot
Ci0gICAgZGVmIGJ1aWxkKHNlbGYsIGZyYW1lKToKLSAgICAgICAgIiIiQnVpbGQgYW4gaW5uZXIg
bWVzc2FnZS4gUmV0dXJucyBhbiBfSW5uZXJNZXNzYWdlIGluc3RhbmNlIHdoZW4KLSAgICAgICAg
dGhlIGdpdmVuIGZyYW1lIGlzIHRoZSBsYXN0IGZyYWdtZW50ZWQgZnJhbWUuIFJldHVybnMgTm9u
ZSBvdGhlcndpc2UuCi0KLSAgICAgICAgQXJnczoKLSAgICAgICAgICAgIGZyYW1lOiBhbiBpbm5l
ciBmcmFtZS4KLSAgICAgICAgUmFpc2VzOgotICAgICAgICAgICAgSW52YWxpZEZyYW1lRXhjZXB0
aW9uOiB3aGVuIHJlY2VpdmVkIGludmFsaWQgb3Bjb2RlLiAoZS5nLgotICAgICAgICAgICAgICAg
IHJlY2VpdmluZyBub24gY29udGludWF0aW9uIGRhdGEgb3Bjb2RlIGJ1dCB0aGUgZmluIGZsYWcg
b2YKLSAgICAgICAgICAgICAgICB0aGUgcHJldmlvdXMgaW5uZXIgZnJhbWUgd2FzIG5vdCBzZXQu
KQotICAgICAgICAiIiIKLQotICAgICAgICByZXR1cm4gc2VsZi5fZnJhbWVfaGFuZGxlcihmcmFt
ZSkKLQotCi1jbGFzcyBfTG9naWNhbFN0cmVhbShTdHJlYW0pOgotICAgICIiIk1pbWljcyB0aGUg
U3RyZWFtIGNsYXNzLiBUaGlzIGNsYXNzIGludGVycHJldHMgbXVsdGlwbGV4ZWQgV2ViU29ja2V0
Ci0gICAgZnJhbWVzLgotICAgICIiIgotCi0gICAgZGVmIF9faW5pdF9fKHNlbGYsIHJlcXVlc3Qs
IHN0cmVhbV9vcHRpb25zLCBzZW5kX3F1b3RhLCByZWNlaXZlX3F1b3RhKToKLSAgICAgICAgIiIi
Q29uc3RydWN0cyBhbiBpbnN0YW5jZS4KLQotICAgICAgICBBcmdzOgotICAgICAgICAgICAgcmVx
dWVzdDogX0xvZ2ljYWxSZXF1ZXN0IGluc3RhbmNlLgotICAgICAgICAgICAgc3RyZWFtX29wdGlv
bnM6IFN0cmVhbU9wdGlvbnMgaW5zdGFuY2UuCi0gICAgICAgICAgICBzZW5kX3F1b3RhOiBJbml0
aWFsIHNlbmQgcXVvdGEuCi0gICAgICAgICAgICByZWNlaXZlX3F1b3RhOiBJbml0aWFsIHJlY2Vp
dmUgcXVvdGEuCi0gICAgICAgICIiIgotCi0gICAgICAgICMgUGh5c2ljYWwgc3RyZWFtIGlzIHJl
c3BvbnNpYmxlIGZvciBtYXNraW5nLgotICAgICAgICBzdHJlYW1fb3B0aW9ucy51bm1hc2tfcmVj
ZWl2ZSA9IEZhbHNlCi0gICAgICAgIFN0cmVhbS5fX2luaXRfXyhzZWxmLCByZXF1ZXN0LCBzdHJl
YW1fb3B0aW9ucykKLQotICAgICAgICBzZWxmLl9zZW5kX2Nsb3NlZCA9IEZhbHNlCi0gICAgICAg
IHNlbGYuX3NlbmRfcXVvdGEgPSBzZW5kX3F1b3RhCi0gICAgICAgICMgLSBQcm90ZWN0cyBfc2Vu
ZF9jbG9zZWQgYW5kIF9zZW5kX3F1b3RhCi0gICAgICAgICMgLSBTaWduYWxzIHRoZSB0aHJlYWQg
d2FpdGluZyBmb3Igc2VuZCBxdW90YSByZXBsZW5pc2hlZAotICAgICAgICBzZWxmLl9zZW5kX2Nv
bmRpdGlvbiA9IHRocmVhZGluZy5Db25kaXRpb24oKQotCi0gICAgICAgICMgVGhlIG9wY29kZSBv
ZiB0aGUgZmlyc3QgZnJhbWUgaW4gbWVzc2FnZXMuCi0gICAgICAgIHNlbGYuX21lc3NhZ2Vfb3Bj
b2RlID0gY29tbW9uLk9QQ09ERV9URVhUCi0gICAgICAgICMgVHJ1ZSB3aGVuIHRoZSBsYXN0IG1l
c3NhZ2Ugd2FzIGZyYWdtZW50ZWQuCi0gICAgICAgIHNlbGYuX2xhc3RfbWVzc2FnZV93YXNfZnJh
Z21lbnRlZCA9IEZhbHNlCi0KLSAgICAgICAgc2VsZi5fcmVjZWl2ZV9xdW90YSA9IHJlY2VpdmVf
cXVvdGEKLSAgICAgICAgc2VsZi5fd3JpdGVfaW5uZXJfZnJhbWVfc2VtYXBob3JlID0gdGhyZWFk
aW5nLlNlbWFwaG9yZSgpCi0KLSAgICAgICAgc2VsZi5faW5uZXJfbWVzc2FnZV9idWlsZGVyID0g
X0lubmVyTWVzc2FnZUJ1aWxkZXIoKQotCi0gICAgZGVmIF9jcmVhdGVfaW5uZXJfZnJhbWUoc2Vs
Ziwgb3Bjb2RlLCBwYXlsb2FkLCBlbmQ9VHJ1ZSk6Ci0gICAgICAgIGZyYW1lID0gRnJhbWUoZmlu
PWVuZCwgb3Bjb2RlPW9wY29kZSwgcGF5bG9hZD1wYXlsb2FkKQotICAgICAgICBmb3IgZnJhbWVf
ZmlsdGVyIGluIHNlbGYuX29wdGlvbnMub3V0Z29pbmdfZnJhbWVfZmlsdGVyczoKLSAgICAgICAg
ICAgIGZyYW1lX2ZpbHRlci5maWx0ZXIoZnJhbWUpCi0KLSAgICAgICAgaWYgbGVuKHBheWxvYWQp
ICE9IGxlbihmcmFtZS5wYXlsb2FkKToKLSAgICAgICAgICAgIHJhaXNlIE11eFVuZXhwZWN0ZWRF
eGNlcHRpb24oCi0gICAgICAgICAgICAgICAgJ011eCBleHRlbnNpb24gbXVzdCBub3QgYmUgdXNl
ZCBhZnRlciBleHRlbnNpb25zIHdoaWNoIGNoYW5nZSAnCi0gICAgICAgICAgICAgICAgJyBmcmFt
ZSBib3VuZGFyeScpCi0KLSAgICAgICAgZmlyc3RfYnl0ZSA9ICgoZnJhbWUuZmluIDw8IDcpIHwg
KGZyYW1lLnJzdjEgPDwgNikgfAotICAgICAgICAgICAgICAgICAgICAgIChmcmFtZS5yc3YyIDw8
IDUpIHwgKGZyYW1lLnJzdjMgPDwgNCkgfCBmcmFtZS5vcGNvZGUpCi0gICAgICAgIHJldHVybiBj
aHIoZmlyc3RfYnl0ZSkgKyBmcmFtZS5wYXlsb2FkCi0KLSAgICBkZWYgX3dyaXRlX2lubmVyX2Zy
YW1lKHNlbGYsIG9wY29kZSwgcGF5bG9hZCwgZW5kPVRydWUpOgotICAgICAgICBwYXlsb2FkX2xl
bmd0aCA9IGxlbihwYXlsb2FkKQotICAgICAgICB3cml0ZV9wb3NpdGlvbiA9IDAKLQotICAgICAg
ICB0cnk6Ci0gICAgICAgICAgICAjIEFuIGlubmVyIGZyYW1lIHdpbGwgYmUgZnJhZ21lbnRlZCBp
ZiB0aGVyZSBpcyBubyBlbm91Z2ggc2VuZAotICAgICAgICAgICAgIyBxdW90YS4gVGhpcyBzZW1h
cGhvcmUgZW5zdXJlcyB0aGF0IGZyYWdtZW50ZWQgaW5uZXIgZnJhbWVzIGFyZQotICAgICAgICAg
ICAgIyBzZW50IGluIG9yZGVyIG9uIHRoZSBsb2dpY2FsIGNoYW5uZWwuCi0gICAgICAgICAgICAj
IE5vdGUgdGhhdCBmcmFtZXMgdGhhdCBjb21lIGZyb20gb3RoZXIgbG9naWNhbCBjaGFubmVscyBv
cgotICAgICAgICAgICAgIyBtdWx0aXBsZXhpbmcgY29udHJvbCBibG9ja3MgY2FuIGJlIGluc2Vy
dGVkIGJldHdlZW4gZnJhZ21lbnRlZAotICAgICAgICAgICAgIyBpbm5lciBmcmFtZXMgb24gdGhl
IHBoeXNpY2FsIGNoYW5uZWwuCi0gICAgICAgICAgICBzZWxmLl93cml0ZV9pbm5lcl9mcmFtZV9z
ZW1hcGhvcmUuYWNxdWlyZSgpCi0KLSAgICAgICAgICAgICMgQ29uc3VtZSBhbiBvY3RldCBxdW90
YSB3aGVuIHRoaXMgaXMgdGhlIGZpcnN0IGZyYWdtZW50ZWQgZnJhbWUuCi0gICAgICAgICAgICBp
ZiBvcGNvZGUgIT0gY29tbW9uLk9QQ09ERV9DT05USU5VQVRJT046Ci0gICAgICAgICAgICAgICAg
dHJ5OgotICAgICAgICAgICAgICAgICAgICBzZWxmLl9zZW5kX2NvbmRpdGlvbi5hY3F1aXJlKCkK
LSAgICAgICAgICAgICAgICAgICAgd2hpbGUgKG5vdCBzZWxmLl9zZW5kX2Nsb3NlZCkgYW5kIHNl
bGYuX3NlbmRfcXVvdGEgPT0gMDoKLSAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuX3NlbmRf
Y29uZGl0aW9uLndhaXQoKQotCi0gICAgICAgICAgICAgICAgICAgIGlmIHNlbGYuX3NlbmRfY2xv
c2VkOgotICAgICAgICAgICAgICAgICAgICAgICAgcmFpc2UgQmFkT3BlcmF0aW9uRXhjZXB0aW9u
KAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICdMb2dpY2FsIGNvbm5lY3Rpb24gJWQgaXMg
Y2xvc2VkJyAlCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5fcmVxdWVzdC5jaGFu
bmVsX2lkKQotCi0gICAgICAgICAgICAgICAgICAgIHNlbGYuX3NlbmRfcXVvdGEgLT0gMQotICAg
ICAgICAgICAgICAgIGZpbmFsbHk6Ci0gICAgICAgICAgICAgICAgICAgIHNlbGYuX3NlbmRfY29u
ZGl0aW9uLnJlbGVhc2UoKQotCi0gICAgICAgICAgICB3aGlsZSB3cml0ZV9wb3NpdGlvbiA8IHBh
eWxvYWRfbGVuZ3RoOgotICAgICAgICAgICAgICAgIHRyeToKLSAgICAgICAgICAgICAgICAgICAg
c2VsZi5fc2VuZF9jb25kaXRpb24uYWNxdWlyZSgpCi0gICAgICAgICAgICAgICAgICAgIHdoaWxl
IChub3Qgc2VsZi5fc2VuZF9jbG9zZWQpIGFuZCBzZWxmLl9zZW5kX3F1b3RhID09IDA6Ci0gICAg
ICAgICAgICAgICAgICAgICAgICBzZWxmLl9sb2dnZXIuZGVidWcoCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgJ05vIHF1b3RhLiBXYWl0aW5nIEZsb3dDb250cm9sIG1lc3NhZ2UgZm9yICVk
LicgJQotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuX3JlcXVlc3QuY2hhbm5lbF9p
ZCkKLSAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuX3NlbmRfY29uZGl0aW9uLndhaXQoKQot
Ci0gICAgICAgICAgICAgICAgICAgIGlmIHNlbGYuX3NlbmRfY2xvc2VkOgotICAgICAgICAgICAg
ICAgICAgICAgICAgcmFpc2UgQmFkT3BlcmF0aW9uRXhjZXB0aW9uKAotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICdMb2dpY2FsIGNvbm5lY3Rpb24gJWQgaXMgY2xvc2VkJyAlCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgc2VsZi5yZXF1ZXN0Ll9jaGFubmVsX2lkKQotCi0gICAgICAg
ICAgICAgICAgICAgIHJlbWFpbmluZyA9IHBheWxvYWRfbGVuZ3RoIC0gd3JpdGVfcG9zaXRpb24K
LSAgICAgICAgICAgICAgICAgICAgd3JpdGVfbGVuZ3RoID0gbWluKHNlbGYuX3NlbmRfcXVvdGEs
IHJlbWFpbmluZykKLSAgICAgICAgICAgICAgICAgICAgaW5uZXJfZnJhbWVfZW5kID0gKAotICAg
ICAgICAgICAgICAgICAgICAgICAgZW5kIGFuZAotICAgICAgICAgICAgICAgICAgICAgICAgKHdy
aXRlX3Bvc2l0aW9uICsgd3JpdGVfbGVuZ3RoID09IHBheWxvYWRfbGVuZ3RoKSkKLQotICAgICAg
ICAgICAgICAgICAgICBpbm5lcl9mcmFtZSA9IHNlbGYuX2NyZWF0ZV9pbm5lcl9mcmFtZSgKLSAg
ICAgICAgICAgICAgICAgICAgICAgIG9wY29kZSwKLSAgICAgICAgICAgICAgICAgICAgICAgIHBh
eWxvYWRbd3JpdGVfcG9zaXRpb246d3JpdGVfcG9zaXRpb24rd3JpdGVfbGVuZ3RoXSwKLSAgICAg
ICAgICAgICAgICAgICAgICAgIGlubmVyX2ZyYW1lX2VuZCkKLSAgICAgICAgICAgICAgICAgICAg
c2VsZi5fc2VuZF9xdW90YSAtPSB3cml0ZV9sZW5ndGgKLSAgICAgICAgICAgICAgICAgICAgc2Vs
Zi5fbG9nZ2VyLmRlYnVnKCdDb25zdW1lZCBxdW90YT0lZCwgcmVtYWluaW5nPSVkJyAlCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAod3JpdGVfbGVuZ3RoLCBzZWxmLl9z
ZW5kX3F1b3RhKSkKLSAgICAgICAgICAgICAgICBmaW5hbGx5OgotICAgICAgICAgICAgICAgICAg
ICBzZWxmLl9zZW5kX2NvbmRpdGlvbi5yZWxlYXNlKCkKLQotICAgICAgICAgICAgICAgICMgV3Jp
dGluZyBkYXRhIHdpbGwgYmxvY2sgdGhlIHdvcmtlciBzbyB3ZSBuZWVkIHRvIHJlbGVhc2UKLSAg
ICAgICAgICAgICAgICAjIF9zZW5kX2NvbmRpdGlvbiBiZWZvcmUgd3JpdGluZy4KLSAgICAgICAg
ICAgICAgICBzZWxmLl9sb2dnZXIuZGVidWcoJ1NlbmRpbmcgaW5uZXIgZnJhbWU6ICVyJyAlIGlu
bmVyX2ZyYW1lKQotICAgICAgICAgICAgICAgIHNlbGYuX3JlcXVlc3QuY29ubmVjdGlvbi53cml0
ZShpbm5lcl9mcmFtZSkKLSAgICAgICAgICAgICAgICB3cml0ZV9wb3NpdGlvbiArPSB3cml0ZV9s
ZW5ndGgKLQotICAgICAgICAgICAgICAgIG9wY29kZSA9IGNvbW1vbi5PUENPREVfQ09OVElOVUFU
SU9OCi0KLSAgICAgICAgZXhjZXB0IFZhbHVlRXJyb3IsIGU6Ci0gICAgICAgICAgICByYWlzZSBC
YWRPcGVyYXRpb25FeGNlcHRpb24oZSkKLSAgICAgICAgZmluYWxseToKLSAgICAgICAgICAgIHNl
bGYuX3dyaXRlX2lubmVyX2ZyYW1lX3NlbWFwaG9yZS5yZWxlYXNlKCkKLQotICAgIGRlZiByZXBs
ZW5pc2hfc2VuZF9xdW90YShzZWxmLCBzZW5kX3F1b3RhKToKLSAgICAgICAgIiIiUmVwbGVuaXNo
IHNlbmQgcXVvdGEuIiIiCi0KLSAgICAgICAgdHJ5OgotICAgICAgICAgICAgc2VsZi5fc2VuZF9j
b25kaXRpb24uYWNxdWlyZSgpCi0gICAgICAgICAgICBpZiBzZWxmLl9zZW5kX3F1b3RhICsgc2Vu
ZF9xdW90YSA+IDB4N0ZGRkZGRkZGRkZGRkZGRjoKLSAgICAgICAgICAgICAgICBzZWxmLl9zZW5k
X3F1b3RhID0gMAotICAgICAgICAgICAgICAgIHJhaXNlIExvZ2ljYWxDaGFubmVsRXJyb3IoCi0g
ICAgICAgICAgICAgICAgICAgIHNlbGYuX3JlcXVlc3QuY2hhbm5lbF9pZCwgX0RST1BfQ09ERV9T
RU5EX1FVT1RBX09WRVJGTE9XKQotICAgICAgICAgICAgc2VsZi5fc2VuZF9xdW90YSArPSBzZW5k
X3F1b3RhCi0gICAgICAgICAgICBzZWxmLl9sb2dnZXIuZGVidWcoJ1JlcGxlbmlzaGVkIHNlbmQg
cXVvdGEgZm9yIGNoYW5uZWwgaWQgJWQ6ICVkJyAlCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgKHNlbGYuX3JlcXVlc3QuY2hhbm5lbF9pZCwgc2VsZi5fc2VuZF9xdW90YSkpCi0gICAg
ICAgIGZpbmFsbHk6Ci0gICAgICAgICAgICBzZWxmLl9zZW5kX2NvbmRpdGlvbi5ub3RpZnkoKQot
ICAgICAgICAgICAgc2VsZi5fc2VuZF9jb25kaXRpb24ucmVsZWFzZSgpCi0KLSAgICBkZWYgY29u
c3VtZV9yZWNlaXZlX3F1b3RhKHNlbGYsIGFtb3VudCk6Ci0gICAgICAgICIiIkNvbnN1bWVzIHJl
Y2VpdmUgcXVvdGEuIFJldHVybnMgRmFsc2Ugb24gZmFpbHVyZS4iIiIKLQotICAgICAgICBpZiBz
ZWxmLl9yZWNlaXZlX3F1b3RhIDwgYW1vdW50OgotICAgICAgICAgICAgc2VsZi5fbG9nZ2VyLmRl
YnVnKCdWaW9sYXRlIHF1b3RhIG9uIGNoYW5uZWwgaWQgJWQ6ICVkIDwgJWQnICUKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAoc2VsZi5fcmVxdWVzdC5jaGFubmVsX2lkLAotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLl9yZWNlaXZlX3F1b3RhLCBhbW91bnQpKQot
ICAgICAgICAgICAgcmV0dXJuIEZhbHNlCi0gICAgICAgIHNlbGYuX3JlY2VpdmVfcXVvdGEgLT0g
YW1vdW50Ci0gICAgICAgIHJldHVybiBUcnVlCi0KLSAgICBkZWYgc2VuZF9tZXNzYWdlKHNlbGYs
IG1lc3NhZ2UsIGVuZD1UcnVlLCBiaW5hcnk9RmFsc2UpOgotICAgICAgICAiIiJPdmVycmlkZSBT
dHJlYW0uc2VuZF9tZXNzYWdlLiIiIgotCi0gICAgICAgIGlmIHNlbGYuX3JlcXVlc3Quc2VydmVy
X3Rlcm1pbmF0ZWQ6Ci0gICAgICAgICAgICByYWlzZSBCYWRPcGVyYXRpb25FeGNlcHRpb24oCi0g
ICAgICAgICAgICAgICAgJ1JlcXVlc3RlZCBzZW5kX21lc3NhZ2UgYWZ0ZXIgc2VuZGluZyBvdXQg
YSBjbG9zaW5nIGhhbmRzaGFrZScpCi0KLSAgICAgICAgaWYgYmluYXJ5IGFuZCBpc2luc3RhbmNl
KG1lc3NhZ2UsIHVuaWNvZGUpOgotICAgICAgICAgICAgcmFpc2UgQmFkT3BlcmF0aW9uRXhjZXB0
aW9uKAotICAgICAgICAgICAgICAgICdNZXNzYWdlIGZvciBiaW5hcnkgZnJhbWUgbXVzdCBiZSBp
bnN0YW5jZSBvZiBzdHInKQotCi0gICAgICAgIGlmIGJpbmFyeToKLSAgICAgICAgICAgIG9wY29k
ZSA9IGNvbW1vbi5PUENPREVfQklOQVJZCi0gICAgICAgIGVsc2U6Ci0gICAgICAgICAgICBvcGNv
ZGUgPSBjb21tb24uT1BDT0RFX1RFWFQKLSAgICAgICAgICAgIG1lc3NhZ2UgPSBtZXNzYWdlLmVu
Y29kZSgndXRmLTgnKQotCi0gICAgICAgIGZvciBtZXNzYWdlX2ZpbHRlciBpbiBzZWxmLl9vcHRp
b25zLm91dGdvaW5nX21lc3NhZ2VfZmlsdGVyczoKLSAgICAgICAgICAgIG1lc3NhZ2UgPSBtZXNz
YWdlX2ZpbHRlci5maWx0ZXIobWVzc2FnZSwgZW5kLCBiaW5hcnkpCi0KLSAgICAgICAgaWYgc2Vs
Zi5fbGFzdF9tZXNzYWdlX3dhc19mcmFnbWVudGVkOgotICAgICAgICAgICAgaWYgb3Bjb2RlICE9
IHNlbGYuX21lc3NhZ2Vfb3Bjb2RlOgotICAgICAgICAgICAgICAgIHJhaXNlIEJhZE9wZXJhdGlv
bkV4Y2VwdGlvbignTWVzc2FnZSB0eXBlcyBhcmUgZGlmZmVyZW50IGluICcKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2ZyYW1lcyBmb3IgdGhlIHNhbWUgbWVz
c2FnZScpCi0gICAgICAgICAgICBvcGNvZGUgPSBjb21tb24uT1BDT0RFX0NPTlRJTlVBVElPTgot
ICAgICAgICBlbHNlOgotICAgICAgICAgICAgc2VsZi5fbWVzc2FnZV9vcGNvZGUgPSBvcGNvZGUK
LQotICAgICAgICBzZWxmLl93cml0ZV9pbm5lcl9mcmFtZShvcGNvZGUsIG1lc3NhZ2UsIGVuZCkK
LSAgICAgICAgc2VsZi5fbGFzdF9tZXNzYWdlX3dhc19mcmFnbWVudGVkID0gbm90IGVuZAotCi0g
ICAgZGVmIF9yZWNlaXZlX2ZyYW1lKHNlbGYpOgotICAgICAgICAiIiJPdmVycmlkZXMgU3RyZWFt
Ll9yZWNlaXZlX2ZyYW1lLgotCi0gICAgICAgIEluIGFkZGl0aW9uIHRvIGNhbGwgU3RyZWFtLl9y
ZWNlaXZlX2ZyYW1lLCB0aGlzIG1ldGhvZCBhZGRzIHRoZSBhbW91bnQKLSAgICAgICAgb2YgcGF5
bG9hZCB0byByZWNlaXZpbmcgcXVvdGEgYW5kIHNlbmRzIEZsb3dDb250cm9sIHRvIHRoZSBjbGll
bnQuCi0gICAgICAgIFdlIG5lZWQgdG8gZG8gaXQgaGVyZSBiZWNhdXNlIFN0cmVhbS5yZWNlaXZl
X21lc3NhZ2UoKSBoYW5kbGVzCi0gICAgICAgIGNvbnRyb2wgZnJhbWVzIGludGVybmFsbHkuCi0g
ICAgICAgICIiIgotCi0gICAgICAgIG9wY29kZSwgcGF5bG9hZCwgZmluLCByc3YxLCByc3YyLCBy
c3YzID0gU3RyZWFtLl9yZWNlaXZlX2ZyYW1lKHNlbGYpCi0gICAgICAgIGFtb3VudCA9IGxlbihw
YXlsb2FkKQotICAgICAgICAjIFJlcGxlbmlzaCBleHRyYSBvbmUgb2N0ZXQgd2hlbiByZWNlaXZp
bmcgdGhlIGZpcnN0IGZyYWdtZW50ZWQgZnJhbWUuCi0gICAgICAgIGlmIG9wY29kZSAhPSBjb21t
b24uT1BDT0RFX0NPTlRJTlVBVElPTjoKLSAgICAgICAgICAgIGFtb3VudCArPSAxCi0gICAgICAg
IHNlbGYuX3JlY2VpdmVfcXVvdGEgKz0gYW1vdW50Ci0gICAgICAgIGZyYW1lX2RhdGEgPSBfY3Jl
YXRlX2Zsb3dfY29udHJvbChzZWxmLl9yZXF1ZXN0LmNoYW5uZWxfaWQsCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbW91bnQpCi0gICAgICAgIHNlbGYuX2xvZ2dl
ci5kZWJ1ZygnU2VuZGluZyBmbG93IGNvbnRyb2wgZm9yICVkLCByZXBsZW5pc2hlZD0lZCcgJQot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgKHNlbGYuX3JlcXVlc3QuY2hhbm5lbF9pZCwgYW1v
dW50KSkKLSAgICAgICAgc2VsZi5fcmVxdWVzdC5jb25uZWN0aW9uLndyaXRlX2NvbnRyb2xfZGF0
YShmcmFtZV9kYXRhKQotICAgICAgICByZXR1cm4gb3Bjb2RlLCBwYXlsb2FkLCBmaW4sIHJzdjEs
IHJzdjIsIHJzdjMKLQotICAgIGRlZiBfZ2V0X21lc3NhZ2VfZnJvbV9mcmFtZShzZWxmLCBmcmFt
ZSk6Ci0gICAgICAgICIiIk92ZXJyaWRlcyBTdHJlYW0uX2dldF9tZXNzYWdlX2Zyb21fZnJhbWUu
Ci0gICAgICAgICIiIgotCi0gICAgICAgIHRyeToKLSAgICAgICAgICAgIGlubmVyX21lc3NhZ2Ug
PSBzZWxmLl9pbm5lcl9tZXNzYWdlX2J1aWxkZXIuYnVpbGQoZnJhbWUpCi0gICAgICAgIGV4Y2Vw
dCBJbnZhbGlkRnJhbWVFeGNlcHRpb246Ci0gICAgICAgICAgICByYWlzZSBMb2dpY2FsQ2hhbm5l
bEVycm9yKAotICAgICAgICAgICAgICAgIHNlbGYuX3JlcXVlc3QuY2hhbm5lbF9pZCwgX0RST1Bf
Q09ERV9CQURfRlJBR01FTlRBVElPTikKLQotICAgICAgICBpZiBpbm5lcl9tZXNzYWdlIGlzIE5v
bmU6Ci0gICAgICAgICAgICByZXR1cm4gTm9uZQotICAgICAgICBzZWxmLl9vcmlnaW5hbF9vcGNv
ZGUgPSBpbm5lcl9tZXNzYWdlLm9wY29kZQotICAgICAgICByZXR1cm4gaW5uZXJfbWVzc2FnZS5w
YXlsb2FkCi0KLSAgICBkZWYgcmVjZWl2ZV9tZXNzYWdlKHNlbGYpOgotICAgICAgICAiIiJPdmVy
cmlkZXMgU3RyZWFtLnJlY2VpdmVfbWVzc2FnZS4iIiIKLQotICAgICAgICAjIEp1c3QgY2FsbCBT
dHJlYW0ucmVjZWl2ZV9tZXNzYWdlKCksIGJ1dCBjYXRjaAotICAgICAgICAjIExvZ2ljYWxDb25u
ZWN0aW9uQ2xvc2VkRXhjZXB0aW9uLCB3aGljaCBpcyByYWlzZWQgd2hlbiB0aGUgbG9naWNhbAot
ICAgICAgICAjIGNvbm5lY3Rpb24gaGFzIGNsb3NlZCBncmFjZWZ1bGx5LgotICAgICAgICB0cnk6
Ci0gICAgICAgICAgICByZXR1cm4gU3RyZWFtLnJlY2VpdmVfbWVzc2FnZShzZWxmKQotICAgICAg
ICBleGNlcHQgTG9naWNhbENvbm5lY3Rpb25DbG9zZWRFeGNlcHRpb24sIGU6Ci0gICAgICAgICAg
ICBzZWxmLl9sb2dnZXIuZGVidWcoJyVzJywgZSkKLSAgICAgICAgICAgIHJldHVybiBOb25lCi0K
LSAgICBkZWYgX3NlbmRfY2xvc2luZ19oYW5kc2hha2Uoc2VsZiwgY29kZSwgcmVhc29uKToKLSAg
ICAgICAgIiIiT3ZlcnJpZGVzIFN0cmVhbS5fc2VuZF9jbG9zaW5nX2hhbmRzaGFrZS4iIiIKLQot
ICAgICAgICBib2R5ID0gY3JlYXRlX2Nsb3NpbmdfaGFuZHNoYWtlX2JvZHkoY29kZSwgcmVhc29u
KQotICAgICAgICBzZWxmLl9sb2dnZXIuZGVidWcoJ1NlbmRpbmcgY2xvc2luZyBoYW5kc2hha2Ug
Zm9yICVkOiAoJXIsICVyKScgJQotICAgICAgICAgICAgICAgICAgICAgICAgICAgKHNlbGYuX3Jl
cXVlc3QuY2hhbm5lbF9pZCwgY29kZSwgcmVhc29uKSkKLSAgICAgICAgc2VsZi5fd3JpdGVfaW5u
ZXJfZnJhbWUoY29tbW9uLk9QQ09ERV9DTE9TRSwgYm9keSwgZW5kPVRydWUpCi0KLSAgICAgICAg
c2VsZi5fcmVxdWVzdC5zZXJ2ZXJfdGVybWluYXRlZCA9IFRydWUKLQotICAgIGRlZiBzZW5kX3Bp
bmcoc2VsZiwgYm9keT0nJyk6Ci0gICAgICAgICIiIk92ZXJyaWRlcyBTdHJlYW0uc2VuZF9waW5n
IiIiCi0KLSAgICAgICAgc2VsZi5fbG9nZ2VyLmRlYnVnKCdTZW5kaW5nIHBpbmcgb24gbG9naWNh
bCBjaGFubmVsICVkOiAlcicgJQotICAgICAgICAgICAgICAgICAgICAgICAgICAgKHNlbGYuX3Jl
cXVlc3QuY2hhbm5lbF9pZCwgYm9keSkpCi0gICAgICAgIHNlbGYuX3dyaXRlX2lubmVyX2ZyYW1l
KGNvbW1vbi5PUENPREVfUElORywgYm9keSwgZW5kPVRydWUpCi0KLSAgICAgICAgc2VsZi5fcGlu
Z19xdWV1ZS5hcHBlbmQoYm9keSkKLQotICAgIGRlZiBfc2VuZF9wb25nKHNlbGYsIGJvZHkpOgot
ICAgICAgICAiIiJPdmVycmlkZXMgU3RyZWFtLl9zZW5kX3BvbmciIiIKLQotICAgICAgICBzZWxm
Ll9sb2dnZXIuZGVidWcoJ1NlbmRpbmcgcG9uZyBvbiBsb2dpY2FsIGNoYW5uZWwgJWQ6ICVyJyAl
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAoc2VsZi5fcmVxdWVzdC5jaGFubmVsX2lkLCBi
b2R5KSkKLSAgICAgICAgc2VsZi5fd3JpdGVfaW5uZXJfZnJhbWUoY29tbW9uLk9QQ09ERV9QT05H
LCBib2R5LCBlbmQ9VHJ1ZSkKLQotICAgIGRlZiBjbG9zZV9jb25uZWN0aW9uKHNlbGYsIGNvZGU9
Y29tbW9uLlNUQVRVU19OT1JNQUxfQ0xPU1VSRSwgcmVhc29uPScnKToKLSAgICAgICAgIiIiT3Zl
cnJpZGVzIFN0cmVhbS5jbG9zZV9jb25uZWN0aW9uLiIiIgotCi0gICAgICAgICMgVE9ETyhiYXNo
aSk6IEltcGxlbWVudAotICAgICAgICBzZWxmLl9sb2dnZXIuZGVidWcoJ0Nsb3NpbmcgbG9naWNh
bCBjb25uZWN0aW9uICVkJyAlCi0gICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLl9yZXF1
ZXN0LmNoYW5uZWxfaWQpCi0gICAgICAgIHNlbGYuX3JlcXVlc3Quc2VydmVyX3Rlcm1pbmF0ZWQg
PSBUcnVlCi0KLSAgICBkZWYgc3RvcF9zZW5kaW5nKHNlbGYpOgotICAgICAgICAiIiJTdG9wcyBh
Y2NlcHRpbmcgbmV3IHNlbmQgb3BlcmF0aW9uIChfd3JpdGVfaW5uZXJfZnJhbWUpLiIiIgotCi0g
ICAgICAgIHNlbGYuX3NlbmRfY29uZGl0aW9uLmFjcXVpcmUoKQotICAgICAgICBzZWxmLl9zZW5k
X2Nsb3NlZCA9IFRydWUKLSAgICAgICAgc2VsZi5fc2VuZF9jb25kaXRpb24ubm90aWZ5KCkKLSAg
ICAgICAgc2VsZi5fc2VuZF9jb25kaXRpb24ucmVsZWFzZSgpCi0KLQotY2xhc3MgX091dGdvaW5n
RGF0YShvYmplY3QpOgotICAgICIiIkEgc3RydWN0dXJlIHRoYXQgaG9sZHMgZGF0YSB0byBiZSBz
ZW50IHZpYSBwaHlzaWNhbCBjb25uZWN0aW9uIGFuZAotICAgIG9yaWdpbiBvZiB0aGUgZGF0YS4K
LSAgICAiIiIKLQotICAgIGRlZiBfX2luaXRfXyhzZWxmLCBjaGFubmVsX2lkLCBkYXRhKToKLSAg
ICAgICAgc2VsZi5jaGFubmVsX2lkID0gY2hhbm5lbF9pZAotICAgICAgICBzZWxmLmRhdGEgPSBk
YXRhCi0KLQotY2xhc3MgX1BoeXNpY2FsQ29ubmVjdGlvbldyaXRlcih0aHJlYWRpbmcuVGhyZWFk
KToKLSAgICAiIiJBIHRocmVhZCB0aGF0IGlzIHJlc3BvbnNpYmxlIGZvciB3cml0aW5nIGRhdGEg
dG8gcGh5c2ljYWwgY29ubmVjdGlvbi4KLQotICAgIFRPRE8oYmFzaGkpOiBNYWtlIHN1cmUgdGhl
cmUgaXMgbm8gdGhyZWFkLXNhZmV0eSBwcm9ibGVtIHdoZW4gdGhlIHJlYWRlcgotICAgIHRocmVh
ZCByZWFkcyBkYXRhIGZyb20gdGhlIHNhbWUgc29ja2V0IGF0IGEgdGltZS4KLSAgICAiIiIKLQot
ICAgIGRlZiBfX2luaXRfXyhzZWxmLCBtdXhfaGFuZGxlcik6Ci0gICAgICAgICIiIkNvbnN0cnVj
dHMgYW4gaW5zdGFuY2UuCi0KLSAgICAgICAgQXJnczoKLSAgICAgICAgICAgIG11eF9oYW5kbGVy
OiBfTXV4SGFuZGxlciBpbnN0YW5jZS4KLSAgICAgICAgIiIiCi0KLSAgICAgICAgdGhyZWFkaW5n
LlRocmVhZC5fX2luaXRfXyhzZWxmKQotICAgICAgICBzZWxmLl9sb2dnZXIgPSB1dGlsLmdldF9j
bGFzc19sb2dnZXIoc2VsZikKLSAgICAgICAgc2VsZi5fbXV4X2hhbmRsZXIgPSBtdXhfaGFuZGxl
cgotICAgICAgICBzZWxmLnNldERhZW1vbihUcnVlKQotCi0gICAgICAgICMgV2hlbiBzZXQsIG1h
a2UgdGhpcyB0aHJlYWQgc3RvcCBhY2NlcHRpbmcgbmV3IGRhdGEsIGZsdXNoIHBlbmRpbmcKLSAg
ICAgICAgIyBkYXRhIGFuZCBleGl0LgotICAgICAgICBzZWxmLl9zdG9wX3JlcXVlc3RlZCA9IEZh
bHNlCi0gICAgICAgICMgVGhlIGNsb3NlIGNvZGUgb2YgdGhlIHBoeXNpY2FsIGNvbm5lY3Rpb24u
Ci0gICAgICAgIHNlbGYuX2Nsb3NlX2NvZGUgPSBjb21tb24uU1RBVFVTX05PUk1BTF9DTE9TVVJF
Ci0gICAgICAgICMgRGVxdWUgZm9yIHBhc3Npbmcgd3JpdGUgZGF0YS4gSXQncyBwcm90ZWN0ZWQg
YnkgX2RlcXVlX2NvbmRpdGlvbgotICAgICAgICAjIHVudGlsIF9zdG9wX3JlcXVlc3RlZCBpcyBz
ZXQuCi0gICAgICAgIHNlbGYuX2RlcXVlID0gY29sbGVjdGlvbnMuZGVxdWUoKQotICAgICAgICAj
IC0gUHJvdGVjdHMgX2RlcXVlLCBfc3RvcF9yZXF1ZXN0ZWQgYW5kIF9jbG9zZV9jb2RlCi0gICAg
ICAgICMgLSBTaWduYWxzIHRocmVhZHMgd2FpdGluZyBmb3IgdGhlbSB0byBiZSBhdmFpbGFibGUK
LSAgICAgICAgc2VsZi5fZGVxdWVfY29uZGl0aW9uID0gdGhyZWFkaW5nLkNvbmRpdGlvbigpCi0K
LSAgICBkZWYgcHV0X291dGdvaW5nX2RhdGEoc2VsZiwgZGF0YSk6Ci0gICAgICAgICIiIlB1dHMg
b3V0Z29pbmcgZGF0YS4KLQotICAgICAgICBBcmdzOgotICAgICAgICAgICAgZGF0YTogX091dGdv
aW5nRGF0YSBpbnN0YW5jZS4KLQotICAgICAgICBSYWlzZXM6Ci0gICAgICAgICAgICBCYWRPcGVy
YXRpb25FeGNlcHRpb246IHdoZW4gdGhlIHRocmVhZCBoYXMgYmVlbiByZXF1ZXN0ZWQgdG8KLSAg
ICAgICAgICAgICAgICB0ZXJtaW5hdGUuCi0gICAgICAgICIiIgotCi0gICAgICAgIHRyeToKLSAg
ICAgICAgICAgIHNlbGYuX2RlcXVlX2NvbmRpdGlvbi5hY3F1aXJlKCkKLSAgICAgICAgICAgIGlm
IHNlbGYuX3N0b3BfcmVxdWVzdGVkOgotICAgICAgICAgICAgICAgIHJhaXNlIEJhZE9wZXJhdGlv
bkV4Y2VwdGlvbignQ2Fubm90IHdyaXRlIGRhdGEgYW55bW9yZScpCi0KLSAgICAgICAgICAgIHNl
bGYuX2RlcXVlLmFwcGVuZChkYXRhKQotICAgICAgICAgICAgc2VsZi5fZGVxdWVfY29uZGl0aW9u
Lm5vdGlmeSgpCi0gICAgICAgIGZpbmFsbHk6Ci0gICAgICAgICAgICBzZWxmLl9kZXF1ZV9jb25k
aXRpb24ucmVsZWFzZSgpCi0KLSAgICBkZWYgX3dyaXRlX2RhdGEoc2VsZiwgb3V0Z29pbmdfZGF0
YSk6Ci0gICAgICAgIG1lc3NhZ2UgPSAoX2VuY29kZV9jaGFubmVsX2lkKG91dGdvaW5nX2RhdGEu
Y2hhbm5lbF9pZCkgKwotICAgICAgICAgICAgICAgICAgIG91dGdvaW5nX2RhdGEuZGF0YSkKLSAg
ICAgICAgdHJ5OgotICAgICAgICAgICAgc2VsZi5fbXV4X2hhbmRsZXIucGh5c2ljYWxfc3RyZWFt
LnNlbmRfbWVzc2FnZSgKLSAgICAgICAgICAgICAgICBtZXNzYWdlPW1lc3NhZ2UsIGVuZD1UcnVl
LCBiaW5hcnk9VHJ1ZSkKLSAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbiwgZToKLSAgICAgICAgICAg
IHV0aWwucHJlcGVuZF9tZXNzYWdlX3RvX2V4Y2VwdGlvbigKLSAgICAgICAgICAgICAgICAnRmFp
bGVkIHRvIHNlbmQgbWVzc2FnZSB0byAlcjogJyAlCi0gICAgICAgICAgICAgICAgKHNlbGYuX211
eF9oYW5kbGVyLnBoeXNpY2FsX2Nvbm5lY3Rpb24ucmVtb3RlX2FkZHIsKSwgZSkKLSAgICAgICAg
ICAgIHJhaXNlCi0KLSAgICAgICAgIyBUT0RPKGJhc2hpKTogSXQgd291bGQgYmUgYmV0dGVyIHRv
IGJsb2NrIHRoZSB0aHJlYWQgdGhhdCBzZW5kcwotICAgICAgICAjIGNvbnRyb2wgZGF0YSBhcyB3
ZWxsLgotICAgICAgICBpZiBvdXRnb2luZ19kYXRhLmNoYW5uZWxfaWQgIT0gX0NPTlRST0xfQ0hB
Tk5FTF9JRDoKLSAgICAgICAgICAgIHNlbGYuX211eF9oYW5kbGVyLm5vdGlmeV93cml0ZV9kYXRh
X2RvbmUob3V0Z29pbmdfZGF0YS5jaGFubmVsX2lkKQotCi0gICAgZGVmIHJ1bihzZWxmKToKLSAg
ICAgICAgdHJ5OgotICAgICAgICAgICAgc2VsZi5fZGVxdWVfY29uZGl0aW9uLmFjcXVpcmUoKQot
ICAgICAgICAgICAgd2hpbGUgbm90IHNlbGYuX3N0b3BfcmVxdWVzdGVkOgotICAgICAgICAgICAg
ICAgIGlmIGxlbihzZWxmLl9kZXF1ZSkgPT0gMDoKLSAgICAgICAgICAgICAgICAgICAgc2VsZi5f
ZGVxdWVfY29uZGl0aW9uLndhaXQoKQotICAgICAgICAgICAgICAgICAgICBjb250aW51ZQotCi0g
ICAgICAgICAgICAgICAgb3V0Z29pbmdfZGF0YSA9IHNlbGYuX2RlcXVlLnBvcGxlZnQoKQotCi0g
ICAgICAgICAgICAgICAgc2VsZi5fZGVxdWVfY29uZGl0aW9uLnJlbGVhc2UoKQotICAgICAgICAg
ICAgICAgIHNlbGYuX3dyaXRlX2RhdGEob3V0Z29pbmdfZGF0YSkKLSAgICAgICAgICAgICAgICBz
ZWxmLl9kZXF1ZV9jb25kaXRpb24uYWNxdWlyZSgpCi0KLSAgICAgICAgICAgICMgRmx1c2ggZGVx
dWUuCi0gICAgICAgICAgICAjCi0gICAgICAgICAgICAjIEF0IHRoaXMgcG9pbnQsIHNlbGYuX2Rl
cXVlX2NvbmRpdGlvbiBpcyBhbHdheXMgYWNxdWlyZWQuCi0gICAgICAgICAgICB0cnk6Ci0gICAg
ICAgICAgICAgICAgd2hpbGUgbGVuKHNlbGYuX2RlcXVlKSA+IDA6Ci0gICAgICAgICAgICAgICAg
ICAgIG91dGdvaW5nX2RhdGEgPSBzZWxmLl9kZXF1ZS5wb3BsZWZ0KCkKLSAgICAgICAgICAgICAg
ICAgICAgc2VsZi5fd3JpdGVfZGF0YShvdXRnb2luZ19kYXRhKQotICAgICAgICAgICAgZmluYWxs
eToKLSAgICAgICAgICAgICAgICBzZWxmLl9kZXF1ZV9jb25kaXRpb24ucmVsZWFzZSgpCi0KLSAg
ICAgICAgICAgICMgQ2xvc2UgcGh5c2ljYWwgY29ubmVjdGlvbi4KLSAgICAgICAgICAgIHRyeToK
LSAgICAgICAgICAgICAgICAjIERvbid0IHdhaXQgdGhlIHJlc3BvbnNlIGhlcmUuIFRoZSByZXNw
b25zZSB3aWxsIGJlIHJlYWQKLSAgICAgICAgICAgICAgICAjIGJ5IHRoZSByZWFkZXIgdGhyZWFk
LgotICAgICAgICAgICAgICAgIHNlbGYuX211eF9oYW5kbGVyLnBoeXNpY2FsX3N0cmVhbS5jbG9z
ZV9jb25uZWN0aW9uKAotICAgICAgICAgICAgICAgICAgICBzZWxmLl9jbG9zZV9jb2RlLCB3YWl0
X3Jlc3BvbnNlPUZhbHNlKQotICAgICAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbiwgZToKLSAgICAg
ICAgICAgICAgICB1dGlsLnByZXBlbmRfbWVzc2FnZV90b19leGNlcHRpb24oCi0gICAgICAgICAg
ICAgICAgICAgICdGYWlsZWQgdG8gY2xvc2UgdGhlIHBoeXNpY2FsIGNvbm5lY3Rpb246ICVyJyAl
IGUpCi0gICAgICAgICAgICAgICAgcmFpc2UKLSAgICAgICAgZmluYWxseToKLSAgICAgICAgICAg
IHNlbGYuX211eF9oYW5kbGVyLm5vdGlmeV93cml0ZXJfZG9uZSgpCi0KLSAgICBkZWYgc3RvcChz
ZWxmLCBjbG9zZV9jb2RlPWNvbW1vbi5TVEFUVVNfTk9STUFMX0NMT1NVUkUpOgotICAgICAgICAi
IiJTdG9wcyB0aGUgd3JpdGVyIHRocmVhZC4iIiIKLQotICAgICAgICBzZWxmLl9kZXF1ZV9jb25k
aXRpb24uYWNxdWlyZSgpCi0gICAgICAgIHNlbGYuX3N0b3BfcmVxdWVzdGVkID0gVHJ1ZQotICAg
ICAgICBzZWxmLl9jbG9zZV9jb2RlID0gY2xvc2VfY29kZQotICAgICAgICBzZWxmLl9kZXF1ZV9j
b25kaXRpb24ubm90aWZ5KCkKLSAgICAgICAgc2VsZi5fZGVxdWVfY29uZGl0aW9uLnJlbGVhc2Uo
KQotCi0KLWNsYXNzIF9QaHlzaWNhbENvbm5lY3Rpb25SZWFkZXIodGhyZWFkaW5nLlRocmVhZCk6
Ci0gICAgIiIiQSB0aHJlYWQgdGhhdCBpcyByZXNwb25zaWJsZSBmb3IgcmVhZGluZyBkYXRhIGZy
b20gcGh5c2ljYWwgY29ubmVjdGlvbi4KLSAgICAiIiIKLQotICAgIGRlZiBfX2luaXRfXyhzZWxm
LCBtdXhfaGFuZGxlcik6Ci0gICAgICAgICIiIkNvbnN0cnVjdHMgYW4gaW5zdGFuY2UuCi0KLSAg
ICAgICAgQXJnczoKLSAgICAgICAgICAgIG11eF9oYW5kbGVyOiBfTXV4SGFuZGxlciBpbnN0YW5j
ZS4KLSAgICAgICAgIiIiCi0KLSAgICAgICAgdGhyZWFkaW5nLlRocmVhZC5fX2luaXRfXyhzZWxm
KQotICAgICAgICBzZWxmLl9sb2dnZXIgPSB1dGlsLmdldF9jbGFzc19sb2dnZXIoc2VsZikKLSAg
ICAgICAgc2VsZi5fbXV4X2hhbmRsZXIgPSBtdXhfaGFuZGxlcgotICAgICAgICBzZWxmLnNldERh
ZW1vbihUcnVlKQotCi0gICAgZGVmIHJ1bihzZWxmKToKLSAgICAgICAgd2hpbGUgVHJ1ZToKLSAg
ICAgICAgICAgIHRyeToKLSAgICAgICAgICAgICAgICBwaHlzaWNhbF9zdHJlYW0gPSBzZWxmLl9t
dXhfaGFuZGxlci5waHlzaWNhbF9zdHJlYW0KLSAgICAgICAgICAgICAgICBtZXNzYWdlID0gcGh5
c2ljYWxfc3RyZWFtLnJlY2VpdmVfbWVzc2FnZSgpCi0gICAgICAgICAgICAgICAgaWYgbWVzc2Fn
ZSBpcyBOb25lOgotICAgICAgICAgICAgICAgICAgICBicmVhawotICAgICAgICAgICAgICAgICMg
QmVsb3cgaGFwcGVucyBvbmx5IHdoZW4gYSBkYXRhIG1lc3NhZ2UgaXMgcmVjZWl2ZWQuCi0gICAg
ICAgICAgICAgICAgb3Bjb2RlID0gcGh5c2ljYWxfc3RyZWFtLmdldF9sYXN0X3JlY2VpdmVkX29w
Y29kZSgpCi0gICAgICAgICAgICAgICAgaWYgb3Bjb2RlICE9IGNvbW1vbi5PUENPREVfQklOQVJZ
OgotICAgICAgICAgICAgICAgICAgICBzZWxmLl9tdXhfaGFuZGxlci5mYWlsX3BoeXNpY2FsX2Nv
bm5lY3Rpb24oCi0gICAgICAgICAgICAgICAgICAgICAgICBfRFJPUF9DT0RFX0lOVkFMSURfRU5D
QVBTVUxBVElOR19NRVNTQUdFLAotICAgICAgICAgICAgICAgICAgICAgICAgJ1JlY2VpdmVkIGEg
dGV4dCBtZXNzYWdlIG9uIHBoeXNpY2FsIGNvbm5lY3Rpb24nKQotICAgICAgICAgICAgICAgICAg
ICBicmVhawotCi0gICAgICAgICAgICBleGNlcHQgQ29ubmVjdGlvblRlcm1pbmF0ZWRFeGNlcHRp
b24sIGU6Ci0gICAgICAgICAgICAgICAgc2VsZi5fbG9nZ2VyLmRlYnVnKCclcycsIGUpCi0gICAg
ICAgICAgICAgICAgYnJlYWsKLQotICAgICAgICAgICAgdHJ5OgotICAgICAgICAgICAgICAgIHNl
bGYuX211eF9oYW5kbGVyLmRpc3BhdGNoX21lc3NhZ2UobWVzc2FnZSkKLSAgICAgICAgICAgIGV4
Y2VwdCBQaHlzaWNhbENvbm5lY3Rpb25FcnJvciwgZToKLSAgICAgICAgICAgICAgICBzZWxmLl9t
dXhfaGFuZGxlci5mYWlsX3BoeXNpY2FsX2Nvbm5lY3Rpb24oCi0gICAgICAgICAgICAgICAgICAg
IGUuZHJvcF9jb2RlLCBlLm1lc3NhZ2UpCi0gICAgICAgICAgICAgICAgYnJlYWsKLSAgICAgICAg
ICAgIGV4Y2VwdCBMb2dpY2FsQ2hhbm5lbEVycm9yLCBlOgotICAgICAgICAgICAgICAgIHNlbGYu
X211eF9oYW5kbGVyLmZhaWxfbG9naWNhbF9jaGFubmVsKAotICAgICAgICAgICAgICAgICAgICBl
LmNoYW5uZWxfaWQsIGUuZHJvcF9jb2RlLCBlLm1lc3NhZ2UpCi0gICAgICAgICAgICBleGNlcHQg
RXhjZXB0aW9uLCBlOgotICAgICAgICAgICAgICAgIHNlbGYuX2xvZ2dlci5kZWJ1Zyh0cmFjZWJh
Y2suZm9ybWF0X2V4YygpKQotICAgICAgICAgICAgICAgIGJyZWFrCi0KLSAgICAgICAgc2VsZi5f
bXV4X2hhbmRsZXIubm90aWZ5X3JlYWRlcl9kb25lKCkKLQotCi1jbGFzcyBfV29ya2VyKHRocmVh
ZGluZy5UaHJlYWQpOgotICAgICIiIkEgdGhyZWFkIHRoYXQgaXMgcmVzcG9uc2libGUgZm9yIHJ1
bm5pbmcgdGhlIGNvcnJlc3BvbmRpbmcgYXBwbGljYXRpb24KLSAgICBoYW5kbGVyLgotICAgICIi
IgotCi0gICAgZGVmIF9faW5pdF9fKHNlbGYsIG11eF9oYW5kbGVyLCByZXF1ZXN0KToKLSAgICAg
ICAgIiIiQ29uc3RydWN0cyBhbiBpbnN0YW5jZS4KLQotICAgICAgICBBcmdzOgotICAgICAgICAg
ICAgbXV4X2hhbmRsZXI6IF9NdXhIYW5kbGVyIGluc3RhbmNlLgotICAgICAgICAgICAgcmVxdWVz
dDogX0xvZ2ljYWxSZXF1ZXN0IGluc3RhbmNlLgotICAgICAgICAiIiIKLQotICAgICAgICB0aHJl
YWRpbmcuVGhyZWFkLl9faW5pdF9fKHNlbGYpCi0gICAgICAgIHNlbGYuX2xvZ2dlciA9IHV0aWwu
Z2V0X2NsYXNzX2xvZ2dlcihzZWxmKQotICAgICAgICBzZWxmLl9tdXhfaGFuZGxlciA9IG11eF9o
YW5kbGVyCi0gICAgICAgIHNlbGYuX3JlcXVlc3QgPSByZXF1ZXN0Ci0gICAgICAgIHNlbGYuc2V0
RGFlbW9uKFRydWUpCi0KLSAgICBkZWYgcnVuKHNlbGYpOgotICAgICAgICBzZWxmLl9sb2dnZXIu
ZGVidWcoJ0xvZ2ljYWwgY2hhbm5lbCB3b3JrZXIgc3RhcnRlZC4gKGlkPSVkKScgJQotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgc2VsZi5fcmVxdWVzdC5jaGFubmVsX2lkKQotICAgICAgICB0
cnk6Ci0gICAgICAgICAgICAjIE5vbi1jcml0aWNhbCBleGNlcHRpb25zIHdpbGwgYmUgaGFuZGxl
ZCBieSBkaXNwYXRjaGVyLgotICAgICAgICAgICAgc2VsZi5fbXV4X2hhbmRsZXIuZGlzcGF0Y2hl
ci50cmFuc2Zlcl9kYXRhKHNlbGYuX3JlcXVlc3QpCi0gICAgICAgIGV4Y2VwdCBMb2dpY2FsQ2hh
bm5lbEVycm9yLCBlOgotICAgICAgICAgICAgc2VsZi5fbXV4X2hhbmRsZXIuZmFpbF9sb2dpY2Fs
X2NoYW5uZWwoCi0gICAgICAgICAgICAgICAgZS5jaGFubmVsX2lkLCBlLmRyb3BfY29kZSwgZS5t
ZXNzYWdlKQotICAgICAgICBmaW5hbGx5OgotICAgICAgICAgICAgc2VsZi5fbXV4X2hhbmRsZXIu
bm90aWZ5X3dvcmtlcl9kb25lKHNlbGYuX3JlcXVlc3QuY2hhbm5lbF9pZCkKLQotCi1jbGFzcyBf
TXV4SGFuZHNoYWtlcihoeWJpLkhhbmRzaGFrZXIpOgotICAgICIiIk9wZW5pbmcgaGFuZHNoYWtl
IHByb2Nlc3NvciBmb3IgbXVsdGlwbGV4aW5nLiIiIgotCi0gICAgX0RVTU1ZX1dFQlNPQ0tFVF9L
RVkgPSAnZEdobElITmhiWEJzWlNCdWIyNWpaUT09JwotCi0gICAgZGVmIF9faW5pdF9fKHNlbGYs
IHJlcXVlc3QsIGRpc3BhdGNoZXIsIHNlbmRfcXVvdGEsIHJlY2VpdmVfcXVvdGEpOgotICAgICAg
ICAiIiJDb25zdHJ1Y3RzIGFuIGluc3RhbmNlLgotICAgICAgICBBcmdzOgotICAgICAgICAgICAg
cmVxdWVzdDogX0xvZ2ljYWxSZXF1ZXN0IGluc3RhbmNlLgotICAgICAgICAgICAgZGlzcGF0Y2hl
cjogRGlzcGF0Y2hlciBpbnN0YW5jZSAoZGlzcGF0Y2guRGlzcGF0Y2hlcikuCi0gICAgICAgICAg
ICBzZW5kX3F1b3RhOiBJbml0aWFsIHNlbmQgcXVvdGEuCi0gICAgICAgICAgICByZWNlaXZlX3F1
b3RhOiBJbml0aWFsIHJlY2VpdmUgcXVvdGEuCi0gICAgICAgICIiIgotCi0gICAgICAgIGh5Ymku
SGFuZHNoYWtlci5fX2luaXRfXyhzZWxmLCByZXF1ZXN0LCBkaXNwYXRjaGVyKQotICAgICAgICBz
ZWxmLl9zZW5kX3F1b3RhID0gc2VuZF9xdW90YQotICAgICAgICBzZWxmLl9yZWNlaXZlX3F1b3Rh
ID0gcmVjZWl2ZV9xdW90YQotCi0gICAgICAgICMgQXBwZW5kIGhlYWRlcnMgd2hpY2ggc2hvdWxk
IG5vdCBiZSBpbmNsdWRlZCBpbiBoYW5kc2hha2UgZmllbGQgb2YKLSAgICAgICAgIyBBZGRDaGFu
bmVsUmVxdWVzdC4KLSAgICAgICAgIyBUT0RPKGJhc2hpKTogTWFrZSBzdXJlIHdoZXRoZXIgd2Ug
c2hvdWxkIHJhaXNlIGV4Y2VwdGlvbiB3aGVuCi0gICAgICAgICMgICAgIHRoZXNlIGhlYWRlcnMg
YXJlIGluY2x1ZGVkIGFscmVhZHkuCi0gICAgICAgIHJlcXVlc3QuaGVhZGVyc19pbltjb21tb24u
VVBHUkFERV9IRUFERVJdID0gKAotICAgICAgICAgICAgY29tbW9uLldFQlNPQ0tFVF9VUEdSQURF
X1RZUEUpCi0gICAgICAgIHJlcXVlc3QuaGVhZGVyc19pbltjb21tb24uU0VDX1dFQlNPQ0tFVF9W
RVJTSU9OX0hFQURFUl0gPSAoCi0gICAgICAgICAgICBzdHIoY29tbW9uLlZFUlNJT05fSFlCSV9M
QVRFU1QpKQotICAgICAgICByZXF1ZXN0LmhlYWRlcnNfaW5bY29tbW9uLlNFQ19XRUJTT0NLRVRf
S0VZX0hFQURFUl0gPSAoCi0gICAgICAgICAgICBzZWxmLl9EVU1NWV9XRUJTT0NLRVRfS0VZKQot
Ci0gICAgZGVmIF9jcmVhdGVfc3RyZWFtKHNlbGYsIHN0cmVhbV9vcHRpb25zKToKLSAgICAgICAg
IiIiT3ZlcnJpZGUgaHliaS5IYW5kc2hha2VyLl9jcmVhdGVfc3RyZWFtLiIiIgotCi0gICAgICAg
IHNlbGYuX2xvZ2dlci5kZWJ1ZygnQ3JlYXRpbmcgbG9naWNhbCBzdHJlYW0gZm9yICVkJyAlCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLl9yZXF1ZXN0LmNoYW5uZWxfaWQpCi0gICAg
ICAgIHJldHVybiBfTG9naWNhbFN0cmVhbSgKLSAgICAgICAgICAgIHNlbGYuX3JlcXVlc3QsIHN0
cmVhbV9vcHRpb25zLCBzZWxmLl9zZW5kX3F1b3RhLAotICAgICAgICAgICAgc2VsZi5fcmVjZWl2
ZV9xdW90YSkKLQotICAgIGRlZiBfY3JlYXRlX2hhbmRzaGFrZV9yZXNwb25zZShzZWxmLCBhY2Nl
cHQpOgotICAgICAgICAiIiJPdmVycmlkZSBoeWJpLl9jcmVhdGVfaGFuZHNoYWtlX3Jlc3BvbnNl
LiIiIgotCi0gICAgICAgIHJlc3BvbnNlID0gW10KLQotICAgICAgICByZXNwb25zZS5hcHBlbmQo
J0hUVFAvMS4xIDEwMSBTd2l0Y2hpbmcgUHJvdG9jb2xzXHJcbicpCi0KLSAgICAgICAgIyBVcGdy
YWRlIGFuZCBTZWMtV2ViU29ja2V0LUFjY2VwdCBzaG91bGQgYmUgZXhjbHVkZWQuCi0gICAgICAg
IHJlc3BvbnNlLmFwcGVuZCgnJXM6ICVzXHJcbicgJSAoCi0gICAgICAgICAgICBjb21tb24uQ09O
TkVDVElPTl9IRUFERVIsIGNvbW1vbi5VUEdSQURFX0NPTk5FQ1RJT05fVFlQRSkpCi0gICAgICAg
IGlmIHNlbGYuX3JlcXVlc3Qud3NfcHJvdG9jb2wgaXMgbm90IE5vbmU6Ci0gICAgICAgICAgICBy
ZXNwb25zZS5hcHBlbmQoJyVzOiAlc1xyXG4nICUgKAotICAgICAgICAgICAgICAgIGNvbW1vbi5T
RUNfV0VCU09DS0VUX1BST1RPQ09MX0hFQURFUiwKLSAgICAgICAgICAgICAgICBzZWxmLl9yZXF1
ZXN0LndzX3Byb3RvY29sKSkKLSAgICAgICAgaWYgKHNlbGYuX3JlcXVlc3Qud3NfZXh0ZW5zaW9u
cyBpcyBub3QgTm9uZSBhbmQKLSAgICAgICAgICAgIGxlbihzZWxmLl9yZXF1ZXN0LndzX2V4dGVu
c2lvbnMpICE9IDApOgotICAgICAgICAgICAgcmVzcG9uc2UuYXBwZW5kKCclczogJXNcclxuJyAl
ICgKLSAgICAgICAgICAgICAgICBjb21tb24uU0VDX1dFQlNPQ0tFVF9FWFRFTlNJT05TX0hFQURF
UiwKLSAgICAgICAgICAgICAgICBjb21tb24uZm9ybWF0X2V4dGVuc2lvbnMoc2VsZi5fcmVxdWVz
dC53c19leHRlbnNpb25zKSkpCi0gICAgICAgIHJlc3BvbnNlLmFwcGVuZCgnXHJcbicpCi0KLSAg
ICAgICAgcmV0dXJuICcnLmpvaW4ocmVzcG9uc2UpCi0KLSAgICBkZWYgX3NlbmRfaGFuZHNoYWtl
KHNlbGYsIGFjY2VwdCk6Ci0gICAgICAgICIiIk92ZXJyaWRlIGh5YmkuSGFuZHNoYWtlci5fc2Vu
ZF9oYW5kc2hha2UuIiIiCi0KLSAgICAgICAgIyBEb24ndCBzZW5kIGhhbmRzaGFrZSByZXNwb25z
ZSBmb3IgdGhlIGRlZmF1bHQgY2hhbm5lbAotICAgICAgICBpZiBzZWxmLl9yZXF1ZXN0LmNoYW5u
ZWxfaWQgPT0gX0RFRkFVTFRfQ0hBTk5FTF9JRDoKLSAgICAgICAgICAgIHJldHVybgotCi0gICAg
ICAgIGhhbmRzaGFrZV9yZXNwb25zZSA9IHNlbGYuX2NyZWF0ZV9oYW5kc2hha2VfcmVzcG9uc2Uo
YWNjZXB0KQotICAgICAgICBmcmFtZV9kYXRhID0gX2NyZWF0ZV9hZGRfY2hhbm5lbF9yZXNwb25z
ZSgKLSAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLl9yZXF1ZXN0LmNoYW5uZWxfaWQsCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgaGFuZHNoYWtlX3Jlc3BvbnNlKQotICAgICAgICBzZWxm
Ll9sb2dnZXIuZGVidWcoJ1NlbmRpbmcgaGFuZHNoYWtlIHJlc3BvbnNlIGZvciAlZDogJXInICUK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgIChzZWxmLl9yZXF1ZXN0LmNoYW5uZWxfaWQsIGZy
YW1lX2RhdGEpKQotICAgICAgICBzZWxmLl9yZXF1ZXN0LmNvbm5lY3Rpb24ud3JpdGVfY29udHJv
bF9kYXRhKGZyYW1lX2RhdGEpCi0KLQotY2xhc3MgX0xvZ2ljYWxDaGFubmVsRGF0YShvYmplY3Qp
OgotICAgICIiIkEgc3RydWN0dXJlIHRoYXQgaG9sZHMgaW5mb3JtYXRpb24gYWJvdXQgbG9naWNh
bCBjaGFubmVsLgotICAgICIiIgotCi0gICAgZGVmIF9faW5pdF9fKHNlbGYsIHJlcXVlc3QsIHdv
cmtlcik6Ci0gICAgICAgIHNlbGYucmVxdWVzdCA9IHJlcXVlc3QKLSAgICAgICAgc2VsZi53b3Jr
ZXIgPSB3b3JrZXIKLSAgICAgICAgc2VsZi5kcm9wX2NvZGUgPSBfRFJPUF9DT0RFX05PUk1BTF9D
TE9TVVJFCi0gICAgICAgIHNlbGYuZHJvcF9tZXNzYWdlID0gJycKLQotCi1jbGFzcyBfSGFuZHNo
YWtlRGVsdGFCYXNlKG9iamVjdCk6Ci0gICAgIiIiQSBjbGFzcyB0aGF0IGhvbGRzIGluZm9ybWF0
aW9uIGZvciBkZWx0YS1lbmNvZGVkIGhhbmRzaGFrZS4iIiIKLQotICAgIGRlZiBfX2luaXRfXyhz
ZWxmLCBoZWFkZXJzKToKLSAgICAgICAgc2VsZi5faGVhZGVycyA9IGhlYWRlcnMKLQotICAgIGRl
ZiBjcmVhdGVfaGVhZGVycyhzZWxmLCBkZWx0YT1Ob25lKToKLSAgICAgICAgIiIiQ3JlYXRlcyBy
ZXF1ZXN0IGhlYWRlcnMgZm9yIGFuIEFkZENoYW5uZWxSZXF1ZXN0IHRoYXQgaGFzCi0gICAgICAg
IGRlbHRhLWVuY29kZWQgaGFuZHNoYWtlLgotCi0gICAgICAgIEFyZ3M6Ci0gICAgICAgICAgICBk
ZWx0YTogaGVhZGVycyBzaG91bGQgYmUgb3ZlcnJpZGRlbi4KLSAgICAgICAgIiIiCi0KLSAgICAg
ICAgaGVhZGVycyA9IGNvcHkuY29weShzZWxmLl9oZWFkZXJzKQotICAgICAgICBpZiBkZWx0YToK
LSAgICAgICAgICAgIGZvciBrZXksIHZhbHVlIGluIGRlbHRhLml0ZW1zKCk6Ci0gICAgICAgICAg
ICAgICAgIyBUaGUgc3BlYyByZXF1aXJlcyB0aGF0IGEgaGVhZGVyIHdpdGggYW4gZW1wdHkgdmFs
dWUgaXMKLSAgICAgICAgICAgICAgICAjIHJlbW92ZWQgZnJvbSB0aGUgZGVsdGEgYmFzZS4KLSAg
ICAgICAgICAgICAgICBpZiBsZW4odmFsdWUpID09IDAgYW5kIGhlYWRlcnMuaGFzX2tleShrZXkp
OgotICAgICAgICAgICAgICAgICAgICBkZWwgaGVhZGVyc1trZXldCi0gICAgICAgICAgICAgICAg
ZWxzZToKLSAgICAgICAgICAgICAgICAgICAgaGVhZGVyc1trZXldID0gdmFsdWUKLSAgICAgICAg
cmV0dXJuIGhlYWRlcnMKLQotCi1jbGFzcyBfTXV4SGFuZGxlcihvYmplY3QpOgotICAgICIiIk11
bHRpcGxleGluZyBoYW5kbGVyLiBXaGVuIGEgaGFuZGxlciBzdGFydHMsIGl0IGxhdW5jaGVzIHRo
cmVlCi0gICAgdGhyZWFkczsgdGhlIHJlYWRlciB0aHJlYWQsIHRoZSB3cml0ZXIgdGhyZWFkLCBh
bmQgYSB3b3JrZXIgdGhyZWFkLgotCi0gICAgVGhlIHJlYWRlciB0aHJlYWQgcmVhZHMgZGF0YSBm
cm9tIHRoZSBwaHlzaWNhbCBzdHJlYW0sIGkuZS4sIHRoZQotICAgIHdzX3N0cmVhbSBvYmplY3Qg
b2YgdGhlIHVuZGVybHlpbmcgd2Vic29ja2V0IGNvbm5lY3Rpb24uIFRoZSByZWFkZXIKLSAgICB0
aHJlYWQgaW50ZXJwcmV0cyBtdWx0aXBsZXhlZCBmcmFtZXMgYW5kIGRpc3BhdGNoZXMgdGhlbSB0
byBsb2dpY2FsCi0gICAgY2hhbm5lbHMuIE1ldGhvZHMgb2YgdGhpcyBjbGFzcyBhcmUgbW9zdGx5
IGNhbGxlZCBieSB0aGUgcmVhZGVyIHRocmVhZC4KLQotICAgIFRoZSB3cml0ZXIgdGhyZWFkIHNl
bmRzIG11bHRpcGxleGVkIGZyYW1lcyB3aGljaCBhcmUgY3JlYXRlZCBieQotICAgIGxvZ2ljYWwg
Y2hhbm5lbHMgdmlhIHRoZSBwaHlzaWNhbCBjb25uZWN0aW9uLgotCi0gICAgVGhlIHdvcmtlciB0
aHJlYWQgbGF1bmNoZWQgYXQgdGhlIHN0YXJ0aW5nIHBvaW50IGhhbmRsZXMgdGhlCi0gICAgIklt
cGxpY2l0bHkgT3BlbmVkIENvbm5lY3Rpb24iLiBJZiBtdWx0aXBsZXhpbmcgaGFuZGxlciByZWNl
aXZlcwotICAgIGFuIEFkZENoYW5uZWxSZXF1ZXN0IGFuZCBhY2NlcHRzIGl0LCB0aGUgaGFuZGxl
ciB3aWxsIGxhdW5jaCBhIG5ldyB3b3JrZXIKLSAgICB0aHJlYWQgYW5kIGRpc3BhdGNoIHRoZSBy
ZXF1ZXN0IHRvIGl0LgotICAgICIiIgotCi0gICAgZGVmIF9faW5pdF9fKHNlbGYsIHJlcXVlc3Qs
IGRpc3BhdGNoZXIpOgotICAgICAgICAiIiJDb25zdHJ1Y3RzIGFuIGluc3RhbmNlLgotCi0gICAg
ICAgIEFyZ3M6Ci0gICAgICAgICAgICByZXF1ZXN0OiBtb2RfcHl0aG9uIHJlcXVlc3Qgb2YgdGhl
IHBoeXNpY2FsIGNvbm5lY3Rpb24uCi0gICAgICAgICAgICBkaXNwYXRjaGVyOiBEaXNwYXRjaGVy
IGluc3RhbmNlIChkaXNwYXRjaC5EaXNwYXRjaGVyKS4KLSAgICAgICAgIiIiCi0KLSAgICAgICAg
c2VsZi5vcmlnaW5hbF9yZXF1ZXN0ID0gcmVxdWVzdAotICAgICAgICBzZWxmLmRpc3BhdGNoZXIg
PSBkaXNwYXRjaGVyCi0gICAgICAgIHNlbGYucGh5c2ljYWxfY29ubmVjdGlvbiA9IHJlcXVlc3Qu
Y29ubmVjdGlvbgotICAgICAgICBzZWxmLnBoeXNpY2FsX3N0cmVhbSA9IHJlcXVlc3Qud3Nfc3Ry
ZWFtCi0gICAgICAgIHNlbGYuX2xvZ2dlciA9IHV0aWwuZ2V0X2NsYXNzX2xvZ2dlcihzZWxmKQot
ICAgICAgICBzZWxmLl9sb2dpY2FsX2NoYW5uZWxzID0ge30KLSAgICAgICAgc2VsZi5fbG9naWNh
bF9jaGFubmVsc19jb25kaXRpb24gPSB0aHJlYWRpbmcuQ29uZGl0aW9uKCkKLSAgICAgICAgIyBI
b2xkcyBjbGllbnQncyBpbml0aWFsIHF1b3RhCi0gICAgICAgIHNlbGYuX2NoYW5uZWxfc2xvdHMg
PSBjb2xsZWN0aW9ucy5kZXF1ZSgpCi0gICAgICAgIHNlbGYuX2hhbmRzaGFrZV9iYXNlID0gTm9u
ZQotICAgICAgICBzZWxmLl93b3JrZXJfZG9uZV9ub3RpZnlfcmVjZWl2ZWQgPSBGYWxzZQotICAg
ICAgICBzZWxmLl9yZWFkZXIgPSBOb25lCi0gICAgICAgIHNlbGYuX3dyaXRlciA9IE5vbmUKLQot
ICAgIGRlZiBzdGFydChzZWxmKToKLSAgICAgICAgIiIiU3RhcnRzIHRoZSBoYW5kbGVyLgotCi0g
ICAgICAgIFJhaXNlczoKLSAgICAgICAgICAgIE11eFVuZXhwZWN0ZWRFeGNlcHRpb246IHdoZW4g
dGhlIGhhbmRsZXIgYWxyZWFkeSBzdGFydGVkLCBvciB3aGVuCi0gICAgICAgICAgICAgICAgb3Bl
bmluZyBoYW5kc2hha2Ugb2YgdGhlIGRlZmF1bHQgY2hhbm5lbCBmYWlscy4KLSAgICAgICAgIiIi
Ci0KLSAgICAgICAgaWYgc2VsZi5fcmVhZGVyIG9yIHNlbGYuX3dyaXRlcjoKLSAgICAgICAgICAg
IHJhaXNlIE11eFVuZXhwZWN0ZWRFeGNlcHRpb24oJ011eEhhbmRsZXIgYWxyZWFkeSBzdGFydGVk
JykKLQotICAgICAgICBzZWxmLl9yZWFkZXIgPSBfUGh5c2ljYWxDb25uZWN0aW9uUmVhZGVyKHNl
bGYpCi0gICAgICAgIHNlbGYuX3dyaXRlciA9IF9QaHlzaWNhbENvbm5lY3Rpb25Xcml0ZXIoc2Vs
ZikKLSAgICAgICAgc2VsZi5fcmVhZGVyLnN0YXJ0KCkKLSAgICAgICAgc2VsZi5fd3JpdGVyLnN0
YXJ0KCkKLQotICAgICAgICAjIENyZWF0ZSAiSW1wbGljaXRseSBPcGVuZWQgQ29ubmVjdGlvbiIu
Ci0gICAgICAgIGxvZ2ljYWxfY29ubmVjdGlvbiA9IF9Mb2dpY2FsQ29ubmVjdGlvbihzZWxmLCBf
REVGQVVMVF9DSEFOTkVMX0lEKQotICAgICAgICBoZWFkZXJzID0gY29weS5jb3B5KHNlbGYub3Jp
Z2luYWxfcmVxdWVzdC5oZWFkZXJzX2luKQotICAgICAgICAjIEFkZCBleHRlbnNpb25zIGZvciBs
b2dpY2FsIGNoYW5uZWwuCi0gICAgICAgIGhlYWRlcnNbY29tbW9uLlNFQ19XRUJTT0NLRVRfRVhU
RU5TSU9OU19IRUFERVJdID0gKAotICAgICAgICAgICAgY29tbW9uLmZvcm1hdF9leHRlbnNpb25z
KAotICAgICAgICAgICAgICAgIHNlbGYub3JpZ2luYWxfcmVxdWVzdC5tdXhfcHJvY2Vzc29yLmV4
dGVuc2lvbnMoKSkpCi0gICAgICAgIHNlbGYuX2hhbmRzaGFrZV9iYXNlID0gX0hhbmRzaGFrZURl
bHRhQmFzZShoZWFkZXJzKQotICAgICAgICBsb2dpY2FsX3JlcXVlc3QgPSBfTG9naWNhbFJlcXVl
c3QoCi0gICAgICAgICAgICBfREVGQVVMVF9DSEFOTkVMX0lELAotICAgICAgICAgICAgc2VsZi5v
cmlnaW5hbF9yZXF1ZXN0Lm1ldGhvZCwKLSAgICAgICAgICAgIHNlbGYub3JpZ2luYWxfcmVxdWVz
dC51cmksCi0gICAgICAgICAgICBzZWxmLm9yaWdpbmFsX3JlcXVlc3QucHJvdG9jb2wsCi0gICAg
ICAgICAgICBzZWxmLl9oYW5kc2hha2VfYmFzZS5jcmVhdGVfaGVhZGVycygpLAotICAgICAgICAg
ICAgbG9naWNhbF9jb25uZWN0aW9uKQotICAgICAgICAjIENsaWVudCdzIHNlbmQgcXVvdGEgZm9y
IHRoZSBpbXBsaWNpdGx5IG9wZW5lZCBjb25uZWN0aW9uIGlzIHplcm8sCi0gICAgICAgICMgYnV0
IHdlIHdpbGwgc2VuZCBGbG93Q29udHJvbCBsYXRlciBzbyBzZXQgdGhlIGluaXRpYWwgcXVvdGEg
dG8KLSAgICAgICAgIyBfSU5JVElBTF9RVU9UQV9GT1JfQ0xJRU5ULgotICAgICAgICBzZWxmLl9j
aGFubmVsX3Nsb3RzLmFwcGVuZChfSU5JVElBTF9RVU9UQV9GT1JfQ0xJRU5UKQotICAgICAgICBz
ZW5kX3F1b3RhID0gc2VsZi5vcmlnaW5hbF9yZXF1ZXN0Lm11eF9wcm9jZXNzb3IucXVvdGEoKQot
ICAgICAgICBpZiBub3Qgc2VsZi5fZG9faGFuZHNoYWtlX2Zvcl9sb2dpY2FsX3JlcXVlc3QoCi0g
ICAgICAgICAgICBsb2dpY2FsX3JlcXVlc3QsIHNlbmRfcXVvdGE9c2VuZF9xdW90YSk6Ci0gICAg
ICAgICAgICByYWlzZSBNdXhVbmV4cGVjdGVkRXhjZXB0aW9uKAotICAgICAgICAgICAgICAgICdG
YWlsZWQgaGFuZHNoYWtlIG9uIHRoZSBkZWZhdWx0IGNoYW5uZWwgaWQnKQotICAgICAgICBzZWxm
Ll9hZGRfbG9naWNhbF9jaGFubmVsKGxvZ2ljYWxfcmVxdWVzdCkKLQotICAgICAgICAjIFNlbmQg
Rmxvd0NvbnRyb2wgZm9yIHRoZSBpbXBsaWNpdGx5IG9wZW5lZCBjb25uZWN0aW9uLgotICAgICAg
ICBmcmFtZV9kYXRhID0gX2NyZWF0ZV9mbG93X2NvbnRyb2woX0RFRkFVTFRfQ0hBTk5FTF9JRCwK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9JTklUSUFMX1FVT1RB
X0ZPUl9DTElFTlQpCi0gICAgICAgIGxvZ2ljYWxfcmVxdWVzdC5jb25uZWN0aW9uLndyaXRlX2Nv
bnRyb2xfZGF0YShmcmFtZV9kYXRhKQotCi0gICAgZGVmIGFkZF9jaGFubmVsX3Nsb3RzKHNlbGYs
IHNsb3RzLCBzZW5kX3F1b3RhKToKLSAgICAgICAgIiIiQWRkcyBjaGFubmVsIHNsb3RzLgotCi0g
ICAgICAgIEFyZ3M6Ci0gICAgICAgICAgICBzbG90czogbnVtYmVyIG9mIHNsb3RzIHRvIGJlIGFk
ZGVkLgotICAgICAgICAgICAgc2VuZF9xdW90YTogaW5pdGlhbCBzZW5kIHF1b3RhIGZvciBzbG90
cy4KLSAgICAgICAgIiIiCi0KLSAgICAgICAgc2VsZi5fY2hhbm5lbF9zbG90cy5leHRlbmQoW3Nl
bmRfcXVvdGFdICogc2xvdHMpCi0gICAgICAgICMgU2VuZCBOZXdDaGFubmVsU2xvdCB0byBjbGll
bnQuCi0gICAgICAgIGZyYW1lX2RhdGEgPSBfY3JlYXRlX25ld19jaGFubmVsX3Nsb3Qoc2xvdHMs
IHNlbmRfcXVvdGEpCi0gICAgICAgIHNlbGYuc2VuZF9jb250cm9sX2RhdGEoZnJhbWVfZGF0YSkK
LQotICAgIGRlZiB3YWl0X3VudGlsX2RvbmUoc2VsZiwgdGltZW91dD1Ob25lKToKLSAgICAgICAg
IiIiV2FpdHMgdW50aWwgYWxsIHdvcmtlcnMgYXJlIGRvbmUuIFJldHVybnMgRmFsc2Ugd2hlbiB0
aW1lb3V0IGhhcwotICAgICAgICBvY2N1cnJlZC4gUmV0dXJucyBUcnVlIG9uIHN1Y2Nlc3MuCi0K
LSAgICAgICAgQXJnczoKLSAgICAgICAgICAgIHRpbWVvdXQ6IHRpbWVvdXQgaW4gc2VjLgotICAg
ICAgICAiIiIKLQotICAgICAgICBzZWxmLl9sb2dpY2FsX2NoYW5uZWxzX2NvbmRpdGlvbi5hY3F1
aXJlKCkKLSAgICAgICAgdHJ5OgotICAgICAgICAgICAgd2hpbGUgbGVuKHNlbGYuX2xvZ2ljYWxf
Y2hhbm5lbHMpID4gMDoKLSAgICAgICAgICAgICAgICBzZWxmLl9sb2dnZXIuZGVidWcoJ1dhaXRp
bmcgd29ya2VycyglZCkuLi4nICUKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
bGVuKHNlbGYuX2xvZ2ljYWxfY2hhbm5lbHMpKQotICAgICAgICAgICAgICAgIHNlbGYuX3dvcmtl
cl9kb25lX25vdGlmeV9yZWNlaXZlZCA9IEZhbHNlCi0gICAgICAgICAgICAgICAgc2VsZi5fbG9n
aWNhbF9jaGFubmVsc19jb25kaXRpb24ud2FpdCh0aW1lb3V0KQotICAgICAgICAgICAgICAgIGlm
IG5vdCBzZWxmLl93b3JrZXJfZG9uZV9ub3RpZnlfcmVjZWl2ZWQ6Ci0gICAgICAgICAgICAgICAg
ICAgIHNlbGYuX2xvZ2dlci5kZWJ1ZygnV2FpdGluZyB3b3JrZXIocykgdGltZWQgb3V0JykKLSAg
ICAgICAgICAgICAgICAgICAgcmV0dXJuIEZhbHNlCi0gICAgICAgIGZpbmFsbHk6Ci0gICAgICAg
ICAgICBzZWxmLl9sb2dpY2FsX2NoYW5uZWxzX2NvbmRpdGlvbi5yZWxlYXNlKCkKLQotICAgICAg
ICAjIEZsdXNoIHBlbmRpbmcgb3V0Z29pbmcgZGF0YQotICAgICAgICBzZWxmLl93cml0ZXIuc3Rv
cCgpCi0gICAgICAgIHNlbGYuX3dyaXRlci5qb2luKCkKLQotICAgICAgICByZXR1cm4gVHJ1ZQot
Ci0gICAgZGVmIG5vdGlmeV93cml0ZV9kYXRhX2RvbmUoc2VsZiwgY2hhbm5lbF9pZCk6Ci0gICAg
ICAgICIiIkNhbGxlZCBieSB0aGUgd3JpdGVyIHRocmVhZCB3aGVuIGEgd3JpdGUgb3BlcmF0aW9u
IGhhcyBkb25lLgotCi0gICAgICAgIEFyZ3M6Ci0gICAgICAgICAgICBjaGFubmVsX2lkOiBvYmpl
Y3RpdmUgY2hhbm5lbCBpZC4KLSAgICAgICAgIiIiCi0KLSAgICAgICAgdHJ5OgotICAgICAgICAg
ICAgc2VsZi5fbG9naWNhbF9jaGFubmVsc19jb25kaXRpb24uYWNxdWlyZSgpCi0gICAgICAgICAg
ICBpZiBjaGFubmVsX2lkIGluIHNlbGYuX2xvZ2ljYWxfY2hhbm5lbHM6Ci0gICAgICAgICAgICAg
ICAgY2hhbm5lbF9kYXRhID0gc2VsZi5fbG9naWNhbF9jaGFubmVsc1tjaGFubmVsX2lkXQotICAg
ICAgICAgICAgICAgIGNoYW5uZWxfZGF0YS5yZXF1ZXN0LmNvbm5lY3Rpb24ub25fd3JpdGVfZGF0
YV9kb25lKCkKLSAgICAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAgICAgc2VsZi5fbG9nZ2Vy
LmRlYnVnKCdTZWVtcyB0aGF0IGxvZ2ljYWwgY2hhbm5lbCBmb3IgJWQgaGFzIGdvbmUnCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICUgY2hhbm5lbF9pZCkKLSAgICAgICAgZmlu
YWxseToKLSAgICAgICAgICAgIHNlbGYuX2xvZ2ljYWxfY2hhbm5lbHNfY29uZGl0aW9uLnJlbGVh
c2UoKQotCi0gICAgZGVmIHNlbmRfY29udHJvbF9kYXRhKHNlbGYsIGRhdGEpOgotICAgICAgICAi
IiJTZW5kcyBkYXRhIHZpYSB0aGUgY29udHJvbCBjaGFubmVsLgotCi0gICAgICAgIEFyZ3M6Ci0g
ICAgICAgICAgICBkYXRhOiBkYXRhIHRvIGJlIHNlbnQuCi0gICAgICAgICIiIgotCi0gICAgICAg
IHNlbGYuX3dyaXRlci5wdXRfb3V0Z29pbmdfZGF0YShfT3V0Z29pbmdEYXRhKAotICAgICAgICAg
ICAgICAgIGNoYW5uZWxfaWQ9X0NPTlRST0xfQ0hBTk5FTF9JRCwgZGF0YT1kYXRhKSkKLQotICAg
IGRlZiBzZW5kX2RhdGEoc2VsZiwgY2hhbm5lbF9pZCwgZGF0YSk6Ci0gICAgICAgICIiIlNlbmRz
IGRhdGEgdmlhIGdpdmVuIGxvZ2ljYWwgY2hhbm5lbC4gVGhpcyBtZXRob2QgaXMgY2FsbGVkIGJ5
Ci0gICAgICAgIHdvcmtlciB0aHJlYWRzLgotCi0gICAgICAgIEFyZ3M6Ci0gICAgICAgICAgICBj
aGFubmVsX2lkOiBvYmplY3RpdmUgY2hhbm5lbCBpZC4KLSAgICAgICAgICAgIGRhdGE6IGRhdGEg
dG8gYmUgc2VudC4KLSAgICAgICAgIiIiCi0KLSAgICAgICAgc2VsZi5fd3JpdGVyLnB1dF9vdXRn
b2luZ19kYXRhKF9PdXRnb2luZ0RhdGEoCi0gICAgICAgICAgICAgICAgY2hhbm5lbF9pZD1jaGFu
bmVsX2lkLCBkYXRhPWRhdGEpKQotCi0gICAgZGVmIF9zZW5kX2Ryb3BfY2hhbm5lbChzZWxmLCBj
aGFubmVsX2lkLCBjb2RlPU5vbmUsIG1lc3NhZ2U9JycpOgotICAgICAgICBmcmFtZV9kYXRhID0g
X2NyZWF0ZV9kcm9wX2NoYW5uZWwoY2hhbm5lbF9pZCwgY29kZSwgbWVzc2FnZSkKLSAgICAgICAg
c2VsZi5fbG9nZ2VyLmRlYnVnKAotICAgICAgICAgICAgJ1NlbmRpbmcgZHJvcCBjaGFubmVsIGZv
ciBjaGFubmVsIGlkICVkJyAlIGNoYW5uZWxfaWQpCi0gICAgICAgIHNlbGYuc2VuZF9jb250cm9s
X2RhdGEoZnJhbWVfZGF0YSkKLQotICAgIGRlZiBfc2VuZF9lcnJvcl9hZGRfY2hhbm5lbF9yZXNw
b25zZShzZWxmLCBjaGFubmVsX2lkLCBzdGF0dXM9Tm9uZSk6Ci0gICAgICAgIGlmIHN0YXR1cyBp
cyBOb25lOgotICAgICAgICAgICAgc3RhdHVzID0gY29tbW9uLkhUVFBfU1RBVFVTX0JBRF9SRVFV
RVNUCi0KLSAgICAgICAgaWYgc3RhdHVzIGluIF9IVFRQX0JBRF9SRVNQT05TRV9NRVNTQUdFUzoK
LSAgICAgICAgICAgIG1lc3NhZ2UgPSBfSFRUUF9CQURfUkVTUE9OU0VfTUVTU0FHRVNbc3RhdHVz
XQotICAgICAgICBlbHNlOgotICAgICAgICAgICAgc2VsZi5fbG9nZ2VyLmRlYnVnKCdSZXNwb25z
ZSBtZXNzYWdlIGZvciAlZCBpcyBub3QgZm91bmQnICUgc3RhdHVzKQotICAgICAgICAgICAgbWVz
c2FnZSA9ICc/Pz8nCi0KLSAgICAgICAgcmVzcG9uc2UgPSAnSFRUUC8xLjEgJWQgJXNcclxuXHJc
bicgJSAoc3RhdHVzLCBtZXNzYWdlKQotICAgICAgICBmcmFtZV9kYXRhID0gX2NyZWF0ZV9hZGRf
Y2hhbm5lbF9yZXNwb25zZShjaGFubmVsX2lkLAotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBlbmNvZGVkX2hhbmRzaGFrZT1yZXNwb25zZSwKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5jb2Rpbmc9MCwg
cmVqZWN0ZWQ9VHJ1ZSkKLSAgICAgICAgc2VsZi5zZW5kX2NvbnRyb2xfZGF0YShmcmFtZV9kYXRh
KQotCi0gICAgZGVmIF9jcmVhdGVfbG9naWNhbF9yZXF1ZXN0KHNlbGYsIGJsb2NrKToKLSAgICAg
ICAgaWYgYmxvY2suY2hhbm5lbF9pZCA9PSBfQ09OVFJPTF9DSEFOTkVMX0lEOgotICAgICAgICAg
ICAgIyBUT0RPKGJhc2hpKTogUmFpc2UgUGh5c2ljYWxDb25uZWN0aW9uRXJyb3Igd2l0aCBjb2Rl
IDIwMDYKLSAgICAgICAgICAgICMgaW5zdGVhZCBvZiBNdXhVbmV4cGVjdGVkRXhjZXB0aW9uLgot
ICAgICAgICAgICAgcmFpc2UgTXV4VW5leHBlY3RlZEV4Y2VwdGlvbigKLSAgICAgICAgICAgICAg
ICAnUmVjZWl2ZWQgdGhlIGNvbnRyb2wgY2hhbm5lbCBpZCAoMCkgYXMgb2JqZWN0aXZlIGNoYW5u
ZWwgJwotICAgICAgICAgICAgICAgICdpZCBmb3IgQWRkQ2hhbm5lbCcpCi0KLSAgICAgICAgaWYg
YmxvY2suZW5jb2RpbmcgPiBfSEFORFNIQUtFX0VOQ09ESU5HX0RFTFRBOgotICAgICAgICAgICAg
cmFpc2UgUGh5c2ljYWxDb25uZWN0aW9uRXJyb3IoCi0gICAgICAgICAgICAgICAgX0RST1BfQ09E
RV9VTktOT1dOX1JFUVVFU1RfRU5DT0RJTkcpCi0KLSAgICAgICAgbWV0aG9kLCBwYXRoLCB2ZXJz
aW9uLCBoZWFkZXJzID0gX3BhcnNlX3JlcXVlc3RfdGV4dCgKLSAgICAgICAgICAgIGJsb2NrLmVu
Y29kZWRfaGFuZHNoYWtlKQotICAgICAgICBpZiBibG9jay5lbmNvZGluZyA9PSBfSEFORFNIQUtF
X0VOQ09ESU5HX0RFTFRBOgotICAgICAgICAgICAgaGVhZGVycyA9IHNlbGYuX2hhbmRzaGFrZV9i
YXNlLmNyZWF0ZV9oZWFkZXJzKGhlYWRlcnMpCi0KLSAgICAgICAgY29ubmVjdGlvbiA9IF9Mb2dp
Y2FsQ29ubmVjdGlvbihzZWxmLCBibG9jay5jaGFubmVsX2lkKQotICAgICAgICByZXF1ZXN0ID0g
X0xvZ2ljYWxSZXF1ZXN0KGJsb2NrLmNoYW5uZWxfaWQsIG1ldGhvZCwgcGF0aCwgdmVyc2lvbiwK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWFkZXJzLCBjb25uZWN0aW9uKQot
ICAgICAgICByZXR1cm4gcmVxdWVzdAotCi0gICAgZGVmIF9kb19oYW5kc2hha2VfZm9yX2xvZ2lj
YWxfcmVxdWVzdChzZWxmLCByZXF1ZXN0LCBzZW5kX3F1b3RhPTApOgotICAgICAgICB0cnk6Ci0g
ICAgICAgICAgICByZWNlaXZlX3F1b3RhID0gc2VsZi5fY2hhbm5lbF9zbG90cy5wb3BsZWZ0KCkK
LSAgICAgICAgZXhjZXB0IEluZGV4RXJyb3I6Ci0gICAgICAgICAgICByYWlzZSBMb2dpY2FsQ2hh
bm5lbEVycm9yKAotICAgICAgICAgICAgICAgIHJlcXVlc3QuY2hhbm5lbF9pZCwgX0RST1BfQ09E
RV9ORVdfQ0hBTk5FTF9TTE9UX1ZJT0xBVElPTikKLQotICAgICAgICBoYW5kc2hha2VyID0gX011
eEhhbmRzaGFrZXIocmVxdWVzdCwgc2VsZi5kaXNwYXRjaGVyLAotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgc2VuZF9xdW90YSwgcmVjZWl2ZV9xdW90YSkKLSAgICAgICAgdHJ5
OgotICAgICAgICAgICAgaGFuZHNoYWtlci5kb19oYW5kc2hha2UoKQotICAgICAgICBleGNlcHQg
aGFuZHNoYWtlLlZlcnNpb25FeGNlcHRpb24sIGU6Ci0gICAgICAgICAgICBzZWxmLl9sb2dnZXIu
aW5mbygnJXMnLCBlKQotICAgICAgICAgICAgc2VsZi5fc2VuZF9lcnJvcl9hZGRfY2hhbm5lbF9y
ZXNwb25zZSgKLSAgICAgICAgICAgICAgICByZXF1ZXN0LmNoYW5uZWxfaWQsIHN0YXR1cz1jb21t
b24uSFRUUF9TVEFUVVNfQkFEX1JFUVVFU1QpCi0gICAgICAgICAgICByZXR1cm4gRmFsc2UKLSAg
ICAgICAgZXhjZXB0IGhhbmRzaGFrZS5IYW5kc2hha2VFeGNlcHRpb24sIGU6Ci0gICAgICAgICAg
ICAjIFRPRE8oYmFzaGkpOiBTaG91bGQgd2UgX0ZhaWwgdGhlIExvZ2ljYWwgQ2hhbm5lbF8gd2l0
aCAzMDAxCi0gICAgICAgICAgICAjIGluc3RlYWQ/Ci0gICAgICAgICAgICBzZWxmLl9sb2dnZXIu
aW5mbygnJXMnLCBlKQotICAgICAgICAgICAgc2VsZi5fc2VuZF9lcnJvcl9hZGRfY2hhbm5lbF9y
ZXNwb25zZShyZXF1ZXN0LmNoYW5uZWxfaWQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHN0YXR1cz1lLnN0YXR1cykKLSAgICAgICAgICAgIHJldHVy
biBGYWxzZQotICAgICAgICBleGNlcHQgaGFuZHNoYWtlLkFib3J0ZWRCeVVzZXJFeGNlcHRpb24s
IGU6Ci0gICAgICAgICAgICBzZWxmLl9sb2dnZXIuaW5mbygnJXMnLCBlKQotICAgICAgICAgICAg
c2VsZi5fc2VuZF9lcnJvcl9hZGRfY2hhbm5lbF9yZXNwb25zZShyZXF1ZXN0LmNoYW5uZWxfaWQp
Ci0gICAgICAgICAgICByZXR1cm4gRmFsc2UKLQotICAgICAgICByZXR1cm4gVHJ1ZQotCi0gICAg
ZGVmIF9hZGRfbG9naWNhbF9jaGFubmVsKHNlbGYsIGxvZ2ljYWxfcmVxdWVzdCk6Ci0gICAgICAg
IHRyeToKLSAgICAgICAgICAgIHNlbGYuX2xvZ2ljYWxfY2hhbm5lbHNfY29uZGl0aW9uLmFjcXVp
cmUoKQotICAgICAgICAgICAgaWYgbG9naWNhbF9yZXF1ZXN0LmNoYW5uZWxfaWQgaW4gc2VsZi5f
bG9naWNhbF9jaGFubmVsczoKLSAgICAgICAgICAgICAgICBzZWxmLl9sb2dnZXIuZGVidWcoJ0No
YW5uZWwgaWQgJWQgYWxyZWFkeSBleGlzdHMnICUKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgbG9naWNhbF9yZXF1ZXN0LmNoYW5uZWxfaWQpCi0gICAgICAgICAgICAgICAgcmFp
c2UgUGh5c2ljYWxDb25uZWN0aW9uRXJyb3IoCi0gICAgICAgICAgICAgICAgICAgIF9EUk9QX0NP
REVfQ0hBTk5FTF9BTFJFQURZX0VYSVNUUywKLSAgICAgICAgICAgICAgICAgICAgJ0NoYW5uZWwg
aWQgJWQgYWxyZWFkeSBleGlzdHMnICUKLSAgICAgICAgICAgICAgICAgICAgbG9naWNhbF9yZXF1
ZXN0LmNoYW5uZWxfaWQpCi0gICAgICAgICAgICB3b3JrZXIgPSBfV29ya2VyKHNlbGYsIGxvZ2lj
YWxfcmVxdWVzdCkKLSAgICAgICAgICAgIGNoYW5uZWxfZGF0YSA9IF9Mb2dpY2FsQ2hhbm5lbERh
dGEobG9naWNhbF9yZXF1ZXN0LCB3b3JrZXIpCi0gICAgICAgICAgICBzZWxmLl9sb2dpY2FsX2No
YW5uZWxzW2xvZ2ljYWxfcmVxdWVzdC5jaGFubmVsX2lkXSA9IGNoYW5uZWxfZGF0YQotICAgICAg
ICAgICAgd29ya2VyLnN0YXJ0KCkKLSAgICAgICAgZmluYWxseToKLSAgICAgICAgICAgIHNlbGYu
X2xvZ2ljYWxfY2hhbm5lbHNfY29uZGl0aW9uLnJlbGVhc2UoKQotCi0gICAgZGVmIF9wcm9jZXNz
X2FkZF9jaGFubmVsX3JlcXVlc3Qoc2VsZiwgYmxvY2spOgotICAgICAgICB0cnk6Ci0gICAgICAg
ICAgICBsb2dpY2FsX3JlcXVlc3QgPSBzZWxmLl9jcmVhdGVfbG9naWNhbF9yZXF1ZXN0KGJsb2Nr
KQotICAgICAgICBleGNlcHQgVmFsdWVFcnJvciwgZToKLSAgICAgICAgICAgIHNlbGYuX2xvZ2dl
ci5kZWJ1ZygnRmFpbGVkIHRvIGNyZWF0ZSBsb2dpY2FsIHJlcXVlc3Q6ICVyJyAlIGUpCi0gICAg
ICAgICAgICBzZWxmLl9zZW5kX2Vycm9yX2FkZF9jaGFubmVsX3Jlc3BvbnNlKAotICAgICAgICAg
ICAgICAgIGJsb2NrLmNoYW5uZWxfaWQsIHN0YXR1cz1jb21tb24uSFRUUF9TVEFUVVNfQkFEX1JF
UVVFU1QpCi0gICAgICAgICAgICByZXR1cm4KLSAgICAgICAgaWYgc2VsZi5fZG9faGFuZHNoYWtl
X2Zvcl9sb2dpY2FsX3JlcXVlc3QobG9naWNhbF9yZXF1ZXN0KToKLSAgICAgICAgICAgIGlmIGJs
b2NrLmVuY29kaW5nID09IF9IQU5EU0hBS0VfRU5DT0RJTkdfSURFTlRJVFk6Ci0gICAgICAgICAg
ICAgICAgIyBVcGRhdGUgaGFuZHNoYWtlIGJhc2UuCi0gICAgICAgICAgICAgICAgIyBUT0RPKGJh
c2hpKTogTWFrZSBzdXJlIHRoaXMgaXMgdGhlIHJpZ2h0IHBsYWNlIHRvIHVwZGF0ZQotICAgICAg
ICAgICAgICAgICMgaGFuZHNoYWtlIGJhc2UuCi0gICAgICAgICAgICAgICAgc2VsZi5faGFuZHNo
YWtlX2Jhc2UgPSBfSGFuZHNoYWtlRGVsdGFCYXNlKAotICAgICAgICAgICAgICAgICAgICBsb2dp
Y2FsX3JlcXVlc3QuaGVhZGVyc19pbikKLSAgICAgICAgICAgIHNlbGYuX2FkZF9sb2dpY2FsX2No
YW5uZWwobG9naWNhbF9yZXF1ZXN0KQotICAgICAgICBlbHNlOgotICAgICAgICAgICAgc2VsZi5f
c2VuZF9lcnJvcl9hZGRfY2hhbm5lbF9yZXNwb25zZSgKLSAgICAgICAgICAgICAgICBibG9jay5j
aGFubmVsX2lkLCBzdGF0dXM9Y29tbW9uLkhUVFBfU1RBVFVTX0JBRF9SRVFVRVNUKQotCi0gICAg
ZGVmIF9wcm9jZXNzX2Zsb3dfY29udHJvbChzZWxmLCBibG9jayk6Ci0gICAgICAgIHRyeToKLSAg
ICAgICAgICAgIHNlbGYuX2xvZ2ljYWxfY2hhbm5lbHNfY29uZGl0aW9uLmFjcXVpcmUoKQotICAg
ICAgICAgICAgaWYgbm90IGJsb2NrLmNoYW5uZWxfaWQgaW4gc2VsZi5fbG9naWNhbF9jaGFubmVs
czoKLSAgICAgICAgICAgICAgICByZXR1cm4KLSAgICAgICAgICAgIGNoYW5uZWxfZGF0YSA9IHNl
bGYuX2xvZ2ljYWxfY2hhbm5lbHNbYmxvY2suY2hhbm5lbF9pZF0KLSAgICAgICAgICAgIGNoYW5u
ZWxfZGF0YS5yZXF1ZXN0LndzX3N0cmVhbS5yZXBsZW5pc2hfc2VuZF9xdW90YSgKLSAgICAgICAg
ICAgICAgICBibG9jay5zZW5kX3F1b3RhKQotICAgICAgICBmaW5hbGx5OgotICAgICAgICAgICAg
c2VsZi5fbG9naWNhbF9jaGFubmVsc19jb25kaXRpb24ucmVsZWFzZSgpCi0KLSAgICBkZWYgX3By
b2Nlc3NfZHJvcF9jaGFubmVsKHNlbGYsIGJsb2NrKToKLSAgICAgICAgc2VsZi5fbG9nZ2VyLmRl
YnVnKAotICAgICAgICAgICAgJ0Ryb3BDaGFubmVsIHJlY2VpdmVkIGZvciAlZDogY29kZT0lciwg
cmVhc29uPSVyJyAlCi0gICAgICAgICAgICAoYmxvY2suY2hhbm5lbF9pZCwgYmxvY2suZHJvcF9j
b2RlLCBibG9jay5kcm9wX21lc3NhZ2UpKQotICAgICAgICB0cnk6Ci0gICAgICAgICAgICBzZWxm
Ll9sb2dpY2FsX2NoYW5uZWxzX2NvbmRpdGlvbi5hY3F1aXJlKCkKLSAgICAgICAgICAgIGlmIG5v
dCBibG9jay5jaGFubmVsX2lkIGluIHNlbGYuX2xvZ2ljYWxfY2hhbm5lbHM6Ci0gICAgICAgICAg
ICAgICAgcmV0dXJuCi0gICAgICAgICAgICBjaGFubmVsX2RhdGEgPSBzZWxmLl9sb2dpY2FsX2No
YW5uZWxzW2Jsb2NrLmNoYW5uZWxfaWRdCi0gICAgICAgICAgICBjaGFubmVsX2RhdGEuZHJvcF9j
b2RlID0gX0RST1BfQ09ERV9BQ0tOT1dMRURHRUQKLQotICAgICAgICAgICAgIyBDbG9zZSB0aGUg
bG9naWNhbCBjaGFubmVsCi0gICAgICAgICAgICBjaGFubmVsX2RhdGEucmVxdWVzdC5jb25uZWN0
aW9uLnNldF9yZWFkX3N0YXRlKAotICAgICAgICAgICAgICAgIF9Mb2dpY2FsQ29ubmVjdGlvbi5T
VEFURV9URVJNSU5BVEVEKQotICAgICAgICAgICAgY2hhbm5lbF9kYXRhLnJlcXVlc3Qud3Nfc3Ry
ZWFtLnN0b3Bfc2VuZGluZygpCi0gICAgICAgIGZpbmFsbHk6Ci0gICAgICAgICAgICBzZWxmLl9s
b2dpY2FsX2NoYW5uZWxzX2NvbmRpdGlvbi5yZWxlYXNlKCkKLQotICAgIGRlZiBfcHJvY2Vzc19j
b250cm9sX2Jsb2NrcyhzZWxmLCBwYXJzZXIpOgotICAgICAgICBmb3IgY29udHJvbF9ibG9jayBp
biBwYXJzZXIucmVhZF9jb250cm9sX2Jsb2NrcygpOgotICAgICAgICAgICAgb3Bjb2RlID0gY29u
dHJvbF9ibG9jay5vcGNvZGUKLSAgICAgICAgICAgIHNlbGYuX2xvZ2dlci5kZWJ1ZygnY29udHJv
bCBibG9jayByZWNlaXZlZCwgb3Bjb2RlOiAlZCcgJSBvcGNvZGUpCi0gICAgICAgICAgICBpZiBv
cGNvZGUgPT0gX01VWF9PUENPREVfQUREX0NIQU5ORUxfUkVRVUVTVDoKLSAgICAgICAgICAgICAg
ICBzZWxmLl9wcm9jZXNzX2FkZF9jaGFubmVsX3JlcXVlc3QoY29udHJvbF9ibG9jaykKLSAgICAg
ICAgICAgIGVsaWYgb3Bjb2RlID09IF9NVVhfT1BDT0RFX0FERF9DSEFOTkVMX1JFU1BPTlNFOgot
ICAgICAgICAgICAgICAgIHJhaXNlIFBoeXNpY2FsQ29ubmVjdGlvbkVycm9yKAotICAgICAgICAg
ICAgICAgICAgICBfRFJPUF9DT0RFX0lOVkFMSURfTVVYX0NPTlRST0xfQkxPQ0ssCi0gICAgICAg
ICAgICAgICAgICAgICdSZWNlaXZlZCBBZGRDaGFubmVsUmVzcG9uc2UnKQotICAgICAgICAgICAg
ZWxpZiBvcGNvZGUgPT0gX01VWF9PUENPREVfRkxPV19DT05UUk9MOgotICAgICAgICAgICAgICAg
IHNlbGYuX3Byb2Nlc3NfZmxvd19jb250cm9sKGNvbnRyb2xfYmxvY2spCi0gICAgICAgICAgICBl
bGlmIG9wY29kZSA9PSBfTVVYX09QQ09ERV9EUk9QX0NIQU5ORUw6Ci0gICAgICAgICAgICAgICAg
c2VsZi5fcHJvY2Vzc19kcm9wX2NoYW5uZWwoY29udHJvbF9ibG9jaykKLSAgICAgICAgICAgIGVs
aWYgb3Bjb2RlID09IF9NVVhfT1BDT0RFX05FV19DSEFOTkVMX1NMT1Q6Ci0gICAgICAgICAgICAg
ICAgcmFpc2UgUGh5c2ljYWxDb25uZWN0aW9uRXJyb3IoCi0gICAgICAgICAgICAgICAgICAgIF9E
Uk9QX0NPREVfSU5WQUxJRF9NVVhfQ09OVFJPTF9CTE9DSywKLSAgICAgICAgICAgICAgICAgICAg
J1JlY2VpdmVkIE5ld0NoYW5uZWxTbG90JykKLSAgICAgICAgICAgIGVsc2U6Ci0gICAgICAgICAg
ICAgICAgcmFpc2UgTXV4VW5leHBlY3RlZEV4Y2VwdGlvbigKLSAgICAgICAgICAgICAgICAgICAg
J1VuZXhwZWN0ZWQgb3Bjb2RlICVyJyAlIG9wY29kZSkKLQotICAgIGRlZiBfcHJvY2Vzc19sb2dp
Y2FsX2ZyYW1lKHNlbGYsIGNoYW5uZWxfaWQsIHBhcnNlcik6Ci0gICAgICAgIHNlbGYuX2xvZ2dl
ci5kZWJ1ZygnUmVjZWl2ZWQgYSBmcmFtZS4gY2hhbm5lbCBpZD0lZCcgJSBjaGFubmVsX2lkKQot
ICAgICAgICB0cnk6Ci0gICAgICAgICAgICBzZWxmLl9sb2dpY2FsX2NoYW5uZWxzX2NvbmRpdGlv
bi5hY3F1aXJlKCkKLSAgICAgICAgICAgIGlmIG5vdCBjaGFubmVsX2lkIGluIHNlbGYuX2xvZ2lj
YWxfY2hhbm5lbHM6Ci0gICAgICAgICAgICAgICAgIyBXZSBtdXN0IGlnbm9yZSB0aGUgbWVzc2Fn
ZSBmb3IgYW4gaW5hY3RpdmUgY2hhbm5lbC4KLSAgICAgICAgICAgICAgICByZXR1cm4KLSAgICAg
ICAgICAgIGNoYW5uZWxfZGF0YSA9IHNlbGYuX2xvZ2ljYWxfY2hhbm5lbHNbY2hhbm5lbF9pZF0K
LSAgICAgICAgICAgIGZpbiwgcnN2MSwgcnN2MiwgcnN2Mywgb3Bjb2RlLCBwYXlsb2FkID0gcGFy
c2VyLnJlYWRfaW5uZXJfZnJhbWUoKQotICAgICAgICAgICAgY29uc3VtaW5nX2J5dGUgPSBsZW4o
cGF5bG9hZCkKLSAgICAgICAgICAgIGlmIG9wY29kZSAhPSBjb21tb24uT1BDT0RFX0NPTlRJTlVB
VElPTjoKLSAgICAgICAgICAgICAgICBjb25zdW1pbmdfYnl0ZSArPSAxCi0gICAgICAgICAgICBp
ZiBub3QgY2hhbm5lbF9kYXRhLnJlcXVlc3Qud3Nfc3RyZWFtLmNvbnN1bWVfcmVjZWl2ZV9xdW90
YSgKLSAgICAgICAgICAgICAgICBjb25zdW1pbmdfYnl0ZSk6Ci0gICAgICAgICAgICAgICAgIyBU
aGUgY2xpZW50IHZpb2xhdGVzIHF1b3RhLiBDbG9zZSBsb2dpY2FsIGNoYW5uZWwuCi0gICAgICAg
ICAgICAgICAgcmFpc2UgTG9naWNhbENoYW5uZWxFcnJvcigKLSAgICAgICAgICAgICAgICAgICAg
Y2hhbm5lbF9pZCwgX0RST1BfQ09ERV9TRU5EX1FVT1RBX1ZJT0xBVElPTikKLSAgICAgICAgICAg
IGhlYWRlciA9IGNyZWF0ZV9oZWFkZXIob3Bjb2RlLCBsZW4ocGF5bG9hZCksIGZpbiwgcnN2MSwg
cnN2MiwgcnN2MywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFzaz1GYWxz
ZSkKLSAgICAgICAgICAgIGZyYW1lX2RhdGEgPSBoZWFkZXIgKyBwYXlsb2FkCi0gICAgICAgICAg
ICBjaGFubmVsX2RhdGEucmVxdWVzdC5jb25uZWN0aW9uLmFwcGVuZF9mcmFtZV9kYXRhKGZyYW1l
X2RhdGEpCi0gICAgICAgIGZpbmFsbHk6Ci0gICAgICAgICAgICBzZWxmLl9sb2dpY2FsX2NoYW5u
ZWxzX2NvbmRpdGlvbi5yZWxlYXNlKCkKLQotICAgIGRlZiBkaXNwYXRjaF9tZXNzYWdlKHNlbGYs
IG1lc3NhZ2UpOgotICAgICAgICAiIiJEaXNwYXRjaGVzIG1lc3NhZ2UuIFRoZSByZWFkZXIgdGhy
ZWFkIGNhbGxzIHRoaXMgbWV0aG9kLgotCi0gICAgICAgIEFyZ3M6Ci0gICAgICAgICAgICBtZXNz
YWdlOiBhIG1lc3NhZ2UgdGhhdCBjb250YWlucyBlbmNhcHN1bGF0ZWQgZnJhbWUuCi0gICAgICAg
IFJhaXNlczoKLSAgICAgICAgICAgIFBoeXNpY2FsQ29ubmVjdGlvbkVycm9yOiBpZiB0aGUgbWVz
c2FnZSBjb250YWlucyBwaHlzaWNhbAotICAgICAgICAgICAgICAgIGNvbm5lY3Rpb24gbGV2ZWwg
ZXJyb3JzLgotICAgICAgICAgICAgTG9naWNhbENoYW5uZWxFcnJvcjogaWYgdGhlIG1lc3NhZ2Ug
Y29udGFpbnMgbG9naWNhbCBjaGFubmVsCi0gICAgICAgICAgICAgICAgbGV2ZWwgZXJyb3JzLgot
ICAgICAgICAiIiIKLQotICAgICAgICBwYXJzZXIgPSBfTXV4RnJhbWVQYXlsb2FkUGFyc2VyKG1l
c3NhZ2UpCi0gICAgICAgIHRyeToKLSAgICAgICAgICAgIGNoYW5uZWxfaWQgPSBwYXJzZXIucmVh
ZF9jaGFubmVsX2lkKCkKLSAgICAgICAgZXhjZXB0IFZhbHVlRXJyb3IsIGU6Ci0gICAgICAgICAg
ICByYWlzZSBQaHlzaWNhbENvbm5lY3Rpb25FcnJvcihfRFJPUF9DT0RFX0NIQU5ORUxfSURfVFJV
TkNBVEVEKQotICAgICAgICBpZiBjaGFubmVsX2lkID09IF9DT05UUk9MX0NIQU5ORUxfSUQ6Ci0g
ICAgICAgICAgICBzZWxmLl9wcm9jZXNzX2NvbnRyb2xfYmxvY2tzKHBhcnNlcikKLSAgICAgICAg
ZWxzZToKLSAgICAgICAgICAgIHNlbGYuX3Byb2Nlc3NfbG9naWNhbF9mcmFtZShjaGFubmVsX2lk
LCBwYXJzZXIpCi0KLSAgICBkZWYgbm90aWZ5X3dvcmtlcl9kb25lKHNlbGYsIGNoYW5uZWxfaWQp
OgotICAgICAgICAiIiJDYWxsZWQgd2hlbiBhIHdvcmtlciBoYXMgZmluaXNoZWQuCi0KLSAgICAg
ICAgQXJnczoKLSAgICAgICAgICAgIGNoYW5uZWxfaWQ6IGNoYW5uZWwgaWQgY29ycmVzcG9uZGVk
IHdpdGggdGhlIHdvcmtlci4KLSAgICAgICAgIiIiCi0KLSAgICAgICAgc2VsZi5fbG9nZ2VyLmRl
YnVnKCdXb3JrZXIgZm9yIGNoYW5uZWwgaWQgJWQgdGVybWluYXRlZCcgJSBjaGFubmVsX2lkKQot
ICAgICAgICB0cnk6Ci0gICAgICAgICAgICBzZWxmLl9sb2dpY2FsX2NoYW5uZWxzX2NvbmRpdGlv
bi5hY3F1aXJlKCkKLSAgICAgICAgICAgIGlmIG5vdCBjaGFubmVsX2lkIGluIHNlbGYuX2xvZ2lj
YWxfY2hhbm5lbHM6Ci0gICAgICAgICAgICAgICAgcmFpc2UgTXV4VW5leHBlY3RlZEV4Y2VwdGlv
bigKLSAgICAgICAgICAgICAgICAgICAgJ0NoYW5uZWwgaWQgJWQgbm90IGZvdW5kJyAlIGNoYW5u
ZWxfaWQpCi0gICAgICAgICAgICBjaGFubmVsX2RhdGEgPSBzZWxmLl9sb2dpY2FsX2NoYW5uZWxz
LnBvcChjaGFubmVsX2lkKQotICAgICAgICBmaW5hbGx5OgotICAgICAgICAgICAgc2VsZi5fd29y
a2VyX2RvbmVfbm90aWZ5X3JlY2VpdmVkID0gVHJ1ZQotICAgICAgICAgICAgc2VsZi5fbG9naWNh
bF9jaGFubmVsc19jb25kaXRpb24ubm90aWZ5KCkKLSAgICAgICAgICAgIHNlbGYuX2xvZ2ljYWxf
Y2hhbm5lbHNfY29uZGl0aW9uLnJlbGVhc2UoKQotCi0gICAgICAgIGlmIG5vdCBjaGFubmVsX2Rh
dGEucmVxdWVzdC5zZXJ2ZXJfdGVybWluYXRlZDoKLSAgICAgICAgICAgIHNlbGYuX3NlbmRfZHJv
cF9jaGFubmVsKAotICAgICAgICAgICAgICAgIGNoYW5uZWxfaWQsIGNvZGU9Y2hhbm5lbF9kYXRh
LmRyb3BfY29kZSwKLSAgICAgICAgICAgICAgICBtZXNzYWdlPWNoYW5uZWxfZGF0YS5kcm9wX21l
c3NhZ2UpCi0KLSAgICBkZWYgbm90aWZ5X3JlYWRlcl9kb25lKHNlbGYpOgotICAgICAgICAiIiJU
aGlzIG1ldGhvZCBpcyBjYWxsZWQgYnkgdGhlIHJlYWRlciB0aHJlYWQgd2hlbiB0aGUgcmVhZGVy
IGhhcwotICAgICAgICBmaW5pc2hlZC4KLSAgICAgICAgIiIiCi0KLSAgICAgICAgc2VsZi5fbG9n
Z2VyLmRlYnVnKAotICAgICAgICAgICAgJ1Rlcm1pYXRpbmcgYWxsIGxvZ2ljYWwgY29ubmVjdGlv
bnMgd2FpdGluZyBmb3IgaW5jb21pbmcgZGF0YSAnCi0gICAgICAgICAgICAnLi4uJykKLSAgICAg
ICAgc2VsZi5fbG9naWNhbF9jaGFubmVsc19jb25kaXRpb24uYWNxdWlyZSgpCi0gICAgICAgIGZv
ciBjaGFubmVsX2RhdGEgaW4gc2VsZi5fbG9naWNhbF9jaGFubmVscy52YWx1ZXMoKToKLSAgICAg
ICAgICAgIHRyeToKLSAgICAgICAgICAgICAgICBjaGFubmVsX2RhdGEucmVxdWVzdC5jb25uZWN0
aW9uLnNldF9yZWFkX3N0YXRlKAotICAgICAgICAgICAgICAgICAgICBfTG9naWNhbENvbm5lY3Rp
b24uU1RBVEVfVEVSTUlOQVRFRCkKLSAgICAgICAgICAgIGV4Y2VwdCBFeGNlcHRpb246Ci0gICAg
ICAgICAgICAgICAgc2VsZi5fbG9nZ2VyLmRlYnVnKHRyYWNlYmFjay5mb3JtYXRfZXhjKCkpCi0g
ICAgICAgIHNlbGYuX2xvZ2ljYWxfY2hhbm5lbHNfY29uZGl0aW9uLnJlbGVhc2UoKQotCi0gICAg
ZGVmIG5vdGlmeV93cml0ZXJfZG9uZShzZWxmKToKLSAgICAgICAgIiIiVGhpcyBtZXRob2QgaXMg
Y2FsbGVkIGJ5IHRoZSB3cml0ZXIgdGhyZWFkIHdoZW4gdGhlIHdyaXRlciBoYXMKLSAgICAgICAg
ZmluaXNoZWQuCi0gICAgICAgICIiIgotCi0gICAgICAgIHNlbGYuX2xvZ2dlci5kZWJ1ZygKLSAg
ICAgICAgICAgICdUZXJtaWF0aW5nIGFsbCBsb2dpY2FsIGNvbm5lY3Rpb25zIHdhaXRpbmcgZm9y
IHdyaXRlICcKLSAgICAgICAgICAgICdjb21wbGV0aW9uIC4uLicpCi0gICAgICAgIHNlbGYuX2xv
Z2ljYWxfY2hhbm5lbHNfY29uZGl0aW9uLmFjcXVpcmUoKQotICAgICAgICBmb3IgY2hhbm5lbF9k
YXRhIGluIHNlbGYuX2xvZ2ljYWxfY2hhbm5lbHMudmFsdWVzKCk6Ci0gICAgICAgICAgICB0cnk6
Ci0gICAgICAgICAgICAgICAgY2hhbm5lbF9kYXRhLnJlcXVlc3QuY29ubmVjdGlvbi5vbl93cml0
ZXJfZG9uZSgpCi0gICAgICAgICAgICBleGNlcHQgRXhjZXB0aW9uOgotICAgICAgICAgICAgICAg
IHNlbGYuX2xvZ2dlci5kZWJ1Zyh0cmFjZWJhY2suZm9ybWF0X2V4YygpKQotICAgICAgICBzZWxm
Ll9sb2dpY2FsX2NoYW5uZWxzX2NvbmRpdGlvbi5yZWxlYXNlKCkKLQotICAgIGRlZiBmYWlsX3Bo
eXNpY2FsX2Nvbm5lY3Rpb24oc2VsZiwgY29kZSwgbWVzc2FnZSk6Ci0gICAgICAgICIiIkZhaWwg
dGhlIHBoeXNpY2FsIGNvbm5lY3Rpb24uCi0KLSAgICAgICAgQXJnczoKLSAgICAgICAgICAgIGNv
ZGU6IGRyb3AgcmVhc29uIGNvZGUuCi0gICAgICAgICAgICBtZXNzYWdlOiBkcm9wIG1lc3NhZ2Uu
Ci0gICAgICAgICIiIgotCi0gICAgICAgIHNlbGYuX2xvZ2dlci5kZWJ1ZygnRmFpbGluZyB0aGUg
cGh5c2ljYWwgY29ubmVjdGlvbi4uLicpCi0gICAgICAgIHNlbGYuX3NlbmRfZHJvcF9jaGFubmVs
KF9DT05UUk9MX0NIQU5ORUxfSUQsIGNvZGUsIG1lc3NhZ2UpCi0gICAgICAgIHNlbGYuX3dyaXRl
ci5zdG9wKGNvbW1vbi5TVEFUVVNfSU5URVJOQUxfRU5EUE9JTlRfRVJST1IpCi0KLSAgICBkZWYg
ZmFpbF9sb2dpY2FsX2NoYW5uZWwoc2VsZiwgY2hhbm5lbF9pZCwgY29kZSwgbWVzc2FnZSk6Ci0g
ICAgICAgICIiIkZhaWwgYSBsb2dpY2FsIGNoYW5uZWwuCi0KLSAgICAgICAgQXJnczoKLSAgICAg
ICAgICAgIGNoYW5uZWxfaWQ6IGNoYW5uZWwgaWQuCi0gICAgICAgICAgICBjb2RlOiBkcm9wIHJl
YXNvbiBjb2RlLgotICAgICAgICAgICAgbWVzc2FnZTogZHJvcCBtZXNzYWdlLgotICAgICAgICAi
IiIKLQotICAgICAgICBzZWxmLl9sb2dnZXIuZGVidWcoJ0ZhaWxpbmcgbG9naWNhbCBjaGFubmVs
ICVkLi4uJyAlIGNoYW5uZWxfaWQpCi0gICAgICAgIHRyeToKLSAgICAgICAgICAgIHNlbGYuX2xv
Z2ljYWxfY2hhbm5lbHNfY29uZGl0aW9uLmFjcXVpcmUoKQotICAgICAgICAgICAgaWYgY2hhbm5l
bF9pZCBpbiBzZWxmLl9sb2dpY2FsX2NoYW5uZWxzOgotICAgICAgICAgICAgICAgIGNoYW5uZWxf
ZGF0YSA9IHNlbGYuX2xvZ2ljYWxfY2hhbm5lbHNbY2hhbm5lbF9pZF0KLSAgICAgICAgICAgICAg
ICAjIENsb3NlIHRoZSBsb2dpY2FsIGNoYW5uZWwuIG5vdGlmeV93b3JrZXJfZG9uZSgpIHdpbGwg
YmUKLSAgICAgICAgICAgICAgICAjIGNhbGxlZCBsYXRlciBhbmQgaXQgd2lsbCBzZW5kIERyb3BD
aGFubmVsLgotICAgICAgICAgICAgICAgIGNoYW5uZWxfZGF0YS5kcm9wX2NvZGUgPSBjb2RlCi0g
ICAgICAgICAgICAgICAgY2hhbm5lbF9kYXRhLmRyb3BfbWVzc2FnZSA9IG1lc3NhZ2UKLQotICAg
ICAgICAgICAgICAgIGNoYW5uZWxfZGF0YS5yZXF1ZXN0LmNvbm5lY3Rpb24uc2V0X3JlYWRfc3Rh
dGUoCi0gICAgICAgICAgICAgICAgICAgIF9Mb2dpY2FsQ29ubmVjdGlvbi5TVEFURV9URVJNSU5B
VEVEKQotICAgICAgICAgICAgICAgIGNoYW5uZWxfZGF0YS5yZXF1ZXN0LndzX3N0cmVhbS5zdG9w
X3NlbmRpbmcoKQotICAgICAgICAgICAgZWxzZToKLSAgICAgICAgICAgICAgICBzZWxmLl9zZW5k
X2Ryb3BfY2hhbm5lbChjaGFubmVsX2lkLCBjb2RlLCBtZXNzYWdlKQotICAgICAgICBmaW5hbGx5
OgotICAgICAgICAgICAgc2VsZi5fbG9naWNhbF9jaGFubmVsc19jb25kaXRpb24ucmVsZWFzZSgp
Ci0KLQotZGVmIHVzZV9tdXgocmVxdWVzdCk6Ci0gICAgcmV0dXJuIGhhc2F0dHIocmVxdWVzdCwg
J211eF9wcm9jZXNzb3InKSBhbmQgKAotICAgICAgICByZXF1ZXN0Lm11eF9wcm9jZXNzb3IuaXNf
YWN0aXZlKCkpCi0KLQotZGVmIHN0YXJ0KHJlcXVlc3QsIGRpc3BhdGNoZXIpOgotICAgIG11eF9o
YW5kbGVyID0gX011eEhhbmRsZXIocmVxdWVzdCwgZGlzcGF0Y2hlcikKLSAgICBtdXhfaGFuZGxl
ci5zdGFydCgpCi0KLSAgICBtdXhfaGFuZGxlci5hZGRfY2hhbm5lbF9zbG90cyhfSU5JVElBTF9O
VU1CRVJfT0ZfQ0hBTk5FTF9TTE9UUywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBfSU5JVElBTF9RVU9UQV9GT1JfQ0xJRU5UKQotCi0gICAgbXV4X2hhbmRsZXIud2FpdF91bnRp
bF9kb25lKCkKLQotCi0jIHZpOnN0cz00IHN3PTQgZXQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3JjL21v
ZF9weXdlYnNvY2tldC9zdGFuZGFsb25lLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9zcmMvbW9kX3B5d2Vic29ja2V0L3N0
YW5kYWxvbmUucHkKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDI0YzI5OWVhZjNkZjlm
YzNlMTczOGJjZmU3MDc3MzE5Zjg3NmU4OTQuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy9weXdlYnNvY2tldC9zcmMvbW9kX3B5d2Vic29ja2V0L3N0YW5kYWxvbmUucHkK
KysrIC9kZXYvbnVsbApAQCAtMSwxMTkzICswLDAgQEAKLSMhL3Vzci9iaW4vZW52IHB5dGhvbgot
IwotIyBDb3B5cmlnaHQgMjAxMiwgR29vZ2xlIEluYy4KLSMgQWxsIHJpZ2h0cyByZXNlcnZlZC4K
LSMKLSMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0Ci0jIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKLSMgbWV0OgotIwotIyAgICAgKiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAotIyBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCi0jICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUKLSMgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgotIyBpbiB0aGUgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCi0jIGRpc3RyaWJ1dGlv
bi4KLSMgICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVz
IG9mIGl0cwotIyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3Rl
IHByb2R1Y3RzIGRlcml2ZWQgZnJvbQotIyB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMg
cHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgotIwotIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCi0jICJBUyBJUyIgQU5E
IEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCi0j
IExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUgotIyBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAotIyBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKLSMgU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAot
IyBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwKLSMgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCi0jIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSMgKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFCi0jIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCi0KLQotIiIiU3RhbmRhbG9uZSBXZWJTb2NrZXQgc2VydmVyLgot
Ci1Vc2UgdGhpcyBmaWxlIHRvIGxhdW5jaCBweXdlYnNvY2tldCB3aXRob3V0IEFwYWNoZSBIVFRQ
IFNlcnZlci4KLQotCi1CQVNJQyBVU0FHRQotPT09PT09PT09PT0KLQotR28gdG8gdGhlIHNyYyBk
aXJlY3RvcnkgYW5kIHJ1bgotCi0gICQgcHl0aG9uIG1vZF9weXdlYnNvY2tldC9zdGFuZGFsb25l
LnB5IFstcCA8d3NfcG9ydD5dCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIFstdyA8d2Vic29ja19oYW5kbGVycz5dCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIFstZCA8ZG9jdW1lbnRfcm9vdD5dCi0KLTx3c19wb3J0PiBpcyB0aGUgcG9y
dCBudW1iZXIgdG8gdXNlIGZvciB3czovLyBjb25uZWN0aW9uLgotCi08ZG9jdW1lbnRfcm9vdD4g
aXMgdGhlIHBhdGggdG8gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIEhUTUwgZmlsZXMuCi0KLTx3ZWJz
b2NrX2hhbmRsZXJzPiBpcyB0aGUgcGF0aCB0byB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgV2ViU29j
a2V0IGhhbmRsZXJzLgotSWYgbm90IHNwZWNpZmllZCwgPGRvY3VtZW50X3Jvb3Q+IHdpbGwgYmUg
dXNlZC4gU2VlIF9faW5pdF9fLnB5IChvcgotcnVuICQgcHlkb2MgbW9kX3B5d2Vic29ja2V0KSBm
b3IgaG93IHRvIHdyaXRlIFdlYlNvY2tldCBoYW5kbGVycy4KLQotRm9yIG1vcmUgZGV0YWlsIGFu
ZCBvdGhlciBvcHRpb25zLCBydW4KLQotICAkIHB5dGhvbiBtb2RfcHl3ZWJzb2NrZXQvc3RhbmRh
bG9uZS5weSAtLWhlbHAKLQotb3Igc2VlIF9idWlsZF9vcHRpb25fcGFyc2VyIG1ldGhvZCBiZWxv
dy4KLQotRm9yIHRyb3VibGUgc2hvb3RpbmcsIGFkZGluZyAiLS1sb2dfbGV2ZWwgZGVidWciIG1p
Z2h0IGhlbHAgeW91LgotCi0KLVRSWSBERU1PCi09PT09PT09PQotCi1HbyB0byB0aGUgc3JjIGRp
cmVjdG9yeSBhbmQgcnVuIHN0YW5kYWxvbmUucHkgd2l0aCAtZCBvcHRpb24gdG8gc2V0IHRoZQot
ZG9jdW1lbnQgcm9vdCB0byB0aGUgZGlyZWN0b3J5IGNvbnRhaW5pbmcgZXhhbXBsZSBIVE1McyBh
bmQgaGFuZGxlcnMgbGlrZSB0aGlzOgotCi0gICQgY2Qgc3JjCi0gICQgUFlUSE9OUEFUSD0uIHB5
dGhvbiBtb2RfcHl3ZWJzb2NrZXQvc3RhbmRhbG9uZS5weSAtZCBleGFtcGxlCi0KLXRvIGxhdW5j
aCBweXdlYnNvY2tldCB3aXRoIHRoZSBzYW1wbGUgaGFuZGxlciBhbmQgaHRtbCBvbiBwb3J0IDgw
LiBPcGVuCi1odHRwOi8vbG9jYWxob3N0L2NvbnNvbGUuaHRtbCwgY2xpY2sgdGhlIGNvbm5lY3Qg
YnV0dG9uLCB0eXBlIHNvbWV0aGluZyBpbnRvCi10aGUgdGV4dCBib3ggbmV4dCB0byB0aGUgc2Vu
ZCBidXR0b24gYW5kIGNsaWNrIHRoZSBzZW5kIGJ1dHRvbi4gSWYgZXZlcnl0aGluZwotaXMgd29y
a2luZywgeW91J2xsIHNlZSB0aGUgbWVzc2FnZSB5b3UgdHlwZWQgZWNob2VkIGJ5IHRoZSBzZXJ2
ZXIuCi0KLQotVVNJTkcgVExTCi09PT09PT09PT0KLQotVG8gcnVuIHRoZSBzdGFuZGFsb25lIHNl
cnZlciB3aXRoIFRMUyBzdXBwb3J0LCBydW4gaXQgd2l0aCAtdCwgLWssIGFuZCAtYwotb3B0aW9u
cy4gV2hlbiBUTFMgaXMgZW5hYmxlZCwgdGhlIHN0YW5kYWxvbmUgc2VydmVyIGFjY2VwdHMgb25s
eSBUTFMgY29ubmVjdGlvbi4KLQotTm90ZSB0aGF0IHdoZW4gc3NsIG1vZHVsZSBpcyB1c2VkIGFu
ZCB0aGUga2V5L2NlcnQgbG9jYXRpb24gaXMgaW5jb3JyZWN0LAotVExTIGNvbm5lY3Rpb24gc2ls
ZW50bHkgZmFpbHMgd2hpbGUgcHlPcGVuU1NMIGZhaWxzIG9uIHN0YXJ0dXAuCi0KLUV4YW1wbGU6
Ci0KLSAgJCBQWVRIT05QQVRIPS4gcHl0aG9uIG1vZF9weXdlYnNvY2tldC9zdGFuZGFsb25lLnB5
IFwKLSAgICAgICAgLWQgZXhhbXBsZSBcCi0gICAgICAgIC1wIDEwNDQzIFwKLSAgICAgICAgLXQg
XAotICAgICAgICAtYyAuLi90ZXN0L2NlcnQvY2VydC5wZW0gXAotICAgICAgICAtayAuLi90ZXN0
L2NlcnQva2V5LnBlbSBcCi0KLU5vdGUgdGhhdCB3aGVuIHBhc3NpbmcgYSByZWxhdGl2ZSBwYXRo
IHRvIC1jIGFuZCAtayBvcHRpb24sIGl0IHdpbGwgYmUgcmVzb2x2ZWQKLXVzaW5nIHRoZSBkb2N1
bWVudCByb290IGRpcmVjdG9yeSBhcyB0aGUgYmFzZS4KLQotCi1VU0lORyBDTElFTlQgQVVUSEVO
VElDQVRJT04KLT09PT09PT09PT09PT09PT09PT09PT09PT09PQotCi1UbyBydW4gdGhlIHN0YW5k
YWxvbmUgc2VydmVyIHdpdGggVExTIGNsaWVudCBhdXRoZW50aWNhdGlvbiBzdXBwb3J0LCBydW4g
aXQgd2l0aAotLS10bHMtY2xpZW50LWF1dGggYW5kIC0tdGxzLWNsaWVudC1jYSBvcHRpb25zIGlu
IGFkZGl0aW9uIHRvIG9uZXMgcmVxdWlyZWQgZm9yCi1UTFMgc3VwcG9ydC4KLQotRXhhbXBsZToK
LQotICAkIFBZVEhPTlBBVEg9LiBweXRob24gbW9kX3B5d2Vic29ja2V0L3N0YW5kYWxvbmUucHkg
LWQgZXhhbXBsZSAtcCAxMDQ0MyAtdCBcCi0gICAgICAgIC1jIC4uL3Rlc3QvY2VydC9jZXJ0LnBl
bSAtayAuLi90ZXN0L2NlcnQva2V5LnBlbSBcCi0gICAgICAgIC0tdGxzLWNsaWVudC1hdXRoIFwK
LSAgICAgICAgLS10bHMtY2xpZW50LWNhPS4uL3Rlc3QvY2VydC9jYWNlcnQucGVtCi0KLU5vdGUg
dGhhdCB3aGVuIHBhc3NpbmcgYSByZWxhdGl2ZSBwYXRoIHRvIC0tdGxzLWNsaWVudC1jYSBvcHRp
b24sIGl0IHdpbGwgYmUKLXJlc29sdmVkIHVzaW5nIHRoZSBkb2N1bWVudCByb290IGRpcmVjdG9y
eSBhcyB0aGUgYmFzZS4KLQotCi1DT05GSUdVUkFUSU9OIEZJTEUKLT09PT09PT09PT09PT09PT09
PQotCi1Zb3UgY2FuIGFsc28gd3JpdGUgYSBjb25maWd1cmF0aW9uIGZpbGUgYW5kIHVzZSBpdCBi
eSBzcGVjaWZ5aW5nIHRoZSBwYXRoIHRvCi10aGUgY29uZmlndXJhdGlvbiBmaWxlIGJ5IC0tY29u
ZmlnIG9wdGlvbi4gUGxlYXNlIHdyaXRlIGEgY29uZmlndXJhdGlvbiBmaWxlCi1mb2xsb3dpbmcg
dGhlIGRvY3VtZW50YXRpb24gb2YgdGhlIFB5dGhvbiBDb25maWdQYXJzZXIgbGlicmFyeS4gTmFt
ZSBvZiBlYWNoCi1lbnRyeSBtdXN0IGJlIHRoZSBsb25nIHZlcnNpb24gYXJndW1lbnQgbmFtZS4g
RS5nLiB0byBzZXQgbG9nIGxldmVsIHRvIGRlYnVnLAotYWRkIHRoZSBmb2xsb3dpbmcgbGluZToK
LQotbG9nX2xldmVsPWRlYnVnCi0KLUZvciBvcHRpb25zIHdoaWNoIGRvZXNuJ3QgdGFrZSB2YWx1
ZSwgcGxlYXNlIGFkZCBzb21lIGZha2UgdmFsdWUuIEUuZy4gZm9yCi0tLXRscyBvcHRpb24sIGFk
ZCB0aGUgZm9sbG93aW5nIGxpbmU6Ci0KLXRscz1UcnVlCi0KLU5vdGUgdGhhdCB0bHMgd2lsbCBi
ZSBlbmFibGVkIGV2ZW4gaWYgeW91IHdyaXRlIHRscz1GYWxzZSBhcyB0aGUgdmFsdWUgcGFydCBp
cwotZmFrZS4KLQotV2hlbiBib3RoIGEgY29tbWFuZCBsaW5lIGFyZ3VtZW50IGFuZCBhIGNvbmZp
Z3VyYXRpb24gZmlsZSBlbnRyeSBhcmUgc2V0IGZvcgotdGhlIHNhbWUgY29uZmlndXJhdGlvbiBp
dGVtLCB0aGUgY29tbWFuZCBsaW5lIHZhbHVlIHdpbGwgb3ZlcnJpZGUgb25lIGluIHRoZQotY29u
ZmlndXJhdGlvbiBmaWxlLgotCi0KLVRIUkVBRElORwotPT09PT09PT09Ci0KLVRoaXMgc2VydmVy
IGlzIGRlcml2ZWQgZnJvbSBTb2NrZXRTZXJ2ZXIuVGhyZWFkaW5nTWl4SW4uIEhlbmNlIGEgdGhy
ZWFkIGlzCi11c2VkIGZvciBlYWNoIHJlcXVlc3QuCi0KLQotU0VDVVJJVFkgV0FSTklORwotPT09
PT09PT09PT09PT09PQotCi1UaGlzIHVzZXMgQ0dJSFRUUFNlcnZlciBhbmQgQ0dJSFRUUFNlcnZl
ciBpcyBub3Qgc2VjdXJlLgotSXQgbWF5IGV4ZWN1dGUgYXJiaXRyYXJ5IFB5dGhvbiBjb2RlIG9y
IGV4dGVybmFsIHByb2dyYW1zLiBJdCBzaG91bGQgbm90IGJlCi11c2VkIG91dHNpZGUgYSBmaXJl
d2FsbC4KLSIiIgotCi1pbXBvcnQgQmFzZUhUVFBTZXJ2ZXIKLWltcG9ydCBDR0lIVFRQU2VydmVy
Ci1pbXBvcnQgU2ltcGxlSFRUUFNlcnZlcgotaW1wb3J0IFNvY2tldFNlcnZlcgotaW1wb3J0IENv
bmZpZ1BhcnNlcgotaW1wb3J0IGJhc2U2NAotaW1wb3J0IGh0dHBsaWIKLWltcG9ydCBsb2dnaW5n
Ci1pbXBvcnQgbG9nZ2luZy5oYW5kbGVycwotaW1wb3J0IG9wdHBhcnNlCi1pbXBvcnQgb3MKLWlt
cG9ydCByZQotaW1wb3J0IHNlbGVjdAotaW1wb3J0IHNvY2tldAotaW1wb3J0IHN5cwotaW1wb3J0
IHRocmVhZGluZwotaW1wb3J0IHRpbWUKLQotZnJvbSBtb2RfcHl3ZWJzb2NrZXQgaW1wb3J0IGNv
bW1vbgotZnJvbSBtb2RfcHl3ZWJzb2NrZXQgaW1wb3J0IGRpc3BhdGNoCi1mcm9tIG1vZF9weXdl
YnNvY2tldCBpbXBvcnQgaGFuZHNoYWtlCi1mcm9tIG1vZF9weXdlYnNvY2tldCBpbXBvcnQgaHR0
cF9oZWFkZXJfdXRpbAotZnJvbSBtb2RfcHl3ZWJzb2NrZXQgaW1wb3J0IG1lbW9yaXppbmdmaWxl
Ci1mcm9tIG1vZF9weXdlYnNvY2tldCBpbXBvcnQgdXRpbAotZnJvbSBtb2RfcHl3ZWJzb2NrZXQu
eGhyX2JlbmNobWFya19oYW5kbGVyIGltcG9ydCBYSFJCZW5jaG1hcmtIYW5kbGVyCi0KLQotX0RF
RkFVTFRfTE9HX01BWF9CWVRFUyA9IDEwMjQgKiAyNTYKLV9ERUZBVUxUX0xPR19CQUNLVVBfQ09V
TlQgPSA1Ci0KLV9ERUZBVUxUX1JFUVVFU1RfUVVFVUVfU0laRSA9IDEyOAotCi0jIDEwMjQgaXMg
cHJhY3RpY2FsbHkgbGFyZ2UgZW5vdWdoIHRvIGNvbnRhaW4gV2ViU29ja2V0IGhhbmRzaGFrZSBs
aW5lcy4KLV9NQVhfTUVNT1JJWkVEX0xJTkVTID0gMTAyNAotCi0jIENvbnN0YW50cyBmb3IgdGhl
IC0tdGxzX21vZHVsZSBmbGFnLgotX1RMU19CWV9TVEFOREFSRF9NT0RVTEUgPSAnc3NsJwotX1RM
U19CWV9QWU9QRU5TU0wgPSAncHlvcGVuc3NsJwotCi0KLWNsYXNzIF9TdGFuZGFsb25lQ29ubmVj
dGlvbihvYmplY3QpOgotICAgICIiIk1pbWljIG1vZF9weXRob24gbXBfY29ubi4iIiIKLQotICAg
IGRlZiBfX2luaXRfXyhzZWxmLCByZXF1ZXN0X2hhbmRsZXIpOgotICAgICAgICAiIiJDb25zdHJ1
Y3QgYW4gaW5zdGFuY2UuCi0KLSAgICAgICAgQXJnczoKLSAgICAgICAgICAgIHJlcXVlc3RfaGFu
ZGxlcjogQSBXZWJTb2NrZXRSZXF1ZXN0SGFuZGxlciBpbnN0YW5jZS4KLSAgICAgICAgIiIiCi0K
LSAgICAgICAgc2VsZi5fcmVxdWVzdF9oYW5kbGVyID0gcmVxdWVzdF9oYW5kbGVyCi0KLSAgICBk
ZWYgZ2V0X2xvY2FsX2FkZHIoc2VsZik6Ci0gICAgICAgICIiIkdldHRlciB0byBtaW1pYyBtcF9j
b25uLmxvY2FsX2FkZHIuIiIiCi0KLSAgICAgICAgcmV0dXJuIChzZWxmLl9yZXF1ZXN0X2hhbmRs
ZXIuc2VydmVyLnNlcnZlcl9uYW1lLAotICAgICAgICAgICAgICAgIHNlbGYuX3JlcXVlc3RfaGFu
ZGxlci5zZXJ2ZXIuc2VydmVyX3BvcnQpCi0gICAgbG9jYWxfYWRkciA9IHByb3BlcnR5KGdldF9s
b2NhbF9hZGRyKQotCi0gICAgZGVmIGdldF9yZW1vdGVfYWRkcihzZWxmKToKLSAgICAgICAgIiIi
R2V0dGVyIHRvIG1pbWljIG1wX2Nvbm4ucmVtb3RlX2FkZHIuCi0KLSAgICAgICAgU2V0dGluZyB0
aGUgcHJvcGVydHkgaW4gX19pbml0X18gd29uJ3Qgd29yayBiZWNhdXNlIHRoZSByZXF1ZXN0Ci0g
ICAgICAgIGhhbmRsZXIgaXMgbm90IGluaXRpYWxpemVkIHlldCB0aGVyZS4iIiIKLQotICAgICAg
ICByZXR1cm4gc2VsZi5fcmVxdWVzdF9oYW5kbGVyLmNsaWVudF9hZGRyZXNzCi0gICAgcmVtb3Rl
X2FkZHIgPSBwcm9wZXJ0eShnZXRfcmVtb3RlX2FkZHIpCi0KLSAgICBkZWYgd3JpdGUoc2VsZiwg
ZGF0YSk6Ci0gICAgICAgICIiIk1pbWljIG1wX2Nvbm4ud3JpdGUoKS4iIiIKLQotICAgICAgICBy
ZXR1cm4gc2VsZi5fcmVxdWVzdF9oYW5kbGVyLndmaWxlLndyaXRlKGRhdGEpCi0KLSAgICBkZWYg
cmVhZChzZWxmLCBsZW5ndGgpOgotICAgICAgICAiIiJNaW1pYyBtcF9jb25uLnJlYWQoKS4iIiIK
LQotICAgICAgICByZXR1cm4gc2VsZi5fcmVxdWVzdF9oYW5kbGVyLnJmaWxlLnJlYWQobGVuZ3Ro
KQotCi0gICAgZGVmIGdldF9tZW1vcml6ZWRfbGluZXMoc2VsZik6Ci0gICAgICAgICIiIkdldCBt
ZW1vcml6ZWQgbGluZXMuIiIiCi0KLSAgICAgICAgcmV0dXJuIHNlbGYuX3JlcXVlc3RfaGFuZGxl
ci5yZmlsZS5nZXRfbWVtb3JpemVkX2xpbmVzKCkKLQotCi1jbGFzcyBfU3RhbmRhbG9uZVJlcXVl
c3Qob2JqZWN0KToKLSAgICAiIiJNaW1pYyBtb2RfcHl0aG9uIHJlcXVlc3QuIiIiCi0KLSAgICBk
ZWYgX19pbml0X18oc2VsZiwgcmVxdWVzdF9oYW5kbGVyLCB1c2VfdGxzKToKLSAgICAgICAgIiIi
Q29uc3RydWN0IGFuIGluc3RhbmNlLgotCi0gICAgICAgIEFyZ3M6Ci0gICAgICAgICAgICByZXF1
ZXN0X2hhbmRsZXI6IEEgV2ViU29ja2V0UmVxdWVzdEhhbmRsZXIgaW5zdGFuY2UuCi0gICAgICAg
ICIiIgotCi0gICAgICAgIHNlbGYuX2xvZ2dlciA9IHV0aWwuZ2V0X2NsYXNzX2xvZ2dlcihzZWxm
KQotCi0gICAgICAgIHNlbGYuX3JlcXVlc3RfaGFuZGxlciA9IHJlcXVlc3RfaGFuZGxlcgotICAg
ICAgICBzZWxmLmNvbm5lY3Rpb24gPSBfU3RhbmRhbG9uZUNvbm5lY3Rpb24ocmVxdWVzdF9oYW5k
bGVyKQotICAgICAgICBzZWxmLl91c2VfdGxzID0gdXNlX3RscwotICAgICAgICBzZWxmLmhlYWRl
cnNfaW4gPSByZXF1ZXN0X2hhbmRsZXIuaGVhZGVycwotCi0gICAgZGVmIGdldF91cmkoc2VsZik6
Ci0gICAgICAgICIiIkdldHRlciB0byBtaW1pYyByZXF1ZXN0LnVyaS4KLQotICAgICAgICBUaGlz
IG1ldGhvZCByZXR1cm5zIHRoZSByYXcgZGF0YSBhdCB0aGUgUmVxdWVzdC1VUkkgcGFydCBvZiB0
aGUKLSAgICAgICAgUmVxdWVzdC1MaW5lLCB3aGlsZSB0aGUgdXJpIG1ldGhvZCBvbiB0aGUgcmVx
dWVzdCBvYmplY3Qgb2YgbW9kX3B5dGhvbgotICAgICAgICByZXR1cm5zIHRoZSBwYXRoIHBvcnRp
b24gYWZ0ZXIgcGFyc2luZyB0aGUgcmF3IGRhdGEuIFRoaXMgYmVoYXZpb3IgaXMKLSAgICAgICAg
a2VwdCBmb3IgY29tcGF0aWJpbGl0eS4KLSAgICAgICAgIiIiCi0KLSAgICAgICAgcmV0dXJuIHNl
bGYuX3JlcXVlc3RfaGFuZGxlci5wYXRoCi0gICAgdXJpID0gcHJvcGVydHkoZ2V0X3VyaSkKLQot
ICAgIGRlZiBnZXRfdW5wYXJzZWRfdXJpKHNlbGYpOgotICAgICAgICAiIiJHZXR0ZXIgdG8gbWlt
aWMgcmVxdWVzdC51bnBhcnNlZF91cmkuIiIiCi0KLSAgICAgICAgcmV0dXJuIHNlbGYuX3JlcXVl
c3RfaGFuZGxlci5wYXRoCi0gICAgdW5wYXJzZWRfdXJpID0gcHJvcGVydHkoZ2V0X3VucGFyc2Vk
X3VyaSkKLQotICAgIGRlZiBnZXRfbWV0aG9kKHNlbGYpOgotICAgICAgICAiIiJHZXR0ZXIgdG8g
bWltaWMgcmVxdWVzdC5tZXRob2QuIiIiCi0KLSAgICAgICAgcmV0dXJuIHNlbGYuX3JlcXVlc3Rf
aGFuZGxlci5jb21tYW5kCi0gICAgbWV0aG9kID0gcHJvcGVydHkoZ2V0X21ldGhvZCkKLQotICAg
IGRlZiBnZXRfcHJvdG9jb2woc2VsZik6Ci0gICAgICAgICIiIkdldHRlciB0byBtaW1pYyByZXF1
ZXN0LnByb3RvY29sLiIiIgotCi0gICAgICAgIHJldHVybiBzZWxmLl9yZXF1ZXN0X2hhbmRsZXIu
cmVxdWVzdF92ZXJzaW9uCi0gICAgcHJvdG9jb2wgPSBwcm9wZXJ0eShnZXRfcHJvdG9jb2wpCi0K
LSAgICBkZWYgaXNfaHR0cHMoc2VsZik6Ci0gICAgICAgICIiIk1pbWljIHJlcXVlc3QuaXNfaHR0
cHMoKS4iIiIKLQotICAgICAgICByZXR1cm4gc2VsZi5fdXNlX3RscwotCi0KLWRlZiBfaW1wb3J0
X3NzbCgpOgotICAgIGdsb2JhbCBzc2wKLSAgICB0cnk6Ci0gICAgICAgIGltcG9ydCBzc2wKLSAg
ICAgICAgcmV0dXJuIFRydWUKLSAgICBleGNlcHQgSW1wb3J0RXJyb3I6Ci0gICAgICAgIHJldHVy
biBGYWxzZQotCi0KLWRlZiBfaW1wb3J0X3B5b3BlbnNzbCgpOgotICAgIGdsb2JhbCBPcGVuU1NM
Ci0gICAgdHJ5OgotICAgICAgICBpbXBvcnQgT3BlblNTTC5TU0wKLSAgICAgICAgcmV0dXJuIFRy
dWUKLSAgICBleGNlcHQgSW1wb3J0RXJyb3I6Ci0gICAgICAgIHJldHVybiBGYWxzZQotCi0KLWNs
YXNzIF9TdGFuZGFsb25lU1NMQ29ubmVjdGlvbihvYmplY3QpOgotICAgICIiIkEgd3JhcHBlciBj
bGFzcyBmb3IgT3BlblNTTC5TU0wuQ29ubmVjdGlvbiB0bwotICAgIC0gcHJvdmlkZSBtYWtlZmls
ZSBtZXRob2Qgd2hpY2ggaXMgbm90IHN1cHBvcnRlZCBieSB0aGUgY2xhc3MKLSAgICAtIHR3ZWFr
IHNodXRkb3duIG1ldGhvZCBzaW5jZSBPcGVuU1NMLlNTTC5Db25uZWN0aW9uLnNodXRkb3duIGRv
ZXNuJ3QKLSAgICAgIGFjY2VwdCB0aGUgImhvdyIgYXJndW1lbnQuCi0gICAgLSBjb252ZXJ0IFN5
c0NhbGxFcnJvciBleGNlcHRpb25zIHRoYXQgaXRzIHJlY3YgbWV0aG9kIG1heSByYWlzZSBpbnRv
IGEKLSAgICAgIHJldHVybiB2YWx1ZSBvZiAnJywgbWVhbmluZyBFT0YuIFdlIGNhbm5vdCBvdmVy
d3JpdGUgdGhlIHJlY3YgbWV0aG9kIG9uCi0gICAgICBzZWxmLl9jb25uZWN0aW9uIHNpbmNlIGl0
J3MgaW1tdXRhYmxlLgotICAgICIiIgotCi0gICAgX09WRVJSSURERU5fQVRUUklCVVRFUyA9IFsn
X2Nvbm5lY3Rpb24nLCAnbWFrZWZpbGUnLCAnc2h1dGRvd24nLCAncmVjdiddCi0KLSAgICBkZWYg
X19pbml0X18oc2VsZiwgY29ubmVjdGlvbik6Ci0gICAgICAgIHNlbGYuX2Nvbm5lY3Rpb24gPSBj
b25uZWN0aW9uCi0KLSAgICBkZWYgX19nZXRhdHRyaWJ1dGVfXyhzZWxmLCBuYW1lKToKLSAgICAg
ICAgaWYgbmFtZSBpbiBfU3RhbmRhbG9uZVNTTENvbm5lY3Rpb24uX09WRVJSSURERU5fQVRUUklC
VVRFUzoKLSAgICAgICAgICAgIHJldHVybiBvYmplY3QuX19nZXRhdHRyaWJ1dGVfXyhzZWxmLCBu
YW1lKQotICAgICAgICByZXR1cm4gc2VsZi5fY29ubmVjdGlvbi5fX2dldGF0dHJpYnV0ZV9fKG5h
bWUpCi0KLSAgICBkZWYgX19zZXRhdHRyX18oc2VsZiwgbmFtZSwgdmFsdWUpOgotICAgICAgICBp
ZiBuYW1lIGluIF9TdGFuZGFsb25lU1NMQ29ubmVjdGlvbi5fT1ZFUlJJRERFTl9BVFRSSUJVVEVT
OgotICAgICAgICAgICAgcmV0dXJuIG9iamVjdC5fX3NldGF0dHJfXyhzZWxmLCBuYW1lLCB2YWx1
ZSkKLSAgICAgICAgcmV0dXJuIHNlbGYuX2Nvbm5lY3Rpb24uX19zZXRhdHRyX18obmFtZSwgdmFs
dWUpCi0KLSAgICBkZWYgbWFrZWZpbGUoc2VsZiwgbW9kZT0ncicsIGJ1ZnNpemU9LTEpOgotICAg
ICAgICByZXR1cm4gc29ja2V0Ll9maWxlb2JqZWN0KHNlbGYsIG1vZGUsIGJ1ZnNpemUpCi0KLSAg
ICBkZWYgc2h1dGRvd24oc2VsZiwgdW51c2VkX2hvdyk6Ci0gICAgICAgIHNlbGYuX2Nvbm5lY3Rp
b24uc2h1dGRvd24oKQotCi0gICAgZGVmIHJlY3Yoc2VsZiwgYnVmc2l6ZSwgZmxhZ3M9MCk6Ci0g
ICAgICAgIGlmIGZsYWdzICE9IDA6Ci0gICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCdOb24t
emVybyBmbGFncyBub3QgYWxsb3dlZCcpCi0KLSAgICAgICAgdHJ5OgotICAgICAgICAgICAgcmV0
dXJuIHNlbGYuX2Nvbm5lY3Rpb24ucmVjdihidWZzaXplKQotICAgICAgICBleGNlcHQgT3BlblNT
TC5TU0wuU3lzQ2FsbEVycm9yLCAoZXJyLCBtZXNzYWdlKToKLSAgICAgICAgICAgIGlmIGVyciA9
PSAtMToKLSAgICAgICAgICAgICAgICAjIFN1cHByZXNzICJ1bmV4cGVjdGVkIEVPRiIgZXhjZXB0
aW9uLiBTZWUgdGhlIE9wZW5TU0wgZG9jdW1lbnQKLSAgICAgICAgICAgICAgICAjIGZvciBTU0xf
Z2V0X2Vycm9yLgotICAgICAgICAgICAgICAgIHJldHVybiAnJwotICAgICAgICAgICAgcmFpc2UK
LQotCi1kZWYgX2FsaWFzX2hhbmRsZXJzKGRpc3BhdGNoZXIsIHdlYnNvY2tfaGFuZGxlcnNfbWFw
X2ZpbGUpOgotICAgICIiIlNldCBhbGlhc2VzIHNwZWNpZmllZCBpbiB3ZWJzb2NrX2hhbmRsZXJf
bWFwX2ZpbGUgaW4gZGlzcGF0Y2hlci4KLQotICAgIEFyZ3M6Ci0gICAgICAgIGRpc3BhdGNoZXI6
IGRpc3BhdGNoLkRpc3BhdGNoZXIgaW5zdGFuY2UKLSAgICAgICAgd2Vic29ja19oYW5kbGVyX21h
cF9maWxlOiBhbGlhcyBtYXAgZmlsZQotICAgICIiIgotCi0gICAgZnAgPSBvcGVuKHdlYnNvY2tf
aGFuZGxlcnNfbWFwX2ZpbGUpCi0gICAgdHJ5OgotICAgICAgICBmb3IgbGluZSBpbiBmcDoKLSAg
ICAgICAgICAgIGlmIGxpbmVbMF0gPT0gJyMnIG9yIGxpbmUuaXNzcGFjZSgpOgotICAgICAgICAg
ICAgICAgIGNvbnRpbnVlCi0gICAgICAgICAgICBtID0gcmUubWF0Y2goJyhcUyspXHMrKFxTKykn
LCBsaW5lKQotICAgICAgICAgICAgaWYgbm90IG06Ci0gICAgICAgICAgICAgICAgbG9nZ2luZy53
YXJuaW5nKCdXcm9uZyBmb3JtYXQgaW4gbWFwIGZpbGU6JyArIGxpbmUpCi0gICAgICAgICAgICAg
ICAgY29udGludWUKLSAgICAgICAgICAgIHRyeToKLSAgICAgICAgICAgICAgICBkaXNwYXRjaGVy
LmFkZF9yZXNvdXJjZV9wYXRoX2FsaWFzKAotICAgICAgICAgICAgICAgICAgICBtLmdyb3VwKDEp
LCBtLmdyb3VwKDIpKQotICAgICAgICAgICAgZXhjZXB0IGRpc3BhdGNoLkRpc3BhdGNoRXhjZXB0
aW9uLCBlOgotICAgICAgICAgICAgICAgIGxvZ2dpbmcuZXJyb3Ioc3RyKGUpKQotICAgIGZpbmFs
bHk6Ci0gICAgICAgIGZwLmNsb3NlKCkKLQotCi1jbGFzcyBXZWJTb2NrZXRTZXJ2ZXIoU29ja2V0
U2VydmVyLlRocmVhZGluZ01peEluLCBCYXNlSFRUUFNlcnZlci5IVFRQU2VydmVyKToKLSAgICAi
IiJIVFRQU2VydmVyIHNwZWNpYWxpemVkIGZvciBXZWJTb2NrZXQuIiIiCi0KLSAgICAjIE92ZXJy
aWRlcyBTb2NrZXRTZXJ2ZXIuVGhyZWFkaW5nTWl4SW4uZGFlbW9uX3RocmVhZHMKLSAgICBkYWVt
b25fdGhyZWFkcyA9IFRydWUKLSAgICAjIE92ZXJyaWRlcyBCYXNlSFRUUFNlcnZlci5IVFRQU2Vy
dmVyLmFsbG93X3JldXNlX2FkZHJlc3MKLSAgICBhbGxvd19yZXVzZV9hZGRyZXNzID0gVHJ1ZQot
Ci0gICAgZGVmIF9faW5pdF9fKHNlbGYsIG9wdGlvbnMpOgotICAgICAgICAiIiJPdmVycmlkZSBT
b2NrZXRTZXJ2ZXIuVENQU2VydmVyLl9faW5pdF9fIHRvIHNldCBTU0wgZW5hYmxlZAotICAgICAg
ICBzb2NrZXQgb2JqZWN0IHRvIHNlbGYuc29ja2V0IGJlZm9yZSBzZXJ2ZXJfYmluZCBhbmQgc2Vy
dmVyX2FjdGl2YXRlLAotICAgICAgICBpZiBuZWNlc3NhcnkuCi0gICAgICAgICIiIgotCi0gICAg
ICAgICMgU2hhcmUgYSBEaXNwYXRjaGVyIGFtb25nIHJlcXVlc3QgaGFuZGxlcnMgdG8gc2F2ZSB0
aW1lIGZvcgotICAgICAgICAjIGluc3RhbnRpYXRpb24uICBEaXNwYXRjaGVyIGNhbiBiZSBzaGFy
ZWQgYmVjYXVzZSBpdCBpcyB0aHJlYWQtc2FmZS4KLSAgICAgICAgb3B0aW9ucy5kaXNwYXRjaGVy
ID0gZGlzcGF0Y2guRGlzcGF0Y2hlcigKLSAgICAgICAgICAgIG9wdGlvbnMud2Vic29ja19oYW5k
bGVycywKLSAgICAgICAgICAgIG9wdGlvbnMuc2Nhbl9kaXIsCi0gICAgICAgICAgICBvcHRpb25z
LmFsbG93X2hhbmRsZXJzX291dHNpZGVfcm9vdF9kaXIpCi0gICAgICAgIGlmIG9wdGlvbnMud2Vi
c29ja19oYW5kbGVyc19tYXBfZmlsZToKLSAgICAgICAgICAgIF9hbGlhc19oYW5kbGVycyhvcHRp
b25zLmRpc3BhdGNoZXIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgb3B0aW9ucy53ZWJz
b2NrX2hhbmRsZXJzX21hcF9maWxlKQotICAgICAgICB3YXJuaW5ncyA9IG9wdGlvbnMuZGlzcGF0
Y2hlci5zb3VyY2Vfd2FybmluZ3MoKQotICAgICAgICBpZiB3YXJuaW5nczoKLSAgICAgICAgICAg
IGZvciB3YXJuaW5nIGluIHdhcm5pbmdzOgotICAgICAgICAgICAgICAgIGxvZ2dpbmcud2Fybmlu
ZygnV2FybmluZyBpbiBzb3VyY2UgbG9hZGluZzogJXMnICUgd2FybmluZykKLQotICAgICAgICBz
ZWxmLl9sb2dnZXIgPSB1dGlsLmdldF9jbGFzc19sb2dnZXIoc2VsZikKLQotICAgICAgICBzZWxm
LnJlcXVlc3RfcXVldWVfc2l6ZSA9IG9wdGlvbnMucmVxdWVzdF9xdWV1ZV9zaXplCi0gICAgICAg
IHNlbGYuX193c19pc19zaHV0X2Rvd24gPSB0aHJlYWRpbmcuRXZlbnQoKQotICAgICAgICBzZWxm
Ll9fd3Nfc2VydmluZyA9IEZhbHNlCi0KLSAgICAgICAgU29ja2V0U2VydmVyLkJhc2VTZXJ2ZXIu
X19pbml0X18oCi0gICAgICAgICAgICBzZWxmLCAob3B0aW9ucy5zZXJ2ZXJfaG9zdCwgb3B0aW9u
cy5wb3J0KSwgV2ViU29ja2V0UmVxdWVzdEhhbmRsZXIpCi0KLSAgICAgICAgIyBFeHBvc2UgdGhl
IG9wdGlvbnMgb2JqZWN0IHRvIGFsbG93IGhhbmRsZXIgb2JqZWN0cyBhY2Nlc3MgaXQuIFdlIG5h
bWUKLSAgICAgICAgIyBpdCB3aXRoIHdlYnNvY2tldF8gcHJlZml4IHRvIGF2b2lkIGNvbmZsaWN0
LgotICAgICAgICBzZWxmLndlYnNvY2tldF9zZXJ2ZXJfb3B0aW9ucyA9IG9wdGlvbnMKLQotICAg
ICAgICBzZWxmLl9jcmVhdGVfc29ja2V0cygpCi0gICAgICAgIHNlbGYuc2VydmVyX2JpbmQoKQot
ICAgICAgICBzZWxmLnNlcnZlcl9hY3RpdmF0ZSgpCi0KLSAgICBkZWYgX2NyZWF0ZV9zb2NrZXRz
KHNlbGYpOgotICAgICAgICBzZWxmLnNlcnZlcl9uYW1lLCBzZWxmLnNlcnZlcl9wb3J0ID0gc2Vs
Zi5zZXJ2ZXJfYWRkcmVzcwotICAgICAgICBzZWxmLl9zb2NrZXRzID0gW10KLSAgICAgICAgaWYg
bm90IHNlbGYuc2VydmVyX25hbWU6Ci0gICAgICAgICAgICAjIE9uIHBsYXRmb3JtcyB0aGF0IGRv
ZXNuJ3Qgc3VwcG9ydCBJUHY2LCB0aGUgZmlyc3QgYmluZCBmYWlscy4KLSAgICAgICAgICAgICMg
T24gcGxhdGZvcm1zIHRoYXQgc3VwcG9ydHMgSVB2NgotICAgICAgICAgICAgIyAtIElmIGl0IGJp
bmRzIGJvdGggSVB2NCBhbmQgSVB2NiBvbiBjYWxsIHdpdGggQUZfSU5FVDYsIHRoZQotICAgICAg
ICAgICAgIyAgIGZpcnN0IGJpbmQgc3VjY2VlZHMgYW5kIHRoZSBzZWNvbmQgZmFpbHMgKHdlJ2xs
IHNlZSAnQWRkcmVzcwotICAgICAgICAgICAgIyAgIGFscmVhZHkgaW4gdXNlJyBlcnJvcikuCi0g
ICAgICAgICAgICAjIC0gSWYgaXQgYmluZHMgb25seSBJUHY2IG9uIGNhbGwgd2l0aCBBRl9JTkVU
NiwgYm90aCBjYWxsIGFyZQotICAgICAgICAgICAgIyAgIGV4cGVjdGVkIHRvIHN1Y2NlZWQgdG8g
bGlzdGVuIGJvdGggcHJvdG9jb2wuCi0gICAgICAgICAgICBhZGRyaW5mb19hcnJheSA9IFsKLSAg
ICAgICAgICAgICAgICAoc29ja2V0LkFGX0lORVQ2LCBzb2NrZXQuU09DS19TVFJFQU0sICcnLCAn
JywgJycpLAotICAgICAgICAgICAgICAgIChzb2NrZXQuQUZfSU5FVCwgc29ja2V0LlNPQ0tfU1RS
RUFNLCAnJywgJycsICcnKV0KLSAgICAgICAgZWxzZToKLSAgICAgICAgICAgIGFkZHJpbmZvX2Fy
cmF5ID0gc29ja2V0LmdldGFkZHJpbmZvKHNlbGYuc2VydmVyX25hbWUsCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnNlcnZlcl9wb3J0LAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc29ja2V0LkFGX1VO
U1BFQywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNv
Y2tldC5TT0NLX1NUUkVBTSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHNvY2tldC5JUFBST1RPX1RDUCkKLSAgICAgICAgZm9yIGFkZHJpbmZvIGluIGFk
ZHJpbmZvX2FycmF5OgotICAgICAgICAgICAgc2VsZi5fbG9nZ2VyLmluZm8oJ0NyZWF0ZSBzb2Nr
ZXQgb246ICVyJywgYWRkcmluZm8pCi0gICAgICAgICAgICBmYW1pbHksIHNvY2t0eXBlLCBwcm90
bywgY2Fub25uYW1lLCBzb2NrYWRkciA9IGFkZHJpbmZvCi0gICAgICAgICAgICB0cnk6Ci0gICAg
ICAgICAgICAgICAgc29ja2V0XyA9IHNvY2tldC5zb2NrZXQoZmFtaWx5LCBzb2NrdHlwZSkKLSAg
ICAgICAgICAgIGV4Y2VwdCBFeGNlcHRpb24sIGU6Ci0gICAgICAgICAgICAgICAgc2VsZi5fbG9n
Z2VyLmluZm8oJ1NraXAgYnkgZmFpbHVyZTogJXInLCBlKQotICAgICAgICAgICAgICAgIGNvbnRp
bnVlCi0gICAgICAgICAgICBzZXJ2ZXJfb3B0aW9ucyA9IHNlbGYud2Vic29ja2V0X3NlcnZlcl9v
cHRpb25zCi0gICAgICAgICAgICBpZiBzZXJ2ZXJfb3B0aW9ucy51c2VfdGxzOgotICAgICAgICAg
ICAgICAgICMgRm9yIHRoZSBjYXNlIG9mIF9IQVNfT1BFTl9TU0wsIHdlIGRvIHdyYXBwZXIgc2V0
dXAgYWZ0ZXIKLSAgICAgICAgICAgICAgICAjIGFjY2VwdC4KLSAgICAgICAgICAgICAgICBpZiBz
ZXJ2ZXJfb3B0aW9ucy50bHNfbW9kdWxlID09IF9UTFNfQllfU1RBTkRBUkRfTU9EVUxFOgotICAg
ICAgICAgICAgICAgICAgICBpZiBzZXJ2ZXJfb3B0aW9ucy50bHNfY2xpZW50X2F1dGg6Ci0gICAg
ICAgICAgICAgICAgICAgICAgICBpZiBzZXJ2ZXJfb3B0aW9ucy50bHNfY2xpZW50X2NlcnRfb3B0
aW9uYWw6Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xpZW50X2NlcnRfID0gc3NsLkNF
UlRfT1BUSU9OQUwKLSAgICAgICAgICAgICAgICAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgY2xpZW50X2NlcnRfID0gc3NsLkNFUlRfUkVRVUlSRUQKLSAgICAgICAg
ICAgICAgICAgICAgZWxzZToKLSAgICAgICAgICAgICAgICAgICAgICAgIGNsaWVudF9jZXJ0XyA9
IHNzbC5DRVJUX05PTkUKLSAgICAgICAgICAgICAgICAgICAgc29ja2V0XyA9IHNzbC53cmFwX3Nv
Y2tldChzb2NrZXRfLAotICAgICAgICAgICAgICAgICAgICAgICAga2V5ZmlsZT1zZXJ2ZXJfb3B0
aW9ucy5wcml2YXRlX2tleSwKLSAgICAgICAgICAgICAgICAgICAgICAgIGNlcnRmaWxlPXNlcnZl
cl9vcHRpb25zLmNlcnRpZmljYXRlLAotICAgICAgICAgICAgICAgICAgICAgICAgc3NsX3ZlcnNp
b249c3NsLlBST1RPQ09MX1NTTHYyMywKLSAgICAgICAgICAgICAgICAgICAgICAgIGNhX2NlcnRz
PXNlcnZlcl9vcHRpb25zLnRsc19jbGllbnRfY2EsCi0gICAgICAgICAgICAgICAgICAgICAgICBj
ZXJ0X3JlcXM9Y2xpZW50X2NlcnRfLAotICAgICAgICAgICAgICAgICAgICAgICAgZG9faGFuZHNo
YWtlX29uX2Nvbm5lY3Q9RmFsc2UpCi0gICAgICAgICAgICBzZWxmLl9zb2NrZXRzLmFwcGVuZCgo
c29ja2V0XywgYWRkcmluZm8pKQotCi0gICAgZGVmIHNlcnZlcl9iaW5kKHNlbGYpOgotICAgICAg
ICAiIiJPdmVycmlkZSBTb2NrZXRTZXJ2ZXIuVENQU2VydmVyLnNlcnZlcl9iaW5kIHRvIGVuYWJs
ZSBtdWx0aXBsZQotICAgICAgICBzb2NrZXRzIGJpbmQuCi0gICAgICAgICIiIgotCi0gICAgICAg
IGZhaWxlZF9zb2NrZXRzID0gW10KLQotICAgICAgICBmb3Igc29ja2V0aW5mbyBpbiBzZWxmLl9z
b2NrZXRzOgotICAgICAgICAgICAgc29ja2V0XywgYWRkcmluZm8gPSBzb2NrZXRpbmZvCi0gICAg
ICAgICAgICBzZWxmLl9sb2dnZXIuaW5mbygnQmluZCBvbjogJXInLCBhZGRyaW5mbykKLSAgICAg
ICAgICAgIGlmIHNlbGYuYWxsb3dfcmV1c2VfYWRkcmVzczoKLSAgICAgICAgICAgICAgICBzb2Nr
ZXRfLnNldHNvY2tvcHQoc29ja2V0LlNPTF9TT0NLRVQsIHNvY2tldC5TT19SRVVTRUFERFIsIDEp
Ci0gICAgICAgICAgICB0cnk6Ci0gICAgICAgICAgICAgICAgc29ja2V0Xy5iaW5kKHNlbGYuc2Vy
dmVyX2FkZHJlc3MpCi0gICAgICAgICAgICBleGNlcHQgRXhjZXB0aW9uLCBlOgotICAgICAgICAg
ICAgICAgIHNlbGYuX2xvZ2dlci5pbmZvKCdTa2lwIGJ5IGZhaWx1cmU6ICVyJywgZSkKLSAgICAg
ICAgICAgICAgICBzb2NrZXRfLmNsb3NlKCkKLSAgICAgICAgICAgICAgICBmYWlsZWRfc29ja2V0
cy5hcHBlbmQoc29ja2V0aW5mbykKLSAgICAgICAgICAgIGlmIHNlbGYuc2VydmVyX2FkZHJlc3Nb
MV0gPT0gMDoKLSAgICAgICAgICAgICAgICAjIFRoZSBvcGVyYXRpbmcgc3lzdGVtIGFzc2lnbnMg
dGhlIGFjdHVhbCBwb3J0IG51bWJlciBmb3IgcG9ydAotICAgICAgICAgICAgICAgICMgbnVtYmVy
IDAuIFRoaXMgY2FzZSwgdGhlIHNlY29uZCBhbmQgbGF0ZXIgc29ja2V0cyBzaG91bGQgdXNlCi0g
ICAgICAgICAgICAgICAgIyB0aGUgc2FtZSBwb3J0IG51bWJlci4gQWxzbyBzZWxmLnNlcnZlcl9w
b3J0IGlzIHJld3JpdHRlbgotICAgICAgICAgICAgICAgICMgYmVjYXVzZSBpdCBpcyBleHBvcnRl
ZCwgYW5kIHdpbGwgYmUgdXNlZCBieSBleHRlcm5hbCBjb2RlLgotICAgICAgICAgICAgICAgIHNl
bGYuc2VydmVyX2FkZHJlc3MgPSAoCi0gICAgICAgICAgICAgICAgICAgIHNlbGYuc2VydmVyX25h
bWUsIHNvY2tldF8uZ2V0c29ja25hbWUoKVsxXSkKLSAgICAgICAgICAgICAgICBzZWxmLnNlcnZl
cl9wb3J0ID0gc2VsZi5zZXJ2ZXJfYWRkcmVzc1sxXQotICAgICAgICAgICAgICAgIHNlbGYuX2xv
Z2dlci5pbmZvKCdQb3J0ICVyIGlzIGFzc2lnbmVkJywgc2VsZi5zZXJ2ZXJfcG9ydCkKLQotICAg
ICAgICBmb3Igc29ja2V0aW5mbyBpbiBmYWlsZWRfc29ja2V0czoKLSAgICAgICAgICAgIHNlbGYu
X3NvY2tldHMucmVtb3ZlKHNvY2tldGluZm8pCi0KLSAgICBkZWYgc2VydmVyX2FjdGl2YXRlKHNl
bGYpOgotICAgICAgICAiIiJPdmVycmlkZSBTb2NrZXRTZXJ2ZXIuVENQU2VydmVyLnNlcnZlcl9h
Y3RpdmF0ZSB0byBlbmFibGUgbXVsdGlwbGUKLSAgICAgICAgc29ja2V0cyBsaXN0ZW4uCi0gICAg
ICAgICIiIgotCi0gICAgICAgIGZhaWxlZF9zb2NrZXRzID0gW10KLQotICAgICAgICBmb3Igc29j
a2V0aW5mbyBpbiBzZWxmLl9zb2NrZXRzOgotICAgICAgICAgICAgc29ja2V0XywgYWRkcmluZm8g
PSBzb2NrZXRpbmZvCi0gICAgICAgICAgICBzZWxmLl9sb2dnZXIuaW5mbygnTGlzdGVuIG9uOiAl
cicsIGFkZHJpbmZvKQotICAgICAgICAgICAgdHJ5OgotICAgICAgICAgICAgICAgIHNvY2tldF8u
bGlzdGVuKHNlbGYucmVxdWVzdF9xdWV1ZV9zaXplKQotICAgICAgICAgICAgZXhjZXB0IEV4Y2Vw
dGlvbiwgZToKLSAgICAgICAgICAgICAgICBzZWxmLl9sb2dnZXIuaW5mbygnU2tpcCBieSBmYWls
dXJlOiAlcicsIGUpCi0gICAgICAgICAgICAgICAgc29ja2V0Xy5jbG9zZSgpCi0gICAgICAgICAg
ICAgICAgZmFpbGVkX3NvY2tldHMuYXBwZW5kKHNvY2tldGluZm8pCi0KLSAgICAgICAgZm9yIHNv
Y2tldGluZm8gaW4gZmFpbGVkX3NvY2tldHM6Ci0gICAgICAgICAgICBzZWxmLl9zb2NrZXRzLnJl
bW92ZShzb2NrZXRpbmZvKQotCi0gICAgICAgIGlmIGxlbihzZWxmLl9zb2NrZXRzKSA9PSAwOgot
ICAgICAgICAgICAgc2VsZi5fbG9nZ2VyLmNyaXRpY2FsKAotICAgICAgICAgICAgICAgICdObyBz
b2NrZXRzIGFjdGl2YXRlZC4gVXNlIGluZm8gbG9nIGxldmVsIHRvIHNlZSB0aGUgcmVhc29uLicp
Ci0KLSAgICBkZWYgc2VydmVyX2Nsb3NlKHNlbGYpOgotICAgICAgICAiIiJPdmVycmlkZSBTb2Nr
ZXRTZXJ2ZXIuVENQU2VydmVyLnNlcnZlcl9jbG9zZSB0byBlbmFibGUgbXVsdGlwbGUKLSAgICAg
ICAgc29ja2V0cyBjbG9zZS4KLSAgICAgICAgIiIiCi0KLSAgICAgICAgZm9yIHNvY2tldGluZm8g
aW4gc2VsZi5fc29ja2V0czoKLSAgICAgICAgICAgIHNvY2tldF8sIGFkZHJpbmZvID0gc29ja2V0
aW5mbwotICAgICAgICAgICAgc2VsZi5fbG9nZ2VyLmluZm8oJ0Nsb3NlIG9uOiAlcicsIGFkZHJp
bmZvKQotICAgICAgICAgICAgc29ja2V0Xy5jbG9zZSgpCi0KLSAgICBkZWYgZmlsZW5vKHNlbGYp
OgotICAgICAgICAiIiJPdmVycmlkZSBTb2NrZXRTZXJ2ZXIuVENQU2VydmVyLmZpbGVuby4iIiIK
LQotICAgICAgICBzZWxmLl9sb2dnZXIuY3JpdGljYWwoJ05vdCBzdXBwb3J0ZWQ6IGZpbGVubycp
Ci0gICAgICAgIHJldHVybiBzZWxmLl9zb2NrZXRzWzBdWzBdLmZpbGVubygpCi0KLSAgICBkZWYg
aGFuZGxlX2Vycm9yKHNlbGYsIHJlcXVlc3QsIGNsaWVudF9hZGRyZXNzKToKLSAgICAgICAgIiIi
T3ZlcnJpZGUgU29ja2V0U2VydmVyLmhhbmRsZV9lcnJvci4iIiIKLQotICAgICAgICBzZWxmLl9s
b2dnZXIuZXJyb3IoCi0gICAgICAgICAgICAnRXhjZXB0aW9uIGluIHByb2Nlc3NpbmcgcmVxdWVz
dCBmcm9tOiAlclxuJXMnLAotICAgICAgICAgICAgY2xpZW50X2FkZHJlc3MsCi0gICAgICAgICAg
ICB1dGlsLmdldF9zdGFja190cmFjZSgpKQotICAgICAgICAjIE5vdGU6IGNsaWVudF9hZGRyZXNz
IGlzIGEgdHVwbGUuCi0KLSAgICBkZWYgZ2V0X3JlcXVlc3Qoc2VsZik6Ci0gICAgICAgICIiIk92
ZXJyaWRlIFRDUFNlcnZlci5nZXRfcmVxdWVzdCB0byB3cmFwIE9wZW5TU0wuU1NMLkNvbm5lY3Rp
b24KLSAgICAgICAgb2JqZWN0IHdpdGggX1N0YW5kYWxvbmVTU0xDb25uZWN0aW9uIHRvIHByb3Zp
ZGUgbWFrZWZpbGUgbWV0aG9kLiBXZQotICAgICAgICBjYW5ub3Qgc3Vic3RpdHV0ZSBPcGVuU1NM
LlNTTC5Db25uZWN0aW9uLm1ha2VmaWxlIHNpbmNlIGl0J3MgcmVhZG9ubHkKLSAgICAgICAgYXR0
cmlidXRlLgotICAgICAgICAiIiIKLQotICAgICAgICBhY2NlcHRlZF9zb2NrZXQsIGNsaWVudF9h
ZGRyZXNzID0gc2VsZi5zb2NrZXQuYWNjZXB0KCkKLQotICAgICAgICBzZXJ2ZXJfb3B0aW9ucyA9
IHNlbGYud2Vic29ja2V0X3NlcnZlcl9vcHRpb25zCi0gICAgICAgIGlmIHNlcnZlcl9vcHRpb25z
LnVzZV90bHM6Ci0gICAgICAgICAgICBpZiBzZXJ2ZXJfb3B0aW9ucy50bHNfbW9kdWxlID09IF9U
TFNfQllfU1RBTkRBUkRfTU9EVUxFOgotICAgICAgICAgICAgICAgIHRyeToKLSAgICAgICAgICAg
ICAgICAgICAgYWNjZXB0ZWRfc29ja2V0LmRvX2hhbmRzaGFrZSgpCi0gICAgICAgICAgICAgICAg
ZXhjZXB0IHNzbC5TU0xFcnJvciwgZToKLSAgICAgICAgICAgICAgICAgICAgc2VsZi5fbG9nZ2Vy
LmRlYnVnKCclcicsIGUpCi0gICAgICAgICAgICAgICAgICAgIHJhaXNlCi0KLSAgICAgICAgICAg
ICAgICAjIFByaW50IGNpcGhlciBpbiB1c2UuIEhhbmRzaGFrZSBpcyBkb25lIG9uIGFjY2VwdC4K
LSAgICAgICAgICAgICAgICBzZWxmLl9sb2dnZXIuZGVidWcoJ0NpcGhlcjogJXMnLCBhY2NlcHRl
ZF9zb2NrZXQuY2lwaGVyKCkpCi0gICAgICAgICAgICAgICAgc2VsZi5fbG9nZ2VyLmRlYnVnKCdD
bGllbnQgY2VydDogJXInLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhY2Nl
cHRlZF9zb2NrZXQuZ2V0cGVlcmNlcnQoKSkKLSAgICAgICAgICAgIGVsaWYgc2VydmVyX29wdGlv
bnMudGxzX21vZHVsZSA9PSBfVExTX0JZX1BZT1BFTlNTTDoKLSAgICAgICAgICAgICAgICAjIFdl
IGNhbm5vdCBwcmludCB0aGUgY2lwaGVyIGluIHVzZS4gcHlPcGVuU1NMIGRvZXNuJ3QgcHJvdmlk
ZQotICAgICAgICAgICAgICAgICMgYW55IG1ldGhvZCB0byBmZXRjaCB0aGF0LgotCi0gICAgICAg
ICAgICAgICAgY3R4ID0gT3BlblNTTC5TU0wuQ29udGV4dChPcGVuU1NMLlNTTC5TU0x2MjNfTUVU
SE9EKQotICAgICAgICAgICAgICAgIGN0eC51c2VfcHJpdmF0ZWtleV9maWxlKHNlcnZlcl9vcHRp
b25zLnByaXZhdGVfa2V5KQotICAgICAgICAgICAgICAgIGN0eC51c2VfY2VydGlmaWNhdGVfZmls
ZShzZXJ2ZXJfb3B0aW9ucy5jZXJ0aWZpY2F0ZSkKLQotICAgICAgICAgICAgICAgIGRlZiBkZWZh
dWx0X2NhbGxiYWNrKGNvbm4sIGNlcnQsIGVycm51bSwgZXJyZGVwdGgsIG9rKToKLSAgICAgICAg
ICAgICAgICAgICAgcmV0dXJuIG9rID09IDEKLQotICAgICAgICAgICAgICAgICMgU2VlIHRoZSBP
cGVuU1NMIGRvY3VtZW50IGZvciBTU0xfQ1RYX3NldF92ZXJpZnkuCi0gICAgICAgICAgICAgICAg
aWYgc2VydmVyX29wdGlvbnMudGxzX2NsaWVudF9hdXRoOgotICAgICAgICAgICAgICAgICAgICB2
ZXJpZnlfbW9kZSA9IE9wZW5TU0wuU1NMLlZFUklGWV9QRUVSCi0gICAgICAgICAgICAgICAgICAg
IGlmIG5vdCBzZXJ2ZXJfb3B0aW9ucy50bHNfY2xpZW50X2NlcnRfb3B0aW9uYWw6Ci0gICAgICAg
ICAgICAgICAgICAgICAgICB2ZXJpZnlfbW9kZSB8PSBPcGVuU1NMLlNTTC5WRVJJRllfRkFJTF9J
Rl9OT19QRUVSX0NFUlQKLSAgICAgICAgICAgICAgICAgICAgY3R4LnNldF92ZXJpZnkodmVyaWZ5
X21vZGUsIGRlZmF1bHRfY2FsbGJhY2spCi0gICAgICAgICAgICAgICAgICAgIGN0eC5sb2FkX3Zl
cmlmeV9sb2NhdGlvbnMoc2VydmVyX29wdGlvbnMudGxzX2NsaWVudF9jYSwKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOb25lKQotICAgICAgICAgICAgICAg
IGVsc2U6Ci0gICAgICAgICAgICAgICAgICAgIGN0eC5zZXRfdmVyaWZ5KE9wZW5TU0wuU1NMLlZF
UklGWV9OT05FLCBkZWZhdWx0X2NhbGxiYWNrKQotCi0gICAgICAgICAgICAgICAgYWNjZXB0ZWRf
c29ja2V0ID0gT3BlblNTTC5TU0wuQ29ubmVjdGlvbihjdHgsIGFjY2VwdGVkX3NvY2tldCkKLSAg
ICAgICAgICAgICAgICBhY2NlcHRlZF9zb2NrZXQuc2V0X2FjY2VwdF9zdGF0ZSgpCi0KLSAgICAg
ICAgICAgICAgICAjIENvbnZlcnQgU1NMIHJlbGF0ZWQgZXJyb3IgaW50byBzb2NrZXQuZXJyb3Ig
c28gdGhhdAotICAgICAgICAgICAgICAgICMgU29ja2V0U2VydmVyIGlnbm9yZXMgdGhlbSBhbmQg
a2VlcHMgcnVubmluZy4KLSAgICAgICAgICAgICAgICAjCi0gICAgICAgICAgICAgICAgIyBUT0RP
KHR5b3NoaW5vKTogQ29udmVydCBhbGwga2luZHMgb2YgZXJyb3JzLgotICAgICAgICAgICAgICAg
IHRyeToKLSAgICAgICAgICAgICAgICAgICAgYWNjZXB0ZWRfc29ja2V0LmRvX2hhbmRzaGFrZSgp
Ci0gICAgICAgICAgICAgICAgZXhjZXB0IE9wZW5TU0wuU1NMLkVycm9yLCBlOgotICAgICAgICAg
ICAgICAgICAgICAjIFNldCBlcnJubyBwYXJ0IHRvIDEgKFNTTF9FUlJPUl9TU0wpIGxpa2UgdGhl
IHNzbCBtb2R1bGUKLSAgICAgICAgICAgICAgICAgICAgIyBkb2VzLgotICAgICAgICAgICAgICAg
ICAgICBzZWxmLl9sb2dnZXIuZGVidWcoJyVyJywgZSkKLSAgICAgICAgICAgICAgICAgICAgcmFp
c2Ugc29ja2V0LmVycm9yKDEsICclcicgJSBlKQotICAgICAgICAgICAgICAgIGNlcnQgPSBhY2Nl
cHRlZF9zb2NrZXQuZ2V0X3BlZXJfY2VydGlmaWNhdGUoKQotICAgICAgICAgICAgICAgIGlmIGNl
cnQgaXMgbm90IE5vbmU6Ci0gICAgICAgICAgICAgICAgICAgIHNlbGYuX2xvZ2dlci5kZWJ1Zygn
Q2xpZW50IGNlcnQgc3ViamVjdDogJXInLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgY2VydC5nZXRfc3ViamVjdCgpLmdldF9jb21wb25lbnRzKCkpCi0gICAgICAgICAg
ICAgICAgYWNjZXB0ZWRfc29ja2V0ID0gX1N0YW5kYWxvbmVTU0xDb25uZWN0aW9uKGFjY2VwdGVk
X3NvY2tldCkKLSAgICAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAgICAgcmFpc2UgVmFsdWVF
cnJvcignTm8gVExTIHN1cHBvcnQgbW9kdWxlIGlzIGF2YWlsYWJsZScpCi0KLSAgICAgICAgcmV0
dXJuIGFjY2VwdGVkX3NvY2tldCwgY2xpZW50X2FkZHJlc3MKLQotICAgIGRlZiBzZXJ2ZV9mb3Jl
dmVyKHNlbGYsIHBvbGxfaW50ZXJ2YWw9MC41KToKLSAgICAgICAgIiIiT3ZlcnJpZGUgU29ja2V0
U2VydmVyLkJhc2VTZXJ2ZXIuc2VydmVfZm9yZXZlci4iIiIKLQotICAgICAgICBzZWxmLl9fd3Nf
c2VydmluZyA9IFRydWUKLSAgICAgICAgc2VsZi5fX3dzX2lzX3NodXRfZG93bi5jbGVhcigpCi0g
ICAgICAgIGhhbmRsZV9yZXF1ZXN0ID0gc2VsZi5oYW5kbGVfcmVxdWVzdAotICAgICAgICBpZiBo
YXNhdHRyKHNlbGYsICdfaGFuZGxlX3JlcXVlc3Rfbm9ibG9jaycpOgotICAgICAgICAgICAgaGFu
ZGxlX3JlcXVlc3QgPSBzZWxmLl9oYW5kbGVfcmVxdWVzdF9ub2Jsb2NrCi0gICAgICAgIGVsc2U6
Ci0gICAgICAgICAgICBzZWxmLl9sb2dnZXIud2FybmluZygnRmFsbGJhY2sgdG8gYmxvY2tpbmcg
cmVxdWVzdCBoYW5kbGVyJykKLSAgICAgICAgdHJ5OgotICAgICAgICAgICAgd2hpbGUgc2VsZi5f
X3dzX3NlcnZpbmc6Ci0gICAgICAgICAgICAgICAgciwgdywgZSA9IHNlbGVjdC5zZWxlY3QoCi0g
ICAgICAgICAgICAgICAgICAgIFtzb2NrZXRfWzBdIGZvciBzb2NrZXRfIGluIHNlbGYuX3NvY2tl
dHNdLAotICAgICAgICAgICAgICAgICAgICBbXSwgW10sIHBvbGxfaW50ZXJ2YWwpCi0gICAgICAg
ICAgICAgICAgZm9yIHNvY2tldF8gaW4gcjoKLSAgICAgICAgICAgICAgICAgICAgc2VsZi5zb2Nr
ZXQgPSBzb2NrZXRfCi0gICAgICAgICAgICAgICAgICAgIGhhbmRsZV9yZXF1ZXN0KCkKLSAgICAg
ICAgICAgICAgICBzZWxmLnNvY2tldCA9IE5vbmUKLSAgICAgICAgZmluYWxseToKLSAgICAgICAg
ICAgIHNlbGYuX193c19pc19zaHV0X2Rvd24uc2V0KCkKLQotICAgIGRlZiBzaHV0ZG93bihzZWxm
KToKLSAgICAgICAgIiIiT3ZlcnJpZGUgU29ja2V0U2VydmVyLkJhc2VTZXJ2ZXIuc2h1dGRvd24u
IiIiCi0KLSAgICAgICAgc2VsZi5fX3dzX3NlcnZpbmcgPSBGYWxzZQotICAgICAgICBzZWxmLl9f
d3NfaXNfc2h1dF9kb3duLndhaXQoKQotCi0KLWNsYXNzIFdlYlNvY2tldFJlcXVlc3RIYW5kbGVy
KENHSUhUVFBTZXJ2ZXIuQ0dJSFRUUFJlcXVlc3RIYW5kbGVyKToKLSAgICAiIiJDR0lIVFRQUmVx
dWVzdEhhbmRsZXIgc3BlY2lhbGl6ZWQgZm9yIFdlYlNvY2tldC4iIiIKLQotICAgICMgVXNlIGh0
dHBsaWIuSFRUUE1lc3NhZ2UgaW5zdGVhZCBvZiBtaW1ldG9vbHMuTWVzc2FnZS4KLSAgICBNZXNz
YWdlQ2xhc3MgPSBodHRwbGliLkhUVFBNZXNzYWdlCi0KLSAgICBwcm90b2NvbF92ZXJzaW9uID0g
IkhUVFAvMS4xIgotCi0gICAgZGVmIHNldHVwKHNlbGYpOgotICAgICAgICAiIiJPdmVycmlkZSBT
b2NrZXRTZXJ2ZXIuU3RyZWFtUmVxdWVzdEhhbmRsZXIuc2V0dXAgdG8gd3JhcCByZmlsZQotICAg
ICAgICB3aXRoIE1lbW9yaXppbmdGaWxlLgotCi0gICAgICAgIFRoaXMgbWV0aG9kIHdpbGwgYmUg
Y2FsbGVkIGJ5IEJhc2VSZXF1ZXN0SGFuZGxlcidzIGNvbnN0cnVjdG9yCi0gICAgICAgIGJlZm9y
ZSBjYWxsaW5nIEJhc2VIVFRQUmVxdWVzdEhhbmRsZXIuaGFuZGxlLgotICAgICAgICBCYXNlSFRU
UFJlcXVlc3RIYW5kbGVyLmhhbmRsZSB3aWxsIGNhbGwKLSAgICAgICAgQmFzZUhUVFBSZXF1ZXN0
SGFuZGxlci5oYW5kbGVfb25lX3JlcXVlc3QgYW5kIGl0IHdpbGwgY2FsbAotICAgICAgICBXZWJT
b2NrZXRSZXF1ZXN0SGFuZGxlci5wYXJzZV9yZXF1ZXN0LgotICAgICAgICAiIiIKLQotICAgICAg
ICAjIENhbGwgc3VwZXJjbGFzcydzIHNldHVwIHRvIHByZXBhcmUgcmZpbGUsIHdmaWxlLCBldGMu
IFNlZSBzZXR1cAotICAgICAgICAjIGRlZmluaXRpb24gb24gdGhlIHJvb3QgY2xhc3MgU29ja2V0
U2VydmVyLlN0cmVhbVJlcXVlc3RIYW5kbGVyIHRvCi0gICAgICAgICMgdW5kZXJzdGFuZCB3aGF0
IHRoaXMgZG9lcy4KLSAgICAgICAgQ0dJSFRUUFNlcnZlci5DR0lIVFRQUmVxdWVzdEhhbmRsZXIu
c2V0dXAoc2VsZikKLQotICAgICAgICBzZWxmLnJmaWxlID0gbWVtb3JpemluZ2ZpbGUuTWVtb3Jp
emluZ0ZpbGUoCi0gICAgICAgICAgICBzZWxmLnJmaWxlLAotICAgICAgICAgICAgbWF4X21lbW9y
aXplZF9saW5lcz1fTUFYX01FTU9SSVpFRF9MSU5FUykKLQotICAgIGRlZiBfX2luaXRfXyhzZWxm
LCByZXF1ZXN0LCBjbGllbnRfYWRkcmVzcywgc2VydmVyKToKLSAgICAgICAgc2VsZi5fbG9nZ2Vy
ID0gdXRpbC5nZXRfY2xhc3NfbG9nZ2VyKHNlbGYpCi0KLSAgICAgICAgc2VsZi5fb3B0aW9ucyA9
IHNlcnZlci53ZWJzb2NrZXRfc2VydmVyX29wdGlvbnMKLQotICAgICAgICAjIE92ZXJyaWRlcyBD
R0lIVFRQU2VydmVyUmVxdWVzdEhhbmRsZXIuY2dpX2RpcmVjdG9yaWVzLgotICAgICAgICBzZWxm
LmNnaV9kaXJlY3RvcmllcyA9IHNlbGYuX29wdGlvbnMuY2dpX2RpcmVjdG9yaWVzCi0gICAgICAg
ICMgUmVwbGFjZSBDR0lIVFRQUmVxdWVzdEhhbmRsZXIuaXNfZXhlY3V0YWJsZSBtZXRob2QuCi0g
ICAgICAgIGlmIHNlbGYuX29wdGlvbnMuaXNfZXhlY3V0YWJsZV9tZXRob2QgaXMgbm90IE5vbmU6
Ci0gICAgICAgICAgICBzZWxmLmlzX2V4ZWN1dGFibGUgPSBzZWxmLl9vcHRpb25zLmlzX2V4ZWN1
dGFibGVfbWV0aG9kCi0KLSAgICAgICAgIyBUaGlzIGFjdHVhbGx5IGNhbGxzIEJhc2VSZXF1ZXN0
SGFuZGxlci5fX2luaXRfXy4KLSAgICAgICAgQ0dJSFRUUFNlcnZlci5DR0lIVFRQUmVxdWVzdEhh
bmRsZXIuX19pbml0X18oCi0gICAgICAgICAgICBzZWxmLCByZXF1ZXN0LCBjbGllbnRfYWRkcmVz
cywgc2VydmVyKQotCi0gICAgZGVmIHBhcnNlX3JlcXVlc3Qoc2VsZik6Ci0gICAgICAgICIiIk92
ZXJyaWRlIEJhc2VIVFRQU2VydmVyLkJhc2VIVFRQUmVxdWVzdEhhbmRsZXIucGFyc2VfcmVxdWVz
dC4KLQotICAgICAgICBSZXR1cm4gVHJ1ZSB0byBjb250aW51ZSBwcm9jZXNzaW5nIGZvciBIVFRQ
KFMpLCBGYWxzZSBvdGhlcndpc2UuCi0KLSAgICAgICAgU2VlIEJhc2VIVFRQUmVxdWVzdEhhbmRs
ZXIuaGFuZGxlX29uZV9yZXF1ZXN0IG1ldGhvZCB3aGljaCBjYWxscwotICAgICAgICB0aGlzIG1l
dGhvZCB0byB1bmRlcnN0YW5kIGhvdyB0aGUgcmV0dXJuIHZhbHVlIHdpbGwgYmUgaGFuZGxlZC4K
LSAgICAgICAgIiIiCi0KLSAgICAgICAgIyBXZSBob29rIHBhcnNlX3JlcXVlc3QgbWV0aG9kLCBi
dXQgYWxzbyBjYWxsIHRoZSBvcmlnaW5hbAotICAgICAgICAjIENHSUhUVFBSZXF1ZXN0SGFuZGxl
ci5wYXJzZV9yZXF1ZXN0IHNpbmNlIHdoZW4gd2UgcmV0dXJuIEZhbHNlLAotICAgICAgICAjIENH
SUhUVFBSZXF1ZXN0SGFuZGxlci5oYW5kbGVfb25lX3JlcXVlc3QgY29udGludWVzIHByb2Nlc3Np
bmcgYW5kCi0gICAgICAgICMgaXQgbmVlZHMgdmFyaWFibGVzIHNldCBieSBDR0lIVFRQUmVxdWVz
dEhhbmRsZXIucGFyc2VfcmVxdWVzdC4KLSAgICAgICAgIwotICAgICAgICAjIFZhcmlhYmxlcyBz
ZXQgYnkgdGhpcyBtZXRob2Qgd2lsbCBiZSBhbHNvIHVzZWQgYnkgV2ViU29ja2V0IHJlcXVlc3QK
LSAgICAgICAgIyBoYW5kbGluZyAoc2VsZi5wYXRoLCBzZWxmLmNvbW1hbmQsIHNlbGYucmVxdWVz
dGxpbmUsIGV0Yy4gU2VlIGFsc28KLSAgICAgICAgIyBob3cgX1N0YW5kYWxvbmVSZXF1ZXN0J3Mg
bWVtYmVycyBhcmUgaW1wbGVtZW50ZWQgdXNpbmcgdGhlc2UKLSAgICAgICAgIyBhdHRyaWJ1dGVz
KS4KLSAgICAgICAgaWYgbm90IENHSUhUVFBTZXJ2ZXIuQ0dJSFRUUFJlcXVlc3RIYW5kbGVyLnBh
cnNlX3JlcXVlc3Qoc2VsZik6Ci0gICAgICAgICAgICByZXR1cm4gRmFsc2UKLQotICAgICAgICBp
ZiBzZWxmLmNvbW1hbmQgPT0gIkNPTk5FQ1QiOgotICAgICAgICAgICAgc2VsZi5zZW5kX3Jlc3Bv
bnNlKDIwMCwgIkNvbm5lY3RlZCIpCi0gICAgICAgICAgICBzZWxmLnNlbmRfaGVhZGVyKCJDb25u
ZWN0aW9uIiwgImtlZXAtYWxpdmUiKQotICAgICAgICAgICAgc2VsZi5lbmRfaGVhZGVycygpCi0g
ICAgICAgICAgICByZXR1cm4gRmFsc2UKLQotICAgICAgICBpZiBzZWxmLl9vcHRpb25zLnVzZV9i
YXNpY19hdXRoOgotICAgICAgICAgICAgYXV0aCA9IHNlbGYuaGVhZGVycy5nZXRoZWFkZXIoJ0F1
dGhvcml6YXRpb24nKQotICAgICAgICAgICAgaWYgYXV0aCAhPSBzZWxmLl9vcHRpb25zLmJhc2lj
X2F1dGhfY3JlZGVudGlhbDoKLSAgICAgICAgICAgICAgICBzZWxmLnNlbmRfcmVzcG9uc2UoNDAx
KQotICAgICAgICAgICAgICAgIHNlbGYuc2VuZF9oZWFkZXIoJ1dXVy1BdXRoZW50aWNhdGUnLAot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ0Jhc2ljIHJlYWxtPSJQeXdlYnNvY2tl
dCInKQotICAgICAgICAgICAgICAgIHNlbGYuZW5kX2hlYWRlcnMoKQotICAgICAgICAgICAgICAg
IHNlbGYuX2xvZ2dlci5pbmZvKCdSZXF1ZXN0IGJhc2ljIGF1dGhlbnRpY2F0aW9uJykKLSAgICAg
ICAgICAgICAgICByZXR1cm4gRmFsc2UKLQotICAgICAgICBob3N0LCBwb3J0LCByZXNvdXJjZSA9
IGh0dHBfaGVhZGVyX3V0aWwucGFyc2VfdXJpKHNlbGYucGF0aCkKLQotICAgICAgICAjIFNwZWNp
YWwgcGF0aHMgZm9yIFhNTEh0dHBSZXF1ZXN0IGJlbmNobWFyawotICAgICAgICB4aHJfYmVuY2ht
YXJrX2hlbHBlcl9wcmVmaXggPSAnLzA3M2JlMDAxZTEwOTUwNjkyY2NiZjNhMmFkMjFjMjQ1Jwot
ICAgICAgICBpZiByZXNvdXJjZSA9PSAoeGhyX2JlbmNobWFya19oZWxwZXJfcHJlZml4ICsgJ19z
ZW5kJyk6Ci0gICAgICAgICAgICB4aHJfYmVuY2htYXJrX2hhbmRsZXIgPSBYSFJCZW5jaG1hcmtI
YW5kbGVyKAotICAgICAgICAgICAgICAgIHNlbGYuaGVhZGVycywgc2VsZi5yZmlsZSwgc2VsZi53
ZmlsZSkKLSAgICAgICAgICAgIHhocl9iZW5jaG1hcmtfaGFuZGxlci5kb19zZW5kKCkKLSAgICAg
ICAgICAgIHJldHVybiBGYWxzZQotICAgICAgICBpZiByZXNvdXJjZSA9PSAoeGhyX2JlbmNobWFy
a19oZWxwZXJfcHJlZml4ICsgJ19yZWNlaXZlJyk6Ci0gICAgICAgICAgICB4aHJfYmVuY2htYXJr
X2hhbmRsZXIgPSBYSFJCZW5jaG1hcmtIYW5kbGVyKAotICAgICAgICAgICAgICAgIHNlbGYuaGVh
ZGVycywgc2VsZi5yZmlsZSwgc2VsZi53ZmlsZSkKLSAgICAgICAgICAgIHhocl9iZW5jaG1hcmtf
aGFuZGxlci5kb19yZWNlaXZlKCkKLSAgICAgICAgICAgIHJldHVybiBGYWxzZQotCi0gICAgICAg
IGlmIHJlc291cmNlIGlzIE5vbmU6Ci0gICAgICAgICAgICBzZWxmLl9sb2dnZXIuaW5mbygnSW52
YWxpZCBVUkk6ICVyJywgc2VsZi5wYXRoKQotICAgICAgICAgICAgc2VsZi5fbG9nZ2VyLmluZm8o
J0ZhbGxiYWNrIHRvIENHSUhUVFBSZXF1ZXN0SGFuZGxlcicpCi0gICAgICAgICAgICByZXR1cm4g
VHJ1ZQotICAgICAgICBzZXJ2ZXJfb3B0aW9ucyA9IHNlbGYuc2VydmVyLndlYnNvY2tldF9zZXJ2
ZXJfb3B0aW9ucwotICAgICAgICBpZiBob3N0IGlzIG5vdCBOb25lOgotICAgICAgICAgICAgdmFs
aWRhdGlvbl9ob3N0ID0gc2VydmVyX29wdGlvbnMudmFsaWRhdGlvbl9ob3N0Ci0gICAgICAgICAg
ICBpZiB2YWxpZGF0aW9uX2hvc3QgaXMgbm90IE5vbmUgYW5kIGhvc3QgIT0gdmFsaWRhdGlvbl9o
b3N0OgotICAgICAgICAgICAgICAgIHNlbGYuX2xvZ2dlci5pbmZvKCdJbnZhbGlkIGhvc3Q6ICVy
IChleHBlY3RlZDogJXIpJywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBob3N0
LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbGlkYXRpb25faG9zdCkKLSAg
ICAgICAgICAgICAgICBzZWxmLl9sb2dnZXIuaW5mbygnRmFsbGJhY2sgdG8gQ0dJSFRUUFJlcXVl
c3RIYW5kbGVyJykKLSAgICAgICAgICAgICAgICByZXR1cm4gVHJ1ZQotICAgICAgICBpZiBwb3J0
IGlzIG5vdCBOb25lOgotICAgICAgICAgICAgdmFsaWRhdGlvbl9wb3J0ID0gc2VydmVyX29wdGlv
bnMudmFsaWRhdGlvbl9wb3J0Ci0gICAgICAgICAgICBpZiB2YWxpZGF0aW9uX3BvcnQgaXMgbm90
IE5vbmUgYW5kIHBvcnQgIT0gdmFsaWRhdGlvbl9wb3J0OgotICAgICAgICAgICAgICAgIHNlbGYu
X2xvZ2dlci5pbmZvKCdJbnZhbGlkIHBvcnQ6ICVyIChleHBlY3RlZDogJXIpJywKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBwb3J0LAotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHZhbGlkYXRpb25fcG9ydCkKLSAgICAgICAgICAgICAgICBzZWxmLl9sb2dnZXIu
aW5mbygnRmFsbGJhY2sgdG8gQ0dJSFRUUFJlcXVlc3RIYW5kbGVyJykKLSAgICAgICAgICAgICAg
ICByZXR1cm4gVHJ1ZQotICAgICAgICBzZWxmLnBhdGggPSByZXNvdXJjZQotCi0gICAgICAgIHJl
cXVlc3QgPSBfU3RhbmRhbG9uZVJlcXVlc3Qoc2VsZiwgc2VsZi5fb3B0aW9ucy51c2VfdGxzKQot
Ci0gICAgICAgIHRyeToKLSAgICAgICAgICAgICMgRmFsbGJhY2sgdG8gZGVmYXVsdCBodHRwIGhh
bmRsZXIgZm9yIHJlcXVlc3QgcGF0aHMgZm9yIHdoaWNoCi0gICAgICAgICAgICAjIHdlIGRvbid0
IGhhdmUgcmVxdWVzdCBoYW5kbGVycy4KLSAgICAgICAgICAgIGlmIG5vdCBzZWxmLl9vcHRpb25z
LmRpc3BhdGNoZXIuZ2V0X2hhbmRsZXJfc3VpdGUoc2VsZi5wYXRoKToKLSAgICAgICAgICAgICAg
ICBzZWxmLl9sb2dnZXIuaW5mbygnTm8gaGFuZGxlciBmb3IgcmVzb3VyY2U6ICVyJywKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnBhdGgpCi0gICAgICAgICAgICAgICAg
c2VsZi5fbG9nZ2VyLmluZm8oJ0ZhbGxiYWNrIHRvIENHSUhUVFBSZXF1ZXN0SGFuZGxlcicpCi0g
ICAgICAgICAgICAgICAgcmV0dXJuIFRydWUKLSAgICAgICAgZXhjZXB0IGRpc3BhdGNoLkRpc3Bh
dGNoRXhjZXB0aW9uLCBlOgotICAgICAgICAgICAgc2VsZi5fbG9nZ2VyLmluZm8oJ0Rpc3BhdGNo
IGZhaWxlZCBmb3IgZXJyb3I6ICVzJywgZSkKLSAgICAgICAgICAgIHNlbGYuc2VuZF9lcnJvcihl
LnN0YXR1cykKLSAgICAgICAgICAgIHJldHVybiBGYWxzZQotCi0gICAgICAgICMgSWYgYW55IEV4
Y2VwdGlvbnMgd2l0aG91dCBleGNlcHQgY2xhdXNlIHNldHVwIChpbmNsdWRpbmcKLSAgICAgICAg
IyBEaXNwYXRjaEV4Y2VwdGlvbikgaXMgcmFpc2VkIGJlbG93IHRoaXMgcG9pbnQsIGl0IHdpbGwg
YmUgY2F1Z2h0Ci0gICAgICAgICMgYW5kIGxvZ2dlZCBieSBXZWJTb2NrZXRTZXJ2ZXIuCi0KLSAg
ICAgICAgdHJ5OgotICAgICAgICAgICAgdHJ5OgotICAgICAgICAgICAgICAgIGhhbmRzaGFrZS5k
b19oYW5kc2hha2UoCi0gICAgICAgICAgICAgICAgICAgIHJlcXVlc3QsCi0gICAgICAgICAgICAg
ICAgICAgIHNlbGYuX29wdGlvbnMuZGlzcGF0Y2hlciwKLSAgICAgICAgICAgICAgICAgICAgYWxs
b3dEcmFmdDc1PXNlbGYuX29wdGlvbnMuYWxsb3dfZHJhZnQ3NSwKLSAgICAgICAgICAgICAgICAg
ICAgc3RyaWN0PXNlbGYuX29wdGlvbnMuc3RyaWN0KQotICAgICAgICAgICAgZXhjZXB0IGhhbmRz
aGFrZS5WZXJzaW9uRXhjZXB0aW9uLCBlOgotICAgICAgICAgICAgICAgIHNlbGYuX2xvZ2dlci5p
bmZvKCdIYW5kc2hha2UgZmFpbGVkIGZvciB2ZXJzaW9uIGVycm9yOiAlcycsIGUpCi0gICAgICAg
ICAgICAgICAgc2VsZi5zZW5kX3Jlc3BvbnNlKGNvbW1vbi5IVFRQX1NUQVRVU19CQURfUkVRVUVT
VCkKLSAgICAgICAgICAgICAgICBzZWxmLnNlbmRfaGVhZGVyKGNvbW1vbi5TRUNfV0VCU09DS0VU
X1ZFUlNJT05fSEVBREVSLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZS5zdXBw
b3J0ZWRfdmVyc2lvbnMpCi0gICAgICAgICAgICAgICAgc2VsZi5lbmRfaGVhZGVycygpCi0gICAg
ICAgICAgICAgICAgcmV0dXJuIEZhbHNlCi0gICAgICAgICAgICBleGNlcHQgaGFuZHNoYWtlLkhh
bmRzaGFrZUV4Y2VwdGlvbiwgZToKLSAgICAgICAgICAgICAgICAjIEhhbmRzaGFrZSBmb3Igd3Mo
cykgZmFpbGVkLgotICAgICAgICAgICAgICAgIHNlbGYuX2xvZ2dlci5pbmZvKCdIYW5kc2hha2Ug
ZmFpbGVkIGZvciBlcnJvcjogJXMnLCBlKQotICAgICAgICAgICAgICAgIHNlbGYuc2VuZF9lcnJv
cihlLnN0YXR1cykKLSAgICAgICAgICAgICAgICByZXR1cm4gRmFsc2UKLQotICAgICAgICAgICAg
cmVxdWVzdC5fZGlzcGF0Y2hlciA9IHNlbGYuX29wdGlvbnMuZGlzcGF0Y2hlcgotICAgICAgICAg
ICAgc2VsZi5fb3B0aW9ucy5kaXNwYXRjaGVyLnRyYW5zZmVyX2RhdGEocmVxdWVzdCkKLSAgICAg
ICAgZXhjZXB0IGhhbmRzaGFrZS5BYm9ydGVkQnlVc2VyRXhjZXB0aW9uLCBlOgotICAgICAgICAg
ICAgc2VsZi5fbG9nZ2VyLmluZm8oJ0Fib3J0ZWQ6ICVzJywgZSkKLSAgICAgICAgcmV0dXJuIEZh
bHNlCi0KLSAgICBkZWYgbG9nX3JlcXVlc3Qoc2VsZiwgY29kZT0nLScsIHNpemU9Jy0nKToKLSAg
ICAgICAgIiIiT3ZlcnJpZGUgQmFzZUhUVFBTZXJ2ZXIubG9nX3JlcXVlc3QuIiIiCi0KLSAgICAg
ICAgc2VsZi5fbG9nZ2VyLmluZm8oJyIlcyIgJXMgJXMnLAotICAgICAgICAgICAgICAgICAgICAg
ICAgICBzZWxmLnJlcXVlc3RsaW5lLCBzdHIoY29kZSksIHN0cihzaXplKSkKLQotICAgIGRlZiBs
b2dfZXJyb3Ioc2VsZiwgKmFyZ3MpOgotICAgICAgICAiIiJPdmVycmlkZSBCYXNlSFRUUFNlcnZl
ci5sb2dfZXJyb3IuIiIiCi0KLSAgICAgICAgIyBEZXNwaXRlIHRoZSBuYW1lLCB0aGlzIG1ldGhv
ZCBpcyBmb3Igd2FybmluZ3MgdGhhbiBmb3IgZXJyb3JzLgotICAgICAgICAjIEZvciBleGFtcGxl
LCBIVFRQIHN0YXR1cyBjb2RlIGlzIGxvZ2dlZCBieSB0aGlzIG1ldGhvZC4KLSAgICAgICAgc2Vs
Zi5fbG9nZ2VyLndhcm5pbmcoJyVzIC0gJXMnLAotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBzZWxmLmFkZHJlc3Nfc3RyaW5nKCksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFy
Z3NbMF0gJSBhcmdzWzE6XSkKLQotICAgIGRlZiBpc19jZ2koc2VsZik6Ci0gICAgICAgICIiIlRl
c3Qgd2hldGhlciBzZWxmLnBhdGggY29ycmVzcG9uZHMgdG8gYSBDR0kgc2NyaXB0LgotCi0gICAg
ICAgIEFkZCBleHRyYSBjaGVjayB0aGF0IHNlbGYucGF0aCBkb2Vzbid0IGNvbnRhaW5zIC4uCi0g
ICAgICAgIEFsc28gY2hlY2sgaWYgdGhlIGZpbGUgaXMgYSBleGVjdXRhYmxlIGZpbGUgb3Igbm90
LgotICAgICAgICBJZiB0aGUgZmlsZSBpcyBub3QgZXhlY3V0YWJsZSwgaXQgaXMgaGFuZGxlZCBh
cyBzdGF0aWMgZmlsZSBvciBkaXIKLSAgICAgICAgcmF0aGVyIHRoYW4gYSBDR0kgc2NyaXB0Lgot
ICAgICAgICAiIiIKLQotICAgICAgICBpZiBDR0lIVFRQU2VydmVyLkNHSUhUVFBSZXF1ZXN0SGFu
ZGxlci5pc19jZ2koc2VsZik6Ci0gICAgICAgICAgICBpZiAnLi4nIGluIHNlbGYucGF0aDoKLSAg
ICAgICAgICAgICAgICByZXR1cm4gRmFsc2UKLSAgICAgICAgICAgICMgc3RyaXAgcXVlcnkgcGFy
YW1ldGVyIGZyb20gcmVxdWVzdCBwYXRoCi0gICAgICAgICAgICByZXNvdXJjZV9uYW1lID0gc2Vs
Zi5wYXRoLnNwbGl0KCc/JywgMilbMF0KLSAgICAgICAgICAgICMgY29udmVydCByZXNvdXJjZV9u
YW1lIGludG8gcmVhbCBwYXRoIG5hbWUgaW4gZmlsZXN5c3RlbS4KLSAgICAgICAgICAgIHNjcmlw
dGZpbGUgPSBzZWxmLnRyYW5zbGF0ZV9wYXRoKHJlc291cmNlX25hbWUpCi0gICAgICAgICAgICBp
ZiBub3Qgb3MucGF0aC5pc2ZpbGUoc2NyaXB0ZmlsZSk6Ci0gICAgICAgICAgICAgICAgcmV0dXJu
IEZhbHNlCi0gICAgICAgICAgICBpZiBub3Qgc2VsZi5pc19leGVjdXRhYmxlKHNjcmlwdGZpbGUp
OgotICAgICAgICAgICAgICAgIHJldHVybiBGYWxzZQotICAgICAgICAgICAgcmV0dXJuIFRydWUK
LSAgICAgICAgcmV0dXJuIEZhbHNlCi0KLQotZGVmIF9nZXRfbG9nZ2VyX2Zyb21fY2xhc3MoYyk6
Ci0gICAgcmV0dXJuIGxvZ2dpbmcuZ2V0TG9nZ2VyKCclcy4lcycgJSAoYy5fX21vZHVsZV9fLCBj
Ll9fbmFtZV9fKSkKLQotCi1kZWYgX2NvbmZpZ3VyZV9sb2dnaW5nKG9wdGlvbnMpOgotICAgIGxv
Z2dpbmcuYWRkTGV2ZWxOYW1lKGNvbW1vbi5MT0dMRVZFTF9GSU5FLCAnRklORScpCi0KLSAgICBs
b2dnZXIgPSBsb2dnaW5nLmdldExvZ2dlcigpCi0gICAgbG9nZ2VyLnNldExldmVsKGxvZ2dpbmcu
Z2V0TGV2ZWxOYW1lKG9wdGlvbnMubG9nX2xldmVsLnVwcGVyKCkpKQotICAgIGlmIG9wdGlvbnMu
bG9nX2ZpbGU6Ci0gICAgICAgIGhhbmRsZXIgPSBsb2dnaW5nLmhhbmRsZXJzLlJvdGF0aW5nRmls
ZUhhbmRsZXIoCi0gICAgICAgICAgICAgICAgb3B0aW9ucy5sb2dfZmlsZSwgJ2EnLCBvcHRpb25z
LmxvZ19tYXgsIG9wdGlvbnMubG9nX2NvdW50KQotICAgIGVsc2U6Ci0gICAgICAgIGhhbmRsZXIg
PSBsb2dnaW5nLlN0cmVhbUhhbmRsZXIoKQotICAgIGZvcm1hdHRlciA9IGxvZ2dpbmcuRm9ybWF0
dGVyKAotICAgICAgICAgICAgJ1slKGFzY3RpbWUpc10gWyUobGV2ZWxuYW1lKXNdICUobmFtZSlz
OiAlKG1lc3NhZ2UpcycpCi0gICAgaGFuZGxlci5zZXRGb3JtYXR0ZXIoZm9ybWF0dGVyKQotICAg
IGxvZ2dlci5hZGRIYW5kbGVyKGhhbmRsZXIpCi0KLSAgICBkZWZsYXRlX2xvZ19sZXZlbF9uYW1l
ID0gbG9nZ2luZy5nZXRMZXZlbE5hbWUoCi0gICAgICAgIG9wdGlvbnMuZGVmbGF0ZV9sb2dfbGV2
ZWwudXBwZXIoKSkKLSAgICBfZ2V0X2xvZ2dlcl9mcm9tX2NsYXNzKHV0aWwuX0RlZmxhdGVyKS5z
ZXRMZXZlbCgKLSAgICAgICAgZGVmbGF0ZV9sb2dfbGV2ZWxfbmFtZSkKLSAgICBfZ2V0X2xvZ2dl
cl9mcm9tX2NsYXNzKHV0aWwuX0luZmxhdGVyKS5zZXRMZXZlbCgKLSAgICAgICAgZGVmbGF0ZV9s
b2dfbGV2ZWxfbmFtZSkKLQotCi1kZWYgX2J1aWxkX29wdGlvbl9wYXJzZXIoKToKLSAgICBwYXJz
ZXIgPSBvcHRwYXJzZS5PcHRpb25QYXJzZXIoKQotCi0gICAgcGFyc2VyLmFkZF9vcHRpb24oJy0t
Y29uZmlnJywgZGVzdD0nY29uZmlnX2ZpbGUnLCB0eXBlPSdzdHJpbmcnLAotICAgICAgICAgICAg
ICAgICAgICAgIGRlZmF1bHQ9Tm9uZSwKLSAgICAgICAgICAgICAgICAgICAgICBoZWxwPSgnUGF0
aCB0byBjb25maWd1cmF0aW9uIGZpbGUuIFNlZSB0aGUgZmlsZSBjb21tZW50ICcKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAnYXQgdGhlIHRvcCBvZiB0aGlzIGZpbGUgZm9yIHRoZSBjb25m
aWd1cmF0aW9uICcKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZmlsZSBmb3JtYXQnKSkK
LSAgICBwYXJzZXIuYWRkX29wdGlvbignLUgnLCAnLS1zZXJ2ZXItaG9zdCcsICctLXNlcnZlcl9o
b3N0JywKLSAgICAgICAgICAgICAgICAgICAgICBkZXN0PSdzZXJ2ZXJfaG9zdCcsCi0gICAgICAg
ICAgICAgICAgICAgICAgZGVmYXVsdD0nJywKLSAgICAgICAgICAgICAgICAgICAgICBoZWxwPSdz
ZXJ2ZXIgaG9zdG5hbWUgdG8gbGlzdGVuIHRvJykKLSAgICBwYXJzZXIuYWRkX29wdGlvbignLVYn
LCAnLS12YWxpZGF0aW9uLWhvc3QnLCAnLS12YWxpZGF0aW9uX2hvc3QnLAotICAgICAgICAgICAg
ICAgICAgICAgIGRlc3Q9J3ZhbGlkYXRpb25faG9zdCcsCi0gICAgICAgICAgICAgICAgICAgICAg
ZGVmYXVsdD1Ob25lLAotICAgICAgICAgICAgICAgICAgICAgIGhlbHA9J3NlcnZlciBob3N0bmFt
ZSB0byB2YWxpZGF0ZSBpbiBhYnNvbHV0ZSBwYXRoLicpCi0gICAgcGFyc2VyLmFkZF9vcHRpb24o
Jy1wJywgJy0tcG9ydCcsIGRlc3Q9J3BvcnQnLCB0eXBlPSdpbnQnLAotICAgICAgICAgICAgICAg
ICAgICAgIGRlZmF1bHQ9Y29tbW9uLkRFRkFVTFRfV0VCX1NPQ0tFVF9QT1JULAotICAgICAgICAg
ICAgICAgICAgICAgIGhlbHA9J3BvcnQgdG8gbGlzdGVuIHRvJykKLSAgICBwYXJzZXIuYWRkX29w
dGlvbignLVAnLCAnLS12YWxpZGF0aW9uLXBvcnQnLCAnLS12YWxpZGF0aW9uX3BvcnQnLAotICAg
ICAgICAgICAgICAgICAgICAgIGRlc3Q9J3ZhbGlkYXRpb25fcG9ydCcsIHR5cGU9J2ludCcsCi0g
ICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdD1Ob25lLAotICAgICAgICAgICAgICAgICAgICAg
IGhlbHA9J3NlcnZlciBwb3J0IHRvIHZhbGlkYXRlIGluIGFic29sdXRlIHBhdGguJykKLSAgICBw
YXJzZXIuYWRkX29wdGlvbignLXcnLCAnLS13ZWJzb2NrLWhhbmRsZXJzJywgJy0td2Vic29ja19o
YW5kbGVycycsCi0gICAgICAgICAgICAgICAgICAgICAgZGVzdD0nd2Vic29ja19oYW5kbGVycycs
Ci0gICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdD0nLicsCi0gICAgICAgICAgICAgICAgICAg
ICAgaGVscD0oJ1RoZSByb290IGRpcmVjdG9yeSBvZiBXZWJTb2NrZXQgaGFuZGxlciBmaWxlcy4g
JwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICdJZiB0aGUgcGF0aCBpcyByZWxhdGl2ZSwg
LS1kb2N1bWVudC1yb290IGlzIHVzZWQgJwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICdh
cyB0aGUgYmFzZS4nKSkKLSAgICBwYXJzZXIuYWRkX29wdGlvbignLW0nLCAnLS13ZWJzb2NrLWhh
bmRsZXJzLW1hcC1maWxlJywKLSAgICAgICAgICAgICAgICAgICAgICAnLS13ZWJzb2NrX2hhbmRs
ZXJzX21hcF9maWxlJywKLSAgICAgICAgICAgICAgICAgICAgICBkZXN0PSd3ZWJzb2NrX2hhbmRs
ZXJzX21hcF9maWxlJywKLSAgICAgICAgICAgICAgICAgICAgICBkZWZhdWx0PU5vbmUsCi0gICAg
ICAgICAgICAgICAgICAgICAgaGVscD0oJ1dlYlNvY2tldCBoYW5kbGVycyBtYXAgZmlsZS4gJwot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICdFYWNoIGxpbmUgY29uc2lzdHMgb2YgYWxpYXNf
cmVzb3VyY2VfcGF0aCBhbmQgJwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICdleGlzdGlu
Z19yZXNvdXJjZV9wYXRoLCBzZXBhcmF0ZWQgYnkgc3BhY2VzLicpKQotICAgIHBhcnNlci5hZGRf
b3B0aW9uKCctcycsICctLXNjYW4tZGlyJywgJy0tc2Nhbl9kaXInLCBkZXN0PSdzY2FuX2Rpcics
Ci0gICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdD1Ob25lLAotICAgICAgICAgICAgICAgICAg
ICAgIGhlbHA9KCdNdXN0IGJlIGEgZGlyZWN0b3J5IHVuZGVyIC0td2Vic29jay1oYW5kbGVycy4g
JwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICdPbmx5IGhhbmRsZXJzIHVuZGVyIHRoaXMg
ZGlyZWN0b3J5IGFyZSBzY2FubmVkICcKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAnYW5k
IHJlZ2lzdGVyZWQgdG8gdGhlIHNlcnZlci4gJwotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICdVc2VmdWwgZm9yIHNhdmluZyBzY2FuIHRpbWUgd2hlbiB0aGUgaGFuZGxlciAnCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgJ3Jvb3QgZGlyZWN0b3J5IGNvbnRhaW5zIGxvdHMgb2YgZmls
ZXMgdGhhdCBhcmUgJwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICdub3QgaGFuZGxlciBm
aWxlIG9yIGFyZSBoYW5kbGVyIGZpbGVzIGJ1dCB5b3UgJwotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICdkb25cJ3Qgd2FudCB0aGVtIHRvIGJlIHJlZ2lzdGVyZWQuICcpKQotICAgIHBhcnNl
ci5hZGRfb3B0aW9uKCctLWFsbG93LWhhbmRsZXJzLW91dHNpZGUtcm9vdC1kaXInLAotICAgICAg
ICAgICAgICAgICAgICAgICctLWFsbG93X2hhbmRsZXJzX291dHNpZGVfcm9vdF9kaXInLAotICAg
ICAgICAgICAgICAgICAgICAgIGRlc3Q9J2FsbG93X2hhbmRsZXJzX291dHNpZGVfcm9vdF9kaXIn
LAotICAgICAgICAgICAgICAgICAgICAgIGFjdGlvbj0nc3RvcmVfdHJ1ZScsCi0gICAgICAgICAg
ICAgICAgICAgICAgZGVmYXVsdD1GYWxzZSwKLSAgICAgICAgICAgICAgICAgICAgICBoZWxwPSgn
U2NhbnMgV2ViU29ja2V0IGhhbmRsZXJzIGV2ZW4gaWYgdGhlaXIgY2Fub25pY2FsICcKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAncGF0aCBpcyBub3QgdW5kZXIgLS13ZWJzb2NrLWhhbmRs
ZXJzLicpKQotICAgIHBhcnNlci5hZGRfb3B0aW9uKCctZCcsICctLWRvY3VtZW50LXJvb3QnLCAn
LS1kb2N1bWVudF9yb290JywKLSAgICAgICAgICAgICAgICAgICAgICBkZXN0PSdkb2N1bWVudF9y
b290JywgZGVmYXVsdD0nLicsCi0gICAgICAgICAgICAgICAgICAgICAgaGVscD0nRG9jdW1lbnQg
cm9vdCBkaXJlY3RvcnkuJykKLSAgICBwYXJzZXIuYWRkX29wdGlvbignLXgnLCAnLS1jZ2ktcGF0
aHMnLCAnLS1jZ2lfcGF0aHMnLCBkZXN0PSdjZ2lfcGF0aHMnLAotICAgICAgICAgICAgICAgICAg
ICAgIGRlZmF1bHQ9Tm9uZSwKLSAgICAgICAgICAgICAgICAgICAgICBoZWxwPSgnQ0dJIHBhdGhz
IHJlbGF0aXZlIHRvIGRvY3VtZW50X3Jvb3QuJwotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICdDb21tYS1zZXBhcmF0ZWQuIChlLmcgLXggL2NnaSwvaHRiaW4pICcKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAnRmlsZXMgdW5kZXIgZG9jdW1lbnRfcm9vdC9jZ2lfcGF0aCBhcmUgaGFu
ZGxlZCAnCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2FzIENHSSBwcm9ncmFtcy4gTXVz
dCBiZSBleGVjdXRhYmxlLicpKQotICAgIHBhcnNlci5hZGRfb3B0aW9uKCctdCcsICctLXRscycs
IGRlc3Q9J3VzZV90bHMnLCBhY3Rpb249J3N0b3JlX3RydWUnLAotICAgICAgICAgICAgICAgICAg
ICAgIGRlZmF1bHQ9RmFsc2UsIGhlbHA9J3VzZSBUTFMgKHdzczovLyknKQotICAgIHBhcnNlci5h
ZGRfb3B0aW9uKCctLXRscy1tb2R1bGUnLCAnLS10bHNfbW9kdWxlJywgZGVzdD0ndGxzX21vZHVs
ZScsCi0gICAgICAgICAgICAgICAgICAgICAgdHlwZT0nY2hvaWNlJywKLSAgICAgICAgICAgICAg
ICAgICAgICBjaG9pY2VzID0gW19UTFNfQllfU1RBTkRBUkRfTU9EVUxFLCBfVExTX0JZX1BZT1BF
TlNTTF0sCi0gICAgICAgICAgICAgICAgICAgICAgaGVscD0nVXNlIHNzbCBtb2R1bGUgaWYgIiVz
IiBpcyBzcGVjaWZpZWQuICcKLSAgICAgICAgICAgICAgICAgICAgICAnVXNlIHB5T3BlblNTTCBt
b2R1bGUgaWYgIiVzIiBpcyBzcGVjaWZpZWQnICUKLSAgICAgICAgICAgICAgICAgICAgICAoX1RM
U19CWV9TVEFOREFSRF9NT0RVTEUsIF9UTFNfQllfUFlPUEVOU1NMKSkKLSAgICBwYXJzZXIuYWRk
X29wdGlvbignLWsnLCAnLS1wcml2YXRlLWtleScsICctLXByaXZhdGVfa2V5JywKLSAgICAgICAg
ICAgICAgICAgICAgICBkZXN0PSdwcml2YXRlX2tleScsCi0gICAgICAgICAgICAgICAgICAgICAg
ZGVmYXVsdD0nJywgaGVscD0nVExTIHByaXZhdGUga2V5IGZpbGUuJykKLSAgICBwYXJzZXIuYWRk
X29wdGlvbignLWMnLCAnLS1jZXJ0aWZpY2F0ZScsIGRlc3Q9J2NlcnRpZmljYXRlJywKLSAgICAg
ICAgICAgICAgICAgICAgICBkZWZhdWx0PScnLCBoZWxwPSdUTFMgY2VydGlmaWNhdGUgZmlsZS4n
KQotICAgIHBhcnNlci5hZGRfb3B0aW9uKCctLXRscy1jbGllbnQtYXV0aCcsIGRlc3Q9J3Rsc19j
bGllbnRfYXV0aCcsCi0gICAgICAgICAgICAgICAgICAgICAgYWN0aW9uPSdzdG9yZV90cnVlJywg
ZGVmYXVsdD1GYWxzZSwKLSAgICAgICAgICAgICAgICAgICAgICBoZWxwPSdSZXF1ZXN0cyBUTFMg
Y2xpZW50IGF1dGggb24gZXZlcnkgY29ubmVjdGlvbi4nKQotICAgIHBhcnNlci5hZGRfb3B0aW9u
KCctLXRscy1jbGllbnQtY2VydC1vcHRpb25hbCcsCi0gICAgICAgICAgICAgICAgICAgICAgZGVz
dD0ndGxzX2NsaWVudF9jZXJ0X29wdGlvbmFsJywKLSAgICAgICAgICAgICAgICAgICAgICBhY3Rp
b249J3N0b3JlX3RydWUnLCBkZWZhdWx0PUZhbHNlLAotICAgICAgICAgICAgICAgICAgICAgIGhl
bHA9KCdNYWtlcyBjbGllbnQgY2VydGlmaWNhdGUgb3B0aW9uYWwgZXZlbiB0aG91Z2ggJwotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICdUTFMgY2xpZW50IGF1dGggaXMgZW5hYmxlZC4nKSkK
LSAgICBwYXJzZXIuYWRkX29wdGlvbignLS10bHMtY2xpZW50LWNhJywgZGVzdD0ndGxzX2NsaWVu
dF9jYScsIGRlZmF1bHQ9JycsCi0gICAgICAgICAgICAgICAgICAgICAgaGVscD0oJ1NwZWNpZmll
cyBhIHBlbSBmaWxlIHdoaWNoIGNvbnRhaW5zIGEgc2V0IG9mICcKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAnY29uY2F0ZW5hdGVkIENBIGNlcnRpZmljYXRlcyB3aGljaCBhcmUgdXNlZCB0
byAnCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3ZhbGlkYXRlIGNlcnRpZmljYXRlcyBw
YXNzZWQgZnJvbSBjbGllbnRzJykpCi0gICAgcGFyc2VyLmFkZF9vcHRpb24oJy0tYmFzaWMtYXV0
aCcsIGRlc3Q9J3VzZV9iYXNpY19hdXRoJywKLSAgICAgICAgICAgICAgICAgICAgICBhY3Rpb249
J3N0b3JlX3RydWUnLCBkZWZhdWx0PUZhbHNlLAotICAgICAgICAgICAgICAgICAgICAgIGhlbHA9
J1JlcXVpcmVzIEJhc2ljIGF1dGhlbnRpY2F0aW9uLicpCi0gICAgcGFyc2VyLmFkZF9vcHRpb24o
Jy0tYmFzaWMtYXV0aC1jcmVkZW50aWFsJywKLSAgICAgICAgICAgICAgICAgICAgICBkZXN0PSdi
YXNpY19hdXRoX2NyZWRlbnRpYWwnLCBkZWZhdWx0PSd0ZXN0OnRlc3QnLAotICAgICAgICAgICAg
ICAgICAgICAgIGhlbHA9J1NwZWNpZmllcyB0aGUgY3JlZGVudGlhbCBvZiBiYXNpYyBhdXRoZW50
aWNhdGlvbiAnCi0gICAgICAgICAgICAgICAgICAgICAgJ2J5IHVzZXJuYW1lOnBhc3N3b3JkIHBh
aXIgKGUuZy4gdGVzdDp0ZXN0KS4nKQotICAgIHBhcnNlci5hZGRfb3B0aW9uKCctbCcsICctLWxv
Zy1maWxlJywgJy0tbG9nX2ZpbGUnLCBkZXN0PSdsb2dfZmlsZScsCi0gICAgICAgICAgICAgICAg
ICAgICAgZGVmYXVsdD0nJywgaGVscD0nTG9nIGZpbGUuJykKLSAgICAjIEN1c3RvbSBsb2cgbGV2
ZWw6Ci0gICAgIyAtIEZJTkU6IFByaW50cyBzdGF0dXMgb2YgZWFjaCBmcmFtZSBwcm9jZXNzaW5n
IHN0ZXAKLSAgICBwYXJzZXIuYWRkX29wdGlvbignLS1sb2ctbGV2ZWwnLCAnLS1sb2dfbGV2ZWwn
LCB0eXBlPSdjaG9pY2UnLAotICAgICAgICAgICAgICAgICAgICAgIGRlc3Q9J2xvZ19sZXZlbCcs
IGRlZmF1bHQ9J3dhcm4nLAotICAgICAgICAgICAgICAgICAgICAgIGNob2ljZXM9WydmaW5lJywK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZGVidWcnLCAnaW5mbycsICd3YXJuaW5n
JywgJ3dhcm4nLCAnZXJyb3InLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdjcml0
aWNhbCddLAotICAgICAgICAgICAgICAgICAgICAgIGhlbHA9J0xvZyBsZXZlbC4nKQotICAgIHBh
cnNlci5hZGRfb3B0aW9uKCctLWRlZmxhdGUtbG9nLWxldmVsJywgJy0tZGVmbGF0ZV9sb2dfbGV2
ZWwnLAotICAgICAgICAgICAgICAgICAgICAgIHR5cGU9J2Nob2ljZScsCi0gICAgICAgICAgICAg
ICAgICAgICAgZGVzdD0nZGVmbGF0ZV9sb2dfbGV2ZWwnLCBkZWZhdWx0PSd3YXJuJywKLSAgICAg
ICAgICAgICAgICAgICAgICBjaG9pY2VzPVsnZGVidWcnLCAnaW5mbycsICd3YXJuaW5nJywgJ3dh
cm4nLCAnZXJyb3InLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdjcml0aWNhbCdd
LAotICAgICAgICAgICAgICAgICAgICAgIGhlbHA9J0xvZyBsZXZlbCBmb3IgX0RlZmxhdGVyIGFu
ZCBfSW5mbGF0ZXIuJykKLSAgICBwYXJzZXIuYWRkX29wdGlvbignLS10aHJlYWQtbW9uaXRvci1p
bnRlcnZhbC1pbi1zZWMnLAotICAgICAgICAgICAgICAgICAgICAgICctLXRocmVhZF9tb25pdG9y
X2ludGVydmFsX2luX3NlYycsCi0gICAgICAgICAgICAgICAgICAgICAgZGVzdD0ndGhyZWFkX21v
bml0b3JfaW50ZXJ2YWxfaW5fc2VjJywKLSAgICAgICAgICAgICAgICAgICAgICB0eXBlPSdpbnQn
LCBkZWZhdWx0PS0xLAotICAgICAgICAgICAgICAgICAgICAgIGhlbHA9KCdJZiBwb3NpdGl2ZSBp
bnRlZ2VyIGlzIHNwZWNpZmllZCwgcnVuIGEgdGhyZWFkICcKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAnbW9uaXRvciB0byBzaG93IHRoZSBzdGF0dXMgb2Ygc2VydmVyIHRocmVhZHMgJwot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICdwZXJpb2RpY2FsbHkgaW4gdGhlIHNwZWNpZmll
ZCBpbnRldmFsIGluICcKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAnc2Vjb25kLiBJZiBu
b24tcG9zaXRpdmUgaW50ZWdlciBpcyBzcGVjaWZpZWQsICcKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAnZGlzYWJsZSB0aGUgdGhyZWFkIG1vbml0b3IuJykpCi0gICAgcGFyc2VyLmFkZF9v
cHRpb24oJy0tbG9nLW1heCcsICctLWxvZ19tYXgnLCBkZXN0PSdsb2dfbWF4JywgdHlwZT0naW50
JywKLSAgICAgICAgICAgICAgICAgICAgICBkZWZhdWx0PV9ERUZBVUxUX0xPR19NQVhfQllURVMs
Ci0gICAgICAgICAgICAgICAgICAgICAgaGVscD0nTG9nIG1heGltdW0gYnl0ZXMnKQotICAgIHBh
cnNlci5hZGRfb3B0aW9uKCctLWxvZy1jb3VudCcsICctLWxvZ19jb3VudCcsIGRlc3Q9J2xvZ19j
b3VudCcsCi0gICAgICAgICAgICAgICAgICAgICAgdHlwZT0naW50JywgZGVmYXVsdD1fREVGQVVM
VF9MT0dfQkFDS1VQX0NPVU5ULAotICAgICAgICAgICAgICAgICAgICAgIGhlbHA9J0xvZyBiYWNr
dXAgY291bnQnKQotICAgIHBhcnNlci5hZGRfb3B0aW9uKCctLWFsbG93LWRyYWZ0NzUnLCBkZXN0
PSdhbGxvd19kcmFmdDc1JywKLSAgICAgICAgICAgICAgICAgICAgICBhY3Rpb249J3N0b3JlX3Ry
dWUnLCBkZWZhdWx0PUZhbHNlLAotICAgICAgICAgICAgICAgICAgICAgIGhlbHA9J09ic29sZXRl
IG9wdGlvbi4gSWdub3JlZC4nKQotICAgIHBhcnNlci5hZGRfb3B0aW9uKCctLXN0cmljdCcsIGRl
c3Q9J3N0cmljdCcsIGFjdGlvbj0nc3RvcmVfdHJ1ZScsCi0gICAgICAgICAgICAgICAgICAgICAg
ZGVmYXVsdD1GYWxzZSwgaGVscD0nT2Jzb2xldGUgb3B0aW9uLiBJZ25vcmVkLicpCi0gICAgcGFy
c2VyLmFkZF9vcHRpb24oJy1xJywgJy0tcXVldWUnLCBkZXN0PSdyZXF1ZXN0X3F1ZXVlX3NpemUn
LCB0eXBlPSdpbnQnLAotICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ9X0RFRkFVTFRfUkVR
VUVTVF9RVUVVRV9TSVpFLAotICAgICAgICAgICAgICAgICAgICAgIGhlbHA9J3JlcXVlc3QgcXVl
dWUgc2l6ZScpCi0KLSAgICByZXR1cm4gcGFyc2VyCi0KLQotY2xhc3MgVGhyZWFkTW9uaXRvcih0
aHJlYWRpbmcuVGhyZWFkKToKLSAgICBkYWVtb24gPSBUcnVlCi0KLSAgICBkZWYgX19pbml0X18o
c2VsZiwgaW50ZXJ2YWxfaW5fc2VjKToKLSAgICAgICAgdGhyZWFkaW5nLlRocmVhZC5fX2luaXRf
XyhzZWxmLCBuYW1lPSdUaHJlYWRNb25pdG9yJykKLQotICAgICAgICBzZWxmLl9sb2dnZXIgPSB1
dGlsLmdldF9jbGFzc19sb2dnZXIoc2VsZikKLQotICAgICAgICBzZWxmLl9pbnRlcnZhbF9pbl9z
ZWMgPSBpbnRlcnZhbF9pbl9zZWMKLQotICAgIGRlZiBydW4oc2VsZik6Ci0gICAgICAgIHdoaWxl
IFRydWU6Ci0gICAgICAgICAgICB0aHJlYWRfbmFtZV9saXN0ID0gW10KLSAgICAgICAgICAgIGZv
ciB0aHJlYWQgaW4gdGhyZWFkaW5nLmVudW1lcmF0ZSgpOgotICAgICAgICAgICAgICAgIHRocmVh
ZF9uYW1lX2xpc3QuYXBwZW5kKHRocmVhZC5uYW1lKQotICAgICAgICAgICAgc2VsZi5fbG9nZ2Vy
LmluZm8oCi0gICAgICAgICAgICAgICAgIiVkIGFjdGl2ZSB0aHJlYWRzOiAlcyIsCi0gICAgICAg
ICAgICAgICAgdGhyZWFkaW5nLmFjdGl2ZV9jb3VudCgpLAotICAgICAgICAgICAgICAgICcsICcu
am9pbih0aHJlYWRfbmFtZV9saXN0KSkKLSAgICAgICAgICAgIHRpbWUuc2xlZXAoc2VsZi5faW50
ZXJ2YWxfaW5fc2VjKQotCi0KLWRlZiBfcGFyc2VfYXJnc19hbmRfY29uZmlnKGFyZ3MpOgotICAg
IHBhcnNlciA9IF9idWlsZF9vcHRpb25fcGFyc2VyKCkKLQotICAgICMgRmlyc3QsIHBhcnNlIG9w
dGlvbnMgd2l0aG91dCBjb25maWd1cmF0aW9uIGZpbGUuCi0gICAgdGVtcG9yYXJ5X29wdGlvbnMs
IHRlbXBvcmFyeV9hcmdzID0gcGFyc2VyLnBhcnNlX2FyZ3MoYXJncz1hcmdzKQotICAgIGlmIHRl
bXBvcmFyeV9hcmdzOgotICAgICAgICBsb2dnaW5nLmNyaXRpY2FsKAotICAgICAgICAgICAgJ1Vu
cmVjb2duaXplZCBwb3NpdGlvbmFsIGFyZ3VtZW50czogJXInLCB0ZW1wb3JhcnlfYXJncykKLSAg
ICAgICAgc3lzLmV4aXQoMSkKLQotICAgIGlmIHRlbXBvcmFyeV9vcHRpb25zLmNvbmZpZ19maWxl
OgotICAgICAgICB0cnk6Ci0gICAgICAgICAgICBjb25maWdfZnAgPSBvcGVuKHRlbXBvcmFyeV9v
cHRpb25zLmNvbmZpZ19maWxlLCAncicpCi0gICAgICAgIGV4Y2VwdCBJT0Vycm9yLCBlOgotICAg
ICAgICAgICAgbG9nZ2luZy5jcml0aWNhbCgKLSAgICAgICAgICAgICAgICAnRmFpbGVkIHRvIG9w
ZW4gY29uZmlndXJhdGlvbiBmaWxlICVyOiAlcicsCi0gICAgICAgICAgICAgICAgdGVtcG9yYXJ5
X29wdGlvbnMuY29uZmlnX2ZpbGUsCi0gICAgICAgICAgICAgICAgZSkKLSAgICAgICAgICAgIHN5
cy5leGl0KDEpCi0KLSAgICAgICAgY29uZmlnX3BhcnNlciA9IENvbmZpZ1BhcnNlci5TYWZlQ29u
ZmlnUGFyc2VyKCkKLSAgICAgICAgY29uZmlnX3BhcnNlci5yZWFkZnAoY29uZmlnX2ZwKQotICAg
ICAgICBjb25maWdfZnAuY2xvc2UoKQotCi0gICAgICAgIGFyZ3NfZnJvbV9jb25maWcgPSBbXQot
ICAgICAgICBmb3IgbmFtZSwgdmFsdWUgaW4gY29uZmlnX3BhcnNlci5pdGVtcygncHl3ZWJzb2Nr
ZXQnKToKLSAgICAgICAgICAgIGFyZ3NfZnJvbV9jb25maWcuYXBwZW5kKCctLScgKyBuYW1lKQot
ICAgICAgICAgICAgYXJnc19mcm9tX2NvbmZpZy5hcHBlbmQodmFsdWUpCi0gICAgICAgIGlmIGFy
Z3MgaXMgTm9uZToKLSAgICAgICAgICAgIGFyZ3MgPSBhcmdzX2Zyb21fY29uZmlnCi0gICAgICAg
IGVsc2U6Ci0gICAgICAgICAgICBhcmdzID0gYXJnc19mcm9tX2NvbmZpZyArIGFyZ3MKLSAgICAg
ICAgcmV0dXJuIHBhcnNlci5wYXJzZV9hcmdzKGFyZ3M9YXJncykKLSAgICBlbHNlOgotICAgICAg
ICByZXR1cm4gdGVtcG9yYXJ5X29wdGlvbnMsIHRlbXBvcmFyeV9hcmdzCi0KLQotZGVmIF9tYWlu
KGFyZ3M9Tm9uZSk6Ci0gICAgIiIiWW91IGNhbiBjYWxsIHRoaXMgZnVuY3Rpb24gZnJvbSB5b3Vy
IG93biBwcm9ncmFtLCBidXQgcGxlYXNlIG5vdGUgdGhhdAotICAgIHRoaXMgZnVuY3Rpb24gaGFz
IHNvbWUgc2lkZS1lZmZlY3RzIHRoYXQgbWlnaHQgYWZmZWN0IHlvdXIgcHJvZ3JhbS4gRm9yCi0g
ICAgZXhhbXBsZSwgdXRpbC53cmFwX3BvcGVuM19mb3Jfd2luIHVzZSBpbiB0aGlzIG1ldGhvZCBy
ZXBsYWNlcyBpbXBsZW1lbnRhdGlvbgotICAgIG9mIG9zLnBvcGVuMy4KLSAgICAiIiIKLQotICAg
IG9wdGlvbnMsIGFyZ3MgPSBfcGFyc2VfYXJnc19hbmRfY29uZmlnKGFyZ3M9YXJncykKLQotICAg
IG9zLmNoZGlyKG9wdGlvbnMuZG9jdW1lbnRfcm9vdCkKLQotICAgIF9jb25maWd1cmVfbG9nZ2lu
ZyhvcHRpb25zKQotCi0gICAgaWYgb3B0aW9ucy5hbGxvd19kcmFmdDc1OgotICAgICAgICBsb2dn
aW5nLndhcm5pbmcoJy0tYWxsb3dfZHJhZnQ3NSBvcHRpb24gaXMgb2Jzb2xldGUuJykKLQotICAg
IGlmIG9wdGlvbnMuc3RyaWN0OgotICAgICAgICBsb2dnaW5nLndhcm5pbmcoJy0tc3RyaWN0IG9w
dGlvbiBpcyBvYnNvbGV0ZS4nKQotCi0gICAgIyBUT0RPKHR5b3NoaW5vKTogQ2xlYW4gdXAgaW5p
dGlhbGl6YXRpb24gb2YgQ0dJIHJlbGF0ZWQgdmFsdWVzLiBNb3ZlIHNvbWUKLSAgICAjIG9mIGNv
ZGUgaGVyZSB0byBXZWJTb2NrZXRSZXF1ZXN0SGFuZGxlciBjbGFzcyBpZiBpdCdzIGJldHRlci4K
LSAgICBvcHRpb25zLmNnaV9kaXJlY3RvcmllcyA9IFtdCi0gICAgb3B0aW9ucy5pc19leGVjdXRh
YmxlX21ldGhvZCA9IE5vbmUKLSAgICBpZiBvcHRpb25zLmNnaV9wYXRoczoKLSAgICAgICAgb3B0
aW9ucy5jZ2lfZGlyZWN0b3JpZXMgPSBvcHRpb25zLmNnaV9wYXRocy5zcGxpdCgnLCcpCi0gICAg
ICAgIGlmIHN5cy5wbGF0Zm9ybSBpbiAoJ2N5Z3dpbicsICd3aW4zMicpOgotICAgICAgICAgICAg
Y3lnd2luX3BhdGggPSBOb25lCi0gICAgICAgICAgICAjIEZvciBXaW4zMiBQeXRob24sIGl0IGlz
IGV4cGVjdGVkIHRoYXQgQ1lHV0lOX1BBVEgKLSAgICAgICAgICAgICMgaXMgc2V0IHRvIGEgZGly
ZWN0b3J5IG9mIGN5Z3dpbiBiaW5hcmllcy4KLSAgICAgICAgICAgICMgRm9yIGV4YW1wbGUsIHdl
YnNvY2tldF9zZXJ2ZXIucHkgaW4gQ2hyb21pdW0gc2V0cyBDWUdXSU5fUEFUSCB0bwotICAgICAg
ICAgICAgIyBmdWxsIHBhdGggb2YgdGhpcmRfcGFydHkvY3lnd2luL2Jpbi4KLSAgICAgICAgICAg
IGlmICdDWUdXSU5fUEFUSCcgaW4gb3MuZW52aXJvbjoKLSAgICAgICAgICAgICAgICBjeWd3aW5f
cGF0aCA9IG9zLmVudmlyb25bJ0NZR1dJTl9QQVRIJ10KLSAgICAgICAgICAgIHV0aWwud3JhcF9w
b3BlbjNfZm9yX3dpbihjeWd3aW5fcGF0aCkKLQotICAgICAgICAgICAgZGVmIF9fY2hlY2tfc2Ny
aXB0KHNjcmlwdHBhdGgpOgotICAgICAgICAgICAgICAgIHJldHVybiB1dGlsLmdldF9zY3JpcHRf
aW50ZXJwKHNjcmlwdHBhdGgsIGN5Z3dpbl9wYXRoKQotCi0gICAgICAgICAgICBvcHRpb25zLmlz
X2V4ZWN1dGFibGVfbWV0aG9kID0gX19jaGVja19zY3JpcHQKLQotICAgIGlmIG9wdGlvbnMudXNl
X3RsczoKLSAgICAgICAgaWYgb3B0aW9ucy50bHNfbW9kdWxlIGlzIE5vbmU6Ci0gICAgICAgICAg
ICBpZiBfaW1wb3J0X3NzbCgpOgotICAgICAgICAgICAgICAgIG9wdGlvbnMudGxzX21vZHVsZSA9
IF9UTFNfQllfU1RBTkRBUkRfTU9EVUxFCi0gICAgICAgICAgICAgICAgbG9nZ2luZy5kZWJ1Zygn
VXNpbmcgc3NsIG1vZHVsZScpCi0gICAgICAgICAgICBlbGlmIF9pbXBvcnRfcHlvcGVuc3NsKCk6
Ci0gICAgICAgICAgICAgICAgb3B0aW9ucy50bHNfbW9kdWxlID0gX1RMU19CWV9QWU9QRU5TU0wK
LSAgICAgICAgICAgICAgICBsb2dnaW5nLmRlYnVnKCdVc2luZyBweU9wZW5TU0wgbW9kdWxlJykK
LSAgICAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAgICAgbG9nZ2luZy5jcml0aWNhbCgKLSAg
ICAgICAgICAgICAgICAgICAgICAgICdUTFMgc3VwcG9ydCByZXF1aXJlcyBzc2wgb3IgcHlPcGVu
U1NMIG1vZHVsZS4nKQotICAgICAgICAgICAgICAgIHN5cy5leGl0KDEpCi0gICAgICAgIGVsaWYg
b3B0aW9ucy50bHNfbW9kdWxlID09IF9UTFNfQllfU1RBTkRBUkRfTU9EVUxFOgotICAgICAgICAg
ICAgaWYgbm90IF9pbXBvcnRfc3NsKCk6Ci0gICAgICAgICAgICAgICAgbG9nZ2luZy5jcml0aWNh
bCgnc3NsIG1vZHVsZSBpcyBub3QgYXZhaWxhYmxlJykKLSAgICAgICAgICAgICAgICBzeXMuZXhp
dCgxKQotICAgICAgICBlbGlmIG9wdGlvbnMudGxzX21vZHVsZSA9PSBfVExTX0JZX1BZT1BFTlNT
TDoKLSAgICAgICAgICAgIGlmIG5vdCBfaW1wb3J0X3B5b3BlbnNzbCgpOgotICAgICAgICAgICAg
ICAgIGxvZ2dpbmcuY3JpdGljYWwoJ3B5T3BlblNTTCBtb2R1bGUgaXMgbm90IGF2YWlsYWJsZScp
Ci0gICAgICAgICAgICAgICAgc3lzLmV4aXQoMSkKLSAgICAgICAgZWxzZToKLSAgICAgICAgICAg
IGxvZ2dpbmcuY3JpdGljYWwoJ0ludmFsaWQgLS10bHMtbW9kdWxlIG9wdGlvbjogJXInLAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBvcHRpb25zLnRsc19tb2R1bGUpCi0gICAgICAgICAg
ICBzeXMuZXhpdCgxKQotCi0gICAgICAgIGlmIG5vdCBvcHRpb25zLnByaXZhdGVfa2V5IG9yIG5v
dCBvcHRpb25zLmNlcnRpZmljYXRlOgotICAgICAgICAgICAgbG9nZ2luZy5jcml0aWNhbCgKLSAg
ICAgICAgICAgICAgICAgICAgJ1RvIHVzZSBUTFMsIHNwZWNpZnkgcHJpdmF0ZV9rZXkgYW5kIGNl
cnRpZmljYXRlLicpCi0gICAgICAgICAgICBzeXMuZXhpdCgxKQotCi0gICAgICAgIGlmIChvcHRp
b25zLnRsc19jbGllbnRfY2VydF9vcHRpb25hbCBhbmQKLSAgICAgICAgICAgIG5vdCBvcHRpb25z
LnRsc19jbGllbnRfYXV0aCk6Ci0gICAgICAgICAgICBsb2dnaW5nLmNyaXRpY2FsKCdDbGllbnQg
YXV0aGVudGljYXRpb24gbXVzdCBiZSBlbmFibGVkIHRvICcKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgJ3NwZWNpZnkgdGxzX2NsaWVudF9jZXJ0X29wdGlvbmFsJykKLSAgICAgICAgICAg
IHN5cy5leGl0KDEpCi0gICAgZWxzZToKLSAgICAgICAgaWYgb3B0aW9ucy50bHNfbW9kdWxlIGlz
IG5vdCBOb25lOgotICAgICAgICAgICAgbG9nZ2luZy5jcml0aWNhbCgnVXNlIC0tdGxzLW1vZHVs
ZSBvcHRpb24gb25seSB0b2dldGhlciB3aXRoICcKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgJy0tdXNlLXRscyBvcHRpb24uJykKLSAgICAgICAgICAgIHN5cy5leGl0KDEpCi0KLSAgICAg
ICAgaWYgb3B0aW9ucy50bHNfY2xpZW50X2F1dGg6Ci0gICAgICAgICAgICBsb2dnaW5nLmNyaXRp
Y2FsKCdUTFMgbXVzdCBiZSBlbmFibGVkIGZvciBjbGllbnQgYXV0aGVudGljYXRpb24uJykKLSAg
ICAgICAgICAgIHN5cy5leGl0KDEpCi0KLSAgICAgICAgaWYgb3B0aW9ucy50bHNfY2xpZW50X2Nl
cnRfb3B0aW9uYWw6Ci0gICAgICAgICAgICBsb2dnaW5nLmNyaXRpY2FsKCdUTFMgbXVzdCBiZSBl
bmFibGVkIGZvciBjbGllbnQgYXV0aGVudGljYXRpb24uJykKLSAgICAgICAgICAgIHN5cy5leGl0
KDEpCi0KLSAgICBpZiBub3Qgb3B0aW9ucy5zY2FuX2RpcjoKLSAgICAgICAgb3B0aW9ucy5zY2Fu
X2RpciA9IG9wdGlvbnMud2Vic29ja19oYW5kbGVycwotCi0gICAgaWYgb3B0aW9ucy51c2VfYmFz
aWNfYXV0aDoKLSAgICAgICAgb3B0aW9ucy5iYXNpY19hdXRoX2NyZWRlbnRpYWwgPSAnQmFzaWMg
JyArIGJhc2U2NC5iNjRlbmNvZGUoCi0gICAgICAgICAgICBvcHRpb25zLmJhc2ljX2F1dGhfY3Jl
ZGVudGlhbCkKLQotICAgIHRyeToKLSAgICAgICAgaWYgb3B0aW9ucy50aHJlYWRfbW9uaXRvcl9p
bnRlcnZhbF9pbl9zZWMgPiAwOgotICAgICAgICAgICAgIyBSdW4gYSB0aHJlYWQgbW9uaXRvciB0
byBzaG93IHRoZSBzdGF0dXMgb2Ygc2VydmVyIHRocmVhZHMgZm9yCi0gICAgICAgICAgICAjIGRl
YnVnZ2luZy4KLSAgICAgICAgICAgIFRocmVhZE1vbml0b3Iob3B0aW9ucy50aHJlYWRfbW9uaXRv
cl9pbnRlcnZhbF9pbl9zZWMpLnN0YXJ0KCkKLQotICAgICAgICBzZXJ2ZXIgPSBXZWJTb2NrZXRT
ZXJ2ZXIob3B0aW9ucykKLSAgICAgICAgc2VydmVyLnNlcnZlX2ZvcmV2ZXIoKQotICAgIGV4Y2Vw
dCBFeGNlcHRpb24sIGU6Ci0gICAgICAgIGxvZ2dpbmcuY3JpdGljYWwoJ21vZF9weXdlYnNvY2tl
dDogJXMnICUgZSkKLSAgICAgICAgbG9nZ2luZy5jcml0aWNhbCgnbW9kX3B5d2Vic29ja2V0OiAl
cycgJSB1dGlsLmdldF9zdGFja190cmFjZSgpKQotICAgICAgICBzeXMuZXhpdCgxKQotCi0KLWlm
IF9fbmFtZV9fID09ICdfX21haW5fXyc6Ci0gICAgX21haW4oc3lzLmFyZ3ZbMTpdKQotCi0KLSMg
dmk6c3RzPTQgc3c9NCBldApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9zcmMvbW9kX3B5d2Vic29ja2V0L3N0
cmVhbS5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvcHl3ZWJzb2NrZXQvc3JjL21vZF9weXdlYnNvY2tldC9zdHJlYW0ucHkKZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IGVkYzUzMzI3OTc0OTdiNTgwZTNiN2VmZjJmODhkMTg4ZDcwNDFm
MTMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9z
cmMvbW9kX3B5d2Vic29ja2V0L3N0cmVhbS5weQorKysgL2Rldi9udWxsCkBAIC0xLDU3ICswLDAg
QEAKLSMgQ29weXJpZ2h0IDIwMTEsIEdvb2dsZSBJbmMuCi0jIEFsbCByaWdodHMgcmVzZXJ2ZWQu
Ci0jCi0jIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAotIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCi0jIG1ldDoKLSMKLSMgICAgICogUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKLSMgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgotIyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlCi0jIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKLSMgaW4gdGhlIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQotIyBkaXN0cmlidXRp
b24uCi0jICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1l
cyBvZiBpdHMKLSMgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90
ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KLSMgdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmlj
IHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLSMKLSMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwotIyAiQVMgSVMiIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAot
IyBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IKLSMgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKLSMgT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCi0jIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QK
LSMgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsCi0jIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQotIyBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0jIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRQotIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgotCi0KLSIiIlRoaXMgZmlsZSBleHBvcnRzIHB1YmxpYyBzeW1i
b2xzLgotIiIiCi0KLQotZnJvbSBtb2RfcHl3ZWJzb2NrZXQuX3N0cmVhbV9iYXNlIGltcG9ydCBC
YWRPcGVyYXRpb25FeGNlcHRpb24KLWZyb20gbW9kX3B5d2Vic29ja2V0Ll9zdHJlYW1fYmFzZSBp
bXBvcnQgQ29ubmVjdGlvblRlcm1pbmF0ZWRFeGNlcHRpb24KLWZyb20gbW9kX3B5d2Vic29ja2V0
Ll9zdHJlYW1fYmFzZSBpbXBvcnQgSW52YWxpZEZyYW1lRXhjZXB0aW9uCi1mcm9tIG1vZF9weXdl
YnNvY2tldC5fc3RyZWFtX2Jhc2UgaW1wb3J0IEludmFsaWRVVEY4RXhjZXB0aW9uCi1mcm9tIG1v
ZF9weXdlYnNvY2tldC5fc3RyZWFtX2Jhc2UgaW1wb3J0IFVuc3VwcG9ydGVkRnJhbWVFeGNlcHRp
b24KLWZyb20gbW9kX3B5d2Vic29ja2V0Ll9zdHJlYW1faGl4aWU3NSBpbXBvcnQgU3RyZWFtSGl4
aWU3NQotZnJvbSBtb2RfcHl3ZWJzb2NrZXQuX3N0cmVhbV9oeWJpIGltcG9ydCBGcmFtZQotZnJv
bSBtb2RfcHl3ZWJzb2NrZXQuX3N0cmVhbV9oeWJpIGltcG9ydCBTdHJlYW0KLWZyb20gbW9kX3B5
d2Vic29ja2V0Ll9zdHJlYW1faHliaSBpbXBvcnQgU3RyZWFtT3B0aW9ucwotCi0jIFRoZXNlIG1l
dGhvZHMgYXJlIGludGVuZGVkIHRvIGJlIHVzZWQgYnkgV2ViU29ja2V0IGNsaWVudCBkZXZlbG9w
ZXJzIHRvIGhhdmUKLSMgdGhlaXIgaW1wbGVtZW50YXRpb25zIHJlY2VpdmUgYnJva2VuIGRhdGEg
aW4gdGVzdHMuCi1mcm9tIG1vZF9weXdlYnNvY2tldC5fc3RyZWFtX2h5YmkgaW1wb3J0IGNyZWF0
ZV9jbG9zZV9mcmFtZQotZnJvbSBtb2RfcHl3ZWJzb2NrZXQuX3N0cmVhbV9oeWJpIGltcG9ydCBj
cmVhdGVfaGVhZGVyCi1mcm9tIG1vZF9weXdlYnNvY2tldC5fc3RyZWFtX2h5YmkgaW1wb3J0IGNy
ZWF0ZV9sZW5ndGhfaGVhZGVyCi1mcm9tIG1vZF9weXdlYnNvY2tldC5fc3RyZWFtX2h5YmkgaW1w
b3J0IGNyZWF0ZV9waW5nX2ZyYW1lCi1mcm9tIG1vZF9weXdlYnNvY2tldC5fc3RyZWFtX2h5Ymkg
aW1wb3J0IGNyZWF0ZV9wb25nX2ZyYW1lCi1mcm9tIG1vZF9weXdlYnNvY2tldC5fc3RyZWFtX2h5
YmkgaW1wb3J0IGNyZWF0ZV9iaW5hcnlfZnJhbWUKLWZyb20gbW9kX3B5d2Vic29ja2V0Ll9zdHJl
YW1faHliaSBpbXBvcnQgY3JlYXRlX3RleHRfZnJhbWUKLWZyb20gbW9kX3B5d2Vic29ja2V0Ll9z
dHJlYW1faHliaSBpbXBvcnQgY3JlYXRlX2Nsb3NpbmdfaGFuZHNoYWtlX2JvZHkKLQotCi0jIHZp
OnN0cz00IHN3PTQgZXQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3JjL21vZF9weXdlYnNvY2tldC91dGls
LnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9w
eXdlYnNvY2tldC9zcmMvbW9kX3B5d2Vic29ja2V0L3V0aWwucHkKZGVsZXRlZCBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IGQyMjRhZTM5NDJkN2ZlMmNmNzdiOTg4NDk1ZWY2ZTI4YTFiZjQ4ZGMuLjAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9zcmMvbW9k
X3B5d2Vic29ja2V0L3V0aWwucHkKKysrIC9kZXYvbnVsbApAQCAtMSw0MTYgKzAsMCBAQAotIyBD
b3B5cmlnaHQgMjAxMSwgR29vZ2xlIEluYy4KLSMgQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSMKLSMg
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0Ci0jIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKLSMgbWV0OgotIwotIyAgICAgKiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotIyBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCi0jICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUKLSMgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgotIyBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCi0jIGRpc3RyaWJ1dGlvbi4KLSMg
ICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0
cwotIyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1
Y3RzIGRlcml2ZWQgZnJvbQotIyB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Ig
d3JpdHRlbiBwZXJtaXNzaW9uLgotIwotIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRI
RSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCi0jICJBUyBJUyIgQU5EIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCi0jIExJTUlU
RUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUgotIyBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgVEhFIENPUFlSSUdIVAotIyBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKLSMgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAotIyBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwKLSMgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCi0jIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSMgKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0j
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCi0KLQotIiIiV2ViU29ja2V0IHV0aWxpdGllcy4KLSIiIgotCi0KLWltcG9y
dCBhcnJheQotaW1wb3J0IGVycm5vCi0KLSMgSW1wb3J0IGhhc2ggY2xhc3NlcyBmcm9tIGEgbW9k
dWxlIGF2YWlsYWJsZSBhbmQgcmVjb21tZW5kZWQgZm9yIGVhY2ggUHl0aG9uCi0jIHZlcnNpb24g
YW5kIHJlLWV4cG9ydCB0aG9zZSBzeW1ib2wuIFVzZSBzaGEgYW5kIG1kNSBtb2R1bGUgaW4gUHl0
aG9uIDIuNCwgYW5kCi0jIGhhc2hsaWIgbW9kdWxlIGluIFB5dGhvbiAyLjYuCi10cnk6Ci0gICAg
aW1wb3J0IGhhc2hsaWIKLSAgICBtZDVfaGFzaCA9IGhhc2hsaWIubWQ1Ci0gICAgc2hhMV9oYXNo
ID0gaGFzaGxpYi5zaGExCi1leGNlcHQgSW1wb3J0RXJyb3I6Ci0gICAgaW1wb3J0IG1kNQotICAg
IGltcG9ydCBzaGEKLSAgICBtZDVfaGFzaCA9IG1kNS5tZDUKLSAgICBzaGExX2hhc2ggPSBzaGEu
c2hhCi0KLWltcG9ydCBTdHJpbmdJTwotaW1wb3J0IGxvZ2dpbmcKLWltcG9ydCBvcwotaW1wb3J0
IHJlCi1pbXBvcnQgc29ja2V0Ci1pbXBvcnQgdHJhY2ViYWNrCi1pbXBvcnQgemxpYgotCi10cnk6
Ci0gICAgZnJvbSBtb2RfcHl3ZWJzb2NrZXQgaW1wb3J0IGZhc3RfbWFza2luZwotZXhjZXB0IElt
cG9ydEVycm9yOgotICAgIHBhc3MKLQotCi1kZWYgZ2V0X3N0YWNrX3RyYWNlKCk6Ci0gICAgIiIi
R2V0IHRoZSBjdXJyZW50IHN0YWNrIHRyYWNlIGFzIHN0cmluZy4KLQotICAgIFRoaXMgaXMgbmVl
ZGVkIHRvIHN1cHBvcnQgUHl0aG9uIDIuMy4KLSAgICBUT0RPOiBSZW1vdmUgdGhpcyB3aGVuIHdl
IG9ubHkgc3VwcG9ydCBQeXRob24gMi40IGFuZCBhYm92ZS4KLSAgICAgICAgICBVc2UgdHJhY2Vi
YWNrLmZvcm1hdF9leGMgaW5zdGVhZC4KLSAgICAiIiIKLQotICAgIG91dCA9IFN0cmluZ0lPLlN0
cmluZ0lPKCkKLSAgICB0cmFjZWJhY2sucHJpbnRfZXhjKGZpbGU9b3V0KQotICAgIHJldHVybiBv
dXQuZ2V0dmFsdWUoKQotCi0KLWRlZiBwcmVwZW5kX21lc3NhZ2VfdG9fZXhjZXB0aW9uKG1lc3Nh
Z2UsIGV4Yyk6Ci0gICAgIiIiUHJlcGVuZCBtZXNzYWdlIHRvIHRoZSBleGNlcHRpb24uIiIiCi0K
LSAgICBleGMuYXJncyA9IChtZXNzYWdlICsgc3RyKGV4YyksKQotICAgIHJldHVybgotCi0KLWRl
ZiBfX3RyYW5zbGF0ZV9pbnRlcnAoaW50ZXJwLCBjeWd3aW5fcGF0aCk6Ci0gICAgIiIiVHJhbnNs
YXRlIGludGVycCBwcm9ncmFtIHBhdGggZm9yIFdpbjMyIHB5dGhvbiB0byBydW4gY3lnd2luIHBy
b2dyYW0KLSAgICAoZS5nLiBwZXJsKS4gIE5vdGUgdGhhdCBpdCBkb2Vzbid0IHN1cHBvcnQgcGF0
aCB0aGF0IGNvbnRhaW5zIHNwYWNlLAotICAgIHdoaWNoIGlzIHR5cGljYWxseSB0cnVlIGZvciBV
bml4LCB3aGVyZSAjIS1zY3JpcHQgaXMgd3JpdHRlbi4KLSAgICBGb3IgV2luMzIgcHl0aG9uLCBj
eWd3aW5fcGF0aCBpcyBhIGRpcmVjdG9yeSBvZiBjeWd3aW4gYmluYXJpZXMuCi0KLSAgICBBcmdz
OgotICAgICAgaW50ZXJwOiBpbnRlcnAgY29tbWFuZCBsaW5lCi0gICAgICBjeWd3aW5fcGF0aDog
ZGlyZWN0b3J5IG5hbWUgb2YgY3lnd2luIGJpbmFyeSwgb3IgTm9uZQotICAgIFJldHVybnM6Ci0g
ICAgICB0cmFuc2xhdGVkIGludGVycCBjb21tYW5kIGxpbmUuCi0gICAgIiIiCi0gICAgaWYgbm90
IGN5Z3dpbl9wYXRoOgotICAgICAgICByZXR1cm4gaW50ZXJwCi0gICAgbSA9IHJlLm1hdGNoKCde
W14gXSovKFteIF0rKSggLiopPycsIGludGVycCkKLSAgICBpZiBtOgotICAgICAgICBjbWQgPSBv
cy5wYXRoLmpvaW4oY3lnd2luX3BhdGgsIG0uZ3JvdXAoMSkpCi0gICAgICAgIHJldHVybiBjbWQg
KyBtLmdyb3VwKDIpCi0gICAgcmV0dXJuIGludGVycAotCi0KLWRlZiBnZXRfc2NyaXB0X2ludGVy
cChzY3JpcHRfcGF0aCwgY3lnd2luX3BhdGg9Tm9uZSk6Ci0gICAgIiIiR2V0cyAjIS1pbnRlcnBy
ZXRlciBjb21tYW5kIGxpbmUgZnJvbSB0aGUgc2NyaXB0LgotCi0gICAgSXQgYWxzbyBmaXhlcyBj
b21tYW5kIHBhdGguICBXaGVuIEN5Z3dpbiBQeXRob24gaXMgdXNlZCwgZS5nLiBpbiBXZWJLaXQs
Ci0gICAgaXQgY291bGQgcnVuICIvdXNyL2Jpbi9wZXJsIC13VCBoZWxsby5wbCIuCi0gICAgV2hl
biBXaW4zMiBQeXRob24gaXMgdXNlZCwgZS5nLiBpbiBDaHJvbWl1bSwgaXQgY291bGRuJ3QuICBT
bywgZml4Ci0gICAgIi91c3IvYmluL3BlcmwiIHRvICI8Y3lnd2luX3BhdGg+XHBlcmwuZXhlIi4K
LQotICAgIEFyZ3M6Ci0gICAgICBzY3JpcHRfcGF0aDogcGF0aG5hbWUgb2YgdGhlIHNjcmlwdAot
ICAgICAgY3lnd2luX3BhdGg6IGRpcmVjdG9yeSBuYW1lIG9mIGN5Z3dpbiBiaW5hcnksIG9yIE5v
bmUKLSAgICBSZXR1cm5zOgotICAgICAgIyEtaW50ZXJwcmV0ZXIgY29tbWFuZCBsaW5lLCBvciBO
b25lIGlmIGl0IGlzIG5vdCAjIS1zY3JpcHQuCi0gICAgIiIiCi0gICAgZnAgPSBvcGVuKHNjcmlw
dF9wYXRoKQotICAgIGxpbmUgPSBmcC5yZWFkbGluZSgpCi0gICAgZnAuY2xvc2UoKQotICAgIG0g
PSByZS5tYXRjaCgnXiMhKC4qKScsIGxpbmUpCi0gICAgaWYgbToKLSAgICAgICAgcmV0dXJuIF9f
dHJhbnNsYXRlX2ludGVycChtLmdyb3VwKDEpLCBjeWd3aW5fcGF0aCkKLSAgICByZXR1cm4gTm9u
ZQotCi0KLWRlZiB3cmFwX3BvcGVuM19mb3Jfd2luKGN5Z3dpbl9wYXRoKToKLSAgICAiIiJXcmFw
IHBvcGVuMyB0byBzdXBwb3J0ICMhLXNjcmlwdCBvbiBXaW5kb3dzLgotCi0gICAgQXJnczoKLSAg
ICAgIGN5Z3dpbl9wYXRoOiAgcGF0aCBmb3IgY3lnd2luIGJpbmFyeSBpZiBjb21tYW5kIHBhdGgg
aXMgbmVlZGVkIHRvIGJlCi0gICAgICAgICAgICAgICAgICAgIHRyYW5zbGF0ZWQuICBOb25lIGlm
IG5vIHRyYW5zbGF0aW9uIHJlcXVpcmVkLgotICAgICIiIgotCi0gICAgX19vcmlnX3BvcGVuMyA9
IG9zLnBvcGVuMwotCi0gICAgZGVmIF9fd3JhcF9wb3BlbjMoY21kLCBtb2RlPSd0JywgYnVmc2l6
ZT0tMSk6Ci0gICAgICAgIGNtZGxpbmUgPSBjbWQuc3BsaXQoJyAnKQotICAgICAgICBpbnRlcnAg
PSBnZXRfc2NyaXB0X2ludGVycChjbWRsaW5lWzBdLCBjeWd3aW5fcGF0aCkKLSAgICAgICAgaWYg
aW50ZXJwOgotICAgICAgICAgICAgY21kID0gaW50ZXJwICsgJyAnICsgY21kCi0gICAgICAgIHJl
dHVybiBfX29yaWdfcG9wZW4zKGNtZCwgbW9kZSwgYnVmc2l6ZSkKLQotICAgIG9zLnBvcGVuMyA9
IF9fd3JhcF9wb3BlbjMKLQotCi1kZWYgaGV4aWZ5KHMpOgotICAgIHJldHVybiAnICcuam9pbiht
YXAobGFtYmRhIHg6ICclMDJ4JyAlIG9yZCh4KSwgcykpCi0KLQotZGVmIGdldF9jbGFzc19sb2dn
ZXIobyk6Ci0gICAgcmV0dXJuIGxvZ2dpbmcuZ2V0TG9nZ2VyKAotICAgICAgICAnJXMuJXMnICUg
KG8uX19jbGFzc19fLl9fbW9kdWxlX18sIG8uX19jbGFzc19fLl9fbmFtZV9fKSkKLQotCi1jbGFz
cyBOb29wTWFza2VyKG9iamVjdCk6Ci0gICAgIiIiQSBtYXNraW5nIG9iamVjdCB0aGF0IGhhcyB0
aGUgc2FtZSBpbnRlcmZhY2UgYXMgUmVwZWF0ZWRYb3JNYXNrZXIgYnV0Ci0gICAganVzdCByZXR1
cm5zIHRoZSBzdHJpbmcgcGFzc2VkIGluIHdpdGhvdXQgbWFraW5nIGFueSBjaGFuZ2UuCi0gICAg
IiIiCi0KLSAgICBkZWYgX19pbml0X18oc2VsZik6Ci0gICAgICAgIHBhc3MKLQotICAgIGRlZiBt
YXNrKHNlbGYsIHMpOgotICAgICAgICByZXR1cm4gcwotCi0KLWNsYXNzIFJlcGVhdGVkWG9yTWFz
a2VyKG9iamVjdCk6Ci0gICAgIiIiQSBtYXNraW5nIG9iamVjdCB0aGF0IGFwcGxpZXMgWE9SIG9u
IHRoZSBzdHJpbmcgZ2l2ZW4gdG8gbWFzayBtZXRob2QKLSAgICB3aXRoIHRoZSBtYXNraW5nIGJ5
dGVzIGdpdmVuIHRvIHRoZSBjb25zdHJ1Y3RvciByZXBlYXRlZGx5LiBUaGlzIG9iamVjdAotICAg
IHJlbWVtYmVycyB0aGUgcG9zaXRpb24gaW4gdGhlIG1hc2tpbmcgYnl0ZXMgdGhlIGxhc3QgbWFz
ayBtZXRob2QgY2FsbAotICAgIGVuZGVkIGFuZCByZXN1bWVzIGZyb20gdGhhdCBwb2ludCBvbiB0
aGUgbmV4dCBtYXNrIG1ldGhvZCBjYWxsLgotICAgICIiIgotCi0gICAgZGVmIF9faW5pdF9fKHNl
bGYsIG1hc2tpbmdfa2V5KToKLSAgICAgICAgc2VsZi5fbWFza2luZ19rZXkgPSBtYXNraW5nX2tl
eQotICAgICAgICBzZWxmLl9tYXNraW5nX2tleV9pbmRleCA9IDAKLQotICAgIGRlZiBfbWFza191
c2luZ19zd2lnKHNlbGYsIHMpOgotICAgICAgICBtYXNrZWRfZGF0YSA9IGZhc3RfbWFza2luZy5t
YXNrKAotICAgICAgICAgICAgICAgIHMsIHNlbGYuX21hc2tpbmdfa2V5LCBzZWxmLl9tYXNraW5n
X2tleV9pbmRleCkKLSAgICAgICAgc2VsZi5fbWFza2luZ19rZXlfaW5kZXggPSAoCi0gICAgICAg
ICAgICAgICAgKHNlbGYuX21hc2tpbmdfa2V5X2luZGV4ICsgbGVuKHMpKSAlIGxlbihzZWxmLl9t
YXNraW5nX2tleSkpCi0gICAgICAgIHJldHVybiBtYXNrZWRfZGF0YQotCi0gICAgZGVmIF9tYXNr
X3VzaW5nX2FycmF5KHNlbGYsIHMpOgotICAgICAgICByZXN1bHQgPSBhcnJheS5hcnJheSgnQicp
Ci0gICAgICAgIHJlc3VsdC5mcm9tc3RyaW5nKHMpCi0KLSAgICAgICAgIyBVc2UgdGVtcG9yYXJ5
IGxvY2FsIHZhcmlhYmxlcyB0byBlbGltaW5hdGUgdGhlIGNvc3QgdG8gYWNjZXNzCi0gICAgICAg
ICMgYXR0cmlidXRlcwotICAgICAgICBtYXNraW5nX2tleSA9IG1hcChvcmQsIHNlbGYuX21hc2tp
bmdfa2V5KQotICAgICAgICBtYXNraW5nX2tleV9zaXplID0gbGVuKG1hc2tpbmdfa2V5KQotICAg
ICAgICBtYXNraW5nX2tleV9pbmRleCA9IHNlbGYuX21hc2tpbmdfa2V5X2luZGV4Ci0KLSAgICAg
ICAgZm9yIGkgaW4geHJhbmdlKGxlbihyZXN1bHQpKToKLSAgICAgICAgICAgIHJlc3VsdFtpXSBe
PSBtYXNraW5nX2tleVttYXNraW5nX2tleV9pbmRleF0KLSAgICAgICAgICAgIG1hc2tpbmdfa2V5
X2luZGV4ID0gKG1hc2tpbmdfa2V5X2luZGV4ICsgMSkgJSBtYXNraW5nX2tleV9zaXplCi0KLSAg
ICAgICAgc2VsZi5fbWFza2luZ19rZXlfaW5kZXggPSBtYXNraW5nX2tleV9pbmRleAotCi0gICAg
ICAgIHJldHVybiByZXN1bHQudG9zdHJpbmcoKQotCi0gICAgaWYgJ2Zhc3RfbWFza2luZycgaW4g
Z2xvYmFscygpOgotICAgICAgICBtYXNrID0gX21hc2tfdXNpbmdfc3dpZwotICAgIGVsc2U6Ci0g
ICAgICAgIG1hc2sgPSBfbWFza191c2luZ19hcnJheQotCi0KLSMgQnkgbWFraW5nIHdiaXRzIG9w
dGlvbiBuZWdhdGl2ZSwgd2UgY2FuIHN1cHByZXNzIENNRi9GTEcgKDIgb2N0ZXQpIGFuZAotIyBB
RExFUjMyICg0IG9jdGV0KSBmaWVsZHMgb2YgemxpYiBzbyB0aGF0IHdlIGNhbiB1c2UgemxpYiBt
b2R1bGUganVzdCBhcwotIyBkZWZsYXRlIGxpYnJhcnkuIERJQ1RJRCB3b24ndCBiZSBhZGRlZCBh
cyBmYXIgYXMgd2UgZG9uJ3Qgc2V0IGRpY3Rpb25hcnkuCi0jIExaNzcgd2luZG93IG9mIDMySyB3
aWxsIGJlIHVzZWQgZm9yIGJvdGggY29tcHJlc3Npb24gYW5kIGRlY29tcHJlc3Npb24uCi0jIEZv
ciBkZWNvbXByZXNzaW9uLCB3ZSBjYW4ganVzdCB1c2UgMzJLIHRvIGNvdmVyIGFueSB3aW5kb3dz
IHNpemUuIEZvcgotIyBjb21wcmVzc2lvbiwgd2UgdXNlIDMySyBzbyByZWNlaXZlcnMgbXVzdCB1
c2UgMzJLLgotIwotIyBDb21wcmVzc2lvbiBsZXZlbCBpcyBaX0RFRkFVTFRfQ09NUFJFU1NJT04u
IFdlIGRvbid0IGhhdmUgdG8gbWF0Y2ggbGV2ZWwKLSMgdG8gZGVjb2RlLgotIwotIyBTZWUgemNv
bmYuaCwgZGVmbGF0ZS5jYywgaW5mbGF0ZS5jYyBvZiB6bGliIGxpYnJhcnksIGFuZCB6bGlibW9k
dWxlLmMgb2YKLSMgUHl0aG9uLiBTZWUgYWxzbyBSRkMxOTUwIChaTElCIDMuMykuCi0KLQotY2xh
c3MgX0RlZmxhdGVyKG9iamVjdCk6Ci0KLSAgICBkZWYgX19pbml0X18oc2VsZiwgd2luZG93X2Jp
dHMpOgotICAgICAgICBzZWxmLl9sb2dnZXIgPSBnZXRfY2xhc3NfbG9nZ2VyKHNlbGYpCi0KLSAg
ICAgICAgc2VsZi5fY29tcHJlc3MgPSB6bGliLmNvbXByZXNzb2JqKAotICAgICAgICAgICAgemxp
Yi5aX0RFRkFVTFRfQ09NUFJFU1NJT04sIHpsaWIuREVGTEFURUQsIC13aW5kb3dfYml0cykKLQot
ICAgIGRlZiBjb21wcmVzcyhzZWxmLCBieXRlcyk6Ci0gICAgICAgIGNvbXByZXNzZWRfYnl0ZXMg
PSBzZWxmLl9jb21wcmVzcy5jb21wcmVzcyhieXRlcykKLSAgICAgICAgc2VsZi5fbG9nZ2VyLmRl
YnVnKCdDb21wcmVzcyBpbnB1dCAlcicsIGJ5dGVzKQotICAgICAgICBzZWxmLl9sb2dnZXIuZGVi
dWcoJ0NvbXByZXNzIHJlc3VsdCAlcicsIGNvbXByZXNzZWRfYnl0ZXMpCi0gICAgICAgIHJldHVy
biBjb21wcmVzc2VkX2J5dGVzCi0KLSAgICBkZWYgY29tcHJlc3NfYW5kX2ZsdXNoKHNlbGYsIGJ5
dGVzKToKLSAgICAgICAgY29tcHJlc3NlZF9ieXRlcyA9IHNlbGYuX2NvbXByZXNzLmNvbXByZXNz
KGJ5dGVzKQotICAgICAgICBjb21wcmVzc2VkX2J5dGVzICs9IHNlbGYuX2NvbXByZXNzLmZsdXNo
KHpsaWIuWl9TWU5DX0ZMVVNIKQotICAgICAgICBzZWxmLl9sb2dnZXIuZGVidWcoJ0NvbXByZXNz
IGlucHV0ICVyJywgYnl0ZXMpCi0gICAgICAgIHNlbGYuX2xvZ2dlci5kZWJ1ZygnQ29tcHJlc3Mg
cmVzdWx0ICVyJywgY29tcHJlc3NlZF9ieXRlcykKLSAgICAgICAgcmV0dXJuIGNvbXByZXNzZWRf
Ynl0ZXMKLQotICAgIGRlZiBjb21wcmVzc19hbmRfZmluaXNoKHNlbGYsIGJ5dGVzKToKLSAgICAg
ICAgY29tcHJlc3NlZF9ieXRlcyA9IHNlbGYuX2NvbXByZXNzLmNvbXByZXNzKGJ5dGVzKQotICAg
ICAgICBjb21wcmVzc2VkX2J5dGVzICs9IHNlbGYuX2NvbXByZXNzLmZsdXNoKHpsaWIuWl9GSU5J
U0gpCi0gICAgICAgIHNlbGYuX2xvZ2dlci5kZWJ1ZygnQ29tcHJlc3MgaW5wdXQgJXInLCBieXRl
cykKLSAgICAgICAgc2VsZi5fbG9nZ2VyLmRlYnVnKCdDb21wcmVzcyByZXN1bHQgJXInLCBjb21w
cmVzc2VkX2J5dGVzKQotICAgICAgICByZXR1cm4gY29tcHJlc3NlZF9ieXRlcwotCi0KLWNsYXNz
IF9JbmZsYXRlcihvYmplY3QpOgotCi0gICAgZGVmIF9faW5pdF9fKHNlbGYsIHdpbmRvd19iaXRz
KToKLSAgICAgICAgc2VsZi5fbG9nZ2VyID0gZ2V0X2NsYXNzX2xvZ2dlcihzZWxmKQotICAgICAg
ICBzZWxmLl93aW5kb3dfYml0cyA9IHdpbmRvd19iaXRzCi0KLSAgICAgICAgc2VsZi5fdW5jb25z
dW1lZCA9ICcnCi0KLSAgICAgICAgc2VsZi5yZXNldCgpCi0KLSAgICBkZWYgZGVjb21wcmVzcyhz
ZWxmLCBzaXplKToKLSAgICAgICAgaWYgbm90IChzaXplID09IC0xIG9yIHNpemUgPiAwKToKLSAg
ICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbignc2l6ZSBtdXN0IGJlIC0xIG9yIHBvc2l0aXZlJykK
LQotICAgICAgICBkYXRhID0gJycKLQotICAgICAgICB3aGlsZSBUcnVlOgotICAgICAgICAgICAg
aWYgc2l6ZSA9PSAtMToKLSAgICAgICAgICAgICAgICBkYXRhICs9IHNlbGYuX2RlY29tcHJlc3Mu
ZGVjb21wcmVzcyhzZWxmLl91bmNvbnN1bWVkKQotICAgICAgICAgICAgICAgICMgU2VlIFB5dGhv
biBidWcgaHR0cDovL2J1Z3MucHl0aG9uLm9yZy9pc3N1ZTEyMDUwIHRvCi0gICAgICAgICAgICAg
ICAgIyB1bmRlcnN0YW5kIHdoeSB0aGUgc2FtZSBjb2RlIGNhbm5vdCBiZSB1c2VkIGZvciB1cGRh
dGluZwotICAgICAgICAgICAgICAgICMgc2VsZi5fdW5jb25zdW1lZCBmb3IgaGVyZSBhbmQgZWxz
ZSBibG9jay4KLSAgICAgICAgICAgICAgICBzZWxmLl91bmNvbnN1bWVkID0gJycKLSAgICAgICAg
ICAgIGVsc2U6Ci0gICAgICAgICAgICAgICAgZGF0YSArPSBzZWxmLl9kZWNvbXByZXNzLmRlY29t
cHJlc3MoCi0gICAgICAgICAgICAgICAgICAgIHNlbGYuX3VuY29uc3VtZWQsIHNpemUgLSBsZW4o
ZGF0YSkpCi0gICAgICAgICAgICAgICAgc2VsZi5fdW5jb25zdW1lZCA9IHNlbGYuX2RlY29tcHJl
c3MudW5jb25zdW1lZF90YWlsCi0gICAgICAgICAgICBpZiBzZWxmLl9kZWNvbXByZXNzLnVudXNl
ZF9kYXRhOgotICAgICAgICAgICAgICAgICMgRW5jb3VudGVyZWQgYSBsYXN0IGJsb2NrIChpLmUu
IGEgYmxvY2sgd2l0aCBCRklOQUwgPSAxKSBhbmQKLSAgICAgICAgICAgICAgICAjIGZvdW5kIGEg
bmV3IHN0cmVhbSAodW51c2VkX2RhdGEpLiBXZSBjYW5ub3QgdXNlIHRoZSBzYW1lCi0gICAgICAg
ICAgICAgICAgIyB6bGliLkRlY29tcHJlc3Mgb2JqZWN0IGZvciB0aGUgbmV3IHN0cmVhbS4gQ3Jl
YXRlIGEgbmV3Ci0gICAgICAgICAgICAgICAgIyBEZWNvbXByZXNzIG9iamVjdCB0byBkZWNvbXBy
ZXNzIHRoZSBuZXcgb25lLgotICAgICAgICAgICAgICAgICMKLSAgICAgICAgICAgICAgICAjIEl0
J3MgZmluZSB0byBpZ25vcmUgdW5jb25zdW1lZF90YWlsIGlmIHVudXNlZF9kYXRhIGlzIG5vdAot
ICAgICAgICAgICAgICAgICMgZW1wdHkuCi0gICAgICAgICAgICAgICAgc2VsZi5fdW5jb25zdW1l
ZCA9IHNlbGYuX2RlY29tcHJlc3MudW51c2VkX2RhdGEKLSAgICAgICAgICAgICAgICBzZWxmLnJl
c2V0KCkKLSAgICAgICAgICAgICAgICBpZiBzaXplID49IDAgYW5kIGxlbihkYXRhKSA9PSBzaXpl
OgotICAgICAgICAgICAgICAgICAgICAjIGRhdGEgaXMgZmlsbGVkLiBEb24ndCBjYWxsIGRlY29t
cHJlc3MgYWdhaW4uCi0gICAgICAgICAgICAgICAgICAgIGJyZWFrCi0gICAgICAgICAgICAgICAg
ZWxzZToKLSAgICAgICAgICAgICAgICAgICAgIyBSZS1pbnZva2UgRGVjb21wcmVzcy5kZWNvbXBy
ZXNzIHRvIHRyeSB0byBkZWNvbXByZXNzIGFsbAotICAgICAgICAgICAgICAgICAgICAjIGF2YWls
YWJsZSBieXRlcyBiZWZvcmUgaW52b2tpbmcgcmVhZCB3aGljaCBibG9ja3MgdW50aWwKLSAgICAg
ICAgICAgICAgICAgICAgIyBhbnkgbmV3IGJ5dGUgaXMgYXZhaWxhYmxlLgotICAgICAgICAgICAg
ICAgICAgICBjb250aW51ZQotICAgICAgICAgICAgZWxzZToKLSAgICAgICAgICAgICAgICAjIEhl
cmUsIHNpbmNlIHVudXNlZF9kYXRhIGlzIGVtcHR5LCBldmVuIGlmIHVuY29uc3VtZWRfdGFpbCBp
cwotICAgICAgICAgICAgICAgICMgbm90IGVtcHR5LCBieXRlcyBvZiByZXF1ZXN0ZWQgbGVuZ3Ro
IGFyZSBhbHJlYWR5IGluIGRhdGEuIFdlCi0gICAgICAgICAgICAgICAgIyBkb24ndCBoYXZlIHRv
ICJjb250aW51ZSIgaGVyZS4KLSAgICAgICAgICAgICAgICBicmVhawotCi0gICAgICAgIGlmIGRh
dGE6Ci0gICAgICAgICAgICBzZWxmLl9sb2dnZXIuZGVidWcoJ0RlY29tcHJlc3NlZCAlcicsIGRh
dGEpCi0gICAgICAgIHJldHVybiBkYXRhCi0KLSAgICBkZWYgYXBwZW5kKHNlbGYsIGRhdGEpOgot
ICAgICAgICBzZWxmLl9sb2dnZXIuZGVidWcoJ0FwcGVuZGVkICVyJywgZGF0YSkKLSAgICAgICAg
c2VsZi5fdW5jb25zdW1lZCArPSBkYXRhCi0KLSAgICBkZWYgcmVzZXQoc2VsZik6Ci0gICAgICAg
IHNlbGYuX2xvZ2dlci5kZWJ1ZygnUmVzZXQnKQotICAgICAgICBzZWxmLl9kZWNvbXByZXNzID0g
emxpYi5kZWNvbXByZXNzb2JqKC1zZWxmLl93aW5kb3dfYml0cykKLQotCi0jIENvbXByZXNzZXMv
ZGVjb21wcmVzc2VzIGdpdmVuIG9jdGV0cyB1c2luZyB0aGUgbWV0aG9kIGludHJvZHVjZWQgaW4g
UkZDMTk3OS4KLQotCi1jbGFzcyBfUkZDMTk3OURlZmxhdGVyKG9iamVjdCk6Ci0gICAgIiIiQSBj
b21wcmVzc29yIGNsYXNzIHRoYXQgYXBwbGllcyBERUZMQVRFIHRvIGdpdmVuIGJ5dGUgc2VxdWVu
Y2UgYW5kCi0gICAgZmx1c2hlcyB1c2luZyB0aGUgYWxnb3JpdGhtIGRlc2NyaWJlZCBpbiB0aGUg
UkZDMTk3OSBzZWN0aW9uIDIuMS4KLSAgICAiIiIKLQotICAgIGRlZiBfX2luaXRfXyhzZWxmLCB3
aW5kb3dfYml0cywgbm9fY29udGV4dF90YWtlb3Zlcik6Ci0gICAgICAgIHNlbGYuX2RlZmxhdGVy
ID0gTm9uZQotICAgICAgICBpZiB3aW5kb3dfYml0cyBpcyBOb25lOgotICAgICAgICAgICAgd2lu
ZG93X2JpdHMgPSB6bGliLk1BWF9XQklUUwotICAgICAgICBzZWxmLl93aW5kb3dfYml0cyA9IHdp
bmRvd19iaXRzCi0gICAgICAgIHNlbGYuX25vX2NvbnRleHRfdGFrZW92ZXIgPSBub19jb250ZXh0
X3Rha2VvdmVyCi0KLSAgICBkZWYgZmlsdGVyKHNlbGYsIGJ5dGVzLCBlbmQ9VHJ1ZSwgYmZpbmFs
PUZhbHNlKToKLSAgICAgICAgaWYgc2VsZi5fZGVmbGF0ZXIgaXMgTm9uZToKLSAgICAgICAgICAg
IHNlbGYuX2RlZmxhdGVyID0gX0RlZmxhdGVyKHNlbGYuX3dpbmRvd19iaXRzKQotCi0gICAgICAg
IGlmIGJmaW5hbDoKLSAgICAgICAgICAgIHJlc3VsdCA9IHNlbGYuX2RlZmxhdGVyLmNvbXByZXNz
X2FuZF9maW5pc2goYnl0ZXMpCi0gICAgICAgICAgICAjIEFkZCBhIHBhZGRpbmcgYmxvY2sgd2l0
aCBCRklOQUwgPSAwIGFuZCBCVFlQRSA9IDAuCi0gICAgICAgICAgICByZXN1bHQgPSByZXN1bHQg
KyBjaHIoMCkKLSAgICAgICAgICAgIHNlbGYuX2RlZmxhdGVyID0gTm9uZQotICAgICAgICAgICAg
cmV0dXJuIHJlc3VsdAotCi0gICAgICAgIHJlc3VsdCA9IHNlbGYuX2RlZmxhdGVyLmNvbXByZXNz
X2FuZF9mbHVzaChieXRlcykKLSAgICAgICAgaWYgZW5kOgotICAgICAgICAgICAgIyBTdHJpcCBs
YXN0IDQgb2N0ZXRzIHdoaWNoIGlzIExFTiBhbmQgTkxFTiBmaWVsZCBvZiBhCi0gICAgICAgICAg
ICAjIG5vbi1jb21wcmVzc2VkIGJsb2NrIGFkZGVkIGZvciBaX1NZTkNfRkxVU0guCi0gICAgICAg
ICAgICByZXN1bHQgPSByZXN1bHRbOi00XQotCi0gICAgICAgIGlmIHNlbGYuX25vX2NvbnRleHRf
dGFrZW92ZXIgYW5kIGVuZDoKLSAgICAgICAgICAgIHNlbGYuX2RlZmxhdGVyID0gTm9uZQotCi0g
ICAgICAgIHJldHVybiByZXN1bHQKLQotCi1jbGFzcyBfUkZDMTk3OUluZmxhdGVyKG9iamVjdCk6
Ci0gICAgIiIiQSBkZWNvbXByZXNzb3IgY2xhc3MgZm9yIGJ5dGUgc2VxdWVuY2UgY29tcHJlc3Nl
ZCBhbmQgZmx1c2hlZCBmb2xsb3dpbmcKLSAgICB0aGUgYWxnb3JpdGhtIGRlc2NyaWJlZCBpbiB0
aGUgUkZDMTk3OSBzZWN0aW9uIDIuMS4KLSAgICAiIiIKLQotICAgIGRlZiBfX2luaXRfXyhzZWxm
LCB3aW5kb3dfYml0cz16bGliLk1BWF9XQklUUyk6Ci0gICAgICAgIHNlbGYuX2luZmxhdGVyID0g
X0luZmxhdGVyKHdpbmRvd19iaXRzKQotCi0gICAgZGVmIGZpbHRlcihzZWxmLCBieXRlcyk6Ci0g
ICAgICAgICMgUmVzdG9yZSBzdHJpcHBlZCBMRU4gYW5kIE5MRU4gZmllbGQgb2YgYSBub24tY29t
cHJlc3NlZCBibG9jayBhZGRlZAotICAgICAgICAjIGZvciBaX1NZTkNfRkxVU0guCi0gICAgICAg
IHNlbGYuX2luZmxhdGVyLmFwcGVuZChieXRlcyArICdceDAwXHgwMFx4ZmZceGZmJykKLSAgICAg
ICAgcmV0dXJuIHNlbGYuX2luZmxhdGVyLmRlY29tcHJlc3MoLTEpCi0KLQotY2xhc3MgRGVmbGF0
ZVNvY2tldChvYmplY3QpOgotICAgICIiIkEgd3JhcHBlciBjbGFzcyBmb3Igc29ja2V0IG9iamVj
dCB0byBpbnRlcmNlcHQgc2VuZCBhbmQgcmVjdiB0byBwZXJmb3JtCi0gICAgZGVmbGF0ZSBjb21w
cmVzc2lvbiBhbmQgZGVjb21wcmVzc2lvbiB0cmFuc3BhcmVudGx5LgotICAgICIiIgotCi0gICAg
IyBTaXplIG9mIHRoZSBidWZmZXIgcGFzc2VkIHRvIHJlY3YgdG8gcmVjZWl2ZSBjb21wcmVzc2Vk
IGRhdGEuCi0gICAgX1JFQ1ZfU0laRSA9IDQwOTYKLQotICAgIGRlZiBfX2luaXRfXyhzZWxmLCBz
b2NrZXQpOgotICAgICAgICBzZWxmLl9zb2NrZXQgPSBzb2NrZXQKLQotICAgICAgICBzZWxmLl9s
b2dnZXIgPSBnZXRfY2xhc3NfbG9nZ2VyKHNlbGYpCi0KLSAgICAgICAgc2VsZi5fZGVmbGF0ZXIg
PSBfRGVmbGF0ZXIoemxpYi5NQVhfV0JJVFMpCi0gICAgICAgIHNlbGYuX2luZmxhdGVyID0gX0lu
ZmxhdGVyKHpsaWIuTUFYX1dCSVRTKQotCi0gICAgZGVmIHJlY3Yoc2VsZiwgc2l6ZSk6Ci0gICAg
ICAgICIiIlJlY2VpdmVzIGRhdGEgZnJvbSB0aGUgc29ja2V0IHNwZWNpZmllZCBvbiB0aGUgY29u
c3RydWN0aW9uIHVwCi0gICAgICAgIHRvIHRoZSBzcGVjaWZpZWQgc2l6ZS4gT25jZSBhbnkgZGF0
YSBpcyBhdmFpbGFibGUsIHJldHVybnMgaXQgZXZlbgotICAgICAgICBpZiBpdCdzIHNtYWxsZXIg
dGhhbiB0aGUgc3BlY2lmaWVkIHNpemUuCi0gICAgICAgICIiIgotCi0gICAgICAgICMgVE9ETyh0
eW9zaGlubyk6IEFsbG93IGNhbGwgd2l0aCBzaXplPTAuIEl0IHNob3VsZCBibG9jayB1bnRpbCBh
bnkKLSAgICAgICAgIyBkZWNvbXByZXNzZWQgZGF0YSBpcyBhdmFpbGFibGUuCi0gICAgICAgIGlm
IHNpemUgPD0gMDoKLSAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbignTm9uLXBvc2l0aXZlIHNp
emUgcGFzc2VkJykKLSAgICAgICAgd2hpbGUgVHJ1ZToKLSAgICAgICAgICAgIGRhdGEgPSBzZWxm
Ll9pbmZsYXRlci5kZWNvbXByZXNzKHNpemUpCi0gICAgICAgICAgICBpZiBsZW4oZGF0YSkgIT0g
MDoKLSAgICAgICAgICAgICAgICByZXR1cm4gZGF0YQotCi0gICAgICAgICAgICByZWFkX2RhdGEg
PSBzZWxmLl9zb2NrZXQucmVjdihEZWZsYXRlU29ja2V0Ll9SRUNWX1NJWkUpCi0gICAgICAgICAg
ICBpZiBub3QgcmVhZF9kYXRhOgotICAgICAgICAgICAgICAgIHJldHVybiAnJwotICAgICAgICAg
ICAgc2VsZi5faW5mbGF0ZXIuYXBwZW5kKHJlYWRfZGF0YSkKLQotICAgIGRlZiBzZW5kYWxsKHNl
bGYsIGJ5dGVzKToKLSAgICAgICAgc2VsZi5zZW5kKGJ5dGVzKQotCi0gICAgZGVmIHNlbmQoc2Vs
ZiwgYnl0ZXMpOgotICAgICAgICBzZWxmLl9zb2NrZXQuc2VuZGFsbChzZWxmLl9kZWZsYXRlci5j
b21wcmVzc19hbmRfZmx1c2goYnl0ZXMpKQotICAgICAgICByZXR1cm4gbGVuKGJ5dGVzKQotCi0K
LSMgdmk6c3RzPTQgc3c9NCBldApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9zcmMvbW9kX3B5d2Vic29ja2V0
L3czYy1pbXBvcnQubG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy9weXdlYnNvY2tldC9zcmMvbW9kX3B5d2Vic29ja2V0L3czYy1pbXBvcnQubG9n
CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1NzlkZjM1OTk4ZDExNTFiM2IwOThhMDVh
MGIxYzg3OWQ0MjUyZDg3Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
cHl3ZWJzb2NrZXQvc3JjL21vZF9weXdlYnNvY2tldC93M2MtaW1wb3J0LmxvZworKysgL2Rldi9u
dWxsCkBAIC0xLDMzICswLDAgQEAKLVRoZSB0ZXN0cyBpbiB0aGlzIGRpcmVjdG9yeSB3ZXJlIGlt
cG9ydGVkIGZyb20gdGhlIFczQyByZXBvc2l0b3J5LgotRG8gTk9UIG1vZGlmeSB0aGVzZSB0ZXN0
cyBkaXJlY3RseSBpbiBXZWJLaXQuCi1JbnN0ZWFkLCBjcmVhdGUgYSBwdWxsIHJlcXVlc3Qgb24g
dGhlIFdQVCBnaXRodWI6Ci0JaHR0cHM6Ly9naXRodWIuY29tL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMKLQotVGhlbiBydW4gdGhlIFRvb2xzL1NjcmlwdHMvaW1wb3J0LXczYy10ZXN0cyBpbiBXZWJL
aXQgdG8gcmVpbXBvcnQKLQotRG8gTk9UIG1vZGlmeSBvciByZW1vdmUgdGhpcyBmaWxlLgotCi0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0KLVByb3BlcnRpZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5v
bmUKLVByb3BlcnR5IHZhbHVlcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tCi1MaXN0IG9mIGZpbGVzOgotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3JjL21vZF9weXdlYnNvY2tldC9f
X2luaXRfXy5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvcHl3ZWJzb2NrZXQvc3JjL21vZF9weXdlYnNvY2tldC9fc3RyZWFtX2Jhc2UucHkKLS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29j
a2V0L3NyYy9tb2RfcHl3ZWJzb2NrZXQvX3N0cmVhbV9oaXhpZTc1LnB5Ci0vTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9zcmMvbW9k
X3B5d2Vic29ja2V0L19zdHJlYW1faHliaS5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3JjL21vZF9weXdlYnNvY2tldC9j
b21tb24ucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3B5d2Vic29ja2V0L3NyYy9tb2RfcHl3ZWJzb2NrZXQvZGlzcGF0Y2gucHkKLS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3Ny
Yy9tb2RfcHl3ZWJzb2NrZXQvZXh0ZW5zaW9ucy5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3JjL21vZF9weXdlYnNvY2tl
dC9mYXN0X21hc2tpbmcuaQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3JjL21vZF9weXdlYnNvY2tldC9oZWFkZXJwYXJzZXJo
YW5kbGVyLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy9weXdlYnNvY2tldC9zcmMvbW9kX3B5d2Vic29ja2V0L2h0dHBfaGVhZGVyX3V0aWwucHkK
LS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vi
c29ja2V0L3NyYy9tb2RfcHl3ZWJzb2NrZXQvbWVtb3JpemluZ2ZpbGUucHkKLS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3NyYy9t
b2RfcHl3ZWJzb2NrZXQvbXNndXRpbC5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3JjL21vZF9weXdlYnNvY2tldC9tdXgu
cHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5
d2Vic29ja2V0L3NyYy9tb2RfcHl3ZWJzb2NrZXQvc3RhbmRhbG9uZS5weQotL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3JjL21v
ZF9weXdlYnNvY2tldC9zdHJlYW0ucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3NyYy9tb2RfcHl3ZWJzb2NrZXQvdXRpbC5w
eQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3
ZWJzb2NrZXQvc3JjL21vZF9weXdlYnNvY2tldC94aHJfYmVuY2htYXJrX2hhbmRsZXIucHkKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvcHl3ZWJzb2NrZXQvc3JjL21vZF9weXdlYnNvY2tldC94aHJfYmVuY2htYXJrX2hhbmRsZXIu
cHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5
d2Vic29ja2V0L3NyYy9tb2RfcHl3ZWJzb2NrZXQveGhyX2JlbmNobWFya19oYW5kbGVyLnB5CmRl
bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2NzM1YzdlMmEzZGI4ZGM3YzQzZmQxNzIwMTQ5
NWQ0MzVjY2U2OGNlLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0t
LSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3
ZWJzb2NrZXQvc3JjL21vZF9weXdlYnNvY2tldC94aHJfYmVuY2htYXJrX2hhbmRsZXIucHkKKysr
IC9kZXYvbnVsbApAQCAtMSwxMDkgKzAsMCBAQAotIyBDb3B5cmlnaHQgMjAxNCBHb29nbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgotIwotIyBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBn
b3Zlcm5lZCBieSBhIEJTRC1zdHlsZQotIyBsaWNlbnNlIHRoYXQgY2FuIGJlIGZvdW5kIGluIHRo
ZSBDT1BZSU5HIGZpbGUgb3IgYXQKLSMgaHR0cHM6Ly9kZXZlbG9wZXJzLmdvb2dsZS5jb20vb3Bl
bi1zb3VyY2UvbGljZW5zZXMvYnNkCi0KLQotZnJvbSBtb2RfcHl3ZWJzb2NrZXQgaW1wb3J0IHV0
aWwKLQotCi1jbGFzcyBYSFJCZW5jaG1hcmtIYW5kbGVyKG9iamVjdCk6Ci0gICAgZGVmIF9faW5p
dF9fKHNlbGYsIGhlYWRlcnMsIHJmaWxlLCB3ZmlsZSk6Ci0gICAgICAgIHNlbGYuX2xvZ2dlciA9
IHV0aWwuZ2V0X2NsYXNzX2xvZ2dlcihzZWxmKQotCi0gICAgICAgIHNlbGYuaGVhZGVycyA9IGhl
YWRlcnMKLSAgICAgICAgc2VsZi5yZmlsZSA9IHJmaWxlCi0gICAgICAgIHNlbGYud2ZpbGUgPSB3
ZmlsZQotCi0gICAgZGVmIGRvX3NlbmQoc2VsZik6Ci0gICAgICAgIGNvbnRlbnRfbGVuZ3RoID0g
aW50KHNlbGYuaGVhZGVycy5nZXRoZWFkZXIoJ0NvbnRlbnQtTGVuZ3RoJykpCi0KLSAgICAgICAg
c2VsZi5fbG9nZ2VyLmRlYnVnKCdSZXF1ZXN0ZWQgdG8gcmVjZWl2ZSAlcyBieXRlcycsIGNvbnRl
bnRfbGVuZ3RoKQotCi0gICAgICAgIFJFQ0VJVkVfQkxPQ0tfU0laRSA9IDEwMjQgKiAxMDI0Ci0K
LSAgICAgICAgYnl0ZXNfdG9fcmVjZWl2ZSA9IGNvbnRlbnRfbGVuZ3RoCi0gICAgICAgIHdoaWxl
IGJ5dGVzX3RvX3JlY2VpdmUgPiAwOgotICAgICAgICAgICAgYnl0ZXNfdG9fcmVjZWl2ZV9pbl90
aGlzX2xvb3AgPSBieXRlc190b19yZWNlaXZlCi0gICAgICAgICAgICBpZiBieXRlc190b19yZWNl
aXZlX2luX3RoaXNfbG9vcCA+IFJFQ0VJVkVfQkxPQ0tfU0laRToKLSAgICAgICAgICAgICAgICBi
eXRlc190b19yZWNlaXZlX2luX3RoaXNfbG9vcCA9IFJFQ0VJVkVfQkxPQ0tfU0laRQotICAgICAg
ICAgICAgcmVjZWl2ZWRfZGF0YSA9IHNlbGYucmZpbGUucmVhZChieXRlc190b19yZWNlaXZlX2lu
X3RoaXNfbG9vcCkKLSAgICAgICAgICAgIGlmIHJlY2VpdmVkX2RhdGEgIT0gKCdhJyAqIGJ5dGVz
X3RvX3JlY2VpdmVfaW5fdGhpc19sb29wKToKLSAgICAgICAgICAgICAgICBzZWxmLl9sb2dnZXIu
ZGVidWcoJ1JlcXVlc3QgYm9keSB2ZXJpZmljYXRpb24gZmFpbGVkJykKLSAgICAgICAgICAgICAg
ICByZXR1cm4KLSAgICAgICAgICAgIGJ5dGVzX3RvX3JlY2VpdmUgLT0gbGVuKHJlY2VpdmVkX2Rh
dGEpCi0gICAgICAgIGlmIGJ5dGVzX3RvX3JlY2VpdmUgPCAwOgotICAgICAgICAgICAgc2VsZi5f
bG9nZ2VyLmRlYnVnKCdSZWNlaXZlZCAlZCBtb3JlIGJ5dGVzIHRoYW4gZXhwZWN0ZWQnICUKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoLWJ5dGVzX3RvX3JlY2VpdmUpKQotICAgICAg
ICAgICAgcmV0dXJuCi0KLSAgICAgICAgIyBSZXR1cm4gdGhlIG51bWJlciBvZiByZWNlaXZlZCBi
eXRlcyBiYWNrIHRvIHRoZSBjbGllbnQuCi0gICAgICAgIHJlc3BvbnNlX2JvZHkgPSAnJWQnICUg
Y29udGVudF9sZW5ndGgKLSAgICAgICAgc2VsZi53ZmlsZS53cml0ZSgKLSAgICAgICAgICAgICdI
VFRQLzEuMSAyMDAgT0tcclxuJwotICAgICAgICAgICAgJ0NvbnRlbnQtVHlwZTogdGV4dC9odG1s
XHJcbicKLSAgICAgICAgICAgICdDb250ZW50LUxlbmd0aDogJWRcclxuJwotICAgICAgICAgICAg
J1xyXG4lcycgJSAobGVuKHJlc3BvbnNlX2JvZHkpLCByZXNwb25zZV9ib2R5KSkKLSAgICAgICAg
c2VsZi53ZmlsZS5mbHVzaCgpCi0KLSAgICBkZWYgZG9fcmVjZWl2ZShzZWxmKToKLSAgICAgICAg
Y29udGVudF9sZW5ndGggPSBpbnQoc2VsZi5oZWFkZXJzLmdldGhlYWRlcignQ29udGVudC1MZW5n
dGgnKSkKLSAgICAgICAgcmVxdWVzdF9ib2R5ID0gc2VsZi5yZmlsZS5yZWFkKGNvbnRlbnRfbGVu
Z3RoKQotCi0gICAgICAgIHJlcXVlc3RfYXJyYXkgPSByZXF1ZXN0X2JvZHkuc3BsaXQoJyAnKQot
ICAgICAgICBpZiBsZW4ocmVxdWVzdF9hcnJheSkgPCAyOgotICAgICAgICAgICAgc2VsZi5fbG9n
Z2VyLmRlYnVnKCdNYWxmb3JtZWQgcmVxdWVzdCBib2R5OiAlcicsIHJlcXVlc3RfYm9keSkKLSAg
ICAgICAgICAgIHJldHVybgotCi0gICAgICAgICMgUGFyc2UgdGhlIHNpemUgcGFyYW1ldGVyLgot
ICAgICAgICBieXRlc190b19zZW5kID0gcmVxdWVzdF9hcnJheVswXQotICAgICAgICB0cnk6Ci0g
ICAgICAgICAgICBieXRlc190b19zZW5kID0gaW50KGJ5dGVzX3RvX3NlbmQpCi0gICAgICAgIGV4
Y2VwdCBWYWx1ZUVycm9yLCBlOgotICAgICAgICAgICAgc2VsZi5fbG9nZ2VyLmRlYnVnKCdNYWxm
b3JtZWQgc2l6ZSBwYXJhbWV0ZXI6ICVyJywgYnl0ZXNfdG9fc2VuZCkKLSAgICAgICAgICAgIHJl
dHVybgotICAgICAgICBzZWxmLl9sb2dnZXIuZGVidWcoJ1JlcXVlc3RlZCB0byBzZW5kICVzIGJ5
dGVzJywgYnl0ZXNfdG9fc2VuZCkKLQotICAgICAgICAjIFBhcnNlIHRoZSB0cmFuc2ZlciBlbmNv
ZGluZyBwYXJhbWV0ZXIuCi0gICAgICAgIGNodW5rZWRfbW9kZSA9IEZhbHNlCi0gICAgICAgIG1v
ZGVfcGFyYW1ldGVyID0gcmVxdWVzdF9hcnJheVsxXQotICAgICAgICBpZiBtb2RlX3BhcmFtZXRl
ciA9PSAnY2h1bmtlZCc6Ci0gICAgICAgICAgICBzZWxmLl9sb2dnZXIuZGVidWcoJ1JlcXVlc3Rl
ZCBjaHVua2VkIHRyYW5zZmVyIGVuY29kaW5nJykKLSAgICAgICAgICAgIGNodW5rZWRfbW9kZSA9
IFRydWUKLSAgICAgICAgZWxpZiBtb2RlX3BhcmFtZXRlciAhPSAnbm9uZSc6Ci0gICAgICAgICAg
ICBzZWxmLl9sb2dnZXIuZGVidWcoJ0ludmFsaWQgbW9kZSBwYXJhbWV0ZXI6ICVyJywgbW9kZV9w
YXJhbWV0ZXIpCi0gICAgICAgICAgICByZXR1cm4KLQotICAgICAgICAjIFdyaXRlIGEgaGVhZGVy
Ci0gICAgICAgIHJlc3BvbnNlX2hlYWRlciA9ICgKLSAgICAgICAgICAgICdIVFRQLzEuMSAyMDAg
T0tcclxuJwotICAgICAgICAgICAgJ0NvbnRlbnQtVHlwZTogYXBwbGljYXRpb24vb2N0ZXQtc3Ry
ZWFtXHJcbicpCi0gICAgICAgIGlmIGNodW5rZWRfbW9kZToKLSAgICAgICAgICAgIHJlc3BvbnNl
X2hlYWRlciArPSAnVHJhbnNmZXItRW5jb2Rpbmc6IGNodW5rZWRcclxuXHJcbicKLSAgICAgICAg
ZWxzZToKLSAgICAgICAgICAgIHJlc3BvbnNlX2hlYWRlciArPSAoCi0gICAgICAgICAgICAgICAg
J0NvbnRlbnQtTGVuZ3RoOiAlZFxyXG5cclxuJyAlIGJ5dGVzX3RvX3NlbmQpCi0gICAgICAgIHNl
bGYud2ZpbGUud3JpdGUocmVzcG9uc2VfaGVhZGVyKQotICAgICAgICBzZWxmLndmaWxlLmZsdXNo
KCkKLQotICAgICAgICAjIFdyaXRlIGEgYm9keQotICAgICAgICBTRU5EX0JMT0NLX1NJWkUgPSAx
MDI0ICogMTAyNAotCi0gICAgICAgIHdoaWxlIGJ5dGVzX3RvX3NlbmQgPiAwOgotICAgICAgICAg
ICAgYnl0ZXNfdG9fc2VuZF9pbl90aGlzX2xvb3AgPSBieXRlc190b19zZW5kCi0gICAgICAgICAg
ICBpZiBieXRlc190b19zZW5kX2luX3RoaXNfbG9vcCA+IFNFTkRfQkxPQ0tfU0laRToKLSAgICAg
ICAgICAgICAgICBieXRlc190b19zZW5kX2luX3RoaXNfbG9vcCA9IFNFTkRfQkxPQ0tfU0laRQot
Ci0gICAgICAgICAgICBpZiBjaHVua2VkX21vZGU6Ci0gICAgICAgICAgICAgICAgc2VsZi53Zmls
ZS53cml0ZSgnJXhcclxuJyAlIGJ5dGVzX3RvX3NlbmRfaW5fdGhpc19sb29wKQotICAgICAgICAg
ICAgc2VsZi53ZmlsZS53cml0ZSgnYScgKiBieXRlc190b19zZW5kX2luX3RoaXNfbG9vcCkKLSAg
ICAgICAgICAgIGlmIGNodW5rZWRfbW9kZToKLSAgICAgICAgICAgICAgICBzZWxmLndmaWxlLndy
aXRlKCdcclxuJykKLSAgICAgICAgICAgIHNlbGYud2ZpbGUuZmx1c2goKQotCi0gICAgICAgICAg
ICBieXRlc190b19zZW5kIC09IGJ5dGVzX3RvX3NlbmRfaW5fdGhpc19sb29wCi0KLSAgICAgICAg
aWYgY2h1bmtlZF9tb2RlOgotICAgICAgICAgICAgc2VsZi53ZmlsZS53cml0ZSgnMFxyXG5cclxu
JykKLSAgICAgICAgICAgIHNlbGYud2ZpbGUuZmx1c2goKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9zcmMv
c2V0dXAucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3B5d2Vic29ja2V0L3NyYy9zZXR1cC5weQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggYWRhOGRiM2UxMTFiMGE1NDMxZDcxZTYxZjQ0OTEzZWM1ZGFjOTI0OC4uMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3NyYy9zZXR1cC5weQorKysg
L2Rldi9udWxsCkBAIC0xLDc0ICswLDAgQEAKLSMhL3Vzci9iaW4vZW52IHB5dGhvbgotIwotIyBD
b3B5cmlnaHQgMjAxMiwgR29vZ2xlIEluYy4KLSMgQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSMKLSMg
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0Ci0jIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKLSMgbWV0OgotIwotIyAgICAgKiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotIyBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCi0jICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUKLSMgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgotIyBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCi0jIGRpc3RyaWJ1dGlvbi4KLSMg
ICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0
cwotIyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1
Y3RzIGRlcml2ZWQgZnJvbQotIyB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Ig
d3JpdHRlbiBwZXJtaXNzaW9uLgotIwotIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRI
RSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCi0jICJBUyBJUyIgQU5EIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCi0jIExJTUlU
RUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUgotIyBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgVEhFIENPUFlSSUdIVAotIyBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKLSMgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAotIyBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwKLSMgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCi0jIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSMgKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0j
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCi0KLQotIiIiU2V0IHVwIHNjcmlwdCBmb3IgbW9kX3B5d2Vic29ja2V0Lgot
IiIiCi0KLQotZnJvbSBkaXN0dXRpbHMuY29yZSBpbXBvcnQgc2V0dXAsIEV4dGVuc2lvbgotaW1w
b3J0IHN5cwotCi0KLV9QQUNLQUdFX05BTUUgPSAnbW9kX3B5d2Vic29ja2V0JwotCi0jIEJ1aWxk
IGFuZCB1c2UgYSBDKysgZXh0ZW5zaW9uIGZvciBmYXN0ZXIgbWFza2luZy4gU1dJRyBpcyByZXF1
aXJlZC4KLV9VU0VfRkFTVF9NQVNLSU5HID0gRmFsc2UKLQotaWYgc3lzLnZlcnNpb24gPCAnMi4z
JzoKLSAgICBwcmludCA+PiBzeXMuc3RkZXJyLCAnJXMgcmVxdWlyZXMgUHl0aG9uIDIuMyBvciBs
YXRlci4nICUgX1BBQ0tBR0VfTkFNRQotICAgIHN5cy5leGl0KDEpCi0KLWlmIF9VU0VfRkFTVF9N
QVNLSU5HOgotICAgIHNldHVwKGV4dF9tb2R1bGVzPVsKLSAgICAgICAgICAgICAgICAgIEV4dGVu
c2lvbigKLSAgICAgICAgICAgICAgICAgICAgICAgICAgJ21vZF9weXdlYnNvY2tldC9fZmFzdF9t
YXNraW5nJywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgWydtb2RfcHl3ZWJzb2NrZXQvZmFz
dF9tYXNraW5nLmknXSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgc3dpZ19vcHRzPVsnLWMr
KyddKV0pCi0KLXNldHVwKGF1dGhvcj0nWXV6byBGdWppc2hpbWEnLAotICAgICAgYXV0aG9yX2Vt
YWlsPSd5dXpvQGNocm9taXVtLm9yZycsCi0gICAgICBkZXNjcmlwdGlvbj0nV2ViU29ja2V0IGV4
dGVuc2lvbiBmb3IgQXBhY2hlIEhUVFAgU2VydmVyLicsCi0gICAgICBsb25nX2Rlc2NyaXB0aW9u
PSgKLSAgICAgICAgICAgICAgJ21vZF9weXdlYnNvY2tldCBpcyBhbiBBcGFjaGUgSFRUUCBTZXJ2
ZXIgZXh0ZW5zaW9uIGZvciAnCi0gICAgICAgICAgICAgICd0aGUgV2ViU29ja2V0IFByb3RvY29s
IChSRkMgNjQ1NSkuICcKLSAgICAgICAgICAgICAgJ1NlZSBtb2RfcHl3ZWJzb2NrZXQvX19pbml0
X18ucHkgZm9yIG1vcmUgZGV0YWlsLicpLAotICAgICAgbGljZW5zZT0nU2VlIENPUFlJTkcnLAot
ICAgICAgbmFtZT1fUEFDS0FHRV9OQU1FLAotICAgICAgcGFja2FnZXM9W19QQUNLQUdFX05BTUUs
IF9QQUNLQUdFX05BTUUgKyAnLmhhbmRzaGFrZSddLAotICAgICAgdXJsPSdodHRwOi8vY29kZS5n
b29nbGUuY29tL3AvcHl3ZWJzb2NrZXQvJywKLSAgICAgICMgU2VlIHRoZSBzb3VyY2Ugb2YgZGlz
dHV0aWxzLnZlcnNpb24sIGRpc3R1dGlscy52ZXJzaW9ucHJlZGljYXRlIGFuZAotICAgICAgIyBk
aXN0dXRpbHMuZGlzdCB0byB1bmRlcnN0YW5kIGhvdyB0byBuYW1lIHZlcnNpb24gbnVtYmVycy4K
LSAgICAgIHZlcnNpb249JzAuNy45JywKLSAgICAgICkKLQotCi0jIHZpOnN0cz00IHN3PTQgZXQK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvcHl3ZWJzb2NrZXQvc3JjL3Rlc3QvX19pbml0X18ucHkgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3NyYy90ZXN0L19f
aW5pdF9fLnB5CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhNjgzNGI4Mjg1YTU2YmVm
MGUxNTQzZmQ5MDFjN2U2ZjJmOGJjMjAyLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3JjL3Rlc3QvX19pbml0X18ucHkKKysrIC9kZXYvbnVsbApA
QCAtMSArMCwwIEBACi0jIFRoaXMgZmlsZSBpcyByZXF1aXJlZCBmb3IgUHl0aG9uIHRvIHNlYXJj
aCB0aGlzIGRpcmVjdG9yeSBmb3IgbW9kdWxlcy4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxl
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3B5d2Vic29ja2V0L3NyYy90ZXN0L2NlcnQvY2FjZXJ0LnBlbSBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3JjL3Rl
c3QvY2VydC9jYWNlcnQucGVtCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0ZGFkYWUx
MjFiZGQzYWRiNzQ0MzgzY2QzYmYwOGMyMjZmODU1NGJhLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3JjL3Rlc3QvY2VydC9jYWNlcnQucGVtCisr
KyAvZGV2L251bGwKQEAgLTEsMTcgKzAsMCBAQAotLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0t
Ci1NSUlDdkRDQ0FpV2dBd0lCQWdJSkFLcVZnaGtHRjFyU01BMEdDU3FHU0liM0RRRUJCUVVBTUVr
eEN6QUpCZ05WCi1CQVlUQWtwUU1RNHdEQVlEVlFRSUV3VlViMnQ1YnpFVU1CSUdBMVVFQ2hNTGNI
bDNaV0p6YjJOclpYUXhGREFTCi1CZ05WQkFNVEMzQjVkMlZpYzI5amEyVjBNQjRYRFRFeU1EWXdO
akEzTWpRek0xb1hEVE01TVRBeU16QTNNalF6Ci1NMW93U1RFTE1Ba0dBMVVFQmhNQ1NsQXhEakFN
QmdOVkJBZ1RCVlJ2YTNsdk1SUXdFZ1lEVlFRS0V3dHdlWGRsCi1Zbk52WTJ0bGRERVVNQklHQTFV
RUF4TUxjSGwzWldKemIyTnJaWFF3Z1o4d0RRWUpLb1pJaHZjTkFRRUJCUUFECi1nWTBBTUlHSkFv
R0JBS29TRVcyYmlReFZyTU1LZG4vOFBKekRZaVNYRFBSOVdRYkxSUlExR201amtDWWlhaFhXCi11
MkNiVFRoZlBQZmkyTkhBM0krSGxUN2dPOXlSN1JWVXZONklTVXpHd1hERXE0ZjRVTnF0UU9oUWFx
cUsrQ1o5Ci1MTy9CaE8vWVlmTnJiU1BsWXpIVUthVDllc2U3eE85VnpWS0xXK3FVZjJNamg0LytT
enhCRE5QN0FnTUJBQUdqCi1nYXN3Z2Fnd0hRWURWUjBPQkJZRUZPc1dkeENTdXlod2FaZWFiNkJv
VGhvMysrYnpNSGtHQTFVZEl3UnlNSENBCi1GT3NXZHhDU3V5aHdhWmVhYjZCb1RobzMrK2J6b1Uy
a1N6QkpNUXN3Q1FZRFZRUUdFd0pLVURFT01Bd0dBMVVFCi1DQk1GVkc5cmVXOHhGREFTQmdOVkJB
b1RDM0I1ZDJWaWMyOWphMlYwTVJRd0VnWURWUVFERXd0d2VYZGxZbk52Ci1ZMnRsZElJSkFLcVZn
aGtHRjFyU01Bd0dBMVVkRXdRRk1BTUJBZjh3RFFZSktvWklodmNOQVFFRkJRQURnWUVBCi1nc01J
MVdFWXFOdy9qaFVJZHJUQmNDeEowWDZoSnZBOXppS0FOVm0xUnMrNFAzWURBcmtROGJDcjZ4WStL
dzdzCi1acDB5RTdkTThHTWRpK0RVNmhMM3QzRTVlTWtUUzF5WnI5V0NLNGYyUkxvK2V0OThzZWxa
eWRwSGVtRjNESkozCi1nQWo4U3g0TEJhRzhDYi9XbkVNUHYzTXhHM2ZCRTVmYXZGNlY0alUwN2hR
PQotLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9zcmMvdGVzdC9j
ZXJ0L2NlcnQucGVtIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy9weXdlYnNvY2tldC9zcmMvdGVzdC9jZXJ0L2NlcnQucGVtCmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAyNTM3OWE3MmIwZGFjNWY0MTk3OWM4MDJjNjYzZGY4Yjg4ZGVhODI5
Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3Jj
L3Rlc3QvY2VydC9jZXJ0LnBlbQorKysgL2Rldi9udWxsCkBAIC0xLDYxICswLDAgQEAKLUNlcnRp
ZmljYXRlOgotICAgIERhdGE6Ci0gICAgICAgIFZlcnNpb246IDMgKDB4MikKLSAgICAgICAgU2Vy
aWFsIE51bWJlcjogMSAoMHgxKQotICAgICAgICBTaWduYXR1cmUgQWxnb3JpdGhtOiBzaGExV2l0
aFJTQUVuY3J5cHRpb24KLSAgICAgICAgSXNzdWVyOiBDPUpQLCBTVD1Ub2t5bywgTz1weXdlYnNv
Y2tldCwgQ049cHl3ZWJzb2NrZXQKLSAgICAgICAgVmFsaWRpdHkKLSAgICAgICAgICAgIE5vdCBC
ZWZvcmU6IEp1biAgNiAwNzoyNTowOCAyMDEyIEdNVAotICAgICAgICAgICAgTm90IEFmdGVyIDog
T2N0IDIzIDA3OjI1OjA4IDIwMzkgR01UCi0gICAgICAgIFN1YmplY3Q6IEM9SlAsIFNUPVRva3lv
LCBPPXB5d2Vic29ja2V0LCBDTj1weXdlYnNvY2tldAotICAgICAgICBTdWJqZWN0IFB1YmxpYyBL
ZXkgSW5mbzoKLSAgICAgICAgICAgIFB1YmxpYyBLZXkgQWxnb3JpdGhtOiByc2FFbmNyeXB0aW9u
Ci0gICAgICAgICAgICBSU0EgUHVibGljIEtleTogKDEwMjQgYml0KQotICAgICAgICAgICAgICAg
IE1vZHVsdXMgKDEwMjQgYml0KToKLSAgICAgICAgICAgICAgICAgICAgMDA6ZGU6MTA6Y2U6M2E6
NWE6MDQ6YTQ6MWM6Mjk6OTM6NWM6MjM6ODI6MWE6Ci0gICAgICAgICAgICAgICAgICAgIGYyOjA2
OjAxOmU2OjJiOmE0OjBmOmRkOjc3OjQ5Ojc2Ojg5OjAzOmEyOjIxOgotICAgICAgICAgICAgICAg
ICAgICBkZTowNDo3NTpjNjplMjpkZDpmYjozNToyNzozYTphMjo5Mjo4ZToxMjo2MjoKLSAgICAg
ICAgICAgICAgICAgICAgMmI6M2U6MWY6ZjQ6Nzg6ZGY6YjY6OTQ6Y2I6Mjc6ZDY6Y2I6ZDY6Mzc6
ZDc6Ci0gICAgICAgICAgICAgICAgICAgIDVjOjA4OmYwOjA5OjNlOmM5OmNlOjI0OjJkOjAwOmM5
OmRmOjRhOmUwOjk5OgotICAgICAgICAgICAgICAgICAgICBlNTpmYjoyMzphOTplMjpkNjpjOToz
ZDo5NjpmYTowMTo4ODpkZTo1YTo4OToKLSAgICAgICAgICAgICAgICAgICAgYjA6Y2Y6MDM6Njc6
NmY6MDQ6ODY6MWQ6ZWY6NjI6MWM6NTU6YTk6MDc6OWE6Ci0gICAgICAgICAgICAgICAgICAgIDJl
OjY2OjJhOjczOjViOjRjOjYyOjAzOmY5OjgyOjgzOmRiOjY4OmJmOmI4OgotICAgICAgICAgICAg
ICAgICAgICA0YjowYjo4Yjo5MzoxMTpiODo1NDo3Mzo3YgotICAgICAgICAgICAgICAgIEV4cG9u
ZW50OiA2NTUzNyAoMHgxMDAwMSkKLSAgICAgICAgWDUwOXYzIGV4dGVuc2lvbnM6Ci0gICAgICAg
ICAgICBYNTA5djMgQmFzaWMgQ29uc3RyYWludHM6IAotICAgICAgICAgICAgICAgIENBOkZBTFNF
Ci0gICAgICAgICAgICBOZXRzY2FwZSBDZXJ0IFR5cGU6IAotICAgICAgICAgICAgICAgIFNTTCBT
ZXJ2ZXIKLSAgICAgICAgICAgIE5ldHNjYXBlIENvbW1lbnQ6IAotICAgICAgICAgICAgICAgIE9w
ZW5TU0wgR2VuZXJhdGVkIENlcnRpZmljYXRlCi0gICAgICAgICAgICBYNTA5djMgU3ViamVjdCBL
ZXkgSWRlbnRpZmllcjogCi0gICAgICAgICAgICAgICAgODI6QTE6NzM6OEI6MTY6MEM6N0M6RTQ6
RDM6NDY6OTU6MTM6OTU6MUE6MzI6QzE6ODQ6RTk6MDY6MDAKLSAgICAgICAgICAgIFg1MDl2MyBB
dXRob3JpdHkgS2V5IElkZW50aWZpZXI6IAotICAgICAgICAgICAgICAgIGtleWlkOkVCOjE2Ojc3
OjEwOjkyOkJCOjI4OjcwOjY5Ojk3OjlBOjZGOkEwOjY4OjRFOjFBOjM3OkZCOkU2OkYzCi0KLSAg
ICBTaWduYXR1cmUgQWxnb3JpdGhtOiBzaGExV2l0aFJTQUVuY3J5cHRpb24KLSAgICAgICAgNmI6
YjM6NDY6Mjk6MDI6ZGY6YjA6Yzg6OGU6YzQ6ZDc6N2Y6YTA6MWU6MGQ6MWE6ZWI6MmY6Ci0gICAg
ICAgIGRmOmQxOjQ4OjU3OjM2OjVmOjk1OjhjOjFiOmYwOjUxOmQ2OjUyOmU3OjhkOjg0OjNiOjlm
OgotICAgICAgICBkODplZDoyMjo5YzphYTpiZDplZTo5Yjo5MDoxZDo4NDphMzo0YzowYjpjYjpl
Yjo2NDo3MzoKLSAgICAgICAgYmE6Zjc6MTU6Y2U6ZGE6NWY6ZGI6OGI6MTU6MDc6YTY6Mjg6N2Y6
Yjk6OGM6MTE6OWI6NjQ6Ci0gICAgICAgIGQzOmYxOmJlOjUyOjRmOmMzOmQ4OjU4OmZlOmRlOjU2
OjYzOjYzOjNiOjUxOmVkOmE3OjgxOgotICAgICAgICBmOTowNTo1MTo3MDo2MzozMjowOTowZTo5
NDo3ZTowNTpmZTphMTo1NjoxODozNDo5ODpkNToKLSAgICAgICAgOTk6MWU6NGU6Mjc6Mzg6ODk6
OTA6NmE6ZTU6Y2U6NjA6MzU6MDE6ZjU6ZGU6MzQ6NjA6YjE6Ci0gICAgICAgIGNiOmFlCi0tLS0t
LUJFR0lOIENFUlRJRklDQVRFLS0tLS0KLU1JSUNtRENDQWdHZ0F3SUJBZ0lCQVRBTkJna3Foa2lH
OXcwQkFRVUZBREJKTVFzd0NRWURWUVFHRXdKS1VERU8KLU1Bd0dBMVVFQ0JNRlZHOXJlVzh4RkRB
U0JnTlZCQW9UQzNCNWQyVmljMjlqYTJWME1SUXdFZ1lEVlFRREV3dHcKLWVYZGxZbk52WTJ0bGRE
QWVGdzB4TWpBMk1EWXdOekkxTURoYUZ3MHpPVEV3TWpNd056STFNRGhhTUVreEN6QUoKLUJnTlZC
QVlUQWtwUU1RNHdEQVlEVlFRSUV3VlViMnQ1YnpFVU1CSUdBMVVFQ2hNTGNIbDNaV0p6YjJOclpY
UXgKLUZEQVNCZ05WQkFNVEMzQjVkMlZpYzI5amEyVjBNSUdmTUEwR0NTcUdTSWIzRFFFQkFRVUFB
NEdOQURDQmlRS0IKLWdRRGVFTTQ2V2dTa0hDbVRYQ09DR3ZJR0FlWXJwQS9kZDBsMmlRT2lJZDRF
ZGNiaTNmczFKenFpa280U1lpcysKLUgvUjQzN2FVeXlmV3k5WTMxMXdJOEFrK3ljNGtMUURKMzBy
Z21lWDdJNm5pMXNrOWx2b0JpTjVhaWJEUEEyZHYKLUJJWWQ3MkljVmFrSG1pNW1Lbk5iVEdJRCtZ
S0QyMmkvdUVzTGk1TVJ1RlJ6ZXdJREFRQUJvNEdQTUlHTU1Ba0cKLUExVWRFd1FDTUFBd0VRWUpZ
SVpJQVliNFFnRUJCQVFEQWdaQU1Dd0dDV0NHU0FHRytFSUJEUVFmRmgxUGNHVnUKLVUxTk1JRWRs
Ym1WeVlYUmxaQ0JEWlhKMGFXWnBZMkYwWlRBZEJnTlZIUTRFRmdRVWdxRnppeFlNZk9UVFJwVVQK
LWxSb3l3WVRwQmdBd0h3WURWUjBqQkJnd0ZvQVU2eFozRUpLN0tIQnBsNXB2b0doT0dqZjc1dk13
RFFZSktvWkkKLWh2Y05BUUVGQlFBRGdZRUFhN05HS1FMZnNNaU94TmQvb0I0Tkd1c3YzOUZJVnpa
ZmxZd2I4RkhXVXVlTmhEdWYKLTJPMGluS3E5N3B1UUhZU2pUQXZMNjJSenV2Y1Z6dHBmMjRzVkI2
WW9mN21NRVp0azAvRytVay9EMkZqKzNsWmoKLVl6dFI3YWVCK1FWUmNHTXlDUTZVZmdYK29WWVlO
SmpWbVI1T0p6aUprR3Jsem1BMUFmWGVOR0N4eTY0PQotLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0t
LQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy9weXdlYnNvY2tldC9zcmMvdGVzdC9jZXJ0L2NsaWVudF9jZXJ0LnAxMiBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQv
c3JjL3Rlc3QvY2VydC9jbGllbnRfY2VydC5wMTIKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDE0ZTEzOTkyNzk4MmZhOTgyM2E1NzIzMWFmMTEzNDk5ZDZhNWE4YjAuLjAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKR0lUIGJpbmFyeSBwYXRjaApsaXRlcmFsIDAK
SGNtVj9kMDAwMDEKCmxpdGVyYWwgMjU4Mgp6Y21ZK0ZYSCpqaTdLTWAjMHRCZzJxekZpdFAhZjxQ
SEEtKk5Mb0BWX2djZjB0OFdCKCNJP3slWVJGeCp1YCUpeUoKejFuRyFLMzVicWhYclg3QWI5USVq
Zjg2dWx4JVp2LT4lSF5BYVpwd2VrUDQyWW59ZzZ2I091WUE4R3RtdlZqU0lqCnpGcGg1VSgoWiVm
QVN3U3VrWVhHcD1GKkEpMFJmaTxgJWVPZF5GcEJpLWYjczdmaXI/PjJjVyRUIzsyKkdBUF9BZQp6
MV8jbHJuMkUoZUtPTUo2TjI2WUpuZV9AaHB9U0tQWFVCN0ZNZXJffjV8MXFnQ3tUcW5uQnV2MSRr
cHA1T0J6JUAKejxteVN3Kz9ZPl5qQVo0I1hBLX0qIVFzYnVPaFcoc084MzY2KCQ7KDFBPm1vKE8t
JXgoaG4oPXlaO3l+TkcjUVgxCnpnSGtTaV5eOGN2NFRUU0w5dm41cVIoPl9EM2Ymb2MqandQZ0kj
S0BRI0FzTClEO0JEJldiMmQrSTFeSjduPn1ZWgp6YkNYbzlmT0BnIUBkV1lhMlYlfTspIXs8ekRj
fChwdkpJYXhXN05kTyVPNmY+ciZhT3JwSGt7b19SOW1RNDd1b2IKej9sPjl8bnxYM2BhZ3BeRztM
d1hSNTwobHIrUjxjTDVqVFEoP15EPGtSbyFIX1QjcD95M2R9XnRDWVYhOFJeTj99CnpDKiVYbTlM
ZWY+ajdobHItP2pIbHB8d2ZBJl5uLXM7PCF6JHFEMXhQcSE4S1ExfX5kdXB3fkJNMWdzfkBBbztD
cQp6d1JnVXwyXmR9Ti1nVjtAYVlrdThJJX18PGw2UU0/PWR+RllwYkdGSDkmdk5nS1oqU3ljSVN8
bWN1T1I/bCZDT3cKenN7emQ1em1lbHhxTjFEUXl7fVBnQj11I2Z6SU5Qa0Iwb04qY2szdmArMXsh
WVhQfntFVkk3VnFoKn51YVdfflVDCnpsUjMzUlowNUhoa0MtMWVJcCktQFleeXZjLXxSJSEqOWR3
N25mVyl5amNISVlmNnI9YUN0KFVoaS1GSm0ybntfKQp6JXt1bEJVWFJgMjw+bHh9ZUdtU21SSj41
b3RrQCgrcGpzUHE7NGhaNkZJS2wje254UCFBTCEyOF9fQVlmbGBWZ3sKemxSUmFBUnxWbXkxX2Be
YmJqWnJ6QXtRJGxZZWpJWWReQSRaPlcmanluTT1LYFRsNHdWKTN3QGQxSmNgLTUtQ0dKCnp4cV5A
OF8oITxaRjJxbGhfWn19bnI/UyY1KnorRkApdihaMUVJcztIbX0hMX5NVEwhajFAYyRaSExSfVYo
PTtebwp6ZFVwZnk/bz55em9sX3NpPDxVRUI9dChlZUJ6Z0peV1l3c0hDRzkzNHMkZClAcXFId2de
eVpNe2BeakohOTt0cjYKemVvVWF5JiQrQnlHfE5eX3pvQUhedFlJZz5oYVl3fEB8YzMxXncoblVk
N2soWW1FSjc2Vlk3OSsoQyhfJDsxTXNVCnpoaU5pK0I1Z1NyRGp8OT48QD82UiY4emJtOGJyP0Mt
Tm4xY2soKzxOSyU3KTZ2LXdXcTQ9TV9UYnQxOTR6VSp5Rgp6aDxvdDxIQldub3hCJTFrOShNMG88
TmcpUmdIUygjP2VkRVFCIV58RmstXyhhYGJVQkxBSypofmF6fiFfeHU9VDQKejZHNUstYVhKb3RI
UWxFQzhDVTV8UnlNUnVRa1hFKT9edjYoaT1NdSk9JF5vJTAheXM1R1ZSYVhaMlMySDRJODNMCnpx
KWJgfFB4eyg4OVczMnpxNHNxekgrQkFLUDl1YURFcEQ4SUlBOUQtSDQ1QyVWVD9KSiNNYStCQGk5
TVBkRi0jIwp6TnhGNVR1fWl6X2h6JFNLWjBfXyYhWXAxeWFkVnpvY0BFeStCZWZKQ3RDU1ZkNShK
eSg8QzZJY0NXfURtSHdDOFQKelJ7a3F2UkA/M3J6TEcyJFpkY3gtNXZGUkBkJFEjREQrfntkaEBt
ZF9lYEJCNipVWTZSKzReI1UlejRsdHg5QiU7CnpOVjh6KntHY0dNO2dxMlJ0eWRqe0gwUzBwI3o8
NiU3bTMhJXs/TVF1YTxgQGU1Yk90YmQhRWM/R151eGY0Z3hjSQp6LUY3U1RZaX52RGJtdkNaM05E
Y2ZIajg+QzlGVjZqZDF9KHBTd3JnR2sqUVo5UnI0KTYhc1NrVFVxYnhiYWVhMnUKendTYCR5b3NR
KWViJW9fdkpPKiFBYGRSO1k0az4mcVl6dWEtWk5FPDNGRT1JK2VTVTt4IXB0XkEzNT5vSW9QYEpx
CnpabH4pckM2MEwra1N4QWdvUEV8ckdqVkA/MkF5KlhiPSRjYGNfTDM9RXpoakJVRD1oMV80JWVC
Q2ZsaiZFSFptTwp6c3sxYnxOdXg2KztLI0tCPVRrX3xpa3x7KjAxZGskOUthNmBjUlU9TWNZaU4h
ay1hKTJQRDMxaDxjVHMla1Bob1oKek8pMndfVDktOHcyTk0mJnEycGw0XktxfUNQZT1sOWhxJFc0
IXQ7SkQlfFVKKDI4dkRiTSpMPlZGN2JXX1h7YjE0CnpHTncodz5FX1M5YDw7eFFsUGBAc2Q+Nm0z
bjIpTCkwcCFYUnJEIzI1aUlrUkRzKTF1ak4lU3N5dyM2MnZkdiZBbAp6Y2RqLVlsIzYrQGEwV3Nj
VTwzYGd2VyQydy0oXkhmRVJ5eHNOc3E2bUswZDg7PzBMU2VOaCVORWUwQllKNElMKGEKeiRXWG5k
KVBCVzxBVGt7eSUyUzlHUGEycXlKVyReSkpfY29fWFAxbTlFfWopUT9ebCQjKk1EeFA1fG1ZMXpj
cTN5CnpiPUB6eUNYdWd3ZHtOang/aTI3ait6WE80KlY+fVplLXpCUXgpSHlud0xgTmooITl0KTU0
ZE87elRWfi1PIztVOwp6TXdwMFBVLXVVTD8jIzhMLSkmdm1ibkFtbiNAJmE+dj1jUH1FVVFKVndh
RHc5VjwtSXdZdGlUOXcoVE1lYTIlRHkKenxBNDAkTjV1b2lRRV5fe1MxLWlgcTVsdHRwZz5TRDRw
YWZoZmxCfDZQRT4hPnNoV2tvRW1aaGcrfjBIcDwzS1RACno5amskcU1DPTAmQmJrXmZSbzRmMzhK
fmlXQ3x4R1AwYHdaM0YjazhnKklkTlkkR0YtQXg4XjxEckJeajI4WGI2cwp6Unw7VnZhciU8fFRa
S34+MzBrRDMpVyRBRCModHRgI0B4N1E4T1lhcFRfSnlNMXZUP2xieC0rX0YoSkYleVMwTyQKenBT
I2x9dyowaj5ifU0zZTs0ST57cE1NPnMlYD9mU0FFX1FiYEFuPl9WIWtpfSQ5d01OOShmVTF1Skdt
ME1pN2hLCnpBNWwwZTF3VmNeJHFsPzVnbT44RXZCcFNhV2Y1VElnM1pTYnVKaHA7YSUoWitrY3tj
ZHYxUHVYJGUyR0FOP0pmOAp6V0tOZ1M8KE0yRk5VYFJ4ZEJHfWY9UzFyblEqZVIxMnFGX0MmJnBu
QGB5JUN+TDleUV9aOWxoJkc9WHZHQyE0MTAKenluKTVvPSl4MmlKWSteP15FTGpudEhIYH1LKXph
P0k9fHYhJGhMMG4mR3p5cHphTHdOZGVNPU9qV3wtLT1tUl9qCnp5dD9+VnhfXzlCRXZjaEw/OWh1
VW9iLTVuK3IxPzx4QGNnfTVhfFZ8RmNGUU8qZUlwd1pFbn5WR0xlcXZTQFdrMgp6KSErRDMtO3s0
QE9PKWIrYlFPIz0tRStCZU9AZiEzPGlUMG1iMnBiMzg4e0dJUmFyamRuVGklQD80cXd5I3E2MFkK
enFpQXx7dDZvNDlFTTE4SiZ3OERBI3dRRERzRndOJEhHKk1UTDIxQlFqKVlSYFc1TDtaZk1NPCpy
TD1GSWd8MGJKCnpUOXI3RmxCTExeclYlMVVPITN8R0RFYU0hakhQTHI/NVFCdUNDIVcpPmRyZl5S
Q2BgN1lSWVooSz5pZTA+cEpkXgp6SldfSHslKV5jITY+bHw5UDg/Yz1qKEI1N1lKejg/WHlRekU5
dUdhfWRWMFBUcDMhO3AhU0YpfXQtaT5DPEVkSCsKek1LQVNuViMhJlNXZmR9MGRsalhzeVFmenNA
NmkwK2RxU0hKTH5GN35vdHwkSHdmK0YqMGpDSyp3NVdvRkBROWhOCnpobGslU3toNkM1N0NJMl81
Ujk7ZjM7cC0xPkRVbipVXmVvR2pocW87KlIqJGtWRTAxSj5USlFSc3Y5b3omayEzegp6a1dUOyow
UWUwTTNVQ0x3MEQ9SitmR2ZjRnZKVXxgVWRzS18zNHRUdkh7ZiYtWThXRkdoP15QIVg1O3k9Rlp1
RHMKZmZyV2swJU0oT0duVE1OPGgmcUB5TGREVV8mTWNBZj98MWtNZWpVTm8KCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vi
c29ja2V0L3NyYy90ZXN0L2NlcnQva2V5LnBlbSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3JjL3Rlc3QvY2VydC9rZXkucGVt
CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBmYWU4NTgzMThmMjliYTZiNDYyM2JkNWZi
YzRhMDhjZTczZDkwMzExLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
cHl3ZWJzb2NrZXQvc3JjL3Rlc3QvY2VydC9rZXkucGVtCisrKyAvZGV2L251bGwKQEAgLTEsMTUg
KzAsMCBAQAotLS0tLS1CRUdJTiBSU0EgUFJJVkFURSBLRVktLS0tLQotTUlJQ1hnSUJBQUtCZ1FE
ZUVNNDZXZ1NrSENtVFhDT0NHdklHQWVZcnBBL2RkMGwyaVFPaUlkNEVkY2JpM2ZzMQotSnpxaWtv
NFNZaXMrSC9SNDM3YVV5eWZXeTlZMzExd0k4QWsreWM0a0xRREozMHJnbWVYN0k2bmkxc2s5bHZv
QgotaU41YWliRFBBMmR2QklZZDcySWNWYWtIbWk1bUtuTmJUR0lEK1lLRDIyaS91RXNMaTVNUnVG
Unpld0lEQVFBQgotQW9HQkFJdUN1VjFWY25iN3JtOEN3dGdaUDVYZ21ZOHZTanhUbGRhZmE2WHZh
d0VZVVRQMFM3N3YvMWxsZzFZdgotVUlWK0krUFFnRzlvVm9ZT2wyMkxvaW1IUy9aM2UxZnNvdDV0
RFlzekdlOC9Ha3N0NG9hUmVTb3h2QlVhNldYcAotUVNvN1lGQ2FqdUh0RStXL2d6RitVSGJkenpY
SURqUVozMTRMTkY1dCs0VW5zRVBCQWtFQStnaXJJbXFXb00ydAotM1VSOGY4b2VrRVJ3c21FTWY5
REg1WXBINGN2VW52SStrd2VzQy9yMlU4U2hvKytmeUVNVU5tN2FJWEdxTkxnYQotb2dBTSs0Tlg0
UUpCQU9OZFN4U2F5MjJlZ1RHTm9JaExuZGxqV2t1T3QvOUZXajJrbGYvNFF4RDRibE1KUTVPcQot
UWRPR0FoN25WUWpwUExRNUQ3Q0JWQUtwR00yQ0QrUUpCdHNDUUVQMmt6MzVweFB5bEczdXJjQzJt
ZlF4QmtrVwotWkNWaUJOUDU4R3dKMGJPYXVUT1NCRXdGWFd1THFUdzhhRHd4TDQ5VU5tcWMwTjBm
cGUyZkFlaGozVUVDUVFDbQotRkgvRGpVOEx3N3liZGRqTnRtNlhYUHVZTmFneHozY2JrQjRCM0Zj
aERsZUlVRHdNb1ZGME1XOWJJNS81NG1WMQotUURrMXRVS29ydHh2UVpKYUFENEJBa0VBaEdPSFFx
UGQ2YkJCb0ZCdnBhTHpQSk14d0xLckIrV3RrcS9RbEM3MgotQ2xSaU1uMmc4U0FMaUlMM0JEZ0dY
S2NLRS9XeTdqby9hZi9KQ3pRL2NQcXQvQT09Ci0tLS0tLUVORCBSU0EgUFJJVkFURSBLRVktLS0t
LQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy9weXdlYnNvY2tldC9zcmMvdGVzdC9jZXJ0L3czYy1pbXBvcnQubG9nIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9z
cmMvdGVzdC9jZXJ0L3czYy1pbXBvcnQubG9nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCA3YmQ3MDNkODIxZWE1YmFlZTE1NTYxMWVlODQ3ZjI3MGNiYTI2Zjc1Li4wMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3JjL3Rlc3QvY2VydC93M2Mt
aW1wb3J0LmxvZworKysgL2Rldi9udWxsCkBAIC0xLDIwICswLDAgQEAKLVRoZSB0ZXN0cyBpbiB0
aGlzIGRpcmVjdG9yeSB3ZXJlIGltcG9ydGVkIGZyb20gdGhlIFczQyByZXBvc2l0b3J5LgotRG8g
Tk9UIG1vZGlmeSB0aGVzZSB0ZXN0cyBkaXJlY3RseSBpbiBXZWJLaXQuCi1JbnN0ZWFkLCBjcmVh
dGUgYSBwdWxsIHJlcXVlc3Qgb24gdGhlIFdQVCBnaXRodWI6Ci0JaHR0cHM6Ly9naXRodWIuY29t
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMKLQotVGhlbiBydW4gdGhlIFRvb2xzL1NjcmlwdHMvaW1w
b3J0LXczYy10ZXN0cyBpbiBXZWJLaXQgdG8gcmVpbXBvcnQKLQotRG8gTk9UIG1vZGlmeSBvciBy
ZW1vdmUgdGhpcyBmaWxlLgotCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLVByb3BlcnRpZXMgcmVxdWlyaW5n
IHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLVByb3BlcnR5IHZhbHVlcyByZXF1aXJpbmcgdmVuZG9y
IHByZWZpeGVzOgotTm9uZQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1MaXN0IG9mIGZpbGVzOgotL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQv
c3JjL3Rlc3QvY2VydC9jYWNlcnQucGVtCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9zcmMvdGVzdC9jZXJ0L2NlcnQucGVtCi0v
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNv
Y2tldC9zcmMvdGVzdC9jZXJ0L2NsaWVudF9jZXJ0LnAxMgotL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3JjL3Rlc3QvY2VydC9r
ZXkucGVtCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3NyYy90ZXN0L2NsaWVudF9mb3JfdGVzdGluZy5weSBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJz
b2NrZXQvc3JjL3Rlc3QvY2xpZW50X2Zvcl90ZXN0aW5nLnB5CmRlbGV0ZWQgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCBjN2Y4MDVlZTk0ZTU0OTQ2OWVkODcwZGFlN2UwY2NmMjAyNmJlYWI3Li4wMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3JjL3Rlc3Qv
Y2xpZW50X2Zvcl90ZXN0aW5nLnB5CisrKyAvZGV2L251bGwKQEAgLTEsMTEwMCArMCwwIEBACi0j
IS91c3IvYmluL2VudiBweXRob24KLSMKLSMgQ29weXJpZ2h0IDIwMTIsIEdvb2dsZSBJbmMuCi0j
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0jCi0jIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotIyBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCi0j
IG1ldDoKLSMKLSMgICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSMgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotIyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCi0jIGNvcHlyaWdodCBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIK
LSMgaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZQotIyBkaXN0cmlidXRpb24uCi0jICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29v
Z2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKLSMgY29udHJpYnV0b3JzIG1heSBiZSB1c2Vk
IHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KLSMgdGhpcyBzb2Z0
d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLSMKLSMgVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRS
SUJVVE9SUwotIyAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVAotIyBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKLSMgQSBQQVJUSUNVTEFSIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKLSMgT1dO
RVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsCi0jIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QKLSMgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCi0jIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQotIyBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUCi0jIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotCi0KLSIiIldlYlNvY2tl
dCBjbGllbnQgdXRpbGl0eSBmb3IgdGVzdGluZy4KLQotVGhpcyBtb2R1bGUgY29udGFpbnMgaGVs
cGVyIG1ldGhvZHMgZm9yIHBlcmZvcm1pbmcgaGFuZHNoYWtlLCBmcmFtZQotc2VuZGluZy9yZWNl
aXZpbmcgYXMgYSBXZWJTb2NrZXQgY2xpZW50LgotCi1UaGlzIGlzIGNvZGUgZm9yIHRlc3Rpbmcg
bW9kX3B5d2Vic29ja2V0LiBLZWVwIHRoaXMgY29kZSBpbmRlcGVuZGVudCBmcm9tCi1tb2RfcHl3
ZWJzb2NrZXQuIERvbid0IGltcG9ydCBlLmcuIFN0cmVhbSBjbGFzcyBmb3IgZ2VuZXJhdGluZyBm
cmFtZSBmb3IKLXRlc3RpbmcuIFVzaW5nIHV0aWwuaGV4aWZ5LCBldGMuIHRoYXQgYXJlIG5vdCBy
ZWxhdGVkIHRvIHByb3RvY29sIHByb2Nlc3NpbmcKLWlzIGFsbG93ZWQuCi0KLU5vdGU6Ci1UaGlz
IGNvZGUgaXMgZmFyIGZyb20gcm9idXN0LCBlLmcuLCB3ZSBjdXQgY29ybmVycyBpbiBoYW5kc2hh
a2UuCi0iIiIKLQotCi1pbXBvcnQgYmFzZTY0Ci1pbXBvcnQgZXJybm8KLWltcG9ydCBsb2dnaW5n
Ci1pbXBvcnQgb3MKLWltcG9ydCByYW5kb20KLWltcG9ydCByZQotaW1wb3J0IHNvY2tldAotaW1w
b3J0IHN0cnVjdAotaW1wb3J0IHRpbWUKLQotZnJvbSBtb2RfcHl3ZWJzb2NrZXQgaW1wb3J0IGNv
bW1vbgotZnJvbSBtb2RfcHl3ZWJzb2NrZXQgaW1wb3J0IHV0aWwKLQotCi1ERUZBVUxUX1BPUlQg
PSA4MAotREVGQVVMVF9TRUNVUkVfUE9SVCA9IDQ0MwotCi0jIE9wY29kZXMgaW50cm9kdWNlZCBp
biBJRVRGIEh5QmkgMDEgZm9yIHRoZSBuZXcgZnJhbWluZyBmb3JtYXQKLU9QQ09ERV9DT05USU5V
QVRJT04gPSAweDAKLU9QQ09ERV9DTE9TRSA9IDB4OAotT1BDT0RFX1BJTkcgPSAweDkKLU9QQ09E
RV9QT05HID0gMHhhCi1PUENPREVfVEVYVCA9IDB4MQotT1BDT0RFX0JJTkFSWSA9IDB4MgotCi0j
IFN0cmluZ3MgdXNlZCBmb3IgaGFuZHNoYWtlCi1fVVBHUkFERV9IRUFERVIgPSAnVXBncmFkZTog
d2Vic29ja2V0XHJcbicKLV9VUEdSQURFX0hFQURFUl9ISVhJRTc1ID0gJ1VwZ3JhZGU6IFdlYlNv
Y2tldFxyXG4nCi1fQ09OTkVDVElPTl9IRUFERVIgPSAnQ29ubmVjdGlvbjogVXBncmFkZVxyXG4n
Ci0KLVdFQlNPQ0tFVF9BQ0NFUFRfVVVJRCA9ICcyNThFQUZBNS1FOTE0LTQ3REEtOTVDQS1DNUFC
MERDODVCMTEnCi0KLSMgU3RhdHVzIGNvZGVzCi1TVEFUVVNfTk9STUFMX0NMT1NVUkUgPSAxMDAw
Ci1TVEFUVVNfR09JTkdfQVdBWSA9IDEwMDEKLVNUQVRVU19QUk9UT0NPTF9FUlJPUiA9IDEwMDIK
LVNUQVRVU19VTlNVUFBPUlRFRF9EQVRBID0gMTAwMwotU1RBVFVTX05PX1NUQVRVU19SRUNFSVZF
RCA9IDEwMDUKLVNUQVRVU19BQk5PUk1BTF9DTE9TVVJFID0gMTAwNgotU1RBVFVTX0lOVkFMSURf
RlJBTUVfUEFZTE9BRF9EQVRBID0gMTAwNwotU1RBVFVTX1BPTElDWV9WSU9MQVRJT04gPSAxMDA4
Ci1TVEFUVVNfTUVTU0FHRV9UT09fQklHID0gMTAwOQotU1RBVFVTX01BTkRBVE9SWV9FWFQgPSAx
MDEwCi1TVEFUVVNfSU5URVJOQUxfRU5EUE9JTlRfRVJST1IgPSAxMDExCi1TVEFUVVNfVExTX0hB
TkRTSEFLRSA9IDEwMTUKLQotIyBFeHRlbnNpb24gdG9rZW5zCi1fREVGTEFURV9GUkFNRV9FWFRF
TlNJT04gPSAnZGVmbGF0ZS1mcmFtZScKLSMgVE9ETyhiYXNoaSk6IFVwZGF0ZSBhZnRlciBtdXgg
aW1wbGVtZW50YXRpb24gZmluaXNoZWQuCi1fTVVYX0VYVEVOU0lPTiA9ICdtdXhfRE9fTk9UX1VT
RScKLV9QRVJNRVNTQUdFX0RFRkxBVEVfRVhURU5TSU9OID0gJ3Blcm1lc3NhZ2UtZGVmbGF0ZScK
LQotZGVmIF9tZXRob2RfbGluZShyZXNvdXJjZSk6Ci0gICAgcmV0dXJuICdHRVQgJXMgSFRUUC8x
LjFcclxuJyAlIHJlc291cmNlCi0KLQotZGVmIF9zZWNfb3JpZ2luX2hlYWRlcihvcmlnaW4pOgot
ICAgIHJldHVybiAnU2VjLVdlYlNvY2tldC1PcmlnaW46ICVzXHJcbicgJSBvcmlnaW4ubG93ZXIo
KQotCi0KLWRlZiBfb3JpZ2luX2hlYWRlcihvcmlnaW4pOgotICAgICMgNC4xIDEzLiBjb25jYXRl
bmF0aW9uIG9mIHRoZSBzdHJpbmcgIk9yaWdpbjoiLCBhIFUrMDAyMCBTUEFDRSBjaGFyYWN0ZXIs
Ci0gICAgIyBhbmQgdGhlIC9vcmlnaW4vIHZhbHVlLCBjb252ZXJ0ZWQgdG8gQVNDSUkgbG93ZXJj
YXNlLCB0byAvZmllbGRzLy4KLSAgICByZXR1cm4gJ09yaWdpbjogJXNcclxuJyAlIG9yaWdpbi5s
b3dlcigpCi0KLQotZGVmIF9mb3JtYXRfaG9zdF9oZWFkZXIoaG9zdCwgcG9ydCwgc2VjdXJlKToK
LSAgICAjIDQuMSA5LiBMZXQgL2hvc3Rwb3J0LyBiZSBhbiBlbXB0eSBzdHJpbmcuCi0gICAgIyA0
LjEgMTAuIEFwcGVuZCB0aGUgL2hvc3QvIHZhbHVlLCBjb252ZXJ0ZWQgdG8gQVNDSUkgbG93ZXJj
YXNlLCB0bwotICAgICMgL2hvc3Rwb3J0LwotICAgIGhvc3Rwb3J0ID0gaG9zdC5sb3dlcigpCi0g
ICAgIyA0LjEgMTEuIElmIC9zZWN1cmUvIGlzIGZhbHNlLCBhbmQgL3BvcnQvIGlzIG5vdCA4MCwg
b3IgaWYgL3NlY3VyZS8KLSAgICAjIGlzIHRydWUsIGFuZCAvcG9ydC8gaXMgbm90IDQ0MywgdGhl
biBhcHBlbmQgYSBVKzAwM0EgQ09MT04gY2hhcmFjdGVyCi0gICAgIyAoOikgZm9sbG93ZWQgYnkg
dGhlIHZhbHVlIG9mIC9wb3J0LywgZXhwcmVzc2VkIGFzIGEgYmFzZS10ZW4gaW50ZWdlciwKLSAg
ICAjIHRvIC9ob3N0cG9ydC8KLSAgICBpZiAoKG5vdCBzZWN1cmUgYW5kIHBvcnQgIT0gREVGQVVM
VF9QT1JUKSBvcgotICAgICAgICAoc2VjdXJlIGFuZCBwb3J0ICE9IERFRkFVTFRfU0VDVVJFX1BP
UlQpKToKLSAgICAgICAgaG9zdHBvcnQgKz0gJzonICsgc3RyKHBvcnQpCi0gICAgIyA0LjEgMTIu
IGNvbmNhdGVuYXRpb24gb2YgdGhlIHN0cmluZyAiSG9zdDoiLCBhIFUrMDAyMCBTUEFDRQotICAg
ICMgY2hhcmFjdGVyLCBhbmQgL2hvc3Rwb3J0LywgdG8gL2ZpZWxkcy8uCi0gICAgcmV0dXJuICdI
b3N0OiAlc1xyXG4nICUgaG9zdHBvcnQKLQotCi0jIFRPRE8odHlvc2hpbm8pOiBEZWZpbmUgYSBi
YXNlIGNsYXNzIGFuZCBtb3ZlIHRoZXNlIHNoYXJlZCBtZXRob2RzIHRvIHRoYXQuCi0KLQotZGVm
IHJlY2VpdmVfYnl0ZXMoc29ja2V0LCBsZW5ndGgpOgotICAgIHJlY2VpdmVkX2J5dGVzID0gW10K
LSAgICByZW1haW5pbmcgPSBsZW5ndGgKLSAgICB3aGlsZSByZW1haW5pbmcgPiAwOgotICAgICAg
ICBuZXdfcmVjZWl2ZWRfYnl0ZXMgPSBzb2NrZXQucmVjdihyZW1haW5pbmcpCi0gICAgICAgIGlm
IG5vdCBuZXdfcmVjZWl2ZWRfYnl0ZXM6Ci0gICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oCi0g
ICAgICAgICAgICAgICAgJ0Nvbm5lY3Rpb24gY2xvc2VkIGJlZm9yZSByZWNlaXZpbmcgcmVxdWVz
dGVkIGxlbmd0aCAnCi0gICAgICAgICAgICAgICAgJyhyZXF1ZXN0ZWQgJWQgYnl0ZXMgYnV0IHJl
Y2VpdmVkIG9ubHkgJWQgYnl0ZXMpJyAlCi0gICAgICAgICAgICAgICAgKGxlbmd0aCwgbGVuZ3Ro
IC0gcmVtYWluaW5nKSkKLSAgICAgICAgcmVjZWl2ZWRfYnl0ZXMuYXBwZW5kKG5ld19yZWNlaXZl
ZF9ieXRlcykKLSAgICAgICAgcmVtYWluaW5nIC09IGxlbihuZXdfcmVjZWl2ZWRfYnl0ZXMpCi0g
ICAgcmV0dXJuICcnLmpvaW4ocmVjZWl2ZWRfYnl0ZXMpCi0KLQotIyBUT0RPKHR5b3NoaW5vKTog
Tm93IHRoZSBXZWJTb2NrZXRIYW5kc2hha2UgY2xhc3MgZGl2ZXJ0cyB0aGVzZSBtZXRob2RzLiBX
ZQotIyBzaG91bGQgbW92ZSB0byBIVFRQIHBhcnNlciBhcyBzcGVjaWZpZWQgaW4gUkZDIDY0NTUu
IEZvciBIeUJpIDAwIGFuZAotIyBIaXhpZSA3NSwgcGFjayB0aGVzZSBtZXRob2RzIGFzIHNvbWUg
cGFyc2VyIGNsYXNzLgotCi0KLWRlZiBfcmVhZF9maWVsZHMoc29ja2V0KToKLSAgICAjIDQuMSAz
Mi4gbGV0IC9maWVsZHMvIGJlIGEgbGlzdCBvZiBuYW1lLXZhbHVlIHBhaXJzLCBpbml0aWFsbHkg
ZW1wdHkuCi0gICAgZmllbGRzID0ge30KLSAgICB3aGlsZSBUcnVlOgotICAgICAgICAjIDQuMSAz
My4gbGV0IC9uYW1lLyBhbmQgL3ZhbHVlLyBiZSBlbXB0eSBieXRlIGFycmF5cwotICAgICAgICBu
YW1lID0gJycKLSAgICAgICAgdmFsdWUgPSAnJwotICAgICAgICAjIDQuMSAzNC4gcmVhZCAvbmFt
ZS8KLSAgICAgICAgbmFtZSA9IF9yZWFkX25hbWUoc29ja2V0KQotICAgICAgICBpZiBuYW1lIGlz
IE5vbmU6Ci0gICAgICAgICAgICBicmVhawotICAgICAgICAjIDQuMSAzNS4gcmVhZCBzcGFjZXMK
LSAgICAgICAgIyBUT0RPKHR5b3NoaW5vKTogU2tpcCBvbmx5IG9uZSBzcGFjZSBhcyBkZXNjcmli
ZWQgaW4gdGhlIHNwZWMuCi0gICAgICAgIGNoID0gX3NraXBfc3BhY2VzKHNvY2tldCkKLSAgICAg
ICAgIyA0LjEgMzYuIHJlYWQgL3ZhbHVlLwotICAgICAgICB2YWx1ZSA9IF9yZWFkX3ZhbHVlKHNv
Y2tldCwgY2gpCi0gICAgICAgICMgNC4xIDM3LiByZWFkIGEgYnl0ZSBmcm9tIHRoZSBzZXJ2ZXIK
LSAgICAgICAgY2ggPSByZWNlaXZlX2J5dGVzKHNvY2tldCwgMSkKLSAgICAgICAgaWYgY2ggIT0g
J1xuJzogICMgMHgwQQotICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKAotICAgICAgICAgICAg
ICAgICdFeHBlY3RlZCBMRiBidXQgZm91bmQgJXIgd2hpbGUgcmVhZGluZyB2YWx1ZSAlciBmb3Ig
aGVhZGVyICcKLSAgICAgICAgICAgICAgICAnJXInICUgKGNoLCBuYW1lLCB2YWx1ZSkpCi0gICAg
ICAgICMgNC4xIDM4LiBhcHBlbmQgYW4gZW50cnkgdG8gdGhlIC9maWVsZHMvIGxpc3QgdGhhdCBo
YXMgdGhlIG5hbWUKLSAgICAgICAgIyBnaXZlbiBieSB0aGUgc3RyaW5nIG9idGFpbmVkIGJ5IGlu
dGVycHJldGluZyB0aGUgL25hbWUvIGJ5dGUKLSAgICAgICAgIyBhcnJheSBhcyBhIFVURi04IHN0
cmVhbSBhbmQgdGhlIHZhbHVlIGdpdmVuIGJ5IHRoZSBzdHJpbmcKLSAgICAgICAgIyBvYnRhaW5l
ZCBieSBpbnRlcnByZXRpbmcgdGhlIC92YWx1ZS8gYnl0ZSBhcnJheSBhcyBhIFVURi04IGJ5dGUK
LSAgICAgICAgIyBzdHJlYW0uCi0gICAgICAgIGZpZWxkcy5zZXRkZWZhdWx0KG5hbWUsIFtdKS5h
cHBlbmQodmFsdWUpCi0gICAgICAgICMgNC4xIDM5LiByZXR1cm4gdG8gdGhlICJGaWVsZCIgc3Rl
cCBhYm92ZQotICAgIHJldHVybiBmaWVsZHMKLQotCi1kZWYgX3JlYWRfbmFtZShzb2NrZXQpOgot
ICAgICMgNC4xIDMzLiBsZXQgL25hbWUvIGJlIGVtcHR5IGJ5dGUgYXJyYXlzCi0gICAgbmFtZSA9
ICcnCi0gICAgd2hpbGUgVHJ1ZToKLSAgICAgICAgIyA0LjEgMzQuIHJlYWQgYSBieXRlIGZyb20g
dGhlIHNlcnZlcgotICAgICAgICBjaCA9IHJlY2VpdmVfYnl0ZXMoc29ja2V0LCAxKQotICAgICAg
ICBpZiBjaCA9PSAnXHInOiAgIyAweDBECi0gICAgICAgICAgICByZXR1cm4gTm9uZQotICAgICAg
ICBlbGlmIGNoID09ICdcbic6ICAjIDB4MEEKLSAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigK
LSAgICAgICAgICAgICAgICAnVW5leHBlY3RlZCBMRiB3aGVuIHJlYWRpbmcgaGVhZGVyIG5hbWUg
JXInICUgbmFtZSkKLSAgICAgICAgZWxpZiBjaCA9PSAnOic6ICAjIDB4M0EKLSAgICAgICAgICAg
IHJldHVybiBuYW1lCi0gICAgICAgIGVsaWYgY2ggPj0gJ0EnIGFuZCBjaCA8PSAnWic6ICAjIHJh
bmdlIDB4MzEgdG8gMHg1QQotICAgICAgICAgICAgY2ggPSBjaHIob3JkKGNoKSArIDB4MjApCi0g
ICAgICAgICAgICBuYW1lICs9IGNoCi0gICAgICAgIGVsc2U6Ci0gICAgICAgICAgICBuYW1lICs9
IGNoCi0KLQotZGVmIF9za2lwX3NwYWNlcyhzb2NrZXQpOgotICAgICMgNC4xIDM1LiByZWFkIGEg
Ynl0ZSBmcm9tIHRoZSBzZXJ2ZXIKLSAgICB3aGlsZSBUcnVlOgotICAgICAgICBjaCA9IHJlY2Vp
dmVfYnl0ZXMoc29ja2V0LCAxKQotICAgICAgICBpZiBjaCA9PSAnICc6ICAjIDB4MjAKLSAgICAg
ICAgICAgIGNvbnRpbnVlCi0gICAgICAgIHJldHVybiBjaAotCi0KLWRlZiBfcmVhZF92YWx1ZShz
b2NrZXQsIGNoKToKLSAgICAjIDQuMSAzMy4gbGV0IC92YWx1ZS8gYmUgZW1wdHkgYnl0ZSBhcnJh
eXMKLSAgICB2YWx1ZSA9ICcnCi0gICAgIyA0LjEgMzYuIHJlYWQgYSBieXRlIGZyb20gc2VydmVy
LgotICAgIHdoaWxlIFRydWU6Ci0gICAgICAgIGlmIGNoID09ICdccic6ICAjIDB4MEQKLSAgICAg
ICAgICAgIHJldHVybiB2YWx1ZQotICAgICAgICBlbGlmIGNoID09ICdcbic6ICAjIDB4MEEKLSAg
ICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigKLSAgICAgICAgICAgICAgICAnVW5leHBlY3RlZCBM
RiB3aGVuIHJlYWRpbmcgaGVhZGVyIHZhbHVlICVyJyAlIHZhbHVlKQotICAgICAgICBlbHNlOgot
ICAgICAgICAgICAgdmFsdWUgKz0gY2gKLSAgICAgICAgY2ggPSByZWNlaXZlX2J5dGVzKHNvY2tl
dCwgMSkKLQotCi1kZWYgcmVhZF9mcmFtZV9oZWFkZXIoc29ja2V0KToKLSAgICByZWNlaXZlZCA9
IHJlY2VpdmVfYnl0ZXMoc29ja2V0LCAyKQotCi0gICAgZmlyc3RfYnl0ZSA9IG9yZChyZWNlaXZl
ZFswXSkKLSAgICBmaW4gPSAoZmlyc3RfYnl0ZSA+PiA3KSAmIDEKLSAgICByc3YxID0gKGZpcnN0
X2J5dGUgPj4gNikgJiAxCi0gICAgcnN2MiA9IChmaXJzdF9ieXRlID4+IDUpICYgMQotICAgIHJz
djMgPSAoZmlyc3RfYnl0ZSA+PiA0KSAmIDEKLSAgICBvcGNvZGUgPSBmaXJzdF9ieXRlICYgMHhm
Ci0KLSAgICBzZWNvbmRfYnl0ZSA9IG9yZChyZWNlaXZlZFsxXSkKLSAgICBtYXNrID0gKHNlY29u
ZF9ieXRlID4+IDcpICYgMQotICAgIHBheWxvYWRfbGVuZ3RoID0gc2Vjb25kX2J5dGUgJiAweDdm
Ci0KLSAgICBpZiBtYXNrICE9IDA6Ci0gICAgICAgIHJhaXNlIEV4Y2VwdGlvbigKLSAgICAgICAg
ICAgICdNYXNrIGJpdCBtdXN0IGJlIDAgZm9yIGZyYW1lcyBjb21pbmcgZnJvbSBzZXJ2ZXInKQot
Ci0gICAgaWYgcGF5bG9hZF9sZW5ndGggPT0gMTI3OgotICAgICAgICBleHRlbmRlZF9wYXlsb2Fk
X2xlbmd0aCA9IHJlY2VpdmVfYnl0ZXMoc29ja2V0LCA4KQotICAgICAgICBwYXlsb2FkX2xlbmd0
aCA9IHN0cnVjdC51bnBhY2soCi0gICAgICAgICAgICAnIVEnLCBleHRlbmRlZF9wYXlsb2FkX2xl
bmd0aClbMF0KLSAgICAgICAgaWYgcGF5bG9hZF9sZW5ndGggPiAweDdGRkZGRkZGRkZGRkZGRkY6
Ci0gICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oJ0V4dGVuZGVkIHBheWxvYWQgbGVuZ3RoID49
IDJeNjMnKQotICAgIGVsaWYgcGF5bG9hZF9sZW5ndGggPT0gMTI2OgotICAgICAgICBleHRlbmRl
ZF9wYXlsb2FkX2xlbmd0aCA9IHJlY2VpdmVfYnl0ZXMoc29ja2V0LCAyKQotICAgICAgICBwYXls
b2FkX2xlbmd0aCA9IHN0cnVjdC51bnBhY2soCi0gICAgICAgICAgICAnIUgnLCBleHRlbmRlZF9w
YXlsb2FkX2xlbmd0aClbMF0KLQotICAgIHJldHVybiBmaW4sIHJzdjEsIHJzdjIsIHJzdjMsIG9w
Y29kZSwgcGF5bG9hZF9sZW5ndGgKLQotCi1jbGFzcyBfVExTU29ja2V0KG9iamVjdCk6Ci0gICAg
IiIiV3JhcHBlciBmb3IgYSBUTFMgY29ubmVjdGlvbi4iIiIKLQotICAgIGRlZiBfX2luaXRfXyhz
ZWxmLCByYXdfc29ja2V0KToKLSAgICAgICAgc2VsZi5fc3NsID0gc29ja2V0LnNzbChyYXdfc29j
a2V0KQotCi0gICAgZGVmIHNlbmQoc2VsZiwgYnl0ZXMpOgotICAgICAgICByZXR1cm4gc2VsZi5f
c3NsLndyaXRlKGJ5dGVzKQotCi0gICAgZGVmIHJlY3Yoc2VsZiwgc2l6ZT0tMSk6Ci0gICAgICAg
IHJldHVybiBzZWxmLl9zc2wucmVhZChzaXplKQotCi0gICAgZGVmIGNsb3NlKHNlbGYpOgotICAg
ICAgICAjIE5vdGhpbmcgdG8gZG8uCi0gICAgICAgIHBhc3MKLQotCi1jbGFzcyBIdHRwU3RhdHVz
RXhjZXB0aW9uKEV4Y2VwdGlvbik6Ci0gICAgIiIiVGhpcyBleGNlcHRpb24gd2lsbCBiZSByYWlz
ZWQgd2hlbiB1bmV4cGVjdGVkIGh0dHAgc3RhdHVzIGNvZGUgd2FzCi0gICAgcmVjZWl2ZWQgYXMg
YSByZXN1bHQgb2YgaGFuZHNoYWtlLgotICAgICIiIgotCi0gICAgZGVmIF9faW5pdF9fKHNlbGYs
IG5hbWUsIHN0YXR1cyk6Ci0gICAgICAgIHN1cGVyKEh0dHBTdGF0dXNFeGNlcHRpb24sIHNlbGYp
Ll9faW5pdF9fKG5hbWUpCi0gICAgICAgIHNlbGYuc3RhdHVzID0gc3RhdHVzCi0KLQotY2xhc3Mg
V2ViU29ja2V0SGFuZHNoYWtlKG9iamVjdCk6Ci0gICAgIiIiT3BlbmluZyBoYW5kc2hha2UgcHJv
Y2Vzc29yIGZvciB0aGUgV2ViU29ja2V0IHByb3RvY29sIChSRkMgNjQ1NSkuIiIiCi0KLSAgICBk
ZWYgX19pbml0X18oc2VsZiwgb3B0aW9ucyk6Ci0gICAgICAgIHNlbGYuX2xvZ2dlciA9IHV0aWwu
Z2V0X2NsYXNzX2xvZ2dlcihzZWxmKQotCi0gICAgICAgIHNlbGYuX29wdGlvbnMgPSBvcHRpb25z
Ci0KLSAgICBkZWYgaGFuZHNoYWtlKHNlbGYsIHNvY2tldCk6Ci0gICAgICAgICIiIkhhbmRzaGFr
ZSBXZWJTb2NrZXQuCi0KLSAgICAgICAgUmFpc2VzOgotICAgICAgICAgICAgRXhjZXB0aW9uOiBo
YW5kc2hha2UgZmFpbGVkLgotICAgICAgICAiIiIKLQotICAgICAgICBzZWxmLl9zb2NrZXQgPSBz
b2NrZXQKLQotICAgICAgICByZXF1ZXN0X2xpbmUgPSBfbWV0aG9kX2xpbmUoc2VsZi5fb3B0aW9u
cy5yZXNvdXJjZSkKLSAgICAgICAgc2VsZi5fbG9nZ2VyLmRlYnVnKCdPcGVuaW5nIGhhbmRzaGFr
ZSBSZXF1ZXN0LUxpbmU6ICVyJywgcmVxdWVzdF9saW5lKQotICAgICAgICBzZWxmLl9zb2NrZXQu
c2VuZGFsbChyZXF1ZXN0X2xpbmUpCi0KLSAgICAgICAgZmllbGRzID0gW10KLSAgICAgICAgZmll
bGRzLmFwcGVuZChfVVBHUkFERV9IRUFERVIpCi0gICAgICAgIGZpZWxkcy5hcHBlbmQoX0NPTk5F
Q1RJT05fSEVBREVSKQotCi0gICAgICAgIGZpZWxkcy5hcHBlbmQoX2Zvcm1hdF9ob3N0X2hlYWRl
cigKLSAgICAgICAgICAgIHNlbGYuX29wdGlvbnMuc2VydmVyX2hvc3QsCi0gICAgICAgICAgICBz
ZWxmLl9vcHRpb25zLnNlcnZlcl9wb3J0LAotICAgICAgICAgICAgc2VsZi5fb3B0aW9ucy51c2Vf
dGxzKSkKLQotICAgICAgICBpZiBzZWxmLl9vcHRpb25zLnZlcnNpb24gaXMgODoKLSAgICAgICAg
ICAgIGZpZWxkcy5hcHBlbmQoX3NlY19vcmlnaW5faGVhZGVyKHNlbGYuX29wdGlvbnMub3JpZ2lu
KSkKLSAgICAgICAgZWxzZToKLSAgICAgICAgICAgIGZpZWxkcy5hcHBlbmQoX29yaWdpbl9oZWFk
ZXIoc2VsZi5fb3B0aW9ucy5vcmlnaW4pKQotCi0gICAgICAgIG9yaWdpbmFsX2tleSA9IG9zLnVy
YW5kb20oMTYpCi0gICAgICAgIGtleSA9IGJhc2U2NC5iNjRlbmNvZGUob3JpZ2luYWxfa2V5KQot
ICAgICAgICBzZWxmLl9sb2dnZXIuZGVidWcoCi0gICAgICAgICAgICAnU2VjLVdlYlNvY2tldC1L
ZXk6ICVzICglcyknLCBrZXksIHV0aWwuaGV4aWZ5KG9yaWdpbmFsX2tleSkpCi0gICAgICAgIGZp
ZWxkcy5hcHBlbmQoJ1NlYy1XZWJTb2NrZXQtS2V5OiAlc1xyXG4nICUga2V5KQotCi0gICAgICAg
IGZpZWxkcy5hcHBlbmQoJ1NlYy1XZWJTb2NrZXQtVmVyc2lvbjogJWRcclxuJyAlIHNlbGYuX29w
dGlvbnMudmVyc2lvbikKLQotICAgICAgICAjIFNldHRpbmcgdXAgZXh0ZW5zaW9ucy4KLSAgICAg
ICAgaWYgbGVuKHNlbGYuX29wdGlvbnMuZXh0ZW5zaW9ucykgPiAwOgotICAgICAgICAgICAgZmll
bGRzLmFwcGVuZCgnU2VjLVdlYlNvY2tldC1FeHRlbnNpb25zOiAlc1xyXG4nICUKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgJywgJy5qb2luKHNlbGYuX29wdGlvbnMuZXh0ZW5zaW9ucykpCi0K
LSAgICAgICAgc2VsZi5fbG9nZ2VyLmRlYnVnKCdPcGVuaW5nIGhhbmRzaGFrZSByZXF1ZXN0IGhl
YWRlcnM6ICVyJywgZmllbGRzKQotCi0gICAgICAgIGZvciBmaWVsZCBpbiBmaWVsZHM6Ci0gICAg
ICAgICAgICBzZWxmLl9zb2NrZXQuc2VuZGFsbChmaWVsZCkKLSAgICAgICAgc2VsZi5fc29ja2V0
LnNlbmRhbGwoJ1xyXG4nKQotCi0gICAgICAgIHNlbGYuX2xvZ2dlci5pbmZvKCdTZW50IG9wZW5p
bmcgaGFuZHNoYWtlIHJlcXVlc3QnKQotCi0gICAgICAgIGZpZWxkID0gJycKLSAgICAgICAgd2hp
bGUgVHJ1ZToKLSAgICAgICAgICAgIGNoID0gcmVjZWl2ZV9ieXRlcyhzZWxmLl9zb2NrZXQsIDEp
Ci0gICAgICAgICAgICBmaWVsZCArPSBjaAotICAgICAgICAgICAgaWYgY2ggPT0gJ1xuJzoKLSAg
ICAgICAgICAgICAgICBicmVhawotCi0gICAgICAgIHNlbGYuX2xvZ2dlci5kZWJ1ZygnT3Blbmlu
ZyBoYW5kc2hha2UgUmVzcG9uc2UtTGluZTogJXInLCBmaWVsZCkKLQotICAgICAgICBpZiBsZW4o
ZmllbGQpIDwgNyBvciBub3QgZmllbGQuZW5kc3dpdGgoJ1xyXG4nKToKLSAgICAgICAgICAgIHJh
aXNlIEV4Y2VwdGlvbignV3Jvbmcgc3RhdHVzIGxpbmU6ICVyJyAlIGZpZWxkKQotICAgICAgICBt
ID0gcmUubWF0Y2goJ1teIF0qIChbXiBdKikgLionLCBmaWVsZCkKLSAgICAgICAgaWYgbSBpcyBO
b25lOgotICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKAotICAgICAgICAgICAgICAgICdObyBI
VFRQIHN0YXR1cyBjb2RlIGZvdW5kIGluIHN0YXR1cyBsaW5lOiAlcicgJSBmaWVsZCkKLSAgICAg
ICAgY29kZSA9IG0uZ3JvdXAoMSkKLSAgICAgICAgaWYgbm90IHJlLm1hdGNoKCdbMC05XVswLTld
WzAtOV0nLCBjb2RlKToKLSAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigKLSAgICAgICAgICAg
ICAgICAnSFRUUCBzdGF0dXMgY29kZSAlciBpcyBub3QgdGhyZWUgZGlnaXQgaW4gc3RhdHVzIGxp
bmU6ICVyJyAlCi0gICAgICAgICAgICAgICAgKGNvZGUsIGZpZWxkKSkKLSAgICAgICAgaWYgY29k
ZSAhPSAnMTAxJzoKLSAgICAgICAgICAgIHJhaXNlIEh0dHBTdGF0dXNFeGNlcHRpb24oCi0gICAg
ICAgICAgICAgICAgJ0V4cGVjdGVkIEhUVFAgc3RhdHVzIGNvZGUgMTAxIGJ1dCBmb3VuZCAlciBp
biBzdGF0dXMgbGluZTogJwotICAgICAgICAgICAgICAgICclcicgJSAoY29kZSwgZmllbGQpLCBp
bnQoY29kZSkpCi0gICAgICAgIGZpZWxkcyA9IF9yZWFkX2ZpZWxkcyhzZWxmLl9zb2NrZXQpCi0g
ICAgICAgIGNoID0gcmVjZWl2ZV9ieXRlcyhzZWxmLl9zb2NrZXQsIDEpCi0gICAgICAgIGlmIGNo
ICE9ICdcbic6ICAjIDB4MEEKLSAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbignRXhwZWN0ZWQg
TEYgYnV0IGZvdW5kOiAlcicgJSBjaCkKLQotICAgICAgICBzZWxmLl9sb2dnZXIuZGVidWcoJ09w
ZW5pbmcgaGFuZHNoYWtlIHJlc3BvbnNlIGhlYWRlcnM6ICVyJywgZmllbGRzKQotCi0gICAgICAg
ICMgQ2hlY2sgL2ZpZWxkcy8KLSAgICAgICAgaWYgbGVuKGZpZWxkc1sndXBncmFkZSddKSAhPSAx
OgotICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKAotICAgICAgICAgICAgICAgICdNdWx0aXBs
ZSBVcGdyYWRlIGhlYWRlcnMgZm91bmQ6ICVzJyAlIGZpZWxkc1sndXBncmFkZSddKQotICAgICAg
ICBpZiBsZW4oZmllbGRzWydjb25uZWN0aW9uJ10pICE9IDE6Ci0gICAgICAgICAgICByYWlzZSBF
eGNlcHRpb24oCi0gICAgICAgICAgICAgICAgJ011bHRpcGxlIENvbm5lY3Rpb24gaGVhZGVycyBm
b3VuZDogJXMnICUgZmllbGRzWydjb25uZWN0aW9uJ10pCi0gICAgICAgIGlmIGZpZWxkc1sndXBn
cmFkZSddWzBdICE9ICd3ZWJzb2NrZXQnOgotICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKAot
ICAgICAgICAgICAgICAgICdVbmV4cGVjdGVkIFVwZ3JhZGUgaGVhZGVyIHZhbHVlOiAlcycgJSBm
aWVsZHNbJ3VwZ3JhZGUnXVswXSkKLSAgICAgICAgaWYgZmllbGRzWydjb25uZWN0aW9uJ11bMF0u
bG93ZXIoKSAhPSAndXBncmFkZSc6Ci0gICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oCi0gICAg
ICAgICAgICAgICAgJ1VuZXhwZWN0ZWQgQ29ubmVjdGlvbiBoZWFkZXIgdmFsdWU6ICVzJyAlCi0g
ICAgICAgICAgICAgICAgZmllbGRzWydjb25uZWN0aW9uJ11bMF0pCi0KLSAgICAgICAgaWYgbGVu
KGZpZWxkc1snc2VjLXdlYnNvY2tldC1hY2NlcHQnXSkgIT0gMToKLSAgICAgICAgICAgIHJhaXNl
IEV4Y2VwdGlvbigKLSAgICAgICAgICAgICAgICAnTXVsdGlwbGUgU2VjLVdlYlNvY2tldC1BY2Nl
cHQgaGVhZGVycyBmb3VuZDogJXMnICUKLSAgICAgICAgICAgICAgICBmaWVsZHNbJ3NlYy13ZWJz
b2NrZXQtYWNjZXB0J10pCi0KLSAgICAgICAgYWNjZXB0ID0gZmllbGRzWydzZWMtd2Vic29ja2V0
LWFjY2VwdCddWzBdCi0KLSAgICAgICAgIyBWYWxpZGF0ZQotICAgICAgICB0cnk6Ci0gICAgICAg
ICAgICBkZWNvZGVkX2FjY2VwdCA9IGJhc2U2NC5iNjRkZWNvZGUoYWNjZXB0KQotICAgICAgICBl
eGNlcHQgVHlwZUVycm9yLCBlOgotICAgICAgICAgICAgcmFpc2UgSGFuZHNoYWtlRXhjZXB0aW9u
KAotICAgICAgICAgICAgICAgICdJbGxlZ2FsIHZhbHVlIGZvciBoZWFkZXIgU2VjLVdlYlNvY2tl
dC1BY2NlcHQ6ICcgKyBhY2NlcHQpCi0KLSAgICAgICAgaWYgbGVuKGRlY29kZWRfYWNjZXB0KSAh
PSAyMDoKLSAgICAgICAgICAgIHJhaXNlIEhhbmRzaGFrZUV4Y2VwdGlvbigKLSAgICAgICAgICAg
ICAgICAnRGVjb2RlZCB2YWx1ZSBvZiBTZWMtV2ViU29ja2V0LUFjY2VwdCBpcyBub3QgMjAtYnl0
ZSBsb25nJykKLQotICAgICAgICBzZWxmLl9sb2dnZXIuZGVidWcoJ0FjdHVhbCBTZWMtV2ViU29j
a2V0LUFjY2VwdDogJXIgKCVzKScsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICBhY2NlcHQs
IHV0aWwuaGV4aWZ5KGRlY29kZWRfYWNjZXB0KSkKLQotICAgICAgICBvcmlnaW5hbF9leHBlY3Rl
ZF9hY2NlcHQgPSB1dGlsLnNoYTFfaGFzaCgKLSAgICAgICAgICAgIGtleSArIFdFQlNPQ0tFVF9B
Q0NFUFRfVVVJRCkuZGlnZXN0KCkKLSAgICAgICAgZXhwZWN0ZWRfYWNjZXB0ID0gYmFzZTY0LmI2
NGVuY29kZShvcmlnaW5hbF9leHBlY3RlZF9hY2NlcHQpCi0KLSAgICAgICAgc2VsZi5fbG9nZ2Vy
LmRlYnVnKCdFeHBlY3RlZCBTZWMtV2ViU29ja2V0LUFjY2VwdDogJXIgKCVzKScsCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICBleHBlY3RlZF9hY2NlcHQsCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICB1dGlsLmhleGlmeShvcmlnaW5hbF9leHBlY3RlZF9hY2NlcHQpKQotCi0gICAgICAg
IGlmIGFjY2VwdCAhPSBleHBlY3RlZF9hY2NlcHQ6Ci0gICAgICAgICAgICByYWlzZSBFeGNlcHRp
b24oCi0gICAgICAgICAgICAgICAgJ0ludmFsaWQgU2VjLVdlYlNvY2tldC1BY2NlcHQgaGVhZGVy
OiAlciAoZXhwZWN0ZWQpICE9ICVyICcKLSAgICAgICAgICAgICAgICAnKGFjdHVhbCknICUgKGFj
Y2VwdCwgZXhwZWN0ZWRfYWNjZXB0KSkKLQotICAgICAgICBzZXJ2ZXJfZXh0ZW5zaW9uc19oZWFk
ZXIgPSBmaWVsZHMuZ2V0KCdzZWMtd2Vic29ja2V0LWV4dGVuc2lvbnMnKQotICAgICAgICBhY2Nl
cHRlZF9leHRlbnNpb25zID0gW10KLSAgICAgICAgaWYgc2VydmVyX2V4dGVuc2lvbnNfaGVhZGVy
IGlzIG5vdCBOb25lOgotICAgICAgICAgICAgYWNjZXB0ZWRfZXh0ZW5zaW9ucyA9IGNvbW1vbi5w
YXJzZV9leHRlbnNpb25zKAotICAgICAgICAgICAgICAgICAgICAnLCAnLmpvaW4oc2VydmVyX2V4
dGVuc2lvbnNfaGVhZGVyKSkKLQotICAgICAgICAjIFNjYW4gYWNjZXB0ZWQgZXh0ZW5zaW9uIGxp
c3QgdG8gY2hlY2sgaWYgdGhlcmUgaXMgYW55IHVucmVjb2duaXplZAotICAgICAgICAjIGV4dGVu
c2lvbnMgb3IgZXh0ZW5zaW9ucyB3ZSBkaWRuJ3QgcmVxdWVzdCBpbiBpdC4gVGhlbiwgZm9yCi0g
ICAgICAgICMgZXh0ZW5zaW9ucyB3ZSByZXF1ZXN0LCBwYXJzZSB0aGVtIGFuZCBzdG9yZSBwYXJh
bWV0ZXJzLiBUaGV5IHdpbGwgYmUKLSAgICAgICAgIyB1c2VkIGxhdGVyIGJ5IGVhY2ggZXh0ZW5z
aW9uLgotICAgICAgICBkZWZsYXRlX2ZyYW1lX2FjY2VwdGVkID0gRmFsc2UKLSAgICAgICAgbXV4
X2FjY2VwdGVkID0gRmFsc2UKLSAgICAgICAgZm9yIGV4dGVuc2lvbiBpbiBhY2NlcHRlZF9leHRl
bnNpb25zOgotICAgICAgICAgICAgaWYgZXh0ZW5zaW9uLm5hbWUoKSA9PSBfREVGTEFURV9GUkFN
RV9FWFRFTlNJT046Ci0gICAgICAgICAgICAgICAgaWYgc2VsZi5fb3B0aW9ucy51c2VfZGVmbGF0
ZV9mcmFtZToKLSAgICAgICAgICAgICAgICAgICAgZGVmbGF0ZV9mcmFtZV9hY2NlcHRlZCA9IFRy
dWUKLSAgICAgICAgICAgICAgICAgICAgY29udGludWUKLSAgICAgICAgICAgIGlmIGV4dGVuc2lv
bi5uYW1lKCkgPT0gX01VWF9FWFRFTlNJT046Ci0gICAgICAgICAgICAgICAgaWYgc2VsZi5fb3B0
aW9ucy51c2VfbXV4OgotICAgICAgICAgICAgICAgICAgICBtdXhfYWNjZXB0ZWQgPSBUcnVlCi0g
ICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlCi0gICAgICAgICAgICBpZiBleHRlbnNpb24ubmFt
ZSgpID09IF9QRVJNRVNTQUdFX0RFRkxBVEVfRVhURU5TSU9OOgotICAgICAgICAgICAgICAgIGNo
ZWNrZXIgPSBzZWxmLl9vcHRpb25zLmNoZWNrX3Blcm1lc3NhZ2VfZGVmbGF0ZQotICAgICAgICAg
ICAgICAgIGlmIGNoZWNrZXI6Ci0gICAgICAgICAgICAgICAgICAgIGNoZWNrZXIoZXh0ZW5zaW9u
KQotICAgICAgICAgICAgICAgICAgICBjb250aW51ZQotCi0gICAgICAgICAgICByYWlzZSBFeGNl
cHRpb24oCi0gICAgICAgICAgICAgICAgJ1JlY2VpdmVkIHVucmVjb2duaXplZCBleHRlbnNpb246
ICVzJyAlIGV4dGVuc2lvbi5uYW1lKCkpCi0KLSAgICAgICAgIyBMZXQgYWxsIGV4dGVuc2lvbnMg
Y2hlY2sgdGhlIHJlc3BvbnNlIGZvciBleHRlbnNpb24gcmVxdWVzdC4KLQotICAgICAgICBpZiAo
c2VsZi5fb3B0aW9ucy51c2VfZGVmbGF0ZV9mcmFtZSBhbmQKLSAgICAgICAgICAgIG5vdCBkZWZs
YXRlX2ZyYW1lX2FjY2VwdGVkKToKLSAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbignJXMgZXh0
ZW5zaW9uIG5vdCBhY2NlcHRlZCcgJQotICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9ERUZM
QVRFX0ZSQU1FX0VYVEVOU0lPTikKLQotICAgICAgICBpZiBzZWxmLl9vcHRpb25zLnVzZV9tdXgg
YW5kIG5vdCBtdXhfYWNjZXB0ZWQ6Ci0gICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oJyVzIGV4
dGVuc2lvbiBub3QgYWNjZXB0ZWQnICUgX01VWF9FWFRFTlNJT04pCi0KLQotY2xhc3MgV2ViU29j
a2V0SHliaTAwSGFuZHNoYWtlKG9iamVjdCk6Ci0gICAgIiIiT3BlbmluZyBoYW5kc2hha2UgcHJv
Y2Vzc29yIGZvciB0aGUgV2ViU29ja2V0IHByb3RvY29sIHZlcnNpb24gSHlCaSAwMC4KLSAgICAi
IiIKLQotICAgIGRlZiBfX2luaXRfXyhzZWxmLCBvcHRpb25zLCBkcmFmdF9maWVsZCk6Ci0gICAg
ICAgIHNlbGYuX2xvZ2dlciA9IHV0aWwuZ2V0X2NsYXNzX2xvZ2dlcihzZWxmKQotCi0gICAgICAg
IHNlbGYuX29wdGlvbnMgPSBvcHRpb25zCi0gICAgICAgIHNlbGYuX2RyYWZ0X2ZpZWxkID0gZHJh
ZnRfZmllbGQKLQotICAgIGRlZiBoYW5kc2hha2Uoc2VsZiwgc29ja2V0KToKLSAgICAgICAgIiIi
SGFuZHNoYWtlIFdlYlNvY2tldC4KLQotICAgICAgICBSYWlzZXM6Ci0gICAgICAgICAgICBFeGNl
cHRpb246IGhhbmRzaGFrZSBmYWlsZWQuCi0gICAgICAgICIiIgotCi0gICAgICAgIHNlbGYuX3Nv
Y2tldCA9IHNvY2tldAotCi0gICAgICAgICMgNC4xIDUuIHNlbmQgcmVxdWVzdCBsaW5lLgotICAg
ICAgICByZXF1ZXN0X2xpbmUgPSBfbWV0aG9kX2xpbmUoc2VsZi5fb3B0aW9ucy5yZXNvdXJjZSkK
LSAgICAgICAgc2VsZi5fbG9nZ2VyLmRlYnVnKCdPcGVuaW5nIGhhbmRzaGFrZSBSZXF1ZXN0LUxp
bmU6ICVyJywgcmVxdWVzdF9saW5lKQotICAgICAgICBzZWxmLl9zb2NrZXQuc2VuZGFsbChyZXF1
ZXN0X2xpbmUpCi0gICAgICAgICMgNC4xIDYuIExldCAvZmllbGRzLyBiZSBhbiBlbXB0eSBsaXN0
IG9mIHN0cmluZ3MuCi0gICAgICAgIGZpZWxkcyA9IFtdCi0gICAgICAgICMgNC4xIDcuIEFkZCB0
aGUgc3RyaW5nICJVcGdyYWRlOiBXZWJTb2NrZXQiIHRvIC9maWVsZHMvLgotICAgICAgICBmaWVs
ZHMuYXBwZW5kKF9VUEdSQURFX0hFQURFUl9ISVhJRTc1KQotICAgICAgICAjIDQuMSA4LiBBZGQg
dGhlIHN0cmluZyAiQ29ubmVjdGlvbjogVXBncmFkZSIgdG8gL2ZpZWxkcy8uCi0gICAgICAgIGZp
ZWxkcy5hcHBlbmQoX0NPTk5FQ1RJT05fSEVBREVSKQotICAgICAgICAjIDQuMSA5LTEyLiBBZGQg
SG9zdDogZmllbGQgdG8gL2ZpZWxkcy8uCi0gICAgICAgIGZpZWxkcy5hcHBlbmQoX2Zvcm1hdF9o
b3N0X2hlYWRlcigKLSAgICAgICAgICAgIHNlbGYuX29wdGlvbnMuc2VydmVyX2hvc3QsCi0gICAg
ICAgICAgICBzZWxmLl9vcHRpb25zLnNlcnZlcl9wb3J0LAotICAgICAgICAgICAgc2VsZi5fb3B0
aW9ucy51c2VfdGxzKSkKLSAgICAgICAgIyA0LjEgMTMuIEFkZCBPcmlnaW46IGZpZWxkIHRvIC9m
aWVsZHMvLgotICAgICAgICBmaWVsZHMuYXBwZW5kKF9vcmlnaW5faGVhZGVyKHNlbGYuX29wdGlv
bnMub3JpZ2luKSkKLSAgICAgICAgIyBUT0RPOiA0LjEgMTQgQWRkIFNlYy1XZWJTb2NrZXQtUHJv
dG9jb2w6IGZpZWxkIHRvIC9maWVsZHMvLgotICAgICAgICAjIFRPRE86IDQuMSAxNSBBZGQgY29v
a2llIGhlYWRlcnMgdG8gL2ZpZWxkcy8uCi0KLSAgICAgICAgIyA0LjEgMTYtMjMuIEFkZCBTZWMt
V2ViU29ja2V0LUtleTxuPiB0byAvZmllbGRzLy4KLSAgICAgICAgc2VsZi5fbnVtYmVyMSwga2V5
MSA9IHNlbGYuX2dlbmVyYXRlX3NlY193ZWJzb2NrZXRfa2V5KCkKLSAgICAgICAgc2VsZi5fbG9n
Z2VyLmRlYnVnKCdOdW1iZXIxOiAlZCcsIHNlbGYuX251bWJlcjEpCi0gICAgICAgIGZpZWxkcy5h
cHBlbmQoJ1NlYy1XZWJTb2NrZXQtS2V5MTogJXNcclxuJyAlIGtleTEpCi0gICAgICAgIHNlbGYu
X251bWJlcjIsIGtleTIgPSBzZWxmLl9nZW5lcmF0ZV9zZWNfd2Vic29ja2V0X2tleSgpCi0gICAg
ICAgIHNlbGYuX2xvZ2dlci5kZWJ1ZygnTnVtYmVyMjogJWQnLCBzZWxmLl9udW1iZXIxKQotICAg
ICAgICBmaWVsZHMuYXBwZW5kKCdTZWMtV2ViU29ja2V0LUtleTI6ICVzXHJcbicgJSBrZXkyKQot
Ci0gICAgICAgIGZpZWxkcy5hcHBlbmQoJ1NlYy1XZWJTb2NrZXQtRHJhZnQ6ICVzXHJcbicgJSBz
ZWxmLl9kcmFmdF9maWVsZCkKLQotICAgICAgICAjIDQuMSAyNC4gRm9yIGVhY2ggc3RyaW5nIGlu
IC9maWVsZHMvLCBpbiBhIHJhbmRvbSBvcmRlcjogc2VuZCB0aGUKLSAgICAgICAgIyBzdHJpbmcs
IGVuY29kZWQgYXMgVVRGLTgsIGZvbGxvd2VkIGJ5IGEgVVRGLTggZW5jb2RlZCBVKzAwMEQgQ0FS
UklBR0UKLSAgICAgICAgIyBSRVRVUk4gVSswMDBBIExJTkUgRkVFRCBjaGFyYWN0ZXIgcGFpciAo
Q1JMRikuCi0gICAgICAgIHJhbmRvbS5zaHVmZmxlKGZpZWxkcykKLQotICAgICAgICBzZWxmLl9s
b2dnZXIuZGVidWcoJ09wZW5pbmcgaGFuZHNoYWtlIHJlcXVlc3QgaGVhZGVyczogJXInLCBmaWVs
ZHMpCi0gICAgICAgIGZvciBmaWVsZCBpbiBmaWVsZHM6Ci0gICAgICAgICAgICBzZWxmLl9zb2Nr
ZXQuc2VuZGFsbChmaWVsZCkKLQotICAgICAgICAjIDQuMSAyNS4gc2VuZCBhIFVURi04LWVuY29k
ZWQgVSswMDBEIENBUlJJQUdFIFJFVFVSTiBVKzAwMEEgTElORSBGRUVECi0gICAgICAgICMgY2hh
cmFjdGVyIHBhaXIgKENSTEYpLgotICAgICAgICBzZWxmLl9zb2NrZXQuc2VuZGFsbCgnXHJcbicp
Ci0gICAgICAgICMgNC4xIDI2LiBsZXQgL2tleTMvIGJlIGEgc3RyaW5nIGNvbnNpc3Rpbmcgb2Yg
ZWlnaHQgcmFuZG9tIGJ5dGVzIChvcgotICAgICAgICAjIGVxdWl2YWxlbnRseSwgYSByYW5kb20g
NjQgYml0IGludGVnZXIgZW5jb2RlZCBpbiBhIGJpZy1lbmRpYW4gb3JkZXIpLgotICAgICAgICBz
ZWxmLl9rZXkzID0gc2VsZi5fZ2VuZXJhdGVfa2V5MygpCi0gICAgICAgICMgNC4xIDI3LiBzZW5k
IC9rZXkzLyB0byB0aGUgc2VydmVyLgotICAgICAgICBzZWxmLl9zb2NrZXQuc2VuZGFsbChzZWxm
Ll9rZXkzKQotICAgICAgICBzZWxmLl9sb2dnZXIuZGVidWcoCi0gICAgICAgICAgICAnS2V5Mzog
JXIgKCVzKScsIHNlbGYuX2tleTMsIHV0aWwuaGV4aWZ5KHNlbGYuX2tleTMpKQotCi0gICAgICAg
IHNlbGYuX2xvZ2dlci5pbmZvKCdTZW50IG9wZW5pbmcgaGFuZHNoYWtlIHJlcXVlc3QnKQotCi0g
ICAgICAgICMgNC4xIDI4LiBSZWFkIGJ5dGVzIGZyb20gdGhlIHNlcnZlciB1bnRpbCBlaXRoZXIg
dGhlIGNvbm5lY3Rpb24KLSAgICAgICAgIyBjbG9zZXMsIG9yIGEgMHgwQSBieXRlIGlzIHJlYWQu
IGxldCAvZmllbGQvIGJlIHRoZXNlIGJ5dGVzLCBpbmNsdWRpbmcKLSAgICAgICAgIyB0aGUgMHgw
QSBieXRlcy4KLSAgICAgICAgZmllbGQgPSAnJwotICAgICAgICB3aGlsZSBUcnVlOgotICAgICAg
ICAgICAgY2ggPSByZWNlaXZlX2J5dGVzKHNlbGYuX3NvY2tldCwgMSkKLSAgICAgICAgICAgIGZp
ZWxkICs9IGNoCi0gICAgICAgICAgICBpZiBjaCA9PSAnXG4nOgotICAgICAgICAgICAgICAgIGJy
ZWFrCi0KLSAgICAgICAgc2VsZi5fbG9nZ2VyLmRlYnVnKCdPcGVuaW5nIGhhbmRzaGFrZSBSZXNw
b25zZS1MaW5lOiAlcicsIGZpZWxkKQotCi0gICAgICAgICMgaWYgL2ZpZWxkLyBpcyBub3QgYXQg
bGVhc3Qgc2V2ZW4gYnl0ZXMgbG9uZywgb3IgaWYgdGhlIGxhc3QKLSAgICAgICAgIyB0d28gYnl0
ZXMgYXJlbid0IDB4MEQgYW5kIDB4MEEgcmVzcGVjdGl2ZWx5LCBvciBpZiBpdCBkb2VzIG5vdAot
ICAgICAgICAjIGNvbnRhaW4gYXQgbGVhc3QgdHdvIDB4MjAgYnl0ZXMsIHRoZW4gZmFpbCB0aGUg
V2ViU29ja2V0IGNvbm5lY3Rpb24KLSAgICAgICAgIyBhbmQgYWJvcnQgdGhlc2Ugc3RlcHMuCi0g
ICAgICAgIGlmIGxlbihmaWVsZCkgPCA3IG9yIG5vdCBmaWVsZC5lbmRzd2l0aCgnXHJcbicpOgot
ICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCdXcm9uZyBzdGF0dXMgbGluZTogJXInICUgZmll
bGQpCi0gICAgICAgIG0gPSByZS5tYXRjaCgnW14gXSogKFteIF0qKSAuKicsIGZpZWxkKQotICAg
ICAgICBpZiBtIGlzIE5vbmU6Ci0gICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oJ05vIGNvZGUg
Zm91bmQgaW4gc3RhdHVzIGxpbmU6ICVyJyAlIGZpZWxkKQotICAgICAgICAjIDQuMSAyOS4gbGV0
IC9jb2RlLyBiZSB0aGUgc3Vic3RyaW5nIG9mIC9maWVsZC8gdGhhdCBzdGFydHMgZnJvbSB0aGUK
LSAgICAgICAgIyBieXRlIGFmdGVyIHRoZSBmaXJzdCAweDIwIGJ5dGUsIGFuZCBlbmRzIHdpdGgg
dGhlIGJ5dGUgYmVmb3JlIHRoZQotICAgICAgICAjIHNlY29uZCAweDIwIGJ5dGUuCi0gICAgICAg
IGNvZGUgPSBtLmdyb3VwKDEpCi0gICAgICAgICMgNC4xIDMwLiBpZiAvY29kZS8gaXMgbm90IHRo
cmVlIGJ5dGVzIGxvbmcsIG9yIGlmIGFueSBvZiB0aGUgYnl0ZXMgaW4KLSAgICAgICAgIyAvY29k
ZS8gYXJlIG5vdCBpbiB0aGUgcmFuZ2UgMHgzMCB0byAweDkwLCB0aGVuIGZhaWwgdGhlIFdlYlNv
Y2tldAotICAgICAgICAjIGNvbm5lY3Rpb24gYW5kIGFib3J0IHRoZXNlIHN0ZXBzLgotICAgICAg
ICBpZiBub3QgcmUubWF0Y2goJ1swLTldWzAtOV1bMC05XScsIGNvZGUpOgotICAgICAgICAgICAg
cmFpc2UgRXhjZXB0aW9uKAotICAgICAgICAgICAgICAgICdIVFRQIHN0YXR1cyBjb2RlICVyIGlz
IG5vdCB0aHJlZSBkaWdpdCBpbiBzdGF0dXMgbGluZTogJXInICUKLSAgICAgICAgICAgICAgICAo
Y29kZSwgZmllbGQpKQotICAgICAgICAjIDQuMSAzMS4gaWYgL2NvZGUvLCBpbnRlcnByZXRlZCBh
cyBVVEYtOCwgaXMgIjEwMSIsIHRoZW4gbW92ZSB0byB0aGUKLSAgICAgICAgIyBuZXh0IHN0ZXAu
Ci0gICAgICAgIGlmIGNvZGUgIT0gJzEwMSc6Ci0gICAgICAgICAgICByYWlzZSBIdHRwU3RhdHVz
RXhjZXB0aW9uKAotICAgICAgICAgICAgICAgICdFeHBlY3RlZCBIVFRQIHN0YXR1cyBjb2RlIDEw
MSBidXQgZm91bmQgJXIgaW4gc3RhdHVzIGxpbmU6ICcKLSAgICAgICAgICAgICAgICAnJXInICUg
KGNvZGUsIGZpZWxkKSwgaW50KGNvZGUpKQotICAgICAgICAjIDQuMSAzMi0zOS4gcmVhZCBmaWVs
ZHMgaW50byAvZmllbGRzLwotICAgICAgICBmaWVsZHMgPSBfcmVhZF9maWVsZHMoc2VsZi5fc29j
a2V0KQotCi0gICAgICAgIHNlbGYuX2xvZ2dlci5kZWJ1ZygnT3BlbmluZyBoYW5kc2hha2UgcmVz
cG9uc2UgaGVhZGVyczogJXInLCBmaWVsZHMpCi0KLSAgICAgICAgIyA0LjEgNDAuIF9GaWVsZHMg
cHJvY2Vzc2luZ18KLSAgICAgICAgIyByZWFkIGEgYnl0ZSBmcm9tIHNlcnZlcgotICAgICAgICBj
aCA9IHJlY2VpdmVfYnl0ZXMoc2VsZi5fc29ja2V0LCAxKQotICAgICAgICBpZiBjaCAhPSAnXG4n
OiAgIyAweDBBCi0gICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oJ0V4cGVjdGVkIExGIGJ1dCBm
b3VuZCAlcicgJSBjaCkKLSAgICAgICAgIyA0LjEgNDEuIGNoZWNrIC9maWVsZHMvCi0gICAgICAg
IGlmIGxlbihmaWVsZHNbJ3VwZ3JhZGUnXSkgIT0gMToKLSAgICAgICAgICAgIHJhaXNlIEV4Y2Vw
dGlvbigKLSAgICAgICAgICAgICAgICAnTXVsdGlwbGUgVXBncmFkZSBoZWFkZXJzIGZvdW5kOiAl
cycgJSBmaWVsZHNbJ3VwZ3JhZGUnXSkKLSAgICAgICAgaWYgbGVuKGZpZWxkc1snY29ubmVjdGlv
biddKSAhPSAxOgotICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKAotICAgICAgICAgICAgICAg
ICdNdWx0aXBsZSBDb25uZWN0aW9uIGhlYWRlcnMgZm91bmQ6ICVzJyAlIGZpZWxkc1snY29ubmVj
dGlvbiddKQotICAgICAgICBpZiBsZW4oZmllbGRzWydzZWMtd2Vic29ja2V0LW9yaWdpbiddKSAh
PSAxOgotICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKAotICAgICAgICAgICAgICAgICdNdWx0
aXBsZSBTZWMtV2ViU29ja2V0LU9yaWdpbiBoZWFkZXJzIGZvdW5kOiAlcycgJQotICAgICAgICAg
ICAgICAgIGZpZWxkc1snc2VjLXNlYnNvY2tldC1vcmlnaW4nXSkKLSAgICAgICAgaWYgbGVuKGZp
ZWxkc1snc2VjLXdlYnNvY2tldC1sb2NhdGlvbiddKSAhPSAxOgotICAgICAgICAgICAgcmFpc2Ug
RXhjZXB0aW9uKAotICAgICAgICAgICAgICAgICdNdWx0aXBsZSBTZWMtV2ViU29ja2V0LUxvY2F0
aW9uIGhlYWRlcnMgZm91bmQ6ICVzJyAlCi0gICAgICAgICAgICAgICAgZmllbGRzWydzZWMtc2Vi
c29ja2V0LWxvY2F0aW9uJ10pCi0gICAgICAgICMgVE9ETyh1a2FpKTogcHJvdG9jb2wKLSAgICAg
ICAgIyBpZiB0aGUgZW50cnkncyBuYW1lIGlzICJ1cGdyYWRlIgotICAgICAgICAjICBpZiB0aGUg
dmFsdWUgaXMgbm90IGV4YWN0bHkgZXF1YWwgdG8gdGhlIHN0cmluZyAiV2ViU29ja2V0IiwKLSAg
ICAgICAgIyAgdGhlbiBmYWlsIHRoZSBXZWJTb2NrZXQgY29ubmVjdGlvbiBhbmQgYWJvcnQgdGhl
c2Ugc3RlcHMuCi0gICAgICAgIGlmIGZpZWxkc1sndXBncmFkZSddWzBdICE9ICdXZWJTb2NrZXQn
OgotICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKAotICAgICAgICAgICAgICAgICdVbmV4cGVj
dGVkIFVwZ3JhZGUgaGVhZGVyIHZhbHVlOiAlcycgJSBmaWVsZHNbJ3VwZ3JhZGUnXVswXSkKLSAg
ICAgICAgIyBpZiB0aGUgZW50cnkncyBuYW1lIGlzICJjb25uZWN0aW9uIgotICAgICAgICAjICBp
ZiB0aGUgdmFsdWUsIGNvbnZlcnRlZCB0byBBU0NJSSBsb3dlcmNhc2UsIGlzIG5vdCBleGFjdGx5
IGVxdWFsCi0gICAgICAgICMgIHRvIHRoZSBzdHJpbmcgInVwZ3JhZGUiLCB0aGVuIGZhaWwgdGhl
IFdlYlNvY2tldCBjb25uZWN0aW9uIGFuZAotICAgICAgICAjICBhYm9ydCB0aGVzZSBzdGVwcy4K
LSAgICAgICAgaWYgZmllbGRzWydjb25uZWN0aW9uJ11bMF0ubG93ZXIoKSAhPSAndXBncmFkZSc6
Ci0gICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oCi0gICAgICAgICAgICAgICAgJ1VuZXhwZWN0
ZWQgQ29ubmVjdGlvbiBoZWFkZXIgdmFsdWU6ICVzJyAlCi0gICAgICAgICAgICAgICAgZmllbGRz
Wydjb25uZWN0aW9uJ11bMF0pCi0gICAgICAgICMgVE9ETyh1a2FpKTogY2hlY2sgb3JpZ2luLCBs
b2NhdGlvbiwgY29va2llLCAuLgotCi0gICAgICAgICMgNC4xIDQyLiBsZXQgL2NoYWxsZW5nZS8g
YmUgdGhlIGNvbmNhdGVuYXRpb24gb2YgL251bWJlcl8xLywKLSAgICAgICAgIyBleHByZXNzZWQg
YXMgYSBiaWcgZW5kaWFuIDMyIGJpdCBpbnRlZ2VyLCAvbnVtYmVyXzIvLCBleHByZXNzZWQKLSAg
ICAgICAgIyBhcyBiaWcgZW5kaWFuIDMyIGJpdCBpbnRlZ2VyLCBhbmQgdGhlIGVpZ2h0IGJ5dGVz
IG9mIC9rZXlfMy8gaW4gdGhlCi0gICAgICAgICMgb3JkZXIgdGhleSB3ZXJlIHNlbnQgb24gdGhl
IHdpcmUuCi0gICAgICAgIGNoYWxsZW5nZSA9IHN0cnVjdC5wYWNrKCchSScsIHNlbGYuX251bWJl
cjEpCi0gICAgICAgIGNoYWxsZW5nZSArPSBzdHJ1Y3QucGFjaygnIUknLCBzZWxmLl9udW1iZXIy
KQotICAgICAgICBjaGFsbGVuZ2UgKz0gc2VsZi5fa2V5MwotCi0gICAgICAgIHNlbGYuX2xvZ2dl
ci5kZWJ1ZygKLSAgICAgICAgICAgICdDaGFsbGVuZ2U6ICVyICglcyknLCBjaGFsbGVuZ2UsIHV0
aWwuaGV4aWZ5KGNoYWxsZW5nZSkpCi0KLSAgICAgICAgIyA0LjEgNDMuIGxldCAvZXhwZWN0ZWQv
IGJlIHRoZSBNRDUgZmluZ2VycHJpbnQgb2YgL2NoYWxsZW5nZS8gYXMgYQotICAgICAgICAjIGJp
Zy1lbmRpYW4gMTI4IGJpdCBzdHJpbmcuCi0gICAgICAgIGV4cGVjdGVkID0gdXRpbC5tZDVfaGFz
aChjaGFsbGVuZ2UpLmRpZ2VzdCgpCi0gICAgICAgIHNlbGYuX2xvZ2dlci5kZWJ1ZygKLSAgICAg
ICAgICAgICdFeHBlY3RlZCBjaGFsbGVuZ2UgcmVzcG9uc2U6ICVyICglcyknLAotICAgICAgICAg
ICAgZXhwZWN0ZWQsIHV0aWwuaGV4aWZ5KGV4cGVjdGVkKSkKLQotICAgICAgICAjIDQuMSA0NC4g
cmVhZCBzaXh0ZWVuIGJ5dGVzIGZyb20gdGhlIHNlcnZlci4KLSAgICAgICAgIyBsZXQgL3JlcGx5
LyBiZSB0aG9zZSBieXRlcy4KLSAgICAgICAgcmVwbHkgPSByZWNlaXZlX2J5dGVzKHNlbGYuX3Nv
Y2tldCwgMTYpCi0gICAgICAgIHNlbGYuX2xvZ2dlci5kZWJ1ZygKLSAgICAgICAgICAgICdBY3R1
YWwgY2hhbGxlbmdlIHJlc3BvbnNlOiAlciAoJXMpJywgcmVwbHksIHV0aWwuaGV4aWZ5KHJlcGx5
KSkKLQotICAgICAgICAjIDQuMSA0NS4gaWYgL3JlcGx5LyBkb2VzIG5vdCBleGFjdGx5IGVxdWFs
IC9leHBlY3RlZC8sIHRoZW4gZmFpbAotICAgICAgICAjIHRoZSBXZWJTb2NrZXQgY29ubmVjdGlv
biBhbmQgYWJvcnQgdGhlc2Ugc3RlcHMuCi0gICAgICAgIGlmIGV4cGVjdGVkICE9IHJlcGx5Ogot
ICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKAotICAgICAgICAgICAgICAgICdCYWQgY2hhbGxl
bmdlIHJlc3BvbnNlOiAlciAoZXhwZWN0ZWQpICE9ICVyIChhY3R1YWwpJyAlCi0gICAgICAgICAg
ICAgICAgKGV4cGVjdGVkLCByZXBseSkpCi0gICAgICAgICMgNC4xIDQ2LiBUaGUgKldlYlNvY2tl
dCBjb25uZWN0aW9uIGlzIGVzdGFibGlzaGVkKi4KLQotICAgIGRlZiBfZ2VuZXJhdGVfc2VjX3dl
YnNvY2tldF9rZXkoc2VsZik6Ci0gICAgICAgICMgNC4xIDE2LiBsZXQgL3NwYWNlc19uLyBiZSBh
IHJhbmRvbSBpbnRlZ2VyIGZyb20gMSB0byAxMiBpbmNsdXNpdmUuCi0gICAgICAgIHNwYWNlcyA9
IHJhbmRvbS5yYW5kaW50KDEsIDEyKQotICAgICAgICAjIDQuMSAxNy4gbGV0IC9tYXhfbi8gYmUg
dGhlIGxhcmdlc3QgaW50ZWdlciBub3QgZ3JlYXRlciB0aGFuCi0gICAgICAgICMgIDQsMjk0LDk2
NywyOTUgZGl2aWRlZCBieSAvc3BhY2VzX24vLgotICAgICAgICBtYXhudW0gPSA0Mjk0OTY3Mjk1
IC8gc3BhY2VzCi0gICAgICAgICMgNC4xIDE4LiBsZXQgL251bWJlcl9uLyBiZSBhIHJhbmRvbSBp
bnRlZ2VyIGZyb20gMCB0byAvbWF4X24vCi0gICAgICAgICMgaW5jbHVzaXZlLgotICAgICAgICBu
dW1iZXIgPSByYW5kb20ucmFuZGludCgwLCBtYXhudW0pCi0gICAgICAgICMgNC4xIDE5LiBsZXQg
L3Byb2R1Y3Rfbi8gYmUgdGhlIHJlc3VsdCBvZiBtdWx0aXBseWluZyAvbnVtYmVyX24vIGFuZAot
ICAgICAgICAjIC9zcGFjZXNfbi8gdG9nZXRoZXIuCi0gICAgICAgIHByb2R1Y3QgPSBudW1iZXIg
KiBzcGFjZXMKLSAgICAgICAgIyA0LjEgMjAuIGxldCAva2V5X24vIGJlIGEgc3RyaW5nIGNvbnNp
c3Rpbmcgb2YgL3Byb2R1Y3Rfbi8sIGV4cHJlc3NlZAotICAgICAgICAjIGluIGJhc2UgdGVuIHVz
aW5nIHRoZSBudW1lcmFscyBpbiB0aGUgcmFuZ2UgVSswMDMwIERJR0lUIFpFUk8gKDApIHRvCi0g
ICAgICAgICMgVSswMDM5IERJR0lUIE5JTkUgKDkpLgotICAgICAgICBrZXkgPSBzdHIocHJvZHVj
dCkKLSAgICAgICAgIyA0LjEgMjEuIGluc2VydCBiZXR3ZWVuIG9uZSBhbmQgdHdlbHZlIHJhbmRv
bSBjaGFyYWN0ZXJzIGZyb20gdGhlCi0gICAgICAgICMgcmFuZ2UgVSswMDIxIHRvIFUrMDAyRiBh
bmQgVSswMDNBIHRvIFUrMDA3RSBpbnRvIC9rZXlfbi8gYXQgcmFuZG9tCi0gICAgICAgICMgcG9z
aXRpb25zLgotICAgICAgICBhdmFpbGFibGVfY2hhcnMgPSByYW5nZSgweDIxLCAweDJmICsgMSkg
KyByYW5nZSgweDNhLCAweDdlICsgMSkKLSAgICAgICAgbiA9IHJhbmRvbS5yYW5kaW50KDEsIDEy
KQotICAgICAgICBmb3IgXyBpbiB4cmFuZ2Uobik6Ci0gICAgICAgICAgICBjaCA9IHJhbmRvbS5j
aG9pY2UoYXZhaWxhYmxlX2NoYXJzKQotICAgICAgICAgICAgcG9zID0gcmFuZG9tLnJhbmRpbnQo
MCwgbGVuKGtleSkpCi0gICAgICAgICAgICBrZXkgPSBrZXlbMDpwb3NdICsgY2hyKGNoKSArIGtl
eVtwb3M6XQotICAgICAgICAjIDQuMSAyMi4gaW5zZXJ0IC9zcGFjZXNfbi8gVSswMDIwIFNQQUNF
IGNoYXJhY3RlcnMgaW50byAva2V5X24vIGF0Ci0gICAgICAgICMgcmFuZG9tIHBvc2l0aW9ucyBv
dGhlciB0aGFuIHN0YXJ0IG9yIGVuZCBvZiB0aGUgc3RyaW5nLgotICAgICAgICBmb3IgXyBpbiB4
cmFuZ2Uoc3BhY2VzKToKLSAgICAgICAgICAgIHBvcyA9IHJhbmRvbS5yYW5kaW50KDEsIGxlbihr
ZXkpIC0gMSkKLSAgICAgICAgICAgIGtleSA9IGtleVswOnBvc10gKyAnICcgKyBrZXlbcG9zOl0K
LSAgICAgICAgcmV0dXJuIG51bWJlciwga2V5Ci0KLSAgICBkZWYgX2dlbmVyYXRlX2tleTMoc2Vs
Zik6Ci0gICAgICAgICMgNC4xIDI2LiBsZXQgL2tleTMvIGJlIGEgc3RyaW5nIGNvbnNpc3Rpbmcg
b2YgZWlnaHQgcmFuZG9tIGJ5dGVzIChvcgotICAgICAgICAjIGVxdWl2YWxlbnRseSwgYSByYW5k
b20gNjQgYml0IGludGVnZXIgZW5jb2RlZCBpbiBhIGJpZy1lbmRpYW4gb3JkZXIpLgotICAgICAg
ICByZXR1cm4gJycuam9pbihbY2hyKHJhbmRvbS5yYW5kaW50KDAsIDI1NSkpIGZvciBfIGluIHhy
YW5nZSg4KV0pCi0KLQotY2xhc3MgV2ViU29ja2V0SGl4aWU3NUhhbmRzaGFrZShvYmplY3QpOgot
ICAgICIiIldlYlNvY2tldCBoYW5kc2hha2UgcHJvY2Vzc29yIGZvciBJRVRGIEhpeGllIDc1LiIi
IgotCi0gICAgX0VYUEVDVEVEX1JFU1BPTlNFID0gKAotICAgICAgICAnSFRUUC8xLjEgMTAxIFdl
YiBTb2NrZXQgUHJvdG9jb2wgSGFuZHNoYWtlXHJcbicgKwotICAgICAgICBfVVBHUkFERV9IRUFE
RVJfSElYSUU3NSArCi0gICAgICAgIF9DT05ORUNUSU9OX0hFQURFUikKLQotICAgIGRlZiBfX2lu
aXRfXyhzZWxmLCBvcHRpb25zKToKLSAgICAgICAgc2VsZi5fbG9nZ2VyID0gdXRpbC5nZXRfY2xh
c3NfbG9nZ2VyKHNlbGYpCi0KLSAgICAgICAgc2VsZi5fb3B0aW9ucyA9IG9wdGlvbnMKLQotICAg
IGRlZiBfc2tpcF9oZWFkZXJzKHNlbGYpOgotICAgICAgICB0ZXJtaW5hdG9yID0gJ1xyXG5cclxu
JwotICAgICAgICBwb3MgPSAwCi0gICAgICAgIHdoaWxlIHBvcyA8IGxlbih0ZXJtaW5hdG9yKToK
LSAgICAgICAgICAgIHJlY2VpdmVkID0gcmVjZWl2ZV9ieXRlcyhzZWxmLl9zb2NrZXQsIDEpCi0g
ICAgICAgICAgICBpZiByZWNlaXZlZCA9PSB0ZXJtaW5hdG9yW3Bvc106Ci0gICAgICAgICAgICAg
ICAgcG9zICs9IDEKLSAgICAgICAgICAgIGVsaWYgcmVjZWl2ZWQgPT0gdGVybWluYXRvclswXToK
LSAgICAgICAgICAgICAgICBwb3MgPSAxCi0gICAgICAgICAgICBlbHNlOgotICAgICAgICAgICAg
ICAgIHBvcyA9IDAKLQotICAgIGRlZiBoYW5kc2hha2Uoc2VsZiwgc29ja2V0KToKLSAgICAgICAg
c2VsZi5fc29ja2V0ID0gc29ja2V0Ci0KLSAgICAgICAgcmVxdWVzdF9saW5lID0gX21ldGhvZF9s
aW5lKHNlbGYuX29wdGlvbnMucmVzb3VyY2UpCi0gICAgICAgIHNlbGYuX2xvZ2dlci5kZWJ1Zygn
T3BlbmluZyBoYW5kc2hha2UgUmVxdWVzdC1MaW5lOiAlcicsIHJlcXVlc3RfbGluZSkKLSAgICAg
ICAgc2VsZi5fc29ja2V0LnNlbmRhbGwocmVxdWVzdF9saW5lKQotCi0gICAgICAgIGhlYWRlcnMg
PSBfVVBHUkFERV9IRUFERVJfSElYSUU3NSArIF9DT05ORUNUSU9OX0hFQURFUgotICAgICAgICBo
ZWFkZXJzICs9IF9mb3JtYXRfaG9zdF9oZWFkZXIoCi0gICAgICAgICAgICBzZWxmLl9vcHRpb25z
LnNlcnZlcl9ob3N0LAotICAgICAgICAgICAgc2VsZi5fb3B0aW9ucy5zZXJ2ZXJfcG9ydCwKLSAg
ICAgICAgICAgIHNlbGYuX29wdGlvbnMudXNlX3RscykKLSAgICAgICAgaGVhZGVycyArPSBfb3Jp
Z2luX2hlYWRlcihzZWxmLl9vcHRpb25zLm9yaWdpbikKLSAgICAgICAgc2VsZi5fbG9nZ2VyLmRl
YnVnKCdPcGVuaW5nIGhhbmRzaGFrZSByZXF1ZXN0IGhlYWRlcnM6ICVyJywgaGVhZGVycykKLSAg
ICAgICAgc2VsZi5fc29ja2V0LnNlbmRhbGwoaGVhZGVycykKLQotICAgICAgICBzZWxmLl9zb2Nr
ZXQuc2VuZGFsbCgnXHJcbicpCi0KLSAgICAgICAgc2VsZi5fbG9nZ2VyLmluZm8oJ1NlbnQgb3Bl
bmluZyBoYW5kc2hha2UgcmVxdWVzdCcpCi0KLSAgICAgICAgZm9yIGV4cGVjdGVkX2NoYXIgaW4g
V2ViU29ja2V0SGl4aWU3NUhhbmRzaGFrZS5fRVhQRUNURURfUkVTUE9OU0U6Ci0gICAgICAgICAg
ICByZWNlaXZlZCA9IHJlY2VpdmVfYnl0ZXMoc2VsZi5fc29ja2V0LCAxKQotICAgICAgICAgICAg
aWYgZXhwZWN0ZWRfY2hhciAhPSByZWNlaXZlZDoKLSAgICAgICAgICAgICAgICByYWlzZSBFeGNl
cHRpb24oJ0hhbmRzaGFrZSBmYWlsdXJlJykKLSAgICAgICAgIyBXZSBjdXQgY29ybmVycyBhbmQg
c2tpcCBvdGhlciBoZWFkZXJzLgotICAgICAgICBzZWxmLl9za2lwX2hlYWRlcnMoKQotCi0KLWNs
YXNzIFdlYlNvY2tldFN0cmVhbShvYmplY3QpOgotICAgICIiIkZyYW1lIHByb2Nlc3NvciBmb3Ig
dGhlIFdlYlNvY2tldCBwcm90b2NvbCAoUkZDIDY0NTUpLiIiIgotCi0gICAgZGVmIF9faW5pdF9f
KHNlbGYsIHNvY2tldCwgaGFuZHNoYWtlKToKLSAgICAgICAgc2VsZi5faGFuZHNoYWtlID0gaGFu
ZHNoYWtlCi0gICAgICAgIHNlbGYuX3NvY2tldCA9IHNvY2tldAotCi0gICAgICAgICMgRmlsdGVy
cyBhcHBsaWVkIHRvIGFwcGxpY2F0aW9uIGRhdGEgcGFydCBvZiBkYXRhIGZyYW1lcy4KLSAgICAg
ICAgc2VsZi5fb3V0Z29pbmdfZnJhbWVfZmlsdGVyID0gTm9uZQotICAgICAgICBzZWxmLl9pbmNv
bWluZ19mcmFtZV9maWx0ZXIgPSBOb25lCi0KLSAgICAgICAgaWYgc2VsZi5faGFuZHNoYWtlLl9v
cHRpb25zLnVzZV9kZWZsYXRlX2ZyYW1lOgotICAgICAgICAgICAgc2VsZi5fb3V0Z29pbmdfZnJh
bWVfZmlsdGVyID0gKAotICAgICAgICAgICAgICAgIHV0aWwuX1JGQzE5NzlEZWZsYXRlcihOb25l
LCBGYWxzZSkpCi0gICAgICAgICAgICBzZWxmLl9pbmNvbWluZ19mcmFtZV9maWx0ZXIgPSB1dGls
Ll9SRkMxOTc5SW5mbGF0ZXIoKQotCi0gICAgICAgIHNlbGYuX2ZyYWdtZW50ZWQgPSBGYWxzZQot
Ci0gICAgZGVmIF9tYXNrX2h5Ymkoc2VsZiwgcyk6Ci0gICAgICAgICMgVE9ETyh0eW9zaGlubyk6
IG9zLnVyYW5kb20gZG9lcyBvcGVuL3JlYWQvY2xvc2UgZm9yIGV2ZXJ5IGNhbGwuIElmCi0gICAg
ICAgICMgcGVyZm9ybWFuY2UgbWF0dGVycywgY2hhbmdlIHRoaXMgdG8gc29tZSBsaWJyYXJ5IGNh
bGwgdGhhdCBnZW5lcmF0ZXMKLSAgICAgICAgIyBjcnlwdG9ncmFwaGljYWxseSBzZWN1cmUgcHNl
dWRvIHJhbmRvbSBudW1iZXIgc2VxdWVuY2UuCi0gICAgICAgIG1hc2tpbmdfbm9uY2UgPSBvcy51
cmFuZG9tKDQpCi0gICAgICAgIHJlc3VsdCA9IFttYXNraW5nX25vbmNlXQotICAgICAgICBjb3Vu
dCA9IDAKLSAgICAgICAgZm9yIGMgaW4gczoKLSAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoY2hy
KG9yZChjKSBeIG9yZChtYXNraW5nX25vbmNlW2NvdW50XSkpKQotICAgICAgICAgICAgY291bnQg
PSAoY291bnQgKyAxKSAlIGxlbihtYXNraW5nX25vbmNlKQotICAgICAgICByZXR1cm4gJycuam9p
bihyZXN1bHQpCi0KLSAgICBkZWYgc2VuZF9mcmFtZV9vZl9hcmJpdHJhcnlfYnl0ZXMoc2VsZiwg
aGVhZGVyLCBib2R5KToKLSAgICAgICAgc2VsZi5fc29ja2V0LnNlbmRhbGwoaGVhZGVyICsgc2Vs
Zi5fbWFza19oeWJpKGJvZHkpKQotCi0gICAgZGVmIHNlbmRfZGF0YShzZWxmLCBwYXlsb2FkLCBm
cmFtZV90eXBlLCBlbmQ9VHJ1ZSwgbWFzaz1UcnVlLAotICAgICAgICAgICAgICAgICAgcnN2MT0w
LCByc3YyPTAsIHJzdjM9MCk6Ci0gICAgICAgIGlmIHNlbGYuX291dGdvaW5nX2ZyYW1lX2ZpbHRl
ciBpcyBub3QgTm9uZToKLSAgICAgICAgICAgIHBheWxvYWQgPSBzZWxmLl9vdXRnb2luZ19mcmFt
ZV9maWx0ZXIuZmlsdGVyKHBheWxvYWQpCi0KLSAgICAgICAgaWYgc2VsZi5fZnJhZ21lbnRlZDoK
LSAgICAgICAgICAgIG9wY29kZSA9IE9QQ09ERV9DT05USU5VQVRJT04KLSAgICAgICAgZWxzZToK
LSAgICAgICAgICAgIG9wY29kZSA9IGZyYW1lX3R5cGUKLQotICAgICAgICBpZiBlbmQ6Ci0gICAg
ICAgICAgICBzZWxmLl9mcmFnbWVudGVkID0gRmFsc2UKLSAgICAgICAgICAgIGZpbiA9IDEKLSAg
ICAgICAgZWxzZToKLSAgICAgICAgICAgIHNlbGYuX2ZyYWdtZW50ZWQgPSBUcnVlCi0gICAgICAg
ICAgICBmaW4gPSAwCi0KLSAgICAgICAgaWYgc2VsZi5faGFuZHNoYWtlLl9vcHRpb25zLnVzZV9k
ZWZsYXRlX2ZyYW1lOgotICAgICAgICAgICAgcnN2MSA9IDEKLQotICAgICAgICBpZiBtYXNrOgot
ICAgICAgICAgICAgbWFza19iaXQgPSAxIDw8IDcKLSAgICAgICAgZWxzZToKLSAgICAgICAgICAg
IG1hc2tfYml0ID0gMAotCi0gICAgICAgIGhlYWRlciA9IGNocihmaW4gPDwgNyB8IHJzdjEgPDwg
NiB8IHJzdjIgPDwgNSB8IHJzdjMgPDwgNCB8IG9wY29kZSkKLSAgICAgICAgcGF5bG9hZF9sZW5n
dGggPSBsZW4ocGF5bG9hZCkKLSAgICAgICAgaWYgcGF5bG9hZF9sZW5ndGggPD0gMTI1OgotICAg
ICAgICAgICAgaGVhZGVyICs9IGNocihtYXNrX2JpdCB8IHBheWxvYWRfbGVuZ3RoKQotICAgICAg
ICBlbGlmIHBheWxvYWRfbGVuZ3RoIDwgMSA8PCAxNjoKLSAgICAgICAgICAgIGhlYWRlciArPSBj
aHIobWFza19iaXQgfCAxMjYpICsgc3RydWN0LnBhY2soJyFIJywgcGF5bG9hZF9sZW5ndGgpCi0g
ICAgICAgIGVsaWYgcGF5bG9hZF9sZW5ndGggPCAxIDw8IDYzOgotICAgICAgICAgICAgaGVhZGVy
ICs9IGNocihtYXNrX2JpdCB8IDEyNykgKyBzdHJ1Y3QucGFjaygnIVEnLCBwYXlsb2FkX2xlbmd0
aCkKLSAgICAgICAgZWxzZToKLSAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbignVG9vIGxvbmcg
cGF5bG9hZCAoJWQgYnl0ZSknICUgcGF5bG9hZF9sZW5ndGgpCi0gICAgICAgIGlmIG1hc2s6Ci0g
ICAgICAgICAgICBwYXlsb2FkID0gc2VsZi5fbWFza19oeWJpKHBheWxvYWQpCi0gICAgICAgIHNl
bGYuX3NvY2tldC5zZW5kYWxsKGhlYWRlciArIHBheWxvYWQpCi0KLSAgICBkZWYgc2VuZF9iaW5h
cnkoc2VsZiwgcGF5bG9hZCwgZW5kPVRydWUsIG1hc2s9VHJ1ZSk6Ci0gICAgICAgIHNlbGYuc2Vu
ZF9kYXRhKHBheWxvYWQsIE9QQ09ERV9CSU5BUlksIGVuZCwgbWFzaykKLQotICAgIGRlZiBzZW5k
X3RleHQoc2VsZiwgcGF5bG9hZCwgZW5kPVRydWUsIG1hc2s9VHJ1ZSk6Ci0gICAgICAgIHNlbGYu
c2VuZF9kYXRhKHBheWxvYWQuZW5jb2RlKCd1dGYtOCcpLCBPUENPREVfVEVYVCwgZW5kLCBtYXNr
KQotCi0gICAgZGVmIF9hc3NlcnRfcmVjZWl2ZV9kYXRhKHNlbGYsIHBheWxvYWQsIG9wY29kZSwg
ZmluLCByc3YxLCByc3YyLCByc3YzKToKLSAgICAgICAgKGFjdHVhbF9maW4sIGFjdHVhbF9yc3Yx
LCBhY3R1YWxfcnN2MiwgYWN0dWFsX3JzdjMsIGFjdHVhbF9vcGNvZGUsCi0gICAgICAgICBwYXls
b2FkX2xlbmd0aCkgPSByZWFkX2ZyYW1lX2hlYWRlcihzZWxmLl9zb2NrZXQpCi0KLSAgICAgICAg
aWYgYWN0dWFsX29wY29kZSAhPSBvcGNvZGU6Ci0gICAgICAgICAgICByYWlzZSBFeGNlcHRpb24o
Ci0gICAgICAgICAgICAgICAgJ1VuZXhwZWN0ZWQgb3Bjb2RlOiAlZCAoZXhwZWN0ZWQpIHZzICVk
IChhY3R1YWwpJyAlCi0gICAgICAgICAgICAgICAgKG9wY29kZSwgYWN0dWFsX29wY29kZSkpCi0K
LSAgICAgICAgaWYgYWN0dWFsX2ZpbiAhPSBmaW46Ci0gICAgICAgICAgICByYWlzZSBFeGNlcHRp
b24oCi0gICAgICAgICAgICAgICAgJ1VuZXhwZWN0ZWQgZmluOiAlZCAoZXhwZWN0ZWQpIHZzICVk
IChhY3R1YWwpJyAlCi0gICAgICAgICAgICAgICAgKGZpbiwgYWN0dWFsX2ZpbikpCi0KLSAgICAg
ICAgaWYgcnN2MSBpcyBOb25lOgotICAgICAgICAgICAgcnN2MSA9IDAKLSAgICAgICAgICAgIGlm
IHNlbGYuX2hhbmRzaGFrZS5fb3B0aW9ucy51c2VfZGVmbGF0ZV9mcmFtZToKLSAgICAgICAgICAg
ICAgICByc3YxID0gMQotCi0gICAgICAgIGlmIHJzdjIgaXMgTm9uZToKLSAgICAgICAgICAgIHJz
djIgPSAwCi0KLSAgICAgICAgaWYgcnN2MyBpcyBOb25lOgotICAgICAgICAgICAgcnN2MyA9IDAK
LQotICAgICAgICBpZiBhY3R1YWxfcnN2MSAhPSByc3YxOgotICAgICAgICAgICAgcmFpc2UgRXhj
ZXB0aW9uKAotICAgICAgICAgICAgICAgICdVbmV4cGVjdGVkIHJzdjE6ICVyIChleHBlY3RlZCkg
dnMgJXIgKGFjdHVhbCknICUKLSAgICAgICAgICAgICAgICAocnN2MSwgYWN0dWFsX3JzdjEpKQot
Ci0gICAgICAgIGlmIGFjdHVhbF9yc3YyICE9IHJzdjI6Ci0gICAgICAgICAgICByYWlzZSBFeGNl
cHRpb24oCi0gICAgICAgICAgICAgICAgJ1VuZXhwZWN0ZWQgcnN2MjogJXIgKGV4cGVjdGVkKSB2
cyAlciAoYWN0dWFsKScgJQotICAgICAgICAgICAgICAgIChyc3YyLCBhY3R1YWxfcnN2MikpCi0K
LSAgICAgICAgaWYgYWN0dWFsX3JzdjMgIT0gcnN2MzoKLSAgICAgICAgICAgIHJhaXNlIEV4Y2Vw
dGlvbigKLSAgICAgICAgICAgICAgICAnVW5leHBlY3RlZCByc3YzOiAlciAoZXhwZWN0ZWQpIHZz
ICVyIChhY3R1YWwpJyAlCi0gICAgICAgICAgICAgICAgKHJzdjMsIGFjdHVhbF9yc3YzKSkKLQot
ICAgICAgICByZWNlaXZlZCA9IHJlY2VpdmVfYnl0ZXMoc2VsZi5fc29ja2V0LCBwYXlsb2FkX2xl
bmd0aCkKLQotICAgICAgICBpZiBzZWxmLl9pbmNvbWluZ19mcmFtZV9maWx0ZXIgaXMgbm90IE5v
bmU6Ci0gICAgICAgICAgICByZWNlaXZlZCA9IHNlbGYuX2luY29taW5nX2ZyYW1lX2ZpbHRlci5m
aWx0ZXIocmVjZWl2ZWQpCi0KLSAgICAgICAgaWYgbGVuKHJlY2VpdmVkKSAhPSBsZW4ocGF5bG9h
ZCk6Ci0gICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oCi0gICAgICAgICAgICAgICAgJ1VuZXhw
ZWN0ZWQgcGF5bG9hZCBsZW5ndGg6ICVkIChleHBlY3RlZCkgdnMgJWQgKGFjdHVhbCknICUKLSAg
ICAgICAgICAgICAgICAobGVuKHBheWxvYWQpLCBsZW4ocmVjZWl2ZWQpKSkKLQotICAgICAgICBp
ZiBwYXlsb2FkICE9IHJlY2VpdmVkOgotICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKAotICAg
ICAgICAgICAgICAgICdVbmV4cGVjdGVkIHBheWxvYWQ6ICVyIChleHBlY3RlZCkgdnMgJXIgKGFj
dHVhbCknICUKLSAgICAgICAgICAgICAgICAocGF5bG9hZCwgcmVjZWl2ZWQpKQotCi0gICAgZGVm
IGFzc2VydF9yZWNlaXZlX2JpbmFyeShzZWxmLCBwYXlsb2FkLCBvcGNvZGU9T1BDT0RFX0JJTkFS
WSwgZmluPTEsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICByc3YxPU5vbmUsIHJzdjI9
Tm9uZSwgcnN2Mz1Ob25lKToKLSAgICAgICAgc2VsZi5fYXNzZXJ0X3JlY2VpdmVfZGF0YShwYXls
b2FkLCBvcGNvZGUsIGZpbiwgcnN2MSwgcnN2MiwgcnN2MykKLQotICAgIGRlZiBhc3NlcnRfcmVj
ZWl2ZV90ZXh0KHNlbGYsIHBheWxvYWQsIG9wY29kZT1PUENPREVfVEVYVCwgZmluPTEsCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgcnN2MT1Ob25lLCByc3YyPU5vbmUsIHJzdjM9Tm9uZSk6
Ci0gICAgICAgIHNlbGYuX2Fzc2VydF9yZWNlaXZlX2RhdGEocGF5bG9hZC5lbmNvZGUoJ3V0Zi04
JyksIG9wY29kZSwgZmluLCByc3YxLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHJzdjIsIHJzdjMpCi0KLSAgICBkZWYgX2J1aWxkX2Nsb3NlX2ZyYW1lKHNlbGYsIGNvZGUsIHJl
YXNvbiwgbWFzayk6Ci0gICAgICAgIGZyYW1lID0gY2hyKDEgPDwgNyB8IE9QQ09ERV9DTE9TRSkK
LQotICAgICAgICBpZiBjb2RlIGlzIG5vdCBOb25lOgotICAgICAgICAgICAgYm9keSA9IHN0cnVj
dC5wYWNrKCchSCcsIGNvZGUpICsgcmVhc29uLmVuY29kZSgndXRmLTgnKQotICAgICAgICBlbHNl
OgotICAgICAgICAgICAgYm9keSA9ICcnCi0gICAgICAgIGlmIG1hc2s6Ci0gICAgICAgICAgICBm
cmFtZSArPSBjaHIoMSA8PCA3IHwgbGVuKGJvZHkpKSArIHNlbGYuX21hc2tfaHliaShib2R5KQot
ICAgICAgICBlbHNlOgotICAgICAgICAgICAgZnJhbWUgKz0gY2hyKGxlbihib2R5KSkgKyBib2R5
Ci0gICAgICAgIHJldHVybiBmcmFtZQotCi0gICAgZGVmIHNlbmRfY2xvc2Uoc2VsZiwgY29kZSwg
cmVhc29uKToKLSAgICAgICAgc2VsZi5fc29ja2V0LnNlbmRhbGwoCi0gICAgICAgICAgICBzZWxm
Ll9idWlsZF9jbG9zZV9mcmFtZShjb2RlLCByZWFzb24sIFRydWUpKQotCi0gICAgZGVmIGFzc2Vy
dF9yZWNlaXZlX2Nsb3NlKHNlbGYsIGNvZGUsIHJlYXNvbik6Ci0gICAgICAgIGV4cGVjdGVkX2Zy
YW1lID0gc2VsZi5fYnVpbGRfY2xvc2VfZnJhbWUoY29kZSwgcmVhc29uLCBGYWxzZSkKLSAgICAg
ICAgYWN0dWFsX2ZyYW1lID0gcmVjZWl2ZV9ieXRlcyhzZWxmLl9zb2NrZXQsIGxlbihleHBlY3Rl
ZF9mcmFtZSkpCi0gICAgICAgIGlmIGFjdHVhbF9mcmFtZSAhPSBleHBlY3RlZF9mcmFtZToKLSAg
ICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigKLSAgICAgICAgICAgICAgICAnVW5leHBlY3RlZCBj
bG9zZSBmcmFtZTogJXIgKGV4cGVjdGVkKSB2cyAlciAoYWN0dWFsKScgJQotICAgICAgICAgICAg
ICAgIChleHBlY3RlZF9mcmFtZSwgYWN0dWFsX2ZyYW1lKSkKLQotCi1jbGFzcyBXZWJTb2NrZXRT
dHJlYW1IaXhpZTc1KG9iamVjdCk6Ci0gICAgIiIiRnJhbWUgcHJvY2Vzc29yIGZvciB0aGUgV2Vi
U29ja2V0IHByb3RvY29sIHZlcnNpb24gSGl4aWUgNzUgYW5kIEh5QmkgMDAuCi0gICAgIiIiCi0K
LSAgICBfQ0xPU0VfRlJBTUUgPSAnXHhmZlx4MDAnCi0KLSAgICBkZWYgX19pbml0X18oc2VsZiwg
c29ja2V0LCB1bnVzZWRfaGFuZHNoYWtlKToKLSAgICAgICAgc2VsZi5fc29ja2V0ID0gc29ja2V0
Ci0KLSAgICBkZWYgc2VuZF9mcmFtZV9vZl9hcmJpdHJhcnlfYnl0ZXMoc2VsZiwgaGVhZGVyLCBi
b2R5KToKLSAgICAgICAgc2VsZi5fc29ja2V0LnNlbmRhbGwoaGVhZGVyICsgYm9keSkKLQotICAg
IGRlZiBzZW5kX2RhdGEoc2VsZiwgcGF5bG9hZCwgdW51c2VkX2ZyYW1lX3R5cGVtLCB1bnVzZWRf
ZW5kLCB1bnVzZWRfbWFzayk6Ci0gICAgICAgIGZyYW1lID0gJycuam9pbihbJ1x4MDAnLCBwYXls
b2FkLCAnXHhmZiddKQotICAgICAgICBzZWxmLl9zb2NrZXQuc2VuZGFsbChmcmFtZSkKLQotICAg
IGRlZiBzZW5kX2JpbmFyeShzZWxmLCB1bnVzZWRfcGF5bG9hZCwgdW51c2VkX2VuZCwgdW51c2Vk
X21hc2spOgotICAgICAgICBwYXNzCi0KLSAgICBkZWYgc2VuZF90ZXh0KHNlbGYsIHBheWxvYWQs
IHVudXNlZF9lbmQsIHVudXNlZF9tYXNrKToKLSAgICAgICAgZW5jb2RlZF9wYXlsb2FkID0gcGF5
bG9hZC5lbmNvZGUoJ3V0Zi04JykKLSAgICAgICAgZnJhbWUgPSAnJy5qb2luKFsnXHgwMCcsIGVu
Y29kZWRfcGF5bG9hZCwgJ1x4ZmYnXSkKLSAgICAgICAgc2VsZi5fc29ja2V0LnNlbmRhbGwoZnJh
bWUpCi0KLSAgICBkZWYgYXNzZXJ0X3JlY2VpdmVfYmluYXJ5KHNlbGYsIHBheWxvYWQsIG9wY29k
ZT1PUENPREVfQklOQVJZLCBmaW49MSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJz
djE9MCwgcnN2Mj0wLCByc3YzPTApOgotICAgICAgICByYWlzZSBFeGNlcHRpb24oJ0JpbmFyeSBm
cmFtZSBpcyBub3Qgc3VwcG9ydGVkIGluIGhpeGllNzUnKQotCi0gICAgZGVmIGFzc2VydF9yZWNl
aXZlX3RleHQoc2VsZiwgcGF5bG9hZCk6Ci0gICAgICAgIHJlY2VpdmVkID0gcmVjZWl2ZV9ieXRl
cyhzZWxmLl9zb2NrZXQsIDEpCi0KLSAgICAgICAgaWYgcmVjZWl2ZWQgIT0gJ1x4MDAnOgotICAg
ICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKAotICAgICAgICAgICAgICAgICdVbmV4cGVjdGVkIGZy
YW1lIHR5cGU6ICVkIChleHBlY3RlZCkgdnMgJWQgKGFjdHVhbCknICUKLSAgICAgICAgICAgICAg
ICAoMCwgb3JkKHJlY2VpdmVkKSkpCi0KLSAgICAgICAgcmVjZWl2ZWQgPSByZWNlaXZlX2J5dGVz
KHNlbGYuX3NvY2tldCwgbGVuKHBheWxvYWQpICsgMSkKLSAgICAgICAgaWYgcmVjZWl2ZWRbLTFd
ICE9ICdceGZmJzoKLSAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigKLSAgICAgICAgICAgICAg
ICAnVGVybWluYXRpb24gZXhwZWN0ZWQ6IDB4ZmYgKGV4cGVjdGVkKSB2cyAlciAoYWN0dWFsKScg
JQotICAgICAgICAgICAgICAgIHJlY2VpdmVkKQotCi0gICAgICAgIGlmIHJlY2VpdmVkWzA6LTFd
ICE9IHBheWxvYWQ6Ci0gICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oCi0gICAgICAgICAgICAg
ICAgJ1VuZXhwZWN0ZWQgcGF5bG9hZDogJXIgKGV4cGVjdGVkKSB2cyAlciAoYWN0dWFsKScgJQot
ICAgICAgICAgICAgICAgIChwYXlsb2FkLCByZWNlaXZlZFswOi0xXSkpCi0KLSAgICBkZWYgc2Vu
ZF9jbG9zZShzZWxmLCBjb2RlLCByZWFzb24pOgotICAgICAgICBzZWxmLl9zb2NrZXQuc2VuZGFs
bChzZWxmLl9DTE9TRV9GUkFNRSkKLQotICAgIGRlZiBhc3NlcnRfcmVjZWl2ZV9jbG9zZShzZWxm
LCB1bnVzZWRfY29kZSwgdW51c2VkX3JlYXNvbik6Ci0gICAgICAgIGNsb3NpbmcgPSByZWNlaXZl
X2J5dGVzKHNlbGYuX3NvY2tldCwgbGVuKHNlbGYuX0NMT1NFX0ZSQU1FKSkKLSAgICAgICAgaWYg
Y2xvc2luZyAhPSBzZWxmLl9DTE9TRV9GUkFNRToKLSAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlv
bignRGlkblwndCByZWNlaXZlIGNsb3NpbmcgaGFuZHNoYWtlJykKLQotCi1jbGFzcyBDbGllbnRP
cHRpb25zKG9iamVjdCk6Ci0gICAgIiIiSG9sZHMgb3B0aW9uIHZhbHVlcyB0byBjb25maWd1cmUg
dGhlIENsaWVudCBvYmplY3QuIiIiCi0KLSAgICBkZWYgX19pbml0X18oc2VsZik6Ci0gICAgICAg
IHNlbGYudmVyc2lvbiA9IDEzCi0gICAgICAgIHNlbGYuc2VydmVyX2hvc3QgPSAnJwotICAgICAg
ICBzZWxmLm9yaWdpbiA9ICcnCi0gICAgICAgIHNlbGYucmVzb3VyY2UgPSAnJwotICAgICAgICBz
ZWxmLnNlcnZlcl9wb3J0ID0gLTEKLSAgICAgICAgc2VsZi5zb2NrZXRfdGltZW91dCA9IDEwMDAK
LSAgICAgICAgc2VsZi51c2VfdGxzID0gRmFsc2UKLSAgICAgICAgc2VsZi5leHRlbnNpb25zID0g
W10KLSAgICAgICAgIyBFbmFibGUgZGVmbGF0ZS1hcHBsaWNhdGlvbi1kYXRhLgotICAgICAgICBz
ZWxmLnVzZV9kZWZsYXRlX2ZyYW1lID0gRmFsc2UKLSAgICAgICAgIyBFbmFibGUgbXV4Ci0gICAg
ICAgIHNlbGYudXNlX211eCA9IEZhbHNlCi0KLSAgICBkZWYgZW5hYmxlX2RlZmxhdGVfZnJhbWUo
c2VsZik6Ci0gICAgICAgIHNlbGYudXNlX2RlZmxhdGVfZnJhbWUgPSBUcnVlCi0gICAgICAgIHNl
bGYuZXh0ZW5zaW9ucy5hcHBlbmQoX0RFRkxBVEVfRlJBTUVfRVhURU5TSU9OKQotCi0gICAgZGVm
IGVuYWJsZV9tdXgoc2VsZik6Ci0gICAgICAgIHNlbGYudXNlX211eCA9IFRydWUKLSAgICAgICAg
c2VsZi5leHRlbnNpb25zLmFwcGVuZChfTVVYX0VYVEVOU0lPTikKLQotCi1kZWYgY29ubmVjdF9z
b2NrZXRfd2l0aF9yZXRyeShob3N0LCBwb3J0LCB0aW1lb3V0LCB1c2VfdGxzLAotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgcmV0cnk9MTAsIHNsZWVwX3NlYz0wLjEpOgotICAgIHJldHJ5
X2NvdW50ID0gMAotICAgIHdoaWxlIHJldHJ5X2NvdW50IDwgcmV0cnk6Ci0gICAgICAgIHRyeToK
LSAgICAgICAgICAgIHMgPSBzb2NrZXQuc29ja2V0KCkKLSAgICAgICAgICAgIHMuc2V0dGltZW91
dCh0aW1lb3V0KQotICAgICAgICAgICAgcy5jb25uZWN0KChob3N0LCBwb3J0KSkKLSAgICAgICAg
ICAgIGlmIHVzZV90bHM6Ci0gICAgICAgICAgICAgICAgcmV0dXJuIF9UTFNTb2NrZXQocykKLSAg
ICAgICAgICAgIHJldHVybiBzCi0gICAgICAgIGV4Y2VwdCBzb2NrZXQuZXJyb3IsIGU6Ci0gICAg
ICAgICAgICBpZiBlLmVycm5vICE9IGVycm5vLkVDT05OUkVGVVNFRDoKLSAgICAgICAgICAgICAg
ICByYWlzZQotICAgICAgICAgICAgZWxzZToKLSAgICAgICAgICAgICAgICByZXRyeV9jb3VudCA9
IHJldHJ5X2NvdW50ICsgMQotICAgICAgICAgICAgICAgIHRpbWUuc2xlZXAoc2xlZXBfc2VjKQot
Ci0gICAgcmV0dXJuIE5vbmUKLQotCi1jbGFzcyBDbGllbnQob2JqZWN0KToKLSAgICAiIiJXZWJT
b2NrZXQgY2xpZW50LiIiIgotCi0gICAgZGVmIF9faW5pdF9fKHNlbGYsIG9wdGlvbnMsIGhhbmRz
aGFrZSwgc3RyZWFtX2NsYXNzKToKLSAgICAgICAgc2VsZi5fbG9nZ2VyID0gdXRpbC5nZXRfY2xh
c3NfbG9nZ2VyKHNlbGYpCi0KLSAgICAgICAgc2VsZi5fb3B0aW9ucyA9IG9wdGlvbnMKLSAgICAg
ICAgc2VsZi5fc29ja2V0ID0gTm9uZQotCi0gICAgICAgIHNlbGYuX2hhbmRzaGFrZSA9IGhhbmRz
aGFrZQotICAgICAgICBzZWxmLl9zdHJlYW1fY2xhc3MgPSBzdHJlYW1fY2xhc3MKLQotICAgIGRl
ZiBjb25uZWN0KHNlbGYpOgotICAgICAgICBzZWxmLl9zb2NrZXQgPSBjb25uZWN0X3NvY2tldF93
aXRoX3JldHJ5KAotICAgICAgICAgICAgICAgIHNlbGYuX29wdGlvbnMuc2VydmVyX2hvc3QsCi0g
ICAgICAgICAgICAgICAgc2VsZi5fb3B0aW9ucy5zZXJ2ZXJfcG9ydCwKLSAgICAgICAgICAgICAg
ICBzZWxmLl9vcHRpb25zLnNvY2tldF90aW1lb3V0LAotICAgICAgICAgICAgICAgIHNlbGYuX29w
dGlvbnMudXNlX3RscykKLQotICAgICAgICBzZWxmLl9oYW5kc2hha2UuaGFuZHNoYWtlKHNlbGYu
X3NvY2tldCkKLQotICAgICAgICBzZWxmLl9zdHJlYW0gPSBzZWxmLl9zdHJlYW1fY2xhc3Moc2Vs
Zi5fc29ja2V0LCBzZWxmLl9oYW5kc2hha2UpCi0KLSAgICAgICAgc2VsZi5fbG9nZ2VyLmluZm8o
J0Nvbm5lY3Rpb24gZXN0YWJsaXNoZWQnKQotCi0gICAgZGVmIHNlbmRfZnJhbWVfb2ZfYXJiaXRy
YXJ5X2J5dGVzKHNlbGYsIGhlYWRlciwgYm9keSk6Ci0gICAgICAgIHNlbGYuX3N0cmVhbS5zZW5k
X2ZyYW1lX29mX2FyYml0cmFyeV9ieXRlcyhoZWFkZXIsIGJvZHkpCi0KLSAgICBkZWYgc2VuZF9t
ZXNzYWdlKHNlbGYsIG1lc3NhZ2UsIGVuZD1UcnVlLCBiaW5hcnk9RmFsc2UsIHJhdz1GYWxzZSwK
LSAgICAgICAgICAgICAgICAgICAgIG1hc2s9VHJ1ZSk6Ci0gICAgICAgIGlmIGJpbmFyeToKLSAg
ICAgICAgICAgIHNlbGYuX3N0cmVhbS5zZW5kX2JpbmFyeShtZXNzYWdlLCBlbmQsIG1hc2spCi0g
ICAgICAgIGVsaWYgcmF3OgotICAgICAgICAgICAgc2VsZi5fc3RyZWFtLnNlbmRfZGF0YShtZXNz
YWdlLCBPUENPREVfVEVYVCwgZW5kLCBtYXNrKQotICAgICAgICBlbHNlOgotICAgICAgICAgICAg
c2VsZi5fc3RyZWFtLnNlbmRfdGV4dChtZXNzYWdlLCBlbmQsIG1hc2spCi0KLSAgICBkZWYgYXNz
ZXJ0X3JlY2VpdmUoc2VsZiwgcGF5bG9hZCwgYmluYXJ5PUZhbHNlKToKLSAgICAgICAgaWYgYmlu
YXJ5OgotICAgICAgICAgICAgc2VsZi5fc3RyZWFtLmFzc2VydF9yZWNlaXZlX2JpbmFyeShwYXls
b2FkKQotICAgICAgICBlbHNlOgotICAgICAgICAgICAgc2VsZi5fc3RyZWFtLmFzc2VydF9yZWNl
aXZlX3RleHQocGF5bG9hZCkKLQotICAgIGRlZiBzZW5kX2Nsb3NlKHNlbGYsIGNvZGU9U1RBVFVT
X05PUk1BTF9DTE9TVVJFLCByZWFzb249JycpOgotICAgICAgICBzZWxmLl9zdHJlYW0uc2VuZF9j
bG9zZShjb2RlLCByZWFzb24pCi0KLSAgICBkZWYgYXNzZXJ0X3JlY2VpdmVfY2xvc2Uoc2VsZiwg
Y29kZT1TVEFUVVNfTk9STUFMX0NMT1NVUkUsIHJlYXNvbj0nJyk6Ci0gICAgICAgIHNlbGYuX3N0
cmVhbS5hc3NlcnRfcmVjZWl2ZV9jbG9zZShjb2RlLCByZWFzb24pCi0KLSAgICBkZWYgY2xvc2Vf
c29ja2V0KHNlbGYpOgotICAgICAgICBzZWxmLl9zb2NrZXQuY2xvc2UoKQotCi0gICAgZGVmIGFz
c2VydF9jb25uZWN0aW9uX2Nsb3NlZChzZWxmKToKLSAgICAgICAgdHJ5OgotICAgICAgICAgICAg
cmVhZF9kYXRhID0gcmVjZWl2ZV9ieXRlcyhzZWxmLl9zb2NrZXQsIDEpCi0gICAgICAgIGV4Y2Vw
dCBFeGNlcHRpb24sIGU6Ci0gICAgICAgICAgICBpZiBzdHIoZSkuZmluZCgKLSAgICAgICAgICAg
ICAgICAnQ29ubmVjdGlvbiBjbG9zZWQgYmVmb3JlIHJlY2VpdmluZyByZXF1ZXN0ZWQgbGVuZ3Ro
ICcpID09IDA6Ci0gICAgICAgICAgICAgICAgcmV0dXJuCi0gICAgICAgICAgICB0cnk6Ci0gICAg
ICAgICAgICAgICAgZXJyb3JfbnVtYmVyLCBtZXNzYWdlID0gZQotICAgICAgICAgICAgICAgIGZv
ciBlcnJvcl9uYW1lIGluIFsnRUNPTk5SRVNFVCcsICdXU0FFQ09OTlJFU0VUJ106Ci0gICAgICAg
ICAgICAgICAgICAgIGlmIChlcnJvcl9uYW1lIGluIGRpcihlcnJubykgYW5kCi0gICAgICAgICAg
ICAgICAgICAgICAgICBlcnJvcl9udW1iZXIgPT0gZ2V0YXR0cihlcnJubywgZXJyb3JfbmFtZSkp
OgotICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuCi0gICAgICAgICAgICBleGNlcHQ6Ci0g
ICAgICAgICAgICAgICAgcmFpc2UgZQotICAgICAgICAgICAgcmFpc2UgZQotCi0gICAgICAgIHJh
aXNlIEV4Y2VwdGlvbignQ29ubmVjdGlvbiBpcyBub3QgY2xvc2VkIChSZWFkOiAlciknICUgcmVh
ZF9kYXRhKQotCi0KLWRlZiBjcmVhdGVfY2xpZW50KG9wdGlvbnMpOgotICAgIHJldHVybiBDbGll
bnQoCi0gICAgICAgIG9wdGlvbnMsIFdlYlNvY2tldEhhbmRzaGFrZShvcHRpb25zKSwgV2ViU29j
a2V0U3RyZWFtKQotCi0KLWRlZiBjcmVhdGVfY2xpZW50X2h5YmkwMChvcHRpb25zKToKLSAgICBy
ZXR1cm4gQ2xpZW50KAotICAgICAgICBvcHRpb25zLAotICAgICAgICBXZWJTb2NrZXRIeWJpMDBI
YW5kc2hha2Uob3B0aW9ucywgJzAnKSwKLSAgICAgICAgV2ViU29ja2V0U3RyZWFtSGl4aWU3NSkK
LQotCi1kZWYgY3JlYXRlX2NsaWVudF9oaXhpZTc1KG9wdGlvbnMpOgotICAgIHJldHVybiBDbGll
bnQoCi0gICAgICAgIG9wdGlvbnMsIFdlYlNvY2tldEhpeGllNzVIYW5kc2hha2Uob3B0aW9ucyks
IFdlYlNvY2tldFN0cmVhbUhpeGllNzUpCi0KLQotIyB2aTpzdHM9NCBzdz00IGV0CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5
d2Vic29ja2V0L3NyYy90ZXN0L2VuZHRvZW5kX3dpdGhfZXh0ZXJuYWxfc2VydmVyLnB5IGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tl
dC9zcmMvdGVzdC9lbmR0b2VuZF93aXRoX2V4dGVybmFsX3NlcnZlci5weQpkZWxldGVkIGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggNDdmODZmZGI0MTYzZDRlNzM4OTUyYjNjY2I3N2YxOTIxNmJjNTkx
NS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3Ny
Yy90ZXN0L2VuZHRvZW5kX3dpdGhfZXh0ZXJuYWxfc2VydmVyLnB5CisrKyAvZGV2L251bGwKQEAg
LTEsNjcgKzAsMCBAQAotIyEvdXNyL2Jpbi9lbnYgcHl0aG9uCi0jCi0jIENvcHlyaWdodCAyMDEx
LCBHb29nbGUgSW5jLgotIyBBbGwgcmlnaHRzIHJlc2VydmVkLgotIwotIyBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSMg
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zIGFyZQotIyBtZXQ6Ci0jCi0jICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0jIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSMgICAgICog
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQot
IyBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyCi0jIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKLSMgZGlzdHJpYnV0aW9uLgotIyAgICAgKiBOZWl0aGVy
IHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCi0jIGNvbnRyaWJ1
dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBm
cm9tCi0jIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1p
c3Npb24uCi0jCi0jIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBI
T0xERVJTIEFORCBDT05UUklCVVRPUlMKLSMgIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKLSMgTElNSVRFRCBUTywgVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCi0jIEEg
UEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUg
Q09QWVJJR0hUCi0jIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLAotIyBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCi0jIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAotIyBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkKLSMgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotIyAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSMgT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
LQotCi0iIiJUZXN0IGZvciBlbmQtdG8tZW5kIHdpdGggZXh0ZXJuYWwgc2VydmVyLgotCi1UaGlz
IHRlc3QgaXMgbm90IHJ1biBieSBydW5fYWxsLnB5IGJlY2F1c2UgaXQgcmVxdWlyZXMgc29tZSBw
cmVwYXJhdGlvbnMuCi1JZiB5b3Ugd291bGQgbGlrZSB0byBydW4gdGhpcyB0ZXN0IGNvcnJlY3Rs
eSwgbGF1bmNoIEFwYWNoZSB3aXRoIG1vZF9weXRob24KLWFuZCBtb2RfcHl3ZWJzb2NrZXQgbWFu
dWFsbHkuIEluIGFkZGl0aW9uLCB5b3Ugc2hvdWxkIHBhc3MgYWxsb3dfZHJhZnQ3NSBvcHRpb24K
LWFuZCBleGFtcGxlIHBhdGggYXMgaGFuZGxlcl9zY2FuIG9wdGlvbiBhbmQgQXBhY2hlJ3MgRG9j
dW1lbnRSb290LgotIiIiCi0KLQotaW1wb3J0IG9wdHBhcnNlCi1pbXBvcnQgc3lzCi1pbXBvcnQg
dGVzdC50ZXN0X2VuZHRvZW5kCi1pbXBvcnQgdW5pdHRlc3QKLQotCi1fREVGQVVMVF9XRUJfU09D
S0VUX1BPUlQgPSA4MAotCi0KLWNsYXNzIEVuZFRvRW5kVGVzdFdpdGhFeHRlcm5hbFNlcnZlcih0
ZXN0LnRlc3RfZW5kdG9lbmQuRW5kVG9FbmRUZXN0KToKLSAgICBwYXNzCi0KLWlmIF9fbmFtZV9f
ID09ICdfX21haW5fXyc6Ci0gICAgcGFyc2VyID0gb3B0cGFyc2UuT3B0aW9uUGFyc2VyKCkKLSAg
ICBwYXJzZXIuYWRkX29wdGlvbignLXAnLCAnLS1wb3J0JywgZGVzdD0ncG9ydCcsIHR5cGU9J2lu
dCcsCi0gICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdD1fREVGQVVMVF9XRUJfU09DS0VUX1BP
UlQsCi0gICAgICAgICAgICAgICAgICAgICAgaGVscD0nZXh0ZXJuYWwgdGVzdCBzZXJ2ZXIgcG9y
dC4nKQotICAgIChvcHRpb25zLCBhcmdzKSA9IHBhcnNlci5wYXJzZV9hcmdzKCkKLQotICAgIHRl
c3QudGVzdF9lbmR0b2VuZC5fdXNlX2V4dGVybmFsX3NlcnZlciA9IFRydWUKLSAgICB0ZXN0LnRl
c3RfZW5kdG9lbmQuX2V4dGVybmFsX3NlcnZlcl9wb3J0ID0gb3B0aW9ucy5wb3J0Ci0KLSAgICB1
bml0dGVzdC5tYWluKGFyZ3Y9W3N5cy5hcmd2WzBdXSkKLQotCi0jIHZpOnN0cz00IHN3PTQgZXQK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvcHl3ZWJzb2NrZXQvc3JjL3Rlc3QvbW9jay5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3JjL3Rlc3QvbW9jay5w
eQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNmJmZmNhYzQ4ZGM0M2E1MmI5Y2NmMWJj
ZDAxMjk3NTQyNDA0OGQ2Ny4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3B5d2Vic29ja2V0L3NyYy90ZXN0L21vY2sucHkKKysrIC9kZXYvbnVsbApAQCAtMSwyMjEgKzAs
MCBAQAotIyBDb3B5cmlnaHQgMjAxMSwgR29vZ2xlIEluYy4KLSMgQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KLSMKLSMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0Ci0jIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKLSMgbWV0OgotIwotIyAgICAgKiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAotIyBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCi0jICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUKLSMgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgotIyBpbiB0aGUgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCi0jIGRpc3RyaWJ1
dGlvbi4KLSMgICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5h
bWVzIG9mIGl0cwotIyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9t
b3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQotIyB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lm
aWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgotIwotIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCi0jICJBUyBJUyIg
QU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
Ci0jIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUgotIyBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAotIyBPV05FUiBPUiBDT05UUklCVVRPUlMg
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKLSMgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VAotIyBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwKLSMgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCi0jIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSMgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFCi0jIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0KLQotIiIiTW9ja3MgZm9yIHRlc3RpbmcuCi0iIiIKLQot
Ci1pbXBvcnQgUXVldWUKLWltcG9ydCB0aHJlYWRpbmcKLQotZnJvbSBtb2RfcHl3ZWJzb2NrZXQg
aW1wb3J0IGNvbW1vbgotZnJvbSBtb2RfcHl3ZWJzb2NrZXQuc3RyZWFtIGltcG9ydCBTdHJlYW1I
aXhpZTc1Ci0KLQotY2xhc3MgX01vY2tDb25uQmFzZShvYmplY3QpOgotICAgICIiIkJhc2UgY2xh
c3Mgb2YgbW9ja3MgZm9yIG1vZF9weXRob24uYXBhY2hlLm1wX2Nvbm4uCi0KLSAgICBUaGlzIGVu
YWJsZXMgdGVzdHMgdG8gY2hlY2sgd2hhdCBpcyB3cml0dGVuIHRvIGEgKG1vY2spIG1wX2Nvbm4u
Ci0gICAgIiIiCi0KLSAgICBkZWYgX19pbml0X18oc2VsZik6Ci0gICAgICAgIHNlbGYuX3dyaXRl
X2RhdGEgPSBbXQotICAgICAgICBzZWxmLnJlbW90ZV9hZGRyID0gJ2Zha2VfYWRkcmVzcycKLQot
ICAgIGRlZiB3cml0ZShzZWxmLCBkYXRhKToKLSAgICAgICAgIiIiT3ZlcnJpZGUgbW9kX3B5dGhv
bi5hcGFjaGUubXBfY29ubi53cml0ZS4iIiIKLQotICAgICAgICBzZWxmLl93cml0ZV9kYXRhLmFw
cGVuZChkYXRhKQotCi0gICAgZGVmIHdyaXR0ZW5fZGF0YShzZWxmKToKLSAgICAgICAgIiIiR2V0
IGJ5dGVzIHdyaXR0ZW4gdG8gdGhpcyBtb2NrLiIiIgotCi0gICAgICAgIHJldHVybiAnJy5qb2lu
KHNlbGYuX3dyaXRlX2RhdGEpCi0KLQotY2xhc3MgTW9ja0Nvbm4oX01vY2tDb25uQmFzZSk6Ci0g
ICAgIiIiTW9jayBmb3IgbW9kX3B5dGhvbi5hcGFjaGUubXBfY29ubi4KLQotICAgIFRoaXMgZW5h
YmxlcyB0ZXN0cyB0byBzcGVjaWZ5IHdoYXQgc2hvdWxkIGJlIHJlYWQgZnJvbSBhIChtb2NrKSBt
cF9jb25uIGFzCi0gICAgd2VsbCBhcyB0byBjaGVjayB3aGF0IGlzIHdyaXR0ZW4gdG8gaXQuCi0g
ICAgIiIiCi0KLSAgICBkZWYgX19pbml0X18oc2VsZiwgcmVhZF9kYXRhKToKLSAgICAgICAgIiIi
Q29uc3RydWN0cyBhbiBpbnN0YW5jZS4KLQotICAgICAgICBBcmdzOgotICAgICAgICAgICAgcmVh
ZF9kYXRhOiBieXRlcyB0aGF0IHNob3VsZCBiZSByZXR1cm5lZCB3aGVuIHJlYWQqIG1ldGhvZHMg
YXJlCi0gICAgICAgICAgICBjYWxsZWQuCi0gICAgICAgICIiIgotCi0gICAgICAgIF9Nb2NrQ29u
bkJhc2UuX19pbml0X18oc2VsZikKLSAgICAgICAgc2VsZi5fcmVhZF9kYXRhID0gcmVhZF9kYXRh
Ci0gICAgICAgIHNlbGYuX3JlYWRfcG9zID0gMAotCi0gICAgZGVmIHJlYWRsaW5lKHNlbGYpOgot
ICAgICAgICAiIiJPdmVycmlkZSBtb2RfcHl0aG9uLmFwYWNoZS5tcF9jb25uLnJlYWRsaW5lLiIi
IgotCi0gICAgICAgIGlmIHNlbGYuX3JlYWRfcG9zID49IGxlbihzZWxmLl9yZWFkX2RhdGEpOgot
ICAgICAgICAgICAgcmV0dXJuICcnCi0gICAgICAgIGVuZF9pbmRleCA9IHNlbGYuX3JlYWRfZGF0
YS5maW5kKCdcbicsIHNlbGYuX3JlYWRfcG9zKSArIDEKLSAgICAgICAgaWYgbm90IGVuZF9pbmRl
eDoKLSAgICAgICAgICAgIGVuZF9pbmRleCA9IGxlbihzZWxmLl9yZWFkX2RhdGEpCi0gICAgICAg
IHJldHVybiBzZWxmLl9yZWFkX3VwX3RvKGVuZF9pbmRleCkKLQotICAgIGRlZiByZWFkKHNlbGYs
IGxlbmd0aCk6Ci0gICAgICAgICIiIk92ZXJyaWRlIG1vZF9weXRob24uYXBhY2hlLm1wX2Nvbm4u
cmVhZC4iIiIKLQotICAgICAgICBpZiBzZWxmLl9yZWFkX3BvcyA+PSBsZW4oc2VsZi5fcmVhZF9k
YXRhKToKLSAgICAgICAgICAgIHJldHVybiAnJwotICAgICAgICBlbmRfaW5kZXggPSBtaW4obGVu
KHNlbGYuX3JlYWRfZGF0YSksIHNlbGYuX3JlYWRfcG9zICsgbGVuZ3RoKQotICAgICAgICByZXR1
cm4gc2VsZi5fcmVhZF91cF90byhlbmRfaW5kZXgpCi0KLSAgICBkZWYgX3JlYWRfdXBfdG8oc2Vs
ZiwgZW5kX2luZGV4KToKLSAgICAgICAgbGluZSA9IHNlbGYuX3JlYWRfZGF0YVtzZWxmLl9yZWFk
X3BvczplbmRfaW5kZXhdCi0gICAgICAgIHNlbGYuX3JlYWRfcG9zID0gZW5kX2luZGV4Ci0gICAg
ICAgIHJldHVybiBsaW5lCi0KLQotY2xhc3MgTW9ja0Jsb2NraW5nQ29ubihfTW9ja0Nvbm5CYXNl
KToKLSAgICAiIiJCbG9ja2luZyBtb2NrIGZvciBtb2RfcHl0aG9uLmFwYWNoZS5tcF9jb25uLgot
Ci0gICAgVGhpcyBlbmFibGVzIHRlc3RzIHRvIHNwZWNpZnkgd2hhdCBzaG91bGQgYmUgcmVhZCBm
cm9tIGEgKG1vY2spIG1wX2Nvbm4gYXMKLSAgICB3ZWxsIGFzIHRvIGNoZWNrIHdoYXQgaXMgd3Jp
dHRlbiB0byBpdC4KLSAgICBDYWxsZXJzIG9mIHJlYWQqIG1ldGhvZHMgd2lsbCBibG9jayBpZiB0
aGVyZSBpcyBubyBieXRlcyBhdmFpbGFibGUuCi0gICAgIiIiCi0KLSAgICBkZWYgX19pbml0X18o
c2VsZik6Ci0gICAgICAgIF9Nb2NrQ29ubkJhc2UuX19pbml0X18oc2VsZikKLSAgICAgICAgc2Vs
Zi5fcXVldWUgPSBRdWV1ZS5RdWV1ZSgpCi0KLSAgICBkZWYgcmVhZGxpbmUoc2VsZik6Ci0gICAg
ICAgICIiIk92ZXJyaWRlIG1vZF9weXRob24uYXBhY2hlLm1wX2Nvbm4ucmVhZGxpbmUuIiIiCi0g
ICAgICAgIGxpbmUgPSAnJwotICAgICAgICB3aGlsZSBUcnVlOgotICAgICAgICAgICAgYyA9IHNl
bGYuX3F1ZXVlLmdldCgpCi0gICAgICAgICAgICBsaW5lICs9IGMKLSAgICAgICAgICAgIGlmIGMg
PT0gJ1xuJzoKLSAgICAgICAgICAgICAgICByZXR1cm4gbGluZQotCi0gICAgZGVmIHJlYWQoc2Vs
ZiwgbGVuZ3RoKToKLSAgICAgICAgIiIiT3ZlcnJpZGUgbW9kX3B5dGhvbi5hcGFjaGUubXBfY29u
bi5yZWFkLiIiIgotCi0gICAgICAgIGRhdGEgPSAnJwotICAgICAgICBmb3IgdW51c2VkIGluIHJh
bmdlKGxlbmd0aCk6Ci0gICAgICAgICAgICBkYXRhICs9IHNlbGYuX3F1ZXVlLmdldCgpCi0gICAg
ICAgIHJldHVybiBkYXRhCi0KLSAgICBkZWYgcHV0X2J5dGVzKHNlbGYsIGJ5dGVzKToKLSAgICAg
ICAgIiIiUHV0IGJ5dGVzIHRvIGJlIHJlYWQgZnJvbSB0aGlzIG1vY2suCi0KLSAgICAgICAgQXJn
czoKLSAgICAgICAgICAgIGJ5dGVzOiBieXRlcyB0byBiZSByZWFkLgotICAgICAgICAiIiIKLQot
ICAgICAgICBmb3IgYnl0ZSBpbiBieXRlczoKLSAgICAgICAgICAgIHNlbGYuX3F1ZXVlLnB1dChi
eXRlKQotCi0KLWNsYXNzIE1vY2tUYWJsZShkaWN0KToKLSAgICAiIiJNb2NrIHRhYmxlLgotCi0g
ICAgVGhpcyBtaW1pY3MgbW9kX3B5dGhvbiBtcF90YWJsZS4gTm90ZSB0aGF0IG9ubHkgdGhlIG1l
dGhvZHMgdXNlZCBieQotICAgIHRlc3RzIGFyZSBvdmVycmlkZGVuLgotICAgICIiIgotCi0gICAg
ZGVmIF9faW5pdF9fKHNlbGYsIGNvcHlfZnJvbT17fSk6Ci0gICAgICAgIGlmIGlzaW5zdGFuY2Uo
Y29weV9mcm9tLCBkaWN0KToKLSAgICAgICAgICAgIGNvcHlfZnJvbSA9IGNvcHlfZnJvbS5pdGVt
cygpCi0gICAgICAgIGZvciBrZXksIHZhbHVlIGluIGNvcHlfZnJvbToKLSAgICAgICAgICAgIHNl
bGYuX19zZXRpdGVtX18oa2V5LCB2YWx1ZSkKLQotICAgIGRlZiBfX2dldGl0ZW1fXyhzZWxmLCBr
ZXkpOgotICAgICAgICByZXR1cm4gc3VwZXIoTW9ja1RhYmxlLCBzZWxmKS5fX2dldGl0ZW1fXyhr
ZXkubG93ZXIoKSkKLQotICAgIGRlZiBfX3NldGl0ZW1fXyhzZWxmLCBrZXksIHZhbHVlKToKLSAg
ICAgICAgc3VwZXIoTW9ja1RhYmxlLCBzZWxmKS5fX3NldGl0ZW1fXyhrZXkubG93ZXIoKSwgdmFs
dWUpCi0KLSAgICBkZWYgZ2V0KHNlbGYsIGtleSwgZGVmX3ZhbHVlPU5vbmUpOgotICAgICAgICBy
ZXR1cm4gc3VwZXIoTW9ja1RhYmxlLCBzZWxmKS5nZXQoa2V5Lmxvd2VyKCksIGRlZl92YWx1ZSkK
LQotCi1jbGFzcyBNb2NrUmVxdWVzdChvYmplY3QpOgotICAgICIiIk1vY2sgcmVxdWVzdC4KLQot
ICAgIFRoaXMgbWltaWNzIG1vZF9weXRob24gcmVxdWVzdC4KLSAgICAiIiIKLQotICAgIGRlZiBf
X2luaXRfXyhzZWxmLCB1cmk9Tm9uZSwgaGVhZGVyc19pbj17fSwgY29ubmVjdGlvbj1Ob25lLCBt
ZXRob2Q9J0dFVCcsCi0gICAgICAgICAgICAgICAgIHByb3RvY29sPSdIVFRQLzEuMScsIGlzX2h0
dHBzPUZhbHNlKToKLSAgICAgICAgIiIiQ29uc3RydWN0IGFuIGluc3RhbmNlLgotCi0gICAgICAg
IEFyZ3VtZW50czoKLSAgICAgICAgICAgIHVyaTogVVJJIG9mIHRoZSByZXF1ZXN0LgotICAgICAg
ICAgICAgaGVhZGVyc19pbjogUmVxdWVzdCBoZWFkZXJzLgotICAgICAgICAgICAgY29ubmVjdGlv
bjogQ29ubmVjdGlvbiB1c2VkIGZvciB0aGUgcmVxdWVzdC4KLSAgICAgICAgICAgIG1ldGhvZDog
cmVxdWVzdCBtZXRob2QuCi0gICAgICAgICAgICBpc19odHRwczogV2hldGhlciB0aGlzIHJlcXVl
c3QgaXMgb3ZlciBTU0wuCi0KLSAgICAgICAgU2VlIHRoZSBkb2N1bWVudCBvZiBtb2RfcHl0aG9u
IFJlcXVlc3QgZm9yIGRldGFpbHMuCi0gICAgICAgICIiIgotICAgICAgICBzZWxmLnVyaSA9IHVy
aQotICAgICAgICBzZWxmLnVucGFyc2VkX3VyaSA9IHVyaQotICAgICAgICBzZWxmLmNvbm5lY3Rp
b24gPSBjb25uZWN0aW9uCi0gICAgICAgIHNlbGYubWV0aG9kID0gbWV0aG9kCi0gICAgICAgIHNl
bGYucHJvdG9jb2wgPSBwcm90b2NvbAotICAgICAgICBzZWxmLmhlYWRlcnNfaW4gPSBNb2NrVGFi
bGUoaGVhZGVyc19pbikKLSAgICAgICAgIyBzZWxmLmlzX2h0dHBzXyBuZWVkcyB0byBiZSBhY2Nl
c3NpYmxlIGZyb20gdGVzdHMuICBUbyBhdm9pZCBuYW1lCi0gICAgICAgICMgY29uZmxpY3Qgd2l0
aCBzZWxmLmlzX2h0dHBzKCksIGl0IGlzIG5hbWVkIGFzIHN1Y2guCi0gICAgICAgIHNlbGYuaXNf
aHR0cHNfID0gaXNfaHR0cHMKLSAgICAgICAgc2VsZi53c19zdHJlYW0gPSBTdHJlYW1IaXhpZTc1
KHNlbGYsIFRydWUpCi0gICAgICAgIHNlbGYud3NfY2xvc2VfY29kZSA9IE5vbmUKLSAgICAgICAg
c2VsZi53c19jbG9zZV9yZWFzb24gPSBOb25lCi0gICAgICAgIHNlbGYud3NfdmVyc2lvbiA9IGNv
bW1vbi5WRVJTSU9OX0hZQkkwMAotICAgICAgICBzZWxmLndzX2RlZmxhdGUgPSBGYWxzZQotCi0g
ICAgZGVmIGlzX2h0dHBzKHNlbGYpOgotICAgICAgICAiIiJSZXR1cm4gd2hldGhlciB0aGlzIHJl
cXVlc3QgaXMgb3ZlciBTU0wuIiIiCi0gICAgICAgIHJldHVybiBzZWxmLmlzX2h0dHBzXwotCi0K
LWNsYXNzIE1vY2tEaXNwYXRjaGVyKG9iamVjdCk6Ci0gICAgIiIiTW9jayBmb3IgZGlzcGF0Y2gu
RGlzcGF0Y2hlci4iIiIKLQotICAgIGRlZiBfX2luaXRfXyhzZWxmKToKLSAgICAgICAgc2VsZi5k
b19leHRyYV9oYW5kc2hha2VfY2FsbGVkID0gRmFsc2UKLQotICAgIGRlZiBkb19leHRyYV9oYW5k
c2hha2Uoc2VsZiwgY29ubl9jb250ZXh0KToKLSAgICAgICAgc2VsZi5kb19leHRyYV9oYW5kc2hh
a2VfY2FsbGVkID0gVHJ1ZQotCi0gICAgZGVmIHRyYW5zZmVyX2RhdGEoc2VsZiwgY29ubl9jb250
ZXh0KToKLSAgICAgICAgcGFzcwotCi0KLSMgdmk6c3RzPTQgc3c9NCBldApkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNv
Y2tldC9zcmMvdGVzdC9tdXhfY2xpZW50X2Zvcl90ZXN0aW5nLnB5IGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9zcmMvdGVzdC9t
dXhfY2xpZW50X2Zvcl90ZXN0aW5nLnB5CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBk
ZDU0MzVhOGNjMGUyNzU1YzU4M2MzNmQwY2VhZjNmM2ZmNjAyMWIwLi4wMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3JjL3Rlc3QvbXV4X2NsaWVudF9m
b3JfdGVzdGluZy5weQorKysgL2Rldi9udWxsCkBAIC0xLDY5MCArMCwwIEBACi0jIS91c3IvYmlu
L2VudiBweXRob24KLSMKLSMgQ29weXJpZ2h0IDIwMTIsIEdvb2dsZSBJbmMuCi0jIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCi0jCi0jIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCi0jIG1ldDoKLSMK
LSMgICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKLSMgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgotIyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCi0jIGNvcHlyaWdodCBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKLSMgaW4gdGhl
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQot
IyBkaXN0cmlidXRpb24uCi0jICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4g
bm9yIHRoZSBuYW1lcyBvZiBpdHMKLSMgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9y
c2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KLSMgdGhpcyBzb2Z0d2FyZSB3aXRo
b3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLSMKLSMgVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwot
IyAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVAotIyBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKLSMgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKLSMgT1dORVIgT1IgQ09O
VFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
Ci0jIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QKLSMgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCi0jIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQotIyBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
Ci0jIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRQotIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0Yg
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotCi0KLSIiIldlYlNvY2tldCBjbGllbnQg
dXRpbGl0eSBmb3IgdGVzdGluZyBtdXggZXh0ZW5zaW9uLgotCi1UaGlzIGNvZGUgc2hvdWxkIGJl
IGluZGVwZW5kZW50IGZyb20gbW9kX3B5d2Vic29ja2V0LiBTZWUgdGhlIGNvbW1lbnQgb2YKLWNs
aWVudF9mb3JfdGVzdGluZy5weS4KLQotTk9URTogVGhpcyBjb2RlIGlzIGZhciBmcm9tIHJvYnVz
dCBsaWtlIGNsaWVudF9mb3JfdGVzdGluZy5weS4KLSIiIgotCi0KLQotaW1wb3J0IFF1ZXVlCi1p
bXBvcnQgYmFzZTY0Ci1pbXBvcnQgY29sbGVjdGlvbnMKLWltcG9ydCBlbWFpbAotaW1wb3J0IGVt
YWlsLnBhcnNlcgotaW1wb3J0IGxvZ2dpbmcKLWltcG9ydCBtYXRoCi1pbXBvcnQgb3MKLWltcG9y
dCByYW5kb20KLWltcG9ydCBzb2NrZXQKLWltcG9ydCBzdHJ1Y3QKLWltcG9ydCB0aHJlYWRpbmcK
LQotZnJvbSBtb2RfcHl3ZWJzb2NrZXQgaW1wb3J0IHV0aWwKLQotZnJvbSB0ZXN0IGltcG9ydCBj
bGllbnRfZm9yX3Rlc3RpbmcKLQotCi1fQ09OVFJPTF9DSEFOTkVMX0lEID0gMAotX0RFRkFVTFRf
Q0hBTk5FTF9JRCA9IDEKLQotX01VWF9PUENPREVfQUREX0NIQU5ORUxfUkVRVUVTVCA9IDAKLV9N
VVhfT1BDT0RFX0FERF9DSEFOTkVMX1JFU1BPTlNFID0gMQotX01VWF9PUENPREVfRkxPV19DT05U
Uk9MID0gMgotX01VWF9PUENPREVfRFJPUF9DSEFOTkVMID0gMwotX01VWF9PUENPREVfTkVXX0NI
QU5ORUxfU0xPVCA9IDQKLQotCi1jbGFzcyBfQ29udHJvbEJsb2NrOgotICAgIGRlZiBfX2luaXRf
XyhzZWxmLCBvcGNvZGUpOgotICAgICAgICBzZWxmLm9wY29kZSA9IG9wY29kZQotCi0KLWRlZiBf
cGFyc2VfaGFuZHNoYWtlX3Jlc3BvbnNlKHJlc3BvbnNlKToKLSAgICBzdGF0dXNfbGluZSwgaGVh
ZGVyX2xpbmVzID0gcmVzcG9uc2Uuc3BsaXQoJ1xyXG4nLCAxKQotCi0gICAgd29yZHMgPSBzdGF0
dXNfbGluZS5zcGxpdCgnICcpCi0gICAgaWYgbGVuKHdvcmRzKSA8IDM6Ci0gICAgICAgIHJhaXNl
IFZhbHVlRXJyb3IoJ0JhZCBTdGF0dXMtTGluZSBzeW50YXggJXInICUgc3RhdHVzX2xpbmUpCi0g
ICAgW3ZlcnNpb24sIHJlc3BvbnNlX2NvZGVdID0gd29yZHNbOjJdCi0gICAgaWYgdmVyc2lvbiAh
PSAnSFRUUC8xLjEnOgotICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCdCYWQgcmVzcG9uc2UgdmVy
c2lvbiAlcicgJSB2ZXJzaW9uKQotCi0gICAgaWYgcmVzcG9uc2VfY29kZSAhPSAnMTAxJzoKLSAg
ICAgICAgcmFpc2UgVmFsdWVFcnJvcignQmFkIHJlc3BvbnNlIGNvZGUgJXIgJyAlIHJlc3BvbnNl
X2NvZGUpCi0gICAgaGVhZGVycyA9IGVtYWlsLnBhcnNlci5QYXJzZXIoKS5wYXJzZXN0cihoZWFk
ZXJfbGluZXMpCi0gICAgcmV0dXJuIGhlYWRlcnMKLQotCi1kZWYgX3BhcnNlX2NoYW5uZWxfaWQo
ZGF0YSwgb2Zmc2V0PTApOgotICAgIGxlbmd0aCA9IGxlbihkYXRhKQotICAgIHJlbWFpbmluZyA9
IGxlbmd0aCAtIG9mZnNldAotCi0gICAgaWYgcmVtYWluaW5nIDw9IDA6Ci0gICAgICAgIHJhaXNl
IEV4Y2VwdGlvbignTm8gY2hhbm5lbCBpZCBmb3VuZCcpCi0KLSAgICBjaGFubmVsX2lkID0gb3Jk
KGRhdGFbb2Zmc2V0XSkKLSAgICBjaGFubmVsX2lkX2xlbmd0aCA9IDEKLSAgICBpZiBjaGFubmVs
X2lkICYgMHhlMCA9PSAweGUwOgotICAgICAgICBpZiByZW1haW5pbmcgPCA0OgotICAgICAgICAg
ICAgcmFpc2UgRXhjZXB0aW9uKCdJbnZhbGlkIGNoYW5uZWwgaWQgZm9ybWF0JykKLSAgICAgICAg
Y2hhbm5lbF9pZCA9IHN0cnVjdC51bnBhY2soJyFMJywKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgZGF0YVtvZmZzZXQ6b2Zmc2V0KzRdKVswXSAmIDB4MWZmZmZmZmYKLSAgICAg
ICAgY2hhbm5lbF9pZF9sZW5ndGggPSA0Ci0gICAgZWxpZiBjaGFubmVsX2lkICYgMHhjMCA9PSAw
eGMwOgotICAgICAgICBpZiByZW1haW5pbmcgPCAzOgotICAgICAgICAgICAgcmFpc2UgRXhjZXB0
aW9uKCdJbnZhbGlkIGNoYW5uZWwgaWQgZm9ybWF0JykKLSAgICAgICAgY2hhbm5lbF9pZCA9ICgo
KGNoYW5uZWxfaWQgJiAweDFmKSA8PCAxNikgKwotICAgICAgICAgICAgICAgICAgICAgIHN0cnVj
dC51bnBhY2soJyFIJywgZGF0YVtvZmZzZXQrMTpvZmZzZXQrM10pWzBdKQotICAgICAgICBjaGFu
bmVsX2lkX2xlbmd0aCA9IDMKLSAgICBlbGlmIGNoYW5uZWxfaWQgJiAweDgwID09IDB4ODA6Ci0g
ICAgICAgIGlmIHJlbWFpbmluZyA8IDI6Ci0gICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oJ0lu
dmFsaWQgY2hhbm5lbCBpZCBmb3JtYXQnKQotICAgICAgICBjaGFubmVsX2lkID0gc3RydWN0LnVu
cGFjaygnIUgnLCBkYXRhW29mZnNldDpvZmZzZXQrMl0pWzBdICYgMHgzZmZmCi0gICAgICAgIGNo
YW5uZWxfaWRfbGVuZ3RoID0gMgotCi0gICAgcmV0dXJuIGNoYW5uZWxfaWQsIGNoYW5uZWxfaWRf
bGVuZ3RoCi0KLQotZGVmIF9wYXJzZV9udW1iZXIoZGF0YSwgb2Zmc2V0PTApOgotICAgIGZpcnN0
X2J5dGUgPSBvcmQoZGF0YVtvZmZzZXRdKQotICAgIGlmIChmaXJzdF9ieXRlICYgMHg4MCkgIT0g
MDoKLSAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCdUaGUgTVNCIG9mIG51bWJlciBmaWVsZCBtdXN0
IGJlIHVuc2V0JykKLSAgICBmaXJzdF9ieXRlID0gZmlyc3RfYnl0ZSAmIDB4N2YKLSAgICBpZiBm
aXJzdF9ieXRlID09IDEyNzoKLSAgICAgICAgaWYgb2Zmc2V0ICsgOSA+IGxlbihkYXRhKToKLSAg
ICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbignSW52YWxpZCBudW1iZXInKQotICAgICAgICByZXR1
cm4gc3RydWN0LnVucGFjaygnIVEnLCBkYXRhW29mZnNldCsxOm9mZnNldCs5XSlbMF0sIDkKLSAg
ICBpZiBmaXJzdF9ieXRlID09IDEyNjoKLSAgICAgICAgaWYgb2Zmc2V0ICsgMyA+IGxlbihkYXRh
KToKLSAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbignSW52YWxpZCBudW1iZXInKQotICAgICAg
ICByZXR1cm4gc3RydWN0LnVucGFjaygnIUgnLCBkYXRhW29mZnNldCsxOm9mZnNldCszXSlbMF0s
IDMKLSAgICByZXR1cm4gZmlyc3RfYnl0ZSwgMQotCi0KLWRlZiBfcGFyc2Vfc2l6ZV9hbmRfY29u
dGVudHMoZGF0YSwgb2Zmc2V0PTApOgotICAgIHNpemUsIGFkdmFuY2UgPSBfcGFyc2VfbnVtYmVy
KGRhdGEsIG9mZnNldCkKLSAgICBzdGFydF9wb3NpdGlvbiA9IG9mZnNldCArIGFkdmFuY2UKLSAg
ICBlbmRfcG9zaXRpb24gPSBzdGFydF9wb3NpdGlvbiArIHNpemUKLSAgICBpZiBsZW4oZGF0YSkg
PCBlbmRfcG9zaXRpb246Ci0gICAgICAgIHJhaXNlIEV4Y2VwdGlvbignSW52YWxpZCBzaXplIG9m
IGNvbnRyb2wgYmxvY2sgKCVkIDwgJWQpJyAlICgKLSAgICAgICAgICAgICAgICBsZW4oZGF0YSks
IGVuZF9wb3NpdGlvbikpCi0gICAgcmV0dXJuIGRhdGFbc3RhcnRfcG9zaXRpb246ZW5kX3Bvc2l0
aW9uXSwgc2l6ZSArIGFkdmFuY2UKLQotCi1kZWYgX3BhcnNlX2NvbnRyb2xfYmxvY2tzKGRhdGEp
OgotICAgIGJsb2NrcyA9IFtdCi0gICAgbGVuZ3RoID0gbGVuKGRhdGEpCi0gICAgcG9zID0gMAot
Ci0gICAgd2hpbGUgcG9zIDwgbGVuZ3RoOgotICAgICAgICBmaXJzdF9ieXRlID0gb3JkKGRhdGFb
cG9zXSkKLSAgICAgICAgcG9zICs9IDEKLSAgICAgICAgb3Bjb2RlID0gKGZpcnN0X2J5dGUgPj4g
NSkgJiAweDcKLSAgICAgICAgYmxvY2sgPSBfQ29udHJvbEJsb2NrKG9wY29kZSkKLQotICAgICAg
ICAjIFRPRE8oYmFzaGkpOiBTdXBwb3J0IG1vcmUgb3Bjb2RlCi0gICAgICAgIGlmIG9wY29kZSA9
PSBfTVVYX09QQ09ERV9BRERfQ0hBTk5FTF9SRVNQT05TRToKLSAgICAgICAgICAgIGJsb2NrLmVu
Y29kZSA9IGZpcnN0X2J5dGUgJiAzCi0gICAgICAgICAgICBibG9jay5yZWplY3RlZCA9IChmaXJz
dF9ieXRlID4+IDQpICYgMQotCi0gICAgICAgICAgICBjaGFubmVsX2lkLCBhZHZhbmNlID0gX3Bh
cnNlX2NoYW5uZWxfaWQoZGF0YSwgcG9zKQotICAgICAgICAgICAgYmxvY2suY2hhbm5lbF9pZCA9
IGNoYW5uZWxfaWQKLSAgICAgICAgICAgIHBvcyArPSBhZHZhbmNlCi0KLSAgICAgICAgICAgIGVu
Y29kZWRfaGFuZHNoYWtlLCBhZHZhbmNlID0gX3BhcnNlX3NpemVfYW5kX2NvbnRlbnRzKGRhdGEs
IHBvcykKLSAgICAgICAgICAgIGJsb2NrLmVuY29kZWRfaGFuZHNoYWtlID0gZW5jb2RlZF9oYW5k
c2hha2UKLSAgICAgICAgICAgIHBvcyArPSBhZHZhbmNlCi0gICAgICAgICAgICBibG9ja3MuYXBw
ZW5kKGJsb2NrKQotICAgICAgICBlbGlmIG9wY29kZSA9PSBfTVVYX09QQ09ERV9EUk9QX0NIQU5O
RUw6Ci0gICAgICAgICAgICBibG9jay5tdXhfZXJyb3IgPSAoZmlyc3RfYnl0ZSA+PiA0KSAmIDEK
LQotICAgICAgICAgICAgY2hhbm5lbF9pZCwgYWR2YW5jZSA9IF9wYXJzZV9jaGFubmVsX2lkKGRh
dGEsIHBvcykKLSAgICAgICAgICAgIGJsb2NrLmNoYW5uZWxfaWQgPSBjaGFubmVsX2lkCi0gICAg
ICAgICAgICBwb3MgKz0gYWR2YW5jZQotCi0gICAgICAgICAgICByZWFzb24sIGFkdmFuY2UgPSBf
cGFyc2Vfc2l6ZV9hbmRfY29udGVudHMoZGF0YSwgcG9zKQotICAgICAgICAgICAgaWYgbGVuKHJl
YXNvbikgPT0gMDoKLSAgICAgICAgICAgICAgICBibG9jay5kcm9wX2NvZGUgPSBOb25lCi0gICAg
ICAgICAgICAgICAgYmxvY2suZHJvcF9tZXNzYWdlID0gJycKLSAgICAgICAgICAgIGVsaWYgbGVu
KHJlYXNvbikgPj0gMjoKLSAgICAgICAgICAgICAgICBibG9jay5kcm9wX2NvZGUgPSBzdHJ1Y3Qu
dW5wYWNrKCchSCcsIHJlYXNvbls6Ml0pWzBdCi0gICAgICAgICAgICAgICAgYmxvY2suZHJvcF9t
ZXNzYWdlID0gcmVhc29uWzI6XQotICAgICAgICAgICAgZWxzZToKLSAgICAgICAgICAgICAgICBy
YWlzZSBFeGNlcHRpb24oJ0ludmFsaWQgRHJvcENoYW5uZWwnKQotICAgICAgICAgICAgcG9zICs9
IGFkdmFuY2UKLSAgICAgICAgICAgIGJsb2Nrcy5hcHBlbmQoYmxvY2spCi0gICAgICAgIGVsaWYg
b3Bjb2RlID09IF9NVVhfT1BDT0RFX0ZMT1dfQ09OVFJPTDoKLSAgICAgICAgICAgIGNoYW5uZWxf
aWQsIGFkdmFuY2UgPSBfcGFyc2VfY2hhbm5lbF9pZChkYXRhLCBwb3MpCi0gICAgICAgICAgICBi
bG9jay5jaGFubmVsX2lkID0gY2hhbm5lbF9pZAotICAgICAgICAgICAgcG9zICs9IGFkdmFuY2UK
LSAgICAgICAgICAgIHNlbmRfcXVvdGEsIGFkdmFuY2UgPSBfcGFyc2VfbnVtYmVyKGRhdGEsIHBv
cykKLSAgICAgICAgICAgIGJsb2NrLnNlbmRfcXVvdGEgPSBzZW5kX3F1b3RhCi0gICAgICAgICAg
ICBwb3MgKz0gYWR2YW5jZQotICAgICAgICAgICAgYmxvY2tzLmFwcGVuZChibG9jaykKLSAgICAg
ICAgZWxpZiBvcGNvZGUgPT0gX01VWF9PUENPREVfTkVXX0NIQU5ORUxfU0xPVDoKLSAgICAgICAg
ICAgIGZhbGxiYWNrID0gZmlyc3RfYnl0ZSAmIDEKLSAgICAgICAgICAgIHNsb3RzLCBhZHZhbmNl
ID0gX3BhcnNlX251bWJlcihkYXRhLCBwb3MpCi0gICAgICAgICAgICBwb3MgKz0gYWR2YW5jZQot
ICAgICAgICAgICAgc2VuZF9xdW90YSwgYWR2YW5jZSA9IF9wYXJzZV9udW1iZXIoZGF0YSwgcG9z
KQotICAgICAgICAgICAgcG9zICs9IGFkdmFuY2UKLSAgICAgICAgICAgIGlmIGZhbGxiYWNrID09
IDEgYW5kIChzbG90cyAhPSAwIG9yIHNlbmRfcXVvdGEgIT0gMCk6Ci0gICAgICAgICAgICAgICAg
cmFpc2UgRXhjZXB0aW9uKCdzbG90cyBhbmQgc2VuZF9xdW90YSBtdXN0IGJlIHplcm8gaWYgRiBi
aXQgJwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnaXMgc2V0JykKLSAgICAgICAg
ICAgIGJsb2NrLmZhbGxiYWNrID0gZmFsbGJhY2sKLSAgICAgICAgICAgIGJsb2NrLnNsb3RzID0g
c2xvdHMKLSAgICAgICAgICAgIGJsb2NrLnNlbmRfcXVvdGEgPSBzZW5kX3F1b3RhCi0gICAgICAg
ICAgICBibG9ja3MuYXBwZW5kKGJsb2NrKQotICAgICAgICBlbHNlOgotICAgICAgICAgICAgcmFp
c2UgRXhjZXB0aW9uKAotICAgICAgICAgICAgICAgICdVbnN1cHBvcnRlZCBtdXggb3Bjb2RlICVk
IHJlY2VpdmVkJyAlIG9wY29kZSkKLQotICAgIHJldHVybiBibG9ja3MKLQotCi1kZWYgX2VuY29k
ZV9jaGFubmVsX2lkKGNoYW5uZWxfaWQpOgotICAgIGlmIGNoYW5uZWxfaWQgPCAwOgotICAgICAg
ICByYWlzZSBWYWx1ZUVycm9yKCdDaGFubmVsIGlkICVkIG11c3Qgbm90IGJlIG5lZ2F0aXZlJyAl
IGNoYW5uZWxfaWQpCi0KLSAgICBpZiBjaGFubmVsX2lkIDwgMiAqKiA3OgotICAgICAgICByZXR1
cm4gY2hyKGNoYW5uZWxfaWQpCi0gICAgaWYgY2hhbm5lbF9pZCA8IDIgKiogMTQ6Ci0gICAgICAg
IHJldHVybiBzdHJ1Y3QucGFjaygnIUgnLCAweDgwMDAgKyBjaGFubmVsX2lkKQotICAgIGlmIGNo
YW5uZWxfaWQgPCAyICoqIDIxOgotICAgICAgICBmaXJzdCA9IGNocigweGMwICsgKGNoYW5uZWxf
aWQgPj4gMTYpKQotICAgICAgICByZXR1cm4gZmlyc3QgKyBzdHJ1Y3QucGFjaygnIUgnLCBjaGFu
bmVsX2lkICYgMHhmZmZmKQotICAgIGlmIGNoYW5uZWxfaWQgPCAyICoqIDI5OgotICAgICAgICBy
ZXR1cm4gc3RydWN0LnBhY2soJyFMJywgMHhlMDAwMDAwMCArIGNoYW5uZWxfaWQpCi0KLSAgICBy
YWlzZSBWYWx1ZUVycm9yKCdDaGFubmVsIGlkICVkIGlzIHRvbyBsYXJnZScgJSBjaGFubmVsX2lk
KQotCi0KLWRlZiBfZW5jb2RlX251bWJlcihudW1iZXIpOgotICAgIGlmIG51bWJlciA8PSAxMjU6
Ci0gICAgICAgIHJldHVybiBjaHIobnVtYmVyKQotICAgIGVsaWYgbnVtYmVyIDwgKDEgPDwgMTYp
OgotICAgICAgICByZXR1cm4gY2hyKDB4N2UpICsgc3RydWN0LnBhY2soJyFIJywgbnVtYmVyKQot
ICAgIGVsaWYgbnVtYmVyIDwgKDEgPDwgNjMpOgotICAgICAgICByZXR1cm4gY2hyKDB4N2YpICsg
c3RydWN0LnBhY2soJyFRJywgbnVtYmVyKQotICAgIGVsc2U6Ci0gICAgICAgIHJhaXNlIEV4Y2Vw
dGlvbignSW52YWxpZCBudW1iZXInKQotCi0KLWRlZiBfY3JlYXRlX2FkZF9jaGFubmVsX3JlcXVl
c3QoY2hhbm5lbF9pZCwgZW5jb2RlZF9oYW5kc2hha2UsCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGVuY29kaW5nPTApOgotICAgIGxlbmd0aCA9IGxlbihlbmNvZGVkX2hhbmRzaGFr
ZSkKLSAgICBoYW5kc2hha2VfbGVuZ3RoID0gX2VuY29kZV9udW1iZXIobGVuZ3RoKQotCi0gICAg
Zmlyc3RfYnl0ZSA9IChfTVVYX09QQ09ERV9BRERfQ0hBTk5FTF9SRVFVRVNUIDw8IDUpIHwgZW5j
b2RpbmcKLSAgICByZXR1cm4gKGNocihmaXJzdF9ieXRlKSArIF9lbmNvZGVfY2hhbm5lbF9pZChj
aGFubmVsX2lkKSArCi0gICAgICAgICAgICBoYW5kc2hha2VfbGVuZ3RoICsgZW5jb2RlZF9oYW5k
c2hha2UpCi0KLQotZGVmIF9jcmVhdGVfZmxvd19jb250cm9sKGNoYW5uZWxfaWQsIHJlcGxlbmlz
aGVkX3F1b3RhKToKLSAgICBmaXJzdF9ieXRlID0gKF9NVVhfT1BDT0RFX0ZMT1dfQ09OVFJPTCA8
PCA1KQotICAgIHJldHVybiAoY2hyKGZpcnN0X2J5dGUpICsgX2VuY29kZV9jaGFubmVsX2lkKGNo
YW5uZWxfaWQpICsKLSAgICAgICAgICAgIF9lbmNvZGVfbnVtYmVyKHJlcGxlbmlzaGVkX3F1b3Rh
KSkKLQotCi1jbGFzcyBfTXV4UmVhZGVyVGhyZWFkKHRocmVhZGluZy5UaHJlYWQpOgotICAgICIi
Ik11eCByZWFkZXIgdGhyZWFkLgotCi0gICAgUmVhZHMgZnJhbWVzIGFuZCBwYXNzZXMgdGhlbSB0
byB0aGUgbXV4IGNsaWVudC4gVGhpcyB0aHJlYWQgYWNjZXNzZXMKLSAgICBwcml2YXRlIGZ1bmN0
aW9ucy92YXJpYWJsZXMgb2YgdGhlIG11eCBjbGllbnQuCi0gICAgIiIiCi0KLSAgICBkZWYgX19p
bml0X18oc2VsZiwgbXV4KToKLSAgICAgICAgdGhyZWFkaW5nLlRocmVhZC5fX2luaXRfXyhzZWxm
KQotICAgICAgICBzZWxmLnNldERhZW1vbihUcnVlKQotICAgICAgICBzZWxmLl9tdXggPSBtdXgK
LSAgICAgICAgc2VsZi5fc3RvcF9yZXF1ZXN0ZWQgPSBGYWxzZQotCi0gICAgZGVmIF9yZWNlaXZl
X21lc3NhZ2Uoc2VsZik6Ci0gICAgICAgIGZpcnN0X29wY29kZSA9IE5vbmUKLSAgICAgICAgcGVu
ZGluZ19wYXlsb2FkID0gW10KLSAgICAgICAgd2hpbGUgbm90IHNlbGYuX3N0b3BfcmVxdWVzdGVk
OgotICAgICAgICAgICAgZmluLCByc3YxLCByc3YyLCByc3YzLCBvcGNvZGUsIHBheWxvYWRfbGVu
Z3RoID0gKAotICAgICAgICAgICAgICAgIGNsaWVudF9mb3JfdGVzdGluZy5yZWFkX2ZyYW1lX2hl
YWRlcihzZWxmLl9tdXguX3NvY2tldCkpCi0KLSAgICAgICAgICAgIGlmIG5vdCBmaXJzdF9vcGNv
ZGU6Ci0gICAgICAgICAgICAgICAgaWYgb3Bjb2RlID09IGNsaWVudF9mb3JfdGVzdGluZy5PUENP
REVfVEVYVDoKLSAgICAgICAgICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCdSZWNlaXZlZCBh
IHRleHQgbWVzc2FnZSBvbiBwaHlzaWNhbCAnCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAnY29ubmVjdGlvbicpCi0gICAgICAgICAgICAgICAgaWYgb3Bjb2RlID09IGNsaWVu
dF9mb3JfdGVzdGluZy5PUENPREVfQ09OVElOVUFUSU9OOgotICAgICAgICAgICAgICAgICAgICBy
YWlzZSBFeGNlcHRpb24oJ1JlY2VpdmVkIGFuIGludGVybWVkaWF0ZSBmcmFtZSBidXQgJwotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2ZyYWdtZW50YXRpb24gd2FzIG5vdCBz
dGFydGVkJykKLSAgICAgICAgICAgICAgICBpZiAob3Bjb2RlID09IGNsaWVudF9mb3JfdGVzdGlu
Zy5PUENPREVfQklOQVJZIG9yCi0gICAgICAgICAgICAgICAgICAgIG9wY29kZSA9PSBjbGllbnRf
Zm9yX3Rlc3RpbmcuT1BDT0RFX1BPTkcgb3IKLSAgICAgICAgICAgICAgICAgICAgb3Bjb2RlID09
IGNsaWVudF9mb3JfdGVzdGluZy5PUENPREVfUE9ORyBvcgotICAgICAgICAgICAgICAgICAgICBv
cGNvZGUgPT0gY2xpZW50X2Zvcl90ZXN0aW5nLk9QQ09ERV9DTE9TRSk6Ci0gICAgICAgICAgICAg
ICAgICAgIGZpcnN0X29wY29kZSA9IG9wY29kZQotICAgICAgICAgICAgICAgIGVsc2U6Ci0gICAg
ICAgICAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbignUmVjZWl2ZWQgYW4gdW5kZWZpbmVkIG9w
Y29kZSBmcmFtZTogJWQnICUKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9w
Y29kZSkKLQotICAgICAgICAgICAgZWxpZiBvcGNvZGUgIT0gY2xpZW50X2Zvcl90ZXN0aW5nLk9Q
Q09ERV9DT05USU5VQVRJT046Ci0gICAgICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCdSZWNl
aXZlZCBhIG5ldyBvcGNvZGUgYmVmb3JlICcKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgJ3Rlcm1pbmF0aW5nIGZyYWdtZW50YXRpb24nKQotCi0gICAgICAgICAgICBwYXlsb2FkID0g
Y2xpZW50X2Zvcl90ZXN0aW5nLnJlY2VpdmVfYnl0ZXMoCi0gICAgICAgICAgICAgICAgc2VsZi5f
bXV4Ll9zb2NrZXQsIHBheWxvYWRfbGVuZ3RoKQotCi0gICAgICAgICAgICBpZiBzZWxmLl9tdXgu
X2luY29taW5nX2ZyYW1lX2ZpbHRlciBpcyBub3QgTm9uZToKLSAgICAgICAgICAgICAgICBwYXls
b2FkID0gc2VsZi5fbXV4Ll9pbmNvbWluZ19mcmFtZV9maWx0ZXIuZmlsdGVyKHBheWxvYWQpCi0K
LSAgICAgICAgICAgIHBlbmRpbmdfcGF5bG9hZC5hcHBlbmQocGF5bG9hZCkKLQotICAgICAgICAg
ICAgaWYgZmluOgotICAgICAgICAgICAgICAgIGJyZWFrCi0KLSAgICAgICAgaWYgc2VsZi5fc3Rv
cF9yZXF1ZXN0ZWQ6Ci0gICAgICAgICAgICByZXR1cm4gTm9uZSwgTm9uZQotCi0gICAgICAgIG1l
c3NhZ2UgPSAnJy5qb2luKHBlbmRpbmdfcGF5bG9hZCkKLSAgICAgICAgcmV0dXJuIGZpcnN0X29w
Y29kZSwgbWVzc2FnZQotCi0gICAgZGVmIHJlcXVlc3Rfc3RvcChzZWxmKToKLSAgICAgICAgc2Vs
Zi5fc3RvcF9yZXF1ZXN0ZWQgPSBUcnVlCi0KLSAgICBkZWYgcnVuKHNlbGYpOgotICAgICAgICB0
cnk6Ci0gICAgICAgICAgICB3aGlsZSBub3Qgc2VsZi5fc3RvcF9yZXF1ZXN0ZWQ6Ci0gICAgICAg
ICAgICAgICAgIyBvcGNvZGUgaXMgT1BDT0RFX0JJTkFSWSBvciBjb250cm9sIG9wY29kZXMgd2hl
biBhIG1lc3NhZ2UKLSAgICAgICAgICAgICAgICAjIGlzIHN1Y2Nlc2Z1bGx5IHJlY2VpdmVkLgot
ICAgICAgICAgICAgICAgIG9wY29kZSwgbWVzc2FnZSA9IHNlbGYuX3JlY2VpdmVfbWVzc2FnZSgp
Ci0gICAgICAgICAgICAgICAgaWYgbm90IG9wY29kZToKLSAgICAgICAgICAgICAgICAgICAgcmV0
dXJuCi0gICAgICAgICAgICAgICAgaWYgb3Bjb2RlID09IGNsaWVudF9mb3JfdGVzdGluZy5PUENP
REVfQklOQVJZOgotICAgICAgICAgICAgICAgICAgICBjaGFubmVsX2lkLCBhZHZhbmNlID0gX3Bh
cnNlX2NoYW5uZWxfaWQobWVzc2FnZSkKLSAgICAgICAgICAgICAgICAgICAgc2VsZi5fbXV4Ll9k
aXNwYXRjaF9mcmFtZShjaGFubmVsX2lkLCBtZXNzYWdlW2FkdmFuY2U6XSkKLSAgICAgICAgICAg
ICAgICBlbHNlOgotICAgICAgICAgICAgICAgICAgICBzZWxmLl9tdXguX3Byb2Nlc3NfY29udHJv
bF9tZXNzYWdlKG9wY29kZSwgbWVzc2FnZSkKLSAgICAgICAgZmluYWxseToKLSAgICAgICAgICAg
IHNlbGYuX211eC5fbm90aWZ5X3JlYWRlcl9kb25lKCkKLQotCi1jbGFzcyBfSW5uZXJGcmFtZShv
YmplY3QpOgotICAgIGRlZiBfX2luaXRfXyhzZWxmLCBmaW4sIHJzdjEsIHJzdjIsIHJzdjMsIG9w
Y29kZSwgcGF5bG9hZCk6Ci0gICAgICAgIHNlbGYuZmluID0gZmluCi0gICAgICAgIHNlbGYucnN2
MSA9IHJzdjEKLSAgICAgICAgc2VsZi5yc3YyID0gcnN2MgotICAgICAgICBzZWxmLnJzdjMgPSBy
c3YzCi0gICAgICAgIHNlbGYub3Bjb2RlID0gb3Bjb2RlCi0gICAgICAgIHNlbGYucGF5bG9hZCA9
IHBheWxvYWQKLQotCi1jbGFzcyBfTG9naWNhbENoYW5uZWxEYXRhKG9iamVjdCk6Ci0gICAgZGVm
IF9faW5pdF9fKHNlbGYpOgotICAgICAgICBzZWxmLnF1ZXVlID0gUXVldWUuUXVldWUoKQotICAg
ICAgICBzZWxmLnNlbmRfcXVvdGEgPSAwCi0gICAgICAgIHNlbGYucmVjZWl2ZV9xdW90YSA9IDAK
LQotCi1jbGFzcyBNdXhDbGllbnQob2JqZWN0KToKLSAgICAiIiJXZWJTb2NrZXQgbXV4IGNsaWVu
dC4KLQotICAgIE5vdGUgdGhhdCB0aGlzIGNsYXNzIGlzIE5PVCB0aHJlYWQtc2FmZS4gRG8gbm90
IGFjY2VzcyBhbiBpbnN0YW5jZSBvZiB0aGlzCi0gICAgY2xhc3MgZnJvbSBtdWx0aXBsZSB0aHJl
YWRzIGF0IGEgc2FtZSB0aW1lLgotICAgICIiIgotCi0gICAgZGVmIF9faW5pdF9fKHNlbGYsIG9w
dGlvbnMpOgotICAgICAgICBzZWxmLl9sb2dnZXIgPSB1dGlsLmdldF9jbGFzc19sb2dnZXIoc2Vs
ZikKLQotICAgICAgICBzZWxmLl9vcHRpb25zID0gb3B0aW9ucwotICAgICAgICBzZWxmLl9vcHRp
b25zLmVuYWJsZV9tdXgoKQotICAgICAgICBzZWxmLl9zdHJlYW0gPSBOb25lCi0gICAgICAgIHNl
bGYuX3NvY2tldCA9IE5vbmUKLSAgICAgICAgc2VsZi5faGFuZHNoYWtlID0gY2xpZW50X2Zvcl90
ZXN0aW5nLldlYlNvY2tldEhhbmRzaGFrZShzZWxmLl9vcHRpb25zKQotICAgICAgICBzZWxmLl9p
bmNvbWluZ19mcmFtZV9maWx0ZXIgPSBOb25lCi0gICAgICAgIHNlbGYuX291dGdvaW5nX2ZyYW1l
X2ZpbHRlciA9IE5vbmUKLQotICAgICAgICBzZWxmLl9pc19hY3RpdmUgPSBGYWxzZQotICAgICAg
ICBzZWxmLl9yZWFkX3RocmVhZCA9IE5vbmUKLSAgICAgICAgc2VsZi5fY29udHJvbF9ibG9ja3Nf
Y29uZGl0aW9uID0gdGhyZWFkaW5nLkNvbmRpdGlvbigpCi0gICAgICAgIHNlbGYuX2NvbnRyb2xf
YmxvY2tzID0gW10KLSAgICAgICAgc2VsZi5fY2hhbm5lbF9zbG90cyA9IGNvbGxlY3Rpb25zLmRl
cXVlKCkKLSAgICAgICAgc2VsZi5fbG9naWNhbF9jaGFubmVsc19jb25kaXRpb24gPSB0aHJlYWRp
bmcuQ29uZGl0aW9uKCk7Ci0gICAgICAgIHNlbGYuX2xvZ2ljYWxfY2hhbm5lbHMgPSB7fQotICAg
ICAgICBzZWxmLl90aW1lb3V0ID0gMgotICAgICAgICBzZWxmLl9waHlzaWNhbF9jb25uZWN0aW9u
X2Nsb3NlX2V2ZW50ID0gTm9uZQotICAgICAgICBzZWxmLl9waHlzaWNhbF9jb25uZWN0aW9uX2Ns
b3NlX21lc3NhZ2UgPSBOb25lCi0KLSAgICBkZWYgX3BhcnNlX2lubmVyX2ZyYW1lKHNlbGYsIGRh
dGEpOgotICAgICAgICBpZiBsZW4oZGF0YSkgPT0gMDoKLSAgICAgICAgICAgIHJhaXNlIEV4Y2Vw
dGlvbignSW52YWxpZCBlbmNhcHN1bGF0ZWQgZnJhbWUgcmVjZWl2ZWQnKQotCi0gICAgICAgIGZp
cnN0X2J5dGUgPSBvcmQoZGF0YVswXSkKLSAgICAgICAgZmluID0gKGZpcnN0X2J5dGUgPDwgNykg
JiAxCi0gICAgICAgIHJzdjEgPSAoZmlyc3RfYnl0ZSA8PCA2KSAmIDEKLSAgICAgICAgcnN2MiA9
IChmaXJzdF9ieXRlIDw8IDUpICYgMQotICAgICAgICByc3YzID0gKGZpcnN0X2J5dGUgPDwgNCkg
JiAxCi0gICAgICAgIG9wY29kZSA9IGZpcnN0X2J5dGUgJiAweGYKLQotICAgICAgICBpZiBzZWxm
Ll9vdXRnb2luZ19mcmFtZV9maWx0ZXI6Ci0gICAgICAgICAgICBwYXlsb2FkID0gc2VsZi5fb3V0
Z29pbmdfZnJhbWVfZmlsdGVyLmZpbHRlcigKLSAgICAgICAgICAgICAgICBkYXRhWzE6XSkKLSAg
ICAgICAgZWxzZToKLSAgICAgICAgICAgIHBheWxvYWQgPSBkYXRhWzE6XQotCi0gICAgICAgIHJl
dHVybiBfSW5uZXJGcmFtZShmaW4sIHJzdjEsIHJzdjIsIHJzdjMsIG9wY29kZSwgcGF5bG9hZCkK
LQotICAgIGRlZiBfcHJvY2Vzc19tdXhfY29udHJvbF9ibG9ja3Moc2VsZik6Ci0gICAgICAgIGZv
ciBibG9jayBpbiBzZWxmLl9jb250cm9sX2Jsb2NrczoKLSAgICAgICAgICAgIGlmIGJsb2NrLm9w
Y29kZSA9PSBfTVVYX09QQ09ERV9BRERfQ0hBTk5FTF9SRVNQT05TRToKLSAgICAgICAgICAgICAg
ICAjIEFkZENoYW5uZWxSZXNwb25zZSB3aWxsIGJlIGhhbmRsZWQgaW4gYWRkX2NoYW5uZWwoKS4K
LSAgICAgICAgICAgICAgICBjb250aW51ZQotICAgICAgICAgICAgZWxpZiBibG9jay5vcGNvZGUg
PT0gX01VWF9PUENPREVfRkxPV19DT05UUk9MOgotICAgICAgICAgICAgICAgIHRyeToKLSAgICAg
ICAgICAgICAgICAgICAgc2VsZi5fbG9naWNhbF9jaGFubmVsc19jb25kaXRpb24uYWNxdWlyZSgp
Ci0gICAgICAgICAgICAgICAgICAgIGlmIG5vdCBibG9jay5jaGFubmVsX2lkIGluIHNlbGYuX2xv
Z2ljYWxfY2hhbm5lbHM6Ci0gICAgICAgICAgICAgICAgICAgICAgICByYWlzZSBFeGNlcHRpb24o
J0ludmFsaWQgZmxvdyBjb250cm9sIHJlY2VpdmVkIGZvciAnCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgJ2NoYW5uZWwgaWQgJWQnICUgYmxvY2suY2hhbm5lbF9pZCkK
LSAgICAgICAgICAgICAgICAgICAgc2VsZi5fbG9naWNhbF9jaGFubmVsc1tibG9jay5jaGFubmVs
X2lkXS5zZW5kX3F1b3RhICs9ICgKLSAgICAgICAgICAgICAgICAgICAgICAgIGJsb2NrLnNlbmRf
cXVvdGEpCi0gICAgICAgICAgICAgICAgICAgIHNlbGYuX2xvZ2ljYWxfY2hhbm5lbHNfY29uZGl0
aW9uLm5vdGlmeSgpCi0gICAgICAgICAgICAgICAgZmluYWxseToKLSAgICAgICAgICAgICAgICAg
ICAgc2VsZi5fbG9naWNhbF9jaGFubmVsc19jb25kaXRpb24ucmVsZWFzZSgpCi0gICAgICAgICAg
ICBlbGlmIGJsb2NrLm9wY29kZSA9PSBfTVVYX09QQ09ERV9ORVdfQ0hBTk5FTF9TTE9UOgotICAg
ICAgICAgICAgICAgIHNlbGYuX2NoYW5uZWxfc2xvdHMuZXh0ZW5kKFtibG9jay5zZW5kX3F1b3Rh
XSAqIGJsb2NrLnNsb3RzKQotCi0gICAgZGVmIF9kaXNwYXRjaF9mcmFtZShzZWxmLCBjaGFubmVs
X2lkLCBwYXlsb2FkKToKLSAgICAgICAgaWYgY2hhbm5lbF9pZCA9PSBfQ09OVFJPTF9DSEFOTkVM
X0lEOgotICAgICAgICAgICAgdHJ5OgotICAgICAgICAgICAgICAgIHNlbGYuX2NvbnRyb2xfYmxv
Y2tzX2NvbmRpdGlvbi5hY3F1aXJlKCkKLSAgICAgICAgICAgICAgICBzZWxmLl9jb250cm9sX2Js
b2NrcyArPSBfcGFyc2VfY29udHJvbF9ibG9ja3MocGF5bG9hZCkKLSAgICAgICAgICAgICAgICBz
ZWxmLl9wcm9jZXNzX211eF9jb250cm9sX2Jsb2NrcygpCi0gICAgICAgICAgICAgICAgc2VsZi5f
Y29udHJvbF9ibG9ja3NfY29uZGl0aW9uLm5vdGlmeSgpCi0gICAgICAgICAgICBmaW5hbGx5Ogot
ICAgICAgICAgICAgICAgIHNlbGYuX2NvbnRyb2xfYmxvY2tzX2NvbmRpdGlvbi5yZWxlYXNlKCkK
LSAgICAgICAgZWxzZToKLSAgICAgICAgICAgIHRyeToKLSAgICAgICAgICAgICAgICBzZWxmLl9s
b2dpY2FsX2NoYW5uZWxzX2NvbmRpdGlvbi5hY3F1aXJlKCkKLSAgICAgICAgICAgICAgICBpZiBu
b3QgY2hhbm5lbF9pZCBpbiBzZWxmLl9sb2dpY2FsX2NoYW5uZWxzOgotICAgICAgICAgICAgICAg
ICAgICByYWlzZSBFeGNlcHRpb24oJ1JlY2VpdmVkIGxvZ2ljYWwgZnJhbWUgb24gY2hhbm5lbCBp
ZCAnCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnJWQsIHdoaWNoIGlzIG5v
dCBlc3RhYmxpc2hlZCcgJQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hh
bm5lbF9pZCkKLQotICAgICAgICAgICAgICAgIGlubmVyX2ZyYW1lID0gc2VsZi5fcGFyc2VfaW5u
ZXJfZnJhbWUocGF5bG9hZCkKLSAgICAgICAgICAgICAgICBzZWxmLl9sb2dpY2FsX2NoYW5uZWxz
W2NoYW5uZWxfaWRdLnJlY2VpdmVfcXVvdGEgLT0gKAotICAgICAgICAgICAgICAgICAgICAgICAg
bGVuKGlubmVyX2ZyYW1lLnBheWxvYWQpKQotICAgICAgICAgICAgICAgIGlmIHNlbGYuX2xvZ2lj
YWxfY2hhbm5lbHNbY2hhbm5lbF9pZF0ucmVjZWl2ZV9xdW90YSA8IDA6Ci0gICAgICAgICAgICAg
ICAgICAgIHJhaXNlIEV4Y2VwdGlvbignVGhlIHNlcnZlciB2aW9sYXRlcyBxdW90YSBvbiAnCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnY2hhbm5lbCBpZCAlZCcgJSBjaGFu
bmVsX2lkKQotICAgICAgICAgICAgZmluYWxseToKLSAgICAgICAgICAgICAgICBzZWxmLl9sb2dp
Y2FsX2NoYW5uZWxzX2NvbmRpdGlvbi5yZWxlYXNlKCkKLSAgICAgICAgICAgIHNlbGYuX2xvZ2lj
YWxfY2hhbm5lbHNbY2hhbm5lbF9pZF0ucXVldWUucHV0KGlubmVyX2ZyYW1lKQotCi0gICAgZGVm
IF9wcm9jZXNzX2NvbnRyb2xfbWVzc2FnZShzZWxmLCBvcGNvZGUsIG1lc3NhZ2UpOgotICAgICAg
ICAjIFBpbmcvUG9uZyBhcmUgbm90IHN1cHBvcnRlZC4KLSAgICAgICAgaWYgb3Bjb2RlID09IGNs
aWVudF9mb3JfdGVzdGluZy5PUENPREVfQ0xPU0U6Ci0gICAgICAgICAgICBzZWxmLl9waHlzaWNh
bF9jb25uZWN0aW9uX2Nsb3NlX21lc3NhZ2UgPSBtZXNzYWdlCi0gICAgICAgICAgICBpZiBzZWxm
Ll9pc19hY3RpdmU6Ci0gICAgICAgICAgICAgICAgc2VsZi5fc3RyZWFtLnNlbmRfY2xvc2UoCi0g
ICAgICAgICAgICAgICAgICAgIGNvZGU9Y2xpZW50X2Zvcl90ZXN0aW5nLlNUQVRVU19OT1JNQUxf
Q0xPU1VSRSwgcmVhc29uPScnKQotICAgICAgICAgICAgICAgIHNlbGYuX3JlYWRfdGhyZWFkLnJl
cXVlc3Rfc3RvcCgpCi0KLSAgICAgICAgICAgIGlmIHNlbGYuX3BoeXNpY2FsX2Nvbm5lY3Rpb25f
Y2xvc2VfZXZlbnQ6Ci0gICAgICAgICAgICAgICAgc2VsZi5fcGh5c2ljYWxfY29ubmVjdGlvbl9j
bG9zZV9ldmVudC5zZXQoKQotCi0gICAgZGVmIF9ub3RpZnlfcmVhZGVyX2RvbmUoc2VsZik6Ci0g
ICAgICAgIHNlbGYuX2xvZ2dlci5kZWJ1ZygnUmVhZCB0aHJlYWQgdGVybWluYXRlZC4nKQotICAg
ICAgICBzZWxmLmNsb3NlX3NvY2tldCgpCi0KLSAgICBkZWYgX2Fzc2VydF9jaGFubmVsX3Nsb3Rf
YXZhaWxhYmxlKHNlbGYpOgotICAgICAgICB0cnk6Ci0gICAgICAgICAgICBzZWxmLl9jb250cm9s
X2Jsb2Nrc19jb25kaXRpb24uYWNxdWlyZSgpCi0gICAgICAgICAgICBpZiBsZW4oc2VsZi5fY2hh
bm5lbF9zbG90cykgPT0gMDoKLSAgICAgICAgICAgICAgICAjIFdhaXQgb25jZQotICAgICAgICAg
ICAgICAgIHNlbGYuX2NvbnRyb2xfYmxvY2tzX2NvbmRpdGlvbi53YWl0KHRpbWVvdXQ9c2VsZi5f
dGltZW91dCkKLSAgICAgICAgZmluYWxseToKLSAgICAgICAgICAgIHNlbGYuX2NvbnRyb2xfYmxv
Y2tzX2NvbmRpdGlvbi5yZWxlYXNlKCkKLQotICAgICAgICBpZiBsZW4oc2VsZi5fY2hhbm5lbF9z
bG90cykgPT0gMDoKLSAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbignRmFpbGVkIHRvIHJlY2Vp
dmUgTmV3Q2hhbm5lbFNsb3QnKQotCi0gICAgZGVmIF9hc3NlcnRfc2VuZF9xdW90YV9hdmFpbGFi
bGUoc2VsZiwgY2hhbm5lbF9pZCk6Ci0gICAgICAgIHRyeToKLSAgICAgICAgICAgIHNlbGYuX2xv
Z2ljYWxfY2hhbm5lbHNfY29uZGl0aW9uLmFjcXVpcmUoKQotICAgICAgICAgICAgaWYgc2VsZi5f
bG9naWNhbF9jaGFubmVsc1tjaGFubmVsX2lkXS5zZW5kX3F1b3RhID09IDA6Ci0gICAgICAgICAg
ICAgICAgIyBXYWl0IG9uY2UKLSAgICAgICAgICAgICAgICBzZWxmLl9sb2dpY2FsX2NoYW5uZWxz
X2NvbmRpdGlvbi53YWl0KHRpbWVvdXQ9c2VsZi5fdGltZW91dCkKLSAgICAgICAgZmluYWxseToK
LSAgICAgICAgICAgIHNlbGYuX2xvZ2ljYWxfY2hhbm5lbHNfY29uZGl0aW9uLnJlbGVhc2UoKQot
Ci0gICAgICAgIGlmIHNlbGYuX2xvZ2ljYWxfY2hhbm5lbHNbY2hhbm5lbF9pZF0uc2VuZF9xdW90
YSA9PSAwOgotICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCdGYWlsZWQgdG8gcmVjZWl2ZSBG
bG93Q29udHJvbCBmb3IgY2hhbm5lbCBpZCAlZCcgJQotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGNoYW5uZWxfaWQpCi0KLSAgICBkZWYgY29ubmVjdChzZWxmKToKLSAgICAgICAgc2VsZi5f
c29ja2V0ID0gY2xpZW50X2Zvcl90ZXN0aW5nLmNvbm5lY3Rfc29ja2V0X3dpdGhfcmV0cnkoCi0g
ICAgICAgICAgICAgICAgc2VsZi5fb3B0aW9ucy5zZXJ2ZXJfaG9zdCwKLSAgICAgICAgICAgICAg
ICBzZWxmLl9vcHRpb25zLnNlcnZlcl9wb3J0LAotICAgICAgICAgICAgICAgIHNlbGYuX29wdGlv
bnMuc29ja2V0X3RpbWVvdXQsCi0gICAgICAgICAgICAgICAgc2VsZi5fb3B0aW9ucy51c2VfdGxz
KQotCi0gICAgICAgIHNlbGYuX2hhbmRzaGFrZS5oYW5kc2hha2Uoc2VsZi5fc29ja2V0KQotICAg
ICAgICBzZWxmLl9zdHJlYW0gPSBjbGllbnRfZm9yX3Rlc3RpbmcuV2ViU29ja2V0U3RyZWFtKAot
ICAgICAgICAgICAgc2VsZi5fc29ja2V0LCBzZWxmLl9oYW5kc2hha2UpCi0KLSAgICAgICAgc2Vs
Zi5fbG9naWNhbF9jaGFubmVsc1tfREVGQVVMVF9DSEFOTkVMX0lEXSA9IF9Mb2dpY2FsQ2hhbm5l
bERhdGEoKQotCi0gICAgICAgIHNlbGYuX3JlYWRfdGhyZWFkID0gX011eFJlYWRlclRocmVhZChz
ZWxmKQotICAgICAgICBzZWxmLl9yZWFkX3RocmVhZC5zdGFydCgpCi0KLSAgICAgICAgc2VsZi5f
YXNzZXJ0X2NoYW5uZWxfc2xvdF9hdmFpbGFibGUoKQotICAgICAgICBzZWxmLl9hc3NlcnRfc2Vu
ZF9xdW90YV9hdmFpbGFibGUoX0RFRkFVTFRfQ0hBTk5FTF9JRCkKLQotICAgICAgICBzZWxmLl9p
c19hY3RpdmUgPSBUcnVlCi0gICAgICAgIHNlbGYuX2xvZ2dlci5pbmZvKCdDb25uZWN0aW9uIGVz
dGFibGlzaGVkJykKLQotICAgIGRlZiBhZGRfY2hhbm5lbChzZWxmLCBjaGFubmVsX2lkLCBvcHRp
b25zKToKLSAgICAgICAgaWYgbm90IHNlbGYuX2lzX2FjdGl2ZToKLSAgICAgICAgICAgIHJhaXNl
IEV4Y2VwdGlvbignTXV4IGNsaWVudCBpcyBub3QgYWN0aXZlJykKLQotICAgICAgICBpZiBjaGFu
bmVsX2lkIGluIHNlbGYuX2xvZ2ljYWxfY2hhbm5lbHM6Ci0gICAgICAgICAgICByYWlzZSBFeGNl
cHRpb24oJ0NoYW5uZWwgaWQgJWQgYWxyZWFkeSBleGlzdHMnICUgY2hhbm5lbF9pZCkKLQotICAg
ICAgICB0cnk6Ci0gICAgICAgICAgICBzZW5kX3F1b3RhID0gc2VsZi5fY2hhbm5lbF9zbG90cy5w
b3BsZWZ0KCkKLSAgICAgICAgZXhjZXB0IEluZGV4RXJyb3IsIGU6Ci0gICAgICAgICAgICByYWlz
ZSBFeGNlcHRpb24oJ05vIGNoYW5uZWwgc2xvdHM6ICVyJyAlIGUpCi0KLSAgICAgICAgIyBDcmVh
dGUgQWRkQ2hhbm5lbCByZXF1ZXN0Ci0gICAgICAgIHJlcXVlc3RfbGluZSA9ICdHRVQgJXMgSFRU
UC8xLjFcclxuJyAlIG9wdGlvbnMucmVzb3VyY2UKLSAgICAgICAgZmllbGRzID0gW10KLSAgICAg
ICAgaWYgb3B0aW9ucy5zZXJ2ZXJfcG9ydCA9PSBjbGllbnRfZm9yX3Rlc3RpbmcuREVGQVVMVF9Q
T1JUOgotICAgICAgICAgICAgZmllbGRzLmFwcGVuZCgnSG9zdDogJXNcclxuJyAlIG9wdGlvbnMu
c2VydmVyX2hvc3QubG93ZXIoKSkKLSAgICAgICAgZWxzZToKLSAgICAgICAgICAgIGZpZWxkcy5h
cHBlbmQoJ0hvc3Q6ICVzOiVkXHJcbicgJSAob3B0aW9ucy5zZXJ2ZXJfaG9zdC5sb3dlcigpLAot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcHRpb25zLnNl
cnZlcl9wb3J0KSkKLSAgICAgICAgZmllbGRzLmFwcGVuZCgnT3JpZ2luOiAlc1xyXG4nICUgb3B0
aW9ucy5vcmlnaW4ubG93ZXIoKSkKLSAgICAgICAgZmllbGRzLmFwcGVuZCgnQ29ubmVjdGlvbjog
VXBncmFkZVxyXG4nKQotCi0gICAgICAgIGlmIGxlbihvcHRpb25zLmV4dGVuc2lvbnMpID4gMDoK
LSAgICAgICAgICAgIGZpZWxkcy5hcHBlbmQoJ1NlYy1XZWJTb2NrZXQtRXh0ZW5zaW9uczogJXNc
clxuJyAlCi0gICAgICAgICAgICAgICAgICAgICAgICAgICcsICcuam9pbihvcHRpb25zLmV4dGVu
c2lvbnMpKQotCi0gICAgICAgIGhhbmRzaGFrZSA9IHJlcXVlc3RfbGluZSArICcnLmpvaW4oZmll
bGRzKSArICdcclxuJwotICAgICAgICBhZGRfY2hhbm5lbF9yZXF1ZXN0ID0gX2NyZWF0ZV9hZGRf
Y2hhbm5lbF9yZXF1ZXN0KAotICAgICAgICAgICAgY2hhbm5lbF9pZCwgaGFuZHNoYWtlKQotICAg
ICAgICBwYXlsb2FkID0gX2VuY29kZV9jaGFubmVsX2lkKF9DT05UUk9MX0NIQU5ORUxfSUQpICsg
YWRkX2NoYW5uZWxfcmVxdWVzdAotICAgICAgICBzZWxmLl9zdHJlYW0uc2VuZF9iaW5hcnkocGF5
bG9hZCkKLQotICAgICAgICAjIFdhaXQgQWRkQ2hhbm5lbFJlc3BvbnNlCi0gICAgICAgIHNlbGYu
X2xvZ2dlci5kZWJ1ZygnV2FpdGluZyBBZGRDaGFubmVsUmVzcG9uc2UgZm9yIHRoZSByZXF1ZXN0
Li4uJykKLSAgICAgICAgcmVzcG9uc2UgPSBOb25lCi0gICAgICAgIHRyeToKLSAgICAgICAgICAg
IHNlbGYuX2NvbnRyb2xfYmxvY2tzX2NvbmRpdGlvbi5hY3F1aXJlKCkKLSAgICAgICAgICAgIHdo
aWxlIFRydWU6Ci0gICAgICAgICAgICAgICAgZm9yIGJsb2NrIGluIHNlbGYuX2NvbnRyb2xfYmxv
Y2tzOgotICAgICAgICAgICAgICAgICAgICBpZiBibG9jay5vcGNvZGUgIT0gX01VWF9PUENPREVf
QUREX0NIQU5ORUxfUkVTUE9OU0U6Ci0gICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZQot
ICAgICAgICAgICAgICAgICAgICBpZiBibG9jay5jaGFubmVsX2lkID09IGNoYW5uZWxfaWQ6Ci0g
ICAgICAgICAgICAgICAgICAgICAgICByZXNwb25zZSA9IGJsb2NrCi0gICAgICAgICAgICAgICAg
ICAgICAgICBzZWxmLl9jb250cm9sX2Jsb2Nrcy5yZW1vdmUocmVzcG9uc2UpCi0gICAgICAgICAg
ICAgICAgICAgICAgICBicmVhawotICAgICAgICAgICAgICAgIGlmIHJlc3BvbnNlOgotICAgICAg
ICAgICAgICAgICAgICBicmVhawotICAgICAgICAgICAgICAgIHNlbGYuX2NvbnRyb2xfYmxvY2tz
X2NvbmRpdGlvbi53YWl0KHNlbGYuX3RpbWVvdXQpCi0gICAgICAgICAgICAgICAgaWYgbm90IHNl
bGYuX2lzX2FjdGl2ZToKLSAgICAgICAgICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCdBZGRD
aGFubmVsUmVxdWVzdCB0aW1lZCBvdXQnKQotICAgICAgICBmaW5hbGx5OgotICAgICAgICAgICAg
c2VsZi5fY29udHJvbF9ibG9ja3NfY29uZGl0aW9uLnJlbGVhc2UoKQotCi0gICAgICAgICMgVmFs
aWRhdGUgQWRkQ2hhbm5lbFJlc3BvbnNlCi0gICAgICAgIGlmIHJlc3BvbnNlLnJlamVjdGVkOgot
ICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCdUaGUgc2VydmVyIHJlamVjdGVkIEFkZENoYW5u
ZWxSZXF1ZXN0JykKLQotICAgICAgICBmaWVsZHMgPSBfcGFyc2VfaGFuZHNoYWtlX3Jlc3BvbnNl
KHJlc3BvbnNlLmVuY29kZWRfaGFuZHNoYWtlKQotCi0gICAgICAgICMgU2hvdWxkIHdlIHJlamVj
dCB3aGVuIFVwZ3JhZGUsIENvbm5lY3Rpb24sIG9yIFNlYy1XZWJTb2NrZXQtQWNjZXB0Ci0gICAg
ICAgICMgaGVhZGVycyBleGlzdD8KLQotICAgICAgICBzZWxmLl9sb2dpY2FsX2NoYW5uZWxzX2Nv
bmRpdGlvbi5hY3F1aXJlKCkKLSAgICAgICAgc2VsZi5fbG9naWNhbF9jaGFubmVsc1tjaGFubmVs
X2lkXSA9IF9Mb2dpY2FsQ2hhbm5lbERhdGEoKQotICAgICAgICBzZWxmLl9sb2dpY2FsX2NoYW5u
ZWxzW2NoYW5uZWxfaWRdLnNlbmRfcXVvdGEgPSBzZW5kX3F1b3RhCi0gICAgICAgIHNlbGYuX2xv
Z2ljYWxfY2hhbm5lbHNfY29uZGl0aW9uLnJlbGVhc2UoKQotCi0gICAgICAgIHNlbGYuX2xvZ2dl
ci5kZWJ1ZygnTG9naWNhbCBjaGFubmVsICVkIGVzdGFibGlzaGVkJyAlIGNoYW5uZWxfaWQpCi0K
LSAgICBkZWYgX2NoZWNrX2xvZ2ljYWxfY2hhbm5lbF9pc19vcGVuZWQoc2VsZiwgY2hhbm5lbF9p
ZCk6Ci0gICAgICAgIGlmIG5vdCBzZWxmLl9pc19hY3RpdmU6Ci0gICAgICAgICAgICByYWlzZSBF
eGNlcHRpb24oJ011eCBjbGllbnQgaXMgbm90IGFjdGl2ZScpCi0KLSAgICAgICAgaWYgbm90IGNo
YW5uZWxfaWQgaW4gc2VsZi5fbG9naWNhbF9jaGFubmVsczoKLSAgICAgICAgICAgIHJhaXNlIEV4
Y2VwdGlvbignTG9naWNhbCBjaGFubmVsICVkIGlzIG5vdCBlc3RhYmxpc2hlZC4nKQotCi0gICAg
ZGVmIGRyb3BfY2hhbm5lbChzZWxmLCBjaGFubmVsX2lkKToKLSAgICAgICAgIyBUT0RPKGJhc2hp
KTogSW1wbGVtZW50Ci0gICAgICAgIHBhc3MKLQotICAgIGRlZiBzZW5kX2Zsb3dfY29udHJvbChz
ZWxmLCBjaGFubmVsX2lkLCByZXBsZW5pc2hlZF9xdW90YSk6Ci0gICAgICAgIHNlbGYuX2NoZWNr
X2xvZ2ljYWxfY2hhbm5lbF9pc19vcGVuZWQoY2hhbm5lbF9pZCkKLSAgICAgICAgZmxvd19jb250
cm9sID0gX2NyZWF0ZV9mbG93X2NvbnRyb2woY2hhbm5lbF9pZCwgcmVwbGVuaXNoZWRfcXVvdGEp
Ci0gICAgICAgIHBheWxvYWQgPSBfZW5jb2RlX2NoYW5uZWxfaWQoX0NPTlRST0xfQ0hBTk5FTF9J
RCkgKyBmbG93X2NvbnRyb2wKLSAgICAgICAgIyBSZXBsZW5pc2ggcmVjZWl2ZSBxdW90YQotICAg
ICAgICB0cnk6Ci0gICAgICAgICAgICBzZWxmLl9sb2dpY2FsX2NoYW5uZWxzX2NvbmRpdGlvbi5h
Y3F1aXJlKCkKLSAgICAgICAgICAgIHNlbGYuX2xvZ2ljYWxfY2hhbm5lbHNbY2hhbm5lbF9pZF0u
cmVjZWl2ZV9xdW90YSArPSAoCi0gICAgICAgICAgICAgICAgcmVwbGVuaXNoZWRfcXVvdGEpCi0g
ICAgICAgIGZpbmFsbHk6Ci0gICAgICAgICAgICBzZWxmLl9sb2dpY2FsX2NoYW5uZWxzX2NvbmRp
dGlvbi5yZWxlYXNlKCkKLSAgICAgICAgc2VsZi5fc3RyZWFtLnNlbmRfYmluYXJ5KHBheWxvYWQp
Ci0KLSAgICBkZWYgc2VuZF9tZXNzYWdlKHNlbGYsIGNoYW5uZWxfaWQsIG1lc3NhZ2UsIGVuZD1U
cnVlLCBiaW5hcnk9RmFsc2UpOgotICAgICAgICBzZWxmLl9jaGVja19sb2dpY2FsX2NoYW5uZWxf
aXNfb3BlbmVkKGNoYW5uZWxfaWQpCi0KLSAgICAgICAgaWYgYmluYXJ5OgotICAgICAgICAgICAg
Zmlyc3RfYnl0ZSA9IChlbmQgPDwgNykgfCBjbGllbnRfZm9yX3Rlc3RpbmcuT1BDT0RFX0JJTkFS
WQotICAgICAgICBlbHNlOgotICAgICAgICAgICAgZmlyc3RfYnl0ZSA9IChlbmQgPDwgNykgfCBj
bGllbnRfZm9yX3Rlc3RpbmcuT1BDT0RFX1RFWFQKLSAgICAgICAgICAgIG1lc3NhZ2UgPSBtZXNz
YWdlLmVuY29kZSgndXRmLTgnKQotCi0gICAgICAgIHRyeToKLSAgICAgICAgICAgIHNlbGYuX2xv
Z2ljYWxfY2hhbm5lbHNfY29uZGl0aW9uLmFjcXVpcmUoKQotICAgICAgICAgICAgaWYgc2VsZi5f
bG9naWNhbF9jaGFubmVsc1tjaGFubmVsX2lkXS5zZW5kX3F1b3RhIDwgbGVuKG1lc3NhZ2UpOgot
ICAgICAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbignU2VuZCBxdW90YSB2aW9sYXRpb246ICVk
IDwgJWQnICUgKAotICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5fbG9naWNhbF9jaGFubmVs
c1tjaGFubmVsX2lkXS5zZW5kX3F1b3RhLAotICAgICAgICAgICAgICAgICAgICAgICAgbGVuKG1l
c3NhZ2UpKSkKLQotICAgICAgICAgICAgc2VsZi5fbG9naWNhbF9jaGFubmVsc1tjaGFubmVsX2lk
XS5zZW5kX3F1b3RhIC09IGxlbihtZXNzYWdlKQotICAgICAgICBmaW5hbGx5OgotICAgICAgICAg
ICAgc2VsZi5fbG9naWNhbF9jaGFubmVsc19jb25kaXRpb24ucmVsZWFzZSgpCi0gICAgICAgIHBh
eWxvYWQgPSBfZW5jb2RlX2NoYW5uZWxfaWQoY2hhbm5lbF9pZCkgKyBjaHIoZmlyc3RfYnl0ZSkg
KyBtZXNzYWdlCi0gICAgICAgIHNlbGYuX3N0cmVhbS5zZW5kX2JpbmFyeShwYXlsb2FkKQotCi0g
ICAgZGVmIGFzc2VydF9yZWNlaXZlKHNlbGYsIGNoYW5uZWxfaWQsIHBheWxvYWQsIGJpbmFyeT1G
YWxzZSk6Ci0gICAgICAgIHNlbGYuX2NoZWNrX2xvZ2ljYWxfY2hhbm5lbF9pc19vcGVuZWQoY2hh
bm5lbF9pZCkKLQotICAgICAgICB0cnk6Ci0gICAgICAgICAgICBpbm5lcl9mcmFtZSA9IHNlbGYu
X2xvZ2ljYWxfY2hhbm5lbHNbY2hhbm5lbF9pZF0ucXVldWUuZ2V0KAotICAgICAgICAgICAgICAg
IHRpbWVvdXQ9c2VsZi5fdGltZW91dCkKLSAgICAgICAgZXhjZXB0IFF1ZXVlLkVtcHR5LCBlOgot
ICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCdDYW5ub3QgcmVjZWl2ZSBtZXNzYWdlIGZyb20g
Y2hhbm5lbCBpZCAlZCcgJQotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoYW5uZWxfaWQp
Ci0KLSAgICAgICAgaWYgYmluYXJ5OgotICAgICAgICAgICAgb3Bjb2RlID0gY2xpZW50X2Zvcl90
ZXN0aW5nLk9QQ09ERV9CSU5BUlkKLSAgICAgICAgZWxzZToKLSAgICAgICAgICAgIG9wY29kZSA9
IGNsaWVudF9mb3JfdGVzdGluZy5PUENPREVfVEVYVAotCi0gICAgICAgIGlmIGlubmVyX2ZyYW1l
Lm9wY29kZSAhPSBvcGNvZGU6Ci0gICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oJ1VuZXhwZWN0
ZWQgb3Bjb2RlIHJlY2VpdmVkICglciAhPSAlciknICUKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAoZXhwZWN0ZWRfb3Bjb2RlLCBpbm5lcl9mcmFtZS5vcGNvZGUpKQotCi0gICAgICAgIGlm
IGlubmVyX2ZyYW1lLnBheWxvYWQgIT0gcGF5bG9hZDoKLSAgICAgICAgICAgIHJhaXNlIEV4Y2Vw
dGlvbignVW5leHBlY3RlZCBwYXlsb2FkIHJlY2VpdmVkJykKLQotICAgIGRlZiBzZW5kX2Nsb3Nl
KHNlbGYsIGNoYW5uZWxfaWQsIGNvZGU9Tm9uZSwgcmVhc29uPScnKToKLSAgICAgICAgc2VsZi5f
Y2hlY2tfbG9naWNhbF9jaGFubmVsX2lzX29wZW5lZChjaGFubmVsX2lkKQotCi0gICAgICAgIGlm
IGNvZGUgaXMgbm90IE5vbmU6Ci0gICAgICAgICAgICBib2R5ID0gc3RydWN0LnBhY2soJyFIJywg
Y29kZSkgKyByZWFzb24uZW5jb2RlKCd1dGYtOCcpCi0gICAgICAgIGVsc2U6Ci0gICAgICAgICAg
ICBib2R5ID0gJycKLQotICAgICAgICBmaXJzdF9ieXRlID0gKDEgPDwgNykgfCBjbGllbnRfZm9y
X3Rlc3RpbmcuT1BDT0RFX0NMT1NFCi0gICAgICAgIHBheWxvYWQgPSBfZW5jb2RlX2NoYW5uZWxf
aWQoY2hhbm5lbF9pZCkgKyBjaHIoZmlyc3RfYnl0ZSkgKyBib2R5Ci0gICAgICAgIHNlbGYuX3N0
cmVhbS5zZW5kX2JpbmFyeShwYXlsb2FkKQotCi0gICAgZGVmIGFzc2VydF9yZWNlaXZlX2Nsb3Nl
KHNlbGYsIGNoYW5uZWxfaWQpOgotICAgICAgICBzZWxmLl9jaGVja19sb2dpY2FsX2NoYW5uZWxf
aXNfb3BlbmVkKGNoYW5uZWxfaWQpCi0KLSAgICAgICAgdHJ5OgotICAgICAgICAgICAgaW5uZXJf
ZnJhbWUgPSBzZWxmLl9sb2dpY2FsX2NoYW5uZWxzW2NoYW5uZWxfaWRdLnF1ZXVlLmdldCgKLSAg
ICAgICAgICAgICAgICB0aW1lb3V0PXNlbGYuX3RpbWVvdXQpCi0gICAgICAgIGV4Y2VwdCBRdWV1
ZS5FbXB0eSwgZToKLSAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbignQ2Fubm90IHJlY2VpdmUg
bWVzc2FnZSBmcm9tIGNoYW5uZWwgaWQgJWQnICUKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBjaGFubmVsX2lkKQotICAgICAgICBpZiBpbm5lcl9mcmFtZS5vcGNvZGUgIT0gY2xpZW50X2Zv
cl90ZXN0aW5nLk9QQ09ERV9DTE9TRToKLSAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbignRGlk
blwndCByZWNlaXZlIGNsb3NlIGZyYW1lJykKLQotICAgIGRlZiBzZW5kX3BoeXNpY2FsX2Nvbm5l
Y3Rpb25fY2xvc2Uoc2VsZiwgY29kZT1Ob25lLCByZWFzb249JycpOgotICAgICAgICBzZWxmLl9w
aHlzaWNhbF9jb25uZWN0aW9uX2Nsb3NlX2V2ZW50ID0gdGhyZWFkaW5nLkV2ZW50KCkKLSAgICAg
ICAgc2VsZi5fc3RyZWFtLnNlbmRfY2xvc2UoY29kZSwgcmVhc29uKQotCi0gICAgIyBUaGlzIG1l
dGhvZCBjYW4gYmUgdXNlZCBvbmx5IGFmdGVyIGNhbGxpbmcKLSAgICAjIHNlbmRfcGh5c2ljYWxf
Y29ubmVjdGlvbl9jbG9zZSgpLgotICAgIGRlZiBhc3NlcnRfcGh5c2ljYWxfY29ubmVjdGlvbl9y
ZWNlaXZlX2Nsb3NlKAotICAgICAgICBzZWxmLCBjb2RlPWNsaWVudF9mb3JfdGVzdGluZy5TVEFU
VVNfTk9STUFMX0NMT1NVUkUsIHJlYXNvbj0nJyk6Ci0gICAgICAgIHNlbGYuX3BoeXNpY2FsX2Nv
bm5lY3Rpb25fY2xvc2VfZXZlbnQud2FpdCh0aW1lb3V0PXNlbGYuX3RpbWVvdXQpCi0gICAgICAg
IGlmIChub3Qgc2VsZi5fcGh5c2ljYWxfY29ubmVjdGlvbl9jbG9zZV9ldmVudC5pc1NldCgpIG9y
Ci0gICAgICAgICAgICBub3Qgc2VsZi5fcGh5c2ljYWxfY29ubmVjdGlvbl9jbG9zZV9tZXNzYWdl
KToKLSAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbignRGlkblwndCByZWNlaXZlIGNsb3Npbmcg
aGFuZHNoYWtlJykKLQotICAgIGRlZiBjbG9zZV9zb2NrZXQoc2VsZik6Ci0gICAgICAgIHNlbGYu
X2lzX2FjdGl2ZSA9IEZhbHNlCi0gICAgICAgIHNlbGYuX3NvY2tldC5jbG9zZSgpCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5
d2Vic29ja2V0L3NyYy90ZXN0L3J1bl9hbGwucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3NyYy90ZXN0L3J1bl9hbGwucHkK
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDgwYTVkODdkODM4MjJiMDc4M2JlMTNlMzNk
ZGEzYWI2MWE1YWZlNDAuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAK
LS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9w
eXdlYnNvY2tldC9zcmMvdGVzdC9ydW5fYWxsLnB5CisrKyAvZGV2L251bGwKQEAgLTEsODkgKzAs
MCBAQAotIyEvdXNyL2Jpbi9lbnYgcHl0aG9uCi0jCi0jIENvcHlyaWdodCAyMDExLCBHb29nbGUg
SW5jLgotIyBBbGwgcmlnaHRzIHJlc2VydmVkLgotIwotIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSMgbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
IGFyZQotIyBtZXQ6Ci0jCi0jICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0jIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSMgICAgICogUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQotIyBjb3B5cmln
aHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyCi0jIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUKLSMgZGlzdHJpYnV0aW9uLgotIyAgICAgKiBOZWl0aGVyIHRoZSBuYW1l
IG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCi0jIGNvbnRyaWJ1dG9ycyBtYXkg
YmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCi0jIHRo
aXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0j
Ci0jIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFO
RCBDT05UUklCVVRPUlMKLSMgIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKLSMgTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCi0jIEEgUEFSVElDVUxB
UiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hU
Ci0jIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLAotIyBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCi0jIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAotIyBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkKLSMgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVAotIyAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLQotCi0iIiJS
dW4gYWxsIHRlc3RzIGluIHRoZSBzYW1lIGRpcmVjdG9yeS4KLQotVGhpcyBzdWl0ZSBpcyBleHBl
Y3RlZCB0byBiZSBydW4gdW5kZXIgcHl3ZWJzb2NrZXQncyBzcmMgZGlyZWN0b3J5LCBpLmUuIHRo
ZQotZGlyZWN0b3J5IGNvbnRhaW5pbmcgbW9kX3B5d2Vic29ja2V0LCB0ZXN0LCBldGMuCi0KLVRv
IGNoYW5nZSBsb2dnaW4gbGV2ZWwsIHBsZWFzZSBzcGVjaWZ5IC0tbG9nLWxldmVsIG9wdGlvbi4K
LSAgICBweXRob24gdGVzdC9ydW5fdGVzdC5weSAtLWxvZy1sZXZlbCBkZWJ1ZwotCi1UbyBwYXNz
IGFueSBvcHRpb24gdG8gdW5pdHRlc3QgbW9kdWxlLCBwbGVhc2Ugc3BlY2lmeSBvcHRpb25zIGFm
dGVyICctLScuIEZvcgotZXhhbXBsZSwgcnVuIHRoaXMgZm9yIG1ha2luZyB0aGUgdGVzdCBydW5u
ZXIgdmVyYm9zZS4KLSAgICBweXRob24gdGVzdC9ydW5fdGVzdC5weSAtLWxvZy1sZXZlbCBkZWJ1
ZyAtLSAtdgotIiIiCi0KLQotaW1wb3J0IGxvZ2dpbmcKLWltcG9ydCBvcHRwYXJzZQotaW1wb3J0
IG9zCi1pbXBvcnQgcmUKLWltcG9ydCBzeXMKLWltcG9ydCB1bml0dGVzdAotCi0KLV9URVNUX01P
RFVMRV9QQVRURVJOID0gcmUuY29tcGlsZShyJ14odGVzdF8uKylcLnB5JCcpCi0KLQotZGVmIF9s
aXN0X3Rlc3RfbW9kdWxlcyhkaXJlY3RvcnkpOgotICAgIG1vZHVsZV9uYW1lcyA9IFtdCi0gICAg
Zm9yIGZpbGVuYW1lIGluIG9zLmxpc3RkaXIoZGlyZWN0b3J5KToKLSAgICAgICAgbWF0Y2ggPSBf
VEVTVF9NT0RVTEVfUEFUVEVSTi5zZWFyY2goZmlsZW5hbWUpCi0gICAgICAgIGlmIG1hdGNoOgot
ICAgICAgICAgICAgbW9kdWxlX25hbWVzLmFwcGVuZChtYXRjaC5ncm91cCgxKSkKLSAgICByZXR1
cm4gbW9kdWxlX25hbWVzCi0KLQotZGVmIF9zdWl0ZSgpOgotICAgIGxvYWRlciA9IHVuaXR0ZXN0
LlRlc3RMb2FkZXIoKQotICAgIHJldHVybiBsb2FkZXIubG9hZFRlc3RzRnJvbU5hbWVzKAotICAg
ICAgICAgICAgX2xpc3RfdGVzdF9tb2R1bGVzKG9zLnBhdGguam9pbihvcy5wYXRoLnNwbGl0KF9f
ZmlsZV9fKVswXSwgJy4nKSkpCi0KLQotaWYgX19uYW1lX18gPT0gJ19fbWFpbl9fJzoKLSAgICBw
YXJzZXIgPSBvcHRwYXJzZS5PcHRpb25QYXJzZXIoKQotICAgIHBhcnNlci5hZGRfb3B0aW9uKCct
LWxvZy1sZXZlbCcsICctLWxvZ19sZXZlbCcsIHR5cGU9J2Nob2ljZScsCi0gICAgICAgICAgICAg
ICAgICAgICAgZGVzdD0nbG9nX2xldmVsJywgZGVmYXVsdD0nd2FybmluZycsCi0gICAgICAgICAg
ICAgICAgICAgICAgY2hvaWNlcz1bJ2RlYnVnJywgJ2luZm8nLCAnd2FybmluZycsICd3YXJuJywg
J2Vycm9yJywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnY3JpdGljYWwnXSkKLSAg
ICBvcHRpb25zLCBhcmdzID0gcGFyc2VyLnBhcnNlX2FyZ3MoKQotICAgIGxvZ2dpbmcuYmFzaWND
b25maWcoCi0gICAgICAgICAgICBsZXZlbD1sb2dnaW5nLmdldExldmVsTmFtZShvcHRpb25zLmxv
Z19sZXZlbC51cHBlcigpKSwKLSAgICAgICAgICAgIGZvcm1hdD0nJShsZXZlbG5hbWUpcyAlKGFz
Y3RpbWUpcyAnCi0gICAgICAgICAgICAgICAgICAgJyUoZmlsZW5hbWUpczolKGxpbmVubylkXSAn
Ci0gICAgICAgICAgICAgICAgICAgJyUobWVzc2FnZSlzJywKLSAgICAgICAgICAgIGRhdGVmbXQ9
JyVIOiVNOiVTJykKLSAgICB1bml0dGVzdC5tYWluKGRlZmF1bHRUZXN0PSdfc3VpdGUnLCBhcmd2
PVtzeXMuYXJndlswXV0gKyBhcmdzKQotCi0KLSMgdmk6c3RzPTQgc3c9NCBldApkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdl
YnNvY2tldC9zcmMvdGVzdC9zZXRfc3lzX3BhdGgucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3NyYy90ZXN0L3NldF9zeXNf
cGF0aC5weQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZTNjNmRiOWVhNGQzODNhMzdj
MjdhMDYwYTBlZjFjNTYzYmJiMWUxNC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3B5d2Vic29ja2V0L3NyYy90ZXN0L3NldF9zeXNfcGF0aC5weQorKysgL2Rldi9udWxs
CkBAIC0xLDQ1ICswLDAgQEAKLSMgQ29weXJpZ2h0IDIwMDksIEdvb2dsZSBJbmMuCi0jIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCi0jCi0jIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotIyBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCi0jIG1ldDoK
LSMKLSMgICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKLSMgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotIyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCi0jIGNvcHlyaWdodCBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKLSMgaW4g
dGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZQotIyBkaXN0cmlidXRpb24uCi0jICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIElu
Yy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKLSMgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVu
ZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KLSMgdGhpcyBzb2Z0d2FyZSB3
aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLSMKLSMgVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9S
UwotIyAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVAotIyBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKLSMgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKLSMgT1dORVIgT1Ig
Q09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsCi0jIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QKLSMgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCi0jIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQotIyBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUCi0jIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRQotIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotCi0KLSIiIkNvbmZpZ3VyYXRpb24g
Zm9yIHRlc3RpbmcuCi0KLVRlc3QgZmlsZXMgc2hvdWxkIGltcG9ydCB0aGlzIG1vZHVsZSBiZWZv
cmUgbW9kX3B5d2Vic29ja2V0LgotIiIiCi0KLQotaW1wb3J0IG9zCi1pbXBvcnQgc3lzCi0KLQot
IyBBZGQgdGhlIHBhcmVudCBkaXJlY3RvcnkgdG8gc3lzLnBhdGggdG8gZW5hYmxlIGltcG9ydGlu
ZyBtb2RfcHl3ZWJzb2NrZXQuCi1zeXMucGF0aC5pbnNlcnQoMCwgb3MucGF0aC5qb2luKG9zLnBh
dGguc3BsaXQoX19maWxlX18pWzBdLCAnLi4nKSkKLQotCi0jIHZpOnN0cz00IHN3PTQgZXQKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvcHl3ZWJzb2NrZXQvc3JjL3Rlc3QvdGVzdF9kaXNwYXRjaC5weSBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3JjL3Rlc3Qv
dGVzdF9kaXNwYXRjaC5weQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOWNhM2Q0ZjNh
ZTFkYmY1Zjk3YjI3ZDg0ZWM2ZTY0MjJmZDBlY2FhNC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3NyYy90ZXN0L3Rlc3RfZGlzcGF0Y2gucHkKKysr
IC9kZXYvbnVsbApAQCAtMSwyODggKzAsMCBAQAotIyEvdXNyL2Jpbi9lbnYgcHl0aG9uCi0jCi0j
IENvcHlyaWdodCAyMDExLCBHb29nbGUgSW5jLgotIyBBbGwgcmlnaHRzIHJlc2VydmVkLgotIwot
IyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKLSMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQotIyBtZXQ6Ci0jCi0jICAgICAqIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0j
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KLSMgICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZQotIyBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCi0jIGluIHRoZSBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKLSMgZGlzdHJpYnV0aW9uLgot
IyAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2Yg
aXRzCi0jIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJv
ZHVjdHMgZGVyaXZlZCBmcm9tCi0jIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlv
ciB3cml0dGVuIHBlcm1pc3Npb24uCi0jCi0jIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
VEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKLSMgIkFTIElTIiBBTkQgQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKLSMgTElN
SVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SCi0jIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCi0jIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAotIyBTUEVDSUFMLCBFWEVN
UExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCi0jIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLAotIyBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKLSMgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotIyAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UK
LSMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KLQotCi0iIiJUZXN0cyBmb3IgZGlzcGF0Y2ggbW9kdWxlLiIiIgotCi0K
LWltcG9ydCBvcwotaW1wb3J0IHVuaXR0ZXN0Ci0KLWltcG9ydCBzZXRfc3lzX3BhdGggICMgVXBk
YXRlIHN5cy5wYXRoIHRvIGxvY2F0ZSBtb2RfcHl3ZWJzb2NrZXQgbW9kdWxlLgotCi1mcm9tIG1v
ZF9weXdlYnNvY2tldCBpbXBvcnQgZGlzcGF0Y2gKLWZyb20gbW9kX3B5d2Vic29ja2V0IGltcG9y
dCBoYW5kc2hha2UKLWZyb20gdGVzdCBpbXBvcnQgbW9jawotCi0KLV9URVNUX0hBTkRMRVJTX0RJ
UiA9IG9zLnBhdGguam9pbigKLSAgICAgICAgb3MucGF0aC5zcGxpdChfX2ZpbGVfXylbMF0sICd0
ZXN0ZGF0YScsICdoYW5kbGVycycpCi0KLV9URVNUX0hBTkRMRVJTX1NVQl9ESVIgPSBvcy5wYXRo
LmpvaW4oX1RFU1RfSEFORExFUlNfRElSLCAnc3ViJykKLQotCi1jbGFzcyBEaXNwYXRjaGVyVGVz
dCh1bml0dGVzdC5UZXN0Q2FzZSk6Ci0gICAgIiIiQSB1bml0dGVzdCBmb3IgZGlzcGF0Y2ggbW9k
dWxlLiIiIgotCi0gICAgZGVmIHRlc3Rfbm9ybWFsaXplX3BhdGgoc2VsZik6Ci0gICAgICAgIHNl
bGYuYXNzZXJ0RXF1YWwob3MucGF0aC5hYnNwYXRoKCcvYS9iJykucmVwbGFjZSgnXFwnLCAnLycp
LAotICAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BhdGNoLl9ub3JtYWxpemVfcGF0aCgnL2Ev
YicpKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKG9zLnBhdGguYWJzcGF0aCgnL2EvYicpLnJl
cGxhY2UoJ1xcJywgJy8nKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICBkaXNwYXRjaC5fbm9y
bWFsaXplX3BhdGgoJ1xcYVxcYicpKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKG9zLnBhdGgu
YWJzcGF0aCgnL2EvYicpLnJlcGxhY2UoJ1xcJywgJy8nKSwKLSAgICAgICAgICAgICAgICAgICAg
ICAgICBkaXNwYXRjaC5fbm9ybWFsaXplX3BhdGgoJy9hL2MvLi4vYicpKQotICAgICAgICBzZWxm
LmFzc2VydEVxdWFsKG9zLnBhdGguYWJzcGF0aCgnYWJjJykucmVwbGFjZSgnXFwnLCAnLycpLAot
ICAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BhdGNoLl9ub3JtYWxpemVfcGF0aCgnYWJjJykp
Ci0KLSAgICBkZWYgdGVzdF9jb252ZXJ0ZXIoc2VsZik6Ci0gICAgICAgIGNvbnZlcnRlciA9IGRp
c3BhdGNoLl9jcmVhdGVfcGF0aF90b19yZXNvdXJjZV9jb252ZXJ0ZXIoJy9hL2InKQotICAgICAg
ICAjIFB5dGhvbiBidWlsdCBieSBNU0MgaW5zZXJ0cyBhIGRyaXZlIG5hbWUgbGlrZSAnQzpcJyB2
aWEgcmVhbHBhdGgoKS4KLSAgICAgICAgIyBDb252ZXJ0ZXIgR2VuZXJhdG9yIGV4cGFuZHMgcHJv
dmlkZWQgcGF0aCB1c2luZyByZWFscGF0aCgpIGFuZCB1c2VzCi0gICAgICAgICMgdGhlIHBhdGgg
aW5jbHVkaW5nIGEgZHJpdmUgbmFtZSB0byB2ZXJpZnkgdGhlIHByZWZpeC4KLSAgICAgICAgb3Nf
cm9vdCA9IG9zLnBhdGgucmVhbHBhdGgoJy8nKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCcv
aCcsIGNvbnZlcnRlcihvc19yb290ICsgJ2EvYi9oX3dzaC5weScpKQotICAgICAgICBzZWxmLmFz
c2VydEVxdWFsKCcvYy9oJywgY29udmVydGVyKG9zX3Jvb3QgKyAnYS9iL2MvaF93c2gucHknKSkK
LSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChOb25lLCBjb252ZXJ0ZXIob3Nfcm9vdCArICdhL2Iv
aC5weScpKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKE5vbmUsIGNvbnZlcnRlcignYS9iL2hf
d3NoLnB5JykpCi0KLSAgICAgICAgY29udmVydGVyID0gZGlzcGF0Y2guX2NyZWF0ZV9wYXRoX3Rv
X3Jlc291cmNlX2NvbnZlcnRlcignYS9iJykKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnL2gn
LCBjb252ZXJ0ZXIoZGlzcGF0Y2guX25vcm1hbGl6ZV9wYXRoKAotICAgICAgICAgICAgJ2EvYi9o
X3dzaC5weScpKSkKLQotICAgICAgICBjb252ZXJ0ZXIgPSBkaXNwYXRjaC5fY3JlYXRlX3BhdGhf
dG9fcmVzb3VyY2VfY29udmVydGVyKCcvYS9iLy8vJykKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVh
bCgnL2gnLCBjb252ZXJ0ZXIob3Nfcm9vdCArICdhL2IvaF93c2gucHknKSkKLSAgICAgICAgc2Vs
Zi5hc3NlcnRFcXVhbCgnL2gnLCBjb252ZXJ0ZXIoZGlzcGF0Y2guX25vcm1hbGl6ZV9wYXRoKAot
ICAgICAgICAgICAgJy9hL2IvLi4vYi9oX3dzaC5weScpKSkKLQotICAgICAgICBjb252ZXJ0ZXIg
PSBkaXNwYXRjaC5fY3JlYXRlX3BhdGhfdG9fcmVzb3VyY2VfY29udmVydGVyKAotICAgICAgICAg
ICAgJy9hLy4uL2EvYi8uLi9iLycpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJy9oJywgY29u
dmVydGVyKG9zX3Jvb3QgKyAnYS9iL2hfd3NoLnB5JykpCi0KLSAgICAgICAgY29udmVydGVyID0g
ZGlzcGF0Y2guX2NyZWF0ZV9wYXRoX3RvX3Jlc291cmNlX2NvbnZlcnRlcihyJ1xhXGInKQotICAg
ICAgICBzZWxmLmFzc2VydEVxdWFsKCcvaCcsIGNvbnZlcnRlcihvc19yb290ICsgcidhXGJcaF93
c2gucHknKSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnL2gnLCBjb252ZXJ0ZXIob3Nfcm9v
dCArIHInYS9iL2hfd3NoLnB5JykpCi0KLSAgICBkZWYgdGVzdF9lbnVtZXJhdGVfaGFuZGxlcl9m
aWxlX3BhdGhzKHNlbGYpOgotICAgICAgICBwYXRocyA9IGxpc3QoCi0gICAgICAgICAgICBkaXNw
YXRjaC5fZW51bWVyYXRlX2hhbmRsZXJfZmlsZV9wYXRocyhfVEVTVF9IQU5ETEVSU19ESVIpKQot
ICAgICAgICBwYXRocy5zb3J0KCkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCg4LCBsZW4ocGF0
aHMpKQotICAgICAgICBleHBlY3RlZF9wYXRocyA9IFsKLSAgICAgICAgICAgICAgICBvcy5wYXRo
LmpvaW4oX1RFU1RfSEFORExFUlNfRElSLCAnYWJvcnRfYnlfdXNlcl93c2gucHknKSwKLSAgICAg
ICAgICAgICAgICBvcy5wYXRoLmpvaW4oX1RFU1RfSEFORExFUlNfRElSLCAnYmxhbmtfd3NoLnB5
JyksCi0gICAgICAgICAgICAgICAgb3MucGF0aC5qb2luKF9URVNUX0hBTkRMRVJTX0RJUiwgJ29y
aWdpbl9jaGVja193c2gucHknKSwKLSAgICAgICAgICAgICAgICBvcy5wYXRoLmpvaW4oX1RFU1Rf
SEFORExFUlNfRElSLCAnc3ViJywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2V4Y2Vw
dGlvbl9pbl90cmFuc2Zlcl93c2gucHknKSwKLSAgICAgICAgICAgICAgICBvcy5wYXRoLmpvaW4o
X1RFU1RfSEFORExFUlNfRElSLCAnc3ViJywgJ25vbl9jYWxsYWJsZV93c2gucHknKSwKLSAgICAg
ICAgICAgICAgICBvcy5wYXRoLmpvaW4oX1RFU1RfSEFORExFUlNfRElSLCAnc3ViJywgJ3BsYWlu
X3dzaC5weScpLAotICAgICAgICAgICAgICAgIG9zLnBhdGguam9pbihfVEVTVF9IQU5ETEVSU19E
SVIsICdzdWInLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnd3JvbmdfaGFuZHNoYWtl
X3NpZ193c2gucHknKSwKLSAgICAgICAgICAgICAgICBvcy5wYXRoLmpvaW4oX1RFU1RfSEFORExF
UlNfRElSLCAnc3ViJywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3dyb25nX3RyYW5z
ZmVyX3NpZ193c2gucHknKSwKLSAgICAgICAgICAgICAgICBdCi0gICAgICAgIGZvciBleHBlY3Rl
ZCwgYWN0dWFsIGluIHppcChleHBlY3RlZF9wYXRocywgcGF0aHMpOgotICAgICAgICAgICAgc2Vs
Zi5hc3NlcnRFcXVhbChleHBlY3RlZCwgYWN0dWFsKQotCi0gICAgZGVmIHRlc3Rfc291cmNlX2hh
bmRsZXJfZmlsZShzZWxmKToKLSAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoCi0gICAgICAgICAg
ICBkaXNwYXRjaC5EaXNwYXRjaEV4Y2VwdGlvbiwgZGlzcGF0Y2guX3NvdXJjZV9oYW5kbGVyX2Zp
bGUsICcnKQotICAgICAgICBzZWxmLmFzc2VydFJhaXNlcygKLSAgICAgICAgICAgIGRpc3BhdGNo
LkRpc3BhdGNoRXhjZXB0aW9uLCBkaXNwYXRjaC5fc291cmNlX2hhbmRsZXJfZmlsZSwgJ2RlZicp
Ci0gICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKAotICAgICAgICAgICAgZGlzcGF0Y2guRGlzcGF0
Y2hFeGNlcHRpb24sIGRpc3BhdGNoLl9zb3VyY2VfaGFuZGxlcl9maWxlLCAnMS8wJykKLSAgICAg
ICAgc2VsZi5mYWlsVW5sZXNzKGRpc3BhdGNoLl9zb3VyY2VfaGFuZGxlcl9maWxlKAotICAgICAg
ICAgICAgICAgICdkZWYgd2ViX3NvY2tldF9kb19leHRyYV9oYW5kc2hha2UocmVxdWVzdCk6cGFz
c1xuJwotICAgICAgICAgICAgICAgICdkZWYgd2ViX3NvY2tldF90cmFuc2Zlcl9kYXRhKHJlcXVl
c3QpOnBhc3NcbicpKQotCi0gICAgZGVmIHRlc3Rfc291cmNlX3dhcm5pbmdzKHNlbGYpOgotICAg
ICAgICBkaXNwYXRjaGVyID0gZGlzcGF0Y2guRGlzcGF0Y2hlcihfVEVTVF9IQU5ETEVSU19ESVIs
IE5vbmUpCi0gICAgICAgIHdhcm5pbmdzID0gZGlzcGF0Y2hlci5zb3VyY2Vfd2FybmluZ3MoKQot
ICAgICAgICB3YXJuaW5ncy5zb3J0KCkKLSAgICAgICAgZXhwZWN0ZWRfd2FybmluZ3MgPSBbCi0g
ICAgICAgICAgICAgICAgKG9zLnBhdGgucmVhbHBhdGgob3MucGF0aC5qb2luKAotICAgICAgICAg
ICAgICAgICAgICBfVEVTVF9IQU5ETEVSU19ESVIsICdibGFua193c2gucHknKSkgKwotICAgICAg
ICAgICAgICAgICAnOiB3ZWJfc29ja2V0X2RvX2V4dHJhX2hhbmRzaGFrZSBpcyBub3QgZGVmaW5l
ZC4nKSwKLSAgICAgICAgICAgICAgICAob3MucGF0aC5yZWFscGF0aChvcy5wYXRoLmpvaW4oCi0g
ICAgICAgICAgICAgICAgICAgIF9URVNUX0hBTkRMRVJTX0RJUiwgJ3N1YicsICdub25fY2FsbGFi
bGVfd3NoLnB5JykpICsKLSAgICAgICAgICAgICAgICAgJzogd2ViX3NvY2tldF9kb19leHRyYV9o
YW5kc2hha2UgaXMgbm90IGNhbGxhYmxlLicpLAotICAgICAgICAgICAgICAgIChvcy5wYXRoLnJl
YWxwYXRoKG9zLnBhdGguam9pbigKLSAgICAgICAgICAgICAgICAgICAgX1RFU1RfSEFORExFUlNf
RElSLCAnc3ViJywgJ3dyb25nX2hhbmRzaGFrZV9zaWdfd3NoLnB5JykpICsKLSAgICAgICAgICAg
ICAgICAgJzogd2ViX3NvY2tldF9kb19leHRyYV9oYW5kc2hha2UgaXMgbm90IGRlZmluZWQuJyks
Ci0gICAgICAgICAgICAgICAgKG9zLnBhdGgucmVhbHBhdGgob3MucGF0aC5qb2luKAotICAgICAg
ICAgICAgICAgICAgICBfVEVTVF9IQU5ETEVSU19ESVIsICdzdWInLCAnd3JvbmdfdHJhbnNmZXJf
c2lnX3dzaC5weScpKSArCi0gICAgICAgICAgICAgICAgICc6IHdlYl9zb2NrZXRfdHJhbnNmZXJf
ZGF0YSBpcyBub3QgZGVmaW5lZC4nKSwKLSAgICAgICAgICAgICAgICBdCi0gICAgICAgIHNlbGYu
YXNzZXJ0RXF1YWxzKDQsIGxlbih3YXJuaW5ncykpCi0gICAgICAgIGZvciBleHBlY3RlZCwgYWN0
dWFsIGluIHppcChleHBlY3RlZF93YXJuaW5ncywgd2FybmluZ3MpOgotICAgICAgICAgICAgc2Vs
Zi5hc3NlcnRFcXVhbHMoZXhwZWN0ZWQsIGFjdHVhbCkKLQotICAgIGRlZiB0ZXN0X2RvX2V4dHJh
X2hhbmRzaGFrZShzZWxmKToKLSAgICAgICAgZGlzcGF0Y2hlciA9IGRpc3BhdGNoLkRpc3BhdGNo
ZXIoX1RFU1RfSEFORExFUlNfRElSLCBOb25lKQotICAgICAgICByZXF1ZXN0ID0gbW9jay5Nb2Nr
UmVxdWVzdCgpCi0gICAgICAgIHJlcXVlc3Qud3NfcmVzb3VyY2UgPSAnL29yaWdpbl9jaGVjaycK
LSAgICAgICAgcmVxdWVzdC53c19vcmlnaW4gPSAnaHR0cDovL2V4YW1wbGUuY29tJwotICAgICAg
ICBkaXNwYXRjaGVyLmRvX2V4dHJhX2hhbmRzaGFrZShyZXF1ZXN0KSAgIyBNdXN0IG5vdCByYWlz
ZSBleGNlcHRpb24uCi0KLSAgICAgICAgcmVxdWVzdC53c19vcmlnaW4gPSAnaHR0cDovL2JhZC5l
eGFtcGxlLmNvbScKLSAgICAgICAgdHJ5OgotICAgICAgICAgICAgZGlzcGF0Y2hlci5kb19leHRy
YV9oYW5kc2hha2UocmVxdWVzdCkKLSAgICAgICAgICAgIHNlbGYuZmFpbCgnQ291bGQgbm90IGNh
dGNoIEhhbmRzaGFrZUV4Y2VwdGlvbiB3aXRoIDQwMyBzdGF0dXMnKQotICAgICAgICBleGNlcHQg
aGFuZHNoYWtlLkhhbmRzaGFrZUV4Y2VwdGlvbiwgZToKLSAgICAgICAgICAgIHNlbGYuYXNzZXJ0
RXF1YWxzKDQwMywgZS5zdGF0dXMpCi0gICAgICAgIGV4Y2VwdCBFeGNlcHRpb24sIGU6Ci0gICAg
ICAgICAgICBzZWxmLmZhaWwoJ1VuZXhwZWN0ZWQgZXhjZXB0aW9uOiAlcicgJSBlKQotCi0gICAg
ZGVmIHRlc3RfYWJvcnRfZXh0cmFfaGFuZHNoYWtlKHNlbGYpOgotICAgICAgICBkaXNwYXRjaGVy
ID0gZGlzcGF0Y2guRGlzcGF0Y2hlcihfVEVTVF9IQU5ETEVSU19ESVIsIE5vbmUpCi0gICAgICAg
IHJlcXVlc3QgPSBtb2NrLk1vY2tSZXF1ZXN0KCkKLSAgICAgICAgcmVxdWVzdC53c19yZXNvdXJj
ZSA9ICcvYWJvcnRfYnlfdXNlcicKLSAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoaGFuZHNoYWtl
LkFib3J0ZWRCeVVzZXJFeGNlcHRpb24sCi0gICAgICAgICAgICAgICAgICAgICAgICAgIGRpc3Bh
dGNoZXIuZG9fZXh0cmFfaGFuZHNoYWtlLCByZXF1ZXN0KQotCi0gICAgZGVmIHRlc3RfdHJhbnNm
ZXJfZGF0YShzZWxmKToKLSAgICAgICAgZGlzcGF0Y2hlciA9IGRpc3BhdGNoLkRpc3BhdGNoZXIo
X1RFU1RfSEFORExFUlNfRElSLCBOb25lKQotCi0gICAgICAgIHJlcXVlc3QgPSBtb2NrLk1vY2tS
ZXF1ZXN0KGNvbm5lY3Rpb249bW9jay5Nb2NrQ29ubignXHhmZlx4MDAnKSkKLSAgICAgICAgcmVx
dWVzdC53c19yZXNvdXJjZSA9ICcvb3JpZ2luX2NoZWNrJwotICAgICAgICByZXF1ZXN0LndzX3By
b3RvY29sID0gJ3AxJwotICAgICAgICBkaXNwYXRjaGVyLnRyYW5zZmVyX2RhdGEocmVxdWVzdCkK
LSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnb3JpZ2luX2NoZWNrX3dzaC5weSBpcyBjYWxsZWQg
Zm9yIC9vcmlnaW5fY2hlY2ssIHAxJwotICAgICAgICAgICAgICAgICAgICAgICAgICdceGZmXHgw
MCcsCi0gICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLndyaXR0ZW5f
ZGF0YSgpKQotCi0gICAgICAgIHJlcXVlc3QgPSBtb2NrLk1vY2tSZXF1ZXN0KGNvbm5lY3Rpb249
bW9jay5Nb2NrQ29ubignXHhmZlx4MDAnKSkKLSAgICAgICAgcmVxdWVzdC53c19yZXNvdXJjZSA9
ICcvc3ViL3BsYWluJwotICAgICAgICByZXF1ZXN0LndzX3Byb3RvY29sID0gTm9uZQotICAgICAg
ICBkaXNwYXRjaGVyLnRyYW5zZmVyX2RhdGEocmVxdWVzdCkKLSAgICAgICAgc2VsZi5hc3NlcnRF
cXVhbCgnc3ViL3BsYWluX3dzaC5weSBpcyBjYWxsZWQgZm9yIC9zdWIvcGxhaW4sIE5vbmUnCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgJ1x4ZmZceDAwJywKLSAgICAgICAgICAgICAgICAgICAg
ICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ud3JpdHRlbl9kYXRhKCkpCi0KLSAgICAgICAgcmVxdWVz
dCA9IG1vY2suTW9ja1JlcXVlc3QoY29ubmVjdGlvbj1tb2NrLk1vY2tDb25uKCdceGZmXHgwMCcp
KQotICAgICAgICByZXF1ZXN0LndzX3Jlc291cmNlID0gJy9zdWIvcGxhaW4/JwotICAgICAgICBy
ZXF1ZXN0LndzX3Byb3RvY29sID0gTm9uZQotICAgICAgICBkaXNwYXRjaGVyLnRyYW5zZmVyX2Rh
dGEocmVxdWVzdCkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnc3ViL3BsYWluX3dzaC5weSBp
cyBjYWxsZWQgZm9yIC9zdWIvcGxhaW4/LCBOb25lJwotICAgICAgICAgICAgICAgICAgICAgICAg
ICdceGZmXHgwMCcsCi0gICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9u
LndyaXR0ZW5fZGF0YSgpKQotCi0gICAgICAgIHJlcXVlc3QgPSBtb2NrLk1vY2tSZXF1ZXN0KGNv
bm5lY3Rpb249bW9jay5Nb2NrQ29ubignXHhmZlx4MDAnKSkKLSAgICAgICAgcmVxdWVzdC53c19y
ZXNvdXJjZSA9ICcvc3ViL3BsYWluP3E9dicKLSAgICAgICAgcmVxdWVzdC53c19wcm90b2NvbCA9
IE5vbmUKLSAgICAgICAgZGlzcGF0Y2hlci50cmFuc2Zlcl9kYXRhKHJlcXVlc3QpCi0gICAgICAg
IHNlbGYuYXNzZXJ0RXF1YWwoJ3N1Yi9wbGFpbl93c2gucHkgaXMgY2FsbGVkIGZvciAvc3ViL3Bs
YWluP3E9diwgTm9uZScKLSAgICAgICAgICAgICAgICAgICAgICAgICAnXHhmZlx4MDAnLAotICAg
ICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi53cml0dGVuX2RhdGEoKSkK
LQotICAgIGRlZiB0ZXN0X3RyYW5zZmVyX2RhdGFfbm9faGFuZGxlcihzZWxmKToKLSAgICAgICAg
ZGlzcGF0Y2hlciA9IGRpc3BhdGNoLkRpc3BhdGNoZXIoX1RFU1RfSEFORExFUlNfRElSLCBOb25l
KQotICAgICAgICBmb3IgcmVzb3VyY2UgaW4gWycvYmxhbmsnLCAnL3N1Yi9ub25fY2FsbGFibGUn
LAotICAgICAgICAgICAgICAgICAgICAgICAgICcvc3ViL25vX3dzaF9hdF90aGVfZW5kJywgJy9k
b2VzL25vdC9leGlzdCddOgotICAgICAgICAgICAgcmVxdWVzdCA9IG1vY2suTW9ja1JlcXVlc3Qo
Y29ubmVjdGlvbj1tb2NrLk1vY2tDb25uKCcnKSkKLSAgICAgICAgICAgIHJlcXVlc3Qud3NfcmVz
b3VyY2UgPSByZXNvdXJjZQotICAgICAgICAgICAgcmVxdWVzdC53c19wcm90b2NvbCA9ICdwMicK
LSAgICAgICAgICAgIHRyeToKLSAgICAgICAgICAgICAgICBkaXNwYXRjaGVyLnRyYW5zZmVyX2Rh
dGEocmVxdWVzdCkKLSAgICAgICAgICAgICAgICBzZWxmLmZhaWwoKQotICAgICAgICAgICAgZXhj
ZXB0IGRpc3BhdGNoLkRpc3BhdGNoRXhjZXB0aW9uLCBlOgotICAgICAgICAgICAgICAgIHNlbGYu
ZmFpbFVubGVzcyhzdHIoZSkuZmluZCgnTm8gaGFuZGxlcicpICE9IC0xKQotICAgICAgICAgICAg
ZXhjZXB0IEV4Y2VwdGlvbjoKLSAgICAgICAgICAgICAgICBzZWxmLmZhaWwoKQotCi0gICAgZGVm
IHRlc3RfdHJhbnNmZXJfZGF0YV9oYW5kbGVyX2V4Y2VwdGlvbihzZWxmKToKLSAgICAgICAgZGlz
cGF0Y2hlciA9IGRpc3BhdGNoLkRpc3BhdGNoZXIoX1RFU1RfSEFORExFUlNfRElSLCBOb25lKQot
ICAgICAgICByZXF1ZXN0ID0gbW9jay5Nb2NrUmVxdWVzdChjb25uZWN0aW9uPW1vY2suTW9ja0Nv
bm4oJycpKQotICAgICAgICByZXF1ZXN0LndzX3Jlc291cmNlID0gJy9zdWIvZXhjZXB0aW9uX2lu
X3RyYW5zZmVyJwotICAgICAgICByZXF1ZXN0LndzX3Byb3RvY29sID0gJ3AzJwotICAgICAgICB0
cnk6Ci0gICAgICAgICAgICBkaXNwYXRjaGVyLnRyYW5zZmVyX2RhdGEocmVxdWVzdCkKLSAgICAg
ICAgICAgIHNlbGYuZmFpbCgpCi0gICAgICAgIGV4Y2VwdCBFeGNlcHRpb24sIGU6Ci0gICAgICAg
ICAgICBzZWxmLmZhaWxVbmxlc3Moc3RyKGUpLmZpbmQoJ0ludGVudGlvbmFsJykgIT0gLTEsCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgJ1VuZXhwZWN0ZWQgZXhjZXB0aW9uOiAlcycgJSBl
KQotCi0gICAgZGVmIHRlc3RfYWJvcnRfdHJhbnNmZXJfZGF0YShzZWxmKToKLSAgICAgICAgZGlz
cGF0Y2hlciA9IGRpc3BhdGNoLkRpc3BhdGNoZXIoX1RFU1RfSEFORExFUlNfRElSLCBOb25lKQot
ICAgICAgICByZXF1ZXN0ID0gbW9jay5Nb2NrUmVxdWVzdCgpCi0gICAgICAgIHJlcXVlc3Qud3Nf
cmVzb3VyY2UgPSAnL2Fib3J0X2J5X3VzZXInCi0gICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKGhh
bmRzaGFrZS5BYm9ydGVkQnlVc2VyRXhjZXB0aW9uLAotICAgICAgICAgICAgICAgICAgICAgICAg
ICBkaXNwYXRjaGVyLnRyYW5zZmVyX2RhdGEsIHJlcXVlc3QpCi0KLSAgICBkZWYgdGVzdF9zY2Fu
X2RpcihzZWxmKToKLSAgICAgICAgZGlzcCA9IGRpc3BhdGNoLkRpc3BhdGNoZXIoX1RFU1RfSEFO
RExFUlNfRElSLCBOb25lKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKDQsIGxlbihkaXNwLl9o
YW5kbGVyX3N1aXRlX21hcCkpCi0gICAgICAgIHNlbGYuZmFpbFVubGVzcygnL29yaWdpbl9jaGVj
aycgaW4gZGlzcC5faGFuZGxlcl9zdWl0ZV9tYXApCi0gICAgICAgIHNlbGYuZmFpbFVubGVzcygK
LSAgICAgICAgICAgICcvc3ViL2V4Y2VwdGlvbl9pbl90cmFuc2ZlcicgaW4gZGlzcC5faGFuZGxl
cl9zdWl0ZV9tYXApCi0gICAgICAgIHNlbGYuZmFpbFVubGVzcygnL3N1Yi9wbGFpbicgaW4gZGlz
cC5faGFuZGxlcl9zdWl0ZV9tYXApCi0KLSAgICBkZWYgdGVzdF9zY2FuX3N1Yl9kaXIoc2VsZik6
Ci0gICAgICAgIGRpc3AgPSBkaXNwYXRjaC5EaXNwYXRjaGVyKF9URVNUX0hBTkRMRVJTX0RJUiwg
X1RFU1RfSEFORExFUlNfU1VCX0RJUikKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgyLCBsZW4o
ZGlzcC5faGFuZGxlcl9zdWl0ZV9tYXApKQotICAgICAgICBzZWxmLmZhaWxJZignL29yaWdpbl9j
aGVjaycgaW4gZGlzcC5faGFuZGxlcl9zdWl0ZV9tYXApCi0gICAgICAgIHNlbGYuZmFpbFVubGVz
cygKLSAgICAgICAgICAgICcvc3ViL2V4Y2VwdGlvbl9pbl90cmFuc2ZlcicgaW4gZGlzcC5faGFu
ZGxlcl9zdWl0ZV9tYXApCi0gICAgICAgIHNlbGYuZmFpbFVubGVzcygnL3N1Yi9wbGFpbicgaW4g
ZGlzcC5faGFuZGxlcl9zdWl0ZV9tYXApCi0KLSAgICBkZWYgdGVzdF9zY2FuX3N1Yl9kaXJfYXNf
cm9vdChzZWxmKToKLSAgICAgICAgZGlzcCA9IGRpc3BhdGNoLkRpc3BhdGNoZXIoX1RFU1RfSEFO
RExFUlNfU1VCX0RJUiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX1RFU1Rf
SEFORExFUlNfU1VCX0RJUikKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgyLCBsZW4oZGlzcC5f
aGFuZGxlcl9zdWl0ZV9tYXApKQotICAgICAgICBzZWxmLmZhaWxJZignL29yaWdpbl9jaGVjaycg
aW4gZGlzcC5faGFuZGxlcl9zdWl0ZV9tYXApCi0gICAgICAgIHNlbGYuZmFpbElmKCcvc3ViL2V4
Y2VwdGlvbl9pbl90cmFuc2ZlcicgaW4gZGlzcC5faGFuZGxlcl9zdWl0ZV9tYXApCi0gICAgICAg
IHNlbGYuZmFpbElmKCcvc3ViL3BsYWluJyBpbiBkaXNwLl9oYW5kbGVyX3N1aXRlX21hcCkKLSAg
ICAgICAgc2VsZi5mYWlsVW5sZXNzKCcvZXhjZXB0aW9uX2luX3RyYW5zZmVyJyBpbiBkaXNwLl9o
YW5kbGVyX3N1aXRlX21hcCkKLSAgICAgICAgc2VsZi5mYWlsVW5sZXNzKCcvcGxhaW4nIGluIGRp
c3AuX2hhbmRsZXJfc3VpdGVfbWFwKQotCi0gICAgZGVmIHRlc3Rfc2Nhbl9kaXJfbXVzdF91bmRl
cl9yb290KHNlbGYpOgotICAgICAgICBkaXNwYXRjaC5EaXNwYXRjaGVyKCdhL2InLCAnYS9iL2Mn
KSAgIyBPSwotICAgICAgICBkaXNwYXRjaC5EaXNwYXRjaGVyKCdhL2IvLy8nLCAnYS9iJykgICMg
T0sKLSAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoZGlzcGF0Y2guRGlzcGF0Y2hFeGNlcHRpb24s
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BhdGNoLkRpc3BhdGNoZXIsICdhL2IvYycs
ICdhL2InKQotCi0gICAgZGVmIHRlc3RfcmVzb3VyY2VfcGF0aF9hbGlhcyhzZWxmKToKLSAgICAg
ICAgZGlzcCA9IGRpc3BhdGNoLkRpc3BhdGNoZXIoX1RFU1RfSEFORExFUlNfRElSLCBOb25lKQot
ICAgICAgICBkaXNwLmFkZF9yZXNvdXJjZV9wYXRoX2FsaWFzKCcvJywgJy9vcmlnaW5fY2hlY2sn
KQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKDUsIGxlbihkaXNwLl9oYW5kbGVyX3N1aXRlX21h
cCkpCi0gICAgICAgIHNlbGYuZmFpbFVubGVzcygnL29yaWdpbl9jaGVjaycgaW4gZGlzcC5faGFu
ZGxlcl9zdWl0ZV9tYXApCi0gICAgICAgIHNlbGYuZmFpbFVubGVzcygKLSAgICAgICAgICAgICcv
c3ViL2V4Y2VwdGlvbl9pbl90cmFuc2ZlcicgaW4gZGlzcC5faGFuZGxlcl9zdWl0ZV9tYXApCi0g
ICAgICAgIHNlbGYuZmFpbFVubGVzcygnL3N1Yi9wbGFpbicgaW4gZGlzcC5faGFuZGxlcl9zdWl0
ZV9tYXApCi0gICAgICAgIHNlbGYuZmFpbFVubGVzcygnLycgaW4gZGlzcC5faGFuZGxlcl9zdWl0
ZV9tYXApCi0gICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKGRpc3BhdGNoLkRpc3BhdGNoRXhjZXB0
aW9uLAotICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNwLmFkZF9yZXNvdXJjZV9wYXRoX2Fs
aWFzLCAnL2FsaWFzJywgJy9ub3QtZXhpc3QnKQotCi0KLWlmIF9fbmFtZV9fID09ICdfX21haW5f
Xyc6Ci0gICAgdW5pdHRlc3QubWFpbigpCi0KLQotIyB2aTpzdHM9NCBzdz00IGV0CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5
d2Vic29ja2V0L3NyYy90ZXN0L3Rlc3RfZW5kdG9lbmQucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3NyYy90ZXN0L3Rlc3Rf
ZW5kdG9lbmQucHkKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDVlNWNmNjE1NzM5MTdk
ODdkMTM2NWIxNmE1OGMyYzQxODhhOTEyZWMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy9weXdlYnNvY2tldC9zcmMvdGVzdC90ZXN0X2VuZHRvZW5kLnB5CisrKyAvZGV2
L251bGwKQEAgLTEsNzUzICswLDAgQEAKLSMhL3Vzci9iaW4vZW52IHB5dGhvbgotIwotIyBDb3B5
cmlnaHQgMjAxMiwgR29vZ2xlIEluYy4KLSMgQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSMKLSMgUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0Ci0jIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKLSMgbWV0OgotIwotIyAgICAgKiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotIyBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
Ci0jICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUKLSMgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgotIyBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCi0jIGRpc3RyaWJ1dGlvbi4KLSMgICAg
ICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwot
IyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3Rz
IGRlcml2ZWQgZnJvbQotIyB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3Jp
dHRlbiBwZXJtaXNzaW9uLgotIwotIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBD
T1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCi0jICJBUyBJUyIgQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCi0jIExJTUlURUQg
VE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUgotIyBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgVEhFIENPUFlSSUdIVAotIyBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKLSMgU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAotIyBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwKLSMgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZCi0jIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4g
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSMgKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0jIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCi0KLQotIiIiRW5kLXRvLWVuZCB0ZXN0cyBmb3IgcHl3ZWJzb2NrZXQuIFRlc3Rz
IHN0YW5kYWxvbmUucHkgYnkgZGVmYXVsdC4gWW91Ci1jYW4gYWxzbyB0ZXN0IG1vZF9weXdlYnNv
Y2tldCBob3N0ZWQgb24gYW4gQXBhY2hlIHNlcnZlciBieSBzZXR0aW5nCi1fdXNlX2V4dGVybmFs
X3NlcnZlciB0byBUcnVlIGFuZCBtb2RpZnlpbmcgX2V4dGVybmFsX3NlcnZlcl9wb3J0IHRvIHBv
aW50IHRvCi10aGUgcG9ydCBvbiB3aGljaCB0aGUgQXBhY2hlIHNlcnZlciBpcyBydW5uaW5nLgot
IiIiCi0KLQotaW1wb3J0IGxvZ2dpbmcKLWltcG9ydCBvcwotaW1wb3J0IHNpZ25hbAotaW1wb3J0
IHNvY2tldAotaW1wb3J0IHN1YnByb2Nlc3MKLWltcG9ydCBzeXMKLWltcG9ydCB0aW1lCi1pbXBv
cnQgdW5pdHRlc3QKLQotaW1wb3J0IHNldF9zeXNfcGF0aCAgIyBVcGRhdGUgc3lzLnBhdGggdG8g
bG9jYXRlIG1vZF9weXdlYnNvY2tldCBtb2R1bGUuCi0KLWZyb20gdGVzdCBpbXBvcnQgY2xpZW50
X2Zvcl90ZXN0aW5nCi1mcm9tIHRlc3QgaW1wb3J0IG11eF9jbGllbnRfZm9yX3Rlc3RpbmcKLQot
Ci0jIFNwZWNpYWwgbWVzc2FnZSB0aGF0IHRlbGxzIHRoZSBlY2hvIHNlcnZlciB0byBzdGFydCBj
bG9zaW5nIGhhbmRzaGFrZQotX0dPT0RCWUVfTUVTU0FHRSA9ICdHb29kYnllJwotCi1fU0VSVkVS
X1dBUk1VUF9JTl9TRUMgPSAwLjIKLQotIyBJZiB5b3Ugd2FudCB0byB1c2UgZXh0ZXJuYWwgc2Vy
dmVyIHRvIHJ1biBlbmQgdG8gZW5kIHRlc3RzLCBzZXQgZm9sbG93aW5nCi0jIHBhcmFtZXRlcnMg
Y29ycmVjdGx5LgotX3VzZV9leHRlcm5hbF9zZXJ2ZXIgPSBGYWxzZQotX2V4dGVybmFsX3NlcnZl
cl9wb3J0ID0gMAotCi0KLSMgVGVzdCBib2R5IGZ1bmN0aW9ucwotZGVmIF9lY2hvX2NoZWNrX3By
b2NlZHVyZShjbGllbnQpOgotICAgIGNsaWVudC5jb25uZWN0KCkKLQotICAgIGNsaWVudC5zZW5k
X21lc3NhZ2UoJ3Rlc3QnKQotICAgIGNsaWVudC5hc3NlcnRfcmVjZWl2ZSgndGVzdCcpCi0gICAg
Y2xpZW50LnNlbmRfbWVzc2FnZSgnaGVsbG93b3JsZCcpCi0gICAgY2xpZW50LmFzc2VydF9yZWNl
aXZlKCdoZWxsb3dvcmxkJykKLQotICAgIGNsaWVudC5zZW5kX2Nsb3NlKCkKLSAgICBjbGllbnQu
YXNzZXJ0X3JlY2VpdmVfY2xvc2UoKQotCi0gICAgY2xpZW50LmFzc2VydF9jb25uZWN0aW9uX2Ns
b3NlZCgpCi0KLQotZGVmIF9lY2hvX2NoZWNrX3Byb2NlZHVyZV93aXRoX2JpbmFyeShjbGllbnQp
OgotICAgIGNsaWVudC5jb25uZWN0KCkKLQotICAgIGNsaWVudC5zZW5kX21lc3NhZ2UoJ2JpbmFy
eScsIGJpbmFyeT1UcnVlKQotICAgIGNsaWVudC5hc3NlcnRfcmVjZWl2ZSgnYmluYXJ5JywgYmlu
YXJ5PVRydWUpCi0gICAgY2xpZW50LnNlbmRfbWVzc2FnZSgnXHgwMFx4ODBceGZlXHhmZlx4MDBc
eDgwJywgYmluYXJ5PVRydWUpCi0gICAgY2xpZW50LmFzc2VydF9yZWNlaXZlKCdceDAwXHg4MFx4
ZmVceGZmXHgwMFx4ODAnLCBiaW5hcnk9VHJ1ZSkKLQotICAgIGNsaWVudC5zZW5kX2Nsb3NlKCkK
LSAgICBjbGllbnQuYXNzZXJ0X3JlY2VpdmVfY2xvc2UoKQotCi0gICAgY2xpZW50LmFzc2VydF9j
b25uZWN0aW9uX2Nsb3NlZCgpCi0KLQotZGVmIF9lY2hvX2NoZWNrX3Byb2NlZHVyZV93aXRoX2dv
b2RieWUoY2xpZW50KToKLSAgICBjbGllbnQuY29ubmVjdCgpCi0KLSAgICBjbGllbnQuc2VuZF9t
ZXNzYWdlKCd0ZXN0JykKLSAgICBjbGllbnQuYXNzZXJ0X3JlY2VpdmUoJ3Rlc3QnKQotCi0gICAg
Y2xpZW50LnNlbmRfbWVzc2FnZShfR09PREJZRV9NRVNTQUdFKQotICAgIGNsaWVudC5hc3NlcnRf
cmVjZWl2ZShfR09PREJZRV9NRVNTQUdFKQotCi0gICAgY2xpZW50LmFzc2VydF9yZWNlaXZlX2Ns
b3NlKCkKLSAgICBjbGllbnQuc2VuZF9jbG9zZSgpCi0KLSAgICBjbGllbnQuYXNzZXJ0X2Nvbm5l
Y3Rpb25fY2xvc2VkKCkKLQotCi1kZWYgX2VjaG9fY2hlY2tfcHJvY2VkdXJlX3dpdGhfY29kZV9h
bmRfcmVhc29uKGNsaWVudCwgY29kZSwgcmVhc29uKToKLSAgICBjbGllbnQuY29ubmVjdCgpCi0K
LSAgICBjbGllbnQuc2VuZF9jbG9zZShjb2RlLCByZWFzb24pCi0gICAgY2xpZW50LmFzc2VydF9y
ZWNlaXZlX2Nsb3NlKGNvZGUsIHJlYXNvbikKLQotICAgIGNsaWVudC5hc3NlcnRfY29ubmVjdGlv
bl9jbG9zZWQoKQotCi0KLWRlZiBfdW5tYXNrZWRfZnJhbWVfY2hlY2tfcHJvY2VkdXJlKGNsaWVu
dCk6Ci0gICAgY2xpZW50LmNvbm5lY3QoKQotCi0gICAgY2xpZW50LnNlbmRfbWVzc2FnZSgndGVz
dCcsIG1hc2s9RmFsc2UpCi0gICAgY2xpZW50LmFzc2VydF9yZWNlaXZlX2Nsb3NlKGNsaWVudF9m
b3JfdGVzdGluZy5TVEFUVVNfUFJPVE9DT0xfRVJST1IsICcnKQotCi0gICAgY2xpZW50LmFzc2Vy
dF9jb25uZWN0aW9uX2Nsb3NlZCgpCi0KLQotZGVmIF9tdXhfZWNob19jaGVja19wcm9jZWR1cmUo
bXV4X2NsaWVudCk6Ci0gICAgbXV4X2NsaWVudC5jb25uZWN0KCkKLSAgICBtdXhfY2xpZW50LnNl
bmRfZmxvd19jb250cm9sKDEsIDEwMjQpCi0KLSAgICBsb2dpY2FsX2NoYW5uZWxfb3B0aW9ucyA9
IGNsaWVudF9mb3JfdGVzdGluZy5DbGllbnRPcHRpb25zKCkKLSAgICBsb2dpY2FsX2NoYW5uZWxf
b3B0aW9ucy5zZXJ2ZXJfaG9zdCA9ICdsb2NhbGhvc3QnCi0gICAgbG9naWNhbF9jaGFubmVsX29w
dGlvbnMuc2VydmVyX3BvcnQgPSA4MAotICAgIGxvZ2ljYWxfY2hhbm5lbF9vcHRpb25zLm9yaWdp
biA9ICdodHRwOi8vbG9jYWxob3N0JwotICAgIGxvZ2ljYWxfY2hhbm5lbF9vcHRpb25zLnJlc291
cmNlID0gJy9lY2hvJwotICAgIG11eF9jbGllbnQuYWRkX2NoYW5uZWwoMiwgbG9naWNhbF9jaGFu
bmVsX29wdGlvbnMpCi0gICAgbXV4X2NsaWVudC5zZW5kX2Zsb3dfY29udHJvbCgyLCAxMDI0KQot
Ci0gICAgbXV4X2NsaWVudC5zZW5kX21lc3NhZ2UoMiwgJ3Rlc3QnKQotICAgIG11eF9jbGllbnQu
YXNzZXJ0X3JlY2VpdmUoMiwgJ3Rlc3QnKQotCi0gICAgbXV4X2NsaWVudC5hZGRfY2hhbm5lbCgz
LCBsb2dpY2FsX2NoYW5uZWxfb3B0aW9ucykKLSAgICBtdXhfY2xpZW50LnNlbmRfZmxvd19jb250
cm9sKDMsIDEwMjQpCi0KLSAgICBtdXhfY2xpZW50LnNlbmRfbWVzc2FnZSgyLCAnaGVsbG8nKQot
ICAgIG11eF9jbGllbnQuc2VuZF9tZXNzYWdlKDMsICd3b3JsZCcpCi0gICAgbXV4X2NsaWVudC5h
c3NlcnRfcmVjZWl2ZSgyLCAnaGVsbG8nKQotICAgIG11eF9jbGllbnQuYXNzZXJ0X3JlY2VpdmUo
MywgJ3dvcmxkJykKLQotICAgICMgRG9uJ3Qgc2VuZCBjbG9zZSBtZXNzYWdlIG9uIGNoYW5uZWwg
aWQgMSBzbyB0aGF0IHNlcnZlci1pbml0aWF0ZWQKLSAgICAjIGNsb3NpbmcgaGFuZHNoYWtlIHdv
bid0IG9jY3VyLgotICAgIG11eF9jbGllbnQuc2VuZF9jbG9zZSgyKQotICAgIG11eF9jbGllbnQu
c2VuZF9jbG9zZSgzKQotICAgIG11eF9jbGllbnQuYXNzZXJ0X3JlY2VpdmVfY2xvc2UoMikKLSAg
ICBtdXhfY2xpZW50LmFzc2VydF9yZWNlaXZlX2Nsb3NlKDMpCi0KLSAgICBtdXhfY2xpZW50LnNl
bmRfcGh5c2ljYWxfY29ubmVjdGlvbl9jbG9zZSgpCi0gICAgbXV4X2NsaWVudC5hc3NlcnRfcGh5
c2ljYWxfY29ubmVjdGlvbl9yZWNlaXZlX2Nsb3NlKCkKLQotCi1jbGFzcyBFbmRUb0VuZFRlc3RC
YXNlKHVuaXR0ZXN0LlRlc3RDYXNlKToKLSAgICAiIiJCYXNlIGNsYXNzIGZvciBlbmQtdG8tZW5k
IHRlc3RzIHRoYXQgbGF1bmNoIHB5d2Vic29ja2V0IHN0YW5kYWxvbmUKLSAgICBzZXJ2ZXIgYXMg
YSBzZXBhcmF0ZSBwcm9jZXNzLCBjb25uZWN0IHRvIGl0IHVzaW5nIHRoZSBjbGllbnRfZm9yX3Rl
c3RpbmcKLSAgICBtb2R1bGUsIGFuZCBjaGVjayBpZiB0aGUgc2VydmVyIGJlaGF2ZXMgY29ycmVj
dGx5IGJ5IGV4Y2hhbmdpbmcgb3BlbmluZwotICAgIGhhbmRzaGFrZSBhbmQgZnJhbWVzIG92ZXIg
YSBUQ1AgY29ubmVjdGlvbi4KLSAgICAiIiIKLQotICAgIGRlZiBzZXRVcChzZWxmKToKLSAgICAg
ICAgc2VsZi5zZXJ2ZXJfc3RkZXJyID0gTm9uZQotICAgICAgICBzZWxmLnRvcF9kaXIgPSBvcy5w
YXRoLmpvaW4ob3MucGF0aC5zcGxpdChfX2ZpbGVfXylbMF0sICcuLicpCi0gICAgICAgIG9zLnB1
dGVudignUFlUSE9OUEFUSCcsIG9zLnBhdGgucGF0aHNlcC5qb2luKHN5cy5wYXRoKSkKLSAgICAg
ICAgc2VsZi5zdGFuZGFsb25lX2NvbW1hbmQgPSBvcy5wYXRoLmpvaW4oCi0gICAgICAgICAgICBz
ZWxmLnRvcF9kaXIsICdtb2RfcHl3ZWJzb2NrZXQnLCAnc3RhbmRhbG9uZS5weScpCi0gICAgICAg
IHNlbGYuZG9jdW1lbnRfcm9vdCA9IG9zLnBhdGguam9pbihzZWxmLnRvcF9kaXIsICdleGFtcGxl
JykKLSAgICAgICAgcyA9IHNvY2tldC5zb2NrZXQoKQotICAgICAgICBzLmJpbmQoKCdsb2NhbGhv
c3QnLCAwKSkKLSAgICAgICAgKF8sIHNlbGYudGVzdF9wb3J0KSA9IHMuZ2V0c29ja25hbWUoKQot
ICAgICAgICBzLmNsb3NlKCkKLQotICAgICAgICBzZWxmLl9vcHRpb25zID0gY2xpZW50X2Zvcl90
ZXN0aW5nLkNsaWVudE9wdGlvbnMoKQotICAgICAgICBzZWxmLl9vcHRpb25zLnNlcnZlcl9ob3N0
ID0gJ2xvY2FsaG9zdCcKLSAgICAgICAgc2VsZi5fb3B0aW9ucy5vcmlnaW4gPSAnaHR0cDovL2xv
Y2FsaG9zdCcKLSAgICAgICAgc2VsZi5fb3B0aW9ucy5yZXNvdXJjZSA9ICcvZWNobycKLQotICAg
ICAgICAjIFRPRE8odG95b3NoaW0pOiBFbGltaW5hdGUgbGF1bmNoaW5nIGEgc3RhbmRhbG9uZSBz
ZXJ2ZXIgb24gdXNpbmcKLSAgICAgICAgIyBleHRlcm5hbCBzZXJ2ZXIuCi0KLSAgICAgICAgaWYg
X3VzZV9leHRlcm5hbF9zZXJ2ZXI6Ci0gICAgICAgICAgICBzZWxmLl9vcHRpb25zLnNlcnZlcl9w
b3J0ID0gX2V4dGVybmFsX3NlcnZlcl9wb3J0Ci0gICAgICAgIGVsc2U6Ci0gICAgICAgICAgICBz
ZWxmLl9vcHRpb25zLnNlcnZlcl9wb3J0ID0gc2VsZi50ZXN0X3BvcnQKLQotICAgICMgVE9ETyh0
eW9zaGlubyk6IFVzZSB0ZWFyRG93biB0byBraWxsIHRoZSBzZXJ2ZXIuCi0KLSAgICBkZWYgX3J1
bl9weXRob25fY29tbWFuZChzZWxmLCBjb21tYW5kbGluZSwgc3Rkb3V0PU5vbmUsIHN0ZGVycj1O
b25lKToKLSAgICAgICAgcmV0dXJuIHN1YnByb2Nlc3MuUG9wZW4oW3N5cy5leGVjdXRhYmxlXSAr
IGNvbW1hbmRsaW5lLCBjbG9zZV9mZHM9VHJ1ZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgc3Rkb3V0PXN0ZG91dCwgc3RkZXJyPXN0ZGVycikKLQotICAgIGRlZiBfcnVuX3NlcnZl
cihzZWxmKToKLSAgICAgICAgYXJncyA9IFtzZWxmLnN0YW5kYWxvbmVfY29tbWFuZCwKLSAgICAg
ICAgICAgICAgICAnLUgnLCAnbG9jYWxob3N0JywKLSAgICAgICAgICAgICAgICAnLVYnLCAnbG9j
YWxob3N0JywKLSAgICAgICAgICAgICAgICAnLXAnLCBzdHIoc2VsZi50ZXN0X3BvcnQpLAotICAg
ICAgICAgICAgICAgICctUCcsIHN0cihzZWxmLnRlc3RfcG9ydCksCi0gICAgICAgICAgICAgICAg
Jy1kJywgc2VsZi5kb2N1bWVudF9yb290XQotCi0gICAgICAgICMgSW5oZXJpdCB0aGUgbGV2ZWwg
c2V0IHRvIHRoZSByb290IGxvZ2dlciBieSB0ZXN0IHJ1bm5lci4KLSAgICAgICAgcm9vdF9sb2dn
ZXIgPSBsb2dnaW5nLmdldExvZ2dlcigpCi0gICAgICAgIGxvZ19sZXZlbCA9IHJvb3RfbG9nZ2Vy
LmdldEVmZmVjdGl2ZUxldmVsKCkKLSAgICAgICAgaWYgbG9nX2xldmVsICE9IGxvZ2dpbmcuTk9U
U0VUOgotICAgICAgICAgICAgYXJncy5hcHBlbmQoJy0tbG9nLWxldmVsJykKLSAgICAgICAgICAg
IGFyZ3MuYXBwZW5kKGxvZ2dpbmcuZ2V0TGV2ZWxOYW1lKGxvZ19sZXZlbCkubG93ZXIoKSkKLQot
ICAgICAgICByZXR1cm4gc2VsZi5fcnVuX3B5dGhvbl9jb21tYW5kKGFyZ3MsCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RkZXJyPXNlbGYuc2VydmVyX3N0ZGVycikK
LQotICAgIGRlZiBfa2lsbF9wcm9jZXNzKHNlbGYsIHBpZCk6Ci0gICAgICAgIGlmIHN5cy5wbGF0
Zm9ybSBpbiAoJ3dpbjMyJywgJ2N5Z3dpbicpOgotICAgICAgICAgICAgc3VicHJvY2Vzcy5jYWxs
KAotICAgICAgICAgICAgICAgICgndGFza2tpbGwuZXhlJywgJy9mJywgJy9waWQnLCBzdHIocGlk
KSksIGNsb3NlX2Zkcz1UcnVlKQotICAgICAgICBlbHNlOgotICAgICAgICAgICAgb3Mua2lsbChw
aWQsIHNpZ25hbC5TSUdLSUxMKQotCi0KLWNsYXNzIEVuZFRvRW5kSHlCaVRlc3QoRW5kVG9FbmRU
ZXN0QmFzZSk6Ci0gICAgZGVmIHNldFVwKHNlbGYpOgotICAgICAgICBFbmRUb0VuZFRlc3RCYXNl
LnNldFVwKHNlbGYpCi0KLSAgICBkZWYgX3J1bl90ZXN0X3dpdGhfY2xpZW50X29wdGlvbnMoc2Vs
ZiwgdGVzdF9mdW5jdGlvbiwgb3B0aW9ucyk6Ci0gICAgICAgIHNlcnZlciA9IHNlbGYuX3J1bl9z
ZXJ2ZXIoKQotICAgICAgICB0cnk6Ci0gICAgICAgICAgICAjIFRPRE8odHlvc2hpbm8pOiBhZGQg
c29tZSBsb2dpYyB0byBwb2xsIHRoZSBzZXJ2ZXIgdW50aWwgaXQKLSAgICAgICAgICAgICMgYmVj
b21lcyByZWFkeQotICAgICAgICAgICAgdGltZS5zbGVlcChfU0VSVkVSX1dBUk1VUF9JTl9TRUMp
Ci0KLSAgICAgICAgICAgIGNsaWVudCA9IGNsaWVudF9mb3JfdGVzdGluZy5jcmVhdGVfY2xpZW50
KG9wdGlvbnMpCi0gICAgICAgICAgICB0cnk6Ci0gICAgICAgICAgICAgICAgdGVzdF9mdW5jdGlv
bihjbGllbnQpCi0gICAgICAgICAgICBmaW5hbGx5OgotICAgICAgICAgICAgICAgIGNsaWVudC5j
bG9zZV9zb2NrZXQoKQotICAgICAgICBmaW5hbGx5OgotICAgICAgICAgICAgc2VsZi5fa2lsbF9w
cm9jZXNzKHNlcnZlci5waWQpCi0KLSAgICBkZWYgX3J1bl90ZXN0KHNlbGYsIHRlc3RfZnVuY3Rp
b24pOgotICAgICAgICBzZWxmLl9ydW5fdGVzdF93aXRoX2NsaWVudF9vcHRpb25zKHRlc3RfZnVu
Y3Rpb24sIHNlbGYuX29wdGlvbnMpCi0KLSAgICBkZWYgX3J1bl9kZWZsYXRlX2ZyYW1lX3Rlc3Qo
c2VsZiwgdGVzdF9mdW5jdGlvbik6Ci0gICAgICAgIHNlcnZlciA9IHNlbGYuX3J1bl9zZXJ2ZXIo
KQotICAgICAgICB0cnk6Ci0gICAgICAgICAgICB0aW1lLnNsZWVwKF9TRVJWRVJfV0FSTVVQX0lO
X1NFQykKLQotICAgICAgICAgICAgc2VsZi5fb3B0aW9ucy5lbmFibGVfZGVmbGF0ZV9mcmFtZSgp
Ci0gICAgICAgICAgICBjbGllbnQgPSBjbGllbnRfZm9yX3Rlc3RpbmcuY3JlYXRlX2NsaWVudChz
ZWxmLl9vcHRpb25zKQotICAgICAgICAgICAgdHJ5OgotICAgICAgICAgICAgICAgIHRlc3RfZnVu
Y3Rpb24oY2xpZW50KQotICAgICAgICAgICAgZmluYWxseToKLSAgICAgICAgICAgICAgICBjbGll
bnQuY2xvc2Vfc29ja2V0KCkKLSAgICAgICAgZmluYWxseToKLSAgICAgICAgICAgIHNlbGYuX2tp
bGxfcHJvY2VzcyhzZXJ2ZXIucGlkKQotCi0gICAgZGVmIF9ydW5fcGVybWVzc2FnZV9kZWZsYXRl
X3Rlc3QoCi0gICAgICAgICAgICBzZWxmLCBvZmZlciwgcmVzcG9uc2VfY2hlY2tlciwgdGVzdF9m
dW5jdGlvbik6Ci0gICAgICAgIHNlcnZlciA9IHNlbGYuX3J1bl9zZXJ2ZXIoKQotICAgICAgICB0
cnk6Ci0gICAgICAgICAgICB0aW1lLnNsZWVwKF9TRVJWRVJfV0FSTVVQX0lOX1NFQykKLQotICAg
ICAgICAgICAgc2VsZi5fb3B0aW9ucy5leHRlbnNpb25zICs9IG9mZmVyCi0gICAgICAgICAgICBz
ZWxmLl9vcHRpb25zLmNoZWNrX3Blcm1lc3NhZ2VfZGVmbGF0ZSA9IHJlc3BvbnNlX2NoZWNrZXIK
LSAgICAgICAgICAgIGNsaWVudCA9IGNsaWVudF9mb3JfdGVzdGluZy5jcmVhdGVfY2xpZW50KHNl
bGYuX29wdGlvbnMpCi0KLSAgICAgICAgICAgIHRyeToKLSAgICAgICAgICAgICAgICBjbGllbnQu
Y29ubmVjdCgpCi0KLSAgICAgICAgICAgICAgICBpZiB0ZXN0X2Z1bmN0aW9uIGlzIG5vdCBOb25l
OgotICAgICAgICAgICAgICAgICAgICB0ZXN0X2Z1bmN0aW9uKGNsaWVudCkKLQotICAgICAgICAg
ICAgICAgIGNsaWVudC5hc3NlcnRfY29ubmVjdGlvbl9jbG9zZWQoKQotICAgICAgICAgICAgZmlu
YWxseToKLSAgICAgICAgICAgICAgICBjbGllbnQuY2xvc2Vfc29ja2V0KCkKLSAgICAgICAgZmlu
YWxseToKLSAgICAgICAgICAgIHNlbGYuX2tpbGxfcHJvY2VzcyhzZXJ2ZXIucGlkKQotCi0gICAg
ZGVmIF9ydW5fY2xvc2Vfd2l0aF9jb2RlX2FuZF9yZWFzb25fdGVzdChzZWxmLCB0ZXN0X2Z1bmN0
aW9uLCBjb2RlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICByZWFzb24pOgotICAgICAgICBzZXJ2ZXIgPSBzZWxmLl9ydW5fc2VydmVyKCkKLSAgICAg
ICAgdHJ5OgotICAgICAgICAgICAgdGltZS5zbGVlcChfU0VSVkVSX1dBUk1VUF9JTl9TRUMpCi0K
LSAgICAgICAgICAgIGNsaWVudCA9IGNsaWVudF9mb3JfdGVzdGluZy5jcmVhdGVfY2xpZW50KHNl
bGYuX29wdGlvbnMpCi0gICAgICAgICAgICB0cnk6Ci0gICAgICAgICAgICAgICAgdGVzdF9mdW5j
dGlvbihjbGllbnQsIGNvZGUsIHJlYXNvbikKLSAgICAgICAgICAgIGZpbmFsbHk6Ci0gICAgICAg
ICAgICAgICAgY2xpZW50LmNsb3NlX3NvY2tldCgpCi0gICAgICAgIGZpbmFsbHk6Ci0gICAgICAg
ICAgICBzZWxmLl9raWxsX3Byb2Nlc3Moc2VydmVyLnBpZCkKLQotICAgIGRlZiBfcnVuX2h0dHBf
ZmFsbGJhY2tfdGVzdChzZWxmLCBvcHRpb25zLCBzdGF0dXMpOgotICAgICAgICBzZXJ2ZXIgPSBz
ZWxmLl9ydW5fc2VydmVyKCkKLSAgICAgICAgdHJ5OgotICAgICAgICAgICAgdGltZS5zbGVlcChf
U0VSVkVSX1dBUk1VUF9JTl9TRUMpCi0KLSAgICAgICAgICAgIGNsaWVudCA9IGNsaWVudF9mb3Jf
dGVzdGluZy5jcmVhdGVfY2xpZW50KG9wdGlvbnMpCi0gICAgICAgICAgICB0cnk6Ci0gICAgICAg
ICAgICAgICAgY2xpZW50LmNvbm5lY3QoKQotICAgICAgICAgICAgICAgIHNlbGYuZmFpbCgnQ291
bGQgbm90IGNhdGNoIEh0dHBTdGF0dXNFeGNlcHRpb24nKQotICAgICAgICAgICAgZXhjZXB0IGNs
aWVudF9mb3JfdGVzdGluZy5IdHRwU3RhdHVzRXhjZXB0aW9uLCBlOgotICAgICAgICAgICAgICAg
IHNlbGYuYXNzZXJ0RXF1YWwoc3RhdHVzLCBlLnN0YXR1cykKLSAgICAgICAgICAgIGV4Y2VwdCBF
eGNlcHRpb24sIGU6Ci0gICAgICAgICAgICAgICAgc2VsZi5mYWlsKCdDYXRjaCB1bmV4cGVjdGVk
IGV4Y2VwdGlvbicpCi0gICAgICAgICAgICBmaW5hbGx5OgotICAgICAgICAgICAgICAgIGNsaWVu
dC5jbG9zZV9zb2NrZXQoKQotICAgICAgICBmaW5hbGx5OgotICAgICAgICAgICAgc2VsZi5fa2ls
bF9wcm9jZXNzKHNlcnZlci5waWQpCi0KLSAgICBkZWYgX3J1bl9tdXhfdGVzdChzZWxmLCB0ZXN0
X2Z1bmN0aW9uKToKLSAgICAgICAgc2VydmVyID0gc2VsZi5fcnVuX3NlcnZlcigpCi0gICAgICAg
IHRyeToKLSAgICAgICAgICAgIHRpbWUuc2xlZXAoX1NFUlZFUl9XQVJNVVBfSU5fU0VDKQotCi0g
ICAgICAgICAgICBjbGllbnQgPSBtdXhfY2xpZW50X2Zvcl90ZXN0aW5nLk11eENsaWVudChzZWxm
Ll9vcHRpb25zKQotICAgICAgICAgICAgdHJ5OgotICAgICAgICAgICAgICAgIHRlc3RfZnVuY3Rp
b24oY2xpZW50KQotICAgICAgICAgICAgZmluYWxseToKLSAgICAgICAgICAgICAgICBjbGllbnQu
Y2xvc2Vfc29ja2V0KCkKLSAgICAgICAgZmluYWxseToKLSAgICAgICAgICAgIHNlbGYuX2tpbGxf
cHJvY2VzcyhzZXJ2ZXIucGlkKQotCi0gICAgZGVmIHRlc3RfZWNobyhzZWxmKToKLSAgICAgICAg
c2VsZi5fcnVuX3Rlc3QoX2VjaG9fY2hlY2tfcHJvY2VkdXJlKQotCi0gICAgZGVmIHRlc3RfZWNo
b19iaW5hcnkoc2VsZik6Ci0gICAgICAgIHNlbGYuX3J1bl90ZXN0KF9lY2hvX2NoZWNrX3Byb2Nl
ZHVyZV93aXRoX2JpbmFyeSkKLQotICAgIGRlZiB0ZXN0X2VjaG9fc2VydmVyX2Nsb3NlKHNlbGYp
OgotICAgICAgICBzZWxmLl9ydW5fdGVzdChfZWNob19jaGVja19wcm9jZWR1cmVfd2l0aF9nb29k
YnllKQotCi0gICAgZGVmIHRlc3RfdW5tYXNrZWRfZnJhbWUoc2VsZik6Ci0gICAgICAgIHNlbGYu
X3J1bl90ZXN0KF91bm1hc2tlZF9mcmFtZV9jaGVja19wcm9jZWR1cmUpCi0KLSAgICBkZWYgdGVz
dF9lY2hvX2RlZmxhdGVfZnJhbWUoc2VsZik6Ci0gICAgICAgIHNlbGYuX3J1bl9kZWZsYXRlX2Zy
YW1lX3Rlc3QoX2VjaG9fY2hlY2tfcHJvY2VkdXJlKQotCi0gICAgZGVmIHRlc3RfZWNob19kZWZs
YXRlX2ZyYW1lX3NlcnZlcl9jbG9zZShzZWxmKToKLSAgICAgICAgc2VsZi5fcnVuX2RlZmxhdGVf
ZnJhbWVfdGVzdCgKLSAgICAgICAgICAgIF9lY2hvX2NoZWNrX3Byb2NlZHVyZV93aXRoX2dvb2Ri
eWUpCi0KLSAgICBkZWYgdGVzdF9lY2hvX3Blcm1lc3NhZ2VfZGVmbGF0ZShzZWxmKToKLSAgICAg
ICAgZGVmIHRlc3RfZnVuY3Rpb24oY2xpZW50KToKLSAgICAgICAgICAgICMgRnJvbSB0aGUgZXhh
bXBsZXMgaW4gdGhlIHNwZWMuCi0gICAgICAgICAgICBjb21wcmVzc2VkX2hlbGxvID0gJ1x4ZjJc
eDQ4XHhjZFx4YzlceGM5XHgwN1x4MDAnCi0gICAgICAgICAgICBjbGllbnQuX3N0cmVhbS5zZW5k
X2RhdGEoCi0gICAgICAgICAgICAgICAgICAgIGNvbXByZXNzZWRfaGVsbG8sCi0gICAgICAgICAg
ICAgICAgICAgIGNsaWVudF9mb3JfdGVzdGluZy5PUENPREVfVEVYVCwKLSAgICAgICAgICAgICAg
ICAgICAgcnN2MT0xKQotICAgICAgICAgICAgY2xpZW50Ll9zdHJlYW0uYXNzZXJ0X3JlY2VpdmVf
YmluYXJ5KAotICAgICAgICAgICAgICAgICAgICBjb21wcmVzc2VkX2hlbGxvLAotICAgICAgICAg
ICAgICAgICAgICBvcGNvZGU9Y2xpZW50X2Zvcl90ZXN0aW5nLk9QQ09ERV9URVhULAotICAgICAg
ICAgICAgICAgICAgICByc3YxPTEpCi0KLSAgICAgICAgICAgIGNsaWVudC5zZW5kX2Nsb3NlKCkK
LSAgICAgICAgICAgIGNsaWVudC5hc3NlcnRfcmVjZWl2ZV9jbG9zZSgpCi0KLSAgICAgICAgZGVm
IHJlc3BvbnNlX2NoZWNrZXIocGFyYW1ldGVyKToKLSAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1
YWxzKCdwZXJtZXNzYWdlLWRlZmxhdGUnLCBwYXJhbWV0ZXIubmFtZSgpKQotICAgICAgICAgICAg
c2VsZi5hc3NlcnRFcXVhbHMoW10sIHBhcmFtZXRlci5nZXRfcGFyYW1ldGVycygpKQotCi0gICAg
ICAgIHNlbGYuX3J1bl9wZXJtZXNzYWdlX2RlZmxhdGVfdGVzdCgKLSAgICAgICAgICAgICAgICBb
J3Blcm1lc3NhZ2UtZGVmbGF0ZSddLAotICAgICAgICAgICAgICAgIHJlc3BvbnNlX2NoZWNrZXIs
Ci0gICAgICAgICAgICAgICAgdGVzdF9mdW5jdGlvbikKLQotICAgIGRlZiB0ZXN0X2VjaG9fcGVy
bWVzc2FnZV9kZWZsYXRlX3R3b19mcmFtZXMoc2VsZik6Ci0gICAgICAgIGRlZiB0ZXN0X2Z1bmN0
aW9uKGNsaWVudCk6Ci0gICAgICAgICAgICAjIEZyb20gdGhlIGV4YW1wbGVzIGluIHRoZSBzcGVj
LgotICAgICAgICAgICAgY2xpZW50Ll9zdHJlYW0uc2VuZF9kYXRhKAotICAgICAgICAgICAgICAg
ICAgICAnXHhmMlx4NDhceGNkJywKLSAgICAgICAgICAgICAgICAgICAgY2xpZW50X2Zvcl90ZXN0
aW5nLk9QQ09ERV9URVhULAotICAgICAgICAgICAgICAgICAgICBlbmQ9RmFsc2UsCi0gICAgICAg
ICAgICAgICAgICAgIHJzdjE9MSkKLSAgICAgICAgICAgIGNsaWVudC5fc3RyZWFtLnNlbmRfZGF0
YSgKLSAgICAgICAgICAgICAgICAgICAgJ1x4YzlceGM5XHgwN1x4MDAnLAotICAgICAgICAgICAg
ICAgICAgICBjbGllbnRfZm9yX3Rlc3RpbmcuT1BDT0RFX1RFWFQpCi0gICAgICAgICAgICBjbGll
bnQuX3N0cmVhbS5hc3NlcnRfcmVjZWl2ZV9iaW5hcnkoCi0gICAgICAgICAgICAgICAgICAgICdc
eGYyXHg0OFx4Y2RceGM5XHhjOVx4MDdceDAwJywKLSAgICAgICAgICAgICAgICAgICAgb3Bjb2Rl
PWNsaWVudF9mb3JfdGVzdGluZy5PUENPREVfVEVYVCwKLSAgICAgICAgICAgICAgICAgICAgcnN2
MT0xKQotCi0gICAgICAgICAgICBjbGllbnQuc2VuZF9jbG9zZSgpCi0gICAgICAgICAgICBjbGll
bnQuYXNzZXJ0X3JlY2VpdmVfY2xvc2UoKQotCi0gICAgICAgIGRlZiByZXNwb25zZV9jaGVja2Vy
KHBhcmFtZXRlcik6Ci0gICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFscygncGVybWVzc2FnZS1k
ZWZsYXRlJywgcGFyYW1ldGVyLm5hbWUoKSkKLSAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxz
KFtdLCBwYXJhbWV0ZXIuZ2V0X3BhcmFtZXRlcnMoKSkKLQotICAgICAgICBzZWxmLl9ydW5fcGVy
bWVzc2FnZV9kZWZsYXRlX3Rlc3QoCi0gICAgICAgICAgICAgICAgWydwZXJtZXNzYWdlLWRlZmxh
dGUnXSwKLSAgICAgICAgICAgICAgICByZXNwb25zZV9jaGVja2VyLAotICAgICAgICAgICAgICAg
IHRlc3RfZnVuY3Rpb24pCi0KLSAgICBkZWYgdGVzdF9lY2hvX3Blcm1lc3NhZ2VfZGVmbGF0ZV90
d29fbWVzc2FnZXMoc2VsZik6Ci0gICAgICAgIGRlZiB0ZXN0X2Z1bmN0aW9uKGNsaWVudCk6Ci0g
ICAgICAgICAgICAjIEZyb20gdGhlIGV4YW1wbGVzIGluIHRoZSBzcGVjLgotICAgICAgICAgICAg
Y2xpZW50Ll9zdHJlYW0uc2VuZF9kYXRhKAotICAgICAgICAgICAgICAgICAgICAnXHhmMlx4NDhc
eGNkXHhjOVx4YzlceDA3XHgwMCcsCi0gICAgICAgICAgICAgICAgICAgIGNsaWVudF9mb3JfdGVz
dGluZy5PUENPREVfVEVYVCwKLSAgICAgICAgICAgICAgICAgICAgcnN2MT0xKQotICAgICAgICAg
ICAgY2xpZW50Ll9zdHJlYW0uc2VuZF9kYXRhKAotICAgICAgICAgICAgICAgICAgICAnXHhmMlx4
MDBceDExXHgwMFx4MDAnLAotICAgICAgICAgICAgICAgICAgICBjbGllbnRfZm9yX3Rlc3Rpbmcu
T1BDT0RFX1RFWFQsCi0gICAgICAgICAgICAgICAgICAgIHJzdjE9MSkKLSAgICAgICAgICAgIGNs
aWVudC5fc3RyZWFtLmFzc2VydF9yZWNlaXZlX2JpbmFyeSgKLSAgICAgICAgICAgICAgICAgICAg
J1x4ZjJceDQ4XHhjZFx4YzlceGM5XHgwN1x4MDAnLAotICAgICAgICAgICAgICAgICAgICBvcGNv
ZGU9Y2xpZW50X2Zvcl90ZXN0aW5nLk9QQ09ERV9URVhULAotICAgICAgICAgICAgICAgICAgICBy
c3YxPTEpCi0gICAgICAgICAgICBjbGllbnQuX3N0cmVhbS5hc3NlcnRfcmVjZWl2ZV9iaW5hcnko
Ci0gICAgICAgICAgICAgICAgICAgICdceGYyXHgwMFx4MTFceDAwXHgwMCcsCi0gICAgICAgICAg
ICAgICAgICAgIG9wY29kZT1jbGllbnRfZm9yX3Rlc3RpbmcuT1BDT0RFX1RFWFQsCi0gICAgICAg
ICAgICAgICAgICAgIHJzdjE9MSkKLQotICAgICAgICAgICAgY2xpZW50LnNlbmRfY2xvc2UoKQot
ICAgICAgICAgICAgY2xpZW50LmFzc2VydF9yZWNlaXZlX2Nsb3NlKCkKLQotICAgICAgICBkZWYg
cmVzcG9uc2VfY2hlY2tlcihwYXJhbWV0ZXIpOgotICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVh
bHMoJ3Blcm1lc3NhZ2UtZGVmbGF0ZScsIHBhcmFtZXRlci5uYW1lKCkpCi0gICAgICAgICAgICBz
ZWxmLmFzc2VydEVxdWFscyhbXSwgcGFyYW1ldGVyLmdldF9wYXJhbWV0ZXJzKCkpCi0KLSAgICAg
ICAgc2VsZi5fcnVuX3Blcm1lc3NhZ2VfZGVmbGF0ZV90ZXN0KAotICAgICAgICAgICAgICAgIFsn
cGVybWVzc2FnZS1kZWZsYXRlJ10sCi0gICAgICAgICAgICAgICAgcmVzcG9uc2VfY2hlY2tlciwK
LSAgICAgICAgICAgICAgICB0ZXN0X2Z1bmN0aW9uKQotCi0gICAgZGVmIHRlc3RfZWNob19wZXJt
ZXNzYWdlX2RlZmxhdGVfdHdvX21zZ3Nfc2VydmVyX25vX2NvbnRleHRfdGFrZW92ZXIoc2VsZik6
Ci0gICAgICAgIGRlZiB0ZXN0X2Z1bmN0aW9uKGNsaWVudCk6Ci0gICAgICAgICAgICAjIEZyb20g
dGhlIGV4YW1wbGVzIGluIHRoZSBzcGVjLgotICAgICAgICAgICAgY2xpZW50Ll9zdHJlYW0uc2Vu
ZF9kYXRhKAotICAgICAgICAgICAgICAgICAgICAnXHhmMlx4NDhceGNkXHhjOVx4YzlceDA3XHgw
MCcsCi0gICAgICAgICAgICAgICAgICAgIGNsaWVudF9mb3JfdGVzdGluZy5PUENPREVfVEVYVCwK
LSAgICAgICAgICAgICAgICAgICAgcnN2MT0xKQotICAgICAgICAgICAgY2xpZW50Ll9zdHJlYW0u
c2VuZF9kYXRhKAotICAgICAgICAgICAgICAgICAgICAnXHhmMlx4MDBceDExXHgwMFx4MDAnLAot
ICAgICAgICAgICAgICAgICAgICBjbGllbnRfZm9yX3Rlc3RpbmcuT1BDT0RFX1RFWFQsCi0gICAg
ICAgICAgICAgICAgICAgIHJzdjE9MSkKLSAgICAgICAgICAgIGNsaWVudC5fc3RyZWFtLmFzc2Vy
dF9yZWNlaXZlX2JpbmFyeSgKLSAgICAgICAgICAgICAgICAgICAgJ1x4ZjJceDQ4XHhjZFx4Yzlc
eGM5XHgwN1x4MDAnLAotICAgICAgICAgICAgICAgICAgICBvcGNvZGU9Y2xpZW50X2Zvcl90ZXN0
aW5nLk9QQ09ERV9URVhULAotICAgICAgICAgICAgICAgICAgICByc3YxPTEpCi0gICAgICAgICAg
ICBjbGllbnQuX3N0cmVhbS5hc3NlcnRfcmVjZWl2ZV9iaW5hcnkoCi0gICAgICAgICAgICAgICAg
ICAgICdceGYyXHg0OFx4Y2RceGM5XHhjOVx4MDdceDAwJywKLSAgICAgICAgICAgICAgICAgICAg
b3Bjb2RlPWNsaWVudF9mb3JfdGVzdGluZy5PUENPREVfVEVYVCwKLSAgICAgICAgICAgICAgICAg
ICAgcnN2MT0xKQotCi0gICAgICAgICAgICBjbGllbnQuc2VuZF9jbG9zZSgpCi0gICAgICAgICAg
ICBjbGllbnQuYXNzZXJ0X3JlY2VpdmVfY2xvc2UoKQotCi0gICAgICAgIGRlZiByZXNwb25zZV9j
aGVja2VyKHBhcmFtZXRlcik6Ci0gICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFscygncGVybWVz
c2FnZS1kZWZsYXRlJywgcGFyYW1ldGVyLm5hbWUoKSkKLSAgICAgICAgICAgIHNlbGYuYXNzZXJ0
RXF1YWxzKFsoJ3NlcnZlcl9ub19jb250ZXh0X3Rha2VvdmVyJywgTm9uZSldLAotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgcGFyYW1ldGVyLmdldF9wYXJhbWV0ZXJzKCkpCi0KLSAgICAg
ICAgc2VsZi5fcnVuX3Blcm1lc3NhZ2VfZGVmbGF0ZV90ZXN0KAotICAgICAgICAgICAgICAgIFsn
cGVybWVzc2FnZS1kZWZsYXRlOyBzZXJ2ZXJfbm9fY29udGV4dF90YWtlb3ZlciddLAotICAgICAg
ICAgICAgICAgIHJlc3BvbnNlX2NoZWNrZXIsCi0gICAgICAgICAgICAgICAgdGVzdF9mdW5jdGlv
bikKLQotICAgIGRlZiB0ZXN0X2VjaG9fcGVybWVzc2FnZV9kZWZsYXRlX3ByZWZlcmVuY2Uoc2Vs
Zik6Ci0gICAgICAgIGRlZiB0ZXN0X2Z1bmN0aW9uKGNsaWVudCk6Ci0gICAgICAgICAgICAjIEZy
b20gdGhlIGV4YW1wbGVzIGluIHRoZSBzcGVjLgotICAgICAgICAgICAgY29tcHJlc3NlZF9oZWxs
byA9ICdceGYyXHg0OFx4Y2RceGM5XHhjOVx4MDdceDAwJwotICAgICAgICAgICAgY2xpZW50Ll9z
dHJlYW0uc2VuZF9kYXRhKAotICAgICAgICAgICAgICAgICAgICBjb21wcmVzc2VkX2hlbGxvLAot
ICAgICAgICAgICAgICAgICAgICBjbGllbnRfZm9yX3Rlc3RpbmcuT1BDT0RFX1RFWFQsCi0gICAg
ICAgICAgICAgICAgICAgIHJzdjE9MSkKLSAgICAgICAgICAgIGNsaWVudC5fc3RyZWFtLmFzc2Vy
dF9yZWNlaXZlX2JpbmFyeSgKLSAgICAgICAgICAgICAgICAgICAgY29tcHJlc3NlZF9oZWxsbywK
LSAgICAgICAgICAgICAgICAgICAgb3Bjb2RlPWNsaWVudF9mb3JfdGVzdGluZy5PUENPREVfVEVY
VCwKLSAgICAgICAgICAgICAgICAgICAgcnN2MT0xKQotCi0gICAgICAgICAgICBjbGllbnQuc2Vu
ZF9jbG9zZSgpCi0gICAgICAgICAgICBjbGllbnQuYXNzZXJ0X3JlY2VpdmVfY2xvc2UoKQotCi0g
ICAgICAgIGRlZiByZXNwb25zZV9jaGVja2VyKHBhcmFtZXRlcik6Ci0gICAgICAgICAgICBzZWxm
LmFzc2VydEVxdWFscygncGVybWVzc2FnZS1kZWZsYXRlJywgcGFyYW1ldGVyLm5hbWUoKSkKLSAg
ICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKFtdLCBwYXJhbWV0ZXIuZ2V0X3BhcmFtZXRlcnMo
KSkKLQotICAgICAgICBzZWxmLl9ydW5fcGVybWVzc2FnZV9kZWZsYXRlX3Rlc3QoCi0gICAgICAg
ICAgICAgICAgWydwZXJtZXNzYWdlLWRlZmxhdGUnLCAnZGVmbGF0ZS1mcmFtZSddLAotICAgICAg
ICAgICAgICAgIHJlc3BvbnNlX2NoZWNrZXIsCi0gICAgICAgICAgICAgICAgdGVzdF9mdW5jdGlv
bikKLQotICAgIGRlZiB0ZXN0X2VjaG9fcGVybWVzc2FnZV9kZWZsYXRlX3dpdGhfcGFyYW1ldGVy
cyhzZWxmKToKLSAgICAgICAgZGVmIHRlc3RfZnVuY3Rpb24oY2xpZW50KToKLSAgICAgICAgICAg
ICMgRnJvbSB0aGUgZXhhbXBsZXMgaW4gdGhlIHNwZWMuCi0gICAgICAgICAgICBjb21wcmVzc2Vk
X2hlbGxvID0gJ1x4ZjJceDQ4XHhjZFx4YzlceGM5XHgwN1x4MDAnCi0gICAgICAgICAgICBjbGll
bnQuX3N0cmVhbS5zZW5kX2RhdGEoCi0gICAgICAgICAgICAgICAgICAgIGNvbXByZXNzZWRfaGVs
bG8sCi0gICAgICAgICAgICAgICAgICAgIGNsaWVudF9mb3JfdGVzdGluZy5PUENPREVfVEVYVCwK
LSAgICAgICAgICAgICAgICAgICAgcnN2MT0xKQotICAgICAgICAgICAgY2xpZW50Ll9zdHJlYW0u
YXNzZXJ0X3JlY2VpdmVfYmluYXJ5KAotICAgICAgICAgICAgICAgICAgICBjb21wcmVzc2VkX2hl
bGxvLAotICAgICAgICAgICAgICAgICAgICBvcGNvZGU9Y2xpZW50X2Zvcl90ZXN0aW5nLk9QQ09E
RV9URVhULAotICAgICAgICAgICAgICAgICAgICByc3YxPTEpCi0KLSAgICAgICAgICAgIGNsaWVu
dC5zZW5kX2Nsb3NlKCkKLSAgICAgICAgICAgIGNsaWVudC5hc3NlcnRfcmVjZWl2ZV9jbG9zZSgp
Ci0KLSAgICAgICAgZGVmIHJlc3BvbnNlX2NoZWNrZXIocGFyYW1ldGVyKToKLSAgICAgICAgICAg
IHNlbGYuYXNzZXJ0RXF1YWxzKCdwZXJtZXNzYWdlLWRlZmxhdGUnLCBwYXJhbWV0ZXIubmFtZSgp
KQotICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMoWygnc2VydmVyX21heF93aW5kb3dfYml0
cycsICcxMCcpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgnc2VydmVyX25vX2Nv
bnRleHRfdGFrZW92ZXInLCBOb25lKV0sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBw
YXJhbWV0ZXIuZ2V0X3BhcmFtZXRlcnMoKSkKLQotICAgICAgICBzZWxmLl9ydW5fcGVybWVzc2Fn
ZV9kZWZsYXRlX3Rlc3QoCi0gICAgICAgICAgICAgICAgWydwZXJtZXNzYWdlLWRlZmxhdGU7IHNl
cnZlcl9tYXhfd2luZG93X2JpdHM9MTA7ICcKLSAgICAgICAgICAgICAgICAgJ3NlcnZlcl9ub19j
b250ZXh0X3Rha2VvdmVyJ10sCi0gICAgICAgICAgICAgICAgcmVzcG9uc2VfY2hlY2tlciwKLSAg
ICAgICAgICAgICAgICB0ZXN0X2Z1bmN0aW9uKQotCi0gICAgZGVmIHRlc3RfZWNob19wZXJtZXNz
YWdlX2RlZmxhdGVfd2l0aF9iYWRfc2VydmVyX21heF93aW5kb3dfYml0cyhzZWxmKToKLSAgICAg
ICAgZGVmIHRlc3RfZnVuY3Rpb24oY2xpZW50KToKLSAgICAgICAgICAgIGNsaWVudC5zZW5kX2Ns
b3NlKCkKLSAgICAgICAgICAgIGNsaWVudC5hc3NlcnRfcmVjZWl2ZV9jbG9zZSgpCi0KLSAgICAg
ICAgZGVmIHJlc3BvbnNlX2NoZWNrZXIocGFyYW1ldGVyKToKLSAgICAgICAgICAgIHJhaXNlIEV4
Y2VwdGlvbignVW5leHBlY3RlZCBhY2NlcHRhbmNlIG9mIHBlcm1lc3NhZ2UtZGVmbGF0ZScpCi0K
LSAgICAgICAgc2VsZi5fcnVuX3Blcm1lc3NhZ2VfZGVmbGF0ZV90ZXN0KAotICAgICAgICAgICAg
ICAgIFsncGVybWVzc2FnZS1kZWZsYXRlOyBzZXJ2ZXJfbWF4X3dpbmRvd19iaXRzPTMwMDAwMDAn
XSwKLSAgICAgICAgICAgICAgICByZXNwb25zZV9jaGVja2VyLAotICAgICAgICAgICAgICAgIHRl
c3RfZnVuY3Rpb24pCi0KLSAgICBkZWYgdGVzdF9lY2hvX3Blcm1lc3NhZ2VfZGVmbGF0ZV93aXRo
X2JhZF9zZXJ2ZXJfbWF4X3dpbmRvd19iaXRzKHNlbGYpOgotICAgICAgICBkZWYgdGVzdF9mdW5j
dGlvbihjbGllbnQpOgotICAgICAgICAgICAgY2xpZW50LnNlbmRfY2xvc2UoKQotICAgICAgICAg
ICAgY2xpZW50LmFzc2VydF9yZWNlaXZlX2Nsb3NlKCkKLQotICAgICAgICBkZWYgcmVzcG9uc2Vf
Y2hlY2tlcihwYXJhbWV0ZXIpOgotICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCdVbmV4cGVj
dGVkIGFjY2VwdGFuY2Ugb2YgcGVybWVzc2FnZS1kZWZsYXRlJykKLQotICAgICAgICBzZWxmLl9y
dW5fcGVybWVzc2FnZV9kZWZsYXRlX3Rlc3QoCi0gICAgICAgICAgICAgICAgWydwZXJtZXNzYWdl
LWRlZmxhdGU7IHNlcnZlcl9tYXhfd2luZG93X2JpdHM9MzAwMDAwMCddLAotICAgICAgICAgICAg
ICAgIHJlc3BvbnNlX2NoZWNrZXIsCi0gICAgICAgICAgICAgICAgdGVzdF9mdW5jdGlvbikKLQot
ICAgIGRlZiB0ZXN0X2VjaG9fcGVybWVzc2FnZV9kZWZsYXRlX3dpdGhfdW5kZWZpbmVkX3BhcmFt
ZXRlcihzZWxmKToKLSAgICAgICAgZGVmIHRlc3RfZnVuY3Rpb24oY2xpZW50KToKLSAgICAgICAg
ICAgIGNsaWVudC5zZW5kX2Nsb3NlKCkKLSAgICAgICAgICAgIGNsaWVudC5hc3NlcnRfcmVjZWl2
ZV9jbG9zZSgpCi0KLSAgICAgICAgZGVmIHJlc3BvbnNlX2NoZWNrZXIocGFyYW1ldGVyKToKLSAg
ICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbignVW5leHBlY3RlZCBhY2NlcHRhbmNlIG9mIHBlcm1l
c3NhZ2UtZGVmbGF0ZScpCi0KLSAgICAgICAgc2VsZi5fcnVuX3Blcm1lc3NhZ2VfZGVmbGF0ZV90
ZXN0KAotICAgICAgICAgICAgICAgIFsncGVybWVzc2FnZS1kZWZsYXRlOyBmb289YmFyJ10sCi0g
ICAgICAgICAgICAgICAgcmVzcG9uc2VfY2hlY2tlciwKLSAgICAgICAgICAgICAgICB0ZXN0X2Z1
bmN0aW9uKQotCi0gICAgZGVmIHRlc3RfZWNob19jbG9zZV93aXRoX2NvZGVfYW5kX3JlYXNvbihz
ZWxmKToKLSAgICAgICAgc2VsZi5fb3B0aW9ucy5yZXNvdXJjZSA9ICcvY2xvc2UnCi0gICAgICAg
IHNlbGYuX3J1bl9jbG9zZV93aXRoX2NvZGVfYW5kX3JlYXNvbl90ZXN0KAotICAgICAgICAgICAg
X2VjaG9fY2hlY2tfcHJvY2VkdXJlX3dpdGhfY29kZV9hbmRfcmVhc29uLCAzMzMzLCAnc3Vuc3Vu
c3Vuc3VuJykKLQotICAgIGRlZiB0ZXN0X2VjaG9fY2xvc2Vfd2l0aF9lbXB0eV9ib2R5KHNlbGYp
OgotICAgICAgICBzZWxmLl9vcHRpb25zLnJlc291cmNlID0gJy9jbG9zZScKLSAgICAgICAgc2Vs
Zi5fcnVuX2Nsb3NlX3dpdGhfY29kZV9hbmRfcmVhc29uX3Rlc3QoCi0gICAgICAgICAgICBfZWNo
b19jaGVja19wcm9jZWR1cmVfd2l0aF9jb2RlX2FuZF9yZWFzb24sIE5vbmUsICcnKQotCi0gICAg
ZGVmIHRlc3RfbXV4X2VjaG8oc2VsZik6Ci0gICAgICAgIHNlbGYuX3J1bl9tdXhfdGVzdChfbXV4
X2VjaG9fY2hlY2tfcHJvY2VkdXJlKQotCi0gICAgZGVmIHRlc3RfY2xvc2Vfb25fcHJvdG9jb2xf
ZXJyb3Ioc2VsZik6Ci0gICAgICAgICIiIlRlc3RzIHRoYXQgdGhlIHNlcnZlciBzZW5kcyBhIGNs
b3NlIGZyYW1lIHdpdGggcHJvdG9jb2wgZXJyb3Igc3RhdHVzCi0gICAgICAgIGNvZGUgd2hlbiB0
aGUgY2xpZW50IHNlbmRzIGRhdGEgd2l0aCBzb21lIHByb3RvY29sIGVycm9yLgotICAgICAgICAi
IiIKLQotICAgICAgICBkZWYgdGVzdF9mdW5jdGlvbihjbGllbnQpOgotICAgICAgICAgICAgY2xp
ZW50LmNvbm5lY3QoKQotCi0gICAgICAgICAgICAjIEludGVybWVkaWF0ZSBmcmFtZSB3aXRob3V0
IGFueSBwcmVjZWRpbmcgc3RhcnQgb2YgZnJhZ21lbnRhdGlvbgotICAgICAgICAgICAgIyBmcmFt
ZS4KLSAgICAgICAgICAgIGNsaWVudC5zZW5kX2ZyYW1lX29mX2FyYml0cmFyeV9ieXRlcygnXHg4
MFx4ODAnLCAnJykKLSAgICAgICAgICAgIGNsaWVudC5hc3NlcnRfcmVjZWl2ZV9jbG9zZSgKLSAg
ICAgICAgICAgICAgICBjbGllbnRfZm9yX3Rlc3RpbmcuU1RBVFVTX1BST1RPQ09MX0VSUk9SKQot
Ci0gICAgICAgIHNlbGYuX3J1bl90ZXN0KHRlc3RfZnVuY3Rpb24pCi0KLSAgICBkZWYgdGVzdF9j
bG9zZV9vbl91bnN1cHBvcnRlZF9mcmFtZShzZWxmKToKLSAgICAgICAgIiIiVGVzdHMgdGhhdCB0
aGUgc2VydmVyIHNlbmRzIGEgY2xvc2UgZnJhbWUgd2l0aCB1bnN1cHBvcnRlZCBvcGVyYXRpb24K
LSAgICAgICAgc3RhdHVzIGNvZGUgd2hlbiB0aGUgY2xpZW50IHNlbmRzIGRhdGEgYXNraW5nIHNv
bWUgb3BlcmF0aW9uIHRoYXQgaXMKLSAgICAgICAgbm90IHN1cHBvcnRlZCBieSB0aGUgc2VydmVy
LgotICAgICAgICAiIiIKLQotICAgICAgICBkZWYgdGVzdF9mdW5jdGlvbihjbGllbnQpOgotICAg
ICAgICAgICAgY2xpZW50LmNvbm5lY3QoKQotCi0gICAgICAgICAgICAjIFRleHQgZnJhbWUgd2l0
aCBSU1YzIGJpdCByYWlzZWQuCi0gICAgICAgICAgICBjbGllbnQuc2VuZF9mcmFtZV9vZl9hcmJp
dHJhcnlfYnl0ZXMoJ1x4OTFceDgwJywgJycpCi0gICAgICAgICAgICBjbGllbnQuYXNzZXJ0X3Jl
Y2VpdmVfY2xvc2UoCi0gICAgICAgICAgICAgICAgY2xpZW50X2Zvcl90ZXN0aW5nLlNUQVRVU19V
TlNVUFBPUlRFRF9EQVRBKQotCi0gICAgICAgIHNlbGYuX3J1bl90ZXN0KHRlc3RfZnVuY3Rpb24p
Ci0KLSAgICBkZWYgdGVzdF9jbG9zZV9vbl9pbnZhbGlkX2ZyYW1lKHNlbGYpOgotICAgICAgICAi
IiJUZXN0cyB0aGF0IHRoZSBzZXJ2ZXIgc2VuZHMgYSBjbG9zZSBmcmFtZSB3aXRoIGludmFsaWQg
ZnJhbWUgcGF5bG9hZAotICAgICAgICBkYXRhIHN0YXR1cyBjb2RlIHdoZW4gdGhlIGNsaWVudCBz
ZW5kcyBhbiBpbnZhbGlkIGZyYW1lIGxpa2UgY29udGFpbmluZwotICAgICAgICBpbnZhbGlkIFVU
Ri04IGNoYXJhY3Rlci4KLSAgICAgICAgIiIiCi0KLSAgICAgICAgZGVmIHRlc3RfZnVuY3Rpb24o
Y2xpZW50KToKLSAgICAgICAgICAgIGNsaWVudC5jb25uZWN0KCkKLQotICAgICAgICAgICAgIyBU
ZXh0IGZyYW1lIHdpdGggaW52YWxpZCBVVEYtOCBzdHJpbmcuCi0gICAgICAgICAgICBjbGllbnQu
c2VuZF9tZXNzYWdlKCdceDgwJywgcmF3PVRydWUpCi0gICAgICAgICAgICBjbGllbnQuYXNzZXJ0
X3JlY2VpdmVfY2xvc2UoCi0gICAgICAgICAgICAgICAgY2xpZW50X2Zvcl90ZXN0aW5nLlNUQVRV
U19JTlZBTElEX0ZSQU1FX1BBWUxPQURfREFUQSkKLQotICAgICAgICBzZWxmLl9ydW5fdGVzdCh0
ZXN0X2Z1bmN0aW9uKQotCi0gICAgZGVmIHRlc3RfY2xvc2Vfb25faW50ZXJuYWxfZW5kcG9pbnRf
ZXJyb3Ioc2VsZik6Ci0gICAgICAgICIiIlRlc3RzIHRoYXQgdGhlIHNlcnZlciBzZW5kcyBhIGNs
b3NlIGZyYW1lIHdpdGggaW50ZXJuYWwgZW5kcG9pbnQKLSAgICAgICAgZXJyb3Igc3RhdHVzIGNv
ZGUgd2hlbiB0aGUgaGFuZGxlciBkb2VzIGJhZCBvcGVyYXRpb24uCi0gICAgICAgICIiIgotCi0g
ICAgICAgIHNlbGYuX29wdGlvbnMucmVzb3VyY2UgPSAnL2ludGVybmFsX2Vycm9yJwotCi0gICAg
ICAgIGRlZiB0ZXN0X2Z1bmN0aW9uKGNsaWVudCk6Ci0gICAgICAgICAgICBjbGllbnQuY29ubmVj
dCgpCi0gICAgICAgICAgICBjbGllbnQuYXNzZXJ0X3JlY2VpdmVfY2xvc2UoCi0gICAgICAgICAg
ICAgICAgY2xpZW50X2Zvcl90ZXN0aW5nLlNUQVRVU19JTlRFUk5BTF9FTkRQT0lOVF9FUlJPUikK
LQotICAgICAgICBzZWxmLl9ydW5fdGVzdCh0ZXN0X2Z1bmN0aW9uKQotCi0gICAgIyBUT0RPKHRv
eW9zaGltKTogQWRkIHRlc3RzIHRvIHZlcmlmeSBpbnZhbGlkIGFic29sdXRlIHVyaSBoYW5kbGlu
ZyBsaWtlCi0gICAgIyBob3N0IHVubWF0Y2gsIHBvcnQgdW5tYXRjaCBhbmQgaW52YWxpZCBwb3J0
IGRlc2NyaXB0aW9uICgnOicgd2l0aG91dCBwb3J0Ci0gICAgIyBudW1iZXIpLgotCi0gICAgZGVm
IHRlc3RfYWJzb2x1dGVfdXJpKHNlbGYpOgotICAgICAgICAiIiJUZXN0cyBhYnNvbHV0ZSB1cmkg
cmVxdWVzdC4iIiIKLQotICAgICAgICBvcHRpb25zID0gc2VsZi5fb3B0aW9ucwotICAgICAgICBv
cHRpb25zLnJlc291cmNlID0gJ3dzOi8vbG9jYWxob3N0OiVkL2VjaG8nICUgb3B0aW9ucy5zZXJ2
ZXJfcG9ydAotICAgICAgICBzZWxmLl9ydW5fdGVzdF93aXRoX2NsaWVudF9vcHRpb25zKF9lY2hv
X2NoZWNrX3Byb2NlZHVyZSwgb3B0aW9ucykKLQotICAgIGRlZiB0ZXN0X29yaWdpbl9jaGVjayhz
ZWxmKToKLSAgICAgICAgIiIiVGVzdHMgaHR0cCBmYWxsYmFjayBvbiBvcmlnaW4gY2hlY2sgZmFp
bC4iIiIKLQotICAgICAgICBvcHRpb25zID0gc2VsZi5fb3B0aW9ucwotICAgICAgICBvcHRpb25z
LnJlc291cmNlID0gJy9vcmlnaW5fY2hlY2snCi0gICAgICAgICMgU2VydmVyIHNob3dzIHdhcm5p
bmcgbWVzc2FnZSBmb3IgaHR0cCA0MDMgZmFsbGJhY2suIFRoaXMgd2FybmluZwotICAgICAgICAj
IG1lc3NhZ2UgaXMgY29uZnVzaW5nLiBGb2xsb3dpbmcgcGlwZSBkaXNwb3NlcyB3YXJuaW5nIG1l
c3NhZ2VzLgotICAgICAgICBzZWxmLnNlcnZlcl9zdGRlcnIgPSBzdWJwcm9jZXNzLlBJUEUKLSAg
ICAgICAgc2VsZi5fcnVuX2h0dHBfZmFsbGJhY2tfdGVzdChvcHRpb25zLCA0MDMpCi0KLSAgICBk
ZWYgdGVzdF92ZXJzaW9uX2NoZWNrKHNlbGYpOgotICAgICAgICAiIiJUZXN0cyBodHRwIGZhbGxi
YWNrIG9uIHZlcnNpb24gY2hlY2sgZmFpbC4iIiIKLQotICAgICAgICBvcHRpb25zID0gc2VsZi5f
b3B0aW9ucwotICAgICAgICBvcHRpb25zLnZlcnNpb24gPSA5OQotICAgICAgICBzZWxmLl9ydW5f
aHR0cF9mYWxsYmFja190ZXN0KG9wdGlvbnMsIDQwMCkKLQotCi1jbGFzcyBFbmRUb0VuZEh5Qmkw
MFRlc3QoRW5kVG9FbmRUZXN0QmFzZSk6Ci0gICAgZGVmIHNldFVwKHNlbGYpOgotICAgICAgICBF
bmRUb0VuZFRlc3RCYXNlLnNldFVwKHNlbGYpCi0KLSAgICBkZWYgX3J1bl90ZXN0KHNlbGYsIHRl
c3RfZnVuY3Rpb24pOgotICAgICAgICBzZXJ2ZXIgPSBzZWxmLl9ydW5fc2VydmVyKCkKLSAgICAg
ICAgdHJ5OgotICAgICAgICAgICAgdGltZS5zbGVlcChfU0VSVkVSX1dBUk1VUF9JTl9TRUMpCi0K
LSAgICAgICAgICAgIGNsaWVudCA9IGNsaWVudF9mb3JfdGVzdGluZy5jcmVhdGVfY2xpZW50X2h5
YmkwMChzZWxmLl9vcHRpb25zKQotICAgICAgICAgICAgdHJ5OgotICAgICAgICAgICAgICAgIHRl
c3RfZnVuY3Rpb24oY2xpZW50KQotICAgICAgICAgICAgZmluYWxseToKLSAgICAgICAgICAgICAg
ICBjbGllbnQuY2xvc2Vfc29ja2V0KCkKLSAgICAgICAgZmluYWxseToKLSAgICAgICAgICAgIHNl
bGYuX2tpbGxfcHJvY2VzcyhzZXJ2ZXIucGlkKQotCi0gICAgZGVmIHRlc3RfZWNobyhzZWxmKToK
LSAgICAgICAgc2VsZi5fcnVuX3Rlc3QoX2VjaG9fY2hlY2tfcHJvY2VkdXJlKQotCi0gICAgZGVm
IHRlc3RfZWNob19zZXJ2ZXJfY2xvc2Uoc2VsZik6Ci0gICAgICAgIHNlbGYuX3J1bl90ZXN0KF9l
Y2hvX2NoZWNrX3Byb2NlZHVyZV93aXRoX2dvb2RieWUpCi0KLQotY2xhc3MgRW5kVG9FbmRUZXN0
V2l0aEVjaG9DbGllbnQoRW5kVG9FbmRUZXN0QmFzZSk6Ci0gICAgZGVmIHNldFVwKHNlbGYpOgot
ICAgICAgICBFbmRUb0VuZFRlc3RCYXNlLnNldFVwKHNlbGYpCi0KLSAgICBkZWYgX2NoZWNrX2V4
YW1wbGVfZWNob19jbGllbnRfcmVzdWx0KAotICAgICAgICBzZWxmLCBleHBlY3RlZCwgc3Rkb3V0
ZGF0YSwgc3RkZXJyZGF0YSk6Ci0gICAgICAgIGFjdHVhbCA9IHN0ZG91dGRhdGEuZGVjb2RlKCJ1
dGYtOCIpCi0gICAgICAgIGlmIGFjdHVhbCAhPSBleHBlY3RlZDoKLSAgICAgICAgICAgIHJhaXNl
IEV4Y2VwdGlvbignVW5leHBlY3RlZCByZXN1bHQgb24gZXhhbXBsZSBlY2hvIGNsaWVudDogJwot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICclciAoZXhwZWN0ZWQpIHZzICVyIChhY3R1YWwp
JyAlCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgKGV4cGVjdGVkLCBhY3R1YWwpKQotICAg
ICAgICBpZiBzdGRlcnJkYXRhIGlzIG5vdCBOb25lOgotICAgICAgICAgICAgcmFpc2UgRXhjZXB0
aW9uKCdVbmV4cGVjdGVkIGVycm9yIG1lc3NhZ2Ugb24gZXhhbXBsZSBlY2hvICcKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAnY2xpZW50OiAlcicgJSBzdGRlcnJkYXRhKQotCi0gICAgZGVm
IHRlc3RfZXhhbXBsZV9lY2hvX2NsaWVudChzZWxmKToKLSAgICAgICAgIiIiVGVzdHMgdGhhdCB0
aGUgZWNob19jbGllbnQucHkgZXhhbXBsZSBjYW4gdGFsayB3aXRoIHRoZSBzZXJ2ZXIuIiIiCi0K
LSAgICAgICAgc2VydmVyID0gc2VsZi5fcnVuX3NlcnZlcigpCi0gICAgICAgIHRyeToKLSAgICAg
ICAgICAgIHRpbWUuc2xlZXAoX1NFUlZFUl9XQVJNVVBfSU5fU0VDKQotCi0gICAgICAgICAgICBj
bGllbnRfY29tbWFuZCA9IG9zLnBhdGguam9pbigKLSAgICAgICAgICAgICAgICBzZWxmLnRvcF9k
aXIsICdleGFtcGxlJywgJ2VjaG9fY2xpZW50LnB5JykKLQotICAgICAgICAgICAgIyBFeHBlY3Rl
ZCBvdXRwdXQgZm9yIHRoZSBkZWZhdWx0IG1lc3NhZ2VzLgotICAgICAgICAgICAgZGVmYXVsdF9l
eHBlY3RhdGlvbiA9ICgnU2VuZDogSGVsbG9cbicgJ1JlY3Y6IEhlbGxvXG4nCi0gICAgICAgICAg
ICAgICAgdSdTZW5kOiBcdTY1ZTVcdTY3MmNcbicgdSdSZWN2OiBcdTY1ZTVcdTY3MmNcbicKLSAg
ICAgICAgICAgICAgICAnU2VuZCBjbG9zZVxuJyAnUmVjdiBhY2tcbicpCi0KLSAgICAgICAgICAg
IGFyZ3MgPSBbY2xpZW50X2NvbW1hbmQsCi0gICAgICAgICAgICAgICAgICAgICctcCcsIHN0cihz
ZWxmLl9vcHRpb25zLnNlcnZlcl9wb3J0KV0KLSAgICAgICAgICAgIGNsaWVudCA9IHNlbGYuX3J1
bl9weXRob25fY29tbWFuZChhcmdzLCBzdGRvdXQ9c3VicHJvY2Vzcy5QSVBFKQotICAgICAgICAg
ICAgc3Rkb3V0ZGF0YSwgc3RkZXJyZGF0YSA9IGNsaWVudC5jb21tdW5pY2F0ZSgpCi0gICAgICAg
ICAgICBzZWxmLl9jaGVja19leGFtcGxlX2VjaG9fY2xpZW50X3Jlc3VsdCgKLSAgICAgICAgICAg
ICAgICAgICAgZGVmYXVsdF9leHBlY3RhdGlvbiwgc3Rkb3V0ZGF0YSwgc3RkZXJyZGF0YSkKLQot
ICAgICAgICAgICAgIyBQcm9jZXNzIGEgYmlnIG1lc3NhZ2UgZm9yIHdoaWNoIGV4dGVuZGVkIHBh
eWxvYWQgbGVuZ3RoIGlzIHVzZWQuCi0gICAgICAgICAgICAjIFRvIGhhbmRsZSBleHRlbmRlZCBw
YXlsb2FkIGxlbmd0aCwgd3NfdmVyc2lvbiBhdHRyaWJ1dGUgd2lsbCBiZQotICAgICAgICAgICAg
IyBhY2Nlc3NlZC4gVGhpcyB0ZXN0IGNoZWNrcyB0aGF0IHdzX3ZlcnNpb24gaXMgY29ycmVjdGx5
IHNldC4KLSAgICAgICAgICAgIGJpZ19tZXNzYWdlID0gJ2EnICogMTAyNAotICAgICAgICAgICAg
YXJncyA9IFtjbGllbnRfY29tbWFuZCwKLSAgICAgICAgICAgICAgICAgICAgJy1wJywgc3RyKHNl
bGYuX29wdGlvbnMuc2VydmVyX3BvcnQpLAotICAgICAgICAgICAgICAgICAgICAnLW0nLCBiaWdf
bWVzc2FnZV0KLSAgICAgICAgICAgIGNsaWVudCA9IHNlbGYuX3J1bl9weXRob25fY29tbWFuZChh
cmdzLCBzdGRvdXQ9c3VicHJvY2Vzcy5QSVBFKQotICAgICAgICAgICAgc3Rkb3V0ZGF0YSwgc3Rk
ZXJyZGF0YSA9IGNsaWVudC5jb21tdW5pY2F0ZSgpCi0gICAgICAgICAgICBleHBlY3RlZCA9ICgn
U2VuZDogJXNcblJlY3Y6ICVzXG5TZW5kIGNsb3NlXG5SZWN2IGFja1xuJyAlCi0gICAgICAgICAg
ICAgICAgICAgICAgICAoYmlnX21lc3NhZ2UsIGJpZ19tZXNzYWdlKSkKLSAgICAgICAgICAgIHNl
bGYuX2NoZWNrX2V4YW1wbGVfZWNob19jbGllbnRfcmVzdWx0KAotICAgICAgICAgICAgICAgIGV4
cGVjdGVkLCBzdGRvdXRkYXRhLCBzdGRlcnJkYXRhKQotCi0gICAgICAgICAgICAjIFRlc3QgdGhl
IHBlcm1lc3NhZ2UtZGVmbGF0ZSBleHRlbnNpb24uCi0gICAgICAgICAgICBhcmdzID0gW2NsaWVu
dF9jb21tYW5kLAotICAgICAgICAgICAgICAgICAgICAnLXAnLCBzdHIoc2VsZi5fb3B0aW9ucy5z
ZXJ2ZXJfcG9ydCksCi0gICAgICAgICAgICAgICAgICAgICctLXVzZV9wZXJtZXNzYWdlX2RlZmxh
dGUnXQotICAgICAgICAgICAgY2xpZW50ID0gc2VsZi5fcnVuX3B5dGhvbl9jb21tYW5kKGFyZ3Ms
IHN0ZG91dD1zdWJwcm9jZXNzLlBJUEUpCi0gICAgICAgICAgICBzdGRvdXRkYXRhLCBzdGRlcnJk
YXRhID0gY2xpZW50LmNvbW11bmljYXRlKCkKLSAgICAgICAgICAgIHNlbGYuX2NoZWNrX2V4YW1w
bGVfZWNob19jbGllbnRfcmVzdWx0KAotICAgICAgICAgICAgICAgICAgICBkZWZhdWx0X2V4cGVj
dGF0aW9uLCBzdGRvdXRkYXRhLCBzdGRlcnJkYXRhKQotICAgICAgICBmaW5hbGx5OgotICAgICAg
ICAgICAgc2VsZi5fa2lsbF9wcm9jZXNzKHNlcnZlci5waWQpCi0KLQotaWYgX19uYW1lX18gPT0g
J19fbWFpbl9fJzoKLSAgICB1bml0dGVzdC5tYWluKCkKLQotCi0jIHZpOnN0cz00IHN3PTQgZXQK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvcHl3ZWJzb2NrZXQvc3JjL3Rlc3QvdGVzdF9leHRlbnNpb25zLnB5IGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9zcmMv
dGVzdC90ZXN0X2V4dGVuc2lvbnMucHkKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDZj
OGIxMjYyZDg5Yjk0OTY0OTY1YzNjMzhkNWNjNDk0NDc5YzFiNjcuLjAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9zcmMvdGVzdC90ZXN0X2V4dGVuc2lv
bnMucHkKKysrIC9kZXYvbnVsbApAQCAtMSwzNjAgKzAsMCBAQAotIyEvdXNyL2Jpbi9lbnYgcHl0
aG9uCi0jCi0jIENvcHlyaWdodCAyMDEyLCBHb29nbGUgSW5jLgotIyBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgotIwotIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKLSMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQotIyBtZXQ6Ci0jCi0jICAgICAq
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0Ci0jIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KLSMgICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQotIyBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCi0jIGluIHRoZSBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKLSMgZGlzdHJp
YnV0aW9uLgotIyAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUg
bmFtZXMgb2YgaXRzCi0jIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHBy
b21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCi0jIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVj
aWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0jCi0jIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKLSMgIkFTIElT
IiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QKLSMgTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SCi0jIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCi0jIE9XTkVSIE9SIENPTlRSSUJVVE9S
UyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAotIyBTUEVD
SUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UCi0jIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLAotIyBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKLSMgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotIyAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UKLSMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLQotCi0iIiJUZXN0cyBmb3IgZXh0ZW5zaW9ucyBtb2R1
bGUuIiIiCi0KLQotaW1wb3J0IHVuaXR0ZXN0Ci1pbXBvcnQgemxpYgotCi1pbXBvcnQgc2V0X3N5
c19wYXRoICAjIFVwZGF0ZSBzeXMucGF0aCB0byBsb2NhdGUgbW9kX3B5d2Vic29ja2V0IG1vZHVs
ZS4KLQotZnJvbSBtb2RfcHl3ZWJzb2NrZXQgaW1wb3J0IGNvbW1vbgotZnJvbSBtb2RfcHl3ZWJz
b2NrZXQgaW1wb3J0IGV4dGVuc2lvbnMKLQotCi1jbGFzcyBFeHRlbnNpb25zVGVzdCh1bml0dGVz
dC5UZXN0Q2FzZSk6Ci0gICAgIiIiQSB1bml0dGVzdCBmb3Igbm9uLWNsYXNzIG1ldGhvZHMgaW4g
ZXh0ZW5zaW9ucy5weSIiIgotCi0gICAgZGVmIHRlc3RfcGFyc2Vfd2luZG93X2JpdHMoc2VsZik6
Ci0gICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFZhbHVlRXJyb3IsIGV4dGVuc2lvbnMuX3BhcnNl
X3dpbmRvd19iaXRzLCBOb25lKQotICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhWYWx1ZUVycm9y
LCBleHRlbnNpb25zLl9wYXJzZV93aW5kb3dfYml0cywgJ2Zvb2JhcicpCi0gICAgICAgIHNlbGYu
YXNzZXJ0UmFpc2VzKFZhbHVlRXJyb3IsIGV4dGVuc2lvbnMuX3BhcnNlX3dpbmRvd19iaXRzLCAn
IDggJykKLSAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVmFsdWVFcnJvciwgZXh0ZW5zaW9ucy5f
cGFyc2Vfd2luZG93X2JpdHMsICdhOGEnKQotICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhWYWx1
ZUVycm9yLCBleHRlbnNpb25zLl9wYXJzZV93aW5kb3dfYml0cywgJzAwMDAwJykKLSAgICAgICAg
c2VsZi5hc3NlcnRSYWlzZXMoVmFsdWVFcnJvciwgZXh0ZW5zaW9ucy5fcGFyc2Vfd2luZG93X2Jp
dHMsICcwMDAwOCcpCi0gICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFZhbHVlRXJyb3IsIGV4dGVu
c2lvbnMuX3BhcnNlX3dpbmRvd19iaXRzLCAnMHg4JykKLQotICAgICAgICBzZWxmLmFzc2VydFJh
aXNlcyhWYWx1ZUVycm9yLCBleHRlbnNpb25zLl9wYXJzZV93aW5kb3dfYml0cywgJzkuNScpCi0g
ICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFZhbHVlRXJyb3IsIGV4dGVuc2lvbnMuX3BhcnNlX3dp
bmRvd19iaXRzLCAnOC4wJykKLQotICAgICAgICBzZWxmLmFzc2VydFRydWUoZXh0ZW5zaW9ucy5f
cGFyc2Vfd2luZG93X2JpdHMsICc4JykKLSAgICAgICAgc2VsZi5hc3NlcnRUcnVlKGV4dGVuc2lv
bnMuX3BhcnNlX3dpbmRvd19iaXRzLCAnMTUnKQotCi0gICAgICAgIHNlbGYuYXNzZXJ0UmFpc2Vz
KFZhbHVlRXJyb3IsIGV4dGVuc2lvbnMuX3BhcnNlX3dpbmRvd19iaXRzLCAnLTgnKQotICAgICAg
ICBzZWxmLmFzc2VydFJhaXNlcyhWYWx1ZUVycm9yLCBleHRlbnNpb25zLl9wYXJzZV93aW5kb3df
Yml0cywgJzAnKQotICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhWYWx1ZUVycm9yLCBleHRlbnNp
b25zLl9wYXJzZV93aW5kb3dfYml0cywgJzcnKQotCi0gICAgICAgIHNlbGYuYXNzZXJ0UmFpc2Vz
KFZhbHVlRXJyb3IsIGV4dGVuc2lvbnMuX3BhcnNlX3dpbmRvd19iaXRzLCAnMTYnKQotICAgICAg
ICBzZWxmLmFzc2VydFJhaXNlcygKLSAgICAgICAgICAgICAgICBWYWx1ZUVycm9yLCBleHRlbnNp
b25zLl9wYXJzZV93aW5kb3dfYml0cywgJzEwMDAwMDAwJykKLQotCi1jbGFzcyBDb21wcmVzc2lv
bk1ldGhvZFBhcmFtZXRlclBhcnNlclRlc3QodW5pdHRlc3QuVGVzdENhc2UpOgotICAgICIiIkEg
dW5pdHRlc3QgZm9yIF9wYXJzZV9jb21wcmVzc2lvbl9tZXRob2Qgd2hpY2ggcGFyc2VzIHRoZSBj
b21wcmVzc2lvbgotICAgIG1ldGhvZCBkZXNjcmlwdGlvbiB1c2VkIGJ5IHBlcmZyYW1lLWNvbXBy
ZXNzaW9uIGFuZCBwZXJtZXNzYWdlLWNvbXByZXNzaW9uCi0gICAgZXh0ZW5zaW9uIGluIHRoZWly
ICJtZXRob2QiIGV4dGVuc2lvbiBwYXJhbWV0ZXIuCi0gICAgIiIiCi0KLSAgICBkZWYgdGVzdF9w
YXJzZV9tZXRob2Rfc2ltcGxlKHNlbGYpOgotICAgICAgICBtZXRob2RfbGlzdCA9IGV4dGVuc2lv
bnMuX3BhcnNlX2NvbXByZXNzaW9uX21ldGhvZCgnZm9vJykKLSAgICAgICAgc2VsZi5hc3NlcnRF
cXVhbCgxLCBsZW4obWV0aG9kX2xpc3QpKQotICAgICAgICBtZXRob2QgPSBtZXRob2RfbGlzdFsw
XQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdmb28nLCBtZXRob2QubmFtZSgpKQotICAgICAg
ICBzZWxmLmFzc2VydEVxdWFsKDAsIGxlbihtZXRob2QuZ2V0X3BhcmFtZXRlcnMoKSkpCi0KLSAg
ICBkZWYgdGVzdF9wYXJzZV9tZXRob2Rfd2l0aF9wYXJhbWV0ZXIoc2VsZik6Ci0gICAgICAgIG1l
dGhvZF9saXN0ID0gZXh0ZW5zaW9ucy5fcGFyc2VfY29tcHJlc3Npb25fbWV0aG9kKCdmb287IHg7
IHk9MTAnKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKDEsIGxlbihtZXRob2RfbGlzdCkpCi0g
ICAgICAgIG1ldGhvZCA9IG1ldGhvZF9saXN0WzBdCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwo
J2ZvbycsIG1ldGhvZC5uYW1lKCkpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoMiwgbGVuKG1l
dGhvZC5nZXRfcGFyYW1ldGVycygpKSkKLSAgICAgICAgc2VsZi5hc3NlcnRUcnVlKG1ldGhvZC5o
YXNfcGFyYW1ldGVyKCd4JykpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoTm9uZSwgbWV0aG9k
LmdldF9wYXJhbWV0ZXJfdmFsdWUoJ3gnKSkKLSAgICAgICAgc2VsZi5hc3NlcnRUcnVlKG1ldGhv
ZC5oYXNfcGFyYW1ldGVyKCd5JykpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJzEwJywgbWV0
aG9kLmdldF9wYXJhbWV0ZXJfdmFsdWUoJ3knKSkKLQotICAgIGRlZiB0ZXN0X3BhcnNlX21ldGhv
ZF93aXRoX3F1b3RlZF9wYXJhbWV0ZXIoc2VsZik6Ci0gICAgICAgIG1ldGhvZF9saXN0ID0gZXh0
ZW5zaW9ucy5fcGFyc2VfY29tcHJlc3Npb25fbWV0aG9kKAotICAgICAgICAgICAgJ2ZvbzsgeD0i
SGVsbG8gV29ybGQiOyB5PTEwJykKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgxLCBsZW4obWV0
aG9kX2xpc3QpKQotICAgICAgICBtZXRob2QgPSBtZXRob2RfbGlzdFswXQotICAgICAgICBzZWxm
LmFzc2VydEVxdWFsKCdmb28nLCBtZXRob2QubmFtZSgpKQotICAgICAgICBzZWxmLmFzc2VydEVx
dWFsKDIsIGxlbihtZXRob2QuZ2V0X3BhcmFtZXRlcnMoKSkpCi0gICAgICAgIHNlbGYuYXNzZXJ0
VHJ1ZShtZXRob2QuaGFzX3BhcmFtZXRlcigneCcpKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFs
KCdIZWxsbyBXb3JsZCcsIG1ldGhvZC5nZXRfcGFyYW1ldGVyX3ZhbHVlKCd4JykpCi0gICAgICAg
IHNlbGYuYXNzZXJ0VHJ1ZShtZXRob2QuaGFzX3BhcmFtZXRlcigneScpKQotICAgICAgICBzZWxm
LmFzc2VydEVxdWFsKCcxMCcsIG1ldGhvZC5nZXRfcGFyYW1ldGVyX3ZhbHVlKCd5JykpCi0KLSAg
ICBkZWYgdGVzdF9wYXJzZV9tZXRob2RfbXVsdGlwbGUoc2VsZik6Ci0gICAgICAgIG1ldGhvZF9s
aXN0ID0gZXh0ZW5zaW9ucy5fcGFyc2VfY29tcHJlc3Npb25fbWV0aG9kKCdmb28sIGJhcicpCi0g
ICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoMiwgbGVuKG1ldGhvZF9saXN0KSkKLSAgICAgICAgc2Vs
Zi5hc3NlcnRFcXVhbCgnZm9vJywgbWV0aG9kX2xpc3RbMF0ubmFtZSgpKQotICAgICAgICBzZWxm
LmFzc2VydEVxdWFsKDAsIGxlbihtZXRob2RfbGlzdFswXS5nZXRfcGFyYW1ldGVycygpKSkKLSAg
ICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnYmFyJywgbWV0aG9kX2xpc3RbMV0ubmFtZSgpKQotICAg
ICAgICBzZWxmLmFzc2VydEVxdWFsKDAsIGxlbihtZXRob2RfbGlzdFsxXS5nZXRfcGFyYW1ldGVy
cygpKSkKLQotICAgIGRlZiB0ZXN0X3BhcnNlX21ldGhvZF9tdWx0aXBsZV9tZXRob2RzX3dpdGhf
cXVvdGVkX3BhcmFtZXRlcihzZWxmKToKLSAgICAgICAgbWV0aG9kX2xpc3QgPSBleHRlbnNpb25z
Ll9wYXJzZV9jb21wcmVzc2lvbl9tZXRob2QoCi0gICAgICAgICAgICAnZm9vOyB4PSJIZWxsbyBX
b3JsZCIsIGJhcjsgeT0xMCcpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoMiwgbGVuKG1ldGhv
ZF9saXN0KSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnZm9vJywgbWV0aG9kX2xpc3RbMF0u
bmFtZSgpKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKDEsIGxlbihtZXRob2RfbGlzdFswXS5n
ZXRfcGFyYW1ldGVycygpKSkKLSAgICAgICAgc2VsZi5hc3NlcnRUcnVlKG1ldGhvZF9saXN0WzBd
Lmhhc19wYXJhbWV0ZXIoJ3gnKSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnSGVsbG8gV29y
bGQnLAotICAgICAgICAgICAgICAgICAgICAgICAgIG1ldGhvZF9saXN0WzBdLmdldF9wYXJhbWV0
ZXJfdmFsdWUoJ3gnKSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnYmFyJywgbWV0aG9kX2xp
c3RbMV0ubmFtZSgpKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKDEsIGxlbihtZXRob2RfbGlz
dFsxXS5nZXRfcGFyYW1ldGVycygpKSkKLSAgICAgICAgc2VsZi5hc3NlcnRUcnVlKG1ldGhvZF9s
aXN0WzFdLmhhc19wYXJhbWV0ZXIoJ3knKSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnMTAn
LCBtZXRob2RfbGlzdFsxXS5nZXRfcGFyYW1ldGVyX3ZhbHVlKCd5JykpCi0KLSAgICBkZWYgdGVz
dF9jcmVhdGVfbWV0aG9kX2Rlc2Nfc2ltcGxlKHNlbGYpOgotICAgICAgICBwYXJhbXMgPSBjb21t
b24uRXh0ZW5zaW9uUGFyYW1ldGVyKCdmb28nKQotICAgICAgICBkZXNjID0gZXh0ZW5zaW9ucy5f
Y3JlYXRlX2FjY2VwdGVkX21ldGhvZF9kZXNjKCdmb28nLAotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhcmFtcy5nZXRfcGFyYW1ldGVycygp
KQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdmb28nLCBkZXNjKQotCi0gICAgZGVmIHRlc3Rf
Y3JlYXRlX21ldGhvZF9kZXNjX3dpdGhfcGFyYW1ldGVycyhzZWxmKToKLSAgICAgICAgcGFyYW1z
ID0gY29tbW9uLkV4dGVuc2lvblBhcmFtZXRlcignZm9vJykKLSAgICAgICAgcGFyYW1zLmFkZF9w
YXJhbWV0ZXIoJ3gnLCAnSGVsbG8sIFdvcmxkJykKLSAgICAgICAgcGFyYW1zLmFkZF9wYXJhbWV0
ZXIoJ3knLCAnMTAnKQotICAgICAgICBkZXNjID0gZXh0ZW5zaW9ucy5fY3JlYXRlX2FjY2VwdGVk
X21ldGhvZF9kZXNjKCdmb28nLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHBhcmFtcy5nZXRfcGFyYW1ldGVycygpKQotICAgICAgICBzZWxm
LmFzc2VydEVxdWFsKCdmb287IHg9IkhlbGxvLCBXb3JsZCI7IHk9MTAnLCBkZXNjKQotCi0KLWNs
YXNzIERlZmxhdGVGcmFtZUV4dGVuc2lvblByb2Nlc3NvclBhcnNpbmdUZXN0KHVuaXR0ZXN0LlRl
c3RDYXNlKToKLSAgICAiIiJBIHVuaXR0ZXN0IGZvciBjaGVja2luZyB0aGF0IERlZmxhdGVGcmFt
ZUV4dGVuc2lvblByb2Nlc3NvciBwYXJzZXMgZ2l2ZW4KLSAgICBleHRlbnNpb24gcGFyYW1ldGVy
IGNvcnJlY3RseS4KLSAgICAiIiIKLQotICAgIGRlZiB0ZXN0X3JlZ2lzdHJ5KHNlbGYpOgotICAg
ICAgICBwcm9jZXNzb3IgPSBleHRlbnNpb25zLmdldF9leHRlbnNpb25fcHJvY2Vzc29yKAotICAg
ICAgICAgICAgICAgIGNvbW1vbi5FeHRlbnNpb25QYXJhbWV0ZXIoJ2RlZmxhdGUtZnJhbWUnKSkK
LSAgICAgICAgc2VsZi5hc3NlcnRJc0luc3RhbmNlKHByb2Nlc3NvciwKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGV4dGVuc2lvbnMuRGVmbGF0ZUZyYW1lRXh0ZW5zaW9uUHJvY2Vzc29y
KQotCi0gICAgICAgIHByb2Nlc3NvciA9IGV4dGVuc2lvbnMuZ2V0X2V4dGVuc2lvbl9wcm9jZXNz
b3IoCi0gICAgICAgICAgICAgICAgY29tbW9uLkV4dGVuc2lvblBhcmFtZXRlcigneC13ZWJraXQt
ZGVmbGF0ZS1mcmFtZScpKQotICAgICAgICBzZWxmLmFzc2VydElzSW5zdGFuY2UocHJvY2Vzc29y
LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXh0ZW5zaW9ucy5EZWZsYXRlRnJhbWVF
eHRlbnNpb25Qcm9jZXNzb3IpCi0KLSAgICBkZWYgdGVzdF9taW5pbWFsX29mZmVyKHNlbGYpOgot
ICAgICAgICBwcm9jZXNzb3IgPSBleHRlbnNpb25zLkRlZmxhdGVGcmFtZUV4dGVuc2lvblByb2Nl
c3NvcigKLSAgICAgICAgICAgIGNvbW1vbi5FeHRlbnNpb25QYXJhbWV0ZXIoJ3BlcmZyYW1lLWRl
ZmxhdGUnKSkKLQotICAgICAgICByZXNwb25zZSA9IHByb2Nlc3Nvci5nZXRfZXh0ZW5zaW9uX3Jl
c3BvbnNlKCkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgncGVyZnJhbWUtZGVmbGF0ZScsIHJl
c3BvbnNlLm5hbWUoKSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgwLCBsZW4ocmVzcG9uc2Uu
Z2V0X3BhcmFtZXRlcnMoKSkpCi0KLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCh6bGliLk1BWF9X
QklUUywKLSAgICAgICAgICAgICAgICAgICAgICAgICBwcm9jZXNzb3IuX3JmYzE5NzlfZGVmbGF0
ZXIuX3dpbmRvd19iaXRzKQotICAgICAgICBzZWxmLmFzc2VydEZhbHNlKHByb2Nlc3Nvci5fcmZj
MTk3OV9kZWZsYXRlci5fbm9fY29udGV4dF90YWtlb3ZlcikKLQotICAgIGRlZiB0ZXN0X29mZmVy
X3dpdGhfbWF4X3dpbmRvd19iaXRzKHNlbGYpOgotICAgICAgICBwYXJhbWV0ZXIgPSBjb21tb24u
RXh0ZW5zaW9uUGFyYW1ldGVyKCdwZXJmcmFtZS1kZWZsYXRlJykKLSAgICAgICAgcGFyYW1ldGVy
LmFkZF9wYXJhbWV0ZXIoJ21heF93aW5kb3dfYml0cycsICcxMCcpCi0gICAgICAgIHByb2Nlc3Nv
ciA9IGV4dGVuc2lvbnMuRGVmbGF0ZUZyYW1lRXh0ZW5zaW9uUHJvY2Vzc29yKHBhcmFtZXRlcikK
LQotICAgICAgICByZXNwb25zZSA9IHByb2Nlc3Nvci5nZXRfZXh0ZW5zaW9uX3Jlc3BvbnNlKCkK
LSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgncGVyZnJhbWUtZGVmbGF0ZScsIHJlc3BvbnNlLm5h
bWUoKSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgwLCBsZW4ocmVzcG9uc2UuZ2V0X3BhcmFt
ZXRlcnMoKSkpCi0KLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgxMCwgcHJvY2Vzc29yLl9yZmMx
OTc5X2RlZmxhdGVyLl93aW5kb3dfYml0cykKLQotICAgIGRlZiB0ZXN0X29mZmVyX3dpdGhfb3V0
X29mX3JhbmdlX21heF93aW5kb3dfYml0cyhzZWxmKToKLSAgICAgICAgcGFyYW1ldGVyID0gY29t
bW9uLkV4dGVuc2lvblBhcmFtZXRlcigncGVyZnJhbWUtZGVmbGF0ZScpCi0gICAgICAgIHBhcmFt
ZXRlci5hZGRfcGFyYW1ldGVyKCdtYXhfd2luZG93X2JpdHMnLCAnMCcpCi0gICAgICAgIHByb2Nl
c3NvciA9IGV4dGVuc2lvbnMuRGVmbGF0ZUZyYW1lRXh0ZW5zaW9uUHJvY2Vzc29yKHBhcmFtZXRl
cikKLQotICAgICAgICBzZWxmLmFzc2VydElzTm9uZShwcm9jZXNzb3IuZ2V0X2V4dGVuc2lvbl9y
ZXNwb25zZSgpKQotCi0gICAgZGVmIHRlc3Rfb2ZmZXJfd2l0aF9tYXhfd2luZG93X2JpdHNfd2l0
aG91dF92YWx1ZShzZWxmKToKLSAgICAgICAgcGFyYW1ldGVyID0gY29tbW9uLkV4dGVuc2lvblBh
cmFtZXRlcigncGVyZnJhbWUtZGVmbGF0ZScpCi0gICAgICAgIHBhcmFtZXRlci5hZGRfcGFyYW1l
dGVyKCdtYXhfd2luZG93X2JpdHMnLCBOb25lKQotICAgICAgICBwcm9jZXNzb3IgPSBleHRlbnNp
b25zLkRlZmxhdGVGcmFtZUV4dGVuc2lvblByb2Nlc3NvcihwYXJhbWV0ZXIpCi0KLSAgICAgICAg
c2VsZi5hc3NlcnRJc05vbmUocHJvY2Vzc29yLmdldF9leHRlbnNpb25fcmVzcG9uc2UoKSkKLQot
ICAgIGRlZiB0ZXN0X29mZmVyX3dpdGhfbm9fY29udGV4dF90YWtlb3ZlcihzZWxmKToKLSAgICAg
ICAgcGFyYW1ldGVyID0gY29tbW9uLkV4dGVuc2lvblBhcmFtZXRlcigncGVyZnJhbWUtZGVmbGF0
ZScpCi0gICAgICAgIHBhcmFtZXRlci5hZGRfcGFyYW1ldGVyKCdub19jb250ZXh0X3Rha2VvdmVy
JywgTm9uZSkKLSAgICAgICAgcHJvY2Vzc29yID0gZXh0ZW5zaW9ucy5EZWZsYXRlRnJhbWVFeHRl
bnNpb25Qcm9jZXNzb3IocGFyYW1ldGVyKQotCi0gICAgICAgIHJlc3BvbnNlID0gcHJvY2Vzc29y
LmdldF9leHRlbnNpb25fcmVzcG9uc2UoKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdwZXJm
cmFtZS1kZWZsYXRlJywgcmVzcG9uc2UubmFtZSgpKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFs
KDAsIGxlbihyZXNwb25zZS5nZXRfcGFyYW1ldGVycygpKSkKLQotICAgICAgICBzZWxmLmFzc2Vy
dFRydWUocHJvY2Vzc29yLl9yZmMxOTc5X2RlZmxhdGVyLl9ub19jb250ZXh0X3Rha2VvdmVyKQot
Ci0gICAgZGVmIHRlc3Rfb2ZmZXJfd2l0aF9ub19jb250ZXh0X3Rha2VvdmVyX3dpdGhfdmFsdWUo
c2VsZik6Ci0gICAgICAgIHBhcmFtZXRlciA9IGNvbW1vbi5FeHRlbnNpb25QYXJhbWV0ZXIoJ3Bl
cmZyYW1lLWRlZmxhdGUnKQotICAgICAgICBwYXJhbWV0ZXIuYWRkX3BhcmFtZXRlcignbm9fY29u
dGV4dF90YWtlb3ZlcicsICdmb29iYXInKQotICAgICAgICBwcm9jZXNzb3IgPSBleHRlbnNpb25z
LkRlZmxhdGVGcmFtZUV4dGVuc2lvblByb2Nlc3NvcihwYXJhbWV0ZXIpCi0KLSAgICAgICAgc2Vs
Zi5hc3NlcnRJc05vbmUocHJvY2Vzc29yLmdldF9leHRlbnNpb25fcmVzcG9uc2UoKSkKLQotICAg
IGRlZiB0ZXN0X29mZmVyX3dpdGhfdW5rbm93bl9wYXJhbWV0ZXIoc2VsZik6Ci0gICAgICAgIHBh
cmFtZXRlciA9IGNvbW1vbi5FeHRlbnNpb25QYXJhbWV0ZXIoJ3BlcmZyYW1lLWRlZmxhdGUnKQot
ICAgICAgICBwYXJhbWV0ZXIuYWRkX3BhcmFtZXRlcignZm9vJywgJ2JhcicpCi0gICAgICAgIHBy
b2Nlc3NvciA9IGV4dGVuc2lvbnMuRGVmbGF0ZUZyYW1lRXh0ZW5zaW9uUHJvY2Vzc29yKHBhcmFt
ZXRlcikKLQotICAgICAgICByZXNwb25zZSA9IHByb2Nlc3Nvci5nZXRfZXh0ZW5zaW9uX3Jlc3Bv
bnNlKCkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgncGVyZnJhbWUtZGVmbGF0ZScsIHJlc3Bv
bnNlLm5hbWUoKSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgwLCBsZW4ocmVzcG9uc2UuZ2V0
X3BhcmFtZXRlcnMoKSkpCi0KLQotY2xhc3MgUGVyTWVzc2FnZURlZmxhdGVFeHRlbnNpb25Qcm9j
ZXNzb3JQYXJzaW5nVGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6Ci0gICAgIiIiQSB1bml0dGVzdCBm
b3IgY2hlY2tpbmcgdGhhdCBQZXJNZXNzYWdlRGVmbGF0ZUV4dGVuc2lvblByb2Nlc3NvciBwYXJz
ZXMKLSAgICBnaXZlbiBleHRlbnNpb24gcGFyYW1ldGVyIGNvcnJlY3RseS4KLSAgICAiIiIKLQot
ICAgIGRlZiB0ZXN0X3JlZ2lzdHJ5KHNlbGYpOgotICAgICAgICBwcm9jZXNzb3IgPSBleHRlbnNp
b25zLmdldF9leHRlbnNpb25fcHJvY2Vzc29yKAotICAgICAgICAgICAgICAgIGNvbW1vbi5FeHRl
bnNpb25QYXJhbWV0ZXIoJ3Blcm1lc3NhZ2UtZGVmbGF0ZScpKQotICAgICAgICBzZWxmLmFzc2Vy
dElzSW5zdGFuY2UocHJvY2Vzc29yLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXh0
ZW5zaW9ucy5QZXJNZXNzYWdlRGVmbGF0ZUV4dGVuc2lvblByb2Nlc3NvcikKLQotICAgIGRlZiB0
ZXN0X21pbmltYWxfb2ZmZXIoc2VsZik6Ci0gICAgICAgIHByb2Nlc3NvciA9IGV4dGVuc2lvbnMu
UGVyTWVzc2FnZURlZmxhdGVFeHRlbnNpb25Qcm9jZXNzb3IoCi0gICAgICAgICAgICBjb21tb24u
RXh0ZW5zaW9uUGFyYW1ldGVyKCdwZXJtZXNzYWdlLWRlZmxhdGUnKSkKLQotICAgICAgICByZXNw
b25zZSA9IHByb2Nlc3Nvci5nZXRfZXh0ZW5zaW9uX3Jlc3BvbnNlKCkKLSAgICAgICAgc2VsZi5h
c3NlcnRFcXVhbCgncGVybWVzc2FnZS1kZWZsYXRlJywgcmVzcG9uc2UubmFtZSgpKQotICAgICAg
ICBzZWxmLmFzc2VydEVxdWFsKDAsIGxlbihyZXNwb25zZS5nZXRfcGFyYW1ldGVycygpKSkKLQot
ICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHpsaWIuTUFYX1dCSVRTLAotICAgICAgICAgICAgICAg
ICAgICAgICAgIHByb2Nlc3Nvci5fcmZjMTk3OV9kZWZsYXRlci5fd2luZG93X2JpdHMpCi0gICAg
ICAgIHNlbGYuYXNzZXJ0RmFsc2UocHJvY2Vzc29yLl9yZmMxOTc5X2RlZmxhdGVyLl9ub19jb250
ZXh0X3Rha2VvdmVyKQotCi0gICAgZGVmIHRlc3Rfb2ZmZXJfd2l0aF9tYXhfd2luZG93X2JpdHMo
c2VsZik6Ci0gICAgICAgIHBhcmFtZXRlciA9IGNvbW1vbi5FeHRlbnNpb25QYXJhbWV0ZXIoJ3Bl
cm1lc3NhZ2UtZGVmbGF0ZScpCi0gICAgICAgIHBhcmFtZXRlci5hZGRfcGFyYW1ldGVyKCdzZXJ2
ZXJfbWF4X3dpbmRvd19iaXRzJywgJzEwJykKLSAgICAgICAgcHJvY2Vzc29yID0gZXh0ZW5zaW9u
cy5QZXJNZXNzYWdlRGVmbGF0ZUV4dGVuc2lvblByb2Nlc3NvcihwYXJhbWV0ZXIpCi0KLSAgICAg
ICAgcmVzcG9uc2UgPSBwcm9jZXNzb3IuZ2V0X2V4dGVuc2lvbl9yZXNwb25zZSgpCi0gICAgICAg
IHNlbGYuYXNzZXJ0RXF1YWwoJ3Blcm1lc3NhZ2UtZGVmbGF0ZScsIHJlc3BvbnNlLm5hbWUoKSkK
LSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChbKCdzZXJ2ZXJfbWF4X3dpbmRvd19iaXRzJywgJzEw
JyldLAotICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3BvbnNlLmdldF9wYXJhbWV0ZXJzKCkp
Ci0KLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgxMCwgcHJvY2Vzc29yLl9yZmMxOTc5X2RlZmxh
dGVyLl93aW5kb3dfYml0cykKLQotICAgIGRlZiB0ZXN0X29mZmVyX3dpdGhfb3V0X29mX3Jhbmdl
X21heF93aW5kb3dfYml0cyhzZWxmKToKLSAgICAgICAgcGFyYW1ldGVyID0gY29tbW9uLkV4dGVu
c2lvblBhcmFtZXRlcigncGVybWVzc2FnZS1kZWZsYXRlJykKLSAgICAgICAgcGFyYW1ldGVyLmFk
ZF9wYXJhbWV0ZXIoJ3NlcnZlcl9tYXhfd2luZG93X2JpdHMnLCAnMCcpCi0gICAgICAgIHByb2Nl
c3NvciA9IGV4dGVuc2lvbnMuUGVyTWVzc2FnZURlZmxhdGVFeHRlbnNpb25Qcm9jZXNzb3IocGFy
YW1ldGVyKQotCi0gICAgICAgIHNlbGYuYXNzZXJ0SXNOb25lKHByb2Nlc3Nvci5nZXRfZXh0ZW5z
aW9uX3Jlc3BvbnNlKCkpCi0KLSAgICBkZWYgdGVzdF9vZmZlcl93aXRoX21heF93aW5kb3dfYml0
c193aXRob3V0X3ZhbHVlKHNlbGYpOgotICAgICAgICBwYXJhbWV0ZXIgPSBjb21tb24uRXh0ZW5z
aW9uUGFyYW1ldGVyKCdwZXJtZXNzYWdlLWRlZmxhdGUnKQotICAgICAgICBwYXJhbWV0ZXIuYWRk
X3BhcmFtZXRlcignc2VydmVyX21heF93aW5kb3dfYml0cycsIE5vbmUpCi0gICAgICAgIHByb2Nl
c3NvciA9IGV4dGVuc2lvbnMuUGVyTWVzc2FnZURlZmxhdGVFeHRlbnNpb25Qcm9jZXNzb3IocGFy
YW1ldGVyKQotCi0gICAgICAgIHNlbGYuYXNzZXJ0SXNOb25lKHByb2Nlc3Nvci5nZXRfZXh0ZW5z
aW9uX3Jlc3BvbnNlKCkpCi0KLSAgICBkZWYgdGVzdF9vZmZlcl93aXRoX25vX2NvbnRleHRfdGFr
ZW92ZXIoc2VsZik6Ci0gICAgICAgIHBhcmFtZXRlciA9IGNvbW1vbi5FeHRlbnNpb25QYXJhbWV0
ZXIoJ3Blcm1lc3NhZ2UtZGVmbGF0ZScpCi0gICAgICAgIHBhcmFtZXRlci5hZGRfcGFyYW1ldGVy
KCdzZXJ2ZXJfbm9fY29udGV4dF90YWtlb3ZlcicsIE5vbmUpCi0gICAgICAgIHByb2Nlc3NvciA9
IGV4dGVuc2lvbnMuUGVyTWVzc2FnZURlZmxhdGVFeHRlbnNpb25Qcm9jZXNzb3IocGFyYW1ldGVy
KQotCi0gICAgICAgIHJlc3BvbnNlID0gcHJvY2Vzc29yLmdldF9leHRlbnNpb25fcmVzcG9uc2Uo
KQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdwZXJtZXNzYWdlLWRlZmxhdGUnLCByZXNwb25z
ZS5uYW1lKCkpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoWygnc2VydmVyX25vX2NvbnRleHRf
dGFrZW92ZXInLCBOb25lKV0sCi0gICAgICAgICAgICAgICAgICAgICAgICAgcmVzcG9uc2UuZ2V0
X3BhcmFtZXRlcnMoKSkKLQotICAgICAgICBzZWxmLmFzc2VydFRydWUocHJvY2Vzc29yLl9yZmMx
OTc5X2RlZmxhdGVyLl9ub19jb250ZXh0X3Rha2VvdmVyKQotCi0gICAgZGVmIHRlc3Rfb2ZmZXJf
d2l0aF9ub19jb250ZXh0X3Rha2VvdmVyX3dpdGhfdmFsdWUoc2VsZik6Ci0gICAgICAgIHBhcmFt
ZXRlciA9IGNvbW1vbi5FeHRlbnNpb25QYXJhbWV0ZXIoJ3Blcm1lc3NhZ2UtZGVmbGF0ZScpCi0g
ICAgICAgIHBhcmFtZXRlci5hZGRfcGFyYW1ldGVyKCdzZXJ2ZXJfbm9fY29udGV4dF90YWtlb3Zl
cicsICdmb29iYXInKQotICAgICAgICBwcm9jZXNzb3IgPSBleHRlbnNpb25zLlBlck1lc3NhZ2VE
ZWZsYXRlRXh0ZW5zaW9uUHJvY2Vzc29yKHBhcmFtZXRlcikKLQotICAgICAgICBzZWxmLmFzc2Vy
dElzTm9uZShwcm9jZXNzb3IuZ2V0X2V4dGVuc2lvbl9yZXNwb25zZSgpKQotCi0gICAgZGVmIHRl
c3Rfb2ZmZXJfd2l0aF91bmtub3duX3BhcmFtZXRlcihzZWxmKToKLSAgICAgICAgcGFyYW1ldGVy
ID0gY29tbW9uLkV4dGVuc2lvblBhcmFtZXRlcigncGVybWVzc2FnZS1kZWZsYXRlJykKLSAgICAg
ICAgcGFyYW1ldGVyLmFkZF9wYXJhbWV0ZXIoJ2ZvbycsICdiYXInKQotICAgICAgICBwcm9jZXNz
b3IgPSBleHRlbnNpb25zLlBlck1lc3NhZ2VEZWZsYXRlRXh0ZW5zaW9uUHJvY2Vzc29yKHBhcmFt
ZXRlcikKLQotICAgICAgICBzZWxmLmFzc2VydElzTm9uZShwcm9jZXNzb3IuZ2V0X2V4dGVuc2lv
bl9yZXNwb25zZSgpKQotCi0KLWNsYXNzIFBlck1lc3NhZ2VEZWZsYXRlRXh0ZW5zaW9uUHJvY2Vz
c29yQnVpbGRpbmdUZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKLSAgICAiIiJBIHVuaXR0ZXN0IGZv
ciBjaGVja2luZyB0aGF0IFBlck1lc3NhZ2VEZWZsYXRlRXh0ZW5zaW9uUHJvY2Vzc29yIGJ1aWxk
cwotICAgIGEgcmVzcG9uc2UgYmFzZWQgb24gc3BlY2lmaWVkIG9wdGlvbnMgY29ycmVjdGx5Lgot
ICAgICIiIgotCi0gICAgZGVmIHRlc3RfcmVzcG9uc2Vfd2l0aF9tYXhfd2luZG93X2JpdHMoc2Vs
Zik6Ci0gICAgICAgIHBhcmFtZXRlciA9IGNvbW1vbi5FeHRlbnNpb25QYXJhbWV0ZXIoJ3Blcm1l
c3NhZ2UtZGVmbGF0ZScpCi0gICAgICAgIHBhcmFtZXRlci5hZGRfcGFyYW1ldGVyKCdjbGllbnRf
bWF4X3dpbmRvd19iaXRzJywgTm9uZSkKLSAgICAgICAgcHJvY2Vzc29yID0gZXh0ZW5zaW9ucy5Q
ZXJNZXNzYWdlRGVmbGF0ZUV4dGVuc2lvblByb2Nlc3NvcihwYXJhbWV0ZXIpCi0gICAgICAgIHBy
b2Nlc3Nvci5zZXRfY2xpZW50X21heF93aW5kb3dfYml0cygxMCkKLQotICAgICAgICByZXNwb25z
ZSA9IHByb2Nlc3Nvci5nZXRfZXh0ZW5zaW9uX3Jlc3BvbnNlKCkKLSAgICAgICAgc2VsZi5hc3Nl
cnRFcXVhbCgncGVybWVzc2FnZS1kZWZsYXRlJywgcmVzcG9uc2UubmFtZSgpKQotICAgICAgICBz
ZWxmLmFzc2VydEVxdWFsKFsoJ2NsaWVudF9tYXhfd2luZG93X2JpdHMnLCAnMTAnKV0sCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgcmVzcG9uc2UuZ2V0X3BhcmFtZXRlcnMoKSkKLQotICAgIGRl
ZiB0ZXN0X3Jlc3BvbnNlX3dpdGhfbWF4X3dpbmRvd19iaXRzX3dpdGhvdXRfY2xpZW50X3Blcm1p
c3Npb24oc2VsZik6Ci0gICAgICAgIHByb2Nlc3NvciA9IGV4dGVuc2lvbnMuUGVyTWVzc2FnZURl
ZmxhdGVFeHRlbnNpb25Qcm9jZXNzb3IoCi0gICAgICAgICAgICBjb21tb24uRXh0ZW5zaW9uUGFy
YW1ldGVyKCdwZXJtZXNzYWdlLWRlZmxhdGUnKSkKLSAgICAgICAgcHJvY2Vzc29yLnNldF9jbGll
bnRfbWF4X3dpbmRvd19iaXRzKDEwKQotCi0gICAgICAgIHJlc3BvbnNlID0gcHJvY2Vzc29yLmdl
dF9leHRlbnNpb25fcmVzcG9uc2UoKQotICAgICAgICBzZWxmLmFzc2VydElzTm9uZShyZXNwb25z
ZSkKLQotICAgIGRlZiB0ZXN0X3Jlc3BvbnNlX3dpdGhfdHJ1ZV9mb3Jfbm9fY29udGV4dF90YWtl
b3ZlcihzZWxmKToKLSAgICAgICAgcHJvY2Vzc29yID0gZXh0ZW5zaW9ucy5QZXJNZXNzYWdlRGVm
bGF0ZUV4dGVuc2lvblByb2Nlc3NvcigKLSAgICAgICAgICAgIGNvbW1vbi5FeHRlbnNpb25QYXJh
bWV0ZXIoJ3Blcm1lc3NhZ2UtZGVmbGF0ZScpKQotCi0gICAgICAgIHByb2Nlc3Nvci5zZXRfY2xp
ZW50X25vX2NvbnRleHRfdGFrZW92ZXIoVHJ1ZSkKLQotICAgICAgICByZXNwb25zZSA9IHByb2Nl
c3Nvci5nZXRfZXh0ZW5zaW9uX3Jlc3BvbnNlKCkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgn
cGVybWVzc2FnZS1kZWZsYXRlJywgcmVzcG9uc2UubmFtZSgpKQotICAgICAgICBzZWxmLmFzc2Vy
dEVxdWFsKFsoJ2NsaWVudF9ub19jb250ZXh0X3Rha2VvdmVyJywgTm9uZSldLAotICAgICAgICAg
ICAgICAgICAgICAgICAgIHJlc3BvbnNlLmdldF9wYXJhbWV0ZXJzKCkpCi0KLSAgICBkZWYgdGVz
dF9yZXNwb25zZV93aXRoX2ZhbHNlX2Zvcl9ub19jb250ZXh0X3Rha2VvdmVyKHNlbGYpOgotICAg
ICAgICBwcm9jZXNzb3IgPSBleHRlbnNpb25zLlBlck1lc3NhZ2VEZWZsYXRlRXh0ZW5zaW9uUHJv
Y2Vzc29yKAotICAgICAgICAgICAgY29tbW9uLkV4dGVuc2lvblBhcmFtZXRlcigncGVybWVzc2Fn
ZS1kZWZsYXRlJykpCi0KLSAgICAgICAgcHJvY2Vzc29yLnNldF9jbGllbnRfbm9fY29udGV4dF90
YWtlb3ZlcihGYWxzZSkKLQotICAgICAgICByZXNwb25zZSA9IHByb2Nlc3Nvci5nZXRfZXh0ZW5z
aW9uX3Jlc3BvbnNlKCkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgncGVybWVzc2FnZS1kZWZs
YXRlJywgcmVzcG9uc2UubmFtZSgpKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKDAsIGxlbihy
ZXNwb25zZS5nZXRfcGFyYW1ldGVycygpKSkKLQotCi1jbGFzcyBQZXJNZXNzYWdlQ29tcHJlc3NF
eHRlbnNpb25Qcm9jZXNzb3JUZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKLSAgICBkZWYgdGVzdF9y
ZWdpc3RyeShzZWxmKToKLSAgICAgICAgcHJvY2Vzc29yID0gZXh0ZW5zaW9ucy5nZXRfZXh0ZW5z
aW9uX3Byb2Nlc3NvcigKLSAgICAgICAgICAgICAgICBjb21tb24uRXh0ZW5zaW9uUGFyYW1ldGVy
KCdwZXJtZXNzYWdlLWNvbXByZXNzJykpCi0gICAgICAgIHNlbGYuYXNzZXJ0SXNJbnN0YW5jZShw
cm9jZXNzb3IsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBleHRlbnNpb25zLlBlck1l
c3NhZ2VDb21wcmVzc0V4dGVuc2lvblByb2Nlc3NvcikKLQotCi1pZiBfX25hbWVfXyA9PSAnX19t
YWluX18nOgotICAgIHVuaXR0ZXN0Lm1haW4oKQotCi0KLSMgdmk6c3RzPTQgc3c9NCBldApkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy9weXdlYnNvY2tldC9zcmMvdGVzdC90ZXN0X2hhbmRzaGFrZS5weSBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3JjL3Rlc3Qv
dGVzdF9oYW5kc2hha2UucHkKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGFhNzhhYzA1
ZTU4NzFkMTU5YTY3ZjdlNDE2ZjMwMjcwMGZhMGY5MjYuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9zcmMvdGVzdC90ZXN0X2hhbmRzaGFrZS5weQor
KysgL2Rldi9udWxsCkBAIC0xLDE4OCArMCwwIEBACi0jIS91c3IvYmluL2VudiBweXRob24KLSMK
LSMgQ29weXJpZ2h0IDIwMTIsIEdvb2dsZSBJbmMuCi0jIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0j
Ci0jIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAotIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCi0jIG1ldDoKLSMKLSMgICAgICogUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
LSMgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgotIyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlCi0jIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKLSMgaW4gdGhlIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQotIyBkaXN0cmlidXRpb24u
Ci0jICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBv
ZiBpdHMKLSMgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBw
cm9kdWN0cyBkZXJpdmVkIGZyb20KLSMgdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHBy
aW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLSMKLSMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwotIyAiQVMgSVMiIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAotIyBM
SU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IKLSMgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKLSMgT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCi0jIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKLSMg
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsCi0jIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQotIyBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0jIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RQotIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgotCi0KLSIiIlRlc3RzIGZvciBoYW5kc2hha2UuX2Jhc2UgbW9kdWxl
LiIiIgotCi0KLWltcG9ydCB1bml0dGVzdAotCi1pbXBvcnQgc2V0X3N5c19wYXRoICAjIFVwZGF0
ZSBzeXMucGF0aCB0byBsb2NhdGUgbW9kX3B5d2Vic29ja2V0IG1vZHVsZS4KLQotZnJvbSBtb2Rf
cHl3ZWJzb2NrZXQuY29tbW9uIGltcG9ydCBFeHRlbnNpb25QYXJhbWV0ZXIKLWZyb20gbW9kX3B5
d2Vic29ja2V0LmNvbW1vbiBpbXBvcnQgRXh0ZW5zaW9uUGFyc2luZ0V4Y2VwdGlvbgotZnJvbSBt
b2RfcHl3ZWJzb2NrZXQuY29tbW9uIGltcG9ydCBmb3JtYXRfZXh0ZW5zaW9ucwotZnJvbSBtb2Rf
cHl3ZWJzb2NrZXQuY29tbW9uIGltcG9ydCBwYXJzZV9leHRlbnNpb25zCi1mcm9tIG1vZF9weXdl
YnNvY2tldC5oYW5kc2hha2UuX2Jhc2UgaW1wb3J0IEhhbmRzaGFrZUV4Y2VwdGlvbgotZnJvbSBt
b2RfcHl3ZWJzb2NrZXQuaGFuZHNoYWtlLl9iYXNlIGltcG9ydCB2YWxpZGF0ZV9zdWJwcm90b2Nv
bAotCi0KLWNsYXNzIFZhbGlkYXRlU3VicHJvdG9jb2xUZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToK
LSAgICAiIiJBIHVuaXR0ZXN0IGZvciB2YWxpZGF0ZV9zdWJwcm90b2NvbCBtZXRob2QuIiIiCi0K
LSAgICBkZWYgdGVzdF92YWxpZGF0ZV9zdWJwcm90b2NvbChzZWxmKToKLSAgICAgICAgIyBTaG91
bGQgc3VjY2VlZC4KLSAgICAgICAgdmFsaWRhdGVfc3VicHJvdG9jb2woJ3NhbXBsZScpCi0gICAg
ICAgIHZhbGlkYXRlX3N1YnByb3RvY29sKCdTYW1wbGUnKQotICAgICAgICB2YWxpZGF0ZV9zdWJw
cm90b2NvbCgnc2FtcGxlXHg3ZXByb3RvY29sJykKLQotICAgICAgICAjIFNob3VsZCBmYWlsLgot
ICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhIYW5kc2hha2VFeGNlcHRpb24sCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgIHZhbGlkYXRlX3N1YnByb3RvY29sLAotICAgICAgICAgICAgICAgICAg
ICAgICAgICAnJykKLSAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoSGFuZHNoYWtlRXhjZXB0aW9u
LAotICAgICAgICAgICAgICAgICAgICAgICAgICB2YWxpZGF0ZV9zdWJwcm90b2NvbCwKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgJ3NhbXBsZVx4MDlwcm90b2NvbCcpCi0gICAgICAgIHNlbGYu
YXNzZXJ0UmFpc2VzKEhhbmRzaGFrZUV4Y2VwdGlvbiwKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgdmFsaWRhdGVfc3VicHJvdG9jb2wsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICdzYW1w
bGVceDE5cHJvdG9jb2wnKQotICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhIYW5kc2hha2VFeGNl
cHRpb24sCi0gICAgICAgICAgICAgICAgICAgICAgICAgIHZhbGlkYXRlX3N1YnByb3RvY29sLAot
ICAgICAgICAgICAgICAgICAgICAgICAgICAnc2FtcGxlXHgyMHByb3RvY29sJykKLSAgICAgICAg
c2VsZi5hc3NlcnRSYWlzZXMoSGFuZHNoYWtlRXhjZXB0aW9uLAotICAgICAgICAgICAgICAgICAg
ICAgICAgICB2YWxpZGF0ZV9zdWJwcm90b2NvbCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
J3NhbXBsZVx4N2Zwcm90b2NvbCcpCi0gICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKEhhbmRzaGFr
ZUV4Y2VwdGlvbiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsaWRhdGVfc3VicHJvdG9j
b2wsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICMgIkphcGFuIiBpbiBKYXBhbmVzZQotICAg
ICAgICAgICAgICAgICAgICAgICAgICB1J1x1NjVlNVx1NjcyYycpCi0KLQotX1RFU1RfVE9LRU5f
RVhURU5TSU9OX0RBVEEgPSBbCi0gICAgKCdmb28nLCBbKCdmb28nLCBbXSldKSwKLSAgICAoJ2Zv
bzsgYmFyJywgWygnZm9vJywgWygnYmFyJywgTm9uZSldKV0pLAotICAgICgnZm9vOyBiYXI9YmF6
JywgWygnZm9vJywgWygnYmFyJywgJ2JheicpXSldKSwKLSAgICAoJ2ZvbzsgYmFyPWJhejsgY2Fy
PWNkcicsIFsoJ2ZvbycsIFsoJ2JhcicsICdiYXonKSwgKCdjYXInLCAnY2RyJyldKV0pLAotICAg
ICgnZm9vOyBiYXI9YmF6LCBjYXI7IGNkcicsCi0gICAgIFsoJ2ZvbycsIFsoJ2JhcicsICdiYXon
KV0pLCAoJ2NhcicsIFsoJ2NkcicsIE5vbmUpXSldKSwKLSAgICAoJ2EsIGIsIGMsIGQnLAotICAg
ICBbKCdhJywgW10pLCAoJ2InLCBbXSksICgnYycsIFtdKSwgKCdkJywgW10pXSksCi0gICAgXQot
Ci0KLV9URVNUX1FVT1RFRF9FWFRFTlNJT05fREFUQSA9IFsKLSAgICAoJ2ZvbzsgYmFyPSIiJywg
WygnZm9vJywgWygnYmFyJywgJycpXSldKSwKLSAgICAoJ2ZvbzsgYmFyPSIgYmF6ICInLCBbKCdm
b28nLCBbKCdiYXInLCAnIGJheiAnKV0pXSksCi0gICAgKCdmb287IGJhcj0iLGJhejsiJywgWygn
Zm9vJywgWygnYmFyJywgJyxiYXo7JyldKV0pLAotICAgICgnZm9vOyBiYXI9IlxcXHJcXFxuYmF6
IicsIFsoJ2ZvbycsIFsoJ2JhcicsICdcclxuYmF6JyldKV0pLAotICAgICgnZm9vOyBiYXI9Ilxc
ImJheiInLCBbKCdmb28nLCBbKCdiYXInLCAnImJheicpXSldKSwKLSAgICAoJ2ZvbzsgYmFyPSJc
eGJiYmF6IicsIFsoJ2ZvbycsIFsoJ2JhcicsICdceGJiYmF6JyldKV0pLAotICAgIF0KLQotCi1f
VEVTVF9SRURVTkRBTlRfVE9LRU5fRVhURU5TSU9OX0RBVEEgPSBbCi0gICAgKCdmb28gXHQgJywg
WygnZm9vJywgW10pXSksCi0gICAgKCdmb287IFxyXG4gYmFyJywgWygnZm9vJywgWygnYmFyJywg
Tm9uZSldKV0pLAotICAgICgnZm9vOyBiYXI9XHJcbiBcclxuIGJheicsIFsoJ2ZvbycsIFsoJ2Jh
cicsICdiYXonKV0pXSksCi0gICAgKCdmb28gO2JhciA9IGJheiAnLCBbKCdmb28nLCBbKCdiYXIn
LCAnYmF6JyldKV0pLAotICAgICgnZm9vLGJhciwsYmF6JywgWygnZm9vJywgW10pLCAoJ2Jhcics
IFtdKSwgKCdiYXonLCBbXSldKSwKLSAgICBdCi0KLQotX1RFU1RfUkVEVU5EQU5UX1FVT1RFRF9F
WFRFTlNJT05fREFUQSA9IFsKLSAgICAoJ2ZvbzsgYmFyPSJcclxuIFxyXG4gYmF6IicsIFsoJ2Zv
bycsIFsoJ2JhcicsICcgIGJheicpXSldKSwKLSAgICBdCi0KLQotY2xhc3MgRXh0ZW5zaW9uc1Bh
cnNlclRlc3QodW5pdHRlc3QuVGVzdENhc2UpOgotCi0gICAgZGVmIF92ZXJpZnlfZXh0ZW5zaW9u
X2xpc3Qoc2VsZiwgZXhwZWN0ZWRfbGlzdCwgYWN0dWFsX2xpc3QpOgotICAgICAgICAiIiJWZXJp
ZmllcyB0aGF0IEV4dGVuc2lvblBhcmFtZXRlciBvYmplY3RzIGluIGFjdHVhbF9saXN0IGhhdmUg
dGhlCi0gICAgICAgIHNhbWUgbWVtYmVycyBhcyBleHRlbnNpb24gZGVmaW5pdGlvbnMgaW4gZXhw
ZWN0ZWRfbGlzdC4gRXh0ZW5zaW9uCi0gICAgICAgIGRlZmluaXRpb24gdXNlZCBpbiB0aGlzIHRl
c3QgaXMgYSBwYWlyIG9mIGFuIGV4dGVuc2lvbiBuYW1lIGFuZCBhCi0gICAgICAgIHBhcmFtZXRl
ciBkaWN0aW9uYXJ5LgotICAgICAgICAiIiIKLQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGxl
bihleHBlY3RlZF9saXN0KSwgbGVuKGFjdHVhbF9saXN0KSkKLSAgICAgICAgZm9yIGV4cGVjdGVk
LCBhY3R1YWwgaW4gemlwKGV4cGVjdGVkX2xpc3QsIGFjdHVhbF9saXN0KToKLSAgICAgICAgICAg
IChuYW1lLCBwYXJhbWV0ZXJzKSA9IGV4cGVjdGVkCi0gICAgICAgICAgICBzZWxmLmFzc2VydEVx
dWFsKG5hbWUsIGFjdHVhbC5fbmFtZSkKLSAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocGFy
YW1ldGVycywgYWN0dWFsLl9wYXJhbWV0ZXJzKQotCi0gICAgZGVmIHRlc3RfcGFyc2Uoc2VsZik6
Ci0gICAgICAgIGZvciBmb3JtYXR0ZWRfc3RyaW5nLCBkZWZpbml0aW9uIGluIF9URVNUX1RPS0VO
X0VYVEVOU0lPTl9EQVRBOgotICAgICAgICAgICAgc2VsZi5fdmVyaWZ5X2V4dGVuc2lvbl9saXN0
KAotICAgICAgICAgICAgICAgIGRlZmluaXRpb24sIHBhcnNlX2V4dGVuc2lvbnMoZm9ybWF0dGVk
X3N0cmluZykpCi0KLSAgICBkZWYgdGVzdF9wYXJzZV9xdW90ZWRfZGF0YShzZWxmKToKLSAgICAg
ICAgZm9yIGZvcm1hdHRlZF9zdHJpbmcsIGRlZmluaXRpb24gaW4gX1RFU1RfUVVPVEVEX0VYVEVO
U0lPTl9EQVRBOgotICAgICAgICAgICAgc2VsZi5fdmVyaWZ5X2V4dGVuc2lvbl9saXN0KAotICAg
ICAgICAgICAgICAgIGRlZmluaXRpb24sIHBhcnNlX2V4dGVuc2lvbnMoZm9ybWF0dGVkX3N0cmlu
ZykpCi0KLSAgICBkZWYgdGVzdF9wYXJzZV9yZWR1bmRhbnRfZGF0YShzZWxmKToKLSAgICAgICAg
Zm9yIChmb3JtYXR0ZWRfc3RyaW5nLAotICAgICAgICAgICAgIGRlZmluaXRpb24pIGluIF9URVNU
X1JFRFVOREFOVF9UT0tFTl9FWFRFTlNJT05fREFUQToKLSAgICAgICAgICAgIHNlbGYuX3Zlcmlm
eV9leHRlbnNpb25fbGlzdCgKLSAgICAgICAgICAgICAgICBkZWZpbml0aW9uLCBwYXJzZV9leHRl
bnNpb25zKGZvcm1hdHRlZF9zdHJpbmcpKQotCi0gICAgZGVmIHRlc3RfcGFyc2VfcmVkdW5kYW50
X3F1b3RlZF9kYXRhKHNlbGYpOgotICAgICAgICBmb3IgKGZvcm1hdHRlZF9zdHJpbmcsCi0gICAg
ICAgICAgICAgZGVmaW5pdGlvbikgaW4gX1RFU1RfUkVEVU5EQU5UX1FVT1RFRF9FWFRFTlNJT05f
REFUQToKLSAgICAgICAgICAgIHNlbGYuX3ZlcmlmeV9leHRlbnNpb25fbGlzdCgKLSAgICAgICAg
ICAgICAgICBkZWZpbml0aW9uLCBwYXJzZV9leHRlbnNpb25zKGZvcm1hdHRlZF9zdHJpbmcpKQot
Ci0gICAgZGVmIHRlc3RfcGFyc2VfYmFkX2RhdGEoc2VsZik6Ci0gICAgICAgIF9URVNUX0JBRF9F
WFRFTlNJT05fREFUQSA9IFsKLSAgICAgICAgICAgICgnZm9vOyA7ICcpLAotICAgICAgICAgICAg
KCdmb287IGEgYScpLAotICAgICAgICAgICAgKCdmb28gZm9vJyksCi0gICAgICAgICAgICAoJyws
LCcpLAotICAgICAgICAgICAgKCdmb287IGJhcj0nKSwKLSAgICAgICAgICAgICgnZm9vOyBiYXI9
ImhvZ2UnKSwKLSAgICAgICAgICAgICgnZm9vOyBiYXI9ImFcciInKSwKLSAgICAgICAgICAgICgn
Zm9vOyBiYXI9IlxcXHhmZiInKSwKLSAgICAgICAgICAgICgnZm9vOyBiYXI9XHJhJyksCi0gICAg
ICAgICAgICBdCi0KLSAgICAgICAgZm9yIGZvcm1hdHRlZF9zdHJpbmcgaW4gX1RFU1RfQkFEX0VY
VEVOU0lPTl9EQVRBOgotICAgICAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoCi0gICAgICAgICAg
ICAgICAgRXh0ZW5zaW9uUGFyc2luZ0V4Y2VwdGlvbiwgcGFyc2VfZXh0ZW5zaW9ucywgZm9ybWF0
dGVkX3N0cmluZykKLQotCi1jbGFzcyBGb3JtYXRFeHRlbnNpb25zVGVzdCh1bml0dGVzdC5UZXN0
Q2FzZSk6Ci0KLSAgICBkZWYgdGVzdF9mb3JtYXRfZXh0ZW5zaW9ucyhzZWxmKToKLSAgICAgICAg
Zm9yIGZvcm1hdHRlZF9zdHJpbmcsIGRlZmluaXRpb25zIGluIF9URVNUX1RPS0VOX0VYVEVOU0lP
Tl9EQVRBOgotICAgICAgICAgICAgZXh0ZW5zaW9ucyA9IFtdCi0gICAgICAgICAgICBmb3IgZGVm
aW5pdGlvbiBpbiBkZWZpbml0aW9uczoKLSAgICAgICAgICAgICAgICAobmFtZSwgcGFyYW1ldGVy
cykgPSBkZWZpbml0aW9uCi0gICAgICAgICAgICAgICAgZXh0ZW5zaW9uID0gRXh0ZW5zaW9uUGFy
YW1ldGVyKG5hbWUpCi0gICAgICAgICAgICAgICAgZXh0ZW5zaW9uLl9wYXJhbWV0ZXJzID0gcGFy
YW1ldGVycwotICAgICAgICAgICAgICAgIGV4dGVuc2lvbnMuYXBwZW5kKGV4dGVuc2lvbikKLSAg
ICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoCi0gICAgICAgICAgICAgICAgZm9ybWF0dGVkX3N0
cmluZywgZm9ybWF0X2V4dGVuc2lvbnMoZXh0ZW5zaW9ucykpCi0KLQotaWYgX19uYW1lX18gPT0g
J19fbWFpbl9fJzoKLSAgICB1bml0dGVzdC5tYWluKCkKLQotCi0jIHZpOnN0cz00IHN3PTQgZXQK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvcHl3ZWJzb2NrZXQvc3JjL3Rlc3QvdGVzdF9oYW5kc2hha2VfaHliaS5weSBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQv
c3JjL3Rlc3QvdGVzdF9oYW5kc2hha2VfaHliaS5weQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggNmM4NzEzODIzMGIzMDNiZjM4ZGM0Y2Y4NGMxMjkwYTg4ZjdiZDhkMi4uMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3NyYy90ZXN0L3Rlc3Rf
aGFuZHNoYWtlX2h5YmkucHkKKysrIC9kZXYvbnVsbApAQCAtMSw1MzQgKzAsMCBAQAotIyEvdXNy
L2Jpbi9lbnYgcHl0aG9uCi0jCi0jIENvcHlyaWdodCAyMDExLCBHb29nbGUgSW5jLgotIyBBbGwg
cmlnaHRzIHJlc2VydmVkLgotIwotIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSMgbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQotIyBtZXQ6
Ci0jCi0jICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0Ci0jIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSMgICAgICogUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQotIyBjb3B5cmlnaHQgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCi0jIGlu
IHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUKLSMgZGlzdHJpYnV0aW9uLgotIyAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJ
bmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCi0jIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBl
bmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCi0jIHRoaXMgc29mdHdhcmUg
d2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0jCi0jIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRP
UlMKLSMgIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QKLSMgTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCi0jIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCi0jIE9XTkVSIE9S
IENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLAotIyBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UCi0jIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAotIyBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKLSMgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVAotIyAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UKLSMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLQotCi0iIiJUZXN0cyBmb3IgaGFu
ZHNoYWtlIG1vZHVsZS4iIiIKLQotCi1pbXBvcnQgdW5pdHRlc3QKLQotaW1wb3J0IHNldF9zeXNf
cGF0aCAgIyBVcGRhdGUgc3lzLnBhdGggdG8gbG9jYXRlIG1vZF9weXdlYnNvY2tldCBtb2R1bGUu
Ci1mcm9tIG1vZF9weXdlYnNvY2tldCBpbXBvcnQgY29tbW9uCi1mcm9tIG1vZF9weXdlYnNvY2tl
dC5oYW5kc2hha2UuX2Jhc2UgaW1wb3J0IEFib3J0ZWRCeVVzZXJFeGNlcHRpb24KLWZyb20gbW9k
X3B5d2Vic29ja2V0LmhhbmRzaGFrZS5fYmFzZSBpbXBvcnQgSGFuZHNoYWtlRXhjZXB0aW9uCi1m
cm9tIG1vZF9weXdlYnNvY2tldC5oYW5kc2hha2UuX2Jhc2UgaW1wb3J0IFZlcnNpb25FeGNlcHRp
b24KLWZyb20gbW9kX3B5d2Vic29ja2V0LmhhbmRzaGFrZS5oeWJpIGltcG9ydCBIYW5kc2hha2Vy
Ci0KLWltcG9ydCBtb2NrCi0KLQotY2xhc3MgUmVxdWVzdERlZmluaXRpb24ob2JqZWN0KToKLSAg
ICAiIiJBIGNsYXNzIGZvciBob2xkaW5nIGRhdGEgZm9yIGNvbnN0cnVjdGluZyBvcGVuaW5nIGhh
bmRzaGFrZSBzdHJpbmdzIGZvcgotICAgIHRlc3RpbmcgdGhlIG9wZW5pbmcgaGFuZHNoYWtlIHBy
b2Nlc3Nvci4KLSAgICAiIiIKLQotICAgIGRlZiBfX2luaXRfXyhzZWxmLCBtZXRob2QsIHVyaSwg
aGVhZGVycyk6Ci0gICAgICAgIHNlbGYubWV0aG9kID0gbWV0aG9kCi0gICAgICAgIHNlbGYudXJp
ID0gdXJpCi0gICAgICAgIHNlbGYuaGVhZGVycyA9IGhlYWRlcnMKLQotCi1kZWYgX2NyZWF0ZV9n
b29kX3JlcXVlc3RfZGVmKCk6Ci0gICAgcmV0dXJuIFJlcXVlc3REZWZpbml0aW9uKAotICAgICAg
ICAnR0VUJywgJy9kZW1vJywKLSAgICAgICAgeydIb3N0JzogJ3NlcnZlci5leGFtcGxlLmNvbScs
Ci0gICAgICAgICAnVXBncmFkZSc6ICd3ZWJzb2NrZXQnLAotICAgICAgICAgJ0Nvbm5lY3Rpb24n
OiAnVXBncmFkZScsCi0gICAgICAgICAnU2VjLVdlYlNvY2tldC1LZXknOiAnZEdobElITmhiWEJz
WlNCdWIyNWpaUT09JywKLSAgICAgICAgICdTZWMtV2ViU29ja2V0LVZlcnNpb24nOiAnMTMnLAot
ICAgICAgICAgJ09yaWdpbic6ICdodHRwOi8vZXhhbXBsZS5jb20nfSkKLQotCi1kZWYgX2NyZWF0
ZV9yZXF1ZXN0KHJlcXVlc3RfZGVmKToKLSAgICBjb25uID0gbW9jay5Nb2NrQ29ubignJykKLSAg
ICByZXR1cm4gbW9jay5Nb2NrUmVxdWVzdCgKLSAgICAgICAgbWV0aG9kPXJlcXVlc3RfZGVmLm1l
dGhvZCwKLSAgICAgICAgdXJpPXJlcXVlc3RfZGVmLnVyaSwKLSAgICAgICAgaGVhZGVyc19pbj1y
ZXF1ZXN0X2RlZi5oZWFkZXJzLAotICAgICAgICBjb25uZWN0aW9uPWNvbm4pCi0KLQotZGVmIF9j
cmVhdGVfaGFuZHNoYWtlcihyZXF1ZXN0KToKLSAgICBoYW5kc2hha2VyID0gSGFuZHNoYWtlcihy
ZXF1ZXN0LCBtb2NrLk1vY2tEaXNwYXRjaGVyKCkpCi0gICAgcmV0dXJuIGhhbmRzaGFrZXIKLQot
Ci1jbGFzcyBTdWJwcm90b2NvbENob29zaW5nRGlzcGF0Y2hlcihvYmplY3QpOgotICAgICIiIkEg
ZGlzcGF0Y2hlciBmb3IgdGVzdGluZy4gVGhpcyBkaXNwYXRjaGVyIHNldHMgdGhlIGktdGggc3Vi
cHJvdG9jb2wKLSAgICBvZiByZXF1ZXN0ZWQgb25lcyB0byB3c19wcm90b2NvbCB3aGVyZSBpIGlz
IGdpdmVuIG9uIGNvbnN0cnVjdGlvbiBhcyBpbmRleAotICAgIGFyZ3VtZW50LiBJZiBpbmRleCBp
cyBuZWdhdGl2ZSwgZGVmYXVsdF92YWx1ZSB3aWxsIGJlIHNldCB0byB3c19wcm90b2NvbC4KLSAg
ICAiIiIKLQotICAgIGRlZiBfX2luaXRfXyhzZWxmLCBpbmRleCwgZGVmYXVsdF92YWx1ZT1Ob25l
KToKLSAgICAgICAgc2VsZi5pbmRleCA9IGluZGV4Ci0gICAgICAgIHNlbGYuZGVmYXVsdF92YWx1
ZSA9IGRlZmF1bHRfdmFsdWUKLQotICAgIGRlZiBkb19leHRyYV9oYW5kc2hha2Uoc2VsZiwgY29u
bl9jb250ZXh0KToKLSAgICAgICAgaWYgc2VsZi5pbmRleCA+PSAwOgotICAgICAgICAgICAgY29u
bl9jb250ZXh0LndzX3Byb3RvY29sID0gY29ubl9jb250ZXh0LndzX3JlcXVlc3RlZF9wcm90b2Nv
bHNbCi0gICAgICAgICAgICAgICAgc2VsZi5pbmRleF0KLSAgICAgICAgZWxzZToKLSAgICAgICAg
ICAgIGNvbm5fY29udGV4dC53c19wcm90b2NvbCA9IHNlbGYuZGVmYXVsdF92YWx1ZQotCi0gICAg
ZGVmIHRyYW5zZmVyX2RhdGEoc2VsZiwgY29ubl9jb250ZXh0KToKLSAgICAgICAgcGFzcwotCi0K
LWNsYXNzIEhhbmRzaGFrZUFib3J0ZWRFeGNlcHRpb24oRXhjZXB0aW9uKToKLSAgICBwYXNzCi0K
LQotY2xhc3MgQWJvcnRpbmdEaXNwYXRjaGVyKG9iamVjdCk6Ci0gICAgIiIiQSBkaXNwYXRjaGVy
IGZvciB0ZXN0aW5nLiBUaGlzIGRpc3BhdGNoZXIgcmFpc2VzIGFuIGV4Y2VwdGlvbiBpbgotICAg
IGRvX2V4dHJhX2hhbmRzaGFrZSB0byByZWplY3QgdGhlIHJlcXVlc3QuCi0gICAgIiIiCi0KLSAg
ICBkZWYgZG9fZXh0cmFfaGFuZHNoYWtlKHNlbGYsIGNvbm5fY29udGV4dCk6Ci0gICAgICAgIHJh
aXNlIEhhbmRzaGFrZUFib3J0ZWRFeGNlcHRpb24oJ0FuIGV4Y2VwdGlvbiB0byByZWplY3QgdGhl
IHJlcXVlc3QnKQotCi0gICAgZGVmIHRyYW5zZmVyX2RhdGEoc2VsZiwgY29ubl9jb250ZXh0KToK
LSAgICAgICAgcGFzcwotCi0KLWNsYXNzIEFib3J0ZWRCeVVzZXJEaXNwYXRjaGVyKG9iamVjdCk6
Ci0gICAgIiIiQSBkaXNwYXRjaGVyIGZvciB0ZXN0aW5nLiBUaGlzIGRpc3BhdGNoZXIgcmFpc2Vz
IGFuCi0gICAgQWJvcnRlZEJ5VXNlckV4Y2VwdGlvbiBpbiBkb19leHRyYV9oYW5kc2hha2UgdG8g
cmVqZWN0IHRoZSByZXF1ZXN0LgotICAgICIiIgotCi0gICAgZGVmIGRvX2V4dHJhX2hhbmRzaGFr
ZShzZWxmLCBjb25uX2NvbnRleHQpOgotICAgICAgICByYWlzZSBBYm9ydGVkQnlVc2VyRXhjZXB0
aW9uKCdBbiBBYm9ydGVkQnlVc2VyRXhjZXB0aW9uIHRvIHJlamVjdCB0aGUgJwotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICdyZXF1ZXN0JykKLQotICAgIGRlZiB0cmFuc2Zl
cl9kYXRhKHNlbGYsIGNvbm5fY29udGV4dCk6Ci0gICAgICAgIHBhc3MKLQotCi1fRVhQRUNURURf
UkVTUE9OU0UgPSAoCi0gICAgJ0hUVFAvMS4xIDEwMSBTd2l0Y2hpbmcgUHJvdG9jb2xzXHJcbicK
LSAgICAnVXBncmFkZTogd2Vic29ja2V0XHJcbicKLSAgICAnQ29ubmVjdGlvbjogVXBncmFkZVxy
XG4nCi0gICAgJ1NlYy1XZWJTb2NrZXQtQWNjZXB0OiBzM3BQTE1CaVR4YVE5a1lHenpoWlJiSyt4
T289XHJcblxyXG4nKQotCi0KLWNsYXNzIEhhbmRzaGFrZXJUZXN0KHVuaXR0ZXN0LlRlc3RDYXNl
KToKLSAgICAiIiJBIHVuaXR0ZXN0IGZvciBkcmFmdC1pZXRmLWh5YmktdGhld2Vic29ja2V0cHJv
dG9jb2wtMDYgYW5kIGxhdGVyCi0gICAgaGFuZHNoYWtlIHByb2Nlc3Nvci4KLSAgICAiIiIKLQot
ICAgIGRlZiB0ZXN0X2RvX2hhbmRzaGFrZShzZWxmKToKLSAgICAgICAgcmVxdWVzdCA9IF9jcmVh
dGVfcmVxdWVzdChfY3JlYXRlX2dvb2RfcmVxdWVzdF9kZWYoKSkKLSAgICAgICAgZGlzcGF0Y2hl
ciA9IG1vY2suTW9ja0Rpc3BhdGNoZXIoKQotICAgICAgICBoYW5kc2hha2VyID0gSGFuZHNoYWtl
cihyZXF1ZXN0LCBkaXNwYXRjaGVyKQotICAgICAgICBoYW5kc2hha2VyLmRvX2hhbmRzaGFrZSgp
Ci0KLSAgICAgICAgc2VsZi5hc3NlcnRUcnVlKGRpc3BhdGNoZXIuZG9fZXh0cmFfaGFuZHNoYWtl
X2NhbGxlZCkKLQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKAotICAgICAgICAgICAgX0VYUEVD
VEVEX1JFU1BPTlNFLCByZXF1ZXN0LmNvbm5lY3Rpb24ud3JpdHRlbl9kYXRhKCkpCi0gICAgICAg
IHNlbGYuYXNzZXJ0RXF1YWwoJy9kZW1vJywgcmVxdWVzdC53c19yZXNvdXJjZSkKLSAgICAgICAg
c2VsZi5hc3NlcnRFcXVhbCgnaHR0cDovL2V4YW1wbGUuY29tJywgcmVxdWVzdC53c19vcmlnaW4p
Ci0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoTm9uZSwgcmVxdWVzdC53c19wcm90b2NvbCkKLSAg
ICAgICAgc2VsZi5hc3NlcnRFcXVhbChOb25lLCByZXF1ZXN0LndzX2V4dGVuc2lvbnMpCi0gICAg
ICAgIHNlbGYuYXNzZXJ0RXF1YWwoY29tbW9uLlZFUlNJT05fSFlCSV9MQVRFU1QsIHJlcXVlc3Qu
d3NfdmVyc2lvbikKLQotICAgIGRlZiB0ZXN0X2RvX2hhbmRzaGFrZV93aXRoX2V4dHJhX2hlYWRl
cnMoc2VsZik6Ci0gICAgICAgIHJlcXVlc3RfZGVmID0gX2NyZWF0ZV9nb29kX3JlcXVlc3RfZGVm
KCkKLSAgICAgICAgIyBBZGQgaGVhZGVycyBub3QgcmVsYXRlZCB0byBXZWJTb2NrZXQgb3Blbmlu
ZyBoYW5kc2hha2UuCi0gICAgICAgIHJlcXVlc3RfZGVmLmhlYWRlcnNbJ0Zvb0tleSddID0gJ0Jh
clZhbHVlJwotICAgICAgICByZXF1ZXN0X2RlZi5oZWFkZXJzWydFbXB0eUtleSddID0gJycKLQot
ICAgICAgICByZXF1ZXN0ID0gX2NyZWF0ZV9yZXF1ZXN0KHJlcXVlc3RfZGVmKQotICAgICAgICBo
YW5kc2hha2VyID0gX2NyZWF0ZV9oYW5kc2hha2VyKHJlcXVlc3QpCi0gICAgICAgIGhhbmRzaGFr
ZXIuZG9faGFuZHNoYWtlKCkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgKLSAgICAgICAgICAg
IF9FWFBFQ1RFRF9SRVNQT05TRSwgcmVxdWVzdC5jb25uZWN0aW9uLndyaXR0ZW5fZGF0YSgpKQot
Ci0gICAgZGVmIHRlc3RfZG9faGFuZHNoYWtlX3dpdGhfY2FwaXRhbGl6ZWRfdmFsdWUoc2VsZik6
Ci0gICAgICAgIHJlcXVlc3RfZGVmID0gX2NyZWF0ZV9nb29kX3JlcXVlc3RfZGVmKCkKLSAgICAg
ICAgcmVxdWVzdF9kZWYuaGVhZGVyc1sndXBncmFkZSddID0gJ1dFQlNPQ0tFVCcKLQotICAgICAg
ICByZXF1ZXN0ID0gX2NyZWF0ZV9yZXF1ZXN0KHJlcXVlc3RfZGVmKQotICAgICAgICBoYW5kc2hh
a2VyID0gX2NyZWF0ZV9oYW5kc2hha2VyKHJlcXVlc3QpCi0gICAgICAgIGhhbmRzaGFrZXIuZG9f
aGFuZHNoYWtlKCkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgKLSAgICAgICAgICAgIF9FWFBF
Q1RFRF9SRVNQT05TRSwgcmVxdWVzdC5jb25uZWN0aW9uLndyaXR0ZW5fZGF0YSgpKQotCi0gICAg
ICAgIHJlcXVlc3RfZGVmID0gX2NyZWF0ZV9nb29kX3JlcXVlc3RfZGVmKCkKLSAgICAgICAgcmVx
dWVzdF9kZWYuaGVhZGVyc1snQ29ubmVjdGlvbiddID0gJ1VQR1JBREUnCi0KLSAgICAgICAgcmVx
dWVzdCA9IF9jcmVhdGVfcmVxdWVzdChyZXF1ZXN0X2RlZikKLSAgICAgICAgaGFuZHNoYWtlciA9
IF9jcmVhdGVfaGFuZHNoYWtlcihyZXF1ZXN0KQotICAgICAgICBoYW5kc2hha2VyLmRvX2hhbmRz
aGFrZSgpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoCi0gICAgICAgICAgICBfRVhQRUNURURf
UkVTUE9OU0UsIHJlcXVlc3QuY29ubmVjdGlvbi53cml0dGVuX2RhdGEoKSkKLQotICAgIGRlZiB0
ZXN0X2RvX2hhbmRzaGFrZV93aXRoX211bHRpcGxlX2Nvbm5lY3Rpb25fdmFsdWVzKHNlbGYpOgot
ICAgICAgICByZXF1ZXN0X2RlZiA9IF9jcmVhdGVfZ29vZF9yZXF1ZXN0X2RlZigpCi0gICAgICAg
IHJlcXVlc3RfZGVmLmhlYWRlcnNbJ0Nvbm5lY3Rpb24nXSA9ICdVcGdyYWRlLCBrZWVwLWFsaXZl
LCAsICcKLQotICAgICAgICByZXF1ZXN0ID0gX2NyZWF0ZV9yZXF1ZXN0KHJlcXVlc3RfZGVmKQot
ICAgICAgICBoYW5kc2hha2VyID0gX2NyZWF0ZV9oYW5kc2hha2VyKHJlcXVlc3QpCi0gICAgICAg
IGhhbmRzaGFrZXIuZG9faGFuZHNoYWtlKCkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgKLSAg
ICAgICAgICAgIF9FWFBFQ1RFRF9SRVNQT05TRSwgcmVxdWVzdC5jb25uZWN0aW9uLndyaXR0ZW5f
ZGF0YSgpKQotCi0gICAgZGVmIHRlc3RfYWJvcnRpbmdfaGFuZHNoYWtlKHNlbGYpOgotICAgICAg
ICBoYW5kc2hha2VyID0gSGFuZHNoYWtlcigKLSAgICAgICAgICAgIF9jcmVhdGVfcmVxdWVzdChf
Y3JlYXRlX2dvb2RfcmVxdWVzdF9kZWYoKSksCi0gICAgICAgICAgICBBYm9ydGluZ0Rpc3BhdGNo
ZXIoKSkKLSAgICAgICAgIyBkb19leHRyYV9oYW5kc2hha2UgcmFpc2VzIGFuIGV4Y2VwdGlvbi4g
Q2hlY2sgdGhhdCBpdCdzIG5vdCBjYXVnaHQgYnkKLSAgICAgICAgIyBkb19oYW5kc2hha2UuCi0g
ICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKEhhbmRzaGFrZUFib3J0ZWRFeGNlcHRpb24sIGhhbmRz
aGFrZXIuZG9faGFuZHNoYWtlKQotCi0gICAgZGVmIHRlc3RfZG9faGFuZHNoYWtlX3dpdGhfcHJv
dG9jb2woc2VsZik6Ci0gICAgICAgIHJlcXVlc3RfZGVmID0gX2NyZWF0ZV9nb29kX3JlcXVlc3Rf
ZGVmKCkKLSAgICAgICAgcmVxdWVzdF9kZWYuaGVhZGVyc1snU2VjLVdlYlNvY2tldC1Qcm90b2Nv
bCddID0gJ2NoYXQsIHN1cGVyY2hhdCcKLQotICAgICAgICByZXF1ZXN0ID0gX2NyZWF0ZV9yZXF1
ZXN0KHJlcXVlc3RfZGVmKQotICAgICAgICBoYW5kc2hha2VyID0gSGFuZHNoYWtlcihyZXF1ZXN0
LCBTdWJwcm90b2NvbENob29zaW5nRGlzcGF0Y2hlcigwKSkKLSAgICAgICAgaGFuZHNoYWtlci5k
b19oYW5kc2hha2UoKQotCi0gICAgICAgIEVYUEVDVEVEX1JFU1BPTlNFID0gKAotICAgICAgICAg
ICAgJ0hUVFAvMS4xIDEwMSBTd2l0Y2hpbmcgUHJvdG9jb2xzXHJcbicKLSAgICAgICAgICAgICdV
cGdyYWRlOiB3ZWJzb2NrZXRcclxuJwotICAgICAgICAgICAgJ0Nvbm5lY3Rpb246IFVwZ3JhZGVc
clxuJwotICAgICAgICAgICAgJ1NlYy1XZWJTb2NrZXQtQWNjZXB0OiBzM3BQTE1CaVR4YVE5a1lH
enpoWlJiSyt4T289XHJcbicKLSAgICAgICAgICAgICdTZWMtV2ViU29ja2V0LVByb3RvY29sOiBj
aGF0XHJcblxyXG4nKQotCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoRVhQRUNURURfUkVTUE9O
U0UsIHJlcXVlc3QuY29ubmVjdGlvbi53cml0dGVuX2RhdGEoKSkKLSAgICAgICAgc2VsZi5hc3Nl
cnRFcXVhbCgnY2hhdCcsIHJlcXVlc3Qud3NfcHJvdG9jb2wpCi0KLSAgICBkZWYgdGVzdF9kb19o
YW5kc2hha2VfcHJvdG9jb2xfbm90X2luX3JlcXVlc3RfYnV0X2luX3Jlc3BvbnNlKHNlbGYpOgot
ICAgICAgICByZXF1ZXN0X2RlZiA9IF9jcmVhdGVfZ29vZF9yZXF1ZXN0X2RlZigpCi0gICAgICAg
IHJlcXVlc3QgPSBfY3JlYXRlX3JlcXVlc3QocmVxdWVzdF9kZWYpCi0gICAgICAgIGhhbmRzaGFr
ZXIgPSBIYW5kc2hha2VyKAotICAgICAgICAgICAgcmVxdWVzdCwgU3VicHJvdG9jb2xDaG9vc2lu
Z0Rpc3BhdGNoZXIoLTEsICdmb29iYXInKSkKLSAgICAgICAgIyBObyByZXF1ZXN0IGhhcyBiZWVu
IG1hZGUgYnV0IHdzX3Byb3RvY29sIGlzIHNldC4gSGFuZHNoYWtlRXhjZXB0aW9uCi0gICAgICAg
ICMgbXVzdCBiZSByYWlzZWQuCi0gICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKEhhbmRzaGFrZUV4
Y2VwdGlvbiwgaGFuZHNoYWtlci5kb19oYW5kc2hha2UpCi0KLSAgICBkZWYgdGVzdF9kb19oYW5k
c2hha2Vfd2l0aF9wcm90b2NvbF9ub19wcm90b2NvbF9zZWxlY3Rpb24oc2VsZik6Ci0gICAgICAg
IHJlcXVlc3RfZGVmID0gX2NyZWF0ZV9nb29kX3JlcXVlc3RfZGVmKCkKLSAgICAgICAgcmVxdWVz
dF9kZWYuaGVhZGVyc1snU2VjLVdlYlNvY2tldC1Qcm90b2NvbCddID0gJ2NoYXQsIHN1cGVyY2hh
dCcKLQotICAgICAgICByZXF1ZXN0ID0gX2NyZWF0ZV9yZXF1ZXN0KHJlcXVlc3RfZGVmKQotICAg
ICAgICBoYW5kc2hha2VyID0gX2NyZWF0ZV9oYW5kc2hha2VyKHJlcXVlc3QpCi0gICAgICAgICMg
d3NfcHJvdG9jb2wgaXMgbm90IHNldC4gSGFuZHNoYWtlRXhjZXB0aW9uIG11c3QgYmUgcmFpc2Vk
LgotICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhIYW5kc2hha2VFeGNlcHRpb24sIGhhbmRzaGFr
ZXIuZG9faGFuZHNoYWtlKQotCi0gICAgZGVmIHRlc3RfZG9faGFuZHNoYWtlX3dpdGhfZXh0ZW5z
aW9ucyhzZWxmKToKLSAgICAgICAgcmVxdWVzdF9kZWYgPSBfY3JlYXRlX2dvb2RfcmVxdWVzdF9k
ZWYoKQotICAgICAgICByZXF1ZXN0X2RlZi5oZWFkZXJzWydTZWMtV2ViU29ja2V0LUV4dGVuc2lv
bnMnXSA9ICgKLSAgICAgICAgICAgICdwZXJtZXNzYWdlLWNvbXByZXNzOyBtZXRob2Q9ZGVmbGF0
ZSwgdW5rbm93bicpCi0KLSAgICAgICAgRVhQRUNURURfUkVTUE9OU0UgPSAoCi0gICAgICAgICAg
ICAnSFRUUC8xLjEgMTAxIFN3aXRjaGluZyBQcm90b2NvbHNcclxuJwotICAgICAgICAgICAgJ1Vw
Z3JhZGU6IHdlYnNvY2tldFxyXG4nCi0gICAgICAgICAgICAnQ29ubmVjdGlvbjogVXBncmFkZVxy
XG4nCi0gICAgICAgICAgICAnU2VjLVdlYlNvY2tldC1BY2NlcHQ6IHMzcFBMTUJpVHhhUTlrWUd6
emhaUmJLK3hPbz1cclxuJwotICAgICAgICAgICAgJ1NlYy1XZWJTb2NrZXQtRXh0ZW5zaW9uczog
cGVybWVzc2FnZS1jb21wcmVzczsgbWV0aG9kPWRlZmxhdGVcclxuJwotICAgICAgICAgICAgJ1xy
XG4nKQotCi0gICAgICAgIHJlcXVlc3QgPSBfY3JlYXRlX3JlcXVlc3QocmVxdWVzdF9kZWYpCi0g
ICAgICAgIGhhbmRzaGFrZXIgPSBfY3JlYXRlX2hhbmRzaGFrZXIocmVxdWVzdCkKLSAgICAgICAg
aGFuZHNoYWtlci5kb19oYW5kc2hha2UoKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKEVYUEVD
VEVEX1JFU1BPTlNFLCByZXF1ZXN0LmNvbm5lY3Rpb24ud3JpdHRlbl9kYXRhKCkpCi0gICAgICAg
IHNlbGYuYXNzZXJ0RXF1YWwoMSwgbGVuKHJlcXVlc3Qud3NfZXh0ZW5zaW9ucykpCi0gICAgICAg
IGV4dGVuc2lvbiA9IHJlcXVlc3Qud3NfZXh0ZW5zaW9uc1swXQotICAgICAgICBzZWxmLmFzc2Vy
dEVxdWFsKGNvbW1vbi5QRVJNRVNTQUdFX0NPTVBSRVNTSU9OX0VYVEVOU0lPTiwKLSAgICAgICAg
ICAgICAgICAgICAgICAgICBleHRlbnNpb24ubmFtZSgpKQotICAgICAgICBzZWxmLmFzc2VydEVx
dWFsKFsnbWV0aG9kJ10sIGV4dGVuc2lvbi5nZXRfcGFyYW1ldGVyX25hbWVzKCkpCi0gICAgICAg
IHNlbGYuYXNzZXJ0RXF1YWwoJ2RlZmxhdGUnLCBleHRlbnNpb24uZ2V0X3BhcmFtZXRlcl92YWx1
ZSgnbWV0aG9kJykpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoMSwgbGVuKHJlcXVlc3Qud3Nf
ZXh0ZW5zaW9uX3Byb2Nlc3NvcnMpKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGNvbW1vbi5Q
RVJNRVNTQUdFX0NPTVBSRVNTSU9OX0VYVEVOU0lPTiwKLSAgICAgICAgICAgICAgICAgICAgICAg
ICByZXF1ZXN0LndzX2V4dGVuc2lvbl9wcm9jZXNzb3JzWzBdLm5hbWUoKSkKLQotICAgIGRlZiB0
ZXN0X2RvX2hhbmRzaGFrZV93aXRoX3Blcm1lc3NhZ2VfY29tcHJlc3Moc2VsZik6Ci0gICAgICAg
IHJlcXVlc3RfZGVmID0gX2NyZWF0ZV9nb29kX3JlcXVlc3RfZGVmKCkKLSAgICAgICAgcmVxdWVz
dF9kZWYuaGVhZGVyc1snU2VjLVdlYlNvY2tldC1FeHRlbnNpb25zJ10gPSAoCi0gICAgICAgICAg
ICAncGVybWVzc2FnZS1jb21wcmVzczsgbWV0aG9kPWRlZmxhdGUnKQotICAgICAgICByZXF1ZXN0
ID0gX2NyZWF0ZV9yZXF1ZXN0KHJlcXVlc3RfZGVmKQotICAgICAgICBoYW5kc2hha2VyID0gX2Ny
ZWF0ZV9oYW5kc2hha2VyKHJlcXVlc3QpCi0gICAgICAgIGhhbmRzaGFrZXIuZG9faGFuZHNoYWtl
KCkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgxLCBsZW4ocmVxdWVzdC53c19leHRlbnNpb25z
KSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjb21tb24uUEVSTUVTU0FHRV9DT01QUkVTU0lP
Tl9FWFRFTlNJT04sCi0gICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdC53c19leHRlbnNp
b25zWzBdLm5hbWUoKSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgxLCBsZW4ocmVxdWVzdC53
c19leHRlbnNpb25fcHJvY2Vzc29ycykpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoY29tbW9u
LlBFUk1FU1NBR0VfQ09NUFJFU1NJT05fRVhURU5TSU9OLAotICAgICAgICAgICAgICAgICAgICAg
ICAgIHJlcXVlc3Qud3NfZXh0ZW5zaW9uX3Byb2Nlc3NvcnNbMF0ubmFtZSgpKQotCi0gICAgZGVm
IHRlc3RfZG9faGFuZHNoYWtlX3dpdGhfcXVvdGVkX2V4dGVuc2lvbnMoc2VsZik6Ci0gICAgICAg
IHJlcXVlc3RfZGVmID0gX2NyZWF0ZV9nb29kX3JlcXVlc3RfZGVmKCkKLSAgICAgICAgcmVxdWVz
dF9kZWYuaGVhZGVyc1snU2VjLVdlYlNvY2tldC1FeHRlbnNpb25zJ10gPSAoCi0gICAgICAgICAg
ICAncGVybWVzc2FnZS1jb21wcmVzczsgbWV0aG9kPWRlZmxhdGUsICwgJwotICAgICAgICAgICAg
J3Vua25vd247IGUgICA9ICAgICJtY14yIjsgbWE9IlxyXG4gICAgICBcXFxyZiAgIjsgcHY9bnJ0
JykKLQotICAgICAgICByZXF1ZXN0ID0gX2NyZWF0ZV9yZXF1ZXN0KHJlcXVlc3RfZGVmKQotICAg
ICAgICBoYW5kc2hha2VyID0gX2NyZWF0ZV9oYW5kc2hha2VyKHJlcXVlc3QpCi0gICAgICAgIGhh
bmRzaGFrZXIuZG9faGFuZHNoYWtlKCkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgyLCBsZW4o
cmVxdWVzdC53c19yZXF1ZXN0ZWRfZXh0ZW5zaW9ucykpCi0gICAgICAgIGZpcnN0X2V4dGVuc2lv
biA9IHJlcXVlc3Qud3NfcmVxdWVzdGVkX2V4dGVuc2lvbnNbMF0KLSAgICAgICAgc2VsZi5hc3Nl
cnRFcXVhbCgncGVybWVzc2FnZS1jb21wcmVzcycsIGZpcnN0X2V4dGVuc2lvbi5uYW1lKCkpCi0g
ICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoWydtZXRob2QnXSwgZmlyc3RfZXh0ZW5zaW9uLmdldF9w
YXJhbWV0ZXJfbmFtZXMoKSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnZGVmbGF0ZScsCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgZmlyc3RfZXh0ZW5zaW9uLmdldF9wYXJhbWV0ZXJfdmFs
dWUoJ21ldGhvZCcpKQotICAgICAgICBzZWNvbmRfZXh0ZW5zaW9uID0gcmVxdWVzdC53c19yZXF1
ZXN0ZWRfZXh0ZW5zaW9uc1sxXQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCd1bmtub3duJywg
c2Vjb25kX2V4dGVuc2lvbi5uYW1lKCkpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoCi0gICAg
ICAgICAgICBbJ2UnLCAnbWEnLCAncHYnXSwgc2Vjb25kX2V4dGVuc2lvbi5nZXRfcGFyYW1ldGVy
X25hbWVzKCkpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ21jXjInLCBzZWNvbmRfZXh0ZW5z
aW9uLmdldF9wYXJhbWV0ZXJfdmFsdWUoJ2UnKSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgn
IFxyZiAnLCBzZWNvbmRfZXh0ZW5zaW9uLmdldF9wYXJhbWV0ZXJfdmFsdWUoJ21hJykpCi0gICAg
ICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ25ydCcsIHNlY29uZF9leHRlbnNpb24uZ2V0X3BhcmFtZXRl
cl92YWx1ZSgncHYnKSkKLQotICAgIGRlZiB0ZXN0X2RvX2hhbmRzaGFrZV93aXRoX29wdGlvbmFs
X2hlYWRlcnMoc2VsZik6Ci0gICAgICAgIHJlcXVlc3RfZGVmID0gX2NyZWF0ZV9nb29kX3JlcXVl
c3RfZGVmKCkKLSAgICAgICAgcmVxdWVzdF9kZWYuaGVhZGVyc1snRW1wdHlWYWx1ZSddID0gJycK
LSAgICAgICAgcmVxdWVzdF9kZWYuaGVhZGVyc1snQUtleSddID0gJ0FWYWx1ZScKLQotICAgICAg
ICByZXF1ZXN0ID0gX2NyZWF0ZV9yZXF1ZXN0KHJlcXVlc3RfZGVmKQotICAgICAgICBoYW5kc2hh
a2VyID0gX2NyZWF0ZV9oYW5kc2hha2VyKHJlcXVlc3QpCi0gICAgICAgIGhhbmRzaGFrZXIuZG9f
aGFuZHNoYWtlKCkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgKLSAgICAgICAgICAgICdBVmFs
dWUnLCByZXF1ZXN0LmhlYWRlcnNfaW5bJ0FLZXknXSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVh
bCgKLSAgICAgICAgICAgICcnLCByZXF1ZXN0LmhlYWRlcnNfaW5bJ0VtcHR5VmFsdWUnXSkKLQot
ICAgIGRlZiB0ZXN0X2Fib3J0X2V4dHJhX2hhbmRzaGFrZShzZWxmKToKLSAgICAgICAgaGFuZHNo
YWtlciA9IEhhbmRzaGFrZXIoCi0gICAgICAgICAgICBfY3JlYXRlX3JlcXVlc3QoX2NyZWF0ZV9n
b29kX3JlcXVlc3RfZGVmKCkpLAotICAgICAgICAgICAgQWJvcnRlZEJ5VXNlckRpc3BhdGNoZXIo
KSkKLSAgICAgICAgIyBkb19leHRyYV9oYW5kc2hha2UgcmFpc2VzIGFuIEFib3J0ZWRCeVVzZXJF
eGNlcHRpb24uIENoZWNrIHRoYXQgaXQncwotICAgICAgICAjIG5vdCBjYXVnaHQgYnkgZG9faGFu
ZHNoYWtlLgotICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhBYm9ydGVkQnlVc2VyRXhjZXB0aW9u
LCBoYW5kc2hha2VyLmRvX2hhbmRzaGFrZSkKLQotICAgIGRlZiB0ZXN0X2RvX2hhbmRzaGFrZV93
aXRoX211eF9hbmRfZGVmbGF0ZV9mcmFtZShzZWxmKToKLSAgICAgICAgcmVxdWVzdF9kZWYgPSBf
Y3JlYXRlX2dvb2RfcmVxdWVzdF9kZWYoKQotICAgICAgICByZXF1ZXN0X2RlZi5oZWFkZXJzWydT
ZWMtV2ViU29ja2V0LUV4dGVuc2lvbnMnXSA9ICgnJXMsICVzJyAlICgKLSAgICAgICAgICAgICAg
ICBjb21tb24uTVVYX0VYVEVOU0lPTiwKLSAgICAgICAgICAgICAgICBjb21tb24uREVGTEFURV9G
UkFNRV9FWFRFTlNJT04pKQotICAgICAgICByZXF1ZXN0ID0gX2NyZWF0ZV9yZXF1ZXN0KHJlcXVl
c3RfZGVmKQotICAgICAgICBoYW5kc2hha2VyID0gX2NyZWF0ZV9oYW5kc2hha2VyKHJlcXVlc3Qp
Ci0gICAgICAgIGhhbmRzaGFrZXIuZG9faGFuZHNoYWtlKCkKLSAgICAgICAgIyBtdXggc2hvdWxk
IGJlIHJlamVjdGVkLgotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKDEsIGxlbihyZXF1ZXN0Lndz
X2V4dGVuc2lvbnMpKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGNvbW1vbi5ERUZMQVRFX0ZS
QU1FX0VYVEVOU0lPTiwKLSAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0LndzX2V4dGVu
c2lvbnNbMF0ubmFtZSgpKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKDIsIGxlbihyZXF1ZXN0
LndzX2V4dGVuc2lvbl9wcm9jZXNzb3JzKSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjb21t
b24uTVVYX0VYVEVOU0lPTiwKLSAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0LndzX2V4
dGVuc2lvbl9wcm9jZXNzb3JzWzBdLm5hbWUoKSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChj
b21tb24uREVGTEFURV9GUkFNRV9FWFRFTlNJT04sCi0gICAgICAgICAgICAgICAgICAgICAgICAg
cmVxdWVzdC53c19leHRlbnNpb25fcHJvY2Vzc29yc1sxXS5uYW1lKCkpCi0gICAgICAgIHNlbGYu
YXNzZXJ0RmFsc2UoaGFzYXR0cihyZXF1ZXN0LCAnbXV4X3Byb2Nlc3NvcicpKQotCi0gICAgZGVm
IHRlc3RfZG9faGFuZHNoYWtlX3dpdGhfZGVmbGF0ZV9mcmFtZV9hbmRfbXV4KHNlbGYpOgotICAg
ICAgICByZXF1ZXN0X2RlZiA9IF9jcmVhdGVfZ29vZF9yZXF1ZXN0X2RlZigpCi0gICAgICAgIHJl
cXVlc3RfZGVmLmhlYWRlcnNbJ1NlYy1XZWJTb2NrZXQtRXh0ZW5zaW9ucyddID0gKCclcywgJXMn
ICUgKAotICAgICAgICAgICAgICAgIGNvbW1vbi5ERUZMQVRFX0ZSQU1FX0VYVEVOU0lPTiwKLSAg
ICAgICAgICAgICAgICBjb21tb24uTVVYX0VYVEVOU0lPTikpCi0gICAgICAgIHJlcXVlc3QgPSBf
Y3JlYXRlX3JlcXVlc3QocmVxdWVzdF9kZWYpCi0gICAgICAgIGhhbmRzaGFrZXIgPSBfY3JlYXRl
X2hhbmRzaGFrZXIocmVxdWVzdCkKLSAgICAgICAgaGFuZHNoYWtlci5kb19oYW5kc2hha2UoKQot
ICAgICAgICAjIG11eCBzaG91bGQgYmUgcmVqZWN0ZWQuCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1
YWwoMSwgbGVuKHJlcXVlc3Qud3NfZXh0ZW5zaW9ucykpCi0gICAgICAgIGZpcnN0X2V4dGVuc2lv
biA9IHJlcXVlc3Qud3NfZXh0ZW5zaW9uc1swXQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGNv
bW1vbi5ERUZMQVRFX0ZSQU1FX0VYVEVOU0lPTiwKLSAgICAgICAgICAgICAgICAgICAgICAgICBm
aXJzdF9leHRlbnNpb24ubmFtZSgpKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKDIsIGxlbihy
ZXF1ZXN0LndzX2V4dGVuc2lvbl9wcm9jZXNzb3JzKSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVh
bChjb21tb24uREVGTEFURV9GUkFNRV9FWFRFTlNJT04sCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgcmVxdWVzdC53c19leHRlbnNpb25fcHJvY2Vzc29yc1swXS5uYW1lKCkpCi0gICAgICAgIHNl
bGYuYXNzZXJ0RXF1YWwoY29tbW9uLk1VWF9FWFRFTlNJT04sCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgcmVxdWVzdC53c19leHRlbnNpb25fcHJvY2Vzc29yc1sxXS5uYW1lKCkpCi0gICAgICAg
IHNlbGYuYXNzZXJ0RmFsc2UoaGFzYXR0cihyZXF1ZXN0LCAnbXV4JykpCi0KLSAgICBkZWYgdGVz
dF9kb19oYW5kc2hha2Vfd2l0aF9wZXJtZXNzYWdlX2NvbXByZXNzX2FuZF9tdXgoc2VsZik6Ci0g
ICAgICAgIHJlcXVlc3RfZGVmID0gX2NyZWF0ZV9nb29kX3JlcXVlc3RfZGVmKCkKLSAgICAgICAg
cmVxdWVzdF9kZWYuaGVhZGVyc1snU2VjLVdlYlNvY2tldC1FeHRlbnNpb25zJ10gPSAoCi0gICAg
ICAgICAgICAnJXM7IG1ldGhvZD1kZWZsYXRlLCAlcycgJSAoCi0gICAgICAgICAgICAgICAgY29t
bW9uLlBFUk1FU1NBR0VfQ09NUFJFU1NJT05fRVhURU5TSU9OLAotICAgICAgICAgICAgICAgIGNv
bW1vbi5NVVhfRVhURU5TSU9OKSkKLSAgICAgICAgcmVxdWVzdCA9IF9jcmVhdGVfcmVxdWVzdChy
ZXF1ZXN0X2RlZikKLSAgICAgICAgaGFuZHNoYWtlciA9IF9jcmVhdGVfaGFuZHNoYWtlcihyZXF1
ZXN0KQotICAgICAgICBoYW5kc2hha2VyLmRvX2hhbmRzaGFrZSgpCi0KLSAgICAgICAgc2VsZi5h
c3NlcnRFcXVhbCgxLCBsZW4ocmVxdWVzdC53c19leHRlbnNpb25zKSkKLSAgICAgICAgc2VsZi5h
c3NlcnRFcXVhbChjb21tb24uTVVYX0VYVEVOU0lPTiwKLSAgICAgICAgICAgICAgICAgICAgICAg
ICByZXF1ZXN0LndzX2V4dGVuc2lvbnNbMF0ubmFtZSgpKQotICAgICAgICBzZWxmLmFzc2VydEVx
dWFsKDIsIGxlbihyZXF1ZXN0LndzX2V4dGVuc2lvbl9wcm9jZXNzb3JzKSkKLSAgICAgICAgc2Vs
Zi5hc3NlcnRFcXVhbChjb21tb24uUEVSTUVTU0FHRV9DT01QUkVTU0lPTl9FWFRFTlNJT04sCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdC53c19leHRlbnNpb25fcHJvY2Vzc29yc1sw
XS5uYW1lKCkpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoY29tbW9uLk1VWF9FWFRFTlNJT04s
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdC53c19leHRlbnNpb25fcHJvY2Vzc29y
c1sxXS5uYW1lKCkpCi0gICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShoYXNhdHRyKHJlcXVlc3QsICdt
dXhfcHJvY2Vzc29yJykpCi0gICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShyZXF1ZXN0Lm11eF9wcm9j
ZXNzb3IuaXNfYWN0aXZlKCkpCi0gICAgICAgIG11eF9leHRlbnNpb25zID0gcmVxdWVzdC5tdXhf
cHJvY2Vzc29yLmV4dGVuc2lvbnMoKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKDEsIGxlbiht
dXhfZXh0ZW5zaW9ucykpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoY29tbW9uLlBFUk1FU1NB
R0VfQ09NUFJFU1NJT05fRVhURU5TSU9OLAotICAgICAgICAgICAgICAgICAgICAgICAgIG11eF9l
eHRlbnNpb25zWzBdLm5hbWUoKSkKLQotICAgIGRlZiB0ZXN0X2RvX2hhbmRzaGFrZV93aXRoX211
eF9hbmRfcGVybWVzc2FnZV9jb21wcmVzcyhzZWxmKToKLSAgICAgICAgcmVxdWVzdF9kZWYgPSBf
Y3JlYXRlX2dvb2RfcmVxdWVzdF9kZWYoKQotICAgICAgICByZXF1ZXN0X2RlZi5oZWFkZXJzWydT
ZWMtV2ViU29ja2V0LUV4dGVuc2lvbnMnXSA9ICgKLSAgICAgICAgICAgICclcywgJXM7IG1ldGhv
ZD1kZWZsYXRlJyAlICgKLSAgICAgICAgICAgICAgICBjb21tb24uTVVYX0VYVEVOU0lPTiwKLSAg
ICAgICAgICAgICAgICBjb21tb24uUEVSTUVTU0FHRV9DT01QUkVTU0lPTl9FWFRFTlNJT04pKQot
ICAgICAgICByZXF1ZXN0ID0gX2NyZWF0ZV9yZXF1ZXN0KHJlcXVlc3RfZGVmKQotICAgICAgICBo
YW5kc2hha2VyID0gX2NyZWF0ZV9oYW5kc2hha2VyKHJlcXVlc3QpCi0gICAgICAgIGhhbmRzaGFr
ZXIuZG9faGFuZHNoYWtlKCkKLSAgICAgICAgIyBtdXggc2hvdWxkIGJlIHJlamVjdGVkLgotICAg
ICAgICBzZWxmLmFzc2VydEVxdWFsKDEsIGxlbihyZXF1ZXN0LndzX2V4dGVuc2lvbnMpKQotICAg
ICAgICBmaXJzdF9leHRlbnNpb24gPSByZXF1ZXN0LndzX2V4dGVuc2lvbnNbMF0KLSAgICAgICAg
c2VsZi5hc3NlcnRFcXVhbChjb21tb24uUEVSTUVTU0FHRV9DT01QUkVTU0lPTl9FWFRFTlNJT04s
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgZmlyc3RfZXh0ZW5zaW9uLm5hbWUoKSkKLSAgICAg
ICAgc2VsZi5hc3NlcnRFcXVhbCgyLCBsZW4ocmVxdWVzdC53c19leHRlbnNpb25fcHJvY2Vzc29y
cykpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoY29tbW9uLk1VWF9FWFRFTlNJT04sCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdC53c19leHRlbnNpb25fcHJvY2Vzc29yc1swXS5u
YW1lKCkpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoY29tbW9uLlBFUk1FU1NBR0VfQ09NUFJF
U1NJT05fRVhURU5TSU9OLAotICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Qud3NfZXh0
ZW5zaW9uX3Byb2Nlc3NvcnNbMV0ubmFtZSgpKQotICAgICAgICBzZWxmLmFzc2VydEZhbHNlKGhh
c2F0dHIocmVxdWVzdCwgJ211eF9wcm9jZXNzb3InKSkKLQotICAgIGRlZiB0ZXN0X2JhZF9yZXF1
ZXN0cyhzZWxmKToKLSAgICAgICAgYmFkX2Nhc2VzID0gWwotICAgICAgICAgICAgKCdIVFRQIHJl
cXVlc3QnLAotICAgICAgICAgICAgIFJlcXVlc3REZWZpbml0aW9uKAotICAgICAgICAgICAgICAg
ICAnR0VUJywgJy9kZW1vJywKLSAgICAgICAgICAgICAgICAgeydIb3N0JzogJ3d3dy5nb29nbGUu
Y29tJywKLSAgICAgICAgICAgICAgICAgICdVc2VyLUFnZW50JzoKLSAgICAgICAgICAgICAgICAg
ICAgICAnTW96aWxsYS81LjAgKE1hY2ludG9zaDsgVTsgSW50ZWwgTWFjIE9TIFggMTAuNTsnCi0g
ICAgICAgICAgICAgICAgICAgICAgJyBlbi1VUzsgcnY6MS45LjEuMykgR2Vja28vMjAwOTA4MjQg
RmlyZWZveC8zLjUuMycKLSAgICAgICAgICAgICAgICAgICAgICAnIEdUQjYgR1RCQScsCi0gICAg
ICAgICAgICAgICAgICAnQWNjZXB0JzoKLSAgICAgICAgICAgICAgICAgICAgICAndGV4dC9odG1s
LGFwcGxpY2F0aW9uL3hodG1sK3htbCxhcHBsaWNhdGlvbi94bWw7cT0wLjksJwotICAgICAgICAg
ICAgICAgICAgICAgICcqLyo7cT0wLjgnLAotICAgICAgICAgICAgICAgICAgJ0FjY2VwdC1MYW5n
dWFnZSc6ICdlbi11cyxlbjtxPTAuNScsCi0gICAgICAgICAgICAgICAgICAnQWNjZXB0LUVuY29k
aW5nJzogJ2d6aXAsZGVmbGF0ZScsCi0gICAgICAgICAgICAgICAgICAnQWNjZXB0LUNoYXJzZXQn
OiAnSVNPLTg4NTktMSx1dGYtODtxPTAuNywqO3E9MC43JywKLSAgICAgICAgICAgICAgICAgICdL
ZWVwLUFsaXZlJzogJzMwMCcsCi0gICAgICAgICAgICAgICAgICAnQ29ubmVjdGlvbic6ICdrZWVw
LWFsaXZlJ30pLCBOb25lLCBUcnVlKV0KLQotICAgICAgICByZXF1ZXN0X2RlZiA9IF9jcmVhdGVf
Z29vZF9yZXF1ZXN0X2RlZigpCi0gICAgICAgIHJlcXVlc3RfZGVmLm1ldGhvZCA9ICdQT1NUJwot
ICAgICAgICBiYWRfY2FzZXMuYXBwZW5kKCgnV3JvbmcgbWV0aG9kJywgcmVxdWVzdF9kZWYsIE5v
bmUsIFRydWUpKQotCi0gICAgICAgIHJlcXVlc3RfZGVmID0gX2NyZWF0ZV9nb29kX3JlcXVlc3Rf
ZGVmKCkKLSAgICAgICAgZGVsIHJlcXVlc3RfZGVmLmhlYWRlcnNbJ0hvc3QnXQotICAgICAgICBi
YWRfY2FzZXMuYXBwZW5kKCgnTWlzc2luZyBIb3N0JywgcmVxdWVzdF9kZWYsIE5vbmUsIFRydWUp
KQotCi0gICAgICAgIHJlcXVlc3RfZGVmID0gX2NyZWF0ZV9nb29kX3JlcXVlc3RfZGVmKCkKLSAg
ICAgICAgZGVsIHJlcXVlc3RfZGVmLmhlYWRlcnNbJ1VwZ3JhZGUnXQotICAgICAgICBiYWRfY2Fz
ZXMuYXBwZW5kKCgnTWlzc2luZyBVcGdyYWRlJywgcmVxdWVzdF9kZWYsIE5vbmUsIFRydWUpKQot
Ci0gICAgICAgIHJlcXVlc3RfZGVmID0gX2NyZWF0ZV9nb29kX3JlcXVlc3RfZGVmKCkKLSAgICAg
ICAgcmVxdWVzdF9kZWYuaGVhZGVyc1snVXBncmFkZSddID0gJ25vbndlYnNvY2tldCcKLSAgICAg
ICAgYmFkX2Nhc2VzLmFwcGVuZCgoJ1dyb25nIFVwZ3JhZGUnLCByZXF1ZXN0X2RlZiwgTm9uZSwg
VHJ1ZSkpCi0KLSAgICAgICAgcmVxdWVzdF9kZWYgPSBfY3JlYXRlX2dvb2RfcmVxdWVzdF9kZWYo
KQotICAgICAgICBkZWwgcmVxdWVzdF9kZWYuaGVhZGVyc1snQ29ubmVjdGlvbiddCi0gICAgICAg
IGJhZF9jYXNlcy5hcHBlbmQoKCdNaXNzaW5nIENvbm5lY3Rpb24nLCByZXF1ZXN0X2RlZiwgTm9u
ZSwgVHJ1ZSkpCi0KLSAgICAgICAgcmVxdWVzdF9kZWYgPSBfY3JlYXRlX2dvb2RfcmVxdWVzdF9k
ZWYoKQotICAgICAgICByZXF1ZXN0X2RlZi5oZWFkZXJzWydDb25uZWN0aW9uJ10gPSAnRG93bmdy
YWRlJwotICAgICAgICBiYWRfY2FzZXMuYXBwZW5kKCgnV3JvbmcgQ29ubmVjdGlvbicsIHJlcXVl
c3RfZGVmLCBOb25lLCBUcnVlKSkKLQotICAgICAgICByZXF1ZXN0X2RlZiA9IF9jcmVhdGVfZ29v
ZF9yZXF1ZXN0X2RlZigpCi0gICAgICAgIGRlbCByZXF1ZXN0X2RlZi5oZWFkZXJzWydTZWMtV2Vi
U29ja2V0LUtleSddCi0gICAgICAgIGJhZF9jYXNlcy5hcHBlbmQoKCdNaXNzaW5nIFNlYy1XZWJT
b2NrZXQtS2V5JywgcmVxdWVzdF9kZWYsIDQwMCwgVHJ1ZSkpCi0KLSAgICAgICAgcmVxdWVzdF9k
ZWYgPSBfY3JlYXRlX2dvb2RfcmVxdWVzdF9kZWYoKQotICAgICAgICByZXF1ZXN0X2RlZi5oZWFk
ZXJzWydTZWMtV2ViU29ja2V0LUtleSddID0gKAotICAgICAgICAgICAgJ2RHaGxJSE5oYlhCc1pT
QnViMjVqWlE9PWdhcmJhZ2UnKQotICAgICAgICBiYWRfY2FzZXMuYXBwZW5kKCgnV3JvbmcgU2Vj
LVdlYlNvY2tldC1LZXkgKHdpdGggZ2FyYmFnZSBvbiB0aGUgdGFpbCknLAotICAgICAgICAgICAg
ICAgICAgICAgICAgICByZXF1ZXN0X2RlZiwgNDAwLCBUcnVlKSkKLQotICAgICAgICByZXF1ZXN0
X2RlZiA9IF9jcmVhdGVfZ29vZF9yZXF1ZXN0X2RlZigpCi0gICAgICAgIHJlcXVlc3RfZGVmLmhl
YWRlcnNbJ1NlYy1XZWJTb2NrZXQtS2V5J10gPSAnWVE9PScgICMgQkFTRTY0IG9mICdhJwotICAg
ICAgICBiYWRfY2FzZXMuYXBwZW5kKAotICAgICAgICAgICAgKCdXcm9uZyBTZWMtV2ViU29ja2V0
LUtleSAoZGVjb2RlZCB2YWx1ZSBpcyBub3QgMTYgb2N0ZXRzIGxvbmcpJywKLSAgICAgICAgICAg
ICByZXF1ZXN0X2RlZiwgNDAwLCBUcnVlKSkKLQotICAgICAgICByZXF1ZXN0X2RlZiA9IF9jcmVh
dGVfZ29vZF9yZXF1ZXN0X2RlZigpCi0gICAgICAgICMgVGhlIGxhc3QgY2hhcmFjdGVyIHJpZ2h0
IGJlZm9yZSA9PSBtdXN0IGJlIGFueSBvZiBBLCBRLCB3IGFuZCBnLgotICAgICAgICByZXF1ZXN0
X2RlZi5oZWFkZXJzWydTZWMtV2ViU29ja2V0LUtleSddID0gKAotICAgICAgICAgICAgJ0FRSURC
QVVHQndnSkNnc01EUTRQRUM9PScpCi0gICAgICAgIGJhZF9jYXNlcy5hcHBlbmQoCi0gICAgICAg
ICAgICAoJ1dyb25nIFNlYy1XZWJTb2NrZXQtS2V5IChwYWRkaW5nIGJpdHMgYXJlIG5vdCB6ZXJv
KScsCi0gICAgICAgICAgICAgcmVxdWVzdF9kZWYsIDQwMCwgVHJ1ZSkpCi0KLSAgICAgICAgcmVx
dWVzdF9kZWYgPSBfY3JlYXRlX2dvb2RfcmVxdWVzdF9kZWYoKQotICAgICAgICByZXF1ZXN0X2Rl
Zi5oZWFkZXJzWydTZWMtV2ViU29ja2V0LUtleSddID0gKAotICAgICAgICAgICAgJ2RHaGxJSE5o
YlhCc1pTQnViMjVqWlE9PSxkR2hsSUhOaGJYQnNaU0J1YjI1alpRPT0nKQotICAgICAgICBiYWRf
Y2FzZXMuYXBwZW5kKAotICAgICAgICAgICAgKCdXcm9uZyBTZWMtV2ViU29ja2V0LUtleSAobXVs
dGlwbGUgdmFsdWVzKScsCi0gICAgICAgICAgICAgcmVxdWVzdF9kZWYsIDQwMCwgVHJ1ZSkpCi0K
LSAgICAgICAgcmVxdWVzdF9kZWYgPSBfY3JlYXRlX2dvb2RfcmVxdWVzdF9kZWYoKQotICAgICAg
ICBkZWwgcmVxdWVzdF9kZWYuaGVhZGVyc1snU2VjLVdlYlNvY2tldC1WZXJzaW9uJ10KLSAgICAg
ICAgYmFkX2Nhc2VzLmFwcGVuZCgoJ01pc3NpbmcgU2VjLVdlYlNvY2tldC1WZXJzaW9uJywgcmVx
dWVzdF9kZWYsIE5vbmUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgIFRydWUpKQotCi0gICAg
ICAgIHJlcXVlc3RfZGVmID0gX2NyZWF0ZV9nb29kX3JlcXVlc3RfZGVmKCkKLSAgICAgICAgcmVx
dWVzdF9kZWYuaGVhZGVyc1snU2VjLVdlYlNvY2tldC1WZXJzaW9uJ10gPSAnMycKLSAgICAgICAg
YmFkX2Nhc2VzLmFwcGVuZCgoJ1dyb25nIFNlYy1XZWJTb2NrZXQtVmVyc2lvbicsIHJlcXVlc3Rf
ZGVmLCBOb25lLAotICAgICAgICAgICAgICAgICAgICAgICAgICBGYWxzZSkpCi0KLSAgICAgICAg
cmVxdWVzdF9kZWYgPSBfY3JlYXRlX2dvb2RfcmVxdWVzdF9kZWYoKQotICAgICAgICByZXF1ZXN0
X2RlZi5oZWFkZXJzWydTZWMtV2ViU29ja2V0LVZlcnNpb24nXSA9ICcxMywgMTMnCi0gICAgICAg
IGJhZF9jYXNlcy5hcHBlbmQoKCdXcm9uZyBTZWMtV2ViU29ja2V0LVZlcnNpb24gKG11bHRpcGxl
IHZhbHVlcyknLAotICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0X2RlZiwgNDAwLCBU
cnVlKSkKLQotICAgICAgICByZXF1ZXN0X2RlZiA9IF9jcmVhdGVfZ29vZF9yZXF1ZXN0X2RlZigp
Ci0gICAgICAgIHJlcXVlc3RfZGVmLmhlYWRlcnNbJ1NlYy1XZWJTb2NrZXQtUHJvdG9jb2wnXSA9
ICdpbGxlZ2FsXHgwOXByb3RvY29sJwotICAgICAgICBiYWRfY2FzZXMuYXBwZW5kKCgnSWxsZWdh
bCBTZWMtV2ViU29ja2V0LVByb3RvY29sJywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgcmVx
dWVzdF9kZWYsIDQwMCwgVHJ1ZSkpCi0KLSAgICAgICAgcmVxdWVzdF9kZWYgPSBfY3JlYXRlX2dv
b2RfcmVxdWVzdF9kZWYoKQotICAgICAgICByZXF1ZXN0X2RlZi5oZWFkZXJzWydTZWMtV2ViU29j
a2V0LVByb3RvY29sJ10gPSAnJwotICAgICAgICBiYWRfY2FzZXMuYXBwZW5kKCgnRW1wdHkgU2Vj
LVdlYlNvY2tldC1Qcm90b2NvbCcsCi0gICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Rf
ZGVmLCA0MDAsIFRydWUpKQotCi0gICAgICAgIGZvciAoY2FzZV9uYW1lLCByZXF1ZXN0X2RlZiwg
ZXhwZWN0ZWRfc3RhdHVzLAotICAgICAgICAgICAgIGV4cGVjdF9oYW5kc2hha2VfZXhjZXB0aW9u
KSBpbiBiYWRfY2FzZXM6Ci0gICAgICAgICAgICByZXF1ZXN0ID0gX2NyZWF0ZV9yZXF1ZXN0KHJl
cXVlc3RfZGVmKQotICAgICAgICAgICAgaGFuZHNoYWtlciA9IEhhbmRzaGFrZXIocmVxdWVzdCwg
bW9jay5Nb2NrRGlzcGF0Y2hlcigpKQotICAgICAgICAgICAgdHJ5OgotICAgICAgICAgICAgICAg
IGhhbmRzaGFrZXIuZG9faGFuZHNoYWtlKCkKLSAgICAgICAgICAgICAgICBzZWxmLmZhaWwoJ05v
IGV4Y2VwdGlvbiB0aHJvd24gZm9yIFwnJXNcJyBjYXNlJyAlIGNhc2VfbmFtZSkKLSAgICAgICAg
ICAgIGV4Y2VwdCBIYW5kc2hha2VFeGNlcHRpb24sIGU6Ci0gICAgICAgICAgICAgICAgc2VsZi5h
c3NlcnRUcnVlKGV4cGVjdF9oYW5kc2hha2VfZXhjZXB0aW9uKQotICAgICAgICAgICAgICAgIHNl
bGYuYXNzZXJ0RXF1YWwoZXhwZWN0ZWRfc3RhdHVzLCBlLnN0YXR1cykKLSAgICAgICAgICAgIGV4
Y2VwdCBWZXJzaW9uRXhjZXB0aW9uLCBlOgotICAgICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RmFs
c2UoZXhwZWN0X2hhbmRzaGFrZV9leGNlcHRpb24pCi0KLQotaWYgX19uYW1lX18gPT0gJ19fbWFp
bl9fJzoKLSAgICB1bml0dGVzdC5tYWluKCkKLQotCi0jIHZpOnN0cz00IHN3PTQgZXQKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
cHl3ZWJzb2NrZXQvc3JjL3Rlc3QvdGVzdF9oYW5kc2hha2VfaHliaTAwLnB5IGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9zcmMv
dGVzdC90ZXN0X2hhbmRzaGFrZV9oeWJpMDAucHkKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDczZjlmMjdjYTJkOTQyMWIyMzAxNWY1OGM4OTNhY2YxZGMwMDlkZWYuLjAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9zcmMvdGVzdC90ZXN0X2hh
bmRzaGFrZV9oeWJpMDAucHkKKysrIC9kZXYvbnVsbApAQCAtMSw1MTYgKzAsMCBAQAotIyEvdXNy
L2Jpbi9lbnYgcHl0aG9uCi0jCi0jIENvcHlyaWdodCAyMDExLCBHb29nbGUgSW5jLgotIyBBbGwg
cmlnaHRzIHJlc2VydmVkLgotIwotIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSMgbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQotIyBtZXQ6
Ci0jCi0jICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0Ci0jIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSMgICAgICogUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQotIyBjb3B5cmlnaHQgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCi0jIGlu
IHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUKLSMgZGlzdHJpYnV0aW9uLgotIyAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJ
bmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCi0jIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBl
bmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCi0jIHRoaXMgc29mdHdhcmUg
d2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0jCi0jIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRP
UlMKLSMgIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QKLSMgTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCi0jIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCi0jIE9XTkVSIE9S
IENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLAotIyBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UCi0jIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAotIyBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKLSMgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVAotIyAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UKLSMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLQotCi0iIiJUZXN0cyBmb3IgaGFu
ZHNoYWtlLmh5YmkwMCBtb2R1bGUuIiIiCi0KLQotaW1wb3J0IHVuaXR0ZXN0Ci0KLWltcG9ydCBz
ZXRfc3lzX3BhdGggICMgVXBkYXRlIHN5cy5wYXRoIHRvIGxvY2F0ZSBtb2RfcHl3ZWJzb2NrZXQg
bW9kdWxlLgotCi1mcm9tIG1vZF9weXdlYnNvY2tldC5oYW5kc2hha2UuX2Jhc2UgaW1wb3J0IEhh
bmRzaGFrZUV4Y2VwdGlvbgotZnJvbSBtb2RfcHl3ZWJzb2NrZXQuaGFuZHNoYWtlLmh5YmkwMCBp
bXBvcnQgSGFuZHNoYWtlcgotZnJvbSBtb2RfcHl3ZWJzb2NrZXQuaGFuZHNoYWtlLmh5YmkwMCBp
bXBvcnQgX3ZhbGlkYXRlX3N1YnByb3RvY29sCi1mcm9tIHRlc3QgaW1wb3J0IG1vY2sKLQotCi1f
VEVTVF9LRVkxID0gJzQgQDEgIDQ2NTQ2eFclMGwgMSA1JwotX1RFU1RfS0VZMiA9ICcxMjk5OCA1
IFkzIDEgIC5QMDAnCi1fVEVTVF9LRVkzID0gJ15uOmRzWzRVJwotX1RFU1RfQ0hBTExFTkdFX1JF
U1BPTlNFID0gJzhqS1NcJ3k6RypDbyxXeGEtJwotCi0KLV9HT09EX1JFUVVFU1QgPSAoCi0gICAg
ODAsCi0gICAgJ0dFVCcsCi0gICAgJy9kZW1vJywKLSAgICB7Ci0gICAgICAgICdIb3N0JzogJ2V4
YW1wbGUuY29tJywKLSAgICAgICAgJ0Nvbm5lY3Rpb24nOiAnVXBncmFkZScsCi0gICAgICAgICdT
ZWMtV2ViU29ja2V0LUtleTInOiBfVEVTVF9LRVkyLAotICAgICAgICAnU2VjLVdlYlNvY2tldC1Q
cm90b2NvbCc6ICdzYW1wbGUnLAotICAgICAgICAnVXBncmFkZSc6ICdXZWJTb2NrZXQnLAotICAg
ICAgICAnU2VjLVdlYlNvY2tldC1LZXkxJzogX1RFU1RfS0VZMSwKLSAgICAgICAgJ09yaWdpbic6
ICdodHRwOi8vZXhhbXBsZS5jb20nLAotICAgIH0sCi0gICAgX1RFU1RfS0VZMykKLQotX0dPT0Rf
UkVRVUVTVF9DQVBJVEFMSVpFRF9IRUFERVJfVkFMVUVTID0gKAotICAgIDgwLAotICAgICdHRVQn
LAotICAgICcvZGVtbycsCi0gICAgewotICAgICAgICAnSG9zdCc6ICdleGFtcGxlLmNvbScsCi0g
ICAgICAgICdDb25uZWN0aW9uJzogJ1VQR1JBREUnLAotICAgICAgICAnU2VjLVdlYlNvY2tldC1L
ZXkyJzogX1RFU1RfS0VZMiwKLSAgICAgICAgJ1NlYy1XZWJTb2NrZXQtUHJvdG9jb2wnOiAnc2Ft
cGxlJywKLSAgICAgICAgJ1VwZ3JhZGUnOiAnV0VCU09DS0VUJywKLSAgICAgICAgJ1NlYy1XZWJT
b2NrZXQtS2V5MSc6IF9URVNUX0tFWTEsCi0gICAgICAgICdPcmlnaW4nOiAnaHR0cDovL2V4YW1w
bGUuY29tJywKLSAgICB9LAotICAgIF9URVNUX0tFWTMpCi0KLV9HT09EX1JFUVVFU1RfQ0FTRV9N
SVhFRF9IRUFERVJfTkFNRVMgPSAoCi0gICAgODAsCi0gICAgJ0dFVCcsCi0gICAgJy9kZW1vJywK
LSAgICB7Ci0gICAgICAgICdoT3NUJzogJ2V4YW1wbGUuY29tJywKLSAgICAgICAgJ2NPbk5lQ3RJ
b04nOiAnVXBncmFkZScsCi0gICAgICAgICdzRWMtd0Vic09jS2VULWtFeTInOiBfVEVTVF9LRVky
LAotICAgICAgICAnc0VjLXdFYnNPY0tlVC1wUm9Ub0NvTCc6ICdzYW1wbGUnLAotICAgICAgICAn
dVBnUmFEZSc6ICdXZWJTb2NrZXQnLAotICAgICAgICAnc0VjLXdFYnNPY0tlVC1rRXkxJzogX1RF
U1RfS0VZMSwKLSAgICAgICAgJ29SaUdpTic6ICdodHRwOi8vZXhhbXBsZS5jb20nLAotICAgIH0s
Ci0gICAgX1RFU1RfS0VZMykKLQotX0dPT0RfUkVTUE9OU0VfREVGQVVMVF9QT1JUID0gKAotICAg
ICdIVFRQLzEuMSAxMDEgV2ViU29ja2V0IFByb3RvY29sIEhhbmRzaGFrZVxyXG4nCi0gICAgJ1Vw
Z3JhZGU6IFdlYlNvY2tldFxyXG4nCi0gICAgJ0Nvbm5lY3Rpb246IFVwZ3JhZGVcclxuJwotICAg
ICdTZWMtV2ViU29ja2V0LUxvY2F0aW9uOiB3czovL2V4YW1wbGUuY29tL2RlbW9cclxuJwotICAg
ICdTZWMtV2ViU29ja2V0LU9yaWdpbjogaHR0cDovL2V4YW1wbGUuY29tXHJcbicKLSAgICAnU2Vj
LVdlYlNvY2tldC1Qcm90b2NvbDogc2FtcGxlXHJcbicKLSAgICAnXHJcbicgKwotICAgIF9URVNU
X0NIQUxMRU5HRV9SRVNQT05TRSkKLQotX0dPT0RfUkVTUE9OU0VfU0VDVVJFID0gKAotICAgICdI
VFRQLzEuMSAxMDEgV2ViU29ja2V0IFByb3RvY29sIEhhbmRzaGFrZVxyXG4nCi0gICAgJ1VwZ3Jh
ZGU6IFdlYlNvY2tldFxyXG4nCi0gICAgJ0Nvbm5lY3Rpb246IFVwZ3JhZGVcclxuJwotICAgICdT
ZWMtV2ViU29ja2V0LUxvY2F0aW9uOiB3c3M6Ly9leGFtcGxlLmNvbS9kZW1vXHJcbicKLSAgICAn
U2VjLVdlYlNvY2tldC1PcmlnaW46IGh0dHA6Ly9leGFtcGxlLmNvbVxyXG4nCi0gICAgJ1NlYy1X
ZWJTb2NrZXQtUHJvdG9jb2w6IHNhbXBsZVxyXG4nCi0gICAgJ1xyXG4nICsKLSAgICBfVEVTVF9D
SEFMTEVOR0VfUkVTUE9OU0UpCi0KLV9HT09EX1JFUVVFU1RfTk9OREVGQVVMVF9QT1JUID0gKAot
ICAgIDgwODEsCi0gICAgJ0dFVCcsCi0gICAgJy9kZW1vJywKLSAgICB7Ci0gICAgICAgICdIb3N0
JzogJ2V4YW1wbGUuY29tOjgwODEnLAotICAgICAgICAnQ29ubmVjdGlvbic6ICdVcGdyYWRlJywK
LSAgICAgICAgJ1NlYy1XZWJTb2NrZXQtS2V5Mic6IF9URVNUX0tFWTIsCi0gICAgICAgICdTZWMt
V2ViU29ja2V0LVByb3RvY29sJzogJ3NhbXBsZScsCi0gICAgICAgICdVcGdyYWRlJzogJ1dlYlNv
Y2tldCcsCi0gICAgICAgICdTZWMtV2ViU29ja2V0LUtleTEnOiBfVEVTVF9LRVkxLAotICAgICAg
ICAnT3JpZ2luJzogJ2h0dHA6Ly9leGFtcGxlLmNvbScsCi0gICAgfSwKLSAgICBfVEVTVF9LRVkz
KQotCi1fR09PRF9SRVNQT05TRV9OT05ERUZBVUxUX1BPUlQgPSAoCi0gICAgJ0hUVFAvMS4xIDEw
MSBXZWJTb2NrZXQgUHJvdG9jb2wgSGFuZHNoYWtlXHJcbicKLSAgICAnVXBncmFkZTogV2ViU29j
a2V0XHJcbicKLSAgICAnQ29ubmVjdGlvbjogVXBncmFkZVxyXG4nCi0gICAgJ1NlYy1XZWJTb2Nr
ZXQtTG9jYXRpb246IHdzOi8vZXhhbXBsZS5jb206ODA4MS9kZW1vXHJcbicKLSAgICAnU2VjLVdl
YlNvY2tldC1PcmlnaW46IGh0dHA6Ly9leGFtcGxlLmNvbVxyXG4nCi0gICAgJ1NlYy1XZWJTb2Nr
ZXQtUHJvdG9jb2w6IHNhbXBsZVxyXG4nCi0gICAgJ1xyXG4nICsKLSAgICBfVEVTVF9DSEFMTEVO
R0VfUkVTUE9OU0UpCi0KLV9HT09EX1JFU1BPTlNFX1NFQ1VSRV9OT05ERUYgPSAoCi0gICAgJ0hU
VFAvMS4xIDEwMSBXZWJTb2NrZXQgUHJvdG9jb2wgSGFuZHNoYWtlXHJcbicKLSAgICAnVXBncmFk
ZTogV2ViU29ja2V0XHJcbicKLSAgICAnQ29ubmVjdGlvbjogVXBncmFkZVxyXG4nCi0gICAgJ1Nl
Yy1XZWJTb2NrZXQtTG9jYXRpb246IHdzczovL2V4YW1wbGUuY29tOjgwODEvZGVtb1xyXG4nCi0g
ICAgJ1NlYy1XZWJTb2NrZXQtT3JpZ2luOiBodHRwOi8vZXhhbXBsZS5jb21cclxuJwotICAgICdT
ZWMtV2ViU29ja2V0LVByb3RvY29sOiBzYW1wbGVcclxuJwotICAgICdcclxuJyArCi0gICAgX1RF
U1RfQ0hBTExFTkdFX1JFU1BPTlNFKQotCi1fR09PRF9SRVFVRVNUX05PX1BST1RPQ09MID0gKAot
ICAgIDgwLAotICAgICdHRVQnLAotICAgICcvZGVtbycsCi0gICAgewotICAgICAgICAnSG9zdCc6
ICdleGFtcGxlLmNvbScsCi0gICAgICAgICdDb25uZWN0aW9uJzogJ1VwZ3JhZGUnLAotICAgICAg
ICAnU2VjLVdlYlNvY2tldC1LZXkyJzogX1RFU1RfS0VZMiwKLSAgICAgICAgJ1VwZ3JhZGUnOiAn
V2ViU29ja2V0JywKLSAgICAgICAgJ1NlYy1XZWJTb2NrZXQtS2V5MSc6IF9URVNUX0tFWTEsCi0g
ICAgICAgICdPcmlnaW4nOiAnaHR0cDovL2V4YW1wbGUuY29tJywKLSAgICB9LAotICAgIF9URVNU
X0tFWTMpCi0KLV9HT09EX1JFU1BPTlNFX05PX1BST1RPQ09MID0gKAotICAgICdIVFRQLzEuMSAx
MDEgV2ViU29ja2V0IFByb3RvY29sIEhhbmRzaGFrZVxyXG4nCi0gICAgJ1VwZ3JhZGU6IFdlYlNv
Y2tldFxyXG4nCi0gICAgJ0Nvbm5lY3Rpb246IFVwZ3JhZGVcclxuJwotICAgICdTZWMtV2ViU29j
a2V0LUxvY2F0aW9uOiB3czovL2V4YW1wbGUuY29tL2RlbW9cclxuJwotICAgICdTZWMtV2ViU29j
a2V0LU9yaWdpbjogaHR0cDovL2V4YW1wbGUuY29tXHJcbicKLSAgICAnXHJcbicgKwotICAgIF9U
RVNUX0NIQUxMRU5HRV9SRVNQT05TRSkKLQotX0dPT0RfUkVRVUVTVF9XSVRIX09QVElPTkFMX0hF
QURFUlMgPSAoCi0gICAgODAsCi0gICAgJ0dFVCcsCi0gICAgJy9kZW1vJywKLSAgICB7Ci0gICAg
ICAgICdIb3N0JzogJ2V4YW1wbGUuY29tJywKLSAgICAgICAgJ0Nvbm5lY3Rpb24nOiAnVXBncmFk
ZScsCi0gICAgICAgICdTZWMtV2ViU29ja2V0LUtleTInOiBfVEVTVF9LRVkyLAotICAgICAgICAn
RW1wdHlWYWx1ZSc6ICcnLAotICAgICAgICAnU2VjLVdlYlNvY2tldC1Qcm90b2NvbCc6ICdzYW1w
bGUnLAotICAgICAgICAnQUtleSc6ICdBVmFsdWUnLAotICAgICAgICAnVXBncmFkZSc6ICdXZWJT
b2NrZXQnLAotICAgICAgICAnU2VjLVdlYlNvY2tldC1LZXkxJzogX1RFU1RfS0VZMSwKLSAgICAg
ICAgJ09yaWdpbic6ICdodHRwOi8vZXhhbXBsZS5jb20nLAotICAgIH0sCi0gICAgX1RFU1RfS0VZ
MykKLQotIyBUT0RPKHR5b3NoaW5vKTogSW5jbHVkZSBcciBcbiBpbiBrZXkzLCBjaGFsbGVuZ2Ug
cmVzcG9uc2UuCi0KLV9HT09EX1JFUVVFU1RfV0lUSF9OT05QUklOVEFCTEVfS0VZID0gKAotICAg
IDgwLAotICAgICdHRVQnLAotICAgICcvZGVtbycsCi0gICAgewotICAgICAgICAnSG9zdCc6ICdl
eGFtcGxlLmNvbScsCi0gICAgICAgICdDb25uZWN0aW9uJzogJ1VwZ3JhZGUnLAotICAgICAgICAn
U2VjLVdlYlNvY2tldC1LZXkyJzogJ3kgIFIyIDQ4IFExTzQgIGV8QlYzIGk1IDEgIHUtIDY1JywK
LSAgICAgICAgJ1NlYy1XZWJTb2NrZXQtUHJvdG9jb2wnOiAnc2FtcGxlJywKLSAgICAgICAgJ1Vw
Z3JhZGUnOiAnV2ViU29ja2V0JywKLSAgICAgICAgJ1NlYy1XZWJTb2NrZXQtS2V5MSc6ICczNiA3
ICAgNzQgaSAgOTIgMlwnbSA5IDBHJywKLSAgICAgICAgJ09yaWdpbic6ICdodHRwOi8vZXhhbXBs
ZS5jb20nLAotICAgIH0sCi0gICAgJycuam9pbihtYXAoY2hyLCBbMHgwMSwgMHhkMSwgMHhkZCwg
MHgzYiwgMHhkMSwgMHg1NiwgMHg2MywgMHhmZl0pKSkKLQotX0dPT0RfUkVTUE9OU0VfV0lUSF9O
T05QUklOVEFCTEVfS0VZID0gKAotICAgICdIVFRQLzEuMSAxMDEgV2ViU29ja2V0IFByb3RvY29s
IEhhbmRzaGFrZVxyXG4nCi0gICAgJ1VwZ3JhZGU6IFdlYlNvY2tldFxyXG4nCi0gICAgJ0Nvbm5l
Y3Rpb246IFVwZ3JhZGVcclxuJwotICAgICdTZWMtV2ViU29ja2V0LUxvY2F0aW9uOiB3czovL2V4
YW1wbGUuY29tL2RlbW9cclxuJwotICAgICdTZWMtV2ViU29ja2V0LU9yaWdpbjogaHR0cDovL2V4
YW1wbGUuY29tXHJcbicKLSAgICAnU2VjLVdlYlNvY2tldC1Qcm90b2NvbDogc2FtcGxlXHJcbicK
LSAgICAnXHJcbicgKwotICAgICcnLmpvaW4obWFwKGNociwgWzB4MGIsIDB4OTksIDB4ZmEsIDB4
NTUsIDB4YmQsIDB4MDEsIDB4MjMsIDB4N2IsCi0gICAgICAgICAgICAgICAgICAgICAgMHg0NSwg
MHhhMiwgMHhmMSwgMHhkMCwgMHg4NywgMHg4YSwgMHhlZSwgMHhlYl0pKSkKLQotX0dPT0RfUkVR
VUVTVF9XSVRIX1FVRVJZX1BBUlQgPSAoCi0gICAgODAsCi0gICAgJ0dFVCcsCi0gICAgJy9kZW1v
P2U9bWMyJywKLSAgICB7Ci0gICAgICAgICdIb3N0JzogJ2V4YW1wbGUuY29tJywKLSAgICAgICAg
J0Nvbm5lY3Rpb24nOiAnVXBncmFkZScsCi0gICAgICAgICdTZWMtV2ViU29ja2V0LUtleTInOiBf
VEVTVF9LRVkyLAotICAgICAgICAnU2VjLVdlYlNvY2tldC1Qcm90b2NvbCc6ICdzYW1wbGUnLAot
ICAgICAgICAnVXBncmFkZSc6ICdXZWJTb2NrZXQnLAotICAgICAgICAnU2VjLVdlYlNvY2tldC1L
ZXkxJzogX1RFU1RfS0VZMSwKLSAgICAgICAgJ09yaWdpbic6ICdodHRwOi8vZXhhbXBsZS5jb20n
LAotICAgIH0sCi0gICAgX1RFU1RfS0VZMykKLQotX0dPT0RfUkVTUE9OU0VfV0lUSF9RVUVSWV9Q
QVJUID0gKAotICAgICdIVFRQLzEuMSAxMDEgV2ViU29ja2V0IFByb3RvY29sIEhhbmRzaGFrZVxy
XG4nCi0gICAgJ1VwZ3JhZGU6IFdlYlNvY2tldFxyXG4nCi0gICAgJ0Nvbm5lY3Rpb246IFVwZ3Jh
ZGVcclxuJwotICAgICdTZWMtV2ViU29ja2V0LUxvY2F0aW9uOiB3czovL2V4YW1wbGUuY29tL2Rl
bW8/ZT1tYzJcclxuJwotICAgICdTZWMtV2ViU29ja2V0LU9yaWdpbjogaHR0cDovL2V4YW1wbGUu
Y29tXHJcbicKLSAgICAnU2VjLVdlYlNvY2tldC1Qcm90b2NvbDogc2FtcGxlXHJcbicKLSAgICAn
XHJcbicgKwotICAgIF9URVNUX0NIQUxMRU5HRV9SRVNQT05TRSkKLQotX0JBRF9SRVFVRVNUUyA9
ICgKLSAgICAoICAjIEhUVFAgcmVxdWVzdAotICAgICAgICA4MCwKLSAgICAgICAgJ0dFVCcsCi0g
ICAgICAgICcvZGVtbycsCi0gICAgICAgIHsKLSAgICAgICAgICAgICdIb3N0JzogJ3d3dy5nb29n
bGUuY29tJywKLSAgICAgICAgICAgICdVc2VyLUFnZW50JzogJ01vemlsbGEvNS4wIChNYWNpbnRv
c2g7IFU7IEludGVsIE1hYyBPUyBYIDEwLjU7JwotICAgICAgICAgICAgICAgICAgICAgICAgICAn
IGVuLVVTOyBydjoxLjkuMS4zKSBHZWNrby8yMDA5MDgyNCBGaXJlZm94LzMuNS4zJwotICAgICAg
ICAgICAgICAgICAgICAgICAgICAnIEdUQjYgR1RCQScsCi0gICAgICAgICAgICAnQWNjZXB0Jzog
J3RleHQvaHRtbCxhcHBsaWNhdGlvbi94aHRtbCt4bWwsYXBwbGljYXRpb24veG1sO3E9MC45LCcK
LSAgICAgICAgICAgICAgICAgICAgICAnKi8qO3E9MC44JywKLSAgICAgICAgICAgICdBY2NlcHQt
TGFuZ3VhZ2UnOiAnZW4tdXMsZW47cT0wLjUnLAotICAgICAgICAgICAgJ0FjY2VwdC1FbmNvZGlu
Zyc6ICdnemlwLGRlZmxhdGUnLAotICAgICAgICAgICAgJ0FjY2VwdC1DaGFyc2V0JzogJ0lTTy04
ODU5LTEsdXRmLTg7cT0wLjcsKjtxPTAuNycsCi0gICAgICAgICAgICAnS2VlcC1BbGl2ZSc6ICcz
MDAnLAotICAgICAgICAgICAgJ0Nvbm5lY3Rpb24nOiAna2VlcC1hbGl2ZScsCi0gICAgICAgIH0p
LAotICAgICggICMgV3JvbmcgbWV0aG9kCi0gICAgICAgIDgwLAotICAgICAgICAnUE9TVCcsCi0g
ICAgICAgICcvZGVtbycsCi0gICAgICAgIHsKLSAgICAgICAgICAgICdIb3N0JzogJ2V4YW1wbGUu
Y29tJywKLSAgICAgICAgICAgICdDb25uZWN0aW9uJzogJ1VwZ3JhZGUnLAotICAgICAgICAgICAg
J1NlYy1XZWJTb2NrZXQtS2V5Mic6IF9URVNUX0tFWTIsCi0gICAgICAgICAgICAnU2VjLVdlYlNv
Y2tldC1Qcm90b2NvbCc6ICdzYW1wbGUnLAotICAgICAgICAgICAgJ1VwZ3JhZGUnOiAnV2ViU29j
a2V0JywKLSAgICAgICAgICAgICdTZWMtV2ViU29ja2V0LUtleTEnOiBfVEVTVF9LRVkxLAotICAg
ICAgICAgICAgJ09yaWdpbic6ICdodHRwOi8vZXhhbXBsZS5jb20nLAotICAgICAgICB9LAotICAg
ICAgICBfVEVTVF9LRVkzKSwKLSAgICAoICAjIE1pc3NpbmcgVXBncmFkZQotICAgICAgICA4MCwK
LSAgICAgICAgJ0dFVCcsCi0gICAgICAgICcvZGVtbycsCi0gICAgICAgIHsKLSAgICAgICAgICAg
ICdIb3N0JzogJ2V4YW1wbGUuY29tJywKLSAgICAgICAgICAgICdDb25uZWN0aW9uJzogJ1VwZ3Jh
ZGUnLAotICAgICAgICAgICAgJ1NlYy1XZWJTb2NrZXQtS2V5Mic6IF9URVNUX0tFWTIsCi0gICAg
ICAgICAgICAnU2VjLVdlYlNvY2tldC1Qcm90b2NvbCc6ICdzYW1wbGUnLAotICAgICAgICAgICAg
J1NlYy1XZWJTb2NrZXQtS2V5MSc6IF9URVNUX0tFWTEsCi0gICAgICAgICAgICAnT3JpZ2luJzog
J2h0dHA6Ly9leGFtcGxlLmNvbScsCi0gICAgICAgIH0sCi0gICAgICAgIF9URVNUX0tFWTMpLAot
ICAgICggICMgV3JvbmcgVXBncmFkZQotICAgICAgICA4MCwKLSAgICAgICAgJ0dFVCcsCi0gICAg
ICAgICcvZGVtbycsCi0gICAgICAgIHsKLSAgICAgICAgICAgICdIb3N0JzogJ2V4YW1wbGUuY29t
JywKLSAgICAgICAgICAgICdDb25uZWN0aW9uJzogJ1VwZ3JhZGUnLAotICAgICAgICAgICAgJ1Nl
Yy1XZWJTb2NrZXQtS2V5Mic6IF9URVNUX0tFWTIsCi0gICAgICAgICAgICAnU2VjLVdlYlNvY2tl
dC1Qcm90b2NvbCc6ICdzYW1wbGUnLAotICAgICAgICAgICAgJ1VwZ3JhZGUnOiAnTm9uV2ViU29j
a2V0JywKLSAgICAgICAgICAgICdTZWMtV2ViU29ja2V0LUtleTEnOiBfVEVTVF9LRVkxLAotICAg
ICAgICAgICAgJ09yaWdpbic6ICdodHRwOi8vZXhhbXBsZS5jb20nLAotICAgICAgICB9LAotICAg
ICAgICBfVEVTVF9LRVkzKSwKLSAgICAoICAjIEVtcHR5IFdlYlNvY2tldC1Qcm90b2NvbAotICAg
ICAgICA4MCwKLSAgICAgICAgJ0dFVCcsCi0gICAgICAgICcvZGVtbycsCi0gICAgICAgIHsKLSAg
ICAgICAgICAgICdIb3N0JzogJ2V4YW1wbGUuY29tJywKLSAgICAgICAgICAgICdDb25uZWN0aW9u
JzogJ1VwZ3JhZGUnLAotICAgICAgICAgICAgJ1NlYy1XZWJTb2NrZXQtS2V5Mic6IF9URVNUX0tF
WTIsCi0gICAgICAgICAgICAnU2VjLVdlYlNvY2tldC1Qcm90b2NvbCc6ICcnLAotICAgICAgICAg
ICAgJ1VwZ3JhZGUnOiAnV2ViU29ja2V0JywKLSAgICAgICAgICAgICdTZWMtV2ViU29ja2V0LUtl
eTEnOiBfVEVTVF9LRVkxLAotICAgICAgICAgICAgJ09yaWdpbic6ICdodHRwOi8vZXhhbXBsZS5j
b20nLAotICAgICAgICB9LAotICAgICAgICBfVEVTVF9LRVkzKSwKLSAgICAoICAjIFdyb25nIHBv
cnQgbnVtYmVyIGZvcm1hdAotICAgICAgICA4MCwKLSAgICAgICAgJ0dFVCcsCi0gICAgICAgICcv
ZGVtbycsCi0gICAgICAgIHsKLSAgICAgICAgICAgICdIb3N0JzogJ2V4YW1wbGUuY29tOjB4NTAn
LAotICAgICAgICAgICAgJ0Nvbm5lY3Rpb24nOiAnVXBncmFkZScsCi0gICAgICAgICAgICAnU2Vj
LVdlYlNvY2tldC1LZXkyJzogX1RFU1RfS0VZMiwKLSAgICAgICAgICAgICdTZWMtV2ViU29ja2V0
LVByb3RvY29sJzogJ3NhbXBsZScsCi0gICAgICAgICAgICAnVXBncmFkZSc6ICdXZWJTb2NrZXQn
LAotICAgICAgICAgICAgJ1NlYy1XZWJTb2NrZXQtS2V5MSc6IF9URVNUX0tFWTEsCi0gICAgICAg
ICAgICAnT3JpZ2luJzogJ2h0dHA6Ly9leGFtcGxlLmNvbScsCi0gICAgICAgIH0sCi0gICAgICAg
IF9URVNUX0tFWTMpLAotICAgICggICMgSGVhZGVyL2Nvbm5lY3Rpb24gcG9ydCBtaXNtYXRjaAot
ICAgICAgICA4MDgwLAotICAgICAgICAnR0VUJywKLSAgICAgICAgJy9kZW1vJywKLSAgICAgICAg
ewotICAgICAgICAgICAgJ0hvc3QnOiAnZXhhbXBsZS5jb20nLAotICAgICAgICAgICAgJ0Nvbm5l
Y3Rpb24nOiAnVXBncmFkZScsCi0gICAgICAgICAgICAnU2VjLVdlYlNvY2tldC1LZXkyJzogX1RF
U1RfS0VZMiwKLSAgICAgICAgICAgICdTZWMtV2ViU29ja2V0LVByb3RvY29sJzogJ3NhbXBsZScs
Ci0gICAgICAgICAgICAnVXBncmFkZSc6ICdXZWJTb2NrZXQnLAotICAgICAgICAgICAgJ1NlYy1X
ZWJTb2NrZXQtS2V5MSc6IF9URVNUX0tFWTEsCi0gICAgICAgICAgICAnT3JpZ2luJzogJ2h0dHA6
Ly9leGFtcGxlLmNvbScsCi0gICAgICAgIH0sCi0gICAgICAgIF9URVNUX0tFWTMpLAotICAgICgg
ICMgSWxsZWdhbCBXZWJTb2NrZXQtUHJvdG9jb2wKLSAgICAgICAgODAsCi0gICAgICAgICdHRVQn
LAotICAgICAgICAnL2RlbW8nLAotICAgICAgICB7Ci0gICAgICAgICAgICAnSG9zdCc6ICdleGFt
cGxlLmNvbScsCi0gICAgICAgICAgICAnQ29ubmVjdGlvbic6ICdVcGdyYWRlJywKLSAgICAgICAg
ICAgICdTZWMtV2ViU29ja2V0LUtleTInOiBfVEVTVF9LRVkyLAotICAgICAgICAgICAgJ1NlYy1X
ZWJTb2NrZXQtUHJvdG9jb2wnOiAnaWxsZWdhbFx4MDlwcm90b2NvbCcsCi0gICAgICAgICAgICAn
VXBncmFkZSc6ICdXZWJTb2NrZXQnLAotICAgICAgICAgICAgJ1NlYy1XZWJTb2NrZXQtS2V5MSc6
IF9URVNUX0tFWTEsCi0gICAgICAgICAgICAnT3JpZ2luJzogJ2h0dHA6Ly9leGFtcGxlLmNvbScs
Ci0gICAgICAgIH0sCi0gICAgICAgIF9URVNUX0tFWTMpLAotKQotCi0KLWRlZiBfY3JlYXRlX3Jl
cXVlc3QocmVxdWVzdF9kZWYpOgotICAgIGRhdGEgPSAnJwotICAgIGlmIGxlbihyZXF1ZXN0X2Rl
ZikgPiA0OgotICAgICAgICBkYXRhID0gcmVxdWVzdF9kZWZbNF0KLSAgICBjb25uID0gbW9jay5N
b2NrQ29ubihkYXRhKQotICAgIGNvbm4ubG9jYWxfYWRkciA9ICgnMC4wLjAuMCcsIHJlcXVlc3Rf
ZGVmWzBdKQotICAgIHJldHVybiBtb2NrLk1vY2tSZXF1ZXN0KAotICAgICAgICBtZXRob2Q9cmVx
dWVzdF9kZWZbMV0sCi0gICAgICAgIHVyaT1yZXF1ZXN0X2RlZlsyXSwKLSAgICAgICAgaGVhZGVy
c19pbj1yZXF1ZXN0X2RlZlszXSwKLSAgICAgICAgY29ubmVjdGlvbj1jb25uKQotCi0KLWRlZiBf
Y3JlYXRlX2dldF9tZW1vcml6ZWRfbGluZXMobGluZXMpOgotICAgICIiIkNyZWF0ZXMgYSBmdW5j
dGlvbiB0aGF0IHJldHVybnMgdGhlIGdpdmVuIHN0cmluZy4iIiIKLQotICAgIGRlZiBnZXRfbWVt
b3JpemVkX2xpbmVzKCk6Ci0gICAgICAgIHJldHVybiBsaW5lcwotICAgIHJldHVybiBnZXRfbWVt
b3JpemVkX2xpbmVzCi0KLQotZGVmIF9jcmVhdGVfcmVxdWVzdHNfd2l0aF9saW5lcyhyZXF1ZXN0
X2xpbmVzX3NldCk6Ci0gICAgcmVxdWVzdHMgPSBbXQotICAgIGZvciBsaW5lcyBpbiByZXF1ZXN0
X2xpbmVzX3NldDoKLSAgICAgICAgcmVxdWVzdCA9IF9jcmVhdGVfcmVxdWVzdChfR09PRF9SRVFV
RVNUKQotICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24uZ2V0X21lbW9yaXplZF9saW5lcyA9IF9j
cmVhdGVfZ2V0X21lbW9yaXplZF9saW5lcygKLSAgICAgICAgICAgICAgICBsaW5lcykKLSAgICAg
ICAgcmVxdWVzdHMuYXBwZW5kKHJlcXVlc3QpCi0gICAgcmV0dXJuIHJlcXVlc3RzCi0KLQotY2xh
c3MgSHlCaTAwSGFuZHNoYWtlclRlc3QodW5pdHRlc3QuVGVzdENhc2UpOgotCi0gICAgZGVmIHRl
c3RfZ29vZF9yZXF1ZXN0X2RlZmF1bHRfcG9ydChzZWxmKToKLSAgICAgICAgcmVxdWVzdCA9IF9j
cmVhdGVfcmVxdWVzdChfR09PRF9SRVFVRVNUKQotICAgICAgICBoYW5kc2hha2VyID0gSGFuZHNo
YWtlcihyZXF1ZXN0LCBtb2NrLk1vY2tEaXNwYXRjaGVyKCkpCi0gICAgICAgIGhhbmRzaGFrZXIu
ZG9faGFuZHNoYWtlKCkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChfR09PRF9SRVNQT05TRV9E
RUZBVUxUX1BPUlQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9u
LndyaXR0ZW5fZGF0YSgpKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCcvZGVtbycsIHJlcXVl
c3Qud3NfcmVzb3VyY2UpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ2h0dHA6Ly9leGFtcGxl
LmNvbScsIHJlcXVlc3Qud3Nfb3JpZ2luKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCd3czov
L2V4YW1wbGUuY29tL2RlbW8nLCByZXF1ZXN0LndzX2xvY2F0aW9uKQotICAgICAgICBzZWxmLmFz
c2VydEVxdWFsKCdzYW1wbGUnLCByZXF1ZXN0LndzX3Byb3RvY29sKQotCi0gICAgZGVmIHRlc3Rf
Z29vZF9yZXF1ZXN0X2NhcGl0YWxpemVkX2hlYWRlcl92YWx1ZXMoc2VsZik6Ci0gICAgICAgIHJl
cXVlc3QgPSBfY3JlYXRlX3JlcXVlc3QoX0dPT0RfUkVRVUVTVF9DQVBJVEFMSVpFRF9IRUFERVJf
VkFMVUVTKQotICAgICAgICBoYW5kc2hha2VyID0gSGFuZHNoYWtlcihyZXF1ZXN0LCBtb2NrLk1v
Y2tEaXNwYXRjaGVyKCkpCi0gICAgICAgIGhhbmRzaGFrZXIuZG9faGFuZHNoYWtlKCkKLSAgICAg
ICAgc2VsZi5hc3NlcnRFcXVhbChfR09PRF9SRVNQT05TRV9ERUZBVUxUX1BPUlQsCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLndyaXR0ZW5fZGF0YSgpKQotCi0g
ICAgZGVmIHRlc3RfZ29vZF9yZXF1ZXN0X2Nhc2VfbWl4ZWRfaGVhZGVyX25hbWVzKHNlbGYpOgot
ICAgICAgICByZXF1ZXN0ID0gX2NyZWF0ZV9yZXF1ZXN0KF9HT09EX1JFUVVFU1RfQ0FTRV9NSVhF
RF9IRUFERVJfTkFNRVMpCi0gICAgICAgIGhhbmRzaGFrZXIgPSBIYW5kc2hha2VyKHJlcXVlc3Qs
IG1vY2suTW9ja0Rpc3BhdGNoZXIoKSkKLSAgICAgICAgaGFuZHNoYWtlci5kb19oYW5kc2hha2Uo
KQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKF9HT09EX1JFU1BPTlNFX0RFRkFVTFRfUE9SVCwK
LSAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ud3JpdHRlbl9kYXRh
KCkpCi0KLSAgICBkZWYgdGVzdF9nb29kX3JlcXVlc3Rfc2VjdXJlX2RlZmF1bHRfcG9ydChzZWxm
KToKLSAgICAgICAgcmVxdWVzdCA9IF9jcmVhdGVfcmVxdWVzdChfR09PRF9SRVFVRVNUKQotICAg
ICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ubG9jYWxfYWRkciA9ICgnMC4wLjAuMCcsIDQ0MykKLSAg
ICAgICAgcmVxdWVzdC5pc19odHRwc18gPSBUcnVlCi0gICAgICAgIGhhbmRzaGFrZXIgPSBIYW5k
c2hha2VyKHJlcXVlc3QsIG1vY2suTW9ja0Rpc3BhdGNoZXIoKSkKLSAgICAgICAgaGFuZHNoYWtl
ci5kb19oYW5kc2hha2UoKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKF9HT09EX1JFU1BPTlNF
X1NFQ1VSRSwKLSAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ud3Jp
dHRlbl9kYXRhKCkpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ3NhbXBsZScsIHJlcXVlc3Qu
d3NfcHJvdG9jb2wpCi0KLSAgICBkZWYgdGVzdF9nb29kX3JlcXVlc3Rfbm9uZGVmYXVsdF9wb3J0
KHNlbGYpOgotICAgICAgICByZXF1ZXN0ID0gX2NyZWF0ZV9yZXF1ZXN0KF9HT09EX1JFUVVFU1Rf
Tk9OREVGQVVMVF9QT1JUKQotICAgICAgICBoYW5kc2hha2VyID0gSGFuZHNoYWtlcihyZXF1ZXN0
LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbW9jay5Nb2NrRGlz
cGF0Y2hlcigpKQotICAgICAgICBoYW5kc2hha2VyLmRvX2hhbmRzaGFrZSgpCi0gICAgICAgIHNl
bGYuYXNzZXJ0RXF1YWwoX0dPT0RfUkVTUE9OU0VfTk9OREVGQVVMVF9QT1JULAotICAgICAgICAg
ICAgICAgICAgICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi53cml0dGVuX2RhdGEoKSkKLSAgICAg
ICAgc2VsZi5hc3NlcnRFcXVhbCgnc2FtcGxlJywgcmVxdWVzdC53c19wcm90b2NvbCkKLQotICAg
IGRlZiB0ZXN0X2dvb2RfcmVxdWVzdF9zZWN1cmVfbm9uX2RlZmF1bHRfcG9ydChzZWxmKToKLSAg
ICAgICAgcmVxdWVzdCA9IF9jcmVhdGVfcmVxdWVzdChfR09PRF9SRVFVRVNUX05PTkRFRkFVTFRf
UE9SVCkKLSAgICAgICAgcmVxdWVzdC5pc19odHRwc18gPSBUcnVlCi0gICAgICAgIGhhbmRzaGFr
ZXIgPSBIYW5kc2hha2VyKHJlcXVlc3QsIG1vY2suTW9ja0Rpc3BhdGNoZXIoKSkKLSAgICAgICAg
aGFuZHNoYWtlci5kb19oYW5kc2hha2UoKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKF9HT09E
X1JFU1BPTlNFX1NFQ1VSRV9OT05ERUYsCi0gICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVz
dC5jb25uZWN0aW9uLndyaXR0ZW5fZGF0YSgpKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdz
YW1wbGUnLCByZXF1ZXN0LndzX3Byb3RvY29sKQotCi0gICAgZGVmIHRlc3RfZ29vZF9yZXF1ZXN0
X2RlZmF1bHRfbm9fcHJvdG9jb2woc2VsZik6Ci0gICAgICAgIHJlcXVlc3QgPSBfY3JlYXRlX3Jl
cXVlc3QoX0dPT0RfUkVRVUVTVF9OT19QUk9UT0NPTCkKLSAgICAgICAgaGFuZHNoYWtlciA9IEhh
bmRzaGFrZXIocmVxdWVzdCwgbW9jay5Nb2NrRGlzcGF0Y2hlcigpKQotICAgICAgICBoYW5kc2hh
a2VyLmRvX2hhbmRzaGFrZSgpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoX0dPT0RfUkVTUE9O
U0VfTk9fUFJPVE9DT0wsCi0gICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdC5jb25uZWN0
aW9uLndyaXR0ZW5fZGF0YSgpKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKE5vbmUsIHJlcXVl
c3Qud3NfcHJvdG9jb2wpCi0KLSAgICBkZWYgdGVzdF9nb29kX3JlcXVlc3Rfb3B0aW9uYWxfaGVh
ZGVycyhzZWxmKToKLSAgICAgICAgcmVxdWVzdCA9IF9jcmVhdGVfcmVxdWVzdChfR09PRF9SRVFV
RVNUX1dJVEhfT1BUSU9OQUxfSEVBREVSUykKLSAgICAgICAgaGFuZHNoYWtlciA9IEhhbmRzaGFr
ZXIocmVxdWVzdCwgbW9jay5Nb2NrRGlzcGF0Y2hlcigpKQotICAgICAgICBoYW5kc2hha2VyLmRv
X2hhbmRzaGFrZSgpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ0FWYWx1ZScsCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgcmVxdWVzdC5oZWFkZXJzX2luWydBS2V5J10pCi0gICAgICAgIHNl
bGYuYXNzZXJ0RXF1YWwoJycsCi0gICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdC5oZWFk
ZXJzX2luWydFbXB0eVZhbHVlJ10pCi0KLSAgICBkZWYgdGVzdF9nb29kX3JlcXVlc3Rfd2l0aF9u
b25wcmludGFibGVfa2V5KHNlbGYpOgotICAgICAgICByZXF1ZXN0ID0gX2NyZWF0ZV9yZXF1ZXN0
KF9HT09EX1JFUVVFU1RfV0lUSF9OT05QUklOVEFCTEVfS0VZKQotICAgICAgICBoYW5kc2hha2Vy
ID0gSGFuZHNoYWtlcihyZXF1ZXN0LCBtb2NrLk1vY2tEaXNwYXRjaGVyKCkpCi0gICAgICAgIGhh
bmRzaGFrZXIuZG9faGFuZHNoYWtlKCkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChfR09PRF9S
RVNQT05TRV9XSVRIX05PTlBSSU5UQUJMRV9LRVksCi0gICAgICAgICAgICAgICAgICAgICAgICAg
cmVxdWVzdC5jb25uZWN0aW9uLndyaXR0ZW5fZGF0YSgpKQotICAgICAgICBzZWxmLmFzc2VydEVx
dWFsKCdzYW1wbGUnLCByZXF1ZXN0LndzX3Byb3RvY29sKQotCi0gICAgZGVmIHRlc3RfZ29vZF9y
ZXF1ZXN0X3dpdGhfcXVlcnlfcGFydChzZWxmKToKLSAgICAgICAgcmVxdWVzdCA9IF9jcmVhdGVf
cmVxdWVzdChfR09PRF9SRVFVRVNUX1dJVEhfUVVFUllfUEFSVCkKLSAgICAgICAgaGFuZHNoYWtl
ciA9IEhhbmRzaGFrZXIocmVxdWVzdCwgbW9jay5Nb2NrRGlzcGF0Y2hlcigpKQotICAgICAgICBo
YW5kc2hha2VyLmRvX2hhbmRzaGFrZSgpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoX0dPT0Rf
UkVTUE9OU0VfV0lUSF9RVUVSWV9QQVJULAotICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVl
c3QuY29ubmVjdGlvbi53cml0dGVuX2RhdGEoKSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgn
d3M6Ly9leGFtcGxlLmNvbS9kZW1vP2U9bWMyJywgcmVxdWVzdC53c19sb2NhdGlvbikKLQotICAg
IGRlZiB0ZXN0X2JhZF9yZXF1ZXN0cyhzZWxmKToKLSAgICAgICAgZm9yIHJlcXVlc3QgaW4gbWFw
KF9jcmVhdGVfcmVxdWVzdCwgX0JBRF9SRVFVRVNUUyk6Ci0gICAgICAgICAgICBoYW5kc2hha2Vy
ID0gSGFuZHNoYWtlcihyZXF1ZXN0LCBtb2NrLk1vY2tEaXNwYXRjaGVyKCkpCi0gICAgICAgICAg
ICBzZWxmLmFzc2VydFJhaXNlcyhIYW5kc2hha2VFeGNlcHRpb24sIGhhbmRzaGFrZXIuZG9faGFu
ZHNoYWtlKQotCi0KLWNsYXNzIEh5QmkwMFZhbGlkYXRlU3VicHJvdG9jb2xUZXN0KHVuaXR0ZXN0
LlRlc3RDYXNlKToKLSAgICBkZWYgdGVzdF92YWxpZGF0ZV9zdWJwcm90b2NvbChzZWxmKToKLSAg
ICAgICAgIyBzaG91bGQgc3VjY2VlZC4KLSAgICAgICAgX3ZhbGlkYXRlX3N1YnByb3RvY29sKCdz
YW1wbGUnKQotICAgICAgICBfdmFsaWRhdGVfc3VicHJvdG9jb2woJ1NhbXBsZScpCi0gICAgICAg
IF92YWxpZGF0ZV9zdWJwcm90b2NvbCgnc2FtcGxlXHg3ZXByb3RvY29sJykKLSAgICAgICAgX3Zh
bGlkYXRlX3N1YnByb3RvY29sKCdzYW1wbGVceDIwcHJvdG9jb2wnKQotCi0gICAgICAgICMgc2hv
dWxkIGZhaWwuCi0gICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKEhhbmRzaGFrZUV4Y2VwdGlvbiwK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgX3ZhbGlkYXRlX3N1YnByb3RvY29sLAotICAgICAg
ICAgICAgICAgICAgICAgICAgICAnJykKLSAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoSGFuZHNo
YWtlRXhjZXB0aW9uLAotICAgICAgICAgICAgICAgICAgICAgICAgICBfdmFsaWRhdGVfc3VicHJv
dG9jb2wsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICdzYW1wbGVceDE5cHJvdG9jb2wnKQot
ICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhIYW5kc2hha2VFeGNlcHRpb24sCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgIF92YWxpZGF0ZV9zdWJwcm90b2NvbCwKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgJ3NhbXBsZVx4N2Zwcm90b2NvbCcpCi0gICAgICAgIHNlbGYuYXNzZXJ0UmFpc2Vz
KEhhbmRzaGFrZUV4Y2VwdGlvbiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgX3ZhbGlkYXRl
X3N1YnByb3RvY29sLAotICAgICAgICAgICAgICAgICAgICAgICAgICAjICJKYXBhbiIgaW4gSmFw
YW5lc2UKLSAgICAgICAgICAgICAgICAgICAgICAgICAgdSdcdTY1ZTVcdTY3MmMnKQotCi0KLWlm
IF9fbmFtZV9fID09ICdfX21haW5fXyc6Ci0gICAgdW5pdHRlc3QubWFpbigpCi0KLQotIyB2aTpz
dHM9NCBzdz00IGV0CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3NyYy90ZXN0L3Rlc3RfaHR0cF9oZWFkZXJf
dXRpbC5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvcHl3ZWJzb2NrZXQvc3JjL3Rlc3QvdGVzdF9odHRwX2hlYWRlcl91dGlsLnB5CmRlbGV0ZWQg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0MzZkYzU3YzM3MzEwNzFmZTI5MDE5MTllMzNmMjRjMWI1
NTlmNjA1Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2Nr
ZXQvc3JjL3Rlc3QvdGVzdF9odHRwX2hlYWRlcl91dGlsLnB5CisrKyAvZGV2L251bGwKQEAgLTEs
OTAgKzAsMCBAQAotIyEvdXNyL2Jpbi9lbnYgcHl0aG9uCi0jCi0jIENvcHlyaWdodCAyMDExLCBH
b29nbGUgSW5jLgotIyBBbGwgcmlnaHRzIHJlc2VydmVkLgotIwotIyBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSMgbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zIGFyZQotIyBtZXQ6Ci0jCi0jICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0jIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSMgICAgICogUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQotIyBj
b3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyCi0jIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUKLSMgZGlzdHJpYnV0aW9uLgotIyAgICAgKiBOZWl0aGVyIHRo
ZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCi0jIGNvbnRyaWJ1dG9y
cyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9t
Ci0jIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Np
b24uCi0jCi0jIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xE
RVJTIEFORCBDT05UUklCVVRPUlMKLSMgIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKLSMgTElNSVRFRCBUTywgVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCi0jIEEgUEFS
VElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09Q
WVJJR0hUCi0jIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLAotIyBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCi0jIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAotIyBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkKLSMgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVAotIyAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSMgT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLQot
Ci0iIiJUZXN0cyBmb3IgaHR0cF9oZWFkZXJfdXRpbCBtb2R1bGUuIiIiCi0KLQotaW1wb3J0IHVu
aXR0ZXN0Ci0KLWZyb20gbW9kX3B5d2Vic29ja2V0IGltcG9ydCBodHRwX2hlYWRlcl91dGlsCi0K
LQotY2xhc3MgVW5pdFRlc3QodW5pdHRlc3QuVGVzdENhc2UpOgotICAgICIiIkEgdW5pdHRlc3Qg
Zm9yIGh0dHBfaGVhZGVyX3V0aWwgbW9kdWxlLiIiIgotCi0gICAgZGVmIHRlc3RfcGFyc2VfcmVs
YXRpdmVfdXJpKHNlbGYpOgotICAgICAgICBob3N0LCBwb3J0LCByZXNvdXJjZSA9IGh0dHBfaGVh
ZGVyX3V0aWwucGFyc2VfdXJpKCcvd3MvdGVzdCcpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwo
Tm9uZSwgaG9zdCkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChOb25lLCBwb3J0KQotICAgICAg
ICBzZWxmLmFzc2VydEVxdWFsKCcvd3MvdGVzdCcsIHJlc291cmNlKQotCi0gICAgZGVmIHRlc3Rf
cGFyc2VfYWJzb2x1dGVfdXJpKHNlbGYpOgotICAgICAgICBob3N0LCBwb3J0LCByZXNvdXJjZSA9
IGh0dHBfaGVhZGVyX3V0aWwucGFyc2VfdXJpKAotICAgICAgICAgICAgJ3dzOi8vbG9jYWxob3N0
OjEwMDgwL3dzL3Rlc3QnKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdsb2NhbGhvc3QnLCBo
b3N0KQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKDEwMDgwLCBwb3J0KQotICAgICAgICBzZWxm
LmFzc2VydEVxdWFsKCcvd3MvdGVzdCcsIHJlc291cmNlKQotCi0gICAgICAgIGhvc3QsIHBvcnQs
IHJlc291cmNlID0gaHR0cF9oZWFkZXJfdXRpbC5wYXJzZV91cmkoCi0gICAgICAgICAgICAnd3M6
Ly9leGFtcGxlLmNvbS93cy90ZXN0JykKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnZXhhbXBs
ZS5jb20nLCBob3N0KQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKDgwLCBwb3J0KQotICAgICAg
ICBzZWxmLmFzc2VydEVxdWFsKCcvd3MvdGVzdCcsIHJlc291cmNlKQotCi0gICAgICAgIGhvc3Qs
IHBvcnQsIHJlc291cmNlID0gaHR0cF9oZWFkZXJfdXRpbC5wYXJzZV91cmkoCi0gICAgICAgICAg
ICAnd3NzOi8vZXhhbXBsZS5jb20vJykKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnZXhhbXBs
ZS5jb20nLCBob3N0KQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKDQ0MywgcG9ydCkKLSAgICAg
ICAgc2VsZi5hc3NlcnRFcXVhbCgnLycsIHJlc291cmNlKQotCi0gICAgICAgIGhvc3QsIHBvcnQs
IHJlc291cmNlID0gaHR0cF9oZWFkZXJfdXRpbC5wYXJzZV91cmkoCi0gICAgICAgICAgICAnd3M6
Ly9leGFtcGxlLmNvbTo4MDgwJykKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnZXhhbXBsZS5j
b20nLCBob3N0KQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKDgwODAsIHBvcnQpCi0gICAgICAg
IHNlbGYuYXNzZXJ0RXF1YWwoJy8nLCByZXNvdXJjZSkKLQotICAgIGRlZiB0ZXN0X3BhcnNlX2lu
dmFsaWRfdXJpKHNlbGYpOgotICAgICAgICBob3N0LCBwb3J0LCByZXNvdXJjZSA9IGh0dHBfaGVh
ZGVyX3V0aWwucGFyc2VfdXJpKCd3czovLy8nKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKE5v
bmUsIHJlc291cmNlKQotCi0gICAgICAgIGhvc3QsIHBvcnQsIHJlc291cmNlID0gaHR0cF9oZWFk
ZXJfdXRpbC5wYXJzZV91cmkoJ3dzOi8vbG9jYWxob3N0OicpCi0gICAgICAgIHNlbGYuYXNzZXJ0
RXF1YWwoTm9uZSwgcmVzb3VyY2UpCi0KLSAgICAgICAgaG9zdCwgcG9ydCwgcmVzb3VyY2UgPSBo
dHRwX2hlYWRlcl91dGlsLnBhcnNlX3VyaSgnd3M6Ly9sb2NhbGhvc3Q6L3dzJykKLSAgICAgICAg
c2VsZi5hc3NlcnRFcXVhbChOb25lLCByZXNvdXJjZSkKLQotCi1pZiBfX25hbWVfXyA9PSAnX19t
YWluX18nOgotICAgIHVuaXR0ZXN0Lm1haW4oKQotCi0KLSMgdmk6c3RzPTQgc3c9NCBldApkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy9weXdlYnNvY2tldC9zcmMvdGVzdC90ZXN0X21lbW9yaXppbmdmaWxlLnB5IGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9zcmMv
dGVzdC90ZXN0X21lbW9yaXppbmdmaWxlLnB5CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCA4ZjFiOGVlZjQzMzc4YTliMDA2MjVmMjIwYzk3ZmUyMmY3NDBhOGY3Li4wMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3JjL3Rlc3QvdGVzdF9tZW1v
cml6aW5nZmlsZS5weQorKysgL2Rldi9udWxsCkBAIC0xLDEwNCArMCwwIEBACi0jIS91c3IvYmlu
L2VudiBweXRob24KLSMKLSMgQ29weXJpZ2h0IDIwMTEsIEdvb2dsZSBJbmMuCi0jIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCi0jCi0jIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCi0jIG1ldDoKLSMK
LSMgICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKLSMgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgotIyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCi0jIGNvcHlyaWdodCBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKLSMgaW4gdGhl
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQot
IyBkaXN0cmlidXRpb24uCi0jICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4g
bm9yIHRoZSBuYW1lcyBvZiBpdHMKLSMgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9y
c2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KLSMgdGhpcyBzb2Z0d2FyZSB3aXRo
b3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLSMKLSMgVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwot
IyAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVAotIyBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKLSMgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKLSMgT1dORVIgT1IgQ09O
VFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
Ci0jIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QKLSMgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCi0jIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQotIyBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
Ci0jIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRQotIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0Yg
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotCi0KLSIiIlRlc3RzIGZvciBtZW1vcml6
aW5nZmlsZSBtb2R1bGUuIiIiCi0KLQotaW1wb3J0IFN0cmluZ0lPCi1pbXBvcnQgdW5pdHRlc3QK
LQotaW1wb3J0IHNldF9zeXNfcGF0aCAgIyBVcGRhdGUgc3lzLnBhdGggdG8gbG9jYXRlIG1vZF9w
eXdlYnNvY2tldCBtb2R1bGUuCi0KLWZyb20gbW9kX3B5d2Vic29ja2V0IGltcG9ydCBtZW1vcml6
aW5nZmlsZQotCi0KLWNsYXNzIFV0aWxUZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKLSAgICAiIiJB
IHVuaXR0ZXN0IGZvciBtZW1vcml6aW5nZmlsZSBtb2R1bGUuIiIiCi0KLSAgICBkZWYgY2hlY2so
c2VsZiwgbWVtb3JpemluZ19maWxlLCBudW1fcmVhZCwgZXhwZWN0ZWRfbGlzdCk6Ci0gICAgICAg
IGZvciB1bnVzZWQgaW4gcmFuZ2UobnVtX3JlYWQpOgotICAgICAgICAgICAgbWVtb3JpemluZ19m
aWxlLnJlYWRsaW5lKCkKLSAgICAgICAgYWN0dWFsX2xpc3QgPSBtZW1vcml6aW5nX2ZpbGUuZ2V0
X21lbW9yaXplZF9saW5lcygpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobGVuKGV4cGVjdGVk
X2xpc3QpLCBsZW4oYWN0dWFsX2xpc3QpKQotICAgICAgICBmb3IgZXhwZWN0ZWQsIGFjdHVhbCBp
biB6aXAoZXhwZWN0ZWRfbGlzdCwgYWN0dWFsX2xpc3QpOgotICAgICAgICAgICAgc2VsZi5hc3Nl
cnRFcXVhbChleHBlY3RlZCwgYWN0dWFsKQotCi0gICAgZGVmIGNoZWNrX3dpdGhfc2l6ZShzZWxm
LCBtZW1vcml6aW5nX2ZpbGUsIHJlYWRfc2l6ZSwgZXhwZWN0ZWRfbGlzdCk6Ci0gICAgICAgIHJl
YWRfbGlzdCA9IFtdCi0gICAgICAgIHJlYWRfbGluZSA9ICcnCi0gICAgICAgIHdoaWxlIFRydWU6
Ci0gICAgICAgICAgICBsaW5lID0gbWVtb3JpemluZ19maWxlLnJlYWRsaW5lKHJlYWRfc2l6ZSkK
LSAgICAgICAgICAgIGxpbmVfbGVuZ3RoID0gbGVuKGxpbmUpCi0gICAgICAgICAgICBzZWxmLmFz
c2VydFRydWUobGluZV9sZW5ndGggPD0gcmVhZF9zaXplKQotICAgICAgICAgICAgaWYgbGluZV9s
ZW5ndGggPT0gMDoKLSAgICAgICAgICAgICAgICBpZiByZWFkX2xpbmUgIT0gJyc6Ci0gICAgICAg
ICAgICAgICAgICAgIHJlYWRfbGlzdC5hcHBlbmQocmVhZF9saW5lKQotICAgICAgICAgICAgICAg
IGJyZWFrCi0gICAgICAgICAgICByZWFkX2xpbmUgKz0gbGluZQotICAgICAgICAgICAgaWYgbGlu
ZVtsaW5lX2xlbmd0aCAtIDFdID09ICdcbic6Ci0gICAgICAgICAgICAgICAgcmVhZF9saXN0LmFw
cGVuZChyZWFkX2xpbmUpCi0gICAgICAgICAgICAgICAgcmVhZF9saW5lID0gJycKLSAgICAgICAg
YWN0dWFsX2xpc3QgPSBtZW1vcml6aW5nX2ZpbGUuZ2V0X21lbW9yaXplZF9saW5lcygpCi0gICAg
ICAgIHNlbGYuYXNzZXJ0RXF1YWwobGVuKGV4cGVjdGVkX2xpc3QpLCBsZW4oYWN0dWFsX2xpc3Qp
KQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGxlbihleHBlY3RlZF9saXN0KSwgbGVuKHJlYWRf
bGlzdCkpCi0gICAgICAgIGZvciBleHBlY3RlZCwgYWN0dWFsLCByZWFkIGluIHppcChleHBlY3Rl
ZF9saXN0LCBhY3R1YWxfbGlzdCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHJlYWRfbGlzdCk6Ci0gICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGV4cGVjdGVk
LCBhY3R1YWwpCi0gICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGV4cGVjdGVkLCByZWFkKQot
Ci0gICAgZGVmIHRlc3RfZ2V0X21lbW9yaXplZF9saW5lcyhzZWxmKToKLSAgICAgICAgbWVtb3Jp
emluZ19maWxlID0gbWVtb3JpemluZ2ZpbGUuTWVtb3JpemluZ0ZpbGUoU3RyaW5nSU8uU3RyaW5n
SU8oCi0gICAgICAgICAgICAgICAgJ0hlbGxvXG5Xb3JsZFxuV2VsY29tZScpKQotICAgICAgICBz
ZWxmLmNoZWNrKG1lbW9yaXppbmdfZmlsZSwgMywgWydIZWxsb1xuJywgJ1dvcmxkXG4nLCAnV2Vs
Y29tZSddKQotCi0gICAgZGVmIHRlc3RfZ2V0X21lbW9yaXplZF9saW5lc19saW1pdF9tZW1vcml6
ZWRfbGluZXMoc2VsZik6Ci0gICAgICAgIG1lbW9yaXppbmdfZmlsZSA9IG1lbW9yaXppbmdmaWxl
Lk1lbW9yaXppbmdGaWxlKFN0cmluZ0lPLlN0cmluZ0lPKAotICAgICAgICAgICAgICAgICdIZWxs
b1xuV29ybGRcbldlbGNvbWUnKSwgMikKLSAgICAgICAgc2VsZi5jaGVjayhtZW1vcml6aW5nX2Zp
bGUsIDMsIFsnSGVsbG9cbicsICdXb3JsZFxuJ10pCi0KLSAgICBkZWYgdGVzdF9nZXRfbWVtb3Jp
emVkX2xpbmVzX2VtcHR5X2ZpbGUoc2VsZik6Ci0gICAgICAgIG1lbW9yaXppbmdfZmlsZSA9IG1l
bW9yaXppbmdmaWxlLk1lbW9yaXppbmdGaWxlKFN0cmluZ0lPLlN0cmluZ0lPKAotICAgICAgICAg
ICAgICAgICcnKSkKLSAgICAgICAgc2VsZi5jaGVjayhtZW1vcml6aW5nX2ZpbGUsIDEwLCBbXSkK
LQotICAgIGRlZiB0ZXN0X2dldF9tZW1vcml6ZWRfbGluZXNfd2l0aF9zaXplKHNlbGYpOgotICAg
ICAgICBmb3Igc2l6ZSBpbiByYW5nZSgxLCAxMCk6Ci0gICAgICAgICAgICBtZW1vcml6aW5nX2Zp
bGUgPSBtZW1vcml6aW5nZmlsZS5NZW1vcml6aW5nRmlsZShTdHJpbmdJTy5TdHJpbmdJTygKLSAg
ICAgICAgICAgICAgICAnSGVsbG9cbldvcmxkXG5XZWxjb21lJykpCi0gICAgICAgICAgICBzZWxm
LmNoZWNrX3dpdGhfc2l6ZShtZW1vcml6aW5nX2ZpbGUsIHNpemUsCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBbJ0hlbGxvXG4nLCAnV29ybGRcbicsICdXZWxjb21lJ10pCi0KLWlm
IF9fbmFtZV9fID09ICdfX21haW5fXyc6Ci0gICAgdW5pdHRlc3QubWFpbigpCi0KLQotIyB2aTpz
dHM9NCBzdz00IGV0CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3NyYy90ZXN0L3Rlc3RfbW9jay5weSBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2Nr
ZXQvc3JjL3Rlc3QvdGVzdF9tb2NrLnB5CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3
ZGMyM2E3M2Q4ZmIxYTA3YWViM2U1YWU5NDAyY2M4NmI4ZmNjMzY2Li4wMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3JjL3Rlc3QvdGVzdF9tb2NrLnB5
CisrKyAvZGV2L251bGwKQEAgLTEsMTQ1ICswLDAgQEAKLSMhL3Vzci9iaW4vZW52IHB5dGhvbgot
IwotIyBDb3B5cmlnaHQgMjAxMSwgR29vZ2xlIEluYy4KLSMgQWxsIHJpZ2h0cyByZXNlcnZlZC4K
LSMKLSMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0Ci0jIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKLSMgbWV0OgotIwotIyAgICAgKiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAotIyBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCi0jICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUKLSMgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgotIyBpbiB0aGUgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCi0jIGRpc3RyaWJ1dGlv
bi4KLSMgICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVz
IG9mIGl0cwotIyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3Rl
IHByb2R1Y3RzIGRlcml2ZWQgZnJvbQotIyB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMg
cHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgotIwotIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCi0jICJBUyBJUyIgQU5E
IEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCi0j
IExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUgotIyBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAotIyBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKLSMgU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAot
IyBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwKLSMgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCi0jIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSMgKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFCi0jIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCi0KLQotIiIiVGVzdHMgZm9yIG1vY2sgbW9kdWxlLiIiIgotCi0K
LWltcG9ydCBRdWV1ZQotaW1wb3J0IHRocmVhZGluZwotaW1wb3J0IHVuaXR0ZXN0Ci0KLWltcG9y
dCBzZXRfc3lzX3BhdGggICMgVXBkYXRlIHN5cy5wYXRoIHRvIGxvY2F0ZSBtb2RfcHl3ZWJzb2Nr
ZXQgbW9kdWxlLgotCi1mcm9tIHRlc3QgaW1wb3J0IG1vY2sKLQotCi1jbGFzcyBNb2NrQ29ublRl
c3QodW5pdHRlc3QuVGVzdENhc2UpOgotICAgICIiIkEgdW5pdHRlc3QgZm9yIE1vY2tDb25uIGNs
YXNzLiIiIgotCi0gICAgZGVmIHNldFVwKHNlbGYpOgotICAgICAgICBzZWxmLl9jb25uID0gbW9j
ay5Nb2NrQ29ubignQUJDXHJcbkRFRkdcclxuXHJcbkhJSksnKQotCi0gICAgZGVmIHRlc3RfcmVh
ZGxpbmUoc2VsZik6Ci0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ0FCQ1xyXG4nLCBzZWxmLl9j
b25uLnJlYWRsaW5lKCkpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ0RFRkdcclxuJywgc2Vs
Zi5fY29ubi5yZWFkbGluZSgpKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdcclxuJywgc2Vs
Zi5fY29ubi5yZWFkbGluZSgpKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdISUpLJywgc2Vs
Zi5fY29ubi5yZWFkbGluZSgpKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCcnLCBzZWxmLl9j
b25uLnJlYWRsaW5lKCkpCi0KLSAgICBkZWYgdGVzdF9yZWFkKHNlbGYpOgotICAgICAgICBzZWxm
LmFzc2VydEVxdWFsKCdBQkNcclxuRCcsIHNlbGYuX2Nvbm4ucmVhZCg2KSkKLSAgICAgICAgc2Vs
Zi5hc3NlcnRFcXVhbCgnRUZHXHJcblxyXG5ISScsIHNlbGYuX2Nvbm4ucmVhZCg5KSkKLSAgICAg
ICAgc2VsZi5hc3NlcnRFcXVhbCgnSksnLCBzZWxmLl9jb25uLnJlYWQoMTApKQotICAgICAgICBz
ZWxmLmFzc2VydEVxdWFsKCcnLCBzZWxmLl9jb25uLnJlYWQoMTApKQotCi0gICAgZGVmIHRlc3Rf
cmVhZF9hbmRfcmVhZGxpbmUoc2VsZik6Ci0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ0FCQ1xy
XG5EJywgc2VsZi5fY29ubi5yZWFkKDYpKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdFRkdc
clxuJywgc2VsZi5fY29ubi5yZWFkbGluZSgpKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdc
clxuSElKSycsIHNlbGYuX2Nvbm4ucmVhZCg5KSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgn
Jywgc2VsZi5fY29ubi5yZWFkbGluZSgpKQotCi0gICAgZGVmIHRlc3Rfd3JpdGUoc2VsZik6Ci0g
ICAgICAgIHNlbGYuX2Nvbm4ud3JpdGUoJ0hlbGxvXHJcbicpCi0gICAgICAgIHNlbGYuX2Nvbm4u
d3JpdGUoJ1dvcmxkXHJcbicpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ0hlbGxvXHJcbldv
cmxkXHJcbicsIHNlbGYuX2Nvbm4ud3JpdHRlbl9kYXRhKCkpCi0KLQotY2xhc3MgTW9ja0Jsb2Nr
aW5nQ29ublRlc3QodW5pdHRlc3QuVGVzdENhc2UpOgotICAgICIiIkEgdW5pdHRlc3QgZm9yIE1v
Y2tCbG9ja2luZ0Nvbm4gY2xhc3MuIiIiCi0KLSAgICBkZWYgdGVzdF9yZWFkKHNlbGYpOgotICAg
ICAgICAiIiJUZXN0cyB0aGF0IGRhdGEgcHV0IHRvIE1vY2tCbG9ja2luZ0Nvbm4gYnkgcHV0X2J5
dGVzIG1ldGhvZCBjYW4gYmUKLSAgICAgICAgcmVhZCBmcm9tIGl0LgotICAgICAgICAiIiIKLQot
ICAgICAgICBjbGFzcyBMaW5lUmVhZGVyKHRocmVhZGluZy5UaHJlYWQpOgotICAgICAgICAgICAg
IiIiQSB0ZXN0IGNsYXNzIHRoYXQgbGF1bmNoZXMgYSB0aHJlYWQsIGNhbGxzIHJlYWRsaW5lIG9u
IHRoZQotICAgICAgICAgICAgc3BlY2lmaWVkIGNvbm4gcmVwZWF0ZWRseSBhbmQgcHV0cyB0aGUg
cmVhZCBkYXRhIHRvIHRoZSBzcGVjaWZpZWQKLSAgICAgICAgICAgIHF1ZXVlLgotICAgICAgICAg
ICAgIiIiCi0KLSAgICAgICAgICAgIGRlZiBfX2luaXRfXyhzZWxmLCBjb25uLCBxdWV1ZSk6Ci0g
ICAgICAgICAgICAgICAgdGhyZWFkaW5nLlRocmVhZC5fX2luaXRfXyhzZWxmKQotICAgICAgICAg
ICAgICAgIHNlbGYuX3F1ZXVlID0gcXVldWUKLSAgICAgICAgICAgICAgICBzZWxmLl9jb25uID0g
Y29ubgotICAgICAgICAgICAgICAgIHNlbGYuc2V0RGFlbW9uKFRydWUpCi0gICAgICAgICAgICAg
ICAgc2VsZi5zdGFydCgpCi0KLSAgICAgICAgICAgIGRlZiBydW4oc2VsZik6Ci0gICAgICAgICAg
ICAgICAgd2hpbGUgVHJ1ZToKLSAgICAgICAgICAgICAgICAgICAgZGF0YSA9IHNlbGYuX2Nvbm4u
cmVhZGxpbmUoKQotICAgICAgICAgICAgICAgICAgICBzZWxmLl9xdWV1ZS5wdXQoZGF0YSkKLQot
ICAgICAgICBjb25uID0gbW9jay5Nb2NrQmxvY2tpbmdDb25uKCkKLSAgICAgICAgcXVldWUgPSBR
dWV1ZS5RdWV1ZSgpCi0gICAgICAgIHJlYWRlciA9IExpbmVSZWFkZXIoY29ubiwgcXVldWUpCi0g
ICAgICAgIHNlbGYuZmFpbFVubGVzcyhxdWV1ZS5lbXB0eSgpKQotICAgICAgICBjb25uLnB1dF9i
eXRlcygnRm9vIGJhclxyXG4nKQotICAgICAgICByZWFkID0gcXVldWUuZ2V0KCkKLSAgICAgICAg
c2VsZi5hc3NlcnRFcXVhbCgnRm9vIGJhclxyXG4nLCByZWFkKQotCi0KLWNsYXNzIE1vY2tUYWJs
ZVRlc3QodW5pdHRlc3QuVGVzdENhc2UpOgotICAgICIiIkEgdW5pdHRlc3QgZm9yIE1vY2tUYWJs
ZSBjbGFzcy4iIiIKLQotICAgIGRlZiB0ZXN0X2NyZWF0ZV9mcm9tX2RpY3Qoc2VsZik6Ci0gICAg
ICAgIHRhYmxlID0gbW9jay5Nb2NrVGFibGUoeydLZXknOiAnVmFsdWUnfSkKLSAgICAgICAgc2Vs
Zi5hc3NlcnRFcXVhbCgnVmFsdWUnLCB0YWJsZS5nZXQoJ0tFWScpKQotICAgICAgICBzZWxmLmFz
c2VydEVxdWFsKCdWYWx1ZScsIHRhYmxlWydrZXknXSkKLQotICAgIGRlZiB0ZXN0X2NyZWF0ZV9m
cm9tX2xpc3Qoc2VsZik6Ci0gICAgICAgIHRhYmxlID0gbW9jay5Nb2NrVGFibGUoWygnS2V5Jywg
J1ZhbHVlJyldKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdWYWx1ZScsIHRhYmxlLmdldCgn
S0VZJykpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ1ZhbHVlJywgdGFibGVbJ2tleSddKQot
Ci0gICAgZGVmIHRlc3RfY3JlYXRlX2Zyb21fdHVwbGUoc2VsZik6Ci0gICAgICAgIHRhYmxlID0g
bW9jay5Nb2NrVGFibGUoKCgnS2V5JywgJ1ZhbHVlJyksKSkKLSAgICAgICAgc2VsZi5hc3NlcnRF
cXVhbCgnVmFsdWUnLCB0YWJsZS5nZXQoJ0tFWScpKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFs
KCdWYWx1ZScsIHRhYmxlWydrZXknXSkKLQotICAgIGRlZiB0ZXN0X3NldF9hbmRfZ2V0KHNlbGYp
OgotICAgICAgICB0YWJsZSA9IG1vY2suTW9ja1RhYmxlKCkKLSAgICAgICAgc2VsZi5hc3NlcnRF
cXVhbChOb25lLCB0YWJsZS5nZXQoJ0tleScpKQotICAgICAgICB0YWJsZVsnS2V5J10gPSAnVmFs
dWUnCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ1ZhbHVlJywgdGFibGUuZ2V0KCdLZXknKSkK
LSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnVmFsdWUnLCB0YWJsZS5nZXQoJ2tleScpKQotICAg
ICAgICBzZWxmLmFzc2VydEVxdWFsKCdWYWx1ZScsIHRhYmxlLmdldCgnS0VZJykpCi0gICAgICAg
IHNlbGYuYXNzZXJ0RXF1YWwoJ1ZhbHVlJywgdGFibGVbJ0tleSddKQotICAgICAgICBzZWxmLmFz
c2VydEVxdWFsKCdWYWx1ZScsIHRhYmxlWydrZXknXSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVh
bCgnVmFsdWUnLCB0YWJsZVsnS0VZJ10pCi0KLQotaWYgX19uYW1lX18gPT0gJ19fbWFpbl9fJzoK
LSAgICB1bml0dGVzdC5tYWluKCkKLQotCi0jIHZpOnN0cz00IHN3PTQgZXQKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJz
b2NrZXQvc3JjL3Rlc3QvdGVzdF9tc2d1dGlsLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9zcmMvdGVzdC90ZXN0X21zZ3V0
aWwucHkKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDVmZWRjZjkyZjYxZmU4Y2Q5ZTU2
MGYyNzRhODlhMDNiNDNhNzJiZGEuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy9weXdlYnNvY2tldC9zcmMvdGVzdC90ZXN0X21zZ3V0aWwucHkKKysrIC9kZXYvbnVsbApA
QCAtMSwxMzU2ICswLDAgQEAKLSMhL3Vzci9iaW4vZW52IHB5dGhvbgotIwotIyBDb3B5cmlnaHQg
MjAxMiwgR29vZ2xlIEluYy4KLSMgQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSMKLSMgUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
Ci0jIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucyBhcmUKLSMgbWV0OgotIwotIyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotIyBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0jICAg
ICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUKLSMgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lcgotIyBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCi0jIGRpc3RyaWJ1dGlvbi4KLSMgICAgICogTmVp
dGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwotIyBjb250
cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2
ZWQgZnJvbQotIyB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBw
ZXJtaXNzaW9uLgotIwotIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklH
SFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCi0jICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCi0jIExJTUlURUQgVE8sIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgot
IyBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
VEhFIENPUFlSSUdIVAotIyBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKLSMgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAotIyBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwK
LSMgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZCi0jIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSMgKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0jIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCi0KLQotIiIiVGVzdHMgZm9yIG1zZ3V0aWwgbW9kdWxlLiIiIgotCi0KLWltcG9ydCBhcnJh
eQotaW1wb3J0IFF1ZXVlCi1pbXBvcnQgcmFuZG9tCi1pbXBvcnQgc3RydWN0Ci1pbXBvcnQgdW5p
dHRlc3QKLWltcG9ydCB6bGliCi0KLWltcG9ydCBzZXRfc3lzX3BhdGggICMgVXBkYXRlIHN5cy5w
YXRoIHRvIGxvY2F0ZSBtb2RfcHl3ZWJzb2NrZXQgbW9kdWxlLgotCi1mcm9tIG1vZF9weXdlYnNv
Y2tldCBpbXBvcnQgY29tbW9uCi1mcm9tIG1vZF9weXdlYnNvY2tldC5leHRlbnNpb25zIGltcG9y
dCBEZWZsYXRlRnJhbWVFeHRlbnNpb25Qcm9jZXNzb3IKLWZyb20gbW9kX3B5d2Vic29ja2V0LmV4
dGVuc2lvbnMgaW1wb3J0IFBlck1lc3NhZ2VDb21wcmVzc0V4dGVuc2lvblByb2Nlc3NvcgotZnJv
bSBtb2RfcHl3ZWJzb2NrZXQuZXh0ZW5zaW9ucyBpbXBvcnQgUGVyTWVzc2FnZURlZmxhdGVFeHRl
bnNpb25Qcm9jZXNzb3IKLWZyb20gbW9kX3B5d2Vic29ja2V0IGltcG9ydCBtc2d1dGlsCi1mcm9t
IG1vZF9weXdlYnNvY2tldC5zdHJlYW0gaW1wb3J0IEludmFsaWRVVEY4RXhjZXB0aW9uCi1mcm9t
IG1vZF9weXdlYnNvY2tldC5zdHJlYW0gaW1wb3J0IFN0cmVhbQotZnJvbSBtb2RfcHl3ZWJzb2Nr
ZXQuc3RyZWFtIGltcG9ydCBTdHJlYW1IaXhpZTc1Ci1mcm9tIG1vZF9weXdlYnNvY2tldC5zdHJl
YW0gaW1wb3J0IFN0cmVhbU9wdGlvbnMKLWZyb20gbW9kX3B5d2Vic29ja2V0IGltcG9ydCB1dGls
Ci1mcm9tIHRlc3QgaW1wb3J0IG1vY2sKLQotCi0jIFdlIHVzZSBvbmUgZml4ZWQgbm9uY2UgZm9y
IHRlc3RpbmcgaW5zdGVhZCBvZiBjcnlwdG9ncmFwaGljYWxseSBzZWN1cmUgUFJORy4KLV9NQVNL
SU5HX05PTkNFID0gJ0FCQ0QnCi0KLQotZGVmIF9tYXNrX2h5YmkoZnJhbWUpOgotICAgIGZyYW1l
X2tleSA9IG1hcChvcmQsIF9NQVNLSU5HX05PTkNFKQotICAgIGZyYW1lX2tleV9sZW4gPSBsZW4o
ZnJhbWVfa2V5KQotICAgIHJlc3VsdCA9IGFycmF5LmFycmF5KCdCJykKLSAgICByZXN1bHQuZnJv
bXN0cmluZyhmcmFtZSkKLSAgICBjb3VudCA9IDAKLSAgICBmb3IgaSBpbiB4cmFuZ2UobGVuKHJl
c3VsdCkpOgotICAgICAgICByZXN1bHRbaV0gXj0gZnJhbWVfa2V5W2NvdW50XQotICAgICAgICBj
b3VudCA9IChjb3VudCArIDEpICUgZnJhbWVfa2V5X2xlbgotICAgIHJldHVybiBfTUFTS0lOR19O
T05DRSArIHJlc3VsdC50b3N0cmluZygpCi0KLQotZGVmIF9pbnN0YWxsX2V4dGVuc2lvbl9wcm9j
ZXNzb3IocHJvY2Vzc29yLCByZXF1ZXN0LCBzdHJlYW1fb3B0aW9ucyk6Ci0gICAgcmVzcG9uc2Ug
PSBwcm9jZXNzb3IuZ2V0X2V4dGVuc2lvbl9yZXNwb25zZSgpCi0gICAgaWYgcmVzcG9uc2UgaXMg
bm90IE5vbmU6Ci0gICAgICAgIHByb2Nlc3Nvci5zZXR1cF9zdHJlYW1fb3B0aW9ucyhzdHJlYW1f
b3B0aW9ucykKLSAgICAgICAgcmVxdWVzdC53c19leHRlbnNpb25fcHJvY2Vzc29ycy5hcHBlbmQo
cHJvY2Vzc29yKQotCi0KLWRlZiBfY3JlYXRlX3JlcXVlc3RfZnJvbV9yYXdkYXRhKAotICAgICAg
ICByZWFkX2RhdGEsCi0gICAgICAgIGRlZmxhdGVfZnJhbWVfcmVxdWVzdD1Ob25lLAotICAgICAg
ICBwZXJtZXNzYWdlX2NvbXByZXNzaW9uX3JlcXVlc3Q9Tm9uZSwKLSAgICAgICAgcGVybWVzc2Fn
ZV9kZWZsYXRlX3JlcXVlc3Q9Tm9uZSk6Ci0gICAgcmVxID0gbW9jay5Nb2NrUmVxdWVzdChjb25u
ZWN0aW9uPW1vY2suTW9ja0Nvbm4oJycuam9pbihyZWFkX2RhdGEpKSkKLSAgICByZXEud3NfdmVy
c2lvbiA9IGNvbW1vbi5WRVJTSU9OX0hZQklfTEFURVNUCi0gICAgcmVxLndzX2V4dGVuc2lvbl9w
cm9jZXNzb3JzID0gW10KLQotICAgIHByb2Nlc3NvciA9IE5vbmUKLSAgICBpZiBkZWZsYXRlX2Zy
YW1lX3JlcXVlc3QgaXMgbm90IE5vbmU6Ci0gICAgICAgIHByb2Nlc3NvciA9IERlZmxhdGVGcmFt
ZUV4dGVuc2lvblByb2Nlc3NvcihkZWZsYXRlX2ZyYW1lX3JlcXVlc3QpCi0gICAgZWxpZiBwZXJt
ZXNzYWdlX2NvbXByZXNzaW9uX3JlcXVlc3QgaXMgbm90IE5vbmU6Ci0gICAgICAgIHByb2Nlc3Nv
ciA9IFBlck1lc3NhZ2VDb21wcmVzc0V4dGVuc2lvblByb2Nlc3NvcigKLSAgICAgICAgICAgICAg
ICBwZXJtZXNzYWdlX2NvbXByZXNzaW9uX3JlcXVlc3QpCi0gICAgZWxpZiBwZXJtZXNzYWdlX2Rl
ZmxhdGVfcmVxdWVzdCBpcyBub3QgTm9uZToKLSAgICAgICAgcHJvY2Vzc29yID0gUGVyTWVzc2Fn
ZURlZmxhdGVFeHRlbnNpb25Qcm9jZXNzb3IoCi0gICAgICAgICAgICAgICAgcGVybWVzc2FnZV9k
ZWZsYXRlX3JlcXVlc3QpCi0KLSAgICBzdHJlYW1fb3B0aW9ucyA9IFN0cmVhbU9wdGlvbnMoKQot
ICAgIGlmIHByb2Nlc3NvciBpcyBub3QgTm9uZToKLSAgICAgICAgX2luc3RhbGxfZXh0ZW5zaW9u
X3Byb2Nlc3Nvcihwcm9jZXNzb3IsIHJlcSwgc3RyZWFtX29wdGlvbnMpCi0gICAgcmVxLndzX3N0
cmVhbSA9IFN0cmVhbShyZXEsIHN0cmVhbV9vcHRpb25zKQotCi0gICAgcmV0dXJuIHJlcQotCi0K
LWRlZiBfY3JlYXRlX3JlcXVlc3QoKmZyYW1lcyk6Ci0gICAgIiIiQ3JlYXRlcyBNb2NrUmVxdWVz
dCB1c2luZyBkYXRhIGdpdmVuIGFzIGZyYW1lcy4KLQotICAgIGZyYW1lcyB3aWxsIGJlIHJldHVy
bmVkIG9uIGNhbGxpbmcgcmVxdWVzdC5jb25uZWN0aW9uLnJlYWQoKSB3aGVyZSByZXF1ZXN0Ci0g
ICAgaXMgTW9ja1JlcXVlc3QgcmV0dXJuZWQgYnkgdGhpcyBmdW5jdGlvbi4KLSAgICAiIiIKLQot
ICAgIHJlYWRfZGF0YSA9IFtdCi0gICAgZm9yIChoZWFkZXIsIGJvZHkpIGluIGZyYW1lczoKLSAg
ICAgICAgcmVhZF9kYXRhLmFwcGVuZChoZWFkZXIgKyBfbWFza19oeWJpKGJvZHkpKQotCi0gICAg
cmV0dXJuIF9jcmVhdGVfcmVxdWVzdF9mcm9tX3Jhd2RhdGEocmVhZF9kYXRhKQotCi0KLWRlZiBf
Y3JlYXRlX2Jsb2NraW5nX3JlcXVlc3QoKToKLSAgICAiIiJDcmVhdGVzIE1vY2tSZXF1ZXN0Lgot
Ci0gICAgRGF0YSB3cml0dGVuIHRvIGEgTW9ja1JlcXVlc3QgY2FuIGJlIHJlYWQgb3V0IGJ5IGNh
bGxpbmcKLSAgICByZXF1ZXN0LmNvbm5lY3Rpb24ud3JpdHRlbl9kYXRhKCkuCi0gICAgIiIiCi0K
LSAgICByZXEgPSBtb2NrLk1vY2tSZXF1ZXN0KGNvbm5lY3Rpb249bW9jay5Nb2NrQmxvY2tpbmdD
b25uKCkpCi0gICAgcmVxLndzX3ZlcnNpb24gPSBjb21tb24uVkVSU0lPTl9IWUJJX0xBVEVTVAot
ICAgIHN0cmVhbV9vcHRpb25zID0gU3RyZWFtT3B0aW9ucygpCi0gICAgcmVxLndzX3N0cmVhbSA9
IFN0cmVhbShyZXEsIHN0cmVhbV9vcHRpb25zKQotICAgIHJldHVybiByZXEKLQotCi1kZWYgX2Ny
ZWF0ZV9yZXF1ZXN0X2hpeGllNzUocmVhZF9kYXRhPScnKToKLSAgICByZXEgPSBtb2NrLk1vY2tS
ZXF1ZXN0KGNvbm5lY3Rpb249bW9jay5Nb2NrQ29ubihyZWFkX2RhdGEpKQotICAgIHJlcS53c19z
dHJlYW0gPSBTdHJlYW1IaXhpZTc1KHJlcSkKLSAgICByZXR1cm4gcmVxCi0KLQotZGVmIF9jcmVh
dGVfYmxvY2tpbmdfcmVxdWVzdF9oaXhpZTc1KCk6Ci0gICAgcmVxID0gbW9jay5Nb2NrUmVxdWVz
dChjb25uZWN0aW9uPW1vY2suTW9ja0Jsb2NraW5nQ29ubigpKQotICAgIHJlcS53c19zdHJlYW0g
PSBTdHJlYW1IaXhpZTc1KHJlcSkKLSAgICByZXR1cm4gcmVxCi0KLQotY2xhc3MgQmFzaWNNZXNz
YWdlVGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6Ci0gICAgIiIiQmFzaWMgdGVzdHMgZm9yIFN0cmVh
bS4iIiIKLQotICAgIGRlZiB0ZXN0X3NlbmRfbWVzc2FnZShzZWxmKToKLSAgICAgICAgcmVxdWVz
dCA9IF9jcmVhdGVfcmVxdWVzdCgpCi0gICAgICAgIG1zZ3V0aWwuc2VuZF9tZXNzYWdlKHJlcXVl
c3QsICdIZWxsbycpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ1x4ODFceDA1SGVsbG8nLCBy
ZXF1ZXN0LmNvbm5lY3Rpb24ud3JpdHRlbl9kYXRhKCkpCi0KLSAgICAgICAgcGF5bG9hZCA9ICdh
JyAqIDEyNQotICAgICAgICByZXF1ZXN0ID0gX2NyZWF0ZV9yZXF1ZXN0KCkKLSAgICAgICAgbXNn
dXRpbC5zZW5kX21lc3NhZ2UocmVxdWVzdCwgcGF5bG9hZCkKLSAgICAgICAgc2VsZi5hc3NlcnRF
cXVhbCgnXHg4MVx4N2QnICsgcGF5bG9hZCwKLSAgICAgICAgICAgICAgICAgICAgICAgICByZXF1
ZXN0LmNvbm5lY3Rpb24ud3JpdHRlbl9kYXRhKCkpCi0KLSAgICBkZWYgdGVzdF9zZW5kX21lZGl1
bV9tZXNzYWdlKHNlbGYpOgotICAgICAgICBwYXlsb2FkID0gJ2EnICogMTI2Ci0gICAgICAgIHJl
cXVlc3QgPSBfY3JlYXRlX3JlcXVlc3QoKQotICAgICAgICBtc2d1dGlsLnNlbmRfbWVzc2FnZShy
ZXF1ZXN0LCBwYXlsb2FkKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdceDgxXHg3ZVx4MDBc
eDdlJyArIHBheWxvYWQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdC5jb25uZWN0
aW9uLndyaXR0ZW5fZGF0YSgpKQotCi0gICAgICAgIHBheWxvYWQgPSAnYScgKiAoKDEgPDwgMTYp
IC0gMSkKLSAgICAgICAgcmVxdWVzdCA9IF9jcmVhdGVfcmVxdWVzdCgpCi0gICAgICAgIG1zZ3V0
aWwuc2VuZF9tZXNzYWdlKHJlcXVlc3QsIHBheWxvYWQpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1
YWwoJ1x4ODFceDdlXHhmZlx4ZmYnICsgcGF5bG9hZCwKLSAgICAgICAgICAgICAgICAgICAgICAg
ICByZXF1ZXN0LmNvbm5lY3Rpb24ud3JpdHRlbl9kYXRhKCkpCi0KLSAgICBkZWYgdGVzdF9zZW5k
X2xhcmdlX21lc3NhZ2Uoc2VsZik6Ci0gICAgICAgIHBheWxvYWQgPSAnYScgKiAoMSA8PCAxNikK
LSAgICAgICAgcmVxdWVzdCA9IF9jcmVhdGVfcmVxdWVzdCgpCi0gICAgICAgIG1zZ3V0aWwuc2Vu
ZF9tZXNzYWdlKHJlcXVlc3QsIHBheWxvYWQpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ1x4
ODFceDdmXHgwMFx4MDBceDAwXHgwMFx4MDBceDAxXHgwMFx4MDAnICsgcGF5bG9hZCwKLSAgICAg
ICAgICAgICAgICAgICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ud3JpdHRlbl9kYXRhKCkpCi0K
LSAgICBkZWYgdGVzdF9zZW5kX21lc3NhZ2VfdW5pY29kZShzZWxmKToKLSAgICAgICAgcmVxdWVz
dCA9IF9jcmVhdGVfcmVxdWVzdCgpCi0gICAgICAgIG1zZ3V0aWwuc2VuZF9tZXNzYWdlKHJlcXVl
c3QsIHUnXHU2NWU1JykKLSAgICAgICAgIyBVKzY1ZTUgaXMgZW5jb2RlZCBhcyBlNiw5NyxhNSBp
biBVVEYtOAotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdceDgxXHgwM1x4ZTZceDk3XHhhNScs
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLndyaXR0ZW5fZGF0
YSgpKQotCi0gICAgZGVmIHRlc3Rfc2VuZF9tZXNzYWdlX2ZyYWdtZW50cyhzZWxmKToKLSAgICAg
ICAgcmVxdWVzdCA9IF9jcmVhdGVfcmVxdWVzdCgpCi0gICAgICAgIG1zZ3V0aWwuc2VuZF9tZXNz
YWdlKHJlcXVlc3QsICdIZWxsbycsIEZhbHNlKQotICAgICAgICBtc2d1dGlsLnNlbmRfbWVzc2Fn
ZShyZXF1ZXN0LCAnICcsIEZhbHNlKQotICAgICAgICBtc2d1dGlsLnNlbmRfbWVzc2FnZShyZXF1
ZXN0LCAnV29ybGQnLCBGYWxzZSkKLSAgICAgICAgbXNndXRpbC5zZW5kX21lc3NhZ2UocmVxdWVz
dCwgJyEnLCBUcnVlKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdceDAxXHgwNUhlbGxvXHgw
MFx4MDEgXHgwMFx4MDVXb3JsZFx4ODBceDAxIScsCi0gICAgICAgICAgICAgICAgICAgICAgICAg
cmVxdWVzdC5jb25uZWN0aW9uLndyaXR0ZW5fZGF0YSgpKQotCi0gICAgZGVmIHRlc3Rfc2VuZF9m
cmFnbWVudHNfaW1tZWRpYXRlX3plcm9fdGVybWluYXRpb24oc2VsZik6Ci0gICAgICAgIHJlcXVl
c3QgPSBfY3JlYXRlX3JlcXVlc3QoKQotICAgICAgICBtc2d1dGlsLnNlbmRfbWVzc2FnZShyZXF1
ZXN0LCAnSGVsbG8gV29ybGQhJywgRmFsc2UpCi0gICAgICAgIG1zZ3V0aWwuc2VuZF9tZXNzYWdl
KHJlcXVlc3QsICcnLCBUcnVlKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdceDAxXHgwY0hl
bGxvIFdvcmxkIVx4ODBceDAwJywKLSAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0LmNv
bm5lY3Rpb24ud3JpdHRlbl9kYXRhKCkpCi0KLSAgICBkZWYgdGVzdF9yZWNlaXZlX21lc3NhZ2Uo
c2VsZik6Ci0gICAgICAgIHJlcXVlc3QgPSBfY3JlYXRlX3JlcXVlc3QoCi0gICAgICAgICAgICAo
J1x4ODFceDg1JywgJ0hlbGxvJyksICgnXHg4MVx4ODYnLCAnV29ybGQhJykpCi0gICAgICAgIHNl
bGYuYXNzZXJ0RXF1YWwoJ0hlbGxvJywgbXNndXRpbC5yZWNlaXZlX21lc3NhZ2UocmVxdWVzdCkp
Ci0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ1dvcmxkIScsIG1zZ3V0aWwucmVjZWl2ZV9tZXNz
YWdlKHJlcXVlc3QpKQotCi0gICAgICAgIHBheWxvYWQgPSAnYScgKiAxMjUKLSAgICAgICAgcmVx
dWVzdCA9IF9jcmVhdGVfcmVxdWVzdCgoJ1x4ODFceGZkJywgcGF5bG9hZCkpCi0gICAgICAgIHNl
bGYuYXNzZXJ0RXF1YWwocGF5bG9hZCwgbXNndXRpbC5yZWNlaXZlX21lc3NhZ2UocmVxdWVzdCkp
Ci0KLSAgICBkZWYgdGVzdF9yZWNlaXZlX21lZGl1bV9tZXNzYWdlKHNlbGYpOgotICAgICAgICBw
YXlsb2FkID0gJ2EnICogMTI2Ci0gICAgICAgIHJlcXVlc3QgPSBfY3JlYXRlX3JlcXVlc3QoKCdc
eDgxXHhmZVx4MDBceDdlJywgcGF5bG9hZCkpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocGF5
bG9hZCwgbXNndXRpbC5yZWNlaXZlX21lc3NhZ2UocmVxdWVzdCkpCi0KLSAgICAgICAgcGF5bG9h
ZCA9ICdhJyAqICgoMSA8PCAxNikgLSAxKQotICAgICAgICByZXF1ZXN0ID0gX2NyZWF0ZV9yZXF1
ZXN0KCgnXHg4MVx4ZmVceGZmXHhmZicsIHBheWxvYWQpKQotICAgICAgICBzZWxmLmFzc2VydEVx
dWFsKHBheWxvYWQsIG1zZ3V0aWwucmVjZWl2ZV9tZXNzYWdlKHJlcXVlc3QpKQotCi0gICAgZGVm
IHRlc3RfcmVjZWl2ZV9sYXJnZV9tZXNzYWdlKHNlbGYpOgotICAgICAgICBwYXlsb2FkID0gJ2En
ICogKDEgPDwgMTYpCi0gICAgICAgIHJlcXVlc3QgPSBfY3JlYXRlX3JlcXVlc3QoCi0gICAgICAg
ICAgICAoJ1x4ODFceGZmXHgwMFx4MDBceDAwXHgwMFx4MDBceDAxXHgwMFx4MDAnLCBwYXlsb2Fk
KSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChwYXlsb2FkLCBtc2d1dGlsLnJlY2VpdmVfbWVz
c2FnZShyZXF1ZXN0KSkKLQotICAgIGRlZiB0ZXN0X3JlY2VpdmVfbGVuZ3RoX25vdF9lbmNvZGVk
X3VzaW5nX21pbmltYWxfbnVtYmVyX29mX2J5dGVzKHNlbGYpOgotICAgICAgICAjIExvZyB3YXJu
aW5nIG9uIHJlY2VpdmluZyBiYWQgcGF5bG9hZCBsZW5ndGggZmllbGQgdGhhdCBkb2Vzbid0IHVz
ZQotICAgICAgICAjIG1pbmltYWwgbnVtYmVyIG9mIGJ5dGVzIGJ1dCBjb250aW51ZSBwcm9jZXNz
aW5nLgotCi0gICAgICAgIHBheWxvYWQgPSAnYScKLSAgICAgICAgIyAxIGJ5dGUgY2FuIGJlIHJl
cHJlc2VudGVkIHdpdGhvdXQgZXh0ZW5kZWQgcGF5bG9hZCBsZW5ndGggZmllbGQuCi0gICAgICAg
IHJlcXVlc3QgPSBfY3JlYXRlX3JlcXVlc3QoCi0gICAgICAgICAgICAoJ1x4ODFceGZmXHgwMFx4
MDBceDAwXHgwMFx4MDBceDAwXHgwMFx4MDEnLCBwYXlsb2FkKSkKLSAgICAgICAgc2VsZi5hc3Nl
cnRFcXVhbChwYXlsb2FkLCBtc2d1dGlsLnJlY2VpdmVfbWVzc2FnZShyZXF1ZXN0KSkKLQotICAg
IGRlZiB0ZXN0X3JlY2VpdmVfbWVzc2FnZV91bmljb2RlKHNlbGYpOgotICAgICAgICByZXF1ZXN0
ID0gX2NyZWF0ZV9yZXF1ZXN0KCgnXHg4MVx4ODMnLCAnXHhlNlx4OWNceGFjJykpCi0gICAgICAg
ICMgVSs2NzJjIGlzIGVuY29kZWQgYXMgZTYsOWMsYWMgaW4gVVRGLTgKLSAgICAgICAgc2VsZi5h
c3NlcnRFcXVhbCh1J1x1NjcyYycsIG1zZ3V0aWwucmVjZWl2ZV9tZXNzYWdlKHJlcXVlc3QpKQot
Ci0gICAgZGVmIHRlc3RfcmVjZWl2ZV9tZXNzYWdlX2Vycm9uZW91c191bmljb2RlKHNlbGYpOgot
ICAgICAgICAjIFx4ODAgYW5kIFx4ODEgYXJlIGludmFsaWQgYXMgVVRGLTguCi0gICAgICAgIHJl
cXVlc3QgPSBfY3JlYXRlX3JlcXVlc3QoKCdceDgxXHg4MicsICdceDgwXHg4MScpKQotICAgICAg
ICAjIEludmFsaWQgY2hhcmFjdGVycyBzaG91bGQgcmFpc2UgSW52YWxpZFVURjhFeGNlcHRpb24K
LSAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoSW52YWxpZFVURjhFeGNlcHRpb24sCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgIG1zZ3V0aWwucmVjZWl2ZV9tZXNzYWdlLAotICAgICAgICAgICAg
ICAgICAgICAgICAgICByZXF1ZXN0KQotCi0gICAgZGVmIHRlc3RfcmVjZWl2ZV9mcmFnbWVudHMo
c2VsZik6Ci0gICAgICAgIHJlcXVlc3QgPSBfY3JlYXRlX3JlcXVlc3QoCi0gICAgICAgICAgICAo
J1x4MDFceDg1JywgJ0hlbGxvJyksCi0gICAgICAgICAgICAoJ1x4MDBceDgxJywgJyAnKSwKLSAg
ICAgICAgICAgICgnXHgwMFx4ODUnLCAnV29ybGQnKSwKLSAgICAgICAgICAgICgnXHg4MFx4ODEn
LCAnIScpKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdIZWxsbyBXb3JsZCEnLCBtc2d1dGls
LnJlY2VpdmVfbWVzc2FnZShyZXF1ZXN0KSkKLQotICAgIGRlZiB0ZXN0X3JlY2VpdmVfZnJhZ21l
bnRzX3VuaWNvZGUoc2VsZik6Ci0gICAgICAgICMgVVRGLTggZW5jb2RlcyBVKzZmMjIgaW50byBl
NmJjYTIgYW5kIFUrNWI1NyBpbnRvIGU1YWQ5Ny4KLSAgICAgICAgcmVxdWVzdCA9IF9jcmVhdGVf
cmVxdWVzdCgKLSAgICAgICAgICAgICgnXHgwMVx4ODInLCAnXHhlNlx4YmMnKSwKLSAgICAgICAg
ICAgICgnXHgwMFx4ODInLCAnXHhhMlx4ZTUnKSwKLSAgICAgICAgICAgICgnXHg4MFx4ODInLCAn
XHhhZFx4OTcnKSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCh1J1x1NmYyMlx1NWI1NycsIG1z
Z3V0aWwucmVjZWl2ZV9tZXNzYWdlKHJlcXVlc3QpKQotCi0gICAgZGVmIHRlc3RfcmVjZWl2ZV9m
cmFnbWVudHNfaW1tZWRpYXRlX3plcm9fdGVybWluYXRpb24oc2VsZik6Ci0gICAgICAgIHJlcXVl
c3QgPSBfY3JlYXRlX3JlcXVlc3QoCi0gICAgICAgICAgICAoJ1x4MDFceDhjJywgJ0hlbGxvIFdv
cmxkIScpLCAoJ1x4ODBceDgwJywgJycpKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdIZWxs
byBXb3JsZCEnLCBtc2d1dGlsLnJlY2VpdmVfbWVzc2FnZShyZXF1ZXN0KSkKLQotICAgIGRlZiB0
ZXN0X3JlY2VpdmVfZnJhZ21lbnRzX2R1cGxpY2F0ZV9zdGFydChzZWxmKToKLSAgICAgICAgcmVx
dWVzdCA9IF9jcmVhdGVfcmVxdWVzdCgKLSAgICAgICAgICAgICgnXHgwMVx4ODUnLCAnSGVsbG8n
KSwgKCdceDAxXHg4NScsICdXb3JsZCcpKQotICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhtc2d1
dGlsLkludmFsaWRGcmFtZUV4Y2VwdGlvbiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgbXNn
dXRpbC5yZWNlaXZlX21lc3NhZ2UsCi0gICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Qp
Ci0KLSAgICBkZWYgdGVzdF9yZWNlaXZlX2ZyYWdtZW50c19pbnRlcm1lZGlhdGVfYnV0X25vdF9z
dGFydGVkKHNlbGYpOgotICAgICAgICByZXF1ZXN0ID0gX2NyZWF0ZV9yZXF1ZXN0KCgnXHgwMFx4
ODUnLCAnSGVsbG8nKSkKLSAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMobXNndXRpbC5JbnZhbGlk
RnJhbWVFeGNlcHRpb24sCi0gICAgICAgICAgICAgICAgICAgICAgICAgIG1zZ3V0aWwucmVjZWl2
ZV9tZXNzYWdlLAotICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0KQotCi0gICAgZGVm
IHRlc3RfcmVjZWl2ZV9mcmFnbWVudHNfZW5kX2J1dF9ub3Rfc3RhcnRlZChzZWxmKToKLSAgICAg
ICAgcmVxdWVzdCA9IF9jcmVhdGVfcmVxdWVzdCgoJ1x4ODBceDg1JywgJ0hlbGxvJykpCi0gICAg
ICAgIHNlbGYuYXNzZXJ0UmFpc2VzKG1zZ3V0aWwuSW52YWxpZEZyYW1lRXhjZXB0aW9uLAotICAg
ICAgICAgICAgICAgICAgICAgICAgICBtc2d1dGlsLnJlY2VpdmVfbWVzc2FnZSwKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgcmVxdWVzdCkKLQotICAgIGRlZiB0ZXN0X3JlY2VpdmVfbWVzc2Fn
ZV9kaXNjYXJkKHNlbGYpOgotICAgICAgICByZXF1ZXN0ID0gX2NyZWF0ZV9yZXF1ZXN0KAotICAg
ICAgICAgICAgKCdceDhmXHg4NicsICdJR05PUkUnKSwgKCdceDgxXHg4NScsICdIZWxsbycpLAot
ICAgICAgICAgICAgKCdceDhmXHg4OScsICdESVNSRUdBUkQnKSwgKCdceDgxXHg4NicsICdXb3Js
ZCEnKSkKLSAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMobXNndXRpbC5VbnN1cHBvcnRlZEZyYW1l
RXhjZXB0aW9uLAotICAgICAgICAgICAgICAgICAgICAgICAgICBtc2d1dGlsLnJlY2VpdmVfbWVz
c2FnZSwgcmVxdWVzdCkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnSGVsbG8nLCBtc2d1dGls
LnJlY2VpdmVfbWVzc2FnZShyZXF1ZXN0KSkKLSAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMobXNn
dXRpbC5VbnN1cHBvcnRlZEZyYW1lRXhjZXB0aW9uLAotICAgICAgICAgICAgICAgICAgICAgICAg
ICBtc2d1dGlsLnJlY2VpdmVfbWVzc2FnZSwgcmVxdWVzdCkKLSAgICAgICAgc2VsZi5hc3NlcnRF
cXVhbCgnV29ybGQhJywgbXNndXRpbC5yZWNlaXZlX21lc3NhZ2UocmVxdWVzdCkpCi0KLSAgICBk
ZWYgdGVzdF9yZWNlaXZlX2Nsb3NlKHNlbGYpOgotICAgICAgICByZXF1ZXN0ID0gX2NyZWF0ZV9y
ZXF1ZXN0KAotICAgICAgICAgICAgKCdceDg4XHg4YScsIHN0cnVjdC5wYWNrKCchSCcsIDEwMDAp
ICsgJ0dvb2QgYnllJykpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoTm9uZSwgbXNndXRpbC5y
ZWNlaXZlX21lc3NhZ2UocmVxdWVzdCkpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoMTAwMCwg
cmVxdWVzdC53c19jbG9zZV9jb2RlKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdHb29kIGJ5
ZScsIHJlcXVlc3Qud3NfY2xvc2VfcmVhc29uKQotCi0gICAgZGVmIHRlc3Rfc2VuZF9sb25nZXN0
X2Nsb3NlKHNlbGYpOgotICAgICAgICByZWFzb24gPSAnYScgKiAxMjMKLSAgICAgICAgcmVxdWVz
dCA9IF9jcmVhdGVfcmVxdWVzdCgKLSAgICAgICAgICAgICgnXHg4OFx4ZmQnLAotICAgICAgICAg
ICAgIHN0cnVjdC5wYWNrKCchSCcsIGNvbW1vbi5TVEFUVVNfTk9STUFMX0NMT1NVUkUpICsgcmVh
c29uKSkKLSAgICAgICAgcmVxdWVzdC53c19zdHJlYW0uY2xvc2VfY29ubmVjdGlvbihjb21tb24u
U1RBVFVTX05PUk1BTF9DTE9TVVJFLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHJlYXNvbikKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChyZXF1ZXN0LndzX2Ns
b3NlX2NvZGUsIGNvbW1vbi5TVEFUVVNfTk9STUFMX0NMT1NVUkUpCi0gICAgICAgIHNlbGYuYXNz
ZXJ0RXF1YWwocmVxdWVzdC53c19jbG9zZV9yZWFzb24sIHJlYXNvbikKLQotICAgIGRlZiB0ZXN0
X3NlbmRfY2xvc2VfdG9vX2xvbmcoc2VsZik6Ci0gICAgICAgIHJlcXVlc3QgPSBfY3JlYXRlX3Jl
cXVlc3QoKQotICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhtc2d1dGlsLkJhZE9wZXJhdGlvbkV4
Y2VwdGlvbiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgU3RyZWFtLmNsb3NlX2Nvbm5lY3Rp
b24sCi0gICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Qud3Nfc3RyZWFtLAotICAgICAg
ICAgICAgICAgICAgICAgICAgICBjb21tb24uU1RBVFVTX05PUk1BTF9DTE9TVVJFLAotICAgICAg
ICAgICAgICAgICAgICAgICAgICAnYScgKiAxMjQpCi0KLSAgICBkZWYgdGVzdF9zZW5kX2Nsb3Nl
X2luY29uc2lzdGVudF9jb2RlX2FuZF9yZWFzb24oc2VsZik6Ci0gICAgICAgIHJlcXVlc3QgPSBf
Y3JlYXRlX3JlcXVlc3QoKQotICAgICAgICAjIHJlYXNvbiBwYXJhbWV0ZXIgbXVzdCBub3QgYmUg
c3BlY2lmaWVkIHdoZW4gY29kZSBpcyBOb25lLgotICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyht
c2d1dGlsLkJhZE9wZXJhdGlvbkV4Y2VwdGlvbiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
U3RyZWFtLmNsb3NlX2Nvbm5lY3Rpb24sCi0gICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVl
c3Qud3Nfc3RyZWFtLAotICAgICAgICAgICAgICAgICAgICAgICAgICBOb25lLAotICAgICAgICAg
ICAgICAgICAgICAgICAgICAnYScpCi0KLSAgICBkZWYgdGVzdF9zZW5kX3Bpbmcoc2VsZik6Ci0g
ICAgICAgIHJlcXVlc3QgPSBfY3JlYXRlX3JlcXVlc3QoKQotICAgICAgICBtc2d1dGlsLnNlbmRf
cGluZyhyZXF1ZXN0LCAnSGVsbG8gV29ybGQhJykKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgn
XHg4OVx4MGNIZWxsbyBXb3JsZCEnLAotICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3Qu
Y29ubmVjdGlvbi53cml0dGVuX2RhdGEoKSkKLQotICAgIGRlZiB0ZXN0X3NlbmRfbG9uZ2VzdF9w
aW5nKHNlbGYpOgotICAgICAgICByZXF1ZXN0ID0gX2NyZWF0ZV9yZXF1ZXN0KCkKLSAgICAgICAg
bXNndXRpbC5zZW5kX3BpbmcocmVxdWVzdCwgJ2EnICogMTI1KQotICAgICAgICBzZWxmLmFzc2Vy
dEVxdWFsKCdceDg5XHg3ZCcgKyAnYScgKiAxMjUsCi0gICAgICAgICAgICAgICAgICAgICAgICAg
cmVxdWVzdC5jb25uZWN0aW9uLndyaXR0ZW5fZGF0YSgpKQotCi0gICAgZGVmIHRlc3Rfc2VuZF9w
aW5nX3Rvb19sb25nKHNlbGYpOgotICAgICAgICByZXF1ZXN0ID0gX2NyZWF0ZV9yZXF1ZXN0KCkK
LSAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMobXNndXRpbC5CYWRPcGVyYXRpb25FeGNlcHRpb24s
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgIG1zZ3V0aWwuc2VuZF9waW5nLAotICAgICAgICAg
ICAgICAgICAgICAgICAgICByZXF1ZXN0LAotICAgICAgICAgICAgICAgICAgICAgICAgICAnYScg
KiAxMjYpCi0KLSAgICBkZWYgdGVzdF9yZWNlaXZlX3Bpbmcoc2VsZik6Ci0gICAgICAgICIiIlRl
c3RzIHJlY2VpdmluZyBhIHBpbmcgY29udHJvbCBmcmFtZS4iIiIKLQotICAgICAgICBkZWYgaGFu
ZGxlcihyZXF1ZXN0LCBtZXNzYWdlKToKLSAgICAgICAgICAgIHJlcXVlc3QuY2FsbGVkID0gVHJ1
ZQotCi0gICAgICAgICMgU3RyZWFtIGF1dG9tYXRpY2FsbHkgcmVzcG9uZCB0byBwaW5nIHdpdGgg
cG9uZyB3aXRob3V0IGFueSBhY3Rpb24KLSAgICAgICAgIyBieSBhcHBsaWNhdGlvbiBsYXllci4K
LSAgICAgICAgcmVxdWVzdCA9IF9jcmVhdGVfcmVxdWVzdCgKLSAgICAgICAgICAgICgnXHg4OVx4
ODUnLCAnSGVsbG8nKSwgKCdceDgxXHg4NScsICdXb3JsZCcpKQotICAgICAgICBzZWxmLmFzc2Vy
dEVxdWFsKCdXb3JsZCcsIG1zZ3V0aWwucmVjZWl2ZV9tZXNzYWdlKHJlcXVlc3QpKQotICAgICAg
ICBzZWxmLmFzc2VydEVxdWFsKCdceDhhXHgwNUhlbGxvJywKLSAgICAgICAgICAgICAgICAgICAg
ICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ud3JpdHRlbl9kYXRhKCkpCi0KLSAgICAgICAgcmVxdWVz
dCA9IF9jcmVhdGVfcmVxdWVzdCgKLSAgICAgICAgICAgICgnXHg4OVx4ODUnLCAnSGVsbG8nKSwg
KCdceDgxXHg4NScsICdXb3JsZCcpKQotICAgICAgICByZXF1ZXN0Lm9uX3BpbmdfaGFuZGxlciA9
IGhhbmRsZXIKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnV29ybGQnLCBtc2d1dGlsLnJlY2Vp
dmVfbWVzc2FnZShyZXF1ZXN0KSkKLSAgICAgICAgc2VsZi5hc3NlcnRUcnVlKHJlcXVlc3QuY2Fs
bGVkKQotCi0gICAgZGVmIHRlc3RfcmVjZWl2ZV9sb25nZXN0X3Bpbmcoc2VsZik6Ci0gICAgICAg
IHJlcXVlc3QgPSBfY3JlYXRlX3JlcXVlc3QoCi0gICAgICAgICAgICAoJ1x4ODlceGZkJywgJ2En
ICogMTI1KSwgKCdceDgxXHg4NScsICdXb3JsZCcpKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFs
KCdXb3JsZCcsIG1zZ3V0aWwucmVjZWl2ZV9tZXNzYWdlKHJlcXVlc3QpKQotICAgICAgICBzZWxm
LmFzc2VydEVxdWFsKCdceDhhXHg3ZCcgKyAnYScgKiAxMjUsCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLndyaXR0ZW5fZGF0YSgpKQotCi0gICAgZGVmIHRlc3Rf
cmVjZWl2ZV9waW5nX3Rvb19sb25nKHNlbGYpOgotICAgICAgICByZXF1ZXN0ID0gX2NyZWF0ZV9y
ZXF1ZXN0KCgnXHg4OVx4ZmVceDAwXHg3ZScsICdhJyAqIDEyNikpCi0gICAgICAgIHNlbGYuYXNz
ZXJ0UmFpc2VzKG1zZ3V0aWwuSW52YWxpZEZyYW1lRXhjZXB0aW9uLAotICAgICAgICAgICAgICAg
ICAgICAgICAgICBtc2d1dGlsLnJlY2VpdmVfbWVzc2FnZSwKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgcmVxdWVzdCkKLQotICAgIGRlZiB0ZXN0X3JlY2VpdmVfcG9uZyhzZWxmKToKLSAgICAg
ICAgIiIiVGVzdHMgcmVjZWl2aW5nIGEgcG9uZyBjb250cm9sIGZyYW1lLiIiIgotCi0gICAgICAg
IGRlZiBoYW5kbGVyKHJlcXVlc3QsIG1lc3NhZ2UpOgotICAgICAgICAgICAgcmVxdWVzdC5jYWxs
ZWQgPSBUcnVlCi0KLSAgICAgICAgcmVxdWVzdCA9IF9jcmVhdGVfcmVxdWVzdCgKLSAgICAgICAg
ICAgICgnXHg4YVx4ODUnLCAnSGVsbG8nKSwgKCdceDgxXHg4NScsICdXb3JsZCcpKQotICAgICAg
ICByZXF1ZXN0Lm9uX3BvbmdfaGFuZGxlciA9IGhhbmRsZXIKLSAgICAgICAgbXNndXRpbC5zZW5k
X3BpbmcocmVxdWVzdCwgJ0hlbGxvJykKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnXHg4OVx4
MDVIZWxsbycsCi0gICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLndy
aXR0ZW5fZGF0YSgpKQotICAgICAgICAjIFZhbGlkIHBvbmcgaXMgcmVjZWl2ZWQsIGJ1dCByZWNl
aXZlX21lc3NhZ2Ugd29uJ3QgcmV0dXJuIGZvciBpdC4KLSAgICAgICAgc2VsZi5hc3NlcnRFcXVh
bCgnV29ybGQnLCBtc2d1dGlsLnJlY2VpdmVfbWVzc2FnZShyZXF1ZXN0KSkKLSAgICAgICAgIyBD
aGVjayB0aGF0IG5vdGhpbmcgd2FzIHdyaXR0ZW4gYWZ0ZXIgcmVjZWl2ZV9tZXNzYWdlIGNhbGwu
Ci0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ1x4ODlceDA1SGVsbG8nLAotICAgICAgICAgICAg
ICAgICAgICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi53cml0dGVuX2RhdGEoKSkKLQotICAgICAg
ICBzZWxmLmFzc2VydFRydWUocmVxdWVzdC5jYWxsZWQpCi0KLSAgICBkZWYgdGVzdF9yZWNlaXZl
X3Vuc29saWNpdGVkX3Bvbmcoc2VsZik6Ci0gICAgICAgICMgVW5zb2xpY2l0ZWQgcG9uZyBpcyBh
bGxvd2VkIGZyb20gSHlCaSAwNy4KLSAgICAgICAgcmVxdWVzdCA9IF9jcmVhdGVfcmVxdWVzdCgK
LSAgICAgICAgICAgICgnXHg4YVx4ODUnLCAnSGVsbG8nKSwgKCdceDgxXHg4NScsICdXb3JsZCcp
KQotICAgICAgICBtc2d1dGlsLnJlY2VpdmVfbWVzc2FnZShyZXF1ZXN0KQotCi0gICAgICAgIHJl
cXVlc3QgPSBfY3JlYXRlX3JlcXVlc3QoCi0gICAgICAgICAgICAoJ1x4OGFceDg1JywgJ0hlbGxv
JyksICgnXHg4MVx4ODUnLCAnV29ybGQnKSkKLSAgICAgICAgbXNndXRpbC5zZW5kX3BpbmcocmVx
dWVzdCwgJ0p1bWJvJykKLSAgICAgICAgIyBCb2R5IG1pc21hdGNoLgotICAgICAgICBtc2d1dGls
LnJlY2VpdmVfbWVzc2FnZShyZXF1ZXN0KQotCi0gICAgZGVmIHRlc3RfcGluZ19jYW5ub3RfYmVf
ZnJhZ21lbnRlZChzZWxmKToKLSAgICAgICAgcmVxdWVzdCA9IF9jcmVhdGVfcmVxdWVzdCgoJ1x4
MDlceDg1JywgJ0hlbGxvJykpCi0gICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKG1zZ3V0aWwuSW52
YWxpZEZyYW1lRXhjZXB0aW9uLAotICAgICAgICAgICAgICAgICAgICAgICAgICBtc2d1dGlsLnJl
Y2VpdmVfbWVzc2FnZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdCkKLQotICAg
IGRlZiB0ZXN0X3Bpbmdfd2l0aF90b29fbG9uZ19wYXlsb2FkKHNlbGYpOgotICAgICAgICByZXF1
ZXN0ID0gX2NyZWF0ZV9yZXF1ZXN0KCgnXHg4OVx4ZmVceDAxXHgwMCcsICdhJyAqIDI1NikpCi0g
ICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKG1zZ3V0aWwuSW52YWxpZEZyYW1lRXhjZXB0aW9uLAot
ICAgICAgICAgICAgICAgICAgICAgICAgICBtc2d1dGlsLnJlY2VpdmVfbWVzc2FnZSwKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdCkKLQotCi1jbGFzcyBEZWZsYXRlRnJhbWVUZXN0
KHVuaXR0ZXN0LlRlc3RDYXNlKToKLSAgICAiIiJUZXN0cyBmb3IgY2hlY2tpbmcgZGVmbGF0ZS1m
cmFtZSBleHRlbnNpb24uIiIiCi0KLSAgICBkZWYgdGVzdF9zZW5kX21lc3NhZ2Uoc2VsZik6Ci0g
ICAgICAgIGNvbXByZXNzID0gemxpYi5jb21wcmVzc29iaigKLSAgICAgICAgICAgIHpsaWIuWl9E
RUZBVUxUX0NPTVBSRVNTSU9OLCB6bGliLkRFRkxBVEVELCAtemxpYi5NQVhfV0JJVFMpCi0KLSAg
ICAgICAgZXh0ZW5zaW9uID0gY29tbW9uLkV4dGVuc2lvblBhcmFtZXRlcihjb21tb24uREVGTEFU
RV9GUkFNRV9FWFRFTlNJT04pCi0gICAgICAgIHJlcXVlc3QgPSBfY3JlYXRlX3JlcXVlc3RfZnJv
bV9yYXdkYXRhKAotICAgICAgICAgICAgJycsIGRlZmxhdGVfZnJhbWVfcmVxdWVzdD1leHRlbnNp
b24pCi0gICAgICAgIG1zZ3V0aWwuc2VuZF9tZXNzYWdlKHJlcXVlc3QsICdIZWxsbycpCi0gICAg
ICAgIG1zZ3V0aWwuc2VuZF9tZXNzYWdlKHJlcXVlc3QsICdXb3JsZCcpCi0KLSAgICAgICAgZXhw
ZWN0ZWQgPSAnJwotCi0gICAgICAgIGNvbXByZXNzZWRfaGVsbG8gPSBjb21wcmVzcy5jb21wcmVz
cygnSGVsbG8nKQotICAgICAgICBjb21wcmVzc2VkX2hlbGxvICs9IGNvbXByZXNzLmZsdXNoKHps
aWIuWl9TWU5DX0ZMVVNIKQotICAgICAgICBjb21wcmVzc2VkX2hlbGxvID0gY29tcHJlc3NlZF9o
ZWxsb1s6LTRdCi0gICAgICAgIGV4cGVjdGVkICs9ICdceGMxJWMnICUgbGVuKGNvbXByZXNzZWRf
aGVsbG8pCi0gICAgICAgIGV4cGVjdGVkICs9IGNvbXByZXNzZWRfaGVsbG8KLQotICAgICAgICBj
b21wcmVzc2VkX3dvcmxkID0gY29tcHJlc3MuY29tcHJlc3MoJ1dvcmxkJykKLSAgICAgICAgY29t
cHJlc3NlZF93b3JsZCArPSBjb21wcmVzcy5mbHVzaCh6bGliLlpfU1lOQ19GTFVTSCkKLSAgICAg
ICAgY29tcHJlc3NlZF93b3JsZCA9IGNvbXByZXNzZWRfd29ybGRbOi00XQotICAgICAgICBleHBl
Y3RlZCArPSAnXHhjMSVjJyAlIGxlbihjb21wcmVzc2VkX3dvcmxkKQotICAgICAgICBleHBlY3Rl
ZCArPSBjb21wcmVzc2VkX3dvcmxkCi0KLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChleHBlY3Rl
ZCwgcmVxdWVzdC5jb25uZWN0aW9uLndyaXR0ZW5fZGF0YSgpKQotCi0gICAgZGVmIHRlc3Rfc2Vu
ZF9tZXNzYWdlX2JmaW5hbChzZWxmKToKLSAgICAgICAgZXh0ZW5zaW9uID0gY29tbW9uLkV4dGVu
c2lvblBhcmFtZXRlcihjb21tb24uREVGTEFURV9GUkFNRV9FWFRFTlNJT04pCi0gICAgICAgIHJl
cXVlc3QgPSBfY3JlYXRlX3JlcXVlc3RfZnJvbV9yYXdkYXRhKAotICAgICAgICAgICAgJycsIGRl
ZmxhdGVfZnJhbWVfcmVxdWVzdD1leHRlbnNpb24pCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxz
KDEsIGxlbihyZXF1ZXN0LndzX2V4dGVuc2lvbl9wcm9jZXNzb3JzKSkKLSAgICAgICAgZGVmbGF0
ZV9mcmFtZV9wcm9jZXNzb3IgPSByZXF1ZXN0LndzX2V4dGVuc2lvbl9wcm9jZXNzb3JzWzBdCi0g
ICAgICAgIGRlZmxhdGVfZnJhbWVfcHJvY2Vzc29yLnNldF9iZmluYWwoVHJ1ZSkKLSAgICAgICAg
bXNndXRpbC5zZW5kX21lc3NhZ2UocmVxdWVzdCwgJ0hlbGxvJykKLSAgICAgICAgbXNndXRpbC5z
ZW5kX21lc3NhZ2UocmVxdWVzdCwgJ1dvcmxkJykKLQotICAgICAgICBleHBlY3RlZCA9ICcnCi0K
LSAgICAgICAgY29tcHJlc3MgPSB6bGliLmNvbXByZXNzb2JqKAotICAgICAgICAgICAgemxpYi5a
X0RFRkFVTFRfQ09NUFJFU1NJT04sIHpsaWIuREVGTEFURUQsIC16bGliLk1BWF9XQklUUykKLSAg
ICAgICAgY29tcHJlc3NlZF9oZWxsbyA9IGNvbXByZXNzLmNvbXByZXNzKCdIZWxsbycpCi0gICAg
ICAgIGNvbXByZXNzZWRfaGVsbG8gKz0gY29tcHJlc3MuZmx1c2goemxpYi5aX0ZJTklTSCkKLSAg
ICAgICAgY29tcHJlc3NlZF9oZWxsbyA9IGNvbXByZXNzZWRfaGVsbG8gKyBjaHIoMCkKLSAgICAg
ICAgZXhwZWN0ZWQgKz0gJ1x4YzElYycgJSBsZW4oY29tcHJlc3NlZF9oZWxsbykKLSAgICAgICAg
ZXhwZWN0ZWQgKz0gY29tcHJlc3NlZF9oZWxsbwotCi0gICAgICAgIGNvbXByZXNzID0gemxpYi5j
b21wcmVzc29iaigKLSAgICAgICAgICAgIHpsaWIuWl9ERUZBVUxUX0NPTVBSRVNTSU9OLCB6bGli
LkRFRkxBVEVELCAtemxpYi5NQVhfV0JJVFMpCi0gICAgICAgIGNvbXByZXNzZWRfd29ybGQgPSBj
b21wcmVzcy5jb21wcmVzcygnV29ybGQnKQotICAgICAgICBjb21wcmVzc2VkX3dvcmxkICs9IGNv
bXByZXNzLmZsdXNoKHpsaWIuWl9GSU5JU0gpCi0gICAgICAgIGNvbXByZXNzZWRfd29ybGQgPSBj
b21wcmVzc2VkX3dvcmxkICsgY2hyKDApCi0gICAgICAgIGV4cGVjdGVkICs9ICdceGMxJWMnICUg
bGVuKGNvbXByZXNzZWRfd29ybGQpCi0gICAgICAgIGV4cGVjdGVkICs9IGNvbXByZXNzZWRfd29y
bGQKLQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGV4cGVjdGVkLCByZXF1ZXN0LmNvbm5lY3Rp
b24ud3JpdHRlbl9kYXRhKCkpCi0KLSAgICBkZWYgdGVzdF9zZW5kX21lc3NhZ2VfY29tcF9iaXQo
c2VsZik6Ci0gICAgICAgIGNvbXByZXNzID0gemxpYi5jb21wcmVzc29iaigKLSAgICAgICAgICAg
IHpsaWIuWl9ERUZBVUxUX0NPTVBSRVNTSU9OLCB6bGliLkRFRkxBVEVELCAtemxpYi5NQVhfV0JJ
VFMpCi0KLSAgICAgICAgZXh0ZW5zaW9uID0gY29tbW9uLkV4dGVuc2lvblBhcmFtZXRlcihjb21t
b24uREVGTEFURV9GUkFNRV9FWFRFTlNJT04pCi0gICAgICAgIHJlcXVlc3QgPSBfY3JlYXRlX3Jl
cXVlc3RfZnJvbV9yYXdkYXRhKAotICAgICAgICAgICAgJycsIGRlZmxhdGVfZnJhbWVfcmVxdWVz
dD1leHRlbnNpb24pCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKDEsIGxlbihyZXF1ZXN0Lndz
X2V4dGVuc2lvbl9wcm9jZXNzb3JzKSkKLSAgICAgICAgZGVmbGF0ZV9mcmFtZV9wcm9jZXNzb3Ig
PSByZXF1ZXN0LndzX2V4dGVuc2lvbl9wcm9jZXNzb3JzWzBdCi0gICAgICAgIG1zZ3V0aWwuc2Vu
ZF9tZXNzYWdlKHJlcXVlc3QsICdIZWxsbycpCi0gICAgICAgIGRlZmxhdGVfZnJhbWVfcHJvY2Vz
c29yLmRpc2FibGVfb3V0Z29pbmdfY29tcHJlc3Npb24oKQotICAgICAgICBtc2d1dGlsLnNlbmRf
bWVzc2FnZShyZXF1ZXN0LCAnSGVsbG8nKQotICAgICAgICBkZWZsYXRlX2ZyYW1lX3Byb2Nlc3Nv
ci5lbmFibGVfb3V0Z29pbmdfY29tcHJlc3Npb24oKQotICAgICAgICBtc2d1dGlsLnNlbmRfbWVz
c2FnZShyZXF1ZXN0LCAnSGVsbG8nKQotCi0gICAgICAgIGV4cGVjdGVkID0gJycKLQotICAgICAg
ICBjb21wcmVzc2VkX2hlbGxvID0gY29tcHJlc3MuY29tcHJlc3MoJ0hlbGxvJykKLSAgICAgICAg
Y29tcHJlc3NlZF9oZWxsbyArPSBjb21wcmVzcy5mbHVzaCh6bGliLlpfU1lOQ19GTFVTSCkKLSAg
ICAgICAgY29tcHJlc3NlZF9oZWxsbyA9IGNvbXByZXNzZWRfaGVsbG9bOi00XQotICAgICAgICBl
eHBlY3RlZCArPSAnXHhjMSVjJyAlIGxlbihjb21wcmVzc2VkX2hlbGxvKQotICAgICAgICBleHBl
Y3RlZCArPSBjb21wcmVzc2VkX2hlbGxvCi0KLSAgICAgICAgZXhwZWN0ZWQgKz0gJ1x4ODFceDA1
SGVsbG8nCi0KLSAgICAgICAgY29tcHJlc3NlZF8ybmRfaGVsbG8gPSBjb21wcmVzcy5jb21wcmVz
cygnSGVsbG8nKQotICAgICAgICBjb21wcmVzc2VkXzJuZF9oZWxsbyArPSBjb21wcmVzcy5mbHVz
aCh6bGliLlpfU1lOQ19GTFVTSCkKLSAgICAgICAgY29tcHJlc3NlZF8ybmRfaGVsbG8gPSBjb21w
cmVzc2VkXzJuZF9oZWxsb1s6LTRdCi0gICAgICAgIGV4cGVjdGVkICs9ICdceGMxJWMnICUgbGVu
KGNvbXByZXNzZWRfMm5kX2hlbGxvKQotICAgICAgICBleHBlY3RlZCArPSBjb21wcmVzc2VkXzJu
ZF9oZWxsbwotCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZXhwZWN0ZWQsIHJlcXVlc3QuY29u
bmVjdGlvbi53cml0dGVuX2RhdGEoKSkKLQotICAgIGRlZiB0ZXN0X3NlbmRfbWVzc2FnZV9ub19j
b250ZXh0X3Rha2VvdmVyX3BhcmFtZXRlcihzZWxmKToKLSAgICAgICAgY29tcHJlc3MgPSB6bGli
LmNvbXByZXNzb2JqKAotICAgICAgICAgICAgemxpYi5aX0RFRkFVTFRfQ09NUFJFU1NJT04sIHps
aWIuREVGTEFURUQsIC16bGliLk1BWF9XQklUUykKLQotICAgICAgICBleHRlbnNpb24gPSBjb21t
b24uRXh0ZW5zaW9uUGFyYW1ldGVyKGNvbW1vbi5ERUZMQVRFX0ZSQU1FX0VYVEVOU0lPTikKLSAg
ICAgICAgZXh0ZW5zaW9uLmFkZF9wYXJhbWV0ZXIoJ25vX2NvbnRleHRfdGFrZW92ZXInLCBOb25l
KQotICAgICAgICByZXF1ZXN0ID0gX2NyZWF0ZV9yZXF1ZXN0X2Zyb21fcmF3ZGF0YSgKLSAgICAg
ICAgICAgICcnLCBkZWZsYXRlX2ZyYW1lX3JlcXVlc3Q9ZXh0ZW5zaW9uKQotICAgICAgICBmb3Ig
aSBpbiB4cmFuZ2UoMyk6Ci0gICAgICAgICAgICBtc2d1dGlsLnNlbmRfbWVzc2FnZShyZXF1ZXN0
LCAnSGVsbG8nKQotCi0gICAgICAgIGNvbXByZXNzZWRfbWVzc2FnZSA9IGNvbXByZXNzLmNvbXBy
ZXNzKCdIZWxsbycpCi0gICAgICAgIGNvbXByZXNzZWRfbWVzc2FnZSArPSBjb21wcmVzcy5mbHVz
aCh6bGliLlpfU1lOQ19GTFVTSCkKLSAgICAgICAgY29tcHJlc3NlZF9tZXNzYWdlID0gY29tcHJl
c3NlZF9tZXNzYWdlWzotNF0KLSAgICAgICAgZXhwZWN0ZWQgPSAnXHhjMSVjJyAlIGxlbihjb21w
cmVzc2VkX21lc3NhZ2UpCi0gICAgICAgIGV4cGVjdGVkICs9IGNvbXByZXNzZWRfbWVzc2FnZQot
Ci0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoCi0gICAgICAgICAgICBleHBlY3RlZCArIGV4cGVj
dGVkICsgZXhwZWN0ZWQsIHJlcXVlc3QuY29ubmVjdGlvbi53cml0dGVuX2RhdGEoKSkKLQotICAg
IGRlZiB0ZXN0X2JhZF9yZXF1ZXN0X3BhcmFtZXRlcnMoc2VsZik6Ci0gICAgICAgICIiIlRlc3Rz
IHRoYXQgaWYgdGhlcmUncyBhbnl0aGluZyB3cm9uZyB3aXRoIGRlZmxhdGUtZnJhbWUgZXh0ZW5z
aW9uCi0gICAgICAgIHJlcXVlc3QsIGRlZmxhdGUtZnJhbWUgaXMgcmVqZWN0ZWQuCi0gICAgICAg
ICIiIgotCi0gICAgICAgIGV4dGVuc2lvbiA9IGNvbW1vbi5FeHRlbnNpb25QYXJhbWV0ZXIoY29t
bW9uLkRFRkxBVEVfRlJBTUVfRVhURU5TSU9OKQotICAgICAgICAjIG1heF93aW5kb3dfYml0cyBs
ZXNzIHRoYW4gOCBpcyBpbGxlZ2FsLgotICAgICAgICBleHRlbnNpb24uYWRkX3BhcmFtZXRlcign
bWF4X3dpbmRvd19iaXRzJywgJzcnKQotICAgICAgICBwcm9jZXNzb3IgPSBEZWZsYXRlRnJhbWVF
eHRlbnNpb25Qcm9jZXNzb3IoZXh0ZW5zaW9uKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKE5v
bmUsIHByb2Nlc3Nvci5nZXRfZXh0ZW5zaW9uX3Jlc3BvbnNlKCkpCi0KLSAgICAgICAgZXh0ZW5z
aW9uID0gY29tbW9uLkV4dGVuc2lvblBhcmFtZXRlcihjb21tb24uREVGTEFURV9GUkFNRV9FWFRF
TlNJT04pCi0gICAgICAgICMgbWF4X3dpbmRvd19iaXRzIGdyZWF0ZXIgdGhhbiAxNSBpcyBpbGxl
Z2FsLgotICAgICAgICBleHRlbnNpb24uYWRkX3BhcmFtZXRlcignbWF4X3dpbmRvd19iaXRzJywg
JzE2JykKLSAgICAgICAgcHJvY2Vzc29yID0gRGVmbGF0ZUZyYW1lRXh0ZW5zaW9uUHJvY2Vzc29y
KGV4dGVuc2lvbikKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChOb25lLCBwcm9jZXNzb3IuZ2V0
X2V4dGVuc2lvbl9yZXNwb25zZSgpKQotCi0gICAgICAgIGV4dGVuc2lvbiA9IGNvbW1vbi5FeHRl
bnNpb25QYXJhbWV0ZXIoY29tbW9uLkRFRkxBVEVfRlJBTUVfRVhURU5TSU9OKQotICAgICAgICAj
IE5vbiBpbnRlZ2VyIG1heF93aW5kb3dfYml0cyBpcyBpbGxlZ2FsLgotICAgICAgICBleHRlbnNp
b24uYWRkX3BhcmFtZXRlcignbWF4X3dpbmRvd19iaXRzJywgJ2Zvb2JhcicpCi0gICAgICAgIHBy
b2Nlc3NvciA9IERlZmxhdGVGcmFtZUV4dGVuc2lvblByb2Nlc3NvcihleHRlbnNpb24pCi0gICAg
ICAgIHNlbGYuYXNzZXJ0RXF1YWwoTm9uZSwgcHJvY2Vzc29yLmdldF9leHRlbnNpb25fcmVzcG9u
c2UoKSkKLQotICAgICAgICBleHRlbnNpb24gPSBjb21tb24uRXh0ZW5zaW9uUGFyYW1ldGVyKGNv
bW1vbi5ERUZMQVRFX0ZSQU1FX0VYVEVOU0lPTikKLSAgICAgICAgIyBub19jb250ZXh0X3Rha2Vv
dmVyIG11c3Qgbm90IGhhdmUgYW55IHZhbHVlLgotICAgICAgICBleHRlbnNpb24uYWRkX3BhcmFt
ZXRlcignbm9fY29udGV4dF90YWtlb3ZlcicsICdmb29iYXInKQotICAgICAgICBwcm9jZXNzb3Ig
PSBEZWZsYXRlRnJhbWVFeHRlbnNpb25Qcm9jZXNzb3IoZXh0ZW5zaW9uKQotICAgICAgICBzZWxm
LmFzc2VydEVxdWFsKE5vbmUsIHByb2Nlc3Nvci5nZXRfZXh0ZW5zaW9uX3Jlc3BvbnNlKCkpCi0K
LSAgICBkZWYgdGVzdF9yZXNwb25zZV9wYXJhbWV0ZXJzKHNlbGYpOgotICAgICAgICBleHRlbnNp
b24gPSBjb21tb24uRXh0ZW5zaW9uUGFyYW1ldGVyKGNvbW1vbi5ERUZMQVRFX0ZSQU1FX0VYVEVO
U0lPTikKLSAgICAgICAgcHJvY2Vzc29yID0gRGVmbGF0ZUZyYW1lRXh0ZW5zaW9uUHJvY2Vzc29y
KGV4dGVuc2lvbikKLSAgICAgICAgcHJvY2Vzc29yLnNldF9yZXNwb25zZV93aW5kb3dfYml0cyg4
KQotICAgICAgICByZXNwb25zZSA9IHByb2Nlc3Nvci5nZXRfZXh0ZW5zaW9uX3Jlc3BvbnNlKCkK
LSAgICAgICAgc2VsZi5hc3NlcnRUcnVlKHJlc3BvbnNlLmhhc19wYXJhbWV0ZXIoJ21heF93aW5k
b3dfYml0cycpKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCc4JywgcmVzcG9uc2UuZ2V0X3Bh
cmFtZXRlcl92YWx1ZSgnbWF4X3dpbmRvd19iaXRzJykpCi0KLSAgICAgICAgZXh0ZW5zaW9uID0g
Y29tbW9uLkV4dGVuc2lvblBhcmFtZXRlcihjb21tb24uREVGTEFURV9GUkFNRV9FWFRFTlNJT04p
Ci0gICAgICAgIHByb2Nlc3NvciA9IERlZmxhdGVGcmFtZUV4dGVuc2lvblByb2Nlc3NvcihleHRl
bnNpb24pCi0gICAgICAgIHByb2Nlc3Nvci5zZXRfcmVzcG9uc2Vfbm9fY29udGV4dF90YWtlb3Zl
cihUcnVlKQotICAgICAgICByZXNwb25zZSA9IHByb2Nlc3Nvci5nZXRfZXh0ZW5zaW9uX3Jlc3Bv
bnNlKCkKLSAgICAgICAgc2VsZi5hc3NlcnRUcnVlKHJlc3BvbnNlLmhhc19wYXJhbWV0ZXIoJ25v
X2NvbnRleHRfdGFrZW92ZXInKSkKLSAgICAgICAgc2VsZi5hc3NlcnRUcnVlKAotICAgICAgICAg
ICAgcmVzcG9uc2UuZ2V0X3BhcmFtZXRlcl92YWx1ZSgnbm9fY29udGV4dF90YWtlb3ZlcicpIGlz
IE5vbmUpCi0KLSAgICBkZWYgdGVzdF9yZWNlaXZlX21lc3NhZ2Uoc2VsZik6Ci0gICAgICAgIGNv
bXByZXNzID0gemxpYi5jb21wcmVzc29iaigKLSAgICAgICAgICAgIHpsaWIuWl9ERUZBVUxUX0NP
TVBSRVNTSU9OLCB6bGliLkRFRkxBVEVELCAtemxpYi5NQVhfV0JJVFMpCi0KLSAgICAgICAgZGF0
YSA9ICcnCi0KLSAgICAgICAgY29tcHJlc3NlZF9oZWxsbyA9IGNvbXByZXNzLmNvbXByZXNzKCdI
ZWxsbycpCi0gICAgICAgIGNvbXByZXNzZWRfaGVsbG8gKz0gY29tcHJlc3MuZmx1c2goemxpYi5a
X1NZTkNfRkxVU0gpCi0gICAgICAgIGNvbXByZXNzZWRfaGVsbG8gPSBjb21wcmVzc2VkX2hlbGxv
WzotNF0KLSAgICAgICAgZGF0YSArPSAnXHhjMSVjJyAlIChsZW4oY29tcHJlc3NlZF9oZWxsbykg
fCAweDgwKQotICAgICAgICBkYXRhICs9IF9tYXNrX2h5YmkoY29tcHJlc3NlZF9oZWxsbykKLQot
ICAgICAgICBjb21wcmVzc2VkX3dlYnNvY2tldCA9IGNvbXByZXNzLmNvbXByZXNzKCdXZWJTb2Nr
ZXQnKQotICAgICAgICBjb21wcmVzc2VkX3dlYnNvY2tldCArPSBjb21wcmVzcy5mbHVzaCh6bGli
LlpfRklOSVNIKQotICAgICAgICBjb21wcmVzc2VkX3dlYnNvY2tldCArPSAnXHgwMCcKLSAgICAg
ICAgZGF0YSArPSAnXHhjMSVjJyAlIChsZW4oY29tcHJlc3NlZF93ZWJzb2NrZXQpIHwgMHg4MCkK
LSAgICAgICAgZGF0YSArPSBfbWFza19oeWJpKGNvbXByZXNzZWRfd2Vic29ja2V0KQotCi0gICAg
ICAgIGNvbXByZXNzID0gemxpYi5jb21wcmVzc29iaigKLSAgICAgICAgICAgIHpsaWIuWl9ERUZB
VUxUX0NPTVBSRVNTSU9OLCB6bGliLkRFRkxBVEVELCAtemxpYi5NQVhfV0JJVFMpCi0KLSAgICAg
ICAgY29tcHJlc3NlZF93b3JsZCA9IGNvbXByZXNzLmNvbXByZXNzKCdXb3JsZCcpCi0gICAgICAg
IGNvbXByZXNzZWRfd29ybGQgKz0gY29tcHJlc3MuZmx1c2goemxpYi5aX1NZTkNfRkxVU0gpCi0g
ICAgICAgIGNvbXByZXNzZWRfd29ybGQgPSBjb21wcmVzc2VkX3dvcmxkWzotNF0KLSAgICAgICAg
ZGF0YSArPSAnXHhjMSVjJyAlIChsZW4oY29tcHJlc3NlZF93b3JsZCkgfCAweDgwKQotICAgICAg
ICBkYXRhICs9IF9tYXNrX2h5YmkoY29tcHJlc3NlZF93b3JsZCkKLQotICAgICAgICAjIENsb3Nl
IGZyYW1lCi0gICAgICAgIGRhdGEgKz0gJ1x4ODhceDhhJyArIF9tYXNrX2h5Ymkoc3RydWN0LnBh
Y2soJyFIJywgMTAwMCkgKyAnR29vZCBieWUnKQotCi0gICAgICAgIGV4dGVuc2lvbiA9IGNvbW1v
bi5FeHRlbnNpb25QYXJhbWV0ZXIoY29tbW9uLkRFRkxBVEVfRlJBTUVfRVhURU5TSU9OKQotICAg
ICAgICByZXF1ZXN0ID0gX2NyZWF0ZV9yZXF1ZXN0X2Zyb21fcmF3ZGF0YSgKLSAgICAgICAgICAg
IGRhdGEsIGRlZmxhdGVfZnJhbWVfcmVxdWVzdD1leHRlbnNpb24pCi0gICAgICAgIHNlbGYuYXNz
ZXJ0RXF1YWwoJ0hlbGxvJywgbXNndXRpbC5yZWNlaXZlX21lc3NhZ2UocmVxdWVzdCkpCi0gICAg
ICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ1dlYlNvY2tldCcsIG1zZ3V0aWwucmVjZWl2ZV9tZXNzYWdl
KHJlcXVlc3QpKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdXb3JsZCcsIG1zZ3V0aWwucmVj
ZWl2ZV9tZXNzYWdlKHJlcXVlc3QpKQotCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoTm9uZSwg
bXNndXRpbC5yZWNlaXZlX21lc3NhZ2UocmVxdWVzdCkpCi0KLSAgICBkZWYgdGVzdF9yZWNlaXZl
X21lc3NhZ2VfY2xpZW50X3VzaW5nX3NtYWxsZXJfd2luZG93KHNlbGYpOgotICAgICAgICAiIiJU
ZXN0IHRoYXQgZnJhbWVzIGNvbWluZyBmcm9tIGEgY2xpZW50IHdoaWNoIGlzIHVzaW5nIHNtYWxs
ZXIgd2luZG93Ci0gICAgICAgIHNpemUgdGhhdCB0aGUgc2VydmVyIGFyZSBjb3JyZWN0bHkgcmVj
ZWl2ZWQuCi0gICAgICAgICIiIgotCi0gICAgICAgICMgVXNpbmcgdGhlIHNtYWxsZXN0IHdpbmRv
dyBiaXRzIG9mIDggZm9yIGdlbmVyYXRpbmcgaW5wdXQgZnJhbWVzLgotICAgICAgICBjb21wcmVz
cyA9IHpsaWIuY29tcHJlc3NvYmooCi0gICAgICAgICAgICB6bGliLlpfREVGQVVMVF9DT01QUkVT
U0lPTiwgemxpYi5ERUZMQVRFRCwgLTgpCi0KLSAgICAgICAgZGF0YSA9ICcnCi0KLSAgICAgICAg
IyBVc2UgYSBmcmFtZSB3aG9zZSBjb250ZW50IGlzIGJpZ2dlciB0aGFuIHRoZSBjbGllbnRzJyBE
RUZMQVRFIHdpbmRvdwotICAgICAgICAjIHNpemUgYmVmb3JlIGNvbXByZXNzaW9uLiBUaGUgY29u
dGVudCBtYWlubHkgY29uc2lzdHMgb2YgJ2EnIGJ1dAotICAgICAgICAjIHJlcGV0aXRpb24gb2Yg
J2InIGlzIHB1dCBhdCB0aGUgaGVhZCBhbmQgdGFpbCBzbyB0aGF0IGlmIHRoZSB3aW5kb3cKLSAg
ICAgICAgIyBzaXplIGlzIGJpZywgdGhlIGhlYWQgaXMgYmFjay1yZWZlcmVuY2VkIGJ1dCBpZiBz
bWFsbCwgbm90LgotICAgICAgICBwYXlsb2FkID0gJ2InICogNjQgKyAnYScgKiAxMDI0ICsgJ2In
ICogNjQKLSAgICAgICAgY29tcHJlc3NlZF9oZWxsbyA9IGNvbXByZXNzLmNvbXByZXNzKHBheWxv
YWQpCi0gICAgICAgIGNvbXByZXNzZWRfaGVsbG8gKz0gY29tcHJlc3MuZmx1c2goemxpYi5aX1NZ
TkNfRkxVU0gpCi0gICAgICAgIGNvbXByZXNzZWRfaGVsbG8gPSBjb21wcmVzc2VkX2hlbGxvWzot
NF0KLSAgICAgICAgZGF0YSArPSAnXHhjMSVjJyAlIChsZW4oY29tcHJlc3NlZF9oZWxsbykgfCAw
eDgwKQotICAgICAgICBkYXRhICs9IF9tYXNrX2h5YmkoY29tcHJlc3NlZF9oZWxsbykKLQotICAg
ICAgICAjIENsb3NlIGZyYW1lCi0gICAgICAgIGRhdGEgKz0gJ1x4ODhceDhhJyArIF9tYXNrX2h5
Ymkoc3RydWN0LnBhY2soJyFIJywgMTAwMCkgKyAnR29vZCBieWUnKQotCi0gICAgICAgIGV4dGVu
c2lvbiA9IGNvbW1vbi5FeHRlbnNpb25QYXJhbWV0ZXIoY29tbW9uLkRFRkxBVEVfRlJBTUVfRVhU
RU5TSU9OKQotICAgICAgICByZXF1ZXN0ID0gX2NyZWF0ZV9yZXF1ZXN0X2Zyb21fcmF3ZGF0YSgK
LSAgICAgICAgICAgIGRhdGEsIGRlZmxhdGVfZnJhbWVfcmVxdWVzdD1leHRlbnNpb24pCi0gICAg
ICAgIHNlbGYuYXNzZXJ0RXF1YWwocGF5bG9hZCwgbXNndXRpbC5yZWNlaXZlX21lc3NhZ2UocmVx
dWVzdCkpCi0KLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChOb25lLCBtc2d1dGlsLnJlY2VpdmVf
bWVzc2FnZShyZXF1ZXN0KSkKLQotICAgIGRlZiB0ZXN0X3JlY2VpdmVfbWVzc2FnZV9jb21wX2Jp
dChzZWxmKToKLSAgICAgICAgY29tcHJlc3MgPSB6bGliLmNvbXByZXNzb2JqKAotICAgICAgICAg
ICAgemxpYi5aX0RFRkFVTFRfQ09NUFJFU1NJT04sIHpsaWIuREVGTEFURUQsIC16bGliLk1BWF9X
QklUUykKLQotICAgICAgICBkYXRhID0gJycKLQotICAgICAgICBjb21wcmVzc2VkX2hlbGxvID0g
Y29tcHJlc3MuY29tcHJlc3MoJ0hlbGxvJykKLSAgICAgICAgY29tcHJlc3NlZF9oZWxsbyArPSBj
b21wcmVzcy5mbHVzaCh6bGliLlpfU1lOQ19GTFVTSCkKLSAgICAgICAgY29tcHJlc3NlZF9oZWxs
byA9IGNvbXByZXNzZWRfaGVsbG9bOi00XQotICAgICAgICBkYXRhICs9ICdceGMxJWMnICUgKGxl
bihjb21wcmVzc2VkX2hlbGxvKSB8IDB4ODApCi0gICAgICAgIGRhdGEgKz0gX21hc2tfaHliaShj
b21wcmVzc2VkX2hlbGxvKQotCi0gICAgICAgIGRhdGEgKz0gJ1x4ODFceDg1JyArIF9tYXNrX2h5
YmkoJ0hlbGxvJykKLQotICAgICAgICBjb21wcmVzcyA9IHpsaWIuY29tcHJlc3NvYmooCi0gICAg
ICAgICAgICB6bGliLlpfREVGQVVMVF9DT01QUkVTU0lPTiwgemxpYi5ERUZMQVRFRCwgLXpsaWIu
TUFYX1dCSVRTKQotCi0gICAgICAgIGNvbXByZXNzZWRfMm5kX2hlbGxvID0gY29tcHJlc3MuY29t
cHJlc3MoJ0hlbGxvJykKLSAgICAgICAgY29tcHJlc3NlZF8ybmRfaGVsbG8gKz0gY29tcHJlc3Mu
Zmx1c2goemxpYi5aX1NZTkNfRkxVU0gpCi0gICAgICAgIGNvbXByZXNzZWRfMm5kX2hlbGxvID0g
Y29tcHJlc3NlZF8ybmRfaGVsbG9bOi00XQotICAgICAgICBkYXRhICs9ICdceGMxJWMnICUgKGxl
bihjb21wcmVzc2VkXzJuZF9oZWxsbykgfCAweDgwKQotICAgICAgICBkYXRhICs9IF9tYXNrX2h5
YmkoY29tcHJlc3NlZF8ybmRfaGVsbG8pCi0KLSAgICAgICAgZXh0ZW5zaW9uID0gY29tbW9uLkV4
dGVuc2lvblBhcmFtZXRlcihjb21tb24uREVGTEFURV9GUkFNRV9FWFRFTlNJT04pCi0gICAgICAg
IHJlcXVlc3QgPSBfY3JlYXRlX3JlcXVlc3RfZnJvbV9yYXdkYXRhKAotICAgICAgICAgICAgZGF0
YSwgZGVmbGF0ZV9mcmFtZV9yZXF1ZXN0PWV4dGVuc2lvbikKLSAgICAgICAgZm9yIGkgaW4geHJh
bmdlKDMpOgotICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnSGVsbG8nLCBtc2d1dGlsLnJl
Y2VpdmVfbWVzc2FnZShyZXF1ZXN0KSkKLQotICAgIGRlZiB0ZXN0X3JlY2VpdmVfbWVzc2FnZV92
YXJpb3VzX2J0eXBlKHNlbGYpOgotICAgICAgICBjb21wcmVzcyA9IHpsaWIuY29tcHJlc3NvYmoo
Ci0gICAgICAgICAgICB6bGliLlpfREVGQVVMVF9DT01QUkVTU0lPTiwgemxpYi5ERUZMQVRFRCwg
LXpsaWIuTUFYX1dCSVRTKQotCi0gICAgICAgIGRhdGEgPSAnJwotCi0gICAgICAgIGNvbXByZXNz
ZWRfaGVsbG8gPSBjb21wcmVzcy5jb21wcmVzcygnSGVsbG8nKQotICAgICAgICBjb21wcmVzc2Vk
X2hlbGxvICs9IGNvbXByZXNzLmZsdXNoKHpsaWIuWl9TWU5DX0ZMVVNIKQotICAgICAgICBjb21w
cmVzc2VkX2hlbGxvID0gY29tcHJlc3NlZF9oZWxsb1s6LTRdCi0gICAgICAgIGRhdGEgKz0gJ1x4
YzElYycgJSAobGVuKGNvbXByZXNzZWRfaGVsbG8pIHwgMHg4MCkKLSAgICAgICAgZGF0YSArPSBf
bWFza19oeWJpKGNvbXByZXNzZWRfaGVsbG8pCi0KLSAgICAgICAgY29tcHJlc3NlZF93ZWJzb2Nr
ZXQgPSBjb21wcmVzcy5jb21wcmVzcygnV2ViU29ja2V0JykKLSAgICAgICAgY29tcHJlc3NlZF93
ZWJzb2NrZXQgKz0gY29tcHJlc3MuZmx1c2goemxpYi5aX0ZJTklTSCkKLSAgICAgICAgY29tcHJl
c3NlZF93ZWJzb2NrZXQgKz0gJ1x4MDAnCi0gICAgICAgIGRhdGEgKz0gJ1x4YzElYycgJSAobGVu
KGNvbXByZXNzZWRfd2Vic29ja2V0KSB8IDB4ODApCi0gICAgICAgIGRhdGEgKz0gX21hc2tfaHli
aShjb21wcmVzc2VkX3dlYnNvY2tldCkKLQotICAgICAgICBjb21wcmVzcyA9IHpsaWIuY29tcHJl
c3NvYmooCi0gICAgICAgICAgICB6bGliLlpfREVGQVVMVF9DT01QUkVTU0lPTiwgemxpYi5ERUZM
QVRFRCwgLXpsaWIuTUFYX1dCSVRTKQotCi0gICAgICAgIGNvbXByZXNzZWRfd29ybGQgPSBjb21w
cmVzcy5jb21wcmVzcygnV29ybGQnKQotICAgICAgICBjb21wcmVzc2VkX3dvcmxkICs9IGNvbXBy
ZXNzLmZsdXNoKHpsaWIuWl9TWU5DX0ZMVVNIKQotICAgICAgICBjb21wcmVzc2VkX3dvcmxkID0g
Y29tcHJlc3NlZF93b3JsZFs6LTRdCi0gICAgICAgIGRhdGEgKz0gJ1x4YzElYycgJSAobGVuKGNv
bXByZXNzZWRfd29ybGQpIHwgMHg4MCkKLSAgICAgICAgZGF0YSArPSBfbWFza19oeWJpKGNvbXBy
ZXNzZWRfd29ybGQpCi0KLSAgICAgICAgIyBDbG9zZSBmcmFtZQotICAgICAgICBkYXRhICs9ICdc
eDg4XHg4YScgKyBfbWFza19oeWJpKHN0cnVjdC5wYWNrKCchSCcsIDEwMDApICsgJ0dvb2QgYnll
JykKLQotICAgICAgICBleHRlbnNpb24gPSBjb21tb24uRXh0ZW5zaW9uUGFyYW1ldGVyKGNvbW1v
bi5ERUZMQVRFX0ZSQU1FX0VYVEVOU0lPTikKLSAgICAgICAgcmVxdWVzdCA9IF9jcmVhdGVfcmVx
dWVzdF9mcm9tX3Jhd2RhdGEoCi0gICAgICAgICAgICBkYXRhLCBkZWZsYXRlX2ZyYW1lX3JlcXVl
c3Q9ZXh0ZW5zaW9uKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdIZWxsbycsIG1zZ3V0aWwu
cmVjZWl2ZV9tZXNzYWdlKHJlcXVlc3QpKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdXZWJT
b2NrZXQnLCBtc2d1dGlsLnJlY2VpdmVfbWVzc2FnZShyZXF1ZXN0KSkKLSAgICAgICAgc2VsZi5h
c3NlcnRFcXVhbCgnV29ybGQnLCBtc2d1dGlsLnJlY2VpdmVfbWVzc2FnZShyZXF1ZXN0KSkKLQot
ICAgICAgICBzZWxmLmFzc2VydEVxdWFsKE5vbmUsIG1zZ3V0aWwucmVjZWl2ZV9tZXNzYWdlKHJl
cXVlc3QpKQotCi0KLWNsYXNzIFBlck1lc3NhZ2VEZWZsYXRlVGVzdCh1bml0dGVzdC5UZXN0Q2Fz
ZSk6Ci0gICAgIiIiVGVzdHMgZm9yIHBlcm1lc3NhZ2UtZGVmbGF0ZSBleHRlbnNpb24uIiIiCi0K
LSAgICBkZWYgdGVzdF9zZW5kX21lc3NhZ2Uoc2VsZik6Ci0gICAgICAgIGV4dGVuc2lvbiA9IGNv
bW1vbi5FeHRlbnNpb25QYXJhbWV0ZXIoCi0gICAgICAgICAgICAgICAgY29tbW9uLlBFUk1FU1NB
R0VfREVGTEFURV9FWFRFTlNJT04pCi0gICAgICAgIHJlcXVlc3QgPSBfY3JlYXRlX3JlcXVlc3Rf
ZnJvbV9yYXdkYXRhKAotICAgICAgICAgICAgICAgICcnLCBwZXJtZXNzYWdlX2RlZmxhdGVfcmVx
dWVzdD1leHRlbnNpb24pCi0gICAgICAgIG1zZ3V0aWwuc2VuZF9tZXNzYWdlKHJlcXVlc3QsICdI
ZWxsbycpCi0KLSAgICAgICAgY29tcHJlc3MgPSB6bGliLmNvbXByZXNzb2JqKAotICAgICAgICAg
ICAgICAgIHpsaWIuWl9ERUZBVUxUX0NPTVBSRVNTSU9OLCB6bGliLkRFRkxBVEVELCAtemxpYi5N
QVhfV0JJVFMpCi0gICAgICAgIGNvbXByZXNzZWRfaGVsbG8gPSBjb21wcmVzcy5jb21wcmVzcygn
SGVsbG8nKQotICAgICAgICBjb21wcmVzc2VkX2hlbGxvICs9IGNvbXByZXNzLmZsdXNoKHpsaWIu
Wl9TWU5DX0ZMVVNIKQotICAgICAgICBjb21wcmVzc2VkX2hlbGxvID0gY29tcHJlc3NlZF9oZWxs
b1s6LTRdCi0gICAgICAgIGV4cGVjdGVkID0gJ1x4YzElYycgJSBsZW4oY29tcHJlc3NlZF9oZWxs
bykKLSAgICAgICAgZXhwZWN0ZWQgKz0gY29tcHJlc3NlZF9oZWxsbwotICAgICAgICBzZWxmLmFz
c2VydEVxdWFsKGV4cGVjdGVkLCByZXF1ZXN0LmNvbm5lY3Rpb24ud3JpdHRlbl9kYXRhKCkpCi0K
LSAgICBkZWYgdGVzdF9zZW5kX2VtcHR5X21lc3NhZ2Uoc2VsZik6Ci0gICAgICAgICIiIlRlc3Qg
dGhhdCBhbiBlbXB0eSBtZXNzYWdlIGlzIGNvbXByZXNzZWQgY29ycmVjdGx5LiIiIgotCi0gICAg
ICAgIGV4dGVuc2lvbiA9IGNvbW1vbi5FeHRlbnNpb25QYXJhbWV0ZXIoCi0gICAgICAgICAgICAg
ICAgY29tbW9uLlBFUk1FU1NBR0VfREVGTEFURV9FWFRFTlNJT04pCi0gICAgICAgIHJlcXVlc3Qg
PSBfY3JlYXRlX3JlcXVlc3RfZnJvbV9yYXdkYXRhKAotICAgICAgICAgICAgICAgICcnLCBwZXJt
ZXNzYWdlX2RlZmxhdGVfcmVxdWVzdD1leHRlbnNpb24pCi0KLSAgICAgICAgbXNndXRpbC5zZW5k
X21lc3NhZ2UocmVxdWVzdCwgJycpCi0KLSAgICAgICAgIyBQYXlsb2FkIGluIGJpbmFyeTogMGIw
MDAwMDAxMCAwYjAwMDAwMDAwCi0gICAgICAgICMgRnJvbSBMU0IsCi0gICAgICAgICMgLSAxIGJp
dCBvZiBCRklOQUwgKDApCi0gICAgICAgICMgLSAyIGJpdHMgb2YgQlRZUEUgKDAxIHRoYXQgbWVh
bnMgZml4ZWQgSHVmZm1hbikKLSAgICAgICAgIyAtIDcgYml0cyBvZiB0aGUgZmlyc3QgY29kZSAo
MDAwMDAwMCB0aGF0IGlzIHRoZSBjb2RlIGZvciB0aGUKLSAgICAgICAgIyAgIGVuZC1vZi1ibG9j
aykKLSAgICAgICAgIyAtIDEgYml0IG9mIEJGSU5BTCAoMCkKLSAgICAgICAgIyAtIDIgYml0cyBv
ZiBCVFlQRSAobm8gY29tcHJlc3Npb24pCi0gICAgICAgICMgLSAzIGJpdHMgb2YgcGFkZGluZwot
ICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdceGMxXHgwMlx4MDJceDAwJywKLSAgICAgICAgICAg
ICAgICAgICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ud3JpdHRlbl9kYXRhKCkpCi0KLSAgICBk
ZWYgdGVzdF9zZW5kX21lc3NhZ2Vfd2l0aF9udWxsX2NoYXJhY3RlcihzZWxmKToKLSAgICAgICAg
IiIiVGVzdCB0aGF0IGEgc2ltcGxlIHBheWxvYWQgKG9uZSBudWxsKSBpcyBmcmFtZWQgY29ycmVj
dGx5LiIiIgotCi0gICAgICAgIGV4dGVuc2lvbiA9IGNvbW1vbi5FeHRlbnNpb25QYXJhbWV0ZXIo
Ci0gICAgICAgICAgICAgICAgY29tbW9uLlBFUk1FU1NBR0VfREVGTEFURV9FWFRFTlNJT04pCi0g
ICAgICAgIHJlcXVlc3QgPSBfY3JlYXRlX3JlcXVlc3RfZnJvbV9yYXdkYXRhKAotICAgICAgICAg
ICAgICAgICcnLCBwZXJtZXNzYWdlX2RlZmxhdGVfcmVxdWVzdD1leHRlbnNpb24pCi0KLSAgICAg
ICAgbXNndXRpbC5zZW5kX21lc3NhZ2UocmVxdWVzdCwgJ1x4MDAnKQotCi0gICAgICAgICMgUGF5
bG9hZCBpbiBiaW5hcnk6IDBiMDExMDAwMTAgMGIwMDAwMDAwMCAwYjAwMDAwMDAwCi0gICAgICAg
ICMgRnJvbSBMU0IsCi0gICAgICAgICMgLSAxIGJpdCBvZiBCRklOQUwgKDApCi0gICAgICAgICMg
LSAyIGJpdHMgb2YgQlRZUEUgKDAxIHRoYXQgbWVhbnMgZml4ZWQgSHVmZm1hbikKLSAgICAgICAg
IyAtIDggYml0cyBvZiB0aGUgZmlyc3QgY29kZSAoMDAxMTAwMDAgdGhhdCBpcyB0aGUgY29kZSBm
b3IgdGhlIGxpdGVyYWwKLSAgICAgICAgIyAgIGFscGhhYmV0IDB4MDApCi0gICAgICAgICMgLSA3
IGJpdHMgb2YgdGhlIHNlY29uZCBjb2RlICgwMDAwMDAwIHRoYXQgaXMgdGhlIGNvZGUgZm9yIHRo
ZQotICAgICAgICAjICAgZW5kLW9mLWJsb2NrKQotICAgICAgICAjIC0gMSBiaXQgb2YgQkZJTkFM
ICgwKQotICAgICAgICAjIC0gMiBiaXRzIG9mIEJUWVBFIChubyBjb21wcmVzc2lvbikKLSAgICAg
ICAgIyAtIDIgYml0cyBvZiBwYWRkaW5nCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ1x4YzFc
eDAzXHg2Mlx4MDBceDAwJywKLSAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0LmNvbm5l
Y3Rpb24ud3JpdHRlbl9kYXRhKCkpCi0KLSAgICBkZWYgdGVzdF9zZW5kX3R3b19tZXNzYWdlcyhz
ZWxmKToKLSAgICAgICAgZXh0ZW5zaW9uID0gY29tbW9uLkV4dGVuc2lvblBhcmFtZXRlcigKLSAg
ICAgICAgICAgICAgICBjb21tb24uUEVSTUVTU0FHRV9ERUZMQVRFX0VYVEVOU0lPTikKLSAgICAg
ICAgcmVxdWVzdCA9IF9jcmVhdGVfcmVxdWVzdF9mcm9tX3Jhd2RhdGEoCi0gICAgICAgICAgICAg
ICAgJycsIHBlcm1lc3NhZ2VfZGVmbGF0ZV9yZXF1ZXN0PWV4dGVuc2lvbikKLSAgICAgICAgbXNn
dXRpbC5zZW5kX21lc3NhZ2UocmVxdWVzdCwgJ0hlbGxvJykKLSAgICAgICAgbXNndXRpbC5zZW5k
X21lc3NhZ2UocmVxdWVzdCwgJ1dvcmxkJykKLQotICAgICAgICBjb21wcmVzcyA9IHpsaWIuY29t
cHJlc3NvYmooCi0gICAgICAgICAgICAgICAgemxpYi5aX0RFRkFVTFRfQ09NUFJFU1NJT04sIHps
aWIuREVGTEFURUQsIC16bGliLk1BWF9XQklUUykKLQotICAgICAgICBleHBlY3RlZCA9ICcnCi0K
LSAgICAgICAgY29tcHJlc3NlZF9oZWxsbyA9IGNvbXByZXNzLmNvbXByZXNzKCdIZWxsbycpCi0g
ICAgICAgIGNvbXByZXNzZWRfaGVsbG8gKz0gY29tcHJlc3MuZmx1c2goemxpYi5aX1NZTkNfRkxV
U0gpCi0gICAgICAgIGNvbXByZXNzZWRfaGVsbG8gPSBjb21wcmVzc2VkX2hlbGxvWzotNF0KLSAg
ICAgICAgZXhwZWN0ZWQgKz0gJ1x4YzElYycgJSBsZW4oY29tcHJlc3NlZF9oZWxsbykKLSAgICAg
ICAgZXhwZWN0ZWQgKz0gY29tcHJlc3NlZF9oZWxsbwotCi0gICAgICAgIGNvbXByZXNzZWRfd29y
bGQgPSBjb21wcmVzcy5jb21wcmVzcygnV29ybGQnKQotICAgICAgICBjb21wcmVzc2VkX3dvcmxk
ICs9IGNvbXByZXNzLmZsdXNoKHpsaWIuWl9TWU5DX0ZMVVNIKQotICAgICAgICBjb21wcmVzc2Vk
X3dvcmxkID0gY29tcHJlc3NlZF93b3JsZFs6LTRdCi0gICAgICAgIGV4cGVjdGVkICs9ICdceGMx
JWMnICUgbGVuKGNvbXByZXNzZWRfd29ybGQpCi0gICAgICAgIGV4cGVjdGVkICs9IGNvbXByZXNz
ZWRfd29ybGQKLQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGV4cGVjdGVkLCByZXF1ZXN0LmNv
bm5lY3Rpb24ud3JpdHRlbl9kYXRhKCkpCi0KLSAgICBkZWYgdGVzdF9zZW5kX21lc3NhZ2VfZnJh
Z21lbnRlZChzZWxmKToKLSAgICAgICAgZXh0ZW5zaW9uID0gY29tbW9uLkV4dGVuc2lvblBhcmFt
ZXRlcigKLSAgICAgICAgICAgICAgICBjb21tb24uUEVSTUVTU0FHRV9ERUZMQVRFX0VYVEVOU0lP
TikKLSAgICAgICAgcmVxdWVzdCA9IF9jcmVhdGVfcmVxdWVzdF9mcm9tX3Jhd2RhdGEoCi0gICAg
ICAgICAgICAgICAgJycsIHBlcm1lc3NhZ2VfZGVmbGF0ZV9yZXF1ZXN0PWV4dGVuc2lvbikKLSAg
ICAgICAgbXNndXRpbC5zZW5kX21lc3NhZ2UocmVxdWVzdCwgJ0hlbGxvJywgZW5kPUZhbHNlKQot
ICAgICAgICBtc2d1dGlsLnNlbmRfbWVzc2FnZShyZXF1ZXN0LCAnR29vZGJ5ZScsIGVuZD1GYWxz
ZSkKLSAgICAgICAgbXNndXRpbC5zZW5kX21lc3NhZ2UocmVxdWVzdCwgJ1dvcmxkJykKLQotICAg
ICAgICBjb21wcmVzcyA9IHpsaWIuY29tcHJlc3NvYmooCi0gICAgICAgICAgICAgICAgemxpYi5a
X0RFRkFVTFRfQ09NUFJFU1NJT04sIHpsaWIuREVGTEFURUQsIC16bGliLk1BWF9XQklUUykKLSAg
ICAgICAgY29tcHJlc3NlZF9oZWxsbyA9IGNvbXByZXNzLmNvbXByZXNzKCdIZWxsbycpCi0gICAg
ICAgIGNvbXByZXNzZWRfaGVsbG8gKz0gY29tcHJlc3MuZmx1c2goemxpYi5aX1NZTkNfRkxVU0gp
Ci0gICAgICAgIGV4cGVjdGVkID0gJ1x4NDElYycgJSBsZW4oY29tcHJlc3NlZF9oZWxsbykKLSAg
ICAgICAgZXhwZWN0ZWQgKz0gY29tcHJlc3NlZF9oZWxsbwotICAgICAgICBjb21wcmVzc2VkX2dv
b2RieWUgPSBjb21wcmVzcy5jb21wcmVzcygnR29vZGJ5ZScpCi0gICAgICAgIGNvbXByZXNzZWRf
Z29vZGJ5ZSArPSBjb21wcmVzcy5mbHVzaCh6bGliLlpfU1lOQ19GTFVTSCkKLSAgICAgICAgZXhw
ZWN0ZWQgKz0gJ1x4MDAlYycgJSBsZW4oY29tcHJlc3NlZF9nb29kYnllKQotICAgICAgICBleHBl
Y3RlZCArPSBjb21wcmVzc2VkX2dvb2RieWUKLSAgICAgICAgY29tcHJlc3NlZF93b3JsZCA9IGNv
bXByZXNzLmNvbXByZXNzKCdXb3JsZCcpCi0gICAgICAgIGNvbXByZXNzZWRfd29ybGQgKz0gY29t
cHJlc3MuZmx1c2goemxpYi5aX1NZTkNfRkxVU0gpCi0gICAgICAgIGNvbXByZXNzZWRfd29ybGQg
PSBjb21wcmVzc2VkX3dvcmxkWzotNF0KLSAgICAgICAgZXhwZWN0ZWQgKz0gJ1x4ODAlYycgJSBs
ZW4oY29tcHJlc3NlZF93b3JsZCkKLSAgICAgICAgZXhwZWN0ZWQgKz0gY29tcHJlc3NlZF93b3Js
ZAotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGV4cGVjdGVkLCByZXF1ZXN0LmNvbm5lY3Rpb24u
d3JpdHRlbl9kYXRhKCkpCi0KLSAgICBkZWYgdGVzdF9zZW5kX21lc3NhZ2VfZnJhZ21lbnRlZF9l
bXB0eV9maXJzdF9mcmFtZShzZWxmKToKLSAgICAgICAgZXh0ZW5zaW9uID0gY29tbW9uLkV4dGVu
c2lvblBhcmFtZXRlcigKLSAgICAgICAgICAgICAgICBjb21tb24uUEVSTUVTU0FHRV9ERUZMQVRF
X0VYVEVOU0lPTikKLSAgICAgICAgcmVxdWVzdCA9IF9jcmVhdGVfcmVxdWVzdF9mcm9tX3Jhd2Rh
dGEoCi0gICAgICAgICAgICAgICAgJycsIHBlcm1lc3NhZ2VfZGVmbGF0ZV9yZXF1ZXN0PWV4dGVu
c2lvbikKLSAgICAgICAgbXNndXRpbC5zZW5kX21lc3NhZ2UocmVxdWVzdCwgJycsIGVuZD1GYWxz
ZSkKLSAgICAgICAgbXNndXRpbC5zZW5kX21lc3NhZ2UocmVxdWVzdCwgJ0hlbGxvJykKLQotICAg
ICAgICBjb21wcmVzcyA9IHpsaWIuY29tcHJlc3NvYmooCi0gICAgICAgICAgICAgICAgemxpYi5a
X0RFRkFVTFRfQ09NUFJFU1NJT04sIHpsaWIuREVGTEFURUQsIC16bGliLk1BWF9XQklUUykKLSAg
ICAgICAgY29tcHJlc3NlZF9oZWxsbyA9IGNvbXByZXNzLmNvbXByZXNzKCcnKQotICAgICAgICBj
b21wcmVzc2VkX2hlbGxvICs9IGNvbXByZXNzLmZsdXNoKHpsaWIuWl9TWU5DX0ZMVVNIKQotICAg
ICAgICBleHBlY3RlZCA9ICdceDQxJWMnICUgbGVuKGNvbXByZXNzZWRfaGVsbG8pCi0gICAgICAg
IGV4cGVjdGVkICs9IGNvbXByZXNzZWRfaGVsbG8KLSAgICAgICAgY29tcHJlc3NlZF9lbXB0eSA9
IGNvbXByZXNzLmNvbXByZXNzKCdIZWxsbycpCi0gICAgICAgIGNvbXByZXNzZWRfZW1wdHkgKz0g
Y29tcHJlc3MuZmx1c2goemxpYi5aX1NZTkNfRkxVU0gpCi0gICAgICAgIGNvbXByZXNzZWRfZW1w
dHkgPSBjb21wcmVzc2VkX2VtcHR5WzotNF0KLSAgICAgICAgZXhwZWN0ZWQgKz0gJ1x4ODAlYycg
JSBsZW4oY29tcHJlc3NlZF9lbXB0eSkKLSAgICAgICAgZXhwZWN0ZWQgKz0gY29tcHJlc3NlZF9l
bXB0eQotICAgICAgICBwcmludCAnJXInICUgZXhwZWN0ZWQKLSAgICAgICAgc2VsZi5hc3NlcnRF
cXVhbChleHBlY3RlZCwgcmVxdWVzdC5jb25uZWN0aW9uLndyaXR0ZW5fZGF0YSgpKQotCi0gICAg
ZGVmIHRlc3Rfc2VuZF9tZXNzYWdlX2ZyYWdtZW50ZWRfZW1wdHlfbGFzdF9mcmFtZShzZWxmKToK
LSAgICAgICAgZXh0ZW5zaW9uID0gY29tbW9uLkV4dGVuc2lvblBhcmFtZXRlcigKLSAgICAgICAg
ICAgICAgICBjb21tb24uUEVSTUVTU0FHRV9ERUZMQVRFX0VYVEVOU0lPTikKLSAgICAgICAgcmVx
dWVzdCA9IF9jcmVhdGVfcmVxdWVzdF9mcm9tX3Jhd2RhdGEoCi0gICAgICAgICAgICAgICAgJycs
IHBlcm1lc3NhZ2VfZGVmbGF0ZV9yZXF1ZXN0PWV4dGVuc2lvbikKLSAgICAgICAgbXNndXRpbC5z
ZW5kX21lc3NhZ2UocmVxdWVzdCwgJ0hlbGxvJywgZW5kPUZhbHNlKQotICAgICAgICBtc2d1dGls
LnNlbmRfbWVzc2FnZShyZXF1ZXN0LCAnJykKLQotICAgICAgICBjb21wcmVzcyA9IHpsaWIuY29t
cHJlc3NvYmooCi0gICAgICAgICAgICAgICAgemxpYi5aX0RFRkFVTFRfQ09NUFJFU1NJT04sIHps
aWIuREVGTEFURUQsIC16bGliLk1BWF9XQklUUykKLSAgICAgICAgY29tcHJlc3NlZF9oZWxsbyA9
IGNvbXByZXNzLmNvbXByZXNzKCdIZWxsbycpCi0gICAgICAgIGNvbXByZXNzZWRfaGVsbG8gKz0g
Y29tcHJlc3MuZmx1c2goemxpYi5aX1NZTkNfRkxVU0gpCi0gICAgICAgIGV4cGVjdGVkID0gJ1x4
NDElYycgJSBsZW4oY29tcHJlc3NlZF9oZWxsbykKLSAgICAgICAgZXhwZWN0ZWQgKz0gY29tcHJl
c3NlZF9oZWxsbwotICAgICAgICBjb21wcmVzc2VkX2VtcHR5ID0gY29tcHJlc3MuY29tcHJlc3Mo
JycpCi0gICAgICAgIGNvbXByZXNzZWRfZW1wdHkgKz0gY29tcHJlc3MuZmx1c2goemxpYi5aX1NZ
TkNfRkxVU0gpCi0gICAgICAgIGNvbXByZXNzZWRfZW1wdHkgPSBjb21wcmVzc2VkX2VtcHR5Wzot
NF0KLSAgICAgICAgZXhwZWN0ZWQgKz0gJ1x4ODAlYycgJSBsZW4oY29tcHJlc3NlZF9lbXB0eSkK
LSAgICAgICAgZXhwZWN0ZWQgKz0gY29tcHJlc3NlZF9lbXB0eQotICAgICAgICBzZWxmLmFzc2Vy
dEVxdWFsKGV4cGVjdGVkLCByZXF1ZXN0LmNvbm5lY3Rpb24ud3JpdHRlbl9kYXRhKCkpCi0KLSAg
ICBkZWYgdGVzdF9zZW5kX21lc3NhZ2VfdXNpbmdfc21hbGxfd2luZG93KHNlbGYpOgotICAgICAg
ICBjb21tb25fcGFydCA9ICdhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5eicKLSAgICAgICAgdGVz
dF9tZXNzYWdlID0gY29tbW9uX3BhcnQgKyAnLScgKiAzMDAwMCArIGNvbW1vbl9wYXJ0Ci0KLSAg
ICAgICAgZXh0ZW5zaW9uID0gY29tbW9uLkV4dGVuc2lvblBhcmFtZXRlcigKLSAgICAgICAgICAg
ICAgICBjb21tb24uUEVSTUVTU0FHRV9ERUZMQVRFX0VYVEVOU0lPTikKLSAgICAgICAgZXh0ZW5z
aW9uLmFkZF9wYXJhbWV0ZXIoJ3NlcnZlcl9tYXhfd2luZG93X2JpdHMnLCAnOCcpCi0gICAgICAg
IHJlcXVlc3QgPSBfY3JlYXRlX3JlcXVlc3RfZnJvbV9yYXdkYXRhKAotICAgICAgICAgICAgICAg
ICcnLCBwZXJtZXNzYWdlX2RlZmxhdGVfcmVxdWVzdD1leHRlbnNpb24pCi0gICAgICAgIG1zZ3V0
aWwuc2VuZF9tZXNzYWdlKHJlcXVlc3QsIHRlc3RfbWVzc2FnZSkKLQotICAgICAgICBleHBlY3Rl
ZF93ZWJzb2NrZXRfaGVhZGVyX3NpemUgPSAyCi0gICAgICAgIGV4cGVjdGVkX3dlYnNvY2tldF9w
YXlsb2FkX3NpemUgPSA5MQotCi0gICAgICAgIGFjdHVhbF9mcmFtZSA9IHJlcXVlc3QuY29ubmVj
dGlvbi53cml0dGVuX2RhdGEoKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGV4cGVjdGVkX3dl
YnNvY2tldF9oZWFkZXJfc2l6ZSArCi0gICAgICAgICAgICAgICAgICAgICAgICAgZXhwZWN0ZWRf
d2Vic29ja2V0X3BheWxvYWRfc2l6ZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICBsZW4oYWN0
dWFsX2ZyYW1lKSkKLSAgICAgICAgYWN0dWFsX2hlYWRlciA9IGFjdHVhbF9mcmFtZVswOmV4cGVj
dGVkX3dlYnNvY2tldF9oZWFkZXJfc2l6ZV0KLSAgICAgICAgYWN0dWFsX3BheWxvYWQgPSBhY3R1
YWxfZnJhbWVbZXhwZWN0ZWRfd2Vic29ja2V0X2hlYWRlcl9zaXplOl0KLQotICAgICAgICBzZWxm
LmFzc2VydEVxdWFsKAotICAgICAgICAgICAgICAgICdceGMxJWMnICUgZXhwZWN0ZWRfd2Vic29j
a2V0X3BheWxvYWRfc2l6ZSwgYWN0dWFsX2hlYWRlcikKLSAgICAgICAgZGVjb21wcmVzcyA9IHps
aWIuZGVjb21wcmVzc29iaigtOCkKLSAgICAgICAgZGVjb21wcmVzc2VkX21lc3NhZ2UgPSBkZWNv
bXByZXNzLmRlY29tcHJlc3MoCi0gICAgICAgICAgICAgICAgYWN0dWFsX3BheWxvYWQgKyAnXHgw
MFx4MDBceGZmXHhmZicpCi0gICAgICAgIGRlY29tcHJlc3NlZF9tZXNzYWdlICs9IGRlY29tcHJl
c3MuZmx1c2goKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHRlc3RfbWVzc2FnZSwgZGVjb21w
cmVzc2VkX21lc3NhZ2UpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoMCwgbGVuKGRlY29tcHJl
c3MudW51c2VkX2RhdGEpKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKDAsIGxlbihkZWNvbXBy
ZXNzLnVuY29uc3VtZWRfdGFpbCkpCi0KLSAgICBkZWYgdGVzdF9zZW5kX21lc3NhZ2Vfbm9fY29u
dGV4dF90YWtlb3Zlcl9wYXJhbWV0ZXIoc2VsZik6Ci0gICAgICAgIGV4dGVuc2lvbiA9IGNvbW1v
bi5FeHRlbnNpb25QYXJhbWV0ZXIoCi0gICAgICAgICAgICAgICAgY29tbW9uLlBFUk1FU1NBR0Vf
REVGTEFURV9FWFRFTlNJT04pCi0gICAgICAgIGV4dGVuc2lvbi5hZGRfcGFyYW1ldGVyKCdzZXJ2
ZXJfbm9fY29udGV4dF90YWtlb3ZlcicsIE5vbmUpCi0gICAgICAgIHJlcXVlc3QgPSBfY3JlYXRl
X3JlcXVlc3RfZnJvbV9yYXdkYXRhKAotICAgICAgICAgICAgICAgICcnLCBwZXJtZXNzYWdlX2Rl
ZmxhdGVfcmVxdWVzdD1leHRlbnNpb24pCi0gICAgICAgIGZvciBpIGluIHhyYW5nZSgzKToKLSAg
ICAgICAgICAgIG1zZ3V0aWwuc2VuZF9tZXNzYWdlKHJlcXVlc3QsICdIZWxsbycsIGVuZD1GYWxz
ZSkKLSAgICAgICAgICAgIG1zZ3V0aWwuc2VuZF9tZXNzYWdlKHJlcXVlc3QsICdIZWxsbycsIGVu
ZD1UcnVlKQotCi0gICAgICAgIGNvbXByZXNzID0gemxpYi5jb21wcmVzc29iaigKLSAgICAgICAg
ICAgICAgICB6bGliLlpfREVGQVVMVF9DT01QUkVTU0lPTiwgemxpYi5ERUZMQVRFRCwgLXpsaWIu
TUFYX1dCSVRTKQotCi0gICAgICAgIGZpcnN0X2hlbGxvID0gY29tcHJlc3MuY29tcHJlc3MoJ0hl
bGxvJykKLSAgICAgICAgZmlyc3RfaGVsbG8gKz0gY29tcHJlc3MuZmx1c2goemxpYi5aX1NZTkNf
RkxVU0gpCi0gICAgICAgIGV4cGVjdGVkID0gJ1x4NDElYycgJSBsZW4oZmlyc3RfaGVsbG8pCi0g
ICAgICAgIGV4cGVjdGVkICs9IGZpcnN0X2hlbGxvCi0gICAgICAgIHNlY29uZF9oZWxsbyA9IGNv
bXByZXNzLmNvbXByZXNzKCdIZWxsbycpCi0gICAgICAgIHNlY29uZF9oZWxsbyArPSBjb21wcmVz
cy5mbHVzaCh6bGliLlpfU1lOQ19GTFVTSCkKLSAgICAgICAgc2Vjb25kX2hlbGxvID0gc2Vjb25k
X2hlbGxvWzotNF0KLSAgICAgICAgZXhwZWN0ZWQgKz0gJ1x4ODAlYycgJSBsZW4oc2Vjb25kX2hl
bGxvKQotICAgICAgICBleHBlY3RlZCArPSBzZWNvbmRfaGVsbG8KLQotICAgICAgICBzZWxmLmFz
c2VydEVxdWFsKAotICAgICAgICAgICAgICAgIGV4cGVjdGVkICsgZXhwZWN0ZWQgKyBleHBlY3Rl
ZCwKLSAgICAgICAgICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ud3JpdHRlbl9kYXRhKCkpCi0K
LSAgICBkZWYgdGVzdF9zZW5kX21lc3NhZ2VfZnJhZ21lbnRlZF9iZmluYWwoc2VsZik6Ci0gICAg
ICAgIGV4dGVuc2lvbiA9IGNvbW1vbi5FeHRlbnNpb25QYXJhbWV0ZXIoCi0gICAgICAgICAgICAg
ICAgY29tbW9uLlBFUk1FU1NBR0VfREVGTEFURV9FWFRFTlNJT04pCi0gICAgICAgIHJlcXVlc3Qg
PSBfY3JlYXRlX3JlcXVlc3RfZnJvbV9yYXdkYXRhKAotICAgICAgICAgICAgICAgICcnLCBwZXJt
ZXNzYWdlX2RlZmxhdGVfcmVxdWVzdD1leHRlbnNpb24pCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1
YWxzKDEsIGxlbihyZXF1ZXN0LndzX2V4dGVuc2lvbl9wcm9jZXNzb3JzKSkKLSAgICAgICAgcmVx
dWVzdC53c19leHRlbnNpb25fcHJvY2Vzc29yc1swXS5zZXRfYmZpbmFsKFRydWUpCi0gICAgICAg
IG1zZ3V0aWwuc2VuZF9tZXNzYWdlKHJlcXVlc3QsICdIZWxsbycsIGVuZD1GYWxzZSkKLSAgICAg
ICAgbXNndXRpbC5zZW5kX21lc3NhZ2UocmVxdWVzdCwgJ1dvcmxkJywgZW5kPVRydWUpCi0KLSAg
ICAgICAgZXhwZWN0ZWQgPSAnJwotCi0gICAgICAgIGNvbXByZXNzID0gemxpYi5jb21wcmVzc29i
aigKLSAgICAgICAgICAgIHpsaWIuWl9ERUZBVUxUX0NPTVBSRVNTSU9OLCB6bGliLkRFRkxBVEVE
LCAtemxpYi5NQVhfV0JJVFMpCi0gICAgICAgIGNvbXByZXNzZWRfaGVsbG8gPSBjb21wcmVzcy5j
b21wcmVzcygnSGVsbG8nKQotICAgICAgICBjb21wcmVzc2VkX2hlbGxvICs9IGNvbXByZXNzLmZs
dXNoKHpsaWIuWl9GSU5JU0gpCi0gICAgICAgIGNvbXByZXNzZWRfaGVsbG8gPSBjb21wcmVzc2Vk
X2hlbGxvICsgY2hyKDApCi0gICAgICAgIGV4cGVjdGVkICs9ICdceDQxJWMnICUgbGVuKGNvbXBy
ZXNzZWRfaGVsbG8pCi0gICAgICAgIGV4cGVjdGVkICs9IGNvbXByZXNzZWRfaGVsbG8KLQotICAg
ICAgICBjb21wcmVzcyA9IHpsaWIuY29tcHJlc3NvYmooCi0gICAgICAgICAgICB6bGliLlpfREVG
QVVMVF9DT01QUkVTU0lPTiwgemxpYi5ERUZMQVRFRCwgLXpsaWIuTUFYX1dCSVRTKQotICAgICAg
ICBjb21wcmVzc2VkX3dvcmxkID0gY29tcHJlc3MuY29tcHJlc3MoJ1dvcmxkJykKLSAgICAgICAg
Y29tcHJlc3NlZF93b3JsZCArPSBjb21wcmVzcy5mbHVzaCh6bGliLlpfRklOSVNIKQotICAgICAg
ICBjb21wcmVzc2VkX3dvcmxkID0gY29tcHJlc3NlZF93b3JsZCArIGNocigwKQotICAgICAgICBl
eHBlY3RlZCArPSAnXHg4MCVjJyAlIGxlbihjb21wcmVzc2VkX3dvcmxkKQotICAgICAgICBleHBl
Y3RlZCArPSBjb21wcmVzc2VkX3dvcmxkCi0KLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChleHBl
Y3RlZCwgcmVxdWVzdC5jb25uZWN0aW9uLndyaXR0ZW5fZGF0YSgpKQotCi0gICAgZGVmIHRlc3Rf
cmVjZWl2ZV9tZXNzYWdlX2RlZmxhdGUoc2VsZik6Ci0gICAgICAgIGNvbXByZXNzID0gemxpYi5j
b21wcmVzc29iaigKLSAgICAgICAgICAgIHpsaWIuWl9ERUZBVUxUX0NPTVBSRVNTSU9OLCB6bGli
LkRFRkxBVEVELCAtemxpYi5NQVhfV0JJVFMpCi0KLSAgICAgICAgY29tcHJlc3NlZF9oZWxsbyA9
IGNvbXByZXNzLmNvbXByZXNzKCdIZWxsbycpCi0gICAgICAgIGNvbXByZXNzZWRfaGVsbG8gKz0g
Y29tcHJlc3MuZmx1c2goemxpYi5aX1NZTkNfRkxVU0gpCi0gICAgICAgIGNvbXByZXNzZWRfaGVs
bG8gPSBjb21wcmVzc2VkX2hlbGxvWzotNF0KLSAgICAgICAgZGF0YSA9ICdceGMxJWMnICUgKGxl
bihjb21wcmVzc2VkX2hlbGxvKSB8IDB4ODApCi0gICAgICAgIGRhdGEgKz0gX21hc2tfaHliaShj
b21wcmVzc2VkX2hlbGxvKQotCi0gICAgICAgICMgQ2xvc2UgZnJhbWUKLSAgICAgICAgZGF0YSAr
PSAnXHg4OFx4OGEnICsgX21hc2tfaHliaShzdHJ1Y3QucGFjaygnIUgnLCAxMDAwKSArICdHb29k
IGJ5ZScpCi0KLSAgICAgICAgZXh0ZW5zaW9uID0gY29tbW9uLkV4dGVuc2lvblBhcmFtZXRlcigK
LSAgICAgICAgICAgICAgICBjb21tb24uUEVSTUVTU0FHRV9ERUZMQVRFX0VYVEVOU0lPTikKLSAg
ICAgICAgcmVxdWVzdCA9IF9jcmVhdGVfcmVxdWVzdF9mcm9tX3Jhd2RhdGEoCi0gICAgICAgICAg
ICAgICAgZGF0YSwgcGVybWVzc2FnZV9kZWZsYXRlX3JlcXVlc3Q9ZXh0ZW5zaW9uKQotICAgICAg
ICBzZWxmLmFzc2VydEVxdWFsKCdIZWxsbycsIG1zZ3V0aWwucmVjZWl2ZV9tZXNzYWdlKHJlcXVl
c3QpKQotCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoTm9uZSwgbXNndXRpbC5yZWNlaXZlX21l
c3NhZ2UocmVxdWVzdCkpCi0KLSAgICBkZWYgdGVzdF9yZWNlaXZlX21lc3NhZ2VfcmFuZG9tX3Nl
Y3Rpb24oc2VsZik6Ci0gICAgICAgICIiIlRlc3QgdGhhdCBhIGNvbXByZXNzZWQgbWVzc2FnZSBm
cmFnbWVudGVkIGludG8gbG90cyBvZiBjaHVua3MgaXMKLSAgICAgICAgY29ycmVjdGx5IHJlY2Vp
dmVkLgotICAgICAgICAiIiIKLQotICAgICAgICByYW5kb20uc2VlZChhPTApCi0gICAgICAgIHBh
eWxvYWQgPSAnJy5qb2luKAotICAgICAgICAgICAgW2NocihyYW5kb20ucmFuZGludCgwLCAyNTUp
KSBmb3IgaSBpbiB4cmFuZ2UoMTAwMCldKQotCi0gICAgICAgIGNvbXByZXNzID0gemxpYi5jb21w
cmVzc29iaigKLSAgICAgICAgICAgIHpsaWIuWl9ERUZBVUxUX0NPTVBSRVNTSU9OLCB6bGliLkRF
RkxBVEVELCAtemxpYi5NQVhfV0JJVFMpCi0gICAgICAgIGNvbXByZXNzZWRfcGF5bG9hZCA9IGNv
bXByZXNzLmNvbXByZXNzKHBheWxvYWQpCi0gICAgICAgIGNvbXByZXNzZWRfcGF5bG9hZCArPSBj
b21wcmVzcy5mbHVzaCh6bGliLlpfU1lOQ19GTFVTSCkKLSAgICAgICAgY29tcHJlc3NlZF9wYXls
b2FkID0gY29tcHJlc3NlZF9wYXlsb2FkWzotNF0KLQotICAgICAgICAjIEZyYWdtZW50IHRoZSBj
b21wcmVzc2VkIHBheWxvYWQgaW50byBsb3RzIG9mIGZyYW1lcy4KLSAgICAgICAgYnl0ZXNfY2h1
bmtlZCA9IDAKLSAgICAgICAgZGF0YSA9ICcnCi0gICAgICAgIGZyYW1lX2NvdW50ID0gMAotCi0g
ICAgICAgIGNodW5rX3NpemVzID0gW10KLQotICAgICAgICB3aGlsZSBieXRlc19jaHVua2VkIDwg
bGVuKGNvbXByZXNzZWRfcGF5bG9hZCk6Ci0gICAgICAgICAgICAjIE1ha2Ugc3VyZSB0aGF0Ci0g
ICAgICAgICAgICAjIC0gdGhlIGxlbmd0aCBvZiBjaHVua3MgYXJlIGVxdWFsIG9yIGxlc3MgdGhh
biAxMjUgc28gdGhhdCB3ZSBjYW4KLSAgICAgICAgICAgICMgICB1c2UgMSBvY3RldCBsZW5ndGgg
aGVhZGVyIGZvcm1hdCBmb3IgYWxsIGZyYW1lcy4KLSAgICAgICAgICAgICMgLSBhdCBsZWFzdCAx
MCBjaHVua3MgYXJlIGNyZWF0ZWQuCi0gICAgICAgICAgICBjaHVua19zaXplID0gcmFuZG9tLnJh
bmRpbnQoCi0gICAgICAgICAgICAgICAgMSwgbWluKDEyNSwKLSAgICAgICAgICAgICAgICAgICAg
ICAgbGVuKGNvbXByZXNzZWRfcGF5bG9hZCkgLyAxMCwKLSAgICAgICAgICAgICAgICAgICAgICAg
bGVuKGNvbXByZXNzZWRfcGF5bG9hZCkgLSBieXRlc19jaHVua2VkKSkKLSAgICAgICAgICAgIGNo
dW5rX3NpemVzLmFwcGVuZChjaHVua19zaXplKQotICAgICAgICAgICAgY2h1bmsgPSBjb21wcmVz
c2VkX3BheWxvYWRbCi0gICAgICAgICAgICAgICAgYnl0ZXNfY2h1bmtlZDpieXRlc19jaHVua2Vk
ICsgY2h1bmtfc2l6ZV0KLSAgICAgICAgICAgIGJ5dGVzX2NodW5rZWQgKz0gY2h1bmtfc2l6ZQot
Ci0gICAgICAgICAgICBmaXJzdF9vY3RldCA9IDB4MDAKLSAgICAgICAgICAgIGlmIGxlbihkYXRh
KSA9PSAwOgotICAgICAgICAgICAgICAgIGZpcnN0X29jdGV0ID0gZmlyc3Rfb2N0ZXQgfCAweDQy
Ci0gICAgICAgICAgICBpZiBieXRlc19jaHVua2VkID09IGxlbihjb21wcmVzc2VkX3BheWxvYWQp
OgotICAgICAgICAgICAgICAgIGZpcnN0X29jdGV0ID0gZmlyc3Rfb2N0ZXQgfCAweDgwCi0KLSAg
ICAgICAgICAgIGRhdGEgKz0gJyVjJWMnICUgKGZpcnN0X29jdGV0LCBjaHVua19zaXplIHwgMHg4
MCkKLSAgICAgICAgICAgIGRhdGEgKz0gX21hc2tfaHliaShjaHVuaykKLQotICAgICAgICAgICAg
ZnJhbWVfY291bnQgKz0gMQotCi0gICAgICAgIHByaW50ICJDaHVuayBzaXplczogJXIiICUgY2h1
bmtfc2l6ZXMKLSAgICAgICAgc2VsZi5hc3NlcnRUcnVlKGxlbihjaHVua19zaXplcykgPiAxMCkK
LQotICAgICAgICAjIENsb3NlIGZyYW1lCi0gICAgICAgIGRhdGEgKz0gJ1x4ODhceDhhJyArIF9t
YXNrX2h5Ymkoc3RydWN0LnBhY2soJyFIJywgMTAwMCkgKyAnR29vZCBieWUnKQotCi0gICAgICAg
IGV4dGVuc2lvbiA9IGNvbW1vbi5FeHRlbnNpb25QYXJhbWV0ZXIoCi0gICAgICAgICAgICBjb21t
b24uUEVSTUVTU0FHRV9ERUZMQVRFX0VYVEVOU0lPTikKLSAgICAgICAgcmVxdWVzdCA9IF9jcmVh
dGVfcmVxdWVzdF9mcm9tX3Jhd2RhdGEoCi0gICAgICAgICAgICBkYXRhLCBwZXJtZXNzYWdlX2Rl
ZmxhdGVfcmVxdWVzdD1leHRlbnNpb24pCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocGF5bG9h
ZCwgbXNndXRpbC5yZWNlaXZlX21lc3NhZ2UocmVxdWVzdCkpCi0KLSAgICAgICAgc2VsZi5hc3Nl
cnRFcXVhbChOb25lLCBtc2d1dGlsLnJlY2VpdmVfbWVzc2FnZShyZXF1ZXN0KSkKLQotICAgIGRl
ZiB0ZXN0X3JlY2VpdmVfdHdvX21lc3NhZ2VzKHNlbGYpOgotICAgICAgICBjb21wcmVzcyA9IHps
aWIuY29tcHJlc3NvYmooCi0gICAgICAgICAgICAgICAgemxpYi5aX0RFRkFVTFRfQ09NUFJFU1NJ
T04sIHpsaWIuREVGTEFURUQsIC16bGliLk1BWF9XQklUUykKLQotICAgICAgICBkYXRhID0gJycK
LQotICAgICAgICBjb21wcmVzc2VkX2hlbGxvID0gY29tcHJlc3MuY29tcHJlc3MoJ0hlbGxvV2Vi
U29ja2V0JykKLSAgICAgICAgY29tcHJlc3NlZF9oZWxsbyArPSBjb21wcmVzcy5mbHVzaCh6bGli
LlpfU1lOQ19GTFVTSCkKLSAgICAgICAgY29tcHJlc3NlZF9oZWxsbyA9IGNvbXByZXNzZWRfaGVs
bG9bOi00XQotICAgICAgICBzcGxpdF9wb3NpdGlvbiA9IGxlbihjb21wcmVzc2VkX2hlbGxvKSAv
IDIKLSAgICAgICAgZGF0YSArPSAnXHg0MSVjJyAlIChzcGxpdF9wb3NpdGlvbiB8IDB4ODApCi0g
ICAgICAgIGRhdGEgKz0gX21hc2tfaHliaShjb21wcmVzc2VkX2hlbGxvWzpzcGxpdF9wb3NpdGlv
bl0pCi0KLSAgICAgICAgZGF0YSArPSAnXHg4MCVjJyAlICgobGVuKGNvbXByZXNzZWRfaGVsbG8p
IC0gc3BsaXRfcG9zaXRpb24pIHwgMHg4MCkKLSAgICAgICAgZGF0YSArPSBfbWFza19oeWJpKGNv
bXByZXNzZWRfaGVsbG9bc3BsaXRfcG9zaXRpb246XSkKLQotICAgICAgICBjb21wcmVzcyA9IHps
aWIuY29tcHJlc3NvYmooCi0gICAgICAgICAgICAgICAgemxpYi5aX0RFRkFVTFRfQ09NUFJFU1NJ
T04sIHpsaWIuREVGTEFURUQsIC16bGliLk1BWF9XQklUUykKLQotICAgICAgICBjb21wcmVzc2Vk
X3dvcmxkID0gY29tcHJlc3MuY29tcHJlc3MoJ1dvcmxkJykKLSAgICAgICAgY29tcHJlc3NlZF93
b3JsZCArPSBjb21wcmVzcy5mbHVzaCh6bGliLlpfU1lOQ19GTFVTSCkKLSAgICAgICAgY29tcHJl
c3NlZF93b3JsZCA9IGNvbXByZXNzZWRfd29ybGRbOi00XQotICAgICAgICBkYXRhICs9ICdceGMx
JWMnICUgKGxlbihjb21wcmVzc2VkX3dvcmxkKSB8IDB4ODApCi0gICAgICAgIGRhdGEgKz0gX21h
c2tfaHliaShjb21wcmVzc2VkX3dvcmxkKQotCi0gICAgICAgICMgQ2xvc2UgZnJhbWUKLSAgICAg
ICAgZGF0YSArPSAnXHg4OFx4OGEnICsgX21hc2tfaHliaShzdHJ1Y3QucGFjaygnIUgnLCAxMDAw
KSArICdHb29kIGJ5ZScpCi0KLSAgICAgICAgZXh0ZW5zaW9uID0gY29tbW9uLkV4dGVuc2lvblBh
cmFtZXRlcigKLSAgICAgICAgICAgICAgICBjb21tb24uUEVSTUVTU0FHRV9ERUZMQVRFX0VYVEVO
U0lPTikKLSAgICAgICAgcmVxdWVzdCA9IF9jcmVhdGVfcmVxdWVzdF9mcm9tX3Jhd2RhdGEoCi0g
ICAgICAgICAgICAgICAgZGF0YSwgcGVybWVzc2FnZV9kZWZsYXRlX3JlcXVlc3Q9ZXh0ZW5zaW9u
KQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdIZWxsb1dlYlNvY2tldCcsIG1zZ3V0aWwucmVj
ZWl2ZV9tZXNzYWdlKHJlcXVlc3QpKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdXb3JsZCcs
IG1zZ3V0aWwucmVjZWl2ZV9tZXNzYWdlKHJlcXVlc3QpKQotCi0gICAgICAgIHNlbGYuYXNzZXJ0
RXF1YWwoTm9uZSwgbXNndXRpbC5yZWNlaXZlX21lc3NhZ2UocmVxdWVzdCkpCi0KLSAgICBkZWYg
dGVzdF9yZWNlaXZlX21lc3NhZ2VfbWl4ZWRfYnR5cGUoc2VsZik6Ci0gICAgICAgICIiIlRlc3Qg
dGhhdCBhIG1lc3NhZ2UgY29tcHJlc3NlZCB1c2luZyBsb3RzIG9mIERFRkxBVEUgYmxvY2tzIHdp
dGgKLSAgICAgICAgdmFyaW91cyBmbHVzaCBtb2RlIGlzIGNvcnJlY3RseSByZWNlaXZlZC4KLSAg
ICAgICAgIiIiCi0KLSAgICAgICAgcmFuZG9tLnNlZWQoYT0wKQotICAgICAgICBwYXlsb2FkID0g
Jycuam9pbigKLSAgICAgICAgICAgIFtjaHIocmFuZG9tLnJhbmRpbnQoMCwgMjU1KSkgZm9yIGkg
aW4geHJhbmdlKDEwMDApXSkKLQotICAgICAgICBjb21wcmVzcyA9IE5vbmUKLQotICAgICAgICAj
IEZyYWdtZW50IHRoZSBjb21wcmVzc2VkIHBheWxvYWQgaW50byBsb3RzIG9mIGZyYW1lcy4KLSAg
ICAgICAgYnl0ZXNfY2h1bmtlZCA9IDAKLSAgICAgICAgY29tcHJlc3NlZF9wYXlsb2FkID0gJycK
LQotICAgICAgICBjaHVua19zaXplcyA9IFtdCi0gICAgICAgIG1ldGhvZHMgPSBbXQotICAgICAg
ICBzeW5jX3VzZWQgPSBGYWxzZQotICAgICAgICBmaW5pc2hfdXNlZCA9IEZhbHNlCi0KLSAgICAg
ICAgd2hpbGUgYnl0ZXNfY2h1bmtlZCA8IGxlbihwYXlsb2FkKToKLSAgICAgICAgICAgICMgTWFr
ZSBzdXJlIGF0IGxlYXN0IDEwIGNodW5rcyBhcmUgY3JlYXRlZC4KLSAgICAgICAgICAgIGNodW5r
X3NpemUgPSByYW5kb20ucmFuZGludCgKLSAgICAgICAgICAgICAgICAxLCBtaW4oMTAwLCBsZW4o
cGF5bG9hZCkgLSBieXRlc19jaHVua2VkKSkKLSAgICAgICAgICAgIGNodW5rX3NpemVzLmFwcGVu
ZChjaHVua19zaXplKQotICAgICAgICAgICAgY2h1bmsgPSBwYXlsb2FkW2J5dGVzX2NodW5rZWQ6
Ynl0ZXNfY2h1bmtlZCArIGNodW5rX3NpemVdCi0KLSAgICAgICAgICAgIGJ5dGVzX2NodW5rZWQg
Kz0gY2h1bmtfc2l6ZQotCi0gICAgICAgICAgICBpZiBjb21wcmVzcyBpcyBOb25lOgotICAgICAg
ICAgICAgICAgIGNvbXByZXNzID0gemxpYi5jb21wcmVzc29iaigKLSAgICAgICAgICAgICAgICAg
ICAgemxpYi5aX0RFRkFVTFRfQ09NUFJFU1NJT04sCi0gICAgICAgICAgICAgICAgICAgIHpsaWIu
REVGTEFURUQsCi0gICAgICAgICAgICAgICAgICAgIC16bGliLk1BWF9XQklUUykKLQotICAgICAg
ICAgICAgaWYgYnl0ZXNfY2h1bmtlZCA9PSBsZW4ocGF5bG9hZCk6Ci0gICAgICAgICAgICAgICAg
Y29tcHJlc3NlZF9wYXlsb2FkICs9IGNvbXByZXNzLmNvbXByZXNzKGNodW5rKQotICAgICAgICAg
ICAgICAgIGNvbXByZXNzZWRfcGF5bG9hZCArPSBjb21wcmVzcy5mbHVzaCh6bGliLlpfU1lOQ19G
TFVTSCkKLSAgICAgICAgICAgICAgICBjb21wcmVzc2VkX3BheWxvYWQgPSBjb21wcmVzc2VkX3Bh
eWxvYWRbOi00XQotICAgICAgICAgICAgZWxzZToKLSAgICAgICAgICAgICAgICBtZXRob2QgPSBy
YW5kb20ucmFuZGludCgwLCAxKQotICAgICAgICAgICAgICAgIG1ldGhvZHMuYXBwZW5kKG1ldGhv
ZCkKLSAgICAgICAgICAgICAgICBpZiBtZXRob2QgPT0gMDoKLSAgICAgICAgICAgICAgICAgICAg
Y29tcHJlc3NlZF9wYXlsb2FkICs9IGNvbXByZXNzLmNvbXByZXNzKGNodW5rKQotICAgICAgICAg
ICAgICAgICAgICBjb21wcmVzc2VkX3BheWxvYWQgKz0gY29tcHJlc3MuZmx1c2goemxpYi5aX1NZ
TkNfRkxVU0gpCi0gICAgICAgICAgICAgICAgICAgIHN5bmNfdXNlZCA9IFRydWUKLSAgICAgICAg
ICAgICAgICBlbHNlOgotICAgICAgICAgICAgICAgICAgICBjb21wcmVzc2VkX3BheWxvYWQgKz0g
Y29tcHJlc3MuY29tcHJlc3MoY2h1bmspCi0gICAgICAgICAgICAgICAgICAgIGNvbXByZXNzZWRf
cGF5bG9hZCArPSBjb21wcmVzcy5mbHVzaCh6bGliLlpfRklOSVNIKQotICAgICAgICAgICAgICAg
ICAgICBjb21wcmVzcyA9IE5vbmUKLSAgICAgICAgICAgICAgICAgICAgZmluaXNoX3VzZWQgPSBU
cnVlCi0KLSAgICAgICAgcHJpbnQgIkNodW5rIHNpemVzOiAlciIgJSBjaHVua19zaXplcwotICAg
ICAgICBzZWxmLmFzc2VydFRydWUobGVuKGNodW5rX3NpemVzKSA+IDEwKQotICAgICAgICBwcmlu
dCAiTWV0aG9kczogJXIiICUgbWV0aG9kcwotICAgICAgICBzZWxmLmFzc2VydFRydWUoc3luY191
c2VkKQotICAgICAgICBzZWxmLmFzc2VydFRydWUoZmluaXNoX3VzZWQpCi0KLSAgICAgICAgc2Vs
Zi5hc3NlcnRUcnVlKDEyNSA8IGxlbihjb21wcmVzc2VkX3BheWxvYWQpKQotICAgICAgICBzZWxm
LmFzc2VydFRydWUobGVuKGNvbXByZXNzZWRfcGF5bG9hZCkgPCA2NTUzNikKLSAgICAgICAgZGF0
YSA9ICdceGMyXHhmZScgKyBzdHJ1Y3QucGFjaygnIUgnLCBsZW4oY29tcHJlc3NlZF9wYXlsb2Fk
KSkKLSAgICAgICAgZGF0YSArPSBfbWFza19oeWJpKGNvbXByZXNzZWRfcGF5bG9hZCkKLQotICAg
ICAgICAjIENsb3NlIGZyYW1lCi0gICAgICAgIGRhdGEgKz0gJ1x4ODhceDhhJyArIF9tYXNrX2h5
Ymkoc3RydWN0LnBhY2soJyFIJywgMTAwMCkgKyAnR29vZCBieWUnKQotCi0gICAgICAgIGV4dGVu
c2lvbiA9IGNvbW1vbi5FeHRlbnNpb25QYXJhbWV0ZXIoCi0gICAgICAgICAgICBjb21tb24uUEVS
TUVTU0FHRV9ERUZMQVRFX0VYVEVOU0lPTikKLSAgICAgICAgcmVxdWVzdCA9IF9jcmVhdGVfcmVx
dWVzdF9mcm9tX3Jhd2RhdGEoCi0gICAgICAgICAgICBkYXRhLCBwZXJtZXNzYWdlX2RlZmxhdGVf
cmVxdWVzdD1leHRlbnNpb24pCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocGF5bG9hZCwgbXNn
dXRpbC5yZWNlaXZlX21lc3NhZ2UocmVxdWVzdCkpCi0KLSAgICAgICAgc2VsZi5hc3NlcnRFcXVh
bChOb25lLCBtc2d1dGlsLnJlY2VpdmVfbWVzc2FnZShyZXF1ZXN0KSkKLQotCi1jbGFzcyBQZXJN
ZXNzYWdlQ29tcHJlc3NUZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKLSAgICAiIiJUZXN0cyBmb3Ig
Y2hlY2tpbmcgcGVybWVzc2FnZS1jb21wcmVzc2lvbiBleHRlbnNpb24uIiIiCi0KLSAgICBkZWYg
dGVzdF9kZWZsYXRlX3Jlc3BvbnNlX3BhcmFtZXRlcnMoc2VsZik6Ci0gICAgICAgIGV4dGVuc2lv
biA9IGNvbW1vbi5FeHRlbnNpb25QYXJhbWV0ZXIoCi0gICAgICAgICAgICBjb21tb24uUEVSTUVT
U0FHRV9DT01QUkVTU0lPTl9FWFRFTlNJT04pCi0gICAgICAgIGV4dGVuc2lvbi5hZGRfcGFyYW1l
dGVyKCdtZXRob2QnLCAnZGVmbGF0ZScpCi0gICAgICAgIHByb2Nlc3NvciA9IFBlck1lc3NhZ2VD
b21wcmVzc0V4dGVuc2lvblByb2Nlc3NvcihleHRlbnNpb24pCi0gICAgICAgIHJlc3BvbnNlID0g
cHJvY2Vzc29yLmdldF9leHRlbnNpb25fcmVzcG9uc2UoKQotICAgICAgICBzZWxmLmFzc2VydEVx
dWFsKCdkZWZsYXRlJywKLSAgICAgICAgICAgICAgICAgICAgICAgICByZXNwb25zZS5nZXRfcGFy
YW1ldGVyX3ZhbHVlKCdtZXRob2QnKSkKLQotICAgICAgICBleHRlbnNpb24gPSBjb21tb24uRXh0
ZW5zaW9uUGFyYW1ldGVyKAotICAgICAgICAgICAgY29tbW9uLlBFUk1FU1NBR0VfQ09NUFJFU1NJ
T05fRVhURU5TSU9OKQotICAgICAgICBleHRlbnNpb24uYWRkX3BhcmFtZXRlcignbWV0aG9kJywg
J2RlZmxhdGUnKQotICAgICAgICBwcm9jZXNzb3IgPSBQZXJNZXNzYWdlQ29tcHJlc3NFeHRlbnNp
b25Qcm9jZXNzb3IoZXh0ZW5zaW9uKQotCi0gICAgICAgIGRlZiBfY29tcHJlc3Npb25fcHJvY2Vz
c29yX2hvb2soY29tcHJlc3Npb25fcHJvY2Vzc29yKToKLSAgICAgICAgICAgIGNvbXByZXNzaW9u
X3Byb2Nlc3Nvci5zZXRfY2xpZW50X21heF93aW5kb3dfYml0cyg4KQotICAgICAgICAgICAgY29t
cHJlc3Npb25fcHJvY2Vzc29yLnNldF9jbGllbnRfbm9fY29udGV4dF90YWtlb3ZlcihUcnVlKQot
ICAgICAgICBwcm9jZXNzb3Iuc2V0X2NvbXByZXNzaW9uX3Byb2Nlc3Nvcl9ob29rKAotICAgICAg
ICAgICAgX2NvbXByZXNzaW9uX3Byb2Nlc3Nvcl9ob29rKQotICAgICAgICByZXNwb25zZSA9IHBy
b2Nlc3Nvci5nZXRfZXh0ZW5zaW9uX3Jlc3BvbnNlKCkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVh
bCgKLSAgICAgICAgICAgICdkZWZsYXRlOyBjbGllbnRfbWF4X3dpbmRvd19iaXRzPTg7IGNsaWVu
dF9ub19jb250ZXh0X3Rha2VvdmVyJywKLSAgICAgICAgICAgIHJlc3BvbnNlLmdldF9wYXJhbWV0
ZXJfdmFsdWUoJ21ldGhvZCcpKQotCi0KLWNsYXNzIE1lc3NhZ2VUZXN0SGl4aWU3NSh1bml0dGVz
dC5UZXN0Q2FzZSk6Ci0gICAgIiIiVGVzdHMgZm9yIGRyYWZ0LWhpeGllLXRoZXdlYnNvY2tldHBy
b3RvY29sLTc2IHN0cmVhbSBjbGFzcy4iIiIKLQotICAgIGRlZiB0ZXN0X3NlbmRfbWVzc2FnZShz
ZWxmKToKLSAgICAgICAgcmVxdWVzdCA9IF9jcmVhdGVfcmVxdWVzdF9oaXhpZTc1KCkKLSAgICAg
ICAgbXNndXRpbC5zZW5kX21lc3NhZ2UocmVxdWVzdCwgJ0hlbGxvJykKLSAgICAgICAgc2VsZi5h
c3NlcnRFcXVhbCgnXHgwMEhlbGxvXHhmZicsIHJlcXVlc3QuY29ubmVjdGlvbi53cml0dGVuX2Rh
dGEoKSkKLQotICAgIGRlZiB0ZXN0X3NlbmRfbWVzc2FnZV91bmljb2RlKHNlbGYpOgotICAgICAg
ICByZXF1ZXN0ID0gX2NyZWF0ZV9yZXF1ZXN0X2hpeGllNzUoKQotICAgICAgICBtc2d1dGlsLnNl
bmRfbWVzc2FnZShyZXF1ZXN0LCB1J1x1NjVlNScpCi0gICAgICAgICMgVSs2NWU1IGlzIGVuY29k
ZWQgYXMgZTYsOTcsYTUgaW4gVVRGLTgKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnXHgwMFx4
ZTZceDk3XHhhNVx4ZmYnLAotICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3QuY29ubmVj
dGlvbi53cml0dGVuX2RhdGEoKSkKLQotICAgIGRlZiB0ZXN0X3JlY2VpdmVfbWVzc2FnZShzZWxm
KToKLSAgICAgICAgcmVxdWVzdCA9IF9jcmVhdGVfcmVxdWVzdF9oaXhpZTc1KCdceDAwSGVsbG9c
eGZmXHgwMFdvcmxkIVx4ZmYnKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdIZWxsbycsIG1z
Z3V0aWwucmVjZWl2ZV9tZXNzYWdlKHJlcXVlc3QpKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFs
KCdXb3JsZCEnLCBtc2d1dGlsLnJlY2VpdmVfbWVzc2FnZShyZXF1ZXN0KSkKLQotICAgIGRlZiB0
ZXN0X3JlY2VpdmVfbWVzc2FnZV91bmljb2RlKHNlbGYpOgotICAgICAgICByZXF1ZXN0ID0gX2Ny
ZWF0ZV9yZXF1ZXN0X2hpeGllNzUoJ1x4MDBceGU2XHg5Y1x4YWNceGZmJykKLSAgICAgICAgIyBV
KzY3MmMgaXMgZW5jb2RlZCBhcyBlNiw5YyxhYyBpbiBVVEYtOAotICAgICAgICBzZWxmLmFzc2Vy
dEVxdWFsKHUnXHU2NzJjJywgbXNndXRpbC5yZWNlaXZlX21lc3NhZ2UocmVxdWVzdCkpCi0KLSAg
ICBkZWYgdGVzdF9yZWNlaXZlX21lc3NhZ2VfZXJyb25lb3VzX3VuaWNvZGUoc2VsZik6Ci0gICAg
ICAgICMgXHg4MCBhbmQgXHg4MSBhcmUgaW52YWxpZCBhcyBVVEYtOC4KLSAgICAgICAgcmVxdWVz
dCA9IF9jcmVhdGVfcmVxdWVzdF9oaXhpZTc1KCdceDAwXHg4MFx4ODFceGZmJykKLSAgICAgICAg
IyBJbnZhbGlkIGNoYXJhY3RlcnMgc2hvdWxkIGJlIHJlcGxhY2VkIHdpdGgKLSAgICAgICAgIyBV
K2ZmZmQgUkVQTEFDRU1FTlQgQ0hBUkFDVEVSCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwodSdc
dWZmZmRcdWZmZmQnLCBtc2d1dGlsLnJlY2VpdmVfbWVzc2FnZShyZXF1ZXN0KSkKLQotICAgIGRl
ZiB0ZXN0X3JlY2VpdmVfbWVzc2FnZV9kaXNjYXJkKHNlbGYpOgotICAgICAgICByZXF1ZXN0ID0g
X2NyZWF0ZV9yZXF1ZXN0X2hpeGllNzUoJ1x4ODBceDA2SUdOT1JFXHgwMEhlbGxvXHhmZicKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdceDAxRElTUkVHQVJEXHhm
Zlx4MDBXb3JsZCFceGZmJykKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnSGVsbG8nLCBtc2d1
dGlsLnJlY2VpdmVfbWVzc2FnZShyZXF1ZXN0KSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgn
V29ybGQhJywgbXNndXRpbC5yZWNlaXZlX21lc3NhZ2UocmVxdWVzdCkpCi0KLQotY2xhc3MgTWVz
c2FnZVJlY2VpdmVyVGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6Ci0gICAgIiIiVGVzdHMgdGhlIFN0
cmVhbSBjbGFzcyB1c2luZyBNZXNzYWdlUmVjZWl2ZXIuIiIiCi0KLSAgICBkZWYgdGVzdF9xdWV1
ZShzZWxmKToKLSAgICAgICAgcmVxdWVzdCA9IF9jcmVhdGVfYmxvY2tpbmdfcmVxdWVzdCgpCi0g
ICAgICAgIHJlY2VpdmVyID0gbXNndXRpbC5NZXNzYWdlUmVjZWl2ZXIocmVxdWVzdCkKLQotICAg
ICAgICBzZWxmLmFzc2VydEVxdWFsKE5vbmUsIHJlY2VpdmVyLnJlY2VpdmVfbm93YWl0KCkpCi0K
LSAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcygnXHg4MVx4ODYnICsgX21hc2tf
aHliaSgnSGVsbG8hJykpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ0hlbGxvIScsIHJlY2Vp
dmVyLnJlY2VpdmUoKSkKLQotICAgIGRlZiB0ZXN0X29ubWVzc2FnZShzZWxmKToKLSAgICAgICAg
b25tZXNzYWdlX3F1ZXVlID0gUXVldWUuUXVldWUoKQotCi0gICAgICAgIGRlZiBvbm1lc3NhZ2Vf
aGFuZGxlcihtZXNzYWdlKToKLSAgICAgICAgICAgIG9ubWVzc2FnZV9xdWV1ZS5wdXQobWVzc2Fn
ZSkKLQotICAgICAgICByZXF1ZXN0ID0gX2NyZWF0ZV9ibG9ja2luZ19yZXF1ZXN0KCkKLSAgICAg
ICAgcmVjZWl2ZXIgPSBtc2d1dGlsLk1lc3NhZ2VSZWNlaXZlcihyZXF1ZXN0LCBvbm1lc3NhZ2Vf
aGFuZGxlcikKLQotICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKCdceDgxXHg4
NicgKyBfbWFza19oeWJpKCdIZWxsbyEnKSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnSGVs
bG8hJywgb25tZXNzYWdlX3F1ZXVlLmdldCgpKQotCi0KLWNsYXNzIE1lc3NhZ2VSZWNlaXZlckhp
eGllNzVUZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKLSAgICAiIiJUZXN0cyB0aGUgU3RyZWFtSGl4
aWU3NSBjbGFzcyB1c2luZyBNZXNzYWdlUmVjZWl2ZXIuIiIiCi0KLSAgICBkZWYgdGVzdF9xdWV1
ZShzZWxmKToKLSAgICAgICAgcmVxdWVzdCA9IF9jcmVhdGVfYmxvY2tpbmdfcmVxdWVzdF9oaXhp
ZTc1KCkKLSAgICAgICAgcmVjZWl2ZXIgPSBtc2d1dGlsLk1lc3NhZ2VSZWNlaXZlcihyZXF1ZXN0
KQotCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoTm9uZSwgcmVjZWl2ZXIucmVjZWl2ZV9ub3dh
aXQoKSkKLQotICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKCdceDAwSGVsbG8h
XHhmZicpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ0hlbGxvIScsIHJlY2VpdmVyLnJlY2Vp
dmUoKSkKLQotICAgIGRlZiB0ZXN0X29ubWVzc2FnZShzZWxmKToKLSAgICAgICAgb25tZXNzYWdl
X3F1ZXVlID0gUXVldWUuUXVldWUoKQotCi0gICAgICAgIGRlZiBvbm1lc3NhZ2VfaGFuZGxlciht
ZXNzYWdlKToKLSAgICAgICAgICAgIG9ubWVzc2FnZV9xdWV1ZS5wdXQobWVzc2FnZSkKLQotICAg
ICAgICByZXF1ZXN0ID0gX2NyZWF0ZV9ibG9ja2luZ19yZXF1ZXN0X2hpeGllNzUoKQotICAgICAg
ICByZWNlaXZlciA9IG1zZ3V0aWwuTWVzc2FnZVJlY2VpdmVyKHJlcXVlc3QsIG9ubWVzc2FnZV9o
YW5kbGVyKQotCi0gICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMoJ1x4MDBIZWxs
byFceGZmJykKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnSGVsbG8hJywgb25tZXNzYWdlX3F1
ZXVlLmdldCgpKQotCi0KLWNsYXNzIE1lc3NhZ2VTZW5kZXJUZXN0KHVuaXR0ZXN0LlRlc3RDYXNl
KToKLSAgICAiIiJUZXN0cyB0aGUgU3RyZWFtIGNsYXNzIHVzaW5nIE1lc3NhZ2VTZW5kZXIuIiIi
Ci0KLSAgICBkZWYgdGVzdF9zZW5kKHNlbGYpOgotICAgICAgICByZXF1ZXN0ID0gX2NyZWF0ZV9i
bG9ja2luZ19yZXF1ZXN0KCkKLSAgICAgICAgc2VuZGVyID0gbXNndXRpbC5NZXNzYWdlU2VuZGVy
KHJlcXVlc3QpCi0KLSAgICAgICAgc2VuZGVyLnNlbmQoJ1dvcmxkJykKLSAgICAgICAgc2VsZi5h
c3NlcnRFcXVhbCgnXHg4MVx4MDVXb3JsZCcsIHJlcXVlc3QuY29ubmVjdGlvbi53cml0dGVuX2Rh
dGEoKSkKLQotICAgIGRlZiB0ZXN0X3NlbmRfbm93YWl0KHNlbGYpOgotICAgICAgICAjIFVzZSBh
IHF1ZXVlIHRvIGNoZWNrIHRoZSBieXRlcyB3cml0dGVuIGJ5IE1lc3NhZ2VTZW5kZXIuCi0gICAg
ICAgICMgcmVxdWVzdC5jb25uZWN0aW9uLndyaXR0ZW5fZGF0YSgpIGNhbm5vdCBiZSB1c2VkIGhl
cmUgYmVjYXVzZQotICAgICAgICAjIE1lc3NhZ2VTZW5kZXIgcnVucyBpbiBhIHNlcGFyYXRlIHRo
cmVhZC4KLSAgICAgICAgc2VuZF9xdWV1ZSA9IFF1ZXVlLlF1ZXVlKCkKLQotICAgICAgICBkZWYg
d3JpdGUoYnl0ZXMpOgotICAgICAgICAgICAgc2VuZF9xdWV1ZS5wdXQoYnl0ZXMpCi0KLSAgICAg
ICAgcmVxdWVzdCA9IF9jcmVhdGVfYmxvY2tpbmdfcmVxdWVzdCgpCi0gICAgICAgIHJlcXVlc3Qu
Y29ubmVjdGlvbi53cml0ZSA9IHdyaXRlCi0KLSAgICAgICAgc2VuZGVyID0gbXNndXRpbC5NZXNz
YWdlU2VuZGVyKHJlcXVlc3QpCi0KLSAgICAgICAgc2VuZGVyLnNlbmRfbm93YWl0KCdIZWxsbycp
Ci0gICAgICAgIHNlbmRlci5zZW5kX25vd2FpdCgnV29ybGQnKQotICAgICAgICBzZWxmLmFzc2Vy
dEVxdWFsKCdceDgxXHgwNUhlbGxvJywgc2VuZF9xdWV1ZS5nZXQoKSkKLSAgICAgICAgc2VsZi5h
c3NlcnRFcXVhbCgnXHg4MVx4MDVXb3JsZCcsIHNlbmRfcXVldWUuZ2V0KCkpCi0KLQotY2xhc3Mg
TWVzc2FnZVNlbmRlckhpeGllNzVUZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKLSAgICAiIiJUZXN0
cyB0aGUgU3RyZWFtSGl4aWU3NSBjbGFzcyB1c2luZyBNZXNzYWdlU2VuZGVyLiIiIgotCi0gICAg
ZGVmIHRlc3Rfc2VuZChzZWxmKToKLSAgICAgICAgcmVxdWVzdCA9IF9jcmVhdGVfYmxvY2tpbmdf
cmVxdWVzdF9oaXhpZTc1KCkKLSAgICAgICAgc2VuZGVyID0gbXNndXRpbC5NZXNzYWdlU2VuZGVy
KHJlcXVlc3QpCi0KLSAgICAgICAgc2VuZGVyLnNlbmQoJ1dvcmxkJykKLSAgICAgICAgc2VsZi5h
c3NlcnRFcXVhbCgnXHgwMFdvcmxkXHhmZicsIHJlcXVlc3QuY29ubmVjdGlvbi53cml0dGVuX2Rh
dGEoKSkKLQotICAgIGRlZiB0ZXN0X3NlbmRfbm93YWl0KHNlbGYpOgotICAgICAgICAjIFVzZSBh
IHF1ZXVlIHRvIGNoZWNrIHRoZSBieXRlcyB3cml0dGVuIGJ5IE1lc3NhZ2VTZW5kZXIuCi0gICAg
ICAgICMgcmVxdWVzdC5jb25uZWN0aW9uLndyaXR0ZW5fZGF0YSgpIGNhbm5vdCBiZSB1c2VkIGhl
cmUgYmVjYXVzZQotICAgICAgICAjIE1lc3NhZ2VTZW5kZXIgcnVucyBpbiBhIHNlcGFyYXRlIHRo
cmVhZC4KLSAgICAgICAgc2VuZF9xdWV1ZSA9IFF1ZXVlLlF1ZXVlKCkKLQotICAgICAgICBkZWYg
d3JpdGUoYnl0ZXMpOgotICAgICAgICAgICAgc2VuZF9xdWV1ZS5wdXQoYnl0ZXMpCi0KLSAgICAg
ICAgcmVxdWVzdCA9IF9jcmVhdGVfYmxvY2tpbmdfcmVxdWVzdF9oaXhpZTc1KCkKLSAgICAgICAg
cmVxdWVzdC5jb25uZWN0aW9uLndyaXRlID0gd3JpdGUKLQotICAgICAgICBzZW5kZXIgPSBtc2d1
dGlsLk1lc3NhZ2VTZW5kZXIocmVxdWVzdCkKLQotICAgICAgICBzZW5kZXIuc2VuZF9ub3dhaXQo
J0hlbGxvJykKLSAgICAgICAgc2VuZGVyLnNlbmRfbm93YWl0KCdXb3JsZCcpCi0gICAgICAgIHNl
bGYuYXNzZXJ0RXF1YWwoJ1x4MDBIZWxsb1x4ZmYnLCBzZW5kX3F1ZXVlLmdldCgpKQotICAgICAg
ICBzZWxmLmFzc2VydEVxdWFsKCdceDAwV29ybGRceGZmJywgc2VuZF9xdWV1ZS5nZXQoKSkKLQot
Ci1pZiBfX25hbWVfXyA9PSAnX19tYWluX18nOgotICAgIHVuaXR0ZXN0Lm1haW4oKQotCi0KLSMg
dmk6c3RzPTQgc3c9NCBldApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9zcmMvdGVzdC90ZXN0X211eC5weSBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJz
b2NrZXQvc3JjL3Rlc3QvdGVzdF9tdXgucHkKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IGQ0NTk4OTQ0ZTA4N2NiZDJjMmIyY2UyYTRiMDg5YWFmZDdhMzM0YzIuLjAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9zcmMvdGVzdC90ZXN0X211eC5w
eQorKysgL2Rldi9udWxsCkBAIC0xLDIwODkgKzAsMCBAQAotIyEvdXNyL2Jpbi9lbnYgcHl0aG9u
Ci0jCi0jIENvcHlyaWdodCAyMDEyLCBHb29nbGUgSW5jLgotIyBBbGwgcmlnaHRzIHJlc2VydmVk
LgotIwotIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKLSMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQotIyBtZXQ6Ci0jCi0jICAgICAqIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0Ci0jIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KLSMgICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZQotIyBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCi0jIGluIHRoZSBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKLSMgZGlzdHJpYnV0
aW9uLgotIyAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFt
ZXMgb2YgaXRzCi0jIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21v
dGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCi0jIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZp
YyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0jCi0jIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKLSMgIkFTIElTIiBB
TkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QK
LSMgTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SCi0jIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCi0jIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAotIyBTUEVDSUFM
LCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
Ci0jIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLAotIyBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKLSMgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotIyAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UKLSMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KLQotCi0iIiJUZXN0cyBmb3IgbXV4IG1vZHVsZS4iIiIKLQot
aW1wb3J0IFF1ZXVlCi1pbXBvcnQgY29weQotaW1wb3J0IGxvZ2dpbmcKLWltcG9ydCBvcHRwYXJz
ZQotaW1wb3J0IHN0cnVjdAotaW1wb3J0IHN5cwotaW1wb3J0IHVuaXR0ZXN0Ci1pbXBvcnQgdGlt
ZQotaW1wb3J0IHpsaWIKLQotaW1wb3J0IHNldF9zeXNfcGF0aCAgIyBVcGRhdGUgc3lzLnBhdGgg
dG8gbG9jYXRlIG1vZF9weXdlYnNvY2tldCBtb2R1bGUuCi0KLWZyb20gbW9kX3B5d2Vic29ja2V0
IGltcG9ydCBjb21tb24KLWZyb20gbW9kX3B5d2Vic29ja2V0IGltcG9ydCBtdXgKLWZyb20gbW9k
X3B5d2Vic29ja2V0Ll9zdHJlYW1fYmFzZSBpbXBvcnQgQ29ubmVjdGlvblRlcm1pbmF0ZWRFeGNl
cHRpb24KLWZyb20gbW9kX3B5d2Vic29ja2V0Ll9zdHJlYW1fYmFzZSBpbXBvcnQgVW5zdXBwb3J0
ZWRGcmFtZUV4Y2VwdGlvbgotZnJvbSBtb2RfcHl3ZWJzb2NrZXQuX3N0cmVhbV9oeWJpIGltcG9y
dCBGcmFtZQotZnJvbSBtb2RfcHl3ZWJzb2NrZXQuX3N0cmVhbV9oeWJpIGltcG9ydCBTdHJlYW0K
LWZyb20gbW9kX3B5d2Vic29ja2V0Ll9zdHJlYW1faHliaSBpbXBvcnQgU3RyZWFtT3B0aW9ucwot
ZnJvbSBtb2RfcHl3ZWJzb2NrZXQuX3N0cmVhbV9oeWJpIGltcG9ydCBjcmVhdGVfYmluYXJ5X2Zy
YW1lCi1mcm9tIG1vZF9weXdlYnNvY2tldC5fc3RyZWFtX2h5YmkgaW1wb3J0IGNyZWF0ZV9jbG9z
ZV9mcmFtZQotZnJvbSBtb2RfcHl3ZWJzb2NrZXQuX3N0cmVhbV9oeWJpIGltcG9ydCBjcmVhdGVf
Y2xvc2luZ19oYW5kc2hha2VfYm9keQotZnJvbSBtb2RfcHl3ZWJzb2NrZXQuX3N0cmVhbV9oeWJp
IGltcG9ydCBwYXJzZV9mcmFtZQotZnJvbSBtb2RfcHl3ZWJzb2NrZXQuZXh0ZW5zaW9ucyBpbXBv
cnQgTXV4RXh0ZW5zaW9uUHJvY2Vzc29yCi0KLQotaW1wb3J0IG1vY2sKLQotCi1fVEVTVF9IRUFE
RVJTID0geydIb3N0JzogJ3NlcnZlci5leGFtcGxlLmNvbScsCi0gICAgICAgICAgICAgICAgICdV
cGdyYWRlJzogJ3dlYnNvY2tldCcsCi0gICAgICAgICAgICAgICAgICdDb25uZWN0aW9uJzogJ1Vw
Z3JhZGUnLAotICAgICAgICAgICAgICAgICAnU2VjLVdlYlNvY2tldC1LZXknOiAnZEdobElITmhi
WEJzWlNCdWIyNWpaUT09JywKLSAgICAgICAgICAgICAgICAgJ1NlYy1XZWJTb2NrZXQtVmVyc2lv
bic6ICcxMycsCi0gICAgICAgICAgICAgICAgICdPcmlnaW4nOiAnaHR0cDovL2V4YW1wbGUuY29t
J30KLQotCi1jbGFzcyBfT3V0Z29pbmdDaGFubmVsRGF0YShvYmplY3QpOgotICAgIGRlZiBfX2lu
aXRfXyhzZWxmKToKLSAgICAgICAgc2VsZi5tZXNzYWdlcyA9IFtdCi0gICAgICAgIHNlbGYuY29u
dHJvbF9tZXNzYWdlcyA9IFtdCi0KLSAgICAgICAgc2VsZi5idWlsZGVyID0gbXV4Ll9Jbm5lck1l
c3NhZ2VCdWlsZGVyKCkKLQotY2xhc3MgX01vY2tNdXhDb25uZWN0aW9uKG1vY2suTW9ja0Jsb2Nr
aW5nQ29ubik6Ci0gICAgIiIiTW9jayBjbGFzcyBvZiBtb2RfcHl0aG9uIGNvbm5lY3Rpb24gZm9y
IG11eC4iIiIKLQotICAgIGRlZiBfX2luaXRfXyhzZWxmKToKLSAgICAgICAgbW9jay5Nb2NrQmxv
Y2tpbmdDb25uLl9faW5pdF9fKHNlbGYpCi0gICAgICAgIHNlbGYuX2NvbnRyb2xfYmxvY2tzID0g
W10KLSAgICAgICAgc2VsZi5fY2hhbm5lbF9kYXRhID0ge30KLQotICAgICAgICBzZWxmLl9jdXJy
ZW50X29wY29kZSA9IE5vbmUKLSAgICAgICAgc2VsZi5fcGVuZGluZ19mcmFnbWVudHMgPSBbXQot
Ci0gICAgICAgIHNlbGYuc2VydmVyX2Nsb3NlX2NvZGUgPSBOb25lCi0KLSAgICBkZWYgd3JpdGUo
c2VsZiwgZGF0YSk6Ci0gICAgICAgICIiIk92ZXJyaWRlIE1vY2tCbG9ja2luZ0Nvbm4ud3JpdGUu
IiIiCi0KLSAgICAgICAgc2VsZi5fY3VycmVudF9kYXRhID0gZGF0YQotICAgICAgICBzZWxmLl9w
b3NpdGlvbiA9IDAKLQotICAgICAgICBkZWYgX3JlY2VpdmVfYnl0ZXMobGVuZ3RoKToKLSAgICAg
ICAgICAgIGlmIHNlbGYuX3Bvc2l0aW9uICsgbGVuZ3RoID4gbGVuKHNlbGYuX2N1cnJlbnRfZGF0
YSk6Ci0gICAgICAgICAgICAgICAgcmFpc2UgQ29ubmVjdGlvblRlcm1pbmF0ZWRFeGNlcHRpb24o
Ci0gICAgICAgICAgICAgICAgICAgICdGYWlsZWQgdG8gcmVjZWl2ZSAlZCBieXRlcyBmcm9tIGVu
Y2Fwc3VsYXRlZCAnCi0gICAgICAgICAgICAgICAgICAgICdmcmFtZScgJSBsZW5ndGgpCi0gICAg
ICAgICAgICBkYXRhID0gc2VsZi5fY3VycmVudF9kYXRhW3NlbGYuX3Bvc2l0aW9uOnNlbGYuX3Bv
c2l0aW9uK2xlbmd0aF0KLSAgICAgICAgICAgIHNlbGYuX3Bvc2l0aW9uICs9IGxlbmd0aAotICAg
ICAgICAgICAgcmV0dXJuIGRhdGEKLQotICAgICAgICAjIFBhcnNlIHBoeXNpY2FsIGZyYW1lcyBh
bmQgYXNzZW1ibGUgYSBtZXNzYWdlIGlmIHRoZSBtZXNzYWdlIGlzCi0gICAgICAgICMgZnJhZ21l
bnRlZC4KLSAgICAgICAgb3Bjb2RlLCBwYXlsb2FkLCBmaW4sIHJzdjEsIHJzdjIsIHJzdjMgPSAo
Ci0gICAgICAgICAgICBwYXJzZV9mcmFtZShfcmVjZWl2ZV9ieXRlcywgdW5tYXNrX3JlY2VpdmU9
RmFsc2UpKQotCi0gICAgICAgIHNlbGYuX3BlbmRpbmdfZnJhZ21lbnRzLmFwcGVuZChwYXlsb2Fk
KQotCi0gICAgICAgIGlmIHNlbGYuX2N1cnJlbnRfb3Bjb2RlIGlzIE5vbmU6Ci0gICAgICAgICAg
ICBpZiBvcGNvZGUgPT0gY29tbW9uLk9QQ09ERV9DT05USU5VQVRJT046Ci0gICAgICAgICAgICAg
ICAgcmFpc2UgRXhjZXB0aW9uKCdTZW5kaW5nIGludmFsaWQgY29udGludWF0aW9uIG9wY29kZScp
Ci0gICAgICAgICAgICBzZWxmLl9jdXJyZW50X29wY29kZSA9IG9wY29kZQotICAgICAgICBlbHNl
OgotICAgICAgICAgICAgaWYgb3Bjb2RlICE9IGNvbW1vbi5PUENPREVfQ09OVElOVUFUSU9OOgot
ICAgICAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbignU2VuZGluZyBpbnZhbGlkIG9wY29kZSAl
ZCcgJSBvcGNvZGUpCi0gICAgICAgIGlmIG5vdCBmaW46Ci0gICAgICAgICAgICByZXR1cm4KLQot
ICAgICAgICBpbm5lcl9mcmFtZV9kYXRhID0gJycuam9pbihzZWxmLl9wZW5kaW5nX2ZyYWdtZW50
cykKLSAgICAgICAgc2VsZi5fcGVuZGluZ19mcmFnbWVudHMgPSBbXQotICAgICAgICBzZWxmLl9j
dXJyZW50X29wY29kZSA9IE5vbmUKLQotICAgICAgICAjIEhhbmRsZSBhIGNvbnRyb2wgbWVzc2Fn
ZSBvbiB0aGUgcGh5c2ljYWwgY2hhbm5lbC4KLSAgICAgICAgIyBUT0RPKGJhc2hpKTogU3VwcG9y
dCBvdGhlciBvcGNvZGVzIGlmIG5lZWRlZC4KLSAgICAgICAgaWYgb3Bjb2RlID09IGNvbW1vbi5P
UENPREVfQ0xPU0U6Ci0gICAgICAgICAgICBpZiBsZW4ocGF5bG9hZCkgPj0gMjoKLSAgICAgICAg
ICAgICAgICBzZWxmLnNlcnZlcl9jbG9zZV9jb2RlID0gc3RydWN0LnVucGFjaygnIUgnLCBwYXls
b2FkWzoyXSlbMF0KLSAgICAgICAgICAgIGNsb3NlX2JvZHkgPSBjcmVhdGVfY2xvc2luZ19oYW5k
c2hha2VfYm9keSgKLSAgICAgICAgICAgICAgICBjb21tb24uU1RBVFVTX05PUk1BTF9DTE9TVVJF
LCAnJykKLSAgICAgICAgICAgIGNsb3NlX2ZyYW1lID0gY3JlYXRlX2Nsb3NlX2ZyYW1lKGNsb3Nl
X2JvZHksIG1hc2s9VHJ1ZSkKLSAgICAgICAgICAgIHNlbGYucHV0X2J5dGVzKGNsb3NlX2ZyYW1l
KQotICAgICAgICAgICAgcmV0dXJuCi0KLSAgICAgICAgIyBQYXJzZSB0aGUgcGF5bG9hZCBvZiB0
aGUgbWVzc2FnZSBvbiBwaHlzaWNhbCBjaGFubmVsLgotICAgICAgICBwYXJzZXIgPSBtdXguX011
eEZyYW1lUGF5bG9hZFBhcnNlcihpbm5lcl9mcmFtZV9kYXRhKQotICAgICAgICBjaGFubmVsX2lk
ID0gcGFyc2VyLnJlYWRfY2hhbm5lbF9pZCgpCi0gICAgICAgIGlmIGNoYW5uZWxfaWQgPT0gbXV4
Ll9DT05UUk9MX0NIQU5ORUxfSUQ6Ci0gICAgICAgICAgICBzZWxmLl9jb250cm9sX2Jsb2Nrcy5l
eHRlbmQobGlzdChwYXJzZXIucmVhZF9jb250cm9sX2Jsb2NrcygpKSkKLSAgICAgICAgICAgIHJl
dHVybgotCi0gICAgICAgIGlmIG5vdCBjaGFubmVsX2lkIGluIHNlbGYuX2NoYW5uZWxfZGF0YToK
LSAgICAgICAgICAgIHNlbGYuX2NoYW5uZWxfZGF0YVtjaGFubmVsX2lkXSA9IF9PdXRnb2luZ0No
YW5uZWxEYXRhKCkKLSAgICAgICAgY2hhbm5lbF9kYXRhID0gc2VsZi5fY2hhbm5lbF9kYXRhW2No
YW5uZWxfaWRdCi0KLSAgICAgICAgIyBQYXJzZSBsb2dpY2FsIGZyYW1lcyBhbmQgYXNzZW1ibGUg
YW4gaW5uZXIgKGxvZ2ljYWwpIG1lc3NhZ2UuCi0gICAgICAgIChpbm5lcl9maW4sIGlubmVyX3Jz
djEsIGlubmVyX3JzdjIsIGlubmVyX3JzdjMsIGlubmVyX29wY29kZSwKLSAgICAgICAgIGlubmVy
X3BheWxvYWQpID0gcGFyc2VyLnJlYWRfaW5uZXJfZnJhbWUoKQotICAgICAgICBpbm5lcl9mcmFt
ZSA9IEZyYW1lKGlubmVyX2ZpbiwgaW5uZXJfcnN2MSwgaW5uZXJfcnN2MiwgaW5uZXJfcnN2MywK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbm5lcl9vcGNvZGUsIGlubmVyX3BheWxvYWQp
Ci0gICAgICAgIG1lc3NhZ2UgPSBjaGFubmVsX2RhdGEuYnVpbGRlci5idWlsZChpbm5lcl9mcmFt
ZSkKLSAgICAgICAgaWYgbWVzc2FnZSBpcyBOb25lOgotICAgICAgICAgICAgcmV0dXJuCi0KLSAg
ICAgICAgaWYgKG1lc3NhZ2Uub3Bjb2RlID09IGNvbW1vbi5PUENPREVfVEVYVCBvcgotICAgICAg
ICAgICAgbWVzc2FnZS5vcGNvZGUgPT0gY29tbW9uLk9QQ09ERV9CSU5BUlkpOgotICAgICAgICAg
ICAgY2hhbm5lbF9kYXRhLm1lc3NhZ2VzLmFwcGVuZChtZXNzYWdlLnBheWxvYWQpCi0KLSAgICAg
ICAgICAgIHNlbGYub25fZGF0YV9tZXNzYWdlKG1lc3NhZ2UucGF5bG9hZCkKLSAgICAgICAgZWxz
ZToKLSAgICAgICAgICAgIGNoYW5uZWxfZGF0YS5jb250cm9sX21lc3NhZ2VzLmFwcGVuZCgKLSAg
ICAgICAgICAgICAgICB7J29wY29kZSc6IG1lc3NhZ2Uub3Bjb2RlLAotICAgICAgICAgICAgICAg
ICAnbWVzc2FnZSc6IG1lc3NhZ2UucGF5bG9hZH0pCi0KLSAgICBkZWYgb25fZGF0YV9tZXNzYWdl
KHNlbGYsIG1lc3NhZ2UpOgotICAgICAgICBwYXNzCi0KLSAgICBkZWYgZ2V0X3dyaXR0ZW5fY29u
dHJvbF9ibG9ja3Moc2VsZik6Ci0gICAgICAgIHJldHVybiBzZWxmLl9jb250cm9sX2Jsb2Nrcwot
Ci0gICAgZGVmIGdldF93cml0dGVuX21lc3NhZ2VzKHNlbGYsIGNoYW5uZWxfaWQpOgotICAgICAg
ICByZXR1cm4gc2VsZi5fY2hhbm5lbF9kYXRhW2NoYW5uZWxfaWRdLm1lc3NhZ2VzCi0KLSAgICBk
ZWYgZ2V0X3dyaXR0ZW5fY29udHJvbF9tZXNzYWdlcyhzZWxmLCBjaGFubmVsX2lkKToKLSAgICAg
ICAgcmV0dXJuIHNlbGYuX2NoYW5uZWxfZGF0YVtjaGFubmVsX2lkXS5jb250cm9sX21lc3NhZ2Vz
Ci0KLQotY2xhc3MgX0ZhaWxPbldyaXRlQ29ubmVjdGlvbihfTW9ja011eENvbm5lY3Rpb24pOgot
ICAgICIiIlNwZWNpY2lhbGl6ZWQgdmVyc2lvbiBvZiBfTW9ja011eENvbm5lY3Rpb24uIEl0cyB3
cml0ZSgpIG1ldGhvZCByYWlzZXMKLSAgICBhbiBleGNlcHRpb24gZm9yIHRlc3Rpbmcgd2hlbiBh
IGRhdGEgbWVzc2FnZSBpcyB3cml0dGVuLgotICAgICIiIgotCi0gICAgZGVmIG9uX2RhdGFfbWVz
c2FnZShzZWxmLCBtZXNzYWdlKToKLSAgICAgICAgIiIiT3ZlcnJpZGUgdG8gcmFpc2UgYW4gZXhj
ZXB0aW9uLiIiIgotCi0gICAgICAgIHJhaXNlIEV4Y2VwdGlvbignSW50ZW50aW9uYWwgZmFpbHVy
ZScpCi0KLQotY2xhc3MgX0NoYW5uZWxFdmVudChvYmplY3QpOgotICAgICIiIkEgc3RydWN0dXJl
IHRoYXQgcmVjb3JkcyBjaGFubmVsIGV2ZW50cy4iIiIKLQotICAgIGRlZiBfX2luaXRfXyhzZWxm
KToKLSAgICAgICAgc2VsZi5yZXF1ZXN0ID0gTm9uZQotICAgICAgICBzZWxmLm1lc3NhZ2VzID0g
W10KLSAgICAgICAgc2VsZi5leGNlcHRpb24gPSBOb25lCi0gICAgICAgIHNlbGYuY2xpZW50X2lu
aXRpYXRlZF9jbG9zaW5nID0gRmFsc2UKLQotCi1jbGFzcyBfTXV4TW9ja0Rpc3BhdGNoZXIob2Jq
ZWN0KToKLSAgICAiIiJNb2NrIGNsYXNzIG9mIGRpc3BhdGNoLkRpc3BhdGNoZXIgZm9yIG11eC4i
IiIKLQotICAgIGRlZiBfX2luaXRfXyhzZWxmKToKLSAgICAgICAgc2VsZi5jaGFubmVsX2V2ZW50
cyA9IHt9Ci0KLSAgICBkZWYgZG9fZXh0cmFfaGFuZHNoYWtlKHNlbGYsIHJlcXVlc3QpOgotICAg
ICAgICBpZiByZXF1ZXN0LndzX3JlcXVlc3RlZF9wcm90b2NvbHMgaXMgbm90IE5vbmU6Ci0gICAg
ICAgICAgICByZXF1ZXN0LndzX3Byb3RvY29sID0gcmVxdWVzdC53c19yZXF1ZXN0ZWRfcHJvdG9j
b2xzWzBdCi0KLSAgICBkZWYgX2RvX2VjaG8oc2VsZiwgcmVxdWVzdCwgY2hhbm5lbF9ldmVudHMp
OgotICAgICAgICB3aGlsZSBUcnVlOgotICAgICAgICAgICAgbWVzc2FnZSA9IHJlcXVlc3Qud3Nf
c3RyZWFtLnJlY2VpdmVfbWVzc2FnZSgpCi0gICAgICAgICAgICBpZiBtZXNzYWdlID09IE5vbmU6
Ci0gICAgICAgICAgICAgICAgY2hhbm5lbF9ldmVudHMuY2xpZW50X2luaXRpYXRlZF9jbG9zaW5n
ID0gVHJ1ZQotICAgICAgICAgICAgICAgIHJldHVybgotICAgICAgICAgICAgaWYgbWVzc2FnZSA9
PSAnR29vZGJ5ZSc6Ci0gICAgICAgICAgICAgICAgcmV0dXJuCi0gICAgICAgICAgICBjaGFubmVs
X2V2ZW50cy5tZXNzYWdlcy5hcHBlbmQobWVzc2FnZSkKLSAgICAgICAgICAgICMgZWNobyBiYWNr
Ci0gICAgICAgICAgICByZXF1ZXN0LndzX3N0cmVhbS5zZW5kX21lc3NhZ2UobWVzc2FnZSkKLQot
ICAgIGRlZiBfZG9fcGluZyhzZWxmLCByZXF1ZXN0LCBjaGFubmVsX2V2ZW50cyk6Ci0gICAgICAg
IHJlcXVlc3Qud3Nfc3RyZWFtLnNlbmRfcGluZygnUGluZyEnKQotCi0gICAgZGVmIF9kb19waW5n
X3doaWxlX2hlbGxvX3dvcmxkKHNlbGYsIHJlcXVlc3QsIGNoYW5uZWxfZXZlbnRzKToKLSAgICAg
ICAgcmVxdWVzdC53c19zdHJlYW0uc2VuZF9tZXNzYWdlKCdIZWxsbyAnLCBlbmQ9RmFsc2UpCi0g
ICAgICAgIHJlcXVlc3Qud3Nfc3RyZWFtLnNlbmRfcGluZygnUGluZyEnKQotICAgICAgICByZXF1
ZXN0LndzX3N0cmVhbS5zZW5kX21lc3NhZ2UoJ1dvcmxkIScsIGVuZD1UcnVlKQotCi0gICAgZGVm
IF9kb190d29fcGluZ193aGlsZV9oZWxsb193b3JsZChzZWxmLCByZXF1ZXN0LCBjaGFubmVsX2V2
ZW50cyk6Ci0gICAgICAgIHJlcXVlc3Qud3Nfc3RyZWFtLnNlbmRfbWVzc2FnZSgnSGVsbG8gJywg
ZW5kPUZhbHNlKQotICAgICAgICByZXF1ZXN0LndzX3N0cmVhbS5zZW5kX3BpbmcoJ1BpbmchJykK
LSAgICAgICAgcmVxdWVzdC53c19zdHJlYW0uc2VuZF9waW5nKCdQb25nIScpCi0gICAgICAgIHJl
cXVlc3Qud3Nfc3RyZWFtLnNlbmRfbWVzc2FnZSgnV29ybGQhJywgZW5kPVRydWUpCi0KLSAgICBk
ZWYgdHJhbnNmZXJfZGF0YShzZWxmLCByZXF1ZXN0KToKLSAgICAgICAgc2VsZi5jaGFubmVsX2V2
ZW50c1tyZXF1ZXN0LmNoYW5uZWxfaWRdID0gX0NoYW5uZWxFdmVudCgpCi0gICAgICAgIHNlbGYu
Y2hhbm5lbF9ldmVudHNbcmVxdWVzdC5jaGFubmVsX2lkXS5yZXF1ZXN0ID0gcmVxdWVzdAotCi0g
ICAgICAgIHRyeToKLSAgICAgICAgICAgICMgTm90ZTogbW9yZSBoYW5kbGVyIHdpbGwgYmUgYWRk
ZWQuCi0gICAgICAgICAgICBpZiByZXF1ZXN0LnVyaS5lbmRzd2l0aCgnZWNobycpOgotICAgICAg
ICAgICAgICAgIHNlbGYuX2RvX2VjaG8ocmVxdWVzdCwKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHNlbGYuY2hhbm5lbF9ldmVudHNbcmVxdWVzdC5jaGFubmVsX2lkXSkKLSAgICAgICAg
ICAgIGVsaWYgcmVxdWVzdC51cmkuZW5kc3dpdGgoJ3BpbmcnKToKLSAgICAgICAgICAgICAgICBz
ZWxmLl9kb19waW5nKHJlcXVlc3QsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxm
LmNoYW5uZWxfZXZlbnRzW3JlcXVlc3QuY2hhbm5lbF9pZF0pCi0gICAgICAgICAgICBlbGlmIHJl
cXVlc3QudXJpLmVuZHN3aXRoKCd0d29fcGluZ193aGlsZV9oZWxsb193b3JsZCcpOgotICAgICAg
ICAgICAgICAgIHNlbGYuX2RvX3R3b19waW5nX3doaWxlX2hlbGxvX3dvcmxkKAotICAgICAgICAg
ICAgICAgICAgICByZXF1ZXN0LCBzZWxmLmNoYW5uZWxfZXZlbnRzW3JlcXVlc3QuY2hhbm5lbF9p
ZF0pCi0gICAgICAgICAgICBlbGlmIHJlcXVlc3QudXJpLmVuZHN3aXRoKCdwaW5nX3doaWxlX2hl
bGxvX3dvcmxkJyk6Ci0gICAgICAgICAgICAgICAgc2VsZi5fZG9fcGluZ193aGlsZV9oZWxsb193
b3JsZCgKLSAgICAgICAgICAgICAgICAgICAgcmVxdWVzdCwgc2VsZi5jaGFubmVsX2V2ZW50c1ty
ZXF1ZXN0LmNoYW5uZWxfaWRdKQotICAgICAgICAgICAgZWxzZToKLSAgICAgICAgICAgICAgICBy
YWlzZSBWYWx1ZUVycm9yKCdDYW5ub3QgaGFuZGxlIHBhdGggJXInICUgcmVxdWVzdC5wYXRoKQot
ICAgICAgICAgICAgaWYgbm90IHJlcXVlc3Quc2VydmVyX3Rlcm1pbmF0ZWQ6Ci0gICAgICAgICAg
ICAgICAgcmVxdWVzdC53c19zdHJlYW0uY2xvc2VfY29ubmVjdGlvbigpCi0gICAgICAgIGV4Y2Vw
dCBDb25uZWN0aW9uVGVybWluYXRlZEV4Y2VwdGlvbiwgZToKLSAgICAgICAgICAgIHNlbGYuY2hh
bm5lbF9ldmVudHNbcmVxdWVzdC5jaGFubmVsX2lkXS5leGNlcHRpb24gPSBlCi0gICAgICAgIGV4
Y2VwdCBFeGNlcHRpb24sIGU6Ci0gICAgICAgICAgICBzZWxmLmNoYW5uZWxfZXZlbnRzW3JlcXVl
c3QuY2hhbm5lbF9pZF0uZXhjZXB0aW9uID0gZQotICAgICAgICAgICAgcmFpc2UKLQotCi1kZWYg
X2NyZWF0ZV9tb2NrX3JlcXVlc3QoY29ubmVjdGlvbj1Ob25lLCBsb2dpY2FsX2NoYW5uZWxfZXh0
ZW5zaW9ucz1Ob25lKToKLSAgICBpZiBjb25uZWN0aW9uIGlzIE5vbmU6Ci0gICAgICAgIGNvbm5l
Y3Rpb24gPSBfTW9ja011eENvbm5lY3Rpb24oKQotCi0gICAgcmVxdWVzdCA9IG1vY2suTW9ja1Jl
cXVlc3QodXJpPScvZWNobycsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVhZGVy
c19pbj1fVEVTVF9IRUFERVJTLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbm5l
Y3Rpb249Y29ubmVjdGlvbikKLSAgICByZXF1ZXN0LndzX3N0cmVhbSA9IFN0cmVhbShyZXF1ZXN0
LCBvcHRpb25zPVN0cmVhbU9wdGlvbnMoKSkKLSAgICByZXF1ZXN0Lm11eF9wcm9jZXNzb3IgPSBN
dXhFeHRlbnNpb25Qcm9jZXNzb3IoCi0gICAgICAgIGNvbW1vbi5FeHRlbnNpb25QYXJhbWV0ZXIo
Y29tbW9uLk1VWF9FWFRFTlNJT04pKQotICAgIGlmIGxvZ2ljYWxfY2hhbm5lbF9leHRlbnNpb25z
IGlzIG5vdCBOb25lOgotICAgICAgICByZXF1ZXN0Lm11eF9wcm9jZXNzb3Iuc2V0X2V4dGVuc2lv
bnMobG9naWNhbF9jaGFubmVsX2V4dGVuc2lvbnMpCi0gICAgcmVxdWVzdC5tdXhfcHJvY2Vzc29y
LnNldF9xdW90YSg4ICogMTAyNCkKLSAgICByZXR1cm4gcmVxdWVzdAotCi0KLWRlZiBfY3JlYXRl
X2FkZF9jaGFubmVsX3JlcXVlc3RfZnJhbWUoY2hhbm5lbF9pZCwgZW5jb2RpbmcsIGVuY29kZWRf
aGFuZHNoYWtlKToKLSAgICAjIEFsbG93IGludmFsaWQgZW5jb2RpbmcgZm9yIHRlc3RpbmcuCi0g
ICAgZmlyc3RfYnl0ZSA9ICgobXV4Ll9NVVhfT1BDT0RFX0FERF9DSEFOTkVMX1JFUVVFU1QgPDwg
NSkgfCBlbmNvZGluZykKLSAgICBwYXlsb2FkID0gKGNocihmaXJzdF9ieXRlKSArCi0gICAgICAg
ICAgICAgICBtdXguX2VuY29kZV9jaGFubmVsX2lkKGNoYW5uZWxfaWQpICsKLSAgICAgICAgICAg
ICAgIG11eC5fZW5jb2RlX251bWJlcihsZW4oZW5jb2RlZF9oYW5kc2hha2UpKSArCi0gICAgICAg
ICAgICAgICBlbmNvZGVkX2hhbmRzaGFrZSkKLSAgICByZXR1cm4gY3JlYXRlX2JpbmFyeV9mcmFt
ZSgKLSAgICAgICAgKG11eC5fZW5jb2RlX2NoYW5uZWxfaWQobXV4Ll9DT05UUk9MX0NIQU5ORUxf
SUQpICsgcGF5bG9hZCksIG1hc2s9VHJ1ZSkKLQotCi1kZWYgX2NyZWF0ZV9kcm9wX2NoYW5uZWxf
ZnJhbWUoY2hhbm5lbF9pZCwgY29kZT1Ob25lLCBtZXNzYWdlPScnKToKLSAgICBwYXlsb2FkID0g
bXV4Ll9jcmVhdGVfZHJvcF9jaGFubmVsKGNoYW5uZWxfaWQsIGNvZGUsIG1lc3NhZ2UpCi0gICAg
cmV0dXJuIGNyZWF0ZV9iaW5hcnlfZnJhbWUoCi0gICAgICAgIChtdXguX2VuY29kZV9jaGFubmVs
X2lkKG11eC5fQ09OVFJPTF9DSEFOTkVMX0lEKSArIHBheWxvYWQpLCBtYXNrPVRydWUpCi0KLQot
ZGVmIF9jcmVhdGVfZmxvd19jb250cm9sX2ZyYW1lKGNoYW5uZWxfaWQsIHJlcGxlbmlzaGVkX3F1
b3RhKToKLSAgICBwYXlsb2FkID0gbXV4Ll9jcmVhdGVfZmxvd19jb250cm9sKGNoYW5uZWxfaWQs
IHJlcGxlbmlzaGVkX3F1b3RhKQotICAgIHJldHVybiBjcmVhdGVfYmluYXJ5X2ZyYW1lKAotICAg
ICAgICAobXV4Ll9lbmNvZGVfY2hhbm5lbF9pZChtdXguX0NPTlRST0xfQ0hBTk5FTF9JRCkgKyBw
YXlsb2FkKSwgbWFzaz1UcnVlKQotCi0KLWRlZiBfY3JlYXRlX2xvZ2ljYWxfZnJhbWUoY2hhbm5l
bF9pZCwgbWVzc2FnZSwgb3Bjb2RlPWNvbW1vbi5PUENPREVfQklOQVJZLAotICAgICAgICAgICAg
ICAgICAgICAgICAgICBmaW49VHJ1ZSwgcnN2MT1GYWxzZSwgcnN2Mj1GYWxzZSwgcnN2Mz1GYWxz
ZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgbWFzaz1UcnVlKToKLSAgICBiaXRzID0gY2hy
KChmaW4gPDwgNykgfCAocnN2MSA8PCA2KSB8IChyc3YyIDw8IDUpIHwgKHJzdjMgPDwgNCkgfCBv
cGNvZGUpCi0gICAgcGF5bG9hZCA9IG11eC5fZW5jb2RlX2NoYW5uZWxfaWQoY2hhbm5lbF9pZCkg
KyBiaXRzICsgbWVzc2FnZQotICAgIHJldHVybiBjcmVhdGVfYmluYXJ5X2ZyYW1lKHBheWxvYWQs
IG1hc2s9VHJ1ZSkKLQotCi1kZWYgX2NyZWF0ZV9yZXF1ZXN0X2hlYWRlcihwYXRoPScvZWNobycs
IGV4dGVuc2lvbnM9Tm9uZSk6Ci0gICAgaGVhZGVycyA9ICgKLSAgICAgICAgJ0dFVCAlcyBIVFRQ
LzEuMVxyXG4nCi0gICAgICAgICdIb3N0OiBzZXJ2ZXIuZXhhbXBsZS5jb21cclxuJwotICAgICAg
ICAnQ29ubmVjdGlvbjogVXBncmFkZVxyXG4nCi0gICAgICAgICdPcmlnaW46IGh0dHA6Ly9leGFt
cGxlLmNvbVxyXG4nKSAlIHBhdGgKLSAgICBpZiBleHRlbnNpb25zOgotICAgICAgICBoZWFkZXJz
ICs9ICclczogJXMnICUgKAotICAgICAgICAgICAgY29tbW9uLlNFQ19XRUJTT0NLRVRfRVhURU5T
SU9OU19IRUFERVIsIGV4dGVuc2lvbnMpCi0gICAgcmV0dXJuIGhlYWRlcnMKLQotCi1jbGFzcyBN
dXhUZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKLSAgICAiIiJBIHVuaXR0ZXN0IGZvciBtdXggbW9k
dWxlLiIiIgotCi0gICAgZGVmIHRlc3RfY2hhbm5lbF9pZF9kZWNvZGUoc2VsZik6Ci0gICAgICAg
IGRhdGEgPSAnXHgwMFx4MDFceGJmXHhmZlx4ZGZceGZmXHhmZlx4ZmZceGZmXHhmZlx4ZmYnCi0g
ICAgICAgIHBhcnNlciA9IG11eC5fTXV4RnJhbWVQYXlsb2FkUGFyc2VyKGRhdGEpCi0gICAgICAg
IGNoYW5uZWxfaWQgPSBwYXJzZXIucmVhZF9jaGFubmVsX2lkKCkKLSAgICAgICAgc2VsZi5hc3Nl
cnRFcXVhbCgwLCBjaGFubmVsX2lkKQotICAgICAgICBjaGFubmVsX2lkID0gcGFyc2VyLnJlYWRf
Y2hhbm5lbF9pZCgpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoMSwgY2hhbm5lbF9pZCkKLSAg
ICAgICAgY2hhbm5lbF9pZCA9IHBhcnNlci5yZWFkX2NoYW5uZWxfaWQoKQotICAgICAgICBzZWxm
LmFzc2VydEVxdWFsKDIgKiogMTQgLSAxLCBjaGFubmVsX2lkKQotICAgICAgICBjaGFubmVsX2lk
ID0gcGFyc2VyLnJlYWRfY2hhbm5lbF9pZCgpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoMiAq
KiAyMSAtIDEsIGNoYW5uZWxfaWQpCi0gICAgICAgIGNoYW5uZWxfaWQgPSBwYXJzZXIucmVhZF9j
aGFubmVsX2lkKCkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgyICoqIDI5IC0gMSwgY2hhbm5l
bF9pZCkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChsZW4oZGF0YSksIHBhcnNlci5fcmVhZF9w
b3NpdGlvbikKLQotICAgIGRlZiB0ZXN0X2NoYW5uZWxfaWRfZW5jb2RlKHNlbGYpOgotICAgICAg
ICBlbmNvZGVkID0gbXV4Ll9lbmNvZGVfY2hhbm5lbF9pZCgwKQotICAgICAgICBzZWxmLmFzc2Vy
dEVxdWFsKCdceDAwJywgZW5jb2RlZCkKLSAgICAgICAgZW5jb2RlZCA9IG11eC5fZW5jb2RlX2No
YW5uZWxfaWQoMiAqKiAxNCAtIDEpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ1x4YmZceGZm
JywgZW5jb2RlZCkKLSAgICAgICAgZW5jb2RlZCA9IG11eC5fZW5jb2RlX2NoYW5uZWxfaWQoMiAq
KiAxNCkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnXHhjMEBceDAwJywgZW5jb2RlZCkKLSAg
ICAgICAgZW5jb2RlZCA9IG11eC5fZW5jb2RlX2NoYW5uZWxfaWQoMiAqKiAyMSAtIDEpCi0gICAg
ICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ1x4ZGZceGZmXHhmZicsIGVuY29kZWQpCi0gICAgICAgIGVu
Y29kZWQgPSBtdXguX2VuY29kZV9jaGFubmVsX2lkKDIgKiogMjEpCi0gICAgICAgIHNlbGYuYXNz
ZXJ0RXF1YWwoJ1x4ZTAgXHgwMFx4MDAnLCBlbmNvZGVkKQotICAgICAgICBlbmNvZGVkID0gbXV4
Ll9lbmNvZGVfY2hhbm5lbF9pZCgyICoqIDI5IC0gMSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVh
bCgnXHhmZlx4ZmZceGZmXHhmZicsIGVuY29kZWQpCi0gICAgICAgICMgY2hhbm5lbF9pZCBpcyB0
b28gbGFyZ2UKLSAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVmFsdWVFcnJvciwKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgbXV4Ll9lbmNvZGVfY2hhbm5lbF9pZCwKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgMiAqKiAyOSkKLQotICAgIGRlZiB0ZXN0X3JlYWRfbXVsdGlwbGVfY29udHJv
bF9ibG9ja3Moc2VsZik6Ci0gICAgICAgICMgVXNlIEFkZENoYW5uZWxSZXF1ZXN0IGJlY2F1c2Ug
aXQgY2FuIGNvbnRhaW4gYXJiaXRyYXJ5IGxlbmd0aCBvZiBkYXRhCi0gICAgICAgIGRhdGEgPSAo
J1x4MDBceDAxXHgwMWEnCi0gICAgICAgICAgICAgICAgJ1x4MDBceDAyXHg3ZCVzJwotICAgICAg
ICAgICAgICAgICdceDAwXHgwM1x4N2VceGZmXHhmZiVzJwotICAgICAgICAgICAgICAgICdceDAw
XHgwNFx4N2ZceDAwXHgwMFx4MDBceDAwXHgwMFx4MDFceDAwXHgwMCVzJykgJSAoCi0gICAgICAg
ICAgICAnYScgKiAweDdkLCAnYicgKiAweGZmZmYsICdjJyAqIDB4MTAwMDApCi0gICAgICAgIHBh
cnNlciA9IG11eC5fTXV4RnJhbWVQYXlsb2FkUGFyc2VyKGRhdGEpCi0gICAgICAgIGJsb2NrcyA9
IGxpc3QocGFyc2VyLnJlYWRfY29udHJvbF9ibG9ja3MoKSkKLSAgICAgICAgc2VsZi5hc3NlcnRF
cXVhbCg0LCBsZW4oYmxvY2tzKSkKLQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKG11eC5fTVVY
X09QQ09ERV9BRERfQ0hBTk5FTF9SRVFVRVNULCBibG9ja3NbMF0ub3Bjb2RlKQotICAgICAgICBz
ZWxmLmFzc2VydEVxdWFsKDEsIGJsb2Nrc1swXS5jaGFubmVsX2lkKQotICAgICAgICBzZWxmLmFz
c2VydEVxdWFsKDEsIGxlbihibG9ja3NbMF0uZW5jb2RlZF9oYW5kc2hha2UpKQotCi0gICAgICAg
IHNlbGYuYXNzZXJ0RXF1YWwobXV4Ll9NVVhfT1BDT0RFX0FERF9DSEFOTkVMX1JFUVVFU1QsIGJs
b2Nrc1sxXS5vcGNvZGUpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoMiwgYmxvY2tzWzFdLmNo
YW5uZWxfaWQpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoMHg3ZCwgbGVuKGJsb2Nrc1sxXS5l
bmNvZGVkX2hhbmRzaGFrZSkpCi0KLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChtdXguX01VWF9P
UENPREVfQUREX0NIQU5ORUxfUkVRVUVTVCwgYmxvY2tzWzJdLm9wY29kZSkKLSAgICAgICAgc2Vs
Zi5hc3NlcnRFcXVhbCgzLCBibG9ja3NbMl0uY2hhbm5lbF9pZCkKLSAgICAgICAgc2VsZi5hc3Nl
cnRFcXVhbCgweGZmZmYsIGxlbihibG9ja3NbMl0uZW5jb2RlZF9oYW5kc2hha2UpKQotCi0gICAg
ICAgIHNlbGYuYXNzZXJ0RXF1YWwobXV4Ll9NVVhfT1BDT0RFX0FERF9DSEFOTkVMX1JFUVVFU1Qs
IGJsb2Nrc1szXS5vcGNvZGUpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoNCwgYmxvY2tzWzNd
LmNoYW5uZWxfaWQpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoMHgxMDAwMCwgbGVuKGJsb2Nr
c1szXS5lbmNvZGVkX2hhbmRzaGFrZSkpCi0KLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChsZW4o
ZGF0YSksIHBhcnNlci5fcmVhZF9wb3NpdGlvbikKLQotICAgIGRlZiB0ZXN0X3JlYWRfYWRkX2No
YW5uZWxfcmVxdWVzdChzZWxmKToKLSAgICAgICAgZGF0YSA9ICdceDAwXHgwMVx4MDFhJwotICAg
ICAgICBwYXJzZXIgPSBtdXguX011eEZyYW1lUGF5bG9hZFBhcnNlcihkYXRhKQotICAgICAgICBi
bG9ja3MgPSBsaXN0KHBhcnNlci5yZWFkX2NvbnRyb2xfYmxvY2tzKCkpCi0gICAgICAgIHNlbGYu
YXNzZXJ0RXF1YWwobXV4Ll9NVVhfT1BDT0RFX0FERF9DSEFOTkVMX1JFUVVFU1QsIGJsb2Nrc1sw
XS5vcGNvZGUpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoMSwgYmxvY2tzWzBdLmNoYW5uZWxf
aWQpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoMSwgbGVuKGJsb2Nrc1swXS5lbmNvZGVkX2hh
bmRzaGFrZSkpCi0KLSAgICBkZWYgdGVzdF9yZWFkX2Ryb3BfY2hhbm5lbChzZWxmKToKLSAgICAg
ICAgZGF0YSA9ICdceDYwXHgwMVx4MDAnCi0gICAgICAgIHBhcnNlciA9IG11eC5fTXV4RnJhbWVQ
YXlsb2FkUGFyc2VyKGRhdGEpCi0gICAgICAgIGJsb2NrcyA9IGxpc3QocGFyc2VyLnJlYWRfY29u
dHJvbF9ibG9ja3MoKSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgxLCBsZW4oYmxvY2tzKSkK
LSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgxLCBibG9ja3NbMF0uY2hhbm5lbF9pZCkKLSAgICAg
ICAgc2VsZi5hc3NlcnRFcXVhbChtdXguX01VWF9PUENPREVfRFJPUF9DSEFOTkVMLCBibG9ja3Nb
MF0ub3Bjb2RlKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKE5vbmUsIGJsb2Nrc1swXS5kcm9w
X2NvZGUpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoMCwgbGVuKGJsb2Nrc1swXS5kcm9wX21l
c3NhZ2UpKQotCi0gICAgICAgIGRhdGEgPSAnXHg2MFx4MDJceDA5XHgwM1x4ZThTdWNjZXNzJwot
ICAgICAgICBwYXJzZXIgPSBtdXguX011eEZyYW1lUGF5bG9hZFBhcnNlcihkYXRhKQotICAgICAg
ICBibG9ja3MgPSBsaXN0KHBhcnNlci5yZWFkX2NvbnRyb2xfYmxvY2tzKCkpCi0gICAgICAgIHNl
bGYuYXNzZXJ0RXF1YWwoMSwgbGVuKGJsb2NrcykpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwo
MiwgYmxvY2tzWzBdLmNoYW5uZWxfaWQpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobXV4Ll9N
VVhfT1BDT0RFX0RST1BfQ0hBTk5FTCwgYmxvY2tzWzBdLm9wY29kZSkKLSAgICAgICAgc2VsZi5h
c3NlcnRFcXVhbCgxMDAwLCBibG9ja3NbMF0uZHJvcF9jb2RlKQotICAgICAgICBzZWxmLmFzc2Vy
dEVxdWFsKCdTdWNjZXNzJywgYmxvY2tzWzBdLmRyb3BfbWVzc2FnZSkKLQotICAgICAgICAjIFJl
YXNvbiBpcyB0b28gc2hvcnQuCi0gICAgICAgIGRhdGEgPSAnXHg2MFx4MDFceDAxXHgwMCcKLSAg
ICAgICAgcGFyc2VyID0gbXV4Ll9NdXhGcmFtZVBheWxvYWRQYXJzZXIoZGF0YSkKLSAgICAgICAg
c2VsZi5hc3NlcnRSYWlzZXMobXV4LlBoeXNpY2FsQ29ubmVjdGlvbkVycm9yLAotICAgICAgICAg
ICAgICAgICAgICAgICAgICBsYW1iZGE6IGxpc3QocGFyc2VyLnJlYWRfY29udHJvbF9ibG9ja3Mo
KSkpCi0KLSAgICBkZWYgdGVzdF9yZWFkX2Zsb3dfY29udHJvbChzZWxmKToKLSAgICAgICAgZGF0
YSA9ICdceDQwXHgwMVx4MDInCi0gICAgICAgIHBhcnNlciA9IG11eC5fTXV4RnJhbWVQYXlsb2Fk
UGFyc2VyKGRhdGEpCi0gICAgICAgIGJsb2NrcyA9IGxpc3QocGFyc2VyLnJlYWRfY29udHJvbF9i
bG9ja3MoKSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgxLCBsZW4oYmxvY2tzKSkKLSAgICAg
ICAgc2VsZi5hc3NlcnRFcXVhbCgxLCBibG9ja3NbMF0uY2hhbm5lbF9pZCkKLSAgICAgICAgc2Vs
Zi5hc3NlcnRFcXVhbChtdXguX01VWF9PUENPREVfRkxPV19DT05UUk9MLCBibG9ja3NbMF0ub3Bj
b2RlKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKDIsIGJsb2Nrc1swXS5zZW5kX3F1b3RhKQot
Ci0gICAgZGVmIHRlc3RfcmVhZF9uZXdfY2hhbm5lbF9zbG90KHNlbGYpOgotICAgICAgICBkYXRh
ID0gJ1x4ODBceDAxXHgwMlx4MDJceDAzJwotICAgICAgICBwYXJzZXIgPSBtdXguX011eEZyYW1l
UGF5bG9hZFBhcnNlcihkYXRhKQotICAgICAgICAjIFRPRE8oYmFzaGkpOiBJbXBsZW1lbnQKLSAg
ICAgICAgc2VsZi5hc3NlcnRSYWlzZXMobXV4LlBoeXNpY2FsQ29ubmVjdGlvbkVycm9yLAotICAg
ICAgICAgICAgICAgICAgICAgICAgICBsYW1iZGE6IGxpc3QocGFyc2VyLnJlYWRfY29udHJvbF9i
bG9ja3MoKSkpCi0KLSAgICBkZWYgdGVzdF9yZWFkX2ludmFsaWRfbnVtYmVyX2ZpZWxkX2luX2Nv
bnRyb2xfYmxvY2soc2VsZik6Ci0gICAgICAgICMgTm8gbnVtYmVyIGZpZWxkLgotICAgICAgICBk
YXRhID0gJycKLSAgICAgICAgcGFyc2VyID0gbXV4Ll9NdXhGcmFtZVBheWxvYWRQYXJzZXIoZGF0
YSkKLSAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVmFsdWVFcnJvciwgcGFyc2VyLl9yZWFkX251
bWJlcikKLQotICAgICAgICAjIFRoZSBsYXN0IHR3byBieXRlcyBhcmUgbWlzc2luZy4KLSAgICAg
ICAgZGF0YSA9ICdceDdlJwotICAgICAgICBwYXJzZXIgPSBtdXguX011eEZyYW1lUGF5bG9hZFBh
cnNlcihkYXRhKQotICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhWYWx1ZUVycm9yLCBwYXJzZXIu
X3JlYWRfbnVtYmVyKQotCi0gICAgICAgICMgTWlzc2luZyB0aGUgbGFzdCBvbmUgYnl0ZS4KLSAg
ICAgICAgZGF0YSA9ICdceDdmXHgwMFx4MDBceDAwXHgwMFx4MDBceDAxXHgwMCcKLSAgICAgICAg
cGFyc2VyID0gbXV4Ll9NdXhGcmFtZVBheWxvYWRQYXJzZXIoZGF0YSkKLSAgICAgICAgc2VsZi5h
c3NlcnRSYWlzZXMoVmFsdWVFcnJvciwgcGFyc2VyLl9yZWFkX251bWJlcikKLQotICAgICAgICAj
IFRoZSBsZW5ndGggb2YgbnVtYmVyIGZpZWxkIGlzIHRvbyBsYXJnZS4KLSAgICAgICAgZGF0YSA9
ICdceDdmXHhmZlx4ZmZceGZmXHhmZlx4ZmZceGZmXHhmZlx4ZmYnCi0gICAgICAgIHBhcnNlciA9
IG11eC5fTXV4RnJhbWVQYXlsb2FkUGFyc2VyKGRhdGEpCi0gICAgICAgIHNlbGYuYXNzZXJ0UmFp
c2VzKFZhbHVlRXJyb3IsIHBhcnNlci5fcmVhZF9udW1iZXIpCi0KLSAgICAgICAgIyBUaGUgbXNi
IG9mIHRoZSBmaXJzdCBieXRlIGlzIHNldC4KLSAgICAgICAgZGF0YSA9ICdceDgwJwotICAgICAg
ICBwYXJzZXIgPSBtdXguX011eEZyYW1lUGF5bG9hZFBhcnNlcihkYXRhKQotICAgICAgICBzZWxm
LmFzc2VydFJhaXNlcyhWYWx1ZUVycm9yLCBwYXJzZXIuX3JlYWRfbnVtYmVyKQotCi0gICAgICAg
ICMgVXNpbmcgMyBieXRlcyBlbmNvZGluZyBmb3IgMTI1LgotICAgICAgICBkYXRhID0gJ1x4N2Vc
eDAwXHg3ZCcKLSAgICAgICAgcGFyc2VyID0gbXV4Ll9NdXhGcmFtZVBheWxvYWRQYXJzZXIoZGF0
YSkKLSAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVmFsdWVFcnJvciwgcGFyc2VyLl9yZWFkX251
bWJlcikKLQotICAgICAgICAjIFVzaW5nIDkgYnl0ZXMgZW5jb2RpbmcgZm9yIDB4ZmZmZgotICAg
ICAgICBkYXRhID0gJ1x4N2ZceDAwXHgwMFx4MDBceDAwXHgwMFx4MDBceGZmXHhmZicKLSAgICAg
ICAgcGFyc2VyID0gbXV4Ll9NdXhGcmFtZVBheWxvYWRQYXJzZXIoZGF0YSkKLSAgICAgICAgc2Vs
Zi5hc3NlcnRSYWlzZXMoVmFsdWVFcnJvciwgcGFyc2VyLl9yZWFkX251bWJlcikKLQotICAgIGRl
ZiB0ZXN0X3JlYWRfaW52YWxpZF9zaXplX2FuZF9jb250ZW50cyhzZWxmKToKLSAgICAgICAgIyBP
bmx5IGNvbnRhaW4gbnVtYmVyIGZpZWxkLgotICAgICAgICBkYXRhID0gJ1x4MDEnCi0gICAgICAg
IHBhcnNlciA9IG11eC5fTXV4RnJhbWVQYXlsb2FkUGFyc2VyKGRhdGEpCi0gICAgICAgIHNlbGYu
YXNzZXJ0UmFpc2VzKG11eC5QaHlzaWNhbENvbm5lY3Rpb25FcnJvciwKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgcGFyc2VyLl9yZWFkX3NpemVfYW5kX2NvbnRlbnRzKQotCi0gICAgZGVmIHRl
c3RfY3JlYXRlX2FkZF9jaGFubmVsX3Jlc3BvbnNlKHNlbGYpOgotICAgICAgICBkYXRhID0gbXV4
Ll9jcmVhdGVfYWRkX2NoYW5uZWxfcmVzcG9uc2UoY2hhbm5lbF9pZD0xLAotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5jb2RlZF9oYW5kc2hha2U9J0Zv
b0JhcicsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBl
bmNvZGluZz0wLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgcmVqZWN0ZWQ9RmFsc2UpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ1x4MjBceDAxXHgw
NkZvb0JhcicsIGRhdGEpCi0KLSAgICAgICAgZGF0YSA9IG11eC5fY3JlYXRlX2FkZF9jaGFubmVs
X3Jlc3BvbnNlKGNoYW5uZWxfaWQ9MiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGVuY29kZWRfaGFuZHNoYWtlPSdIZWxsbycsCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmNvZGluZz0xLAotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVqZWN0ZWQ9VHJ1ZSkKLSAg
ICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnXHgzMVx4MDJceDA1SGVsbG8nLCBkYXRhKQotCi0gICAg
ZGVmIHRlc3RfY3JlYXRlX2Ryb3BfY2hhbm5lbChzZWxmKToKLSAgICAgICAgZGF0YSA9IG11eC5f
Y3JlYXRlX2Ryb3BfY2hhbm5lbChjaGFubmVsX2lkPTEpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1
YWwoJ1x4NjBceDAxXHgwMCcsIGRhdGEpCi0KLSAgICAgICAgZGF0YSA9IG11eC5fY3JlYXRlX2Ry
b3BfY2hhbm5lbChjaGFubmVsX2lkPTEsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgY29kZT0yMDAwLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIG1lc3NhZ2U9J2Vycm9yJykKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnXHg2MFx4MDFc
eDA3XHgwN1x4ZDBlcnJvcicsIGRhdGEpCi0KLSAgICAgICAgIyByZWFzb24gbXVzdCBiZSBlbXB0
eSBpZiBjb2RlIGlzIE5vbmUKLSAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVmFsdWVFcnJvciwK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgbXV4Ll9jcmVhdGVfZHJvcF9jaGFubmVsLAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAxLCBOb25lLCAnRm9vQmFyJykKLQotICAgIGRlZiB0ZXN0
X3BhcnNlX3JlcXVlc3RfdGV4dChzZWxmKToKLSAgICAgICAgcmVxdWVzdF90ZXh0ID0gX2NyZWF0
ZV9yZXF1ZXN0X2hlYWRlcigpCi0gICAgICAgIGNvbW1hbmQsIHBhdGgsIHZlcnNpb24sIGhlYWRl
cnMgPSBtdXguX3BhcnNlX3JlcXVlc3RfdGV4dChyZXF1ZXN0X3RleHQpCi0gICAgICAgIHNlbGYu
YXNzZXJ0RXF1YWwoJ0dFVCcsIGNvbW1hbmQpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJy9l
Y2hvJywgcGF0aCkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnSFRUUC8xLjEnLCB2ZXJzaW9u
KQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKDMsIGxlbihoZWFkZXJzKSkKLSAgICAgICAgc2Vs
Zi5hc3NlcnRFcXVhbCgnc2VydmVyLmV4YW1wbGUuY29tJywgaGVhZGVyc1snSG9zdCddKQotICAg
ICAgICBzZWxmLmFzc2VydEVxdWFsKCdodHRwOi8vZXhhbXBsZS5jb20nLCBoZWFkZXJzWydPcmln
aW4nXSkKLQotCi1jbGFzcyBNdXhIYW5kbGVyVGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6Ci0KLSAg
ICBkZWYgdGVzdF9hZGRfY2hhbm5lbChzZWxmKToKLSAgICAgICAgcmVxdWVzdCA9IF9jcmVhdGVf
bW9ja19yZXF1ZXN0KCkKLSAgICAgICAgZGlzcGF0Y2hlciA9IF9NdXhNb2NrRGlzcGF0Y2hlcigp
Ci0gICAgICAgIG11eF9oYW5kbGVyID0gbXV4Ll9NdXhIYW5kbGVyKHJlcXVlc3QsIGRpc3BhdGNo
ZXIpCi0gICAgICAgIG11eF9oYW5kbGVyLnN0YXJ0KCkKLSAgICAgICAgbXV4X2hhbmRsZXIuYWRk
X2NoYW5uZWxfc2xvdHMobXV4Ll9JTklUSUFMX05VTUJFUl9PRl9DSEFOTkVMX1NMT1RTLAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtdXguX0lOSVRJQUxfUVVPVEFfRk9S
X0NMSUVOVCkKLQotICAgICAgICBlbmNvZGVkX2hhbmRzaGFrZSA9IF9jcmVhdGVfcmVxdWVzdF9o
ZWFkZXIocGF0aD0nL2VjaG8nKQotICAgICAgICBhZGRfY2hhbm5lbF9yZXF1ZXN0ID0gX2NyZWF0
ZV9hZGRfY2hhbm5lbF9yZXF1ZXN0X2ZyYW1lKAotICAgICAgICAgICAgY2hhbm5lbF9pZD0yLCBl
bmNvZGluZz0wLAotICAgICAgICAgICAgZW5jb2RlZF9oYW5kc2hha2U9ZW5jb2RlZF9oYW5kc2hh
a2UpCi0gICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMoYWRkX2NoYW5uZWxfcmVx
dWVzdCkKLQotICAgICAgICBmbG93X2NvbnRyb2wgPSBfY3JlYXRlX2Zsb3dfY29udHJvbF9mcmFt
ZShjaGFubmVsX2lkPTIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHJlcGxlbmlzaGVkX3F1b3RhPTYpCi0gICAgICAgIHJlcXVlc3QuY29ubmVjdGlv
bi5wdXRfYnl0ZXMoZmxvd19jb250cm9sKQotCi0gICAgICAgIGVuY29kZWRfaGFuZHNoYWtlID0g
X2NyZWF0ZV9yZXF1ZXN0X2hlYWRlcihwYXRoPScvZWNobycpCi0gICAgICAgIGFkZF9jaGFubmVs
X3JlcXVlc3QgPSBfY3JlYXRlX2FkZF9jaGFubmVsX3JlcXVlc3RfZnJhbWUoCi0gICAgICAgICAg
ICBjaGFubmVsX2lkPTMsIGVuY29kaW5nPTAsCi0gICAgICAgICAgICBlbmNvZGVkX2hhbmRzaGFr
ZT1lbmNvZGVkX2hhbmRzaGFrZSkKLSAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRl
cyhhZGRfY2hhbm5lbF9yZXF1ZXN0KQotCi0gICAgICAgIGZsb3dfY29udHJvbCA9IF9jcmVhdGVf
Zmxvd19jb250cm9sX2ZyYW1lKGNoYW5uZWxfaWQ9MywKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVwbGVuaXNoZWRfcXVvdGE9NikKLSAgICAgICAg
cmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcyhmbG93X2NvbnRyb2wpCi0KLSAgICAgICAgcmVx
dWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcygKLSAgICAgICAgICAgIF9jcmVhdGVfbG9naWNhbF9m
cmFtZShjaGFubmVsX2lkPTIsIG1lc3NhZ2U9J0hlbGxvJykpCi0gICAgICAgIHJlcXVlc3QuY29u
bmVjdGlvbi5wdXRfYnl0ZXMoCi0gICAgICAgICAgICBfY3JlYXRlX2xvZ2ljYWxfZnJhbWUoY2hh
bm5lbF9pZD0zLCBtZXNzYWdlPSdXb3JsZCcpKQotICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24u
cHV0X2J5dGVzKAotICAgICAgICAgICAgX2NyZWF0ZV9sb2dpY2FsX2ZyYW1lKGNoYW5uZWxfaWQ9
MSwgbWVzc2FnZT0nR29vZGJ5ZScpKQotICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5
dGVzKAotICAgICAgICAgICAgX2NyZWF0ZV9sb2dpY2FsX2ZyYW1lKGNoYW5uZWxfaWQ9MiwgbWVz
c2FnZT0nR29vZGJ5ZScpKQotICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKAot
ICAgICAgICAgICAgX2NyZWF0ZV9sb2dpY2FsX2ZyYW1lKGNoYW5uZWxfaWQ9MywgbWVzc2FnZT0n
R29vZGJ5ZScpKQotCi0gICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShtdXhfaGFuZGxlci53YWl0X3Vu
dGlsX2RvbmUodGltZW91dD0yKSkKLQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKFtdLCBkaXNw
YXRjaGVyLmNoYW5uZWxfZXZlbnRzWzFdLm1lc3NhZ2VzKQotICAgICAgICBzZWxmLmFzc2VydEVx
dWFsKFsnSGVsbG8nXSwgZGlzcGF0Y2hlci5jaGFubmVsX2V2ZW50c1syXS5tZXNzYWdlcykKLSAg
ICAgICAgc2VsZi5hc3NlcnRFcXVhbChbJ1dvcmxkJ10sIGRpc3BhdGNoZXIuY2hhbm5lbF9ldmVu
dHNbM10ubWVzc2FnZXMpCi0gICAgICAgICMgQ2hhbm5lbCAyCi0gICAgICAgIG1lc3NhZ2VzID0g
cmVxdWVzdC5jb25uZWN0aW9uLmdldF93cml0dGVuX21lc3NhZ2VzKDIpCi0gICAgICAgIHNlbGYu
YXNzZXJ0RXF1YWwoMSwgbGVuKG1lc3NhZ2VzKSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgn
SGVsbG8nLCBtZXNzYWdlc1swXSkKLSAgICAgICAgIyBDaGFubmVsIDMKLSAgICAgICAgbWVzc2Fn
ZXMgPSByZXF1ZXN0LmNvbm5lY3Rpb24uZ2V0X3dyaXR0ZW5fbWVzc2FnZXMoMykKLSAgICAgICAg
c2VsZi5hc3NlcnRFcXVhbCgxLCBsZW4obWVzc2FnZXMpKQotICAgICAgICBzZWxmLmFzc2VydEVx
dWFsKCdXb3JsZCcsIG1lc3NhZ2VzWzBdKQotICAgICAgICBjb250cm9sX2Jsb2NrcyA9IHJlcXVl
c3QuY29ubmVjdGlvbi5nZXRfd3JpdHRlbl9jb250cm9sX2Jsb2NrcygpCi0gICAgICAgICMgVGhl
cmUgc2hvdWxkIGJlIDggY29udHJvbCBibG9ja3M6Ci0gICAgICAgICMgICAtIDEgTmV3Q2hhbm5l
bFNsb3QKLSAgICAgICAgIyAgIC0gMiBBZGRDaGFubmVsUmVzcG9uc2VzIGZvciBjaGFubmVsIGlk
IDIgYW5kIDMKLSAgICAgICAgIyAgIC0gNiBGbG93Q29udHJvbHMgZm9yIGNoYW5uZWwgaWQgMSAo
aW5pdGlhbGl6ZSksICdIZWxsbycsICdXb3JsZCcsCi0gICAgICAgICMgICAgIGFuZCAzICdHb29k
YnllJ3MKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCg5LCBsZW4oY29udHJvbF9ibG9ja3MpKQot
Ci0gICAgZGVmIHRlc3RfcGh5c2ljYWxfY29ubmVjdGlvbl93cml0ZV9mYWlsdXJlKHNlbGYpOgot
ICAgICAgICAjIFVzZSBfRmFpbE9uV3JpdGVDb25uZWN0aW9uLgotICAgICAgICByZXF1ZXN0ID0g
X2NyZWF0ZV9tb2NrX3JlcXVlc3QoY29ubmVjdGlvbj1fRmFpbE9uV3JpdGVDb25uZWN0aW9uKCkp
Ci0KLSAgICAgICAgZGlzcGF0Y2hlciA9IF9NdXhNb2NrRGlzcGF0Y2hlcigpCi0gICAgICAgIG11
eF9oYW5kbGVyID0gbXV4Ll9NdXhIYW5kbGVyKHJlcXVlc3QsIGRpc3BhdGNoZXIpCi0gICAgICAg
IG11eF9oYW5kbGVyLnN0YXJ0KCkKLQotICAgICAgICAjIExldCB0aGUgd29ya2VyIGVjaG8gYmFj
ayAnSGVsbG8nLiBJdCBjYXVzZXMgX0ZhaWxPbldyaXRlQ29ubmVjdGlvbgotICAgICAgICAjIHJh
aXNpbmcgYW4gZXhjZXB0aW9uLgotICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVz
KAotICAgICAgICAgICAgX2NyZWF0ZV9sb2dpY2FsX2ZyYW1lKGNoYW5uZWxfaWQ9MSwgbWVzc2Fn
ZT0nSGVsbG8nKSkKLQotICAgICAgICAjIExldCB0aGUgd29ya2VyIGV4aXQuIFRoaXMgd2lsbCBi
ZSB1bm5lY2Vzc2FyeSB3aGVuCi0gICAgICAgICMgX0xvZ2ljYWxDb25uZWN0aW9uLndyaXRlKCkg
aXMgY2hhbmdlZCB0byB0aHJvdyBhbiBleGNlcHRpb24gaWYKLSAgICAgICAgIyB3b2tlIHVwIGJ5
IG9uX3dyaXRlcl9kb25lLgotICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKAot
ICAgICAgICAgICAgX2NyZWF0ZV9sb2dpY2FsX2ZyYW1lKGNoYW5uZWxfaWQ9MSwgbWVzc2FnZT0n
R29vZGJ5ZScpKQotCi0gICAgICAgICMgQWxsIHRocmVhZHMgc2hvdWxkIGJlIGRvbmUuCi0gICAg
ICAgIHNlbGYuYXNzZXJ0VHJ1ZShtdXhfaGFuZGxlci53YWl0X3VudGlsX2RvbmUodGltZW91dD0y
KSkKLQotICAgIGRlZiB0ZXN0X3NlbmRfYmxvY2tlZChzZWxmKToKLSAgICAgICAgcmVxdWVzdCA9
IF9jcmVhdGVfbW9ja19yZXF1ZXN0KCkKLSAgICAgICAgZGlzcGF0Y2hlciA9IF9NdXhNb2NrRGlz
cGF0Y2hlcigpCi0gICAgICAgIG11eF9oYW5kbGVyID0gbXV4Ll9NdXhIYW5kbGVyKHJlcXVlc3Qs
IGRpc3BhdGNoZXIpCi0gICAgICAgIG11eF9oYW5kbGVyLnN0YXJ0KCkKLQotICAgICAgICBtdXhf
aGFuZGxlci5hZGRfY2hhbm5lbF9zbG90cyhtdXguX0lOSVRJQUxfTlVNQkVSX09GX0NIQU5ORUxf
U0xPVFMsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG11eC5fSU5JVElB
TF9RVU9UQV9GT1JfQ0xJRU5UKQotCi0gICAgICAgIGVuY29kZWRfaGFuZHNoYWtlID0gX2NyZWF0
ZV9yZXF1ZXN0X2hlYWRlcihwYXRoPScvZWNobycpCi0gICAgICAgIGFkZF9jaGFubmVsX3JlcXVl
c3QgPSBfY3JlYXRlX2FkZF9jaGFubmVsX3JlcXVlc3RfZnJhbWUoCi0gICAgICAgICAgICBjaGFu
bmVsX2lkPTIsIGVuY29kaW5nPTAsCi0gICAgICAgICAgICBlbmNvZGVkX2hhbmRzaGFrZT1lbmNv
ZGVkX2hhbmRzaGFrZSkKLSAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcyhhZGRf
Y2hhbm5lbF9yZXF1ZXN0KQotCi0gICAgICAgICMgT24gcmVjZWl2aW5nIHRoaXMgJ0hlbGxvJywg
dGhlIHNlcnZlciB0cmllcyB0byBlY2hvIGJhY2sgJ0hlbGxvJywKLSAgICAgICAgIyBidXQgaXQg
d2lsbCBiZSBibG9ja2VkIHNpbmNlIHRoZXJlJ3Mgbm8gc2VuZCBxdW90YSBhdmFpbGFibGUgZm9y
IHRoZQotICAgICAgICAjIGNoYW5uZWwgMi4KLSAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1
dF9ieXRlcygKLSAgICAgICAgICAgIF9jcmVhdGVfbG9naWNhbF9mcmFtZShjaGFubmVsX2lkPTIs
IG1lc3NhZ2U9J0hlbGxvJykpCi0KLSAgICAgICAgIyBXYWl0IHVudGlsIHRoZSB3b3JrZXIgaXMg
YmxvY2tlZCBkdWUgdG8gc2VuZCBxdW90YSBzaG9ydGFnZS4KLSAgICAgICAgdGltZS5zbGVlcCgx
KQotCi0gICAgICAgICMgQ2xvc2UgdGhlIGNoYW5uZWwgMi4gVGhlIHdvcmtlciBzaG91bGQgYmUg
bm90aWZpZWQgb2YgdGhlIGVuZCBvZgotICAgICAgICAjIHdyaXRlciB0aHJlYWQgYW5kIHN0b3Ag
d2FpdGluZyBmb3Igc2VuZCBxdW90YSB0byBiZSByZXBsZW5pc2hlZC4KLSAgICAgICAgZHJvcF9j
aGFubmVsID0gX2NyZWF0ZV9kcm9wX2NoYW5uZWxfZnJhbWUoY2hhbm5lbF9pZD0yKQotCi0gICAg
ICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMoZHJvcF9jaGFubmVsKQotCi0gICAgICAg
ICMgTWFrZSBzdXJlIHRoZSBjaGFubmVsIDEgaXMgYWxzbyBjbG9zZWQuCi0gICAgICAgIGRyb3Bf
Y2hhbm5lbCA9IF9jcmVhdGVfZHJvcF9jaGFubmVsX2ZyYW1lKGNoYW5uZWxfaWQ9MSkKLSAgICAg
ICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcyhkcm9wX2NoYW5uZWwpCi0KLSAgICAgICAg
IyBBbGwgdGhyZWFkcyBzaG91bGQgYmUgZG9uZS4KLSAgICAgICAgc2VsZi5hc3NlcnRUcnVlKG11
eF9oYW5kbGVyLndhaXRfdW50aWxfZG9uZSh0aW1lb3V0PTIpKQotCi0gICAgZGVmIHRlc3RfYWRk
X2NoYW5uZWxfZGVsdGFfZW5jb2Rpbmcoc2VsZik6Ci0gICAgICAgIHJlcXVlc3QgPSBfY3JlYXRl
X21vY2tfcmVxdWVzdCgpCi0gICAgICAgIGRpc3BhdGNoZXIgPSBfTXV4TW9ja0Rpc3BhdGNoZXIo
KQotICAgICAgICBtdXhfaGFuZGxlciA9IG11eC5fTXV4SGFuZGxlcihyZXF1ZXN0LCBkaXNwYXRj
aGVyKQotICAgICAgICBtdXhfaGFuZGxlci5zdGFydCgpCi0gICAgICAgIG11eF9oYW5kbGVyLmFk
ZF9jaGFubmVsX3Nsb3RzKG11eC5fSU5JVElBTF9OVU1CRVJfT0ZfQ0hBTk5FTF9TTE9UUywKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbXV4Ll9JTklUSUFMX1FVT1RBX0ZP
Ul9DTElFTlQpCi0KLSAgICAgICAgZGVsdGEgPSAnR0VUIC9lY2hvIEhUVFAvMS4xXHJcblxyXG4n
Ci0gICAgICAgIGFkZF9jaGFubmVsX3JlcXVlc3QgPSBfY3JlYXRlX2FkZF9jaGFubmVsX3JlcXVl
c3RfZnJhbWUoCi0gICAgICAgICAgICBjaGFubmVsX2lkPTIsIGVuY29kaW5nPTEsIGVuY29kZWRf
aGFuZHNoYWtlPWRlbHRhKQotICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKGFk
ZF9jaGFubmVsX3JlcXVlc3QpCi0KLSAgICAgICAgZmxvd19jb250cm9sID0gX2NyZWF0ZV9mbG93
X2NvbnRyb2xfZnJhbWUoY2hhbm5lbF9pZD0yLAotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICByZXBsZW5pc2hlZF9xdW90YT02KQotICAgICAgICByZXF1
ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKGZsb3dfY29udHJvbCkKLQotICAgICAgICByZXF1ZXN0
LmNvbm5lY3Rpb24ucHV0X2J5dGVzKAotICAgICAgICAgICAgX2NyZWF0ZV9sb2dpY2FsX2ZyYW1l
KGNoYW5uZWxfaWQ9MiwgbWVzc2FnZT0nSGVsbG8nKSkKLSAgICAgICAgcmVxdWVzdC5jb25uZWN0
aW9uLnB1dF9ieXRlcygKLSAgICAgICAgICAgIF9jcmVhdGVfbG9naWNhbF9mcmFtZShjaGFubmVs
X2lkPTEsIG1lc3NhZ2U9J0dvb2RieWUnKSkKLSAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1
dF9ieXRlcygKLSAgICAgICAgICAgIF9jcmVhdGVfbG9naWNhbF9mcmFtZShjaGFubmVsX2lkPTIs
IG1lc3NhZ2U9J0dvb2RieWUnKSkKLQotICAgICAgICBzZWxmLmFzc2VydFRydWUobXV4X2hhbmRs
ZXIud2FpdF91bnRpbF9kb25lKHRpbWVvdXQ9MikpCi0KLSAgICAgICAgc2VsZi5hc3NlcnRFcXVh
bChbJ0hlbGxvJ10sIGRpc3BhdGNoZXIuY2hhbm5lbF9ldmVudHNbMl0ubWVzc2FnZXMpCi0gICAg
ICAgIG1lc3NhZ2VzID0gcmVxdWVzdC5jb25uZWN0aW9uLmdldF93cml0dGVuX21lc3NhZ2VzKDIp
Ci0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoMSwgbGVuKG1lc3NhZ2VzKSkKLSAgICAgICAgc2Vs
Zi5hc3NlcnRFcXVhbCgnSGVsbG8nLCBtZXNzYWdlc1swXSkKLQotICAgIGRlZiB0ZXN0X2FkZF9j
aGFubmVsX2RlbHRhX2VuY29kaW5nX292ZXJyaWRlKHNlbGYpOgotICAgICAgICByZXF1ZXN0ID0g
X2NyZWF0ZV9tb2NrX3JlcXVlc3QoKQotICAgICAgICBkaXNwYXRjaGVyID0gX011eE1vY2tEaXNw
YXRjaGVyKCkKLSAgICAgICAgbXV4X2hhbmRsZXIgPSBtdXguX011eEhhbmRsZXIocmVxdWVzdCwg
ZGlzcGF0Y2hlcikKLSAgICAgICAgbXV4X2hhbmRsZXIuc3RhcnQoKQotICAgICAgICBtdXhfaGFu
ZGxlci5hZGRfY2hhbm5lbF9zbG90cyhtdXguX0lOSVRJQUxfTlVNQkVSX09GX0NIQU5ORUxfU0xP
VFMsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG11eC5fSU5JVElBTF9R
VU9UQV9GT1JfQ0xJRU5UKQotCi0gICAgICAgICMgT3ZlcnJpZGUgU2VjLVdlYlNvY2tldC1Qcm90
b2NvbC4KLSAgICAgICAgZGVsdGEgPSAoJ0dFVCAvZWNobyBIVFRQLzEuMVxyXG4nCi0gICAgICAg
ICAgICAgICAgICdTZWMtV2ViU29ja2V0LVByb3RvY29sOiB4LWZvb1xyXG4nCi0gICAgICAgICAg
ICAgICAgICdcclxuJykKLSAgICAgICAgYWRkX2NoYW5uZWxfcmVxdWVzdCA9IF9jcmVhdGVfYWRk
X2NoYW5uZWxfcmVxdWVzdF9mcmFtZSgKLSAgICAgICAgICAgIGNoYW5uZWxfaWQ9MiwgZW5jb2Rp
bmc9MSwgZW5jb2RlZF9oYW5kc2hha2U9ZGVsdGEpCi0gICAgICAgIHJlcXVlc3QuY29ubmVjdGlv
bi5wdXRfYnl0ZXMoYWRkX2NoYW5uZWxfcmVxdWVzdCkKLQotICAgICAgICBmbG93X2NvbnRyb2wg
PSBfY3JlYXRlX2Zsb3dfY29udHJvbF9mcmFtZShjaGFubmVsX2lkPTIsCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcGxlbmlzaGVkX3F1b3RhPTYp
Ci0gICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMoZmxvd19jb250cm9sKQotCi0g
ICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMoCi0gICAgICAgICAgICBfY3JlYXRl
X2xvZ2ljYWxfZnJhbWUoY2hhbm5lbF9pZD0yLCBtZXNzYWdlPSdIZWxsbycpKQotICAgICAgICBy
ZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKAotICAgICAgICAgICAgX2NyZWF0ZV9sb2dpY2Fs
X2ZyYW1lKGNoYW5uZWxfaWQ9MSwgbWVzc2FnZT0nR29vZGJ5ZScpKQotICAgICAgICByZXF1ZXN0
LmNvbm5lY3Rpb24ucHV0X2J5dGVzKAotICAgICAgICAgICAgX2NyZWF0ZV9sb2dpY2FsX2ZyYW1l
KGNoYW5uZWxfaWQ9MiwgbWVzc2FnZT0nR29vZGJ5ZScpKQotCi0gICAgICAgIHNlbGYuYXNzZXJ0
VHJ1ZShtdXhfaGFuZGxlci53YWl0X3VudGlsX2RvbmUodGltZW91dD0yKSkKLQotICAgICAgICBz
ZWxmLmFzc2VydEVxdWFsKFsnSGVsbG8nXSwgZGlzcGF0Y2hlci5jaGFubmVsX2V2ZW50c1syXS5t
ZXNzYWdlcykKLSAgICAgICAgbWVzc2FnZXMgPSByZXF1ZXN0LmNvbm5lY3Rpb24uZ2V0X3dyaXR0
ZW5fbWVzc2FnZXMoMikKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgxLCBsZW4obWVzc2FnZXMp
KQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdIZWxsbycsIG1lc3NhZ2VzWzBdKQotICAgICAg
ICBzZWxmLmFzc2VydEVxdWFsKCd4LWZvbycsCi0gICAgICAgICAgICAgICAgICAgICAgICAgZGlz
cGF0Y2hlci5jaGFubmVsX2V2ZW50c1syXS5yZXF1ZXN0LndzX3Byb3RvY29sKQotCi0gICAgZGVm
IHRlc3RfYWRkX2NoYW5uZWxfZGVsdGFfYWZ0ZXJfaWRlbnRpdHkoc2VsZik6Ci0gICAgICAgIHJl
cXVlc3QgPSBfY3JlYXRlX21vY2tfcmVxdWVzdCgpCi0gICAgICAgIGRpc3BhdGNoZXIgPSBfTXV4
TW9ja0Rpc3BhdGNoZXIoKQotICAgICAgICBtdXhfaGFuZGxlciA9IG11eC5fTXV4SGFuZGxlcihy
ZXF1ZXN0LCBkaXNwYXRjaGVyKQotICAgICAgICBtdXhfaGFuZGxlci5zdGFydCgpCi0gICAgICAg
IG11eF9oYW5kbGVyLmFkZF9jaGFubmVsX3Nsb3RzKG11eC5fSU5JVElBTF9OVU1CRVJfT0ZfQ0hB
Tk5FTF9TTE9UUywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbXV4Ll9J
TklUSUFMX1FVT1RBX0ZPUl9DTElFTlQpCi0gICAgICAgICMgU2VjLVdlYlNvY2tldC1Qcm90b2Nv
bCBpcyBkaWZmZXJlbnQgZnJvbSBjbGllbnQncyBvcGVuaW5nIGhhbmRzaGFrZQotICAgICAgICAj
IG9mIHRoZSBwaHlzaWNhbCBjb25uZWN0aW9uLgotICAgICAgICAjIFRPRE8oYmFzaGkpOiBSZW1v
dmUgVXBncmFkZSwgQ29ubmVjdGlvbiwgU2VjLVdlYlNvY2tldC1LZXkgYW5kCi0gICAgICAgICMg
U2VjLVdlYlNvY2tldC1WZXJzaW9uLgotICAgICAgICBlbmNvZGVkX2hhbmRzaGFrZSA9ICgKLSAg
ICAgICAgICAgICdHRVQgL2VjaG8gSFRUUC8xLjFcclxuJwotICAgICAgICAgICAgJ0hvc3Q6IHNl
cnZlci5leGFtcGxlLmNvbVxyXG4nCi0gICAgICAgICAgICAnU2VjLVdlYlNvY2tldC1Qcm90b2Nv
bDogeC1mb29cclxuJwotICAgICAgICAgICAgJ0Nvbm5lY3Rpb246IFVwZ3JhZGVcclxuJwotICAg
ICAgICAgICAgJ09yaWdpbjogaHR0cDovL2V4YW1wbGUuY29tXHJcbicKLSAgICAgICAgICAgICdc
clxuJykKLSAgICAgICAgYWRkX2NoYW5uZWxfcmVxdWVzdCA9IF9jcmVhdGVfYWRkX2NoYW5uZWxf
cmVxdWVzdF9mcmFtZSgKLSAgICAgICAgICAgIGNoYW5uZWxfaWQ9MiwgZW5jb2Rpbmc9MCwKLSAg
ICAgICAgICAgIGVuY29kZWRfaGFuZHNoYWtlPWVuY29kZWRfaGFuZHNoYWtlKQotICAgICAgICBy
ZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKGFkZF9jaGFubmVsX3JlcXVlc3QpCi0KLSAgICAg
ICAgZmxvd19jb250cm9sID0gX2NyZWF0ZV9mbG93X2NvbnRyb2xfZnJhbWUoY2hhbm5lbF9pZD0y
LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXBs
ZW5pc2hlZF9xdW90YT02KQotICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKGZs
b3dfY29udHJvbCkKLQotICAgICAgICBkZWx0YSA9ICdHRVQgL2VjaG8gSFRUUC8xLjFcclxuXHJc
bicKLSAgICAgICAgYWRkX2NoYW5uZWxfcmVxdWVzdCA9IF9jcmVhdGVfYWRkX2NoYW5uZWxfcmVx
dWVzdF9mcmFtZSgKLSAgICAgICAgICAgIGNoYW5uZWxfaWQ9MywgZW5jb2Rpbmc9MSwgZW5jb2Rl
ZF9oYW5kc2hha2U9ZGVsdGEpCi0gICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMo
YWRkX2NoYW5uZWxfcmVxdWVzdCkKLQotICAgICAgICBmbG93X2NvbnRyb2wgPSBfY3JlYXRlX2Zs
b3dfY29udHJvbF9mcmFtZShjaGFubmVsX2lkPTMsCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHJlcGxlbmlzaGVkX3F1b3RhPTYpCi0gICAgICAgIHJl
cXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMoZmxvd19jb250cm9sKQotCi0gICAgICAgIHJlcXVl
c3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMoCi0gICAgICAgICAgICBfY3JlYXRlX2xvZ2ljYWxfZnJh
bWUoY2hhbm5lbF9pZD0yLCBtZXNzYWdlPSdIZWxsbycpKQotICAgICAgICByZXF1ZXN0LmNvbm5l
Y3Rpb24ucHV0X2J5dGVzKAotICAgICAgICAgICAgX2NyZWF0ZV9sb2dpY2FsX2ZyYW1lKGNoYW5u
ZWxfaWQ9MywgbWVzc2FnZT0nV29ybGQnKSkKLSAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1
dF9ieXRlcygKLSAgICAgICAgICAgIF9jcmVhdGVfbG9naWNhbF9mcmFtZShjaGFubmVsX2lkPTEs
IG1lc3NhZ2U9J0dvb2RieWUnKSkKLSAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRl
cygKLSAgICAgICAgICAgIF9jcmVhdGVfbG9naWNhbF9mcmFtZShjaGFubmVsX2lkPTIsIG1lc3Nh
Z2U9J0dvb2RieWUnKSkKLSAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcygKLSAg
ICAgICAgICAgIF9jcmVhdGVfbG9naWNhbF9mcmFtZShjaGFubmVsX2lkPTMsIG1lc3NhZ2U9J0dv
b2RieWUnKSkKLQotICAgICAgICBzZWxmLmFzc2VydFRydWUobXV4X2hhbmRsZXIud2FpdF91bnRp
bF9kb25lKHRpbWVvdXQ9MikpCi0KLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChbXSwgZGlzcGF0
Y2hlci5jaGFubmVsX2V2ZW50c1sxXS5tZXNzYWdlcykKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVh
bChbJ0hlbGxvJ10sIGRpc3BhdGNoZXIuY2hhbm5lbF9ldmVudHNbMl0ubWVzc2FnZXMpCi0gICAg
ICAgIHNlbGYuYXNzZXJ0RXF1YWwoWydXb3JsZCddLCBkaXNwYXRjaGVyLmNoYW5uZWxfZXZlbnRz
WzNdLm1lc3NhZ2VzKQotICAgICAgICAjIENoYW5uZWwgMgotICAgICAgICBtZXNzYWdlcyA9IHJl
cXVlc3QuY29ubmVjdGlvbi5nZXRfd3JpdHRlbl9tZXNzYWdlcygyKQotICAgICAgICBzZWxmLmFz
c2VydEVxdWFsKDEsIGxlbihtZXNzYWdlcykpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ0hl
bGxvJywgbWVzc2FnZXNbMF0pCi0gICAgICAgICMgQ2hhbm5lbCAzCi0gICAgICAgIG1lc3NhZ2Vz
ID0gcmVxdWVzdC5jb25uZWN0aW9uLmdldF93cml0dGVuX21lc3NhZ2VzKDMpCi0gICAgICAgIHNl
bGYuYXNzZXJ0RXF1YWwoMSwgbGVuKG1lc3NhZ2VzKSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVh
bCgnV29ybGQnLCBtZXNzYWdlc1swXSkKLSAgICAgICAgIyBIYW5kc2hha2UgYmFzZSBzaG91bGQg
YmUgdXBkYXRlZC4KLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgKLSAgICAgICAgICAgICd4LWZv
bycsCi0gICAgICAgICAgICBtdXhfaGFuZGxlci5faGFuZHNoYWtlX2Jhc2UuX2hlYWRlcnNbJ1Nl
Yy1XZWJTb2NrZXQtUHJvdG9jb2wnXSkKLQotICAgIGRlZiB0ZXN0X2FkZF9jaGFubmVsX2RlbHRh
X3JlbW92ZV9oZWFkZXIoc2VsZik6Ci0gICAgICAgIHJlcXVlc3QgPSBfY3JlYXRlX21vY2tfcmVx
dWVzdCgpCi0gICAgICAgIGRpc3BhdGNoZXIgPSBfTXV4TW9ja0Rpc3BhdGNoZXIoKQotICAgICAg
ICBtdXhfaGFuZGxlciA9IG11eC5fTXV4SGFuZGxlcihyZXF1ZXN0LCBkaXNwYXRjaGVyKQotICAg
ICAgICBtdXhfaGFuZGxlci5zdGFydCgpCi0gICAgICAgIG11eF9oYW5kbGVyLmFkZF9jaGFubmVs
X3Nsb3RzKG11eC5fSU5JVElBTF9OVU1CRVJfT0ZfQ0hBTk5FTF9TTE9UUywKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgbXV4Ll9JTklUSUFMX1FVT1RBX0ZPUl9DTElFTlQp
Ci0gICAgICAgICMgT3ZlcnJpZGUgaGFuZHNoYWtlIGRlbHRhIGJhc2UuCi0gICAgICAgIGVuY29k
ZWRfaGFuZHNoYWtlID0gKAotICAgICAgICAgICAgJ0dFVCAvZWNobyBIVFRQLzEuMVxyXG4nCi0g
ICAgICAgICAgICAnSG9zdDogc2VydmVyLmV4YW1wbGUuY29tXHJcbicKLSAgICAgICAgICAgICdT
ZWMtV2ViU29ja2V0LVByb3RvY29sOiB4LWZvb1xyXG4nCi0gICAgICAgICAgICAnQ29ubmVjdGlv
bjogVXBncmFkZVxyXG4nCi0gICAgICAgICAgICAnT3JpZ2luOiBodHRwOi8vZXhhbXBsZS5jb21c
clxuJwotICAgICAgICAgICAgJ1xyXG4nKQotICAgICAgICBhZGRfY2hhbm5lbF9yZXF1ZXN0ID0g
X2NyZWF0ZV9hZGRfY2hhbm5lbF9yZXF1ZXN0X2ZyYW1lKAotICAgICAgICAgICAgY2hhbm5lbF9p
ZD0yLCBlbmNvZGluZz0wLAotICAgICAgICAgICAgZW5jb2RlZF9oYW5kc2hha2U9ZW5jb2RlZF9o
YW5kc2hha2UpCi0gICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMoYWRkX2NoYW5u
ZWxfcmVxdWVzdCkKLQotICAgICAgICBmbG93X2NvbnRyb2wgPSBfY3JlYXRlX2Zsb3dfY29udHJv
bF9mcmFtZShjaGFubmVsX2lkPTIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHJlcGxlbmlzaGVkX3F1b3RhPTYpCi0gICAgICAgIHJlcXVlc3QuY29u
bmVjdGlvbi5wdXRfYnl0ZXMoZmxvd19jb250cm9sKQotCi0gICAgICAgICMgUmVtb3ZlIFNlYy1X
ZWJTb2NrZXQtUHJvdG9jb2wgaGVhZGVyLgotICAgICAgICBkZWx0YSA9ICgnR0VUIC9lY2hvIEhU
VFAvMS4xXHJcbicKLSAgICAgICAgICAgICAgICAgJ1NlYy1XZWJTb2NrZXQtUHJvdG9jb2w6Jwot
ICAgICAgICAgICAgICAgICAnXHJcbicpCi0gICAgICAgIGFkZF9jaGFubmVsX3JlcXVlc3QgPSBf
Y3JlYXRlX2FkZF9jaGFubmVsX3JlcXVlc3RfZnJhbWUoCi0gICAgICAgICAgICBjaGFubmVsX2lk
PTMsIGVuY29kaW5nPTEsIGVuY29kZWRfaGFuZHNoYWtlPWRlbHRhKQotICAgICAgICByZXF1ZXN0
LmNvbm5lY3Rpb24ucHV0X2J5dGVzKGFkZF9jaGFubmVsX3JlcXVlc3QpCi0KLSAgICAgICAgZmxv
d19jb250cm9sID0gX2NyZWF0ZV9mbG93X2NvbnRyb2xfZnJhbWUoY2hhbm5lbF9pZD0zLAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXBsZW5pc2hl
ZF9xdW90YT02KQotICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKGZsb3dfY29u
dHJvbCkKLQotICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKAotICAgICAgICAg
ICAgX2NyZWF0ZV9sb2dpY2FsX2ZyYW1lKGNoYW5uZWxfaWQ9MiwgbWVzc2FnZT0nSGVsbG8nKSkK
LSAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcygKLSAgICAgICAgICAgIF9jcmVh
dGVfbG9naWNhbF9mcmFtZShjaGFubmVsX2lkPTMsIG1lc3NhZ2U9J1dvcmxkJykpCi0gICAgICAg
IHJlcXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMoCi0gICAgICAgICAgICBfY3JlYXRlX2xvZ2lj
YWxfZnJhbWUoY2hhbm5lbF9pZD0xLCBtZXNzYWdlPSdHb29kYnllJykpCi0gICAgICAgIHJlcXVl
c3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMoCi0gICAgICAgICAgICBfY3JlYXRlX2xvZ2ljYWxfZnJh
bWUoY2hhbm5lbF9pZD0yLCBtZXNzYWdlPSdHb29kYnllJykpCi0gICAgICAgIHJlcXVlc3QuY29u
bmVjdGlvbi5wdXRfYnl0ZXMoCi0gICAgICAgICAgICBfY3JlYXRlX2xvZ2ljYWxfZnJhbWUoY2hh
bm5lbF9pZD0zLCBtZXNzYWdlPSdHb29kYnllJykpCi0KLSAgICAgICAgc2VsZi5hc3NlcnRUcnVl
KG11eF9oYW5kbGVyLndhaXRfdW50aWxfZG9uZSh0aW1lb3V0PTIpKQotCi0gICAgICAgIHNlbGYu
YXNzZXJ0RXF1YWwoW10sIGRpc3BhdGNoZXIuY2hhbm5lbF9ldmVudHNbMV0ubWVzc2FnZXMpCi0g
ICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoWydIZWxsbyddLCBkaXNwYXRjaGVyLmNoYW5uZWxfZXZl
bnRzWzJdLm1lc3NhZ2VzKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKFsnV29ybGQnXSwgZGlz
cGF0Y2hlci5jaGFubmVsX2V2ZW50c1szXS5tZXNzYWdlcykKLSAgICAgICAgIyBDaGFubmVsIDIK
LSAgICAgICAgbWVzc2FnZXMgPSByZXF1ZXN0LmNvbm5lY3Rpb24uZ2V0X3dyaXR0ZW5fbWVzc2Fn
ZXMoMikKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgxLCBsZW4obWVzc2FnZXMpKQotICAgICAg
ICBzZWxmLmFzc2VydEVxdWFsKCdIZWxsbycsIG1lc3NhZ2VzWzBdKQotICAgICAgICAjIENoYW5u
ZWwgMwotICAgICAgICBtZXNzYWdlcyA9IHJlcXVlc3QuY29ubmVjdGlvbi5nZXRfd3JpdHRlbl9t
ZXNzYWdlcygzKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKDEsIGxlbihtZXNzYWdlcykpCi0g
ICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ1dvcmxkJywgbWVzc2FnZXNbMF0pCi0gICAgICAgIHNl
bGYuYXNzZXJ0RXF1YWwoCi0gICAgICAgICAgICAneC1mb28nLAotICAgICAgICAgICAgZGlzcGF0
Y2hlci5jaGFubmVsX2V2ZW50c1syXS5yZXF1ZXN0LndzX3Byb3RvY29sKQotICAgICAgICBzZWxm
LmFzc2VydEVxdWFsKAotICAgICAgICAgICAgTm9uZSwKLSAgICAgICAgICAgIGRpc3BhdGNoZXIu
Y2hhbm5lbF9ldmVudHNbM10ucmVxdWVzdC53c19wcm90b2NvbCkKLQotICAgIGRlZiB0ZXN0X2Fk
ZF9jaGFubmVsX2RlbHRhX2VuY29kaW5nX3Blcm1lc3NhZ2VfY29tcHJlc3Moc2VsZik6Ci0gICAg
ICAgICMgRW5hYmxlIHBlcm1lc3NhZ2UgY29tcHJlc3MgZXh0ZW5zaW9uIG9uIHRoZSBpbXBsaWNp
dGx5IG9wZW5lZCBjaGFubmVsLgotICAgICAgICBleHRlbnNpb25zID0gY29tbW9uLnBhcnNlX2V4
dGVuc2lvbnMoCi0gICAgICAgICAgICAnJXM7IG1ldGhvZD1kZWZsYXRlJyAlIGNvbW1vbi5QRVJN
RVNTQUdFX0NPTVBSRVNTSU9OX0VYVEVOU0lPTikKLSAgICAgICAgcmVxdWVzdCA9IF9jcmVhdGVf
bW9ja19yZXF1ZXN0KAotICAgICAgICAgICAgbG9naWNhbF9jaGFubmVsX2V4dGVuc2lvbnM9ZXh0
ZW5zaW9ucykKLSAgICAgICAgZGlzcGF0Y2hlciA9IF9NdXhNb2NrRGlzcGF0Y2hlcigpCi0gICAg
ICAgIG11eF9oYW5kbGVyID0gbXV4Ll9NdXhIYW5kbGVyKHJlcXVlc3QsIGRpc3BhdGNoZXIpCi0g
ICAgICAgIG11eF9oYW5kbGVyLnN0YXJ0KCkKLSAgICAgICAgbXV4X2hhbmRsZXIuYWRkX2NoYW5u
ZWxfc2xvdHMobXV4Ll9JTklUSUFMX05VTUJFUl9PRl9DSEFOTkVMX1NMT1RTLAotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtdXguX0lOSVRJQUxfUVVPVEFfRk9SX0NMSUVO
VCkKLQotICAgICAgICBkZWx0YSA9ICdHRVQgL2VjaG8gSFRUUC8xLjFcclxuXHJcbicKLSAgICAg
ICAgYWRkX2NoYW5uZWxfcmVxdWVzdCA9IF9jcmVhdGVfYWRkX2NoYW5uZWxfcmVxdWVzdF9mcmFt
ZSgKLSAgICAgICAgICAgIGNoYW5uZWxfaWQ9MiwgZW5jb2Rpbmc9MSwgZW5jb2RlZF9oYW5kc2hh
a2U9ZGVsdGEpCi0gICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMoYWRkX2NoYW5u
ZWxfcmVxdWVzdCkKLQotICAgICAgICBmbG93X2NvbnRyb2wgPSBfY3JlYXRlX2Zsb3dfY29udHJv
bF9mcmFtZShjaGFubmVsX2lkPTIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHJlcGxlbmlzaGVkX3F1b3RhPTIwKQotICAgICAgICByZXF1ZXN0LmNv
bm5lY3Rpb24ucHV0X2J5dGVzKGZsb3dfY29udHJvbCkKLQotICAgICAgICAjIFNlbmQgY29tcHJl
c3NlZCAnSGVsbG8nIG9uIGxvZ2ljYWwgY2hhbm5lbCAxIGFuZCAyLgotICAgICAgICBjb21wcmVz
cyA9IHpsaWIuY29tcHJlc3NvYmooCi0gICAgICAgICAgICB6bGliLlpfREVGQVVMVF9DT01QUkVT
U0lPTiwgemxpYi5ERUZMQVRFRCwgLXpsaWIuTUFYX1dCSVRTKQotICAgICAgICBjb21wcmVzc2Vk
X2hlbGxvID0gY29tcHJlc3MuY29tcHJlc3MoJ0hlbGxvJykKLSAgICAgICAgY29tcHJlc3NlZF9o
ZWxsbyArPSBjb21wcmVzcy5mbHVzaCh6bGliLlpfU1lOQ19GTFVTSCkKLSAgICAgICAgY29tcHJl
c3NlZF9oZWxsbyA9IGNvbXByZXNzZWRfaGVsbG9bOi00XQotCi0gICAgICAgIHJlcXVlc3QuY29u
bmVjdGlvbi5wdXRfYnl0ZXMoCi0gICAgICAgICAgICBfY3JlYXRlX2xvZ2ljYWxfZnJhbWUoY2hh
bm5lbF9pZD0xLCBtZXNzYWdlPWNvbXByZXNzZWRfaGVsbG8sCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgcnN2MT1UcnVlKSkKLSAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1
dF9ieXRlcygKLSAgICAgICAgICAgIF9jcmVhdGVfbG9naWNhbF9mcmFtZShjaGFubmVsX2lkPTIs
IG1lc3NhZ2U9Y29tcHJlc3NlZF9oZWxsbywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICByc3YxPVRydWUpKQotCi0gICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMo
Ci0gICAgICAgICAgICBfY3JlYXRlX2xvZ2ljYWxfZnJhbWUoY2hhbm5lbF9pZD0xLCBtZXNzYWdl
PSdHb29kYnllJykpCi0gICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMoCi0gICAg
ICAgICAgICBfY3JlYXRlX2xvZ2ljYWxfZnJhbWUoY2hhbm5lbF9pZD0yLCBtZXNzYWdlPSdHb29k
YnllJykpCi0KLSAgICAgICAgc2VsZi5hc3NlcnRUcnVlKG11eF9oYW5kbGVyLndhaXRfdW50aWxf
ZG9uZSh0aW1lb3V0PTIpKQotCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoWydIZWxsbyddLCBk
aXNwYXRjaGVyLmNoYW5uZWxfZXZlbnRzWzFdLm1lc3NhZ2VzKQotICAgICAgICBzZWxmLmFzc2Vy
dEVxdWFsKFsnSGVsbG8nXSwgZGlzcGF0Y2hlci5jaGFubmVsX2V2ZW50c1syXS5tZXNzYWdlcykK
LSAgICAgICAgIyBXcml0dGVuICdIZWxsbydzIHNob3VsZCBiZSBjb21wcmVzc2VkLgotICAgICAg
ICBtZXNzYWdlcyA9IHJlcXVlc3QuY29ubmVjdGlvbi5nZXRfd3JpdHRlbl9tZXNzYWdlcygxKQot
ICAgICAgICBzZWxmLmFzc2VydEVxdWFsKDEsIGxlbihtZXNzYWdlcykpCi0gICAgICAgIHNlbGYu
YXNzZXJ0RXF1YWwoY29tcHJlc3NlZF9oZWxsbywgbWVzc2FnZXNbMF0pCi0gICAgICAgIG1lc3Nh
Z2VzID0gcmVxdWVzdC5jb25uZWN0aW9uLmdldF93cml0dGVuX21lc3NhZ2VzKDIpCi0gICAgICAg
IHNlbGYuYXNzZXJ0RXF1YWwoMSwgbGVuKG1lc3NhZ2VzKSkKLSAgICAgICAgc2VsZi5hc3NlcnRF
cXVhbChjb21wcmVzc2VkX2hlbGxvLCBtZXNzYWdlc1swXSkKLQotICAgIGRlZiB0ZXN0X2FkZF9j
aGFubmVsX2RlbHRhX2VuY29kaW5nX3JlbW92ZV9leHRlbnNpb25zKHNlbGYpOgotICAgICAgICAj
IEVuYWJsZSBwZXJtZXNzYWdlIGNvbXByZXNzIGV4dGVuc2lvbiBvbiB0aGUgaW1wbGljaXRseSBv
cGVuZWQgY2hhbm5lbC4KLSAgICAgICAgZXh0ZW5zaW9ucyA9IGNvbW1vbi5wYXJzZV9leHRlbnNp
b25zKAotICAgICAgICAgICAgJyVzOyBtZXRob2Q9ZGVmbGF0ZScgJSBjb21tb24uUEVSTUVTU0FH
RV9DT01QUkVTU0lPTl9FWFRFTlNJT04pCi0gICAgICAgIHJlcXVlc3QgPSBfY3JlYXRlX21vY2tf
cmVxdWVzdCgKLSAgICAgICAgICAgIGxvZ2ljYWxfY2hhbm5lbF9leHRlbnNpb25zPWV4dGVuc2lv
bnMpCi0gICAgICAgIGRpc3BhdGNoZXIgPSBfTXV4TW9ja0Rpc3BhdGNoZXIoKQotICAgICAgICBt
dXhfaGFuZGxlciA9IG11eC5fTXV4SGFuZGxlcihyZXF1ZXN0LCBkaXNwYXRjaGVyKQotICAgICAg
ICBtdXhfaGFuZGxlci5zdGFydCgpCi0gICAgICAgIG11eF9oYW5kbGVyLmFkZF9jaGFubmVsX3Ns
b3RzKG11eC5fSU5JVElBTF9OVU1CRVJfT0ZfQ0hBTk5FTF9TTE9UUywKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgbXV4Ll9JTklUSUFMX1FVT1RBX0ZPUl9DTElFTlQpCi0K
LSAgICAgICAgIyBSZW1vdmUgcGVybWVzc2FnZSBjb21wcmVzcyBleHRlbnNpb24uCi0gICAgICAg
IGRlbHRhID0gKCdHRVQgL2VjaG8gSFRUUC8xLjFcclxuJwotICAgICAgICAgICAgICAgICAnU2Vj
LVdlYlNvY2tldC1FeHRlbnNpb25zOlxyXG4nCi0gICAgICAgICAgICAgICAgICdcclxuJykKLSAg
ICAgICAgYWRkX2NoYW5uZWxfcmVxdWVzdCA9IF9jcmVhdGVfYWRkX2NoYW5uZWxfcmVxdWVzdF9m
cmFtZSgKLSAgICAgICAgICAgIGNoYW5uZWxfaWQ9MiwgZW5jb2Rpbmc9MSwgZW5jb2RlZF9oYW5k
c2hha2U9ZGVsdGEpCi0gICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMoYWRkX2No
YW5uZWxfcmVxdWVzdCkKLQotICAgICAgICBmbG93X2NvbnRyb2wgPSBfY3JlYXRlX2Zsb3dfY29u
dHJvbF9mcmFtZShjaGFubmVsX2lkPTIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHJlcGxlbmlzaGVkX3F1b3RhPTIwKQotICAgICAgICByZXF1ZXN0
LmNvbm5lY3Rpb24ucHV0X2J5dGVzKGZsb3dfY29udHJvbCkKLQotICAgICAgICAjIFNlbmQgY29t
cHJlc3NlZCBtZXNzYWdlIG9uIGxvZ2ljYWwgY2hhbm5lbCAyLiBUaGUgbWVzc2FnZSBzaG91bGQK
LSAgICAgICAgIyBiZSByZWplY3RlZCAoc2luY2UgcnN2MSBpcyBzZXQpLgotICAgICAgICBjb21w
cmVzcyA9IHpsaWIuY29tcHJlc3NvYmooCi0gICAgICAgICAgICB6bGliLlpfREVGQVVMVF9DT01Q
UkVTU0lPTiwgemxpYi5ERUZMQVRFRCwgLXpsaWIuTUFYX1dCSVRTKQotICAgICAgICBjb21wcmVz
c2VkX2hlbGxvID0gY29tcHJlc3MuY29tcHJlc3MoJ0hlbGxvJykKLSAgICAgICAgY29tcHJlc3Nl
ZF9oZWxsbyArPSBjb21wcmVzcy5mbHVzaCh6bGliLlpfU1lOQ19GTFVTSCkKLSAgICAgICAgY29t
cHJlc3NlZF9oZWxsbyA9IGNvbXByZXNzZWRfaGVsbG9bOi00XQotICAgICAgICByZXF1ZXN0LmNv
bm5lY3Rpb24ucHV0X2J5dGVzKAotICAgICAgICAgICAgX2NyZWF0ZV9sb2dpY2FsX2ZyYW1lKGNo
YW5uZWxfaWQ9MiwgbWVzc2FnZT1jb21wcmVzc2VkX2hlbGxvLAotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHJzdjE9VHJ1ZSkpCi0KLSAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9u
LnB1dF9ieXRlcygKLSAgICAgICAgICAgIF9jcmVhdGVfbG9naWNhbF9mcmFtZShjaGFubmVsX2lk
PTEsIG1lc3NhZ2U9J0dvb2RieWUnKSkKLQotICAgICAgICBzZWxmLmFzc2VydFRydWUobXV4X2hh
bmRsZXIud2FpdF91bnRpbF9kb25lKHRpbWVvdXQ9MikpCi0KLSAgICAgICAgZHJvcF9jaGFubmVs
ID0gbmV4dCgKLSAgICAgICAgICAgIGIgZm9yIGIgaW4gcmVxdWVzdC5jb25uZWN0aW9uLmdldF93
cml0dGVuX2NvbnRyb2xfYmxvY2tzKCkKLSAgICAgICAgICAgIGlmIGIub3Bjb2RlID09IG11eC5f
TVVYX09QQ09ERV9EUk9QX0NIQU5ORUwpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobXV4Ll9E
Uk9QX0NPREVfTk9STUFMX0NMT1NVUkUsIGRyb3BfY2hhbm5lbC5kcm9wX2NvZGUpCi0gICAgICAg
IHNlbGYuYXNzZXJ0RXF1YWwoMiwgZHJvcF9jaGFubmVsLmNoYW5uZWxfaWQpCi0gICAgICAgICMg
VW5zdXBwb3J0ZWRGcmFtZUV4Y2VwdGlvbiBzaG91bGQgYmUgcmFpc2VkIG9uIGxvZ2ljYWwgY2hh
bm5lbCAyLgotICAgICAgICBzZWxmLmFzc2VydFRydWUoaXNpbnN0YW5jZShkaXNwYXRjaGVyLmNo
YW5uZWxfZXZlbnRzWzJdLmV4Y2VwdGlvbiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgVW5zdXBwb3J0ZWRGcmFtZUV4Y2VwdGlvbikpCi0KLSAgICBkZWYgdGVzdF9hZGRfY2hh
bm5lbF9pbnZhbGlkX2VuY29kaW5nKHNlbGYpOgotICAgICAgICByZXF1ZXN0ID0gX2NyZWF0ZV9t
b2NrX3JlcXVlc3QoKQotICAgICAgICBkaXNwYXRjaGVyID0gX011eE1vY2tEaXNwYXRjaGVyKCkK
LSAgICAgICAgbXV4X2hhbmRsZXIgPSBtdXguX011eEhhbmRsZXIocmVxdWVzdCwgZGlzcGF0Y2hl
cikKLSAgICAgICAgbXV4X2hhbmRsZXIuc3RhcnQoKQotICAgICAgICBtdXhfaGFuZGxlci5hZGRf
Y2hhbm5lbF9zbG90cyhtdXguX0lOSVRJQUxfTlVNQkVSX09GX0NIQU5ORUxfU0xPVFMsCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG11eC5fSU5JVElBTF9RVU9UQV9GT1Jf
Q0xJRU5UKQotCi0gICAgICAgIGVuY29kZWRfaGFuZHNoYWtlID0gX2NyZWF0ZV9yZXF1ZXN0X2hl
YWRlcihwYXRoPScvZWNobycpCi0gICAgICAgIGFkZF9jaGFubmVsX3JlcXVlc3QgPSBfY3JlYXRl
X2FkZF9jaGFubmVsX3JlcXVlc3RfZnJhbWUoCi0gICAgICAgICAgICBjaGFubmVsX2lkPTIsIGVu
Y29kaW5nPTMsCi0gICAgICAgICAgICBlbmNvZGVkX2hhbmRzaGFrZT1lbmNvZGVkX2hhbmRzaGFr
ZSkKLSAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcyhhZGRfY2hhbm5lbF9yZXF1
ZXN0KQotCi0gICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShtdXhfaGFuZGxlci53YWl0X3VudGlsX2Rv
bmUodGltZW91dD0yKSkKLQotICAgICAgICBkcm9wX2NoYW5uZWwgPSBuZXh0KAotICAgICAgICAg
ICAgYiBmb3IgYiBpbiByZXF1ZXN0LmNvbm5lY3Rpb24uZ2V0X3dyaXR0ZW5fY29udHJvbF9ibG9j
a3MoKQotICAgICAgICAgICAgaWYgYi5vcGNvZGUgPT0gbXV4Ll9NVVhfT1BDT0RFX0RST1BfQ0hB
Tk5FTCkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChtdXguX0RST1BfQ09ERV9VTktOT1dOX1JF
UVVFU1RfRU5DT0RJTkcsCi0gICAgICAgICAgICAgICAgICAgICAgICAgZHJvcF9jaGFubmVsLmRy
b3BfY29kZSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjb21tb24uU1RBVFVTX0lOVEVSTkFM
X0VORFBPSU5UX0VSUk9SLAotICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3QuY29ubmVj
dGlvbi5zZXJ2ZXJfY2xvc2VfY29kZSkKLQotICAgIGRlZiB0ZXN0X2FkZF9jaGFubmVsX2luY29t
cGxldGVfaGFuZHNoYWtlKHNlbGYpOgotICAgICAgICByZXF1ZXN0ID0gX2NyZWF0ZV9tb2NrX3Jl
cXVlc3QoKQotICAgICAgICBkaXNwYXRjaGVyID0gX011eE1vY2tEaXNwYXRjaGVyKCkKLSAgICAg
ICAgbXV4X2hhbmRsZXIgPSBtdXguX011eEhhbmRsZXIocmVxdWVzdCwgZGlzcGF0Y2hlcikKLSAg
ICAgICAgbXV4X2hhbmRsZXIuc3RhcnQoKQotICAgICAgICBtdXhfaGFuZGxlci5hZGRfY2hhbm5l
bF9zbG90cyhtdXguX0lOSVRJQUxfTlVNQkVSX09GX0NIQU5ORUxfU0xPVFMsCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIG11eC5fSU5JVElBTF9RVU9UQV9GT1JfQ0xJRU5U
KQotCi0gICAgICAgIGluY29tcGxldGVfZW5jb2RlZF9oYW5kc2hha2UgPSAnR0VUIC9lY2hvIEhU
VFAvMS4xJwotICAgICAgICBhZGRfY2hhbm5lbF9yZXF1ZXN0ID0gX2NyZWF0ZV9hZGRfY2hhbm5l
bF9yZXF1ZXN0X2ZyYW1lKAotICAgICAgICAgICAgY2hhbm5lbF9pZD0yLCBlbmNvZGluZz0wLAot
ICAgICAgICAgICAgZW5jb2RlZF9oYW5kc2hha2U9aW5jb21wbGV0ZV9lbmNvZGVkX2hhbmRzaGFr
ZSkKLSAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcyhhZGRfY2hhbm5lbF9yZXF1
ZXN0KQotCi0gICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMoCi0gICAgICAgICAg
ICBfY3JlYXRlX2xvZ2ljYWxfZnJhbWUoY2hhbm5lbF9pZD0xLCBtZXNzYWdlPSdHb29kYnllJykp
Ci0KLSAgICAgICAgc2VsZi5hc3NlcnRUcnVlKG11eF9oYW5kbGVyLndhaXRfdW50aWxfZG9uZSh0
aW1lb3V0PTIpKQotCi0gICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZSgxIGluIGRpc3BhdGNoZXIuY2hh
bm5lbF9ldmVudHMpCi0gICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShub3QgMiBpbiBkaXNwYXRjaGVy
LmNoYW5uZWxfZXZlbnRzKQotCi0gICAgZGVmIHRlc3RfYWRkX2NoYW5uZWxfZHVwbGljYXRlX2No
YW5uZWxfaWQoc2VsZik6Ci0gICAgICAgIHJlcXVlc3QgPSBfY3JlYXRlX21vY2tfcmVxdWVzdCgp
Ci0gICAgICAgIGRpc3BhdGNoZXIgPSBfTXV4TW9ja0Rpc3BhdGNoZXIoKQotICAgICAgICBtdXhf
aGFuZGxlciA9IG11eC5fTXV4SGFuZGxlcihyZXF1ZXN0LCBkaXNwYXRjaGVyKQotICAgICAgICBt
dXhfaGFuZGxlci5zdGFydCgpCi0gICAgICAgIG11eF9oYW5kbGVyLmFkZF9jaGFubmVsX3Nsb3Rz
KG11eC5fSU5JVElBTF9OVU1CRVJfT0ZfQ0hBTk5FTF9TTE9UUywKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgbXV4Ll9JTklUSUFMX1FVT1RBX0ZPUl9DTElFTlQpCi0KLSAg
ICAgICAgZW5jb2RlZF9oYW5kc2hha2UgPSBfY3JlYXRlX3JlcXVlc3RfaGVhZGVyKHBhdGg9Jy9l
Y2hvJykKLSAgICAgICAgYWRkX2NoYW5uZWxfcmVxdWVzdCA9IF9jcmVhdGVfYWRkX2NoYW5uZWxf
cmVxdWVzdF9mcmFtZSgKLSAgICAgICAgICAgIGNoYW5uZWxfaWQ9MiwgZW5jb2Rpbmc9MCwKLSAg
ICAgICAgICAgIGVuY29kZWRfaGFuZHNoYWtlPWVuY29kZWRfaGFuZHNoYWtlKQotICAgICAgICBy
ZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKGFkZF9jaGFubmVsX3JlcXVlc3QpCi0KLSAgICAg
ICAgZW5jb2RlZF9oYW5kc2hha2UgPSBfY3JlYXRlX3JlcXVlc3RfaGVhZGVyKHBhdGg9Jy9lY2hv
JykKLSAgICAgICAgYWRkX2NoYW5uZWxfcmVxdWVzdCA9IF9jcmVhdGVfYWRkX2NoYW5uZWxfcmVx
dWVzdF9mcmFtZSgKLSAgICAgICAgICAgIGNoYW5uZWxfaWQ9MiwgZW5jb2Rpbmc9MCwKLSAgICAg
ICAgICAgIGVuY29kZWRfaGFuZHNoYWtlPWVuY29kZWRfaGFuZHNoYWtlKQotICAgICAgICByZXF1
ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKGFkZF9jaGFubmVsX3JlcXVlc3QpCi0KLSAgICAgICAg
c2VsZi5hc3NlcnRUcnVlKG11eF9oYW5kbGVyLndhaXRfdW50aWxfZG9uZSh0aW1lb3V0PTIpKQot
Ci0gICAgICAgIGRyb3BfY2hhbm5lbCA9IG5leHQoCi0gICAgICAgICAgICBiIGZvciBiIGluIHJl
cXVlc3QuY29ubmVjdGlvbi5nZXRfd3JpdHRlbl9jb250cm9sX2Jsb2NrcygpCi0gICAgICAgICAg
ICBpZiBiLm9wY29kZSA9PSBtdXguX01VWF9PUENPREVfRFJPUF9DSEFOTkVMKQotICAgICAgICBz
ZWxmLmFzc2VydEVxdWFsKG11eC5fRFJPUF9DT0RFX0NIQU5ORUxfQUxSRUFEWV9FWElTVFMsCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgZHJvcF9jaGFubmVsLmRyb3BfY29kZSkKLSAgICAgICAg
c2VsZi5hc3NlcnRFcXVhbChjb21tb24uU1RBVFVTX0lOVEVSTkFMX0VORFBPSU5UX0VSUk9SLAot
ICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5zZXJ2ZXJfY2xvc2Vf
Y29kZSkKLQotICAgIGRlZiB0ZXN0X3JlY2VpdmVfZHJvcF9jaGFubmVsKHNlbGYpOgotICAgICAg
ICByZXF1ZXN0ID0gX2NyZWF0ZV9tb2NrX3JlcXVlc3QoKQotICAgICAgICBkaXNwYXRjaGVyID0g
X011eE1vY2tEaXNwYXRjaGVyKCkKLSAgICAgICAgbXV4X2hhbmRsZXIgPSBtdXguX011eEhhbmRs
ZXIocmVxdWVzdCwgZGlzcGF0Y2hlcikKLSAgICAgICAgbXV4X2hhbmRsZXIuc3RhcnQoKQotICAg
ICAgICBtdXhfaGFuZGxlci5hZGRfY2hhbm5lbF9zbG90cyhtdXguX0lOSVRJQUxfTlVNQkVSX09G
X0NIQU5ORUxfU0xPVFMsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG11
eC5fSU5JVElBTF9RVU9UQV9GT1JfQ0xJRU5UKQotCi0gICAgICAgIGVuY29kZWRfaGFuZHNoYWtl
ID0gX2NyZWF0ZV9yZXF1ZXN0X2hlYWRlcihwYXRoPScvZWNobycpCi0gICAgICAgIGFkZF9jaGFu
bmVsX3JlcXVlc3QgPSBfY3JlYXRlX2FkZF9jaGFubmVsX3JlcXVlc3RfZnJhbWUoCi0gICAgICAg
ICAgICBjaGFubmVsX2lkPTIsIGVuY29kaW5nPTAsCi0gICAgICAgICAgICBlbmNvZGVkX2hhbmRz
aGFrZT1lbmNvZGVkX2hhbmRzaGFrZSkKLSAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9i
eXRlcyhhZGRfY2hhbm5lbF9yZXF1ZXN0KQotCi0gICAgICAgIGRyb3BfY2hhbm5lbCA9IF9jcmVh
dGVfZHJvcF9jaGFubmVsX2ZyYW1lKGNoYW5uZWxfaWQ9MikKLSAgICAgICAgcmVxdWVzdC5jb25u
ZWN0aW9uLnB1dF9ieXRlcyhkcm9wX2NoYW5uZWwpCi0KLSAgICAgICAgIyBUZXJtaW5hdGUgaW1w
bGljaXRseSBvcGVuZWQgY2hhbm5lbC4KLSAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9i
eXRlcygKLSAgICAgICAgICAgIF9jcmVhdGVfbG9naWNhbF9mcmFtZShjaGFubmVsX2lkPTEsIG1l
c3NhZ2U9J0dvb2RieWUnKSkKLQotICAgICAgICBzZWxmLmFzc2VydFRydWUobXV4X2hhbmRsZXIu
d2FpdF91bnRpbF9kb25lKHRpbWVvdXQ9MikpCi0KLSAgICAgICAgZXhjZXB0aW9uID0gZGlzcGF0
Y2hlci5jaGFubmVsX2V2ZW50c1syXS5leGNlcHRpb24KLSAgICAgICAgc2VsZi5hc3NlcnRUcnVl
KGV4Y2VwdGlvbi5fX2NsYXNzX18gPT0gQ29ubmVjdGlvblRlcm1pbmF0ZWRFeGNlcHRpb24pCi0K
LSAgICBkZWYgdGVzdF9yZWNlaXZlX3BpbmdfZnJhbWUoc2VsZik6Ci0gICAgICAgIHJlcXVlc3Qg
PSBfY3JlYXRlX21vY2tfcmVxdWVzdCgpCi0gICAgICAgIGRpc3BhdGNoZXIgPSBfTXV4TW9ja0Rp
c3BhdGNoZXIoKQotICAgICAgICBtdXhfaGFuZGxlciA9IG11eC5fTXV4SGFuZGxlcihyZXF1ZXN0
LCBkaXNwYXRjaGVyKQotICAgICAgICBtdXhfaGFuZGxlci5zdGFydCgpCi0gICAgICAgIG11eF9o
YW5kbGVyLmFkZF9jaGFubmVsX3Nsb3RzKG11eC5fSU5JVElBTF9OVU1CRVJfT0ZfQ0hBTk5FTF9T
TE9UUywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbXV4Ll9JTklUSUFM
X1FVT1RBX0ZPUl9DTElFTlQpCi0KLSAgICAgICAgZW5jb2RlZF9oYW5kc2hha2UgPSBfY3JlYXRl
X3JlcXVlc3RfaGVhZGVyKHBhdGg9Jy9lY2hvJykKLSAgICAgICAgYWRkX2NoYW5uZWxfcmVxdWVz
dCA9IF9jcmVhdGVfYWRkX2NoYW5uZWxfcmVxdWVzdF9mcmFtZSgKLSAgICAgICAgICAgIGNoYW5u
ZWxfaWQ9MiwgZW5jb2Rpbmc9MCwKLSAgICAgICAgICAgIGVuY29kZWRfaGFuZHNoYWtlPWVuY29k
ZWRfaGFuZHNoYWtlKQotICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKGFkZF9j
aGFubmVsX3JlcXVlc3QpCi0KLSAgICAgICAgZmxvd19jb250cm9sID0gX2NyZWF0ZV9mbG93X2Nv
bnRyb2xfZnJhbWUoY2hhbm5lbF9pZD0yLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICByZXBsZW5pc2hlZF9xdW90YT0xMykKLSAgICAgICAgcmVxdWVz
dC5jb25uZWN0aW9uLnB1dF9ieXRlcyhmbG93X2NvbnRyb2wpCi0KLSAgICAgICAgcGluZ19mcmFt
ZSA9IF9jcmVhdGVfbG9naWNhbF9mcmFtZShjaGFubmVsX2lkPTIsCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgbWVzc2FnZT0nSGVsbG8gV29ybGQhJywKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcGNvZGU9Y29tbW9uLk9QQ09E
RV9QSU5HKQotICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKHBpbmdfZnJhbWUp
Ci0KLSAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcygKLSAgICAgICAgICAgIF9j
cmVhdGVfbG9naWNhbF9mcmFtZShjaGFubmVsX2lkPTEsIG1lc3NhZ2U9J0dvb2RieWUnKSkKLSAg
ICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcygKLSAgICAgICAgICAgIF9jcmVhdGVf
bG9naWNhbF9mcmFtZShjaGFubmVsX2lkPTIsIG1lc3NhZ2U9J0dvb2RieWUnKSkKLQotICAgICAg
ICBzZWxmLmFzc2VydFRydWUobXV4X2hhbmRsZXIud2FpdF91bnRpbF9kb25lKHRpbWVvdXQ9Mikp
Ci0KLSAgICAgICAgbWVzc2FnZXMgPSByZXF1ZXN0LmNvbm5lY3Rpb24uZ2V0X3dyaXR0ZW5fY29u
dHJvbF9tZXNzYWdlcygyKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGNvbW1vbi5PUENPREVf
UE9ORywgbWVzc2FnZXNbMF1bJ29wY29kZSddKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdI
ZWxsbyBXb3JsZCEnLCBtZXNzYWdlc1swXVsnbWVzc2FnZSddKQotCi0gICAgZGVmIHRlc3RfcmVj
ZWl2ZV9mcmFnbWVudGVkX3Bpbmcoc2VsZik6Ci0gICAgICAgIHJlcXVlc3QgPSBfY3JlYXRlX21v
Y2tfcmVxdWVzdCgpCi0gICAgICAgIGRpc3BhdGNoZXIgPSBfTXV4TW9ja0Rpc3BhdGNoZXIoKQot
ICAgICAgICBtdXhfaGFuZGxlciA9IG11eC5fTXV4SGFuZGxlcihyZXF1ZXN0LCBkaXNwYXRjaGVy
KQotICAgICAgICBtdXhfaGFuZGxlci5zdGFydCgpCi0gICAgICAgIG11eF9oYW5kbGVyLmFkZF9j
aGFubmVsX3Nsb3RzKG11eC5fSU5JVElBTF9OVU1CRVJfT0ZfQ0hBTk5FTF9TTE9UUywKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbXV4Ll9JTklUSUFMX1FVT1RBX0ZPUl9D
TElFTlQpCi0KLSAgICAgICAgZW5jb2RlZF9oYW5kc2hha2UgPSBfY3JlYXRlX3JlcXVlc3RfaGVh
ZGVyKHBhdGg9Jy9lY2hvJykKLSAgICAgICAgYWRkX2NoYW5uZWxfcmVxdWVzdCA9IF9jcmVhdGVf
YWRkX2NoYW5uZWxfcmVxdWVzdF9mcmFtZSgKLSAgICAgICAgICAgIGNoYW5uZWxfaWQ9MiwgZW5j
b2Rpbmc9MCwKLSAgICAgICAgICAgIGVuY29kZWRfaGFuZHNoYWtlPWVuY29kZWRfaGFuZHNoYWtl
KQotICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKGFkZF9jaGFubmVsX3JlcXVl
c3QpCi0KLSAgICAgICAgZmxvd19jb250cm9sID0gX2NyZWF0ZV9mbG93X2NvbnRyb2xfZnJhbWUo
Y2hhbm5lbF9pZD0yLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICByZXBsZW5pc2hlZF9xdW90YT0xMykKLSAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9u
LnB1dF9ieXRlcyhmbG93X2NvbnRyb2wpCi0KLSAgICAgICAgIyBTZW5kIGEgcGluZyB3aXRoIG1l
c3NhZ2UgJ0hlbGxvIHdvcmxkIScgaW4gdHdvIGZyYWdtZW50ZWQgZnJhbWVzLgotICAgICAgICBw
aW5nX2ZyYW1lMSA9IF9jcmVhdGVfbG9naWNhbF9mcmFtZShjaGFubmVsX2lkPTIsCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1lc3NhZ2U9J0hlbGxvICcsCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbj1GYWxzZSwKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3Bjb2RlPWNvbW1vbi5P
UENPREVfUElORykKLSAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcyhwaW5nX2Zy
YW1lMSkKLSAgICAgICAgcGluZ19mcmFtZTIgPSBfY3JlYXRlX2xvZ2ljYWxfZnJhbWUoY2hhbm5l
bF9pZD0yLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZXNz
YWdlPSdXb3JsZCEnLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBmaW49VHJ1ZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
b3Bjb2RlPWNvbW1vbi5PUENPREVfQ09OVElOVUFUSU9OKQotICAgICAgICByZXF1ZXN0LmNvbm5l
Y3Rpb24ucHV0X2J5dGVzKHBpbmdfZnJhbWUyKQotCi0gICAgICAgIHJlcXVlc3QuY29ubmVjdGlv
bi5wdXRfYnl0ZXMoCi0gICAgICAgICAgICBfY3JlYXRlX2xvZ2ljYWxfZnJhbWUoY2hhbm5lbF9p
ZD0xLCBtZXNzYWdlPSdHb29kYnllJykpCi0gICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRf
Ynl0ZXMoCi0gICAgICAgICAgICBfY3JlYXRlX2xvZ2ljYWxfZnJhbWUoY2hhbm5lbF9pZD0yLCBt
ZXNzYWdlPSdHb29kYnllJykpCi0KLSAgICAgICAgc2VsZi5hc3NlcnRUcnVlKG11eF9oYW5kbGVy
LndhaXRfdW50aWxfZG9uZSh0aW1lb3V0PTIpKQotCi0gICAgICAgIG1lc3NhZ2VzID0gcmVxdWVz
dC5jb25uZWN0aW9uLmdldF93cml0dGVuX2NvbnRyb2xfbWVzc2FnZXMoMikKLSAgICAgICAgc2Vs
Zi5hc3NlcnRFcXVhbChjb21tb24uT1BDT0RFX1BPTkcsIG1lc3NhZ2VzWzBdWydvcGNvZGUnXSkK
LSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnSGVsbG8gV29ybGQhJywgbWVzc2FnZXNbMF1bJ21l
c3NhZ2UnXSkKLQotICAgIGRlZiB0ZXN0X3JlY2VpdmVfZnJhZ21lbnRlZF9waW5nX3doaWxlX3Jl
Y2VpdmluZ19mcmFnbWVudGVkX21lc3NhZ2Uoc2VsZik6Ci0gICAgICAgIHJlcXVlc3QgPSBfY3Jl
YXRlX21vY2tfcmVxdWVzdCgpCi0gICAgICAgIGRpc3BhdGNoZXIgPSBfTXV4TW9ja0Rpc3BhdGNo
ZXIoKQotICAgICAgICBtdXhfaGFuZGxlciA9IG11eC5fTXV4SGFuZGxlcihyZXF1ZXN0LCBkaXNw
YXRjaGVyKQotICAgICAgICBtdXhfaGFuZGxlci5zdGFydCgpCi0gICAgICAgIG11eF9oYW5kbGVy
LmFkZF9jaGFubmVsX3Nsb3RzKG11eC5fSU5JVElBTF9OVU1CRVJfT0ZfQ0hBTk5FTF9TTE9UUywK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbXV4Ll9JTklUSUFMX1FVT1RB
X0ZPUl9DTElFTlQpCi0KLSAgICAgICAgZW5jb2RlZF9oYW5kc2hha2UgPSBfY3JlYXRlX3JlcXVl
c3RfaGVhZGVyKHBhdGg9Jy9lY2hvJykKLSAgICAgICAgYWRkX2NoYW5uZWxfcmVxdWVzdCA9IF9j
cmVhdGVfYWRkX2NoYW5uZWxfcmVxdWVzdF9mcmFtZSgKLSAgICAgICAgICAgIGNoYW5uZWxfaWQ9
MiwgZW5jb2Rpbmc9MCwKLSAgICAgICAgICAgIGVuY29kZWRfaGFuZHNoYWtlPWVuY29kZWRfaGFu
ZHNoYWtlKQotICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKGFkZF9jaGFubmVs
X3JlcXVlc3QpCi0KLSAgICAgICAgZmxvd19jb250cm9sID0gX2NyZWF0ZV9mbG93X2NvbnRyb2xf
ZnJhbWUoY2hhbm5lbF9pZD0yLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICByZXBsZW5pc2hlZF9xdW90YT0xOSkKLSAgICAgICAgcmVxdWVzdC5jb25u
ZWN0aW9uLnB1dF9ieXRlcyhmbG93X2NvbnRyb2wpCi0KLSAgICAgICAgIyBTZW5kIGEgZnJhZ21l
bnRlZCBmcmFtZSBvZiBtZXNzYWdlICdIZWxsbyAnLgotICAgICAgICBoZWxsbyA9IF9jcmVhdGVf
bG9naWNhbF9mcmFtZShjaGFubmVsX2lkPTIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIG1lc3NhZ2U9J0hlbGxvICcsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGZpbj1GYWxzZSkKLSAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRl
cyhoZWxsbykKLQotICAgICAgICAjIEJlZm9yZSBzZW5kaW5nIHRoZSBsYXN0IGZyYWdtZW50ZWQg
ZnJhbWUgb2YgdGhlIG1lc3NhZ2UsIHNlbmQgYQotICAgICAgICAjIGZyYWdtZW50ZWQgcGluZy4K
LSAgICAgICAgcGluZzEgPSBfY3JlYXRlX2xvZ2ljYWxfZnJhbWUoY2hhbm5lbF9pZD0yLAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZXNzYWdlPSdQaScsCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbj1GYWxzZSwKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgb3Bjb2RlPWNvbW1vbi5PUENPREVfUElORykKLSAgICAg
ICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcyhwaW5nMSkKLSAgICAgICAgcGluZzIgPSBf
Y3JlYXRlX2xvZ2ljYWxfZnJhbWUoY2hhbm5lbF9pZD0yLAotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBtZXNzYWdlPSduZyEnLAotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBmaW49VHJ1ZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgb3Bjb2RlPWNvbW1vbi5PUENPREVfQ09OVElOVUFUSU9OKQotICAgICAgICByZXF1ZXN0
LmNvbm5lY3Rpb24ucHV0X2J5dGVzKHBpbmcyKQotCi0gICAgICAgICMgU2VuZCB0aGUgbGFzdCBm
cmFnbWVudGVkIGZyYW1lIG9mIHRoZSBtZXNzYWdlLgotICAgICAgICB3b3JsZCA9IF9jcmVhdGVf
bG9naWNhbF9mcmFtZShjaGFubmVsX2lkPTIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIG1lc3NhZ2U9J1dvcmxkIScsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGZpbj1UcnVlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBvcGNvZGU9Y29tbW9uLk9QQ09ERV9DT05USU5VQVRJT04pCi0gICAgICAgIHJlcXVlc3QuY29u
bmVjdGlvbi5wdXRfYnl0ZXMod29ybGQpCi0KLSAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1
dF9ieXRlcygKLSAgICAgICAgICAgIF9jcmVhdGVfbG9naWNhbF9mcmFtZShjaGFubmVsX2lkPTEs
IG1lc3NhZ2U9J0dvb2RieWUnKSkKLSAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRl
cygKLSAgICAgICAgICAgIF9jcmVhdGVfbG9naWNhbF9mcmFtZShjaGFubmVsX2lkPTIsIG1lc3Nh
Z2U9J0dvb2RieWUnKSkKLQotICAgICAgICBzZWxmLmFzc2VydFRydWUobXV4X2hhbmRsZXIud2Fp
dF91bnRpbF9kb25lKHRpbWVvdXQ9MikpCi0KLSAgICAgICAgbWVzc2FnZXMgPSByZXF1ZXN0LmNv
bm5lY3Rpb24uZ2V0X3dyaXR0ZW5fbWVzc2FnZXMoMikKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVh
bChbJ0hlbGxvIFdvcmxkISddLCBtZXNzYWdlcykKLSAgICAgICAgY29udHJvbF9tZXNzYWdlcyA9
IHJlcXVlc3QuY29ubmVjdGlvbi5nZXRfd3JpdHRlbl9jb250cm9sX21lc3NhZ2VzKDIpCi0gICAg
ICAgIHNlbGYuYXNzZXJ0RXF1YWwoY29tbW9uLk9QQ09ERV9QT05HLCBjb250cm9sX21lc3NhZ2Vz
WzBdWydvcGNvZGUnXSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnUGluZyEnLCBjb250cm9s
X21lc3NhZ2VzWzBdWydtZXNzYWdlJ10pCi0KLSAgICBkZWYgdGVzdF9yZWNlaXZlX3R3b19waW5n
X3doaWxlX3JlY2VpdmluZ19mcmFnbWVudGVkX21lc3NhZ2Uoc2VsZik6Ci0gICAgICAgIHJlcXVl
c3QgPSBfY3JlYXRlX21vY2tfcmVxdWVzdCgpCi0gICAgICAgIGRpc3BhdGNoZXIgPSBfTXV4TW9j
a0Rpc3BhdGNoZXIoKQotICAgICAgICBtdXhfaGFuZGxlciA9IG11eC5fTXV4SGFuZGxlcihyZXF1
ZXN0LCBkaXNwYXRjaGVyKQotICAgICAgICBtdXhfaGFuZGxlci5zdGFydCgpCi0gICAgICAgIG11
eF9oYW5kbGVyLmFkZF9jaGFubmVsX3Nsb3RzKG11eC5fSU5JVElBTF9OVU1CRVJfT0ZfQ0hBTk5F
TF9TTE9UUywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbXV4Ll9JTklU
SUFMX1FVT1RBX0ZPUl9DTElFTlQpCi0KLSAgICAgICAgZW5jb2RlZF9oYW5kc2hha2UgPSBfY3Jl
YXRlX3JlcXVlc3RfaGVhZGVyKHBhdGg9Jy9lY2hvJykKLSAgICAgICAgYWRkX2NoYW5uZWxfcmVx
dWVzdCA9IF9jcmVhdGVfYWRkX2NoYW5uZWxfcmVxdWVzdF9mcmFtZSgKLSAgICAgICAgICAgIGNo
YW5uZWxfaWQ9MiwgZW5jb2Rpbmc9MCwKLSAgICAgICAgICAgIGVuY29kZWRfaGFuZHNoYWtlPWVu
Y29kZWRfaGFuZHNoYWtlKQotICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKGFk
ZF9jaGFubmVsX3JlcXVlc3QpCi0KLSAgICAgICAgZmxvd19jb250cm9sID0gX2NyZWF0ZV9mbG93
X2NvbnRyb2xfZnJhbWUoY2hhbm5lbF9pZD0yLAotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICByZXBsZW5pc2hlZF9xdW90YT0yNSkKLSAgICAgICAgcmVx
dWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcyhmbG93X2NvbnRyb2wpCi0KLSAgICAgICAgIyBTZW5k
IGEgZnJhZ21lbnRlZCBmcmFtZSBvZiBtZXNzYWdlICdIZWxsbyAnLgotICAgICAgICBoZWxsbyA9
IF9jcmVhdGVfbG9naWNhbF9mcmFtZShjaGFubmVsX2lkPTIsCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIG1lc3NhZ2U9J0hlbGxvICcsCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGZpbj1GYWxzZSkKLSAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9u
LnB1dF9ieXRlcyhoZWxsbykKLQotICAgICAgICAjIEJlZm9yZSBzZW5kaW5nIHRoZSBsYXN0IGZy
YWdtZW50ZWQgZnJhbWUgb2YgdGhlIG1lc3NhZ2UsIHNlbmQgYQotICAgICAgICAjIGZyYWdtZW50
ZWQgcGluZyBhbmQgYSBub24tZnJhZ21lbnRlZCBwaW5nLgotICAgICAgICBwaW5nMSA9IF9jcmVh
dGVfbG9naWNhbF9mcmFtZShjaGFubmVsX2lkPTIsCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIG1lc3NhZ2U9J1BpJywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgZmluPUZhbHNlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBvcGNvZGU9Y29tbW9uLk9QQ09ERV9QSU5HKQotICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24u
cHV0X2J5dGVzKHBpbmcxKQotICAgICAgICBwaW5nMiA9IF9jcmVhdGVfbG9naWNhbF9mcmFtZShj
aGFubmVsX2lkPTIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1lc3Nh
Z2U9J25nIScsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbj1UcnVl
LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcGNvZGU9Y29tbW9uLk9Q
Q09ERV9DT05USU5VQVRJT04pCi0gICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMo
cGluZzIpCi0gICAgICAgIHBpbmczID0gX2NyZWF0ZV9sb2dpY2FsX2ZyYW1lKGNoYW5uZWxfaWQ9
MiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWVzc2FnZT0nUG9uZyEn
LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaW49VHJ1ZSwKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3Bjb2RlPWNvbW1vbi5PUENPREVfUElO
RykKLSAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcyhwaW5nMykKLQotICAgICAg
ICAjIFNlbmQgdGhlIGxhc3QgZnJhZ21lbnRlZCBmcmFtZSBvZiB0aGUgbWVzc2FnZS4KLSAgICAg
ICAgd29ybGQgPSBfY3JlYXRlX2xvZ2ljYWxfZnJhbWUoY2hhbm5lbF9pZD0yLAotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZXNzYWdlPSdXb3JsZCEnLAotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaW49VHJ1ZSwKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgb3Bjb2RlPWNvbW1vbi5PUENPREVfQ09OVElOVUFUSU9OKQot
ICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKHdvcmxkKQotCi0gICAgICAgIHJl
cXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMoCi0gICAgICAgICAgICBfY3JlYXRlX2xvZ2ljYWxf
ZnJhbWUoY2hhbm5lbF9pZD0xLCBtZXNzYWdlPSdHb29kYnllJykpCi0gICAgICAgIHJlcXVlc3Qu
Y29ubmVjdGlvbi5wdXRfYnl0ZXMoCi0gICAgICAgICAgICBfY3JlYXRlX2xvZ2ljYWxfZnJhbWUo
Y2hhbm5lbF9pZD0yLCBtZXNzYWdlPSdHb29kYnllJykpCi0KLSAgICAgICAgc2VsZi5hc3NlcnRU
cnVlKG11eF9oYW5kbGVyLndhaXRfdW50aWxfZG9uZSh0aW1lb3V0PTIpKQotCi0gICAgICAgIG1l
c3NhZ2VzID0gcmVxdWVzdC5jb25uZWN0aW9uLmdldF93cml0dGVuX21lc3NhZ2VzKDIpCi0gICAg
ICAgIHNlbGYuYXNzZXJ0RXF1YWwoWydIZWxsbyBXb3JsZCEnXSwgbWVzc2FnZXMpCi0gICAgICAg
IGNvbnRyb2xfbWVzc2FnZXMgPSByZXF1ZXN0LmNvbm5lY3Rpb24uZ2V0X3dyaXR0ZW5fY29udHJv
bF9tZXNzYWdlcygyKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGNvbW1vbi5PUENPREVfUE9O
RywgY29udHJvbF9tZXNzYWdlc1swXVsnb3Bjb2RlJ10pCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1
YWwoJ1BpbmchJywgY29udHJvbF9tZXNzYWdlc1swXVsnbWVzc2FnZSddKQotICAgICAgICBzZWxm
LmFzc2VydEVxdWFsKGNvbW1vbi5PUENPREVfUE9ORywgY29udHJvbF9tZXNzYWdlc1sxXVsnb3Bj
b2RlJ10pCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ1BvbmchJywgY29udHJvbF9tZXNzYWdl
c1sxXVsnbWVzc2FnZSddKQotCi0gICAgZGVmIHRlc3RfcmVjZWl2ZV9tZXNzYWdlX3doaWxlX3Jl
Y2VpdmluZ19mcmFnbWVudGVkX3Bpbmcoc2VsZik6Ci0gICAgICAgIHJlcXVlc3QgPSBfY3JlYXRl
X21vY2tfcmVxdWVzdCgpCi0gICAgICAgIGRpc3BhdGNoZXIgPSBfTXV4TW9ja0Rpc3BhdGNoZXIo
KQotICAgICAgICBtdXhfaGFuZGxlciA9IG11eC5fTXV4SGFuZGxlcihyZXF1ZXN0LCBkaXNwYXRj
aGVyKQotICAgICAgICBtdXhfaGFuZGxlci5zdGFydCgpCi0gICAgICAgIG11eF9oYW5kbGVyLmFk
ZF9jaGFubmVsX3Nsb3RzKG11eC5fSU5JVElBTF9OVU1CRVJfT0ZfQ0hBTk5FTF9TTE9UUywKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbXV4Ll9JTklUSUFMX1FVT1RBX0ZP
Ul9DTElFTlQpCi0KLSAgICAgICAgZW5jb2RlZF9oYW5kc2hha2UgPSBfY3JlYXRlX3JlcXVlc3Rf
aGVhZGVyKHBhdGg9Jy9lY2hvJykKLSAgICAgICAgYWRkX2NoYW5uZWxfcmVxdWVzdCA9IF9jcmVh
dGVfYWRkX2NoYW5uZWxfcmVxdWVzdF9mcmFtZSgKLSAgICAgICAgICAgIGNoYW5uZWxfaWQ9Miwg
ZW5jb2Rpbmc9MCwKLSAgICAgICAgICAgIGVuY29kZWRfaGFuZHNoYWtlPWVuY29kZWRfaGFuZHNo
YWtlKQotICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKGFkZF9jaGFubmVsX3Jl
cXVlc3QpCi0KLSAgICAgICAgZmxvd19jb250cm9sID0gX2NyZWF0ZV9mbG93X2NvbnRyb2xfZnJh
bWUoY2hhbm5lbF9pZD0yLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgcmVwbGVuaXNoZWRfcXVvdGE9MTkpCi0gICAgICAgIHJlcXVlc3QuY29ubmVjdGlv
bi5wdXRfYnl0ZXMoZmxvd19jb250cm9sKQotCi0gICAgICAgICMgU2VuZCBhIGZyYWdtZW50ZWQg
cGluZy4KLSAgICAgICAgcGluZzEgPSBfY3JlYXRlX2xvZ2ljYWxfZnJhbWUoY2hhbm5lbF9pZD0y
LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZXNzYWdlPSdQaScsCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbj1GYWxzZSwKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3Bjb2RlPWNvbW1vbi5PUENPREVfUElORykK
LSAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcyhwaW5nMSkKLQotICAgICAgICAj
IEJlZm9yZSBzZW5kaW5nIHRoZSBsYXN0IGZyYWdtZW50ZWQgcGluZywgc2VuZCBhIG1lc3NhZ2Uu
Ci0gICAgICAgICMgVGhlIGxvZ2ljYWwgY2hhbm5lbCAoMikgc2hvdWxkIGJlIGRyb3BwZWQuCi0g
ICAgICAgIG1lc3NhZ2UgPSBfY3JlYXRlX2xvZ2ljYWxfZnJhbWUoY2hhbm5lbF9pZD0yLAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1lc3NhZ2U9J0hlbGxvIHdvcmxk
IScsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmluPVRydWUpCi0g
ICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMobWVzc2FnZSkKLQotICAgICAgICAj
IFNlbmQgdGhlIGxhc3QgZnJhZ21lbnRlZCBmcmFtZSBvZiB0aGUgbWVzc2FnZS4KLSAgICAgICAg
cGluZzIgPSBfY3JlYXRlX2xvZ2ljYWxfZnJhbWUoY2hhbm5lbF9pZD0yLAotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBtZXNzYWdlPSduZyEnLAotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBmaW49VHJ1ZSwKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgb3Bjb2RlPWNvbW1vbi5PUENPREVfQ09OVElOVUFUSU9OKQotICAgICAg
ICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKHBpbmcyKQotCi0gICAgICAgIHJlcXVlc3Qu
Y29ubmVjdGlvbi5wdXRfYnl0ZXMoCi0gICAgICAgICAgICBfY3JlYXRlX2xvZ2ljYWxfZnJhbWUo
Y2hhbm5lbF9pZD0xLCBtZXNzYWdlPSdHb29kYnllJykpCi0KLSAgICAgICAgc2VsZi5hc3NlcnRU
cnVlKG11eF9oYW5kbGVyLndhaXRfdW50aWxfZG9uZSh0aW1lb3V0PTIpKQotCi0gICAgICAgIGRy
b3BfY2hhbm5lbCA9IG5leHQoCi0gICAgICAgICAgICBiIGZvciBiIGluIHJlcXVlc3QuY29ubmVj
dGlvbi5nZXRfd3JpdHRlbl9jb250cm9sX2Jsb2NrcygpCi0gICAgICAgICAgICBpZiBiLm9wY29k
ZSA9PSBtdXguX01VWF9PUENPREVfRFJPUF9DSEFOTkVMKQotICAgICAgICBzZWxmLmFzc2VydEVx
dWFsKDIsIGRyb3BfY2hhbm5lbC5jaGFubmVsX2lkKQotICAgICAgICAjIE5vIG1lc3NhZ2Ugc2hv
dWxkIGJlIHNlbnQgb24gY2hhbm5lbCAyLgotICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhLZXlF
cnJvciwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLmdldF93
cml0dGVuX21lc3NhZ2VzLAotICAgICAgICAgICAgICAgICAgICAgICAgICAyKQotICAgICAgICBz
ZWxmLmFzc2VydFJhaXNlcyhLZXlFcnJvciwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgcmVx
dWVzdC5jb25uZWN0aW9uLmdldF93cml0dGVuX2NvbnRyb2xfbWVzc2FnZXMsCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgIDIpCi0KLSAgICBkZWYgdGVzdF9zZW5kX3Bpbmcoc2VsZik6Ci0gICAg
ICAgIHJlcXVlc3QgPSBfY3JlYXRlX21vY2tfcmVxdWVzdCgpCi0gICAgICAgIGRpc3BhdGNoZXIg
PSBfTXV4TW9ja0Rpc3BhdGNoZXIoKQotICAgICAgICBtdXhfaGFuZGxlciA9IG11eC5fTXV4SGFu
ZGxlcihyZXF1ZXN0LCBkaXNwYXRjaGVyKQotICAgICAgICBtdXhfaGFuZGxlci5zdGFydCgpCi0g
ICAgICAgIG11eF9oYW5kbGVyLmFkZF9jaGFubmVsX3Nsb3RzKG11eC5fSU5JVElBTF9OVU1CRVJf
T0ZfQ0hBTk5FTF9TTE9UUywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
bXV4Ll9JTklUSUFMX1FVT1RBX0ZPUl9DTElFTlQpCi0KLSAgICAgICAgZW5jb2RlZF9oYW5kc2hh
a2UgPSBfY3JlYXRlX3JlcXVlc3RfaGVhZGVyKHBhdGg9Jy9waW5nJykKLSAgICAgICAgYWRkX2No
YW5uZWxfcmVxdWVzdCA9IF9jcmVhdGVfYWRkX2NoYW5uZWxfcmVxdWVzdF9mcmFtZSgKLSAgICAg
ICAgICAgIGNoYW5uZWxfaWQ9MiwgZW5jb2Rpbmc9MCwKLSAgICAgICAgICAgIGVuY29kZWRfaGFu
ZHNoYWtlPWVuY29kZWRfaGFuZHNoYWtlKQotICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0
X2J5dGVzKGFkZF9jaGFubmVsX3JlcXVlc3QpCi0KLSAgICAgICAgZmxvd19jb250cm9sID0gX2Ny
ZWF0ZV9mbG93X2NvbnRyb2xfZnJhbWUoY2hhbm5lbF9pZD0yLAotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXBsZW5pc2hlZF9xdW90YT02KQotICAg
ICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKGZsb3dfY29udHJvbCkKLQotICAgICAg
ICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKAotICAgICAgICAgICAgX2NyZWF0ZV9sb2dp
Y2FsX2ZyYW1lKGNoYW5uZWxfaWQ9MSwgbWVzc2FnZT0nR29vZGJ5ZScpKQotCi0gICAgICAgIHNl
bGYuYXNzZXJ0VHJ1ZShtdXhfaGFuZGxlci53YWl0X3VudGlsX2RvbmUodGltZW91dD0yKSkKLQot
ICAgICAgICBtZXNzYWdlcyA9IHJlcXVlc3QuY29ubmVjdGlvbi5nZXRfd3JpdHRlbl9jb250cm9s
X21lc3NhZ2VzKDIpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoY29tbW9uLk9QQ09ERV9QSU5H
LCBtZXNzYWdlc1swXVsnb3Bjb2RlJ10pCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ1Bpbmch
JywgbWVzc2FnZXNbMF1bJ21lc3NhZ2UnXSkKLQotICAgIGRlZiB0ZXN0X3NlbmRfZnJhZ21lbnRl
ZF9waW5nKHNlbGYpOgotICAgICAgICByZXF1ZXN0ID0gX2NyZWF0ZV9tb2NrX3JlcXVlc3QoKQot
ICAgICAgICBkaXNwYXRjaGVyID0gX011eE1vY2tEaXNwYXRjaGVyKCkKLSAgICAgICAgbXV4X2hh
bmRsZXIgPSBtdXguX011eEhhbmRsZXIocmVxdWVzdCwgZGlzcGF0Y2hlcikKLSAgICAgICAgbXV4
X2hhbmRsZXIuc3RhcnQoKQotICAgICAgICBtdXhfaGFuZGxlci5hZGRfY2hhbm5lbF9zbG90cyht
dXguX0lOSVRJQUxfTlVNQkVSX09GX0NIQU5ORUxfU0xPVFMsCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIG11eC5fSU5JVElBTF9RVU9UQV9GT1JfQ0xJRU5UKQotCi0gICAg
ICAgIGVuY29kZWRfaGFuZHNoYWtlID0gX2NyZWF0ZV9yZXF1ZXN0X2hlYWRlcihwYXRoPScvcGlu
ZycpCi0gICAgICAgIGFkZF9jaGFubmVsX3JlcXVlc3QgPSBfY3JlYXRlX2FkZF9jaGFubmVsX3Jl
cXVlc3RfZnJhbWUoCi0gICAgICAgICAgICBjaGFubmVsX2lkPTIsIGVuY29kaW5nPTAsCi0gICAg
ICAgICAgICBlbmNvZGVkX2hhbmRzaGFrZT1lbmNvZGVkX2hhbmRzaGFrZSkKLSAgICAgICAgcmVx
dWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcyhhZGRfY2hhbm5lbF9yZXF1ZXN0KQotCi0gICAgICAg
ICMgUmVwbGVuaXNoIDMgYnl0ZXMuIFRoaXMgaXNuJ3QgZW5vdWdoIHRvIHNlbmQgdGhlIHdob2xl
IHBpbmcgZnJhbWUKLSAgICAgICAgIyBiZWNhdXNlIHRoZSBmcmFtZSB3aWxsIGhhdmUgNSBieXRl
cyBtZXNzYWdlKCdQaW5nIScpLiBUaGUgZnJhbWUKLSAgICAgICAgIyBzaG91bGQgYmUgZnJhZ21l
bnRlZC4KLSAgICAgICAgZmxvd19jb250cm9sID0gX2NyZWF0ZV9mbG93X2NvbnRyb2xfZnJhbWUo
Y2hhbm5lbF9pZD0yLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICByZXBsZW5pc2hlZF9xdW90YT0zKQotICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24u
cHV0X2J5dGVzKGZsb3dfY29udHJvbCkKLQotICAgICAgICAjIFdhaXQgdW50aWwgdGhlIHdvcmtl
ciBpcyBibG9ja2VkIGR1ZSB0byBzZW5kIHF1b3RhIHNob3J0YWdlLgotICAgICAgICB0aW1lLnNs
ZWVwKDEpCi0KLSAgICAgICAgIyBSZXBsZW5pc2ggcmVtYWluaW5nIDIgKyAxIGJ5dGVzIChpbmNs
dWRpbmcgZXh0cmEgY29zdCkuCi0gICAgICAgIGZsb3dfY29udHJvbCA9IF9jcmVhdGVfZmxvd19j
b250cm9sX2ZyYW1lKGNoYW5uZWxfaWQ9MiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgcmVwbGVuaXNoZWRfcXVvdGE9MykKLSAgICAgICAgcmVxdWVz
dC5jb25uZWN0aW9uLnB1dF9ieXRlcyhmbG93X2NvbnRyb2wpCi0KLSAgICAgICAgcmVxdWVzdC5j
b25uZWN0aW9uLnB1dF9ieXRlcygKLSAgICAgICAgICAgIF9jcmVhdGVfbG9naWNhbF9mcmFtZShj
aGFubmVsX2lkPTEsIG1lc3NhZ2U9J0dvb2RieWUnKSkKLQotICAgICAgICBzZWxmLmFzc2VydFRy
dWUobXV4X2hhbmRsZXIud2FpdF91bnRpbF9kb25lKHRpbWVvdXQ9MikpCi0KLSAgICAgICAgbWVz
c2FnZXMgPSByZXF1ZXN0LmNvbm5lY3Rpb24uZ2V0X3dyaXR0ZW5fY29udHJvbF9tZXNzYWdlcygy
KQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGNvbW1vbi5PUENPREVfUElORywgbWVzc2FnZXNb
MF1bJ29wY29kZSddKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdQaW5nIScsIG1lc3NhZ2Vz
WzBdWydtZXNzYWdlJ10pCi0KLSAgICBkZWYgdGVzdF9zZW5kX2ZyYWdtZW50ZWRfcGluZ193aGls
ZV9zZW5kaW5nX2ZyYWdtZW50ZWRfbWVzc2FnZShzZWxmKToKLSAgICAgICAgcmVxdWVzdCA9IF9j
cmVhdGVfbW9ja19yZXF1ZXN0KCkKLSAgICAgICAgZGlzcGF0Y2hlciA9IF9NdXhNb2NrRGlzcGF0
Y2hlcigpCi0gICAgICAgIG11eF9oYW5kbGVyID0gbXV4Ll9NdXhIYW5kbGVyKHJlcXVlc3QsIGRp
c3BhdGNoZXIpCi0gICAgICAgIG11eF9oYW5kbGVyLnN0YXJ0KCkKLSAgICAgICAgbXV4X2hhbmRs
ZXIuYWRkX2NoYW5uZWxfc2xvdHMobXV4Ll9JTklUSUFMX05VTUJFUl9PRl9DSEFOTkVMX1NMT1RT
LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtdXguX0lOSVRJQUxfUVVP
VEFfRk9SX0NMSUVOVCkKLQotICAgICAgICBlbmNvZGVkX2hhbmRzaGFrZSA9IF9jcmVhdGVfcmVx
dWVzdF9oZWFkZXIoCi0gICAgICAgICAgICBwYXRoPScvcGluZ193aGlsZV9oZWxsb193b3JsZCcp
Ci0gICAgICAgIGFkZF9jaGFubmVsX3JlcXVlc3QgPSBfY3JlYXRlX2FkZF9jaGFubmVsX3JlcXVl
c3RfZnJhbWUoCi0gICAgICAgICAgICBjaGFubmVsX2lkPTIsIGVuY29kaW5nPTAsCi0gICAgICAg
ICAgICBlbmNvZGVkX2hhbmRzaGFrZT1lbmNvZGVkX2hhbmRzaGFrZSkKLSAgICAgICAgcmVxdWVz
dC5jb25uZWN0aW9uLnB1dF9ieXRlcyhhZGRfY2hhbm5lbF9yZXF1ZXN0KQotCi0gICAgICAgICMg
QXBwbGljYXRpb24gd2lsbCBzZW5kOgotICAgICAgICAjIC0gdGV4dCBtZXNzYWdlICdIZWxsbyAn
IHdpdGggZmluPTAKLSAgICAgICAgIyAtIHBpbmcgd2l0aCAnUGluZyEnIG1lc3NhZ2UKLSAgICAg
ICAgIyAtIHRleHQgbWVzc2FnZSAnV29ybGQhJyB3aXRoIGZpbj0xCi0gICAgICAgICMgUmVwbGVu
aXNoICg2ICsgMSkgKyAoMiArIDEpIGJ5dGVzIHNvIHRoYXQgdGhlIHBpbmcgd2lsbCBiZQotICAg
ICAgICAjIGZyYWdtZW50ZWQgb24gdGhlIGxvZ2ljYWwgY2hhbm5lbC4KLSAgICAgICAgZmxvd19j
b250cm9sID0gX2NyZWF0ZV9mbG93X2NvbnRyb2xfZnJhbWUoY2hhbm5lbF9pZD0yLAotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXBsZW5pc2hlZF9x
dW90YT0xMCkKLSAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcyhmbG93X2NvbnRy
b2wpCi0KLSAgICAgICAgdGltZS5zbGVlcCgxKQotCi0gICAgICAgICMgUmVwbGVuaXNoIHJlbWFp
bmluZyAzICsgNiBieXRlcy4KLSAgICAgICAgZmxvd19jb250cm9sID0gX2NyZWF0ZV9mbG93X2Nv
bnRyb2xfZnJhbWUoY2hhbm5lbF9pZD0yLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICByZXBsZW5pc2hlZF9xdW90YT05KQotICAgICAgICByZXF1ZXN0
LmNvbm5lY3Rpb24ucHV0X2J5dGVzKGZsb3dfY29udHJvbCkKLQotICAgICAgICByZXF1ZXN0LmNv
bm5lY3Rpb24ucHV0X2J5dGVzKAotICAgICAgICAgICAgX2NyZWF0ZV9sb2dpY2FsX2ZyYW1lKGNo
YW5uZWxfaWQ9MSwgbWVzc2FnZT0nR29vZGJ5ZScpKQotCi0gICAgICAgIHNlbGYuYXNzZXJ0VHJ1
ZShtdXhfaGFuZGxlci53YWl0X3VudGlsX2RvbmUodGltZW91dD0yKSkKLQotICAgICAgICBtZXNz
YWdlcyA9IHJlcXVlc3QuY29ubmVjdGlvbi5nZXRfd3JpdHRlbl9tZXNzYWdlcygyKQotICAgICAg
ICBzZWxmLmFzc2VydEVxdWFsKFsnSGVsbG8gV29ybGQhJ10sIG1lc3NhZ2VzKQotICAgICAgICBj
b250cm9sX21lc3NhZ2VzID0gcmVxdWVzdC5jb25uZWN0aW9uLmdldF93cml0dGVuX2NvbnRyb2xf
bWVzc2FnZXMoMikKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjb21tb24uT1BDT0RFX1BJTkcs
IGNvbnRyb2xfbWVzc2FnZXNbMF1bJ29wY29kZSddKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFs
KCdQaW5nIScsIGNvbnRyb2xfbWVzc2FnZXNbMF1bJ21lc3NhZ2UnXSkKLQotICAgIGRlZiB0ZXN0
X3NlbmRfZnJhZ21lbnRlZF90d29fcGluZ193aGlsZV9zZW5kaW5nX2ZyYWdtZW50ZWRfbWVzc2Fn
ZShzZWxmKToKLSAgICAgICAgcmVxdWVzdCA9IF9jcmVhdGVfbW9ja19yZXF1ZXN0KCkKLSAgICAg
ICAgZGlzcGF0Y2hlciA9IF9NdXhNb2NrRGlzcGF0Y2hlcigpCi0gICAgICAgIG11eF9oYW5kbGVy
ID0gbXV4Ll9NdXhIYW5kbGVyKHJlcXVlc3QsIGRpc3BhdGNoZXIpCi0gICAgICAgIG11eF9oYW5k
bGVyLnN0YXJ0KCkKLSAgICAgICAgbXV4X2hhbmRsZXIuYWRkX2NoYW5uZWxfc2xvdHMobXV4Ll9J
TklUSUFMX05VTUJFUl9PRl9DSEFOTkVMX1NMT1RTLAotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBtdXguX0lOSVRJQUxfUVVPVEFfRk9SX0NMSUVOVCkKLQotICAgICAgICBl
bmNvZGVkX2hhbmRzaGFrZSA9IF9jcmVhdGVfcmVxdWVzdF9oZWFkZXIoCi0gICAgICAgICAgICBw
YXRoPScvdHdvX3Bpbmdfd2hpbGVfaGVsbG9fd29ybGQnKQotICAgICAgICBhZGRfY2hhbm5lbF9y
ZXF1ZXN0ID0gX2NyZWF0ZV9hZGRfY2hhbm5lbF9yZXF1ZXN0X2ZyYW1lKAotICAgICAgICAgICAg
Y2hhbm5lbF9pZD0yLCBlbmNvZGluZz0wLAotICAgICAgICAgICAgZW5jb2RlZF9oYW5kc2hha2U9
ZW5jb2RlZF9oYW5kc2hha2UpCi0gICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMo
YWRkX2NoYW5uZWxfcmVxdWVzdCkKLQotICAgICAgICAjIEFwcGxpY2F0aW9uIHdpbGwgc2VuZDoK
LSAgICAgICAgIyAtIHRleHQgbWVzc2FnZSAnSGVsbG8gJyB3aXRoIGZpbj0wCi0gICAgICAgICMg
LSBwaW5nIHdpdGggJ1BpbmchJyBtZXNzYWdlCi0gICAgICAgICMgLSBwaW5nIHdpdGggJ1Bvbmch
JyBtZXNzYWdlCi0gICAgICAgICMgLSB0ZXh0IG1lc3NhZ2UgJ1dvcmxkIScgd2l0aCBmaW49MQot
ICAgICAgICAjIFJlcGxlbmlzaCAoNiArIDEpICsgKDIgKyAxKSBieXRlcyBzbyB0aGF0IHRoZSBm
aXJzdCBwaW5nIHdpbGwgYmUKLSAgICAgICAgIyBmcmFnbWVudGVkIG9uIHRoZSBsb2dpY2FsIGNo
YW5uZWwuCi0gICAgICAgIGZsb3dfY29udHJvbCA9IF9jcmVhdGVfZmxvd19jb250cm9sX2ZyYW1l
KGNoYW5uZWxfaWQ9MiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgcmVwbGVuaXNoZWRfcXVvdGE9MTApCi0gICAgICAgIHJlcXVlc3QuY29ubmVjdGlv
bi5wdXRfYnl0ZXMoZmxvd19jb250cm9sKQotCi0gICAgICAgIHRpbWUuc2xlZXAoMSkKLQotICAg
ICAgICAjIFJlcGxlbmlzaCByZW1haW5pbmcgMyArICg1ICsgMSkgKyA2IGJ5dGVzLiBUaGUgc2Vj
b25kIHBpbmcgd29uJ3QKLSAgICAgICAgIyBiZSBmcmFnbWVudGVkIG9uIHRoZSBsb2dpY2FsIGNo
YW5uZWwuCi0gICAgICAgIGZsb3dfY29udHJvbCA9IF9jcmVhdGVfZmxvd19jb250cm9sX2ZyYW1l
KGNoYW5uZWxfaWQ9MiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgcmVwbGVuaXNoZWRfcXVvdGE9MTUpCi0gICAgICAgIHJlcXVlc3QuY29ubmVjdGlv
bi5wdXRfYnl0ZXMoZmxvd19jb250cm9sKQotCi0gICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5w
dXRfYnl0ZXMoCi0gICAgICAgICAgICBfY3JlYXRlX2xvZ2ljYWxfZnJhbWUoY2hhbm5lbF9pZD0x
LCBtZXNzYWdlPSdHb29kYnllJykpCi0KLSAgICAgICAgc2VsZi5hc3NlcnRUcnVlKG11eF9oYW5k
bGVyLndhaXRfdW50aWxfZG9uZSh0aW1lb3V0PTIpKQotCi0gICAgICAgIG1lc3NhZ2VzID0gcmVx
dWVzdC5jb25uZWN0aW9uLmdldF93cml0dGVuX21lc3NhZ2VzKDIpCi0gICAgICAgIHNlbGYuYXNz
ZXJ0RXF1YWwoWydIZWxsbyBXb3JsZCEnXSwgbWVzc2FnZXMpCi0gICAgICAgIGNvbnRyb2xfbWVz
c2FnZXMgPSByZXF1ZXN0LmNvbm5lY3Rpb24uZ2V0X3dyaXR0ZW5fY29udHJvbF9tZXNzYWdlcygy
KQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGNvbW1vbi5PUENPREVfUElORywgY29udHJvbF9t
ZXNzYWdlc1swXVsnb3Bjb2RlJ10pCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ1BpbmchJywg
Y29udHJvbF9tZXNzYWdlc1swXVsnbWVzc2FnZSddKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFs
KGNvbW1vbi5PUENPREVfUElORywgY29udHJvbF9tZXNzYWdlc1sxXVsnb3Bjb2RlJ10pCi0gICAg
ICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ1BvbmchJywgY29udHJvbF9tZXNzYWdlc1sxXVsnbWVzc2Fn
ZSddKQotCi0gICAgZGVmIHRlc3Rfc2VuZF9kcm9wX2NoYW5uZWwoc2VsZik6Ci0gICAgICAgIHJl
cXVlc3QgPSBfY3JlYXRlX21vY2tfcmVxdWVzdCgpCi0gICAgICAgIGRpc3BhdGNoZXIgPSBfTXV4
TW9ja0Rpc3BhdGNoZXIoKQotICAgICAgICBtdXhfaGFuZGxlciA9IG11eC5fTXV4SGFuZGxlcihy
ZXF1ZXN0LCBkaXNwYXRjaGVyKQotICAgICAgICBtdXhfaGFuZGxlci5zdGFydCgpCi0KLSAgICAg
ICAgIyBEcm9wQ2hhbm5lbCBmb3IgY2hhbm5lbCBpZCAxIHdoaWNoIGRvZXNuJ3QgaGF2ZSByZWFz
b24uCi0gICAgICAgIGZyYW1lID0gY3JlYXRlX2JpbmFyeV9mcmFtZSgnXHgwMFx4NjBceDAxXHgw
MCcsIG1hc2s9VHJ1ZSkKLSAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcyhmcmFt
ZSkKLQotICAgICAgICBzZWxmLmFzc2VydFRydWUobXV4X2hhbmRsZXIud2FpdF91bnRpbF9kb25l
KHRpbWVvdXQ9MikpCi0KLSAgICAgICAgZHJvcF9jaGFubmVsID0gbmV4dCgKLSAgICAgICAgICAg
IGIgZm9yIGIgaW4gcmVxdWVzdC5jb25uZWN0aW9uLmdldF93cml0dGVuX2NvbnRyb2xfYmxvY2tz
KCkKLSAgICAgICAgICAgIGlmIGIub3Bjb2RlID09IG11eC5fTVVYX09QQ09ERV9EUk9QX0NIQU5O
RUwpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobXV4Ll9EUk9QX0NPREVfQUNLTk9XTEVER0VE
LAotICAgICAgICAgICAgICAgICAgICAgICAgIGRyb3BfY2hhbm5lbC5kcm9wX2NvZGUpCi0gICAg
ICAgIHNlbGYuYXNzZXJ0RXF1YWwoMSwgZHJvcF9jaGFubmVsLmNoYW5uZWxfaWQpCi0KLSAgICBk
ZWYgdGVzdF90d29fZmxvd19jb250cm9sKHNlbGYpOgotICAgICAgICByZXF1ZXN0ID0gX2NyZWF0
ZV9tb2NrX3JlcXVlc3QoKQotICAgICAgICBkaXNwYXRjaGVyID0gX011eE1vY2tEaXNwYXRjaGVy
KCkKLSAgICAgICAgbXV4X2hhbmRsZXIgPSBtdXguX011eEhhbmRsZXIocmVxdWVzdCwgZGlzcGF0
Y2hlcikKLSAgICAgICAgbXV4X2hhbmRsZXIuc3RhcnQoKQotICAgICAgICBtdXhfaGFuZGxlci5h
ZGRfY2hhbm5lbF9zbG90cyhtdXguX0lOSVRJQUxfTlVNQkVSX09GX0NIQU5ORUxfU0xPVFMsCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG11eC5fSU5JVElBTF9RVU9UQV9G
T1JfQ0xJRU5UKQotCi0gICAgICAgIGVuY29kZWRfaGFuZHNoYWtlID0gX2NyZWF0ZV9yZXF1ZXN0
X2hlYWRlcihwYXRoPScvZWNobycpCi0gICAgICAgIGFkZF9jaGFubmVsX3JlcXVlc3QgPSBfY3Jl
YXRlX2FkZF9jaGFubmVsX3JlcXVlc3RfZnJhbWUoCi0gICAgICAgICAgICBjaGFubmVsX2lkPTIs
IGVuY29kaW5nPTAsCi0gICAgICAgICAgICBlbmNvZGVkX2hhbmRzaGFrZT1lbmNvZGVkX2hhbmRz
aGFrZSkKLSAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcyhhZGRfY2hhbm5lbF9y
ZXF1ZXN0KQotCi0gICAgICAgICMgUmVwbGVuaXNoIDUgYnl0ZXMuCi0gICAgICAgIGZsb3dfY29u
dHJvbCA9IF9jcmVhdGVfZmxvd19jb250cm9sX2ZyYW1lKGNoYW5uZWxfaWQ9MiwKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVwbGVuaXNoZWRfcXVv
dGE9NSkKLSAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcyhmbG93X2NvbnRyb2wp
Ci0KLSAgICAgICAgIyBTZW5kIDEwIGJ5dGVzLiBUaGUgc2VydmVyIHdpbGwgdHJ5IGVjaG8gYmFj
ayAxMCBieXRlcy4KLSAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcygKLSAgICAg
ICAgICAgIF9jcmVhdGVfbG9naWNhbF9mcmFtZShjaGFubmVsX2lkPTIsIG1lc3NhZ2U9J0hlbGxv
V29ybGQnKSkKLQotICAgICAgICAjIFJlcGxlbmlzaCA1ICsgMSAocGVyLW1lc3NhZ2UgZXh0cmEg
Y29zdCkgYnl0ZXMuCi0gICAgICAgIGZsb3dfY29udHJvbCA9IF9jcmVhdGVfZmxvd19jb250cm9s
X2ZyYW1lKGNoYW5uZWxfaWQ9MiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgcmVwbGVuaXNoZWRfcXVvdGE9NikKLSAgICAgICAgcmVxdWVzdC5jb25u
ZWN0aW9uLnB1dF9ieXRlcyhmbG93X2NvbnRyb2wpCi0KLSAgICAgICAgcmVxdWVzdC5jb25uZWN0
aW9uLnB1dF9ieXRlcygKLSAgICAgICAgICAgIF9jcmVhdGVfbG9naWNhbF9mcmFtZShjaGFubmVs
X2lkPTEsIG1lc3NhZ2U9J0dvb2RieWUnKSkKLSAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1
dF9ieXRlcygKLSAgICAgICAgICAgIF9jcmVhdGVfbG9naWNhbF9mcmFtZShjaGFubmVsX2lkPTIs
IG1lc3NhZ2U9J0dvb2RieWUnKSkKLQotICAgICAgICBzZWxmLmFzc2VydFRydWUobXV4X2hhbmRs
ZXIud2FpdF91bnRpbF9kb25lKHRpbWVvdXQ9MikpCi0KLSAgICAgICAgbWVzc2FnZXMgPSByZXF1
ZXN0LmNvbm5lY3Rpb24uZ2V0X3dyaXR0ZW5fbWVzc2FnZXMoMikKLSAgICAgICAgc2VsZi5hc3Nl
cnRFcXVhbChbJ0hlbGxvV29ybGQnXSwgbWVzc2FnZXMpCi0gICAgICAgIHJlY2VpdmVkX2Zsb3df
Y29udHJvbHMgPSBbCi0gICAgICAgICAgICBiIGZvciBiIGluIHJlcXVlc3QuY29ubmVjdGlvbi5n
ZXRfd3JpdHRlbl9jb250cm9sX2Jsb2NrcygpCi0gICAgICAgICAgICBpZiBiLm9wY29kZSA9PSBt
dXguX01VWF9PUENPREVfRkxPV19DT05UUk9MIGFuZCBiLmNoYW5uZWxfaWQgPT0gMl0KLSAgICAg
ICAgIyBSZXBsZW5pc2htZW50IGZvciAnSGVsbG9Xb3JsZCcgKyAxCi0gICAgICAgIHNlbGYuYXNz
ZXJ0RXF1YWwoMTEsIHJlY2VpdmVkX2Zsb3dfY29udHJvbHNbMF0uc2VuZF9xdW90YSkKLSAgICAg
ICAgIyBSZXBsZW5pc2htZW50IGZvciAnR29vZGJ5ZScgKyAxCi0gICAgICAgIHNlbGYuYXNzZXJ0
RXF1YWwoOCwgcmVjZWl2ZWRfZmxvd19jb250cm9sc1sxXS5zZW5kX3F1b3RhKQotCi0gICAgZGVm
IHRlc3Rfbm9fc2VuZF9xdW90YV9vbl9zZXJ2ZXIoc2VsZik6Ci0gICAgICAgIHJlcXVlc3QgPSBf
Y3JlYXRlX21vY2tfcmVxdWVzdCgpCi0gICAgICAgIGRpc3BhdGNoZXIgPSBfTXV4TW9ja0Rpc3Bh
dGNoZXIoKQotICAgICAgICBtdXhfaGFuZGxlciA9IG11eC5fTXV4SGFuZGxlcihyZXF1ZXN0LCBk
aXNwYXRjaGVyKQotICAgICAgICBtdXhfaGFuZGxlci5zdGFydCgpCi0gICAgICAgIG11eF9oYW5k
bGVyLmFkZF9jaGFubmVsX3Nsb3RzKG11eC5fSU5JVElBTF9OVU1CRVJfT0ZfQ0hBTk5FTF9TTE9U
UywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbXV4Ll9JTklUSUFMX1FV
T1RBX0ZPUl9DTElFTlQpCi0KLSAgICAgICAgZW5jb2RlZF9oYW5kc2hha2UgPSBfY3JlYXRlX3Jl
cXVlc3RfaGVhZGVyKHBhdGg9Jy9lY2hvJykKLSAgICAgICAgYWRkX2NoYW5uZWxfcmVxdWVzdCA9
IF9jcmVhdGVfYWRkX2NoYW5uZWxfcmVxdWVzdF9mcmFtZSgKLSAgICAgICAgICAgIGNoYW5uZWxf
aWQ9MiwgZW5jb2Rpbmc9MCwKLSAgICAgICAgICAgIGVuY29kZWRfaGFuZHNoYWtlPWVuY29kZWRf
aGFuZHNoYWtlKQotICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKGFkZF9jaGFu
bmVsX3JlcXVlc3QpCi0KLSAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcygKLSAg
ICAgICAgICAgIF9jcmVhdGVfbG9naWNhbF9mcmFtZShjaGFubmVsX2lkPTIsIG1lc3NhZ2U9J0hl
bGxvV29ybGQnKSkKLQotICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKAotICAg
ICAgICAgICAgX2NyZWF0ZV9sb2dpY2FsX2ZyYW1lKGNoYW5uZWxfaWQ9MSwgbWVzc2FnZT0nR29v
ZGJ5ZScpKQotCi0gICAgICAgICMgSnVzdCB3YWl0IGZvciAxIHNlYyBzbyB0aGF0IHRoZSBzZXJ2
ZXIgYXR0ZW1wdHMgdG8gZWNobyBiYWNrCi0gICAgICAgICMgJ0hlbGxvV29ybGQnLgotICAgICAg
ICBzZWxmLmFzc2VydEZhbHNlKG11eF9oYW5kbGVyLndhaXRfdW50aWxfZG9uZSh0aW1lb3V0PTEp
KQotCi0gICAgICAgICMgTm8gbWVzc2FnZSBzaG91bGQgYmUgc2VudCBvbiBjaGFubmVsIDIuCi0g
ICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKEtleUVycm9yLAotICAgICAgICAgICAgICAgICAgICAg
ICAgICByZXF1ZXN0LmNvbm5lY3Rpb24uZ2V0X3dyaXR0ZW5fbWVzc2FnZXMsCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgIDIpCi0KLSAgICBkZWYgdGVzdF9ub19zZW5kX3F1b3RhX29uX3NlcnZl
cl9mb3JfcGVybWVzc2FnZV9leHRyYV9jb3N0KHNlbGYpOgotICAgICAgICByZXF1ZXN0ID0gX2Ny
ZWF0ZV9tb2NrX3JlcXVlc3QoKQotICAgICAgICBkaXNwYXRjaGVyID0gX011eE1vY2tEaXNwYXRj
aGVyKCkKLSAgICAgICAgbXV4X2hhbmRsZXIgPSBtdXguX011eEhhbmRsZXIocmVxdWVzdCwgZGlz
cGF0Y2hlcikKLSAgICAgICAgbXV4X2hhbmRsZXIuc3RhcnQoKQotICAgICAgICBtdXhfaGFuZGxl
ci5hZGRfY2hhbm5lbF9zbG90cyhtdXguX0lOSVRJQUxfTlVNQkVSX09GX0NIQU5ORUxfU0xPVFMs
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG11eC5fSU5JVElBTF9RVU9U
QV9GT1JfQ0xJRU5UKQotCi0gICAgICAgIGVuY29kZWRfaGFuZHNoYWtlID0gX2NyZWF0ZV9yZXF1
ZXN0X2hlYWRlcihwYXRoPScvZWNobycpCi0gICAgICAgIGFkZF9jaGFubmVsX3JlcXVlc3QgPSBf
Y3JlYXRlX2FkZF9jaGFubmVsX3JlcXVlc3RfZnJhbWUoCi0gICAgICAgICAgICBjaGFubmVsX2lk
PTIsIGVuY29kaW5nPTAsCi0gICAgICAgICAgICBlbmNvZGVkX2hhbmRzaGFrZT1lbmNvZGVkX2hh
bmRzaGFrZSkKLSAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcyhhZGRfY2hhbm5l
bF9yZXF1ZXN0KQotCi0gICAgICAgIGZsb3dfY29udHJvbCA9IF9jcmVhdGVfZmxvd19jb250cm9s
X2ZyYW1lKGNoYW5uZWxfaWQ9MiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgcmVwbGVuaXNoZWRfcXVvdGE9NikKLSAgICAgICAgcmVxdWVzdC5jb25u
ZWN0aW9uLnB1dF9ieXRlcyhmbG93X2NvbnRyb2wpCi0gICAgICAgIHJlcXVlc3QuY29ubmVjdGlv
bi5wdXRfYnl0ZXMoCi0gICAgICAgICAgICBfY3JlYXRlX2xvZ2ljYWxfZnJhbWUoY2hhbm5lbF9p
ZD0yLCBtZXNzYWdlPSdIZWxsbycpKQotICAgICAgICAjIFJlcGxlbmlzaCBvbmx5IGxlbignV29y
bGQnKSBieXRlcy4KLSAgICAgICAgZmxvd19jb250cm9sID0gX2NyZWF0ZV9mbG93X2NvbnRyb2xf
ZnJhbWUoY2hhbm5lbF9pZD0yLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICByZXBsZW5pc2hlZF9xdW90YT01KQotICAgICAgICByZXF1ZXN0LmNvbm5l
Y3Rpb24ucHV0X2J5dGVzKGZsb3dfY29udHJvbCkKLSAgICAgICAgIyBTZXJ2ZXIgc2hvdWxkIG5v
dCBjYWxsYmFjayBmb3IgdGhpcyBtZXNzYWdlLgotICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24u
cHV0X2J5dGVzKAotICAgICAgICAgICAgX2NyZWF0ZV9sb2dpY2FsX2ZyYW1lKGNoYW5uZWxfaWQ9
MiwgbWVzc2FnZT0nV29ybGQnKSkKLQotICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5
dGVzKAotICAgICAgICAgICAgX2NyZWF0ZV9sb2dpY2FsX2ZyYW1lKGNoYW5uZWxfaWQ9MSwgbWVz
c2FnZT0nR29vZGJ5ZScpKQotCi0gICAgICAgICMgSnVzdCB3YWl0IGZvciAxIHNlYyBzbyB0aGF0
IHRoZSBzZXJ2ZXIgYXR0ZW1wdHMgdG8gZWNobyBiYWNrCi0gICAgICAgICMgJ1dvcmxkJy4KLSAg
ICAgICAgc2VsZi5hc3NlcnRGYWxzZShtdXhfaGFuZGxlci53YWl0X3VudGlsX2RvbmUodGltZW91
dD0xKSkKLQotICAgICAgICAjIE9ubHkgb25lIG1lc3NhZ2Ugc2hvdWxkIGJlIHNlbnQgb24gY2hh
bm5lbCAyLgotICAgICAgICBtZXNzYWdlcyA9IHJlcXVlc3QuY29ubmVjdGlvbi5nZXRfd3JpdHRl
bl9tZXNzYWdlcygyKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKFsnSGVsbG8nXSwgbWVzc2Fn
ZXMpCi0KLSAgICBkZWYgdGVzdF9xdW90YV92aW9sYXRpb25fYnlfY2xpZW50KHNlbGYpOgotICAg
ICAgICByZXF1ZXN0ID0gX2NyZWF0ZV9tb2NrX3JlcXVlc3QoKQotICAgICAgICBkaXNwYXRjaGVy
ID0gX011eE1vY2tEaXNwYXRjaGVyKCkKLSAgICAgICAgbXV4X2hhbmRsZXIgPSBtdXguX011eEhh
bmRsZXIocmVxdWVzdCwgZGlzcGF0Y2hlcikKLSAgICAgICAgbXV4X2hhbmRsZXIuc3RhcnQoKQot
ICAgICAgICBtdXhfaGFuZGxlci5hZGRfY2hhbm5lbF9zbG90cyhtdXguX0lOSVRJQUxfTlVNQkVS
X09GX0NIQU5ORUxfU0xPVFMsIDApCi0KLSAgICAgICAgZW5jb2RlZF9oYW5kc2hha2UgPSBfY3Jl
YXRlX3JlcXVlc3RfaGVhZGVyKHBhdGg9Jy9lY2hvJykKLSAgICAgICAgYWRkX2NoYW5uZWxfcmVx
dWVzdCA9IF9jcmVhdGVfYWRkX2NoYW5uZWxfcmVxdWVzdF9mcmFtZSgKLSAgICAgICAgICAgIGNo
YW5uZWxfaWQ9MiwgZW5jb2Rpbmc9MCwKLSAgICAgICAgICAgIGVuY29kZWRfaGFuZHNoYWtlPWVu
Y29kZWRfaGFuZHNoYWtlKQotICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKGFk
ZF9jaGFubmVsX3JlcXVlc3QpCi0KLSAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRl
cygKLSAgICAgICAgICAgIF9jcmVhdGVfbG9naWNhbF9mcmFtZShjaGFubmVsX2lkPTIsIG1lc3Nh
Z2U9J0hlbGxvV29ybGQnKSkKLQotICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVz
KAotICAgICAgICAgICAgX2NyZWF0ZV9sb2dpY2FsX2ZyYW1lKGNoYW5uZWxfaWQ9MSwgbWVzc2Fn
ZT0nR29vZGJ5ZScpKQotCi0gICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShtdXhfaGFuZGxlci53YWl0
X3VudGlsX2RvbmUodGltZW91dD0yKSkKLQotICAgICAgICBjb250cm9sX2Jsb2NrcyA9IHJlcXVl
c3QuY29ubmVjdGlvbi5nZXRfd3JpdHRlbl9jb250cm9sX2Jsb2NrcygpCi0gICAgICAgIHNlbGYu
YXNzZXJ0RXF1YWwoNSwgbGVuKGNvbnRyb2xfYmxvY2tzKSkKLSAgICAgICAgZHJvcF9jaGFubmVs
ID0gbmV4dCgKLSAgICAgICAgICAgIGIgZm9yIGIgaW4gY29udHJvbF9ibG9ja3MKLSAgICAgICAg
ICAgIGlmIGIub3Bjb2RlID09IG11eC5fTVVYX09QQ09ERV9EUk9QX0NIQU5ORUwpCi0gICAgICAg
IHNlbGYuYXNzZXJ0RXF1YWwobXV4Ll9EUk9QX0NPREVfU0VORF9RVU9UQV9WSU9MQVRJT04sCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgZHJvcF9jaGFubmVsLmRyb3BfY29kZSkKLQotICAgIGRl
ZiB0ZXN0X2NvbnN1bWVfcXVvdGFfZW1wdHlfbWVzc2FnZShzZWxmKToKLSAgICAgICAgcmVxdWVz
dCA9IF9jcmVhdGVfbW9ja19yZXF1ZXN0KCkKLSAgICAgICAgZGlzcGF0Y2hlciA9IF9NdXhNb2Nr
RGlzcGF0Y2hlcigpCi0gICAgICAgIG11eF9oYW5kbGVyID0gbXV4Ll9NdXhIYW5kbGVyKHJlcXVl
c3QsIGRpc3BhdGNoZXIpCi0gICAgICAgIG11eF9oYW5kbGVyLnN0YXJ0KCkKLSAgICAgICAgIyBD
bGllbnQgaGFzIDEgYnl0ZSBxdW90YS4KLSAgICAgICAgbXV4X2hhbmRsZXIuYWRkX2NoYW5uZWxf
c2xvdHMobXV4Ll9JTklUSUFMX05VTUJFUl9PRl9DSEFOTkVMX1NMT1RTLCAxKQotCi0gICAgICAg
IGVuY29kZWRfaGFuZHNoYWtlID0gX2NyZWF0ZV9yZXF1ZXN0X2hlYWRlcihwYXRoPScvZWNobycp
Ci0gICAgICAgIGFkZF9jaGFubmVsX3JlcXVlc3QgPSBfY3JlYXRlX2FkZF9jaGFubmVsX3JlcXVl
c3RfZnJhbWUoCi0gICAgICAgICAgICBjaGFubmVsX2lkPTIsIGVuY29kaW5nPTAsCi0gICAgICAg
ICAgICBlbmNvZGVkX2hhbmRzaGFrZT1lbmNvZGVkX2hhbmRzaGFrZSkKLSAgICAgICAgcmVxdWVz
dC5jb25uZWN0aW9uLnB1dF9ieXRlcyhhZGRfY2hhbm5lbF9yZXF1ZXN0KQotCi0gICAgICAgIGZs
b3dfY29udHJvbCA9IF9jcmVhdGVfZmxvd19jb250cm9sX2ZyYW1lKGNoYW5uZWxfaWQ9MiwKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVwbGVuaXNo
ZWRfcXVvdGE9MikKLSAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcyhmbG93X2Nv
bnRyb2wpCi0gICAgICAgICMgU2VuZCBhbiBlbXB0eSBtZXNzYWdlLiBQeXdlYnNvY2tldCBhbHdh
eXMgcmVwbGVuaXNoZXMgMSBieXRlIHF1b3RhCi0gICAgICAgICMgZm9yIGVtcHR5IG1lc3NhZ2UK
LSAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcygKLSAgICAgICAgICAgIF9jcmVh
dGVfbG9naWNhbF9mcmFtZShjaGFubmVsX2lkPTIsIG1lc3NhZ2U9JycpKQotCi0gICAgICAgIHJl
cXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMoCi0gICAgICAgICAgICBfY3JlYXRlX2xvZ2ljYWxf
ZnJhbWUoY2hhbm5lbF9pZD0xLCBtZXNzYWdlPSdHb29kYnllJykpCi0gICAgICAgICMgVGhpcyBt
ZXNzYWdlIHZpb2xhdGVzIHF1b3RhIG9uIGNoYW5uZWwgaWQgMi4KLSAgICAgICAgcmVxdWVzdC5j
b25uZWN0aW9uLnB1dF9ieXRlcygKLSAgICAgICAgICAgIF9jcmVhdGVfbG9naWNhbF9mcmFtZShj
aGFubmVsX2lkPTIsIG1lc3NhZ2U9J0dvb2RieWUnKSkKLQotICAgICAgICBzZWxmLmFzc2VydFRy
dWUobXV4X2hhbmRsZXIud2FpdF91bnRpbF9kb25lKHRpbWVvdXQ9MikpCi0KLSAgICAgICAgc2Vs
Zi5hc3NlcnRFcXVhbCgxLCBsZW4oZGlzcGF0Y2hlci5jaGFubmVsX2V2ZW50c1syXS5tZXNzYWdl
cykpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJycsIGRpc3BhdGNoZXIuY2hhbm5lbF9ldmVu
dHNbMl0ubWVzc2FnZXNbMF0pCi0KLSAgICAgICAgcmVjZWl2ZWRfZmxvd19jb250cm9scyA9IFsK
LSAgICAgICAgICAgIGIgZm9yIGIgaW4gcmVxdWVzdC5jb25uZWN0aW9uLmdldF93cml0dGVuX2Nv
bnRyb2xfYmxvY2tzKCkKLSAgICAgICAgICAgIGlmIGIub3Bjb2RlID09IG11eC5fTVVYX09QQ09E
RV9GTE9XX0NPTlRST0wgYW5kIGIuY2hhbm5lbF9pZCA9PSAyXQotICAgICAgICBzZWxmLmFzc2Vy
dEVxdWFsKDEsIGxlbihyZWNlaXZlZF9mbG93X2NvbnRyb2xzKSkKLSAgICAgICAgc2VsZi5hc3Nl
cnRFcXVhbCgxLCByZWNlaXZlZF9mbG93X2NvbnRyb2xzWzBdLnNlbmRfcXVvdGEpCi0KLSAgICAg
ICAgZHJvcF9jaGFubmVsID0gbmV4dCgKLSAgICAgICAgICAgIGIgZm9yIGIgaW4gcmVxdWVzdC5j
b25uZWN0aW9uLmdldF93cml0dGVuX2NvbnRyb2xfYmxvY2tzKCkKLSAgICAgICAgICAgIGlmIGIu
b3Bjb2RlID09IG11eC5fTVVYX09QQ09ERV9EUk9QX0NIQU5ORUwpCi0gICAgICAgIHNlbGYuYXNz
ZXJ0RXF1YWwoMiwgZHJvcF9jaGFubmVsLmNoYW5uZWxfaWQpCi0gICAgICAgIHNlbGYuYXNzZXJ0
RXF1YWwobXV4Ll9EUk9QX0NPREVfU0VORF9RVU9UQV9WSU9MQVRJT04sCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgZHJvcF9jaGFubmVsLmRyb3BfY29kZSkKLQotICAgIGRlZiB0ZXN0X2NvbnN1
bWVfcXVvdGFfZnJhZ21lbnRlZF9tZXNzYWdlKHNlbGYpOgotICAgICAgICByZXF1ZXN0ID0gX2Ny
ZWF0ZV9tb2NrX3JlcXVlc3QoKQotICAgICAgICBkaXNwYXRjaGVyID0gX011eE1vY2tEaXNwYXRj
aGVyKCkKLSAgICAgICAgbXV4X2hhbmRsZXIgPSBtdXguX011eEhhbmRsZXIocmVxdWVzdCwgZGlz
cGF0Y2hlcikKLSAgICAgICAgbXV4X2hhbmRsZXIuc3RhcnQoKQotICAgICAgICAjIENsaWVudCBo
YXMgbGVuKCdIZWxsbycpICsgbGVuKCdHb29kYnllJykgKyAyIGJ5dGVzIHF1b3RhLgotICAgICAg
ICBtdXhfaGFuZGxlci5hZGRfY2hhbm5lbF9zbG90cyhtdXguX0lOSVRJQUxfTlVNQkVSX09GX0NI
QU5ORUxfU0xPVFMsIDE0KQotCi0gICAgICAgIGVuY29kZWRfaGFuZHNoYWtlID0gX2NyZWF0ZV9y
ZXF1ZXN0X2hlYWRlcihwYXRoPScvZWNobycpCi0gICAgICAgIGFkZF9jaGFubmVsX3JlcXVlc3Qg
PSBfY3JlYXRlX2FkZF9jaGFubmVsX3JlcXVlc3RfZnJhbWUoCi0gICAgICAgICAgICBjaGFubmVs
X2lkPTIsIGVuY29kaW5nPTAsCi0gICAgICAgICAgICBlbmNvZGVkX2hhbmRzaGFrZT1lbmNvZGVk
X2hhbmRzaGFrZSkKLSAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcyhhZGRfY2hh
bm5lbF9yZXF1ZXN0KQotCi0gICAgICAgIGZsb3dfY29udHJvbCA9IF9jcmVhdGVfZmxvd19jb250
cm9sX2ZyYW1lKGNoYW5uZWxfaWQ9MiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgcmVwbGVuaXNoZWRfcXVvdGE9NikKLSAgICAgICAgcmVxdWVzdC5j
b25uZWN0aW9uLnB1dF9ieXRlcyhmbG93X2NvbnRyb2wpCi0gICAgICAgIHJlcXVlc3QuY29ubmVj
dGlvbi5wdXRfYnl0ZXMoCi0gICAgICAgICAgICBfY3JlYXRlX2xvZ2ljYWxfZnJhbWUoY2hhbm5l
bF9pZD0yLCBtZXNzYWdlPSdIZScsIGZpbj1GYWxzZSwKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBvcGNvZGU9Y29tbW9uLk9QQ09ERV9URVhUKSkKLSAgICAgICAgcmVxdWVzdC5j
b25uZWN0aW9uLnB1dF9ieXRlcygKLSAgICAgICAgICAgIF9jcmVhdGVfbG9naWNhbF9mcmFtZShj
aGFubmVsX2lkPTIsIG1lc3NhZ2U9J2xsbycsIGZpbj1UcnVlLAotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIG9wY29kZT1jb21tb24uT1BDT0RFX0NPTlRJTlVBVElPTikpCi0KLSAg
ICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcygKLSAgICAgICAgICAgIF9jcmVhdGVf
bG9naWNhbF9mcmFtZShjaGFubmVsX2lkPTEsIG1lc3NhZ2U9J0dvb2RieWUnKSkKLSAgICAgICAg
cmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcygKLSAgICAgICAgICAgIF9jcmVhdGVfbG9naWNh
bF9mcmFtZShjaGFubmVsX2lkPTIsIG1lc3NhZ2U9J0dvb2RieWUnKSkKLQotICAgICAgICBzZWxm
LmFzc2VydFRydWUobXV4X2hhbmRsZXIud2FpdF91bnRpbF9kb25lKHRpbWVvdXQ9MikpCi0KLSAg
ICAgICAgbWVzc2FnZXMgPSByZXF1ZXN0LmNvbm5lY3Rpb24uZ2V0X3dyaXR0ZW5fbWVzc2FnZXMo
MikKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChbJ0hlbGxvJ10sIG1lc3NhZ2VzKQotCi0gICAg
ZGVmIHRlc3RfZnJhZ21lbnRlZF9jb250cm9sX21lc3NhZ2Uoc2VsZik6Ci0gICAgICAgIHJlcXVl
c3QgPSBfY3JlYXRlX21vY2tfcmVxdWVzdCgpCi0gICAgICAgIGRpc3BhdGNoZXIgPSBfTXV4TW9j
a0Rpc3BhdGNoZXIoKQotICAgICAgICBtdXhfaGFuZGxlciA9IG11eC5fTXV4SGFuZGxlcihyZXF1
ZXN0LCBkaXNwYXRjaGVyKQotICAgICAgICBtdXhfaGFuZGxlci5zdGFydCgpCi0gICAgICAgIG11
eF9oYW5kbGVyLmFkZF9jaGFubmVsX3Nsb3RzKG11eC5fSU5JVElBTF9OVU1CRVJfT0ZfQ0hBTk5F
TF9TTE9UUywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbXV4Ll9JTklU
SUFMX1FVT1RBX0ZPUl9DTElFTlQpCi0KLSAgICAgICAgZW5jb2RlZF9oYW5kc2hha2UgPSBfY3Jl
YXRlX3JlcXVlc3RfaGVhZGVyKHBhdGg9Jy9waW5nJykKLSAgICAgICAgYWRkX2NoYW5uZWxfcmVx
dWVzdCA9IF9jcmVhdGVfYWRkX2NoYW5uZWxfcmVxdWVzdF9mcmFtZSgKLSAgICAgICAgICAgIGNo
YW5uZWxfaWQ9MiwgZW5jb2Rpbmc9MCwKLSAgICAgICAgICAgIGVuY29kZWRfaGFuZHNoYWtlPWVu
Y29kZWRfaGFuZHNoYWtlKQotICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKGFk
ZF9jaGFubmVsX3JlcXVlc3QpCi0KLSAgICAgICAgIyBSZXBsZW5pc2ggdG90YWwgNiBieXRlcyBp
biAzIEZsb3dDb250cm9scy4KLSAgICAgICAgZmxvd19jb250cm9sID0gX2NyZWF0ZV9mbG93X2Nv
bnRyb2xfZnJhbWUoY2hhbm5lbF9pZD0yLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICByZXBsZW5pc2hlZF9xdW90YT0xKQotICAgICAgICByZXF1ZXN0
LmNvbm5lY3Rpb24ucHV0X2J5dGVzKGZsb3dfY29udHJvbCkKLQotICAgICAgICBmbG93X2NvbnRy
b2wgPSBfY3JlYXRlX2Zsb3dfY29udHJvbF9mcmFtZShjaGFubmVsX2lkPTIsCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcGxlbmlzaGVkX3F1b3Rh
PTIpCi0gICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMoZmxvd19jb250cm9sKQot
Ci0gICAgICAgIGZsb3dfY29udHJvbCA9IF9jcmVhdGVfZmxvd19jb250cm9sX2ZyYW1lKGNoYW5u
ZWxfaWQ9MiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgcmVwbGVuaXNoZWRfcXVvdGE9MykKLSAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9i
eXRlcyhmbG93X2NvbnRyb2wpCi0KLSAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRl
cygKLSAgICAgICAgICAgIF9jcmVhdGVfbG9naWNhbF9mcmFtZShjaGFubmVsX2lkPTEsIG1lc3Nh
Z2U9J0dvb2RieWUnKSkKLQotICAgICAgICBzZWxmLmFzc2VydFRydWUobXV4X2hhbmRsZXIud2Fp
dF91bnRpbF9kb25lKHRpbWVvdXQ9MikpCi0KLSAgICAgICAgbWVzc2FnZXMgPSByZXF1ZXN0LmNv
bm5lY3Rpb24uZ2V0X3dyaXR0ZW5fY29udHJvbF9tZXNzYWdlcygyKQotICAgICAgICBzZWxmLmFz
c2VydEVxdWFsKGNvbW1vbi5PUENPREVfUElORywgbWVzc2FnZXNbMF1bJ29wY29kZSddKQotICAg
ICAgICBzZWxmLmFzc2VydEVxdWFsKCdQaW5nIScsIG1lc3NhZ2VzWzBdWydtZXNzYWdlJ10pCi0K
LSAgICBkZWYgdGVzdF9jaGFubmVsX3Nsb3RfdmlvbGF0aW9uX2J5X2NsaWVudChzZWxmKToKLSAg
ICAgICAgcmVxdWVzdCA9IF9jcmVhdGVfbW9ja19yZXF1ZXN0KCkKLSAgICAgICAgZGlzcGF0Y2hl
ciA9IF9NdXhNb2NrRGlzcGF0Y2hlcigpCi0gICAgICAgIG11eF9oYW5kbGVyID0gbXV4Ll9NdXhI
YW5kbGVyKHJlcXVlc3QsIGRpc3BhdGNoZXIpCi0gICAgICAgIG11eF9oYW5kbGVyLnN0YXJ0KCkK
LSAgICAgICAgbXV4X2hhbmRsZXIuYWRkX2NoYW5uZWxfc2xvdHMoc2xvdHM9MSwKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VuZF9xdW90YT1tdXguX0lOSVRJQUxfUVVP
VEFfRk9SX0NMSUVOVCkKLQotICAgICAgICBlbmNvZGVkX2hhbmRzaGFrZSA9IF9jcmVhdGVfcmVx
dWVzdF9oZWFkZXIocGF0aD0nL2VjaG8nKQotICAgICAgICBhZGRfY2hhbm5lbF9yZXF1ZXN0ID0g
X2NyZWF0ZV9hZGRfY2hhbm5lbF9yZXF1ZXN0X2ZyYW1lKAotICAgICAgICAgICAgY2hhbm5lbF9p
ZD0yLCBlbmNvZGluZz0wLAotICAgICAgICAgICAgZW5jb2RlZF9oYW5kc2hha2U9ZW5jb2RlZF9o
YW5kc2hha2UpCi0gICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMoYWRkX2NoYW5u
ZWxfcmVxdWVzdCkKLSAgICAgICAgZmxvd19jb250cm9sID0gX2NyZWF0ZV9mbG93X2NvbnRyb2xf
ZnJhbWUoY2hhbm5lbF9pZD0yLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICByZXBsZW5pc2hlZF9xdW90YT02KQotICAgICAgICByZXF1ZXN0LmNvbm5l
Y3Rpb24ucHV0X2J5dGVzKGZsb3dfY29udHJvbCkKLQotICAgICAgICByZXF1ZXN0LmNvbm5lY3Rp
b24ucHV0X2J5dGVzKAotICAgICAgICAgICAgX2NyZWF0ZV9sb2dpY2FsX2ZyYW1lKGNoYW5uZWxf
aWQ9MiwgbWVzc2FnZT0nSGVsbG8nKSkKLQotICAgICAgICAjIFRoaXMgcmVxdWVzdCBzaG91bGQg
YmUgcmVqZWN0ZWQuCi0gICAgICAgIGVuY29kZWRfaGFuZHNoYWtlID0gX2NyZWF0ZV9yZXF1ZXN0
X2hlYWRlcihwYXRoPScvZWNobycpCi0gICAgICAgIGFkZF9jaGFubmVsX3JlcXVlc3QgPSBfY3Jl
YXRlX2FkZF9jaGFubmVsX3JlcXVlc3RfZnJhbWUoCi0gICAgICAgICAgICBjaGFubmVsX2lkPTMs
IGVuY29kaW5nPTAsCi0gICAgICAgICAgICBlbmNvZGVkX2hhbmRzaGFrZT1lbmNvZGVkX2hhbmRz
aGFrZSkKLSAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcyhhZGRfY2hhbm5lbF9y
ZXF1ZXN0KQotICAgICAgICBmbG93X2NvbnRyb2wgPSBfY3JlYXRlX2Zsb3dfY29udHJvbF9mcmFt
ZShjaGFubmVsX2lkPTMsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHJlcGxlbmlzaGVkX3F1b3RhPTYpCi0gICAgICAgIHJlcXVlc3QuY29ubmVjdGlv
bi5wdXRfYnl0ZXMoZmxvd19jb250cm9sKQotCi0gICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5w
dXRfYnl0ZXMoCi0gICAgICAgICAgICBfY3JlYXRlX2xvZ2ljYWxfZnJhbWUoY2hhbm5lbF9pZD0z
LCBtZXNzYWdlPSdIZWxsbycpKQotCi0gICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0
ZXMoCi0gICAgICAgICAgICBfY3JlYXRlX2xvZ2ljYWxfZnJhbWUoY2hhbm5lbF9pZD0xLCBtZXNz
YWdlPSdHb29kYnllJykpCi0gICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMoCi0g
ICAgICAgICAgICBfY3JlYXRlX2xvZ2ljYWxfZnJhbWUoY2hhbm5lbF9pZD0yLCBtZXNzYWdlPSdH
b29kYnllJykpCi0KLSAgICAgICAgc2VsZi5hc3NlcnRUcnVlKG11eF9oYW5kbGVyLndhaXRfdW50
aWxfZG9uZSh0aW1lb3V0PTIpKQotCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoW10sIGRpc3Bh
dGNoZXIuY2hhbm5lbF9ldmVudHNbMV0ubWVzc2FnZXMpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1
YWwoWydIZWxsbyddLCBkaXNwYXRjaGVyLmNoYW5uZWxfZXZlbnRzWzJdLm1lc3NhZ2VzKQotICAg
ICAgICBzZWxmLmFzc2VydEZhbHNlKGRpc3BhdGNoZXIuY2hhbm5lbF9ldmVudHMuaGFzX2tleSgz
KSkKLSAgICAgICAgZHJvcF9jaGFubmVsID0gbmV4dCgKLSAgICAgICAgICAgIGIgZm9yIGIgaW4g
cmVxdWVzdC5jb25uZWN0aW9uLmdldF93cml0dGVuX2NvbnRyb2xfYmxvY2tzKCkKLSAgICAgICAg
ICAgIGlmIGIub3Bjb2RlID09IG11eC5fTVVYX09QQ09ERV9EUk9QX0NIQU5ORUwpCi0gICAgICAg
IHNlbGYuYXNzZXJ0RXF1YWwoMywgZHJvcF9jaGFubmVsLmNoYW5uZWxfaWQpCi0gICAgICAgIHNl
bGYuYXNzZXJ0RXF1YWwobXV4Ll9EUk9QX0NPREVfTkVXX0NIQU5ORUxfU0xPVF9WSU9MQVRJT04s
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgZHJvcF9jaGFubmVsLmRyb3BfY29kZSkKLQotICAg
IGRlZiB0ZXN0X3F1b3RhX292ZXJmbG93X2J5X2NsaWVudChzZWxmKToKLSAgICAgICAgcmVxdWVz
dCA9IF9jcmVhdGVfbW9ja19yZXF1ZXN0KCkKLSAgICAgICAgZGlzcGF0Y2hlciA9IF9NdXhNb2Nr
RGlzcGF0Y2hlcigpCi0gICAgICAgIG11eF9oYW5kbGVyID0gbXV4Ll9NdXhIYW5kbGVyKHJlcXVl
c3QsIGRpc3BhdGNoZXIpCi0gICAgICAgIG11eF9oYW5kbGVyLnN0YXJ0KCkKLSAgICAgICAgbXV4
X2hhbmRsZXIuYWRkX2NoYW5uZWxfc2xvdHMoc2xvdHM9MSwKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgc2VuZF9xdW90YT1tdXguX0lOSVRJQUxfUVVPVEFfRk9SX0NMSUVO
VCkKLQotICAgICAgICBlbmNvZGVkX2hhbmRzaGFrZSA9IF9jcmVhdGVfcmVxdWVzdF9oZWFkZXIo
cGF0aD0nL2VjaG8nKQotICAgICAgICBhZGRfY2hhbm5lbF9yZXF1ZXN0ID0gX2NyZWF0ZV9hZGRf
Y2hhbm5lbF9yZXF1ZXN0X2ZyYW1lKAotICAgICAgICAgICAgY2hhbm5lbF9pZD0yLCBlbmNvZGlu
Zz0wLAotICAgICAgICAgICAgZW5jb2RlZF9oYW5kc2hha2U9ZW5jb2RlZF9oYW5kc2hha2UpCi0g
ICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMoYWRkX2NoYW5uZWxfcmVxdWVzdCkK
LSAgICAgICAgIyBSZXBsZW5pc2ggMHg3RkZGRkZGRkZGRkZGRkZGIGJ5dGVzIHR3aWNlLgotICAg
ICAgICBmbG93X2NvbnRyb2wgPSBfY3JlYXRlX2Zsb3dfY29udHJvbF9mcmFtZSgKLSAgICAgICAg
ICAgIGNoYW5uZWxfaWQ9MiwKLSAgICAgICAgICAgIHJlcGxlbmlzaGVkX3F1b3RhPTB4N0ZGRkZG
RkZGRkZGRkZGRikKLSAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcyhmbG93X2Nv
bnRyb2wpCi0gICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMoZmxvd19jb250cm9s
KQotCi0gICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMoCi0gICAgICAgICAgICBf
Y3JlYXRlX2xvZ2ljYWxfZnJhbWUoY2hhbm5lbF9pZD0xLCBtZXNzYWdlPSdHb29kYnllJykpCi0K
LSAgICAgICAgc2VsZi5hc3NlcnRUcnVlKG11eF9oYW5kbGVyLndhaXRfdW50aWxfZG9uZSh0aW1l
b3V0PTIpKQotCi0gICAgICAgIGRyb3BfY2hhbm5lbCA9IG5leHQoCi0gICAgICAgICAgICBiIGZv
ciBiIGluIHJlcXVlc3QuY29ubmVjdGlvbi5nZXRfd3JpdHRlbl9jb250cm9sX2Jsb2NrcygpCi0g
ICAgICAgICAgICBpZiBiLm9wY29kZSA9PSBtdXguX01VWF9PUENPREVfRFJPUF9DSEFOTkVMKQot
ICAgICAgICBzZWxmLmFzc2VydEVxdWFsKDIsIGRyb3BfY2hhbm5lbC5jaGFubmVsX2lkKQotICAg
ICAgICBzZWxmLmFzc2VydEVxdWFsKG11eC5fRFJPUF9DT0RFX1NFTkRfUVVPVEFfT1ZFUkZMT1cs
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgZHJvcF9jaGFubmVsLmRyb3BfY29kZSkKLQotICAg
IGRlZiB0ZXN0X2ludmFsaWRfZW5jYXBzdWxhdGVkX21lc3NhZ2Uoc2VsZik6Ci0gICAgICAgIHJl
cXVlc3QgPSBfY3JlYXRlX21vY2tfcmVxdWVzdCgpCi0gICAgICAgIGRpc3BhdGNoZXIgPSBfTXV4
TW9ja0Rpc3BhdGNoZXIoKQotICAgICAgICBtdXhfaGFuZGxlciA9IG11eC5fTXV4SGFuZGxlcihy
ZXF1ZXN0LCBkaXNwYXRjaGVyKQotICAgICAgICBtdXhfaGFuZGxlci5zdGFydCgpCi0KLSAgICAg
ICAgZmlyc3RfYnl0ZSA9IChtdXguX01VWF9PUENPREVfQUREX0NIQU5ORUxfUkVRVUVTVCA8PCA1
KQotICAgICAgICBibG9jayA9IChjaHIoZmlyc3RfYnl0ZSkgKwotICAgICAgICAgICAgICAgICBt
dXguX2VuY29kZV9jaGFubmVsX2lkKDEpICsKLSAgICAgICAgICAgICAgICAgbXV4Ll9lbmNvZGVf
bnVtYmVyKDApKQotICAgICAgICBwYXlsb2FkID0gbXV4Ll9lbmNvZGVfY2hhbm5lbF9pZChtdXgu
X0NPTlRST0xfQ0hBTk5FTF9JRCkgKyBibG9jawotICAgICAgICB0ZXh0X2ZyYW1lID0gY3JlYXRl
X2JpbmFyeV9mcmFtZShwYXlsb2FkLCBvcGNvZGU9Y29tbW9uLk9QQ09ERV9URVhULAotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXNrPVRydWUpCi0gICAgICAgIHJl
cXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXModGV4dF9mcmFtZSkKLQotICAgICAgICBzZWxmLmFz
c2VydFRydWUobXV4X2hhbmRsZXIud2FpdF91bnRpbF9kb25lKHRpbWVvdXQ9MikpCi0KLSAgICAg
ICAgZHJvcF9jaGFubmVsID0gbmV4dCgKLSAgICAgICAgICAgIGIgZm9yIGIgaW4gcmVxdWVzdC5j
b25uZWN0aW9uLmdldF93cml0dGVuX2NvbnRyb2xfYmxvY2tzKCkKLSAgICAgICAgICAgIGlmIGIu
b3Bjb2RlID09IG11eC5fTVVYX09QQ09ERV9EUk9QX0NIQU5ORUwpCi0gICAgICAgIHNlbGYuYXNz
ZXJ0RXF1YWwobXV4Ll9EUk9QX0NPREVfSU5WQUxJRF9FTkNBUFNVTEFUSU5HX01FU1NBR0UsCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgZHJvcF9jaGFubmVsLmRyb3BfY29kZSkKLSAgICAgICAg
c2VsZi5hc3NlcnRFcXVhbChjb21tb24uU1RBVFVTX0lOVEVSTkFMX0VORFBPSU5UX0VSUk9SLAot
ICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5zZXJ2ZXJfY2xvc2Vf
Y29kZSkKLQotICAgIGRlZiB0ZXN0X2NoYW5uZWxfaWRfdHJ1bmNhdGVkKHNlbGYpOgotICAgICAg
ICByZXF1ZXN0ID0gX2NyZWF0ZV9tb2NrX3JlcXVlc3QoKQotICAgICAgICBkaXNwYXRjaGVyID0g
X011eE1vY2tEaXNwYXRjaGVyKCkKLSAgICAgICAgbXV4X2hhbmRsZXIgPSBtdXguX011eEhhbmRs
ZXIocmVxdWVzdCwgZGlzcGF0Y2hlcikKLSAgICAgICAgbXV4X2hhbmRsZXIuc3RhcnQoKQotCi0g
ICAgICAgICMgVGhlIGxhc3QgYnl0ZSBvZiB0aGUgY2hhbm5lbCBpZCBpcyBtaXNzaW5nLgotICAg
ICAgICBmcmFtZSA9IGNyZWF0ZV9iaW5hcnlfZnJhbWUoJ1x4ODAnLCBtYXNrPVRydWUpCi0gICAg
ICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMoZnJhbWUpCi0KLSAgICAgICAgc2VsZi5h
c3NlcnRUcnVlKG11eF9oYW5kbGVyLndhaXRfdW50aWxfZG9uZSh0aW1lb3V0PTIpKQotCi0gICAg
ICAgIGRyb3BfY2hhbm5lbCA9IG5leHQoCi0gICAgICAgICAgICBiIGZvciBiIGluIHJlcXVlc3Qu
Y29ubmVjdGlvbi5nZXRfd3JpdHRlbl9jb250cm9sX2Jsb2NrcygpCi0gICAgICAgICAgICBpZiBi
Lm9wY29kZSA9PSBtdXguX01VWF9PUENPREVfRFJPUF9DSEFOTkVMKQotICAgICAgICBzZWxmLmFz
c2VydEVxdWFsKG11eC5fRFJPUF9DT0RFX0NIQU5ORUxfSURfVFJVTkNBVEVELAotICAgICAgICAg
ICAgICAgICAgICAgICAgIGRyb3BfY2hhbm5lbC5kcm9wX2NvZGUpCi0gICAgICAgIHNlbGYuYXNz
ZXJ0RXF1YWwoY29tbW9uLlNUQVRVU19JTlRFUk5BTF9FTkRQT0lOVF9FUlJPUiwKLSAgICAgICAg
ICAgICAgICAgICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24uc2VydmVyX2Nsb3NlX2NvZGUpCi0K
LSAgICBkZWYgdGVzdF9pbm5lcl9mcmFtZV90cnVuY2F0ZWQoc2VsZik6Ci0gICAgICAgIHJlcXVl
c3QgPSBfY3JlYXRlX21vY2tfcmVxdWVzdCgpCi0gICAgICAgIGRpc3BhdGNoZXIgPSBfTXV4TW9j
a0Rpc3BhdGNoZXIoKQotICAgICAgICBtdXhfaGFuZGxlciA9IG11eC5fTXV4SGFuZGxlcihyZXF1
ZXN0LCBkaXNwYXRjaGVyKQotICAgICAgICBtdXhfaGFuZGxlci5zdGFydCgpCi0KLSAgICAgICAg
IyBKdXN0IGNvbnRhaW4gY2hhbm5lbCBpZCAxLgotICAgICAgICBmcmFtZSA9IGNyZWF0ZV9iaW5h
cnlfZnJhbWUoJ1x4MDEnLCBtYXNrPVRydWUpCi0gICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5w
dXRfYnl0ZXMoZnJhbWUpCi0KLSAgICAgICAgc2VsZi5hc3NlcnRUcnVlKG11eF9oYW5kbGVyLndh
aXRfdW50aWxfZG9uZSh0aW1lb3V0PTIpKQotCi0gICAgICAgIGRyb3BfY2hhbm5lbCA9IG5leHQo
Ci0gICAgICAgICAgICBiIGZvciBiIGluIHJlcXVlc3QuY29ubmVjdGlvbi5nZXRfd3JpdHRlbl9j
b250cm9sX2Jsb2NrcygpCi0gICAgICAgICAgICBpZiBiLm9wY29kZSA9PSBtdXguX01VWF9PUENP
REVfRFJPUF9DSEFOTkVMKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKG11eC5fRFJPUF9DT0RF
X0VOQ0FQU1VMQVRFRF9GUkFNRV9JU19UUlVOQ0FURUQsCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgZHJvcF9jaGFubmVsLmRyb3BfY29kZSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjb21t
b24uU1RBVFVTX0lOVEVSTkFMX0VORFBPSU5UX0VSUk9SLAotICAgICAgICAgICAgICAgICAgICAg
ICAgIHJlcXVlc3QuY29ubmVjdGlvbi5zZXJ2ZXJfY2xvc2VfY29kZSkKLQotICAgIGRlZiB0ZXN0
X3Vua25vd25fbXV4X29wY29kZShzZWxmKToKLSAgICAgICAgcmVxdWVzdCA9IF9jcmVhdGVfbW9j
a19yZXF1ZXN0KCkKLSAgICAgICAgZGlzcGF0Y2hlciA9IF9NdXhNb2NrRGlzcGF0Y2hlcigpCi0g
ICAgICAgIG11eF9oYW5kbGVyID0gbXV4Ll9NdXhIYW5kbGVyKHJlcXVlc3QsIGRpc3BhdGNoZXIp
Ci0gICAgICAgIG11eF9oYW5kbGVyLnN0YXJ0KCkKLQotICAgICAgICAjIFVuZGVmaW5lZCBvcGNv
ZGUgNQotICAgICAgICBmcmFtZSA9IGNyZWF0ZV9iaW5hcnlfZnJhbWUoJ1x4MDBceGEwJywgbWFz
az1UcnVlKQotICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKGZyYW1lKQotCi0g
ICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShtdXhfaGFuZGxlci53YWl0X3VudGlsX2RvbmUodGltZW91
dD0yKSkKLQotICAgICAgICBkcm9wX2NoYW5uZWwgPSBuZXh0KAotICAgICAgICAgICAgYiBmb3Ig
YiBpbiByZXF1ZXN0LmNvbm5lY3Rpb24uZ2V0X3dyaXR0ZW5fY29udHJvbF9ibG9ja3MoKQotICAg
ICAgICAgICAgaWYgYi5vcGNvZGUgPT0gbXV4Ll9NVVhfT1BDT0RFX0RST1BfQ0hBTk5FTCkKLSAg
ICAgICAgc2VsZi5hc3NlcnRFcXVhbChtdXguX0RST1BfQ09ERV9VTktOT1dOX01VWF9PUENPREUs
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgZHJvcF9jaGFubmVsLmRyb3BfY29kZSkKLSAgICAg
ICAgc2VsZi5hc3NlcnRFcXVhbChjb21tb24uU1RBVFVTX0lOVEVSTkFMX0VORFBPSU5UX0VSUk9S
LAotICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5zZXJ2ZXJfY2xv
c2VfY29kZSkKLQotICAgIGRlZiB0ZXN0X2ludmFsaWRfbXV4X2NvbnRyb2xfYmxvY2soc2VsZik6
Ci0gICAgICAgIHJlcXVlc3QgPSBfY3JlYXRlX21vY2tfcmVxdWVzdCgpCi0gICAgICAgIGRpc3Bh
dGNoZXIgPSBfTXV4TW9ja0Rpc3BhdGNoZXIoKQotICAgICAgICBtdXhfaGFuZGxlciA9IG11eC5f
TXV4SGFuZGxlcihyZXF1ZXN0LCBkaXNwYXRjaGVyKQotICAgICAgICBtdXhfaGFuZGxlci5zdGFy
dCgpCi0KLSAgICAgICAgIyBEcm9wQ2hhbm5lbCBjb250YWlucyAxIGJ5dGUgcmVhc29uCi0gICAg
ICAgIGZyYW1lID0gY3JlYXRlX2JpbmFyeV9mcmFtZSgnXHgwMFx4NjBceDAwXHgwMVx4MDAnLCBt
YXNrPVRydWUpCi0gICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMoZnJhbWUpCi0K
LSAgICAgICAgc2VsZi5hc3NlcnRUcnVlKG11eF9oYW5kbGVyLndhaXRfdW50aWxfZG9uZSh0aW1l
b3V0PTIpKQotCi0gICAgICAgIGRyb3BfY2hhbm5lbCA9IG5leHQoCi0gICAgICAgICAgICBiIGZv
ciBiIGluIHJlcXVlc3QuY29ubmVjdGlvbi5nZXRfd3JpdHRlbl9jb250cm9sX2Jsb2NrcygpCi0g
ICAgICAgICAgICBpZiBiLm9wY29kZSA9PSBtdXguX01VWF9PUENPREVfRFJPUF9DSEFOTkVMKQot
ICAgICAgICBzZWxmLmFzc2VydEVxdWFsKG11eC5fRFJPUF9DT0RFX0lOVkFMSURfTVVYX0NPTlRS
T0xfQkxPQ0ssCi0gICAgICAgICAgICAgICAgICAgICAgICAgZHJvcF9jaGFubmVsLmRyb3BfY29k
ZSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjb21tb24uU1RBVFVTX0lOVEVSTkFMX0VORFBP
SU5UX0VSUk9SLAotICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5z
ZXJ2ZXJfY2xvc2VfY29kZSkKLQotICAgIGRlZiB0ZXN0X3Blcm1lc3NhZ2VfY29tcHJlc3Moc2Vs
Zik6Ci0gICAgICAgIHJlcXVlc3QgPSBfY3JlYXRlX21vY2tfcmVxdWVzdCgpCi0gICAgICAgIGRp
c3BhdGNoZXIgPSBfTXV4TW9ja0Rpc3BhdGNoZXIoKQotICAgICAgICBtdXhfaGFuZGxlciA9IG11
eC5fTXV4SGFuZGxlcihyZXF1ZXN0LCBkaXNwYXRjaGVyKQotICAgICAgICBtdXhfaGFuZGxlci5z
dGFydCgpCi0gICAgICAgIG11eF9oYW5kbGVyLmFkZF9jaGFubmVsX3Nsb3RzKG11eC5fSU5JVElB
TF9OVU1CRVJfT0ZfQ0hBTk5FTF9TTE9UUywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgbXV4Ll9JTklUSUFMX1FVT1RBX0ZPUl9DTElFTlQpCi0KLSAgICAgICAgIyBFbmFi
bGUgcGVybWVzc2FnZSBjb21wcmVzcyBleHRlbnNpb24gb24gbG9naWNhbCBjaGFubmVsIDIuCi0g
ICAgICAgIGV4dGVuc2lvbnMgPSAnJXM7IG1ldGhvZD1kZWZsYXRlJyAlICgKLSAgICAgICAgICAg
IGNvbW1vbi5QRVJNRVNTQUdFX0NPTVBSRVNTSU9OX0VYVEVOU0lPTikKLSAgICAgICAgZW5jb2Rl
ZF9oYW5kc2hha2UgPSBfY3JlYXRlX3JlcXVlc3RfaGVhZGVyKHBhdGg9Jy9lY2hvJywKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4dGVuc2lvbnM9
ZXh0ZW5zaW9ucykKLSAgICAgICAgYWRkX2NoYW5uZWxfcmVxdWVzdCA9IF9jcmVhdGVfYWRkX2No
YW5uZWxfcmVxdWVzdF9mcmFtZSgKLSAgICAgICAgICAgIGNoYW5uZWxfaWQ9MiwgZW5jb2Rpbmc9
MCwKLSAgICAgICAgICAgIGVuY29kZWRfaGFuZHNoYWtlPWVuY29kZWRfaGFuZHNoYWtlKQotICAg
ICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKGFkZF9jaGFubmVsX3JlcXVlc3QpCi0K
LSAgICAgICAgZmxvd19jb250cm9sID0gX2NyZWF0ZV9mbG93X2NvbnRyb2xfZnJhbWUoY2hhbm5l
bF9pZD0yLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICByZXBsZW5pc2hlZF9xdW90YT0yMCkKLSAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9i
eXRlcyhmbG93X2NvbnRyb2wpCi0KLSAgICAgICAgIyBTZW5kIGNvbXByZXNzZWQgJ0hlbGxvJyB0
d2ljZS4KLSAgICAgICAgY29tcHJlc3MgPSB6bGliLmNvbXByZXNzb2JqKAotICAgICAgICAgICAg
emxpYi5aX0RFRkFVTFRfQ09NUFJFU1NJT04sIHpsaWIuREVGTEFURUQsIC16bGliLk1BWF9XQklU
UykKLSAgICAgICAgY29tcHJlc3NlZF9oZWxsbzEgPSBjb21wcmVzcy5jb21wcmVzcygnSGVsbG8n
KQotICAgICAgICBjb21wcmVzc2VkX2hlbGxvMSArPSBjb21wcmVzcy5mbHVzaCh6bGliLlpfU1lO
Q19GTFVTSCkKLSAgICAgICAgY29tcHJlc3NlZF9oZWxsbzEgPSBjb21wcmVzc2VkX2hlbGxvMVs6
LTRdCi0gICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMoCi0gICAgICAgICAgICBf
Y3JlYXRlX2xvZ2ljYWxfZnJhbWUoY2hhbm5lbF9pZD0yLCBtZXNzYWdlPWNvbXByZXNzZWRfaGVs
bG8xLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJzdjE9VHJ1ZSkpCi0gICAg
ICAgIGNvbXByZXNzZWRfaGVsbG8yID0gY29tcHJlc3MuY29tcHJlc3MoJ0hlbGxvJykKLSAgICAg
ICAgY29tcHJlc3NlZF9oZWxsbzIgKz0gY29tcHJlc3MuZmx1c2goemxpYi5aX1NZTkNfRkxVU0gp
Ci0gICAgICAgIGNvbXByZXNzZWRfaGVsbG8yID0gY29tcHJlc3NlZF9oZWxsbzJbOi00XQotICAg
ICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKAotICAgICAgICAgICAgX2NyZWF0ZV9s
b2dpY2FsX2ZyYW1lKGNoYW5uZWxfaWQ9MiwgbWVzc2FnZT1jb21wcmVzc2VkX2hlbGxvMiwKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByc3YxPVRydWUpKQotCi0gICAgICAgIHJl
cXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMoCi0gICAgICAgICAgICBfY3JlYXRlX2xvZ2ljYWxf
ZnJhbWUoY2hhbm5lbF9pZD0xLCBtZXNzYWdlPSdHb29kYnllJykpCi0gICAgICAgIHJlcXVlc3Qu
Y29ubmVjdGlvbi5wdXRfYnl0ZXMoCi0gICAgICAgICAgICBfY3JlYXRlX2xvZ2ljYWxfZnJhbWUo
Y2hhbm5lbF9pZD0yLCBtZXNzYWdlPSdHb29kYnllJykpCi0KLSAgICAgICAgc2VsZi5hc3NlcnRU
cnVlKG11eF9oYW5kbGVyLndhaXRfdW50aWxfZG9uZSh0aW1lb3V0PTIpKQotCi0gICAgICAgIHNl
bGYuYXNzZXJ0RXF1YWwoWydIZWxsbycsICdIZWxsbyddLAotICAgICAgICAgICAgICAgICAgICAg
ICAgIGRpc3BhdGNoZXIuY2hhbm5lbF9ldmVudHNbMl0ubWVzc2FnZXMpCi0gICAgICAgICMgV3Jp
dHRlbiAnSGVsbG8ncyBzaG91bGQgYmUgY29tcHJlc3NlZC4KLSAgICAgICAgbWVzc2FnZXMgPSBy
ZXF1ZXN0LmNvbm5lY3Rpb24uZ2V0X3dyaXR0ZW5fbWVzc2FnZXMoMikKLSAgICAgICAgc2VsZi5h
c3NlcnRFcXVhbCgyLCBsZW4obWVzc2FnZXMpKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGNv
bXByZXNzZWRfaGVsbG8xLCBtZXNzYWdlc1swXSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChj
b21wcmVzc2VkX2hlbGxvMiwgbWVzc2FnZXNbMV0pCi0KLQotICAgIGRlZiB0ZXN0X3Blcm1lc3Nh
Z2VfY29tcHJlc3NfZnJhZ21lbnRlZF9tZXNzYWdlKHNlbGYpOgotICAgICAgICBleHRlbnNpb25z
ID0gY29tbW9uLnBhcnNlX2V4dGVuc2lvbnMoCi0gICAgICAgICAgICAnJXM7IG1ldGhvZD1kZWZs
YXRlJyAlIGNvbW1vbi5QRVJNRVNTQUdFX0NPTVBSRVNTSU9OX0VYVEVOU0lPTikKLSAgICAgICAg
cmVxdWVzdCA9IF9jcmVhdGVfbW9ja19yZXF1ZXN0KAotICAgICAgICAgICAgbG9naWNhbF9jaGFu
bmVsX2V4dGVuc2lvbnM9ZXh0ZW5zaW9ucykKLSAgICAgICAgZGlzcGF0Y2hlciA9IF9NdXhNb2Nr
RGlzcGF0Y2hlcigpCi0gICAgICAgIG11eF9oYW5kbGVyID0gbXV4Ll9NdXhIYW5kbGVyKHJlcXVl
c3QsIGRpc3BhdGNoZXIpCi0gICAgICAgIG11eF9oYW5kbGVyLnN0YXJ0KCkKLSAgICAgICAgbXV4
X2hhbmRsZXIuYWRkX2NoYW5uZWxfc2xvdHMobXV4Ll9JTklUSUFMX05VTUJFUl9PRl9DSEFOTkVM
X1NMT1RTLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtdXguX0lOSVRJ
QUxfUVVPVEFfRk9SX0NMSUVOVCkKLQotICAgICAgICAjIFNlbmQgY29tcHJlc3NlZCAnSGVsbG9I
ZWxsb0hlbGxvJyBhcyBmcmFnbWVudGVkIG1lc3NhZ2UuCi0gICAgICAgIGNvbXByZXNzID0gemxp
Yi5jb21wcmVzc29iaigKLSAgICAgICAgICAgIHpsaWIuWl9ERUZBVUxUX0NPTVBSRVNTSU9OLCB6
bGliLkRFRkxBVEVELCAtemxpYi5NQVhfV0JJVFMpCi0gICAgICAgIGNvbXByZXNzZWRfaGVsbG8g
PSBjb21wcmVzcy5jb21wcmVzcygnSGVsbG9IZWxsb0hlbGxvJykKLSAgICAgICAgY29tcHJlc3Nl
ZF9oZWxsbyArPSBjb21wcmVzcy5mbHVzaCh6bGliLlpfU1lOQ19GTFVTSCkKLSAgICAgICAgY29t
cHJlc3NlZF9oZWxsbyA9IGNvbXByZXNzZWRfaGVsbG9bOi00XQotCi0gICAgICAgIG0gPSBsZW4o
Y29tcHJlc3NlZF9oZWxsbykgLyAyCi0gICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0
ZXMoCi0gICAgICAgICAgICBfY3JlYXRlX2xvZ2ljYWxfZnJhbWUoY2hhbm5lbF9pZD0xLAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1lc3NhZ2U9Y29tcHJlc3NlZF9oZWxsb1s6
bV0sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmluPUZhbHNlLCByc3YxPVRy
dWUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3Bjb2RlPWNvbW1vbi5PUENP
REVfVEVYVCkpCi0gICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMoCi0gICAgICAg
ICAgICBfY3JlYXRlX2xvZ2ljYWxfZnJhbWUoY2hhbm5lbF9pZD0xLAotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIG1lc3NhZ2U9Y29tcHJlc3NlZF9oZWxsb1ttOl0sCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgZmluPVRydWUsIHJzdjE9RmFsc2UsCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgb3Bjb2RlPWNvbW1vbi5PUENPREVfQ09OVElOVUFU
SU9OKSkKLQotICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKAotICAgICAgICAg
ICAgX2NyZWF0ZV9sb2dpY2FsX2ZyYW1lKGNoYW5uZWxfaWQ9MSwgbWVzc2FnZT0nR29vZGJ5ZScp
KQotCi0gICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShtdXhfaGFuZGxlci53YWl0X3VudGlsX2RvbmUo
dGltZW91dD0yKSkKLQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKFsnSGVsbG9IZWxsb0hlbGxv
J10sCi0gICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGF0Y2hlci5jaGFubmVsX2V2ZW50c1sx
XS5tZXNzYWdlcykKLSAgICAgICAgbWVzc2FnZXMgPSByZXF1ZXN0LmNvbm5lY3Rpb24uZ2V0X3dy
aXR0ZW5fbWVzc2FnZXMoMSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgxLCBsZW4obWVzc2Fn
ZXMpKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGNvbXByZXNzZWRfaGVsbG8sIG1lc3NhZ2Vz
WzBdKQotCi0gICAgZGVmIHRlc3RfcmVjZWl2ZV9iYWRfZnJhZ21lbnRlZF9tZXNzYWdlKHNlbGYp
OgotICAgICAgICByZXF1ZXN0ID0gX2NyZWF0ZV9tb2NrX3JlcXVlc3QoKQotICAgICAgICBkaXNw
YXRjaGVyID0gX011eE1vY2tEaXNwYXRjaGVyKCkKLSAgICAgICAgbXV4X2hhbmRsZXIgPSBtdXgu
X011eEhhbmRsZXIocmVxdWVzdCwgZGlzcGF0Y2hlcikKLSAgICAgICAgbXV4X2hhbmRsZXIuc3Rh
cnQoKQotICAgICAgICBtdXhfaGFuZGxlci5hZGRfY2hhbm5lbF9zbG90cyhtdXguX0lOSVRJQUxf
TlVNQkVSX09GX0NIQU5ORUxfU0xPVFMsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIG11eC5fSU5JVElBTF9RVU9UQV9GT1JfQ0xJRU5UKQotCi0gICAgICAgIGVuY29kZWRf
aGFuZHNoYWtlID0gX2NyZWF0ZV9yZXF1ZXN0X2hlYWRlcihwYXRoPScvZWNobycpCi0gICAgICAg
IGFkZF9jaGFubmVsX3JlcXVlc3QgPSBfY3JlYXRlX2FkZF9jaGFubmVsX3JlcXVlc3RfZnJhbWUo
Ci0gICAgICAgICAgICBjaGFubmVsX2lkPTIsIGVuY29kaW5nPTAsCi0gICAgICAgICAgICBlbmNv
ZGVkX2hhbmRzaGFrZT1lbmNvZGVkX2hhbmRzaGFrZSkKLSAgICAgICAgcmVxdWVzdC5jb25uZWN0
aW9uLnB1dF9ieXRlcyhhZGRfY2hhbm5lbF9yZXF1ZXN0KQotCi0gICAgICAgICMgU2VuZCBhIGZy
YW1lIHdpdGggZmluPUZhbHNlLCBhbmQgdGhlbiBzZW5kIGEgZnJhbWUgd2l0aAotICAgICAgICAj
IG9wY29kZT1URVhUIChub3QgQ09OVElOVUFUSU9OKS4gTG9naWNhbCBjaGFubmVsIDIgc2hvdWxk
IGJlIGRyb3BwZWQuCi0gICAgICAgIGZyYW1lMSA9IF9jcmVhdGVfbG9naWNhbF9mcmFtZShjaGFu
bmVsX2lkPTIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZXNzYWdl
PSdIZWxsbyAnLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmluPUZh
bHNlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3Bjb2RlPWNvbW1v
bi5PUENPREVfVEVYVCkKLSAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9uLnB1dF9ieXRlcyhmcmFt
ZTEpCi0gICAgICAgIGZyYW1lMiA9IF9jcmVhdGVfbG9naWNhbF9mcmFtZShjaGFubmVsX2lkPTIs
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZXNzYWdlPSdXb3JsZCEn
LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmluPVRydWUsCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcGNvZGU9Y29tbW9uLk9QQ09ERV9U
RVhUKQotICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5dGVzKGZyYW1lMikKLQotICAg
ICAgICBlbmNvZGVkX2hhbmRzaGFrZSA9IF9jcmVhdGVfcmVxdWVzdF9oZWFkZXIocGF0aD0nL2Vj
aG8nKQotICAgICAgICBhZGRfY2hhbm5lbF9yZXF1ZXN0ID0gX2NyZWF0ZV9hZGRfY2hhbm5lbF9y
ZXF1ZXN0X2ZyYW1lKAotICAgICAgICAgICAgY2hhbm5lbF9pZD0zLCBlbmNvZGluZz0wLAotICAg
ICAgICAgICAgZW5jb2RlZF9oYW5kc2hha2U9ZW5jb2RlZF9oYW5kc2hha2UpCi0gICAgICAgIHJl
cXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMoYWRkX2NoYW5uZWxfcmVxdWVzdCkKLQotICAgICAg
ICAjIFNlbmQgYSBmcmFtZSB3aXRoIG9wY29kZT1DT05USU5VQVRJT04gd2l0aG91dCBhIHByZWNl
ZGluZyBmcmFtZQotICAgICAgICAjIHRoZSBmaW4gb2Ygd2hpY2ggaXMgbm90IHNldC4gTG9naWNh
bCBjaGFubmVsIDMgc2hvdWxkIGJlIGRyb3BwZWQuCi0gICAgICAgIGZyYW1lMyA9IF9jcmVhdGVf
bG9naWNhbF9mcmFtZShjaGFubmVsX2lkPTMsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBtZXNzYWdlPSdIZWxsbycsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBmaW49VHJ1ZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIG9wY29kZT1jb21tb24uT1BDT0RFX0NPTlRJTlVBVElPTikKLSAgICAgICAgcmVxdWVzdC5j
b25uZWN0aW9uLnB1dF9ieXRlcyhmcmFtZTMpCi0KLSAgICAgICAgZW5jb2RlZF9oYW5kc2hha2Ug
PSBfY3JlYXRlX3JlcXVlc3RfaGVhZGVyKHBhdGg9Jy9lY2hvJykKLSAgICAgICAgYWRkX2NoYW5u
ZWxfcmVxdWVzdCA9IF9jcmVhdGVfYWRkX2NoYW5uZWxfcmVxdWVzdF9mcmFtZSgKLSAgICAgICAg
ICAgIGNoYW5uZWxfaWQ9NCwgZW5jb2Rpbmc9MCwKLSAgICAgICAgICAgIGVuY29kZWRfaGFuZHNo
YWtlPWVuY29kZWRfaGFuZHNoYWtlKQotICAgICAgICByZXF1ZXN0LmNvbm5lY3Rpb24ucHV0X2J5
dGVzKGFkZF9jaGFubmVsX3JlcXVlc3QpCi0KLSAgICAgICAgIyBTZW5kIGEgZnJhbWUgd2l0aCBv
cGNvZGU9UElORyBhbmQgZmluPUZhbHNlLCBhbmQgdGhlbiBzZW5kIGEgZnJhbWUKLSAgICAgICAg
IyB3aXRoIG9wY29kZT1URVhUIChub3QgQ09OVElOVUFUSU9OKS4gTG9naWNhbCBjaGFubmVsIDQg
c2hvdWxkIGJlCi0gICAgICAgICMgZHJvcHBlZC4KLSAgICAgICAgZnJhbWU0ID0gX2NyZWF0ZV9s
b2dpY2FsX2ZyYW1lKGNoYW5uZWxfaWQ9NCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIG1lc3NhZ2U9J1BpbmcnLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgZmluPUZhbHNlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgb3Bjb2RlPWNvbW1vbi5PUENPREVfUElORykKLSAgICAgICAgcmVxdWVzdC5jb25uZWN0aW9u
LnB1dF9ieXRlcyhmcmFtZTQpCi0gICAgICAgIGZyYW1lNSA9IF9jcmVhdGVfbG9naWNhbF9mcmFt
ZShjaGFubmVsX2lkPTQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBt
ZXNzYWdlPSdIZWxsbycsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBm
aW49VHJ1ZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wY29kZT1j
b21tb24uT1BDT0RFX1RFWFQpCi0gICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMo
ZnJhbWU1KQotCi0gICAgICAgIHJlcXVlc3QuY29ubmVjdGlvbi5wdXRfYnl0ZXMoCi0gICAgICAg
ICAgICBfY3JlYXRlX2xvZ2ljYWxfZnJhbWUoY2hhbm5lbF9pZD0xLCBtZXNzYWdlPSdHb29kYnll
JykpCi0KLSAgICAgICAgc2VsZi5hc3NlcnRUcnVlKG11eF9oYW5kbGVyLndhaXRfdW50aWxfZG9u
ZSh0aW1lb3V0PTIpKQotCi0gICAgICAgIGRyb3BfY2hhbm5lbHMgPSBbCi0gICAgICAgICAgICBi
IGZvciBiIGluIHJlcXVlc3QuY29ubmVjdGlvbi5nZXRfd3JpdHRlbl9jb250cm9sX2Jsb2Nrcygp
Ci0gICAgICAgICAgICBpZiBiLm9wY29kZSA9PSBtdXguX01VWF9PUENPREVfRFJPUF9DSEFOTkVM
XQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKDMsIGxlbihkcm9wX2NoYW5uZWxzKSkKLSAgICAg
ICAgZm9yIGQgaW4gZHJvcF9jaGFubmVsczoKLSAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwo
bXV4Ll9EUk9QX0NPREVfQkFEX0ZSQUdNRU5UQVRJT04sCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGQuZHJvcF9jb2RlKQotCi0KLWlmIF9fbmFtZV9fID09ICdfX21haW5fXyc6Ci0gICAg
dW5pdHRlc3QubWFpbigpCi0KLQotIyB2aTpzdHM9NCBzdz00IGV0CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0
L3NyYy90ZXN0L3Rlc3Rfc3RyZWFtLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9zcmMvdGVzdC90ZXN0X3N0cmVhbS5weQpk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggODFhY2ZlYjA0OGQzYjIwMzJhNzk0OGNmYTJh
ZGVhN2NlNjRmOTVhZS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAot
LS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5
d2Vic29ja2V0L3NyYy90ZXN0L3Rlc3Rfc3RyZWFtLnB5CisrKyAvZGV2L251bGwKQEAgLTEsNzcg
KzAsMCBAQAotIyEvdXNyL2Jpbi9lbnYgcHl0aG9uCi0jCi0jIENvcHlyaWdodCAyMDExLCBHb29n
bGUgSW5jLgotIyBBbGwgcmlnaHRzIHJlc2VydmVkLgotIwotIyBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSMgbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zIGFyZQotIyBtZXQ6Ci0jCi0jICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0jIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSMgICAgICogUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQotIyBjb3B5
cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyCi0jIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUKLSMgZGlzdHJpYnV0aW9uLgotIyAgICAgKiBOZWl0aGVyIHRoZSBu
YW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCi0jIGNvbnRyaWJ1dG9ycyBt
YXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCi0j
IHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24u
Ci0jCi0jIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJT
IEFORCBDT05UUklCVVRPUlMKLSMgIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKLSMgTElNSVRFRCBUTywgVEhFIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCi0jIEEgUEFSVElD
VUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJ
R0hUCi0jIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLAotIyBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCi0jIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAotIyBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkKLSMgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVAotIyAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSMgT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLQotCi0i
IiJUZXN0cyBmb3Igc3RyZWFtIG1vZHVsZS4iIiIKLQotCi1pbXBvcnQgdW5pdHRlc3QKLQotaW1w
b3J0IHNldF9zeXNfcGF0aCAgIyBVcGRhdGUgc3lzLnBhdGggdG8gbG9jYXRlIG1vZF9weXdlYnNv
Y2tldCBtb2R1bGUuCi0KLWZyb20gbW9kX3B5d2Vic29ja2V0IGltcG9ydCBjb21tb24KLWZyb20g
bW9kX3B5d2Vic29ja2V0IGltcG9ydCBzdHJlYW0KLQotCi1jbGFzcyBTdHJlYW1UZXN0KHVuaXR0
ZXN0LlRlc3RDYXNlKToKLSAgICAiIiJBIHVuaXR0ZXN0IGZvciBzdHJlYW0gbW9kdWxlLiIiIgot
Ci0gICAgZGVmIHRlc3RfY3JlYXRlX2hlYWRlcihzZWxmKToKLSAgICAgICAgIyBtb3JlLCByc3Yx
LCAuLi4sIHJzdjQgYXJlIGFsbCB0cnVlCi0gICAgICAgIGhlYWRlciA9IHN0cmVhbS5jcmVhdGVf
aGVhZGVyKGNvbW1vbi5PUENPREVfVEVYVCwgMSwgMSwgMSwgMSwgMSwgMSkKLSAgICAgICAgc2Vs
Zi5hc3NlcnRFcXVhbCgnXHhmMVx4ODEnLCBoZWFkZXIpCi0KLSAgICAgICAgIyBNYXhpbXVtIHBh
eWxvYWQgc2l6ZQotICAgICAgICBoZWFkZXIgPSBzdHJlYW0uY3JlYXRlX2hlYWRlcigKLSAgICAg
ICAgICAgIGNvbW1vbi5PUENPREVfVEVYVCwgKDEgPDwgNjMpIC0gMSwgMCwgMCwgMCwgMCwgMCkK
LSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnXHgwMVx4N2ZceDdmXHhmZlx4ZmZceGZmXHhmZlx4
ZmZceGZmXHhmZicsIGhlYWRlcikKLQotICAgICAgICAjIEludmFsaWQgb3Bjb2RlIDB4MTAKLSAg
ICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVmFsdWVFcnJvciwKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgc3RyZWFtLmNyZWF0ZV9oZWFkZXIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgIDB4
MTAsIDAsIDAsIDAsIDAsIDAsIDApCi0KLSAgICAgICAgIyBJbnZhbGlkIHZhbHVlIDB4ZiBwYXNz
ZWQgdG8gbW9yZSBwYXJhbWV0ZXIKLSAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVmFsdWVFcnJv
ciwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgc3RyZWFtLmNyZWF0ZV9oZWFkZXIsCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgIGNvbW1vbi5PUENPREVfVEVYVCwgMCwgMHhmLCAwLCAwLCAw
LCAwKQotCi0gICAgICAgICMgVG9vIGxvbmcgcGF5bG9hZF9sZW5ndGgKLSAgICAgICAgc2VsZi5h
c3NlcnRSYWlzZXMoVmFsdWVFcnJvciwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgc3RyZWFt
LmNyZWF0ZV9oZWFkZXIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgIGNvbW1vbi5PUENPREVf
VEVYVCwgMSA8PCA2MywgMCwgMCwgMCwgMCwgMCkKLQotCi1pZiBfX25hbWVfXyA9PSAnX19tYWlu
X18nOgotICAgIHVuaXR0ZXN0Lm1haW4oKQotCi0KLSMgdmk6c3RzPTQgc3c9NCBldApkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9w
eXdlYnNvY2tldC9zcmMvdGVzdC90ZXN0X3N0cmVhbV9oaXhpZTc1LnB5IGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9zcmMvdGVz
dC90ZXN0X3N0cmVhbV9oaXhpZTc1LnB5CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBj
YTlhYzcxMzBiNzMwNGViOTJkYmJiYzE1MzNhYTQxNTQ1ZTAyNDZkLi4wMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3JjL3Rlc3QvdGVzdF9zdHJlYW1f
aGl4aWU3NS5weQorKysgL2Rldi9udWxsCkBAIC0xLDU5ICswLDAgQEAKLSMhL3Vzci9iaW4vZW52
IHB5dGhvbgotIwotIyBDb3B5cmlnaHQgMjAxMSwgR29vZ2xlIEluYy4KLSMgQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KLSMKLSMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0jIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKLSMgbWV0OgotIwotIyAg
ICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAotIyBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCi0jICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKLSMgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgotIyBpbiB0aGUgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCi0jIGRp
c3RyaWJ1dGlvbi4KLSMgICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3Ig
dGhlIG5hbWVzIG9mIGl0cwotIyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBv
ciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQotIyB0aGlzIHNvZnR3YXJlIHdpdGhvdXQg
c3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgotIwotIyBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCi0jICJB
UyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UCi0jIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUgotIyBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAotIyBPV05FUiBPUiBDT05UUklC
VVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKLSMg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVAotIyBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKLSMgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1Mg
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCi0jIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSMg
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFCi0jIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0KLQotIiIiVGVzdHMgZm9yIHN0cmVhbSBtb2R1
bGUuIiIiCi0KLQotaW1wb3J0IHVuaXR0ZXN0Ci0KLWltcG9ydCBzZXRfc3lzX3BhdGggICMgVXBk
YXRlIHN5cy5wYXRoIHRvIGxvY2F0ZSBtb2RfcHl3ZWJzb2NrZXQgbW9kdWxlLgotCi1mcm9tIG1v
ZF9weXdlYnNvY2tldC5zdHJlYW0gaW1wb3J0IFN0cmVhbUhpeGllNzUKLWZyb20gdGVzdC50ZXN0
X21zZ3V0aWwgaW1wb3J0IF9jcmVhdGVfcmVxdWVzdF9oaXhpZTc1Ci0KLQotY2xhc3MgU3RyZWFt
SGl4aWU3NVRlc3QodW5pdHRlc3QuVGVzdENhc2UpOgotICAgICIiIkEgdW5pdHRlc3QgZm9yIFN0
cmVhbUhpeGllNzUgY2xhc3MuIiIiCi0KLSAgICBkZWYgdGVzdF9wYXlsb2FkX2xlbmd0aChzZWxm
KToKLSAgICAgICAgZm9yIGxlbmd0aCwgYnl0ZXMgaW4gKCgwLCAnXHgwMCcpLCAoMHg3ZiwgJ1x4
N2YnKSwgKDB4ODAsICdceDgxXHgwMCcpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
KDB4MTIzNCwgJ1x4ODBceGE0XHgzNCcpKToKLSAgICAgICAgICAgIHRlc3Rfc3RyZWFtID0gU3Ry
ZWFtSGl4aWU3NShfY3JlYXRlX3JlcXVlc3RfaGl4aWU3NShieXRlcykpCi0gICAgICAgICAgICBz
ZWxmLmFzc2VydEVxdWFsKAotICAgICAgICAgICAgICAgIGxlbmd0aCwgdGVzdF9zdHJlYW0uX3Jl
YWRfcGF5bG9hZF9sZW5ndGhfaGl4aWU3NSgpKQotCi0KLWlmIF9fbmFtZV9fID09ICdfX21haW5f
Xyc6Ci0gICAgdW5pdHRlc3QubWFpbigpCi0KLQotIyB2aTpzdHM9NCBzdz00IGV0CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5
d2Vic29ja2V0L3NyYy90ZXN0L3Rlc3RfdXRpbC5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3JjL3Rlc3QvdGVzdF91dGls
LnB5CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyMGY0YWIwNTk2NTJjNTg2OWVjMjA1
YTEyOGRmOTM5MTRjYThjNzFlLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvcHl3ZWJzb2NrZXQvc3JjL3Rlc3QvdGVzdF91dGlsLnB5CisrKyAvZGV2L251bGwKQEAgLTEs
MjAwICswLDAgQEAKLSMhL3Vzci9iaW4vZW52IHB5dGhvbgotIwotIyBDb3B5cmlnaHQgMjAxMSwg
R29vZ2xlIEluYy4KLSMgQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSMKLSMgUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0jIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucyBhcmUKLSMgbWV0OgotIwotIyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotIyBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0jICAgICAqIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKLSMg
Y29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lcgotIyBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlCi0jIGRpc3RyaWJ1dGlvbi4KLSMgICAgICogTmVpdGhlciB0
aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwotIyBjb250cmlidXRv
cnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJv
bQotIyB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNz
aW9uLgotIwotIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9M
REVSUyBBTkQgQ09OVFJJQlVUT1JTCi0jICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCi0jIExJTUlURUQgVE8sIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgotIyBBIFBB
UlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENP
UFlSSUdIVAotIyBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKLSMgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAotIyBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKLSMgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZCi0jIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSMgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0jIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0K
LQotIiIiVGVzdHMgZm9yIHV0aWwgbW9kdWxlLiIiIgotCi0KLWltcG9ydCBvcwotaW1wb3J0IHJh
bmRvbQotaW1wb3J0IHN5cwotaW1wb3J0IHVuaXR0ZXN0Ci0KLWltcG9ydCBzZXRfc3lzX3BhdGgg
ICMgVXBkYXRlIHN5cy5wYXRoIHRvIGxvY2F0ZSBtb2RfcHl3ZWJzb2NrZXQgbW9kdWxlLgotCi1m
cm9tIG1vZF9weXdlYnNvY2tldCBpbXBvcnQgdXRpbAotCi0KLV9URVNUX0RBVEFfRElSID0gb3Mu
cGF0aC5qb2luKG9zLnBhdGguc3BsaXQoX19maWxlX18pWzBdLCAndGVzdGRhdGEnKQotCi0KLWNs
YXNzIFV0aWxUZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKLSAgICAiIiJBIHVuaXR0ZXN0IGZvciB1
dGlsIG1vZHVsZS4iIiIKLQotICAgIGRlZiB0ZXN0X2dldF9zdGFja190cmFjZShzZWxmKToKLSAg
ICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnTm9uZVxuJywgdXRpbC5nZXRfc3RhY2tfdHJhY2UoKSkK
LSAgICAgICAgdHJ5OgotICAgICAgICAgICAgYSA9IDEgLyAwICAjIEludGVudGlvbmFsbHkgcmFp
c2UgZXhjZXB0aW9uLgotICAgICAgICBleGNlcHQgRXhjZXB0aW9uOgotICAgICAgICAgICAgdHJh
Y2UgPSB1dGlsLmdldF9zdGFja190cmFjZSgpCi0gICAgICAgICAgICBzZWxmLmZhaWxVbmxlc3Mo
dHJhY2Uuc3RhcnRzd2l0aCgnVHJhY2ViYWNrJykpCi0gICAgICAgICAgICBzZWxmLmZhaWxVbmxl
c3ModHJhY2UuZmluZCgnWmVyb0RpdmlzaW9uRXJyb3InKSAhPSAtMSkKLQotICAgIGRlZiB0ZXN0
X3ByZXBlbmRfbWVzc2FnZV90b19leGNlcHRpb24oc2VsZik6Ci0gICAgICAgIGV4YyA9IEV4Y2Vw
dGlvbignV29ybGQnKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCdXb3JsZCcsIHN0cihleGMp
KQotICAgICAgICB1dGlsLnByZXBlbmRfbWVzc2FnZV90b19leGNlcHRpb24oJ0hlbGxvICcsIGV4
YykKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnSGVsbG8gV29ybGQnLCBzdHIoZXhjKSkKLQot
ICAgIGRlZiB0ZXN0X2dldF9zY3JpcHRfaW50ZXJwKHNlbGYpOgotICAgICAgICBjeWd3aW5fcGF0
aCA9ICdjOlxcY3lnd2luXFxiaW4nCi0gICAgICAgIGN5Z3dpbl9wZXJsID0gb3MucGF0aC5qb2lu
KGN5Z3dpbl9wYXRoLCAncGVybCcpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoTm9uZSwgdXRp
bC5nZXRfc2NyaXB0X2ludGVycCgKLSAgICAgICAgICAgIG9zLnBhdGguam9pbihfVEVTVF9EQVRB
X0RJUiwgJ1JFQURNRScpKSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChOb25lLCB1dGlsLmdl
dF9zY3JpcHRfaW50ZXJwKAotICAgICAgICAgICAgb3MucGF0aC5qb2luKF9URVNUX0RBVEFfRElS
LCAnUkVBRE1FJyksIGN5Z3dpbl9wYXRoKSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgnL3Vz
ci9iaW4vcGVybCAtd1QnLCB1dGlsLmdldF9zY3JpcHRfaW50ZXJwKAotICAgICAgICAgICAgb3Mu
cGF0aC5qb2luKF9URVNUX0RBVEFfRElSLCAnaGVsbG8ucGwnKSkpCi0gICAgICAgIHNlbGYuYXNz
ZXJ0RXF1YWwoY3lnd2luX3BlcmwgKyAnIC13VCcsIHV0aWwuZ2V0X3NjcmlwdF9pbnRlcnAoCi0g
ICAgICAgICAgICBvcy5wYXRoLmpvaW4oX1RFU1RfREFUQV9ESVIsICdoZWxsby5wbCcpLCBjeWd3
aW5fcGF0aCkpCi0KLSAgICBkZWYgdGVzdF9oZXhpZnkoc2VsZik6Ci0gICAgICAgIHNlbGYuYXNz
ZXJ0RXF1YWwoJzYxIDdhIDQxIDVhIDMwIDM5IDIwIDA5IDBkIDBhIDAwIGZmJywKLSAgICAgICAg
ICAgICAgICAgICAgICAgICB1dGlsLmhleGlmeSgnYXpBWjA5IFx0XHJcblx4MDBceGZmJykpCi0K
LQotY2xhc3MgUmVwZWF0ZWRYb3JNYXNrZXJUZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKLSAgICAi
IiJBIHVuaXR0ZXN0IGZvciBSZXBlYXRlZFhvck1hc2tlciBjbGFzcy4iIiIKLQotICAgIGRlZiB0
ZXN0X21hc2soc2VsZik6Ci0gICAgICAgICMgU2FtcGxlIGlucHV0IGU2LDk3LGE1IGlzIFUrNjVl
NSBpbiBVVEYtOAotICAgICAgICBtYXNrZXIgPSB1dGlsLlJlcGVhdGVkWG9yTWFza2VyKCdceGZm
XHhmZlx4ZmZceGZmJykKLSAgICAgICAgcmVzdWx0ID0gbWFza2VyLm1hc2soJ1x4ZTZceDk3XHhh
NScpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ1x4MTlceDY4XHg1YScsIHJlc3VsdCkKLQot
ICAgICAgICBtYXNrZXIgPSB1dGlsLlJlcGVhdGVkWG9yTWFza2VyKCdceDAwXHgwMFx4MDBceDAw
JykKLSAgICAgICAgcmVzdWx0ID0gbWFza2VyLm1hc2soJ1x4ZTZceDk3XHhhNScpCi0gICAgICAg
IHNlbGYuYXNzZXJ0RXF1YWwoJ1x4ZTZceDk3XHhhNScsIHJlc3VsdCkKLQotICAgICAgICBtYXNr
ZXIgPSB1dGlsLlJlcGVhdGVkWG9yTWFza2VyKCdceGU2XHg5N1x4YTVceDIwJykKLSAgICAgICAg
cmVzdWx0ID0gbWFza2VyLm1hc2soJ1x4ZTZceDk3XHhhNScpCi0gICAgICAgIHNlbGYuYXNzZXJ0
RXF1YWwoJ1x4MDBceDAwXHgwMCcsIHJlc3VsdCkKLQotICAgIGRlZiB0ZXN0X21hc2tfdHdpY2Uo
c2VsZik6Ci0gICAgICAgIG1hc2tlciA9IHV0aWwuUmVwZWF0ZWRYb3JNYXNrZXIoJ1x4MDBceDdm
XHhmZlx4MjAnKQotICAgICAgICAjIG1hc2tbMF0sIG1hc2tbMV0sIC4uLiB3aWxsIGJlIHVzZWQu
Ci0gICAgICAgIHJlc3VsdCA9IG1hc2tlci5tYXNrKCdceDAwXHgwMFx4MDBceDAwXHgwMCcpCi0g
ICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ1x4MDBceDdmXHhmZlx4MjBceDAwJywgcmVzdWx0KQot
ICAgICAgICAjIG1hc2tbMl0sIG1hc2tbMF0sIC4uLiB3aWxsIGJlIHVzZWQgZm9yIHRoZSBuZXh0
IGNhbGwuCi0gICAgICAgIHJlc3VsdCA9IG1hc2tlci5tYXNrKCdceDAwXHgwMFx4MDBceDAwXHgw
MCcpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoJ1x4N2ZceGZmXHgyMFx4MDBceDdmJywgcmVz
dWx0KQotCi0gICAgZGVmIHRlc3RfbWFza19sYXJnZV9kYXRhKHNlbGYpOgotICAgICAgICBtYXNr
ZXIgPSB1dGlsLlJlcGVhdGVkWG9yTWFza2VyKCdtQVNrJykKLSAgICAgICAgb3JpZ2luYWwgPSAn
Jy5qb2luKFtjaHIoaSAlIDI1NikgZm9yIGkgaW4geHJhbmdlKDEwMDApXSkKLSAgICAgICAgcmVz
dWx0ID0gbWFza2VyLm1hc2sob3JpZ2luYWwpCi0gICAgICAgIGV4cGVjdGVkID0gJycuam9pbigK
LSAgICAgICAgICAgICAgICBbY2hyKChpICUgMjU2KSBeIG9yZCgnbUFTaydbaSAlIDRdKSkgZm9y
IGkgaW4geHJhbmdlKDEwMDApXSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChleHBlY3RlZCwg
cmVzdWx0KQotCi0gICAgICAgIG1hc2tlciA9IHV0aWwuUmVwZWF0ZWRYb3JNYXNrZXIoJ01hU2sn
KQotICAgICAgICBmaXJzdF9wYXJ0ID0gJ1RoZSBXZWJTb2NrZXQgUHJvdG9jb2wgZW5hYmxlcyB0
d28td2F5IGNvbW11bmljYXRpb24uJwotICAgICAgICByZXN1bHQgPSBtYXNrZXIubWFzayhmaXJz
dF9wYXJ0KQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKAotICAgICAgICAgICAgICAgICdceDE5
XHQ2S1x4MWFceDA0MTgiXHgwMjhceDBlOUFceDAzXHgxOSJceDE1PFx4MDgiXHJzXHgwZSMnCi0g
ICAgICAgICAgICAgICAgJ1x4MDAxXHgwNyhceDEyc1x4MWY6XHgwZX5ceDFjLFx4MThzXHgwOCJc
eDBjPlx4MWUjXHgwODBcbjknCi0gICAgICAgICAgICAgICAgJ1x4MDg8XHgwNWMnLAotICAgICAg
ICAgICAgICAgIHJlc3VsdCkKLSAgICAgICAgc2Vjb25kX3BhcnQgPSAnSXQgaGFzIHR3byBwYXJ0
czogYSBoYW5kc2hha2UgYW5kIHRoZSBkYXRhIHRyYW5zZmVyLicKLSAgICAgICAgcmVzdWx0ID0g
bWFza2VyLm1hc2soc2Vjb25kX3BhcnQpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoCi0gICAg
ICAgICAgICAgICAgIignSyVceDAwIEs5XHgxNjxLPVx4MDAhXHgxZj5bc1xubVx0Mlx4MDUpXHgx
MjtcbiZceDA0c1xuIyIKLSAgICAgICAgICAgICAgICAiXHgwNXNceDFmJVx4MDRzXHgwZixceDE1
Mks5XHgxMzJceDA1Plx4MDc2XHgxOWMiLAotICAgICAgICAgICAgICAgIHJlc3VsdCkKLQotCi1k
ZWYgZ2V0X3JhbmRvbV9zZWN0aW9uKHNvdXJjZSwgbWluX251bV9jaHVua3MpOgotICAgIGNodW5r
cyA9IFtdCi0gICAgYnl0ZXNfY2h1bmtlZCA9IDAKLQotICAgIHdoaWxlIGJ5dGVzX2NodW5rZWQg
PCBsZW4oc291cmNlKToKLSAgICAgICAgY2h1bmtfc2l6ZSA9IHJhbmRvbS5yYW5kaW50KAotICAg
ICAgICAgICAgMSwKLSAgICAgICAgICAgIG1pbihsZW4oc291cmNlKSAvIG1pbl9udW1fY2h1bmtz
LCBsZW4oc291cmNlKSAtIGJ5dGVzX2NodW5rZWQpKQotICAgICAgICBjaHVuayA9IHNvdXJjZVti
eXRlc19jaHVua2VkOmJ5dGVzX2NodW5rZWQgKyBjaHVua19zaXplXQotICAgICAgICBjaHVua3Mu
YXBwZW5kKGNodW5rKQotICAgICAgICBieXRlc19jaHVua2VkICs9IGNodW5rX3NpemUKLQotICAg
IHJldHVybiBjaHVua3MKLQotCi1jbGFzcyBJbmZsYXRlckRlZmxhdGVyVGVzdCh1bml0dGVzdC5U
ZXN0Q2FzZSk6Ci0gICAgIiIiQSB1bml0dGVzdCBmb3IgX0luZmxhdGVyIGFuZCBfRGVmbGF0ZXIg
Y2xhc3MuIiIiCi0KLSAgICBkZWYgdGVzdF9pbmZsYXRlX2RlZmxhdGVfZGVmYXVsdChzZWxmKToK
LSAgICAgICAgaW5wdXQgPSBiJ2hlbGxvJyArICctJyAqIDMwMDAwICsgYidoZWxsbycKLSAgICAg
ICAgaW5mbGF0ZXIxNSA9IHV0aWwuX0luZmxhdGVyKDE1KQotICAgICAgICBkZWZsYXRlcjE1ID0g
dXRpbC5fRGVmbGF0ZXIoMTUpCi0gICAgICAgIGluZmxhdGVyOCA9IHV0aWwuX0luZmxhdGVyKDgp
Ci0gICAgICAgIGRlZmxhdGVyOCA9IHV0aWwuX0RlZmxhdGVyKDgpCi0KLSAgICAgICAgY29tcHJl
c3NlZDE1ID0gZGVmbGF0ZXIxNS5jb21wcmVzc19hbmRfZmluaXNoKGlucHV0KQotICAgICAgICBj
b21wcmVzc2VkOCA9IGRlZmxhdGVyOC5jb21wcmVzc19hbmRfZmluaXNoKGlucHV0KQotCi0gICAg
ICAgIGluZmxhdGVyMTUuYXBwZW5kKGNvbXByZXNzZWQxNSkKLSAgICAgICAgaW5mbGF0ZXI4LmFw
cGVuZChjb21wcmVzc2VkOCkKLQotICAgICAgICBzZWxmLmFzc2VydE5vdEVxdWFsKGNvbXByZXNz
ZWQxNSwgY29tcHJlc3NlZDgpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoaW5wdXQsIGluZmxh
dGVyMTUuZGVjb21wcmVzcygtMSkpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoaW5wdXQsIGlu
ZmxhdGVyOC5kZWNvbXByZXNzKC0xKSkKLQotICAgIGRlZiB0ZXN0X3JhbmRvbV9zZWN0aW9uKHNl
bGYpOgotICAgICAgICByYW5kb20uc2VlZChhPTApCi0gICAgICAgIHNvdXJjZSA9ICcnLmpvaW4o
Ci0gICAgICAgICAgICBbY2hyKHJhbmRvbS5yYW5kaW50KDAsIDI1NSkpIGZvciBpIGluIHhyYW5n
ZSgxMDAgKiAxMDI0KV0pCi0KLSAgICAgICAgY2h1bmtlZF9pbnB1dCA9IGdldF9yYW5kb21fc2Vj
dGlvbihzb3VyY2UsIDEwKQotICAgICAgICBwcmludCAiSW5wdXQgY2h1bmsgc2l6ZXM6ICVyIiAl
IFtsZW4oYykgZm9yIGMgaW4gY2h1bmtlZF9pbnB1dF0KLQotICAgICAgICBkZWZsYXRlciA9IHV0
aWwuX0RlZmxhdGVyKDE1KQotICAgICAgICBjb21wcmVzc2VkID0gW10KLSAgICAgICAgZm9yIGNo
dW5rIGluIGNodW5rZWRfaW5wdXQ6Ci0gICAgICAgICAgICBjb21wcmVzc2VkLmFwcGVuZChkZWZs
YXRlci5jb21wcmVzcyhjaHVuaykpCi0gICAgICAgIGNvbXByZXNzZWQuYXBwZW5kKGRlZmxhdGVy
LmNvbXByZXNzX2FuZF9maW5pc2goJycpKQotCi0gICAgICAgIGNodW5rZWRfZXhwZWN0YXRpb24g
PSBnZXRfcmFuZG9tX3NlY3Rpb24oc291cmNlLCAxMCkKLSAgICAgICAgcHJpbnQgKCJFeHBlY3Rh
dGlvbiBjaHVuayBzaXplczogJXIiICUKLSAgICAgICAgICAgICAgIFtsZW4oYykgZm9yIGMgaW4g
Y2h1bmtlZF9leHBlY3RhdGlvbl0pCi0KLSAgICAgICAgaW5mbGF0ZXIgPSB1dGlsLl9JbmZsYXRl
cigxNSkKLSAgICAgICAgaW5mbGF0ZXIuYXBwZW5kKCcnLmpvaW4oY29tcHJlc3NlZCkpCi0gICAg
ICAgIGZvciBjaHVuayBpbiBjaHVua2VkX2V4cGVjdGF0aW9uOgotICAgICAgICAgICAgZGVjb21w
cmVzc2VkID0gaW5mbGF0ZXIuZGVjb21wcmVzcyhsZW4oY2h1bmspKQotICAgICAgICAgICAgc2Vs
Zi5hc3NlcnRFcXVhbChjaHVuaywgZGVjb21wcmVzc2VkKQotCi0gICAgICAgIHNlbGYuYXNzZXJ0
RXF1YWwoJycsIGluZmxhdGVyLmRlY29tcHJlc3MoLTEpKQotCi0KLWlmIF9fbmFtZV9fID09ICdf
X21haW5fXyc6Ci0gICAgdW5pdHRlc3QubWFpbigpCi0KLQotIyB2aTpzdHM9NCBzdz00IGV0CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3B5d2Vic29ja2V0L3NyYy90ZXN0L3Rlc3RkYXRhL1JFQURNRSBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3JjL3Rlc3Qv
dGVzdGRhdGEvUkVBRE1FCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjMDAxYWE1NTk1
Y2RkMTM0MDdmNTcyOGVjZDUzMmE1ZDEyMjYzZWZhLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3JjL3Rlc3QvdGVzdGRhdGEvUkVBRE1FCisrKyAv
ZGV2L251bGwKQEAgLTEgKzAsMCBAQAotVGVzdCBkYXRhIGRpcmVjdG9yeQpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNv
Y2tldC9zcmMvdGVzdC90ZXN0ZGF0YS9oYW5kbGVycy9hYm9ydF9ieV91c2VyX3dzaC5weSBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2Nr
ZXQvc3JjL3Rlc3QvdGVzdGRhdGEvaGFuZGxlcnMvYWJvcnRfYnlfdXNlcl93c2gucHkKZGVsZXRl
ZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDM2N2Y5OTMwZjc4MjRjM2E1MzU5MTRhNWIzNzc5ZjZi
NmZiYTI0M2YuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNv
Y2tldC9zcmMvdGVzdC90ZXN0ZGF0YS9oYW5kbGVycy9hYm9ydF9ieV91c2VyX3dzaC5weQorKysg
L2Rldi9udWxsCkBAIC0xLDQyICswLDAgQEAKLSMgQ29weXJpZ2h0IDIwMTEsIEdvb2dsZSBJbmMu
Ci0jIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0jCi0jIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotIyBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJl
Ci0jIG1ldDoKLSMKLSMgICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSMgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotIyAgICAgKiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCi0jIGNvcHlyaWdodCBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIKLSMgaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZQotIyBkaXN0cmlidXRpb24uCi0jICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2Yg
R29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKLSMgY29udHJpYnV0b3JzIG1heSBiZSB1
c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KLSMgdGhpcyBz
b2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLSMKLSMg
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENP
TlRSSUJVVE9SUwotIyAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVAotIyBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKLSMgQSBQQVJUSUNVTEFSIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKLSMg
T1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsCi0jIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QKLSMgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCi0jIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQot
IyBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUCi0jIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotCi0KLWZyb20gbW9k
X3B5d2Vic29ja2V0IGltcG9ydCBoYW5kc2hha2UKLQotCi1kZWYgd2ViX3NvY2tldF9kb19leHRy
YV9oYW5kc2hha2UocmVxdWVzdCk6Ci0gICAgcmFpc2UgaGFuZHNoYWtlLkFib3J0ZWRCeVVzZXJF
eGNlcHRpb24oImFib3J0IGZvciB0ZXN0IikKLQotCi1kZWYgd2ViX3NvY2tldF90cmFuc2Zlcl9k
YXRhKHJlcXVlc3QpOgotICAgIHJhaXNlIGhhbmRzaGFrZS5BYm9ydGVkQnlVc2VyRXhjZXB0aW9u
KCJhYm9ydCBmb3IgdGVzdCIpCi0KLQotIyB2aTpzdHM9NCBzdz00IGV0CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29j
a2V0L3NyYy90ZXN0L3Rlc3RkYXRhL2hhbmRsZXJzL2JsYW5rX3dzaC5weSBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3JjL3Rl
c3QvdGVzdGRhdGEvaGFuZGxlcnMvYmxhbmtfd3NoLnB5CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCA3Zjg3YzZhZjIzZGYwOGVmZTM1NzVjYWUyMDhkZTUwMjJjYmFhNjYwLi4wMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3JjL3Rlc3QvdGVz
dGRhdGEvaGFuZGxlcnMvYmxhbmtfd3NoLnB5CisrKyAvZGV2L251bGwKQEAgLTEsMzEgKzAsMCBA
QAotIyBDb3B5cmlnaHQgMjAwOSwgR29vZ2xlIEluYy4KLSMgQWxsIHJpZ2h0cyByZXNlcnZlZC4K
LSMKLSMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0Ci0jIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKLSMgbWV0OgotIwotIyAgICAgKiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAotIyBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCi0jICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUKLSMgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgotIyBpbiB0aGUgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCi0jIGRpc3RyaWJ1dGlv
bi4KLSMgICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVz
IG9mIGl0cwotIyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3Rl
IHByb2R1Y3RzIGRlcml2ZWQgZnJvbQotIyB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMg
cHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgotIwotIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCi0jICJBUyBJUyIgQU5E
IEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCi0j
IExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUgotIyBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAotIyBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKLSMgU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAot
IyBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwKLSMgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCi0jIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSMgKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFCi0jIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCi0KLQotIyBpbnRlbnRpb25hbGx5IGxlZnQgYmxhbmsKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
cHl3ZWJzb2NrZXQvc3JjL3Rlc3QvdGVzdGRhdGEvaGFuZGxlcnMvb3JpZ2luX2NoZWNrX3dzaC5w
eSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3
ZWJzb2NrZXQvc3JjL3Rlc3QvdGVzdGRhdGEvaGFuZGxlcnMvb3JpZ2luX2NoZWNrX3dzaC5weQpk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMmMxMzlmYTE3NmNjMzQxN2JlOTZkZTc5OGU2
YTgxZWQxNDliMTk5Mi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAot
LS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5
d2Vic29ja2V0L3NyYy90ZXN0L3Rlc3RkYXRhL2hhbmRsZXJzL29yaWdpbl9jaGVja193c2gucHkK
KysrIC9kZXYvbnVsbApAQCAtMSw0MiArMCwwIEBACi0jIENvcHlyaWdodCAyMDA5LCBHb29nbGUg
SW5jLgotIyBBbGwgcmlnaHRzIHJlc2VydmVkLgotIwotIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSMgbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
IGFyZQotIyBtZXQ6Ci0jCi0jICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0jIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSMgICAgICogUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQotIyBjb3B5cmln
aHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyCi0jIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUKLSMgZGlzdHJpYnV0aW9uLgotIyAgICAgKiBOZWl0aGVyIHRoZSBuYW1l
IG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCi0jIGNvbnRyaWJ1dG9ycyBtYXkg
YmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCi0jIHRo
aXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0j
Ci0jIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFO
RCBDT05UUklCVVRPUlMKLSMgIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKLSMgTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCi0jIEEgUEFSVElDVUxB
UiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hU
Ci0jIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLAotIyBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCi0jIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAotIyBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkKLSMgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVAotIyAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLQotCi1kZWYg
d2ViX3NvY2tldF9kb19leHRyYV9oYW5kc2hha2UocmVxdWVzdCk6Ci0gICAgaWYgcmVxdWVzdC53
c19vcmlnaW4gPT0gJ2h0dHA6Ly9leGFtcGxlLmNvbSc6Ci0gICAgICAgIHJldHVybgotICAgIHJh
aXNlIFZhbHVlRXJyb3IoJ1VuYWNjZXB0YWJsZSBvcmlnaW46ICVyJyAlIHJlcXVlc3Qud3Nfb3Jp
Z2luKQotCi0KLWRlZiB3ZWJfc29ja2V0X3RyYW5zZmVyX2RhdGEocmVxdWVzdCk6Ci0gICAgcmVx
dWVzdC5jb25uZWN0aW9uLndyaXRlKCdvcmlnaW5fY2hlY2tfd3NoLnB5IGlzIGNhbGxlZCBmb3Ig
JXMsICVzJyAlCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIChyZXF1ZXN0LndzX3Jlc291
cmNlLCByZXF1ZXN0LndzX3Byb3RvY29sKSkKLQotCi0jIHZpOnN0cz00IHN3PTQgZXQKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
cHl3ZWJzb2NrZXQvc3JjL3Rlc3QvdGVzdGRhdGEvaGFuZGxlcnMvc3ViL2V4Y2VwdGlvbl9pbl90
cmFuc2Zlcl93c2gucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3B5d2Vic29ja2V0L3NyYy90ZXN0L3Rlc3RkYXRhL2hhbmRsZXJzL3N1Yi9leGNl
cHRpb25faW5fdHJhbnNmZXJfd3NoLnB5CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBi
OTgyZDAyMzFlZjAwZjAyZTBkOTBkZjY3OGViODA0YmE0Mzg2MmQ5Li4wMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3JjL3Rlc3QvdGVzdGRhdGEvaGFu
ZGxlcnMvc3ViL2V4Y2VwdGlvbl9pbl90cmFuc2Zlcl93c2gucHkKKysrIC9kZXYvbnVsbApAQCAt
MSw0NCArMCwwIEBACi0jIENvcHlyaWdodCAyMDA5LCBHb29nbGUgSW5jLgotIyBBbGwgcmlnaHRz
IHJlc2VydmVkLgotIwotIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQotIyBtZXQ6Ci0jCi0j
ICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0Ci0jIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KLSMgICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQotIyBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCi0jIGluIHRoZSBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKLSMg
ZGlzdHJpYnV0aW9uLgotIyAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5v
ciB0aGUgbmFtZXMgb2YgaXRzCi0jIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNl
IG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCi0jIHRoaXMgc29mdHdhcmUgd2l0aG91
dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0jCi0jIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKLSMg
IkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QKLSMgTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCi0jIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCi0jIE9XTkVSIE9SIENPTlRS
SUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAot
IyBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UCi0jIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAotIyBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKLSMgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAot
IyAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UKLSMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLQotCi0iIiJFeGNlcHRpb24gaW4gd2ViX3Nv
Y2tldF90cmFuc2Zlcl9kYXRhKCkuCi0iIiIKLQotCi1kZWYgd2ViX3NvY2tldF9kb19leHRyYV9o
YW5kc2hha2UocmVxdWVzdCk6Ci0gICAgcGFzcwotCi0KLWRlZiB3ZWJfc29ja2V0X3RyYW5zZmVy
X2RhdGEocmVxdWVzdCk6Ci0gICAgcmFpc2UgRXhjZXB0aW9uKCdJbnRlbnRpb25hbCBFeGNlcHRp
b24gZm9yICVzLCAlcycgJQotICAgICAgICAgICAgICAgICAgICAocmVxdWVzdC53c19yZXNvdXJj
ZSwgcmVxdWVzdC53c19wcm90b2NvbCkpCi0KLQotIyB2aTpzdHM9NCBzdz00IGV0CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5
d2Vic29ja2V0L3NyYy90ZXN0L3Rlc3RkYXRhL2hhbmRsZXJzL3N1Yi9ub193c2hfYXRfdGhlX2Vu
ZC5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
cHl3ZWJzb2NrZXQvc3JjL3Rlc3QvdGVzdGRhdGEvaGFuZGxlcnMvc3ViL25vX3dzaF9hdF90aGVf
ZW5kLnB5CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxN2U3YmUxODAyZTNjNjZjNjM4
NDk4NzVlYTM1ZTI0MDZhMzgxZTYwLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvcHl3ZWJzb2NrZXQvc3JjL3Rlc3QvdGVzdGRhdGEvaGFuZGxlcnMvc3ViL25vX3dzaF9h
dF90aGVfZW5kLnB5CisrKyAvZGV2L251bGwKQEAgLTEsNDUgKzAsMCBAQAotIyBDb3B5cmlnaHQg
MjAwOSwgR29vZ2xlIEluYy4KLSMgQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSMKLSMgUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
Ci0jIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucyBhcmUKLSMgbWV0OgotIwotIyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotIyBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0jICAg
ICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUKLSMgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lcgotIyBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCi0jIGRpc3RyaWJ1dGlvbi4KLSMgICAgICogTmVp
dGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwotIyBjb250
cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2
ZWQgZnJvbQotIyB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBw
ZXJtaXNzaW9uLgotIwotIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklH
SFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCi0jICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCi0jIExJTUlURUQgVE8sIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgot
IyBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
VEhFIENPUFlSSUdIVAotIyBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKLSMgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAotIyBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwK
LSMgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZCi0jIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSMgKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0jIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCi0KLQotIiIiQ29ycmVjdCBzaWduYXR1cmVzLCB3cm9uZyBmaWxlIG5hbWUuCi0iIiIKLQot
Ci1kZWYgd2ViX3NvY2tldF9kb19leHRyYV9oYW5kc2hha2UocmVxdWVzdCk6Ci0gICAgcGFzcwot
Ci0KLWRlZiB3ZWJfc29ja2V0X3RyYW5zZmVyX2RhdGEocmVxdWVzdCk6Ci0gICAgcmVxdWVzdC5j
b25uZWN0aW9uLndyaXRlKAotICAgICAgICAgICAgJ3N1Yi9ub193c2hfYXRfdGhlX2VuZC5weSBp
cyBjYWxsZWQgZm9yICVzLCAlcycgJQotICAgICAgICAgICAgKHJlcXVlc3Qud3NfcmVzb3VyY2Us
IHJlcXVlc3Qud3NfcHJvdG9jb2wpKQotCi0KLSMgdmk6c3RzPTQgc3c9NCBldApkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdl
YnNvY2tldC9zcmMvdGVzdC90ZXN0ZGF0YS9oYW5kbGVycy9zdWIvbm9uX2NhbGxhYmxlX3dzaC5w
eSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3
ZWJzb2NrZXQvc3JjL3Rlc3QvdGVzdGRhdGEvaGFuZGxlcnMvc3ViL25vbl9jYWxsYWJsZV93c2gu
cHkKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDI2MzUyZWI0Y2EyMzg5NTIyMzllMzU0
MjcyOGNlM2IzOGQ4M2RkNmIuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy9weXdlYnNvY2tldC9zcmMvdGVzdC90ZXN0ZGF0YS9oYW5kbGVycy9zdWIvbm9uX2NhbGxhYmxl
X3dzaC5weQorKysgL2Rldi9udWxsCkBAIC0xLDM5ICswLDAgQEAKLSMgQ29weXJpZ2h0IDIwMDks
IEdvb2dsZSBJbmMuCi0jIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0jCi0jIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotIyBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMgYXJlCi0jIG1ldDoKLSMKLSMgICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSMgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotIyAgICAgKiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCi0j
IGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIKLSMgaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZQotIyBkaXN0cmlidXRpb24uCi0jICAgICAqIE5laXRoZXIg
dGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKLSMgY29udHJpYnV0
b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZy
b20KLSMgdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlz
c2lvbi4KLSMKLSMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhP
TERFUlMgQU5EIENPTlRSSUJVVE9SUwotIyAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAotIyBMSU1JVEVEIFRPLCBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKLSMgQSBQ
QVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBD
T1BZUklHSFQKLSMgT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCi0jIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKLSMgTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCi0jIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWQotIyBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0jIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotIyBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgot
Ci0KLSIiIk5vbi1jYWxsYWJsZSBoYW5kbGVycy4KLSIiIgotCi0KLXdlYl9zb2NrZXRfZG9fZXh0
cmFfaGFuZHNoYWtlID0gVHJ1ZQotd2ViX3NvY2tldF90cmFuc2Zlcl9kYXRhID0gMQotCi0KLSMg
dmk6c3RzPTQgc3c9NCBldApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9zcmMvdGVzdC90ZXN0ZGF0YS9oYW5k
bGVycy9zdWIvcGxhaW5fd3NoLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9zcmMvdGVzdC90ZXN0ZGF0YS9oYW5kbGVycy9z
dWIvcGxhaW5fd3NoLnB5CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkYjNmZjY5MzAy
NTZiYzFiMTNlMmM0YzJkMWM4NDNjNGI3YzgwYWE0Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3JjL3Rlc3QvdGVzdGRhdGEvaGFuZGxlcnMvc3Vi
L3BsYWluX3dzaC5weQorKysgL2Rldi9udWxsCkBAIC0xLDQwICswLDAgQEAKLSMgQ29weXJpZ2h0
IDIwMDksIEdvb2dsZSBJbmMuCi0jIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0jCi0jIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAotIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMgYXJlCi0jIG1ldDoKLSMKLSMgICAgICogUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSMgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotIyAg
ICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlCi0jIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIKLSMgaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQotIyBkaXN0cmlidXRpb24uCi0jICAgICAqIE5l
aXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKLSMgY29u
dHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJp
dmVkIGZyb20KLSMgdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4g
cGVybWlzc2lvbi4KLSMKLSMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJ
R0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwotIyAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAotIyBMSU1JVEVEIFRPLCBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IK
LSMgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IFRIRSBDT1BZUklHSFQKLSMgT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCi0jIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1Ig
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKLSMgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
Ci0jIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWQotIyBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0jIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotIyBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgotCi0KLWRlZiB3ZWJfc29ja2V0X2RvX2V4dHJhX2hhbmRzaGFrZShyZXF1ZXN0KToKLSAg
ICBwYXNzCi0KLQotZGVmIHdlYl9zb2NrZXRfdHJhbnNmZXJfZGF0YShyZXF1ZXN0KToKLSAgICBy
ZXF1ZXN0LmNvbm5lY3Rpb24ud3JpdGUoJ3N1Yi9wbGFpbl93c2gucHkgaXMgY2FsbGVkIGZvciAl
cywgJXMnICUKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHJlcXVlc3Qud3NfcmVzb3Vy
Y2UsIHJlcXVlc3Qud3NfcHJvdG9jb2wpKQotCi0KLSMgdmk6c3RzPTQgc3c9NCBldApkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9w
eXdlYnNvY2tldC9zcmMvdGVzdC90ZXN0ZGF0YS9oYW5kbGVycy9zdWIvdzNjLWltcG9ydC5sb2cg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vi
c29ja2V0L3NyYy90ZXN0L3Rlc3RkYXRhL2hhbmRsZXJzL3N1Yi93M2MtaW1wb3J0LmxvZwpkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNGFkM2YyZTg1OTEwY2I2N2NhMjM2YjE0M2ZkMTBh
NWEyNzdlZGVkOS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0g
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vi
c29ja2V0L3NyYy90ZXN0L3Rlc3RkYXRhL2hhbmRsZXJzL3N1Yi93M2MtaW1wb3J0LmxvZworKysg
L2Rldi9udWxsCkBAIC0xLDIyICswLDAgQEAKLVRoZSB0ZXN0cyBpbiB0aGlzIGRpcmVjdG9yeSB3
ZXJlIGltcG9ydGVkIGZyb20gdGhlIFczQyByZXBvc2l0b3J5LgotRG8gTk9UIG1vZGlmeSB0aGVz
ZSB0ZXN0cyBkaXJlY3RseSBpbiBXZWJLaXQuCi1JbnN0ZWFkLCBjcmVhdGUgYSBwdWxsIHJlcXVl
c3Qgb24gdGhlIFdQVCBnaXRodWI6Ci0JaHR0cHM6Ly9naXRodWIuY29tL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMKLQotVGhlbiBydW4gdGhlIFRvb2xzL1NjcmlwdHMvaW1wb3J0LXczYy10ZXN0cyBp
biBXZWJLaXQgdG8gcmVpbXBvcnQKLQotRG8gTk9UIG1vZGlmeSBvciByZW1vdmUgdGhpcyBmaWxl
LgotCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0KLVByb3BlcnRpZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhl
czoKLU5vbmUKLVByb3BlcnR5IHZhbHVlcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9u
ZQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tCi1MaXN0IG9mIGZpbGVzOgotL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3JjL3Rlc3QvdGVzdGRh
dGEvaGFuZGxlcnMvc3ViL2V4Y2VwdGlvbl9pbl90cmFuc2Zlcl93c2gucHkKLS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3NyYy90
ZXN0L3Rlc3RkYXRhL2hhbmRsZXJzL3N1Yi9ub193c2hfYXRfdGhlX2VuZC5weQotL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3Jj
L3Rlc3QvdGVzdGRhdGEvaGFuZGxlcnMvc3ViL25vbl9jYWxsYWJsZV93c2gucHkKLS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3Ny
Yy90ZXN0L3Rlc3RkYXRhL2hhbmRsZXJzL3N1Yi9wbGFpbl93c2gucHkKLS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3NyYy90ZXN0
L3Rlc3RkYXRhL2hhbmRsZXJzL3N1Yi93cm9uZ19oYW5kc2hha2Vfc2lnX3dzaC5weQotL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQv
c3JjL3Rlc3QvdGVzdGRhdGEvaGFuZGxlcnMvc3ViL3dyb25nX3RyYW5zZmVyX3NpZ193c2gucHkK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvcHl3ZWJzb2NrZXQvc3JjL3Rlc3QvdGVzdGRhdGEvaGFuZGxlcnMvc3ViL3dyb25nX2hh
bmRzaGFrZV9zaWdfd3NoLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy9weXdlYnNvY2tldC9zcmMvdGVzdC90ZXN0ZGF0YS9oYW5kbGVycy9zdWIv
d3JvbmdfaGFuZHNoYWtlX3NpZ193c2gucHkKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDZiZjY1OWJjOWFmMDFjMTA3ZWYzNTA4YjJiNWQwMTczZGNmNTkwMDkuLjAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9zcmMvdGVzdC90ZXN0ZGF0YS9o
YW5kbGVycy9zdWIvd3JvbmdfaGFuZHNoYWtlX3NpZ193c2gucHkKKysrIC9kZXYvbnVsbApAQCAt
MSw0NSArMCwwIEBACi0jIENvcHlyaWdodCAyMDA5LCBHb29nbGUgSW5jLgotIyBBbGwgcmlnaHRz
IHJlc2VydmVkLgotIwotIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQotIyBtZXQ6Ci0jCi0j
ICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0Ci0jIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KLSMgICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQotIyBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCi0jIGluIHRoZSBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKLSMg
ZGlzdHJpYnV0aW9uLgotIyAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5v
ciB0aGUgbmFtZXMgb2YgaXRzCi0jIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNl
IG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCi0jIHRoaXMgc29mdHdhcmUgd2l0aG91
dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0jCi0jIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKLSMg
IkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QKLSMgTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCi0jIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCi0jIE9XTkVSIE9SIENPTlRS
SUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAot
IyBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UCi0jIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAotIyBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKLSMgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAot
IyAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UKLSMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLQotCi0iIiJXcm9uZyB3ZWJfc29ja2V0X2Rv
X2V4dHJhX2hhbmRzaGFrZSBzaWduYXR1cmUuCi0iIiIKLQotCi1kZWYgbm9fd2ViX3NvY2tldF9k
b19leHRyYV9oYW5kc2hha2UocmVxdWVzdCk6Ci0gICAgcGFzcwotCi0KLWRlZiB3ZWJfc29ja2V0
X3RyYW5zZmVyX2RhdGEocmVxdWVzdCk6Ci0gICAgcmVxdWVzdC5jb25uZWN0aW9uLndyaXRlKAot
ICAgICAgICAgICAgJ3N1Yi93cm9uZ19oYW5kc2hha2Vfc2lnX3dzaC5weSBpcyBjYWxsZWQgZm9y
ICVzLCAlcycgJQotICAgICAgICAgICAgIChyZXF1ZXN0LndzX3Jlc291cmNlLCByZXF1ZXN0Lndz
X3Byb3RvY29sKSkKLQotCi0jIHZpOnN0cz00IHN3PTQgZXQKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3Jj
L3Rlc3QvdGVzdGRhdGEvaGFuZGxlcnMvc3ViL3dyb25nX3RyYW5zZmVyX3NpZ193c2gucHkgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29j
a2V0L3NyYy90ZXN0L3Rlc3RkYXRhL2hhbmRsZXJzL3N1Yi93cm9uZ190cmFuc2Zlcl9zaWdfd3No
LnB5CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlMGUyZTU1MDc5NGI3Yjk5MGUwYjQ0
YjMzY2ZjMmQ0ZDE1MmU2YzA0Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvcHl3ZWJzb2NrZXQvc3JjL3Rlc3QvdGVzdGRhdGEvaGFuZGxlcnMvc3ViL3dyb25nX3RyYW5z
ZmVyX3NpZ193c2gucHkKKysrIC9kZXYvbnVsbApAQCAtMSw0NSArMCwwIEBACi0jIENvcHlyaWdo
dCAyMDA5LCBHb29nbGUgSW5jLgotIyBBbGwgcmlnaHRzIHJlc2VydmVkLgotIwotIyBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKLSMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zIGFyZQotIyBtZXQ6Ci0jCi0jICAgICAqIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0jIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSMg
ICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZQotIyBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyCi0jIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKLSMgZGlzdHJpYnV0aW9uLgotIyAgICAgKiBO
ZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCi0jIGNv
bnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVy
aXZlZCBmcm9tCi0jIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVu
IHBlcm1pc3Npb24uCi0jCi0jIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlS
SUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKLSMgIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKLSMgTElNSVRFRCBUTywg
VEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
Ci0jIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBUSEUgQ09QWVJJR0hUCi0jIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAotIyBTUEVDSUFMLCBFWEVNUExBUlksIE9S
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCi0jIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LAotIyBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkKLSMgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotIyAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSMgT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KLQotCi0iIiJXcm9uZyB3ZWJfc29ja2V0X3RyYW5zZmVyX2RhdGEoKSBzaWduYXR1cmUu
Ci0iIiIKLQotCi1kZWYgd2ViX3NvY2tldF9kb19leHRyYV9oYW5kc2hha2UocmVxdWVzdCk6Ci0g
ICAgcGFzcwotCi0KLWRlZiBub193ZWJfc29ja2V0X3RyYW5zZmVyX2RhdGEocmVxdWVzdCk6Ci0g
ICAgcmVxdWVzdC5jb25uZWN0aW9uLndyaXRlKAotICAgICAgICAgICAgJ3N1Yi93cm9uZ190cmFu
c2Zlcl9zaWdfd3NoLnB5IGlzIGNhbGxlZCBmb3IgJXMsICVzJyAlCi0gICAgICAgICAgICAocmVx
dWVzdC53c19yZXNvdXJjZSwgcmVxdWVzdC53c19wcm90b2NvbCkpCi0KLQotIyB2aTpzdHM9NCBz
dz00IGV0CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3NyYy90ZXN0L3Rlc3RkYXRhL2hhbmRsZXJzL3czYy1p
bXBvcnQubG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy9weXdlYnNvY2tldC9zcmMvdGVzdC90ZXN0ZGF0YS9oYW5kbGVycy93M2MtaW1wb3J0Lmxv
ZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNTQwMjhhZTQ3NzZjZDY3OWRmM2I0MzQ2
OGM3MTYzMWExNWFmMGIxOS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3B5d2Vic29ja2V0L3NyYy90ZXN0L3Rlc3RkYXRhL2hhbmRsZXJzL3czYy1pbXBvcnQubG9nCisr
KyAvZGV2L251bGwKQEAgLTEsMTkgKzAsMCBAQAotVGhlIHRlc3RzIGluIHRoaXMgZGlyZWN0b3J5
IHdlcmUgaW1wb3J0ZWQgZnJvbSB0aGUgVzNDIHJlcG9zaXRvcnkuCi1EbyBOT1QgbW9kaWZ5IHRo
ZXNlIHRlc3RzIGRpcmVjdGx5IGluIFdlYktpdC4KLUluc3RlYWQsIGNyZWF0ZSBhIHB1bGwgcmVx
dWVzdCBvbiB0aGUgV1BUIGdpdGh1YjoKLQlodHRwczovL2dpdGh1Yi5jb20vdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cwotCi1UaGVuIHJ1biB0aGUgVG9vbHMvU2NyaXB0cy9pbXBvcnQtdzNjLXRlc3Rz
IGluIFdlYktpdCB0byByZWltcG9ydAotCi1EbyBOT1QgbW9kaWZ5IG9yIHJlbW92ZSB0aGlzIGZp
bGUuCi0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotUHJvcGVydGllcyByZXF1aXJpbmcgdmVuZG9yIHByZWZp
eGVzOgotTm9uZQotUHJvcGVydHkgdmFsdWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1O
b25lCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0KLUxpc3Qgb2YgZmlsZXM6Ci0vTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9zcmMvdGVzdC90ZXN0
ZGF0YS9oYW5kbGVycy9hYm9ydF9ieV91c2VyX3dzaC5weQotL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3JjL3Rlc3QvdGVzdGRh
dGEvaGFuZGxlcnMvYmxhbmtfd3NoLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9zcmMvdGVzdC90ZXN0ZGF0YS9oYW5kbGVy
cy9vcmlnaW5fY2hlY2tfd3NoLnB5CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3NyYy90ZXN0L3Rlc3RkYXRh
L3czYy1pbXBvcnQubG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy9weXdlYnNvY2tldC9zcmMvdGVzdC90ZXN0ZGF0YS93M2MtaW1wb3J0LmxvZwpk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYWU1MzFmOTEzNDFmODZmYWFlNDgxMGE3YzAy
MzRmNjc0MDdiMzJhMy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAot
LS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5
d2Vic29ja2V0L3NyYy90ZXN0L3Rlc3RkYXRhL3czYy1pbXBvcnQubG9nCisrKyAvZGV2L251bGwK
QEAgLTEsMTcgKzAsMCBAQAotVGhlIHRlc3RzIGluIHRoaXMgZGlyZWN0b3J5IHdlcmUgaW1wb3J0
ZWQgZnJvbSB0aGUgVzNDIHJlcG9zaXRvcnkuCi1EbyBOT1QgbW9kaWZ5IHRoZXNlIHRlc3RzIGRp
cmVjdGx5IGluIFdlYktpdC4KLUluc3RlYWQsIGNyZWF0ZSBhIHB1bGwgcmVxdWVzdCBvbiB0aGUg
V1BUIGdpdGh1YjoKLQlodHRwczovL2dpdGh1Yi5jb20vdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cwot
Ci1UaGVuIHJ1biB0aGUgVG9vbHMvU2NyaXB0cy9pbXBvcnQtdzNjLXRlc3RzIGluIFdlYktpdCB0
byByZWltcG9ydAotCi1EbyBOT1QgbW9kaWZ5IG9yIHJlbW92ZSB0aGlzIGZpbGUuCi0KLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLQotUHJvcGVydGllcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQot
UHJvcGVydHkgdmFsdWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0KLUxpc3Qgb2YgZmlsZXM6Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9zcmMvdGVzdC90ZXN0ZGF0YS9SRUFETUUK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvcHl3ZWJzb2NrZXQvc3JjL3Rlc3QvdzNjLWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3NyYy90ZXN0
L3czYy1pbXBvcnQubG9nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4ZWU3MjQwZGEy
ODk5MjIzYzZjMjI0OTk3MzZhY2JkYzYzYWZkNTgyLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3JjL3Rlc3QvdzNjLWltcG9ydC5sb2cKKysrIC9k
ZXYvbnVsbApAQCAtMSwzNyArMCwwIEBACi1UaGUgdGVzdHMgaW4gdGhpcyBkaXJlY3Rvcnkgd2Vy
ZSBpbXBvcnRlZCBmcm9tIHRoZSBXM0MgcmVwb3NpdG9yeS4KLURvIE5PVCBtb2RpZnkgdGhlc2Ug
dGVzdHMgZGlyZWN0bHkgaW4gV2ViS2l0LgotSW5zdGVhZCwgY3JlYXRlIGEgcHVsbCByZXF1ZXN0
IG9uIHRoZSBXUFQgZ2l0aHViOgotCWh0dHBzOi8vZ2l0aHViLmNvbS93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzCi0KLVRoZW4gcnVuIHRoZSBUb29scy9TY3JpcHRzL2ltcG9ydC13M2MtdGVzdHMgaW4g
V2ViS2l0IHRvIHJlaW1wb3J0Ci0KLURvIE5PVCBtb2RpZnkgb3IgcmVtb3ZlIHRoaXMgZmlsZS4K
LQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tCi1Qcm9wZXJ0aWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6
Ci1Ob25lCi1Qcm9wZXJ0eSB2YWx1ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUK
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLQotTGlzdCBvZiBmaWxlczoKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3NyYy90ZXN0L19faW5pdF9f
LnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9w
eXdlYnNvY2tldC9zcmMvdGVzdC9jbGllbnRfZm9yX3Rlc3RpbmcucHkKLS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3NyYy90ZXN0
L2VuZHRvZW5kX3dpdGhfZXh0ZXJuYWxfc2VydmVyLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9zcmMvdGVzdC9tb2NrLnB5
Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdl
YnNvY2tldC9zcmMvdGVzdC9tdXhfY2xpZW50X2Zvcl90ZXN0aW5nLnB5Ci0vTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9zcmMvdGVz
dC9ydW5fYWxsLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy9weXdlYnNvY2tldC9zcmMvdGVzdC9zZXRfc3lzX3BhdGgucHkKLS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3NyYy90
ZXN0L3Rlc3RfZGlzcGF0Y2gucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3NyYy90ZXN0L3Rlc3RfZW5kdG9lbmQucHkKLS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29j
a2V0L3NyYy90ZXN0L3Rlc3RfZXh0ZW5zaW9ucy5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3JjL3Rlc3QvdGVzdF9oYW5k
c2hha2UucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3B5d2Vic29ja2V0L3NyYy90ZXN0L3Rlc3RfaGFuZHNoYWtlX2h5YmkucHkKLS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3Ny
Yy90ZXN0L3Rlc3RfaGFuZHNoYWtlX2h5YmkwMC5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3JjL3Rlc3QvdGVzdF9odHRw
X2hlYWRlcl91dGlsLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy9weXdlYnNvY2tldC9zcmMvdGVzdC90ZXN0X21lbW9yaXppbmdmaWxlLnB5Ci0v
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNv
Y2tldC9zcmMvdGVzdC90ZXN0X21vY2sucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3NyYy90ZXN0L3Rlc3RfbXNndXRpbC5w
eQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3
ZWJzb2NrZXQvc3JjL3Rlc3QvdGVzdF9tdXgucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3NyYy90ZXN0L3Rlc3Rfc3RyZWFt
LnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9w
eXdlYnNvY2tldC9zcmMvdGVzdC90ZXN0X3N0cmVhbV9oaXhpZTc1LnB5Ci0vTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9zcmMvdGVz
dC90ZXN0X3V0aWwucHkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvc3JjL3czYy1pbXBvcnQubG9nIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tl
dC9zcmMvdzNjLWltcG9ydC5sb2cKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDdkMzJh
NmI2YmJiZjg2Y2U4OGNlNjlhYmMzZGU1YTUzNDAwMTZjNmQuLjAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9zcmMvdzNjLWltcG9ydC5sb2cKKysrIC9k
ZXYvbnVsbApAQCAtMSwyMCArMCwwIEBACi1UaGUgdGVzdHMgaW4gdGhpcyBkaXJlY3Rvcnkgd2Vy
ZSBpbXBvcnRlZCBmcm9tIHRoZSBXM0MgcmVwb3NpdG9yeS4KLURvIE5PVCBtb2RpZnkgdGhlc2Ug
dGVzdHMgZGlyZWN0bHkgaW4gV2ViS2l0LgotSW5zdGVhZCwgY3JlYXRlIGEgcHVsbCByZXF1ZXN0
IG9uIHRoZSBXUFQgZ2l0aHViOgotCWh0dHBzOi8vZ2l0aHViLmNvbS93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzCi0KLVRoZW4gcnVuIHRoZSBUb29scy9TY3JpcHRzL2ltcG9ydC13M2MtdGVzdHMgaW4g
V2ViS2l0IHRvIHJlaW1wb3J0Ci0KLURvIE5PVCBtb2RpZnkgb3IgcmVtb3ZlIHRoaXMgZmlsZS4K
LQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tCi1Qcm9wZXJ0aWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6
Ci1Ob25lCi1Qcm9wZXJ0eSB2YWx1ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUK
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLQotTGlzdCBvZiBmaWxlczoKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3NyYy9DT1BZSU5HCi0vTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tl
dC9zcmMvTUFOSUZFU1QuaW4KLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3NyYy9SRUFETUUKLS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3NyYy9zZXR1cC5weQpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy9weXdlYnNvY2tldC90ZXN0L19faW5pdF9fLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC90ZXN0L19faW5pdF9fLnB5
CmluZGV4IGE2ODM0YjgyODVhNTZiZWYwZTE1NDNmZDkwMWM3ZTZmMmY4YmMyMDIuLmU2OWRlMjli
YjJkMWQ2NDM0YjhiMjlhZTc3NWFkOGMyZTQ4YzUzOTEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvdGVzdC9f
X2luaXRfXy5weQorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3B5d2Vic29ja2V0L3Rlc3QvX19pbml0X18ucHkKQEAgLTEgKzAsMCBAQAotIyBU
aGlzIGZpbGUgaXMgcmVxdWlyZWQgZm9yIFB5dGhvbiB0byBzZWFyY2ggdGhpcyBkaXJlY3Rvcnkg
Zm9yIG1vZHVsZXMuClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tl
dC90ZXN0L2NlcnQvdzNjLWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3Rlc3QvY2VydC93M2MtaW1wb3J0Lmxv
ZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZDgxMjQxNmI4NmI1ZTU4ZmRmNTJlMWU1
OTZjNzFkYmViMWI0NDUxZS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3B5d2Vic29ja2V0L3Rlc3QvY2VydC93M2MtaW1wb3J0LmxvZworKysgL2Rldi9udWxsCkBAIC0x
LDIwICswLDAgQEAKLVRoZSB0ZXN0cyBpbiB0aGlzIGRpcmVjdG9yeSB3ZXJlIGltcG9ydGVkIGZy
b20gdGhlIFczQyByZXBvc2l0b3J5LgotRG8gTk9UIG1vZGlmeSB0aGVzZSB0ZXN0cyBkaXJlY3Rs
eSBpbiBXZWJLaXQuCi1JbnN0ZWFkLCBjcmVhdGUgYSBwdWxsIHJlcXVlc3Qgb24gdGhlIFdQVCBn
aXRodWI6Ci0JaHR0cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQKLQotVGhl
biBydW4gdGhlIFRvb2xzL1NjcmlwdHMvaW1wb3J0LXczYy10ZXN0cyBpbiBXZWJLaXQgdG8gcmVp
bXBvcnQKLQotRG8gTk9UIG1vZGlmeSBvciByZW1vdmUgdGhpcyBmaWxlLgotCi0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0KLVByb3BlcnRpZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLVByb3Bl
cnR5IHZhbHVlcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tCi1MaXN0IG9mIGZpbGVzOgotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvdGVzdC9jZXJ0L2NhY2VydC5wZW0KLS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3Rl
c3QvY2VydC9jZXJ0LnBlbQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvdGVzdC9jZXJ0L2NsaWVudF9jZXJ0LnAxMgotL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQv
dGVzdC9jZXJ0L2tleS5wZW0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvdGVzdC9jbGllbnRfZm9yX3Rlc3Rp
bmcucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3B5d2Vic29ja2V0L3Rlc3QvY2xpZW50X2Zvcl90ZXN0aW5nLnB5CmluZGV4IGM3ZjgwNWVlOTRl
NTQ5NDY5ZWQ4NzBkYWU3ZTBjY2YyMDI2YmVhYjcuLjE4ZDE4NTcxMmVlYTQwOGEyM2QyNGZiY2Nl
MWFhZjQ5M2E1YWE3ZTMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvdGVzdC9jbGllbnRfZm9yX3Rlc3Rpbmcu
cHkKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy9weXdlYnNvY2tldC90ZXN0L2NsaWVudF9mb3JfdGVzdGluZy5weQpAQCAtMzE2LDcgKzMxNiw3
IEBAIGNsYXNzIFdlYlNvY2tldEhhbmRzaGFrZShvYmplY3QpOgogICAgICAgICAgICAgc2VsZi5f
b3B0aW9ucy5zZXJ2ZXJfcG9ydCwKICAgICAgICAgICAgIHNlbGYuX29wdGlvbnMudXNlX3Rscykp
CiAKLSAgICAgICAgaWYgc2VsZi5fb3B0aW9ucy52ZXJzaW9uIGlzIDg6CisgICAgICAgIGlmIHNl
bGYuX29wdGlvbnMudmVyc2lvbiA9PSA4OgogICAgICAgICAgICAgZmllbGRzLmFwcGVuZChfc2Vj
X29yaWdpbl9oZWFkZXIoc2VsZi5fb3B0aW9ucy5vcmlnaW4pKQogICAgICAgICBlbHNlOgogICAg
ICAgICAgICAgZmllbGRzLmFwcGVuZChfb3JpZ2luX2hlYWRlcihzZWxmLl9vcHRpb25zLm9yaWdp
bikpCkBAIC0zOTgsNyArMzk4LDcgQEAgY2xhc3MgV2ViU29ja2V0SGFuZHNoYWtlKG9iamVjdCk6
CiAgICAgICAgICMgVmFsaWRhdGUKICAgICAgICAgdHJ5OgogICAgICAgICAgICAgZGVjb2RlZF9h
Y2NlcHQgPSBiYXNlNjQuYjY0ZGVjb2RlKGFjY2VwdCkKLSAgICAgICAgZXhjZXB0IFR5cGVFcnJv
ciwgZToKKyAgICAgICAgZXhjZXB0IFR5cGVFcnJvciBhcyBlOgogICAgICAgICAgICAgcmFpc2Ug
SGFuZHNoYWtlRXhjZXB0aW9uKAogICAgICAgICAgICAgICAgICdJbGxlZ2FsIHZhbHVlIGZvciBo
ZWFkZXIgU2VjLVdlYlNvY2tldC1BY2NlcHQ6ICcgKyBhY2NlcHQpCiAKQEAgLTk5OCw3ICs5OTgs
NyBAQCBkZWYgY29ubmVjdF9zb2NrZXRfd2l0aF9yZXRyeShob3N0LCBwb3J0LCB0aW1lb3V0LCB1
c2VfdGxzLAogICAgICAgICAgICAgaWYgdXNlX3RsczoKICAgICAgICAgICAgICAgICByZXR1cm4g
X1RMU1NvY2tldChzKQogICAgICAgICAgICAgcmV0dXJuIHMKLSAgICAgICAgZXhjZXB0IHNvY2tl
dC5lcnJvciwgZToKKyAgICAgICAgZXhjZXB0IHNvY2tldC5lcnJvciBhcyBlOgogICAgICAgICAg
ICAgaWYgZS5lcnJubyAhPSBlcnJuby5FQ09OTlJFRlVTRUQ6CiAgICAgICAgICAgICAgICAgcmFp
c2UKICAgICAgICAgICAgIGVsc2U6CkBAIC0xMDYzLDcgKzEwNjMsNyBAQCBjbGFzcyBDbGllbnQo
b2JqZWN0KToKICAgICBkZWYgYXNzZXJ0X2Nvbm5lY3Rpb25fY2xvc2VkKHNlbGYpOgogICAgICAg
ICB0cnk6CiAgICAgICAgICAgICByZWFkX2RhdGEgPSByZWNlaXZlX2J5dGVzKHNlbGYuX3NvY2tl
dCwgMSkKLSAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbiwgZToKKyAgICAgICAgZXhjZXB0IEV4Y2Vw
dGlvbiBhcyBlOgogICAgICAgICAgICAgaWYgc3RyKGUpLmZpbmQoCiAgICAgICAgICAgICAgICAg
J0Nvbm5lY3Rpb24gY2xvc2VkIGJlZm9yZSByZWNlaXZpbmcgcmVxdWVzdGVkIGxlbmd0aCAnKSA9
PSAwOgogICAgICAgICAgICAgICAgIHJldHVybgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC90ZXN0L2VuZHRv
ZW5kX3dpdGhfZXh0ZXJuYWxfc2VydmVyLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC90ZXN0L2VuZHRvZW5kX3dpdGhfZXh0
ZXJuYWxfc2VydmVyLnB5Cm9sZCBtb2RlIDEwMDY0NApuZXcgbW9kZSAxMDA3NTUKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3
ZWJzb2NrZXQvdGVzdC9tdXhfY2xpZW50X2Zvcl90ZXN0aW5nLnB5IGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC90ZXN0L211eF9j
bGllbnRfZm9yX3Rlc3RpbmcucHkKaW5kZXggZGQ1NDM1YThjYzBlMjc1NWM1ODNjMzZkMGNlYWYz
ZjNmZjYwMjFiMC4uMzA0ZTdmYzk1ZDNmYzViM2VlMmQ5ZTU0ZjIwNzgyYWRkYWUyMDQwZiAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy9weXdlYnNvY2tldC90ZXN0L211eF9jbGllbnRfZm9yX3Rlc3RpbmcucHkKKysrIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC90
ZXN0L211eF9jbGllbnRfZm9yX3Rlc3RpbmcucHkKQEAgLTUxOSw3ICs1MTksNyBAQCBjbGFzcyBN
dXhDbGllbnQob2JqZWN0KToKIAogICAgICAgICB0cnk6CiAgICAgICAgICAgICBzZW5kX3F1b3Rh
ID0gc2VsZi5fY2hhbm5lbF9zbG90cy5wb3BsZWZ0KCkKLSAgICAgICAgZXhjZXB0IEluZGV4RXJy
b3IsIGU6CisgICAgICAgIGV4Y2VwdCBJbmRleEVycm9yIGFzIGU6CiAgICAgICAgICAgICByYWlz
ZSBFeGNlcHRpb24oJ05vIGNoYW5uZWwgc2xvdHM6ICVyJyAlIGUpCiAKICAgICAgICAgIyBDcmVh
dGUgQWRkQ2hhbm5lbCByZXF1ZXN0CkBAIC02MzIsNyArNjMyLDcgQEAgY2xhc3MgTXV4Q2xpZW50
KG9iamVjdCk6CiAgICAgICAgIHRyeToKICAgICAgICAgICAgIGlubmVyX2ZyYW1lID0gc2VsZi5f
bG9naWNhbF9jaGFubmVsc1tjaGFubmVsX2lkXS5xdWV1ZS5nZXQoCiAgICAgICAgICAgICAgICAg
dGltZW91dD1zZWxmLl90aW1lb3V0KQotICAgICAgICBleGNlcHQgUXVldWUuRW1wdHksIGU6Cisg
ICAgICAgIGV4Y2VwdCBRdWV1ZS5FbXB0eSBhcyBlOgogICAgICAgICAgICAgcmFpc2UgRXhjZXB0
aW9uKCdDYW5ub3QgcmVjZWl2ZSBtZXNzYWdlIGZyb20gY2hhbm5lbCBpZCAlZCcgJQogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGNoYW5uZWxfaWQpCiAKQEAgLTY2Niw3ICs2NjYsNyBAQCBj
bGFzcyBNdXhDbGllbnQob2JqZWN0KToKICAgICAgICAgdHJ5OgogICAgICAgICAgICAgaW5uZXJf
ZnJhbWUgPSBzZWxmLl9sb2dpY2FsX2NoYW5uZWxzW2NoYW5uZWxfaWRdLnF1ZXVlLmdldCgKICAg
ICAgICAgICAgICAgICB0aW1lb3V0PXNlbGYuX3RpbWVvdXQpCi0gICAgICAgIGV4Y2VwdCBRdWV1
ZS5FbXB0eSwgZToKKyAgICAgICAgZXhjZXB0IFF1ZXVlLkVtcHR5IGFzIGU6CiAgICAgICAgICAg
ICByYWlzZSBFeGNlcHRpb24oJ0Nhbm5vdCByZWNlaXZlIG1lc3NhZ2UgZnJvbSBjaGFubmVsIGlk
ICVkJyAlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hhbm5lbF9pZCkKICAgICAgICAg
aWYgaW5uZXJfZnJhbWUub3Bjb2RlICE9IGNsaWVudF9mb3JfdGVzdGluZy5PUENPREVfQ0xPU0U6
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3B5d2Vic29ja2V0L3Rlc3QvcnVuX2FsbC5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvdGVzdC9ydW5fYWxsLnB5
Cm9sZCBtb2RlIDEwMDY0NApuZXcgbW9kZSAxMDA3NTUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvdGVzdC90
ZXN0X2Rpc3BhdGNoLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy9weXdlYnNvY2tldC90ZXN0L3Rlc3RfZGlzcGF0Y2gucHkKb2xkIG1vZGUgMTAw
NjQ0Cm5ldyBtb2RlIDEwMDc1NQppbmRleCA5Y2EzZDRmM2FlMWRiZjVmOTdiMjdkODRlYzZlNjQy
MmZkMGVjYWE0Li5lMTZkNjA1NjA5YzhhYjdiMzBkNzIwNjM4MzBmZjQzNGMxYzU2ZGMwCi0tLSBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJz
b2NrZXQvdGVzdC90ZXN0X2Rpc3BhdGNoLnB5CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvdGVzdC90ZXN0X2Rpc3BhdGNo
LnB5CkBAIC0xNTUsOSArMTU1LDkgQEAgY2xhc3MgRGlzcGF0Y2hlclRlc3QodW5pdHRlc3QuVGVz
dENhc2UpOgogICAgICAgICB0cnk6CiAgICAgICAgICAgICBkaXNwYXRjaGVyLmRvX2V4dHJhX2hh
bmRzaGFrZShyZXF1ZXN0KQogICAgICAgICAgICAgc2VsZi5mYWlsKCdDb3VsZCBub3QgY2F0Y2gg
SGFuZHNoYWtlRXhjZXB0aW9uIHdpdGggNDAzIHN0YXR1cycpCi0gICAgICAgIGV4Y2VwdCBoYW5k
c2hha2UuSGFuZHNoYWtlRXhjZXB0aW9uLCBlOgorICAgICAgICBleGNlcHQgaGFuZHNoYWtlLkhh
bmRzaGFrZUV4Y2VwdGlvbiBhcyBlOgogICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMoNDAz
LCBlLnN0YXR1cykKLSAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbiwgZToKKyAgICAgICAgZXhjZXB0
IEV4Y2VwdGlvbiBhcyBlOgogICAgICAgICAgICAgc2VsZi5mYWlsKCdVbmV4cGVjdGVkIGV4Y2Vw
dGlvbjogJXInICUgZSkKIAogICAgIGRlZiB0ZXN0X2Fib3J0X2V4dHJhX2hhbmRzaGFrZShzZWxm
KToKQEAgLTIxMiw3ICsyMTIsNyBAQCBjbGFzcyBEaXNwYXRjaGVyVGVzdCh1bml0dGVzdC5UZXN0
Q2FzZSk6CiAgICAgICAgICAgICB0cnk6CiAgICAgICAgICAgICAgICAgZGlzcGF0Y2hlci50cmFu
c2Zlcl9kYXRhKHJlcXVlc3QpCiAgICAgICAgICAgICAgICAgc2VsZi5mYWlsKCkKLSAgICAgICAg
ICAgIGV4Y2VwdCBkaXNwYXRjaC5EaXNwYXRjaEV4Y2VwdGlvbiwgZToKKyAgICAgICAgICAgIGV4
Y2VwdCBkaXNwYXRjaC5EaXNwYXRjaEV4Y2VwdGlvbiBhcyBlOgogICAgICAgICAgICAgICAgIHNl
bGYuZmFpbFVubGVzcyhzdHIoZSkuZmluZCgnTm8gaGFuZGxlcicpICE9IC0xKQogICAgICAgICAg
ICAgZXhjZXB0IEV4Y2VwdGlvbjoKICAgICAgICAgICAgICAgICBzZWxmLmZhaWwoKQpAQCAtMjI1
LDcgKzIyNSw3IEBAIGNsYXNzIERpc3BhdGNoZXJUZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKICAg
ICAgICAgdHJ5OgogICAgICAgICAgICAgZGlzcGF0Y2hlci50cmFuc2Zlcl9kYXRhKHJlcXVlc3Qp
CiAgICAgICAgICAgICBzZWxmLmZhaWwoKQotICAgICAgICBleGNlcHQgRXhjZXB0aW9uLCBlOgor
ICAgICAgICBleGNlcHQgRXhjZXB0aW9uIGFzIGU6CiAgICAgICAgICAgICBzZWxmLmZhaWxVbmxl
c3Moc3RyKGUpLmZpbmQoJ0ludGVudGlvbmFsJykgIT0gLTEsCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgJ1VuZXhwZWN0ZWQgZXhjZXB0aW9uOiAlcycgJSBlKQogCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29j
a2V0L3Rlc3QvdGVzdF9lbmR0b2VuZC5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvdGVzdC90ZXN0X2VuZHRvZW5kLnB5Cm9s
ZCBtb2RlIDEwMDY0NApuZXcgbW9kZSAxMDA3NTUKaW5kZXggNWU1Y2Y2MTU3MzkxN2Q4N2QxMzY1
YjE2YTU4YzJjNDE4OGE5MTJlYy4uMzY4MGVjMmViYTY3MjRhNzQ5MDViZTRmMTU4MWYzNmE3YTdm
NzcxMwotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3B5d2Vic29ja2V0L3Rlc3QvdGVzdF9lbmR0b2VuZC5weQorKysgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3Rlc3QvdGVz
dF9lbmR0b2VuZC5weQpAQCAtMzA0LDkgKzMwNCw5IEBAIGNsYXNzIEVuZFRvRW5kSHlCaVRlc3Qo
RW5kVG9FbmRUZXN0QmFzZSk6CiAgICAgICAgICAgICB0cnk6CiAgICAgICAgICAgICAgICAgY2xp
ZW50LmNvbm5lY3QoKQogICAgICAgICAgICAgICAgIHNlbGYuZmFpbCgnQ291bGQgbm90IGNhdGNo
IEh0dHBTdGF0dXNFeGNlcHRpb24nKQotICAgICAgICAgICAgZXhjZXB0IGNsaWVudF9mb3JfdGVz
dGluZy5IdHRwU3RhdHVzRXhjZXB0aW9uLCBlOgorICAgICAgICAgICAgZXhjZXB0IGNsaWVudF9m
b3JfdGVzdGluZy5IdHRwU3RhdHVzRXhjZXB0aW9uIGFzIGU6CiAgICAgICAgICAgICAgICAgc2Vs
Zi5hc3NlcnRFcXVhbChzdGF0dXMsIGUuc3RhdHVzKQotICAgICAgICAgICAgZXhjZXB0IEV4Y2Vw
dGlvbiwgZToKKyAgICAgICAgICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZToKICAgICAgICAgICAg
ICAgICBzZWxmLmZhaWwoJ0NhdGNoIHVuZXhwZWN0ZWQgZXhjZXB0aW9uJykKICAgICAgICAgICAg
IGZpbmFsbHk6CiAgICAgICAgICAgICAgICAgY2xpZW50LmNsb3NlX3NvY2tldCgpCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5
d2Vic29ja2V0L3Rlc3QvdGVzdF9leHRlbnNpb25zLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC90ZXN0L3Rlc3RfZXh0ZW5z
aW9ucy5weQpvbGQgbW9kZSAxMDA2NDQKbmV3IG1vZGUgMTAwNzU1CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0
L3Rlc3QvdGVzdF9oYW5kc2hha2UucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3Rlc3QvdGVzdF9oYW5kc2hha2UucHkKb2xk
IG1vZGUgMTAwNjQ0Cm5ldyBtb2RlIDEwMDc1NQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC90ZXN0L3Rlc3Rf
aGFuZHNoYWtlX2h5YmkucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3Rlc3QvdGVzdF9oYW5kc2hha2VfaHliaS5weQpvbGQg
bW9kZSAxMDA2NDQKbmV3IG1vZGUgMTAwNzU1CmluZGV4IGQxMDY2Nzc0OWU2MzViYTFjOTZmOGIy
M2ZiOTdmYWI1OTgzMDUyYjkuLmQwYWFmNjQwYTU4OGUyYjA0MmYzMmE5YzY2YTM2OTdhZDRkZDEw
YmUKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy9weXdlYnNvY2tldC90ZXN0L3Rlc3RfaGFuZHNoYWtlX2h5YmkucHkKKysrIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC90ZXN0
L3Rlc3RfaGFuZHNoYWtlX2h5YmkucHkKQEAgLTUwNywxMCArNTA3LDEwIEBAIGNsYXNzIEhhbmRz
aGFrZXJUZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICAgICAgICAgIHRyeToKICAgICAgICAg
ICAgICAgICBoYW5kc2hha2VyLmRvX2hhbmRzaGFrZSgpCiAgICAgICAgICAgICAgICAgc2VsZi5m
YWlsKCdObyBleGNlcHRpb24gdGhyb3duIGZvciBcJyVzXCcgY2FzZScgJSBjYXNlX25hbWUpCi0g
ICAgICAgICAgICBleGNlcHQgSGFuZHNoYWtlRXhjZXB0aW9uLCBlOgorICAgICAgICAgICAgZXhj
ZXB0IEhhbmRzaGFrZUV4Y2VwdGlvbiBhcyBlOgogICAgICAgICAgICAgICAgIHNlbGYuYXNzZXJ0
VHJ1ZShleHBlY3RfaGFuZHNoYWtlX2V4Y2VwdGlvbikKICAgICAgICAgICAgICAgICBzZWxmLmFz
c2VydEVxdWFsKGV4cGVjdGVkX3N0YXR1cywgZS5zdGF0dXMpCi0gICAgICAgICAgICBleGNlcHQg
VmVyc2lvbkV4Y2VwdGlvbiwgZToKKyAgICAgICAgICAgIGV4Y2VwdCBWZXJzaW9uRXhjZXB0aW9u
IGFzIGU6CiAgICAgICAgICAgICAgICAgc2VsZi5hc3NlcnRGYWxzZShleHBlY3RfaGFuZHNoYWtl
X2V4Y2VwdGlvbikKIAogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3Rlc3QvdGVzdF9oYW5kc2hha2VfaHli
aTAwLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy9weXdlYnNvY2tldC90ZXN0L3Rlc3RfaGFuZHNoYWtlX2h5YmkwMC5weQpvbGQgbW9kZSAxMDA2
NDQKbmV3IG1vZGUgMTAwNzU1CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3Rlc3QvdGVzdF9odHRwX2hlYWRl
cl91dGlsLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy9weXdlYnNvY2tldC90ZXN0L3Rlc3RfaHR0cF9oZWFkZXJfdXRpbC5weQpvbGQgbW9kZSAx
MDA2NDQKbmV3IG1vZGUgMTAwNzU1CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3Rlc3QvdGVzdF9tZW1vcml6
aW5nZmlsZS5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvcHl3ZWJzb2NrZXQvdGVzdC90ZXN0X21lbW9yaXppbmdmaWxlLnB5Cm9sZCBtb2RlIDEw
MDY0NApuZXcgbW9kZSAxMDA3NTUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvdGVzdC90ZXN0X21vY2sucHkg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vi
c29ja2V0L3Rlc3QvdGVzdF9tb2NrLnB5Cm9sZCBtb2RlIDEwMDY0NApuZXcgbW9kZSAxMDA3NTUK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvcHl3ZWJzb2NrZXQvdGVzdC90ZXN0X21zZ3V0aWwucHkgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3Rlc3QvdGVzdF9t
c2d1dGlsLnB5Cm9sZCBtb2RlIDEwMDY0NApuZXcgbW9kZSAxMDA3NTUKaW5kZXggOWRiYmI1ZDhk
NGI5YWMyM2U5Yzg3N2JiY2VkYjkyOWNlMDkwOGNmMS4uMjM0NzM1YzYzMDQ3ZDJlZGIyMzhjYjUy
NTVhZDQ3NGEyZTRkMGE4MwotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3Rlc3QvdGVzdF9tc2d1dGlsLnB5CisrKyBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2Nr
ZXQvdGVzdC90ZXN0X21zZ3V0aWwucHkKQEAgLTMxLDYgKzMxLDcgQEAKIAogCiAiIiJUZXN0cyBm
b3IgbXNndXRpbCBtb2R1bGUuIiIiCitmcm9tIF9fZnV0dXJlX18gaW1wb3J0IHByaW50X2Z1bmN0
aW9uCiAKIAogaW1wb3J0IGFycmF5CkBAIC04ODQsNyArODg1LDcgQEAgY2xhc3MgUGVyTWVzc2Fn
ZURlZmxhdGVUZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICAgICAgY29tcHJlc3NlZF9lbXB0
eSA9IGNvbXByZXNzZWRfZW1wdHlbOi00XQogICAgICAgICBleHBlY3RlZCArPSAnXHg4MCVjJyAl
IGxlbihjb21wcmVzc2VkX2VtcHR5KQogICAgICAgICBleHBlY3RlZCArPSBjb21wcmVzc2VkX2Vt
cHR5Ci0gICAgICAgIHByaW50ICclcicgJSBleHBlY3RlZAorICAgICAgICBwcmludCgnJXInICUg
ZXhwZWN0ZWQpCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZXhwZWN0ZWQsIHJlcXVlc3QuY29u
bmVjdGlvbi53cml0dGVuX2RhdGEoKSkKIAogICAgIGRlZiB0ZXN0X3NlbmRfbWVzc2FnZV9mcmFn
bWVudGVkX2VtcHR5X2xhc3RfZnJhbWUoc2VsZik6CkBAIC0xMDY0LDcgKzEwNjUsNyBAQCBjbGFz
cyBQZXJNZXNzYWdlRGVmbGF0ZVRlc3QodW5pdHRlc3QuVGVzdENhc2UpOgogCiAgICAgICAgICAg
ICBmcmFtZV9jb3VudCArPSAxCiAKLSAgICAgICAgcHJpbnQgIkNodW5rIHNpemVzOiAlciIgJSBj
aHVua19zaXplcworICAgICAgICBwcmludCgiQ2h1bmsgc2l6ZXM6ICVyIiAlIGNodW5rX3NpemVz
KQogICAgICAgICBzZWxmLmFzc2VydFRydWUobGVuKGNodW5rX3NpemVzKSA+IDEwKQogCiAgICAg
ICAgICMgQ2xvc2UgZnJhbWUKQEAgLTExNjcsOSArMTE2OCw5IEBAIGNsYXNzIFBlck1lc3NhZ2VE
ZWZsYXRlVGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAgICAgICAgICAgICAgICAgIGNvbXBy
ZXNzID0gTm9uZQogICAgICAgICAgICAgICAgICAgICBmaW5pc2hfdXNlZCA9IFRydWUKIAotICAg
ICAgICBwcmludCAiQ2h1bmsgc2l6ZXM6ICVyIiAlIGNodW5rX3NpemVzCisgICAgICAgIHByaW50
KCJDaHVuayBzaXplczogJXIiICUgY2h1bmtfc2l6ZXMpCiAgICAgICAgIHNlbGYuYXNzZXJ0VHJ1
ZShsZW4oY2h1bmtfc2l6ZXMpID4gMTApCi0gICAgICAgIHByaW50ICJNZXRob2RzOiAlciIgJSBt
ZXRob2RzCisgICAgICAgIHByaW50KCJNZXRob2RzOiAlciIgJSBtZXRob2RzKQogICAgICAgICBz
ZWxmLmFzc2VydFRydWUoc3luY191c2VkKQogICAgICAgICBzZWxmLmFzc2VydFRydWUoZmluaXNo
X3VzZWQpCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvdGVzdC90ZXN0X211eC5weSBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvdGVzdC90
ZXN0X211eC5weQppbmRleCAzY2U0NWNmNmIzZmVlMGMwYjlhOTE0ZDBjMjQ3Nzc1YjZmMjQ5OWZi
Li4wNzczZGVjYmZkNjZkMGRmZmVmMGI0Mjg3YmFkODc0NTNmYzFkNjQ0IDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29j
a2V0L3Rlc3QvdGVzdF9tdXgucHkKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC90ZXN0L3Rlc3RfbXV4LnB5CkBAIC0yNTgs
OSArMjU4LDkgQEAgY2xhc3MgX011eE1vY2tEaXNwYXRjaGVyKG9iamVjdCk6CiAgICAgICAgICAg
ICAgICAgcmFpc2UgVmFsdWVFcnJvcignQ2Fubm90IGhhbmRsZSBwYXRoICVyJyAlIHJlcXVlc3Qu
cGF0aCkKICAgICAgICAgICAgIGlmIG5vdCByZXF1ZXN0LnNlcnZlcl90ZXJtaW5hdGVkOgogICAg
ICAgICAgICAgICAgIHJlcXVlc3Qud3Nfc3RyZWFtLmNsb3NlX2Nvbm5lY3Rpb24oKQotICAgICAg
ICBleGNlcHQgQ29ubmVjdGlvblRlcm1pbmF0ZWRFeGNlcHRpb24sIGU6CisgICAgICAgIGV4Y2Vw
dCBDb25uZWN0aW9uVGVybWluYXRlZEV4Y2VwdGlvbiBhcyBlOgogICAgICAgICAgICAgc2VsZi5j
aGFubmVsX2V2ZW50c1tyZXF1ZXN0LmNoYW5uZWxfaWRdLmV4Y2VwdGlvbiA9IGUKLSAgICAgICAg
ZXhjZXB0IEV4Y2VwdGlvbiwgZToKKyAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBlOgogICAg
ICAgICAgICAgc2VsZi5jaGFubmVsX2V2ZW50c1tyZXF1ZXN0LmNoYW5uZWxfaWRdLmV4Y2VwdGlv
biA9IGUKICAgICAgICAgICAgIHJhaXNlCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvdGVzdC90ZXN0X3N0
cmVhbS5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvcHl3ZWJzb2NrZXQvdGVzdC90ZXN0X3N0cmVhbS5weQpvbGQgbW9kZSAxMDA2NDQKbmV3IG1v
ZGUgMTAwNzU1CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3Rlc3QvdGVzdF9zdHJlYW1faGl4aWU3NS5weSBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJz
b2NrZXQvdGVzdC90ZXN0X3N0cmVhbV9oaXhpZTc1LnB5Cm9sZCBtb2RlIDEwMDY0NApuZXcgbW9k
ZSAxMDA3NTUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvdGVzdC90ZXN0X3V0aWwucHkgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3Rlc3Qv
dGVzdF91dGlsLnB5Cm9sZCBtb2RlIDEwMDY0NApuZXcgbW9kZSAxMDA3NTUKaW5kZXggMjBmNGFi
MDU5NjUyYzU4NjllYzIwNWExMjhkZjkzOTE0Y2E4YzcxZS4uNjRiYTNmNDc3MzdhMzMxZWYwMzkw
Y2M2YjBjODFjMmQzNGE0MjgzMwotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3Rlc3QvdGVzdF91dGlsLnB5CisrKyBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2Nr
ZXQvdGVzdC90ZXN0X3V0aWwucHkKQEAgLTMxLDYgKzMxLDcgQEAKIAogCiAiIiJUZXN0cyBmb3Ig
dXRpbCBtb2R1bGUuIiIiCitmcm9tIF9fZnV0dXJlX18gaW1wb3J0IHByaW50X2Z1bmN0aW9uCiAK
IAogaW1wb3J0IG9zCkBAIC0xNzIsNyArMTczLDcgQEAgY2xhc3MgSW5mbGF0ZXJEZWZsYXRlclRl
c3QodW5pdHRlc3QuVGVzdENhc2UpOgogICAgICAgICAgICAgW2NocihyYW5kb20ucmFuZGludCgw
LCAyNTUpKSBmb3IgaSBpbiB4cmFuZ2UoMTAwICogMTAyNCldKQogCiAgICAgICAgIGNodW5rZWRf
aW5wdXQgPSBnZXRfcmFuZG9tX3NlY3Rpb24oc291cmNlLCAxMCkKLSAgICAgICAgcHJpbnQgIklu
cHV0IGNodW5rIHNpemVzOiAlciIgJSBbbGVuKGMpIGZvciBjIGluIGNodW5rZWRfaW5wdXRdCisg
ICAgICAgIHByaW50KCJJbnB1dCBjaHVuayBzaXplczogJXIiICUgW2xlbihjKSBmb3IgYyBpbiBj
aHVua2VkX2lucHV0XSkKIAogICAgICAgICBkZWZsYXRlciA9IHV0aWwuX0RlZmxhdGVyKDE1KQog
ICAgICAgICBjb21wcmVzc2VkID0gW10KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvdGVzdC90ZXN0ZGF0YS9o
YW5kbGVycy9zdWIvdzNjLWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3Rlc3QvdGVzdGRhdGEvaGFuZGxlcnMv
c3ViL3czYy1pbXBvcnQubG9nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBmMDlhMzYx
NDI2ODJhMTZjODI0YTUyYjZhZTJhM2M2YTFjNWI2MDkwLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvdGVzdC90ZXN0ZGF0YS9oYW5kbGVycy9zdWIv
dzNjLWltcG9ydC5sb2cKKysrIC9kZXYvbnVsbApAQCAtMSwyMiArMCwwIEBACi1UaGUgdGVzdHMg
aW4gdGhpcyBkaXJlY3Rvcnkgd2VyZSBpbXBvcnRlZCBmcm9tIHRoZSBXM0MgcmVwb3NpdG9yeS4K
LURvIE5PVCBtb2RpZnkgdGhlc2UgdGVzdHMgZGlyZWN0bHkgaW4gV2ViS2l0LgotSW5zdGVhZCwg
Y3JlYXRlIGEgcHVsbCByZXF1ZXN0IG9uIHRoZSBXUFQgZ2l0aHViOgotCWh0dHBzOi8vZ2l0aHVi
LmNvbS93ZWItcGxhdGZvcm0tdGVzdHMvd3B0Ci0KLVRoZW4gcnVuIHRoZSBUb29scy9TY3JpcHRz
L2ltcG9ydC13M2MtdGVzdHMgaW4gV2ViS2l0IHRvIHJlaW1wb3J0Ci0KLURvIE5PVCBtb2RpZnkg
b3IgcmVtb3ZlIHRoaXMgZmlsZS4KLQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1Qcm9wZXJ0aWVzIHJlcXVp
cmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi1Qcm9wZXJ0eSB2YWx1ZXMgcmVxdWlyaW5nIHZl
bmRvciBwcmVmaXhlczoKLU5vbmUKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotTGlzdCBvZiBmaWxlczoKLS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29j
a2V0L3Rlc3QvdGVzdGRhdGEvaGFuZGxlcnMvc3ViL2V4Y2VwdGlvbl9pbl90cmFuc2Zlcl93c2gu
cHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5
d2Vic29ja2V0L3Rlc3QvdGVzdGRhdGEvaGFuZGxlcnMvc3ViL25vX3dzaF9hdF90aGVfZW5kLnB5
Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdl
YnNvY2tldC90ZXN0L3Rlc3RkYXRhL2hhbmRsZXJzL3N1Yi9ub25fY2FsbGFibGVfd3NoLnB5Ci0v
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNv
Y2tldC90ZXN0L3Rlc3RkYXRhL2hhbmRsZXJzL3N1Yi9wbGFpbl93c2gucHkKLS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3Rlc3Qv
dGVzdGRhdGEvaGFuZGxlcnMvc3ViL3dyb25nX2hhbmRzaGFrZV9zaWdfd3NoLnB5Ci0vTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC90
ZXN0L3Rlc3RkYXRhL2hhbmRsZXJzL3N1Yi93cm9uZ190cmFuc2Zlcl9zaWdfd3NoLnB5CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3B5d2Vic29ja2V0L3Rlc3QvdGVzdGRhdGEvaGFuZGxlcnMvdzNjLWltcG9ydC5sb2cgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0
L3Rlc3QvdGVzdGRhdGEvaGFuZGxlcnMvdzNjLWltcG9ydC5sb2cKZGVsZXRlZCBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDU1ZmM3YmVmNDI5MTg5MjMxM2MwZjY2MzlkZTExODI2MWJiMjQyZTIuLjAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC90ZXN0L3Rl
c3RkYXRhL2hhbmRsZXJzL3czYy1pbXBvcnQubG9nCisrKyAvZGV2L251bGwKQEAgLTEsMTkgKzAs
MCBAQAotVGhlIHRlc3RzIGluIHRoaXMgZGlyZWN0b3J5IHdlcmUgaW1wb3J0ZWQgZnJvbSB0aGUg
VzNDIHJlcG9zaXRvcnkuCi1EbyBOT1QgbW9kaWZ5IHRoZXNlIHRlc3RzIGRpcmVjdGx5IGluIFdl
YktpdC4KLUluc3RlYWQsIGNyZWF0ZSBhIHB1bGwgcmVxdWVzdCBvbiB0aGUgV1BUIGdpdGh1YjoK
LQlodHRwczovL2dpdGh1Yi5jb20vd2ViLXBsYXRmb3JtLXRlc3RzL3dwdAotCi1UaGVuIHJ1biB0
aGUgVG9vbHMvU2NyaXB0cy9pbXBvcnQtdzNjLXRlc3RzIGluIFdlYktpdCB0byByZWltcG9ydAot
Ci1EbyBOT1QgbW9kaWZ5IG9yIHJlbW92ZSB0aGlzIGZpbGUuCi0KLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQot
UHJvcGVydGllcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotUHJvcGVydHkgdmFs
dWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLUxp
c3Qgb2YgZmlsZXM6Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy9weXdlYnNvY2tldC90ZXN0L3Rlc3RkYXRhL2hhbmRsZXJzL2Fib3J0X2J5X3VzZXJf
d3NoLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy9weXdlYnNvY2tldC90ZXN0L3Rlc3RkYXRhL2hhbmRsZXJzL2JsYW5rX3dzaC5weQotL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQv
dGVzdC90ZXN0ZGF0YS9oYW5kbGVycy9vcmlnaW5fY2hlY2tfd3NoLnB5CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29j
a2V0L3Rlc3QvdGVzdGRhdGEvaGVsbG8ucGwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3Rlc3QvdGVzdGRhdGEvaGVsbG8ucGwK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uODgyZWY1YTEwMDY1ZmViNjkxYWY1ZjcxNmIxZTQ5OTZiMzk3ZGE2NQotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvcHl3ZWJzb2NrZXQvdGVzdC90ZXN0ZGF0YS9oZWxsby5wbApAQCAtMCwwICsxLDMy
IEBACisjIS91c3IvYmluL3BlcmwgLXdUCisjCisjIENvcHlyaWdodCAyMDEyLCBHb29nbGUgSW5j
LgorIyBBbGwgcmlnaHRzIHJlc2VydmVkLgorIworIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFy
ZQorIyBtZXQ6CisjCisjICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisjIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyMgICAgICogUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorIyBjb3B5cmlnaHQg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyCisjIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUKKyMgZGlzdHJpYnV0aW9uLgorIyAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9m
IEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisjIGNvbnRyaWJ1dG9ycyBtYXkgYmUg
dXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisjIHRoaXMg
c29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisjCisj
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBD
T05UUklCVVRPUlMKKyMgIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyMgTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisjIEEgUEFSVElDVUxBUiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisj
IE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLAorIyBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisjIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorIyBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkK
KyMgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVAorIyAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKworcHJpbnQgIkhl
bGxvXG4iOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy9weXdlYnNvY2tldC90ZXN0L3Rlc3RkYXRhL3czYy1pbXBvcnQubG9nIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNv
Y2tldC90ZXN0L3Rlc3RkYXRhL3czYy1pbXBvcnQubG9nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCA3OGNjYTNlZGU2OGMzYzE0ODBmMWNlZjY4YTRlNWVkZjY5MDg2NTU2Li4wMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvdGVzdC90ZXN0ZGF0
YS93M2MtaW1wb3J0LmxvZworKysgL2Rldi9udWxsCkBAIC0xLDE3ICswLDAgQEAKLVRoZSB0ZXN0
cyBpbiB0aGlzIGRpcmVjdG9yeSB3ZXJlIGltcG9ydGVkIGZyb20gdGhlIFczQyByZXBvc2l0b3J5
LgotRG8gTk9UIG1vZGlmeSB0aGVzZSB0ZXN0cyBkaXJlY3RseSBpbiBXZWJLaXQuCi1JbnN0ZWFk
LCBjcmVhdGUgYSBwdWxsIHJlcXVlc3Qgb24gdGhlIFdQVCBnaXRodWI6Ci0JaHR0cHM6Ly9naXRo
dWIuY29tL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQKLQotVGhlbiBydW4gdGhlIFRvb2xzL1Njcmlw
dHMvaW1wb3J0LXczYy10ZXN0cyBpbiBXZWJLaXQgdG8gcmVpbXBvcnQKLQotRG8gTk9UIG1vZGlm
eSBvciByZW1vdmUgdGhpcyBmaWxlLgotCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLVByb3BlcnRpZXMgcmVx
dWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLVByb3BlcnR5IHZhbHVlcyByZXF1aXJpbmcg
dmVuZG9yIHByZWZpeGVzOgotTm9uZQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1MaXN0IG9mIGZpbGVzOgot
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJz
b2NrZXQvdGVzdC90ZXN0ZGF0YS9SRUFETUUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvdGVzdC93M2MtaW1w
b3J0LmxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvcHl3ZWJzb2NrZXQvdGVzdC93M2MtaW1wb3J0LmxvZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggOGZiNWU0MTU4MDAxYzE1ZmY4NWUzMTFiY2M2Y2YyNTFmYmIxY2QzZi4uMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3Rlc3QvdzNjLWlt
cG9ydC5sb2cKKysrIC9kZXYvbnVsbApAQCAtMSwzNyArMCwwIEBACi1UaGUgdGVzdHMgaW4gdGhp
cyBkaXJlY3Rvcnkgd2VyZSBpbXBvcnRlZCBmcm9tIHRoZSBXM0MgcmVwb3NpdG9yeS4KLURvIE5P
VCBtb2RpZnkgdGhlc2UgdGVzdHMgZGlyZWN0bHkgaW4gV2ViS2l0LgotSW5zdGVhZCwgY3JlYXRl
IGEgcHVsbCByZXF1ZXN0IG9uIHRoZSBXUFQgZ2l0aHViOgotCWh0dHBzOi8vZ2l0aHViLmNvbS93
ZWItcGxhdGZvcm0tdGVzdHMvd3B0Ci0KLVRoZW4gcnVuIHRoZSBUb29scy9TY3JpcHRzL2ltcG9y
dC13M2MtdGVzdHMgaW4gV2ViS2l0IHRvIHJlaW1wb3J0Ci0KLURvIE5PVCBtb2RpZnkgb3IgcmVt
b3ZlIHRoaXMgZmlsZS4KLQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1Qcm9wZXJ0aWVzIHJlcXVpcmluZyB2
ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi1Qcm9wZXJ0eSB2YWx1ZXMgcmVxdWlyaW5nIHZlbmRvciBw
cmVmaXhlczoKLU5vbmUKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotTGlzdCBvZiBmaWxlczoKLS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3Rl
c3QvX19pbml0X18ucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3B5d2Vic29ja2V0L3Rlc3QvY2xpZW50X2Zvcl90ZXN0aW5nLnB5Ci0vTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC90
ZXN0L2VuZHRvZW5kX3dpdGhfZXh0ZXJuYWxfc2VydmVyLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC90ZXN0L21vY2sucHkK
LS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vi
c29ja2V0L3Rlc3QvbXV4X2NsaWVudF9mb3JfdGVzdGluZy5weQotL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvdGVzdC9ydW5fYWxs
LnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9w
eXdlYnNvY2tldC90ZXN0L3NldF9zeXNfcGF0aC5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvdGVzdC90ZXN0X2Rpc3BhdGNo
LnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9w
eXdlYnNvY2tldC90ZXN0L3Rlc3RfZW5kdG9lbmQucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3Rlc3QvdGVzdF9leHRlbnNp
b25zLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy9weXdlYnNvY2tldC90ZXN0L3Rlc3RfaGFuZHNoYWtlLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC90ZXN0L3Rlc3RfaGFu
ZHNoYWtlX2h5YmkucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3B5d2Vic29ja2V0L3Rlc3QvdGVzdF9oYW5kc2hha2VfaHliaTAwLnB5Ci0vTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tl
dC90ZXN0L3Rlc3RfaHR0cF9oZWFkZXJfdXRpbC5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvdGVzdC90ZXN0X21lbW9yaXpp
bmdmaWxlLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy9weXdlYnNvY2tldC90ZXN0L3Rlc3RfbW9jay5weQotL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvdGVzdC90ZXN0X21zZ3V0
aWwucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3B5d2Vic29ja2V0L3Rlc3QvdGVzdF9tdXgucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3Rlc3QvdGVzdF9zdHJlYW0ucHkK
LS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vi
c29ja2V0L3Rlc3QvdGVzdF9zdHJlYW1faGl4aWU3NS5weQotL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvdGVzdC90ZXN0X3V0aWwu
cHkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvcHl3ZWJzb2NrZXQvdzNjLWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3czYy1pbXBvcnQubG9n
CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3YmIyZWQ1MjNiM2IyMjJiYTE3NTg3YTRm
ZTY3MGE2Njg5ZGQzZDA3Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
cHl3ZWJzb2NrZXQvdzNjLWltcG9ydC5sb2cKKysrIC9kZXYvbnVsbApAQCAtMSwyMiArMCwwIEBA
Ci1UaGUgdGVzdHMgaW4gdGhpcyBkaXJlY3Rvcnkgd2VyZSBpbXBvcnRlZCBmcm9tIHRoZSBXM0Mg
cmVwb3NpdG9yeS4KLURvIE5PVCBtb2RpZnkgdGhlc2UgdGVzdHMgZGlyZWN0bHkgaW4gV2ViS2l0
LgotSW5zdGVhZCwgY3JlYXRlIGEgcHVsbCByZXF1ZXN0IG9uIHRoZSBXUFQgZ2l0aHViOgotCWh0
dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxhdGZvcm0tdGVzdHMvd3B0Ci0KLVRoZW4gcnVuIHRoZSBU
b29scy9TY3JpcHRzL2ltcG9ydC13M2MtdGVzdHMgaW4gV2ViS2l0IHRvIHJlaW1wb3J0Ci0KLURv
IE5PVCBtb2RpZnkgb3IgcmVtb3ZlIHRoaXMgZmlsZS4KLQotLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1Qcm9w
ZXJ0aWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi1Qcm9wZXJ0eSB2YWx1ZXMg
cmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotTGlzdCBv
ZiBmaWxlczoKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3B5d2Vic29ja2V0L0NPTlRSSUJVVElORwotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvTElDRU5TRQotL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvTUFOSUZF
U1QuaW4KLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3B5d2Vic29ja2V0L1JFQURNRQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvUkVBRE1FLm1kCi0vTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9zZXR1cC5weQpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy9yZXF1aXJlbWVudHNfZmxha2U4LnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvcmVxdWlyZW1lbnRzX2ZsYWtlOC50eHQKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
MGE0NTIyNDAxNjQxN2NkZGJmNTkyMDkxOTYzODBjY2UwYTA4OWVkZgotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcmVx
dWlyZW1lbnRzX2ZsYWtlOC50eHQKQEAgLTAsMCArMSw0IEBACitmbGFrZTg9PTMuNy45CitweWNv
ZGVzdHlsZT09Mi41LjAKK3B5Zmxha2VzPT0yLjEuMQorcGVwOC1uYW1pbmc9PTAuOS4xCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3JlcXVpcmVtZW50c19teXB5LnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvcmVxdWlyZW1lbnRzX215cHkudHh0Cm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjMxNTQ1
YzJmMDc0N2E5YzIwZDc3YjUwZDI3MDk2YTRlY2FmZDQzNTEKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3JlcXVpcmVt
ZW50c19teXB5LnR4dApAQCAtMCwwICsxLDMgQEAKK215cHk9PTAuNzQwCitteXB5LWV4dGVuc2lv
bnM9PTAuNC4zCit0eXBlZC1hc3Q9PTEuNC4wCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3J1bm5lci9jc3MvdzNjLWltcG9ydC5s
b2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3J1
bm5lci9jc3MvdzNjLWltcG9ydC5sb2cKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGNh
MGMxODE1MmRkNDI5MTI4ZTIxMjU0MTNmMmFiOGI3MmFjMjFkNmYuLjAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy9ydW5uZXIvY3NzL3czYy1pbXBvcnQubG9nCisrKyAvZGV2
L251bGwKQEAgLTEsMTggKzAsMCBAQAotVGhlIHRlc3RzIGluIHRoaXMgZGlyZWN0b3J5IHdlcmUg
aW1wb3J0ZWQgZnJvbSB0aGUgVzNDIHJlcG9zaXRvcnkuCi1EbyBOT1QgbW9kaWZ5IHRoZXNlIHRl
c3RzIGRpcmVjdGx5IGluIFdlYktpdC4KLUluc3RlYWQsIGNyZWF0ZSBhIHB1bGwgcmVxdWVzdCBv
biB0aGUgV1BUIGdpdGh1YjoKLQlodHRwczovL2dpdGh1Yi5jb20vd2ViLXBsYXRmb3JtLXRlc3Rz
L3dwdAotCi1UaGVuIHJ1biB0aGUgVG9vbHMvU2NyaXB0cy9pbXBvcnQtdzNjLXRlc3RzIGluIFdl
YktpdCB0byByZWltcG9ydAotCi1EbyBOT1QgbW9kaWZ5IG9yIHJlbW92ZSB0aGlzIGZpbGUuCi0K
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLQotUHJvcGVydGllcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgot
Tm9uZQotUHJvcGVydHkgdmFsdWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0KLUxpc3Qgb2YgZmlsZXM6Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9ydW5uZXIvY3NzL2Jvb3RzdHJhcC10aGVtZS5taW4u
Y3NzCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9y
dW5uZXIvY3NzL2Jvb3RzdHJhcC5taW4uY3NzCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3J1bm5lci9mb250cy93M2MtaW1wb3J0
LmxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
cnVubmVyL2ZvbnRzL3czYy1pbXBvcnQubG9nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCA0ZGFmMjcyMTNiYzYzODJjYmJjYWM4OTM3NDVjODZmNWJiM2U1NzI3Li4wMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcnVubmVyL2ZvbnRzL3czYy1pbXBvcnQubG9nCisr
KyAvZGV2L251bGwKQEAgLTEsMjAgKzAsMCBAQAotVGhlIHRlc3RzIGluIHRoaXMgZGlyZWN0b3J5
IHdlcmUgaW1wb3J0ZWQgZnJvbSB0aGUgVzNDIHJlcG9zaXRvcnkuCi1EbyBOT1QgbW9kaWZ5IHRo
ZXNlIHRlc3RzIGRpcmVjdGx5IGluIFdlYktpdC4KLUluc3RlYWQsIGNyZWF0ZSBhIHB1bGwgcmVx
dWVzdCBvbiB0aGUgV1BUIGdpdGh1YjoKLQlodHRwczovL2dpdGh1Yi5jb20vd2ViLXBsYXRmb3Jt
LXRlc3RzL3dwdAotCi1UaGVuIHJ1biB0aGUgVG9vbHMvU2NyaXB0cy9pbXBvcnQtdzNjLXRlc3Rz
IGluIFdlYktpdCB0byByZWltcG9ydAotCi1EbyBOT1QgbW9kaWZ5IG9yIHJlbW92ZSB0aGlzIGZp
bGUuCi0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotUHJvcGVydGllcyByZXF1aXJpbmcgdmVuZG9yIHByZWZp
eGVzOgotTm9uZQotUHJvcGVydHkgdmFsdWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1O
b25lCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0KLUxpc3Qgb2YgZmlsZXM6Ci0vTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9ydW5uZXIvZm9udHMvZ2x5cGhpY29ucy1o
YWxmbGluZ3MtcmVndWxhci5lb3QKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3J1bm5lci9mb250cy9nbHlwaGljb25zLWhhbGZsaW5ncy1yZWd1bGFy
LnN2ZwotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
cnVubmVyL2ZvbnRzL2dseXBoaWNvbnMtaGFsZmxpbmdzLXJlZ3VsYXIudHRmCi0vTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9ydW5uZXIvZm9udHMvZ2x5
cGhpY29ucy1oYWxmbGluZ3MtcmVndWxhci53b2ZmCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3J1bm5lci9pbmRleC5odG1sIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9ydW5uZXIv
aW5kZXguaHRtbAppbmRleCA2YzlhOGFmZmVkNThjMmI3MGI3NTM5NDRiMzFmMDA5OTc2ZDQ5ZDZk
Li41Nzk0MGQwMmQwYzMyYjM2NmM0MDdhYmVjMTBhN2Q3MGQ0NDBkNjBkIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3J1bm5lci9p
bmRleC5odG1sCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvcnVubmVyL2luZGV4Lmh0bWwKQEAgLTEsMjYgKzEsNDAgQEAKIDwhRE9DVFlQRSBo
dG1sPgogPGh0bWwgbGFuZz1lbj4KIDxtZXRhIGNoYXJzZXQ9VVRGLTg+Ci08dGl0bGU+V2ViIHRl
c3RzPC90aXRsZT4KKzx0aXRsZT53ZWItcGxhdGZvcm0tdGVzdHMgUnVubmVyPC90aXRsZT4KIDxs
aW5rIHJlbD0nc3R5bGVzaGVldCcgaHJlZj0nY3NzL2Jvb3RzdHJhcC5taW4uY3NzJz4KIDxsaW5r
IHJlbD0nc3R5bGVzaGVldCcgaHJlZj0nY3NzL2Jvb3RzdHJhcC10aGVtZS5taW4uY3NzJz4KIDxs
aW5rIHJlbD0nc3R5bGVzaGVldCcgaHJlZj0ncnVubmVyLmNzcyc+CiA8c2NyaXB0IHNyYz0nL2Nv
bW1vbi9nZXQtaG9zdC1pbmZvLnN1Yi5qcyc+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0ncnVubmVy
LmpzJz48L3NjcmlwdD4KIAotCiA8aGVhZGVyIGNsYXNzPSJuYXZiYXIgbmF2YmFyLWludmVyc2Ug
bmF2YmFyLWZpeGVkLXRvcCI+CiAgIDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+CiAgICAgPGRpdiBj
bGFzcz0ibmF2YmFyLWhlYWRlciI+CiAgICAgICA8YSBjbGFzcz0ibmF2YmFyLWJyYW5kIiBocmVm
PSIjIj4KLSAgICAgICAgPGltZyBzcmM9J2xvZ28uc3ZnJyB3aWR0aD0nNTAnIGhlaWdodD0nNTAn
IGFsdD0nTG9nbyBmb3IgdGhlIFdQVCBSdW5uZXInPgotICAgICAgICBXZWIgUGxhdGZvcm0gVGVz
dHMgUnVubmVyCisgICAgICAgIDxpbWcgc3JjPScvaW1hZ2VzL3dwdC1sb2dvL3dwdC1sb2dvLWxp
Z2h0Ymx1ZS1iZy5zdmcnIHdpZHRoPSc1MCcgaGVpZ2h0PSc1MCcgc3R5bGU9J2JvcmRlci1yYWRp
dXM6IDUwJScgYWx0PSdXUFQgTG9nbyc+CisgICAgICAgIHdlYi1wbGF0Zm9ybS10ZXN0cyBSdW5u
ZXIKICAgICAgIDwvYT4KICAgICA8L2Rpdj4KICAgPC9kaXY+CiA8L2hlYWRlcj4KIAogPGRpdiBj
bGFzcz0iY29udGFpbmVyIj4KKyAgPGRpdiBjbGFzcz0iYWxlcnQgYWxlcnQtd2FybmluZyI+Cisg
ICAgICAgIFRoaXMgcnVubmVyIGRvZXMgbm90IGZ1bGx5IHN1cHBvcnQgYWxsIHRlc3QgdHlwZXMg
YW5kIGhhcyBhIG51bWJlciBvZgorICAgICAgICA8YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20v
d2ViLXBsYXRmb3JtLXRlc3RzL3dwdC9sYWJlbHMvcnVubmVyIj5rbm93biBpc3N1ZXM8L2E+Lgor
ICAgICAgICA8c3BhbiBpZD0icnVubmVyLWNvbnRhY3QtaW5mbyI+PC9zcGFuPgorICAgICAgICA8
Y29kZT4uL3dwdCBydW48L2NvZGU+IGlzIGEgbW9yZSB3ZWxsLXN1cHBvcnRlZCBydW5uZXIsIHNl
ZSB0aGUgZG9jdW1lbnRhdGlvbiBvbgorICAgICAgICA8YSBocmVmPSJodHRwczovL3dlYi1wbGF0
Zm9ybS10ZXN0cy5vcmcvcnVubmluZy10ZXN0cy8iPnJ1bm5pbmcgdGVzdHM8L2E+LgorICAgICAg
ICA8c2NyaXB0PgorICAgICAgICBpZiAobG9jYXRpb24uaG9zdCA9PSAidzNjLXRlc3Qub3JnIikg
eworICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInJ1bm5lci1jb250YWN0LWlu
Zm8iKQorICAgICAgICAgICAgICAgIC5pbm5lckhUTUwgPSAnIElmIHRoaXMgcnVubmVyIGlzbuKA
mXQgd29ya2luZywgY29udGFjdCcKKyAgICAgICAgICAgICAgICAgICAgKyAnIDxhIGhyZWY9Im1h
aWx0bzptaWtlQHczLm9yZyI+bWlrZUB3My5vcmc8L2E+LiAnCisgICAgICAgIH0KKyAgICAgICAg
PC9zY3JpcHQ+CisgIDwvZGl2PgorCiAgIDxkaXYgaWQ9InRlc3RDb250cm9sIiBjbGFzcz0icGFu
ZWwgcGFuZWwtZGVmYXVsdCI+CiAgICAgPGRpdiBjbGFzcz0icGFuZWwtYm9keSI+CiAgICAgICA8
Zm9ybSBpZD0nb3B0aW9ucycgY2xhc3M9J2hvcml6b250YWwtZm9ybScgb25zdWJtaXQ9J3JldHVy
biBmYWxzZTsnPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy9ydW5uZXIvbG9nby5zdmcgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3J1bm5lci9sb2dvLnN2ZwpkZWxldGVkIGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggOGEyNTc3NmI2ZjRjN2E2ZjljMDc5OTYzNzFiMDI2ZjI0ZDMxNDZj
ZS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3J1bm5lci9sb2dvLnN2
ZworKysgL2Rldi9udWxsCkBAIC0xLDggKzAsMCBAQAotPHN2ZyB3aWR0aD0iNDUzcHgiIGhlaWdo
dD0iNDUzcHgiIHZpZXdCb3g9IjAgMCA0NTMgNDUzIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcv
MjAwMC9zdmciPgotICA8Y2lyY2xlIHN0cm9rZT0iI2VkNTU2NSIgc3Ryb2tlLXdpZHRoPSIyMCIg
ZmlsbD0iI2ZmZiIgY3g9IjIyNi41IiBjeT0iMjI2LjUiIHI9IjIxMy41Ij48L2NpcmNsZT4KLSAg
PGcgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMTYwIDI1MCkiPgotICAgIDxnIHRyYW5zZm9ybT0ibWF0
cml4KDIuMjUgMCAwIC0yLjI1IDAgMCkiPgotICAgICAgPHBhdGggZD0ibTAgMGMwLjI1Mi0wLjMz
MyAwLjUwOC0wLjY1OSAwLjc2Ni0wLjk3NC0xLjI2OS0zLjc2NC0yLjM2OC03Ljc0OS0zLjQ0Ny0x
MS4zODMtMC4xNjYtMC4wNTMtMC4zMjktMC4xMTYtMC40ODYtMC4xOTQtOC41NzIgOC4yMTEtMi4w
NTYgMTEuMzY0IDMuMTY3IDEyLjU1MW01OS44MDkgNDUuNTdjMi44OTkgMjAuMTE4LTEwLjA4NCAz
OC42MzUtMjkgNDEuMzYyLTE4LjkxNSAyLjcyNi0zNi42MDEtMTEuMzcxLTM5LjUtMzEuNDg5LTIu
NDE4LTE2Ljc3NCA2LjIxMi0zMi40MjcgMjAuMTEyLTM4Ljc1bC0wLjA1IDAuMDE0LTAuMzIzLTIu
MjQyYzAuMjE5LTAuMDQ5IDAuNDI3LTAuMDkgMC42NC0wLjEzNC0wLjEyMi0wLjAyNy0wLjI0NS0w
LjA1My0wLjM2NS0wLjA4NmwtMC4wMDQgMC4wMTNzLTAuMDQyLTAuMDE3LTAuMTA2LTAuMDQyYy0w
LjQ2NS0wLjEzNy0wLjkxNS0wLjMxOS0xLjM0OS0wLjU0NC0zLjUwMi0xLjQyNC0xMi4yODUtNS4w
OTUtMTQuMjg3LTYuODY3IDAgMCAwLjkyNy0xLjY2NSAyLjI1NC0zLjcwNC0xNy4zMzUtMi40MjEt
Ni41MjItMTUuNjMtMy4xNzYtMTkuMjYtMC4wMTUtMC4yOTYgMC4wMDQtMC41OTIgMC4wMzktMC44
ODgtMi41NjItMS42NzctNS43NzItNC4xOTUtNy43NzItNy4yOSAwIDAgMC41NTItMC4xODIgMS40
NTgtMC41MzZ2LTAuMDAxbDAuMDE2LTAuMDA1YzEuMTgyLTAuNDYzIDIuOTYtMS4yMTkgNC45MTQt
Mi4yNDgtMy4wMDQtMTMuNTU3LTcuNTQyLTkuNjc3LTEwLjU4OS00LjY4MyAwLjc0NSAyLjIzMiAw
Ljc0MSA0LjIzLTAuMjAyIDUuMzkzLTAuNjYgMC44MTEtMS42ODEgMS4xMDEtMi44ODkgMC45MzEt
MC4wODcgMC4yMjItMC4xMzUgMC4zNDktMC4xMzUgMC4zNDlsLTAuMTA4LTAuMzk3Yy0wLjA1Ny0w
LjAxLTAuMTE1LTAuMDIxLTAuMTczLTAuMDM0IDAuMDA1IDAuMDAzIDAuMDA4IDAuMDA1IDAuMDEz
IDAuMDA4IDAgMC0wLjAzMi0wLjAwOC0wLjA3OC0wLjAyMS0wLjUwOC0wLjExNi0xLjA0Mi0wLjMw
Ni0xLjU5My0wLjU2Ni0yLjc1OS0xLjE1OC04LjAyMy00LjI0OC04LjYzOS0xMS4wODgtMC4yMDgt
MS4wNTYtMC4yMTItMi4wMTUgMC4wMDItMi44MTIgMC4wMDEtMC4wMTQgMC4wMDEtMC4wMjYgMC4w
MDMtMC4wNCAwIDAgMC41MjctNC41NjEgNC4yODgtMS44OTRsLTAuMDAyIDAuMDAzYzEuODYxIDAu
NTM2IDQuMDM0IDIuMDAzIDUuOTg5IDQuMjI2IDAuNjY0IDAuNzU1IDEuMjU2IDEuNTQ1IDEuNzY4
IDIuMzQzIDguNTM3LTE2Ljc2OCAxNC45NzQgMy40MDkgMTUuODEgNi4yMyAyLjMwOS0xLjUzOCA0
LjUyOC0zLjQyNSA2LjAxOS01LjY0IDAgMCAxLjE4MiAzLjQ1OCAzLjk0MiA2LjMxMiA1Ljk4NC04
Ljk1NiAxMy4zNzQtMTAuNDY1IDEzLjM3NC0xMC40NjVsMy44MDIgNi4xNTJjMTEuMzI4LTUuNTY5
IDcuMzgyLTEwLjM4NSAyLjcxMy0xMy4yNTMtMS43NTcgMS4xOTgtMy40MjggMS40ODUtNC41Mzcg
MC41NS0wLjc3NS0wLjY1My0xLjE2Ni0xLjgwNy0xLjItMy4yNDYtMC4xOTktMC4wNjktMC4zMTIt
MC4xMDYtMC4zMTItMC4xMDZsMC4zMTYtMC4xODVjMC4wMDEtMC4wNjkgMC4wMDItMC4xMzkgMC4w
MDQtMC4yMS0wLjAwMiAwLjAwNi0wLjAwNCAwLjAxMi0wLjAwNiAwLjAxOSAwIDAgMC4wMDMtMC4w
NDQgMC4wMDctMC4xMTIgMC4wMjQtMC42MDQgMC4xMDQtMS4yNDcgMC4yMzktMS45MiAwLjU2NC0z
LjM5NSAyLjM3OC0xMC4wMTkgOC4wMTMtMTEuNzQxIDAuODUxLTAuMzk2IDEuNjUyLTAuNTQyIDIu
MzQ5LTAuNDA3IDAuMDEyIDAgMC4wMjMtMC4wMDMgMC4wMzUtMC4wMDMgMCAwIDMuODkxLTAuMDQ4
IDIuMjEgNC43NDVsLTAuMDA0LTAuMDA0Yy0wLjE3NiAyLjI1OC0xLjA4NiA1LjAxNS0yLjY1OSA3
LjYyOC0wLjUzNSAwLjg4OC0xLjEwOSAxLjY5NS0xLjcwMSAyLjQxMyAxNi4zNzQgOC4wOTUtMy4x
NSAxOS41NjctMy4xNTYgMTkuNTdsMi4wNjIgMy4zMzYtNC41ODQgMS4wMjhjLTAuNTE2IDAuMTE2
LTEuNDQ2IDAuNDU4LTIuNjM5IDAuOTQ5IDAuNjEtMC4xMTYgMS4yMTgtMC4yMjUgMS44MjEtMC4z
MjIgMC4yMjEgMC42MTUgMC40MzIgMS4yNDkgMC42MzEgMS45MTggMS43MTUgNS43NjYgMi4zNCAx
Mi41NzcgMS44MDMgMTguNzZsMS41NDQtMy42MDFzMC42NTUgMC40MDQgMS42MTIgMC44MjdsLTAu
MDg4LTAuMTY3YzMuODMyLTI2LjkwNiAxNC42MzEtMTAuNjY2IDE3LjQwNy01LjkyNCAxLjQ0NSAw
LjEyNSAyLjgxOSAxLjI3IDMuNDQ4IDMuMDc0IDAuODY0IDIuNDc1IDAuMDAyIDUuMjQyLTEuOTI2
IDYuMTgzLTEuOTI3IDAuOTQyLTQuMTg4LTAuMzAxLTUuMDUtMi43NzQtMC41MzMtMS41MjQtMC40
MDYtMy4xNTggMC4yMTgtNC40MS02LjY3LTEzLjA0NC0xMC4zNi0xLjAxNi0xMS42NDcgNC44MSAw
LjY2OSAwLjE0MyAxLjM1NSAwLjIxIDEuOTk4IDAuMTM1IDAgMC00LjE4NSAxMS4yMzQtMTEuNzQz
IDE1LjYxOC0wLjA5NyAwLjEzNi0wLjE5MiAwLjI3NS0wLjI5MSAwLjQwNS0wLjA1Ni0wLjAxNy0w
LjExNi0wLjAyOS0wLjE3NC0wLjA0NGwwLjM0NSAyLjgzMmMwLjU2NyAwLjA0NiAwLjg3MSAwLjA5
OSAwLjg3MSAwLjA5OWwwLjAyMSAwLjE0Ni0wLjY1IDAuMTgxYzE4LjU3Mi0yLjE1OCAzNS43NDQg
MTEuNzk3IDM4LjU5NyAzMS41OTMiIGZpbGw9IiNlZDU1NjUiLz4KLSAgICA8L2c+Ci0gIDwvZz4K
LTwvc3ZnPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy9ydW5uZXIvcmVwb3J0LnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9ydW5uZXIvcmVwb3J0LnB5CmluZGV4IDk1MmRmMDhi
ODA1OTg5Yzg0MDhlYzBlNWU5MGMwNjUyYzczNGE1NjEuLjVlYjhkNjdjN2Y2ZGE5YzVmZDAxZGU4
ZGU0MGY1Y2M5MmMxMWJlOTAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcnVubmVyL3JlcG9ydC5weQorKysgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3J1bm5lci9yZXBvcnQucHkK
QEAgLTE2MCw3ICsxNjAsNyBAQCBkZWYgYWxsX3Rlc3RzKGRhdGEpOgogICAgIGZvciBVQSwgcmVz
dWx0cyBpbiBkYXRhLml0ZXJpdGVtcygpOgogICAgICAgICBmb3IgcmVzdWx0IGluIHJlc3VsdHNb
InJlc3VsdHMiXToKICAgICAgICAgICAgIGlkID0gdGVzdF9pZChyZXN1bHRbInRlc3QiXSkKLSAg
ICAgICAgICAgIHRlc3RzW2lkXSB8PSBzZXQoc3VidGVzdFsibmFtZSJdIGZvciBzdWJ0ZXN0IGlu
IHJlc3VsdFsic3VidGVzdHMiXSkKKyAgICAgICAgICAgIHRlc3RzW2lkXSB8PSB7c3VidGVzdFsi
bmFtZSJdIGZvciBzdWJ0ZXN0IGluIHJlc3VsdFsic3VidGVzdHMiXX0KICAgICByZXR1cm4gdGVz
dHMKIAogCkBAIC0xNzksNyArMTc5LDcgQEAgZGVmIGdyb3VwX3Jlc3VsdHMoZGF0YSk6CiAKICAg
ICBkZWYgcmVzdWx0KCk6CiAgICAgICAgIHJldHVybiB7Ci0gICAgICAgICAgICAiaGFybmVzcyI6
IGRpY3QoKFVBLCAoTm9uZSwgTm9uZSkpIGZvciBVQSBpbiBVQXMpLAorICAgICAgICAgICAgImhh
cm5lc3MiOiB7VUE6IChOb25lLCBOb25lKSBmb3IgVUEgaW4gVUFzfSwKICAgICAgICAgICAgICJz
dWJ0ZXN0cyI6IE5vbmUgICMgaW5pdCB0aGlzIGxhdGVyCiAgICAgICAgIH0KIApAQCAtMTkxLDkg
KzE5MSw5IEBAIGRlZiBncm91cF9yZXN1bHRzKGRhdGEpOgogICAgICAgICAgICAgcmVzdWx0ID0g
cmVzdWx0c19ieV90ZXN0W2lkXQogCiAgICAgICAgICAgICBpZiByZXN1bHRbInN1YnRlc3RzIl0g
aXMgTm9uZToKLSAgICAgICAgICAgICAgICByZXN1bHRbInN1YnRlc3RzIl0gPSBkaWN0KAotICAg
ICAgICAgICAgICAgICAgICAobmFtZSwgZGljdCgoVUEsIChOb25lLCBOb25lKSkgZm9yIFVBIGlu
IFVBcykpIGZvciBuYW1lIGluIHRlc3RzW2lkXQotICAgICAgICAgICAgICAgICkKKyAgICAgICAg
ICAgICAgICByZXN1bHRbInN1YnRlc3RzIl0gPSB7CisgICAgICAgICAgICAgICAgICAgIG5hbWU6
IHtVQTogKE5vbmUsIE5vbmUpIGZvciBVQSBpbiBVQXN9IGZvciBuYW1lIGluIHRlc3RzW2lkXQor
ICAgICAgICAgICAgICAgIH0KIAogICAgICAgICAgICAgcmVzdWx0WyJoYXJuZXNzIl1bVUFdID0g
KHRlc3RfZGF0YVsic3RhdHVzIl0sIHRlc3RfZGF0YVsibWVzc2FnZSJdKQogICAgICAgICAgICAg
Zm9yIHN1YnRlc3QgaW4gdGVzdF9kYXRhWyJzdWJ0ZXN0cyJdOgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9ydW5uZXIvcnVubmVy
LmNzcyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
cnVubmVyL3J1bm5lci5jc3MKaW5kZXggODU0NjAxNzdlYTE1MWFiZDNlZWZhODQ5ODY2MDc3NTVj
OTJlZmU5My4uZWM3MmFjYjgzZTcwYjVmYTBkZmU0NmU5MmY3MDU5ZDVmNTdlNTRkOCAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9y
dW5uZXIvcnVubmVyLmNzcworKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3J1bm5lci9ydW5uZXIuY3NzCkBAIC01Miw3ICs1Miw2IEBAIHNlY3Rp
b24gb2wgewogfQogCiBodG1sLmRvbmUgc2VjdGlvbiBvbCB7Ci0gICAgLW1vei1jb2x1bW4tY291
bnQ6IDM7CiAgICAgLXdlYmtpdC1jb2x1bW4tY291bnQ6IDM7CiAgICAgY29sdW1uLWNvdW50OiAz
OwogfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy9ydW5uZXIvcnVubmVyLmpzIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy9ydW5uZXIvcnVubmVyLmpzCmluZGV4IGVmMGI2YTQ0OWQ2
ODYxNjg0NjlkZmNiODUxYjMwOTEyMTI0Mzg3YTcuLmRhYWY5ZDQ1ZGE1YmZiYTYzMjM1NGU5ZWRi
ZDI4NDZkMDUyZDAwMzUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvcnVubmVyL3J1bm5lci5qcworKysgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3J1bm5lci9ydW5uZXIuanMKQEAg
LTE1MywxMyArMTUzLDIyIEBAIE1hbmlmZXN0SXRlcmF0b3IucHJvdG90eXBlID0gewogICAgIH0s
CiAKICAgICBtYXRjaGVzOiBmdW5jdGlvbihtYW5pZmVzdF9pdGVtKSB7Ci0gICAgICAgIHJldHVy
biB0aGlzLm1hdGNoX2xvY2F0aW9uKG1hbmlmZXN0X2l0ZW0udXJsKSAhPT0gbnVsbDsKKyAgICAg
ICAgdmFyIHVybF9iYXNlID0gdGhpcy5tYW5pZmVzdC5kYXRhLnVybF9iYXNlOworICAgICAgICBp
ZiAodXJsX2Jhc2UuY2hhckF0KHVybF9iYXNlLmxlbmd0aCAtIDEpICE9PSAiLyIpIHsKKyAgICAg
ICAgICAgIHVybF9iYXNlID0gdXJsX2Jhc2UgKyAiLyI7CisgICAgICAgIH0KKyAgICAgICAgdmFy
IHVybCA9IHVybF9iYXNlICsgbWFuaWZlc3RfaXRlbS51cmw7CisgICAgICAgIHJldHVybiB0aGlz
Lm1hdGNoX2xvY2F0aW9uKHVybCkgIT09IG51bGw7CiAgICAgfSwKIAogICAgIHRvX3Rlc3Q6IGZ1
bmN0aW9uKG1hbmlmZXN0X2l0ZW0pIHsKKyAgICAgICAgdmFyIHVybF9iYXNlID0gdGhpcy5tYW5p
ZmVzdC5kYXRhLnVybF9iYXNlOworICAgICAgICBpZiAodXJsX2Jhc2UuY2hhckF0KHVybF9iYXNl
Lmxlbmd0aCAtIDEpICE9PSAiLyIpIHsKKyAgICAgICAgICAgIHVybF9iYXNlID0gdXJsX2Jhc2Ug
KyAiLyI7CisgICAgICAgIH0KICAgICAgICAgdmFyIHRlc3QgPSB7CiAgICAgICAgICAgICB0eXBl
OiB0aGlzLnRlc3RfdHlwZXNbdGhpcy50ZXN0X3R5cGVzX2luZGV4XSwKLSAgICAgICAgICAgIHVy
bDogbWFuaWZlc3RfaXRlbS51cmwKKyAgICAgICAgICAgIHVybDogdXJsX2Jhc2UgKyBtYW5pZmVz
dF9pdGVtLnVybAogICAgICAgICB9OwogICAgICAgICBpZiAobWFuaWZlc3RfaXRlbS5oYXNPd25Q
cm9wZXJ0eSgicmVmZXJlbmNlcyIpKSB7CiAgICAgICAgICAgICB0ZXN0LnJlZl9sZW5ndGggPSBt
YW5pZmVzdF9pdGVtLnJlZmVyZW5jZXMubGVuZ3RoOwpAQCAtNjM4LDggKzY0Nyw5IEBAIFJlc3Vs
dHMucHJvdG90eXBlID0gewogICAgIH0sCiAKICAgICB0b19qc29uOiBmdW5jdGlvbigpIHsKKyAg
ICAgICAgdmFyIHRlc3RfcmVzdWx0cyA9IHRoaXMudGVzdF9yZXN1bHRzIHx8IFtdOwogICAgICAg
ICB2YXIgZGF0YSA9IHsKLSAgICAgICAgICAgICJyZXN1bHRzIjogdGhpcy50ZXN0X3Jlc3VsdHMu
bWFwKGZ1bmN0aW9uKHJlc3VsdCkgeworICAgICAgICAgICAgInJlc3VsdHMiOiB0ZXN0X3Jlc3Vs
dHMubWFwKGZ1bmN0aW9uKHJlc3VsdCkgewogICAgICAgICAgICAgICAgIHZhciBydiA9IHsidGVz
dCI6KHJlc3VsdC50ZXN0Lmhhc093blByb3BlcnR5KCJyZWZfdXJsIikgPwogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIFtyZXN1bHQudGVzdC51cmwsIHJlc3VsdC50ZXN0LnJlZl90
eXBlLCByZXN1bHQudGVzdC5yZWZfdXJsXSA6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgcmVzdWx0LnRlc3QudXJsKSwKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcnVubmVyL3czYy1pbXBvcnQubG9nIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9ydW5uZXIvdzNj
LWltcG9ydC5sb2cKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDc3ZGJiNjEyN2UzM2Fh
NjIwMGU0MWRmMGQzNDI5MGNiYzhiOTI0YjcuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy9ydW5uZXIvdzNjLWltcG9ydC5sb2cKKysrIC9kZXYvbnVsbApAQCAtMSwyMyAr
MCwwIEBACi1UaGUgdGVzdHMgaW4gdGhpcyBkaXJlY3Rvcnkgd2VyZSBpbXBvcnRlZCBmcm9tIHRo
ZSBXM0MgcmVwb3NpdG9yeS4KLURvIE5PVCBtb2RpZnkgdGhlc2UgdGVzdHMgZGlyZWN0bHkgaW4g
V2ViS2l0LgotSW5zdGVhZCwgY3JlYXRlIGEgcHVsbCByZXF1ZXN0IG9uIHRoZSBXUFQgZ2l0aHVi
OgotCWh0dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxhdGZvcm0tdGVzdHMvd3B0Ci0KLVRoZW4gcnVu
IHRoZSBUb29scy9TY3JpcHRzL2ltcG9ydC13M2MtdGVzdHMgaW4gV2ViS2l0IHRvIHJlaW1wb3J0
Ci0KLURvIE5PVCBtb2RpZnkgb3IgcmVtb3ZlIHRoaXMgZmlsZS4KLQotLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
Ci1Qcm9wZXJ0aWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi1Qcm9wZXJ0eSB2
YWx1ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQot
TGlzdCBvZiBmaWxlczoKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3J1bm5lci9pbmRleC5odG1sCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy9ydW5uZXIvbG9nby5zdmcKLS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3J1bm5lci9yZXBvcnQuY3NzCi0vTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9ydW5uZXIvcmVw
b3J0LnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy9ydW5uZXIvcnVubmVyLmNzcwotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvcnVubmVyL3J1bm5lci5qcwotL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcnVubmVyL3VwZGF0ZV9tYW5pZmVzdC5weQpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy9zY3JpcHRzL21hbmlmZXN0LmpzIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy9zY3JpcHRzL21hbmlmZXN0LmpzCmluZGV4IGZiZDU1NjgyNTkwMDk4
YTlkMjQzNDFmMmI4MTlmZDZkOTdlN2FhZjkuLmE5ZTM3MTdhYjU2NDQ2MzczYjdiNzFjMDUyYmVh
ZjcyYzAxZTMxOGYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvc2NyaXB0cy9tYW5pZmVzdC5qcworKysgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3NjcmlwdHMvbWFuaWZlc3QuanMK
QEAgLTIsMTE5ICsyLDExOSBAQAogZnVuY3Rpb24gX19yZXN1bHRfaGFuZGxlcigpIHsKIAogICAg
IGZ1bmN0aW9uIF9fZ2V0X21ldGFkYXRhKCkgewotCXZhciBvYmogPSBuZXcgT2JqZWN0KCk7Ci0J
dmFyIGF1dGhvciA9IFtdOwotCXZhciBhc3NlcnQgPSBbXTsKLQl2YXIgaGVscCA9IFtdOwotCXZh
ciBtYXRjaCA9IFtdOwotCXZhciBtaXNtYXRjaCA9IFtdOwotCXZhciBmbGFncyA9IFtdOwotCXZh
ciBub2RlczsKLQotCW5vZGVzID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnbGlua1tyZWw9
ImF1dGhvciJdJyk7Ci0JZm9yICh2YXIgaSA9IDA7IGkgPCBub2Rlcy5sZW5ndGg7IGkrKykgewot
CSAgICB2YXIgaHJlZiA9IG5vZGVzW2ldLmdldEF0dHJpYnV0ZSgiaHJlZiIpOwotCSAgICB2YXIg
dGl0bGUgPSBub2Rlc1tpXS5nZXRBdHRyaWJ1dGUoInRpdGxlIik7Ci0JICAgIHZhciBzID0gdGl0
bGU7Ci0JICAgIGlmIChocmVmICE9IG51bGwpIHsKLQkJcyArPSAiIDwiICsgaHJlZiArICI+IjsK
LQkgICAgfQotCSAgICBhdXRob3IucHVzaChzKTsKLQl9Ci0JaWYgKG5vZGVzLmxlbmd0aCA+IDAp
IG9iai5hdXRob3IgPSBhdXRob3I7Ci0Jbm9kZXMgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxs
KCdtZXRhW25hbWU9ImFzc2VydCJdJyk7Ci0JZm9yICh2YXIgaSA9IDA7IGkgPCBub2Rlcy5sZW5n
dGg7IGkrKykgewotCSAgICBhc3NlcnQucHVzaChub2Rlc1tpXS5nZXRBdHRyaWJ1dGUoImNvbnRl
bnQiKSk7Ci0JfQotCWlmIChub2Rlcy5sZW5ndGggPiAwKSBvYmouYXNzZXJ0ID0gYXNzZXJ0Owot
CW5vZGVzID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnbGlua1tyZWw9ImhlbHAiXScpOwot
CWZvciAodmFyIGkgPSAwOyBpIDwgbm9kZXMubGVuZ3RoOyBpKyspIHsKLQkgICAgaGVscC5wdXNo
KG5vZGVzW2ldLmdldEF0dHJpYnV0ZSgiaHJlZiIpKTsKLQl9Ci0JaWYgKG5vZGVzLmxlbmd0aCA+
IDApIG9iai5oZWxwID0gaGVscDsKLQlub2RlcyA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwo
J2xpbmtbcmVsPSJtYXRjaCJdJyk7Ci0JZm9yICh2YXIgaSA9IDA7IGkgPCBub2Rlcy5sZW5ndGg7
IGkrKykgewotCSAgICBtYXRjaC5wdXNoKG5vZGVzW2ldLmdldEF0dHJpYnV0ZSgiaHJlZiIpKTsK
LQl9Ci0JaWYgKG5vZGVzLmxlbmd0aCA+IDApIG9iai5tYXRjaCA9IG1hdGNoOwotCW5vZGVzID0g
ZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnbGlua1tyZWw9Im1pc21hdGNoIl0nKTsKLQlmb3Ig
KHZhciBpID0gMDsgaSA8IG5vZGVzLmxlbmd0aDsgaSsrKSB7Ci0JICAgIG1pc21hdGNoLnB1c2go
bm9kZXNbaV0uZ2V0QXR0cmlidXRlKCJocmVmIikpOwotCX0KLQlpZiAobm9kZXMubGVuZ3RoID4g
MCkgb2JqLm1hdGNoID0gbWlzbWF0Y2g7Ci0Jbm9kZXMgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9y
QWxsKCdtZXRhW25hbWU9ImZsYWdzIl0nKTsKLQlmb3IgKHZhciBpID0gMDsgaSA8IG5vZGVzLmxl
bmd0aDsgaSsrKSB7Ci0JICAgIGZsYWdzLnB1c2gobm9kZXNbaV0uZ2V0QXR0cmlidXRlKCJjb250
ZW50IikpOwotCX0KLQlpZiAobm9kZXMubGVuZ3RoID4gMCkgb2JqLmZsYWdzID0gZmxhZ3M7Ci0K
LQlyZXR1cm4gb2JqOworICAgICAgICB2YXIgb2JqID0gbmV3IE9iamVjdCgpOworICAgICAgICB2
YXIgYXV0aG9yID0gW107CisgICAgICAgIHZhciBhc3NlcnQgPSBbXTsKKyAgICAgICAgdmFyIGhl
bHAgPSBbXTsKKyAgICAgICAgdmFyIG1hdGNoID0gW107CisgICAgICAgIHZhciBtaXNtYXRjaCA9
IFtdOworICAgICAgICB2YXIgZmxhZ3MgPSBbXTsKKyAgICAgICAgdmFyIG5vZGVzOworCisgICAg
ICAgIG5vZGVzID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnbGlua1tyZWw9ImF1dGhvciJd
Jyk7CisgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbm9kZXMubGVuZ3RoOyBpKyspIHsKKyAg
ICAgICAgICAgIHZhciBocmVmID0gbm9kZXNbaV0uZ2V0QXR0cmlidXRlKCJocmVmIik7CisgICAg
ICAgICAgICB2YXIgdGl0bGUgPSBub2Rlc1tpXS5nZXRBdHRyaWJ1dGUoInRpdGxlIik7CisgICAg
ICAgICAgICB2YXIgcyA9IHRpdGxlOworICAgICAgICAgICAgaWYgKGhyZWYgIT0gbnVsbCkgewor
ICAgICAgICAgICAgICAgIHMgKz0gIiA8IiArIGhyZWYgKyAiPiI7CisgICAgICAgICAgICB9Cisg
ICAgICAgICAgICBhdXRob3IucHVzaChzKTsKKyAgICAgICAgfQorICAgICAgICBpZiAobm9kZXMu
bGVuZ3RoID4gMCkgb2JqLmF1dGhvciA9IGF1dGhvcjsKKyAgICAgICAgbm9kZXMgPSBkb2N1bWVu
dC5xdWVyeVNlbGVjdG9yQWxsKCdtZXRhW25hbWU9ImFzc2VydCJdJyk7CisgICAgICAgIGZvciAo
dmFyIGkgPSAwOyBpIDwgbm9kZXMubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgIGFzc2VydC5w
dXNoKG5vZGVzW2ldLmdldEF0dHJpYnV0ZSgiY29udGVudCIpKTsKKyAgICAgICAgfQorICAgICAg
ICBpZiAobm9kZXMubGVuZ3RoID4gMCkgb2JqLmFzc2VydCA9IGFzc2VydDsKKyAgICAgICAgbm9k
ZXMgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCdsaW5rW3JlbD0iaGVscCJdJyk7CisgICAg
ICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbm9kZXMubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAg
IGhlbHAucHVzaChub2Rlc1tpXS5nZXRBdHRyaWJ1dGUoImhyZWYiKSk7CisgICAgICAgIH0KKyAg
ICAgICAgaWYgKG5vZGVzLmxlbmd0aCA+IDApIG9iai5oZWxwID0gaGVscDsKKyAgICAgICAgbm9k
ZXMgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCdsaW5rW3JlbD0ibWF0Y2giXScpOworICAg
ICAgICBmb3IgKHZhciBpID0gMDsgaSA8IG5vZGVzLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAg
ICBtYXRjaC5wdXNoKG5vZGVzW2ldLmdldEF0dHJpYnV0ZSgiaHJlZiIpKTsKKyAgICAgICAgfQor
ICAgICAgICBpZiAobm9kZXMubGVuZ3RoID4gMCkgb2JqLm1hdGNoID0gbWF0Y2g7CisgICAgICAg
IG5vZGVzID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnbGlua1tyZWw9Im1pc21hdGNoIl0n
KTsKKyAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBub2Rlcy5sZW5ndGg7IGkrKykgeworICAg
ICAgICAgICAgbWlzbWF0Y2gucHVzaChub2Rlc1tpXS5nZXRBdHRyaWJ1dGUoImhyZWYiKSk7Cisg
ICAgICAgIH0KKyAgICAgICAgaWYgKG5vZGVzLmxlbmd0aCA+IDApIG9iai5tYXRjaCA9IG1pc21h
dGNoOworICAgICAgICBub2RlcyA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ21ldGFbbmFt
ZT0iZmxhZ3MiXScpOworICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IG5vZGVzLmxlbmd0aDsg
aSsrKSB7CisgICAgICAgICAgICBmbGFncy5wdXNoKG5vZGVzW2ldLmdldEF0dHJpYnV0ZSgiY29u
dGVudCIpKTsKKyAgICAgICAgfQorICAgICAgICBpZiAobm9kZXMubGVuZ3RoID4gMCkgb2JqLmZs
YWdzID0gZmxhZ3M7CisKKyAgICAgICAgcmV0dXJuIG9iajsKICAgICB9CiAKICAgICB2YXIgbWV0
YSA9IF9fZ2V0X21ldGFkYXRhKCk7CiAgICAgdmFyIG5vZGVzOwogCiAgICAgZnVuY3Rpb24gY29w
eShvYmosIHByb3AsIGFycikgewotCWlmICh0eXBlb2YgYXJyICE9PSAidW5kZWZpbmVkIikgewot
CSAgICB2YXIgYSA9IFtdOwotCSAgICBmb3IgKHZhciBpID0gMDsgaTxhcnIubGVuZ3RoO2krKykg
ewotCQlhW2ldID0gYXJyW2ldOwotCSAgICB9CQotCSAgICBvYmpbcHJvcF0gPSBhOwotCX0KKyAg
ICAgICAgaWYgKHR5cGVvZiBhcnIgIT09ICJ1bmRlZmluZWQiKSB7CisgICAgICAgICAgICB2YXIg
YSA9IFtdOworICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGk8YXJyLmxlbmd0aDtpKyspIHsK
KyAgICAgICAgICAgICAgICBhW2ldID0gYXJyW2ldOworICAgICAgICAgICAgfQorICAgICAgICAg
ICAgb2JqW3Byb3BdID0gYTsKKyAgICAgICAgfQogICAgIH0KIAogCiAgICAgdmFyIHJldCA9IG5l
dyBPYmplY3QoKTsKICAgICByZXQubG9jYXRpb24gPSBkb2N1bWVudC5sb2NhdGlvbi5ocmVmOwot
ICAgIHJldC50eXBlICA9ICJtYW51YWwiOyAgICAKKyAgICByZXQudHlwZSAgPSAibWFudWFsIjsK
ICAgICByZXQudGVzdHMgPSBuZXcgT2JqZWN0KCk7CiAKICAgICB2YXIgbm9kZSA9IGRvY3VtZW50
LnF1ZXJ5U2VsZWN0b3IoJ3NjcmlwdFtzcmMkPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIl0n
KTsKICAgICBpZiAobm9kZSAhPT0gbnVsbCkgewotCXJldC50eXBlID0gInNjcmlwdCI7CisgICAg
ICAgIHJldC50eXBlID0gInNjcmlwdCI7CiAgICAgfQogCiAgICAgaWYgKHJldC50eXBlID09PSAi
c2NyaXB0IikgewotCWlmICh0eXBlb2YgbWV0YWRhdGFfZ2VuZXJhdG9yID09PSAidW5kZWZpbmVk
IgotCSAgICB8fCBPYmplY3Qua2V5cyhtZXRhZGF0YV9nZW5lcmF0b3IuY3VycmVudE1ldGFkYXRh
KS5sZW5ndGggPT09IDApCi0JICAgIHJldHVybiAiV1JBUFBFUjpUUllfQUdBSU4iOwotCWVsc2Ug
ewotCSAgICBmb3IgKHZhciBrZXkgaW4gbWV0YWRhdGFfZ2VuZXJhdG9yLmN1cnJlbnRNZXRhZGF0
YSkgewotCQl2YXIgb2JqID0gbWV0YWRhdGFfZ2VuZXJhdG9yLmN1cnJlbnRNZXRhZGF0YVtrZXld
OwotCQl2YXIgbmV3dGVzdCA9IG5ldyBPYmplY3QoKTsKLQkJcmV0LnRlc3RzW2tleV09IG5ld3Rl
c3Q7Ci0JCWlmICh0eXBlb2Ygb2JqLmhlbHAgPT09ICJ1bmRlZmluZWQiKSB7Ci0JCSAgICBjb3B5
KG5ld3Rlc3QsICJoZWxwIiwgbWV0YS5oZWxwKTsKLQkJfSBlbHNlIGlmICh0eXBlb2Ygb2JqLmhl
bHAgPT09ICJzdHJpbmciKSB7Ci0JCSAgICBuZXd0ZXN0LmhlbHAgPSBbIG9iai5oZWxwIF07CSAg
Ci0JCX0KLQkJaWYgKHR5cGVvZiBvYmouYXV0aG9yID09PSAidW5kZWZpbmVkIikgewotCQkgICAg
Y29weShuZXd0ZXN0LCAiYXV0aG9yIiwgbWV0YS5hdXRob3IpOwotCQl9IGVsc2UgaWYgKHR5cGVv
ZiBvYmouYXV0aG9yID09PSAic3RyaW5nIikgewotCQkgICAgbmV3dGVzdC5hdXRob3IgPSBbIG9i
ai5hdXRob3IgXTsJICAKLQkJfQotCQlpZiAodHlwZW9mIG9iai5hc3NlcnQgPT09ICJ1bmRlZmlu
ZWQiKSB7Ci0JCSAgICBjb3B5KG5ld3Rlc3QsICJhc3NlcnQiLCBtZXRhLmFzc2VydCk7Ci0JCX0g
ZWxzZSBpZiAodHlwZW9mIG9iai5hc3NlcnQgPT09ICJzdHJpbmciKSB7Ci0JCSAgICBuZXd0ZXN0
LmFzc2VydCA9IFsgb2JqLmFzc2VydCBdOwkgIAotCQl9Ci0JCWNvcHkobmV3dGVzdCwgIm1hdGNo
IiwgbWV0YS5tYXRjaCk7Ci0JCWNvcHkobmV3dGVzdCwgIm1pc21hdGNoIiwgbWV0YS5taXNtYXRj
aCk7Ci0JCWNvcHkobmV3dGVzdCwgImZsYWdzIiwgbWV0YS5mbGFncyk7Ci0JICAgIH0KLQkgICAg
cmV0dXJuIHJldDsKLQl9CisgICAgICAgIGlmICh0eXBlb2YgbWV0YWRhdGFfZ2VuZXJhdG9yID09
PSAidW5kZWZpbmVkIgorICAgICAgICAgICAgfHwgT2JqZWN0LmtleXMobWV0YWRhdGFfZ2VuZXJh
dG9yLmN1cnJlbnRNZXRhZGF0YSkubGVuZ3RoID09PSAwKQorICAgICAgICAgICAgcmV0dXJuICJX
UkFQUEVSOlRSWV9BR0FJTiI7CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgZm9yICh2YXIg
a2V5IGluIG1ldGFkYXRhX2dlbmVyYXRvci5jdXJyZW50TWV0YWRhdGEpIHsKKyAgICAgICAgICAg
ICAgICB2YXIgb2JqID0gbWV0YWRhdGFfZ2VuZXJhdG9yLmN1cnJlbnRNZXRhZGF0YVtrZXldOwor
ICAgICAgICAgICAgICAgIHZhciBuZXd0ZXN0ID0gbmV3IE9iamVjdCgpOworICAgICAgICAgICAg
ICAgIHJldC50ZXN0c1trZXldPSBuZXd0ZXN0OworICAgICAgICAgICAgICAgIGlmICh0eXBlb2Yg
b2JqLmhlbHAgPT09ICJ1bmRlZmluZWQiKSB7CisgICAgICAgICAgICAgICAgICAgIGNvcHkobmV3
dGVzdCwgImhlbHAiLCBtZXRhLmhlbHApOworICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAodHlw
ZW9mIG9iai5oZWxwID09PSAic3RyaW5nIikgeworICAgICAgICAgICAgICAgICAgICBuZXd0ZXN0
LmhlbHAgPSBbIG9iai5oZWxwIF07CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAg
IGlmICh0eXBlb2Ygb2JqLmF1dGhvciA9PT0gInVuZGVmaW5lZCIpIHsKKyAgICAgICAgICAgICAg
ICAgICAgY29weShuZXd0ZXN0LCAiYXV0aG9yIiwgbWV0YS5hdXRob3IpOworICAgICAgICAgICAg
ICAgIH0gZWxzZSBpZiAodHlwZW9mIG9iai5hdXRob3IgPT09ICJzdHJpbmciKSB7CisgICAgICAg
ICAgICAgICAgICAgIG5ld3Rlc3QuYXV0aG9yID0gWyBvYmouYXV0aG9yIF07CisgICAgICAgICAg
ICAgICAgfQorICAgICAgICAgICAgICAgIGlmICh0eXBlb2Ygb2JqLmFzc2VydCA9PT0gInVuZGVm
aW5lZCIpIHsKKyAgICAgICAgICAgICAgICAgICAgY29weShuZXd0ZXN0LCAiYXNzZXJ0IiwgbWV0
YS5hc3NlcnQpOworICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAodHlwZW9mIG9iai5hc3NlcnQg
PT09ICJzdHJpbmciKSB7CisgICAgICAgICAgICAgICAgICAgIG5ld3Rlc3QuYXNzZXJ0ID0gWyBv
YmouYXNzZXJ0IF07CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGNvcHkobmV3
dGVzdCwgIm1hdGNoIiwgbWV0YS5tYXRjaCk7CisgICAgICAgICAgICAgICAgY29weShuZXd0ZXN0
LCAibWlzbWF0Y2giLCBtZXRhLm1pc21hdGNoKTsKKyAgICAgICAgICAgICAgICBjb3B5KG5ld3Rl
c3QsICJmbGFncyIsIG1ldGEuZmxhZ3MpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcmV0
dXJuIHJldDsKKyAgICAgICAgfQogICAgIH0gZWxzZSB7Ci0JdmFyIG5ld3Rlc3QgPSBtZXRhOwot
CXJldC50ZXN0c1tkb2N1bWVudC50aXRsZV09IG5ld3Rlc3Q7CQorICAgICAgICB2YXIgbmV3dGVz
dCA9IG1ldGE7CisgICAgICAgIHJldC50ZXN0c1tkb2N1bWVudC50aXRsZV09IG5ld3Rlc3Q7CiAK
LQlpZiAodHlwZW9mIG5ld3Rlc3QubWF0Y2ggIT09ICJ1bmRlZmluZWQiCi0JICAgIHx8IHR5cGVv
ZiBuZXd0ZXN0Lm1pc21hdGNoICE9PSAidW5kZWZpbmVkIikgewotCSAgICByZXQudHlwZSA9ICJy
ZWZ0ZXN0IjsKLQl9CisgICAgICAgIGlmICh0eXBlb2YgbmV3dGVzdC5tYXRjaCAhPT0gInVuZGVm
aW5lZCIKKyAgICAgICAgICAgIHx8IHR5cGVvZiBuZXd0ZXN0Lm1pc21hdGNoICE9PSAidW5kZWZp
bmVkIikgeworICAgICAgICAgICAgcmV0LnR5cGUgPSAicmVmdGVzdCI7CisgICAgICAgIH0KIAot
CXJldHVybiByZXQ7CisgICAgICAgIHJldHVybiByZXQ7CiAgICAgfQogCiB9CkBAIC0xMjIsMTkg
KzEyMiwxOSBAQCBmdW5jdGlvbiBfX3Jlc3VsdF9oYW5kbGVyKCkgewogZnVuY3Rpb24gX19naXZl
X3VwKCkgewogICAgIHZhciByZXQgPSBuZXcgT2JqZWN0KCk7CiAgICAgcmV0LmxvY2F0aW9uID0g
ZG9jdW1lbnQubG9jYXRpb24uaHJlZjsKLSAgICByZXQudHlwZSAgPSAibWFudWFsIjsgICAgCisg
ICAgcmV0LnR5cGUgID0gIm1hbnVhbCI7CiAgICAgcmV0LnRlc3RzID0gbmV3IE9iamVjdCgpOwog
CiAgICAgdmFyIG5vZGUgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCdzY3JpcHRbc3JjJD0iL3Jl
c291cmNlcy90ZXN0aGFybmVzcy5qcyJdJyk7CiAgICAgaWYgKG5vZGUgIT09IG51bGwpIHsKLQly
ZXQudHlwZSA9ICJzY3JpcHQiOworICAgICAgICByZXQudHlwZSA9ICJzY3JpcHQiOwogICAgIH0g
ZWxzZSBpZiAodHlwZW9mIG5ld3Rlc3QubWF0Y2ggIT09ICJ1bmRlZmluZWQiCi0JICAgICAgIHx8
IHR5cGVvZiBuZXd0ZXN0Lm1pc21hdGNoICE9PSAidW5kZWZpbmVkIikgewotCXJldC50eXBlID0g
InJlZnRlc3QiOworICAgICAgICAgICAgICAgfHwgdHlwZW9mIG5ld3Rlc3QubWlzbWF0Y2ggIT09
ICJ1bmRlZmluZWQiKSB7CisgICAgICAgIHJldC50eXBlID0gInJlZnRlc3QiOwogICAgIH0KIAog
ICAgIHZhciBuZXd0ZXN0ID0gX19nZXRfbWV0YWRhdGEoKTsKLSAgICByZXQudGVzdHNbZG9jdW1l
bnQudGl0bGVdPSBuZXd0ZXN0OwkKLSAgICAKKyAgICByZXQudGVzdHNbZG9jdW1lbnQudGl0bGVd
PSBuZXd0ZXN0OworCiAgICAgcmV0dXJuIHJldDsKIH0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvc2NyaXB0cy90b2MuanMgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3NjcmlwdHMv
dG9jLmpzCmluZGV4IDEyMGQ0YmUwMzlmZDFhZjkwM2YxMjhmMWMzMDhjMDkxMmUyMGNkM2MuLjI5
N2I3MTgxNDNmOTMxMzIwMDc3NzY4NmUyMzYzYzkzNmU2NDlkNzAgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvc2NyaXB0cy90b2Mu
anMKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy9zY3JpcHRzL3RvYy5qcwpAQCAtMSwxMDYgKzEsMTA2IEBACiAvLyBncmFiIHRoZSB0YWJsZSBv
ZiBjb250ZW50cyBmaWxsZWQgd2l0aCBhbGwgdGhlIGFuY2hvcnMKIGZ1bmN0aW9uIF9fcmVzdWx0
X2hhbmRsZXIoKSB7CiAgICAgZnVuY3Rpb24gZ2V0TWFwKCkgewotCXZhciB0b2NfZWxlbWVudCA9
IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb250ZW50cyIpLm5leHRFbGVtZW50U2libGluZzsK
LQotCWZ1bmN0aW9uIGdldFNlY3Rpb24oKSB7Ci0JICAgIGZ1bmN0aW9uIGdldElkcyhub2RlKSB7
Ci0JCXZhciBhID0gW107Ci0JICAgIAotCQl2YXIgbm9kZXMgPSBub2RlLnF1ZXJ5U2VsZWN0b3JB
bGwoJypbaWRdJyk7Ci0JCWZvciAodmFyIGkgPSAwOyBpIDwgbm9kZXMubGVuZ3RoOyBpKyspIHsK
LQkJICAgIGEucHVzaChub2Rlc1tpXS5nZXRBdHRyaWJ1dGUoImlkIikpOwotCQl9Ci0JCXJldHVy
biBhOwotCSAgICB9Ci0JCi0JICAgIGZ1bmN0aW9uIGdldFRPQ0lkcygpIHsKLQkJdmFyIGEgPSBb
XTsKLQkgICAgCi0JCXZhciBub2RlcyA9IHRvY19lbGVtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ2xp
Jyk7Ci0JCWZvciAodmFyIGkgPSAwOyBpIDwgbm9kZXMubGVuZ3RoOyBpKyspIHsKLQkJICAgIHZh
ciBocmVmID0gbm9kZXNbaV0uZmlyc3RFbGVtZW50Q2hpbGQuZ2V0QXR0cmlidXRlKCJocmVmIik7
Ci0JCSAgICBhLnB1c2goaHJlZi5zdWJzdHJpbmcoMSkpOwotCQl9Ci0JCXJldHVybiBhOwotCSAg
ICB9Ci0KLQkgICAgdmFyIG9iaiA9IG5ldyBPYmplY3QoKTsKLQkgICAgdmFyIGlkcyA9IGdldElk
cyhkb2N1bWVudCk7Ci0JICAgIHZhciB0b2MgPSBnZXRUT0NJZHMoKTsKLSAgICAKLQkgICAgZm9y
ICh2YXIgaSA9IDE7IGkgPCB0b2MubGVuZ3RoOyBpKyspIHsKLQkJdmFyIGtleTEgPSB0b2NbaS0x
XTsKLQkJdmFyIGtleTIgPSB0b2NbaV07Ci0JCXZhciBtYXAgPSBbXTsKLQotCQl2YXIgaW5kZXgx
ID0gaWRzLmluZGV4T2Yoa2V5MSk7Ci0JCXZhciBpbmRleDIgPSBpZHMuaW5kZXhPZihrZXkyKTsK
LQotCQlpZiAoKGluZGV4Mi1pbmRleDEpID4gMSkgewotCQkgICAgZm9yICh2YXIgaiA9IGluZGV4
MSsxOyBqIDwgaW5kZXgyO2orKykgewotCQkJbWFwLnB1c2goaWRzW2pdKTsKLQkJICAgIH0KLQkJ
fQotCi0JCW9ialtrZXkxXSA9IG1hcDsKLQkgICAgfQotCSAgICB7Ci0JCXZhciBrZXkgPSB0b2Nb
dG9jLmxlbmd0aC0xXTsKLQkJdmFyIGluZGV4ID0gaWRzLmluZGV4T2Yoa2V5KTsKLQkJdmFyIG1h
cCA9IFtdOwotCi0JCWZvciAodmFyIGogPSBpbmRleCsxOyBqIDwgaWRzLmxlbmd0aDtqKyspIHsK
LQkJICAgIG1hcC5wdXNoKGlkc1tqXSk7Ci0JCX0KLQkJb2JqW2tleV0gPSBtYXA7Ci0JICAgIH0K
LSAgICAKLQkgICAgcmV0dXJuIG9iajsKLQl9Ci0KLQlmdW5jdGlvbiBzZWN0aW9uKGlkKSB7Ci0J
ICAgIHRoaXMuaWQgPSBpZDsKLQl9Ci0JZnVuY3Rpb24gYWRkU3ViU2VjdGlvbihzZWN0aW9uLCBz
dWIpIHsKLQkgICAgaWYgKHR5cGVvZiBzZWN0aW9uLnNlY3Rpb25zID09PSAidW5kZWZpbmVkIikg
ewotCQlzZWN0aW9uLnNlY3Rpb25zID0gW107Ci0JICAgIH0KLQkgICAgc2VjdGlvbi5zZWN0aW9u
cy5wdXNoKHN1Yik7Ci0JfQotCi0JZnVuY3Rpb24gbGkoZWwsIG1hcCkgewotCSAgICB2YXIgb2Jq
ID0gbmV3IHNlY3Rpb24oZWwuZmlyc3RFbGVtZW50Q2hpbGQuZ2V0QXR0cmlidXRlKCJocmVmIiku
c3Vic3RyaW5nKDEpKTsKLQkgICAgb2JqLnRpdGxlID0gZWwuZmlyc3RFbGVtZW50Q2hpbGQudGV4
dENvbnRlbnQ7Ci0JICAgIHZhciBjaGlsZCA9IGVsLmZpcnN0RWxlbWVudENoaWxkOwotCi0JICAg
IHZhciBtID0gbWFwW29iai5pZF07Ci0JICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbS5sZW5ndGg7
IGkrKykgIHsJICAgIAotCQl2YXIgc3ViID0gbmV3IHNlY3Rpb24obVtpXSk7IAotCQlhZGRTdWJT
ZWN0aW9uKG9iaiwgc3ViKTsKLQkgICAgfQotCSAgICB3aGlsZSAoY2hpbGQgIT09IG51bGwpIHsK
LQkJaWYgKGNoaWxkLm5vZGVOYW1lID09PSAiT0wiKSBvbChjaGlsZCwgb2JqLCBtYXApOwotCQlj
aGlsZCA9IGNoaWxkLm5leHRFbGVtZW50U2libGluZzsKLQkgICAgfQotCSAgICByZXR1cm4gb2Jq
OwotCX0KLQotCWZ1bmN0aW9uIG9sKGVsLCBzZWN0aW9uLCBtYXApIHsKLQkgICAgdmFyIGNoaWxk
ID0gZWwuZmlyc3RFbGVtZW50Q2hpbGQ7Ci0JICAgIHdoaWxlIChjaGlsZCAhPT0gbnVsbCkgewot
CQlhZGRTdWJTZWN0aW9uKHNlY3Rpb24sIGxpKGNoaWxkLCBtYXApKTsKLQkJY2hpbGQgPSBjaGls
ZC5uZXh0RWxlbWVudFNpYmxpbmc7Ci0JICAgIH0KLQl9Ci0KLQl2YXIgbWFwID0gZ2V0U2VjdGlv
bigpOwotCXZhciBtYWluID0gbmV3IHNlY3Rpb24oIl9fX21haW5fX18iKTsKLQltYWluLnRpdGxl
ID0gZG9jdW1lbnQudGl0bGU7Ci0KLQlvbCh0b2NfZWxlbWVudCwgbWFpbiwgbWFwKTsKLQotCXJl
dHVybiBtYWluOworICAgICAgICB2YXIgdG9jX2VsZW1lbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgiY29udGVudHMiKS5uZXh0RWxlbWVudFNpYmxpbmc7CisKKyAgICAgICAgZnVuY3Rpb24g
Z2V0U2VjdGlvbigpIHsKKyAgICAgICAgICAgIGZ1bmN0aW9uIGdldElkcyhub2RlKSB7CisgICAg
ICAgICAgICAgICAgdmFyIGEgPSBbXTsKKworICAgICAgICAgICAgICAgIHZhciBub2RlcyA9IG5v
ZGUucXVlcnlTZWxlY3RvckFsbCgnKltpZF0nKTsKKyAgICAgICAgICAgICAgICBmb3IgKHZhciBp
ID0gMDsgaSA8IG5vZGVzLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICAgICAgICAgIGEucHVz
aChub2Rlc1tpXS5nZXRBdHRyaWJ1dGUoImlkIikpOworICAgICAgICAgICAgICAgIH0KKyAgICAg
ICAgICAgICAgICByZXR1cm4gYTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgZnVuY3Rp
b24gZ2V0VE9DSWRzKCkgeworICAgICAgICAgICAgICAgIHZhciBhID0gW107CisKKyAgICAgICAg
ICAgICAgICB2YXIgbm9kZXMgPSB0b2NfZWxlbWVudC5xdWVyeVNlbGVjdG9yQWxsKCdsaScpOwor
ICAgICAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbm9kZXMubGVuZ3RoOyBpKyspIHsK
KyAgICAgICAgICAgICAgICAgICAgdmFyIGhyZWYgPSBub2Rlc1tpXS5maXJzdEVsZW1lbnRDaGls
ZC5nZXRBdHRyaWJ1dGUoImhyZWYiKTsKKyAgICAgICAgICAgICAgICAgICAgYS5wdXNoKGhyZWYu
c3Vic3RyaW5nKDEpKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgcmV0dXJu
IGE7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHZhciBvYmogPSBuZXcgT2JqZWN0KCk7
CisgICAgICAgICAgICB2YXIgaWRzID0gZ2V0SWRzKGRvY3VtZW50KTsKKyAgICAgICAgICAgIHZh
ciB0b2MgPSBnZXRUT0NJZHMoKTsKKworICAgICAgICAgICAgZm9yICh2YXIgaSA9IDE7IGkgPCB0
b2MubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgICAgICB2YXIga2V5MSA9IHRvY1tpLTFdOwor
ICAgICAgICAgICAgICAgIHZhciBrZXkyID0gdG9jW2ldOworICAgICAgICAgICAgICAgIHZhciBt
YXAgPSBbXTsKKworICAgICAgICAgICAgICAgIHZhciBpbmRleDEgPSBpZHMuaW5kZXhPZihrZXkx
KTsKKyAgICAgICAgICAgICAgICB2YXIgaW5kZXgyID0gaWRzLmluZGV4T2Yoa2V5Mik7CisKKyAg
ICAgICAgICAgICAgICBpZiAoKGluZGV4Mi1pbmRleDEpID4gMSkgeworICAgICAgICAgICAgICAg
ICAgICBmb3IgKHZhciBqID0gaW5kZXgxKzE7IGogPCBpbmRleDI7aisrKSB7CisgICAgICAgICAg
ICAgICAgICAgICAgICBtYXAucHVzaChpZHNbal0pOworICAgICAgICAgICAgICAgICAgICB9Cisg
ICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgb2JqW2tleTFdID0gbWFwOworICAg
ICAgICAgICAgfQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIHZhciBrZXkgPSB0b2Nb
dG9jLmxlbmd0aC0xXTsKKyAgICAgICAgICAgICAgICB2YXIgaW5kZXggPSBpZHMuaW5kZXhPZihr
ZXkpOworICAgICAgICAgICAgICAgIHZhciBtYXAgPSBbXTsKKworICAgICAgICAgICAgICAgIGZv
ciAodmFyIGogPSBpbmRleCsxOyBqIDwgaWRzLmxlbmd0aDtqKyspIHsKKyAgICAgICAgICAgICAg
ICAgICAgbWFwLnB1c2goaWRzW2pdKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAg
ICAgb2JqW2tleV0gPSBtYXA7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHJldHVybiBv
Ymo7CisgICAgICAgIH0KKworICAgICAgICBmdW5jdGlvbiBzZWN0aW9uKGlkKSB7CisgICAgICAg
ICAgICB0aGlzLmlkID0gaWQ7CisgICAgICAgIH0KKyAgICAgICAgZnVuY3Rpb24gYWRkU3ViU2Vj
dGlvbihzZWN0aW9uLCBzdWIpIHsKKyAgICAgICAgICAgIGlmICh0eXBlb2Ygc2VjdGlvbi5zZWN0
aW9ucyA9PT0gInVuZGVmaW5lZCIpIHsKKyAgICAgICAgICAgICAgICBzZWN0aW9uLnNlY3Rpb25z
ID0gW107CisgICAgICAgICAgICB9CisgICAgICAgICAgICBzZWN0aW9uLnNlY3Rpb25zLnB1c2go
c3ViKTsKKyAgICAgICAgfQorCisgICAgICAgIGZ1bmN0aW9uIGxpKGVsLCBtYXApIHsKKyAgICAg
ICAgICAgIHZhciBvYmogPSBuZXcgc2VjdGlvbihlbC5maXJzdEVsZW1lbnRDaGlsZC5nZXRBdHRy
aWJ1dGUoImhyZWYiKS5zdWJzdHJpbmcoMSkpOworICAgICAgICAgICAgb2JqLnRpdGxlID0gZWwu
Zmlyc3RFbGVtZW50Q2hpbGQudGV4dENvbnRlbnQ7CisgICAgICAgICAgICB2YXIgY2hpbGQgPSBl
bC5maXJzdEVsZW1lbnRDaGlsZDsKKworICAgICAgICAgICAgdmFyIG0gPSBtYXBbb2JqLmlkXTsK
KyAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbS5sZW5ndGg7IGkrKykgIHsKKyAgICAg
ICAgICAgICAgICB2YXIgc3ViID0gbmV3IHNlY3Rpb24obVtpXSk7CisgICAgICAgICAgICAgICAg
YWRkU3ViU2VjdGlvbihvYmosIHN1Yik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICB3aGls
ZSAoY2hpbGQgIT09IG51bGwpIHsKKyAgICAgICAgICAgICAgICBpZiAoY2hpbGQubm9kZU5hbWUg
PT09ICJPTCIpIG9sKGNoaWxkLCBvYmosIG1hcCk7CisgICAgICAgICAgICAgICAgY2hpbGQgPSBj
aGlsZC5uZXh0RWxlbWVudFNpYmxpbmc7CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1
cm4gb2JqOworICAgICAgICB9CisKKyAgICAgICAgZnVuY3Rpb24gb2woZWwsIHNlY3Rpb24sIG1h
cCkgeworICAgICAgICAgICAgdmFyIGNoaWxkID0gZWwuZmlyc3RFbGVtZW50Q2hpbGQ7CisgICAg
ICAgICAgICB3aGlsZSAoY2hpbGQgIT09IG51bGwpIHsKKyAgICAgICAgICAgICAgICBhZGRTdWJT
ZWN0aW9uKHNlY3Rpb24sIGxpKGNoaWxkLCBtYXApKTsKKyAgICAgICAgICAgICAgICBjaGlsZCA9
IGNoaWxkLm5leHRFbGVtZW50U2libGluZzsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisg
ICAgICAgIHZhciBtYXAgPSBnZXRTZWN0aW9uKCk7CisgICAgICAgIHZhciBtYWluID0gbmV3IHNl
Y3Rpb24oIl9fX21haW5fX18iKTsKKyAgICAgICAgbWFpbi50aXRsZSA9IGRvY3VtZW50LnRpdGxl
OworCisgICAgICAgIG9sKHRvY19lbGVtZW50LCBtYWluLCBtYXApOworCisgICAgICAgIHJldHVy
biBtYWluOwogICAgIH0KIAogICAgIHJldHVybiBnZXRNYXAoKTsKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvc2NyaXB0cy93M2Mt
aW1wb3J0LmxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvc2NyaXB0cy93M2MtaW1wb3J0LmxvZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggNmViOWIyNjI3M2UyZmM2ZWQ5ZjQ0NjE4ZjRkOWI1MGJlYjMzNDY4MC4uMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3NjcmlwdHMvdzNjLWltcG9ydC5sb2cKKysrIC9k
ZXYvbnVsbApAQCAtMSwyMiArMCwwIEBACi1UaGUgdGVzdHMgaW4gdGhpcyBkaXJlY3Rvcnkgd2Vy
ZSBpbXBvcnRlZCBmcm9tIHRoZSBXM0MgcmVwb3NpdG9yeS4KLURvIE5PVCBtb2RpZnkgdGhlc2Ug
dGVzdHMgZGlyZWN0bHkgaW4gV2ViS2l0LgotSW5zdGVhZCwgY3JlYXRlIGEgcHVsbCByZXF1ZXN0
IG9uIHRoZSBXUFQgZ2l0aHViOgotCWh0dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxhdGZvcm0tdGVz
dHMvd3B0Ci0KLVRoZW4gcnVuIHRoZSBUb29scy9TY3JpcHRzL2ltcG9ydC13M2MtdGVzdHMgaW4g
V2ViS2l0IHRvIHJlaW1wb3J0Ci0KLURvIE5PVCBtb2RpZnkgb3IgcmVtb3ZlIHRoaXMgZmlsZS4K
LQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tCi1Qcm9wZXJ0aWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6
Ci1Ob25lCi1Qcm9wZXJ0eSB2YWx1ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUK
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLQotTGlzdCBvZiBmaWxlczoKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3NjcmlwdHMvaWQycGF0aC5qcwotL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvc2NyaXB0cy9pZDJwYXRo
Lmpzb24KLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3NjcmlwdHMvbWFuaWZlc3QuanMKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3NjcmlwdHMvcGFja2FnZS5qc29uCi0vTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9zY3JpcHRzL3RvYy5qcwotL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvc2NyaXB0cy91cGRhdGUt
ZGlyZWN0b3J5LXN0cnVjdHVyZS5qcwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9zZXJ2ZS9zZXJ2ZS5weSBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvc2VydmUvc2VydmUucHkKaW5k
ZXggMTM5YTU1Y2U1Y2I5MmZhNTA3MTM5ZGViYzBmYjUyNDY0M2ViY2IzNi4uMTg2OGIxYTM2ZTUx
YzE4NzQ5MWQ3M2FhMjcwODQ4NGRhODgyMDQyZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9zZXJ2ZS9zZXJ2ZS5weQorKysgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3NlcnZlL3Nl
cnZlLnB5CkBAIC04LDYgKzgsNyBAQCBpbXBvcnQganNvbgogaW1wb3J0IGxvZ2dpbmcKIGltcG9y
dCBvcwogaW1wb3J0IHBsYXRmb3JtCitpbXBvcnQgc2lnbmFsCiBpbXBvcnQgc29ja2V0CiBpbXBv
cnQgc3lzCiBpbXBvcnQgdGhyZWFkaW5nCkBAIC0xNiw2ICsxNyw3IEBAIGltcG9ydCB0cmFjZWJh
Y2sKIGZyb20gc2l4Lm1vdmVzIGltcG9ydCB1cmxsaWIKIGltcG9ydCB1dWlkCiBmcm9tIGNvbGxl
Y3Rpb25zIGltcG9ydCBkZWZhdWx0ZGljdCwgT3JkZXJlZERpY3QKK2Zyb20gaXRlcnRvb2xzIGlt
cG9ydCBjaGFpbiwgcHJvZHVjdAogZnJvbSBtdWx0aXByb2Nlc3NpbmcgaW1wb3J0IFByb2Nlc3Ms
IEV2ZW50CiAKIGZyb20gbG9jYWxwYXRocyBpbXBvcnQgcmVwb19yb290CkBAIC0zMSw2ICszMywx
MiBAQCBmcm9tIHdwdHNlcnZlLnV0aWxzIGltcG9ydCBnZXRfcG9ydCwgSFRUUEV4Y2VwdGlvbiwg
aHR0cDJfY29tcGF0aWJsZQogZnJvbSBtb2RfcHl3ZWJzb2NrZXQgaW1wb3J0IHN0YW5kYWxvbmUg
YXMgcHl3ZWJzb2NrZXQKIAogCitFRElUX0hPU1RTX0hFTFAgPSAoIlBsZWFzZSBlbnN1cmUgYWxs
IHRoZSBuZWNlc3NhcnkgV1BUIHN1YmRvbWFpbnMgIgorICAgICAgICAgICAgICAgICAgICJhcmUg
bWFwcGVkIHRvIGEgbG9vcGJhY2sgZGV2aWNlIGluIC9ldGMvaG9zdHMuICIKKyAgICAgICAgICAg
ICAgICAgICAiU2VlIGh0dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxhdGZvcm0tdGVzdHMvd3B0I3J1
bm5pbmctdGhlLXRlc3RzICIKKyAgICAgICAgICAgICAgICAgICAiZm9yIGluc3RydWN0aW9ucy4i
KQorCisKIGRlZiByZXBsYWNlX2VuZChzLCBvbGQsIG5ldyk6CiAgICAgIiIiCiAgICAgR2l2ZW4g
YSBzdHJpbmcgYHNgIHRoYXQgZW5kcyB3aXRoIGBvbGRgLCByZXBsYWNlIHRoYXQgb2NjdXJyZW5j
ZSBvZiBgb2xkYApAQCAtNDAsNiArNDgsMTUgQEAgZGVmIHJlcGxhY2VfZW5kKHMsIG9sZCwgbmV3
KToKICAgICByZXR1cm4gc1s6LWxlbihvbGQpXSArIG5ldwogCiAKK2RlZiBkb21haW5zX2FyZV9k
aXN0aW5jdChhLCBiKToKKyAgICBhX3BhcnRzID0gYS5zcGxpdCgiLiIpCisgICAgYl9wYXJ0cyA9
IGIuc3BsaXQoIi4iKQorICAgIG1pbl9sZW5ndGggPSBtaW4obGVuKGFfcGFydHMpLCBsZW4oYl9w
YXJ0cykpCisgICAgc2xpY2VfaW5kZXggPSAtMSAqIG1pbl9sZW5ndGgKKworICAgIHJldHVybiBh
X3BhcnRzW3NsaWNlX2luZGV4Ol0gIT0gYl9wYXJ0c1tzbGljZV9pbmRleDpdCisKKwogY2xhc3Mg
V3JhcHBlckhhbmRsZXIob2JqZWN0KToKIAogICAgIF9fbWV0YV9fID0gYWJjLkFCQ01ldGEKQEAg
LTEwMCw5ICsxMTcsMTIgQEAgY2xhc3MgV3JhcHBlckhhbmRsZXIob2JqZWN0KToKICAgICAgICAg
OnBhcmFtIHJlcXVlc3Q6IFRoZSBSZXF1ZXN0IGJlaW5nIHByb2Nlc3NlZC4KICAgICAgICAgIiIi
CiAgICAgICAgIHBhdGggPSBzZWxmLl9nZXRfcGF0aChmaWxlc3lzdGVtX3BhdGgoc2VsZi5iYXNl
X3BhdGgsIHJlcXVlc3QsIHNlbGYudXJsX2Jhc2UpLCBGYWxzZSkKLSAgICAgICAgd2l0aCBvcGVu
KHBhdGgsICJyYiIpIGFzIGY6Ci0gICAgICAgICAgICBmb3Iga2V5LCB2YWx1ZSBpbiByZWFkX3Nj
cmlwdF9tZXRhZGF0YShmLCBqc19tZXRhX3JlKToKLSAgICAgICAgICAgICAgICB5aWVsZCBrZXks
IHZhbHVlCisgICAgICAgIHRyeToKKyAgICAgICAgICAgIHdpdGggb3BlbihwYXRoLCAicmIiKSBh
cyBmOgorICAgICAgICAgICAgICAgIGZvciBrZXksIHZhbHVlIGluIHJlYWRfc2NyaXB0X21ldGFk
YXRhKGYsIGpzX21ldGFfcmUpOgorICAgICAgICAgICAgICAgICAgICB5aWVsZCBrZXksIHZhbHVl
CisgICAgICAgIGV4Y2VwdCBJT0Vycm9yOgorICAgICAgICAgICAgcmFpc2UgSFRUUEV4Y2VwdGlv
big0MDQpCiAKICAgICBkZWYgX2dldF9tZXRhKHNlbGYsIHJlcXVlc3QpOgogICAgICAgICAiIiJH
ZXQgYW4gaXRlcmF0b3Igb3ZlciBzdHJpbmdzIHRvIGluamVjdCBpbnRvIHRoZSB3cmFwcGVyIGRv
Y3VtZW50CkBAIC0yOTgsNiArMzE4LDcgQEAgZG9uZSgpOwogCiByZXdyaXRlcyA9IFsoIkdFVCIs
ICIvcmVzb3VyY2VzL1dlYklETFBhcnNlci5qcyIsICIvcmVzb3VyY2VzL3dlYmlkbDIvbGliL3dl
YmlkbDIuanMiKV0KIAorCiBjbGFzcyBSb3V0ZXNCdWlsZGVyKG9iamVjdCk6CiAgICAgZGVmIF9f
aW5pdF9fKHNlbGYpOgogICAgICAgICBzZWxmLmZvcmJpZGRlbl9vdmVycmlkZSA9IFsoIkdFVCIs
ICIvdG9vbHMvcnVubmVyLyoiLCBoYW5kbGVycy5maWxlX2hhbmRsZXIpLApAQCAtMzA2LDggKzMy
Nyw3IEBAIGNsYXNzIFJvdXRlc0J1aWxkZXIob2JqZWN0KToKIAogICAgICAgICBzZWxmLmZvcmJp
ZGRlbiA9IFsoIioiLCAiL19jZXJ0cy8qIiwgaGFuZGxlcnMuRXJyb3JIYW5kbGVyKDQwNCkpLAog
ICAgICAgICAgICAgICAgICAgICAgICAgICAoIioiLCAiL3Rvb2xzLyoiLCBoYW5kbGVycy5FcnJv
ckhhbmRsZXIoNDA0KSksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICgiKiIsICJ7c3BlY30v
dG9vbHMvKiIsIGhhbmRsZXJzLkVycm9ySGFuZGxlcig0MDQpKSwKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgKCIqIiwgIi9zZXJ2ZS5weSIsIGhhbmRsZXJzLkVycm9ySGFuZGxlcig0MDQpKV0K
KyAgICAgICAgICAgICAgICAgICAgICAgICAgKCIqIiwgIntzcGVjfS90b29scy8qIiwgaGFuZGxl
cnMuRXJyb3JIYW5kbGVyKDQwNCkpXQogCiAgICAgICAgIHNlbGYuZXh0cmEgPSBbXQogCkBAIC0z
NzgsMTUgKzM5OCwxNyBAQCBkZWYgYnVpbGRfcm91dGVzKGFsaWFzZXMpOgogCiAKIGNsYXNzIFNl
cnZlclByb2Mob2JqZWN0KToKLSAgICBkZWYgX19pbml0X18oc2VsZik6CisgICAgZGVmIF9faW5p
dF9fKHNlbGYsIHNjaGVtZT1Ob25lKToKICAgICAgICAgc2VsZi5wcm9jID0gTm9uZQogICAgICAg
ICBzZWxmLmRhZW1vbiA9IE5vbmUKICAgICAgICAgc2VsZi5zdG9wID0gRXZlbnQoKQorICAgICAg
ICBzZWxmLnNjaGVtZSA9IHNjaGVtZQogCiAgICAgZGVmIHN0YXJ0KHNlbGYsIGluaXRfZnVuYywg
aG9zdCwgcG9ydCwgcGF0aHMsIHJvdXRlcywgYmluZF9hZGRyZXNzLCBjb25maWcsICoqa3dhcmdz
KToKICAgICAgICAgc2VsZi5wcm9jID0gUHJvY2Vzcyh0YXJnZXQ9c2VsZi5jcmVhdGVfZGFlbW9u
LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyZ3M9KGluaXRfZnVuYywgaG9zdCwgcG9y
dCwgcGF0aHMsIHJvdXRlcywgYmluZF9hZGRyZXNzLAogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGNvbmZpZyksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT0nJXMg
b24gcG9ydCAlcycgJSAoc2VsZi5zY2hlbWUsIHBvcnQpLAogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGt3YXJncz1rd2FyZ3MpCiAgICAgICAgIHNlbGYucHJvYy5kYWVtb24gPSBUcnVlCiAg
ICAgICAgIHNlbGYucHJvYy5zdGFydCgpCkBAIC00MzksMTggKzQ2MSwxOSBAQCBkZWYgY2hlY2tf
c3ViZG9tYWlucyhjb25maWcpOgogICAgIHdyYXBwZXIuc3RhcnQoc3RhcnRfaHR0cF9zZXJ2ZXIs
IGhvc3QsIHBvcnQsIHBhdGhzLCBidWlsZF9yb3V0ZXMoYWxpYXNlcyksCiAgICAgICAgICAgICAg
ICAgICBiaW5kX2FkZHJlc3MsIGNvbmZpZykKIAorICAgIHVybCA9ICJodHRwOi8ve306e30vIi5m
b3JtYXQoaG9zdCwgcG9ydCkKICAgICBjb25uZWN0ZWQgPSBGYWxzZQogICAgIGZvciBpIGluIHJh
bmdlKDEwKToKICAgICAgICAgdHJ5OgotICAgICAgICAgICAgdXJsbGliLnJlcXVlc3QudXJsb3Bl
bigiaHR0cDovLyVzOiVkLyIgJSAoaG9zdCwgcG9ydCkpCisgICAgICAgICAgICB1cmxsaWIucmVx
dWVzdC51cmxvcGVuKHVybCkKICAgICAgICAgICAgIGNvbm5lY3RlZCA9IFRydWUKICAgICAgICAg
ICAgIGJyZWFrCiAgICAgICAgIGV4Y2VwdCB1cmxsaWIuZXJyb3IuVVJMRXJyb3I6CiAgICAgICAg
ICAgICB0aW1lLnNsZWVwKDEpCiAKICAgICBpZiBub3QgY29ubmVjdGVkOgotICAgICAgICBsb2dn
ZXIuY3JpdGljYWwoIkZhaWxlZCB0byBjb25uZWN0IHRvIHRlc3Qgc2VydmVyIG9uIGh0dHA6Ly8l
czolcy4gIgotICAgICAgICAgICAgICAgICAgICAgICAgIllvdSBtYXkgbmVlZCB0byBlZGl0IC9l
dGMvaG9zdHMgb3Igc2ltaWxhciwgc2VlIFJFQURNRS5tZC4iICUgKGhvc3QsIHBvcnQpKQorICAg
ICAgICBsb2dnZXIuY3JpdGljYWwoIkZhaWxlZCB0byBjb25uZWN0IHRvIHRlc3Qgc2VydmVyICIK
KyAgICAgICAgICAgICAgICAgICAgICAgICJvbiB7fS4ge30iLmZvcm1hdCh1cmwsIEVESVRfSE9T
VFNfSEVMUCkpCiAgICAgICAgIHN5cy5leGl0KDEpCiAKICAgICBmb3IgZG9tYWluIGluIGNvbmZp
Zy5kb21haW5zX3NldDoKQEAgLTQ2MCw4ICs0ODMsNyBAQCBkZWYgY2hlY2tfc3ViZG9tYWlucyhj
b25maWcpOgogICAgICAgICB0cnk6CiAgICAgICAgICAgICB1cmxsaWIucmVxdWVzdC51cmxvcGVu
KCJodHRwOi8vJXM6JWQvIiAlIChkb21haW4sIHBvcnQpKQogICAgICAgICBleGNlcHQgRXhjZXB0
aW9uOgotICAgICAgICAgICAgbG9nZ2VyLmNyaXRpY2FsKCJGYWlsZWQgcHJvYmluZyBkb21haW4g
JXMuICIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAiWW91IG1heSBuZWVkIHRvIGVkaXQg
L2V0Yy9ob3N0cyBvciBzaW1pbGFyLCBzZWUgUkVBRE1FLm1kLiIgJSBkb21haW4pCisgICAgICAg
ICAgICBsb2dnZXIuY3JpdGljYWwoIkZhaWxlZCBwcm9iaW5nIGRvbWFpbiB7fS4ge30iLmZvcm1h
dChkb21haW4sIEVESVRfSE9TVFNfSEVMUCkpCiAgICAgICAgICAgICBzeXMuZXhpdCgxKQogCiAg
ICAgd3JhcHBlci53YWl0KCkKQEAgLTQ5MCwyMyArNTEyLDI0IEBAIGRlZiBtYWtlX2hvc3RzX2Zp
bGUoY29uZmlnLCBob3N0KToKIGRlZiBzdGFydF9zZXJ2ZXJzKGhvc3QsIHBvcnRzLCBwYXRocywg
cm91dGVzLCBiaW5kX2FkZHJlc3MsIGNvbmZpZywgKiprd2FyZ3MpOgogICAgIHNlcnZlcnMgPSBk
ZWZhdWx0ZGljdChsaXN0KQogICAgIGZvciBzY2hlbWUsIHBvcnRzIGluIHBvcnRzLml0ZW1zKCk6
Ci0gICAgICAgIGFzc2VydCBsZW4ocG9ydHMpID09IHsiaHR0cCI6Mn0uZ2V0KHNjaGVtZSwgMSkK
KyAgICAgICAgYXNzZXJ0IGxlbihwb3J0cykgPT0geyJodHRwIjogMn0uZ2V0KHNjaGVtZSwgMSkK
IAotICAgICAgICAjIFRPRE8gTm90IHZlcnkgaWRlYWwsIGxvb2sgaW50byByZW1vdmluZyBpdCBp
biB0aGUgZnV0dXJlCi0gICAgICAgICMgQ2hlY2sgdGhhdCBweXRob24gMi43LjE1IGlzIGJlaW5n
IHVzZWQgZm9yIEhUVFAvMi4wCisgICAgICAgICMgSWYgdHJ5aW5nIHRvIHN0YXJ0IEhUVFAvMi4w
IHNlcnZlciwgY2hlY2sgY29tcGF0aWJpbGl0eQogICAgICAgICBpZiBzY2hlbWUgPT0gJ2h0dHAy
JyBhbmQgbm90IGh0dHAyX2NvbXBhdGlibGUoKToKKyAgICAgICAgICAgIGxvZ2dlci5lcnJvcign
Q2Fubm90IHN0YXJ0IEhUVFAvMi4wIHNlcnZlciBhcyB0aGUgZW52aXJvbm1lbnQgaXMgbm90IGNv
bXBhdGlibGUuICcgKworICAgICAgICAgICAgICAgICAgICAgICAgICdSZXF1aXJlcyBQeXRob24g
Mi43LjEwKyAoPCAzLjApIGFuZCBPcGVuU1NMIDEuMC4yKycpCiAgICAgICAgICAgICBjb250aW51
ZQogCiAgICAgICAgIGZvciBwb3J0IGluIHBvcnRzOgogICAgICAgICAgICAgaWYgcG9ydCBpcyBO
b25lOgogICAgICAgICAgICAgICAgIGNvbnRpbnVlCi0gICAgICAgICAgICBpbml0X2Z1bmMgPSB7
Imh0dHAiOnN0YXJ0X2h0dHBfc2VydmVyLAotICAgICAgICAgICAgICAgICAgICAgICAgICJodHRw
cyI6c3RhcnRfaHR0cHNfc2VydmVyLAotICAgICAgICAgICAgICAgICAgICAgICAgICJodHRwMiI6
c3RhcnRfaHR0cDJfc2VydmVyLAotICAgICAgICAgICAgICAgICAgICAgICAgICJ3cyI6c3RhcnRf
d3Nfc2VydmVyLAotICAgICAgICAgICAgICAgICAgICAgICAgICJ3c3MiOnN0YXJ0X3dzc19zZXJ2
ZXJ9W3NjaGVtZV0KKyAgICAgICAgICAgIGluaXRfZnVuYyA9IHsiaHR0cCI6IHN0YXJ0X2h0dHBf
c2VydmVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICJodHRwcyI6IHN0YXJ0X2h0dHBzX3Nl
cnZlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAiaHR0cDIiOiBzdGFydF9odHRwMl9zZXJ2
ZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgIndzIjogc3RhcnRfd3Nfc2VydmVyLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICJ3c3MiOiBzdGFydF93c3Nfc2VydmVyfVtzY2hlbWVdCiAK
LSAgICAgICAgICAgIHNlcnZlcl9wcm9jID0gU2VydmVyUHJvYygpCisgICAgICAgICAgICBzZXJ2
ZXJfcHJvYyA9IFNlcnZlclByb2Moc2NoZW1lPXNjaGVtZSkKICAgICAgICAgICAgIHNlcnZlcl9w
cm9jLnN0YXJ0KGluaXRfZnVuYywgaG9zdCwgcG9ydCwgcGF0aHMsIHJvdXRlcywgYmluZF9hZGRy
ZXNzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uZmlnLCAqKmt3YXJncykKICAg
ICAgICAgICAgIHNlcnZlcnNbc2NoZW1lXS5hcHBlbmQoKHBvcnQsIHNlcnZlcl9wcm9jKSkKQEAg
LTU1OCwxNCArNTgxLDE0IEBAIGRlZiBzdGFydF9odHRwMl9zZXJ2ZXIoaG9zdCwgcG9ydCwgcGF0
aHMsIHJvdXRlcywgYmluZF9hZGRyZXNzLCBjb25maWcsICoqa3dhcmdzCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBlbmNyeXB0X2FmdGVyX2Nvbm5lY3Q9Y29uZmlnLnNzbF9jb25m
aWdbImVuY3J5cHRfYWZ0ZXJfY29ubmVjdCJdLAogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgbGF0ZW5jeT1rd2FyZ3MuZ2V0KCJsYXRlbmN5IiksCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBodHRwMj1UcnVlKQorCisKIGNsYXNzIFdlYlNvY2tldERhZW1vbihvYmpl
Y3QpOgotICAgIGRlZiBfX2luaXRfXyhzZWxmLCBob3N0LCBwb3J0LCBkb2Nfcm9vdCwgaGFuZGxl
cnNfcm9vdCwgbG9nX2xldmVsLCBiaW5kX2FkZHJlc3MsCi0gICAgICAgICAgICAgICAgIHNzbF9j
b25maWcpOgorICAgIGRlZiBfX2luaXRfXyhzZWxmLCBob3N0LCBwb3J0LCBkb2Nfcm9vdCwgaGFu
ZGxlcnNfcm9vdCwgYmluZF9hZGRyZXNzLCBzc2xfY29uZmlnKToKICAgICAgICAgc2VsZi5ob3N0
ID0gaG9zdAogICAgICAgICBjbWRfYXJncyA9IFsiLXAiLCBwb3J0LAogICAgICAgICAgICAgICAg
ICAgICAiLWQiLCBkb2Nfcm9vdCwKLSAgICAgICAgICAgICAgICAgICAgIi13IiwgaGFuZGxlcnNf
cm9vdCwKLSAgICAgICAgICAgICAgICAgICAgIi0tbG9nLWxldmVsIiwgbG9nX2xldmVsXQorICAg
ICAgICAgICAgICAgICAgICAiLXciLCBoYW5kbGVyc19yb290XQogCiAgICAgICAgIGlmIHNzbF9j
b25maWcgaXMgbm90IE5vbmU6CiAgICAgICAgICAgICAjIFRoaXMgaXMgdXN1YWxseSBkb25lIHRo
cm91Z2ggcHl3ZWJzb2NrZXQubWFpbiwgaG93ZXZlciB3ZSdyZQpAQCAtNjIzLDI4ICs2NDYsMzkg
QEAgY2xhc3MgV2ViU29ja2V0RGFlbW9uKG9iamVjdCk6CiAgICAgICAgIHNlbGYuc2VydmVyID0g
Tm9uZQogCiAKK2RlZiByZWxlYXNlX21vemxvZ19sb2NrKCk6CisgICAgdHJ5OgorICAgICAgICBm
cm9tIG1vemxvZy5zdHJ1Y3R1cmVkbG9nIGltcG9ydCBTdHJ1Y3R1cmVkTG9nZ2VyCisgICAgICAg
IHRyeToKKyAgICAgICAgICAgIFN0cnVjdHVyZWRMb2dnZXIuX2xvY2sucmVsZWFzZSgpCisgICAg
ICAgIGV4Y2VwdCB0aHJlYWRpbmcuVGhyZWFkRXJyb3I6CisgICAgICAgICAgICBwYXNzCisgICAg
ZXhjZXB0IEltcG9ydEVycm9yOgorICAgICAgICBwYXNzCisKKwogZGVmIHN0YXJ0X3dzX3NlcnZl
cihob3N0LCBwb3J0LCBwYXRocywgcm91dGVzLCBiaW5kX2FkZHJlc3MsIGNvbmZpZywgKiprd2Fy
Z3MpOgotICAgICMgRW5zdXJlIHRoYXQgd2hlbiB3ZSBzdGFydCB0aGlzIGluIGEgbmV3IHByb2Nl
c3Mgd2UgZG9uJ3QgaW5oZXJpdCB0aGUKLSAgICAjIGdsb2JhbCBsb2NrIGluIHRoZSBsb2dnaW5n
IG1vZHVsZQorICAgICMgRW5zdXJlIHRoYXQgd2hlbiB3ZSBzdGFydCB0aGlzIGluIGEgbmV3IHBy
b2Nlc3Mgd2UgaGF2ZSB0aGUgZ2xvYmFsIGxvY2sKKyAgICAjIGluIHRoZSBsb2dnaW5nIG1vZHVs
ZSB1bmxvY2tlZAogICAgIHJlbG9hZF9tb2R1bGUobG9nZ2luZykKKyAgICByZWxlYXNlX21vemxv
Z19sb2NrKCkKICAgICByZXR1cm4gV2ViU29ja2V0RGFlbW9uKGhvc3QsCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBzdHIocG9ydCksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXBv
X3Jvb3QsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25maWcucGF0aHNbIndzX2RvY19y
b290Il0sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAiZGVidWciLAogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgYmluZF9hZGRyZXNzLAotICAgICAgICAgICAgICAgICAgICAgICAgICAg
c3NsX2NvbmZpZyA9IE5vbmUpCisgICAgICAgICAgICAgICAgICAgICAgICAgICBzc2xfY29uZmln
PU5vbmUpCiAKIAogZGVmIHN0YXJ0X3dzc19zZXJ2ZXIoaG9zdCwgcG9ydCwgcGF0aHMsIHJvdXRl
cywgYmluZF9hZGRyZXNzLCBjb25maWcsICoqa3dhcmdzKToKLSAgICAjIEVuc3VyZSB0aGF0IHdo
ZW4gd2Ugc3RhcnQgdGhpcyBpbiBhIG5ldyBwcm9jZXNzIHdlIGRvbid0IGluaGVyaXQgdGhlCi0g
ICAgIyBnbG9iYWwgbG9jayBpbiB0aGUgbG9nZ2luZyBtb2R1bGUKKyAgICAjIEVuc3VyZSB0aGF0
IHdoZW4gd2Ugc3RhcnQgdGhpcyBpbiBhIG5ldyBwcm9jZXNzIHdlIGhhdmUgdGhlIGdsb2JhbCBs
b2NrCisgICAgIyBpbiB0aGUgbG9nZ2luZyBtb2R1bGUgdW5sb2NrZWQKICAgICByZWxvYWRfbW9k
dWxlKGxvZ2dpbmcpCisgICAgcmVsZWFzZV9tb3psb2dfbG9jaygpCiAgICAgcmV0dXJuIFdlYlNv
Y2tldERhZW1vbihob3N0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RyKHBvcnQpLAog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVwb19yb290LAogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgY29uZmlnLnBhdGhzWyJ3c19kb2Nfcm9vdCJdLAotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgImRlYnVnIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJpbmRfYWRkcmVz
cywKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbmZpZy5zc2xfY29uZmlnKQogCkBAIC03
MDEsNiArNzM1LDExIEBAIGRlZiBidWlsZF9jb25maWcob3ZlcnJpZGVfcGF0aD1Ob25lLCAqKmt3
YXJncyk6CiAKICAgICByZXR1cm4gcnYKIAorCitkZWYgX21ha2Vfc3ViZG9tYWluc19wcm9kdWN0
KHMsIGRlcHRoPTIpOgorICAgIHJldHVybiB7dSIuIi5qb2luKHgpIGZvciB4IGluIGNoYWluKCoo
cHJvZHVjdChzLCByZXBlYXQ9aSkgZm9yIGkgaW4gcmFuZ2UoMSwgZGVwdGgrMSkpKX0KKworCiBf
c3ViZG9tYWlucyA9IHt1Ind3dyIsCiAgICAgICAgICAgICAgICB1Ind3dzEiLAogICAgICAgICAg
ICAgICAgdSJ3d3cyIiwKQEAgLTcwOSwxMSArNzQ4LDE2IEBAIF9zdWJkb21haW5zID0ge3Uid3d3
IiwKIAogX25vdF9zdWJkb21haW5zID0ge3Uibm9uZXhpc3RlbnQifQogCitfc3ViZG9tYWlucyA9
IF9tYWtlX3N1YmRvbWFpbnNfcHJvZHVjdChfc3ViZG9tYWlucykKKworX25vdF9zdWJkb21haW5z
ID0gX21ha2Vfc3ViZG9tYWluc19wcm9kdWN0KF9ub3Rfc3ViZG9tYWlucykKKwogCiBjbGFzcyBD
b25maWdCdWlsZGVyKGNvbmZpZy5Db25maWdCdWlsZGVyKToKICAgICAiIiJzZXJ2ZSBjb25maWcK
IAotICAgIHRoaXMgc3ViY2xhc3NlcyB3cHRzZXJ2ZS5jb25maWcuQ29uZmlnQnVpbGRlciB0byBh
ZGQgc2VydmUgY29uZmlnIG9wdGlvbnMiIiIKKyAgICBUaGlzIHN1YmNsYXNzZXMgd3B0c2VydmUu
Y29uZmlnLkNvbmZpZ0J1aWxkZXIgdG8gYWRkIHNlcnZlIGNvbmZpZyBvcHRpb25zLgorICAgICIi
IgogCiAgICAgX2RlZmF1bHQgPSB7CiAgICAgICAgICJicm93c2VyX2hvc3QiOiAid2ViLXBsYXRm
b3JtLnRlc3QiLApAQCAtNzM4LDcgKzc4Miw5IEBAIGNsYXNzIENvbmZpZ0J1aWxkZXIoY29uZmln
LkNvbmZpZ0J1aWxkZXIpOgogICAgICAgICAgICAgIm9wZW5zc2wiOiB7CiAgICAgICAgICAgICAg
ICAgIm9wZW5zc2xfYmluYXJ5IjogIm9wZW5zc2wiLAogICAgICAgICAgICAgICAgICJiYXNlX3Bh
dGgiOiAiX2NlcnRzIiwKKyAgICAgICAgICAgICAgICAicGFzc3dvcmQiOiAid2ViLXBsYXRmb3Jt
LXRlc3RzIiwKICAgICAgICAgICAgICAgICAiZm9yY2VfcmVnZW5lcmF0ZSI6IEZhbHNlLAorICAg
ICAgICAgICAgICAgICJkdXJhdGlvbiI6IDMwLAogICAgICAgICAgICAgICAgICJiYXNlX2NvbmZf
cGF0aCI6IE5vbmUKICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAicHJlZ2VuZXJhdGVkIjog
ewpAQCAtNzYxLDYgKzgwNywxNCBAQCBjbGFzcyBDb25maWdCdWlsZGVyKGNvbmZpZy5Db25maWdC
dWlsZGVyKToKICAgICAgICAgICAgICphcmdzLAogICAgICAgICAgICAgKiprd2FyZ3MKICAgICAg
ICAgKQorICAgICAgICB3aXRoIHNlbGYgYXMgYzoKKyAgICAgICAgICAgIGJyb3dzZXJfaG9zdCA9
IGMuZ2V0KCJicm93c2VyX2hvc3QiKQorICAgICAgICAgICAgYWx0ZXJuYXRlX2hvc3QgPSBjLmdl
dCgiYWx0ZXJuYXRlX2hvc3RzIiwge30pLmdldCgiYWx0IikKKworICAgICAgICAgICAgaWYgbm90
IGRvbWFpbnNfYXJlX2Rpc3RpbmN0KGJyb3dzZXJfaG9zdCwgYWx0ZXJuYXRlX2hvc3QpOgorICAg
ICAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoCisgICAgICAgICAgICAgICAgICAgICJBbHRl
cm5hdGUgaG9zdCBtdXN0IGJlIGRpc3RpbmN0IGZyb20gYnJvd3NlciBob3N0IgorICAgICAgICAg
ICAgICAgICkKIAogICAgIGRlZiBfZ2V0X3dzX2RvY19yb290KHNlbGYsIGRhdGEpOgogICAgICAg
ICBpZiBkYXRhWyJ3c19kb2Nfcm9vdCJdIGlzIG5vdCBOb25lOgpAQCAtNzk4LDExICs4NTIsMTkg
QEAgZGVmIGdldF9wYXJzZXIoKToKIAogCiBkZWYgcnVuKCoqa3dhcmdzKToKKyAgICByZWNlaXZl
ZF9zaWduYWwgPSB0aHJlYWRpbmcuRXZlbnQoKQorCiAgICAgd2l0aCBidWlsZF9jb25maWcob3Mu
cGF0aC5qb2luKHJlcG9fcm9vdCwgImNvbmZpZy5qc29uIiksCiAgICAgICAgICAgICAgICAgICAg
ICAgKiprd2FyZ3MpIGFzIGNvbmZpZzoKICAgICAgICAgZ2xvYmFsIGxvZ2dlcgogICAgICAgICBs
b2dnZXIgPSBjb25maWcubG9nZ2VyCiAgICAgICAgIHNldF9sb2dnZXIobG9nZ2VyKQorICAgICAg
ICAjIENvbmZpZ3VyZSB0aGUgcm9vdCBsb2dnZXIgdG8gY292ZXIgdGhpcmQtcGFydHkgbGlicmFy
aWVzLgorICAgICAgICBsb2dnaW5nLmdldExvZ2dlcigpLnNldExldmVsKGNvbmZpZy5sb2dfbGV2
ZWwpCisKKyAgICAgICAgZGVmIGhhbmRsZV9zaWduYWwoc2lnbnVtLCBmcmFtZSk6CisgICAgICAg
ICAgICBsb2dnZXIuZGVidWcoIlJlY2VpdmVkIHNpZ25hbCAlcy4gU2h1dHRpbmcgZG93bi4iLCBz
aWdudW0pCisgICAgICAgICAgICByZWNlaXZlZF9zaWduYWwuc2V0KCkKIAogICAgICAgICBiaW5k
X2FkZHJlc3MgPSBjb25maWdbImJpbmRfYWRkcmVzcyJdCiAKQEAgLTgyNSwxMyArODg3LDIwIEBA
IGRlZiBydW4oKiprd2FyZ3MpOgogCiAgICAgICAgIHdpdGggc3Rhc2guU3Rhc2hTZXJ2ZXIoc3Rh
c2hfYWRkcmVzcywgYXV0aGtleT1zdHIodXVpZC51dWlkNCgpKSk6CiAgICAgICAgICAgICBzZXJ2
ZXJzID0gc3RhcnQoY29uZmlnLCBidWlsZF9yb3V0ZXMoY29uZmlnWyJhbGlhc2VzIl0pLCAqKmt3
YXJncykKKyAgICAgICAgICAgIHNpZ25hbC5zaWduYWwoc2lnbmFsLlNJR1RFUk0sIGhhbmRsZV9z
aWduYWwpCisgICAgICAgICAgICBzaWduYWwuc2lnbmFsKHNpZ25hbC5TSUdJTlQsIGhhbmRsZV9z
aWduYWwpCisKKyAgICAgICAgICAgIHdoaWxlIGFsbChpdGVtLmlzX2FsaXZlKCkgZm9yIGl0ZW0g
aW4gaXRlcl9wcm9jcyhzZXJ2ZXJzKSkgYW5kIG5vdCByZWNlaXZlZF9zaWduYWwuaXNfc2V0KCk6
CisgICAgICAgICAgICAgICAgZm9yIGl0ZW0gaW4gaXRlcl9wcm9jcyhzZXJ2ZXJzKToKKyAgICAg
ICAgICAgICAgICAgICAgaXRlbS5qb2luKDEpCisgICAgICAgICAgICBleGl0ZWQgPSBbaXRlbSBm
b3IgaXRlbSBpbiBpdGVyX3Byb2NzKHNlcnZlcnMpIGlmIG5vdCBpdGVtLmlzX2FsaXZlKCldCisg
ICAgICAgICAgICBzdWJqZWN0ID0gInN1YnByb2Nlc3MiIGlmIGxlbihleGl0ZWQpID09IDEgZWxz
ZSAic3VicHJvY2Vzc2VzIgorCisgICAgICAgICAgICBsb2dnZXIuaW5mbygiJXMgJXMgZXhpdGVk
OiIgJSAobGVuKGV4aXRlZCksIHN1YmplY3QpKQorCisgICAgICAgICAgICBmb3IgaXRlbSBpbiBp
dGVyX3Byb2NzKHNlcnZlcnMpOgorICAgICAgICAgICAgICAgIGxvZ2dlci5pbmZvKCJTdGF0dXMg
b2YgJXM6XHQlcyIgJSAoaXRlbS5uYW1lLCAicnVubmluZyIgaWYgaXRlbS5pc19hbGl2ZSgpIGVs
c2UgIm5vdCBydW5uaW5nIikpCiAKLSAgICAgICAgICAgIHRyeToKLSAgICAgICAgICAgICAgICB3
aGlsZSBhbnkoaXRlbS5pc19hbGl2ZSgpIGZvciBpdGVtIGluIGl0ZXJfcHJvY3Moc2VydmVycykp
OgotICAgICAgICAgICAgICAgICAgICBmb3IgaXRlbSBpbiBpdGVyX3Byb2NzKHNlcnZlcnMpOgot
ICAgICAgICAgICAgICAgICAgICAgICAgaXRlbS5qb2luKDEpCi0gICAgICAgICAgICBleGNlcHQg
S2V5Ym9hcmRJbnRlcnJ1cHQ6Ci0gICAgICAgICAgICAgICAgbG9nZ2VyLmluZm8oIlNodXR0aW5n
IGRvd24iKQogCiBkZWYgbWFpbigpOgogICAgIGt3YXJncyA9IHZhcnMoZ2V0X3BhcnNlcigpLnBh
cnNlX2FyZ3MoKSkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvc2VydmUvdGVzdF9mdW5jdGlvbmFsLnB5IGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9zZXJ2ZS90ZXN0X2Z1bmN0aW9u
YWwucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uODk0NDc5ZDExMWM5MGRhZDkyNWM2ODNjYjBlOTNhYzEzZmM2ODYx
OQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvc2VydmUvdGVzdF9mdW5jdGlvbmFsLnB5CkBAIC0wLDAgKzEsNzkgQEAK
K3RyeToKKyAgICBmcm9tIGltcG9ydGxpYiBpbXBvcnQgcmVsb2FkCitleGNlcHQgSW1wb3J0RXJy
b3I6CisgICAgcGFzcworaW1wb3J0IGpzb24KK2ltcG9ydCBvcwordHJ5OgorICAgICMgaW1wb3J0
IFF1ZXVlIHVuZGVyIGl0cyBQeXRob24gMyBuYW1lCisgICAgaW1wb3J0IFF1ZXVlIGFzIHF1ZXVl
ICAjIG5vcWE6IE44MTMKK2V4Y2VwdCBJbXBvcnRFcnJvcjoKKyAgICBpbXBvcnQgcXVldWUKK2lt
cG9ydCB0ZW1wZmlsZQoraW1wb3J0IHRocmVhZGluZworCitpbXBvcnQgcHl0ZXN0CisKK2Zyb20g
LiBpbXBvcnQgc2VydmUKK2Zyb20gd3B0c2VydmUgaW1wb3J0IGxvZ2dlcgorCisKK2NsYXNzIFNl
cnZlclByb2NTcHkoc2VydmUuU2VydmVyUHJvYyk6CisgICAgaW5zdGFuY2VzID0gTm9uZQorCisg
ICAgZGVmIHN0YXJ0KHNlbGYsICphcmdzLCAqKmt3YXJncyk6CisgICAgICAgIHJlc3VsdCA9IHN1
cGVyKFNlcnZlclByb2NTcHksIHNlbGYpLnN0YXJ0KCphcmdzLCAqKmt3YXJncykKKworICAgICAg
ICBpZiBTZXJ2ZXJQcm9jU3B5Lmluc3RhbmNlcyBpcyBub3QgTm9uZToKKyAgICAgICAgICAgIFNl
cnZlclByb2NTcHkuaW5zdGFuY2VzLnB1dChzZWxmKQorCisgICAgICAgIHJldHVybiByZXN1bHQK
Kworc2VydmUuU2VydmVyUHJvYyA9IFNlcnZlclByb2NTcHkKKworQHB5dGVzdC5maXh0dXJlKCkK
K2RlZiBzZXJ2ZXJfc3VicHJvY2Vzc2VzKCk6CisgICAgU2VydmVyUHJvY1NweS5pbnN0YW5jZXMg
PSBxdWV1ZS5RdWV1ZSgpCisgICAgeWllbGQgU2VydmVyUHJvY1NweS5pbnN0YW5jZXMKKyAgICBT
ZXJ2ZXJQcm9jU3B5Lmluc3RhbmNlcyA9IE5vbmUKKworQHB5dGVzdC5maXh0dXJlKCkKK2RlZiB0
ZW1wZmlsZV9uYW1lKCk6CisgICAgZmQsIG5hbWUgPSB0ZW1wZmlsZS5ta3N0ZW1wKCkKKyAgICB5
aWVsZCBuYW1lCisgICAgb3MuY2xvc2UoZmQpCisgICAgb3MucmVtb3ZlKG5hbWUpCisKKworZGVm
IHRlc3Rfc3VicHJvY2Vzc19leGl0KHNlcnZlcl9zdWJwcm9jZXNzZXMsIHRlbXBmaWxlX25hbWUp
OgorICAgIHRpbWVvdXQgPSAzMAorCisgICAgZGVmIHRhcmdldCgpOgorICAgICAgICAjIEJ5IGRl
ZmF1bHQsIHRoZSBzZXJ2ZXIgaW5pdGlhbGx5IGNyZWF0ZXMgYSBjaGlsZCBwcm9jZXNzIHRvIHZh
bGlkYXRlCisgICAgICAgICMgbG9jYWwgc3lzdGVtIGNvbmZpZ3VyYXRpb24uIFRoYXQgcHJvY2Vz
cyBpcyB1bnJlbGF0ZWQgdG8gdGhlIGJlaGF2aW9yCisgICAgICAgICMgdW5kZXIgdGVzdCwgYnV0
IGF0IHRoZSB0aW1lIG9mIHRoaXMgd3JpdGluZywgdGhlIHBhcmVudCB1c2VzIHRoZSBzYW1lCisg
ICAgICAgICMgY29uc3RydWN0b3IgdGhhdCBpcyBhbHNvIHVzZWQgdG8gY3JlYXRlIHRoZSBsb25n
LXJ1bm5pbmcgcHJvY2Vzc2VzCisgICAgICAgICMgd2hpY2ggYXJlIHJlbGV2YW50IHRvIHRoaXMg
ZnVuY3Rpb25hbGl0eS4gRGlzYWJsZSB0aGUgY2hlY2sgc28gdGhhdAorICAgICAgICAjIHRoZSBj
b25zdHJ1Y3RvciBpcyBvbmx5IHVzZWQgdG8gY3JlYXRlIHJlbGV2YW50IHByb2Nlc3Nlcy4KKyAg
ICAgICAgd2l0aCBvcGVuKHRlbXBmaWxlX25hbWUsICd3JykgYXMgaGFuZGxlOgorICAgICAgICAg
ICAganNvbi5kdW1wKHsiY2hlY2tfc3ViZG9tYWlucyI6IEZhbHNlLCAiYmluZF9hZGRyZXNzIjog
RmFsc2V9LCBoYW5kbGUpCisKKyAgICAgICAgIyBUaGUgYGxvZ2dlcmAgbW9kdWxlIGZyb20gdGhl
IHdwdHNlcnZlciBwYWNrYWdlIHVzZXMgYSBzaW5nbGV0b24KKyAgICAgICAgIyBwYXR0ZXJuIHdo
aWNoIHJlc2lzdHMgdGVzdGluZy4gSW4gb3JkZXIgdG8gYXZvaWQgY29uZmxpY3Rpbmcgd2l0aAor
ICAgICAgICAjIG90aGVyIHRlc3RzIHdoaWNoIHJlbHkgb24gdGhhdCBtb2R1bGUsIHByZS1leGlz
dGluZyBzdGF0ZSBpcworICAgICAgICAjIGRpc2NhcmRlZCB0aHJvdWdoIGFuIGV4cGxpY2l0ICJy
ZWxvYWQiIG9wZXJhdGlvbi4KKyAgICAgICAgcmVsb2FkKGxvZ2dlcikKKworICAgICAgICBzZXJ2
ZS5ydW4oY29uZmlnX3BhdGg9dGVtcGZpbGVfbmFtZSkKKworICAgIHRocmVhZCA9IHRocmVhZGlu
Zy5UaHJlYWQodGFyZ2V0PXRhcmdldCkKKworICAgIHRocmVhZC5zdGFydCgpCisKKyAgICBzZXJ2
ZXJfc3VicHJvY2Vzc2VzLmdldChUcnVlLCB0aW1lb3V0KQorICAgIHN1YnByb2Nlc3MgPSBzZXJ2
ZXJfc3VicHJvY2Vzc2VzLmdldChUcnVlLCB0aW1lb3V0KQorICAgIHN1YnByb2Nlc3Mua2lsbCgp
CisKKyAgICB0aHJlYWQuam9pbih0aW1lb3V0KQorCisgICAgYXNzZXJ0IG5vdCB0aHJlYWQuaXNf
YWxpdmUoKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy9zZXJ2ZS90ZXN0X3NlcnZlLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9zZXJ2ZS90ZXN0X3NlcnZlLnB5CmluZGV4IDFj
MDg5YjUwNjczOGVlNzNlMmYxZTI5Y2YxNzI5YTFhYmMxZTBjMGIuLmQ2YzA4MmE5NzAzNTdmNDc3
ZTgyY2QyNWExYzA5NTJlZTc0NGRiNTQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvc2VydmUvdGVzdF9zZXJ2ZS5weQorKysgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3NlcnZlL3Rl
c3Rfc2VydmUucHkKQEAgLTEsNiArMSw3IEBACitpbXBvcnQganNvbgoraW1wb3J0IG9zCiBpbXBv
cnQgcGlja2xlCiBpbXBvcnQgcGxhdGZvcm0KLWltcG9ydCBvcwogCiBpbXBvcnQgcHl0ZXN0CiAK
QEAgLTc1LDMgKzc2LDMyIEBAIGRlZiB0ZXN0X3BpY2tsZSgpOgogICAgICMgRW5zdXJlIHRoYXQg
dGhlIGNvbmZpZyBvYmplY3QgY2FuIGJlIHBpY2tsZWQKICAgICB3aXRoIENvbmZpZ0J1aWxkZXIo
KSBhcyBjOgogICAgICAgICBwaWNrbGUuZHVtcHMoYykKKworCitkZWYgdGVzdF9jb25maWdfanNv
bl9sZW5ndGgoKToKKyAgICAjIHdlIHNlcmlhbGl6ZSB0aGUgY29uZmlnIGFzIEpTT04gZm9yIHB5
dGVzdHJ1bm5lciBhbmQgcHV0IGl0IGluIGFuIGVudgorICAgICMgdmFyaWFibGUsIHdoaWNoIG9u
IFdpbmRvd3MgbXVzdCBoYXZlIGEgbGVuZ3RoIDw9IDB4N0ZGRiAoaW50MTYpCisgICAgd2l0aCBD
b25maWdCdWlsZGVyKCkgYXMgYzoKKyAgICAgICAgZGF0YSA9IGpzb24uZHVtcHMoYy5hc19kaWN0
KCkpCisgICAgYXNzZXJ0IGxlbihkYXRhKSA8PSAweDdGRkYKKworZGVmIHRlc3RfYWx0ZXJuYXRl
X2hvc3RfdW5zcGVjaWZpZWQoKToKKyAgICBDb25maWdCdWlsZGVyKGJyb3dzZXJfaG9zdD0id2Vi
LXBsYXRmb3JtLnRlc3QiKQorCitAcHl0ZXN0Lm1hcmsucGFyYW1ldHJpemUoInByaW1hcnksIGFs
dGVybmF0ZSIsIFsKKyAgICAoIndlYi1wbGF0Zm9ybS50ZXN0IiwgIndlYi1wbGF0Zm9ybS50ZXN0
IiksCisgICAgKCJhLndlYi1wbGF0Zm9ybS50ZXN0IiwgIndlYi1wbGF0Zm9ybS50ZXN0IiksCisg
ICAgKCJ3ZWItcGxhdGZvcm0udGVzdCIsICJhLndlYi1wbGF0Zm9ybS50ZXN0IiksCisgICAgKCJh
LndlYi1wbGF0Zm9ybS50ZXN0IiwgImEud2ViLXBsYXRmb3JtLnRlc3QiKSwKK10pCitkZWYgdGVz
dF9hbHRlcm5hdGVfaG9zdF9pbnZhbGlkKHByaW1hcnksIGFsdGVybmF0ZSk6CisgICAgd2l0aCBw
eXRlc3QucmFpc2VzKFZhbHVlRXJyb3IpOgorICAgICAgICBDb25maWdCdWlsZGVyKGJyb3dzZXJf
aG9zdD1wcmltYXJ5LCBhbHRlcm5hdGVfaG9zdHM9eyJhbHQiOiBhbHRlcm5hdGV9KQorCitAcHl0
ZXN0Lm1hcmsucGFyYW1ldHJpemUoInByaW1hcnksIGFsdGVybmF0ZSIsIFsKKyAgICAoIndlYi1w
bGF0Zm9ybS50ZXN0IiwgIm5vdC13ZWItcGxhdGZvcm0udGVzdCIpLAorICAgICgiYS53ZWItcGxh
dGZvcm0udGVzdCIsICJiLndlYi1wbGF0Zm9ybS50ZXN0IiksCisgICAgKCJ3ZWItcGxhdGZvcm0t
dGVzdHMuZGV2IiwgIndlYi1wbGF0Zm9ybS10ZXN0cy5saXZlIiksCitdKQorZGVmIHRlc3RfYWx0
ZXJuYXRlX2hvc3RfdmFsaWQocHJpbWFyeSwgYWx0ZXJuYXRlKToKKyAgICBDb25maWdCdWlsZGVy
KGJyb3dzZXJfaG9zdD1wcmltYXJ5LCBhbHRlcm5hdGVfaG9zdHM9eyJhbHQiOiBhbHRlcm5hdGV9
KQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy9zZXJ2ZS93M2MtaW1wb3J0LmxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvc2VydmUvdzNjLWltcG9ydC5sb2cKZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDlhYTU3MjI1ZGJkZDE4ZjZiMzJmYmNmNjdiOTA3ZGNjODU4YzY2
ZmQuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9zZXJ2ZS93M2MtaW1w
b3J0LmxvZworKysgL2Rldi9udWxsCkBAIC0xLDIwICswLDAgQEAKLVRoZSB0ZXN0cyBpbiB0aGlz
IGRpcmVjdG9yeSB3ZXJlIGltcG9ydGVkIGZyb20gdGhlIFczQyByZXBvc2l0b3J5LgotRG8gTk9U
IG1vZGlmeSB0aGVzZSB0ZXN0cyBkaXJlY3RseSBpbiBXZWJLaXQuCi1JbnN0ZWFkLCBjcmVhdGUg
YSBwdWxsIHJlcXVlc3Qgb24gdGhlIFdQVCBnaXRodWI6Ci0JaHR0cHM6Ly9naXRodWIuY29tL3dl
Yi1wbGF0Zm9ybS10ZXN0cy93cHQKLQotVGhlbiBydW4gdGhlIFRvb2xzL1NjcmlwdHMvaW1wb3J0
LXczYy10ZXN0cyBpbiBXZWJLaXQgdG8gcmVpbXBvcnQKLQotRG8gTk9UIG1vZGlmeSBvciByZW1v
dmUgdGhpcyBmaWxlLgotCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLVByb3BlcnRpZXMgcmVxdWlyaW5nIHZl
bmRvciBwcmVmaXhlczoKLU5vbmUKLVByb3BlcnR5IHZhbHVlcyByZXF1aXJpbmcgdmVuZG9yIHBy
ZWZpeGVzOgotTm9uZQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1MaXN0IG9mIGZpbGVzOgotL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvc2VydmUvX19pbml0X18u
cHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3Nl
cnZlL2NvbW1hbmRzLmpzb24KLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3NlcnZlL3NlcnZlLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy9zZXJ2ZS90ZXN0X3NlcnZlLnB5CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3NpeC9kb2N1
bWVudGF0aW9uL01ha2VmaWxlIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy9zaXgvZG9jdW1lbnRhdGlvbi9NYWtlZmlsZQpkZWxldGVkIGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggZWViYWZjZDZkNjBmMTI5Y2I1YzYyNmZiMmUwNGQ0MGY3OGUzNzVkYS4u
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3NpeC9kb2N1bWVudGF0aW9u
L01ha2VmaWxlCisrKyAvZGV2L251bGwKQEAgLTEsMTMwICswLDAgQEAKLSMgTWFrZWZpbGUgZm9y
IFNwaGlueCBkb2N1bWVudGF0aW9uCi0jCi0KLSMgWW91IGNhbiBzZXQgdGhlc2UgdmFyaWFibGVz
IGZyb20gdGhlIGNvbW1hbmQgbGluZS4KLVNQSElOWE9QVFMgICAgPQotU1BISU5YQlVJTEQgICA9
IHNwaGlueC1idWlsZAotUEFQRVIgICAgICAgICA9Ci1CVUlMRERJUiAgICAgID0gX2J1aWxkCi0K
LSMgSW50ZXJuYWwgdmFyaWFibGVzLgotUEFQRVJPUFRfYTQgICAgID0gLUQgbGF0ZXhfcGFwZXJf
c2l6ZT1hNAotUEFQRVJPUFRfbGV0dGVyID0gLUQgbGF0ZXhfcGFwZXJfc2l6ZT1sZXR0ZXIKLUFM
TFNQSElOWE9QVFMgICA9IC1kICQoQlVJTERESVIpL2RvY3RyZWVzICQoUEFQRVJPUFRfJChQQVBF
UikpICQoU1BISU5YT1BUUykgLgotCi0uUEhPTlk6IGhlbHAgY2xlYW4gaHRtbCBkaXJodG1sIHNp
bmdsZWh0bWwgcGlja2xlIGpzb24gaHRtbGhlbHAgcXRoZWxwIGRldmhlbHAgZXB1YiBsYXRleCBs
YXRleHBkZiB0ZXh0IG1hbiBjaGFuZ2VzIGxpbmtjaGVjayBkb2N0ZXN0Ci0KLWhlbHA6Ci0JQGVj
aG8gIlBsZWFzZSB1c2UgXGBtYWtlIDx0YXJnZXQ+JyB3aGVyZSA8dGFyZ2V0PiBpcyBvbmUgb2Yi
Ci0JQGVjaG8gIiAgaHRtbCAgICAgICB0byBtYWtlIHN0YW5kYWxvbmUgSFRNTCBmaWxlcyIKLQlA
ZWNobyAiICBkaXJodG1sICAgIHRvIG1ha2UgSFRNTCBmaWxlcyBuYW1lZCBpbmRleC5odG1sIGlu
IGRpcmVjdG9yaWVzIgotCUBlY2hvICIgIHNpbmdsZWh0bWwgdG8gbWFrZSBhIHNpbmdsZSBsYXJn
ZSBIVE1MIGZpbGUiCi0JQGVjaG8gIiAgcGlja2xlICAgICB0byBtYWtlIHBpY2tsZSBmaWxlcyIK
LQlAZWNobyAiICBqc29uICAgICAgIHRvIG1ha2UgSlNPTiBmaWxlcyIKLQlAZWNobyAiICBodG1s
aGVscCAgIHRvIG1ha2UgSFRNTCBmaWxlcyBhbmQgYSBIVE1MIGhlbHAgcHJvamVjdCIKLQlAZWNo
byAiICBxdGhlbHAgICAgIHRvIG1ha2UgSFRNTCBmaWxlcyBhbmQgYSBxdGhlbHAgcHJvamVjdCIK
LQlAZWNobyAiICBkZXZoZWxwICAgIHRvIG1ha2UgSFRNTCBmaWxlcyBhbmQgYSBEZXZoZWxwIHBy
b2plY3QiCi0JQGVjaG8gIiAgZXB1YiAgICAgICB0byBtYWtlIGFuIGVwdWIiCi0JQGVjaG8gIiAg
bGF0ZXggICAgICB0byBtYWtlIExhVGVYIGZpbGVzLCB5b3UgY2FuIHNldCBQQVBFUj1hNCBvciBQ
QVBFUj1sZXR0ZXIiCi0JQGVjaG8gIiAgbGF0ZXhwZGYgICB0byBtYWtlIExhVGVYIGZpbGVzIGFu
ZCBydW4gdGhlbSB0aHJvdWdoIHBkZmxhdGV4IgotCUBlY2hvICIgIHRleHQgICAgICAgdG8gbWFr
ZSB0ZXh0IGZpbGVzIgotCUBlY2hvICIgIG1hbiAgICAgICAgdG8gbWFrZSBtYW51YWwgcGFnZXMi
Ci0JQGVjaG8gIiAgY2hhbmdlcyAgICB0byBtYWtlIGFuIG92ZXJ2aWV3IG9mIGFsbCBjaGFuZ2Vk
L2FkZGVkL2RlcHJlY2F0ZWQgaXRlbXMiCi0JQGVjaG8gIiAgbGlua2NoZWNrICB0byBjaGVjayBh
bGwgZXh0ZXJuYWwgbGlua3MgZm9yIGludGVncml0eSIKLQlAZWNobyAiICBkb2N0ZXN0ICAgIHRv
IHJ1biBhbGwgZG9jdGVzdHMgZW1iZWRkZWQgaW4gdGhlIGRvY3VtZW50YXRpb24gKGlmIGVuYWJs
ZWQpIgotCi1jbGVhbjoKLQktcm0gLXJmICQoQlVJTERESVIpLyoKLQotaHRtbDoKLQkkKFNQSElO
WEJVSUxEKSAtYiBodG1sICQoQUxMU1BISU5YT1BUUykgJChCVUlMRERJUikvaHRtbAotCUBlY2hv
Ci0JQGVjaG8gIkJ1aWxkIGZpbmlzaGVkLiBUaGUgSFRNTCBwYWdlcyBhcmUgaW4gJChCVUlMRERJ
UikvaHRtbC4iCi0KLWRpcmh0bWw6Ci0JJChTUEhJTlhCVUlMRCkgLWIgZGlyaHRtbCAkKEFMTFNQ
SElOWE9QVFMpICQoQlVJTERESVIpL2Rpcmh0bWwKLQlAZWNobwotCUBlY2hvICJCdWlsZCBmaW5p
c2hlZC4gVGhlIEhUTUwgcGFnZXMgYXJlIGluICQoQlVJTERESVIpL2Rpcmh0bWwuIgotCi1zaW5n
bGVodG1sOgotCSQoU1BISU5YQlVJTEQpIC1iIHNpbmdsZWh0bWwgJChBTExTUEhJTlhPUFRTKSAk
KEJVSUxERElSKS9zaW5nbGVodG1sCi0JQGVjaG8KLQlAZWNobyAiQnVpbGQgZmluaXNoZWQuIFRo
ZSBIVE1MIHBhZ2UgaXMgaW4gJChCVUlMRERJUikvc2luZ2xlaHRtbC4iCi0KLXBpY2tsZToKLQkk
KFNQSElOWEJVSUxEKSAtYiBwaWNrbGUgJChBTExTUEhJTlhPUFRTKSAkKEJVSUxERElSKS9waWNr
bGUKLQlAZWNobwotCUBlY2hvICJCdWlsZCBmaW5pc2hlZDsgbm93IHlvdSBjYW4gcHJvY2VzcyB0
aGUgcGlja2xlIGZpbGVzLiIKLQotanNvbjoKLQkkKFNQSElOWEJVSUxEKSAtYiBqc29uICQoQUxM
U1BISU5YT1BUUykgJChCVUlMRERJUikvanNvbgotCUBlY2hvCi0JQGVjaG8gIkJ1aWxkIGZpbmlz
aGVkOyBub3cgeW91IGNhbiBwcm9jZXNzIHRoZSBKU09OIGZpbGVzLiIKLQotaHRtbGhlbHA6Ci0J
JChTUEhJTlhCVUlMRCkgLWIgaHRtbGhlbHAgJChBTExTUEhJTlhPUFRTKSAkKEJVSUxERElSKS9o
dG1saGVscAotCUBlY2hvCi0JQGVjaG8gIkJ1aWxkIGZpbmlzaGVkOyBub3cgeW91IGNhbiBydW4g
SFRNTCBIZWxwIFdvcmtzaG9wIHdpdGggdGhlIiBcCi0JICAgICAgIi5oaHAgcHJvamVjdCBmaWxl
IGluICQoQlVJTERESVIpL2h0bWxoZWxwLiIKLQotcXRoZWxwOgotCSQoU1BISU5YQlVJTEQpIC1i
IHF0aGVscCAkKEFMTFNQSElOWE9QVFMpICQoQlVJTERESVIpL3F0aGVscAotCUBlY2hvCi0JQGVj
aG8gIkJ1aWxkIGZpbmlzaGVkOyBub3cgeW91IGNhbiBydW4gInFjb2xsZWN0aW9uZ2VuZXJhdG9y
IiB3aXRoIHRoZSIgXAotCSAgICAgICIucWhjcCBwcm9qZWN0IGZpbGUgaW4gJChCVUlMRERJUikv
cXRoZWxwLCBsaWtlIHRoaXM6IgotCUBlY2hvICIjIHFjb2xsZWN0aW9uZ2VuZXJhdG9yICQoQlVJ
TERESVIpL3F0aGVscC9zaXgucWhjcCIKLQlAZWNobyAiVG8gdmlldyB0aGUgaGVscCBmaWxlOiIK
LQlAZWNobyAiIyBhc3Npc3RhbnQgLWNvbGxlY3Rpb25GaWxlICQoQlVJTERESVIpL3F0aGVscC9z
aXgucWhjIgotCi1kZXZoZWxwOgotCSQoU1BISU5YQlVJTEQpIC1iIGRldmhlbHAgJChBTExTUEhJ
TlhPUFRTKSAkKEJVSUxERElSKS9kZXZoZWxwCi0JQGVjaG8KLQlAZWNobyAiQnVpbGQgZmluaXNo
ZWQuIgotCUBlY2hvICJUbyB2aWV3IHRoZSBoZWxwIGZpbGU6IgotCUBlY2hvICIjIG1rZGlyIC1w
ICQkSE9NRS8ubG9jYWwvc2hhcmUvZGV2aGVscC9zaXgiCi0JQGVjaG8gIiMgbG4gLXMgJChCVUlM
RERJUikvZGV2aGVscCAkJEhPTUUvLmxvY2FsL3NoYXJlL2RldmhlbHAvc2l4IgotCUBlY2hvICIj
IGRldmhlbHAiCi0KLWVwdWI6Ci0JJChTUEhJTlhCVUlMRCkgLWIgZXB1YiAkKEFMTFNQSElOWE9Q
VFMpICQoQlVJTERESVIpL2VwdWIKLQlAZWNobwotCUBlY2hvICJCdWlsZCBmaW5pc2hlZC4gVGhl
IGVwdWIgZmlsZSBpcyBpbiAkKEJVSUxERElSKS9lcHViLiIKLQotbGF0ZXg6Ci0JJChTUEhJTlhC
VUlMRCkgLWIgbGF0ZXggJChBTExTUEhJTlhPUFRTKSAkKEJVSUxERElSKS9sYXRleAotCUBlY2hv
Ci0JQGVjaG8gIkJ1aWxkIGZpbmlzaGVkOyB0aGUgTGFUZVggZmlsZXMgYXJlIGluICQoQlVJTERE
SVIpL2xhdGV4LiIKLQlAZWNobyAiUnVuIFxgbWFrZScgaW4gdGhhdCBkaXJlY3RvcnkgdG8gcnVu
IHRoZXNlIHRocm91Z2ggKHBkZilsYXRleCIgXAotCSAgICAgICIodXNlIFxgbWFrZSBsYXRleHBk
ZicgaGVyZSB0byBkbyB0aGF0IGF1dG9tYXRpY2FsbHkpLiIKLQotbGF0ZXhwZGY6Ci0JJChTUEhJ
TlhCVUlMRCkgLWIgbGF0ZXggJChBTExTUEhJTlhPUFRTKSAkKEJVSUxERElSKS9sYXRleAotCUBl
Y2hvICJSdW5uaW5nIExhVGVYIGZpbGVzIHRocm91Z2ggcGRmbGF0ZXguLi4iCi0JbWFrZSAtQyAk
KEJVSUxERElSKS9sYXRleCBhbGwtcGRmCi0JQGVjaG8gInBkZmxhdGV4IGZpbmlzaGVkOyB0aGUg
UERGIGZpbGVzIGFyZSBpbiAkKEJVSUxERElSKS9sYXRleC4iCi0KLXRleHQ6Ci0JJChTUEhJTlhC
VUlMRCkgLWIgdGV4dCAkKEFMTFNQSElOWE9QVFMpICQoQlVJTERESVIpL3RleHQKLQlAZWNobwot
CUBlY2hvICJCdWlsZCBmaW5pc2hlZC4gVGhlIHRleHQgZmlsZXMgYXJlIGluICQoQlVJTERESVIp
L3RleHQuIgotCi1tYW46Ci0JJChTUEhJTlhCVUlMRCkgLWIgbWFuICQoQUxMU1BISU5YT1BUUykg
JChCVUlMRERJUikvbWFuCi0JQGVjaG8KLQlAZWNobyAiQnVpbGQgZmluaXNoZWQuIFRoZSBtYW51
YWwgcGFnZXMgYXJlIGluICQoQlVJTERESVIpL21hbi4iCi0KLWNoYW5nZXM6Ci0JJChTUEhJTlhC
VUlMRCkgLWIgY2hhbmdlcyAkKEFMTFNQSElOWE9QVFMpICQoQlVJTERESVIpL2NoYW5nZXMKLQlA
ZWNobwotCUBlY2hvICJUaGUgb3ZlcnZpZXcgZmlsZSBpcyBpbiAkKEJVSUxERElSKS9jaGFuZ2Vz
LiIKLQotbGlua2NoZWNrOgotCSQoU1BISU5YQlVJTEQpIC1iIGxpbmtjaGVjayAkKEFMTFNQSElO
WE9QVFMpICQoQlVJTERESVIpL2xpbmtjaGVjawotCUBlY2hvCi0JQGVjaG8gIkxpbmsgY2hlY2sg
Y29tcGxldGU7IGxvb2sgZm9yIGFueSBlcnJvcnMgaW4gdGhlIGFib3ZlIG91dHB1dCAiIFwKLQkg
ICAgICAib3IgaW4gJChCVUlMRERJUikvbGlua2NoZWNrL291dHB1dC50eHQuIgotCi1kb2N0ZXN0
OgotCSQoU1BISU5YQlVJTEQpIC1iIGRvY3Rlc3QgJChBTExTUEhJTlhPUFRTKSAkKEJVSUxERElS
KS9kb2N0ZXN0Ci0JQGVjaG8gIlRlc3Rpbmcgb2YgZG9jdGVzdHMgaW4gdGhlIHNvdXJjZXMgZmlu
aXNoZWQsIGxvb2sgYXQgdGhlICIgXAotCSAgICAgICJyZXN1bHRzIGluICQoQlVJTERESVIpL2Rv
Y3Rlc3Qvb3V0cHV0LnR4dC4iCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3NpeC9kb2N1bWVudGF0aW9uL2NvbmYucHkgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3NpeC9kb2N1bWVu
dGF0aW9uL2NvbmYucHkKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDdlNTQyODdhNjll
MDQ3MDdiMWE1MGVmNmI2NmZhYTZiZDJkMTg4MTEuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy9zaXgvZG9jdW1lbnRhdGlvbi9jb25mLnB5CisrKyAvZGV2L251bGwKQEAg
LTEsMjE3ICswLDAgQEAKLSMgLSotIGNvZGluZzogdXRmLTggLSotCi0jCi0jIHNpeCBkb2N1bWVu
dGF0aW9uIGJ1aWxkIGNvbmZpZ3VyYXRpb24gZmlsZQotCi1pbXBvcnQgb3MKLWltcG9ydCBzeXMK
LQotIyBJZiBleHRlbnNpb25zIChvciBtb2R1bGVzIHRvIGRvY3VtZW50IHdpdGggYXV0b2RvYykg
YXJlIGluIGFub3RoZXIgZGlyZWN0b3J5LAotIyBhZGQgdGhlc2UgZGlyZWN0b3JpZXMgdG8gc3lz
LnBhdGggaGVyZS4gSWYgdGhlIGRpcmVjdG9yeSBpcyByZWxhdGl2ZSB0byB0aGUKLSMgZG9jdW1l
bnRhdGlvbiByb290LCB1c2Ugb3MucGF0aC5hYnNwYXRoIHRvIG1ha2UgaXQgYWJzb2x1dGUsIGxp
a2Ugc2hvd24gaGVyZS4KLSNzeXMucGF0aC5hcHBlbmQob3MucGF0aC5hYnNwYXRoKCcuJykpCi0K
LSMgLS0gR2VuZXJhbCBjb25maWd1cmF0aW9uIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0KLSMgSWYgeW91ciBkb2N1bWVudGF0aW9uIG5lZWRz
IGEgbWluaW1hbCBTcGhpbnggdmVyc2lvbiwgc3RhdGUgaXQgaGVyZS4KLW5lZWRzX3NwaGlueCA9
ICIxLjAiCi0KLSMgQWRkIGFueSBTcGhpbnggZXh0ZW5zaW9uIG1vZHVsZSBuYW1lcyBoZXJlLCBh
cyBzdHJpbmdzLiBUaGV5IGNhbiBiZSBleHRlbnNpb25zCi0jIGNvbWluZyB3aXRoIFNwaGlueCAo
bmFtZWQgJ3NwaGlueC5leHQuKicpIG9yIHlvdXIgY3VzdG9tIG9uZXMuCi1leHRlbnNpb25zID0g
WyJzcGhpbnguZXh0LmludGVyc3BoaW54Il0KLQotIyBBZGQgYW55IHBhdGhzIHRoYXQgY29udGFp
biB0ZW1wbGF0ZXMgaGVyZSwgcmVsYXRpdmUgdG8gdGhpcyBkaXJlY3RvcnkuCi10ZW1wbGF0ZXNf
cGF0aCA9IFsiX3RlbXBsYXRlcyJdCi0KLSMgVGhlIHN1ZmZpeCBvZiBzb3VyY2UgZmlsZW5hbWVz
Lgotc291cmNlX3N1ZmZpeCA9ICIucnN0IgotCi0jIFRoZSBlbmNvZGluZyBvZiBzb3VyY2UgZmls
ZXMuCi0jc291cmNlX2VuY29kaW5nID0gInV0Zi04LXNpZyIKLQotIyBUaGUgbWFzdGVyIHRvY3Ry
ZWUgZG9jdW1lbnQuCi1tYXN0ZXJfZG9jID0gImluZGV4IgotCi0jIEdlbmVyYWwgaW5mb3JtYXRp
b24gYWJvdXQgdGhlIHByb2plY3QuCi1wcm9qZWN0ID0gdSJzaXgiCi1jb3B5cmlnaHQgPSB1IjIw
MTAtMjAxNCwgQmVuamFtaW4gUGV0ZXJzb24iCi0KLXN5cy5wYXRoLmFwcGVuZChvcy5wYXRoLmFi
c3BhdGgob3MucGF0aC5qb2luKCIuIiwgIi4uIikpKQotZnJvbSBzaXggaW1wb3J0IF9fdmVyc2lv
bl9fIGFzIHNpeF92ZXJzaW9uCi1zeXMucGF0aC5wb3AoKQotCi0jIFRoZSB2ZXJzaW9uIGluZm8g
Zm9yIHRoZSBwcm9qZWN0IHlvdSdyZSBkb2N1bWVudGluZywgYWN0cyBhcyByZXBsYWNlbWVudCBm
b3IKLSMgfHZlcnNpb258IGFuZCB8cmVsZWFzZXwsIGFsc28gdXNlZCBpbiB2YXJpb3VzIG90aGVy
IHBsYWNlcyB0aHJvdWdob3V0IHRoZQotIyBidWlsdCBkb2N1bWVudHMuCi0jCi0jIFRoZSBzaG9y
dCBYLlkgdmVyc2lvbi4KLXZlcnNpb24gPSBzaXhfdmVyc2lvbls6LTJdCi0jIFRoZSBmdWxsIHZl
cnNpb24sIGluY2x1ZGluZyBhbHBoYS9iZXRhL3JjIHRhZ3MuCi1yZWxlYXNlID0gc2l4X3ZlcnNp
b24KLQotIyBUaGUgbGFuZ3VhZ2UgZm9yIGNvbnRlbnQgYXV0b2dlbmVyYXRlZCBieSBTcGhpbngu
IFJlZmVyIHRvIGRvY3VtZW50YXRpb24KLSMgZm9yIGEgbGlzdCBvZiBzdXBwb3J0ZWQgbGFuZ3Vh
Z2VzLgotI2xhbmd1YWdlID0gTm9uZQotCi0jIFRoZXJlIGFyZSB0d28gb3B0aW9ucyBmb3IgcmVw
bGFjaW5nIHx0b2RheXw6IGVpdGhlciwgeW91IHNldCB0b2RheSB0byBzb21lCi0jIG5vbi1mYWxz
ZSB2YWx1ZSwgdGhlbiBpdCBpcyB1c2VkOgotI3RvZGF5ID0gJycKLSMgRWxzZSwgdG9kYXlfZm10
IGlzIHVzZWQgYXMgdGhlIGZvcm1hdCBmb3IgYSBzdHJmdGltZSBjYWxsLgotI3RvZGF5X2ZtdCA9
ICclQiAlZCwgJVknCi0KLSMgTGlzdCBvZiBwYXR0ZXJucywgcmVsYXRpdmUgdG8gc291cmNlIGRp
cmVjdG9yeSwgdGhhdCBtYXRjaCBmaWxlcyBhbmQKLSMgZGlyZWN0b3JpZXMgdG8gaWdub3JlIHdo
ZW4gbG9va2luZyBmb3Igc291cmNlIGZpbGVzLgotZXhjbHVkZV9wYXR0ZXJucyA9IFsiX2J1aWxk
Il0KLQotIyBUaGUgcmVTVCBkZWZhdWx0IHJvbGUgKHVzZWQgZm9yIHRoaXMgbWFya3VwOiBgdGV4
dGApIHRvIHVzZSBmb3IgYWxsIGRvY3VtZW50cy4KLSNkZWZhdWx0X3JvbGUgPSBOb25lCi0KLSMg
SWYgdHJ1ZSwgJygpJyB3aWxsIGJlIGFwcGVuZGVkIHRvIDpmdW5jOiBldGMuIGNyb3NzLXJlZmVy
ZW5jZSB0ZXh0LgotI2FkZF9mdW5jdGlvbl9wYXJlbnRoZXNlcyA9IFRydWUKLQotIyBJZiB0cnVl
LCB0aGUgY3VycmVudCBtb2R1bGUgbmFtZSB3aWxsIGJlIHByZXBlbmRlZCB0byBhbGwgZGVzY3Jp
cHRpb24KLSMgdW5pdCB0aXRsZXMgKHN1Y2ggYXMgLi4gZnVuY3Rpb246OikuCi0jYWRkX21vZHVs
ZV9uYW1lcyA9IFRydWUKLQotIyBJZiB0cnVlLCBzZWN0aW9uYXV0aG9yIGFuZCBtb2R1bGVhdXRo
b3IgZGlyZWN0aXZlcyB3aWxsIGJlIHNob3duIGluIHRoZQotIyBvdXRwdXQuIFRoZXkgYXJlIGln
bm9yZWQgYnkgZGVmYXVsdC4KLSNzaG93X2F1dGhvcnMgPSBGYWxzZQotCi0jIFRoZSBuYW1lIG9m
IHRoZSBQeWdtZW50cyAoc3ludGF4IGhpZ2hsaWdodGluZykgc3R5bGUgdG8gdXNlLgotcHlnbWVu
dHNfc3R5bGUgPSAic3BoaW54IgotCi0jIEEgbGlzdCBvZiBpZ25vcmVkIHByZWZpeGVzIGZvciBt
b2R1bGUgaW5kZXggc29ydGluZy4KLSNtb2RpbmRleF9jb21tb25fcHJlZml4ID0gW10KLQotCi0j
IC0tIE9wdGlvbnMgZm9yIEhUTUwgb3V0cHV0IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotCi0jIFRoZSB0aGVtZSB0byB1c2UgZm9yIEhUTUwgYW5k
IEhUTUwgSGVscCBwYWdlcy4gIFNlZSB0aGUgZG9jdW1lbnRhdGlvbiBmb3IKLSMgYSBsaXN0IG9m
IGJ1aWx0aW4gdGhlbWVzLgotaHRtbF90aGVtZSA9ICJkZWZhdWx0IgotCi0jIFRoZW1lIG9wdGlv
bnMgYXJlIHRoZW1lLXNwZWNpZmljIGFuZCBjdXN0b21pemUgdGhlIGxvb2sgYW5kIGZlZWwgb2Yg
YSB0aGVtZQotIyBmdXJ0aGVyLiAgRm9yIGEgbGlzdCBvZiBvcHRpb25zIGF2YWlsYWJsZSBmb3Ig
ZWFjaCB0aGVtZSwgc2VlIHRoZQotIyBkb2N1bWVudGF0aW9uLgotI2h0bWxfdGhlbWVfb3B0aW9u
cyA9IHt9Ci0KLSMgQWRkIGFueSBwYXRocyB0aGF0IGNvbnRhaW4gY3VzdG9tIHRoZW1lcyBoZXJl
LCByZWxhdGl2ZSB0byB0aGlzIGRpcmVjdG9yeS4KLSNodG1sX3RoZW1lX3BhdGggPSBbXQotCi0j
IFRoZSBuYW1lIGZvciB0aGlzIHNldCBvZiBTcGhpbnggZG9jdW1lbnRzLiAgSWYgTm9uZSwgaXQg
ZGVmYXVsdHMgdG8KLSMgIjxwcm9qZWN0PiB2PHJlbGVhc2U+IGRvY3VtZW50YXRpb24iLgotI2h0
bWxfdGl0bGUgPSBOb25lCi0KLSMgQSBzaG9ydGVyIHRpdGxlIGZvciB0aGUgbmF2aWdhdGlvbiBi
YXIuICBEZWZhdWx0IGlzIHRoZSBzYW1lIGFzIGh0bWxfdGl0bGUuCi0jaHRtbF9zaG9ydF90aXRs
ZSA9IE5vbmUKLQotIyBUaGUgbmFtZSBvZiBhbiBpbWFnZSBmaWxlIChyZWxhdGl2ZSB0byB0aGlz
IGRpcmVjdG9yeSkgdG8gcGxhY2UgYXQgdGhlIHRvcAotIyBvZiB0aGUgc2lkZWJhci4KLSNodG1s
X2xvZ28gPSBOb25lCi0KLSMgVGhlIG5hbWUgb2YgYW4gaW1hZ2UgZmlsZSAod2l0aGluIHRoZSBz
dGF0aWMgcGF0aCkgdG8gdXNlIGFzIGZhdmljb24gb2YgdGhlCi0jIGRvY3MuICBUaGlzIGZpbGUg
c2hvdWxkIGJlIGEgV2luZG93cyBpY29uIGZpbGUgKC5pY28pIGJlaW5nIDE2eDE2IG9yIDMyeDMy
Ci0jIHBpeGVscyBsYXJnZS4KLSNodG1sX2Zhdmljb24gPSBOb25lCi0KLSMgQWRkIGFueSBwYXRo
cyB0aGF0IGNvbnRhaW4gY3VzdG9tIHN0YXRpYyBmaWxlcyAoc3VjaCBhcyBzdHlsZSBzaGVldHMp
IGhlcmUsCi0jIHJlbGF0aXZlIHRvIHRoaXMgZGlyZWN0b3J5LiBUaGV5IGFyZSBjb3BpZWQgYWZ0
ZXIgdGhlIGJ1aWx0aW4gc3RhdGljIGZpbGVzLAotIyBzbyBhIGZpbGUgbmFtZWQgImRlZmF1bHQu
Y3NzIiB3aWxsIG92ZXJ3cml0ZSB0aGUgYnVpbHRpbiAiZGVmYXVsdC5jc3MiLgotaHRtbF9zdGF0
aWNfcGF0aCA9IFsiX3N0YXRpYyJdCi0KLSMgSWYgbm90ICcnLCBhICdMYXN0IHVwZGF0ZWQgb246
JyB0aW1lc3RhbXAgaXMgaW5zZXJ0ZWQgYXQgZXZlcnkgcGFnZSBib3R0b20sCi0jIHVzaW5nIHRo
ZSBnaXZlbiBzdHJmdGltZSBmb3JtYXQuCi0jaHRtbF9sYXN0X3VwZGF0ZWRfZm10ID0gJyViICVk
LCAlWScKLQotIyBJZiB0cnVlLCBTbWFydHlQYW50cyB3aWxsIGJlIHVzZWQgdG8gY29udmVydCBx
dW90ZXMgYW5kIGRhc2hlcyB0bwotIyB0eXBvZ3JhcGhpY2FsbHkgY29ycmVjdCBlbnRpdGllcy4K
LSNodG1sX3VzZV9zbWFydHlwYW50cyA9IFRydWUKLQotIyBDdXN0b20gc2lkZWJhciB0ZW1wbGF0
ZXMsIG1hcHMgZG9jdW1lbnQgbmFtZXMgdG8gdGVtcGxhdGUgbmFtZXMuCi0jaHRtbF9zaWRlYmFy
cyA9IHt9Ci0KLSMgQWRkaXRpb25hbCB0ZW1wbGF0ZXMgdGhhdCBzaG91bGQgYmUgcmVuZGVyZWQg
dG8gcGFnZXMsIG1hcHMgcGFnZSBuYW1lcyB0bwotIyB0ZW1wbGF0ZSBuYW1lcy4KLSNodG1sX2Fk
ZGl0aW9uYWxfcGFnZXMgPSB7fQotCi0jIElmIGZhbHNlLCBubyBtb2R1bGUgaW5kZXggaXMgZ2Vu
ZXJhdGVkLgotI2h0bWxfZG9tYWluX2luZGljZXMgPSBUcnVlCi0KLSMgSWYgZmFsc2UsIG5vIGlu
ZGV4IGlzIGdlbmVyYXRlZC4KLSNodG1sX3VzZV9pbmRleCA9IFRydWUKLQotIyBJZiB0cnVlLCB0
aGUgaW5kZXggaXMgc3BsaXQgaW50byBpbmRpdmlkdWFsIHBhZ2VzIGZvciBlYWNoIGxldHRlci4K
LSNodG1sX3NwbGl0X2luZGV4ID0gRmFsc2UKLQotIyBJZiB0cnVlLCBsaW5rcyB0byB0aGUgcmVT
VCBzb3VyY2VzIGFyZSBhZGRlZCB0byB0aGUgcGFnZXMuCi0jaHRtbF9zaG93X3NvdXJjZWxpbmsg
PSBUcnVlCi0KLSMgSWYgdHJ1ZSwgIkNyZWF0ZWQgdXNpbmcgU3BoaW54IiBpcyBzaG93biBpbiB0
aGUgSFRNTCBmb290ZXIuIERlZmF1bHQgaXMgVHJ1ZS4KLSNodG1sX3Nob3dfc3BoaW54ID0gVHJ1
ZQotCi0jIElmIHRydWUsICIoQykgQ29weXJpZ2h0IC4uLiIgaXMgc2hvd24gaW4gdGhlIEhUTUwg
Zm9vdGVyLiBEZWZhdWx0IGlzIFRydWUuCi0jaHRtbF9zaG93X2NvcHlyaWdodCA9IFRydWUKLQot
IyBJZiB0cnVlLCBhbiBPcGVuU2VhcmNoIGRlc2NyaXB0aW9uIGZpbGUgd2lsbCBiZSBvdXRwdXQs
IGFuZCBhbGwgcGFnZXMgd2lsbAotIyBjb250YWluIGEgPGxpbms+IHRhZyByZWZlcnJpbmcgdG8g
aXQuICBUaGUgdmFsdWUgb2YgdGhpcyBvcHRpb24gbXVzdCBiZSB0aGUKLSMgYmFzZSBVUkwgZnJv
bSB3aGljaCB0aGUgZmluaXNoZWQgSFRNTCBpcyBzZXJ2ZWQuCi0jaHRtbF91c2Vfb3BlbnNlYXJj
aCA9ICcnCi0KLSMgSWYgbm9uZW1wdHksIHRoaXMgaXMgdGhlIGZpbGUgbmFtZSBzdWZmaXggZm9y
IEhUTUwgZmlsZXMgKGUuZy4gIi54aHRtbCIpLgotI2h0bWxfZmlsZV9zdWZmaXggPSAnJwotCi0j
IE91dHB1dCBmaWxlIGJhc2UgbmFtZSBmb3IgSFRNTCBoZWxwIGJ1aWxkZXIuCi1odG1saGVscF9i
YXNlbmFtZSA9ICdzaXhkb2MnCi0KLQotIyAtLSBPcHRpb25zIGZvciBMYVRlWCBvdXRwdXQgLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLQotIyBUaGUg
cGFwZXIgc2l6ZSAoJ2xldHRlcicgb3IgJ2E0JykuCi0jbGF0ZXhfcGFwZXJfc2l6ZSA9ICdsZXR0
ZXInCi0KLSMgVGhlIGZvbnQgc2l6ZSAoJzEwcHQnLCAnMTFwdCcgb3IgJzEycHQnKS4KLSNsYXRl
eF9mb250X3NpemUgPSAnMTBwdCcKLQotIyBHcm91cGluZyB0aGUgZG9jdW1lbnQgdHJlZSBpbnRv
IExhVGVYIGZpbGVzLiBMaXN0IG9mIHR1cGxlcwotIyAoc291cmNlIHN0YXJ0IGZpbGUsIHRhcmdl
dCBuYW1lLCB0aXRsZSwgYXV0aG9yLCBkb2N1bWVudGNsYXNzIFtob3d0by9tYW51YWxdKS4KLWxh
dGV4X2RvY3VtZW50cyA9IFsKLSAgKCJpbmRleCIsICJzaXgudGV4IiwgdSJzaXggRG9jdW1lbnRh
dGlvbiIsCi0gICB1IkJlbmphbWluIFBldGVyc29uIiwgIm1hbnVhbCIpLAotXQotCi0jIFRoZSBu
YW1lIG9mIGFuIGltYWdlIGZpbGUgKHJlbGF0aXZlIHRvIHRoaXMgZGlyZWN0b3J5KSB0byBwbGFj
ZSBhdCB0aGUgdG9wIG9mCi0jIHRoZSB0aXRsZSBwYWdlLgotI2xhdGV4X2xvZ28gPSBOb25lCi0K
LSMgRm9yICJtYW51YWwiIGRvY3VtZW50cywgaWYgdGhpcyBpcyB0cnVlLCB0aGVuIHRvcGxldmVs
IGhlYWRpbmdzIGFyZSBwYXJ0cywKLSMgbm90IGNoYXB0ZXJzLgotI2xhdGV4X3VzZV9wYXJ0cyA9
IEZhbHNlCi0KLSMgSWYgdHJ1ZSwgc2hvdyBwYWdlIHJlZmVyZW5jZXMgYWZ0ZXIgaW50ZXJuYWwg
bGlua3MuCi0jbGF0ZXhfc2hvd19wYWdlcmVmcyA9IEZhbHNlCi0KLSMgSWYgdHJ1ZSwgc2hvdyBV
UkwgYWRkcmVzc2VzIGFmdGVyIGV4dGVybmFsIGxpbmtzLgotI2xhdGV4X3Nob3dfdXJscyA9IEZh
bHNlCi0KLSMgQWRkaXRpb25hbCBzdHVmZiBmb3IgdGhlIExhVGVYIHByZWFtYmxlLgotI2xhdGV4
X3ByZWFtYmxlID0gJycKLQotIyBEb2N1bWVudHMgdG8gYXBwZW5kIGFzIGFuIGFwcGVuZGl4IHRv
IGFsbCBtYW51YWxzLgotI2xhdGV4X2FwcGVuZGljZXMgPSBbXQotCi0jIElmIGZhbHNlLCBubyBt
b2R1bGUgaW5kZXggaXMgZ2VuZXJhdGVkLgotI2xhdGV4X2RvbWFpbl9pbmRpY2VzID0gVHJ1ZQot
Ci0KLSMgLS0gT3B0aW9ucyBmb3IgbWFudWFsIHBhZ2Ugb3V0cHV0IC0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0KLSMgT25lIGVudHJ5IHBlciBtYW51YWwgcGFn
ZS4gTGlzdCBvZiB0dXBsZXMKLSMgKHNvdXJjZSBzdGFydCBmaWxlLCBuYW1lLCBkZXNjcmlwdGlv
biwgYXV0aG9ycywgbWFudWFsIHNlY3Rpb24pLgotbWFuX3BhZ2VzID0gWwotICAgICgiaW5kZXgi
LCAic2l4IiwgdSJzaXggRG9jdW1lbnRhdGlvbiIsCi0gICAgIFt1IkJlbmphbWluIFBldGVyc29u
Il0sIDEpCi1dCi0KLSMgLS0gSW50ZXJzcGhpbnggLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0KLWludGVyc3BoaW54X21hcHBp
bmcgPSB7InB5MiIgOiAoImh0dHBzOi8vZG9jcy5weXRob24ub3JnLzIvIiwgTm9uZSksCi0gICAg
ICAgICAgICAgICAgICAgICAgICJweTMiIDogKCJodHRwczovL2RvY3MucHl0aG9uLm9yZy8zLyIs
IE5vbmUpfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy9zaXgvZG9jdW1lbnRhdGlvbi9pbmRleC5yc3QgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3NpeC9kb2N1bWVudGF0aW9uL2lu
ZGV4LnJzdApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOTgyN2U2Njk1YjU5MzFlNTUx
NDRjODU4NzZiN2Q2ZjI1NWNmMzQ0Mi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3NpeC9kb2N1bWVudGF0aW9uL2luZGV4LnJzdAorKysgL2Rldi9udWxsCkBAIC0xLDc4
NSArMCwwIEBACi1TaXg6IFB5dGhvbiAyIGFuZCAzIENvbXBhdGliaWxpdHkgTGlicmFyeQotPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLQotLi4gbW9kdWxlOjogc2l4
Ci0gICA6c3lub3BzaXM6IFB5dGhvbiAyIGFuZCAzIGNvbXBhdGliaWxpdHkKLQotLi4gbW9kdWxl
YXV0aG9yOjogQmVuamFtaW4gUGV0ZXJzb24gPGJlbmphbWluQHB5dGhvbi5vcmc+Ci0uLiBzZWN0
aW9uYXV0aG9yOjogQmVuamFtaW4gUGV0ZXJzb24gPGJlbmphbWluQHB5dGhvbi5vcmc+Ci0KLQot
U2l4IHByb3ZpZGVzIHNpbXBsZSB1dGlsaXRpZXMgZm9yIHdyYXBwaW5nIG92ZXIgZGlmZmVyZW5j
ZXMgYmV0d2VlbiBQeXRob24gMiBhbmQKLVB5dGhvbiAzLiAgSXQgaXMgaW50ZW5kZWQgdG8gc3Vw
cG9ydCBjb2RlYmFzZXMgdGhhdCB3b3JrIG9uIGJvdGggUHl0aG9uIDIgYW5kIDMKLXdpdGhvdXQg
bW9kaWZpY2F0aW9uLiAgc2l4IGNvbnNpc3RzIG9mIG9ubHkgb25lIFB5dGhvbiBmaWxlLCBzbyBp
dCBpcyBwYWlubGVzcwotdG8gY29weSBpbnRvIGEgcHJvamVjdC4KLQotU2l4IGNhbiBiZSBkb3du
bG9hZGVkIG9uIGBQeVBpIDxodHRwOi8vcHlwaS5weXRob24ub3JnL3B5cGkvc2l4Lz5gXy4gIEl0
cyBidWcKLXRyYWNrZXIgYW5kIGNvZGUgaG9zdGluZyBpcyBvbiBgQml0QnVja2V0IDxodHRwOi8v
Yml0YnVja2V0Lm9yZy9ndXR3b3J0aC9zaXg+YF8uCi0KLVRoZSBuYW1lLCAic2l4IiwgY29tZXMg
ZnJvbSB0aGUgZmFjdCB0aGF0IDIqMyBlcXVhbHMgNi4gIFdoeSBub3QgYWRkaXRpb24/Ci1NdWx0
aXBsaWNhdGlvbiBpcyBtb3JlIHBvd2VyZnVsLCBhbmQsIGFueXdheSwgImZpdmUiIGhhcyBhbHJl
YWR5IGJlZW4gc25hdGNoZWQKLWF3YXkgYnkgdGhlIFpvcGUgRml2ZSBwcm9qZWN0LgotCi0KLUlu
ZGljZXMgYW5kIHRhYmxlcwotLS0tLS0tLS0tLS0tLS0tLS0tCi0KLSogOnJlZjpgZ2VuaW5kZXhg
Ci0qIDpyZWY6YHNlYXJjaGAKLQotCi1QYWNrYWdlIGNvbnRlbnRzCi0tLS0tLS0tLS0tLS0tLS0t
Ci0KLS4uIGRhdGE6OiBQWTIKLQotICAgQSBib29sZWFuIGluZGljYXRpbmcgaWYgdGhlIGNvZGUg
aXMgcnVubmluZyBvbiBQeXRob24gMi4KLQotLi4gZGF0YTo6IFBZMwotCi0gICBBIGJvb2xlYW4g
aW5kaWNhdGluZyBpZiB0aGUgY29kZSBpcyBydW5uaW5nIG9uIFB5dGhvbiAzLgotCi0KLUNvbnN0
YW50cwotPj4+Pj4+Pj4+Ci0KLVNpeCBwcm92aWRlcyBjb25zdGFudHMgdGhhdCBtYXkgZGlmZmVy
IGJldHdlZW4gUHl0aG9uIHZlcnNpb25zLiAgT25lcyBlbmRpbmcKLWBgX3R5cGVzYGAgYXJlIG1v
c3RseSB1c2VmdWwgYXMgdGhlIHNlY29uZCBhcmd1bWVudCB0byBgYGlzaW5zdGFuY2VgYCBvcgot
YGBpc3N1YmNsYXNzYGAuCi0KLQotLi4gZGF0YTo6IGNsYXNzX3R5cGVzCi0KLSAgIFBvc3NpYmxl
IGNsYXNzIHR5cGVzLiAgSW4gUHl0aG9uIDIsIHRoaXMgZW5jb21wYXNzZXMgb2xkLXN0eWxlIGFu
ZCBuZXctc3R5bGUKLSAgIGNsYXNzZXMuICBJbiBQeXRob24gMywgdGhpcyBpcyBqdXN0IG5ldy1z
dHlsZXMuCi0KLQotLi4gZGF0YTo6IGludGVnZXJfdHlwZXMKLQotICAgUG9zc2libGUgaW50ZWdl
ciB0eXBlcy4gIEluIFB5dGhvbiAyLCB0aGlzIGlzIDpmdW5jOmBweTI6bG9uZ2AgYW5kCi0gICA6
ZnVuYzpgcHkyOmludGAsIGFuZCBpbiBQeXRob24gMywganVzdCA6ZnVuYzpgcHkzOmludGAuCi0K
LQotLi4gZGF0YTo6IHN0cmluZ190eXBlcwotCi0gICBQb3NzaWJsZSB0eXBlcyBmb3IgdGV4dCBk
YXRhLiAgVGhpcyBpcyA6ZnVuYzpgcHkyOmJhc2VzdHJpbmdgIGluIFB5dGhvbiAyIGFuZAotICAg
OmZ1bmM6YHB5MzpzdHJgIGluIFB5dGhvbiAzLgotCi0KLS4uIGRhdGE6OiB0ZXh0X3R5cGUKLQot
ICAgVHlwZSBmb3IgcmVwcmVzZW50aW5nIChVbmljb2RlKSB0ZXh0dWFsIGRhdGEuICBUaGlzIGlz
IDpmdW5jOmBweTI6dW5pY29kZWAgaW4KLSAgIFB5dGhvbiAyIGFuZCA6ZnVuYzpgcHkzOnN0cmAg
aW4gUHl0aG9uIDMuCi0KLQotLi4gZGF0YTo6IGJpbmFyeV90eXBlCi0KLSAgIFR5cGUgZm9yIHJl
cHJlc2VudGluZyBiaW5hcnkgZGF0YS4gIFRoaXMgaXMgOmZ1bmM6YHB5MjpzdHJgIGluIFB5dGhv
biAyIGFuZAotICAgOmZ1bmM6YHB5MzpieXRlc2AgaW4gUHl0aG9uIDMuCi0KLQotLi4gZGF0YTo6
IE1BWFNJWkUKLQotICAgVGhlIG1heGltdW0gIHNpemUgb2YgYSAgY29udGFpbmVyIGxpa2UgOmZ1
bmM6YHB5MzpsaXN0YCAgb3IgOmZ1bmM6YHB5MzpkaWN0YC4KLSAgIFRoaXMgIGlzICBlcXVpdmFs
ZW50ICB0byAgOmRhdGE6YHB5MzpzeXMubWF4c2l6ZWAgaW4gIFB5dGhvbiAgMi42ICBhbmQgIGxh
dGVyCi0gICAoaW5jbHVkaW5nIDMueCkuICAgTm90ZSwgdGhpcyBpcyB0ZW1wdGluZ2x5ICBzaW1p
bGFyIHRvLCBidXQgbm90ICB0aGUgc2FtZSBhcwotICAgOmRhdGE6YHB5MjpzeXMubWF4aW50YCAg
aW4gIFB5dGhvbiAgMi4gICBUaGVyZSBpcyAgbm8gIGRpcmVjdCAgZXF1aXZhbGVudCAgdG8KLSAg
IDpkYXRhOmBweTI6c3lzLm1heGludGAgaW4gIFB5dGhvbiAzICBiZWNhdXNlIGl0cyBpbnRlZ2Vy
ICB0eXBlIGhhcyAgbm8gbGltaXRzCi0gICBhc2lkZSBmcm9tIG1lbW9yeS4KLQotCi1IZXJlJ3Mg
ZXhhbXBsZSB1c2FnZSBvZiB0aGUgbW9kdWxlOjoKLQotICAgaW1wb3J0IHNpeAotCi0gICBkZWYg
ZGlzcGF0Y2hfdHlwZXModmFsdWUpOgotICAgICAgIGlmIGlzaW5zdGFuY2UodmFsdWUsIHNpeC5p
bnRlZ2VyX3R5cGVzKToKLSAgICAgICAgICAgaGFuZGxlX2ludGVnZXIodmFsdWUpCi0gICAgICAg
ZWxpZiBpc2luc3RhbmNlKHZhbHVlLCBzaXguY2xhc3NfdHlwZXMpOgotICAgICAgICAgICBoYW5k
bGVfY2xhc3ModmFsdWUpCi0gICAgICAgZWxpZiBpc2luc3RhbmNlKHZhbHVlLCBzaXguc3RyaW5n
X3R5cGVzKToKLSAgICAgICAgICAgaGFuZGxlX3N0cmluZyh2YWx1ZSkKLQotCi1PYmplY3QgbW9k
ZWwgY29tcGF0aWJpbGl0eQotPj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4KLQotUHl0aG9uIDMg
cmVuYW1lZCB0aGUgYXR0cmlidXRlcyBvZiBzZXZlcmFsIGludGVycHJldGVyIGRhdGEgc3RydWN0
dXJlcy4gIFRoZQotZm9sbG93aW5nIGFjY2Vzc29ycyBhcmUgYXZhaWxhYmxlLiAgTm90ZSB0aGF0
IHRoZSByZWNvbW1lbmRlZCB3YXkgdG8gaW5zcGVjdAotZnVuY3Rpb25zIGFuZCBtZXRob2RzIGlz
IHRoZSBzdGRsaWIgOm1vZDpgcHkzOmluc3BlY3RgIG1vZHVsZS4KLQotCi0uLiBmdW5jdGlvbjo6
IGdldF91bmJvdW5kX2Z1bmN0aW9uKG1ldGgpCi0KLSAgIEdldCB0aGUgZnVuY3Rpb24gb3V0IG9m
IHVuYm91bmQgbWV0aG9kICptZXRoKi4gIEluIFB5dGhvbiAzLCB1bmJvdW5kIG1ldGhvZHMKLSAg
IGRvbid0IGV4aXN0LCBzbyB0aGlzIGZ1bmN0aW9uIGp1c3QgcmV0dXJucyAqbWV0aCogdW5jaGFu
Z2VkLiAgRXhhbXBsZQotICAgdXNhZ2U6OgotCi0gICAgICBmcm9tIHNpeCBpbXBvcnQgZ2V0X3Vu
Ym91bmRfZnVuY3Rpb24KLQotICAgICAgY2xhc3MgWChvYmplY3QpOgotICAgICAgICAgIGRlZiBt
ZXRob2Qoc2VsZik6Ci0gICAgICAgICAgICAgIHBhc3MKLSAgICAgIG1ldGhvZF9mdW5jdGlvbiA9
IGdldF91bmJvdW5kX2Z1bmN0aW9uKFgubWV0aG9kKQotCi0KLS4uIGZ1bmN0aW9uOjogZ2V0X21l
dGhvZF9mdW5jdGlvbihtZXRoKQotCi0gICBHZXQgdGhlIGZ1bmN0aW9uIG91dCBvZiBtZXRob2Qg
b2JqZWN0ICptZXRoKi4KLQotCi0uLiBmdW5jdGlvbjo6IGdldF9tZXRob2Rfc2VsZihtZXRoKQot
Ci0gICBHZXQgdGhlIGBgc2VsZmBgIG9mIGJvdW5kIG1ldGhvZCAqbWV0aCouCi0KLQotLi4gZnVu
Y3Rpb246OiBnZXRfZnVuY3Rpb25fY2xvc3VyZShmdW5jKQotCi0gICBHZXQgdGhlIGNsb3N1cmUg
KGxpc3Qgb2YgY2VsbHMpIGFzc29jaWF0ZWQgd2l0aCAqZnVuYyouICBUaGlzIGlzIGVxdWl2YWxl
bnQKLSAgIHRvIGBgZnVuYy5fX2Nsb3N1cmVfX2BgIG9uIFB5dGhvbiAyLjYrIGFuZCBgYGZ1bmMu
ZnVuY19jbG9zdXJlYGAgb24gUHl0aG9uCi0gICAyLjUuCi0KLQotLi4gZnVuY3Rpb246OiBnZXRf
ZnVuY3Rpb25fY29kZShmdW5jKQotCi0gICBHZXQgdGhlIGNvZGUgb2JqZWN0IGFzc29jaWF0ZWQg
d2l0aCAqZnVuYyouICBUaGlzIGlzIGVxdWl2YWxlbnQgdG8KLSAgIGBgZnVuYy5fX2NvZGVfX2Bg
IG9uIFB5dGhvbiAyLjYrIGFuZCBgYGZ1bmMuZnVuY19jb2RlYGAgb24gUHl0aG9uIDIuNS4KLQot
Ci0uLiBmdW5jdGlvbjo6IGdldF9mdW5jdGlvbl9kZWZhdWx0cyhmdW5jKQotCi0gICBHZXQgdGhl
IGRlZmF1bHRzIHR1cGxlIGFzc29jaWF0ZWQgd2l0aCAqZnVuYyouICBUaGlzIGlzIGVxdWl2YWxl
bnQgdG8KLSAgIGBgZnVuYy5fX2RlZmF1bHRzX19gYCBvbiBQeXRob24gMi42KyBhbmQgYGBmdW5j
LmZ1bmNfZGVmYXVsdHNgYCBvbiBQeXRob24KLSAgIDIuNS4KLQotCi0uLiBmdW5jdGlvbjo6IGdl
dF9mdW5jdGlvbl9nbG9iYWxzKGZ1bmMpCi0KLSAgIEdldCB0aGUgZ2xvYmFscyBvZiAqZnVuYyou
ICBUaGlzIGlzIGVxdWl2YWxlbnQgdG8gYGBmdW5jLl9fZ2xvYmFsc19fYGAgb24KLSAgIFB5dGhv
biAyLjYrIGFuZCBgYGZ1bmMuZnVuY19nbG9iYWxzYGAgb24gUHl0aG9uIDIuNS4KLQotCi0uLiBm
dW5jdGlvbjo6IG5leHQoaXQpCi0gICAgICAgICAgICAgIGFkdmFuY2VfaXRlcmF0b3IoaXQpCi0K
LSAgIEdldCB0aGUgbmV4dCBpdGVtIG9mIGl0ZXJhdG9yICppdCouICA6ZXhjOmBweTM6U3RvcEl0
ZXJhdGlvbmAgaXMgcmFpc2VkIGlmCi0gICB0aGUgaXRlcmF0b3IgaXMgZXhoYXVzdGVkLiAgVGhp
cyBpcyBhIHJlcGxhY2VtZW50IGZvciBjYWxsaW5nIGBgaXQubmV4dCgpYGAKLSAgIGluIFB5dGhv
biAyIGFuZCBgYG5leHQoaXQpYGAgaW4gUHl0aG9uIDMuCi0KLQotLi4gZnVuY3Rpb246OiBjYWxs
YWJsZShvYmopCi0KLSAgIENoZWNrIGlmICpvYmoqIGNhbiBiZSBjYWxsZWQuICBOb3RlIGBgY2Fs
bGFibGVgYCBoYXMgcmV0dXJuZWQgaW4gUHl0aG9uIDMuMiwKLSAgIHNvIHVzaW5nIHNpeCdzIHZl
cnNpb24gaXMgb25seSBuZWNlc3Nhcnkgd2hlbiBzdXBwb3J0aW5nIFB5dGhvbiAzLjAgb3IgMy4x
LgotCi0KLS4uIGZ1bmN0aW9uOjogaXRlcmtleXMoZGljdGlvbmFyeSwgKiprd2FyZ3MpCi0KLSAg
IFJldHVybnMgYW4gaXRlcmF0b3Igb3ZlciAqZGljdGlvbmFyeSpcJ3Mga2V5cy4gVGhpcyByZXBs
YWNlcwotICAgYGBkaWN0aW9uYXJ5Lml0ZXJrZXlzKClgYCBvbiBQeXRob24gMiBhbmQgYGBkaWN0
aW9uYXJ5LmtleXMoKWBgIG9uCi0gICBQeXRob24gMy4gICprd2FyZ3MqIGFyZSBwYXNzZWQgdGhy
b3VnaCB0byB0aGUgdW5kZXJseWluZyBtZXRob2QuCi0KLQotLi4gZnVuY3Rpb246OiBpdGVydmFs
dWVzKGRpY3Rpb25hcnksICoqa3dhcmdzKQotCi0gICBSZXR1cm5zIGFuIGl0ZXJhdG9yIG92ZXIg
KmRpY3Rpb25hcnkqXCdzIHZhbHVlcy4gVGhpcyByZXBsYWNlcwotICAgYGBkaWN0aW9uYXJ5Lml0
ZXJ2YWx1ZXMoKWBgIG9uIFB5dGhvbiAyIGFuZCBgYGRpY3Rpb25hcnkudmFsdWVzKClgYCBvbgot
ICAgUHl0aG9uIDMuICAqa3dhcmdzKiBhcmUgcGFzc2VkIHRocm91Z2ggdG8gdGhlIHVuZGVybHlp
bmcgbWV0aG9kLgotCi0KLS4uIGZ1bmN0aW9uOjogaXRlcml0ZW1zKGRpY3Rpb25hcnksICoqa3dh
cmdzKQotCi0gICBSZXR1cm5zIGFuIGl0ZXJhdG9yIG92ZXIgKmRpY3Rpb25hcnkqXCdzIGl0ZW1z
LiBUaGlzIHJlcGxhY2VzCi0gICBgYGRpY3Rpb25hcnkuaXRlcml0ZW1zKClgYCBvbiBQeXRob24g
MiBhbmQgYGBkaWN0aW9uYXJ5Lml0ZW1zKClgYCBvbgotICAgUHl0aG9uIDMuICAqa3dhcmdzKiBh
cmUgcGFzc2VkIHRocm91Z2ggdG8gdGhlIHVuZGVybHlpbmcgbWV0aG9kLgotCi0KLS4uIGZ1bmN0
aW9uOjogaXRlcmxpc3RzKGRpY3Rpb25hcnksICoqa3dhcmdzKQotCi0gICBDYWxscyBgYGRpY3Rp
b25hcnkuaXRlcmxpc3RzKClgYCBvbiBQeXRob24gMiBhbmQgYGBkaWN0aW9uYXJ5Lmxpc3RzKClg
YCBvbgotICAgUHl0aG9uIDMuICBObyBidWlsdGluIFB5dGhvbiBtYXBwaW5nIHR5cGUgaGFzIHN1
Y2ggYSBtZXRob2Q7IHRoaXMgbWV0aG9kIGlzCi0gICBpbnRlbmRlZCBmb3IgdXNlIHdpdGggbXVs
dGktdmFsdWVkIGRpY3Rpb25hcmllcyBsaWtlIGBXZXJremV1ZydzCi0gICA8aHR0cDovL3dlcmt6
ZXVnLnBvY29vLm9yZy9kb2NzL2RhdGFzdHJ1Y3R1cmVzLyN3ZXJremV1Zy5kYXRhc3RydWN0dXJl
cy5NdWx0aURpY3Q+YF8uCi0gICAqa3dhcmdzKiBhcmUgcGFzc2VkIHRocm91Z2ggdG8gdGhlIHVu
ZGVybHlpbmcgbWV0aG9kLgotCi0KLS4uIGZ1bmN0aW9uOjogdmlld2tleXMoZGljdGlvbmFyeSkK
LQotICAgUmV0dXJuIGEgdmlldyBvdmVyICpkaWN0aW9uYXJ5KlwncyBrZXlzLiBUaGlzIHJlcGxh
Y2VzCi0gICA6bWV0aDpgcHkyOmRpY3Qudmlld2tleXNgIG9uIFB5dGhvbiAyLjcgYW5kIDptZXRo
OmBweTM6ZGljdC5rZXlzYCBvbgotICAgUHl0aG9uIDMuCi0KLQotLi4gZnVuY3Rpb246OiB2aWV3
dmFsdWVzKGRpY3Rpb25hcnkpCi0KLSAgIFJldHVybiBhIHZpZXcgb3ZlciAqZGljdGlvbmFyeSpc
J3MgdmFsdWVzLiBUaGlzIHJlcGxhY2VzCi0gICA6bWV0aDpgcHkyOmRpY3Qudmlld3ZhbHVlc2Ag
b24gUHl0aG9uIDIuNyBhbmQgOm1ldGg6YHB5MzpkaWN0LnZhbHVlc2Agb24KLSAgIFB5dGhvbiAz
LgotCi0KLS4uIGZ1bmN0aW9uOjogdmlld2l0ZW1zKGRpY3Rpb25hcnkpCi0KLSAgIFJldHVybiBh
IHZpZXcgb3ZlciAqZGljdGlvbmFyeSpcJ3MgaXRlbXMuIFRoaXMgcmVwbGFjZXMKLSAgIDptZXRo
OmBweTI6ZGljdC52aWV3aXRlbXNgIG9uIFB5dGhvbiAyLjcgYW5kIDptZXRoOmBweTM6ZGljdC5p
dGVtc2Agb24KLSAgIFB5dGhvbiAzLgotCi0KLS4uIGZ1bmN0aW9uOjogY3JlYXRlX2JvdW5kX21l
dGhvZChmdW5jLCBvYmopCi0KLSAgIFJldHVybiBhIG1ldGhvZCBvYmplY3Qgd3JhcHBpbmcgKmZ1
bmMqIGFuZCBib3VuZCB0byAqb2JqKi4gIE9uIGJvdGggUHl0aG9uIDIKLSAgIGFuZCAzLCB0aGlz
IHdpbGwgcmV0dXJuIGEgOmZ1bmM6YHB5Mzp0eXBlcy5NZXRob2RUeXBlYCBvYmplY3QuICBUaGUg
cmVhc29uCi0gICB0aGlzIHdyYXBwZXIgZXhpc3RzIGlzIHRoYXQgb24gUHl0aG9uIDIsIHRoZSBg
YE1ldGhvZFR5cGVgYCBjb25zdHJ1Y3RvcgotICAgcmVxdWlyZXMgdGhlICpvYmoqJ3MgY2xhc3Mg
dG8gYmUgcGFzc2VkLgotCi0KLS4uIGNsYXNzOjogSXRlcmF0b3IKLQotICAgQSBjbGFzcyBmb3Ig
bWFraW5nIHBvcnRhYmxlIGl0ZXJhdG9ycy4gVGhlIGludGVudGlvbiBpcyB0aGF0IGl0IGJlIHN1
YmNsYXNzZWQKLSAgIGFuZCBzdWJjbGFzc2VzIHByb3ZpZGUgYSBgYF9fbmV4dF9fYGAgbWV0aG9k
LiBJbiBQeXRob24gMiwgOmNsYXNzOmBJdGVyYXRvcmAKLSAgIGhhcyBvbmUgbWV0aG9kOiBgYG5l
eHRgYC4gSXQgc2ltcGx5IGRlbGVnYXRlcyB0byBgYF9fbmV4dF9fYGAuIEFuIGFsdGVybmF0ZQot
ICAgd2F5IHRvIGRvIHRoaXMgd291bGQgYmUgdG8gc2ltcGx5IGFsaWFzIGBgbmV4dGBgIHRvIGBg
X19uZXh0X19gYC4gSG93ZXZlciwKLSAgIHRoaXMgaW50ZXJhY3RzIGJhZGx5IHdpdGggc3ViY2xh
c3NlcyB0aGF0IG92ZXJyaWRlCi0gICBgYF9fbmV4dF9fYGAuIDpjbGFzczpgSXRlcmF0b3JgIGlz
IGVtcHR5IG9uIFB5dGhvbiAzLiAoSW4gZmFjdCwgaXQgaXMganVzdAotICAgYWxpYXNlZCB0byA6
Y2xhc3M6YHB5MzpvYmplY3RgLikKLQotCi0uLiBmdW5jdGlvbjo6IHdyYXBzKHdyYXBwZWQsIGFz
c2lnbmVkPWZ1bmN0b29scy5XUkFQUEVSX0FTU0lHTk1FTlRTLCB1cGRhdGVkPWZ1bmN0b29scy5X
UkFQUEVSX1VQREFURVMpCi0KLSAgIFRoaXMgaXMgZXhhY3RseSB0aGUgOmZ1bmM6YHB5MzpmdW5j
dG9vbHMud3JhcHNgIGRlY29yYXRvciwgYnV0IGl0IHNldHMgdGhlCi0gICBgYF9fd3JhcHBlZF9f
YGAgYXR0cmlidXRlIG9uIHdoYXQgaXQgZGVjb3JhdGVzIGFzIDpmdW5jOmBweTM6ZnVuY3Rvb2xz
LndyYXBzYAotICAgZG9lcyBvbiBQeXRob24gdmVyc2lvbnMgYWZ0ZXIgMy4yLgotCi0KLVN5bnRh
eCBjb21wYXRpYmlsaXR5Ci0+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+PgotCi1UaGVzZSBmdW5jdGlvbnMg
c21vb3RoIG92ZXIgb3BlcmF0aW9ucyB3aGljaCBoYXZlIGRpZmZlcmVudCBzeW50YXhlcyBiZXR3
ZWVuCi1QeXRob24gMiBhbmQgMy4KLQotCi0uLiBmdW5jdGlvbjo6IGV4ZWNfKGNvZGUsIGdsb2Jh
bHM9Tm9uZSwgbG9jYWxzPU5vbmUpCi0KLSAgIEV4ZWN1dGUgKmNvZGUqIGluIHRoZSBzY29wZSBv
ZiAqZ2xvYmFscyogYW5kICpsb2NhbHMqLiAgKmNvZGUqIGNhbiBiZSBhCi0gICBzdHJpbmcgb3Ig
YSBjb2RlIG9iamVjdC4gIElmICpnbG9iYWxzKiBvciAqbG9jYWxzKiBhcmUgbm90IGdpdmVuLCB0
aGV5IHdpbGwKLSAgIGRlZmF1bHQgdG8gdGhlIHNjb3BlIG9mIHRoZSBjYWxsZXIuICBJZiBqdXN0
ICpnbG9iYWxzKiBpcyBnaXZlbiwgaXQgd2lsbCBhbHNvCi0gICBiZSB1c2VkIGFzICpsb2NhbHMq
LgotCi0gICAuLiBub3RlOjoKLQotICAgICAgUHl0aG9uIDMncyA6ZnVuYzpgcHkzOmV4ZWNgIGRv
ZXNuJ3QgdGFrZSBrZXl3b3JkIGFyZ3VtZW50cywgc28gY2FsbGluZwotICAgICAgOmZ1bmM6YGV4
ZWNgIHdpdGggdGhlbSBzaG91bGQgYmUgYXZvaWRlZC4KLQotCi0uLiBmdW5jdGlvbjo6IHByaW50
XygqYXJncywgKiwgZmlsZT1zeXMuc3Rkb3V0LCBlbmQ9IlxcbiIsIHNlcD0iICIpCi0KLSAgIFBy
aW50ICphcmdzKiBpbnRvICpmaWxlKi4gIEVhY2ggYXJndW1lbnQgd2lsbCBiZSBzZXBhcmF0ZWQg
d2l0aCAqc2VwKiBhbmQKLSAgICplbmQqIHdpbGwgYmUgd3JpdHRlbiB0byB0aGUgZmlsZSBhZnRl
ciB0aGUgbGFzdCBhcmd1bWVudCBpcyBwcmludGVkLgotCi0gICAuLiBub3RlOjoKLQotICAgICAg
SW4gUHl0aG9uIDIsIHRoaXMgZnVuY3Rpb24gaW1pdGF0ZXMgUHl0aG9uIDMncyA6ZnVuYzpgcHkz
OnByaW50YCBieSBub3QKLSAgICAgIGhhdmluZyBzb2Z0c3BhY2Ugc3VwcG9ydC4gIElmIHlvdSBk
b24ndCBrbm93IHdoYXQgdGhhdCBpcywgeW91J3JlIHByb2JhYmx5Ci0gICAgICBvay4gOikKLQot
Ci0uLiBmdW5jdGlvbjo6IHJhaXNlX2Zyb20oZXhjX3ZhbHVlLCBleGNfdmFsdWVfZnJvbSkKLQot
ICAgUmFpc2UgYW4gZXhjZXB0aW9uIGZyb20gYSBjb250ZXh0LiAgT24gUHl0aG9uIDMsIHRoaXMg
aXMgZXF1aXZhbGVudCB0bwotICAgYGByYWlzZSBleGNfdmFsdWUgZnJvbSBleGNfdmFsdWVfZnJv
bWBgLiAgT24gUHl0aG9uIDIsIHdoaWNoIGRvZXMgbm90IHN1cHBvcnQKLSAgIGV4Y2VwdGlvbiBj
aGFpbmluZywgaXQgaXMgZXF1aXZhbGVudCB0byBgYHJhaXNlIGV4Y192YWx1ZWBgLgotCi0KLS4u
IGZ1bmN0aW9uOjogcmVyYWlzZShleGNfdHlwZSwgZXhjX3ZhbHVlLCBleGNfdHJhY2ViYWNrPU5v
bmUpCi0KLSAgIFJlcmFpc2UgYW4gZXhjZXB0aW9uLCBwb3NzaWJseSB3aXRoIGEgZGlmZmVyZW50
IHRyYWNlYmFjay4gIEluIHRoZSBzaW1wbGUKLSAgIGNhc2UsIGBgcmVyYWlzZSgqc3lzLmV4Y19p
bmZvKCkpYGAgd2l0aCBhbiBhY3RpdmUgZXhjZXB0aW9uIChpbiBhbiBleGNlcHQKLSAgIGJsb2Nr
KSByZXJhaXNlcyB0aGUgY3VycmVudCBleGNlcHRpb24gd2l0aCB0aGUgbGFzdCB0cmFjZWJhY2su
ICBBIGRpZmZlcmVudAotICAgdHJhY2ViYWNrIGNhbiBiZSBzcGVjaWZpZWQgd2l0aCB0aGUgKmV4
Y190cmFjZWJhY2sqIHBhcmFtZXRlci4gIE5vdGUgdGhhdAotICAgc2luY2UgdGhlIGV4Y2VwdGlv
biByZXJhaXNpbmcgaXMgZG9uZSB3aXRoaW4gdGhlIDpmdW5jOmByZXJhaXNlYCBmdW5jdGlvbiwK
LSAgIFB5dGhvbiB3aWxsIGF0dGFjaCB0aGUgY2FsbCBmcmFtZSBvZiA6ZnVuYzpgcmVyYWlzZWAg
dG8gd2hhdGV2ZXIgdHJhY2ViYWNrIGlzCi0gICByYWlzZWQuCi0KLQotLi4gZnVuY3Rpb246OiB3
aXRoX21ldGFjbGFzcyhtZXRhY2xhc3MsICpiYXNlcykKLQotICAgQ3JlYXRlIGEgbmV3IGNsYXNz
IHdpdGggYmFzZSBjbGFzc2VzICpiYXNlcyogYW5kIG1ldGFjbGFzcyAqbWV0YWNsYXNzKi4gIFRo
aXMKLSAgIGlzIGRlc2lnbmVkIHRvIGJlIHVzZWQgaW4gY2xhc3MgZGVjbGFyYXRpb25zIGxpa2Ug
dGhpczogOjoKLQotICAgICAgZnJvbSBzaXggaW1wb3J0IHdpdGhfbWV0YWNsYXNzCi0KLSAgICAg
IGNsYXNzIE1ldGEodHlwZSk6Ci0gICAgICAgICAgcGFzcwotCi0gICAgICBjbGFzcyBCYXNlKG9i
amVjdCk6Ci0gICAgICAgICAgcGFzcwotCi0gICAgICBjbGFzcyBNeUNsYXNzKHdpdGhfbWV0YWNs
YXNzKE1ldGEsIEJhc2UpKToKLSAgICAgICAgICBwYXNzCi0KLSAgIEFub3RoZXIgd2F5IHRvIHNl
dCBhIG1ldGFjbGFzcyBvbiBhIGNsYXNzIGlzIHdpdGggdGhlIDpmdW5jOmBhZGRfbWV0YWNsYXNz
YAotICAgZGVjb3JhdG9yLgotCi0KLS4uIGZ1bmN0aW9uOjogYWRkX21ldGFjbGFzcyhtZXRhY2xh
c3MpCi0KLSAgIENsYXNzIGRlY29yYXRvciB0aGF0IHJlcGxhY2VzIGEgbm9ybWFsbHktY29uc3Ry
dWN0ZWQgY2xhc3Mgd2l0aCBhCi0gICBtZXRhY2xhc3MtY29uc3RydWN0ZWQgb25lLiAgRXhhbXBs
ZSB1c2FnZTogOjoKLQotICAgICAgIEBhZGRfbWV0YWNsYXNzKE1ldGEpCi0gICAgICAgY2xhc3Mg
TXlDbGFzcyhvYmplY3QpOgotICAgICAgICAgICBwYXNzCi0KLSAgIFRoYXQgY29kZSBwcm9kdWNl
cyBhIGNsYXNzIGVxdWl2YWxlbnQgdG8gOjoKLQotICAgICAgIGNsYXNzIE15Q2xhc3Mob2JqZWN0
LCBtZXRhY2xhc3M9TWV0YSk6Ci0gICAgICAgICAgIHBhc3MKLQotICAgb24gUHl0aG9uIDMgb3Ig
OjoKLQotICAgICAgIGNsYXNzIE15Q2xhc3Mob2JqZWN0KToKLSAgICAgICAgICAgX19tZXRhY2xh
c3NfXyA9IE15TWV0YQotCi0gICBvbiBQeXRob24gMi4KLQotICAgTm90ZSB0aGF0IGNsYXNzIGRl
Y29yYXRvcnMgcmVxdWlyZSBQeXRob24gMi42LiBIb3dldmVyLCB0aGUgZWZmZWN0IG9mIHRoZQot
ICAgZGVjb3JhdG9yIGNhbiBiZSBlbXVsYXRlZCBvbiBQeXRob24gMi41IGxpa2Ugc286OgotCi0g
ICAgICAgY2xhc3MgTXlDbGFzcyhvYmplY3QpOgotICAgICAgICAgICBwYXNzCi0gICAgICAgTXlD
bGFzcyA9IGFkZF9tZXRhY2xhc3MoTWV0YSkoTXlDbGFzcykKLQotCi1CaW5hcnkgYW5kIHRleHQg
ZGF0YQotPj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4KLQotUHl0aG9uIDMgZW5mb3JjZXMgdGhlIGRpc3Rp
bmN0aW9uIGJldHdlZW4gYnl0ZSBzdHJpbmdzIGFuZCB0ZXh0IHN0cmluZ3MgZmFyIG1vcmUKLXJp
Z29yaW91c2x5IHRoYW4gUHl0aG9uIDIgZG9lczsgYmluYXJ5IGRhdGEgY2Fubm90IGJlIGF1dG9t
YXRpY2FsbHkgY29lcmNlZCB0bwotb3IgZnJvbSB0ZXh0IGRhdGEuICBzaXggcHJvdmlkZXMgc2V2
ZXJhbCBmdW5jdGlvbnMgdG8gYXNzaXN0IGluIGNsYXNzaWZ5aW5nCi1zdHJpbmcgZGF0YSBpbiBh
bGwgUHl0aG9uIHZlcnNpb25zLgotCi0KLS4uIGZ1bmN0aW9uOjogYihkYXRhKQotCi0gICBBICJm
YWtlIiBieXRlcyBsaXRlcmFsLiAgKmRhdGEqIHNob3VsZCBhbHdheXMgYmUgYSBub3JtYWwgc3Ry
aW5nIGxpdGVyYWwuICBJbgotICAgUHl0aG9uIDIsIDpmdW5jOmBiYCByZXR1cm5zIGEgOC1iaXQg
c3RyaW5nLiAgSW4gUHl0aG9uIDMsICpkYXRhKiBpcyBlbmNvZGVkCi0gICB3aXRoIHRoZSBsYXRp
bi0xIGVuY29kaW5nIHRvIGJ5dGVzLgotCi0KLSAgIC4uIG5vdGU6OgotCi0gICAgICBTaW5jZSBh
bGwgUHl0aG9uIHZlcnNpb25zIDIuNiBhbmQgYWZ0ZXIgc3VwcG9ydCB0aGUgYGBiYGAgcHJlZml4
LAotICAgICAgOmZ1bmM6YGJgLCBjb2RlIHdpdGhvdXQgMi41IHN1cHBvcnQgZG9lc24ndCBuZWVk
IDpmdW5jOmBiYC4KLQotCi0uLiBmdW5jdGlvbjo6IHUodGV4dCkKLQotICAgQSAiZmFrZSIgdW5p
Y29kZSBsaXRlcmFsLiAgKnRleHQqIHNob3VsZCBhbHdheXMgYmUgYSBub3JtYWwgc3RyaW5nIGxp
dGVyYWwuCi0gICBJbiBQeXRob24gMiwgOmZ1bmM6YHVgIHJldHVybnMgdW5pY29kZSwgYW5kIGlu
IFB5dGhvbiAzLCBhIHN0cmluZy4gIEFsc28sIGluCi0gICBQeXRob24gMiwgdGhlIHN0cmluZyBp
cyBkZWNvZGVkIHdpdGggdGhlIGBgdW5pY29kZS1lc2NhcGVgYCBjb2RlYywgd2hpY2gKLSAgIGFs
bG93cyB1bmljb2RlIGVzY2FwZXMgdG8gYmUgdXNlZCBpbiBpdC4KLQotCi0gICAuLiBub3RlOjoK
LQotICAgICAgSW4gUHl0aG9uIDMuMywgdGhlIGBgdWBgIHByZWZpeCBoYXMgYmVlbiByZWludHJv
ZHVjZWQuIENvZGUgdGhhdCBvbmx5Ci0gICAgICBzdXBwb3J0cyBQeXRob24gMyB2ZXJzaW9ucyBn
cmVhdGVyIHRoYW4gMy4zIHRodXMgZG9lcyBub3QgbmVlZAotICAgICAgOmZ1bmM6YHVgLgotCi0g
ICAuLiBub3RlOjoKLQotICAgICAgT24gUHl0aG9uIDIsIDpmdW5jOmB1YCBkb2Vzbid0IGtub3cg
d2hhdCB0aGUgZW5jb2Rpbmcgb2YgdGhlIGxpdGVyYWwKLSAgICAgIGlzLiBFYWNoIGJ5dGUgaXMg
Y29udmVydGVkIGRpcmVjdGx5IHRvIHRoZSB1bmljb2RlIGNvZGVwb2ludCBvZiB0aGUgc2FtZQot
ICAgICAgdmFsdWUuIEJlY2F1c2Ugb2YgdGhpcywgaXQncyBvbmx5IHNhZmUgdG8gdXNlIDpmdW5j
OmB1YCB3aXRoIHN0cmluZ3Mgb2YKLSAgICAgIEFTQ0lJIGRhdGEuCi0KLQotLi4gZnVuY3Rpb246
OiB1bmljaHIoYykKLQotICAgUmV0dXJuIHRoZSAoVW5pY29kZSkgc3RyaW5nIHJlcHJlc2VudGlu
ZyB0aGUgY29kZXBvaW50ICpjKi4gIFRoaXMgaXMKLSAgIGVxdWl2YWxlbnQgdG8gOmZ1bmM6YHB5
Mjp1bmljaHJgIG9uIFB5dGhvbiAyIGFuZCA6ZnVuYzpgcHkzOmNocmAgb24gUHl0aG9uIDMuCi0K
LQotLi4gZnVuY3Rpb246OiBpbnQyYnl0ZShpKQotCi0gICBDb252ZXJ0cyAqaSogdG8gYSBieXRl
LiAgKmkqIG11c3QgYmUgaW4gYGByYW5nZSgwLCAyNTYpYGAuICBUaGlzIGlzCi0gICBlcXVpdmFs
ZW50IHRvIDpmdW5jOmBweTI6Y2hyYCBpbiBQeXRob24gMiBhbmQgYGBieXRlcygoaSwpKWBgIGlu
IFB5dGhvbiAzLgotCi0KLS4uIGZ1bmN0aW9uOjogYnl0ZTJpbnQoYnMpCi0KLSAgIENvbnZlcnRz
IHRoZSBmaXJzdCBieXRlIG9mICpicyogdG8gYW4gaW50ZWdlci4gIFRoaXMgaXMgZXF1aXZhbGVu
dCB0bwotICAgYGBvcmQoYnNbMF0pYGAgb24gUHl0aG9uIDIgYW5kIGBgYnNbMF1gYCBvbiBQeXRo
b24gMy4KLQotCi0uLiBmdW5jdGlvbjo6IGluZGV4Ynl0ZXMoYnVmLCBpKQotCi0gICBSZXR1cm4g
dGhlIGJ5dGUgYXQgaW5kZXggKmkqIG9mICpidWYqIGFzIGFuIGludGVnZXIuICBUaGlzIGlzIGVx
dWl2YWxlbnQgdG8KLSAgIGluZGV4aW5nIGEgYnl0ZXMgb2JqZWN0IGluIFB5dGhvbiAzLgotCi0K
LS4uIGZ1bmN0aW9uOjogaXRlcmJ5dGVzKGJ1ZikKLQotICAgUmV0dXJuIGFuIGl0ZXJhdG9yIG92
ZXIgYnl0ZXMgaW4gKmJ1ZiogYXMgaW50ZWdlcnMuICBUaGlzIGlzIGVxdWl2YWxlbnQgdG8KLSAg
IGEgYnl0ZXMgb2JqZWN0IGl0ZXJhdG9yIGluIFB5dGhvbiAzLgotCi0KLS4uIGRhdGE6OiBTdHJp
bmdJTwotCi0gICBUaGlzIGlzIGFuIGZha2UgZmlsZSBvYmplY3QgZm9yIHRleHR1YWwgZGF0YS4g
IEl0J3MgYW4gYWxpYXMgZm9yCi0gICA6Y2xhc3M6YHB5MjpTdHJpbmdJTy5TdHJpbmdJT2AgaW4g
UHl0aG9uIDIgYW5kIDpjbGFzczpgcHkzOmlvLlN0cmluZ0lPYCBpbgotICAgUHl0aG9uIDMuCi0K
LQotLi4gZGF0YTo6IEJ5dGVzSU8KLQotICAgVGhpcyBpcyBhIGZha2UgZmlsZSBvYmplY3QgZm9y
IGJpbmFyeSBkYXRhLiAgSW4gUHl0aG9uIDIsIGl0J3MgYW4gYWxpYXMgZm9yCi0gICA6Y2xhc3M6
YHB5MjpTdHJpbmdJTy5TdHJpbmdJT2AsIGJ1dCBpbiBQeXRob24gMywgaXQncyBhbiBhbGlhcyBm
b3IKLSAgIDpjbGFzczpgcHkzOmlvLkJ5dGVzSU9gLgotCi0KLVJlbmFtZWQgbW9kdWxlcyBhbmQg
YXR0cmlidXRlcyBjb21wYXRpYmlsaXR5Ci0+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+Pj4+
Pj4+Pj4+Pj4+Pj4+PgotCi0uLiBtb2R1bGU6OiBzaXgubW92ZXMKLSAgIDpzeW5vcHNpczogUmVu
YW1lZCBtb2R1bGVzIGFuZCBhdHRyaWJ1dGVzIGNvbXBhdGliaWxpdHkKLQotUHl0aG9uIDMgcmVv
cmdhbml6ZWQgdGhlIHN0YW5kYXJkIGxpYnJhcnkgYW5kIG1vdmVkIHNldmVyYWwgZnVuY3Rpb25z
IHRvCi1kaWZmZXJlbnQgbW9kdWxlcy4gIFNpeCBwcm92aWRlcyBhIGNvbnNpc3RlbnQgaW50ZXJm
YWNlIHRvIHRoZW0gdGhyb3VnaCB0aGUgZmFrZQotOm1vZDpgc2l4Lm1vdmVzYCBtb2R1bGUuICBG
b3IgZXhhbXBsZSwgdG8gbG9hZCB0aGUgbW9kdWxlIGZvciBwYXJzaW5nIEhUTUwgb24KLVB5dGhv
biAyIG9yIDMsIHdyaXRlOjoKLQotICAgZnJvbSBzaXgubW92ZXMgaW1wb3J0IGh0bWxfcGFyc2Vy
Ci0KLVNpbWlsYXJseSwgdG8gZ2V0IHRoZSBmdW5jdGlvbiB0byByZWxvYWQgbW9kdWxlcywgd2hp
Y2ggd2FzIG1vdmVkIGZyb20gdGhlCi1idWlsdGluIG1vZHVsZSB0byB0aGUgYGBpbXBgYCBtb2R1
bGUsIHVzZTo6Ci0KLSAgIGZyb20gc2l4Lm1vdmVzIGltcG9ydCByZWxvYWRfbW9kdWxlCi0KLUZv
ciB0aGUgbW9zdCBwYXJ0LCA6bW9kOmBzaXgubW92ZXNgIGFsaWFzZXMgYXJlIHRoZSBuYW1lcyBv
ZiB0aGUgbW9kdWxlcyBpbgotUHl0aG9uIDMuICBXaGVuIHRoZSBuZXcgUHl0aG9uIDMgbmFtZSBp
cyBhIHBhY2thZ2UsIHRoZSBjb21wb25lbnRzIG9mIHRoZSBuYW1lCi1hcmUgc2VwYXJhdGVkIGJ5
IHVuZGVyc2NvcmVzLiAgRm9yIGV4YW1wbGUsIGBgaHRtbC5wYXJzZXJgYCBiZWNvbWVzCi1gYGh0
bWxfcGFyc2VyYGAuICBJbiBzb21lIGNhc2VzIHdoZXJlIHNldmVyYWwgbW9kdWxlcyBoYXZlIGJl
ZW4gY29tYmluZWQsIHRoZQotUHl0aG9uIDIgbmFtZSBpcyByZXRhaW5lZC4gIFRoaXMgaXMgc28g
dGhlIGFwcHJvcHJpYXRlIG1vZHVsZXMgY2FuIGJlIGZvdW5kIHdoZW4KLXJ1bm5pbmcgb24gUHl0
aG9uIDIuICBGb3IgZXhhbXBsZSwgYGBCYXNlSFRUUFNlcnZlcmBgIHdoaWNoIGlzIGluCi1gYGh0
dHAuc2VydmVyYGAgaW4gUHl0aG9uIDMgaXMgYWxpYXNlZCBhcyBgYEJhc2VIVFRQU2VydmVyYGAu
Ci0KLVNvbWUgbW9kdWxlcyB3aGljaCBoYWQgdHdvIGltcGxlbWVudGF0aW9ucyBoYXZlIGJlZW4g
bWVyZ2VkIGluIFB5dGhvbiAzLiAgRm9yCi1leGFtcGxlLCBgYGNQaWNrbGVgYCBubyBsb25nZXIg
ZXhpc3RzIGluIFB5dGhvbiAzOyBpdCB3YXMgbWVyZ2VkIHdpdGgKLWBgcGlja2xlYGAuICBJbiB0
aGVzZSBjYXNlcywgZmV0Y2hpbmcgdGhlIGZhc3QgdmVyc2lvbiB3aWxsIGxvYWQgdGhlIGZhc3Qg
b25lIG9uCi1QeXRob24gMiBhbmQgdGhlIG1lcmdlZCBtb2R1bGUgaW4gUHl0aG9uIDMuCi0KLVRo
ZSA6bW9kOmBweTI6dXJsbGliYCwgOm1vZDpgcHkyOnVybGxpYjJgLCBhbmQgOm1vZDpgcHkyOnVy
bHBhcnNlYCBtb2R1bGVzIGhhdmUKLWJlZW4gY29tYmluZWQgaW4gdGhlIDptb2Q6YHB5Mzp1cmxs
aWJgIHBhY2thZ2UgaW4gUHl0aG9uIDMuICBUaGUKLTptb2Q6YHNpeC5tb3Zlcy51cmxsaWJgIHBh
Y2thZ2UgaXMgYSB2ZXJzaW9uLWluZGVwZW5kZW50IGxvY2F0aW9uIGZvciB0aGlzCi1mdW5jdGlv
bmFsaXR5OyBpdHMgc3RydWN0dXJlIG1pbWljcyB0aGUgc3RydWN0dXJlIG9mIHRoZSBQeXRob24g
MwotOm1vZDpgcHkzOnVybGxpYmAgcGFja2FnZS4KLQotLi4gbm90ZTo6Ci0KLSAgIEluIG9yZGVy
IHRvIG1ha2UgaW1wb3J0cyBvZiB0aGUgZm9ybTo6Ci0KLSAgICAgZnJvbSBzaXgubW92ZXMuY1Bp
Y2tsZSBpbXBvcnQgbG9hZHMKLQotICAgd29yaywgc2l4IHBsYWNlcyBzcGVjaWFsIHByb3h5IG9i
amVjdHMgaW4gaW4gOmRhdGE6YHB5MzpzeXMubW9kdWxlc2AuIFRoZXNlCi0gICBwcm94aWVzIGxh
emlseSBsb2FkIHRoZSB1bmRlcmx5aW5nIG1vZHVsZSB3aGVuIGFuIGF0dHJpYnV0ZSBpcyBmZXRj
aGVkLiBUaGlzCi0gICB3aWxsIGZhaWwgaWYgdGhlIHVuZGVybHlpbmcgbW9kdWxlIGlzIG5vdCBh
dmFpbGFibGUgaW4gdGhlIFB5dGhvbgotICAgaW50ZXJwcmV0ZXIuIEZvciBleGFtcGxlLCBgYHN5
cy5tb2R1bGVzWyJzaXgubW92ZXMud2lucmVnIl0uTG9hZEtleWBgIHdvdWxkCi0gICBmYWlsIG9u
IGFueSBub24tV2luZG93cyBwbGF0Zm9ybS4gVW5mb3J0dW5hdGVseSwgc29tZSBhcHBsaWNhdGlv
bnMgdHJ5IHRvCi0gICBsb2FkIGF0dHJpYnV0ZXMgb24gZXZlcnkgbW9kdWxlIGluIDpkYXRhOmBw
eTM6c3lzLm1vZHVsZXNgLiBzaXggbWl0aWdhdGVzCi0gICB0aGlzIHByb2JsZW0gZm9yIHNvbWUg
YXBwbGljYXRpb25zIGJ5IHByZXRlbmRpbmcgYXR0cmlidXRlcyBvbiB1bmltcG9ydGFibGUKLSAg
IG1vZHVsZXMgZG9uJ3QgZXhpc3QuIFRoaXMgaGFjayBkb2Vzbid0IHdvcmsgaW4gZXZlcnkgY2Fz
ZSwgdGhvdWdoLiBJZiB5b3UgYXJlCi0gICBlbmNvdW50ZXJpbmcgcHJvYmxlbXMgd2l0aCB0aGUg
bGF6eSBtb2R1bGVzIGFuZCBkb24ndCB1c2UgYW55IGZyb20gaW1wb3J0cwotICAgZGlyZWN0bHkg
ZnJvbSBgYHNpeC5tb3Zlc2BgIG1vZHVsZXMsIHlvdSBjYW4gd29ya2Fyb3VuZCB0aGUgaXNzdWUg
YnkgcmVtb3ZpbmcKLSAgIHRoZSBzaXggcHJveHkgbW9kdWxlczo6Ci0KLSAgICAgZCA9IFtuYW1l
IGZvciBuYW1lIGluIHN5cy5tb2R1bGVzIGlmIG5hbWUuc3RhcnRzd2l0aCgic2l4Lm1vdmVzLiIp
XQotICAgICBmb3IgbmFtZSBpbiBkOgotICAgICAgICAgZGVsIHN5cy5tb2R1bGVzW25hbWVdCi0K
LVN1cHBvcnRlZCByZW5hbWVzOgotCi0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLSsKLXwgTmFtZSAgICAgICAgICAgICAgICAgICAgICAgICB8IFB5dGhv
biAyIG5hbWUgICAgICAgICAgICAgICAgICAgICAgIHwgUHl0aG9uIDMgbmFtZSAgICAgICAgICAg
ICAgICAgICAgICAgfAotKz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSs9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Kz09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0rCi18IGBgYnVpbHRpbnNgYCAgICAgICAgICAgICAgICAgfCA6bW9kOmBweTI6X19i
dWlsdGluX19gICAgICAgICAgICAgICB8IDptb2Q6YHB5MzpidWlsdGluc2AgICAgICAgICAgICAg
ICAgIHwKLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
KwotfCBgYGNvbmZpZ3BhcnNlcmBgICAgICAgICAgICAgIHwgOm1vZDpgcHkyOkNvbmZpZ1BhcnNl
cmAgICAgICAgICAgICAgfCA6bW9kOmBweTM6Y29uZmlncGFyc2VyYCAgICAgICAgICAgICB8Ci0r
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsKLXwgYGBj
b3B5cmVnYGAgICAgICAgICAgICAgICAgICB8IDptb2Q6YHB5Mjpjb3B5X3JlZ2AgICAgICAgICAg
ICAgICAgIHwgOm1vZDpgcHkzOmNvcHlyZWdgICAgICAgICAgICAgICAgICAgfAotKy0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rCi18IGBgY1BpY2tsZWBg
ICAgICAgICAgICAgICAgICAgfCA6bW9kOmBweTI6Y1BpY2tsZWAgICAgICAgICAgICAgICAgICB8
IDptb2Q6YHB5MzpwaWNrbGVgICAgICAgICAgICAgICAgICAgIHwKLSstLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKwotfCBgYGNTdHJpbmdJT2BgICAgICAg
ICAgICAgICAgIHwgOmZ1bmM6YHB5MjpjU3RyaW5nSU8uU3RyaW5nSU9gICAgICAgfCA6Y2xhc3M6
YHB5Mzppby5TdHJpbmdJT2AgICAgICAgICAgICB8Ci0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsKLXwgYGBkYm1fZ251YGAgICAgICAgICAgICAgICAg
ICB8IDpmdW5jOmBweTI6Z2RibWAgICAgICAgICAgICAgICAgICAgIHwgOmNsYXNzOmBweTM6ZGJt
LmdudWAgICAgICAgICAgICAgICAgfAotKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSst
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0rCi18IGBgX2R1bW15X3RocmVhZGBgICAgICAgICAgICAgfCA6bW9k
OmBweTI6ZHVtbXlfdGhyZWFkYCAgICAgICAgICAgICB8IDptb2Q6YHB5MzpfZHVtbXlfdGhyZWFk
YCAgICAgICAgICAgIHwKLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tKwotfCBgYGVtYWlsX21pbWVfbXVsdGlwYXJ0YGAgICAgIHwgOm1vZDpgcHkyOmVt
YWlsLk1JTUVNdWx0aXBhcnRgICAgICAgfCA6bW9kOmBweTM6ZW1haWwubWltZS5tdWx0aXBhcnRg
ICAgICB8Ci0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LSsKLXwgYGBlbWFpbF9taW1lX25vbm11bHRpcGFydGBgICB8IDptb2Q6YHB5MjplbWFpbC5NSU1F
Tm9uTXVsdGlwYXJ0YCAgIHwgOm1vZDpgcHkzOmVtYWlsLm1pbWUubm9ubXVsdGlwYXJ0YCAgfAot
Ky0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rCi18IGBg
ZW1haWxfbWltZV90ZXh0YGAgICAgICAgICAgfCA6bW9kOmBweTI6ZW1haWwuTUlNRVRleHRgICAg
ICAgICAgICB8IDptb2Q6YHB5MzplbWFpbC5taW1lLnRleHRgICAgICAgICAgIHwKLSstLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKwotfCBgYGVtYWlsX21p
bWVfYmFzZWBgICAgICAgICAgIHwgOm1vZDpgcHkyOmVtYWlsLk1JTUVCYXNlYCAgICAgICAgICAg
fCA6bW9kOmBweTM6ZW1haWwubWltZS5iYXNlYCAgICAgICAgICB8Ci0rLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsKLXwgYGBmaWx0ZXJgYCAgICAgICAg
ICAgICAgICAgICB8IDpmdW5jOmBweTI6aXRlcnRvb2xzLmlmaWx0ZXJgICAgICAgIHwgOmZ1bmM6
YHB5MzpmaWx0ZXJgICAgICAgICAgICAgICAgICAgfAotKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rCi18IGBgZmlsdGVyZmFsc2VgYCAgICAgICAgICAg
ICAgfCA6ZnVuYzpgcHkyOml0ZXJ0b29scy5pZmlsdGVyZmFsc2VgICB8IDpmdW5jOmBweTM6aXRl
cnRvb2xzLmZpbHRlcmZhbHNlYCAgIHwKLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0r
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tKwotfCBgYGh0dHBfY29va2llamFyYGAgICAgICAgICAgIHwgOm1v
ZDpgcHkyOmNvb2tpZWxpYmAgICAgICAgICAgICAgICAgfCA6bW9kOmBweTM6aHR0cC5jb29raWVq
YXJgICAgICAgICAgICB8Ci0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLSsKLXwgYGBodHRwX2Nvb2tpZXNgYCAgICAgICAgICAgICB8IDptb2Q6YHB5MjpD
b29raWVgICAgICAgICAgICAgICAgICAgIHwgOm1vZDpgcHkzOmh0dHAuY29va2llc2AgICAgICAg
ICAgICAgfAotKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0rCi18IGBgaHRtbF9lbnRpdGllc2BgICAgICAgICAgICAgfCA6bW9kOmBweTI6aHRtbGVudGl0
eWRlZnNgICAgICAgICAgICB8IDptb2Q6YHB5MzpodG1sLmVudGl0aWVzYCAgICAgICAgICAgIHwK
LSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKwotfCBg
YGh0bWxfcGFyc2VyYGAgICAgICAgICAgICAgIHwgOm1vZDpgcHkyOkhUTUxQYXJzZXJgICAgICAg
ICAgICAgICAgfCA6bW9kOmBweTM6aHRtbC5wYXJzZXJgICAgICAgICAgICAgICB8Ci0rLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsKLXwgYGBodHRwX2Ns
aWVudGBgICAgICAgICAgICAgICB8IDptb2Q6YHB5MjpodHRwbGliYCAgICAgICAgICAgICAgICAg
IHwgOm1vZDpgcHkzOmh0dHAuY2xpZW50YCAgICAgICAgICAgICAgfAotKy0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rCi18IGBgQmFzZUhUVFBTZXJ2ZXJg
YCAgICAgICAgICAgfCA6bW9kOmBweTI6QmFzZUhUVFBTZXJ2ZXJgICAgICAgICAgICB8IDptb2Q6
YHB5MzpodHRwLnNlcnZlcmAgICAgICAgICAgICAgIHwKLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKwotfCBgYENHSUhUVFBTZXJ2ZXJgYCAgICAgICAg
ICAgIHwgOm1vZDpgcHkyOkNHSUhUVFBTZXJ2ZXJgICAgICAgICAgICAgfCA6bW9kOmBweTM6aHR0
cC5zZXJ2ZXJgICAgICAgICAgICAgICB8Ci0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
Ky0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLSsKLXwgYGBTaW1wbGVIVFRQU2VydmVyYGAgICAgICAgICB8IDpt
b2Q6YHB5MjpTaW1wbGVIVFRQU2VydmVyYCAgICAgICAgIHwgOm1vZDpgcHkzOmh0dHAuc2VydmVy
YCAgICAgICAgICAgICAgfAotKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0rCi18IGBgaW5wdXRgYCAgICAgICAgICAgICAgICAgICAgfCA6ZnVuYzpgcHky
OnJhd19pbnB1dGAgICAgICAgICAgICAgICB8IDpmdW5jOmBweTM6aW5wdXRgICAgICAgICAgICAg
ICAgICAgIHwKLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tKwotfCBgYGludGVybmBgICAgICAgICAgICAgICAgICAgIHwgOmZ1bmM6YHB5MjppbnRlcm5g
ICAgICAgICAgICAgICAgICAgfCA6ZnVuYzpgcHkzOnN5cy5pbnRlcm5gICAgICAgICAgICAgICB8
Ci0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsKLXwg
YGBtYXBgYCAgICAgICAgICAgICAgICAgICAgICB8IDpmdW5jOmBweTI6aXRlcnRvb2xzLmltYXBg
ICAgICAgICAgIHwgOmZ1bmM6YHB5MzptYXBgICAgICAgICAgICAgICAgICAgICAgfAotKy0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rCi18IGBgcXVldWVg
YCAgICAgICAgICAgICAgICAgICAgfCA6bW9kOmBweTI6UXVldWVgICAgICAgICAgICAgICAgICAg
ICB8IDptb2Q6YHB5MzpxdWV1ZWAgICAgICAgICAgICAgICAgICAgIHwKLSstLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSst
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKwotfCBgYHJhbmdlYGAgICAgICAg
ICAgICAgICAgICAgIHwgOmZ1bmM6YHB5Mjp4cmFuZ2VgICAgICAgICAgICAgICAgICAgfCA6ZnVu
YzpgcHkzOnJhbmdlYCAgICAgICAgICAgICAgICAgICB8Ci0rLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsKLXwgYGByZWR1Y2VgYCAgICAgICAgICAgICAg
ICAgICB8IDpmdW5jOmBweTI6cmVkdWNlYCAgICAgICAgICAgICAgICAgIHwgOmZ1bmM6YHB5Mzpm
dW5jdG9vbHMucmVkdWNlYCAgICAgICAgfAotKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0rCi18IGBgcmVsb2FkX21vZHVsZWBgICAgICAgICAgICAgfCA6
ZnVuYzpgcHkyOnJlbG9hZGAgICAgICAgICAgICAgICAgICB8IDpmdW5jOmBweTM6aW1wLnJlbG9h
ZGAgICAgICAgICAgICAgIHwKLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tKwotfCBgYHJlcHJsaWJgYCAgICAgICAgICAgICAgICAgIHwgOm1vZDpgcHky
OnJlcHJgICAgICAgICAgICAgICAgICAgICAgfCA6bW9kOmBweTM6cmVwcmxpYmAgICAgICAgICAg
ICAgICAgICB8Ci0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLSsKLXwgYGBzaGxleF9xdW90ZWBgICAgICAgICAgICAgICB8IDptb2Q6YHB5MjpwaXBlcy5x
dW90ZWAgICAgICAgICAgICAgIHwgOm1vZDpgcHkzOnNobGV4LnF1b3RlYCAgICAgICAgICAgICAg
fAotKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rCi18
IGBgc29ja2V0c2VydmVyYGAgICAgICAgICAgICAgfCA6bW9kOmBweTI6U29ja2V0U2VydmVyYCAg
ICAgICAgICAgICB8IDptb2Q6YHB5Mzpzb2NrZXRzZXJ2ZXJgICAgICAgICAgICAgIHwKLSstLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKwotfCBgYF90aHJl
YWRgYCAgICAgICAgICAgICAgICAgIHwgOm1vZDpgcHkyOnRocmVhZGAgICAgICAgICAgICAgICAg
ICAgfCA6bW9kOmBweTM6X3RocmVhZGAgICAgICAgICAgICAgICAgICB8Ci0rLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0r
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsKLXwgYGB0a2ludGVyYGAgICAg
ICAgICAgICAgICAgICB8IDptb2Q6YHB5MjpUa2ludGVyYCAgICAgICAgICAgICAgICAgIHwgOm1v
ZDpgcHkzOnRraW50ZXJgICAgICAgICAgICAgICAgICAgfAotKy0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rCi18IGBgdGtpbnRlcl9kaWFsb2dgYCAgICAg
ICAgICAgfCA6bW9kOmBweTI6RGlhbG9nYCAgICAgICAgICAgICAgICAgICB8IDptb2Q6YHB5Mzp0
a2ludGVyLmRpYWxvZ2AgICAgICAgICAgIHwKLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tKwotfCBgYHRraW50ZXJfZmlsZWRpYWxvZ2BgICAgICAgIHwg
Om1vZDpgcHkyOkZpbGVEaWFsb2dgICAgICAgICAgICAgICAgfCA6bW9kOmBweTM6dGtpbnRlci5G
aWxlRGlhbG9nYCAgICAgICB8Ci0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLSsKLXwgYGB0a2ludGVyX3Njcm9sbGVkdGV4dGBgICAgICB8IDptb2Q6YHB5
MjpTY3JvbGxlZFRleHRgICAgICAgICAgICAgIHwgOm1vZDpgcHkzOnRraW50ZXIuc2Nyb2xsZWR0
ZXh0YCAgICAgfAotKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0rCi18IGBgdGtpbnRlcl9zaW1wbGVkaWFsb2dgYCAgICAgfCA6bW9kOmBweTI6U2ltcGxl
RGlhbG9nYCAgICAgICAgICAgICB8IDptb2Q6YHB5Mzp0a2ludGVyLnNpbXBsZWRpYWxvZ2AgICAg
IHwKLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKwot
fCBgYHRraW50ZXJfdHRrYGAgICAgICAgICAgICAgIHwgOm1vZDpgcHkyOnR0a2AgICAgICAgICAg
ICAgICAgICAgICAgfCA6bW9kOmBweTM6dGtpbnRlci50dGtgICAgICAgICAgICAgICB8Ci0rLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsKLXwgYGB0a2lu
dGVyX3RpeGBgICAgICAgICAgICAgICB8IDptb2Q6YHB5MjpUaXhgICAgICAgICAgICAgICAgICAg
ICAgIHwgOm1vZDpgcHkzOnRraW50ZXIudGl4YCAgICAgICAgICAgICAgfAotKy0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
Ky0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rCi18IGBgdGtpbnRlcl9jb25z
dGFudHNgYCAgICAgICAgfCA6bW9kOmBweTI6VGtjb25zdGFudHNgICAgICAgICAgICAgICB8IDpt
b2Q6YHB5Mzp0a2ludGVyLmNvbnN0YW50c2AgICAgICAgIHwKLSstLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKwotfCBgYHRraW50ZXJfZG5kYGAgICAgICAg
ICAgICAgIHwgOm1vZDpgcHkyOlRrZG5kYCAgICAgICAgICAgICAgICAgICAgfCA6bW9kOmBweTM6
dGtpbnRlci5kbmRgICAgICAgICAgICAgICB8Ci0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsKLXwgYGB0a2ludGVyX2NvbG9yY2hvb3NlcmBgICAgICB8
IDptb2Q6YHB5Mjp0a0NvbG9yQ2hvb3NlcmAgICAgICAgICAgIHwgOm1vZDpgcHkzOnRraW50ZXIu
Y29sb3JjaG9vc2VyYCAgICAgfAotKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0rCi18IGBgdGtpbnRlcl9jb21tb25kaWFsb2dgYCAgICAgfCA6bW9kOmBw
eTI6dGtDb21tb25EaWFsb2dgICAgICAgICAgICB8IDptb2Q6YHB5Mzp0a2ludGVyLmNvbW1vbmRp
YWxvZ2AgICAgIHwKLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tKwotfCBgYHRraW50ZXJfdGtmaWxlZGlhbG9nYGAgICAgIHwgOm1vZDpgcHkyOnRrRmls
ZURpYWxvZ2AgICAgICAgICAgICAgfCA6bW9kOmBweTM6dGtpbnRlci5maWxlZGlhbG9nYCAgICAg
ICB8Ci0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsK
LXwgYGB0a2ludGVyX2ZvbnRgYCAgICAgICAgICAgICB8IDptb2Q6YHB5Mjp0a0ZvbnRgICAgICAg
ICAgICAgICAgICAgIHwgOm1vZDpgcHkzOnRraW50ZXIuZm9udGAgICAgICAgICAgICAgfAotKy0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rCi18IGBgdGtp
bnRlcl9tZXNzYWdlYm94YGAgICAgICAgfCA6bW9kOmBweTI6dGtNZXNzYWdlQm94YCAgICAgICAg
ICAgICB8IDptb2Q6YHB5Mzp0a2ludGVyLm1lc3NhZ2Vib3hgICAgICAgIHwKLSstLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKwotfCBgYHRraW50ZXJfdGtz
aW1wbGVkaWFsb2dgYCAgIHwgOm1vZDpgcHkyOnRrU2ltcGxlRGlhbG9nYCAgICAgICAgICAgfCA6
bW9kOmBweTM6dGtpbnRlci5zaW1wbGVkaWFsb2dgICAgICB8Ci0rLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsKLXwgYGB1cmxsaWIucGFyc2VgYCAgICAg
ICAgICAgICB8IFNlZSA6bW9kOmBzaXgubW92ZXMudXJsbGliLnBhcnNlYCAgIHwgOm1vZDpgcHkz
OnVybGxpYi5wYXJzZWAgICAgICAgICAgICAgfAotKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rCi18IGBgdXJsbGliLmVycm9yYGAgICAgICAgICAgICAg
fCBTZWUgOm1vZDpgc2l4Lm1vdmVzLnVybGxpYi5lcnJvcmAgICB8IDptb2Q6YHB5Mzp1cmxsaWIu
ZXJyb3JgICAgICAgICAgICAgIHwKLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tKwotfCBgYHVybGxpYi5yZXF1ZXN0YGAgICAgICAgICAgIHwgU2VlIDpt
b2Q6YHNpeC5tb3Zlcy51cmxsaWIucmVxdWVzdGAgfCA6bW9kOmBweTM6dXJsbGliLnJlcXVlc3Rg
ICAgICAgICAgICB8Ci0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLSsKLXwgYGB1cmxsaWIucmVzcG9uc2VgYCAgICAgICAgICB8IFNlZSA6bW9kOmBzaXgu
bW92ZXMudXJsbGliLnJlc3BvbnNlYHwgOm1vZDpgcHkzOnVybGxpYi5yZXNwb25zZWAgICAgICAg
ICAgfAotKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0r
Ci18IGBgdXJsbGliLnJvYm90cGFyc2VyYGAgICAgICAgfCA6bW9kOmBweTI6cm9ib3RwYXJzZXJg
ICAgICAgICAgICAgICB8IDptb2Q6YHB5Mzp1cmxsaWIucm9ib3RwYXJzZXJgICAgICAgIHwKLSst
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKwotfCBgYHVy
bGxpYl9yb2JvdHBhcnNlcmBgICAgICAgIHwgOm1vZDpgcHkyOnJvYm90cGFyc2VyYCAgICAgICAg
ICAgICAgfCA6bW9kOmBweTM6dXJsbGliLnJvYm90cGFyc2VyYCAgICAgICB8Ci0rLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsKLXwgYGBVc2VyRGljdGBg
ICAgICAgICAgICAgICAgICB8IDpjbGFzczpgcHkyOlVzZXJEaWN0LlVzZXJEaWN0YCAgICAgIHwg
OmNsYXNzOmBweTM6Y29sbGVjdGlvbnMuVXNlckRpY3RgICAgfAotKy0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rCi18IGBgVXNlckxpc3RgYCAgICAgICAg
ICAgICAgICAgfCA6Y2xhc3M6YHB5MjpVc2VyTGlzdC5Vc2VyTGlzdGAgICAgICB8IDpjbGFzczpg
cHkzOmNvbGxlY3Rpb25zLlVzZXJMaXN0YCAgIHwKLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKwotfCBgYFVzZXJTdHJpbmdgYCAgICAgICAgICAgICAg
IHwgOmNsYXNzOmBweTI6VXNlclN0cmluZy5Vc2VyU3RyaW5nYCAgfCA6Y2xhc3M6YHB5Mzpjb2xs
ZWN0aW9ucy5Vc2VyU3RyaW5nYCB8Ci0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLSsKLXwgYGB3aW5yZWdgYCAgICAgICAgICAgICAgICAgICB8IDptb2Q6
YHB5Mjpfd2lucmVnYCAgICAgICAgICAgICAgICAgIHwgOm1vZDpgcHkzOndpbnJlZ2AgICAgICAg
ICAgICAgICAgICAgfAotKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0rCi18IGBgeG1scnBjX2NsaWVudGBgICAgICAgICAgICAgfCA6bW9kOmBweTI6eG1s
cnBjbGliYCAgICAgICAgICAgICAgICB8IDptb2Q6YHB5Mzp4bWxycGMuY2xpZW50YCAgICAgICAg
ICAgIHwKLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
KwotfCBgYHhtbHJwY19zZXJ2ZXJgYCAgICAgICAgICAgIHwgOm1vZDpgcHkyOlNpbXBsZVhNTFJQ
Q1NlcnZlcmAgICAgICAgfCA6bW9kOmBweTM6eG1scnBjLnNlcnZlcmAgICAgICAgICAgICB8Ci0r
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsKLXwgYGB4
cmFuZ2VgYCAgICAgICAgICAgICAgICAgICB8IDpmdW5jOmBweTI6eHJhbmdlYCAgICAgICAgICAg
ICAgICAgIHwgOmZ1bmM6YHB5MzpyYW5nZWAgICAgICAgICAgICAgICAgICAgfAotKy0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rCi18IGBgemlwYGAgICAg
ICAgICAgICAgICAgICAgICAgfCA6ZnVuYzpgcHkyOml0ZXJ0b29scy5pemlwYCAgICAgICAgICB8
IDpmdW5jOmBweTM6emlwYCAgICAgICAgICAgICAgICAgICAgIHwKLSstLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKwotfCBgYHppcF9sb25nZXN0YGAgICAg
ICAgICAgICAgIHwgOmZ1bmM6YHB5MjppdGVydG9vbHMuaXppcF9sb25nZXN0YCAgfCA6ZnVuYzpg
cHkzOml0ZXJ0b29scy56aXBfbG9uZ2VzdGAgICB8Ci0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsKLQotdXJsbGliIHBhcnNlCi08PDw8PDw8PDw8PDwK
LQotLi4gbW9kdWxlOjogc2l4Lm1vdmVzLnVybGxpYi5wYXJzZQotICAgOnN5bm9wc2lzOiBTdHVm
ZiBmcm9tIDptb2Q6YHB5Mjp1cmxwYXJzZWAgYW5kIDptb2Q6YHB5Mjp1cmxsaWJgIGluIFB5dGhv
biAyIGFuZCA6bW9kOmBweTM6dXJsbGliLnBhcnNlYCBpbiBQeXRob24gMwotCi1Db250YWlucyBm
dW5jdGlvbnMgZnJvbSBQeXRob24gMydzIDptb2Q6YHB5Mzp1cmxsaWIucGFyc2VgIGFuZCBQeXRo
b24gMidzOgotCi06bW9kOmBweTI6dXJscGFyc2VgOgotCi0qIDpmdW5jOmBweTI6dXJscGFyc2Uu
UGFyc2VSZXN1bHRgCi0qIDpmdW5jOmBweTI6dXJscGFyc2UuU3BsaXRSZXN1bHRgCi0qIDpmdW5j
OmBweTI6dXJscGFyc2UudXJscGFyc2VgCi0qIDpmdW5jOmBweTI6dXJscGFyc2UudXJsdW5wYXJz
ZWAKLSogOmZ1bmM6YHB5Mjp1cmxwYXJzZS5wYXJzZV9xc2AKLSogOmZ1bmM6YHB5Mjp1cmxwYXJz
ZS5wYXJzZV9xc2xgCi0qIDpmdW5jOmBweTI6dXJscGFyc2UudXJsam9pbmAKLSogOmZ1bmM6YHB5
Mjp1cmxwYXJzZS51cmxkZWZyYWdgCi0qIDpmdW5jOmBweTI6dXJscGFyc2UudXJsc3BsaXRgCi0q
IDpmdW5jOmBweTI6dXJscGFyc2UudXJsdW5zcGxpdGAKLSogOmZ1bmM6YHB5Mjp1cmxwYXJzZS5z
cGxpdHF1ZXJ5YAotKiA6ZnVuYzpgcHkyOnVybHBhcnNlLnVzZXNfZnJhZ21lbnRgCi0qIDpmdW5j
OmBweTI6dXJscGFyc2UudXNlc19uZXRsb2NgCi0qIDpmdW5jOmBweTI6dXJscGFyc2UudXNlc19w
YXJhbXNgCi0qIDpmdW5jOmBweTI6dXJscGFyc2UudXNlc19xdWVyeWAKLSogOmZ1bmM6YHB5Mjp1
cmxwYXJzZS51c2VzX3JlbGF0aXZlYAotCi1hbmQgOm1vZDpgcHkyOnVybGxpYmA6Ci0KLSogOmZ1
bmM6YHB5Mjp1cmxsaWIucXVvdGVgCi0qIDpmdW5jOmBweTI6dXJsbGliLnF1b3RlX3BsdXNgCi0q
IDpmdW5jOmBweTI6dXJsbGliLnNwbGl0dGFnYAotKiA6ZnVuYzpgcHkyOnVybGxpYi5zcGxpdHVz
ZXJgCi0qIDpmdW5jOmBweTI6dXJsbGliLnVucXVvdGVgCi0qIDpmdW5jOmBweTI6dXJsbGliLnVu
cXVvdGVfcGx1c2AKLSogOmZ1bmM6YHB5Mjp1cmxsaWIudXJsZW5jb2RlYAotCi0KLXVybGxpYiBl
cnJvcgotPDw8PDw8PDw8PDw8Ci0KLS4uIG1vZHVsZTo6IHNpeC5tb3Zlcy51cmxsaWIuZXJyb3IK
LSAgIDpzeW5vcHNpczogU3R1ZmYgZnJvbSA6bW9kOmBweTI6dXJsbGliYCBhbmQgOm1vZDpgcHky
OnVybGxpYjJgIGluIFB5dGhvbiAyIGFuZCA6bW9kOmBweTM6dXJsbGliLmVycm9yYCBpbiBQeXRo
b24gMwotCi1Db250YWlucyBleGNlcHRpb25zIGZyb20gUHl0aG9uIDMncyA6bW9kOmBweTM6dXJs
bGliLmVycm9yYCBhbmQgUHl0aG9uIDInczoKLQotOm1vZDpgcHkyOnVybGxpYmA6Ci0KLSogOmV4
YzpgcHkyOnVybGxpYi5Db250ZW50VG9vU2hvcnRFcnJvcmAKLQotYW5kIDptb2Q6YHB5Mjp1cmxs
aWIyYDoKLQotKiA6ZXhjOmBweTI6dXJsbGliMi5VUkxFcnJvcmAKLSogOmV4YzpgcHkyOnVybGxp
YjIuSFRUUEVycm9yYAotCi0KLXVybGxpYiByZXF1ZXN0Ci08PDw8PDw8PDw8PDw8PAotCi0uLiBt
b2R1bGU6OiBzaXgubW92ZXMudXJsbGliLnJlcXVlc3QKLSAgIDpzeW5vcHNpczogU3R1ZmYgZnJv
bSA6bW9kOmBweTI6dXJsbGliYCBhbmQgOm1vZDpgcHkyOnVybGxpYjJgIGluIFB5dGhvbiAyIGFu
ZCA6bW9kOmBweTM6dXJsbGliLnJlcXVlc3RgIGluIFB5dGhvbiAzCi0KLUNvbnRhaW5zIGl0ZW1z
IGZyb20gUHl0aG9uIDMncyA6bW9kOmBweTM6dXJsbGliLnJlcXVlc3RgIGFuZCBQeXRob24gMidz
OgotCi06bW9kOmBweTI6dXJsbGliYDoKLQotKiA6ZnVuYzpgcHkyOnVybGxpYi5wYXRobmFtZTJ1
cmxgCi0qIDpmdW5jOmBweTI6dXJsbGliLnVybDJwYXRobmFtZWAKLSogOmZ1bmM6YHB5Mjp1cmxs
aWIuZ2V0cHJveGllc2AKLSogOmZ1bmM6YHB5Mjp1cmxsaWIudXJscmV0cmlldmVgCi0qIDpmdW5j
OmBweTI6dXJsbGliLnVybGNsZWFudXBgCi0qIDpjbGFzczpgcHkyOnVybGxpYi5VUkxvcGVuZXJg
Ci0qIDpjbGFzczpgcHkyOnVybGxpYi5GYW5jeVVSTG9wZW5lcmAKLSogOmZ1bmM6YHB5Mjp1cmxs
aWIucHJveHlfYnlwYXNzYAotCi1hbmQgOm1vZDpgcHkyOnVybGxpYjJgOgotCi0qIDpmdW5jOmBw
eTI6dXJsbGliMi51cmxvcGVuYAotKiA6ZnVuYzpgcHkyOnVybGxpYjIuaW5zdGFsbF9vcGVuZXJg
Ci0qIDpmdW5jOmBweTI6dXJsbGliMi5idWlsZF9vcGVuZXJgCi0qIDpjbGFzczpgcHkyOnVybGxp
YjIuUmVxdWVzdGAKLSogOmNsYXNzOmBweTI6dXJsbGliMi5PcGVuZXJEaXJlY3RvcmAKLSogOmNs
YXNzOmBweTI6dXJsbGliMi5IVFRQRGVmYXVsdEVycm9ySGFuZGxlcmAKLSogOmNsYXNzOmBweTI6
dXJsbGliMi5IVFRQUmVkaXJlY3RIYW5kbGVyYAotKiA6Y2xhc3M6YHB5Mjp1cmxsaWIyLkhUVFBD
b29raWVQcm9jZXNzb3JgCi0qIDpjbGFzczpgcHkyOnVybGxpYjIuUHJveHlIYW5kbGVyYAotKiA6
Y2xhc3M6YHB5Mjp1cmxsaWIyLkJhc2VIYW5kbGVyYAotKiA6Y2xhc3M6YHB5Mjp1cmxsaWIyLkhU
VFBQYXNzd29yZE1ncmAKLSogOmNsYXNzOmBweTI6dXJsbGliMi5IVFRQUGFzc3dvcmRNZ3JXaXRo
RGVmYXVsdFJlYWxtYAotKiA6Y2xhc3M6YHB5Mjp1cmxsaWIyLkFic3RyYWN0QmFzaWNBdXRoSGFu
ZGxlcmAKLSogOmNsYXNzOmBweTI6dXJsbGliMi5IVFRQQmFzaWNBdXRoSGFuZGxlcmAKLSogOmNs
YXNzOmBweTI6dXJsbGliMi5Qcm94eUJhc2ljQXV0aEhhbmRsZXJgCi0qIDpjbGFzczpgcHkyOnVy
bGxpYjIuQWJzdHJhY3REaWdlc3RBdXRoSGFuZGxlcmAKLSogOmNsYXNzOmBweTI6dXJsbGliMi5I
VFRQRGlnZXN0QXV0aEhhbmRsZXJgCi0qIDpjbGFzczpgcHkyOnVybGxpYjIuUHJveHlEaWdlc3RB
dXRoSGFuZGxlcmAKLSogOmNsYXNzOmBweTI6dXJsbGliMi5IVFRQSGFuZGxlcmAKLSogOmNsYXNz
OmBweTI6dXJsbGliMi5IVFRQU0hhbmRsZXJgCi0qIDpjbGFzczpgcHkyOnVybGxpYjIuRmlsZUhh
bmRsZXJgCi0qIDpjbGFzczpgcHkyOnVybGxpYjIuRlRQSGFuZGxlcmAKLSogOmNsYXNzOmBweTI6
dXJsbGliMi5DYWNoZUZUUEhhbmRsZXJgCi0qIDpjbGFzczpgcHkyOnVybGxpYjIuVW5rbm93bkhh
bmRsZXJgCi0qIDpjbGFzczpgcHkyOnVybGxpYjIuSFRUUEVycm9yUHJvY2Vzc29yYAotCi0KLXVy
bGxpYiByZXNwb25zZQotPDw8PDw8PDw8PDw8PDw8Ci0KLS4uIG1vZHVsZTo6IHNpeC5tb3Zlcy51
cmxsaWIucmVzcG9uc2UKLSAgIDpzeW5vcHNpczogU3R1ZmYgZnJvbSA6bW9kOmBweTI6dXJsbGli
YCBpbiBQeXRob24gMiBhbmQgOm1vZDpgcHkzOnVybGxpYi5yZXNwb25zZWAgaW4gUHl0aG9uIDMK
LQotQ29udGFpbnMgY2xhc3NlcyBmcm9tIFB5dGhvbiAzJ3MgOm1vZDpgcHkzOnVybGxpYi5yZXNw
b25zZWAgYW5kIFB5dGhvbiAyJ3M6Ci0KLTptb2Q6YHB5Mjp1cmxsaWJgOgotCi0qIDpjbGFzczpg
cHkyOnVybGxpYi5hZGRiYXNlYAotKiA6Y2xhc3M6YHB5Mjp1cmxsaWIuYWRkY2xvc2Vob29rYAot
KiA6Y2xhc3M6YHB5Mjp1cmxsaWIuYWRkaW5mb2AKLSogOmNsYXNzOmBweTI6dXJsbGliLmFkZGlu
Zm91cmxgCi0KLQotQWR2YW5jZWQgLSBDdXN0b21pemluZyByZW5hbWVzCi08PDw8PDw8PDw8PDw8
PDw8PDw8PDw8PDw8PDw8PDwKLQotLi4gY3VycmVudG1vZHVsZTo6IHNpeAotCi1JdCBpcyBwb3Nz
aWJsZSB0byBhZGQgYWRkaXRpb25hbCBuYW1lcyB0byB0aGUgOm1vZDpgc2l4Lm1vdmVzYCBuYW1l
c3BhY2UuCi0KLQotLi4gZnVuY3Rpb246OiBhZGRfbW92ZShpdGVtKQotCi0gICBBZGQgKml0ZW0q
IHRvIHRoZSA6bW9kOmBzaXgubW92ZXNgIG1hcHBpbmcuICAqaXRlbSogc2hvdWxkIGJlIGEKLSAg
IDpjbGFzczpgTW92ZWRBdHRyaWJ1dGVgIG9yIDpjbGFzczpgTW92ZWRNb2R1bGVgIGluc3RhbmNl
LgotCi0KLS4uIGZ1bmN0aW9uOjogcmVtb3ZlX21vdmUobmFtZSkKLQotICAgUmVtb3ZlIHRoZSA6
bW9kOmBzaXgubW92ZXNgIG1hcHBpbmcgY2FsbGVkICpuYW1lKi4gICpuYW1lKiBzaG91bGQgYmUg
YQotICAgc3RyaW5nLgotCi0KLUluc3RhbmNlcyBvZiB0aGUgZm9sbG93aW5nIGNsYXNzZXMgY2Fu
IGJlIHBhc3NlZCB0byA6ZnVuYzpgYWRkX21vdmVgLiAgTmVpdGhlcgotaGF2ZSBhbnkgcHVibGlj
IG1lbWJlcnMuCi0KLQotLi4gY2xhc3M6OiBNb3ZlZE1vZHVsZShuYW1lLCBvbGRfbW9kLCBuZXdf
bW9kKQotCi0gICBDcmVhdGUgYSBtYXBwaW5nIGZvciA6bW9kOmBzaXgubW92ZXNgIGNhbGxlZCAq
bmFtZSogdGhhdCByZWZlcmVuY2VzIGRpZmZlcmVudAotICAgbW9kdWxlcyBpbiBQeXRob24gMiBh
bmQgMy4gICpvbGRfbW9kKiBpcyB0aGUgbmFtZSBvZiB0aGUgUHl0aG9uIDIgbW9kdWxlLgotICAg
Km5ld19tb2QqIGlzIHRoZSBuYW1lIG9mIHRoZSBQeXRob24gMyBtb2R1bGUuCi0KLQotLi4gY2xh
c3M6OiBNb3ZlZEF0dHJpYnV0ZShuYW1lLCBvbGRfbW9kLCBuZXdfbW9kLCBvbGRfYXR0cj1Ob25l
LCBuZXdfYXR0cj1Ob25lKQotCi0gICBDcmVhdGUgYSBtYXBwaW5nIGZvciA6bW9kOmBzaXgubW92
ZXNgIGNhbGxlZCAqbmFtZSogdGhhdCByZWZlcmVuY2VzIGRpZmZlcmVudAotICAgYXR0cmlidXRl
cyBpbiBQeXRob24gMiBhbmQgMy4gICpvbGRfbW9kKiBpcyB0aGUgbmFtZSBvZiB0aGUgUHl0aG9u
IDIgbW9kdWxlLgotICAgKm5ld19tb2QqIGlzIHRoZSBuYW1lIG9mIHRoZSBQeXRob24gMyBtb2R1
bGUuICBJZiAqbmV3X2F0dHIqIGlzIG5vdCBnaXZlbiwgaXQKLSAgIGRlZmF1bHRzIHRvICpvbGRf
YXR0ciouICBJZiBuZWl0aGVyIGlzIGdpdmVuLCB0aGV5IGJvdGggZGVmYXVsdCB0byAqbmFtZSou
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3NpeC9kb2N1bWVudGF0aW9uL3czYy1pbXBvcnQubG9nIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9zaXgvZG9jdW1lbnRhdGlvbi93M2Mt
aW1wb3J0LmxvZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZjBkN2I3OGZiNTE2MDg1
Y2EwYTczYjA0NTQ4MDA2ZTdhNTIxZWYzMS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3NpeC9kb2N1bWVudGF0aW9uL3czYy1pbXBvcnQubG9nCisrKyAvZGV2L251bGwK
QEAgLTEsMTkgKzAsMCBAQAotVGhlIHRlc3RzIGluIHRoaXMgZGlyZWN0b3J5IHdlcmUgaW1wb3J0
ZWQgZnJvbSB0aGUgVzNDIHJlcG9zaXRvcnkuCi1EbyBOT1QgbW9kaWZ5IHRoZXNlIHRlc3RzIGRp
cmVjdGx5IGluIFdlYktpdC4KLUluc3RlYWQsIGNyZWF0ZSBhIHB1bGwgcmVxdWVzdCBvbiB0aGUg
V1BUIGdpdGh1YjoKLQlodHRwczovL2dpdGh1Yi5jb20vdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cwot
Ci1UaGVuIHJ1biB0aGUgVG9vbHMvU2NyaXB0cy9pbXBvcnQtdzNjLXRlc3RzIGluIFdlYktpdCB0
byByZWltcG9ydAotCi1EbyBOT1QgbW9kaWZ5IG9yIHJlbW92ZSB0aGlzIGZpbGUuCi0KLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLQotUHJvcGVydGllcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQot
UHJvcGVydHkgdmFsdWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0KLUxpc3Qgb2YgZmlsZXM6Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy9zaXgvZG9jdW1lbnRhdGlvbi9NYWtlZmlsZQotL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvc2l4L2RvY3VtZW50YXRp
b24vY29uZi5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvc2l4L2RvY3VtZW50YXRpb24vaW5kZXgucnN0CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3NpeC93M2MtaW1wb3J0Lmxv
ZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvc2l4
L3czYy1pbXBvcnQubG9nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2MTk4NjUzZWQw
ZmUyZmFlZThhZmY2N2E0Y2IzZWZkOTdlYTMwN2I3Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvc2l4L3czYy1pbXBvcnQubG9nCisrKyAvZGV2L251bGwKQEAgLTEsMTcg
KzAsMCBAQAotVGhlIHRlc3RzIGluIHRoaXMgZGlyZWN0b3J5IHdlcmUgaW1wb3J0ZWQgZnJvbSB0
aGUgVzNDIHJlcG9zaXRvcnkuCi1EbyBOT1QgbW9kaWZ5IHRoZXNlIHRlc3RzIGRpcmVjdGx5IGlu
IFdlYktpdC4KLUluc3RlYWQsIGNyZWF0ZSBhIHB1bGwgcmVxdWVzdCBvbiB0aGUgV1BUIGdpdGh1
YjoKLQlodHRwczovL2dpdGh1Yi5jb20vd2ViLXBsYXRmb3JtLXRlc3RzL3dwdAotCi1UaGVuIHJ1
biB0aGUgVG9vbHMvU2NyaXB0cy9pbXBvcnQtdzNjLXRlc3RzIGluIFdlYktpdCB0byByZWltcG9y
dAotCi1EbyBOT1QgbW9kaWZ5IG9yIHJlbW92ZSB0aGlzIGZpbGUuCi0KLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LQotUHJvcGVydGllcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotUHJvcGVydHkg
dmFsdWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K
LUxpc3Qgb2YgZmlsZXM6Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy9zaXgvc2l4LnB5YwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9zc2x1dGlscy9fX2luaXRfXy5weSBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvc3NsdXRpbHMvX19p
bml0X18ucHkKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGU0NmJlODUxZDY0ZmIwOTdj
Mjg3Yjg2ZmI1MWExOTc4NDZmNDJjMzUuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy9zc2x1dGlscy9fX2luaXRfXy5weQorKysgL2Rldi9udWxsCkBAIC0xLDkgKzAsMCBA
QAotaW1wb3J0IG9wZW5zc2wKLWltcG9ydCBwcmVnZW5lcmF0ZWQKLWZyb20gYmFzZSBpbXBvcnQg
Tm9TU0xFbnZpcm9ubWVudAotZnJvbSBvcGVuc3NsIGltcG9ydCBPcGVuU1NMRW52aXJvbm1lbnQK
LWZyb20gcHJlZ2VuZXJhdGVkIGltcG9ydCBQcmVnZW5lcmF0ZWRTU0xFbnZpcm9ubWVudAotCi1l
bnZpcm9ubWVudHMgPSB7Im5vbmUiOiBOb1NTTEVudmlyb25tZW50LAotICAgICAgICAgICAgICAg
ICJvcGVuc3NsIjogT3BlblNTTEVudmlyb25tZW50LAotICAgICAgICAgICAgICAgICJwcmVnZW5l
cmF0ZWQiOiBQcmVnZW5lcmF0ZWRTU0xFbnZpcm9ubWVudH0KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvc3NsdXRpbHMvYmFzZS5w
eSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvc3Ns
dXRpbHMvYmFzZS5weQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMjM3YWU1ZjIzY2Nm
MWZhOThjZDM5NmFmODg2OWIyNzRmYzllMzQ2NS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3NzbHV0aWxzL2Jhc2UucHkKKysrIC9kZXYvbnVsbApAQCAtMSwxNyArMCww
IEBACi1jbGFzcyBOb1NTTEVudmlyb25tZW50KG9iamVjdCk6Ci0gICAgc3NsX2VuYWJsZWQgPSBG
YWxzZQotCi0gICAgZGVmIF9faW5pdF9fKHNlbGYsICphcmdzLCAqKmt3YXJncyk6Ci0gICAgICAg
IHBhc3MKLQotICAgIGRlZiBfX2VudGVyX18oc2VsZik6Ci0gICAgICAgIHJldHVybiBzZWxmCi0K
LSAgICBkZWYgX19leGl0X18oc2VsZiwgKmFyZ3MsICoqa3dhcmdzKToKLSAgICAgICAgcGFzcwot
Ci0gICAgZGVmIGhvc3RfY2VydF9wYXRoKHNlbGYsIGhvc3QpOgotICAgICAgICByZXR1cm4gTm9u
ZSwgTm9uZQotCi0gICAgZGVmIGNhX2NlcnRfcGF0aChzZWxmKToKLSAgICAgICAgcmV0dXJuIE5v
bmUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvc3NsdXRpbHMvb3BlbnNzbC5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvc3NsdXRpbHMvb3BlbnNzbC5weQpkZWxldGVkIGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDljMjQ3MWFhZWUzOTllNTdkMDQyNWFiMWYzNjNlNzAxNWQ0NWEx
Yy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3NzbHV0aWxzL29wZW5z
c2wucHkKKysrIC9kZXYvbnVsbApAQCAtMSw0MjIgKzAsMCBAQAotaW1wb3J0IGZ1bmN0b29scwot
aW1wb3J0IG9zCi1pbXBvcnQgcmFuZG9tCi1pbXBvcnQgc2h1dGlsCi1pbXBvcnQgc3VicHJvY2Vz
cwotaW1wb3J0IHRlbXBmaWxlCi1mcm9tIGRhdGV0aW1lIGltcG9ydCBkYXRldGltZSwgdGltZWRl
bHRhCi0KLSMgQW1vdW50IG9mIHRpbWUgYmV5b25kIHRoZSBwcmVzZW50IHRvIGNvbnNpZGVyIGNl
cnRpZmljYXRlcyAiZXhwaXJlZC4iIFRoaXMKLSMgYWxsb3dzIGNlcnRpZmljYXRlcyB0byBiZSBw
cm9hY3RpdmVseSByZS1nZW5lcmF0ZWQgaW4gdGhlICJidWZmZXIiIHBlcmlvZAotIyBwcmlvciB0
byB0aGVpciBleGFjdCBleHBpcmF0aW9uIHRpbWUuCi1DRVJUX0VYUElSWV9CVUZGRVIgPSBkaWN0
KGhvdXJzPTYpCi0KLWNsYXNzIE9wZW5TU0wob2JqZWN0KToKLSAgICBkZWYgX19pbml0X18oc2Vs
ZiwgbG9nZ2VyLCBiaW5hcnksIGJhc2VfcGF0aCwgY29uZl9wYXRoLCBob3N0cywgZHVyYXRpb24s
Ci0gICAgICAgICAgICAgICAgIGJhc2VfY29uZl9wYXRoPU5vbmUpOgotICAgICAgICAiIiJDb250
ZXh0IG1hbmFnZXIgZm9yIGludGVyYWN0aW5nIHdpdGggT3BlblNTTC4KLSAgICAgICAgQ3JlYXRl
cyBhIGNvbmZpZyBmaWxlIGZvciB0aGUgZHVyYXRpb24gb2YgdGhlIGNvbnRleHQuCi0KLSAgICAg
ICAgOnBhcmFtIGxvZ2dlcjogc3RkbGliIGxvZ2dlciBvciBweXRob24gc3RydWN0dXJlZCBsb2dn
ZXIKLSAgICAgICAgOnBhcmFtIGJpbmFyeTogcGF0aCB0byBvcGVuc3NsIGJpbmFyeQotICAgICAg
ICA6cGFyYW0gYmFzZV9wYXRoOiBwYXRoIHRvIGRpcmVjdG9yeSBmb3Igc3RvcmluZyBjZXJ0aWZp
Y2F0ZXMKLSAgICAgICAgOnBhcmFtIGNvbmZfcGF0aDogcGF0aCBmb3IgY29uZmlndXJhdGlvbiBm
aWxlIHN0b3JpbmcgY29uZmlndXJhdGlvbiBkYXRhCi0gICAgICAgIDpwYXJhbSBob3N0czogbGlz
dCBvZiBob3N0cyB0byBpbmNsdWRlIGluIGNvbmZpZ3VyYXRpb24gKG9yIE5vbmUgaWYgbm90Ci0g
ICAgICAgICAgICAgICAgICAgICAgZ2VuZXJhdGluZyBob3N0IGNlcnRpZmljYXRlcykKLSAgICAg
ICAgOnBhcmFtIGR1cmF0aW9uOiBDZXJ0aWZpY2F0ZSBkdXJhdGlvbiBpbiBkYXlzIiIiCi0KLSAg
ICAgICAgc2VsZi5iYXNlX3BhdGggPSBiYXNlX3BhdGgKLSAgICAgICAgc2VsZi5iaW5hcnkgPSBi
aW5hcnkKLSAgICAgICAgc2VsZi5jb25mX3BhdGggPSBjb25mX3BhdGgKLSAgICAgICAgc2VsZi5i
YXNlX2NvbmZfcGF0aCA9IGJhc2VfY29uZl9wYXRoCi0gICAgICAgIHNlbGYubG9nZ2VyID0gbG9n
Z2VyCi0gICAgICAgIHNlbGYucHJvYyA9IE5vbmUKLSAgICAgICAgc2VsZi5jbWQgPSBbXQotICAg
ICAgICBzZWxmLmhvc3RzID0gaG9zdHMKLSAgICAgICAgc2VsZi5kdXJhdGlvbiA9IGR1cmF0aW9u
Ci0KLSAgICBkZWYgX19lbnRlcl9fKHNlbGYpOgotICAgICAgICB3aXRoIG9wZW4oc2VsZi5jb25m
X3BhdGgsICJ3IikgYXMgZjoKLSAgICAgICAgICAgIGYud3JpdGUoZ2V0X2NvbmZpZyhzZWxmLmJh
c2VfcGF0aCwgc2VsZi5ob3N0cywgc2VsZi5kdXJhdGlvbikpCi0gICAgICAgIHJldHVybiBzZWxm
Ci0KLSAgICBkZWYgX19leGl0X18oc2VsZiwgKmFyZ3MsICoqa3dhcmdzKToKLSAgICAgICAgb3Mu
dW5saW5rKHNlbGYuY29uZl9wYXRoKQotCi0gICAgZGVmIGxvZyhzZWxmLCBsaW5lKToKLSAgICAg
ICAgaWYgaGFzYXR0cihzZWxmLmxvZ2dlciwgInByb2Nlc3Nfb3V0cHV0Iik6Ci0gICAgICAgICAg
ICBzZWxmLmxvZ2dlci5wcm9jZXNzX291dHB1dChzZWxmLnByb2MucGlkIGlmIHNlbGYucHJvYyBp
cyBub3QgTm9uZSBlbHNlIE5vbmUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBsaW5lLmRlY29kZSgidXRmOCIsICJyZXBsYWNlIiksCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBjb21tYW5kPSIgIi5qb2luKHNlbGYuY21kKSkKLSAgICAgICAg
ZWxzZToKLSAgICAgICAgICAgIHNlbGYubG9nZ2VyLmRlYnVnKGxpbmUpCi0KLSAgICBkZWYgX19j
YWxsX18oc2VsZiwgY21kLCAqYXJncywgKiprd2FyZ3MpOgotICAgICAgICAiIiJSdW4gYSBjb21t
YW5kIHVzaW5nIE9wZW5TU0wgaW4gdGhlIGN1cnJlbnQgY29udGV4dC4KLQotICAgICAgICA6cGFy
YW0gY21kOiBUaGUgb3BlbnNzbCBzdWJjb21tYW5kIHRvIHJ1bgotICAgICAgICA6cGFyYW0gKmFy
Z3M6IEFkZGl0aW9uYWwgYXJndW1lbnRzIHRvIHBhc3MgdG8gdGhlIGNvbW1hbmQKLSAgICAgICAg
IiIiCi0gICAgICAgIHNlbGYuY21kID0gW3NlbGYuYmluYXJ5LCBjbWRdCi0gICAgICAgIGlmIGNt
ZCAhPSAieDUwOSI6Ci0gICAgICAgICAgICBzZWxmLmNtZCArPSBbIi1jb25maWciLCBzZWxmLmNv
bmZfcGF0aF0KLSAgICAgICAgc2VsZi5jbWQgKz0gbGlzdChhcmdzKQotCi0gICAgICAgICMgQ29w
eSB0aGUgZW52aXJvbm1lbnQsIGNvbnZlcnRpbmcgdG8gcGxhaW4gc3RyaW5ncy4gV2luZG93cwot
ICAgICAgICAjIFN0YXJ0UHJvY2VzcyBpcyBwaWNreSBhYm91dCBhbGwgdGhlIGtleXMvdmFsdWVz
IGJlaW5nIHBsYWluIHN0cmluZ3MsCi0gICAgICAgICMgYnV0IGF0IGxlYXN0IGluIE1TWVMgc2hl
bGxzLCB0aGUgb3MuZW52aXJvbiBkaWN0aW9uYXJ5IGNhbiBiZSBtaXhlZC4KLSAgICAgICAgZW52
ID0ge30KLSAgICAgICAgZm9yIGssIHYgaW4gb3MuZW52aXJvbi5pdGVyaXRlbXMoKToKLSAgICAg
ICAgICAgIHRyeToKLSAgICAgICAgICAgICAgICBlbnZbay5lbmNvZGUoInV0ZjgiKV0gPSB2LmVu
Y29kZSgidXRmOCIpCi0gICAgICAgICAgICBleGNlcHQgVW5pY29kZURlY29kZUVycm9yOgotICAg
ICAgICAgICAgICAgIHBhc3MKLQotICAgICAgICBpZiBzZWxmLmJhc2VfY29uZl9wYXRoIGlzIG5v
dCBOb25lOgotICAgICAgICAgICAgZW52WyJPUEVOU1NMX0NPTkYiXSA9IHNlbGYuYmFzZV9jb25m
X3BhdGguZW5jb2RlKCJ1dGY4IikKLQotICAgICAgICBzZWxmLnByb2MgPSBzdWJwcm9jZXNzLlBv
cGVuKHNlbGYuY21kLCBzdGRvdXQ9c3VicHJvY2Vzcy5QSVBFLCBzdGRlcnI9c3VicHJvY2Vzcy5T
VERPVVQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW52PWVudikKLSAg
ICAgICAgc3Rkb3V0LCBzdGRlcnIgPSBzZWxmLnByb2MuY29tbXVuaWNhdGUoKQotICAgICAgICBz
ZWxmLmxvZyhzdGRvdXQpCi0gICAgICAgIGlmIHNlbGYucHJvYy5yZXR1cm5jb2RlICE9IDA6Ci0g
ICAgICAgICAgICByYWlzZSBzdWJwcm9jZXNzLkNhbGxlZFByb2Nlc3NFcnJvcihzZWxmLnByb2Mu
cmV0dXJuY29kZSwgc2VsZi5jbWQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBvdXRwdXQ9c3Rkb3V0KQotCi0gICAgICAgIHNlbGYuY21kID0gW10KLSAg
ICAgICAgc2VsZi5wcm9jID0gTm9uZQotICAgICAgICByZXR1cm4gc3Rkb3V0Ci0KLQotZGVmIG1h
a2Vfc3ViamVjdChjb21tb25fbmFtZSwKLSAgICAgICAgICAgICAgICAgY291bnRyeT1Ob25lLAot
ICAgICAgICAgICAgICAgICBzdGF0ZT1Ob25lLAotICAgICAgICAgICAgICAgICBsb2NhbGl0eT1O
b25lLAotICAgICAgICAgICAgICAgICBvcmdhbml6YXRpb249Tm9uZSwKLSAgICAgICAgICAgICAg
ICAgb3JnYW5pemF0aW9uX3VuaXQ9Tm9uZSk6Ci0gICAgYXJncyA9IFsoImNvdW50cnkiLCAiQyIp
LAotICAgICAgICAgICAgKCJzdGF0ZSIsICJTVCIpLAotICAgICAgICAgICAgKCJsb2NhbGl0eSIs
ICJMIiksCi0gICAgICAgICAgICAoIm9yZ2FuaXphdGlvbiIsICJPIiksCi0gICAgICAgICAgICAo
Im9yZ2FuaXphdGlvbl91bml0IiwgIk9VIiksCi0gICAgICAgICAgICAoImNvbW1vbl9uYW1lIiwg
IkNOIildCi0KLSAgICBydiA9IFtdCi0KLSAgICBmb3IgdmFyLCBrZXkgaW4gYXJnczoKLSAgICAg
ICAgdmFsdWUgPSBsb2NhbHMoKVt2YXJdCi0gICAgICAgIGlmIHZhbHVlIGlzIG5vdCBOb25lOgot
ICAgICAgICAgICAgcnYuYXBwZW5kKCIvJXM9JXMiICUgKGtleSwgdmFsdWUucmVwbGFjZSgiLyIs
ICJcXC8iKSkpCi0KLSAgICByZXR1cm4gIiIuam9pbihydikKLQotZGVmIG1ha2VfYWx0X25hbWVz
KGhvc3RzKToKLSAgICBydiA9IFtdCi0gICAgZm9yIG5hbWUgaW4gaG9zdHM6Ci0gICAgICAgIHJ2
LmFwcGVuZCgiRE5TOiVzIiAlIG5hbWUpCi0gICAgcmV0dXJuICIsIi5qb2luKHJ2KQotCi1kZWYg
Z2V0X2NvbmZpZyhyb290X2RpciwgaG9zdHMsIGR1cmF0aW9uPTMwKToKLSAgICBpZiBob3N0cyBp
cyBOb25lOgotICAgICAgICBzYW5fbGluZSA9ICIiCi0gICAgZWxzZToKLSAgICAgICAgc2FuX2xp
bmUgPSAic3ViamVjdEFsdE5hbWUgPSAlcyIgJSBtYWtlX2FsdF9uYW1lcyhob3N0cykKLQotICAg
IGlmIG9zLnBhdGguc2VwID09ICJcXCI6Ci0gICAgICAgICMgVGhpcyBzZWVtcyB0byBiZSBuZWVk
ZWQgZm9yIHRoZSBTaGluaW5nIExpZ2h0IE9wZW5TU0wgb24KLSAgICAgICAgIyBXaW5kb3dzLCBh
dCBsZWFzdC4KLSAgICAgICAgcm9vdF9kaXIgPSByb290X2Rpci5yZXBsYWNlKCJcXCIsICJcXFxc
IikKLQotICAgIHJ2ID0gIiIiWyBjYSBdCi1kZWZhdWx0X2NhID0gQ0FfZGVmYXVsdAotCi1bIENB
X2RlZmF1bHQgXQotZGlyID0gJShyb290X2RpcilzCi1jZXJ0cyA9ICRkaXIKLW5ld19jZXJ0c19k
aXIgPSAkY2VydHMKLWNybF9kaXIgPSAkZGlyJShzZXApc2NybAotZGF0YWJhc2UgPSAkZGlyJShz
ZXApc2luZGV4LnR4dAotcHJpdmF0ZV9rZXkgPSAkZGlyJShzZXApc2Nha2V5LnBlbQotY2VydGlm
aWNhdGUgPSAkZGlyJShzZXApc2NhY2VydC5wZW0KLXNlcmlhbCA9ICRkaXIlKHNlcClzc2VyaWFs
Ci1jcmxkaXIgPSAkZGlyJShzZXApc2NybAotY3JsbnVtYmVyID0gJGRpciUoc2VwKXNjcmxudW1i
ZXIKLWNybCA9ICRjcmxkaXIlKHNlcClzY3JsLnBlbQotUkFOREZJTEUgPSAkZGlyJShzZXApc3By
aXZhdGUlKHNlcClzLnJhbmQKLXg1MDlfZXh0ZW5zaW9ucyA9IHVzcl9jZXJ0Ci1uYW1lX29wdCAg
ICAgICAgPSBjYV9kZWZhdWx0Ci1jZXJ0X29wdCAgICAgICAgPSBjYV9kZWZhdWx0Ci1kZWZhdWx0
X2RheXMgPSAlKGR1cmF0aW9uKWQKLWRlZmF1bHRfY3JsX2RheXMgPSAlKGR1cmF0aW9uKWQKLWRl
ZmF1bHRfbWQgPSBzaGEyNTYKLXByZXNlcnZlID0gbm8KLXBvbGljeSA9IHBvbGljeV9hbnl0aGlu
ZwotY29weV9leHRlbnNpb25zID0gY29weQotCi1bIHBvbGljeV9hbnl0aGluZyBdCi1jb3VudHJ5
TmFtZSA9IG9wdGlvbmFsCi1zdGF0ZU9yUHJvdmluY2VOYW1lID0gb3B0aW9uYWwKLWxvY2FsaXR5
TmFtZSA9IG9wdGlvbmFsCi1vcmdhbml6YXRpb25OYW1lID0gb3B0aW9uYWwKLW9yZ2FuaXphdGlv
bmFsVW5pdE5hbWUgPSBvcHRpb25hbAotY29tbW9uTmFtZSA9IHN1cHBsaWVkCi1lbWFpbEFkZHJl
c3MgPSBvcHRpb25hbAotCi1bIHJlcSBdCi1kZWZhdWx0X2JpdHMgPSAyMDQ4Ci1kZWZhdWx0X2tl
eWZpbGUgID0gcHJpdmtleS5wZW0KLWRpc3Rpbmd1aXNoZWRfbmFtZSA9IHJlcV9kaXN0aW5ndWlz
aGVkX25hbWUKLWF0dHJpYnV0ZXMgPSByZXFfYXR0cmlidXRlcwoteDUwOV9leHRlbnNpb25zID0g
djNfY2EKLQotIyBQYXNzd29yZHMgZm9yIHByaXZhdGUga2V5cyBpZiBub3QgcHJlc2VudCB0aGV5
IHdpbGwgYmUgcHJvbXB0ZWQgZm9yCi0jIGlucHV0X3Bhc3N3b3JkID0gc2VjcmV0Ci0jIG91dHB1
dF9wYXNzd29yZCA9IHNlY3JldAotc3RyaW5nX21hc2sgPSB1dGY4b25seQotcmVxX2V4dGVuc2lv
bnMgPSB2M19yZXEKLQotWyByZXFfZGlzdGluZ3Vpc2hlZF9uYW1lIF0KLWNvdW50cnlOYW1lID0g
Q291bnRyeSBOYW1lICgyIGxldHRlciBjb2RlKQotY291bnRyeU5hbWVfZGVmYXVsdCA9IEFVCi1j
b3VudHJ5TmFtZV9taW4gPSAyCi1jb3VudHJ5TmFtZV9tYXggPSAyCi1zdGF0ZU9yUHJvdmluY2VO
YW1lID0gU3RhdGUgb3IgUHJvdmluY2UgTmFtZSAoZnVsbCBuYW1lKQotc3RhdGVPclByb3ZpbmNl
TmFtZV9kZWZhdWx0ID0KLWxvY2FsaXR5TmFtZSA9IExvY2FsaXR5IE5hbWUgKGVnLCBjaXR5KQot
MC5vcmdhbml6YXRpb25OYW1lID0gT3JnYW5pemF0aW9uIE5hbWUKLTAub3JnYW5pemF0aW9uTmFt
ZV9kZWZhdWx0ID0gV2ViIFBsYXRmb3JtIFRlc3RzCi1vcmdhbml6YXRpb25hbFVuaXROYW1lID0g
T3JnYW5pemF0aW9uYWwgVW5pdCBOYW1lIChlZywgc2VjdGlvbikKLSNvcmdhbml6YXRpb25hbFVu
aXROYW1lX2RlZmF1bHQgPQotY29tbW9uTmFtZSA9IENvbW1vbiBOYW1lIChlLmcuIHNlcnZlciBG
UUROIG9yIFlPVVIgbmFtZSkKLWNvbW1vbk5hbWVfbWF4ID0gNjQKLWVtYWlsQWRkcmVzcyA9IEVt
YWlsIEFkZHJlc3MKLWVtYWlsQWRkcmVzc19tYXggPSA2NAotCi1bIHJlcV9hdHRyaWJ1dGVzIF0K
LQotWyB1c3JfY2VydCBdCi1iYXNpY0NvbnN0cmFpbnRzPUNBOmZhbHNlCi1zdWJqZWN0S2V5SWRl
bnRpZmllcj1oYXNoCi1hdXRob3JpdHlLZXlJZGVudGlmaWVyPWtleWlkLGlzc3VlcgotCi1bIHYz
X3JlcSBdCi1iYXNpY0NvbnN0cmFpbnRzID0gQ0E6RkFMU0UKLWtleVVzYWdlID0gbm9uUmVwdWRp
YXRpb24sIGRpZ2l0YWxTaWduYXR1cmUsIGtleUVuY2lwaGVybWVudAotZXh0ZW5kZWRLZXlVc2Fn
ZSA9IHNlcnZlckF1dGgKLSUoc2FuX2xpbmUpcwotCi1bIHYzX2NhIF0KLWJhc2ljQ29uc3RyYWlu
dHMgPSBDQTp0cnVlCi1zdWJqZWN0S2V5SWRlbnRpZmllcj1oYXNoCi1hdXRob3JpdHlLZXlJZGVu
dGlmaWVyPWtleWlkOmFsd2F5cyxpc3N1ZXI6YWx3YXlzCi1rZXlVc2FnZSA9IGtleUNlcnRTaWdu
Ci0iIiIgJSB7InJvb3RfZGlyIjogcm9vdF9kaXIsCi0gICAgICAgInNhbl9saW5lIjogc2FuX2xp
bmUsCi0gICAgICAgImR1cmF0aW9uIjogZHVyYXRpb24sCi0gICAgICAgInNlcCI6IG9zLnBhdGgu
c2VwLnJlcGxhY2UoIlxcIiwgIlxcXFwiKX0KLQotICAgIHJldHVybiBydgotCi1jbGFzcyBPcGVu
U1NMRW52aXJvbm1lbnQob2JqZWN0KToKLSAgICBzc2xfZW5hYmxlZCA9IFRydWUKLQotICAgIGRl
ZiBfX2luaXRfXyhzZWxmLCBsb2dnZXIsIG9wZW5zc2xfYmluYXJ5PSJvcGVuc3NsIiwgYmFzZV9w
YXRoPU5vbmUsCi0gICAgICAgICAgICAgICAgIHBhc3N3b3JkPSJ3ZWItcGxhdGZvcm0tdGVzdHMi
LCBmb3JjZV9yZWdlbmVyYXRlPUZhbHNlLAotICAgICAgICAgICAgICAgICBkdXJhdGlvbj0zMCwg
YmFzZV9jb25mX3BhdGg9Tm9uZSk6Ci0gICAgICAgICIiIlNTTCBlbnZpcm9ubWVudCB0aGF0IGNy
ZWF0ZXMgYSBsb2NhbCBDQSBhbmQgaG9zdCBjZXJ0aWZpY2F0ZSB1c2luZyBPcGVuU1NMLgotCi0g
ICAgICAgIEJ5IGRlZmF1bHQgdGhpcyB3aWxsIGxvb2sgaW4gYmFzZV9wYXRoIGZvciBleGlzdGlu
ZyBjZXJ0aWZpY2F0ZXMgdGhhdCBhcmUgc3RpbGwKLSAgICAgICAgdmFsaWQgYW5kIG9ubHkgY3Jl
YXRlIG5ldyBjZXJ0aWZpY2F0ZXMgaWYgdGhlcmUgYXJlbid0IGFueS4gVGhpcyBiZWhhdmlvdXIg
Y2FuCi0gICAgICAgIGJlIGFkanVzdGVkIHVzaW5nIHRoZSBmb3JjZV9yZWdlbmVyYXRlIG9wdGlv
bi4KLQotICAgICAgICA6cGFyYW0gbG9nZ2VyOiBhIHN0ZGxpYiBsb2dnaW5nIGNvbXBhdGlibGUg
bG9nZ2VyIG9yIG1vemxvZyBzdHJ1Y3R1cmVkIGxvZ2dlcgotICAgICAgICA6cGFyYW0gb3BlbnNz
bF9iaW5hcnk6IFBhdGggdG8gdGhlIE9wZW5TU0wgYmluYXJ5Ci0gICAgICAgIDpwYXJhbSBiYXNl
X3BhdGg6IFBhdGggaW4gd2hpY2ggY2VydGlmaWNhdGVzIHdpbGwgYmUgc3RvcmVkLiBJZiBOb25l
LCBhIHRlbXBvcmFyeQotICAgICAgICAgICAgICAgICAgICAgICAgICBkaXJlY3Rvcnkgd2lsbCBi
ZSB1c2VkIGFuZCByZW1vdmVkIHdoZW4gdGhlIHNlcnZlciBzaHV0cyBkb3duCi0gICAgICAgIDpw
YXJhbSBwYXNzd29yZDogUGFzc3dvcmQgdG8gdXNlCi0gICAgICAgIDpwYXJhbSBmb3JjZV9yZWdl
bmVyYXRlOiBBbHdheXMgY3JlYXRlIGEgbmV3IGNlcnRpZmljYXRlIGV2ZW4gaWYgb25lIGFscmVh
ZHkgZXhpc3RzLgotICAgICAgICAiIiIKLSAgICAgICAgc2VsZi5sb2dnZXIgPSBsb2dnZXIKLQot
ICAgICAgICBzZWxmLnRlbXBvcmFyeSA9IEZhbHNlCi0gICAgICAgIGlmIGJhc2VfcGF0aCBpcyBO
b25lOgotICAgICAgICAgICAgYmFzZV9wYXRoID0gdGVtcGZpbGUubWtkdGVtcCgpCi0gICAgICAg
ICAgICBzZWxmLnRlbXBvcmFyeSA9IFRydWUKLQotICAgICAgICBzZWxmLmJhc2VfcGF0aCA9IG9z
LnBhdGguYWJzcGF0aChiYXNlX3BhdGgpCi0gICAgICAgIHNlbGYucGFzc3dvcmQgPSBwYXNzd29y
ZAotICAgICAgICBzZWxmLmZvcmNlX3JlZ2VuZXJhdGUgPSBmb3JjZV9yZWdlbmVyYXRlCi0gICAg
ICAgIHNlbGYuZHVyYXRpb24gPSBkdXJhdGlvbgotICAgICAgICBzZWxmLmJhc2VfY29uZl9wYXRo
ID0gYmFzZV9jb25mX3BhdGgKLQotICAgICAgICBzZWxmLnBhdGggPSBOb25lCi0gICAgICAgIHNl
bGYuYmluYXJ5ID0gb3BlbnNzbF9iaW5hcnkKLSAgICAgICAgc2VsZi5vcGVuc3NsID0gTm9uZQot
Ci0gICAgICAgIHNlbGYuX2NhX2NlcnRfcGF0aCA9IE5vbmUKLSAgICAgICAgc2VsZi5fY2Ffa2V5
X3BhdGggPSBOb25lCi0gICAgICAgIHNlbGYuaG9zdF9jZXJ0aWZpY2F0ZXMgPSB7fQotCi0gICAg
ZGVmIF9fZW50ZXJfXyhzZWxmKToKLSAgICAgICAgaWYgbm90IG9zLnBhdGguZXhpc3RzKHNlbGYu
YmFzZV9wYXRoKToKLSAgICAgICAgICAgIG9zLm1ha2VkaXJzKHNlbGYuYmFzZV9wYXRoKQotCi0g
ICAgICAgIHBhdGggPSBmdW5jdG9vbHMucGFydGlhbChvcy5wYXRoLmpvaW4sIHNlbGYuYmFzZV9w
YXRoKQotCi0gICAgICAgIHdpdGggb3BlbihwYXRoKCJpbmRleC50eHQiKSwgInciKToKLSAgICAg
ICAgICAgIHBhc3MKLSAgICAgICAgd2l0aCBvcGVuKHBhdGgoInNlcmlhbCIpLCAidyIpIGFzIGY6
Ci0gICAgICAgICAgICBzZXJpYWwgPSAiJXgiICUgcmFuZG9tLnJhbmRpbnQoMCwgMTAwMDAwMCkK
LSAgICAgICAgICAgIGlmIGxlbihzZXJpYWwpICUgMjoKLSAgICAgICAgICAgICAgICBzZXJpYWwg
PSAiMCIgKyBzZXJpYWwKLSAgICAgICAgICAgIGYud3JpdGUoc2VyaWFsKQotCi0gICAgICAgIHNl
bGYucGF0aCA9IHBhdGgKLQotICAgICAgICByZXR1cm4gc2VsZgotCi0gICAgZGVmIF9fZXhpdF9f
KHNlbGYsICphcmdzLCAqKmt3YXJncyk6Ci0gICAgICAgIGlmIHNlbGYudGVtcG9yYXJ5OgotICAg
ICAgICAgICAgc2h1dGlsLnJtdHJlZShzZWxmLmJhc2VfcGF0aCkKLQotICAgIGRlZiBfY29uZmln
X29wZW5zc2woc2VsZiwgaG9zdHMpOgotICAgICAgICBjb25mX3BhdGggPSBzZWxmLnBhdGgoIm9w
ZW5zc2wuY2ZnIikKLSAgICAgICAgcmV0dXJuIE9wZW5TU0woc2VsZi5sb2dnZXIsIHNlbGYuYmlu
YXJ5LCBzZWxmLmJhc2VfcGF0aCwgY29uZl9wYXRoLCBob3N0cywKLSAgICAgICAgICAgICAgICAg
ICAgICAgc2VsZi5kdXJhdGlvbiwgc2VsZi5iYXNlX2NvbmZfcGF0aCkKLQotICAgIGRlZiBjYV9j
ZXJ0X3BhdGgoc2VsZik6Ci0gICAgICAgICIiIkdldCB0aGUgcGF0aCB0byB0aGUgQ0EgY2VydGlm
aWNhdGUgZmlsZSwgZ2VuZXJhdGluZyBhCi0gICAgICAgIG5ldyBvbmUgaWYgbmVlZGVkIiIiCi0g
ICAgICAgIGlmIHNlbGYuX2NhX2NlcnRfcGF0aCBpcyBOb25lIGFuZCBub3Qgc2VsZi5mb3JjZV9y
ZWdlbmVyYXRlOgotICAgICAgICAgICAgc2VsZi5fbG9hZF9jYV9jZXJ0KCkKLSAgICAgICAgaWYg
c2VsZi5fY2FfY2VydF9wYXRoIGlzIE5vbmU6Ci0gICAgICAgICAgICBzZWxmLl9nZW5lcmF0ZV9j
YSgpCi0gICAgICAgIHJldHVybiBzZWxmLl9jYV9jZXJ0X3BhdGgKLQotICAgIGRlZiBfbG9hZF9j
YV9jZXJ0KHNlbGYpOgotICAgICAgICBrZXlfcGF0aCA9IHNlbGYucGF0aCgiY2FrZXkucGVtIikK
LSAgICAgICAgY2VydF9wYXRoID0gc2VsZi5wYXRoKCJjYWNlcnQucGVtIikKLQotICAgICAgICBp
ZiBzZWxmLmNoZWNrX2tleV9jZXJ0KGtleV9wYXRoLCBjZXJ0X3BhdGgsIE5vbmUpOgotICAgICAg
ICAgICAgc2VsZi5sb2dnZXIuaW5mbygiVXNpbmcgZXhpc3RpbmcgQ0EgY2VydCIpCi0gICAgICAg
ICAgICBzZWxmLl9jYV9rZXlfcGF0aCwgc2VsZi5fY2FfY2VydF9wYXRoID0ga2V5X3BhdGgsIGNl
cnRfcGF0aAotCi0gICAgZGVmIGNoZWNrX2tleV9jZXJ0KHNlbGYsIGtleV9wYXRoLCBjZXJ0X3Bh
dGgsIGhvc3RzKToKLSAgICAgICAgIiIiQ2hlY2sgdGhhdCBhIGtleSBhbmQgY2VydCBmaWxlIGV4
aXN0IGFuZCBhcmUgdmFsaWQiIiIKLSAgICAgICAgaWYgbm90IG9zLnBhdGguZXhpc3RzKGtleV9w
YXRoKSBvciBub3Qgb3MucGF0aC5leGlzdHMoY2VydF9wYXRoKToKLSAgICAgICAgICAgIHJldHVy
biBGYWxzZQotCi0gICAgICAgIHdpdGggc2VsZi5fY29uZmlnX29wZW5zc2woaG9zdHMpIGFzIG9w
ZW5zc2w6Ci0gICAgICAgICAgICBlbmRfZGF0ZV9zdHIgPSBvcGVuc3NsKCJ4NTA5IiwKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIi1ub291dCIsCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICItZW5kZGF0ZSIsCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICItaW4iLCBjZXJ0X3BhdGgpLnNwbGl0KCI9IiwgMSlbMV0uc3RyaXAoKQotICAg
ICAgICAgICAgIyBOb3Qgc3VyZSBpZiB0aGlzIHdvcmtzIGluIG90aGVyIGxvY2FsZXMKLSAgICAg
ICAgICAgIGVuZF9kYXRlID0gZGF0ZXRpbWUuc3RycHRpbWUoZW5kX2RhdGVfc3RyLCAiJWIgJWQg
JUg6JU06JVMgJVkgJVoiKQotICAgICAgICAgICAgdGltZV9idWZmZXIgPSB0aW1lZGVsdGEoKipD
RVJUX0VYUElSWV9CVUZGRVIpCi0gICAgICAgICAgICAjIEJlY2F1c2UgYHN0cnB0aW1lYCBkb2Vz
IG5vdCBhY2NvdW50IGZvciB0aW1lIHpvbmUgb2Zmc2V0cywgaXQgaXMKLSAgICAgICAgICAgICMg
YWx3YXlzIGluIHRlcm1zIG9mIFVUQywgc28gdGhlIGN1cnJlbnQgdGltZSBzaG91bGQgYmUgY2Fs
Y3VsYXRlZAotICAgICAgICAgICAgIyBhY2NvcmRpbmdseS4KLSAgICAgICAgICAgIGlmIGVuZF9k
YXRlIDwgZGF0ZXRpbWUudXRjbm93KCkgKyB0aW1lX2J1ZmZlcjoKLSAgICAgICAgICAgICAgICBy
ZXR1cm4gRmFsc2UKLQotICAgICAgICAjVE9ETzogY2hlY2sgdGhlIGtleSBhY3R1YWxseSBzaWdu
ZWQgdGhlIGNlcnQuCi0gICAgICAgIHJldHVybiBUcnVlCi0KLSAgICBkZWYgX2dlbmVyYXRlX2Nh
KHNlbGYpOgotICAgICAgICBwYXRoID0gc2VsZi5wYXRoCi0gICAgICAgIHNlbGYubG9nZ2VyLmlu
Zm8oIkdlbmVyYXRpbmcgbmV3IENBIGluICVzIiAlIHNlbGYuYmFzZV9wYXRoKQotCi0gICAgICAg
IGtleV9wYXRoID0gcGF0aCgiY2FrZXkucGVtIikKLSAgICAgICAgcmVxX3BhdGggPSBwYXRoKCJj
YXJlcS5wZW0iKQotICAgICAgICBjZXJ0X3BhdGggPSBwYXRoKCJjYWNlcnQucGVtIikKLQotICAg
ICAgICB3aXRoIHNlbGYuX2NvbmZpZ19vcGVuc3NsKE5vbmUpIGFzIG9wZW5zc2w6Ci0gICAgICAg
ICAgICBvcGVuc3NsKCJyZXEiLAotICAgICAgICAgICAgICAgICAgICAiLWJhdGNoIiwKLSAgICAg
ICAgICAgICAgICAgICAgIi1uZXciLAotICAgICAgICAgICAgICAgICAgICAiLW5ld2tleSIsICJy
c2E6MjA0OCIsCi0gICAgICAgICAgICAgICAgICAgICIta2V5b3V0Iiwga2V5X3BhdGgsCi0gICAg
ICAgICAgICAgICAgICAgICItb3V0IiwgcmVxX3BhdGgsCi0gICAgICAgICAgICAgICAgICAgICIt
c3ViaiIsIG1ha2Vfc3ViamVjdCgid2ViLXBsYXRmb3JtLXRlc3RzIiksCi0gICAgICAgICAgICAg
ICAgICAgICItcGFzc291dCIsICJwYXNzOiVzIiAlIHNlbGYucGFzc3dvcmQpCi0KLSAgICAgICAg
ICAgIG9wZW5zc2woImNhIiwKLSAgICAgICAgICAgICAgICAgICAgIi1iYXRjaCIsCi0gICAgICAg
ICAgICAgICAgICAgICItY3JlYXRlX3NlcmlhbCIsCi0gICAgICAgICAgICAgICAgICAgICIta2V5
ZmlsZSIsIGtleV9wYXRoLAotICAgICAgICAgICAgICAgICAgICAiLXBhc3NpbiIsICJwYXNzOiVz
IiAlIHNlbGYucGFzc3dvcmQsCi0gICAgICAgICAgICAgICAgICAgICItc2VsZnNpZ24iLAotICAg
ICAgICAgICAgICAgICAgICAiLWV4dGVuc2lvbnMiLCAidjNfY2EiLAotICAgICAgICAgICAgICAg
ICAgICAiLWluIiwgcmVxX3BhdGgsCi0gICAgICAgICAgICAgICAgICAgICItb3V0IiwgY2VydF9w
YXRoKQotCi0gICAgICAgIG9zLnVubGluayhyZXFfcGF0aCkKLQotICAgICAgICBzZWxmLl9jYV9r
ZXlfcGF0aCwgc2VsZi5fY2FfY2VydF9wYXRoID0ga2V5X3BhdGgsIGNlcnRfcGF0aAotCi0gICAg
ZGVmIGhvc3RfY2VydF9wYXRoKHNlbGYsIGhvc3RzKToKLSAgICAgICAgIiIiR2V0IGEgdHVwbGUg
b2YgKHByaXZhdGUga2V5IHBhdGgsIGNlcnRpZmljYXRlIHBhdGgpIGZvciBhIGhvc3QsCi0gICAg
ICAgIGdlbmVyYXRpbmcgbmV3IG9uZXMgaWYgbmVjZXNzYXJ5LgotCi0gICAgICAgIGhvc3RzIG11
c3QgYmUgYSBsaXN0IG9mIGFsbCBob3N0cyB0byBhcHBlYXIgb24gdGhlIGNlcnRpZmljYXRlLCB3
aXRoCi0gICAgICAgIHRoZSBwcmltYXJ5IGhvc3RuYW1lIGZpcnN0LiIiIgotICAgICAgICBob3N0
cyA9IHR1cGxlKGhvc3RzKQotICAgICAgICBpZiBob3N0cyBub3QgaW4gc2VsZi5ob3N0X2NlcnRp
ZmljYXRlczoKLSAgICAgICAgICAgIGlmIG5vdCBzZWxmLmZvcmNlX3JlZ2VuZXJhdGU6Ci0gICAg
ICAgICAgICAgICAga2V5X2NlcnQgPSBzZWxmLl9sb2FkX2hvc3RfY2VydChob3N0cykKLSAgICAg
ICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAgICAga2V5X2NlcnQgPSBOb25lCi0gICAgICAgICAg
ICBpZiBrZXlfY2VydCBpcyBOb25lOgotICAgICAgICAgICAgICAgIGtleSwgY2VydCA9IHNlbGYu
X2dlbmVyYXRlX2hvc3RfY2VydChob3N0cykKLSAgICAgICAgICAgIGVsc2U6Ci0gICAgICAgICAg
ICAgICAga2V5LCBjZXJ0ID0ga2V5X2NlcnQKLSAgICAgICAgICAgIHNlbGYuaG9zdF9jZXJ0aWZp
Y2F0ZXNbaG9zdHNdID0ga2V5LCBjZXJ0Ci0KLSAgICAgICAgcmV0dXJuIHNlbGYuaG9zdF9jZXJ0
aWZpY2F0ZXNbaG9zdHNdCi0KLSAgICBkZWYgX2xvYWRfaG9zdF9jZXJ0KHNlbGYsIGhvc3RzKToK
LSAgICAgICAgaG9zdCA9IGhvc3RzWzBdCi0gICAgICAgIGtleV9wYXRoID0gc2VsZi5wYXRoKCIl
cy5rZXkiICUgaG9zdCkKLSAgICAgICAgY2VydF9wYXRoID0gc2VsZi5wYXRoKCIlcy5wZW0iICUg
aG9zdCkKLQotICAgICAgICAjIFRPRE86IGNoZWNrIHRoYXQgdGhpcyBjZXJ0IHdhcyBzaWduZWQg
YnkgdGhlIENBIGNlcnQKLSAgICAgICAgaWYgc2VsZi5jaGVja19rZXlfY2VydChrZXlfcGF0aCwg
Y2VydF9wYXRoLCBob3N0cyk6Ci0gICAgICAgICAgICBzZWxmLmxvZ2dlci5pbmZvKCJVc2luZyBl
eGlzdGluZyBob3N0IGNlcnQiKQotICAgICAgICAgICAgcmV0dXJuIGtleV9wYXRoLCBjZXJ0X3Bh
dGgKLQotICAgIGRlZiBfZ2VuZXJhdGVfaG9zdF9jZXJ0KHNlbGYsIGhvc3RzKToKLSAgICAgICAg
aG9zdCA9IGhvc3RzWzBdCi0gICAgICAgIGlmIHNlbGYuX2NhX2tleV9wYXRoIGlzIE5vbmU6Ci0g
ICAgICAgICAgICBzZWxmLl9nZW5lcmF0ZV9jYSgpCi0gICAgICAgIGNhX2tleV9wYXRoID0gc2Vs
Zi5fY2Ffa2V5X3BhdGgKLQotICAgICAgICBhc3NlcnQgb3MucGF0aC5leGlzdHMoY2Ffa2V5X3Bh
dGgpCi0KLSAgICAgICAgcGF0aCA9IHNlbGYucGF0aAotCi0gICAgICAgIHJlcV9wYXRoID0gcGF0
aCgid3B0LnJlcSIpCi0gICAgICAgIGNlcnRfcGF0aCA9IHBhdGgoIiVzLnBlbSIgJSBob3N0KQot
ICAgICAgICBrZXlfcGF0aCA9IHBhdGgoIiVzLmtleSIgJSBob3N0KQotCi0gICAgICAgIHNlbGYu
bG9nZ2VyLmluZm8oIkdlbmVyYXRpbmcgbmV3IGhvc3QgY2VydCIpCi0KLSAgICAgICAgd2l0aCBz
ZWxmLl9jb25maWdfb3BlbnNzbChob3N0cykgYXMgb3BlbnNzbDoKLSAgICAgICAgICAgIG9wZW5z
c2woInJlcSIsCi0gICAgICAgICAgICAgICAgICAgICItYmF0Y2giLAotICAgICAgICAgICAgICAg
ICAgICAiLW5ld2tleSIsICJyc2E6MjA0OCIsCi0gICAgICAgICAgICAgICAgICAgICIta2V5b3V0
Iiwga2V5X3BhdGgsCi0gICAgICAgICAgICAgICAgICAgICItaW4iLCBjYV9rZXlfcGF0aCwKLSAg
ICAgICAgICAgICAgICAgICAgIi1ub2RlcyIsCi0gICAgICAgICAgICAgICAgICAgICItb3V0Iiwg
cmVxX3BhdGgpCi0KLSAgICAgICAgICAgIG9wZW5zc2woImNhIiwKLSAgICAgICAgICAgICAgICAg
ICAgIi1iYXRjaCIsCi0gICAgICAgICAgICAgICAgICAgICItaW4iLCByZXFfcGF0aCwKLSAgICAg
ICAgICAgICAgICAgICAgIi1wYXNzaW4iLCAicGFzczolcyIgJSBzZWxmLnBhc3N3b3JkLAotICAg
ICAgICAgICAgICAgICAgICAiLXN1YmoiLCBtYWtlX3N1YmplY3QoaG9zdCksCi0gICAgICAgICAg
ICAgICAgICAgICItb3V0IiwgY2VydF9wYXRoKQotCi0gICAgICAgIG9zLnVubGluayhyZXFfcGF0
aCkKLQotICAgICAgICByZXR1cm4ga2V5X3BhdGgsIGNlcnRfcGF0aApkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9zc2x1dGlscy9w
cmVnZW5lcmF0ZWQucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3NzbHV0aWxzL3ByZWdlbmVyYXRlZC5weQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggZmM0ODdkZjNhZGQwMzkxYzNlZjcxYjY5ZWQ5ZjM3NzM0ZjE0Mjg5MS4uMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3NzbHV0aWxzL3ByZWdlbmVyYXRlZC5w
eQorKysgL2Rldi9udWxsCkBAIC0xLDI2ICswLDAgQEAKLWNsYXNzIFByZWdlbmVyYXRlZFNTTEVu
dmlyb25tZW50KG9iamVjdCk6Ci0gICAgIiIiU1NMIGVudmlyb25tZW50IHRvIHVzZSB3aXRoIGV4
aXN0aW5nIGtleS9jZXJ0aWZpY2F0ZSBmaWxlcwotICAgIGUuZy4gd2hlbiBydW5uaW5nIG9uIGEg
c2VydmVyIHdpdGggYSBwdWJsaWMgZG9tYWluIG5hbWUKLSAgICAiIiIKLSAgICBzc2xfZW5hYmxl
ZCA9IFRydWUKLQotICAgIGRlZiBfX2luaXRfXyhzZWxmLCBsb2dnZXIsIGhvc3Rfa2V5X3BhdGgs
IGhvc3RfY2VydF9wYXRoLAotICAgICAgICAgICAgICAgICBjYV9jZXJ0X3BhdGg9Tm9uZSk6Ci0g
ICAgICAgIHNlbGYuX2NhX2NlcnRfcGF0aCA9IGNhX2NlcnRfcGF0aAotICAgICAgICBzZWxmLl9o
b3N0X2tleV9wYXRoID0gaG9zdF9rZXlfcGF0aAotICAgICAgICBzZWxmLl9ob3N0X2NlcnRfcGF0
aCA9IGhvc3RfY2VydF9wYXRoCi0KLSAgICBkZWYgX19lbnRlcl9fKHNlbGYpOgotICAgICAgICBy
ZXR1cm4gc2VsZgotCi0gICAgZGVmIF9fZXhpdF9fKHNlbGYsICphcmdzLCAqKmt3YXJncyk6Ci0g
ICAgICAgIHBhc3MKLQotICAgIGRlZiBob3N0X2NlcnRfcGF0aChzZWxmLCBob3N0cyk6Ci0gICAg
ICAgICIiIlJldHVybiB0aGUga2V5IGFuZCBjZXJ0aWZpY2F0ZSBwYXRocyBmb3IgdGhlIGhvc3Qi
IiIKLSAgICAgICAgcmV0dXJuIHNlbGYuX2hvc3Rfa2V5X3BhdGgsIHNlbGYuX2hvc3RfY2VydF9w
YXRoCi0KLSAgICBkZWYgY2FfY2VydF9wYXRoKHNlbGYpOgotICAgICAgICAiIiJSZXR1cm4gdGhl
IGNlcnRpZmljYXRlIHBhdGggb2YgdGhlIENBIHRoYXQgc2lnbmVkIHRoZQotICAgICAgICBob3N0
IGNlcnRpZmljYXRlcywgb3IgTm9uZSBpZiB0aGF0IGlzbid0IGtub3duIiIiCi0gICAgICAgIHJl
dHVybiBzZWxmLl9jYV9jZXJ0X3BhdGgKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvc3NsdXRpbHMvdzNjLWltcG9ydC5sb2cgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3NzbHV0aWxz
L3czYy1pbXBvcnQubG9nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4NmMwMTc5Zjg3
NGU5MzBmZGU4NDM0ODUwOTY1ZGFmOTA5MmJkMjU2Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvc3NsdXRpbHMvdzNjLWltcG9ydC5sb2cKKysrIC9kZXYvbnVsbApAQCAt
MSwyMCArMCwwIEBACi1UaGUgdGVzdHMgaW4gdGhpcyBkaXJlY3Rvcnkgd2VyZSBpbXBvcnRlZCBm
cm9tIHRoZSBXM0MgcmVwb3NpdG9yeS4KLURvIE5PVCBtb2RpZnkgdGhlc2UgdGVzdHMgZGlyZWN0
bHkgaW4gV2ViS2l0LgotSW5zdGVhZCwgY3JlYXRlIGEgcHVsbCByZXF1ZXN0IG9uIHRoZSBXUFQg
Z2l0aHViOgotCWh0dHBzOi8vZ2l0aHViLmNvbS93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzCi0KLVRo
ZW4gcnVuIHRoZSBUb29scy9TY3JpcHRzL2ltcG9ydC13M2MtdGVzdHMgaW4gV2ViS2l0IHRvIHJl
aW1wb3J0Ci0KLURvIE5PVCBtb2RpZnkgb3IgcmVtb3ZlIHRoaXMgZmlsZS4KLQotLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tCi1Qcm9wZXJ0aWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi1Qcm9w
ZXJ0eSB2YWx1ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLQotTGlzdCBvZiBmaWxlczoKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3NzbHV0aWxzL19faW5pdF9fLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9zc2x1dGlscy9iYXNlLnB5Ci0vTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9zc2x1dGlscy9vcGVu
c3NsLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy9zc2x1dGlscy9wcmVnZW5lcmF0ZWQucHkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvYXRvbWljd3JpdGVz
Ly5naXRpZ25vcmUgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3RoaXJkX3BhcnR5L2F0b21pY3dyaXRlcy8uZ2l0aWdub3JlCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjJi
MmQzMTI4NzUzZTlmNmYzNDg5NWU3MTgzNTk1ODI5ZDEwNjNhNWEKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJk
X3BhcnR5L2F0b21pY3dyaXRlcy8uZ2l0aWdub3JlCkBAIC0wLDAgKzEsOSBAQAorLnRveAorKi5w
eWMKKyoucHlvCitfX3B5Y2FjaGVfXworKi5lZ2ctaW5mbworZG9jcy9fYnVpbGQKK2J1aWxkCitk
aXN0CisuY2FjaGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvYXRvbWljd3JpdGVzLy50cmF2aXMueW1sIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9w
YXJ0eS9hdG9taWN3cml0ZXMvLnRyYXZpcy55bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTk3NzkwMThhZDMxZTYy
MTBhOGQ5MWViZTE4YzljYWIwZWMwM2ZkZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvYXRvbWlj
d3JpdGVzLy50cmF2aXMueW1sCkBAIC0wLDAgKzEsMzUgQEAKK3N1ZG86IGZhbHNlCitvczogbGlu
dXgKK2xhbmd1YWdlOiBweXRob24KKworbWF0cml4OgorICAgIGluY2x1ZGU6CisgICAgICAgIC0g
b3M6IG9zeAorICAgICAgICAgIGxhbmd1YWdlOiBnZW5lcmljCisgICAgICAgICAgZW52OiBUT1hF
TlZfU1VGRklYPXRlc3QKKworcHl0aG9uOgorICAgIC0gIjIuNiIKKyAgICAtICIyLjciCisgICAg
LSAicHlweSIKKyAgICAtICIzLjMiCisgICAgLSAiMy40IgorCitpbnN0YWxsOgorICAgIC0gIyBU
aGUgT1MgWCBWTSBkb2Vzbid0IGhhdmUgYW55IFB5dGhvbiBzdXBwb3J0IGF0IGFsbAorICAgICAg
IyBTZWUgaHR0cHM6Ly9naXRodWIuY29tL3RyYXZpcy1jaS90cmF2aXMtY2kvaXNzdWVzLzIzMTIK
KyAgICAgIGlmIFsgIiRUUkFWSVNfT1NfTkFNRSIgPSAib3N4IiBdOyB0aGVuCisgICAgICAgICAg
YnJldyB1cGRhdGU7CisgICAgICAgICAgYnJldyBpbnN0YWxsIHB5dGhvbjM7CisgICAgICAgICAg
dmlydHVhbGVudiAtcCBweXRob24zICRIT01FL29zeC1weTM7CisgICAgICAgICAgLiAkSE9NRS9v
c3gtcHkzL2Jpbi9hY3RpdmF0ZTsKKyAgICAgICAgICBleHBvcnQgVFJBVklTX1BZVEhPTl9WRVJT
SU9OPSIkKHB5dGhvbiAtLXZlcnNpb24gfCBjdXQgLWQgJyAnIC1mIDIgfCBjdXQgLWQgLiAtZiAt
MikiOworICAgICAgZmkKKyAgICAtIHBpcCBpbnN0YWxsIHRveAorCitzY3JpcHQ6CisgICAgLSBl
eHBvcnQgVE9YX1BZPSIkKGVjaG8gcHkkVFJBVklTX1BZVEhPTl9WRVJTSU9OIHwgdHIgLWQgLiB8
IHNlZCAtZSAncy9weXB5cHkvcHlweS8nKSIKKyAgICAtIHRveCAtZSAkVE9YX1BZLXRlc3QKKyAg
ICAtIGlmIFsgIiRUUkFWSVNfUFlUSE9OX1ZFUlNJT04iID0gIjIuNyIgXSB8fCBbICIkVFJBVklT
X1BZVEhPTl9WRVJTSU9OIiA9ICIuMy41IiBdOyB0aGVuCisgICAgICAgICAgdG94IC1lICRUT1hf
UFktc3R5bGVjaGVjazsKKyAgICAgIGZpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2F0b21pY3dyaXRlcy9h
dG9taWN3cml0ZXMvdzNjLWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2F0b21pY3dyaXRlcy9hdG9taWN3cml0
ZXMvdzNjLWltcG9ydC5sb2cKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDdlMzc2MmFh
NTZjNTMzNjNmNzEzNGE2MWYwYTI1MTc3N2EzZDI1M2MuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9hdG9taWN3cml0ZXMvYXRvbWljd3JpdGVzL3cz
Yy1pbXBvcnQubG9nCisrKyAvZGV2L251bGwKQEAgLTEsMTcgKzAsMCBAQAotVGhlIHRlc3RzIGlu
IHRoaXMgZGlyZWN0b3J5IHdlcmUgaW1wb3J0ZWQgZnJvbSB0aGUgVzNDIHJlcG9zaXRvcnkuCi1E
byBOT1QgbW9kaWZ5IHRoZXNlIHRlc3RzIGRpcmVjdGx5IGluIFdlYktpdC4KLUluc3RlYWQsIGNy
ZWF0ZSBhIHB1bGwgcmVxdWVzdCBvbiB0aGUgV1BUIGdpdGh1YjoKLQlodHRwczovL2dpdGh1Yi5j
b20vd2ViLXBsYXRmb3JtLXRlc3RzL3dwdAotCi1UaGVuIHJ1biB0aGUgVG9vbHMvU2NyaXB0cy9p
bXBvcnQtdzNjLXRlc3RzIGluIFdlYktpdCB0byByZWltcG9ydAotCi1EbyBOT1QgbW9kaWZ5IG9y
IHJlbW92ZSB0aGlzIGZpbGUuCi0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotUHJvcGVydGllcyByZXF1aXJp
bmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotUHJvcGVydHkgdmFsdWVzIHJlcXVpcmluZyB2ZW5k
b3IgcHJlZml4ZXM6Ci1Ob25lCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLUxpc3Qgb2YgZmlsZXM6Ci0vTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0
eS9hdG9taWN3cml0ZXMvYXRvbWljd3JpdGVzL19faW5pdF9fLnB5CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5
L2F0b21pY3dyaXRlcy9kb2NzL3czYy1pbXBvcnQubG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9hdG9taWN3cml0ZXMvZG9j
cy93M2MtaW1wb3J0LmxvZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZmJjY2JiMmQ0
ZGJkOTgzNmE2ZmJmZmI2N2RmMTgxMDMzOWZiYjBlOS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2F0b21pY3dyaXRlcy9kb2NzL3czYy1pbXBvcnQu
bG9nCisrKyAvZGV2L251bGwKQEAgLTEsMjAgKzAsMCBAQAotVGhlIHRlc3RzIGluIHRoaXMgZGly
ZWN0b3J5IHdlcmUgaW1wb3J0ZWQgZnJvbSB0aGUgVzNDIHJlcG9zaXRvcnkuCi1EbyBOT1QgbW9k
aWZ5IHRoZXNlIHRlc3RzIGRpcmVjdGx5IGluIFdlYktpdC4KLUluc3RlYWQsIGNyZWF0ZSBhIHB1
bGwgcmVxdWVzdCBvbiB0aGUgV1BUIGdpdGh1YjoKLQlodHRwczovL2dpdGh1Yi5jb20vd2ViLXBs
YXRmb3JtLXRlc3RzL3dwdAotCi1UaGVuIHJ1biB0aGUgVG9vbHMvU2NyaXB0cy9pbXBvcnQtdzNj
LXRlc3RzIGluIFdlYktpdCB0byByZWltcG9ydAotCi1EbyBOT1QgbW9kaWZ5IG9yIHJlbW92ZSB0
aGlzIGZpbGUuCi0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotUHJvcGVydGllcyByZXF1aXJpbmcgdmVuZG9y
IHByZWZpeGVzOgotTm9uZQotUHJvcGVydHkgdmFsdWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4
ZXM6Ci1Ob25lCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLUxpc3Qgb2YgZmlsZXM6Ci0vTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9hdG9taWN3
cml0ZXMvZG9jcy9NYWtlZmlsZQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvYXRvbWljd3JpdGVzL2RvY3MvY29uZi5weQotL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFy
dHkvYXRvbWljd3JpdGVzL2RvY3MvaW5kZXgucnN0Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9hdG9taWN3cml0ZXMvZG9jcy9t
YWtlLmJhdApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9hdG9taWN3cml0ZXMvdzNjLWltcG9ydC5sb2cgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3Bh
cnR5L2F0b21pY3dyaXRlcy93M2MtaW1wb3J0LmxvZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggYWRhMGZjMDczMzVlNjc2NGJmOTFhNmE4MmUxYzE1YTVmY2NlNmE3My4uMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2F0b21pY3dyaXRlcy93
M2MtaW1wb3J0LmxvZworKysgL2Rldi9udWxsCkBAIC0xLDI1ICswLDAgQEAKLVRoZSB0ZXN0cyBp
biB0aGlzIGRpcmVjdG9yeSB3ZXJlIGltcG9ydGVkIGZyb20gdGhlIFczQyByZXBvc2l0b3J5Lgot
RG8gTk9UIG1vZGlmeSB0aGVzZSB0ZXN0cyBkaXJlY3RseSBpbiBXZWJLaXQuCi1JbnN0ZWFkLCBj
cmVhdGUgYSBwdWxsIHJlcXVlc3Qgb24gdGhlIFdQVCBnaXRodWI6Ci0JaHR0cHM6Ly9naXRodWIu
Y29tL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQKLQotVGhlbiBydW4gdGhlIFRvb2xzL1NjcmlwdHMv
aW1wb3J0LXczYy10ZXN0cyBpbiBXZWJLaXQgdG8gcmVpbXBvcnQKLQotRG8gTk9UIG1vZGlmeSBv
ciByZW1vdmUgdGhpcyBmaWxlLgotCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLVByb3BlcnRpZXMgcmVxdWly
aW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLVByb3BlcnR5IHZhbHVlcyByZXF1aXJpbmcgdmVu
ZG9yIHByZWZpeGVzOgotTm9uZQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1MaXN0IG9mIGZpbGVzOgotL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFy
dHkvYXRvbWljd3JpdGVzL0NPTlRSSUJVVElORy5yc3QKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2F0b21pY3dyaXRlcy9MSUNF
TlNFCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90
aGlyZF9wYXJ0eS9hdG9taWN3cml0ZXMvTUFOSUZFU1QuaW4KLS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2F0b21pY3dyaXRlcy9N
YWtlZmlsZQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvdGhpcmRfcGFydHkvYXRvbWljd3JpdGVzL1JFQURNRS5yc3QKLS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2F0b21pY3dyaXRl
cy9hcHB2ZXlvci55bWwKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2F0b21pY3dyaXRlcy9zZXR1cC5jZmcKLS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2F0b21p
Y3dyaXRlcy9zZXR1cC5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvYXRvbWljd3JpdGVzL3RveC5pbmkKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRf
cGFydHkvYXR0cnMvLmdpdGh1Yi93M2MtaW1wb3J0LmxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvYXR0cnMvLmdpdGh1Yi93
M2MtaW1wb3J0LmxvZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZDdhNzE4ZDg2NDcx
Y2FjYjY5NWJhNjNhN2I2MDc0Yzk4NmE3ZTdiNS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2F0dHJzLy5naXRodWIvdzNjLWltcG9ydC5sb2cKKysr
IC9kZXYvbnVsbApAQCAtMSwxOSArMCwwIEBACi1UaGUgdGVzdHMgaW4gdGhpcyBkaXJlY3Rvcnkg
d2VyZSBpbXBvcnRlZCBmcm9tIHRoZSBXM0MgcmVwb3NpdG9yeS4KLURvIE5PVCBtb2RpZnkgdGhl
c2UgdGVzdHMgZGlyZWN0bHkgaW4gV2ViS2l0LgotSW5zdGVhZCwgY3JlYXRlIGEgcHVsbCByZXF1
ZXN0IG9uIHRoZSBXUFQgZ2l0aHViOgotCWh0dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxhdGZvcm0t
dGVzdHMvd3B0Ci0KLVRoZW4gcnVuIHRoZSBUb29scy9TY3JpcHRzL2ltcG9ydC13M2MtdGVzdHMg
aW4gV2ViS2l0IHRvIHJlaW1wb3J0Ci0KLURvIE5PVCBtb2RpZnkgb3IgcmVtb3ZlIHRoaXMgZmls
ZS4KLQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1Qcm9wZXJ0aWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4
ZXM6Ci1Ob25lCi1Qcm9wZXJ0eSB2YWx1ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5v
bmUKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLQotTGlzdCBvZiBmaWxlczoKLS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2F0dHJzLy5naXRodWIv
Q09ERV9PRl9DT05EVUNULnJzdAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvYXR0cnMvLmdpdGh1Yi9DT05UUklCVVRJTkcucnN0
Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS9hdHRycy8uZ2l0aHViL1BVTExfUkVRVUVTVF9URU1QTEFURS5tZApkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS9hdHRycy8uZ2l0aWdub3JlIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9hdHRycy8uZ2l0aWdub3JlCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjZjODk1ZWUxZGI3Mjc4OGYzYzMyMGM3ODc4ZGI5NmZiOGRlOGJhOGYKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3RoaXJkX3BhcnR5L2F0dHJzLy5naXRpZ25vcmUKQEAgLTAsMCArMSwxMSBAQAorKi5weWMKKyou
ZWdnLWluZm8KKy5jYWNoZQorLmNvdmVyYWdlKgorLmh5cG90aGVzaXMKKy5weXRlc3RfY2FjaGUK
Ky50b3gKK2J1aWxkCitkaXN0Citkb2NzL19idWlsZC8KK2h0bWxjb3YKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFy
dHkvYXR0cnMvLnJlYWR0aGVkb2NzLnltbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvYXR0cnMvLnJlYWR0aGVkb2NzLnltbApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi5hNGI2ZjQzMTA2NmY1NzlhN2Q2Nzg5YWZmZTYxMjIzOWVkODljMTZhCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy90aGlyZF9wYXJ0eS9hdHRycy8ucmVhZHRoZWRvY3MueW1sCkBAIC0wLDAgKzEsNiBA
QAorLS0tCitweXRob246CisgIHZlcnNpb246IDMKKyAgcGlwX2luc3RhbGw6IHRydWUKKyAgZXh0
cmFfcmVxdWlyZW1lbnRzOgorICAgIC0gZG9jcwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9hdHRycy8udHJh
dmlzLnltbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvdGhpcmRfcGFydHkvYXR0cnMvLnRyYXZpcy55bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uN2M5OGIyMWE2Mzdk
ZmM4ZTc0ZjBiZTQzNWVmODAyYTNmYmI1MDFmNQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvYXR0
cnMvLnRyYXZpcy55bWwKQEAgLTAsMCArMSw2OSBAQAorZGlzdDogdHJ1c3R5Citncm91cDogdHJh
dmlzX2xhdGVzdAorc3VkbzogZmFsc2UKK2NhY2hlOgorICBkaXJlY3RvcmllczoKKyAgICAtICRI
T01FLy5jYWNoZS9waXAKKworbGFuZ3VhZ2U6IHB5dGhvbgorCisKK21hdHJpeDoKKyAgZmFzdF9m
aW5pc2g6IHRydWUKKworICBpbmNsdWRlOgorICAgIC0gcHl0aG9uOiAiMi43IgorICAgICAgZW52
OiBUT1hFTlY9cHkyNworICAgIC0gcHl0aG9uOiAiMy40IgorICAgICAgZW52OiBUT1hFTlY9cHkz
NAorICAgIC0gcHl0aG9uOiAiMy41IgorICAgICAgZW52OiBUT1hFTlY9cHkzNQorICAgIC0gcHl0
aG9uOiAiMy42IgorICAgICAgZW52OiBUT1hFTlY9cHkzNgorICAgIC0gcHl0aG9uOiAicHlweSIK
KyAgICAgIGVudjogVE9YRU5WPXB5cHkKKyAgICAtIHB5dGhvbjogInB5cHkzIgorICAgICAgZW52
OiBUT1hFTlY9cHlweTMKKworICAgICMgUHJldmVudCBicmVha2FnZSBieSBhIG5ldyByZWxlYXNl
cworICAgIC0gcHl0aG9uOiAiMy42LWRldiIKKyAgICAgIGVudjogVE9YRU5WPXB5MzYKKyAgICAt
IHB5dGhvbjogIjMuNy1kZXYiCisgICAgICBlbnY6IFRPWEVOVj1weTM3CisKKyAgICAjIE1ldGEK
KyAgICAtIHB5dGhvbjogIjMuNiIKKyAgICAgIGVudjogVE9YRU5WPWZsYWtlOAorICAgIC0gcHl0
aG9uOiAiMy42IgorICAgICAgZW52OiBUT1hFTlY9bWFuaWZlc3QKKyAgICAtIHB5dGhvbjogIjMu
NiIKKyAgICAgIGVudjogVE9YRU5WPWRvY3MKKyAgICAtIHB5dGhvbjogIjMuNiIKKyAgICAgIGVu
djogVE9YRU5WPXJlYWRtZQorICAgIC0gcHl0aG9uOiAiMy42IgorICAgICAgZW52OiBUT1hFTlY9
Y2hhbmdlbG9nCisKKyAgYWxsb3dfZmFpbHVyZXM6CisgICAgLSBweXRob246ICIzLjYtZGV2Igor
ICAgIC0gcHl0aG9uOiAiMy43LWRldiIKKworCitpbnN0YWxsOgorICAtIHBpcCBpbnN0YWxsIHRv
eAorCisKK3NjcmlwdDoKKyAgLSB0b3gKKworCitiZWZvcmVfaW5zdGFsbDoKKyAgLSBwaXAgaW5z
dGFsbCBjb2RlY292CisKKworYWZ0ZXJfc3VjY2VzczoKKyAgLSB0b3ggLWUgY292ZXJhZ2UtcmVw
b3J0CisgIC0gY29kZWNvdgorCisKK25vdGlmaWNhdGlvbnM6CisgIGVtYWlsOiBmYWxzZQpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy90aGlyZF9wYXJ0eS9hdHRycy9jaGFuZ2Vsb2cuZC8uZ2l0aWdub3JlIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9hdHRycy9j
aGFuZ2Vsb2cuZC8uZ2l0aWdub3JlCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmU2OWRlMjliYjJkMWQ2NDM0YjhiMjlh
ZTc3NWFkOGMyZTQ4YzUzOTEKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvYXR0cnMvY2hhbmdlbG9nLmQvdzNj
LWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3RoaXJkX3BhcnR5L2F0dHJzL2NoYW5nZWxvZy5kL3czYy1pbXBvcnQubG9nCmRlbGV0
ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwOWZlMTYwMWQyNjRhMTZmODljMzQ4Y2U2NTQxYzVl
NTk0M2VhMTcyLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRf
cGFydHkvYXR0cnMvY2hhbmdlbG9nLmQvdzNjLWltcG9ydC5sb2cKKysrIC9kZXYvbnVsbApAQCAt
MSwzNyArMCwwIEBACi1UaGUgdGVzdHMgaW4gdGhpcyBkaXJlY3Rvcnkgd2VyZSBpbXBvcnRlZCBm
cm9tIHRoZSBXM0MgcmVwb3NpdG9yeS4KLURvIE5PVCBtb2RpZnkgdGhlc2UgdGVzdHMgZGlyZWN0
bHkgaW4gV2ViS2l0LgotSW5zdGVhZCwgY3JlYXRlIGEgcHVsbCByZXF1ZXN0IG9uIHRoZSBXUFQg
Z2l0aHViOgotCWh0dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxhdGZvcm0tdGVzdHMvd3B0Ci0KLVRo
ZW4gcnVuIHRoZSBUb29scy9TY3JpcHRzL2ltcG9ydC13M2MtdGVzdHMgaW4gV2ViS2l0IHRvIHJl
aW1wb3J0Ci0KLURvIE5PVCBtb2RpZnkgb3IgcmVtb3ZlIHRoaXMgZmlsZS4KLQotLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tCi1Qcm9wZXJ0aWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi1Qcm9w
ZXJ0eSB2YWx1ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLQotTGlzdCBvZiBmaWxlczoKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2F0dHJzL2NoYW5nZWxvZy5kLzE3OC5jaGFuZ2Uu
cnN0Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90
aGlyZF9wYXJ0eS9hdHRycy9jaGFuZ2Vsb2cuZC8yOTAuY2hhbmdlLnJzdAotL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvYXR0cnMv
Y2hhbmdlbG9nLmQvMzAwLmNoYW5nZS5yc3QKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2F0dHJzL2NoYW5nZWxvZy5kLzMxMS5j
aGFuZ2UucnN0Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy90aGlyZF9wYXJ0eS9hdHRycy9jaGFuZ2Vsb2cuZC8zMjEuY2hhbmdlLnJzdAotL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkv
YXR0cnMvY2hhbmdlbG9nLmQvMzIyLmNoYW5nZS5yc3QKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2F0dHJzL2NoYW5nZWxvZy5k
LzMyMy5jaGFuZ2UucnN0Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy90aGlyZF9wYXJ0eS9hdHRycy9jaGFuZ2Vsb2cuZC8zMjYuY2hhbmdlLnJzdAot
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRf
cGFydHkvYXR0cnMvY2hhbmdlbG9nLmQvMzMxLmNoYW5nZS5yc3QKLS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2F0dHJzL2NoYW5n
ZWxvZy5kLzMzMi5jaGFuZ2UucnN0Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9hdHRycy9jaGFuZ2Vsb2cuZC8zMzQuY2hhbmdl
LnJzdAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
dGhpcmRfcGFydHkvYXR0cnMvY2hhbmdlbG9nLmQvMzM2LmNoYW5nZS5yc3QKLS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2F0dHJz
L2NoYW5nZWxvZy5kLzMzOS5jaGFuZ2UucnN0Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9hdHRycy9jaGFuZ2Vsb2cuZC8zNDMu
Y2hhbmdlLnJzdAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvdGhpcmRfcGFydHkvYXR0cnMvY2hhbmdlbG9nLmQvMzQ5LmNoYW5nZS5yc3QKLS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5
L2F0dHJzL2NoYW5nZWxvZy5kLzM1Ni5jaGFuZ2UucnN0Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9hdHRycy9jaGFuZ2Vsb2cu
ZC8zNjMuY2hhbmdlLnJzdAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvYXR0cnMvY2hhbmdlbG9nLmQvMzY5LmNoYW5nZS5yc3QK
LS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJk
X3BhcnR5L2F0dHJzL2NoYW5nZWxvZy5kLzM3MC5jaGFuZ2UucnN0Ci0vTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9hdHRycy9jaGFu
Z2Vsb2cuZC85NS5jaGFuZ2UucnN0Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9hdHRycy9jaGFuZ2Vsb2cuZC90b3duY3JpZXJf
dGVtcGxhdGUucnN0CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2F0dHJzL2RvY3MvX3N0YXRpYy93M2MtaW1w
b3J0LmxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvdGhpcmRfcGFydHkvYXR0cnMvZG9jcy9fc3RhdGljL3czYy1pbXBvcnQubG9nCmRlbGV0ZWQg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5NGMwMDE0MjJiYWVkZTFkMjhhMzEyMzhjYmM0ZWQ0YjI2
YzA4NWU5Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFy
dHkvYXR0cnMvZG9jcy9fc3RhdGljL3czYy1pbXBvcnQubG9nCisrKyAvZGV2L251bGwKQEAgLTEs
MTggKzAsMCBAQAotVGhlIHRlc3RzIGluIHRoaXMgZGlyZWN0b3J5IHdlcmUgaW1wb3J0ZWQgZnJv
bSB0aGUgVzNDIHJlcG9zaXRvcnkuCi1EbyBOT1QgbW9kaWZ5IHRoZXNlIHRlc3RzIGRpcmVjdGx5
IGluIFdlYktpdC4KLUluc3RlYWQsIGNyZWF0ZSBhIHB1bGwgcmVxdWVzdCBvbiB0aGUgV1BUIGdp
dGh1YjoKLQlodHRwczovL2dpdGh1Yi5jb20vd2ViLXBsYXRmb3JtLXRlc3RzL3dwdAotCi1UaGVu
IHJ1biB0aGUgVG9vbHMvU2NyaXB0cy9pbXBvcnQtdzNjLXRlc3RzIGluIFdlYktpdCB0byByZWlt
cG9ydAotCi1EbyBOT1QgbW9kaWZ5IG9yIHJlbW92ZSB0aGlzIGZpbGUuCi0KLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLQotUHJvcGVydGllcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotUHJvcGVy
dHkgdmFsdWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0KLUxpc3Qgb2YgZmlsZXM6Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9hdHRycy9kb2NzL19zdGF0aWMvYXR0cnNfbG9nby5w
bmcKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3Ro
aXJkX3BhcnR5L2F0dHJzL2RvY3MvX3N0YXRpYy9hdHRyc19sb2dvLnN2ZwpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9w
YXJ0eS9hdHRycy9kb2NzL3czYy1pbXBvcnQubG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9hdHRycy9kb2NzL3czYy1pbXBv
cnQubG9nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4NjM0ZWM5YmU5NzI4NjExN2M5
ZGNlZDY2YzFhODE5ZGYwNGY5ZmI4Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvdGhpcmRfcGFydHkvYXR0cnMvZG9jcy93M2MtaW1wb3J0LmxvZworKysgL2Rldi9udWxs
CkBAIC0xLDMzICswLDAgQEAKLVRoZSB0ZXN0cyBpbiB0aGlzIGRpcmVjdG9yeSB3ZXJlIGltcG9y
dGVkIGZyb20gdGhlIFczQyByZXBvc2l0b3J5LgotRG8gTk9UIG1vZGlmeSB0aGVzZSB0ZXN0cyBk
aXJlY3RseSBpbiBXZWJLaXQuCi1JbnN0ZWFkLCBjcmVhdGUgYSBwdWxsIHJlcXVlc3Qgb24gdGhl
IFdQVCBnaXRodWI6Ci0JaHR0cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQK
LQotVGhlbiBydW4gdGhlIFRvb2xzL1NjcmlwdHMvaW1wb3J0LXczYy10ZXN0cyBpbiBXZWJLaXQg
dG8gcmVpbXBvcnQKLQotRG8gTk9UIG1vZGlmeSBvciByZW1vdmUgdGhpcyBmaWxlLgotCi0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0KLVByb3BlcnRpZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUK
LVByb3BlcnR5IHZhbHVlcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tCi1MaXN0IG9mIGZpbGVzOgotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvYXR0cnMvZG9jcy9NYWtlZmlsZQotL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFy
dHkvYXR0cnMvZG9jcy9hcGkucnN0Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9hdHRycy9kb2NzL2JhY2t3YXJkLWNvbXBhdGli
aWxpdHkucnN0Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy90aGlyZF9wYXJ0eS9hdHRycy9kb2NzL2NoYW5nZWxvZy5yc3QKLS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2F0dHJzL2Rv
Y3MvY29uZi5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvdGhpcmRfcGFydHkvYXR0cnMvZG9jcy9jb250cmlidXRpbmcucnN0Ci0vTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9hdHRy
cy9kb2NzL2RvY3V0aWxzLmNvbmYKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2F0dHJzL2RvY3MvZXhhbXBsZXMucnN0Ci0vTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0
eS9hdHRycy9kb2NzL2V4dGVuZGluZy5yc3QKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2F0dHJzL2RvY3MvZ2xvc3NhcnkucnN0
Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS9hdHRycy9kb2NzL2hhc2hpbmcucnN0Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9hdHRycy9kb2NzL2hvdy1kb2Vz
LWl0LXdvcmsucnN0Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy90aGlyZF9wYXJ0eS9hdHRycy9kb2NzL2luZGV4LnJzdAotL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvYXR0cnMvZG9j
cy9pbml0LnJzdAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvdGhpcmRfcGFydHkvYXR0cnMvZG9jcy9saWNlbnNlLnJzdAotL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvYXR0cnMvZG9j
cy9vdmVydmlldy5yc3QKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2F0dHJzL2RvY3Mvd2h5LnJzdApkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0
eS9hdHRycy9zcmMvYXR0ci93M2MtaW1wb3J0LmxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvYXR0cnMvc3JjL2F0dHIvdzNj
LWltcG9ydC5sb2cKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDJiNDEyZDEyMjRmNWQ3
NTM4YTE1NTgzZmNkMmUwZGZiYzFiYWFhN2UuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy90aGlyZF9wYXJ0eS9hdHRycy9zcmMvYXR0ci93M2MtaW1wb3J0LmxvZworKysg
L2Rldi9udWxsCkBAIC0xLDI1ICswLDAgQEAKLVRoZSB0ZXN0cyBpbiB0aGlzIGRpcmVjdG9yeSB3
ZXJlIGltcG9ydGVkIGZyb20gdGhlIFczQyByZXBvc2l0b3J5LgotRG8gTk9UIG1vZGlmeSB0aGVz
ZSB0ZXN0cyBkaXJlY3RseSBpbiBXZWJLaXQuCi1JbnN0ZWFkLCBjcmVhdGUgYSBwdWxsIHJlcXVl
c3Qgb24gdGhlIFdQVCBnaXRodWI6Ci0JaHR0cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9ybS10
ZXN0cy93cHQKLQotVGhlbiBydW4gdGhlIFRvb2xzL1NjcmlwdHMvaW1wb3J0LXczYy10ZXN0cyBp
biBXZWJLaXQgdG8gcmVpbXBvcnQKLQotRG8gTk9UIG1vZGlmeSBvciByZW1vdmUgdGhpcyBmaWxl
LgotCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0KLVByb3BlcnRpZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhl
czoKLU5vbmUKLVByb3BlcnR5IHZhbHVlcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9u
ZQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tCi1MaXN0IG9mIGZpbGVzOgotL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvYXR0cnMvc3JjL2F0dHIv
X19pbml0X18ucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3RoaXJkX3BhcnR5L2F0dHJzL3NyYy9hdHRyL19jb21wYXQucHkKLS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2F0dHJz
L3NyYy9hdHRyL19jb25maWcucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2F0dHJzL3NyYy9hdHRyL19mdW5jcy5weQotL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFy
dHkvYXR0cnMvc3JjL2F0dHIvX21ha2UucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2F0dHJzL3NyYy9hdHRyL2NvbnZlcnRl
cnMucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3RoaXJkX3BhcnR5L2F0dHJzL3NyYy9hdHRyL2V4Y2VwdGlvbnMucHkKLS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2F0dHJzL3Ny
Yy9hdHRyL2ZpbHRlcnMucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2F0dHJzL3NyYy9hdHRyL3ZhbGlkYXRvcnMucHkKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvdGhpcmRfcGFydHkvYXR0cnMvdGVzdHMvX19pbml0X18ucHkgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2F0dHJzL3Rlc3Rz
L19faW5pdF9fLnB5CmluZGV4IGE2ODM0YjgyODVhNTZiZWYwZTE1NDNmZDkwMWM3ZTZmMmY4YmMy
MDIuLmU2OWRlMjliYjJkMWQ2NDM0YjhiMjlhZTc3NWFkOGMyZTQ4YzUzOTEgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRf
cGFydHkvYXR0cnMvdGVzdHMvX19pbml0X18ucHkKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9hdHRycy90ZXN0cy9fX2lu
aXRfXy5weQpAQCAtMSArMCwwIEBACi0jIFRoaXMgZmlsZSBpcyByZXF1aXJlZCBmb3IgUHl0aG9u
IHRvIHNlYXJjaCB0aGlzIGRpcmVjdG9yeSBmb3IgbW9kdWxlcy4KXCBObyBuZXdsaW5lIGF0IGVu
ZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2F0dHJzL3Rlc3RzL3czYy1pbXBvcnQubG9nIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9w
YXJ0eS9hdHRycy90ZXN0cy93M2MtaW1wb3J0LmxvZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggNDBjOGQ1M2FmMGZlYWI0YTYxMTg2YWE2MzI0OTdjNTZiNzJmYzdhNS4uMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2F0dHJzL3Rlc3RzL3cz
Yy1pbXBvcnQubG9nCisrKyAvZGV2L251bGwKQEAgLTEsMzAgKzAsMCBAQAotVGhlIHRlc3RzIGlu
IHRoaXMgZGlyZWN0b3J5IHdlcmUgaW1wb3J0ZWQgZnJvbSB0aGUgVzNDIHJlcG9zaXRvcnkuCi1E
byBOT1QgbW9kaWZ5IHRoZXNlIHRlc3RzIGRpcmVjdGx5IGluIFdlYktpdC4KLUluc3RlYWQsIGNy
ZWF0ZSBhIHB1bGwgcmVxdWVzdCBvbiB0aGUgV1BUIGdpdGh1YjoKLQlodHRwczovL2dpdGh1Yi5j
b20vd2ViLXBsYXRmb3JtLXRlc3RzL3dwdAotCi1UaGVuIHJ1biB0aGUgVG9vbHMvU2NyaXB0cy9p
bXBvcnQtdzNjLXRlc3RzIGluIFdlYktpdCB0byByZWltcG9ydAotCi1EbyBOT1QgbW9kaWZ5IG9y
IHJlbW92ZSB0aGlzIGZpbGUuCi0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotUHJvcGVydGllcyByZXF1aXJp
bmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotUHJvcGVydHkgdmFsdWVzIHJlcXVpcmluZyB2ZW5k
b3IgcHJlZml4ZXM6Ci1Ob25lCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLUxpc3Qgb2YgZmlsZXM6Ci0vTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0
eS9hdHRycy90ZXN0cy9fX2luaXRfXy5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvYXR0cnMvdGVzdHMvc3RyYXRlZ2llcy5w
eQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhp
cmRfcGFydHkvYXR0cnMvdGVzdHMvdGVzdF9hbm5vdGF0aW9ucy5weQotL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvYXR0cnMvdGVz
dHMvdGVzdF9jb25maWcucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2F0dHJzL3Rlc3RzL3Rlc3RfY29udmVydGVycy5weQot
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRf
cGFydHkvYXR0cnMvdGVzdHMvdGVzdF9kYXJrX21hZ2ljLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9hdHRycy90ZXN0cy90
ZXN0X2R1bmRlcnMucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2F0dHJzL3Rlc3RzL3Rlc3RfZmlsdGVycy5weQotL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkv
YXR0cnMvdGVzdHMvdGVzdF9mdW5jcy5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvYXR0cnMvdGVzdHMvdGVzdF9pbml0X3N1
YmNsYXNzLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy90aGlyZF9wYXJ0eS9hdHRycy90ZXN0cy90ZXN0X21ha2UucHkKLS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2F0dHJzL3Rl
c3RzL3Rlc3Rfc2xvdHMucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2F0dHJzL3Rlc3RzL3Rlc3RfdmFsaWRhdG9ycy5weQot
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRf
cGFydHkvYXR0cnMvdGVzdHMvdXRpbHMucHkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvYXR0cnMvdzNjLWlt
cG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3RoaXJkX3BhcnR5L2F0dHJzL3czYy1pbXBvcnQubG9nCmRlbGV0ZWQgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCA3Y2FiOTIzNjA1Y2YxZmIwNDMzMDE0MzllN2JkYjJmYmUwMTdkNzY3Li4wMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvYXR0cnMvdzNj
LWltcG9ydC5sb2cKKysrIC9kZXYvbnVsbApAQCAtMSwyNiArMCwwIEBACi1UaGUgdGVzdHMgaW4g
dGhpcyBkaXJlY3Rvcnkgd2VyZSBpbXBvcnRlZCBmcm9tIHRoZSBXM0MgcmVwb3NpdG9yeS4KLURv
IE5PVCBtb2RpZnkgdGhlc2UgdGVzdHMgZGlyZWN0bHkgaW4gV2ViS2l0LgotSW5zdGVhZCwgY3Jl
YXRlIGEgcHVsbCByZXF1ZXN0IG9uIHRoZSBXUFQgZ2l0aHViOgotCWh0dHBzOi8vZ2l0aHViLmNv
bS93ZWItcGxhdGZvcm0tdGVzdHMvd3B0Ci0KLVRoZW4gcnVuIHRoZSBUb29scy9TY3JpcHRzL2lt
cG9ydC13M2MtdGVzdHMgaW4gV2ViS2l0IHRvIHJlaW1wb3J0Ci0KLURvIE5PVCBtb2RpZnkgb3Ig
cmVtb3ZlIHRoaXMgZmlsZS4KLQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1Qcm9wZXJ0aWVzIHJlcXVpcmlu
ZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi1Qcm9wZXJ0eSB2YWx1ZXMgcmVxdWlyaW5nIHZlbmRv
ciBwcmVmaXhlczoKLU5vbmUKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotTGlzdCBvZiBmaWxlczoKLS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5
L2F0dHJzL0FVVEhPUlMucnN0Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9hdHRycy9DSEFOR0VMT0cucnN0Ci0vTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9hdHRy
cy9MSUNFTlNFCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy90aGlyZF9wYXJ0eS9hdHRycy9NQU5JRkVTVC5pbgotL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvYXR0cnMvUkVBRE1FLnJz
dAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhp
cmRfcGFydHkvYXR0cnMvY29uZnRlc3QucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2F0dHJzL3B5cHJvamVjdC50b21sCi0v
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9w
YXJ0eS9hdHRycy9zZXR1cC5jZmcKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2F0dHJzL3NldHVwLnB5Ci0vTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9hdHRycy90
b3guaW5pCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2NlcnRpZmkvY2VydGlmaS5lZ2ctaW5mby93M2MtaW1w
b3J0LmxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvdGhpcmRfcGFydHkvY2VydGlmaS9jZXJ0aWZpLmVnZy1pbmZvL3czYy1pbXBvcnQubG9nCmRl
bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5NjNhYzAyYTExN2I2ODE0MTU2NDY4NmU1MDYy
ZDkzNzZhOWMzYmExLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0t
LSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhp
cmRfcGFydHkvY2VydGlmaS9jZXJ0aWZpLmVnZy1pbmZvL3czYy1pbXBvcnQubG9nCisrKyAvZGV2
L251bGwKQEAgLTEsMjEgKzAsMCBAQAotVGhlIHRlc3RzIGluIHRoaXMgZGlyZWN0b3J5IHdlcmUg
aW1wb3J0ZWQgZnJvbSB0aGUgVzNDIHJlcG9zaXRvcnkuCi1EbyBOT1QgbW9kaWZ5IHRoZXNlIHRl
c3RzIGRpcmVjdGx5IGluIFdlYktpdC4KLUluc3RlYWQsIGNyZWF0ZSBhIHB1bGwgcmVxdWVzdCBv
biB0aGUgV1BUIGdpdGh1YjoKLQlodHRwczovL2dpdGh1Yi5jb20vd2ViLXBsYXRmb3JtLXRlc3Rz
L3dwdAotCi1UaGVuIHJ1biB0aGUgVG9vbHMvU2NyaXB0cy9pbXBvcnQtdzNjLXRlc3RzIGluIFdl
YktpdCB0byByZWltcG9ydAotCi1EbyBOT1QgbW9kaWZ5IG9yIHJlbW92ZSB0aGlzIGZpbGUuCi0K
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLQotUHJvcGVydGllcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgot
Tm9uZQotUHJvcGVydHkgdmFsdWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0KLUxpc3Qgb2YgZmlsZXM6Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9jZXJ0aWZpL2NlcnRpZmkuZWdn
LWluZm8vUEtHLUlORk8KLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2NlcnRpZmkvY2VydGlmaS5lZ2ctaW5mby9TT1VSQ0VTLnR4
dAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhp
cmRfcGFydHkvY2VydGlmaS9jZXJ0aWZpLmVnZy1pbmZvL2RlcGVuZGVuY3lfbGlua3MudHh0Ci0v
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9w
YXJ0eS9jZXJ0aWZpL2NlcnRpZmkuZWdnLWluZm8vbm90LXppcC1zYWZlCi0vTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9jZXJ0aWZp
L2NlcnRpZmkuZWdnLWluZm8vdG9wX2xldmVsLnR4dApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9jZXJ0aWZp
L2NlcnRpZmkvdzNjLWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2NlcnRpZmkvY2VydGlmaS93M2MtaW1wb3J0
LmxvZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYWU3ZGRhYjNjZDQyYWI4MmM2M2Uy
YzdjNDdlZDk1MDYxYTI5N2Q2ZS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3RoaXJkX3BhcnR5L2NlcnRpZmkvY2VydGlmaS93M2MtaW1wb3J0LmxvZworKysgL2Rldi9u
dWxsCkBAIC0xLDIwICswLDAgQEAKLVRoZSB0ZXN0cyBpbiB0aGlzIGRpcmVjdG9yeSB3ZXJlIGlt
cG9ydGVkIGZyb20gdGhlIFczQyByZXBvc2l0b3J5LgotRG8gTk9UIG1vZGlmeSB0aGVzZSB0ZXN0
cyBkaXJlY3RseSBpbiBXZWJLaXQuCi1JbnN0ZWFkLCBjcmVhdGUgYSBwdWxsIHJlcXVlc3Qgb24g
dGhlIFdQVCBnaXRodWI6Ci0JaHR0cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9ybS10ZXN0cy93
cHQKLQotVGhlbiBydW4gdGhlIFRvb2xzL1NjcmlwdHMvaW1wb3J0LXczYy10ZXN0cyBpbiBXZWJL
aXQgdG8gcmVpbXBvcnQKLQotRG8gTk9UIG1vZGlmeSBvciByZW1vdmUgdGhpcyBmaWxlLgotCi0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0KLVByb3BlcnRpZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5v
bmUKLVByb3BlcnR5IHZhbHVlcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tCi1MaXN0IG9mIGZpbGVzOgotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvY2VydGlmaS9jZXJ0aWZpL19faW5p
dF9fLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy90aGlyZF9wYXJ0eS9jZXJ0aWZpL2NlcnRpZmkvX19tYWluX18ucHkKLS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2NlcnRpZmkv
Y2VydGlmaS9jYWNlcnQucGVtCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9jZXJ0aWZpL2NlcnRpZmkvY29yZS5weQpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90
aGlyZF9wYXJ0eS9jZXJ0aWZpL3NldHVwLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9jZXJ0aWZpL3NldHVwLnB5Cm9sZCBt
b2RlIDEwMDY0NApuZXcgbW9kZSAxMDA3NTUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvY2VydGlmaS93M2Mt
aW1wb3J0LmxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvdGhpcmRfcGFydHkvY2VydGlmaS93M2MtaW1wb3J0LmxvZwpkZWxldGVkIGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggZDRhMWZiZjc2YmMyYmUzYjk3Y2E5NzY3YmEyOTg1YjUwYThjMGI3YS4u
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2NlcnRp
ZmkvdzNjLWltcG9ydC5sb2cKKysrIC9kZXYvbnVsbApAQCAtMSwyMiArMCwwIEBACi1UaGUgdGVz
dHMgaW4gdGhpcyBkaXJlY3Rvcnkgd2VyZSBpbXBvcnRlZCBmcm9tIHRoZSBXM0MgcmVwb3NpdG9y
eS4KLURvIE5PVCBtb2RpZnkgdGhlc2UgdGVzdHMgZGlyZWN0bHkgaW4gV2ViS2l0LgotSW5zdGVh
ZCwgY3JlYXRlIGEgcHVsbCByZXF1ZXN0IG9uIHRoZSBXUFQgZ2l0aHViOgotCWh0dHBzOi8vZ2l0
aHViLmNvbS93ZWItcGxhdGZvcm0tdGVzdHMvd3B0Ci0KLVRoZW4gcnVuIHRoZSBUb29scy9TY3Jp
cHRzL2ltcG9ydC13M2MtdGVzdHMgaW4gV2ViS2l0IHRvIHJlaW1wb3J0Ci0KLURvIE5PVCBtb2Rp
Znkgb3IgcmVtb3ZlIHRoaXMgZmlsZS4KLQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1Qcm9wZXJ0aWVzIHJl
cXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi1Qcm9wZXJ0eSB2YWx1ZXMgcmVxdWlyaW5n
IHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotTGlzdCBvZiBmaWxlczoK
LS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJk
X3BhcnR5L2NlcnRpZmkvTElDRU5TRQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvY2VydGlmaS9NQU5JRkVTVC5pbgotL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkv
Y2VydGlmaS9QS0ctSU5GTwotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvY2VydGlmaS9SRUFETUUucnN0Ci0vTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9jZXJ0aWZp
L3NldHVwLmNmZwotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvdGhpcmRfcGFydHkvY2VydGlmaS9zZXR1cC5weQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9lbnVt
L2VudW0vZG9jL3czYy1pbXBvcnQubG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9lbnVtL2VudW0vZG9jL3czYy1pbXBvcnQu
bG9nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzYjg0N2YwOGQ4ODczODYzMjQ4MjI1
ZTYwYjQ5YjVhY2VjMjNiYjYzLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvdGhpcmRfcGFydHkvZW51bS9lbnVtL2RvYy93M2MtaW1wb3J0LmxvZworKysgL2Rldi9udWxs
CkBAIC0xLDE4ICswLDAgQEAKLVRoZSB0ZXN0cyBpbiB0aGlzIGRpcmVjdG9yeSB3ZXJlIGltcG9y
dGVkIGZyb20gdGhlIFczQyByZXBvc2l0b3J5LgotRG8gTk9UIG1vZGlmeSB0aGVzZSB0ZXN0cyBk
aXJlY3RseSBpbiBXZWJLaXQuCi1JbnN0ZWFkLCBjcmVhdGUgYSBwdWxsIHJlcXVlc3Qgb24gdGhl
IFdQVCBnaXRodWI6Ci0JaHR0cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQK
LQotVGhlbiBydW4gdGhlIFRvb2xzL1NjcmlwdHMvaW1wb3J0LXczYy10ZXN0cyBpbiBXZWJLaXQg
dG8gcmVpbXBvcnQKLQotRG8gTk9UIG1vZGlmeSBvciByZW1vdmUgdGhpcyBmaWxlLgotCi0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0KLVByb3BlcnRpZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUK
LVByb3BlcnR5IHZhbHVlcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tCi1MaXN0IG9mIGZpbGVzOgotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvZW51bS9lbnVtL2RvYy9lbnVtLnBkZgot
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRf
cGFydHkvZW51bS9lbnVtL2RvYy9lbnVtLnJzdApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9lbnVtL2VudW0v
dzNjLWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2VudW0vZW51bS93M2MtaW1wb3J0LmxvZwpkZWxldGVkIGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggYmFjMTI4MmYxYmI1ZGM1ZWFkODAwNmM4OTI5NDJiZjU2N2E1
NDQzOS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5
L2VudW0vZW51bS93M2MtaW1wb3J0LmxvZworKysgL2Rldi9udWxsCkBAIC0xLDIwICswLDAgQEAK
LVRoZSB0ZXN0cyBpbiB0aGlzIGRpcmVjdG9yeSB3ZXJlIGltcG9ydGVkIGZyb20gdGhlIFczQyBy
ZXBvc2l0b3J5LgotRG8gTk9UIG1vZGlmeSB0aGVzZSB0ZXN0cyBkaXJlY3RseSBpbiBXZWJLaXQu
Ci1JbnN0ZWFkLCBjcmVhdGUgYSBwdWxsIHJlcXVlc3Qgb24gdGhlIFdQVCBnaXRodWI6Ci0JaHR0
cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQKLQotVGhlbiBydW4gdGhlIFRv
b2xzL1NjcmlwdHMvaW1wb3J0LXczYy10ZXN0cyBpbiBXZWJLaXQgdG8gcmVpbXBvcnQKLQotRG8g
Tk9UIG1vZGlmeSBvciByZW1vdmUgdGhpcyBmaWxlLgotCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLVByb3Bl
cnRpZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLVByb3BlcnR5IHZhbHVlcyBy
ZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1MaXN0IG9m
IGZpbGVzOgotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvdGhpcmRfcGFydHkvZW51bS9lbnVtL0xJQ0VOU0UKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2VudW0vZW51bS9SRUFETUUK
LS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJk
X3BhcnR5L2VudW0vZW51bS9fX2luaXRfXy5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvZW51bS9lbnVtL3Rlc3QucHkKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvdGhpcmRfcGFydHkvZW51bS9lbnVtMzQuZWdnLWluZm8vdzNjLWltcG9ydC5sb2cgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5
L2VudW0vZW51bTM0LmVnZy1pbmZvL3czYy1pbXBvcnQubG9nCmRlbGV0ZWQgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCBlZGZjNTMxMTAyYThlMjVhOWZjMDU4MGNmNDMxMWMzMzhhNzI0YjYwLi4wMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvZW51bS9lbnVt
MzQuZWdnLWluZm8vdzNjLWltcG9ydC5sb2cKKysrIC9kZXYvbnVsbApAQCAtMSwyMCArMCwwIEBA
Ci1UaGUgdGVzdHMgaW4gdGhpcyBkaXJlY3Rvcnkgd2VyZSBpbXBvcnRlZCBmcm9tIHRoZSBXM0Mg
cmVwb3NpdG9yeS4KLURvIE5PVCBtb2RpZnkgdGhlc2UgdGVzdHMgZGlyZWN0bHkgaW4gV2ViS2l0
LgotSW5zdGVhZCwgY3JlYXRlIGEgcHVsbCByZXF1ZXN0IG9uIHRoZSBXUFQgZ2l0aHViOgotCWh0
dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxhdGZvcm0tdGVzdHMvd3B0Ci0KLVRoZW4gcnVuIHRoZSBU
b29scy9TY3JpcHRzL2ltcG9ydC13M2MtdGVzdHMgaW4gV2ViS2l0IHRvIHJlaW1wb3J0Ci0KLURv
IE5PVCBtb2RpZnkgb3IgcmVtb3ZlIHRoaXMgZmlsZS4KLQotLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1Qcm9w
ZXJ0aWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi1Qcm9wZXJ0eSB2YWx1ZXMg
cmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotTGlzdCBv
ZiBmaWxlczoKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3RoaXJkX3BhcnR5L2VudW0vZW51bTM0LmVnZy1pbmZvL1BLRy1JTkZPCi0vTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9lbnVt
L2VudW0zNC5lZ2ctaW5mby9TT1VSQ0VTLnR4dAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvZW51bS9lbnVtMzQuZWdnLWluZm8v
ZGVwZW5kZW5jeV9saW5rcy50eHQKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2VudW0vZW51bTM0LmVnZy1pbmZvL3RvcF9sZXZl
bC50eHQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvZW51bS93M2MtaW1wb3J0LmxvZyBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvZW51bS93
M2MtaW1wb3J0LmxvZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNjE3OTFjYTY3ODZl
ZmM0NjFkYjE5ODNhZDQxYmJmYjMzZDdmMDQxNi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2VudW0vdzNjLWltcG9ydC5sb2cKKysrIC9kZXYvbnVs
bApAQCAtMSwyMSArMCwwIEBACi1UaGUgdGVzdHMgaW4gdGhpcyBkaXJlY3Rvcnkgd2VyZSBpbXBv
cnRlZCBmcm9tIHRoZSBXM0MgcmVwb3NpdG9yeS4KLURvIE5PVCBtb2RpZnkgdGhlc2UgdGVzdHMg
ZGlyZWN0bHkgaW4gV2ViS2l0LgotSW5zdGVhZCwgY3JlYXRlIGEgcHVsbCByZXF1ZXN0IG9uIHRo
ZSBXUFQgZ2l0aHViOgotCWh0dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxhdGZvcm0tdGVzdHMvd3B0
Ci0KLVRoZW4gcnVuIHRoZSBUb29scy9TY3JpcHRzL2ltcG9ydC13M2MtdGVzdHMgaW4gV2ViS2l0
IHRvIHJlaW1wb3J0Ci0KLURvIE5PVCBtb2RpZnkgb3IgcmVtb3ZlIHRoaXMgZmlsZS4KLQotLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tCi1Qcm9wZXJ0aWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25l
Ci1Qcm9wZXJ0eSB2YWx1ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLQotTGlzdCBvZiBmaWxlczoKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2VudW0vTUFOSUZFU1QuaW4KLS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5
L2VudW0vUEtHLUlORk8KLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2VudW0vUkVBRE1FCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9lbnVtL3NldHVwLmNmZwot
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRf
cGFydHkvZW51bS9zZXR1cC5weQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9mdW5jc2lncy8uY292ZXJhZ2Vy
YyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhp
cmRfcGFydHkvZnVuY3NpZ3MvLmNvdmVyYWdlcmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDgzYmZjMjIwYjEyMDU1
YmUzOTY1OGIzNzRhMzQ5YmQ4ZTg3MWMyMQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvZnVuY3Np
Z3MvLmNvdmVyYWdlcmMKQEAgLTAsMCArMSw2IEBACitbcnVuXQorc291cmNlPWZ1bmNzaWdzCitv
bWl0PWZ1bmNzaWdzL29kaWN0KgorCitbcmVwb3J0XQoraW5jbHVkZT1mdW5jc2lncyoKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
dGhpcmRfcGFydHkvZnVuY3NpZ3MvLnRyYXZpcy55bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2Z1bmNzaWdzLy50cmF2aXMu
eW1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLmQyYTdhYjMwNTFhMGFjY2RiMmJmN2FmNjcyOGRjYzMxYmFlZTAwYmMK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2Z1bmNzaWdzLy50cmF2aXMueW1sCkBAIC0wLDAgKzEs
MTcgQEAKK2xhbmd1YWdlOiBweXRob24KK3B5dGhvbjoKKyAgLSAyLjYKKyAgLSAyLjcKKyAgLSAz
LjIKKyAgLSAzLjMKKyAgLSBweXB5CitpbnN0YWxsOgorICAtIHBpcCBpbnN0YWxsIC1yIHJlcXVp
cmVtZW50cy9kZXZlbG9wbWVudC50eHQgLXIgcmVxdWlyZW1lbnRzL3Byb2R1Y3Rpb24udHh0Cisg
IC0gcHl0aG9uIHNldHVwLnB5IGluc3RhbGwKK3NjcmlwdDoKKyAgLSBjb3ZlcmFnZSBydW4gc2V0
dXAucHkgdGVzdAorICAtIGNvdmVyYWdlIHJlcG9ydCAtLXNob3ctbWlzc2luZworYWZ0ZXJfc3Vj
Y2VzczoKKyAgLSBjb3ZlcmFsbHMKK25vdGlmaWNhdGlvbnM6CisgICAgZW1haWw6IGFhcm9uLmls
ZXMrdHJhdmlzLWNpQGdtYWlsLmNvbQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9mdW5jc2lncy9kb2NzL190
ZW1wbGF0ZXMvdzNjLWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2Z1bmNzaWdzL2RvY3MvX3RlbXBsYXRlcy93
M2MtaW1wb3J0LmxvZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggY2MzMjUxMjk0YTBm
NmVhNzk1Y2E5MzVhZWQwN2YwY2IxZTZmYmQxMS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2Z1bmNzaWdzL2RvY3MvX3RlbXBsYXRlcy93M2MtaW1w
b3J0LmxvZworKysgL2Rldi9udWxsCkBAIC0xLDE3ICswLDAgQEAKLVRoZSB0ZXN0cyBpbiB0aGlz
IGRpcmVjdG9yeSB3ZXJlIGltcG9ydGVkIGZyb20gdGhlIFczQyByZXBvc2l0b3J5LgotRG8gTk9U
IG1vZGlmeSB0aGVzZSB0ZXN0cyBkaXJlY3RseSBpbiBXZWJLaXQuCi1JbnN0ZWFkLCBjcmVhdGUg
YSBwdWxsIHJlcXVlc3Qgb24gdGhlIFdQVCBnaXRodWI6Ci0JaHR0cHM6Ly9naXRodWIuY29tL3dl
Yi1wbGF0Zm9ybS10ZXN0cy93cHQKLQotVGhlbiBydW4gdGhlIFRvb2xzL1NjcmlwdHMvaW1wb3J0
LXczYy10ZXN0cyBpbiBXZWJLaXQgdG8gcmVpbXBvcnQKLQotRG8gTk9UIG1vZGlmeSBvciByZW1v
dmUgdGhpcyBmaWxlLgotCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLVByb3BlcnRpZXMgcmVxdWlyaW5nIHZl
bmRvciBwcmVmaXhlczoKLU5vbmUKLVByb3BlcnR5IHZhbHVlcyByZXF1aXJpbmcgdmVuZG9yIHBy
ZWZpeGVzOgotTm9uZQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1MaXN0IG9mIGZpbGVzOgotL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvZnVu
Y3NpZ3MvZG9jcy9fdGVtcGxhdGVzL3BhZ2UuaHRtbApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9mdW5jc2ln
cy9kb2NzL3czYy1pbXBvcnQubG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9mdW5jc2lncy9kb2NzL3czYy1pbXBvcnQubG9n
CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyMDRjYzgwMDgxZDFmMjk2ZTUxZjQ4YTIx
ODIwOWIyYjA4NjUyYzM4Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
dGhpcmRfcGFydHkvZnVuY3NpZ3MvZG9jcy93M2MtaW1wb3J0LmxvZworKysgL2Rldi9udWxsCkBA
IC0xLDE5ICswLDAgQEAKLVRoZSB0ZXN0cyBpbiB0aGlzIGRpcmVjdG9yeSB3ZXJlIGltcG9ydGVk
IGZyb20gdGhlIFczQyByZXBvc2l0b3J5LgotRG8gTk9UIG1vZGlmeSB0aGVzZSB0ZXN0cyBkaXJl
Y3RseSBpbiBXZWJLaXQuCi1JbnN0ZWFkLCBjcmVhdGUgYSBwdWxsIHJlcXVlc3Qgb24gdGhlIFdQ
VCBnaXRodWI6Ci0JaHR0cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQKLQot
VGhlbiBydW4gdGhlIFRvb2xzL1NjcmlwdHMvaW1wb3J0LXczYy10ZXN0cyBpbiBXZWJLaXQgdG8g
cmVpbXBvcnQKLQotRG8gTk9UIG1vZGlmeSBvciByZW1vdmUgdGhpcyBmaWxlLgotCi0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0KLVByb3BlcnRpZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLVBy
b3BlcnR5IHZhbHVlcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tCi1MaXN0IG9mIGZpbGVzOgotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvZnVuY3NpZ3MvZG9jcy9NYWtlZmlsZQotL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFy
dHkvZnVuY3NpZ3MvZG9jcy9jb25mLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9mdW5jc2lncy9kb2NzL2luZGV4LnJzdApk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy90aGlyZF9wYXJ0eS9mdW5jc2lncy9mdW5jc2lncy93M2MtaW1wb3J0LmxvZyBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkv
ZnVuY3NpZ3MvZnVuY3NpZ3MvdzNjLWltcG9ydC5sb2cKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IGZjMWFlZGU3YjQ3Zjg4M2Q3ZmE2NWUzMWVmYjQxNDQ3MjdmOWRlOTEuLjAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9mdW5jc2lncy9mdW5j
c2lncy93M2MtaW1wb3J0LmxvZworKysgL2Rldi9udWxsCkBAIC0xLDE5ICswLDAgQEAKLVRoZSB0
ZXN0cyBpbiB0aGlzIGRpcmVjdG9yeSB3ZXJlIGltcG9ydGVkIGZyb20gdGhlIFczQyByZXBvc2l0
b3J5LgotRG8gTk9UIG1vZGlmeSB0aGVzZSB0ZXN0cyBkaXJlY3RseSBpbiBXZWJLaXQuCi1JbnN0
ZWFkLCBjcmVhdGUgYSBwdWxsIHJlcXVlc3Qgb24gdGhlIFdQVCBnaXRodWI6Ci0JaHR0cHM6Ly9n
aXRodWIuY29tL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQKLQotVGhlbiBydW4gdGhlIFRvb2xzL1Nj
cmlwdHMvaW1wb3J0LXczYy10ZXN0cyBpbiBXZWJLaXQgdG8gcmVpbXBvcnQKLQotRG8gTk9UIG1v
ZGlmeSBvciByZW1vdmUgdGhpcyBmaWxlLgotCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLVByb3BlcnRpZXMg
cmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLVByb3BlcnR5IHZhbHVlcyByZXF1aXJp
bmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1MaXN0IG9mIGZpbGVz
OgotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhp
cmRfcGFydHkvZnVuY3NpZ3MvZnVuY3NpZ3MvX19pbml0X18ucHkKLS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2Z1bmNzaWdzL2Z1
bmNzaWdzL29kaWN0LnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy90aGlyZF9wYXJ0eS9mdW5jc2lncy9mdW5jc2lncy92ZXJzaW9uLnB5CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3RoaXJkX3BhcnR5L2Z1bmNzaWdzL3JlcXVpcmVtZW50cy93M2MtaW1wb3J0LmxvZyBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkv
ZnVuY3NpZ3MvcmVxdWlyZW1lbnRzL3czYy1pbXBvcnQubG9nCmRlbGV0ZWQgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCBlMjI1ZjdiMDZjMzkzYzc1NGVmODNiMmNiMjJkY2Q0NTk4YTMyNDA4Li4wMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvZnVuY3NpZ3Mv
cmVxdWlyZW1lbnRzL3czYy1pbXBvcnQubG9nCisrKyAvZGV2L251bGwKQEAgLTEsMTggKzAsMCBA
QAotVGhlIHRlc3RzIGluIHRoaXMgZGlyZWN0b3J5IHdlcmUgaW1wb3J0ZWQgZnJvbSB0aGUgVzND
IHJlcG9zaXRvcnkuCi1EbyBOT1QgbW9kaWZ5IHRoZXNlIHRlc3RzIGRpcmVjdGx5IGluIFdlYktp
dC4KLUluc3RlYWQsIGNyZWF0ZSBhIHB1bGwgcmVxdWVzdCBvbiB0aGUgV1BUIGdpdGh1YjoKLQlo
dHRwczovL2dpdGh1Yi5jb20vd2ViLXBsYXRmb3JtLXRlc3RzL3dwdAotCi1UaGVuIHJ1biB0aGUg
VG9vbHMvU2NyaXB0cy9pbXBvcnQtdzNjLXRlc3RzIGluIFdlYktpdCB0byByZWltcG9ydAotCi1E
byBOT1QgbW9kaWZ5IG9yIHJlbW92ZSB0aGlzIGZpbGUuCi0KLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotUHJv
cGVydGllcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotUHJvcGVydHkgdmFsdWVz
IHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLUxpc3Qg
b2YgZmlsZXM6Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy90aGlyZF9wYXJ0eS9mdW5jc2lncy9yZXF1aXJlbWVudHMvZGV2ZWxvcG1lbnQudHh0Ci0v
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9w
YXJ0eS9mdW5jc2lncy9yZXF1aXJlbWVudHMvcHJvZHVjdGlvbi50eHQKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFy
dHkvZnVuY3NpZ3MvdGVzdHMvX19pbml0X18ucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2Z1bmNzaWdzL3Rlc3RzL19faW5p
dF9fLnB5CmluZGV4IGE2ODM0YjgyODVhNTZiZWYwZTE1NDNmZDkwMWM3ZTZmMmY4YmMyMDIuLmU2
OWRlMjliYjJkMWQ2NDM0YjhiMjlhZTc3NWFkOGMyZTQ4YzUzOTEgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkv
ZnVuY3NpZ3MvdGVzdHMvX19pbml0X18ucHkKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9mdW5jc2lncy90ZXN0cy9fX2lu
aXRfXy5weQpAQCAtMSArMCwwIEBACi0jIFRoaXMgZmlsZSBpcyByZXF1aXJlZCBmb3IgUHl0aG9u
IHRvIHNlYXJjaCB0aGlzIGRpcmVjdG9yeSBmb3IgbW9kdWxlcy4KXCBObyBuZXdsaW5lIGF0IGVu
ZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2Z1bmNzaWdzL3Rlc3RzL3czYy1pbXBvcnQubG9n
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS9mdW5jc2lncy90ZXN0cy93M2MtaW1wb3J0LmxvZwpkZWxldGVkIGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggZTM5MjFhMTg1MjJmNmUwNzY0ZjYzOGQyNDU3NTNkZGZkOTkxYTJlMy4uMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2Z1bmNzaWdz
L3Rlc3RzL3czYy1pbXBvcnQubG9nCisrKyAvZGV2L251bGwKQEAgLTEsMjAgKzAsMCBAQAotVGhl
IHRlc3RzIGluIHRoaXMgZGlyZWN0b3J5IHdlcmUgaW1wb3J0ZWQgZnJvbSB0aGUgVzNDIHJlcG9z
aXRvcnkuCi1EbyBOT1QgbW9kaWZ5IHRoZXNlIHRlc3RzIGRpcmVjdGx5IGluIFdlYktpdC4KLUlu
c3RlYWQsIGNyZWF0ZSBhIHB1bGwgcmVxdWVzdCBvbiB0aGUgV1BUIGdpdGh1YjoKLQlodHRwczov
L2dpdGh1Yi5jb20vd2ViLXBsYXRmb3JtLXRlc3RzL3dwdAotCi1UaGVuIHJ1biB0aGUgVG9vbHMv
U2NyaXB0cy9pbXBvcnQtdzNjLXRlc3RzIGluIFdlYktpdCB0byByZWltcG9ydAotCi1EbyBOT1Qg
bW9kaWZ5IG9yIHJlbW92ZSB0aGlzIGZpbGUuCi0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotUHJvcGVydGll
cyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotUHJvcGVydHkgdmFsdWVzIHJlcXVp
cmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLUxpc3Qgb2YgZmls
ZXM6Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90
aGlyZF9wYXJ0eS9mdW5jc2lncy90ZXN0cy9fX2luaXRfXy5weQotL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvZnVuY3NpZ3MvdGVz
dHMvdGVzdF9mb3JtYXRhbm5vdGF0aW9uLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9mdW5jc2lncy90ZXN0cy90ZXN0X2Z1
bmNzaWdzLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy90aGlyZF9wYXJ0eS9mdW5jc2lncy90ZXN0cy90ZXN0X2luc3BlY3QucHkKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhp
cmRfcGFydHkvZnVuY3NpZ3MvdzNjLWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2Z1bmNzaWdzL3czYy1pbXBv
cnQubG9nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBmMWVlYmIyNzMzNTBmZGYyNjE5
Zjc0NWRhZjQ4MmQyM2M4MDY3NjdkLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvdGhpcmRfcGFydHkvZnVuY3NpZ3MvdzNjLWltcG9ydC5sb2cKKysrIC9kZXYvbnVsbApA
QCAtMSwyMyArMCwwIEBACi1UaGUgdGVzdHMgaW4gdGhpcyBkaXJlY3Rvcnkgd2VyZSBpbXBvcnRl
ZCBmcm9tIHRoZSBXM0MgcmVwb3NpdG9yeS4KLURvIE5PVCBtb2RpZnkgdGhlc2UgdGVzdHMgZGly
ZWN0bHkgaW4gV2ViS2l0LgotSW5zdGVhZCwgY3JlYXRlIGEgcHVsbCByZXF1ZXN0IG9uIHRoZSBX
UFQgZ2l0aHViOgotCWh0dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxhdGZvcm0tdGVzdHMvd3B0Ci0K
LVRoZW4gcnVuIHRoZSBUb29scy9TY3JpcHRzL2ltcG9ydC13M2MtdGVzdHMgaW4gV2ViS2l0IHRv
IHJlaW1wb3J0Ci0KLURvIE5PVCBtb2RpZnkgb3IgcmVtb3ZlIHRoaXMgZmlsZS4KLQotLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tCi1Qcm9wZXJ0aWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi1Q
cm9wZXJ0eSB2YWx1ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLQotTGlzdCBvZiBmaWxlczoKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2Z1bmNzaWdzL0NIQU5HRUxPRwotL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkv
ZnVuY3NpZ3MvTElDRU5TRQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvZnVuY3NpZ3MvTUFOSUZFU1QuaW4KLS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2Z1bmNz
aWdzL01ha2VmaWxlCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy90aGlyZF9wYXJ0eS9mdW5jc2lncy9SRUFETUUucnN0Ci0vTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9mdW5jc2lncy9z
ZXR1cC5jZmcKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3RoaXJkX3BhcnR5L2Z1bmNzaWdzL3NldHVwLnB5CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2gyLy5j
b3ZlcmFnZXJjIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy90aGlyZF9wYXJ0eS9oMi8uY292ZXJhZ2VyYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xNTNlMzhkM2UwZTI1
Y2MzMjE3ZDYzOTAwYTdmMjg4Y2NjYmI1Y2IxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9oMi8u
Y292ZXJhZ2VyYwpAQCAtMCwwICsxLDE4IEBACitbcnVuXQorYnJhbmNoID0gVHJ1ZQorc291cmNl
ID0gaDIKKworW3JlcG9ydF0KK2ZhaWxfdW5kZXIgPSAxMDAKK3Nob3dfbWlzc2luZyA9IFRydWUK
K2V4Y2x1ZGVfbGluZXMgPQorICAgIHByYWdtYTogbm8gY292ZXIKKyAgICAuKjouKiAjIFB5dGhv
biBcZC4qCisgICAgYXNzZXJ0IEZhbHNlLCAiU2hvdWxkIG5vdCBiZSByZWFjaGFibGUiCisgICAg
Lio6LiogIyBQbGF0Zm9ybS1zcGVjaWZpYzoKKworW3BhdGhzXQorc291cmNlID0KKyAgICBoMi8K
KyAgICAudG94LyovbGliL3B5dGhvbiovc2l0ZS1wYWNrYWdlcy9oMgorICAgIC50b3gvcHlweSov
c2l0ZS1wYWNrYWdlcy9oMgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9oMi8uZ2l0aWdub3JlIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9o
Mi8uZ2l0aWdub3JlCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjlkMTllMTA2ZTNjZTRmZmE5NzVlMDU0Zjc3ZTZkMmI4
YTUyMmM5NDIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2gyLy5naXRpZ25vcmUKQEAgLTAsMCAr
MSwxMSBAQAorYnVpbGQvCitlbnYvCitkaXN0LworKi5lZ2ctaW5mby8KKyoucHljCitfX3B5Y2Fj
aGVfXworLmNvdmVyYWdlCisudG94LworLmh5cG90aGVzaXMvCisuY2FjaGUvCitfdHJpYWxfdGVt
cC8KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvdGhpcmRfcGFydHkvaDIvLnRyYXZpcy55bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2gyLy50cmF2aXMueW1s
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjdiNWE0Njg2YzU4MzRkNzliNzY1OTU5NzVlYWU4ODRhMGE5Zjc1MjYKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2gyLy50cmF2aXMueW1sCkBAIC0wLDAgKzEsNDEgQEAKK3N1
ZG86IGZhbHNlCitsYW5ndWFnZTogcHl0aG9uCisKK2NhY2hlOgorICBkaXJlY3RvcmllczoKKyAg
ICAtICRIT01FLy5jYWNoZS9waXAKKyAgICAtIC5oeXBvdGhlc2lzCisKK21hdHJpeDoKKyAgaW5j
bHVkZToKKyAgICAjIE1haW4gdGVzdHMgb24gc3VwcG9ydGVkIFB5dGhvbiB2ZXJzaW9ucy4KKyAg
ICAtIHB5dGhvbjogIjIuNyIKKyAgICAgIGVudjogVE9YRU5WPXB5MjcKKyAgICAtIHB5dGhvbjog
IjMuMyIKKyAgICAgIGVudjogVE9YRU5WPXB5MzMKKyAgICAtIHB5dGhvbjogIjMuNCIKKyAgICAg
IGVudjogVE9YRU5WPXB5MzQKKyAgICAtIHB5dGhvbjogIjMuNSIKKyAgICAgIGVudjogVE9YRU5W
PXB5MzUKKyAgICAtIHB5dGhvbjogIjMuNiIKKyAgICAgIGVudjogVE9YRU5WPXB5MzYKKyAgICAt
IHB5dGhvbjogInB5cHktNS4zLjEiCisgICAgICBlbnY6IFRPWEVOVj1weXB5CisKKyAgICAjIExp
bnRpbmcsIGRvY3MsIGFuZCBvdGhlciBub24tdGVzdCBzdHVmZi4KKyAgICAtIHB5dGhvbjogIjMu
NCIKKyAgICAgIGVudjogVE9YRU5WPWxpbnQKKyAgICAtIHB5dGhvbjogIjMuNSIKKyAgICAgIGVu
djogVE9YRU5WPWRvY3MKKyAgICAtIHB5dGhvbjogIjIuNyIKKyAgICAgIGVudjogVE9YRU5WPXBh
Y2thZ2luZworCisgICAgIyBUZXN0IHdlIGhhdmVuJ3QgYnJva2VuIG91ciBtYWpvciBkZXBlbmRl
bmNpZXMuCisgICAgLSBweXRob246ICIyLjciCisgICAgICBlbnY6IFRPWEVOVj1weTI3LXR3aXN0
ZWRNYXN0ZXIKKworaW5zdGFsbDoKKyAgLSAicGlwIGluc3RhbGwgLVUgcGlwIHNldHVwdG9vbHMi
CisgIC0gInBpcCBpbnN0YWxsIC1VIHRveCIKK3NjcmlwdDoKKyAgLSB0b3ggLS0gLS1oeXBvdGhl
c2lzLXByb2ZpbGUgdHJhdmlzCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2gyL2RvY3Mvc291cmNlL19zdGF0
aWMvLmtlZXAgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3RoaXJkX3BhcnR5L2gyL2RvY3Mvc291cmNlL19zdGF0aWMvLmtlZXAKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
ZTY5ZGUyOWJiMmQxZDY0MzRiOGIyOWFlNzc1YWQ4YzJlNDhjNTM5MQpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0
eS9oMi9kb2NzL3NvdXJjZS9fc3RhdGljL3czYy1pbXBvcnQubG9nIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9oMi9kb2NzL3Nv
dXJjZS9fc3RhdGljL3czYy1pbXBvcnQubG9nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwNzY4ZTg1NmI2YjQ3NjQ1ZDZlMWJiY2U5ZjAxNTE1MDRmM2VkODFkLi4wMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaDIvZG9jcy9zb3VyY2UvX3N0
YXRpYy93M2MtaW1wb3J0LmxvZworKysgL2Rldi9udWxsCkBAIC0xLDE4ICswLDAgQEAKLVRoZSB0
ZXN0cyBpbiB0aGlzIGRpcmVjdG9yeSB3ZXJlIGltcG9ydGVkIGZyb20gdGhlIFczQyByZXBvc2l0
b3J5LgotRG8gTk9UIG1vZGlmeSB0aGVzZSB0ZXN0cyBkaXJlY3RseSBpbiBXZWJLaXQuCi1JbnN0
ZWFkLCBjcmVhdGUgYSBwdWxsIHJlcXVlc3Qgb24gdGhlIFdQVCBnaXRodWI6Ci0JaHR0cHM6Ly9n
aXRodWIuY29tL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQKLQotVGhlbiBydW4gdGhlIFRvb2xzL1Nj
cmlwdHMvaW1wb3J0LXczYy10ZXN0cyBpbiBXZWJLaXQgdG8gcmVpbXBvcnQKLQotRG8gTk9UIG1v
ZGlmeSBvciByZW1vdmUgdGhpcyBmaWxlLgotCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLVByb3BlcnRpZXMg
cmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLVByb3BlcnR5IHZhbHVlcyByZXF1aXJp
bmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1MaXN0IG9mIGZpbGVz
OgotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhp
cmRfcGFydHkvaDIvZG9jcy9zb3VyY2UvX3N0YXRpYy9oMi5jb25uZWN0aW9uLkgyQ29ubmVjdGlv
blN0YXRlTWFjaGluZS5kb3QucG5nCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9oMi9kb2NzL3NvdXJjZS9fc3RhdGljL2gyLnN0
cmVhbS5IMlN0cmVhbVN0YXRlTWFjaGluZS5kb3QucG5nCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2gyL2Rv
Y3Mvc291cmNlL3czYy1pbXBvcnQubG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9oMi9kb2NzL3NvdXJjZS93M2MtaW1wb3J0
LmxvZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYTFmYjJiZGU1MmNhOTVhNTY5Y2Y3
OWVjZTJiNzY1ODdmYTMyZTA1OS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3RoaXJkX3BhcnR5L2gyL2RvY3Mvc291cmNlL3czYy1pbXBvcnQubG9nCisrKyAvZGV2L251
bGwKQEAgLTEsMzcgKzAsMCBAQAotVGhlIHRlc3RzIGluIHRoaXMgZGlyZWN0b3J5IHdlcmUgaW1w
b3J0ZWQgZnJvbSB0aGUgVzNDIHJlcG9zaXRvcnkuCi1EbyBOT1QgbW9kaWZ5IHRoZXNlIHRlc3Rz
IGRpcmVjdGx5IGluIFdlYktpdC4KLUluc3RlYWQsIGNyZWF0ZSBhIHB1bGwgcmVxdWVzdCBvbiB0
aGUgV1BUIGdpdGh1YjoKLQlodHRwczovL2dpdGh1Yi5jb20vd2ViLXBsYXRmb3JtLXRlc3RzL3dw
dAotCi1UaGVuIHJ1biB0aGUgVG9vbHMvU2NyaXB0cy9pbXBvcnQtdzNjLXRlc3RzIGluIFdlYktp
dCB0byByZWltcG9ydAotCi1EbyBOT1QgbW9kaWZ5IG9yIHJlbW92ZSB0aGlzIGZpbGUuCi0KLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLQotUHJvcGVydGllcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9u
ZQotUHJvcGVydHkgdmFsdWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0KLUxpc3Qgb2YgZmlsZXM6Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9oMi9kb2NzL3NvdXJjZS9hZHZhbmNl
ZC11c2FnZS5yc3QKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3RoaXJkX3BhcnR5L2gyL2RvY3Mvc291cmNlL2FwaS5yc3QKLS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2gyL2RvY3Mv
c291cmNlL2FzeW5jaW8tZXhhbXBsZS5yc3QKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2gyL2RvY3Mvc291cmNlL2Jhc2ljLXVz
YWdlLnJzdAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvdGhpcmRfcGFydHkvaDIvZG9jcy9zb3VyY2UvY29uZi5weQotL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaDIvZG9jcy9zb3Vy
Y2UvY29udHJpYnV0b3JzLnJzdAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaDIvZG9jcy9zb3VyY2UvY3VyaW8tZXhhbXBsZS5y
c3QKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3Ro
aXJkX3BhcnR5L2gyL2RvY3Mvc291cmNlL2V2ZW50bGV0LWV4YW1wbGUucnN0Ci0vTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9oMi9k
b2NzL3NvdXJjZS9leGFtcGxlcy5yc3QKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2gyL2RvY3Mvc291cmNlL2luZGV4LnJzdAot
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRf
cGFydHkvaDIvZG9jcy9zb3VyY2UvaW5zdGFsbGF0aW9uLnJzdAotL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaDIvZG9jcy9zb3Vy
Y2UvbG93LWxldmVsLnJzdAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaDIvZG9jcy9zb3VyY2UvbmVnb3RpYXRpbmctaHR0cDIu
cnN0Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90
aGlyZF9wYXJ0eS9oMi9kb2NzL3NvdXJjZS9yZWxlYXNlLW5vdGVzLnJzdAotL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaDIvZG9j
cy9zb3VyY2UvcmVsZWFzZS1wcm9jZXNzLnJzdAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaDIvZG9jcy9zb3VyY2UvdGVzdGlt
b25pYWxzLnJzdAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvdGhpcmRfcGFydHkvaDIvZG9jcy9zb3VyY2UvdG9ybmFkby1leGFtcGxlLnJzdAotL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFy
dHkvaDIvZG9jcy9zb3VyY2UvdHdpc3RlZC1leGFtcGxlLnJzdAotL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaDIvZG9jcy9zb3Vy
Y2UvdHdpc3RlZC1oZWFkLWV4YW1wbGUucnN0Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9oMi9kb2NzL3NvdXJjZS90d2lzdGVk
LXBvc3QtZXhhbXBsZS5yc3QKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2gyL2RvY3Mvc291cmNlL3dzZ2ktZXhhbXBsZS5yc3QK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvdGhpcmRfcGFydHkvaDIvZG9jcy93M2MtaW1wb3J0LmxvZyBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaDIvZG9jcy93
M2MtaW1wb3J0LmxvZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYTRlYTUzNzc1MjRj
NjJlMjRiM2U5MWFjOGFkYjU1MjJiZWZkZTU0Ni4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2gyL2RvY3MvdzNjLWltcG9ydC5sb2cKKysrIC9kZXYv
bnVsbApAQCAtMSwxOCArMCwwIEBACi1UaGUgdGVzdHMgaW4gdGhpcyBkaXJlY3Rvcnkgd2VyZSBp
bXBvcnRlZCBmcm9tIHRoZSBXM0MgcmVwb3NpdG9yeS4KLURvIE5PVCBtb2RpZnkgdGhlc2UgdGVz
dHMgZGlyZWN0bHkgaW4gV2ViS2l0LgotSW5zdGVhZCwgY3JlYXRlIGEgcHVsbCByZXF1ZXN0IG9u
IHRoZSBXUFQgZ2l0aHViOgotCWh0dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxhdGZvcm0tdGVzdHMv
d3B0Ci0KLVRoZW4gcnVuIHRoZSBUb29scy9TY3JpcHRzL2ltcG9ydC13M2MtdGVzdHMgaW4gV2Vi
S2l0IHRvIHJlaW1wb3J0Ci0KLURvIE5PVCBtb2RpZnkgb3IgcmVtb3ZlIHRoaXMgZmlsZS4KLQot
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tCi1Qcm9wZXJ0aWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1O
b25lCi1Qcm9wZXJ0eSB2YWx1ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLQotTGlzdCBvZiBmaWxlczoKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2gyL2RvY3MvTWFrZWZpbGUKLS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3Bh
cnR5L2gyL2RvY3MvbWFrZS5iYXQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaDIvZXhhbXBsZXMvYXN5bmNp
by93M2MtaW1wb3J0LmxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaDIvZXhhbXBsZXMvYXN5bmNpby93M2MtaW1wb3J0Lmxv
ZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggN2U4YWU0YTI4N2U1MGY1ZTRmODczYmRi
YzEyMzcxYmQxMjhlMWY3YS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3RoaXJkX3BhcnR5L2gyL2V4YW1wbGVzL2FzeW5jaW8vdzNjLWltcG9ydC5sb2cKKysrIC9kZXYv
bnVsbApAQCAtMSwyMCArMCwwIEBACi1UaGUgdGVzdHMgaW4gdGhpcyBkaXJlY3Rvcnkgd2VyZSBp
bXBvcnRlZCBmcm9tIHRoZSBXM0MgcmVwb3NpdG9yeS4KLURvIE5PVCBtb2RpZnkgdGhlc2UgdGVz
dHMgZGlyZWN0bHkgaW4gV2ViS2l0LgotSW5zdGVhZCwgY3JlYXRlIGEgcHVsbCByZXF1ZXN0IG9u
IHRoZSBXUFQgZ2l0aHViOgotCWh0dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxhdGZvcm0tdGVzdHMv
d3B0Ci0KLVRoZW4gcnVuIHRoZSBUb29scy9TY3JpcHRzL2ltcG9ydC13M2MtdGVzdHMgaW4gV2Vi
S2l0IHRvIHJlaW1wb3J0Ci0KLURvIE5PVCBtb2RpZnkgb3IgcmVtb3ZlIHRoaXMgZmlsZS4KLQot
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tCi1Qcm9wZXJ0aWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1O
b25lCi1Qcm9wZXJ0eSB2YWx1ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLQotTGlzdCBvZiBmaWxlczoKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2gyL2V4YW1wbGVzL2FzeW5jaW8v
YXN5bmNpby1zZXJ2ZXIucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2gyL2V4YW1wbGVzL2FzeW5jaW8vY2VydC5jcnQKLS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3Bh
cnR5L2gyL2V4YW1wbGVzL2FzeW5jaW8vY2VydC5rZXkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2gyL2V4YW1wbGVzL2FzeW5j
aW8vd3NnaS1zZXJ2ZXIucHkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaDIvZXhhbXBsZXMvY3VyaW8vdzNj
LWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3RoaXJkX3BhcnR5L2gyL2V4YW1wbGVzL2N1cmlvL3czYy1pbXBvcnQubG9nCmRlbGV0
ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiMjkwNmIwOTMxNDI5NjIxNTA0MGU0N2JmNDc1MTli
YzJmNmRmZDVjLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRf
cGFydHkvaDIvZXhhbXBsZXMvY3VyaW8vdzNjLWltcG9ydC5sb2cKKysrIC9kZXYvbnVsbApAQCAt
MSwxOSArMCwwIEBACi1UaGUgdGVzdHMgaW4gdGhpcyBkaXJlY3Rvcnkgd2VyZSBpbXBvcnRlZCBm
cm9tIHRoZSBXM0MgcmVwb3NpdG9yeS4KLURvIE5PVCBtb2RpZnkgdGhlc2UgdGVzdHMgZGlyZWN0
bHkgaW4gV2ViS2l0LgotSW5zdGVhZCwgY3JlYXRlIGEgcHVsbCByZXF1ZXN0IG9uIHRoZSBXUFQg
Z2l0aHViOgotCWh0dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxhdGZvcm0tdGVzdHMvd3B0Ci0KLVRo
ZW4gcnVuIHRoZSBUb29scy9TY3JpcHRzL2ltcG9ydC13M2MtdGVzdHMgaW4gV2ViS2l0IHRvIHJl
aW1wb3J0Ci0KLURvIE5PVCBtb2RpZnkgb3IgcmVtb3ZlIHRoaXMgZmlsZS4KLQotLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tCi1Qcm9wZXJ0aWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi1Qcm9w
ZXJ0eSB2YWx1ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLQotTGlzdCBvZiBmaWxlczoKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2gyL2V4YW1wbGVzL2N1cmlvL2N1cmlvLXNlcnZl
ci5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
dGhpcmRfcGFydHkvaDIvZXhhbXBsZXMvY3VyaW8vbG9jYWxob3N0LmNydC5wZW0KLS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2gy
L2V4YW1wbGVzL2N1cmlvL2xvY2FsaG9zdC5rZXkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaDIvZXhhbXBs
ZXMvZXZlbnRsZXQvdzNjLWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2gyL2V4YW1wbGVzL2V2ZW50bGV0L3cz
Yy1pbXBvcnQubG9nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxOWY4MjI0NDUwYmI1
ODgzMmM4NGNhMzlhODFlNGRjMTc5NzllNTg5Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaDIvZXhhbXBsZXMvZXZlbnRsZXQvdzNjLWltcG9ydC5s
b2cKKysrIC9kZXYvbnVsbApAQCAtMSwxOSArMCwwIEBACi1UaGUgdGVzdHMgaW4gdGhpcyBkaXJl
Y3Rvcnkgd2VyZSBpbXBvcnRlZCBmcm9tIHRoZSBXM0MgcmVwb3NpdG9yeS4KLURvIE5PVCBtb2Rp
ZnkgdGhlc2UgdGVzdHMgZGlyZWN0bHkgaW4gV2ViS2l0LgotSW5zdGVhZCwgY3JlYXRlIGEgcHVs
bCByZXF1ZXN0IG9uIHRoZSBXUFQgZ2l0aHViOgotCWh0dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxh
dGZvcm0tdGVzdHMvd3B0Ci0KLVRoZW4gcnVuIHRoZSBUb29scy9TY3JpcHRzL2ltcG9ydC13M2Mt
dGVzdHMgaW4gV2ViS2l0IHRvIHJlaW1wb3J0Ci0KLURvIE5PVCBtb2RpZnkgb3IgcmVtb3ZlIHRo
aXMgZmlsZS4KLQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1Qcm9wZXJ0aWVzIHJlcXVpcmluZyB2ZW5kb3Ig
cHJlZml4ZXM6Ci1Ob25lCi1Qcm9wZXJ0eSB2YWx1ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhl
czoKLU5vbmUKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotTGlzdCBvZiBmaWxlczoKLS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2gyL2V4YW1w
bGVzL2V2ZW50bGV0L2V2ZW50bGV0LXNlcnZlci5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaDIvZXhhbXBsZXMvZXZlbnRs
ZXQvc2VydmVyLmNydAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvdGhpcmRfcGFydHkvaDIvZXhhbXBsZXMvZXZlbnRsZXQvc2VydmVyLmtleQpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy90aGlyZF9wYXJ0eS9oMi9leGFtcGxlcy9mcmFnbWVudHMvdzNjLWltcG9ydC5sb2cgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5
L2gyL2V4YW1wbGVzL2ZyYWdtZW50cy93M2MtaW1wb3J0LmxvZwpkZWxldGVkIGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggYjNlZTZmOTRiNDIwYTYxY2RiZGUxMWI5YzYwZTMyYmU4ZWRlM2Q5OS4uMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2gyL2V4YW1w
bGVzL2ZyYWdtZW50cy93M2MtaW1wb3J0LmxvZworKysgL2Rldi9udWxsCkBAIC0xLDIwICswLDAg
QEAKLVRoZSB0ZXN0cyBpbiB0aGlzIGRpcmVjdG9yeSB3ZXJlIGltcG9ydGVkIGZyb20gdGhlIFcz
QyByZXBvc2l0b3J5LgotRG8gTk9UIG1vZGlmeSB0aGVzZSB0ZXN0cyBkaXJlY3RseSBpbiBXZWJL
aXQuCi1JbnN0ZWFkLCBjcmVhdGUgYSBwdWxsIHJlcXVlc3Qgb24gdGhlIFdQVCBnaXRodWI6Ci0J
aHR0cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQKLQotVGhlbiBydW4gdGhl
IFRvb2xzL1NjcmlwdHMvaW1wb3J0LXczYy10ZXN0cyBpbiBXZWJLaXQgdG8gcmVpbXBvcnQKLQot
RG8gTk9UIG1vZGlmeSBvciByZW1vdmUgdGhpcyBmaWxlLgotCi0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLVBy
b3BlcnRpZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLVByb3BlcnR5IHZhbHVl
cyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1MaXN0
IG9mIGZpbGVzOgotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvdGhpcmRfcGFydHkvaDIvZXhhbXBsZXMvZnJhZ21lbnRzL2NsaWVudF9odHRwc19zZXR1
cF9mcmFnbWVudC5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvdGhpcmRfcGFydHkvaDIvZXhhbXBsZXMvZnJhZ21lbnRzL2NsaWVudF91cGdyYWRl
X2ZyYWdtZW50LnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy90aGlyZF9wYXJ0eS9oMi9leGFtcGxlcy9mcmFnbWVudHMvc2VydmVyX2h0dHBzX3Nl
dHVwX2ZyYWdtZW50LnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy90aGlyZF9wYXJ0eS9oMi9leGFtcGxlcy9mcmFnbWVudHMvc2VydmVyX3VwZ3Jh
ZGVfZnJhZ21lbnQucHkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaDIvZXhhbXBsZXMvdG9ybmFkby90b3Ju
YWRvLXNlcnZlci5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvdGhpcmRfcGFydHkvaDIvZXhhbXBsZXMvdG9ybmFkby90b3JuYWRvLXNlcnZlci5w
eQpvbGQgbW9kZSAxMDA2NDQKbmV3IG1vZGUgMTAwNzU1CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2gyL2V4
YW1wbGVzL3Rvcm5hZG8vdzNjLWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2gyL2V4YW1wbGVzL3Rvcm5hZG8v
dzNjLWltcG9ydC5sb2cKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDkxZWVkZTk4MDI5
ZWNkYjAxZDE4MjczYjI3YzY5OTQxODMwM2ZlOWUuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9oMi9leGFtcGxlcy90b3JuYWRvL3czYy1pbXBvcnQu
bG9nCisrKyAvZGV2L251bGwKQEAgLTEsMTkgKzAsMCBAQAotVGhlIHRlc3RzIGluIHRoaXMgZGly
ZWN0b3J5IHdlcmUgaW1wb3J0ZWQgZnJvbSB0aGUgVzNDIHJlcG9zaXRvcnkuCi1EbyBOT1QgbW9k
aWZ5IHRoZXNlIHRlc3RzIGRpcmVjdGx5IGluIFdlYktpdC4KLUluc3RlYWQsIGNyZWF0ZSBhIHB1
bGwgcmVxdWVzdCBvbiB0aGUgV1BUIGdpdGh1YjoKLQlodHRwczovL2dpdGh1Yi5jb20vd2ViLXBs
YXRmb3JtLXRlc3RzL3dwdAotCi1UaGVuIHJ1biB0aGUgVG9vbHMvU2NyaXB0cy9pbXBvcnQtdzNj
LXRlc3RzIGluIFdlYktpdCB0byByZWltcG9ydAotCi1EbyBOT1QgbW9kaWZ5IG9yIHJlbW92ZSB0
aGlzIGZpbGUuCi0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotUHJvcGVydGllcyByZXF1aXJpbmcgdmVuZG9y
IHByZWZpeGVzOgotTm9uZQotUHJvcGVydHkgdmFsdWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4
ZXM6Ci1Ob25lCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLUxpc3Qgb2YgZmlsZXM6Ci0vTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9oMi9leGFt
cGxlcy90b3JuYWRvL3NlcnZlci5jcnQKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2gyL2V4YW1wbGVzL3Rvcm5hZG8vc2VydmVy
LmtleQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
dGhpcmRfcGFydHkvaDIvZXhhbXBsZXMvdG9ybmFkby90b3JuYWRvLXNlcnZlci5weQpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90
aGlyZF9wYXJ0eS9oMi9leGFtcGxlcy90d2lzdGVkL3czYy1pbXBvcnQubG9nIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9oMi9l
eGFtcGxlcy90d2lzdGVkL3czYy1pbXBvcnQubG9nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCBlYjBmZjJlYzFlZjU1OGYzN2I3NjIwMzUxMjhlOWExYzg4MmI1NjZjLi4wMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaDIvZXhhbXBsZXMvdHdp
c3RlZC93M2MtaW1wb3J0LmxvZworKysgL2Rldi9udWxsCkBAIC0xLDIyICswLDAgQEAKLVRoZSB0
ZXN0cyBpbiB0aGlzIGRpcmVjdG9yeSB3ZXJlIGltcG9ydGVkIGZyb20gdGhlIFczQyByZXBvc2l0
b3J5LgotRG8gTk9UIG1vZGlmeSB0aGVzZSB0ZXN0cyBkaXJlY3RseSBpbiBXZWJLaXQuCi1JbnN0
ZWFkLCBjcmVhdGUgYSBwdWxsIHJlcXVlc3Qgb24gdGhlIFdQVCBnaXRodWI6Ci0JaHR0cHM6Ly9n
aXRodWIuY29tL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQKLQotVGhlbiBydW4gdGhlIFRvb2xzL1Nj
cmlwdHMvaW1wb3J0LXczYy10ZXN0cyBpbiBXZWJLaXQgdG8gcmVpbXBvcnQKLQotRG8gTk9UIG1v
ZGlmeSBvciByZW1vdmUgdGhpcyBmaWxlLgotCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLVByb3BlcnRpZXMg
cmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLVByb3BlcnR5IHZhbHVlcyByZXF1aXJp
bmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1MaXN0IG9mIGZpbGVz
OgotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhp
cmRfcGFydHkvaDIvZXhhbXBsZXMvdHdpc3RlZC9oZWFkX3JlcXVlc3QucHkKLS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2gyL2V4
YW1wbGVzL3R3aXN0ZWQvcG9zdF9yZXF1ZXN0LnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9oMi9leGFtcGxlcy90d2lzdGVk
L3NlcnZlci5jcnQKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3RoaXJkX3BhcnR5L2gyL2V4YW1wbGVzL3R3aXN0ZWQvc2VydmVyLmNzcgotL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkv
aDIvZXhhbXBsZXMvdHdpc3RlZC9zZXJ2ZXIua2V5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9oMi9leGFtcGxlcy90d2lzdGVk
L3R3aXN0ZWQtc2VydmVyLnB5CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2gyL2gyL3czYy1pbXBvcnQubG9n
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS9oMi9oMi93M2MtaW1wb3J0LmxvZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggZjVjYTRiNzBmYmY5NmRmYjIwODBhOTNjODFjMWEyYjZhN2I0ZmVlZS4uMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2gyL2gyL3czYy1pbXBvcnQu
bG9nCisrKyAvZGV2L251bGwKQEAgLTEsMjcgKzAsMCBAQAotVGhlIHRlc3RzIGluIHRoaXMgZGly
ZWN0b3J5IHdlcmUgaW1wb3J0ZWQgZnJvbSB0aGUgVzNDIHJlcG9zaXRvcnkuCi1EbyBOT1QgbW9k
aWZ5IHRoZXNlIHRlc3RzIGRpcmVjdGx5IGluIFdlYktpdC4KLUluc3RlYWQsIGNyZWF0ZSBhIHB1
bGwgcmVxdWVzdCBvbiB0aGUgV1BUIGdpdGh1YjoKLQlodHRwczovL2dpdGh1Yi5jb20vd2ViLXBs
YXRmb3JtLXRlc3RzL3dwdAotCi1UaGVuIHJ1biB0aGUgVG9vbHMvU2NyaXB0cy9pbXBvcnQtdzNj
LXRlc3RzIGluIFdlYktpdCB0byByZWltcG9ydAotCi1EbyBOT1QgbW9kaWZ5IG9yIHJlbW92ZSB0
aGlzIGZpbGUuCi0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotUHJvcGVydGllcyByZXF1aXJpbmcgdmVuZG9y
IHByZWZpeGVzOgotTm9uZQotUHJvcGVydHkgdmFsdWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4
ZXM6Ci1Ob25lCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLUxpc3Qgb2YgZmlsZXM6Ci0vTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9oMi9oMi9f
X2luaXRfXy5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvdGhpcmRfcGFydHkvaDIvaDIvY29uZmlnLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9oMi9oMi9jb25uZWN0aW9u
LnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90
aGlyZF9wYXJ0eS9oMi9oMi9lcnJvcnMucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2gyL2gyL2V2ZW50cy5weQotL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkv
aDIvaDIvZXhjZXB0aW9ucy5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaDIvaDIvZnJhbWVfYnVmZmVyLnB5Ci0vTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9o
Mi9oMi9zZXR0aW5ncy5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaDIvaDIvc3RyZWFtLnB5Ci0vTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9oMi9oMi91dGls
aXRpZXMucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3RoaXJkX3BhcnR5L2gyL2gyL3dpbmRvd3MucHkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaDIvdGVz
dC93M2MtaW1wb3J0LmxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaDIvdGVzdC93M2MtaW1wb3J0LmxvZwpkZWxldGVkIGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggYWJlY2U1YTYyMmZhYjRhMzYzODFhZjM1OGY2OWY5Zjg4MTdh
NzU1OC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5
L2gyL3Rlc3QvdzNjLWltcG9ydC5sb2cKKysrIC9kZXYvbnVsbApAQCAtMSw0MSArMCwwIEBACi1U
aGUgdGVzdHMgaW4gdGhpcyBkaXJlY3Rvcnkgd2VyZSBpbXBvcnRlZCBmcm9tIHRoZSBXM0MgcmVw
b3NpdG9yeS4KLURvIE5PVCBtb2RpZnkgdGhlc2UgdGVzdHMgZGlyZWN0bHkgaW4gV2ViS2l0Lgot
SW5zdGVhZCwgY3JlYXRlIGEgcHVsbCByZXF1ZXN0IG9uIHRoZSBXUFQgZ2l0aHViOgotCWh0dHBz
Oi8vZ2l0aHViLmNvbS93ZWItcGxhdGZvcm0tdGVzdHMvd3B0Ci0KLVRoZW4gcnVuIHRoZSBUb29s
cy9TY3JpcHRzL2ltcG9ydC13M2MtdGVzdHMgaW4gV2ViS2l0IHRvIHJlaW1wb3J0Ci0KLURvIE5P
VCBtb2RpZnkgb3IgcmVtb3ZlIHRoaXMgZmlsZS4KLQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1Qcm9wZXJ0
aWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi1Qcm9wZXJ0eSB2YWx1ZXMgcmVx
dWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotTGlzdCBvZiBm
aWxlczoKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3RoaXJkX3BhcnR5L2gyL3Rlc3QvY29uZnRlc3QucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2gyL3Rlc3QvY29yb3V0aW5l
X3Rlc3RzLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy90aGlyZF9wYXJ0eS9oMi90ZXN0L2hlbHBlcnMucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2gyL3Rlc3QvdGVzdF9i
YXNpY19sb2dpYy5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvdGhpcmRfcGFydHkvaDIvdGVzdC90ZXN0X2Nsb3NlZF9zdHJlYW1zLnB5Ci0vTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0
eS9oMi90ZXN0L3Rlc3RfY29tcGxleF9sb2dpYy5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaDIvdGVzdC90ZXN0X2NvbmZp
Zy5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
dGhpcmRfcGFydHkvaDIvdGVzdC90ZXN0X2V2ZW50cy5weQotL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaDIvdGVzdC90ZXN0X2V4
Y2VwdGlvbnMucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3RoaXJkX3BhcnR5L2gyL3Rlc3QvdGVzdF9mbG93X2NvbnRyb2xfd2luZG93LnB5Ci0v
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9w
YXJ0eS9oMi90ZXN0L3Rlc3RfaDJfdXBncmFkZS5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaDIvdGVzdC90ZXN0X2hlYWRf
cmVxdWVzdC5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvdGhpcmRfcGFydHkvaDIvdGVzdC90ZXN0X2hlYWRlcl9pbmRleGluZy5weQotL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkv
aDIvdGVzdC90ZXN0X2luZm9ybWF0aW9uYWxfcmVzcG9uc2VzLnB5Ci0vTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9oMi90ZXN0L3Rl
c3RfaW50ZXJhY3Rpbmdfc3RhY2tzLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9oMi90ZXN0L3Rlc3RfaW52YWxpZF9jb250
ZW50X2xlbmd0aHMucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2gyL3Rlc3QvdGVzdF9pbnZhbGlkX2ZyYW1lX3NlcXVlbmNl
cy5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
dGhpcmRfcGFydHkvaDIvdGVzdC90ZXN0X2ludmFsaWRfaGVhZGVycy5weQotL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaDIvdGVz
dC90ZXN0X3ByaW9yaXR5LnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9oMi90ZXN0L3Rlc3RfcmVsYXRlZF9ldmVudHMucHkK
LS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJk
X3BhcnR5L2gyL3Rlc3QvdGVzdF9yZmM3ODM4LnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9oMi90ZXN0L3Rlc3Rfc2V0dGlu
Z3MucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3RoaXJkX3BhcnR5L2gyL3Rlc3QvdGVzdF9zdGF0ZV9tYWNoaW5lcy5weQotL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaDIvdGVz
dC90ZXN0X3N0cmVhbV9yZXNldC5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaDIvdGVzdC90ZXN0X3V0aWxpdHlfZnVuY3Rp
b25zLnB5CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2gyL3V0aWxzL2JhY2twb3J0LnNoIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9oMi91
dGlscy9iYWNrcG9ydC5zaApvbGQgbW9kZSAxMDA2NDQKbmV3IG1vZGUgMTAwNzU1CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3Ro
aXJkX3BhcnR5L2gyL3V0aWxzL3czYy1pbXBvcnQubG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9oMi91dGlscy93M2MtaW1w
b3J0LmxvZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZjIzODNhN2E5OTFmOTA1YTA0
M2VhMzFhYmM3ZWU1MzA5MjVjMjBiOC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3RoaXJkX3BhcnR5L2gyL3V0aWxzL3czYy1pbXBvcnQubG9nCisrKyAvZGV2L251bGwK
QEAgLTEsMTcgKzAsMCBAQAotVGhlIHRlc3RzIGluIHRoaXMgZGlyZWN0b3J5IHdlcmUgaW1wb3J0
ZWQgZnJvbSB0aGUgVzNDIHJlcG9zaXRvcnkuCi1EbyBOT1QgbW9kaWZ5IHRoZXNlIHRlc3RzIGRp
cmVjdGx5IGluIFdlYktpdC4KLUluc3RlYWQsIGNyZWF0ZSBhIHB1bGwgcmVxdWVzdCBvbiB0aGUg
V1BUIGdpdGh1YjoKLQlodHRwczovL2dpdGh1Yi5jb20vd2ViLXBsYXRmb3JtLXRlc3RzL3dwdAot
Ci1UaGVuIHJ1biB0aGUgVG9vbHMvU2NyaXB0cy9pbXBvcnQtdzNjLXRlc3RzIGluIFdlYktpdCB0
byByZWltcG9ydAotCi1EbyBOT1QgbW9kaWZ5IG9yIHJlbW92ZSB0aGlzIGZpbGUuCi0KLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLQotUHJvcGVydGllcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQot
UHJvcGVydHkgdmFsdWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0KLUxpc3Qgb2YgZmlsZXM6Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9oMi91dGlscy9iYWNrcG9ydC5zaApkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy90aGlyZF9wYXJ0eS9oMi92aXN1YWxpemVyL3czYy1pbXBvcnQubG9nIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9oMi92aXN1
YWxpemVyL3czYy1pbXBvcnQubG9nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4NGQz
ZmZmMWIzMjkyYzUyZmEzNWZjM2EzY2UwZWVhMGFmYTZiNTVjLi4wMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaDIvdmlzdWFsaXplci93M2MtaW1wb3J0
LmxvZworKysgL2Rldi9udWxsCkBAIC0xLDE4ICswLDAgQEAKLVRoZSB0ZXN0cyBpbiB0aGlzIGRp
cmVjdG9yeSB3ZXJlIGltcG9ydGVkIGZyb20gdGhlIFczQyByZXBvc2l0b3J5LgotRG8gTk9UIG1v
ZGlmeSB0aGVzZSB0ZXN0cyBkaXJlY3RseSBpbiBXZWJLaXQuCi1JbnN0ZWFkLCBjcmVhdGUgYSBw
dWxsIHJlcXVlc3Qgb24gdGhlIFdQVCBnaXRodWI6Ci0JaHR0cHM6Ly9naXRodWIuY29tL3dlYi1w
bGF0Zm9ybS10ZXN0cy93cHQKLQotVGhlbiBydW4gdGhlIFRvb2xzL1NjcmlwdHMvaW1wb3J0LXcz
Yy10ZXN0cyBpbiBXZWJLaXQgdG8gcmVpbXBvcnQKLQotRG8gTk9UIG1vZGlmeSBvciByZW1vdmUg
dGhpcyBmaWxlLgotCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLVByb3BlcnRpZXMgcmVxdWlyaW5nIHZlbmRv
ciBwcmVmaXhlczoKLU5vbmUKLVByb3BlcnR5IHZhbHVlcyByZXF1aXJpbmcgdmVuZG9yIHByZWZp
eGVzOgotTm9uZQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1MaXN0IG9mIGZpbGVzOgotL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaDIvdmlz
dWFsaXplci9OT1RJQ0VTLnZpc3VhbGl6ZXIKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2gyL3Zpc3VhbGl6ZXIvdmlzdWFsaXpl
LnB5CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2gyL3czYy1pbXBvcnQubG9nIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9oMi93M2MtaW1w
b3J0LmxvZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOWRmZDJmY2FlNGEzZDMzN2Vh
ODJkODVmYTE5YzIwZGYwNjU4ZjdmMS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3RoaXJkX3BhcnR5L2gyL3czYy1pbXBvcnQubG9nCisrKyAvZGV2L251bGwKQEAgLTEs
MjYgKzAsMCBAQAotVGhlIHRlc3RzIGluIHRoaXMgZGlyZWN0b3J5IHdlcmUgaW1wb3J0ZWQgZnJv
bSB0aGUgVzNDIHJlcG9zaXRvcnkuCi1EbyBOT1QgbW9kaWZ5IHRoZXNlIHRlc3RzIGRpcmVjdGx5
IGluIFdlYktpdC4KLUluc3RlYWQsIGNyZWF0ZSBhIHB1bGwgcmVxdWVzdCBvbiB0aGUgV1BUIGdp
dGh1YjoKLQlodHRwczovL2dpdGh1Yi5jb20vd2ViLXBsYXRmb3JtLXRlc3RzL3dwdAotCi1UaGVu
IHJ1biB0aGUgVG9vbHMvU2NyaXB0cy9pbXBvcnQtdzNjLXRlc3RzIGluIFdlYktpdCB0byByZWlt
cG9ydAotCi1EbyBOT1QgbW9kaWZ5IG9yIHJlbW92ZSB0aGlzIGZpbGUuCi0KLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLQotUHJvcGVydGllcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotUHJvcGVy
dHkgdmFsdWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0KLUxpc3Qgb2YgZmlsZXM6Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9oMi9DT05UUklCVVRPUlMucnN0Ci0vTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9oMi9I
SVNUT1JZLnJzdAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvdGhpcmRfcGFydHkvaDIvTElDRU5TRQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaDIvTUFOSUZFU1QuaW4KLS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5
L2gyL01ha2VmaWxlCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy90aGlyZF9wYXJ0eS9oMi9SRUFETUUucnN0Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9oMi9zZXR1cC5jZmcKLS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3Bh
cnR5L2gyL3NldHVwLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy90aGlyZF9wYXJ0eS9oMi90ZXN0X3JlcXVpcmVtZW50cy50eHQKLS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2gy
L3RveC5pbmkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaHBhY2svaHBhY2suZWdnLWluZm8vdzNjLWltcG9y
dC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3RoaXJkX3BhcnR5L2hwYWNrL2hwYWNrLmVnZy1pbmZvL3czYy1pbXBvcnQubG9nCmRlbGV0ZWQg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhMDdjNzRhYzJiNzdlYzQ0ZDJiOWExNGI5NzA5YWU0ZGYz
Mzc3YTFhLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFy
dHkvaHBhY2svaHBhY2suZWdnLWluZm8vdzNjLWltcG9ydC5sb2cKKysrIC9kZXYvbnVsbApAQCAt
MSwyMCArMCwwIEBACi1UaGUgdGVzdHMgaW4gdGhpcyBkaXJlY3Rvcnkgd2VyZSBpbXBvcnRlZCBm
cm9tIHRoZSBXM0MgcmVwb3NpdG9yeS4KLURvIE5PVCBtb2RpZnkgdGhlc2UgdGVzdHMgZGlyZWN0
bHkgaW4gV2ViS2l0LgotSW5zdGVhZCwgY3JlYXRlIGEgcHVsbCByZXF1ZXN0IG9uIHRoZSBXUFQg
Z2l0aHViOgotCWh0dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxhdGZvcm0tdGVzdHMvd3B0Ci0KLVRo
ZW4gcnVuIHRoZSBUb29scy9TY3JpcHRzL2ltcG9ydC13M2MtdGVzdHMgaW4gV2ViS2l0IHRvIHJl
aW1wb3J0Ci0KLURvIE5PVCBtb2RpZnkgb3IgcmVtb3ZlIHRoaXMgZmlsZS4KLQotLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tCi1Qcm9wZXJ0aWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi1Qcm9w
ZXJ0eSB2YWx1ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLQotTGlzdCBvZiBmaWxlczoKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2hwYWNrL2hwYWNrLmVnZy1pbmZvL1BLRy1JTkZP
Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS9ocGFjay9ocGFjay5lZ2ctaW5mby9TT1VSQ0VTLnR4dAotL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaHBhY2svaHBh
Y2suZWdnLWluZm8vZGVwZW5kZW5jeV9saW5rcy50eHQKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2hwYWNrL2hwYWNrLmVnZy1p
bmZvL3RvcF9sZXZlbC50eHQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaHBhY2svaHBhY2svdzNjLWltcG9y
dC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3RoaXJkX3BhcnR5L2hwYWNrL2hwYWNrL3czYy1pbXBvcnQubG9nCmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAyYmMwYjRiZWQ1ZDEwOGY4OTJkNWZkZTYwY2I2NTczYTlhZmIwM2I5Li4w
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaHBhY2sv
aHBhY2svdzNjLWltcG9ydC5sb2cKKysrIC9kZXYvbnVsbApAQCAtMSwyNSArMCwwIEBACi1UaGUg
dGVzdHMgaW4gdGhpcyBkaXJlY3Rvcnkgd2VyZSBpbXBvcnRlZCBmcm9tIHRoZSBXM0MgcmVwb3Np
dG9yeS4KLURvIE5PVCBtb2RpZnkgdGhlc2UgdGVzdHMgZGlyZWN0bHkgaW4gV2ViS2l0LgotSW5z
dGVhZCwgY3JlYXRlIGEgcHVsbCByZXF1ZXN0IG9uIHRoZSBXUFQgZ2l0aHViOgotCWh0dHBzOi8v
Z2l0aHViLmNvbS93ZWItcGxhdGZvcm0tdGVzdHMvd3B0Ci0KLVRoZW4gcnVuIHRoZSBUb29scy9T
Y3JpcHRzL2ltcG9ydC13M2MtdGVzdHMgaW4gV2ViS2l0IHRvIHJlaW1wb3J0Ci0KLURvIE5PVCBt
b2RpZnkgb3IgcmVtb3ZlIHRoaXMgZmlsZS4KLQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1Qcm9wZXJ0aWVz
IHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi1Qcm9wZXJ0eSB2YWx1ZXMgcmVxdWly
aW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotTGlzdCBvZiBmaWxl
czoKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3Ro
aXJkX3BhcnR5L2hwYWNrL2hwYWNrL19faW5pdF9fLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9ocGFjay9ocGFjay9jb21w
YXQucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3RoaXJkX3BhcnR5L2hwYWNrL2hwYWNrL2V4Y2VwdGlvbnMucHkKLS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2hwYWNrL2hwYWNr
L2hwYWNrLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy90aGlyZF9wYXJ0eS9ocGFjay9ocGFjay9odWZmbWFuLnB5Ci0vTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9ocGFjay9ocGFj
ay9odWZmbWFuX2NvbnN0YW50cy5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaHBhY2svaHBhY2svaHVmZm1hbl90YWJsZS5w
eQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhp
cmRfcGFydHkvaHBhY2svaHBhY2svc3RydWN0LnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9ocGFjay9ocGFjay90YWJsZS5w
eQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy90aGlyZF9wYXJ0eS9ocGFjay90ZXN0L3czYy1pbXBvcnQubG9nIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9ocGFj
ay90ZXN0L3czYy1pbXBvcnQubG9nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkM2U0
OTE2MjUwNDllNDJiODc4MmI1Yzk0MTUyMDIyNTI5NzhlMDg5Li4wMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaHBhY2svdGVzdC93M2MtaW1wb3J0Lmxv
ZworKysgL2Rldi9udWxsCkBAIC0xLDIyICswLDAgQEAKLVRoZSB0ZXN0cyBpbiB0aGlzIGRpcmVj
dG9yeSB3ZXJlIGltcG9ydGVkIGZyb20gdGhlIFczQyByZXBvc2l0b3J5LgotRG8gTk9UIG1vZGlm
eSB0aGVzZSB0ZXN0cyBkaXJlY3RseSBpbiBXZWJLaXQuCi1JbnN0ZWFkLCBjcmVhdGUgYSBwdWxs
IHJlcXVlc3Qgb24gdGhlIFdQVCBnaXRodWI6Ci0JaHR0cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0
Zm9ybS10ZXN0cy93cHQKLQotVGhlbiBydW4gdGhlIFRvb2xzL1NjcmlwdHMvaW1wb3J0LXczYy10
ZXN0cyBpbiBXZWJLaXQgdG8gcmVpbXBvcnQKLQotRG8gTk9UIG1vZGlmeSBvciByZW1vdmUgdGhp
cyBmaWxlLgotCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLVByb3BlcnRpZXMgcmVxdWlyaW5nIHZlbmRvciBw
cmVmaXhlczoKLU5vbmUKLVByb3BlcnR5IHZhbHVlcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVz
OgotTm9uZQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1MaXN0IG9mIGZpbGVzOgotL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaHBhY2svdGVz
dC90ZXN0X2VuY29kZV9kZWNvZGUucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2hwYWNrL3Rlc3QvdGVzdF9ocGFjay5weQot
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRf
cGFydHkvaHBhY2svdGVzdC90ZXN0X2hwYWNrX2ludGVncmF0aW9uLnB5Ci0vTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9ocGFjay90
ZXN0L3Rlc3RfaHVmZm1hbi5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaHBhY2svdGVzdC90ZXN0X3N0cnVjdC5weQotL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFy
dHkvaHBhY2svdGVzdC90ZXN0X3RhYmxlLnB5CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2hwYWNrL3czYy1p
bXBvcnQubG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy90aGlyZF9wYXJ0eS9ocGFjay93M2MtaW1wb3J0LmxvZwpkZWxldGVkIGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggN2Y2NDQ5OTUwNWFmNzBiMDQxYzgxYTBmMWJlMDgzYzA4YTViMWZjNy4uMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2hwYWNrL3cz
Yy1pbXBvcnQubG9nCisrKyAvZGV2L251bGwKQEAgLTEsMjQgKzAsMCBAQAotVGhlIHRlc3RzIGlu
IHRoaXMgZGlyZWN0b3J5IHdlcmUgaW1wb3J0ZWQgZnJvbSB0aGUgVzNDIHJlcG9zaXRvcnkuCi1E
byBOT1QgbW9kaWZ5IHRoZXNlIHRlc3RzIGRpcmVjdGx5IGluIFdlYktpdC4KLUluc3RlYWQsIGNy
ZWF0ZSBhIHB1bGwgcmVxdWVzdCBvbiB0aGUgV1BUIGdpdGh1YjoKLQlodHRwczovL2dpdGh1Yi5j
b20vd2ViLXBsYXRmb3JtLXRlc3RzL3dwdAotCi1UaGVuIHJ1biB0aGUgVG9vbHMvU2NyaXB0cy9p
bXBvcnQtdzNjLXRlc3RzIGluIFdlYktpdCB0byByZWltcG9ydAotCi1EbyBOT1QgbW9kaWZ5IG9y
IHJlbW92ZSB0aGlzIGZpbGUuCi0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotUHJvcGVydGllcyByZXF1aXJp
bmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotUHJvcGVydHkgdmFsdWVzIHJlcXVpcmluZyB2ZW5k
b3IgcHJlZml4ZXM6Ci1Ob25lCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLUxpc3Qgb2YgZmlsZXM6Ci0vTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0
eS9ocGFjay9DT05UUklCVVRPUlMucnN0Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9ocGFjay9ISVNUT1JZLnJzdAotL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkv
aHBhY2svTElDRU5TRQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvdGhpcmRfcGFydHkvaHBhY2svTUFOSUZFU1QuaW4KLS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2hwYWNrL1BLRy1J
TkZPCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90
aGlyZF9wYXJ0eS9ocGFjay9SRUFETUUucnN0Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9ocGFjay9zZXR1cC5jZmcKLS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5
L2hwYWNrL3NldHVwLnB5CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2h0bWw1bGliLy5hcHB2ZXlvci55bWwg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJk
X3BhcnR5L2h0bWw1bGliLy5hcHB2ZXlvci55bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOTg0ZTJiN2ZhNWU2ZTk4
MzYwZDIxYTIzMjNkYjE2YWU0MWVhYjYzZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaHRtbDVs
aWIvLmFwcHZleW9yLnltbApAQCAtMCwwICsxLDMxIEBACisjIFRvIGFjdGl2YXRlLCBjaGFuZ2Ug
dGhlIEFwcHZleW9yIHNldHRpbmdzIHRvIHVzZSBgLmFwcHZleW9yLnltbGAuCitlbnZpcm9ubWVu
dDoKKyAgZ2xvYmFsOgorICAgIFBBVEg6ICJDOlxcUHl0aG9uMjdcXFNjcmlwdHNcXDslUEFUSCUi
CisgICAgUFlURVNUX0NPTU1BTkQ6ICJjb3ZlcmFnZSBydW4gLW0gcHl0ZXN0IgorICBtYXRyaXg6
CisgICAgLSBUT1hFTlY6IHB5MjctYmFzZQorICAgIC0gVE9YRU5WOiBweTI3LW9wdGlvbmFsCisg
ICAgLSBUT1hFTlY6IHB5MzMtYmFzZQorICAgIC0gVE9YRU5WOiBweTMzLW9wdGlvbmFsCisgICAg
LSBUT1hFTlY6IHB5MzQtYmFzZQorICAgIC0gVE9YRU5WOiBweTM0LW9wdGlvbmFsCisgICAgLSBU
T1hFTlY6IHB5MzUtYmFzZQorICAgIC0gVE9YRU5WOiBweTM1LW9wdGlvbmFsCisgICAgLSBUT1hF
TlY6IHB5MzYtYmFzZQorICAgIC0gVE9YRU5WOiBweTM2LW9wdGlvbmFsCisKK2luc3RhbGw6Cisg
IC0gZ2l0IHN1Ym1vZHVsZSB1cGRhdGUgLS1pbml0IC0tcmVjdXJzaXZlCisgIC0gcHl0aG9uIC1t
IHBpcCBpbnN0YWxsIHRveCBjb2RlY292CisKK2J1aWxkOiBvZmYKKwordGVzdF9zY3JpcHQ6Cisg
IC0gdG94CisKK2FmdGVyX3Rlc3Q6CisgIC0gcHl0aG9uIGRlYnVnLWluZm8ucHkKKworb25fc3Vj
Y2VzczoKKyAgLSBjb2RlY292CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2h0bWw1bGliLy5jb3ZlcmFnZXJj
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS9odG1sNWxpYi8uY292ZXJhZ2VyYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42ZmFjZjM1MjM5ZmE1YmQx
ODdlNjk4YjFmZjNkZTA2YjU0NWRlYjA2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9odG1sNWxp
Yi8uY292ZXJhZ2VyYwpAQCAtMCwwICsxLDggQEAKK1tydW5dCiticmFuY2ggPSBUcnVlCitzb3Vy
Y2UgPSBodG1sNWxpYgorCitbcGF0aHNdCitzb3VyY2UgPQorICAgaHRtbDVsaWIKKyAgIC50b3gv
Ki9saWIvcHl0aG9uKi9zaXRlLXBhY2thZ2VzL2h0bWw1bGliCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2h0
bWw1bGliLy5naXRpZ25vcmUgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2h0bWw1bGliLy5naXRpZ25vcmUKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
ZWNkNjJkZjMxYjkxMWUzZWEwOGMwOTg5ZDFmOTlhOTI5MThhMGUzMgotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhp
cmRfcGFydHkvaHRtbDVsaWIvLmdpdGlnbm9yZQpAQCAtMCwwICsxLDg1IEBACisjIENvcHlyaWdo
dCAoYykgMjAxNCBHaXRIdWIsIEluYy4KKyMKKyMgUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRl
ZCwgIGZyZWUgb2YgY2hhcmdlLCAgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYQorIyBjb3B5IG9m
IHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlICJT
b2Z0d2FyZSIpLAorIyB0byBkZWFsIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9u
LCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uCisjIHRoZSByaWdodHMgdG8gIHVzZSwgY29w
eSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwKKyMgYW5k
L29yIHNlbGwgY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRv
IHdob20gdGhlCisjIFNvZnR3YXJlIGlzIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6CisjCisjIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNl
IGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluCisjIGFsbCBj
b3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLgorIworIyBUSEUg
U09GVFdBUkUgSVMgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lO
RCwgRVhQUkVTUyBPUgorIyBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRI
RSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSwKKyMgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFCisj
IEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERB
TUFHRVMgT1IgT1RIRVIKKyMgTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05U
UkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcKKyMgRlJPTSwgT1VUIE9GIE9SIElOIENP
Tk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUgorIyBERUFMSU5H
UyBJTiBUSEUgU09GVFdBUkUuCisKKyMgQnl0ZS1jb21waWxlZCAvIG9wdGltaXplZCAvIERMTCBm
aWxlcworX19weWNhY2hlX18vCisqLnB5W2NvZF0KKyokcHkuY2xhc3MKKworIyBDIGV4dGVuc2lv
bnMKKyouc28KKworIyBEaXN0cmlidXRpb24gLyBwYWNrYWdpbmcKKy5QeXRob24KK2Vudi8KK2J1
aWxkLworZGV2ZWxvcC1lZ2dzLworZGlzdC8KK2Rvd25sb2Fkcy8KK2VnZ3MvCisuZWdncy8KK2xp
Yi8KK2xpYjY0LworcGFydHMvCitzZGlzdC8KK3Zhci8KKyouZWdnLWluZm8vCisuaW5zdGFsbGVk
LmNmZworKi5lZ2cKK01BTklGRVNUCisKKyMgUHlJbnN0YWxsZXIKKyMgIFVzdWFsbHkgdGhlc2Ug
ZmlsZXMgYXJlIHdyaXR0ZW4gYnkgYSBweXRob24gc2NyaXB0IGZyb20gYSB0ZW1wbGF0ZQorIyAg
YmVmb3JlIFB5SW5zdGFsbGVyIGJ1aWxkcyB0aGUgZXhlLCBzbyBhcyB0byBpbmplY3QgZGF0ZS9v
dGhlciBpbmZvcyBpbnRvIGl0LgorKi5tYW5pZmVzdAorKi5zcGVjCisKKyMgSW5zdGFsbGVyIGxv
Z3MKK3BpcC1sb2cudHh0CitwaXAtZGVsZXRlLXRoaXMtZGlyZWN0b3J5LnR4dAorCisjIFVuaXQg
dGVzdCAvIGNvdmVyYWdlIHJlcG9ydHMKK2h0bWxjb3YvCisudG94LworLmNvdmVyYWdlCisuY292
ZXJhZ2UuKgorLmNhY2hlCitub3NldGVzdHMueG1sCitjb3ZlcmFnZS54bWwKKyosY292ZXIKKwor
IyBUcmFuc2xhdGlvbnMKKyoubW8KKyoucG90CisKKyMgRGphbmdvIHN0dWZmOgorKi5sb2cKKwor
IyBTcGhpbnggZG9jdW1lbnRhdGlvbgorZG9jL19idWlsZC8KKworIyBQeUJ1aWxkZXIKK3Rhcmdl
dC8KKworIyBHZW5lcmF0ZWQgYnkgcGFyc2UucHkgLXAKK3N0YXRzLnByb2YKKworIyBJREUKKy5p
ZGVhCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2h0bWw1bGliLy5naXRtb2R1bGVzIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9odG1sNWxp
Yi8uZ2l0bW9kdWxlcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kYmNhNDcwMzI4ZDZiYzU2ZDQ0MzQ5NjJhNjk3Mjk5
MmRjZTRjZGM4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9odG1sNWxpYi8uZ2l0bW9kdWxlcwpA
QCAtMCwwICsxLDMgQEAKK1tzdWJtb2R1bGUgInRlc3RkYXRhIl0KKwlwYXRoID0gaHRtbDVsaWIv
dGVzdHMvdGVzdGRhdGEKKwl1cmwgPSBodHRwczovL2dpdGh1Yi5jb20vaHRtbDVsaWIvaHRtbDVs
aWItdGVzdHMuZ2l0CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2h0bWw1bGliLy5wcm9zcGVjdG9yLnlhbWwg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJk
X3BhcnR5L2h0bWw1bGliLy5wcm9zcGVjdG9yLnlhbWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uN2U4ZWZlMWE2Mjll
MGEwNDMxYWQxMzJjMGZhNTYzMjI5MDI4M2E5NgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaHRt
bDVsaWIvLnByb3NwZWN0b3IueWFtbApAQCAtMCwwICsxLDIxIEBACitzdHJpY3RuZXNzOiB2ZXJ5
aGlnaAorZG9jLXdhcm5pbmdzOiBmYWxzZQordGVzdC13YXJuaW5nczogZmFsc2UKKworbWF4LWxp
bmUtbGVuZ3RoOiAxMzkKKworcmVxdWlyZW1lbnRzOgorICAtIHJlcXVpcmVtZW50cy50eHQKKyAg
LSByZXF1aXJlbWVudHMtdGVzdC50eHQKKyAgLSByZXF1aXJlbWVudHMtb3B0aW9uYWwudHh0CisK
K2lnbm9yZS1wYXRoczoKKyAgLSBwYXJzZS5weQorICAtIHV0aWxzLworCitweXRob24tdGFyZ2V0
czoKKyAgLSAyCisgIC0gMworCittY2NhYmU6CisgIHJ1bjogZmFsc2UKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFy
dHkvaHRtbDVsaWIvLnB5bGludHJjIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9odG1sNWxpYi8ucHlsaW50cmMKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uZWE3NGQ1ZGIzZmYzMTU3ZTIwNmQ0N2I1MDcxNWQyNmEwM2ViODllOAotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
dGhpcmRfcGFydHkvaHRtbDVsaWIvLnB5bGludHJjCkBAIC0wLDAgKzEsMTAgQEAKK1tNQVNURVJd
CitpZ25vcmU9dGVzdHMKKworW01FU1NBR0VTIENPTlRST0xdCisjIG1lc3NhZ2VzIHVwIHRvIGZp
eG1lIHNob3VsZCBwcm9iYWJseSBiZSBmaXhlZCBzb21laG93CitkaXNhYmxlID0gcmVkZWZpbmVk
LWJ1aWx0aW4sYXR0cmlidXRlLWRlZmluZWQtb3V0c2lkZS1pbml0LGFub21hbG91cy1iYWNrc2xh
c2gtaW4tc3RyaW5nLG5vLXNlbGYtdXNlLHJlZGVmaW5lZC1vdXRlci1uYW1lLGJhZC1jb250aW51
YXRpb24sd3JvbmctaW1wb3J0LW9yZGVyLHN1cGVyZmx1b3VzLXBhcmVucyxuby1tZW1iZXIsZHVw
bGljYXRlLWNvZGUsc3VwZXItaW5pdC1ub3QtY2FsbGVkLGFic3RyYWN0LW1ldGhvZCxwcm9wZXJ0
eS1vbi1vbGQtY2xhc3Msd3JvbmctaW1wb3J0LXBvc2l0aW9uLG5vLW5hbWUtaW4tbW9kdWxlLG5v
LWluaXQsYmFkLW1jcy1jbGFzc21ldGhvZC1hcmd1bWVudCxiYWQtY2xhc3NtZXRob2QtYXJndW1l
bnQsZml4bWUsaW52YWxpZC1uYW1lLGltcG9ydC1lcnJvcix0b28tZmV3LXB1YmxpYy1tZXRob2Rz
LHRvby1tYW55LWFuY2VzdG9ycyx0b28tbWFueS1hcmd1bWVudHMsdG9vLW1hbnktYm9vbGVhbi1l
eHByZXNzaW9ucyx0b28tbWFueS1icmFuY2hlcyx0b28tbWFueS1pbnN0YW5jZS1hdHRyaWJ1dGVz
LHRvby1tYW55LWxvY2Fscyx0b28tbWFueS1saW5lcyx0b28tbWFueS1wdWJsaWMtbWV0aG9kcyx0
b28tbWFueS1yZXR1cm4tc3RhdGVtZW50cyx0b28tbWFueS1zdGF0ZW1lbnRzLG1pc3NpbmctZG9j
c3RyaW5nLGxpbmUtdG9vLWxvbmcsbG9jYWxseS1kaXNhYmxlZCxsb2NhbGx5LWVuYWJsZWQsYmFk
LWJ1aWx0aW4sZGVwcmVjYXRlZC1sYW1iZGEKKworW0ZPUk1BVF0KK21heC1saW5lLWxlbmd0aD0x
MzkKK3NpbmdsZS1saW5lLWlmLXN0bXQ9bm8KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaHRtbDVsaWIvLnB5
dGVzdC5leHBlY3QgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3RoaXJkX3BhcnR5L2h0bWw1bGliLy5weXRlc3QuZXhwZWN0Cm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjBm
YTMyNmYwMzU0Zjg5NDMxZGI4M2M3NDIwY2E0MTI3ZTYwYzUyNjkKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJk
X3BhcnR5L2h0bWw1bGliLy5weXRlc3QuZXhwZWN0CkBAIC0wLDAgKzEsMTMyMiBAQAorcHl0ZXN0
LWV4cGVjdCBmaWxlIHYxCisoMiwgNywgMTEsICdmaW5hbCcsIDApCitiJ2h0bWw1bGliL3Rlc3Rz
L3Rlc3RfZW5jb2RpbmcucHk6OnRlc3RfZW5jb2Rpbmc6OlsxMTBdJzogRkFJTAorYidodG1sNWxp
Yi90ZXN0cy90ZXN0X2VuY29kaW5nLnB5Ojp0ZXN0X2VuY29kaW5nOjpbMTExXSc6IEZBSUwKK3Un
aHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdG9rZW5pemVyL3Rlc3QyLnRlc3Q6OjA6OmRhdGFTdGF0
ZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdG9rZW5pemVyL3Rlc3QzLnRlc3Q6
OjIyODo6ZGF0YVN0YXRlJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90b2tlbml6
ZXIvdGVzdDMudGVzdDo6MjMxOjpkYXRhU3RhdGUnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rl
c3RkYXRhL3Rva2VuaXplci90ZXN0My50ZXN0OjoyMzI6OmRhdGFTdGF0ZSc6IEZBSUwKK3UnaHRt
bDVsaWIvdGVzdHMvdGVzdGRhdGEvdG9rZW5pemVyL3Rlc3QzLnRlc3Q6OjIzNDo6ZGF0YVN0YXRl
JzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90b2tlbml6ZXIvdGVzdDMudGVzdDo6
MjM1OjpkYXRhU3RhdGUnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3Rva2VuaXpl
ci90ZXN0My50ZXN0OjoyMzc6OmRhdGFTdGF0ZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVz
dGRhdGEvdG9rZW5pemVyL3Rlc3QzLnRlc3Q6OjI0MDo6ZGF0YVN0YXRlJzogRkFJTAordSdodG1s
NWxpYi90ZXN0cy90ZXN0ZGF0YS90b2tlbml6ZXIvdGVzdDMudGVzdDo6MjQxOjpkYXRhU3RhdGUn
OiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3Rva2VuaXplci90ZXN0My50ZXN0Ojoy
NDM6OmRhdGFTdGF0ZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdG9rZW5pemVy
L3Rlc3QzLnRlc3Q6OjI0NDo6ZGF0YVN0YXRlJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0
ZGF0YS90b2tlbml6ZXIvdGVzdDMudGVzdDo6MjQ2OjpkYXRhU3RhdGUnOiBGQUlMCit1J2h0bWw1
bGliL3Rlc3RzL3Rlc3RkYXRhL3Rva2VuaXplci90ZXN0My50ZXN0OjoyNTg6OmRhdGFTdGF0ZSc6
IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdG9rZW5pemVyL3Rlc3QzLnRlc3Q6OjY1
Njo6ZGF0YVN0YXRlJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0
cnVjdGlvbi9hZG9wdGlvbjAxLmRhdDo6MTc6OkRPTTo6cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJ
TAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi9hZG9wdGlvbjAx
LmRhdDo6MTc6OkRPTTo6cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIv
dGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vYWRvcHRpb24wMS5kYXQ6OjE3OjpFbGVt
ZW50VHJlZTo6cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0
ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi9hZG9wdGlvbjAxLmRhdDo6MTc6OkVsZW1lbnRUcmVlOjpw
YXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90
cmVlLWNvbnN0cnVjdGlvbi9hZG9wdGlvbjAxLmRhdDo6MTc6OmNFbGVtZW50VHJlZTo6cGFyc2Vy
OjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0
cnVjdGlvbi9hZG9wdGlvbjAxLmRhdDo6MTc6OmNFbGVtZW50VHJlZTo6cGFyc2VyOjp2b2lkLW5h
bWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rp
b24vYWRvcHRpb24wMS5kYXQ6OjE3OjpseG1sOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1
J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL2Fkb3B0aW9uMDEuZGF0
OjoxNzo6bHhtbDo6cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVz
dHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vZm9yZWlnbi1mcmFnbWVudC5kYXQ6OjA6OkRP
TTo6cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90
cmVlLWNvbnN0cnVjdGlvbi9mb3JlaWduLWZyYWdtZW50LmRhdDo6MDo6RE9NOjpwYXJzZXI6OnZv
aWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0
cnVjdGlvbi9mb3JlaWduLWZyYWdtZW50LmRhdDo6MDo6RWxlbWVudFRyZWU6OnBhcnNlcjo6bmFt
ZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rp
b24vZm9yZWlnbi1mcmFnbWVudC5kYXQ6OjA6OkVsZW1lbnRUcmVlOjpwYXJzZXI6OnZvaWQtbmFt
ZXNwYWNlJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlv
bi9mb3JlaWduLWZyYWdtZW50LmRhdDo6MDo6Y0VsZW1lbnRUcmVlOjpwYXJzZXI6Om5hbWVzcGFj
ZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL2Zv
cmVpZ24tZnJhZ21lbnQuZGF0OjowOjpjRWxlbWVudFRyZWU6OnBhcnNlcjo6dm9pZC1uYW1lc3Bh
Y2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL2Zv
cmVpZ24tZnJhZ21lbnQuZGF0OjowOjpseG1sOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1
J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL2ZvcmVpZ24tZnJhZ21l
bnQuZGF0OjowOjpseG1sOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxp
Yi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi9mb3JlaWduLWZyYWdtZW50LmRhdDo6
MTg6OkRPTTo6cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0
ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi9mb3JlaWduLWZyYWdtZW50LmRhdDo6MTg6OkRPTTo6cGFy
c2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJl
ZS1jb25zdHJ1Y3Rpb24vZm9yZWlnbi1mcmFnbWVudC5kYXQ6OjE4OjpFbGVtZW50VHJlZTo6cGFy
c2VyOjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNv
bnN0cnVjdGlvbi9mb3JlaWduLWZyYWdtZW50LmRhdDo6MTg6OkVsZW1lbnRUcmVlOjpwYXJzZXI6
OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNv
bnN0cnVjdGlvbi9mb3JlaWduLWZyYWdtZW50LmRhdDo6MTg6OmNFbGVtZW50VHJlZTo6cGFyc2Vy
OjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0
cnVjdGlvbi9mb3JlaWduLWZyYWdtZW50LmRhdDo6MTg6OmNFbGVtZW50VHJlZTo6cGFyc2VyOjp2
b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25z
dHJ1Y3Rpb24vZm9yZWlnbi1mcmFnbWVudC5kYXQ6OjE4OjpseG1sOjpwYXJzZXI6Om5hbWVzcGFj
ZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL2Zv
cmVpZ24tZnJhZ21lbnQuZGF0OjoxODo6bHhtbDo6cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZB
SUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vZm9yZWlnbi1m
cmFnbWVudC5kYXQ6OjE5OjpET006OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVs
aWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vZm9yZWlnbi1mcmFnbWVudC5kYXQ6
OjE5OjpET006OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3Rz
L3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL2ZvcmVpZ24tZnJhZ21lbnQuZGF0OjoxOTo6RWxl
bWVudFRyZWU6OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVz
dGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vZm9yZWlnbi1mcmFnbWVudC5kYXQ6OjE5OjpFbGVtZW50
VHJlZTo6cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVz
dGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vZm9yZWlnbi1mcmFnbWVudC5kYXQ6OjE5OjpjRWxlbWVu
dFRyZWU6OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRh
dGEvdHJlZS1jb25zdHJ1Y3Rpb24vZm9yZWlnbi1mcmFnbWVudC5kYXQ6OjE5OjpjRWxlbWVudFRy
ZWU6OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3Rk
YXRhL3RyZWUtY29uc3RydWN0aW9uL2ZvcmVpZ24tZnJhZ21lbnQuZGF0OjoxOTo6bHhtbDo6cGFy
c2VyOjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNv
bnN0cnVjdGlvbi9mb3JlaWduLWZyYWdtZW50LmRhdDo6MTk6Omx4bWw6OnBhcnNlcjo6dm9pZC1u
YW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0
aW9uL2ZvcmVpZ24tZnJhZ21lbnQuZGF0OjoxOjpET006OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZB
SUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vZm9yZWlnbi1m
cmFnbWVudC5kYXQ6OjE6OkRPTTo6cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRt
bDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vZm9yZWlnbi1mcmFnbWVudC5k
YXQ6OjE6OkVsZW1lbnRUcmVlOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1bGli
L3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL2ZvcmVpZ24tZnJhZ21lbnQuZGF0Ojox
OjpFbGVtZW50VHJlZTo6cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIv
dGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vZm9yZWlnbi1mcmFnbWVudC5kYXQ6OjE6
OmNFbGVtZW50VHJlZTo6cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0
cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi9mb3JlaWduLWZyYWdtZW50LmRhdDo6MTo6Y0Vs
ZW1lbnRUcmVlOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxpYi90ZXN0
cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi9mb3JlaWduLWZyYWdtZW50LmRhdDo6MTo6bHht
bDo6cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90
cmVlLWNvbnN0cnVjdGlvbi9mb3JlaWduLWZyYWdtZW50LmRhdDo6MTo6bHhtbDo6cGFyc2VyOjp2
b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25z
dHJ1Y3Rpb24vZm9yZWlnbi1mcmFnbWVudC5kYXQ6OjIyOjpET006OnBhcnNlcjo6bmFtZXNwYWNl
ZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vZm9y
ZWlnbi1mcmFnbWVudC5kYXQ6OjIyOjpET006OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlM
Cit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL2ZvcmVpZ24tZnJh
Z21lbnQuZGF0OjoyMjo6RWxlbWVudFRyZWU6OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3Un
aHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vZm9yZWlnbi1mcmFnbWVu
dC5kYXQ6OjIyOjpFbGVtZW50VHJlZTo6cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3Un
aHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vZm9yZWlnbi1mcmFnbWVu
dC5kYXQ6OjIyOjpjRWxlbWVudFRyZWU6OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRt
bDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vZm9yZWlnbi1mcmFnbWVudC5k
YXQ6OjIyOjpjRWxlbWVudFRyZWU6OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0
bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL2ZvcmVpZ24tZnJhZ21lbnQu
ZGF0OjoyMjo6bHhtbDo6cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0
cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi9mb3JlaWduLWZyYWdtZW50LmRhdDo6MjI6Omx4
bWw6OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3Rk
YXRhL3RyZWUtY29uc3RydWN0aW9uL2ZvcmVpZ24tZnJhZ21lbnQuZGF0OjoyMzo6RE9NOjpwYXJz
ZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29u
c3RydWN0aW9uL2ZvcmVpZ24tZnJhZ21lbnQuZGF0OjoyMzo6RE9NOjpwYXJzZXI6OnZvaWQtbmFt
ZXNwYWNlJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlv
bi9mb3JlaWduLWZyYWdtZW50LmRhdDo6MjM6OkVsZW1lbnRUcmVlOjpwYXJzZXI6Om5hbWVzcGFj
ZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL2Zv
cmVpZ24tZnJhZ21lbnQuZGF0OjoyMzo6RWxlbWVudFRyZWU6OnBhcnNlcjo6dm9pZC1uYW1lc3Bh
Y2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL2Zv
cmVpZ24tZnJhZ21lbnQuZGF0OjoyMzo6Y0VsZW1lbnRUcmVlOjpwYXJzZXI6Om5hbWVzcGFjZWQn
OiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL2ZvcmVp
Z24tZnJhZ21lbnQuZGF0OjoyMzo6Y0VsZW1lbnRUcmVlOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNl
JzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi9mb3Jl
aWduLWZyYWdtZW50LmRhdDo6MjM6Omx4bWw6OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3Un
aHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vZm9yZWlnbi1mcmFnbWVu
dC5kYXQ6OjIzOjpseG1sOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxp
Yi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi9mb3JlaWduLWZyYWdtZW50LmRhdDo6
MjY6OkRPTTo6cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0
ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi9mb3JlaWduLWZyYWdtZW50LmRhdDo6MjY6OkRPTTo6cGFy
c2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJl
ZS1jb25zdHJ1Y3Rpb24vZm9yZWlnbi1mcmFnbWVudC5kYXQ6OjI2OjpFbGVtZW50VHJlZTo6cGFy
c2VyOjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNv
bnN0cnVjdGlvbi9mb3JlaWduLWZyYWdtZW50LmRhdDo6MjY6OkVsZW1lbnRUcmVlOjpwYXJzZXI6
OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNv
bnN0cnVjdGlvbi9mb3JlaWduLWZyYWdtZW50LmRhdDo6MjY6OmNFbGVtZW50VHJlZTo6cGFyc2Vy
OjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0
cnVjdGlvbi9mb3JlaWduLWZyYWdtZW50LmRhdDo6MjY6OmNFbGVtZW50VHJlZTo6cGFyc2VyOjp2
b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25z
dHJ1Y3Rpb24vZm9yZWlnbi1mcmFnbWVudC5kYXQ6OjI2OjpseG1sOjpwYXJzZXI6Om5hbWVzcGFj
ZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL2Zv
cmVpZ24tZnJhZ21lbnQuZGF0OjoyNjo6bHhtbDo6cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZB
SUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vZm9yZWlnbi1m
cmFnbWVudC5kYXQ6OjI3OjpET006OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVs
aWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vZm9yZWlnbi1mcmFnbWVudC5kYXQ6
OjI3OjpET006OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3Rz
L3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL2ZvcmVpZ24tZnJhZ21lbnQuZGF0OjoyNzo6RWxl
bWVudFRyZWU6OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVz
dGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vZm9yZWlnbi1mcmFnbWVudC5kYXQ6OjI3OjpFbGVtZW50
VHJlZTo6cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVz
dGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vZm9yZWlnbi1mcmFnbWVudC5kYXQ6OjI3OjpjRWxlbWVu
dFRyZWU6OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRh
dGEvdHJlZS1jb25zdHJ1Y3Rpb24vZm9yZWlnbi1mcmFnbWVudC5kYXQ6OjI3OjpjRWxlbWVudFRy
ZWU6OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3Rk
YXRhL3RyZWUtY29uc3RydWN0aW9uL2ZvcmVpZ24tZnJhZ21lbnQuZGF0OjoyNzo6bHhtbDo6cGFy
c2VyOjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNv
bnN0cnVjdGlvbi9mb3JlaWduLWZyYWdtZW50LmRhdDo6Mjc6Omx4bWw6OnBhcnNlcjo6dm9pZC1u
YW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0
aW9uL2ZvcmVpZ24tZnJhZ21lbnQuZGF0OjoyOjpET006OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZB
SUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vZm9yZWlnbi1m
cmFnbWVudC5kYXQ6OjI6OkRPTTo6cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRt
bDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vZm9yZWlnbi1mcmFnbWVudC5k
YXQ6OjI6OkVsZW1lbnRUcmVlOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1bGli
L3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL2ZvcmVpZ24tZnJhZ21lbnQuZGF0Ojoy
OjpFbGVtZW50VHJlZTo6cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIv
dGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vZm9yZWlnbi1mcmFnbWVudC5kYXQ6OjI6
OmNFbGVtZW50VHJlZTo6cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0
cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi9mb3JlaWduLWZyYWdtZW50LmRhdDo6Mjo6Y0Vs
ZW1lbnRUcmVlOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxpYi90ZXN0
cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi9mb3JlaWduLWZyYWdtZW50LmRhdDo6Mjo6bHht
bDo6cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90
cmVlLWNvbnN0cnVjdGlvbi9mb3JlaWduLWZyYWdtZW50LmRhdDo6Mjo6bHhtbDo6cGFyc2VyOjp2
b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25z
dHJ1Y3Rpb24vZm9yZWlnbi1mcmFnbWVudC5kYXQ6OjMwOjpET006OnBhcnNlcjo6bmFtZXNwYWNl
ZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vZm9y
ZWlnbi1mcmFnbWVudC5kYXQ6OjMwOjpET006OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlM
Cit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL2ZvcmVpZ24tZnJh
Z21lbnQuZGF0OjozMDo6RWxlbWVudFRyZWU6OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3Un
aHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vZm9yZWlnbi1mcmFnbWVu
dC5kYXQ6OjMwOjpFbGVtZW50VHJlZTo6cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3Un
aHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vZm9yZWlnbi1mcmFnbWVu
dC5kYXQ6OjMwOjpjRWxlbWVudFRyZWU6OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRt
bDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vZm9yZWlnbi1mcmFnbWVudC5k
YXQ6OjMwOjpjRWxlbWVudFRyZWU6OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0
bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL2ZvcmVpZ24tZnJhZ21lbnQu
ZGF0OjozMDo6bHhtbDo6cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0
cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi9mb3JlaWduLWZyYWdtZW50LmRhdDo6MzA6Omx4
bWw6OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3Rk
YXRhL3RyZWUtY29uc3RydWN0aW9uL2ZvcmVpZ24tZnJhZ21lbnQuZGF0OjozMTo6RE9NOjpwYXJz
ZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29u
c3RydWN0aW9uL2ZvcmVpZ24tZnJhZ21lbnQuZGF0OjozMTo6RE9NOjpwYXJzZXI6OnZvaWQtbmFt
ZXNwYWNlJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlv
bi9mb3JlaWduLWZyYWdtZW50LmRhdDo6MzE6OkVsZW1lbnRUcmVlOjpwYXJzZXI6Om5hbWVzcGFj
ZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL2Zv
cmVpZ24tZnJhZ21lbnQuZGF0OjozMTo6RWxlbWVudFRyZWU6OnBhcnNlcjo6dm9pZC1uYW1lc3Bh
Y2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL2Zv
cmVpZ24tZnJhZ21lbnQuZGF0OjozMTo6Y0VsZW1lbnRUcmVlOjpwYXJzZXI6Om5hbWVzcGFjZWQn
OiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL2ZvcmVp
Z24tZnJhZ21lbnQuZGF0OjozMTo6Y0VsZW1lbnRUcmVlOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNl
JzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi9mb3Jl
aWduLWZyYWdtZW50LmRhdDo6MzE6Omx4bWw6OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3Un
aHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vZm9yZWlnbi1mcmFnbWVu
dC5kYXQ6OjMxOjpseG1sOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxp
Yi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi9mb3JlaWduLWZyYWdtZW50LmRhdDo6
MzQ6OkRPTTo6cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0
ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi9mb3JlaWduLWZyYWdtZW50LmRhdDo6MzQ6OkRPTTo6cGFy
c2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJl
ZS1jb25zdHJ1Y3Rpb24vZm9yZWlnbi1mcmFnbWVudC5kYXQ6OjM0OjpFbGVtZW50VHJlZTo6cGFy
c2VyOjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNv
bnN0cnVjdGlvbi9mb3JlaWduLWZyYWdtZW50LmRhdDo6MzQ6OkVsZW1lbnRUcmVlOjpwYXJzZXI6
OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNv
bnN0cnVjdGlvbi9mb3JlaWduLWZyYWdtZW50LmRhdDo6MzQ6OmNFbGVtZW50VHJlZTo6cGFyc2Vy
OjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0
cnVjdGlvbi9mb3JlaWduLWZyYWdtZW50LmRhdDo6MzQ6OmNFbGVtZW50VHJlZTo6cGFyc2VyOjp2
b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25z
dHJ1Y3Rpb24vZm9yZWlnbi1mcmFnbWVudC5kYXQ6OjM0OjpseG1sOjpwYXJzZXI6Om5hbWVzcGFj
ZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL2Zv
cmVpZ24tZnJhZ21lbnQuZGF0OjozNDo6bHhtbDo6cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZB
SUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vZm9yZWlnbi1m
cmFnbWVudC5kYXQ6OjM1OjpET006OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVs
aWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vZm9yZWlnbi1mcmFnbWVudC5kYXQ6
OjM1OjpET006OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3Rz
L3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL2ZvcmVpZ24tZnJhZ21lbnQuZGF0OjozNTo6RWxl
bWVudFRyZWU6OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVz
dGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vZm9yZWlnbi1mcmFnbWVudC5kYXQ6OjM1OjpFbGVtZW50
VHJlZTo6cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVz
dGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vZm9yZWlnbi1mcmFnbWVudC5kYXQ6OjM1OjpjRWxlbWVu
dFRyZWU6OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRh
dGEvdHJlZS1jb25zdHJ1Y3Rpb24vZm9yZWlnbi1mcmFnbWVudC5kYXQ6OjM1OjpjRWxlbWVudFRy
ZWU6OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3Rk
YXRhL3RyZWUtY29uc3RydWN0aW9uL2ZvcmVpZ24tZnJhZ21lbnQuZGF0OjozNTo6bHhtbDo6cGFy
c2VyOjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNv
bnN0cnVjdGlvbi9mb3JlaWduLWZyYWdtZW50LmRhdDo6MzU6Omx4bWw6OnBhcnNlcjo6dm9pZC1u
YW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0
aW9uL2ZvcmVpZ24tZnJhZ21lbnQuZGF0OjozODo6RE9NOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBG
QUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL2ZvcmVpZ24t
ZnJhZ21lbnQuZGF0OjozODo6RE9NOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdo
dG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi9mb3JlaWduLWZyYWdtZW50
LmRhdDo6Mzg6OkVsZW1lbnRUcmVlOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1
bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL2ZvcmVpZ24tZnJhZ21lbnQuZGF0
OjozODo6RWxlbWVudFRyZWU6OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1
bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL2ZvcmVpZ24tZnJhZ21lbnQuZGF0
OjozODo6Y0VsZW1lbnRUcmVlOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1bGli
L3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL2ZvcmVpZ24tZnJhZ21lbnQuZGF0Ojoz
ODo6Y0VsZW1lbnRUcmVlOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxp
Yi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi9mb3JlaWduLWZyYWdtZW50LmRhdDo6
Mzg6Omx4bWw6OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVz
dGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vZm9yZWlnbi1mcmFnbWVudC5kYXQ6OjM4OjpseG1sOjpw
YXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90
cmVlLWNvbnN0cnVjdGlvbi9mb3JlaWduLWZyYWdtZW50LmRhdDo6Mzk6OkRPTTo6cGFyc2VyOjpu
YW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVj
dGlvbi9mb3JlaWduLWZyYWdtZW50LmRhdDo6Mzk6OkRPTTo6cGFyc2VyOjp2b2lkLW5hbWVzcGFj
ZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vZm9y
ZWlnbi1mcmFnbWVudC5kYXQ6OjM5OjpFbGVtZW50VHJlZTo6cGFyc2VyOjpuYW1lc3BhY2VkJzog
RkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi9mb3JlaWdu
LWZyYWdtZW50LmRhdDo6Mzk6OkVsZW1lbnRUcmVlOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzog
RkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi9mb3JlaWdu
LWZyYWdtZW50LmRhdDo6Mzk6OmNFbGVtZW50VHJlZTo6cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJ
TAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi9mb3JlaWduLWZy
YWdtZW50LmRhdDo6Mzk6OmNFbGVtZW50VHJlZTo6cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZB
SUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vZm9yZWlnbi1m
cmFnbWVudC5kYXQ6OjM5OjpseG1sOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1
bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL2ZvcmVpZ24tZnJhZ21lbnQuZGF0
OjozOTo6bHhtbDo6cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVz
dHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vZm9yZWlnbi1mcmFnbWVudC5kYXQ6OjM6OkRP
TTo6cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90
cmVlLWNvbnN0cnVjdGlvbi9mb3JlaWduLWZyYWdtZW50LmRhdDo6Mzo6RE9NOjpwYXJzZXI6OnZv
aWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0
cnVjdGlvbi9mb3JlaWduLWZyYWdtZW50LmRhdDo6Mzo6RWxlbWVudFRyZWU6OnBhcnNlcjo6bmFt
ZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rp
b24vZm9yZWlnbi1mcmFnbWVudC5kYXQ6OjM6OkVsZW1lbnRUcmVlOjpwYXJzZXI6OnZvaWQtbmFt
ZXNwYWNlJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlv
bi9mb3JlaWduLWZyYWdtZW50LmRhdDo6Mzo6Y0VsZW1lbnRUcmVlOjpwYXJzZXI6Om5hbWVzcGFj
ZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL2Zv
cmVpZ24tZnJhZ21lbnQuZGF0OjozOjpjRWxlbWVudFRyZWU6OnBhcnNlcjo6dm9pZC1uYW1lc3Bh
Y2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL2Zv
cmVpZ24tZnJhZ21lbnQuZGF0OjozOjpseG1sOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1
J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL2ZvcmVpZ24tZnJhZ21l
bnQuZGF0OjozOjpseG1sOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxp
Yi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi9mb3JlaWduLWZyYWdtZW50LmRhdDo6
NDA6OkRPTTo6cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0
ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi9mb3JlaWduLWZyYWdtZW50LmRhdDo6NDA6OkRPTTo6cGFy
c2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJl
ZS1jb25zdHJ1Y3Rpb24vZm9yZWlnbi1mcmFnbWVudC5kYXQ6OjQwOjpFbGVtZW50VHJlZTo6cGFy
c2VyOjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNv
bnN0cnVjdGlvbi9mb3JlaWduLWZyYWdtZW50LmRhdDo6NDA6OkVsZW1lbnRUcmVlOjpwYXJzZXI6
OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNv
bnN0cnVjdGlvbi9mb3JlaWduLWZyYWdtZW50LmRhdDo6NDA6OmNFbGVtZW50VHJlZTo6cGFyc2Vy
OjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0
cnVjdGlvbi9mb3JlaWduLWZyYWdtZW50LmRhdDo6NDA6OmNFbGVtZW50VHJlZTo6cGFyc2VyOjp2
b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25z
dHJ1Y3Rpb24vZm9yZWlnbi1mcmFnbWVudC5kYXQ6OjQwOjpseG1sOjpwYXJzZXI6Om5hbWVzcGFj
ZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL2Zv
cmVpZ24tZnJhZ21lbnQuZGF0Ojo0MDo6bHhtbDo6cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZB
SUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vZm9yZWlnbi1m
cmFnbWVudC5kYXQ6OjQxOjpET006OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVs
aWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vZm9yZWlnbi1mcmFnbWVudC5kYXQ6
OjQxOjpET006OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3Rz
L3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL2ZvcmVpZ24tZnJhZ21lbnQuZGF0Ojo0MTo6RWxl
bWVudFRyZWU6OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVz
dGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vZm9yZWlnbi1mcmFnbWVudC5kYXQ6OjQxOjpFbGVtZW50
VHJlZTo6cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVz
dGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vZm9yZWlnbi1mcmFnbWVudC5kYXQ6OjQxOjpjRWxlbWVu
dFRyZWU6OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRh
dGEvdHJlZS1jb25zdHJ1Y3Rpb24vZm9yZWlnbi1mcmFnbWVudC5kYXQ6OjQxOjpjRWxlbWVudFRy
ZWU6OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3Rk
YXRhL3RyZWUtY29uc3RydWN0aW9uL2ZvcmVpZ24tZnJhZ21lbnQuZGF0Ojo0MTo6bHhtbDo6cGFy
c2VyOjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNv
bnN0cnVjdGlvbi9mb3JlaWduLWZyYWdtZW50LmRhdDo6NDE6Omx4bWw6OnBhcnNlcjo6dm9pZC1u
YW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0
aW9uL2ZvcmVpZ24tZnJhZ21lbnQuZGF0Ojo0Nzo6RE9NOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBG
QUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL2ZvcmVpZ24t
ZnJhZ21lbnQuZGF0Ojo0Nzo6RE9NOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdo
dG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi9mb3JlaWduLWZyYWdtZW50
LmRhdDo6NDc6OkVsZW1lbnRUcmVlOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1
bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL2ZvcmVpZ24tZnJhZ21lbnQuZGF0
Ojo0Nzo6RWxlbWVudFRyZWU6OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1
bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL2ZvcmVpZ24tZnJhZ21lbnQuZGF0
Ojo0Nzo6Y0VsZW1lbnRUcmVlOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1bGli
L3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL2ZvcmVpZ24tZnJhZ21lbnQuZGF0Ojo0
Nzo6Y0VsZW1lbnRUcmVlOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxp
Yi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi9mb3JlaWduLWZyYWdtZW50LmRhdDo6
NDc6Omx4bWw6OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVz
dGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vZm9yZWlnbi1mcmFnbWVudC5kYXQ6OjQ3OjpseG1sOjpw
YXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90
cmVlLWNvbnN0cnVjdGlvbi9mb3JlaWduLWZyYWdtZW50LmRhdDo6NDg6OkRPTTo6cGFyc2VyOjpu
YW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVj
dGlvbi9mb3JlaWduLWZyYWdtZW50LmRhdDo6NDg6OkRPTTo6cGFyc2VyOjp2b2lkLW5hbWVzcGFj
ZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vZm9y
ZWlnbi1mcmFnbWVudC5kYXQ6OjQ4OjpFbGVtZW50VHJlZTo6cGFyc2VyOjpuYW1lc3BhY2VkJzog
RkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi9mb3JlaWdu
LWZyYWdtZW50LmRhdDo6NDg6OkVsZW1lbnRUcmVlOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzog
RkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi9mb3JlaWdu
LWZyYWdtZW50LmRhdDo6NDg6OmNFbGVtZW50VHJlZTo6cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJ
TAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi9mb3JlaWduLWZy
YWdtZW50LmRhdDo6NDg6OmNFbGVtZW50VHJlZTo6cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZB
SUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vZm9yZWlnbi1m
cmFnbWVudC5kYXQ6OjQ4OjpseG1sOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1
bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL2ZvcmVpZ24tZnJhZ21lbnQuZGF0
Ojo0ODo6bHhtbDo6cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVz
dHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vaXNpbmRleC5kYXQ6OjA6OkRPTTo6cGFyc2Vy
OjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0
cnVjdGlvbi9pc2luZGV4LmRhdDo6MDo6RE9NOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJ
TAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi9pc2luZGV4LmRh
dDo6MDo6RWxlbWVudFRyZWU6OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIv
dGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vaXNpbmRleC5kYXQ6OjA6OkVsZW1lbnRU
cmVlOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0
ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi9pc2luZGV4LmRhdDo6MDo6Y0VsZW1lbnRUcmVlOjpwYXJz
ZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29u
c3RydWN0aW9uL2lzaW5kZXguZGF0OjowOjpjRWxlbWVudFRyZWU6OnBhcnNlcjo6dm9pZC1uYW1l
c3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9u
L2lzaW5kZXguZGF0OjowOjpseG1sOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1
bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL2lzaW5kZXguZGF0OjowOjpseG1s
OjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0
YS90cmVlLWNvbnN0cnVjdGlvbi9pc2luZGV4LmRhdDo6MTo6RE9NOjpwYXJzZXI6Om5hbWVzcGFj
ZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL2lz
aW5kZXguZGF0OjoxOjpET006OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1
bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL2lzaW5kZXguZGF0OjoxOjpFbGVt
ZW50VHJlZTo6cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0
ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi9pc2luZGV4LmRhdDo6MTo6RWxlbWVudFRyZWU6OnBhcnNl
cjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUt
Y29uc3RydWN0aW9uL2lzaW5kZXguZGF0OjoxOjpjRWxlbWVudFRyZWU6OnBhcnNlcjo6bmFtZXNw
YWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24v
aXNpbmRleC5kYXQ6OjE6OmNFbGVtZW50VHJlZTo6cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZB
SUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vaXNpbmRleC5k
YXQ6OjE6Omx4bWw6OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMv
dGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vaXNpbmRleC5kYXQ6OjE6Omx4bWw6OnBhcnNlcjo6
dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29u
c3RydWN0aW9uL2lzaW5kZXguZGF0OjoyOjpET006OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwK
K3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vaXNpbmRleC5kYXQ6
OjI6OkRPTTo6cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMv
dGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vaXNpbmRleC5kYXQ6OjI6OkVsZW1lbnRUcmVlOjpw
YXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUt
Y29uc3RydWN0aW9uL2lzaW5kZXguZGF0OjoyOjpFbGVtZW50VHJlZTo6cGFyc2VyOjp2b2lkLW5h
bWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rp
b24vaXNpbmRleC5kYXQ6OjI6OmNFbGVtZW50VHJlZTo6cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJ
TAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi9pc2luZGV4LmRh
dDo6Mjo6Y0VsZW1lbnRUcmVlOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1s
NWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi9pc2luZGV4LmRhdDo6Mjo6bHht
bDo6cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90
cmVlLWNvbnN0cnVjdGlvbi9pc2luZGV4LmRhdDo6Mjo6bHhtbDo6cGFyc2VyOjp2b2lkLW5hbWVz
cGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24v
aXNpbmRleC5kYXQ6OjM6OkRPTTo6cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxp
Yi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi9pc2luZGV4LmRhdDo6Mzo6RE9NOjpw
YXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90
cmVlLWNvbnN0cnVjdGlvbi9pc2luZGV4LmRhdDo6Mzo6RWxlbWVudFRyZWU6OnBhcnNlcjo6bmFt
ZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rp
b24vaXNpbmRleC5kYXQ6OjM6OkVsZW1lbnRUcmVlOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzog
RkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi9pc2luZGV4
LmRhdDo6Mzo6Y0VsZW1lbnRUcmVlOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1
bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL2lzaW5kZXguZGF0OjozOjpjRWxl
bWVudFRyZWU6OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3Rz
L3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL2lzaW5kZXguZGF0OjozOjpseG1sOjpwYXJzZXI6
Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3Ry
dWN0aW9uL2lzaW5kZXguZGF0OjozOjpseG1sOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJ
TAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi9tZW51aXRlbS1l
bGVtZW50LmRhdDo6Mzo6RE9NOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1bGli
L3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL21lbnVpdGVtLWVsZW1lbnQuZGF0Ojoz
OjpET006OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rl
c3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL21lbnVpdGVtLWVsZW1lbnQuZGF0OjozOjpFbGVtZW50
VHJlZTo6cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0
YS90cmVlLWNvbnN0cnVjdGlvbi9tZW51aXRlbS1lbGVtZW50LmRhdDo6Mzo6RWxlbWVudFRyZWU6
OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRh
L3RyZWUtY29uc3RydWN0aW9uL21lbnVpdGVtLWVsZW1lbnQuZGF0OjozOjpjRWxlbWVudFRyZWU6
OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJl
ZS1jb25zdHJ1Y3Rpb24vbWVudWl0ZW0tZWxlbWVudC5kYXQ6OjM6OmNFbGVtZW50VHJlZTo6cGFy
c2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJl
ZS1jb25zdHJ1Y3Rpb24vbWVudWl0ZW0tZWxlbWVudC5kYXQ6OjM6Omx4bWw6OnBhcnNlcjo6bmFt
ZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rp
b24vbWVudWl0ZW0tZWxlbWVudC5kYXQ6OjM6Omx4bWw6OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2Un
OiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL21lbnVp
dGVtLWVsZW1lbnQuZGF0Ojo0OjpET006OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRt
bDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vbWVudWl0ZW0tZWxlbWVudC5k
YXQ6OjQ6OkRPTTo6cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVz
dHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vbWVudWl0ZW0tZWxlbWVudC5kYXQ6OjQ6OkVs
ZW1lbnRUcmVlOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rl
c3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL21lbnVpdGVtLWVsZW1lbnQuZGF0Ojo0OjpFbGVtZW50
VHJlZTo6cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVz
dGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vbWVudWl0ZW0tZWxlbWVudC5kYXQ6OjQ6OmNFbGVtZW50
VHJlZTo6cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0
YS90cmVlLWNvbnN0cnVjdGlvbi9tZW51aXRlbS1lbGVtZW50LmRhdDo6NDo6Y0VsZW1lbnRUcmVl
OjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0
YS90cmVlLWNvbnN0cnVjdGlvbi9tZW51aXRlbS1lbGVtZW50LmRhdDo6NDo6bHhtbDo6cGFyc2Vy
OjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0
cnVjdGlvbi9tZW51aXRlbS1lbGVtZW50LmRhdDo6NDo6bHhtbDo6cGFyc2VyOjp2b2lkLW5hbWVz
cGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24v
bWVudWl0ZW0tZWxlbWVudC5kYXQ6OjU6OkRPTTo6cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJTAor
dSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi9tZW51aXRlbS1lbGVt
ZW50LmRhdDo6NTo6RE9NOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxp
Yi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi9tZW51aXRlbS1lbGVtZW50LmRhdDo6
NTo6RWxlbWVudFRyZWU6OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVz
dHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vbWVudWl0ZW0tZWxlbWVudC5kYXQ6OjU6OkVs
ZW1lbnRUcmVlOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxpYi90ZXN0
cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi9tZW51aXRlbS1lbGVtZW50LmRhdDo6NTo6Y0Vs
ZW1lbnRUcmVlOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rl
c3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL21lbnVpdGVtLWVsZW1lbnQuZGF0Ojo1OjpjRWxlbWVu
dFRyZWU6OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rl
c3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL21lbnVpdGVtLWVsZW1lbnQuZGF0Ojo1OjpseG1sOjpw
YXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUt
Y29uc3RydWN0aW9uL21lbnVpdGVtLWVsZW1lbnQuZGF0Ojo1OjpseG1sOjpwYXJzZXI6OnZvaWQt
bmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVj
dGlvbi9uYW1lc3BhY2Utc2Vuc2l0aXZpdHkuZGF0OjowOjpET006OnBhcnNlcjo6bmFtZXNwYWNl
ZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vbmFt
ZXNwYWNlLXNlbnNpdGl2aXR5LmRhdDo6MDo6RE9NOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzog
RkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi9uYW1lc3Bh
Y2Utc2Vuc2l0aXZpdHkuZGF0OjowOjpFbGVtZW50VHJlZTo6cGFyc2VyOjpuYW1lc3BhY2VkJzog
RkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi9uYW1lc3Bh
Y2Utc2Vuc2l0aXZpdHkuZGF0OjowOjpFbGVtZW50VHJlZTo6cGFyc2VyOjp2b2lkLW5hbWVzcGFj
ZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vbmFt
ZXNwYWNlLXNlbnNpdGl2aXR5LmRhdDo6MDo6Y0VsZW1lbnRUcmVlOjpwYXJzZXI6Om5hbWVzcGFj
ZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL25h
bWVzcGFjZS1zZW5zaXRpdml0eS5kYXQ6OjA6OmNFbGVtZW50VHJlZTo6cGFyc2VyOjp2b2lkLW5h
bWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rp
b24vbmFtZXNwYWNlLXNlbnNpdGl2aXR5LmRhdDo6MDo6bHhtbDo6cGFyc2VyOjpuYW1lc3BhY2Vk
JzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi9uYW1l
c3BhY2Utc2Vuc2l0aXZpdHkuZGF0OjowOjpseG1sOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzog
RkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi9ydWJ5LmRh
dDo6MDo6RE9NOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rl
c3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3J1YnkuZGF0OjowOjpET006OnBhcnNlcjo6dm9pZC1u
YW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0
aW9uL3J1YnkuZGF0OjowOjpFbGVtZW50VHJlZTo6cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJTAor
dSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi9ydWJ5LmRhdDo6MDo6
RWxlbWVudFRyZWU6OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rl
c3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3J1YnkuZGF0OjowOjpjRWxlbWVudFRyZWU6
OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJl
ZS1jb25zdHJ1Y3Rpb24vcnVieS5kYXQ6OjA6OmNFbGVtZW50VHJlZTo6cGFyc2VyOjp2b2lkLW5h
bWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rp
b24vcnVieS5kYXQ6OjA6Omx4bWw6OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVs
aWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vcnVieS5kYXQ6OjA6Omx4bWw6OnBh
cnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3Ry
ZWUtY29uc3RydWN0aW9uL3J1YnkuZGF0OjoxMDo6RE9NOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBG
QUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3J1YnkuZGF0
OjoxMDo6RE9NOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxpYi90ZXN0
cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi9ydWJ5LmRhdDo6MTA6OkVsZW1lbnRUcmVlOjpw
YXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUt
Y29uc3RydWN0aW9uL3J1YnkuZGF0OjoxMDo6RWxlbWVudFRyZWU6OnBhcnNlcjo6dm9pZC1uYW1l
c3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9u
L3J1YnkuZGF0OjoxMDo6Y0VsZW1lbnRUcmVlOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1
J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3J1YnkuZGF0OjoxMDo6
Y0VsZW1lbnRUcmVlOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxpYi90
ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi9ydWJ5LmRhdDo6MTA6Omx4bWw6OnBhcnNl
cjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25z
dHJ1Y3Rpb24vcnVieS5kYXQ6OjEwOjpseG1sOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJ
TAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi9ydWJ5LmRhdDo6
MTI6OkRPTTo6cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0
ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi9ydWJ5LmRhdDo6MTI6OkRPTTo6cGFyc2VyOjp2b2lkLW5h
bWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rp
b24vcnVieS5kYXQ6OjEyOjpFbGVtZW50VHJlZTo6cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJTAor
dSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi9ydWJ5LmRhdDo6MTI6
OkVsZW1lbnRUcmVlOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxpYi90
ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi9ydWJ5LmRhdDo6MTI6OmNFbGVtZW50VHJl
ZTo6cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90
cmVlLWNvbnN0cnVjdGlvbi9ydWJ5LmRhdDo6MTI6OmNFbGVtZW50VHJlZTo6cGFyc2VyOjp2b2lk
LW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1
Y3Rpb24vcnVieS5kYXQ6OjEyOjpseG1sOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0
bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3J1YnkuZGF0OjoxMjo6bHht
bDo6cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRh
dGEvdHJlZS1jb25zdHJ1Y3Rpb24vcnVieS5kYXQ6OjE1OjpET006OnBhcnNlcjo6bmFtZXNwYWNl
ZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vcnVi
eS5kYXQ6OjE1OjpET006OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1bGli
L3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3J1YnkuZGF0OjoxNTo6RWxlbWVudFRy
ZWU6OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEv
dHJlZS1jb25zdHJ1Y3Rpb24vcnVieS5kYXQ6OjE1OjpFbGVtZW50VHJlZTo6cGFyc2VyOjp2b2lk
LW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1
Y3Rpb24vcnVieS5kYXQ6OjE1OjpjRWxlbWVudFRyZWU6OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZB
SUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vcnVieS5kYXQ6
OjE1OjpjRWxlbWVudFRyZWU6OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1
bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3J1YnkuZGF0OjoxNTo6bHhtbDo6
cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVl
LWNvbnN0cnVjdGlvbi9ydWJ5LmRhdDo6MTU6Omx4bWw6OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2Un
OiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3J1Ynku
ZGF0OjoxNzo6RE9NOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3Rz
L3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3J1YnkuZGF0OjoxNzo6RE9NOjpwYXJzZXI6OnZv
aWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0
cnVjdGlvbi9ydWJ5LmRhdDo6MTc6OkVsZW1lbnRUcmVlOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBG
QUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3J1YnkuZGF0
OjoxNzo6RWxlbWVudFRyZWU6OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1
bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3J1YnkuZGF0OjoxNzo6Y0VsZW1l
bnRUcmVlOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3Rk
YXRhL3RyZWUtY29uc3RydWN0aW9uL3J1YnkuZGF0OjoxNzo6Y0VsZW1lbnRUcmVlOjpwYXJzZXI6
OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNv
bnN0cnVjdGlvbi9ydWJ5LmRhdDo6MTc6Omx4bWw6OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwK
K3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vcnVieS5kYXQ6OjE3
OjpseG1sOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90
ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi9ydWJ5LmRhdDo6MTo6RE9NOjpwYXJzZXI6Om5hbWVz
cGFjZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9u
L3J1YnkuZGF0OjoxOjpET006OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1
bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3J1YnkuZGF0OjoxOjpFbGVtZW50
VHJlZTo6cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0
YS90cmVlLWNvbnN0cnVjdGlvbi9ydWJ5LmRhdDo6MTo6RWxlbWVudFRyZWU6OnBhcnNlcjo6dm9p
ZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3Ry
dWN0aW9uL3J1YnkuZGF0OjoxOjpjRWxlbWVudFRyZWU6OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZB
SUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vcnVieS5kYXQ6
OjE6OmNFbGVtZW50VHJlZTo6cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVs
aWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vcnVieS5kYXQ6OjE6Omx4bWw6OnBh
cnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1j
b25zdHJ1Y3Rpb24vcnVieS5kYXQ6OjE6Omx4bWw6OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBG
QUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3J1YnkuZGF0
OjoyMDo6RE9NOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rl
c3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3J1YnkuZGF0OjoyMDo6RE9NOjpwYXJzZXI6OnZvaWQt
bmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVj
dGlvbi9ydWJ5LmRhdDo6MjA6OkVsZW1lbnRUcmVlOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlM
Cit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3J1YnkuZGF0Ojoy
MDo6RWxlbWVudFRyZWU6OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1bGli
L3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3J1YnkuZGF0OjoyMDo6Y0VsZW1lbnRU
cmVlOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRh
L3RyZWUtY29uc3RydWN0aW9uL3J1YnkuZGF0OjoyMDo6Y0VsZW1lbnRUcmVlOjpwYXJzZXI6OnZv
aWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0
cnVjdGlvbi9ydWJ5LmRhdDo6MjA6Omx4bWw6OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3Un
aHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vcnVieS5kYXQ6OjIwOjps
eG1sOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0
ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi9ydWJ5LmRhdDo6Mjo6RE9NOjpwYXJzZXI6Om5hbWVzcGFj
ZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3J1
YnkuZGF0OjoyOjpET006OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1bGli
L3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3J1YnkuZGF0OjoyOjpFbGVtZW50VHJl
ZTo6cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90
cmVlLWNvbnN0cnVjdGlvbi9ydWJ5LmRhdDo6Mjo6RWxlbWVudFRyZWU6OnBhcnNlcjo6dm9pZC1u
YW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0
aW9uL3J1YnkuZGF0OjoyOjpjRWxlbWVudFRyZWU6OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwK
K3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vcnVieS5kYXQ6OjI6
OmNFbGVtZW50VHJlZTo6cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIv
dGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vcnVieS5kYXQ6OjI6Omx4bWw6OnBhcnNl
cjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25z
dHJ1Y3Rpb24vcnVieS5kYXQ6OjI6Omx4bWw6OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlM
Cit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3J1YnkuZGF0Ojoz
OjpET006OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRh
dGEvdHJlZS1jb25zdHJ1Y3Rpb24vcnVieS5kYXQ6OjM6OkRPTTo6cGFyc2VyOjp2b2lkLW5hbWVz
cGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24v
cnVieS5kYXQ6OjM6OkVsZW1lbnRUcmVlOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0
bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3J1YnkuZGF0OjozOjpFbGVt
ZW50VHJlZTo6cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMv
dGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vcnVieS5kYXQ6OjM6OmNFbGVtZW50VHJlZTo6cGFy
c2VyOjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNv
bnN0cnVjdGlvbi9ydWJ5LmRhdDo6Mzo6Y0VsZW1lbnRUcmVlOjpwYXJzZXI6OnZvaWQtbmFtZXNw
YWNlJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi9y
dWJ5LmRhdDo6Mzo6bHhtbDo6cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90
ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi9ydWJ5LmRhdDo6Mzo6bHhtbDo6cGFyc2Vy
Ojp2b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1j
b25zdHJ1Y3Rpb24vcnVieS5kYXQ6OjU6OkRPTTo6cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJTAor
dSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi9ydWJ5LmRhdDo6NTo6
RE9NOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0
ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi9ydWJ5LmRhdDo6NTo6RWxlbWVudFRyZWU6OnBhcnNlcjo6
bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1
Y3Rpb24vcnVieS5kYXQ6OjU6OkVsZW1lbnRUcmVlOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzog
RkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi9ydWJ5LmRh
dDo6NTo6Y0VsZW1lbnRUcmVlOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1bGli
L3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3J1YnkuZGF0Ojo1OjpjRWxlbWVudFRy
ZWU6OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3Rk
YXRhL3RyZWUtY29uc3RydWN0aW9uL3J1YnkuZGF0Ojo1OjpseG1sOjpwYXJzZXI6Om5hbWVzcGFj
ZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3J1
YnkuZGF0Ojo1OjpseG1sOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxp
Yi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi9ydWJ5LmRhdDo6Nzo6RE9NOjpwYXJz
ZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29u
c3RydWN0aW9uL3J1YnkuZGF0Ojo3OjpET006OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlM
Cit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3J1YnkuZGF0Ojo3
OjpFbGVtZW50VHJlZTo6cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0
cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi9ydWJ5LmRhdDo6Nzo6RWxlbWVudFRyZWU6OnBh
cnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3Ry
ZWUtY29uc3RydWN0aW9uL3J1YnkuZGF0Ojo3OjpjRWxlbWVudFRyZWU6OnBhcnNlcjo6bmFtZXNw
YWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24v
cnVieS5kYXQ6Ojc6OmNFbGVtZW50VHJlZTo6cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZBSUwK
K3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vcnVieS5kYXQ6Ojc6
Omx4bWw6OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRh
dGEvdHJlZS1jb25zdHJ1Y3Rpb24vcnVieS5kYXQ6Ojc6Omx4bWw6OnBhcnNlcjo6dm9pZC1uYW1l
c3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9u
L3NjcmlwdGVkL2Fkb3B0aW9uMDEuZGF0OjowOjpET006OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZB
SUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vc2NyaXB0ZWQv
YWRvcHRpb24wMS5kYXQ6OjA6OkRPTTo6cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3Un
aHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vc2NyaXB0ZWQvYWRvcHRp
b24wMS5kYXQ6OjA6OkVsZW1lbnRUcmVlOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0
bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3NjcmlwdGVkL2Fkb3B0aW9u
MDEuZGF0OjowOjpFbGVtZW50VHJlZTo6cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3Un
aHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vc2NyaXB0ZWQvYWRvcHRp
b24wMS5kYXQ6OjA6OmNFbGVtZW50VHJlZTo6cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJTAordSdo
dG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi9zY3JpcHRlZC9hZG9wdGlv
bjAxLmRhdDo6MDo6Y0VsZW1lbnRUcmVlOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAor
dSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi9zY3JpcHRlZC9hZG9w
dGlvbjAxLmRhdDo6MDo6bHhtbDo6cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxp
Yi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi9zY3JpcHRlZC9hZG9wdGlvbjAxLmRh
dDo6MDo6bHhtbDo6cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVz
dHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vc2NyaXB0ZWQvYXJrLmRhdDo6MDo6RE9NOjpw
YXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUt
Y29uc3RydWN0aW9uL3NjcmlwdGVkL2Fyay5kYXQ6OjA6OkRPTTo6cGFyc2VyOjp2b2lkLW5hbWVz
cGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24v
c2NyaXB0ZWQvYXJrLmRhdDo6MDo6RWxlbWVudFRyZWU6OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZB
SUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vc2NyaXB0ZWQv
YXJrLmRhdDo6MDo6RWxlbWVudFRyZWU6OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1
J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3NjcmlwdGVkL2Fyay5k
YXQ6OjA6OmNFbGVtZW50VHJlZTo6cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxp
Yi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi9zY3JpcHRlZC9hcmsuZGF0OjowOjpj
RWxlbWVudFRyZWU6OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rl
c3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3NjcmlwdGVkL2Fyay5kYXQ6OjA6Omx4bWw6
OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJl
ZS1jb25zdHJ1Y3Rpb24vc2NyaXB0ZWQvYXJrLmRhdDo6MDo6bHhtbDo6cGFyc2VyOjp2b2lkLW5h
bWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rp
b24vc2NyaXB0ZWQvd2Via2l0MDEuZGF0OjowOjpET006OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZB
SUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vc2NyaXB0ZWQv
d2Via2l0MDEuZGF0OjowOjpET006OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0
bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3NjcmlwdGVkL3dlYmtpdDAx
LmRhdDo6MDo6RWxlbWVudFRyZWU6OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVs
aWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vc2NyaXB0ZWQvd2Via2l0MDEuZGF0
OjowOjpFbGVtZW50VHJlZTo6cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVs
aWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vc2NyaXB0ZWQvd2Via2l0MDEuZGF0
OjowOjpjRWxlbWVudFRyZWU6OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIv
dGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vc2NyaXB0ZWQvd2Via2l0MDEuZGF0Ojow
OjpjRWxlbWVudFRyZWU6OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1bGli
L3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3NjcmlwdGVkL3dlYmtpdDAxLmRhdDo6
MDo6bHhtbDo6cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0
ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi9zY3JpcHRlZC93ZWJraXQwMS5kYXQ6OjA6Omx4bWw6OnBh
cnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3Ry
ZWUtY29uc3RydWN0aW9uL3NjcmlwdGVkL3dlYmtpdDAxLmRhdDo6MTo6RE9NOjpwYXJzZXI6Om5h
bWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0
aW9uL3NjcmlwdGVkL3dlYmtpdDAxLmRhdDo6MTo6RE9NOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNl
JzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi9zY3Jp
cHRlZC93ZWJraXQwMS5kYXQ6OjE6OkVsZW1lbnRUcmVlOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBG
QUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3NjcmlwdGVk
L3dlYmtpdDAxLmRhdDo6MTo6RWxlbWVudFRyZWU6OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBG
QUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3NjcmlwdGVk
L3dlYmtpdDAxLmRhdDo6MTo6Y0VsZW1lbnRUcmVlOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlM
Cit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3NjcmlwdGVkL3dl
YmtpdDAxLmRhdDo6MTo6Y0VsZW1lbnRUcmVlOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJ
TAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi9zY3JpcHRlZC93
ZWJraXQwMS5kYXQ6OjE6Omx4bWw6OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVs
aWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vc2NyaXB0ZWQvd2Via2l0MDEuZGF0
OjoxOjpseG1sOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxpYi90ZXN0
cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjA6OkRPTTo6cGFyc2Vy
OjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0
cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjA6OkRPTTo6cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZB
SUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUu
ZGF0OjowOjpFbGVtZW50VHJlZTo6cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxp
Yi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjA6OkVsZW1l
bnRUcmVlOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90
ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjA6OmNFbGVtZW50VHJlZTo6
cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVl
LWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjA6OmNFbGVtZW50VHJlZTo6cGFyc2VyOjp2b2lk
LW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1
Y3Rpb24vdGVtcGxhdGUuZGF0OjowOjpseG1sOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1
J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6
MDo6bHhtbDo6cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMv
dGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0OjoxMDA6OkRPTTo6cGFyc2Vy
OjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0
cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjEwMDo6RE9NOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzog
RkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0
ZS5kYXQ6OjEwMDo6RWxlbWVudFRyZWU6OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRt
bDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0OjoxMDA6
OkVsZW1lbnRUcmVlOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxpYi90
ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjEwMDo6Y0VsZW1l
bnRUcmVlOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3Rk
YXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6MTAwOjpjRWxlbWVudFRyZWU6OnBh
cnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3Ry
ZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6MTAwOjpseG1sOjpwYXJzZXI6Om5hbWVzcGFj
ZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3Rl
bXBsYXRlLmRhdDo6MTAwOjpseG1sOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdo
dG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjEw
MTo6RE9NOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3Rk
YXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6MTAxOjpET006OnBhcnNlcjo6dm9p
ZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3Ry
dWN0aW9uL3RlbXBsYXRlLmRhdDo6MTAxOjpFbGVtZW50VHJlZTo6cGFyc2VyOjpuYW1lc3BhY2Vk
JzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1w
bGF0ZS5kYXQ6OjEwMTo6RWxlbWVudFRyZWU6OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlM
Cit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRh
dDo6MTAxOjpjRWxlbWVudFRyZWU6OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVs
aWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0OjoxMDE6OmNF
bGVtZW50VHJlZTo6cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVz
dHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0OjoxMDE6Omx4bWw6OnBh
cnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1j
b25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0OjoxMDE6Omx4bWw6OnBhcnNlcjo6dm9pZC1uYW1lc3Bh
Y2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3Rl
bXBsYXRlLmRhdDo6MTAyOjpET006OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVs
aWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0OjoxMDI6OkRP
TTo6cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRh
dGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0OjoxMDI6OkVsZW1lbnRUcmVlOjpwYXJz
ZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29u
c3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6MTAyOjpFbGVtZW50VHJlZTo6cGFyc2VyOjp2b2lkLW5h
bWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rp
b24vdGVtcGxhdGUuZGF0OjoxMDI6OmNFbGVtZW50VHJlZTo6cGFyc2VyOjpuYW1lc3BhY2VkJzog
RkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0
ZS5kYXQ6OjEwMjo6Y0VsZW1lbnRUcmVlOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAor
dSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6
OjEwMjo6bHhtbDo6cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90
ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjEwMjo6bHhtbDo6cGFyc2Vy
Ojp2b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1j
b25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0OjoxMDM6OkRPTTo6cGFyc2VyOjpuYW1lc3BhY2VkJzog
RkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0
ZS5kYXQ6OjEwMzo6RE9NOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxp
Yi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjEwMzo6RWxl
bWVudFRyZWU6OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVz
dGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0OjoxMDM6OkVsZW1lbnRUcmVlOjpw
YXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90
cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjEwMzo6Y0VsZW1lbnRUcmVlOjpwYXJzZXI6
Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3Ry
dWN0aW9uL3RlbXBsYXRlLmRhdDo6MTAzOjpjRWxlbWVudFRyZWU6OnBhcnNlcjo6dm9pZC1uYW1l
c3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9u
L3RlbXBsYXRlLmRhdDo6MTAzOjpseG1sOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0
bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6MTAz
OjpseG1sOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90
ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjEwNDo6RE9NOjpwYXJzZXI6
Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3Ry
dWN0aW9uL3RlbXBsYXRlLmRhdDo6MTA0OjpET006OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBG
QUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRl
LmRhdDo6MTA0OjpFbGVtZW50VHJlZTo6cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1s
NWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjEwNDo6
RWxlbWVudFRyZWU6OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rl
c3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6MTA0OjpjRWxlbWVu
dFRyZWU6OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRh
dGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0OjoxMDQ6OmNFbGVtZW50VHJlZTo6cGFy
c2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJl
ZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0OjoxMDQ6Omx4bWw6OnBhcnNlcjo6bmFtZXNwYWNl
ZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVt
cGxhdGUuZGF0OjoxMDQ6Omx4bWw6OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0
bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6MTA1
OjpET006OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRh
dGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0OjoxMDU6OkRPTTo6cGFyc2VyOjp2b2lk
LW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1
Y3Rpb24vdGVtcGxhdGUuZGF0OjoxMDU6OkVsZW1lbnRUcmVlOjpwYXJzZXI6Om5hbWVzcGFjZWQn
OiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBs
YXRlLmRhdDo6MTA1OjpFbGVtZW50VHJlZTo6cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZBSUwK
K3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0
OjoxMDU6OmNFbGVtZW50VHJlZTo6cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxp
Yi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjEwNTo6Y0Vs
ZW1lbnRUcmVlOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxpYi90ZXN0
cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjEwNTo6bHhtbDo6cGFy
c2VyOjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNv
bnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjEwNTo6bHhtbDo6cGFyc2VyOjp2b2lkLW5hbWVzcGFj
ZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVt
cGxhdGUuZGF0OjoxMDY6OkRPTTo6cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxp
Yi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjEwNjo6RE9N
OjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0
YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjEwNjo6RWxlbWVudFRyZWU6OnBhcnNl
cjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25z
dHJ1Y3Rpb24vdGVtcGxhdGUuZGF0OjoxMDY6OkVsZW1lbnRUcmVlOjpwYXJzZXI6OnZvaWQtbmFt
ZXNwYWNlJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlv
bi90ZW1wbGF0ZS5kYXQ6OjEwNjo6Y0VsZW1lbnRUcmVlOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBG
QUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRl
LmRhdDo6MTA2OjpjRWxlbWVudFRyZWU6OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1
J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6
MTA2OjpseG1sOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rl
c3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6MTA2OjpseG1sOjpwYXJzZXI6
OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNv
bnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjEwNzo6RE9NOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBG
QUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRl
LmRhdDo6MTA3OjpET006OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1bGli
L3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6MTA3OjpFbGVt
ZW50VHJlZTo6cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0
ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjEwNzo6RWxlbWVudFRyZWU6OnBh
cnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3Ry
ZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6MTA3OjpjRWxlbWVudFRyZWU6OnBhcnNlcjo6
bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1
Y3Rpb24vdGVtcGxhdGUuZGF0OjoxMDc6OmNFbGVtZW50VHJlZTo6cGFyc2VyOjp2b2lkLW5hbWVz
cGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24v
dGVtcGxhdGUuZGF0OjoxMDc6Omx4bWw6OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRt
bDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0OjoxMDc6
Omx4bWw6OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rl
c3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6MTA6OkRPTTo6cGFyc2VyOjpu
YW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVj
dGlvbi90ZW1wbGF0ZS5kYXQ6OjEwOjpET006OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlM
Cit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRh
dDo6MTA6OkVsZW1lbnRUcmVlOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1bGli
L3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6MTA6OkVsZW1l
bnRUcmVlOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90
ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjEwOjpjRWxlbWVudFRyZWU6
OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJl
ZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0OjoxMDo6Y0VsZW1lbnRUcmVlOjpwYXJzZXI6OnZv
aWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0
cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjEwOjpseG1sOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlM
Cit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRh
dDo6MTA6Omx4bWw6OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rl
c3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6MTE6OkRPTTo6cGFy
c2VyOjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNv
bnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjExOjpET006OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2Un
OiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBs
YXRlLmRhdDo6MTE6OkVsZW1lbnRUcmVlOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0
bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6MTE6
OkVsZW1lbnRUcmVlOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxpYi90
ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjExOjpjRWxlbWVu
dFRyZWU6OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRh
dGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0OjoxMTo6Y0VsZW1lbnRUcmVlOjpwYXJz
ZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVl
LWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjExOjpseG1sOjpwYXJzZXI6Om5hbWVzcGFjZWQn
OiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBs
YXRlLmRhdDo6MTE6Omx4bWw6OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1
bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6MTI6OkRP
TTo6cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90
cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjEyOjpET006OnBhcnNlcjo6dm9pZC1uYW1l
c3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9u
L3RlbXBsYXRlLmRhdDo6MTI6OkVsZW1lbnRUcmVlOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlM
Cit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRh
dDo6MTI6OkVsZW1lbnRUcmVlOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1s
NWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjEyOjpj
RWxlbWVudFRyZWU6OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMv
dGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0OjoxMjo6Y0VsZW1lbnRUcmVl
OjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0
YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjEyOjpseG1sOjpwYXJzZXI6Om5hbWVz
cGFjZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9u
L3RlbXBsYXRlLmRhdDo6MTI6Omx4bWw6OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1
J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6
MTM6OkRPTTo6cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0
ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjEzOjpET006OnBhcnNlcjo6dm9p
ZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3Ry
dWN0aW9uL3RlbXBsYXRlLmRhdDo6MTM6OkVsZW1lbnRUcmVlOjpwYXJzZXI6Om5hbWVzcGFjZWQn
OiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBs
YXRlLmRhdDo6MTM6OkVsZW1lbnRUcmVlOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAor
dSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6
OjEzOjpjRWxlbWVudFRyZWU6OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIv
dGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0OjoxMzo6Y0VsZW1l
bnRUcmVlOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90
ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjEzOjpseG1sOjpwYXJzZXI6
Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3Ry
dWN0aW9uL3RlbXBsYXRlLmRhdDo6MTM6Omx4bWw6OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBG
QUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRl
LmRhdDo6MTQ6OkRPTTo6cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0
cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjE0OjpET006OnBhcnNl
cjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUt
Y29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6MTQ6OkVsZW1lbnRUcmVlOjpwYXJzZXI6Om5hbWVz
cGFjZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9u
L3RlbXBsYXRlLmRhdDo6MTQ6OkVsZW1lbnRUcmVlOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzog
RkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0
ZS5kYXQ6OjE0OjpjRWxlbWVudFRyZWU6OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRt
bDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0OjoxNDo6
Y0VsZW1lbnRUcmVlOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxpYi90
ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjE0OjpseG1sOjpw
YXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUt
Y29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6MTQ6Omx4bWw6OnBhcnNlcjo6dm9pZC1uYW1lc3Bh
Y2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3Rl
bXBsYXRlLmRhdDo6MTU6OkRPTTo6cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxp
Yi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjE1OjpET006
OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRh
L3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6MTU6OkVsZW1lbnRUcmVlOjpwYXJzZXI6
Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3Ry
dWN0aW9uL3RlbXBsYXRlLmRhdDo6MTU6OkVsZW1lbnRUcmVlOjpwYXJzZXI6OnZvaWQtbmFtZXNw
YWNlJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90
ZW1wbGF0ZS5kYXQ6OjE1OjpjRWxlbWVudFRyZWU6OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwK
K3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0
OjoxNTo6Y0VsZW1lbnRUcmVlOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1s
NWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjE1Ojps
eG1sOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRh
L3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6MTU6Omx4bWw6OnBhcnNlcjo6dm9pZC1u
YW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0
aW9uL3RlbXBsYXRlLmRhdDo6MTY6OkRPTTo6cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJTAordSdo
dG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjE2
OjpET006OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rl
c3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6MTY6OkVsZW1lbnRUcmVlOjpw
YXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUt
Y29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6MTY6OkVsZW1lbnRUcmVlOjpwYXJzZXI6OnZvaWQt
bmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVj
dGlvbi90ZW1wbGF0ZS5kYXQ6OjE2OjpjRWxlbWVudFRyZWU6OnBhcnNlcjo6bmFtZXNwYWNlZCc6
IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxh
dGUuZGF0OjoxNjo6Y0VsZW1lbnRUcmVlOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAor
dSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6
OjE2OjpseG1sOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rl
c3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6MTY6Omx4bWw6OnBhcnNlcjo6
dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29u
c3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6MTc6OkRPTTo6cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJ
TAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5k
YXQ6OjE3OjpET006OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rl
c3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6MTc6OkVsZW1lbnRU
cmVlOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRh
L3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6MTc6OkVsZW1lbnRUcmVlOjpwYXJzZXI6
OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNv
bnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjE3OjpjRWxlbWVudFRyZWU6OnBhcnNlcjo6bmFtZXNw
YWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24v
dGVtcGxhdGUuZGF0OjoxNzo6Y0VsZW1lbnRUcmVlOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzog
RkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0
ZS5kYXQ6OjE3OjpseG1sOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rl
c3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6MTc6Omx4bWw6OnBh
cnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3Ry
ZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6MTg6OkRPTTo6cGFyc2VyOjpuYW1lc3BhY2Vk
JzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1w
bGF0ZS5kYXQ6OjE4OjpET006OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1
bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6MTg6OkVs
ZW1lbnRUcmVlOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rl
c3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6MTg6OkVsZW1lbnRUcmVlOjpw
YXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90
cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjE4OjpjRWxlbWVudFRyZWU6OnBhcnNlcjo6
bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1
Y3Rpb24vdGVtcGxhdGUuZGF0OjoxODo6Y0VsZW1lbnRUcmVlOjpwYXJzZXI6OnZvaWQtbmFtZXNw
YWNlJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90
ZW1wbGF0ZS5kYXQ6OjE4OjpseG1sOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1
bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6MTg6Omx4
bWw6OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3Rk
YXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6MTk6OkRPTTo6cGFyc2VyOjpuYW1l
c3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlv
bi90ZW1wbGF0ZS5kYXQ6OjE5OjpET006OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1
J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6
MTk6OkVsZW1lbnRUcmVlOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rl
c3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6MTk6OkVsZW1lbnRU
cmVlOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0
ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjE5OjpjRWxlbWVudFRyZWU6OnBh
cnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1j
b25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0OjoxOTo6Y0VsZW1lbnRUcmVlOjpwYXJzZXI6OnZvaWQt
bmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVj
dGlvbi90ZW1wbGF0ZS5kYXQ6OjE5OjpseG1sOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1
J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6
MTk6Omx4bWw6OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3Rz
L3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6MTo6RE9NOjpwYXJzZXI6
Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3Ry
dWN0aW9uL3RlbXBsYXRlLmRhdDo6MTo6RE9NOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJ
TAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5k
YXQ6OjE6OkVsZW1lbnRUcmVlOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1bGli
L3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6MTo6RWxlbWVu
dFRyZWU6OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rl
c3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6MTo6Y0VsZW1lbnRUcmVlOjpw
YXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUt
Y29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6MTo6Y0VsZW1lbnRUcmVlOjpwYXJzZXI6OnZvaWQt
bmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVj
dGlvbi90ZW1wbGF0ZS5kYXQ6OjE6Omx4bWw6OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3Un
aHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0Ojox
OjpseG1sOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90
ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjIwOjpET006OnBhcnNlcjo6
bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1
Y3Rpb24vdGVtcGxhdGUuZGF0OjoyMDo6RE9NOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJ
TAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5k
YXQ6OjIwOjpFbGVtZW50VHJlZTo6cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxp
Yi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjIwOjpFbGVt
ZW50VHJlZTo6cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMv
dGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0OjoyMDo6Y0VsZW1lbnRUcmVl
OjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3Ry
ZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6MjA6OmNFbGVtZW50VHJlZTo6cGFyc2VyOjp2
b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25z
dHJ1Y3Rpb24vdGVtcGxhdGUuZGF0OjoyMDo6bHhtbDo6cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJ
TAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5k
YXQ6OjIwOjpseG1sOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxpYi90
ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjIxOjpET006OnBh
cnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1j
b25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0OjoyMTo6RE9NOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNl
JzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1w
bGF0ZS5kYXQ6OjIxOjpFbGVtZW50VHJlZTo6cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJTAordSdo
dG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjIx
OjpFbGVtZW50VHJlZTo6cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIv
dGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0OjoyMTo6Y0VsZW1l
bnRUcmVlOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3Rk
YXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6MjE6OmNFbGVtZW50VHJlZTo6cGFy
c2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJl
ZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0OjoyMTo6bHhtbDo6cGFyc2VyOjpuYW1lc3BhY2Vk
JzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1w
bGF0ZS5kYXQ6OjIxOjpseG1sOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1s
NWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjIyOjpE
T006OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEv
dHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0OjoyMjo6RE9NOjpwYXJzZXI6OnZvaWQtbmFt
ZXNwYWNlJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlv
bi90ZW1wbGF0ZS5kYXQ6OjIyOjpFbGVtZW50VHJlZTo6cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJ
TAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5k
YXQ6OjIyOjpFbGVtZW50VHJlZTo6cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRt
bDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0OjoyMjo6
Y0VsZW1lbnRUcmVlOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3Rz
L3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6MjI6OmNFbGVtZW50VHJl
ZTo6cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRh
dGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0OjoyMjo6bHhtbDo6cGFyc2VyOjpuYW1l
c3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlv
bi90ZW1wbGF0ZS5kYXQ6OjIyOjpseG1sOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAor
dSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6
OjIzOjpET006OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVz
dGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0OjoyMzo6RE9NOjpwYXJzZXI6OnZv
aWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0
cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjIzOjpFbGVtZW50VHJlZTo6cGFyc2VyOjpuYW1lc3BhY2Vk
JzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1w
bGF0ZS5kYXQ6OjIzOjpFbGVtZW50VHJlZTo6cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZBSUwK
K3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0
OjoyMzo6Y0VsZW1lbnRUcmVlOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1bGli
L3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6MjM6OmNFbGVt
ZW50VHJlZTo6cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMv
dGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0OjoyMzo6bHhtbDo6cGFyc2Vy
OjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0
cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjIzOjpseG1sOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzog
RkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0
ZS5kYXQ6OjI0OjpET006OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVz
dHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0OjoyNDo6RE9NOjpwYXJz
ZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVl
LWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjI0OjpFbGVtZW50VHJlZTo6cGFyc2VyOjpuYW1l
c3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlv
bi90ZW1wbGF0ZS5kYXQ6OjI0OjpFbGVtZW50VHJlZTo6cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6
IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxh
dGUuZGF0OjoyNDo6Y0VsZW1lbnRUcmVlOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0
bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6MjQ6
OmNFbGVtZW50VHJlZTo6cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIv
dGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0OjoyNDo6bHhtbDo6
cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVl
LWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjI0OjpseG1sOjpwYXJzZXI6OnZvaWQtbmFtZXNw
YWNlJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90
ZW1wbGF0ZS5kYXQ6OjI1OjpET006OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVs
aWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0OjoyNTo6RE9N
OjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0
YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjI1OjpFbGVtZW50VHJlZTo6cGFyc2Vy
OjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0
cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjI1OjpFbGVtZW50VHJlZTo6cGFyc2VyOjp2b2lkLW5hbWVz
cGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24v
dGVtcGxhdGUuZGF0OjoyNTo6Y0VsZW1lbnRUcmVlOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlM
Cit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRh
dDo6MjU6OmNFbGVtZW50VHJlZTo6cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRt
bDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0OjoyNTo6
bHhtbDo6cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0
YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjI1OjpseG1sOjpwYXJzZXI6OnZvaWQt
bmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVj
dGlvbi90ZW1wbGF0ZS5kYXQ6OjI2OjpET006OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3Un
aHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0Ojoy
Njo6RE9NOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90
ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjI2OjpFbGVtZW50VHJlZTo6
cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVl
LWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjI2OjpFbGVtZW50VHJlZTo6cGFyc2VyOjp2b2lk
LW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1
Y3Rpb24vdGVtcGxhdGUuZGF0OjoyNjo6Y0VsZW1lbnRUcmVlOjpwYXJzZXI6Om5hbWVzcGFjZWQn
OiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBs
YXRlLmRhdDo6MjY6OmNFbGVtZW50VHJlZTo6cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZBSUwK
K3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0
OjoyNjo6bHhtbDo6cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90
ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjI2OjpseG1sOjpwYXJzZXI6
OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNv
bnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjI3OjpET006OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZB
SUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUu
ZGF0OjoyNzo6RE9NOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxpYi90
ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjI3OjpFbGVtZW50
VHJlZTo6cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0
YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjI3OjpFbGVtZW50VHJlZTo6cGFyc2Vy
Ojp2b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1j
b25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0OjoyNzo6Y0VsZW1lbnRUcmVlOjpwYXJzZXI6Om5hbWVz
cGFjZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9u
L3RlbXBsYXRlLmRhdDo6Mjc6OmNFbGVtZW50VHJlZTo6cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6
IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxh
dGUuZGF0OjoyNzo6bHhtbDo6cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90
ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjI3OjpseG1sOjpw
YXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90
cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjI4OjpET006OnBhcnNlcjo6bmFtZXNwYWNl
ZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVt
cGxhdGUuZGF0OjoyODo6RE9NOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1s
NWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjI4OjpF
bGVtZW50VHJlZTo6cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90
ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjI4OjpFbGVtZW50VHJlZTo6
cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEv
dHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0OjoyODo6Y0VsZW1lbnRUcmVlOjpwYXJzZXI6
Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3Ry
dWN0aW9uL3RlbXBsYXRlLmRhdDo6Mjg6OmNFbGVtZW50VHJlZTo6cGFyc2VyOjp2b2lkLW5hbWVz
cGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24v
dGVtcGxhdGUuZGF0OjoyODo6bHhtbDo6cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1s
NWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjI4Ojps
eG1sOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0
ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjI5OjpET006OnBhcnNlcjo6bmFt
ZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rp
b24vdGVtcGxhdGUuZGF0OjoyOTo6RE9NOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAor
dSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6
OjI5OjpFbGVtZW50VHJlZTo6cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90
ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjI5OjpFbGVtZW50
VHJlZTo6cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVz
dGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0OjoyOTo6Y0VsZW1lbnRUcmVlOjpw
YXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUt
Y29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6Mjk6OmNFbGVtZW50VHJlZTo6cGFyc2VyOjp2b2lk
LW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1
Y3Rpb24vdGVtcGxhdGUuZGF0OjoyOTo6bHhtbDo6cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJTAor
dSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6
OjI5OjpseG1sOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxpYi90ZXN0
cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjI6OkRPTTo6cGFyc2Vy
OjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0
cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjI6OkRPTTo6cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZB
SUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUu
ZGF0OjoyOjpFbGVtZW50VHJlZTo6cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxp
Yi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjI6OkVsZW1l
bnRUcmVlOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90
ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjI6OmNFbGVtZW50VHJlZTo6
cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVl
LWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjI6OmNFbGVtZW50VHJlZTo6cGFyc2VyOjp2b2lk
LW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1
Y3Rpb24vdGVtcGxhdGUuZGF0OjoyOjpseG1sOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1
J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6
Mjo6bHhtbDo6cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMv
dGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0OjozMDo6RE9NOjpwYXJzZXI6
Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3Ry
dWN0aW9uL3RlbXBsYXRlLmRhdDo6MzA6OkRPTTo6cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZB
SUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUu
ZGF0OjozMDo6RWxlbWVudFRyZWU6OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVs
aWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0OjozMDo6RWxl
bWVudFRyZWU6OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3Rz
L3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6MzA6OmNFbGVtZW50VHJl
ZTo6cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90
cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjMwOjpjRWxlbWVudFRyZWU6OnBhcnNlcjo6
dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29u
c3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6MzA6Omx4bWw6OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZB
SUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUu
ZGF0OjozMDo6bHhtbDo6cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIv
dGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0OjozMTo6RE9NOjpw
YXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUt
Y29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6MzE6OkRPTTo6cGFyc2VyOjp2b2lkLW5hbWVzcGFj
ZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVt
cGxhdGUuZGF0OjozMTo6RWxlbWVudFRyZWU6OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3Un
aHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0Ojoz
MTo6RWxlbWVudFRyZWU6OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1bGli
L3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6MzE6OmNFbGVt
ZW50VHJlZTo6cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0
ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjMxOjpjRWxlbWVudFRyZWU6OnBh
cnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3Ry
ZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6MzE6Omx4bWw6OnBhcnNlcjo6bmFtZXNwYWNl
ZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVt
cGxhdGUuZGF0OjozMTo6bHhtbDo6cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRt
bDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0OjozMjo6
RE9NOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRh
L3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6MzI6OkRPTTo6cGFyc2VyOjp2b2lkLW5h
bWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rp
b24vdGVtcGxhdGUuZGF0OjozMjo6RWxlbWVudFRyZWU6OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZB
SUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUu
ZGF0OjozMjo6RWxlbWVudFRyZWU6OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0
bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6MzI6
OmNFbGVtZW50VHJlZTo6cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0
cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjMyOjpjRWxlbWVudFRy
ZWU6OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3Rk
YXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6MzI6Omx4bWw6OnBhcnNlcjo6bmFt
ZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rp
b24vdGVtcGxhdGUuZGF0OjozMjo6bHhtbDo6cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZBSUwK
K3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0
OjozMzo6RE9NOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rl
c3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6MzM6OkRPTTo6cGFyc2VyOjp2
b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25z
dHJ1Y3Rpb24vdGVtcGxhdGUuZGF0OjozMzo6RWxlbWVudFRyZWU6OnBhcnNlcjo6bmFtZXNwYWNl
ZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVt
cGxhdGUuZGF0OjozMzo6RWxlbWVudFRyZWU6OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlM
Cit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRh
dDo6MzM6OmNFbGVtZW50VHJlZTo6cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxp
Yi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjMzOjpjRWxl
bWVudFRyZWU6OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3Rz
L3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6MzM6Omx4bWw6OnBhcnNl
cjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25z
dHJ1Y3Rpb24vdGVtcGxhdGUuZGF0OjozMzo6bHhtbDo6cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6
IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxh
dGUuZGF0OjozNDo6RE9NOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rl
c3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6MzQ6OkRPTTo6cGFy
c2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJl
ZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0OjozNDo6RWxlbWVudFRyZWU6OnBhcnNlcjo6bmFt
ZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rp
b24vdGVtcGxhdGUuZGF0OjozNDo6RWxlbWVudFRyZWU6OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2Un
OiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBs
YXRlLmRhdDo6MzQ6OmNFbGVtZW50VHJlZTo6cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJTAordSdo
dG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjM0
OjpjRWxlbWVudFRyZWU6OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1bGli
L3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6MzQ6Omx4bWw6
OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJl
ZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0OjozNDo6bHhtbDo6cGFyc2VyOjp2b2lkLW5hbWVz
cGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24v
dGVtcGxhdGUuZGF0OjozNTo6RE9NOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1
bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6MzU6OkRP
TTo6cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRh
dGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0OjozNTo6RWxlbWVudFRyZWU6OnBhcnNl
cjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25z
dHJ1Y3Rpb24vdGVtcGxhdGUuZGF0OjozNTo6RWxlbWVudFRyZWU6OnBhcnNlcjo6dm9pZC1uYW1l
c3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9u
L3RlbXBsYXRlLmRhdDo6MzU6OmNFbGVtZW50VHJlZTo6cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJ
TAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5k
YXQ6OjM1OjpjRWxlbWVudFRyZWU6OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0
bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6MzU6
Omx4bWw6OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRh
dGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0OjozNTo6bHhtbDo6cGFyc2VyOjp2b2lk
LW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1
Y3Rpb24vdGVtcGxhdGUuZGF0OjozNjo6RE9NOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1
J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6
MzY6OkRPTTo6cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMv
dGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0OjozNjo6RWxlbWVudFRyZWU6
OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJl
ZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0OjozNjo6RWxlbWVudFRyZWU6OnBhcnNlcjo6dm9p
ZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3Ry
dWN0aW9uL3RlbXBsYXRlLmRhdDo6MzY6OmNFbGVtZW50VHJlZTo6cGFyc2VyOjpuYW1lc3BhY2Vk
JzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1w
bGF0ZS5kYXQ6OjM2OjpjRWxlbWVudFRyZWU6OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlM
Cit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRh
dDo6MzY6Omx4bWw6OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMv
dGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0OjozNjo6bHhtbDo6cGFyc2Vy
Ojp2b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1j
b25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0OjozNzo6RE9NOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBG
QUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRl
LmRhdDo6Mzc6OkRPTTo6cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIv
dGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0OjozNzo6RWxlbWVu
dFRyZWU6OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRh
dGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0OjozNzo6RWxlbWVudFRyZWU6OnBhcnNl
cjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUt
Y29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6Mzc6OmNFbGVtZW50VHJlZTo6cGFyc2VyOjpuYW1l
c3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlv
bi90ZW1wbGF0ZS5kYXQ6OjM3OjpjRWxlbWVudFRyZWU6OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2Un
OiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBs
YXRlLmRhdDo6Mzc6Omx4bWw6OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIv
dGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0OjozNzo6bHhtbDo6
cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEv
dHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0OjozODo6RE9NOjpwYXJzZXI6Om5hbWVzcGFj
ZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3Rl
bXBsYXRlLmRhdDo6Mzg6OkRPTTo6cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRt
bDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0OjozODo6
RWxlbWVudFRyZWU6OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMv
dGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0OjozODo6RWxlbWVudFRyZWU6
OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRh
L3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6Mzg6OmNFbGVtZW50VHJlZTo6cGFyc2Vy
OjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0
cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjM4OjpjRWxlbWVudFRyZWU6OnBhcnNlcjo6dm9pZC1uYW1l
c3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9u
L3RlbXBsYXRlLmRhdDo6Mzg6Omx4bWw6OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRt
bDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0OjozODo6
bHhtbDo6cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVz
dGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0OjozOjpET006OnBhcnNlcjo6bmFt
ZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rp
b24vdGVtcGxhdGUuZGF0OjozOjpET006OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1
J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6
Mzo6RWxlbWVudFRyZWU6OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVz
dHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0OjozOjpFbGVtZW50VHJl
ZTo6cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRh
dGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0OjozOjpjRWxlbWVudFRyZWU6OnBhcnNl
cjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25z
dHJ1Y3Rpb24vdGVtcGxhdGUuZGF0OjozOjpjRWxlbWVudFRyZWU6OnBhcnNlcjo6dm9pZC1uYW1l
c3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9u
L3RlbXBsYXRlLmRhdDo6Mzo6bHhtbDo6cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1s
NWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjM6Omx4
bWw6OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3Rk
YXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6NDA6OkRPTTo6cGFyc2VyOjpuYW1l
c3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlv
bi90ZW1wbGF0ZS5kYXQ6OjQwOjpET006OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1
J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6
NDA6OkVsZW1lbnRUcmVlOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rl
c3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6NDA6OkVsZW1lbnRU
cmVlOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0
ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjQwOjpjRWxlbWVudFRyZWU6OnBh
cnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1j
b25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0Ojo0MDo6Y0VsZW1lbnRUcmVlOjpwYXJzZXI6OnZvaWQt
bmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVj
dGlvbi90ZW1wbGF0ZS5kYXQ6OjQwOjpseG1sOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1
J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6
NDA6Omx4bWw6OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3Rz
L3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6NDE6OkRPTTo6cGFyc2Vy
OjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0
cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjQxOjpET006OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBG
QUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRl
LmRhdDo6NDE6OkVsZW1lbnRUcmVlOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1
bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6NDE6OkVs
ZW1lbnRUcmVlOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxpYi90ZXN0
cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjQxOjpjRWxlbWVudFRy
ZWU6OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEv
dHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0Ojo0MTo6Y0VsZW1lbnRUcmVlOjpwYXJzZXI6
OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNv
bnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjQxOjpseG1sOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBG
QUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRl
LmRhdDo6NDE6Omx4bWw6OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1bGli
L3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6NDI6OkRPTTo6
cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVl
LWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjQyOjpET006OnBhcnNlcjo6dm9pZC1uYW1lc3Bh
Y2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3Rl
bXBsYXRlLmRhdDo6NDI6OkVsZW1lbnRUcmVlOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1
J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6
NDI6OkVsZW1lbnRUcmVlOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxp
Yi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjQyOjpjRWxl
bWVudFRyZWU6OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVz
dGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0Ojo0Mjo6Y0VsZW1lbnRUcmVlOjpw
YXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90
cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjQyOjpseG1sOjpwYXJzZXI6Om5hbWVzcGFj
ZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3Rl
bXBsYXRlLmRhdDo6NDI6Omx4bWw6OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0
bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6NDM6
OkRPTTo6cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0
YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjQzOjpET006OnBhcnNlcjo6dm9pZC1u
YW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0
aW9uL3RlbXBsYXRlLmRhdDo6NDM6OkVsZW1lbnRUcmVlOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBG
QUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRl
LmRhdDo6NDM6OkVsZW1lbnRUcmVlOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdo
dG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjQz
OjpjRWxlbWVudFRyZWU6OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVz
dHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0Ojo0Mzo6Y0VsZW1lbnRU
cmVlOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0
ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjQzOjpseG1sOjpwYXJzZXI6Om5h
bWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0
aW9uL3RlbXBsYXRlLmRhdDo6NDM6Omx4bWw6OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlM
Cit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRh
dDo6NDQ6OkRPTTo6cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90
ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjQ0OjpET006OnBhcnNlcjo6
dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29u
c3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6NDQ6OkVsZW1lbnRUcmVlOjpwYXJzZXI6Om5hbWVzcGFj
ZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3Rl
bXBsYXRlLmRhdDo6NDQ6OkVsZW1lbnRUcmVlOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJ
TAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5k
YXQ6OjQ0OjpjRWxlbWVudFRyZWU6OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVs
aWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0Ojo0NDo6Y0Vs
ZW1lbnRUcmVlOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxpYi90ZXN0
cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjQ0OjpseG1sOjpwYXJz
ZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29u
c3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6NDQ6Omx4bWw6OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2Un
OiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBs
YXRlLmRhdDo6NDU6OkRPTTo6cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90
ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjQ1OjpET006OnBh
cnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3Ry
ZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6NDU6OkVsZW1lbnRUcmVlOjpwYXJzZXI6Om5h
bWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0
aW9uL3RlbXBsYXRlLmRhdDo6NDU6OkVsZW1lbnRUcmVlOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNl
JzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1w
bGF0ZS5kYXQ6OjQ1OjpjRWxlbWVudFRyZWU6OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3Un
aHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0Ojo0
NTo6Y0VsZW1lbnRUcmVlOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxp
Yi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjQ1OjpseG1s
OjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3Ry
ZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6NDU6Omx4bWw6OnBhcnNlcjo6dm9pZC1uYW1l
c3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9u
L3RlbXBsYXRlLmRhdDo6NDY6OkRPTTo6cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1s
NWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjQ2OjpE
T006OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3Rk
YXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6NDY6OkVsZW1lbnRUcmVlOjpwYXJz
ZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29u
c3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6NDY6OkVsZW1lbnRUcmVlOjpwYXJzZXI6OnZvaWQtbmFt
ZXNwYWNlJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlv
bi90ZW1wbGF0ZS5kYXQ6OjQ2OjpjRWxlbWVudFRyZWU6OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZB
SUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUu
ZGF0Ojo0Njo6Y0VsZW1lbnRUcmVlOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdo
dG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjQ2
OjpseG1sOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3Rk
YXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6NDY6Omx4bWw6OnBhcnNlcjo6dm9p
ZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3Ry
dWN0aW9uL3RlbXBsYXRlLmRhdDo6NDc6OkRPTTo6cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJTAor
dSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6
OjQ3OjpET006OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3Rz
L3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6NDc6OkVsZW1lbnRUcmVl
OjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3Ry
ZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6NDc6OkVsZW1lbnRUcmVlOjpwYXJzZXI6OnZv
aWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0
cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjQ3OjpjRWxlbWVudFRyZWU6OnBhcnNlcjo6bmFtZXNwYWNl
ZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVt
cGxhdGUuZGF0Ojo0Nzo6Y0VsZW1lbnRUcmVlOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJ
TAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5k
YXQ6OjQ3OjpseG1sOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3Rz
L3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6NDc6Omx4bWw6OnBhcnNl
cjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUt
Y29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6NDg6OkRPTTo6cGFyc2VyOjpuYW1lc3BhY2VkJzog
RkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0
ZS5kYXQ6OjQ4OjpET006OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1bGli
L3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6NDg6OkVsZW1l
bnRUcmVlOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3Rk
YXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6NDg6OkVsZW1lbnRUcmVlOjpwYXJz
ZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVl
LWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjQ4OjpjRWxlbWVudFRyZWU6OnBhcnNlcjo6bmFt
ZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rp
b24vdGVtcGxhdGUuZGF0Ojo0ODo6Y0VsZW1lbnRUcmVlOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNl
JzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1w
bGF0ZS5kYXQ6OjQ4OjpseG1sOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1bGli
L3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6NDg6Omx4bWw6
OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRh
L3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6NDk6OkRPTTo6cGFyc2VyOjpuYW1lc3Bh
Y2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90
ZW1wbGF0ZS5kYXQ6OjQ5OjpET006OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0
bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6NDk6
OkVsZW1lbnRUcmVlOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3Rz
L3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6NDk6OkVsZW1lbnRUcmVl
OjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0
YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjQ5OjpjRWxlbWVudFRyZWU6OnBhcnNl
cjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25z
dHJ1Y3Rpb24vdGVtcGxhdGUuZGF0Ojo0OTo6Y0VsZW1lbnRUcmVlOjpwYXJzZXI6OnZvaWQtbmFt
ZXNwYWNlJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlv
bi90ZW1wbGF0ZS5kYXQ6OjQ5OjpseG1sOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0
bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6NDk6
Omx4bWw6OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rl
c3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6NDo6RE9NOjpwYXJzZXI6Om5h
bWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0
aW9uL3RlbXBsYXRlLmRhdDo6NDo6RE9NOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAor
dSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6
OjQ6OkVsZW1lbnRUcmVlOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rl
c3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6NDo6RWxlbWVudFRy
ZWU6OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3Rk
YXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6NDo6Y0VsZW1lbnRUcmVlOjpwYXJz
ZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29u
c3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6NDo6Y0VsZW1lbnRUcmVlOjpwYXJzZXI6OnZvaWQtbmFt
ZXNwYWNlJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlv
bi90ZW1wbGF0ZS5kYXQ6OjQ6Omx4bWw6OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRt
bDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0Ojo0Ojps
eG1sOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0
ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjUwOjpET006OnBhcnNlcjo6bmFt
ZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rp
b24vdGVtcGxhdGUuZGF0Ojo1MDo6RE9NOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAor
dSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6
OjUwOjpFbGVtZW50VHJlZTo6cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90
ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjUwOjpFbGVtZW50
VHJlZTo6cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVz
dGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0Ojo1MDo6Y0VsZW1lbnRUcmVlOjpw
YXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUt
Y29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6NTA6OmNFbGVtZW50VHJlZTo6cGFyc2VyOjp2b2lk
LW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1
Y3Rpb24vdGVtcGxhdGUuZGF0Ojo1MDo6bHhtbDo6cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJTAor
dSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6
OjUwOjpseG1sOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxpYi90ZXN0
cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjUxOjpET006OnBhcnNl
cjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25z
dHJ1Y3Rpb24vdGVtcGxhdGUuZGF0Ojo1MTo6RE9NOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzog
RkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0
ZS5kYXQ6OjUxOjpFbGVtZW50VHJlZTo6cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1s
NWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjUxOjpF
bGVtZW50VHJlZTo6cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVz
dHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0Ojo1MTo6Y0VsZW1lbnRU
cmVlOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRh
L3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6NTE6OmNFbGVtZW50VHJlZTo6cGFyc2Vy
Ojp2b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1j
b25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0Ojo1MTo6bHhtbDo6cGFyc2VyOjpuYW1lc3BhY2VkJzog
RkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0
ZS5kYXQ6OjUxOjpseG1sOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxp
Yi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjUyOjpET006
OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJl
ZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0Ojo1Mjo6RE9NOjpwYXJzZXI6OnZvaWQtbmFtZXNw
YWNlJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90
ZW1wbGF0ZS5kYXQ6OjUyOjpFbGVtZW50VHJlZTo6cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJTAor
dSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6
OjUyOjpFbGVtZW50VHJlZTo6cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVs
aWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0Ojo1Mjo6Y0Vs
ZW1lbnRUcmVlOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rl
c3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6NTI6OmNFbGVtZW50VHJlZTo6
cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEv
dHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0Ojo1Mjo6bHhtbDo6cGFyc2VyOjpuYW1lc3Bh
Y2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90
ZW1wbGF0ZS5kYXQ6OjUyOjpseG1sOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdo
dG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjUz
OjpET006OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRh
dGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0Ojo1Mzo6RE9NOjpwYXJzZXI6OnZvaWQt
bmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVj
dGlvbi90ZW1wbGF0ZS5kYXQ6OjUzOjpFbGVtZW50VHJlZTo6cGFyc2VyOjpuYW1lc3BhY2VkJzog
RkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0
ZS5kYXQ6OjUzOjpFbGVtZW50VHJlZTo6cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3Un
aHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0Ojo1
Mzo6Y0VsZW1lbnRUcmVlOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rl
c3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6NTM6OmNFbGVtZW50
VHJlZTo6cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVz
dGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0Ojo1Mzo6bHhtbDo6cGFyc2VyOjpu
YW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVj
dGlvbi90ZW1wbGF0ZS5kYXQ6OjUzOjpseG1sOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJ
TAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5k
YXQ6OjU0OjpET006OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMv
dGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0Ojo1NDo6RE9NOjpwYXJzZXI6
OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNv
bnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjU0OjpFbGVtZW50VHJlZTo6cGFyc2VyOjpuYW1lc3Bh
Y2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90
ZW1wbGF0ZS5kYXQ6OjU0OjpFbGVtZW50VHJlZTo6cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZB
SUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUu
ZGF0Ojo1NDo6Y0VsZW1lbnRUcmVlOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1
bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6NTQ6OmNF
bGVtZW50VHJlZTo6cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVz
dHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0Ojo1NDo6bHhtbDo6cGFy
c2VyOjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNv
bnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjU0OjpseG1sOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNl
JzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1w
bGF0ZS5kYXQ6OjU1OjpET006OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIv
dGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0Ojo1NTo6RE9NOjpw
YXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90
cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjU1OjpFbGVtZW50VHJlZTo6cGFyc2VyOjpu
YW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVj
dGlvbi90ZW1wbGF0ZS5kYXQ6OjU1OjpFbGVtZW50VHJlZTo6cGFyc2VyOjp2b2lkLW5hbWVzcGFj
ZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVt
cGxhdGUuZGF0Ojo1NTo6Y0VsZW1lbnRUcmVlOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1
J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6
NTU6OmNFbGVtZW50VHJlZTo6cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVs
aWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0Ojo1NTo6bHht
bDo6cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90
cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjU1OjpseG1sOjpwYXJzZXI6OnZvaWQtbmFt
ZXNwYWNlJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlv
bi90ZW1wbGF0ZS5kYXQ6OjU2OjpET006OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRt
bDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0Ojo1Njo6
RE9NOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0
ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjU2OjpFbGVtZW50VHJlZTo6cGFy
c2VyOjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNv
bnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjU2OjpFbGVtZW50VHJlZTo6cGFyc2VyOjp2b2lkLW5h
bWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rp
b24vdGVtcGxhdGUuZGF0Ojo1Njo6Y0VsZW1lbnRUcmVlOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBG
QUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRl
LmRhdDo6NTY6OmNFbGVtZW50VHJlZTo6cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3Un
aHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0Ojo1
Njo6bHhtbDo6cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0
ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjU2OjpseG1sOjpwYXJzZXI6OnZv
aWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0
cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjU3OjpET006OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwK
K3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0
Ojo1Nzo6RE9NOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxpYi90ZXN0
cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjU3OjpFbGVtZW50VHJl
ZTo6cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90
cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjU3OjpFbGVtZW50VHJlZTo6cGFyc2VyOjp2
b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25z
dHJ1Y3Rpb24vdGVtcGxhdGUuZGF0Ojo1Nzo6Y0VsZW1lbnRUcmVlOjpwYXJzZXI6Om5hbWVzcGFj
ZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3Rl
bXBsYXRlLmRhdDo6NTc6OmNFbGVtZW50VHJlZTo6cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZB
SUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUu
ZGF0Ojo1Nzo6bHhtbDo6cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0
cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjU3OjpseG1sOjpwYXJz
ZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVl
LWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjU4OjpET006OnBhcnNlcjo6bmFtZXNwYWNlZCc6
IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxh
dGUuZGF0Ojo1ODo6RE9NOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxp
Yi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjU4OjpFbGVt
ZW50VHJlZTo6cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0
ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjU4OjpFbGVtZW50VHJlZTo6cGFy
c2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJl
ZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0Ojo1ODo6Y0VsZW1lbnRUcmVlOjpwYXJzZXI6Om5h
bWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0
aW9uL3RlbXBsYXRlLmRhdDo6NTg6OmNFbGVtZW50VHJlZTo6cGFyc2VyOjp2b2lkLW5hbWVzcGFj
ZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVt
cGxhdGUuZGF0Ojo1ODo6bHhtbDo6cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxp
Yi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjU4OjpseG1s
OjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0
YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjU5OjpET006OnBhcnNlcjo6bmFtZXNw
YWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24v
dGVtcGxhdGUuZGF0Ojo1OTo6RE9NOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdo
dG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjU5
OjpFbGVtZW50VHJlZTo6cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0
cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjU5OjpFbGVtZW50VHJl
ZTo6cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRh
dGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0Ojo1OTo6Y0VsZW1lbnRUcmVlOjpwYXJz
ZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29u
c3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6NTk6OmNFbGVtZW50VHJlZTo6cGFyc2VyOjp2b2lkLW5h
bWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rp
b24vdGVtcGxhdGUuZGF0Ojo1OTo6bHhtbDo6cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJTAordSdo
dG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjU5
OjpseG1sOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90
ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjU6OkRPTTo6cGFyc2VyOjpu
YW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVj
dGlvbi90ZW1wbGF0ZS5kYXQ6OjU6OkRPTTo6cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZBSUwK
K3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0
Ojo1OjpFbGVtZW50VHJlZTo6cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90
ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjU6OkVsZW1lbnRU
cmVlOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0
ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjU6OmNFbGVtZW50VHJlZTo6cGFy
c2VyOjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNv
bnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjU6OmNFbGVtZW50VHJlZTo6cGFyc2VyOjp2b2lkLW5h
bWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rp
b24vdGVtcGxhdGUuZGF0Ojo1OjpseG1sOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0
bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6NTo6
bHhtbDo6cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVz
dGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0Ojo2MDo6RE9NOjpwYXJzZXI6Om5h
bWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0
aW9uL3RlbXBsYXRlLmRhdDo6NjA6OkRPTTo6cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZBSUwK
K3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0
Ojo2MDo6RWxlbWVudFRyZWU6OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIv
dGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0Ojo2MDo6RWxlbWVu
dFRyZWU6OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rl
c3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6NjA6OmNFbGVtZW50VHJlZTo6
cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVl
LWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjYwOjpjRWxlbWVudFRyZWU6OnBhcnNlcjo6dm9p
ZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3Ry
dWN0aW9uL3RlbXBsYXRlLmRhdDo6NjA6Omx4bWw6OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwK
K3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0
Ojo2MDo6bHhtbDo6cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVz
dHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0Ojo2MTo6RE9NOjpwYXJz
ZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29u
c3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6NjE6OkRPTTo6cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6
IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxh
dGUuZGF0Ojo2MTo6RWxlbWVudFRyZWU6OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRt
bDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0Ojo2MTo6
RWxlbWVudFRyZWU6OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rl
c3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6NjE6OmNFbGVtZW50
VHJlZTo6cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0
YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjYxOjpjRWxlbWVudFRyZWU6OnBhcnNl
cjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUt
Y29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6NjE6Omx4bWw6OnBhcnNlcjo6bmFtZXNwYWNlZCc6
IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxh
dGUuZGF0Ojo2MTo6bHhtbDo6cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVs
aWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0Ojo2Mjo6RE9N
OjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3Ry
ZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6NjI6OkRPTTo6cGFyc2VyOjp2b2lkLW5hbWVz
cGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24v
dGVtcGxhdGUuZGF0Ojo2Mjo6RWxlbWVudFRyZWU6OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwK
K3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0
Ojo2Mjo6RWxlbWVudFRyZWU6OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1
bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6NjI6OmNF
bGVtZW50VHJlZTo6cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90
ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjYyOjpjRWxlbWVudFRyZWU6
OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRh
L3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6NjI6Omx4bWw6OnBhcnNlcjo6bmFtZXNw
YWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24v
dGVtcGxhdGUuZGF0Ojo2Mjo6bHhtbDo6cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3Un
aHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0Ojo2
Mzo6RE9NOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3Rk
YXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6NjM6OkRPTTo6cGFyc2VyOjp2b2lk
LW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1
Y3Rpb24vdGVtcGxhdGUuZGF0Ojo2Mzo6RWxlbWVudFRyZWU6OnBhcnNlcjo6bmFtZXNwYWNlZCc6
IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxh
dGUuZGF0Ojo2Mzo6RWxlbWVudFRyZWU6OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1
J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6
NjM6OmNFbGVtZW50VHJlZTo6cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90
ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjYzOjpjRWxlbWVu
dFRyZWU6OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rl
c3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6NjM6Omx4bWw6OnBhcnNlcjo6
bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1
Y3Rpb24vdGVtcGxhdGUuZGF0Ojo2Mzo6bHhtbDo6cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZB
SUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUu
ZGF0Ojo2NDo6RE9NOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3Rz
L3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6NjQ6OkRPTTo6cGFyc2Vy
Ojp2b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1j
b25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0Ojo2NDo6RWxlbWVudFRyZWU6OnBhcnNlcjo6bmFtZXNw
YWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24v
dGVtcGxhdGUuZGF0Ojo2NDo6RWxlbWVudFRyZWU6OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBG
QUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRl
LmRhdDo6NjQ6OmNFbGVtZW50VHJlZTo6cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1s
NWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjY0Ojpj
RWxlbWVudFRyZWU6OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rl
c3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6NjQ6Omx4bWw6OnBh
cnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1j
b25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0Ojo2NDo6bHhtbDo6cGFyc2VyOjp2b2lkLW5hbWVzcGFj
ZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVt
cGxhdGUuZGF0Ojo2NTo6RE9NOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1bGli
L3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6NjU6OkRPTTo6
cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEv
dHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0Ojo2NTo6RWxlbWVudFRyZWU6OnBhcnNlcjo6
bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1
Y3Rpb24vdGVtcGxhdGUuZGF0Ojo2NTo6RWxlbWVudFRyZWU6OnBhcnNlcjo6dm9pZC1uYW1lc3Bh
Y2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3Rl
bXBsYXRlLmRhdDo6NjU6OmNFbGVtZW50VHJlZTo6cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJTAor
dSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6
OjY1OjpjRWxlbWVudFRyZWU6OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1
bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6NjU6Omx4
bWw6OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEv
dHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0Ojo2NTo6bHhtbDo6cGFyc2VyOjp2b2lkLW5h
bWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rp
b24vdGVtcGxhdGUuZGF0Ojo2Njo6RE9NOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0
bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6NjY6
OkRPTTo6cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVz
dGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0Ojo2Njo6RWxlbWVudFRyZWU6OnBh
cnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1j
b25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0Ojo2Njo6RWxlbWVudFRyZWU6OnBhcnNlcjo6dm9pZC1u
YW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0
aW9uL3RlbXBsYXRlLmRhdDo6NjY6OmNFbGVtZW50VHJlZTo6cGFyc2VyOjpuYW1lc3BhY2VkJzog
RkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0
ZS5kYXQ6OjY2OjpjRWxlbWVudFRyZWU6OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1
J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6
NjY6Omx4bWw6OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVz
dGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0Ojo2Njo6bHhtbDo6cGFyc2VyOjp2
b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25z
dHJ1Y3Rpb24vdGVtcGxhdGUuZGF0Ojo2Nzo6RE9NOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlM
Cit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRh
dDo6Njc6OkRPTTo6cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVz
dHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0Ojo2Nzo6RWxlbWVudFRy
ZWU6OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEv
dHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0Ojo2Nzo6RWxlbWVudFRyZWU6OnBhcnNlcjo6
dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29u
c3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6Njc6OmNFbGVtZW50VHJlZTo6cGFyc2VyOjpuYW1lc3Bh
Y2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90
ZW1wbGF0ZS5kYXQ6OjY3OjpjRWxlbWVudFRyZWU6OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBG
QUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRl
LmRhdDo6Njc6Omx4bWw6OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVz
dHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0Ojo2Nzo6bHhtbDo6cGFy
c2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJl
ZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0Ojo2ODo6RE9NOjpwYXJzZXI6Om5hbWVzcGFjZWQn
OiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBs
YXRlLmRhdDo6Njg6OkRPTTo6cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVs
aWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0Ojo2ODo6RWxl
bWVudFRyZWU6OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVz
dGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0Ojo2ODo6RWxlbWVudFRyZWU6OnBh
cnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3Ry
ZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6Njg6OmNFbGVtZW50VHJlZTo6cGFyc2VyOjpu
YW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVj
dGlvbi90ZW1wbGF0ZS5kYXQ6OjY4OjpjRWxlbWVudFRyZWU6OnBhcnNlcjo6dm9pZC1uYW1lc3Bh
Y2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3Rl
bXBsYXRlLmRhdDo6Njg6Omx4bWw6OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVs
aWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0Ojo2ODo6bHht
bDo6cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRh
dGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0Ojo2OTo6RE9NOjpwYXJzZXI6Om5hbWVz
cGFjZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9u
L3RlbXBsYXRlLmRhdDo6Njk6OkRPTTo6cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3Un
aHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0Ojo2
OTo6RWxlbWVudFRyZWU6OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVz
dHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0Ojo2OTo6RWxlbWVudFRy
ZWU6OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3Rk
YXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6Njk6OmNFbGVtZW50VHJlZTo6cGFy
c2VyOjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNv
bnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjY5OjpjRWxlbWVudFRyZWU6OnBhcnNlcjo6dm9pZC1u
YW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0
aW9uL3RlbXBsYXRlLmRhdDo6Njk6Omx4bWw6OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3Un
aHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0Ojo2
OTo6bHhtbDo6cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMv
dGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0Ojo2OjpET006OnBhcnNlcjo6
bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1
Y3Rpb24vdGVtcGxhdGUuZGF0Ojo2OjpET006OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlM
Cit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRh
dDo6Njo6RWxlbWVudFRyZWU6OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIv
dGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0Ojo2OjpFbGVtZW50
VHJlZTo6cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVz
dGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0Ojo2OjpjRWxlbWVudFRyZWU6OnBh
cnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1j
b25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0Ojo2OjpjRWxlbWVudFRyZWU6OnBhcnNlcjo6dm9pZC1u
YW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0
aW9uL3RlbXBsYXRlLmRhdDo6Njo6bHhtbDo6cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJTAordSdo
dG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjY6
Omx4bWw6OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rl
c3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6NzA6OkRPTTo6cGFyc2VyOjpu
YW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVj
dGlvbi90ZW1wbGF0ZS5kYXQ6OjcwOjpET006OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlM
Cit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRh
dDo6NzA6OkVsZW1lbnRUcmVlOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1bGli
L3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6NzA6OkVsZW1l
bnRUcmVlOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90
ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjcwOjpjRWxlbWVudFRyZWU6
OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJl
ZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0Ojo3MDo6Y0VsZW1lbnRUcmVlOjpwYXJzZXI6OnZv
aWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0
cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjcwOjpseG1sOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlM
Cit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRh
dDo6NzA6Omx4bWw6OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rl
c3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6NzE6OkRPTTo6cGFy
c2VyOjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNv
bnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjcxOjpET006OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2Un
OiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBs
YXRlLmRhdDo6NzE6OkVsZW1lbnRUcmVlOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0
bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6NzE6
OkVsZW1lbnRUcmVlOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxpYi90
ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjcxOjpjRWxlbWVu
dFRyZWU6OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRh
dGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0Ojo3MTo6Y0VsZW1lbnRUcmVlOjpwYXJz
ZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVl
LWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjcxOjpseG1sOjpwYXJzZXI6Om5hbWVzcGFjZWQn
OiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBs
YXRlLmRhdDo6NzE6Omx4bWw6OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1
bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6NzI6OkRP
TTo6cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90
cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjcyOjpET006OnBhcnNlcjo6dm9pZC1uYW1l
c3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9u
L3RlbXBsYXRlLmRhdDo6NzI6OkVsZW1lbnRUcmVlOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlM
Cit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRh
dDo6NzI6OkVsZW1lbnRUcmVlOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1s
NWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjcyOjpj
RWxlbWVudFRyZWU6OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMv
dGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0Ojo3Mjo6Y0VsZW1lbnRUcmVl
OjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0
YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjcyOjpseG1sOjpwYXJzZXI6Om5hbWVz
cGFjZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9u
L3RlbXBsYXRlLmRhdDo6NzI6Omx4bWw6OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1
J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6
NzM6OkRPTTo6cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0
ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjczOjpET006OnBhcnNlcjo6dm9p
ZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3Ry
dWN0aW9uL3RlbXBsYXRlLmRhdDo6NzM6OkVsZW1lbnRUcmVlOjpwYXJzZXI6Om5hbWVzcGFjZWQn
OiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBs
YXRlLmRhdDo6NzM6OkVsZW1lbnRUcmVlOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAor
dSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6
OjczOjpjRWxlbWVudFRyZWU6OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIv
dGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0Ojo3Mzo6Y0VsZW1l
bnRUcmVlOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90
ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjczOjpseG1sOjpwYXJzZXI6
Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3Ry
dWN0aW9uL3RlbXBsYXRlLmRhdDo6NzM6Omx4bWw6OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBG
QUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRl
LmRhdDo6NzQ6OkRPTTo6cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0
cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6Ojc0OjpET006OnBhcnNl
cjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUt
Y29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6NzQ6OkVsZW1lbnRUcmVlOjpwYXJzZXI6Om5hbWVz
cGFjZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9u
L3RlbXBsYXRlLmRhdDo6NzQ6OkVsZW1lbnRUcmVlOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzog
RkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0
ZS5kYXQ6Ojc0OjpjRWxlbWVudFRyZWU6OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRt
bDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0Ojo3NDo6
Y0VsZW1lbnRUcmVlOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxpYi90
ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6Ojc0OjpseG1sOjpw
YXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUt
Y29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6NzQ6Omx4bWw6OnBhcnNlcjo6dm9pZC1uYW1lc3Bh
Y2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3Rl
bXBsYXRlLmRhdDo6NzU6OkRPTTo6cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxp
Yi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6Ojc1OjpET006
OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRh
L3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6NzU6OkVsZW1lbnRUcmVlOjpwYXJzZXI6
Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3Ry
dWN0aW9uL3RlbXBsYXRlLmRhdDo6NzU6OkVsZW1lbnRUcmVlOjpwYXJzZXI6OnZvaWQtbmFtZXNw
YWNlJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90
ZW1wbGF0ZS5kYXQ6Ojc1OjpjRWxlbWVudFRyZWU6OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwK
K3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0
Ojo3NTo6Y0VsZW1lbnRUcmVlOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1s
NWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6Ojc1Ojps
eG1sOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRh
L3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6NzU6Omx4bWw6OnBhcnNlcjo6dm9pZC1u
YW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0
aW9uL3RlbXBsYXRlLmRhdDo6NzY6OkRPTTo6cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJTAordSdo
dG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6Ojc2
OjpET006OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rl
c3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6NzY6OkVsZW1lbnRUcmVlOjpw
YXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUt
Y29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6NzY6OkVsZW1lbnRUcmVlOjpwYXJzZXI6OnZvaWQt
bmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVj
dGlvbi90ZW1wbGF0ZS5kYXQ6Ojc2OjpjRWxlbWVudFRyZWU6OnBhcnNlcjo6bmFtZXNwYWNlZCc6
IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxh
dGUuZGF0Ojo3Njo6Y0VsZW1lbnRUcmVlOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAor
dSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6
Ojc2OjpseG1sOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rl
c3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6NzY6Omx4bWw6OnBhcnNlcjo6
dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29u
c3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6Nzc6OkRPTTo6cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJ
TAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5k
YXQ6Ojc3OjpET006OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rl
c3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6Nzc6OkVsZW1lbnRU
cmVlOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRh
L3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6Nzc6OkVsZW1lbnRUcmVlOjpwYXJzZXI6
OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNv
bnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6Ojc3OjpjRWxlbWVudFRyZWU6OnBhcnNlcjo6bmFtZXNw
YWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24v
dGVtcGxhdGUuZGF0Ojo3Nzo6Y0VsZW1lbnRUcmVlOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzog
RkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0
ZS5kYXQ6Ojc3OjpseG1sOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rl
c3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6Nzc6Omx4bWw6OnBh
cnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3Ry
ZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6Nzg6OkRPTTo6cGFyc2VyOjpuYW1lc3BhY2Vk
JzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1w
bGF0ZS5kYXQ6Ojc4OjpET006OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1
bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6Nzg6OkVs
ZW1lbnRUcmVlOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rl
c3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6Nzg6OkVsZW1lbnRUcmVlOjpw
YXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90
cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6Ojc4OjpjRWxlbWVudFRyZWU6OnBhcnNlcjo6
bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1
Y3Rpb24vdGVtcGxhdGUuZGF0Ojo3ODo6Y0VsZW1lbnRUcmVlOjpwYXJzZXI6OnZvaWQtbmFtZXNw
YWNlJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90
ZW1wbGF0ZS5kYXQ6Ojc4OjpseG1sOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1
bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6Nzg6Omx4
bWw6OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3Rk
YXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6Nzk6OkRPTTo6cGFyc2VyOjpuYW1l
c3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlv
bi90ZW1wbGF0ZS5kYXQ6Ojc5OjpET006OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1
J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6
Nzk6OkVsZW1lbnRUcmVlOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rl
c3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6Nzk6OkVsZW1lbnRU
cmVlOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0
ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6Ojc5OjpjRWxlbWVudFRyZWU6OnBh
cnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1j
b25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0Ojo3OTo6Y0VsZW1lbnRUcmVlOjpwYXJzZXI6OnZvaWQt
bmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVj
dGlvbi90ZW1wbGF0ZS5kYXQ6Ojc5OjpseG1sOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1
J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6
Nzk6Omx4bWw6OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3Rz
L3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6ODA6OkRPTTo6cGFyc2Vy
OjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0
cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjgwOjpET006OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBG
QUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRl
LmRhdDo6ODA6OkVsZW1lbnRUcmVlOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1
bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6ODA6OkVs
ZW1lbnRUcmVlOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxpYi90ZXN0
cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjgwOjpjRWxlbWVudFRy
ZWU6OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEv
dHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0Ojo4MDo6Y0VsZW1lbnRUcmVlOjpwYXJzZXI6
OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNv
bnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjgwOjpseG1sOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBG
QUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRl
LmRhdDo6ODA6Omx4bWw6OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1bGli
L3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6ODE6OkRPTTo6
cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVl
LWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjgxOjpET006OnBhcnNlcjo6dm9pZC1uYW1lc3Bh
Y2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3Rl
bXBsYXRlLmRhdDo6ODE6OkVsZW1lbnRUcmVlOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1
J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6
ODE6OkVsZW1lbnRUcmVlOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxp
Yi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjgxOjpjRWxl
bWVudFRyZWU6OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVz
dGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0Ojo4MTo6Y0VsZW1lbnRUcmVlOjpw
YXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90
cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjgxOjpseG1sOjpwYXJzZXI6Om5hbWVzcGFj
ZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3Rl
bXBsYXRlLmRhdDo6ODE6Omx4bWw6OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0
bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6ODI6
OkRPTTo6cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0
YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjgyOjpET006OnBhcnNlcjo6dm9pZC1u
YW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0
aW9uL3RlbXBsYXRlLmRhdDo6ODI6OkVsZW1lbnRUcmVlOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBG
QUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRl
LmRhdDo6ODI6OkVsZW1lbnRUcmVlOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdo
dG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6Ojgy
OjpjRWxlbWVudFRyZWU6OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVz
dHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0Ojo4Mjo6Y0VsZW1lbnRU
cmVlOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0
ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjgyOjpseG1sOjpwYXJzZXI6Om5h
bWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0
aW9uL3RlbXBsYXRlLmRhdDo6ODI6Omx4bWw6OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlM
Cit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRh
dDo6ODM6OkRPTTo6cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90
ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjgzOjpET006OnBhcnNlcjo6
dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29u
c3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6ODM6OkVsZW1lbnRUcmVlOjpwYXJzZXI6Om5hbWVzcGFj
ZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3Rl
bXBsYXRlLmRhdDo6ODM6OkVsZW1lbnRUcmVlOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJ
TAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5k
YXQ6OjgzOjpjRWxlbWVudFRyZWU6OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVs
aWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0Ojo4Mzo6Y0Vs
ZW1lbnRUcmVlOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxpYi90ZXN0
cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjgzOjpseG1sOjpwYXJz
ZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29u
c3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6ODM6Omx4bWw6OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2Un
OiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBs
YXRlLmRhdDo6ODQ6OkRPTTo6cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90
ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6Ojg0OjpET006OnBh
cnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3Ry
ZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6ODQ6OkVsZW1lbnRUcmVlOjpwYXJzZXI6Om5h
bWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0
aW9uL3RlbXBsYXRlLmRhdDo6ODQ6OkVsZW1lbnRUcmVlOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNl
JzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1w
bGF0ZS5kYXQ6Ojg0OjpjRWxlbWVudFRyZWU6OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3Un
aHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0Ojo4
NDo6Y0VsZW1lbnRUcmVlOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxp
Yi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6Ojg0OjpseG1s
OjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3Ry
ZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6ODQ6Omx4bWw6OnBhcnNlcjo6dm9pZC1uYW1l
c3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9u
L3RlbXBsYXRlLmRhdDo6ODU6OkRPTTo6cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1s
NWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6Ojg1OjpE
T006OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3Rk
YXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6ODU6OkVsZW1lbnRUcmVlOjpwYXJz
ZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29u
c3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6ODU6OkVsZW1lbnRUcmVlOjpwYXJzZXI6OnZvaWQtbmFt
ZXNwYWNlJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlv
bi90ZW1wbGF0ZS5kYXQ6Ojg1OjpjRWxlbWVudFRyZWU6OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZB
SUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUu
ZGF0Ojo4NTo6Y0VsZW1lbnRUcmVlOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdo
dG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6Ojg1
OjpseG1sOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3Rk
YXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6ODU6Omx4bWw6OnBhcnNlcjo6dm9p
ZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3Ry
dWN0aW9uL3RlbXBsYXRlLmRhdDo6ODY6OkRPTTo6cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJTAor
dSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6
Ojg2OjpET006OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3Rz
L3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6ODY6OkVsZW1lbnRUcmVl
OjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3Ry
ZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6ODY6OkVsZW1lbnRUcmVlOjpwYXJzZXI6OnZv
aWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0
cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6Ojg2OjpjRWxlbWVudFRyZWU6OnBhcnNlcjo6bmFtZXNwYWNl
ZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVt
cGxhdGUuZGF0Ojo4Njo6Y0VsZW1lbnRUcmVlOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJ
TAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5k
YXQ6Ojg2OjpseG1sOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3Rz
L3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6ODY6Omx4bWw6OnBhcnNl
cjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUt
Y29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6ODc6OkRPTTo6cGFyc2VyOjpuYW1lc3BhY2VkJzog
RkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0
ZS5kYXQ6Ojg3OjpET006OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1bGli
L3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6ODc6OkVsZW1l
bnRUcmVlOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3Rk
YXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6ODc6OkVsZW1lbnRUcmVlOjpwYXJz
ZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVl
LWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6Ojg3OjpjRWxlbWVudFRyZWU6OnBhcnNlcjo6bmFt
ZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rp
b24vdGVtcGxhdGUuZGF0Ojo4Nzo6Y0VsZW1lbnRUcmVlOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNl
JzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1w
bGF0ZS5kYXQ6Ojg3OjpseG1sOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1bGli
L3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6ODc6Omx4bWw6
OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRh
L3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6ODg6OkRPTTo6cGFyc2VyOjpuYW1lc3Bh
Y2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90
ZW1wbGF0ZS5kYXQ6Ojg4OjpET006OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0
bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6ODg6
OkVsZW1lbnRUcmVlOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3Rz
L3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6ODg6OkVsZW1lbnRUcmVl
OjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0
YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6Ojg4OjpjRWxlbWVudFRyZWU6OnBhcnNl
cjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25z
dHJ1Y3Rpb24vdGVtcGxhdGUuZGF0Ojo4ODo6Y0VsZW1lbnRUcmVlOjpwYXJzZXI6OnZvaWQtbmFt
ZXNwYWNlJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlv
bi90ZW1wbGF0ZS5kYXQ6Ojg4OjpseG1sOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0
bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6ODg6
Omx4bWw6OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rl
c3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6ODk6OkRPTTo6cGFyc2VyOjpu
YW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVj
dGlvbi90ZW1wbGF0ZS5kYXQ6Ojg5OjpET006OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlM
Cit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRh
dDo6ODk6OkVsZW1lbnRUcmVlOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1bGli
L3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6ODk6OkVsZW1l
bnRUcmVlOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90
ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6Ojg5OjpjRWxlbWVudFRyZWU6
OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJl
ZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0Ojo4OTo6Y0VsZW1lbnRUcmVlOjpwYXJzZXI6OnZv
aWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0
cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6Ojg5OjpseG1sOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlM
Cit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRh
dDo6ODk6Omx4bWw6OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rl
c3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6ODo6RE9NOjpwYXJz
ZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29u
c3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6ODo6RE9NOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzog
RkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0
ZS5kYXQ6Ojg6OkVsZW1lbnRUcmVlOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1
bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6ODo6RWxl
bWVudFRyZWU6OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3Rz
L3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6ODo6Y0VsZW1lbnRUcmVl
OjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3Ry
ZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6ODo6Y0VsZW1lbnRUcmVlOjpwYXJzZXI6OnZv
aWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0
cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6Ojg6Omx4bWw6OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwK
K3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0
Ojo4OjpseG1sOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxpYi90ZXN0
cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjkwOjpET006OnBhcnNl
cjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25z
dHJ1Y3Rpb24vdGVtcGxhdGUuZGF0Ojo5MDo6RE9NOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzog
RkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0
ZS5kYXQ6OjkwOjpFbGVtZW50VHJlZTo6cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1s
NWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjkwOjpF
bGVtZW50VHJlZTo6cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVz
dHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0Ojo5MDo6Y0VsZW1lbnRU
cmVlOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRh
L3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6OTA6OmNFbGVtZW50VHJlZTo6cGFyc2Vy
Ojp2b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1j
b25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0Ojo5MDo6bHhtbDo6cGFyc2VyOjpuYW1lc3BhY2VkJzog
RkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0
ZS5kYXQ6OjkwOjpseG1sOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxp
Yi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjkxOjpET006
OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJl
ZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0Ojo5MTo6RE9NOjpwYXJzZXI6OnZvaWQtbmFtZXNw
YWNlJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90
ZW1wbGF0ZS5kYXQ6OjkxOjpFbGVtZW50VHJlZTo6cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJTAor
dSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6
OjkxOjpFbGVtZW50VHJlZTo6cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVs
aWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0Ojo5MTo6Y0Vs
ZW1lbnRUcmVlOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rl
c3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6OTE6OmNFbGVtZW50VHJlZTo6
cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEv
dHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0Ojo5MTo6bHhtbDo6cGFyc2VyOjpuYW1lc3Bh
Y2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90
ZW1wbGF0ZS5kYXQ6OjkxOjpseG1sOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdo
dG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6Ojky
OjpET006OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRh
dGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0Ojo5Mjo6RE9NOjpwYXJzZXI6OnZvaWQt
bmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVj
dGlvbi90ZW1wbGF0ZS5kYXQ6OjkyOjpFbGVtZW50VHJlZTo6cGFyc2VyOjpuYW1lc3BhY2VkJzog
RkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0
ZS5kYXQ6OjkyOjpFbGVtZW50VHJlZTo6cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3Un
aHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0Ojo5
Mjo6Y0VsZW1lbnRUcmVlOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rl
c3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6OTI6OmNFbGVtZW50
VHJlZTo6cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVz
dGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0Ojo5Mjo6bHhtbDo6cGFyc2VyOjpu
YW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVj
dGlvbi90ZW1wbGF0ZS5kYXQ6OjkyOjpseG1sOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJ
TAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5k
YXQ6OjkzOjpET006OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMv
dGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0Ojo5Mzo6RE9NOjpwYXJzZXI6
OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNv
bnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjkzOjpFbGVtZW50VHJlZTo6cGFyc2VyOjpuYW1lc3Bh
Y2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90
ZW1wbGF0ZS5kYXQ6OjkzOjpFbGVtZW50VHJlZTo6cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZB
SUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUu
ZGF0Ojo5Mzo6Y0VsZW1lbnRUcmVlOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1
bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6OTM6OmNF
bGVtZW50VHJlZTo6cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVz
dHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0Ojo5Mzo6bHhtbDo6cGFy
c2VyOjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNv
bnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6OjkzOjpseG1sOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNl
JzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1w
bGF0ZS5kYXQ6Ojk0OjpET006OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIv
dGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0Ojo5NDo6RE9NOjpw
YXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90
cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6Ojk0OjpFbGVtZW50VHJlZTo6cGFyc2VyOjpu
YW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVj
dGlvbi90ZW1wbGF0ZS5kYXQ6Ojk0OjpFbGVtZW50VHJlZTo6cGFyc2VyOjp2b2lkLW5hbWVzcGFj
ZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVt
cGxhdGUuZGF0Ojo5NDo6Y0VsZW1lbnRUcmVlOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1
J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6
OTQ6OmNFbGVtZW50VHJlZTo6cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVs
aWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0Ojo5NDo6bHht
bDo6cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90
cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6Ojk0OjpseG1sOjpwYXJzZXI6OnZvaWQtbmFt
ZXNwYWNlJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlv
bi90ZW1wbGF0ZS5kYXQ6Ojk1OjpET006OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRt
bDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0Ojo5NTo6
RE9NOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0
ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6Ojk1OjpFbGVtZW50VHJlZTo6cGFy
c2VyOjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNv
bnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6Ojk1OjpFbGVtZW50VHJlZTo6cGFyc2VyOjp2b2lkLW5h
bWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rp
b24vdGVtcGxhdGUuZGF0Ojo5NTo6Y0VsZW1lbnRUcmVlOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBG
QUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRl
LmRhdDo6OTU6OmNFbGVtZW50VHJlZTo6cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3Un
aHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0Ojo5
NTo6bHhtbDo6cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0
ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6Ojk1OjpseG1sOjpwYXJzZXI6OnZv
aWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0
cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6Ojk2OjpET006OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwK
K3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0
Ojo5Njo6RE9NOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxpYi90ZXN0
cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6Ojk2OjpFbGVtZW50VHJl
ZTo6cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90
cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6Ojk2OjpFbGVtZW50VHJlZTo6cGFyc2VyOjp2
b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25z
dHJ1Y3Rpb24vdGVtcGxhdGUuZGF0Ojo5Njo6Y0VsZW1lbnRUcmVlOjpwYXJzZXI6Om5hbWVzcGFj
ZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3Rl
bXBsYXRlLmRhdDo6OTY6OmNFbGVtZW50VHJlZTo6cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZB
SUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUu
ZGF0Ojo5Njo6bHhtbDo6cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0
cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6Ojk2OjpseG1sOjpwYXJz
ZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVl
LWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6Ojk3OjpET006OnBhcnNlcjo6bmFtZXNwYWNlZCc6
IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxh
dGUuZGF0Ojo5Nzo6RE9NOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxp
Yi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6Ojk3OjpFbGVt
ZW50VHJlZTo6cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0
ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6Ojk3OjpFbGVtZW50VHJlZTo6cGFy
c2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJl
ZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0Ojo5Nzo6Y0VsZW1lbnRUcmVlOjpwYXJzZXI6Om5h
bWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0
aW9uL3RlbXBsYXRlLmRhdDo6OTc6OmNFbGVtZW50VHJlZTo6cGFyc2VyOjp2b2lkLW5hbWVzcGFj
ZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVt
cGxhdGUuZGF0Ojo5Nzo6bHhtbDo6cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxp
Yi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6Ojk3OjpseG1s
OjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0
YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6Ojk4OjpET006OnBhcnNlcjo6bmFtZXNw
YWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24v
dGVtcGxhdGUuZGF0Ojo5ODo6RE9NOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdo
dG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6Ojk4
OjpFbGVtZW50VHJlZTo6cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0
cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6Ojk4OjpFbGVtZW50VHJl
ZTo6cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRh
dGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0Ojo5ODo6Y0VsZW1lbnRUcmVlOjpwYXJz
ZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29u
c3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6OTg6OmNFbGVtZW50VHJlZTo6cGFyc2VyOjp2b2lkLW5h
bWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rp
b24vdGVtcGxhdGUuZGF0Ojo5ODo6bHhtbDo6cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJTAordSdo
dG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6Ojk4
OjpseG1sOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90
ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6Ojk5OjpET006OnBhcnNlcjo6
bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1
Y3Rpb24vdGVtcGxhdGUuZGF0Ojo5OTo6RE9NOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJ
TAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5k
YXQ6Ojk5OjpFbGVtZW50VHJlZTo6cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxp
Yi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6Ojk5OjpFbGVt
ZW50VHJlZTo6cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMv
dGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxhdGUuZGF0Ojo5OTo6Y0VsZW1lbnRUcmVl
OjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3Ry
ZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRhdDo6OTk6OmNFbGVtZW50VHJlZTo6cGFyc2VyOjp2
b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25z
dHJ1Y3Rpb24vdGVtcGxhdGUuZGF0Ojo5OTo6bHhtbDo6cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJ
TAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5k
YXQ6Ojk5OjpseG1sOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxpYi90
ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6Ojk6OkRPTTo6cGFy
c2VyOjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNv
bnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6Ojk6OkRPTTo6cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6
IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVtcGxh
dGUuZGF0Ojo5OjpFbGVtZW50VHJlZTo6cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1s
NWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6Ojk6OkVs
ZW1lbnRUcmVlOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxpYi90ZXN0
cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6Ojk6OmNFbGVtZW50VHJl
ZTo6cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90
cmVlLWNvbnN0cnVjdGlvbi90ZW1wbGF0ZS5kYXQ6Ojk6OmNFbGVtZW50VHJlZTo6cGFyc2VyOjp2
b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25z
dHJ1Y3Rpb24vdGVtcGxhdGUuZGF0Ojo5OjpseG1sOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlM
Cit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3RlbXBsYXRlLmRh
dDo6OTo6bHhtbDo6cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVz
dHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVzdHMxMS5kYXQ6OjI6OkRPTTo6cGFyc2Vy
OjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0
cnVjdGlvbi90ZXN0czExLmRhdDo6Mjo6RE9NOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJ
TAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZXN0czExLmRh
dDo6Mjo6RWxlbWVudFRyZWU6OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIv
dGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVzdHMxMS5kYXQ6OjI6OkVsZW1lbnRU
cmVlOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0
ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZXN0czExLmRhdDo6Mjo6Y0VsZW1lbnRUcmVlOjpwYXJz
ZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29u
c3RydWN0aW9uL3Rlc3RzMTEuZGF0OjoyOjpjRWxlbWVudFRyZWU6OnBhcnNlcjo6dm9pZC1uYW1l
c3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9u
L3Rlc3RzMTEuZGF0OjoyOjpseG1sOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1
bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3Rlc3RzMTEuZGF0OjoyOjpseG1s
OjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0
YS90cmVlLWNvbnN0cnVjdGlvbi90ZXN0czExLmRhdDo6NDo6RE9NOjpwYXJzZXI6Om5hbWVzcGFj
ZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3Rl
c3RzMTEuZGF0Ojo0OjpET006OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1
bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3Rlc3RzMTEuZGF0Ojo0OjpFbGVt
ZW50VHJlZTo6cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0
ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZXN0czExLmRhdDo6NDo6RWxlbWVudFRyZWU6OnBhcnNl
cjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUt
Y29uc3RydWN0aW9uL3Rlc3RzMTEuZGF0Ojo0OjpjRWxlbWVudFRyZWU6OnBhcnNlcjo6bmFtZXNw
YWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24v
dGVzdHMxMS5kYXQ6OjQ6OmNFbGVtZW50VHJlZTo6cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZB
SUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVzdHMxMS5k
YXQ6OjQ6Omx4bWw6OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMv
dGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVzdHMxMS5kYXQ6OjQ6Omx4bWw6OnBhcnNlcjo6
dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29u
c3RydWN0aW9uL3Rlc3RzMTEuZGF0Ojo1OjpET006OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwK
K3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVzdHMxMS5kYXQ6
OjU6OkRPTTo6cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMv
dGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVzdHMxMS5kYXQ6OjU6OkVsZW1lbnRUcmVlOjpw
YXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUt
Y29uc3RydWN0aW9uL3Rlc3RzMTEuZGF0Ojo1OjpFbGVtZW50VHJlZTo6cGFyc2VyOjp2b2lkLW5h
bWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rp
b24vdGVzdHMxMS5kYXQ6OjU6OmNFbGVtZW50VHJlZTo6cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJ
TAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZXN0czExLmRh
dDo6NTo6Y0VsZW1lbnRUcmVlOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1s
NWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZXN0czExLmRhdDo6NTo6bHht
bDo6cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90
cmVlLWNvbnN0cnVjdGlvbi90ZXN0czExLmRhdDo6NTo6bHhtbDo6cGFyc2VyOjp2b2lkLW5hbWVz
cGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24v
dGVzdHMxMS5kYXQ6OjY6OkRPTTo6cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxp
Yi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZXN0czExLmRhdDo6Njo6RE9NOjpw
YXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90
cmVlLWNvbnN0cnVjdGlvbi90ZXN0czExLmRhdDo6Njo6RWxlbWVudFRyZWU6OnBhcnNlcjo6bmFt
ZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rp
b24vdGVzdHMxMS5kYXQ6OjY6OkVsZW1lbnRUcmVlOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzog
RkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZXN0czEx
LmRhdDo6Njo6Y0VsZW1lbnRUcmVlOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1
bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3Rlc3RzMTEuZGF0Ojo2OjpjRWxl
bWVudFRyZWU6OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3Rz
L3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3Rlc3RzMTEuZGF0Ojo2OjpseG1sOjpwYXJzZXI6
Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3Ry
dWN0aW9uL3Rlc3RzMTEuZGF0Ojo2OjpseG1sOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJ
TAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZXN0czE5LmRh
dDo6MTQ6OkRPTTo6cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90
ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZXN0czE5LmRhdDo6MTQ6OkRPTTo6cGFyc2VyOjp2
b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25z
dHJ1Y3Rpb24vdGVzdHMxOS5kYXQ6OjE0OjpFbGVtZW50VHJlZTo6cGFyc2VyOjpuYW1lc3BhY2Vk
JzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZXN0
czE5LmRhdDo6MTQ6OkVsZW1lbnRUcmVlOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAor
dSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZXN0czE5LmRhdDo6
MTQ6OmNFbGVtZW50VHJlZTo6cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90
ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZXN0czE5LmRhdDo6MTQ6OmNFbGVtZW50
VHJlZTo6cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVz
dGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVzdHMxOS5kYXQ6OjE0OjpseG1sOjpwYXJzZXI6Om5h
bWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0
aW9uL3Rlc3RzMTkuZGF0OjoxNDo6bHhtbDo6cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZBSUwK
K3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVzdHMxOS5kYXQ6
OjE3OjpET006OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVz
dGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVzdHMxOS5kYXQ6OjE3OjpET006OnBhcnNlcjo6dm9p
ZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3Ry
dWN0aW9uL3Rlc3RzMTkuZGF0OjoxNzo6RWxlbWVudFRyZWU6OnBhcnNlcjo6bmFtZXNwYWNlZCc6
IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVzdHMx
OS5kYXQ6OjE3OjpFbGVtZW50VHJlZTo6cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3Un
aHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVzdHMxOS5kYXQ6OjE3
OjpjRWxlbWVudFRyZWU6OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVz
dHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVzdHMxOS5kYXQ6OjE3OjpjRWxlbWVudFRy
ZWU6OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3Rk
YXRhL3RyZWUtY29uc3RydWN0aW9uL3Rlc3RzMTkuZGF0OjoxNzo6bHhtbDo6cGFyc2VyOjpuYW1l
c3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlv
bi90ZXN0czE5LmRhdDo6MTc6Omx4bWw6OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1
J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3Rlc3RzMTkuZGF0Ojo3
OjpET006OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRh
dGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVzdHMxOS5kYXQ6Ojc6OkRPTTo6cGFyc2VyOjp2b2lkLW5h
bWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rp
b24vdGVzdHMxOS5kYXQ6Ojc6OkVsZW1lbnRUcmVlOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlM
Cit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3Rlc3RzMTkuZGF0
Ojo3OjpFbGVtZW50VHJlZTo6cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVs
aWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVzdHMxOS5kYXQ6Ojc6OmNFbGVt
ZW50VHJlZTo6cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0
ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZXN0czE5LmRhdDo6Nzo6Y0VsZW1lbnRUcmVlOjpwYXJz
ZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVl
LWNvbnN0cnVjdGlvbi90ZXN0czE5LmRhdDo6Nzo6bHhtbDo6cGFyc2VyOjpuYW1lc3BhY2VkJzog
RkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZXN0czE5
LmRhdDo6Nzo6bHhtbDo6cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIv
dGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVzdHMyLmRhdDo6Njo6RE9NOjpwYXJz
ZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29u
c3RydWN0aW9uL3Rlc3RzMi5kYXQ6OjY6OkRPTTo6cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZB
SUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVzdHMyLmRh
dDo6Njo6RWxlbWVudFRyZWU6OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIv
dGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVzdHMyLmRhdDo6Njo6RWxlbWVudFRy
ZWU6OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3Rk
YXRhL3RyZWUtY29uc3RydWN0aW9uL3Rlc3RzMi5kYXQ6OjY6OmNFbGVtZW50VHJlZTo6cGFyc2Vy
OjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0
cnVjdGlvbi90ZXN0czIuZGF0Ojo2OjpjRWxlbWVudFRyZWU6OnBhcnNlcjo6dm9pZC1uYW1lc3Bh
Y2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3Rl
c3RzMi5kYXQ6OjY6Omx4bWw6OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIv
dGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVzdHMyLmRhdDo6Njo6bHhtbDo6cGFy
c2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJl
ZS1jb25zdHJ1Y3Rpb24vdGVzdHMyLmRhdDo6Nzo6RE9NOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBG
QUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3Rlc3RzMi5k
YXQ6Ojc6OkRPTTo6cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVz
dHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVzdHMyLmRhdDo6Nzo6RWxlbWVudFRyZWU6
OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJl
ZS1jb25zdHJ1Y3Rpb24vdGVzdHMyLmRhdDo6Nzo6RWxlbWVudFRyZWU6OnBhcnNlcjo6dm9pZC1u
YW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0
aW9uL3Rlc3RzMi5kYXQ6Ojc6OmNFbGVtZW50VHJlZTo6cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJ
TAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZXN0czIuZGF0
Ojo3OjpjRWxlbWVudFRyZWU6OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1
bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3Rlc3RzMi5kYXQ6Ojc6Omx4bWw6
OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJl
ZS1jb25zdHJ1Y3Rpb24vdGVzdHMyLmRhdDo6Nzo6bHhtbDo6cGFyc2VyOjp2b2lkLW5hbWVzcGFj
ZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vdGVz
dHMyNS5kYXQ6Ojc6OkRPTTo6cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90
ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZXN0czI1LmRhdDo6Nzo6RE9NOjpwYXJz
ZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVl
LWNvbnN0cnVjdGlvbi90ZXN0czI1LmRhdDo6Nzo6RWxlbWVudFRyZWU6OnBhcnNlcjo6bmFtZXNw
YWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24v
dGVzdHMyNS5kYXQ6Ojc6OkVsZW1lbnRUcmVlOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJ
TAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi90ZXN0czI1LmRh
dDo6Nzo6Y0VsZW1lbnRUcmVlOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1bGli
L3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3Rlc3RzMjUuZGF0Ojo3OjpjRWxlbWVu
dFRyZWU6OnBhcnNlcjo6dm9pZC1uYW1lc3BhY2UnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rl
c3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3Rlc3RzMjUuZGF0Ojo3OjpseG1sOjpwYXJzZXI6Om5h
bWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0
aW9uL3Rlc3RzMjUuZGF0Ojo3OjpseG1sOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAor
dSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi93ZWJraXQwMi5kYXQ6
OjE0OjpET006OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVz
dGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vd2Via2l0MDIuZGF0OjoxNDo6RE9NOjpwYXJzZXI6OnZv
aWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0
cnVjdGlvbi93ZWJraXQwMi5kYXQ6OjE0OjpFbGVtZW50VHJlZTo6cGFyc2VyOjpuYW1lc3BhY2Vk
JzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi93ZWJr
aXQwMi5kYXQ6OjE0OjpFbGVtZW50VHJlZTo6cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZBSUwK
K3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vd2Via2l0MDIuZGF0
OjoxNDo6Y0VsZW1lbnRUcmVlOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0bWw1bGli
L3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3dlYmtpdDAyLmRhdDo6MTQ6OmNFbGVt
ZW50VHJlZTo6cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMv
dGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vd2Via2l0MDIuZGF0OjoxNDo6bHhtbDo6cGFyc2Vy
OjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0
cnVjdGlvbi93ZWJraXQwMi5kYXQ6OjE0OjpseG1sOjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzog
RkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi93ZWJraXQw
Mi5kYXQ6OjE1OjpET006OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVsaWIvdGVz
dHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vd2Via2l0MDIuZGF0OjoxNTo6RE9NOjpwYXJz
ZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVl
LWNvbnN0cnVjdGlvbi93ZWJraXQwMi5kYXQ6OjE1OjpFbGVtZW50VHJlZTo6cGFyc2VyOjpuYW1l
c3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlv
bi93ZWJraXQwMi5kYXQ6OjE1OjpFbGVtZW50VHJlZTo6cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6
IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vd2Via2l0
MDIuZGF0OjoxNTo6Y0VsZW1lbnRUcmVlOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlMCit1J2h0
bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3dlYmtpdDAyLmRhdDo6MTU6
OmNFbGVtZW50VHJlZTo6cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIv
dGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vd2Via2l0MDIuZGF0OjoxNTo6bHhtbDo6
cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVl
LWNvbnN0cnVjdGlvbi93ZWJraXQwMi5kYXQ6OjE1OjpseG1sOjpwYXJzZXI6OnZvaWQtbmFtZXNw
YWNlJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0cnVjdGlvbi93
ZWJraXQwMi5kYXQ6OjE2OjpET006OnBhcnNlcjo6bmFtZXNwYWNlZCc6IEZBSUwKK3UnaHRtbDVs
aWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vd2Via2l0MDIuZGF0OjoxNjo6RE9N
OjpwYXJzZXI6OnZvaWQtbmFtZXNwYWNlJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0
YS90cmVlLWNvbnN0cnVjdGlvbi93ZWJraXQwMi5kYXQ6OjE2OjpFbGVtZW50VHJlZTo6cGFyc2Vy
OjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0YS90cmVlLWNvbnN0
cnVjdGlvbi93ZWJraXQwMi5kYXQ6OjE2OjpFbGVtZW50VHJlZTo6cGFyc2VyOjp2b2lkLW5hbWVz
cGFjZSc6IEZBSUwKK3UnaHRtbDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24v
d2Via2l0MDIuZGF0OjoxNjo6Y0VsZW1lbnRUcmVlOjpwYXJzZXI6Om5hbWVzcGFjZWQnOiBGQUlM
Cit1J2h0bWw1bGliL3Rlc3RzL3Rlc3RkYXRhL3RyZWUtY29uc3RydWN0aW9uL3dlYmtpdDAyLmRh
dDo6MTY6OmNFbGVtZW50VHJlZTo6cGFyc2VyOjp2b2lkLW5hbWVzcGFjZSc6IEZBSUwKK3UnaHRt
bDVsaWIvdGVzdHMvdGVzdGRhdGEvdHJlZS1jb25zdHJ1Y3Rpb24vd2Via2l0MDIuZGF0OjoxNjo6
bHhtbDo6cGFyc2VyOjpuYW1lc3BhY2VkJzogRkFJTAordSdodG1sNWxpYi90ZXN0cy90ZXN0ZGF0
YS90cmVlLWNvbnN0cnVjdGlvbi93ZWJraXQwMi5kYXQ6OjE2OjpseG1sOjpwYXJzZXI6OnZvaWQt
bmFtZXNwYWNlJzogRkFJTApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9odG1sNWxpYi8udHJhdmlzLnltbCBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRf
cGFydHkvaHRtbDVsaWIvLnRyYXZpcy55bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNTcyN2UwOTQ3ZTJlYmYxYjhl
ZGMxZjQzOTUyZWEzMWUyMDk5NzY2MwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaHRtbDVsaWIv
LnRyYXZpcy55bWwKQEAgLTAsMCArMSwzMiBAQAorbGFuZ3VhZ2U6IHB5dGhvbgorcHl0aG9uOgor
ICAtICJweXB5IgorICAtICIzLjYiCisgIC0gIjMuNSIKKyAgLSAiMy40IgorICAtICIzLjMiCisg
IC0gIjIuNyIKKworc3VkbzogZmFsc2UKKworY2FjaGU6IHBpcAorCitlbnY6CisgIGdsb2JhbDoK
KyAgICAtIFBZVEVTVF9DT01NQU5EPSJjb3ZlcmFnZSBydW4gLW0gcHl0ZXN0IgorICBtYXRyaXg6
CisgICAgLSBUT1hFTlY9b3B0aW9uYWwKKyAgICAtIFRPWEVOVj1iYXNlCisgICAgLSBUT1hFTlY9
c2l4MTktb3B0aW9uYWwKKworaW5zdGFsbDoKKyAgLSBwaXAgaW5zdGFsbCB0b3ggY29kZWNvdgor
CitzY3JpcHQ6CisgIC0gdG94CisKK2FmdGVyX3NjcmlwdDoKKyAgLSBweXRob24gZGVidWctaW5m
by5weQorCithZnRlcl9zdWNjZXNzOgorICAtIGNvZGVjb3YKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaHRt
bDVsaWIvZG9jL3czYy1pbXBvcnQubG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9odG1sNWxpYi9kb2MvdzNjLWltcG9ydC5s
b2cKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGFkNzAxYWJmOGY1ZjVlODIwMTliYmM2
OWE0YmM1NDM5ZmZkZGQ0MWEuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy90aGlyZF9wYXJ0eS9odG1sNWxpYi9kb2MvdzNjLWltcG9ydC5sb2cKKysrIC9kZXYvbnVsbApA
QCAtMSwyOSArMCwwIEBACi1UaGUgdGVzdHMgaW4gdGhpcyBkaXJlY3Rvcnkgd2VyZSBpbXBvcnRl
ZCBmcm9tIHRoZSBXM0MgcmVwb3NpdG9yeS4KLURvIE5PVCBtb2RpZnkgdGhlc2UgdGVzdHMgZGly
ZWN0bHkgaW4gV2ViS2l0LgotSW5zdGVhZCwgY3JlYXRlIGEgcHVsbCByZXF1ZXN0IG9uIHRoZSBX
UFQgZ2l0aHViOgotCWh0dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxhdGZvcm0tdGVzdHMvd3B0Ci0K
LVRoZW4gcnVuIHRoZSBUb29scy9TY3JpcHRzL2ltcG9ydC13M2MtdGVzdHMgaW4gV2ViS2l0IHRv
IHJlaW1wb3J0Ci0KLURvIE5PVCBtb2RpZnkgb3IgcmVtb3ZlIHRoaXMgZmlsZS4KLQotLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tCi1Qcm9wZXJ0aWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi1Q
cm9wZXJ0eSB2YWx1ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLQotTGlzdCBvZiBmaWxlczoKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2h0bWw1bGliL2RvYy9NYWtlZmlsZQotL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFy
dHkvaHRtbDVsaWIvZG9jL2NoYW5nZXMucnN0Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9odG1sNWxpYi9kb2MvY29uZi5weQot
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRf
cGFydHkvaHRtbDVsaWIvZG9jL2h0bWw1bGliLmZpbHRlcnMucnN0Ci0vTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9odG1sNWxpYi9k
b2MvaHRtbDVsaWIucnN0Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy90aGlyZF9wYXJ0eS9odG1sNWxpYi9kb2MvaHRtbDVsaWIudHJlZWFkYXB0ZXJz
LnJzdAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
dGhpcmRfcGFydHkvaHRtbDVsaWIvZG9jL2h0bWw1bGliLnRyZWVidWlsZGVycy5yc3QKLS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5
L2h0bWw1bGliL2RvYy9odG1sNWxpYi50cmVld2Fsa2Vycy5yc3QKLS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2h0bWw1bGliL2Rv
Yy9pbmRleC5yc3QKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3RoaXJkX3BhcnR5L2h0bWw1bGliL2RvYy9saWNlbnNlLnJzdAotL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaHRtbDVs
aWIvZG9jL21ha2UuYmF0Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy90aGlyZF9wYXJ0eS9odG1sNWxpYi9kb2MvbW9kdWxlcy5yc3QKLS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2h0
bWw1bGliL2RvYy9tb3ZpbmdwYXJ0cy5yc3QKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaHRtbDVsaWIvZmxh
a2U4LXJ1bi5zaCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvdGhpcmRfcGFydHkvaHRtbDVsaWIvZmxha2U4LXJ1bi5zaApvbGQgbW9kZSAxMDA2NDQK
bmV3IG1vZGUgMTAwNzU1CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2h0bWw1bGliL2h0bWw1bGliL190cmll
L3czYy1pbXBvcnQubG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy90aGlyZF9wYXJ0eS9odG1sNWxpYi9odG1sNWxpYi9fdHJpZS93M2MtaW1wb3J0
LmxvZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYmEwMTA0YTc2ODg3YzkwN2M2ODFk
YzJjNjhkY2QxM2ZjNTMzZjcxNy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3RoaXJkX3BhcnR5L2h0bWw1bGliL2h0bWw1bGliL190cmllL3czYy1pbXBvcnQubG9nCisr
KyAvZGV2L251bGwKQEAgLTEsMjQgKzAsMCBAQAotVGhlIHRlc3RzIGluIHRoaXMgZGlyZWN0b3J5
IHdlcmUgaW1wb3J0ZWQgZnJvbSB0aGUgVzNDIHJlcG9zaXRvcnkuCi1EbyBOT1QgbW9kaWZ5IHRo
ZXNlIHRlc3RzIGRpcmVjdGx5IGluIFdlYktpdC4KLUluc3RlYWQsIGNyZWF0ZSBhIHB1bGwgcmVx
dWVzdCBvbiB0aGUgV1BUIGdpdGh1YjoKLQlodHRwczovL2dpdGh1Yi5jb20vd2ViLXBsYXRmb3Jt
LXRlc3RzL3dwdAotCi1UaGVuIHJ1biB0aGUgVG9vbHMvU2NyaXB0cy9pbXBvcnQtdzNjLXRlc3Rz
IGluIFdlYktpdCB0byByZWltcG9ydAotCi1EbyBOT1QgbW9kaWZ5IG9yIHJlbW92ZSB0aGlzIGZp
bGUuCi0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotUHJvcGVydGllcyByZXF1aXJpbmcgdmVuZG9yIHByZWZp
eGVzOgotTm9uZQotUHJvcGVydHkgdmFsdWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1O
b25lCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0KLUxpc3Qgb2YgZmlsZXM6Ci0vTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9odG1sNWxpYi9odG1s
NWxpYi9fdHJpZS9fX2luaXRfXy5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaHRtbDVsaWIvaHRtbDVsaWIvX3RyaWUvX19p
bml0X18ucHljCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy90aGlyZF9wYXJ0eS9odG1sNWxpYi9odG1sNWxpYi9fdHJpZS9fYmFzZS5weQotL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkv
aHRtbDVsaWIvaHRtbDVsaWIvX3RyaWUvX2Jhc2UucHljCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9odG1sNWxpYi9odG1sNWxp
Yi9fdHJpZS9kYXRyaWUucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2h0bWw1bGliL2h0bWw1bGliL190cmllL2RhdHJpZS5w
eWMKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3Ro
aXJkX3BhcnR5L2h0bWw1bGliL2h0bWw1bGliL190cmllL3B5LnB5Ci0vTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9odG1sNWxpYi9o
dG1sNWxpYi9fdHJpZS9weS5weWMKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaHRtbDVsaWIvaHRtbDVsaWIv
ZmlsdGVycy9fX2luaXRfXy5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaHRtbDVsaWIvaHRtbDVsaWIvZmlsdGVycy9fX2lu
aXRfXy5weQppbmRleCBhNjgzNGI4Mjg1YTU2YmVmMGUxNTQzZmQ5MDFjN2U2ZjJmOGJjMjAyLi5l
NjlkZTI5YmIyZDFkNjQzNGI4YjI5YWU3NzVhZDhjMmU0OGM1MzkxIDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5
L2h0bWw1bGliL2h0bWw1bGliL2ZpbHRlcnMvX19pbml0X18ucHkKKysrIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9odG1sNWxp
Yi9odG1sNWxpYi9maWx0ZXJzL19faW5pdF9fLnB5CkBAIC0xICswLDAgQEAKLSMgVGhpcyBmaWxl
IGlzIHJlcXVpcmVkIGZvciBQeXRob24gdG8gc2VhcmNoIHRoaXMgZGlyZWN0b3J5IGZvciBtb2R1
bGVzLgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaHRtbDVs
aWIvaHRtbDVsaWIvZmlsdGVycy93M2MtaW1wb3J0LmxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaHRtbDVsaWIvaHRtbDVs
aWIvZmlsdGVycy93M2MtaW1wb3J0LmxvZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
ZDhlZjUyMTMyMjcxNjNiYTkyNTZlMDI5MWE4YjA4ZjJlNDdkN2Y0MS4uMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2h0bWw1bGliL2h0bWw1bGliL2Zp
bHRlcnMvdzNjLWltcG9ydC5sb2cKKysrIC9kZXYvbnVsbApAQCAtMSwyNCArMCwwIEBACi1UaGUg
dGVzdHMgaW4gdGhpcyBkaXJlY3Rvcnkgd2VyZSBpbXBvcnRlZCBmcm9tIHRoZSBXM0MgcmVwb3Np
dG9yeS4KLURvIE5PVCBtb2RpZnkgdGhlc2UgdGVzdHMgZGlyZWN0bHkgaW4gV2ViS2l0LgotSW5z
dGVhZCwgY3JlYXRlIGEgcHVsbCByZXF1ZXN0IG9uIHRoZSBXUFQgZ2l0aHViOgotCWh0dHBzOi8v
Z2l0aHViLmNvbS93ZWItcGxhdGZvcm0tdGVzdHMvd3B0Ci0KLVRoZW4gcnVuIHRoZSBUb29scy9T
Y3JpcHRzL2ltcG9ydC13M2MtdGVzdHMgaW4gV2ViS2l0IHRvIHJlaW1wb3J0Ci0KLURvIE5PVCBt
b2RpZnkgb3IgcmVtb3ZlIHRoaXMgZmlsZS4KLQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1Qcm9wZXJ0aWVz
IHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi1Qcm9wZXJ0eSB2YWx1ZXMgcmVxdWly
aW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotTGlzdCBvZiBmaWxl
czoKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3Ro
aXJkX3BhcnR5L2h0bWw1bGliL2h0bWw1bGliL2ZpbHRlcnMvX19pbml0X18ucHkKLS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2h0
bWw1bGliL2h0bWw1bGliL2ZpbHRlcnMvYWxwaGFiZXRpY2FsYXR0cmlidXRlcy5weQotL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkv
aHRtbDVsaWIvaHRtbDVsaWIvZmlsdGVycy9iYXNlLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9odG1sNWxpYi9odG1sNWxp
Yi9maWx0ZXJzL2luamVjdF9tZXRhX2NoYXJzZXQucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2h0bWw1bGliL2h0bWw1bGli
L2ZpbHRlcnMvbGludC5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaHRtbDVsaWIvaHRtbDVsaWIvZmlsdGVycy9vcHRpb25h
bHRhZ3MucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3RoaXJkX3BhcnR5L2h0bWw1bGliL2h0bWw1bGliL2ZpbHRlcnMvc2FuaXRpemVyLnB5Ci0v
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9w
YXJ0eS9odG1sNWxpYi9odG1sNWxpYi9maWx0ZXJzL3doaXRlc3BhY2UucHkKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRf
cGFydHkvaHRtbDVsaWIvaHRtbDVsaWIvdGVzdHMvc2FuaXRpemVyLXRlc3RkYXRhL3czYy1pbXBv
cnQubG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy90aGlyZF9wYXJ0eS9odG1sNWxpYi9odG1sNWxpYi90ZXN0cy9zYW5pdGl6ZXItdGVzdGRhdGEv
dzNjLWltcG9ydC5sb2cKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDA1NjUzZWQ2NTQ2
ODVmYmQxZGViMWQ0NGVmNGUwOTdjNDhhMWIxZjkuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9odG1sNWxpYi9odG1sNWxpYi90ZXN0cy9zYW5pdGl6
ZXItdGVzdGRhdGEvdzNjLWltcG9ydC5sb2cKKysrIC9kZXYvbnVsbApAQCAtMSwxNyArMCwwIEBA
Ci1UaGUgdGVzdHMgaW4gdGhpcyBkaXJlY3Rvcnkgd2VyZSBpbXBvcnRlZCBmcm9tIHRoZSBXM0Mg
cmVwb3NpdG9yeS4KLURvIE5PVCBtb2RpZnkgdGhlc2UgdGVzdHMgZGlyZWN0bHkgaW4gV2ViS2l0
LgotSW5zdGVhZCwgY3JlYXRlIGEgcHVsbCByZXF1ZXN0IG9uIHRoZSBXUFQgZ2l0aHViOgotCWh0
dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxhdGZvcm0tdGVzdHMvd3B0Ci0KLVRoZW4gcnVuIHRoZSBU
b29scy9TY3JpcHRzL2ltcG9ydC13M2MtdGVzdHMgaW4gV2ViS2l0IHRvIHJlaW1wb3J0Ci0KLURv
IE5PVCBtb2RpZnkgb3IgcmVtb3ZlIHRoaXMgZmlsZS4KLQotLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1Qcm9w
ZXJ0aWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi1Qcm9wZXJ0eSB2YWx1ZXMg
cmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotTGlzdCBv
ZiBmaWxlczoKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3RoaXJkX3BhcnR5L2h0bWw1bGliL2h0bWw1bGliL3Rlc3RzL3Nhbml0aXplci10ZXN0ZGF0
YS90ZXN0czEuZGF0CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2h0bWw1bGliL2h0bWw1bGliL3Rlc3RzL3Nl
cmlhbGl6ZXItdGVzdGRhdGEvdzNjLWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2h0bWw1bGliL2h0bWw1bGli
L3Rlc3RzL3NlcmlhbGl6ZXItdGVzdGRhdGEvdzNjLWltcG9ydC5sb2cKZGVsZXRlZCBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDdkMjJkYTE4Y2Q1Y2YwMWJhNjE0MGI5M2Q5N2Y2NTRlN2MyNjZjOTUu
LjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9odG1s
NWxpYi9odG1sNWxpYi90ZXN0cy9zZXJpYWxpemVyLXRlc3RkYXRhL3czYy1pbXBvcnQubG9nCisr
KyAvZGV2L251bGwKQEAgLTEsMjEgKzAsMCBAQAotVGhlIHRlc3RzIGluIHRoaXMgZGlyZWN0b3J5
IHdlcmUgaW1wb3J0ZWQgZnJvbSB0aGUgVzNDIHJlcG9zaXRvcnkuCi1EbyBOT1QgbW9kaWZ5IHRo
ZXNlIHRlc3RzIGRpcmVjdGx5IGluIFdlYktpdC4KLUluc3RlYWQsIGNyZWF0ZSBhIHB1bGwgcmVx
dWVzdCBvbiB0aGUgV1BUIGdpdGh1YjoKLQlodHRwczovL2dpdGh1Yi5jb20vd2ViLXBsYXRmb3Jt
LXRlc3RzL3dwdAotCi1UaGVuIHJ1biB0aGUgVG9vbHMvU2NyaXB0cy9pbXBvcnQtdzNjLXRlc3Rz
IGluIFdlYktpdCB0byByZWltcG9ydAotCi1EbyBOT1QgbW9kaWZ5IG9yIHJlbW92ZSB0aGlzIGZp
bGUuCi0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotUHJvcGVydGllcyByZXF1aXJpbmcgdmVuZG9yIHByZWZp
eGVzOgotTm9uZQotUHJvcGVydHkgdmFsdWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1O
b25lCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0KLUxpc3Qgb2YgZmlsZXM6Ci0vTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9odG1sNWxpYi9odG1s
NWxpYi90ZXN0cy9zZXJpYWxpemVyLXRlc3RkYXRhL2NvcmUudGVzdAotL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaHRtbDVsaWIv
aHRtbDVsaWIvdGVzdHMvc2VyaWFsaXplci10ZXN0ZGF0YS9pbmplY3RtZXRhLnRlc3QKLS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5
L2h0bWw1bGliL2h0bWw1bGliL3Rlc3RzL3NlcmlhbGl6ZXItdGVzdGRhdGEvb3B0aW9uYWx0YWdz
LnRlc3QKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3RoaXJkX3BhcnR5L2h0bWw1bGliL2h0bWw1bGliL3Rlc3RzL3NlcmlhbGl6ZXItdGVzdGRhdGEv
b3B0aW9ucy50ZXN0Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy90aGlyZF9wYXJ0eS9odG1sNWxpYi9odG1sNWxpYi90ZXN0cy9zZXJpYWxpemVyLXRl
c3RkYXRhL3doaXRlc3BhY2UudGVzdApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9odG1sNWxpYi9odG1sNWxp
Yi90ZXN0cy93M2MtaW1wb3J0LmxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaHRtbDVsaWIvaHRtbDVsaWIvdGVzdHMvdzNj
LWltcG9ydC5sb2cKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDcxZDdhMTQzOGJhZTYx
MDk4YzEwZGYzOWU4MmE2NWZhOTMwNDljMTQuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy90aGlyZF9wYXJ0eS9odG1sNWxpYi9odG1sNWxpYi90ZXN0cy93M2MtaW1wb3J0
LmxvZworKysgL2Rldi9udWxsCkBAIC0xLDM2ICswLDAgQEAKLVRoZSB0ZXN0cyBpbiB0aGlzIGRp
cmVjdG9yeSB3ZXJlIGltcG9ydGVkIGZyb20gdGhlIFczQyByZXBvc2l0b3J5LgotRG8gTk9UIG1v
ZGlmeSB0aGVzZSB0ZXN0cyBkaXJlY3RseSBpbiBXZWJLaXQuCi1JbnN0ZWFkLCBjcmVhdGUgYSBw
dWxsIHJlcXVlc3Qgb24gdGhlIFdQVCBnaXRodWI6Ci0JaHR0cHM6Ly9naXRodWIuY29tL3dlYi1w
bGF0Zm9ybS10ZXN0cy93cHQKLQotVGhlbiBydW4gdGhlIFRvb2xzL1NjcmlwdHMvaW1wb3J0LXcz
Yy10ZXN0cyBpbiBXZWJLaXQgdG8gcmVpbXBvcnQKLQotRG8gTk9UIG1vZGlmeSBvciByZW1vdmUg
dGhpcyBmaWxlLgotCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLVByb3BlcnRpZXMgcmVxdWlyaW5nIHZlbmRv
ciBwcmVmaXhlczoKLU5vbmUKLVByb3BlcnR5IHZhbHVlcyByZXF1aXJpbmcgdmVuZG9yIHByZWZp
eGVzOgotTm9uZQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1MaXN0IG9mIGZpbGVzOgotL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaHRtbDVs
aWIvaHRtbDVsaWIvdGVzdHMvX19pbml0X18ucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2h0bWw1bGliL2h0bWw1bGliL3Rl
c3RzL2NvbmZ0ZXN0LnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy90aGlyZF9wYXJ0eS9odG1sNWxpYi9odG1sNWxpYi90ZXN0cy9zYW5pdGl6ZXIu
cHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3Ro
aXJkX3BhcnR5L2h0bWw1bGliL2h0bWw1bGliL3Rlc3RzL3N1cHBvcnQucHkKLS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2h0bWw1
bGliL2h0bWw1bGliL3Rlc3RzL3Rlc3RfYWxwaGFiZXRpY2FsYXR0cmlidXRlcy5weQotL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkv
aHRtbDVsaWIvaHRtbDVsaWIvdGVzdHMvdGVzdF9lbmNvZGluZy5weQotL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaHRtbDVsaWIv
aHRtbDVsaWIvdGVzdHMvdGVzdF9tZXRhLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9odG1sNWxpYi9odG1sNWxpYi90ZXN0
cy90ZXN0X29wdGlvbmFsdGFnc19maWx0ZXIucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2h0bWw1bGliL2h0bWw1bGliL3Rl
c3RzL3Rlc3RfcGFyc2VyMi5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaHRtbDVsaWIvaHRtbDVsaWIvdGVzdHMvdGVzdF9z
YW5pdGl6ZXIucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3RoaXJkX3BhcnR5L2h0bWw1bGliL2h0bWw1bGliL3Rlc3RzL3Rlc3Rfc2VyaWFsaXpl
ci5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
dGhpcmRfcGFydHkvaHRtbDVsaWIvaHRtbDVsaWIvdGVzdHMvdGVzdF9zdHJlYW0ucHkKLS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5
L2h0bWw1bGliL2h0bWw1bGliL3Rlc3RzL3Rlc3RfdHJlZWFkYXB0ZXJzLnB5Ci0vTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9odG1s
NWxpYi9odG1sNWxpYi90ZXN0cy90ZXN0X3RyZWV3YWxrZXJzLnB5Ci0vTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9odG1sNWxpYi9o
dG1sNWxpYi90ZXN0cy90ZXN0X3doaXRlc3BhY2VfZmlsdGVyLnB5Ci0vTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9odG1sNWxpYi9o
dG1sNWxpYi90ZXN0cy90b2tlbml6ZXIucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2h0bWw1bGliL2h0bWw1bGliL3Rlc3Rz
L3Rva2VuaXplcnRvdHJlZS5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaHRtbDVsaWIvaHRtbDVsaWIvdGVzdHMvdHJlZV9j
b25zdHJ1Y3Rpb24ucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2h0bWw1bGliL2h0bWw1bGliL3Rlc3RzL3VzLWFzY2lpLmh0
bWwKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3Ro
aXJkX3BhcnR5L2h0bWw1bGliL2h0bWw1bGliL3Rlc3RzL3V0Zi04LWJvbS5odG1sCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3Ro
aXJkX3BhcnR5L2h0bWw1bGliL2h0bWw1bGliL3RyZWVhZGFwdGVycy93M2MtaW1wb3J0LmxvZyBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRf
cGFydHkvaHRtbDVsaWIvaHRtbDVsaWIvdHJlZWFkYXB0ZXJzL3czYy1pbXBvcnQubG9nCmRlbGV0
ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4ZDBmZjc4ODUxMTRhOTcxZTQ0MTY5ZjM5ODRkMTY3
OTcyY2RjMjAxLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRf
cGFydHkvaHRtbDVsaWIvaHRtbDVsaWIvdHJlZWFkYXB0ZXJzL3czYy1pbXBvcnQubG9nCisrKyAv
ZGV2L251bGwKQEAgLTEsMTkgKzAsMCBAQAotVGhlIHRlc3RzIGluIHRoaXMgZGlyZWN0b3J5IHdl
cmUgaW1wb3J0ZWQgZnJvbSB0aGUgVzNDIHJlcG9zaXRvcnkuCi1EbyBOT1QgbW9kaWZ5IHRoZXNl
IHRlc3RzIGRpcmVjdGx5IGluIFdlYktpdC4KLUluc3RlYWQsIGNyZWF0ZSBhIHB1bGwgcmVxdWVz
dCBvbiB0aGUgV1BUIGdpdGh1YjoKLQlodHRwczovL2dpdGh1Yi5jb20vd2ViLXBsYXRmb3JtLXRl
c3RzL3dwdAotCi1UaGVuIHJ1biB0aGUgVG9vbHMvU2NyaXB0cy9pbXBvcnQtdzNjLXRlc3RzIGlu
IFdlYktpdCB0byByZWltcG9ydAotCi1EbyBOT1QgbW9kaWZ5IG9yIHJlbW92ZSB0aGlzIGZpbGUu
Ci0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLQotUHJvcGVydGllcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVz
OgotTm9uZQotUHJvcGVydHkgdmFsdWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25l
Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0KLUxpc3Qgb2YgZmlsZXM6Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9odG1sNWxpYi9odG1sNWxp
Yi90cmVlYWRhcHRlcnMvX19pbml0X18ucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2h0bWw1bGliL2h0bWw1bGliL3RyZWVh
ZGFwdGVycy9nZW5zaGkucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2h0bWw1bGliL2h0bWw1bGliL3RyZWVhZGFwdGVycy9z
YXgucHkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaHRtbDVsaWIvaHRtbDVsaWIvdHJlZWJ1aWxkZXJzL3cz
Yy1pbXBvcnQubG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy90aGlyZF9wYXJ0eS9odG1sNWxpYi9odG1sNWxpYi90cmVlYnVpbGRlcnMvdzNjLWlt
cG9ydC5sb2cKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDM5Y2RjNTExMDcxZDZiOGNl
MDc2ODMzMzY5ZWJjM2VhNDlmNDQ5Y2MuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy90aGlyZF9wYXJ0eS9odG1sNWxpYi9odG1sNWxpYi90cmVlYnVpbGRlcnMvdzNjLWlt
cG9ydC5sb2cKKysrIC9kZXYvbnVsbApAQCAtMSwyNCArMCwwIEBACi1UaGUgdGVzdHMgaW4gdGhp
cyBkaXJlY3Rvcnkgd2VyZSBpbXBvcnRlZCBmcm9tIHRoZSBXM0MgcmVwb3NpdG9yeS4KLURvIE5P
VCBtb2RpZnkgdGhlc2UgdGVzdHMgZGlyZWN0bHkgaW4gV2ViS2l0LgotSW5zdGVhZCwgY3JlYXRl
IGEgcHVsbCByZXF1ZXN0IG9uIHRoZSBXUFQgZ2l0aHViOgotCWh0dHBzOi8vZ2l0aHViLmNvbS93
ZWItcGxhdGZvcm0tdGVzdHMvd3B0Ci0KLVRoZW4gcnVuIHRoZSBUb29scy9TY3JpcHRzL2ltcG9y
dC13M2MtdGVzdHMgaW4gV2ViS2l0IHRvIHJlaW1wb3J0Ci0KLURvIE5PVCBtb2RpZnkgb3IgcmVt
b3ZlIHRoaXMgZmlsZS4KLQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1Qcm9wZXJ0aWVzIHJlcXVpcmluZyB2
ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi1Qcm9wZXJ0eSB2YWx1ZXMgcmVxdWlyaW5nIHZlbmRvciBw
cmVmaXhlczoKLU5vbmUKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotTGlzdCBvZiBmaWxlczoKLS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2h0
bWw1bGliL2h0bWw1bGliL3RyZWVidWlsZGVycy9fX2luaXRfXy5weQotL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaHRtbDVsaWIv
aHRtbDVsaWIvdHJlZWJ1aWxkZXJzL19faW5pdF9fLnB5YwotL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaHRtbDVsaWIvaHRtbDVs
aWIvdHJlZWJ1aWxkZXJzL2Jhc2UucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2h0bWw1bGliL2h0bWw1bGliL3RyZWVidWls
ZGVycy9iYXNlLnB5YwotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvdGhpcmRfcGFydHkvaHRtbDVsaWIvaHRtbDVsaWIvdHJlZWJ1aWxkZXJzL2RvbS5w
eQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhp
cmRfcGFydHkvaHRtbDVsaWIvaHRtbDVsaWIvdHJlZWJ1aWxkZXJzL2V0cmVlLnB5Ci0vTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9o
dG1sNWxpYi9odG1sNWxpYi90cmVlYnVpbGRlcnMvZXRyZWUucHljCi0vTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9odG1sNWxpYi9o
dG1sNWxpYi90cmVlYnVpbGRlcnMvZXRyZWVfbHhtbC5weQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9odG1s
NWxpYi9odG1sNWxpYi90cmVld2Fsa2Vycy93M2MtaW1wb3J0LmxvZyBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaHRtbDVsaWIv
aHRtbDVsaWIvdHJlZXdhbGtlcnMvdzNjLWltcG9ydC5sb2cKZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IGJhOWQ2YzYwZGE1MWVjMjE0MmQ2NmI3N2JhYmE0NGNiYjU4ZmUzNDguLjAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9odG1sNWxpYi9o
dG1sNWxpYi90cmVld2Fsa2Vycy93M2MtaW1wb3J0LmxvZworKysgL2Rldi9udWxsCkBAIC0xLDIz
ICswLDAgQEAKLVRoZSB0ZXN0cyBpbiB0aGlzIGRpcmVjdG9yeSB3ZXJlIGltcG9ydGVkIGZyb20g
dGhlIFczQyByZXBvc2l0b3J5LgotRG8gTk9UIG1vZGlmeSB0aGVzZSB0ZXN0cyBkaXJlY3RseSBp
biBXZWJLaXQuCi1JbnN0ZWFkLCBjcmVhdGUgYSBwdWxsIHJlcXVlc3Qgb24gdGhlIFdQVCBnaXRo
dWI6Ci0JaHR0cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQKLQotVGhlbiBy
dW4gdGhlIFRvb2xzL1NjcmlwdHMvaW1wb3J0LXczYy10ZXN0cyBpbiBXZWJLaXQgdG8gcmVpbXBv
cnQKLQotRG8gTk9UIG1vZGlmeSBvciByZW1vdmUgdGhpcyBmaWxlLgotCi0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0KLVByb3BlcnRpZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLVByb3BlcnR5
IHZhbHVlcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
Ci1MaXN0IG9mIGZpbGVzOgotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaHRtbDVsaWIvaHRtbDVsaWIvdHJlZXdhbGtlcnMvX19p
bml0X18ucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3RoaXJkX3BhcnR5L2h0bWw1bGliL2h0bWw1bGliL3RyZWV3YWxrZXJzL19faW5pdF9fLnB5
YwotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhp
cmRfcGFydHkvaHRtbDVsaWIvaHRtbDVsaWIvdHJlZXdhbGtlcnMvYmFzZS5weQotL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaHRt
bDVsaWIvaHRtbDVsaWIvdHJlZXdhbGtlcnMvZG9tLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9odG1sNWxpYi9odG1sNWxp
Yi90cmVld2Fsa2Vycy9ldHJlZS5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaHRtbDVsaWIvaHRtbDVsaWIvdHJlZXdhbGtl
cnMvZXRyZWVfbHhtbC5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaHRtbDVsaWIvaHRtbDVsaWIvdHJlZXdhbGtlcnMvZ2Vu
c2hpLnB5CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2h0bWw1bGliL2h0bWw1bGliL3czYy1pbXBvcnQubG9n
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS9odG1sNWxpYi9odG1sNWxpYi93M2MtaW1wb3J0LmxvZwpkZWxldGVkIGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggZTRkOGY1ZWNlYzNmODQ1ZjAwZDBlZjQyYmY1OTgxMjIzZmYyN2M2OS4u
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2h0bWw1
bGliL2h0bWw1bGliL3czYy1pbXBvcnQubG9nCisrKyAvZGV2L251bGwKQEAgLTEsMzIgKzAsMCBA
QAotVGhlIHRlc3RzIGluIHRoaXMgZGlyZWN0b3J5IHdlcmUgaW1wb3J0ZWQgZnJvbSB0aGUgVzND
IHJlcG9zaXRvcnkuCi1EbyBOT1QgbW9kaWZ5IHRoZXNlIHRlc3RzIGRpcmVjdGx5IGluIFdlYktp
dC4KLUluc3RlYWQsIGNyZWF0ZSBhIHB1bGwgcmVxdWVzdCBvbiB0aGUgV1BUIGdpdGh1YjoKLQlo
dHRwczovL2dpdGh1Yi5jb20vd2ViLXBsYXRmb3JtLXRlc3RzL3dwdAotCi1UaGVuIHJ1biB0aGUg
VG9vbHMvU2NyaXB0cy9pbXBvcnQtdzNjLXRlc3RzIGluIFdlYktpdCB0byByZWltcG9ydAotCi1E
byBOT1QgbW9kaWZ5IG9yIHJlbW92ZSB0aGlzIGZpbGUuCi0KLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotUHJv
cGVydGllcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotUHJvcGVydHkgdmFsdWVz
IHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLUxpc3Qg
b2YgZmlsZXM6Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy90aGlyZF9wYXJ0eS9odG1sNWxpYi9odG1sNWxpYi9fX2luaXRfXy5weQotL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaHRt
bDVsaWIvaHRtbDVsaWIvX19pbml0X18ucHljCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9odG1sNWxpYi9odG1sNWxpYi9faWhh
dGV4bWwucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3RoaXJkX3BhcnR5L2h0bWw1bGliL2h0bWw1bGliL19paGF0ZXhtbC5weWMKLS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2h0
bWw1bGliL2h0bWw1bGliL19pbnB1dHN0cmVhbS5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaHRtbDVsaWIvaHRtbDVsaWIv
X2lucHV0c3RyZWFtLnB5YwotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaHRtbDVsaWIvaHRtbDVsaWIvX3Rva2VuaXplci5weQot
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRf
cGFydHkvaHRtbDVsaWIvaHRtbDVsaWIvX3Rva2VuaXplci5weWMKLS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2h0bWw1bGliL2h0
bWw1bGliL191dGlscy5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaHRtbDVsaWIvaHRtbDVsaWIvX3V0aWxzLnB5YwotL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFy
dHkvaHRtbDVsaWIvaHRtbDVsaWIvY29uc3RhbnRzLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9odG1sNWxpYi9odG1sNWxp
Yi9jb25zdGFudHMucHljCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy90aGlyZF9wYXJ0eS9odG1sNWxpYi9odG1sNWxpYi9odG1sNXBhcnNlci5weQot
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRf
cGFydHkvaHRtbDVsaWIvaHRtbDVsaWIvaHRtbDVwYXJzZXIucHljCi0vTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9odG1sNWxpYi9o
dG1sNWxpYi9zZXJpYWxpemVyLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9odG1sNWxpYi9odG1sNWxpYi9zZXJpYWxpemVy
LnB5YwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy90aGlyZF9wYXJ0eS9odG1sNWxpYi9wYXJzZS5weSBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaHRtbDVsaWIv
cGFyc2UucHkKb2xkIG1vZGUgMTAwNjQ0Cm5ldyBtb2RlIDEwMDc1NQpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0
eS9odG1sNWxpYi9yZXF1aXJlbWVudHMtaW5zdGFsbC5zaCBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaHRtbDVsaWIvcmVxdWly
ZW1lbnRzLWluc3RhbGwuc2gKb2xkIG1vZGUgMTAwNjQ0Cm5ldyBtb2RlIDEwMDc1NQpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90
aGlyZF9wYXJ0eS9odG1sNWxpYi91dGlscy93M2MtaW1wb3J0LmxvZyBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaHRtbDVsaWIv
dXRpbHMvdzNjLWltcG9ydC5sb2cKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDQzMWUw
MDM5ZWY0MDAyNzNjNzFlMzJlMmJkN2JkNzZmNjdhNDIzNWIuLjAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9odG1sNWxpYi91dGlscy93M2MtaW1wb3J0
LmxvZworKysgL2Rldi9udWxsCkBAIC0xLDE3ICswLDAgQEAKLVRoZSB0ZXN0cyBpbiB0aGlzIGRp
cmVjdG9yeSB3ZXJlIGltcG9ydGVkIGZyb20gdGhlIFczQyByZXBvc2l0b3J5LgotRG8gTk9UIG1v
ZGlmeSB0aGVzZSB0ZXN0cyBkaXJlY3RseSBpbiBXZWJLaXQuCi1JbnN0ZWFkLCBjcmVhdGUgYSBw
dWxsIHJlcXVlc3Qgb24gdGhlIFdQVCBnaXRodWI6Ci0JaHR0cHM6Ly9naXRodWIuY29tL3dlYi1w
bGF0Zm9ybS10ZXN0cy93cHQKLQotVGhlbiBydW4gdGhlIFRvb2xzL1NjcmlwdHMvaW1wb3J0LXcz
Yy10ZXN0cyBpbiBXZWJLaXQgdG8gcmVpbXBvcnQKLQotRG8gTk9UIG1vZGlmeSBvciByZW1vdmUg
dGhpcyBmaWxlLgotCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLVByb3BlcnRpZXMgcmVxdWlyaW5nIHZlbmRv
ciBwcmVmaXhlczoKLU5vbmUKLVByb3BlcnR5IHZhbHVlcyByZXF1aXJpbmcgdmVuZG9yIHByZWZp
eGVzOgotTm9uZQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1MaXN0IG9mIGZpbGVzOgotL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaHRtbDVs
aWIvdXRpbHMvZW50aXRpZXMucHkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaHRtbDVsaWIvdzNjLWltcG9y
dC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3RoaXJkX3BhcnR5L2h0bWw1bGliL3czYy1pbXBvcnQubG9nCmRlbGV0ZWQgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAyNGI4MzQzOTdjMGUyNTdiNjhhNmMzMWM0NjgxN2E3ZmJkN2UwMmU4Li4wMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaHRtbDVsaWIv
dzNjLWltcG9ydC5sb2cKKysrIC9kZXYvbnVsbApAQCAtMSwzMyArMCwwIEBACi1UaGUgdGVzdHMg
aW4gdGhpcyBkaXJlY3Rvcnkgd2VyZSBpbXBvcnRlZCBmcm9tIHRoZSBXM0MgcmVwb3NpdG9yeS4K
LURvIE5PVCBtb2RpZnkgdGhlc2UgdGVzdHMgZGlyZWN0bHkgaW4gV2ViS2l0LgotSW5zdGVhZCwg
Y3JlYXRlIGEgcHVsbCByZXF1ZXN0IG9uIHRoZSBXUFQgZ2l0aHViOgotCWh0dHBzOi8vZ2l0aHVi
LmNvbS93ZWItcGxhdGZvcm0tdGVzdHMvd3B0Ci0KLVRoZW4gcnVuIHRoZSBUb29scy9TY3JpcHRz
L2ltcG9ydC13M2MtdGVzdHMgaW4gV2ViS2l0IHRvIHJlaW1wb3J0Ci0KLURvIE5PVCBtb2RpZnkg
b3IgcmVtb3ZlIHRoaXMgZmlsZS4KLQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1Qcm9wZXJ0aWVzIHJlcXVp
cmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi1Qcm9wZXJ0eSB2YWx1ZXMgcmVxdWlyaW5nIHZl
bmRvciBwcmVmaXhlczoKLU5vbmUKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotTGlzdCBvZiBmaWxlczoKLS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3Bh
cnR5L2h0bWw1bGliL0FVVEhPUlMucnN0Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9odG1sNWxpYi9DSEFOR0VTLnJzdAotL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFy
dHkvaHRtbDVsaWIvQ09OVFJJQlVUSU5HLnJzdAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaHRtbDVsaWIvTElDRU5TRQotL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFy
dHkvaHRtbDVsaWIvTUFOSUZFU1QuaW4KLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2h0bWw1bGliL1JFQURNRS5yc3QKLS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5
L2h0bWw1bGliL2RlYnVnLWluZm8ucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2h0bWw1bGliL2ZsYWtlOC1ydW4uc2gKLS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3Bh
cnR5L2h0bWw1bGliL3BhcnNlLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9odG1sNWxpYi9weXRlc3QuaW5pCi0vTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9o
dG1sNWxpYi9yZXF1aXJlbWVudHMtaW5zdGFsbC5zaAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaHRtbDVsaWIvcmVxdWlyZW1l
bnRzLW9wdGlvbmFsLnR4dAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaHRtbDVsaWIvcmVxdWlyZW1lbnRzLXRlc3QudHh0Ci0v
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9w
YXJ0eS9odG1sNWxpYi9yZXF1aXJlbWVudHMudHh0Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9odG1sNWxpYi9zZXR1cC5jZmcK
LS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJk
X3BhcnR5L2h0bWw1bGliL3NldHVwLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9odG1sNWxpYi90b3guaW5pCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3Ro
aXJkX3BhcnR5L2h5cGVyL2h5cGVyL2NvbW1vbi93M2MtaW1wb3J0LmxvZyBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaHlwZXIv
aHlwZXIvY29tbW9uL3czYy1pbXBvcnQubG9nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAzZWUwODE4MTE0MDhlN2Q4N2MxMDMxOTQ0N2YwNTc4NDg5MjZlZmZiLi4wMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaHlwZXIvaHlwZXIvY29tbW9u
L3czYy1pbXBvcnQubG9nCisrKyAvZGV2L251bGwKQEAgLTEsMjMgKzAsMCBAQAotVGhlIHRlc3Rz
IGluIHRoaXMgZGlyZWN0b3J5IHdlcmUgaW1wb3J0ZWQgZnJvbSB0aGUgVzNDIHJlcG9zaXRvcnku
Ci1EbyBOT1QgbW9kaWZ5IHRoZXNlIHRlc3RzIGRpcmVjdGx5IGluIFdlYktpdC4KLUluc3RlYWQs
IGNyZWF0ZSBhIHB1bGwgcmVxdWVzdCBvbiB0aGUgV1BUIGdpdGh1YjoKLQlodHRwczovL2dpdGh1
Yi5jb20vd2ViLXBsYXRmb3JtLXRlc3RzL3dwdAotCi1UaGVuIHJ1biB0aGUgVG9vbHMvU2NyaXB0
cy9pbXBvcnQtdzNjLXRlc3RzIGluIFdlYktpdCB0byByZWltcG9ydAotCi1EbyBOT1QgbW9kaWZ5
IG9yIHJlbW92ZSB0aGlzIGZpbGUuCi0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotUHJvcGVydGllcyByZXF1
aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotUHJvcGVydHkgdmFsdWVzIHJlcXVpcmluZyB2
ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLUxpc3Qgb2YgZmlsZXM6Ci0v
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9w
YXJ0eS9oeXBlci9oeXBlci9jb21tb24vX19pbml0X18ucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2h5cGVyL2h5cGVyL2Nv
bW1vbi9idWZzb2NrZXQucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2h5cGVyL2h5cGVyL2NvbW1vbi9jb25uZWN0aW9uLnB5
Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS9oeXBlci9oeXBlci9jb21tb24vZGVjb2Rlci5weQotL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaHlwZXIvaHlwZXIv
Y29tbW9uL2V4Y2VwdGlvbnMucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2h5cGVyL2h5cGVyL2NvbW1vbi9oZWFkZXJzLnB5
Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS9oeXBlci9oeXBlci9jb21tb24vdXRpbC5weQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9oeXBl
ci9oeXBlci9oMi9fX2luaXRfXy5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaHlwZXIvaHlwZXIvaDIvX19pbml0X18ucHkK
b2xkIG1vZGUgMTAwNjQ0Cm5ldyBtb2RlIDEwMDc1NQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9oeXBlci9o
eXBlci9oMi9jb25maWcucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2h5cGVyL2h5cGVyL2gyL2NvbmZpZy5weQpvbGQgbW9k
ZSAxMDA2NDQKbmV3IG1vZGUgMTAwNzU1CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2h5cGVyL2h5cGVyL2gy
L2Nvbm5lY3Rpb24ucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2h5cGVyL2h5cGVyL2gyL2Nvbm5lY3Rpb24ucHkKb2xkIG1v
ZGUgMTAwNjQ0Cm5ldyBtb2RlIDEwMDc1NQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9oeXBlci9oeXBlci9o
Mi9lcnJvcnMucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3RoaXJkX3BhcnR5L2h5cGVyL2h5cGVyL2gyL2Vycm9ycy5weQpvbGQgbW9kZSAxMDA2
NDQKbmV3IG1vZGUgMTAwNzU1CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2h5cGVyL2h5cGVyL2gyL2V2ZW50
cy5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
dGhpcmRfcGFydHkvaHlwZXIvaHlwZXIvaDIvZXZlbnRzLnB5Cm9sZCBtb2RlIDEwMDY0NApuZXcg
bW9kZSAxMDA3NTUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaHlwZXIvaHlwZXIvaDIvZXhjZXB0aW9ucy5w
eSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhp
cmRfcGFydHkvaHlwZXIvaHlwZXIvaDIvZXhjZXB0aW9ucy5weQpvbGQgbW9kZSAxMDA2NDQKbmV3
IG1vZGUgMTAwNzU1CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2h5cGVyL2h5cGVyL2gyL2ZyYW1lX2J1ZmZl
ci5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
dGhpcmRfcGFydHkvaHlwZXIvaHlwZXIvaDIvZnJhbWVfYnVmZmVyLnB5Cm9sZCBtb2RlIDEwMDY0
NApuZXcgbW9kZSAxMDA3NTUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaHlwZXIvaHlwZXIvaDIvc2V0dGlu
Z3MucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3RoaXJkX3BhcnR5L2h5cGVyL2h5cGVyL2gyL3NldHRpbmdzLnB5Cm9sZCBtb2RlIDEwMDY0NApu
ZXcgbW9kZSAxMDA3NTUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaHlwZXIvaHlwZXIvaDIvc3RyZWFtLnB5
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS9oeXBlci9oeXBlci9oMi9zdHJlYW0ucHkKb2xkIG1vZGUgMTAwNjQ0Cm5ldyBtb2Rl
IDEwMDc1NQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9oeXBlci9oeXBlci9oMi91dGlsaXRpZXMucHkgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3Bh
cnR5L2h5cGVyL2h5cGVyL2gyL3V0aWxpdGllcy5weQpvbGQgbW9kZSAxMDA2NDQKbmV3IG1vZGUg
MTAwNzU1CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2h5cGVyL2h5cGVyL2gyL3czYy1pbXBvcnQubG9nIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9w
YXJ0eS9oeXBlci9oeXBlci9oMi93M2MtaW1wb3J0LmxvZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMzkwZTI2OTRmZTM2NWIyMTBmNDdmYTMyN2ZhZDRmYzJjYzg5MWNjNi4uMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2h5cGVyL2h5cGVy
L2gyL3czYy1pbXBvcnQubG9nCisrKyAvZGV2L251bGwKQEAgLTEsMjcgKzAsMCBAQAotVGhlIHRl
c3RzIGluIHRoaXMgZGlyZWN0b3J5IHdlcmUgaW1wb3J0ZWQgZnJvbSB0aGUgVzNDIHJlcG9zaXRv
cnkuCi1EbyBOT1QgbW9kaWZ5IHRoZXNlIHRlc3RzIGRpcmVjdGx5IGluIFdlYktpdC4KLUluc3Rl
YWQsIGNyZWF0ZSBhIHB1bGwgcmVxdWVzdCBvbiB0aGUgV1BUIGdpdGh1YjoKLQlodHRwczovL2dp
dGh1Yi5jb20vd2ViLXBsYXRmb3JtLXRlc3RzL3dwdAotCi1UaGVuIHJ1biB0aGUgVG9vbHMvU2Ny
aXB0cy9pbXBvcnQtdzNjLXRlc3RzIGluIFdlYktpdCB0byByZWltcG9ydAotCi1EbyBOT1QgbW9k
aWZ5IG9yIHJlbW92ZSB0aGlzIGZpbGUuCi0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotUHJvcGVydGllcyBy
ZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotUHJvcGVydHkgdmFsdWVzIHJlcXVpcmlu
ZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLUxpc3Qgb2YgZmlsZXM6
Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS9oeXBlci9oeXBlci9oMi9fX2luaXRfXy5weQotL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaHlwZXIvaHlwZXIvaDIv
Y29uZmlnLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy90aGlyZF9wYXJ0eS9oeXBlci9oeXBlci9oMi9jb25uZWN0aW9uLnB5Ci0vTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9oeXBl
ci9oeXBlci9oMi9lcnJvcnMucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2h5cGVyL2h5cGVyL2gyL2V2ZW50cy5weQotL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFy
dHkvaHlwZXIvaHlwZXIvaDIvZXhjZXB0aW9ucy5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaHlwZXIvaHlwZXIvaDIvZnJh
bWVfYnVmZmVyLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy90aGlyZF9wYXJ0eS9oeXBlci9oeXBlci9oMi9zZXR0aW5ncy5weQotL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaHlw
ZXIvaHlwZXIvaDIvc3RyZWFtLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9oeXBlci9oeXBlci9oMi91dGlsaXRpZXMucHkK
LS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJk
X3BhcnR5L2h5cGVyL2h5cGVyL2gyL3dpbmRvd3MucHkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaHlwZXIv
aHlwZXIvaDIvd2luZG93cy5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaHlwZXIvaHlwZXIvaDIvd2luZG93cy5weQpvbGQg
bW9kZSAxMDA2NDQKbmV3IG1vZGUgMTAwNzU1CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2h5cGVyL2h5cGVy
L2h0dHAxMS93M2MtaW1wb3J0LmxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaHlwZXIvaHlwZXIvaHR0cDExL3czYy1pbXBv
cnQubG9nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4Y2I3Y2U3NWZkMjBiYmU2M2Nm
OWUyMDI4MThiODU0MTU1MGQ3YjgxLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvdGhpcmRfcGFydHkvaHlwZXIvaHlwZXIvaHR0cDExL3czYy1pbXBvcnQubG9nCisrKyAv
ZGV2L251bGwKQEAgLTEsMjAgKzAsMCBAQAotVGhlIHRlc3RzIGluIHRoaXMgZGlyZWN0b3J5IHdl
cmUgaW1wb3J0ZWQgZnJvbSB0aGUgVzNDIHJlcG9zaXRvcnkuCi1EbyBOT1QgbW9kaWZ5IHRoZXNl
IHRlc3RzIGRpcmVjdGx5IGluIFdlYktpdC4KLUluc3RlYWQsIGNyZWF0ZSBhIHB1bGwgcmVxdWVz
dCBvbiB0aGUgV1BUIGdpdGh1YjoKLQlodHRwczovL2dpdGh1Yi5jb20vd2ViLXBsYXRmb3JtLXRl
c3RzL3dwdAotCi1UaGVuIHJ1biB0aGUgVG9vbHMvU2NyaXB0cy9pbXBvcnQtdzNjLXRlc3RzIGlu
IFdlYktpdCB0byByZWltcG9ydAotCi1EbyBOT1QgbW9kaWZ5IG9yIHJlbW92ZSB0aGlzIGZpbGUu
Ci0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLQotUHJvcGVydGllcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVz
OgotTm9uZQotUHJvcGVydHkgdmFsdWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25l
Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0KLUxpc3Qgb2YgZmlsZXM6Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9oeXBlci9oeXBlci9odHRw
MTEvX19pbml0X18ucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2h5cGVyL2h5cGVyL2h0dHAxMS9jb25uZWN0aW9uLnB5Ci0v
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9w
YXJ0eS9oeXBlci9oeXBlci9odHRwMTEvcGFyc2VyLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9oeXBlci9oeXBlci9odHRw
MTEvcmVzcG9uc2UucHkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaHlwZXIvaHlwZXIvaHR0cDIwL2Nvbm5l
Y3Rpb24ucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3RoaXJkX3BhcnR5L2h5cGVyL2h5cGVyL2h0dHAyMC9jb25uZWN0aW9uLnB5CmluZGV4IDNj
MzkyNzY3MWY1NjdkMGIzMzE0YThkNWM1ZDU2MTgwYWI2YTI2OTMuLjEyMDc2Y2RhZjE0ZWFkMzcw
ZGU0ZTBlNmI1NzMwYTdmOWIyNTE3YzUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaHlwZXIvaHlwZXIvaHR0
cDIwL2Nvbm5lY3Rpb24ucHkKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9oeXBlci9oeXBlci9odHRwMjAvY29ubmVjdGlv
bi5weQpAQCAtNSw5ICs1LDkgQEAgaHlwZXIvaHR0cDIwL2Nvbm5lY3Rpb24KIAogT2JqZWN0cyB0
aGF0IGJ1aWxkIGh5cGVyJ3MgY29ubmVjdGlvbi1sZXZlbCBIVFRQLzIgYWJzdHJhY3Rpb24uCiAi
IiIKLWZyb20gLi5oMiBpbXBvcnQgY29ubmVjdGlvbiBhcyBoMkNvbm5lY3Rpb24KLWZyb20gLi5o
MiBpbXBvcnQgZXZlbnRzIGFzIGgyRXZlbnRzCi1mcm9tIC4uaDIgaW1wb3J0IHNldHRpbmdzIGFz
IGgyU2V0dGluZ3MKK2ltcG9ydCBoMi5jb25uZWN0aW9uCitpbXBvcnQgaDIuZXZlbnRzCitpbXBv
cnQgaDIuc2V0dGluZ3MKIAogZnJvbSAuLmNvbXBhdCBpbXBvcnQgc3NsCiBmcm9tIC4udGxzIGlt
cG9ydCB3cmFwX3NvY2tldCwgSDJfTlBOX1BST1RPQ09MUywgSDJDX1BST1RPQ09MCkBAIC0xODUs
NyArMTg1LDcgQEAgY2xhc3MgSFRUUDIwQ29ubmVjdGlvbihvYmplY3QpOgogICAgICAgICB1c2Vy
cyBzaG91bGQgYmUgc3Ryb25nbHkgZGlzY291cmFnZWQgZnJvbSBtZXNzaW5nIGFib3V0IHdpdGgg
Y29ubmVjdGlvbgogICAgICAgICBvYmplY3RzIHRoZW1zZWx2ZXMuCiAgICAgICAgICIiIgotICAg
ICAgICBzZWxmLl9jb25uID0gX0xvY2tlZE9iamVjdChoMkNvbm5lY3Rpb24uSDJDb25uZWN0aW9u
KCkpCisgICAgICAgIHNlbGYuX2Nvbm4gPSBfTG9ja2VkT2JqZWN0KGgyLmNvbm5lY3Rpb24uSDJD
b25uZWN0aW9uKCkpCiAKICAgICAgICAgIyBTdHJlYW1zIGFyZSBzdG9yZWQgaW4gYSBkaWN0aW9u
YXJ5IGtleWVkIG9mZiB0aGVpciBzdHJlYW0gSURzLiBXZQogICAgICAgICAjIGFsc28gc2F2ZSB0
aGUgbW9zdCByZWNlbnQgb25lIGZvciBlYXN5IGFjY2VzcyB3aXRob3V0IGhhdmluZyB0byB3YWxr
CkBAIC0zODcsNyArMzg3LDcgQEAgY2xhc3MgSFRUUDIwQ29ubmVjdGlvbihvYmplY3QpOgogICAg
ICAgICB3aXRoIHNlbGYuX2Nvbm4gYXMgY29ubjoKICAgICAgICAgICAgIGNvbm4uaW5pdGlhdGVf
dXBncmFkZV9jb25uZWN0aW9uKCkKICAgICAgICAgICAgIGNvbm4udXBkYXRlX3NldHRpbmdzKAot
ICAgICAgICAgICAgICAgIHtoMlNldHRpbmdzLkVOQUJMRV9QVVNIOiBpbnQoc2VsZi5fZW5hYmxl
X3B1c2gpfQorICAgICAgICAgICAgICAgIHtoMi5zZXR0aW5ncy5TZXR0aW5nQ29kZXMuRU5BQkxF
X1BVU0g6IGludChzZWxmLl9lbmFibGVfcHVzaCl9CiAgICAgICAgICAgICApCiAgICAgICAgIHNl
bGYuX3NlbmRfb3V0c3RhbmRpbmdfZGF0YSgpCiAKQEAgLTQwOCw3ICs0MDgsNyBAQCBjbGFzcyBI
VFRQMjBDb25uZWN0aW9uKG9iamVjdCk6CiAgICAgICAgIHdpdGggc2VsZi5fY29ubiBhcyBjb25u
OgogICAgICAgICAgICAgY29ubi5pbml0aWF0ZV9jb25uZWN0aW9uKCkKICAgICAgICAgICAgIGNv
bm4udXBkYXRlX3NldHRpbmdzKAotICAgICAgICAgICAgICAgIHtoMlNldHRpbmdzLkVOQUJMRV9Q
VVNIOiBpbnQoc2VsZi5fZW5hYmxlX3B1c2gpfQorICAgICAgICAgICAgICAgIHtoMi5zZXR0aW5n
cy5TZXR0aW5nQ29kZXMuRU5BQkxFX1BVU0g6IGludChzZWxmLl9lbmFibGVfcHVzaCl9CiAgICAg
ICAgICAgICApCiAgICAgICAgIHNlbGYuX3NlbmRfb3V0c3RhbmRpbmdfZGF0YSgpCiAKQEAgLTY3
MywxMCArNjczLDEwIEBAIGNsYXNzIEhUVFAyMENvbm5lY3Rpb24ob2JqZWN0KToKICAgICAgICAg
ICAgIHNlbGYucmVjZW50X3JlY3Zfc3RyZWFtcyB8PSBzdHJlYW1faWRzCiAKICAgICAgICAgZm9y
IGV2ZW50IGluIGV2ZW50czoKLSAgICAgICAgICAgIGlmIGlzaW5zdGFuY2UoZXZlbnQsIGgyRXZl
bnRzLkRhdGFSZWNlaXZlZCk6CisgICAgICAgICAgICBpZiBpc2luc3RhbmNlKGV2ZW50LCBoMi5l
dmVudHMuRGF0YVJlY2VpdmVkKToKICAgICAgICAgICAgICAgICBzZWxmLl9hZGp1c3RfcmVjZWl2
ZV93aW5kb3coZXZlbnQuZmxvd19jb250cm9sbGVkX2xlbmd0aCkKICAgICAgICAgICAgICAgICBz
ZWxmLnN0cmVhbXNbZXZlbnQuc3RyZWFtX2lkXS5yZWNlaXZlX2RhdGEoZXZlbnQpCi0gICAgICAg
ICAgICBlbGlmIGlzaW5zdGFuY2UoZXZlbnQsIGgyRXZlbnRzLlB1c2hlZFN0cmVhbVJlY2VpdmVk
KToKKyAgICAgICAgICAgIGVsaWYgaXNpbnN0YW5jZShldmVudCwgaDIuZXZlbnRzLlB1c2hlZFN0
cmVhbVJlY2VpdmVkKToKICAgICAgICAgICAgICAgICBpZiBzZWxmLl9lbmFibGVfcHVzaDoKICAg
ICAgICAgICAgICAgICAgICAgc2VsZi5fbmV3X3N0cmVhbShldmVudC5wdXNoZWRfc3RyZWFtX2lk
LCBsb2NhbF9jbG9zZWQ9VHJ1ZSkKICAgICAgICAgICAgICAgICAgICAgc2VsZi5zdHJlYW1zW2V2
ZW50LnBhcmVudF9zdHJlYW1faWRdLnJlY2VpdmVfcHVzaChldmVudCkKQEAgLTY4NiwxNyArNjg2
LDE3IEBAIGNsYXNzIEhUVFAyMENvbm5lY3Rpb24ob2JqZWN0KToKICAgICAgICAgICAgICAgICAg
ICAgIyBjbGllbnQgYWN0aW9uIHVuZGVmaW5lZCB3aGVuIHRoZXkgZG8gaXQgYW55d2F5LiBTbyB3
ZQogICAgICAgICAgICAgICAgICAgICAjIGp1c3QgcmVmdXNlIHRoZSBzdHJlYW0gYW5kIGdvIGFi
b3V0IG91ciBidXNpbmVzcy4KICAgICAgICAgICAgICAgICAgICAgc2VsZi5fc2VuZF9yc3RfZnJh
bWUoZXZlbnQucHVzaGVkX3N0cmVhbV9pZCwgNykKLSAgICAgICAgICAgIGVsaWYgaXNpbnN0YW5j
ZShldmVudCwgaDJFdmVudHMuUmVzcG9uc2VSZWNlaXZlZCk6CisgICAgICAgICAgICBlbGlmIGlz
aW5zdGFuY2UoZXZlbnQsIGgyLmV2ZW50cy5SZXNwb25zZVJlY2VpdmVkKToKICAgICAgICAgICAg
ICAgICBzZWxmLnN0cmVhbXNbZXZlbnQuc3RyZWFtX2lkXS5yZWNlaXZlX3Jlc3BvbnNlKGV2ZW50
KQotICAgICAgICAgICAgZWxpZiBpc2luc3RhbmNlKGV2ZW50LCBoMkV2ZW50cy5UcmFpbGVyc1Jl
Y2VpdmVkKToKKyAgICAgICAgICAgIGVsaWYgaXNpbnN0YW5jZShldmVudCwgaDIuZXZlbnRzLlRy
YWlsZXJzUmVjZWl2ZWQpOgogICAgICAgICAgICAgICAgIHNlbGYuc3RyZWFtc1tldmVudC5zdHJl
YW1faWRdLnJlY2VpdmVfdHJhaWxlcnMoZXZlbnQpCi0gICAgICAgICAgICBlbGlmIGlzaW5zdGFu
Y2UoZXZlbnQsIGgyRXZlbnRzLlN0cmVhbUVuZGVkKToKKyAgICAgICAgICAgIGVsaWYgaXNpbnN0
YW5jZShldmVudCwgaDIuZXZlbnRzLlN0cmVhbUVuZGVkKToKICAgICAgICAgICAgICAgICBzZWxm
LnN0cmVhbXNbZXZlbnQuc3RyZWFtX2lkXS5yZWNlaXZlX2VuZF9zdHJlYW0oZXZlbnQpCi0gICAg
ICAgICAgICBlbGlmIGlzaW5zdGFuY2UoZXZlbnQsIGgyRXZlbnRzLlN0cmVhbVJlc2V0KToKKyAg
ICAgICAgICAgIGVsaWYgaXNpbnN0YW5jZShldmVudCwgaDIuZXZlbnRzLlN0cmVhbVJlc2V0KToK
ICAgICAgICAgICAgICAgICBpZiBldmVudC5zdHJlYW1faWQgbm90IGluIHNlbGYucmVzZXRfc3Ry
ZWFtczoKICAgICAgICAgICAgICAgICAgICAgc2VsZi5yZXNldF9zdHJlYW1zLmFkZChldmVudC5z
dHJlYW1faWQpCiAgICAgICAgICAgICAgICAgICAgIHNlbGYuc3RyZWFtc1tldmVudC5zdHJlYW1f
aWRdLnJlY2VpdmVfcmVzZXQoZXZlbnQpCi0gICAgICAgICAgICBlbGlmIGlzaW5zdGFuY2UoZXZl
bnQsIGgyRXZlbnRzLkNvbm5lY3Rpb25UZXJtaW5hdGVkKToKKyAgICAgICAgICAgIGVsaWYgaXNp
bnN0YW5jZShldmVudCwgaDIuZXZlbnRzLkNvbm5lY3Rpb25UZXJtaW5hdGVkKToKICAgICAgICAg
ICAgICAgICAjIElmIHdlIGdldCBHb0F3YXkgd2l0aCBlcnJvciBjb2RlIHplcm8sIHdlIGFyZSBk
b2luZyBhCiAgICAgICAgICAgICAgICAgIyBncmFjZWZ1bCBzaHV0ZG93biBhbmQgYWxsIGlzIHdl
bGwuIE90aGVyd2lzZSwgdGhyb3cgYW4KICAgICAgICAgICAgICAgICAjIGV4Y2VwdGlvbi4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvdGhpcmRfcGFydHkvaHlwZXIvaHlwZXIvaHR0cDIwL3czYy1pbXBvcnQubG9nIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9o
eXBlci9oeXBlci9odHRwMjAvdzNjLWltcG9ydC5sb2cKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDYzYWY4NjU1ZWM2MGQ3ZjE0ZGU4Y2UzYWNlYzQwMjBkYzk0ZTQ0NjQuLjAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9oeXBlci9oeXBlci9o
dHRwMjAvdzNjLWltcG9ydC5sb2cKKysrIC9kZXYvbnVsbApAQCAtMSwyNCArMCwwIEBACi1UaGUg
dGVzdHMgaW4gdGhpcyBkaXJlY3Rvcnkgd2VyZSBpbXBvcnRlZCBmcm9tIHRoZSBXM0MgcmVwb3Np
dG9yeS4KLURvIE5PVCBtb2RpZnkgdGhlc2UgdGVzdHMgZGlyZWN0bHkgaW4gV2ViS2l0LgotSW5z
dGVhZCwgY3JlYXRlIGEgcHVsbCByZXF1ZXN0IG9uIHRoZSBXUFQgZ2l0aHViOgotCWh0dHBzOi8v
Z2l0aHViLmNvbS93ZWItcGxhdGZvcm0tdGVzdHMvd3B0Ci0KLVRoZW4gcnVuIHRoZSBUb29scy9T
Y3JpcHRzL2ltcG9ydC13M2MtdGVzdHMgaW4gV2ViS2l0IHRvIHJlaW1wb3J0Ci0KLURvIE5PVCBt
b2RpZnkgb3IgcmVtb3ZlIHRoaXMgZmlsZS4KLQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1Qcm9wZXJ0aWVz
IHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi1Qcm9wZXJ0eSB2YWx1ZXMgcmVxdWly
aW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotTGlzdCBvZiBmaWxl
czoKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3Ro
aXJkX3BhcnR5L2h5cGVyL2h5cGVyL2h0dHAyMC9fX2luaXRfXy5weQotL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaHlwZXIvaHlw
ZXIvaHR0cDIwL2Nvbm5lY3Rpb24ucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2h5cGVyL2h5cGVyL2h0dHAyMC9lcnJvcnMu
cHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3Ro
aXJkX3BhcnR5L2h5cGVyL2h5cGVyL2h0dHAyMC9leGNlcHRpb25zLnB5Ci0vTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9oeXBlci9o
eXBlci9odHRwMjAvcmVzcG9uc2UucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2h5cGVyL2h5cGVyL2h0dHAyMC9zdHJlYW0u
cHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3Ro
aXJkX3BhcnR5L2h5cGVyL2h5cGVyL2h0dHAyMC91dGlsLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9oeXBlci9oeXBlci9o
dHRwMjAvd2luZG93LnB5CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2h5cGVyL2h5cGVyL3BhY2thZ2VzL2hw
YWNrL3czYy1pbXBvcnQubG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9oeXBlci9oeXBlci9wYWNrYWdlcy9ocGFjay93M2Mt
aW1wb3J0LmxvZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNWU1MDA1NDU3NjM0ZmJh
MzA0NGE2OGQ2OGFmODE1MDgwYzRkYTUzYy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2h5cGVyL2h5cGVyL3BhY2thZ2VzL2hwYWNrL3czYy1pbXBv
cnQubG9nCisrKyAvZGV2L251bGwKQEAgLTEsMjMgKzAsMCBAQAotVGhlIHRlc3RzIGluIHRoaXMg
ZGlyZWN0b3J5IHdlcmUgaW1wb3J0ZWQgZnJvbSB0aGUgVzNDIHJlcG9zaXRvcnkuCi1EbyBOT1Qg
bW9kaWZ5IHRoZXNlIHRlc3RzIGRpcmVjdGx5IGluIFdlYktpdC4KLUluc3RlYWQsIGNyZWF0ZSBh
IHB1bGwgcmVxdWVzdCBvbiB0aGUgV1BUIGdpdGh1YjoKLQlodHRwczovL2dpdGh1Yi5jb20vd2Vi
LXBsYXRmb3JtLXRlc3RzL3dwdAotCi1UaGVuIHJ1biB0aGUgVG9vbHMvU2NyaXB0cy9pbXBvcnQt
dzNjLXRlc3RzIGluIFdlYktpdCB0byByZWltcG9ydAotCi1EbyBOT1QgbW9kaWZ5IG9yIHJlbW92
ZSB0aGlzIGZpbGUuCi0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotUHJvcGVydGllcyByZXF1aXJpbmcgdmVu
ZG9yIHByZWZpeGVzOgotTm9uZQotUHJvcGVydHkgdmFsdWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJl
Zml4ZXM6Ci1Ob25lCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLUxpc3Qgb2YgZmlsZXM6Ci0vTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9oeXBl
ci9oeXBlci9wYWNrYWdlcy9ocGFjay9fX2luaXRfXy5weQotL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaHlwZXIvaHlwZXIvcGFj
a2FnZXMvaHBhY2svY29tcGF0LnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9oeXBlci9oeXBlci9wYWNrYWdlcy9ocGFjay9l
eGNlcHRpb25zLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy90aGlyZF9wYXJ0eS9oeXBlci9oeXBlci9wYWNrYWdlcy9ocGFjay9ocGFjay5weQot
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRf
cGFydHkvaHlwZXIvaHlwZXIvcGFja2FnZXMvaHBhY2svaHBhY2tfY29tcGF0LnB5Ci0vTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9o
eXBlci9oeXBlci9wYWNrYWdlcy9ocGFjay9odWZmbWFuLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9oeXBlci9oeXBlci9w
YWNrYWdlcy9ocGFjay9odWZmbWFuX2NvbnN0YW50cy5weQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9oeXBl
ci9oeXBlci9wYWNrYWdlcy9oeXBlcmZyYW1lL3czYy1pbXBvcnQubG9nIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9oeXBlci9o
eXBlci9wYWNrYWdlcy9oeXBlcmZyYW1lL3czYy1pbXBvcnQubG9nCmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCBhN2YwYmZmMzk2NjU2YWEyNmI3ZjY3NjQ2MmRmMjFlNzBlNmRjMzg0Li4w
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaHlwZXIv
aHlwZXIvcGFja2FnZXMvaHlwZXJmcmFtZS93M2MtaW1wb3J0LmxvZworKysgL2Rldi9udWxsCkBA
IC0xLDE5ICswLDAgQEAKLVRoZSB0ZXN0cyBpbiB0aGlzIGRpcmVjdG9yeSB3ZXJlIGltcG9ydGVk
IGZyb20gdGhlIFczQyByZXBvc2l0b3J5LgotRG8gTk9UIG1vZGlmeSB0aGVzZSB0ZXN0cyBkaXJl
Y3RseSBpbiBXZWJLaXQuCi1JbnN0ZWFkLCBjcmVhdGUgYSBwdWxsIHJlcXVlc3Qgb24gdGhlIFdQ
VCBnaXRodWI6Ci0JaHR0cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQKLQot
VGhlbiBydW4gdGhlIFRvb2xzL1NjcmlwdHMvaW1wb3J0LXczYy10ZXN0cyBpbiBXZWJLaXQgdG8g
cmVpbXBvcnQKLQotRG8gTk9UIG1vZGlmeSBvciByZW1vdmUgdGhpcyBmaWxlLgotCi0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0KLVByb3BlcnRpZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLVBy
b3BlcnR5IHZhbHVlcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tCi1MaXN0IG9mIGZpbGVzOgotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaHlwZXIvaHlwZXIvcGFja2FnZXMvaHlwZXJm
cmFtZS9fX2luaXRfXy5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaHlwZXIvaHlwZXIvcGFja2FnZXMvaHlwZXJmcmFtZS9m
bGFncy5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvdGhpcmRfcGFydHkvaHlwZXIvaHlwZXIvcGFja2FnZXMvaHlwZXJmcmFtZS9mcmFtZS5weQpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy90aGlyZF9wYXJ0eS9oeXBlci9oeXBlci9wYWNrYWdlcy9yZmMzOTg2L3czYy1pbXBvcnQu
bG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90
aGlyZF9wYXJ0eS9oeXBlci9oeXBlci9wYWNrYWdlcy9yZmMzOTg2L3czYy1pbXBvcnQubG9nCmRl
bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkZjgyYzQ4YWMwZTA3OWRlMjRiNWZmYzc3OGQy
OWNjODNmYjc1NjE1Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0t
LSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhp
cmRfcGFydHkvaHlwZXIvaHlwZXIvcGFja2FnZXMvcmZjMzk4Ni93M2MtaW1wb3J0LmxvZworKysg
L2Rldi9udWxsCkBAIC0xLDI1ICswLDAgQEAKLVRoZSB0ZXN0cyBpbiB0aGlzIGRpcmVjdG9yeSB3
ZXJlIGltcG9ydGVkIGZyb20gdGhlIFczQyByZXBvc2l0b3J5LgotRG8gTk9UIG1vZGlmeSB0aGVz
ZSB0ZXN0cyBkaXJlY3RseSBpbiBXZWJLaXQuCi1JbnN0ZWFkLCBjcmVhdGUgYSBwdWxsIHJlcXVl
c3Qgb24gdGhlIFdQVCBnaXRodWI6Ci0JaHR0cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9ybS10
ZXN0cy93cHQKLQotVGhlbiBydW4gdGhlIFRvb2xzL1NjcmlwdHMvaW1wb3J0LXczYy10ZXN0cyBp
biBXZWJLaXQgdG8gcmVpbXBvcnQKLQotRG8gTk9UIG1vZGlmeSBvciByZW1vdmUgdGhpcyBmaWxl
LgotCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0KLVByb3BlcnRpZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhl
czoKLU5vbmUKLVByb3BlcnR5IHZhbHVlcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9u
ZQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tCi1MaXN0IG9mIGZpbGVzOgotL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaHlwZXIvaHlwZXIvcGFj
a2FnZXMvcmZjMzk4Ni9MSUNFTlNFCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9oeXBlci9oeXBlci9wYWNrYWdlcy9yZmMzOTg2
L19faW5pdF9fLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy90aGlyZF9wYXJ0eS9oeXBlci9oeXBlci9wYWNrYWdlcy9yZmMzOTg2L2FwaS5weQot
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRf
cGFydHkvaHlwZXIvaHlwZXIvcGFja2FnZXMvcmZjMzk4Ni9jb21wYXQucHkKLS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2h5cGVy
L2h5cGVyL3BhY2thZ2VzL3JmYzM5ODYvZXhjZXB0aW9ucy5weQotL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaHlwZXIvaHlwZXIv
cGFja2FnZXMvcmZjMzk4Ni9taXNjLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9oeXBlci9oeXBlci9wYWNrYWdlcy9yZmMz
OTg2L25vcm1hbGl6ZXJzLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9oeXBlci9oeXBlci9wYWNrYWdlcy9yZmMzOTg2L3Bh
cnNlcmVzdWx0LnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy90aGlyZF9wYXJ0eS9oeXBlci9oeXBlci9wYWNrYWdlcy9yZmMzOTg2L3VyaS5weQpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy90aGlyZF9wYXJ0eS9oeXBlci9oeXBlci9wYWNrYWdlcy93M2MtaW1wb3J0LmxvZyBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFy
dHkvaHlwZXIvaHlwZXIvcGFja2FnZXMvdzNjLWltcG9ydC5sb2cKZGVsZXRlZCBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDc4Nzk0MWQyYWE0ZWQ3OTExMTgyYzI4NTIxMzgxZjcwMzUwOGEwOWQuLjAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9oeXBlci9o
eXBlci9wYWNrYWdlcy93M2MtaW1wb3J0LmxvZworKysgL2Rldi9udWxsCkBAIC0xLDE3ICswLDAg
QEAKLVRoZSB0ZXN0cyBpbiB0aGlzIGRpcmVjdG9yeSB3ZXJlIGltcG9ydGVkIGZyb20gdGhlIFcz
QyByZXBvc2l0b3J5LgotRG8gTk9UIG1vZGlmeSB0aGVzZSB0ZXN0cyBkaXJlY3RseSBpbiBXZWJL
aXQuCi1JbnN0ZWFkLCBjcmVhdGUgYSBwdWxsIHJlcXVlc3Qgb24gdGhlIFdQVCBnaXRodWI6Ci0J
aHR0cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQKLQotVGhlbiBydW4gdGhl
IFRvb2xzL1NjcmlwdHMvaW1wb3J0LXczYy10ZXN0cyBpbiBXZWJLaXQgdG8gcmVpbXBvcnQKLQot
RG8gTk9UIG1vZGlmeSBvciByZW1vdmUgdGhpcyBmaWxlLgotCi0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLVBy
b3BlcnRpZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLVByb3BlcnR5IHZhbHVl
cyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1MaXN0
IG9mIGZpbGVzOgotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvdGhpcmRfcGFydHkvaHlwZXIvaHlwZXIvcGFja2FnZXMvX19pbml0X18ucHkKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
dGhpcmRfcGFydHkvaHlwZXIvaHlwZXIvdzNjLWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2h5cGVyL2h5cGVy
L3czYy1pbXBvcnQubG9nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1OTllNjE5ZDNl
ZWZmNTQ4NTBiOTZmYTVhZTViNjRjNGQwZWUxMWI1Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaHlwZXIvaHlwZXIvdzNjLWltcG9ydC5sb2cKKysr
IC9kZXYvbnVsbApAQCAtMSwyNCArMCwwIEBACi1UaGUgdGVzdHMgaW4gdGhpcyBkaXJlY3Rvcnkg
d2VyZSBpbXBvcnRlZCBmcm9tIHRoZSBXM0MgcmVwb3NpdG9yeS4KLURvIE5PVCBtb2RpZnkgdGhl
c2UgdGVzdHMgZGlyZWN0bHkgaW4gV2ViS2l0LgotSW5zdGVhZCwgY3JlYXRlIGEgcHVsbCByZXF1
ZXN0IG9uIHRoZSBXUFQgZ2l0aHViOgotCWh0dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxhdGZvcm0t
dGVzdHMvd3B0Ci0KLVRoZW4gcnVuIHRoZSBUb29scy9TY3JpcHRzL2ltcG9ydC13M2MtdGVzdHMg
aW4gV2ViS2l0IHRvIHJlaW1wb3J0Ci0KLURvIE5PVCBtb2RpZnkgb3IgcmVtb3ZlIHRoaXMgZmls
ZS4KLQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1Qcm9wZXJ0aWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4
ZXM6Ci1Ob25lCi1Qcm9wZXJ0eSB2YWx1ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5v
bmUKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLQotTGlzdCBvZiBmaWxlczoKLS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2h5cGVyL2h5cGVyL19f
aW5pdF9fLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy90aGlyZF9wYXJ0eS9oeXBlci9oeXBlci9jZXJ0cy5wZW0KLS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2h5cGVyL2h5cGVy
L2NsaS5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvdGhpcmRfcGFydHkvaHlwZXIvaHlwZXIvY29tcGF0LnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9oeXBlci9oeXBlci9j
b250cmliLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy90aGlyZF9wYXJ0eS9oeXBlci9oeXBlci9odHRwbGliX2NvbXBhdC5weQotL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaHlw
ZXIvaHlwZXIvc3NsX2NvbXBhdC5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaHlwZXIvaHlwZXIvdGxzLnB5CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3Ro
aXJkX3BhcnR5L2h5cGVyZnJhbWUvaHlwZXJmcmFtZS5lZ2ctaW5mby93M2MtaW1wb3J0LmxvZyBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRf
cGFydHkvaHlwZXJmcmFtZS9oeXBlcmZyYW1lLmVnZy1pbmZvL3czYy1pbXBvcnQubG9nCmRlbGV0
ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhMDc2OWQ1MjRmOGZjMzMwMTQzNGQxNDZkYjI2N2I1
NWNlMjVhMmJjLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRf
cGFydHkvaHlwZXJmcmFtZS9oeXBlcmZyYW1lLmVnZy1pbmZvL3czYy1pbXBvcnQubG9nCisrKyAv
ZGV2L251bGwKQEAgLTEsMjAgKzAsMCBAQAotVGhlIHRlc3RzIGluIHRoaXMgZGlyZWN0b3J5IHdl
cmUgaW1wb3J0ZWQgZnJvbSB0aGUgVzNDIHJlcG9zaXRvcnkuCi1EbyBOT1QgbW9kaWZ5IHRoZXNl
IHRlc3RzIGRpcmVjdGx5IGluIFdlYktpdC4KLUluc3RlYWQsIGNyZWF0ZSBhIHB1bGwgcmVxdWVz
dCBvbiB0aGUgV1BUIGdpdGh1YjoKLQlodHRwczovL2dpdGh1Yi5jb20vd2ViLXBsYXRmb3JtLXRl
c3RzL3dwdAotCi1UaGVuIHJ1biB0aGUgVG9vbHMvU2NyaXB0cy9pbXBvcnQtdzNjLXRlc3RzIGlu
IFdlYktpdCB0byByZWltcG9ydAotCi1EbyBOT1QgbW9kaWZ5IG9yIHJlbW92ZSB0aGlzIGZpbGUu
Ci0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLQotUHJvcGVydGllcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVz
OgotTm9uZQotUHJvcGVydHkgdmFsdWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25l
Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0KLUxpc3Qgb2YgZmlsZXM6Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9oeXBlcmZyYW1lL2h5cGVy
ZnJhbWUuZWdnLWluZm8vUEtHLUlORk8KLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2h5cGVyZnJhbWUvaHlwZXJmcmFtZS5lZ2ct
aW5mby9TT1VSQ0VTLnR4dAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaHlwZXJmcmFtZS9oeXBlcmZyYW1lLmVnZy1pbmZvL2Rl
cGVuZGVuY3lfbGlua3MudHh0Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9oeXBlcmZyYW1lL2h5cGVyZnJhbWUuZWdnLWluZm8v
dG9wX2xldmVsLnR4dApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9oeXBlcmZyYW1lL2h5cGVyZnJhbWUvdzNj
LWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3RoaXJkX3BhcnR5L2h5cGVyZnJhbWUvaHlwZXJmcmFtZS93M2MtaW1wb3J0LmxvZwpk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZWRmNWI1ZjI4NGZlMmNjM2Q4NzBlNTg4YTkw
MDMzNjdhNmEzMGQ1OC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAot
LS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3Ro
aXJkX3BhcnR5L2h5cGVyZnJhbWUvaHlwZXJmcmFtZS93M2MtaW1wb3J0LmxvZworKysgL2Rldi9u
dWxsCkBAIC0xLDIwICswLDAgQEAKLVRoZSB0ZXN0cyBpbiB0aGlzIGRpcmVjdG9yeSB3ZXJlIGlt
cG9ydGVkIGZyb20gdGhlIFczQyByZXBvc2l0b3J5LgotRG8gTk9UIG1vZGlmeSB0aGVzZSB0ZXN0
cyBkaXJlY3RseSBpbiBXZWJLaXQuCi1JbnN0ZWFkLCBjcmVhdGUgYSBwdWxsIHJlcXVlc3Qgb24g
dGhlIFdQVCBnaXRodWI6Ci0JaHR0cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9ybS10ZXN0cy93
cHQKLQotVGhlbiBydW4gdGhlIFRvb2xzL1NjcmlwdHMvaW1wb3J0LXczYy10ZXN0cyBpbiBXZWJL
aXQgdG8gcmVpbXBvcnQKLQotRG8gTk9UIG1vZGlmeSBvciByZW1vdmUgdGhpcyBmaWxlLgotCi0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0KLVByb3BlcnRpZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5v
bmUKLVByb3BlcnR5IHZhbHVlcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tCi1MaXN0IG9mIGZpbGVzOgotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaHlwZXJmcmFtZS9oeXBlcmZyYW1l
L19faW5pdF9fLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy90aGlyZF9wYXJ0eS9oeXBlcmZyYW1lL2h5cGVyZnJhbWUvZXhjZXB0aW9ucy5weQot
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRf
cGFydHkvaHlwZXJmcmFtZS9oeXBlcmZyYW1lL2ZsYWdzLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9oeXBlcmZyYW1lL2h5
cGVyZnJhbWUvZnJhbWUucHkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaHlwZXJmcmFtZS90ZXN0L3czYy1p
bXBvcnQubG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy90aGlyZF9wYXJ0eS9oeXBlcmZyYW1lL3Rlc3QvdzNjLWltcG9ydC5sb2cKZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDJjZDY3YmY5ZjhjZGMwMGIzYWEyNzU3NmE0YWUyMjlmY2Vl
OWIzN2EuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0
eS9oeXBlcmZyYW1lL3Rlc3QvdzNjLWltcG9ydC5sb2cKKysrIC9kZXYvbnVsbApAQCAtMSwxOCAr
MCwwIEBACi1UaGUgdGVzdHMgaW4gdGhpcyBkaXJlY3Rvcnkgd2VyZSBpbXBvcnRlZCBmcm9tIHRo
ZSBXM0MgcmVwb3NpdG9yeS4KLURvIE5PVCBtb2RpZnkgdGhlc2UgdGVzdHMgZGlyZWN0bHkgaW4g
V2ViS2l0LgotSW5zdGVhZCwgY3JlYXRlIGEgcHVsbCByZXF1ZXN0IG9uIHRoZSBXUFQgZ2l0aHVi
OgotCWh0dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxhdGZvcm0tdGVzdHMvd3B0Ci0KLVRoZW4gcnVu
IHRoZSBUb29scy9TY3JpcHRzL2ltcG9ydC13M2MtdGVzdHMgaW4gV2ViS2l0IHRvIHJlaW1wb3J0
Ci0KLURvIE5PVCBtb2RpZnkgb3IgcmVtb3ZlIHRoaXMgZmlsZS4KLQotLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
Ci1Qcm9wZXJ0aWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi1Qcm9wZXJ0eSB2
YWx1ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQot
TGlzdCBvZiBmaWxlczoKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2h5cGVyZnJhbWUvdGVzdC90ZXN0X2ZsYWdzLnB5Ci0vTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0
eS9oeXBlcmZyYW1lL3Rlc3QvdGVzdF9mcmFtZXMucHkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaHlwZXJm
cmFtZS93M2MtaW1wb3J0LmxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaHlwZXJmcmFtZS93M2MtaW1wb3J0LmxvZwpkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZTY2YzQ0MDlhNTAxOTBmYjBlMzAwY2I1NGY2MmM0
NTFkYjRlNWYyOS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0g
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJk
X3BhcnR5L2h5cGVyZnJhbWUvdzNjLWltcG9ydC5sb2cKKysrIC9kZXYvbnVsbApAQCAtMSwyNCAr
MCwwIEBACi1UaGUgdGVzdHMgaW4gdGhpcyBkaXJlY3Rvcnkgd2VyZSBpbXBvcnRlZCBmcm9tIHRo
ZSBXM0MgcmVwb3NpdG9yeS4KLURvIE5PVCBtb2RpZnkgdGhlc2UgdGVzdHMgZGlyZWN0bHkgaW4g
V2ViS2l0LgotSW5zdGVhZCwgY3JlYXRlIGEgcHVsbCByZXF1ZXN0IG9uIHRoZSBXUFQgZ2l0aHVi
OgotCWh0dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxhdGZvcm0tdGVzdHMvd3B0Ci0KLVRoZW4gcnVu
IHRoZSBUb29scy9TY3JpcHRzL2ltcG9ydC13M2MtdGVzdHMgaW4gV2ViS2l0IHRvIHJlaW1wb3J0
Ci0KLURvIE5PVCBtb2RpZnkgb3IgcmVtb3ZlIHRoaXMgZmlsZS4KLQotLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
Ci1Qcm9wZXJ0aWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi1Qcm9wZXJ0eSB2
YWx1ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQot
TGlzdCBvZiBmaWxlczoKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2h5cGVyZnJhbWUvQ09OVFJJQlVUT1JTLnJzdAotL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkv
aHlwZXJmcmFtZS9ISVNUT1JZLnJzdAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaHlwZXJmcmFtZS9MSUNFTlNFCi0vTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9o
eXBlcmZyYW1lL01BTklGRVNULmluCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9oeXBlcmZyYW1lL1BLRy1JTkZPCi0vTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9o
eXBlcmZyYW1lL1JFQURNRS5yc3QKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2h5cGVyZnJhbWUvc2V0dXAuY2ZnCi0vTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9o
eXBlcmZyYW1lL3NldHVwLnB5CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L21vcmUtaXRlcnRvb2xzLy5naXRh
dHRyaWJ1dGVzIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy90aGlyZF9wYXJ0eS9tb3JlLWl0ZXJ0b29scy8uZ2l0YXR0cmlidXRlcwpuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li45YWFiYTdhOWZlOGViZTk0YTYzNTRkYmQ3MmY4ZWMzOTg1YjRiODExCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90
aGlyZF9wYXJ0eS9tb3JlLWl0ZXJ0b29scy8uZ2l0YXR0cmlidXRlcwpAQCAtMCwwICsxLDIgQEAK
K21vcmVfaXRlcnRvb2xzL21vcmUucHkgbWVyZ2U9dW5pb24KK21vcmVfaXRlcnRvb2xzL3Rlc3Rz
L3Rlc3RfbW9yZS5weSBtZXJnZT11bmlvbgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9tb3JlLWl0ZXJ0b29s
cy8uZ2l0aWdub3JlIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy90aGlyZF9wYXJ0eS9tb3JlLWl0ZXJ0b29scy8uZ2l0aWdub3JlCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjIyOTg5MWZiNDM2MDBkNmY1M2ZkNWNmOTQyYzVmMTJkMmM0NTYwMDMKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3Ro
aXJkX3BhcnR5L21vcmUtaXRlcnRvb2xzLy5naXRpZ25vcmUKQEAgLTAsMCArMSwzNCBAQAorKi5w
eVtjb10KKworIyBQYWNrYWdlcworKi5lZ2cKKyouZWdncworKi5lZ2ctaW5mbworZGlzdAorYnVp
bGQKK2VnZ3MKK3BhcnRzCitiaW4KK3Zhcgorc2Rpc3QKK2RldmVsb3AtZWdncworLmluc3RhbGxl
ZC5jZmcKKworIyBJbnN0YWxsZXIgbG9ncworcGlwLWxvZy50eHQKKworIyBVbml0IHRlc3QgLyBj
b3ZlcmFnZSByZXBvcnRzCisuY292ZXJhZ2UKKy50b3gKKy5ub3NlaWRzCisKKyMgRG9jcyBieSBT
cGhpbngKK19idWlsZAorCisjIEVudmlyb25tZW50CisuZW52CisKKyMgSURFIGZpbGVzCisuaWRl
YQorLnZzY29kZQorLkRTX1N0b3JlDQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9tb3JlLWl0ZXJ0b29scy8u
dHJhdmlzLnltbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvdGhpcmRfcGFydHkvbW9yZS1pdGVydG9vbHMvLnRyYXZpcy55bWwKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
MDA4ZmIwYzY3ZThlZTM0OWU1M2Y0MjMxNDBmM2VkYzBkYzdmNTEzZQotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhp
cmRfcGFydHkvbW9yZS1pdGVydG9vbHMvLnRyYXZpcy55bWwKQEAgLTAsMCArMSwyNiBAQAorc3Vk
bzogZmFsc2UKKworbGFuZ3VhZ2U6ICJweXRob24iCisKK3B5dGhvbjoKKyAgICAtICIyLjciCisg
ICAgLSAiMy40IgorICAgIC0gIjMuNSIKKyAgICAtICIzLjYiCisgICAgLSAiMy43LWRldiIKKyAg
ICAtICJweXB5LTUuNC4xIgorICAgIC0gInB5cHkzIgorCitpbnN0YWxsOgorICAgIC0gInBpcCBp
bnN0YWxsIC4iCisgICAgLSAicGlwIGluc3RhbGwgLVUgY292ZXJhbGxzIGZsYWtlOCIKKworc2Ny
aXB0OgorICAgIC0gImNvdmVyYWdlIHJ1biAtLWluY2x1ZGU9J21vcmVfaXRlcnRvb2xzLyoucHkn
IC0tb21pdD0nbW9yZV9pdGVydG9vbHMvdGVzdHMvKicgc2V0dXAucHkgdGVzdCIKKyAgICAtICJm
bGFrZTggLiIKKworbm90aWZpY2F0aW9uczoKKyAgZW1haWw6IGZhbHNlCisKK2FmdGVyX3N1Y2Nl
c3M6CisgICAgLSAiY292ZXJhbGxzIgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9tb3JlLWl0ZXJ0b29scy9k
b2NzL3czYy1pbXBvcnQubG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9tb3JlLWl0ZXJ0b29scy9kb2NzL3czYy1pbXBvcnQu
bG9nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjMmRjZTg4NGE4M2RmOGIxMjA2MDY0
MzVlMmU5MGNhYTI4MGIxODAzLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvdGhpcmRfcGFydHkvbW9yZS1pdGVydG9vbHMvZG9jcy93M2MtaW1wb3J0LmxvZworKysgL2Rl
di9udWxsCkBAIC0xLDI0ICswLDAgQEAKLVRoZSB0ZXN0cyBpbiB0aGlzIGRpcmVjdG9yeSB3ZXJl
IGltcG9ydGVkIGZyb20gdGhlIFczQyByZXBvc2l0b3J5LgotRG8gTk9UIG1vZGlmeSB0aGVzZSB0
ZXN0cyBkaXJlY3RseSBpbiBXZWJLaXQuCi1JbnN0ZWFkLCBjcmVhdGUgYSBwdWxsIHJlcXVlc3Qg
b24gdGhlIFdQVCBnaXRodWI6Ci0JaHR0cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9ybS10ZXN0
cy93cHQKLQotVGhlbiBydW4gdGhlIFRvb2xzL1NjcmlwdHMvaW1wb3J0LXczYy10ZXN0cyBpbiBX
ZWJLaXQgdG8gcmVpbXBvcnQKLQotRG8gTk9UIG1vZGlmeSBvciByZW1vdmUgdGhpcyBmaWxlLgot
Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0KLVByb3BlcnRpZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoK
LU5vbmUKLVByb3BlcnR5IHZhbHVlcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQot
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tCi1MaXN0IG9mIGZpbGVzOgotL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvbW9yZS1pdGVydG9vbHMvZG9j
cy9NYWtlZmlsZQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvdGhpcmRfcGFydHkvbW9yZS1pdGVydG9vbHMvZG9jcy9hcGkucnN0Ci0vTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9tb3Jl
LWl0ZXJ0b29scy9kb2NzL2NvbmYucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L21vcmUtaXRlcnRvb2xzL2RvY3MvaW5kZXgu
cnN0Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90
aGlyZF9wYXJ0eS9tb3JlLWl0ZXJ0b29scy9kb2NzL2xpY2Vuc2UucnN0Ci0vTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9tb3JlLWl0
ZXJ0b29scy9kb2NzL21ha2UuYmF0Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9tb3JlLWl0ZXJ0b29scy9kb2NzL3Rlc3Rpbmcu
cnN0Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90
aGlyZF9wYXJ0eS9tb3JlLWl0ZXJ0b29scy9kb2NzL3ZlcnNpb25zLnJzdApkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9w
YXJ0eS9tb3JlLWl0ZXJ0b29scy9tb3JlX2l0ZXJ0b29scy90ZXN0cy9fX2luaXRfXy5weSBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFy
dHkvbW9yZS1pdGVydG9vbHMvbW9yZV9pdGVydG9vbHMvdGVzdHMvX19pbml0X18ucHkKaW5kZXgg
YTY4MzRiODI4NWE1NmJlZjBlMTU0M2ZkOTAxYzdlNmYyZjhiYzIwMi4uZTY5ZGUyOWJiMmQxZDY0
MzRiOGIyOWFlNzc1YWQ4YzJlNDhjNTM5MSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9tb3JlLWl0ZXJ0b29s
cy9tb3JlX2l0ZXJ0b29scy90ZXN0cy9fX2luaXRfXy5weQorKysgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L21vcmUtaXRlcnRv
b2xzL21vcmVfaXRlcnRvb2xzL3Rlc3RzL19faW5pdF9fLnB5CkBAIC0xICswLDAgQEAKLSMgVGhp
cyBmaWxlIGlzIHJlcXVpcmVkIGZvciBQeXRob24gdG8gc2VhcmNoIHRoaXMgZGlyZWN0b3J5IGZv
ciBtb2R1bGVzLgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkv
bW9yZS1pdGVydG9vbHMvbW9yZV9pdGVydG9vbHMvdGVzdHMvdzNjLWltcG9ydC5sb2cgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5
L21vcmUtaXRlcnRvb2xzL21vcmVfaXRlcnRvb2xzL3Rlc3RzL3czYy1pbXBvcnQubG9nCmRlbGV0
ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhMzAyYTgxOGI1ODA1M2MzOGUwMmI0NmNhZDI3OGZh
MDhlZjMzZGVjLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRf
cGFydHkvbW9yZS1pdGVydG9vbHMvbW9yZV9pdGVydG9vbHMvdGVzdHMvdzNjLWltcG9ydC5sb2cK
KysrIC9kZXYvbnVsbApAQCAtMSwxOSArMCwwIEBACi1UaGUgdGVzdHMgaW4gdGhpcyBkaXJlY3Rv
cnkgd2VyZSBpbXBvcnRlZCBmcm9tIHRoZSBXM0MgcmVwb3NpdG9yeS4KLURvIE5PVCBtb2RpZnkg
dGhlc2UgdGVzdHMgZGlyZWN0bHkgaW4gV2ViS2l0LgotSW5zdGVhZCwgY3JlYXRlIGEgcHVsbCBy
ZXF1ZXN0IG9uIHRoZSBXUFQgZ2l0aHViOgotCWh0dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxhdGZv
cm0tdGVzdHMvd3B0Ci0KLVRoZW4gcnVuIHRoZSBUb29scy9TY3JpcHRzL2ltcG9ydC13M2MtdGVz
dHMgaW4gV2ViS2l0IHRvIHJlaW1wb3J0Ci0KLURvIE5PVCBtb2RpZnkgb3IgcmVtb3ZlIHRoaXMg
ZmlsZS4KLQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1Qcm9wZXJ0aWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJl
Zml4ZXM6Ci1Ob25lCi1Qcm9wZXJ0eSB2YWx1ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoK
LU5vbmUKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotTGlzdCBvZiBmaWxlczoKLS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L21vcmUtaXRlcnRv
b2xzL21vcmVfaXRlcnRvb2xzL3Rlc3RzL19faW5pdF9fLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9tb3JlLWl0ZXJ0b29s
cy9tb3JlX2l0ZXJ0b29scy90ZXN0cy90ZXN0X21vcmUucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L21vcmUtaXRlcnRvb2xz
L21vcmVfaXRlcnRvb2xzL3Rlc3RzL3Rlc3RfcmVjaXBlcy5weQpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9t
b3JlLWl0ZXJ0b29scy9tb3JlX2l0ZXJ0b29scy93M2MtaW1wb3J0LmxvZyBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvbW9yZS1p
dGVydG9vbHMvbW9yZV9pdGVydG9vbHMvdzNjLWltcG9ydC5sb2cKZGVsZXRlZCBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IGE3ZDc5YjY4YTVlNGI1NDk1YWRjMDQwYThmNDRlOTI5ZTVhYTE1ZDAuLjAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9tb3JlLWl0
ZXJ0b29scy9tb3JlX2l0ZXJ0b29scy93M2MtaW1wb3J0LmxvZworKysgL2Rldi9udWxsCkBAIC0x
LDE5ICswLDAgQEAKLVRoZSB0ZXN0cyBpbiB0aGlzIGRpcmVjdG9yeSB3ZXJlIGltcG9ydGVkIGZy
b20gdGhlIFczQyByZXBvc2l0b3J5LgotRG8gTk9UIG1vZGlmeSB0aGVzZSB0ZXN0cyBkaXJlY3Rs
eSBpbiBXZWJLaXQuCi1JbnN0ZWFkLCBjcmVhdGUgYSBwdWxsIHJlcXVlc3Qgb24gdGhlIFdQVCBn
aXRodWI6Ci0JaHR0cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQKLQotVGhl
biBydW4gdGhlIFRvb2xzL1NjcmlwdHMvaW1wb3J0LXczYy10ZXN0cyBpbiBXZWJLaXQgdG8gcmVp
bXBvcnQKLQotRG8gTk9UIG1vZGlmeSBvciByZW1vdmUgdGhpcyBmaWxlLgotCi0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0KLVByb3BlcnRpZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLVByb3Bl
cnR5IHZhbHVlcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tCi1MaXN0IG9mIGZpbGVzOgotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvbW9yZS1pdGVydG9vbHMvbW9yZV9pdGVydG9vbHMv
X19pbml0X18ucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3RoaXJkX3BhcnR5L21vcmUtaXRlcnRvb2xzL21vcmVfaXRlcnRvb2xzL21vcmUucHkK
LS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJk
X3BhcnR5L21vcmUtaXRlcnRvb2xzL21vcmVfaXRlcnRvb2xzL3JlY2lwZXMucHkKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhp
cmRfcGFydHkvbW9yZS1pdGVydG9vbHMvdzNjLWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L21vcmUtaXRlcnRv
b2xzL3czYy1pbXBvcnQubG9nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4NzY3MzFh
ZWQzZTE2NjBmZGU4NjcyOTU5MTY3ZWVhOWJjMTM4Yjk4Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvbW9yZS1pdGVydG9vbHMvdzNjLWltcG9ydC5s
b2cKKysrIC9kZXYvbnVsbApAQCAtMSwyMiArMCwwIEBACi1UaGUgdGVzdHMgaW4gdGhpcyBkaXJl
Y3Rvcnkgd2VyZSBpbXBvcnRlZCBmcm9tIHRoZSBXM0MgcmVwb3NpdG9yeS4KLURvIE5PVCBtb2Rp
ZnkgdGhlc2UgdGVzdHMgZGlyZWN0bHkgaW4gV2ViS2l0LgotSW5zdGVhZCwgY3JlYXRlIGEgcHVs
bCByZXF1ZXN0IG9uIHRoZSBXUFQgZ2l0aHViOgotCWh0dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxh
dGZvcm0tdGVzdHMvd3B0Ci0KLVRoZW4gcnVuIHRoZSBUb29scy9TY3JpcHRzL2ltcG9ydC13M2Mt
dGVzdHMgaW4gV2ViS2l0IHRvIHJlaW1wb3J0Ci0KLURvIE5PVCBtb2RpZnkgb3IgcmVtb3ZlIHRo
aXMgZmlsZS4KLQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1Qcm9wZXJ0aWVzIHJlcXVpcmluZyB2ZW5kb3Ig
cHJlZml4ZXM6Ci1Ob25lCi1Qcm9wZXJ0eSB2YWx1ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhl
czoKLU5vbmUKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotTGlzdCBvZiBmaWxlczoKLS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L21vcmUtaXRl
cnRvb2xzL0xJQ0VOU0UKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3RoaXJkX3BhcnR5L21vcmUtaXRlcnRvb2xzL01BTklGRVNULmluCi0vTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9t
b3JlLWl0ZXJ0b29scy9SRUFETUUucnN0Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9tb3JlLWl0ZXJ0b29scy9zZXR1cC5jZmcK
LS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJk
X3BhcnR5L21vcmUtaXRlcnRvb2xzL3NldHVwLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9tb3JlLWl0ZXJ0b29scy90b3gu
aW5pCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3BsdWdneS8uZ2l0aWdub3JlIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9wbHVnZ3kvLmdp
dGlnbm9yZQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi5lNWM3ZTk4MDQxY2ZiMDQ5YzAwYzBhNjE4Y2IyMjQyNjcwMDRm
ZDVhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9wbHVnZ3kvLmdpdGlnbm9yZQpAQCAtMCwwICsx
LDU4IEBACisjIEJ5dGUtY29tcGlsZWQgLyBvcHRpbWl6ZWQgLyBETEwgZmlsZXMKK19fcHljYWNo
ZV9fLworKi5weVtjb2RdCisKKyMgQyBleHRlbnNpb25zCisqLnNvCisKKyMgRGlzdHJpYnV0aW9u
IC8gcGFja2FnaW5nCisuUHl0aG9uCitlbnYvCitidWlsZC8KK2RldmVsb3AtZWdncy8KK2Rpc3Qv
Citkb3dubG9hZHMvCitlZ2dzLworLmVnZ3MvCitsaWIvCitsaWI2NC8KK3BhcnRzLworc2Rpc3Qv
Cit2YXIvCisqLmVnZy1pbmZvLworLmluc3RhbGxlZC5jZmcKKyouZWdnCisKKyMgUHlJbnN0YWxs
ZXIKKyMgIFVzdWFsbHkgdGhlc2UgZmlsZXMgYXJlIHdyaXR0ZW4gYnkgYSBweXRob24gc2NyaXB0
IGZyb20gYSB0ZW1wbGF0ZQorIyAgYmVmb3JlIFB5SW5zdGFsbGVyIGJ1aWxkcyB0aGUgZXhlLCBz
byBhcyB0byBpbmplY3QgZGF0ZS9vdGhlciBpbmZvcyBpbnRvIGl0LgorKi5tYW5pZmVzdAorKi5z
cGVjCisKKyMgSW5zdGFsbGVyIGxvZ3MKK3BpcC1sb2cudHh0CitwaXAtZGVsZXRlLXRoaXMtZGly
ZWN0b3J5LnR4dAorCisjIFVuaXQgdGVzdCAvIGNvdmVyYWdlIHJlcG9ydHMKK2h0bWxjb3YvCisu
dG94LworLmNvdmVyYWdlCisuY292ZXJhZ2UuKgorLmNhY2hlCitub3NldGVzdHMueG1sCitjb3Zl
cmFnZS54bWwKKyosY292ZXIKKworIyBUcmFuc2xhdGlvbnMKKyoubW8KKyoucG90CisKKyMgRGph
bmdvIHN0dWZmOgorKi5sb2cKKworIyBTcGhpbnggZG9jdW1lbnRhdGlvbgorZG9jcy9fYnVpbGQv
CisKKyMgUHlCdWlsZGVyCit0YXJnZXQvCisqLnN3cApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9wbHVnZ3kv
LnRyYXZpcy55bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3RoaXJkX3BhcnR5L3BsdWdneS8udHJhdmlzLnltbApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42ZmQxMzZi
YWYzN2NhOTA5NjIwNzE1YzE0MTYxMDg5Zjc5NGE4Yzc2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0
eS9wbHVnZ3kvLnRyYXZpcy55bWwKQEAgLTAsMCArMSw0OCBAQAorc3VkbzogZmFsc2UKK2xhbmd1
YWdlOiBweXRob24KKworbWF0cml4OgorICBpbmNsdWRlOgorICAgIC0gcHl0aG9uOiAnMy42Jwor
ICAgICAgZW52OiBUT1hFTlY9Y2hlY2sKKyAgICAtIHB5dGhvbjogJzMuNicKKyAgICAgIGVudjog
VE9YRU5WPWRvY3MKKyAgICAtIHB5dGhvbjogJzIuNycKKyAgICAgIGVudjogVE9YRU5WPXB5Mjct
cHl0ZXN0cmVsZWFzZQorICAgIC0gcHl0aG9uOiAnMy40JworICAgICAgZW52OiBUT1hFTlY9cHkz
NC1weXRlc3RyZWxlYXNlCisgICAgLSBweXRob246ICczLjUnCisgICAgICBlbnY6IFRPWEVOVj1w
eTM1LXB5dGVzdHJlbGVhc2UKKyAgICAtIHB5dGhvbjogJzMuNicKKyAgICAgIGVudjogVE9YRU5W
PXB5MzYtcHl0ZXN0cmVsZWFzZQorICAgIC0gcHl0aG9uOiAncHlweScKKyAgICAgIGVudjogVE9Y
RU5WPXB5cHktcHl0ZXN0cmVsZWFzZQorICAgIC0gcHl0aG9uOiAnbmlnaHRseScKKyAgICAgIGVu
djogVE9YRU5WPXB5MzctcHl0ZXN0cmVsZWFzZQorICAgIC0gcHl0aG9uOiAnMi43JworICAgICAg
ZW52OiBUT1hFTlY9cHkyNy1weXRlc3RtYXN0ZXIKKyAgICAtIHB5dGhvbjogJzIuNycKKyAgICAg
IGVudjogVE9YRU5WPXB5MjctcHl0ZXN0ZmVhdHVyZXMKKyAgICAtIHB5dGhvbjogJzMuNicKKyAg
ICAgIGVudjogVE9YRU5WPXB5MzYtcHl0ZXN0bWFzdGVyCisgICAgLSBweXRob246ICczLjYnCisg
ICAgICBlbnY6IFRPWEVOVj1weTM2LXB5dGVzdGZlYXR1cmVzCisgICAgLSBweXRob246ICczLjYn
CisgICAgICBlbnY6IFRPWEVOVj1iZW5jaG1hcmsKKworaW5zdGFsbDoKKyAgLSBwaXAgaW5zdGFs
bCAtVSBzZXR1cHRvb2xzIHBpcAorICAtIHBpcCBpbnN0YWxsIC1VIHRveAorCitzY3JpcHQ6Cisg
IC0gdG94CisKK25vdGlmaWNhdGlvbnM6CisgIGlyYzoKKyAgICBjaGFubmVsczoKKyAgICAgIC0g
ImNoYXQuZnJlZW5vZGUubmV0I3B5dGVzdCIKKyAgICBvbl9zdWNjZXNzOiBjaGFuZ2UKKyAgICBv
bl9mYWlsdXJlOiBjaGFuZ2UKKyAgICBza2lwX2pvaW46IHRydWUKKyMgIGVtYWlsOgorIyAgICAt
IHB5dGVzdC1jb21taXRAcHl0aG9uLm9yZwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9wbHVnZ3kvZG9jcy9f
c3RhdGljL2ltZy93M2MtaW1wb3J0LmxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGx1Z2d5L2RvY3MvX3N0YXRpYy9pbWcv
dzNjLWltcG9ydC5sb2cKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGQ2NWM2Nzk1YmEx
YWZlMjhlNTE2ZWZhZjExZDcwOGNiOGExMDk5ZDYuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9wbHVnZ3kvZG9jcy9fc3RhdGljL2ltZy93M2MtaW1w
b3J0LmxvZworKysgL2Rldi9udWxsCkBAIC0xLDE3ICswLDAgQEAKLVRoZSB0ZXN0cyBpbiB0aGlz
IGRpcmVjdG9yeSB3ZXJlIGltcG9ydGVkIGZyb20gdGhlIFczQyByZXBvc2l0b3J5LgotRG8gTk9U
IG1vZGlmeSB0aGVzZSB0ZXN0cyBkaXJlY3RseSBpbiBXZWJLaXQuCi1JbnN0ZWFkLCBjcmVhdGUg
YSBwdWxsIHJlcXVlc3Qgb24gdGhlIFdQVCBnaXRodWI6Ci0JaHR0cHM6Ly9naXRodWIuY29tL3dl
Yi1wbGF0Zm9ybS10ZXN0cy93cHQKLQotVGhlbiBydW4gdGhlIFRvb2xzL1NjcmlwdHMvaW1wb3J0
LXczYy10ZXN0cyBpbiBXZWJLaXQgdG8gcmVpbXBvcnQKLQotRG8gTk9UIG1vZGlmeSBvciByZW1v
dmUgdGhpcyBmaWxlLgotCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLVByb3BlcnRpZXMgcmVxdWlyaW5nIHZl
bmRvciBwcmVmaXhlczoKLU5vbmUKLVByb3BlcnR5IHZhbHVlcyByZXF1aXJpbmcgdmVuZG9yIHBy
ZWZpeGVzOgotTm9uZQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1MaXN0IG9mIGZpbGVzOgotL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGx1
Z2d5L2RvY3MvX3N0YXRpYy9pbWcvcGx1Zy5wbmcKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGx1Z2d5L2Rv
Y3MvZXhhbXBsZXMvdzNjLWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3BsdWdneS9kb2NzL2V4YW1wbGVzL3cz
Yy1pbXBvcnQubG9nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwNjhiNmExOGUxNjZj
N2Q0ZWZiNWIyYmI2MjExOTE2ZjVlMDA4MTlkLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGx1Z2d5L2RvY3MvZXhhbXBsZXMvdzNjLWltcG9ydC5s
b2cKKysrIC9kZXYvbnVsbApAQCAtMSwxNyArMCwwIEBACi1UaGUgdGVzdHMgaW4gdGhpcyBkaXJl
Y3Rvcnkgd2VyZSBpbXBvcnRlZCBmcm9tIHRoZSBXM0MgcmVwb3NpdG9yeS4KLURvIE5PVCBtb2Rp
ZnkgdGhlc2UgdGVzdHMgZGlyZWN0bHkgaW4gV2ViS2l0LgotSW5zdGVhZCwgY3JlYXRlIGEgcHVs
bCByZXF1ZXN0IG9uIHRoZSBXUFQgZ2l0aHViOgotCWh0dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxh
dGZvcm0tdGVzdHMvd3B0Ci0KLVRoZW4gcnVuIHRoZSBUb29scy9TY3JpcHRzL2ltcG9ydC13M2Mt
dGVzdHMgaW4gV2ViS2l0IHRvIHJlaW1wb3J0Ci0KLURvIE5PVCBtb2RpZnkgb3IgcmVtb3ZlIHRo
aXMgZmlsZS4KLQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1Qcm9wZXJ0aWVzIHJlcXVpcmluZyB2ZW5kb3Ig
cHJlZml4ZXM6Ci1Ob25lCi1Qcm9wZXJ0eSB2YWx1ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhl
czoKLU5vbmUKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotTGlzdCBvZiBmaWxlczoKLS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3BsdWdneS9k
b2NzL2V4YW1wbGVzL2ZpcnN0ZXhhbXBsZS5weQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9wbHVnZ3kvZG9j
cy93M2MtaW1wb3J0LmxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGx1Z2d5L2RvY3MvdzNjLWltcG9ydC5sb2cKZGVsZXRl
ZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDg3NWI1ODFiOGMyYzJmZTIyZGMyZGU2N2FjNTA2OTQy
OTY0MDNiNDcuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9w
YXJ0eS9wbHVnZ3kvZG9jcy93M2MtaW1wb3J0LmxvZworKysgL2Rldi9udWxsCkBAIC0xLDE5ICsw
LDAgQEAKLVRoZSB0ZXN0cyBpbiB0aGlzIGRpcmVjdG9yeSB3ZXJlIGltcG9ydGVkIGZyb20gdGhl
IFczQyByZXBvc2l0b3J5LgotRG8gTk9UIG1vZGlmeSB0aGVzZSB0ZXN0cyBkaXJlY3RseSBpbiBX
ZWJLaXQuCi1JbnN0ZWFkLCBjcmVhdGUgYSBwdWxsIHJlcXVlc3Qgb24gdGhlIFdQVCBnaXRodWI6
Ci0JaHR0cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQKLQotVGhlbiBydW4g
dGhlIFRvb2xzL1NjcmlwdHMvaW1wb3J0LXczYy10ZXN0cyBpbiBXZWJLaXQgdG8gcmVpbXBvcnQK
LQotRG8gTk9UIG1vZGlmeSBvciByZW1vdmUgdGhpcyBmaWxlLgotCi0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K
LVByb3BlcnRpZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLVByb3BlcnR5IHZh
bHVlcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1M
aXN0IG9mIGZpbGVzOgotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvdGhpcmRfcGFydHkvcGx1Z2d5L2RvY3MvYXBpX3JlZmVyZW5jZS5yc3QKLS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5
L3BsdWdneS9kb2NzL2NvbmYucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3BsdWdneS9kb2NzL2luZGV4LnJzdApkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90
aGlyZF9wYXJ0eS9wbHVnZ3kvcGx1Z2d5L3czYy1pbXBvcnQubG9nIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9wbHVnZ3kvcGx1
Z2d5L3czYy1pbXBvcnQubG9nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBmZDBkNWEw
OTM3ZDgyZTZlMjM3YTU2ZjFmM2JjZjIxNGRjZWMyZTJiLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGx1Z2d5L3BsdWdneS93M2MtaW1wb3J0Lmxv
ZworKysgL2Rldi9udWxsCkBAIC0xLDE4ICswLDAgQEAKLVRoZSB0ZXN0cyBpbiB0aGlzIGRpcmVj
dG9yeSB3ZXJlIGltcG9ydGVkIGZyb20gdGhlIFczQyByZXBvc2l0b3J5LgotRG8gTk9UIG1vZGlm
eSB0aGVzZSB0ZXN0cyBkaXJlY3RseSBpbiBXZWJLaXQuCi1JbnN0ZWFkLCBjcmVhdGUgYSBwdWxs
IHJlcXVlc3Qgb24gdGhlIFdQVCBnaXRodWI6Ci0JaHR0cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0
Zm9ybS10ZXN0cy93cHQKLQotVGhlbiBydW4gdGhlIFRvb2xzL1NjcmlwdHMvaW1wb3J0LXczYy10
ZXN0cyBpbiBXZWJLaXQgdG8gcmVpbXBvcnQKLQotRG8gTk9UIG1vZGlmeSBvciByZW1vdmUgdGhp
cyBmaWxlLgotCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLVByb3BlcnRpZXMgcmVxdWlyaW5nIHZlbmRvciBw
cmVmaXhlczoKLU5vbmUKLVByb3BlcnR5IHZhbHVlcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVz
OgotTm9uZQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1MaXN0IG9mIGZpbGVzOgotL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGx1Z2d5L3Bs
dWdneS9fX2luaXRfXy5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGx1Z2d5L3BsdWdneS9jYWxsZXJzLnB5CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3Ro
aXJkX3BhcnR5L3BsdWdneS90ZXN0aW5nL3czYy1pbXBvcnQubG9nIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9wbHVnZ3kvdGVz
dGluZy93M2MtaW1wb3J0LmxvZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggODRiZGJj
MTFkOTU1MjllZTE2ZGVhYjA1YzcxN2Y0YzhjMDNiMGE2Mi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3BsdWdneS90ZXN0aW5nL3czYy1pbXBvcnQu
bG9nCisrKyAvZGV2L251bGwKQEAgLTEsMjUgKzAsMCBAQAotVGhlIHRlc3RzIGluIHRoaXMgZGly
ZWN0b3J5IHdlcmUgaW1wb3J0ZWQgZnJvbSB0aGUgVzNDIHJlcG9zaXRvcnkuCi1EbyBOT1QgbW9k
aWZ5IHRoZXNlIHRlc3RzIGRpcmVjdGx5IGluIFdlYktpdC4KLUluc3RlYWQsIGNyZWF0ZSBhIHB1
bGwgcmVxdWVzdCBvbiB0aGUgV1BUIGdpdGh1YjoKLQlodHRwczovL2dpdGh1Yi5jb20vd2ViLXBs
YXRmb3JtLXRlc3RzL3dwdAotCi1UaGVuIHJ1biB0aGUgVG9vbHMvU2NyaXB0cy9pbXBvcnQtdzNj
LXRlc3RzIGluIFdlYktpdCB0byByZWltcG9ydAotCi1EbyBOT1QgbW9kaWZ5IG9yIHJlbW92ZSB0
aGlzIGZpbGUuCi0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotUHJvcGVydGllcyByZXF1aXJpbmcgdmVuZG9y
IHByZWZpeGVzOgotTm9uZQotUHJvcGVydHkgdmFsdWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4
ZXM6Ci1Ob25lCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLUxpc3Qgb2YgZmlsZXM6Ci0vTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9wbHVnZ3kv
dGVzdGluZy9iZW5jaG1hcmsucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3BsdWdneS90ZXN0aW5nL2NvbmZ0ZXN0LnB5Ci0v
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9w
YXJ0eS9wbHVnZ3kvdGVzdGluZy90ZXN0X2RldGFpbHMucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3BsdWdneS90ZXN0aW5n
L3Rlc3RfaGVscGVycy5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGx1Z2d5L3Rlc3RpbmcvdGVzdF9ob29rcmVsYXkucHkK
LS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJk
X3BhcnR5L3BsdWdneS90ZXN0aW5nL3Rlc3RfbWV0aG9kX29yZGVyaW5nLnB5Ci0vTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9wbHVn
Z3kvdGVzdGluZy90ZXN0X211bHRpY2FsbC5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGx1Z2d5L3Rlc3RpbmcvdGVzdF9w
bHVnaW5tYW5hZ2VyLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy90aGlyZF9wYXJ0eS9wbHVnZ3kvdGVzdGluZy90ZXN0X3RyYWNlci5weQpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy90aGlyZF9wYXJ0eS9wbHVnZ3kvdzNjLWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3BsdWdneS93M2MtaW1w
b3J0LmxvZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggY2MxZTU5YzFhMjVmODRhNzFm
ZWNkZTIxNzQ1YjY4NmQ0OWJiMzViNS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3RoaXJkX3BhcnR5L3BsdWdneS93M2MtaW1wb3J0LmxvZworKysgL2Rldi9udWxsCkBA
IC0xLDI0ICswLDAgQEAKLVRoZSB0ZXN0cyBpbiB0aGlzIGRpcmVjdG9yeSB3ZXJlIGltcG9ydGVk
IGZyb20gdGhlIFczQyByZXBvc2l0b3J5LgotRG8gTk9UIG1vZGlmeSB0aGVzZSB0ZXN0cyBkaXJl
Y3RseSBpbiBXZWJLaXQuCi1JbnN0ZWFkLCBjcmVhdGUgYSBwdWxsIHJlcXVlc3Qgb24gdGhlIFdQ
VCBnaXRodWI6Ci0JaHR0cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQKLQot
VGhlbiBydW4gdGhlIFRvb2xzL1NjcmlwdHMvaW1wb3J0LXczYy10ZXN0cyBpbiBXZWJLaXQgdG8g
cmVpbXBvcnQKLQotRG8gTk9UIG1vZGlmeSBvciByZW1vdmUgdGhpcyBmaWxlLgotCi0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0KLVByb3BlcnRpZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLVBy
b3BlcnR5IHZhbHVlcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tCi1MaXN0IG9mIGZpbGVzOgotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcGx1Z2d5L0NIQU5HRUxPRy5yc3QKLS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5
L3BsdWdneS9MSUNFTlNFCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy90aGlyZF9wYXJ0eS9wbHVnZ3kvTUFOSUZFU1QuaW4KLS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3BsdWdneS9S
RUFETUUucnN0Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy90aGlyZF9wYXJ0eS9wbHVnZ3kvYXBwdmV5b3IueW1sCi0vTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9wbHVnZ3kvc2V0dXAu
Y2ZnCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90
aGlyZF9wYXJ0eS9wbHVnZ3kvc2V0dXAucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3BsdWdneS90b3guaW5pCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3Ro
aXJkX3BhcnR5L3B5Ly5naXRhdHRyaWJ1dGVzIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weS8uZ2l0YXR0cmlidXRlcwpuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi4xMjQ2ODc5YzRkYWFjODJhYmU1NTQwOTBlNjBlMTFmYzIyNTJmMzNiCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy90aGlyZF9wYXJ0eS9weS8uZ2l0YXR0cmlidXRlcwpAQCAtMCwwICsxIEBACisqLmR1bXAg
ICBlb2w9bGYKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvLmdpdGlnbm9yZSBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvLmdpdGln
bm9yZQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi41YmIwZDQ1N2Q0OThjNTkyOGUxZDA4MTdiZjI0YTQ1ZDdmMDQ4MjIz
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weS8uZ2l0aWdub3JlCkBAIC0wLDAgKzEsMTIgQEAK
KworLmNhY2hlLworLnRveC8KK19fcHljYWNoZV9fLworCisqLnB5YworKi5weW8KKworKi5lZ2ct
aW5mbworLmVnZ3MvCisKK2Rpc3QvKgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weS8uaGdpZ25vcmUgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3Bh
cnR5L3B5Ly5oZ2lnbm9yZQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zNDk3NmRhNWQxNTMzNWM3OWQ0YjdiYTY0Zjk0
MTk5Zjk1MmMxNjNjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weS8uaGdpZ25vcmUKQEAgLTAs
MCArMSwyOSBAQAorCisjIEF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVkIGJ5IGBoZ2ltcG9ydHN2bmAK
K3N5bnRheDpnbG9iCisuc3ZuCisuaGdzdm4KKworIyBUaGVzZSBsaW5lcyBhcmUgc3VnZ2VzdGVk
IGFjY29yZGluZyB0byB0aGUgc3ZuOmlnbm9yZSBwcm9wZXJ0eQorIyBGZWVsIGZyZWUgdG8gZW5h
YmxlIHRoZW0gYnkgdW5jb21tZW50aW5nIHRoZW0KK3N5bnRheDpnbG9iCisqLnB5YworKi5weW8K
Kyouc3dwCisqLmh0bWwKKyouY2xhc3MKKyoub3JpZworKn4KKworZG9jL19idWlsZAorYnVpbGQv
CitkaXN0LworKi5lZ2ctaW5mbworaXNzdWUvCitlbnYvCiszcmRwYXJ0eS8KKy50b3gKK2xpYi8K
K2Jpbi8KK2luY2x1ZGUvCitzcmMvCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5Ly5oZ3RhZ3MgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5
L3B5Ly5oZ3RhZ3MKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOWQ0ODA5NWJmNjQ3N2MyNjE3MTAzYzVmYTRiYTEyNWEz
N2FmOWVmOAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvLmhndGFncwpAQCAtMCwwICsxLDY4
IEBACis1MmM2ZDllNzg3NzdhNWEzNGU4MTMxMjM5OTdkZmM2MTRhMWE0NzY3IDEuMC4wYjMKKzFj
N2FhYThjNjFmM2IwOTQ1OTIxYTlhY2M3YmViMTg0MjAxYWVkNGIgMS4wLjBiNAorMWM3YWFhOGM2
MWYzYjA5NDU5MjFhOWFjYzdiZWIxODQyMDFhZWQ0YiAxLjAuMGI0CiswMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwIDEuMC4wYjQKKzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAgMS4wLjBiNAorOGNkNmViOTFlYmEzMTNiMDEyZDZlNTY4ZjM3ZDg0
NGRjMDc1MWYyZSAxLjAuMGI0Cis4Y2Q2ZWI5MWViYTMxM2IwMTJkNmU1NjhmMzdkODQ0ZGMwNzUx
ZjJlIDEuMC4wYjQKKzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAgMS4w
LjBiNAorMmNjMDUwN2YxMTdmZmU3MjFkZmY3ZWUwMjY2NDhjZmNlMDBlYzkyZiAxLjAuMGI2Cis4
NmYxZTFiNmU0OWJmNTg4MmE4MDlmMTFlZGQxZGJiMDgxNjJjZGFkIDEuMC4wYjgKKzg2ZjFlMWI2
ZTQ5YmY1ODgyYTgwOWYxMWVkZDFkYmIwODE2MmNkYWQgMS4wLjBiOAorYzYzZjM1YzI2NmNiYjI2
ZGFkNmI4N2I1ZTExNWQ2NTY4NWFkZjQ0OCAxLjAuMGI4CitjNjNmMzVjMjY2Y2JiMjZkYWQ2Yjg3
YjVlMTE1ZDY1Njg1YWRmNDQ4IDEuMC4wYjgKKzBlYWEwZmRmMmJhMDE2M2NmNTM0ZGMyZWZmNGJh
MmU1ZmM2NmMyNjEgMS4wLjBiOAorZTJhNjA2NTNjYjQ5MGFlZWQ4MWJiYmQ4M2MwNzBiOTk0MDFj
MjExYyAxLjAuMGI5Cis1ZWEwY2RmNzg1NGMzZDQyNzhkMzZlZGE5NGEyYjY4NDgzYTBlMjExIDEu
MC4wCis1ZWEwY2RmNzg1NGMzZDQyNzhkMzZlZGE5NGEyYjY4NDgzYTBlMjExIDEuMC4wCis3YWNk
ZTM2MGQ5NGI2YTI2OTBjZTNkMDNmZjM5MzAxZGE4NGMwYTJiIDEuMC4wCis2YmQyMjE5ODFhYzk5
MTAzMDAyYzFjYjk0ZmVkZTQwMGQyM2E5NmExIDEuMC4xCis0ODE2ZThiODA2MDJhM2ZkM2EwYTEy
MDMzM2FkODVmYmU3ZDhiYWI0IDEuMC4yCis2MGM0NGJkYmYwOTMyODVkYzY5ZDU0NjJkNGRiYjRh
Y2FkMzI1Y2E2IDEuMS4wCiszMTkxODdmY2RhNjY3MTRjNWViMTM1MzQ5MmJhYmVlYzNkM2M4MjZm
IDEuMS4xCis0ZmM1MjEyZjc2MjZhNTZiOWViNjQzN2I1YzY3M2Y1NmRkN2ViOTQyIDEuMi4wCitj
MTQzYThjODg0MGExYzY4NTcwODkwYzhhYzYxNjViYmY5MmZkM2M2IDEuMi4xCitlYWZkM2MyNTZl
ODczMmRmYjBhNGQ0OWQwNTFiNWI0MzM5ODU4OTI2IDEuMy4wCitkNWVhY2YzOTBhZjc0NTUzMjI3
MTIyYjg1ZTIwMzQ1ZDQ3YjJmOWU2IDEuMy4xCitkNWVhY2YzOTBhZjc0NTUzMjI3MTIyYjg1ZTIw
MzQ1ZDQ3YjJmOWU2IDEuMy4xCis4YjhlN2MyNWExM2NmODYzZjAxYjJkZDk1NTk3ODI4NWFlOWRh
ZjZhIDEuMy4xCiszYmZmNDRiMTg4YTdlYzFhZjMyOGQ5NzdiOWQzOWI2NzU3YmIzOGRmIDEuMy4y
CitjNTlkM2ZhODY4MWE1YjU5NjZiODM3NWIxNmZjY2Q2NGEzYThkYmViIDEuMy4zCis3OWVmNjM3
NzcwNTE4NGM1NTYzM2Q0NTY4MzJlZWEzMThmZWRjZjYxIDEuMy40Cis3OWVmNjM3NzcwNTE4NGM1
NTYzM2Q0NTY4MzJlZWEzMThmZWRjZjYxIDEuMy40Cis5MGZmZmQzNTM3M2U5ZjEyNWFmMjMzZjc4
YjE5NDE2ZjA5MzhkODQxIDEuMy40Cis1MzQ2YWI0MWIwNTljOTVhNDhjYmUxZThhN2JhZTk2Y2U2
ZTBkYTI3IDEuNC4wCisxZjMxMjVjYmE3OTc2NTM4OTUyYmUyNjhmMTA3YzFkMGMzNmM1Y2U4IDEu
NC4xCiswNGFiMjJkYjRmZjczN2NmMzFlOTFkNzVhMGY1ZDcwNzdmMzI0MTY3IDEuNC4yCis5OTUw
YmY5ZDY4NGE5ODRkNTExNzk1MDEzNDIxYzg5YzVjZjg4YmVmIDEuNC4zCitkOTk1MWUzYmRiYzc2
NWU3MzgzNWFlMTMwMTJmNmEwNzRkMTNkOGJmIDEuNC40CitiODI3ZGQxNTZhMzY3NTNlMzJjN2Yz
ZjE1Y2U4MmQ2ZmU5ZTM1NmM4IDEuNC42CitmMTU3MjZmOWU1YTY3Y2M2MjIxYzQ5OWFmZmE0ODQw
ZTlkNTkxNzYzIDEuNC43CithYmZhYmQwN2ExZDMyOGYxM2M3MzBlOGE1MGQ4MGQyZTQ3MGFmZDNi
IDEuNC45Cis3ZjM3ZWUwYWZmOWJlNGI4MzlkNjc1OWNmZWUzMzZmNjBlODM5M2E0IDEuNC4xMAor
ZmU0NTkzMjYzZWZhMTBlYTdiYTAxNGRiNmUzMzc5ZTBiODIzNjhhMiAxLjQuMTEKK2YwN2FmMjVh
MjY3ODZlNDgyNWI1MTcwZTE3YWQ2OTMyNDVjYjM0MjYgMS40LjEyCitkMzczMGQ4NGJhN2VkYTky
ZmQzNDY5YTNmNjNmZDZkOGNiMjJjOTc1IDEuNC4xMworMTJjMWFlOGU3YzUzNDU3MjFlOWVjOWY4
ZTI3YjFlMzZjMDdmNzRkYyAxLjQuMTQKKzEyYzFhZThlN2M1MzQ1NzIxZTllYzlmOGUyN2IxZTM2
YzA3Zjc0ZGMgMS40LjE0CiswMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
IDEuNC4xNAorMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMCAxLjQuMTQK
KzE0OTdlMmVmZDBmOGM3M2EwZTNkNTI5ZGViZjBjNDg5ZTRjZDZjYWIgMS40LjE0CitlMDY1MDE0
YzFjZThhZDExMGEzODFlOWJhYWFhNWQ2NDdiYTdhYzZiIDEuNC4xNQorZTllNWIzOGY1M2RjMzVi
MzVhYTFmOWVlOWE5YmU5YmJkMmQyYzNiMSAxLjQuMTYKK2M2MDM1MDM5NDVmNTJiNzg1MjJkOTZh
NDIzNjA1Y2JjOTUzMjM2ZDMgMS40LjE3CitjNTkyMDExMDVhMjk4MDFjYzg1OGViOTE2MGI3YTE5
NzkxYjkxYTM1IDEuNC4xOAorMjg0Y2MxNzJlMjk0ZDQ4ZWRjODQwMDEyZTE0NTFjMzJjMzk2M2Q5
MiAxLjQuMTkKK2EzZTA2MjZhYTBjNWFlY2YyNzEzNjdkYzc3ZTQ3NmFiMjE2ZWEzYzggMS40LjIw
Cis1ZTQ4MDE2YzRhM2FmOGU3MzU4YTEyNjdkMzNkMDIxZTcxNzY1YmVkIDEuNC4yMQorMDFhZTJj
ZmNjNjFjNGZjYjNhYTUwMzEzNDlhZGI1YjQ2N2MzMTAxOCAxLjQuMjMKKzVmZmQ5ODJmNGRmZjYw
YjU4OGYzMDljZDliZGM2MTAzNjU0NzI4MmEgMS40LjI0CitkYzlmZmJjYWYxZjdkNzJlOTZiZTNm
NjhjMTFkZWViYjdlNzE5M2M1IDEuNC4yNQorNmRlMWE0NGJmNzVkZTdhZjRmY2FlOTQ3YzIzNWU5
MDcyYmJkYmI5YSAxLjQuMjYKKzdkNjUwYmEyNjU3ODkwYTIyNTNjOGM0YTgzZjE3MGZlYmViZDkw
ZmEgMS40LjI3Cis3ZDY1MGJhMjY1Nzg5MGEyMjUzYzhjNGE4M2YxNzBmZWJlYmQ5MGZhIDEuNC4y
NworMTgxMDAwM2RlYzYzZGQxYjUwNmEyMzg0OTg2MWZmZmE1YmMzYmExMyAxLjQuMjcKK2JhMDg3
MDZmMDhkZGVhMWI3N2E0MjZmMDBkZmUyYmRjMjQ0MzQ1ZTggMS40LjI4Cis0ZTgwNTRhZGE2M2Yz
MzI3YmNmNzU5YWU3Y2QzNmM3Yzg2NTJiYzliIDEuNC4yOQorMzY2YWIzNDY2MTBjNmRlOGFhYTc2
MTdlMjQwMTE3OTRiNDAyMzZjNiAxLjQuMzAKKzY1NzM4MGU0MzlmOWI3ZTA0OTE4Y2IxNjJjYjJl
NDYzODgyNDRiNDIgMS40LjMxCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5Ly50cmF2aXMueW1sIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0
eS9weS8udHJhdmlzLnltbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45MTdjNTlkMTRiNzA3MzliZGMwNDIyNTNiNTNj
MTMwZDk3NzI5MWZlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weS8udHJhdmlzLnltbApAQCAt
MCwwICsxLDI3IEBACitzdWRvOiBmYWxzZQorbGFuZ3VhZ2U6IHB5dGhvbgorcHl0aG9uOgorLSAn
Mi43JworLSAnMy40JworLSAnMy41JworLSAnMy42JworLSAncHlweS01LjQnCitlbnY6CistIERF
UFM9InB5dGVzdH49Mi45LjAiCistIERFUFM9InB5dGVzdH49My4wLjAiCisjLSBERVBTPSJweXRl
c3R+PTMuMS4wIgorCittYXRyaXg6CisKKyAgaW5jbHVkZToKKyAgLSBweXRob246ICcyLjcnCisg
ICAgIyB1c2luZyBhIGRpZmZlcmVudCBvcHRpb24gZHVlIHRvIHB5dGVzdC1hZGRvcHRzIHB5dGVz
dGVyIGlzc3VlcworICAgIGVudjogUFlURVNUX1hBRERPUFRTPSItbiAzIC0tcnVuc2xvd3Rlc3Rz
IiBERVBTPSJweXRlc3R+PTMuMC4wIHB5dGVzdC14ZGlzdCIKKyAgYWxsb3dfZmFpbHVyZXM6Cisg
IC0gcHl0aG9uOiAncHlweS01LjQnCitpbnN0YWxsOgorLSBwaXAgaW5zdGFsbCAtVSBzZXR1cHRv
b2xzIHNldHVwdG9vbHNfc2NtCistIHBpcCBpbnN0YWxsICRERVBTCistIHBpcCBpbnN0YWxsIC1V
IC4gLS1mb3JjZS1yZWluc3RhbGwKK3NjcmlwdDoKKy0gcHkudGVzdCAtLWxzb2YgJFBZVEVTVF9Y
QURET1BUUwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weS9iZW5jaC93M2MtaW1wb3J0LmxvZyBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkv
cHkvYmVuY2gvdzNjLWltcG9ydC5sb2cKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGY4
ZmFkZjAyZjQ3YzZlMmMxZTMxNDYxZWQ1ZjhjODNhNzhkZmVlMmMuLjAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weS9iZW5jaC93M2MtaW1wb3J0Lmxv
ZworKysgL2Rldi9udWxsCkBAIC0xLDE3ICswLDAgQEAKLVRoZSB0ZXN0cyBpbiB0aGlzIGRpcmVj
dG9yeSB3ZXJlIGltcG9ydGVkIGZyb20gdGhlIFczQyByZXBvc2l0b3J5LgotRG8gTk9UIG1vZGlm
eSB0aGVzZSB0ZXN0cyBkaXJlY3RseSBpbiBXZWJLaXQuCi1JbnN0ZWFkLCBjcmVhdGUgYSBwdWxs
IHJlcXVlc3Qgb24gdGhlIFdQVCBnaXRodWI6Ci0JaHR0cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0
Zm9ybS10ZXN0cy93cHQKLQotVGhlbiBydW4gdGhlIFRvb2xzL1NjcmlwdHMvaW1wb3J0LXczYy10
ZXN0cyBpbiBXZWJLaXQgdG8gcmVpbXBvcnQKLQotRG8gTk9UIG1vZGlmeSBvciByZW1vdmUgdGhp
cyBmaWxlLgotCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLVByb3BlcnRpZXMgcmVxdWlyaW5nIHZlbmRvciBw
cmVmaXhlczoKLU5vbmUKLVByb3BlcnR5IHZhbHVlcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVz
OgotTm9uZQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1MaXN0IG9mIGZpbGVzOgotL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvYmVuY2gv
bG9jYWxwYXRoLnB5CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5L2RvYy9fdGVtcGxhdGVzL3czYy1pbXBv
cnQubG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy90aGlyZF9wYXJ0eS9weS9kb2MvX3RlbXBsYXRlcy93M2MtaW1wb3J0LmxvZwpkZWxldGVkIGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggNTU5NWZiNWUyNDkzNzY2NTQ0NWQzYmY5ZTIwMTIzYTAxZjA3
YTUxYS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5
L3B5L2RvYy9fdGVtcGxhdGVzL3czYy1pbXBvcnQubG9nCisrKyAvZGV2L251bGwKQEAgLTEsMTcg
KzAsMCBAQAotVGhlIHRlc3RzIGluIHRoaXMgZGlyZWN0b3J5IHdlcmUgaW1wb3J0ZWQgZnJvbSB0
aGUgVzNDIHJlcG9zaXRvcnkuCi1EbyBOT1QgbW9kaWZ5IHRoZXNlIHRlc3RzIGRpcmVjdGx5IGlu
IFdlYktpdC4KLUluc3RlYWQsIGNyZWF0ZSBhIHB1bGwgcmVxdWVzdCBvbiB0aGUgV1BUIGdpdGh1
YjoKLQlodHRwczovL2dpdGh1Yi5jb20vd2ViLXBsYXRmb3JtLXRlc3RzL3dwdAotCi1UaGVuIHJ1
biB0aGUgVG9vbHMvU2NyaXB0cy9pbXBvcnQtdzNjLXRlc3RzIGluIFdlYktpdCB0byByZWltcG9y
dAotCi1EbyBOT1QgbW9kaWZ5IG9yIHJlbW92ZSB0aGlzIGZpbGUuCi0KLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LQotUHJvcGVydGllcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotUHJvcGVydHkg
dmFsdWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K
LUxpc3Qgb2YgZmlsZXM6Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weS9kb2MvX3RlbXBsYXRlcy9sYXlvdXQuaHRtbApkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy90aGlyZF9wYXJ0eS9weS9kb2MvYW5ub3VuY2UvdzNjLWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5L2Rv
Yy9hbm5vdW5jZS93M2MtaW1wb3J0LmxvZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
ZTMyMjA5YzZhMjllNjQ1ZTAzMmUwZDRiMWYyN2U4MjY2NmNmOThmOC4uMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5L2RvYy9hbm5vdW5jZS93M2Mt
aW1wb3J0LmxvZworKysgL2Rldi9udWxsCkBAIC0xLDMzICswLDAgQEAKLVRoZSB0ZXN0cyBpbiB0
aGlzIGRpcmVjdG9yeSB3ZXJlIGltcG9ydGVkIGZyb20gdGhlIFczQyByZXBvc2l0b3J5LgotRG8g
Tk9UIG1vZGlmeSB0aGVzZSB0ZXN0cyBkaXJlY3RseSBpbiBXZWJLaXQuCi1JbnN0ZWFkLCBjcmVh
dGUgYSBwdWxsIHJlcXVlc3Qgb24gdGhlIFdQVCBnaXRodWI6Ci0JaHR0cHM6Ly9naXRodWIuY29t
L3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQKLQotVGhlbiBydW4gdGhlIFRvb2xzL1NjcmlwdHMvaW1w
b3J0LXczYy10ZXN0cyBpbiBXZWJLaXQgdG8gcmVpbXBvcnQKLQotRG8gTk9UIG1vZGlmeSBvciBy
ZW1vdmUgdGhpcyBmaWxlLgotCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLVByb3BlcnRpZXMgcmVxdWlyaW5n
IHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLVByb3BlcnR5IHZhbHVlcyByZXF1aXJpbmcgdmVuZG9y
IHByZWZpeGVzOgotTm9uZQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1MaXN0IG9mIGZpbGVzOgotL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkv
cHkvZG9jL2Fubm91bmNlL3JlbGVhc2UtMC45LjAudHh0Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weS9kb2MvYW5ub3VuY2Uv
cmVsZWFzZS0wLjkuMi50eHQKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5L2RvYy9hbm5vdW5jZS9yZWxlYXNlLTEuMC4wLnR4
dAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhp
cmRfcGFydHkvcHkvZG9jL2Fubm91bmNlL3JlbGVhc2UtMS4wLjEudHh0Ci0vTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weS9kb2Mv
YW5ub3VuY2UvcmVsZWFzZS0xLjAuMi50eHQKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5L2RvYy9hbm5vdW5jZS9yZWxlYXNl
LTEuMS4wLnR4dAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvdGhpcmRfcGFydHkvcHkvZG9jL2Fubm91bmNlL3JlbGVhc2UtMS4xLjEudHh0Ci0vTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0
eS9weS9kb2MvYW5ub3VuY2UvcmVsZWFzZS0xLjIuMC50eHQKLS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5L2RvYy9hbm5vdW5j
ZS9yZWxlYXNlLTEuMi4xLnR4dAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvZG9jL2Fubm91bmNlL3JlbGVhc2UtMS4zLjAu
dHh0Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90
aGlyZF9wYXJ0eS9weS9kb2MvYW5ub3VuY2UvcmVsZWFzZS0xLjMuMS50eHQKLS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5L2Rv
Yy9hbm5vdW5jZS9yZWxlYXNlLTEuMy4yLnR4dAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvZG9jL2Fubm91bmNlL3JlbGVh
c2UtMS4zLjMudHh0Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy90aGlyZF9wYXJ0eS9weS9kb2MvYW5ub3VuY2UvcmVsZWFzZS0xLjMuNC50eHQKLS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3Bh
cnR5L3B5L2RvYy9hbm5vdW5jZS9yZWxlYXNlLTEuNC4wLnR4dAotL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvZG9jL2Fubm91
bmNlL3JlbGVhc2UtMS40LjEudHh0Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weS9kb2MvYW5ub3VuY2UvcmVsZWFzZXMudHh0
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3RoaXJkX3BhcnR5L3B5L2RvYy9leGFtcGxlL3czYy1pbXBvcnQubG9nIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9w
eS9kb2MvZXhhbXBsZS93M2MtaW1wb3J0LmxvZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggZjcxZGNmMmMyMGMzYzk2YmQ0ZTlmOGFiODI3NDZiNzQ1ZDUwNzQwYy4uMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5L2RvYy9leGFtcGxlL3cz
Yy1pbXBvcnQubG9nCisrKyAvZGV2L251bGwKQEAgLTEsMTkgKzAsMCBAQAotVGhlIHRlc3RzIGlu
IHRoaXMgZGlyZWN0b3J5IHdlcmUgaW1wb3J0ZWQgZnJvbSB0aGUgVzNDIHJlcG9zaXRvcnkuCi1E
byBOT1QgbW9kaWZ5IHRoZXNlIHRlc3RzIGRpcmVjdGx5IGluIFdlYktpdC4KLUluc3RlYWQsIGNy
ZWF0ZSBhIHB1bGwgcmVxdWVzdCBvbiB0aGUgV1BUIGdpdGh1YjoKLQlodHRwczovL2dpdGh1Yi5j
b20vd2ViLXBsYXRmb3JtLXRlc3RzL3dwdAotCi1UaGVuIHJ1biB0aGUgVG9vbHMvU2NyaXB0cy9p
bXBvcnQtdzNjLXRlc3RzIGluIFdlYktpdCB0byByZWltcG9ydAotCi1EbyBOT1QgbW9kaWZ5IG9y
IHJlbW92ZSB0aGlzIGZpbGUuCi0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotUHJvcGVydGllcyByZXF1aXJp
bmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotUHJvcGVydHkgdmFsdWVzIHJlcXVpcmluZyB2ZW5k
b3IgcHJlZml4ZXM6Ci1Ob25lCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLUxpc3Qgb2YgZmlsZXM6Ci0vTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0
eS9weS9kb2MvZXhhbXBsZS9nZW5odG1sLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weS9kb2MvZXhhbXBsZS9nZW5odG1s
Y3NzLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy90aGlyZF9wYXJ0eS9weS9kb2MvZXhhbXBsZS9nZW54bWwucHkKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkv
cHkvZG9jL2ltZy93M2MtaW1wb3J0LmxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvZG9jL2ltZy93M2MtaW1wb3J0Lmxv
ZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggM2U4OWE2NmU4MGQ2ZWUzYTU1ZGJiNWRk
YzQwYThlZDM5MGMwMWRkOS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3RoaXJkX3BhcnR5L3B5L2RvYy9pbWcvdzNjLWltcG9ydC5sb2cKKysrIC9kZXYvbnVsbApAQCAt
MSwxNyArMCwwIEBACi1UaGUgdGVzdHMgaW4gdGhpcyBkaXJlY3Rvcnkgd2VyZSBpbXBvcnRlZCBm
cm9tIHRoZSBXM0MgcmVwb3NpdG9yeS4KLURvIE5PVCBtb2RpZnkgdGhlc2UgdGVzdHMgZGlyZWN0
bHkgaW4gV2ViS2l0LgotSW5zdGVhZCwgY3JlYXRlIGEgcHVsbCByZXF1ZXN0IG9uIHRoZSBXUFQg
Z2l0aHViOgotCWh0dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxhdGZvcm0tdGVzdHMvd3B0Ci0KLVRo
ZW4gcnVuIHRoZSBUb29scy9TY3JpcHRzL2ltcG9ydC13M2MtdGVzdHMgaW4gV2ViS2l0IHRvIHJl
aW1wb3J0Ci0KLURvIE5PVCBtb2RpZnkgb3IgcmVtb3ZlIHRoaXMgZmlsZS4KLQotLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tCi1Qcm9wZXJ0aWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi1Qcm9w
ZXJ0eSB2YWx1ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLQotTGlzdCBvZiBmaWxlczoKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5L2RvYy9pbWcvcHlsaWIucG5nCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3Ro
aXJkX3BhcnR5L3B5L2RvYy93M2MtaW1wb3J0LmxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvZG9jL3czYy1pbXBvcnQu
bG9nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiM2FmMDU1YmY4NGFlNzE0ODJhMGJi
ZDA0NDIxOGViNDk3NTI5ZDg5Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvdGhpcmRfcGFydHkvcHkvZG9jL3czYy1pbXBvcnQubG9nCisrKyAvZGV2L251bGwKQEAgLTEs
MzEgKzAsMCBAQAotVGhlIHRlc3RzIGluIHRoaXMgZGlyZWN0b3J5IHdlcmUgaW1wb3J0ZWQgZnJv
bSB0aGUgVzNDIHJlcG9zaXRvcnkuCi1EbyBOT1QgbW9kaWZ5IHRoZXNlIHRlc3RzIGRpcmVjdGx5
IGluIFdlYktpdC4KLUluc3RlYWQsIGNyZWF0ZSBhIHB1bGwgcmVxdWVzdCBvbiB0aGUgV1BUIGdp
dGh1YjoKLQlodHRwczovL2dpdGh1Yi5jb20vd2ViLXBsYXRmb3JtLXRlc3RzL3dwdAotCi1UaGVu
IHJ1biB0aGUgVG9vbHMvU2NyaXB0cy9pbXBvcnQtdzNjLXRlc3RzIGluIFdlYktpdCB0byByZWlt
cG9ydAotCi1EbyBOT1QgbW9kaWZ5IG9yIHJlbW92ZSB0aGlzIGZpbGUuCi0KLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLQotUHJvcGVydGllcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotUHJvcGVy
dHkgdmFsdWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0KLUxpc3Qgb2YgZmlsZXM6Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weS9kb2MvTWFrZWZpbGUKLS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5L2RvYy9j
aGFuZ2Vsb2cudHh0Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy90aGlyZF9wYXJ0eS9weS9kb2MvY29kZS50eHQKLS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5L2RvYy9jb25mLnB5
Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS9weS9kb2MvZG93bmxvYWQuaHRtbAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvZG9jL2ZhcS50eHQKLS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5
L3B5L2RvYy9pbmRleC50eHQKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5L2RvYy9pbnN0YWxsLnR4dAotL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvZG9j
L2lvLnR4dAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvdGhpcmRfcGFydHkvcHkvZG9jL2xpbmtzLmluYwotL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvZG9jL2xvZy50eHQKLS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3Bh
cnR5L3B5L2RvYy9taXNjLnR4dAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvZG9jL3BhdGgudHh0Ci0vTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weS9kb2Mv
c3R5bGUuY3NzCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy90aGlyZF9wYXJ0eS9weS9kb2MveG1sLnR4dApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weS9weS9f
Y29kZS93M2MtaW1wb3J0LmxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvcHkvX2NvZGUvdzNjLWltcG9ydC5sb2cKZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDdiYTFhZDJjZWE2YmU4OGY1ZWRhMjFjYWRmMDEw
YjU0NTQzYjc4MTEuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0t
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS9weS9weS9fY29kZS93M2MtaW1wb3J0LmxvZworKysgL2Rldi9udWxsCkBAIC0xLDIz
ICswLDAgQEAKLVRoZSB0ZXN0cyBpbiB0aGlzIGRpcmVjdG9yeSB3ZXJlIGltcG9ydGVkIGZyb20g
dGhlIFczQyByZXBvc2l0b3J5LgotRG8gTk9UIG1vZGlmeSB0aGVzZSB0ZXN0cyBkaXJlY3RseSBp
biBXZWJLaXQuCi1JbnN0ZWFkLCBjcmVhdGUgYSBwdWxsIHJlcXVlc3Qgb24gdGhlIFdQVCBnaXRo
dWI6Ci0JaHR0cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQKLQotVGhlbiBy
dW4gdGhlIFRvb2xzL1NjcmlwdHMvaW1wb3J0LXczYy10ZXN0cyBpbiBXZWJLaXQgdG8gcmVpbXBv
cnQKLQotRG8gTk9UIG1vZGlmeSBvciByZW1vdmUgdGhpcyBmaWxlLgotCi0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0KLVByb3BlcnRpZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLVByb3BlcnR5
IHZhbHVlcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
Ci1MaXN0IG9mIGZpbGVzOgotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvcHkvX2NvZGUvX19pbml0X18ucHkKLS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5
L3B5L19jb2RlL19hc3NlcnRpb25uZXcucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5L3B5L19jb2RlL19hc3NlcnRpb25v
bGQucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3RoaXJkX3BhcnR5L3B5L3B5L19jb2RlL19weTJ0cmFjZWJhY2sucHkKLS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5L3B5L19j
b2RlL2Fzc2VydGlvbi5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvcHkvX2NvZGUvY29kZS5weQotL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvcHkv
X2NvZGUvc291cmNlLnB5CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5L3B5L19pby93M2MtaW1wb3J0Lmxv
ZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhp
cmRfcGFydHkvcHkvcHkvX2lvL3czYy1pbXBvcnQubG9nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwZTQ0Mzk3MzYwOThhNWU3NWU5NTkzOTFkMGYzZjUyOGQ3ZTM1ODQyLi4wMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvcHkvX2lvL3cz
Yy1pbXBvcnQubG9nCisrKyAvZGV2L251bGwKQEAgLTEsMjAgKzAsMCBAQAotVGhlIHRlc3RzIGlu
IHRoaXMgZGlyZWN0b3J5IHdlcmUgaW1wb3J0ZWQgZnJvbSB0aGUgVzNDIHJlcG9zaXRvcnkuCi1E
byBOT1QgbW9kaWZ5IHRoZXNlIHRlc3RzIGRpcmVjdGx5IGluIFdlYktpdC4KLUluc3RlYWQsIGNy
ZWF0ZSBhIHB1bGwgcmVxdWVzdCBvbiB0aGUgV1BUIGdpdGh1YjoKLQlodHRwczovL2dpdGh1Yi5j
b20vd2ViLXBsYXRmb3JtLXRlc3RzL3dwdAotCi1UaGVuIHJ1biB0aGUgVG9vbHMvU2NyaXB0cy9p
bXBvcnQtdzNjLXRlc3RzIGluIFdlYktpdCB0byByZWltcG9ydAotCi1EbyBOT1QgbW9kaWZ5IG9y
IHJlbW92ZSB0aGlzIGZpbGUuCi0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotUHJvcGVydGllcyByZXF1aXJp
bmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotUHJvcGVydHkgdmFsdWVzIHJlcXVpcmluZyB2ZW5k
b3IgcHJlZml4ZXM6Ci1Ob25lCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLUxpc3Qgb2YgZmlsZXM6Ci0vTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0
eS9weS9weS9faW8vX19pbml0X18ucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5L3B5L19pby9jYXB0dXJlLnB5Ci0vTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0
eS9weS9weS9faW8vc2FmZXJlcHIucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5L3B5L19pby90ZXJtaW5hbHdyaXRlci5w
eQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy90aGlyZF9wYXJ0eS9weS9weS9fbG9nL3czYy1pbXBvcnQubG9nIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weS9w
eS9fbG9nL3czYy1pbXBvcnQubG9nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBmNzJi
MjQyZWRkN2YzMzIzNmY3MjhjNzZkMzBlYmFiZmFmM2NkMzhhLi4wMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvcHkvX2xvZy93M2MtaW1wb3J0Lmxv
ZworKysgL2Rldi9udWxsCkBAIC0xLDE5ICswLDAgQEAKLVRoZSB0ZXN0cyBpbiB0aGlzIGRpcmVj
dG9yeSB3ZXJlIGltcG9ydGVkIGZyb20gdGhlIFczQyByZXBvc2l0b3J5LgotRG8gTk9UIG1vZGlm
eSB0aGVzZSB0ZXN0cyBkaXJlY3RseSBpbiBXZWJLaXQuCi1JbnN0ZWFkLCBjcmVhdGUgYSBwdWxs
IHJlcXVlc3Qgb24gdGhlIFdQVCBnaXRodWI6Ci0JaHR0cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0
Zm9ybS10ZXN0cy93cHQKLQotVGhlbiBydW4gdGhlIFRvb2xzL1NjcmlwdHMvaW1wb3J0LXczYy10
ZXN0cyBpbiBXZWJLaXQgdG8gcmVpbXBvcnQKLQotRG8gTk9UIG1vZGlmeSBvciByZW1vdmUgdGhp
cyBmaWxlLgotCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLVByb3BlcnRpZXMgcmVxdWlyaW5nIHZlbmRvciBw
cmVmaXhlczoKLU5vbmUKLVByb3BlcnR5IHZhbHVlcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVz
OgotTm9uZQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1MaXN0IG9mIGZpbGVzOgotL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvcHkvX2xv
Zy9fX2luaXRfXy5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvcHkvX2xvZy9sb2cucHkKLS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5L3B5L19sb2cv
d2FybmluZy5weQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weS9weS9fcGF0aC93M2MtaW1wb3J0LmxvZyBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRf
cGFydHkvcHkvcHkvX3BhdGgvdzNjLWltcG9ydC5sb2cKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDg0ZWMyZjkyM2ZhZGE5ZmEwYjJmYjU4ZGUzMTkzY2ViM2FkMjllOTUuLjAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weS9weS9fcGF0aC93
M2MtaW1wb3J0LmxvZworKysgL2Rldi9udWxsCkBAIC0xLDIyICswLDAgQEAKLVRoZSB0ZXN0cyBp
biB0aGlzIGRpcmVjdG9yeSB3ZXJlIGltcG9ydGVkIGZyb20gdGhlIFczQyByZXBvc2l0b3J5Lgot
RG8gTk9UIG1vZGlmeSB0aGVzZSB0ZXN0cyBkaXJlY3RseSBpbiBXZWJLaXQuCi1JbnN0ZWFkLCBj
cmVhdGUgYSBwdWxsIHJlcXVlc3Qgb24gdGhlIFdQVCBnaXRodWI6Ci0JaHR0cHM6Ly9naXRodWIu
Y29tL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQKLQotVGhlbiBydW4gdGhlIFRvb2xzL1NjcmlwdHMv
aW1wb3J0LXczYy10ZXN0cyBpbiBXZWJLaXQgdG8gcmVpbXBvcnQKLQotRG8gTk9UIG1vZGlmeSBv
ciByZW1vdmUgdGhpcyBmaWxlLgotCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLVByb3BlcnRpZXMgcmVxdWly
aW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLVByb3BlcnR5IHZhbHVlcyByZXF1aXJpbmcgdmVu
ZG9yIHByZWZpeGVzOgotTm9uZQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1MaXN0IG9mIGZpbGVzOgotL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFy
dHkvcHkvcHkvX3BhdGgvX19pbml0X18ucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5L3B5L19wYXRoL2NhY2hldXRpbC5w
eQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhp
cmRfcGFydHkvcHkvcHkvX3BhdGgvY29tbW9uLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weS9weS9fcGF0aC9sb2NhbC5w
eQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhp
cmRfcGFydHkvcHkvcHkvX3BhdGgvc3ZudXJsLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weS9weS9fcGF0aC9zdm53Yy5w
eQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy90aGlyZF9wYXJ0eS9weS9weS9fcHJvY2Vzcy93M2MtaW1wb3J0LmxvZyBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkv
cHkvcHkvX3Byb2Nlc3MvdzNjLWltcG9ydC5sb2cKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDlhNTQ1NjcwZjJlOThmZDA5OGYwMjNhZTk2MWUyN2UwNDZmOGM0MWIuLjAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weS9weS9fcHJvY2Vzcy93
M2MtaW1wb3J0LmxvZworKysgL2Rldi9udWxsCkBAIC0xLDIwICswLDAgQEAKLVRoZSB0ZXN0cyBp
biB0aGlzIGRpcmVjdG9yeSB3ZXJlIGltcG9ydGVkIGZyb20gdGhlIFczQyByZXBvc2l0b3J5Lgot
RG8gTk9UIG1vZGlmeSB0aGVzZSB0ZXN0cyBkaXJlY3RseSBpbiBXZWJLaXQuCi1JbnN0ZWFkLCBj
cmVhdGUgYSBwdWxsIHJlcXVlc3Qgb24gdGhlIFdQVCBnaXRodWI6Ci0JaHR0cHM6Ly9naXRodWIu
Y29tL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQKLQotVGhlbiBydW4gdGhlIFRvb2xzL1NjcmlwdHMv
aW1wb3J0LXczYy10ZXN0cyBpbiBXZWJLaXQgdG8gcmVpbXBvcnQKLQotRG8gTk9UIG1vZGlmeSBv
ciByZW1vdmUgdGhpcyBmaWxlLgotCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLVByb3BlcnRpZXMgcmVxdWly
aW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLVByb3BlcnR5IHZhbHVlcyByZXF1aXJpbmcgdmVu
ZG9yIHByZWZpeGVzOgotTm9uZQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1MaXN0IG9mIGZpbGVzOgotL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFy
dHkvcHkvcHkvX3Byb2Nlc3MvX19pbml0X18ucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5L3B5L19wcm9jZXNzL2NtZGV4
ZWMucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3RoaXJkX3BhcnR5L3B5L3B5L19wcm9jZXNzL2ZvcmtlZGZ1bmMucHkKLS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5L3B5L19w
cm9jZXNzL2tpbGxwcm9jLnB5CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5L3B5L192ZW5kb3JlZF9wYWNr
YWdlcy9fX2luaXRfXy5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvcHkvX3ZlbmRvcmVkX3BhY2thZ2VzL19faW5pdF9f
LnB5CmluZGV4IGE2ODM0YjgyODVhNTZiZWYwZTE1NDNmZDkwMWM3ZTZmMmY4YmMyMDIuLmU2OWRl
MjliYjJkMWQ2NDM0YjhiMjlhZTc3NWFkOGMyZTQ4YzUzOTEgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkv
cHkvX3ZlbmRvcmVkX3BhY2thZ2VzL19faW5pdF9fLnB5CisrKyBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvcHkvX3ZlbmRv
cmVkX3BhY2thZ2VzL19faW5pdF9fLnB5CkBAIC0xICswLDAgQEAKLSMgVGhpcyBmaWxlIGlzIHJl
cXVpcmVkIGZvciBQeXRob24gdG8gc2VhcmNoIHRoaXMgZGlyZWN0b3J5IGZvciBtb2R1bGVzLgpc
IE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvcHkvX3ZlbmRv
cmVkX3BhY2thZ2VzL2FwaXBrZy0xLjQuZGlzdC1pbmZvL3czYy1pbXBvcnQubG9nIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9w
eS9weS9fdmVuZG9yZWRfcGFja2FnZXMvYXBpcGtnLTEuNC5kaXN0LWluZm8vdzNjLWltcG9ydC5s
b2cKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGY3NzZlZmM3ODFjOWU5MDZhMTBmMmZl
Y2Y1MWU0MmYzMWRmZjkwODMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy90aGlyZF9wYXJ0eS9weS9weS9fdmVuZG9yZWRfcGFja2FnZXMvYXBpcGtnLTEuNC5kaXN0LWlu
Zm8vdzNjLWltcG9ydC5sb2cKKysrIC9kZXYvbnVsbApAQCAtMSwyMyArMCwwIEBACi1UaGUgdGVz
dHMgaW4gdGhpcyBkaXJlY3Rvcnkgd2VyZSBpbXBvcnRlZCBmcm9tIHRoZSBXM0MgcmVwb3NpdG9y
eS4KLURvIE5PVCBtb2RpZnkgdGhlc2UgdGVzdHMgZGlyZWN0bHkgaW4gV2ViS2l0LgotSW5zdGVh
ZCwgY3JlYXRlIGEgcHVsbCByZXF1ZXN0IG9uIHRoZSBXUFQgZ2l0aHViOgotCWh0dHBzOi8vZ2l0
aHViLmNvbS93ZWItcGxhdGZvcm0tdGVzdHMvd3B0Ci0KLVRoZW4gcnVuIHRoZSBUb29scy9TY3Jp
cHRzL2ltcG9ydC13M2MtdGVzdHMgaW4gV2ViS2l0IHRvIHJlaW1wb3J0Ci0KLURvIE5PVCBtb2Rp
Znkgb3IgcmVtb3ZlIHRoaXMgZmlsZS4KLQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1Qcm9wZXJ0aWVzIHJl
cXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi1Qcm9wZXJ0eSB2YWx1ZXMgcmVxdWlyaW5n
IHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotTGlzdCBvZiBmaWxlczoK
LS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJk
X3BhcnR5L3B5L3B5L192ZW5kb3JlZF9wYWNrYWdlcy9hcGlwa2ctMS40LmRpc3QtaW5mby9ERVND
UklQVElPTi5yc3QKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3RoaXJkX3BhcnR5L3B5L3B5L192ZW5kb3JlZF9wYWNrYWdlcy9hcGlwa2ctMS40LmRp
c3QtaW5mby9JTlNUQUxMRVIKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5L3B5L192ZW5kb3JlZF9wYWNrYWdlcy9hcGlwa2ct
MS40LmRpc3QtaW5mby9NRVRBREFUQQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvcHkvX3ZlbmRvcmVkX3BhY2thZ2VzL2Fw
aXBrZy0xLjQuZGlzdC1pbmZvL1JFQ09SRAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvcHkvX3ZlbmRvcmVkX3BhY2thZ2Vz
L2FwaXBrZy0xLjQuZGlzdC1pbmZvL1dIRUVMCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weS9weS9fdmVuZG9yZWRfcGFja2Fn
ZXMvYXBpcGtnLTEuNC5kaXN0LWluZm8vbWV0YWRhdGEuanNvbgotL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvcHkvX3ZlbmRv
cmVkX3BhY2thZ2VzL2FwaXBrZy0xLjQuZGlzdC1pbmZvL3RvcF9sZXZlbC50eHQKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhp
cmRfcGFydHkvcHkvcHkvX3ZlbmRvcmVkX3BhY2thZ2VzL2luaWNvbmZpZy0xLjAuMC5kaXN0LWlu
Zm8vdzNjLWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5L3B5L192ZW5kb3JlZF9wYWNrYWdlcy9pbmljb25m
aWctMS4wLjAuZGlzdC1pbmZvL3czYy1pbXBvcnQubG9nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAxNmRmZWFkZGUwYzYyMmNmNWFmYzQzZDUzMWRjZDE3NTg0NDMzYmQwLi4wMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvcHkvX3ZlbmRv
cmVkX3BhY2thZ2VzL2luaWNvbmZpZy0xLjAuMC5kaXN0LWluZm8vdzNjLWltcG9ydC5sb2cKKysr
IC9kZXYvbnVsbApAQCAtMSwyMyArMCwwIEBACi1UaGUgdGVzdHMgaW4gdGhpcyBkaXJlY3Rvcnkg
d2VyZSBpbXBvcnRlZCBmcm9tIHRoZSBXM0MgcmVwb3NpdG9yeS4KLURvIE5PVCBtb2RpZnkgdGhl
c2UgdGVzdHMgZGlyZWN0bHkgaW4gV2ViS2l0LgotSW5zdGVhZCwgY3JlYXRlIGEgcHVsbCByZXF1
ZXN0IG9uIHRoZSBXUFQgZ2l0aHViOgotCWh0dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxhdGZvcm0t
dGVzdHMvd3B0Ci0KLVRoZW4gcnVuIHRoZSBUb29scy9TY3JpcHRzL2ltcG9ydC13M2MtdGVzdHMg
aW4gV2ViS2l0IHRvIHJlaW1wb3J0Ci0KLURvIE5PVCBtb2RpZnkgb3IgcmVtb3ZlIHRoaXMgZmls
ZS4KLQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1Qcm9wZXJ0aWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4
ZXM6Ci1Ob25lCi1Qcm9wZXJ0eSB2YWx1ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5v
bmUKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLQotTGlzdCBvZiBmaWxlczoKLS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5L3B5L192ZW5kb3Jl
ZF9wYWNrYWdlcy9pbmljb25maWctMS4wLjAuZGlzdC1pbmZvL0RFU0NSSVBUSU9OLnJzdAotL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFy
dHkvcHkvcHkvX3ZlbmRvcmVkX3BhY2thZ2VzL2luaWNvbmZpZy0xLjAuMC5kaXN0LWluZm8vSU5T
VEFMTEVSCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy90aGlyZF9wYXJ0eS9weS9weS9fdmVuZG9yZWRfcGFja2FnZXMvaW5pY29uZmlnLTEuMC4wLmRp
c3QtaW5mby9NRVRBREFUQQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvcHkvX3ZlbmRvcmVkX3BhY2thZ2VzL2luaWNvbmZp
Zy0xLjAuMC5kaXN0LWluZm8vUkVDT1JECi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weS9weS9fdmVuZG9yZWRfcGFja2FnZXMv
aW5pY29uZmlnLTEuMC4wLmRpc3QtaW5mby9XSEVFTAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvcHkvX3ZlbmRvcmVkX3Bh
Y2thZ2VzL2luaWNvbmZpZy0xLjAuMC5kaXN0LWluZm8vbWV0YWRhdGEuanNvbgotL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkv
cHkvX3ZlbmRvcmVkX3BhY2thZ2VzL2luaWNvbmZpZy0xLjAuMC5kaXN0LWluZm8vdG9wX2xldmVs
LnR4dApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weS9weS9fdmVuZG9yZWRfcGFja2FnZXMvdzNjLWltcG9y
dC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3RoaXJkX3BhcnR5L3B5L3B5L192ZW5kb3JlZF9wYWNrYWdlcy93M2MtaW1wb3J0LmxvZwpkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNjI3NzJhNzlkMDMxNDMzNDA0MGQwN2VkMjQ1YTZh
YzIxZWE4OGJlYi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0g
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJk
X3BhcnR5L3B5L3B5L192ZW5kb3JlZF9wYWNrYWdlcy93M2MtaW1wb3J0LmxvZworKysgL2Rldi9u
dWxsCkBAIC0xLDE5ICswLDAgQEAKLVRoZSB0ZXN0cyBpbiB0aGlzIGRpcmVjdG9yeSB3ZXJlIGlt
cG9ydGVkIGZyb20gdGhlIFczQyByZXBvc2l0b3J5LgotRG8gTk9UIG1vZGlmeSB0aGVzZSB0ZXN0
cyBkaXJlY3RseSBpbiBXZWJLaXQuCi1JbnN0ZWFkLCBjcmVhdGUgYSBwdWxsIHJlcXVlc3Qgb24g
dGhlIFdQVCBnaXRodWI6Ci0JaHR0cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9ybS10ZXN0cy93
cHQKLQotVGhlbiBydW4gdGhlIFRvb2xzL1NjcmlwdHMvaW1wb3J0LXczYy10ZXN0cyBpbiBXZWJL
aXQgdG8gcmVpbXBvcnQKLQotRG8gTk9UIG1vZGlmeSBvciByZW1vdmUgdGhpcyBmaWxlLgotCi0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0KLVByb3BlcnRpZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5v
bmUKLVByb3BlcnR5IHZhbHVlcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tCi1MaXN0IG9mIGZpbGVzOgotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvcHkvX3ZlbmRvcmVkX3BhY2th
Z2VzL19faW5pdF9fLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weS9weS9fdmVuZG9yZWRfcGFja2FnZXMvYXBpcGtnLnB5
Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS9weS9weS9fdmVuZG9yZWRfcGFja2FnZXMvaW5pY29uZmlnLnB5CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJk
X3BhcnR5L3B5L3B5L3czYy1pbXBvcnQubG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weS9weS93M2MtaW1wb3J0LmxvZwpk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZjQyYTMwY2QwMGRmYzE3YjY0ZjdiNzVmYjQy
MTU4ZmI4YWY4ZTQ1MS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAot
LS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3Ro
aXJkX3BhcnR5L3B5L3B5L3czYy1pbXBvcnQubG9nCisrKyAvZGV2L251bGwKQEAgLTEsMjMgKzAs
MCBAQAotVGhlIHRlc3RzIGluIHRoaXMgZGlyZWN0b3J5IHdlcmUgaW1wb3J0ZWQgZnJvbSB0aGUg
VzNDIHJlcG9zaXRvcnkuCi1EbyBOT1QgbW9kaWZ5IHRoZXNlIHRlc3RzIGRpcmVjdGx5IGluIFdl
YktpdC4KLUluc3RlYWQsIGNyZWF0ZSBhIHB1bGwgcmVxdWVzdCBvbiB0aGUgV1BUIGdpdGh1YjoK
LQlodHRwczovL2dpdGh1Yi5jb20vd2ViLXBsYXRmb3JtLXRlc3RzL3dwdAotCi1UaGVuIHJ1biB0
aGUgVG9vbHMvU2NyaXB0cy9pbXBvcnQtdzNjLXRlc3RzIGluIFdlYktpdCB0byByZWltcG9ydAot
Ci1EbyBOT1QgbW9kaWZ5IG9yIHJlbW92ZSB0aGlzIGZpbGUuCi0KLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQot
UHJvcGVydGllcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotUHJvcGVydHkgdmFs
dWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLUxp
c3Qgb2YgZmlsZXM6Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy90aGlyZF9wYXJ0eS9weS9weS9fX2luaXRfXy5weQotL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvcHkvX19tZXRh
aW5mby5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvdGhpcmRfcGFydHkvcHkvcHkvX2J1aWx0aW4ucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5L3B5L19lcnJvci5weQot
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRf
cGFydHkvcHkvcHkvX3N0ZC5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvcHkvX3htbGdlbi5weQotL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvcHkv
dGVzdC5weQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weS90YXNrcy93M2MtaW1wb3J0LmxvZyBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkv
cHkvdGFza3MvdzNjLWltcG9ydC5sb2cKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDhl
OGQyNDJmNTg0NzJlOWZkMGEwOGYyNjU3MWJiMzQ3OTYwZGNhNWUuLjAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weS90YXNrcy93M2MtaW1wb3J0Lmxv
ZworKysgL2Rldi9udWxsCkBAIC0xLDE4ICswLDAgQEAKLVRoZSB0ZXN0cyBpbiB0aGlzIGRpcmVj
dG9yeSB3ZXJlIGltcG9ydGVkIGZyb20gdGhlIFczQyByZXBvc2l0b3J5LgotRG8gTk9UIG1vZGlm
eSB0aGVzZSB0ZXN0cyBkaXJlY3RseSBpbiBXZWJLaXQuCi1JbnN0ZWFkLCBjcmVhdGUgYSBwdWxs
IHJlcXVlc3Qgb24gdGhlIFdQVCBnaXRodWI6Ci0JaHR0cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0
Zm9ybS10ZXN0cy93cHQKLQotVGhlbiBydW4gdGhlIFRvb2xzL1NjcmlwdHMvaW1wb3J0LXczYy10
ZXN0cyBpbiBXZWJLaXQgdG8gcmVpbXBvcnQKLQotRG8gTk9UIG1vZGlmeSBvciByZW1vdmUgdGhp
cyBmaWxlLgotCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLVByb3BlcnRpZXMgcmVxdWlyaW5nIHZlbmRvciBw
cmVmaXhlczoKLU5vbmUKLVByb3BlcnR5IHZhbHVlcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVz
OgotTm9uZQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1MaXN0IG9mIGZpbGVzOgotL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvdGFza3Mv
X19pbml0X18ucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3RoaXJkX3BhcnR5L3B5L3Rhc2tzL3ZlbmRvcmluZy5weQpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0
eS9weS90ZXN0aW5nL2NvZGUvdzNjLWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5L3Rlc3RpbmcvY29kZS93
M2MtaW1wb3J0LmxvZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNzJjMzg0OTE5YWIx
YmQ5Zjc3NTU3MDEzMDk2MmQ3M2E4ODk4MTE0Ni4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5L3Rlc3RpbmcvY29kZS93M2MtaW1wb3J0LmxvZwor
KysgL2Rldi9udWxsCkBAIC0xLDIwICswLDAgQEAKLVRoZSB0ZXN0cyBpbiB0aGlzIGRpcmVjdG9y
eSB3ZXJlIGltcG9ydGVkIGZyb20gdGhlIFczQyByZXBvc2l0b3J5LgotRG8gTk9UIG1vZGlmeSB0
aGVzZSB0ZXN0cyBkaXJlY3RseSBpbiBXZWJLaXQuCi1JbnN0ZWFkLCBjcmVhdGUgYSBwdWxsIHJl
cXVlc3Qgb24gdGhlIFdQVCBnaXRodWI6Ci0JaHR0cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9y
bS10ZXN0cy93cHQKLQotVGhlbiBydW4gdGhlIFRvb2xzL1NjcmlwdHMvaW1wb3J0LXczYy10ZXN0
cyBpbiBXZWJLaXQgdG8gcmVpbXBvcnQKLQotRG8gTk9UIG1vZGlmeSBvciByZW1vdmUgdGhpcyBm
aWxlLgotCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLVByb3BlcnRpZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVm
aXhlczoKLU5vbmUKLVByb3BlcnR5IHZhbHVlcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgot
Tm9uZQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1MaXN0IG9mIGZpbGVzOgotL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvdGVzdGluZy9j
b2RlL3Rlc3RfYXNzZXJ0aW9uLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weS90ZXN0aW5nL2NvZGUvdGVzdF9jb2RlLnB5
Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS9weS90ZXN0aW5nL2NvZGUvdGVzdF9leGNpbmZvLnB5Ci0vTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weS90ZXN0aW5n
L2NvZGUvdGVzdF9zb3VyY2UucHkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvdGVzdGluZy9pb18vdzNj
LWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3RoaXJkX3BhcnR5L3B5L3Rlc3RpbmcvaW9fL3czYy1pbXBvcnQubG9nCmRlbGV0ZWQg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4N2MzNmMxZjg1ZGEyYmI0OTQ4YjAzNjNmZGU3NDRkZGRk
MWU5NzFmLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFy
dHkvcHkvdGVzdGluZy9pb18vdzNjLWltcG9ydC5sb2cKKysrIC9kZXYvbnVsbApAQCAtMSwyMCAr
MCwwIEBACi1UaGUgdGVzdHMgaW4gdGhpcyBkaXJlY3Rvcnkgd2VyZSBpbXBvcnRlZCBmcm9tIHRo
ZSBXM0MgcmVwb3NpdG9yeS4KLURvIE5PVCBtb2RpZnkgdGhlc2UgdGVzdHMgZGlyZWN0bHkgaW4g
V2ViS2l0LgotSW5zdGVhZCwgY3JlYXRlIGEgcHVsbCByZXF1ZXN0IG9uIHRoZSBXUFQgZ2l0aHVi
OgotCWh0dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxhdGZvcm0tdGVzdHMvd3B0Ci0KLVRoZW4gcnVu
IHRoZSBUb29scy9TY3JpcHRzL2ltcG9ydC13M2MtdGVzdHMgaW4gV2ViS2l0IHRvIHJlaW1wb3J0
Ci0KLURvIE5PVCBtb2RpZnkgb3IgcmVtb3ZlIHRoaXMgZmlsZS4KLQotLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
Ci1Qcm9wZXJ0aWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi1Qcm9wZXJ0eSB2
YWx1ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQot
TGlzdCBvZiBmaWxlczoKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5L3Rlc3RpbmcvaW9fL19faW5pdF9fLnB5Ci0vTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9w
eS90ZXN0aW5nL2lvXy90ZXN0X2NhcHR1cmUucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5L3Rlc3RpbmcvaW9fL3Rlc3Rf
c2FmZXJlcHIucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3RoaXJkX3BhcnR5L3B5L3Rlc3RpbmcvaW9fL3Rlc3RfdGVybWluYWx3cml0ZXIucHkK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvdGhpcmRfcGFydHkvcHkvdGVzdGluZy9sb2cvX19pbml0X18ucHkgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5L3Rl
c3RpbmcvbG9nL19faW5pdF9fLnB5CmluZGV4IGE2ODM0YjgyODVhNTZiZWYwZTE1NDNmZDkwMWM3
ZTZmMmY4YmMyMDIuLmU2OWRlMjliYjJkMWQ2NDM0YjhiMjlhZTc3NWFkOGMyZTQ4YzUzOTEgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvdGhpcmRfcGFydHkvcHkvdGVzdGluZy9sb2cvX19pbml0X18ucHkKKysrIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weS90
ZXN0aW5nL2xvZy9fX2luaXRfXy5weQpAQCAtMSArMCwwIEBACi0jIFRoaXMgZmlsZSBpcyByZXF1
aXJlZCBmb3IgUHl0aG9uIHRvIHNlYXJjaCB0aGlzIGRpcmVjdG9yeSBmb3IgbW9kdWxlcy4KXCBO
byBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5L3Rlc3RpbmcvbG9n
L3czYy1pbXBvcnQubG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weS90ZXN0aW5nL2xvZy93M2MtaW1wb3J0LmxvZwpkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNGMwY2E1MjgzMzhjMWU5OWE1ZTdlYjNkMjViZTEy
YWE0OWY1ZjNkZC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0g
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJk
X3BhcnR5L3B5L3Rlc3RpbmcvbG9nL3czYy1pbXBvcnQubG9nCisrKyAvZGV2L251bGwKQEAgLTEs
MTkgKzAsMCBAQAotVGhlIHRlc3RzIGluIHRoaXMgZGlyZWN0b3J5IHdlcmUgaW1wb3J0ZWQgZnJv
bSB0aGUgVzNDIHJlcG9zaXRvcnkuCi1EbyBOT1QgbW9kaWZ5IHRoZXNlIHRlc3RzIGRpcmVjdGx5
IGluIFdlYktpdC4KLUluc3RlYWQsIGNyZWF0ZSBhIHB1bGwgcmVxdWVzdCBvbiB0aGUgV1BUIGdp
dGh1YjoKLQlodHRwczovL2dpdGh1Yi5jb20vd2ViLXBsYXRmb3JtLXRlc3RzL3dwdAotCi1UaGVu
IHJ1biB0aGUgVG9vbHMvU2NyaXB0cy9pbXBvcnQtdzNjLXRlc3RzIGluIFdlYktpdCB0byByZWlt
cG9ydAotCi1EbyBOT1QgbW9kaWZ5IG9yIHJlbW92ZSB0aGlzIGZpbGUuCi0KLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLQotUHJvcGVydGllcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotUHJvcGVy
dHkgdmFsdWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0KLUxpc3Qgb2YgZmlsZXM6Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weS90ZXN0aW5nL2xvZy9fX2luaXRfXy5weQotL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFy
dHkvcHkvdGVzdGluZy9sb2cvdGVzdF9sb2cucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5L3Rlc3RpbmcvbG9nL3Rlc3Rf
d2FybmluZy5weQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weS90ZXN0aW5nL3BhdGgvdzNjLWltcG9ydC5s
b2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3Ro
aXJkX3BhcnR5L3B5L3Rlc3RpbmcvcGF0aC93M2MtaW1wb3J0LmxvZwpkZWxldGVkIGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggZTY2ZDdiMTc4MDJlMjkzMTI2ZmEyNDQ5YzNlYWI2ODU4ZGY5YzRiMi4u
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5L3Rl
c3RpbmcvcGF0aC93M2MtaW1wb3J0LmxvZworKysgL2Rldi9udWxsCkBAIC0xLDI1ICswLDAgQEAK
LVRoZSB0ZXN0cyBpbiB0aGlzIGRpcmVjdG9yeSB3ZXJlIGltcG9ydGVkIGZyb20gdGhlIFczQyBy
ZXBvc2l0b3J5LgotRG8gTk9UIG1vZGlmeSB0aGVzZSB0ZXN0cyBkaXJlY3RseSBpbiBXZWJLaXQu
Ci1JbnN0ZWFkLCBjcmVhdGUgYSBwdWxsIHJlcXVlc3Qgb24gdGhlIFdQVCBnaXRodWI6Ci0JaHR0
cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQKLQotVGhlbiBydW4gdGhlIFRv
b2xzL1NjcmlwdHMvaW1wb3J0LXczYy10ZXN0cyBpbiBXZWJLaXQgdG8gcmVpbXBvcnQKLQotRG8g
Tk9UIG1vZGlmeSBvciByZW1vdmUgdGhpcyBmaWxlLgotCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLVByb3Bl
cnRpZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLVByb3BlcnR5IHZhbHVlcyBy
ZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1MaXN0IG9m
IGZpbGVzOgotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvdGhpcmRfcGFydHkvcHkvdGVzdGluZy9wYXRoL2NvbW1vbi5weQotL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvdGVzdGlu
Zy9wYXRoL2NvbmZ0ZXN0LnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weS90ZXN0aW5nL3BhdGgvcmVwb3Rlc3QuZHVtcAot
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRf
cGFydHkvcHkvdGVzdGluZy9wYXRoL3N2bnRlc3RiYXNlLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weS90ZXN0aW5nL3Bh
dGgvdGVzdF9jYWNoZXV0aWwucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5L3Rlc3RpbmcvcGF0aC90ZXN0X2xvY2FsLnB5
Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS9weS90ZXN0aW5nL3BhdGgvdGVzdF9zdm5hdXRoLnB5Ci0vTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weS90ZXN0aW5n
L3BhdGgvdGVzdF9zdm51cmwucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5L3Rlc3RpbmcvcGF0aC90ZXN0X3N2bndjLnB5
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3RoaXJkX3BhcnR5L3B5L3Rlc3RpbmcvcHJvY2Vzcy93M2MtaW1wb3J0LmxvZyBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFy
dHkvcHkvdGVzdGluZy9wcm9jZXNzL3czYy1pbXBvcnQubG9nCmRlbGV0ZWQgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCA2MzFmODllNGFjZmVlMzZhZTIzYTBkYjZjMzYzODFjNTNiNjI2MjJjLi4wMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvdGVzdGlu
Zy9wcm9jZXNzL3czYy1pbXBvcnQubG9nCisrKyAvZGV2L251bGwKQEAgLTEsMjAgKzAsMCBAQAot
VGhlIHRlc3RzIGluIHRoaXMgZGlyZWN0b3J5IHdlcmUgaW1wb3J0ZWQgZnJvbSB0aGUgVzNDIHJl
cG9zaXRvcnkuCi1EbyBOT1QgbW9kaWZ5IHRoZXNlIHRlc3RzIGRpcmVjdGx5IGluIFdlYktpdC4K
LUluc3RlYWQsIGNyZWF0ZSBhIHB1bGwgcmVxdWVzdCBvbiB0aGUgV1BUIGdpdGh1YjoKLQlodHRw
czovL2dpdGh1Yi5jb20vd2ViLXBsYXRmb3JtLXRlc3RzL3dwdAotCi1UaGVuIHJ1biB0aGUgVG9v
bHMvU2NyaXB0cy9pbXBvcnQtdzNjLXRlc3RzIGluIFdlYktpdCB0byByZWltcG9ydAotCi1EbyBO
T1QgbW9kaWZ5IG9yIHJlbW92ZSB0aGlzIGZpbGUuCi0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotUHJvcGVy
dGllcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotUHJvcGVydHkgdmFsdWVzIHJl
cXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLUxpc3Qgb2Yg
ZmlsZXM6Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy90aGlyZF9wYXJ0eS9weS90ZXN0aW5nL3Byb2Nlc3MvX19pbml0X18ucHkKLS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5L3Rl
c3RpbmcvcHJvY2Vzcy90ZXN0X2NtZGV4ZWMucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5L3Rlc3RpbmcvcHJvY2Vzcy90
ZXN0X2ZvcmtlZGZ1bmMucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5L3Rlc3RpbmcvcHJvY2Vzcy90ZXN0X2tpbGxwcm9j
LnB5CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5L3Rlc3Rpbmcvcm9vdC93M2MtaW1wb3J0LmxvZyBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFy
dHkvcHkvdGVzdGluZy9yb290L3czYy1pbXBvcnQubG9nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCA2YzMyZTU1NDUwYmJhMjMzZTE2ZTBiZGYyODM1N2JiOGZlMThjNDM5Li4wMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvdGVzdGluZy9y
b290L3czYy1pbXBvcnQubG9nCisrKyAvZGV2L251bGwKQEAgLTEsMjIgKzAsMCBAQAotVGhlIHRl
c3RzIGluIHRoaXMgZGlyZWN0b3J5IHdlcmUgaW1wb3J0ZWQgZnJvbSB0aGUgVzNDIHJlcG9zaXRv
cnkuCi1EbyBOT1QgbW9kaWZ5IHRoZXNlIHRlc3RzIGRpcmVjdGx5IGluIFdlYktpdC4KLUluc3Rl
YWQsIGNyZWF0ZSBhIHB1bGwgcmVxdWVzdCBvbiB0aGUgV1BUIGdpdGh1YjoKLQlodHRwczovL2dp
dGh1Yi5jb20vd2ViLXBsYXRmb3JtLXRlc3RzL3dwdAotCi1UaGVuIHJ1biB0aGUgVG9vbHMvU2Ny
aXB0cy9pbXBvcnQtdzNjLXRlc3RzIGluIFdlYktpdCB0byByZWltcG9ydAotCi1EbyBOT1QgbW9k
aWZ5IG9yIHJlbW92ZSB0aGlzIGZpbGUuCi0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotUHJvcGVydGllcyBy
ZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotUHJvcGVydHkgdmFsdWVzIHJlcXVpcmlu
ZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLUxpc3Qgb2YgZmlsZXM6
Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS9weS90ZXN0aW5nL3Jvb3QvX19pbml0X18ucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5L3Rlc3Rpbmcvcm9v
dC90ZXN0X2J1aWx0aW4ucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5L3Rlc3Rpbmcvcm9vdC90ZXN0X2Vycm9yLnB5Ci0v
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9w
YXJ0eS9weS90ZXN0aW5nL3Jvb3QvdGVzdF9weV9pbXBvcnRzLnB5Ci0vTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weS90ZXN0aW5n
L3Jvb3QvdGVzdF9zdGQucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5L3Rlc3Rpbmcvcm9vdC90ZXN0X3htbGdlbi5weQpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy90aGlyZF9wYXJ0eS9weS90ZXN0aW5nL3czYy1pbXBvcnQubG9nIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weS90ZXN0
aW5nL3czYy1pbXBvcnQubG9nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1YWViOTQ0
Zjc0MmM0MDZjNTBjOWNhYTNlN2QzMjA4MjRjYjlmMDEyLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvdGVzdGluZy93M2MtaW1wb3J0LmxvZwor
KysgL2Rldi9udWxsCkBAIC0xLDE3ICswLDAgQEAKLVRoZSB0ZXN0cyBpbiB0aGlzIGRpcmVjdG9y
eSB3ZXJlIGltcG9ydGVkIGZyb20gdGhlIFczQyByZXBvc2l0b3J5LgotRG8gTk9UIG1vZGlmeSB0
aGVzZSB0ZXN0cyBkaXJlY3RseSBpbiBXZWJLaXQuCi1JbnN0ZWFkLCBjcmVhdGUgYSBwdWxsIHJl
cXVlc3Qgb24gdGhlIFdQVCBnaXRodWI6Ci0JaHR0cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9y
bS10ZXN0cy93cHQKLQotVGhlbiBydW4gdGhlIFRvb2xzL1NjcmlwdHMvaW1wb3J0LXczYy10ZXN0
cyBpbiBXZWJLaXQgdG8gcmVpbXBvcnQKLQotRG8gTk9UIG1vZGlmeSBvciByZW1vdmUgdGhpcyBm
aWxlLgotCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLVByb3BlcnRpZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVm
aXhlczoKLU5vbmUKLVByb3BlcnR5IHZhbHVlcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgot
Tm9uZQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1MaXN0IG9mIGZpbGVzOgotL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvdGVzdGluZy9j
b25mdGVzdC5weQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weS93M2MtaW1wb3J0LmxvZyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkv
dzNjLWltcG9ydC5sb2cKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDYxNTdkMjlhYjdm
MjNlODgzY2Y3NWJhOWFlMjIzOWVkZTgxNmE4ODUuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weS93M2MtaW1wb3J0LmxvZworKysgL2Rldi9udWxs
CkBAIC0xLDI2ICswLDAgQEAKLVRoZSB0ZXN0cyBpbiB0aGlzIGRpcmVjdG9yeSB3ZXJlIGltcG9y
dGVkIGZyb20gdGhlIFczQyByZXBvc2l0b3J5LgotRG8gTk9UIG1vZGlmeSB0aGVzZSB0ZXN0cyBk
aXJlY3RseSBpbiBXZWJLaXQuCi1JbnN0ZWFkLCBjcmVhdGUgYSBwdWxsIHJlcXVlc3Qgb24gdGhl
IFdQVCBnaXRodWI6Ci0JaHR0cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQK
LQotVGhlbiBydW4gdGhlIFRvb2xzL1NjcmlwdHMvaW1wb3J0LXczYy10ZXN0cyBpbiBXZWJLaXQg
dG8gcmVpbXBvcnQKLQotRG8gTk9UIG1vZGlmeSBvciByZW1vdmUgdGhpcyBmaWxlLgotCi0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0KLVByb3BlcnRpZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUK
LVByb3BlcnR5IHZhbHVlcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tCi1MaXN0IG9mIGZpbGVzOgotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvQVVUSE9SUwotL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvQ0hB
TkdFTE9HCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy90aGlyZF9wYXJ0eS9weS9MSUNFTlNFCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weS9NQU5JRkVTVC5pbgotL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkv
UkVBRE1FLnJzdAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvdGhpcmRfcGFydHkvcHkvYXBwdmV5b3IueW1sCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weS9jb25mdGVzdC5weQot
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRf
cGFydHkvcHkvc2V0dXAuY2ZnCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weS9zZXR1cC5weQotL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHkvdG94LmluaQpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy90aGlyZF9wYXJ0eS9weXRlc3QvLmNvdmVyYWdlcmMgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC8uY292ZXJh
Z2VyYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi42MWZmNjY3NDlkYzgwNWQ3NDc4MjBkNzNjYzM4MzQxYzgzMTI0MjE2
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvLmNvdmVyYWdlcmMKQEAgLTAsMCArMSw0
IEBACitbcnVuXQorb21pdCA9CisgICAgIyBzdGFuZGxvbmV0ZW1wbGF0ZSBpcyByZWFkIGR5bmFt
aWNhbGx5IGFuZCB0ZXN0ZWQgYnkgdGVzdF9nZW5zY3JpcHQKKyAgICAqc3RhbmRhbG9uZXRlbXBs
YXRlLnB5CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC8uZ2l0YXR0cmlidXRlcyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0
ZXN0Ly5naXRhdHRyaWJ1dGVzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjI0MmQzZGEwZDc0YmJkZWU0YmM0ZmQ0Y2Ew
Y2E1Nzk0ZDljMTM4ZGYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC8uZ2l0YXR0cmli
dXRlcwpAQCAtMCwwICsxIEBACitDSEFOR0VMT0cgICAgbWVyZ2U9dW5pb24KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRf
cGFydHkvcHl0ZXN0Ly5naXRodWIvdzNjLWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC8uZ2l0aHVi
L3czYy1pbXBvcnQubG9nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBmYjdjZjIyMjU2
NGI0MmZmNDgxNzJkYjcwYjMzODMwODYxMzk4YThiLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0Ly5naXRodWIvdzNjLWltcG9ydC5sb2cK
KysrIC9kZXYvbnVsbApAQCAtMSwxOCArMCwwIEBACi1UaGUgdGVzdHMgaW4gdGhpcyBkaXJlY3Rv
cnkgd2VyZSBpbXBvcnRlZCBmcm9tIHRoZSBXM0MgcmVwb3NpdG9yeS4KLURvIE5PVCBtb2RpZnkg
dGhlc2UgdGVzdHMgZGlyZWN0bHkgaW4gV2ViS2l0LgotSW5zdGVhZCwgY3JlYXRlIGEgcHVsbCBy
ZXF1ZXN0IG9uIHRoZSBXUFQgZ2l0aHViOgotCWh0dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxhdGZv
cm0tdGVzdHMvd3B0Ci0KLVRoZW4gcnVuIHRoZSBUb29scy9TY3JpcHRzL2ltcG9ydC13M2MtdGVz
dHMgaW4gV2ViS2l0IHRvIHJlaW1wb3J0Ci0KLURvIE5PVCBtb2RpZnkgb3IgcmVtb3ZlIHRoaXMg
ZmlsZS4KLQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1Qcm9wZXJ0aWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJl
Zml4ZXM6Ci1Ob25lCi1Qcm9wZXJ0eSB2YWx1ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoK
LU5vbmUKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotTGlzdCBvZiBmaWxlczoKLS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC8uZ2l0
aHViL0lTU1VFX1RFTVBMQVRFLm1kCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvLmdpdGh1Yi9QVUxMX1JFUVVFU1Rf
VEVNUExBVEUubWQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0Ly5naXRpZ25vcmUgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5
dGVzdC8uZ2l0aWdub3JlCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmFmYjZiZjlmZDNmOTZmODc0OTdlNGNmNDM0NGI2
ZjA4MmU4OGI4ZWYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC8uZ2l0aWdub3JlCkBA
IC0wLDAgKzEsNDAgQEAKKyMgQXV0b21hdGljYWxseSBnZW5lcmF0ZWQgYnkgYGhnaW1wb3J0c3Zu
YAorLnN2bgorLmhnc3ZuCisKKyMgSWdub3JlIGxvY2FsIHZpcnR1YWxlbnZzCitsaWIvCitiaW4v
CitpbmNsdWRlLworLlB5dGhvbi8KKworIyBUaGVzZSBsaW5lcyBhcmUgc3VnZ2VzdGVkIGFjY29y
ZGluZyB0byB0aGUgc3ZuOmlnbm9yZSBwcm9wZXJ0eQorIyBGZWVsIGZyZWUgdG8gZW5hYmxlIHRo
ZW0gYnkgdW5jb21tZW50aW5nIHRoZW0KKyoucHljCisqLnB5bworKi5zd3AKKyouY2xhc3MKKyou
b3JpZworKn4KKy5oeXBvdGhlc2lzLworCisjIGF1dG9nZW5lcmF0ZWQKK3NyYy9fcHl0ZXN0L192
ZXJzaW9uLnB5CisjIHNldHVwdG9vbHMKKy5lZ2dzLworCitkb2MvKi9fYnVpbGQKK2J1aWxkLwor
ZGlzdC8KKyouZWdnLWluZm8KK2lzc3VlLworZW52LworLmVudi8KKzNyZHBhcnR5LworLnRveAor
LmNhY2hlCisucHl0ZXN0X2NhY2hlCisuY292ZXJhZ2UKKy5yb3BlcHJvamVjdAorLmlkZWEKKy5o
eXBvdGhlc2lzCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC8ucHJlLWNvbW1pdC1jb25maWcueWFt
bCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhp
cmRfcGFydHkvcHl0ZXN0Ly5wcmUtY29tbWl0LWNvbmZpZy55YW1sCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmU1MDg5
MWJiYzFjYmRiZTdjZWJjOWE4NTQ0OWI0YzkzYzNkZmYwYTcKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3Bh
cnR5L3B5dGVzdC8ucHJlLWNvbW1pdC1jb25maWcueWFtbApAQCAtMCwwICsxLDM2IEBACitleGNs
dWRlOiBkb2MvZW4vZXhhbXBsZS9weTJweTMvdGVzdF9weTIucHkKK3JlcG9zOgorLSAgIHJlcG86
IGh0dHBzOi8vZ2l0aHViLmNvbS9hbWJ2L2JsYWNrCisgICAgcmV2OiAxOC40YTQKKyAgICBob29r
czoKKyAgICAtICAgaWQ6IGJsYWNrCisgICAgICAgIGFyZ3M6IFstLXNhZmUsIC0tcXVpZXRdCisg
ICAgICAgIGxhbmd1YWdlX3ZlcnNpb246IHB5dGhvbjMuNgorLSAgIHJlcG86IGh0dHBzOi8vZ2l0
aHViLmNvbS9hc290dGlsZS9ibGFja2VuLWRvY3MKKyAgICByZXY6IHYwLjEuMQorICAgIGhvb2tz
OgorICAgIC0gICBpZDogYmxhY2tlbi1kb2NzCisgICAgICAgIGFkZGl0aW9uYWxfZGVwZW5kZW5j
aWVzOiBbYmxhY2s9PTE4LjViMV0KKyAgICAgICAgbGFuZ3VhZ2VfdmVyc2lvbjogcHl0aG9uMy42
CistICAgcmVwbzogaHR0cHM6Ly9naXRodWIuY29tL3ByZS1jb21taXQvcHJlLWNvbW1pdC1ob29r
cworICAgIHJldjogdjEuMi4zCisgICAgaG9va3M6CisgICAgLSAgIGlkOiB0cmFpbGluZy13aGl0
ZXNwYWNlCisgICAgLSAgIGlkOiBlbmQtb2YtZmlsZS1maXhlcgorICAgIC0gICBpZDogY2hlY2st
eWFtbAorICAgIC0gICBpZDogZGVidWctc3RhdGVtZW50cworICAgICAgICBleGNsdWRlOiBfcHl0
ZXN0L2RlYnVnZ2luZy5weQorICAgIC0gICBpZDogZmxha2U4CistICAgcmVwbzogaHR0cHM6Ly9n
aXRodWIuY29tL2Fzb3R0aWxlL3B5dXBncmFkZQorICAgIHJldjogdjEuMi4wCisgICAgaG9va3M6
CisgICAgLSBpZDogcHl1cGdyYWRlCistICAgcmVwbzogbG9jYWwKKyAgICBob29rczoKKyAgICAt
ICAgaWQ6IHJzdAorICAgICAgICBuYW1lOiByc3QKKyAgICAgICAgZW50cnk6IHJzdC1saW50IC0t
ZW5jb2RpbmcgdXRmLTgKKyAgICAgICAgZmlsZXM6IF4oQ0hBTkdFTE9HLnJzdHxIT1dUT1JFTEVB
U0UucnN0fFJFQURNRS5yc3R8Y2hhbmdlbG9nLy4qKSQKKyAgICAgICAgbGFuZ3VhZ2U6IHB5dGhv
bgorICAgICAgICBhZGRpdGlvbmFsX2RlcGVuZGVuY2llczogW3B5Z21lbnRzLCByZXN0cnVjdHVy
ZWR0ZXh0X2xpbnRdCisgICAgICAgIHB5dGhvbl92ZXJzaW9uOiBweXRob24zLjYKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhp
cmRfcGFydHkvcHl0ZXN0Ly50cmF2aXMueW1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvLnRyYXZpcy55bWwKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uMWQwOTIxNDliNWQ1ODI2YzIxNjVlZGZiNDMyYjQxZmZmYTJiNDNiOAotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0Ly50cmF2aXMueW1sCkBAIC0wLDAgKzEsODMgQEAKK3N1
ZG86IGZhbHNlCitsYW5ndWFnZTogcHl0aG9uCitzdGFnZXM6CistIGxpbnRpbmcKKy0gdGVzdAor
LSBkZXBsb3kKK3B5dGhvbjoKKyAgLSAnMy42JworaW5zdGFsbDoKKyAgLSBwaXAgaW5zdGFsbCAt
LXVwZ3JhZGUgLS1wcmUgdG94CitlbnY6CisgIG1hdHJpeDoKKyAgICAjIGNvdmVyYWxscyBpcyBu
b3QgbGlzdGVkIGluIHRveCdzIGVudmxpc3QsIGJ1dCBzaG91bGQgcnVuIGluIHRyYXZpcworICAg
IC0gVE9YRU5WPWNvdmVyYWxscworICAgICMgbm90ZTogcGxlYXNlIHVzZSAidG94IC0tbGlzdGVu
dnMiIHRvIHBvcHVsYXRlIHRoZSBidWlsZCBtYXRyaXggYmVsb3cKKyAgICAjIHBsZWFzZSByZW1v
dmUgdGhlIGxpbnRpbmcgZW52IGluIGFsbCBjYXNlcworICAgIC0gVE9YRU5WPXB5MjcKKyAgICAt
IFRPWEVOVj1weTM0CisgICAgLSBUT1hFTlY9cHkzNgorICAgIC0gVE9YRU5WPXB5MjctcGV4cGVj
dAorICAgIC0gVE9YRU5WPXB5MjcteGRpc3QKKyAgICAtIFRPWEVOVj1weTI3LXRyaWFsCisgICAg
LSBUT1hFTlY9cHkyNy1udW1weQorICAgIC0gVE9YRU5WPXB5MjctcGx1Z2d5bWFzdGVyCisgICAg
LSBUT1hFTlY9cHkzNi1wZXhwZWN0CisgICAgLSBUT1hFTlY9cHkzNi14ZGlzdAorICAgIC0gVE9Y
RU5WPXB5MzYtdHJpYWwKKyAgICAtIFRPWEVOVj1weTM2LW51bXB5CisgICAgLSBUT1hFTlY9cHkz
Ni1wbHVnZ3ltYXN0ZXIKKyAgICAtIFRPWEVOVj1weTI3LW5vYnl0ZQorICAgIC0gVE9YRU5WPWRv
Y3Rlc3RpbmcKKyAgICAtIFRPWEVOVj1kb2NzCisKK2pvYnM6CisgIGluY2x1ZGU6CisgICAgLSBl
bnY6IFRPWEVOVj1weXB5CisgICAgICBweXRob246ICdweXB5LTUuNCcKKyAgICAtIGVudjogVE9Y
RU5WPXB5MzUKKyAgICAgIHB5dGhvbjogJzMuNScKKyAgICAtIGVudjogVE9YRU5WPXB5MzUtZnJl
ZXplCisgICAgICBweXRob246ICczLjUnCisgICAgLSBlbnY6IFRPWEVOVj1weTM3CisgICAgICBw
eXRob246ICduaWdodGx5JworCisgICAgLSBzdGFnZTogZGVwbG95CisgICAgICBweXRob246ICcz
LjYnCisgICAgICBlbnY6CisgICAgICBpbnN0YWxsOiBwaXAgaW5zdGFsbCAtVSBzZXR1cHRvb2xz
IHNldHVwdG9vbHNfc2NtCisgICAgICBzY3JpcHQ6IHNraXAKKyAgICAgIGRlcGxveToKKyAgICAg
ICAgcHJvdmlkZXI6IHB5cGkKKyAgICAgICAgdXNlcjogbmljb2RkZW11cworICAgICAgICBkaXN0
cmlidXRpb25zOiBzZGlzdCBiZGlzdF93aGVlbAorICAgICAgICBza2lwX3VwbG9hZF9kb2NzOiB0
cnVlCisgICAgICAgIHBhc3N3b3JkOgorICAgICAgICAgIHNlY3VyZTogeGFuVGdUVXU2WERRVnFC
LzBid0pRWG9ETW5VNXRrd1pjNWtvejZtQmtrcVpoS2ROT2kyQ0xvQzFYaGlTWithaDI0bDRWMUUw
R0FxWTVrQkJjeTlkN05WZTRXTmc0dEQwOTVMc0h3K0NSVTYvSENWSUZmeWsySVorRlBBbGd1ZXND
Y1VpSlNYT3JsQkYrV2o2OHdFdkxvSzdFb1JGYkplaVovZjkxV3cxc2J0RGxxWEFCV0dIcm1oUEpM
NVd2YTdvNyt3RzdKd0pvd3FkWmcxcGJRRXhzQ2M3YjUzdzR2MlJCdTNENlRKYVRBekhpVnNXK25V
U0k2N3ZLSS91ZitjUi9PaXhzVGZ5Mzd3bEhnU3dpaFltcllMRmxzM1YwYlNwYWhDaW0zYkNnTWFG
Wng4Uzh4cmRnSisrUHpCQ29mMkhlZmxGS3ZXK1ZDa29ZekdFRzROclRXSm9OejZuaTRyZWQ5R2R2
ZmpHSDNZQ2pBS1M1Nmg5eDU4enAyRTVycHNiL2tWcTUvNDV4elYrZHE2SlJ1aFExbkpXakJDNmZT
S0FjL2Jmd251RkszRUJ4TkxrdkJzc0xIdnNOamo1WEcrK2NCOERkUzl3VkdVcWpwb0s0cHVhWFVX
RnF5NHEzUzlGODZIRXNLTmdFeHRpZUE5cU54K3BDSVpWczZKQ1haTmpyMEk1ZVZOenFKSXlnZ05n
Skc2UnlyYXZzVTM1dDlaZDlkb0w1ZzRZN1VLbUFHVG4xU3oyNEhRNHNNUWdYZG0yU3lEOGdFSzVq
ZTR0bGhVdmZHdER2TVNsc3RxNzFrSW45blJwRm5xQjZNRmxiWVNFQVptbzhkR2JDcXVvVWMrKzZS
dW0yMDh3Y1Zicnp6VnRHbFhCL093OUFiRk1ZZUFHQTArTi9LMWU1OWM9CisgICAgICAgIG9uOgor
ICAgICAgICAgIHRhZ3M6IHRydWUKKyAgICAgICAgICByZXBvOiBweXRlc3QtZGV2L3B5dGVzdAor
ICAgIC0gc3RhZ2U6IGxpbnRpbmcKKyAgICAgIHB5dGhvbjogJzMuNicKKyAgICAgIGVudjoKKyAg
ICAgIGluc3RhbGw6CisgICAgICAtIHBpcCBpbnN0YWxsIHByZS1jb21taXQKKyAgICAgIC0gcHJl
LWNvbW1pdCBpbnN0YWxsLWhvb2tzCisgICAgICBzY3JpcHQ6CisgICAgICAtIHByZS1jb21taXQg
cnVuIC0tYWxsLWZpbGVzCisKK3NjcmlwdDogdG94IC0tcmVjcmVhdGUKKworbm90aWZpY2F0aW9u
czoKKyAgaXJjOgorICAgIGNoYW5uZWxzOgorICAgICAgLSAiY2hhdC5mcmVlbm9kZS5uZXQjcHl0
ZXN0IgorICAgIG9uX3N1Y2Nlc3M6IGNoYW5nZQorICAgIG9uX2ZhaWx1cmU6IGNoYW5nZQorICAg
IHNraXBfam9pbjogdHJ1ZQorICBlbWFpbDoKKyAgICAtIHB5dGVzdC1jb21taXRAcHl0aG9uLm9y
ZworY2FjaGU6CisgICAgZGlyZWN0b3JpZXM6CisgICAgICAgIC0gJEhPTUUvLmNhY2hlL3BpcAor
ICAgICAgICAtICRIT01FLy5jYWNoZS9wcmUtY29tbWl0CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVz
dC9fcHl0ZXN0L19faW5pdF9fLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvX3B5dGVzdC9fX2luaXRfXy5weQpk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNmU0MWYwNTA0ZTQ3MDY0MjhmOGJjMjQxZDVk
MmQxMGVkYmEwMTM4Yi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAot
LS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3Ro
aXJkX3BhcnR5L3B5dGVzdC9fcHl0ZXN0L19faW5pdF9fLnB5CisrKyAvZGV2L251bGwKQEAgLTEs
OCArMCwwIEBACi1fX2FsbF9fID0gWydfX3ZlcnNpb25fXyddCi0KLXRyeToKLSAgICBmcm9tIC5f
dmVyc2lvbiBpbXBvcnQgdmVyc2lvbiBhcyBfX3ZlcnNpb25fXwotZXhjZXB0IEltcG9ydEVycm9y
OgotICAgICMgYnJva2VuIGluc3RhbGxhdGlvbiwgd2UgZG9uJ3QgZXZlbiB0cnkKLSAgICAjIHVu
a25vd24gb25seSB3b3JrcyBiZWNhdXNlIHdlIGRvIHBvb3IgbWFucyB2ZXJzaW9uIGNvbXBhcmUK
LSAgICBfX3ZlcnNpb25fXyA9ICd1bmtub3duJwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvX3B5
dGVzdC9fYXJnY29tcGxldGUucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9fcHl0ZXN0L19hcmdjb21wbGV0ZS5w
eQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDYyNWE3NWY5ZjFiNzA1MGQzOGYzNjVj
NDEzNWRkNDhhYTcxYjFkNi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3RoaXJkX3BhcnR5L3B5dGVzdC9fcHl0ZXN0L19hcmdjb21wbGV0ZS5weQorKysgL2Rldi9udWxs
CkBAIC0xLDEwMyArMCwwIEBACi0KLSIiImFsbG93IGJhc2gtY29tcGxldGlvbiBmb3IgYXJncGFy
c2Ugd2l0aCBhcmdjb21wbGV0ZSBpZiBpbnN0YWxsZWQKLW5lZWRzIGFyZ2NvbXBsZXRlPj0wLjUu
NiBmb3IgcHl0aG9uIDMuMi8zLjMgKG9sZGVyIHZlcnNpb25zIGZhaWwKLXRvIGZpbmQgdGhlIG1h
Z2ljIHN0cmluZywgc28gX0FSR0NPTVBMRVRFIGVudi4gdmFyIGlzIG5ldmVyIHNldCwgYW5kCi10
aGlzIGRvZXMgbm90IG5lZWQgc3BlY2lhbCBjb2RlLgotCi1GdW5jdGlvbiB0cnlfYXJnY29tcGxl
dGUocGFyc2VyKSBzaG91bGQgYmUgY2FsbGVkIGRpcmVjdGx5IGJlZm9yZQotdGhlIGNhbGwgdG8g
QXJndW1lbnRQYXJzZXIucGFyc2VfYXJncygpLgotCi1UaGUgZmlsZXNjb21wbGV0ZXIgaXMgd2hh
dCB5b3Ugbm9ybWFsbHkgd291bGQgdXNlIG9uIHRoZSBwb3NpdGlvbmFsCi1hcmd1bWVudHMgc3Bl
Y2lmaWNhdGlvbiwgaW4gb3JkZXIgdG8gZ2V0ICJkaXJuYW1lLyIgYWZ0ZXIgImRpcm48VEFCPiIK
LWluc3RlYWQgb2YgdGhlIGRlZmF1bHQgImRpcm5hbWUgIjoKLQotICAgb3B0cGFyc2VyLmFkZF9h
cmd1bWVudChDb25maWcuX2ZpbGVfb3JfZGlyLCBuYXJncz0nKicKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICApLmNvbXBsZXRlcj1maWxlc2NvbXBsZXRlcgotCi1PdGhlciwgYXBwbGlj
YXRpb24gc3BlY2lmaWMsIGNvbXBsZXRlcnMgc2hvdWxkIGdvIGluIHRoZSBmaWxlCi1kb2luZyB0
aGUgYWRkX2FyZ3VtZW50IGNhbGxzIGFzIHRoZXkgbmVlZCB0byBiZSBzcGVjaWZpZWQgYXMgLmNv
bXBsZXRlcgotYXR0cmlidXRlcyBhcyB3ZWxsLiAoSWYgYXJnY29tcGxldGUgaXMgbm90IGluc3Rh
bGxlZCwgdGhlIGZ1bmN0aW9uIHRoZQotYXR0cmlidXRlIHBvaW50cyB0byB3aWxsIG5vdCBiZSB1
c2VkKS4KLQotU1BFRURVUAotPT09PT09PQotVGhlIGdlbmVyaWMgYXJnY29tcGxldGUgc2NyaXB0
IGZvciBiYXNoLWNvbXBsZXRpb24KLSgvZXRjL2Jhc2hfY29tcGxldGlvbi5kL3B5dGhvbi1hcmdj
b21wbGV0ZS5zaCApCi11c2VzIGEgcHl0aG9uIHByb2dyYW0gdG8gZGV0ZXJtaW5lIHN0YXJ0dXAg
c2NyaXB0IGdlbmVyYXRlZCBieSBwaXAuCi1Zb3UgY2FuIHNwZWVkIHVwIGNvbXBsZXRpb24gc29t
ZXdoYXQgYnkgY2hhbmdpbmcgdGhpcyBzY3JpcHQgdG8gaW5jbHVkZQotICAjIFBZVEhPTl9BUkdD
T01QTEVURV9PSwotc28gdGhlIHRoZSBweXRob24tYXJnY29tcGxldGUtY2hlY2stZWFzeS1pbnN0
YWxsLXNjcmlwdCBkb2VzIG5vdAotbmVlZCB0byBiZSBjYWxsZWQgdG8gZmluZCB0aGUgZW50cnkg
cG9pbnQgb2YgdGhlIGNvZGUgYW5kIHNlZSBpZiB0aGF0IGlzCi1tYXJrZWQgIHdpdGggUFlUSE9O
X0FSR0NPTVBMRVRFX09LCi0KLUlOU1RBTEwvREVCVUdHSU5HCi09PT09PT09PT09PT09PT09PQot
VG8gaW5jbHVkZSB0aGlzIHN1cHBvcnQgaW4gYW5vdGhlciBhcHBsaWNhdGlvbiB0aGF0IGhhcyBz
ZXR1cC5weSBnZW5lcmF0ZWQKLXNjcmlwdHM6Ci0tIGFkZCB0aGUgbGluZToKLSAgICAjIFBZVEhP
Tl9BUkdDT01QTEVURV9PSwotICBuZWFyIHRoZSB0b3Agb2YgdGhlIG1haW4gcHl0aG9uIGVudHJ5
IHBvaW50Ci0tIGluY2x1ZGUgaW4gdGhlIGZpbGUgY2FsbGluZyBwYXJzZV9hcmdzKCk6Ci0gICAg
ZnJvbSBfYXJnY29tcGxldGUgaW1wb3J0IHRyeV9hcmdjb21wbGV0ZSwgZmlsZXNjb21wbGV0ZXIK
LSAgICwgY2FsbCB0cnlfYXJnY29tcGxldGUganVzdCBiZWZvcmUgcGFyc2VfYXJncygpLCBhbmQg
b3B0aW9uYWxseSBhZGQKLSAgIGZpbGVzY29tcGxldGVyIHRvIHRoZSBwb3NpdGlvbmFsIGFyZ3Vt
ZW50cycgYWRkX2FyZ3VtZW50KCkKLUlmIHRoaW5ncyBkbyBub3Qgd29yayByaWdodCBhd2F5Ogot
LSBzd2l0Y2ggb24gYXJnY29tcGxldGUgZGVidWdnaW5nIHdpdGggKGFsc28gaGVscGZ1bCB3aGVu
IGRvaW5nIGN1c3RvbQotICBjb21wbGV0ZXJzKToKLSAgICBleHBvcnQgX0FSQ19ERUJVRz0xCi0t
IHJ1bjoKLSAgICBweXRob24tYXJnY29tcGxldGUtY2hlY2stZWFzeS1pbnN0YWxsLXNjcmlwdCAk
KHdoaWNoIGFwcG5hbWUpCi0gICAgZWNobyAkPwotICB3aWxsIGVjaG8gMCBpZiB0aGUgbWFnaWMg
bGluZSBoYXMgYmVlbiBmb3VuZCwgMSBpZiBub3QKLS0gc29tZXRpbWVzIGl0IGhlbHBzIHRvIGZp
bmQgZWFybHkgb24gZXJyb3JzIHVzaW5nOgotICAgIF9BUkdDT01QTEVURT0xIF9BUkNfREVCVUc9
MSBhcHBuYW1lCi0gIHdoaWNoIHNob3VsZCB0aHJvdyBhIEtleUVycm9yOiAnQ09NUExJTkUnICh3
aGljaCBpcyBwcm9wZXJseSBzZXQgYnkgdGhlCi0gIGdsb2JhbCBhcmdjb21wbGV0ZSBzY3JpcHQp
LgotIiIiCi1mcm9tIF9fZnV0dXJlX18gaW1wb3J0IGFic29sdXRlX2ltcG9ydCwgZGl2aXNpb24s
IHByaW50X2Z1bmN0aW9uCi1pbXBvcnQgc3lzCi1pbXBvcnQgb3MKLWZyb20gZ2xvYiBpbXBvcnQg
Z2xvYgotCi0KLWNsYXNzIEZhc3RGaWxlc0NvbXBsZXRlcjoKLSAgICAnRmFzdCBmaWxlIGNvbXBs
ZXRlciBjbGFzcycKLQotICAgIGRlZiBfX2luaXRfXyhzZWxmLCBkaXJlY3Rvcmllcz1UcnVlKToK
LSAgICAgICAgc2VsZi5kaXJlY3RvcmllcyA9IGRpcmVjdG9yaWVzCi0KLSAgICBkZWYgX19jYWxs
X18oc2VsZiwgcHJlZml4LCAqKmt3YXJncyk6Ci0gICAgICAgICIiIm9ubHkgY2FsbGVkIG9uIG5v
biBvcHRpb24gY29tcGxldGlvbnMiIiIKLSAgICAgICAgaWYgb3MucGF0aC5zZXAgaW4gcHJlZml4
WzE6XToKLSAgICAgICAgICAgIHByZWZpeF9kaXIgPSBsZW4ob3MucGF0aC5kaXJuYW1lKHByZWZp
eCkgKyBvcy5wYXRoLnNlcCkKLSAgICAgICAgZWxzZToKLSAgICAgICAgICAgIHByZWZpeF9kaXIg
PSAwCi0gICAgICAgIGNvbXBsZXRpb24gPSBbXQotICAgICAgICBnbG9iYmVkID0gW10KLSAgICAg
ICAgaWYgJyonIG5vdCBpbiBwcmVmaXggYW5kICc/JyBub3QgaW4gcHJlZml4OgotICAgICAgICAg
ICAgIyB3ZSBhcmUgb24gdW5peCwgb3RoZXJ3aXNlIG5vIGJhc2gKLSAgICAgICAgICAgIGlmIG5v
dCBwcmVmaXggb3IgcHJlZml4Wy0xXSA9PSBvcy5wYXRoLnNlcDoKLSAgICAgICAgICAgICAgICBn
bG9iYmVkLmV4dGVuZChnbG9iKHByZWZpeCArICcuKicpKQotICAgICAgICAgICAgcHJlZml4ICs9
ICcqJwotICAgICAgICBnbG9iYmVkLmV4dGVuZChnbG9iKHByZWZpeCkpCi0gICAgICAgIGZvciB4
IGluIHNvcnRlZChnbG9iYmVkKToKLSAgICAgICAgICAgIGlmIG9zLnBhdGguaXNkaXIoeCk6Ci0g
ICAgICAgICAgICAgICAgeCArPSAnLycKLSAgICAgICAgICAgICMgYXBwZW5kIHN0cmlwcGluZyB0
aGUgcHJlZml4IChsaWtlIGJhc2gsIG5vdCBsaWtlIGNvbXBnZW4pCi0gICAgICAgICAgICBjb21w
bGV0aW9uLmFwcGVuZCh4W3ByZWZpeF9kaXI6XSkKLSAgICAgICAgcmV0dXJuIGNvbXBsZXRpb24K
LQotCi1pZiBvcy5lbnZpcm9uLmdldCgnX0FSR0NPTVBMRVRFJyk6Ci0gICAgdHJ5OgotICAgICAg
ICBpbXBvcnQgYXJnY29tcGxldGUuY29tcGxldGVycwotICAgIGV4Y2VwdCBJbXBvcnRFcnJvcjoK
LSAgICAgICAgc3lzLmV4aXQoLTEpCi0gICAgZmlsZXNjb21wbGV0ZXIgPSBGYXN0RmlsZXNDb21w
bGV0ZXIoKQotCi0gICAgZGVmIHRyeV9hcmdjb21wbGV0ZShwYXJzZXIpOgotICAgICAgICBhcmdj
b21wbGV0ZS5hdXRvY29tcGxldGUocGFyc2VyLCBhbHdheXNfY29tcGxldGVfb3B0aW9ucz1GYWxz
ZSkKLWVsc2U6Ci0gICAgZGVmIHRyeV9hcmdjb21wbGV0ZShwYXJzZXIpOgotICAgICAgICBwYXNz
Ci0gICAgZmlsZXNjb21wbGV0ZXIgPSBOb25lCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9fcHl0
ZXN0L19jb2RlL19faW5pdF9fLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvX3B5dGVzdC9fY29kZS9fX2luaXRf
Xy5weQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggODE1YzEzYjQyYzI1YmQzMTQ5ODhk
YmFhN2ZmOWY0ZTNkMWQyZTVjMi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9fcHl0ZXN0L19jb2RlL19faW5pdF9fLnB5CisrKyAvZGV2
L251bGwKQEAgLTEsMTAgKzAsMCBAQAotIiIiIHB5dGhvbiBpbnNwZWN0aW9uL2NvZGUgZ2VuZXJh
dGlvbiBBUEkgIiIiCi1mcm9tIF9fZnV0dXJlX18gaW1wb3J0IGFic29sdXRlX2ltcG9ydCwgZGl2
aXNpb24sIHByaW50X2Z1bmN0aW9uCi1mcm9tIC5jb2RlIGltcG9ydCBDb2RlICAjIG5vcWEKLWZy
b20gLmNvZGUgaW1wb3J0IEV4Y2VwdGlvbkluZm8gICMgbm9xYQotZnJvbSAuY29kZSBpbXBvcnQg
RnJhbWUgICMgbm9xYQotZnJvbSAuY29kZSBpbXBvcnQgVHJhY2ViYWNrICAjIG5vcWEKLWZyb20g
LmNvZGUgaW1wb3J0IGdldHJhd2NvZGUgICMgbm9xYQotZnJvbSAuc291cmNlIGltcG9ydCBTb3Vy
Y2UgICMgbm9xYQotZnJvbSAuc291cmNlIGltcG9ydCBjb21waWxlXyBhcyBjb21waWxlICAjIG5v
cWEKLWZyb20gLnNvdXJjZSBpbXBvcnQgZ2V0ZnNsaW5lbm8gICMgbm9xYQpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9w
YXJ0eS9weXRlc3QvX3B5dGVzdC9fY29kZS9fcHkydHJhY2ViYWNrLnB5IGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3Qv
X3B5dGVzdC9fY29kZS9fcHkydHJhY2ViYWNrLnB5CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCA1YWFjZjBhNDI4ZDg4MDY5MWZlMDMwYTgzNWJjMjU4ZDA3ODUwNmYwLi4wMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L19weXRlc3Qv
X2NvZGUvX3B5MnRyYWNlYmFjay5weQorKysgL2Rldi9udWxsCkBAIC0xLDg1ICswLDAgQEAKLSMg
Y29waWVkIGZyb20gcHl0aG9uLTIuNy4zJ3MgdHJhY2ViYWNrLnB5Ci0jIENIQU5HRVM6Ci0jIC0g
c29tZV9zdHIgaXMgcmVwbGFjZWQsIHRyeWluZyB0byBjcmVhdGUgdW5pY29kZSBzdHJpbmdzCi0j
Ci1mcm9tIF9fZnV0dXJlX18gaW1wb3J0IGFic29sdXRlX2ltcG9ydCwgZGl2aXNpb24sIHByaW50
X2Z1bmN0aW9uCi1pbXBvcnQgdHlwZXMKLQotCi1kZWYgZm9ybWF0X2V4Y2VwdGlvbl9vbmx5KGV0
eXBlLCB2YWx1ZSk6Ci0gICAgIiIiRm9ybWF0IHRoZSBleGNlcHRpb24gcGFydCBvZiBhIHRyYWNl
YmFjay4KLQotICAgIFRoZSBhcmd1bWVudHMgYXJlIHRoZSBleGNlcHRpb24gdHlwZSBhbmQgdmFs
dWUgc3VjaCBhcyBnaXZlbiBieQotICAgIHN5cy5sYXN0X3R5cGUgYW5kIHN5cy5sYXN0X3ZhbHVl
LiBUaGUgcmV0dXJuIHZhbHVlIGlzIGEgbGlzdCBvZgotICAgIHN0cmluZ3MsIGVhY2ggZW5kaW5n
IGluIGEgbmV3bGluZS4KLQotICAgIE5vcm1hbGx5LCB0aGUgbGlzdCBjb250YWlucyBhIHNpbmds
ZSBzdHJpbmc7IGhvd2V2ZXIsIGZvcgotICAgIFN5bnRheEVycm9yIGV4Y2VwdGlvbnMsIGl0IGNv
bnRhaW5zIHNldmVyYWwgbGluZXMgdGhhdCAod2hlbgotICAgIHByaW50ZWQpIGRpc3BsYXkgZGV0
YWlsZWQgaW5mb3JtYXRpb24gYWJvdXQgd2hlcmUgdGhlIHN5bnRheAotICAgIGVycm9yIG9jY3Vy
cmVkLgotCi0gICAgVGhlIG1lc3NhZ2UgaW5kaWNhdGluZyB3aGljaCBleGNlcHRpb24gb2NjdXJy
ZWQgaXMgYWx3YXlzIHRoZSBsYXN0Ci0gICAgc3RyaW5nIGluIHRoZSBsaXN0LgotCi0gICAgIiIi
Ci0KLSAgICAjIEFuIGluc3RhbmNlIHNob3VsZCBub3QgaGF2ZSBhIG1lYW5pbmdmdWwgdmFsdWUg
cGFyYW1ldGVyLCBidXQKLSAgICAjIHNvbWV0aW1lcyBkb2VzLCBwYXJ0aWN1bGFybHkgZm9yIHN0
cmluZyBleGNlcHRpb25zLCBzdWNoIGFzCi0gICAgIyA+Pj4gcmFpc2Ugc3RyaW5nMSwgc3RyaW5n
MiAgIyBkZXByZWNhdGVkCi0gICAgIwotICAgICMgQ2xlYXIgdGhlc2Ugb3V0IGZpcnN0IGJlY2F1
c2UgaXNzdWJ0eXBlKHN0cmluZzEsIFN5bnRheEVycm9yKQotICAgICMgd291bGQgdGhyb3cgYW5v
dGhlciBleGNlcHRpb24gYW5kIG1hc2sgdGhlIG9yaWdpbmFsIHByb2JsZW0uCi0gICAgaWYgKGlz
aW5zdGFuY2UoZXR5cGUsIEJhc2VFeGNlcHRpb24pIG9yCi0gICAgICAgIGlzaW5zdGFuY2UoZXR5
cGUsIHR5cGVzLkluc3RhbmNlVHlwZSkgb3IKLSAgICAgICAgICAgIGV0eXBlIGlzIE5vbmUgb3Ig
dHlwZShldHlwZSkgaXMgc3RyKToKLSAgICAgICAgcmV0dXJuIFtfZm9ybWF0X2ZpbmFsX2V4Y19s
aW5lKGV0eXBlLCB2YWx1ZSldCi0KLSAgICBzdHlwZSA9IGV0eXBlLl9fbmFtZV9fCi0KLSAgICBp
ZiBub3QgaXNzdWJjbGFzcyhldHlwZSwgU3ludGF4RXJyb3IpOgotICAgICAgICByZXR1cm4gW19m
b3JtYXRfZmluYWxfZXhjX2xpbmUoc3R5cGUsIHZhbHVlKV0KLQotICAgICMgSXQgd2FzIGEgc3lu
dGF4IGVycm9yOyBzaG93IGV4YWN0bHkgd2hlcmUgdGhlIHByb2JsZW0gd2FzIGZvdW5kLgotICAg
IGxpbmVzID0gW10KLSAgICB0cnk6Ci0gICAgICAgIG1zZywgKGZpbGVuYW1lLCBsaW5lbm8sIG9m
ZnNldCwgYmFkbGluZSkgPSB2YWx1ZS5hcmdzCi0gICAgZXhjZXB0IEV4Y2VwdGlvbjoKLSAgICAg
ICAgcGFzcwotICAgIGVsc2U6Ci0gICAgICAgIGZpbGVuYW1lID0gZmlsZW5hbWUgb3IgIjxzdHJp
bmc+IgotICAgICAgICBsaW5lcy5hcHBlbmQoJyAgRmlsZSAiJXMiLCBsaW5lICVkXG4nICUgKGZp
bGVuYW1lLCBsaW5lbm8pKQotICAgICAgICBpZiBiYWRsaW5lIGlzIG5vdCBOb25lOgotICAgICAg
ICAgICAgaWYgaXNpbnN0YW5jZShiYWRsaW5lLCBieXRlcyk6ICAjIHB5dGhvbiAyIG9ubHkKLSAg
ICAgICAgICAgICAgICBiYWRsaW5lID0gYmFkbGluZS5kZWNvZGUoJ3V0Zi04JywgJ3JlcGxhY2Un
KQotICAgICAgICAgICAgbGluZXMuYXBwZW5kKHUnICAgICVzXG4nICUgYmFkbGluZS5zdHJpcCgp
KQotICAgICAgICAgICAgaWYgb2Zmc2V0IGlzIG5vdCBOb25lOgotICAgICAgICAgICAgICAgIGNh
cmV0c3BhY2UgPSBiYWRsaW5lLnJzdHJpcCgnXG4nKVs6b2Zmc2V0XS5sc3RyaXAoKQotICAgICAg
ICAgICAgICAgICMgbm9uLXNwYWNlIHdoaXRlc3BhY2UgKGxpa2VzIHRhYnMpIG11c3QgYmUga2Vw
dCBmb3IgYWxpZ25tZW50Ci0gICAgICAgICAgICAgICAgY2FyZXRzcGFjZSA9ICgoYy5pc3NwYWNl
KCkgYW5kIGMgb3IgJyAnKSBmb3IgYyBpbiBjYXJldHNwYWNlKQotICAgICAgICAgICAgICAgICMg
b25seSB0aHJlZSBzcGFjZXMgdG8gYWNjb3VudCBmb3Igb2Zmc2V0MSA9PSBwb3MgMAotICAgICAg
ICAgICAgICAgIGxpbmVzLmFwcGVuZCgnICAgJXNeXG4nICUgJycuam9pbihjYXJldHNwYWNlKSkK
LSAgICAgICAgdmFsdWUgPSBtc2cKLQotICAgIGxpbmVzLmFwcGVuZChfZm9ybWF0X2ZpbmFsX2V4
Y19saW5lKHN0eXBlLCB2YWx1ZSkpCi0gICAgcmV0dXJuIGxpbmVzCi0KLQotZGVmIF9mb3JtYXRf
ZmluYWxfZXhjX2xpbmUoZXR5cGUsIHZhbHVlKToKLSAgICAiIiJSZXR1cm4gYSBsaXN0IG9mIGEg
c2luZ2xlIGxpbmUgLS0gbm9ybWFsIGNhc2UgZm9yIGZvcm1hdF9leGNlcHRpb25fb25seSIiIgot
ICAgIHZhbHVlc3RyID0gX3NvbWVfc3RyKHZhbHVlKQotICAgIGlmIHZhbHVlIGlzIE5vbmUgb3Ig
bm90IHZhbHVlc3RyOgotICAgICAgICBsaW5lID0gIiVzXG4iICUgZXR5cGUKLSAgICBlbHNlOgot
ICAgICAgICBsaW5lID0gIiVzOiAlc1xuIiAlIChldHlwZSwgdmFsdWVzdHIpCi0gICAgcmV0dXJu
IGxpbmUKLQotCi1kZWYgX3NvbWVfc3RyKHZhbHVlKToKLSAgICB0cnk6Ci0gICAgICAgIHJldHVy
biB1bmljb2RlKHZhbHVlKQotICAgIGV4Y2VwdCBFeGNlcHRpb246Ci0gICAgICAgIHRyeToKLSAg
ICAgICAgICAgIHJldHVybiBzdHIodmFsdWUpCi0gICAgICAgIGV4Y2VwdCBFeGNlcHRpb246Ci0g
ICAgICAgICAgICBwYXNzCi0gICAgcmV0dXJuICc8dW5wcmludGFibGUgJXMgb2JqZWN0PicgJSB0
eXBlKHZhbHVlKS5fX25hbWVfXwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvX3B5dGVzdC9fY29k
ZS9jb2RlLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy90aGlyZF9wYXJ0eS9weXRlc3QvX3B5dGVzdC9fY29kZS9jb2RlLnB5CmRlbGV0ZWQgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAzZmIyMzJiZDQzMGU5YjRmOGFkNzY5ZTMwNTdkZGVmZWMyODFh
NjdlLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkv
cHl0ZXN0L19weXRlc3QvX2NvZGUvY29kZS5weQorKysgL2Rldi9udWxsCkBAIC0xLDkwNiArMCww
IEBACi1mcm9tIF9fZnV0dXJlX18gaW1wb3J0IGFic29sdXRlX2ltcG9ydCwgZGl2aXNpb24sIHBy
aW50X2Z1bmN0aW9uCi1pbXBvcnQgc3lzCi1mcm9tIGluc3BlY3QgaW1wb3J0IENPX1ZBUkFSR1Ms
IENPX1ZBUktFWVdPUkRTCi1pbXBvcnQgcmUKLWZyb20gd2Vha3JlZiBpbXBvcnQgcmVmCi1mcm9t
IF9weXRlc3QuY29tcGF0IGltcG9ydCBfUFkyLCBfUFkzLCBQWTM1LCBzYWZlX3N0cgotCi1pbXBv
cnQgcHkKLWJ1aWx0aW5fcmVwciA9IHJlcHIKLQotaWYgX1BZMzoKLSAgICBmcm9tIHRyYWNlYmFj
ayBpbXBvcnQgZm9ybWF0X2V4Y2VwdGlvbl9vbmx5Ci1lbHNlOgotICAgIGZyb20gLl9weTJ0cmFj
ZWJhY2sgaW1wb3J0IGZvcm1hdF9leGNlcHRpb25fb25seQotCi0KLWNsYXNzIENvZGUob2JqZWN0
KToKLSAgICAiIiIgd3JhcHBlciBhcm91bmQgUHl0aG9uIGNvZGUgb2JqZWN0cyAiIiIKLQotICAg
IGRlZiBfX2luaXRfXyhzZWxmLCByYXdjb2RlKToKLSAgICAgICAgaWYgbm90IGhhc2F0dHIocmF3
Y29kZSwgImNvX2ZpbGVuYW1lIik6Ci0gICAgICAgICAgICByYXdjb2RlID0gZ2V0cmF3Y29kZShy
YXdjb2RlKQotICAgICAgICB0cnk6Ci0gICAgICAgICAgICBzZWxmLmZpbGVuYW1lID0gcmF3Y29k
ZS5jb19maWxlbmFtZQotICAgICAgICAgICAgc2VsZi5maXJzdGxpbmVubyA9IHJhd2NvZGUuY29f
Zmlyc3RsaW5lbm8gLSAxCi0gICAgICAgICAgICBzZWxmLm5hbWUgPSByYXdjb2RlLmNvX25hbWUK
LSAgICAgICAgZXhjZXB0IEF0dHJpYnV0ZUVycm9yOgotICAgICAgICAgICAgcmFpc2UgVHlwZUVy
cm9yKCJub3QgYSBjb2RlIG9iamVjdDogJXIiICUgKHJhd2NvZGUsKSkKLSAgICAgICAgc2VsZi5y
YXcgPSByYXdjb2RlCi0KLSAgICBkZWYgX19lcV9fKHNlbGYsIG90aGVyKToKLSAgICAgICAgcmV0
dXJuIHNlbGYucmF3ID09IG90aGVyLnJhdwotCi0gICAgX19oYXNoX18gPSBOb25lCi0KLSAgICBk
ZWYgX19uZV9fKHNlbGYsIG90aGVyKToKLSAgICAgICAgcmV0dXJuIG5vdCBzZWxmID09IG90aGVy
Ci0KLSAgICBAcHJvcGVydHkKLSAgICBkZWYgcGF0aChzZWxmKToKLSAgICAgICAgIiIiIHJldHVy
biBhIHBhdGggb2JqZWN0IHBvaW50aW5nIHRvIHNvdXJjZSBjb2RlIChub3RlIHRoYXQgaXQKLSAg
ICAgICAgbWlnaHQgbm90IHBvaW50IHRvIGFuIGFjdHVhbGx5IGV4aXN0aW5nIGZpbGUpLiAiIiIK
LSAgICAgICAgdHJ5OgotICAgICAgICAgICAgcCA9IHB5LnBhdGgubG9jYWwoc2VsZi5yYXcuY29f
ZmlsZW5hbWUpCi0gICAgICAgICAgICAjIG1heWJlIGRvbid0IHRyeSB0aGlzIGNoZWNraW5nCi0g
ICAgICAgICAgICBpZiBub3QgcC5jaGVjaygpOgotICAgICAgICAgICAgICAgIHJhaXNlIE9TRXJy
b3IoInB5LnBhdGggY2hlY2sgZmFpbGVkLiIpCi0gICAgICAgIGV4Y2VwdCBPU0Vycm9yOgotICAg
ICAgICAgICAgIyBYWFggbWF5YmUgdHJ5IGhhcmRlciBsaWtlIHRoZSB3ZWlyZCBsb2dpYwotICAg
ICAgICAgICAgIyBpbiB0aGUgc3RhbmRhcmQgbGliIFtsaW5lY2FjaGUudXBkYXRlY2FjaGVdIGRv
ZXM/Ci0gICAgICAgICAgICBwID0gc2VsZi5yYXcuY29fZmlsZW5hbWUKLQotICAgICAgICByZXR1
cm4gcAotCi0gICAgQHByb3BlcnR5Ci0gICAgZGVmIGZ1bGxzb3VyY2Uoc2VsZik6Ci0gICAgICAg
ICIiIiByZXR1cm4gYSBfcHl0ZXN0Ll9jb2RlLlNvdXJjZSBvYmplY3QgZm9yIHRoZSBmdWxsIHNv
dXJjZSBmaWxlIG9mIHRoZSBjb2RlCi0gICAgICAgICIiIgotICAgICAgICBmcm9tIF9weXRlc3Qu
X2NvZGUgaW1wb3J0IHNvdXJjZQotICAgICAgICBmdWxsLCBfID0gc291cmNlLmZpbmRzb3VyY2Uo
c2VsZi5yYXcpCi0gICAgICAgIHJldHVybiBmdWxsCi0KLSAgICBkZWYgc291cmNlKHNlbGYpOgot
ICAgICAgICAiIiIgcmV0dXJuIGEgX3B5dGVzdC5fY29kZS5Tb3VyY2Ugb2JqZWN0IGZvciB0aGUg
Y29kZSBvYmplY3QncyBzb3VyY2Ugb25seQotICAgICAgICAiIiIKLSAgICAgICAgIyByZXR1cm4g
c291cmNlIG9ubHkgZm9yIHRoYXQgcGFydCBvZiBjb2RlCi0gICAgICAgIGltcG9ydCBfcHl0ZXN0
Ll9jb2RlCi0gICAgICAgIHJldHVybiBfcHl0ZXN0Ll9jb2RlLlNvdXJjZShzZWxmLnJhdykKLQot
ICAgIGRlZiBnZXRhcmdzKHNlbGYsIHZhcj1GYWxzZSk6Ci0gICAgICAgICIiIiByZXR1cm4gYSB0
dXBsZSB3aXRoIHRoZSBhcmd1bWVudCBuYW1lcyBmb3IgdGhlIGNvZGUgb2JqZWN0Ci0KLSAgICAg
ICAgICAgIGlmICd2YXInIGlzIHNldCBUcnVlIGFsc28gcmV0dXJuIHRoZSBuYW1lcyBvZiB0aGUg
dmFyaWFibGUgYW5kCi0gICAgICAgICAgICBrZXl3b3JkIGFyZ3VtZW50cyB3aGVuIHByZXNlbnQK
LSAgICAgICAgIiIiCi0gICAgICAgICMgaGFuZGZ1bGwgc2hvcnRjdXQgZm9yIGdldHRpbmcgYXJn
cwotICAgICAgICByYXcgPSBzZWxmLnJhdwotICAgICAgICBhcmdjb3VudCA9IHJhdy5jb19hcmdj
b3VudAotICAgICAgICBpZiB2YXI6Ci0gICAgICAgICAgICBhcmdjb3VudCArPSByYXcuY29fZmxh
Z3MgJiBDT19WQVJBUkdTCi0gICAgICAgICAgICBhcmdjb3VudCArPSByYXcuY29fZmxhZ3MgJiBD
T19WQVJLRVlXT1JEUwotICAgICAgICByZXR1cm4gcmF3LmNvX3Zhcm5hbWVzWzphcmdjb3VudF0K
LQotCi1jbGFzcyBGcmFtZShvYmplY3QpOgotICAgICIiIldyYXBwZXIgYXJvdW5kIGEgUHl0aG9u
IGZyYW1lIGhvbGRpbmcgZl9sb2NhbHMgYW5kIGZfZ2xvYmFscwotICAgIGluIHdoaWNoIGV4cHJl
c3Npb25zIGNhbiBiZSBldmFsdWF0ZWQuIiIiCi0KLSAgICBkZWYgX19pbml0X18oc2VsZiwgZnJh
bWUpOgotICAgICAgICBzZWxmLmxpbmVubyA9IGZyYW1lLmZfbGluZW5vIC0gMQotICAgICAgICBz
ZWxmLmZfZ2xvYmFscyA9IGZyYW1lLmZfZ2xvYmFscwotICAgICAgICBzZWxmLmZfbG9jYWxzID0g
ZnJhbWUuZl9sb2NhbHMKLSAgICAgICAgc2VsZi5yYXcgPSBmcmFtZQotICAgICAgICBzZWxmLmNv
ZGUgPSBDb2RlKGZyYW1lLmZfY29kZSkKLQotICAgIEBwcm9wZXJ0eQotICAgIGRlZiBzdGF0ZW1l
bnQoc2VsZik6Ci0gICAgICAgICIiIiBzdGF0ZW1lbnQgdGhpcyBmcmFtZSBpcyBhdCAiIiIKLSAg
ICAgICAgaW1wb3J0IF9weXRlc3QuX2NvZGUKLSAgICAgICAgaWYgc2VsZi5jb2RlLmZ1bGxzb3Vy
Y2UgaXMgTm9uZToKLSAgICAgICAgICAgIHJldHVybiBfcHl0ZXN0Ll9jb2RlLlNvdXJjZSgiIikK
LSAgICAgICAgcmV0dXJuIHNlbGYuY29kZS5mdWxsc291cmNlLmdldHN0YXRlbWVudChzZWxmLmxp
bmVubykKLQotICAgIGRlZiBldmFsKHNlbGYsIGNvZGUsICoqdmFycyk6Ci0gICAgICAgICIiIiBl
dmFsdWF0ZSAnY29kZScgaW4gdGhlIGZyYW1lCi0KLSAgICAgICAgICAgICd2YXJzJyBhcmUgb3B0
aW9uYWwgYWRkaXRpb25hbCBsb2NhbCB2YXJpYWJsZXMKLQotICAgICAgICAgICAgcmV0dXJucyB0
aGUgcmVzdWx0IG9mIHRoZSBldmFsdWF0aW9uCi0gICAgICAgICIiIgotICAgICAgICBmX2xvY2Fs
cyA9IHNlbGYuZl9sb2NhbHMuY29weSgpCi0gICAgICAgIGZfbG9jYWxzLnVwZGF0ZSh2YXJzKQot
ICAgICAgICByZXR1cm4gZXZhbChjb2RlLCBzZWxmLmZfZ2xvYmFscywgZl9sb2NhbHMpCi0KLSAg
ICBkZWYgZXhlY18oc2VsZiwgY29kZSwgKip2YXJzKToKLSAgICAgICAgIiIiIGV4ZWMgJ2NvZGUn
IGluIHRoZSBmcmFtZQotCi0gICAgICAgICAgICAndmFycycgYXJlIG9wdGlvbmE7IGFkZGl0aW9u
YWwgbG9jYWwgdmFyaWFibGVzCi0gICAgICAgICIiIgotICAgICAgICBmX2xvY2FscyA9IHNlbGYu
Zl9sb2NhbHMuY29weSgpCi0gICAgICAgIGZfbG9jYWxzLnVwZGF0ZSh2YXJzKQotICAgICAgICBw
eS5idWlsdGluLmV4ZWNfKGNvZGUsIHNlbGYuZl9nbG9iYWxzLCBmX2xvY2FscykKLQotICAgIGRl
ZiByZXByKHNlbGYsIG9iamVjdCk6Ci0gICAgICAgICIiIiByZXR1cm4gYSAnc2FmZScgKG5vbi1y
ZWN1cnNpdmUsIG9uZS1saW5lKSBzdHJpbmcgcmVwciBmb3IgJ29iamVjdCcKLSAgICAgICAgIiIi
Ci0gICAgICAgIHJldHVybiBweS5pby5zYWZlcmVwcihvYmplY3QpCi0KLSAgICBkZWYgaXNfdHJ1
ZShzZWxmLCBvYmplY3QpOgotICAgICAgICByZXR1cm4gb2JqZWN0Ci0KLSAgICBkZWYgZ2V0YXJn
cyhzZWxmLCB2YXI9RmFsc2UpOgotICAgICAgICAiIiIgcmV0dXJuIGEgbGlzdCBvZiB0dXBsZXMg
KG5hbWUsIHZhbHVlKSBmb3IgYWxsIGFyZ3VtZW50cwotCi0gICAgICAgICAgICBpZiAndmFyJyBp
cyBzZXQgVHJ1ZSBhbHNvIGluY2x1ZGUgdGhlIHZhcmlhYmxlIGFuZCBrZXl3b3JkCi0gICAgICAg
ICAgICBhcmd1bWVudHMgd2hlbiBwcmVzZW50Ci0gICAgICAgICIiIgotICAgICAgICByZXR2YWwg
PSBbXQotICAgICAgICBmb3IgYXJnIGluIHNlbGYuY29kZS5nZXRhcmdzKHZhcik6Ci0gICAgICAg
ICAgICB0cnk6Ci0gICAgICAgICAgICAgICAgcmV0dmFsLmFwcGVuZCgoYXJnLCBzZWxmLmZfbG9j
YWxzW2FyZ10pKQotICAgICAgICAgICAgZXhjZXB0IEtleUVycm9yOgotICAgICAgICAgICAgICAg
IHBhc3MgICAgICMgdGhpcyBjYW4gb2NjdXIgd2hlbiB1c2luZyBQc3ljbwotICAgICAgICByZXR1
cm4gcmV0dmFsCi0KLQotY2xhc3MgVHJhY2ViYWNrRW50cnkob2JqZWN0KToKLSAgICAiIiIgYSBz
aW5nbGUgZW50cnkgaW4gYSB0cmFjZWJhY2sgIiIiCi0KLSAgICBfcmVwcl9zdHlsZSA9IE5vbmUK
LSAgICBleHByaW5mbyA9IE5vbmUKLQotICAgIGRlZiBfX2luaXRfXyhzZWxmLCByYXdlbnRyeSwg
ZXhjaW5mbz1Ob25lKToKLSAgICAgICAgc2VsZi5fZXhjaW5mbyA9IGV4Y2luZm8KLSAgICAgICAg
c2VsZi5fcmF3ZW50cnkgPSByYXdlbnRyeQotICAgICAgICBzZWxmLmxpbmVubyA9IHJhd2VudHJ5
LnRiX2xpbmVubyAtIDEKLQotICAgIGRlZiBzZXRfcmVwcl9zdHlsZShzZWxmLCBtb2RlKToKLSAg
ICAgICAgYXNzZXJ0IG1vZGUgaW4gKCJzaG9ydCIsICJsb25nIikKLSAgICAgICAgc2VsZi5fcmVw
cl9zdHlsZSA9IG1vZGUKLQotICAgIEBwcm9wZXJ0eQotICAgIGRlZiBmcmFtZShzZWxmKToKLSAg
ICAgICAgaW1wb3J0IF9weXRlc3QuX2NvZGUKLSAgICAgICAgcmV0dXJuIF9weXRlc3QuX2NvZGUu
RnJhbWUoc2VsZi5fcmF3ZW50cnkudGJfZnJhbWUpCi0KLSAgICBAcHJvcGVydHkKLSAgICBkZWYg
cmVsbGluZShzZWxmKToKLSAgICAgICAgcmV0dXJuIHNlbGYubGluZW5vIC0gc2VsZi5mcmFtZS5j
b2RlLmZpcnN0bGluZW5vCi0KLSAgICBkZWYgX19yZXByX18oc2VsZik6Ci0gICAgICAgIHJldHVy
biAiPFRyYWNlYmFja0VudHJ5ICVzOiVkPiIgJSAoc2VsZi5mcmFtZS5jb2RlLnBhdGgsIHNlbGYu
bGluZW5vICsgMSkKLQotICAgIEBwcm9wZXJ0eQotICAgIGRlZiBzdGF0ZW1lbnQoc2VsZik6Ci0g
ICAgICAgICIiIiBfcHl0ZXN0Ll9jb2RlLlNvdXJjZSBvYmplY3QgZm9yIHRoZSBjdXJyZW50IHN0
YXRlbWVudCAiIiIKLSAgICAgICAgc291cmNlID0gc2VsZi5mcmFtZS5jb2RlLmZ1bGxzb3VyY2UK
LSAgICAgICAgcmV0dXJuIHNvdXJjZS5nZXRzdGF0ZW1lbnQoc2VsZi5saW5lbm8pCi0KLSAgICBA
cHJvcGVydHkKLSAgICBkZWYgcGF0aChzZWxmKToKLSAgICAgICAgIiIiIHBhdGggdG8gdGhlIHNv
dXJjZSBjb2RlICIiIgotICAgICAgICByZXR1cm4gc2VsZi5mcmFtZS5jb2RlLnBhdGgKLQotICAg
IGRlZiBnZXRsb2NhbHMoc2VsZik6Ci0gICAgICAgIHJldHVybiBzZWxmLmZyYW1lLmZfbG9jYWxz
Ci0gICAgbG9jYWxzID0gcHJvcGVydHkoZ2V0bG9jYWxzLCBOb25lLCBOb25lLCAibG9jYWxzIG9m
IHVuZGVybGF5aW5nIGZyYW1lIikKLQotICAgIGRlZiBnZXRmaXJzdGxpbmVzb3VyY2Uoc2VsZik6
Ci0gICAgICAgICMgb24gSnl0aG9uIHRoaXMgZmlyc3RsaW5lbm8gY2FuIGJlIC0xIGFwcGFyZW50
bHkKLSAgICAgICAgcmV0dXJuIG1heChzZWxmLmZyYW1lLmNvZGUuZmlyc3RsaW5lbm8sIDApCi0K
LSAgICBkZWYgZ2V0c291cmNlKHNlbGYsIGFzdGNhY2hlPU5vbmUpOgotICAgICAgICAiIiIgcmV0
dXJuIGZhaWxpbmcgc291cmNlIGNvZGUuICIiIgotICAgICAgICAjIHdlIHVzZSB0aGUgcGFzc2Vk
IGluIGFzdGNhY2hlIHRvIG5vdCByZXBhcnNlIGFzdHRyZWVzCi0gICAgICAgICMgd2l0aGluIGV4
Y2VwdGlvbiBpbmZvIHByaW50aW5nCi0gICAgICAgIGZyb20gX3B5dGVzdC5fY29kZS5zb3VyY2Ug
aW1wb3J0IGdldHN0YXRlbWVudHJhbmdlX2FzdAotICAgICAgICBzb3VyY2UgPSBzZWxmLmZyYW1l
LmNvZGUuZnVsbHNvdXJjZQotICAgICAgICBpZiBzb3VyY2UgaXMgTm9uZToKLSAgICAgICAgICAg
IHJldHVybiBOb25lCi0gICAgICAgIGtleSA9IGFzdG5vZGUgPSBOb25lCi0gICAgICAgIGlmIGFz
dGNhY2hlIGlzIG5vdCBOb25lOgotICAgICAgICAgICAga2V5ID0gc2VsZi5mcmFtZS5jb2RlLnBh
dGgKLSAgICAgICAgICAgIGlmIGtleSBpcyBub3QgTm9uZToKLSAgICAgICAgICAgICAgICBhc3Ru
b2RlID0gYXN0Y2FjaGUuZ2V0KGtleSwgTm9uZSkKLSAgICAgICAgc3RhcnQgPSBzZWxmLmdldGZp
cnN0bGluZXNvdXJjZSgpCi0gICAgICAgIHRyeToKLSAgICAgICAgICAgIGFzdG5vZGUsIF8sIGVu
ZCA9IGdldHN0YXRlbWVudHJhbmdlX2FzdChzZWxmLmxpbmVubywgc291cmNlLAotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzdG5vZGU9YXN0bm9k
ZSkKLSAgICAgICAgZXhjZXB0IFN5bnRheEVycm9yOgotICAgICAgICAgICAgZW5kID0gc2VsZi5s
aW5lbm8gKyAxCi0gICAgICAgIGVsc2U6Ci0gICAgICAgICAgICBpZiBrZXkgaXMgbm90IE5vbmU6
Ci0gICAgICAgICAgICAgICAgYXN0Y2FjaGVba2V5XSA9IGFzdG5vZGUKLSAgICAgICAgcmV0dXJu
IHNvdXJjZVtzdGFydDplbmRdCi0KLSAgICBzb3VyY2UgPSBwcm9wZXJ0eShnZXRzb3VyY2UpCi0K
LSAgICBkZWYgaXNoaWRkZW4oc2VsZik6Ci0gICAgICAgICIiIiByZXR1cm4gVHJ1ZSBpZiB0aGUg
Y3VycmVudCBmcmFtZSBoYXMgYSB2YXIgX190cmFjZWJhY2toaWRlX18KLSAgICAgICAgICAgIHJl
c29sdmluZyB0byBUcnVlCi0KLSAgICAgICAgICAgIElmIF9fdHJhY2ViYWNraGlkZV9fIGlzIGEg
Y2FsbGFibGUsIGl0IGdldHMgY2FsbGVkIHdpdGggdGhlCi0gICAgICAgICAgICBFeGNlcHRpb25J
bmZvIGluc3RhbmNlIGFuZCBjYW4gZGVjaWRlIHdoZXRoZXIgdG8gaGlkZSB0aGUgdHJhY2ViYWNr
LgotCi0gICAgICAgICAgICBtb3N0bHkgZm9yIGludGVybmFsIHVzZQotICAgICAgICAiIiIKLSAg
ICAgICAgdHJ5OgotICAgICAgICAgICAgdGJoID0gc2VsZi5mcmFtZS5mX2xvY2Fsc1snX190cmFj
ZWJhY2toaWRlX18nXQotICAgICAgICBleGNlcHQgS2V5RXJyb3I6Ci0gICAgICAgICAgICB0cnk6
Ci0gICAgICAgICAgICAgICAgdGJoID0gc2VsZi5mcmFtZS5mX2dsb2JhbHNbJ19fdHJhY2ViYWNr
aGlkZV9fJ10KLSAgICAgICAgICAgIGV4Y2VwdCBLZXlFcnJvcjoKLSAgICAgICAgICAgICAgICBy
ZXR1cm4gRmFsc2UKLQotICAgICAgICBpZiBjYWxsYWJsZSh0YmgpOgotICAgICAgICAgICAgcmV0
dXJuIHRiaChOb25lIGlmIHNlbGYuX2V4Y2luZm8gaXMgTm9uZSBlbHNlIHNlbGYuX2V4Y2luZm8o
KSkKLSAgICAgICAgZWxzZToKLSAgICAgICAgICAgIHJldHVybiB0YmgKLQotICAgIGRlZiBfX3N0
cl9fKHNlbGYpOgotICAgICAgICB0cnk6Ci0gICAgICAgICAgICBmbiA9IHN0cihzZWxmLnBhdGgp
Ci0gICAgICAgIGV4Y2VwdCBweS5lcnJvci5FcnJvcjoKLSAgICAgICAgICAgIGZuID0gJz8/PycK
LSAgICAgICAgbmFtZSA9IHNlbGYuZnJhbWUuY29kZS5uYW1lCi0gICAgICAgIHRyeToKLSAgICAg
ICAgICAgIGxpbmUgPSBzdHIoc2VsZi5zdGF0ZW1lbnQpLmxzdHJpcCgpCi0gICAgICAgIGV4Y2Vw
dCBLZXlib2FyZEludGVycnVwdDoKLSAgICAgICAgICAgIHJhaXNlCi0gICAgICAgIGV4Y2VwdDog
ICMgbm9xYQotICAgICAgICAgICAgbGluZSA9ICI/Pz8iCi0gICAgICAgIHJldHVybiAiICBGaWxl
ICVyOiVkIGluICVzXG4gICVzXG4iICUgKGZuLCBzZWxmLmxpbmVubyArIDEsIG5hbWUsIGxpbmUp
Ci0KLSAgICBkZWYgbmFtZShzZWxmKToKLSAgICAgICAgcmV0dXJuIHNlbGYuZnJhbWUuY29kZS5y
YXcuY29fbmFtZQotICAgIG5hbWUgPSBwcm9wZXJ0eShuYW1lLCBOb25lLCBOb25lLCAiY29fbmFt
ZSBvZiB1bmRlcmxheWluZyBjb2RlIikKLQotCi1jbGFzcyBUcmFjZWJhY2sobGlzdCk6Ci0gICAg
IiIiIFRyYWNlYmFjayBvYmplY3RzIGVuY2Fwc3VsYXRlIGFuZCBvZmZlciBoaWdoZXIgbGV2ZWwK
LSAgICAgICAgYWNjZXNzIHRvIFRyYWNlYmFjayBlbnRyaWVzLgotICAgICIiIgotICAgIEVudHJ5
ID0gVHJhY2ViYWNrRW50cnkKLQotICAgIGRlZiBfX2luaXRfXyhzZWxmLCB0YiwgZXhjaW5mbz1O
b25lKToKLSAgICAgICAgIiIiIGluaXRpYWxpemUgZnJvbSBnaXZlbiBweXRob24gdHJhY2ViYWNr
IG9iamVjdCBhbmQgRXhjZXB0aW9uSW5mbyAiIiIKLSAgICAgICAgc2VsZi5fZXhjaW5mbyA9IGV4
Y2luZm8KLSAgICAgICAgaWYgaGFzYXR0cih0YiwgJ3RiX25leHQnKToKLSAgICAgICAgICAgIGRl
ZiBmKGN1cik6Ci0gICAgICAgICAgICAgICAgd2hpbGUgY3VyIGlzIG5vdCBOb25lOgotICAgICAg
ICAgICAgICAgICAgICB5aWVsZCBzZWxmLkVudHJ5KGN1ciwgZXhjaW5mbz1leGNpbmZvKQotICAg
ICAgICAgICAgICAgICAgICBjdXIgPSBjdXIudGJfbmV4dAotICAgICAgICAgICAgbGlzdC5fX2lu
aXRfXyhzZWxmLCBmKHRiKSkKLSAgICAgICAgZWxzZToKLSAgICAgICAgICAgIGxpc3QuX19pbml0
X18oc2VsZiwgdGIpCi0KLSAgICBkZWYgY3V0KHNlbGYsIHBhdGg9Tm9uZSwgbGluZW5vPU5vbmUs
IGZpcnN0bGluZW5vPU5vbmUsIGV4Y2x1ZGVwYXRoPU5vbmUpOgotICAgICAgICAiIiIgcmV0dXJu
IGEgVHJhY2ViYWNrIGluc3RhbmNlIHdyYXBwaW5nIHBhcnQgb2YgdGhpcyBUcmFjZWJhY2sKLQot
ICAgICAgICAgICAgYnkgcHJvdmRpbmcgYW55IGNvbWJpbmF0aW9uIG9mIHBhdGgsIGxpbmVubyBh
bmQgZmlyc3RsaW5lbm8sIHRoZQotICAgICAgICAgICAgZmlyc3QgZnJhbWUgdG8gc3RhcnQgdGhl
IHRvLWJlLXJldHVybmVkIHRyYWNlYmFjayBpcyBkZXRlcm1pbmVkCi0KLSAgICAgICAgICAgIHRo
aXMgYWxsb3dzIGN1dHRpbmcgdGhlIGZpcnN0IHBhcnQgb2YgYSBUcmFjZWJhY2sgaW5zdGFuY2Ug
ZS5nLgotICAgICAgICAgICAgZm9yIGZvcm1hdHRpbmcgcmVhc29ucyAocmVtb3Zpbmcgc29tZSB1
bmludGVyZXN0aW5nIGJpdHMgdGhhdCBkZWFsCi0gICAgICAgICAgICB3aXRoIGhhbmRsaW5nIG9m
IHRoZSBleGNlcHRpb24vdHJhY2ViYWNrKQotICAgICAgICAiIiIKLSAgICAgICAgZm9yIHggaW4g
c2VsZjoKLSAgICAgICAgICAgIGNvZGUgPSB4LmZyYW1lLmNvZGUKLSAgICAgICAgICAgIGNvZGVw
YXRoID0gY29kZS5wYXRoCi0gICAgICAgICAgICBpZiAoKHBhdGggaXMgTm9uZSBvciBjb2RlcGF0
aCA9PSBwYXRoKSBhbmQKLSAgICAgICAgICAgICAgICAoZXhjbHVkZXBhdGggaXMgTm9uZSBvciBu
b3QgaGFzYXR0cihjb2RlcGF0aCwgJ3JlbHRvJykgb3IKLSAgICAgICAgICAgICAgICAgbm90IGNv
ZGVwYXRoLnJlbHRvKGV4Y2x1ZGVwYXRoKSkgYW5kCi0gICAgICAgICAgICAgICAgKGxpbmVubyBp
cyBOb25lIG9yIHgubGluZW5vID09IGxpbmVubykgYW5kCi0gICAgICAgICAgICAgICAgICAgIChm
aXJzdGxpbmVubyBpcyBOb25lIG9yIHguZnJhbWUuY29kZS5maXJzdGxpbmVubyA9PSBmaXJzdGxp
bmVubykpOgotICAgICAgICAgICAgICAgIHJldHVybiBUcmFjZWJhY2soeC5fcmF3ZW50cnksIHNl
bGYuX2V4Y2luZm8pCi0gICAgICAgIHJldHVybiBzZWxmCi0KLSAgICBkZWYgX19nZXRpdGVtX18o
c2VsZiwga2V5KToKLSAgICAgICAgdmFsID0gc3VwZXIoVHJhY2ViYWNrLCBzZWxmKS5fX2dldGl0
ZW1fXyhrZXkpCi0gICAgICAgIGlmIGlzaW5zdGFuY2Uoa2V5LCB0eXBlKHNsaWNlKDApKSk6Ci0g
ICAgICAgICAgICB2YWwgPSBzZWxmLl9fY2xhc3NfXyh2YWwpCi0gICAgICAgIHJldHVybiB2YWwK
LQotICAgIGRlZiBmaWx0ZXIoc2VsZiwgZm49bGFtYmRhIHg6IG5vdCB4LmlzaGlkZGVuKCkpOgot
ICAgICAgICAiIiIgcmV0dXJuIGEgVHJhY2ViYWNrIGluc3RhbmNlIHdpdGggY2VydGFpbiBpdGVt
cyByZW1vdmVkCi0KLSAgICAgICAgICAgIGZuIGlzIGEgZnVuY3Rpb24gdGhhdCBnZXRzIGEgc2lu
Z2xlIGFyZ3VtZW50LCBhIFRyYWNlYmFja0VudHJ5Ci0gICAgICAgICAgICBpbnN0YW5jZSwgYW5k
IHNob3VsZCByZXR1cm4gVHJ1ZSB3aGVuIHRoZSBpdGVtIHNob3VsZCBiZSBhZGRlZAotICAgICAg
ICAgICAgdG8gdGhlIFRyYWNlYmFjaywgRmFsc2Ugd2hlbiBub3QKLQotICAgICAgICAgICAgYnkg
ZGVmYXVsdCB0aGlzIHJlbW92ZXMgYWxsIHRoZSBUcmFjZWJhY2tFbnRyaWVzIHdoaWNoIGFyZSBo
aWRkZW4KLSAgICAgICAgICAgIChzZWUgaXNoaWRkZW4oKSBhYm92ZSkKLSAgICAgICAgIiIiCi0g
ICAgICAgIHJldHVybiBUcmFjZWJhY2soZmlsdGVyKGZuLCBzZWxmKSwgc2VsZi5fZXhjaW5mbykK
LQotICAgIGRlZiBnZXRjcmFzaGVudHJ5KHNlbGYpOgotICAgICAgICAiIiIgcmV0dXJuIGxhc3Qg
bm9uLWhpZGRlbiB0cmFjZWJhY2sgZW50cnkgdGhhdCBsZWFkCi0gICAgICAgIHRvIHRoZSBleGNl
cHRpb24gb2YgYSB0cmFjZWJhY2suCi0gICAgICAgICIiIgotICAgICAgICBmb3IgaSBpbiByYW5n
ZSgtMSwgLWxlbihzZWxmKSAtIDEsIC0xKToKLSAgICAgICAgICAgIGVudHJ5ID0gc2VsZltpXQot
ICAgICAgICAgICAgaWYgbm90IGVudHJ5LmlzaGlkZGVuKCk6Ci0gICAgICAgICAgICAgICAgcmV0
dXJuIGVudHJ5Ci0gICAgICAgIHJldHVybiBzZWxmWy0xXQotCi0gICAgZGVmIHJlY3Vyc2lvbmlu
ZGV4KHNlbGYpOgotICAgICAgICAiIiIgcmV0dXJuIHRoZSBpbmRleCBvZiB0aGUgZnJhbWUvVHJh
Y2ViYWNrRW50cnkgd2hlcmUgcmVjdXJzaW9uCi0gICAgICAgICAgICBvcmlnaW5hdGVzIGlmIGFw
cHJvcHJpYXRlLCBOb25lIGlmIG5vIHJlY3Vyc2lvbiBvY2N1cnJlZAotICAgICAgICAiIiIKLSAg
ICAgICAgY2FjaGUgPSB7fQotICAgICAgICBmb3IgaSwgZW50cnkgaW4gZW51bWVyYXRlKHNlbGYp
OgotICAgICAgICAgICAgIyBpZCBmb3IgdGhlIGNvZGUucmF3IGlzIG5lZWRlZCB0byB3b3JrIGFy
b3VuZAotICAgICAgICAgICAgIyB0aGUgc3RyYW5nZSBtZXRhcHJvZ3JhbW1pbmcgaW4gdGhlIGRl
Y29yYXRvciBsaWIgZnJvbSBweXBpCi0gICAgICAgICAgICAjIHdoaWNoIGdlbmVyYXRlcyBjb2Rl
IG9iamVjdHMgdGhhdCBoYXZlIGhhc2gvdmFsdWUgZXF1YWxpdHkKLSAgICAgICAgICAgICMgWFhY
IG5lZWRzIGEgdGVzdAotICAgICAgICAgICAga2V5ID0gZW50cnkuZnJhbWUuY29kZS5wYXRoLCBp
ZChlbnRyeS5mcmFtZS5jb2RlLnJhdyksIGVudHJ5LmxpbmVubwotICAgICAgICAgICAgIyBwcmlu
dCAiY2hlY2tpbmcgZm9yIHJlY3Vyc2lvbiBhdCIsIGtleQotICAgICAgICAgICAgdmFsdWVzID0g
Y2FjaGUuc2V0ZGVmYXVsdChrZXksIFtdKQotICAgICAgICAgICAgaWYgdmFsdWVzOgotICAgICAg
ICAgICAgICAgIGYgPSBlbnRyeS5mcmFtZQotICAgICAgICAgICAgICAgIGxvYyA9IGYuZl9sb2Nh
bHMKLSAgICAgICAgICAgICAgICBmb3Igb3RoZXJsb2MgaW4gdmFsdWVzOgotICAgICAgICAgICAg
ICAgICAgICBpZiBmLmlzX3RydWUoZi5ldmFsKGNvX2VxdWFsLAotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIF9fcmVjdXJzaW9uY2FjaGVfbG9jYWxzXzE9bG9jLAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fcmVjdXJzaW9uY2FjaGVfbG9j
YWxzXzI9b3RoZXJsb2MpKToKLSAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBpCi0gICAg
ICAgICAgICB2YWx1ZXMuYXBwZW5kKGVudHJ5LmZyYW1lLmZfbG9jYWxzKQotICAgICAgICByZXR1
cm4gTm9uZQotCi0KLWNvX2VxdWFsID0gY29tcGlsZSgnX19yZWN1cnNpb25jYWNoZV9sb2NhbHNf
MSA9PSBfX3JlY3Vyc2lvbmNhY2hlX2xvY2Fsc18yJywKLSAgICAgICAgICAgICAgICAgICAnPycs
ICdldmFsJykKLQotCi1jbGFzcyBFeGNlcHRpb25JbmZvKG9iamVjdCk6Ci0gICAgIiIiIHdyYXBz
IHN5cy5leGNfaW5mbygpIG9iamVjdHMgYW5kIG9mZmVycwotICAgICAgICBoZWxwIGZvciBuYXZp
Z2F0aW5nIHRoZSB0cmFjZWJhY2suCi0gICAgIiIiCi0gICAgX3N0cmlwdGV4dCA9ICcnCi0gICAg
X2Fzc2VydF9zdGFydF9yZXByID0gIkFzc2VydGlvbkVycm9yKHVcJ2Fzc2VydCAiIGlmIF9QWTIg
ZWxzZSAiQXNzZXJ0aW9uRXJyb3IoXCdhc3NlcnQgIgotCi0gICAgZGVmIF9faW5pdF9fKHNlbGYs
IHR1cD1Ob25lLCBleHByaW5mbz1Ob25lKToKLSAgICAgICAgaW1wb3J0IF9weXRlc3QuX2NvZGUK
LSAgICAgICAgaWYgdHVwIGlzIE5vbmU6Ci0gICAgICAgICAgICB0dXAgPSBzeXMuZXhjX2luZm8o
KQotICAgICAgICAgICAgaWYgZXhwcmluZm8gaXMgTm9uZSBhbmQgaXNpbnN0YW5jZSh0dXBbMV0s
IEFzc2VydGlvbkVycm9yKToKLSAgICAgICAgICAgICAgICBleHByaW5mbyA9IGdldGF0dHIodHVw
WzFdLCAnbXNnJywgTm9uZSkKLSAgICAgICAgICAgICAgICBpZiBleHByaW5mbyBpcyBOb25lOgot
ICAgICAgICAgICAgICAgICAgICBleHByaW5mbyA9IHB5LmlvLnNhZmVyZXByKHR1cFsxXSkKLSAg
ICAgICAgICAgICAgICBpZiBleHByaW5mbyBhbmQgZXhwcmluZm8uc3RhcnRzd2l0aChzZWxmLl9h
c3NlcnRfc3RhcnRfcmVwcik6Ci0gICAgICAgICAgICAgICAgICAgIHNlbGYuX3N0cmlwdGV4dCA9
ICdBc3NlcnRpb25FcnJvcjogJwotICAgICAgICBzZWxmLl9leGNpbmZvID0gdHVwCi0gICAgICAg
ICM6IHRoZSBleGNlcHRpb24gY2xhc3MKLSAgICAgICAgc2VsZi50eXBlID0gdHVwWzBdCi0gICAg
ICAgICM6IHRoZSBleGNlcHRpb24gaW5zdGFuY2UKLSAgICAgICAgc2VsZi52YWx1ZSA9IHR1cFsx
XQotICAgICAgICAjOiB0aGUgZXhjZXB0aW9uIHJhdyB0cmFjZWJhY2sKLSAgICAgICAgc2VsZi50
YiA9IHR1cFsyXQotICAgICAgICAjOiB0aGUgZXhjZXB0aW9uIHR5cGUgbmFtZQotICAgICAgICBz
ZWxmLnR5cGVuYW1lID0gc2VsZi50eXBlLl9fbmFtZV9fCi0gICAgICAgICM6IHRoZSBleGNlcHRp
b24gdHJhY2ViYWNrIChfcHl0ZXN0Ll9jb2RlLlRyYWNlYmFjayBpbnN0YW5jZSkKLSAgICAgICAg
c2VsZi50cmFjZWJhY2sgPSBfcHl0ZXN0Ll9jb2RlLlRyYWNlYmFjayhzZWxmLnRiLCBleGNpbmZv
PXJlZihzZWxmKSkKLQotICAgIGRlZiBfX3JlcHJfXyhzZWxmKToKLSAgICAgICAgcmV0dXJuICI8
RXhjZXB0aW9uSW5mbyAlcyB0Ymxlbj0lZD4iICUgKHNlbGYudHlwZW5hbWUsIGxlbihzZWxmLnRy
YWNlYmFjaykpCi0KLSAgICBkZWYgZXhjb25seShzZWxmLCB0cnlzaG9ydD1GYWxzZSk6Ci0gICAg
ICAgICIiIiByZXR1cm4gdGhlIGV4Y2VwdGlvbiBhcyBhIHN0cmluZwotCi0gICAgICAgICAgICB3
aGVuICd0cnlzaG9ydCcgcmVzb2x2ZXMgdG8gVHJ1ZSwgYW5kIHRoZSBleGNlcHRpb24gaXMgYQot
ICAgICAgICAgICAgX3B5dGVzdC5fY29kZS5fQXNzZXJ0aW9uRXJyb3IsIG9ubHkgdGhlIGFjdHVh
bCBleGNlcHRpb24gcGFydCBvZgotICAgICAgICAgICAgdGhlIGV4Y2VwdGlvbiByZXByZXNlbnRh
dGlvbiBpcyByZXR1cm5lZCAoc28gJ0Fzc2VydGlvbkVycm9yOiAnIGlzCi0gICAgICAgICAgICBy
ZW1vdmVkIGZyb20gdGhlIGJlZ2lubmluZykKLSAgICAgICAgIiIiCi0gICAgICAgIGxpbmVzID0g
Zm9ybWF0X2V4Y2VwdGlvbl9vbmx5KHNlbGYudHlwZSwgc2VsZi52YWx1ZSkKLSAgICAgICAgdGV4
dCA9ICcnLmpvaW4obGluZXMpCi0gICAgICAgIHRleHQgPSB0ZXh0LnJzdHJpcCgpCi0gICAgICAg
IGlmIHRyeXNob3J0OgotICAgICAgICAgICAgaWYgdGV4dC5zdGFydHN3aXRoKHNlbGYuX3N0cmlw
dGV4dCk6Ci0gICAgICAgICAgICAgICAgdGV4dCA9IHRleHRbbGVuKHNlbGYuX3N0cmlwdGV4dCk6
XQotICAgICAgICByZXR1cm4gdGV4dAotCi0gICAgZGVmIGVycmlzaW5zdGFuY2Uoc2VsZiwgZXhj
KToKLSAgICAgICAgIiIiIHJldHVybiBUcnVlIGlmIHRoZSBleGNlcHRpb24gaXMgYW4gaW5zdGFu
Y2Ugb2YgZXhjICIiIgotICAgICAgICByZXR1cm4gaXNpbnN0YW5jZShzZWxmLnZhbHVlLCBleGMp
Ci0KLSAgICBkZWYgX2dldHJlcHJjcmFzaChzZWxmKToKLSAgICAgICAgZXhjb25seSA9IHNlbGYu
ZXhjb25seSh0cnlzaG9ydD1UcnVlKQotICAgICAgICBlbnRyeSA9IHNlbGYudHJhY2ViYWNrLmdl
dGNyYXNoZW50cnkoKQotICAgICAgICBwYXRoLCBsaW5lbm8gPSBlbnRyeS5mcmFtZS5jb2RlLnJh
dy5jb19maWxlbmFtZSwgZW50cnkubGluZW5vCi0gICAgICAgIHJldHVybiBSZXByRmlsZUxvY2F0
aW9uKHBhdGgsIGxpbmVubyArIDEsIGV4Y29ubHkpCi0KLSAgICBkZWYgZ2V0cmVwcihzZWxmLCBz
aG93bG9jYWxzPUZhbHNlLCBzdHlsZT0ibG9uZyIsCi0gICAgICAgICAgICAgICAgYWJzcGF0aD1G
YWxzZSwgdGJmaWx0ZXI9VHJ1ZSwgZnVuY2FyZ3M9RmFsc2UpOgotICAgICAgICAiIiIgcmV0dXJu
IHN0cigpYWJsZSByZXByZXNlbnRhdGlvbiBvZiB0aGlzIGV4Y2VwdGlvbiBpbmZvLgotICAgICAg
ICAgICAgc2hvd2xvY2Fsczogc2hvdyBsb2NhbHMgcGVyIHRyYWNlYmFjayBlbnRyeQotICAgICAg
ICAgICAgc3R5bGU6IGxvbmd8c2hvcnR8bm98bmF0aXZlIHRyYWNlYmFjayBzdHlsZQotICAgICAg
ICAgICAgdGJmaWx0ZXI6IGhpZGUgZW50cmllcyAod2hlcmUgX190cmFjZWJhY2toaWRlX18gaXMg
dHJ1ZSkKLQotICAgICAgICAgICAgaW4gY2FzZSBvZiBzdHlsZT09bmF0aXZlLCB0YmZpbHRlciBh
bmQgc2hvd2xvY2FscyBpcyBpZ25vcmVkLgotICAgICAgICAiIiIKLSAgICAgICAgaWYgc3R5bGUg
PT0gJ25hdGl2ZSc6Ci0gICAgICAgICAgICByZXR1cm4gUmVwckV4Y2VwdGlvbkluZm8oUmVwclRy
YWNlYmFja05hdGl2ZSgKLSAgICAgICAgICAgICAgICBweS5zdGQudHJhY2ViYWNrLmZvcm1hdF9l
eGNlcHRpb24oCi0gICAgICAgICAgICAgICAgICAgIHNlbGYudHlwZSwKLSAgICAgICAgICAgICAg
ICAgICAgc2VsZi52YWx1ZSwKLSAgICAgICAgICAgICAgICAgICAgc2VsZi50cmFjZWJhY2tbMF0u
X3Jhd2VudHJ5LAotICAgICAgICAgICAgICAgICkpLCBzZWxmLl9nZXRyZXByY3Jhc2goKSkKLQot
ICAgICAgICBmbXQgPSBGb3JtYXR0ZWRFeGNpbmZvKHNob3dsb2NhbHM9c2hvd2xvY2Fscywgc3R5
bGU9c3R5bGUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWJzcGF0aD1hYnNwYXRo
LCB0YmZpbHRlcj10YmZpbHRlciwgZnVuY2FyZ3M9ZnVuY2FyZ3MpCi0gICAgICAgIHJldHVybiBm
bXQucmVwcl9leGNpbmZvKHNlbGYpCi0KLSAgICBkZWYgX19zdHJfXyhzZWxmKToKLSAgICAgICAg
ZW50cnkgPSBzZWxmLnRyYWNlYmFja1stMV0KLSAgICAgICAgbG9jID0gUmVwckZpbGVMb2NhdGlv
bihlbnRyeS5wYXRoLCBlbnRyeS5saW5lbm8gKyAxLCBzZWxmLmV4Y29ubHkoKSkKLSAgICAgICAg
cmV0dXJuIHN0cihsb2MpCi0KLSAgICBkZWYgX191bmljb2RlX18oc2VsZik6Ci0gICAgICAgIGVu
dHJ5ID0gc2VsZi50cmFjZWJhY2tbLTFdCi0gICAgICAgIGxvYyA9IFJlcHJGaWxlTG9jYXRpb24o
ZW50cnkucGF0aCwgZW50cnkubGluZW5vICsgMSwgc2VsZi5leGNvbmx5KCkpCi0gICAgICAgIHJl
dHVybiB1bmljb2RlKGxvYykKLQotICAgIGRlZiBtYXRjaChzZWxmLCByZWdleHApOgotICAgICAg
ICAiIiIKLSAgICAgICAgTWF0Y2ggdGhlIHJlZ3VsYXIgZXhwcmVzc2lvbiAncmVnZXhwJyBvbiB0
aGUgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mCi0gICAgICAgIHRoZSBleGNlcHRpb24uIElmIGl0
IG1hdGNoZXMgdGhlbiBUcnVlIGlzIHJldHVybmVkIChzbyB0aGF0IGl0IGlzCi0gICAgICAgIHBv
c3NpYmxlIHRvIHdyaXRlICdhc3NlcnQgZXhjaW5mby5tYXRjaCgpJykuIElmIGl0IGRvZXNuJ3Qg
bWF0Y2ggYW4KLSAgICAgICAgQXNzZXJ0aW9uRXJyb3IgaXMgcmFpc2VkLgotICAgICAgICAiIiIK
LSAgICAgICAgX190cmFjZWJhY2toaWRlX18gPSBUcnVlCi0gICAgICAgIGlmIG5vdCByZS5zZWFy
Y2gocmVnZXhwLCBzdHIoc2VsZi52YWx1ZSkpOgotICAgICAgICAgICAgYXNzZXJ0IDAsICJQYXR0
ZXJuICd7MCFzfScgbm90IGZvdW5kIGluICd7MSFzfSciLmZvcm1hdCgKLSAgICAgICAgICAgICAg
ICByZWdleHAsIHNlbGYudmFsdWUpCi0gICAgICAgIHJldHVybiBUcnVlCi0KLQotY2xhc3MgRm9y
bWF0dGVkRXhjaW5mbyhvYmplY3QpOgotICAgICIiIiBwcmVzZW50aW5nIGluZm9ybWF0aW9uIGFi
b3V0IGZhaWxpbmcgRnVuY3Rpb25zIGFuZCBHZW5lcmF0b3JzLiAiIiIKLSAgICAjIGZvciB0cmFj
ZWJhY2sgZW50cmllcwotICAgIGZsb3dfbWFya2VyID0gIj4iCi0gICAgZmFpbF9tYXJrZXIgPSAi
RSIKLQotICAgIGRlZiBfX2luaXRfXyhzZWxmLCBzaG93bG9jYWxzPUZhbHNlLCBzdHlsZT0ibG9u
ZyIsIGFic3BhdGg9VHJ1ZSwgdGJmaWx0ZXI9VHJ1ZSwgZnVuY2FyZ3M9RmFsc2UpOgotICAgICAg
ICBzZWxmLnNob3dsb2NhbHMgPSBzaG93bG9jYWxzCi0gICAgICAgIHNlbGYuc3R5bGUgPSBzdHls
ZQotICAgICAgICBzZWxmLnRiZmlsdGVyID0gdGJmaWx0ZXIKLSAgICAgICAgc2VsZi5mdW5jYXJn
cyA9IGZ1bmNhcmdzCi0gICAgICAgIHNlbGYuYWJzcGF0aCA9IGFic3BhdGgKLSAgICAgICAgc2Vs
Zi5hc3RjYWNoZSA9IHt9Ci0KLSAgICBkZWYgX2dldGluZGVudChzZWxmLCBzb3VyY2UpOgotICAg
ICAgICAjIGZpZ3VyZSBvdXQgaW5kZW50IGZvciBnaXZlbiBzb3VyY2UKLSAgICAgICAgdHJ5Ogot
ICAgICAgICAgICAgcyA9IHN0cihzb3VyY2UuZ2V0c3RhdGVtZW50KGxlbihzb3VyY2UpIC0gMSkp
Ci0gICAgICAgIGV4Y2VwdCBLZXlib2FyZEludGVycnVwdDoKLSAgICAgICAgICAgIHJhaXNlCi0g
ICAgICAgIGV4Y2VwdDogICMgbm9xYQotICAgICAgICAgICAgdHJ5OgotICAgICAgICAgICAgICAg
IHMgPSBzdHIoc291cmNlWy0xXSkKLSAgICAgICAgICAgIGV4Y2VwdCBLZXlib2FyZEludGVycnVw
dDoKLSAgICAgICAgICAgICAgICByYWlzZQotICAgICAgICAgICAgZXhjZXB0OiAgIyBub3FhCi0g
ICAgICAgICAgICAgICAgcmV0dXJuIDAKLSAgICAgICAgcmV0dXJuIDQgKyAobGVuKHMpIC0gbGVu
KHMubHN0cmlwKCkpKQotCi0gICAgZGVmIF9nZXRlbnRyeXNvdXJjZShzZWxmLCBlbnRyeSk6Ci0g
ICAgICAgIHNvdXJjZSA9IGVudHJ5LmdldHNvdXJjZShzZWxmLmFzdGNhY2hlKQotICAgICAgICBp
ZiBzb3VyY2UgaXMgbm90IE5vbmU6Ci0gICAgICAgICAgICBzb3VyY2UgPSBzb3VyY2UuZGVpbmRl
bnQoKQotICAgICAgICByZXR1cm4gc291cmNlCi0KLSAgICBkZWYgX3NhZmVyZXByKHNlbGYsIG9i
aik6Ci0gICAgICAgIHJldHVybiBweS5pby5zYWZlcmVwcihvYmopCi0KLSAgICBkZWYgcmVwcl9h
cmdzKHNlbGYsIGVudHJ5KToKLSAgICAgICAgaWYgc2VsZi5mdW5jYXJnczoKLSAgICAgICAgICAg
IGFyZ3MgPSBbXQotICAgICAgICAgICAgZm9yIGFyZ25hbWUsIGFyZ3ZhbHVlIGluIGVudHJ5LmZy
YW1lLmdldGFyZ3ModmFyPVRydWUpOgotICAgICAgICAgICAgICAgIGFyZ3MuYXBwZW5kKChhcmdu
YW1lLCBzZWxmLl9zYWZlcmVwcihhcmd2YWx1ZSkpKQotICAgICAgICAgICAgcmV0dXJuIFJlcHJG
dW5jQXJncyhhcmdzKQotCi0gICAgZGVmIGdldF9zb3VyY2Uoc2VsZiwgc291cmNlLCBsaW5lX2lu
ZGV4PS0xLCBleGNpbmZvPU5vbmUsIHNob3J0PUZhbHNlKToKLSAgICAgICAgIiIiIHJldHVybiBm
b3JtYXR0ZWQgYW5kIG1hcmtlZCB1cCBzb3VyY2UgbGluZXMuICIiIgotICAgICAgICBpbXBvcnQg
X3B5dGVzdC5fY29kZQotICAgICAgICBsaW5lcyA9IFtdCi0gICAgICAgIGlmIHNvdXJjZSBpcyBO
b25lIG9yIGxpbmVfaW5kZXggPj0gbGVuKHNvdXJjZS5saW5lcyk6Ci0gICAgICAgICAgICBzb3Vy
Y2UgPSBfcHl0ZXN0Ll9jb2RlLlNvdXJjZSgiPz8/IikKLSAgICAgICAgICAgIGxpbmVfaW5kZXgg
PSAwCi0gICAgICAgIGlmIGxpbmVfaW5kZXggPCAwOgotICAgICAgICAgICAgbGluZV9pbmRleCAr
PSBsZW4oc291cmNlKQotICAgICAgICBzcGFjZV9wcmVmaXggPSAiICAgICIKLSAgICAgICAgaWYg
c2hvcnQ6Ci0gICAgICAgICAgICBsaW5lcy5hcHBlbmQoc3BhY2VfcHJlZml4ICsgc291cmNlLmxp
bmVzW2xpbmVfaW5kZXhdLnN0cmlwKCkpCi0gICAgICAgIGVsc2U6Ci0gICAgICAgICAgICBmb3Ig
bGluZSBpbiBzb3VyY2UubGluZXNbOmxpbmVfaW5kZXhdOgotICAgICAgICAgICAgICAgIGxpbmVz
LmFwcGVuZChzcGFjZV9wcmVmaXggKyBsaW5lKQotICAgICAgICAgICAgbGluZXMuYXBwZW5kKHNl
bGYuZmxvd19tYXJrZXIgKyAiICAgIiArIHNvdXJjZS5saW5lc1tsaW5lX2luZGV4XSkKLSAgICAg
ICAgICAgIGZvciBsaW5lIGluIHNvdXJjZS5saW5lc1tsaW5lX2luZGV4ICsgMTpdOgotICAgICAg
ICAgICAgICAgIGxpbmVzLmFwcGVuZChzcGFjZV9wcmVmaXggKyBsaW5lKQotICAgICAgICBpZiBl
eGNpbmZvIGlzIG5vdCBOb25lOgotICAgICAgICAgICAgaW5kZW50ID0gNCBpZiBzaG9ydCBlbHNl
IHNlbGYuX2dldGluZGVudChzb3VyY2UpCi0gICAgICAgICAgICBsaW5lcy5leHRlbmQoc2VsZi5n
ZXRfZXhjb25seShleGNpbmZvLCBpbmRlbnQ9aW5kZW50LCBtYXJrYWxsPVRydWUpKQotICAgICAg
ICByZXR1cm4gbGluZXMKLQotICAgIGRlZiBnZXRfZXhjb25seShzZWxmLCBleGNpbmZvLCBpbmRl
bnQ9NCwgbWFya2FsbD1GYWxzZSk6Ci0gICAgICAgIGxpbmVzID0gW10KLSAgICAgICAgaW5kZW50
ID0gIiAiICogaW5kZW50Ci0gICAgICAgICMgZ2V0IHRoZSByZWFsIGV4Y2VwdGlvbiBpbmZvcm1h
dGlvbiBvdXQKLSAgICAgICAgZXhsaW5lcyA9IGV4Y2luZm8uZXhjb25seSh0cnlzaG9ydD1UcnVl
KS5zcGxpdCgnXG4nKQotICAgICAgICBmYWlsaW5kZW50ID0gc2VsZi5mYWlsX21hcmtlciArIGlu
ZGVudFsxOl0KLSAgICAgICAgZm9yIGxpbmUgaW4gZXhsaW5lczoKLSAgICAgICAgICAgIGxpbmVz
LmFwcGVuZChmYWlsaW5kZW50ICsgbGluZSkKLSAgICAgICAgICAgIGlmIG5vdCBtYXJrYWxsOgot
ICAgICAgICAgICAgICAgIGZhaWxpbmRlbnQgPSBpbmRlbnQKLSAgICAgICAgcmV0dXJuIGxpbmVz
Ci0KLSAgICBkZWYgcmVwcl9sb2NhbHMoc2VsZiwgbG9jYWxzKToKLSAgICAgICAgaWYgc2VsZi5z
aG93bG9jYWxzOgotICAgICAgICAgICAgbGluZXMgPSBbXQotICAgICAgICAgICAga2V5cyA9IFts
b2MgZm9yIGxvYyBpbiBsb2NhbHMgaWYgbG9jWzBdICE9ICJAIl0KLSAgICAgICAgICAgIGtleXMu
c29ydCgpCi0gICAgICAgICAgICBmb3IgbmFtZSBpbiBrZXlzOgotICAgICAgICAgICAgICAgIHZh
bHVlID0gbG9jYWxzW25hbWVdCi0gICAgICAgICAgICAgICAgaWYgbmFtZSA9PSAnX19idWlsdGlu
c19fJzoKLSAgICAgICAgICAgICAgICAgICAgbGluZXMuYXBwZW5kKCJfX2J1aWx0aW5zX18gPSA8
YnVpbHRpbnM+IikKLSAgICAgICAgICAgICAgICBlbHNlOgotICAgICAgICAgICAgICAgICAgICAj
IFRoaXMgZm9ybWF0dGluZyBjb3VsZCBhbGwgYmUgaGFuZGxlZCBieSB0aGUKLSAgICAgICAgICAg
ICAgICAgICAgIyBfcmVwcigpIGZ1bmN0aW9uLCB3aGljaCBpcyBvbmx5IHJlcHJsaWIuUmVwciBp
bgotICAgICAgICAgICAgICAgICAgICAjIGRpc2d1aXNlLCBzbyBpcyB2ZXJ5IGNvbmZpZ3VyYWJs
ZS4KLSAgICAgICAgICAgICAgICAgICAgc3RyX3JlcHIgPSBzZWxmLl9zYWZlcmVwcih2YWx1ZSkK
LSAgICAgICAgICAgICAgICAgICAgIyBpZiBsZW4oc3RyX3JlcHIpIDwgNzAgb3Igbm90IGlzaW5z
dGFuY2UodmFsdWUsCi0gICAgICAgICAgICAgICAgICAgICMgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgKGxpc3QsIHR1cGxlLCBkaWN0KSk6Ci0gICAgICAgICAgICAgICAgICAgIGxpbmVzLmFw
cGVuZCgiJS0xMHMgPSAlcyIgJSAobmFtZSwgc3RyX3JlcHIpKQotICAgICAgICAgICAgICAgICAg
ICAjIGVsc2U6Ci0gICAgICAgICAgICAgICAgICAgICMgICAgc2VsZi5fbGluZSgiJS0xMHMgPVxc
IiAlIChuYW1lLCkpCi0gICAgICAgICAgICAgICAgICAgICMgICAgIyBYWFgKLSAgICAgICAgICAg
ICAgICAgICAgIyAgICBweS5zdGQucHByaW50LnBwcmludCh2YWx1ZSwgc3RyZWFtPXNlbGYuZXhj
aW5mb3dyaXRlcikKLSAgICAgICAgICAgIHJldHVybiBSZXByTG9jYWxzKGxpbmVzKQotCi0gICAg
ZGVmIHJlcHJfdHJhY2ViYWNrX2VudHJ5KHNlbGYsIGVudHJ5LCBleGNpbmZvPU5vbmUpOgotICAg
ICAgICBpbXBvcnQgX3B5dGVzdC5fY29kZQotICAgICAgICBzb3VyY2UgPSBzZWxmLl9nZXRlbnRy
eXNvdXJjZShlbnRyeSkKLSAgICAgICAgaWYgc291cmNlIGlzIE5vbmU6Ci0gICAgICAgICAgICBz
b3VyY2UgPSBfcHl0ZXN0Ll9jb2RlLlNvdXJjZSgiPz8/IikKLSAgICAgICAgICAgIGxpbmVfaW5k
ZXggPSAwCi0gICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAjIGVudHJ5LmdldGZpcnN0bGluZXNv
dXJjZSgpIGNhbiBiZSAtMSwgc2hvdWxkIGJlIDAgb24ganl0aG9uCi0gICAgICAgICAgICBsaW5l
X2luZGV4ID0gZW50cnkubGluZW5vIC0gbWF4KGVudHJ5LmdldGZpcnN0bGluZXNvdXJjZSgpLCAw
KQotCi0gICAgICAgIGxpbmVzID0gW10KLSAgICAgICAgc3R5bGUgPSBlbnRyeS5fcmVwcl9zdHls
ZQotICAgICAgICBpZiBzdHlsZSBpcyBOb25lOgotICAgICAgICAgICAgc3R5bGUgPSBzZWxmLnN0
eWxlCi0gICAgICAgIGlmIHN0eWxlIGluICgic2hvcnQiLCAibG9uZyIpOgotICAgICAgICAgICAg
c2hvcnQgPSBzdHlsZSA9PSAic2hvcnQiCi0gICAgICAgICAgICByZXByYXJncyA9IHNlbGYucmVw
cl9hcmdzKGVudHJ5KSBpZiBub3Qgc2hvcnQgZWxzZSBOb25lCi0gICAgICAgICAgICBzID0gc2Vs
Zi5nZXRfc291cmNlKHNvdXJjZSwgbGluZV9pbmRleCwgZXhjaW5mbywgc2hvcnQ9c2hvcnQpCi0g
ICAgICAgICAgICBsaW5lcy5leHRlbmQocykKLSAgICAgICAgICAgIGlmIHNob3J0OgotICAgICAg
ICAgICAgICAgIG1lc3NhZ2UgPSAiaW4gJXMiICUgKGVudHJ5Lm5hbWUpCi0gICAgICAgICAgICBl
bHNlOgotICAgICAgICAgICAgICAgIG1lc3NhZ2UgPSBleGNpbmZvIGFuZCBleGNpbmZvLnR5cGVu
YW1lIG9yICIiCi0gICAgICAgICAgICBwYXRoID0gc2VsZi5fbWFrZXBhdGgoZW50cnkucGF0aCkK
LSAgICAgICAgICAgIGZpbGVsb2NyZXByID0gUmVwckZpbGVMb2NhdGlvbihwYXRoLCBlbnRyeS5s
aW5lbm8gKyAxLCBtZXNzYWdlKQotICAgICAgICAgICAgbG9jYWxzcmVwciA9IE5vbmUKLSAgICAg
ICAgICAgIGlmIG5vdCBzaG9ydDoKLSAgICAgICAgICAgICAgICBsb2NhbHNyZXByID0gc2VsZi5y
ZXByX2xvY2FscyhlbnRyeS5sb2NhbHMpCi0gICAgICAgICAgICByZXR1cm4gUmVwckVudHJ5KGxp
bmVzLCByZXByYXJncywgbG9jYWxzcmVwciwgZmlsZWxvY3JlcHIsIHN0eWxlKQotICAgICAgICBp
ZiBleGNpbmZvOgotICAgICAgICAgICAgbGluZXMuZXh0ZW5kKHNlbGYuZ2V0X2V4Y29ubHkoZXhj
aW5mbywgaW5kZW50PTQpKQotICAgICAgICByZXR1cm4gUmVwckVudHJ5KGxpbmVzLCBOb25lLCBO
b25lLCBOb25lLCBzdHlsZSkKLQotICAgIGRlZiBfbWFrZXBhdGgoc2VsZiwgcGF0aCk6Ci0gICAg
ICAgIGlmIG5vdCBzZWxmLmFic3BhdGg6Ci0gICAgICAgICAgICB0cnk6Ci0gICAgICAgICAgICAg
ICAgbnAgPSBweS5wYXRoLmxvY2FsKCkuYmVzdHJlbHBhdGgocGF0aCkKLSAgICAgICAgICAgIGV4
Y2VwdCBPU0Vycm9yOgotICAgICAgICAgICAgICAgIHJldHVybiBwYXRoCi0gICAgICAgICAgICBp
ZiBsZW4obnApIDwgbGVuKHN0cihwYXRoKSk6Ci0gICAgICAgICAgICAgICAgcGF0aCA9IG5wCi0g
ICAgICAgIHJldHVybiBwYXRoCi0KLSAgICBkZWYgcmVwcl90cmFjZWJhY2soc2VsZiwgZXhjaW5m
byk6Ci0gICAgICAgIHRyYWNlYmFjayA9IGV4Y2luZm8udHJhY2ViYWNrCi0gICAgICAgIGlmIHNl
bGYudGJmaWx0ZXI6Ci0gICAgICAgICAgICB0cmFjZWJhY2sgPSB0cmFjZWJhY2suZmlsdGVyKCkK
LQotICAgICAgICBpZiBpc19yZWN1cnNpb25fZXJyb3IoZXhjaW5mbyk6Ci0gICAgICAgICAgICB0
cmFjZWJhY2ssIGV4dHJhbGluZSA9IHNlbGYuX3RydW5jYXRlX3JlY3Vyc2l2ZV90cmFjZWJhY2so
dHJhY2ViYWNrKQotICAgICAgICBlbHNlOgotICAgICAgICAgICAgZXh0cmFsaW5lID0gTm9uZQot
Ci0gICAgICAgIGxhc3QgPSB0cmFjZWJhY2tbLTFdCi0gICAgICAgIGVudHJpZXMgPSBbXQotICAg
ICAgICBmb3IgaW5kZXgsIGVudHJ5IGluIGVudW1lcmF0ZSh0cmFjZWJhY2spOgotICAgICAgICAg
ICAgZWluZm8gPSAobGFzdCA9PSBlbnRyeSkgYW5kIGV4Y2luZm8gb3IgTm9uZQotICAgICAgICAg
ICAgcmVwcmVudHJ5ID0gc2VsZi5yZXByX3RyYWNlYmFja19lbnRyeShlbnRyeSwgZWluZm8pCi0g
ICAgICAgICAgICBlbnRyaWVzLmFwcGVuZChyZXByZW50cnkpCi0gICAgICAgIHJldHVybiBSZXBy
VHJhY2ViYWNrKGVudHJpZXMsIGV4dHJhbGluZSwgc3R5bGU9c2VsZi5zdHlsZSkKLQotICAgIGRl
ZiBfdHJ1bmNhdGVfcmVjdXJzaXZlX3RyYWNlYmFjayhzZWxmLCB0cmFjZWJhY2spOgotICAgICAg
ICAiIiIKLSAgICAgICAgVHJ1bmNhdGUgdGhlIGdpdmVuIHJlY3Vyc2l2ZSB0cmFjZWJhY2sgdHJ5
aW5nIHRvIGZpbmQgdGhlIHN0YXJ0aW5nIHBvaW50Ci0gICAgICAgIG9mIHRoZSByZWN1cnNpb24u
Ci0KLSAgICAgICAgVGhlIGRldGVjdGlvbiBpcyBkb25lIGJ5IGdvaW5nIHRocm91Z2ggZWFjaCB0
cmFjZWJhY2sgZW50cnkgYW5kIGZpbmRpbmcgdGhlCi0gICAgICAgIHBvaW50IGluIHdoaWNoIHRo
ZSBsb2NhbHMgb2YgdGhlIGZyYW1lIGFyZSBlcXVhbCB0byB0aGUgbG9jYWxzIG9mIGEgcHJldmlv
dXMgZnJhbWUgKHNlZSBgYHJlY3Vyc2lvbmluZGV4KClgYC4KLQotICAgICAgICBIYW5kbGUgdGhl
IHNpdHVhdGlvbiB3aGVyZSB0aGUgcmVjdXJzaW9uIHByb2Nlc3MgbWlnaHQgcmFpc2UgYW4gZXhj
ZXB0aW9uIChmb3IgZXhhbXBsZQotICAgICAgICBjb21wYXJpbmcgbnVtcHkgYXJyYXlzIHVzaW5n
IGVxdWFsaXR5IHJhaXNlcyBhIFR5cGVFcnJvciksIGluIHdoaWNoIGNhc2Ugd2UgZG8gb3VyIGJl
c3QgdG8KLSAgICAgICAgd2FybiB0aGUgdXNlciBvZiB0aGUgZXJyb3IgYW5kIHNob3cgYSBsaW1p
dGVkIHRyYWNlYmFjay4KLSAgICAgICAgIiIiCi0gICAgICAgIHRyeToKLSAgICAgICAgICAgIHJl
Y3Vyc2lvbmluZGV4ID0gdHJhY2ViYWNrLnJlY3Vyc2lvbmluZGV4KCkKLSAgICAgICAgZXhjZXB0
IEV4Y2VwdGlvbiBhcyBlOgotICAgICAgICAgICAgbWF4X2ZyYW1lcyA9IDEwCi0gICAgICAgICAg
ICBleHRyYWxpbmUgPSAoCi0gICAgICAgICAgICAgICAgJyEhISBSZWN1cnNpb24gZXJyb3IgZGV0
ZWN0ZWQsIGJ1dCBhbiBlcnJvciBvY2N1cnJlZCBsb2NhdGluZyB0aGUgb3JpZ2luIG9mIHJlY3Vy
c2lvbi5cbicKLSAgICAgICAgICAgICAgICAnICBUaGUgZm9sbG93aW5nIGV4Y2VwdGlvbiBoYXBw
ZW5lZCB3aGVuIGNvbXBhcmluZyBsb2NhbHMgaW4gdGhlIHN0YWNrIGZyYW1lOlxuJwotICAgICAg
ICAgICAgICAgICcgICAge2V4Y190eXBlfToge2V4Y19tc2d9XG4nCi0gICAgICAgICAgICAgICAg
JyAgRGlzcGxheWluZyBmaXJzdCBhbmQgbGFzdCB7bWF4X2ZyYW1lc30gc3RhY2sgZnJhbWVzIG91
dCBvZiB7dG90YWx9LicKLSAgICAgICAgICAgICkuZm9ybWF0KGV4Y190eXBlPXR5cGUoZSkuX19u
YW1lX18sIGV4Y19tc2c9c2FmZV9zdHIoZSksIG1heF9mcmFtZXM9bWF4X2ZyYW1lcywgdG90YWw9
bGVuKHRyYWNlYmFjaykpCi0gICAgICAgICAgICB0cmFjZWJhY2sgPSB0cmFjZWJhY2tbOm1heF9m
cmFtZXNdICsgdHJhY2ViYWNrWy1tYXhfZnJhbWVzOl0KLSAgICAgICAgZWxzZToKLSAgICAgICAg
ICAgIGlmIHJlY3Vyc2lvbmluZGV4IGlzIG5vdCBOb25lOgotICAgICAgICAgICAgICAgIGV4dHJh
bGluZSA9ICIhISEgUmVjdXJzaW9uIGRldGVjdGVkIChzYW1lIGxvY2FscyAmIHBvc2l0aW9uKSIK
LSAgICAgICAgICAgICAgICB0cmFjZWJhY2sgPSB0cmFjZWJhY2tbOnJlY3Vyc2lvbmluZGV4ICsg
MV0KLSAgICAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAgICAgZXh0cmFsaW5lID0gTm9uZQot
Ci0gICAgICAgIHJldHVybiB0cmFjZWJhY2ssIGV4dHJhbGluZQotCi0gICAgZGVmIHJlcHJfZXhj
aW5mbyhzZWxmLCBleGNpbmZvKToKLSAgICAgICAgaWYgX1BZMjoKLSAgICAgICAgICAgIHJlcHJ0
cmFjZWJhY2sgPSBzZWxmLnJlcHJfdHJhY2ViYWNrKGV4Y2luZm8pCi0gICAgICAgICAgICByZXBy
Y3Jhc2ggPSBleGNpbmZvLl9nZXRyZXByY3Jhc2goKQotCi0gICAgICAgICAgICByZXR1cm4gUmVw
ckV4Y2VwdGlvbkluZm8ocmVwcnRyYWNlYmFjaywgcmVwcmNyYXNoKQotICAgICAgICBlbHNlOgot
ICAgICAgICAgICAgcmVwcl9jaGFpbiA9IFtdCi0gICAgICAgICAgICBlID0gZXhjaW5mby52YWx1
ZQotICAgICAgICAgICAgZGVzY3IgPSBOb25lCi0gICAgICAgICAgICB3aGlsZSBlIGlzIG5vdCBO
b25lOgotICAgICAgICAgICAgICAgIGlmIGV4Y2luZm86Ci0gICAgICAgICAgICAgICAgICAgIHJl
cHJ0cmFjZWJhY2sgPSBzZWxmLnJlcHJfdHJhY2ViYWNrKGV4Y2luZm8pCi0gICAgICAgICAgICAg
ICAgICAgIHJlcHJjcmFzaCA9IGV4Y2luZm8uX2dldHJlcHJjcmFzaCgpCi0gICAgICAgICAgICAg
ICAgZWxzZToKLSAgICAgICAgICAgICAgICAgICAgIyBmYWxsYmFjayB0byBuYXRpdmUgcmVwciBp
ZiB0aGUgZXhjZXB0aW9uIGRvZXNuJ3QgaGF2ZSBhIHRyYWNlYmFjazoKLSAgICAgICAgICAgICAg
ICAgICAgIyBFeGNlcHRpb25JbmZvIG9iamVjdHMgcmVxdWlyZSBhIGZ1bGwgdHJhY2ViYWNrIHRv
IHdvcmsKLSAgICAgICAgICAgICAgICAgICAgcmVwcnRyYWNlYmFjayA9IFJlcHJUcmFjZWJhY2tO
YXRpdmUocHkuc3RkLnRyYWNlYmFjay5mb3JtYXRfZXhjZXB0aW9uKHR5cGUoZSksIGUsIE5vbmUp
KQotICAgICAgICAgICAgICAgICAgICByZXByY3Jhc2ggPSBOb25lCi0KLSAgICAgICAgICAgICAg
ICByZXByX2NoYWluICs9IFsocmVwcnRyYWNlYmFjaywgcmVwcmNyYXNoLCBkZXNjcildCi0gICAg
ICAgICAgICAgICAgaWYgZS5fX2NhdXNlX18gaXMgbm90IE5vbmU6Ci0gICAgICAgICAgICAgICAg
ICAgIGUgPSBlLl9fY2F1c2VfXwotICAgICAgICAgICAgICAgICAgICBleGNpbmZvID0gRXhjZXB0
aW9uSW5mbygodHlwZShlKSwgZSwgZS5fX3RyYWNlYmFja19fKSkgaWYgZS5fX3RyYWNlYmFja19f
IGVsc2UgTm9uZQotICAgICAgICAgICAgICAgICAgICBkZXNjciA9ICdUaGUgYWJvdmUgZXhjZXB0
aW9uIHdhcyB0aGUgZGlyZWN0IGNhdXNlIG9mIHRoZSBmb2xsb3dpbmcgZXhjZXB0aW9uOicKLSAg
ICAgICAgICAgICAgICBlbGlmIChlLl9fY29udGV4dF9fIGlzIG5vdCBOb25lIGFuZCBub3QgZS5f
X3N1cHByZXNzX2NvbnRleHRfXyk6Ci0gICAgICAgICAgICAgICAgICAgIGUgPSBlLl9fY29udGV4
dF9fCi0gICAgICAgICAgICAgICAgICAgIGV4Y2luZm8gPSBFeGNlcHRpb25JbmZvKCh0eXBlKGUp
LCBlLCBlLl9fdHJhY2ViYWNrX18pKSBpZiBlLl9fdHJhY2ViYWNrX18gZWxzZSBOb25lCi0gICAg
ICAgICAgICAgICAgICAgIGRlc2NyID0gJ0R1cmluZyBoYW5kbGluZyBvZiB0aGUgYWJvdmUgZXhj
ZXB0aW9uLCBhbm90aGVyIGV4Y2VwdGlvbiBvY2N1cnJlZDonCi0gICAgICAgICAgICAgICAgZWxz
ZToKLSAgICAgICAgICAgICAgICAgICAgZSA9IE5vbmUKLSAgICAgICAgICAgIHJlcHJfY2hhaW4u
cmV2ZXJzZSgpCi0gICAgICAgICAgICByZXR1cm4gRXhjZXB0aW9uQ2hhaW5SZXByKHJlcHJfY2hh
aW4pCi0KLQotY2xhc3MgVGVybWluYWxSZXByKG9iamVjdCk6Ci0gICAgZGVmIF9fc3RyX18oc2Vs
Zik6Ci0gICAgICAgIHMgPSBzZWxmLl9fdW5pY29kZV9fKCkKLSAgICAgICAgaWYgX1BZMjoKLSAg
ICAgICAgICAgIHMgPSBzLmVuY29kZSgndXRmLTgnKQotICAgICAgICByZXR1cm4gcwotCi0gICAg
ZGVmIF9fdW5pY29kZV9fKHNlbGYpOgotICAgICAgICAjIEZZSSB0aGlzIGlzIGNhbGxlZCBmcm9t
IHB5dGVzdC14ZGlzdCdzIHNlcmlhbGl6YXRpb24gb2YgZXhjZXB0aW9uCi0gICAgICAgICMgaW5m
b3JtYXRpb24uCi0gICAgICAgIGlvID0gcHkuaW8uVGV4dElPKCkKLSAgICAgICAgdHcgPSBweS5p
by5UZXJtaW5hbFdyaXRlcihmaWxlPWlvKQotICAgICAgICBzZWxmLnRvdGVybWluYWwodHcpCi0g
ICAgICAgIHJldHVybiBpby5nZXR2YWx1ZSgpLnN0cmlwKCkKLQotICAgIGRlZiBfX3JlcHJfXyhz
ZWxmKToKLSAgICAgICAgcmV0dXJuICI8JXMgaW5zdGFuY2UgYXQgJTB4PiIgJSAoc2VsZi5fX2Ns
YXNzX18sIGlkKHNlbGYpKQotCi0KLWNsYXNzIEV4Y2VwdGlvblJlcHIoVGVybWluYWxSZXByKToK
LSAgICBkZWYgX19pbml0X18oc2VsZik6Ci0gICAgICAgIHNlbGYuc2VjdGlvbnMgPSBbXQotCi0g
ICAgZGVmIGFkZHNlY3Rpb24oc2VsZiwgbmFtZSwgY29udGVudCwgc2VwPSItIik6Ci0gICAgICAg
IHNlbGYuc2VjdGlvbnMuYXBwZW5kKChuYW1lLCBjb250ZW50LCBzZXApKQotCi0gICAgZGVmIHRv
dGVybWluYWwoc2VsZiwgdHcpOgotICAgICAgICBmb3IgbmFtZSwgY29udGVudCwgc2VwIGluIHNl
bGYuc2VjdGlvbnM6Ci0gICAgICAgICAgICB0dy5zZXAoc2VwLCBuYW1lKQotICAgICAgICAgICAg
dHcubGluZShjb250ZW50KQotCi0KLWNsYXNzIEV4Y2VwdGlvbkNoYWluUmVwcihFeGNlcHRpb25S
ZXByKToKLSAgICBkZWYgX19pbml0X18oc2VsZiwgY2hhaW4pOgotICAgICAgICBzdXBlcihFeGNl
cHRpb25DaGFpblJlcHIsIHNlbGYpLl9faW5pdF9fKCkKLSAgICAgICAgc2VsZi5jaGFpbiA9IGNo
YWluCi0gICAgICAgICMgcmVwcmNyYXNoIGFuZCByZXBydHJhY2ViYWNrIG9mIHRoZSBvdXRlcm1v
c3QgKHRoZSBuZXdlc3QpIGV4Y2VwdGlvbgotICAgICAgICAjIGluIHRoZSBjaGFpbgotICAgICAg
ICBzZWxmLnJlcHJ0cmFjZWJhY2sgPSBjaGFpblstMV1bMF0KLSAgICAgICAgc2VsZi5yZXByY3Jh
c2ggPSBjaGFpblstMV1bMV0KLQotICAgIGRlZiB0b3Rlcm1pbmFsKHNlbGYsIHR3KToKLSAgICAg
ICAgZm9yIGVsZW1lbnQgaW4gc2VsZi5jaGFpbjoKLSAgICAgICAgICAgIGVsZW1lbnRbMF0udG90
ZXJtaW5hbCh0dykKLSAgICAgICAgICAgIGlmIGVsZW1lbnRbMl0gaXMgbm90IE5vbmU6Ci0gICAg
ICAgICAgICAgICAgdHcubGluZSgiIikKLSAgICAgICAgICAgICAgICB0dy5saW5lKGVsZW1lbnRb
Ml0sIHllbGxvdz1UcnVlKQotICAgICAgICBzdXBlcihFeGNlcHRpb25DaGFpblJlcHIsIHNlbGYp
LnRvdGVybWluYWwodHcpCi0KLQotY2xhc3MgUmVwckV4Y2VwdGlvbkluZm8oRXhjZXB0aW9uUmVw
cik6Ci0gICAgZGVmIF9faW5pdF9fKHNlbGYsIHJlcHJ0cmFjZWJhY2ssIHJlcHJjcmFzaCk6Ci0g
ICAgICAgIHN1cGVyKFJlcHJFeGNlcHRpb25JbmZvLCBzZWxmKS5fX2luaXRfXygpCi0gICAgICAg
IHNlbGYucmVwcnRyYWNlYmFjayA9IHJlcHJ0cmFjZWJhY2sKLSAgICAgICAgc2VsZi5yZXByY3Jh
c2ggPSByZXByY3Jhc2gKLQotICAgIGRlZiB0b3Rlcm1pbmFsKHNlbGYsIHR3KToKLSAgICAgICAg
c2VsZi5yZXBydHJhY2ViYWNrLnRvdGVybWluYWwodHcpCi0gICAgICAgIHN1cGVyKFJlcHJFeGNl
cHRpb25JbmZvLCBzZWxmKS50b3Rlcm1pbmFsKHR3KQotCi0KLWNsYXNzIFJlcHJUcmFjZWJhY2so
VGVybWluYWxSZXByKToKLSAgICBlbnRyeXNlcCA9ICJfICIKLQotICAgIGRlZiBfX2luaXRfXyhz
ZWxmLCByZXByZW50cmllcywgZXh0cmFsaW5lLCBzdHlsZSk6Ci0gICAgICAgIHNlbGYucmVwcmVu
dHJpZXMgPSByZXByZW50cmllcwotICAgICAgICBzZWxmLmV4dHJhbGluZSA9IGV4dHJhbGluZQot
ICAgICAgICBzZWxmLnN0eWxlID0gc3R5bGUKLQotICAgIGRlZiB0b3Rlcm1pbmFsKHNlbGYsIHR3
KToKLSAgICAgICAgIyB0aGUgZW50cmllcyBtaWdodCBoYXZlIGRpZmZlcmVudCBzdHlsZXMKLSAg
ICAgICAgZm9yIGksIGVudHJ5IGluIGVudW1lcmF0ZShzZWxmLnJlcHJlbnRyaWVzKToKLSAgICAg
ICAgICAgIGlmIGVudHJ5LnN0eWxlID09ICJsb25nIjoKLSAgICAgICAgICAgICAgICB0dy5saW5l
KCIiKQotICAgICAgICAgICAgZW50cnkudG90ZXJtaW5hbCh0dykKLSAgICAgICAgICAgIGlmIGkg
PCBsZW4oc2VsZi5yZXByZW50cmllcykgLSAxOgotICAgICAgICAgICAgICAgIG5leHRfZW50cnkg
PSBzZWxmLnJlcHJlbnRyaWVzW2kgKyAxXQotICAgICAgICAgICAgICAgIGlmIGVudHJ5LnN0eWxl
ID09ICJsb25nIiBvciBcCi0gICAgICAgICAgICAgICAgICAgZW50cnkuc3R5bGUgPT0gInNob3J0
IiBhbmQgbmV4dF9lbnRyeS5zdHlsZSA9PSAibG9uZyI6Ci0gICAgICAgICAgICAgICAgICAgIHR3
LnNlcChzZWxmLmVudHJ5c2VwKQotCi0gICAgICAgIGlmIHNlbGYuZXh0cmFsaW5lOgotICAgICAg
ICAgICAgdHcubGluZShzZWxmLmV4dHJhbGluZSkKLQotCi1jbGFzcyBSZXByVHJhY2ViYWNrTmF0
aXZlKFJlcHJUcmFjZWJhY2spOgotICAgIGRlZiBfX2luaXRfXyhzZWxmLCB0YmxpbmVzKToKLSAg
ICAgICAgc2VsZi5zdHlsZSA9ICJuYXRpdmUiCi0gICAgICAgIHNlbGYucmVwcmVudHJpZXMgPSBb
UmVwckVudHJ5TmF0aXZlKHRibGluZXMpXQotICAgICAgICBzZWxmLmV4dHJhbGluZSA9IE5vbmUK
LQotCi1jbGFzcyBSZXByRW50cnlOYXRpdmUoVGVybWluYWxSZXByKToKLSAgICBzdHlsZSA9ICJu
YXRpdmUiCi0KLSAgICBkZWYgX19pbml0X18oc2VsZiwgdGJsaW5lcyk6Ci0gICAgICAgIHNlbGYu
bGluZXMgPSB0YmxpbmVzCi0KLSAgICBkZWYgdG90ZXJtaW5hbChzZWxmLCB0dyk6Ci0gICAgICAg
IHR3LndyaXRlKCIiLmpvaW4oc2VsZi5saW5lcykpCi0KLQotY2xhc3MgUmVwckVudHJ5KFRlcm1p
bmFsUmVwcik6Ci0gICAgbG9jYWxzc2VwID0gIl8gIgotCi0gICAgZGVmIF9faW5pdF9fKHNlbGYs
IGxpbmVzLCByZXByZnVuY2FyZ3MsIHJlcHJsb2NhbHMsIGZpbGVsb2NyZXByLCBzdHlsZSk6Ci0g
ICAgICAgIHNlbGYubGluZXMgPSBsaW5lcwotICAgICAgICBzZWxmLnJlcHJmdW5jYXJncyA9IHJl
cHJmdW5jYXJncwotICAgICAgICBzZWxmLnJlcHJsb2NhbHMgPSByZXBybG9jYWxzCi0gICAgICAg
IHNlbGYucmVwcmZpbGVsb2MgPSBmaWxlbG9jcmVwcgotICAgICAgICBzZWxmLnN0eWxlID0gc3R5
bGUKLQotICAgIGRlZiB0b3Rlcm1pbmFsKHNlbGYsIHR3KToKLSAgICAgICAgaWYgc2VsZi5zdHls
ZSA9PSAic2hvcnQiOgotICAgICAgICAgICAgc2VsZi5yZXByZmlsZWxvYy50b3Rlcm1pbmFsKHR3
KQotICAgICAgICAgICAgZm9yIGxpbmUgaW4gc2VsZi5saW5lczoKLSAgICAgICAgICAgICAgICBy
ZWQgPSBsaW5lLnN0YXJ0c3dpdGgoIkUgICAiKQotICAgICAgICAgICAgICAgIHR3LmxpbmUobGlu
ZSwgYm9sZD1UcnVlLCByZWQ9cmVkKQotICAgICAgICAgICAgIyB0dy5saW5lKCIiKQotICAgICAg
ICAgICAgcmV0dXJuCi0gICAgICAgIGlmIHNlbGYucmVwcmZ1bmNhcmdzOgotICAgICAgICAgICAg
c2VsZi5yZXByZnVuY2FyZ3MudG90ZXJtaW5hbCh0dykKLSAgICAgICAgZm9yIGxpbmUgaW4gc2Vs
Zi5saW5lczoKLSAgICAgICAgICAgIHJlZCA9IGxpbmUuc3RhcnRzd2l0aCgiRSAgICIpCi0gICAg
ICAgICAgICB0dy5saW5lKGxpbmUsIGJvbGQ9VHJ1ZSwgcmVkPXJlZCkKLSAgICAgICAgaWYgc2Vs
Zi5yZXBybG9jYWxzOgotICAgICAgICAgICAgIyB0dy5zZXAoc2VsZi5sb2NhbHNzZXAsICJMb2Nh
bHMiKQotICAgICAgICAgICAgdHcubGluZSgiIikKLSAgICAgICAgICAgIHNlbGYucmVwcmxvY2Fs
cy50b3Rlcm1pbmFsKHR3KQotICAgICAgICBpZiBzZWxmLnJlcHJmaWxlbG9jOgotICAgICAgICAg
ICAgaWYgc2VsZi5saW5lczoKLSAgICAgICAgICAgICAgICB0dy5saW5lKCIiKQotICAgICAgICAg
ICAgc2VsZi5yZXByZmlsZWxvYy50b3Rlcm1pbmFsKHR3KQotCi0gICAgZGVmIF9fc3RyX18oc2Vs
Zik6Ci0gICAgICAgIHJldHVybiAiJXNcbiVzXG4lcyIgJSAoIlxuIi5qb2luKHNlbGYubGluZXMp
LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYucmVwcmxvY2FscywKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnJlcHJmaWxlbG9jKQotCi0KLWNsYXNzIFJl
cHJGaWxlTG9jYXRpb24oVGVybWluYWxSZXByKToKLSAgICBkZWYgX19pbml0X18oc2VsZiwgcGF0
aCwgbGluZW5vLCBtZXNzYWdlKToKLSAgICAgICAgc2VsZi5wYXRoID0gc3RyKHBhdGgpCi0gICAg
ICAgIHNlbGYubGluZW5vID0gbGluZW5vCi0gICAgICAgIHNlbGYubWVzc2FnZSA9IG1lc3NhZ2UK
LQotICAgIGRlZiB0b3Rlcm1pbmFsKHNlbGYsIHR3KToKLSAgICAgICAgIyBmaWxlbmFtZSBhbmQg
bGluZW5vIG91dHB1dCBmb3IgZWFjaCBlbnRyeSwKLSAgICAgICAgIyB1c2luZyBhbiBvdXRwdXQg
Zm9ybWF0IHRoYXQgbW9zdCBlZGl0b3JzIHVudGVyc3RhbmQKLSAgICAgICAgbXNnID0gc2VsZi5t
ZXNzYWdlCi0gICAgICAgIGkgPSBtc2cuZmluZCgiXG4iKQotICAgICAgICBpZiBpICE9IC0xOgot
ICAgICAgICAgICAgbXNnID0gbXNnWzppXQotICAgICAgICB0dy53cml0ZShzZWxmLnBhdGgsIGJv
bGQ9VHJ1ZSwgcmVkPVRydWUpCi0gICAgICAgIHR3LmxpbmUoIjolczogJXMiICUgKHNlbGYubGlu
ZW5vLCBtc2cpKQotCi0KLWNsYXNzIFJlcHJMb2NhbHMoVGVybWluYWxSZXByKToKLSAgICBkZWYg
X19pbml0X18oc2VsZiwgbGluZXMpOgotICAgICAgICBzZWxmLmxpbmVzID0gbGluZXMKLQotICAg
IGRlZiB0b3Rlcm1pbmFsKHNlbGYsIHR3KToKLSAgICAgICAgZm9yIGxpbmUgaW4gc2VsZi5saW5l
czoKLSAgICAgICAgICAgIHR3LmxpbmUobGluZSkKLQotCi1jbGFzcyBSZXByRnVuY0FyZ3MoVGVy
bWluYWxSZXByKToKLSAgICBkZWYgX19pbml0X18oc2VsZiwgYXJncyk6Ci0gICAgICAgIHNlbGYu
YXJncyA9IGFyZ3MKLQotICAgIGRlZiB0b3Rlcm1pbmFsKHNlbGYsIHR3KToKLSAgICAgICAgaWYg
c2VsZi5hcmdzOgotICAgICAgICAgICAgbGluZXNvZmFyID0gIiIKLSAgICAgICAgICAgIGZvciBu
YW1lLCB2YWx1ZSBpbiBzZWxmLmFyZ3M6Ci0gICAgICAgICAgICAgICAgbnMgPSAiJXMgPSAlcyIg
JSAoc2FmZV9zdHIobmFtZSksIHNhZmVfc3RyKHZhbHVlKSkKLSAgICAgICAgICAgICAgICBpZiBs
ZW4obnMpICsgbGVuKGxpbmVzb2ZhcikgKyAyID4gdHcuZnVsbHdpZHRoOgotICAgICAgICAgICAg
ICAgICAgICBpZiBsaW5lc29mYXI6Ci0gICAgICAgICAgICAgICAgICAgICAgICB0dy5saW5lKGxp
bmVzb2ZhcikKLSAgICAgICAgICAgICAgICAgICAgbGluZXNvZmFyID0gbnMKLSAgICAgICAgICAg
ICAgICBlbHNlOgotICAgICAgICAgICAgICAgICAgICBpZiBsaW5lc29mYXI6Ci0gICAgICAgICAg
ICAgICAgICAgICAgICBsaW5lc29mYXIgKz0gIiwgIiArIG5zCi0gICAgICAgICAgICAgICAgICAg
IGVsc2U6Ci0gICAgICAgICAgICAgICAgICAgICAgICBsaW5lc29mYXIgPSBucwotICAgICAgICAg
ICAgaWYgbGluZXNvZmFyOgotICAgICAgICAgICAgICAgIHR3LmxpbmUobGluZXNvZmFyKQotICAg
ICAgICAgICAgdHcubGluZSgiIikKLQotCi1kZWYgZ2V0cmF3Y29kZShvYmosIHRyeWNhbGw9VHJ1
ZSk6Ci0gICAgIiIiIHJldHVybiBjb2RlIG9iamVjdCBmb3IgZ2l2ZW4gZnVuY3Rpb24uICIiIgot
ICAgIHRyeToKLSAgICAgICAgcmV0dXJuIG9iai5fX2NvZGVfXwotICAgIGV4Y2VwdCBBdHRyaWJ1
dGVFcnJvcjoKLSAgICAgICAgb2JqID0gZ2V0YXR0cihvYmosICdpbV9mdW5jJywgb2JqKQotICAg
ICAgICBvYmogPSBnZXRhdHRyKG9iaiwgJ2Z1bmNfY29kZScsIG9iaikKLSAgICAgICAgb2JqID0g
Z2V0YXR0cihvYmosICdmX2NvZGUnLCBvYmopCi0gICAgICAgIG9iaiA9IGdldGF0dHIob2JqLCAn
X19jb2RlX18nLCBvYmopCi0gICAgICAgIGlmIHRyeWNhbGwgYW5kIG5vdCBoYXNhdHRyKG9iaiwg
J2NvX2ZpcnN0bGluZW5vJyk6Ci0gICAgICAgICAgICBpZiBoYXNhdHRyKG9iaiwgJ19fY2FsbF9f
JykgYW5kIG5vdCBweS5zdGQuaW5zcGVjdC5pc2NsYXNzKG9iaik6Ci0gICAgICAgICAgICAgICAg
eCA9IGdldHJhd2NvZGUob2JqLl9fY2FsbF9fLCB0cnljYWxsPUZhbHNlKQotICAgICAgICAgICAg
ICAgIGlmIGhhc2F0dHIoeCwgJ2NvX2ZpcnN0bGluZW5vJyk6Ci0gICAgICAgICAgICAgICAgICAg
IHJldHVybiB4Ci0gICAgICAgIHJldHVybiBvYmoKLQotCi1pZiBQWTM1OiAgIyBSZWN1cnNpb25F
cnJvciBpbnRyb2R1Y2VkIGluIDMuNQotICAgIGRlZiBpc19yZWN1cnNpb25fZXJyb3IoZXhjaW5m
byk6Ci0gICAgICAgIHJldHVybiBleGNpbmZvLmVycmlzaW5zdGFuY2UoUmVjdXJzaW9uRXJyb3Ip
ICAjIG5vcWEKLWVsc2U6Ci0gICAgZGVmIGlzX3JlY3Vyc2lvbl9lcnJvcihleGNpbmZvKToKLSAg
ICAgICAgaWYgbm90IGV4Y2luZm8uZXJyaXNpbnN0YW5jZShSdW50aW1lRXJyb3IpOgotICAgICAg
ICAgICAgcmV0dXJuIEZhbHNlCi0gICAgICAgIHRyeToKLSAgICAgICAgICAgIHJldHVybiAibWF4
aW11bSByZWN1cnNpb24gZGVwdGggZXhjZWVkZWQiIGluIHN0cihleGNpbmZvLnZhbHVlKQotICAg
ICAgICBleGNlcHQgVW5pY29kZUVycm9yOgotICAgICAgICAgICAgcmV0dXJuIEZhbHNlCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3RoaXJkX3BhcnR5L3B5dGVzdC9fcHl0ZXN0L19jb2RlL3NvdXJjZS5weSBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0
L19weXRlc3QvX2NvZGUvc291cmNlLnB5CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAy
NjM4YzU5OGI3NDlkYjI4ODYxZDIwMDA2ZTdkZmE4ZjkwZTU1NGJjLi4wMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L19weXRlc3QvX2NvZGUv
c291cmNlLnB5CisrKyAvZGV2L251bGwKQEAgLTEsNDE1ICswLDAgQEAKLWZyb20gX19mdXR1cmVf
XyBpbXBvcnQgYWJzb2x1dGVfaW1wb3J0LCBkaXZpc2lvbiwgZ2VuZXJhdG9ycywgcHJpbnRfZnVu
Y3Rpb24KLQotZnJvbSBiaXNlY3QgaW1wb3J0IGJpc2VjdF9yaWdodAotaW1wb3J0IHN5cwotaW1w
b3J0IHNpeAotaW1wb3J0IGluc3BlY3QKLWltcG9ydCB0b2tlbml6ZQotaW1wb3J0IHB5Ci1jcHlf
Y29tcGlsZSA9IGNvbXBpbGUKLQotdHJ5OgotICAgIGltcG9ydCBfYXN0Ci0gICAgZnJvbSBfYXN0
IGltcG9ydCBQeUNGX09OTFlfQVNUIGFzIF9BU1RfRkxBRwotZXhjZXB0IEltcG9ydEVycm9yOgot
ICAgIF9BU1RfRkxBRyA9IDAKLSAgICBfYXN0ID0gTm9uZQotCi0KLWNsYXNzIFNvdXJjZShvYmpl
Y3QpOgotICAgICIiIiBhIGltbXV0YWJsZSBvYmplY3QgaG9sZGluZyBhIHNvdXJjZSBjb2RlIGZy
YWdtZW50LAotICAgICAgICBwb3NzaWJseSBkZWluZGVudGluZyBpdC4KLSAgICAiIiIKLSAgICBf
Y29tcGlsZWNvdW50ZXIgPSAwCi0KLSAgICBkZWYgX19pbml0X18oc2VsZiwgKnBhcnRzLCAqKmt3
YXJncyk6Ci0gICAgICAgIHNlbGYubGluZXMgPSBsaW5lcyA9IFtdCi0gICAgICAgIGRlID0ga3dh
cmdzLmdldCgnZGVpbmRlbnQnLCBUcnVlKQotICAgICAgICByc3RyaXAgPSBrd2FyZ3MuZ2V0KCdy
c3RyaXAnLCBUcnVlKQotICAgICAgICBmb3IgcGFydCBpbiBwYXJ0czoKLSAgICAgICAgICAgIGlm
IG5vdCBwYXJ0OgotICAgICAgICAgICAgICAgIHBhcnRsaW5lcyA9IFtdCi0gICAgICAgICAgICBp
ZiBpc2luc3RhbmNlKHBhcnQsIFNvdXJjZSk6Ci0gICAgICAgICAgICAgICAgcGFydGxpbmVzID0g
cGFydC5saW5lcwotICAgICAgICAgICAgZWxpZiBpc2luc3RhbmNlKHBhcnQsICh0dXBsZSwgbGlz
dCkpOgotICAgICAgICAgICAgICAgIHBhcnRsaW5lcyA9IFt4LnJzdHJpcCgiXG4iKSBmb3IgeCBp
biBwYXJ0XQotICAgICAgICAgICAgZWxpZiBpc2luc3RhbmNlKHBhcnQsIHNpeC5zdHJpbmdfdHlw
ZXMpOgotICAgICAgICAgICAgICAgIHBhcnRsaW5lcyA9IHBhcnQuc3BsaXQoJ1xuJykKLSAgICAg
ICAgICAgICAgICBpZiByc3RyaXA6Ci0gICAgICAgICAgICAgICAgICAgIHdoaWxlIHBhcnRsaW5l
czoKLSAgICAgICAgICAgICAgICAgICAgICAgIGlmIHBhcnRsaW5lc1stMV0uc3RyaXAoKToKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhawotICAgICAgICAgICAgICAgICAgICAgICAg
cGFydGxpbmVzLnBvcCgpCi0gICAgICAgICAgICBlbHNlOgotICAgICAgICAgICAgICAgIHBhcnRs
aW5lcyA9IGdldHNvdXJjZShwYXJ0LCBkZWluZGVudD1kZSkubGluZXMKLSAgICAgICAgICAgIGlm
IGRlOgotICAgICAgICAgICAgICAgIHBhcnRsaW5lcyA9IGRlaW5kZW50KHBhcnRsaW5lcykKLSAg
ICAgICAgICAgIGxpbmVzLmV4dGVuZChwYXJ0bGluZXMpCi0KLSAgICBkZWYgX19lcV9fKHNlbGYs
IG90aGVyKToKLSAgICAgICAgdHJ5OgotICAgICAgICAgICAgcmV0dXJuIHNlbGYubGluZXMgPT0g
b3RoZXIubGluZXMKLSAgICAgICAgZXhjZXB0IEF0dHJpYnV0ZUVycm9yOgotICAgICAgICAgICAg
aWYgaXNpbnN0YW5jZShvdGhlciwgc3RyKToKLSAgICAgICAgICAgICAgICByZXR1cm4gc3RyKHNl
bGYpID09IG90aGVyCi0gICAgICAgICAgICByZXR1cm4gRmFsc2UKLQotICAgIF9faGFzaF9fID0g
Tm9uZQotCi0gICAgZGVmIF9fZ2V0aXRlbV9fKHNlbGYsIGtleSk6Ci0gICAgICAgIGlmIGlzaW5z
dGFuY2Uoa2V5LCBpbnQpOgotICAgICAgICAgICAgcmV0dXJuIHNlbGYubGluZXNba2V5XQotICAg
ICAgICBlbHNlOgotICAgICAgICAgICAgaWYga2V5LnN0ZXAgbm90IGluIChOb25lLCAxKToKLSAg
ICAgICAgICAgICAgICByYWlzZSBJbmRleEVycm9yKCJjYW5ub3Qgc2xpY2UgYSBTb3VyY2Ugd2l0
aCBhIHN0ZXAiKQotICAgICAgICAgICAgbmV3c291cmNlID0gU291cmNlKCkKLSAgICAgICAgICAg
IG5ld3NvdXJjZS5saW5lcyA9IHNlbGYubGluZXNba2V5LnN0YXJ0OmtleS5zdG9wXQotICAgICAg
ICAgICAgcmV0dXJuIG5ld3NvdXJjZQotCi0gICAgZGVmIF9fbGVuX18oc2VsZik6Ci0gICAgICAg
IHJldHVybiBsZW4oc2VsZi5saW5lcykKLQotICAgIGRlZiBzdHJpcChzZWxmKToKLSAgICAgICAg
IiIiIHJldHVybiBuZXcgc291cmNlIG9iamVjdCB3aXRoIHRyYWlsaW5nCi0gICAgICAgICAgICBh
bmQgbGVhZGluZyBibGFuayBsaW5lcyByZW1vdmVkLgotICAgICAgICAiIiIKLSAgICAgICAgc3Rh
cnQsIGVuZCA9IDAsIGxlbihzZWxmKQotICAgICAgICB3aGlsZSBzdGFydCA8IGVuZCBhbmQgbm90
IHNlbGYubGluZXNbc3RhcnRdLnN0cmlwKCk6Ci0gICAgICAgICAgICBzdGFydCArPSAxCi0gICAg
ICAgIHdoaWxlIGVuZCA+IHN0YXJ0IGFuZCBub3Qgc2VsZi5saW5lc1tlbmQgLSAxXS5zdHJpcCgp
OgotICAgICAgICAgICAgZW5kIC09IDEKLSAgICAgICAgc291cmNlID0gU291cmNlKCkKLSAgICAg
ICAgc291cmNlLmxpbmVzWzpdID0gc2VsZi5saW5lc1tzdGFydDplbmRdCi0gICAgICAgIHJldHVy
biBzb3VyY2UKLQotICAgIGRlZiBwdXRhcm91bmQoc2VsZiwgYmVmb3JlPScnLCBhZnRlcj0nJywg
aW5kZW50PScgJyAqIDQpOgotICAgICAgICAiIiIgcmV0dXJuIGEgY29weSBvZiB0aGUgc291cmNl
IG9iamVjdCB3aXRoCi0gICAgICAgICAgICAnYmVmb3JlJyBhbmQgJ2FmdGVyJyB3cmFwcGVkIGFy
b3VuZCBpdC4KLSAgICAgICAgIiIiCi0gICAgICAgIGJlZm9yZSA9IFNvdXJjZShiZWZvcmUpCi0g
ICAgICAgIGFmdGVyID0gU291cmNlKGFmdGVyKQotICAgICAgICBuZXdzb3VyY2UgPSBTb3VyY2Uo
KQotICAgICAgICBsaW5lcyA9IFsoaW5kZW50ICsgbGluZSkgZm9yIGxpbmUgaW4gc2VsZi5saW5l
c10KLSAgICAgICAgbmV3c291cmNlLmxpbmVzID0gYmVmb3JlLmxpbmVzICsgbGluZXMgKyBhZnRl
ci5saW5lcwotICAgICAgICByZXR1cm4gbmV3c291cmNlCi0KLSAgICBkZWYgaW5kZW50KHNlbGYs
IGluZGVudD0nICcgKiA0KToKLSAgICAgICAgIiIiIHJldHVybiBhIGNvcHkgb2YgdGhlIHNvdXJj
ZSBvYmplY3Qgd2l0aAotICAgICAgICAgICAgYWxsIGxpbmVzIGluZGVudGVkIGJ5IHRoZSBnaXZl
biBpbmRlbnQtc3RyaW5nLgotICAgICAgICAiIiIKLSAgICAgICAgbmV3c291cmNlID0gU291cmNl
KCkKLSAgICAgICAgbmV3c291cmNlLmxpbmVzID0gWyhpbmRlbnQgKyBsaW5lKSBmb3IgbGluZSBp
biBzZWxmLmxpbmVzXQotICAgICAgICByZXR1cm4gbmV3c291cmNlCi0KLSAgICBkZWYgZ2V0c3Rh
dGVtZW50KHNlbGYsIGxpbmVubywgYXNzZXJ0aW9uPUZhbHNlKToKLSAgICAgICAgIiIiIHJldHVy
biBTb3VyY2Ugc3RhdGVtZW50IHdoaWNoIGNvbnRhaW5zIHRoZQotICAgICAgICAgICAgZ2l2ZW4g
bGluZW51bWJlciAoY291bnRlZCBmcm9tIDApLgotICAgICAgICAiIiIKLSAgICAgICAgc3RhcnQs
IGVuZCA9IHNlbGYuZ2V0c3RhdGVtZW50cmFuZ2UobGluZW5vLCBhc3NlcnRpb24pCi0gICAgICAg
IHJldHVybiBzZWxmW3N0YXJ0OmVuZF0KLQotICAgIGRlZiBnZXRzdGF0ZW1lbnRyYW5nZShzZWxm
LCBsaW5lbm8sIGFzc2VydGlvbj1GYWxzZSk6Ci0gICAgICAgICIiIiByZXR1cm4gKHN0YXJ0LCBl
bmQpIHR1cGxlIHdoaWNoIHNwYW5zIHRoZSBtaW5pbWFsCi0gICAgICAgICAgICBzdGF0ZW1lbnQg
cmVnaW9uIHdoaWNoIGNvbnRhaW5pbmcgdGhlIGdpdmVuIGxpbmVuby4KLSAgICAgICAgIiIiCi0g
ICAgICAgIGlmIG5vdCAoMCA8PSBsaW5lbm8gPCBsZW4oc2VsZikpOgotICAgICAgICAgICAgcmFp
c2UgSW5kZXhFcnJvcigibGluZW5vIG91dCBvZiByYW5nZSIpCi0gICAgICAgIGFzdCwgc3RhcnQs
IGVuZCA9IGdldHN0YXRlbWVudHJhbmdlX2FzdChsaW5lbm8sIHNlbGYpCi0gICAgICAgIHJldHVy
biBzdGFydCwgZW5kCi0KLSAgICBkZWYgZGVpbmRlbnQoc2VsZiwgb2Zmc2V0PU5vbmUpOgotICAg
ICAgICAiIiIgcmV0dXJuIGEgbmV3IHNvdXJjZSBvYmplY3QgZGVpbmRlbnRlZCBieSBvZmZzZXQu
Ci0gICAgICAgICAgICBJZiBvZmZzZXQgaXMgTm9uZSB0aGVuIGd1ZXNzIGFuIGluZGVudGF0aW9u
IG9mZnNldCBmcm9tCi0gICAgICAgICAgICB0aGUgZmlyc3Qgbm9uLWJsYW5rIGxpbmUuICBTdWJz
ZXF1ZW50IGxpbmVzIHdoaWNoIGhhdmUgYQotICAgICAgICAgICAgbG93ZXIgaW5kZW50YXRpb24g
b2Zmc2V0IHdpbGwgYmUgY29waWVkIHZlcmJhdGltIGFzCi0gICAgICAgICAgICB0aGV5IGFyZSBh
c3N1bWVkIHRvIGJlIHBhcnQgb2YgbXVsdGlsaW5lcy4KLSAgICAgICAgIiIiCi0gICAgICAgICMg
WFhYIG1heWJlIHVzZSB0aGUgdG9rZW5pemVyIHRvIHByb3Blcmx5IGhhbmRsZSBtdWx0aWxpbmUK
LSAgICAgICAgIyAgICAgc3RyaW5ncyBldGMucHA/Ci0gICAgICAgIG5ld3NvdXJjZSA9IFNvdXJj
ZSgpCi0gICAgICAgIG5ld3NvdXJjZS5saW5lc1s6XSA9IGRlaW5kZW50KHNlbGYubGluZXMsIG9m
ZnNldCkKLSAgICAgICAgcmV0dXJuIG5ld3NvdXJjZQotCi0gICAgZGVmIGlzcGFyc2VhYmxlKHNl
bGYsIGRlaW5kZW50PVRydWUpOgotICAgICAgICAiIiIgcmV0dXJuIFRydWUgaWYgc291cmNlIGlz
IHBhcnNlYWJsZSwgaGV1cmlzdGljYWxseQotICAgICAgICAgICAgZGVpbmRlbnRpbmcgaXQgYnkg
ZGVmYXVsdC4KLSAgICAgICAgIiIiCi0gICAgICAgIHRyeToKLSAgICAgICAgICAgIGltcG9ydCBw
YXJzZXIKLSAgICAgICAgZXhjZXB0IEltcG9ydEVycm9yOgotICAgICAgICAgICAgZGVmIHN5bnRh
eF9jaGVja2VyKHgpOgotICAgICAgICAgICAgICAgIHJldHVybiBjb21waWxlKHgsICdhc2QnLCAn
ZXhlYycpCi0gICAgICAgIGVsc2U6Ci0gICAgICAgICAgICBzeW50YXhfY2hlY2tlciA9IHBhcnNl
ci5zdWl0ZQotCi0gICAgICAgIGlmIGRlaW5kZW50OgotICAgICAgICAgICAgc291cmNlID0gc3Ry
KHNlbGYuZGVpbmRlbnQoKSkKLSAgICAgICAgZWxzZToKLSAgICAgICAgICAgIHNvdXJjZSA9IHN0
cihzZWxmKQotICAgICAgICB0cnk6Ci0gICAgICAgICAgICAjIGNvbXBpbGUoc291cmNlKydcbics
ICJ4IiwgImV4ZWMiKQotICAgICAgICAgICAgc3ludGF4X2NoZWNrZXIoc291cmNlICsgJ1xuJykK
LSAgICAgICAgZXhjZXB0IEtleWJvYXJkSW50ZXJydXB0OgotICAgICAgICAgICAgcmFpc2UKLSAg
ICAgICAgZXhjZXB0IEV4Y2VwdGlvbjoKLSAgICAgICAgICAgIHJldHVybiBGYWxzZQotICAgICAg
ICBlbHNlOgotICAgICAgICAgICAgcmV0dXJuIFRydWUKLQotICAgIGRlZiBfX3N0cl9fKHNlbGYp
OgotICAgICAgICByZXR1cm4gIlxuIi5qb2luKHNlbGYubGluZXMpCi0KLSAgICBkZWYgY29tcGls
ZShzZWxmLCBmaWxlbmFtZT1Ob25lLCBtb2RlPSdleGVjJywKLSAgICAgICAgICAgICAgICBmbGFn
PWdlbmVyYXRvcnMuY29tcGlsZXJfZmxhZywKLSAgICAgICAgICAgICAgICBkb250X2luaGVyaXQ9
MCwgX2dlbmZyYW1lPU5vbmUpOgotICAgICAgICAiIiIgcmV0dXJuIGNvbXBpbGVkIGNvZGUgb2Jq
ZWN0LiBpZiBmaWxlbmFtZSBpcyBOb25lCi0gICAgICAgICAgICBpbnZlbnQgYW4gYXJ0aWZpY2lh
bCBmaWxlbmFtZSB3aGljaCBkaXNwbGF5cwotICAgICAgICAgICAgdGhlIHNvdXJjZS9saW5lIHBv
c2l0aW9uIG9mIHRoZSBjYWxsZXIgZnJhbWUuCi0gICAgICAgICIiIgotICAgICAgICBpZiBub3Qg
ZmlsZW5hbWUgb3IgcHkucGF0aC5sb2NhbChmaWxlbmFtZSkuY2hlY2soZmlsZT0wKToKLSAgICAg
ICAgICAgIGlmIF9nZW5mcmFtZSBpcyBOb25lOgotICAgICAgICAgICAgICAgIF9nZW5mcmFtZSA9
IHN5cy5fZ2V0ZnJhbWUoMSkgICMgdGhlIGNhbGxlcgotICAgICAgICAgICAgZm4sIGxpbmVubyA9
IF9nZW5mcmFtZS5mX2NvZGUuY29fZmlsZW5hbWUsIF9nZW5mcmFtZS5mX2xpbmVubwotICAgICAg
ICAgICAgYmFzZSA9ICI8JWQtY29kZWdlbiAiICUgc2VsZi5fY29tcGlsZWNvdW50ZXIKLSAgICAg
ICAgICAgIHNlbGYuX19jbGFzc19fLl9jb21waWxlY291bnRlciArPSAxCi0gICAgICAgICAgICBp
ZiBub3QgZmlsZW5hbWU6Ci0gICAgICAgICAgICAgICAgZmlsZW5hbWUgPSBiYXNlICsgJyVzOiVk
PicgJSAoZm4sIGxpbmVubykKLSAgICAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAgICAgZmls
ZW5hbWUgPSBiYXNlICsgJyVyICVzOiVkPicgJSAoZmlsZW5hbWUsIGZuLCBsaW5lbm8pCi0gICAg
ICAgIHNvdXJjZSA9ICJcbiIuam9pbihzZWxmLmxpbmVzKSArICdcbicKLSAgICAgICAgdHJ5Ogot
ICAgICAgICAgICAgY28gPSBjcHlfY29tcGlsZShzb3VyY2UsIGZpbGVuYW1lLCBtb2RlLCBmbGFn
KQotICAgICAgICBleGNlcHQgU3ludGF4RXJyb3I6Ci0gICAgICAgICAgICBleCA9IHN5cy5leGNf
aW5mbygpWzFdCi0gICAgICAgICAgICAjIHJlLXJlcHJlc2VudCBzeW50YXggZXJyb3JzIGZyb20g
cGFyc2luZyBweXRob24gc3RyaW5ncwotICAgICAgICAgICAgbXNnbGluZXMgPSBzZWxmLmxpbmVz
WzpleC5saW5lbm9dCi0gICAgICAgICAgICBpZiBleC5vZmZzZXQ6Ci0gICAgICAgICAgICAgICAg
bXNnbGluZXMuYXBwZW5kKCIgIiAqIGV4Lm9mZnNldCArICdeJykKLSAgICAgICAgICAgIG1zZ2xp
bmVzLmFwcGVuZCgiKGNvZGUgd2FzIGNvbXBpbGVkIHByb2JhYmx5IGZyb20gaGVyZTogJXMpIiAl
IGZpbGVuYW1lKQotICAgICAgICAgICAgbmV3ZXggPSBTeW50YXhFcnJvcignXG4nLmpvaW4obXNn
bGluZXMpKQotICAgICAgICAgICAgbmV3ZXgub2Zmc2V0ID0gZXgub2Zmc2V0Ci0gICAgICAgICAg
ICBuZXdleC5saW5lbm8gPSBleC5saW5lbm8KLSAgICAgICAgICAgIG5ld2V4LnRleHQgPSBleC50
ZXh0Ci0gICAgICAgICAgICByYWlzZSBuZXdleAotICAgICAgICBlbHNlOgotICAgICAgICAgICAg
aWYgZmxhZyAmIF9BU1RfRkxBRzoKLSAgICAgICAgICAgICAgICByZXR1cm4gY28KLSAgICAgICAg
ICAgIGxpbmVzID0gWyh4ICsgIlxuIikgZm9yIHggaW4gc2VsZi5saW5lc10KLSAgICAgICAgICAg
IHB5LnN0ZC5saW5lY2FjaGUuY2FjaGVbZmlsZW5hbWVdID0gKDEsIE5vbmUsIGxpbmVzLCBmaWxl
bmFtZSkKLSAgICAgICAgICAgIHJldHVybiBjbwotCi0jCi0jIHB1YmxpYyBBUEkgc2hvcnRjdXQg
ZnVuY3Rpb25zCi0jCi0KLQotZGVmIGNvbXBpbGVfKHNvdXJjZSwgZmlsZW5hbWU9Tm9uZSwgbW9k
ZT0nZXhlYycsIGZsYWdzPWdlbmVyYXRvcnMuY29tcGlsZXJfZmxhZywgZG9udF9pbmhlcml0PTAp
OgotICAgICIiIiBjb21waWxlIHRoZSBnaXZlbiBzb3VyY2UgdG8gYSByYXcgY29kZSBvYmplY3Qs
Ci0gICAgICAgIGFuZCBtYWludGFpbiBhbiBpbnRlcm5hbCBjYWNoZSB3aGljaCBhbGxvd3MgbGF0
ZXIKLSAgICAgICAgcmV0cmlldmFsIG9mIHRoZSBzb3VyY2UgY29kZSBmb3IgdGhlIGNvZGUgb2Jq
ZWN0Ci0gICAgICAgIGFuZCBhbnkgcmVjdXJzaXZlbHkgY3JlYXRlZCBjb2RlIG9iamVjdHMuCi0g
ICAgIiIiCi0gICAgaWYgX2FzdCBpcyBub3QgTm9uZSBhbmQgaXNpbnN0YW5jZShzb3VyY2UsIF9h
c3QuQVNUKToKLSAgICAgICAgIyBYWFggc2hvdWxkIFNvdXJjZSBzdXBwb3J0IGhhdmluZyBBU1Q/
Ci0gICAgICAgIHJldHVybiBjcHlfY29tcGlsZShzb3VyY2UsIGZpbGVuYW1lLCBtb2RlLCBmbGFn
cywgZG9udF9pbmhlcml0KQotICAgIF9nZW5mcmFtZSA9IHN5cy5fZ2V0ZnJhbWUoMSkgICMgdGhl
IGNhbGxlcgotICAgIHMgPSBTb3VyY2Uoc291cmNlKQotICAgIGNvID0gcy5jb21waWxlKGZpbGVu
YW1lLCBtb2RlLCBmbGFncywgX2dlbmZyYW1lPV9nZW5mcmFtZSkKLSAgICByZXR1cm4gY28KLQot
Ci1kZWYgZ2V0ZnNsaW5lbm8ob2JqKToKLSAgICAiIiIgUmV0dXJuIHNvdXJjZSBsb2NhdGlvbiAo
cGF0aCwgbGluZW5vKSBmb3IgdGhlIGdpdmVuIG9iamVjdC4KLSAgICBJZiB0aGUgc291cmNlIGNh
bm5vdCBiZSBkZXRlcm1pbmVkIHJldHVybiAoIiIsIC0xKQotICAgICIiIgotICAgIGltcG9ydCBf
cHl0ZXN0Ll9jb2RlCi0gICAgdHJ5OgotICAgICAgICBjb2RlID0gX3B5dGVzdC5fY29kZS5Db2Rl
KG9iaikKLSAgICBleGNlcHQgVHlwZUVycm9yOgotICAgICAgICB0cnk6Ci0gICAgICAgICAgICBm
biA9IChweS5zdGQuaW5zcGVjdC5nZXRzb3VyY2VmaWxlKG9iaikgb3IKLSAgICAgICAgICAgICAg
ICAgIHB5LnN0ZC5pbnNwZWN0LmdldGZpbGUob2JqKSkKLSAgICAgICAgZXhjZXB0IFR5cGVFcnJv
cjoKLSAgICAgICAgICAgIHJldHVybiAiIiwgLTEKLQotICAgICAgICBmc3BhdGggPSBmbiBhbmQg
cHkucGF0aC5sb2NhbChmbikgb3IgTm9uZQotICAgICAgICBsaW5lbm8gPSAtMQotICAgICAgICBp
ZiBmc3BhdGg6Ci0gICAgICAgICAgICB0cnk6Ci0gICAgICAgICAgICAgICAgXywgbGluZW5vID0g
ZmluZHNvdXJjZShvYmopCi0gICAgICAgICAgICBleGNlcHQgSU9FcnJvcjoKLSAgICAgICAgICAg
ICAgICBwYXNzCi0gICAgZWxzZToKLSAgICAgICAgZnNwYXRoID0gY29kZS5wYXRoCi0gICAgICAg
IGxpbmVubyA9IGNvZGUuZmlyc3RsaW5lbm8KLSAgICBhc3NlcnQgaXNpbnN0YW5jZShsaW5lbm8s
IGludCkKLSAgICByZXR1cm4gZnNwYXRoLCBsaW5lbm8KLQotIwotIyBoZWxwZXIgZnVuY3Rpb25z
Ci0jCi0KLQotZGVmIGZpbmRzb3VyY2Uob2JqKToKLSAgICB0cnk6Ci0gICAgICAgIHNvdXJjZWxp
bmVzLCBsaW5lbm8gPSBweS5zdGQuaW5zcGVjdC5maW5kc291cmNlKG9iaikKLSAgICBleGNlcHQg
cHkuYnVpbHRpbi5fc3lzZXg6Ci0gICAgICAgIHJhaXNlCi0gICAgZXhjZXB0OiAgIyBub3FhCi0g
ICAgICAgIHJldHVybiBOb25lLCAtMQotICAgIHNvdXJjZSA9IFNvdXJjZSgpCi0gICAgc291cmNl
LmxpbmVzID0gW2xpbmUucnN0cmlwKCkgZm9yIGxpbmUgaW4gc291cmNlbGluZXNdCi0gICAgcmV0
dXJuIHNvdXJjZSwgbGluZW5vCi0KLQotZGVmIGdldHNvdXJjZShvYmosICoqa3dhcmdzKToKLSAg
ICBpbXBvcnQgX3B5dGVzdC5fY29kZQotICAgIG9iaiA9IF9weXRlc3QuX2NvZGUuZ2V0cmF3Y29k
ZShvYmopCi0gICAgdHJ5OgotICAgICAgICBzdHJzcmMgPSBpbnNwZWN0LmdldHNvdXJjZShvYmop
Ci0gICAgZXhjZXB0IEluZGVudGF0aW9uRXJyb3I6Ci0gICAgICAgIHN0cnNyYyA9ICJcIkJ1Z2d5
IHB5dGhvbiB2ZXJzaW9uIGNvbnNpZGVyIHVwZ3JhZGluZywgY2Fubm90IGdldCBzb3VyY2VcIiIK
LSAgICBhc3NlcnQgaXNpbnN0YW5jZShzdHJzcmMsIHN0cikKLSAgICByZXR1cm4gU291cmNlKHN0
cnNyYywgKiprd2FyZ3MpCi0KLQotZGVmIGRlaW5kZW50KGxpbmVzLCBvZmZzZXQ9Tm9uZSk6Ci0g
ICAgaWYgb2Zmc2V0IGlzIE5vbmU6Ci0gICAgICAgIGZvciBsaW5lIGluIGxpbmVzOgotICAgICAg
ICAgICAgbGluZSA9IGxpbmUuZXhwYW5kdGFicygpCi0gICAgICAgICAgICBzID0gbGluZS5sc3Ry
aXAoKQotICAgICAgICAgICAgaWYgczoKLSAgICAgICAgICAgICAgICBvZmZzZXQgPSBsZW4obGlu
ZSkgLSBsZW4ocykKLSAgICAgICAgICAgICAgICBicmVhawotICAgICAgICBlbHNlOgotICAgICAg
ICAgICAgb2Zmc2V0ID0gMAotICAgIGlmIG9mZnNldCA9PSAwOgotICAgICAgICByZXR1cm4gbGlz
dChsaW5lcykKLSAgICBuZXdsaW5lcyA9IFtdCi0KLSAgICBkZWYgcmVhZGxpbmVfZ2VuZXJhdG9y
KGxpbmVzKToKLSAgICAgICAgZm9yIGxpbmUgaW4gbGluZXM6Ci0gICAgICAgICAgICB5aWVsZCBs
aW5lICsgJ1xuJwotICAgICAgICB3aGlsZSBUcnVlOgotICAgICAgICAgICAgeWllbGQgJycKLQot
ICAgIGl0ID0gcmVhZGxpbmVfZ2VuZXJhdG9yKGxpbmVzKQotCi0gICAgdHJ5OgotICAgICAgICBm
b3IgXywgXywgKHNsaW5lLCBfKSwgKGVsaW5lLCBfKSwgXyBpbiB0b2tlbml6ZS5nZW5lcmF0ZV90
b2tlbnMobGFtYmRhOiBuZXh0KGl0KSk6Ci0gICAgICAgICAgICBpZiBzbGluZSA+IGxlbihsaW5l
cyk6Ci0gICAgICAgICAgICAgICAgYnJlYWsgICMgRW5kIG9mIGlucHV0IHJlYWNoZWQKLSAgICAg
ICAgICAgIGlmIHNsaW5lID4gbGVuKG5ld2xpbmVzKToKLSAgICAgICAgICAgICAgICBsaW5lID0g
bGluZXNbc2xpbmUgLSAxXS5leHBhbmR0YWJzKCkKLSAgICAgICAgICAgICAgICBpZiBsaW5lLmxz
dHJpcCgpIGFuZCBsaW5lWzpvZmZzZXRdLmlzc3BhY2UoKToKLSAgICAgICAgICAgICAgICAgICAg
bGluZSA9IGxpbmVbb2Zmc2V0Ol0gICMgRGVpbmRlbnQKLSAgICAgICAgICAgICAgICBuZXdsaW5l
cy5hcHBlbmQobGluZSkKLQotICAgICAgICAgICAgZm9yIGkgaW4gcmFuZ2Uoc2xpbmUsIGVsaW5l
KToKLSAgICAgICAgICAgICAgICAjIERvbid0IGRlaW5kZW50IGNvbnRpbnVpbmcgbGluZXMgb2YK
LSAgICAgICAgICAgICAgICAjIG11bHRpbGluZSB0b2tlbnMgKGkuZS4gbXVsdGlsaW5lIHN0cmlu
Z3MpCi0gICAgICAgICAgICAgICAgbmV3bGluZXMuYXBwZW5kKGxpbmVzW2ldKQotICAgIGV4Y2Vw
dCAoSW5kZW50YXRpb25FcnJvciwgdG9rZW5pemUuVG9rZW5FcnJvcik6Ci0gICAgICAgIHBhc3MK
LSAgICAjIEFkZCBhbnkgbGluZXMgd2UgZGlkbid0IHNlZS4gRS5nLiBpZiBhbiBleGNlcHRpb24g
d2FzIHJhaXNlZC4KLSAgICBuZXdsaW5lcy5leHRlbmQobGluZXNbbGVuKG5ld2xpbmVzKTpdKQot
ICAgIHJldHVybiBuZXdsaW5lcwotCi0KLWRlZiBnZXRfc3RhdGVtZW50X3N0YXJ0ZW5kMihsaW5l
bm8sIG5vZGUpOgotICAgIGltcG9ydCBhc3QKLSAgICAjIGZsYXR0ZW4gYWxsIHN0YXRlbWVudHMg
YW5kIGV4Y2VwdCBoYW5kbGVycyBpbnRvIG9uZSBsaW5lbm8tbGlzdAotICAgICMgQVNUJ3MgbGlu
ZSBudW1iZXJzIHN0YXJ0IGluZGV4aW5nIGF0IDEKLSAgICB2YWx1ZXMgPSBbXQotICAgIGZvciB4
IGluIGFzdC53YWxrKG5vZGUpOgotICAgICAgICBpZiBpc2luc3RhbmNlKHgsIF9hc3Quc3RtdCkg
b3IgaXNpbnN0YW5jZSh4LCBfYXN0LkV4Y2VwdEhhbmRsZXIpOgotICAgICAgICAgICAgdmFsdWVz
LmFwcGVuZCh4LmxpbmVubyAtIDEpCi0gICAgICAgICAgICBmb3IgbmFtZSBpbiAiZmluYWxib2R5
IiwgIm9yZWxzZSI6Ci0gICAgICAgICAgICAgICAgdmFsID0gZ2V0YXR0cih4LCBuYW1lLCBOb25l
KQotICAgICAgICAgICAgICAgIGlmIHZhbDoKLSAgICAgICAgICAgICAgICAgICAgIyB0cmVhdCB0
aGUgZmluYWxseS9vcmVsc2UgcGFydCBhcyBpdHMgb3duIHN0YXRlbWVudAotICAgICAgICAgICAg
ICAgICAgICB2YWx1ZXMuYXBwZW5kKHZhbFswXS5saW5lbm8gLSAxIC0gMSkKLSAgICB2YWx1ZXMu
c29ydCgpCi0gICAgaW5zZXJ0X2luZGV4ID0gYmlzZWN0X3JpZ2h0KHZhbHVlcywgbGluZW5vKQot
ICAgIHN0YXJ0ID0gdmFsdWVzW2luc2VydF9pbmRleCAtIDFdCi0gICAgaWYgaW5zZXJ0X2luZGV4
ID49IGxlbih2YWx1ZXMpOgotICAgICAgICBlbmQgPSBOb25lCi0gICAgZWxzZToKLSAgICAgICAg
ZW5kID0gdmFsdWVzW2luc2VydF9pbmRleF0KLSAgICByZXR1cm4gc3RhcnQsIGVuZAotCi0KLWRl
ZiBnZXRzdGF0ZW1lbnRyYW5nZV9hc3QobGluZW5vLCBzb3VyY2UsIGFzc2VydGlvbj1GYWxzZSwg
YXN0bm9kZT1Ob25lKToKLSAgICBpZiBhc3Rub2RlIGlzIE5vbmU6Ci0gICAgICAgIGNvbnRlbnQg
PSBzdHIoc291cmNlKQotICAgICAgICB0cnk6Ci0gICAgICAgICAgICBhc3Rub2RlID0gY29tcGls
ZShjb250ZW50LCAic291cmNlIiwgImV4ZWMiLCAxMDI0KSAgIyAxMDI0IGZvciBBU1QKLSAgICAg
ICAgZXhjZXB0IFZhbHVlRXJyb3I6Ci0gICAgICAgICAgICBzdGFydCwgZW5kID0gZ2V0c3RhdGVt
ZW50cmFuZ2Vfb2xkKGxpbmVubywgc291cmNlLCBhc3NlcnRpb24pCi0gICAgICAgICAgICByZXR1
cm4gTm9uZSwgc3RhcnQsIGVuZAotICAgIHN0YXJ0LCBlbmQgPSBnZXRfc3RhdGVtZW50X3N0YXJ0
ZW5kMihsaW5lbm8sIGFzdG5vZGUpCi0gICAgIyB3ZSBuZWVkIHRvIGNvcnJlY3QgdGhlIGVuZDoK
LSAgICAjIC0gYXN0LXBhcnNpbmcgc3RyaXBzIGNvbW1lbnRzCi0gICAgIyAtIHRoZXJlIG1pZ2h0
IGJlIGVtcHR5IGxpbmVzCi0gICAgIyAtIHdlIG1pZ2h0IGhhdmUgbGVzc2VyIGluZGVudGVkIGNv
ZGUgYmxvY2tzIGF0IHRoZSBlbmQKLSAgICBpZiBlbmQgaXMgTm9uZToKLSAgICAgICAgZW5kID0g
bGVuKHNvdXJjZS5saW5lcykKLQotICAgIGlmIGVuZCA+IHN0YXJ0ICsgMToKLSAgICAgICAgIyBt
YWtlIHN1cmUgd2UgZG9uJ3Qgc3BhbiBkaWZmZXJlbnRseSBpbmRlbnRlZCBjb2RlIGJsb2Nrcwot
ICAgICAgICAjIGJ5IHVzaW5nIHRoZSBCbG9ja0ZpbmRlciBoZWxwZXIgdXNlZCB3aGljaCBpbnNw
ZWN0LmdldHNvdXJjZSgpIHVzZXMgaXRzZWxmCi0gICAgICAgIGJsb2NrX2ZpbmRlciA9IGluc3Bl
Y3QuQmxvY2tGaW5kZXIoKQotICAgICAgICAjIGlmIHdlIHN0YXJ0IHdpdGggYW4gaW5kZW50ZWQg
bGluZSwgcHV0IGJsb2NrZmluZGVyIHRvICJzdGFydGVkIiBtb2RlCi0gICAgICAgIGJsb2NrX2Zp
bmRlci5zdGFydGVkID0gc291cmNlLmxpbmVzW3N0YXJ0XVswXS5pc3NwYWNlKCkKLSAgICAgICAg
aXQgPSAoKHggKyAiXG4iKSBmb3IgeCBpbiBzb3VyY2UubGluZXNbc3RhcnQ6ZW5kXSkKLSAgICAg
ICAgdHJ5OgotICAgICAgICAgICAgZm9yIHRvayBpbiB0b2tlbml6ZS5nZW5lcmF0ZV90b2tlbnMo
bGFtYmRhOiBuZXh0KGl0KSk6Ci0gICAgICAgICAgICAgICAgYmxvY2tfZmluZGVyLnRva2VuZWF0
ZXIoKnRvaykKLSAgICAgICAgZXhjZXB0IChpbnNwZWN0LkVuZE9mQmxvY2ssIEluZGVudGF0aW9u
RXJyb3IpOgotICAgICAgICAgICAgZW5kID0gYmxvY2tfZmluZGVyLmxhc3QgKyBzdGFydAotICAg
ICAgICBleGNlcHQgRXhjZXB0aW9uOgotICAgICAgICAgICAgcGFzcwotCi0gICAgIyB0aGUgZW5k
IG1pZ2h0IHN0aWxsIHBvaW50IHRvIGEgY29tbWVudCBvciBlbXB0eSBsaW5lLCBjb3JyZWN0IGl0
Ci0gICAgd2hpbGUgZW5kOgotICAgICAgICBsaW5lID0gc291cmNlLmxpbmVzW2VuZCAtIDFdLmxz
dHJpcCgpCi0gICAgICAgIGlmIGxpbmUuc3RhcnRzd2l0aCgiIyIpIG9yIG5vdCBsaW5lOgotICAg
ICAgICAgICAgZW5kIC09IDEKLSAgICAgICAgZWxzZToKLSAgICAgICAgICAgIGJyZWFrCi0gICAg
cmV0dXJuIGFzdG5vZGUsIHN0YXJ0LCBlbmQKLQotCi1kZWYgZ2V0c3RhdGVtZW50cmFuZ2Vfb2xk
KGxpbmVubywgc291cmNlLCBhc3NlcnRpb249RmFsc2UpOgotICAgICIiIiByZXR1cm4gKHN0YXJ0
LCBlbmQpIHR1cGxlIHdoaWNoIHNwYW5zIHRoZSBtaW5pbWFsCi0gICAgICAgIHN0YXRlbWVudCBy
ZWdpb24gd2hpY2ggY29udGFpbmluZyB0aGUgZ2l2ZW4gbGluZW5vLgotICAgICAgICByYWlzZSBh
biBJbmRleEVycm9yIGlmIG5vIHN1Y2ggc3RhdGVtZW50cmFuZ2UgY2FuIGJlIGZvdW5kLgotICAg
ICIiIgotICAgICMgWFhYIHRoaXMgbG9naWMgaXMgb25seSB1c2VkIG9uIHB5dGhvbjIuNCBhbmQg
YmVsb3cKLSAgICAjIDEuIGZpbmQgdGhlIHN0YXJ0IG9mIHRoZSBzdGF0ZW1lbnQKLSAgICBmcm9t
IGNvZGVvcCBpbXBvcnQgY29tcGlsZV9jb21tYW5kCi0gICAgZm9yIHN0YXJ0IGluIHJhbmdlKGxp
bmVubywgLTEsIC0xKToKLSAgICAgICAgaWYgYXNzZXJ0aW9uOgotICAgICAgICAgICAgbGluZSA9
IHNvdXJjZS5saW5lc1tzdGFydF0KLSAgICAgICAgICAgICMgdGhlIGZvbGxvd2luZyBsaW5lcyBh
cmUgbm90IGZ1bGx5IHRlc3RlZCwgY2hhbmdlIHdpdGggY2FyZQotICAgICAgICAgICAgaWYgJ3N1
cGVyJyBpbiBsaW5lIGFuZCAnc2VsZicgaW4gbGluZSBhbmQgJ19faW5pdF9fJyBpbiBsaW5lOgot
ICAgICAgICAgICAgICAgIHJhaXNlIEluZGV4RXJyb3IoImxpa2VseSBhIHN1YmNsYXNzIikKLSAg
ICAgICAgICAgIGlmICJhc3NlcnQiIG5vdCBpbiBsaW5lIGFuZCAicmFpc2UiIG5vdCBpbiBsaW5l
OgotICAgICAgICAgICAgICAgIGNvbnRpbnVlCi0gICAgICAgIHRyeWxpbmVzID0gc291cmNlLmxp
bmVzW3N0YXJ0OmxpbmVubyArIDFdCi0gICAgICAgICMgcXVpY2sgaGFjayB0byBwcmVwYXJlIHBh
cnNpbmcgYW4gaW5kZW50ZWQgbGluZSB3aXRoCi0gICAgICAgICMgY29tcGlsZV9jb21tYW5kKCkg
KHdoaWNoIGVycm9ycyBvbiAicmV0dXJuIiBvdXRzaWRlIGRlZnMpCi0gICAgICAgIHRyeWxpbmVz
Lmluc2VydCgwLCAnZGVmIHh4eCgpOicpCi0gICAgICAgIHRyeXNvdXJjZSA9ICdcbiAnLmpvaW4o
dHJ5bGluZXMpCi0gICAgICAgICMgICAgICAgICAgICAgIF4gc3BhY2UgaGVyZQotICAgICAgICB0
cnk6Ci0gICAgICAgICAgICBjb21waWxlX2NvbW1hbmQodHJ5c291cmNlKQotICAgICAgICBleGNl
cHQgKFN5bnRheEVycm9yLCBPdmVyZmxvd0Vycm9yLCBWYWx1ZUVycm9yKToKLSAgICAgICAgICAg
IGNvbnRpbnVlCi0KLSAgICAgICAgIyAyLiBmaW5kIHRoZSBlbmQgb2YgdGhlIHN0YXRlbWVudAot
ICAgICAgICBmb3IgZW5kIGluIHJhbmdlKGxpbmVubyArIDEsIGxlbihzb3VyY2UpICsgMSk6Ci0g
ICAgICAgICAgICB0cnlzb3VyY2UgPSBzb3VyY2Vbc3RhcnQ6ZW5kXQotICAgICAgICAgICAgaWYg
dHJ5c291cmNlLmlzcGFyc2VhYmxlKCk6Ci0gICAgICAgICAgICAgICAgcmV0dXJuIHN0YXJ0LCBl
bmQKLSAgICByYWlzZSBTeW50YXhFcnJvcigibm8gdmFsaWQgc291cmNlIHJhbmdlIGFyb3VuZCBs
aW5lICVkICIgJSAobGluZW5vLCkpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9fcHl0ZXN0L19j
b2RlL3czYy1pbXBvcnQubG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvX3B5dGVzdC9fY29kZS93M2MtaW1wb3J0
LmxvZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggODIyMzM0ZjNmOGVkYTk2NmEyZDE4
ZGVkYTcyZTlkOTAyZjg3ZDcxYi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9fcHl0ZXN0L19jb2RlL3czYy1pbXBvcnQubG9nCisrKyAv
ZGV2L251bGwKQEAgLTEsMjAgKzAsMCBAQAotVGhlIHRlc3RzIGluIHRoaXMgZGlyZWN0b3J5IHdl
cmUgaW1wb3J0ZWQgZnJvbSB0aGUgVzNDIHJlcG9zaXRvcnkuCi1EbyBOT1QgbW9kaWZ5IHRoZXNl
IHRlc3RzIGRpcmVjdGx5IGluIFdlYktpdC4KLUluc3RlYWQsIGNyZWF0ZSBhIHB1bGwgcmVxdWVz
dCBvbiB0aGUgV1BUIGdpdGh1YjoKLQlodHRwczovL2dpdGh1Yi5jb20vdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cwotCi1UaGVuIHJ1biB0aGUgVG9vbHMvU2NyaXB0cy9pbXBvcnQtdzNjLXRlc3RzIGlu
IFdlYktpdCB0byByZWltcG9ydAotCi1EbyBOT1QgbW9kaWZ5IG9yIHJlbW92ZSB0aGlzIGZpbGUu
Ci0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLQotUHJvcGVydGllcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVz
OgotTm9uZQotUHJvcGVydHkgdmFsdWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25l
Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0KLUxpc3Qgb2YgZmlsZXM6Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvX3B5dGVzdC9f
Y29kZS9fX2luaXRfXy5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L19weXRlc3QvX2NvZGUvX3B5MnRyYWNlYmFj
ay5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
dGhpcmRfcGFydHkvcHl0ZXN0L19weXRlc3QvX2NvZGUvY29kZS5weQotL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L19w
eXRlc3QvX2NvZGUvc291cmNlLnB5CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9fcHl0ZXN0L2Fz
c2VydGlvbi9fX2luaXRfXy5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L19weXRlc3QvYXNzZXJ0aW9uL19faW5p
dF9fLnB5CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhNDhlOThjODVhYTJiYmRlOGRm
NWMwNzNiYTliNjQ1ZmNjMzI1N2I2Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L19weXRlc3QvYXNzZXJ0aW9uL19faW5pdF9fLnB5Cisr
KyAvZGV2L251bGwKQEAgLTEsMTQ2ICswLDAgQEAKLSIiIgotc3VwcG9ydCBmb3IgcHJlc2VudGlu
ZyBkZXRhaWxlZCBpbmZvcm1hdGlvbiBpbiBmYWlsaW5nIGFzc2VydGlvbnMuCi0iIiIKLWZyb20g
X19mdXR1cmVfXyBpbXBvcnQgYWJzb2x1dGVfaW1wb3J0LCBkaXZpc2lvbiwgcHJpbnRfZnVuY3Rp
b24KLWltcG9ydCBzeXMKLWltcG9ydCBzaXgKLQotZnJvbSBfcHl0ZXN0LmFzc2VydGlvbiBpbXBv
cnQgdXRpbAotZnJvbSBfcHl0ZXN0LmFzc2VydGlvbiBpbXBvcnQgcmV3cml0ZQotZnJvbSBfcHl0
ZXN0LmFzc2VydGlvbiBpbXBvcnQgdHJ1bmNhdGUKLQotCi1kZWYgcHl0ZXN0X2FkZG9wdGlvbihw
YXJzZXIpOgotICAgIGdyb3VwID0gcGFyc2VyLmdldGdyb3VwKCJkZWJ1Z2NvbmZpZyIpCi0gICAg
Z3JvdXAuYWRkb3B0aW9uKCctLWFzc2VydCcsCi0gICAgICAgICAgICAgICAgICAgIGFjdGlvbj0i
c3RvcmUiLAotICAgICAgICAgICAgICAgICAgICBkZXN0PSJhc3NlcnRtb2RlIiwKLSAgICAgICAg
ICAgICAgICAgICAgY2hvaWNlcz0oInJld3JpdGUiLCAicGxhaW4iLCksCi0gICAgICAgICAgICAg
ICAgICAgIGRlZmF1bHQ9InJld3JpdGUiLAotICAgICAgICAgICAgICAgICAgICBtZXRhdmFyPSJN
T0RFIiwKLSAgICAgICAgICAgICAgICAgICAgaGVscD0iIiJDb250cm9sIGFzc2VydGlvbiBkZWJ1
Z2dpbmcgdG9vbHMuICAncGxhaW4nCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgcGVyZm9y
bXMgbm8gYXNzZXJ0aW9uIGRlYnVnZ2luZy4gICdyZXdyaXRlJwotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICh0aGUgZGVmYXVsdCkgcmV3cml0ZXMgYXNzZXJ0IHN0YXRlbWVudHMgaW4KLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0IG1vZHVsZXMgb24gaW1wb3J0IHRvIHByb3Zp
ZGUgYXNzZXJ0Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgZXhwcmVzc2lvbiBpbmZvcm1h
dGlvbi4iIiIpCi0KLQotZGVmIHJlZ2lzdGVyX2Fzc2VydF9yZXdyaXRlKCpuYW1lcyk6Ci0gICAg
IiIiUmVnaXN0ZXIgb25lIG9yIG1vcmUgbW9kdWxlIG5hbWVzIHRvIGJlIHJld3JpdHRlbiBvbiBp
bXBvcnQuCi0KLSAgICBUaGlzIGZ1bmN0aW9uIHdpbGwgbWFrZSBzdXJlIHRoYXQgdGhpcyBtb2R1
bGUgb3IgYWxsIG1vZHVsZXMgaW5zaWRlCi0gICAgdGhlIHBhY2thZ2Ugd2lsbCBnZXQgdGhlaXIg
YXNzZXJ0IHN0YXRlbWVudHMgcmV3cml0dGVuLgotICAgIFRodXMgeW91IHNob3VsZCBtYWtlIHN1
cmUgdG8gY2FsbCB0aGlzIGJlZm9yZSB0aGUgbW9kdWxlIGlzCi0gICAgYWN0dWFsbHkgaW1wb3J0
ZWQsIHVzdWFsbHkgaW4geW91ciBfX2luaXRfXy5weSBpZiB5b3UgYXJlIGEgcGx1Z2luCi0gICAg
dXNpbmcgYSBwYWNrYWdlLgotCi0gICAgOnJhaXNlIFR5cGVFcnJvcjogaWYgdGhlIGdpdmVuIG1v
ZHVsZSBuYW1lcyBhcmUgbm90IHN0cmluZ3MuCi0gICAgIiIiCi0gICAgZm9yIG5hbWUgaW4gbmFt
ZXM6Ci0gICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKG5hbWUsIHN0cik6Ci0gICAgICAgICAgICBt
c2cgPSAnZXhwZWN0ZWQgbW9kdWxlIG5hbWVzIGFzICphcmdzLCBnb3QgezB9IGluc3RlYWQnCi0g
ICAgICAgICAgICByYWlzZSBUeXBlRXJyb3IobXNnLmZvcm1hdChyZXByKG5hbWVzKSkpCi0gICAg
Zm9yIGhvb2sgaW4gc3lzLm1ldGFfcGF0aDoKLSAgICAgICAgaWYgaXNpbnN0YW5jZShob29rLCBy
ZXdyaXRlLkFzc2VydGlvblJld3JpdGluZ0hvb2spOgotICAgICAgICAgICAgaW1wb3J0aG9vayA9
IGhvb2sKLSAgICAgICAgICAgIGJyZWFrCi0gICAgZWxzZToKLSAgICAgICAgaW1wb3J0aG9vayA9
IER1bW15UmV3cml0ZUhvb2soKQotICAgIGltcG9ydGhvb2subWFya19yZXdyaXRlKCpuYW1lcykK
LQotCi1jbGFzcyBEdW1teVJld3JpdGVIb29rKG9iamVjdCk6Ci0gICAgIiIiQSBuby1vcCBpbXBv
cnQgaG9vayBmb3Igd2hlbiByZXdyaXRpbmcgaXMgZGlzYWJsZWQuIiIiCi0KLSAgICBkZWYgbWFy
a19yZXdyaXRlKHNlbGYsICpuYW1lcyk6Ci0gICAgICAgIHBhc3MKLQotCi1jbGFzcyBBc3NlcnRp
b25TdGF0ZToKLSAgICAiIiJTdGF0ZSBmb3IgdGhlIGFzc2VydGlvbiBwbHVnaW4uIiIiCi0KLSAg
ICBkZWYgX19pbml0X18oc2VsZiwgY29uZmlnLCBtb2RlKToKLSAgICAgICAgc2VsZi5tb2RlID0g
bW9kZQotICAgICAgICBzZWxmLnRyYWNlID0gY29uZmlnLnRyYWNlLnJvb3QuZ2V0KCJhc3NlcnRp
b24iKQotICAgICAgICBzZWxmLmhvb2sgPSBOb25lCi0KLQotZGVmIGluc3RhbGxfaW1wb3J0aG9v
ayhjb25maWcpOgotICAgICIiIlRyeSB0byBpbnN0YWxsIHRoZSByZXdyaXRlIGhvb2ssIHJhaXNl
IFN5c3RlbUVycm9yIGlmIGl0IGZhaWxzLiIiIgotICAgICMgSnl0aG9uIGhhcyBhbiBBU1QgYnVn
IHRoYXQgbWFrZSB0aGUgYXNzZXJ0aW9uIHJld3JpdGluZyBob29rIG1hbGZ1bmN0aW9uLgotICAg
IGlmIChzeXMucGxhdGZvcm0uc3RhcnRzd2l0aCgnamF2YScpKToKLSAgICAgICAgcmFpc2UgU3lz
dGVtRXJyb3IoJ3Jld3JpdGUgbm90IHN1cHBvcnRlZCcpCi0KLSAgICBjb25maWcuX2Fzc2VydHN0
YXRlID0gQXNzZXJ0aW9uU3RhdGUoY29uZmlnLCAncmV3cml0ZScpCi0gICAgY29uZmlnLl9hc3Nl
cnRzdGF0ZS5ob29rID0gaG9vayA9IHJld3JpdGUuQXNzZXJ0aW9uUmV3cml0aW5nSG9vayhjb25m
aWcpCi0gICAgc3lzLm1ldGFfcGF0aC5pbnNlcnQoMCwgaG9vaykKLSAgICBjb25maWcuX2Fzc2Vy
dHN0YXRlLnRyYWNlKCdpbnN0YWxsZWQgcmV3cml0ZSBpbXBvcnQgaG9vaycpCi0KLSAgICBkZWYg
dW5kbygpOgotICAgICAgICBob29rID0gY29uZmlnLl9hc3NlcnRzdGF0ZS5ob29rCi0gICAgICAg
IGlmIGhvb2sgaXMgbm90IE5vbmUgYW5kIGhvb2sgaW4gc3lzLm1ldGFfcGF0aDoKLSAgICAgICAg
ICAgIHN5cy5tZXRhX3BhdGgucmVtb3ZlKGhvb2spCi0KLSAgICBjb25maWcuYWRkX2NsZWFudXAo
dW5kbykKLSAgICByZXR1cm4gaG9vawotCi0KLWRlZiBweXRlc3RfY29sbGVjdGlvbihzZXNzaW9u
KToKLSAgICAjIHRoaXMgaG9vayBpcyBvbmx5IGNhbGxlZCB3aGVuIHRlc3QgbW9kdWxlcyBhcmUg
Y29sbGVjdGVkCi0gICAgIyBzbyBmb3IgZXhhbXBsZSBub3QgaW4gdGhlIG1hc3RlciBwcm9jZXNz
IG9mIHB5dGVzdC14ZGlzdAotICAgICMgKHdoaWNoIGRvZXMgbm90IGNvbGxlY3QgdGVzdCBtb2R1
bGVzKQotICAgIGFzc2VydHN0YXRlID0gZ2V0YXR0cihzZXNzaW9uLmNvbmZpZywgJ19hc3NlcnRz
dGF0ZScsIE5vbmUpCi0gICAgaWYgYXNzZXJ0c3RhdGU6Ci0gICAgICAgIGlmIGFzc2VydHN0YXRl
Lmhvb2sgaXMgbm90IE5vbmU6Ci0gICAgICAgICAgICBhc3NlcnRzdGF0ZS5ob29rLnNldF9zZXNz
aW9uKHNlc3Npb24pCi0KLQotZGVmIHB5dGVzdF9ydW50ZXN0X3NldHVwKGl0ZW0pOgotICAgICIi
IlNldHVwIHRoZSBweXRlc3RfYXNzZXJ0cmVwcl9jb21wYXJlIGhvb2sKLQotICAgIFRoZSBuZXdp
bnRlcnByZXQgYW5kIHJld3JpdGUgbW9kdWxlcyB3aWxsIHVzZSB1dGlsLl9yZXByY29tcGFyZSBp
ZgotICAgIGl0IGV4aXN0cyB0byB1c2UgY3VzdG9tIHJlcG9ydGluZyB2aWEgdGhlCi0gICAgcHl0
ZXN0X2Fzc2VydHJlcHJfY29tcGFyZSBob29rLiAgVGhpcyBzZXRzIHVwIHRoaXMgY3VzdG9tCi0g
ICAgY29tcGFyaXNvbiBmb3IgdGhlIHRlc3QuCi0gICAgIiIiCi0gICAgZGVmIGNhbGxiaW5yZXBy
KG9wLCBsZWZ0LCByaWdodCk6Ci0gICAgICAgICIiIkNhbGwgdGhlIHB5dGVzdF9hc3NlcnRyZXBy
X2NvbXBhcmUgaG9vayBhbmQgcHJlcGFyZSB0aGUgcmVzdWx0Ci0KLSAgICAgICAgVGhpcyB1c2Vz
IHRoZSBmaXJzdCByZXN1bHQgZnJvbSB0aGUgaG9vayBhbmQgdGhlbiBlbnN1cmVzIHRoZQotICAg
ICAgICBmb2xsb3dpbmc6Ci0gICAgICAgICogT3Zlcmx5IHZlcmJvc2UgZXhwbGFuYXRpb25zIGFy
ZSB0cnVuY2F0ZWQgdW5sZXNzIGNvbmZpZ3VyZWQgb3RoZXJ3aXNlCi0gICAgICAgICAgKGVnLiBp
ZiBydW5uaW5nIGluIHZlcmJvc2UgbW9kZSkuCi0gICAgICAgICogRW1iZWRkZWQgbmV3bGluZXMg
YXJlIGVzY2FwZWQgdG8gaGVscCB1dGlsLmZvcm1hdF9leHBsYW5hdGlvbigpCi0gICAgICAgICAg
bGF0ZXIuCi0gICAgICAgICogSWYgdGhlIHJld3JpdGUgbW9kZSBpcyB1c2VkIGVtYmVkZGVkICUt
Y2hhcmFjdGVycyBhcmUgcmVwbGFjZWQKLSAgICAgICAgICB0byBwcm90ZWN0IGxhdGVyICUgZm9y
bWF0dGluZy4KLQotICAgICAgICBUaGUgcmVzdWx0IGNhbiBiZSBmb3JtYXR0ZWQgYnkgdXRpbC5m
b3JtYXRfZXhwbGFuYXRpb24oKSBmb3IKLSAgICAgICAgcHJldHR5IHByaW50aW5nLgotICAgICAg
ICAiIiIKLSAgICAgICAgaG9va19yZXN1bHQgPSBpdGVtLmlob29rLnB5dGVzdF9hc3NlcnRyZXBy
X2NvbXBhcmUoCi0gICAgICAgICAgICBjb25maWc9aXRlbS5jb25maWcsIG9wPW9wLCBsZWZ0PWxl
ZnQsIHJpZ2h0PXJpZ2h0KQotICAgICAgICBmb3IgbmV3X2V4cGwgaW4gaG9va19yZXN1bHQ6Ci0g
ICAgICAgICAgICBpZiBuZXdfZXhwbDoKLSAgICAgICAgICAgICAgICBuZXdfZXhwbCA9IHRydW5j
YXRlLnRydW5jYXRlX2lmX3JlcXVpcmVkKG5ld19leHBsLCBpdGVtKQotICAgICAgICAgICAgICAg
IG5ld19leHBsID0gW2xpbmUucmVwbGFjZSgiXG4iLCAiXFxuIikgZm9yIGxpbmUgaW4gbmV3X2V4
cGxdCi0gICAgICAgICAgICAgICAgcmVzID0gc2l4LnRleHRfdHlwZSgiXG5+Iikuam9pbihuZXdf
ZXhwbCkKLSAgICAgICAgICAgICAgICBpZiBpdGVtLmNvbmZpZy5nZXR2YWx1ZSgiYXNzZXJ0bW9k
ZSIpID09ICJyZXdyaXRlIjoKLSAgICAgICAgICAgICAgICAgICAgcmVzID0gcmVzLnJlcGxhY2Uo
IiUiLCAiJSUiKQotICAgICAgICAgICAgICAgIHJldHVybiByZXMKLSAgICB1dGlsLl9yZXByY29t
cGFyZSA9IGNhbGxiaW5yZXByCi0KLQotZGVmIHB5dGVzdF9ydW50ZXN0X3RlYXJkb3duKGl0ZW0p
OgotICAgIHV0aWwuX3JlcHJjb21wYXJlID0gTm9uZQotCi0KLWRlZiBweXRlc3Rfc2Vzc2lvbmZp
bmlzaChzZXNzaW9uKToKLSAgICBhc3NlcnRzdGF0ZSA9IGdldGF0dHIoc2Vzc2lvbi5jb25maWcs
ICdfYXNzZXJ0c3RhdGUnLCBOb25lKQotICAgIGlmIGFzc2VydHN0YXRlOgotICAgICAgICBpZiBh
c3NlcnRzdGF0ZS5ob29rIGlzIG5vdCBOb25lOgotICAgICAgICAgICAgYXNzZXJ0c3RhdGUuaG9v
ay5zZXRfc2Vzc2lvbihOb25lKQotCi0KLSMgRXhwb3NlIHRoaXMgcGx1Z2luJ3MgaW1wbGVtZW50
YXRpb24gZm9yIHRoZSBweXRlc3RfYXNzZXJ0cmVwcl9jb21wYXJlIGhvb2sKLXB5dGVzdF9hc3Nl
cnRyZXByX2NvbXBhcmUgPSB1dGlsLmFzc2VydHJlcHJfY29tcGFyZQpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0
eS9weXRlc3QvX3B5dGVzdC9hc3NlcnRpb24vcmV3cml0ZS5weSBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L19weXRl
c3QvYXNzZXJ0aW9uL3Jld3JpdGUucHkKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGY2
NDM1OGY0OTBiYzkxYWY5YTVlYzUyNjUyYjZlOGIyYmUwYWNjNjEuLjAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvX3B5dGVzdC9hc3NlcnRp
b24vcmV3cml0ZS5weQorKysgL2Rldi9udWxsCkBAIC0xLDk0OCArMCwwIEBACi0iIiJSZXdyaXRl
IGFzc2VydGlvbiBBU1QgdG8gcHJvZHVjZSBuaWNlIGVycm9yIG1lc3NhZ2VzIiIiCi1mcm9tIF9f
ZnV0dXJlX18gaW1wb3J0IGFic29sdXRlX2ltcG9ydCwgZGl2aXNpb24sIHByaW50X2Z1bmN0aW9u
Ci1pbXBvcnQgYXN0Ci1pbXBvcnQgX2FzdAotaW1wb3J0IGVycm5vCi1pbXBvcnQgaXRlcnRvb2xz
Ci1pbXBvcnQgaW1wCi1pbXBvcnQgbWFyc2hhbAotaW1wb3J0IG9zCi1pbXBvcnQgcmUKLWltcG9y
dCBzaXgKLWltcG9ydCBzdHJ1Y3QKLWltcG9ydCBzeXMKLWltcG9ydCB0eXBlcwotCi1pbXBvcnQg
cHkKLWZyb20gX3B5dGVzdC5hc3NlcnRpb24gaW1wb3J0IHV0aWwKLQotCi0jIHB5dGVzdCBjYWNo
ZXMgcmV3cml0dGVuIHB5Y3MgaW4gX19weWNhY2hlX18uCi1pZiBoYXNhdHRyKGltcCwgImdldF90
YWciKToKLSAgICBQWVRFU1RfVEFHID0gaW1wLmdldF90YWcoKSArICItUFlURVNUIgotZWxzZToK
LSAgICBpZiBoYXNhdHRyKHN5cywgInB5cHlfdmVyc2lvbl9pbmZvIik6Ci0gICAgICAgIGltcGwg
PSAicHlweSIKLSAgICBlbGlmIHN5cy5wbGF0Zm9ybSA9PSAiamF2YSI6Ci0gICAgICAgIGltcGwg
PSAianl0aG9uIgotICAgIGVsc2U6Ci0gICAgICAgIGltcGwgPSAiY3B5dGhvbiIKLSAgICB2ZXIg
PSBzeXMudmVyc2lvbl9pbmZvCi0gICAgUFlURVNUX1RBRyA9ICIlcy0lcyVzLVBZVEVTVCIgJSAo
aW1wbCwgdmVyWzBdLCB2ZXJbMV0pCi0gICAgZGVsIHZlciwgaW1wbAotCi1QWUNfRVhUID0gIi5w
eSIgKyAoX19kZWJ1Z19fIGFuZCAiYyIgb3IgIm8iKQotUFlDX1RBSUwgPSAiLiIgKyBQWVRFU1Rf
VEFHICsgUFlDX0VYVAotCi1BU0NJSV9JU19ERUZBVUxUX0VOQ09ESU5HID0gc3lzLnZlcnNpb25f
aW5mb1swXSA8IDMKLQotaWYgc3lzLnZlcnNpb25faW5mbyA+PSAoMywgNSk6Ci0gICAgYXN0X0Nh
bGwgPSBhc3QuQ2FsbAotZWxzZToKLSAgICBkZWYgYXN0X0NhbGwoYSwgYiwgYyk6Ci0gICAgICAg
IHJldHVybiBhc3QuQ2FsbChhLCBiLCBjLCBOb25lLCBOb25lKQotCi0KLWNsYXNzIEFzc2VydGlv
blJld3JpdGluZ0hvb2sob2JqZWN0KToKLSAgICAiIiJQRVAzMDIgSW1wb3J0IGhvb2sgd2hpY2gg
cmV3cml0ZXMgYXNzZXJ0cy4iIiIKLQotICAgIGRlZiBfX2luaXRfXyhzZWxmLCBjb25maWcpOgot
ICAgICAgICBzZWxmLmNvbmZpZyA9IGNvbmZpZwotICAgICAgICBzZWxmLmZucGF0cyA9IGNvbmZp
Zy5nZXRpbmkoInB5dGhvbl9maWxlcyIpCi0gICAgICAgIHNlbGYuc2Vzc2lvbiA9IE5vbmUKLSAg
ICAgICAgc2VsZi5tb2R1bGVzID0ge30KLSAgICAgICAgc2VsZi5fcmV3cml0dGVuX25hbWVzID0g
c2V0KCkKLSAgICAgICAgc2VsZi5fcmVnaXN0ZXJfd2l0aF9wa2dfcmVzb3VyY2VzKCkKLSAgICAg
ICAgc2VsZi5fbXVzdF9yZXdyaXRlID0gc2V0KCkKLQotICAgIGRlZiBzZXRfc2Vzc2lvbihzZWxm
LCBzZXNzaW9uKToKLSAgICAgICAgc2VsZi5zZXNzaW9uID0gc2Vzc2lvbgotCi0gICAgZGVmIGZp
bmRfbW9kdWxlKHNlbGYsIG5hbWUsIHBhdGg9Tm9uZSk6Ci0gICAgICAgIHN0YXRlID0gc2VsZi5j
b25maWcuX2Fzc2VydHN0YXRlCi0gICAgICAgIHN0YXRlLnRyYWNlKCJmaW5kX21vZHVsZSBjYWxs
ZWQgZm9yOiAlcyIgJSBuYW1lKQotICAgICAgICBuYW1lcyA9IG5hbWUucnNwbGl0KCIuIiwgMSkK
LSAgICAgICAgbGFzdG5hbWUgPSBuYW1lc1stMV0KLSAgICAgICAgcHRoID0gTm9uZQotICAgICAg
ICBpZiBwYXRoIGlzIG5vdCBOb25lOgotICAgICAgICAgICAgIyBTdGFydGluZyB3aXRoIFB5dGhv
biAzLjMsIHBhdGggaXMgYSBfTmFtZXNwYWNlUGF0aCgpLCB3aGljaAotICAgICAgICAgICAgIyBj
YXVzZXMgcHJvYmxlbXMgaWYgbm90IGNvbnZlcnRlZCB0byBsaXN0LgotICAgICAgICAgICAgcGF0
aCA9IGxpc3QocGF0aCkKLSAgICAgICAgICAgIGlmIGxlbihwYXRoKSA9PSAxOgotICAgICAgICAg
ICAgICAgIHB0aCA9IHBhdGhbMF0KLSAgICAgICAgaWYgcHRoIGlzIE5vbmU6Ci0gICAgICAgICAg
ICB0cnk6Ci0gICAgICAgICAgICAgICAgZmQsIGZuLCBkZXNjID0gaW1wLmZpbmRfbW9kdWxlKGxh
c3RuYW1lLCBwYXRoKQotICAgICAgICAgICAgZXhjZXB0IEltcG9ydEVycm9yOgotICAgICAgICAg
ICAgICAgIHJldHVybiBOb25lCi0gICAgICAgICAgICBpZiBmZCBpcyBub3QgTm9uZToKLSAgICAg
ICAgICAgICAgICBmZC5jbG9zZSgpCi0gICAgICAgICAgICB0cCA9IGRlc2NbMl0KLSAgICAgICAg
ICAgIGlmIHRwID09IGltcC5QWV9DT01QSUxFRDoKLSAgICAgICAgICAgICAgICBpZiBoYXNhdHRy
KGltcCwgInNvdXJjZV9mcm9tX2NhY2hlIik6Ci0gICAgICAgICAgICAgICAgICAgIHRyeToKLSAg
ICAgICAgICAgICAgICAgICAgICAgIGZuID0gaW1wLnNvdXJjZV9mcm9tX2NhY2hlKGZuKQotICAg
ICAgICAgICAgICAgICAgICBleGNlcHQgVmFsdWVFcnJvcjoKLSAgICAgICAgICAgICAgICAgICAg
ICAgICMgUHl0aG9uIDMgZG9lc24ndCBsaWtlIG9ycGhhbmVkIGJ1dCBzdGlsbC1pbXBvcnRhYmxl
Ci0gICAgICAgICAgICAgICAgICAgICAgICAjIC5weWMgZmlsZXMuCi0gICAgICAgICAgICAgICAg
ICAgICAgICBmbiA9IGZuWzotMV0KLSAgICAgICAgICAgICAgICBlbHNlOgotICAgICAgICAgICAg
ICAgICAgICBmbiA9IGZuWzotMV0KLSAgICAgICAgICAgIGVsaWYgdHAgIT0gaW1wLlBZX1NPVVJD
RToKLSAgICAgICAgICAgICAgICAjIERvbid0IGtub3cgd2hhdCB0aGlzIGlzLgotICAgICAgICAg
ICAgICAgIHJldHVybiBOb25lCi0gICAgICAgIGVsc2U6Ci0gICAgICAgICAgICBmbiA9IG9zLnBh
dGguam9pbihwdGgsIG5hbWUucnBhcnRpdGlvbigiLiIpWzJdICsgIi5weSIpCi0KLSAgICAgICAg
Zm5fcHlwYXRoID0gcHkucGF0aC5sb2NhbChmbikKLSAgICAgICAgaWYgbm90IHNlbGYuX3Nob3Vs
ZF9yZXdyaXRlKG5hbWUsIGZuX3B5cGF0aCwgc3RhdGUpOgotICAgICAgICAgICAgcmV0dXJuIE5v
bmUKLQotICAgICAgICBzZWxmLl9yZXdyaXR0ZW5fbmFtZXMuYWRkKG5hbWUpCi0KLSAgICAgICAg
IyBUaGUgcmVxdWVzdGVkIG1vZHVsZSBsb29rcyBsaWtlIGEgdGVzdCBmaWxlLCBzbyByZXdyaXRl
IGl0LiBUaGlzIGlzCi0gICAgICAgICMgdGhlIG1vc3QgbWFnaWNhbCBwYXJ0IG9mIHRoZSBwcm9j
ZXNzOiBsb2FkIHRoZSBzb3VyY2UsIHJld3JpdGUgdGhlCi0gICAgICAgICMgYXNzZXJ0cywgYW5k
IGxvYWQgdGhlIHJld3JpdHRlbiBzb3VyY2UuIFdlIGFsc28gY2FjaGUgdGhlIHJld3JpdHRlbgot
ICAgICAgICAjIG1vZHVsZSBjb2RlIGluIGEgc3BlY2lhbCBweWMuIFdlIG11c3QgYmUgYXdhcmUg
b2YgdGhlIHBvc3NpYmlsaXR5IG9mCi0gICAgICAgICMgY29uY3VycmVudCBweXRlc3QgcHJvY2Vz
c2VzIHJld3JpdGluZyBhbmQgbG9hZGluZyBweWNzLiBUbyBhdm9pZAotICAgICAgICAjIHRyaWNr
eSByYWNlIGNvbmRpdGlvbnMsIHdlIG1haW50YWluIHRoZSBmb2xsb3dpbmcgaW52YXJpYW50OiBU
aGUKLSAgICAgICAgIyBjYWNoZWQgcHljIGlzIGFsd2F5cyBhIGNvbXBsZXRlLCB2YWxpZCBweWMu
IE9wZXJhdGlvbnMgb24gaXQgbXVzdCBiZQotICAgICAgICAjIGF0b21pYy4gUE9TSVgncyBhdG9t
aWMgcmVuYW1lIGNvbWVzIGluIGhhbmR5LgotICAgICAgICB3cml0ZSA9IG5vdCBzeXMuZG9udF93
cml0ZV9ieXRlY29kZQotICAgICAgICBjYWNoZV9kaXIgPSBvcy5wYXRoLmpvaW4oZm5fcHlwYXRo
LmRpcm5hbWUsICJfX3B5Y2FjaGVfXyIpCi0gICAgICAgIGlmIHdyaXRlOgotICAgICAgICAgICAg
dHJ5OgotICAgICAgICAgICAgICAgIG9zLm1rZGlyKGNhY2hlX2RpcikKLSAgICAgICAgICAgIGV4
Y2VwdCBPU0Vycm9yOgotICAgICAgICAgICAgICAgIGUgPSBzeXMuZXhjX2luZm8oKVsxXS5lcnJu
bwotICAgICAgICAgICAgICAgIGlmIGUgPT0gZXJybm8uRUVYSVNUOgotICAgICAgICAgICAgICAg
ICAgICAjIEVpdGhlciB0aGUgX19weWNhY2hlX18gZGlyZWN0b3J5IGFscmVhZHkgZXhpc3RzICh0
aGUKLSAgICAgICAgICAgICAgICAgICAgIyBjb21tb24gY2FzZSkgb3IgaXQncyBibG9ja2VkIGJ5
IGEgbm9uLWRpciBub2RlLiBJbiB0aGUKLSAgICAgICAgICAgICAgICAgICAgIyBsYXR0ZXIgY2Fz
ZSwgd2UnbGwgaWdub3JlIGl0IGluIF93cml0ZV9weWMuCi0gICAgICAgICAgICAgICAgICAgIHBh
c3MKLSAgICAgICAgICAgICAgICBlbGlmIGUgaW4gW2Vycm5vLkVOT0VOVCwgZXJybm8uRU5PVERJ
Ul06Ci0gICAgICAgICAgICAgICAgICAgICMgT25lIG9mIHRoZSBwYXRoIGNvbXBvbmVudHMgd2Fz
IG5vdCBhIGRpcmVjdG9yeSwgbGlrZWx5Ci0gICAgICAgICAgICAgICAgICAgICMgYmVjYXVzZSB3
ZSdyZSBpbiBhIHppcCBmaWxlLgotICAgICAgICAgICAgICAgICAgICB3cml0ZSA9IEZhbHNlCi0g
ICAgICAgICAgICAgICAgZWxpZiBlIGluIFtlcnJuby5FQUNDRVMsIGVycm5vLkVST0ZTLCBlcnJu
by5FUEVSTV06Ci0gICAgICAgICAgICAgICAgICAgIHN0YXRlLnRyYWNlKCJyZWFkIG9ubHkgZGly
ZWN0b3J5OiAlciIgJSBmbl9weXBhdGguZGlybmFtZSkKLSAgICAgICAgICAgICAgICAgICAgd3Jp
dGUgPSBGYWxzZQotICAgICAgICAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAgICAgICAgIHJh
aXNlCi0gICAgICAgIGNhY2hlX25hbWUgPSBmbl9weXBhdGguYmFzZW5hbWVbOi0zXSArIFBZQ19U
QUlMCi0gICAgICAgIHB5YyA9IG9zLnBhdGguam9pbihjYWNoZV9kaXIsIGNhY2hlX25hbWUpCi0g
ICAgICAgICMgTm90aWNlIHRoYXQgZXZlbiBpZiB3ZSdyZSBpbiBhIHJlYWQtb25seSBkaXJlY3Rv
cnksIEknbSBnb2luZwotICAgICAgICAjIHRvIGNoZWNrIGZvciBhIGNhY2hlZCBweWMuIFRoaXMg
bWF5IG5vdCBiZSBvcHRpbWFsLi4uCi0gICAgICAgIGNvID0gX3JlYWRfcHljKGZuX3B5cGF0aCwg
cHljLCBzdGF0ZS50cmFjZSkKLSAgICAgICAgaWYgY28gaXMgTm9uZToKLSAgICAgICAgICAgIHN0
YXRlLnRyYWNlKCJyZXdyaXRpbmcgJXIiICUgKGZuLCkpCi0gICAgICAgICAgICBzb3VyY2Vfc3Rh
dCwgY28gPSBfcmV3cml0ZV90ZXN0KHNlbGYuY29uZmlnLCBmbl9weXBhdGgpCi0gICAgICAgICAg
ICBpZiBjbyBpcyBOb25lOgotICAgICAgICAgICAgICAgICMgUHJvYmFibHkgYSBTeW50YXhFcnJv
ciBpbiB0aGUgdGVzdC4KLSAgICAgICAgICAgICAgICByZXR1cm4gTm9uZQotICAgICAgICAgICAg
aWYgd3JpdGU6Ci0gICAgICAgICAgICAgICAgX21ha2VfcmV3cml0dGVuX3B5YyhzdGF0ZSwgc291
cmNlX3N0YXQsIHB5YywgY28pCi0gICAgICAgIGVsc2U6Ci0gICAgICAgICAgICBzdGF0ZS50cmFj
ZSgiZm91bmQgY2FjaGVkIHJld3JpdHRlbiBweWMgZm9yICVyIiAlIChmbiwpKQotICAgICAgICBz
ZWxmLm1vZHVsZXNbbmFtZV0gPSBjbywgcHljCi0gICAgICAgIHJldHVybiBzZWxmCi0KLSAgICBk
ZWYgX3Nob3VsZF9yZXdyaXRlKHNlbGYsIG5hbWUsIGZuX3B5cGF0aCwgc3RhdGUpOgotICAgICAg
ICAjIGFsd2F5cyByZXdyaXRlIGNvbmZ0ZXN0IGZpbGVzCi0gICAgICAgIGZuID0gc3RyKGZuX3B5
cGF0aCkKLSAgICAgICAgaWYgZm5fcHlwYXRoLmJhc2VuYW1lID09ICdjb25mdGVzdC5weSc6Ci0g
ICAgICAgICAgICBzdGF0ZS50cmFjZSgicmV3cml0aW5nIGNvbmZ0ZXN0IGZpbGU6ICVyIiAlIChm
biwpKQotICAgICAgICAgICAgcmV0dXJuIFRydWUKLQotICAgICAgICBpZiBzZWxmLnNlc3Npb24g
aXMgbm90IE5vbmU6Ci0gICAgICAgICAgICBpZiBzZWxmLnNlc3Npb24uaXNpbml0cGF0aChmbik6
Ci0gICAgICAgICAgICAgICAgc3RhdGUudHJhY2UoIm1hdGNoZWQgdGVzdCBmaWxlICh3YXMgc3Bl
Y2lmaWVkIG9uIGNtZGxpbmUpOiAlciIgJQotICAgICAgICAgICAgICAgICAgICAgICAgICAgIChm
biwpKQotICAgICAgICAgICAgICAgIHJldHVybiBUcnVlCi0KLSAgICAgICAgIyBtb2R1bGVzIG5v
dCBwYXNzZWQgZXhwbGljaXRseSBvbiB0aGUgY29tbWFuZCBsaW5lIGFyZSBvbmx5Ci0gICAgICAg
ICMgcmV3cml0dGVuIGlmIHRoZXkgbWF0Y2ggdGhlIG5hbWluZyBjb252ZW50aW9uIGZvciB0ZXN0
IGZpbGVzCi0gICAgICAgIGZvciBwYXQgaW4gc2VsZi5mbnBhdHM6Ci0gICAgICAgICAgICBpZiBm
bl9weXBhdGguZm5tYXRjaChwYXQpOgotICAgICAgICAgICAgICAgIHN0YXRlLnRyYWNlKCJtYXRj
aGVkIHRlc3QgZmlsZSAlciIgJSAoZm4sKSkKLSAgICAgICAgICAgICAgICByZXR1cm4gVHJ1ZQot
Ci0gICAgICAgIGZvciBtYXJrZWQgaW4gc2VsZi5fbXVzdF9yZXdyaXRlOgotICAgICAgICAgICAg
aWYgbmFtZSA9PSBtYXJrZWQgb3IgbmFtZS5zdGFydHN3aXRoKG1hcmtlZCArICcuJyk6Ci0gICAg
ICAgICAgICAgICAgc3RhdGUudHJhY2UoIm1hdGNoZWQgbWFya2VkIGZpbGUgJXIgKGZyb20gJXIp
IiAlIChuYW1lLCBtYXJrZWQpKQotICAgICAgICAgICAgICAgIHJldHVybiBUcnVlCi0KLSAgICAg
ICAgcmV0dXJuIEZhbHNlCi0KLSAgICBkZWYgbWFya19yZXdyaXRlKHNlbGYsICpuYW1lcyk6Ci0g
ICAgICAgICIiIk1hcmsgaW1wb3J0IG5hbWVzIGFzIG5lZWRpbmcgdG8gYmUgcmV3cml0dGVuLgot
Ci0gICAgICAgIFRoZSBuYW1lZCBtb2R1bGUgb3IgcGFja2FnZSBhcyB3ZWxsIGFzIGFueSBuZXN0
ZWQgbW9kdWxlcyB3aWxsCi0gICAgICAgIGJlIHJld3JpdHRlbiBvbiBpbXBvcnQuCi0gICAgICAg
ICIiIgotICAgICAgICBhbHJlYWR5X2ltcG9ydGVkID0gc2V0KG5hbWVzKS5pbnRlcnNlY3Rpb24o
c2V0KHN5cy5tb2R1bGVzKSkKLSAgICAgICAgaWYgYWxyZWFkeV9pbXBvcnRlZDoKLSAgICAgICAg
ICAgIGZvciBuYW1lIGluIGFscmVhZHlfaW1wb3J0ZWQ6Ci0gICAgICAgICAgICAgICAgaWYgbmFt
ZSBub3QgaW4gc2VsZi5fcmV3cml0dGVuX25hbWVzOgotICAgICAgICAgICAgICAgICAgICBzZWxm
Ll93YXJuX2FscmVhZHlfaW1wb3J0ZWQobmFtZSkKLSAgICAgICAgc2VsZi5fbXVzdF9yZXdyaXRl
LnVwZGF0ZShuYW1lcykKLQotICAgIGRlZiBfd2Fybl9hbHJlYWR5X2ltcG9ydGVkKHNlbGYsIG5h
bWUpOgotICAgICAgICBzZWxmLmNvbmZpZy53YXJuKAotICAgICAgICAgICAgJ1AxJywKLSAgICAg
ICAgICAgICdNb2R1bGUgYWxyZWFkeSBpbXBvcnRlZCBzbyBjYW5ub3QgYmUgcmV3cml0dGVuOiAl
cycgJSBuYW1lKQotCi0gICAgZGVmIGxvYWRfbW9kdWxlKHNlbGYsIG5hbWUpOgotICAgICAgICAj
IElmIHRoZXJlIGlzIGFuIGV4aXN0aW5nIG1vZHVsZSBvYmplY3QgbmFtZWQgJ2Z1bGxuYW1lJyBp
bgotICAgICAgICAjIHN5cy5tb2R1bGVzLCB0aGUgbG9hZGVyIG11c3QgdXNlIHRoYXQgZXhpc3Rp
bmcgbW9kdWxlLiAoT3RoZXJ3aXNlLAotICAgICAgICAjIHRoZSByZWxvYWQoKSBidWlsdGluIHdp
bGwgbm90IHdvcmsgY29ycmVjdGx5LikKLSAgICAgICAgaWYgbmFtZSBpbiBzeXMubW9kdWxlczoK
LSAgICAgICAgICAgIHJldHVybiBzeXMubW9kdWxlc1tuYW1lXQotCi0gICAgICAgIGNvLCBweWMg
PSBzZWxmLm1vZHVsZXMucG9wKG5hbWUpCi0gICAgICAgICMgSSB3aXNoIEkgY291bGQganVzdCBj
YWxsIGltcC5sb2FkX2NvbXBpbGVkIGhlcmUsIGJ1dCBfX2ZpbGVfXyBoYXMgdG8KLSAgICAgICAg
IyBiZSBzZXQgcHJvcGVybHkuIEluIFB5dGhvbiAzLjIrLCB0aGlzIGFsbCB3b3VsZCBiZSBoYW5k
bGVkIGNvcnJlY3RseQotICAgICAgICAjIGJ5IGxvYWRfY29tcGlsZWQuCi0gICAgICAgIG1vZCA9
IHN5cy5tb2R1bGVzW25hbWVdID0gaW1wLm5ld19tb2R1bGUobmFtZSkKLSAgICAgICAgdHJ5Ogot
ICAgICAgICAgICAgbW9kLl9fZmlsZV9fID0gY28uY29fZmlsZW5hbWUKLSAgICAgICAgICAgICMg
Tm9ybWFsbHksIHRoaXMgYXR0cmlidXRlIGlzIDMuMisuCi0gICAgICAgICAgICBtb2QuX19jYWNo
ZWRfXyA9IHB5YwotICAgICAgICAgICAgbW9kLl9fbG9hZGVyX18gPSBzZWxmCi0gICAgICAgICAg
ICBweS5idWlsdGluLmV4ZWNfKGNvLCBtb2QuX19kaWN0X18pCi0gICAgICAgIGV4Y2VwdDogICMg
bm9xYQotICAgICAgICAgICAgaWYgbmFtZSBpbiBzeXMubW9kdWxlczoKLSAgICAgICAgICAgICAg
ICBkZWwgc3lzLm1vZHVsZXNbbmFtZV0KLSAgICAgICAgICAgIHJhaXNlCi0gICAgICAgIHJldHVy
biBzeXMubW9kdWxlc1tuYW1lXQotCi0gICAgZGVmIGlzX3BhY2thZ2Uoc2VsZiwgbmFtZSk6Ci0g
ICAgICAgIHRyeToKLSAgICAgICAgICAgIGZkLCBmbiwgZGVzYyA9IGltcC5maW5kX21vZHVsZShu
YW1lKQotICAgICAgICBleGNlcHQgSW1wb3J0RXJyb3I6Ci0gICAgICAgICAgICByZXR1cm4gRmFs
c2UKLSAgICAgICAgaWYgZmQgaXMgbm90IE5vbmU6Ci0gICAgICAgICAgICBmZC5jbG9zZSgpCi0g
ICAgICAgIHRwID0gZGVzY1syXQotICAgICAgICByZXR1cm4gdHAgPT0gaW1wLlBLR19ESVJFQ1RP
UlkKLQotICAgIEBjbGFzc21ldGhvZAotICAgIGRlZiBfcmVnaXN0ZXJfd2l0aF9wa2dfcmVzb3Vy
Y2VzKGNscyk6Ci0gICAgICAgICIiIgotICAgICAgICBFbnN1cmUgcGFja2FnZSByZXNvdXJjZXMg
Y2FuIGJlIGxvYWRlZCBmcm9tIHRoaXMgbG9hZGVyLiBNYXkgYmUgY2FsbGVkCi0gICAgICAgIG11
bHRpcGxlIHRpbWVzLCBhcyB0aGUgb3BlcmF0aW9uIGlzIGlkZW1wb3RlbnQuCi0gICAgICAgICIi
IgotICAgICAgICB0cnk6Ci0gICAgICAgICAgICBpbXBvcnQgcGtnX3Jlc291cmNlcwotICAgICAg
ICAgICAgIyBhY2Nlc3MgYW4gYXR0cmlidXRlIGluIGNhc2UgYSBkZWZlcnJlZCBpbXBvcnRlciBp
cyBwcmVzZW50Ci0gICAgICAgICAgICBwa2dfcmVzb3VyY2VzLl9fbmFtZV9fCi0gICAgICAgIGV4
Y2VwdCBJbXBvcnRFcnJvcjoKLSAgICAgICAgICAgIHJldHVybgotCi0gICAgICAgICMgU2luY2Ug
cHl0ZXN0IHRlc3RzIGFyZSBhbHdheXMgbG9jYXRlZCBpbiB0aGUgZmlsZSBzeXN0ZW0sIHRoZQot
ICAgICAgICAjICBEZWZhdWx0UHJvdmlkZXIgaXMgYXBwcm9wcmlhdGUuCi0gICAgICAgIHBrZ19y
ZXNvdXJjZXMucmVnaXN0ZXJfbG9hZGVyX3R5cGUoY2xzLCBwa2dfcmVzb3VyY2VzLkRlZmF1bHRQ
cm92aWRlcikKLQotICAgIGRlZiBnZXRfZGF0YShzZWxmLCBwYXRobmFtZSk6Ci0gICAgICAgICIi
Ik9wdGlvbmFsIFBFUDMwMiBnZXRfZGF0YSBBUEkuCi0gICAgICAgICIiIgotICAgICAgICB3aXRo
IG9wZW4ocGF0aG5hbWUsICdyYicpIGFzIGY6Ci0gICAgICAgICAgICByZXR1cm4gZi5yZWFkKCkK
LQotCi1kZWYgX3dyaXRlX3B5YyhzdGF0ZSwgY28sIHNvdXJjZV9zdGF0LCBweWMpOgotICAgICMg
VGVjaG5pY2FsbHksIHdlIGRvbid0IGhhdmUgdG8gaGF2ZSB0aGUgc2FtZSBweWMgZm9ybWF0IGFz
Ci0gICAgIyAoQylQeXRob24sIHNpbmNlIHRoZXNlICJweWNzIiBzaG91bGQgbmV2ZXIgYmUgc2Vl
biBieSBidWlsdGluCi0gICAgIyBpbXBvcnQuIEhvd2V2ZXIsIHRoZXJlJ3MgbGl0dGxlIHJlYXNv
biBkZXZpYXRlLCBhbmQgSSBob3BlCi0gICAgIyBzb21ldGltZSB0byBiZSBhYmxlIHRvIHVzZSBp
bXAubG9hZF9jb21waWxlZCB0byBsb2FkIHRoZW0uIChTZWUKLSAgICAjIHRoZSBjb21tZW50IGlu
IGxvYWRfbW9kdWxlIGFib3ZlLikKLSAgICB0cnk6Ci0gICAgICAgIGZwID0gb3BlbihweWMsICJ3
YiIpCi0gICAgZXhjZXB0IElPRXJyb3I6Ci0gICAgICAgIGVyciA9IHN5cy5leGNfaW5mbygpWzFd
LmVycm5vCi0gICAgICAgIHN0YXRlLnRyYWNlKCJlcnJvciB3cml0aW5nIHB5YyBmaWxlIGF0ICVz
OiBlcnJubz0lcyIgJSAocHljLCBlcnIpKQotICAgICAgICAjIHdlIGlnbm9yZSBhbnkgZmFpbHVy
ZSB0byB3cml0ZSB0aGUgY2FjaGUgZmlsZQotICAgICAgICAjIHRoZXJlIGFyZSBtYW55IHJlYXNv
bnMsIHBlcm1pc3Npb24tZGVuaWVkLCBfX3B5Y2FjaGVfXyBiZWluZyBhCi0gICAgICAgICMgZmls
ZSBldGMuCi0gICAgICAgIHJldHVybiBGYWxzZQotICAgIHRyeToKLSAgICAgICAgZnAud3JpdGUo
aW1wLmdldF9tYWdpYygpKQotICAgICAgICBtdGltZSA9IGludChzb3VyY2Vfc3RhdC5tdGltZSkK
LSAgICAgICAgc2l6ZSA9IHNvdXJjZV9zdGF0LnNpemUgJiAweEZGRkZGRkZGCi0gICAgICAgIGZw
LndyaXRlKHN0cnVjdC5wYWNrKCI8bGwiLCBtdGltZSwgc2l6ZSkpCi0gICAgICAgIG1hcnNoYWwu
ZHVtcChjbywgZnApCi0gICAgZmluYWxseToKLSAgICAgICAgZnAuY2xvc2UoKQotICAgIHJldHVy
biBUcnVlCi0KLQotUk4gPSAiXHJcbiIuZW5jb2RlKCJ1dGYtOCIpCi1OID0gIlxuIi5lbmNvZGUo
InV0Zi04IikKLQotY29va2llX3JlID0gcmUuY29tcGlsZShyIl5bIFx0XGZdKiMuKmNvZGluZ1s6
PV1bIFx0XSpbLVx3Ll0rIikKLUJPTV9VVEY4ID0gJ1x4ZWZceGJiXHhiZicKLQotCi1kZWYgX3Jl
d3JpdGVfdGVzdChjb25maWcsIGZuKToKLSAgICAiIiJUcnkgdG8gcmVhZCBhbmQgcmV3cml0ZSAq
Zm4qIGFuZCByZXR1cm4gdGhlIGNvZGUgb2JqZWN0LiIiIgotICAgIHN0YXRlID0gY29uZmlnLl9h
c3NlcnRzdGF0ZQotICAgIHRyeToKLSAgICAgICAgc3RhdCA9IGZuLnN0YXQoKQotICAgICAgICBz
b3VyY2UgPSBmbi5yZWFkKCJyYiIpCi0gICAgZXhjZXB0IEVudmlyb25tZW50RXJyb3I6Ci0gICAg
ICAgIHJldHVybiBOb25lLCBOb25lCi0gICAgaWYgQVNDSUlfSVNfREVGQVVMVF9FTkNPRElORzoK
LSAgICAgICAgIyBBU0NJSSBpcyB0aGUgZGVmYXVsdCBlbmNvZGluZyBpbiBQeXRob24gMi4gV2l0
aG91dCBhIGNvZGluZwotICAgICAgICAjIGRlY2xhcmF0aW9uLCBQeXRob24gMiB3aWxsIGNvbXBs
YWluIGFib3V0IGFueSBieXRlcyBpbiB0aGUgZmlsZQotICAgICAgICAjIG91dHNpZGUgdGhlIEFT
Q0lJIHJhbmdlLiBTYWRseSwgdGhpcyBiZWhhdmlvciBkb2VzIG5vdCBleHRlbmQgdG8KLSAgICAg
ICAgIyBjb21waWxlKCkgb3IgYXN0LnBhcnNlKCksIHdoaWNoIHByZWZlciB0byBpbnRlcnByZXQg
dGhlIGJ5dGVzIGFzCi0gICAgICAgICMgbGF0aW4tMS4gKEF0IGxlYXN0IHRoZXkgcHJvcGVybHkg
aGFuZGxlIGV4cGxpY2l0IGNvZGluZyBjb29raWVzLikgVG8KLSAgICAgICAgIyBwcmVzZXJ2ZSB0
aGlzIGVycm9yIGJlaGF2aW9yLCB3ZSBjb3VsZCBmb3JjZSBhc3QucGFyc2UoKSB0byB1c2UgQVND
SUkKLSAgICAgICAgIyBhcyB0aGUgZW5jb2RpbmcgYnkgaW5zZXJ0aW5nIGEgY29kaW5nIGNvb2tp
ZS4gVW5mb3J0dW5hdGVseSwgdGhhdAotICAgICAgICAjIG1lc3NlcyB1cCBsaW5lIG51bWJlcnMu
IFRodXMsIHdlIGhhdmUgdG8gY2hlY2sgb3Vyc2VsdmVzIGlmIGFueXRoaW5nCi0gICAgICAgICMg
aXMgb3V0c2lkZSB0aGUgQVNDSUkgcmFuZ2UgaW4gdGhlIGNhc2Ugbm8gZW5jb2RpbmcgaXMgZXhw
bGljaXRseQotICAgICAgICAjIGRlY2xhcmVkLiBGb3IgbW9yZSBjb250ZXh0LCBzZWUgaXNzdWUg
IzI2OS4gWWF5IGZvciBQeXRob24gMyB3aGljaAotICAgICAgICAjIGdldHMgdGhpcyByaWdodC4K
LSAgICAgICAgZW5kMSA9IHNvdXJjZS5maW5kKCJcbiIpCi0gICAgICAgIGVuZDIgPSBzb3VyY2Uu
ZmluZCgiXG4iLCBlbmQxICsgMSkKLSAgICAgICAgaWYgKG5vdCBzb3VyY2Uuc3RhcnRzd2l0aChC
T01fVVRGOCkgYW5kCi0gICAgICAgICAgICBjb29raWVfcmUubWF0Y2goc291cmNlWzA6ZW5kMV0p
IGlzIE5vbmUgYW5kCi0gICAgICAgICAgICAgICAgY29va2llX3JlLm1hdGNoKHNvdXJjZVtlbmQx
ICsgMTplbmQyXSkgaXMgTm9uZSk6Ci0gICAgICAgICAgICBpZiBoYXNhdHRyKHN0YXRlLCAiX2lu
ZGVjb2RlIik6Ci0gICAgICAgICAgICAgICAgIyBlbmNvZGluZ3MgaW1wb3J0ZWQgdXMgYWdhaW4s
IHNvIGRvbid0IHJld3JpdGUuCi0gICAgICAgICAgICAgICAgcmV0dXJuIE5vbmUsIE5vbmUKLSAg
ICAgICAgICAgIHN0YXRlLl9pbmRlY29kZSA9IFRydWUKLSAgICAgICAgICAgIHRyeToKLSAgICAg
ICAgICAgICAgICB0cnk6Ci0gICAgICAgICAgICAgICAgICAgIHNvdXJjZS5kZWNvZGUoImFzY2lp
IikKLSAgICAgICAgICAgICAgICBleGNlcHQgVW5pY29kZURlY29kZUVycm9yOgotICAgICAgICAg
ICAgICAgICAgICAjIExldCBpdCBmYWlsIGluIHJlYWwgaW1wb3J0LgotICAgICAgICAgICAgICAg
ICAgICByZXR1cm4gTm9uZSwgTm9uZQotICAgICAgICAgICAgZmluYWxseToKLSAgICAgICAgICAg
ICAgICBkZWwgc3RhdGUuX2luZGVjb2RlCi0gICAgdHJ5OgotICAgICAgICB0cmVlID0gYXN0LnBh
cnNlKHNvdXJjZSkKLSAgICBleGNlcHQgU3ludGF4RXJyb3I6Ci0gICAgICAgICMgTGV0IHRoaXMg
cG9wIHVwIGFnYWluIGluIHRoZSByZWFsIGltcG9ydC4KLSAgICAgICAgc3RhdGUudHJhY2UoImZh
aWxlZCB0byBwYXJzZTogJXIiICUgKGZuLCkpCi0gICAgICAgIHJldHVybiBOb25lLCBOb25lCi0g
ICAgcmV3cml0ZV9hc3NlcnRzKHRyZWUsIGZuLCBjb25maWcpCi0gICAgdHJ5OgotICAgICAgICBj
byA9IGNvbXBpbGUodHJlZSwgZm4uc3RycGF0aCwgImV4ZWMiLCBkb250X2luaGVyaXQ9VHJ1ZSkK
LSAgICBleGNlcHQgU3ludGF4RXJyb3I6Ci0gICAgICAgICMgSXQncyBwb3NzaWJsZSB0aGF0IHRo
aXMgZXJyb3IgaXMgZnJvbSBzb21lIGJ1ZyBpbiB0aGUKLSAgICAgICAgIyBhc3NlcnRpb24gcmV3
cml0aW5nLCBidXQgSSBkb24ndCBrbm93IG9mIGEgZmFzdCB3YXkgdG8gdGVsbC4KLSAgICAgICAg
c3RhdGUudHJhY2UoImZhaWxlZCB0byBjb21waWxlOiAlciIgJSAoZm4sKSkKLSAgICAgICAgcmV0
dXJuIE5vbmUsIE5vbmUKLSAgICByZXR1cm4gc3RhdCwgY28KLQotCi1kZWYgX21ha2VfcmV3cml0
dGVuX3B5YyhzdGF0ZSwgc291cmNlX3N0YXQsIHB5YywgY28pOgotICAgICIiIlRyeSB0byBkdW1w
IHJld3JpdHRlbiBjb2RlIHRvICpweWMqLiIiIgotICAgIGlmIHN5cy5wbGF0Zm9ybS5zdGFydHN3
aXRoKCJ3aW4iKToKLSAgICAgICAgIyBXaW5kb3dzIGdyYW50cyBleGNsdXNpdmUgYWNjZXNzIHRv
IG9wZW4gZmlsZXMgYW5kIGRvZXNuJ3QgaGF2ZSBhdG9taWMKLSAgICAgICAgIyByZW5hbWUsIHNv
IGp1c3Qgd3JpdGUgaW50byB0aGUgZmluYWwgZmlsZS4KLSAgICAgICAgX3dyaXRlX3B5YyhzdGF0
ZSwgY28sIHNvdXJjZV9zdGF0LCBweWMpCi0gICAgZWxzZToKLSAgICAgICAgIyBXaGVuIG5vdCBv
biB3aW5kb3dzLCBhc3N1bWUgcmVuYW1lIGlzIGF0b21pYy4gRHVtcCB0aGUgY29kZSBvYmplY3QK
LSAgICAgICAgIyBpbnRvIGEgZmlsZSBzcGVjaWZpYyB0byB0aGlzIHByb2Nlc3MgYW5kIGF0b21p
Y2FsbHkgcmVwbGFjZSBpdC4KLSAgICAgICAgcHJvY19weWMgPSBweWMgKyAiLiIgKyBzdHIob3Mu
Z2V0cGlkKCkpCi0gICAgICAgIGlmIF93cml0ZV9weWMoc3RhdGUsIGNvLCBzb3VyY2Vfc3RhdCwg
cHJvY19weWMpOgotICAgICAgICAgICAgb3MucmVuYW1lKHByb2NfcHljLCBweWMpCi0KLQotZGVm
IF9yZWFkX3B5Yyhzb3VyY2UsIHB5YywgdHJhY2U9bGFtYmRhIHg6IE5vbmUpOgotICAgICIiIlBv
c3NpYmx5IHJlYWQgYSBweXRlc3QgcHljIGNvbnRhaW5pbmcgcmV3cml0dGVuIGNvZGUuCi0KLSAg
ICBSZXR1cm4gcmV3cml0dGVuIGNvZGUgaWYgc3VjY2Vzc2Z1bCBvciBOb25lIGlmIG5vdC4KLSAg
ICAiIiIKLSAgICB0cnk6Ci0gICAgICAgIGZwID0gb3BlbihweWMsICJyYiIpCi0gICAgZXhjZXB0
IElPRXJyb3I6Ci0gICAgICAgIHJldHVybiBOb25lCi0gICAgd2l0aCBmcDoKLSAgICAgICAgdHJ5
OgotICAgICAgICAgICAgbXRpbWUgPSBpbnQoc291cmNlLm10aW1lKCkpCi0gICAgICAgICAgICBz
aXplID0gc291cmNlLnNpemUoKQotICAgICAgICAgICAgZGF0YSA9IGZwLnJlYWQoMTIpCi0gICAg
ICAgIGV4Y2VwdCBFbnZpcm9ubWVudEVycm9yIGFzIGU6Ci0gICAgICAgICAgICB0cmFjZSgnX3Jl
YWRfcHljKCVzKTogRW52aXJvbm1lbnRFcnJvciAlcycgJSAoc291cmNlLCBlKSkKLSAgICAgICAg
ICAgIHJldHVybiBOb25lCi0gICAgICAgICMgQ2hlY2sgZm9yIGludmFsaWQgb3Igb3V0IG9mIGRh
dGUgcHljIGZpbGUuCi0gICAgICAgIGlmIChsZW4oZGF0YSkgIT0gMTIgb3IgZGF0YVs6NF0gIT0g
aW1wLmdldF9tYWdpYygpIG9yCi0gICAgICAgICAgICAgICAgc3RydWN0LnVucGFjaygiPGxsIiwg
ZGF0YVs0Ol0pICE9IChtdGltZSwgc2l6ZSkpOgotICAgICAgICAgICAgdHJhY2UoJ19yZWFkX3B5
Yyglcyk6IGludmFsaWQgb3Igb3V0IG9mIGRhdGUgcHljJyAlIHNvdXJjZSkKLSAgICAgICAgICAg
IHJldHVybiBOb25lCi0gICAgICAgIHRyeToKLSAgICAgICAgICAgIGNvID0gbWFyc2hhbC5sb2Fk
KGZwKQotICAgICAgICBleGNlcHQgRXhjZXB0aW9uIGFzIGU6Ci0gICAgICAgICAgICB0cmFjZSgn
X3JlYWRfcHljKCVzKTogbWFyc2hhbC5sb2FkIGVycm9yICVzJyAlIChzb3VyY2UsIGUpKQotICAg
ICAgICAgICAgcmV0dXJuIE5vbmUKLSAgICAgICAgaWYgbm90IGlzaW5zdGFuY2UoY28sIHR5cGVz
LkNvZGVUeXBlKToKLSAgICAgICAgICAgIHRyYWNlKCdfcmVhZF9weWMoJXMpOiBub3QgYSBjb2Rl
IG9iamVjdCcgJSBzb3VyY2UpCi0gICAgICAgICAgICByZXR1cm4gTm9uZQotICAgICAgICByZXR1
cm4gY28KLQotCi1kZWYgcmV3cml0ZV9hc3NlcnRzKG1vZCwgbW9kdWxlX3BhdGg9Tm9uZSwgY29u
ZmlnPU5vbmUpOgotICAgICIiIlJld3JpdGUgdGhlIGFzc2VydCBzdGF0ZW1lbnRzIGluIG1vZC4i
IiIKLSAgICBBc3NlcnRpb25SZXdyaXRlcihtb2R1bGVfcGF0aCwgY29uZmlnKS5ydW4obW9kKQot
Ci0KLWRlZiBfc2FmZXJlcHIob2JqKToKLSAgICAiIiJHZXQgYSBzYWZlIHJlcHIgb2YgYW4gb2Jq
ZWN0IGZvciBhc3NlcnRpb24gZXJyb3IgbWVzc2FnZXMuCi0KLSAgICBUaGUgYXNzZXJ0aW9uIGZv
cm1hdHRpbmcgKHV0aWwuZm9ybWF0X2V4cGxhbmF0aW9uKCkpIHJlcXVpcmVzCi0gICAgbmV3bGlu
ZXMgdG8gYmUgZXNjYXBlZCBzaW5jZSB0aGV5IGFyZSBhIHNwZWNpYWwgY2hhcmFjdGVyIGZvciBp
dC4KLSAgICBOb3JtYWxseSBhc3NlcnRpb24udXRpbC5mb3JtYXRfZXhwbGFuYXRpb24oKSBkb2Vz
IHRoaXMgYnV0IGZvciBhCi0gICAgY3VzdG9tIHJlcHIgaXQgaXMgcG9zc2libGUgdG8gY29udGFp
biBvbmUgb2YgdGhlIHNwZWNpYWwgZXNjYXBlCi0gICAgc2VxdWVuY2VzLCBlc3BlY2lhbGx5ICdc
bnsnIGFuZCAnXG59JyBhcmUgbGlrZWx5IHRvIGJlIHByZXNlbnQgaW4KLSAgICBKU09OIHJlcHJz
LgotCi0gICAgIiIiCi0gICAgcmVwciA9IHB5LmlvLnNhZmVyZXByKG9iaikKLSAgICBpZiBpc2lu
c3RhbmNlKHJlcHIsIHNpeC50ZXh0X3R5cGUpOgotICAgICAgICB0ID0gc2l4LnRleHRfdHlwZQot
ICAgIGVsc2U6Ci0gICAgICAgIHQgPSBzaXguYmluYXJ5X3R5cGUKLSAgICByZXR1cm4gcmVwci5y
ZXBsYWNlKHQoIlxuIiksIHQoIlxcbiIpKQotCi0KLWZyb20gX3B5dGVzdC5hc3NlcnRpb24udXRp
bCBpbXBvcnQgZm9ybWF0X2V4cGxhbmF0aW9uIGFzIF9mb3JtYXRfZXhwbGFuYXRpb24gICMgbm9x
YQotCi0KLWRlZiBfZm9ybWF0X2Fzc2VydG1zZyhvYmopOgotICAgICIiIkZvcm1hdCB0aGUgY3Vz
dG9tIGFzc2VydGlvbiBtZXNzYWdlIGdpdmVuLgotCi0gICAgRm9yIHN0cmluZ3MgdGhpcyBzaW1w
bHkgcmVwbGFjZXMgbmV3bGluZXMgd2l0aCAnXG5+JyBzbyB0aGF0Ci0gICAgdXRpbC5mb3JtYXRf
ZXhwbGFuYXRpb24oKSB3aWxsIHByZXNlcnZlIHRoZW0gaW5zdGVhZCBvZiBlc2NhcGluZwotICAg
IG5ld2xpbmVzLiAgRm9yIG90aGVyIG9iamVjdHMgcHkuaW8uc2FmZXJlcHIoKSBpcyB1c2VkIGZp
cnN0LgotCi0gICAgIiIiCi0gICAgIyByZXBybGliIGFwcGVhcnMgdG8gaGF2ZSBhIGJ1ZyB3aGlj
aCBtZWFucyB0aGF0IGlmIGEgc3RyaW5nCi0gICAgIyBjb250YWlucyBhIG5ld2xpbmUgaXQgZ2V0
cyBlc2NhcGVkLCBob3dldmVyIGlmIGFuIG9iamVjdCBoYXMgYQotICAgICMgLl9fcmVwcl9fKCkg
d2hpY2ggY29udGFpbnMgbmV3bGluZXMgaXQgZG9lcyBub3QgZ2V0IGVzY2FwZWQuCi0gICAgIyBI
b3dldmVyIGluIGVpdGhlciBjYXNlIHdlIHdhbnQgdG8gcHJlc2VydmUgdGhlIG5ld2xpbmUuCi0g
ICAgaWYgaXNpbnN0YW5jZShvYmosIHNpeC50ZXh0X3R5cGUpIG9yIGlzaW5zdGFuY2Uob2JqLCBz
aXguYmluYXJ5X3R5cGUpOgotICAgICAgICBzID0gb2JqCi0gICAgICAgIGlzX3JlcHIgPSBGYWxz
ZQotICAgIGVsc2U6Ci0gICAgICAgIHMgPSBweS5pby5zYWZlcmVwcihvYmopCi0gICAgICAgIGlz
X3JlcHIgPSBUcnVlCi0gICAgaWYgaXNpbnN0YW5jZShzLCBzaXgudGV4dF90eXBlKToKLSAgICAg
ICAgdCA9IHNpeC50ZXh0X3R5cGUKLSAgICBlbHNlOgotICAgICAgICB0ID0gc2l4LmJpbmFyeV90
eXBlCi0gICAgcyA9IHMucmVwbGFjZSh0KCJcbiIpLCB0KCJcbn4iKSkucmVwbGFjZSh0KCIlIiks
IHQoIiUlIikpCi0gICAgaWYgaXNfcmVwcjoKLSAgICAgICAgcyA9IHMucmVwbGFjZSh0KCJcXG4i
KSwgdCgiXG5+IikpCi0gICAgcmV0dXJuIHMKLQotCi1kZWYgX3Nob3VsZF9yZXByX2dsb2JhbF9u
YW1lKG9iaik6Ci0gICAgcmV0dXJuIG5vdCBoYXNhdHRyKG9iaiwgIl9fbmFtZV9fIikgYW5kIG5v
dCBjYWxsYWJsZShvYmopCi0KLQotZGVmIF9mb3JtYXRfYm9vbG9wKGV4cGxhbmF0aW9ucywgaXNf
b3IpOgotICAgIGV4cGxhbmF0aW9uID0gIigiICsgKGlzX29yIGFuZCAiIG9yICIgb3IgIiBhbmQg
Iikuam9pbihleHBsYW5hdGlvbnMpICsgIikiCi0gICAgaWYgaXNpbnN0YW5jZShleHBsYW5hdGlv
biwgc2l4LnRleHRfdHlwZSk6Ci0gICAgICAgIHQgPSBzaXgudGV4dF90eXBlCi0gICAgZWxzZToK
LSAgICAgICAgdCA9IHNpeC5iaW5hcnlfdHlwZQotICAgIHJldHVybiBleHBsYW5hdGlvbi5yZXBs
YWNlKHQoJyUnKSwgdCgnJSUnKSkKLQotCi1kZWYgX2NhbGxfcmVwcmNvbXBhcmUob3BzLCByZXN1
bHRzLCBleHBscywgZWFjaF9vYmopOgotICAgIGZvciBpLCByZXMsIGV4cGwgaW4gemlwKHJhbmdl
KGxlbihvcHMpKSwgcmVzdWx0cywgZXhwbHMpOgotICAgICAgICB0cnk6Ci0gICAgICAgICAgICBk
b25lID0gbm90IHJlcwotICAgICAgICBleGNlcHQgRXhjZXB0aW9uOgotICAgICAgICAgICAgZG9u
ZSA9IFRydWUKLSAgICAgICAgaWYgZG9uZToKLSAgICAgICAgICAgIGJyZWFrCi0gICAgaWYgdXRp
bC5fcmVwcmNvbXBhcmUgaXMgbm90IE5vbmU6Ci0gICAgICAgIGN1c3RvbSA9IHV0aWwuX3JlcHJj
b21wYXJlKG9wc1tpXSwgZWFjaF9vYmpbaV0sIGVhY2hfb2JqW2kgKyAxXSkKLSAgICAgICAgaWYg
Y3VzdG9tIGlzIG5vdCBOb25lOgotICAgICAgICAgICAgcmV0dXJuIGN1c3RvbQotICAgIHJldHVy
biBleHBsCi0KLQotdW5hcnlfbWFwID0gewotICAgIGFzdC5Ob3Q6ICJub3QgJXMiLAotICAgIGFz
dC5JbnZlcnQ6ICJ+JXMiLAotICAgIGFzdC5VU3ViOiAiLSVzIiwKLSAgICBhc3QuVUFkZDogIisl
cyIKLX0KLQotYmlub3BfbWFwID0gewotICAgIGFzdC5CaXRPcjogInwiLAotICAgIGFzdC5CaXRY
b3I6ICJeIiwKLSAgICBhc3QuQml0QW5kOiAiJiIsCi0gICAgYXN0LkxTaGlmdDogIjw8IiwKLSAg
ICBhc3QuUlNoaWZ0OiAiPj4iLAotICAgIGFzdC5BZGQ6ICIrIiwKLSAgICBhc3QuU3ViOiAiLSIs
Ci0gICAgYXN0Lk11bHQ6ICIqIiwKLSAgICBhc3QuRGl2OiAiLyIsCi0gICAgYXN0LkZsb29yRGl2
OiAiLy8iLAotICAgIGFzdC5Nb2Q6ICIlJSIsICAjIGVzY2FwZWQgZm9yIHN0cmluZyBmb3JtYXR0
aW5nCi0gICAgYXN0LkVxOiAiPT0iLAotICAgIGFzdC5Ob3RFcTogIiE9IiwKLSAgICBhc3QuTHQ6
ICI8IiwKLSAgICBhc3QuTHRFOiAiPD0iLAotICAgIGFzdC5HdDogIj4iLAotICAgIGFzdC5HdEU6
ICI+PSIsCi0gICAgYXN0LlBvdzogIioqIiwKLSAgICBhc3QuSXM6ICJpcyIsCi0gICAgYXN0Lklz
Tm90OiAiaXMgbm90IiwKLSAgICBhc3QuSW46ICJpbiIsCi0gICAgYXN0Lk5vdEluOiAibm90IGlu
IgotfQotIyBQeXRob24gMy41KyBjb21wYXRpYmlsaXR5Ci10cnk6Ci0gICAgYmlub3BfbWFwW2Fz
dC5NYXRNdWx0XSA9ICJAIgotZXhjZXB0IEF0dHJpYnV0ZUVycm9yOgotICAgIHBhc3MKLQotIyBQ
eXRob24gMy40KyBjb21wYXRpYmlsaXR5Ci1pZiBoYXNhdHRyKGFzdCwgIk5hbWVDb25zdGFudCIp
OgotICAgIF9OYW1lQ29uc3RhbnQgPSBhc3QuTmFtZUNvbnN0YW50Ci1lbHNlOgotICAgIGRlZiBf
TmFtZUNvbnN0YW50KGMpOgotICAgICAgICByZXR1cm4gYXN0Lk5hbWUoc3RyKGMpLCBhc3QuTG9h
ZCgpKQotCi0KLWRlZiBzZXRfbG9jYXRpb24obm9kZSwgbGluZW5vLCBjb2xfb2Zmc2V0KToKLSAg
ICAiIiJTZXQgbm9kZSBsb2NhdGlvbiBpbmZvcm1hdGlvbiByZWN1cnNpdmVseS4iIiIKLSAgICBk
ZWYgX2ZpeChub2RlLCBsaW5lbm8sIGNvbF9vZmZzZXQpOgotICAgICAgICBpZiAibGluZW5vIiBp
biBub2RlLl9hdHRyaWJ1dGVzOgotICAgICAgICAgICAgbm9kZS5saW5lbm8gPSBsaW5lbm8KLSAg
ICAgICAgaWYgImNvbF9vZmZzZXQiIGluIG5vZGUuX2F0dHJpYnV0ZXM6Ci0gICAgICAgICAgICBu
b2RlLmNvbF9vZmZzZXQgPSBjb2xfb2Zmc2V0Ci0gICAgICAgIGZvciBjaGlsZCBpbiBhc3QuaXRl
cl9jaGlsZF9ub2Rlcyhub2RlKToKLSAgICAgICAgICAgIF9maXgoY2hpbGQsIGxpbmVubywgY29s
X29mZnNldCkKLSAgICBfZml4KG5vZGUsIGxpbmVubywgY29sX29mZnNldCkKLSAgICByZXR1cm4g
bm9kZQotCi0KLWNsYXNzIEFzc2VydGlvblJld3JpdGVyKGFzdC5Ob2RlVmlzaXRvcik6Ci0gICAg
IiIiQXNzZXJ0aW9uIHJld3JpdGluZyBpbXBsZW1lbnRhdGlvbi4KLQotICAgIFRoZSBtYWluIGVu
dHJ5cG9pbnQgaXMgdG8gY2FsbCAucnVuKCkgd2l0aCBhbiBhc3QuTW9kdWxlIGluc3RhbmNlLAot
ICAgIHRoaXMgd2lsbCB0aGVuIGZpbmQgYWxsIHRoZSBhc3NlcnQgc3RhdGVtZW50cyBhbmQgcmV3
cml0ZSB0aGVtIHRvCi0gICAgcHJvdmlkZSBpbnRlcm1lZGlhdGUgdmFsdWVzIGFuZCBhIGRldGFp
bGVkIGFzc2VydGlvbiBlcnJvci4gIFNlZQotICAgIGh0dHA6Ly9weWJpdGVzLmJsb2dzcG90LmJl
LzIwMTEvMDcvYmVoaW5kLXNjZW5lcy1vZi1weXRlc3RzLW5ldy1hc3NlcnRpb24uaHRtbAotICAg
IGZvciBhbiBvdmVydmlldyBvZiBob3cgdGhpcyB3b3Jrcy4KLQotICAgIFRoZSBlbnRyeSBwb2lu
dCBoZXJlIGlzIC5ydW4oKSB3aGljaCB3aWxsIGl0ZXJhdGUgb3ZlciBhbGwgdGhlCi0gICAgc3Rh
dGVtZW50cyBpbiBhbiBhc3QuTW9kdWxlIGFuZCBmb3IgZWFjaCBhc3QuQXNzZXJ0IHN0YXRlbWVu
dCBpdAotICAgIGZpbmRzIGNhbGwgLnZpc2l0KCkgd2l0aCBpdC4gIFRoZW4gLnZpc2l0X0Fzc2Vy
dCgpIHRha2VzIG92ZXIgYW5kCi0gICAgaXMgcmVzcG9uc2libGUgZm9yIGNyZWF0aW5nIG5ldyBh
c3Qgc3RhdGVtZW50cyB0byByZXBsYWNlIHRoZQotICAgIG9yaWdpbmFsIGFzc2VydCBzdGF0ZW1l
bnQ6IGl0IHJld3JpdGVzIHRoZSB0ZXN0IG9mIGFuIGFzc2VydGlvbgotICAgIHRvIHByb3ZpZGUg
aW50ZXJtZWRpYXRlIHZhbHVlcyBhbmQgcmVwbGFjZSBpdCB3aXRoIGFuIGlmIHN0YXRlbWVudAot
ICAgIHdoaWNoIHJhaXNlcyBhbiBhc3NlcnRpb24gZXJyb3Igd2l0aCBhIGRldGFpbGVkIGV4cGxh
bmF0aW9uIGluCi0gICAgY2FzZSB0aGUgZXhwcmVzc2lvbiBpcyBmYWxzZS4KLQotICAgIEZvciB0
aGlzIC52aXNpdF9Bc3NlcnQoKSB1c2VzIHRoZSB2aXNpdG9yIHBhdHRlcm4gdG8gdmlzaXQgYWxs
IHRoZQotICAgIEFTVCBub2RlcyBvZiB0aGUgYXN0LkFzc2VydC50ZXN0IGZpZWxkLCBlYWNoIHZp
c2l0IGNhbGwgcmV0dXJuaW5nCi0gICAgYW4gQVNUIG5vZGUgYW5kIHRoZSBjb3JyZXNwb25kaW5n
IGV4cGxhbmF0aW9uIHN0cmluZy4gIER1cmluZyB0aGlzCi0gICAgc3RhdGUgaXMga2VwdCBpbiBz
ZXZlcmFsIGluc3RhbmNlIGF0dHJpYnV0ZXM6Ci0KLSAgICA6c3RhdGVtZW50czogQWxsIHRoZSBB
U1Qgc3RhdGVtZW50cyB3aGljaCB3aWxsIHJlcGxhY2UgdGhlIGFzc2VydAotICAgICAgIHN0YXRl
bWVudC4KLQotICAgIDp2YXJpYWJsZXM6IFRoaXMgaXMgcG9wdWxhdGVkIGJ5IC52YXJpYWJsZSgp
IHdpdGggZWFjaCB2YXJpYWJsZQotICAgICAgIHVzZWQgYnkgdGhlIHN0YXRlbWVudHMgc28gdGhh
dCB0aGV5IGNhbiBhbGwgYmUgc2V0IHRvIE5vbmUgYXQKLSAgICAgICB0aGUgZW5kIG9mIHRoZSBz
dGF0ZW1lbnRzLgotCi0gICAgOnZhcmlhYmxlX2NvdW50ZXI6IENvdW50ZXIgdG8gY3JlYXRlIG5l
dyB1bmlxdWUgdmFyaWFibGVzIG5lZWRlZAotICAgICAgIGJ5IHN0YXRlbWVudHMuICBWYXJpYWJs
ZXMgYXJlIGNyZWF0ZWQgdXNpbmcgLnZhcmlhYmxlKCkgYW5kCi0gICAgICAgaGF2ZSB0aGUgZm9y
bSBvZiAiQHB5X2Fzc2VydDAiLgotCi0gICAgOm9uX2ZhaWx1cmU6IFRoZSBBU1Qgc3RhdGVtZW50
cyB3aGljaCB3aWxsIGJlIGV4ZWN1dGVkIGlmIHRoZQotICAgICAgIGFzc2VydGlvbiB0ZXN0IGZh
aWxzLiAgVGhpcyBpcyB0aGUgY29kZSB3aGljaCB3aWxsIGNvbnN0cnVjdAotICAgICAgIHRoZSBm
YWlsdXJlIG1lc3NhZ2UgYW5kIHJhaXNlcyB0aGUgQXNzZXJ0aW9uRXJyb3IuCi0KLSAgICA6ZXhw
bGFuYXRpb25fc3BlY2lmaWVyczogQSBkaWN0IGZpbGxlZCBieSAuZXhwbGFuYXRpb25fcGFyYW0o
KQotICAgICAgIHdpdGggJS1mb3JtYXR0aW5nIHBsYWNlaG9sZGVycyBhbmQgdGhlaXIgY29ycmVz
cG9uZGluZwotICAgICAgIGV4cHJlc3Npb25zIHRvIHVzZSBpbiB0aGUgYnVpbGRpbmcgb2YgYW4g
YXNzZXJ0aW9uIG1lc3NhZ2UuCi0gICAgICAgVGhpcyBpcyB1c2VkIGJ5IC5wb3BfZm9ybWF0X2Nv
bnRleHQoKSB0byBidWlsZCBhIG1lc3NhZ2UuCi0KLSAgICA6c3RhY2s6IEEgc3RhY2sgb2YgdGhl
IGV4cGxhbmF0aW9uX3NwZWNpZmllcnMgZGljdHMgbWFpbnRhaW5lZCBieQotICAgICAgIC5wdXNo
X2Zvcm1hdF9jb250ZXh0KCkgYW5kIC5wb3BfZm9ybWF0X2NvbnRleHQoKSB3aGljaCBhbGxvd3MK
LSAgICAgICB0byBidWlsZCBhbm90aGVyICUtZm9ybWF0dGVkIHN0cmluZyB3aGlsZSBhbHJlYWR5
IGJ1aWxkaW5nIG9uZS4KLQotICAgIFRoaXMgc3RhdGUgaXMgcmVzZXQgb24gZXZlcnkgbmV3IGFz
c2VydCBzdGF0ZW1lbnQgdmlzaXRlZCBhbmQgdXNlZAotICAgIGJ5IHRoZSBvdGhlciB2aXNpdG9y
cy4KLQotICAgICIiIgotCi0gICAgZGVmIF9faW5pdF9fKHNlbGYsIG1vZHVsZV9wYXRoLCBjb25m
aWcpOgotICAgICAgICBzdXBlcihBc3NlcnRpb25SZXdyaXRlciwgc2VsZikuX19pbml0X18oKQot
ICAgICAgICBzZWxmLm1vZHVsZV9wYXRoID0gbW9kdWxlX3BhdGgKLSAgICAgICAgc2VsZi5jb25m
aWcgPSBjb25maWcKLQotICAgIGRlZiBydW4oc2VsZiwgbW9kKToKLSAgICAgICAgIiIiRmluZCBh
bGwgYXNzZXJ0IHN0YXRlbWVudHMgaW4gKm1vZCogYW5kIHJld3JpdGUgdGhlbS4iIiIKLSAgICAg
ICAgaWYgbm90IG1vZC5ib2R5OgotICAgICAgICAgICAgIyBOb3RoaW5nIHRvIGRvLgotICAgICAg
ICAgICAgcmV0dXJuCi0gICAgICAgICMgSW5zZXJ0IHNvbWUgc3BlY2lhbCBpbXBvcnRzIGF0IHRo
ZSB0b3Agb2YgdGhlIG1vZHVsZSBidXQgYWZ0ZXIgYW55Ci0gICAgICAgICMgZG9jc3RyaW5ncyBh
bmQgX19mdXR1cmVfXyBpbXBvcnRzLgotICAgICAgICBhbGlhc2VzID0gW2FzdC5hbGlhcyhweS5i
dWlsdGluLmJ1aWx0aW5zLl9fbmFtZV9fLCAiQHB5X2J1aWx0aW5zIiksCi0gICAgICAgICAgICAg
ICAgICAgYXN0LmFsaWFzKCJfcHl0ZXN0LmFzc2VydGlvbi5yZXdyaXRlIiwgIkBweXRlc3RfYXIi
KV0KLSAgICAgICAgZG9jID0gZ2V0YXR0cihtb2QsICJkb2NzdHJpbmciLCBOb25lKQotICAgICAg
ICBleHBlY3RfZG9jc3RyaW5nID0gZG9jIGlzIE5vbmUKLSAgICAgICAgaWYgZG9jIGlzIG5vdCBO
b25lIGFuZCBzZWxmLmlzX3Jld3JpdGVfZGlzYWJsZWQoZG9jKToKLSAgICAgICAgICAgIHJldHVy
bgotICAgICAgICBwb3MgPSAwCi0gICAgICAgIGxpbmVubyA9IDEKLSAgICAgICAgZm9yIGl0ZW0g
aW4gbW9kLmJvZHk6Ci0gICAgICAgICAgICBpZiAoZXhwZWN0X2RvY3N0cmluZyBhbmQgaXNpbnN0
YW5jZShpdGVtLCBhc3QuRXhwcikgYW5kCi0gICAgICAgICAgICAgICAgICAgIGlzaW5zdGFuY2Uo
aXRlbS52YWx1ZSwgYXN0LlN0cikpOgotICAgICAgICAgICAgICAgIGRvYyA9IGl0ZW0udmFsdWUu
cwotICAgICAgICAgICAgICAgIGlmIHNlbGYuaXNfcmV3cml0ZV9kaXNhYmxlZChkb2MpOgotICAg
ICAgICAgICAgICAgICAgICByZXR1cm4KLSAgICAgICAgICAgICAgICBleHBlY3RfZG9jc3RyaW5n
ID0gRmFsc2UKLSAgICAgICAgICAgIGVsaWYgKG5vdCBpc2luc3RhbmNlKGl0ZW0sIGFzdC5JbXBv
cnRGcm9tKSBvciBpdGVtLmxldmVsID4gMCBvcgotICAgICAgICAgICAgICAgICAgaXRlbS5tb2R1
bGUgIT0gIl9fZnV0dXJlX18iKToKLSAgICAgICAgICAgICAgICBsaW5lbm8gPSBpdGVtLmxpbmVu
bwotICAgICAgICAgICAgICAgIGJyZWFrCi0gICAgICAgICAgICBwb3MgKz0gMQotICAgICAgICBl
bHNlOgotICAgICAgICAgICAgbGluZW5vID0gaXRlbS5saW5lbm8KLSAgICAgICAgaW1wb3J0cyA9
IFthc3QuSW1wb3J0KFthbGlhc10sIGxpbmVubz1saW5lbm8sIGNvbF9vZmZzZXQ9MCkKLSAgICAg
ICAgICAgICAgICAgICBmb3IgYWxpYXMgaW4gYWxpYXNlc10KLSAgICAgICAgbW9kLmJvZHlbcG9z
OnBvc10gPSBpbXBvcnRzCi0gICAgICAgICMgQ29sbGVjdCBhc3NlcnRzLgotICAgICAgICBub2Rl
cyA9IFttb2RdCi0gICAgICAgIHdoaWxlIG5vZGVzOgotICAgICAgICAgICAgbm9kZSA9IG5vZGVz
LnBvcCgpCi0gICAgICAgICAgICBmb3IgbmFtZSwgZmllbGQgaW4gYXN0Lml0ZXJfZmllbGRzKG5v
ZGUpOgotICAgICAgICAgICAgICAgIGlmIGlzaW5zdGFuY2UoZmllbGQsIGxpc3QpOgotICAgICAg
ICAgICAgICAgICAgICBuZXcgPSBbXQotICAgICAgICAgICAgICAgICAgICBmb3IgaSwgY2hpbGQg
aW4gZW51bWVyYXRlKGZpZWxkKToKLSAgICAgICAgICAgICAgICAgICAgICAgIGlmIGlzaW5zdGFu
Y2UoY2hpbGQsIGFzdC5Bc3NlcnQpOgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgVHJh
bnNmb3JtIGFzc2VydC4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXcuZXh0ZW5kKHNl
bGYudmlzaXQoY2hpbGQpKQotICAgICAgICAgICAgICAgICAgICAgICAgZWxzZToKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBuZXcuYXBwZW5kKGNoaWxkKQotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGlmIGlzaW5zdGFuY2UoY2hpbGQsIGFzdC5BU1QpOgotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBub2Rlcy5hcHBlbmQoY2hpbGQpCi0gICAgICAgICAgICAgICAgICAg
IHNldGF0dHIobm9kZSwgbmFtZSwgbmV3KQotICAgICAgICAgICAgICAgIGVsaWYgKGlzaW5zdGFu
Y2UoZmllbGQsIGFzdC5BU1QpIGFuZAotICAgICAgICAgICAgICAgICAgICAgICMgRG9uJ3QgcmVj
dXJzZSBpbnRvIGV4cHJlc3Npb25zIGFzIHRoZXkgY2FuJ3QgY29udGFpbgotICAgICAgICAgICAg
ICAgICAgICAgICMgYXNzZXJ0cy4KLSAgICAgICAgICAgICAgICAgICAgICBub3QgaXNpbnN0YW5j
ZShmaWVsZCwgYXN0LmV4cHIpKToKLSAgICAgICAgICAgICAgICAgICAgbm9kZXMuYXBwZW5kKGZp
ZWxkKQotCi0gICAgZGVmIGlzX3Jld3JpdGVfZGlzYWJsZWQoc2VsZiwgZG9jc3RyaW5nKToKLSAg
ICAgICAgcmV0dXJuICJQWVRFU1RfRE9OVF9SRVdSSVRFIiBpbiBkb2NzdHJpbmcKLQotICAgIGRl
ZiB2YXJpYWJsZShzZWxmKToKLSAgICAgICAgIiIiR2V0IGEgbmV3IHZhcmlhYmxlLiIiIgotICAg
ICAgICAjIFVzZSBhIGNoYXJhY3RlciBpbnZhbGlkIGluIHB5dGhvbiBpZGVudGlmaWVycyB0byBh
dm9pZCBjbGFzaGluZy4KLSAgICAgICAgbmFtZSA9ICJAcHlfYXNzZXJ0IiArIHN0cihuZXh0KHNl
bGYudmFyaWFibGVfY291bnRlcikpCi0gICAgICAgIHNlbGYudmFyaWFibGVzLmFwcGVuZChuYW1l
KQotICAgICAgICByZXR1cm4gbmFtZQotCi0gICAgZGVmIGFzc2lnbihzZWxmLCBleHByKToKLSAg
ICAgICAgIiIiR2l2ZSAqZXhwciogYSBuYW1lLiIiIgotICAgICAgICBuYW1lID0gc2VsZi52YXJp
YWJsZSgpCi0gICAgICAgIHNlbGYuc3RhdGVtZW50cy5hcHBlbmQoYXN0LkFzc2lnbihbYXN0Lk5h
bWUobmFtZSwgYXN0LlN0b3JlKCkpXSwgZXhwcikpCi0gICAgICAgIHJldHVybiBhc3QuTmFtZShu
YW1lLCBhc3QuTG9hZCgpKQotCi0gICAgZGVmIGRpc3BsYXkoc2VsZiwgZXhwcik6Ci0gICAgICAg
ICIiIkNhbGwgcHkuaW8uc2FmZXJlcHIgb24gdGhlIGV4cHJlc3Npb24uIiIiCi0gICAgICAgIHJl
dHVybiBzZWxmLmhlbHBlcigic2FmZXJlcHIiLCBleHByKQotCi0gICAgZGVmIGhlbHBlcihzZWxm
LCBuYW1lLCAqYXJncyk6Ci0gICAgICAgICIiIkNhbGwgYSBoZWxwZXIgaW4gdGhpcyBtb2R1bGUu
IiIiCi0gICAgICAgIHB5X25hbWUgPSBhc3QuTmFtZSgiQHB5dGVzdF9hciIsIGFzdC5Mb2FkKCkp
Ci0gICAgICAgIGF0dHIgPSBhc3QuQXR0cmlidXRlKHB5X25hbWUsICJfIiArIG5hbWUsIGFzdC5M
b2FkKCkpCi0gICAgICAgIHJldHVybiBhc3RfQ2FsbChhdHRyLCBsaXN0KGFyZ3MpLCBbXSkKLQot
ICAgIGRlZiBidWlsdGluKHNlbGYsIG5hbWUpOgotICAgICAgICAiIiJSZXR1cm4gdGhlIGJ1aWx0
aW4gY2FsbGVkICpuYW1lKi4iIiIKLSAgICAgICAgYnVpbHRpbl9uYW1lID0gYXN0Lk5hbWUoIkBw
eV9idWlsdGlucyIsIGFzdC5Mb2FkKCkpCi0gICAgICAgIHJldHVybiBhc3QuQXR0cmlidXRlKGJ1
aWx0aW5fbmFtZSwgbmFtZSwgYXN0LkxvYWQoKSkKLQotICAgIGRlZiBleHBsYW5hdGlvbl9wYXJh
bShzZWxmLCBleHByKToKLSAgICAgICAgIiIiUmV0dXJuIGEgbmV3IG5hbWVkICUtZm9ybWF0dGlu
ZyBwbGFjZWhvbGRlciBmb3IgZXhwci4KLQotICAgICAgICBUaGlzIGNyZWF0ZXMgYSAlLWZvcm1h
dHRpbmcgcGxhY2Vob2xkZXIgZm9yIGV4cHIgaW4gdGhlCi0gICAgICAgIGN1cnJlbnQgZm9ybWF0
dGluZyBjb250ZXh0LCBlLmcuIGBgJShweTApc2BgLiAgVGhlIHBsYWNlaG9sZGVyCi0gICAgICAg
IGFuZCBleHByIGFyZSBwbGFjZWQgaW4gdGhlIGN1cnJlbnQgZm9ybWF0IGNvbnRleHQgc28gdGhh
dCBpdAotICAgICAgICBjYW4gYmUgdXNlZCBvbiB0aGUgbmV4dCBjYWxsIHRvIC5wb3BfZm9ybWF0
X2NvbnRleHQoKS4KLQotICAgICAgICAiIiIKLSAgICAgICAgc3BlY2lmaWVyID0gInB5IiArIHN0
cihuZXh0KHNlbGYudmFyaWFibGVfY291bnRlcikpCi0gICAgICAgIHNlbGYuZXhwbGFuYXRpb25f
c3BlY2lmaWVyc1tzcGVjaWZpZXJdID0gZXhwcgotICAgICAgICByZXR1cm4gIiUoIiArIHNwZWNp
ZmllciArICIpcyIKLQotICAgIGRlZiBwdXNoX2Zvcm1hdF9jb250ZXh0KHNlbGYpOgotICAgICAg
ICAiIiJDcmVhdGUgYSBuZXcgZm9ybWF0dGluZyBjb250ZXh0LgotCi0gICAgICAgIFRoZSBmb3Jt
YXQgY29udGV4dCBpcyB1c2VkIGZvciB3aGVuIGFuIGV4cGxhbmF0aW9uIHdhbnRzIHRvCi0gICAg
ICAgIGhhdmUgYSB2YXJpYWJsZSB2YWx1ZSBmb3JtYXR0ZWQgaW4gdGhlIGFzc2VydGlvbiBtZXNz
YWdlLiAgSW4KLSAgICAgICAgdGhpcyBjYXNlIHRoZSB2YWx1ZSByZXF1aXJlZCBjYW4gYmUgYWRk
ZWQgdXNpbmcKLSAgICAgICAgLmV4cGxhbmF0aW9uX3BhcmFtKCkuICBGaW5hbGx5IC5wb3BfZm9y
bWF0X2NvbnRleHQoKSBpcyB1c2VkCi0gICAgICAgIHRvIGZvcm1hdCBhIHN0cmluZyBvZiAlLWZv
cm1hdHRlZCB2YWx1ZXMgYXMgYWRkZWQgYnkKLSAgICAgICAgLmV4cGxhbmF0aW9uX3BhcmFtKCku
Ci0KLSAgICAgICAgIiIiCi0gICAgICAgIHNlbGYuZXhwbGFuYXRpb25fc3BlY2lmaWVycyA9IHt9
Ci0gICAgICAgIHNlbGYuc3RhY2suYXBwZW5kKHNlbGYuZXhwbGFuYXRpb25fc3BlY2lmaWVycykK
LQotICAgIGRlZiBwb3BfZm9ybWF0X2NvbnRleHQoc2VsZiwgZXhwbF9leHByKToKLSAgICAgICAg
IiIiRm9ybWF0IHRoZSAlLWZvcm1hdHRlZCBzdHJpbmcgd2l0aCBjdXJyZW50IGZvcm1hdCBjb250
ZXh0LgotCi0gICAgICAgIFRoZSBleHBsX2V4cHIgc2hvdWxkIGJlIGFuIGFzdC5TdHIgaW5zdGFu
Y2UgY29uc3RydWN0ZWQgZnJvbQotICAgICAgICB0aGUgJS1wbGFjZWhvbGRlcnMgY3JlYXRlZCBi
eSAuZXhwbGFuYXRpb25fcGFyYW0oKS4gIFRoaXMgd2lsbAotICAgICAgICBhZGQgdGhlIHJlcXVp
cmVkIGNvZGUgdG8gZm9ybWF0IHNhaWQgc3RyaW5nIHRvIC5vbl9mYWlsdXJlIGFuZAotICAgICAg
ICByZXR1cm4gdGhlIGFzdC5OYW1lIGluc3RhbmNlIG9mIHRoZSBmb3JtYXR0ZWQgc3RyaW5nLgot
Ci0gICAgICAgICIiIgotICAgICAgICBjdXJyZW50ID0gc2VsZi5zdGFjay5wb3AoKQotICAgICAg
ICBpZiBzZWxmLnN0YWNrOgotICAgICAgICAgICAgc2VsZi5leHBsYW5hdGlvbl9zcGVjaWZpZXJz
ID0gc2VsZi5zdGFja1stMV0KLSAgICAgICAga2V5cyA9IFthc3QuU3RyKGtleSkgZm9yIGtleSBp
biBjdXJyZW50LmtleXMoKV0KLSAgICAgICAgZm9ybWF0X2RpY3QgPSBhc3QuRGljdChrZXlzLCBs
aXN0KGN1cnJlbnQudmFsdWVzKCkpKQotICAgICAgICBmb3JtID0gYXN0LkJpbk9wKGV4cGxfZXhw
ciwgYXN0Lk1vZCgpLCBmb3JtYXRfZGljdCkKLSAgICAgICAgbmFtZSA9ICJAcHlfZm9ybWF0IiAr
IHN0cihuZXh0KHNlbGYudmFyaWFibGVfY291bnRlcikpCi0gICAgICAgIHNlbGYub25fZmFpbHVy
ZS5hcHBlbmQoYXN0LkFzc2lnbihbYXN0Lk5hbWUobmFtZSwgYXN0LlN0b3JlKCkpXSwgZm9ybSkp
Ci0gICAgICAgIHJldHVybiBhc3QuTmFtZShuYW1lLCBhc3QuTG9hZCgpKQotCi0gICAgZGVmIGdl
bmVyaWNfdmlzaXQoc2VsZiwgbm9kZSk6Ci0gICAgICAgICIiIkhhbmRsZSBleHByZXNzaW9ucyB3
ZSBkb24ndCBoYXZlIGN1c3RvbSBjb2RlIGZvci4iIiIKLSAgICAgICAgYXNzZXJ0IGlzaW5zdGFu
Y2Uobm9kZSwgYXN0LmV4cHIpCi0gICAgICAgIHJlcyA9IHNlbGYuYXNzaWduKG5vZGUpCi0gICAg
ICAgIHJldHVybiByZXMsIHNlbGYuZXhwbGFuYXRpb25fcGFyYW0oc2VsZi5kaXNwbGF5KHJlcykp
Ci0KLSAgICBkZWYgdmlzaXRfQXNzZXJ0KHNlbGYsIGFzc2VydF8pOgotICAgICAgICAiIiJSZXR1
cm4gdGhlIEFTVCBzdGF0ZW1lbnRzIHRvIHJlcGxhY2UgdGhlIGFzdC5Bc3NlcnQgaW5zdGFuY2Uu
Ci0KLSAgICAgICAgVGhpcyByZXdyaXRlcyB0aGUgdGVzdCBvZiBhbiBhc3NlcnRpb24gdG8gcHJv
dmlkZQotICAgICAgICBpbnRlcm1lZGlhdGUgdmFsdWVzIGFuZCByZXBsYWNlIGl0IHdpdGggYW4g
aWYgc3RhdGVtZW50IHdoaWNoCi0gICAgICAgIHJhaXNlcyBhbiBhc3NlcnRpb24gZXJyb3Igd2l0
aCBhIGRldGFpbGVkIGV4cGxhbmF0aW9uIGluIGNhc2UKLSAgICAgICAgdGhlIGV4cHJlc3Npb24g
aXMgZmFsc2UuCi0KLSAgICAgICAgIiIiCi0gICAgICAgIGlmIGlzaW5zdGFuY2UoYXNzZXJ0Xy50
ZXN0LCBhc3QuVHVwbGUpIGFuZCBzZWxmLmNvbmZpZyBpcyBub3QgTm9uZToKLSAgICAgICAgICAg
IGZzbG9jYXRpb24gPSAoc2VsZi5tb2R1bGVfcGF0aCwgYXNzZXJ0Xy5saW5lbm8pCi0gICAgICAg
ICAgICBzZWxmLmNvbmZpZy53YXJuKCdSMScsICdhc3NlcnRpb24gaXMgYWx3YXlzIHRydWUsIHBl
cmhhcHMgJwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAncmVtb3ZlIHBhcmVudGhlc2Vz
PycsIGZzbG9jYXRpb249ZnNsb2NhdGlvbikKLSAgICAgICAgc2VsZi5zdGF0ZW1lbnRzID0gW10K
LSAgICAgICAgc2VsZi52YXJpYWJsZXMgPSBbXQotICAgICAgICBzZWxmLnZhcmlhYmxlX2NvdW50
ZXIgPSBpdGVydG9vbHMuY291bnQoKQotICAgICAgICBzZWxmLnN0YWNrID0gW10KLSAgICAgICAg
c2VsZi5vbl9mYWlsdXJlID0gW10KLSAgICAgICAgc2VsZi5wdXNoX2Zvcm1hdF9jb250ZXh0KCkK
LSAgICAgICAgIyBSZXdyaXRlIGFzc2VydCBpbnRvIGEgYnVuY2ggb2Ygc3RhdGVtZW50cy4KLSAg
ICAgICAgdG9wX2NvbmRpdGlvbiwgZXhwbGFuYXRpb24gPSBzZWxmLnZpc2l0KGFzc2VydF8udGVz
dCkKLSAgICAgICAgIyBDcmVhdGUgZmFpbHVyZSBtZXNzYWdlLgotICAgICAgICBib2R5ID0gc2Vs
Zi5vbl9mYWlsdXJlCi0gICAgICAgIG5lZ2F0aW9uID0gYXN0LlVuYXJ5T3AoYXN0Lk5vdCgpLCB0
b3BfY29uZGl0aW9uKQotICAgICAgICBzZWxmLnN0YXRlbWVudHMuYXBwZW5kKGFzdC5JZihuZWdh
dGlvbiwgYm9keSwgW10pKQotICAgICAgICBpZiBhc3NlcnRfLm1zZzoKLSAgICAgICAgICAgIGFz
c2VydG1zZyA9IHNlbGYuaGVscGVyKCdmb3JtYXRfYXNzZXJ0bXNnJywgYXNzZXJ0Xy5tc2cpCi0g
ICAgICAgICAgICBleHBsYW5hdGlvbiA9ICJcbj5hc3NlcnQgIiArIGV4cGxhbmF0aW9uCi0gICAg
ICAgIGVsc2U6Ci0gICAgICAgICAgICBhc3NlcnRtc2cgPSBhc3QuU3RyKCIiKQotICAgICAgICAg
ICAgZXhwbGFuYXRpb24gPSAiYXNzZXJ0ICIgKyBleHBsYW5hdGlvbgotICAgICAgICB0ZW1wbGF0
ZSA9IGFzdC5CaW5PcChhc3NlcnRtc2csIGFzdC5BZGQoKSwgYXN0LlN0cihleHBsYW5hdGlvbikp
Ci0gICAgICAgIG1zZyA9IHNlbGYucG9wX2Zvcm1hdF9jb250ZXh0KHRlbXBsYXRlKQotICAgICAg
ICBmbXQgPSBzZWxmLmhlbHBlcigiZm9ybWF0X2V4cGxhbmF0aW9uIiwgbXNnKQotICAgICAgICBl
cnJfbmFtZSA9IGFzdC5OYW1lKCJBc3NlcnRpb25FcnJvciIsIGFzdC5Mb2FkKCkpCi0gICAgICAg
IGV4YyA9IGFzdF9DYWxsKGVycl9uYW1lLCBbZm10XSwgW10pCi0gICAgICAgIGlmIHN5cy52ZXJz
aW9uX2luZm9bMF0gPj0gMzoKLSAgICAgICAgICAgIHJhaXNlXyA9IGFzdC5SYWlzZShleGMsIE5v
bmUpCi0gICAgICAgIGVsc2U6Ci0gICAgICAgICAgICByYWlzZV8gPSBhc3QuUmFpc2UoZXhjLCBO
b25lLCBOb25lKQotICAgICAgICBib2R5LmFwcGVuZChyYWlzZV8pCi0gICAgICAgICMgQ2xlYXIg
dGVtcG9yYXJ5IHZhcmlhYmxlcyBieSBzZXR0aW5nIHRoZW0gdG8gTm9uZS4KLSAgICAgICAgaWYg
c2VsZi52YXJpYWJsZXM6Ci0gICAgICAgICAgICB2YXJpYWJsZXMgPSBbYXN0Lk5hbWUobmFtZSwg
YXN0LlN0b3JlKCkpCi0gICAgICAgICAgICAgICAgICAgICAgICAgZm9yIG5hbWUgaW4gc2VsZi52
YXJpYWJsZXNdCi0gICAgICAgICAgICBjbGVhciA9IGFzdC5Bc3NpZ24odmFyaWFibGVzLCBfTmFt
ZUNvbnN0YW50KE5vbmUpKQotICAgICAgICAgICAgc2VsZi5zdGF0ZW1lbnRzLmFwcGVuZChjbGVh
cikKLSAgICAgICAgIyBGaXggbGluZSBudW1iZXJzLgotICAgICAgICBmb3Igc3RtdCBpbiBzZWxm
LnN0YXRlbWVudHM6Ci0gICAgICAgICAgICBzZXRfbG9jYXRpb24oc3RtdCwgYXNzZXJ0Xy5saW5l
bm8sIGFzc2VydF8uY29sX29mZnNldCkKLSAgICAgICAgcmV0dXJuIHNlbGYuc3RhdGVtZW50cwot
Ci0gICAgZGVmIHZpc2l0X05hbWUoc2VsZiwgbmFtZSk6Ci0gICAgICAgICMgRGlzcGxheSB0aGUg
cmVwciBvZiB0aGUgbmFtZSBpZiBpdCdzIGEgbG9jYWwgdmFyaWFibGUgb3IKLSAgICAgICAgIyBf
c2hvdWxkX3JlcHJfZ2xvYmFsX25hbWUoKSB0aGlua3MgaXQncyBhY2NlcHRhYmxlLgotICAgICAg
ICBsb2NzID0gYXN0X0NhbGwoc2VsZi5idWlsdGluKCJsb2NhbHMiKSwgW10sIFtdKQotICAgICAg
ICBpbmxvY3MgPSBhc3QuQ29tcGFyZShhc3QuU3RyKG5hbWUuaWQpLCBbYXN0LkluKCldLCBbbG9j
c10pCi0gICAgICAgIGRvcmVwciA9IHNlbGYuaGVscGVyKCJzaG91bGRfcmVwcl9nbG9iYWxfbmFt
ZSIsIG5hbWUpCi0gICAgICAgIHRlc3QgPSBhc3QuQm9vbE9wKGFzdC5PcigpLCBbaW5sb2NzLCBk
b3JlcHJdKQotICAgICAgICBleHByID0gYXN0LklmRXhwKHRlc3QsIHNlbGYuZGlzcGxheShuYW1l
KSwgYXN0LlN0cihuYW1lLmlkKSkKLSAgICAgICAgcmV0dXJuIG5hbWUsIHNlbGYuZXhwbGFuYXRp
b25fcGFyYW0oZXhwcikKLQotICAgIGRlZiB2aXNpdF9Cb29sT3Aoc2VsZiwgYm9vbG9wKToKLSAg
ICAgICAgcmVzX3ZhciA9IHNlbGYudmFyaWFibGUoKQotICAgICAgICBleHBsX2xpc3QgPSBzZWxm
LmFzc2lnbihhc3QuTGlzdChbXSwgYXN0LkxvYWQoKSkpCi0gICAgICAgIGFwcCA9IGFzdC5BdHRy
aWJ1dGUoZXhwbF9saXN0LCAiYXBwZW5kIiwgYXN0LkxvYWQoKSkKLSAgICAgICAgaXNfb3IgPSBp
bnQoaXNpbnN0YW5jZShib29sb3Aub3AsIGFzdC5PcikpCi0gICAgICAgIGJvZHkgPSBzYXZlID0g
c2VsZi5zdGF0ZW1lbnRzCi0gICAgICAgIGZhaWxfc2F2ZSA9IHNlbGYub25fZmFpbHVyZQotICAg
ICAgICBsZXZlbHMgPSBsZW4oYm9vbG9wLnZhbHVlcykgLSAxCi0gICAgICAgIHNlbGYucHVzaF9m
b3JtYXRfY29udGV4dCgpCi0gICAgICAgICMgUHJvY2VzcyBlYWNoIG9wZXJhbmQsIHNob3J0LWNp
cmN1dGluZyBpZiBuZWVkZWQuCi0gICAgICAgIGZvciBpLCB2IGluIGVudW1lcmF0ZShib29sb3Au
dmFsdWVzKToKLSAgICAgICAgICAgIGlmIGk6Ci0gICAgICAgICAgICAgICAgZmFpbF9pbm5lciA9
IFtdCi0gICAgICAgICAgICAgICAgIyBjb25kIGlzIHNldCBpbiBhIHByaW9yIGxvb3AgaXRlcmF0
aW9uIGJlbG93Ci0gICAgICAgICAgICAgICAgc2VsZi5vbl9mYWlsdXJlLmFwcGVuZChhc3QuSWYo
Y29uZCwgZmFpbF9pbm5lciwgW10pKSAgIyBub3FhCi0gICAgICAgICAgICAgICAgc2VsZi5vbl9m
YWlsdXJlID0gZmFpbF9pbm5lcgotICAgICAgICAgICAgc2VsZi5wdXNoX2Zvcm1hdF9jb250ZXh0
KCkKLSAgICAgICAgICAgIHJlcywgZXhwbCA9IHNlbGYudmlzaXQodikKLSAgICAgICAgICAgIGJv
ZHkuYXBwZW5kKGFzdC5Bc3NpZ24oW2FzdC5OYW1lKHJlc192YXIsIGFzdC5TdG9yZSgpKV0sIHJl
cykpCi0gICAgICAgICAgICBleHBsX2Zvcm1hdCA9IHNlbGYucG9wX2Zvcm1hdF9jb250ZXh0KGFz
dC5TdHIoZXhwbCkpCi0gICAgICAgICAgICBjYWxsID0gYXN0X0NhbGwoYXBwLCBbZXhwbF9mb3Jt
YXRdLCBbXSkKLSAgICAgICAgICAgIHNlbGYub25fZmFpbHVyZS5hcHBlbmQoYXN0LkV4cHIoY2Fs
bCkpCi0gICAgICAgICAgICBpZiBpIDwgbGV2ZWxzOgotICAgICAgICAgICAgICAgIGNvbmQgPSBy
ZXMKLSAgICAgICAgICAgICAgICBpZiBpc19vcjoKLSAgICAgICAgICAgICAgICAgICAgY29uZCA9
IGFzdC5VbmFyeU9wKGFzdC5Ob3QoKSwgY29uZCkKLSAgICAgICAgICAgICAgICBpbm5lciA9IFtd
Ci0gICAgICAgICAgICAgICAgc2VsZi5zdGF0ZW1lbnRzLmFwcGVuZChhc3QuSWYoY29uZCwgaW5u
ZXIsIFtdKSkKLSAgICAgICAgICAgICAgICBzZWxmLnN0YXRlbWVudHMgPSBib2R5ID0gaW5uZXIK
LSAgICAgICAgc2VsZi5zdGF0ZW1lbnRzID0gc2F2ZQotICAgICAgICBzZWxmLm9uX2ZhaWx1cmUg
PSBmYWlsX3NhdmUKLSAgICAgICAgZXhwbF90ZW1wbGF0ZSA9IHNlbGYuaGVscGVyKCJmb3JtYXRf
Ym9vbG9wIiwgZXhwbF9saXN0LCBhc3QuTnVtKGlzX29yKSkKLSAgICAgICAgZXhwbCA9IHNlbGYu
cG9wX2Zvcm1hdF9jb250ZXh0KGV4cGxfdGVtcGxhdGUpCi0gICAgICAgIHJldHVybiBhc3QuTmFt
ZShyZXNfdmFyLCBhc3QuTG9hZCgpKSwgc2VsZi5leHBsYW5hdGlvbl9wYXJhbShleHBsKQotCi0g
ICAgZGVmIHZpc2l0X1VuYXJ5T3Aoc2VsZiwgdW5hcnkpOgotICAgICAgICBwYXR0ZXJuID0gdW5h
cnlfbWFwW3VuYXJ5Lm9wLl9fY2xhc3NfX10KLSAgICAgICAgb3BlcmFuZF9yZXMsIG9wZXJhbmRf
ZXhwbCA9IHNlbGYudmlzaXQodW5hcnkub3BlcmFuZCkKLSAgICAgICAgcmVzID0gc2VsZi5hc3Np
Z24oYXN0LlVuYXJ5T3AodW5hcnkub3AsIG9wZXJhbmRfcmVzKSkKLSAgICAgICAgcmV0dXJuIHJl
cywgcGF0dGVybiAlIChvcGVyYW5kX2V4cGwsKQotCi0gICAgZGVmIHZpc2l0X0Jpbk9wKHNlbGYs
IGJpbm9wKToKLSAgICAgICAgc3ltYm9sID0gYmlub3BfbWFwW2Jpbm9wLm9wLl9fY2xhc3NfX10K
LSAgICAgICAgbGVmdF9leHByLCBsZWZ0X2V4cGwgPSBzZWxmLnZpc2l0KGJpbm9wLmxlZnQpCi0g
ICAgICAgIHJpZ2h0X2V4cHIsIHJpZ2h0X2V4cGwgPSBzZWxmLnZpc2l0KGJpbm9wLnJpZ2h0KQot
ICAgICAgICBleHBsYW5hdGlvbiA9ICIoJXMgJXMgJXMpIiAlIChsZWZ0X2V4cGwsIHN5bWJvbCwg
cmlnaHRfZXhwbCkKLSAgICAgICAgcmVzID0gc2VsZi5hc3NpZ24oYXN0LkJpbk9wKGxlZnRfZXhw
ciwgYmlub3Aub3AsIHJpZ2h0X2V4cHIpKQotICAgICAgICByZXR1cm4gcmVzLCBleHBsYW5hdGlv
bgotCi0gICAgZGVmIHZpc2l0X0NhbGxfMzUoc2VsZiwgY2FsbCk6Ci0gICAgICAgICIiIgotICAg
ICAgICB2aXNpdCBgYXN0LkNhbGxgIG5vZGVzIG9uIFB5dGhvbjMuNSBhbmQgYWZ0ZXIKLSAgICAg
ICAgIiIiCi0gICAgICAgIG5ld19mdW5jLCBmdW5jX2V4cGwgPSBzZWxmLnZpc2l0KGNhbGwuZnVu
YykKLSAgICAgICAgYXJnX2V4cGxzID0gW10KLSAgICAgICAgbmV3X2FyZ3MgPSBbXQotICAgICAg
ICBuZXdfa3dhcmdzID0gW10KLSAgICAgICAgZm9yIGFyZyBpbiBjYWxsLmFyZ3M6Ci0gICAgICAg
ICAgICByZXMsIGV4cGwgPSBzZWxmLnZpc2l0KGFyZykKLSAgICAgICAgICAgIGFyZ19leHBscy5h
cHBlbmQoZXhwbCkKLSAgICAgICAgICAgIG5ld19hcmdzLmFwcGVuZChyZXMpCi0gICAgICAgIGZv
ciBrZXl3b3JkIGluIGNhbGwua2V5d29yZHM6Ci0gICAgICAgICAgICByZXMsIGV4cGwgPSBzZWxm
LnZpc2l0KGtleXdvcmQudmFsdWUpCi0gICAgICAgICAgICBuZXdfa3dhcmdzLmFwcGVuZChhc3Qu
a2V5d29yZChrZXl3b3JkLmFyZywgcmVzKSkKLSAgICAgICAgICAgIGlmIGtleXdvcmQuYXJnOgot
ICAgICAgICAgICAgICAgIGFyZ19leHBscy5hcHBlbmQoa2V5d29yZC5hcmcgKyAiPSIgKyBleHBs
KQotICAgICAgICAgICAgZWxzZTogICMgKiphcmdzIGhhdmUgYGFyZ2Aga2V5d29yZHMgd2l0aCBh
biAuYXJnIG9mIE5vbmUKLSAgICAgICAgICAgICAgICBhcmdfZXhwbHMuYXBwZW5kKCIqKiIgKyBl
eHBsKQotCi0gICAgICAgIGV4cGwgPSAiJXMoJXMpIiAlIChmdW5jX2V4cGwsICcsICcuam9pbihh
cmdfZXhwbHMpKQotICAgICAgICBuZXdfY2FsbCA9IGFzdC5DYWxsKG5ld19mdW5jLCBuZXdfYXJn
cywgbmV3X2t3YXJncykKLSAgICAgICAgcmVzID0gc2VsZi5hc3NpZ24obmV3X2NhbGwpCi0gICAg
ICAgIHJlc19leHBsID0gc2VsZi5leHBsYW5hdGlvbl9wYXJhbShzZWxmLmRpc3BsYXkocmVzKSkK
LSAgICAgICAgb3V0ZXJfZXhwbCA9ICIlc1xueyVzID0gJXNcbn0iICUgKHJlc19leHBsLCByZXNf
ZXhwbCwgZXhwbCkKLSAgICAgICAgcmV0dXJuIHJlcywgb3V0ZXJfZXhwbAotCi0gICAgZGVmIHZp
c2l0X1N0YXJyZWQoc2VsZiwgc3RhcnJlZCk6Ci0gICAgICAgICMgRnJvbSBQeXRob24gMy41LCBh
IFN0YXJyZWQgbm9kZSBjYW4gYXBwZWFyIGluIGEgZnVuY3Rpb24gY2FsbAotICAgICAgICByZXMs
IGV4cGwgPSBzZWxmLnZpc2l0KHN0YXJyZWQudmFsdWUpCi0gICAgICAgIHJldHVybiBzdGFycmVk
LCAnKicgKyBleHBsCi0KLSAgICBkZWYgdmlzaXRfQ2FsbF9sZWdhY3koc2VsZiwgY2FsbCk6Ci0g
ICAgICAgICIiIgotICAgICAgICB2aXNpdCBgYXN0LkNhbGwgbm9kZXMgb24gMy40IGFuZCBiZWxv
d2AKLSAgICAgICAgIiIiCi0gICAgICAgIG5ld19mdW5jLCBmdW5jX2V4cGwgPSBzZWxmLnZpc2l0
KGNhbGwuZnVuYykKLSAgICAgICAgYXJnX2V4cGxzID0gW10KLSAgICAgICAgbmV3X2FyZ3MgPSBb
XQotICAgICAgICBuZXdfa3dhcmdzID0gW10KLSAgICAgICAgbmV3X3N0YXIgPSBuZXdfa3dhcmcg
PSBOb25lCi0gICAgICAgIGZvciBhcmcgaW4gY2FsbC5hcmdzOgotICAgICAgICAgICAgcmVzLCBl
eHBsID0gc2VsZi52aXNpdChhcmcpCi0gICAgICAgICAgICBuZXdfYXJncy5hcHBlbmQocmVzKQot
ICAgICAgICAgICAgYXJnX2V4cGxzLmFwcGVuZChleHBsKQotICAgICAgICBmb3Iga2V5d29yZCBp
biBjYWxsLmtleXdvcmRzOgotICAgICAgICAgICAgcmVzLCBleHBsID0gc2VsZi52aXNpdChrZXl3
b3JkLnZhbHVlKQotICAgICAgICAgICAgbmV3X2t3YXJncy5hcHBlbmQoYXN0LmtleXdvcmQoa2V5
d29yZC5hcmcsIHJlcykpCi0gICAgICAgICAgICBhcmdfZXhwbHMuYXBwZW5kKGtleXdvcmQuYXJn
ICsgIj0iICsgZXhwbCkKLSAgICAgICAgaWYgY2FsbC5zdGFyYXJnczoKLSAgICAgICAgICAgIG5l
d19zdGFyLCBleHBsID0gc2VsZi52aXNpdChjYWxsLnN0YXJhcmdzKQotICAgICAgICAgICAgYXJn
X2V4cGxzLmFwcGVuZCgiKiIgKyBleHBsKQotICAgICAgICBpZiBjYWxsLmt3YXJnczoKLSAgICAg
ICAgICAgIG5ld19rd2FyZywgZXhwbCA9IHNlbGYudmlzaXQoY2FsbC5rd2FyZ3MpCi0gICAgICAg
ICAgICBhcmdfZXhwbHMuYXBwZW5kKCIqKiIgKyBleHBsKQotICAgICAgICBleHBsID0gIiVzKCVz
KSIgJSAoZnVuY19leHBsLCAnLCAnLmpvaW4oYXJnX2V4cGxzKSkKLSAgICAgICAgbmV3X2NhbGwg
PSBhc3QuQ2FsbChuZXdfZnVuYywgbmV3X2FyZ3MsIG5ld19rd2FyZ3MsCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgbmV3X3N0YXIsIG5ld19rd2FyZykKLSAgICAgICAgcmVzID0gc2VsZi5h
c3NpZ24obmV3X2NhbGwpCi0gICAgICAgIHJlc19leHBsID0gc2VsZi5leHBsYW5hdGlvbl9wYXJh
bShzZWxmLmRpc3BsYXkocmVzKSkKLSAgICAgICAgb3V0ZXJfZXhwbCA9ICIlc1xueyVzID0gJXNc
bn0iICUgKHJlc19leHBsLCByZXNfZXhwbCwgZXhwbCkKLSAgICAgICAgcmV0dXJuIHJlcywgb3V0
ZXJfZXhwbAotCi0gICAgIyBhc3QuQ2FsbCBzaWduYXR1cmUgY2hhbmdlZCBvbiAzLjUsCi0gICAg
IyBjb25kaXRpb25hbGx5IGNoYW5nZSAgd2hpY2ggbWV0aG9kcyBpcyBuYW1lZAotICAgICMgdmlz
aXRfQ2FsbCBkZXBlbmRpbmcgb24gUHl0aG9uIHZlcnNpb24KLSAgICBpZiBzeXMudmVyc2lvbl9p
bmZvID49ICgzLCA1KToKLSAgICAgICAgdmlzaXRfQ2FsbCA9IHZpc2l0X0NhbGxfMzUKLSAgICBl
bHNlOgotICAgICAgICB2aXNpdF9DYWxsID0gdmlzaXRfQ2FsbF9sZWdhY3kKLQotICAgIGRlZiB2
aXNpdF9BdHRyaWJ1dGUoc2VsZiwgYXR0cik6Ci0gICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKGF0
dHIuY3R4LCBhc3QuTG9hZCk6Ci0gICAgICAgICAgICByZXR1cm4gc2VsZi5nZW5lcmljX3Zpc2l0
KGF0dHIpCi0gICAgICAgIHZhbHVlLCB2YWx1ZV9leHBsID0gc2VsZi52aXNpdChhdHRyLnZhbHVl
KQotICAgICAgICByZXMgPSBzZWxmLmFzc2lnbihhc3QuQXR0cmlidXRlKHZhbHVlLCBhdHRyLmF0
dHIsIGFzdC5Mb2FkKCkpKQotICAgICAgICByZXNfZXhwbCA9IHNlbGYuZXhwbGFuYXRpb25fcGFy
YW0oc2VsZi5kaXNwbGF5KHJlcykpCi0gICAgICAgIHBhdCA9ICIlc1xueyVzID0gJXMuJXNcbn0i
Ci0gICAgICAgIGV4cGwgPSBwYXQgJSAocmVzX2V4cGwsIHJlc19leHBsLCB2YWx1ZV9leHBsLCBh
dHRyLmF0dHIpCi0gICAgICAgIHJldHVybiByZXMsIGV4cGwKLQotICAgIGRlZiB2aXNpdF9Db21w
YXJlKHNlbGYsIGNvbXApOgotICAgICAgICBzZWxmLnB1c2hfZm9ybWF0X2NvbnRleHQoKQotICAg
ICAgICBsZWZ0X3JlcywgbGVmdF9leHBsID0gc2VsZi52aXNpdChjb21wLmxlZnQpCi0gICAgICAg
IGlmIGlzaW5zdGFuY2UoY29tcC5sZWZ0LCAoX2FzdC5Db21wYXJlLCBfYXN0LkJvb2xPcCkpOgot
ICAgICAgICAgICAgbGVmdF9leHBsID0gIih7MH0pIi5mb3JtYXQobGVmdF9leHBsKQotICAgICAg
ICByZXNfdmFyaWFibGVzID0gW3NlbGYudmFyaWFibGUoKSBmb3IgaSBpbiByYW5nZShsZW4oY29t
cC5vcHMpKV0KLSAgICAgICAgbG9hZF9uYW1lcyA9IFthc3QuTmFtZSh2LCBhc3QuTG9hZCgpKSBm
b3IgdiBpbiByZXNfdmFyaWFibGVzXQotICAgICAgICBzdG9yZV9uYW1lcyA9IFthc3QuTmFtZSh2
LCBhc3QuU3RvcmUoKSkgZm9yIHYgaW4gcmVzX3ZhcmlhYmxlc10KLSAgICAgICAgaXQgPSB6aXAo
cmFuZ2UobGVuKGNvbXAub3BzKSksIGNvbXAub3BzLCBjb21wLmNvbXBhcmF0b3JzKQotICAgICAg
ICBleHBscyA9IFtdCi0gICAgICAgIHN5bXMgPSBbXQotICAgICAgICByZXN1bHRzID0gW2xlZnRf
cmVzXQotICAgICAgICBmb3IgaSwgb3AsIG5leHRfb3BlcmFuZCBpbiBpdDoKLSAgICAgICAgICAg
IG5leHRfcmVzLCBuZXh0X2V4cGwgPSBzZWxmLnZpc2l0KG5leHRfb3BlcmFuZCkKLSAgICAgICAg
ICAgIGlmIGlzaW5zdGFuY2UobmV4dF9vcGVyYW5kLCAoX2FzdC5Db21wYXJlLCBfYXN0LkJvb2xP
cCkpOgotICAgICAgICAgICAgICAgIG5leHRfZXhwbCA9ICIoezB9KSIuZm9ybWF0KG5leHRfZXhw
bCkKLSAgICAgICAgICAgIHJlc3VsdHMuYXBwZW5kKG5leHRfcmVzKQotICAgICAgICAgICAgc3lt
ID0gYmlub3BfbWFwW29wLl9fY2xhc3NfX10KLSAgICAgICAgICAgIHN5bXMuYXBwZW5kKGFzdC5T
dHIoc3ltKSkKLSAgICAgICAgICAgIGV4cGwgPSAiJXMgJXMgJXMiICUgKGxlZnRfZXhwbCwgc3lt
LCBuZXh0X2V4cGwpCi0gICAgICAgICAgICBleHBscy5hcHBlbmQoYXN0LlN0cihleHBsKSkKLSAg
ICAgICAgICAgIHJlc19leHByID0gYXN0LkNvbXBhcmUobGVmdF9yZXMsIFtvcF0sIFtuZXh0X3Jl
c10pCi0gICAgICAgICAgICBzZWxmLnN0YXRlbWVudHMuYXBwZW5kKGFzdC5Bc3NpZ24oW3N0b3Jl
X25hbWVzW2ldXSwgcmVzX2V4cHIpKQotICAgICAgICAgICAgbGVmdF9yZXMsIGxlZnRfZXhwbCA9
IG5leHRfcmVzLCBuZXh0X2V4cGwKLSAgICAgICAgIyBVc2UgcHl0ZXN0LmFzc2VydGlvbi51dGls
Ll9yZXByY29tcGFyZSBpZiB0aGF0J3MgYXZhaWxhYmxlLgotICAgICAgICBleHBsX2NhbGwgPSBz
ZWxmLmhlbHBlcigiY2FsbF9yZXByY29tcGFyZSIsCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGFzdC5UdXBsZShzeW1zLCBhc3QuTG9hZCgpKSwKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgYXN0LlR1cGxlKGxvYWRfbmFtZXMsIGFzdC5Mb2FkKCkpLAotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBhc3QuVHVwbGUoZXhwbHMsIGFzdC5Mb2FkKCkpLAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhc3QuVHVwbGUocmVzdWx0cywgYXN0LkxvYWQo
KSkpCi0gICAgICAgIGlmIGxlbihjb21wLm9wcykgPiAxOgotICAgICAgICAgICAgcmVzID0gYXN0
LkJvb2xPcChhc3QuQW5kKCksIGxvYWRfbmFtZXMpCi0gICAgICAgIGVsc2U6Ci0gICAgICAgICAg
ICByZXMgPSBsb2FkX25hbWVzWzBdCi0gICAgICAgIHJldHVybiByZXMsIHNlbGYuZXhwbGFuYXRp
b25fcGFyYW0oc2VsZi5wb3BfZm9ybWF0X2NvbnRleHQoZXhwbF9jYWxsKSkKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRf
cGFydHkvcHl0ZXN0L19weXRlc3QvYXNzZXJ0aW9uL3RydW5jYXRlLnB5IGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3Qv
X3B5dGVzdC9hc3NlcnRpb24vdHJ1bmNhdGUucHkKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDJlZDEyZTJlNWE5NjBjYTYwZDk5ODY4ZTE5ODk3YTI3ZGRhNmQ4MzAuLjAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvX3B5dGVzdC9h
c3NlcnRpb24vdHJ1bmNhdGUucHkKKysrIC9kZXYvbnVsbApAQCAtMSwxMDIgKzAsMCBAQAotIiIi
Ci1VdGlsaXRpZXMgZm9yIHRydW5jYXRpbmcgYXNzZXJ0aW9uIG91dHB1dC4KLQotQ3VycmVudCBk
ZWZhdWx0IGJlaGF2aW91ciBpcyB0byB0cnVuY2F0ZSBhc3NlcnRpb24gZXhwbGFuYXRpb25zIGF0
Ci1+OCB0ZXJtaW5hbCBsaW5lcywgdW5sZXNzIHJ1bm5pbmcgaW4gIi12diIgbW9kZSBvciBydW5u
aW5nIG9uIENJLgotIiIiCi1mcm9tIF9fZnV0dXJlX18gaW1wb3J0IGFic29sdXRlX2ltcG9ydCwg
ZGl2aXNpb24sIHByaW50X2Z1bmN0aW9uCi1pbXBvcnQgb3MKLQotaW1wb3J0IHNpeAotCi0KLURF
RkFVTFRfTUFYX0xJTkVTID0gOAotREVGQVVMVF9NQVhfQ0hBUlMgPSA4ICogODAKLVVTQUdFX01T
RyA9ICJ1c2UgJy12dicgdG8gc2hvdyIKLQotCi1kZWYgdHJ1bmNhdGVfaWZfcmVxdWlyZWQoZXhw
bGFuYXRpb24sIGl0ZW0sIG1heF9sZW5ndGg9Tm9uZSk6Ci0gICAgIiIiCi0gICAgVHJ1bmNhdGUg
dGhpcyBhc3NlcnRpb24gZXhwbGFuYXRpb24gaWYgdGhlIGdpdmVuIHRlc3QgaXRlbSBpcyBlbGln
aWJsZS4KLSAgICAiIiIKLSAgICBpZiBfc2hvdWxkX3RydW5jYXRlX2l0ZW0oaXRlbSk6Ci0gICAg
ICAgIHJldHVybiBfdHJ1bmNhdGVfZXhwbGFuYXRpb24oZXhwbGFuYXRpb24pCi0gICAgcmV0dXJu
IGV4cGxhbmF0aW9uCi0KLQotZGVmIF9zaG91bGRfdHJ1bmNhdGVfaXRlbShpdGVtKToKLSAgICAi
IiIKLSAgICBXaGV0aGVyIG9yIG5vdCB0aGlzIHRlc3QgaXRlbSBpcyBlbGlnaWJsZSBmb3IgdHJ1
bmNhdGlvbi4KLSAgICAiIiIKLSAgICB2ZXJib3NlID0gaXRlbS5jb25maWcub3B0aW9uLnZlcmJv
c2UKLSAgICByZXR1cm4gdmVyYm9zZSA8IDIgYW5kIG5vdCBfcnVubmluZ19vbl9jaSgpCi0KLQot
ZGVmIF9ydW5uaW5nX29uX2NpKCk6Ci0gICAgIiIiQ2hlY2sgaWYgd2UncmUgY3VycmVudGx5IHJ1
bm5pbmcgb24gYSBDSSBzeXN0ZW0uIiIiCi0gICAgZW52X3ZhcnMgPSBbJ0NJJywgJ0JVSUxEX05V
TUJFUiddCi0gICAgcmV0dXJuIGFueSh2YXIgaW4gb3MuZW52aXJvbiBmb3IgdmFyIGluIGVudl92
YXJzKQotCi0KLWRlZiBfdHJ1bmNhdGVfZXhwbGFuYXRpb24oaW5wdXRfbGluZXMsIG1heF9saW5l
cz1Ob25lLCBtYXhfY2hhcnM9Tm9uZSk6Ci0gICAgIiIiCi0gICAgVHJ1bmNhdGUgZ2l2ZW4gbGlz
dCBvZiBzdHJpbmdzIHRoYXQgbWFrZXMgdXAgdGhlIGFzc2VydGlvbiBleHBsYW5hdGlvbi4KLQot
ICAgIFRydW5jYXRlcyB0byBlaXRoZXIgOCBsaW5lcywgb3IgNjQwIGNoYXJhY3RlcnMgLSB3aGlj
aGV2ZXIgdGhlIGlucHV0IHJlYWNoZXMKLSAgICBmaXJzdC4gVGhlIHJlbWFpbmluZyBsaW5lcyB3
aWxsIGJlIHJlcGxhY2VkIGJ5IGEgdXNhZ2UgbWVzc2FnZS4KLSAgICAiIiIKLQotICAgIGlmIG1h
eF9saW5lcyBpcyBOb25lOgotICAgICAgICBtYXhfbGluZXMgPSBERUZBVUxUX01BWF9MSU5FUwot
ICAgIGlmIG1heF9jaGFycyBpcyBOb25lOgotICAgICAgICBtYXhfY2hhcnMgPSBERUZBVUxUX01B
WF9DSEFSUwotCi0gICAgIyBDaGVjayBpZiB0cnVuY2F0aW9uIHJlcXVpcmVkCi0gICAgaW5wdXRf
Y2hhcl9jb3VudCA9IGxlbigiIi5qb2luKGlucHV0X2xpbmVzKSkKLSAgICBpZiBsZW4oaW5wdXRf
bGluZXMpIDw9IG1heF9saW5lcyBhbmQgaW5wdXRfY2hhcl9jb3VudCA8PSBtYXhfY2hhcnM6Ci0g
ICAgICAgIHJldHVybiBpbnB1dF9saW5lcwotCi0gICAgIyBUcnVuY2F0ZSBmaXJzdCB0byBtYXhf
bGluZXMsIGFuZCB0aGVuIHRydW5jYXRlIHRvIG1heF9jaGFycyBpZiBtYXhfY2hhcnMKLSAgICAj
IGlzIGV4Y2VlZGVkLgotICAgIHRydW5jYXRlZF9leHBsYW5hdGlvbiA9IGlucHV0X2xpbmVzWzpt
YXhfbGluZXNdCi0gICAgdHJ1bmNhdGVkX2V4cGxhbmF0aW9uID0gX3RydW5jYXRlX2J5X2NoYXJf
Y291bnQodHJ1bmNhdGVkX2V4cGxhbmF0aW9uLCBtYXhfY2hhcnMpCi0KLSAgICAjIEFkZCBlbGxp
cHNpcyB0byBmaW5hbCBsaW5lCi0gICAgdHJ1bmNhdGVkX2V4cGxhbmF0aW9uWy0xXSA9IHRydW5j
YXRlZF9leHBsYW5hdGlvblstMV0gKyAiLi4uIgotCi0gICAgIyBBcHBlbmQgdXNlZnVsIG1lc3Nh
Z2UgdG8gZXhwbGFuYXRpb24KLSAgICB0cnVuY2F0ZWRfbGluZV9jb3VudCA9IGxlbihpbnB1dF9s
aW5lcykgLSBsZW4odHJ1bmNhdGVkX2V4cGxhbmF0aW9uKQotICAgIHRydW5jYXRlZF9saW5lX2Nv
dW50ICs9IDEgICMgQWNjb3VudCBmb3IgdGhlIHBhcnQtdHJ1bmNhdGVkIGZpbmFsIGxpbmUKLSAg
ICBtc2cgPSAnLi4uRnVsbCBvdXRwdXQgdHJ1bmNhdGVkJwotICAgIGlmIHRydW5jYXRlZF9saW5l
X2NvdW50ID09IDE6Ci0gICAgICAgIG1zZyArPSAnICh7MH0gbGluZSBoaWRkZW4pJy5mb3JtYXQo
dHJ1bmNhdGVkX2xpbmVfY291bnQpCi0gICAgZWxzZToKLSAgICAgICAgbXNnICs9ICcgKHswfSBs
aW5lcyBoaWRkZW4pJy5mb3JtYXQodHJ1bmNhdGVkX2xpbmVfY291bnQpCi0gICAgbXNnICs9ICIs
IHswfSIgLmZvcm1hdChVU0FHRV9NU0cpCi0gICAgdHJ1bmNhdGVkX2V4cGxhbmF0aW9uLmV4dGVu
ZChbCi0gICAgICAgIHNpeC50ZXh0X3R5cGUoIiIpLAotICAgICAgICBzaXgudGV4dF90eXBlKG1z
ZyksCi0gICAgXSkKLSAgICByZXR1cm4gdHJ1bmNhdGVkX2V4cGxhbmF0aW9uCi0KLQotZGVmIF90
cnVuY2F0ZV9ieV9jaGFyX2NvdW50KGlucHV0X2xpbmVzLCBtYXhfY2hhcnMpOgotICAgICMgQ2hl
Y2sgaWYgdHJ1bmNhdGlvbiByZXF1aXJlZAotICAgIGlmIGxlbigiIi5qb2luKGlucHV0X2xpbmVz
KSkgPD0gbWF4X2NoYXJzOgotICAgICAgICByZXR1cm4gaW5wdXRfbGluZXMKLQotICAgICMgRmlu
ZCBwb2ludCBhdCB3aGljaCBpbnB1dCBsZW5ndGggZXhjZWVkcyB0b3RhbCBhbGxvd2VkIGxlbmd0
aAotICAgIGl0ZXJhdGVkX2NoYXJfY291bnQgPSAwCi0gICAgZm9yIGl0ZXJhdGVkX2luZGV4LCBp
bnB1dF9saW5lIGluIGVudW1lcmF0ZShpbnB1dF9saW5lcyk6Ci0gICAgICAgIGlmIGl0ZXJhdGVk
X2NoYXJfY291bnQgKyBsZW4oaW5wdXRfbGluZSkgPiBtYXhfY2hhcnM6Ci0gICAgICAgICAgICBi
cmVhawotICAgICAgICBpdGVyYXRlZF9jaGFyX2NvdW50ICs9IGxlbihpbnB1dF9saW5lKQotCi0g
ICAgIyBDcmVhdGUgdHJ1bmNhdGVkIGV4cGxhbmF0aW9uIHdpdGggbW9kaWZpZWQgZmluYWwgbGlu
ZQotICAgIHRydW5jYXRlZF9yZXN1bHQgPSBpbnB1dF9saW5lc1s6aXRlcmF0ZWRfaW5kZXhdCi0g
ICAgZmluYWxfbGluZSA9IGlucHV0X2xpbmVzW2l0ZXJhdGVkX2luZGV4XQotICAgIGlmIGZpbmFs
X2xpbmU6Ci0gICAgICAgIGZpbmFsX2xpbmVfdHJ1bmNhdGVfcG9pbnQgPSBtYXhfY2hhcnMgLSBp
dGVyYXRlZF9jaGFyX2NvdW50Ci0gICAgICAgIGZpbmFsX2xpbmUgPSBmaW5hbF9saW5lWzpmaW5h
bF9saW5lX3RydW5jYXRlX3BvaW50XQotICAgIHRydW5jYXRlZF9yZXN1bHQuYXBwZW5kKGZpbmFs
X2xpbmUpCi0gICAgcmV0dXJuIHRydW5jYXRlZF9yZXN1bHQKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0
ZXN0L19weXRlc3QvYXNzZXJ0aW9uL3V0aWwucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9fcHl0ZXN0L2Fzc2Vy
dGlvbi91dGlsLnB5CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1MTFkOThlZjFmZGYx
OTY0M2QyYWM2Yjg4NjQ4ZTg4YzY3YmQ5ZGIwLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L19weXRlc3QvYXNzZXJ0aW9uL3V0aWwucHkK
KysrIC9kZXYvbnVsbApAQCAtMSwzMDggKzAsMCBAQAotIiIiVXRpbGl0aWVzIGZvciBhc3NlcnRp
b24gZGVidWdnaW5nIiIiCi1mcm9tIF9fZnV0dXJlX18gaW1wb3J0IGFic29sdXRlX2ltcG9ydCwg
ZGl2aXNpb24sIHByaW50X2Z1bmN0aW9uCi1pbXBvcnQgcHByaW50Ci0KLWltcG9ydCBfcHl0ZXN0
Ll9jb2RlCi1pbXBvcnQgcHkKLWltcG9ydCBzaXgKLXRyeToKLSAgICBmcm9tIGNvbGxlY3Rpb25z
IGltcG9ydCBTZXF1ZW5jZQotZXhjZXB0IEltcG9ydEVycm9yOgotICAgIFNlcXVlbmNlID0gbGlz
dAotCi0KLXUgPSBzaXgudGV4dF90eXBlCi0KLSMgVGhlIF9yZXByY29tcGFyZSBhdHRyaWJ1dGUg
b24gdGhlIHV0aWwgbW9kdWxlIGlzIHVzZWQgYnkgdGhlIG5ldyBhc3NlcnRpb24KLSMgaW50ZXJw
cmV0YXRpb24gY29kZSBhbmQgYXNzZXJ0aW9uIHJld3JpdGVyIHRvIGRldGVjdCB0aGlzIHBsdWdp
biB3YXMKLSMgbG9hZGVkIGFuZCBpbiB0dXJuIGNhbGwgdGhlIGhvb2tzIGRlZmluZWQgaGVyZSBh
cyBwYXJ0IG9mIHRoZQotIyBEZWJ1Z0ludGVycHJldGVyLgotX3JlcHJjb21wYXJlID0gTm9uZQot
Ci0KLSMgdGhlIHJlLWVuY29kaW5nIGlzIG5lZWRlZCBmb3IgcHl0aG9uMiByZXByCi0jIHdpdGgg
bm9uLWFzY2lpIGNoYXJhY3RlcnMgKHNlZSBpc3N1ZSA4NzcgYW5kIDEzNzkpCi1kZWYgZWN1KHMp
OgotICAgIHRyeToKLSAgICAgICAgcmV0dXJuIHUocywgJ3V0Zi04JywgJ3JlcGxhY2UnKQotICAg
IGV4Y2VwdCBUeXBlRXJyb3I6Ci0gICAgICAgIHJldHVybiBzCi0KLQotZGVmIGZvcm1hdF9leHBs
YW5hdGlvbihleHBsYW5hdGlvbik6Ci0gICAgIiIiVGhpcyBmb3JtYXRzIGFuIGV4cGxhbmF0aW9u
Ci0KLSAgICBOb3JtYWxseSBhbGwgZW1iZWRkZWQgbmV3bGluZXMgYXJlIGVzY2FwZWQsIGhvd2V2
ZXIgdGhlcmUgYXJlCi0gICAgdGhyZWUgZXhjZXB0aW9uczogXG57LCBcbn0gYW5kIFxufi4gIFRo
ZSBmaXJzdCB0d28gYXJlIGludGVuZGVkCi0gICAgY292ZXIgbmVzdGVkIGV4cGxhbmF0aW9ucywg
c2VlIGZ1bmN0aW9uIGFuZCBhdHRyaWJ1dGUgZXhwbGFuYXRpb25zCi0gICAgZm9yIGV4YW1wbGVz
ICgudmlzaXRfQ2FsbCgpLCB2aXNpdF9BdHRyaWJ1dGUoKSkuICBUaGUgbGFzdCBvbmUgaXMKLSAg
ICBmb3Igd2hlbiBvbmUgZXhwbGFuYXRpb24gbmVlZHMgdG8gc3BhbiBtdWx0aXBsZSBsaW5lcywg
ZS5nLiB3aGVuCi0gICAgZGlzcGxheWluZyBkaWZmcy4KLSAgICAiIiIKLSAgICBleHBsYW5hdGlv
biA9IGVjdShleHBsYW5hdGlvbikKLSAgICBsaW5lcyA9IF9zcGxpdF9leHBsYW5hdGlvbihleHBs
YW5hdGlvbikKLSAgICByZXN1bHQgPSBfZm9ybWF0X2xpbmVzKGxpbmVzKQotICAgIHJldHVybiB1
KCdcbicpLmpvaW4ocmVzdWx0KQotCi0KLWRlZiBfc3BsaXRfZXhwbGFuYXRpb24oZXhwbGFuYXRp
b24pOgotICAgICIiIlJldHVybiBhIGxpc3Qgb2YgaW5kaXZpZHVhbCBsaW5lcyBpbiB0aGUgZXhw
bGFuYXRpb24KLQotICAgIFRoaXMgd2lsbCByZXR1cm4gYSBsaXN0IG9mIGxpbmVzIHNwbGl0IG9u
ICdcbnsnLCAnXG59JyBhbmQgJ1xuficuCi0gICAgQW55IG90aGVyIG5ld2xpbmVzIHdpbGwgYmUg
ZXNjYXBlZCBhbmQgYXBwZWFyIGluIHRoZSBsaW5lIGFzIHRoZQotICAgIGxpdGVyYWwgJ1xuJyBj
aGFyYWN0ZXJzLgotICAgICIiIgotICAgIHJhd19saW5lcyA9IChleHBsYW5hdGlvbiBvciB1KCcn
KSkuc3BsaXQoJ1xuJykKLSAgICBsaW5lcyA9IFtyYXdfbGluZXNbMF1dCi0gICAgZm9yIHZhbHVl
cyBpbiByYXdfbGluZXNbMTpdOgotICAgICAgICBpZiB2YWx1ZXMgYW5kIHZhbHVlc1swXSBpbiBb
J3snLCAnfScsICd+JywgJz4nXToKLSAgICAgICAgICAgIGxpbmVzLmFwcGVuZCh2YWx1ZXMpCi0g
ICAgICAgIGVsc2U6Ci0gICAgICAgICAgICBsaW5lc1stMV0gKz0gJ1xcbicgKyB2YWx1ZXMKLSAg
ICByZXR1cm4gbGluZXMKLQotCi1kZWYgX2Zvcm1hdF9saW5lcyhsaW5lcyk6Ci0gICAgIiIiRm9y
bWF0IHRoZSBpbmRpdmlkdWFsIGxpbmVzCi0KLSAgICBUaGlzIHdpbGwgcmVwbGFjZSB0aGUgJ3sn
LCAnfScgYW5kICd+JyBjaGFyYWN0ZXJzIG9mIG91ciBtaW5pCi0gICAgZm9ybWF0dGluZyBsYW5n
dWFnZSB3aXRoIHRoZSBwcm9wZXIgJ3doZXJlIC4uLicsICdhbmQgLi4uJyBhbmQgJyArCi0gICAg
Li4uJyB0ZXh0LCB0YWtpbmcgY2FyZSBvZiBpbmRlbnRhdGlvbiBhbG9uZyB0aGUgd2F5LgotCi0g
ICAgUmV0dXJuIGEgbGlzdCBvZiBmb3JtYXR0ZWQgbGluZXMuCi0gICAgIiIiCi0gICAgcmVzdWx0
ID0gbGluZXNbOjFdCi0gICAgc3RhY2sgPSBbMF0KLSAgICBzdGFja2NudCA9IFswXQotICAgIGZv
ciBsaW5lIGluIGxpbmVzWzE6XToKLSAgICAgICAgaWYgbGluZS5zdGFydHN3aXRoKCd7Jyk6Ci0g
ICAgICAgICAgICBpZiBzdGFja2NudFstMV06Ci0gICAgICAgICAgICAgICAgcyA9IHUoJ2FuZCAg
ICcpCi0gICAgICAgICAgICBlbHNlOgotICAgICAgICAgICAgICAgIHMgPSB1KCd3aGVyZSAnKQot
ICAgICAgICAgICAgc3RhY2suYXBwZW5kKGxlbihyZXN1bHQpKQotICAgICAgICAgICAgc3RhY2tj
bnRbLTFdICs9IDEKLSAgICAgICAgICAgIHN0YWNrY250LmFwcGVuZCgwKQotICAgICAgICAgICAg
cmVzdWx0LmFwcGVuZCh1KCcgKycpICsgdSgnICAnKSAqIChsZW4oc3RhY2spIC0gMSkgKyBzICsg
bGluZVsxOl0pCi0gICAgICAgIGVsaWYgbGluZS5zdGFydHN3aXRoKCd9Jyk6Ci0gICAgICAgICAg
ICBzdGFjay5wb3AoKQotICAgICAgICAgICAgc3RhY2tjbnQucG9wKCkKLSAgICAgICAgICAgIHJl
c3VsdFtzdGFja1stMV1dICs9IGxpbmVbMTpdCi0gICAgICAgIGVsc2U6Ci0gICAgICAgICAgICBh
c3NlcnQgbGluZVswXSBpbiBbJ34nLCAnPiddCi0gICAgICAgICAgICBzdGFja1stMV0gKz0gMQot
ICAgICAgICAgICAgaW5kZW50ID0gbGVuKHN0YWNrKSBpZiBsaW5lLnN0YXJ0c3dpdGgoJ34nKSBl
bHNlIGxlbihzdGFjaykgLSAxCi0gICAgICAgICAgICByZXN1bHQuYXBwZW5kKHUoJyAgJykgKiBp
bmRlbnQgKyBsaW5lWzE6XSkKLSAgICBhc3NlcnQgbGVuKHN0YWNrKSA9PSAxCi0gICAgcmV0dXJu
IHJlc3VsdAotCi0KLSMgUHJvdmlkZSBiYXNlc3RyaW5nIGluIHB5dGhvbjMKLXRyeToKLSAgICBi
YXNlc3RyaW5nID0gYmFzZXN0cmluZwotZXhjZXB0IE5hbWVFcnJvcjoKLSAgICBiYXNlc3RyaW5n
ID0gc3RyCi0KLQotZGVmIGFzc2VydHJlcHJfY29tcGFyZShjb25maWcsIG9wLCBsZWZ0LCByaWdo
dCk6Ci0gICAgIiIiUmV0dXJuIHNwZWNpYWxpc2VkIGV4cGxhbmF0aW9ucyBmb3Igc29tZSBvcGVy
YXRvcnMvb3BlcmFuZHMiIiIKLSAgICB3aWR0aCA9IDgwIC0gMTUgLSBsZW4ob3ApIC0gMiAgIyAx
NSBjaGFycyBpbmRlbnRhdGlvbiwgMSBzcGFjZSBhcm91bmQgb3AKLSAgICBsZWZ0X3JlcHIgPSBw
eS5pby5zYWZlcmVwcihsZWZ0LCBtYXhzaXplPWludCh3aWR0aCAvLyAyKSkKLSAgICByaWdodF9y
ZXByID0gcHkuaW8uc2FmZXJlcHIocmlnaHQsIG1heHNpemU9d2lkdGggLSBsZW4obGVmdF9yZXBy
KSkKLQotICAgIHN1bW1hcnkgPSB1KCclcyAlcyAlcycpICUgKGVjdShsZWZ0X3JlcHIpLCBvcCwg
ZWN1KHJpZ2h0X3JlcHIpKQotCi0gICAgZGVmIGlzc2VxdWVuY2UoeCk6Ci0gICAgICAgIHJldHVy
biAoaXNpbnN0YW5jZSh4LCAobGlzdCwgdHVwbGUsIFNlcXVlbmNlKSkgYW5kIG5vdCBpc2luc3Rh
bmNlKHgsIGJhc2VzdHJpbmcpKQotCi0gICAgZGVmIGlzdGV4dCh4KToKLSAgICAgICAgcmV0dXJu
IGlzaW5zdGFuY2UoeCwgYmFzZXN0cmluZykKLQotICAgIGRlZiBpc2RpY3QoeCk6Ci0gICAgICAg
IHJldHVybiBpc2luc3RhbmNlKHgsIGRpY3QpCi0KLSAgICBkZWYgaXNzZXQoeCk6Ci0gICAgICAg
IHJldHVybiBpc2luc3RhbmNlKHgsIChzZXQsIGZyb3plbnNldCkpCi0KLSAgICBkZWYgaXNpdGVy
YWJsZShvYmopOgotICAgICAgICB0cnk6Ci0gICAgICAgICAgICBpdGVyKG9iaikKLSAgICAgICAg
ICAgIHJldHVybiBub3QgaXN0ZXh0KG9iaikKLSAgICAgICAgZXhjZXB0IFR5cGVFcnJvcjoKLSAg
ICAgICAgICAgIHJldHVybiBGYWxzZQotCi0gICAgdmVyYm9zZSA9IGNvbmZpZy5nZXRvcHRpb24o
J3ZlcmJvc2UnKQotICAgIGV4cGxhbmF0aW9uID0gTm9uZQotICAgIHRyeToKLSAgICAgICAgaWYg
b3AgPT0gJz09JzoKLSAgICAgICAgICAgIGlmIGlzdGV4dChsZWZ0KSBhbmQgaXN0ZXh0KHJpZ2h0
KToKLSAgICAgICAgICAgICAgICBleHBsYW5hdGlvbiA9IF9kaWZmX3RleHQobGVmdCwgcmlnaHQs
IHZlcmJvc2UpCi0gICAgICAgICAgICBlbHNlOgotICAgICAgICAgICAgICAgIGlmIGlzc2VxdWVu
Y2UobGVmdCkgYW5kIGlzc2VxdWVuY2UocmlnaHQpOgotICAgICAgICAgICAgICAgICAgICBleHBs
YW5hdGlvbiA9IF9jb21wYXJlX2VxX3NlcXVlbmNlKGxlZnQsIHJpZ2h0LCB2ZXJib3NlKQotICAg
ICAgICAgICAgICAgIGVsaWYgaXNzZXQobGVmdCkgYW5kIGlzc2V0KHJpZ2h0KToKLSAgICAgICAg
ICAgICAgICAgICAgZXhwbGFuYXRpb24gPSBfY29tcGFyZV9lcV9zZXQobGVmdCwgcmlnaHQsIHZl
cmJvc2UpCi0gICAgICAgICAgICAgICAgZWxpZiBpc2RpY3QobGVmdCkgYW5kIGlzZGljdChyaWdo
dCk6Ci0gICAgICAgICAgICAgICAgICAgIGV4cGxhbmF0aW9uID0gX2NvbXBhcmVfZXFfZGljdChs
ZWZ0LCByaWdodCwgdmVyYm9zZSkKLSAgICAgICAgICAgICAgICBpZiBpc2l0ZXJhYmxlKGxlZnQp
IGFuZCBpc2l0ZXJhYmxlKHJpZ2h0KToKLSAgICAgICAgICAgICAgICAgICAgZXhwbCA9IF9jb21w
YXJlX2VxX2l0ZXJhYmxlKGxlZnQsIHJpZ2h0LCB2ZXJib3NlKQotICAgICAgICAgICAgICAgICAg
ICBpZiBleHBsYW5hdGlvbiBpcyBub3QgTm9uZToKLSAgICAgICAgICAgICAgICAgICAgICAgIGV4
cGxhbmF0aW9uLmV4dGVuZChleHBsKQotICAgICAgICAgICAgICAgICAgICBlbHNlOgotICAgICAg
ICAgICAgICAgICAgICAgICAgZXhwbGFuYXRpb24gPSBleHBsCi0gICAgICAgIGVsaWYgb3AgPT0g
J25vdCBpbic6Ci0gICAgICAgICAgICBpZiBpc3RleHQobGVmdCkgYW5kIGlzdGV4dChyaWdodCk6
Ci0gICAgICAgICAgICAgICAgZXhwbGFuYXRpb24gPSBfbm90aW5fdGV4dChsZWZ0LCByaWdodCwg
dmVyYm9zZSkKLSAgICBleGNlcHQgRXhjZXB0aW9uOgotICAgICAgICBleHBsYW5hdGlvbiA9IFsK
LSAgICAgICAgICAgIHUoJyhweXRlc3RfYXNzZXJ0aW9uIHBsdWdpbjogcmVwcmVzZW50YXRpb24g
b2YgZGV0YWlscyBmYWlsZWQuICAnCi0gICAgICAgICAgICAgICdQcm9iYWJseSBhbiBvYmplY3Qg
aGFzIGEgZmF1bHR5IF9fcmVwcl9fLiknKSwKLSAgICAgICAgICAgIHUoX3B5dGVzdC5fY29kZS5F
eGNlcHRpb25JbmZvKCkpXQotCi0gICAgaWYgbm90IGV4cGxhbmF0aW9uOgotICAgICAgICByZXR1
cm4gTm9uZQotCi0gICAgcmV0dXJuIFtzdW1tYXJ5XSArIGV4cGxhbmF0aW9uCi0KLQotZGVmIF9k
aWZmX3RleHQobGVmdCwgcmlnaHQsIHZlcmJvc2U9RmFsc2UpOgotICAgICIiIlJldHVybiB0aGUg
ZXhwbGFuYXRpb24gZm9yIHRoZSBkaWZmIGJldHdlZW4gdGV4dCBvciBieXRlcwotCi0gICAgVW5s
ZXNzIC0tdmVyYm9zZSBpcyB1c2VkIHRoaXMgd2lsbCBza2lwIGxlYWRpbmcgYW5kIHRyYWlsaW5n
Ci0gICAgY2hhcmFjdGVycyB3aGljaCBhcmUgaWRlbnRpY2FsIHRvIGtlZXAgdGhlIGRpZmYgbWlu
aW1hbC4KLQotICAgIElmIHRoZSBpbnB1dCBhcmUgYnl0ZXMgdGhleSB3aWxsIGJlIHNhZmVseSBj
b252ZXJ0ZWQgdG8gdGV4dC4KLSAgICAiIiIKLSAgICBmcm9tIGRpZmZsaWIgaW1wb3J0IG5kaWZm
Ci0gICAgZXhwbGFuYXRpb24gPSBbXQotICAgIGlmIGlzaW5zdGFuY2UobGVmdCwgc2l4LmJpbmFy
eV90eXBlKToKLSAgICAgICAgbGVmdCA9IHUocmVwcihsZWZ0KVsxOi0xXSkucmVwbGFjZShyJ1xu
JywgJ1xuJykKLSAgICBpZiBpc2luc3RhbmNlKHJpZ2h0LCBzaXguYmluYXJ5X3R5cGUpOgotICAg
ICAgICByaWdodCA9IHUocmVwcihyaWdodClbMTotMV0pLnJlcGxhY2UocidcbicsICdcbicpCi0g
ICAgaWYgbm90IHZlcmJvc2U6Ci0gICAgICAgIGkgPSAwICAjIGp1c3QgaW4gY2FzZSBsZWZ0IG9y
IHJpZ2h0IGhhcyB6ZXJvIGxlbmd0aAotICAgICAgICBmb3IgaSBpbiByYW5nZShtaW4obGVuKGxl
ZnQpLCBsZW4ocmlnaHQpKSk6Ci0gICAgICAgICAgICBpZiBsZWZ0W2ldICE9IHJpZ2h0W2ldOgot
ICAgICAgICAgICAgICAgIGJyZWFrCi0gICAgICAgIGlmIGkgPiA0MjoKLSAgICAgICAgICAgIGkg
LT0gMTAgICAgICAgICAgICAgICAgICMgUHJvdmlkZSBzb21lIGNvbnRleHQKLSAgICAgICAgICAg
IGV4cGxhbmF0aW9uID0gW3UoJ1NraXBwaW5nICVzIGlkZW50aWNhbCBsZWFkaW5nICcKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgJ2NoYXJhY3RlcnMgaW4gZGlmZiwgdXNlIC12IHRvIHNo
b3cnKSAlIGldCi0gICAgICAgICAgICBsZWZ0ID0gbGVmdFtpOl0KLSAgICAgICAgICAgIHJpZ2h0
ID0gcmlnaHRbaTpdCi0gICAgICAgIGlmIGxlbihsZWZ0KSA9PSBsZW4ocmlnaHQpOgotICAgICAg
ICAgICAgZm9yIGkgaW4gcmFuZ2UobGVuKGxlZnQpKToKLSAgICAgICAgICAgICAgICBpZiBsZWZ0
Wy1pXSAhPSByaWdodFstaV06Ci0gICAgICAgICAgICAgICAgICAgIGJyZWFrCi0gICAgICAgICAg
ICBpZiBpID4gNDI6Ci0gICAgICAgICAgICAgICAgaSAtPSAxMCAgICAgIyBQcm92aWRlIHNvbWUg
Y29udGV4dAotICAgICAgICAgICAgICAgIGV4cGxhbmF0aW9uICs9IFt1KCdTa2lwcGluZyAlcyBp
ZGVudGljYWwgdHJhaWxpbmcgJwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdj
aGFyYWN0ZXJzIGluIGRpZmYsIHVzZSAtdiB0byBzaG93JykgJSBpXQotICAgICAgICAgICAgICAg
IGxlZnQgPSBsZWZ0WzotaV0KLSAgICAgICAgICAgICAgICByaWdodCA9IHJpZ2h0WzotaV0KLSAg
ICBrZWVwZW5kcyA9IFRydWUKLSAgICBleHBsYW5hdGlvbiArPSBbbGluZS5zdHJpcCgnXG4nKQot
ICAgICAgICAgICAgICAgICAgICBmb3IgbGluZSBpbiBuZGlmZihsZWZ0LnNwbGl0bGluZXMoa2Vl
cGVuZHMpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByaWdodC5zcGxp
dGxpbmVzKGtlZXBlbmRzKSldCi0gICAgcmV0dXJuIGV4cGxhbmF0aW9uCi0KLQotZGVmIF9jb21w
YXJlX2VxX2l0ZXJhYmxlKGxlZnQsIHJpZ2h0LCB2ZXJib3NlPUZhbHNlKToKLSAgICBpZiBub3Qg
dmVyYm9zZToKLSAgICAgICAgcmV0dXJuIFt1KCdVc2UgLXYgdG8gZ2V0IHRoZSBmdWxsIGRpZmYn
KV0KLSAgICAjIGR5bmFtaWMgaW1wb3J0IHRvIHNwZWVkdXAgcHl0ZXN0Ci0gICAgaW1wb3J0IGRp
ZmZsaWIKLQotICAgIHRyeToKLSAgICAgICAgbGVmdF9mb3JtYXR0aW5nID0gcHByaW50LnBmb3Jt
YXQobGVmdCkuc3BsaXRsaW5lcygpCi0gICAgICAgIHJpZ2h0X2Zvcm1hdHRpbmcgPSBwcHJpbnQu
cGZvcm1hdChyaWdodCkuc3BsaXRsaW5lcygpCi0gICAgICAgIGV4cGxhbmF0aW9uID0gW3UoJ0Z1
bGwgZGlmZjonKV0KLSAgICBleGNlcHQgRXhjZXB0aW9uOgotICAgICAgICAjIGhhY2s6IFByZXR0
eVByaW50ZXIucGZvcm1hdCgpIGluIHB5dGhvbiAyIGZhaWxzIHdoZW4gZm9ybWF0dGluZyBpdGVt
cyB0aGF0IGNhbid0IGJlIHNvcnRlZCgpLCBpZSwgY2FsbGluZwotICAgICAgICAjIHNvcnRlZCgp
IG9uIGEgbGlzdCB3b3VsZCByYWlzZS4gU2VlIGlzc3VlICM3MTguCi0gICAgICAgICMgQXMgYSB3
b3JrYXJvdW5kLCB0aGUgZnVsbCBkaWZmIGlzIGdlbmVyYXRlZCBieSB1c2luZyB0aGUgcmVwcigp
IHN0cmluZyBvZiBlYWNoIGl0ZW0gb2YgZWFjaCBjb250YWluZXIuCi0gICAgICAgIGxlZnRfZm9y
bWF0dGluZyA9IHNvcnRlZChyZXByKHgpIGZvciB4IGluIGxlZnQpCi0gICAgICAgIHJpZ2h0X2Zv
cm1hdHRpbmcgPSBzb3J0ZWQocmVwcih4KSBmb3IgeCBpbiByaWdodCkKLSAgICAgICAgZXhwbGFu
YXRpb24gPSBbdSgnRnVsbCBkaWZmIChmYWxsYmFjayB0byBjYWxsaW5nIHJlcHIgb24gZWFjaCBp
dGVtKTonKV0KLSAgICBleHBsYW5hdGlvbi5leHRlbmQobGluZS5zdHJpcCgpIGZvciBsaW5lIGlu
IGRpZmZsaWIubmRpZmYobGVmdF9mb3JtYXR0aW5nLCByaWdodF9mb3JtYXR0aW5nKSkKLSAgICBy
ZXR1cm4gZXhwbGFuYXRpb24KLQotCi1kZWYgX2NvbXBhcmVfZXFfc2VxdWVuY2UobGVmdCwgcmln
aHQsIHZlcmJvc2U9RmFsc2UpOgotICAgIGV4cGxhbmF0aW9uID0gW10KLSAgICBmb3IgaSBpbiBy
YW5nZShtaW4obGVuKGxlZnQpLCBsZW4ocmlnaHQpKSk6Ci0gICAgICAgIGlmIGxlZnRbaV0gIT0g
cmlnaHRbaV06Ci0gICAgICAgICAgICBleHBsYW5hdGlvbiArPSBbdSgnQXQgaW5kZXggJXMgZGlm
ZjogJXIgIT0gJXInKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICUgKGksIGxlZnRbaV0s
IHJpZ2h0W2ldKV0KLSAgICAgICAgICAgIGJyZWFrCi0gICAgaWYgbGVuKGxlZnQpID4gbGVuKHJp
Z2h0KToKLSAgICAgICAgZXhwbGFuYXRpb24gKz0gW3UoJ0xlZnQgY29udGFpbnMgbW9yZSBpdGVt
cywgZmlyc3QgZXh0cmEgaXRlbTogJXMnKQotICAgICAgICAgICAgICAgICAgICAgICAgJSBweS5p
by5zYWZlcmVwcihsZWZ0W2xlbihyaWdodCldLCldCi0gICAgZWxpZiBsZW4obGVmdCkgPCBsZW4o
cmlnaHQpOgotICAgICAgICBleHBsYW5hdGlvbiArPSBbCi0gICAgICAgICAgICB1KCdSaWdodCBj
b250YWlucyBtb3JlIGl0ZW1zLCBmaXJzdCBleHRyYSBpdGVtOiAlcycpICUKLSAgICAgICAgICAg
IHB5LmlvLnNhZmVyZXByKHJpZ2h0W2xlbihsZWZ0KV0sKV0KLSAgICByZXR1cm4gZXhwbGFuYXRp
b24KLQotCi1kZWYgX2NvbXBhcmVfZXFfc2V0KGxlZnQsIHJpZ2h0LCB2ZXJib3NlPUZhbHNlKToK
LSAgICBleHBsYW5hdGlvbiA9IFtdCi0gICAgZGlmZl9sZWZ0ID0gbGVmdCAtIHJpZ2h0Ci0gICAg
ZGlmZl9yaWdodCA9IHJpZ2h0IC0gbGVmdAotICAgIGlmIGRpZmZfbGVmdDoKLSAgICAgICAgZXhw
bGFuYXRpb24uYXBwZW5kKHUoJ0V4dHJhIGl0ZW1zIGluIHRoZSBsZWZ0IHNldDonKSkKLSAgICAg
ICAgZm9yIGl0ZW0gaW4gZGlmZl9sZWZ0OgotICAgICAgICAgICAgZXhwbGFuYXRpb24uYXBwZW5k
KHB5LmlvLnNhZmVyZXByKGl0ZW0pKQotICAgIGlmIGRpZmZfcmlnaHQ6Ci0gICAgICAgIGV4cGxh
bmF0aW9uLmFwcGVuZCh1KCdFeHRyYSBpdGVtcyBpbiB0aGUgcmlnaHQgc2V0OicpKQotICAgICAg
ICBmb3IgaXRlbSBpbiBkaWZmX3JpZ2h0OgotICAgICAgICAgICAgZXhwbGFuYXRpb24uYXBwZW5k
KHB5LmlvLnNhZmVyZXByKGl0ZW0pKQotICAgIHJldHVybiBleHBsYW5hdGlvbgotCi0KLWRlZiBf
Y29tcGFyZV9lcV9kaWN0KGxlZnQsIHJpZ2h0LCB2ZXJib3NlPUZhbHNlKToKLSAgICBleHBsYW5h
dGlvbiA9IFtdCi0gICAgY29tbW9uID0gc2V0KGxlZnQpLmludGVyc2VjdGlvbihzZXQocmlnaHQp
KQotICAgIHNhbWUgPSBkaWN0KChrLCBsZWZ0W2tdKSBmb3IgayBpbiBjb21tb24gaWYgbGVmdFtr
XSA9PSByaWdodFtrXSkKLSAgICBpZiBzYW1lIGFuZCB2ZXJib3NlIDwgMjoKLSAgICAgICAgZXhw
bGFuYXRpb24gKz0gW3UoJ09taXR0aW5nICVzIGlkZW50aWNhbCBpdGVtcywgdXNlIC12diB0byBz
aG93JykgJQotICAgICAgICAgICAgICAgICAgICAgICAgbGVuKHNhbWUpXQotICAgIGVsaWYgc2Ft
ZToKLSAgICAgICAgZXhwbGFuYXRpb24gKz0gW3UoJ0NvbW1vbiBpdGVtczonKV0KLSAgICAgICAg
ZXhwbGFuYXRpb24gKz0gcHByaW50LnBmb3JtYXQoc2FtZSkuc3BsaXRsaW5lcygpCi0gICAgZGlm
ZiA9IHNldChrIGZvciBrIGluIGNvbW1vbiBpZiBsZWZ0W2tdICE9IHJpZ2h0W2tdKQotICAgIGlm
IGRpZmY6Ci0gICAgICAgIGV4cGxhbmF0aW9uICs9IFt1KCdEaWZmZXJpbmcgaXRlbXM6JyldCi0g
ICAgICAgIGZvciBrIGluIGRpZmY6Ci0gICAgICAgICAgICBleHBsYW5hdGlvbiArPSBbcHkuaW8u
c2FmZXJlcHIoe2s6IGxlZnRba119KSArICcgIT0gJyArCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgcHkuaW8uc2FmZXJlcHIoe2s6IHJpZ2h0W2tdfSldCi0gICAgZXh0cmFfbGVmdCA9IHNl
dChsZWZ0KSAtIHNldChyaWdodCkKLSAgICBpZiBleHRyYV9sZWZ0OgotICAgICAgICBleHBsYW5h
dGlvbi5hcHBlbmQodSgnTGVmdCBjb250YWlucyBtb3JlIGl0ZW1zOicpKQotICAgICAgICBleHBs
YW5hdGlvbi5leHRlbmQocHByaW50LnBmb3JtYXQoCi0gICAgICAgICAgICBkaWN0KChrLCBsZWZ0
W2tdKSBmb3IgayBpbiBleHRyYV9sZWZ0KSkuc3BsaXRsaW5lcygpKQotICAgIGV4dHJhX3JpZ2h0
ID0gc2V0KHJpZ2h0KSAtIHNldChsZWZ0KQotICAgIGlmIGV4dHJhX3JpZ2h0OgotICAgICAgICBl
eHBsYW5hdGlvbi5hcHBlbmQodSgnUmlnaHQgY29udGFpbnMgbW9yZSBpdGVtczonKSkKLSAgICAg
ICAgZXhwbGFuYXRpb24uZXh0ZW5kKHBwcmludC5wZm9ybWF0KAotICAgICAgICAgICAgZGljdCgo
aywgcmlnaHRba10pIGZvciBrIGluIGV4dHJhX3JpZ2h0KSkuc3BsaXRsaW5lcygpKQotICAgIHJl
dHVybiBleHBsYW5hdGlvbgotCi0KLWRlZiBfbm90aW5fdGV4dCh0ZXJtLCB0ZXh0LCB2ZXJib3Nl
PUZhbHNlKToKLSAgICBpbmRleCA9IHRleHQuZmluZCh0ZXJtKQotICAgIGhlYWQgPSB0ZXh0Wzpp
bmRleF0KLSAgICB0YWlsID0gdGV4dFtpbmRleCArIGxlbih0ZXJtKTpdCi0gICAgY29ycmVjdF90
ZXh0ID0gaGVhZCArIHRhaWwKLSAgICBkaWZmID0gX2RpZmZfdGV4dChjb3JyZWN0X3RleHQsIHRl
eHQsIHZlcmJvc2UpCi0gICAgbmV3ZGlmZiA9IFt1KCclcyBpcyBjb250YWluZWQgaGVyZTonKSAl
IHB5LmlvLnNhZmVyZXByKHRlcm0sIG1heHNpemU9NDIpXQotICAgIGZvciBsaW5lIGluIGRpZmY6
Ci0gICAgICAgIGlmIGxpbmUuc3RhcnRzd2l0aCh1KCdTa2lwcGluZycpKToKLSAgICAgICAgICAg
IGNvbnRpbnVlCi0gICAgICAgIGlmIGxpbmUuc3RhcnRzd2l0aCh1KCctICcpKToKLSAgICAgICAg
ICAgIGNvbnRpbnVlCi0gICAgICAgIGlmIGxpbmUuc3RhcnRzd2l0aCh1KCcrICcpKToKLSAgICAg
ICAgICAgIG5ld2RpZmYuYXBwZW5kKHUoJyAgJykgKyBsaW5lWzI6XSkKLSAgICAgICAgZWxzZToK
LSAgICAgICAgICAgIG5ld2RpZmYuYXBwZW5kKGxpbmUpCi0gICAgcmV0dXJuIG5ld2RpZmYKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvdGhpcmRfcGFydHkvcHl0ZXN0L19weXRlc3QvYXNzZXJ0aW9uL3czYy1pbXBvcnQubG9nIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9w
YXJ0eS9weXRlc3QvX3B5dGVzdC9hc3NlcnRpb24vdzNjLWltcG9ydC5sb2cKZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IGQxMzA3ZDNhYmM3MjE1OGY0MWQ2NDQyY2ZkNTkxZTFiMDVmOWNh
Y2YuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9w
eXRlc3QvX3B5dGVzdC9hc3NlcnRpb24vdzNjLWltcG9ydC5sb2cKKysrIC9kZXYvbnVsbApAQCAt
MSwyMCArMCwwIEBACi1UaGUgdGVzdHMgaW4gdGhpcyBkaXJlY3Rvcnkgd2VyZSBpbXBvcnRlZCBm
cm9tIHRoZSBXM0MgcmVwb3NpdG9yeS4KLURvIE5PVCBtb2RpZnkgdGhlc2UgdGVzdHMgZGlyZWN0
bHkgaW4gV2ViS2l0LgotSW5zdGVhZCwgY3JlYXRlIGEgcHVsbCByZXF1ZXN0IG9uIHRoZSBXUFQg
Z2l0aHViOgotCWh0dHBzOi8vZ2l0aHViLmNvbS93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzCi0KLVRo
ZW4gcnVuIHRoZSBUb29scy9TY3JpcHRzL2ltcG9ydC13M2MtdGVzdHMgaW4gV2ViS2l0IHRvIHJl
aW1wb3J0Ci0KLURvIE5PVCBtb2RpZnkgb3IgcmVtb3ZlIHRoaXMgZmlsZS4KLQotLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tCi1Qcm9wZXJ0aWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi1Qcm9w
ZXJ0eSB2YWx1ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLQotTGlzdCBvZiBmaWxlczoKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9fcHl0ZXN0L2Fzc2VydGlvbi9fX2lu
aXRfXy5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvdGhpcmRfcGFydHkvcHl0ZXN0L19weXRlc3QvYXNzZXJ0aW9uL3Jld3JpdGUucHkKLS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5
L3B5dGVzdC9fcHl0ZXN0L2Fzc2VydGlvbi90cnVuY2F0ZS5weQotL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L19weXRl
c3QvYXNzZXJ0aW9uL3V0aWwucHkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L19weXRlc3QvY2Fj
aGVwcm92aWRlci5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L19weXRlc3QvY2FjaGVwcm92aWRlci5weQpkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYzUzN2MxNDQ3MmIxY2U5MTY5Y2ZlNzYyOTAxNTg4
NGIwZTRlM2U0Zi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0g
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJk
X3BhcnR5L3B5dGVzdC9fcHl0ZXN0L2NhY2hlcHJvdmlkZXIucHkKKysrIC9kZXYvbnVsbApAQCAt
MSwyNjAgKzAsMCBAQAotIiIiCi1tZXJnZWQgaW1wbGVtZW50YXRpb24gb2YgdGhlIGNhY2hlIHBy
b3ZpZGVyCi0KLXRoZSBuYW1lIGNhY2hlIHdhcyBub3QgY2hvc2VuIHRvIGVuc3VyZSBwbHVnZ3kg
YXV0b21hdGljYWxseQotaWdub3JlcyB0aGUgZXh0ZXJuYWwgcHl0ZXN0LWNhY2hlCi0iIiIKLWZy
b20gX19mdXR1cmVfXyBpbXBvcnQgYWJzb2x1dGVfaW1wb3J0LCBkaXZpc2lvbiwgcHJpbnRfZnVu
Y3Rpb24KLWltcG9ydCBweQotaW1wb3J0IHB5dGVzdAotaW1wb3J0IGpzb24KLWltcG9ydCBvcwot
ZnJvbSBvcy5wYXRoIGltcG9ydCBzZXAgYXMgX3NlcCwgYWx0c2VwIGFzIF9hbHRzZXAKLQotCi1j
bGFzcyBDYWNoZShvYmplY3QpOgotICAgIGRlZiBfX2luaXRfXyhzZWxmLCBjb25maWcpOgotICAg
ICAgICBzZWxmLmNvbmZpZyA9IGNvbmZpZwotICAgICAgICBzZWxmLl9jYWNoZWRpciA9IENhY2hl
LmNhY2hlX2Rpcl9mcm9tX2NvbmZpZyhjb25maWcpCi0gICAgICAgIHNlbGYudHJhY2UgPSBjb25m
aWcudHJhY2Uucm9vdC5nZXQoImNhY2hlIikKLSAgICAgICAgaWYgY29uZmlnLmdldHZhbHVlKCJj
YWNoZWNsZWFyIik6Ci0gICAgICAgICAgICBzZWxmLnRyYWNlKCJjbGVhcmluZyBjYWNoZWRpciIp
Ci0gICAgICAgICAgICBpZiBzZWxmLl9jYWNoZWRpci5jaGVjaygpOgotICAgICAgICAgICAgICAg
IHNlbGYuX2NhY2hlZGlyLnJlbW92ZSgpCi0gICAgICAgICAgICBzZWxmLl9jYWNoZWRpci5ta2Rp
cigpCi0KLSAgICBAc3RhdGljbWV0aG9kCi0gICAgZGVmIGNhY2hlX2Rpcl9mcm9tX2NvbmZpZyhj
b25maWcpOgotICAgICAgICBjYWNoZV9kaXIgPSBjb25maWcuZ2V0aW5pKCJjYWNoZV9kaXIiKQot
ICAgICAgICBjYWNoZV9kaXIgPSBvcy5wYXRoLmV4cGFuZHVzZXIoY2FjaGVfZGlyKQotICAgICAg
ICBjYWNoZV9kaXIgPSBvcy5wYXRoLmV4cGFuZHZhcnMoY2FjaGVfZGlyKQotICAgICAgICBpZiBv
cy5wYXRoLmlzYWJzKGNhY2hlX2Rpcik6Ci0gICAgICAgICAgICByZXR1cm4gcHkucGF0aC5sb2Nh
bChjYWNoZV9kaXIpCi0gICAgICAgIGVsc2U6Ci0gICAgICAgICAgICByZXR1cm4gY29uZmlnLnJv
b3RkaXIuam9pbihjYWNoZV9kaXIpCi0KLSAgICBkZWYgbWFrZWRpcihzZWxmLCBuYW1lKToKLSAg
ICAgICAgIiIiIHJldHVybiBhIGRpcmVjdG9yeSBwYXRoIG9iamVjdCB3aXRoIHRoZSBnaXZlbiBu
YW1lLiAgSWYgdGhlCi0gICAgICAgIGRpcmVjdG9yeSBkb2VzIG5vdCB5ZXQgZXhpc3QsIGl0IHdp
bGwgYmUgY3JlYXRlZC4gIFlvdSBjYW4gdXNlIGl0Ci0gICAgICAgIHRvIG1hbmFnZSBmaWxlcyBs
aWtlcyBlLiBnLiBzdG9yZS9yZXRyaWV2ZSBkYXRhYmFzZQotICAgICAgICBkdW1wcyBhY3Jvc3Mg
dGVzdCBzZXNzaW9ucy4KLQotICAgICAgICA6cGFyYW0gbmFtZTogbXVzdCBiZSBhIHN0cmluZyBu
b3QgY29udGFpbmluZyBhIGBgL2BgIHNlcGFyYXRvci4KLSAgICAgICAgICAgICBNYWtlIHN1cmUg
dGhlIG5hbWUgY29udGFpbnMgeW91ciBwbHVnaW4gb3IgYXBwbGljYXRpb24KLSAgICAgICAgICAg
ICBpZGVudGlmaWVycyB0byBwcmV2ZW50IGNsYXNoZXMgd2l0aCBvdGhlciBjYWNoZSB1c2Vycy4K
LSAgICAgICAgIiIiCi0gICAgICAgIGlmIF9zZXAgaW4gbmFtZSBvciBfYWx0c2VwIGlzIG5vdCBO
b25lIGFuZCBfYWx0c2VwIGluIG5hbWU6Ci0gICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJu
YW1lIGlzIG5vdCBhbGxvd2VkIHRvIGNvbnRhaW4gcGF0aCBzZXBhcmF0b3JzIikKLSAgICAgICAg
cmV0dXJuIHNlbGYuX2NhY2hlZGlyLmVuc3VyZV9kaXIoImQiLCBuYW1lKQotCi0gICAgZGVmIF9n
ZXR2YWx1ZXBhdGgoc2VsZiwga2V5KToKLSAgICAgICAgcmV0dXJuIHNlbGYuX2NhY2hlZGlyLmpv
aW4oJ3YnLCAqa2V5LnNwbGl0KCcvJykpCi0KLSAgICBkZWYgZ2V0KHNlbGYsIGtleSwgZGVmYXVs
dCk6Ci0gICAgICAgICIiIiByZXR1cm4gY2FjaGVkIHZhbHVlIGZvciB0aGUgZ2l2ZW4ga2V5LiAg
SWYgbm8gdmFsdWUKLSAgICAgICAgd2FzIHlldCBjYWNoZWQgb3IgdGhlIHZhbHVlIGNhbm5vdCBi
ZSByZWFkLCB0aGUgc3BlY2lmaWVkCi0gICAgICAgIGRlZmF1bHQgaXMgcmV0dXJuZWQuCi0KLSAg
ICAgICAgOnBhcmFtIGtleTogbXVzdCBiZSBhIGBgL2BgIHNlcGFyYXRlZCB2YWx1ZS4gVXN1YWxs
eSB0aGUgZmlyc3QKLSAgICAgICAgICAgICBuYW1lIGlzIHRoZSBuYW1lIG9mIHlvdXIgcGx1Z2lu
IG9yIHlvdXIgYXBwbGljYXRpb24uCi0gICAgICAgIDpwYXJhbSBkZWZhdWx0OiBtdXN0IGJlIHBy
b3ZpZGVkIGluIGNhc2Ugb2YgYSBjYWNoZS1taXNzIG9yCi0gICAgICAgICAgICAgaW52YWxpZCBj
YWNoZSB2YWx1ZXMuCi0KLSAgICAgICAgIiIiCi0gICAgICAgIHBhdGggPSBzZWxmLl9nZXR2YWx1
ZXBhdGgoa2V5KQotICAgICAgICBpZiBwYXRoLmNoZWNrKCk6Ci0gICAgICAgICAgICB0cnk6Ci0g
ICAgICAgICAgICAgICAgd2l0aCBwYXRoLm9wZW4oInIiKSBhcyBmOgotICAgICAgICAgICAgICAg
ICAgICByZXR1cm4ganNvbi5sb2FkKGYpCi0gICAgICAgICAgICBleGNlcHQgVmFsdWVFcnJvcjoK
LSAgICAgICAgICAgICAgICBzZWxmLnRyYWNlKCJjYWNoZS1pbnZhbGlkIGF0ICVzIiAlIChwYXRo
LCkpCi0gICAgICAgIHJldHVybiBkZWZhdWx0Ci0KLSAgICBkZWYgc2V0KHNlbGYsIGtleSwgdmFs
dWUpOgotICAgICAgICAiIiIgc2F2ZSB2YWx1ZSBmb3IgdGhlIGdpdmVuIGtleS4KLQotICAgICAg
ICA6cGFyYW0ga2V5OiBtdXN0IGJlIGEgYGAvYGAgc2VwYXJhdGVkIHZhbHVlLiBVc3VhbGx5IHRo
ZSBmaXJzdAotICAgICAgICAgICAgIG5hbWUgaXMgdGhlIG5hbWUgb2YgeW91ciBwbHVnaW4gb3Ig
eW91ciBhcHBsaWNhdGlvbi4KLSAgICAgICAgOnBhcmFtIHZhbHVlOiBtdXN0IGJlIG9mIGFueSBj
b21iaW5hdGlvbiBvZiBiYXNpYwotICAgICAgICAgICAgICAgcHl0aG9uIHR5cGVzLCBpbmNsdWRp
bmcgbmVzdGVkIHR5cGVzCi0gICAgICAgICAgICAgICBsaWtlIGUuIGcuIGxpc3RzIG9mIGRpY3Rp
b25hcmllcy4KLSAgICAgICAgIiIiCi0gICAgICAgIHBhdGggPSBzZWxmLl9nZXR2YWx1ZXBhdGgo
a2V5KQotICAgICAgICB0cnk6Ci0gICAgICAgICAgICBwYXRoLmRpcnBhdGgoKS5lbnN1cmVfZGly
KCkKLSAgICAgICAgZXhjZXB0IChweS5lcnJvci5FRVhJU1QsIHB5LmVycm9yLkVBQ0NFUyk6Ci0g
ICAgICAgICAgICBzZWxmLmNvbmZpZy53YXJuKAotICAgICAgICAgICAgICAgIGNvZGU9J0k5Jywg
bWVzc2FnZT0nY291bGQgbm90IGNyZWF0ZSBjYWNoZSBwYXRoICVzJyAlIChwYXRoLCkKLSAgICAg
ICAgICAgICkKLSAgICAgICAgICAgIHJldHVybgotICAgICAgICB0cnk6Ci0gICAgICAgICAgICBm
ID0gcGF0aC5vcGVuKCd3JykKLSAgICAgICAgZXhjZXB0IHB5LmVycm9yLkVOT1RESVI6Ci0gICAg
ICAgICAgICBzZWxmLmNvbmZpZy53YXJuKAotICAgICAgICAgICAgICAgIGNvZGU9J0k5JywgbWVz
c2FnZT0nY2FjaGUgY291bGQgbm90IHdyaXRlIHBhdGggJXMnICUgKHBhdGgsKSkKLSAgICAgICAg
ZWxzZToKLSAgICAgICAgICAgIHdpdGggZjoKLSAgICAgICAgICAgICAgICBzZWxmLnRyYWNlKCJj
YWNoZS13cml0ZSAlczogJXIiICUgKGtleSwgdmFsdWUsKSkKLSAgICAgICAgICAgICAgICBqc29u
LmR1bXAodmFsdWUsIGYsIGluZGVudD0yLCBzb3J0X2tleXM9VHJ1ZSkKLQotCi1jbGFzcyBMRlBs
dWdpbjoKLSAgICAiIiIgUGx1Z2luIHdoaWNoIGltcGxlbWVudHMgdGhlIC0tbGYgKHJ1biBsYXN0
LWZhaWxpbmcpIG9wdGlvbiAiIiIKLQotICAgIGRlZiBfX2luaXRfXyhzZWxmLCBjb25maWcpOgot
ICAgICAgICBzZWxmLmNvbmZpZyA9IGNvbmZpZwotICAgICAgICBhY3RpdmVfa2V5cyA9ICdsZics
ICdmYWlsZWRmaXJzdCcKLSAgICAgICAgc2VsZi5hY3RpdmUgPSBhbnkoY29uZmlnLmdldHZhbHVl
KGtleSkgZm9yIGtleSBpbiBhY3RpdmVfa2V5cykKLSAgICAgICAgc2VsZi5sYXN0ZmFpbGVkID0g
Y29uZmlnLmNhY2hlLmdldCgiY2FjaGUvbGFzdGZhaWxlZCIsIHt9KQotICAgICAgICBzZWxmLl9w
cmV2aW91c2x5X2ZhaWxlZF9jb3VudCA9IE5vbmUKLQotICAgIGRlZiBweXRlc3RfcmVwb3J0X2Nv
bGxlY3Rpb25maW5pc2goc2VsZik6Ci0gICAgICAgIGlmIHNlbGYuYWN0aXZlOgotICAgICAgICAg
ICAgaWYgbm90IHNlbGYuX3ByZXZpb3VzbHlfZmFpbGVkX2NvdW50OgotICAgICAgICAgICAgICAg
IG1vZGUgPSAicnVuIGFsbCAobm8gcmVjb3JkZWQgZmFpbHVyZXMpIgotICAgICAgICAgICAgZWxz
ZToKLSAgICAgICAgICAgICAgICBub3VuID0gJ2ZhaWx1cmUnIGlmIHNlbGYuX3ByZXZpb3VzbHlf
ZmFpbGVkX2NvdW50ID09IDEgZWxzZSAnZmFpbHVyZXMnCi0gICAgICAgICAgICAgICAgc3VmZml4
ID0gIiBmaXJzdCIgaWYgc2VsZi5jb25maWcuZ2V0dmFsdWUoImZhaWxlZGZpcnN0IikgZWxzZSAi
IgotICAgICAgICAgICAgICAgIG1vZGUgPSAicmVydW4gcHJldmlvdXMge2NvdW50fSB7bm91bn17
c3VmZml4fSIuZm9ybWF0KAotICAgICAgICAgICAgICAgICAgICBjb3VudD1zZWxmLl9wcmV2aW91
c2x5X2ZhaWxlZF9jb3VudCwgc3VmZml4PXN1ZmZpeCwgbm91bj1ub3VuCi0gICAgICAgICAgICAg
ICAgKQotICAgICAgICAgICAgcmV0dXJuICJydW4tbGFzdC1mYWlsdXJlOiAlcyIgJSBtb2RlCi0K
LSAgICBkZWYgcHl0ZXN0X3J1bnRlc3RfbG9ncmVwb3J0KHNlbGYsIHJlcG9ydCk6Ci0gICAgICAg
IGlmIChyZXBvcnQud2hlbiA9PSAnY2FsbCcgYW5kIHJlcG9ydC5wYXNzZWQpIG9yIHJlcG9ydC5z
a2lwcGVkOgotICAgICAgICAgICAgc2VsZi5sYXN0ZmFpbGVkLnBvcChyZXBvcnQubm9kZWlkLCBO
b25lKQotICAgICAgICBlbGlmIHJlcG9ydC5mYWlsZWQ6Ci0gICAgICAgICAgICBzZWxmLmxhc3Rm
YWlsZWRbcmVwb3J0Lm5vZGVpZF0gPSBUcnVlCi0KLSAgICBkZWYgcHl0ZXN0X2NvbGxlY3RyZXBv
cnQoc2VsZiwgcmVwb3J0KToKLSAgICAgICAgcGFzc2VkID0gcmVwb3J0Lm91dGNvbWUgaW4gKCdw
YXNzZWQnLCAnc2tpcHBlZCcpCi0gICAgICAgIGlmIHBhc3NlZDoKLSAgICAgICAgICAgIGlmIHJl
cG9ydC5ub2RlaWQgaW4gc2VsZi5sYXN0ZmFpbGVkOgotICAgICAgICAgICAgICAgIHNlbGYubGFz
dGZhaWxlZC5wb3AocmVwb3J0Lm5vZGVpZCkKLSAgICAgICAgICAgICAgICBzZWxmLmxhc3RmYWls
ZWQudXBkYXRlKAotICAgICAgICAgICAgICAgICAgICAoaXRlbS5ub2RlaWQsIFRydWUpCi0gICAg
ICAgICAgICAgICAgICAgIGZvciBpdGVtIGluIHJlcG9ydC5yZXN1bHQpCi0gICAgICAgIGVsc2U6
Ci0gICAgICAgICAgICBzZWxmLmxhc3RmYWlsZWRbcmVwb3J0Lm5vZGVpZF0gPSBUcnVlCi0KLSAg
ICBkZWYgcHl0ZXN0X2NvbGxlY3Rpb25fbW9kaWZ5aXRlbXMoc2VsZiwgc2Vzc2lvbiwgY29uZmln
LCBpdGVtcyk6Ci0gICAgICAgIGlmIHNlbGYuYWN0aXZlIGFuZCBzZWxmLmxhc3RmYWlsZWQ6Ci0g
ICAgICAgICAgICBwcmV2aW91c2x5X2ZhaWxlZCA9IFtdCi0gICAgICAgICAgICBwcmV2aW91c2x5
X3Bhc3NlZCA9IFtdCi0gICAgICAgICAgICBmb3IgaXRlbSBpbiBpdGVtczoKLSAgICAgICAgICAg
ICAgICBpZiBpdGVtLm5vZGVpZCBpbiBzZWxmLmxhc3RmYWlsZWQ6Ci0gICAgICAgICAgICAgICAg
ICAgIHByZXZpb3VzbHlfZmFpbGVkLmFwcGVuZChpdGVtKQotICAgICAgICAgICAgICAgIGVsc2U6
Ci0gICAgICAgICAgICAgICAgICAgIHByZXZpb3VzbHlfcGFzc2VkLmFwcGVuZChpdGVtKQotICAg
ICAgICAgICAgc2VsZi5fcHJldmlvdXNseV9mYWlsZWRfY291bnQgPSBsZW4ocHJldmlvdXNseV9m
YWlsZWQpCi0gICAgICAgICAgICBpZiBub3QgcHJldmlvdXNseV9mYWlsZWQ6Ci0gICAgICAgICAg
ICAgICAgIyBydW5uaW5nIGEgc3Vic2V0IG9mIGFsbCB0ZXN0cyB3aXRoIHJlY29yZGVkIGZhaWx1
cmVzIG91dHNpZGUKLSAgICAgICAgICAgICAgICAjIG9mIHRoZSBzZXQgb2YgdGVzdHMgY3VycmVu
dGx5IGV4ZWN1dGluZwotICAgICAgICAgICAgICAgIHJldHVybgotICAgICAgICAgICAgaWYgc2Vs
Zi5jb25maWcuZ2V0dmFsdWUoImxmIik6Ci0gICAgICAgICAgICAgICAgaXRlbXNbOl0gPSBwcmV2
aW91c2x5X2ZhaWxlZAotICAgICAgICAgICAgICAgIGNvbmZpZy5ob29rLnB5dGVzdF9kZXNlbGVj
dGVkKGl0ZW1zPXByZXZpb3VzbHlfcGFzc2VkKQotICAgICAgICAgICAgZWxzZToKLSAgICAgICAg
ICAgICAgICBpdGVtc1s6XSA9IHByZXZpb3VzbHlfZmFpbGVkICsgcHJldmlvdXNseV9wYXNzZWQK
LQotICAgIGRlZiBweXRlc3Rfc2Vzc2lvbmZpbmlzaChzZWxmLCBzZXNzaW9uKToKLSAgICAgICAg
Y29uZmlnID0gc2VsZi5jb25maWcKLSAgICAgICAgaWYgY29uZmlnLmdldHZhbHVlKCJjYWNoZXNo
b3ciKSBvciBoYXNhdHRyKGNvbmZpZywgInNsYXZlaW5wdXQiKToKLSAgICAgICAgICAgIHJldHVy
bgotCi0gICAgICAgIHNhdmVkX2xhc3RmYWlsZWQgPSBjb25maWcuY2FjaGUuZ2V0KCJjYWNoZS9s
YXN0ZmFpbGVkIiwge30pCi0gICAgICAgIGlmIHNhdmVkX2xhc3RmYWlsZWQgIT0gc2VsZi5sYXN0
ZmFpbGVkOgotICAgICAgICAgICAgY29uZmlnLmNhY2hlLnNldCgiY2FjaGUvbGFzdGZhaWxlZCIs
IHNlbGYubGFzdGZhaWxlZCkKLQotCi1kZWYgcHl0ZXN0X2FkZG9wdGlvbihwYXJzZXIpOgotICAg
IGdyb3VwID0gcGFyc2VyLmdldGdyb3VwKCJnZW5lcmFsIikKLSAgICBncm91cC5hZGRvcHRpb24o
Ci0gICAgICAgICctLWxmJywgJy0tbGFzdC1mYWlsZWQnLCBhY3Rpb249J3N0b3JlX3RydWUnLCBk
ZXN0PSJsZiIsCi0gICAgICAgIGhlbHA9InJlcnVuIG9ubHkgdGhlIHRlc3RzIHRoYXQgZmFpbGVk
ICIKLSAgICAgICAgICAgICAiYXQgdGhlIGxhc3QgcnVuIChvciBhbGwgaWYgbm9uZSBmYWlsZWQp
IikKLSAgICBncm91cC5hZGRvcHRpb24oCi0gICAgICAgICctLWZmJywgJy0tZmFpbGVkLWZpcnN0
JywgYWN0aW9uPSdzdG9yZV90cnVlJywgZGVzdD0iZmFpbGVkZmlyc3QiLAotICAgICAgICBoZWxw
PSJydW4gYWxsIHRlc3RzIGJ1dCBydW4gdGhlIGxhc3QgZmFpbHVyZXMgZmlyc3QuICAiCi0gICAg
ICAgICAgICAgIlRoaXMgbWF5IHJlLW9yZGVyIHRlc3RzIGFuZCB0aHVzIGxlYWQgdG8gIgotICAg
ICAgICAgICAgICJyZXBlYXRlZCBmaXh0dXJlIHNldHVwL3RlYXJkb3duIikKLSAgICBncm91cC5h
ZGRvcHRpb24oCi0gICAgICAgICctLWNhY2hlLXNob3cnLCBhY3Rpb249J3N0b3JlX3RydWUnLCBk
ZXN0PSJjYWNoZXNob3ciLAotICAgICAgICBoZWxwPSJzaG93IGNhY2hlIGNvbnRlbnRzLCBkb24n
dCBwZXJmb3JtIGNvbGxlY3Rpb24gb3IgdGVzdHMiKQotICAgIGdyb3VwLmFkZG9wdGlvbigKLSAg
ICAgICAgJy0tY2FjaGUtY2xlYXInLCBhY3Rpb249J3N0b3JlX3RydWUnLCBkZXN0PSJjYWNoZWNs
ZWFyIiwKLSAgICAgICAgaGVscD0icmVtb3ZlIGFsbCBjYWNoZSBjb250ZW50cyBhdCBzdGFydCBv
ZiB0ZXN0IHJ1bi4iKQotICAgIHBhcnNlci5hZGRpbmkoCi0gICAgICAgICJjYWNoZV9kaXIiLCBk
ZWZhdWx0PScuY2FjaGUnLAotICAgICAgICBoZWxwPSJjYWNoZSBkaXJlY3RvcnkgcGF0aC4iKQot
Ci0KLWRlZiBweXRlc3RfY21kbGluZV9tYWluKGNvbmZpZyk6Ci0gICAgaWYgY29uZmlnLm9wdGlv
bi5jYWNoZXNob3c6Ci0gICAgICAgIGZyb20gX3B5dGVzdC5tYWluIGltcG9ydCB3cmFwX3Nlc3Np
b24KLSAgICAgICAgcmV0dXJuIHdyYXBfc2Vzc2lvbihjb25maWcsIGNhY2hlc2hvdykKLQotCi1A
cHl0ZXN0Lmhvb2tpbXBsKHRyeWZpcnN0PVRydWUpCi1kZWYgcHl0ZXN0X2NvbmZpZ3VyZShjb25m
aWcpOgotICAgIGNvbmZpZy5jYWNoZSA9IENhY2hlKGNvbmZpZykKLSAgICBjb25maWcucGx1Z2lu
bWFuYWdlci5yZWdpc3RlcihMRlBsdWdpbihjb25maWcpLCAibGZwbHVnaW4iKQotCi0KLUBweXRl
c3QuZml4dHVyZQotZGVmIGNhY2hlKHJlcXVlc3QpOgotICAgICIiIgotICAgIFJldHVybiBhIGNh
Y2hlIG9iamVjdCB0aGF0IGNhbiBwZXJzaXN0IHN0YXRlIGJldHdlZW4gdGVzdGluZyBzZXNzaW9u
cy4KLQotICAgIGNhY2hlLmdldChrZXksIGRlZmF1bHQpCi0gICAgY2FjaGUuc2V0KGtleSwgdmFs
dWUpCi0KLSAgICBLZXlzIG11c3QgYmUgYSBgYC9gYCBzZXBhcmF0ZWQgdmFsdWUsIHdoZXJlIHRo
ZSBmaXJzdCBwYXJ0IGlzIHVzdWFsbHkgdGhlCi0gICAgbmFtZSBvZiB5b3VyIHBsdWdpbiBvciBh
cHBsaWNhdGlvbiB0byBhdm9pZCBjbGFzaGVzIHdpdGggb3RoZXIgY2FjaGUgdXNlcnMuCi0KLSAg
ICBWYWx1ZXMgY2FuIGJlIGFueSBvYmplY3QgaGFuZGxlZCBieSB0aGUganNvbiBzdGRsaWIgbW9k
dWxlLgotICAgICIiIgotICAgIHJldHVybiByZXF1ZXN0LmNvbmZpZy5jYWNoZQotCi0KLWRlZiBw
eXRlc3RfcmVwb3J0X2hlYWRlcihjb25maWcpOgotICAgIGlmIGNvbmZpZy5vcHRpb24udmVyYm9z
ZToKLSAgICAgICAgcmVscGF0aCA9IHB5LnBhdGgubG9jYWwoKS5iZXN0cmVscGF0aChjb25maWcu
Y2FjaGUuX2NhY2hlZGlyKQotICAgICAgICByZXR1cm4gImNhY2hlZGlyOiAlcyIgJSByZWxwYXRo
Ci0KLQotZGVmIGNhY2hlc2hvdyhjb25maWcsIHNlc3Npb24pOgotICAgIGZyb20gcHByaW50IGlt
cG9ydCBwcHJpbnQKLSAgICB0dyA9IHB5LmlvLlRlcm1pbmFsV3JpdGVyKCkKLSAgICB0dy5saW5l
KCJjYWNoZWRpcjogIiArIHN0cihjb25maWcuY2FjaGUuX2NhY2hlZGlyKSkKLSAgICBpZiBub3Qg
Y29uZmlnLmNhY2hlLl9jYWNoZWRpci5jaGVjaygpOgotICAgICAgICB0dy5saW5lKCJjYWNoZSBp
cyBlbXB0eSIpCi0gICAgICAgIHJldHVybiAwCi0gICAgZHVtbXkgPSBvYmplY3QoKQotICAgIGJh
c2VkaXIgPSBjb25maWcuY2FjaGUuX2NhY2hlZGlyCi0gICAgdmRpciA9IGJhc2VkaXIuam9pbigi
diIpCi0gICAgdHcuc2VwKCItIiwgImNhY2hlIHZhbHVlcyIpCi0gICAgZm9yIHZhbHBhdGggaW4g
c29ydGVkKHZkaXIudmlzaXQobGFtYmRhIHg6IHguaXNmaWxlKCkpKToKLSAgICAgICAga2V5ID0g
dmFscGF0aC5yZWx0byh2ZGlyKS5yZXBsYWNlKHZhbHBhdGguc2VwLCAiLyIpCi0gICAgICAgIHZh
bCA9IGNvbmZpZy5jYWNoZS5nZXQoa2V5LCBkdW1teSkKLSAgICAgICAgaWYgdmFsIGlzIGR1bW15
OgotICAgICAgICAgICAgdHcubGluZSgiJXMgY29udGFpbnMgdW5yZWFkYWJsZSBjb250ZW50LCAi
Ci0gICAgICAgICAgICAgICAgICAgICJ3aWxsIGJlIGlnbm9yZWQiICUga2V5KQotICAgICAgICBl
bHNlOgotICAgICAgICAgICAgdHcubGluZSgiJXMgY29udGFpbnM6IiAlIGtleSkKLSAgICAgICAg
ICAgIHN0cmVhbSA9IHB5LmlvLlRleHRJTygpCi0gICAgICAgICAgICBwcHJpbnQodmFsLCBzdHJl
YW09c3RyZWFtKQotICAgICAgICAgICAgZm9yIGxpbmUgaW4gc3RyZWFtLmdldHZhbHVlKCkuc3Bs
aXRsaW5lcygpOgotICAgICAgICAgICAgICAgIHR3LmxpbmUoIiAgIiArIGxpbmUpCi0KLSAgICBk
ZGlyID0gYmFzZWRpci5qb2luKCJkIikKLSAgICBpZiBkZGlyLmlzZGlyKCkgYW5kIGRkaXIubGlz
dGRpcigpOgotICAgICAgICB0dy5zZXAoIi0iLCAiY2FjaGUgZGlyZWN0b3JpZXMiKQotICAgICAg
ICBmb3IgcCBpbiBzb3J0ZWQoYmFzZWRpci5qb2luKCJkIikudmlzaXQoKSk6Ci0gICAgICAgICAg
ICAjIGlmIHAuY2hlY2soZGlyPTEpOgotICAgICAgICAgICAgIyAgICBwcmludCgiJXMvIiAlIHAu
cmVsdG8oYmFzZWRpcikpCi0gICAgICAgICAgICBpZiBwLmlzZmlsZSgpOgotICAgICAgICAgICAg
ICAgIGtleSA9IHAucmVsdG8oYmFzZWRpcikKLSAgICAgICAgICAgICAgICB0dy5saW5lKCIlcyBp
cyBhIGZpbGUgb2YgbGVuZ3RoICVkIiAlICgKLSAgICAgICAgICAgICAgICAgICAgICAgIGtleSwg
cC5zaXplKCkpKQotICAgIHJldHVybiAwCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9fcHl0ZXN0
L2NhcHR1cmUucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9fcHl0ZXN0L2NhcHR1cmUucHkKZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IGYyZWJlMzhjOGMwOTAyODZiNzdjNzM5YjMyYjYyMDMwMjk0Yzc1
MjQuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9w
eXRlc3QvX3B5dGVzdC9jYXB0dXJlLnB5CisrKyAvZGV2L251bGwKQEAgLTEsNjgzICswLDAgQEAK
LSIiIgotcGVyLXRlc3Qgc3Rkb3V0L3N0ZGVyciBjYXB0dXJpbmcgbWVjaGFuaXNtLgotCi0iIiIK
LWZyb20gX19mdXR1cmVfXyBpbXBvcnQgYWJzb2x1dGVfaW1wb3J0LCBkaXZpc2lvbiwgcHJpbnRf
ZnVuY3Rpb24KLQotaW1wb3J0IGNvbGxlY3Rpb25zCi1pbXBvcnQgY29udGV4dGxpYgotaW1wb3J0
IHN5cwotaW1wb3J0IG9zCi1pbXBvcnQgaW8KLWZyb20gaW8gaW1wb3J0IFVuc3VwcG9ydGVkT3Bl
cmF0aW9uCi1mcm9tIHRlbXBmaWxlIGltcG9ydCBUZW1wb3JhcnlGaWxlCi0KLWltcG9ydCBzaXgK
LWltcG9ydCBweXRlc3QKLWZyb20gX3B5dGVzdC5jb21wYXQgaW1wb3J0IENhcHR1cmVJTwotCi0K
LXBhdGNoc3lzZGljdCA9IHswOiAnc3RkaW4nLCAxOiAnc3Rkb3V0JywgMjogJ3N0ZGVycid9Ci0K
LQotZGVmIHB5dGVzdF9hZGRvcHRpb24ocGFyc2VyKToKLSAgICBncm91cCA9IHBhcnNlci5nZXRn
cm91cCgiZ2VuZXJhbCIpCi0gICAgZ3JvdXAuX2FkZG9wdGlvbigKLSAgICAgICAgJy0tY2FwdHVy
ZScsIGFjdGlvbj0ic3RvcmUiLAotICAgICAgICBkZWZhdWx0PSJmZCIgaWYgaGFzYXR0cihvcywg
ImR1cCIpIGVsc2UgInN5cyIsCi0gICAgICAgIG1ldGF2YXI9Im1ldGhvZCIsIGNob2ljZXM9Wydm
ZCcsICdzeXMnLCAnbm8nXSwKLSAgICAgICAgaGVscD0icGVyLXRlc3QgY2FwdHVyaW5nIG1ldGhv
ZDogb25lIG9mIGZkfHN5c3xuby4iKQotICAgIGdyb3VwLl9hZGRvcHRpb24oCi0gICAgICAgICct
cycsIGFjdGlvbj0ic3RvcmVfY29uc3QiLCBjb25zdD0ibm8iLCBkZXN0PSJjYXB0dXJlIiwKLSAg
ICAgICAgaGVscD0ic2hvcnRjdXQgZm9yIC0tY2FwdHVyZT1uby4iKQotCi0KLUBweXRlc3QuaG9v
a2ltcGwoaG9va3dyYXBwZXI9VHJ1ZSkKLWRlZiBweXRlc3RfbG9hZF9pbml0aWFsX2NvbmZ0ZXN0
cyhlYXJseV9jb25maWcsIHBhcnNlciwgYXJncyk6Ci0gICAgbnMgPSBlYXJseV9jb25maWcua25v
d25fYXJnc19uYW1lc3BhY2UKLSAgICBpZiBucy5jYXB0dXJlID09ICJmZCI6Ci0gICAgICAgIF9w
eTM2X3dpbmRvd3Njb25zb2xlaW9fd29ya2Fyb3VuZChzeXMuc3Rkb3V0KQotICAgIF9jb2xvcmFt
YV93b3JrYXJvdW5kKCkKLSAgICBfcmVhZGxpbmVfd29ya2Fyb3VuZCgpCi0gICAgcGx1Z2lubWFu
YWdlciA9IGVhcmx5X2NvbmZpZy5wbHVnaW5tYW5hZ2VyCi0gICAgY2FwbWFuID0gQ2FwdHVyZU1h
bmFnZXIobnMuY2FwdHVyZSkKLSAgICBwbHVnaW5tYW5hZ2VyLnJlZ2lzdGVyKGNhcG1hbiwgImNh
cHR1cmVtYW5hZ2VyIikKLQotICAgICMgbWFrZSBzdXJlIHRoYXQgY2FwdHVyZW1hbmFnZXIgaXMg
cHJvcGVybHkgcmVzZXQgYXQgZmluYWwgc2h1dGRvd24KLSAgICBlYXJseV9jb25maWcuYWRkX2Ns
ZWFudXAoY2FwbWFuLnN0b3BfZ2xvYmFsX2NhcHR1cmluZykKLQotICAgICMgbWFrZSBzdXJlIGxv
Z2dpbmcgZG9lcyBub3QgcmFpc2UgZXhjZXB0aW9ucyBhdCB0aGUgZW5kCi0gICAgZGVmIHNpbGVu
Y2VfbG9nZ2luZ19hdF9zaHV0ZG93bigpOgotICAgICAgICBpZiAibG9nZ2luZyIgaW4gc3lzLm1v
ZHVsZXM6Ci0gICAgICAgICAgICBzeXMubW9kdWxlc1sibG9nZ2luZyJdLnJhaXNlRXhjZXB0aW9u
cyA9IEZhbHNlCi0gICAgZWFybHlfY29uZmlnLmFkZF9jbGVhbnVwKHNpbGVuY2VfbG9nZ2luZ19h
dF9zaHV0ZG93bikKLQotICAgICMgZmluYWxseSB0cmlnZ2VyIGNvbmZ0ZXN0IGxvYWRpbmcgYnV0
IHdoaWxlIGNhcHR1cmluZyAoaXNzdWU5MykKLSAgICBjYXBtYW4uc3RhcnRfZ2xvYmFsX2NhcHR1
cmluZygpCi0gICAgb3V0Y29tZSA9IHlpZWxkCi0gICAgb3V0LCBlcnIgPSBjYXBtYW4uc3VzcGVu
ZF9nbG9iYWxfY2FwdHVyZSgpCi0gICAgaWYgb3V0Y29tZS5leGNpbmZvIGlzIG5vdCBOb25lOgot
ICAgICAgICBzeXMuc3Rkb3V0LndyaXRlKG91dCkKLSAgICAgICAgc3lzLnN0ZGVyci53cml0ZShl
cnIpCi0KLQotY2xhc3MgQ2FwdHVyZU1hbmFnZXI6Ci0gICAgIiIiCi0gICAgQ2FwdHVyZSBwbHVn
aW4sIG1hbmFnZXMgdGhhdCB0aGUgYXBwcm9wcmlhdGUgY2FwdHVyZSBtZXRob2QgaXMgZW5hYmxl
ZC9kaXNhYmxlZCBkdXJpbmcgY29sbGVjdGlvbiBhbmQgZWFjaAotICAgIHRlc3QgcGhhc2UgKHNl
dHVwLCBjYWxsLCB0ZWFyZG93bikuIEFmdGVyIGVhY2ggb2YgdGhvc2UgcG9pbnRzLCB0aGUgY2Fw
dHVyZWQgb3V0cHV0IGlzIG9idGFpbmVkIGFuZAotICAgIGF0dGFjaGVkIHRvIHRoZSBjb2xsZWN0
aW9uL3J1bnRlc3QgcmVwb3J0LgotCi0gICAgVGhlcmUgYXJlIHR3byBsZXZlbHMgb2YgY2FwdHVy
ZToKLSAgICAqIGdsb2JhbDogd2hpY2ggaXMgZW5hYmxlZCBieSBkZWZhdWx0IGFuZCBjYW4gYmUg
c3VwcHJlc3NlZCBieSB0aGUgYGAtc2BgIG9wdGlvbi4gVGhpcyBpcyBhbHdheXMgZW5hYmxlZC9k
aXNhYmxlZAotICAgICAgZHVyaW5nIGNvbGxlY3Rpb24gYW5kIGVhY2ggdGVzdCBwaGFzZS4KLSAg
ICAqIGZpeHR1cmU6IHdoZW4gYSB0ZXN0IGZ1bmN0aW9uIG9yIG9uZSBvZiBpdHMgZml4dHVyZSBk
ZXBlbmQgb24gdGhlIGBgY2Fwc3lzYGAgb3IgYGBjYXBmZGBgIGZpeHR1cmVzLiBJbiB0aGlzCi0g
ICAgICBjYXNlIHNwZWNpYWwgaGFuZGxpbmcgaXMgbmVlZGVkIHRvIGVuc3VyZSB0aGUgZml4dHVy
ZXMgdGFrZSBwcmVjZWRlbmNlIG92ZXIgdGhlIGdsb2JhbCBjYXB0dXJlLgotICAgICIiIgotCi0g
ICAgZGVmIF9faW5pdF9fKHNlbGYsIG1ldGhvZCk6Ci0gICAgICAgIHNlbGYuX21ldGhvZCA9IG1l
dGhvZAotICAgICAgICBzZWxmLl9nbG9iYWxfY2FwdHVyaW5nID0gTm9uZQotCi0gICAgZGVmIF9n
ZXRjYXB0dXJlKHNlbGYsIG1ldGhvZCk6Ci0gICAgICAgIGlmIG1ldGhvZCA9PSAiZmQiOgotICAg
ICAgICAgICAgcmV0dXJuIE11bHRpQ2FwdHVyZShvdXQ9VHJ1ZSwgZXJyPVRydWUsIENhcHR1cmU9
RkRDYXB0dXJlKQotICAgICAgICBlbGlmIG1ldGhvZCA9PSAic3lzIjoKLSAgICAgICAgICAgIHJl
dHVybiBNdWx0aUNhcHR1cmUob3V0PVRydWUsIGVycj1UcnVlLCBDYXB0dXJlPVN5c0NhcHR1cmUp
Ci0gICAgICAgIGVsaWYgbWV0aG9kID09ICJubyI6Ci0gICAgICAgICAgICByZXR1cm4gTXVsdGlD
YXB0dXJlKG91dD1GYWxzZSwgZXJyPUZhbHNlLCBpbl89RmFsc2UpCi0gICAgICAgIGVsc2U6Ci0g
ICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJ1bmtub3duIGNhcHR1cmluZyBtZXRob2Q6ICVy
IiAlIG1ldGhvZCkKLQotICAgIGRlZiBzdGFydF9nbG9iYWxfY2FwdHVyaW5nKHNlbGYpOgotICAg
ICAgICBhc3NlcnQgc2VsZi5fZ2xvYmFsX2NhcHR1cmluZyBpcyBOb25lCi0gICAgICAgIHNlbGYu
X2dsb2JhbF9jYXB0dXJpbmcgPSBzZWxmLl9nZXRjYXB0dXJlKHNlbGYuX21ldGhvZCkKLSAgICAg
ICAgc2VsZi5fZ2xvYmFsX2NhcHR1cmluZy5zdGFydF9jYXB0dXJpbmcoKQotCi0gICAgZGVmIHN0
b3BfZ2xvYmFsX2NhcHR1cmluZyhzZWxmKToKLSAgICAgICAgaWYgc2VsZi5fZ2xvYmFsX2NhcHR1
cmluZyBpcyBub3QgTm9uZToKLSAgICAgICAgICAgIHNlbGYuX2dsb2JhbF9jYXB0dXJpbmcucG9w
X291dGVycl90b19vcmlnKCkKLSAgICAgICAgICAgIHNlbGYuX2dsb2JhbF9jYXB0dXJpbmcuc3Rv
cF9jYXB0dXJpbmcoKQotICAgICAgICAgICAgc2VsZi5fZ2xvYmFsX2NhcHR1cmluZyA9IE5vbmUK
LQotICAgIGRlZiByZXN1bWVfZ2xvYmFsX2NhcHR1cmUoc2VsZik6Ci0gICAgICAgIHNlbGYuX2ds
b2JhbF9jYXB0dXJpbmcucmVzdW1lX2NhcHR1cmluZygpCi0KLSAgICBkZWYgc3VzcGVuZF9nbG9i
YWxfY2FwdHVyZShzZWxmLCBpdGVtPU5vbmUsIGluXz1GYWxzZSk6Ci0gICAgICAgIGlmIGl0ZW0g
aXMgbm90IE5vbmU6Ci0gICAgICAgICAgICBzZWxmLmRlYWN0aXZhdGVfZml4dHVyZShpdGVtKQot
ICAgICAgICBjYXAgPSBnZXRhdHRyKHNlbGYsICJfZ2xvYmFsX2NhcHR1cmluZyIsIE5vbmUpCi0g
ICAgICAgIGlmIGNhcCBpcyBub3QgTm9uZToKLSAgICAgICAgICAgIHRyeToKLSAgICAgICAgICAg
ICAgICBvdXRlcnIgPSBjYXAucmVhZG91dGVycigpCi0gICAgICAgICAgICBmaW5hbGx5OgotICAg
ICAgICAgICAgICAgIGNhcC5zdXNwZW5kX2NhcHR1cmluZyhpbl89aW5fKQotICAgICAgICAgICAg
cmV0dXJuIG91dGVycgotCi0gICAgZGVmIGFjdGl2YXRlX2ZpeHR1cmUoc2VsZiwgaXRlbSk6Ci0g
ICAgICAgICIiIklmIHRoZSBjdXJyZW50IGl0ZW0gaXMgdXNpbmcgYGBjYXBzeXNgYCBvciBgYGNh
cGZkYGAsIGFjdGl2YXRlIHRoZW0gc28gdGhleSB0YWtlIHByZWNlZGVuY2Ugb3ZlcgotICAgICAg
ICB0aGUgZ2xvYmFsIGNhcHR1cmUuCi0gICAgICAgICIiIgotICAgICAgICBmaXh0dXJlID0gZ2V0
YXR0cihpdGVtLCAiX2NhcHR1cmVfZml4dHVyZSIsIE5vbmUpCi0gICAgICAgIGlmIGZpeHR1cmUg
aXMgbm90IE5vbmU6Ci0gICAgICAgICAgICBmaXh0dXJlLl9zdGFydCgpCi0KLSAgICBkZWYgZGVh
Y3RpdmF0ZV9maXh0dXJlKHNlbGYsIGl0ZW0pOgotICAgICAgICAiIiJEZWFjdGl2YXRlcyB0aGUg
YGBjYXBzeXNgYCBvciBgYGNhcGZkYGAgZml4dHVyZSBvZiB0aGlzIGl0ZW0sIGlmIGFueS4iIiIK
LSAgICAgICAgZml4dHVyZSA9IGdldGF0dHIoaXRlbSwgIl9jYXB0dXJlX2ZpeHR1cmUiLCBOb25l
KQotICAgICAgICBpZiBmaXh0dXJlIGlzIG5vdCBOb25lOgotICAgICAgICAgICAgZml4dHVyZS5j
bG9zZSgpCi0KLSAgICBAcHl0ZXN0Lmhvb2tpbXBsKGhvb2t3cmFwcGVyPVRydWUpCi0gICAgZGVm
IHB5dGVzdF9tYWtlX2NvbGxlY3RfcmVwb3J0KHNlbGYsIGNvbGxlY3Rvcik6Ci0gICAgICAgIGlm
IGlzaW5zdGFuY2UoY29sbGVjdG9yLCBweXRlc3QuRmlsZSk6Ci0gICAgICAgICAgICBzZWxmLnJl
c3VtZV9nbG9iYWxfY2FwdHVyZSgpCi0gICAgICAgICAgICBvdXRjb21lID0geWllbGQKLSAgICAg
ICAgICAgIG91dCwgZXJyID0gc2VsZi5zdXNwZW5kX2dsb2JhbF9jYXB0dXJlKCkKLSAgICAgICAg
ICAgIHJlcCA9IG91dGNvbWUuZ2V0X3Jlc3VsdCgpCi0gICAgICAgICAgICBpZiBvdXQ6Ci0gICAg
ICAgICAgICAgICAgcmVwLnNlY3Rpb25zLmFwcGVuZCgoIkNhcHR1cmVkIHN0ZG91dCIsIG91dCkp
Ci0gICAgICAgICAgICBpZiBlcnI6Ci0gICAgICAgICAgICAgICAgcmVwLnNlY3Rpb25zLmFwcGVu
ZCgoIkNhcHR1cmVkIHN0ZGVyciIsIGVycikpCi0gICAgICAgIGVsc2U6Ci0gICAgICAgICAgICB5
aWVsZAotCi0gICAgQHB5dGVzdC5ob29raW1wbChob29rd3JhcHBlcj1UcnVlKQotICAgIGRlZiBw
eXRlc3RfcnVudGVzdF9zZXR1cChzZWxmLCBpdGVtKToKLSAgICAgICAgc2VsZi5yZXN1bWVfZ2xv
YmFsX2NhcHR1cmUoKQotICAgICAgICAjIG5vIG5lZWQgdG8gYWN0aXZhdGUgYSBjYXB0dXJlIGZp
eHR1cmUgYmVjYXVzZSB0aGV5IGFjdGl2YXRlIHRoZW1zZWx2ZXMgZHVyaW5nIGNyZWF0aW9uOyB0
aGlzCi0gICAgICAgICMgb25seSBtYWtlcyBzZW5zZSB3aGVuIGEgZml4dHVyZSB1c2VzIGEgY2Fw
dHVyZSBmaXh0dXJlLCBvdGhlcndpc2UgdGhlIGNhcHR1cmUgZml4dHVyZSB3aWxsCi0gICAgICAg
ICMgYmUgYWN0aXZhdGVkIGR1cmluZyBweXRlc3RfcnVudGVzdF9jYWxsCi0gICAgICAgIHlpZWxk
Ci0gICAgICAgIHNlbGYuc3VzcGVuZF9jYXB0dXJlX2l0ZW0oaXRlbSwgInNldHVwIikKLQotICAg
IEBweXRlc3QuaG9va2ltcGwoaG9va3dyYXBwZXI9VHJ1ZSkKLSAgICBkZWYgcHl0ZXN0X3J1bnRl
c3RfY2FsbChzZWxmLCBpdGVtKToKLSAgICAgICAgc2VsZi5yZXN1bWVfZ2xvYmFsX2NhcHR1cmUo
KQotICAgICAgICAjIGl0IGlzIGltcG9ydGFudCB0byBhY3RpdmF0ZSB0aGlzIGZpeHR1cmUgZHVy
aW5nIHRoZSBjYWxsIHBoYXNlIHNvIGl0IG92ZXJ3cml0ZXMgdGhlICJnbG9iYWwiCi0gICAgICAg
ICMgY2FwdHVyZQotICAgICAgICBzZWxmLmFjdGl2YXRlX2ZpeHR1cmUoaXRlbSkKLSAgICAgICAg
eWllbGQKLSAgICAgICAgc2VsZi5zdXNwZW5kX2NhcHR1cmVfaXRlbShpdGVtLCAiY2FsbCIpCi0K
LSAgICBAcHl0ZXN0Lmhvb2tpbXBsKGhvb2t3cmFwcGVyPVRydWUpCi0gICAgZGVmIHB5dGVzdF9y
dW50ZXN0X3RlYXJkb3duKHNlbGYsIGl0ZW0pOgotICAgICAgICBzZWxmLnJlc3VtZV9nbG9iYWxf
Y2FwdHVyZSgpCi0gICAgICAgIHNlbGYuYWN0aXZhdGVfZml4dHVyZShpdGVtKQotICAgICAgICB5
aWVsZAotICAgICAgICBzZWxmLnN1c3BlbmRfY2FwdHVyZV9pdGVtKGl0ZW0sICJ0ZWFyZG93biIp
Ci0KLSAgICBAcHl0ZXN0Lmhvb2tpbXBsKHRyeWZpcnN0PVRydWUpCi0gICAgZGVmIHB5dGVzdF9r
ZXlib2FyZF9pbnRlcnJ1cHQoc2VsZiwgZXhjaW5mbyk6Ci0gICAgICAgIHNlbGYuc3RvcF9nbG9i
YWxfY2FwdHVyaW5nKCkKLQotICAgIEBweXRlc3QuaG9va2ltcGwodHJ5Zmlyc3Q9VHJ1ZSkKLSAg
ICBkZWYgcHl0ZXN0X2ludGVybmFsZXJyb3Ioc2VsZiwgZXhjaW5mbyk6Ci0gICAgICAgIHNlbGYu
c3RvcF9nbG9iYWxfY2FwdHVyaW5nKCkKLQotICAgIGRlZiBzdXNwZW5kX2NhcHR1cmVfaXRlbShz
ZWxmLCBpdGVtLCB3aGVuLCBpbl89RmFsc2UpOgotICAgICAgICBvdXQsIGVyciA9IHNlbGYuc3Vz
cGVuZF9nbG9iYWxfY2FwdHVyZShpdGVtLCBpbl89aW5fKQotICAgICAgICBpdGVtLmFkZF9yZXBv
cnRfc2VjdGlvbih3aGVuLCAic3Rkb3V0Iiwgb3V0KQotICAgICAgICBpdGVtLmFkZF9yZXBvcnRf
c2VjdGlvbih3aGVuLCAic3RkZXJyIiwgZXJyKQotCi0KLWNhcHR1cmVfZml4dHVyZXMgPSB7J2Nh
cGZkJywgJ2NhcGZkYmluYXJ5JywgJ2NhcHN5cycsICdjYXBzeXNiaW5hcnknfQotCi0KLWRlZiBf
ZW5zdXJlX29ubHlfb25lX2NhcHR1cmVfZml4dHVyZShyZXF1ZXN0LCBuYW1lKToKLSAgICBmaXh0
dXJlcyA9IHNldChyZXF1ZXN0LmZpeHR1cmVuYW1lcykgJiBjYXB0dXJlX2ZpeHR1cmVzIC0gc2V0
KChuYW1lLCkpCi0gICAgaWYgZml4dHVyZXM6Ci0gICAgICAgIGZpeHR1cmVzID0gc29ydGVkKGZp
eHR1cmVzKQotICAgICAgICBmaXh0dXJlcyA9IGZpeHR1cmVzWzBdIGlmIGxlbihmaXh0dXJlcykg
PT0gMSBlbHNlIGZpeHR1cmVzCi0gICAgICAgIHJhaXNlIHJlcXVlc3QucmFpc2VlcnJvcigKLSAg
ICAgICAgICAgICJjYW5ub3QgdXNlIHswfSBhbmQgezF9IGF0IHRoZSBzYW1lIHRpbWUiLmZvcm1h
dCgKLSAgICAgICAgICAgICAgICBmaXh0dXJlcywgbmFtZSwKLSAgICAgICAgICAgICksCi0gICAg
ICAgICkKLQotCi1AcHl0ZXN0LmZpeHR1cmUKLWRlZiBjYXBzeXMocmVxdWVzdCk6Ci0gICAgIiIi
RW5hYmxlIGNhcHR1cmluZyBvZiB3cml0ZXMgdG8gc3lzLnN0ZG91dC9zeXMuc3RkZXJyIGFuZCBt
YWtlCi0gICAgY2FwdHVyZWQgb3V0cHV0IGF2YWlsYWJsZSB2aWEgYGBjYXBzeXMucmVhZG91dGVy
cigpYGAgbWV0aG9kIGNhbGxzCi0gICAgd2hpY2ggcmV0dXJuIGEgYGAob3V0LCBlcnIpYGAgdHVw
bGUuICBgYG91dGBgIGFuZCBgYGVycmBgIHdpbGwgYmUgYGB0ZXh0YGAKLSAgICBvYmplY3RzLgot
ICAgICIiIgotICAgIF9lbnN1cmVfb25seV9vbmVfY2FwdHVyZV9maXh0dXJlKHJlcXVlc3QsICdj
YXBzeXMnKQotICAgIHdpdGggX2luc3RhbGxfY2FwdHVyZV9maXh0dXJlX29uX2l0ZW0ocmVxdWVz
dCwgU3lzQ2FwdHVyZSkgYXMgZml4dHVyZToKLSAgICAgICAgeWllbGQgZml4dHVyZQotCi0KLUBw
eXRlc3QuZml4dHVyZQotZGVmIGNhcHN5c2JpbmFyeShyZXF1ZXN0KToKLSAgICAiIiJFbmFibGUg
Y2FwdHVyaW5nIG9mIHdyaXRlcyB0byBzeXMuc3Rkb3V0L3N5cy5zdGRlcnIgYW5kIG1ha2UKLSAg
ICBjYXB0dXJlZCBvdXRwdXQgYXZhaWxhYmxlIHZpYSBgYGNhcHN5cy5yZWFkb3V0ZXJyKClgYCBt
ZXRob2QgY2FsbHMKLSAgICB3aGljaCByZXR1cm4gYSBgYChvdXQsIGVycilgYCB0dXBsZS4gIGBg
b3V0YGAgYW5kIGBgZXJyYGAgd2lsbCBiZSBgYGJ5dGVzYGAKLSAgICBvYmplY3RzLgotICAgICIi
IgotICAgIF9lbnN1cmVfb25seV9vbmVfY2FwdHVyZV9maXh0dXJlKHJlcXVlc3QsICdjYXBzeXNi
aW5hcnknKQotICAgICMgQ3VycmVudGx5LCB0aGUgaW1wbGVtZW50YXRpb24gdXNlcyB0aGUgcHl0
aG9uMyBzcGVjaWZpYyBgLmJ1ZmZlcmAKLSAgICAjIHByb3BlcnR5IG9mIENhcHR1cmVJTy4KLSAg
ICBpZiBzeXMudmVyc2lvbl9pbmZvIDwgKDMsKToKLSAgICAgICAgcmFpc2UgcmVxdWVzdC5yYWlz
ZWVycm9yKCdjYXBzeXNiaW5hcnkgaXMgb25seSBzdXBwb3J0ZWQgb24gcHl0aG9uIDMnKQotICAg
IHdpdGggX2luc3RhbGxfY2FwdHVyZV9maXh0dXJlX29uX2l0ZW0ocmVxdWVzdCwgU3lzQ2FwdHVy
ZUJpbmFyeSkgYXMgZml4dHVyZToKLSAgICAgICAgeWllbGQgZml4dHVyZQotCi0KLUBweXRlc3Qu
Zml4dHVyZQotZGVmIGNhcGZkKHJlcXVlc3QpOgotICAgICIiIkVuYWJsZSBjYXB0dXJpbmcgb2Yg
d3JpdGVzIHRvIGZpbGUgZGVzY3JpcHRvcnMgMSBhbmQgMiBhbmQgbWFrZQotICAgIGNhcHR1cmVk
IG91dHB1dCBhdmFpbGFibGUgdmlhIGBgY2FwZmQucmVhZG91dGVycigpYGAgbWV0aG9kIGNhbGxz
Ci0gICAgd2hpY2ggcmV0dXJuIGEgYGAob3V0LCBlcnIpYGAgdHVwbGUuICBgYG91dGBgIGFuZCBg
YGVycmBgIHdpbGwgYmUgYGB0ZXh0YGAKLSAgICBvYmplY3RzLgotICAgICIiIgotICAgIF9lbnN1
cmVfb25seV9vbmVfY2FwdHVyZV9maXh0dXJlKHJlcXVlc3QsICdjYXBmZCcpCi0gICAgaWYgbm90
IGhhc2F0dHIob3MsICdkdXAnKToKLSAgICAgICAgcHl0ZXN0LnNraXAoImNhcGZkIGZpeHR1cmUg
bmVlZHMgb3MuZHVwIGZ1bmN0aW9uIHdoaWNoIGlzIG5vdCBhdmFpbGFibGUgaW4gdGhpcyBzeXN0
ZW0iKQotICAgIHdpdGggX2luc3RhbGxfY2FwdHVyZV9maXh0dXJlX29uX2l0ZW0ocmVxdWVzdCwg
RkRDYXB0dXJlKSBhcyBmaXh0dXJlOgotICAgICAgICB5aWVsZCBmaXh0dXJlCi0KLQotQHB5dGVz
dC5maXh0dXJlCi1kZWYgY2FwZmRiaW5hcnkocmVxdWVzdCk6Ci0gICAgIiIiRW5hYmxlIGNhcHR1
cmluZyBvZiB3cml0ZSB0byBmaWxlIGRlc2NyaXB0b3JzIDEgYW5kIDIgYW5kIG1ha2UKLSAgICBj
YXB0dXJlZCBvdXRwdXQgYXZhaWxhYmxlIHZpYSBgYGNhcGZkYmluYXJ5LnJlYWRvdXRlcnJgYCBt
ZXRob2QgY2FsbHMKLSAgICB3aGljaCByZXR1cm4gYSBgYChvdXQsIGVycilgYCB0dXBsZS4gIGBg
b3V0YGAgYW5kIGBgZXJyYGAgd2lsbCBiZQotICAgIGBgYnl0ZXNgYCBvYmplY3RzLgotICAgICIi
IgotICAgIF9lbnN1cmVfb25seV9vbmVfY2FwdHVyZV9maXh0dXJlKHJlcXVlc3QsICdjYXBmZGJp
bmFyeScpCi0gICAgaWYgbm90IGhhc2F0dHIob3MsICdkdXAnKToKLSAgICAgICAgcHl0ZXN0LnNr
aXAoImNhcGZkYmluYXJ5IGZpeHR1cmUgbmVlZHMgb3MuZHVwIGZ1bmN0aW9uIHdoaWNoIGlzIG5v
dCBhdmFpbGFibGUgaW4gdGhpcyBzeXN0ZW0iKQotICAgIHdpdGggX2luc3RhbGxfY2FwdHVyZV9m
aXh0dXJlX29uX2l0ZW0ocmVxdWVzdCwgRkRDYXB0dXJlQmluYXJ5KSBhcyBmaXh0dXJlOgotICAg
ICAgICB5aWVsZCBmaXh0dXJlCi0KLQotQGNvbnRleHRsaWIuY29udGV4dG1hbmFnZXIKLWRlZiBf
aW5zdGFsbF9jYXB0dXJlX2ZpeHR1cmVfb25faXRlbShyZXF1ZXN0LCBjYXB0dXJlX2NsYXNzKToK
LSAgICAiIiIKLSAgICBDb250ZXh0IG1hbmFnZXIgd2hpY2ggY3JlYXRlcyBhIGBgQ2FwdHVyZUZp
eHR1cmVgYCBpbnN0YW5jZSBhbmQgImluc3RhbGxzIiBpdCBvbgotICAgIHRoZSBpdGVtL25vZGUg
b2YgdGhlIGdpdmVuIHJlcXVlc3QuIFVzZWQgYnkgYGBjYXBzeXNgYCBhbmQgYGBjYXBmZGBgLgot
Ci0gICAgVGhlIENhcHR1cmVGaXh0dXJlIGlzIGFkZGVkIGFzIGF0dHJpYnV0ZSBvZiB0aGUgaXRl
bSBiZWNhdXNlIGl0IG5lZWRzIHRvIGFjY2Vzc2VkCi0gICAgYnkgYGBDYXB0dXJlTWFuYWdlcmBg
IGR1cmluZyBpdHMgYGBweXRlc3RfcnVudGVzdF8qYGAgaG9va3MuCi0gICAgIiIiCi0gICAgcmVx
dWVzdC5ub2RlLl9jYXB0dXJlX2ZpeHR1cmUgPSBmaXh0dXJlID0gQ2FwdHVyZUZpeHR1cmUoY2Fw
dHVyZV9jbGFzcywgcmVxdWVzdCkKLSAgICBjYXBtYW5hZ2VyID0gcmVxdWVzdC5jb25maWcucGx1
Z2lubWFuYWdlci5nZXRwbHVnaW4oJ2NhcHR1cmVtYW5hZ2VyJykKLSAgICAjIG5lZWQgdG8gYWN0
aXZlIHRoaXMgZml4dHVyZSByaWdodCBhd2F5IGluIGNhc2UgaXQgaXMgYmVpbmcgdXNlZCBieSBh
bm90aGVyIGZpeHR1cmUgKHNldHVwIHBoYXNlKQotICAgICMgaWYgdGhpcyBmaXh0dXJlIGlzIGJl
aW5nIHVzZWQgb25seSBieSBhIHRlc3QgZnVuY3Rpb24gKGNhbGwgcGhhc2UpLCB0aGVuIHdlIHdv
dWxkbid0IG5lZWQgdGhpcwotICAgICMgYWN0aXZhdGlvbiwgYnV0IGl0IGRvZXNuJ3QgaHVydAot
ICAgIGNhcG1hbmFnZXIuYWN0aXZhdGVfZml4dHVyZShyZXF1ZXN0Lm5vZGUpCi0gICAgeWllbGQg
Zml4dHVyZQotICAgIGZpeHR1cmUuY2xvc2UoKQotICAgIGRlbCByZXF1ZXN0Lm5vZGUuX2NhcHR1
cmVfZml4dHVyZQotCi0KLWNsYXNzIENhcHR1cmVGaXh0dXJlOgotICAgIGRlZiBfX2luaXRfXyhz
ZWxmLCBjYXB0dXJlY2xhc3MsIHJlcXVlc3QpOgotICAgICAgICBzZWxmLmNhcHR1cmVjbGFzcyA9
IGNhcHR1cmVjbGFzcwotICAgICAgICBzZWxmLnJlcXVlc3QgPSByZXF1ZXN0Ci0KLSAgICBkZWYg
X3N0YXJ0KHNlbGYpOgotICAgICAgICBzZWxmLl9jYXB0dXJlID0gTXVsdGlDYXB0dXJlKG91dD1U
cnVlLCBlcnI9VHJ1ZSwgaW5fPUZhbHNlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIENhcHR1cmU9c2VsZi5jYXB0dXJlY2xhc3MpCi0gICAgICAgIHNlbGYuX2NhcHR1cmUu
c3RhcnRfY2FwdHVyaW5nKCkKLQotICAgIGRlZiBjbG9zZShzZWxmKToKLSAgICAgICAgY2FwID0g
c2VsZi5fX2RpY3RfXy5wb3AoIl9jYXB0dXJlIiwgTm9uZSkKLSAgICAgICAgaWYgY2FwIGlzIG5v
dCBOb25lOgotICAgICAgICAgICAgc2VsZi5fb3V0ZXJyID0gY2FwLnBvcF9vdXRlcnJfdG9fb3Jp
ZygpCi0gICAgICAgICAgICBjYXAuc3RvcF9jYXB0dXJpbmcoKQotCi0gICAgZGVmIHJlYWRvdXRl
cnIoc2VsZik6Ci0gICAgICAgIHRyeToKLSAgICAgICAgICAgIHJldHVybiBzZWxmLl9jYXB0dXJl
LnJlYWRvdXRlcnIoKQotICAgICAgICBleGNlcHQgQXR0cmlidXRlRXJyb3I6Ci0gICAgICAgICAg
ICByZXR1cm4gc2VsZi5fb3V0ZXJyCi0KLSAgICBAY29udGV4dGxpYi5jb250ZXh0bWFuYWdlcgot
ICAgIGRlZiBkaXNhYmxlZChzZWxmKToKLSAgICAgICAgc2VsZi5fY2FwdHVyZS5zdXNwZW5kX2Nh
cHR1cmluZygpCi0gICAgICAgIGNhcG1hbmFnZXIgPSBzZWxmLnJlcXVlc3QuY29uZmlnLnBsdWdp
bm1hbmFnZXIuZ2V0cGx1Z2luKCdjYXB0dXJlbWFuYWdlcicpCi0gICAgICAgIGNhcG1hbmFnZXIu
c3VzcGVuZF9nbG9iYWxfY2FwdHVyZShpdGVtPU5vbmUsIGluXz1GYWxzZSkKLSAgICAgICAgdHJ5
OgotICAgICAgICAgICAgeWllbGQKLSAgICAgICAgZmluYWxseToKLSAgICAgICAgICAgIGNhcG1h
bmFnZXIucmVzdW1lX2dsb2JhbF9jYXB0dXJlKCkKLSAgICAgICAgICAgIHNlbGYuX2NhcHR1cmUu
cmVzdW1lX2NhcHR1cmluZygpCi0KLQotZGVmIHNhZmVfdGV4dF9kdXBmaWxlKGYsIG1vZGUsIGRl
ZmF1bHRfZW5jb2Rpbmc9IlVURjgiKToKLSAgICAiIiIgcmV0dXJuIGEgb3BlbiB0ZXh0IGZpbGUg
b2JqZWN0IHRoYXQncyBhIGR1cGxpY2F0ZSBvZiBmIG9uIHRoZQotICAgICAgICBGRC1sZXZlbCBp
ZiBwb3NzaWJsZS4KLSAgICAiIiIKLSAgICBlbmNvZGluZyA9IGdldGF0dHIoZiwgImVuY29kaW5n
IiwgTm9uZSkKLSAgICB0cnk6Ci0gICAgICAgIGZkID0gZi5maWxlbm8oKQotICAgIGV4Y2VwdCBF
eGNlcHRpb246Ci0gICAgICAgIGlmICJiIiBub3QgaW4gZ2V0YXR0cihmLCAibW9kZSIsICIiKSBh
bmQgaGFzYXR0cihmLCAiZW5jb2RpbmciKToKLSAgICAgICAgICAgICMgd2Ugc2VlbSB0byBoYXZl
IGEgdGV4dCBzdHJlYW0sIGxldCdzIGp1c3QgdXNlIGl0Ci0gICAgICAgICAgICByZXR1cm4gZgot
ICAgIGVsc2U6Ci0gICAgICAgIG5ld2ZkID0gb3MuZHVwKGZkKQotICAgICAgICBpZiAiYiIgbm90
IGluIG1vZGU6Ci0gICAgICAgICAgICBtb2RlICs9ICJiIgotICAgICAgICBmID0gb3MuZmRvcGVu
KG5ld2ZkLCBtb2RlLCAwKSAgIyBubyBidWZmZXJpbmcKLSAgICByZXR1cm4gRW5jb2RlZEZpbGUo
ZiwgZW5jb2Rpbmcgb3IgZGVmYXVsdF9lbmNvZGluZykKLQotCi1jbGFzcyBFbmNvZGVkRmlsZShv
YmplY3QpOgotICAgIGVycm9ycyA9ICJzdHJpY3QiICAjIHBvc3NpYmx5IG5lZWRlZCBieSBweTMg
Y29kZSAoaXNzdWU1NTUpCi0KLSAgICBkZWYgX19pbml0X18oc2VsZiwgYnVmZmVyLCBlbmNvZGlu
Zyk6Ci0gICAgICAgIHNlbGYuYnVmZmVyID0gYnVmZmVyCi0gICAgICAgIHNlbGYuZW5jb2Rpbmcg
PSBlbmNvZGluZwotCi0gICAgZGVmIHdyaXRlKHNlbGYsIG9iaik6Ci0gICAgICAgIGlmIGlzaW5z
dGFuY2Uob2JqLCBzaXgudGV4dF90eXBlKToKLSAgICAgICAgICAgIG9iaiA9IG9iai5lbmNvZGUo
c2VsZi5lbmNvZGluZywgInJlcGxhY2UiKQotICAgICAgICBzZWxmLmJ1ZmZlci53cml0ZShvYmop
Ci0KLSAgICBkZWYgd3JpdGVsaW5lcyhzZWxmLCBsaW5lbGlzdCk6Ci0gICAgICAgIGRhdGEgPSAn
Jy5qb2luKGxpbmVsaXN0KQotICAgICAgICBzZWxmLndyaXRlKGRhdGEpCi0KLSAgICBAcHJvcGVy
dHkKLSAgICBkZWYgbmFtZShzZWxmKToKLSAgICAgICAgIiIiRW5zdXJlIHRoYXQgZmlsZS5uYW1l
IGlzIGEgc3RyaW5nLiIiIgotICAgICAgICByZXR1cm4gcmVwcihzZWxmLmJ1ZmZlcikKLQotICAg
IGRlZiBfX2dldGF0dHJfXyhzZWxmLCBuYW1lKToKLSAgICAgICAgcmV0dXJuIGdldGF0dHIob2Jq
ZWN0Ll9fZ2V0YXR0cmlidXRlX18oc2VsZiwgImJ1ZmZlciIpLCBuYW1lKQotCi0KLUNhcHR1cmVS
ZXN1bHQgPSBjb2xsZWN0aW9ucy5uYW1lZHR1cGxlKCJDYXB0dXJlUmVzdWx0IiwgWyJvdXQiLCAi
ZXJyIl0pCi0KLQotY2xhc3MgTXVsdGlDYXB0dXJlKG9iamVjdCk6Ci0gICAgb3V0ID0gZXJyID0g
aW5fID0gTm9uZQotCi0gICAgZGVmIF9faW5pdF9fKHNlbGYsIG91dD1UcnVlLCBlcnI9VHJ1ZSwg
aW5fPVRydWUsIENhcHR1cmU9Tm9uZSk6Ci0gICAgICAgIGlmIGluXzoKLSAgICAgICAgICAgIHNl
bGYuaW5fID0gQ2FwdHVyZSgwKQotICAgICAgICBpZiBvdXQ6Ci0gICAgICAgICAgICBzZWxmLm91
dCA9IENhcHR1cmUoMSkKLSAgICAgICAgaWYgZXJyOgotICAgICAgICAgICAgc2VsZi5lcnIgPSBD
YXB0dXJlKDIpCi0KLSAgICBkZWYgc3RhcnRfY2FwdHVyaW5nKHNlbGYpOgotICAgICAgICBpZiBz
ZWxmLmluXzoKLSAgICAgICAgICAgIHNlbGYuaW5fLnN0YXJ0KCkKLSAgICAgICAgaWYgc2VsZi5v
dXQ6Ci0gICAgICAgICAgICBzZWxmLm91dC5zdGFydCgpCi0gICAgICAgIGlmIHNlbGYuZXJyOgot
ICAgICAgICAgICAgc2VsZi5lcnIuc3RhcnQoKQotCi0gICAgZGVmIHBvcF9vdXRlcnJfdG9fb3Jp
ZyhzZWxmKToKLSAgICAgICAgIiIiIHBvcCBjdXJyZW50IHNuYXBzaG90IG91dC9lcnIgY2FwdHVy
ZSBhbmQgZmx1c2ggdG8gb3JpZyBzdHJlYW1zLiAiIiIKLSAgICAgICAgb3V0LCBlcnIgPSBzZWxm
LnJlYWRvdXRlcnIoKQotICAgICAgICBpZiBvdXQ6Ci0gICAgICAgICAgICBzZWxmLm91dC53cml0
ZW9yZyhvdXQpCi0gICAgICAgIGlmIGVycjoKLSAgICAgICAgICAgIHNlbGYuZXJyLndyaXRlb3Jn
KGVycikKLSAgICAgICAgcmV0dXJuIG91dCwgZXJyCi0KLSAgICBkZWYgc3VzcGVuZF9jYXB0dXJp
bmcoc2VsZiwgaW5fPUZhbHNlKToKLSAgICAgICAgaWYgc2VsZi5vdXQ6Ci0gICAgICAgICAgICBz
ZWxmLm91dC5zdXNwZW5kKCkKLSAgICAgICAgaWYgc2VsZi5lcnI6Ci0gICAgICAgICAgICBzZWxm
LmVyci5zdXNwZW5kKCkKLSAgICAgICAgaWYgaW5fIGFuZCBzZWxmLmluXzoKLSAgICAgICAgICAg
IHNlbGYuaW5fLnN1c3BlbmQoKQotICAgICAgICAgICAgc2VsZi5faW5fc3VzcGVuZGVkID0gVHJ1
ZQotCi0gICAgZGVmIHJlc3VtZV9jYXB0dXJpbmcoc2VsZik6Ci0gICAgICAgIGlmIHNlbGYub3V0
OgotICAgICAgICAgICAgc2VsZi5vdXQucmVzdW1lKCkKLSAgICAgICAgaWYgc2VsZi5lcnI6Ci0g
ICAgICAgICAgICBzZWxmLmVyci5yZXN1bWUoKQotICAgICAgICBpZiBoYXNhdHRyKHNlbGYsICJf
aW5fc3VzcGVuZGVkIik6Ci0gICAgICAgICAgICBzZWxmLmluXy5yZXN1bWUoKQotICAgICAgICAg
ICAgZGVsIHNlbGYuX2luX3N1c3BlbmRlZAotCi0gICAgZGVmIHN0b3BfY2FwdHVyaW5nKHNlbGYp
OgotICAgICAgICAiIiIgc3RvcCBjYXB0dXJpbmcgYW5kIHJlc2V0IGNhcHR1cmluZyBzdHJlYW1z
ICIiIgotICAgICAgICBpZiBoYXNhdHRyKHNlbGYsICdfcmVzZXQnKToKLSAgICAgICAgICAgIHJh
aXNlIFZhbHVlRXJyb3IoIndhcyBhbHJlYWR5IHN0b3BwZWQiKQotICAgICAgICBzZWxmLl9yZXNl
dCA9IFRydWUKLSAgICAgICAgaWYgc2VsZi5vdXQ6Ci0gICAgICAgICAgICBzZWxmLm91dC5kb25l
KCkKLSAgICAgICAgaWYgc2VsZi5lcnI6Ci0gICAgICAgICAgICBzZWxmLmVyci5kb25lKCkKLSAg
ICAgICAgaWYgc2VsZi5pbl86Ci0gICAgICAgICAgICBzZWxmLmluXy5kb25lKCkKLQotICAgIGRl
ZiByZWFkb3V0ZXJyKHNlbGYpOgotICAgICAgICAiIiIgcmV0dXJuIHNuYXBzaG90IHVuaWNvZGUg
dmFsdWUgb2Ygc3Rkb3V0L3N0ZGVyciBjYXB0dXJpbmdzLiAiIiIKLSAgICAgICAgcmV0dXJuIENh
cHR1cmVSZXN1bHQoc2VsZi5vdXQuc25hcCgpIGlmIHNlbGYub3V0IGlzIG5vdCBOb25lIGVsc2Ug
IiIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuZXJyLnNuYXAoKSBpZiBzZWxm
LmVyciBpcyBub3QgTm9uZSBlbHNlICIiKQotCi0KLWNsYXNzIE5vQ2FwdHVyZToKLSAgICBfX2lu
aXRfXyA9IHN0YXJ0ID0gZG9uZSA9IHN1c3BlbmQgPSByZXN1bWUgPSBsYW1iZGEgKmFyZ3M6IE5v
bmUKLQotCi1jbGFzcyBGRENhcHR1cmVCaW5hcnk6Ci0gICAgIiIiQ2FwdHVyZSBJTyB0by9mcm9t
IGEgZ2l2ZW4gb3MtbGV2ZWwgZmlsZWRlc2NyaXB0b3IuCi0KLSAgICBzbmFwKCkgcHJvZHVjZXMg
YGJ5dGVzYAotICAgICIiIgotCi0gICAgZGVmIF9faW5pdF9fKHNlbGYsIHRhcmdldGZkLCB0bXBm
aWxlPU5vbmUpOgotICAgICAgICBzZWxmLnRhcmdldGZkID0gdGFyZ2V0ZmQKLSAgICAgICAgdHJ5
OgotICAgICAgICAgICAgc2VsZi50YXJnZXRmZF9zYXZlID0gb3MuZHVwKHNlbGYudGFyZ2V0ZmQp
Ci0gICAgICAgIGV4Y2VwdCBPU0Vycm9yOgotICAgICAgICAgICAgc2VsZi5zdGFydCA9IGxhbWJk
YTogTm9uZQotICAgICAgICAgICAgc2VsZi5kb25lID0gbGFtYmRhOiBOb25lCi0gICAgICAgIGVs
c2U6Ci0gICAgICAgICAgICBpZiB0YXJnZXRmZCA9PSAwOgotICAgICAgICAgICAgICAgIGFzc2Vy
dCBub3QgdG1wZmlsZSwgImNhbm5vdCBzZXQgdG1wZmlsZSB3aXRoIHN0ZGluIgotICAgICAgICAg
ICAgICAgIHRtcGZpbGUgPSBvcGVuKG9zLmRldm51bGwsICJyIikKLSAgICAgICAgICAgICAgICBz
ZWxmLnN5c2NhcHR1cmUgPSBTeXNDYXB0dXJlKHRhcmdldGZkKQotICAgICAgICAgICAgZWxzZToK
LSAgICAgICAgICAgICAgICBpZiB0bXBmaWxlIGlzIE5vbmU6Ci0gICAgICAgICAgICAgICAgICAg
IGYgPSBUZW1wb3JhcnlGaWxlKCkKLSAgICAgICAgICAgICAgICAgICAgd2l0aCBmOgotICAgICAg
ICAgICAgICAgICAgICAgICAgdG1wZmlsZSA9IHNhZmVfdGV4dF9kdXBmaWxlKGYsIG1vZGU9Indi
KyIpCi0gICAgICAgICAgICAgICAgaWYgdGFyZ2V0ZmQgaW4gcGF0Y2hzeXNkaWN0OgotICAgICAg
ICAgICAgICAgICAgICBzZWxmLnN5c2NhcHR1cmUgPSBTeXNDYXB0dXJlKHRhcmdldGZkLCB0bXBm
aWxlKQotICAgICAgICAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAgICAgICAgIHNlbGYuc3lz
Y2FwdHVyZSA9IE5vQ2FwdHVyZSgpCi0gICAgICAgICAgICBzZWxmLnRtcGZpbGUgPSB0bXBmaWxl
Ci0gICAgICAgICAgICBzZWxmLnRtcGZpbGVfZmQgPSB0bXBmaWxlLmZpbGVubygpCi0KLSAgICBk
ZWYgX19yZXByX18oc2VsZik6Ci0gICAgICAgIHJldHVybiAiPEZEQ2FwdHVyZSAlcyBvbGRmZD0l
cz4iICUgKHNlbGYudGFyZ2V0ZmQsIHNlbGYudGFyZ2V0ZmRfc2F2ZSkKLQotICAgIGRlZiBzdGFy
dChzZWxmKToKLSAgICAgICAgIiIiIFN0YXJ0IGNhcHR1cmluZyBvbiB0YXJnZXRmZCB1c2luZyBt
ZW1vcml6ZWQgdG1wZmlsZS4gIiIiCi0gICAgICAgIHRyeToKLSAgICAgICAgICAgIG9zLmZzdGF0
KHNlbGYudGFyZ2V0ZmRfc2F2ZSkKLSAgICAgICAgZXhjZXB0IChBdHRyaWJ1dGVFcnJvciwgT1NF
cnJvcik6Ci0gICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJzYXZlZCBmaWxlZGVzY3JpcHRv
ciBub3QgdmFsaWQgYW55bW9yZSIpCi0gICAgICAgIG9zLmR1cDIoc2VsZi50bXBmaWxlX2ZkLCBz
ZWxmLnRhcmdldGZkKQotICAgICAgICBzZWxmLnN5c2NhcHR1cmUuc3RhcnQoKQotCi0gICAgZGVm
IHNuYXAoc2VsZik6Ci0gICAgICAgIHNlbGYudG1wZmlsZS5zZWVrKDApCi0gICAgICAgIHJlcyA9
IHNlbGYudG1wZmlsZS5yZWFkKCkKLSAgICAgICAgc2VsZi50bXBmaWxlLnNlZWsoMCkKLSAgICAg
ICAgc2VsZi50bXBmaWxlLnRydW5jYXRlKCkKLSAgICAgICAgcmV0dXJuIHJlcwotCi0gICAgZGVm
IGRvbmUoc2VsZik6Ci0gICAgICAgICIiIiBzdG9wIGNhcHR1cmluZywgcmVzdG9yZSBzdHJlYW1z
LCByZXR1cm4gb3JpZ2luYWwgY2FwdHVyZSBmaWxlLAotICAgICAgICBzZWVrZWQgdG8gcG9zaXRp
b24gemVyby4gIiIiCi0gICAgICAgIHRhcmdldGZkX3NhdmUgPSBzZWxmLl9fZGljdF9fLnBvcCgi
dGFyZ2V0ZmRfc2F2ZSIpCi0gICAgICAgIG9zLmR1cDIodGFyZ2V0ZmRfc2F2ZSwgc2VsZi50YXJn
ZXRmZCkKLSAgICAgICAgb3MuY2xvc2UodGFyZ2V0ZmRfc2F2ZSkKLSAgICAgICAgc2VsZi5zeXNj
YXB0dXJlLmRvbmUoKQotICAgICAgICBzZWxmLnRtcGZpbGUuY2xvc2UoKQotCi0gICAgZGVmIHN1
c3BlbmQoc2VsZik6Ci0gICAgICAgIHNlbGYuc3lzY2FwdHVyZS5zdXNwZW5kKCkKLSAgICAgICAg
b3MuZHVwMihzZWxmLnRhcmdldGZkX3NhdmUsIHNlbGYudGFyZ2V0ZmQpCi0KLSAgICBkZWYgcmVz
dW1lKHNlbGYpOgotICAgICAgICBzZWxmLnN5c2NhcHR1cmUucmVzdW1lKCkKLSAgICAgICAgb3Mu
ZHVwMihzZWxmLnRtcGZpbGVfZmQsIHNlbGYudGFyZ2V0ZmQpCi0KLSAgICBkZWYgd3JpdGVvcmco
c2VsZiwgZGF0YSk6Ci0gICAgICAgICIiIiB3cml0ZSB0byBvcmlnaW5hbCBmaWxlIGRlc2NyaXB0
b3IuICIiIgotICAgICAgICBpZiBpc2luc3RhbmNlKGRhdGEsIHNpeC50ZXh0X3R5cGUpOgotICAg
ICAgICAgICAgZGF0YSA9IGRhdGEuZW5jb2RlKCJ1dGY4IikgICMgWFhYIHVzZSBlbmNvZGluZyBv
ZiBvcmlnaW5hbCBzdHJlYW0KLSAgICAgICAgb3Mud3JpdGUoc2VsZi50YXJnZXRmZF9zYXZlLCBk
YXRhKQotCi0KLWNsYXNzIEZEQ2FwdHVyZShGRENhcHR1cmVCaW5hcnkpOgotICAgICIiIkNhcHR1
cmUgSU8gdG8vZnJvbSBhIGdpdmVuIG9zLWxldmVsIGZpbGVkZXNjcmlwdG9yLgotCi0gICAgc25h
cCgpIHByb2R1Y2VzIHRleHQKLSAgICAiIiIKLSAgICBkZWYgc25hcChzZWxmKToKLSAgICAgICAg
cmVzID0gRkRDYXB0dXJlQmluYXJ5LnNuYXAoc2VsZikKLSAgICAgICAgZW5jID0gZ2V0YXR0cihz
ZWxmLnRtcGZpbGUsICJlbmNvZGluZyIsIE5vbmUpCi0gICAgICAgIGlmIGVuYyBhbmQgaXNpbnN0
YW5jZShyZXMsIGJ5dGVzKToKLSAgICAgICAgICAgIHJlcyA9IHNpeC50ZXh0X3R5cGUocmVzLCBl
bmMsICJyZXBsYWNlIikKLSAgICAgICAgcmV0dXJuIHJlcwotCi0KLWNsYXNzIFN5c0NhcHR1cmU6
Ci0gICAgZGVmIF9faW5pdF9fKHNlbGYsIGZkLCB0bXBmaWxlPU5vbmUpOgotICAgICAgICBuYW1l
ID0gcGF0Y2hzeXNkaWN0W2ZkXQotICAgICAgICBzZWxmLl9vbGQgPSBnZXRhdHRyKHN5cywgbmFt
ZSkKLSAgICAgICAgc2VsZi5uYW1lID0gbmFtZQotICAgICAgICBpZiB0bXBmaWxlIGlzIE5vbmU6
Ci0gICAgICAgICAgICBpZiBuYW1lID09ICJzdGRpbiI6Ci0gICAgICAgICAgICAgICAgdG1wZmls
ZSA9IERvbnRSZWFkRnJvbUlucHV0KCkKLSAgICAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAg
ICAgdG1wZmlsZSA9IENhcHR1cmVJTygpCi0gICAgICAgIHNlbGYudG1wZmlsZSA9IHRtcGZpbGUK
LQotICAgIGRlZiBzdGFydChzZWxmKToKLSAgICAgICAgc2V0YXR0cihzeXMsIHNlbGYubmFtZSwg
c2VsZi50bXBmaWxlKQotCi0gICAgZGVmIHNuYXAoc2VsZik6Ci0gICAgICAgIHJlcyA9IHNlbGYu
dG1wZmlsZS5nZXR2YWx1ZSgpCi0gICAgICAgIHNlbGYudG1wZmlsZS5zZWVrKDApCi0gICAgICAg
IHNlbGYudG1wZmlsZS50cnVuY2F0ZSgpCi0gICAgICAgIHJldHVybiByZXMKLQotICAgIGRlZiBk
b25lKHNlbGYpOgotICAgICAgICBzZXRhdHRyKHN5cywgc2VsZi5uYW1lLCBzZWxmLl9vbGQpCi0g
ICAgICAgIGRlbCBzZWxmLl9vbGQKLSAgICAgICAgc2VsZi50bXBmaWxlLmNsb3NlKCkKLQotICAg
IGRlZiBzdXNwZW5kKHNlbGYpOgotICAgICAgICBzZXRhdHRyKHN5cywgc2VsZi5uYW1lLCBzZWxm
Ll9vbGQpCi0KLSAgICBkZWYgcmVzdW1lKHNlbGYpOgotICAgICAgICBzZXRhdHRyKHN5cywgc2Vs
Zi5uYW1lLCBzZWxmLnRtcGZpbGUpCi0KLSAgICBkZWYgd3JpdGVvcmcoc2VsZiwgZGF0YSk6Ci0g
ICAgICAgIHNlbGYuX29sZC53cml0ZShkYXRhKQotICAgICAgICBzZWxmLl9vbGQuZmx1c2goKQot
Ci0KLWNsYXNzIFN5c0NhcHR1cmVCaW5hcnkoU3lzQ2FwdHVyZSk6Ci0gICAgZGVmIHNuYXAoc2Vs
Zik6Ci0gICAgICAgIHJlcyA9IHNlbGYudG1wZmlsZS5idWZmZXIuZ2V0dmFsdWUoKQotICAgICAg
ICBzZWxmLnRtcGZpbGUuc2VlaygwKQotICAgICAgICBzZWxmLnRtcGZpbGUudHJ1bmNhdGUoKQot
ICAgICAgICByZXR1cm4gcmVzCi0KLQotY2xhc3MgRG9udFJlYWRGcm9tSW5wdXQ6Ci0gICAgIiIi
VGVtcG9yYXJ5IHN0dWIgY2xhc3MuICBJZGVhbGx5IHdoZW4gc3RkaW4gaXMgYWNjZXNzZWQsIHRo
ZQotICAgIGNhcHR1cmluZyBzaG91bGQgYmUgdHVybmVkIG9mZiwgd2l0aCBwb3NzaWJseSBhbGwg
ZGF0YSBjYXB0dXJlZAotICAgIHNvIGZhciBzZW50IHRvIHRoZSBzY3JlZW4uICBUaGlzIHNob3Vs
ZCBiZSBjb25maWd1cmFibGUsIHRob3VnaCwKLSAgICBiZWNhdXNlIGluIGF1dG9tYXRlZCB0ZXN0
IHJ1bnMgaXQgaXMgYmV0dGVyIHRvIGNyYXNoIHRoYW4KLSAgICBoYW5nIGluZGVmaW5pdGVseS4K
LSAgICAiIiIKLQotICAgIGVuY29kaW5nID0gTm9uZQotCi0gICAgZGVmIHJlYWQoc2VsZiwgKmFy
Z3MpOgotICAgICAgICByYWlzZSBJT0Vycm9yKCJyZWFkaW5nIGZyb20gc3RkaW4gd2hpbGUgb3V0
cHV0IGlzIGNhcHR1cmVkIikKLSAgICByZWFkbGluZSA9IHJlYWQKLSAgICByZWFkbGluZXMgPSBy
ZWFkCi0gICAgX19pdGVyX18gPSByZWFkCi0KLSAgICBkZWYgZmlsZW5vKHNlbGYpOgotICAgICAg
ICByYWlzZSBVbnN1cHBvcnRlZE9wZXJhdGlvbigicmVkaXJlY3RlZCBzdGRpbiBpcyBwc2V1ZG9m
aWxlLCAiCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJoYXMgbm8gZmlsZW5v
KCkiKQotCi0gICAgZGVmIGlzYXR0eShzZWxmKToKLSAgICAgICAgcmV0dXJuIEZhbHNlCi0KLSAg
ICBkZWYgY2xvc2Uoc2VsZik6Ci0gICAgICAgIHBhc3MKLQotICAgIEBwcm9wZXJ0eQotICAgIGRl
ZiBidWZmZXIoc2VsZik6Ci0gICAgICAgIGlmIHN5cy52ZXJzaW9uX2luZm8gPj0gKDMsIDApOgot
ICAgICAgICAgICAgcmV0dXJuIHNlbGYKLSAgICAgICAgZWxzZToKLSAgICAgICAgICAgIHJhaXNl
IEF0dHJpYnV0ZUVycm9yKCdyZWRpcmVjdGVkIHN0ZGluIGhhcyBubyBhdHRyaWJ1dGUgYnVmZmVy
JykKLQotCi1kZWYgX2NvbG9yYW1hX3dvcmthcm91bmQoKToKLSAgICAiIiIKLSAgICBFbnN1cmUg
Y29sb3JhbWEgaXMgaW1wb3J0ZWQgc28gdGhhdCBpdCBhdHRhY2hlcyB0byB0aGUgY29ycmVjdCBz
dGRpbwotICAgIGhhbmRsZXMgb24gV2luZG93cy4KLQotICAgIGNvbG9yYW1hIHVzZXMgdGhlIHRl
cm1pbmFsIG9uIGltcG9ydCB0aW1lLiBTbyBpZiBzb21ldGhpbmcgZG9lcyB0aGUKLSAgICBmaXJz
dCBpbXBvcnQgb2YgY29sb3JhbWEgd2hpbGUgSS9PIGNhcHR1cmUgaXMgYWN0aXZlLCBjb2xvcmFt
YSB3aWxsCi0gICAgZmFpbCBpbiB2YXJpb3VzIHdheXMuCi0gICAgIiIiCi0KLSAgICBpZiBub3Qg
c3lzLnBsYXRmb3JtLnN0YXJ0c3dpdGgoJ3dpbjMyJyk6Ci0gICAgICAgIHJldHVybgotICAgIHRy
eToKLSAgICAgICAgaW1wb3J0IGNvbG9yYW1hICAjIG5vcWEKLSAgICBleGNlcHQgSW1wb3J0RXJy
b3I6Ci0gICAgICAgIHBhc3MKLQotCi1kZWYgX3JlYWRsaW5lX3dvcmthcm91bmQoKToKLSAgICAi
IiIKLSAgICBFbnN1cmUgcmVhZGxpbmUgaXMgaW1wb3J0ZWQgc28gdGhhdCBpdCBhdHRhY2hlcyB0
byB0aGUgY29ycmVjdCBzdGRpbwotICAgIGhhbmRsZXMgb24gV2luZG93cy4KLQotICAgIFBkYiB1
c2VzIHJlYWRsaW5lIHN1cHBvcnQgd2hlcmUgYXZhaWxhYmxlLS13aGVuIG5vdCBydW5uaW5nIGZy
b20gdGhlIFB5dGhvbgotICAgIHByb21wdCwgdGhlIHJlYWRsaW5lIG1vZHVsZSBpcyBub3QgaW1w
b3J0ZWQgdW50aWwgcnVubmluZyB0aGUgcGRiIFJFUEwuICBJZgotICAgIHJ1bm5pbmcgcHl0ZXN0
IHdpdGggdGhlIC0tcGRiIG9wdGlvbiB0aGlzIG1lYW5zIHRoZSByZWFkbGluZSBtb2R1bGUgaXMg
bm90Ci0gICAgaW1wb3J0ZWQgdW50aWwgYWZ0ZXIgSS9PIGNhcHR1cmUgaGFzIGJlZW4gc3RhcnRl
ZC4KLQotICAgIFRoaXMgaXMgYSBwcm9ibGVtIGZvciBweXJlYWRsaW5lLCB3aGljaCBpcyBvZnRl
biB1c2VkIHRvIGltcGxlbWVudCByZWFkbGluZQotICAgIHN1cHBvcnQgb24gV2luZG93cywgYXMg
aXQgZG9lcyBub3QgYXR0YWNoIHRvIHRoZSBjb3JyZWN0IGhhbmRsZXMgZm9yIHN0ZG91dAotICAg
IGFuZC9vciBzdGRpbiBpZiB0aGV5IGhhdmUgYmVlbiByZWRpcmVjdGVkIGJ5IHRoZSBGRENhcHR1
cmUgbWVjaGFuaXNtLiAgVGhpcwotICAgIHdvcmthcm91bmQgZW5zdXJlcyB0aGF0IHJlYWRsaW5l
IGlzIGltcG9ydGVkIGJlZm9yZSBJL08gY2FwdHVyZSBpcyBzZXR1cCBzbwotICAgIHRoYXQgaXQg
Y2FuIGF0dGFjaCB0byB0aGUgYWN0dWFsIHN0ZGluL291dCBmb3IgdGhlIGNvbnNvbGUuCi0KLSAg
ICBTZWUgaHR0cHM6Ly9naXRodWIuY29tL3B5dGVzdC1kZXYvcHl0ZXN0L3B1bGwvMTI4MQotICAg
ICIiIgotCi0gICAgaWYgbm90IHN5cy5wbGF0Zm9ybS5zdGFydHN3aXRoKCd3aW4zMicpOgotICAg
ICAgICByZXR1cm4KLSAgICB0cnk6Ci0gICAgICAgIGltcG9ydCByZWFkbGluZSAgIyBub3FhCi0g
ICAgZXhjZXB0IEltcG9ydEVycm9yOgotICAgICAgICBwYXNzCi0KLQotZGVmIF9weTM2X3dpbmRv
d3Njb25zb2xlaW9fd29ya2Fyb3VuZChzdHJlYW0pOgotICAgICIiIgotICAgIFB5dGhvbiAzLjYg
aW1wbGVtZW50ZWQgdW5pY29kZSBjb25zb2xlIGhhbmRsaW5nIGZvciBXaW5kb3dzLiBUaGlzIHdv
cmtzCi0gICAgYnkgcmVhZGluZy93cml0aW5nIHRvIHRoZSByYXcgY29uc29sZSBoYW5kbGUgdXNp
bmcKLSAgICBgYHtSZWFkLFdyaXRlfUNvbnNvbGVXYGAuCi0KLSAgICBUaGUgcHJvYmxlbSBpcyB0
aGF0IHdlIGFyZSBnb2luZyB0byBgYGR1cDJgYCBvdmVyIHRoZSBzdGRpbyBmaWxlCi0gICAgZGVz
Y3JpcHRvcnMgd2hlbiBkb2luZyBgYEZEQ2FwdHVyZWBgIGFuZCB0aGlzIHdpbGwgYGBDbG9zZUhh
bmRsZWBgIHRoZQotICAgIGhhbmRsZXMgdXNlZCBieSBQeXRob24gdG8gd3JpdGUgdG8gdGhlIGNv
bnNvbGUuIFRob3VnaCB0aGVyZSBpcyBzdGlsbCBzb21lCi0gICAgd2VpcmRuZXNzIGFuZCB0aGUg
Y29uc29sZSBoYW5kbGUgc2VlbXMgdG8gb25seSBiZSBjbG9zZWQgcmFuZG9tbHkgYW5kIG5vdAot
ICAgIG9uIHRoZSBmaXJzdCBjYWxsIHRvIGBgQ2xvc2VIYW5kbGVgYCwgb3IgbWF5YmUgaXQgZ2V0
cyByZW9wZW5lZCB3aXRoIHRoZQotICAgIHNhbWUgaGFuZGxlIHZhbHVlIHdoZW4gd2Ugc3VzcGVu
ZCBjYXB0dXJpbmcuCi0KLSAgICBUaGUgd29ya2Fyb3VuZCBpbiB0aGlzIGNhc2Ugd2lsbCByZW9w
ZW4gc3RkaW8gd2l0aCBhIGRpZmZlcmVudCBmZCB3aGljaAotICAgIGFsc28gbWVhbnMgYSBkaWZm
ZXJlbnQgaGFuZGxlIGJ5IHJlcGxpY2F0aW5nIHRoZSBsb2dpYyBpbgotICAgICJQeV9saWZlY3lj
bGUuYzppbml0c3RkaW8vY3JlYXRlX3N0ZGlvIi4KLQotICAgIDpwYXJhbSBzdHJlYW06IGluIHBy
YWN0aWNlIGBgc3lzLnN0ZG91dGBgIG9yIGBgc3lzLnN0ZGVycmBgLCBidXQgZ2l2ZW4KLSAgICAg
ICAgaGVyZSBhcyBwYXJhbWV0ZXIgZm9yIHVuaXR0ZXN0aW5nIHB1cnBvc2VzLgotCi0gICAgU2Vl
IGh0dHBzOi8vZ2l0aHViLmNvbS9weXRlc3QtZGV2L3B5L2lzc3Vlcy8xMDMKLSAgICAiIiIKLSAg
ICBpZiBub3Qgc3lzLnBsYXRmb3JtLnN0YXJ0c3dpdGgoJ3dpbjMyJykgb3Igc3lzLnZlcnNpb25f
aW5mb1s6Ml0gPCAoMywgNik6Ci0gICAgICAgIHJldHVybgotCi0gICAgIyBiYWlsIG91dCBpZiBg
YHN0cmVhbWBgIGRvZXNuJ3Qgc2VlbSBsaWtlIGEgcHJvcGVyIGBgaW9gYCBzdHJlYW0gKCMyNjY2
KQotICAgIGlmIG5vdCBoYXNhdHRyKHN0cmVhbSwgJ2J1ZmZlcicpOgotICAgICAgICByZXR1cm4K
LQotICAgIGJ1ZmZlcmVkID0gaGFzYXR0cihzdHJlYW0uYnVmZmVyLCAncmF3JykKLSAgICByYXdf
c3Rkb3V0ID0gc3RyZWFtLmJ1ZmZlci5yYXcgaWYgYnVmZmVyZWQgZWxzZSBzdHJlYW0uYnVmZmVy
Ci0KLSAgICBpZiBub3QgaXNpbnN0YW5jZShyYXdfc3Rkb3V0LCBpby5fV2luZG93c0NvbnNvbGVJ
Tyk6Ci0gICAgICAgIHJldHVybgotCi0gICAgZGVmIF9yZW9wZW5fc3RkaW8oZiwgbW9kZSk6Ci0g
ICAgICAgIGlmIG5vdCBidWZmZXJlZCBhbmQgbW9kZVswXSA9PSAndyc6Ci0gICAgICAgICAgICBi
dWZmZXJpbmcgPSAwCi0gICAgICAgIGVsc2U6Ci0gICAgICAgICAgICBidWZmZXJpbmcgPSAtMQot
Ci0gICAgICAgIHJldHVybiBpby5UZXh0SU9XcmFwcGVyKAotICAgICAgICAgICAgb3Blbihvcy5k
dXAoZi5maWxlbm8oKSksIG1vZGUsIGJ1ZmZlcmluZyksCi0gICAgICAgICAgICBmLmVuY29kaW5n
LAotICAgICAgICAgICAgZi5lcnJvcnMsCi0gICAgICAgICAgICBmLm5ld2xpbmVzLAotICAgICAg
ICAgICAgZi5saW5lX2J1ZmZlcmluZykKLQotICAgIHN5cy5fX3N0ZGluX18gPSBzeXMuc3RkaW4g
PSBfcmVvcGVuX3N0ZGlvKHN5cy5zdGRpbiwgJ3JiJykKLSAgICBzeXMuX19zdGRvdXRfXyA9IHN5
cy5zdGRvdXQgPSBfcmVvcGVuX3N0ZGlvKHN5cy5zdGRvdXQsICd3YicpCi0gICAgc3lzLl9fc3Rk
ZXJyX18gPSBzeXMuc3RkZXJyID0gX3Jlb3Blbl9zdGRpbyhzeXMuc3RkZXJyLCAnd2InKQpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy90aGlyZF9wYXJ0eS9weXRlc3QvX3B5dGVzdC9jb21wYXQucHkgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9fcHl0
ZXN0L2NvbXBhdC5weQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNzU2MGZiZWMzOTc1
NTU3NDdmYzE0YTNhYWUyMzg2ODY2ODc4YzE4MC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9fcHl0ZXN0L2NvbXBhdC5weQorKysgL2Rl
di9udWxsCkBAIC0xLDMyMiArMCwwIEBACi0iIiIKLXB5dGhvbiB2ZXJzaW9uIGNvbXBhdGliaWxp
dHkgY29kZQotIiIiCi1mcm9tIF9fZnV0dXJlX18gaW1wb3J0IGFic29sdXRlX2ltcG9ydCwgZGl2
aXNpb24sIHByaW50X2Z1bmN0aW9uCi0KLWltcG9ydCBjb2RlY3MKLWltcG9ydCBmdW5jdG9vbHMK
LWltcG9ydCBpbnNwZWN0Ci1pbXBvcnQgcmUKLWltcG9ydCBzeXMKLQotaW1wb3J0IHB5Ci0KLWlt
cG9ydCBfcHl0ZXN0Ci1mcm9tIF9weXRlc3Qub3V0Y29tZXMgaW1wb3J0IFRFU1RfT1VUQ09NRQot
Ci10cnk6Ci0gICAgaW1wb3J0IGVudW0KLWV4Y2VwdCBJbXBvcnRFcnJvcjogICMgcHJhZ21hOiBu
byBjb3ZlcgotICAgICMgT25seSBhdmFpbGFibGUgaW4gUHl0aG9uIDMuNCsgb3IgYXMgYSBiYWNr
cG9ydAotICAgIGVudW0gPSBOb25lCi0KLQotX1BZMyA9IHN5cy52ZXJzaW9uX2luZm8gPiAoMywg
MCkKLV9QWTIgPSBub3QgX1BZMwotCi0KLWlmIF9QWTM6Ci0gICAgZnJvbSBpbnNwZWN0IGltcG9y
dCBzaWduYXR1cmUsIFBhcmFtZXRlciBhcyBQYXJhbWV0ZXIKLWVsc2U6Ci0gICAgZnJvbSBmdW5j
c2lncyBpbXBvcnQgc2lnbmF0dXJlLCBQYXJhbWV0ZXIgYXMgUGFyYW1ldGVyCi0KLQotTm9uZVR5
cGUgPSB0eXBlKE5vbmUpCi1OT1RTRVQgPSBvYmplY3QoKQotCi1QWTM1ID0gc3lzLnZlcnNpb25f
aW5mb1s6Ml0gPj0gKDMsIDUpCi1QWTM2ID0gc3lzLnZlcnNpb25faW5mb1s6Ml0gPj0gKDMsIDYp
Ci1NT0RVTEVfTk9UX0ZPVU5EX0VSUk9SID0gJ01vZHVsZU5vdEZvdW5kRXJyb3InIGlmIFBZMzYg
ZWxzZSAnSW1wb3J0RXJyb3InCi0KLQotZGVmIF9mb3JtYXRfYXJncyhmdW5jKToKLSAgICByZXR1
cm4gc3RyKHNpZ25hdHVyZShmdW5jKSkKLQotCi1pc2Z1bmN0aW9uID0gaW5zcGVjdC5pc2Z1bmN0
aW9uCi1pc2NsYXNzID0gaW5zcGVjdC5pc2NsYXNzCi0jIHVzZWQgdG8gd29yayBhcm91bmQgYSBw
eXRob24yIGV4Y2VwdGlvbiBpbmZvIGxlYWsKLWV4Y19jbGVhciA9IGdldGF0dHIoc3lzLCAnZXhj
X2NsZWFyJywgbGFtYmRhOiBOb25lKQotIyBUaGUgdHlwZSBvZiByZS5jb21waWxlIG9iamVjdHMg
aXMgbm90IGV4cG9zZWQgaW4gUHl0aG9uLgotUkVHRVhfVFlQRSA9IHR5cGUocmUuY29tcGlsZSgn
JykpCi0KLQotZGVmIGlzX2dlbmVyYXRvcihmdW5jKToKLSAgICBnZW5mdW5jID0gaW5zcGVjdC5p
c2dlbmVyYXRvcmZ1bmN0aW9uKGZ1bmMpCi0gICAgcmV0dXJuIGdlbmZ1bmMgYW5kIG5vdCBpc2Nv
cm91dGluZWZ1bmN0aW9uKGZ1bmMpCi0KLQotZGVmIGlzY29yb3V0aW5lZnVuY3Rpb24oZnVuYyk6
Ci0gICAgIiIiUmV0dXJuIFRydWUgaWYgZnVuYyBpcyBhIGRlY29yYXRlZCBjb3JvdXRpbmUgZnVu
Y3Rpb24uCi0KLSAgICBOb3RlOiBjb3BpZWQgYW5kIG1vZGlmaWVkIGZyb20gUHl0aG9uIDMuNSdz
IGJ1aWx0aW4gY291cm91dGluZXMucHkgdG8gYXZvaWQgaW1wb3J0IGFzeW5jaW8gZGlyZWN0bHks
Ci0gICAgd2hpY2ggaW4gdHVybnMgYWxzbyBpbml0aWFsaXplcyB0aGUgImxvZ2dpbmciIG1vZHVs
ZSBhcyBzaWRlLWVmZmVjdCAoc2VlIGlzc3VlICM4KS4KLSAgICAiIiIKLSAgICByZXR1cm4gKGdl
dGF0dHIoZnVuYywgJ19pc19jb3JvdXRpbmUnLCBGYWxzZSkgb3IKLSAgICAgICAgICAgIChoYXNh
dHRyKGluc3BlY3QsICdpc2Nvcm91dGluZWZ1bmN0aW9uJykgYW5kIGluc3BlY3QuaXNjb3JvdXRp
bmVmdW5jdGlvbihmdW5jKSkpCi0KLQotZGVmIGdldGxvY2F0aW9uKGZ1bmN0aW9uLCBjdXJkaXIp
OgotICAgIGZuID0gcHkucGF0aC5sb2NhbChpbnNwZWN0LmdldGZpbGUoZnVuY3Rpb24pKQotICAg
IGxpbmVubyA9IHB5LmJ1aWx0aW4uX2dldGNvZGUoZnVuY3Rpb24pLmNvX2ZpcnN0bGluZW5vCi0g
ICAgaWYgZm4ucmVsdG8oY3VyZGlyKToKLSAgICAgICAgZm4gPSBmbi5yZWx0byhjdXJkaXIpCi0g
ICAgcmV0dXJuICIlczolZCIgJSAoZm4sIGxpbmVubyArIDEpCi0KLQotZGVmIG51bV9tb2NrX3Bh
dGNoX2FyZ3MoZnVuY3Rpb24pOgotICAgICIiIiByZXR1cm4gbnVtYmVyIG9mIGFyZ3VtZW50cyB1
c2VkIHVwIGJ5IG1vY2sgYXJndW1lbnRzIChpZiBhbnkpICIiIgotICAgIHBhdGNoaW5ncyA9IGdl
dGF0dHIoZnVuY3Rpb24sICJwYXRjaGluZ3MiLCBOb25lKQotICAgIGlmIG5vdCBwYXRjaGluZ3M6
Ci0gICAgICAgIHJldHVybiAwCi0gICAgbW9jayA9IHN5cy5tb2R1bGVzLmdldCgibW9jayIsIHN5
cy5tb2R1bGVzLmdldCgidW5pdHRlc3QubW9jayIsIE5vbmUpKQotICAgIGlmIG1vY2sgaXMgbm90
IE5vbmU6Ci0gICAgICAgIHJldHVybiBsZW4oW3AgZm9yIHAgaW4gcGF0Y2hpbmdzCi0gICAgICAg
ICAgICAgICAgICAgIGlmIG5vdCBwLmF0dHJpYnV0ZV9uYW1lIGFuZCBwLm5ldyBpcyBtb2NrLkRF
RkFVTFRdKQotICAgIHJldHVybiBsZW4ocGF0Y2hpbmdzKQotCi0KLWRlZiBnZXRmdW5jYXJnbmFt
ZXMoZnVuY3Rpb24sIGlzX21ldGhvZD1GYWxzZSwgY2xzPU5vbmUpOgotICAgICIiIlJldHVybnMg
dGhlIG5hbWVzIG9mIGEgZnVuY3Rpb24ncyBtYW5kYXRvcnkgYXJndW1lbnRzLgotCi0gICAgVGhp
cyBzaG91bGQgcmV0dXJuIHRoZSBuYW1lcyBvZiBhbGwgZnVuY3Rpb24gYXJndW1lbnRzIHRoYXQ6
Ci0gICAgICAgICogQXJlbid0IGJvdW5kIHRvIGFuIGluc3RhbmNlIG9yIHR5cGUgYXMgaW4gaW5z
dGFuY2Ugb3IgY2xhc3MgbWV0aG9kcy4KLSAgICAgICAgKiBEb24ndCBoYXZlIGRlZmF1bHQgdmFs
dWVzLgotICAgICAgICAqIEFyZW4ndCBib3VuZCB3aXRoIGZ1bmN0b29scy5wYXJ0aWFsLgotICAg
ICAgICAqIEFyZW4ndCByZXBsYWNlZCB3aXRoIG1vY2tzLgotCi0gICAgVGhlIGlzX21ldGhvZCBh
bmQgY2xzIGFyZ3VtZW50cyBpbmRpY2F0ZSB0aGF0IHRoZSBmdW5jdGlvbiBzaG91bGQKLSAgICBi
ZSB0cmVhdGVkIGFzIGEgYm91bmQgbWV0aG9kIGV2ZW4gdGhvdWdoIGl0J3Mgbm90IHVubGVzcywg
b25seSBpbgotICAgIHRoZSBjYXNlIG9mIGNscywgdGhlIGZ1bmN0aW9uIGlzIGEgc3RhdGljIG1l
dGhvZC4KLQotICAgIEBSb25ueVBmYW5uc2NobWlkdDogVGhpcyBmdW5jdGlvbiBzaG91bGQgYmUg
cmVmYWN0b3JlZCB3aGVuIHdlCi0gICAgcmV2aXNpdCBmaXh0dXJlcy4gVGhlIGZpeHR1cmUgbWVj
aGFuaXNtIHNob3VsZCBhc2sgdGhlIG5vZGUgZm9yCi0gICAgdGhlIGZpeHR1cmUgbmFtZXMsIGFu
ZCBub3QgdHJ5IHRvIG9idGFpbiBkaXJlY3RseSBmcm9tIHRoZQotICAgIGZ1bmN0aW9uIG9iamVj
dCB3ZWxsIGFmdGVyIGNvbGxlY3Rpb24gaGFzIG9jY3VycmVkLgotCi0gICAgIiIiCi0gICAgIyBU
aGUgcGFyYW1ldGVycyBhdHRyaWJ1dGUgb2YgYSBTaWduYXR1cmUgb2JqZWN0IGNvbnRhaW5zIGFu
Ci0gICAgIyBvcmRlcmVkIG1hcHBpbmcgb2YgcGFyYW1ldGVyIG5hbWVzIHRvIFBhcmFtZXRlciBp
bnN0YW5jZXMuICBUaGlzCi0gICAgIyBjcmVhdGVzIGEgdHVwbGUgb2YgdGhlIG5hbWVzIG9mIHRo
ZSBwYXJhbWV0ZXJzIHRoYXQgZG9uJ3QgaGF2ZQotICAgICMgZGVmYXVsdHMuCi0gICAgYXJnX25h
bWVzID0gdHVwbGUocC5uYW1lIGZvciBwIGluIHNpZ25hdHVyZShmdW5jdGlvbikucGFyYW1ldGVy
cy52YWx1ZXMoKQotICAgICAgICAgICAgICAgICAgICAgIGlmIChwLmtpbmQgaXMgUGFyYW1ldGVy
LlBPU0lUSU9OQUxfT1JfS0VZV09SRCBvcgotICAgICAgICAgICAgICAgICAgICAgICAgICBwLmtp
bmQgaXMgUGFyYW1ldGVyLktFWVdPUkRfT05MWSkgYW5kCi0gICAgICAgICAgICAgICAgICAgICAg
cC5kZWZhdWx0IGlzIFBhcmFtZXRlci5lbXB0eSkKLSAgICAjIElmIHRoaXMgZnVuY3Rpb24gc2hv
dWxkIGJlIHRyZWF0ZWQgYXMgYSBib3VuZCBtZXRob2QgZXZlbiB0aG91Z2gKLSAgICAjIGl0J3Mg
cGFzc2VkIGFzIGFuIHVuYm91bmQgbWV0aG9kIG9yIGZ1bmN0aW9uLCByZW1vdmUgdGhlIGZpcnN0
Ci0gICAgIyBwYXJhbWV0ZXIgbmFtZS4KLSAgICBpZiAoaXNfbWV0aG9kIG9yCi0gICAgICAgIChj
bHMgYW5kIG5vdCBpc2luc3RhbmNlKGNscy5fX2RpY3RfXy5nZXQoZnVuY3Rpb24uX19uYW1lX18s
IE5vbmUpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0aWNtZXRob2QpKSk6
Ci0gICAgICAgIGFyZ19uYW1lcyA9IGFyZ19uYW1lc1sxOl0KLSAgICAjIFJlbW92ZSBhbnkgbmFt
ZXMgdGhhdCB3aWxsIGJlIHJlcGxhY2VkIHdpdGggbW9ja3MuCi0gICAgaWYgaGFzYXR0cihmdW5j
dGlvbiwgIl9fd3JhcHBlZF9fIik6Ci0gICAgICAgIGFyZ19uYW1lcyA9IGFyZ19uYW1lc1tudW1f
bW9ja19wYXRjaF9hcmdzKGZ1bmN0aW9uKTpdCi0gICAgcmV0dXJuIGFyZ19uYW1lcwotCi0KLWlm
IF9QWTM6Ci0gICAgU1RSSU5HX1RZUEVTID0gYnl0ZXMsIHN0cgotICAgIFVOSUNPREVfVFlQRVMg
PSBzdHIsCi0KLSAgICBpZiBQWTM1OgotICAgICAgICBkZWYgX2J5dGVzX3RvX2FzY2lpKHZhbCk6
Ci0gICAgICAgICAgICByZXR1cm4gdmFsLmRlY29kZSgnYXNjaWknLCAnYmFja3NsYXNocmVwbGFj
ZScpCi0gICAgZWxzZToKLSAgICAgICAgZGVmIF9ieXRlc190b19hc2NpaSh2YWwpOgotICAgICAg
ICAgICAgaWYgdmFsOgotICAgICAgICAgICAgICAgICMgc291cmNlOiBodHRwOi8vZ29vLmdsL2JH
c253QwotICAgICAgICAgICAgICAgIGVuY29kZWRfYnl0ZXMsIF8gPSBjb2RlY3MuZXNjYXBlX2Vu
Y29kZSh2YWwpCi0gICAgICAgICAgICAgICAgcmV0dXJuIGVuY29kZWRfYnl0ZXMuZGVjb2RlKCdh
c2NpaScpCi0gICAgICAgICAgICBlbHNlOgotICAgICAgICAgICAgICAgICMgZW1wdHkgYnl0ZXMg
Y3Jhc2hlcyBjb2RlY3MuZXNjYXBlX2VuY29kZSAoIzEwODcpCi0gICAgICAgICAgICAgICAgcmV0
dXJuICcnCi0KLSAgICBkZWYgYXNjaWlfZXNjYXBlZCh2YWwpOgotICAgICAgICAiIiJJZiB2YWwg
aXMgcHVyZSBhc2NpaSwgcmV0dXJucyBpdCBhcyBhIHN0cigpLiAgT3RoZXJ3aXNlLCBlc2NhcGVz
Ci0gICAgICAgIGJ5dGVzIG9iamVjdHMgaW50byBhIHNlcXVlbmNlIG9mIGVzY2FwZWQgYnl0ZXM6
Ci0KLSAgICAgICAgYidceGMzXHhiNFx4YzVceGQ2JyAtPiB1J1xceGMzXFx4YjRcXHhjNVxceGQ2
JwotCi0gICAgICAgIGFuZCBlc2NhcGVzIHVuaWNvZGUgb2JqZWN0cyBpbnRvIGEgc2VxdWVuY2Ug
b2YgZXNjYXBlZCB1bmljb2RlCi0gICAgICAgIGlkcywgZS5nLjoKLQotICAgICAgICAnNFxcblZc
XFUwMDA0M2VmYVxceDBlTVhXQlxceDFlXFx1MzAyOFxcdTE1ZmRcXHhjZFxcVTAwMDdkOTQ0Jwot
Ci0gICAgICAgIG5vdGU6Ci0gICAgICAgICAgIHRoZSBvYnZpb3VzICJ2LmRlY29kZSgndW5pY29k
ZS1lc2NhcGUnKSIgd2lsbCByZXR1cm4KLSAgICAgICAgICAgdmFsaWQgdXRmLTggdW5pY29kZSBp
ZiBpdCBmaW5kcyB0aGVtIGluIGJ5dGVzLCBidXQgd2UKLSAgICAgICAgICAgd2FudCB0byByZXR1
cm4gZXNjYXBlZCBieXRlcyBmb3IgYW55IGJ5dGUsIGV2ZW4gaWYgdGhleSBtYXRjaAotICAgICAg
ICAgICBhIHV0Zi04IHN0cmluZy4KLQotICAgICAgICAiIiIKLSAgICAgICAgaWYgaXNpbnN0YW5j
ZSh2YWwsIGJ5dGVzKToKLSAgICAgICAgICAgIHJldHVybiBfYnl0ZXNfdG9fYXNjaWkodmFsKQot
ICAgICAgICBlbHNlOgotICAgICAgICAgICAgcmV0dXJuIHZhbC5lbmNvZGUoJ3VuaWNvZGVfZXNj
YXBlJykuZGVjb2RlKCdhc2NpaScpCi1lbHNlOgotICAgIFNUUklOR19UWVBFUyA9IGJ5dGVzLCBz
dHIsIHVuaWNvZGUKLSAgICBVTklDT0RFX1RZUEVTID0gdW5pY29kZSwKLQotICAgIGRlZiBhc2Np
aV9lc2NhcGVkKHZhbCk6Ci0gICAgICAgICIiIkluIHB5MiBieXRlcyBhbmQgc3RyIGFyZSB0aGUg
c2FtZSB0eXBlLCBzbyByZXR1cm4gaWYgaXQncyBhIGJ5dGVzCi0gICAgICAgIG9iamVjdCwgcmV0
dXJuIGl0IHVuY2hhbmdlZCBpZiBpdCBpcyBhIGZ1bGwgYXNjaWkgc3RyaW5nLAotICAgICAgICBv
dGhlcndpc2UgZXNjYXBlIGl0IGludG8gaXRzIGJpbmFyeSBmb3JtLgotCi0gICAgICAgIElmIGl0
J3MgYSB1bmljb2RlIHN0cmluZywgY2hhbmdlIHRoZSB1bmljb2RlIGNoYXJhY3RlcnMgaW50bwot
ICAgICAgICB1bmljb2RlIGVzY2FwZXMuCi0KLSAgICAgICAgIiIiCi0gICAgICAgIGlmIGlzaW5z
dGFuY2UodmFsLCBieXRlcyk6Ci0gICAgICAgICAgICB0cnk6Ci0gICAgICAgICAgICAgICAgcmV0
dXJuIHZhbC5lbmNvZGUoJ2FzY2lpJykKLSAgICAgICAgICAgIGV4Y2VwdCBVbmljb2RlRGVjb2Rl
RXJyb3I6Ci0gICAgICAgICAgICAgICAgcmV0dXJuIHZhbC5lbmNvZGUoJ3N0cmluZy1lc2NhcGUn
KQotICAgICAgICBlbHNlOgotICAgICAgICAgICAgcmV0dXJuIHZhbC5lbmNvZGUoJ3VuaWNvZGUt
ZXNjYXBlJykKLQotCi1kZWYgZ2V0X3JlYWxfZnVuYyhvYmopOgotICAgICIiIiBnZXRzIHRoZSBy
ZWFsIGZ1bmN0aW9uIG9iamVjdCBvZiB0aGUgKHBvc3NpYmx5KSB3cmFwcGVkIG9iamVjdCBieQot
ICAgIGZ1bmN0b29scy53cmFwcyBvciBmdW5jdG9vbHMucGFydGlhbC4KLSAgICAiIiIKLSAgICBz
dGFydF9vYmogPSBvYmoKLSAgICBmb3IgaSBpbiByYW5nZSgxMDApOgotICAgICAgICBuZXdfb2Jq
ID0gZ2V0YXR0cihvYmosICdfX3dyYXBwZWRfXycsIE5vbmUpCi0gICAgICAgIGlmIG5ld19vYmog
aXMgTm9uZToKLSAgICAgICAgICAgIGJyZWFrCi0gICAgICAgIG9iaiA9IG5ld19vYmoKLSAgICBl
bHNlOgotICAgICAgICByYWlzZSBWYWx1ZUVycm9yKAotICAgICAgICAgICAgKCJjb3VsZCBub3Qg
ZmluZCByZWFsIGZ1bmN0aW9uIG9mIHtzdGFydH0iCi0gICAgICAgICAgICAgIlxuc3RvcHBlZCBh
dCB7Y3VycmVudH0iKS5mb3JtYXQoCi0gICAgICAgICAgICAgICAgc3RhcnQ9cHkuaW8uc2FmZXJl
cHIoc3RhcnRfb2JqKSwKLSAgICAgICAgICAgICAgICBjdXJyZW50PXB5LmlvLnNhZmVyZXByKG9i
aikpKQotICAgIGlmIGlzaW5zdGFuY2Uob2JqLCBmdW5jdG9vbHMucGFydGlhbCk6Ci0gICAgICAg
IG9iaiA9IG9iai5mdW5jCi0gICAgcmV0dXJuIG9iagotCi0KLWRlZiBnZXRmc2xpbmVubyhvYmop
OgotICAgICMgeHh4IGxldCBkZWNvcmF0b3JzIGV0YyBzcGVjaWZ5IGEgc2FuZSBvcmRlcmluZwot
ICAgIG9iaiA9IGdldF9yZWFsX2Z1bmMob2JqKQotICAgIGlmIGhhc2F0dHIob2JqLCAncGxhY2Vf
YXMnKToKLSAgICAgICAgb2JqID0gb2JqLnBsYWNlX2FzCi0gICAgZnNsaW5lbm8gPSBfcHl0ZXN0
Ll9jb2RlLmdldGZzbGluZW5vKG9iaikKLSAgICBhc3NlcnQgaXNpbnN0YW5jZShmc2xpbmVub1sx
XSwgaW50KSwgb2JqCi0gICAgcmV0dXJuIGZzbGluZW5vCi0KLQotZGVmIGdldGltZnVuYyhmdW5j
KToKLSAgICB0cnk6Ci0gICAgICAgIHJldHVybiBmdW5jLl9fZnVuY19fCi0gICAgZXhjZXB0IEF0
dHJpYnV0ZUVycm9yOgotICAgICAgICByZXR1cm4gZnVuYwotCi0KLWRlZiBzYWZlX2dldGF0dHIo
b2JqZWN0LCBuYW1lLCBkZWZhdWx0KToKLSAgICAiIiIgTGlrZSBnZXRhdHRyIGJ1dCByZXR1cm4g
ZGVmYXVsdCB1cG9uIGFueSBFeGNlcHRpb24gb3IgYW55IE91dGNvbWVFeGNlcHRpb24uCi0KLSAg
ICBBdHRyaWJ1dGUgYWNjZXNzIGNhbiBwb3RlbnRpYWxseSBmYWlsIGZvciAnZXZpbCcgUHl0aG9u
IG9iamVjdHMuCi0gICAgU2VlIGlzc3VlICMyMTQuCi0gICAgSXQgY2F0Y2hlcyBPdXRjb21lRXhj
ZXB0aW9uIGJlY2F1c2Ugb2YgIzI0OTAgKGlzc3VlICM1ODApLCBuZXcgb3V0Y29tZXMgYXJlIGRl
cml2ZWQgZnJvbSBCYXNlRXhjZXB0aW9uCi0gICAgaW5zdGVhZCBvZiBFeGNlcHRpb24gKGZvciBt
b3JlIGRldGFpbHMgY2hlY2sgIzI3MDcpCi0gICAgIiIiCi0gICAgdHJ5OgotICAgICAgICByZXR1
cm4gZ2V0YXR0cihvYmplY3QsIG5hbWUsIGRlZmF1bHQpCi0gICAgZXhjZXB0IFRFU1RfT1VUQ09N
RToKLSAgICAgICAgcmV0dXJuIGRlZmF1bHQKLQotCi1kZWYgX2lzX3VuaXR0ZXN0X3VuZXhwZWN0
ZWRfc3VjY2Vzc19hX2ZhaWx1cmUoKToKLSAgICAiIiJSZXR1cm4gaWYgdGhlIHRlc3Qgc3VpdGUg
c2hvdWxkIGZhaWwgaWYgYSBAZXhwZWN0ZWRGYWlsdXJlIHVuaXR0ZXN0IHRlc3QgUEFTU0VTLgot
Ci0gICAgRnJvbSBodHRwczovL2RvY3MucHl0aG9uLm9yZy8zL2xpYnJhcnkvdW5pdHRlc3QuaHRt
bD9oaWdobGlnaHQ9dW5pdHRlc3QjdW5pdHRlc3QuVGVzdFJlc3VsdC53YXNTdWNjZXNzZnVsOgot
ICAgICAgICBDaGFuZ2VkIGluIHZlcnNpb24gMy40OiBSZXR1cm5zIEZhbHNlIGlmIHRoZXJlIHdl
cmUgYW55Ci0gICAgICAgIHVuZXhwZWN0ZWRTdWNjZXNzZXMgZnJvbSB0ZXN0cyBtYXJrZWQgd2l0
aCB0aGUgZXhwZWN0ZWRGYWlsdXJlKCkgZGVjb3JhdG9yLgotICAgICIiIgotICAgIHJldHVybiBz
eXMudmVyc2lvbl9pbmZvID49ICgzLCA0KQotCi0KLWlmIF9QWTM6Ci0gICAgZGVmIHNhZmVfc3Ry
KHYpOgotICAgICAgICAiIiJyZXR1cm5zIHYgYXMgc3RyaW5nIiIiCi0gICAgICAgIHJldHVybiBz
dHIodikKLWVsc2U6Ci0gICAgZGVmIHNhZmVfc3RyKHYpOgotICAgICAgICAiIiJyZXR1cm5zIHYg
YXMgc3RyaW5nLCBjb252ZXJ0aW5nIHRvIGFzY2lpIGlmIG5lY2Vzc2FyeSIiIgotICAgICAgICB0
cnk6Ci0gICAgICAgICAgICByZXR1cm4gc3RyKHYpCi0gICAgICAgIGV4Y2VwdCBVbmljb2RlRXJy
b3I6Ci0gICAgICAgICAgICBpZiBub3QgaXNpbnN0YW5jZSh2LCB1bmljb2RlKToKLSAgICAgICAg
ICAgICAgICB2ID0gdW5pY29kZSh2KQotICAgICAgICAgICAgZXJyb3JzID0gJ3JlcGxhY2UnCi0g
ICAgICAgICAgICByZXR1cm4gdi5lbmNvZGUoJ3V0Zi04JywgZXJyb3JzKQotCi0KLUNPTExFQ1Rf
RkFLRU1PRFVMRV9BVFRSSUJVVEVTID0gKAotICAgICdDb2xsZWN0b3InLAotICAgICdNb2R1bGUn
LAotICAgICdHZW5lcmF0b3InLAotICAgICdGdW5jdGlvbicsCi0gICAgJ0luc3RhbmNlJywKLSAg
ICAnU2Vzc2lvbicsCi0gICAgJ0l0ZW0nLAotICAgICdDbGFzcycsCi0gICAgJ0ZpbGUnLAotICAg
ICdfZmlsbGZ1bmNhcmdzJywKLSkKLQotCi1kZWYgX3NldHVwX2NvbGxlY3RfZmFrZW1vZHVsZSgp
OgotICAgIGZyb20gdHlwZXMgaW1wb3J0IE1vZHVsZVR5cGUKLSAgICBpbXBvcnQgcHl0ZXN0Ci0g
ICAgcHl0ZXN0LmNvbGxlY3QgPSBNb2R1bGVUeXBlKCdweXRlc3QuY29sbGVjdCcpCi0gICAgcHl0
ZXN0LmNvbGxlY3QuX19hbGxfXyA9IFtdICAjIHVzZWQgZm9yIHNldG5zCi0gICAgZm9yIGF0dHIg
aW4gQ09MTEVDVF9GQUtFTU9EVUxFX0FUVFJJQlVURVM6Ci0gICAgICAgIHNldGF0dHIocHl0ZXN0
LmNvbGxlY3QsIGF0dHIsIGdldGF0dHIocHl0ZXN0LCBhdHRyKSkKLQotCi1pZiBfUFkyOgotICAg
ICMgV2l0aG91dCB0aGlzIHRoZSB0ZXN0X2R1cGZpbGVfb25fdGV4dGlvIHdpbGwgZmFpbCwgb3Ro
ZXJ3aXNlIENhcHR1cmVJTyBjb3VsZCBkaXJlY3RseSBpbmhlcml0IGZyb20gU3RyaW5nSU8uCi0g
ICAgZnJvbSBweS5pbyBpbXBvcnQgVGV4dElPCi0KLSAgICBjbGFzcyBDYXB0dXJlSU8oVGV4dElP
KToKLQotICAgICAgICBAcHJvcGVydHkKLSAgICAgICAgZGVmIGVuY29kaW5nKHNlbGYpOgotICAg
ICAgICAgICAgcmV0dXJuIGdldGF0dHIoc2VsZiwgJ19lbmNvZGluZycsICdVVEYtOCcpCi0KLWVs
c2U6Ci0gICAgaW1wb3J0IGlvCi0KLSAgICBjbGFzcyBDYXB0dXJlSU8oaW8uVGV4dElPV3JhcHBl
cik6Ci0gICAgICAgIGRlZiBfX2luaXRfXyhzZWxmKToKLSAgICAgICAgICAgIHN1cGVyKENhcHR1
cmVJTywgc2VsZikuX19pbml0X18oCi0gICAgICAgICAgICAgICAgaW8uQnl0ZXNJTygpLAotICAg
ICAgICAgICAgICAgIGVuY29kaW5nPSdVVEYtOCcsIG5ld2xpbmU9JycsIHdyaXRlX3Rocm91Z2g9
VHJ1ZSwKLSAgICAgICAgICAgICkKLQotICAgICAgICBkZWYgZ2V0dmFsdWUoc2VsZik6Ci0gICAg
ICAgICAgICByZXR1cm4gc2VsZi5idWZmZXIuZ2V0dmFsdWUoKS5kZWNvZGUoJ1VURi04JykKLQot
Ci1jbGFzcyBGdW5jYXJnbmFtZXNDb21wYXRBdHRyKG9iamVjdCk6Ci0gICAgIiIiIGhlbHBlciBj
bGFzcyBzbyB0aGF0IE1ldGFmdW5jLCBGdW5jdGlvbiBhbmQgRml4dHVyZVJlcXVlc3QKLSAgICBk
b24ndCBuZWVkIHRvIGVhY2ggZGVmaW5lIHRoZSAiZnVuY2FyZ25hbWVzIiBjb21wYXRpYmlsaXR5
IGF0dHJpYnV0ZS4KLSAgICAiIiIKLSAgICBAcHJvcGVydHkKLSAgICBkZWYgZnVuY2FyZ25hbWVz
KHNlbGYpOgotICAgICAgICAiIiIgYWxpYXMgYXR0cmlidXRlIGZvciBgYGZpeHR1cmVuYW1lc2Bg
IGZvciBwcmUtMi4zIGNvbXBhdGliaWxpdHkiIiIKLSAgICAgICAgcmV0dXJuIHNlbGYuZml4dHVy
ZW5hbWVzCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9fcHl0ZXN0L2NvbmZpZy5weSBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkv
cHl0ZXN0L19weXRlc3QvY29uZmlnLnB5CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0
OTljODA3OWQ0MTU5ODZjMThiMWYzZmY2NGQyMDc1NDJlNWU0MzFjLi4wMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L19weXRlc3QvY29uZmln
LnB5CisrKyAvZGV2L251bGwKQEAgLTEsMTQwMCArMCwwIEBACi0iIiIgY29tbWFuZCBsaW5lIG9w
dGlvbnMsIGluaS1maWxlIGFuZCBjb25mdGVzdC5weSBwcm9jZXNzaW5nLiAiIiIKLWZyb20gX19m
dXR1cmVfXyBpbXBvcnQgYWJzb2x1dGVfaW1wb3J0LCBkaXZpc2lvbiwgcHJpbnRfZnVuY3Rpb24K
LWltcG9ydCBhcmdwYXJzZQotaW1wb3J0IHNobGV4Ci1pbXBvcnQgdHJhY2ViYWNrCi1pbXBvcnQg
dHlwZXMKLWltcG9ydCB3YXJuaW5ncwotCi1pbXBvcnQgc2l4Ci1pbXBvcnQgcHkKLSMgRE9OJ3Qg
aW1wb3J0IHB5dGVzdCBoZXJlIGJlY2F1c2UgaXQgY2F1c2VzIGltcG9ydCBjeWNsZSB0cm91Ymxl
cwotaW1wb3J0IHN5cwotaW1wb3J0IG9zCi1pbXBvcnQgX3B5dGVzdC5fY29kZQotaW1wb3J0IF9w
eXRlc3QuaG9va3NwZWMgICMgdGhlIGV4dGVuc2lvbiBwb2ludCBkZWZpbml0aW9ucwotaW1wb3J0
IF9weXRlc3QuYXNzZXJ0aW9uCi1mcm9tIHBsdWdneSBpbXBvcnQgUGx1Z2luTWFuYWdlciwgSG9v
a2ltcGxNYXJrZXIsIEhvb2tzcGVjTWFya2VyCi1mcm9tIF9weXRlc3QuY29tcGF0IGltcG9ydCBz
YWZlX3N0cgotCi1ob29raW1wbCA9IEhvb2tpbXBsTWFya2VyKCJweXRlc3QiKQotaG9va3NwZWMg
PSBIb29rc3BlY01hcmtlcigicHl0ZXN0IikKLQotIyBweXRlc3Qgc3RhcnR1cAotIwotCi0KLWNs
YXNzIENvbmZ0ZXN0SW1wb3J0RmFpbHVyZShFeGNlcHRpb24pOgotICAgIGRlZiBfX2luaXRfXyhz
ZWxmLCBwYXRoLCBleGNpbmZvKToKLSAgICAgICAgRXhjZXB0aW9uLl9faW5pdF9fKHNlbGYsIHBh
dGgsIGV4Y2luZm8pCi0gICAgICAgIHNlbGYucGF0aCA9IHBhdGgKLSAgICAgICAgc2VsZi5leGNp
bmZvID0gZXhjaW5mbwotCi0gICAgZGVmIF9fc3RyX18oc2VsZik6Ci0gICAgICAgIGV0eXBlLCBl
dmFsdWUsIGV0YiA9IHNlbGYuZXhjaW5mbwotICAgICAgICBmb3JtYXR0ZWQgPSB0cmFjZWJhY2su
Zm9ybWF0X3RiKGV0YikKLSAgICAgICAgIyBUaGUgbGV2ZWwgb2YgdGhlIHRyYWNlYmFja3Mgd2Ug
d2FudCB0byBwcmludCBpcyBoYW5kIGNyYWZ0ZWQgOigKLSAgICAgICAgcmV0dXJuIHJlcHIoZXZh
bHVlKSArICdcbicgKyAnJy5qb2luKGZvcm1hdHRlZFsyOl0pCi0KLQotZGVmIG1haW4oYXJncz1O
b25lLCBwbHVnaW5zPU5vbmUpOgotICAgICIiIiByZXR1cm4gZXhpdCBjb2RlLCBhZnRlciBwZXJm
b3JtaW5nIGFuIGluLXByb2Nlc3MgdGVzdCBydW4uCi0KLSAgICA6YXJnIGFyZ3M6IGxpc3Qgb2Yg
Y29tbWFuZCBsaW5lIGFyZ3VtZW50cy4KLQotICAgIDphcmcgcGx1Z2luczogbGlzdCBvZiBwbHVn
aW4gb2JqZWN0cyB0byBiZSBhdXRvLXJlZ2lzdGVyZWQgZHVyaW5nCi0gICAgICAgICAgICAgICAg
ICBpbml0aWFsaXphdGlvbi4KLSAgICAiIiIKLSAgICB0cnk6Ci0gICAgICAgIHRyeToKLSAgICAg
ICAgICAgIGNvbmZpZyA9IF9wcmVwYXJlY29uZmlnKGFyZ3MsIHBsdWdpbnMpCi0gICAgICAgIGV4
Y2VwdCBDb25mdGVzdEltcG9ydEZhaWx1cmUgYXMgZToKLSAgICAgICAgICAgIHR3ID0gcHkuaW8u
VGVybWluYWxXcml0ZXIoc3lzLnN0ZGVycikKLSAgICAgICAgICAgIGZvciBsaW5lIGluIHRyYWNl
YmFjay5mb3JtYXRfZXhjZXB0aW9uKCplLmV4Y2luZm8pOgotICAgICAgICAgICAgICAgIHR3Lmxp
bmUobGluZS5yc3RyaXAoKSwgcmVkPVRydWUpCi0gICAgICAgICAgICB0dy5saW5lKCJFUlJPUjog
Y291bGQgbm90IGxvYWQgJXNcbiIgJSAoZS5wYXRoKSwgcmVkPVRydWUpCi0gICAgICAgICAgICBy
ZXR1cm4gNAotICAgICAgICBlbHNlOgotICAgICAgICAgICAgdHJ5OgotICAgICAgICAgICAgICAg
IHJldHVybiBjb25maWcuaG9vay5weXRlc3RfY21kbGluZV9tYWluKGNvbmZpZz1jb25maWcpCi0g
ICAgICAgICAgICBmaW5hbGx5OgotICAgICAgICAgICAgICAgIGNvbmZpZy5fZW5zdXJlX3VuY29u
ZmlndXJlKCkKLSAgICBleGNlcHQgVXNhZ2VFcnJvciBhcyBlOgotICAgICAgICBmb3IgbXNnIGlu
IGUuYXJnczoKLSAgICAgICAgICAgIHN5cy5zdGRlcnIud3JpdGUoIkVSUk9SOiAlc1xuIiAlICht
c2csKSkKLSAgICAgICAgcmV0dXJuIDQKLQotCi1jbGFzcyBjbWRsaW5lOiAgIyBjb21wYXRpYmls
aXR5IG5hbWVzcGFjZQotICAgIG1haW4gPSBzdGF0aWNtZXRob2QobWFpbikKLQotCi1jbGFzcyBV
c2FnZUVycm9yKEV4Y2VwdGlvbik6Ci0gICAgIiIiIGVycm9yIGluIHB5dGVzdCB1c2FnZSBvciBp
bnZvY2F0aW9uIiIiCi0KLQotY2xhc3MgUHJpbnRIZWxwKEV4Y2VwdGlvbik6Ci0gICAgIiIiUmFp
c2VkIHdoZW4gcHl0ZXN0IHNob3VsZCBwcmludCBpdCdzIGhlbHAgdG8gc2tpcCB0aGUgcmVzdCBv
ZiB0aGUKLSAgICBhcmd1bWVudCBwYXJzaW5nIGFuZCB2YWxpZGF0aW9uLiIiIgotICAgIHBhc3MK
LQotCi1kZWYgZmlsZW5hbWVfYXJnKHBhdGgsIG9wdG5hbWUpOgotICAgICIiIiBBcmdwYXJzZSB0
eXBlIHZhbGlkYXRvciBmb3IgZmlsZW5hbWUgYXJndW1lbnRzLgotCi0gICAgOnBhdGg6IHBhdGgg
b2YgZmlsZW5hbWUKLSAgICA6b3B0bmFtZTogbmFtZSBvZiB0aGUgb3B0aW9uCi0gICAgIiIiCi0g
ICAgaWYgb3MucGF0aC5pc2RpcihwYXRoKToKLSAgICAgICAgcmFpc2UgVXNhZ2VFcnJvcigiezB9
IG11c3QgYmUgYSBmaWxlbmFtZSwgZ2l2ZW46IHsxfSIuZm9ybWF0KG9wdG5hbWUsIHBhdGgpKQot
ICAgIHJldHVybiBwYXRoCi0KLQotZGVmIGRpcmVjdG9yeV9hcmcocGF0aCwgb3B0bmFtZSk6Ci0g
ICAgIiIiQXJncGFyc2UgdHlwZSB2YWxpZGF0b3IgZm9yIGRpcmVjdG9yeSBhcmd1bWVudHMuCi0K
LSAgICA6cGF0aDogcGF0aCBvZiBkaXJlY3RvcnkKLSAgICA6b3B0bmFtZTogbmFtZSBvZiB0aGUg
b3B0aW9uCi0gICAgIiIiCi0gICAgaWYgbm90IG9zLnBhdGguaXNkaXIocGF0aCk6Ci0gICAgICAg
IHJhaXNlIFVzYWdlRXJyb3IoInswfSBtdXN0IGJlIGEgZGlyZWN0b3J5LCBnaXZlbjogezF9Ii5m
b3JtYXQob3B0bmFtZSwgcGF0aCkpCi0gICAgcmV0dXJuIHBhdGgKLQotCi1kZWZhdWx0X3BsdWdp
bnMgPSAoCi0gICAgIm1hcmsgbWFpbiB0ZXJtaW5hbCBydW5uZXIgcHl0aG9uIGZpeHR1cmVzIGRl
YnVnZ2luZyB1bml0dGVzdCBjYXB0dXJlIHNraXBwaW5nICIKLSAgICAidG1wZGlyIG1vbmtleXBh
dGNoIHJlY3dhcm4gcGFzdGViaW4gaGVscGNvbmZpZyBub3NlIGFzc2VydGlvbiAiCi0gICAgImp1
bml0eG1sIHJlc3VsdGxvZyBkb2N0ZXN0IGNhY2hlcHJvdmlkZXIgZnJlZXplX3N1cHBvcnQgIgot
ICAgICJzZXR1cG9ubHkgc2V0dXBwbGFuIHdhcm5pbmdzIGxvZ2dpbmciKS5zcGxpdCgpCi0KLQot
YnVpbHRpbl9wbHVnaW5zID0gc2V0KGRlZmF1bHRfcGx1Z2lucykKLWJ1aWx0aW5fcGx1Z2lucy5h
ZGQoInB5dGVzdGVyIikKLQotCi1kZWYgZ2V0X2NvbmZpZygpOgotICAgICMgc3Vic2VxdWVudCBj
YWxscyB0byBtYWluIHdpbGwgY3JlYXRlIGEgZnJlc2ggaW5zdGFuY2UKLSAgICBwbHVnaW5tYW5h
Z2VyID0gUHl0ZXN0UGx1Z2luTWFuYWdlcigpCi0gICAgY29uZmlnID0gQ29uZmlnKHBsdWdpbm1h
bmFnZXIpCi0gICAgZm9yIHNwZWMgaW4gZGVmYXVsdF9wbHVnaW5zOgotICAgICAgICBwbHVnaW5t
YW5hZ2VyLmltcG9ydF9wbHVnaW4oc3BlYykKLSAgICByZXR1cm4gY29uZmlnCi0KLQotZGVmIGdl
dF9wbHVnaW5fbWFuYWdlcigpOgotICAgICIiIgotICAgIE9idGFpbiBhIG5ldyBpbnN0YW5jZSBv
ZiB0aGUKLSAgICA6cHk6Y2xhc3M6YF9weXRlc3QuY29uZmlnLlB5dGVzdFBsdWdpbk1hbmFnZXJg
LCB3aXRoIGRlZmF1bHQgcGx1Z2lucwotICAgIGFscmVhZHkgbG9hZGVkLgotCi0gICAgVGhpcyBm
dW5jdGlvbiBjYW4gYmUgdXNlZCBieSBpbnRlZ3JhdGlvbiB3aXRoIG90aGVyIHRvb2xzLCBsaWtl
IGhvb2tpbmcKLSAgICBpbnRvIHB5dGVzdCB0byBydW4gdGVzdHMgaW50byBhbiBJREUuCi0gICAg
IiIiCi0gICAgcmV0dXJuIGdldF9jb25maWcoKS5wbHVnaW5tYW5hZ2VyCi0KLQotZGVmIF9wcmVw
YXJlY29uZmlnKGFyZ3M9Tm9uZSwgcGx1Z2lucz1Ob25lKToKLSAgICB3YXJuaW5nID0gTm9uZQot
ICAgIGlmIGFyZ3MgaXMgTm9uZToKLSAgICAgICAgYXJncyA9IHN5cy5hcmd2WzE6XQotICAgIGVs
aWYgaXNpbnN0YW5jZShhcmdzLCBweS5wYXRoLmxvY2FsKToKLSAgICAgICAgYXJncyA9IFtzdHIo
YXJncyldCi0gICAgZWxpZiBub3QgaXNpbnN0YW5jZShhcmdzLCAodHVwbGUsIGxpc3QpKToKLSAg
ICAgICAgaWYgbm90IGlzaW5zdGFuY2UoYXJncywgc3RyKToKLSAgICAgICAgICAgIHJhaXNlIFZh
bHVlRXJyb3IoIm5vdCBhIHN0cmluZyBvciBhcmd1bWVudCBsaXN0OiAlciIgJSAoYXJncywpKQot
ICAgICAgICBhcmdzID0gc2hsZXguc3BsaXQoYXJncywgcG9zaXg9c3lzLnBsYXRmb3JtICE9ICJ3
aW4zMiIpCi0gICAgICAgIGZyb20gX3B5dGVzdCBpbXBvcnQgZGVwcmVjYXRlZAotICAgICAgICB3
YXJuaW5nID0gZGVwcmVjYXRlZC5NQUlOX1NUUl9BUkdTCi0gICAgY29uZmlnID0gZ2V0X2NvbmZp
ZygpCi0gICAgcGx1Z2lubWFuYWdlciA9IGNvbmZpZy5wbHVnaW5tYW5hZ2VyCi0gICAgdHJ5Ogot
ICAgICAgICBpZiBwbHVnaW5zOgotICAgICAgICAgICAgZm9yIHBsdWdpbiBpbiBwbHVnaW5zOgot
ICAgICAgICAgICAgICAgIGlmIGlzaW5zdGFuY2UocGx1Z2luLCBzaXguc3RyaW5nX3R5cGVzKToK
LSAgICAgICAgICAgICAgICAgICAgcGx1Z2lubWFuYWdlci5jb25zaWRlcl9wbHVnaW5hcmcocGx1
Z2luKQotICAgICAgICAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAgICAgICAgIHBsdWdpbm1h
bmFnZXIucmVnaXN0ZXIocGx1Z2luKQotICAgICAgICBpZiB3YXJuaW5nOgotICAgICAgICAgICAg
Y29uZmlnLndhcm4oJ0MxJywgd2FybmluZykKLSAgICAgICAgcmV0dXJuIHBsdWdpbm1hbmFnZXIu
aG9vay5weXRlc3RfY21kbGluZV9wYXJzZSgKLSAgICAgICAgICAgIHBsdWdpbm1hbmFnZXI9cGx1
Z2lubWFuYWdlciwgYXJncz1hcmdzKQotICAgIGV4Y2VwdCBCYXNlRXhjZXB0aW9uOgotICAgICAg
ICBjb25maWcuX2Vuc3VyZV91bmNvbmZpZ3VyZSgpCi0gICAgICAgIHJhaXNlCi0KLQotY2xhc3Mg
UHl0ZXN0UGx1Z2luTWFuYWdlcihQbHVnaW5NYW5hZ2VyKToKLSAgICAiIiIKLSAgICBPdmVyd3Jp
dGVzIDpweTpjbGFzczpgcGx1Z2d5LlBsdWdpbk1hbmFnZXIgPHBsdWdneS5QbHVnaW5NYW5hZ2Vy
PmAgdG8gYWRkIHB5dGVzdC1zcGVjaWZpYwotICAgIGZ1bmN0aW9uYWxpdHk6Ci0KLSAgICAqIGxv
YWRpbmcgcGx1Z2lucyBmcm9tIHRoZSBjb21tYW5kIGxpbmUsIGBgUFlURVNUX1BMVUdJTmBgIGVu
diB2YXJpYWJsZSBhbmQKLSAgICAgIGBgcHl0ZXN0X3BsdWdpbnNgYCBnbG9iYWwgdmFyaWFibGVz
IGZvdW5kIGluIHBsdWdpbnMgYmVpbmcgbG9hZGVkOwotICAgICogYGBjb25mdGVzdC5weWBgIGxv
YWRpbmcgZHVyaW5nIHN0YXJ0LXVwOwotICAgICIiIgotCi0gICAgZGVmIF9faW5pdF9fKHNlbGYp
OgotICAgICAgICBzdXBlcihQeXRlc3RQbHVnaW5NYW5hZ2VyLCBzZWxmKS5fX2luaXRfXygicHl0
ZXN0IiwgaW1wbHByZWZpeD0icHl0ZXN0XyIpCi0gICAgICAgIHNlbGYuX2NvbmZ0ZXN0X3BsdWdp
bnMgPSBzZXQoKQotCi0gICAgICAgICMgc3RhdGUgcmVsYXRlZCB0byBsb2NhbCBjb25mdGVzdCBw
bHVnaW5zCi0gICAgICAgIHNlbGYuX3BhdGgyY29uZm1vZHMgPSB7fQotICAgICAgICBzZWxmLl9j
b25mdGVzdHBhdGgybW9kID0ge30KLSAgICAgICAgc2VsZi5fY29uZmN1dGRpciA9IE5vbmUKLSAg
ICAgICAgc2VsZi5fbm9jb25mdGVzdCA9IEZhbHNlCi0gICAgICAgIHNlbGYuX2R1cGxpY2F0ZXBh
dGhzID0gc2V0KCkKLQotICAgICAgICBzZWxmLmFkZF9ob29rc3BlY3MoX3B5dGVzdC5ob29rc3Bl
YykKLSAgICAgICAgc2VsZi5yZWdpc3RlcihzZWxmKQotICAgICAgICBpZiBvcy5lbnZpcm9uLmdl
dCgnUFlURVNUX0RFQlVHJyk6Ci0gICAgICAgICAgICBlcnIgPSBzeXMuc3RkZXJyCi0gICAgICAg
ICAgICBlbmNvZGluZyA9IGdldGF0dHIoZXJyLCAnZW5jb2RpbmcnLCAndXRmOCcpCi0gICAgICAg
ICAgICB0cnk6Ci0gICAgICAgICAgICAgICAgZXJyID0gcHkuaW8uZHVwZmlsZShlcnIsIGVuY29k
aW5nPWVuY29kaW5nKQotICAgICAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbjoKLSAgICAgICAgICAg
ICAgICBwYXNzCi0gICAgICAgICAgICBzZWxmLnRyYWNlLnJvb3Quc2V0d3JpdGVyKGVyci53cml0
ZSkKLSAgICAgICAgICAgIHNlbGYuZW5hYmxlX3RyYWNpbmcoKQotCi0gICAgICAgICMgQ29uZmln
Ll9jb25zaWRlcl9pbXBvcnRob29rIHdpbGwgc2V0IGEgcmVhbCBvYmplY3QgaWYgcmVxdWlyZWQu
Ci0gICAgICAgIHNlbGYucmV3cml0ZV9ob29rID0gX3B5dGVzdC5hc3NlcnRpb24uRHVtbXlSZXdy
aXRlSG9vaygpCi0KLSAgICBkZWYgYWRkaG9va3Moc2VsZiwgbW9kdWxlX29yX2NsYXNzKToKLSAg
ICAgICAgIiIiCi0gICAgICAgIC4uIGRlcHJlY2F0ZWQ6OiAyLjgKLQotICAgICAgICBVc2UgOnB5
Om1ldGg6YHBsdWdneS5QbHVnaW5NYW5hZ2VyLmFkZF9ob29rc3BlY3MgPFBsdWdpbk1hbmFnZXIu
YWRkX2hvb2tzcGVjcz5gCi0gICAgICAgIGluc3RlYWQuCi0gICAgICAgICIiIgotICAgICAgICB3
YXJuaW5nID0gZGljdChjb2RlPSJJMiIsCi0gICAgICAgICAgICAgICAgICAgICAgIGZzbG9jYXRp
b249X3B5dGVzdC5fY29kZS5nZXRmc2xpbmVubyhzeXMuX2dldGZyYW1lKDEpKSwKLSAgICAgICAg
ICAgICAgICAgICAgICAgbm9kZWlkPU5vbmUsCi0gICAgICAgICAgICAgICAgICAgICAgIG1lc3Nh
Z2U9InVzZSBwbHVnaW5tYW5hZ2VyLmFkZF9ob29rc3BlY3MgaW5zdGVhZCBvZiAiCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgImRlcHJlY2F0ZWQgYWRkaG9va3MoKSBtZXRob2QuIikK
LSAgICAgICAgc2VsZi5fd2Fybih3YXJuaW5nKQotICAgICAgICByZXR1cm4gc2VsZi5hZGRfaG9v
a3NwZWNzKG1vZHVsZV9vcl9jbGFzcykKLQotICAgIGRlZiBwYXJzZV9ob29raW1wbF9vcHRzKHNl
bGYsIHBsdWdpbiwgbmFtZSk6Ci0gICAgICAgICMgcHl0ZXN0IGhvb2tzIGFyZSBhbHdheXMgcHJl
Zml4ZWQgd2l0aCBweXRlc3RfCi0gICAgICAgICMgc28gd2UgYXZvaWQgYWNjZXNzaW5nIHBvc3Np
Ymx5IG5vbi1yZWFkYWJsZSBhdHRyaWJ1dGVzCi0gICAgICAgICMgKHNlZSBpc3N1ZSAjMTA3MykK
LSAgICAgICAgaWYgbm90IG5hbWUuc3RhcnRzd2l0aCgicHl0ZXN0XyIpOgotICAgICAgICAgICAg
cmV0dXJuCi0gICAgICAgICMgaWdub3JlIHNvbWUgaGlzdG9yaWMgc3BlY2lhbCBuYW1lcyB3aGlj
aCBjYW4gbm90IGJlIGhvb2tzIGFueXdheQotICAgICAgICBpZiBuYW1lID09ICJweXRlc3RfcGx1
Z2lucyIgb3IgbmFtZS5zdGFydHN3aXRoKCJweXRlc3RfZnVuY2FyZ19fIik6Ci0gICAgICAgICAg
ICByZXR1cm4KLQotICAgICAgICBtZXRob2QgPSBnZXRhdHRyKHBsdWdpbiwgbmFtZSkKLSAgICAg
ICAgb3B0cyA9IHN1cGVyKFB5dGVzdFBsdWdpbk1hbmFnZXIsIHNlbGYpLnBhcnNlX2hvb2tpbXBs
X29wdHMocGx1Z2luLCBuYW1lKQotICAgICAgICBpZiBvcHRzIGlzIG5vdCBOb25lOgotICAgICAg
ICAgICAgZm9yIG5hbWUgaW4gKCJ0cnlmaXJzdCIsICJ0cnlsYXN0IiwgIm9wdGlvbmFsaG9vayIs
ICJob29rd3JhcHBlciIpOgotICAgICAgICAgICAgICAgIG9wdHMuc2V0ZGVmYXVsdChuYW1lLCBo
YXNhdHRyKG1ldGhvZCwgbmFtZSkpCi0gICAgICAgIHJldHVybiBvcHRzCi0KLSAgICBkZWYgcGFy
c2VfaG9va3NwZWNfb3B0cyhzZWxmLCBtb2R1bGVfb3JfY2xhc3MsIG5hbWUpOgotICAgICAgICBv
cHRzID0gc3VwZXIoUHl0ZXN0UGx1Z2luTWFuYWdlciwgc2VsZikucGFyc2VfaG9va3NwZWNfb3B0
cygKLSAgICAgICAgICAgIG1vZHVsZV9vcl9jbGFzcywgbmFtZSkKLSAgICAgICAgaWYgb3B0cyBp
cyBOb25lOgotICAgICAgICAgICAgbWV0aG9kID0gZ2V0YXR0cihtb2R1bGVfb3JfY2xhc3MsIG5h
bWUpCi0gICAgICAgICAgICBpZiBuYW1lLnN0YXJ0c3dpdGgoInB5dGVzdF8iKToKLSAgICAgICAg
ICAgICAgICBvcHRzID0geyJmaXJzdHJlc3VsdCI6IGhhc2F0dHIobWV0aG9kLCAiZmlyc3RyZXN1
bHQiKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICJoaXN0b3JpYyI6IGhhc2F0dHIobWV0aG9k
LCAiaGlzdG9yaWMiKX0KLSAgICAgICAgcmV0dXJuIG9wdHMKLQotICAgIGRlZiByZWdpc3Rlcihz
ZWxmLCBwbHVnaW4sIG5hbWU9Tm9uZSk6Ci0gICAgICAgIGlmIG5hbWUgPT0gJ3B5dGVzdF9jYXRj
aGxvZyc6Ci0gICAgICAgICAgICBzZWxmLl93YXJuKCdweXRlc3QtY2F0Y2hsb2cgcGx1Z2luIGhh
cyBiZWVuIG1lcmdlZCBpbnRvIHRoZSBjb3JlLCAnCi0gICAgICAgICAgICAgICAgICAgICAgICdw
bGVhc2UgcmVtb3ZlIGl0IGZyb20geW91ciByZXF1aXJlbWVudHMuJykKLSAgICAgICAgICAgIHJl
dHVybgotICAgICAgICByZXQgPSBzdXBlcihQeXRlc3RQbHVnaW5NYW5hZ2VyLCBzZWxmKS5yZWdp
c3RlcihwbHVnaW4sIG5hbWUpCi0gICAgICAgIGlmIHJldDoKLSAgICAgICAgICAgIHNlbGYuaG9v
ay5weXRlc3RfcGx1Z2luX3JlZ2lzdGVyZWQuY2FsbF9oaXN0b3JpYygKLSAgICAgICAgICAgICAg
ICBrd2FyZ3M9ZGljdChwbHVnaW49cGx1Z2luLCBtYW5hZ2VyPXNlbGYpKQotCi0gICAgICAgICAg
ICBpZiBpc2luc3RhbmNlKHBsdWdpbiwgdHlwZXMuTW9kdWxlVHlwZSk6Ci0gICAgICAgICAgICAg
ICAgc2VsZi5jb25zaWRlcl9tb2R1bGUocGx1Z2luKQotICAgICAgICByZXR1cm4gcmV0Ci0KLSAg
ICBkZWYgZ2V0cGx1Z2luKHNlbGYsIG5hbWUpOgotICAgICAgICAjIHN1cHBvcnQgZGVwcmVjYXRl
ZCBuYW1pbmcgYmVjYXVzZSBwbHVnaW5zICh4ZGlzdCBlLmcuKSB1c2UgaXQKLSAgICAgICAgcmV0
dXJuIHNlbGYuZ2V0X3BsdWdpbihuYW1lKQotCi0gICAgZGVmIGhhc3BsdWdpbihzZWxmLCBuYW1l
KToKLSAgICAgICAgIiIiUmV0dXJuIFRydWUgaWYgdGhlIHBsdWdpbiB3aXRoIHRoZSBnaXZlbiBu
YW1lIGlzIHJlZ2lzdGVyZWQuIiIiCi0gICAgICAgIHJldHVybiBib29sKHNlbGYuZ2V0X3BsdWdp
bihuYW1lKSkKLQotICAgIGRlZiBweXRlc3RfY29uZmlndXJlKHNlbGYsIGNvbmZpZyk6Ci0gICAg
ICAgICMgWFhYIG5vdyB0aGF0IHRoZSBwbHVnaW5tYW5hZ2VyIGV4cG9zZXMgaG9va2ltcGwodHJ5
Zmlyc3QuLi4pCi0gICAgICAgICMgd2Ugc2hvdWxkIHJlbW92ZSB0cnlmaXJzdC90cnlsYXN0IGFz
IG1hcmtlcnMKLSAgICAgICAgY29uZmlnLmFkZGluaXZhbHVlX2xpbmUoIm1hcmtlcnMiLAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAidHJ5Zmlyc3Q6IG1hcmsgYSBob29rIGltcGxl
bWVudGF0aW9uIGZ1bmN0aW9uIHN1Y2ggdGhhdCB0aGUgIgotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAicGx1Z2luIG1hY2hpbmVyeSB3aWxsIHRyeSB0byBjYWxsIGl0IGZpcnN0L2Fz
IGVhcmx5IGFzIHBvc3NpYmxlLiIpCi0gICAgICAgIGNvbmZpZy5hZGRpbml2YWx1ZV9saW5lKCJt
YXJrZXJzIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInRyeWxhc3Q6IG1hcmsg
YSBob29rIGltcGxlbWVudGF0aW9uIGZ1bmN0aW9uIHN1Y2ggdGhhdCB0aGUgIgotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAicGx1Z2luIG1hY2hpbmVyeSB3aWxsIHRyeSB0byBjYWxs
IGl0IGxhc3QvYXMgbGF0ZSBhcyBwb3NzaWJsZS4iKQotCi0gICAgZGVmIF93YXJuKHNlbGYsIG1l
c3NhZ2UpOgotICAgICAgICBrd2FyZ3MgPSBtZXNzYWdlIGlmIGlzaW5zdGFuY2UobWVzc2FnZSwg
ZGljdCkgZWxzZSB7Ci0gICAgICAgICAgICAnY29kZSc6ICdJMScsCi0gICAgICAgICAgICAnbWVz
c2FnZSc6IG1lc3NhZ2UsCi0gICAgICAgICAgICAnZnNsb2NhdGlvbic6IE5vbmUsCi0gICAgICAg
ICAgICAnbm9kZWlkJzogTm9uZSwKLSAgICAgICAgfQotICAgICAgICBzZWxmLmhvb2sucHl0ZXN0
X2xvZ3dhcm5pbmcuY2FsbF9oaXN0b3JpYyhrd2FyZ3M9a3dhcmdzKQotCi0gICAgIwotICAgICMg
aW50ZXJuYWwgQVBJIGZvciBsb2NhbCBjb25mdGVzdCBwbHVnaW4gaGFuZGxpbmcKLSAgICAjCi0g
ICAgZGVmIF9zZXRfaW5pdGlhbF9jb25mdGVzdHMoc2VsZiwgbmFtZXNwYWNlKToKLSAgICAgICAg
IiIiIGxvYWQgaW5pdGlhbCBjb25mdGVzdCBmaWxlcyBnaXZlbiBhIHByZXBhcnNlZCAibmFtZXNw
YWNlIi4KLSAgICAgICAgICAgIEFzIGNvbmZ0ZXN0IGZpbGVzIG1heSBhZGQgdGhlaXIgb3duIGNv
bW1hbmQgbGluZSBvcHRpb25zCi0gICAgICAgICAgICB3aGljaCBoYXZlIGFyZ3VtZW50cyAoJy0t
bXktb3B0IHNvbWVwYXRoJykgd2UgbWlnaHQgZ2V0IHNvbWUKLSAgICAgICAgICAgIGZhbHNlIHBv
c2l0aXZlcy4gIEFsbCBidWlsdGluIGFuZCAzcmQgcGFydHkgcGx1Z2lucyB3aWxsIGhhdmUKLSAg
ICAgICAgICAgIGJlZW4gbG9hZGVkLCBob3dldmVyLCBzbyBjb21tb24gb3B0aW9ucyB3aWxsIG5v
dCBjb25mdXNlIG91ciBsb2dpYwotICAgICAgICAgICAgaGVyZS4KLSAgICAgICAgIiIiCi0gICAg
ICAgIGN1cnJlbnQgPSBweS5wYXRoLmxvY2FsKCkKLSAgICAgICAgc2VsZi5fY29uZmN1dGRpciA9
IGN1cnJlbnQuam9pbihuYW1lc3BhY2UuY29uZmN1dGRpciwgYWJzPVRydWUpIFwKLSAgICAgICAg
ICAgIGlmIG5hbWVzcGFjZS5jb25mY3V0ZGlyIGVsc2UgTm9uZQotICAgICAgICBzZWxmLl9ub2Nv
bmZ0ZXN0ID0gbmFtZXNwYWNlLm5vY29uZnRlc3QKLSAgICAgICAgdGVzdHBhdGhzID0gbmFtZXNw
YWNlLmZpbGVfb3JfZGlyCi0gICAgICAgIGZvdW5kYW5jaG9yID0gRmFsc2UKLSAgICAgICAgZm9y
IHBhdGggaW4gdGVzdHBhdGhzOgotICAgICAgICAgICAgcGF0aCA9IHN0cihwYXRoKQotICAgICAg
ICAgICAgIyByZW1vdmUgbm9kZS1pZCBzeW50YXgKLSAgICAgICAgICAgIGkgPSBwYXRoLmZpbmQo
Ijo6IikKLSAgICAgICAgICAgIGlmIGkgIT0gLTE6Ci0gICAgICAgICAgICAgICAgcGF0aCA9IHBh
dGhbOmldCi0gICAgICAgICAgICBhbmNob3IgPSBjdXJyZW50LmpvaW4ocGF0aCwgYWJzPTEpCi0g
ICAgICAgICAgICBpZiBleGlzdHMoYW5jaG9yKTogICMgd2UgZm91bmQgc29tZSBmaWxlIG9iamVj
dAotICAgICAgICAgICAgICAgIHNlbGYuX3RyeV9sb2FkX2NvbmZ0ZXN0KGFuY2hvcikKLSAgICAg
ICAgICAgICAgICBmb3VuZGFuY2hvciA9IFRydWUKLSAgICAgICAgaWYgbm90IGZvdW5kYW5jaG9y
OgotICAgICAgICAgICAgc2VsZi5fdHJ5X2xvYWRfY29uZnRlc3QoY3VycmVudCkKLQotICAgIGRl
ZiBfdHJ5X2xvYWRfY29uZnRlc3Qoc2VsZiwgYW5jaG9yKToKLSAgICAgICAgc2VsZi5fZ2V0Y29u
ZnRlc3Rtb2R1bGVzKGFuY2hvcikKLSAgICAgICAgIyBsZXQncyBhbHNvIGNvbnNpZGVyIHRlc3Qq
IHN1YmRpcnMKLSAgICAgICAgaWYgYW5jaG9yLmNoZWNrKGRpcj0xKToKLSAgICAgICAgICAgIGZv
ciB4IGluIGFuY2hvci5saXN0ZGlyKCJ0ZXN0KiIpOgotICAgICAgICAgICAgICAgIGlmIHguY2hl
Y2soZGlyPTEpOgotICAgICAgICAgICAgICAgICAgICBzZWxmLl9nZXRjb25mdGVzdG1vZHVsZXMo
eCkKLQotICAgIGRlZiBfZ2V0Y29uZnRlc3Rtb2R1bGVzKHNlbGYsIHBhdGgpOgotICAgICAgICBp
ZiBzZWxmLl9ub2NvbmZ0ZXN0OgotICAgICAgICAgICAgcmV0dXJuIFtdCi0gICAgICAgIHRyeToK
LSAgICAgICAgICAgIHJldHVybiBzZWxmLl9wYXRoMmNvbmZtb2RzW3BhdGhdCi0gICAgICAgIGV4
Y2VwdCBLZXlFcnJvcjoKLSAgICAgICAgICAgIGlmIHBhdGguaXNmaWxlKCk6Ci0gICAgICAgICAg
ICAgICAgY2xpc3QgPSBzZWxmLl9nZXRjb25mdGVzdG1vZHVsZXMocGF0aC5kaXJwYXRoKCkpCi0g
ICAgICAgICAgICBlbHNlOgotICAgICAgICAgICAgICAgICMgWFhYIHRoZXNlIGRheXMgd2UgbWF5
IHJhdGhlciB3YW50IHRvIHVzZSBjb25maWcucm9vdGRpcgotICAgICAgICAgICAgICAgICMgYW5k
IGFsbG93IHVzZXJzIHRvIG9wdCBpbnRvIGxvb2tpbmcgaW50byB0aGUgcm9vdGRpciBwYXJlbnQK
LSAgICAgICAgICAgICAgICAjIGRpcmVjdG9yaWVzIGluc3RlYWQgb2YgcmVxdWlyaW5nIHRvIHNw
ZWNpZnkgY29uZmN1dGRpcgotICAgICAgICAgICAgICAgIGNsaXN0ID0gW10KLSAgICAgICAgICAg
ICAgICBmb3IgcGFyZW50IGluIHBhdGgucGFydHMoKToKLSAgICAgICAgICAgICAgICAgICAgaWYg
c2VsZi5fY29uZmN1dGRpciBhbmQgc2VsZi5fY29uZmN1dGRpci5yZWx0byhwYXJlbnQpOgotICAg
ICAgICAgICAgICAgICAgICAgICAgY29udGludWUKLSAgICAgICAgICAgICAgICAgICAgY29uZnRl
c3RwYXRoID0gcGFyZW50LmpvaW4oImNvbmZ0ZXN0LnB5IikKLSAgICAgICAgICAgICAgICAgICAg
aWYgY29uZnRlc3RwYXRoLmlzZmlsZSgpOgotICAgICAgICAgICAgICAgICAgICAgICAgbW9kID0g
c2VsZi5faW1wb3J0Y29uZnRlc3QoY29uZnRlc3RwYXRoKQotICAgICAgICAgICAgICAgICAgICAg
ICAgY2xpc3QuYXBwZW5kKG1vZCkKLQotICAgICAgICAgICAgc2VsZi5fcGF0aDJjb25mbW9kc1tw
YXRoXSA9IGNsaXN0Ci0gICAgICAgICAgICByZXR1cm4gY2xpc3QKLQotICAgIGRlZiBfcmdldF93
aXRoX2NvbmZtb2Qoc2VsZiwgbmFtZSwgcGF0aCk6Ci0gICAgICAgIG1vZHVsZXMgPSBzZWxmLl9n
ZXRjb25mdGVzdG1vZHVsZXMocGF0aCkKLSAgICAgICAgZm9yIG1vZCBpbiByZXZlcnNlZChtb2R1
bGVzKToKLSAgICAgICAgICAgIHRyeToKLSAgICAgICAgICAgICAgICByZXR1cm4gbW9kLCBnZXRh
dHRyKG1vZCwgbmFtZSkKLSAgICAgICAgICAgIGV4Y2VwdCBBdHRyaWJ1dGVFcnJvcjoKLSAgICAg
ICAgICAgICAgICBjb250aW51ZQotICAgICAgICByYWlzZSBLZXlFcnJvcihuYW1lKQotCi0gICAg
ZGVmIF9pbXBvcnRjb25mdGVzdChzZWxmLCBjb25mdGVzdHBhdGgpOgotICAgICAgICB0cnk6Ci0g
ICAgICAgICAgICByZXR1cm4gc2VsZi5fY29uZnRlc3RwYXRoMm1vZFtjb25mdGVzdHBhdGhdCi0g
ICAgICAgIGV4Y2VwdCBLZXlFcnJvcjoKLSAgICAgICAgICAgIHBrZ3BhdGggPSBjb25mdGVzdHBh
dGgucHlwa2dwYXRoKCkKLSAgICAgICAgICAgIGlmIHBrZ3BhdGggaXMgTm9uZToKLSAgICAgICAg
ICAgICAgICBfZW5zdXJlX3JlbW92ZWRfc3lzbW9kdWxlKGNvbmZ0ZXN0cGF0aC5wdXJlYmFzZW5h
bWUpCi0gICAgICAgICAgICB0cnk6Ci0gICAgICAgICAgICAgICAgbW9kID0gY29uZnRlc3RwYXRo
LnB5aW1wb3J0KCkKLSAgICAgICAgICAgIGV4Y2VwdCBFeGNlcHRpb246Ci0gICAgICAgICAgICAg
ICAgcmFpc2UgQ29uZnRlc3RJbXBvcnRGYWlsdXJlKGNvbmZ0ZXN0cGF0aCwgc3lzLmV4Y19pbmZv
KCkpCi0KLSAgICAgICAgICAgIHNlbGYuX2NvbmZ0ZXN0X3BsdWdpbnMuYWRkKG1vZCkKLSAgICAg
ICAgICAgIHNlbGYuX2NvbmZ0ZXN0cGF0aDJtb2RbY29uZnRlc3RwYXRoXSA9IG1vZAotICAgICAg
ICAgICAgZGlycGF0aCA9IGNvbmZ0ZXN0cGF0aC5kaXJwYXRoKCkKLSAgICAgICAgICAgIGlmIGRp
cnBhdGggaW4gc2VsZi5fcGF0aDJjb25mbW9kczoKLSAgICAgICAgICAgICAgICBmb3IgcGF0aCwg
bW9kcyBpbiBzZWxmLl9wYXRoMmNvbmZtb2RzLml0ZW1zKCk6Ci0gICAgICAgICAgICAgICAgICAg
IGlmIHBhdGggYW5kIHBhdGgucmVsdG8oZGlycGF0aCkgb3IgcGF0aCA9PSBkaXJwYXRoOgotICAg
ICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0IG1vZCBub3QgaW4gbW9kcwotICAgICAgICAgICAg
ICAgICAgICAgICAgbW9kcy5hcHBlbmQobW9kKQotICAgICAgICAgICAgc2VsZi50cmFjZSgibG9h
ZGVkIGNvbmZ0ZXN0bW9kdWxlICVyIiAlIChtb2QpKQotICAgICAgICAgICAgc2VsZi5jb25zaWRl
cl9jb25mdGVzdChtb2QpCi0gICAgICAgICAgICByZXR1cm4gbW9kCi0KLSAgICAjCi0gICAgIyBB
UEkgZm9yIGJvb3RzdHJhcHBpbmcgcGx1Z2luIGxvYWRpbmcKLSAgICAjCi0gICAgIwotCi0gICAg
ZGVmIGNvbnNpZGVyX3ByZXBhcnNlKHNlbGYsIGFyZ3MpOgotICAgICAgICBmb3Igb3B0MSwgb3B0
MiBpbiB6aXAoYXJncywgYXJnc1sxOl0pOgotICAgICAgICAgICAgaWYgb3B0MSA9PSAiLXAiOgot
ICAgICAgICAgICAgICAgIHNlbGYuY29uc2lkZXJfcGx1Z2luYXJnKG9wdDIpCi0KLSAgICBkZWYg
Y29uc2lkZXJfcGx1Z2luYXJnKHNlbGYsIGFyZyk6Ci0gICAgICAgIGlmIGFyZy5zdGFydHN3aXRo
KCJubzoiKToKLSAgICAgICAgICAgIG5hbWUgPSBhcmdbMzpdCi0gICAgICAgICAgICBzZWxmLnNl
dF9ibG9ja2VkKG5hbWUpCi0gICAgICAgICAgICBpZiBub3QgbmFtZS5zdGFydHN3aXRoKCJweXRl
c3RfIik6Ci0gICAgICAgICAgICAgICAgc2VsZi5zZXRfYmxvY2tlZCgicHl0ZXN0XyIgKyBuYW1l
KQotICAgICAgICBlbHNlOgotICAgICAgICAgICAgc2VsZi5pbXBvcnRfcGx1Z2luKGFyZykKLQot
ICAgIGRlZiBjb25zaWRlcl9jb25mdGVzdChzZWxmLCBjb25mdGVzdG1vZHVsZSk6Ci0gICAgICAg
IHNlbGYucmVnaXN0ZXIoY29uZnRlc3Rtb2R1bGUsIG5hbWU9Y29uZnRlc3Rtb2R1bGUuX19maWxl
X18pCi0KLSAgICBkZWYgY29uc2lkZXJfZW52KHNlbGYpOgotICAgICAgICBzZWxmLl9pbXBvcnRf
cGx1Z2luX3NwZWNzKG9zLmVudmlyb24uZ2V0KCJQWVRFU1RfUExVR0lOUyIpKQotCi0gICAgZGVm
IGNvbnNpZGVyX21vZHVsZShzZWxmLCBtb2QpOgotICAgICAgICBzZWxmLl9pbXBvcnRfcGx1Z2lu
X3NwZWNzKGdldGF0dHIobW9kLCAncHl0ZXN0X3BsdWdpbnMnLCBbXSkpCi0KLSAgICBkZWYgX2lt
cG9ydF9wbHVnaW5fc3BlY3Moc2VsZiwgc3BlYyk6Ci0gICAgICAgIHBsdWdpbnMgPSBfZ2V0X3Bs
dWdpbl9zcGVjc19hc19saXN0KHNwZWMpCi0gICAgICAgIGZvciBpbXBvcnRfc3BlYyBpbiBwbHVn
aW5zOgotICAgICAgICAgICAgc2VsZi5pbXBvcnRfcGx1Z2luKGltcG9ydF9zcGVjKQotCi0gICAg
ZGVmIGltcG9ydF9wbHVnaW4oc2VsZiwgbW9kbmFtZSk6Ci0gICAgICAgICMgbW9zdCBvZnRlbiBt
b2RuYW1lIHJlZmVycyB0byBidWlsdGluIG1vZHVsZXMsIGUuZy4gInB5dGVzdGVyIiwKLSAgICAg
ICAgIyAidGVybWluYWwiIG9yICJjYXB0dXJlIi4gIFRob3NlIHBsdWdpbnMgYXJlIHJlZ2lzdGVy
ZWQgdW5kZXIgdGhlaXIKLSAgICAgICAgIyBiYXNlbmFtZSBmb3IgaGlzdG9yaWMgcHVycG9zZXMg
YnV0IG11c3QgYmUgaW1wb3J0ZWQgd2l0aCB0aGUKLSAgICAgICAgIyBfcHl0ZXN0IHByZWZpeC4K
LSAgICAgICAgYXNzZXJ0IGlzaW5zdGFuY2UobW9kbmFtZSwgKHNpeC50ZXh0X3R5cGUsIHN0cikp
LCAibW9kdWxlIG5hbWUgYXMgdGV4dCByZXF1aXJlZCwgZ290ICVyIiAlIG1vZG5hbWUKLSAgICAg
ICAgbW9kbmFtZSA9IHN0cihtb2RuYW1lKQotICAgICAgICBpZiBzZWxmLmlzX2Jsb2NrZWQobW9k
bmFtZSkgb3Igc2VsZi5nZXRfcGx1Z2luKG1vZG5hbWUpIGlzIG5vdCBOb25lOgotICAgICAgICAg
ICAgcmV0dXJuCi0gICAgICAgIGlmIG1vZG5hbWUgaW4gYnVpbHRpbl9wbHVnaW5zOgotICAgICAg
ICAgICAgaW1wb3J0c3BlYyA9ICJfcHl0ZXN0LiIgKyBtb2RuYW1lCi0gICAgICAgIGVsc2U6Ci0g
ICAgICAgICAgICBpbXBvcnRzcGVjID0gbW9kbmFtZQotICAgICAgICBzZWxmLnJld3JpdGVfaG9v
ay5tYXJrX3Jld3JpdGUoaW1wb3J0c3BlYykKLSAgICAgICAgdHJ5OgotICAgICAgICAgICAgX19p
bXBvcnRfXyhpbXBvcnRzcGVjKQotICAgICAgICBleGNlcHQgSW1wb3J0RXJyb3IgYXMgZToKLSAg
ICAgICAgICAgIG5ld19leGNfdHlwZSA9IEltcG9ydEVycm9yCi0gICAgICAgICAgICBuZXdfZXhj
X21lc3NhZ2UgPSAnRXJyb3IgaW1wb3J0aW5nIHBsdWdpbiAiJXMiOiAlcycgJSAobW9kbmFtZSwg
c2FmZV9zdHIoZS5hcmdzWzBdKSkKLSAgICAgICAgICAgIG5ld19leGMgPSBuZXdfZXhjX3R5cGUo
bmV3X2V4Y19tZXNzYWdlKQotCi0gICAgICAgICAgICBzaXgucmVyYWlzZShuZXdfZXhjX3R5cGUs
IG5ld19leGMsIHN5cy5leGNfaW5mbygpWzJdKQotCi0gICAgICAgIGV4Y2VwdCBFeGNlcHRpb24g
YXMgZToKLSAgICAgICAgICAgIGltcG9ydCBweXRlc3QKLSAgICAgICAgICAgIGlmIG5vdCBoYXNh
dHRyKHB5dGVzdCwgJ3NraXAnKSBvciBub3QgaXNpbnN0YW5jZShlLCBweXRlc3Quc2tpcC5FeGNl
cHRpb24pOgotICAgICAgICAgICAgICAgIHJhaXNlCi0gICAgICAgICAgICBzZWxmLl93YXJuKCJz
a2lwcGVkIHBsdWdpbiAlcjogJXMiICUgKChtb2RuYW1lLCBlLm1zZykpKQotICAgICAgICBlbHNl
OgotICAgICAgICAgICAgbW9kID0gc3lzLm1vZHVsZXNbaW1wb3J0c3BlY10KLSAgICAgICAgICAg
IHNlbGYucmVnaXN0ZXIobW9kLCBtb2RuYW1lKQotCi0KLWRlZiBfZ2V0X3BsdWdpbl9zcGVjc19h
c19saXN0KHNwZWNzKToKLSAgICAiIiIKLSAgICBQYXJzZXMgYSBsaXN0IG9mICJwbHVnaW4gc3Bl
Y3MiIGFuZCByZXR1cm5zIGEgbGlzdCBvZiBwbHVnaW4gbmFtZXMuCi0KLSAgICBQbHVnaW4gc3Bl
Y3MgY2FuIGJlIGdpdmVuIGFzIGEgbGlzdCBvZiBzdHJpbmdzIHNlcGFyYXRlZCBieSAiLCIgb3Ig
YWxyZWFkeSBhcyBhIGxpc3QvdHVwbGUgaW4KLSAgICB3aGljaCBjYXNlIGl0IGlzIHJldHVybmVk
IGFzIGEgbGlzdC4gU3BlY3MgY2FuIGFsc28gYmUgYE5vbmVgIGluIHdoaWNoIGNhc2UgYW4KLSAg
ICBlbXB0eSBsaXN0IGlzIHJldHVybmVkLgotICAgICIiIgotICAgIGlmIHNwZWNzIGlzIG5vdCBO
b25lOgotICAgICAgICBpZiBpc2luc3RhbmNlKHNwZWNzLCBzdHIpOgotICAgICAgICAgICAgc3Bl
Y3MgPSBzcGVjcy5zcGxpdCgnLCcpIGlmIHNwZWNzIGVsc2UgW10KLSAgICAgICAgaWYgbm90IGlz
aW5zdGFuY2Uoc3BlY3MsIChsaXN0LCB0dXBsZSkpOgotICAgICAgICAgICAgcmFpc2UgVXNhZ2VF
cnJvcigiUGx1Z2luIHNwZWNzIG11c3QgYmUgYSAnLCctc2VwYXJhdGVkIHN0cmluZyBvciBhICIK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImxpc3QvdHVwbGUgb2Ygc3RyaW5ncyBmb3Ig
cGx1Z2luIG5hbWVzLiBHaXZlbjogJXIiICUgc3BlY3MpCi0gICAgICAgIHJldHVybiBsaXN0KHNw
ZWNzKQotICAgIHJldHVybiBbXQotCi0KLWNsYXNzIFBhcnNlcjoKLSAgICAiIiIgUGFyc2VyIGZv
ciBjb21tYW5kIGxpbmUgYXJndW1lbnRzIGFuZCBpbmktZmlsZSB2YWx1ZXMuCi0KLSAgICA6aXZh
ciBleHRyYV9pbmZvOiBkaWN0IG9mIGdlbmVyaWMgcGFyYW0gLT4gdmFsdWUgdG8gZGlzcGxheSBp
biBjYXNlCi0gICAgICAgIHRoZXJlJ3MgYW4gZXJyb3IgcHJvY2Vzc2luZyB0aGUgY29tbWFuZCBs
aW5lIGFyZ3VtZW50cy4KLSAgICAiIiIKLQotICAgIGRlZiBfX2luaXRfXyhzZWxmLCB1c2FnZT1O
b25lLCBwcm9jZXNzb3B0PU5vbmUpOgotICAgICAgICBzZWxmLl9hbm9ueW1vdXMgPSBPcHRpb25H
cm91cCgiY3VzdG9tIG9wdGlvbnMiLCBwYXJzZXI9c2VsZikKLSAgICAgICAgc2VsZi5fZ3JvdXBz
ID0gW10KLSAgICAgICAgc2VsZi5fcHJvY2Vzc29wdCA9IHByb2Nlc3NvcHQKLSAgICAgICAgc2Vs
Zi5fdXNhZ2UgPSB1c2FnZQotICAgICAgICBzZWxmLl9pbmlkaWN0ID0ge30KLSAgICAgICAgc2Vs
Zi5faW5pbmFtZXMgPSBbXQotICAgICAgICBzZWxmLmV4dHJhX2luZm8gPSB7fQotCi0gICAgZGVm
IHByb2Nlc3NvcHRpb24oc2VsZiwgb3B0aW9uKToKLSAgICAgICAgaWYgc2VsZi5fcHJvY2Vzc29w
dDoKLSAgICAgICAgICAgIGlmIG9wdGlvbi5kZXN0OgotICAgICAgICAgICAgICAgIHNlbGYuX3By
b2Nlc3NvcHQob3B0aW9uKQotCi0gICAgZGVmIGdldGdyb3VwKHNlbGYsIG5hbWUsIGRlc2NyaXB0
aW9uPSIiLCBhZnRlcj1Ob25lKToKLSAgICAgICAgIiIiIGdldCAob3IgY3JlYXRlKSBhIG5hbWVk
IG9wdGlvbiBHcm91cC4KLQotICAgICAgICA6bmFtZTogbmFtZSBvZiB0aGUgb3B0aW9uIGdyb3Vw
LgotICAgICAgICA6ZGVzY3JpcHRpb246IGxvbmcgZGVzY3JpcHRpb24gZm9yIC0taGVscCBvdXRw
dXQuCi0gICAgICAgIDphZnRlcjogbmFtZSBvZiBvdGhlciBncm91cCwgdXNlZCBmb3Igb3JkZXJp
bmcgLS1oZWxwIG91dHB1dC4KLQotICAgICAgICBUaGUgcmV0dXJuZWQgZ3JvdXAgb2JqZWN0IGhh
cyBhbiBgYGFkZG9wdGlvbmBgIG1ldGhvZCB3aXRoIHRoZSBzYW1lCi0gICAgICAgIHNpZ25hdHVy
ZSBhcyA6cHk6ZnVuYzpgcGFyc2VyLmFkZG9wdGlvbgotICAgICAgICA8X3B5dGVzdC5jb25maWcu
UGFyc2VyLmFkZG9wdGlvbj5gIGJ1dCB3aWxsIGJlIHNob3duIGluIHRoZQotICAgICAgICByZXNw
ZWN0aXZlIGdyb3VwIGluIHRoZSBvdXRwdXQgb2YgYGBweXRlc3QuIC0taGVscGBgLgotICAgICAg
ICAiIiIKLSAgICAgICAgZm9yIGdyb3VwIGluIHNlbGYuX2dyb3VwczoKLSAgICAgICAgICAgIGlm
IGdyb3VwLm5hbWUgPT0gbmFtZToKLSAgICAgICAgICAgICAgICByZXR1cm4gZ3JvdXAKLSAgICAg
ICAgZ3JvdXAgPSBPcHRpb25Hcm91cChuYW1lLCBkZXNjcmlwdGlvbiwgcGFyc2VyPXNlbGYpCi0g
ICAgICAgIGkgPSAwCi0gICAgICAgIGZvciBpLCBncnAgaW4gZW51bWVyYXRlKHNlbGYuX2dyb3Vw
cyk6Ci0gICAgICAgICAgICBpZiBncnAubmFtZSA9PSBhZnRlcjoKLSAgICAgICAgICAgICAgICBi
cmVhawotICAgICAgICBzZWxmLl9ncm91cHMuaW5zZXJ0KGkgKyAxLCBncm91cCkKLSAgICAgICAg
cmV0dXJuIGdyb3VwCi0KLSAgICBkZWYgYWRkb3B0aW9uKHNlbGYsICpvcHRzLCAqKmF0dHJzKToK
LSAgICAgICAgIiIiIHJlZ2lzdGVyIGEgY29tbWFuZCBsaW5lIG9wdGlvbi4KLQotICAgICAgICA6
b3B0czogb3B0aW9uIG5hbWVzLCBjYW4gYmUgc2hvcnQgb3IgbG9uZyBvcHRpb25zLgotICAgICAg
ICA6YXR0cnM6IHNhbWUgYXR0cmlidXRlcyB3aGljaCB0aGUgYGBhZGRfb3B0aW9uKClgYCBmdW5j
dGlvbiBvZiB0aGUKLSAgICAgICAgICAgYGFyZ3BhcnNlIGxpYnJhcnkKLSAgICAgICAgICAgPGh0
dHA6Ly9kb2NzLnB5dGhvbi5vcmcvMi9saWJyYXJ5L2FyZ3BhcnNlLmh0bWw+YF8KLSAgICAgICAg
ICAgYWNjZXB0cy4KLQotICAgICAgICBBZnRlciBjb21tYW5kIGxpbmUgcGFyc2luZyBvcHRpb25z
IGFyZSBhdmFpbGFibGUgb24gdGhlIHB5dGVzdCBjb25maWcKLSAgICAgICAgb2JqZWN0IHZpYSBg
YGNvbmZpZy5vcHRpb24uTkFNRWBgIHdoZXJlIGBgTkFNRWBgIGlzIHVzdWFsbHkgc2V0Ci0gICAg
ICAgIGJ5IHBhc3NpbmcgYSBgYGRlc3RgYCBhdHRyaWJ1dGUsIGZvciBleGFtcGxlCi0gICAgICAg
IGBgYWRkb3B0aW9uKCItLWxvbmciLCBkZXN0PSJOQU1FIiwgLi4uKWBgLgotICAgICAgICAiIiIK
LSAgICAgICAgc2VsZi5fYW5vbnltb3VzLmFkZG9wdGlvbigqb3B0cywgKiphdHRycykKLQotICAg
IGRlZiBwYXJzZShzZWxmLCBhcmdzLCBuYW1lc3BhY2U9Tm9uZSk6Ci0gICAgICAgIGZyb20gX3B5
dGVzdC5fYXJnY29tcGxldGUgaW1wb3J0IHRyeV9hcmdjb21wbGV0ZQotICAgICAgICBzZWxmLm9w
dHBhcnNlciA9IHNlbGYuX2dldHBhcnNlcigpCi0gICAgICAgIHRyeV9hcmdjb21wbGV0ZShzZWxm
Lm9wdHBhcnNlcikKLSAgICAgICAgcmV0dXJuIHNlbGYub3B0cGFyc2VyLnBhcnNlX2FyZ3MoW3N0
cih4KSBmb3IgeCBpbiBhcmdzXSwgbmFtZXNwYWNlPW5hbWVzcGFjZSkKLQotICAgIGRlZiBfZ2V0
cGFyc2VyKHNlbGYpOgotICAgICAgICBmcm9tIF9weXRlc3QuX2FyZ2NvbXBsZXRlIGltcG9ydCBm
aWxlc2NvbXBsZXRlcgotICAgICAgICBvcHRwYXJzZXIgPSBNeU9wdGlvblBhcnNlcihzZWxmLCBz
ZWxmLmV4dHJhX2luZm8pCi0gICAgICAgIGdyb3VwcyA9IHNlbGYuX2dyb3VwcyArIFtzZWxmLl9h
bm9ueW1vdXNdCi0gICAgICAgIGZvciBncm91cCBpbiBncm91cHM6Ci0gICAgICAgICAgICBpZiBn
cm91cC5vcHRpb25zOgotICAgICAgICAgICAgICAgIGRlc2MgPSBncm91cC5kZXNjcmlwdGlvbiBv
ciBncm91cC5uYW1lCi0gICAgICAgICAgICAgICAgYXJnZ3JvdXAgPSBvcHRwYXJzZXIuYWRkX2Fy
Z3VtZW50X2dyb3VwKGRlc2MpCi0gICAgICAgICAgICAgICAgZm9yIG9wdGlvbiBpbiBncm91cC5v
cHRpb25zOgotICAgICAgICAgICAgICAgICAgICBuID0gb3B0aW9uLm5hbWVzKCkKLSAgICAgICAg
ICAgICAgICAgICAgYSA9IG9wdGlvbi5hdHRycygpCi0gICAgICAgICAgICAgICAgICAgIGFyZ2dy
b3VwLmFkZF9hcmd1bWVudCgqbiwgKiphKQotICAgICAgICAjIGJhc2ggbGlrZSBhdXRvY29tcGxl
dGlvbiBmb3IgZGlycyAoYXBwZW5kaW5nICcvJykKLSAgICAgICAgb3B0cGFyc2VyLmFkZF9hcmd1
bWVudChGSUxFX09SX0RJUiwgbmFyZ3M9JyonKS5jb21wbGV0ZXIgPSBmaWxlc2NvbXBsZXRlcgot
ICAgICAgICByZXR1cm4gb3B0cGFyc2VyCi0KLSAgICBkZWYgcGFyc2Vfc2V0b3B0aW9uKHNlbGYs
IGFyZ3MsIG9wdGlvbiwgbmFtZXNwYWNlPU5vbmUpOgotICAgICAgICBwYXJzZWRvcHRpb24gPSBz
ZWxmLnBhcnNlKGFyZ3MsIG5hbWVzcGFjZT1uYW1lc3BhY2UpCi0gICAgICAgIGZvciBuYW1lLCB2
YWx1ZSBpbiBwYXJzZWRvcHRpb24uX19kaWN0X18uaXRlbXMoKToKLSAgICAgICAgICAgIHNldGF0
dHIob3B0aW9uLCBuYW1lLCB2YWx1ZSkKLSAgICAgICAgcmV0dXJuIGdldGF0dHIocGFyc2Vkb3B0
aW9uLCBGSUxFX09SX0RJUikKLQotICAgIGRlZiBwYXJzZV9rbm93bl9hcmdzKHNlbGYsIGFyZ3Ms
IG5hbWVzcGFjZT1Ob25lKToKLSAgICAgICAgIiIicGFyc2VzIGFuZCByZXR1cm5zIGEgbmFtZXNw
YWNlIG9iamVjdCB3aXRoIGtub3duIGFyZ3VtZW50cyBhdCB0aGlzCi0gICAgICAgIHBvaW50Lgot
ICAgICAgICAiIiIKLSAgICAgICAgcmV0dXJuIHNlbGYucGFyc2Vfa25vd25fYW5kX3Vua25vd25f
YXJncyhhcmdzLCBuYW1lc3BhY2U9bmFtZXNwYWNlKVswXQotCi0gICAgZGVmIHBhcnNlX2tub3du
X2FuZF91bmtub3duX2FyZ3Moc2VsZiwgYXJncywgbmFtZXNwYWNlPU5vbmUpOgotICAgICAgICAi
IiJwYXJzZXMgYW5kIHJldHVybnMgYSBuYW1lc3BhY2Ugb2JqZWN0IHdpdGgga25vd24gYXJndW1l
bnRzLCBhbmQKLSAgICAgICAgdGhlIHJlbWFpbmluZyBhcmd1bWVudHMgdW5rbm93biBhdCB0aGlz
IHBvaW50LgotICAgICAgICAiIiIKLSAgICAgICAgb3B0cGFyc2VyID0gc2VsZi5fZ2V0cGFyc2Vy
KCkKLSAgICAgICAgYXJncyA9IFtzdHIoeCkgZm9yIHggaW4gYXJnc10KLSAgICAgICAgcmV0dXJu
IG9wdHBhcnNlci5wYXJzZV9rbm93bl9hcmdzKGFyZ3MsIG5hbWVzcGFjZT1uYW1lc3BhY2UpCi0K
LSAgICBkZWYgYWRkaW5pKHNlbGYsIG5hbWUsIGhlbHAsIHR5cGU9Tm9uZSwgZGVmYXVsdD1Ob25l
KToKLSAgICAgICAgIiIiIHJlZ2lzdGVyIGFuIGluaS1maWxlIG9wdGlvbi4KLQotICAgICAgICA6
bmFtZTogbmFtZSBvZiB0aGUgaW5pLXZhcmlhYmxlCi0gICAgICAgIDp0eXBlOiB0eXBlIG9mIHRo
ZSB2YXJpYWJsZSwgY2FuIGJlIGBgcGF0aGxpc3RgYCwgYGBhcmdzYGAsIGBgbGluZWxpc3RgYAot
ICAgICAgICAgICAgICAgb3IgYGBib29sYGAuCi0gICAgICAgIDpkZWZhdWx0OiBkZWZhdWx0IHZh
bHVlIGlmIG5vIGluaS1maWxlIG9wdGlvbiBleGlzdHMgYnV0IGlzIHF1ZXJpZWQuCi0KLSAgICAg
ICAgVGhlIHZhbHVlIG9mIGluaS12YXJpYWJsZXMgY2FuIGJlIHJldHJpZXZlZCB2aWEgYSBjYWxs
IHRvCi0gICAgICAgIDpweTpmdW5jOmBjb25maWcuZ2V0aW5pKG5hbWUpIDxfcHl0ZXN0LmNvbmZp
Zy5Db25maWcuZ2V0aW5pPmAuCi0gICAgICAgICIiIgotICAgICAgICBhc3NlcnQgdHlwZSBpbiAo
Tm9uZSwgInBhdGhsaXN0IiwgImFyZ3MiLCAibGluZWxpc3QiLCAiYm9vbCIpCi0gICAgICAgIHNl
bGYuX2luaWRpY3RbbmFtZV0gPSAoaGVscCwgdHlwZSwgZGVmYXVsdCkKLSAgICAgICAgc2VsZi5f
aW5pbmFtZXMuYXBwZW5kKG5hbWUpCi0KLQotY2xhc3MgQXJndW1lbnRFcnJvcihFeGNlcHRpb24p
OgotICAgICIiIgotICAgIFJhaXNlZCBpZiBhbiBBcmd1bWVudCBpbnN0YW5jZSBpcyBjcmVhdGVk
IHdpdGggaW52YWxpZCBvcgotICAgIGluY29uc2lzdGVudCBhcmd1bWVudHMuCi0gICAgIiIiCi0K
LSAgICBkZWYgX19pbml0X18oc2VsZiwgbXNnLCBvcHRpb24pOgotICAgICAgICBzZWxmLm1zZyA9
IG1zZwotICAgICAgICBzZWxmLm9wdGlvbl9pZCA9IHN0cihvcHRpb24pCi0KLSAgICBkZWYgX19z
dHJfXyhzZWxmKToKLSAgICAgICAgaWYgc2VsZi5vcHRpb25faWQ6Ci0gICAgICAgICAgICByZXR1
cm4gIm9wdGlvbiAlczogJXMiICUgKHNlbGYub3B0aW9uX2lkLCBzZWxmLm1zZykKLSAgICAgICAg
ZWxzZToKLSAgICAgICAgICAgIHJldHVybiBzZWxmLm1zZwotCi0KLWNsYXNzIEFyZ3VtZW50Ogot
ICAgICIiImNsYXNzIHRoYXQgbWltaWNzIHRoZSBuZWNlc3NhcnkgYmVoYXZpb3VyIG9mIG9wdHBh
cnNlLk9wdGlvbgotCi0gICAgaXRzIGN1cnJlbnRseSBhIGxlYXN0IGVmZm9ydCBpbXBsZW1lbnRh
dGlvbgotICAgIGFuZCBpZ25vcmluZyBjaG9pY2VzIGFuZCBpbnRlZ2VyIHByZWZpeGVzCi0gICAg
aHR0cHM6Ly9kb2NzLnB5dGhvbi5vcmcvMy9saWJyYXJ5L29wdHBhcnNlLmh0bWwjb3B0cGFyc2Ut
c3RhbmRhcmQtb3B0aW9uLXR5cGVzCi0gICAgIiIiCi0gICAgX3R5cF9tYXAgPSB7Ci0gICAgICAg
ICdpbnQnOiBpbnQsCi0gICAgICAgICdzdHJpbmcnOiBzdHIsCi0gICAgICAgICdmbG9hdCc6IGZs
b2F0LAotICAgICAgICAnY29tcGxleCc6IGNvbXBsZXgsCi0gICAgfQotCi0gICAgZGVmIF9faW5p
dF9fKHNlbGYsICpuYW1lcywgKiphdHRycyk6Ci0gICAgICAgICIiInN0b3JlIHBhcm1zIGluIHBy
aXZhdGUgdmFycyBmb3IgdXNlIGluIGFkZF9hcmd1bWVudCIiIgotICAgICAgICBzZWxmLl9hdHRy
cyA9IGF0dHJzCi0gICAgICAgIHNlbGYuX3Nob3J0X29wdHMgPSBbXQotICAgICAgICBzZWxmLl9s
b25nX29wdHMgPSBbXQotICAgICAgICBzZWxmLmRlc3QgPSBhdHRycy5nZXQoJ2Rlc3QnKQotICAg
ICAgICBpZiAnJWRlZmF1bHQnIGluIChhdHRycy5nZXQoJ2hlbHAnKSBvciAnJyk6Ci0gICAgICAg
ICAgICB3YXJuaW5ncy53YXJuKAotICAgICAgICAgICAgICAgICdweXRlc3Qgbm93IHVzZXMgYXJn
cGFyc2UuICIlZGVmYXVsdCIgc2hvdWxkIGJlJwotICAgICAgICAgICAgICAgICcgY2hhbmdlZCB0
byAiJShkZWZhdWx0KXMiICcsCi0gICAgICAgICAgICAgICAgRGVwcmVjYXRpb25XYXJuaW5nLAot
ICAgICAgICAgICAgICAgIHN0YWNrbGV2ZWw9MykKLSAgICAgICAgdHJ5OgotICAgICAgICAgICAg
dHlwID0gYXR0cnNbJ3R5cGUnXQotICAgICAgICBleGNlcHQgS2V5RXJyb3I6Ci0gICAgICAgICAg
ICBwYXNzCi0gICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAjIHRoaXMgbWlnaHQgcmFpc2UgYSBr
ZXllcnJvciBhcyB3ZWxsLCBkb24ndCB3YW50IHRvIGNhdGNoIHRoYXQKLSAgICAgICAgICAgIGlm
IGlzaW5zdGFuY2UodHlwLCBzaXguc3RyaW5nX3R5cGVzKToKLSAgICAgICAgICAgICAgICBpZiB0
eXAgPT0gJ2Nob2ljZSc6Ci0gICAgICAgICAgICAgICAgICAgIHdhcm5pbmdzLndhcm4oCi0gICAg
ICAgICAgICAgICAgICAgICAgICAndHlwZSBhcmd1bWVudCB0byBhZGRvcHRpb24oKSBpcyBhIHN0
cmluZyAlci4nCi0gICAgICAgICAgICAgICAgICAgICAgICAnIEZvciBwYXJzZWFyZyB0aGlzIGlz
IG9wdGlvbmFsIGFuZCB3aGVuIHN1cHBsaWVkJwotICAgICAgICAgICAgICAgICAgICAgICAgJyBz
aG91bGQgYmUgYSB0eXBlLicKLSAgICAgICAgICAgICAgICAgICAgICAgICcgKG9wdGlvbnM6ICVz
KScgJSAodHlwLCBuYW1lcyksCi0gICAgICAgICAgICAgICAgICAgICAgICBEZXByZWNhdGlvbldh
cm5pbmcsCi0gICAgICAgICAgICAgICAgICAgICAgICBzdGFja2xldmVsPTMpCi0gICAgICAgICAg
ICAgICAgICAgICMgYXJncGFyc2UgZXhwZWN0cyBhIHR5cGUgaGVyZSB0YWtlIGl0IGZyb20KLSAg
ICAgICAgICAgICAgICAgICAgIyB0aGUgdHlwZSBvZiB0aGUgZmlyc3QgZWxlbWVudAotICAgICAg
ICAgICAgICAgICAgICBhdHRyc1sndHlwZSddID0gdHlwZShhdHRyc1snY2hvaWNlcyddWzBdKQot
ICAgICAgICAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAgICAgICAgIHdhcm5pbmdzLndhcm4o
Ci0gICAgICAgICAgICAgICAgICAgICAgICAndHlwZSBhcmd1bWVudCB0byBhZGRvcHRpb24oKSBp
cyBhIHN0cmluZyAlci4nCi0gICAgICAgICAgICAgICAgICAgICAgICAnIEZvciBwYXJzZWFyZyB0
aGlzIHNob3VsZCBiZSBhIHR5cGUuJwotICAgICAgICAgICAgICAgICAgICAgICAgJyAob3B0aW9u
czogJXMpJyAlICh0eXAsIG5hbWVzKSwKLSAgICAgICAgICAgICAgICAgICAgICAgIERlcHJlY2F0
aW9uV2FybmluZywKLSAgICAgICAgICAgICAgICAgICAgICAgIHN0YWNrbGV2ZWw9MykKLSAgICAg
ICAgICAgICAgICAgICAgYXR0cnNbJ3R5cGUnXSA9IEFyZ3VtZW50Ll90eXBfbWFwW3R5cF0KLSAg
ICAgICAgICAgICAgICAjIHVzZWQgaW4gdGVzdF9wYXJzZW9wdCAtPiB0ZXN0X3BhcnNlX2RlZmF1
bHRnZXR0ZXIKLSAgICAgICAgICAgICAgICBzZWxmLnR5cGUgPSBhdHRyc1sndHlwZSddCi0gICAg
ICAgICAgICBlbHNlOgotICAgICAgICAgICAgICAgIHNlbGYudHlwZSA9IHR5cAotICAgICAgICB0
cnk6Ci0gICAgICAgICAgICAjIGF0dHJpYnV0ZSBleGlzdGVuY2UgaXMgdGVzdGVkIGluIENvbmZp
Zy5fcHJvY2Vzc29wdAotICAgICAgICAgICAgc2VsZi5kZWZhdWx0ID0gYXR0cnNbJ2RlZmF1bHQn
XQotICAgICAgICBleGNlcHQgS2V5RXJyb3I6Ci0gICAgICAgICAgICBwYXNzCi0gICAgICAgIHNl
bGYuX3NldF9vcHRfc3RyaW5ncyhuYW1lcykKLSAgICAgICAgaWYgbm90IHNlbGYuZGVzdDoKLSAg
ICAgICAgICAgIGlmIHNlbGYuX2xvbmdfb3B0czoKLSAgICAgICAgICAgICAgICBzZWxmLmRlc3Qg
PSBzZWxmLl9sb25nX29wdHNbMF1bMjpdLnJlcGxhY2UoJy0nLCAnXycpCi0gICAgICAgICAgICBl
bHNlOgotICAgICAgICAgICAgICAgIHRyeToKLSAgICAgICAgICAgICAgICAgICAgc2VsZi5kZXN0
ID0gc2VsZi5fc2hvcnRfb3B0c1swXVsxOl0KLSAgICAgICAgICAgICAgICBleGNlcHQgSW5kZXhF
cnJvcjoKLSAgICAgICAgICAgICAgICAgICAgcmFpc2UgQXJndW1lbnRFcnJvcigKLSAgICAgICAg
ICAgICAgICAgICAgICAgICduZWVkIGEgbG9uZyBvciBzaG9ydCBvcHRpb24nLCBzZWxmKQotCi0g
ICAgZGVmIG5hbWVzKHNlbGYpOgotICAgICAgICByZXR1cm4gc2VsZi5fc2hvcnRfb3B0cyArIHNl
bGYuX2xvbmdfb3B0cwotCi0gICAgZGVmIGF0dHJzKHNlbGYpOgotICAgICAgICAjIHVwZGF0ZSBh
bnkgYXR0cmlidXRlcyBzZXQgYnkgcHJvY2Vzc29wdAotICAgICAgICBhdHRycyA9ICdkZWZhdWx0
IGRlc3QgaGVscCcuc3BsaXQoKQotICAgICAgICBpZiBzZWxmLmRlc3Q6Ci0gICAgICAgICAgICBh
dHRycy5hcHBlbmQoc2VsZi5kZXN0KQotICAgICAgICBmb3IgYXR0ciBpbiBhdHRyczoKLSAgICAg
ICAgICAgIHRyeToKLSAgICAgICAgICAgICAgICBzZWxmLl9hdHRyc1thdHRyXSA9IGdldGF0dHIo
c2VsZiwgYXR0cikKLSAgICAgICAgICAgIGV4Y2VwdCBBdHRyaWJ1dGVFcnJvcjoKLSAgICAgICAg
ICAgICAgICBwYXNzCi0gICAgICAgIGlmIHNlbGYuX2F0dHJzLmdldCgnaGVscCcpOgotICAgICAg
ICAgICAgYSA9IHNlbGYuX2F0dHJzWydoZWxwJ10KLSAgICAgICAgICAgIGEgPSBhLnJlcGxhY2Uo
JyVkZWZhdWx0JywgJyUoZGVmYXVsdClzJykKLSAgICAgICAgICAgICMgYSA9IGEucmVwbGFjZSgn
JXByb2cnLCAnJShwcm9nKXMnKQotICAgICAgICAgICAgc2VsZi5fYXR0cnNbJ2hlbHAnXSA9IGEK
LSAgICAgICAgcmV0dXJuIHNlbGYuX2F0dHJzCi0KLSAgICBkZWYgX3NldF9vcHRfc3RyaW5ncyhz
ZWxmLCBvcHRzKToKLSAgICAgICAgIiIiZGlyZWN0bHkgZnJvbSBvcHRwYXJzZQotCi0gICAgICAg
IG1pZ2h0IG5vdCBiZSBuZWNlc3NhcnkgYXMgdGhpcyBpcyBwYXNzZWQgdG8gYXJncGFyc2UgbGF0
ZXIgb24iIiIKLSAgICAgICAgZm9yIG9wdCBpbiBvcHRzOgotICAgICAgICAgICAgaWYgbGVuKG9w
dCkgPCAyOgotICAgICAgICAgICAgICAgIHJhaXNlIEFyZ3VtZW50RXJyb3IoCi0gICAgICAgICAg
ICAgICAgICAgICJpbnZhbGlkIG9wdGlvbiBzdHJpbmcgJXI6ICIKLSAgICAgICAgICAgICAgICAg
ICAgIm11c3QgYmUgYXQgbGVhc3QgdHdvIGNoYXJhY3RlcnMgbG9uZyIgJSBvcHQsIHNlbGYpCi0g
ICAgICAgICAgICBlbGlmIGxlbihvcHQpID09IDI6Ci0gICAgICAgICAgICAgICAgaWYgbm90IChv
cHRbMF0gPT0gIi0iIGFuZCBvcHRbMV0gIT0gIi0iKToKLSAgICAgICAgICAgICAgICAgICAgcmFp
c2UgQXJndW1lbnRFcnJvcigKLSAgICAgICAgICAgICAgICAgICAgICAgICJpbnZhbGlkIHNob3J0
IG9wdGlvbiBzdHJpbmcgJXI6ICIKLSAgICAgICAgICAgICAgICAgICAgICAgICJtdXN0IGJlIG9m
IHRoZSBmb3JtIC14LCAoeCBhbnkgbm9uLWRhc2ggY2hhcikiICUgb3B0LAotICAgICAgICAgICAg
ICAgICAgICAgICAgc2VsZikKLSAgICAgICAgICAgICAgICBzZWxmLl9zaG9ydF9vcHRzLmFwcGVu
ZChvcHQpCi0gICAgICAgICAgICBlbHNlOgotICAgICAgICAgICAgICAgIGlmIG5vdCAob3B0WzA6
Ml0gPT0gIi0tIiBhbmQgb3B0WzJdICE9ICItIik6Ci0gICAgICAgICAgICAgICAgICAgIHJhaXNl
IEFyZ3VtZW50RXJyb3IoCi0gICAgICAgICAgICAgICAgICAgICAgICAiaW52YWxpZCBsb25nIG9w
dGlvbiBzdHJpbmcgJXI6ICIKLSAgICAgICAgICAgICAgICAgICAgICAgICJtdXN0IHN0YXJ0IHdp
dGggLS0sIGZvbGxvd2VkIGJ5IG5vbi1kYXNoIiAlIG9wdCwKLSAgICAgICAgICAgICAgICAgICAg
ICAgIHNlbGYpCi0gICAgICAgICAgICAgICAgc2VsZi5fbG9uZ19vcHRzLmFwcGVuZChvcHQpCi0K
LSAgICBkZWYgX19yZXByX18oc2VsZik6Ci0gICAgICAgIGFyZ3MgPSBbXQotICAgICAgICBpZiBz
ZWxmLl9zaG9ydF9vcHRzOgotICAgICAgICAgICAgYXJncyArPSBbJ19zaG9ydF9vcHRzOiAnICsg
cmVwcihzZWxmLl9zaG9ydF9vcHRzKV0KLSAgICAgICAgaWYgc2VsZi5fbG9uZ19vcHRzOgotICAg
ICAgICAgICAgYXJncyArPSBbJ19sb25nX29wdHM6ICcgKyByZXByKHNlbGYuX2xvbmdfb3B0cyld
Ci0gICAgICAgIGFyZ3MgKz0gWydkZXN0OiAnICsgcmVwcihzZWxmLmRlc3QpXQotICAgICAgICBp
ZiBoYXNhdHRyKHNlbGYsICd0eXBlJyk6Ci0gICAgICAgICAgICBhcmdzICs9IFsndHlwZTogJyAr
IHJlcHIoc2VsZi50eXBlKV0KLSAgICAgICAgaWYgaGFzYXR0cihzZWxmLCAnZGVmYXVsdCcpOgot
ICAgICAgICAgICAgYXJncyArPSBbJ2RlZmF1bHQ6ICcgKyByZXByKHNlbGYuZGVmYXVsdCldCi0g
ICAgICAgIHJldHVybiAnQXJndW1lbnQoezB9KScuZm9ybWF0KCcsICcuam9pbihhcmdzKSkKLQot
Ci1jbGFzcyBPcHRpb25Hcm91cDoKLSAgICBkZWYgX19pbml0X18oc2VsZiwgbmFtZSwgZGVzY3Jp
cHRpb249IiIsIHBhcnNlcj1Ob25lKToKLSAgICAgICAgc2VsZi5uYW1lID0gbmFtZQotICAgICAg
ICBzZWxmLmRlc2NyaXB0aW9uID0gZGVzY3JpcHRpb24KLSAgICAgICAgc2VsZi5vcHRpb25zID0g
W10KLSAgICAgICAgc2VsZi5wYXJzZXIgPSBwYXJzZXIKLQotICAgIGRlZiBhZGRvcHRpb24oc2Vs
ZiwgKm9wdG5hbWVzLCAqKmF0dHJzKToKLSAgICAgICAgIiIiIGFkZCBhbiBvcHRpb24gdG8gdGhp
cyBncm91cC4KLQotICAgICAgICBpZiBhIHNob3J0ZW5lZCB2ZXJzaW9uIG9mIGEgbG9uZyBvcHRp
b24gaXMgc3BlY2lmaWVkIGl0IHdpbGwKLSAgICAgICAgYmUgc3VwcHJlc3NlZCBpbiB0aGUgaGVs
cC4gYWRkb3B0aW9uKCctLXR3b3dvcmRzJywgJy0tdHdvLXdvcmRzJykKLSAgICAgICAgcmVzdWx0
cyBpbiBoZWxwIHNob3dpbmcgJy0tdHdvLXdvcmRzJyBvbmx5LCBidXQgLS10d293b3JkcyBnZXRz
Ci0gICAgICAgIGFjY2VwdGVkICoqYW5kKiogdGhlIGF1dG9tYXRpYyBkZXN0aW5hdGlvbiBpcyBp
biBhcmdzLnR3b3dvcmRzCi0gICAgICAgICIiIgotICAgICAgICBjb25mbGljdCA9IHNldChvcHRu
YW1lcykuaW50ZXJzZWN0aW9uKAotICAgICAgICAgICAgbmFtZSBmb3Igb3B0IGluIHNlbGYub3B0
aW9ucyBmb3IgbmFtZSBpbiBvcHQubmFtZXMoKSkKLSAgICAgICAgaWYgY29uZmxpY3Q6Ci0gICAg
ICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJvcHRpb24gbmFtZXMgJXMgYWxyZWFkeSBhZGRlZCIg
JSBjb25mbGljdCkKLSAgICAgICAgb3B0aW9uID0gQXJndW1lbnQoKm9wdG5hbWVzLCAqKmF0dHJz
KQotICAgICAgICBzZWxmLl9hZGRvcHRpb25faW5zdGFuY2Uob3B0aW9uLCBzaG9ydHVwcGVyPUZh
bHNlKQotCi0gICAgZGVmIF9hZGRvcHRpb24oc2VsZiwgKm9wdG5hbWVzLCAqKmF0dHJzKToKLSAg
ICAgICAgb3B0aW9uID0gQXJndW1lbnQoKm9wdG5hbWVzLCAqKmF0dHJzKQotICAgICAgICBzZWxm
Ll9hZGRvcHRpb25faW5zdGFuY2Uob3B0aW9uLCBzaG9ydHVwcGVyPVRydWUpCi0KLSAgICBkZWYg
X2FkZG9wdGlvbl9pbnN0YW5jZShzZWxmLCBvcHRpb24sIHNob3J0dXBwZXI9RmFsc2UpOgotICAg
ICAgICBpZiBub3Qgc2hvcnR1cHBlcjoKLSAgICAgICAgICAgIGZvciBvcHQgaW4gb3B0aW9uLl9z
aG9ydF9vcHRzOgotICAgICAgICAgICAgICAgIGlmIG9wdFswXSA9PSAnLScgYW5kIG9wdFsxXS5p
c2xvd2VyKCk6Ci0gICAgICAgICAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoImxvd2VyY2Fz
ZSBzaG9ydG9wdGlvbnMgcmVzZXJ2ZWQiKQotICAgICAgICBpZiBzZWxmLnBhcnNlcjoKLSAgICAg
ICAgICAgIHNlbGYucGFyc2VyLnByb2Nlc3NvcHRpb24ob3B0aW9uKQotICAgICAgICBzZWxmLm9w
dGlvbnMuYXBwZW5kKG9wdGlvbikKLQotCi1jbGFzcyBNeU9wdGlvblBhcnNlcihhcmdwYXJzZS5B
cmd1bWVudFBhcnNlcik6Ci0gICAgZGVmIF9faW5pdF9fKHNlbGYsIHBhcnNlciwgZXh0cmFfaW5m
bz1Ob25lKToKLSAgICAgICAgaWYgbm90IGV4dHJhX2luZm86Ci0gICAgICAgICAgICBleHRyYV9p
bmZvID0ge30KLSAgICAgICAgc2VsZi5fcGFyc2VyID0gcGFyc2VyCi0gICAgICAgIGFyZ3BhcnNl
LkFyZ3VtZW50UGFyc2VyLl9faW5pdF9fKHNlbGYsIHVzYWdlPXBhcnNlci5fdXNhZ2UsCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFkZF9oZWxwPUZhbHNlLCBmb3Jt
YXR0ZXJfY2xhc3M9RHJvcFNob3J0ZXJMb25nSGVscEZvcm1hdHRlcikKLSAgICAgICAgIyBleHRy
YV9pbmZvIGlzIGEgZGljdCBvZiAocGFyYW0gLT4gdmFsdWUpIHRvIGRpc3BsYXkgaWYgdGhlcmUn
cwotICAgICAgICAjIGFuIHVzYWdlIGVycm9yIHRvIHByb3ZpZGUgbW9yZSBjb250ZXh0dWFsIGlu
Zm9ybWF0aW9uIHRvIHRoZSB1c2VyCi0gICAgICAgIHNlbGYuZXh0cmFfaW5mbyA9IGV4dHJhX2lu
Zm8KLQotICAgIGRlZiBwYXJzZV9hcmdzKHNlbGYsIGFyZ3M9Tm9uZSwgbmFtZXNwYWNlPU5vbmUp
OgotICAgICAgICAiIiJhbGxvdyBzcGxpdHRpbmcgb2YgcG9zaXRpb25hbCBhcmd1bWVudHMiIiIK
LSAgICAgICAgYXJncywgYXJndiA9IHNlbGYucGFyc2Vfa25vd25fYXJncyhhcmdzLCBuYW1lc3Bh
Y2UpCi0gICAgICAgIGlmIGFyZ3Y6Ci0gICAgICAgICAgICBmb3IgYXJnIGluIGFyZ3Y6Ci0gICAg
ICAgICAgICAgICAgaWYgYXJnIGFuZCBhcmdbMF0gPT0gJy0nOgotICAgICAgICAgICAgICAgICAg
ICBsaW5lcyA9IFsndW5yZWNvZ25pemVkIGFyZ3VtZW50czogJXMnICUgKCcgJy5qb2luKGFyZ3Yp
KV0KLSAgICAgICAgICAgICAgICAgICAgZm9yIGssIHYgaW4gc29ydGVkKHNlbGYuZXh0cmFfaW5m
by5pdGVtcygpKToKLSAgICAgICAgICAgICAgICAgICAgICAgIGxpbmVzLmFwcGVuZCgnICAlczog
JXMnICUgKGssIHYpKQotICAgICAgICAgICAgICAgICAgICBzZWxmLmVycm9yKCdcbicuam9pbihs
aW5lcykpCi0gICAgICAgICAgICBnZXRhdHRyKGFyZ3MsIEZJTEVfT1JfRElSKS5leHRlbmQoYXJn
dikKLSAgICAgICAgcmV0dXJuIGFyZ3MKLQotCi1jbGFzcyBEcm9wU2hvcnRlckxvbmdIZWxwRm9y
bWF0dGVyKGFyZ3BhcnNlLkhlbHBGb3JtYXR0ZXIpOgotICAgICIiInNob3J0ZW4gaGVscCBmb3Ig
bG9uZyBvcHRpb25zIHRoYXQgZGlmZmVyIG9ubHkgaW4gZXh0cmEgaHlwaGVucwotCi0gICAgLSBj
b2xsYXBzZSAqKmxvbmcqKiBvcHRpb25zIHRoYXQgYXJlIHRoZSBzYW1lIGV4Y2VwdCBmb3IgZXh0
cmEgaHlwaGVucwotICAgIC0gc3BlY2lhbCBhY3Rpb24gYXR0cmlidXRlIG1hcF9sb25nX29wdGlv
biBhbGxvd3Mgc3VycHJlc3NpbmcgYWRkaXRpb25hbAotICAgICAgbG9uZyBvcHRpb25zCi0gICAg
LSBzaG9ydGN1dCBpZiB0aGVyZSBhcmUgb25seSB0d28gb3B0aW9ucyBhbmQgb25lIG9mIHRoZW0g
aXMgYSBzaG9ydCBvbmUKLSAgICAtIGNhY2hlIHJlc3VsdCBvbiBhY3Rpb24gb2JqZWN0IGFzIHRo
aXMgaXMgY2FsbGVkIGF0IGxlYXN0IDIgdGltZXMKLSAgICAiIiIKLQotICAgIGRlZiBfZm9ybWF0
X2FjdGlvbl9pbnZvY2F0aW9uKHNlbGYsIGFjdGlvbik6Ci0gICAgICAgIG9yZ3N0ciA9IGFyZ3Bh
cnNlLkhlbHBGb3JtYXR0ZXIuX2Zvcm1hdF9hY3Rpb25faW52b2NhdGlvbihzZWxmLCBhY3Rpb24p
Ci0gICAgICAgIGlmIG9yZ3N0ciBhbmQgb3Jnc3RyWzBdICE9ICctJzogICMgb25seSBvcHRpb25h
bCBhcmd1bWVudHMKLSAgICAgICAgICAgIHJldHVybiBvcmdzdHIKLSAgICAgICAgcmVzID0gZ2V0
YXR0cihhY3Rpb24sICdfZm9ybWF0dGVkX2FjdGlvbl9pbnZvY2F0aW9uJywgTm9uZSkKLSAgICAg
ICAgaWYgcmVzOgotICAgICAgICAgICAgcmV0dXJuIHJlcwotICAgICAgICBvcHRpb25zID0gb3Jn
c3RyLnNwbGl0KCcsICcpCi0gICAgICAgIGlmIGxlbihvcHRpb25zKSA9PSAyIGFuZCAobGVuKG9w
dGlvbnNbMF0pID09IDIgb3IgbGVuKG9wdGlvbnNbMV0pID09IDIpOgotICAgICAgICAgICAgIyBh
IHNob3J0Y3V0IGZvciAnLWgsIC0taGVscCcgb3IgJy0tYWJjJywgJy1hJwotICAgICAgICAgICAg
YWN0aW9uLl9mb3JtYXR0ZWRfYWN0aW9uX2ludm9jYXRpb24gPSBvcmdzdHIKLSAgICAgICAgICAg
IHJldHVybiBvcmdzdHIKLSAgICAgICAgcmV0dXJuX2xpc3QgPSBbXQotICAgICAgICBvcHRpb25f
bWFwID0gZ2V0YXR0cihhY3Rpb24sICdtYXBfbG9uZ19vcHRpb24nLCB7fSkKLSAgICAgICAgaWYg
b3B0aW9uX21hcCBpcyBOb25lOgotICAgICAgICAgICAgb3B0aW9uX21hcCA9IHt9Ci0gICAgICAg
IHNob3J0X2xvbmcgPSB7fQotICAgICAgICBmb3Igb3B0aW9uIGluIG9wdGlvbnM6Ci0gICAgICAg
ICAgICBpZiBsZW4ob3B0aW9uKSA9PSAyIG9yIG9wdGlvblsyXSA9PSAnICc6Ci0gICAgICAgICAg
ICAgICAgY29udGludWUKLSAgICAgICAgICAgIGlmIG5vdCBvcHRpb24uc3RhcnRzd2l0aCgnLS0n
KToKLSAgICAgICAgICAgICAgICByYWlzZSBBcmd1bWVudEVycm9yKCdsb25nIG9wdGlvbmFsIGFy
Z3VtZW50IHdpdGhvdXQgIi0tIjogWyVzXScKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICUgKG9wdGlvbiksIHNlbGYpCi0gICAgICAgICAgICB4eG9wdGlvbiA9IG9wdGlvblsy
Ol0KLSAgICAgICAgICAgIGlmIHh4b3B0aW9uLnNwbGl0KClbMF0gbm90IGluIG9wdGlvbl9tYXA6
Ci0gICAgICAgICAgICAgICAgc2hvcnRlbmVkID0geHhvcHRpb24ucmVwbGFjZSgnLScsICcnKQot
ICAgICAgICAgICAgICAgIGlmIHNob3J0ZW5lZCBub3QgaW4gc2hvcnRfbG9uZyBvciBcCi0gICAg
ICAgICAgICAgICAgICAgbGVuKHNob3J0X2xvbmdbc2hvcnRlbmVkXSkgPCBsZW4oeHhvcHRpb24p
OgotICAgICAgICAgICAgICAgICAgICBzaG9ydF9sb25nW3Nob3J0ZW5lZF0gPSB4eG9wdGlvbgot
ICAgICAgICAjIG5vdyBzaG9ydF9sb25nIGhhcyBiZWVuIGZpbGxlZCBvdXQgdG8gdGhlIGxvbmdl
c3Qgd2l0aCBkYXNoZXMKLSAgICAgICAgIyAqKmFuZCoqIHdlIGtlZXAgdGhlIHJpZ2h0IG9wdGlv
biBvcmRlcmluZyBmcm9tIGFkZF9hcmd1bWVudAotICAgICAgICBmb3Igb3B0aW9uIGluIG9wdGlv
bnM6Ci0gICAgICAgICAgICBpZiBsZW4ob3B0aW9uKSA9PSAyIG9yIG9wdGlvblsyXSA9PSAnICc6
Ci0gICAgICAgICAgICAgICAgcmV0dXJuX2xpc3QuYXBwZW5kKG9wdGlvbikKLSAgICAgICAgICAg
IGlmIG9wdGlvblsyOl0gPT0gc2hvcnRfbG9uZy5nZXQob3B0aW9uLnJlcGxhY2UoJy0nLCAnJykp
OgotICAgICAgICAgICAgICAgIHJldHVybl9saXN0LmFwcGVuZChvcHRpb24ucmVwbGFjZSgnICcs
ICc9JywgMSkpCi0gICAgICAgIGFjdGlvbi5fZm9ybWF0dGVkX2FjdGlvbl9pbnZvY2F0aW9uID0g
JywgJy5qb2luKHJldHVybl9saXN0KQotICAgICAgICByZXR1cm4gYWN0aW9uLl9mb3JtYXR0ZWRf
YWN0aW9uX2ludm9jYXRpb24KLQotCi1kZWYgX2Vuc3VyZV9yZW1vdmVkX3N5c21vZHVsZShtb2Ru
YW1lKToKLSAgICB0cnk6Ci0gICAgICAgIGRlbCBzeXMubW9kdWxlc1ttb2RuYW1lXQotICAgIGV4
Y2VwdCBLZXlFcnJvcjoKLSAgICAgICAgcGFzcwotCi0KLWNsYXNzIENtZE9wdGlvbnMob2JqZWN0
KToKLSAgICAiIiIgaG9sZHMgY21kbGluZSBvcHRpb25zIGFzIGF0dHJpYnV0ZXMuIiIiCi0KLSAg
ICBkZWYgX19pbml0X18oc2VsZiwgdmFsdWVzPSgpKToKLSAgICAgICAgc2VsZi5fX2RpY3RfXy51
cGRhdGUodmFsdWVzKQotCi0gICAgZGVmIF9fcmVwcl9fKHNlbGYpOgotICAgICAgICByZXR1cm4g
IjxDbWRPcHRpb25zICVyPiIgJSAoc2VsZi5fX2RpY3RfXywpCi0KLSAgICBkZWYgY29weShzZWxm
KToKLSAgICAgICAgcmV0dXJuIENtZE9wdGlvbnMoc2VsZi5fX2RpY3RfXykKLQotCi1jbGFzcyBO
b3RzZXQ6Ci0gICAgZGVmIF9fcmVwcl9fKHNlbGYpOgotICAgICAgICByZXR1cm4gIjxOT1RTRVQ+
IgotCi0KLW5vdHNldCA9IE5vdHNldCgpCi1GSUxFX09SX0RJUiA9ICdmaWxlX29yX2RpcicKLQot
Ci1kZWYgX2l0ZXJfcmV3cml0YWJsZV9tb2R1bGVzKHBhY2thZ2VfZmlsZXMpOgotICAgIGZvciBm
biBpbiBwYWNrYWdlX2ZpbGVzOgotICAgICAgICBpc19zaW1wbGVfbW9kdWxlID0gJy8nIG5vdCBp
biBmbiBhbmQgZm4uZW5kc3dpdGgoJy5weScpCi0gICAgICAgIGlzX3BhY2thZ2UgPSBmbi5jb3Vu
dCgnLycpID09IDEgYW5kIGZuLmVuZHN3aXRoKCdfX2luaXRfXy5weScpCi0gICAgICAgIGlmIGlz
X3NpbXBsZV9tb2R1bGU6Ci0gICAgICAgICAgICBtb2R1bGVfbmFtZSwgXyA9IG9zLnBhdGguc3Bs
aXRleHQoZm4pCi0gICAgICAgICAgICB5aWVsZCBtb2R1bGVfbmFtZQotICAgICAgICBlbGlmIGlz
X3BhY2thZ2U6Ci0gICAgICAgICAgICBwYWNrYWdlX25hbWUgPSBvcy5wYXRoLmRpcm5hbWUoZm4p
Ci0gICAgICAgICAgICB5aWVsZCBwYWNrYWdlX25hbWUKLQotCi1jbGFzcyBDb25maWcob2JqZWN0
KToKLSAgICAiIiIgYWNjZXNzIHRvIGNvbmZpZ3VyYXRpb24gdmFsdWVzLCBwbHVnaW5tYW5hZ2Vy
IGFuZCBwbHVnaW4gaG9va3MuICAiIiIKLQotICAgIGRlZiBfX2luaXRfXyhzZWxmLCBwbHVnaW5t
YW5hZ2VyKToKLSAgICAgICAgIzogYWNjZXNzIHRvIGNvbW1hbmQgbGluZSBvcHRpb24gYXMgYXR0
cmlidXRlcy4KLSAgICAgICAgIzogKGRlcHJlY2F0ZWQpLCB1c2UgOnB5OmZ1bmM6YGdldG9wdGlv
bigpIDxfcHl0ZXN0LmNvbmZpZy5Db25maWcuZ2V0b3B0aW9uPmAgaW5zdGVhZAotICAgICAgICBz
ZWxmLm9wdGlvbiA9IENtZE9wdGlvbnMoKQotICAgICAgICBfYSA9IEZJTEVfT1JfRElSCi0gICAg
ICAgIHNlbGYuX3BhcnNlciA9IFBhcnNlcigKLSAgICAgICAgICAgIHVzYWdlPSIlJShwcm9nKXMg
W29wdGlvbnNdIFslc10gWyVzXSBbLi4uXSIgJSAoX2EsIF9hKSwKLSAgICAgICAgICAgIHByb2Nl
c3NvcHQ9c2VsZi5fcHJvY2Vzc29wdCwKLSAgICAgICAgKQotICAgICAgICAjOiBhIHBsdWdpbm1h
bmFnZXIgaW5zdGFuY2UKLSAgICAgICAgc2VsZi5wbHVnaW5tYW5hZ2VyID0gcGx1Z2lubWFuYWdl
cgotICAgICAgICBzZWxmLnRyYWNlID0gc2VsZi5wbHVnaW5tYW5hZ2VyLnRyYWNlLnJvb3QuZ2V0
KCJjb25maWciKQotICAgICAgICBzZWxmLmhvb2sgPSBzZWxmLnBsdWdpbm1hbmFnZXIuaG9vawot
ICAgICAgICBzZWxmLl9pbmljYWNoZSA9IHt9Ci0gICAgICAgIHNlbGYuX292ZXJyaWRlX2luaSA9
ICgpCi0gICAgICAgIHNlbGYuX29wdDJkZXN0ID0ge30KLSAgICAgICAgc2VsZi5fY2xlYW51cCA9
IFtdCi0gICAgICAgIHNlbGYuX3dhcm4gPSBzZWxmLnBsdWdpbm1hbmFnZXIuX3dhcm4KLSAgICAg
ICAgc2VsZi5wbHVnaW5tYW5hZ2VyLnJlZ2lzdGVyKHNlbGYsICJweXRlc3Rjb25maWciKQotICAg
ICAgICBzZWxmLl9jb25maWd1cmVkID0gRmFsc2UKLQotICAgICAgICBkZWYgZG9fc2V0bnMoZGlj
KToKLSAgICAgICAgICAgIGltcG9ydCBweXRlc3QKLSAgICAgICAgICAgIHNldG5zKHB5dGVzdCwg
ZGljKQotCi0gICAgICAgIHNlbGYuaG9vay5weXRlc3RfbmFtZXNwYWNlLmNhbGxfaGlzdG9yaWMo
ZG9fc2V0bnMsIHt9KQotICAgICAgICBzZWxmLmhvb2sucHl0ZXN0X2FkZG9wdGlvbi5jYWxsX2hp
c3RvcmljKGt3YXJncz1kaWN0KHBhcnNlcj1zZWxmLl9wYXJzZXIpKQotCi0gICAgZGVmIGFkZF9j
bGVhbnVwKHNlbGYsIGZ1bmMpOgotICAgICAgICAiIiIgQWRkIGEgZnVuY3Rpb24gdG8gYmUgY2Fs
bGVkIHdoZW4gdGhlIGNvbmZpZyBvYmplY3QgZ2V0cyBvdXQgb2YKLSAgICAgICAgdXNlICh1c3Vh
bGx5IGNvbmluY2lkaW5nIHdpdGggcHl0ZXN0X3VuY29uZmlndXJlKS4iIiIKLSAgICAgICAgc2Vs
Zi5fY2xlYW51cC5hcHBlbmQoZnVuYykKLQotICAgIGRlZiBfZG9fY29uZmlndXJlKHNlbGYpOgot
ICAgICAgICBhc3NlcnQgbm90IHNlbGYuX2NvbmZpZ3VyZWQKLSAgICAgICAgc2VsZi5fY29uZmln
dXJlZCA9IFRydWUKLSAgICAgICAgc2VsZi5ob29rLnB5dGVzdF9jb25maWd1cmUuY2FsbF9oaXN0
b3JpYyhrd2FyZ3M9ZGljdChjb25maWc9c2VsZikpCi0KLSAgICBkZWYgX2Vuc3VyZV91bmNvbmZp
Z3VyZShzZWxmKToKLSAgICAgICAgaWYgc2VsZi5fY29uZmlndXJlZDoKLSAgICAgICAgICAgIHNl
bGYuX2NvbmZpZ3VyZWQgPSBGYWxzZQotICAgICAgICAgICAgc2VsZi5ob29rLnB5dGVzdF91bmNv
bmZpZ3VyZShjb25maWc9c2VsZikKLSAgICAgICAgICAgIHNlbGYuaG9vay5weXRlc3RfY29uZmln
dXJlLl9jYWxsX2hpc3RvcnkgPSBbXQotICAgICAgICB3aGlsZSBzZWxmLl9jbGVhbnVwOgotICAg
ICAgICAgICAgZmluID0gc2VsZi5fY2xlYW51cC5wb3AoKQotICAgICAgICAgICAgZmluKCkKLQot
ICAgIGRlZiB3YXJuKHNlbGYsIGNvZGUsIG1lc3NhZ2UsIGZzbG9jYXRpb249Tm9uZSwgbm9kZWlk
PU5vbmUpOgotICAgICAgICAiIiIgZ2VuZXJhdGUgYSB3YXJuaW5nIGZvciB0aGlzIHRlc3Qgc2Vz
c2lvbi4gIiIiCi0gICAgICAgIHNlbGYuaG9vay5weXRlc3RfbG9nd2FybmluZy5jYWxsX2hpc3Rv
cmljKGt3YXJncz1kaWN0KAotICAgICAgICAgICAgY29kZT1jb2RlLCBtZXNzYWdlPW1lc3NhZ2Us
Ci0gICAgICAgICAgICBmc2xvY2F0aW9uPWZzbG9jYXRpb24sIG5vZGVpZD1ub2RlaWQpKQotCi0g
ICAgZGVmIGdldF90ZXJtaW5hbF93cml0ZXIoc2VsZik6Ci0gICAgICAgIHJldHVybiBzZWxmLnBs
dWdpbm1hbmFnZXIuZ2V0X3BsdWdpbigidGVybWluYWxyZXBvcnRlciIpLl90dwotCi0gICAgZGVm
IHB5dGVzdF9jbWRsaW5lX3BhcnNlKHNlbGYsIHBsdWdpbm1hbmFnZXIsIGFyZ3MpOgotICAgICAg
ICAjIFJFRjEgYXNzZXJ0IHNlbGYgPT0gcGx1Z2lubWFuYWdlci5jb25maWcsIChzZWxmLCBwbHVn
aW5tYW5hZ2VyLmNvbmZpZykKLSAgICAgICAgc2VsZi5wYXJzZShhcmdzKQotICAgICAgICByZXR1
cm4gc2VsZgotCi0gICAgZGVmIG5vdGlmeV9leGNlcHRpb24oc2VsZiwgZXhjaW5mbywgb3B0aW9u
PU5vbmUpOgotICAgICAgICBpZiBvcHRpb24gYW5kIG9wdGlvbi5mdWxsdHJhY2U6Ci0gICAgICAg
ICAgICBzdHlsZSA9ICJsb25nIgotICAgICAgICBlbHNlOgotICAgICAgICAgICAgc3R5bGUgPSAi
bmF0aXZlIgotICAgICAgICBleGNyZXByID0gZXhjaW5mby5nZXRyZXByKGZ1bmNhcmdzPVRydWUs
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2hvd2xvY2Fscz1nZXRhdHRyKG9w
dGlvbiwgJ3Nob3dsb2NhbHMnLCBGYWxzZSksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgc3R5bGU9c3R5bGUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKQot
ICAgICAgICByZXMgPSBzZWxmLmhvb2sucHl0ZXN0X2ludGVybmFsZXJyb3IoZXhjcmVwcj1leGNy
ZXByLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXhjaW5m
bz1leGNpbmZvKQotICAgICAgICBpZiBub3QgYW55KHJlcyk6Ci0gICAgICAgICAgICBmb3IgbGlu
ZSBpbiBzdHIoZXhjcmVwcikuc3BsaXQoIlxuIik6Ci0gICAgICAgICAgICAgICAgc3lzLnN0ZGVy
ci53cml0ZSgiSU5URVJOQUxFUlJPUj4gJXNcbiIgJSBsaW5lKQotICAgICAgICAgICAgICAgIHN5
cy5zdGRlcnIuZmx1c2goKQotCi0gICAgZGVmIGN3ZF9yZWxhdGl2ZV9ub2RlaWQoc2VsZiwgbm9k
ZWlkKToKLSAgICAgICAgIyBub2RlaWQncyBhcmUgcmVsYXRpdmUgdG8gdGhlIHJvb3RwYXRoLCBj
b21wdXRlIHJlbGF0aXZlIHRvIGN3ZAotICAgICAgICBpZiBzZWxmLmludm9jYXRpb25fZGlyICE9
IHNlbGYucm9vdGRpcjoKLSAgICAgICAgICAgIGZ1bGxwYXRoID0gc2VsZi5yb290ZGlyLmpvaW4o
bm9kZWlkKQotICAgICAgICAgICAgbm9kZWlkID0gc2VsZi5pbnZvY2F0aW9uX2Rpci5iZXN0cmVs
cGF0aChmdWxscGF0aCkKLSAgICAgICAgcmV0dXJuIG5vZGVpZAotCi0gICAgQGNsYXNzbWV0aG9k
Ci0gICAgZGVmIGZyb21kaWN0YXJncyhjbHMsIG9wdGlvbl9kaWN0LCBhcmdzKToKLSAgICAgICAg
IiIiIGNvbnN0cnVjdG9yIHVzZWFibGUgZm9yIHN1YnByb2Nlc3Nlcy4gIiIiCi0gICAgICAgIGNv
bmZpZyA9IGdldF9jb25maWcoKQotICAgICAgICBjb25maWcub3B0aW9uLl9fZGljdF9fLnVwZGF0
ZShvcHRpb25fZGljdCkKLSAgICAgICAgY29uZmlnLnBhcnNlKGFyZ3MsIGFkZG9wdHM9RmFsc2Up
Ci0gICAgICAgIGZvciB4IGluIGNvbmZpZy5vcHRpb24ucGx1Z2luczoKLSAgICAgICAgICAgIGNv
bmZpZy5wbHVnaW5tYW5hZ2VyLmNvbnNpZGVyX3BsdWdpbmFyZyh4KQotICAgICAgICByZXR1cm4g
Y29uZmlnCi0KLSAgICBkZWYgX3Byb2Nlc3NvcHQoc2VsZiwgb3B0KToKLSAgICAgICAgZm9yIG5h
bWUgaW4gb3B0Ll9zaG9ydF9vcHRzICsgb3B0Ll9sb25nX29wdHM6Ci0gICAgICAgICAgICBzZWxm
Ll9vcHQyZGVzdFtuYW1lXSA9IG9wdC5kZXN0Ci0KLSAgICAgICAgaWYgaGFzYXR0cihvcHQsICdk
ZWZhdWx0JykgYW5kIG9wdC5kZXN0OgotICAgICAgICAgICAgaWYgbm90IGhhc2F0dHIoc2VsZi5v
cHRpb24sIG9wdC5kZXN0KToKLSAgICAgICAgICAgICAgICBzZXRhdHRyKHNlbGYub3B0aW9uLCBv
cHQuZGVzdCwgb3B0LmRlZmF1bHQpCi0KLSAgICBAaG9va2ltcGwodHJ5bGFzdD1UcnVlKQotICAg
IGRlZiBweXRlc3RfbG9hZF9pbml0aWFsX2NvbmZ0ZXN0cyhzZWxmLCBlYXJseV9jb25maWcpOgot
ICAgICAgICBzZWxmLnBsdWdpbm1hbmFnZXIuX3NldF9pbml0aWFsX2NvbmZ0ZXN0cyhlYXJseV9j
b25maWcua25vd25fYXJnc19uYW1lc3BhY2UpCi0KLSAgICBkZWYgX2luaXRpbmkoc2VsZiwgYXJn
cyk6Ci0gICAgICAgIG5zLCB1bmtub3duX2FyZ3MgPSBzZWxmLl9wYXJzZXIucGFyc2Vfa25vd25f
YW5kX3Vua25vd25fYXJncyhhcmdzLCBuYW1lc3BhY2U9c2VsZi5vcHRpb24uY29weSgpKQotICAg
ICAgICByID0gZGV0ZXJtaW5lX3NldHVwKG5zLmluaWZpbGVuYW1lLCBucy5maWxlX29yX2RpciAr
IHVua25vd25fYXJncywgd2FybmZ1bmM9c2VsZi53YXJuKQotICAgICAgICBzZWxmLnJvb3RkaXIs
IHNlbGYuaW5pZmlsZSwgc2VsZi5pbmljZmcgPSByCi0gICAgICAgIHNlbGYuX3BhcnNlci5leHRy
YV9pbmZvWydyb290ZGlyJ10gPSBzZWxmLnJvb3RkaXIKLSAgICAgICAgc2VsZi5fcGFyc2VyLmV4
dHJhX2luZm9bJ2luaWZpbGUnXSA9IHNlbGYuaW5pZmlsZQotICAgICAgICBzZWxmLmludm9jYXRp
b25fZGlyID0gcHkucGF0aC5sb2NhbCgpCi0gICAgICAgIHNlbGYuX3BhcnNlci5hZGRpbmkoJ2Fk
ZG9wdHMnLCAnZXh0cmEgY29tbWFuZCBsaW5lIG9wdGlvbnMnLCAnYXJncycpCi0gICAgICAgIHNl
bGYuX3BhcnNlci5hZGRpbmkoJ21pbnZlcnNpb24nLCAnbWluaW1hbGx5IHJlcXVpcmVkIHB5dGVz
dCB2ZXJzaW9uJykKLSAgICAgICAgc2VsZi5fb3ZlcnJpZGVfaW5pID0gbnMub3ZlcnJpZGVfaW5p
IG9yICgpCi0KLSAgICBkZWYgX2NvbnNpZGVyX2ltcG9ydGhvb2soc2VsZiwgYXJncyk6Ci0gICAg
ICAgICIiIkluc3RhbGwgdGhlIFBFUCAzMDIgaW1wb3J0IGhvb2sgaWYgdXNpbmcgYXNzZXJ0aW9u
IHJld3JpdGluZy4KLQotICAgICAgICBOZWVkcyB0byBwYXJzZSB0aGUgLS1hc3NlcnQ9PG1vZGU+
IG9wdGlvbiBmcm9tIHRoZSBjb21tYW5kbGluZQotICAgICAgICBhbmQgZmluZCBhbGwgdGhlIGlu
c3RhbGxlZCBwbHVnaW5zIHRvIG1hcmsgdGhlbSBmb3IgcmV3cml0aW5nCi0gICAgICAgIGJ5IHRo
ZSBpbXBvcnRob29rLgotICAgICAgICAiIiIKLSAgICAgICAgbnMsIHVua25vd25fYXJncyA9IHNl
bGYuX3BhcnNlci5wYXJzZV9rbm93bl9hbmRfdW5rbm93bl9hcmdzKGFyZ3MpCi0gICAgICAgIG1v
ZGUgPSBucy5hc3NlcnRtb2RlCi0gICAgICAgIGlmIG1vZGUgPT0gJ3Jld3JpdGUnOgotICAgICAg
ICAgICAgdHJ5OgotICAgICAgICAgICAgICAgIGhvb2sgPSBfcHl0ZXN0LmFzc2VydGlvbi5pbnN0
YWxsX2ltcG9ydGhvb2soc2VsZikKLSAgICAgICAgICAgIGV4Y2VwdCBTeXN0ZW1FcnJvcjoKLSAg
ICAgICAgICAgICAgICBtb2RlID0gJ3BsYWluJwotICAgICAgICAgICAgZWxzZToKLSAgICAgICAg
ICAgICAgICBzZWxmLl9tYXJrX3BsdWdpbnNfZm9yX3Jld3JpdGUoaG9vaykKLSAgICAgICAgc2Vs
Zi5fd2Fybl9hYm91dF9taXNzaW5nX2Fzc2VydGlvbihtb2RlKQotCi0gICAgZGVmIF9tYXJrX3Bs
dWdpbnNfZm9yX3Jld3JpdGUoc2VsZiwgaG9vayk6Ci0gICAgICAgICIiIgotICAgICAgICBHaXZl
biBhbiBpbXBvcnRob29rLCBtYXJrIGZvciByZXdyaXRlIGFueSB0b3AtbGV2ZWwKLSAgICAgICAg
bW9kdWxlcyBvciBwYWNrYWdlcyBpbiB0aGUgZGlzdHJpYnV0aW9uIHBhY2thZ2UgZm9yCi0gICAg
ICAgIGFsbCBweXRlc3QgcGx1Z2lucy4KLSAgICAgICAgIiIiCi0gICAgICAgIGltcG9ydCBwa2df
cmVzb3VyY2VzCi0gICAgICAgIHNlbGYucGx1Z2lubWFuYWdlci5yZXdyaXRlX2hvb2sgPSBob29r
Ci0KLSAgICAgICAgIyAnUkVDT1JEJyBhdmFpbGFibGUgZm9yIHBsdWdpbnMgaW5zdGFsbGVkIG5v
cm1hbGx5IChwaXAgaW5zdGFsbCkKLSAgICAgICAgIyAnU09VUkNFUy50eHQnIGF2YWlsYWJsZSBm
b3IgcGx1Z2lucyBpbnN0YWxsZWQgaW4gZGV2IG1vZGUgKHBpcCBpbnN0YWxsIC1lKQotICAgICAg
ICAjIGZvciBpbnN0YWxsZWQgcGx1Z2lucyAnU09VUkNFUy50eHQnIHJldHVybnMgYW4gZW1wdHkg
bGlzdCwgYW5kIHZpY2UtdmVyc2EKLSAgICAgICAgIyBzbyBpdCBzaG91bGRuJ3QgYmUgYW4gaXNz
dWUKLSAgICAgICAgbWV0YWRhdGFfZmlsZXMgPSAnUkVDT1JEJywgJ1NPVVJDRVMudHh0JwotCi0g
ICAgICAgIHBhY2thZ2VfZmlsZXMgPSAoCi0gICAgICAgICAgICBlbnRyeS5zcGxpdCgnLCcpWzBd
Ci0gICAgICAgICAgICBmb3IgZW50cnlwb2ludCBpbiBwa2dfcmVzb3VyY2VzLml0ZXJfZW50cnlf
cG9pbnRzKCdweXRlc3QxMScpCi0gICAgICAgICAgICBmb3IgbWV0YWRhdGEgaW4gbWV0YWRhdGFf
ZmlsZXMKLSAgICAgICAgICAgIGZvciBlbnRyeSBpbiBlbnRyeXBvaW50LmRpc3QuX2dldF9tZXRh
ZGF0YShtZXRhZGF0YSkKLSAgICAgICAgKQotCi0gICAgICAgIGZvciBuYW1lIGluIF9pdGVyX3Jl
d3JpdGFibGVfbW9kdWxlcyhwYWNrYWdlX2ZpbGVzKToKLSAgICAgICAgICAgIGhvb2subWFya19y
ZXdyaXRlKG5hbWUpCi0KLSAgICBkZWYgX3dhcm5fYWJvdXRfbWlzc2luZ19hc3NlcnRpb24oc2Vs
ZiwgbW9kZSk6Ci0gICAgICAgIHRyeToKLSAgICAgICAgICAgIGFzc2VydCBGYWxzZQotICAgICAg
ICBleGNlcHQgQXNzZXJ0aW9uRXJyb3I6Ci0gICAgICAgICAgICBwYXNzCi0gICAgICAgIGVsc2U6
Ci0gICAgICAgICAgICBpZiBtb2RlID09ICdwbGFpbic6Ci0gICAgICAgICAgICAgICAgc3lzLnN0
ZGVyci53cml0ZSgiV0FSTklORzogQVNTRVJUSU9OUyBBUkUgTk9UIEVYRUNVVEVEIgotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIiBhbmQgRkFJTElORyBURVNUUyBXSUxMIFBBU1Mu
ICBBcmUgeW91IgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiB1c2luZyBweXRo
b24gLU8/IikKLSAgICAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAgICAgc3lzLnN0ZGVyci53
cml0ZSgiV0FSTklORzogYXNzZXJ0aW9ucyBub3QgaW4gdGVzdCBtb2R1bGVzIG9yIgotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIiBwbHVnaW5zIHdpbGwgYmUgaWdub3JlZCIKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIgYmVjYXVzZSBhc3NlcnQgc3RhdGVtZW50
cyBhcmUgbm90IGV4ZWN1dGVkICIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJi
eSB0aGUgdW5kZXJseWluZyBQeXRob24gaW50ZXJwcmV0ZXIgIgotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIihhcmUgeW91IHVzaW5nIHB5dGhvbiAtTz8pXG4iKQotCi0gICAgZGVm
IF9wcmVwYXJzZShzZWxmLCBhcmdzLCBhZGRvcHRzPVRydWUpOgotICAgICAgICBpZiBhZGRvcHRz
OgotICAgICAgICAgICAgYXJnc1s6XSA9IHNobGV4LnNwbGl0KG9zLmVudmlyb24uZ2V0KCdQWVRF
U1RfQURET1BUUycsICcnKSkgKyBhcmdzCi0gICAgICAgIHNlbGYuX2luaXRpbmkoYXJncykKLSAg
ICAgICAgaWYgYWRkb3B0czoKLSAgICAgICAgICAgIGFyZ3NbOl0gPSBzZWxmLmdldGluaSgiYWRk
b3B0cyIpICsgYXJncwotICAgICAgICBzZWxmLl9jaGVja3ZlcnNpb24oKQotICAgICAgICBzZWxm
Ll9jb25zaWRlcl9pbXBvcnRob29rKGFyZ3MpCi0gICAgICAgIHNlbGYucGx1Z2lubWFuYWdlci5j
b25zaWRlcl9wcmVwYXJzZShhcmdzKQotICAgICAgICBzZWxmLnBsdWdpbm1hbmFnZXIubG9hZF9z
ZXR1cHRvb2xzX2VudHJ5cG9pbnRzKCdweXRlc3QxMScpCi0gICAgICAgIHNlbGYucGx1Z2lubWFu
YWdlci5jb25zaWRlcl9lbnYoKQotICAgICAgICBzZWxmLmtub3duX2FyZ3NfbmFtZXNwYWNlID0g
bnMgPSBzZWxmLl9wYXJzZXIucGFyc2Vfa25vd25fYXJncyhhcmdzLCBuYW1lc3BhY2U9c2VsZi5v
cHRpb24uY29weSgpKQotICAgICAgICBpZiBzZWxmLmtub3duX2FyZ3NfbmFtZXNwYWNlLmNvbmZj
dXRkaXIgaXMgTm9uZSBhbmQgc2VsZi5pbmlmaWxlOgotICAgICAgICAgICAgY29uZmN1dGRpciA9
IHB5LnBhdGgubG9jYWwoc2VsZi5pbmlmaWxlKS5kaXJuYW1lCi0gICAgICAgICAgICBzZWxmLmtu
b3duX2FyZ3NfbmFtZXNwYWNlLmNvbmZjdXRkaXIgPSBjb25mY3V0ZGlyCi0gICAgICAgIHRyeToK
LSAgICAgICAgICAgIHNlbGYuaG9vay5weXRlc3RfbG9hZF9pbml0aWFsX2NvbmZ0ZXN0cyhlYXJs
eV9jb25maWc9c2VsZiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBhcmdzPWFyZ3MsIHBhcnNlcj1zZWxmLl9wYXJzZXIpCi0gICAgICAgIGV4Y2Vw
dCBDb25mdGVzdEltcG9ydEZhaWx1cmU6Ci0gICAgICAgICAgICBlID0gc3lzLmV4Y19pbmZvKClb
MV0KLSAgICAgICAgICAgIGlmIG5zLmhlbHAgb3IgbnMudmVyc2lvbjoKLSAgICAgICAgICAgICAg
ICAjIHdlIGRvbid0IHdhbnQgdG8gcHJldmVudCAtLWhlbHAvLS12ZXJzaW9uIHRvIHdvcmsKLSAg
ICAgICAgICAgICAgICAjIHNvIGp1c3QgbGV0IGlzIHBhc3MgYW5kIHByaW50IGEgd2FybmluZyBh
dCB0aGUgZW5kCi0gICAgICAgICAgICAgICAgc2VsZi5fd2FybigiY291bGQgbm90IGxvYWQgaW5p
dGlhbCBjb25mdGVzdHMgKCVzKVxuIiAlIGUucGF0aCkKLSAgICAgICAgICAgIGVsc2U6Ci0gICAg
ICAgICAgICAgICAgcmFpc2UKLQotICAgIGRlZiBfY2hlY2t2ZXJzaW9uKHNlbGYpOgotICAgICAg
ICBpbXBvcnQgcHl0ZXN0Ci0gICAgICAgIG1pbnZlciA9IHNlbGYuaW5pY2ZnLmdldCgnbWludmVy
c2lvbicsIE5vbmUpCi0gICAgICAgIGlmIG1pbnZlcjoKLSAgICAgICAgICAgIHZlciA9IG1pbnZl
ci5zcGxpdCgiLiIpCi0gICAgICAgICAgICBteXZlciA9IHB5dGVzdC5fX3ZlcnNpb25fXy5zcGxp
dCgiLiIpCi0gICAgICAgICAgICBpZiBteXZlciA8IHZlcjoKLSAgICAgICAgICAgICAgICByYWlz
ZSBweXRlc3QuVXNhZ2VFcnJvcigKLSAgICAgICAgICAgICAgICAgICAgIiVzOiVkOiByZXF1aXJl
cyBweXRlc3QtJXMsIGFjdHVhbCBweXRlc3QtJXMnIiAlICgKLSAgICAgICAgICAgICAgICAgICAg
ICAgIHNlbGYuaW5pY2ZnLmNvbmZpZy5wYXRoLCBzZWxmLmluaWNmZy5saW5lb2YoJ21pbnZlcnNp
b24nKSwKLSAgICAgICAgICAgICAgICAgICAgICAgIG1pbnZlciwgcHl0ZXN0Ll9fdmVyc2lvbl9f
KSkKLQotICAgIGRlZiBwYXJzZShzZWxmLCBhcmdzLCBhZGRvcHRzPVRydWUpOgotICAgICAgICAj
IHBhcnNlIGdpdmVuIGNtZGxpbmUgYXJndW1lbnRzIGludG8gdGhpcyBjb25maWcgb2JqZWN0Lgot
ICAgICAgICBhc3NlcnQgbm90IGhhc2F0dHIoc2VsZiwgJ2FyZ3MnKSwgKAotICAgICAgICAgICAg
ImNhbiBvbmx5IHBhcnNlIGNtZGxpbmUgYXJncyBhdCBtb3N0IG9uY2UgcGVyIENvbmZpZyBvYmpl
Y3QiKQotICAgICAgICBzZWxmLl9vcmlnYXJncyA9IGFyZ3MKLSAgICAgICAgc2VsZi5ob29rLnB5
dGVzdF9hZGRob29rcy5jYWxsX2hpc3RvcmljKAotICAgICAgICAgICAga3dhcmdzPWRpY3QocGx1
Z2lubWFuYWdlcj1zZWxmLnBsdWdpbm1hbmFnZXIpKQotICAgICAgICBzZWxmLl9wcmVwYXJzZShh
cmdzLCBhZGRvcHRzPWFkZG9wdHMpCi0gICAgICAgICMgWFhYIGRlcHJlY2F0ZWQgaG9vazoKLSAg
ICAgICAgc2VsZi5ob29rLnB5dGVzdF9jbWRsaW5lX3ByZXBhcnNlKGNvbmZpZz1zZWxmLCBhcmdz
PWFyZ3MpCi0gICAgICAgIHNlbGYuX3BhcnNlci5hZnRlcl9wcmVwYXJzZSA9IFRydWUKLSAgICAg
ICAgdHJ5OgotICAgICAgICAgICAgYXJncyA9IHNlbGYuX3BhcnNlci5wYXJzZV9zZXRvcHRpb24o
YXJncywgc2VsZi5vcHRpb24sIG5hbWVzcGFjZT1zZWxmLm9wdGlvbikKLSAgICAgICAgICAgIGlm
IG5vdCBhcmdzOgotICAgICAgICAgICAgICAgIGN3ZCA9IG9zLmdldGN3ZCgpCi0gICAgICAgICAg
ICAgICAgaWYgY3dkID09IHNlbGYucm9vdGRpcjoKLSAgICAgICAgICAgICAgICAgICAgYXJncyA9
IHNlbGYuZ2V0aW5pKCd0ZXN0cGF0aHMnKQotICAgICAgICAgICAgICAgIGlmIG5vdCBhcmdzOgot
ICAgICAgICAgICAgICAgICAgICBhcmdzID0gW2N3ZF0KLSAgICAgICAgICAgIHNlbGYuYXJncyA9
IGFyZ3MKLSAgICAgICAgZXhjZXB0IFByaW50SGVscDoKLSAgICAgICAgICAgIHBhc3MKLQotICAg
IGRlZiBhZGRpbml2YWx1ZV9saW5lKHNlbGYsIG5hbWUsIGxpbmUpOgotICAgICAgICAiIiIgYWRk
IGEgbGluZSB0byBhbiBpbmktZmlsZSBvcHRpb24uIFRoZSBvcHRpb24gbXVzdCBoYXZlIGJlZW4K
LSAgICAgICAgZGVjbGFyZWQgYnV0IG1pZ2h0IG5vdCB5ZXQgYmUgc2V0IGluIHdoaWNoIGNhc2Ug
dGhlIGxpbmUgYmVjb21lcyB0aGUKLSAgICAgICAgdGhlIGZpcnN0IGxpbmUgaW4gaXRzIHZhbHVl
LiAiIiIKLSAgICAgICAgeCA9IHNlbGYuZ2V0aW5pKG5hbWUpCi0gICAgICAgIGFzc2VydCBpc2lu
c3RhbmNlKHgsIGxpc3QpCi0gICAgICAgIHguYXBwZW5kKGxpbmUpICAjIG1vZGlmaWVzIHRoZSBj
YWNoZWQgbGlzdCBpbmxpbmUKLQotICAgIGRlZiBnZXRpbmkoc2VsZiwgbmFtZSk6Ci0gICAgICAg
ICIiIiByZXR1cm4gY29uZmlndXJhdGlvbiB2YWx1ZSBmcm9tIGFuIDpyZWY6YGluaSBmaWxlIDxp
bmlmaWxlcz5gLiBJZiB0aGUKLSAgICAgICAgc3BlY2lmaWVkIG5hbWUgaGFzbid0IGJlZW4gcmVn
aXN0ZXJlZCB0aHJvdWdoIGEgcHJpb3IKLSAgICAgICAgOnB5OmZ1bmM6YHBhcnNlci5hZGRpbmkg
PF9weXRlc3QuY29uZmlnLlBhcnNlci5hZGRpbmk+YAotICAgICAgICBjYWxsICh1c3VhbGx5IGZy
b20gYSBwbHVnaW4pLCBhIFZhbHVlRXJyb3IgaXMgcmFpc2VkLiAiIiIKLSAgICAgICAgdHJ5Ogot
ICAgICAgICAgICAgcmV0dXJuIHNlbGYuX2luaWNhY2hlW25hbWVdCi0gICAgICAgIGV4Y2VwdCBL
ZXlFcnJvcjoKLSAgICAgICAgICAgIHNlbGYuX2luaWNhY2hlW25hbWVdID0gdmFsID0gc2VsZi5f
Z2V0aW5pKG5hbWUpCi0gICAgICAgICAgICByZXR1cm4gdmFsCi0KLSAgICBkZWYgX2dldGluaShz
ZWxmLCBuYW1lKToKLSAgICAgICAgdHJ5OgotICAgICAgICAgICAgZGVzY3JpcHRpb24sIHR5cGUs
IGRlZmF1bHQgPSBzZWxmLl9wYXJzZXIuX2luaWRpY3RbbmFtZV0KLSAgICAgICAgZXhjZXB0IEtl
eUVycm9yOgotICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigidW5rbm93biBjb25maWd1cmF0
aW9uIHZhbHVlOiAlciIgJSAobmFtZSwpKQotICAgICAgICB2YWx1ZSA9IHNlbGYuX2dldF9vdmVy
cmlkZV9pbmlfdmFsdWUobmFtZSkKLSAgICAgICAgaWYgdmFsdWUgaXMgTm9uZToKLSAgICAgICAg
ICAgIHRyeToKLSAgICAgICAgICAgICAgICB2YWx1ZSA9IHNlbGYuaW5pY2ZnW25hbWVdCi0gICAg
ICAgICAgICBleGNlcHQgS2V5RXJyb3I6Ci0gICAgICAgICAgICAgICAgaWYgZGVmYXVsdCBpcyBu
b3QgTm9uZToKLSAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGRlZmF1bHQKLSAgICAgICAgICAg
ICAgICBpZiB0eXBlIGlzIE5vbmU6Ci0gICAgICAgICAgICAgICAgICAgIHJldHVybiAnJwotICAg
ICAgICAgICAgICAgIHJldHVybiBbXQotICAgICAgICBpZiB0eXBlID09ICJwYXRobGlzdCI6Ci0g
ICAgICAgICAgICBkcCA9IHB5LnBhdGgubG9jYWwoc2VsZi5pbmljZmcuY29uZmlnLnBhdGgpLmRp
cnBhdGgoKQotICAgICAgICAgICAgdmFsdWVzID0gW10KLSAgICAgICAgICAgIGZvciByZWxwYXRo
IGluIHNobGV4LnNwbGl0KHZhbHVlKToKLSAgICAgICAgICAgICAgICB2YWx1ZXMuYXBwZW5kKGRw
LmpvaW4ocmVscGF0aCwgYWJzPVRydWUpKQotICAgICAgICAgICAgcmV0dXJuIHZhbHVlcwotICAg
ICAgICBlbGlmIHR5cGUgPT0gImFyZ3MiOgotICAgICAgICAgICAgcmV0dXJuIHNobGV4LnNwbGl0
KHZhbHVlKQotICAgICAgICBlbGlmIHR5cGUgPT0gImxpbmVsaXN0IjoKLSAgICAgICAgICAgIHJl
dHVybiBbdCBmb3IgdCBpbiBtYXAobGFtYmRhIHg6IHguc3RyaXAoKSwgdmFsdWUuc3BsaXQoIlxu
IikpIGlmIHRdCi0gICAgICAgIGVsaWYgdHlwZSA9PSAiYm9vbCI6Ci0gICAgICAgICAgICByZXR1
cm4gYm9vbChfc3RydG9ib29sKHZhbHVlLnN0cmlwKCkpKQotICAgICAgICBlbHNlOgotICAgICAg
ICAgICAgYXNzZXJ0IHR5cGUgaXMgTm9uZQotICAgICAgICAgICAgcmV0dXJuIHZhbHVlCi0KLSAg
ICBkZWYgX2dldGNvbmZ0ZXN0X3BhdGhsaXN0KHNlbGYsIG5hbWUsIHBhdGgpOgotICAgICAgICB0
cnk6Ci0gICAgICAgICAgICBtb2QsIHJlbHJvb3RzID0gc2VsZi5wbHVnaW5tYW5hZ2VyLl9yZ2V0
X3dpdGhfY29uZm1vZChuYW1lLCBwYXRoKQotICAgICAgICBleGNlcHQgS2V5RXJyb3I6Ci0gICAg
ICAgICAgICByZXR1cm4gTm9uZQotICAgICAgICBtb2RwYXRoID0gcHkucGF0aC5sb2NhbChtb2Qu
X19maWxlX18pLmRpcnBhdGgoKQotICAgICAgICB2YWx1ZXMgPSBbXQotICAgICAgICBmb3IgcmVs
cm9vdCBpbiByZWxyb290czoKLSAgICAgICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKHJlbHJvb3Qs
IHB5LnBhdGgubG9jYWwpOgotICAgICAgICAgICAgICAgIHJlbHJvb3QgPSByZWxyb290LnJlcGxh
Y2UoIi8iLCBweS5wYXRoLmxvY2FsLnNlcCkKLSAgICAgICAgICAgICAgICByZWxyb290ID0gbW9k
cGF0aC5qb2luKHJlbHJvb3QsIGFicz1UcnVlKQotICAgICAgICAgICAgdmFsdWVzLmFwcGVuZChy
ZWxyb290KQotICAgICAgICByZXR1cm4gdmFsdWVzCi0KLSAgICBkZWYgX2dldF9vdmVycmlkZV9p
bmlfdmFsdWUoc2VsZiwgbmFtZSk6Ci0gICAgICAgIHZhbHVlID0gTm9uZQotICAgICAgICAjIG92
ZXJyaWRlX2luaSBpcyBhIGxpc3Qgb2YgbGlzdCwgdG8gc3VwcG9ydCBib3RoIC1vIGZvbzE9YmFy
MSBmb28yPWJhcjIgYW5kCi0gICAgICAgICMgYW5kIC1vIGZvbzE9YmFyMSAtbyBmb28yPWJhcjIg
b3B0aW9ucwotICAgICAgICAjIGFsd2F5cyB1c2UgdGhlIGxhc3QgaXRlbSBpZiBtdWx0aXBsZSB2
YWx1ZSBzZXQgZm9yIHNhbWUgaW5pLW5hbWUsCi0gICAgICAgICMgZS5nLiAtbyBmb289YmFyMSAt
byBmb289YmFyMiB3aWxsIHNldCBmb28gdG8gYmFyMgotICAgICAgICBmb3IgaW5pX2NvbmZpZ19s
aXN0IGluIHNlbGYuX292ZXJyaWRlX2luaToKLSAgICAgICAgICAgIGZvciBpbmlfY29uZmlnIGlu
IGluaV9jb25maWdfbGlzdDoKLSAgICAgICAgICAgICAgICB0cnk6Ci0gICAgICAgICAgICAgICAg
ICAgIChrZXksIHVzZXJfaW5pX3ZhbHVlKSA9IGluaV9jb25maWcuc3BsaXQoIj0iLCAxKQotICAg
ICAgICAgICAgICAgIGV4Y2VwdCBWYWx1ZUVycm9yOgotICAgICAgICAgICAgICAgICAgICByYWlz
ZSBVc2FnZUVycm9yKCItby8tLW92ZXJyaWRlLWluaSBleHBlY3RzIG9wdGlvbj12YWx1ZSBzdHls
ZS4iKQotICAgICAgICAgICAgICAgIGlmIGtleSA9PSBuYW1lOgotICAgICAgICAgICAgICAgICAg
ICB2YWx1ZSA9IHVzZXJfaW5pX3ZhbHVlCi0gICAgICAgIHJldHVybiB2YWx1ZQotCi0gICAgZGVm
IGdldG9wdGlvbihzZWxmLCBuYW1lLCBkZWZhdWx0PW5vdHNldCwgc2tpcD1GYWxzZSk6Ci0gICAg
ICAgICIiIiByZXR1cm4gY29tbWFuZCBsaW5lIG9wdGlvbiB2YWx1ZS4KLQotICAgICAgICA6YXJn
IG5hbWU6IG5hbWUgb2YgdGhlIG9wdGlvbi4gIFlvdSBtYXkgYWxzbyBzcGVjaWZ5Ci0gICAgICAg
ICAgICB0aGUgbGl0ZXJhbCBgYC0tT1BUYGAgb3B0aW9uIGluc3RlYWQgb2YgdGhlICJkZXN0IiBv
cHRpb24gbmFtZS4KLSAgICAgICAgOmFyZyBkZWZhdWx0OiBkZWZhdWx0IHZhbHVlIGlmIG5vIG9w
dGlvbiBvZiB0aGF0IG5hbWUgZXhpc3RzLgotICAgICAgICA6YXJnIHNraXA6IGlmIFRydWUgcmFp
c2UgcHl0ZXN0LnNraXAgaWYgb3B0aW9uIGRvZXMgbm90IGV4aXN0cwotICAgICAgICAgICAgb3Ig
aGFzIGEgTm9uZSB2YWx1ZS4KLSAgICAgICAgIiIiCi0gICAgICAgIG5hbWUgPSBzZWxmLl9vcHQy
ZGVzdC5nZXQobmFtZSwgbmFtZSkKLSAgICAgICAgdHJ5OgotICAgICAgICAgICAgdmFsID0gZ2V0
YXR0cihzZWxmLm9wdGlvbiwgbmFtZSkKLSAgICAgICAgICAgIGlmIHZhbCBpcyBOb25lIGFuZCBz
a2lwOgotICAgICAgICAgICAgICAgIHJhaXNlIEF0dHJpYnV0ZUVycm9yKG5hbWUpCi0gICAgICAg
ICAgICByZXR1cm4gdmFsCi0gICAgICAgIGV4Y2VwdCBBdHRyaWJ1dGVFcnJvcjoKLSAgICAgICAg
ICAgIGlmIGRlZmF1bHQgaXMgbm90IG5vdHNldDoKLSAgICAgICAgICAgICAgICByZXR1cm4gZGVm
YXVsdAotICAgICAgICAgICAgaWYgc2tpcDoKLSAgICAgICAgICAgICAgICBpbXBvcnQgcHl0ZXN0
Ci0gICAgICAgICAgICAgICAgcHl0ZXN0LnNraXAoIm5vICVyIG9wdGlvbiBmb3VuZCIgJSAobmFt
ZSwpKQotICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigibm8gb3B0aW9uIG5hbWVkICVyIiAl
IChuYW1lLCkpCi0KLSAgICBkZWYgZ2V0dmFsdWUoc2VsZiwgbmFtZSwgcGF0aD1Ob25lKToKLSAg
ICAgICAgIiIiIChkZXByZWNhdGVkLCB1c2UgZ2V0b3B0aW9uKCkpICIiIgotICAgICAgICByZXR1
cm4gc2VsZi5nZXRvcHRpb24obmFtZSkKLQotICAgIGRlZiBnZXR2YWx1ZW9yc2tpcChzZWxmLCBu
YW1lLCBwYXRoPU5vbmUpOgotICAgICAgICAiIiIgKGRlcHJlY2F0ZWQsIHVzZSBnZXRvcHRpb24o
c2tpcD1UcnVlKSkgIiIiCi0gICAgICAgIHJldHVybiBzZWxmLmdldG9wdGlvbihuYW1lLCBza2lw
PVRydWUpCi0KLQotZGVmIGV4aXN0cyhwYXRoLCBpZ25vcmU9RW52aXJvbm1lbnRFcnJvcik6Ci0g
ICAgdHJ5OgotICAgICAgICByZXR1cm4gcGF0aC5jaGVjaygpCi0gICAgZXhjZXB0IGlnbm9yZToK
LSAgICAgICAgcmV0dXJuIEZhbHNlCi0KLQotZGVmIGdldGNmZyhhcmdzLCB3YXJuZnVuYz1Ob25l
KToKLSAgICAiIiIKLSAgICBTZWFyY2ggdGhlIGxpc3Qgb2YgYXJndW1lbnRzIGZvciBhIHZhbGlk
IGluaS1maWxlIGZvciBweXRlc3QsCi0gICAgYW5kIHJldHVybiBhIHR1cGxlIG9mIChyb290ZGly
LCBpbmlmaWxlLCBjZmctZGljdCkuCi0KLSAgICBub3RlOiB3YXJuZnVuYyBpcyBhbiBvcHRpb25h
bCBmdW5jdGlvbiB1c2VkIHRvIHdhcm4KLSAgICAgICAgYWJvdXQgaW5pLWZpbGVzIHRoYXQgdXNl
IGRlcHJlY2F0ZWQgZmVhdHVyZXMuCi0gICAgICAgIFRoaXMgcGFyYW1ldGVyIHNob3VsZCBiZSBy
ZW1vdmVkIHdoZW4gcHl0ZXN0Ci0gICAgICAgIGFkb3B0cyBzdGFuZGFyZCBkZXByZWNhdGlvbiB3
YXJuaW5ncyAoIzE4MDQpLgotICAgICIiIgotICAgIGZyb20gX3B5dGVzdC5kZXByZWNhdGVkIGlt
cG9ydCBTRVRVUF9DRkdfUFlURVNUCi0gICAgaW5pYmFzZW5hbWVzID0gWyJweXRlc3QuaW5pIiwg
InRveC5pbmkiLCAic2V0dXAuY2ZnIl0KLSAgICBhcmdzID0gW3ggZm9yIHggaW4gYXJncyBpZiBu
b3Qgc3RyKHgpLnN0YXJ0c3dpdGgoIi0iKV0KLSAgICBpZiBub3QgYXJnczoKLSAgICAgICAgYXJn
cyA9IFtweS5wYXRoLmxvY2FsKCldCi0gICAgZm9yIGFyZyBpbiBhcmdzOgotICAgICAgICBhcmcg
PSBweS5wYXRoLmxvY2FsKGFyZykKLSAgICAgICAgZm9yIGJhc2UgaW4gYXJnLnBhcnRzKHJldmVy
c2U9VHJ1ZSk6Ci0gICAgICAgICAgICBmb3IgaW5pYmFzZW5hbWUgaW4gaW5pYmFzZW5hbWVzOgot
ICAgICAgICAgICAgICAgIHAgPSBiYXNlLmpvaW4oaW5pYmFzZW5hbWUpCi0gICAgICAgICAgICAg
ICAgaWYgZXhpc3RzKHApOgotICAgICAgICAgICAgICAgICAgICBpbmljb25maWcgPSBweS5pbmlj
b25maWcuSW5pQ29uZmlnKHApCi0gICAgICAgICAgICAgICAgICAgIGlmICdweXRlc3QnIGluIGlu
aWNvbmZpZy5zZWN0aW9uczoKLSAgICAgICAgICAgICAgICAgICAgICAgIGlmIGluaWJhc2VuYW1l
ID09ICdzZXR1cC5jZmcnIGFuZCB3YXJuZnVuYzoKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICB3YXJuZnVuYygnQzEnLCBTRVRVUF9DRkdfUFlURVNUKQotICAgICAgICAgICAgICAgICAgICAg
ICAgcmV0dXJuIGJhc2UsIHAsIGluaWNvbmZpZ1sncHl0ZXN0J10KLSAgICAgICAgICAgICAgICAg
ICAgaWYgaW5pYmFzZW5hbWUgPT0gJ3NldHVwLmNmZycgYW5kICd0b29sOnB5dGVzdCcgaW4gaW5p
Y29uZmlnLnNlY3Rpb25zOgotICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGJhc2UsIHAs
IGluaWNvbmZpZ1sndG9vbDpweXRlc3QnXQotICAgICAgICAgICAgICAgICAgICBlbGlmIGluaWJh
c2VuYW1lID09ICJweXRlc3QuaW5pIjoKLSAgICAgICAgICAgICAgICAgICAgICAgICMgYWxsb3dl
ZCB0byBiZSBlbXB0eQotICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGJhc2UsIHAsIHt9
Ci0gICAgcmV0dXJuIE5vbmUsIE5vbmUsIE5vbmUKLQotCi1kZWYgZ2V0X2NvbW1vbl9hbmNlc3Rv
cihwYXRocyk6Ci0gICAgY29tbW9uX2FuY2VzdG9yID0gTm9uZQotICAgIGZvciBwYXRoIGluIHBh
dGhzOgotICAgICAgICBpZiBub3QgcGF0aC5leGlzdHMoKToKLSAgICAgICAgICAgIGNvbnRpbnVl
Ci0gICAgICAgIGlmIGNvbW1vbl9hbmNlc3RvciBpcyBOb25lOgotICAgICAgICAgICAgY29tbW9u
X2FuY2VzdG9yID0gcGF0aAotICAgICAgICBlbHNlOgotICAgICAgICAgICAgaWYgcGF0aC5yZWx0
byhjb21tb25fYW5jZXN0b3IpIG9yIHBhdGggPT0gY29tbW9uX2FuY2VzdG9yOgotICAgICAgICAg
ICAgICAgIGNvbnRpbnVlCi0gICAgICAgICAgICBlbGlmIGNvbW1vbl9hbmNlc3Rvci5yZWx0byhw
YXRoKToKLSAgICAgICAgICAgICAgICBjb21tb25fYW5jZXN0b3IgPSBwYXRoCi0gICAgICAgICAg
ICBlbHNlOgotICAgICAgICAgICAgICAgIHNoYXJlZCA9IHBhdGguY29tbW9uKGNvbW1vbl9hbmNl
c3RvcikKLSAgICAgICAgICAgICAgICBpZiBzaGFyZWQgaXMgbm90IE5vbmU6Ci0gICAgICAgICAg
ICAgICAgICAgIGNvbW1vbl9hbmNlc3RvciA9IHNoYXJlZAotICAgIGlmIGNvbW1vbl9hbmNlc3Rv
ciBpcyBOb25lOgotICAgICAgICBjb21tb25fYW5jZXN0b3IgPSBweS5wYXRoLmxvY2FsKCkKLSAg
ICBlbGlmIGNvbW1vbl9hbmNlc3Rvci5pc2ZpbGUoKToKLSAgICAgICAgY29tbW9uX2FuY2VzdG9y
ID0gY29tbW9uX2FuY2VzdG9yLmRpcnBhdGgoKQotICAgIHJldHVybiBjb21tb25fYW5jZXN0b3IK
LQotCi1kZWYgZ2V0X2RpcnNfZnJvbV9hcmdzKGFyZ3MpOgotICAgIGRlZiBpc19vcHRpb24oeCk6
Ci0gICAgICAgIHJldHVybiBzdHIoeCkuc3RhcnRzd2l0aCgnLScpCi0KLSAgICBkZWYgZ2V0X2Zp
bGVfcGFydF9mcm9tX25vZGVfaWQoeCk6Ci0gICAgICAgIHJldHVybiBzdHIoeCkuc3BsaXQoJzo6
JylbMF0KLQotICAgIGRlZiBnZXRfZGlyX2Zyb21fcGF0aChwYXRoKToKLSAgICAgICAgaWYgcGF0
aC5pc2RpcigpOgotICAgICAgICAgICAgcmV0dXJuIHBhdGgKLSAgICAgICAgcmV0dXJuIHB5LnBh
dGgubG9jYWwocGF0aC5kaXJuYW1lKQotCi0gICAgIyBUaGVzZSBsb29rIGxpa2UgcGF0aHMgYnV0
IG1heSBub3QgZXhpc3QKLSAgICBwb3NzaWJsZV9wYXRocyA9ICgKLSAgICAgICAgcHkucGF0aC5s
b2NhbChnZXRfZmlsZV9wYXJ0X2Zyb21fbm9kZV9pZChhcmcpKQotICAgICAgICBmb3IgYXJnIGlu
IGFyZ3MKLSAgICAgICAgaWYgbm90IGlzX29wdGlvbihhcmcpCi0gICAgKQotCi0gICAgcmV0dXJu
IFsKLSAgICAgICAgZ2V0X2Rpcl9mcm9tX3BhdGgocGF0aCkKLSAgICAgICAgZm9yIHBhdGggaW4g
cG9zc2libGVfcGF0aHMKLSAgICAgICAgaWYgcGF0aC5leGlzdHMoKQotICAgIF0KLQotCi1kZWYg
ZGV0ZXJtaW5lX3NldHVwKGluaWZpbGUsIGFyZ3MsIHdhcm5mdW5jPU5vbmUpOgotICAgIGRpcnMg
PSBnZXRfZGlyc19mcm9tX2FyZ3MoYXJncykKLSAgICBpZiBpbmlmaWxlOgotICAgICAgICBpbmlj
b25maWcgPSBweS5pbmljb25maWcuSW5pQ29uZmlnKGluaWZpbGUpCi0gICAgICAgIHRyeToKLSAg
ICAgICAgICAgIGluaWNmZyA9IGluaWNvbmZpZ1sicHl0ZXN0Il0KLSAgICAgICAgZXhjZXB0IEtl
eUVycm9yOgotICAgICAgICAgICAgaW5pY2ZnID0gTm9uZQotICAgICAgICByb290ZGlyID0gZ2V0
X2NvbW1vbl9hbmNlc3RvcihkaXJzKQotICAgIGVsc2U6Ci0gICAgICAgIGFuY2VzdG9yID0gZ2V0
X2NvbW1vbl9hbmNlc3RvcihkaXJzKQotICAgICAgICByb290ZGlyLCBpbmlmaWxlLCBpbmljZmcg
PSBnZXRjZmcoW2FuY2VzdG9yXSwgd2FybmZ1bmM9d2FybmZ1bmMpCi0gICAgICAgIGlmIHJvb3Rk
aXIgaXMgTm9uZToKLSAgICAgICAgICAgIGZvciByb290ZGlyIGluIGFuY2VzdG9yLnBhcnRzKHJl
dmVyc2U9VHJ1ZSk6Ci0gICAgICAgICAgICAgICAgaWYgcm9vdGRpci5qb2luKCJzZXR1cC5weSIp
LmV4aXN0cygpOgotICAgICAgICAgICAgICAgICAgICBicmVhawotICAgICAgICAgICAgZWxzZToK
LSAgICAgICAgICAgICAgICByb290ZGlyLCBpbmlmaWxlLCBpbmljZmcgPSBnZXRjZmcoZGlycywg
d2FybmZ1bmM9d2FybmZ1bmMpCi0gICAgICAgICAgICAgICAgaWYgcm9vdGRpciBpcyBOb25lOgot
ICAgICAgICAgICAgICAgICAgICByb290ZGlyID0gZ2V0X2NvbW1vbl9hbmNlc3RvcihbcHkucGF0
aC5sb2NhbCgpLCBhbmNlc3Rvcl0pCi0gICAgICAgICAgICAgICAgICAgIGlzX2ZzX3Jvb3QgPSBv
cy5wYXRoLnNwbGl0ZHJpdmUoc3RyKHJvb3RkaXIpKVsxXSA9PSAnLycKLSAgICAgICAgICAgICAg
ICAgICAgaWYgaXNfZnNfcm9vdDoKLSAgICAgICAgICAgICAgICAgICAgICAgIHJvb3RkaXIgPSBh
bmNlc3RvcgotICAgIHJldHVybiByb290ZGlyLCBpbmlmaWxlLCBpbmljZmcgb3Ige30KLQotCi1k
ZWYgc2V0bnMob2JqLCBkaWMpOgotICAgIGltcG9ydCBweXRlc3QKLSAgICBmb3IgbmFtZSwgdmFs
dWUgaW4gZGljLml0ZW1zKCk6Ci0gICAgICAgIGlmIGlzaW5zdGFuY2UodmFsdWUsIGRpY3QpOgot
ICAgICAgICAgICAgbW9kID0gZ2V0YXR0cihvYmosIG5hbWUsIE5vbmUpCi0gICAgICAgICAgICBp
ZiBtb2QgaXMgTm9uZToKLSAgICAgICAgICAgICAgICBtb2RuYW1lID0gInB5dGVzdC4lcyIgJSBu
YW1lCi0gICAgICAgICAgICAgICAgbW9kID0gdHlwZXMuTW9kdWxlVHlwZShtb2RuYW1lKQotICAg
ICAgICAgICAgICAgIHN5cy5tb2R1bGVzW21vZG5hbWVdID0gbW9kCi0gICAgICAgICAgICAgICAg
bW9kLl9fYWxsX18gPSBbXQotICAgICAgICAgICAgICAgIHNldGF0dHIob2JqLCBuYW1lLCBtb2Qp
Ci0gICAgICAgICAgICBvYmouX19hbGxfXy5hcHBlbmQobmFtZSkKLSAgICAgICAgICAgIHNldG5z
KG1vZCwgdmFsdWUpCi0gICAgICAgIGVsc2U6Ci0gICAgICAgICAgICBzZXRhdHRyKG9iaiwgbmFt
ZSwgdmFsdWUpCi0gICAgICAgICAgICBvYmouX19hbGxfXy5hcHBlbmQobmFtZSkKLSAgICAgICAg
ICAgICMgaWYgb2JqICE9IHB5dGVzdDoKLSAgICAgICAgICAgICMgICAgcHl0ZXN0Ll9fYWxsX18u
YXBwZW5kKG5hbWUpCi0gICAgICAgICAgICBzZXRhdHRyKHB5dGVzdCwgbmFtZSwgdmFsdWUpCi0K
LQotZGVmIGNyZWF0ZV90ZXJtaW5hbF93cml0ZXIoY29uZmlnLCAqYXJncywgKiprd2FyZ3MpOgot
ICAgICIiIkNyZWF0ZSBhIFRlcm1pbmFsV3JpdGVyIGluc3RhbmNlIGNvbmZpZ3VyZWQgYWNjb3Jk
aW5nIHRvIHRoZSBvcHRpb25zCi0gICAgaW4gdGhlIGNvbmZpZyBvYmplY3QuIEV2ZXJ5IGNvZGUg
d2hpY2ggcmVxdWlyZXMgYSBUZXJtaW5hbFdyaXRlciBvYmplY3QKLSAgICBhbmQgaGFzIGFjY2Vz
cyB0byBhIGNvbmZpZyBvYmplY3Qgc2hvdWxkIHVzZSB0aGlzIGZ1bmN0aW9uLgotICAgICIiIgot
ICAgIHR3ID0gcHkuaW8uVGVybWluYWxXcml0ZXIoKmFyZ3MsICoqa3dhcmdzKQotICAgIGlmIGNv
bmZpZy5vcHRpb24uY29sb3IgPT0gJ3llcyc6Ci0gICAgICAgIHR3Lmhhc21hcmt1cCA9IFRydWUK
LSAgICBpZiBjb25maWcub3B0aW9uLmNvbG9yID09ICdubyc6Ci0gICAgICAgIHR3Lmhhc21hcmt1
cCA9IEZhbHNlCi0gICAgcmV0dXJuIHR3Ci0KLQotZGVmIF9zdHJ0b2Jvb2wodmFsKToKLSAgICAi
IiJDb252ZXJ0IGEgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRydXRoIHRvIHRydWUgKDEpIG9y
IGZhbHNlICgwKS4KLQotICAgIFRydWUgdmFsdWVzIGFyZSAneScsICd5ZXMnLCAndCcsICd0cnVl
JywgJ29uJywgYW5kICcxJzsgZmFsc2UgdmFsdWVzCi0gICAgYXJlICduJywgJ25vJywgJ2YnLCAn
ZmFsc2UnLCAnb2ZmJywgYW5kICcwJy4gIFJhaXNlcyBWYWx1ZUVycm9yIGlmCi0gICAgJ3ZhbCcg
aXMgYW55dGhpbmcgZWxzZS4KLQotICAgIC4uIG5vdGU6OiBjb3BpZWQgZnJvbSBkaXN0dXRpbHMu
dXRpbAotICAgICIiIgotICAgIHZhbCA9IHZhbC5sb3dlcigpCi0gICAgaWYgdmFsIGluICgneScs
ICd5ZXMnLCAndCcsICd0cnVlJywgJ29uJywgJzEnKToKLSAgICAgICAgcmV0dXJuIDEKLSAgICBl
bGlmIHZhbCBpbiAoJ24nLCAnbm8nLCAnZicsICdmYWxzZScsICdvZmYnLCAnMCcpOgotICAgICAg
ICByZXR1cm4gMAotICAgIGVsc2U6Ci0gICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoImludmFsaWQg
dHJ1dGggdmFsdWUgJXIiICUgKHZhbCwpKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvX3B5dGVz
dC9kZWJ1Z2dpbmcucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9fcHl0ZXN0L2RlYnVnZ2luZy5weQpkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZDdkY2E3ODA5NTZlYzM5NzYyZDA0Y2FhMTdmOWQwZmIz
YmRlZmZjMi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3Bh
cnR5L3B5dGVzdC9fcHl0ZXN0L2RlYnVnZ2luZy5weQorKysgL2Rldi9udWxsCkBAIC0xLDEyMyAr
MCwwIEBACi0iIiIgaW50ZXJhY3RpdmUgZGVidWdnaW5nIHdpdGggUERCLCB0aGUgUHl0aG9uIERl
YnVnZ2VyLiAiIiIKLWZyb20gX19mdXR1cmVfXyBpbXBvcnQgYWJzb2x1dGVfaW1wb3J0LCBkaXZp
c2lvbiwgcHJpbnRfZnVuY3Rpb24KLWltcG9ydCBwZGIKLWltcG9ydCBzeXMKLQotCi1kZWYgcHl0
ZXN0X2FkZG9wdGlvbihwYXJzZXIpOgotICAgIGdyb3VwID0gcGFyc2VyLmdldGdyb3VwKCJnZW5l
cmFsIikKLSAgICBncm91cC5fYWRkb3B0aW9uKAotICAgICAgICAnLS1wZGInLCBkZXN0PSJ1c2Vw
ZGIiLCBhY3Rpb249InN0b3JlX3RydWUiLAotICAgICAgICBoZWxwPSJzdGFydCB0aGUgaW50ZXJh
Y3RpdmUgUHl0aG9uIGRlYnVnZ2VyIG9uIGVycm9ycy4iKQotICAgIGdyb3VwLl9hZGRvcHRpb24o
Ci0gICAgICAgICctLXBkYmNscycsIGRlc3Q9InVzZXBkYl9jbHMiLCBtZXRhdmFyPSJtb2R1bGVu
YW1lOmNsYXNzbmFtZSIsCi0gICAgICAgIGhlbHA9InN0YXJ0IGEgY3VzdG9tIGludGVyYWN0aXZl
IFB5dGhvbiBkZWJ1Z2dlciBvbiBlcnJvcnMuICIKLSAgICAgICAgICAgICAiRm9yIGV4YW1wbGU6
IC0tcGRiY2xzPUlQeXRob24udGVybWluYWwuZGVidWdnZXI6VGVybWluYWxQZGIiKQotCi0KLWRl
ZiBweXRlc3RfY29uZmlndXJlKGNvbmZpZyk6Ci0gICAgaWYgY29uZmlnLmdldHZhbHVlKCJ1c2Vw
ZGJfY2xzIik6Ci0gICAgICAgIG1vZG5hbWUsIGNsYXNzbmFtZSA9IGNvbmZpZy5nZXR2YWx1ZSgi
dXNlcGRiX2NscyIpLnNwbGl0KCI6IikKLSAgICAgICAgX19pbXBvcnRfXyhtb2RuYW1lKQotICAg
ICAgICBwZGJfY2xzID0gZ2V0YXR0cihzeXMubW9kdWxlc1ttb2RuYW1lXSwgY2xhc3NuYW1lKQot
ICAgIGVsc2U6Ci0gICAgICAgIHBkYl9jbHMgPSBwZGIuUGRiCi0KLSAgICBpZiBjb25maWcuZ2V0
dmFsdWUoInVzZXBkYiIpOgotICAgICAgICBjb25maWcucGx1Z2lubWFuYWdlci5yZWdpc3RlcihQ
ZGJJbnZva2UoKSwgJ3BkYmludm9rZScpCi0KLSAgICBvbGQgPSAocGRiLnNldF90cmFjZSwgcHl0
ZXN0UERCLl9wbHVnaW5tYW5hZ2VyKQotCi0gICAgZGVmIGZpbigpOgotICAgICAgICBwZGIuc2V0
X3RyYWNlLCBweXRlc3RQREIuX3BsdWdpbm1hbmFnZXIgPSBvbGQKLSAgICAgICAgcHl0ZXN0UERC
Ll9jb25maWcgPSBOb25lCi0gICAgICAgIHB5dGVzdFBEQi5fcGRiX2NscyA9IHBkYi5QZGIKLQot
ICAgIHBkYi5zZXRfdHJhY2UgPSBweXRlc3RQREIuc2V0X3RyYWNlCi0gICAgcHl0ZXN0UERCLl9w
bHVnaW5tYW5hZ2VyID0gY29uZmlnLnBsdWdpbm1hbmFnZXIKLSAgICBweXRlc3RQREIuX2NvbmZp
ZyA9IGNvbmZpZwotICAgIHB5dGVzdFBEQi5fcGRiX2NscyA9IHBkYl9jbHMKLSAgICBjb25maWcu
X2NsZWFudXAuYXBwZW5kKGZpbikKLQotCi1jbGFzcyBweXRlc3RQREI6Ci0gICAgIiIiIFBzZXVk
byBQREIgdGhhdCBkZWZlcnMgdG8gdGhlIHJlYWwgcGRiLiAiIiIKLSAgICBfcGx1Z2lubWFuYWdl
ciA9IE5vbmUKLSAgICBfY29uZmlnID0gTm9uZQotICAgIF9wZGJfY2xzID0gcGRiLlBkYgotCi0g
ICAgQGNsYXNzbWV0aG9kCi0gICAgZGVmIHNldF90cmFjZShjbHMpOgotICAgICAgICAiIiIgaW52
b2tlIFBEQiBzZXRfdHJhY2UgZGVidWdnaW5nLCBkcm9wcGluZyBhbnkgSU8gY2FwdHVyaW5nLiAi
IiIKLSAgICAgICAgaW1wb3J0IF9weXRlc3QuY29uZmlnCi0gICAgICAgIGZyYW1lID0gc3lzLl9n
ZXRmcmFtZSgpLmZfYmFjawotICAgICAgICBpZiBjbHMuX3BsdWdpbm1hbmFnZXIgaXMgbm90IE5v
bmU6Ci0gICAgICAgICAgICBjYXBtYW4gPSBjbHMuX3BsdWdpbm1hbmFnZXIuZ2V0cGx1Z2luKCJj
YXB0dXJlbWFuYWdlciIpCi0gICAgICAgICAgICBpZiBjYXBtYW46Ci0gICAgICAgICAgICAgICAg
Y2FwbWFuLnN1c3BlbmRfZ2xvYmFsX2NhcHR1cmUoaW5fPVRydWUpCi0gICAgICAgICAgICB0dyA9
IF9weXRlc3QuY29uZmlnLmNyZWF0ZV90ZXJtaW5hbF93cml0ZXIoY2xzLl9jb25maWcpCi0gICAg
ICAgICAgICB0dy5saW5lKCkKLSAgICAgICAgICAgIHR3LnNlcCgiPiIsICJQREIgc2V0X3RyYWNl
IChJTy1jYXB0dXJpbmcgdHVybmVkIG9mZikiKQotICAgICAgICAgICAgY2xzLl9wbHVnaW5tYW5h
Z2VyLmhvb2sucHl0ZXN0X2VudGVyX3BkYihjb25maWc9Y2xzLl9jb25maWcpCi0gICAgICAgIGNs
cy5fcGRiX2NscygpLnNldF90cmFjZShmcmFtZSkKLQotCi1jbGFzcyBQZGJJbnZva2U6Ci0gICAg
ZGVmIHB5dGVzdF9leGNlcHRpb25faW50ZXJhY3Qoc2VsZiwgbm9kZSwgY2FsbCwgcmVwb3J0KToK
LSAgICAgICAgY2FwbWFuID0gbm9kZS5jb25maWcucGx1Z2lubWFuYWdlci5nZXRwbHVnaW4oImNh
cHR1cmVtYW5hZ2VyIikKLSAgICAgICAgaWYgY2FwbWFuOgotICAgICAgICAgICAgb3V0LCBlcnIg
PSBjYXBtYW4uc3VzcGVuZF9nbG9iYWxfY2FwdHVyZShpbl89VHJ1ZSkKLSAgICAgICAgICAgIHN5
cy5zdGRvdXQud3JpdGUob3V0KQotICAgICAgICAgICAgc3lzLnN0ZG91dC53cml0ZShlcnIpCi0g
ICAgICAgIF9lbnRlcl9wZGIobm9kZSwgY2FsbC5leGNpbmZvLCByZXBvcnQpCi0KLSAgICBkZWYg
cHl0ZXN0X2ludGVybmFsZXJyb3Ioc2VsZiwgZXhjcmVwciwgZXhjaW5mbyk6Ci0gICAgICAgIGZv
ciBsaW5lIGluIHN0cihleGNyZXByKS5zcGxpdCgiXG4iKToKLSAgICAgICAgICAgIHN5cy5zdGRl
cnIud3JpdGUoIklOVEVSTkFMRVJST1I+ICVzXG4iICUgbGluZSkKLSAgICAgICAgICAgIHN5cy5z
dGRlcnIuZmx1c2goKQotICAgICAgICB0YiA9IF9wb3N0bW9ydGVtX3RyYWNlYmFjayhleGNpbmZv
KQotICAgICAgICBwb3N0X21vcnRlbSh0YikKLQotCi1kZWYgX2VudGVyX3BkYihub2RlLCBleGNp
bmZvLCByZXApOgotICAgICMgWFhYIHdlIHJlLXVzZSB0aGUgVGVybWluYWxSZXBvcnRlcidzIHRl
cm1pbmFsd3JpdGVyCi0gICAgIyBiZWNhdXNlIHRoaXMgc2VlbXMgdG8gYXZvaWQgc29tZSBlbmNv
ZGluZyByZWxhdGVkIHRyb3VibGVzCi0gICAgIyBmb3Igbm90IGNvbXBsZXRlbHkgY2xlYXIgcmVh
c29ucy4KLSAgICB0dyA9IG5vZGUuY29uZmlnLnBsdWdpbm1hbmFnZXIuZ2V0cGx1Z2luKCJ0ZXJt
aW5hbHJlcG9ydGVyIikuX3R3Ci0gICAgdHcubGluZSgpCi0gICAgdHcuc2VwKCI+IiwgInRyYWNl
YmFjayIpCi0gICAgcmVwLnRvdGVybWluYWwodHcpCi0gICAgdHcuc2VwKCI+IiwgImVudGVyaW5n
IFBEQiIpCi0gICAgdGIgPSBfcG9zdG1vcnRlbV90cmFjZWJhY2soZXhjaW5mbykKLSAgICBwb3N0
X21vcnRlbSh0YikKLSAgICByZXAuX3BkYnNob3duID0gVHJ1ZQotICAgIHJldHVybiByZXAKLQot
Ci1kZWYgX3Bvc3Rtb3J0ZW1fdHJhY2ViYWNrKGV4Y2luZm8pOgotICAgICMgQSBkb2N0ZXN0LlVu
ZXhwZWN0ZWRFeGNlcHRpb24gaXMgbm90IHVzZWZ1bCBmb3IgcG9zdF9tb3J0ZW0uCi0gICAgIyBV
c2UgdGhlIHVuZGVybHlpbmcgZXhjZXB0aW9uIGluc3RlYWQ6Ci0gICAgZnJvbSBkb2N0ZXN0IGlt
cG9ydCBVbmV4cGVjdGVkRXhjZXB0aW9uCi0gICAgaWYgaXNpbnN0YW5jZShleGNpbmZvLnZhbHVl
LCBVbmV4cGVjdGVkRXhjZXB0aW9uKToKLSAgICAgICAgcmV0dXJuIGV4Y2luZm8udmFsdWUuZXhj
X2luZm9bMl0KLSAgICBlbHNlOgotICAgICAgICByZXR1cm4gZXhjaW5mby5fZXhjaW5mb1syXQot
Ci0KLWRlZiBfZmluZF9sYXN0X25vbl9oaWRkZW5fZnJhbWUoc3RhY2spOgotICAgIGkgPSBtYXgo
MCwgbGVuKHN0YWNrKSAtIDEpCi0gICAgd2hpbGUgaSBhbmQgc3RhY2tbaV1bMF0uZl9sb2NhbHMu
Z2V0KCJfX3RyYWNlYmFja2hpZGVfXyIsIEZhbHNlKToKLSAgICAgICAgaSAtPSAxCi0gICAgcmV0
dXJuIGkKLQotCi1kZWYgcG9zdF9tb3J0ZW0odCk6Ci0gICAgY2xhc3MgUGRiKHB5dGVzdFBEQi5f
cGRiX2Nscyk6Ci0gICAgICAgIGRlZiBnZXRfc3RhY2soc2VsZiwgZiwgdCk6Ci0gICAgICAgICAg
ICBzdGFjaywgaSA9IHBkYi5QZGIuZ2V0X3N0YWNrKHNlbGYsIGYsIHQpCi0gICAgICAgICAgICBp
ZiBmIGlzIE5vbmU6Ci0gICAgICAgICAgICAgICAgaSA9IF9maW5kX2xhc3Rfbm9uX2hpZGRlbl9m
cmFtZShzdGFjaykKLSAgICAgICAgICAgIHJldHVybiBzdGFjaywgaQotICAgIHAgPSBQZGIoKQot
ICAgIHAucmVzZXQoKQotICAgIHAuaW50ZXJhY3Rpb24oTm9uZSwgdCkKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFy
dHkvcHl0ZXN0L19weXRlc3QvZGVwcmVjYXRlZC5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L19weXRlc3QvZGVw
cmVjYXRlZC5weQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOWMwZmJlY2E3YmM5ZTk3
NDE3MGE5ZWNlYWMzMjc2NzdmNTYxZjEyMy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9fcHl0ZXN0L2RlcHJlY2F0ZWQucHkKKysrIC9k
ZXYvbnVsbApAQCAtMSw1MiArMCwwIEBACi0iIiIKLVRoaXMgbW9kdWxlIGNvbnRhaW5zIGRlcHJl
Y2F0aW9uIG1lc3NhZ2VzIGFuZCBiaXRzIG9mIGNvZGUgdXNlZCBlbHNld2hlcmUgaW4gdGhlIGNv
ZGViYXNlCi10aGF0IGlzIHBsYW5uZWQgdG8gYmUgcmVtb3ZlZCBpbiB0aGUgbmV4dCBweXRlc3Qg
cmVsZWFzZS4KLQotS2VlcGluZyBpdCBpbiBhIGNlbnRyYWwgbG9jYXRpb24gbWFrZXMgaXQgZWFz
eSB0byB0cmFjayB3aGF0IGlzIGRlcHJlY2F0ZWQgYW5kIHNob3VsZAotYmUgcmVtb3ZlZCB3aGVu
IHRoZSB0aW1lIGNvbWVzLgotIiIiCi1mcm9tIF9fZnV0dXJlX18gaW1wb3J0IGFic29sdXRlX2lt
cG9ydCwgZGl2aXNpb24sIHByaW50X2Z1bmN0aW9uCi0KLQotY2xhc3MgUmVtb3ZlZEluUHl0ZXN0
NFdhcm5pbmcoRGVwcmVjYXRpb25XYXJuaW5nKToKLSAgICAiIiJ3YXJuaW5nIGNsYXNzIGZvciBm
ZWF0dXJlcyByZW1vdmVkIGluIHB5dGVzdCA0LjAiIiIKLQotCi1NQUlOX1NUUl9BUkdTID0gJ3Bh
c3NpbmcgYSBzdHJpbmcgdG8gcHl0ZXN0Lm1haW4oKSBpcyBkZXByZWNhdGVkLCAnIFwKLSAgICAn
cGFzcyBhIGxpc3Qgb2YgYXJndW1lbnRzIGluc3RlYWQuJwotCi1ZSUVMRF9URVNUUyA9ICd5aWVs
ZCB0ZXN0cyBhcmUgZGVwcmVjYXRlZCwgYW5kIHNjaGVkdWxlZCB0byBiZSByZW1vdmVkIGluIHB5
dGVzdCA0LjAnCi0KLUZVTkNBUkdfUFJFRklYID0gKAotICAgICd7bmFtZX06IGRlY2xhcmluZyBm
aXh0dXJlcyB1c2luZyAicHl0ZXN0X2Z1bmNhcmdfXyIgcHJlZml4IGlzIGRlcHJlY2F0ZWQgJwot
ICAgICdhbmQgc2NoZWR1bGVkIHRvIGJlIHJlbW92ZWQgaW4gcHl0ZXN0IDQuMC4gICcKLSAgICAn
UGxlYXNlIHJlbW92ZSB0aGUgcHJlZml4IGFuZCB1c2UgdGhlIEBweXRlc3QuZml4dHVyZSBkZWNv
cmF0b3IgaW5zdGVhZC4nKQotCi1TRVRVUF9DRkdfUFlURVNUID0gJ1tweXRlc3RdIHNlY3Rpb24g
aW4gc2V0dXAuY2ZnIGZpbGVzIGlzIGRlcHJlY2F0ZWQsIHVzZSBbdG9vbDpweXRlc3RdIGluc3Rl
YWQuJwotCi1HRVRGVU5DQVJHVkFMVUUgPSAidXNlIG9mIGdldGZ1bmNhcmd2YWx1ZSBpcyBkZXBy
ZWNhdGVkLCB1c2UgZ2V0Zml4dHVyZXZhbHVlIgotCi1SRVNVTFRfTE9HID0gKAotICAgICctLXJl
c3VsdC1sb2cgaXMgZGVwcmVjYXRlZCBhbmQgc2NoZWR1bGVkIGZvciByZW1vdmFsIGluIHB5dGVz
dCA0LjAuXG4nCi0gICAgJ1NlZSBodHRwczovL2RvY3MucHl0ZXN0Lm9yZy9lbi9sYXRlc3QvdXNh
Z2UuaHRtbCNjcmVhdGluZy1yZXN1bHRsb2ctZm9ybWF0LWZpbGVzIGZvciBtb3JlIGluZm9ybWF0
aW9uLicKLSkKLQotTUFSS19JTkZPX0FUVFJJQlVURSA9IFJlbW92ZWRJblB5dGVzdDRXYXJuaW5n
KAotICAgICJNYXJrSW5mbyBvYmplY3RzIGFyZSBkZXByZWNhdGVkIGFzIHRoZXkgY29udGFpbiB0
aGUgbWVyZ2VkIG1hcmtzIgotKQotCi1NQVJLX1BBUkFNRVRFUlNFVF9VTlBBQ0tJTkcgPSBSZW1v
dmVkSW5QeXRlc3Q0V2FybmluZygKLSAgICAiQXBwbHlpbmcgbWFya3MgZGlyZWN0bHkgdG8gcGFy
YW1ldGVycyBpcyBkZXByZWNhdGVkLCIKLSAgICAiIHBsZWFzZSB1c2UgcHl0ZXN0LnBhcmFtKC4u
LiwgbWFya3M9Li4uKSBpbnN0ZWFkLlxuIgotICAgICJGb3IgbW9yZSBkZXRhaWxzLCBzZWU6IGh0
dHBzOi8vZG9jcy5weXRlc3Qub3JnL2VuL2xhdGVzdC9wYXJhbWV0cml6ZS5odG1sIgotKQotCi1D
T0xMRUNUT1JfTUFLRUlURU0gPSBSZW1vdmVkSW5QeXRlc3Q0V2FybmluZygKLSAgICAicHljb2xs
ZWN0b3IgbWFrZWl0ZW0gd2FzIHJlbW92ZWQgIgotICAgICJhcyBpdCBpcyBhbiBhY2NpZGVudGlh
bGx5IGxlYWtlZCBpbnRlcm5hbCBhcGkiCi0pCi0KLU1FVEFGVU5DX0FERF9DQUxMID0gKAotICAg
ICJNZXRhZnVuYy5hZGRjYWxsIGlzIGRlcHJlY2F0ZWQgYW5kIHNjaGVkdWxlZCB0byBiZSByZW1v
dmVkIGluIHB5dGVzdCA0LjAuXG4iCi0gICAgIlBsZWFzZSB1c2UgTWV0YWZ1bmMucGFyYW1ldHJp
emUgaW5zdGVhZC4iCi0pCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9fcHl0ZXN0L2RvY3Rlc3Qu
cHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3Ro
aXJkX3BhcnR5L3B5dGVzdC9fcHl0ZXN0L2RvY3Rlc3QucHkKZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IGJiYTkwZTU1MWM1MDVhZWQ5OTNhNzk5MTlkZDAzOTk5ODYxMGE2ZDAuLjAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvX3B5
dGVzdC9kb2N0ZXN0LnB5CisrKyAvZGV2L251bGwKQEAgLTEsMzY5ICswLDAgQEAKLSIiIiBkaXNj
b3ZlciBhbmQgcnVuIGRvY3Rlc3RzIGluIG1vZHVsZXMgYW5kIHRlc3QgZmlsZXMuIiIiCi1mcm9t
IF9fZnV0dXJlX18gaW1wb3J0IGFic29sdXRlX2ltcG9ydCwgZGl2aXNpb24sIHByaW50X2Z1bmN0
aW9uCi0KLWltcG9ydCB0cmFjZWJhY2sKLQotaW1wb3J0IHB5dGVzdAotZnJvbSBfcHl0ZXN0Ll9j
b2RlLmNvZGUgaW1wb3J0IEV4Y2VwdGlvbkluZm8sIFJlcHJGaWxlTG9jYXRpb24sIFRlcm1pbmFs
UmVwcgotZnJvbSBfcHl0ZXN0LmZpeHR1cmVzIGltcG9ydCBGaXh0dXJlUmVxdWVzdAotCi0KLURP
Q1RFU1RfUkVQT1JUX0NIT0lDRV9OT05FID0gJ25vbmUnCi1ET0NURVNUX1JFUE9SVF9DSE9JQ0Vf
Q0RJRkYgPSAnY2RpZmYnCi1ET0NURVNUX1JFUE9SVF9DSE9JQ0VfTkRJRkYgPSAnbmRpZmYnCi1E
T0NURVNUX1JFUE9SVF9DSE9JQ0VfVURJRkYgPSAndWRpZmYnCi1ET0NURVNUX1JFUE9SVF9DSE9J
Q0VfT05MWV9GSVJTVF9GQUlMVVJFID0gJ29ubHlfZmlyc3RfZmFpbHVyZScKLQotRE9DVEVTVF9S
RVBPUlRfQ0hPSUNFUyA9ICgKLSAgICBET0NURVNUX1JFUE9SVF9DSE9JQ0VfTk9ORSwKLSAgICBE
T0NURVNUX1JFUE9SVF9DSE9JQ0VfQ0RJRkYsCi0gICAgRE9DVEVTVF9SRVBPUlRfQ0hPSUNFX05E
SUZGLAotICAgIERPQ1RFU1RfUkVQT1JUX0NIT0lDRV9VRElGRiwKLSAgICBET0NURVNUX1JFUE9S
VF9DSE9JQ0VfT05MWV9GSVJTVF9GQUlMVVJFLAotKQotCi0KLWRlZiBweXRlc3RfYWRkb3B0aW9u
KHBhcnNlcik6Ci0gICAgcGFyc2VyLmFkZGluaSgnZG9jdGVzdF9vcHRpb25mbGFncycsICdvcHRp
b24gZmxhZ3MgZm9yIGRvY3Rlc3RzJywKLSAgICAgICAgICAgICAgICAgIHR5cGU9ImFyZ3MiLCBk
ZWZhdWx0PVsiRUxMSVBTSVMiXSkKLSAgICBwYXJzZXIuYWRkaW5pKCJkb2N0ZXN0X2VuY29kaW5n
IiwgJ2VuY29kaW5nIHVzZWQgZm9yIGRvY3Rlc3QgZmlsZXMnLCBkZWZhdWx0PSJ1dGYtOCIpCi0g
ICAgZ3JvdXAgPSBwYXJzZXIuZ2V0Z3JvdXAoImNvbGxlY3QiKQotICAgIGdyb3VwLmFkZG9wdGlv
bigiLS1kb2N0ZXN0LW1vZHVsZXMiLAotICAgICAgICAgICAgICAgICAgICBhY3Rpb249InN0b3Jl
X3RydWUiLCBkZWZhdWx0PUZhbHNlLAotICAgICAgICAgICAgICAgICAgICBoZWxwPSJydW4gZG9j
dGVzdHMgaW4gYWxsIC5weSBtb2R1bGVzIiwKLSAgICAgICAgICAgICAgICAgICAgZGVzdD0iZG9j
dGVzdG1vZHVsZXMiKQotICAgIGdyb3VwLmFkZG9wdGlvbigiLS1kb2N0ZXN0LXJlcG9ydCIsCi0g
ICAgICAgICAgICAgICAgICAgIHR5cGU9c3RyLmxvd2VyLCBkZWZhdWx0PSJ1ZGlmZiIsCi0gICAg
ICAgICAgICAgICAgICAgIGhlbHA9ImNob29zZSBhbm90aGVyIG91dHB1dCBmb3JtYXQgZm9yIGRp
ZmZzIG9uIGRvY3Rlc3QgZmFpbHVyZSIsCi0gICAgICAgICAgICAgICAgICAgIGNob2ljZXM9RE9D
VEVTVF9SRVBPUlRfQ0hPSUNFUywKLSAgICAgICAgICAgICAgICAgICAgZGVzdD0iZG9jdGVzdHJl
cG9ydCIpCi0gICAgZ3JvdXAuYWRkb3B0aW9uKCItLWRvY3Rlc3QtZ2xvYiIsCi0gICAgICAgICAg
ICAgICAgICAgIGFjdGlvbj0iYXBwZW5kIiwgZGVmYXVsdD1bXSwgbWV0YXZhcj0icGF0IiwKLSAg
ICAgICAgICAgICAgICAgICAgaGVscD0iZG9jdGVzdHMgZmlsZSBtYXRjaGluZyBwYXR0ZXJuLCBk
ZWZhdWx0OiB0ZXN0Ki50eHQiLAotICAgICAgICAgICAgICAgICAgICBkZXN0PSJkb2N0ZXN0Z2xv
YiIpCi0gICAgZ3JvdXAuYWRkb3B0aW9uKCItLWRvY3Rlc3QtaWdub3JlLWltcG9ydC1lcnJvcnMi
LAotICAgICAgICAgICAgICAgICAgICBhY3Rpb249InN0b3JlX3RydWUiLCBkZWZhdWx0PUZhbHNl
LAotICAgICAgICAgICAgICAgICAgICBoZWxwPSJpZ25vcmUgZG9jdGVzdCBJbXBvcnRFcnJvcnMi
LAotICAgICAgICAgICAgICAgICAgICBkZXN0PSJkb2N0ZXN0X2lnbm9yZV9pbXBvcnRfZXJyb3Jz
IikKLQotCi1kZWYgcHl0ZXN0X2NvbGxlY3RfZmlsZShwYXRoLCBwYXJlbnQpOgotICAgIGNvbmZp
ZyA9IHBhcmVudC5jb25maWcKLSAgICBpZiBwYXRoLmV4dCA9PSAiLnB5IjoKLSAgICAgICAgaWYg
Y29uZmlnLm9wdGlvbi5kb2N0ZXN0bW9kdWxlcyBhbmQgbm90IF9pc19zZXR1cF9weShjb25maWcs
IHBhdGgsIHBhcmVudCk6Ci0gICAgICAgICAgICByZXR1cm4gRG9jdGVzdE1vZHVsZShwYXRoLCBw
YXJlbnQpCi0gICAgZWxpZiBfaXNfZG9jdGVzdChjb25maWcsIHBhdGgsIHBhcmVudCk6Ci0gICAg
ICAgIHJldHVybiBEb2N0ZXN0VGV4dGZpbGUocGF0aCwgcGFyZW50KQotCi0KLWRlZiBfaXNfc2V0
dXBfcHkoY29uZmlnLCBwYXRoLCBwYXJlbnQpOgotICAgIGlmIHBhdGguYmFzZW5hbWUgIT0gInNl
dHVwLnB5IjoKLSAgICAgICAgcmV0dXJuIEZhbHNlCi0gICAgY29udGVudHMgPSBwYXRoLnJlYWQo
KQotICAgIHJldHVybiAnc2V0dXB0b29scycgaW4gY29udGVudHMgb3IgJ2Rpc3R1dGlscycgaW4g
Y29udGVudHMKLQotCi1kZWYgX2lzX2RvY3Rlc3QoY29uZmlnLCBwYXRoLCBwYXJlbnQpOgotICAg
IGlmIHBhdGguZXh0IGluICgnLnR4dCcsICcucnN0JykgYW5kIHBhcmVudC5zZXNzaW9uLmlzaW5p
dHBhdGgocGF0aCk6Ci0gICAgICAgIHJldHVybiBUcnVlCi0gICAgZ2xvYnMgPSBjb25maWcuZ2V0
b3B0aW9uKCJkb2N0ZXN0Z2xvYiIpIG9yIFsndGVzdCoudHh0J10KLSAgICBmb3IgZ2xvYiBpbiBn
bG9iczoKLSAgICAgICAgaWYgcGF0aC5jaGVjayhmbm1hdGNoPWdsb2IpOgotICAgICAgICAgICAg
cmV0dXJuIFRydWUKLSAgICByZXR1cm4gRmFsc2UKLQotCi1jbGFzcyBSZXByRmFpbERvY3Rlc3Qo
VGVybWluYWxSZXByKToKLQotICAgIGRlZiBfX2luaXRfXyhzZWxmLCByZXBybG9jYXRpb24sIGxp
bmVzKToKLSAgICAgICAgc2VsZi5yZXBybG9jYXRpb24gPSByZXBybG9jYXRpb24KLSAgICAgICAg
c2VsZi5saW5lcyA9IGxpbmVzCi0KLSAgICBkZWYgdG90ZXJtaW5hbChzZWxmLCB0dyk6Ci0gICAg
ICAgIGZvciBsaW5lIGluIHNlbGYubGluZXM6Ci0gICAgICAgICAgICB0dy5saW5lKGxpbmUpCi0g
ICAgICAgIHNlbGYucmVwcmxvY2F0aW9uLnRvdGVybWluYWwodHcpCi0KLQotY2xhc3MgRG9jdGVz
dEl0ZW0ocHl0ZXN0Lkl0ZW0pOgotICAgIGRlZiBfX2luaXRfXyhzZWxmLCBuYW1lLCBwYXJlbnQs
IHJ1bm5lcj1Ob25lLCBkdGVzdD1Ob25lKToKLSAgICAgICAgc3VwZXIoRG9jdGVzdEl0ZW0sIHNl
bGYpLl9faW5pdF9fKG5hbWUsIHBhcmVudCkKLSAgICAgICAgc2VsZi5ydW5uZXIgPSBydW5uZXIK
LSAgICAgICAgc2VsZi5kdGVzdCA9IGR0ZXN0Ci0gICAgICAgIHNlbGYub2JqID0gTm9uZQotICAg
ICAgICBzZWxmLmZpeHR1cmVfcmVxdWVzdCA9IE5vbmUKLQotICAgIGRlZiBzZXR1cChzZWxmKToK
LSAgICAgICAgaWYgc2VsZi5kdGVzdCBpcyBub3QgTm9uZToKLSAgICAgICAgICAgIHNlbGYuZml4
dHVyZV9yZXF1ZXN0ID0gX3NldHVwX2ZpeHR1cmVzKHNlbGYpCi0gICAgICAgICAgICBnbG9icyA9
IGRpY3QoZ2V0Zml4dHVyZT1zZWxmLmZpeHR1cmVfcmVxdWVzdC5nZXRmaXh0dXJldmFsdWUpCi0g
ICAgICAgICAgICBmb3IgbmFtZSwgdmFsdWUgaW4gc2VsZi5maXh0dXJlX3JlcXVlc3QuZ2V0Zml4
dHVyZXZhbHVlKCdkb2N0ZXN0X25hbWVzcGFjZScpLml0ZW1zKCk6Ci0gICAgICAgICAgICAgICAg
Z2xvYnNbbmFtZV0gPSB2YWx1ZQotICAgICAgICAgICAgc2VsZi5kdGVzdC5nbG9icy51cGRhdGUo
Z2xvYnMpCi0KLSAgICBkZWYgcnVudGVzdChzZWxmKToKLSAgICAgICAgX2NoZWNrX2FsbF9za2lw
cGVkKHNlbGYuZHRlc3QpCi0gICAgICAgIHNlbGYucnVubmVyLnJ1bihzZWxmLmR0ZXN0KQotCi0g
ICAgZGVmIHJlcHJfZmFpbHVyZShzZWxmLCBleGNpbmZvKToKLSAgICAgICAgaW1wb3J0IGRvY3Rl
c3QKLSAgICAgICAgaWYgZXhjaW5mby5lcnJpc2luc3RhbmNlKChkb2N0ZXN0LkRvY1Rlc3RGYWls
dXJlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRvY3Rlc3QuVW5leHBlY3Rl
ZEV4Y2VwdGlvbikpOgotICAgICAgICAgICAgZG9jdGVzdGZhaWx1cmUgPSBleGNpbmZvLnZhbHVl
Ci0gICAgICAgICAgICBleGFtcGxlID0gZG9jdGVzdGZhaWx1cmUuZXhhbXBsZQotICAgICAgICAg
ICAgdGVzdCA9IGRvY3Rlc3RmYWlsdXJlLnRlc3QKLSAgICAgICAgICAgIGZpbGVuYW1lID0gdGVz
dC5maWxlbmFtZQotICAgICAgICAgICAgaWYgdGVzdC5saW5lbm8gaXMgTm9uZToKLSAgICAgICAg
ICAgICAgICBsaW5lbm8gPSBOb25lCi0gICAgICAgICAgICBlbHNlOgotICAgICAgICAgICAgICAg
IGxpbmVubyA9IHRlc3QubGluZW5vICsgZXhhbXBsZS5saW5lbm8gKyAxCi0gICAgICAgICAgICBt
ZXNzYWdlID0gZXhjaW5mby50eXBlLl9fbmFtZV9fCi0gICAgICAgICAgICByZXBybG9jYXRpb24g
PSBSZXByRmlsZUxvY2F0aW9uKGZpbGVuYW1lLCBsaW5lbm8sIG1lc3NhZ2UpCi0gICAgICAgICAg
ICBjaGVja2VyID0gX2dldF9jaGVja2VyKCkKLSAgICAgICAgICAgIHJlcG9ydF9jaG9pY2UgPSBf
Z2V0X3JlcG9ydF9jaG9pY2Uoc2VsZi5jb25maWcuZ2V0b3B0aW9uKCJkb2N0ZXN0cmVwb3J0Iikp
Ci0gICAgICAgICAgICBpZiBsaW5lbm8gaXMgbm90IE5vbmU6Ci0gICAgICAgICAgICAgICAgbGlu
ZXMgPSBkb2N0ZXN0ZmFpbHVyZS50ZXN0LmRvY3N0cmluZy5zcGxpdGxpbmVzKEZhbHNlKQotICAg
ICAgICAgICAgICAgICMgYWRkIGxpbmUgbnVtYmVycyB0byB0aGUgbGVmdCBvZiB0aGUgZXJyb3Ig
bWVzc2FnZQotICAgICAgICAgICAgICAgIGxpbmVzID0gWyIlMDNkICVzIiAlIChpICsgdGVzdC5s
aW5lbm8gKyAxLCB4KQotICAgICAgICAgICAgICAgICAgICAgICAgIGZvciAoaSwgeCkgaW4gZW51
bWVyYXRlKGxpbmVzKV0KLSAgICAgICAgICAgICAgICAjIHRyaW0gZG9jc3RyaW5nIGVycm9yIGxp
bmVzIHRvIDEwCi0gICAgICAgICAgICAgICAgbGluZXMgPSBsaW5lc1ttYXgoZXhhbXBsZS5saW5l
bm8gLSA5LCAwKTpleGFtcGxlLmxpbmVubyArIDFdCi0gICAgICAgICAgICBlbHNlOgotICAgICAg
ICAgICAgICAgIGxpbmVzID0gWydFWEFNUExFIExPQ0FUSU9OIFVOS05PV04sIG5vdCBzaG93aW5n
IGFsbCB0ZXN0cyBvZiB0aGF0IGV4YW1wbGUnXQotICAgICAgICAgICAgICAgIGluZGVudCA9ICc+
Pj4nCi0gICAgICAgICAgICAgICAgZm9yIGxpbmUgaW4gZXhhbXBsZS5zb3VyY2Uuc3BsaXRsaW5l
cygpOgotICAgICAgICAgICAgICAgICAgICBsaW5lcy5hcHBlbmQoJz8/PyAlcyAlcycgJSAoaW5k
ZW50LCBsaW5lKSkKLSAgICAgICAgICAgICAgICAgICAgaW5kZW50ID0gJy4uLicKLSAgICAgICAg
ICAgIGlmIGV4Y2luZm8uZXJyaXNpbnN0YW5jZShkb2N0ZXN0LkRvY1Rlc3RGYWlsdXJlKToKLSAg
ICAgICAgICAgICAgICBsaW5lcyArPSBjaGVja2VyLm91dHB1dF9kaWZmZXJlbmNlKGV4YW1wbGUs
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkb2N0
ZXN0ZmFpbHVyZS5nb3QsIHJlcG9ydF9jaG9pY2UpLnNwbGl0KCJcbiIpCi0gICAgICAgICAgICBl
bHNlOgotICAgICAgICAgICAgICAgIGlubmVyX2V4Y2luZm8gPSBFeGNlcHRpb25JbmZvKGV4Y2lu
Zm8udmFsdWUuZXhjX2luZm8pCi0gICAgICAgICAgICAgICAgbGluZXMgKz0gWyJVTkVYUEVDVEVE
IEVYQ0VQVElPTjogJXMiICUKLSAgICAgICAgICAgICAgICAgICAgICAgICAgcmVwcihpbm5lcl9l
eGNpbmZvLnZhbHVlKV0KLSAgICAgICAgICAgICAgICBsaW5lcyArPSB0cmFjZWJhY2suZm9ybWF0
X2V4Y2VwdGlvbigqZXhjaW5mby52YWx1ZS5leGNfaW5mbykKLSAgICAgICAgICAgIHJldHVybiBS
ZXByRmFpbERvY3Rlc3QocmVwcmxvY2F0aW9uLCBsaW5lcykKLSAgICAgICAgZWxzZToKLSAgICAg
ICAgICAgIHJldHVybiBzdXBlcihEb2N0ZXN0SXRlbSwgc2VsZikucmVwcl9mYWlsdXJlKGV4Y2lu
Zm8pCi0KLSAgICBkZWYgcmVwb3J0aW5mbyhzZWxmKToKLSAgICAgICAgcmV0dXJuIHNlbGYuZnNw
YXRoLCBzZWxmLmR0ZXN0LmxpbmVubywgIltkb2N0ZXN0XSAlcyIgJSBzZWxmLm5hbWUKLQotCi1k
ZWYgX2dldF9mbGFnX2xvb2t1cCgpOgotICAgIGltcG9ydCBkb2N0ZXN0Ci0gICAgcmV0dXJuIGRp
Y3QoRE9OVF9BQ0NFUFRfVFJVRV9GT1JfMT1kb2N0ZXN0LkRPTlRfQUNDRVBUX1RSVUVfRk9SXzEs
Ci0gICAgICAgICAgICAgICAgRE9OVF9BQ0NFUFRfQkxBTktMSU5FPWRvY3Rlc3QuRE9OVF9BQ0NF
UFRfQkxBTktMSU5FLAotICAgICAgICAgICAgICAgIE5PUk1BTElaRV9XSElURVNQQUNFPWRvY3Rl
c3QuTk9STUFMSVpFX1dISVRFU1BBQ0UsCi0gICAgICAgICAgICAgICAgRUxMSVBTSVM9ZG9jdGVz
dC5FTExJUFNJUywKLSAgICAgICAgICAgICAgICBJR05PUkVfRVhDRVBUSU9OX0RFVEFJTD1kb2N0
ZXN0LklHTk9SRV9FWENFUFRJT05fREVUQUlMLAotICAgICAgICAgICAgICAgIENPTVBBUklTT05f
RkxBR1M9ZG9jdGVzdC5DT01QQVJJU09OX0ZMQUdTLAotICAgICAgICAgICAgICAgIEFMTE9XX1VO
SUNPREU9X2dldF9hbGxvd191bmljb2RlX2ZsYWcoKSwKLSAgICAgICAgICAgICAgICBBTExPV19C
WVRFUz1fZ2V0X2FsbG93X2J5dGVzX2ZsYWcoKSwKLSAgICAgICAgICAgICAgICApCi0KLQotZGVm
IGdldF9vcHRpb25mbGFncyhwYXJlbnQpOgotICAgIG9wdGlvbmZsYWdzX3N0ciA9IHBhcmVudC5j
b25maWcuZ2V0aW5pKCJkb2N0ZXN0X29wdGlvbmZsYWdzIikKLSAgICBmbGFnX2xvb2t1cF90YWJs
ZSA9IF9nZXRfZmxhZ19sb29rdXAoKQotICAgIGZsYWdfYWNjID0gMAotICAgIGZvciBmbGFnIGlu
IG9wdGlvbmZsYWdzX3N0cjoKLSAgICAgICAgZmxhZ19hY2MgfD0gZmxhZ19sb29rdXBfdGFibGVb
ZmxhZ10KLSAgICByZXR1cm4gZmxhZ19hY2MKLQotCi1jbGFzcyBEb2N0ZXN0VGV4dGZpbGUocHl0
ZXN0Lk1vZHVsZSk6Ci0gICAgb2JqID0gTm9uZQotCi0gICAgZGVmIGNvbGxlY3Qoc2VsZik6Ci0g
ICAgICAgIGltcG9ydCBkb2N0ZXN0Ci0KLSAgICAgICAgIyBpbnNwaXJlZCBieSBkb2N0ZXN0LnRl
c3RmaWxlOyBpZGVhbGx5IHdlIHdvdWxkIHVzZSBpdCBkaXJlY3RseSwKLSAgICAgICAgIyBidXQg
aXQgZG9lc24ndCBzdXBwb3J0IHBhc3NpbmcgYSBjdXN0b20gY2hlY2tlcgotICAgICAgICBlbmNv
ZGluZyA9IHNlbGYuY29uZmlnLmdldGluaSgiZG9jdGVzdF9lbmNvZGluZyIpCi0gICAgICAgIHRl
eHQgPSBzZWxmLmZzcGF0aC5yZWFkX3RleHQoZW5jb2RpbmcpCi0gICAgICAgIGZpbGVuYW1lID0g
c3RyKHNlbGYuZnNwYXRoKQotICAgICAgICBuYW1lID0gc2VsZi5mc3BhdGguYmFzZW5hbWUKLSAg
ICAgICAgZ2xvYnMgPSB7J19fbmFtZV9fJzogJ19fbWFpbl9fJ30KLQotICAgICAgICBvcHRpb25m
bGFncyA9IGdldF9vcHRpb25mbGFncyhzZWxmKQotICAgICAgICBydW5uZXIgPSBkb2N0ZXN0LkRl
YnVnUnVubmVyKHZlcmJvc2U9MCwgb3B0aW9uZmxhZ3M9b3B0aW9uZmxhZ3MsCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hlY2tlcj1fZ2V0X2NoZWNrZXIoKSkKLSAgICAg
ICAgX2ZpeF9zcG9vZl9weXRob24yKHJ1bm5lciwgZW5jb2RpbmcpCi0KLSAgICAgICAgcGFyc2Vy
ID0gZG9jdGVzdC5Eb2NUZXN0UGFyc2VyKCkKLSAgICAgICAgdGVzdCA9IHBhcnNlci5nZXRfZG9j
dGVzdCh0ZXh0LCBnbG9icywgbmFtZSwgZmlsZW5hbWUsIDApCi0gICAgICAgIGlmIHRlc3QuZXhh
bXBsZXM6Ci0gICAgICAgICAgICB5aWVsZCBEb2N0ZXN0SXRlbSh0ZXN0Lm5hbWUsIHNlbGYsIHJ1
bm5lciwgdGVzdCkKLQotCi1kZWYgX2NoZWNrX2FsbF9za2lwcGVkKHRlc3QpOgotICAgICIiInJh
aXNlcyBweXRlc3Quc2tpcCgpIGlmIGFsbCBleGFtcGxlcyBpbiB0aGUgZ2l2ZW4gRG9jVGVzdCBo
YXZlIHRoZSBTS0lQCi0gICAgb3B0aW9uIHNldC4KLSAgICAiIiIKLSAgICBpbXBvcnQgZG9jdGVz
dAotICAgIGFsbF9za2lwcGVkID0gYWxsKHgub3B0aW9ucy5nZXQoZG9jdGVzdC5TS0lQLCBGYWxz
ZSkgZm9yIHggaW4gdGVzdC5leGFtcGxlcykKLSAgICBpZiBhbGxfc2tpcHBlZDoKLSAgICAgICAg
cHl0ZXN0LnNraXAoJ2FsbCB0ZXN0cyBza2lwcGVkIGJ5ICtTS0lQIG9wdGlvbicpCi0KLQotY2xh
c3MgRG9jdGVzdE1vZHVsZShweXRlc3QuTW9kdWxlKToKLSAgICBkZWYgY29sbGVjdChzZWxmKToK
LSAgICAgICAgaW1wb3J0IGRvY3Rlc3QKLSAgICAgICAgaWYgc2VsZi5mc3BhdGguYmFzZW5hbWUg
PT0gImNvbmZ0ZXN0LnB5IjoKLSAgICAgICAgICAgIG1vZHVsZSA9IHNlbGYuY29uZmlnLnBsdWdp
bm1hbmFnZXIuX2ltcG9ydGNvbmZ0ZXN0KHNlbGYuZnNwYXRoKQotICAgICAgICBlbHNlOgotICAg
ICAgICAgICAgdHJ5OgotICAgICAgICAgICAgICAgIG1vZHVsZSA9IHNlbGYuZnNwYXRoLnB5aW1w
b3J0KCkKLSAgICAgICAgICAgIGV4Y2VwdCBJbXBvcnRFcnJvcjoKLSAgICAgICAgICAgICAgICBp
ZiBzZWxmLmNvbmZpZy5nZXR2YWx1ZSgnZG9jdGVzdF9pZ25vcmVfaW1wb3J0X2Vycm9ycycpOgot
ICAgICAgICAgICAgICAgICAgICBweXRlc3Quc2tpcCgndW5hYmxlIHRvIGltcG9ydCBtb2R1bGUg
JXInICUgc2VsZi5mc3BhdGgpCi0gICAgICAgICAgICAgICAgZWxzZToKLSAgICAgICAgICAgICAg
ICAgICAgcmFpc2UKLSAgICAgICAgIyB1c2VzIGludGVybmFsIGRvY3Rlc3QgbW9kdWxlIHBhcnNp
bmcgbWVjaGFuaXNtCi0gICAgICAgIGZpbmRlciA9IGRvY3Rlc3QuRG9jVGVzdEZpbmRlcigpCi0g
ICAgICAgIG9wdGlvbmZsYWdzID0gZ2V0X29wdGlvbmZsYWdzKHNlbGYpCi0gICAgICAgIHJ1bm5l
ciA9IGRvY3Rlc3QuRGVidWdSdW5uZXIodmVyYm9zZT0wLCBvcHRpb25mbGFncz1vcHRpb25mbGFn
cywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGVja2VyPV9nZXRfY2hl
Y2tlcigpKQotCi0gICAgICAgIGZvciB0ZXN0IGluIGZpbmRlci5maW5kKG1vZHVsZSwgbW9kdWxl
Ll9fbmFtZV9fKToKLSAgICAgICAgICAgIGlmIHRlc3QuZXhhbXBsZXM6ICAjIHNraXAgZW1wdHkg
ZG9jdGVzdHMKLSAgICAgICAgICAgICAgICB5aWVsZCBEb2N0ZXN0SXRlbSh0ZXN0Lm5hbWUsIHNl
bGYsIHJ1bm5lciwgdGVzdCkKLQotCi1kZWYgX3NldHVwX2ZpeHR1cmVzKGRvY3Rlc3RfaXRlbSk6
Ci0gICAgIiIiCi0gICAgVXNlZCBieSBEb2N0ZXN0VGV4dGZpbGUgYW5kIERvY3Rlc3RJdGVtIHRv
IHNldHVwIGZpeHR1cmUgaW5mb3JtYXRpb24uCi0gICAgIiIiCi0gICAgZGVmIGZ1bmMoKToKLSAg
ICAgICAgcGFzcwotCi0gICAgZG9jdGVzdF9pdGVtLmZ1bmNhcmdzID0ge30KLSAgICBmbSA9IGRv
Y3Rlc3RfaXRlbS5zZXNzaW9uLl9maXh0dXJlbWFuYWdlcgotICAgIGRvY3Rlc3RfaXRlbS5fZml4
dHVyZWluZm8gPSBmbS5nZXRmaXh0dXJlaW5mbyhub2RlPWRvY3Rlc3RfaXRlbSwgZnVuYz1mdW5j
LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbHM9
Tm9uZSwgZnVuY2FyZ3M9RmFsc2UpCi0gICAgZml4dHVyZV9yZXF1ZXN0ID0gRml4dHVyZVJlcXVl
c3QoZG9jdGVzdF9pdGVtKQotICAgIGZpeHR1cmVfcmVxdWVzdC5fZmlsbGZpeHR1cmVzKCkKLSAg
ICByZXR1cm4gZml4dHVyZV9yZXF1ZXN0Ci0KLQotZGVmIF9nZXRfY2hlY2tlcigpOgotICAgICIi
IgotICAgIFJldHVybnMgYSBkb2N0ZXN0Lk91dHB1dENoZWNrZXIgc3ViY2xhc3MgdGhhdCB0YWtl
cyBpbiBhY2NvdW50IHRoZQotICAgIEFMTE9XX1VOSUNPREUgb3B0aW9uIHRvIGlnbm9yZSB1Jycg
cHJlZml4ZXMgaW4gc3RyaW5ncyBhbmQgQUxMT1dfQllURVMKLSAgICB0byBzdHJpcCBiJycgcHJl
Zml4ZXMuCi0gICAgVXNlZnVsIHdoZW4gdGhlIHNhbWUgZG9jdGVzdCBzaG91bGQgcnVuIGluIFB5
dGhvbiAyIGFuZCBQeXRob24gMy4KLQotICAgIEFuIGlubmVyIGNsYXNzIGlzIHVzZWQgdG8gYXZv
aWQgaW1wb3J0aW5nICJkb2N0ZXN0IiBhdCB0aGUgbW9kdWxlCi0gICAgbGV2ZWwuCi0gICAgIiIi
Ci0gICAgaWYgaGFzYXR0cihfZ2V0X2NoZWNrZXIsICdMaXRlcmFsc091dHB1dENoZWNrZXInKToK
LSAgICAgICAgcmV0dXJuIF9nZXRfY2hlY2tlci5MaXRlcmFsc091dHB1dENoZWNrZXIoKQotCi0g
ICAgaW1wb3J0IGRvY3Rlc3QKLSAgICBpbXBvcnQgcmUKLQotICAgIGNsYXNzIExpdGVyYWxzT3V0
cHV0Q2hlY2tlcihkb2N0ZXN0Lk91dHB1dENoZWNrZXIpOgotICAgICAgICAiIiIKLSAgICAgICAg
Q29waWVkIGZyb20gZG9jdGVzdF9ub3NlX3BsdWdpbi5weSBmcm9tIHRoZSBubHRrIHByb2plY3Q6
Ci0gICAgICAgICAgICBodHRwczovL2dpdGh1Yi5jb20vbmx0ay9ubHRrCi0KLSAgICAgICAgRnVy
dGhlciBleHRlbmRlZCB0byBhbHNvIHN1cHBvcnQgYnl0ZSBsaXRlcmFscy4KLSAgICAgICAgIiIi
Ci0KLSAgICAgICAgX3VuaWNvZGVfbGl0ZXJhbF9yZSA9IHJlLmNvbXBpbGUociIoXFd8XilbdVVd
KFtyUl0/W1wnXCJdKSIsIHJlLlVOSUNPREUpCi0gICAgICAgIF9ieXRlc19saXRlcmFsX3JlID0g
cmUuY29tcGlsZShyIihcV3xeKVtiQl0oW3JSXT9bXCdcIl0pIiwgcmUuVU5JQ09ERSkKLQotICAg
ICAgICBkZWYgY2hlY2tfb3V0cHV0KHNlbGYsIHdhbnQsIGdvdCwgb3B0aW9uZmxhZ3MpOgotICAg
ICAgICAgICAgcmVzID0gZG9jdGVzdC5PdXRwdXRDaGVja2VyLmNoZWNrX291dHB1dChzZWxmLCB3
YW50LCBnb3QsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIG9wdGlvbmZsYWdzKQotICAgICAgICAgICAgaWYgcmVzOgotICAgICAgICAgICAgICAg
IHJldHVybiBUcnVlCi0KLSAgICAgICAgICAgIGFsbG93X3VuaWNvZGUgPSBvcHRpb25mbGFncyAm
IF9nZXRfYWxsb3dfdW5pY29kZV9mbGFnKCkKLSAgICAgICAgICAgIGFsbG93X2J5dGVzID0gb3B0
aW9uZmxhZ3MgJiBfZ2V0X2FsbG93X2J5dGVzX2ZsYWcoKQotICAgICAgICAgICAgaWYgbm90IGFs
bG93X3VuaWNvZGUgYW5kIG5vdCBhbGxvd19ieXRlczoKLSAgICAgICAgICAgICAgICByZXR1cm4g
RmFsc2UKLQotICAgICAgICAgICAgZWxzZTogICMgcHJhZ21hOiBubyBjb3ZlcgotICAgICAgICAg
ICAgICAgIGRlZiByZW1vdmVfcHJlZml4ZXMocmVnZXgsIHR4dCk6Ci0gICAgICAgICAgICAgICAg
ICAgIHJldHVybiByZS5zdWIocmVnZXgsIHInXDFcMicsIHR4dCkKLQotICAgICAgICAgICAgICAg
IGlmIGFsbG93X3VuaWNvZGU6Ci0gICAgICAgICAgICAgICAgICAgIHdhbnQgPSByZW1vdmVfcHJl
Zml4ZXMoc2VsZi5fdW5pY29kZV9saXRlcmFsX3JlLCB3YW50KQotICAgICAgICAgICAgICAgICAg
ICBnb3QgPSByZW1vdmVfcHJlZml4ZXMoc2VsZi5fdW5pY29kZV9saXRlcmFsX3JlLCBnb3QpCi0g
ICAgICAgICAgICAgICAgaWYgYWxsb3dfYnl0ZXM6Ci0gICAgICAgICAgICAgICAgICAgIHdhbnQg
PSByZW1vdmVfcHJlZml4ZXMoc2VsZi5fYnl0ZXNfbGl0ZXJhbF9yZSwgd2FudCkKLSAgICAgICAg
ICAgICAgICAgICAgZ290ID0gcmVtb3ZlX3ByZWZpeGVzKHNlbGYuX2J5dGVzX2xpdGVyYWxfcmUs
IGdvdCkKLSAgICAgICAgICAgICAgICByZXMgPSBkb2N0ZXN0Lk91dHB1dENoZWNrZXIuY2hlY2tf
b3V0cHV0KHNlbGYsIHdhbnQsIGdvdCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIG9wdGlvbmZsYWdzKQotICAgICAgICAgICAgICAgIHJl
dHVybiByZXMKLQotICAgIF9nZXRfY2hlY2tlci5MaXRlcmFsc091dHB1dENoZWNrZXIgPSBMaXRl
cmFsc091dHB1dENoZWNrZXIKLSAgICByZXR1cm4gX2dldF9jaGVja2VyLkxpdGVyYWxzT3V0cHV0
Q2hlY2tlcigpCi0KLQotZGVmIF9nZXRfYWxsb3dfdW5pY29kZV9mbGFnKCk6Ci0gICAgIiIiCi0g
ICAgUmVnaXN0ZXJzIGFuZCByZXR1cm5zIHRoZSBBTExPV19VTklDT0RFIGZsYWcuCi0gICAgIiIi
Ci0gICAgaW1wb3J0IGRvY3Rlc3QKLSAgICByZXR1cm4gZG9jdGVzdC5yZWdpc3Rlcl9vcHRpb25m
bGFnKCdBTExPV19VTklDT0RFJykKLQotCi1kZWYgX2dldF9hbGxvd19ieXRlc19mbGFnKCk6Ci0g
ICAgIiIiCi0gICAgUmVnaXN0ZXJzIGFuZCByZXR1cm5zIHRoZSBBTExPV19CWVRFUyBmbGFnLgot
ICAgICIiIgotICAgIGltcG9ydCBkb2N0ZXN0Ci0gICAgcmV0dXJuIGRvY3Rlc3QucmVnaXN0ZXJf
b3B0aW9uZmxhZygnQUxMT1dfQllURVMnKQotCi0KLWRlZiBfZ2V0X3JlcG9ydF9jaG9pY2Uoa2V5
KToKLSAgICAiIiIKLSAgICBUaGlzIGZ1bmN0aW9uIHJldHVybnMgdGhlIGFjdHVhbCBgZG9jdGVz
dGAgbW9kdWxlIGZsYWcgdmFsdWUsIHdlIHdhbnQgdG8gZG8gaXQgYXMgbGF0ZSBhcyBwb3NzaWJs
ZSB0byBhdm9pZAotICAgIGltcG9ydGluZyBgZG9jdGVzdGAgYW5kIGFsbCBpdHMgZGVwZW5kZW5j
aWVzIHdoZW4gcGFyc2luZyBvcHRpb25zLCBhcyBpdCBhZGRzIG92ZXJoZWFkIGFuZCBicmVha3Mg
dGVzdHMuCi0gICAgIiIiCi0gICAgaW1wb3J0IGRvY3Rlc3QKLQotICAgIHJldHVybiB7Ci0gICAg
ICAgIERPQ1RFU1RfUkVQT1JUX0NIT0lDRV9VRElGRjogZG9jdGVzdC5SRVBPUlRfVURJRkYsCi0g
ICAgICAgIERPQ1RFU1RfUkVQT1JUX0NIT0lDRV9DRElGRjogZG9jdGVzdC5SRVBPUlRfQ0RJRkYs
Ci0gICAgICAgIERPQ1RFU1RfUkVQT1JUX0NIT0lDRV9ORElGRjogZG9jdGVzdC5SRVBPUlRfTkRJ
RkYsCi0gICAgICAgIERPQ1RFU1RfUkVQT1JUX0NIT0lDRV9PTkxZX0ZJUlNUX0ZBSUxVUkU6IGRv
Y3Rlc3QuUkVQT1JUX09OTFlfRklSU1RfRkFJTFVSRSwKLSAgICAgICAgRE9DVEVTVF9SRVBPUlRf
Q0hPSUNFX05PTkU6IDAsCi0gICAgfVtrZXldCi0KLQotZGVmIF9maXhfc3Bvb2ZfcHl0aG9uMihy
dW5uZXIsIGVuY29kaW5nKToKLSAgICAiIiIKLSAgICBJbnN0YWxscyBhICJTcG9vZk91dCIgaW50
byB0aGUgZ2l2ZW4gRGVidWdSdW5uZXIgc28gaXQgcHJvcGVybHkgZGVhbHMgd2l0aCB1bmljb2Rl
IG91dHB1dC4gVGhpcwotICAgIHNob3VsZCBwYXRjaCBvbmx5IGRvY3Rlc3RzIGZvciB0ZXh0IGZp
bGVzIGJlY2F1c2UgdGhleSBkb24ndCBoYXZlIGEgd2F5IHRvIGRlY2xhcmUgdGhlaXIKLSAgICBl
bmNvZGluZy4gRG9jdGVzdHMgaW4gZG9jc3RyaW5ncyBmcm9tIFB5dGhvbiBtb2R1bGVzIGRvbid0
IGhhdmUgdGhlIHNhbWUgcHJvYmxlbSBnaXZlbiB0aGF0Ci0gICAgUHl0aG9uIGFscmVhZHkgZGVj
b2RlZCB0aGUgc3RyaW5ncy4KLQotICAgIFRoaXMgZml4ZXMgdGhlIHByb2JsZW0gcmVsYXRlZCBp
biBpc3N1ZSAjMjQzNC4KLSAgICAiIiIKLSAgICBmcm9tIF9weXRlc3QuY29tcGF0IGltcG9ydCBf
UFkyCi0gICAgaWYgbm90IF9QWTI6Ci0gICAgICAgIHJldHVybgotCi0gICAgZnJvbSBkb2N0ZXN0
IGltcG9ydCBfU3Bvb2ZPdXQKLQotICAgIGNsYXNzIFVuaWNvZGVTcG9vZihfU3Bvb2ZPdXQpOgot
Ci0gICAgICAgIGRlZiBnZXR2YWx1ZShzZWxmKToKLSAgICAgICAgICAgIHJlc3VsdCA9IF9TcG9v
Zk91dC5nZXR2YWx1ZShzZWxmKQotICAgICAgICAgICAgaWYgZW5jb2Rpbmc6Ci0gICAgICAgICAg
ICAgICAgcmVzdWx0ID0gcmVzdWx0LmRlY29kZShlbmNvZGluZykKLSAgICAgICAgICAgIHJldHVy
biByZXN1bHQKLQotICAgIHJ1bm5lci5fZmFrZW91dCA9IFVuaWNvZGVTcG9vZigpCi0KLQotQHB5
dGVzdC5maXh0dXJlKHNjb3BlPSdzZXNzaW9uJykKLWRlZiBkb2N0ZXN0X25hbWVzcGFjZSgpOgot
ICAgICIiIgotICAgIEluamVjdCBuYW1lcyBpbnRvIHRoZSBkb2N0ZXN0IG5hbWVzcGFjZS4KLSAg
ICAiIiIKLSAgICByZXR1cm4gZGljdCgpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9fcHl0ZXN0
L2ZpeHR1cmVzLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvX3B5dGVzdC9maXh0dXJlcy5weQpkZWxldGVkIGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggZTA5ZmZhZGRiYTczZmY4NGIyMzlkNGY0YWEyOWU5NmQwNTZj
NWQ4ZC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5
L3B5dGVzdC9fcHl0ZXN0L2ZpeHR1cmVzLnB5CisrKyAvZGV2L251bGwKQEAgLTEsMTE0NyArMCww
IEBACi1mcm9tIF9fZnV0dXJlX18gaW1wb3J0IGFic29sdXRlX2ltcG9ydCwgZGl2aXNpb24sIHBy
aW50X2Z1bmN0aW9uCi0KLWltcG9ydCBmdW5jdG9vbHMKLWltcG9ydCBpbnNwZWN0Ci1pbXBvcnQg
c3lzCi1pbXBvcnQgd2FybmluZ3MKLWZyb20gY29sbGVjdGlvbnMgaW1wb3J0IE9yZGVyZWREaWN0
Ci0KLWltcG9ydCBhdHRyCi1pbXBvcnQgcHkKLWZyb20gcHkuX2NvZGUuY29kZSBpbXBvcnQgRm9y
bWF0dGVkRXhjaW5mbwotCi1pbXBvcnQgX3B5dGVzdAotZnJvbSBfcHl0ZXN0IGltcG9ydCBub2Rl
cwotZnJvbSBfcHl0ZXN0Ll9jb2RlLmNvZGUgaW1wb3J0IFRlcm1pbmFsUmVwcgotZnJvbSBfcHl0
ZXN0LmNvbXBhdCBpbXBvcnQgKAotICAgIE5PVFNFVCwgZXhjX2NsZWFyLCBfZm9ybWF0X2FyZ3Ms
Ci0gICAgZ2V0ZnNsaW5lbm8sIGdldF9yZWFsX2Z1bmMsCi0gICAgaXNfZ2VuZXJhdG9yLCBpc2Ns
YXNzLCBnZXRpbWZ1bmMsCi0gICAgZ2V0bG9jYXRpb24sIGdldGZ1bmNhcmduYW1lcywKLSAgICBz
YWZlX2dldGF0dHIsCi0gICAgRnVuY2FyZ25hbWVzQ29tcGF0QXR0ciwKLSkKLWZyb20gX3B5dGVz
dC5vdXRjb21lcyBpbXBvcnQgZmFpbCwgVEVTVF9PVVRDT01FCi0KLQotZGVmIHB5dGVzdF9zZXNz
aW9uc3RhcnQoc2Vzc2lvbik6Ci0gICAgaW1wb3J0IF9weXRlc3QucHl0aG9uCi0KLSAgICBzY29w
ZW5hbWUyY2xhc3MudXBkYXRlKHsKLSAgICAgICAgJ2NsYXNzJzogX3B5dGVzdC5weXRob24uQ2xh
c3MsCi0gICAgICAgICdtb2R1bGUnOiBfcHl0ZXN0LnB5dGhvbi5Nb2R1bGUsCi0gICAgICAgICdm
dW5jdGlvbic6IF9weXRlc3QubWFpbi5JdGVtLAotICAgICAgICAnc2Vzc2lvbic6IF9weXRlc3Qu
bWFpbi5TZXNzaW9uLAotICAgIH0pCi0gICAgc2Vzc2lvbi5fZml4dHVyZW1hbmFnZXIgPSBGaXh0
dXJlTWFuYWdlcihzZXNzaW9uKQotCi0KLXNjb3BlbmFtZTJjbGFzcyA9IHt9Ci0KLQotc2NvcGUy
cHJvcHMgPSBkaWN0KHNlc3Npb249KCkpCi1zY29wZTJwcm9wc1sibW9kdWxlIl0gPSAoImZzcGF0
aCIsICJtb2R1bGUiKQotc2NvcGUycHJvcHNbImNsYXNzIl0gPSBzY29wZTJwcm9wc1sibW9kdWxl
Il0gKyAoImNscyIsKQotc2NvcGUycHJvcHNbImluc3RhbmNlIl0gPSBzY29wZTJwcm9wc1siY2xh
c3MiXSArICgiaW5zdGFuY2UiLCApCi1zY29wZTJwcm9wc1siZnVuY3Rpb24iXSA9IHNjb3BlMnBy
b3BzWyJpbnN0YW5jZSJdICsgKCJmdW5jdGlvbiIsICJrZXl3b3JkcyIpCi0KLQotZGVmIHNjb3Bl
cHJvcGVydHkobmFtZT1Ob25lLCBkb2M9Tm9uZSk6Ci0gICAgZGVmIGRlY29yYXRlc2NvcGUoZnVu
Yyk6Ci0gICAgICAgIHNjb3BlbmFtZSA9IG5hbWUgb3IgZnVuYy5fX25hbWVfXwotCi0gICAgICAg
IGRlZiBwcm92aWRlKHNlbGYpOgotICAgICAgICAgICAgaWYgZnVuYy5fX25hbWVfXyBpbiBzY29w
ZTJwcm9wc1tzZWxmLnNjb3BlXToKLSAgICAgICAgICAgICAgICByZXR1cm4gZnVuYyhzZWxmKQot
ICAgICAgICAgICAgcmFpc2UgQXR0cmlidXRlRXJyb3IoIiVzIG5vdCBhdmFpbGFibGUgaW4gJXMt
c2NvcGVkIGNvbnRleHQiICUgKAotICAgICAgICAgICAgICAgIHNjb3BlbmFtZSwgc2VsZi5zY29w
ZSkpCi0KLSAgICAgICAgcmV0dXJuIHByb3BlcnR5KHByb3ZpZGUsIE5vbmUsIE5vbmUsIGZ1bmMu
X19kb2NfXykKLSAgICByZXR1cm4gZGVjb3JhdGVzY29wZQotCi0KLWRlZiBnZXRfc2NvcGVfbm9k
ZShub2RlLCBzY29wZSk6Ci0gICAgY2xzID0gc2NvcGVuYW1lMmNsYXNzLmdldChzY29wZSkKLSAg
ICBpZiBjbHMgaXMgTm9uZToKLSAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigidW5rbm93biBzY29w
ZSIpCi0gICAgcmV0dXJuIG5vZGUuZ2V0cGFyZW50KGNscykKLQotCi1kZWYgYWRkX2Z1bmNhcmdf
cHNldWRvX2ZpeHR1cmVfZGVmKGNvbGxlY3RvciwgbWV0YWZ1bmMsIGZpeHR1cmVtYW5hZ2VyKToK
LSAgICAjIHRoaXMgZnVuY3Rpb24gd2lsbCB0cmFuc2Zvcm0gYWxsIGNvbGxlY3RlZCBjYWxscyB0
byBhIGZ1bmN0aW9ucwotICAgICMgaWYgdGhleSB1c2UgZGlyZWN0IGZ1bmNhcmdzIChpLmUuIGRp
cmVjdCBwYXJhbWV0cml6YXRpb24pCi0gICAgIyBiZWNhdXNlIHdlIHdhbnQgbGF0ZXIgdGVzdCBl
eGVjdXRpb24gdG8gYmUgYWJsZSB0byByZWx5IG9uCi0gICAgIyBhbiBleGlzdGluZyBGaXh0dXJl
RGVmIHN0cnVjdHVyZSBmb3IgYWxsIGFyZ3VtZW50cy4KLSAgICAjIFhYWCB3ZSBjYW4gcHJvYmFi
bHkgYXZvaWQgdGhpcyBhbGdvcml0aG0gIGlmIHdlIG1vZGlmeSBDYWxsU3BlYzIKLSAgICAjIHRv
IGRpcmVjdGx5IGNhcmUgZm9yIGNyZWF0aW5nIHRoZSBmaXh0dXJlZGVmcyB3aXRoaW4gaXRzIG1l
dGhvZHMuCi0gICAgaWYgbm90IG1ldGFmdW5jLl9jYWxsc1swXS5mdW5jYXJnczoKLSAgICAgICAg
cmV0dXJuICAjIHRoaXMgZnVuY3Rpb24gY2FsbCBkb2VzIG5vdCBoYXZlIGRpcmVjdCBwYXJhbWV0
cml6YXRpb24KLSAgICAjIGNvbGxlY3QgZnVuY2FyZ3Mgb2YgYWxsIGNhbGxzcGVjcyBpbnRvIGEg
bGlzdCBvZiB2YWx1ZXMKLSAgICBhcmcycGFyYW1zID0ge30KLSAgICBhcmcyc2NvcGUgPSB7fQot
ICAgIGZvciBjYWxsc3BlYyBpbiBtZXRhZnVuYy5fY2FsbHM6Ci0gICAgICAgIGZvciBhcmduYW1l
LCBhcmd2YWx1ZSBpbiBjYWxsc3BlYy5mdW5jYXJncy5pdGVtcygpOgotICAgICAgICAgICAgYXNz
ZXJ0IGFyZ25hbWUgbm90IGluIGNhbGxzcGVjLnBhcmFtcwotICAgICAgICAgICAgY2FsbHNwZWMu
cGFyYW1zW2FyZ25hbWVdID0gYXJndmFsdWUKLSAgICAgICAgICAgIGFyZzJwYXJhbXNfbGlzdCA9
IGFyZzJwYXJhbXMuc2V0ZGVmYXVsdChhcmduYW1lLCBbXSkKLSAgICAgICAgICAgIGNhbGxzcGVj
LmluZGljZXNbYXJnbmFtZV0gPSBsZW4oYXJnMnBhcmFtc19saXN0KQotICAgICAgICAgICAgYXJn
MnBhcmFtc19saXN0LmFwcGVuZChhcmd2YWx1ZSkKLSAgICAgICAgICAgIGlmIGFyZ25hbWUgbm90
IGluIGFyZzJzY29wZToKLSAgICAgICAgICAgICAgICBzY29wZW51bSA9IGNhbGxzcGVjLl9hcmcy
c2NvcGVudW0uZ2V0KGFyZ25hbWUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBzY29wZW51bV9mdW5jdGlvbikKLSAgICAgICAgICAgICAgICBh
cmcyc2NvcGVbYXJnbmFtZV0gPSBzY29wZXNbc2NvcGVudW1dCi0gICAgICAgIGNhbGxzcGVjLmZ1
bmNhcmdzLmNsZWFyKCkKLQotICAgICMgcmVnaXN0ZXIgYXJ0aWZpY2lhbCBGaXh0dXJlRGVmJ3Mg
c28gdGhhdCBsYXRlciBhdCB0ZXN0IGV4ZWN1dGlvbgotICAgICMgdGltZSB3ZSBjYW4gcmVseSBv
biBhIHByb3BlciBGaXh0dXJlRGVmIHRvIGV4aXN0IGZvciBmaXh0dXJlIHNldHVwLgotICAgIGFy
ZzJmaXh0dXJlZGVmcyA9IG1ldGFmdW5jLl9hcmcyZml4dHVyZWRlZnMKLSAgICBmb3IgYXJnbmFt
ZSwgdmFsdWVsaXN0IGluIGFyZzJwYXJhbXMuaXRlbXMoKToKLSAgICAgICAgIyBpZiB3ZSBoYXZl
IGEgc2NvcGUgdGhhdCBpcyBoaWdoZXIgdGhhbiBmdW5jdGlvbiB3ZSBuZWVkCi0gICAgICAgICMg
dG8gbWFrZSBzdXJlIHdlIG9ubHkgZXZlciBjcmVhdGUgYW4gYWNjb3JkaW5nIGZpeHR1cmVkZWYg
b24KLSAgICAgICAgIyBhIHBlci1zY29wZSBiYXNpcy4gV2UgdGh1cyBzdG9yZSBhbmQgY2FjaGUg
dGhlIGZpeHR1cmVkZWYgb24gdGhlCi0gICAgICAgICMgbm9kZSByZWxhdGVkIHRvIHRoZSBzY29w
ZS4KLSAgICAgICAgc2NvcGUgPSBhcmcyc2NvcGVbYXJnbmFtZV0KLSAgICAgICAgbm9kZSA9IE5v
bmUKLSAgICAgICAgaWYgc2NvcGUgIT0gImZ1bmN0aW9uIjoKLSAgICAgICAgICAgIG5vZGUgPSBn
ZXRfc2NvcGVfbm9kZShjb2xsZWN0b3IsIHNjb3BlKQotICAgICAgICAgICAgaWYgbm9kZSBpcyBO
b25lOgotICAgICAgICAgICAgICAgIGFzc2VydCBzY29wZSA9PSAiY2xhc3MiIGFuZCBpc2luc3Rh
bmNlKGNvbGxlY3RvciwgX3B5dGVzdC5weXRob24uTW9kdWxlKQotICAgICAgICAgICAgICAgICMg
dXNlIG1vZHVsZS1sZXZlbCBjb2xsZWN0b3IgZm9yIGNsYXNzLXNjb3BlIChmb3Igbm93KQotICAg
ICAgICAgICAgICAgIG5vZGUgPSBjb2xsZWN0b3IKLSAgICAgICAgaWYgbm9kZSBhbmQgYXJnbmFt
ZSBpbiBub2RlLl9uYW1lMnBzZXVkb2ZpeHR1cmVkZWY6Ci0gICAgICAgICAgICBhcmcyZml4dHVy
ZWRlZnNbYXJnbmFtZV0gPSBbbm9kZS5fbmFtZTJwc2V1ZG9maXh0dXJlZGVmW2FyZ25hbWVdXQot
ICAgICAgICBlbHNlOgotICAgICAgICAgICAgZml4dHVyZWRlZiA9IEZpeHR1cmVEZWYoZml4dHVy
ZW1hbmFnZXIsICcnLCBhcmduYW1lLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgZ2V0X2RpcmVjdF9wYXJhbV9maXh0dXJlX2Z1bmMsCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBhcmcyc2NvcGVbYXJnbmFtZV0sCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICB2YWx1ZWxpc3QsIEZhbHNlLCBGYWxzZSkKLSAgICAgICAgICAgIGFyZzJm
aXh0dXJlZGVmc1thcmduYW1lXSA9IFtmaXh0dXJlZGVmXQotICAgICAgICAgICAgaWYgbm9kZSBp
cyBub3QgTm9uZToKLSAgICAgICAgICAgICAgICBub2RlLl9uYW1lMnBzZXVkb2ZpeHR1cmVkZWZb
YXJnbmFtZV0gPSBmaXh0dXJlZGVmCi0KLQotZGVmIGdldGZpeHR1cmVtYXJrZXIob2JqKToKLSAg
ICAiIiIgcmV0dXJuIGZpeHR1cmVtYXJrZXIgb3IgTm9uZSBpZiBpdCBkb2Vzbid0IGV4aXN0IG9y
IHJhaXNlZAotICAgIGV4Y2VwdGlvbnMuIiIiCi0gICAgdHJ5OgotICAgICAgICByZXR1cm4gZ2V0
YXR0cihvYmosICJfcHl0ZXN0Zml4dHVyZWZ1bmN0aW9uIiwgTm9uZSkKLSAgICBleGNlcHQgVEVT
VF9PVVRDT01FOgotICAgICAgICAjIHNvbWUgb2JqZWN0cyByYWlzZSBlcnJvcnMgbGlrZSByZXF1
ZXN0IChmcm9tIGZsYXNrIGltcG9ydCByZXF1ZXN0KQotICAgICAgICAjIHdlIGRvbid0IGV4cGVj
dCB0aGVtIHRvIGJlIGZpeHR1cmUgZnVuY3Rpb25zCi0gICAgICAgIHJldHVybiBOb25lCi0KLQot
ZGVmIGdldF9wYXJhbWV0cml6ZWRfZml4dHVyZV9rZXlzKGl0ZW0sIHNjb3BlbnVtKToKLSAgICAi
IiIgcmV0dXJuIGxpc3Qgb2Yga2V5cyBmb3IgYWxsIHBhcmFtZXRyaXplZCBhcmd1bWVudHMgd2hp
Y2ggbWF0Y2gKLSAgICB0aGUgc3BlY2lmaWVkIHNjb3BlLiAiIiIKLSAgICBhc3NlcnQgc2NvcGVu
dW0gPCBzY29wZW51bV9mdW5jdGlvbiAgIyBmdW5jdGlvbgotICAgIHRyeToKLSAgICAgICAgY3Mg
PSBpdGVtLmNhbGxzcGVjCi0gICAgZXhjZXB0IEF0dHJpYnV0ZUVycm9yOgotICAgICAgICBwYXNz
Ci0gICAgZWxzZToKLSAgICAgICAgIyBjcy5pbmRpY2VzLml0ZW1zKCkgaXMgcmFuZG9tIG9yZGVy
IG9mIGFyZ25hbWVzLiAgTmVlZCB0bwotICAgICAgICAjIHNvcnQgdGhpcyBzbyB0aGF0IGRpZmZl
cmVudCBjYWxscyB0bwotICAgICAgICAjIGdldF9wYXJhbWV0cml6ZWRfZml4dHVyZV9rZXlzIHdp
bGwgYmUgZGV0ZXJtaW5pc3RpYy4KLSAgICAgICAgZm9yIGFyZ25hbWUsIHBhcmFtX2luZGV4IGlu
IHNvcnRlZChjcy5pbmRpY2VzLml0ZW1zKCkpOgotICAgICAgICAgICAgaWYgY3MuX2FyZzJzY29w
ZW51bVthcmduYW1lXSAhPSBzY29wZW51bToKLSAgICAgICAgICAgICAgICBjb250aW51ZQotICAg
ICAgICAgICAgaWYgc2NvcGVudW0gPT0gMDogICAgIyBzZXNzaW9uCi0gICAgICAgICAgICAgICAg
a2V5ID0gKGFyZ25hbWUsIHBhcmFtX2luZGV4KQotICAgICAgICAgICAgZWxpZiBzY29wZW51bSA9
PSAxOiAgIyBtb2R1bGUKLSAgICAgICAgICAgICAgICBrZXkgPSAoYXJnbmFtZSwgcGFyYW1faW5k
ZXgsIGl0ZW0uZnNwYXRoKQotICAgICAgICAgICAgZWxpZiBzY29wZW51bSA9PSAyOiAgIyBjbGFz
cwotICAgICAgICAgICAgICAgIGtleSA9IChhcmduYW1lLCBwYXJhbV9pbmRleCwgaXRlbS5mc3Bh
dGgsIGl0ZW0uY2xzKQotICAgICAgICAgICAgeWllbGQga2V5Ci0KLQotIyBhbGdvcml0aG0gZm9y
IHNvcnRpbmcgb24gYSBwZXItcGFyYW1ldHJpemVkIHJlc291cmNlIHNldHVwIGJhc2lzCi0jIGl0
IGlzIGNhbGxlZCBmb3Igc2NvcGVudW09PTAgKHNlc3Npb24pIGZpcnN0IGFuZCBwZXJmb3JtcyBz
b3J0aW5nCi0jIGRvd24gdG8gdGhlIGxvd2VyIHNjb3BlcyBzdWNoIGFzIHRvIG1pbmltaXplIG51
bWJlciBvZiAiaGlnaCBzY29wZSIKLSMgc2V0dXBzIGFuZCB0ZWFyZG93bnMKLQotZGVmIHJlb3Jk
ZXJfaXRlbXMoaXRlbXMpOgotICAgIGFyZ2tleXNfY2FjaGUgPSB7fQotICAgIGZvciBzY29wZW51
bSBpbiByYW5nZSgwLCBzY29wZW51bV9mdW5jdGlvbik6Ci0gICAgICAgIGFyZ2tleXNfY2FjaGVb
c2NvcGVudW1dID0gZCA9IHt9Ci0gICAgICAgIGZvciBpdGVtIGluIGl0ZW1zOgotICAgICAgICAg
ICAga2V5cyA9IE9yZGVyZWREaWN0LmZyb21rZXlzKGdldF9wYXJhbWV0cml6ZWRfZml4dHVyZV9r
ZXlzKGl0ZW0sIHNjb3BlbnVtKSkKLSAgICAgICAgICAgIGlmIGtleXM6Ci0gICAgICAgICAgICAg
ICAgZFtpdGVtXSA9IGtleXMKLSAgICByZXR1cm4gcmVvcmRlcl9pdGVtc19hdHNjb3BlKGl0ZW1z
LCBzZXQoKSwgYXJna2V5c19jYWNoZSwgMCkKLQotCi1kZWYgcmVvcmRlcl9pdGVtc19hdHNjb3Bl
KGl0ZW1zLCBpZ25vcmUsIGFyZ2tleXNfY2FjaGUsIHNjb3BlbnVtKToKLSAgICBpZiBzY29wZW51
bSA+PSBzY29wZW51bV9mdW5jdGlvbiBvciBsZW4oaXRlbXMpIDwgMzoKLSAgICAgICAgcmV0dXJu
IGl0ZW1zCi0gICAgaXRlbXNfZG9uZSA9IFtdCi0gICAgd2hpbGUgMToKLSAgICAgICAgaXRlbXNf
YmVmb3JlLCBpdGVtc19zYW1lLCBpdGVtc19vdGhlciwgbmV3aWdub3JlID0gXAotICAgICAgICAg
ICAgc2xpY2VfaXRlbXMoaXRlbXMsIGlnbm9yZSwgYXJna2V5c19jYWNoZVtzY29wZW51bV0pCi0g
ICAgICAgIGl0ZW1zX2JlZm9yZSA9IHJlb3JkZXJfaXRlbXNfYXRzY29wZSgKLSAgICAgICAgICAg
IGl0ZW1zX2JlZm9yZSwgaWdub3JlLCBhcmdrZXlzX2NhY2hlLCBzY29wZW51bSArIDEpCi0gICAg
ICAgIGlmIGl0ZW1zX3NhbWUgaXMgTm9uZToKLSAgICAgICAgICAgICMgbm90aGluZyB0byByZW9y
ZGVyIGluIHRoaXMgc2NvcGUKLSAgICAgICAgICAgIGFzc2VydCBpdGVtc19vdGhlciBpcyBOb25l
Ci0gICAgICAgICAgICByZXR1cm4gaXRlbXNfZG9uZSArIGl0ZW1zX2JlZm9yZQotICAgICAgICBp
dGVtc19kb25lLmV4dGVuZChpdGVtc19iZWZvcmUpCi0gICAgICAgIGl0ZW1zID0gaXRlbXNfc2Ft
ZSArIGl0ZW1zX290aGVyCi0gICAgICAgIGlnbm9yZSA9IG5ld2lnbm9yZQotCi0KLWRlZiBzbGlj
ZV9pdGVtcyhpdGVtcywgaWdub3JlLCBzY29wZWRfYXJna2V5c19jYWNoZSk6Ci0gICAgIyB3ZSBw
aWNrIHRoZSBmaXJzdCBpdGVtIHdoaWNoIHVzZXMgYSBmaXh0dXJlIGluc3RhbmNlIGluIHRoZQot
ICAgICMgcmVxdWVzdGVkIHNjb3BlIGFuZCB3aGljaCB3ZSBoYXZlbid0IHNlZW4geWV0LiAgV2Ug
c2xpY2UgdGhlIGlucHV0Ci0gICAgIyBpdGVtcyBsaXN0IGludG8gYSBsaXN0IG9mIGl0ZW1zX25v
bWF0Y2gsIGl0ZW1zX3NhbWUgYW5kCi0gICAgIyBpdGVtc19vdGhlcgotICAgIGlmIHNjb3BlZF9h
cmdrZXlzX2NhY2hlOiAgIyBkbyB3ZSBuZWVkIHRvIGRvIHdvcmsgYXQgYWxsPwotICAgICAgICBp
dCA9IGl0ZXIoaXRlbXMpCi0gICAgICAgICMgZmlyc3QgZmluZCBhIHNsaWNpbmcga2V5Ci0gICAg
ICAgIGZvciBpLCBpdGVtIGluIGVudW1lcmF0ZShpdCk6Ci0gICAgICAgICAgICBhcmdrZXlzID0g
c2NvcGVkX2FyZ2tleXNfY2FjaGUuZ2V0KGl0ZW0pCi0gICAgICAgICAgICBpZiBhcmdrZXlzIGlz
IG5vdCBOb25lOgotICAgICAgICAgICAgICAgIG5ld2FyZ2tleXMgPSBPcmRlcmVkRGljdC5mcm9t
a2V5cyhrIGZvciBrIGluIGFyZ2tleXMgaWYgayBub3QgaW4gaWdub3JlKQotICAgICAgICAgICAg
ICAgIGlmIG5ld2FyZ2tleXM6ICAjIGZvdW5kIGEgc2xpY2luZyBrZXkKLSAgICAgICAgICAgICAg
ICAgICAgc2xpY2luZ19hcmdrZXksIF8gPSBuZXdhcmdrZXlzLnBvcGl0ZW0oKQotICAgICAgICAg
ICAgICAgICAgICBpdGVtc19iZWZvcmUgPSBpdGVtc1s6aV0KLSAgICAgICAgICAgICAgICAgICAg
aXRlbXNfc2FtZSA9IFtpdGVtXQotICAgICAgICAgICAgICAgICAgICBpdGVtc19vdGhlciA9IFtd
Ci0gICAgICAgICAgICAgICAgICAgICMgbm93IHNsaWNlIHRoZSByZW1haW5kZXIgb2YgdGhlIGxp
c3QKLSAgICAgICAgICAgICAgICAgICAgZm9yIGl0ZW0gaW4gaXQ6Ci0gICAgICAgICAgICAgICAg
ICAgICAgICBhcmdrZXlzID0gc2NvcGVkX2FyZ2tleXNfY2FjaGUuZ2V0KGl0ZW0pCi0gICAgICAg
ICAgICAgICAgICAgICAgICBpZiBhcmdrZXlzIGFuZCBzbGljaW5nX2FyZ2tleSBpbiBhcmdrZXlz
IGFuZCBcCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNsaWNpbmdfYXJna2V5IG5v
dCBpbiBpZ25vcmU6Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgaXRlbXNfc2FtZS5hcHBl
bmQoaXRlbSkKLSAgICAgICAgICAgICAgICAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgaXRlbXNfb3RoZXIuYXBwZW5kKGl0ZW0pCi0gICAgICAgICAgICAgICAgICAg
IG5ld2lnbm9yZSA9IGlnbm9yZS5jb3B5KCkKLSAgICAgICAgICAgICAgICAgICAgbmV3aWdub3Jl
LmFkZChzbGljaW5nX2FyZ2tleSkKLSAgICAgICAgICAgICAgICAgICAgcmV0dXJuIChpdGVtc19i
ZWZvcmUsIGl0ZW1zX3NhbWUsIGl0ZW1zX290aGVyLCBuZXdpZ25vcmUpCi0gICAgcmV0dXJuIGl0
ZW1zLCBOb25lLCBOb25lLCBOb25lCi0KLQotZGVmIGZpbGxmaXh0dXJlcyhmdW5jdGlvbik6Ci0g
ICAgIiIiIGZpbGwgbWlzc2luZyBmdW5jYXJncyBmb3IgYSB0ZXN0IGZ1bmN0aW9uLiAiIiIKLSAg
ICB0cnk6Ci0gICAgICAgIHJlcXVlc3QgPSBmdW5jdGlvbi5fcmVxdWVzdAotICAgIGV4Y2VwdCBB
dHRyaWJ1dGVFcnJvcjoKLSAgICAgICAgIyBYWFggdGhpcyBzcGVjaWFsIGNvZGUgcGF0aCBpcyBv
bmx5IGV4cGVjdGVkIHRvIGV4ZWN1dGUKLSAgICAgICAgIyB3aXRoIHRoZSBvZWpza2l0IHBsdWdp
bi4gIEl0IHVzZXMgY2xhc3NlcyB3aXRoIGZ1bmNhcmdzCi0gICAgICAgICMgYW5kIHdlIHRodXMg
aGF2ZSB0byB3b3JrIGEgYml0IHRvIGFsbG93IHRoaXMuCi0gICAgICAgIGZtID0gZnVuY3Rpb24u
c2Vzc2lvbi5fZml4dHVyZW1hbmFnZXIKLSAgICAgICAgZmkgPSBmbS5nZXRmaXh0dXJlaW5mbyhm
dW5jdGlvbi5wYXJlbnQsIGZ1bmN0aW9uLm9iaiwgTm9uZSkKLSAgICAgICAgZnVuY3Rpb24uX2Zp
eHR1cmVpbmZvID0gZmkKLSAgICAgICAgcmVxdWVzdCA9IGZ1bmN0aW9uLl9yZXF1ZXN0ID0gRml4
dHVyZVJlcXVlc3QoZnVuY3Rpb24pCi0gICAgICAgIHJlcXVlc3QuX2ZpbGxmaXh0dXJlcygpCi0g
ICAgICAgICMgcHJ1bmUgb3V0IGZ1bmNhcmdzIGZvciBqc3Rlc3RzCi0gICAgICAgIG5ld2Z1bmNh
cmdzID0ge30KLSAgICAgICAgZm9yIG5hbWUgaW4gZmkuYXJnbmFtZXM6Ci0gICAgICAgICAgICBu
ZXdmdW5jYXJnc1tuYW1lXSA9IGZ1bmN0aW9uLmZ1bmNhcmdzW25hbWVdCi0gICAgICAgIGZ1bmN0
aW9uLmZ1bmNhcmdzID0gbmV3ZnVuY2FyZ3MKLSAgICBlbHNlOgotICAgICAgICByZXF1ZXN0Ll9m
aWxsZml4dHVyZXMoKQotCi0KLWRlZiBnZXRfZGlyZWN0X3BhcmFtX2ZpeHR1cmVfZnVuYyhyZXF1
ZXN0KToKLSAgICByZXR1cm4gcmVxdWVzdC5wYXJhbQotCi0KLWNsYXNzIEZ1bmNGaXh0dXJlSW5m
bzoKLSAgICBkZWYgX19pbml0X18oc2VsZiwgYXJnbmFtZXMsIG5hbWVzX2Nsb3N1cmUsIG5hbWUy
Zml4dHVyZWRlZnMpOgotICAgICAgICBzZWxmLmFyZ25hbWVzID0gYXJnbmFtZXMKLSAgICAgICAg
c2VsZi5uYW1lc19jbG9zdXJlID0gbmFtZXNfY2xvc3VyZQotICAgICAgICBzZWxmLm5hbWUyZml4
dHVyZWRlZnMgPSBuYW1lMmZpeHR1cmVkZWZzCi0KLQotY2xhc3MgRml4dHVyZVJlcXVlc3QoRnVu
Y2FyZ25hbWVzQ29tcGF0QXR0cik6Ci0gICAgIiIiIEEgcmVxdWVzdCBmb3IgYSBmaXh0dXJlIGZy
b20gYSB0ZXN0IG9yIGZpeHR1cmUgZnVuY3Rpb24uCi0KLSAgICBBIHJlcXVlc3Qgb2JqZWN0IGdp
dmVzIGFjY2VzcyB0byB0aGUgcmVxdWVzdGluZyB0ZXN0IGNvbnRleHQKLSAgICBhbmQgaGFzIGFu
IG9wdGlvbmFsIGBgcGFyYW1gYCBhdHRyaWJ1dGUgaW4gY2FzZQotICAgIHRoZSBmaXh0dXJlIGlz
IHBhcmFtZXRyaXplZCBpbmRpcmVjdGx5LgotICAgICIiIgotCi0gICAgZGVmIF9faW5pdF9fKHNl
bGYsIHB5ZnVuY2l0ZW0pOgotICAgICAgICBzZWxmLl9weWZ1bmNpdGVtID0gcHlmdW5jaXRlbQot
ICAgICAgICAjOiBmaXh0dXJlIGZvciB3aGljaCB0aGlzIHJlcXVlc3QgaXMgYmVpbmcgcGVyZm9y
bWVkCi0gICAgICAgIHNlbGYuZml4dHVyZW5hbWUgPSBOb25lCi0gICAgICAgICM6IFNjb3BlIHN0
cmluZywgb25lIG9mICJmdW5jdGlvbiIsICJjbGFzcyIsICJtb2R1bGUiLCAic2Vzc2lvbiIKLSAg
ICAgICAgc2VsZi5zY29wZSA9ICJmdW5jdGlvbiIKLSAgICAgICAgc2VsZi5fZml4dHVyZV92YWx1
ZXMgPSB7fSAgIyBhcmduYW1lIC0+IGZpeHR1cmUgdmFsdWUKLSAgICAgICAgc2VsZi5fZml4dHVy
ZV9kZWZzID0ge30gICMgYXJnbmFtZSAtPiBGaXh0dXJlRGVmCi0gICAgICAgIGZpeHR1cmVpbmZv
ID0gcHlmdW5jaXRlbS5fZml4dHVyZWluZm8KLSAgICAgICAgc2VsZi5fYXJnMmZpeHR1cmVkZWZz
ID0gZml4dHVyZWluZm8ubmFtZTJmaXh0dXJlZGVmcy5jb3B5KCkKLSAgICAgICAgc2VsZi5fYXJn
MmluZGV4ID0ge30KLSAgICAgICAgc2VsZi5fZml4dHVyZW1hbmFnZXIgPSBweWZ1bmNpdGVtLnNl
c3Npb24uX2ZpeHR1cmVtYW5hZ2VyCi0KLSAgICBAcHJvcGVydHkKLSAgICBkZWYgZml4dHVyZW5h
bWVzKHNlbGYpOgotICAgICAgICAjIGJhY2t3YXJkIGluY29tcGF0aWJsZSBub3RlOiBub3cgYSBy
ZWFkb25seSBwcm9wZXJ0eQotICAgICAgICByZXR1cm4gbGlzdChzZWxmLl9weWZ1bmNpdGVtLl9m
aXh0dXJlaW5mby5uYW1lc19jbG9zdXJlKQotCi0gICAgQHByb3BlcnR5Ci0gICAgZGVmIG5vZGUo
c2VsZik6Ci0gICAgICAgICIiIiB1bmRlcmx5aW5nIGNvbGxlY3Rpb24gbm9kZSAoZGVwZW5kcyBv
biBjdXJyZW50IHJlcXVlc3Qgc2NvcGUpIiIiCi0gICAgICAgIHJldHVybiBzZWxmLl9nZXRzY29w
ZWl0ZW0oc2VsZi5zY29wZSkKLQotICAgIGRlZiBfZ2V0bmV4dGZpeHR1cmVkZWYoc2VsZiwgYXJn
bmFtZSk6Ci0gICAgICAgIGZpeHR1cmVkZWZzID0gc2VsZi5fYXJnMmZpeHR1cmVkZWZzLmdldChh
cmduYW1lLCBOb25lKQotICAgICAgICBpZiBmaXh0dXJlZGVmcyBpcyBOb25lOgotICAgICAgICAg
ICAgIyB3ZSBhcnJpdmUgaGVyZSBiZWNhdXNlIG9mIGEgIGEgZHluYW1pYyBjYWxsIHRvCi0gICAg
ICAgICAgICAjIGdldGZpeHR1cmV2YWx1ZShhcmduYW1lKSB1c2FnZSB3aGljaCB3YXMgbmF0dXJh
bGx5Ci0gICAgICAgICAgICAjIG5vdCBrbm93biBhdCBwYXJzaW5nL2NvbGxlY3Rpb24gdGltZQot
ICAgICAgICAgICAgcGFyZW50aWQgPSBzZWxmLl9weWZ1bmNpdGVtLnBhcmVudC5ub2RlaWQKLSAg
ICAgICAgICAgIGZpeHR1cmVkZWZzID0gc2VsZi5fZml4dHVyZW1hbmFnZXIuZ2V0Zml4dHVyZWRl
ZnMoYXJnbmFtZSwgcGFyZW50aWQpCi0gICAgICAgICAgICBzZWxmLl9hcmcyZml4dHVyZWRlZnNb
YXJnbmFtZV0gPSBmaXh0dXJlZGVmcwotICAgICAgICAjIGZpeHR1cmVkZWZzIGxpc3QgaXMgaW1t
dXRhYmxlIHNvIHdlIG1haW50YWluIGEgZGVjcmVhc2luZyBpbmRleAotICAgICAgICBpbmRleCA9
IHNlbGYuX2FyZzJpbmRleC5nZXQoYXJnbmFtZSwgMCkgLSAxCi0gICAgICAgIGlmIGZpeHR1cmVk
ZWZzIGlzIE5vbmUgb3IgKC1pbmRleCA+IGxlbihmaXh0dXJlZGVmcykpOgotICAgICAgICAgICAg
cmFpc2UgRml4dHVyZUxvb2t1cEVycm9yKGFyZ25hbWUsIHNlbGYpCi0gICAgICAgIHNlbGYuX2Fy
ZzJpbmRleFthcmduYW1lXSA9IGluZGV4Ci0gICAgICAgIHJldHVybiBmaXh0dXJlZGVmc1tpbmRl
eF0KLQotICAgIEBwcm9wZXJ0eQotICAgIGRlZiBjb25maWcoc2VsZik6Ci0gICAgICAgICIiIiB0
aGUgcHl0ZXN0IGNvbmZpZyBvYmplY3QgYXNzb2NpYXRlZCB3aXRoIHRoaXMgcmVxdWVzdC4gIiIi
Ci0gICAgICAgIHJldHVybiBzZWxmLl9weWZ1bmNpdGVtLmNvbmZpZwotCi0gICAgQHNjb3BlcHJv
cGVydHkoKQotICAgIGRlZiBmdW5jdGlvbihzZWxmKToKLSAgICAgICAgIiIiIHRlc3QgZnVuY3Rp
b24gb2JqZWN0IGlmIHRoZSByZXF1ZXN0IGhhcyBhIHBlci1mdW5jdGlvbiBzY29wZS4gIiIiCi0g
ICAgICAgIHJldHVybiBzZWxmLl9weWZ1bmNpdGVtLm9iagotCi0gICAgQHNjb3BlcHJvcGVydHko
ImNsYXNzIikKLSAgICBkZWYgY2xzKHNlbGYpOgotICAgICAgICAiIiIgY2xhc3MgKGNhbiBiZSBO
b25lKSB3aGVyZSB0aGUgdGVzdCBmdW5jdGlvbiB3YXMgY29sbGVjdGVkLiAiIiIKLSAgICAgICAg
Y2xzY29sID0gc2VsZi5fcHlmdW5jaXRlbS5nZXRwYXJlbnQoX3B5dGVzdC5weXRob24uQ2xhc3Mp
Ci0gICAgICAgIGlmIGNsc2NvbDoKLSAgICAgICAgICAgIHJldHVybiBjbHNjb2wub2JqCi0KLSAg
ICBAcHJvcGVydHkKLSAgICBkZWYgaW5zdGFuY2Uoc2VsZik6Ci0gICAgICAgICIiIiBpbnN0YW5j
ZSAoY2FuIGJlIE5vbmUpIG9uIHdoaWNoIHRlc3QgZnVuY3Rpb24gd2FzIGNvbGxlY3RlZC4gIiIi
Ci0gICAgICAgICMgdW5pdHRlc3Qgc3VwcG9ydCBoYWNrLCBzZWUgX3B5dGVzdC51bml0dGVzdC5U
ZXN0Q2FzZUZ1bmN0aW9uCi0gICAgICAgIHRyeToKLSAgICAgICAgICAgIHJldHVybiBzZWxmLl9w
eWZ1bmNpdGVtLl90ZXN0Y2FzZQotICAgICAgICBleGNlcHQgQXR0cmlidXRlRXJyb3I6Ci0gICAg
ICAgICAgICBmdW5jdGlvbiA9IGdldGF0dHIoc2VsZiwgImZ1bmN0aW9uIiwgTm9uZSkKLSAgICAg
ICAgICAgIGlmIGZ1bmN0aW9uIGlzIG5vdCBOb25lOgotICAgICAgICAgICAgICAgIHJldHVybiBw
eS5idWlsdGluLl9nZXRpbXNlbGYoZnVuY3Rpb24pCi0KLSAgICBAc2NvcGVwcm9wZXJ0eSgpCi0g
ICAgZGVmIG1vZHVsZShzZWxmKToKLSAgICAgICAgIiIiIHB5dGhvbiBtb2R1bGUgb2JqZWN0IHdo
ZXJlIHRoZSB0ZXN0IGZ1bmN0aW9uIHdhcyBjb2xsZWN0ZWQuICIiIgotICAgICAgICByZXR1cm4g
c2VsZi5fcHlmdW5jaXRlbS5nZXRwYXJlbnQoX3B5dGVzdC5weXRob24uTW9kdWxlKS5vYmoKLQot
ICAgIEBzY29wZXByb3BlcnR5KCkKLSAgICBkZWYgZnNwYXRoKHNlbGYpOgotICAgICAgICAiIiIg
dGhlIGZpbGUgc3lzdGVtIHBhdGggb2YgdGhlIHRlc3QgbW9kdWxlIHdoaWNoIGNvbGxlY3RlZCB0
aGlzIHRlc3QuICIiIgotICAgICAgICByZXR1cm4gc2VsZi5fcHlmdW5jaXRlbS5mc3BhdGgKLQot
ICAgIEBwcm9wZXJ0eQotICAgIGRlZiBrZXl3b3JkcyhzZWxmKToKLSAgICAgICAgIiIiIGtleXdv
cmRzL21hcmtlcnMgZGljdGlvbmFyeSBmb3IgdGhlIHVuZGVybHlpbmcgbm9kZS4gIiIiCi0gICAg
ICAgIHJldHVybiBzZWxmLm5vZGUua2V5d29yZHMKLQotICAgIEBwcm9wZXJ0eQotICAgIGRlZiBz
ZXNzaW9uKHNlbGYpOgotICAgICAgICAiIiIgcHl0ZXN0IHNlc3Npb24gb2JqZWN0LiAiIiIKLSAg
ICAgICAgcmV0dXJuIHNlbGYuX3B5ZnVuY2l0ZW0uc2Vzc2lvbgotCi0gICAgZGVmIGFkZGZpbmFs
aXplcihzZWxmLCBmaW5hbGl6ZXIpOgotICAgICAgICAiIiIgYWRkIGZpbmFsaXplci90ZWFyZG93
biBmdW5jdGlvbiB0byBiZSBjYWxsZWQgYWZ0ZXIgdGhlCi0gICAgICAgIGxhc3QgdGVzdCB3aXRo
aW4gdGhlIHJlcXVlc3RpbmcgdGVzdCBjb250ZXh0IGZpbmlzaGVkCi0gICAgICAgIGV4ZWN1dGlv
bi4gIiIiCi0gICAgICAgICMgWFhYIHVzdWFsbHkgdGhpcyBtZXRob2QgaXMgc2hhZG93ZWQgYnkg
Zml4dHVyZWRlZiBzcGVjaWZpYyBvbmVzCi0gICAgICAgIHNlbGYuX2FkZGZpbmFsaXplcihmaW5h
bGl6ZXIsIHNjb3BlPXNlbGYuc2NvcGUpCi0KLSAgICBkZWYgX2FkZGZpbmFsaXplcihzZWxmLCBm
aW5hbGl6ZXIsIHNjb3BlKToKLSAgICAgICAgY29saXRlbSA9IHNlbGYuX2dldHNjb3BlaXRlbShz
Y29wZSkKLSAgICAgICAgc2VsZi5fcHlmdW5jaXRlbS5zZXNzaW9uLl9zZXR1cHN0YXRlLmFkZGZp
bmFsaXplcigKLSAgICAgICAgICAgIGZpbmFsaXplcj1maW5hbGl6ZXIsIGNvbGl0ZW09Y29saXRl
bSkKLQotICAgIGRlZiBhcHBseW1hcmtlcihzZWxmLCBtYXJrZXIpOgotICAgICAgICAiIiIgQXBw
bHkgYSBtYXJrZXIgdG8gYSBzaW5nbGUgdGVzdCBmdW5jdGlvbiBpbnZvY2F0aW9uLgotICAgICAg
ICBUaGlzIG1ldGhvZCBpcyB1c2VmdWwgaWYgeW91IGRvbid0IHdhbnQgdG8gaGF2ZSBhIGtleXdv
cmQvbWFya2VyCi0gICAgICAgIG9uIGFsbCBmdW5jdGlvbiBpbnZvY2F0aW9ucy4KLQotICAgICAg
ICA6YXJnIG1hcmtlcjogYSA6cHk6Y2xhc3M6YF9weXRlc3QubWFyay5NYXJrRGVjb3JhdG9yYCBv
YmplY3QKLSAgICAgICAgICAgIGNyZWF0ZWQgYnkgYSBjYWxsIHRvIGBgcHl0ZXN0Lm1hcmsuTkFN
RSguLi4pYGAuCi0gICAgICAgICIiIgotICAgICAgICB0cnk6Ci0gICAgICAgICAgICBzZWxmLm5v
ZGUua2V5d29yZHNbbWFya2VyLm1hcmtuYW1lXSA9IG1hcmtlcgotICAgICAgICBleGNlcHQgQXR0
cmlidXRlRXJyb3I6Ci0gICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKG1hcmtlcikKLQotICAg
IGRlZiByYWlzZWVycm9yKHNlbGYsIG1zZyk6Ci0gICAgICAgICIiIiByYWlzZSBhIEZpeHR1cmVM
b29rdXBFcnJvciB3aXRoIHRoZSBnaXZlbiBtZXNzYWdlLiAiIiIKLSAgICAgICAgcmFpc2Ugc2Vs
Zi5fZml4dHVyZW1hbmFnZXIuRml4dHVyZUxvb2t1cEVycm9yKE5vbmUsIHNlbGYsIG1zZykKLQot
ICAgIGRlZiBfZmlsbGZpeHR1cmVzKHNlbGYpOgotICAgICAgICBpdGVtID0gc2VsZi5fcHlmdW5j
aXRlbQotICAgICAgICBmaXh0dXJlbmFtZXMgPSBnZXRhdHRyKGl0ZW0sICJmaXh0dXJlbmFtZXMi
LCBzZWxmLmZpeHR1cmVuYW1lcykKLSAgICAgICAgZm9yIGFyZ25hbWUgaW4gZml4dHVyZW5hbWVz
OgotICAgICAgICAgICAgaWYgYXJnbmFtZSBub3QgaW4gaXRlbS5mdW5jYXJnczoKLSAgICAgICAg
ICAgICAgICBpdGVtLmZ1bmNhcmdzW2FyZ25hbWVdID0gc2VsZi5nZXRmaXh0dXJldmFsdWUoYXJn
bmFtZSkKLQotICAgIGRlZiBjYWNoZWRfc2V0dXAoc2VsZiwgc2V0dXAsIHRlYXJkb3duPU5vbmUs
IHNjb3BlPSJtb2R1bGUiLCBleHRyYWtleT1Ob25lKToKLSAgICAgICAgIiIiIChkZXByZWNhdGVk
KSBSZXR1cm4gYSB0ZXN0aW5nIHJlc291cmNlIG1hbmFnZWQgYnkgYGBzZXR1cGBgICYKLSAgICAg
ICAgYGB0ZWFyZG93bmBgIGNhbGxzLiAgYGBzY29wZWBgIGFuZCBgYGV4dHJha2V5YGAgZGV0ZXJt
aW5lIHdoZW4gdGhlCi0gICAgICAgIGBgdGVhcmRvd25gYCBmdW5jdGlvbiB3aWxsIGJlIGNhbGxl
ZCBzbyB0aGF0IHN1YnNlcXVlbnQgY2FsbHMgdG8KLSAgICAgICAgYGBzZXR1cGBgIHdvdWxkIHJl
Y3JlYXRlIHRoZSByZXNvdXJjZS4gIFdpdGggcHl0ZXN0LTIuMyB5b3Ugb2Z0ZW4KLSAgICAgICAg
ZG8gbm90IG5lZWQgYGBjYWNoZWRfc2V0dXAoKWBgIGFzIHlvdSBjYW4gZGlyZWN0bHkgZGVjbGFy
ZSBhIHNjb3BlCi0gICAgICAgIG9uIGEgZml4dHVyZSBmdW5jdGlvbiBhbmQgcmVnaXN0ZXIgYSBm
aW5hbGl6ZXIgdGhyb3VnaAotICAgICAgICBgYHJlcXVlc3QuYWRkZmluYWxpemVyKClgYC4KLQot
ICAgICAgICA6YXJnIHRlYXJkb3duOiBmdW5jdGlvbiByZWNlaXZpbmcgYSBwcmV2aW91c2x5IHNl
dHVwIHJlc291cmNlLgotICAgICAgICA6YXJnIHNldHVwOiBhIG5vLWFyZ3VtZW50IGZ1bmN0aW9u
IGNyZWF0aW5nIGEgcmVzb3VyY2UuCi0gICAgICAgIDphcmcgc2NvcGU6IGEgc3RyaW5nIHZhbHVl
IG91dCBvZiBgYGZ1bmN0aW9uYGAsIGBgY2xhc3NgYCwgYGBtb2R1bGVgYAotICAgICAgICAgICAg
b3IgYGBzZXNzaW9uYGAgaW5kaWNhdGluZyB0aGUgY2FjaGluZyBsaWZlY3ljbGUgb2YgdGhlIHJl
c291cmNlLgotICAgICAgICA6YXJnIGV4dHJha2V5OiBhZGRlZCB0byBpbnRlcm5hbCBjYWNoaW5n
IGtleSBvZiAoZnVuY2FyZ25hbWUsIHNjb3BlKS4KLSAgICAgICAgIiIiCi0gICAgICAgIGlmIG5v
dCBoYXNhdHRyKHNlbGYuY29uZmlnLCAnX3NldHVwY2FjaGUnKToKLSAgICAgICAgICAgIHNlbGYu
Y29uZmlnLl9zZXR1cGNhY2hlID0ge30gICMgWFhYIHdlYWtyZWY/Ci0gICAgICAgIGNhY2hla2V5
ID0gKHNlbGYuZml4dHVyZW5hbWUsIHNlbGYuX2dldHNjb3BlaXRlbShzY29wZSksIGV4dHJha2V5
KQotICAgICAgICBjYWNoZSA9IHNlbGYuY29uZmlnLl9zZXR1cGNhY2hlCi0gICAgICAgIHRyeToK
LSAgICAgICAgICAgIHZhbCA9IGNhY2hlW2NhY2hla2V5XQotICAgICAgICBleGNlcHQgS2V5RXJy
b3I6Ci0gICAgICAgICAgICBzZWxmLl9jaGVja19zY29wZShzZWxmLmZpeHR1cmVuYW1lLCBzZWxm
LnNjb3BlLCBzY29wZSkKLSAgICAgICAgICAgIHZhbCA9IHNldHVwKCkKLSAgICAgICAgICAgIGNh
Y2hlW2NhY2hla2V5XSA9IHZhbAotICAgICAgICAgICAgaWYgdGVhcmRvd24gaXMgbm90IE5vbmU6
Ci0gICAgICAgICAgICAgICAgZGVmIGZpbmFsaXplcigpOgotICAgICAgICAgICAgICAgICAgICBk
ZWwgY2FjaGVbY2FjaGVrZXldCi0gICAgICAgICAgICAgICAgICAgIHRlYXJkb3duKHZhbCkKLSAg
ICAgICAgICAgICAgICBzZWxmLl9hZGRmaW5hbGl6ZXIoZmluYWxpemVyLCBzY29wZT1zY29wZSkK
LSAgICAgICAgcmV0dXJuIHZhbAotCi0gICAgZGVmIGdldGZpeHR1cmV2YWx1ZShzZWxmLCBhcmdu
YW1lKToKLSAgICAgICAgIiIiIER5bmFtaWNhbGx5IHJ1biBhIG5hbWVkIGZpeHR1cmUgZnVuY3Rp
b24uCi0KLSAgICAgICAgRGVjbGFyaW5nIGZpeHR1cmVzIHZpYSBmdW5jdGlvbiBhcmd1bWVudCBp
cyByZWNvbW1lbmRlZCB3aGVyZSBwb3NzaWJsZS4KLSAgICAgICAgQnV0IGlmIHlvdSBjYW4gb25s
eSBkZWNpZGUgd2hldGhlciB0byB1c2UgYW5vdGhlciBmaXh0dXJlIGF0IHRlc3QKLSAgICAgICAg
c2V0dXAgdGltZSwgeW91IG1heSB1c2UgdGhpcyBmdW5jdGlvbiB0byByZXRyaWV2ZSBpdCBpbnNp
ZGUgYSBmaXh0dXJlCi0gICAgICAgIG9yIHRlc3QgZnVuY3Rpb24gYm9keS4KLSAgICAgICAgIiIi
Ci0gICAgICAgIHJldHVybiBzZWxmLl9nZXRfYWN0aXZlX2ZpeHR1cmVkZWYoYXJnbmFtZSkuY2Fj
aGVkX3Jlc3VsdFswXQotCi0gICAgZGVmIGdldGZ1bmNhcmd2YWx1ZShzZWxmLCBhcmduYW1lKToK
LSAgICAgICAgIiIiIERlcHJlY2F0ZWQsIHVzZSBnZXRmaXh0dXJldmFsdWUuICIiIgotICAgICAg
ICBmcm9tIF9weXRlc3QgaW1wb3J0IGRlcHJlY2F0ZWQKLSAgICAgICAgd2FybmluZ3Mud2FybigK
LSAgICAgICAgICAgIGRlcHJlY2F0ZWQuR0VURlVOQ0FSR1ZBTFVFLAotICAgICAgICAgICAgRGVw
cmVjYXRpb25XYXJuaW5nLAotICAgICAgICAgICAgc3RhY2tsZXZlbD0yKQotICAgICAgICByZXR1
cm4gc2VsZi5nZXRmaXh0dXJldmFsdWUoYXJnbmFtZSkKLQotICAgIGRlZiBfZ2V0X2FjdGl2ZV9m
aXh0dXJlZGVmKHNlbGYsIGFyZ25hbWUpOgotICAgICAgICB0cnk6Ci0gICAgICAgICAgICByZXR1
cm4gc2VsZi5fZml4dHVyZV9kZWZzW2FyZ25hbWVdCi0gICAgICAgIGV4Y2VwdCBLZXlFcnJvcjoK
LSAgICAgICAgICAgIHRyeToKLSAgICAgICAgICAgICAgICBmaXh0dXJlZGVmID0gc2VsZi5fZ2V0
bmV4dGZpeHR1cmVkZWYoYXJnbmFtZSkKLSAgICAgICAgICAgIGV4Y2VwdCBGaXh0dXJlTG9va3Vw
RXJyb3I6Ci0gICAgICAgICAgICAgICAgaWYgYXJnbmFtZSA9PSAicmVxdWVzdCI6Ci0gICAgICAg
ICAgICAgICAgICAgIGNsYXNzIFBzZXVkb0ZpeHR1cmVEZWY6Ci0gICAgICAgICAgICAgICAgICAg
ICAgICBjYWNoZWRfcmVzdWx0ID0gKHNlbGYsIFswXSwgTm9uZSkKLSAgICAgICAgICAgICAgICAg
ICAgICAgIHNjb3BlID0gImZ1bmN0aW9uIgotICAgICAgICAgICAgICAgICAgICByZXR1cm4gUHNl
dWRvRml4dHVyZURlZgotICAgICAgICAgICAgICAgIHJhaXNlCi0gICAgICAgICMgcmVtb3ZlIGlu
ZGVudCB0byBwcmV2ZW50IHRoZSBweXRob24zIGV4Y2VwdGlvbgotICAgICAgICAjIGZyb20gbGVh
a2luZyBpbnRvIHRoZSBjYWxsCi0gICAgICAgIHJlc3VsdCA9IHNlbGYuX2dldGZpeHR1cmV2YWx1
ZShmaXh0dXJlZGVmKQotICAgICAgICBzZWxmLl9maXh0dXJlX3ZhbHVlc1thcmduYW1lXSA9IHJl
c3VsdAotICAgICAgICBzZWxmLl9maXh0dXJlX2RlZnNbYXJnbmFtZV0gPSBmaXh0dXJlZGVmCi0g
ICAgICAgIHJldHVybiBmaXh0dXJlZGVmCi0KLSAgICBkZWYgX2dldF9maXh0dXJlc3RhY2soc2Vs
Zik6Ci0gICAgICAgIGN1cnJlbnQgPSBzZWxmCi0gICAgICAgIHZhbHVlcyA9IFtdCi0gICAgICAg
IHdoaWxlIDE6Ci0gICAgICAgICAgICBmaXh0dXJlZGVmID0gZ2V0YXR0cihjdXJyZW50LCAiX2Zp
eHR1cmVkZWYiLCBOb25lKQotICAgICAgICAgICAgaWYgZml4dHVyZWRlZiBpcyBOb25lOgotICAg
ICAgICAgICAgICAgIHZhbHVlcy5yZXZlcnNlKCkKLSAgICAgICAgICAgICAgICByZXR1cm4gdmFs
dWVzCi0gICAgICAgICAgICB2YWx1ZXMuYXBwZW5kKGZpeHR1cmVkZWYpCi0gICAgICAgICAgICBj
dXJyZW50ID0gY3VycmVudC5fcGFyZW50X3JlcXVlc3QKLQotICAgIGRlZiBfZ2V0Zml4dHVyZXZh
bHVlKHNlbGYsIGZpeHR1cmVkZWYpOgotICAgICAgICAjIHByZXBhcmUgYSBzdWJyZXF1ZXN0IG9i
amVjdCBiZWZvcmUgY2FsbGluZyBmaXh0dXJlIGZ1bmN0aW9uCi0gICAgICAgICMgKGxhdHRlciBt
YW5hZ2VkIGJ5IGZpeHR1cmVkZWYpCi0gICAgICAgIGFyZ25hbWUgPSBmaXh0dXJlZGVmLmFyZ25h
bWUKLSAgICAgICAgZnVuY2l0ZW0gPSBzZWxmLl9weWZ1bmNpdGVtCi0gICAgICAgIHNjb3BlID0g
Zml4dHVyZWRlZi5zY29wZQotICAgICAgICB0cnk6Ci0gICAgICAgICAgICBwYXJhbSA9IGZ1bmNp
dGVtLmNhbGxzcGVjLmdldHBhcmFtKGFyZ25hbWUpCi0gICAgICAgIGV4Y2VwdCAoQXR0cmlidXRl
RXJyb3IsIFZhbHVlRXJyb3IpOgotICAgICAgICAgICAgcGFyYW0gPSBOT1RTRVQKLSAgICAgICAg
ICAgIHBhcmFtX2luZGV4ID0gMAotICAgICAgICAgICAgaWYgZml4dHVyZWRlZi5wYXJhbXMgaXMg
bm90IE5vbmU6Ci0gICAgICAgICAgICAgICAgZnJhbWUgPSBpbnNwZWN0LnN0YWNrKClbM10KLSAg
ICAgICAgICAgICAgICBmcmFtZWluZm8gPSBpbnNwZWN0LmdldGZyYW1laW5mbyhmcmFtZVswXSkK
LSAgICAgICAgICAgICAgICBzb3VyY2VfcGF0aCA9IGZyYW1laW5mby5maWxlbmFtZQotICAgICAg
ICAgICAgICAgIHNvdXJjZV9saW5lbm8gPSBmcmFtZWluZm8ubGluZW5vCi0gICAgICAgICAgICAg
ICAgc291cmNlX3BhdGggPSBweS5wYXRoLmxvY2FsKHNvdXJjZV9wYXRoKQotICAgICAgICAgICAg
ICAgIGlmIHNvdXJjZV9wYXRoLnJlbHRvKGZ1bmNpdGVtLmNvbmZpZy5yb290ZGlyKToKLSAgICAg
ICAgICAgICAgICAgICAgc291cmNlX3BhdGggPSBzb3VyY2VfcGF0aC5yZWx0byhmdW5jaXRlbS5j
b25maWcucm9vdGRpcikKLSAgICAgICAgICAgICAgICBtc2cgPSAoCi0gICAgICAgICAgICAgICAg
ICAgICJUaGUgcmVxdWVzdGVkIGZpeHR1cmUgaGFzIG5vIHBhcmFtZXRlciBkZWZpbmVkIGZvciB0
aGUgIgotICAgICAgICAgICAgICAgICAgICAiY3VycmVudCB0ZXN0LlxuXG5SZXF1ZXN0ZWQgZml4
dHVyZSAnezB9JyBkZWZpbmVkIGluOlxuezF9IgotICAgICAgICAgICAgICAgICAgICAiXG5cblJl
cXVlc3RlZCBoZXJlOlxuezJ9OnszfSIuZm9ybWF0KAotICAgICAgICAgICAgICAgICAgICAgICAg
Zml4dHVyZWRlZi5hcmduYW1lLAotICAgICAgICAgICAgICAgICAgICAgICAgZ2V0bG9jYXRpb24o
Zml4dHVyZWRlZi5mdW5jLCBmdW5jaXRlbS5jb25maWcucm9vdGRpciksCi0gICAgICAgICAgICAg
ICAgICAgICAgICBzb3VyY2VfcGF0aCwKLSAgICAgICAgICAgICAgICAgICAgICAgIHNvdXJjZV9s
aW5lbm8sCi0gICAgICAgICAgICAgICAgICAgICkKLSAgICAgICAgICAgICAgICApCi0gICAgICAg
ICAgICAgICAgZmFpbChtc2cpCi0gICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAjIGluZGljZXMg
bWlnaHQgbm90IGJlIHNldCBpZiBvbGQtc3R5bGUgbWV0YWZ1bmMuYWRkY2FsbCgpIHdhcyB1c2Vk
Ci0gICAgICAgICAgICBwYXJhbV9pbmRleCA9IGZ1bmNpdGVtLmNhbGxzcGVjLmluZGljZXMuZ2V0
KGFyZ25hbWUsIDApCi0gICAgICAgICAgICAjIGlmIGEgcGFyYW1ldHJpemUgaW52b2NhdGlvbiBz
ZXQgYSBzY29wZSBpdCB3aWxsIG92ZXJyaWRlCi0gICAgICAgICAgICAjIHRoZSBzdGF0aWMgc2Nv
cGUgZGVmaW5lZCB3aXRoIHRoZSBmaXh0dXJlIGZ1bmN0aW9uCi0gICAgICAgICAgICBwYXJhbXNj
b3BlbnVtID0gZnVuY2l0ZW0uY2FsbHNwZWMuX2FyZzJzY29wZW51bS5nZXQoYXJnbmFtZSkKLSAg
ICAgICAgICAgIGlmIHBhcmFtc2NvcGVudW0gaXMgbm90IE5vbmU6Ci0gICAgICAgICAgICAgICAg
c2NvcGUgPSBzY29wZXNbcGFyYW1zY29wZW51bV0KLQotICAgICAgICBzdWJyZXF1ZXN0ID0gU3Vi
UmVxdWVzdChzZWxmLCBzY29wZSwgcGFyYW0sIHBhcmFtX2luZGV4LCBmaXh0dXJlZGVmKQotCi0g
ICAgICAgICMgY2hlY2sgaWYgYSBoaWdoZXItbGV2ZWwgc2NvcGVkIGZpeHR1cmUgYWNjZXNzZXMg
YSBsb3dlciBsZXZlbCBvbmUKLSAgICAgICAgc3VicmVxdWVzdC5fY2hlY2tfc2NvcGUoYXJnbmFt
ZSwgc2VsZi5zY29wZSwgc2NvcGUpCi0KLSAgICAgICAgIyBjbGVhciBzeXMuZXhjX2luZm8gYmVm
b3JlIGludm9raW5nIHRoZSBmaXh0dXJlIChweXRob24gYnVnPykKLSAgICAgICAgIyBpZiBpdHMg
bm90IGV4cGxpY2l0bHkgY2xlYXJlZCBpdCB3aWxsIGxlYWsgaW50byB0aGUgY2FsbAotICAgICAg
ICBleGNfY2xlYXIoKQotICAgICAgICB0cnk6Ci0gICAgICAgICAgICAjIGNhbGwgdGhlIGZpeHR1
cmUgZnVuY3Rpb24KLSAgICAgICAgICAgIHZhbCA9IGZpeHR1cmVkZWYuZXhlY3V0ZShyZXF1ZXN0
PXN1YnJlcXVlc3QpCi0gICAgICAgIGZpbmFsbHk6Ci0gICAgICAgICAgICAjIGlmIGZpeHR1cmUg
ZnVuY3Rpb24gZmFpbGVkIGl0IG1pZ2h0IGhhdmUgcmVnaXN0ZXJlZCBmaW5hbGl6ZXJzCi0gICAg
ICAgICAgICBzZWxmLnNlc3Npb24uX3NldHVwc3RhdGUuYWRkZmluYWxpemVyKGZ1bmN0b29scy5w
YXJ0aWFsKGZpeHR1cmVkZWYuZmluaXNoLCByZXF1ZXN0PXN1YnJlcXVlc3QpLAotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdWJyZXF1ZXN0Lm5vZGUp
Ci0gICAgICAgIHJldHVybiB2YWwKLQotICAgIGRlZiBfY2hlY2tfc2NvcGUoc2VsZiwgYXJnbmFt
ZSwgaW52b2tpbmdfc2NvcGUsIHJlcXVlc3RlZF9zY29wZSk6Ci0gICAgICAgIGlmIGFyZ25hbWUg
PT0gInJlcXVlc3QiOgotICAgICAgICAgICAgcmV0dXJuCi0gICAgICAgIGlmIHNjb3BlbWlzbWF0
Y2goaW52b2tpbmdfc2NvcGUsIHJlcXVlc3RlZF9zY29wZSk6Ci0gICAgICAgICAgICAjIHRyeSB0
byByZXBvcnQgc29tZXRoaW5nIGhlbHBmdWwKLSAgICAgICAgICAgIGxpbmVzID0gc2VsZi5fZmFj
dG9yeXRyYWNlYmFjaygpCi0gICAgICAgICAgICBmYWlsKCJTY29wZU1pc21hdGNoOiBZb3UgdHJp
ZWQgdG8gYWNjZXNzIHRoZSAlciBzY29wZWQgIgotICAgICAgICAgICAgICAgICAiZml4dHVyZSAl
ciB3aXRoIGEgJXIgc2NvcGVkIHJlcXVlc3Qgb2JqZWN0LCAiCi0gICAgICAgICAgICAgICAgICJp
bnZvbHZlZCBmYWN0b3JpZXNcbiVzIiAlICgKLSAgICAgICAgICAgICAgICAgICAgIChyZXF1ZXN0
ZWRfc2NvcGUsIGFyZ25hbWUsIGludm9raW5nX3Njb3BlLCAiXG4iLmpvaW4obGluZXMpKSksCi0g
ICAgICAgICAgICAgICAgIHB5dHJhY2U9RmFsc2UpCi0KLSAgICBkZWYgX2ZhY3Rvcnl0cmFjZWJh
Y2soc2VsZik6Ci0gICAgICAgIGxpbmVzID0gW10KLSAgICAgICAgZm9yIGZpeHR1cmVkZWYgaW4g
c2VsZi5fZ2V0X2ZpeHR1cmVzdGFjaygpOgotICAgICAgICAgICAgZmFjdG9yeSA9IGZpeHR1cmVk
ZWYuZnVuYwotICAgICAgICAgICAgZnMsIGxpbmVubyA9IGdldGZzbGluZW5vKGZhY3RvcnkpCi0g
ICAgICAgICAgICBwID0gc2VsZi5fcHlmdW5jaXRlbS5zZXNzaW9uLmZzcGF0aC5iZXN0cmVscGF0
aChmcykKLSAgICAgICAgICAgIGFyZ3MgPSBfZm9ybWF0X2FyZ3MoZmFjdG9yeSkKLSAgICAgICAg
ICAgIGxpbmVzLmFwcGVuZCgiJXM6JWQ6ICBkZWYgJXMlcyIgJSAoCi0gICAgICAgICAgICAgICAg
cCwgbGluZW5vLCBmYWN0b3J5Ll9fbmFtZV9fLCBhcmdzKSkKLSAgICAgICAgcmV0dXJuIGxpbmVz
Ci0KLSAgICBkZWYgX2dldHNjb3BlaXRlbShzZWxmLCBzY29wZSk6Ci0gICAgICAgIGlmIHNjb3Bl
ID09ICJmdW5jdGlvbiI6Ci0gICAgICAgICAgICAjIHRoaXMgbWlnaHQgYWxzbyBiZSBhIG5vbi1m
dW5jdGlvbiBJdGVtIGRlc3BpdGUgaXRzIGF0dHJpYnV0ZSBuYW1lCi0gICAgICAgICAgICByZXR1
cm4gc2VsZi5fcHlmdW5jaXRlbQotICAgICAgICBub2RlID0gZ2V0X3Njb3BlX25vZGUoc2VsZi5f
cHlmdW5jaXRlbSwgc2NvcGUpCi0gICAgICAgIGlmIG5vZGUgaXMgTm9uZSBhbmQgc2NvcGUgPT0g
ImNsYXNzIjoKLSAgICAgICAgICAgICMgZmFsbGJhY2sgdG8gZnVuY3Rpb24gaXRlbSBpdHNlbGYK
LSAgICAgICAgICAgIG5vZGUgPSBzZWxmLl9weWZ1bmNpdGVtCi0gICAgICAgIGFzc2VydCBub2Rl
LCAnQ291bGQgbm90IG9idGFpbiBhIG5vZGUgZm9yIHNjb3BlICJ7fSIgZm9yIGZ1bmN0aW9uIHsh
cn0nLmZvcm1hdChzY29wZSwgc2VsZi5fcHlmdW5jaXRlbSkKLSAgICAgICAgcmV0dXJuIG5vZGUK
LQotICAgIGRlZiBfX3JlcHJfXyhzZWxmKToKLSAgICAgICAgcmV0dXJuICI8Rml4dHVyZVJlcXVl
c3QgZm9yICVyPiIgJSAoc2VsZi5ub2RlKQotCi0KLWNsYXNzIFN1YlJlcXVlc3QoRml4dHVyZVJl
cXVlc3QpOgotICAgICIiIiBhIHN1YiByZXF1ZXN0IGZvciBoYW5kbGluZyBnZXR0aW5nIGEgZml4
dHVyZSBmcm9tIGEKLSAgICB0ZXN0IGZ1bmN0aW9uL2ZpeHR1cmUuICIiIgotCi0gICAgZGVmIF9f
aW5pdF9fKHNlbGYsIHJlcXVlc3QsIHNjb3BlLCBwYXJhbSwgcGFyYW1faW5kZXgsIGZpeHR1cmVk
ZWYpOgotICAgICAgICBzZWxmLl9wYXJlbnRfcmVxdWVzdCA9IHJlcXVlc3QKLSAgICAgICAgc2Vs
Zi5maXh0dXJlbmFtZSA9IGZpeHR1cmVkZWYuYXJnbmFtZQotICAgICAgICBpZiBwYXJhbSBpcyBu
b3QgTk9UU0VUOgotICAgICAgICAgICAgc2VsZi5wYXJhbSA9IHBhcmFtCi0gICAgICAgIHNlbGYu
cGFyYW1faW5kZXggPSBwYXJhbV9pbmRleAotICAgICAgICBzZWxmLnNjb3BlID0gc2NvcGUKLSAg
ICAgICAgc2VsZi5fZml4dHVyZWRlZiA9IGZpeHR1cmVkZWYKLSAgICAgICAgc2VsZi5fcHlmdW5j
aXRlbSA9IHJlcXVlc3QuX3B5ZnVuY2l0ZW0KLSAgICAgICAgc2VsZi5fZml4dHVyZV92YWx1ZXMg
PSByZXF1ZXN0Ll9maXh0dXJlX3ZhbHVlcwotICAgICAgICBzZWxmLl9maXh0dXJlX2RlZnMgPSBy
ZXF1ZXN0Ll9maXh0dXJlX2RlZnMKLSAgICAgICAgc2VsZi5fYXJnMmZpeHR1cmVkZWZzID0gcmVx
dWVzdC5fYXJnMmZpeHR1cmVkZWZzCi0gICAgICAgIHNlbGYuX2FyZzJpbmRleCA9IHJlcXVlc3Qu
X2FyZzJpbmRleAotICAgICAgICBzZWxmLl9maXh0dXJlbWFuYWdlciA9IHJlcXVlc3QuX2ZpeHR1
cmVtYW5hZ2VyCi0KLSAgICBkZWYgX19yZXByX18oc2VsZik6Ci0gICAgICAgIHJldHVybiAiPFN1
YlJlcXVlc3QgJXIgZm9yICVyPiIgJSAoc2VsZi5maXh0dXJlbmFtZSwgc2VsZi5fcHlmdW5jaXRl
bSkKLQotICAgIGRlZiBhZGRmaW5hbGl6ZXIoc2VsZiwgZmluYWxpemVyKToKLSAgICAgICAgc2Vs
Zi5fZml4dHVyZWRlZi5hZGRmaW5hbGl6ZXIoZmluYWxpemVyKQotCi0KLWNsYXNzIFNjb3BlTWlz
bWF0Y2hFcnJvcihFeGNlcHRpb24pOgotICAgICIiIiBBIGZpeHR1cmUgZnVuY3Rpb24gdHJpZXMg
dG8gdXNlIGEgZGlmZmVyZW50IGZpeHR1cmUgZnVuY3Rpb24gd2hpY2gKLSAgICB3aGljaCBoYXMg
YSBsb3dlciBzY29wZSAoZS5nLiBhIFNlc3Npb24gb25lIGNhbGxzIGEgZnVuY3Rpb24gb25lKQot
ICAgICIiIgotCi0KLXNjb3BlcyA9ICJzZXNzaW9uIG1vZHVsZSBjbGFzcyBmdW5jdGlvbiIuc3Bs
aXQoKQotc2NvcGVudW1fZnVuY3Rpb24gPSBzY29wZXMuaW5kZXgoImZ1bmN0aW9uIikKLQotCi1k
ZWYgc2NvcGVtaXNtYXRjaChjdXJyZW50c2NvcGUsIG5ld3Njb3BlKToKLSAgICByZXR1cm4gc2Nv
cGVzLmluZGV4KG5ld3Njb3BlKSA+IHNjb3Blcy5pbmRleChjdXJyZW50c2NvcGUpCi0KLQotZGVm
IHNjb3BlMmluZGV4KHNjb3BlLCBkZXNjciwgd2hlcmU9Tm9uZSk6Ci0gICAgIiIiTG9vayB1cCB0
aGUgaW5kZXggb2YgYGBzY29wZWBgIGFuZCByYWlzZSBhIGRlc2NyaXB0aXZlIHZhbHVlIGVycm9y
Ci0gICAgaWYgbm90IGRlZmluZWQuCi0gICAgIiIiCi0gICAgdHJ5OgotICAgICAgICByZXR1cm4g
c2NvcGVzLmluZGV4KHNjb3BlKQotICAgIGV4Y2VwdCBWYWx1ZUVycm9yOgotICAgICAgICByYWlz
ZSBWYWx1ZUVycm9yKAotICAgICAgICAgICAgInswfSB7MX1oYXMgYW4gdW5zdXBwb3J0ZWQgc2Nv
cGUgdmFsdWUgJ3syfSciLmZvcm1hdCgKLSAgICAgICAgICAgICAgICBkZXNjciwgJ2Zyb20gezB9
ICcuZm9ybWF0KHdoZXJlKSBpZiB3aGVyZSBlbHNlICcnLAotICAgICAgICAgICAgICAgIHNjb3Bl
KQotICAgICAgICApCi0KLQotY2xhc3MgRml4dHVyZUxvb2t1cEVycm9yKExvb2t1cEVycm9yKToK
LSAgICAiIiIgY291bGQgbm90IHJldHVybiBhIHJlcXVlc3RlZCBGaXh0dXJlIChtaXNzaW5nIG9y
IGludmFsaWQpLiAiIiIKLQotICAgIGRlZiBfX2luaXRfXyhzZWxmLCBhcmduYW1lLCByZXF1ZXN0
LCBtc2c9Tm9uZSk6Ci0gICAgICAgIHNlbGYuYXJnbmFtZSA9IGFyZ25hbWUKLSAgICAgICAgc2Vs
Zi5yZXF1ZXN0ID0gcmVxdWVzdAotICAgICAgICBzZWxmLmZpeHR1cmVzdGFjayA9IHJlcXVlc3Qu
X2dldF9maXh0dXJlc3RhY2soKQotICAgICAgICBzZWxmLm1zZyA9IG1zZwotCi0gICAgZGVmIGZv
cm1hdHJlcHIoc2VsZik6Ci0gICAgICAgIHRibGluZXMgPSBbXQotICAgICAgICBhZGRsaW5lID0g
dGJsaW5lcy5hcHBlbmQKLSAgICAgICAgc3RhY2sgPSBbc2VsZi5yZXF1ZXN0Ll9weWZ1bmNpdGVt
Lm9ial0KLSAgICAgICAgc3RhY2suZXh0ZW5kKG1hcChsYW1iZGEgeDogeC5mdW5jLCBzZWxmLmZp
eHR1cmVzdGFjaykpCi0gICAgICAgIG1zZyA9IHNlbGYubXNnCi0gICAgICAgIGlmIG1zZyBpcyBu
b3QgTm9uZToKLSAgICAgICAgICAgICMgdGhlIGxhc3QgZml4dHVyZSByYWlzZSBhbiBlcnJvciwg
bGV0J3MgcHJlc2VudAotICAgICAgICAgICAgIyBpdCBhdCB0aGUgcmVxdWVzdGluZyBzaWRlCi0g
ICAgICAgICAgICBzdGFjayA9IHN0YWNrWzotMV0KLSAgICAgICAgZm9yIGZ1bmN0aW9uIGluIHN0
YWNrOgotICAgICAgICAgICAgZnNwYXRoLCBsaW5lbm8gPSBnZXRmc2xpbmVubyhmdW5jdGlvbikK
LSAgICAgICAgICAgIHRyeToKLSAgICAgICAgICAgICAgICBsaW5lcywgXyA9IGluc3BlY3QuZ2V0
c291cmNlbGluZXMoZ2V0X3JlYWxfZnVuYyhmdW5jdGlvbikpCi0gICAgICAgICAgICBleGNlcHQg
KElPRXJyb3IsIEluZGV4RXJyb3IsIFR5cGVFcnJvcik6Ci0gICAgICAgICAgICAgICAgZXJyb3Jf
bXNnID0gImZpbGUgJXMsIGxpbmUgJXM6IHNvdXJjZSBjb2RlIG5vdCBhdmFpbGFibGUiCi0gICAg
ICAgICAgICAgICAgYWRkbGluZShlcnJvcl9tc2cgJSAoZnNwYXRoLCBsaW5lbm8gKyAxKSkKLSAg
ICAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAgICAgYWRkbGluZSgiZmlsZSAlcywgbGluZSAl
cyIgJSAoZnNwYXRoLCBsaW5lbm8gKyAxKSkKLSAgICAgICAgICAgICAgICBmb3IgaSwgbGluZSBp
biBlbnVtZXJhdGUobGluZXMpOgotICAgICAgICAgICAgICAgICAgICBsaW5lID0gbGluZS5yc3Ry
aXAoKQotICAgICAgICAgICAgICAgICAgICBhZGRsaW5lKCIgICIgKyBsaW5lKQotICAgICAgICAg
ICAgICAgICAgICBpZiBsaW5lLmxzdHJpcCgpLnN0YXJ0c3dpdGgoJ2RlZicpOgotICAgICAgICAg
ICAgICAgICAgICAgICAgYnJlYWsKLQotICAgICAgICBpZiBtc2cgaXMgTm9uZToKLSAgICAgICAg
ICAgIGZtID0gc2VsZi5yZXF1ZXN0Ll9maXh0dXJlbWFuYWdlcgotICAgICAgICAgICAgYXZhaWxh
YmxlID0gW10KLSAgICAgICAgICAgIHBhcmVudGlkID0gc2VsZi5yZXF1ZXN0Ll9weWZ1bmNpdGVt
LnBhcmVudC5ub2RlaWQKLSAgICAgICAgICAgIGZvciBuYW1lLCBmaXh0dXJlZGVmcyBpbiBmbS5f
YXJnMmZpeHR1cmVkZWZzLml0ZW1zKCk6Ci0gICAgICAgICAgICAgICAgZmFjbGlzdCA9IGxpc3Qo
Zm0uX21hdGNoZmFjdG9yaWVzKGZpeHR1cmVkZWZzLCBwYXJlbnRpZCkpCi0gICAgICAgICAgICAg
ICAgaWYgZmFjbGlzdCBhbmQgbmFtZSBub3QgaW4gYXZhaWxhYmxlOgotICAgICAgICAgICAgICAg
ICAgICBhdmFpbGFibGUuYXBwZW5kKG5hbWUpCi0gICAgICAgICAgICBtc2cgPSAiZml4dHVyZSAl
ciBub3QgZm91bmQiICUgKHNlbGYuYXJnbmFtZSwpCi0gICAgICAgICAgICBtc2cgKz0gIlxuIGF2
YWlsYWJsZSBmaXh0dXJlczogJXMiICUgKCIsICIuam9pbihzb3J0ZWQoYXZhaWxhYmxlKSksKQot
ICAgICAgICAgICAgbXNnICs9ICJcbiB1c2UgJ3B5dGVzdCAtLWZpeHR1cmVzIFt0ZXN0cGF0aF0n
IGZvciBoZWxwIG9uIHRoZW0uIgotCi0gICAgICAgIHJldHVybiBGaXh0dXJlTG9va3VwRXJyb3JS
ZXByKGZzcGF0aCwgbGluZW5vLCB0YmxpbmVzLCBtc2csIHNlbGYuYXJnbmFtZSkKLQotCi1jbGFz
cyBGaXh0dXJlTG9va3VwRXJyb3JSZXByKFRlcm1pbmFsUmVwcik6Ci0gICAgZGVmIF9faW5pdF9f
KHNlbGYsIGZpbGVuYW1lLCBmaXJzdGxpbmVubywgdGJsaW5lcywgZXJyb3JzdHJpbmcsIGFyZ25h
bWUpOgotICAgICAgICBzZWxmLnRibGluZXMgPSB0YmxpbmVzCi0gICAgICAgIHNlbGYuZXJyb3Jz
dHJpbmcgPSBlcnJvcnN0cmluZwotICAgICAgICBzZWxmLmZpbGVuYW1lID0gZmlsZW5hbWUKLSAg
ICAgICAgc2VsZi5maXJzdGxpbmVubyA9IGZpcnN0bGluZW5vCi0gICAgICAgIHNlbGYuYXJnbmFt
ZSA9IGFyZ25hbWUKLQotICAgIGRlZiB0b3Rlcm1pbmFsKHNlbGYsIHR3KToKLSAgICAgICAgIyB0
dy5saW5lKCJGaXh0dXJlTG9va3VwRXJyb3I6ICVzIiAlKHNlbGYuYXJnbmFtZSksIHJlZD1UcnVl
KQotICAgICAgICBmb3IgdGJsaW5lIGluIHNlbGYudGJsaW5lczoKLSAgICAgICAgICAgIHR3Lmxp
bmUodGJsaW5lLnJzdHJpcCgpKQotICAgICAgICBsaW5lcyA9IHNlbGYuZXJyb3JzdHJpbmcuc3Bs
aXQoIlxuIikKLSAgICAgICAgaWYgbGluZXM6Ci0gICAgICAgICAgICB0dy5saW5lKCd7MH0gICAg
ICAgezF9Jy5mb3JtYXQoRm9ybWF0dGVkRXhjaW5mby5mYWlsX21hcmtlciwKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaW5lc1swXS5zdHJpcCgpKSwgcmVkPVRy
dWUpCi0gICAgICAgICAgICBmb3IgbGluZSBpbiBsaW5lc1sxOl06Ci0gICAgICAgICAgICAgICAg
dHcubGluZSgnezB9ICAgICAgIHsxfScuZm9ybWF0KEZvcm1hdHRlZEV4Y2luZm8uZmxvd19tYXJr
ZXIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpbmUu
c3RyaXAoKSksIHJlZD1UcnVlKQotICAgICAgICB0dy5saW5lKCkKLSAgICAgICAgdHcubGluZSgi
JXM6JWQiICUgKHNlbGYuZmlsZW5hbWUsIHNlbGYuZmlyc3RsaW5lbm8gKyAxKSkKLQotCi1kZWYg
ZmFpbF9maXh0dXJlZnVuYyhmaXh0dXJlZnVuYywgbXNnKToKLSAgICBmcywgbGluZW5vID0gZ2V0
ZnNsaW5lbm8oZml4dHVyZWZ1bmMpCi0gICAgbG9jYXRpb24gPSAiJXM6JXMiICUgKGZzLCBsaW5l
bm8gKyAxKQotICAgIHNvdXJjZSA9IF9weXRlc3QuX2NvZGUuU291cmNlKGZpeHR1cmVmdW5jKQot
ICAgIGZhaWwobXNnICsgIjpcblxuIiArIHN0cihzb3VyY2UuaW5kZW50KCkpICsgIlxuIiArIGxv
Y2F0aW9uLAotICAgICAgICAgcHl0cmFjZT1GYWxzZSkKLQotCi1kZWYgY2FsbF9maXh0dXJlX2Z1
bmMoZml4dHVyZWZ1bmMsIHJlcXVlc3QsIGt3YXJncyk6Ci0gICAgeWllbGRjdHggPSBpc19nZW5l
cmF0b3IoZml4dHVyZWZ1bmMpCi0gICAgaWYgeWllbGRjdHg6Ci0gICAgICAgIGl0ID0gZml4dHVy
ZWZ1bmMoKiprd2FyZ3MpCi0gICAgICAgIHJlcyA9IG5leHQoaXQpCi0KLSAgICAgICAgZGVmIHRl
YXJkb3duKCk6Ci0gICAgICAgICAgICB0cnk6Ci0gICAgICAgICAgICAgICAgbmV4dChpdCkKLSAg
ICAgICAgICAgIGV4Y2VwdCBTdG9wSXRlcmF0aW9uOgotICAgICAgICAgICAgICAgIHBhc3MKLSAg
ICAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAgICAgZmFpbF9maXh0dXJlZnVuYyhmaXh0dXJl
ZnVuYywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ5aWVsZF9maXh0dXJlIGZ1
bmN0aW9uIGhhcyBtb3JlIHRoYW4gb25lICd5aWVsZCciKQotCi0gICAgICAgIHJlcXVlc3QuYWRk
ZmluYWxpemVyKHRlYXJkb3duKQotICAgIGVsc2U6Ci0gICAgICAgIHJlcyA9IGZpeHR1cmVmdW5j
KCoqa3dhcmdzKQotICAgIHJldHVybiByZXMKLQotCi1jbGFzcyBGaXh0dXJlRGVmOgotICAgICIi
IiBBIGNvbnRhaW5lciBmb3IgYSBmYWN0b3J5IGRlZmluaXRpb24uICIiIgotCi0gICAgZGVmIF9f
aW5pdF9fKHNlbGYsIGZpeHR1cmVtYW5hZ2VyLCBiYXNlaWQsIGFyZ25hbWUsIGZ1bmMsIHNjb3Bl
LCBwYXJhbXMsCi0gICAgICAgICAgICAgICAgIHVuaXR0ZXN0PUZhbHNlLCBpZHM9Tm9uZSk6Ci0g
ICAgICAgIHNlbGYuX2ZpeHR1cmVtYW5hZ2VyID0gZml4dHVyZW1hbmFnZXIKLSAgICAgICAgc2Vs
Zi5iYXNlaWQgPSBiYXNlaWQgb3IgJycKLSAgICAgICAgc2VsZi5oYXNfbG9jYXRpb24gPSBiYXNl
aWQgaXMgbm90IE5vbmUKLSAgICAgICAgc2VsZi5mdW5jID0gZnVuYwotICAgICAgICBzZWxmLmFy
Z25hbWUgPSBhcmduYW1lCi0gICAgICAgIHNlbGYuc2NvcGUgPSBzY29wZQotICAgICAgICBzZWxm
LnNjb3BlbnVtID0gc2NvcGUyaW5kZXgoCi0gICAgICAgICAgICBzY29wZSBvciAiZnVuY3Rpb24i
LAotICAgICAgICAgICAgZGVzY3I9J2ZpeHR1cmUgezB9Jy5mb3JtYXQoZnVuYy5fX25hbWVfXyks
Ci0gICAgICAgICAgICB3aGVyZT1iYXNlaWQKLSAgICAgICAgKQotICAgICAgICBzZWxmLnBhcmFt
cyA9IHBhcmFtcwotICAgICAgICBzZWxmLmFyZ25hbWVzID0gZ2V0ZnVuY2FyZ25hbWVzKGZ1bmMs
IGlzX21ldGhvZD11bml0dGVzdCkKLSAgICAgICAgc2VsZi51bml0dGVzdCA9IHVuaXR0ZXN0Ci0g
ICAgICAgIHNlbGYuaWRzID0gaWRzCi0gICAgICAgIHNlbGYuX2ZpbmFsaXplcnMgPSBbXQotCi0g
ICAgZGVmIGFkZGZpbmFsaXplcihzZWxmLCBmaW5hbGl6ZXIpOgotICAgICAgICBzZWxmLl9maW5h
bGl6ZXJzLmFwcGVuZChmaW5hbGl6ZXIpCi0KLSAgICBkZWYgZmluaXNoKHNlbGYsIHJlcXVlc3Qp
OgotICAgICAgICBleGNlcHRpb25zID0gW10KLSAgICAgICAgdHJ5OgotICAgICAgICAgICAgd2hp
bGUgc2VsZi5fZmluYWxpemVyczoKLSAgICAgICAgICAgICAgICB0cnk6Ci0gICAgICAgICAgICAg
ICAgICAgIGZ1bmMgPSBzZWxmLl9maW5hbGl6ZXJzLnBvcCgpCi0gICAgICAgICAgICAgICAgICAg
IGZ1bmMoKQotICAgICAgICAgICAgICAgIGV4Y2VwdDogICMgbm9xYQotICAgICAgICAgICAgICAg
ICAgICBleGNlcHRpb25zLmFwcGVuZChzeXMuZXhjX2luZm8oKSkKLSAgICAgICAgICAgIGlmIGV4
Y2VwdGlvbnM6Ci0gICAgICAgICAgICAgICAgZSA9IGV4Y2VwdGlvbnNbMF0KLSAgICAgICAgICAg
ICAgICBkZWwgZXhjZXB0aW9ucyAgIyBlbnN1cmUgd2UgZG9uJ3Qga2VlcCBhbGwgZnJhbWVzIGFs
aXZlIGJlY2F1c2Ugb2YgdGhlIHRyYWNlYmFjawotICAgICAgICAgICAgICAgIHB5LmJ1aWx0aW4u
X3JlcmFpc2UoKmUpCi0KLSAgICAgICAgZmluYWxseToKLSAgICAgICAgICAgIGhvb2sgPSBzZWxm
Ll9maXh0dXJlbWFuYWdlci5zZXNzaW9uLmdldGhvb2twcm94eShyZXF1ZXN0Lm5vZGUuZnNwYXRo
KQotICAgICAgICAgICAgaG9vay5weXRlc3RfZml4dHVyZV9wb3N0X2ZpbmFsaXplcihmaXh0dXJl
ZGVmPXNlbGYsIHJlcXVlc3Q9cmVxdWVzdCkKLSAgICAgICAgICAgICMgZXZlbiBpZiBmaW5hbGl6
YXRpb24gZmFpbHMsIHdlIGludmFsaWRhdGUKLSAgICAgICAgICAgICMgdGhlIGNhY2hlZCBmaXh0
dXJlIHZhbHVlIGFuZCByZW1vdmUKLSAgICAgICAgICAgICMgYWxsIGZpbmFsaXplcnMgYmVjYXVz
ZSB0aGV5IG1heSBiZSBib3VuZCBtZXRob2RzIHdoaWNoIHdpbGwKLSAgICAgICAgICAgICMga2Vl
cCBpbnN0YW5jZXMgYWxpdmUKLSAgICAgICAgICAgIGlmIGhhc2F0dHIoc2VsZiwgImNhY2hlZF9y
ZXN1bHQiKToKLSAgICAgICAgICAgICAgICBkZWwgc2VsZi5jYWNoZWRfcmVzdWx0Ci0gICAgICAg
ICAgICBzZWxmLl9maW5hbGl6ZXJzID0gW10KLQotICAgIGRlZiBleGVjdXRlKHNlbGYsIHJlcXVl
c3QpOgotICAgICAgICAjIGdldCByZXF1aXJlZCBhcmd1bWVudHMgYW5kIHJlZ2lzdGVyIG91ciBv
d24gZmluaXNoKCkKLSAgICAgICAgIyB3aXRoIHRoZWlyIGZpbmFsaXphdGlvbgotICAgICAgICBm
b3IgYXJnbmFtZSBpbiBzZWxmLmFyZ25hbWVzOgotICAgICAgICAgICAgZml4dHVyZWRlZiA9IHJl
cXVlc3QuX2dldF9hY3RpdmVfZml4dHVyZWRlZihhcmduYW1lKQotICAgICAgICAgICAgaWYgYXJn
bmFtZSAhPSAicmVxdWVzdCI6Ci0gICAgICAgICAgICAgICAgZml4dHVyZWRlZi5hZGRmaW5hbGl6
ZXIoZnVuY3Rvb2xzLnBhcnRpYWwoc2VsZi5maW5pc2gsIHJlcXVlc3Q9cmVxdWVzdCkpCi0KLSAg
ICAgICAgbXlfY2FjaGVfa2V5ID0gcmVxdWVzdC5wYXJhbV9pbmRleAotICAgICAgICBjYWNoZWRf
cmVzdWx0ID0gZ2V0YXR0cihzZWxmLCAiY2FjaGVkX3Jlc3VsdCIsIE5vbmUpCi0gICAgICAgIGlm
IGNhY2hlZF9yZXN1bHQgaXMgbm90IE5vbmU6Ci0gICAgICAgICAgICByZXN1bHQsIGNhY2hlX2tl
eSwgZXJyID0gY2FjaGVkX3Jlc3VsdAotICAgICAgICAgICAgaWYgbXlfY2FjaGVfa2V5ID09IGNh
Y2hlX2tleToKLSAgICAgICAgICAgICAgICBpZiBlcnIgaXMgbm90IE5vbmU6Ci0gICAgICAgICAg
ICAgICAgICAgIHB5LmJ1aWx0aW4uX3JlcmFpc2UoKmVycikKLSAgICAgICAgICAgICAgICBlbHNl
OgotICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0Ci0gICAgICAgICAgICAjIHdlIGhh
dmUgYSBwcmV2aW91cyBidXQgZGlmZmVyZW50bHkgcGFyYW1ldHJpemVkIGZpeHR1cmUgaW5zdGFu
Y2UKLSAgICAgICAgICAgICMgc28gd2UgbmVlZCB0byB0ZWFyIGl0IGRvd24gYmVmb3JlIGNyZWF0
aW5nIGEgbmV3IG9uZQotICAgICAgICAgICAgc2VsZi5maW5pc2gocmVxdWVzdCkKLSAgICAgICAg
ICAgIGFzc2VydCBub3QgaGFzYXR0cihzZWxmLCAiY2FjaGVkX3Jlc3VsdCIpCi0KLSAgICAgICAg
aG9vayA9IHNlbGYuX2ZpeHR1cmVtYW5hZ2VyLnNlc3Npb24uZ2V0aG9va3Byb3h5KHJlcXVlc3Qu
bm9kZS5mc3BhdGgpCi0gICAgICAgIHJldHVybiBob29rLnB5dGVzdF9maXh0dXJlX3NldHVwKGZp
eHR1cmVkZWY9c2VsZiwgcmVxdWVzdD1yZXF1ZXN0KQotCi0gICAgZGVmIF9fcmVwcl9fKHNlbGYp
OgotICAgICAgICByZXR1cm4gKCI8Rml4dHVyZURlZiBuYW1lPSVyIHNjb3BlPSVyIGJhc2VpZD0l
ciA+IiAlCi0gICAgICAgICAgICAgICAgKHNlbGYuYXJnbmFtZSwgc2VsZi5zY29wZSwgc2VsZi5i
YXNlaWQpKQotCi0KLWRlZiBweXRlc3RfZml4dHVyZV9zZXR1cChmaXh0dXJlZGVmLCByZXF1ZXN0
KToKLSAgICAiIiIgRXhlY3V0aW9uIG9mIGZpeHR1cmUgc2V0dXAuICIiIgotICAgIGt3YXJncyA9
IHt9Ci0gICAgZm9yIGFyZ25hbWUgaW4gZml4dHVyZWRlZi5hcmduYW1lczoKLSAgICAgICAgZml4
ZGVmID0gcmVxdWVzdC5fZ2V0X2FjdGl2ZV9maXh0dXJlZGVmKGFyZ25hbWUpCi0gICAgICAgIHJl
c3VsdCwgYXJnX2NhY2hlX2tleSwgZXhjID0gZml4ZGVmLmNhY2hlZF9yZXN1bHQKLSAgICAgICAg
cmVxdWVzdC5fY2hlY2tfc2NvcGUoYXJnbmFtZSwgcmVxdWVzdC5zY29wZSwgZml4ZGVmLnNjb3Bl
KQotICAgICAgICBrd2FyZ3NbYXJnbmFtZV0gPSByZXN1bHQKLQotICAgIGZpeHR1cmVmdW5jID0g
Zml4dHVyZWRlZi5mdW5jCi0gICAgaWYgZml4dHVyZWRlZi51bml0dGVzdDoKLSAgICAgICAgaWYg
cmVxdWVzdC5pbnN0YW5jZSBpcyBub3QgTm9uZToKLSAgICAgICAgICAgICMgYmluZCB0aGUgdW5i
b3VuZCBtZXRob2QgdG8gdGhlIFRlc3RDYXNlIGluc3RhbmNlCi0gICAgICAgICAgICBmaXh0dXJl
ZnVuYyA9IGZpeHR1cmVkZWYuZnVuYy5fX2dldF9fKHJlcXVlc3QuaW5zdGFuY2UpCi0gICAgZWxz
ZToKLSAgICAgICAgIyB0aGUgZml4dHVyZSBmdW5jdGlvbiBuZWVkcyB0byBiZSBib3VuZCB0byB0
aGUgYWN0dWFsCi0gICAgICAgICMgcmVxdWVzdC5pbnN0YW5jZSBzbyB0aGF0IGNvZGUgd29ya2lu
ZyB3aXRoICJmaXh0dXJlZGVmIiBiZWhhdmVzCi0gICAgICAgICMgYXMgZXhwZWN0ZWQuCi0gICAg
ICAgIGlmIHJlcXVlc3QuaW5zdGFuY2UgaXMgbm90IE5vbmU6Ci0gICAgICAgICAgICBmaXh0dXJl
ZnVuYyA9IGdldGltZnVuYyhmaXh0dXJlZGVmLmZ1bmMpCi0gICAgICAgICAgICBpZiBmaXh0dXJl
ZnVuYyAhPSBmaXh0dXJlZGVmLmZ1bmM6Ci0gICAgICAgICAgICAgICAgZml4dHVyZWZ1bmMgPSBm
aXh0dXJlZnVuYy5fX2dldF9fKHJlcXVlc3QuaW5zdGFuY2UpCi0gICAgbXlfY2FjaGVfa2V5ID0g
cmVxdWVzdC5wYXJhbV9pbmRleAotICAgIHRyeToKLSAgICAgICAgcmVzdWx0ID0gY2FsbF9maXh0
dXJlX2Z1bmMoZml4dHVyZWZ1bmMsIHJlcXVlc3QsIGt3YXJncykKLSAgICBleGNlcHQgVEVTVF9P
VVRDT01FOgotICAgICAgICBmaXh0dXJlZGVmLmNhY2hlZF9yZXN1bHQgPSAoTm9uZSwgbXlfY2Fj
aGVfa2V5LCBzeXMuZXhjX2luZm8oKSkKLSAgICAgICAgcmFpc2UKLSAgICBmaXh0dXJlZGVmLmNh
Y2hlZF9yZXN1bHQgPSAocmVzdWx0LCBteV9jYWNoZV9rZXksIE5vbmUpCi0gICAgcmV0dXJuIHJl
c3VsdAotCi0KLWRlZiBfZW5zdXJlX2ltbXV0YWJsZV9pZHMoaWRzKToKLSAgICBpZiBpZHMgaXMg
Tm9uZToKLSAgICAgICAgcmV0dXJuCi0gICAgaWYgY2FsbGFibGUoaWRzKToKLSAgICAgICAgcmV0
dXJuIGlkcwotICAgIHJldHVybiB0dXBsZShpZHMpCi0KLQotQGF0dHIucyhmcm96ZW49VHJ1ZSkK
LWNsYXNzIEZpeHR1cmVGdW5jdGlvbk1hcmtlcihvYmplY3QpOgotICAgIHNjb3BlID0gYXR0ci5p
YigpCi0gICAgcGFyYW1zID0gYXR0ci5pYihjb252ZXJ0PWF0dHIuY29udmVydGVycy5vcHRpb25h
bCh0dXBsZSkpCi0gICAgYXV0b3VzZSA9IGF0dHIuaWIoZGVmYXVsdD1GYWxzZSkKLSAgICBpZHMg
PSBhdHRyLmliKGRlZmF1bHQ9Tm9uZSwgY29udmVydD1fZW5zdXJlX2ltbXV0YWJsZV9pZHMpCi0g
ICAgbmFtZSA9IGF0dHIuaWIoZGVmYXVsdD1Ob25lKQotCi0gICAgZGVmIF9fY2FsbF9fKHNlbGYs
IGZ1bmN0aW9uKToKLSAgICAgICAgaWYgaXNjbGFzcyhmdW5jdGlvbik6Ci0gICAgICAgICAgICBy
YWlzZSBWYWx1ZUVycm9yKAotICAgICAgICAgICAgICAgICJjbGFzcyBmaXh0dXJlcyBub3Qgc3Vw
cG9ydGVkIChtYXkgYmUgaW4gdGhlIGZ1dHVyZSkiKQotICAgICAgICBmdW5jdGlvbi5fcHl0ZXN0
Zml4dHVyZWZ1bmN0aW9uID0gc2VsZgotICAgICAgICByZXR1cm4gZnVuY3Rpb24KLQotCi1kZWYg
Zml4dHVyZShzY29wZT0iZnVuY3Rpb24iLCBwYXJhbXM9Tm9uZSwgYXV0b3VzZT1GYWxzZSwgaWRz
PU5vbmUsIG5hbWU9Tm9uZSk6Ci0gICAgIiIiIChyZXR1cm4gYSkgZGVjb3JhdG9yIHRvIG1hcmsg
YSBmaXh0dXJlIGZhY3RvcnkgZnVuY3Rpb24uCi0KLSAgICBUaGlzIGRlY29yYXRvciBjYW4gYmUg
dXNlZCAod2l0aCBvciB3aXRob3V0IHBhcmFtZXRlcnMpIHRvIGRlZmluZSBhCi0gICAgZml4dHVy
ZSBmdW5jdGlvbi4gIFRoZSBuYW1lIG9mIHRoZSBmaXh0dXJlIGZ1bmN0aW9uIGNhbiBsYXRlciBi
ZQotICAgIHJlZmVyZW5jZWQgdG8gY2F1c2UgaXRzIGludm9jYXRpb24gYWhlYWQgb2YgcnVubmlu
ZyB0ZXN0czogdGVzdAotICAgIG1vZHVsZXMgb3IgY2xhc3NlcyBjYW4gdXNlIHRoZSBweXRlc3Qu
bWFyay51c2VmaXh0dXJlcyhmaXh0dXJlbmFtZSkKLSAgICBtYXJrZXIuICBUZXN0IGZ1bmN0aW9u
cyBjYW4gZGlyZWN0bHkgdXNlIGZpeHR1cmUgbmFtZXMgYXMgaW5wdXQKLSAgICBhcmd1bWVudHMg
aW4gd2hpY2ggY2FzZSB0aGUgZml4dHVyZSBpbnN0YW5jZSByZXR1cm5lZCBmcm9tIHRoZSBmaXh0
dXJlCi0gICAgZnVuY3Rpb24gd2lsbCBiZSBpbmplY3RlZC4KLQotICAgIDphcmcgc2NvcGU6IHRo
ZSBzY29wZSBmb3Igd2hpY2ggdGhpcyBmaXh0dXJlIGlzIHNoYXJlZCwgb25lIG9mCi0gICAgICAg
ICAgICAgICAgImZ1bmN0aW9uIiAoZGVmYXVsdCksICJjbGFzcyIsICJtb2R1bGUiIG9yICJzZXNz
aW9uIi4KLQotICAgIDphcmcgcGFyYW1zOiBhbiBvcHRpb25hbCBsaXN0IG9mIHBhcmFtZXRlcnMg
d2hpY2ggd2lsbCBjYXVzZSBtdWx0aXBsZQotICAgICAgICAgICAgICAgIGludm9jYXRpb25zIG9m
IHRoZSBmaXh0dXJlIGZ1bmN0aW9uIGFuZCBhbGwgb2YgdGhlIHRlc3RzCi0gICAgICAgICAgICAg
ICAgdXNpbmcgaXQuCi0KLSAgICA6YXJnIGF1dG91c2U6IGlmIFRydWUsIHRoZSBmaXh0dXJlIGZ1
bmMgaXMgYWN0aXZhdGVkIGZvciBhbGwgdGVzdHMgdGhhdAotICAgICAgICAgICAgICAgIGNhbiBz
ZWUgaXQuICBJZiBGYWxzZSAodGhlIGRlZmF1bHQpIHRoZW4gYW4gZXhwbGljaXQKLSAgICAgICAg
ICAgICAgICByZWZlcmVuY2UgaXMgbmVlZGVkIHRvIGFjdGl2YXRlIHRoZSBmaXh0dXJlLgotCi0g
ICAgOmFyZyBpZHM6IGxpc3Qgb2Ygc3RyaW5nIGlkcyBlYWNoIGNvcnJlc3BvbmRpbmcgdG8gdGhl
IHBhcmFtcwotICAgICAgICAgICAgICAgIHNvIHRoYXQgdGhleSBhcmUgcGFydCBvZiB0aGUgdGVz
dCBpZC4gSWYgbm8gaWRzIGFyZSBwcm92aWRlZAotICAgICAgICAgICAgICAgIHRoZXkgd2lsbCBi
ZSBnZW5lcmF0ZWQgYXV0b21hdGljYWxseSBmcm9tIHRoZSBwYXJhbXMuCi0KLSAgICA6YXJnIG5h
bWU6IHRoZSBuYW1lIG9mIHRoZSBmaXh0dXJlLiBUaGlzIGRlZmF1bHRzIHRvIHRoZSBuYW1lIG9m
IHRoZQotICAgICAgICAgICAgICAgIGRlY29yYXRlZCBmdW5jdGlvbi4gSWYgYSBmaXh0dXJlIGlz
IHVzZWQgaW4gdGhlIHNhbWUgbW9kdWxlIGluCi0gICAgICAgICAgICAgICAgd2hpY2ggaXQgaXMg
ZGVmaW5lZCwgdGhlIGZ1bmN0aW9uIG5hbWUgb2YgdGhlIGZpeHR1cmUgd2lsbCBiZQotICAgICAg
ICAgICAgICAgIHNoYWRvd2VkIGJ5IHRoZSBmdW5jdGlvbiBhcmcgdGhhdCByZXF1ZXN0cyB0aGUg
Zml4dHVyZTsgb25lIHdheQotICAgICAgICAgICAgICAgIHRvIHJlc29sdmUgdGhpcyBpcyB0byBu
YW1lIHRoZSBkZWNvcmF0ZWQgZnVuY3Rpb24KLSAgICAgICAgICAgICAgICBgYGZpeHR1cmVfPGZp
eHR1cmVuYW1lPmBgIGFuZCB0aGVuIHVzZQotICAgICAgICAgICAgICAgIGBgQHB5dGVzdC5maXh0
dXJlKG5hbWU9JzxmaXh0dXJlbmFtZT4nKWBgLgotCi0gICAgRml4dHVyZXMgY2FuIG9wdGlvbmFs
bHkgcHJvdmlkZSB0aGVpciB2YWx1ZXMgdG8gdGVzdCBmdW5jdGlvbnMgdXNpbmcgYSBgYHlpZWxk
YGAgc3RhdGVtZW50LAotICAgIGluc3RlYWQgb2YgYGByZXR1cm5gYC4gSW4gdGhpcyBjYXNlLCB0
aGUgY29kZSBibG9jayBhZnRlciB0aGUgYGB5aWVsZGBgIHN0YXRlbWVudCBpcyBleGVjdXRlZAot
ICAgIGFzIHRlYXJkb3duIGNvZGUgcmVnYXJkbGVzcyBvZiB0aGUgdGVzdCBvdXRjb21lLiBBIGZp
eHR1cmUgZnVuY3Rpb24gbXVzdCB5aWVsZCBleGFjdGx5IG9uY2UuCi0gICAgIiIiCi0gICAgaWYg
Y2FsbGFibGUoc2NvcGUpIGFuZCBwYXJhbXMgaXMgTm9uZSBhbmQgYXV0b3VzZSBpcyBGYWxzZToK
LSAgICAgICAgIyBkaXJlY3QgZGVjb3JhdGlvbgotICAgICAgICByZXR1cm4gRml4dHVyZUZ1bmN0
aW9uTWFya2VyKAotICAgICAgICAgICAgImZ1bmN0aW9uIiwgcGFyYW1zLCBhdXRvdXNlLCBuYW1l
PW5hbWUpKHNjb3BlKQotICAgIGlmIHBhcmFtcyBpcyBub3QgTm9uZSBhbmQgbm90IGlzaW5zdGFu
Y2UocGFyYW1zLCAobGlzdCwgdHVwbGUpKToKLSAgICAgICAgcGFyYW1zID0gbGlzdChwYXJhbXMp
Ci0gICAgcmV0dXJuIEZpeHR1cmVGdW5jdGlvbk1hcmtlcihzY29wZSwgcGFyYW1zLCBhdXRvdXNl
LCBpZHM9aWRzLCBuYW1lPW5hbWUpCi0KLQotZGVmIHlpZWxkX2ZpeHR1cmUoc2NvcGU9ImZ1bmN0
aW9uIiwgcGFyYW1zPU5vbmUsIGF1dG91c2U9RmFsc2UsIGlkcz1Ob25lLCBuYW1lPU5vbmUpOgot
ICAgICIiIiAocmV0dXJuIGEpIGRlY29yYXRvciB0byBtYXJrIGEgeWllbGQtZml4dHVyZSBmYWN0
b3J5IGZ1bmN0aW9uLgotCi0gICAgLi4gZGVwcmVjYXRlZDo6IDMuMAotICAgICAgICBVc2UgOnB5
OmZ1bmM6YHB5dGVzdC5maXh0dXJlYCBkaXJlY3RseSBpbnN0ZWFkLgotICAgICIiIgotICAgIGlm
IGNhbGxhYmxlKHNjb3BlKSBhbmQgcGFyYW1zIGlzIE5vbmUgYW5kIG5vdCBhdXRvdXNlOgotICAg
ICAgICAjIGRpcmVjdCBkZWNvcmF0aW9uCi0gICAgICAgIHJldHVybiBGaXh0dXJlRnVuY3Rpb25N
YXJrZXIoCi0gICAgICAgICAgICAiZnVuY3Rpb24iLCBwYXJhbXMsIGF1dG91c2UsIGlkcz1pZHMs
IG5hbWU9bmFtZSkoc2NvcGUpCi0gICAgZWxzZToKLSAgICAgICAgcmV0dXJuIEZpeHR1cmVGdW5j
dGlvbk1hcmtlcihzY29wZSwgcGFyYW1zLCBhdXRvdXNlLCBpZHM9aWRzLCBuYW1lPW5hbWUpCi0K
LQotZGVmYXVsdGZ1bmNhcmdwcmVmaXhtYXJrZXIgPSBmaXh0dXJlKCkKLQotCi1AZml4dHVyZShz
Y29wZT0ic2Vzc2lvbiIpCi1kZWYgcHl0ZXN0Y29uZmlnKHJlcXVlc3QpOgotICAgICIiIiB0aGUg
cHl0ZXN0IGNvbmZpZyBvYmplY3Qgd2l0aCBhY2Nlc3MgdG8gY29tbWFuZCBsaW5lIG9wdHMuIiIi
Ci0gICAgcmV0dXJuIHJlcXVlc3QuY29uZmlnCi0KLQotY2xhc3MgRml4dHVyZU1hbmFnZXI6Ci0g
ICAgIiIiCi0gICAgcHl0ZXN0IGZpeHR1cmVzIGRlZmluaXRpb25zIGFuZCBpbmZvcm1hdGlvbiBp
cyBzdG9yZWQgYW5kIG1hbmFnZWQKLSAgICBmcm9tIHRoaXMgY2xhc3MuCi0KLSAgICBEdXJpbmcg
Y29sbGVjdGlvbiBmbS5wYXJzZWZhY3RvcmllcygpIGlzIGNhbGxlZCBtdWx0aXBsZSB0aW1lcyB0
byBwYXJzZQotICAgIGZpeHR1cmUgZnVuY3Rpb24gZGVmaW5pdGlvbnMgaW50byBGaXh0dXJlRGVm
IG9iamVjdHMgYW5kIGludGVybmFsCi0gICAgZGF0YSBzdHJ1Y3R1cmVzLgotCi0gICAgRHVyaW5n
IGNvbGxlY3Rpb24gb2YgdGVzdCBmdW5jdGlvbnMsIG1ldGFmdW5jLW1lY2hhbmljcyBpbnN0YW50
aWF0ZQotICAgIGEgRnVuY0ZpeHR1cmVJbmZvIG9iamVjdCB3aGljaCBpcyBjYWNoZWQgcGVyIG5v
ZGUvZnVuYy1uYW1lLgotICAgIFRoaXMgRnVuY0ZpeHR1cmVJbmZvIG9iamVjdCBpcyBsYXRlciBy
ZXRyaWV2ZWQgYnkgRnVuY3Rpb24gbm9kZXMKLSAgICB3aGljaCB0aGVtc2VsdmVzIG9mZmVyIGEg
Zml4dHVyZW5hbWVzIGF0dHJpYnV0ZS4KLQotICAgIFRoZSBGdW5jRml4dHVyZUluZm8gb2JqZWN0
IGhvbGRzIGluZm9ybWF0aW9uIGFib3V0IGZpeHR1cmVzIGFuZCBGaXh0dXJlRGVmcwotICAgIHJl
bGV2YW50IGZvciBhIHBhcnRpY3VsYXIgZnVuY3Rpb24uICBBbiBpbml0aWFsIGxpc3Qgb2YgZml4
dHVyZXMgaXMKLSAgICBhc3NlbWJsZWQgbGlrZSB0aGlzOgotCi0gICAgLSBpbmktZGVmaW5lZCB1
c2VmaXh0dXJlcwotICAgIC0gYXV0b3VzZS1tYXJrZWQgZml4dHVyZXMgYWxvbmcgdGhlIGNvbGxl
Y3Rpb24gY2hhaW4gdXAgZnJvbSB0aGUgZnVuY3Rpb24KLSAgICAtIHVzZWZpeHR1cmVzIG1hcmtl
cnMgYXQgbW9kdWxlL2NsYXNzL2Z1bmN0aW9uIGxldmVsCi0gICAgLSB0ZXN0IGZ1bmN0aW9uIGZ1
bmNhcmdzCi0KLSAgICBTdWJzZXF1ZW50bHkgdGhlIGZ1bmNmaXh0dXJlaW5mby5maXh0dXJlbmFt
ZXMgYXR0cmlidXRlIGlzIGNvbXB1dGVkCi0gICAgYXMgdGhlIGNsb3N1cmUgb2YgdGhlIGZpeHR1
cmVzIG5lZWRlZCB0byBzZXR1cCB0aGUgaW5pdGlhbCBmaXh0dXJlcywKLSAgICBpLiBlLiBmaXh0
dXJlcyBuZWVkZWQgYnkgZml4dHVyZSBmdW5jdGlvbnMgdGhlbXNlbHZlcyBhcmUgYXBwZW5kZWQK
LSAgICB0byB0aGUgZml4dHVyZW5hbWVzIGxpc3QuCi0KLSAgICBVcG9uIHRoZSB0ZXN0LXNldHVw
IHBoYXNlcyBhbGwgZml4dHVyZW5hbWVzIGFyZSBpbnN0YW50aWF0ZWQsIHJldHJpZXZlZAotICAg
IGJ5IGEgbG9va3VwIG9mIHRoZWlyIEZ1bmNGaXh0dXJlSW5mby4KLSAgICAiIiIKLQotICAgIF9h
cmdwcmVmaXggPSAicHl0ZXN0X2Z1bmNhcmdfXyIKLSAgICBGaXh0dXJlTG9va3VwRXJyb3IgPSBG
aXh0dXJlTG9va3VwRXJyb3IKLSAgICBGaXh0dXJlTG9va3VwRXJyb3JSZXByID0gRml4dHVyZUxv
b2t1cEVycm9yUmVwcgotCi0gICAgZGVmIF9faW5pdF9fKHNlbGYsIHNlc3Npb24pOgotICAgICAg
ICBzZWxmLnNlc3Npb24gPSBzZXNzaW9uCi0gICAgICAgIHNlbGYuY29uZmlnID0gc2Vzc2lvbi5j
b25maWcKLSAgICAgICAgc2VsZi5fYXJnMmZpeHR1cmVkZWZzID0ge30KLSAgICAgICAgc2VsZi5f
aG9sZGVyb2Jqc2VlbiA9IHNldCgpCi0gICAgICAgIHNlbGYuX2FyZzJmaW5pc2ggPSB7fQotICAg
ICAgICBzZWxmLl9ub2RlaWRfYW5kX2F1dG91c2VuYW1lcyA9IFsoIiIsIHNlbGYuY29uZmlnLmdl
dGluaSgidXNlZml4dHVyZXMiKSldCi0gICAgICAgIHNlc3Npb24uY29uZmlnLnBsdWdpbm1hbmFn
ZXIucmVnaXN0ZXIoc2VsZiwgImZ1bmNtYW5hZ2UiKQotCi0gICAgZGVmIGdldGZpeHR1cmVpbmZv
KHNlbGYsIG5vZGUsIGZ1bmMsIGNscywgZnVuY2FyZ3M9VHJ1ZSk6Ci0gICAgICAgIGlmIGZ1bmNh
cmdzIGFuZCBub3QgaGFzYXR0cihub2RlLCAibm9mdW5jYXJncyIpOgotICAgICAgICAgICAgYXJn
bmFtZXMgPSBnZXRmdW5jYXJnbmFtZXMoZnVuYywgY2xzPWNscykKLSAgICAgICAgZWxzZToKLSAg
ICAgICAgICAgIGFyZ25hbWVzID0gKCkKLSAgICAgICAgdXNlZml4dHVyZXMgPSBnZXRhdHRyKGZ1
bmMsICJ1c2VmaXh0dXJlcyIsIE5vbmUpCi0gICAgICAgIGluaXRpYWxuYW1lcyA9IGFyZ25hbWVz
Ci0gICAgICAgIGlmIHVzZWZpeHR1cmVzIGlzIG5vdCBOb25lOgotICAgICAgICAgICAgaW5pdGlh
bG5hbWVzID0gdXNlZml4dHVyZXMuYXJncyArIGluaXRpYWxuYW1lcwotICAgICAgICBmbSA9IG5v
ZGUuc2Vzc2lvbi5fZml4dHVyZW1hbmFnZXIKLSAgICAgICAgbmFtZXNfY2xvc3VyZSwgYXJnMmZp
eHR1cmVkZWZzID0gZm0uZ2V0Zml4dHVyZWNsb3N1cmUoaW5pdGlhbG5hbWVzLAotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub2Rl
KQotICAgICAgICByZXR1cm4gRnVuY0ZpeHR1cmVJbmZvKGFyZ25hbWVzLCBuYW1lc19jbG9zdXJl
LCBhcmcyZml4dHVyZWRlZnMpCi0KLSAgICBkZWYgcHl0ZXN0X3BsdWdpbl9yZWdpc3RlcmVkKHNl
bGYsIHBsdWdpbik6Ci0gICAgICAgIG5vZGVpZCA9IE5vbmUKLSAgICAgICAgdHJ5OgotICAgICAg
ICAgICAgcCA9IHB5LnBhdGgubG9jYWwocGx1Z2luLl9fZmlsZV9fKQotICAgICAgICBleGNlcHQg
QXR0cmlidXRlRXJyb3I6Ci0gICAgICAgICAgICBwYXNzCi0gICAgICAgIGVsc2U6Ci0gICAgICAg
ICAgICAjIGNvbnN0cnVjdCB0aGUgYmFzZSBub2RlaWQgd2hpY2ggaXMgbGF0ZXIgdXNlZCB0byBj
aGVjawotICAgICAgICAgICAgIyB3aGF0IGZpeHR1cmVzIGFyZSB2aXNpYmxlIGZvciBwYXJ0aWN1
bGFyIHRlc3RzIChhcyBkZW5vdGVkCi0gICAgICAgICAgICAjIGJ5IHRoZWlyIHRlc3QgaWQpCi0g
ICAgICAgICAgICBpZiBwLmJhc2VuYW1lLnN0YXJ0c3dpdGgoImNvbmZ0ZXN0LnB5Iik6Ci0gICAg
ICAgICAgICAgICAgbm9kZWlkID0gcC5kaXJwYXRoKCkucmVsdG8oc2VsZi5jb25maWcucm9vdGRp
cikKLSAgICAgICAgICAgICAgICBpZiBwLnNlcCAhPSBub2Rlcy5TRVA6Ci0gICAgICAgICAgICAg
ICAgICAgIG5vZGVpZCA9IG5vZGVpZC5yZXBsYWNlKHAuc2VwLCBub2Rlcy5TRVApCi0gICAgICAg
IHNlbGYucGFyc2VmYWN0b3JpZXMocGx1Z2luLCBub2RlaWQpCi0KLSAgICBkZWYgX2dldGF1dG91
c2VuYW1lcyhzZWxmLCBub2RlaWQpOgotICAgICAgICAiIiIgcmV0dXJuIGEgdHVwbGUgb2YgZml4
dHVyZSBuYW1lcyB0byBiZSB1c2VkLiAiIiIKLSAgICAgICAgYXV0b3VzZW5hbWVzID0gW10KLSAg
ICAgICAgZm9yIGJhc2VpZCwgYmFzZW5hbWVzIGluIHNlbGYuX25vZGVpZF9hbmRfYXV0b3VzZW5h
bWVzOgotICAgICAgICAgICAgaWYgbm9kZWlkLnN0YXJ0c3dpdGgoYmFzZWlkKToKLSAgICAgICAg
ICAgICAgICBpZiBiYXNlaWQ6Ci0gICAgICAgICAgICAgICAgICAgIGkgPSBsZW4oYmFzZWlkKQot
ICAgICAgICAgICAgICAgICAgICBuZXh0Y2hhciA9IG5vZGVpZFtpOmkgKyAxXQotICAgICAgICAg
ICAgICAgICAgICBpZiBuZXh0Y2hhciBhbmQgbmV4dGNoYXIgbm90IGluICI6LyI6Ci0gICAgICAg
ICAgICAgICAgICAgICAgICBjb250aW51ZQotICAgICAgICAgICAgICAgIGF1dG91c2VuYW1lcy5l
eHRlbmQoYmFzZW5hbWVzKQotICAgICAgICAjIG1ha2Ugc3VyZSBhdXRvdXNlbmFtZXMgYXJlIHNv
cnRlZCBieSBzY29wZSwgc2NvcGVudW0gMCBpcyBzZXNzaW9uCi0gICAgICAgIGF1dG91c2VuYW1l
cy5zb3J0KAotICAgICAgICAgICAga2V5PWxhbWJkYSB4OiBzZWxmLl9hcmcyZml4dHVyZWRlZnNb
eF1bLTFdLnNjb3BlbnVtKQotICAgICAgICByZXR1cm4gYXV0b3VzZW5hbWVzCi0KLSAgICBkZWYg
Z2V0Zml4dHVyZWNsb3N1cmUoc2VsZiwgZml4dHVyZW5hbWVzLCBwYXJlbnRub2RlKToKLSAgICAg
ICAgIyBjb2xsZWN0IHRoZSBjbG9zdXJlIG9mIGFsbCBmaXh0dXJlcyAsIHN0YXJ0aW5nIHdpdGgg
dGhlIGdpdmVuCi0gICAgICAgICMgZml4dHVyZW5hbWVzIGFzIHRoZSBpbml0aWFsIHNldC4gIEFz
IHdlIGhhdmUgdG8gdmlzaXQgYWxsCi0gICAgICAgICMgZmFjdG9yeSBkZWZpbml0aW9ucyBhbnl3
YXksIHdlIGFsc28gcmV0dXJuIGEgYXJnMmZpeHR1cmVkZWZzCi0gICAgICAgICMgbWFwcGluZyBz
byB0aGF0IHRoZSBjYWxsZXIgY2FuIHJldXNlIGl0IGFuZCBkb2VzIG5vdCBoYXZlCi0gICAgICAg
ICMgdG8gcmUtZGlzY292ZXIgZml4dHVyZWRlZnMgYWdhaW4gZm9yIGVhY2ggZml4dHVyZW5hbWUK
LSAgICAgICAgIyAoZGlzY292ZXJpbmcgbWF0Y2hpbmcgZml4dHVyZXMgZm9yIGEgZ2l2ZW4gbmFt
ZS9ub2RlIGlzIGV4cGVuc2l2ZSkKLQotICAgICAgICBwYXJlbnRpZCA9IHBhcmVudG5vZGUubm9k
ZWlkCi0gICAgICAgIGZpeHR1cmVuYW1lc19jbG9zdXJlID0gc2VsZi5fZ2V0YXV0b3VzZW5hbWVz
KHBhcmVudGlkKQotCi0gICAgICAgIGRlZiBtZXJnZShvdGhlcmxpc3QpOgotICAgICAgICAgICAg
Zm9yIGFyZyBpbiBvdGhlcmxpc3Q6Ci0gICAgICAgICAgICAgICAgaWYgYXJnIG5vdCBpbiBmaXh0
dXJlbmFtZXNfY2xvc3VyZToKLSAgICAgICAgICAgICAgICAgICAgZml4dHVyZW5hbWVzX2Nsb3N1
cmUuYXBwZW5kKGFyZykKLQotICAgICAgICBtZXJnZShmaXh0dXJlbmFtZXMpCi0gICAgICAgIGFy
ZzJmaXh0dXJlZGVmcyA9IHt9Ci0gICAgICAgIGxhc3RsZW4gPSAtMQotICAgICAgICB3aGlsZSBs
YXN0bGVuICE9IGxlbihmaXh0dXJlbmFtZXNfY2xvc3VyZSk6Ci0gICAgICAgICAgICBsYXN0bGVu
ID0gbGVuKGZpeHR1cmVuYW1lc19jbG9zdXJlKQotICAgICAgICAgICAgZm9yIGFyZ25hbWUgaW4g
Zml4dHVyZW5hbWVzX2Nsb3N1cmU6Ci0gICAgICAgICAgICAgICAgaWYgYXJnbmFtZSBpbiBhcmcy
Zml4dHVyZWRlZnM6Ci0gICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlCi0gICAgICAgICAgICAg
ICAgZml4dHVyZWRlZnMgPSBzZWxmLmdldGZpeHR1cmVkZWZzKGFyZ25hbWUsIHBhcmVudGlkKQot
ICAgICAgICAgICAgICAgIGlmIGZpeHR1cmVkZWZzOgotICAgICAgICAgICAgICAgICAgICBhcmcy
Zml4dHVyZWRlZnNbYXJnbmFtZV0gPSBmaXh0dXJlZGVmcwotICAgICAgICAgICAgICAgICAgICBt
ZXJnZShmaXh0dXJlZGVmc1stMV0uYXJnbmFtZXMpCi0gICAgICAgIHJldHVybiBmaXh0dXJlbmFt
ZXNfY2xvc3VyZSwgYXJnMmZpeHR1cmVkZWZzCi0KLSAgICBkZWYgcHl0ZXN0X2dlbmVyYXRlX3Rl
c3RzKHNlbGYsIG1ldGFmdW5jKToKLSAgICAgICAgZm9yIGFyZ25hbWUgaW4gbWV0YWZ1bmMuZml4
dHVyZW5hbWVzOgotICAgICAgICAgICAgZmFjbGlzdCA9IG1ldGFmdW5jLl9hcmcyZml4dHVyZWRl
ZnMuZ2V0KGFyZ25hbWUpCi0gICAgICAgICAgICBpZiBmYWNsaXN0OgotICAgICAgICAgICAgICAg
IGZpeHR1cmVkZWYgPSBmYWNsaXN0Wy0xXQotICAgICAgICAgICAgICAgIGlmIGZpeHR1cmVkZWYu
cGFyYW1zIGlzIG5vdCBOb25lOgotICAgICAgICAgICAgICAgICAgICBwYXJhbWV0cml6ZV9mdW5j
ID0gZ2V0YXR0cihtZXRhZnVuYy5mdW5jdGlvbiwgJ3BhcmFtZXRyaXplJywgTm9uZSkKLSAgICAg
ICAgICAgICAgICAgICAgZnVuY19wYXJhbXMgPSBnZXRhdHRyKHBhcmFtZXRyaXplX2Z1bmMsICdh
cmdzJywgW1tOb25lXV0pCi0gICAgICAgICAgICAgICAgICAgIGZ1bmNfa3dhcmdzID0gZ2V0YXR0
cihwYXJhbWV0cml6ZV9mdW5jLCAna3dhcmdzJywge30pCi0gICAgICAgICAgICAgICAgICAgICMg
c2tpcCBkaXJlY3RseSBwYXJhbWV0cml6ZWQgYXJndW1lbnRzCi0gICAgICAgICAgICAgICAgICAg
IGlmICJhcmduYW1lcyIgaW4gZnVuY19rd2FyZ3M6Ci0gICAgICAgICAgICAgICAgICAgICAgICBh
cmduYW1lcyA9IHBhcmFtZXRyaXplX2Z1bmMua3dhcmdzWyJhcmduYW1lcyJdCi0gICAgICAgICAg
ICAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAgICAgICAgICAgICBhcmduYW1lcyA9IGZ1bmNf
cGFyYW1zWzBdCi0gICAgICAgICAgICAgICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKGFyZ25hbWVz
LCAodHVwbGUsIGxpc3QpKToKLSAgICAgICAgICAgICAgICAgICAgICAgIGFyZ25hbWVzID0gW3gu
c3RyaXAoKSBmb3IgeCBpbiBhcmduYW1lcy5zcGxpdCgiLCIpIGlmIHguc3RyaXAoKV0KLSAgICAg
ICAgICAgICAgICAgICAgaWYgYXJnbmFtZSBub3QgaW4gZnVuY19wYXJhbXMgYW5kIGFyZ25hbWUg
bm90IGluIGFyZ25hbWVzOgotICAgICAgICAgICAgICAgICAgICAgICAgbWV0YWZ1bmMucGFyYW1l
dHJpemUoYXJnbmFtZSwgZml4dHVyZWRlZi5wYXJhbXMsCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBpbmRpcmVjdD1UcnVlLCBzY29wZT1maXh0dXJlZGVmLnNj
b3BlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWRzPWZp
eHR1cmVkZWYuaWRzKQotICAgICAgICAgICAgZWxzZToKLSAgICAgICAgICAgICAgICBjb250aW51
ZSAgIyB3aWxsIHJhaXNlIEZpeHR1cmVMb29rdXBFcnJvciBhdCBzZXR1cCB0aW1lCi0KLSAgICBk
ZWYgcHl0ZXN0X2NvbGxlY3Rpb25fbW9kaWZ5aXRlbXMoc2VsZiwgaXRlbXMpOgotICAgICAgICAj
IHNlcGFyYXRlIHBhcmFtZXRyaXplZCBzZXR1cHMKLSAgICAgICAgaXRlbXNbOl0gPSByZW9yZGVy
X2l0ZW1zKGl0ZW1zKQotCi0gICAgZGVmIHBhcnNlZmFjdG9yaWVzKHNlbGYsIG5vZGVfb3Jfb2Jq
LCBub2RlaWQ9Tk9UU0VULCB1bml0dGVzdD1GYWxzZSk6Ci0gICAgICAgIGlmIG5vZGVpZCBpcyBu
b3QgTk9UU0VUOgotICAgICAgICAgICAgaG9sZGVyb2JqID0gbm9kZV9vcl9vYmoKLSAgICAgICAg
ZWxzZToKLSAgICAgICAgICAgIGhvbGRlcm9iaiA9IG5vZGVfb3Jfb2JqLm9iagotICAgICAgICAg
ICAgbm9kZWlkID0gbm9kZV9vcl9vYmoubm9kZWlkCi0gICAgICAgIGlmIGhvbGRlcm9iaiBpbiBz
ZWxmLl9ob2xkZXJvYmpzZWVuOgotICAgICAgICAgICAgcmV0dXJuCi0gICAgICAgIHNlbGYuX2hv
bGRlcm9ianNlZW4uYWRkKGhvbGRlcm9iaikKLSAgICAgICAgYXV0b3VzZW5hbWVzID0gW10KLSAg
ICAgICAgZm9yIG5hbWUgaW4gZGlyKGhvbGRlcm9iaik6Ci0gICAgICAgICAgICAjIFRoZSBhdHRy
aWJ1dGUgY2FuIGJlIGFuIGFyYml0cmFyeSBkZXNjcmlwdG9yLCBzbyB0aGUgYXR0cmlidXRlCi0g
ICAgICAgICAgICAjIGFjY2VzcyBiZWxvdyBjYW4gcmFpc2UuIHNhZmVfZ2V0YXR0KCkgaWdub3Jl
cyBzdWNoIGV4Y2VwdGlvbnMuCi0gICAgICAgICAgICBvYmogPSBzYWZlX2dldGF0dHIoaG9sZGVy
b2JqLCBuYW1lLCBOb25lKQotICAgICAgICAgICAgIyBmaXh0dXJlIGZ1bmN0aW9ucyBoYXZlIGEg
cHl0ZXN0X2Z1bmNhcmdfXyBwcmVmaXggKHByZS0yLjMgc3R5bGUpCi0gICAgICAgICAgICAjIG9y
IGFyZSAiQHB5dGVzdC5maXh0dXJlIiBtYXJrZWQKLSAgICAgICAgICAgIG1hcmtlciA9IGdldGZp
eHR1cmVtYXJrZXIob2JqKQotICAgICAgICAgICAgaWYgbWFya2VyIGlzIE5vbmU6Ci0gICAgICAg
ICAgICAgICAgaWYgbm90IG5hbWUuc3RhcnRzd2l0aChzZWxmLl9hcmdwcmVmaXgpOgotICAgICAg
ICAgICAgICAgICAgICBjb250aW51ZQotICAgICAgICAgICAgICAgIGlmIG5vdCBjYWxsYWJsZShv
YmopOgotICAgICAgICAgICAgICAgICAgICBjb250aW51ZQotICAgICAgICAgICAgICAgIG1hcmtl
ciA9IGRlZmF1bHRmdW5jYXJncHJlZml4bWFya2VyCi0gICAgICAgICAgICAgICAgZnJvbSBfcHl0
ZXN0IGltcG9ydCBkZXByZWNhdGVkCi0gICAgICAgICAgICAgICAgc2VsZi5jb25maWcud2Fybign
QzEnLCBkZXByZWNhdGVkLkZVTkNBUkdfUFJFRklYLmZvcm1hdChuYW1lPW5hbWUpLCBub2RlaWQ9
bm9kZWlkKQotICAgICAgICAgICAgICAgIG5hbWUgPSBuYW1lW2xlbihzZWxmLl9hcmdwcmVmaXgp
Ol0KLSAgICAgICAgICAgIGVsaWYgbm90IGlzaW5zdGFuY2UobWFya2VyLCBGaXh0dXJlRnVuY3Rp
b25NYXJrZXIpOgotICAgICAgICAgICAgICAgICMgbWFnaWMgZ2xvYmFscyAgd2l0aCBfX2dldGF0
dHJfXyBtaWdodCBoYXZlIGdvdCB1cyBhIHdyb25nCi0gICAgICAgICAgICAgICAgIyBmaXh0dXJl
IGF0dHJpYnV0ZQotICAgICAgICAgICAgICAgIGNvbnRpbnVlCi0gICAgICAgICAgICBlbHNlOgot
ICAgICAgICAgICAgICAgIGlmIG1hcmtlci5uYW1lOgotICAgICAgICAgICAgICAgICAgICBuYW1l
ID0gbWFya2VyLm5hbWUKLSAgICAgICAgICAgICAgICBtc2cgPSAnZml4dHVyZXMgY2Fubm90IGhh
dmUgInB5dGVzdF9mdW5jYXJnX18iIHByZWZpeCAnIFwKLSAgICAgICAgICAgICAgICAgICAgICAn
YW5kIGJlIGRlY29yYXRlZCB3aXRoIEBweXRlc3QuZml4dHVyZTpcbiVzJyAlIG5hbWUKLSAgICAg
ICAgICAgICAgICBhc3NlcnQgbm90IG5hbWUuc3RhcnRzd2l0aChzZWxmLl9hcmdwcmVmaXgpLCBt
c2cKLQotICAgICAgICAgICAgZml4dHVyZV9kZWYgPSBGaXh0dXJlRGVmKHNlbGYsIG5vZGVpZCwg
bmFtZSwgb2JqLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hcmtlci5z
Y29wZSwgbWFya2VyLnBhcmFtcywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICB1bml0dGVzdD11bml0dGVzdCwgaWRzPW1hcmtlci5pZHMpCi0KLSAgICAgICAgICAgIGZhY2xp
c3QgPSBzZWxmLl9hcmcyZml4dHVyZWRlZnMuc2V0ZGVmYXVsdChuYW1lLCBbXSkKLSAgICAgICAg
ICAgIGlmIGZpeHR1cmVfZGVmLmhhc19sb2NhdGlvbjoKLSAgICAgICAgICAgICAgICBmYWNsaXN0
LmFwcGVuZChmaXh0dXJlX2RlZikKLSAgICAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAgICAg
IyBmaXh0dXJlZGVmcyB3aXRoIG5vIGxvY2F0aW9uIGFyZSBhdCB0aGUgZnJvbnQKLSAgICAgICAg
ICAgICAgICAjIHNvIHRoaXMgaW5zZXJ0cyB0aGUgY3VycmVudCBmaXh0dXJlZGVmIGFmdGVyIHRo
ZQotICAgICAgICAgICAgICAgICMgZXhpc3RpbmcgZml4dHVyZWRlZnMgZnJvbSBleHRlcm5hbCBw
bHVnaW5zIGJ1dAotICAgICAgICAgICAgICAgICMgYmVmb3JlIHRoZSBmaXh0dXJlZGVmcyBwcm92
aWRlZCBpbiBjb25mdGVzdHMuCi0gICAgICAgICAgICAgICAgaSA9IGxlbihbZiBmb3IgZiBpbiBm
YWNsaXN0IGlmIG5vdCBmLmhhc19sb2NhdGlvbl0pCi0gICAgICAgICAgICAgICAgZmFjbGlzdC5p
bnNlcnQoaSwgZml4dHVyZV9kZWYpCi0gICAgICAgICAgICBpZiBtYXJrZXIuYXV0b3VzZToKLSAg
ICAgICAgICAgICAgICBhdXRvdXNlbmFtZXMuYXBwZW5kKG5hbWUpCi0KLSAgICAgICAgaWYgYXV0
b3VzZW5hbWVzOgotICAgICAgICAgICAgc2VsZi5fbm9kZWlkX2FuZF9hdXRvdXNlbmFtZXMuYXBw
ZW5kKChub2RlaWQgb3IgJycsIGF1dG91c2VuYW1lcykpCi0KLSAgICBkZWYgZ2V0Zml4dHVyZWRl
ZnMoc2VsZiwgYXJnbmFtZSwgbm9kZWlkKToKLSAgICAgICAgIiIiCi0gICAgICAgIEdldHMgYSBs
aXN0IG9mIGZpeHR1cmVzIHdoaWNoIGFyZSBhcHBsaWNhYmxlIHRvIHRoZSBnaXZlbiBub2RlIGlk
LgotCi0gICAgICAgIDpwYXJhbSBzdHIgYXJnbmFtZTogbmFtZSBvZiB0aGUgZml4dHVyZSB0byBz
ZWFyY2ggZm9yCi0gICAgICAgIDpwYXJhbSBzdHIgbm9kZWlkOiBmdWxsIG5vZGUgaWQgb2YgdGhl
IHJlcXVlc3RpbmcgdGVzdC4KLSAgICAgICAgOnJldHVybjogbGlzdFtGaXh0dXJlRGVmXQotICAg
ICAgICAiIiIKLSAgICAgICAgdHJ5OgotICAgICAgICAgICAgZml4dHVyZWRlZnMgPSBzZWxmLl9h
cmcyZml4dHVyZWRlZnNbYXJnbmFtZV0KLSAgICAgICAgZXhjZXB0IEtleUVycm9yOgotICAgICAg
ICAgICAgcmV0dXJuIE5vbmUKLSAgICAgICAgZWxzZToKLSAgICAgICAgICAgIHJldHVybiB0dXBs
ZShzZWxmLl9tYXRjaGZhY3RvcmllcyhmaXh0dXJlZGVmcywgbm9kZWlkKSkKLQotICAgIGRlZiBf
bWF0Y2hmYWN0b3JpZXMoc2VsZiwgZml4dHVyZWRlZnMsIG5vZGVpZCk6Ci0gICAgICAgIGZvciBm
aXh0dXJlZGVmIGluIGZpeHR1cmVkZWZzOgotICAgICAgICAgICAgaWYgbm9kZXMuaXNjaGlsZG5v
ZGUoZml4dHVyZWRlZi5iYXNlaWQsIG5vZGVpZCk6Ci0gICAgICAgICAgICAgICAgeWllbGQgZml4
dHVyZWRlZgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvX3B5dGVzdC9mcmVlemVfc3VwcG9ydC5w
eSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhp
cmRfcGFydHkvcHl0ZXN0L19weXRlc3QvZnJlZXplX3N1cHBvcnQucHkKZGVsZXRlZCBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDk3MTQ3YTg4MjUwYTM1NTNjODVjNDRiMTgyODIzZTU0MmI5Zjc0YmMu
LjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRl
c3QvX3B5dGVzdC9mcmVlemVfc3VwcG9ydC5weQorKysgL2Rldi9udWxsCkBAIC0xLDQzICswLDAg
QEAKLSIiIgotUHJvdmlkZXMgYSBmdW5jdGlvbiB0byByZXBvcnQgYWxsIGludGVybmFsIG1vZHVs
ZXMgZm9yIHVzaW5nIGZyZWV6aW5nIHRvb2xzCi1weXRlc3QKLSIiIgotZnJvbSBfX2Z1dHVyZV9f
IGltcG9ydCBhYnNvbHV0ZV9pbXBvcnQsIGRpdmlzaW9uLCBwcmludF9mdW5jdGlvbgotCi0KLWRl
ZiBmcmVlemVfaW5jbHVkZXMoKToKLSAgICAiIiIKLSAgICBSZXR1cm5zIGEgbGlzdCBvZiBtb2R1
bGUgbmFtZXMgdXNlZCBieSBweS50ZXN0IHRoYXQgc2hvdWxkIGJlCi0gICAgaW5jbHVkZWQgYnkg
Y3hfZnJlZXplLgotICAgICIiIgotICAgIGltcG9ydCBweQotICAgIGltcG9ydCBfcHl0ZXN0Ci0g
ICAgcmVzdWx0ID0gbGlzdChfaXRlcl9hbGxfbW9kdWxlcyhweSkpCi0gICAgcmVzdWx0ICs9IGxp
c3QoX2l0ZXJfYWxsX21vZHVsZXMoX3B5dGVzdCkpCi0gICAgcmV0dXJuIHJlc3VsdAotCi0KLWRl
ZiBfaXRlcl9hbGxfbW9kdWxlcyhwYWNrYWdlLCBwcmVmaXg9JycpOgotICAgICIiIgotICAgIEl0
ZXJhdGVzIG92ZXIgdGhlIG5hbWVzIG9mIGFsbCBtb2R1bGVzIHRoYXQgY2FuIGJlIGZvdW5kIGlu
IHRoZSBnaXZlbgotICAgIHBhY2thZ2UsIHJlY3Vyc2l2ZWx5LgotICAgIEV4YW1wbGU6Ci0gICAg
ICAgIF9pdGVyX2FsbF9tb2R1bGVzKF9weXRlc3QpIC0+Ci0gICAgICAgICAgICBbJ19weXRlc3Qu
YXNzZXJ0aW9uLm5ld2ludGVycHJldCcsCi0gICAgICAgICAgICAgJ19weXRlc3QuY2FwdHVyZScs
Ci0gICAgICAgICAgICAgJ19weXRlc3QuY29yZScsCi0gICAgICAgICAgICAgLi4uCi0gICAgICAg
ICAgICBdCi0gICAgIiIiCi0gICAgaW1wb3J0IG9zCi0gICAgaW1wb3J0IHBrZ3V0aWwKLSAgICBp
ZiB0eXBlKHBhY2thZ2UpIGlzIG5vdCBzdHI6Ci0gICAgICAgIHBhdGgsIHByZWZpeCA9IHBhY2th
Z2UuX19wYXRoX19bMF0sIHBhY2thZ2UuX19uYW1lX18gKyAnLicKLSAgICBlbHNlOgotICAgICAg
ICBwYXRoID0gcGFja2FnZQotICAgIGZvciBfLCBuYW1lLCBpc19wYWNrYWdlIGluIHBrZ3V0aWwu
aXRlcl9tb2R1bGVzKFtwYXRoXSk6Ci0gICAgICAgIGlmIGlzX3BhY2thZ2U6Ci0gICAgICAgICAg
ICBmb3IgbSBpbiBfaXRlcl9hbGxfbW9kdWxlcyhvcy5wYXRoLmpvaW4ocGF0aCwgbmFtZSksIHBy
ZWZpeD1uYW1lICsgJy4nKToKLSAgICAgICAgICAgICAgICB5aWVsZCBwcmVmaXggKyBtCi0gICAg
ICAgIGVsc2U6Ci0gICAgICAgICAgICB5aWVsZCBwcmVmaXggKyBuYW1lCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3Bh
cnR5L3B5dGVzdC9fcHl0ZXN0L2hlbHBjb25maWcucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9fcHl0ZXN0L2hl
bHBjb25maWcucHkKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGU3NDQ2MzdmODY2MGYy
NzJjNDg4YTJhYjBjNjhlZTRlODU3MThiYmIuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvX3B5dGVzdC9oZWxwY29uZmlnLnB5CisrKyAv
ZGV2L251bGwKQEAgLTEsMTg0ICswLDAgQEAKLSIiIiB2ZXJzaW9uIGluZm8sIGhlbHAgbWVzc2Fn
ZXMsIHRyYWNpbmcgY29uZmlndXJhdGlvbi4gICIiIgotZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCBh
YnNvbHV0ZV9pbXBvcnQsIGRpdmlzaW9uLCBwcmludF9mdW5jdGlvbgotCi1pbXBvcnQgcHkKLWlt
cG9ydCBweXRlc3QKLWZyb20gX3B5dGVzdC5jb25maWcgaW1wb3J0IFByaW50SGVscAotaW1wb3J0
IG9zCi1pbXBvcnQgc3lzCi1mcm9tIGFyZ3BhcnNlIGltcG9ydCBBY3Rpb24KLQotCi1jbGFzcyBI
ZWxwQWN0aW9uKEFjdGlvbik6Ci0gICAgIiIiVGhpcyBpcyBhbiBhcmdwYXJzZSBBY3Rpb24gdGhh
dCB3aWxsIHJhaXNlIGFuIGV4Y2VwdGlvbiBpbgotICAgIG9yZGVyIHRvIHNraXAgdGhlIHJlc3Qg
b2YgdGhlIGFyZ3VtZW50IHBhcnNpbmcgd2hlbiAtLWhlbHAgaXMgcGFzc2VkLgotICAgIFRoaXMg
cHJldmVudHMgYXJncGFyc2UgZnJvbSBxdWl0dGluZyBkdWUgdG8gbWlzc2luZyByZXF1aXJlZCBh
cmd1bWVudHMKLSAgICB3aGVuIGFueSBhcmUgZGVmaW5lZCwgZm9yIGV4YW1wbGUgYnkgYGBweXRl
c3RfYWRkb3B0aW9uYGAuCi0gICAgVGhpcyBpcyBzaW1pbGFyIHRvIHRoZSB3YXkgdGhhdCB0aGUg
YnVpbHRpbiBhcmdwYXJzZSAtLWhlbHAgb3B0aW9uIGlzCi0gICAgaW1wbGVtZW50ZWQgYnkgcmFp
c2luZyBTeXN0ZW1FeGl0LgotICAgICIiIgotCi0gICAgZGVmIF9faW5pdF9fKHNlbGYsCi0gICAg
ICAgICAgICAgICAgIG9wdGlvbl9zdHJpbmdzLAotICAgICAgICAgICAgICAgICBkZXN0PU5vbmUs
Ci0gICAgICAgICAgICAgICAgIGRlZmF1bHQ9RmFsc2UsCi0gICAgICAgICAgICAgICAgIGhlbHA9
Tm9uZSk6Ci0gICAgICAgIHN1cGVyKEhlbHBBY3Rpb24sIHNlbGYpLl9faW5pdF9fKAotICAgICAg
ICAgICAgb3B0aW9uX3N0cmluZ3M9b3B0aW9uX3N0cmluZ3MsCi0gICAgICAgICAgICBkZXN0PWRl
c3QsCi0gICAgICAgICAgICBjb25zdD1UcnVlLAotICAgICAgICAgICAgZGVmYXVsdD1kZWZhdWx0
LAotICAgICAgICAgICAgbmFyZ3M9MCwKLSAgICAgICAgICAgIGhlbHA9aGVscCkKLQotICAgIGRl
ZiBfX2NhbGxfXyhzZWxmLCBwYXJzZXIsIG5hbWVzcGFjZSwgdmFsdWVzLCBvcHRpb25fc3RyaW5n
PU5vbmUpOgotICAgICAgICBzZXRhdHRyKG5hbWVzcGFjZSwgc2VsZi5kZXN0LCBzZWxmLmNvbnN0
KQotCi0gICAgICAgICMgV2Ugc2hvdWxkIG9ubHkgc2tpcCB0aGUgcmVzdCBvZiB0aGUgcGFyc2lu
ZyBhZnRlciBwcmVwYXJzZSBpcyBkb25lCi0gICAgICAgIGlmIGdldGF0dHIocGFyc2VyLl9wYXJz
ZXIsICdhZnRlcl9wcmVwYXJzZScsIEZhbHNlKToKLSAgICAgICAgICAgIHJhaXNlIFByaW50SGVs
cAotCi0KLWRlZiBweXRlc3RfYWRkb3B0aW9uKHBhcnNlcik6Ci0gICAgZ3JvdXAgPSBwYXJzZXIu
Z2V0Z3JvdXAoJ2RlYnVnY29uZmlnJykKLSAgICBncm91cC5hZGRvcHRpb24oJy0tdmVyc2lvbics
IGFjdGlvbj0ic3RvcmVfdHJ1ZSIsCi0gICAgICAgICAgICAgICAgICAgIGhlbHA9ImRpc3BsYXkg
cHl0ZXN0IGxpYiB2ZXJzaW9uIGFuZCBpbXBvcnQgaW5mb3JtYXRpb24uIikKLSAgICBncm91cC5f
YWRkb3B0aW9uKCItaCIsICItLWhlbHAiLCBhY3Rpb249SGVscEFjdGlvbiwgZGVzdD0iaGVscCIs
Ci0gICAgICAgICAgICAgICAgICAgICBoZWxwPSJzaG93IGhlbHAgbWVzc2FnZSBhbmQgY29uZmln
dXJhdGlvbiBpbmZvIikKLSAgICBncm91cC5fYWRkb3B0aW9uKCctcCcsIGFjdGlvbj0iYXBwZW5k
IiwgZGVzdD0icGx1Z2lucyIsIGRlZmF1bHQ9W10sCi0gICAgICAgICAgICAgICAgICAgICBtZXRh
dmFyPSJuYW1lIiwKLSAgICAgICAgICAgICAgICAgICAgIGhlbHA9ImVhcmx5LWxvYWQgZ2l2ZW4g
cGx1Z2luIChtdWx0aS1hbGxvd2VkKS4gIgotICAgICAgICAgICAgICAgICAgICAgIlRvIGF2b2lk
IGxvYWRpbmcgb2YgcGx1Z2lucywgdXNlIHRoZSBgbm86YCBwcmVmaXgsIGUuZy4gIgotICAgICAg
ICAgICAgICAgICAgICAgImBubzpkb2N0ZXN0YC4iKQotICAgIGdyb3VwLmFkZG9wdGlvbignLS10
cmFjZWNvbmZpZycsICctLXRyYWNlLWNvbmZpZycsCi0gICAgICAgICAgICAgICAgICAgIGFjdGlv
bj0ic3RvcmVfdHJ1ZSIsIGRlZmF1bHQ9RmFsc2UsCi0gICAgICAgICAgICAgICAgICAgIGhlbHA9
InRyYWNlIGNvbnNpZGVyYXRpb25zIG9mIGNvbmZ0ZXN0LnB5IGZpbGVzLiIpLAotICAgIGdyb3Vw
LmFkZG9wdGlvbignLS1kZWJ1ZycsCi0gICAgICAgICAgICAgICAgICAgIGFjdGlvbj0ic3RvcmVf
dHJ1ZSIsIGRlc3Q9ImRlYnVnIiwgZGVmYXVsdD1GYWxzZSwKLSAgICAgICAgICAgICAgICAgICAg
aGVscD0ic3RvcmUgaW50ZXJuYWwgdHJhY2luZyBkZWJ1ZyBpbmZvcm1hdGlvbiBpbiAncHl0ZXN0
ZGVidWcubG9nJy4iKQotICAgIGdyb3VwLl9hZGRvcHRpb24oCi0gICAgICAgICctbycsICctLW92
ZXJyaWRlLWluaScsIG5hcmdzPScqJywgZGVzdD0ib3ZlcnJpZGVfaW5pIiwKLSAgICAgICAgYWN0
aW9uPSJhcHBlbmQiLAotICAgICAgICBoZWxwPSJvdmVycmlkZSBjb25maWcgb3B0aW9uIHdpdGgg
b3B0aW9uPXZhbHVlIHN0eWxlLCBlLmcuIGAtbyB4ZmFpbF9zdHJpY3Q9VHJ1ZWAuIikKLQotCi1A
cHl0ZXN0Lmhvb2tpbXBsKGhvb2t3cmFwcGVyPVRydWUpCi1kZWYgcHl0ZXN0X2NtZGxpbmVfcGFy
c2UoKToKLSAgICBvdXRjb21lID0geWllbGQKLSAgICBjb25maWcgPSBvdXRjb21lLmdldF9yZXN1
bHQoKQotICAgIGlmIGNvbmZpZy5vcHRpb24uZGVidWc6Ci0gICAgICAgIHBhdGggPSBvcy5wYXRo
LmFic3BhdGgoInB5dGVzdGRlYnVnLmxvZyIpCi0gICAgICAgIGRlYnVnZmlsZSA9IG9wZW4ocGF0
aCwgJ3cnKQotICAgICAgICBkZWJ1Z2ZpbGUud3JpdGUoInZlcnNpb25zIHB5dGVzdC0lcywgcHkt
JXMsICIKLSAgICAgICAgICAgICAgICAgICAgICAgICJweXRob24tJXNcbmN3ZD0lc1xuYXJncz0l
c1xuXG4iICUgKAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB5dGVzdC5fX3ZlcnNpb25f
XywgcHkuX192ZXJzaW9uX18sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIi4iLmpvaW4o
bWFwKHN0ciwgc3lzLnZlcnNpb25faW5mbykpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAg
IG9zLmdldGN3ZCgpLCBjb25maWcuX29yaWdhcmdzKSkKLSAgICAgICAgY29uZmlnLnRyYWNlLnJv
b3Quc2V0d3JpdGVyKGRlYnVnZmlsZS53cml0ZSkKLSAgICAgICAgdW5kb190cmFjaW5nID0gY29u
ZmlnLnBsdWdpbm1hbmFnZXIuZW5hYmxlX3RyYWNpbmcoKQotICAgICAgICBzeXMuc3RkZXJyLndy
aXRlKCJ3cml0aW5nIHB5dGVzdGRlYnVnIGluZm9ybWF0aW9uIHRvICVzXG4iICUgcGF0aCkKLQot
ICAgICAgICBkZWYgdW5zZXRfdHJhY2luZygpOgotICAgICAgICAgICAgZGVidWdmaWxlLmNsb3Nl
KCkKLSAgICAgICAgICAgIHN5cy5zdGRlcnIud3JpdGUoIndyb3RlIHB5dGVzdGRlYnVnIGluZm9y
bWF0aW9uIHRvICVzXG4iICUKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVidWdmaWxl
Lm5hbWUpCi0gICAgICAgICAgICBjb25maWcudHJhY2Uucm9vdC5zZXR3cml0ZXIoTm9uZSkKLSAg
ICAgICAgICAgIHVuZG9fdHJhY2luZygpCi0KLSAgICAgICAgY29uZmlnLmFkZF9jbGVhbnVwKHVu
c2V0X3RyYWNpbmcpCi0KLQotZGVmIHB5dGVzdF9jbWRsaW5lX21haW4oY29uZmlnKToKLSAgICBp
ZiBjb25maWcub3B0aW9uLnZlcnNpb246Ci0gICAgICAgIHAgPSBweS5wYXRoLmxvY2FsKHB5dGVz
dC5fX2ZpbGVfXykKLSAgICAgICAgc3lzLnN0ZGVyci53cml0ZSgiVGhpcyBpcyBweXRlc3QgdmVy
c2lvbiAlcywgaW1wb3J0ZWQgZnJvbSAlc1xuIiAlCi0gICAgICAgICAgICAgICAgICAgICAgICAg
KHB5dGVzdC5fX3ZlcnNpb25fXywgcCkpCi0gICAgICAgIHBsdWdpbmluZm8gPSBnZXRwbHVnaW52
ZXJzaW9uaW5mbyhjb25maWcpCi0gICAgICAgIGlmIHBsdWdpbmluZm86Ci0gICAgICAgICAgICBm
b3IgbGluZSBpbiBwbHVnaW5pbmZvOgotICAgICAgICAgICAgICAgIHN5cy5zdGRlcnIud3JpdGUo
bGluZSArICJcbiIpCi0gICAgICAgIHJldHVybiAwCi0gICAgZWxpZiBjb25maWcub3B0aW9uLmhl
bHA6Ci0gICAgICAgIGNvbmZpZy5fZG9fY29uZmlndXJlKCkKLSAgICAgICAgc2hvd2hlbHAoY29u
ZmlnKQotICAgICAgICBjb25maWcuX2Vuc3VyZV91bmNvbmZpZ3VyZSgpCi0gICAgICAgIHJldHVy
biAwCi0KLQotZGVmIHNob3doZWxwKGNvbmZpZyk6Ci0gICAgcmVwb3J0ZXIgPSBjb25maWcucGx1
Z2lubWFuYWdlci5nZXRfcGx1Z2luKCd0ZXJtaW5hbHJlcG9ydGVyJykKLSAgICB0dyA9IHJlcG9y
dGVyLl90dwotICAgIHR3LndyaXRlKGNvbmZpZy5fcGFyc2VyLm9wdHBhcnNlci5mb3JtYXRfaGVs
cCgpKQotICAgIHR3LmxpbmUoKQotICAgIHR3LmxpbmUoKQotICAgIHR3LmxpbmUoIltweXRlc3Rd
IGluaS1vcHRpb25zIGluIHRoZSBmaXJzdCAiCi0gICAgICAgICAgICAicHl0ZXN0LmluaXx0b3gu
aW5pfHNldHVwLmNmZyBmaWxlIGZvdW5kOiIpCi0gICAgdHcubGluZSgpCi0KLSAgICBmb3IgbmFt
ZSBpbiBjb25maWcuX3BhcnNlci5faW5pbmFtZXM6Ci0gICAgICAgIGhlbHAsIHR5cGUsIGRlZmF1
bHQgPSBjb25maWcuX3BhcnNlci5faW5pZGljdFtuYW1lXQotICAgICAgICBpZiB0eXBlIGlzIE5v
bmU6Ci0gICAgICAgICAgICB0eXBlID0gInN0cmluZyIKLSAgICAgICAgc3BlYyA9ICIlcyAoJXMp
IiAlIChuYW1lLCB0eXBlKQotICAgICAgICBsaW5lID0gIiAgJS0yNHMgJXMiICUgKHNwZWMsIGhl
bHApCi0gICAgICAgIHR3LmxpbmUobGluZVs6dHcuZnVsbHdpZHRoXSkKLQotICAgIHR3LmxpbmUo
KQotICAgIHR3LmxpbmUoImVudmlyb25tZW50IHZhcmlhYmxlczoiKQotICAgIHZhcnMgPSBbCi0g
ICAgICAgICgiUFlURVNUX0FERE9QVFMiLCAiZXh0cmEgY29tbWFuZCBsaW5lIG9wdGlvbnMiKSwK
LSAgICAgICAgKCJQWVRFU1RfUExVR0lOUyIsICJjb21tYS1zZXBhcmF0ZWQgcGx1Z2lucyB0byBs
b2FkIGR1cmluZyBzdGFydHVwIiksCi0gICAgICAgICgiUFlURVNUX0RFQlVHIiwgInNldCB0byBl
bmFibGUgZGVidWcgdHJhY2luZyBvZiBweXRlc3QncyBpbnRlcm5hbHMiKQotICAgIF0KLSAgICBm
b3IgbmFtZSwgaGVscCBpbiB2YXJzOgotICAgICAgICB0dy5saW5lKCIgICUtMjRzICVzIiAlIChu
YW1lLCBoZWxwKSkKLSAgICB0dy5saW5lKCkKLSAgICB0dy5saW5lKCkKLQotICAgIHR3LmxpbmUo
InRvIHNlZSBhdmFpbGFibGUgbWFya2VycyB0eXBlOiBweXRlc3QgLS1tYXJrZXJzIikKLSAgICB0
dy5saW5lKCJ0byBzZWUgYXZhaWxhYmxlIGZpeHR1cmVzIHR5cGU6IHB5dGVzdCAtLWZpeHR1cmVz
IikKLSAgICB0dy5saW5lKCIoc2hvd24gYWNjb3JkaW5nIHRvIHNwZWNpZmllZCBmaWxlX29yX2Rp
ciBvciBjdXJyZW50IGRpciAiCi0gICAgICAgICAgICAiaWYgbm90IHNwZWNpZmllZCkiKQotCi0g
ICAgZm9yIHdhcm5pbmdyZXBvcnQgaW4gcmVwb3J0ZXIuc3RhdHMuZ2V0KCd3YXJuaW5ncycsIFtd
KToKLSAgICAgICAgdHcubGluZSgid2FybmluZyA6ICIgKyB3YXJuaW5ncmVwb3J0Lm1lc3NhZ2Us
IHJlZD1UcnVlKQotICAgIHJldHVybgotCi0KLWNvbmZ0ZXN0X29wdGlvbnMgPSBbCi0gICAgKCdw
eXRlc3RfcGx1Z2lucycsICdsaXN0IG9mIHBsdWdpbiBuYW1lcyB0byBsb2FkJyksCi1dCi0KLQot
ZGVmIGdldHBsdWdpbnZlcnNpb25pbmZvKGNvbmZpZyk6Ci0gICAgbGluZXMgPSBbXQotICAgIHBs
dWdpbmluZm8gPSBjb25maWcucGx1Z2lubWFuYWdlci5saXN0X3BsdWdpbl9kaXN0aW5mbygpCi0g
ICAgaWYgcGx1Z2luaW5mbzoKLSAgICAgICAgbGluZXMuYXBwZW5kKCJzZXR1cHRvb2xzIHJlZ2lz
dGVyZWQgcGx1Z2luczoiKQotICAgICAgICBmb3IgcGx1Z2luLCBkaXN0IGluIHBsdWdpbmluZm86
Ci0gICAgICAgICAgICBsb2MgPSBnZXRhdHRyKHBsdWdpbiwgJ19fZmlsZV9fJywgcmVwcihwbHVn
aW4pKQotICAgICAgICAgICAgY29udGVudCA9ICIlcy0lcyBhdCAlcyIgJSAoZGlzdC5wcm9qZWN0
X25hbWUsIGRpc3QudmVyc2lvbiwgbG9jKQotICAgICAgICAgICAgbGluZXMuYXBwZW5kKCIgICIg
KyBjb250ZW50KQotICAgIHJldHVybiBsaW5lcwotCi0KLWRlZiBweXRlc3RfcmVwb3J0X2hlYWRl
cihjb25maWcpOgotICAgIGxpbmVzID0gW10KLSAgICBpZiBjb25maWcub3B0aW9uLmRlYnVnIG9y
IGNvbmZpZy5vcHRpb24udHJhY2Vjb25maWc6Ci0gICAgICAgIGxpbmVzLmFwcGVuZCgidXNpbmc6
IHB5dGVzdC0lcyBweWxpYi0lcyIgJQotICAgICAgICAgICAgICAgICAgICAgKHB5dGVzdC5fX3Zl
cnNpb25fXywgcHkuX192ZXJzaW9uX18pKQotCi0gICAgICAgIHZlcmluZm8gPSBnZXRwbHVnaW52
ZXJzaW9uaW5mbyhjb25maWcpCi0gICAgICAgIGlmIHZlcmluZm86Ci0gICAgICAgICAgICBsaW5l
cy5leHRlbmQodmVyaW5mbykKLQotICAgIGlmIGNvbmZpZy5vcHRpb24udHJhY2Vjb25maWc6Ci0g
ICAgICAgIGxpbmVzLmFwcGVuZCgiYWN0aXZlIHBsdWdpbnM6IikKLSAgICAgICAgaXRlbXMgPSBj
b25maWcucGx1Z2lubWFuYWdlci5saXN0X25hbWVfcGx1Z2luKCkKLSAgICAgICAgZm9yIG5hbWUs
IHBsdWdpbiBpbiBpdGVtczoKLSAgICAgICAgICAgIGlmIGhhc2F0dHIocGx1Z2luLCAnX19maWxl
X18nKToKLSAgICAgICAgICAgICAgICByID0gcGx1Z2luLl9fZmlsZV9fCi0gICAgICAgICAgICBl
bHNlOgotICAgICAgICAgICAgICAgIHIgPSByZXByKHBsdWdpbikKLSAgICAgICAgICAgIGxpbmVz
LmFwcGVuZCgiICAgICUtMjBzOiAlcyIgJSAobmFtZSwgcikpCi0gICAgcmV0dXJuIGxpbmVzCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9fcHl0ZXN0L2hvb2tzcGVjLnB5IGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3Qv
X3B5dGVzdC9ob29rc3BlYy5weQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNDQwYmY5
OWQzNzVhYTZjNzVlZTc0M2ZlNjllY2Y3OTcwMjIzMjJjYS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9fcHl0ZXN0L2hvb2tzcGVjLnB5
CisrKyAvZGV2L251bGwKQEAgLTEsNDIzICswLDAgQEAKLSIiIiBob29rIHNwZWNpZmljYXRpb25z
IGZvciBweXRlc3QgcGx1Z2lucywgaW52b2tlZCBmcm9tIG1haW4ucHkgYW5kIGJ1aWx0aW4gcGx1
Z2lucy4gICIiIgotCi1mcm9tIHBsdWdneSBpbXBvcnQgSG9va3NwZWNNYXJrZXIKLQotaG9va3Nw
ZWMgPSBIb29rc3BlY01hcmtlcigicHl0ZXN0IikKLQotIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0jIElu
aXRpYWxpemF0aW9uIGhvb2tzIGNhbGxlZCBmb3IgZXZlcnkgcGx1Z2luCi0jIC0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0KLQotCi1AaG9va3NwZWMoaGlzdG9yaWM9VHJ1ZSkKLWRlZiBweXRlc3RfYWRkaG9va3Mo
cGx1Z2lubWFuYWdlcik6Ci0gICAgIiIiY2FsbGVkIGF0IHBsdWdpbiByZWdpc3RyYXRpb24gdGlt
ZSB0byBhbGxvdyBhZGRpbmcgbmV3IGhvb2tzIHZpYSBhIGNhbGwgdG8KLSAgICBwbHVnaW5tYW5h
Z2VyLmFkZF9ob29rc3BlY3MobW9kdWxlX29yX2NsYXNzLCBwcmVmaXgpLiIiIgotCi0KLUBob29r
c3BlYyhoaXN0b3JpYz1UcnVlKQotZGVmIHB5dGVzdF9uYW1lc3BhY2UoKToKLSAgICAiIiIKLSAg
ICBERVBSRUNBVEVEOiB0aGlzIGhvb2sgY2F1c2VzIGRpcmVjdCBtb25rZXlwYXRjaGluZyBvbiBw
eXRlc3QsIGl0cyB1c2UgaXMgc3Ryb25nbHkgZGlzY291cmFnZWQKLSAgICByZXR1cm4gZGljdCBv
ZiBuYW1lLT5vYmplY3QgdG8gYmUgbWFkZSBnbG9iYWxseSBhdmFpbGFibGUgaW4KLSAgICB0aGUg
cHl0ZXN0IG5hbWVzcGFjZS4gIFRoaXMgaG9vayBpcyBjYWxsZWQgYXQgcGx1Z2luIHJlZ2lzdHJh
dGlvbgotICAgIHRpbWUuCi0gICAgIiIiCi0KLQotQGhvb2tzcGVjKGhpc3RvcmljPVRydWUpCi1k
ZWYgcHl0ZXN0X3BsdWdpbl9yZWdpc3RlcmVkKHBsdWdpbiwgbWFuYWdlcik6Ci0gICAgIiIiIGEg
bmV3IHB5dGVzdCBwbHVnaW4gZ290IHJlZ2lzdGVyZWQuICIiIgotCi0KLUBob29rc3BlYyhoaXN0
b3JpYz1UcnVlKQotZGVmIHB5dGVzdF9hZGRvcHRpb24ocGFyc2VyKToKLSAgICAiIiJyZWdpc3Rl
ciBhcmdwYXJzZS1zdHlsZSBvcHRpb25zIGFuZCBpbmktc3R5bGUgY29uZmlnIHZhbHVlcywKLSAg
ICBjYWxsZWQgb25jZSBhdCB0aGUgYmVnaW5uaW5nIG9mIGEgdGVzdCBydW4uCi0KLSAgICAuLiBu
b3RlOjoKLQotICAgICAgICBUaGlzIGZ1bmN0aW9uIHNob3VsZCBiZSBpbXBsZW1lbnRlZCBvbmx5
IGluIHBsdWdpbnMgb3IgYGBjb25mdGVzdC5weWBgCi0gICAgICAgIGZpbGVzIHNpdHVhdGVkIGF0
IHRoZSB0ZXN0cyByb290IGRpcmVjdG9yeSBkdWUgdG8gaG93IHB5dGVzdAotICAgICAgICA6cmVm
OmBkaXNjb3ZlcnMgcGx1Z2lucyBkdXJpbmcgc3RhcnR1cCA8cGx1Z2lub3JkZXI+YC4KLQotICAg
IDphcmcgcGFyc2VyOiBUbyBhZGQgY29tbWFuZCBsaW5lIG9wdGlvbnMsIGNhbGwKLSAgICAgICAg
OnB5OmZ1bmM6YHBhcnNlci5hZGRvcHRpb24oLi4uKSA8X3B5dGVzdC5jb25maWcuUGFyc2VyLmFk
ZG9wdGlvbj5gLgotICAgICAgICBUbyBhZGQgaW5pLWZpbGUgdmFsdWVzIGNhbGwgOnB5OmZ1bmM6
YHBhcnNlci5hZGRpbmkoLi4uKQotICAgICAgICA8X3B5dGVzdC5jb25maWcuUGFyc2VyLmFkZGlu
aT5gLgotCi0gICAgT3B0aW9ucyBjYW4gbGF0ZXIgYmUgYWNjZXNzZWQgdGhyb3VnaCB0aGUKLSAg
ICA6cHk6Y2xhc3M6YGNvbmZpZyA8X3B5dGVzdC5jb25maWcuQ29uZmlnPmAgb2JqZWN0LCByZXNw
ZWN0aXZlbHk6Ci0KLSAgICAtIDpweTpmdW5jOmBjb25maWcuZ2V0b3B0aW9uKG5hbWUpIDxfcHl0
ZXN0LmNvbmZpZy5Db25maWcuZ2V0b3B0aW9uPmAgdG8KLSAgICAgIHJldHJpZXZlIHRoZSB2YWx1
ZSBvZiBhIGNvbW1hbmQgbGluZSBvcHRpb24uCi0KLSAgICAtIDpweTpmdW5jOmBjb25maWcuZ2V0
aW5pKG5hbWUpIDxfcHl0ZXN0LmNvbmZpZy5Db25maWcuZ2V0aW5pPmAgdG8gcmV0cmlldmUKLSAg
ICAgIGEgdmFsdWUgcmVhZCBmcm9tIGFuIGluaS1zdHlsZSBmaWxlLgotCi0gICAgVGhlIGNvbmZp
ZyBvYmplY3QgaXMgcGFzc2VkIGFyb3VuZCBvbiBtYW55IGludGVybmFsIG9iamVjdHMgdmlhIHRo
ZSBgYC5jb25maWdgYAotICAgIGF0dHJpYnV0ZSBvciBjYW4gYmUgcmV0cmlldmVkIGFzIHRoZSBg
YHB5dGVzdGNvbmZpZ2BgIGZpeHR1cmUgb3IgYWNjZXNzZWQKLSAgICB2aWEgKGRlcHJlY2F0ZWQp
IGBgcHl0ZXN0LmNvbmZpZ2BgLgotICAgICIiIgotCi0KLUBob29rc3BlYyhoaXN0b3JpYz1UcnVl
KQotZGVmIHB5dGVzdF9jb25maWd1cmUoY29uZmlnKToKLSAgICAiIiIKLSAgICBBbGxvd3MgcGx1
Z2lucyBhbmQgY29uZnRlc3QgZmlsZXMgdG8gcGVyZm9ybSBpbml0aWFsIGNvbmZpZ3VyYXRpb24u
Ci0KLSAgICBUaGlzIGhvb2sgaXMgY2FsbGVkIGZvciBldmVyeSBwbHVnaW4gYW5kIGluaXRpYWwg
Y29uZnRlc3QgZmlsZQotICAgIGFmdGVyIGNvbW1hbmQgbGluZSBvcHRpb25zIGhhdmUgYmVlbiBw
YXJzZWQuCi0KLSAgICBBZnRlciB0aGF0LCB0aGUgaG9vayBpcyBjYWxsZWQgZm9yIG90aGVyIGNv
bmZ0ZXN0IGZpbGVzIGFzIHRoZXkgYXJlCi0gICAgaW1wb3J0ZWQuCi0KLSAgICA6YXJnIGNvbmZp
ZzogcHl0ZXN0IGNvbmZpZyBvYmplY3QKLSAgICA6dHlwZSBjb25maWc6IF9weXRlc3QuY29uZmln
LkNvbmZpZwotICAgICIiIgotCi0jIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSMgQm9vdHN0cmFwcGluZyBo
b29rcyBjYWxsZWQgZm9yIHBsdWdpbnMgcmVnaXN0ZXJlZCBlYXJseSBlbm91Z2g6Ci0jIGludGVy
bmFsIGFuZCAzcmQgcGFydHkgcGx1Z2lucyBhcyB3ZWxsIGFzIGRpcmVjdGx5Ci0jIGRpc2NvdmVy
YWJsZSBjb25mdGVzdC5weSBsb2NhbCBwbHVnaW5zLgotIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0KLQot
QGhvb2tzcGVjKGZpcnN0cmVzdWx0PVRydWUpCi1kZWYgcHl0ZXN0X2NtZGxpbmVfcGFyc2UocGx1
Z2lubWFuYWdlciwgYXJncyk6Ci0gICAgIiIicmV0dXJuIGluaXRpYWxpemVkIGNvbmZpZyBvYmpl
Y3QsIHBhcnNpbmcgdGhlIHNwZWNpZmllZCBhcmdzLgotCi0gICAgU3RvcHMgYXQgZmlyc3Qgbm9u
LU5vbmUgcmVzdWx0LCBzZWUgOnJlZjpgZmlyc3RyZXN1bHRgICIiIgotCi0KLWRlZiBweXRlc3Rf
Y21kbGluZV9wcmVwYXJzZShjb25maWcsIGFyZ3MpOgotICAgICIiIihkZXByZWNhdGVkKSBtb2Rp
ZnkgY29tbWFuZCBsaW5lIGFyZ3VtZW50cyBiZWZvcmUgb3B0aW9uIHBhcnNpbmcuICIiIgotCi0K
LUBob29rc3BlYyhmaXJzdHJlc3VsdD1UcnVlKQotZGVmIHB5dGVzdF9jbWRsaW5lX21haW4oY29u
ZmlnKToKLSAgICAiIiIgY2FsbGVkIGZvciBwZXJmb3JtaW5nIHRoZSBtYWluIGNvbW1hbmQgbGlu
ZSBhY3Rpb24uIFRoZSBkZWZhdWx0Ci0gICAgaW1wbGVtZW50YXRpb24gd2lsbCBpbnZva2UgdGhl
IGNvbmZpZ3VyZSBob29rcyBhbmQgcnVudGVzdF9tYWlubG9vcC4KLQotICAgIFN0b3BzIGF0IGZp
cnN0IG5vbi1Ob25lIHJlc3VsdCwgc2VlIDpyZWY6YGZpcnN0cmVzdWx0YCAiIiIKLQotCi1kZWYg
cHl0ZXN0X2xvYWRfaW5pdGlhbF9jb25mdGVzdHMoZWFybHlfY29uZmlnLCBwYXJzZXIsIGFyZ3Mp
OgotICAgICIiIiBpbXBsZW1lbnRzIHRoZSBsb2FkaW5nIG9mIGluaXRpYWwgY29uZnRlc3QgZmls
ZXMgYWhlYWQKLSAgICBvZiBjb21tYW5kIGxpbmUgb3B0aW9uIHBhcnNpbmcuICIiIgotCi0KLSMg
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLQotIyBjb2xsZWN0aW9uIGhvb2tzCi0jIC0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K
LQotQGhvb2tzcGVjKGZpcnN0cmVzdWx0PVRydWUpCi1kZWYgcHl0ZXN0X2NvbGxlY3Rpb24oc2Vz
c2lvbik6Ci0gICAgIiIiIHBlcmZvcm0gdGhlIGNvbGxlY3Rpb24gcHJvdG9jb2wgZm9yIHRoZSBn
aXZlbiBzZXNzaW9uLgotCi0gICAgU3RvcHMgYXQgZmlyc3Qgbm9uLU5vbmUgcmVzdWx0LCBzZWUg
OnJlZjpgZmlyc3RyZXN1bHRgICIiIgotCi0KLWRlZiBweXRlc3RfY29sbGVjdGlvbl9tb2RpZnlp
dGVtcyhzZXNzaW9uLCBjb25maWcsIGl0ZW1zKToKLSAgICAiIiIgY2FsbGVkIGFmdGVyIGNvbGxl
Y3Rpb24gaGFzIGJlZW4gcGVyZm9ybWVkLCBtYXkgZmlsdGVyIG9yIHJlLW9yZGVyCi0gICAgdGhl
IGl0ZW1zIGluLXBsYWNlLiIiIgotCi0KLWRlZiBweXRlc3RfY29sbGVjdGlvbl9maW5pc2goc2Vz
c2lvbik6Ci0gICAgIiIiIGNhbGxlZCBhZnRlciBjb2xsZWN0aW9uIGhhcyBiZWVuIHBlcmZvcm1l
ZCBhbmQgbW9kaWZpZWQuICIiIgotCi0KLUBob29rc3BlYyhmaXJzdHJlc3VsdD1UcnVlKQotZGVm
IHB5dGVzdF9pZ25vcmVfY29sbGVjdChwYXRoLCBjb25maWcpOgotICAgICIiIiByZXR1cm4gVHJ1
ZSB0byBwcmV2ZW50IGNvbnNpZGVyaW5nIHRoaXMgcGF0aCBmb3IgY29sbGVjdGlvbi4KLSAgICBU
aGlzIGhvb2sgaXMgY29uc3VsdGVkIGZvciBhbGwgZmlsZXMgYW5kIGRpcmVjdG9yaWVzIHByaW9y
IHRvIGNhbGxpbmcKLSAgICBtb3JlIHNwZWNpZmljIGhvb2tzLgotCi0gICAgU3RvcHMgYXQgZmly
c3Qgbm9uLU5vbmUgcmVzdWx0LCBzZWUgOnJlZjpgZmlyc3RyZXN1bHRgCi0gICAgIiIiCi0KLQot
QGhvb2tzcGVjKGZpcnN0cmVzdWx0PVRydWUpCi1kZWYgcHl0ZXN0X2NvbGxlY3RfZGlyZWN0b3J5
KHBhdGgsIHBhcmVudCk6Ci0gICAgIiIiIGNhbGxlZCBiZWZvcmUgdHJhdmVyc2luZyBhIGRpcmVj
dG9yeSBmb3IgY29sbGVjdGlvbiBmaWxlcy4KLQotICAgIFN0b3BzIGF0IGZpcnN0IG5vbi1Ob25l
IHJlc3VsdCwgc2VlIDpyZWY6YGZpcnN0cmVzdWx0YCAiIiIKLQotCi1kZWYgcHl0ZXN0X2NvbGxl
Y3RfZmlsZShwYXRoLCBwYXJlbnQpOgotICAgICIiIiByZXR1cm4gY29sbGVjdGlvbiBOb2RlIG9y
IE5vbmUgZm9yIHRoZSBnaXZlbiBwYXRoLiBBbnkgbmV3IG5vZGUKLSAgICBuZWVkcyB0byBoYXZl
IHRoZSBzcGVjaWZpZWQgYGBwYXJlbnRgYCBhcyBhIHBhcmVudC4iIiIKLQotIyBsb2dnaW5nIGhv
b2tzIGZvciBjb2xsZWN0aW9uCi0KLQotZGVmIHB5dGVzdF9jb2xsZWN0c3RhcnQoY29sbGVjdG9y
KToKLSAgICAiIiIgY29sbGVjdG9yIHN0YXJ0cyBjb2xsZWN0aW5nLiAiIiIKLQotCi1kZWYgcHl0
ZXN0X2l0ZW1jb2xsZWN0ZWQoaXRlbSk6Ci0gICAgIiIiIHdlIGp1c3QgY29sbGVjdGVkIGEgdGVz
dCBpdGVtLiAiIiIKLQotCi1kZWYgcHl0ZXN0X2NvbGxlY3RyZXBvcnQocmVwb3J0KToKLSAgICAi
IiIgY29sbGVjdG9yIGZpbmlzaGVkIGNvbGxlY3RpbmcuICIiIgotCi0KLWRlZiBweXRlc3RfZGVz
ZWxlY3RlZChpdGVtcyk6Ci0gICAgIiIiIGNhbGxlZCBmb3IgdGVzdCBpdGVtcyBkZXNlbGVjdGVk
IGJ5IGtleXdvcmQuICIiIgotCi0KLUBob29rc3BlYyhmaXJzdHJlc3VsdD1UcnVlKQotZGVmIHB5
dGVzdF9tYWtlX2NvbGxlY3RfcmVwb3J0KGNvbGxlY3Rvcik6Ci0gICAgIiIiIHBlcmZvcm0gYGBj
b2xsZWN0b3IuY29sbGVjdCgpYGAgYW5kIHJldHVybiBhIENvbGxlY3RSZXBvcnQuCi0KLSAgICBT
dG9wcyBhdCBmaXJzdCBub24tTm9uZSByZXN1bHQsIHNlZSA6cmVmOmBmaXJzdHJlc3VsdGAgIiIi
Ci0KLSMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotIyBQeXRob24gdGVzdCBmdW5jdGlvbiByZWxhdGVkIGhv
b2tzCi0jIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLQotCi1AaG9va3NwZWMoZmlyc3RyZXN1bHQ9VHJ1ZSkK
LWRlZiBweXRlc3RfcHljb2xsZWN0X21ha2Vtb2R1bGUocGF0aCwgcGFyZW50KToKLSAgICAiIiIg
cmV0dXJuIGEgTW9kdWxlIGNvbGxlY3RvciBvciBOb25lIGZvciB0aGUgZ2l2ZW4gcGF0aC4KLSAg
ICBUaGlzIGhvb2sgd2lsbCBiZSBjYWxsZWQgZm9yIGVhY2ggbWF0Y2hpbmcgdGVzdCBtb2R1bGUg
cGF0aC4KLSAgICBUaGUgcHl0ZXN0X2NvbGxlY3RfZmlsZSBob29rIG5lZWRzIHRvIGJlIHVzZWQg
aWYgeW91IHdhbnQgdG8KLSAgICBjcmVhdGUgdGVzdCBtb2R1bGVzIGZvciBmaWxlcyB0aGF0IGRv
IG5vdCBtYXRjaCBhcyBhIHRlc3QgbW9kdWxlLgotCi0gICAgU3RvcHMgYXQgZmlyc3Qgbm9uLU5v
bmUgcmVzdWx0LCBzZWUgOnJlZjpgZmlyc3RyZXN1bHRgICIiIgotCi0KLUBob29rc3BlYyhmaXJz
dHJlc3VsdD1UcnVlKQotZGVmIHB5dGVzdF9weWNvbGxlY3RfbWFrZWl0ZW0oY29sbGVjdG9yLCBu
YW1lLCBvYmopOgotICAgICIiIiByZXR1cm4gY3VzdG9tIGl0ZW0vY29sbGVjdG9yIGZvciBhIHB5
dGhvbiBvYmplY3QgaW4gYSBtb2R1bGUsIG9yIE5vbmUuCi0KLSAgICBTdG9wcyBhdCBmaXJzdCBu
b24tTm9uZSByZXN1bHQsIHNlZSA6cmVmOmBmaXJzdHJlc3VsdGAgIiIiCi0KLQotQGhvb2tzcGVj
KGZpcnN0cmVzdWx0PVRydWUpCi1kZWYgcHl0ZXN0X3B5ZnVuY19jYWxsKHB5ZnVuY2l0ZW0pOgot
ICAgICIiIiBjYWxsIHVuZGVybHlpbmcgdGVzdCBmdW5jdGlvbi4KLQotICAgIFN0b3BzIGF0IGZp
cnN0IG5vbi1Ob25lIHJlc3VsdCwgc2VlIDpyZWY6YGZpcnN0cmVzdWx0YCAiIiIKLQotCi1kZWYg
cHl0ZXN0X2dlbmVyYXRlX3Rlc3RzKG1ldGFmdW5jKToKLSAgICAiIiIgZ2VuZXJhdGUgKG11bHRp
cGxlKSBwYXJhbWV0cml6ZWQgY2FsbHMgdG8gYSB0ZXN0IGZ1bmN0aW9uLiIiIgotCi0KLUBob29r
c3BlYyhmaXJzdHJlc3VsdD1UcnVlKQotZGVmIHB5dGVzdF9tYWtlX3BhcmFtZXRyaXplX2lkKGNv
bmZpZywgdmFsLCBhcmduYW1lKToKLSAgICAiIiJSZXR1cm4gYSB1c2VyLWZyaWVuZGx5IHN0cmlu
ZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgZ2l2ZW4gYGB2YWxgYCB0aGF0IHdpbGwgYmUgdXNlZAot
ICAgIGJ5IEBweXRlc3QubWFyay5wYXJhbWV0cml6ZSBjYWxscy4gUmV0dXJuIE5vbmUgaWYgdGhl
IGhvb2sgZG9lc24ndCBrbm93IGFib3V0IGBgdmFsYGAuCi0gICAgVGhlIHBhcmFtZXRlciBuYW1l
IGlzIGF2YWlsYWJsZSBhcyBgYGFyZ25hbWVgYCwgaWYgcmVxdWlyZWQuCi0KLSAgICBTdG9wcyBh
dCBmaXJzdCBub24tTm9uZSByZXN1bHQsIHNlZSA6cmVmOmBmaXJzdHJlc3VsdGAgIiIiCi0KLSMg
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLQotIyBnZW5lcmljIHJ1bnRlc3QgcmVsYXRlZCBob29rcwotIyAtLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tCi0KLQotQGhvb2tzcGVjKGZpcnN0cmVzdWx0PVRydWUpCi1kZWYgcHl0ZXN0
X3J1bnRlc3Rsb29wKHNlc3Npb24pOgotICAgICIiIiBjYWxsZWQgZm9yIHBlcmZvcm1pbmcgdGhl
IG1haW4gcnVudGVzdCBsb29wCi0gICAgKGFmdGVyIGNvbGxlY3Rpb24gZmluaXNoZWQpLgotCi0g
ICAgU3RvcHMgYXQgZmlyc3Qgbm9uLU5vbmUgcmVzdWx0LCBzZWUgOnJlZjpgZmlyc3RyZXN1bHRg
ICIiIgotCi0KLWRlZiBweXRlc3RfaXRlbXN0YXJ0KGl0ZW0sIG5vZGUpOgotICAgICIiIiAoZGVw
cmVjYXRlZCwgdXNlIHB5dGVzdF9ydW50ZXN0X2xvZ3N0YXJ0KS4gIiIiCi0KLQotQGhvb2tzcGVj
KGZpcnN0cmVzdWx0PVRydWUpCi1kZWYgcHl0ZXN0X3J1bnRlc3RfcHJvdG9jb2woaXRlbSwgbmV4
dGl0ZW0pOgotICAgICIiIiBpbXBsZW1lbnRzIHRoZSBydW50ZXN0X3NldHVwL2NhbGwvdGVhcmRv
d24gcHJvdG9jb2wgZm9yCi0gICAgdGhlIGdpdmVuIHRlc3QgaXRlbSwgaW5jbHVkaW5nIGNhcHR1
cmluZyBleGNlcHRpb25zIGFuZCBjYWxsaW5nCi0gICAgcmVwb3J0aW5nIGhvb2tzLgotCi0gICAg
OmFyZyBpdGVtOiB0ZXN0IGl0ZW0gZm9yIHdoaWNoIHRoZSBydW50ZXN0IHByb3RvY29sIGlzIHBl
cmZvcm1lZC4KLQotICAgIDphcmcgbmV4dGl0ZW06IHRoZSBzY2hlZHVsZWQtdG8tYmUtbmV4dCB0
ZXN0IGl0ZW0gKG9yIE5vbmUgaWYgdGhpcwotICAgICAgICAgICAgICAgICAgIGlzIHRoZSBlbmQg
bXkgZnJpZW5kKS4gIFRoaXMgYXJndW1lbnQgaXMgcGFzc2VkIG9uIHRvCi0gICAgICAgICAgICAg
ICAgICAgOnB5OmZ1bmM6YHB5dGVzdF9ydW50ZXN0X3RlYXJkb3duYC4KLQotICAgIDpyZXR1cm4g
Ym9vbGVhbjogVHJ1ZSBpZiBubyBmdXJ0aGVyIGhvb2sgaW1wbGVtZW50YXRpb25zIHNob3VsZCBi
ZSBpbnZva2VkLgotCi0KLSAgICBTdG9wcyBhdCBmaXJzdCBub24tTm9uZSByZXN1bHQsIHNlZSA6
cmVmOmBmaXJzdHJlc3VsdGAgIiIiCi0KLQotZGVmIHB5dGVzdF9ydW50ZXN0X2xvZ3N0YXJ0KG5v
ZGVpZCwgbG9jYXRpb24pOgotICAgICIiIiBzaWduYWwgdGhlIHN0YXJ0IG9mIHJ1bm5pbmcgYSBz
aW5nbGUgdGVzdCBpdGVtLiAiIiIKLQotCi1kZWYgcHl0ZXN0X3J1bnRlc3Rfc2V0dXAoaXRlbSk6
Ci0gICAgIiIiIGNhbGxlZCBiZWZvcmUgYGBweXRlc3RfcnVudGVzdF9jYWxsKGl0ZW0pYGAuICIi
IgotCi0KLWRlZiBweXRlc3RfcnVudGVzdF9jYWxsKGl0ZW0pOgotICAgICIiIiBjYWxsZWQgdG8g
ZXhlY3V0ZSB0aGUgdGVzdCBgYGl0ZW1gYC4gIiIiCi0KLQotZGVmIHB5dGVzdF9ydW50ZXN0X3Rl
YXJkb3duKGl0ZW0sIG5leHRpdGVtKToKLSAgICAiIiIgY2FsbGVkIGFmdGVyIGBgcHl0ZXN0X3J1
bnRlc3RfY2FsbGBgLgotCi0gICAgOmFyZyBuZXh0aXRlbTogdGhlIHNjaGVkdWxlZC10by1iZS1u
ZXh0IHRlc3QgaXRlbSAoTm9uZSBpZiBubyBmdXJ0aGVyCi0gICAgICAgICAgICAgICAgICAgdGVz
dCBpdGVtIGlzIHNjaGVkdWxlZCkuICBUaGlzIGFyZ3VtZW50IGNhbiBiZSB1c2VkIHRvCi0gICAg
ICAgICAgICAgICAgICAgcGVyZm9ybSBleGFjdCB0ZWFyZG93bnMsIGkuZS4gY2FsbGluZyBqdXN0
IGVub3VnaCBmaW5hbGl6ZXJzCi0gICAgICAgICAgICAgICAgICAgc28gdGhhdCBuZXh0aXRlbSBv
bmx5IG5lZWRzIHRvIGNhbGwgc2V0dXAtZnVuY3Rpb25zLgotICAgICIiIgotCi0KLUBob29rc3Bl
YyhmaXJzdHJlc3VsdD1UcnVlKQotZGVmIHB5dGVzdF9ydW50ZXN0X21ha2VyZXBvcnQoaXRlbSwg
Y2FsbCk6Ci0gICAgIiIiIHJldHVybiBhIDpweTpjbGFzczpgX3B5dGVzdC5ydW5uZXIuVGVzdFJl
cG9ydGAgb2JqZWN0Ci0gICAgZm9yIHRoZSBnaXZlbiA6cHk6Y2xhc3M6YHB5dGVzdC5JdGVtIDxf
cHl0ZXN0Lm1haW4uSXRlbT5gIGFuZAotICAgIDpweTpjbGFzczpgX3B5dGVzdC5ydW5uZXIuQ2Fs
bEluZm9gLgotCi0gICAgU3RvcHMgYXQgZmlyc3Qgbm9uLU5vbmUgcmVzdWx0LCBzZWUgOnJlZjpg
Zmlyc3RyZXN1bHRgICIiIgotCi0KLWRlZiBweXRlc3RfcnVudGVzdF9sb2dyZXBvcnQocmVwb3J0
KToKLSAgICAiIiIgcHJvY2VzcyBhIHRlc3Qgc2V0dXAvY2FsbC90ZWFyZG93biByZXBvcnQgcmVs
YXRpbmcgdG8KLSAgICB0aGUgcmVzcGVjdGl2ZSBwaGFzZSBvZiBleGVjdXRpbmcgYSB0ZXN0LiAi
IiIKLQotIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0jIEZpeHR1cmUgcmVsYXRlZCBob29rcwotIyAtLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tCi0KLQotQGhvb2tzcGVjKGZpcnN0cmVzdWx0PVRydWUpCi1kZWYgcHl0ZXN0
X2ZpeHR1cmVfc2V0dXAoZml4dHVyZWRlZiwgcmVxdWVzdCk6Ci0gICAgIiIiIHBlcmZvcm1zIGZp
eHR1cmUgc2V0dXAgZXhlY3V0aW9uLgotCi0gICAgU3RvcHMgYXQgZmlyc3Qgbm9uLU5vbmUgcmVz
dWx0LCBzZWUgOnJlZjpgZmlyc3RyZXN1bHRgICIiIgotCi0KLWRlZiBweXRlc3RfZml4dHVyZV9w
b3N0X2ZpbmFsaXplcihmaXh0dXJlZGVmLCByZXF1ZXN0KToKLSAgICAiIiIgY2FsbGVkIGFmdGVy
IGZpeHR1cmUgdGVhcmRvd24sIGJ1dCBiZWZvcmUgdGhlIGNhY2hlIGlzIGNsZWFyZWQgc28KLSAg
ICB0aGUgZml4dHVyZSByZXN1bHQgY2FjaGUgYGBmaXh0dXJlZGVmLmNhY2hlZF9yZXN1bHRgYCBj
YW4KLSAgICBzdGlsbCBiZSBhY2Nlc3NlZC4iIiIKLQotIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0jIHRl
c3Qgc2Vzc2lvbiByZWxhdGVkIGhvb2tzCi0jIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLQotCi1kZWYgcHl0
ZXN0X3Nlc3Npb25zdGFydChzZXNzaW9uKToKLSAgICAiIiIgYmVmb3JlIHNlc3Npb24ubWFpbigp
IGlzIGNhbGxlZC4gIiIiCi0KLQotZGVmIHB5dGVzdF9zZXNzaW9uZmluaXNoKHNlc3Npb24sIGV4
aXRzdGF0dXMpOgotICAgICIiIiB3aG9sZSB0ZXN0IHJ1biBmaW5pc2hlcy4gIiIiCi0KLQotZGVm
IHB5dGVzdF91bmNvbmZpZ3VyZShjb25maWcpOgotICAgICIiIiBjYWxsZWQgYmVmb3JlIHRlc3Qg
cHJvY2VzcyBpcyBleGl0ZWQuICAiIiIKLQotCi0jIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSMgaG9va3Mg
Zm9yIGN1c3RvbWl6aW5nIHRoZSBhc3NlcnQgbWV0aG9kcwotIyAtLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0K
LWRlZiBweXRlc3RfYXNzZXJ0cmVwcl9jb21wYXJlKGNvbmZpZywgb3AsIGxlZnQsIHJpZ2h0KToK
LSAgICAiIiJyZXR1cm4gZXhwbGFuYXRpb24gZm9yIGNvbXBhcmlzb25zIGluIGZhaWxpbmcgYXNz
ZXJ0IGV4cHJlc3Npb25zLgotCi0gICAgUmV0dXJuIE5vbmUgZm9yIG5vIGN1c3RvbSBleHBsYW5h
dGlvbiwgb3RoZXJ3aXNlIHJldHVybiBhIGxpc3QKLSAgICBvZiBzdHJpbmdzLiAgVGhlIHN0cmlu
Z3Mgd2lsbCBiZSBqb2luZWQgYnkgbmV3bGluZXMgYnV0IGFueSBuZXdsaW5lcwotICAgICppbiog
YSBzdHJpbmcgd2lsbCBiZSBlc2NhcGVkLiAgTm90ZSB0aGF0IGFsbCBidXQgdGhlIGZpcnN0IGxp
bmUgd2lsbAotICAgIGJlIGluZGVudGVkIHNsaWdodGx5LCB0aGUgaW50ZW50aW9uIGlzIGZvciB0
aGUgZmlyc3QgbGluZSB0byBiZSBhIHN1bW1hcnkuCi0gICAgIiIiCi0KLSMgLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLQotIyBob29rcyBmb3IgaW5mbHVlbmNpbmcgcmVwb3J0aW5nIChpbnZva2VkIGZyb20gX3B5
dGVzdF90ZXJtaW5hbCkKLSMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotCi0KLWRlZiBweXRlc3RfcmVwb3J0
X2hlYWRlcihjb25maWcsIHN0YXJ0ZGlyKToKLSAgICAiIiIgcmV0dXJuIGEgc3RyaW5nIG9yIGxp
c3Qgb2Ygc3RyaW5ncyB0byBiZSBkaXNwbGF5ZWQgYXMgaGVhZGVyIGluZm8gZm9yIHRlcm1pbmFs
IHJlcG9ydGluZy4KLQotICAgIDpwYXJhbSBjb25maWc6IHRoZSBweXRlc3QgY29uZmlnIG9iamVj
dC4KLSAgICA6cGFyYW0gc3RhcnRkaXI6IHB5LnBhdGggb2JqZWN0IHdpdGggdGhlIHN0YXJ0aW5n
IGRpcgotCi0gICAgLi4gbm90ZTo6Ci0KLSAgICAgICAgVGhpcyBmdW5jdGlvbiBzaG91bGQgYmUg
aW1wbGVtZW50ZWQgb25seSBpbiBwbHVnaW5zIG9yIGBgY29uZnRlc3QucHlgYAotICAgICAgICBm
aWxlcyBzaXR1YXRlZCBhdCB0aGUgdGVzdHMgcm9vdCBkaXJlY3RvcnkgZHVlIHRvIGhvdyBweXRl
c3QKLSAgICAgICAgOnJlZjpgZGlzY292ZXJzIHBsdWdpbnMgZHVyaW5nIHN0YXJ0dXAgPHBsdWdp
bm9yZGVyPmAuCi0gICAgIiIiCi0KLQotZGVmIHB5dGVzdF9yZXBvcnRfY29sbGVjdGlvbmZpbmlz
aChjb25maWcsIHN0YXJ0ZGlyLCBpdGVtcyk6Ci0gICAgIiIiCi0gICAgLi4gdmVyc2lvbmFkZGVk
OjogMy4yCi0KLSAgICByZXR1cm4gYSBzdHJpbmcgb3IgbGlzdCBvZiBzdHJpbmdzIHRvIGJlIGRp
c3BsYXllZCBhZnRlciBjb2xsZWN0aW9uIGhhcyBmaW5pc2hlZCBzdWNjZXNzZnVsbHkuCi0KLSAg
ICBUaGlzIHN0cmluZ3Mgd2lsbCBiZSBkaXNwbGF5ZWQgYWZ0ZXIgdGhlIHN0YW5kYXJkICJjb2xs
ZWN0ZWQgWCBpdGVtcyIgbWVzc2FnZS4KLQotICAgIDpwYXJhbSBjb25maWc6IHRoZSBweXRlc3Qg
Y29uZmlnIG9iamVjdC4KLSAgICA6cGFyYW0gc3RhcnRkaXI6IHB5LnBhdGggb2JqZWN0IHdpdGgg
dGhlIHN0YXJ0aW5nIGRpcgotICAgIDpwYXJhbSBpdGVtczogbGlzdCBvZiBweXRlc3QgaXRlbXMg
dGhhdCBhcmUgZ29pbmcgdG8gYmUgZXhlY3V0ZWQ7IHRoaXMgbGlzdCBzaG91bGQgbm90IGJlIG1v
ZGlmaWVkLgotICAgICIiIgotCi0KLUBob29rc3BlYyhmaXJzdHJlc3VsdD1UcnVlKQotZGVmIHB5
dGVzdF9yZXBvcnRfdGVzdHN0YXR1cyhyZXBvcnQpOgotICAgICIiIiByZXR1cm4gcmVzdWx0LWNh
dGVnb3J5LCBzaG9ydGxldHRlciBhbmQgdmVyYm9zZSB3b3JkIGZvciByZXBvcnRpbmcuCi0KLSAg
ICBTdG9wcyBhdCBmaXJzdCBub24tTm9uZSByZXN1bHQsIHNlZSA6cmVmOmBmaXJzdHJlc3VsdGAg
IiIiCi0KLQotZGVmIHB5dGVzdF90ZXJtaW5hbF9zdW1tYXJ5KHRlcm1pbmFscmVwb3J0ZXIsIGV4
aXRzdGF0dXMpOgotICAgICIiIiBhZGQgYWRkaXRpb25hbCBzZWN0aW9uIGluIHRlcm1pbmFsIHN1
bW1hcnkgcmVwb3J0aW5nLiAgIiIiCi0KLQotQGhvb2tzcGVjKGhpc3RvcmljPVRydWUpCi1kZWYg
cHl0ZXN0X2xvZ3dhcm5pbmcobWVzc2FnZSwgY29kZSwgbm9kZWlkLCBmc2xvY2F0aW9uKToKLSAg
ICAiIiIgcHJvY2VzcyBhIHdhcm5pbmcgc3BlY2lmaWVkIGJ5IGEgbWVzc2FnZSwgYSBjb2RlIHN0
cmluZywKLSAgICBhIG5vZGVpZCBhbmQgZnNsb2NhdGlvbiAoYm90aCBvZiB3aGljaCBtYXkgYmUg
Tm9uZQotICAgIGlmIHRoZSB3YXJuaW5nIGlzIG5vdCB0aWVkIHRvIGEgcGFydGlsYXIgbm9kZS9s
b2NhdGlvbikuIiIiCi0KLSMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotIyBkb2N0ZXN0IGhvb2tzCi0jIC0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0KLQotCi1AaG9va3NwZWMoZmlyc3RyZXN1bHQ9VHJ1ZSkKLWRlZiBweXRl
c3RfZG9jdGVzdF9wcmVwYXJlX2NvbnRlbnQoY29udGVudCk6Ci0gICAgIiIiIHJldHVybiBwcm9j
ZXNzZWQgY29udGVudCBmb3IgYSBnaXZlbiBkb2N0ZXN0Ci0KLSAgICBTdG9wcyBhdCBmaXJzdCBu
b24tTm9uZSByZXN1bHQsIHNlZSA6cmVmOmBmaXJzdHJlc3VsdGAgIiIiCi0KLSMgLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLQotIyBlcnJvciBoYW5kbGluZyBhbmQgaW50ZXJuYWwgZGVidWdnaW5nIGhvb2tzCi0j
IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0KLQotCi1kZWYgcHl0ZXN0X2ludGVybmFsZXJyb3IoZXhjcmVwciwg
ZXhjaW5mbyk6Ci0gICAgIiIiIGNhbGxlZCBmb3IgaW50ZXJuYWwgZXJyb3JzLiAiIiIKLQotCi1k
ZWYgcHl0ZXN0X2tleWJvYXJkX2ludGVycnVwdChleGNpbmZvKToKLSAgICAiIiIgY2FsbGVkIGZv
ciBrZXlib2FyZCBpbnRlcnJ1cHQuICIiIgotCi0KLWRlZiBweXRlc3RfZXhjZXB0aW9uX2ludGVy
YWN0KG5vZGUsIGNhbGwsIHJlcG9ydCk6Ci0gICAgIiIiY2FsbGVkIHdoZW4gYW4gZXhjZXB0aW9u
IHdhcyByYWlzZWQgd2hpY2ggY2FuIHBvdGVudGlhbGx5IGJlCi0gICAgaW50ZXJhY3RpdmVseSBo
YW5kbGVkLgotCi0gICAgVGhpcyBob29rIGlzIG9ubHkgY2FsbGVkIGlmIGFuIGV4Y2VwdGlvbiB3
YXMgcmFpc2VkCi0gICAgdGhhdCBpcyBub3QgYW4gaW50ZXJuYWwgZXhjZXB0aW9uIGxpa2UgYGBz
a2lwLkV4Y2VwdGlvbmBgLgotICAgICIiIgotCi0KLWRlZiBweXRlc3RfZW50ZXJfcGRiKGNvbmZp
Zyk6Ci0gICAgIiIiIGNhbGxlZCB1cG9uIHBkYi5zZXRfdHJhY2UoKSwgY2FuIGJlIHVzZWQgYnkg
cGx1Z2lucyB0byB0YWtlIHNwZWNpYWwKLSAgICBhY3Rpb24ganVzdCBiZWZvcmUgdGhlIHB5dGhv
biBkZWJ1Z2dlciBlbnRlcnMgaW4gaW50ZXJhY3RpdmUgbW9kZS4KLQotICAgIDphcmcgY29uZmln
OiBweXRlc3QgY29uZmlnIG9iamVjdAotICAgIDp0eXBlIGNvbmZpZzogX3B5dGVzdC5jb25maWcu
Q29uZmlnCi0gICAgIiIiCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9fcHl0ZXN0L2p1bml0eG1s
LnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90
aGlyZF9wYXJ0eS9weXRlc3QvX3B5dGVzdC9qdW5pdHhtbC5weQpkZWxldGVkIGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggN2ZiNDBkYzM1NDg3NGYwMzY0ZGUwYzgzYWM5ZmY2NjFiY2E3NzlmMC4uMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9f
cHl0ZXN0L2p1bml0eG1sLnB5CisrKyAvZGV2L251bGwKQEAgLTEsNDUzICswLDAgQEAKLSIiIgot
ICAgIHJlcG9ydCB0ZXN0IHJlc3VsdHMgaW4gSlVuaXQtWE1MIGZvcm1hdCwKLSAgICBmb3IgdXNl
IHdpdGggSmVua2lucyBhbmQgYnVpbGQgaW50ZWdyYXRpb24gc2VydmVycy4KLQotCi1CYXNlZCBv
biBpbml0aWFsIGNvZGUgZnJvbSBSb3NzIExhd2xleS4KLQotT3V0cHV0IGNvbmZvcm1zIHRvIGh0
dHBzOi8vZ2l0aHViLmNvbS9qZW5raW5zY2kveHVuaXQtcGx1Z2luL2Jsb2IvbWFzdGVyLwotc3Jj
L21haW4vcmVzb3VyY2VzL29yZy9qZW5raW5zY2kvcGx1Z2lucy94dW5pdC90eXBlcy9tb2RlbC94
c2QvanVuaXQtMTAueHNkCi0iIiIKLWZyb20gX19mdXR1cmVfXyBpbXBvcnQgYWJzb2x1dGVfaW1w
b3J0LCBkaXZpc2lvbiwgcHJpbnRfZnVuY3Rpb24KLQotaW1wb3J0IGZ1bmN0b29scwotaW1wb3J0
IHB5Ci1pbXBvcnQgb3MKLWltcG9ydCByZQotaW1wb3J0IHN5cwotaW1wb3J0IHRpbWUKLWltcG9y
dCBweXRlc3QKLWZyb20gX3B5dGVzdCBpbXBvcnQgbm9kZXMKLWZyb20gX3B5dGVzdC5jb25maWcg
aW1wb3J0IGZpbGVuYW1lX2FyZwotCi0jIFB5dGhvbiAyLlggYW5kIDMuWCBjb21wYXRpYmlsaXR5
Ci1pZiBzeXMudmVyc2lvbl9pbmZvWzBdIDwgMzoKLSAgICBmcm9tIGNvZGVjcyBpbXBvcnQgb3Bl
bgotZWxzZToKLSAgICB1bmljaHIgPSBjaHIKLSAgICB1bmljb2RlID0gc3RyCi0gICAgbG9uZyA9
IGludAotCi0KLWNsYXNzIEp1bml0KHB5LnhtbC5OYW1lc3BhY2UpOgotICAgIHBhc3MKLQotCi0j
IFdlIG5lZWQgdG8gZ2V0IHRoZSBzdWJzZXQgb2YgdGhlIGludmFsaWQgdW5pY29kZSByYW5nZXMg
YWNjb3JkaW5nIHRvCi0jIFhNTCAxLjAgd2hpY2ggYXJlIHZhbGlkIGluIHRoaXMgcHl0aG9uIGJ1
aWxkLiAgSGVuY2Ugd2UgY2FsY3VsYXRlCi0jIHRoaXMgZHluYW1pY2FsbHkgaW5zdGVhZCBvZiBo
YXJkY29kaW5nIGl0LiAgVGhlIHNwZWMgcmFuZ2Ugb2YgdmFsaWQKLSMgY2hhcnMgaXM6IENoYXIg
Ojo9ICN4OSB8ICN4QSB8ICN4RCB8IFsjeDIwLSN4RDdGRl0gfCBbI3hFMDAwLSN4RkZGRF0KLSMg
ICAgICAgICAgICAgICAgICAgIHwgWyN4MTAwMDAtI3gxMEZGRkZdCi1fbGVnYWxfY2hhcnMgPSAo
MHgwOSwgMHgwQSwgMHgwZCkKLV9sZWdhbF9yYW5nZXMgPSAoCi0gICAgKDB4MjAsIDB4N0UpLCAo
MHg4MCwgMHhEN0ZGKSwgKDB4RTAwMCwgMHhGRkZEKSwgKDB4MTAwMDAsIDB4MTBGRkZGKSwKLSkK
LV9sZWdhbF94bWxfcmUgPSBbCi0gICAgdW5pY29kZSgiJXMtJXMiKSAlICh1bmljaHIobG93KSwg
dW5pY2hyKGhpZ2gpKQotICAgIGZvciAobG93LCBoaWdoKSBpbiBfbGVnYWxfcmFuZ2VzIGlmIGxv
dyA8IHN5cy5tYXh1bmljb2RlCi1dCi1fbGVnYWxfeG1sX3JlID0gW3VuaWNocih4KSBmb3IgeCBp
biBfbGVnYWxfY2hhcnNdICsgX2xlZ2FsX3htbF9yZQotaWxsZWdhbF94bWxfcmUgPSByZS5jb21w
aWxlKHVuaWNvZGUoJ1teJXNdJykgJSB1bmljb2RlKCcnKS5qb2luKF9sZWdhbF94bWxfcmUpKQot
ZGVsIF9sZWdhbF9jaGFycwotZGVsIF9sZWdhbF9yYW5nZXMKLWRlbCBfbGVnYWxfeG1sX3JlCi0K
LV9weV9leHRfcmUgPSByZS5jb21waWxlKHIiXC5weSQiKQotCi0KLWRlZiBiaW5feG1sX2VzY2Fw
ZShhcmcpOgotICAgIGRlZiByZXBsKG1hdGNob2JqKToKLSAgICAgICAgaSA9IG9yZChtYXRjaG9i
ai5ncm91cCgpKQotICAgICAgICBpZiBpIDw9IDB4RkY6Ci0gICAgICAgICAgICByZXR1cm4gdW5p
Y29kZSgnI3glMDJYJykgJSBpCi0gICAgICAgIGVsc2U6Ci0gICAgICAgICAgICByZXR1cm4gdW5p
Y29kZSgnI3glMDRYJykgJSBpCi0KLSAgICByZXR1cm4gcHkueG1sLnJhdyhpbGxlZ2FsX3htbF9y
ZS5zdWIocmVwbCwgcHkueG1sLmVzY2FwZShhcmcpKSkKLQotCi1jbGFzcyBfTm9kZVJlcG9ydGVy
KG9iamVjdCk6Ci0gICAgZGVmIF9faW5pdF9fKHNlbGYsIG5vZGVpZCwgeG1sKToKLQotICAgICAg
ICBzZWxmLmlkID0gbm9kZWlkCi0gICAgICAgIHNlbGYueG1sID0geG1sCi0gICAgICAgIHNlbGYu
YWRkX3N0YXRzID0gc2VsZi54bWwuYWRkX3N0YXRzCi0gICAgICAgIHNlbGYuZHVyYXRpb24gPSAw
Ci0gICAgICAgIHNlbGYucHJvcGVydGllcyA9IFtdCi0gICAgICAgIHNlbGYubm9kZXMgPSBbXQot
ICAgICAgICBzZWxmLnRlc3RjYXNlID0gTm9uZQotICAgICAgICBzZWxmLmF0dHJzID0ge30KLQot
ICAgIGRlZiBhcHBlbmQoc2VsZiwgbm9kZSk6Ci0gICAgICAgIHNlbGYueG1sLmFkZF9zdGF0cyh0
eXBlKG5vZGUpLl9fbmFtZV9fKQotICAgICAgICBzZWxmLm5vZGVzLmFwcGVuZChub2RlKQotCi0g
ICAgZGVmIGFkZF9wcm9wZXJ0eShzZWxmLCBuYW1lLCB2YWx1ZSk6Ci0gICAgICAgIHNlbGYucHJv
cGVydGllcy5hcHBlbmQoKHN0cihuYW1lKSwgYmluX3htbF9lc2NhcGUodmFsdWUpKSkKLQotICAg
IGRlZiBtYWtlX3Byb3BlcnRpZXNfbm9kZShzZWxmKToKLSAgICAgICAgIiIiUmV0dXJuIGEgSnVu
aXQgbm9kZSBjb250YWluaW5nIGN1c3RvbSBwcm9wZXJ0aWVzLCBpZiBhbnkuCi0gICAgICAgICIi
IgotICAgICAgICBpZiBzZWxmLnByb3BlcnRpZXM6Ci0gICAgICAgICAgICByZXR1cm4gSnVuaXQu
cHJvcGVydGllcyhbCi0gICAgICAgICAgICAgICAgSnVuaXQucHJvcGVydHkobmFtZT1uYW1lLCB2
YWx1ZT12YWx1ZSkKLSAgICAgICAgICAgICAgICBmb3IgbmFtZSwgdmFsdWUgaW4gc2VsZi5wcm9w
ZXJ0aWVzCi0gICAgICAgICAgICBdKQotICAgICAgICByZXR1cm4gJycKLQotICAgIGRlZiByZWNv
cmRfdGVzdHJlcG9ydChzZWxmLCB0ZXN0cmVwb3J0KToKLSAgICAgICAgYXNzZXJ0IG5vdCBzZWxm
LnRlc3RjYXNlCi0gICAgICAgIG5hbWVzID0gbWFuZ2xlX3Rlc3RfYWRkcmVzcyh0ZXN0cmVwb3J0
Lm5vZGVpZCkKLSAgICAgICAgY2xhc3NuYW1lcyA9IG5hbWVzWzotMV0KLSAgICAgICAgaWYgc2Vs
Zi54bWwucHJlZml4OgotICAgICAgICAgICAgY2xhc3NuYW1lcy5pbnNlcnQoMCwgc2VsZi54bWwu
cHJlZml4KQotICAgICAgICBhdHRycyA9IHsKLSAgICAgICAgICAgICJjbGFzc25hbWUiOiAiLiIu
am9pbihjbGFzc25hbWVzKSwKLSAgICAgICAgICAgICJuYW1lIjogYmluX3htbF9lc2NhcGUobmFt
ZXNbLTFdKSwKLSAgICAgICAgICAgICJmaWxlIjogdGVzdHJlcG9ydC5sb2NhdGlvblswXSwKLSAg
ICAgICAgfQotICAgICAgICBpZiB0ZXN0cmVwb3J0LmxvY2F0aW9uWzFdIGlzIG5vdCBOb25lOgot
ICAgICAgICAgICAgYXR0cnNbImxpbmUiXSA9IHRlc3RyZXBvcnQubG9jYXRpb25bMV0KLSAgICAg
ICAgaWYgaGFzYXR0cih0ZXN0cmVwb3J0LCAidXJsIik6Ci0gICAgICAgICAgICBhdHRyc1sidXJs
Il0gPSB0ZXN0cmVwb3J0LnVybAotICAgICAgICBzZWxmLmF0dHJzID0gYXR0cnMKLQotICAgIGRl
ZiB0b194bWwoc2VsZik6Ci0gICAgICAgIHRlc3RjYXNlID0gSnVuaXQudGVzdGNhc2UodGltZT1z
ZWxmLmR1cmF0aW9uLCAqKnNlbGYuYXR0cnMpCi0gICAgICAgIHRlc3RjYXNlLmFwcGVuZChzZWxm
Lm1ha2VfcHJvcGVydGllc19ub2RlKCkpCi0gICAgICAgIGZvciBub2RlIGluIHNlbGYubm9kZXM6
Ci0gICAgICAgICAgICB0ZXN0Y2FzZS5hcHBlbmQobm9kZSkKLSAgICAgICAgcmV0dXJuIHRlc3Rj
YXNlCi0KLSAgICBkZWYgX2FkZF9zaW1wbGUoc2VsZiwga2luZCwgbWVzc2FnZSwgZGF0YT1Ob25l
KToKLSAgICAgICAgZGF0YSA9IGJpbl94bWxfZXNjYXBlKGRhdGEpCi0gICAgICAgIG5vZGUgPSBr
aW5kKGRhdGEsIG1lc3NhZ2U9bWVzc2FnZSkKLSAgICAgICAgc2VsZi5hcHBlbmQobm9kZSkKLQot
ICAgIGRlZiB3cml0ZV9jYXB0dXJlZF9vdXRwdXQoc2VsZiwgcmVwb3J0KToKLSAgICAgICAgZm9y
IGNhcG5hbWUgaW4gKCdvdXQnLCAnZXJyJyk6Ci0gICAgICAgICAgICBjb250ZW50ID0gZ2V0YXR0
cihyZXBvcnQsICdjYXBzdGQnICsgY2FwbmFtZSkKLSAgICAgICAgICAgIGlmIGNvbnRlbnQ6Ci0g
ICAgICAgICAgICAgICAgdGFnID0gZ2V0YXR0cihKdW5pdCwgJ3N5c3RlbS0nICsgY2FwbmFtZSkK
LSAgICAgICAgICAgICAgICBzZWxmLmFwcGVuZCh0YWcoYmluX3htbF9lc2NhcGUoY29udGVudCkp
KQotCi0gICAgZGVmIGFwcGVuZF9wYXNzKHNlbGYsIHJlcG9ydCk6Ci0gICAgICAgIHNlbGYuYWRk
X3N0YXRzKCdwYXNzZWQnKQotCi0gICAgZGVmIGFwcGVuZF9mYWlsdXJlKHNlbGYsIHJlcG9ydCk6
Ci0gICAgICAgICMgbXNnID0gc3RyKHJlcG9ydC5sb25ncmVwci5yZXBydHJhY2ViYWNrLmV4dHJh
bGluZSkKLSAgICAgICAgaWYgaGFzYXR0cihyZXBvcnQsICJ3YXN4ZmFpbCIpOgotICAgICAgICAg
ICAgc2VsZi5fYWRkX3NpbXBsZSgKLSAgICAgICAgICAgICAgICBKdW5pdC5za2lwcGVkLAotICAg
ICAgICAgICAgICAgICJ4ZmFpbC1tYXJrZWQgdGVzdCBwYXNzZXMgdW5leHBlY3RlZGx5IikKLSAg
ICAgICAgZWxzZToKLSAgICAgICAgICAgIGlmIGhhc2F0dHIocmVwb3J0LmxvbmdyZXByLCAicmVw
cmNyYXNoIik6Ci0gICAgICAgICAgICAgICAgbWVzc2FnZSA9IHJlcG9ydC5sb25ncmVwci5yZXBy
Y3Jhc2gubWVzc2FnZQotICAgICAgICAgICAgZWxpZiBpc2luc3RhbmNlKHJlcG9ydC5sb25ncmVw
ciwgKHVuaWNvZGUsIHN0cikpOgotICAgICAgICAgICAgICAgIG1lc3NhZ2UgPSByZXBvcnQubG9u
Z3JlcHIKLSAgICAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAgICAgbWVzc2FnZSA9IHN0cihy
ZXBvcnQubG9uZ3JlcHIpCi0gICAgICAgICAgICBtZXNzYWdlID0gYmluX3htbF9lc2NhcGUobWVz
c2FnZSkKLSAgICAgICAgICAgIGZhaWwgPSBKdW5pdC5mYWlsdXJlKG1lc3NhZ2U9bWVzc2FnZSkK
LSAgICAgICAgICAgIGZhaWwuYXBwZW5kKGJpbl94bWxfZXNjYXBlKHJlcG9ydC5sb25ncmVwcikp
Ci0gICAgICAgICAgICBzZWxmLmFwcGVuZChmYWlsKQotCi0gICAgZGVmIGFwcGVuZF9jb2xsZWN0
X2Vycm9yKHNlbGYsIHJlcG9ydCk6Ci0gICAgICAgICMgbXNnID0gc3RyKHJlcG9ydC5sb25ncmVw
ci5yZXBydHJhY2ViYWNrLmV4dHJhbGluZSkKLSAgICAgICAgc2VsZi5hcHBlbmQoSnVuaXQuZXJy
b3IoYmluX3htbF9lc2NhcGUocmVwb3J0LmxvbmdyZXByKSwKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgbWVzc2FnZT0iY29sbGVjdGlvbiBmYWlsdXJlIikpCi0KLSAgICBkZWYgYXBw
ZW5kX2NvbGxlY3Rfc2tpcHBlZChzZWxmLCByZXBvcnQpOgotICAgICAgICBzZWxmLl9hZGRfc2lt
cGxlKAotICAgICAgICAgICAgSnVuaXQuc2tpcHBlZCwgImNvbGxlY3Rpb24gc2tpcHBlZCIsIHJl
cG9ydC5sb25ncmVwcikKLQotICAgIGRlZiBhcHBlbmRfZXJyb3Ioc2VsZiwgcmVwb3J0KToKLSAg
ICAgICAgaWYgZ2V0YXR0cihyZXBvcnQsICd3aGVuJywgTm9uZSkgPT0gJ3RlYXJkb3duJzoKLSAg
ICAgICAgICAgIG1zZyA9ICJ0ZXN0IHRlYXJkb3duIGZhaWx1cmUiCi0gICAgICAgIGVsc2U6Ci0g
ICAgICAgICAgICBtc2cgPSAidGVzdCBzZXR1cCBmYWlsdXJlIgotICAgICAgICBzZWxmLl9hZGRf
c2ltcGxlKAotICAgICAgICAgICAgSnVuaXQuZXJyb3IsIG1zZywgcmVwb3J0LmxvbmdyZXByKQot
Ci0gICAgZGVmIGFwcGVuZF9za2lwcGVkKHNlbGYsIHJlcG9ydCk6Ci0gICAgICAgIGlmIGhhc2F0
dHIocmVwb3J0LCAid2FzeGZhaWwiKToKLSAgICAgICAgICAgIHNlbGYuX2FkZF9zaW1wbGUoCi0g
ICAgICAgICAgICAgICAgSnVuaXQuc2tpcHBlZCwgImV4cGVjdGVkIHRlc3QgZmFpbHVyZSIsIHJl
cG9ydC53YXN4ZmFpbAotICAgICAgICAgICAgKQotICAgICAgICBlbHNlOgotICAgICAgICAgICAg
ZmlsZW5hbWUsIGxpbmVubywgc2tpcHJlYXNvbiA9IHJlcG9ydC5sb25ncmVwcgotICAgICAgICAg
ICAgaWYgc2tpcHJlYXNvbi5zdGFydHN3aXRoKCJTa2lwcGVkOiAiKToKLSAgICAgICAgICAgICAg
ICBza2lwcmVhc29uID0gYmluX3htbF9lc2NhcGUoc2tpcHJlYXNvbls5Ol0pCi0gICAgICAgICAg
ICBzZWxmLmFwcGVuZCgKLSAgICAgICAgICAgICAgICBKdW5pdC5za2lwcGVkKCIlczolczogJXMi
ICUgKGZpbGVuYW1lLCBsaW5lbm8sIHNraXByZWFzb24pLAotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgdHlwZT0icHl0ZXN0LnNraXAiLAotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgbWVzc2FnZT1za2lwcmVhc29uKSkKLSAgICAgICAgc2VsZi53cml0ZV9jYXB0dXJlZF9vdXRw
dXQocmVwb3J0KQotCi0gICAgZGVmIGZpbmFsaXplKHNlbGYpOgotICAgICAgICBkYXRhID0gc2Vs
Zi50b194bWwoKS51bmljb2RlKGluZGVudD0wKQotICAgICAgICBzZWxmLl9fZGljdF9fLmNsZWFy
KCkKLSAgICAgICAgc2VsZi50b194bWwgPSBsYW1iZGE6IHB5LnhtbC5yYXcoZGF0YSkKLQotCi1A
cHl0ZXN0LmZpeHR1cmUKLWRlZiByZWNvcmRfeG1sX3Byb3BlcnR5KHJlcXVlc3QpOgotICAgICIi
IkFkZCBleHRyYSB4bWwgcHJvcGVydGllcyB0byB0aGUgdGFnIGZvciB0aGUgY2FsbGluZyB0ZXN0
LgotICAgIFRoZSBmaXh0dXJlIGlzIGNhbGxhYmxlIHdpdGggYGAobmFtZSwgdmFsdWUpYGAsIHdp
dGggdmFsdWUgYmVpbmcgYXV0b21hdGljYWxseQotICAgIHhtbC1lbmNvZGVkLgotICAgICIiIgot
ICAgIHJlcXVlc3Qubm9kZS53YXJuKAotICAgICAgICBjb2RlPSdDMycsCi0gICAgICAgIG1lc3Nh
Z2U9J3JlY29yZF94bWxfcHJvcGVydHkgaXMgYW4gZXhwZXJpbWVudGFsIGZlYXR1cmUnLAotICAg
ICkKLSAgICB4bWwgPSBnZXRhdHRyKHJlcXVlc3QuY29uZmlnLCAiX3htbCIsIE5vbmUpCi0gICAg
aWYgeG1sIGlzIG5vdCBOb25lOgotICAgICAgICBub2RlX3JlcG9ydGVyID0geG1sLm5vZGVfcmVw
b3J0ZXIocmVxdWVzdC5ub2RlLm5vZGVpZCkKLSAgICAgICAgcmV0dXJuIG5vZGVfcmVwb3J0ZXIu
YWRkX3Byb3BlcnR5Ci0gICAgZWxzZToKLSAgICAgICAgZGVmIGFkZF9wcm9wZXJ0eV9ub29wKG5h
bWUsIHZhbHVlKToKLSAgICAgICAgICAgIHBhc3MKLQotICAgICAgICByZXR1cm4gYWRkX3Byb3Bl
cnR5X25vb3AKLQotCi1kZWYgcHl0ZXN0X2FkZG9wdGlvbihwYXJzZXIpOgotICAgIGdyb3VwID0g
cGFyc2VyLmdldGdyb3VwKCJ0ZXJtaW5hbCByZXBvcnRpbmciKQotICAgIGdyb3VwLmFkZG9wdGlv
bigKLSAgICAgICAgJy0tanVuaXR4bWwnLCAnLS1qdW5pdC14bWwnLAotICAgICAgICBhY3Rpb249
InN0b3JlIiwKLSAgICAgICAgZGVzdD0ieG1scGF0aCIsCi0gICAgICAgIG1ldGF2YXI9InBhdGgi
LAotICAgICAgICB0eXBlPWZ1bmN0b29scy5wYXJ0aWFsKGZpbGVuYW1lX2FyZywgb3B0bmFtZT0i
LS1qdW5pdHhtbCIpLAotICAgICAgICBkZWZhdWx0PU5vbmUsCi0gICAgICAgIGhlbHA9ImNyZWF0
ZSBqdW5pdC14bWwgc3R5bGUgcmVwb3J0IGZpbGUgYXQgZ2l2ZW4gcGF0aC4iKQotICAgIGdyb3Vw
LmFkZG9wdGlvbigKLSAgICAgICAgJy0tanVuaXRwcmVmaXgnLCAnLS1qdW5pdC1wcmVmaXgnLAot
ICAgICAgICBhY3Rpb249InN0b3JlIiwKLSAgICAgICAgbWV0YXZhcj0ic3RyIiwKLSAgICAgICAg
ZGVmYXVsdD1Ob25lLAotICAgICAgICBoZWxwPSJwcmVwZW5kIHByZWZpeCB0byBjbGFzc25hbWVz
IGluIGp1bml0LXhtbCBvdXRwdXQiKQotICAgIHBhcnNlci5hZGRpbmkoImp1bml0X3N1aXRlX25h
bWUiLCAiVGVzdCBzdWl0ZSBuYW1lIGZvciBKVW5pdCByZXBvcnQiLCBkZWZhdWx0PSJweXRlc3Qi
KQotCi0KLWRlZiBweXRlc3RfY29uZmlndXJlKGNvbmZpZyk6Ci0gICAgeG1scGF0aCA9IGNvbmZp
Zy5vcHRpb24ueG1scGF0aAotICAgICMgcHJldmVudCBvcGVuaW5nIHhtbGxvZyBvbiBzbGF2ZSBu
b2RlcyAoeGRpc3QpCi0gICAgaWYgeG1scGF0aCBhbmQgbm90IGhhc2F0dHIoY29uZmlnLCAnc2xh
dmVpbnB1dCcpOgotICAgICAgICBjb25maWcuX3htbCA9IExvZ1hNTCh4bWxwYXRoLCBjb25maWcu
b3B0aW9uLmp1bml0cHJlZml4LCBjb25maWcuZ2V0aW5pKCJqdW5pdF9zdWl0ZV9uYW1lIikpCi0g
ICAgICAgIGNvbmZpZy5wbHVnaW5tYW5hZ2VyLnJlZ2lzdGVyKGNvbmZpZy5feG1sKQotCi0KLWRl
ZiBweXRlc3RfdW5jb25maWd1cmUoY29uZmlnKToKLSAgICB4bWwgPSBnZXRhdHRyKGNvbmZpZywg
J194bWwnLCBOb25lKQotICAgIGlmIHhtbDoKLSAgICAgICAgZGVsIGNvbmZpZy5feG1sCi0gICAg
ICAgIGNvbmZpZy5wbHVnaW5tYW5hZ2VyLnVucmVnaXN0ZXIoeG1sKQotCi0KLWRlZiBtYW5nbGVf
dGVzdF9hZGRyZXNzKGFkZHJlc3MpOgotICAgIHBhdGgsIHBvc3NpYmxlX29wZW5fYnJhY2tldCwg
cGFyYW1zID0gYWRkcmVzcy5wYXJ0aXRpb24oJ1snKQotICAgIG5hbWVzID0gcGF0aC5zcGxpdCgi
OjoiKQotICAgIHRyeToKLSAgICAgICAgbmFtZXMucmVtb3ZlKCcoKScpCi0gICAgZXhjZXB0IFZh
bHVlRXJyb3I6Ci0gICAgICAgIHBhc3MKLSAgICAjIGNvbnZlcnQgZmlsZSBwYXRoIHRvIGRvdHRl
ZCBwYXRoCi0gICAgbmFtZXNbMF0gPSBuYW1lc1swXS5yZXBsYWNlKG5vZGVzLlNFUCwgJy4nKQot
ICAgIG5hbWVzWzBdID0gX3B5X2V4dF9yZS5zdWIoIiIsIG5hbWVzWzBdKQotICAgICMgcHV0IGFu
eSBwYXJhbXMgYmFjawotICAgIG5hbWVzWy0xXSArPSBwb3NzaWJsZV9vcGVuX2JyYWNrZXQgKyBw
YXJhbXMKLSAgICByZXR1cm4gbmFtZXMKLQotCi1jbGFzcyBMb2dYTUwob2JqZWN0KToKLSAgICBk
ZWYgX19pbml0X18oc2VsZiwgbG9nZmlsZSwgcHJlZml4LCBzdWl0ZV9uYW1lPSJweXRlc3QiKToK
LSAgICAgICAgbG9nZmlsZSA9IG9zLnBhdGguZXhwYW5kdXNlcihvcy5wYXRoLmV4cGFuZHZhcnMo
bG9nZmlsZSkpCi0gICAgICAgIHNlbGYubG9nZmlsZSA9IG9zLnBhdGgubm9ybXBhdGgob3MucGF0
aC5hYnNwYXRoKGxvZ2ZpbGUpKQotICAgICAgICBzZWxmLnByZWZpeCA9IHByZWZpeAotICAgICAg
ICBzZWxmLnN1aXRlX25hbWUgPSBzdWl0ZV9uYW1lCi0gICAgICAgIHNlbGYuc3RhdHMgPSBkaWN0
LmZyb21rZXlzKFsKLSAgICAgICAgICAgICdlcnJvcicsCi0gICAgICAgICAgICAncGFzc2VkJywK
LSAgICAgICAgICAgICdmYWlsdXJlJywKLSAgICAgICAgICAgICdza2lwcGVkJywKLSAgICAgICAg
XSwgMCkKLSAgICAgICAgc2VsZi5ub2RlX3JlcG9ydGVycyA9IHt9ICAjIG5vZGVpZCAtPiBfTm9k
ZVJlcG9ydGVyCi0gICAgICAgIHNlbGYubm9kZV9yZXBvcnRlcnNfb3JkZXJlZCA9IFtdCi0gICAg
ICAgIHNlbGYuZ2xvYmFsX3Byb3BlcnRpZXMgPSBbXQotICAgICAgICAjIExpc3Qgb2YgcmVwb3J0
cyB0aGF0IGZhaWxlZCBvbiBjYWxsIGJ1dCB0ZWFyZG93biBpcyBwZW5kaW5nLgotICAgICAgICBz
ZWxmLm9wZW5fcmVwb3J0cyA9IFtdCi0gICAgICAgIHNlbGYuY250X2RvdWJsZV9mYWlsX3Rlc3Rz
ID0gMAotCi0gICAgZGVmIGZpbmFsaXplKHNlbGYsIHJlcG9ydCk6Ci0gICAgICAgIG5vZGVpZCA9
IGdldGF0dHIocmVwb3J0LCAnbm9kZWlkJywgcmVwb3J0KQotICAgICAgICAjIGxvY2FsIGhhY2sg
dG8gaGFuZGxlIHhkaXN0IHJlcG9ydCBvcmRlcgotICAgICAgICBzbGF2ZW5vZGUgPSBnZXRhdHRy
KHJlcG9ydCwgJ25vZGUnLCBOb25lKQotICAgICAgICByZXBvcnRlciA9IHNlbGYubm9kZV9yZXBv
cnRlcnMucG9wKChub2RlaWQsIHNsYXZlbm9kZSkpCi0gICAgICAgIGlmIHJlcG9ydGVyIGlzIG5v
dCBOb25lOgotICAgICAgICAgICAgcmVwb3J0ZXIuZmluYWxpemUoKQotCi0gICAgZGVmIG5vZGVf
cmVwb3J0ZXIoc2VsZiwgcmVwb3J0KToKLSAgICAgICAgbm9kZWlkID0gZ2V0YXR0cihyZXBvcnQs
ICdub2RlaWQnLCByZXBvcnQpCi0gICAgICAgICMgbG9jYWwgaGFjayB0byBoYW5kbGUgeGRpc3Qg
cmVwb3J0IG9yZGVyCi0gICAgICAgIHNsYXZlbm9kZSA9IGdldGF0dHIocmVwb3J0LCAnbm9kZScs
IE5vbmUpCi0KLSAgICAgICAga2V5ID0gbm9kZWlkLCBzbGF2ZW5vZGUKLQotICAgICAgICBpZiBr
ZXkgaW4gc2VsZi5ub2RlX3JlcG9ydGVyczoKLSAgICAgICAgICAgICMgVE9ETzogYnJlYXNrcyBm
b3IgLS1kaXN0PWVhY2gKLSAgICAgICAgICAgIHJldHVybiBzZWxmLm5vZGVfcmVwb3J0ZXJzW2tl
eV0KLQotICAgICAgICByZXBvcnRlciA9IF9Ob2RlUmVwb3J0ZXIobm9kZWlkLCBzZWxmKQotCi0g
ICAgICAgIHNlbGYubm9kZV9yZXBvcnRlcnNba2V5XSA9IHJlcG9ydGVyCi0gICAgICAgIHNlbGYu
bm9kZV9yZXBvcnRlcnNfb3JkZXJlZC5hcHBlbmQocmVwb3J0ZXIpCi0KLSAgICAgICAgcmV0dXJu
IHJlcG9ydGVyCi0KLSAgICBkZWYgYWRkX3N0YXRzKHNlbGYsIGtleSk6Ci0gICAgICAgIGlmIGtl
eSBpbiBzZWxmLnN0YXRzOgotICAgICAgICAgICAgc2VsZi5zdGF0c1trZXldICs9IDEKLQotICAg
IGRlZiBfb3BlbnRlc3RjYXNlKHNlbGYsIHJlcG9ydCk6Ci0gICAgICAgIHJlcG9ydGVyID0gc2Vs
Zi5ub2RlX3JlcG9ydGVyKHJlcG9ydCkKLSAgICAgICAgcmVwb3J0ZXIucmVjb3JkX3Rlc3RyZXBv
cnQocmVwb3J0KQotICAgICAgICByZXR1cm4gcmVwb3J0ZXIKLQotICAgIGRlZiBweXRlc3RfcnVu
dGVzdF9sb2dyZXBvcnQoc2VsZiwgcmVwb3J0KToKLSAgICAgICAgIiIiaGFuZGxlIGEgc2V0dXAv
Y2FsbC90ZWFyZG93biByZXBvcnQsIGdlbmVyYXRpbmcgdGhlIGFwcHJvcHJpYXRlCi0gICAgICAg
IHhtbCB0YWdzIGFzIG5lY2Vzc2FyeS4KLQotICAgICAgICBub3RlOiBkdWUgdG8gcGx1Z2lucyBs
aWtlIHhkaXN0LCB0aGlzIGhvb2sgbWF5IGJlIGNhbGxlZCBpbiBpbnRlcmxhY2VkCi0gICAgICAg
IG9yZGVyIHdpdGggcmVwb3J0cyBmcm9tIG90aGVyIG5vZGVzLiBmb3IgZXhhbXBsZToKLQotICAg
ICAgICB1c3VhbCBjYWxsIG9yZGVyOgotICAgICAgICAgICAgLT4gc2V0dXAgbm9kZTEKLSAgICAg
ICAgICAgIC0+IGNhbGwgbm9kZTEKLSAgICAgICAgICAgIC0+IHRlYXJkb3duIG5vZGUxCi0gICAg
ICAgICAgICAtPiBzZXR1cCBub2RlMgotICAgICAgICAgICAgLT4gY2FsbCBub2RlMgotICAgICAg
ICAgICAgLT4gdGVhcmRvd24gbm9kZTIKLQotICAgICAgICBwb3NzaWJsZSBjYWxsIG9yZGVyIGlu
IHhkaXN0OgotICAgICAgICAgICAgLT4gc2V0dXAgbm9kZTEKLSAgICAgICAgICAgIC0+IGNhbGwg
bm9kZTEKLSAgICAgICAgICAgIC0+IHNldHVwIG5vZGUyCi0gICAgICAgICAgICAtPiBjYWxsIG5v
ZGUyCi0gICAgICAgICAgICAtPiB0ZWFyZG93biBub2RlMgotICAgICAgICAgICAgLT4gdGVhcmRv
d24gbm9kZTEKLSAgICAgICAgIiIiCi0gICAgICAgIGNsb3NlX3JlcG9ydCA9IE5vbmUKLSAgICAg
ICAgaWYgcmVwb3J0LnBhc3NlZDoKLSAgICAgICAgICAgIGlmIHJlcG9ydC53aGVuID09ICJjYWxs
IjogICMgaWdub3JlIHNldHVwL3RlYXJkb3duCi0gICAgICAgICAgICAgICAgcmVwb3J0ZXIgPSBz
ZWxmLl9vcGVudGVzdGNhc2UocmVwb3J0KQotICAgICAgICAgICAgICAgIHJlcG9ydGVyLmFwcGVu
ZF9wYXNzKHJlcG9ydCkKLSAgICAgICAgZWxpZiByZXBvcnQuZmFpbGVkOgotICAgICAgICAgICAg
aWYgcmVwb3J0LndoZW4gPT0gInRlYXJkb3duIjoKLSAgICAgICAgICAgICAgICAjIFRoZSBmb2xs
b3dpbmcgdmFycyBhcmUgbmVlZGVkIHdoZW4geGRpc3QgcGx1Z2luIGlzIHVzZWQKLSAgICAgICAg
ICAgICAgICByZXBvcnRfd2lkID0gZ2V0YXR0cihyZXBvcnQsICJ3b3JrZXJfaWQiLCBOb25lKQot
ICAgICAgICAgICAgICAgIHJlcG9ydF9paSA9IGdldGF0dHIocmVwb3J0LCAiaXRlbV9pbmRleCIs
IE5vbmUpCi0gICAgICAgICAgICAgICAgY2xvc2VfcmVwb3J0ID0gbmV4dCgKLSAgICAgICAgICAg
ICAgICAgICAgKHJlcCBmb3IgcmVwIGluIHNlbGYub3Blbl9yZXBvcnRzCi0gICAgICAgICAgICAg
ICAgICAgICBpZiAocmVwLm5vZGVpZCA9PSByZXBvcnQubm9kZWlkIGFuZAotICAgICAgICAgICAg
ICAgICAgICAgICAgIGdldGF0dHIocmVwLCAiaXRlbV9pbmRleCIsIE5vbmUpID09IHJlcG9ydF9p
aSBhbmQKLSAgICAgICAgICAgICAgICAgICAgICAgICBnZXRhdHRyKHJlcCwgIndvcmtlcl9pZCIs
IE5vbmUpID09IHJlcG9ydF93aWQKLSAgICAgICAgICAgICAgICAgICAgICAgICApCi0gICAgICAg
ICAgICAgICAgICAgICApLCBOb25lKQotICAgICAgICAgICAgICAgIGlmIGNsb3NlX3JlcG9ydDoK
LSAgICAgICAgICAgICAgICAgICAgIyBXZSBuZWVkIHRvIG9wZW4gbmV3IHRlc3RjYXNlIGluIGNh
c2Ugd2UgaGF2ZSBmYWlsdXJlIGluCi0gICAgICAgICAgICAgICAgICAgICMgY2FsbCBhbmQgZXJy
b3IgaW4gdGVhcmRvd24gaW4gb3JkZXIgdG8gZm9sbG93IGp1bml0Ci0gICAgICAgICAgICAgICAg
ICAgICMgc2NoZW1hCi0gICAgICAgICAgICAgICAgICAgIHNlbGYuZmluYWxpemUoY2xvc2VfcmVw
b3J0KQotICAgICAgICAgICAgICAgICAgICBzZWxmLmNudF9kb3VibGVfZmFpbF90ZXN0cyArPSAx
Ci0gICAgICAgICAgICByZXBvcnRlciA9IHNlbGYuX29wZW50ZXN0Y2FzZShyZXBvcnQpCi0gICAg
ICAgICAgICBpZiByZXBvcnQud2hlbiA9PSAiY2FsbCI6Ci0gICAgICAgICAgICAgICAgcmVwb3J0
ZXIuYXBwZW5kX2ZhaWx1cmUocmVwb3J0KQotICAgICAgICAgICAgICAgIHNlbGYub3Blbl9yZXBv
cnRzLmFwcGVuZChyZXBvcnQpCi0gICAgICAgICAgICBlbHNlOgotICAgICAgICAgICAgICAgIHJl
cG9ydGVyLmFwcGVuZF9lcnJvcihyZXBvcnQpCi0gICAgICAgIGVsaWYgcmVwb3J0LnNraXBwZWQ6
Ci0gICAgICAgICAgICByZXBvcnRlciA9IHNlbGYuX29wZW50ZXN0Y2FzZShyZXBvcnQpCi0gICAg
ICAgICAgICByZXBvcnRlci5hcHBlbmRfc2tpcHBlZChyZXBvcnQpCi0gICAgICAgIHNlbGYudXBk
YXRlX3Rlc3RjYXNlX2R1cmF0aW9uKHJlcG9ydCkKLSAgICAgICAgaWYgcmVwb3J0LndoZW4gPT0g
InRlYXJkb3duIjoKLSAgICAgICAgICAgIHJlcG9ydGVyID0gc2VsZi5fb3BlbnRlc3RjYXNlKHJl
cG9ydCkKLSAgICAgICAgICAgIHJlcG9ydGVyLndyaXRlX2NhcHR1cmVkX291dHB1dChyZXBvcnQp
Ci0gICAgICAgICAgICBzZWxmLmZpbmFsaXplKHJlcG9ydCkKLSAgICAgICAgICAgIHJlcG9ydF93
aWQgPSBnZXRhdHRyKHJlcG9ydCwgIndvcmtlcl9pZCIsIE5vbmUpCi0gICAgICAgICAgICByZXBv
cnRfaWkgPSBnZXRhdHRyKHJlcG9ydCwgIml0ZW1faW5kZXgiLCBOb25lKQotICAgICAgICAgICAg
Y2xvc2VfcmVwb3J0ID0gbmV4dCgKLSAgICAgICAgICAgICAgICAocmVwIGZvciByZXAgaW4gc2Vs
Zi5vcGVuX3JlcG9ydHMKLSAgICAgICAgICAgICAgICAgaWYgKHJlcC5ub2RlaWQgPT0gcmVwb3J0
Lm5vZGVpZCBhbmQKLSAgICAgICAgICAgICAgICAgICAgIGdldGF0dHIocmVwLCAiaXRlbV9pbmRl
eCIsIE5vbmUpID09IHJlcG9ydF9paSBhbmQKLSAgICAgICAgICAgICAgICAgICAgIGdldGF0dHIo
cmVwLCAid29ya2VyX2lkIiwgTm9uZSkgPT0gcmVwb3J0X3dpZAotICAgICAgICAgICAgICAgICAg
ICAgKQotICAgICAgICAgICAgICAgICApLCBOb25lKQotICAgICAgICAgICAgaWYgY2xvc2VfcmVw
b3J0OgotICAgICAgICAgICAgICAgIHNlbGYub3Blbl9yZXBvcnRzLnJlbW92ZShjbG9zZV9yZXBv
cnQpCi0KLSAgICBkZWYgdXBkYXRlX3Rlc3RjYXNlX2R1cmF0aW9uKHNlbGYsIHJlcG9ydCk6Ci0g
ICAgICAgICIiImFjY3VtdWxhdGVzIHRvdGFsIGR1cmF0aW9uIGZvciBub2RlaWQgZnJvbSBnaXZl
biByZXBvcnQgYW5kIHVwZGF0ZXMKLSAgICAgICAgdGhlIEp1bml0LnRlc3RjYXNlIHdpdGggdGhl
IG5ldyB0b3RhbCBpZiBhbHJlYWR5IGNyZWF0ZWQuCi0gICAgICAgICIiIgotICAgICAgICByZXBv
cnRlciA9IHNlbGYubm9kZV9yZXBvcnRlcihyZXBvcnQpCi0gICAgICAgIHJlcG9ydGVyLmR1cmF0
aW9uICs9IGdldGF0dHIocmVwb3J0LCAnZHVyYXRpb24nLCAwLjApCi0KLSAgICBkZWYgcHl0ZXN0
X2NvbGxlY3RyZXBvcnQoc2VsZiwgcmVwb3J0KToKLSAgICAgICAgaWYgbm90IHJlcG9ydC5wYXNz
ZWQ6Ci0gICAgICAgICAgICByZXBvcnRlciA9IHNlbGYuX29wZW50ZXN0Y2FzZShyZXBvcnQpCi0g
ICAgICAgICAgICBpZiByZXBvcnQuZmFpbGVkOgotICAgICAgICAgICAgICAgIHJlcG9ydGVyLmFw
cGVuZF9jb2xsZWN0X2Vycm9yKHJlcG9ydCkKLSAgICAgICAgICAgIGVsc2U6Ci0gICAgICAgICAg
ICAgICAgcmVwb3J0ZXIuYXBwZW5kX2NvbGxlY3Rfc2tpcHBlZChyZXBvcnQpCi0KLSAgICBkZWYg
cHl0ZXN0X2ludGVybmFsZXJyb3Ioc2VsZiwgZXhjcmVwcik6Ci0gICAgICAgIHJlcG9ydGVyID0g
c2VsZi5ub2RlX3JlcG9ydGVyKCdpbnRlcm5hbCcpCi0gICAgICAgIHJlcG9ydGVyLmF0dHJzLnVw
ZGF0ZShjbGFzc25hbWU9InB5dGVzdCIsIG5hbWU9J2ludGVybmFsJykKLSAgICAgICAgcmVwb3J0
ZXIuX2FkZF9zaW1wbGUoSnVuaXQuZXJyb3IsICdpbnRlcm5hbCBlcnJvcicsIGV4Y3JlcHIpCi0K
LSAgICBkZWYgcHl0ZXN0X3Nlc3Npb25zdGFydChzZWxmKToKLSAgICAgICAgc2VsZi5zdWl0ZV9z
dGFydF90aW1lID0gdGltZS50aW1lKCkKLQotICAgIGRlZiBweXRlc3Rfc2Vzc2lvbmZpbmlzaChz
ZWxmKToKLSAgICAgICAgZGlybmFtZSA9IG9zLnBhdGguZGlybmFtZShvcy5wYXRoLmFic3BhdGgo
c2VsZi5sb2dmaWxlKSkKLSAgICAgICAgaWYgbm90IG9zLnBhdGguaXNkaXIoZGlybmFtZSk6Ci0g
ICAgICAgICAgICBvcy5tYWtlZGlycyhkaXJuYW1lKQotICAgICAgICBsb2dmaWxlID0gb3Blbihz
ZWxmLmxvZ2ZpbGUsICd3JywgZW5jb2Rpbmc9J3V0Zi04JykKLSAgICAgICAgc3VpdGVfc3RvcF90
aW1lID0gdGltZS50aW1lKCkKLSAgICAgICAgc3VpdGVfdGltZV9kZWx0YSA9IHN1aXRlX3N0b3Bf
dGltZSAtIHNlbGYuc3VpdGVfc3RhcnRfdGltZQotCi0gICAgICAgIG51bXRlc3RzID0gKHNlbGYu
c3RhdHNbJ3Bhc3NlZCddICsgc2VsZi5zdGF0c1snZmFpbHVyZSddICsKLSAgICAgICAgICAgICAg
ICAgICAgc2VsZi5zdGF0c1snc2tpcHBlZCddICsgc2VsZi5zdGF0c1snZXJyb3InXSAtCi0gICAg
ICAgICAgICAgICAgICAgIHNlbGYuY250X2RvdWJsZV9mYWlsX3Rlc3RzKQotICAgICAgICBsb2dm
aWxlLndyaXRlKCc8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJ1dGYtOCI/PicpCi0KLSAg
ICAgICAgbG9nZmlsZS53cml0ZShKdW5pdC50ZXN0c3VpdGUoCi0gICAgICAgICAgICBzZWxmLl9n
ZXRfZ2xvYmFsX3Byb3BlcnRpZXNfbm9kZSgpLAotICAgICAgICAgICAgW3gudG9feG1sKCkgZm9y
IHggaW4gc2VsZi5ub2RlX3JlcG9ydGVyc19vcmRlcmVkXSwKLSAgICAgICAgICAgIG5hbWU9c2Vs
Zi5zdWl0ZV9uYW1lLAotICAgICAgICAgICAgZXJyb3JzPXNlbGYuc3RhdHNbJ2Vycm9yJ10sCi0g
ICAgICAgICAgICBmYWlsdXJlcz1zZWxmLnN0YXRzWydmYWlsdXJlJ10sCi0gICAgICAgICAgICBz
a2lwcz1zZWxmLnN0YXRzWydza2lwcGVkJ10sCi0gICAgICAgICAgICB0ZXN0cz1udW10ZXN0cywK
LSAgICAgICAgICAgIHRpbWU9IiUuM2YiICUgc3VpdGVfdGltZV9kZWx0YSwgKS51bmljb2RlKGlu
ZGVudD0wKSkKLSAgICAgICAgbG9nZmlsZS5jbG9zZSgpCi0KLSAgICBkZWYgcHl0ZXN0X3Rlcm1p
bmFsX3N1bW1hcnkoc2VsZiwgdGVybWluYWxyZXBvcnRlcik6Ci0gICAgICAgIHRlcm1pbmFscmVw
b3J0ZXIud3JpdGVfc2VwKCItIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ImdlbmVyYXRlZCB4bWwgZmlsZTogJXMiICUgKHNlbGYubG9nZmlsZSkpCi0KLSAgICBkZWYgYWRk
X2dsb2JhbF9wcm9wZXJ0eShzZWxmLCBuYW1lLCB2YWx1ZSk6Ci0gICAgICAgIHNlbGYuZ2xvYmFs
X3Byb3BlcnRpZXMuYXBwZW5kKChzdHIobmFtZSksIGJpbl94bWxfZXNjYXBlKHZhbHVlKSkpCi0K
LSAgICBkZWYgX2dldF9nbG9iYWxfcHJvcGVydGllc19ub2RlKHNlbGYpOgotICAgICAgICAiIiJS
ZXR1cm4gYSBKdW5pdCBub2RlIGNvbnRhaW5pbmcgY3VzdG9tIHByb3BlcnRpZXMsIGlmIGFueS4K
LSAgICAgICAgIiIiCi0gICAgICAgIGlmIHNlbGYuZ2xvYmFsX3Byb3BlcnRpZXM6Ci0gICAgICAg
ICAgICByZXR1cm4gSnVuaXQucHJvcGVydGllcygKLSAgICAgICAgICAgICAgICBbCi0gICAgICAg
ICAgICAgICAgICAgIEp1bml0LnByb3BlcnR5KG5hbWU9bmFtZSwgdmFsdWU9dmFsdWUpCi0gICAg
ICAgICAgICAgICAgICAgIGZvciBuYW1lLCB2YWx1ZSBpbiBzZWxmLmdsb2JhbF9wcm9wZXJ0aWVz
Ci0gICAgICAgICAgICAgICAgXQotICAgICAgICAgICAgKQotICAgICAgICByZXR1cm4gJycKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvdGhpcmRfcGFydHkvcHl0ZXN0L19weXRlc3QvbG9nZ2luZy5weSBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L19w
eXRlc3QvbG9nZ2luZy5weQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZWQ0ZGIyNWFk
NDQzMWVmYjE3NGZjYTVmOGFkNDgxYmQzOTllNGNjZC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9fcHl0ZXN0L2xvZ2dpbmcucHkKKysr
IC9kZXYvbnVsbApAQCAtMSwzMzcgKzAsMCBAQAotZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCBhYnNv
bHV0ZV9pbXBvcnQsIGRpdmlzaW9uLCBwcmludF9mdW5jdGlvbgotCi1pbXBvcnQgbG9nZ2luZwot
ZnJvbSBjb250ZXh0bGliIGltcG9ydCBjbG9zaW5nLCBjb250ZXh0bWFuYWdlcgotaW1wb3J0IHN5
cwotaW1wb3J0IHNpeAotCi1pbXBvcnQgcHl0ZXN0Ci1pbXBvcnQgcHkKLQotCi1ERUZBVUxUX0xP
R19GT1JNQVQgPSAnJShmaWxlbmFtZSktMjVzICUobGluZW5vKTRkICUobGV2ZWxuYW1lKS04cyAl
KG1lc3NhZ2UpcycKLURFRkFVTFRfTE9HX0RBVEVfRk9STUFUID0gJyVIOiVNOiVTJwotCi0KLWRl
ZiBnZXRfb3B0aW9uX2luaShjb25maWcsICpuYW1lcyk6Ci0gICAgZm9yIG5hbWUgaW4gbmFtZXM6
Ci0gICAgICAgIHJldCA9IGNvbmZpZy5nZXRvcHRpb24obmFtZSkgICMgJ2RlZmF1bHQnIGFyZyB3
b24ndCB3b3JrIGFzIGV4cGVjdGVkCi0gICAgICAgIGlmIHJldCBpcyBOb25lOgotICAgICAgICAg
ICAgcmV0ID0gY29uZmlnLmdldGluaShuYW1lKQotICAgICAgICBpZiByZXQ6Ci0gICAgICAgICAg
ICByZXR1cm4gcmV0Ci0KLQotZGVmIHB5dGVzdF9hZGRvcHRpb24ocGFyc2VyKToKLSAgICAiIiJB
ZGQgb3B0aW9ucyB0byBjb250cm9sIGxvZyBjYXB0dXJpbmcuIiIiCi0gICAgZ3JvdXAgPSBwYXJz
ZXIuZ2V0Z3JvdXAoJ2xvZ2dpbmcnKQotCi0gICAgZGVmIGFkZF9vcHRpb25faW5pKG9wdGlvbiwg
ZGVzdCwgZGVmYXVsdD1Ob25lLCB0eXBlPU5vbmUsICoqa3dhcmdzKToKLSAgICAgICAgcGFyc2Vy
LmFkZGluaShkZXN0LCBkZWZhdWx0PWRlZmF1bHQsIHR5cGU9dHlwZSwKLSAgICAgICAgICAgICAg
ICAgICAgICBoZWxwPSdkZWZhdWx0IHZhbHVlIGZvciAnICsgb3B0aW9uKQotICAgICAgICBncm91
cC5hZGRvcHRpb24ob3B0aW9uLCBkZXN0PWRlc3QsICoqa3dhcmdzKQotCi0gICAgYWRkX29wdGlv
bl9pbmkoCi0gICAgICAgICctLW5vLXByaW50LWxvZ3MnLAotICAgICAgICBkZXN0PSdsb2dfcHJp
bnQnLCBhY3Rpb249J3N0b3JlX2NvbnN0JywgY29uc3Q9RmFsc2UsIGRlZmF1bHQ9VHJ1ZSwKLSAg
ICAgICAgdHlwZT0nYm9vbCcsCi0gICAgICAgIGhlbHA9J2Rpc2FibGUgcHJpbnRpbmcgY2F1Z2h0
IGxvZ3Mgb24gZmFpbGVkIHRlc3RzLicpCi0gICAgYWRkX29wdGlvbl9pbmkoCi0gICAgICAgICct
LWxvZy1sZXZlbCcsCi0gICAgICAgIGRlc3Q9J2xvZ19sZXZlbCcsIGRlZmF1bHQ9Tm9uZSwKLSAg
ICAgICAgaGVscD0nbG9nZ2luZyBsZXZlbCB1c2VkIGJ5IHRoZSBsb2dnaW5nIG1vZHVsZScpCi0g
ICAgYWRkX29wdGlvbl9pbmkoCi0gICAgICAgICctLWxvZy1mb3JtYXQnLAotICAgICAgICBkZXN0
PSdsb2dfZm9ybWF0JywgZGVmYXVsdD1ERUZBVUxUX0xPR19GT1JNQVQsCi0gICAgICAgIGhlbHA9
J2xvZyBmb3JtYXQgYXMgdXNlZCBieSB0aGUgbG9nZ2luZyBtb2R1bGUuJykKLSAgICBhZGRfb3B0
aW9uX2luaSgKLSAgICAgICAgJy0tbG9nLWRhdGUtZm9ybWF0JywKLSAgICAgICAgZGVzdD0nbG9n
X2RhdGVfZm9ybWF0JywgZGVmYXVsdD1ERUZBVUxUX0xPR19EQVRFX0ZPUk1BVCwKLSAgICAgICAg
aGVscD0nbG9nIGRhdGUgZm9ybWF0IGFzIHVzZWQgYnkgdGhlIGxvZ2dpbmcgbW9kdWxlLicpCi0g
ICAgYWRkX29wdGlvbl9pbmkoCi0gICAgICAgICctLWxvZy1jbGktbGV2ZWwnLAotICAgICAgICBk
ZXN0PSdsb2dfY2xpX2xldmVsJywgZGVmYXVsdD1Ob25lLAotICAgICAgICBoZWxwPSdjbGkgbG9n
Z2luZyBsZXZlbC4nKQotICAgIGFkZF9vcHRpb25faW5pKAotICAgICAgICAnLS1sb2ctY2xpLWZv
cm1hdCcsCi0gICAgICAgIGRlc3Q9J2xvZ19jbGlfZm9ybWF0JywgZGVmYXVsdD1Ob25lLAotICAg
ICAgICBoZWxwPSdsb2cgZm9ybWF0IGFzIHVzZWQgYnkgdGhlIGxvZ2dpbmcgbW9kdWxlLicpCi0g
ICAgYWRkX29wdGlvbl9pbmkoCi0gICAgICAgICctLWxvZy1jbGktZGF0ZS1mb3JtYXQnLAotICAg
ICAgICBkZXN0PSdsb2dfY2xpX2RhdGVfZm9ybWF0JywgZGVmYXVsdD1Ob25lLAotICAgICAgICBo
ZWxwPSdsb2cgZGF0ZSBmb3JtYXQgYXMgdXNlZCBieSB0aGUgbG9nZ2luZyBtb2R1bGUuJykKLSAg
ICBhZGRfb3B0aW9uX2luaSgKLSAgICAgICAgJy0tbG9nLWZpbGUnLAotICAgICAgICBkZXN0PSds
b2dfZmlsZScsIGRlZmF1bHQ9Tm9uZSwKLSAgICAgICAgaGVscD0ncGF0aCB0byBhIGZpbGUgd2hl
biBsb2dnaW5nIHdpbGwgYmUgd3JpdHRlbiB0by4nKQotICAgIGFkZF9vcHRpb25faW5pKAotICAg
ICAgICAnLS1sb2ctZmlsZS1sZXZlbCcsCi0gICAgICAgIGRlc3Q9J2xvZ19maWxlX2xldmVsJywg
ZGVmYXVsdD1Ob25lLAotICAgICAgICBoZWxwPSdsb2cgZmlsZSBsb2dnaW5nIGxldmVsLicpCi0g
ICAgYWRkX29wdGlvbl9pbmkoCi0gICAgICAgICctLWxvZy1maWxlLWZvcm1hdCcsCi0gICAgICAg
IGRlc3Q9J2xvZ19maWxlX2Zvcm1hdCcsIGRlZmF1bHQ9REVGQVVMVF9MT0dfRk9STUFULAotICAg
ICAgICBoZWxwPSdsb2cgZm9ybWF0IGFzIHVzZWQgYnkgdGhlIGxvZ2dpbmcgbW9kdWxlLicpCi0g
ICAgYWRkX29wdGlvbl9pbmkoCi0gICAgICAgICctLWxvZy1maWxlLWRhdGUtZm9ybWF0JywKLSAg
ICAgICAgZGVzdD0nbG9nX2ZpbGVfZGF0ZV9mb3JtYXQnLCBkZWZhdWx0PURFRkFVTFRfTE9HX0RB
VEVfRk9STUFULAotICAgICAgICBoZWxwPSdsb2cgZGF0ZSBmb3JtYXQgYXMgdXNlZCBieSB0aGUg
bG9nZ2luZyBtb2R1bGUuJykKLQotCi1AY29udGV4dG1hbmFnZXIKLWRlZiBsb2dnaW5nX3VzaW5n
X2hhbmRsZXIoaGFuZGxlciwgbG9nZ2VyPU5vbmUpOgotICAgICIiIkNvbnRleHQgbWFuYWdlciB0
aGF0IHNhZmVseSByZWdpc3RlcnMgYSBnaXZlbiBoYW5kbGVyLiIiIgotICAgIGxvZ2dlciA9IGxv
Z2dlciBvciBsb2dnaW5nLmdldExvZ2dlcihsb2dnZXIpCi0KLSAgICBpZiBoYW5kbGVyIGluIGxv
Z2dlci5oYW5kbGVyczogICMgcmVlbnRyYW5jeQotICAgICAgICAjIEFkZGluZyB0aGUgc2FtZSBo
YW5kbGVyIHR3aWNlIHdvdWxkIGNvbmZ1c2UgbG9nZ2luZyBzeXN0ZW0uCi0gICAgICAgICMgSnVz
dCBkb24ndCBkbyB0aGF0LgotICAgICAgICB5aWVsZAotICAgIGVsc2U6Ci0gICAgICAgIGxvZ2dl
ci5hZGRIYW5kbGVyKGhhbmRsZXIpCi0gICAgICAgIHRyeToKLSAgICAgICAgICAgIHlpZWxkCi0g
ICAgICAgIGZpbmFsbHk6Ci0gICAgICAgICAgICBsb2dnZXIucmVtb3ZlSGFuZGxlcihoYW5kbGVy
KQotCi0KLUBjb250ZXh0bWFuYWdlcgotZGVmIGNhdGNoaW5nX2xvZ3MoaGFuZGxlciwgZm9ybWF0
dGVyPU5vbmUsCi0gICAgICAgICAgICAgICAgICBsZXZlbD1sb2dnaW5nLk5PVFNFVCwgbG9nZ2Vy
PU5vbmUpOgotICAgICIiIkNvbnRleHQgbWFuYWdlciB0aGF0IHByZXBhcmVzIHRoZSB3aG9sZSBs
b2dnaW5nIG1hY2hpbmVyeSBwcm9wZXJseS4iIiIKLSAgICBsb2dnZXIgPSBsb2dnZXIgb3IgbG9n
Z2luZy5nZXRMb2dnZXIobG9nZ2VyKQotCi0gICAgaWYgZm9ybWF0dGVyIGlzIG5vdCBOb25lOgot
ICAgICAgICBoYW5kbGVyLnNldEZvcm1hdHRlcihmb3JtYXR0ZXIpCi0gICAgaGFuZGxlci5zZXRM
ZXZlbChsZXZlbCkKLQotICAgIHdpdGggbG9nZ2luZ191c2luZ19oYW5kbGVyKGhhbmRsZXIsIGxv
Z2dlcik6Ci0gICAgICAgIG9yaWdfbGV2ZWwgPSBsb2dnZXIubGV2ZWwKLSAgICAgICAgbG9nZ2Vy
LnNldExldmVsKG1pbihvcmlnX2xldmVsLCBsZXZlbCkpCi0gICAgICAgIHRyeToKLSAgICAgICAg
ICAgIHlpZWxkIGhhbmRsZXIKLSAgICAgICAgZmluYWxseToKLSAgICAgICAgICAgIGxvZ2dlci5z
ZXRMZXZlbChvcmlnX2xldmVsKQotCi0KLWNsYXNzIExvZ0NhcHR1cmVIYW5kbGVyKGxvZ2dpbmcu
U3RyZWFtSGFuZGxlcik6Ci0gICAgIiIiQSBsb2dnaW5nIGhhbmRsZXIgdGhhdCBzdG9yZXMgbG9n
IHJlY29yZHMgYW5kIHRoZSBsb2cgdGV4dC4iIiIKLQotICAgIGRlZiBfX2luaXRfXyhzZWxmKToK
LSAgICAgICAgIiIiQ3JlYXRlcyBhIG5ldyBsb2cgaGFuZGxlci4iIiIKLSAgICAgICAgbG9nZ2lu
Zy5TdHJlYW1IYW5kbGVyLl9faW5pdF9fKHNlbGYsIHB5LmlvLlRleHRJTygpKQotICAgICAgICBz
ZWxmLnJlY29yZHMgPSBbXQotCi0gICAgZGVmIGVtaXQoc2VsZiwgcmVjb3JkKToKLSAgICAgICAg
IiIiS2VlcCB0aGUgbG9nIHJlY29yZHMgaW4gYSBsaXN0IGluIGFkZGl0aW9uIHRvIHRoZSBsb2cg
dGV4dC4iIiIKLSAgICAgICAgc2VsZi5yZWNvcmRzLmFwcGVuZChyZWNvcmQpCi0gICAgICAgIGxv
Z2dpbmcuU3RyZWFtSGFuZGxlci5lbWl0KHNlbGYsIHJlY29yZCkKLQotCi1jbGFzcyBMb2dDYXB0
dXJlRml4dHVyZShvYmplY3QpOgotICAgICIiIlByb3ZpZGVzIGFjY2VzcyBhbmQgY29udHJvbCBv
ZiBsb2cgY2FwdHVyaW5nLiIiIgotCi0gICAgZGVmIF9faW5pdF9fKHNlbGYsIGl0ZW0pOgotICAg
ICAgICAiIiJDcmVhdGVzIGEgbmV3IGZ1bmNhcmcuIiIiCi0gICAgICAgIHNlbGYuX2l0ZW0gPSBp
dGVtCi0KLSAgICBAcHJvcGVydHkKLSAgICBkZWYgaGFuZGxlcihzZWxmKToKLSAgICAgICAgcmV0
dXJuIHNlbGYuX2l0ZW0uY2F0Y2hfbG9nX2hhbmRsZXIKLQotICAgIEBwcm9wZXJ0eQotICAgIGRl
ZiB0ZXh0KHNlbGYpOgotICAgICAgICAiIiJSZXR1cm5zIHRoZSBsb2cgdGV4dC4iIiIKLSAgICAg
ICAgcmV0dXJuIHNlbGYuaGFuZGxlci5zdHJlYW0uZ2V0dmFsdWUoKQotCi0gICAgQHByb3BlcnR5
Ci0gICAgZGVmIHJlY29yZHMoc2VsZik6Ci0gICAgICAgICIiIlJldHVybnMgdGhlIGxpc3Qgb2Yg
bG9nIHJlY29yZHMuIiIiCi0gICAgICAgIHJldHVybiBzZWxmLmhhbmRsZXIucmVjb3JkcwotCi0g
ICAgQHByb3BlcnR5Ci0gICAgZGVmIHJlY29yZF90dXBsZXMoc2VsZik6Ci0gICAgICAgICIiIlJl
dHVybnMgYSBsaXN0IG9mIGEgc3RyaXBlZCBkb3duIHZlcnNpb24gb2YgbG9nIHJlY29yZHMgaW50
ZW5kZWQKLSAgICAgICAgZm9yIHVzZSBpbiBhc3NlcnRpb24gY29tcGFyaXNvbi4KLQotICAgICAg
ICBUaGUgZm9ybWF0IG9mIHRoZSB0dXBsZSBpczoKLQotICAgICAgICAgICAgKGxvZ2dlcl9uYW1l
LCBsb2dfbGV2ZWwsIG1lc3NhZ2UpCi0gICAgICAgICIiIgotICAgICAgICByZXR1cm4gWyhyLm5h
bWUsIHIubGV2ZWxubywgci5nZXRNZXNzYWdlKCkpIGZvciByIGluIHNlbGYucmVjb3Jkc10KLQot
ICAgIGRlZiBjbGVhcihzZWxmKToKLSAgICAgICAgIiIiUmVzZXQgdGhlIGxpc3Qgb2YgbG9nIHJl
Y29yZHMuIiIiCi0gICAgICAgIHNlbGYuaGFuZGxlci5yZWNvcmRzID0gW10KLQotICAgIGRlZiBz
ZXRfbGV2ZWwoc2VsZiwgbGV2ZWwsIGxvZ2dlcj1Ob25lKToKLSAgICAgICAgIiIiU2V0cyB0aGUg
bGV2ZWwgZm9yIGNhcHR1cmluZyBvZiBsb2dzLgotCi0gICAgICAgIEJ5IGRlZmF1bHQsIHRoZSBs
ZXZlbCBpcyBzZXQgb24gdGhlIGhhbmRsZXIgdXNlZCB0byBjYXB0dXJlCi0gICAgICAgIGxvZ3Mu
IFNwZWNpZnkgYSBsb2dnZXIgbmFtZSB0byBpbnN0ZWFkIHNldCB0aGUgbGV2ZWwgb2YgYW55Ci0g
ICAgICAgIGxvZ2dlci4KLSAgICAgICAgIiIiCi0gICAgICAgIGlmIGxvZ2dlciBpcyBOb25lOgot
ICAgICAgICAgICAgbG9nZ2VyID0gc2VsZi5oYW5kbGVyCi0gICAgICAgIGVsc2U6Ci0gICAgICAg
ICAgICBsb2dnZXIgPSBsb2dnaW5nLmdldExvZ2dlcihsb2dnZXIpCi0gICAgICAgIGxvZ2dlci5z
ZXRMZXZlbChsZXZlbCkKLQotICAgIEBjb250ZXh0bWFuYWdlcgotICAgIGRlZiBhdF9sZXZlbChz
ZWxmLCBsZXZlbCwgbG9nZ2VyPU5vbmUpOgotICAgICAgICAiIiJDb250ZXh0IG1hbmFnZXIgdGhh
dCBzZXRzIHRoZSBsZXZlbCBmb3IgY2FwdHVyaW5nIG9mIGxvZ3MuCi0KLSAgICAgICAgQnkgZGVm
YXVsdCwgdGhlIGxldmVsIGlzIHNldCBvbiB0aGUgaGFuZGxlciB1c2VkIHRvIGNhcHR1cmUKLSAg
ICAgICAgbG9ncy4gU3BlY2lmeSBhIGxvZ2dlciBuYW1lIHRvIGluc3RlYWQgc2V0IHRoZSBsZXZl
bCBvZiBhbnkKLSAgICAgICAgbG9nZ2VyLgotICAgICAgICAiIiIKLSAgICAgICAgaWYgbG9nZ2Vy
IGlzIE5vbmU6Ci0gICAgICAgICAgICBsb2dnZXIgPSBzZWxmLmhhbmRsZXIKLSAgICAgICAgZWxz
ZToKLSAgICAgICAgICAgIGxvZ2dlciA9IGxvZ2dpbmcuZ2V0TG9nZ2VyKGxvZ2dlcikKLQotICAg
ICAgICBvcmlnX2xldmVsID0gbG9nZ2VyLmxldmVsCi0gICAgICAgIGxvZ2dlci5zZXRMZXZlbChs
ZXZlbCkKLSAgICAgICAgdHJ5OgotICAgICAgICAgICAgeWllbGQKLSAgICAgICAgZmluYWxseToK
LSAgICAgICAgICAgIGxvZ2dlci5zZXRMZXZlbChvcmlnX2xldmVsKQotCi0KLUBweXRlc3QuZml4
dHVyZQotZGVmIGNhcGxvZyhyZXF1ZXN0KToKLSAgICAiIiJBY2Nlc3MgYW5kIGNvbnRyb2wgbG9n
IGNhcHR1cmluZy4KLQotICAgIENhcHR1cmVkIGxvZ3MgYXJlIGF2YWlsYWJsZSB0aHJvdWdoIHRo
ZSBmb2xsb3dpbmcgbWV0aG9kczo6Ci0KLSAgICAqIGNhcGxvZy50ZXh0KCkgICAgICAgICAgLT4g
c3RyaW5nIGNvbnRhaW5pbmcgZm9ybWF0dGVkIGxvZyBvdXRwdXQKLSAgICAqIGNhcGxvZy5yZWNv
cmRzKCkgICAgICAgLT4gbGlzdCBvZiBsb2dnaW5nLkxvZ1JlY29yZCBpbnN0YW5jZXMKLSAgICAq
IGNhcGxvZy5yZWNvcmRfdHVwbGVzKCkgLT4gbGlzdCBvZiAobG9nZ2VyX25hbWUsIGxldmVsLCBt
ZXNzYWdlKSB0dXBsZXMKLSAgICAiIiIKLSAgICByZXR1cm4gTG9nQ2FwdHVyZUZpeHR1cmUocmVx
dWVzdC5ub2RlKQotCi0KLWRlZiBnZXRfYWN0dWFsX2xvZ19sZXZlbChjb25maWcsICpzZXR0aW5n
X25hbWVzKToKLSAgICAiIiJSZXR1cm4gdGhlIGFjdHVhbCBsb2dnaW5nIGxldmVsLiIiIgotCi0g
ICAgZm9yIHNldHRpbmdfbmFtZSBpbiBzZXR0aW5nX25hbWVzOgotICAgICAgICBsb2dfbGV2ZWwg
PSBjb25maWcuZ2V0b3B0aW9uKHNldHRpbmdfbmFtZSkKLSAgICAgICAgaWYgbG9nX2xldmVsIGlz
IE5vbmU6Ci0gICAgICAgICAgICBsb2dfbGV2ZWwgPSBjb25maWcuZ2V0aW5pKHNldHRpbmdfbmFt
ZSkKLSAgICAgICAgaWYgbG9nX2xldmVsOgotICAgICAgICAgICAgYnJlYWsKLSAgICBlbHNlOgot
ICAgICAgICByZXR1cm4KLQotICAgIGlmIGlzaW5zdGFuY2UobG9nX2xldmVsLCBzaXguc3RyaW5n
X3R5cGVzKToKLSAgICAgICAgbG9nX2xldmVsID0gbG9nX2xldmVsLnVwcGVyKCkKLSAgICB0cnk6
Ci0gICAgICAgIHJldHVybiBpbnQoZ2V0YXR0cihsb2dnaW5nLCBsb2dfbGV2ZWwsIGxvZ19sZXZl
bCkpCi0gICAgZXhjZXB0IFZhbHVlRXJyb3I6Ci0gICAgICAgICMgUHl0aG9uIGxvZ2dpbmcgZG9l
cyBub3QgcmVjb2duaXNlIHRoaXMgYXMgYSBsb2dnaW5nIGxldmVsCi0gICAgICAgIHJhaXNlIHB5
dGVzdC5Vc2FnZUVycm9yKAotICAgICAgICAgICAgIid7MH0nIGlzIG5vdCByZWNvZ25pemVkIGFz
IGEgbG9nZ2luZyBsZXZlbCBuYW1lIGZvciAiCi0gICAgICAgICAgICAiJ3sxfScuIFBsZWFzZSBj
b25zaWRlciBwYXNzaW5nIHRoZSAiCi0gICAgICAgICAgICAibG9nZ2luZyBsZXZlbCBudW0gaW5z
dGVhZC4iLmZvcm1hdCgKLSAgICAgICAgICAgICAgICBsb2dfbGV2ZWwsCi0gICAgICAgICAgICAg
ICAgc2V0dGluZ19uYW1lKSkKLQotCi1kZWYgcHl0ZXN0X2NvbmZpZ3VyZShjb25maWcpOgotICAg
IGNvbmZpZy5wbHVnaW5tYW5hZ2VyLnJlZ2lzdGVyKExvZ2dpbmdQbHVnaW4oY29uZmlnKSwKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnbG9nZ2luZy1wbHVnaW4nKQotCi0KLWNs
YXNzIExvZ2dpbmdQbHVnaW4ob2JqZWN0KToKLSAgICAiIiJBdHRhY2hlcyB0byB0aGUgbG9nZ2lu
ZyBtb2R1bGUgYW5kIGNhcHR1cmVzIGxvZyBtZXNzYWdlcyBmb3IgZWFjaCB0ZXN0LgotICAgICIi
IgotCi0gICAgZGVmIF9faW5pdF9fKHNlbGYsIGNvbmZpZyk6Ci0gICAgICAgICIiIkNyZWF0ZXMg
YSBuZXcgcGx1Z2luIHRvIGNhcHR1cmUgbG9nIG1lc3NhZ2VzLgotCi0gICAgICAgIFRoZSBmb3Jt
YXR0ZXIgY2FuIGJlIHNhZmVseSBzaGFyZWQgYWNyb3NzIGFsbCBoYW5kbGVycyBzbwotICAgICAg
ICBjcmVhdGUgYSBzaW5nbGUgb25lIGZvciB0aGUgZW50aXJlIHRlc3Qgc2Vzc2lvbiBoZXJlLgot
ICAgICAgICAiIiIKLSAgICAgICAgc2VsZi5sb2dfY2xpX2xldmVsID0gZ2V0X2FjdHVhbF9sb2df
bGV2ZWwoCi0gICAgICAgICAgICBjb25maWcsICdsb2dfY2xpX2xldmVsJywgJ2xvZ19sZXZlbCcp
IG9yIGxvZ2dpbmcuV0FSTklORwotCi0gICAgICAgIHNlbGYucHJpbnRfbG9ncyA9IGdldF9vcHRp
b25faW5pKGNvbmZpZywgJ2xvZ19wcmludCcpCi0gICAgICAgIHNlbGYuZm9ybWF0dGVyID0gbG9n
Z2luZy5Gb3JtYXR0ZXIoCi0gICAgICAgICAgICBnZXRfb3B0aW9uX2luaShjb25maWcsICdsb2df
Zm9ybWF0JyksCi0gICAgICAgICAgICBnZXRfb3B0aW9uX2luaShjb25maWcsICdsb2dfZGF0ZV9m
b3JtYXQnKSkKLQotICAgICAgICBsb2dfY2xpX2hhbmRsZXIgPSBsb2dnaW5nLlN0cmVhbUhhbmRs
ZXIoc3lzLnN0ZGVycikKLSAgICAgICAgbG9nX2NsaV9mb3JtYXQgPSBnZXRfb3B0aW9uX2luaSgK
LSAgICAgICAgICAgIGNvbmZpZywgJ2xvZ19jbGlfZm9ybWF0JywgJ2xvZ19mb3JtYXQnKQotICAg
ICAgICBsb2dfY2xpX2RhdGVfZm9ybWF0ID0gZ2V0X29wdGlvbl9pbmkoCi0gICAgICAgICAgICBj
b25maWcsICdsb2dfY2xpX2RhdGVfZm9ybWF0JywgJ2xvZ19kYXRlX2Zvcm1hdCcpCi0gICAgICAg
IGxvZ19jbGlfZm9ybWF0dGVyID0gbG9nZ2luZy5Gb3JtYXR0ZXIoCi0gICAgICAgICAgICBsb2df
Y2xpX2Zvcm1hdCwKLSAgICAgICAgICAgIGRhdGVmbXQ9bG9nX2NsaV9kYXRlX2Zvcm1hdCkKLSAg
ICAgICAgc2VsZi5sb2dfY2xpX2hhbmRsZXIgPSBsb2dfY2xpX2hhbmRsZXIgICMgbmVlZGVkIGZv
ciBhIHNpbmdsZSB1bml0dGVzdAotICAgICAgICBzZWxmLmxpdmVfbG9ncyA9IGNhdGNoaW5nX2xv
Z3MobG9nX2NsaV9oYW5kbGVyLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgZm9ybWF0dGVyPWxvZ19jbGlfZm9ybWF0dGVyLAotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgbGV2ZWw9c2VsZi5sb2dfY2xpX2xldmVsKQotCi0gICAgICAgIGxvZ19m
aWxlID0gZ2V0X29wdGlvbl9pbmkoY29uZmlnLCAnbG9nX2ZpbGUnKQotICAgICAgICBpZiBsb2df
ZmlsZToKLSAgICAgICAgICAgIHNlbGYubG9nX2ZpbGVfbGV2ZWwgPSBnZXRfYWN0dWFsX2xvZ19s
ZXZlbCgKLSAgICAgICAgICAgICAgICBjb25maWcsICdsb2dfZmlsZV9sZXZlbCcpIG9yIGxvZ2dp
bmcuV0FSTklORwotCi0gICAgICAgICAgICBsb2dfZmlsZV9mb3JtYXQgPSBnZXRfb3B0aW9uX2lu
aSgKLSAgICAgICAgICAgICAgICBjb25maWcsICdsb2dfZmlsZV9mb3JtYXQnLCAnbG9nX2Zvcm1h
dCcpCi0gICAgICAgICAgICBsb2dfZmlsZV9kYXRlX2Zvcm1hdCA9IGdldF9vcHRpb25faW5pKAot
ICAgICAgICAgICAgICAgIGNvbmZpZywgJ2xvZ19maWxlX2RhdGVfZm9ybWF0JywgJ2xvZ19kYXRl
X2Zvcm1hdCcpCi0gICAgICAgICAgICBzZWxmLmxvZ19maWxlX2hhbmRsZXIgPSBsb2dnaW5nLkZp
bGVIYW5kbGVyKAotICAgICAgICAgICAgICAgIGxvZ19maWxlLAotICAgICAgICAgICAgICAgICMg
RWFjaCBweXRlc3QgcnVudGVzdHMgc2Vzc2lvbiB3aWxsIHdyaXRlIHRvIGEgY2xlYW4gbG9nZmls
ZQotICAgICAgICAgICAgICAgIG1vZGU9J3cnKQotICAgICAgICAgICAgbG9nX2ZpbGVfZm9ybWF0
dGVyID0gbG9nZ2luZy5Gb3JtYXR0ZXIoCi0gICAgICAgICAgICAgICAgbG9nX2ZpbGVfZm9ybWF0
LAotICAgICAgICAgICAgICAgIGRhdGVmbXQ9bG9nX2ZpbGVfZGF0ZV9mb3JtYXQpCi0gICAgICAg
ICAgICBzZWxmLmxvZ19maWxlX2hhbmRsZXIuc2V0Rm9ybWF0dGVyKGxvZ19maWxlX2Zvcm1hdHRl
cikKLSAgICAgICAgZWxzZToKLSAgICAgICAgICAgIHNlbGYubG9nX2ZpbGVfaGFuZGxlciA9IE5v
bmUKLQotICAgIEBjb250ZXh0bWFuYWdlcgotICAgIGRlZiBfcnVudGVzdF9mb3Ioc2VsZiwgaXRl
bSwgd2hlbik6Ci0gICAgICAgICIiIkltcGxlbWVudHMgdGhlIGludGVybmFscyBvZiBweXRlc3Rf
cnVudGVzdF94eHgoKSBob29rLiIiIgotICAgICAgICB3aXRoIGNhdGNoaW5nX2xvZ3MoTG9nQ2Fw
dHVyZUhhbmRsZXIoKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcm1hdHRlcj1zZWxm
LmZvcm1hdHRlcikgYXMgbG9nX2hhbmRsZXI6Ci0gICAgICAgICAgICBpdGVtLmNhdGNoX2xvZ19o
YW5kbGVyID0gbG9nX2hhbmRsZXIKLSAgICAgICAgICAgIHRyeToKLSAgICAgICAgICAgICAgICB5
aWVsZCAgIyBydW4gdGVzdAotICAgICAgICAgICAgZmluYWxseToKLSAgICAgICAgICAgICAgICBk
ZWwgaXRlbS5jYXRjaF9sb2dfaGFuZGxlcgotCi0gICAgICAgICAgICBpZiBzZWxmLnByaW50X2xv
Z3M6Ci0gICAgICAgICAgICAgICAgIyBBZGQgYSBjYXB0dXJlZCBsb2cgc2VjdGlvbiB0byB0aGUg
cmVwb3J0LgotICAgICAgICAgICAgICAgIGxvZyA9IGxvZ19oYW5kbGVyLnN0cmVhbS5nZXR2YWx1
ZSgpLnN0cmlwKCkKLSAgICAgICAgICAgICAgICBpdGVtLmFkZF9yZXBvcnRfc2VjdGlvbih3aGVu
LCAnbG9nJywgbG9nKQotCi0gICAgQHB5dGVzdC5ob29raW1wbChob29rd3JhcHBlcj1UcnVlKQot
ICAgIGRlZiBweXRlc3RfcnVudGVzdF9zZXR1cChzZWxmLCBpdGVtKToKLSAgICAgICAgd2l0aCBz
ZWxmLl9ydW50ZXN0X2ZvcihpdGVtLCAnc2V0dXAnKToKLSAgICAgICAgICAgIHlpZWxkCi0KLSAg
ICBAcHl0ZXN0Lmhvb2tpbXBsKGhvb2t3cmFwcGVyPVRydWUpCi0gICAgZGVmIHB5dGVzdF9ydW50
ZXN0X2NhbGwoc2VsZiwgaXRlbSk6Ci0gICAgICAgIHdpdGggc2VsZi5fcnVudGVzdF9mb3IoaXRl
bSwgJ2NhbGwnKToKLSAgICAgICAgICAgIHlpZWxkCi0KLSAgICBAcHl0ZXN0Lmhvb2tpbXBsKGhv
b2t3cmFwcGVyPVRydWUpCi0gICAgZGVmIHB5dGVzdF9ydW50ZXN0X3RlYXJkb3duKHNlbGYsIGl0
ZW0pOgotICAgICAgICB3aXRoIHNlbGYuX3J1bnRlc3RfZm9yKGl0ZW0sICd0ZWFyZG93bicpOgot
ICAgICAgICAgICAgeWllbGQKLQotICAgIEBweXRlc3QuaG9va2ltcGwoaG9va3dyYXBwZXI9VHJ1
ZSkKLSAgICBkZWYgcHl0ZXN0X3J1bnRlc3Rsb29wKHNlbGYsIHNlc3Npb24pOgotICAgICAgICAi
IiJSdW5zIGFsbCBjb2xsZWN0ZWQgdGVzdCBpdGVtcy4iIiIKLSAgICAgICAgd2l0aCBzZWxmLmxp
dmVfbG9nczoKLSAgICAgICAgICAgIGlmIHNlbGYubG9nX2ZpbGVfaGFuZGxlciBpcyBub3QgTm9u
ZToKLSAgICAgICAgICAgICAgICB3aXRoIGNsb3Npbmcoc2VsZi5sb2dfZmlsZV9oYW5kbGVyKToK
LSAgICAgICAgICAgICAgICAgICAgd2l0aCBjYXRjaGluZ19sb2dzKHNlbGYubG9nX2ZpbGVfaGFu
ZGxlciwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldmVsPXNlbGYu
bG9nX2ZpbGVfbGV2ZWwpOgotICAgICAgICAgICAgICAgICAgICAgICAgeWllbGQgICMgcnVuIGFs
bCB0aGUgdGVzdHMKLSAgICAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAgICAgeWllbGQgICMg
cnVuIGFsbCB0aGUgdGVzdHMKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L19weXRlc3QvbWFpbi5w
eSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhp
cmRfcGFydHkvcHl0ZXN0L19weXRlc3QvbWFpbi5weQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMjU1NTQwOThkYWMyOTlmNmQ5YzcxZDJiZjE5MzlmOGFlYTQzMzExMS4uMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9fcHl0ZXN0
L21haW4ucHkKKysrIC9kZXYvbnVsbApAQCAtMSw4MjEgKzAsMCBAQAotIiIiIGNvcmUgaW1wbGVt
ZW50YXRpb24gb2YgdGVzdGluZyBwcm9jZXNzOiBpbml0LCBzZXNzaW9uLCBydW50ZXN0IGxvb3Au
ICIiIgotZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCBhYnNvbHV0ZV9pbXBvcnQsIGRpdmlzaW9uLCBw
cmludF9mdW5jdGlvbgotCi1pbXBvcnQgZnVuY3Rvb2xzCi1pbXBvcnQgb3MKLWltcG9ydCBzaXgK
LWltcG9ydCBzeXMKLQotaW1wb3J0IF9weXRlc3QKLWZyb20gX3B5dGVzdCBpbXBvcnQgbm9kZXMK
LWltcG9ydCBfcHl0ZXN0Ll9jb2RlCi1pbXBvcnQgcHkKLXRyeToKLSAgICBmcm9tIGNvbGxlY3Rp
b25zIGltcG9ydCBNdXRhYmxlTWFwcGluZyBhcyBNYXBwaW5nTWl4aW4KLWV4Y2VwdCBJbXBvcnRF
cnJvcjoKLSAgICBmcm9tIFVzZXJEaWN0IGltcG9ydCBEaWN0TWl4aW4gYXMgTWFwcGluZ01peGlu
Ci0KLWZyb20gX3B5dGVzdC5jb25maWcgaW1wb3J0IGRpcmVjdG9yeV9hcmcsIFVzYWdlRXJyb3Is
IGhvb2tpbXBsCi1mcm9tIF9weXRlc3Qub3V0Y29tZXMgaW1wb3J0IGV4aXQKLWZyb20gX3B5dGVz
dC5ydW5uZXIgaW1wb3J0IGNvbGxlY3Rfb25lX25vZGUKLQotdHJhY2ViYWNrY3V0ZGlyID0gcHku
cGF0aC5sb2NhbChfcHl0ZXN0Ll9fZmlsZV9fKS5kaXJwYXRoKCkKLQotIyBleGl0Y29kZXMgZm9y
IHRoZSBjb21tYW5kIGxpbmUKLUVYSVRfT0sgPSAwCi1FWElUX1RFU1RTRkFJTEVEID0gMQotRVhJ
VF9JTlRFUlJVUFRFRCA9IDIKLUVYSVRfSU5URVJOQUxFUlJPUiA9IDMKLUVYSVRfVVNBR0VFUlJP
UiA9IDQKLUVYSVRfTk9URVNUU0NPTExFQ1RFRCA9IDUKLQotCi1kZWYgcHl0ZXN0X2FkZG9wdGlv
bihwYXJzZXIpOgotICAgIHBhcnNlci5hZGRpbmkoIm5vcmVjdXJzZWRpcnMiLCAiZGlyZWN0b3J5
IHBhdHRlcm5zIHRvIGF2b2lkIGZvciByZWN1cnNpb24iLAotICAgICAgICAgICAgICAgICAgdHlw
ZT0iYXJncyIsIGRlZmF1bHQ9WycuKicsICdidWlsZCcsICdkaXN0JywgJ0NWUycsICdfZGFyY3Mn
LCAne2FyY2h9JywgJyouZWdnJywgJ3ZlbnYnXSkKLSAgICBwYXJzZXIuYWRkaW5pKCJ0ZXN0cGF0
aHMiLCAiZGlyZWN0b3JpZXMgdG8gc2VhcmNoIGZvciB0ZXN0cyB3aGVuIG5vIGZpbGVzIG9yIGRp
cmVjdG9yaWVzIGFyZSBnaXZlbiBpbiB0aGUgIgotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICJjb21tYW5kIGxpbmUuIiwKLSAgICAgICAgICAgICAgICAgIHR5cGU9ImFyZ3MiLCBkZWZh
dWx0PVtdKQotICAgICMgcGFyc2VyLmFkZGluaSgiZGlycGF0dGVybnMiLAotICAgICMgICAgInBh
dHRlcm5zIHNwZWNpZnlpbmcgcG9zc2libGUgbG9jYXRpb25zIG9mIHRlc3QgZmlsZXMiLAotICAg
ICMgICAgdHlwZT0ibGluZWxpc3QiLCBkZWZhdWx0PVsiKiovdGVzdF8qLnR4dCIsCi0gICAgIyAg
ICAgICAgICAgICIqKi90ZXN0XyoucHkiLCAiKiovKl90ZXN0LnB5Il0KLSAgICAjICkKLSAgICBn
cm91cCA9IHBhcnNlci5nZXRncm91cCgiZ2VuZXJhbCIsICJydW5uaW5nIGFuZCBzZWxlY3Rpb24g
b3B0aW9ucyIpCi0gICAgZ3JvdXAuX2FkZG9wdGlvbignLXgnLCAnLS1leGl0Zmlyc3QnLCBhY3Rp
b249InN0b3JlX2NvbnN0IiwKLSAgICAgICAgICAgICAgICAgICAgIGRlc3Q9Im1heGZhaWwiLCBj
b25zdD0xLAotICAgICAgICAgICAgICAgICAgICAgaGVscD0iZXhpdCBpbnN0YW50bHkgb24gZmly
c3QgZXJyb3Igb3IgZmFpbGVkIHRlc3QuIiksCi0gICAgZ3JvdXAuX2FkZG9wdGlvbignLS1tYXhm
YWlsJywgbWV0YXZhcj0ibnVtIiwKLSAgICAgICAgICAgICAgICAgICAgIGFjdGlvbj0ic3RvcmUi
LCB0eXBlPWludCwgZGVzdD0ibWF4ZmFpbCIsIGRlZmF1bHQ9MCwKLSAgICAgICAgICAgICAgICAg
ICAgIGhlbHA9ImV4aXQgYWZ0ZXIgZmlyc3QgbnVtIGZhaWx1cmVzIG9yIGVycm9ycy4iKQotICAg
IGdyb3VwLl9hZGRvcHRpb24oJy0tc3RyaWN0JywgYWN0aW9uPSJzdG9yZV90cnVlIiwKLSAgICAg
ICAgICAgICAgICAgICAgIGhlbHA9Im1hcmtzIG5vdCByZWdpc3RlcmVkIGluIGNvbmZpZ3VyYXRp
b24gZmlsZSByYWlzZSBlcnJvcnMuIikKLSAgICBncm91cC5fYWRkb3B0aW9uKCItYyIsIG1ldGF2
YXI9ImZpbGUiLCB0eXBlPXN0ciwgZGVzdD0iaW5pZmlsZW5hbWUiLAotICAgICAgICAgICAgICAg
ICAgICAgaGVscD0ibG9hZCBjb25maWd1cmF0aW9uIGZyb20gYGZpbGVgIGluc3RlYWQgb2YgdHJ5
aW5nIHRvIGxvY2F0ZSBvbmUgb2YgdGhlIGltcGxpY2l0ICIKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgImNvbmZpZ3VyYXRpb24gZmlsZXMuIikKLSAgICBncm91cC5fYWRkb3B0aW9uKCItLWNv
bnRpbnVlLW9uLWNvbGxlY3Rpb24tZXJyb3JzIiwgYWN0aW9uPSJzdG9yZV90cnVlIiwKLSAgICAg
ICAgICAgICAgICAgICAgIGRlZmF1bHQ9RmFsc2UsIGRlc3Q9ImNvbnRpbnVlX29uX2NvbGxlY3Rp
b25fZXJyb3JzIiwKLSAgICAgICAgICAgICAgICAgICAgIGhlbHA9IkZvcmNlIHRlc3QgZXhlY3V0
aW9uIGV2ZW4gaWYgY29sbGVjdGlvbiBlcnJvcnMgb2NjdXIuIikKLQotICAgIGdyb3VwID0gcGFy
c2VyLmdldGdyb3VwKCJjb2xsZWN0IiwgImNvbGxlY3Rpb24iKQotICAgIGdyb3VwLmFkZG9wdGlv
bignLS1jb2xsZWN0b25seScsICctLWNvbGxlY3Qtb25seScsIGFjdGlvbj0ic3RvcmVfdHJ1ZSIs
Ci0gICAgICAgICAgICAgICAgICAgIGhlbHA9Im9ubHkgY29sbGVjdCB0ZXN0cywgZG9uJ3QgZXhl
Y3V0ZSB0aGVtLiIpLAotICAgIGdyb3VwLmFkZG9wdGlvbignLS1weWFyZ3MnLCBhY3Rpb249InN0
b3JlX3RydWUiLAotICAgICAgICAgICAgICAgICAgICBoZWxwPSJ0cnkgdG8gaW50ZXJwcmV0IGFs
bCBhcmd1bWVudHMgYXMgcHl0aG9uIHBhY2thZ2VzLiIpCi0gICAgZ3JvdXAuYWRkb3B0aW9uKCIt
LWlnbm9yZSIsIGFjdGlvbj0iYXBwZW5kIiwgbWV0YXZhcj0icGF0aCIsCi0gICAgICAgICAgICAg
ICAgICAgIGhlbHA9Imlnbm9yZSBwYXRoIGR1cmluZyBjb2xsZWN0aW9uIChtdWx0aS1hbGxvd2Vk
KS4iKQotICAgICMgd2hlbiBjaGFuZ2luZyB0aGlzIHRvIC0tY29uZi1jdXQtZGlyLCBjb25maWcu
cHkgQ29uZnRlc3Quc2V0aW5pdGlhbAotICAgICMgbmVlZHMgdXBncmFkaW5nIGFzIHdlbGwKLSAg
ICBncm91cC5hZGRvcHRpb24oJy0tY29uZmN1dGRpcicsIGRlc3Q9ImNvbmZjdXRkaXIiLCBkZWZh
dWx0PU5vbmUsCi0gICAgICAgICAgICAgICAgICAgIG1ldGF2YXI9ImRpciIsIHR5cGU9ZnVuY3Rv
b2xzLnBhcnRpYWwoZGlyZWN0b3J5X2FyZywgb3B0bmFtZT0iLS1jb25mY3V0ZGlyIiksCi0gICAg
ICAgICAgICAgICAgICAgIGhlbHA9Im9ubHkgbG9hZCBjb25mdGVzdC5weSdzIHJlbGF0aXZlIHRv
IHNwZWNpZmllZCBkaXIuIikKLSAgICBncm91cC5hZGRvcHRpb24oJy0tbm9jb25mdGVzdCcsIGFj
dGlvbj0ic3RvcmVfdHJ1ZSIsCi0gICAgICAgICAgICAgICAgICAgIGRlc3Q9Im5vY29uZnRlc3Qi
LCBkZWZhdWx0PUZhbHNlLAotICAgICAgICAgICAgICAgICAgICBoZWxwPSJEb24ndCBsb2FkIGFu
eSBjb25mdGVzdC5weSBmaWxlcy4iKQotICAgIGdyb3VwLmFkZG9wdGlvbignLS1rZWVwZHVwbGlj
YXRlcycsICctLWtlZXAtZHVwbGljYXRlcycsIGFjdGlvbj0ic3RvcmVfdHJ1ZSIsCi0gICAgICAg
ICAgICAgICAgICAgIGRlc3Q9ImtlZXBkdXBsaWNhdGVzIiwgZGVmYXVsdD1GYWxzZSwKLSAgICAg
ICAgICAgICAgICAgICAgaGVscD0iS2VlcCBkdXBsaWNhdGUgdGVzdHMuIikKLSAgICBncm91cC5h
ZGRvcHRpb24oJy0tY29sbGVjdC1pbi12aXJ0dWFsZW52JywgYWN0aW9uPSdzdG9yZV90cnVlJywK
LSAgICAgICAgICAgICAgICAgICAgZGVzdD0nY29sbGVjdF9pbl92aXJ0dWFsZW52JywgZGVmYXVs
dD1GYWxzZSwKLSAgICAgICAgICAgICAgICAgICAgaGVscD0iRG9uJ3QgaWdub3JlIHRlc3RzIGlu
IGEgbG9jYWwgdmlydHVhbGVudiBkaXJlY3RvcnkiKQotCi0gICAgZ3JvdXAgPSBwYXJzZXIuZ2V0
Z3JvdXAoImRlYnVnY29uZmlnIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAidGVzdCBz
ZXNzaW9uIGRlYnVnZ2luZyBhbmQgY29uZmlndXJhdGlvbiIpCi0gICAgZ3JvdXAuYWRkb3B0aW9u
KCctLWJhc2V0ZW1wJywgZGVzdD0iYmFzZXRlbXAiLCBkZWZhdWx0PU5vbmUsIG1ldGF2YXI9ImRp
ciIsCi0gICAgICAgICAgICAgICAgICAgIGhlbHA9ImJhc2UgdGVtcG9yYXJ5IGRpcmVjdG9yeSBm
b3IgdGhpcyB0ZXN0IHJ1bi4iKQotCi0KLWRlZiBweXRlc3RfY29uZmlndXJlKGNvbmZpZyk6Ci0g
ICAgX19pbXBvcnRfXygncHl0ZXN0JykuY29uZmlnID0gY29uZmlnICAjIGNvbXBhdGliaWx0aXkK
LQotCi1kZWYgd3JhcF9zZXNzaW9uKGNvbmZpZywgZG9pdCk6Ci0gICAgIiIiU2tlbGV0b24gY29t
bWFuZCBsaW5lIHByb2dyYW0iIiIKLSAgICBzZXNzaW9uID0gU2Vzc2lvbihjb25maWcpCi0gICAg
c2Vzc2lvbi5leGl0c3RhdHVzID0gRVhJVF9PSwotICAgIGluaXRzdGF0ZSA9IDAKLSAgICB0cnk6
Ci0gICAgICAgIHRyeToKLSAgICAgICAgICAgIGNvbmZpZy5fZG9fY29uZmlndXJlKCkKLSAgICAg
ICAgICAgIGluaXRzdGF0ZSA9IDEKLSAgICAgICAgICAgIGNvbmZpZy5ob29rLnB5dGVzdF9zZXNz
aW9uc3RhcnQoc2Vzc2lvbj1zZXNzaW9uKQotICAgICAgICAgICAgaW5pdHN0YXRlID0gMgotICAg
ICAgICAgICAgc2Vzc2lvbi5leGl0c3RhdHVzID0gZG9pdChjb25maWcsIHNlc3Npb24pIG9yIDAK
LSAgICAgICAgZXhjZXB0IFVzYWdlRXJyb3I6Ci0gICAgICAgICAgICByYWlzZQotICAgICAgICBl
eGNlcHQgRmFpbGVkOgotICAgICAgICAgICAgc2Vzc2lvbi5leGl0c3RhdHVzID0gRVhJVF9URVNU
U0ZBSUxFRAotICAgICAgICBleGNlcHQgS2V5Ym9hcmRJbnRlcnJ1cHQ6Ci0gICAgICAgICAgICBl
eGNpbmZvID0gX3B5dGVzdC5fY29kZS5FeGNlcHRpb25JbmZvKCkKLSAgICAgICAgICAgIGlmIGlu
aXRzdGF0ZSA8IDIgYW5kIGlzaW5zdGFuY2UoZXhjaW5mby52YWx1ZSwgZXhpdC5FeGNlcHRpb24p
OgotICAgICAgICAgICAgICAgIHN5cy5zdGRlcnIud3JpdGUoJ3swfTogezF9XG4nLmZvcm1hdCgK
LSAgICAgICAgICAgICAgICAgICAgZXhjaW5mby50eXBlbmFtZSwgZXhjaW5mby52YWx1ZS5tc2cp
KQotICAgICAgICAgICAgY29uZmlnLmhvb2sucHl0ZXN0X2tleWJvYXJkX2ludGVycnVwdChleGNp
bmZvPWV4Y2luZm8pCi0gICAgICAgICAgICBzZXNzaW9uLmV4aXRzdGF0dXMgPSBFWElUX0lOVEVS
UlVQVEVECi0gICAgICAgIGV4Y2VwdDogICMgbm9xYQotICAgICAgICAgICAgZXhjaW5mbyA9IF9w
eXRlc3QuX2NvZGUuRXhjZXB0aW9uSW5mbygpCi0gICAgICAgICAgICBjb25maWcubm90aWZ5X2V4
Y2VwdGlvbihleGNpbmZvLCBjb25maWcub3B0aW9uKQotICAgICAgICAgICAgc2Vzc2lvbi5leGl0
c3RhdHVzID0gRVhJVF9JTlRFUk5BTEVSUk9SCi0gICAgICAgICAgICBpZiBleGNpbmZvLmVycmlz
aW5zdGFuY2UoU3lzdGVtRXhpdCk6Ci0gICAgICAgICAgICAgICAgc3lzLnN0ZGVyci53cml0ZSgi
bWFpbmxvb3A6IGNhdWdodCBTcHVyaW91cyBTeXN0ZW1FeGl0IVxuIikKLQotICAgIGZpbmFsbHk6
Ci0gICAgICAgIGV4Y2luZm8gPSBOb25lICAjIEV4cGxpY2l0bHkgYnJlYWsgcmVmZXJlbmNlIGN5
Y2xlLgotICAgICAgICBzZXNzaW9uLnN0YXJ0ZGlyLmNoZGlyKCkKLSAgICAgICAgaWYgaW5pdHN0
YXRlID49IDI6Ci0gICAgICAgICAgICBjb25maWcuaG9vay5weXRlc3Rfc2Vzc2lvbmZpbmlzaCgK
LSAgICAgICAgICAgICAgICBzZXNzaW9uPXNlc3Npb24sCi0gICAgICAgICAgICAgICAgZXhpdHN0
YXR1cz1zZXNzaW9uLmV4aXRzdGF0dXMpCi0gICAgICAgIGNvbmZpZy5fZW5zdXJlX3VuY29uZmln
dXJlKCkKLSAgICByZXR1cm4gc2Vzc2lvbi5leGl0c3RhdHVzCi0KLQotZGVmIHB5dGVzdF9jbWRs
aW5lX21haW4oY29uZmlnKToKLSAgICByZXR1cm4gd3JhcF9zZXNzaW9uKGNvbmZpZywgX21haW4p
Ci0KLQotZGVmIF9tYWluKGNvbmZpZywgc2Vzc2lvbik6Ci0gICAgIiIiIGRlZmF1bHQgY29tbWFu
ZCBsaW5lIHByb3RvY29sIGZvciBpbml0aWFsaXphdGlvbiwgc2Vzc2lvbiwKLSAgICBydW5uaW5n
IHRlc3RzIGFuZCByZXBvcnRpbmcuICIiIgotICAgIGNvbmZpZy5ob29rLnB5dGVzdF9jb2xsZWN0
aW9uKHNlc3Npb249c2Vzc2lvbikKLSAgICBjb25maWcuaG9vay5weXRlc3RfcnVudGVzdGxvb3Ao
c2Vzc2lvbj1zZXNzaW9uKQotCi0gICAgaWYgc2Vzc2lvbi50ZXN0c2ZhaWxlZDoKLSAgICAgICAg
cmV0dXJuIEVYSVRfVEVTVFNGQUlMRUQKLSAgICBlbGlmIHNlc3Npb24udGVzdHNjb2xsZWN0ZWQg
PT0gMDoKLSAgICAgICAgcmV0dXJuIEVYSVRfTk9URVNUU0NPTExFQ1RFRAotCi0KLWRlZiBweXRl
c3RfY29sbGVjdGlvbihzZXNzaW9uKToKLSAgICByZXR1cm4gc2Vzc2lvbi5wZXJmb3JtX2NvbGxl
Y3QoKQotCi0KLWRlZiBweXRlc3RfcnVudGVzdGxvb3Aoc2Vzc2lvbik6Ci0gICAgaWYgKHNlc3Np
b24udGVzdHNmYWlsZWQgYW5kCi0gICAgICAgICAgICBub3Qgc2Vzc2lvbi5jb25maWcub3B0aW9u
LmNvbnRpbnVlX29uX2NvbGxlY3Rpb25fZXJyb3JzKToKLSAgICAgICAgcmFpc2Ugc2Vzc2lvbi5J
bnRlcnJ1cHRlZCgKLSAgICAgICAgICAgICIlZCBlcnJvcnMgZHVyaW5nIGNvbGxlY3Rpb24iICUg
c2Vzc2lvbi50ZXN0c2ZhaWxlZCkKLQotICAgIGlmIHNlc3Npb24uY29uZmlnLm9wdGlvbi5jb2xs
ZWN0b25seToKLSAgICAgICAgcmV0dXJuIFRydWUKLQotICAgIGZvciBpLCBpdGVtIGluIGVudW1l
cmF0ZShzZXNzaW9uLml0ZW1zKToKLSAgICAgICAgbmV4dGl0ZW0gPSBzZXNzaW9uLml0ZW1zW2kg
KyAxXSBpZiBpICsgMSA8IGxlbihzZXNzaW9uLml0ZW1zKSBlbHNlIE5vbmUKLSAgICAgICAgaXRl
bS5jb25maWcuaG9vay5weXRlc3RfcnVudGVzdF9wcm90b2NvbChpdGVtPWl0ZW0sIG5leHRpdGVt
PW5leHRpdGVtKQotICAgICAgICBpZiBzZXNzaW9uLnNob3VsZGZhaWw6Ci0gICAgICAgICAgICBy
YWlzZSBzZXNzaW9uLkZhaWxlZChzZXNzaW9uLnNob3VsZGZhaWwpCi0gICAgICAgIGlmIHNlc3Np
b24uc2hvdWxkc3RvcDoKLSAgICAgICAgICAgIHJhaXNlIHNlc3Npb24uSW50ZXJydXB0ZWQoc2Vz
c2lvbi5zaG91bGRzdG9wKQotICAgIHJldHVybiBUcnVlCi0KLQotZGVmIF9pbl92ZW52KHBhdGgp
OgotICAgICIiIkF0dGVtcHRzIHRvIGRldGVjdCBpZiBgYHBhdGhgYCBpcyB0aGUgcm9vdCBvZiBh
IFZpcnR1YWwgRW52aXJvbm1lbnQgYnkKLSAgICBjaGVja2luZyBmb3IgdGhlIGV4aXN0ZW5jZSBv
ZiB0aGUgYXBwcm9wcmlhdGUgYWN0aXZhdGUgc2NyaXB0IiIiCi0gICAgYmluZGlyID0gcGF0aC5q
b2luKCdTY3JpcHRzJyBpZiBzeXMucGxhdGZvcm0uc3RhcnRzd2l0aCgnd2luJykgZWxzZSAnYmlu
JykKLSAgICBpZiBub3QgYmluZGlyLmV4aXN0cygpOgotICAgICAgICByZXR1cm4gRmFsc2UKLSAg
ICBhY3RpdmF0ZXMgPSAoJ2FjdGl2YXRlJywgJ2FjdGl2YXRlLmNzaCcsICdhY3RpdmF0ZS5maXNo
JywKLSAgICAgICAgICAgICAgICAgJ0FjdGl2YXRlJywgJ0FjdGl2YXRlLmJhdCcsICdBY3RpdmF0
ZS5wczEnKQotICAgIHJldHVybiBhbnkoW2ZuYW1lLmJhc2VuYW1lIGluIGFjdGl2YXRlcyBmb3Ig
Zm5hbWUgaW4gYmluZGlyLmxpc3RkaXIoKV0pCi0KLQotZGVmIHB5dGVzdF9pZ25vcmVfY29sbGVj
dChwYXRoLCBjb25maWcpOgotICAgIGlnbm9yZV9wYXRocyA9IGNvbmZpZy5fZ2V0Y29uZnRlc3Rf
cGF0aGxpc3QoImNvbGxlY3RfaWdub3JlIiwgcGF0aD1wYXRoLmRpcnBhdGgoKSkKLSAgICBpZ25v
cmVfcGF0aHMgPSBpZ25vcmVfcGF0aHMgb3IgW10KLSAgICBleGNsdWRlb3B0ID0gY29uZmlnLmdl
dG9wdGlvbigiaWdub3JlIikKLSAgICBpZiBleGNsdWRlb3B0OgotICAgICAgICBpZ25vcmVfcGF0
aHMuZXh0ZW5kKFtweS5wYXRoLmxvY2FsKHgpIGZvciB4IGluIGV4Y2x1ZGVvcHRdKQotCi0gICAg
aWYgcHkucGF0aC5sb2NhbChwYXRoKSBpbiBpZ25vcmVfcGF0aHM6Ci0gICAgICAgIHJldHVybiBU
cnVlCi0KLSAgICBhbGxvd19pbl92ZW52ID0gY29uZmlnLmdldG9wdGlvbigiY29sbGVjdF9pbl92
aXJ0dWFsZW52IikKLSAgICBpZiBfaW5fdmVudihwYXRoKSBhbmQgbm90IGFsbG93X2luX3ZlbnY6
Ci0gICAgICAgIHJldHVybiBUcnVlCi0KLSAgICAjIFNraXAgZHVwbGljYXRlIHBhdGhzLgotICAg
IGtlZXBkdXBsaWNhdGVzID0gY29uZmlnLmdldG9wdGlvbigia2VlcGR1cGxpY2F0ZXMiKQotICAg
IGR1cGxpY2F0ZV9wYXRocyA9IGNvbmZpZy5wbHVnaW5tYW5hZ2VyLl9kdXBsaWNhdGVwYXRocwot
ICAgIGlmIG5vdCBrZWVwZHVwbGljYXRlczoKLSAgICAgICAgaWYgcGF0aCBpbiBkdXBsaWNhdGVf
cGF0aHM6Ci0gICAgICAgICAgICByZXR1cm4gVHJ1ZQotICAgICAgICBlbHNlOgotICAgICAgICAg
ICAgZHVwbGljYXRlX3BhdGhzLmFkZChwYXRoKQotCi0gICAgcmV0dXJuIEZhbHNlCi0KLQotY2xh
c3MgRlNIb29rUHJveHk6Ci0gICAgZGVmIF9faW5pdF9fKHNlbGYsIGZzcGF0aCwgcG0sIHJlbW92
ZV9tb2RzKToKLSAgICAgICAgc2VsZi5mc3BhdGggPSBmc3BhdGgKLSAgICAgICAgc2VsZi5wbSA9
IHBtCi0gICAgICAgIHNlbGYucmVtb3ZlX21vZHMgPSByZW1vdmVfbW9kcwotCi0gICAgZGVmIF9f
Z2V0YXR0cl9fKHNlbGYsIG5hbWUpOgotICAgICAgICB4ID0gc2VsZi5wbS5zdWJzZXRfaG9va19j
YWxsZXIobmFtZSwgcmVtb3ZlX3BsdWdpbnM9c2VsZi5yZW1vdmVfbW9kcykKLSAgICAgICAgc2Vs
Zi5fX2RpY3RfX1tuYW1lXSA9IHgKLSAgICAgICAgcmV0dXJuIHgKLQotCi1jbGFzcyBfQ29tcGF0
UHJvcGVydHkob2JqZWN0KToKLSAgICBkZWYgX19pbml0X18oc2VsZiwgbmFtZSk6Ci0gICAgICAg
IHNlbGYubmFtZSA9IG5hbWUKLQotICAgIGRlZiBfX2dldF9fKHNlbGYsIG9iaiwgb3duZXIpOgot
ICAgICAgICBpZiBvYmogaXMgTm9uZToKLSAgICAgICAgICAgIHJldHVybiBzZWxmCi0KLSAgICAg
ICAgIyBUT0RPOiByZWVuYWJsZSBpbiB0aGUgZmVhdHVyZXMgYnJhbmNoCi0gICAgICAgICMgd2Fy
bmluZ3Mud2FybigKLSAgICAgICAgIyAgICAgInVzYWdlIG9mIHtvd25lciFyfS57bmFtZX0gaXMg
ZGVwcmVjYXRlZCwgcGxlYXNlIHVzZSBweXRlc3Que25hbWV9IGluc3RlYWQiLmZvcm1hdCgKLSAg
ICAgICAgIyAgICAgICAgIG5hbWU9c2VsZi5uYW1lLCBvd25lcj10eXBlKG93bmVyKS5fX25hbWVf
XyksCi0gICAgICAgICMgICAgIFBlbmRpbmdEZXByZWNhdGlvbldhcm5pbmcsIHN0YWNrbGV2ZWw9
MikKLSAgICAgICAgcmV0dXJuIGdldGF0dHIoX19pbXBvcnRfXygncHl0ZXN0JyksIHNlbGYubmFt
ZSkKLQotCi1jbGFzcyBOb2RlS2V5d29yZHMoTWFwcGluZ01peGluKToKLSAgICBkZWYgX19pbml0
X18oc2VsZiwgbm9kZSk6Ci0gICAgICAgIHNlbGYubm9kZSA9IG5vZGUKLSAgICAgICAgc2VsZi5w
YXJlbnQgPSBub2RlLnBhcmVudAotICAgICAgICBzZWxmLl9tYXJrZXJzID0ge25vZGUubmFtZTog
VHJ1ZX0KLQotICAgIGRlZiBfX2dldGl0ZW1fXyhzZWxmLCBrZXkpOgotICAgICAgICB0cnk6Ci0g
ICAgICAgICAgICByZXR1cm4gc2VsZi5fbWFya2Vyc1trZXldCi0gICAgICAgIGV4Y2VwdCBLZXlF
cnJvcjoKLSAgICAgICAgICAgIGlmIHNlbGYucGFyZW50IGlzIE5vbmU6Ci0gICAgICAgICAgICAg
ICAgcmFpc2UKLSAgICAgICAgICAgIHJldHVybiBzZWxmLnBhcmVudC5rZXl3b3Jkc1trZXldCi0K
LSAgICBkZWYgX19zZXRpdGVtX18oc2VsZiwga2V5LCB2YWx1ZSk6Ci0gICAgICAgIHNlbGYuX21h
cmtlcnNba2V5XSA9IHZhbHVlCi0KLSAgICBkZWYgX19kZWxpdGVtX18oc2VsZiwga2V5KToKLSAg
ICAgICAgcmFpc2UgVmFsdWVFcnJvcigiY2Fubm90IGRlbGV0ZSBrZXkgaW4ga2V5d29yZHMgZGlj
dCIpCi0KLSAgICBkZWYgX19pdGVyX18oc2VsZik6Ci0gICAgICAgIHNlZW4gPSBzZXQoc2VsZi5f
bWFya2VycykKLSAgICAgICAgaWYgc2VsZi5wYXJlbnQgaXMgbm90IE5vbmU6Ci0gICAgICAgICAg
ICBzZWVuLnVwZGF0ZShzZWxmLnBhcmVudC5rZXl3b3JkcykKLSAgICAgICAgcmV0dXJuIGl0ZXIo
c2VlbikKLQotICAgIGRlZiBfX2xlbl9fKHNlbGYpOgotICAgICAgICByZXR1cm4gbGVuKHNlbGYu
X19pdGVyX18oKSkKLQotICAgIGRlZiBrZXlzKHNlbGYpOgotICAgICAgICByZXR1cm4gbGlzdChz
ZWxmKQotCi0gICAgZGVmIF9fcmVwcl9fKHNlbGYpOgotICAgICAgICByZXR1cm4gIjxOb2RlS2V5
d29yZHMgZm9yIG5vZGUgJXM+IiAlIChzZWxmLm5vZGUsICkKLQotCi1jbGFzcyBOb2RlKG9iamVj
dCk6Ci0gICAgIiIiIGJhc2UgY2xhc3MgZm9yIENvbGxlY3RvciBhbmQgSXRlbSB0aGUgdGVzdCBj
b2xsZWN0aW9uIHRyZWUuCi0gICAgQ29sbGVjdG9yIHN1YmNsYXNzZXMgaGF2ZSBjaGlsZHJlbiwg
SXRlbXMgYXJlIHRlcm1pbmFsIG5vZGVzLiIiIgotCi0gICAgZGVmIF9faW5pdF9fKHNlbGYsIG5h
bWUsIHBhcmVudD1Ob25lLCBjb25maWc9Tm9uZSwgc2Vzc2lvbj1Ob25lKToKLSAgICAgICAgIzog
YSB1bmlxdWUgbmFtZSB3aXRoaW4gdGhlIHNjb3BlIG9mIHRoZSBwYXJlbnQgbm9kZQotICAgICAg
ICBzZWxmLm5hbWUgPSBuYW1lCi0KLSAgICAgICAgIzogdGhlIHBhcmVudCBjb2xsZWN0b3Igbm9k
ZS4KLSAgICAgICAgc2VsZi5wYXJlbnQgPSBwYXJlbnQKLQotICAgICAgICAjOiB0aGUgcHl0ZXN0
IGNvbmZpZyBvYmplY3QKLSAgICAgICAgc2VsZi5jb25maWcgPSBjb25maWcgb3IgcGFyZW50LmNv
bmZpZwotCi0gICAgICAgICM6IHRoZSBzZXNzaW9uIHRoaXMgbm9kZSBpcyBwYXJ0IG9mCi0gICAg
ICAgIHNlbGYuc2Vzc2lvbiA9IHNlc3Npb24gb3IgcGFyZW50LnNlc3Npb24KLQotICAgICAgICAj
OiBmaWxlc3lzdGVtIHBhdGggd2hlcmUgdGhpcyBub2RlIHdhcyBjb2xsZWN0ZWQgZnJvbSAoY2Fu
IGJlIE5vbmUpCi0gICAgICAgIHNlbGYuZnNwYXRoID0gZ2V0YXR0cihwYXJlbnQsICdmc3BhdGgn
LCBOb25lKQotCi0gICAgICAgICM6IGtleXdvcmRzL21hcmtlcnMgY29sbGVjdGVkIGZyb20gYWxs
IHNjb3BlcwotICAgICAgICBzZWxmLmtleXdvcmRzID0gTm9kZUtleXdvcmRzKHNlbGYpCi0KLSAg
ICAgICAgIzogYWxsb3cgYWRkaW5nIG9mIGV4dHJhIGtleXdvcmRzIHRvIHVzZSBmb3IgbWF0Y2hp
bmcKLSAgICAgICAgc2VsZi5leHRyYV9rZXl3b3JkX21hdGNoZXMgPSBzZXQoKQotCi0gICAgICAg
ICMgdXNlZCBmb3Igc3RvcmluZyBhcnRpZmljaWFsIGZpeHR1cmVkZWZzIGZvciBkaXJlY3QgcGFy
YW1ldHJpemF0aW9uCi0gICAgICAgIHNlbGYuX25hbWUycHNldWRvZml4dHVyZWRlZiA9IHt9Ci0K
LSAgICBAcHJvcGVydHkKLSAgICBkZWYgaWhvb2soc2VsZik6Ci0gICAgICAgICIiIiBmc3BhdGgg
c2Vuc2l0aXZlIGhvb2sgcHJveHkgdXNlZCB0byBjYWxsIHB5dGVzdCBob29rcyIiIgotICAgICAg
ICByZXR1cm4gc2VsZi5zZXNzaW9uLmdldGhvb2twcm94eShzZWxmLmZzcGF0aCkKLQotICAgIE1v
ZHVsZSA9IF9Db21wYXRQcm9wZXJ0eSgiTW9kdWxlIikKLSAgICBDbGFzcyA9IF9Db21wYXRQcm9w
ZXJ0eSgiQ2xhc3MiKQotICAgIEluc3RhbmNlID0gX0NvbXBhdFByb3BlcnR5KCJJbnN0YW5jZSIp
Ci0gICAgRnVuY3Rpb24gPSBfQ29tcGF0UHJvcGVydHkoIkZ1bmN0aW9uIikKLSAgICBGaWxlID0g
X0NvbXBhdFByb3BlcnR5KCJGaWxlIikKLSAgICBJdGVtID0gX0NvbXBhdFByb3BlcnR5KCJJdGVt
IikKLQotICAgIGRlZiBfZ2V0Y3VzdG9tY2xhc3Moc2VsZiwgbmFtZSk6Ci0gICAgICAgIG1heWJl
X2NvbXBhdHByb3AgPSBnZXRhdHRyKHR5cGUoc2VsZiksIG5hbWUpCi0gICAgICAgIGlmIGlzaW5z
dGFuY2UobWF5YmVfY29tcGF0cHJvcCwgX0NvbXBhdFByb3BlcnR5KToKLSAgICAgICAgICAgIHJl
dHVybiBnZXRhdHRyKF9faW1wb3J0X18oJ3B5dGVzdCcpLCBuYW1lKQotICAgICAgICBlbHNlOgot
ICAgICAgICAgICAgY2xzID0gZ2V0YXR0cihzZWxmLCBuYW1lKQotICAgICAgICAgICAgIyBUT0RP
OiByZWVuYWJsZSBpbiB0aGUgZmVhdHVyZXMgYnJhbmNoCi0gICAgICAgICAgICAjIHdhcm5pbmdz
Lndhcm4oInVzZSBvZiBub2RlLiVzIGlzIGRlcHJlY2F0ZWQsICIKLSAgICAgICAgICAgICMgICAg
InVzZSBweXRlc3RfcHljb2xsZWN0X21ha2VpdGVtKC4uLikgdG8gY3JlYXRlIGN1c3RvbSAiCi0g
ICAgICAgICAgICAjICAgICJjb2xsZWN0aW9uIG5vZGVzIiAlIG5hbWUsIGNhdGVnb3J5PURlcHJl
Y2F0aW9uV2FybmluZykKLSAgICAgICAgcmV0dXJuIGNscwotCi0gICAgZGVmIF9fcmVwcl9fKHNl
bGYpOgotICAgICAgICByZXR1cm4gIjwlcyAlcj4iICUgKHNlbGYuX19jbGFzc19fLl9fbmFtZV9f
LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdldGF0dHIoc2VsZiwgJ25hbWUnLCBOb25l
KSkKLQotICAgIGRlZiB3YXJuKHNlbGYsIGNvZGUsIG1lc3NhZ2UpOgotICAgICAgICAiIiIgZ2Vu
ZXJhdGUgYSB3YXJuaW5nIHdpdGggdGhlIGdpdmVuIGNvZGUgYW5kIG1lc3NhZ2UgZm9yIHRoaXMK
LSAgICAgICAgaXRlbS4gIiIiCi0gICAgICAgIGFzc2VydCBpc2luc3RhbmNlKGNvZGUsIHN0cikK
LSAgICAgICAgZnNsb2NhdGlvbiA9IGdldGF0dHIoc2VsZiwgImxvY2F0aW9uIiwgTm9uZSkKLSAg
ICAgICAgaWYgZnNsb2NhdGlvbiBpcyBOb25lOgotICAgICAgICAgICAgZnNsb2NhdGlvbiA9IGdl
dGF0dHIoc2VsZiwgImZzcGF0aCIsIE5vbmUpCi0gICAgICAgIHNlbGYuaWhvb2sucHl0ZXN0X2xv
Z3dhcm5pbmcuY2FsbF9oaXN0b3JpYyhrd2FyZ3M9ZGljdCgKLSAgICAgICAgICAgIGNvZGU9Y29k
ZSwgbWVzc2FnZT1tZXNzYWdlLAotICAgICAgICAgICAgbm9kZWlkPXNlbGYubm9kZWlkLCBmc2xv
Y2F0aW9uPWZzbG9jYXRpb24pKQotCi0gICAgIyBtZXRob2RzIGZvciBvcmRlcmluZyBub2Rlcwot
ICAgIEBwcm9wZXJ0eQotICAgIGRlZiBub2RlaWQoc2VsZik6Ci0gICAgICAgICIiIiBhIDo6LXNl
cGFyYXRlZCBzdHJpbmcgZGVub3RpbmcgaXRzIGNvbGxlY3Rpb24gdHJlZSBhZGRyZXNzLiAiIiIK
LSAgICAgICAgdHJ5OgotICAgICAgICAgICAgcmV0dXJuIHNlbGYuX25vZGVpZAotICAgICAgICBl
eGNlcHQgQXR0cmlidXRlRXJyb3I6Ci0gICAgICAgICAgICBzZWxmLl9ub2RlaWQgPSB4ID0gc2Vs
Zi5fbWFrZWlkKCkKLSAgICAgICAgICAgIHJldHVybiB4Ci0KLSAgICBkZWYgX21ha2VpZChzZWxm
KToKLSAgICAgICAgcmV0dXJuIHNlbGYucGFyZW50Lm5vZGVpZCArICI6OiIgKyBzZWxmLm5hbWUK
LQotICAgIGRlZiBfX2hhc2hfXyhzZWxmKToKLSAgICAgICAgcmV0dXJuIGhhc2goc2VsZi5ub2Rl
aWQpCi0KLSAgICBkZWYgc2V0dXAoc2VsZik6Ci0gICAgICAgIHBhc3MKLQotICAgIGRlZiB0ZWFy
ZG93bihzZWxmKToKLSAgICAgICAgcGFzcwotCi0gICAgZGVmIGxpc3RjaGFpbihzZWxmKToKLSAg
ICAgICAgIiIiIHJldHVybiBsaXN0IG9mIGFsbCBwYXJlbnQgY29sbGVjdG9ycyB1cCB0byBzZWxm
LAotICAgICAgICAgICAgc3RhcnRpbmcgZnJvbSByb290IG9mIGNvbGxlY3Rpb24gdHJlZS4gIiIi
Ci0gICAgICAgIGNoYWluID0gW10KLSAgICAgICAgaXRlbSA9IHNlbGYKLSAgICAgICAgd2hpbGUg
aXRlbSBpcyBub3QgTm9uZToKLSAgICAgICAgICAgIGNoYWluLmFwcGVuZChpdGVtKQotICAgICAg
ICAgICAgaXRlbSA9IGl0ZW0ucGFyZW50Ci0gICAgICAgIGNoYWluLnJldmVyc2UoKQotICAgICAg
ICByZXR1cm4gY2hhaW4KLQotICAgIGRlZiBhZGRfbWFya2VyKHNlbGYsIG1hcmtlcik6Ci0gICAg
ICAgICIiIiBkeW5hbWljYWxseSBhZGQgYSBtYXJrZXIgb2JqZWN0IHRvIHRoZSBub2RlLgotCi0g
ICAgICAgIGBgbWFya2VyYGAgY2FuIGJlIGEgc3RyaW5nIG9yIHB5dGVzdC5tYXJrLiogaW5zdGFu
Y2UuCi0gICAgICAgICIiIgotICAgICAgICBmcm9tIF9weXRlc3QubWFyayBpbXBvcnQgTWFya0Rl
Y29yYXRvciwgTUFSS19HRU4KLSAgICAgICAgaWYgaXNpbnN0YW5jZShtYXJrZXIsIHNpeC5zdHJp
bmdfdHlwZXMpOgotICAgICAgICAgICAgbWFya2VyID0gZ2V0YXR0cihNQVJLX0dFTiwgbWFya2Vy
KQotICAgICAgICBlbGlmIG5vdCBpc2luc3RhbmNlKG1hcmtlciwgTWFya0RlY29yYXRvcik6Ci0g
ICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJpcyBub3QgYSBzdHJpbmcgb3IgcHl0ZXN0Lm1h
cmsuKiBNYXJrZXIiKQotICAgICAgICBzZWxmLmtleXdvcmRzW21hcmtlci5uYW1lXSA9IG1hcmtl
cgotCi0gICAgZGVmIGdldF9tYXJrZXIoc2VsZiwgbmFtZSk6Ci0gICAgICAgICIiIiBnZXQgYSBt
YXJrZXIgb2JqZWN0IGZyb20gdGhpcyBub2RlIG9yIE5vbmUgaWYKLSAgICAgICAgdGhlIG5vZGUg
ZG9lc24ndCBoYXZlIGEgbWFya2VyIHdpdGggdGhhdCBuYW1lLiAiIiIKLSAgICAgICAgdmFsID0g
c2VsZi5rZXl3b3Jkcy5nZXQobmFtZSwgTm9uZSkKLSAgICAgICAgaWYgdmFsIGlzIG5vdCBOb25l
OgotICAgICAgICAgICAgZnJvbSBfcHl0ZXN0Lm1hcmsgaW1wb3J0IE1hcmtJbmZvLCBNYXJrRGVj
b3JhdG9yCi0gICAgICAgICAgICBpZiBpc2luc3RhbmNlKHZhbCwgKE1hcmtEZWNvcmF0b3IsIE1h
cmtJbmZvKSk6Ci0gICAgICAgICAgICAgICAgcmV0dXJuIHZhbAotCi0gICAgZGVmIGxpc3RleHRy
YWtleXdvcmRzKHNlbGYpOgotICAgICAgICAiIiIgUmV0dXJuIGEgc2V0IG9mIGFsbCBleHRyYSBr
ZXl3b3JkcyBpbiBzZWxmIGFuZCBhbnkgcGFyZW50cy4iIiIKLSAgICAgICAgZXh0cmFfa2V5d29y
ZHMgPSBzZXQoKQotICAgICAgICBpdGVtID0gc2VsZgotICAgICAgICBmb3IgaXRlbSBpbiBzZWxm
Lmxpc3RjaGFpbigpOgotICAgICAgICAgICAgZXh0cmFfa2V5d29yZHMudXBkYXRlKGl0ZW0uZXh0
cmFfa2V5d29yZF9tYXRjaGVzKQotICAgICAgICByZXR1cm4gZXh0cmFfa2V5d29yZHMKLQotICAg
IGRlZiBsaXN0bmFtZXMoc2VsZik6Ci0gICAgICAgIHJldHVybiBbeC5uYW1lIGZvciB4IGluIHNl
bGYubGlzdGNoYWluKCldCi0KLSAgICBkZWYgYWRkZmluYWxpemVyKHNlbGYsIGZpbik6Ci0gICAg
ICAgICIiIiByZWdpc3RlciBhIGZ1bmN0aW9uIHRvIGJlIGNhbGxlZCB3aGVuIHRoaXMgbm9kZSBp
cyBmaW5hbGl6ZWQuCi0KLSAgICAgICAgVGhpcyBtZXRob2QgY2FuIG9ubHkgYmUgY2FsbGVkIHdo
ZW4gdGhpcyBub2RlIGlzIGFjdGl2ZQotICAgICAgICBpbiBhIHNldHVwIGNoYWluLCBmb3IgZXhh
bXBsZSBkdXJpbmcgc2VsZi5zZXR1cCgpLgotICAgICAgICAiIiIKLSAgICAgICAgc2VsZi5zZXNz
aW9uLl9zZXR1cHN0YXRlLmFkZGZpbmFsaXplcihmaW4sIHNlbGYpCi0KLSAgICBkZWYgZ2V0cGFy
ZW50KHNlbGYsIGNscyk6Ci0gICAgICAgICIiIiBnZXQgdGhlIG5leHQgcGFyZW50IG5vZGUgKGlu
Y2x1ZGluZyBvdXJzZWxmKQotICAgICAgICB3aGljaCBpcyBhbiBpbnN0YW5jZSBvZiB0aGUgZ2l2
ZW4gY2xhc3MiIiIKLSAgICAgICAgY3VycmVudCA9IHNlbGYKLSAgICAgICAgd2hpbGUgY3VycmVu
dCBhbmQgbm90IGlzaW5zdGFuY2UoY3VycmVudCwgY2xzKToKLSAgICAgICAgICAgIGN1cnJlbnQg
PSBjdXJyZW50LnBhcmVudAotICAgICAgICByZXR1cm4gY3VycmVudAotCi0gICAgZGVmIF9wcnVu
ZXRyYWNlYmFjayhzZWxmLCBleGNpbmZvKToKLSAgICAgICAgcGFzcwotCi0gICAgZGVmIF9yZXBy
X2ZhaWx1cmVfcHkoc2VsZiwgZXhjaW5mbywgc3R5bGU9Tm9uZSk6Ci0gICAgICAgIGZtID0gc2Vs
Zi5zZXNzaW9uLl9maXh0dXJlbWFuYWdlcgotICAgICAgICBpZiBleGNpbmZvLmVycmlzaW5zdGFu
Y2UoZm0uRml4dHVyZUxvb2t1cEVycm9yKToKLSAgICAgICAgICAgIHJldHVybiBleGNpbmZvLnZh
bHVlLmZvcm1hdHJlcHIoKQotICAgICAgICB0YmZpbHRlciA9IFRydWUKLSAgICAgICAgaWYgc2Vs
Zi5jb25maWcub3B0aW9uLmZ1bGx0cmFjZToKLSAgICAgICAgICAgIHN0eWxlID0gImxvbmciCi0g
ICAgICAgIGVsc2U6Ci0gICAgICAgICAgICB0YiA9IF9weXRlc3QuX2NvZGUuVHJhY2ViYWNrKFtl
eGNpbmZvLnRyYWNlYmFja1stMV1dKQotICAgICAgICAgICAgc2VsZi5fcHJ1bmV0cmFjZWJhY2so
ZXhjaW5mbykKLSAgICAgICAgICAgIGlmIGxlbihleGNpbmZvLnRyYWNlYmFjaykgPT0gMDoKLSAg
ICAgICAgICAgICAgICBleGNpbmZvLnRyYWNlYmFjayA9IHRiCi0gICAgICAgICAgICB0YmZpbHRl
ciA9IEZhbHNlICAjIHBydW5ldHJhY2ViYWNrIGFscmVhZHkgZG9lcyBpdAotICAgICAgICAgICAg
aWYgc3R5bGUgPT0gImF1dG8iOgotICAgICAgICAgICAgICAgIHN0eWxlID0gImxvbmciCi0gICAg
ICAgICMgWFhYIHNob3VsZCBleGNpbmZvLmdldHJlcHIgcmVjb3JkIGFsbCBkYXRhIGFuZCB0b3Rl
cm1pbmFsKCkgcHJvY2VzcyBpdD8KLSAgICAgICAgaWYgc3R5bGUgaXMgTm9uZToKLSAgICAgICAg
ICAgIGlmIHNlbGYuY29uZmlnLm9wdGlvbi50YnN0eWxlID09ICJzaG9ydCI6Ci0gICAgICAgICAg
ICAgICAgc3R5bGUgPSAic2hvcnQiCi0gICAgICAgICAgICBlbHNlOgotICAgICAgICAgICAgICAg
IHN0eWxlID0gImxvbmciCi0KLSAgICAgICAgdHJ5OgotICAgICAgICAgICAgb3MuZ2V0Y3dkKCkK
LSAgICAgICAgICAgIGFic3BhdGggPSBGYWxzZQotICAgICAgICBleGNlcHQgT1NFcnJvcjoKLSAg
ICAgICAgICAgIGFic3BhdGggPSBUcnVlCi0KLSAgICAgICAgcmV0dXJuIGV4Y2luZm8uZ2V0cmVw
cihmdW5jYXJncz1UcnVlLCBhYnNwYXRoPWFic3BhdGgsCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgc2hvd2xvY2Fscz1zZWxmLmNvbmZpZy5vcHRpb24uc2hvd2xvY2FscywKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBzdHlsZT1zdHlsZSwgdGJmaWx0ZXI9dGJmaWx0ZXIp
Ci0KLSAgICByZXByX2ZhaWx1cmUgPSBfcmVwcl9mYWlsdXJlX3B5Ci0KLQotY2xhc3MgQ29sbGVj
dG9yKE5vZGUpOgotICAgICIiIiBDb2xsZWN0b3IgaW5zdGFuY2VzIGNyZWF0ZSBjaGlsZHJlbiB0
aHJvdWdoIGNvbGxlY3QoKQotICAgICAgICBhbmQgdGh1cyBpdGVyYXRpdmVseSBidWlsZCBhIHRy
ZWUuCi0gICAgIiIiCi0KLSAgICBjbGFzcyBDb2xsZWN0RXJyb3IoRXhjZXB0aW9uKToKLSAgICAg
ICAgIiIiIGFuIGVycm9yIGR1cmluZyBjb2xsZWN0aW9uLCBjb250YWlucyBhIGN1c3RvbSBtZXNz
YWdlLiAiIiIKLQotICAgIGRlZiBjb2xsZWN0KHNlbGYpOgotICAgICAgICAiIiIgcmV0dXJucyBh
IGxpc3Qgb2YgY2hpbGRyZW4gKGl0ZW1zIGFuZCBjb2xsZWN0b3JzKQotICAgICAgICAgICAgZm9y
IHRoaXMgY29sbGVjdGlvbiBub2RlLgotICAgICAgICAiIiIKLSAgICAgICAgcmFpc2UgTm90SW1w
bGVtZW50ZWRFcnJvcigiYWJzdHJhY3QiKQotCi0gICAgZGVmIHJlcHJfZmFpbHVyZShzZWxmLCBl
eGNpbmZvKToKLSAgICAgICAgIiIiIHJlcHJlc2VudCBhIGNvbGxlY3Rpb24gZmFpbHVyZS4gIiIi
Ci0gICAgICAgIGlmIGV4Y2luZm8uZXJyaXNpbnN0YW5jZShzZWxmLkNvbGxlY3RFcnJvcik6Ci0g
ICAgICAgICAgICBleGMgPSBleGNpbmZvLnZhbHVlCi0gICAgICAgICAgICByZXR1cm4gc3RyKGV4
Yy5hcmdzWzBdKQotICAgICAgICByZXR1cm4gc2VsZi5fcmVwcl9mYWlsdXJlX3B5KGV4Y2luZm8s
IHN0eWxlPSJzaG9ydCIpCi0KLSAgICBkZWYgX3BydW5ldHJhY2ViYWNrKHNlbGYsIGV4Y2luZm8p
OgotICAgICAgICBpZiBoYXNhdHRyKHNlbGYsICdmc3BhdGgnKToKLSAgICAgICAgICAgIHRyYWNl
YmFjayA9IGV4Y2luZm8udHJhY2ViYWNrCi0gICAgICAgICAgICBudHJhY2ViYWNrID0gdHJhY2Vi
YWNrLmN1dChwYXRoPXNlbGYuZnNwYXRoKQotICAgICAgICAgICAgaWYgbnRyYWNlYmFjayA9PSB0
cmFjZWJhY2s6Ci0gICAgICAgICAgICAgICAgbnRyYWNlYmFjayA9IG50cmFjZWJhY2suY3V0KGV4
Y2x1ZGVwYXRoPXRyYWNlYmFja2N1dGRpcikKLSAgICAgICAgICAgIGV4Y2luZm8udHJhY2ViYWNr
ID0gbnRyYWNlYmFjay5maWx0ZXIoKQotCi0KLWNsYXNzIEZTQ29sbGVjdG9yKENvbGxlY3Rvcik6
Ci0gICAgZGVmIF9faW5pdF9fKHNlbGYsIGZzcGF0aCwgcGFyZW50PU5vbmUsIGNvbmZpZz1Ob25l
LCBzZXNzaW9uPU5vbmUpOgotICAgICAgICBmc3BhdGggPSBweS5wYXRoLmxvY2FsKGZzcGF0aCkg
ICMgeHh4IG9ubHkgZm9yIHRlc3RfcmVzdWx0bG9nLnB5PwotICAgICAgICBuYW1lID0gZnNwYXRo
LmJhc2VuYW1lCi0gICAgICAgIGlmIHBhcmVudCBpcyBub3QgTm9uZToKLSAgICAgICAgICAgIHJl
bCA9IGZzcGF0aC5yZWx0byhwYXJlbnQuZnNwYXRoKQotICAgICAgICAgICAgaWYgcmVsOgotICAg
ICAgICAgICAgICAgIG5hbWUgPSByZWwKLSAgICAgICAgICAgIG5hbWUgPSBuYW1lLnJlcGxhY2Uo
b3Muc2VwLCBub2Rlcy5TRVApCi0gICAgICAgIHN1cGVyKEZTQ29sbGVjdG9yLCBzZWxmKS5fX2lu
aXRfXyhuYW1lLCBwYXJlbnQsIGNvbmZpZywgc2Vzc2lvbikKLSAgICAgICAgc2VsZi5mc3BhdGgg
PSBmc3BhdGgKLQotICAgIGRlZiBfY2hlY2tfaW5pdGlhbHBhdGhzX2Zvcl9yZWxwYXRoKHNlbGYp
OgotICAgICAgICBmb3IgaW5pdGlhbHBhdGggaW4gc2VsZi5zZXNzaW9uLl9pbml0aWFscGF0aHM6
Ci0gICAgICAgICAgICBpZiBzZWxmLmZzcGF0aC5jb21tb24oaW5pdGlhbHBhdGgpID09IGluaXRp
YWxwYXRoOgotICAgICAgICAgICAgICAgIHJldHVybiBzZWxmLmZzcGF0aC5yZWx0byhpbml0aWFs
cGF0aC5kaXJuYW1lKQotCi0gICAgZGVmIF9tYWtlaWQoc2VsZik6Ci0gICAgICAgIHJlbHBhdGgg
PSBzZWxmLmZzcGF0aC5yZWx0byhzZWxmLmNvbmZpZy5yb290ZGlyKQotCi0gICAgICAgIGlmIG5v
dCByZWxwYXRoOgotICAgICAgICAgICAgcmVscGF0aCA9IHNlbGYuX2NoZWNrX2luaXRpYWxwYXRo
c19mb3JfcmVscGF0aCgpCi0gICAgICAgIGlmIG9zLnNlcCAhPSBub2Rlcy5TRVA6Ci0gICAgICAg
ICAgICByZWxwYXRoID0gcmVscGF0aC5yZXBsYWNlKG9zLnNlcCwgbm9kZXMuU0VQKQotICAgICAg
ICByZXR1cm4gcmVscGF0aAotCi0KLWNsYXNzIEZpbGUoRlNDb2xsZWN0b3IpOgotICAgICIiIiBi
YXNlIGNsYXNzIGZvciBjb2xsZWN0aW5nIHRlc3RzIGZyb20gYSBmaWxlLiAiIiIKLQotCi1jbGFz
cyBJdGVtKE5vZGUpOgotICAgICIiIiBhIGJhc2ljIHRlc3QgaW52b2NhdGlvbiBpdGVtLiBOb3Rl
IHRoYXQgZm9yIGEgc2luZ2xlIGZ1bmN0aW9uCi0gICAgdGhlcmUgbWlnaHQgYmUgbXVsdGlwbGUg
dGVzdCBpbnZvY2F0aW9uIGl0ZW1zLgotICAgICIiIgotICAgIG5leHRpdGVtID0gTm9uZQotCi0g
ICAgZGVmIF9faW5pdF9fKHNlbGYsIG5hbWUsIHBhcmVudD1Ob25lLCBjb25maWc9Tm9uZSwgc2Vz
c2lvbj1Ob25lKToKLSAgICAgICAgc3VwZXIoSXRlbSwgc2VsZikuX19pbml0X18obmFtZSwgcGFy
ZW50LCBjb25maWcsIHNlc3Npb24pCi0gICAgICAgIHNlbGYuX3JlcG9ydF9zZWN0aW9ucyA9IFtd
Ci0KLSAgICBkZWYgYWRkX3JlcG9ydF9zZWN0aW9uKHNlbGYsIHdoZW4sIGtleSwgY29udGVudCk6
Ci0gICAgICAgICIiIgotICAgICAgICBBZGRzIGEgbmV3IHJlcG9ydCBzZWN0aW9uLCBzaW1pbGFy
IHRvIHdoYXQncyBkb25lIGludGVybmFsbHkgdG8gYWRkIHN0ZG91dCBhbmQKLSAgICAgICAgc3Rk
ZXJyIGNhcHR1cmVkIG91dHB1dDo6Ci0KLSAgICAgICAgICAgIGl0ZW0uYWRkX3JlcG9ydF9zZWN0
aW9uKCJjYWxsIiwgInN0ZG91dCIsICJyZXBvcnQgc2VjdGlvbiBjb250ZW50cyIpCi0KLSAgICAg
ICAgOnBhcmFtIHN0ciB3aGVuOgotICAgICAgICAgICAgT25lIG9mIHRoZSBwb3NzaWJsZSBjYXB0
dXJlIHN0YXRlcywgYGAic2V0dXAiYGAsIGBgImNhbGwiYGAsIGBgInRlYXJkb3duImBgLgotICAg
ICAgICA6cGFyYW0gc3RyIGtleToKLSAgICAgICAgICAgIE5hbWUgb2YgdGhlIHNlY3Rpb24sIGNh
biBiZSBjdXN0b21pemVkIGF0IHdpbGwuIFB5dGVzdCB1c2VzIGBgInN0ZG91dCJgYCBhbmQKLSAg
ICAgICAgICAgIGBgInN0ZGVyciJgYCBpbnRlcm5hbGx5LgotCi0gICAgICAgIDpwYXJhbSBzdHIg
Y29udGVudDoKLSAgICAgICAgICAgIFRoZSBmdWxsIGNvbnRlbnRzIGFzIGEgc3RyaW5nLgotICAg
ICAgICAiIiIKLSAgICAgICAgaWYgY29udGVudDoKLSAgICAgICAgICAgIHNlbGYuX3JlcG9ydF9z
ZWN0aW9ucy5hcHBlbmQoKHdoZW4sIGtleSwgY29udGVudCkpCi0KLSAgICBkZWYgcmVwb3J0aW5m
byhzZWxmKToKLSAgICAgICAgcmV0dXJuIHNlbGYuZnNwYXRoLCBOb25lLCAiIgotCi0gICAgQHBy
b3BlcnR5Ci0gICAgZGVmIGxvY2F0aW9uKHNlbGYpOgotICAgICAgICB0cnk6Ci0gICAgICAgICAg
ICByZXR1cm4gc2VsZi5fbG9jYXRpb24KLSAgICAgICAgZXhjZXB0IEF0dHJpYnV0ZUVycm9yOgot
ICAgICAgICAgICAgbG9jYXRpb24gPSBzZWxmLnJlcG9ydGluZm8oKQotICAgICAgICAgICAgIyBi
ZXN0cmVscGF0aCBpcyBhIHF1aXRlIHNsb3cgZnVuY3Rpb24KLSAgICAgICAgICAgIGNhY2hlID0g
c2VsZi5jb25maWcuX19kaWN0X18uc2V0ZGVmYXVsdCgiX2Jlc3RyZWxwYXRoY2FjaGUiLCB7fSkK
LSAgICAgICAgICAgIHRyeToKLSAgICAgICAgICAgICAgICBmc3BhdGggPSBjYWNoZVtsb2NhdGlv
blswXV0KLSAgICAgICAgICAgIGV4Y2VwdCBLZXlFcnJvcjoKLSAgICAgICAgICAgICAgICBmc3Bh
dGggPSBzZWxmLnNlc3Npb24uZnNwYXRoLmJlc3RyZWxwYXRoKGxvY2F0aW9uWzBdKQotICAgICAg
ICAgICAgICAgIGNhY2hlW2xvY2F0aW9uWzBdXSA9IGZzcGF0aAotICAgICAgICAgICAgbG9jYXRp
b24gPSAoZnNwYXRoLCBsb2NhdGlvblsxXSwgc3RyKGxvY2F0aW9uWzJdKSkKLSAgICAgICAgICAg
IHNlbGYuX2xvY2F0aW9uID0gbG9jYXRpb24KLSAgICAgICAgICAgIHJldHVybiBsb2NhdGlvbgot
Ci0KLWNsYXNzIE5vTWF0Y2goRXhjZXB0aW9uKToKLSAgICAiIiIgcmFpc2VkIGlmIG1hdGNoaW5n
IGNhbm5vdCBsb2NhdGUgYSBtYXRjaGluZyBuYW1lcy4gIiIiCi0KLQotY2xhc3MgSW50ZXJydXB0
ZWQoS2V5Ym9hcmRJbnRlcnJ1cHQpOgotICAgICIiIiBzaWduYWxzIGFuIGludGVycnVwdGVkIHRl
c3QgcnVuLiAiIiIKLSAgICBfX21vZHVsZV9fID0gJ2J1aWx0aW5zJyAgIyBmb3IgcHkzCi0KLQot
Y2xhc3MgRmFpbGVkKEV4Y2VwdGlvbik6Ci0gICAgIiIiIHNpZ25hbHMgYW4gc3RvcCBhcyBmYWls
ZWQgdGVzdCBydW4uICIiIgotCi0KLWNsYXNzIFNlc3Npb24oRlNDb2xsZWN0b3IpOgotICAgIElu
dGVycnVwdGVkID0gSW50ZXJydXB0ZWQKLSAgICBGYWlsZWQgPSBGYWlsZWQKLQotICAgIGRlZiBf
X2luaXRfXyhzZWxmLCBjb25maWcpOgotICAgICAgICBGU0NvbGxlY3Rvci5fX2luaXRfXyhzZWxm
LCBjb25maWcucm9vdGRpciwgcGFyZW50PU5vbmUsCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGNvbmZpZz1jb25maWcsIHNlc3Npb249c2VsZikKLSAgICAgICAgc2VsZi50ZXN0c2ZhaWxl
ZCA9IDAKLSAgICAgICAgc2VsZi50ZXN0c2NvbGxlY3RlZCA9IDAKLSAgICAgICAgc2VsZi5zaG91
bGRzdG9wID0gRmFsc2UKLSAgICAgICAgc2VsZi5zaG91bGRmYWlsID0gRmFsc2UKLSAgICAgICAg
c2VsZi50cmFjZSA9IGNvbmZpZy50cmFjZS5yb290LmdldCgiY29sbGVjdGlvbiIpCi0gICAgICAg
IHNlbGYuX25vcmVjdXJzZXBhdHRlcm5zID0gY29uZmlnLmdldGluaSgibm9yZWN1cnNlZGlycyIp
Ci0gICAgICAgIHNlbGYuc3RhcnRkaXIgPSBweS5wYXRoLmxvY2FsKCkKLSAgICAgICAgc2VsZi5j
b25maWcucGx1Z2lubWFuYWdlci5yZWdpc3RlcihzZWxmLCBuYW1lPSJzZXNzaW9uIikKLQotICAg
IGRlZiBfbWFrZWlkKHNlbGYpOgotICAgICAgICByZXR1cm4gIiIKLQotICAgIEBob29raW1wbCh0
cnlmaXJzdD1UcnVlKQotICAgIGRlZiBweXRlc3RfY29sbGVjdHN0YXJ0KHNlbGYpOgotICAgICAg
ICBpZiBzZWxmLnNob3VsZGZhaWw6Ci0gICAgICAgICAgICByYWlzZSBzZWxmLkZhaWxlZChzZWxm
LnNob3VsZGZhaWwpCi0gICAgICAgIGlmIHNlbGYuc2hvdWxkc3RvcDoKLSAgICAgICAgICAgIHJh
aXNlIHNlbGYuSW50ZXJydXB0ZWQoc2VsZi5zaG91bGRzdG9wKQotCi0gICAgQGhvb2tpbXBsKHRy
eWZpcnN0PVRydWUpCi0gICAgZGVmIHB5dGVzdF9ydW50ZXN0X2xvZ3JlcG9ydChzZWxmLCByZXBv
cnQpOgotICAgICAgICBpZiByZXBvcnQuZmFpbGVkIGFuZCBub3QgaGFzYXR0cihyZXBvcnQsICd3
YXN4ZmFpbCcpOgotICAgICAgICAgICAgc2VsZi50ZXN0c2ZhaWxlZCArPSAxCi0gICAgICAgICAg
ICBtYXhmYWlsID0gc2VsZi5jb25maWcuZ2V0dmFsdWUoIm1heGZhaWwiKQotICAgICAgICAgICAg
aWYgbWF4ZmFpbCBhbmQgc2VsZi50ZXN0c2ZhaWxlZCA+PSBtYXhmYWlsOgotICAgICAgICAgICAg
ICAgIHNlbGYuc2hvdWxkZmFpbCA9ICJzdG9wcGluZyBhZnRlciAlZCBmYWlsdXJlcyIgJSAoCi0g
ICAgICAgICAgICAgICAgICAgIHNlbGYudGVzdHNmYWlsZWQpCi0gICAgcHl0ZXN0X2NvbGxlY3Ry
ZXBvcnQgPSBweXRlc3RfcnVudGVzdF9sb2dyZXBvcnQKLQotICAgIGRlZiBpc2luaXRwYXRoKHNl
bGYsIHBhdGgpOgotICAgICAgICByZXR1cm4gcGF0aCBpbiBzZWxmLl9pbml0aWFscGF0aHMKLQot
ICAgIGRlZiBnZXRob29rcHJveHkoc2VsZiwgZnNwYXRoKToKLSAgICAgICAgIyBjaGVjayBpZiB3
ZSBoYXZlIHRoZSBjb21tb24gY2FzZSBvZiBydW5uaW5nCi0gICAgICAgICMgaG9va3Mgd2l0aCBh
bGwgY29uZnRlc3QucHkgZmlsZXNhbGwgY29uZnRlc3QucHkKLSAgICAgICAgcG0gPSBzZWxmLmNv
bmZpZy5wbHVnaW5tYW5hZ2VyCi0gICAgICAgIG15X2NvbmZ0ZXN0bW9kdWxlcyA9IHBtLl9nZXRj
b25mdGVzdG1vZHVsZXMoZnNwYXRoKQotICAgICAgICByZW1vdmVfbW9kcyA9IHBtLl9jb25mdGVz
dF9wbHVnaW5zLmRpZmZlcmVuY2UobXlfY29uZnRlc3Rtb2R1bGVzKQotICAgICAgICBpZiByZW1v
dmVfbW9kczoKLSAgICAgICAgICAgICMgb25lIG9yIG1vcmUgY29uZnRlc3RzIGFyZSBub3QgaW4g
dXNlIGF0IHRoaXMgZnNwYXRoCi0gICAgICAgICAgICBwcm94eSA9IEZTSG9va1Byb3h5KGZzcGF0
aCwgcG0sIHJlbW92ZV9tb2RzKQotICAgICAgICBlbHNlOgotICAgICAgICAgICAgIyBhbGwgcGx1
Z2lzIGFyZSBhY3RpdmUgZm9yIHRoaXMgZnNwYXRoCi0gICAgICAgICAgICBwcm94eSA9IHNlbGYu
Y29uZmlnLmhvb2sKLSAgICAgICAgcmV0dXJuIHByb3h5Ci0KLSAgICBkZWYgcGVyZm9ybV9jb2xs
ZWN0KHNlbGYsIGFyZ3M9Tm9uZSwgZ2VuaXRlbXM9VHJ1ZSk6Ci0gICAgICAgIGhvb2sgPSBzZWxm
LmNvbmZpZy5ob29rCi0gICAgICAgIHRyeToKLSAgICAgICAgICAgIGl0ZW1zID0gc2VsZi5fcGVy
Zm9ybV9jb2xsZWN0KGFyZ3MsIGdlbml0ZW1zKQotICAgICAgICAgICAgc2VsZi5jb25maWcucGx1
Z2lubWFuYWdlci5jaGVja19wZW5kaW5nKCkKLSAgICAgICAgICAgIGhvb2sucHl0ZXN0X2NvbGxl
Y3Rpb25fbW9kaWZ5aXRlbXMoc2Vzc2lvbj1zZWxmLAotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBjb25maWc9c2VsZi5jb25maWcsIGl0ZW1zPWl0ZW1zKQot
ICAgICAgICBmaW5hbGx5OgotICAgICAgICAgICAgaG9vay5weXRlc3RfY29sbGVjdGlvbl9maW5p
c2goc2Vzc2lvbj1zZWxmKQotICAgICAgICBzZWxmLnRlc3RzY29sbGVjdGVkID0gbGVuKGl0ZW1z
KQotICAgICAgICByZXR1cm4gaXRlbXMKLQotICAgIGRlZiBfcGVyZm9ybV9jb2xsZWN0KHNlbGYs
IGFyZ3MsIGdlbml0ZW1zKToKLSAgICAgICAgaWYgYXJncyBpcyBOb25lOgotICAgICAgICAgICAg
YXJncyA9IHNlbGYuY29uZmlnLmFyZ3MKLSAgICAgICAgc2VsZi50cmFjZSgicGVyZm9ybV9jb2xs
ZWN0Iiwgc2VsZiwgYXJncykKLSAgICAgICAgc2VsZi50cmFjZS5yb290LmluZGVudCArPSAxCi0g
ICAgICAgIHNlbGYuX25vdGZvdW5kID0gW10KLSAgICAgICAgc2VsZi5faW5pdGlhbHBhdGhzID0g
c2V0KCkKLSAgICAgICAgc2VsZi5faW5pdGlhbHBhcnRzID0gW10KLSAgICAgICAgc2VsZi5pdGVt
cyA9IGl0ZW1zID0gW10KLSAgICAgICAgZm9yIGFyZyBpbiBhcmdzOgotICAgICAgICAgICAgcGFy
dHMgPSBzZWxmLl9wYXJzZWFyZyhhcmcpCi0gICAgICAgICAgICBzZWxmLl9pbml0aWFscGFydHMu
YXBwZW5kKHBhcnRzKQotICAgICAgICAgICAgc2VsZi5faW5pdGlhbHBhdGhzLmFkZChwYXJ0c1sw
XSkKLSAgICAgICAgcmVwID0gY29sbGVjdF9vbmVfbm9kZShzZWxmKQotICAgICAgICBzZWxmLmlo
b29rLnB5dGVzdF9jb2xsZWN0cmVwb3J0KHJlcG9ydD1yZXApCi0gICAgICAgIHNlbGYudHJhY2Uu
cm9vdC5pbmRlbnQgLT0gMQotICAgICAgICBpZiBzZWxmLl9ub3Rmb3VuZDoKLSAgICAgICAgICAg
IGVycm9ycyA9IFtdCi0gICAgICAgICAgICBmb3IgYXJnLCBleGMgaW4gc2VsZi5fbm90Zm91bmQ6
Ci0gICAgICAgICAgICAgICAgbGluZSA9ICIobm8gbmFtZSAlciBpbiBhbnkgb2YgJXIpIiAlIChh
cmcsIGV4Yy5hcmdzWzBdKQotICAgICAgICAgICAgICAgIGVycm9ycy5hcHBlbmQoIm5vdCBmb3Vu
ZDogJXNcbiVzIiAlIChhcmcsIGxpbmUpKQotICAgICAgICAgICAgICAgICMgWFhYOiB0ZXN0IHRo
aXMKLSAgICAgICAgICAgIHJhaXNlIFVzYWdlRXJyb3IoKmVycm9ycykKLSAgICAgICAgaWYgbm90
IGdlbml0ZW1zOgotICAgICAgICAgICAgcmV0dXJuIHJlcC5yZXN1bHQKLSAgICAgICAgZWxzZToK
LSAgICAgICAgICAgIGlmIHJlcC5wYXNzZWQ6Ci0gICAgICAgICAgICAgICAgZm9yIG5vZGUgaW4g
cmVwLnJlc3VsdDoKLSAgICAgICAgICAgICAgICAgICAgc2VsZi5pdGVtcy5leHRlbmQoc2VsZi5n
ZW5pdGVtcyhub2RlKSkKLSAgICAgICAgICAgIHJldHVybiBpdGVtcwotCi0gICAgZGVmIGNvbGxl
Y3Qoc2VsZik6Ci0gICAgICAgIGZvciBwYXJ0cyBpbiBzZWxmLl9pbml0aWFscGFydHM6Ci0gICAg
ICAgICAgICBhcmcgPSAiOjoiLmpvaW4obWFwKHN0ciwgcGFydHMpKQotICAgICAgICAgICAgc2Vs
Zi50cmFjZSgicHJvY2Vzc2luZyBhcmd1bWVudCIsIGFyZykKLSAgICAgICAgICAgIHNlbGYudHJh
Y2Uucm9vdC5pbmRlbnQgKz0gMQotICAgICAgICAgICAgdHJ5OgotICAgICAgICAgICAgICAgIGZv
ciB4IGluIHNlbGYuX2NvbGxlY3QoYXJnKToKLSAgICAgICAgICAgICAgICAgICAgeWllbGQgeAot
ICAgICAgICAgICAgZXhjZXB0IE5vTWF0Y2g6Ci0gICAgICAgICAgICAgICAgIyB3ZSBhcmUgaW5z
aWRlIGEgbWFrZV9yZXBvcnQgaG9vayBzbwotICAgICAgICAgICAgICAgICMgd2UgY2Fubm90IGRp
cmVjdGx5IHBhc3MgdGhyb3VnaCB0aGUgZXhjZXB0aW9uCi0gICAgICAgICAgICAgICAgc2VsZi5f
bm90Zm91bmQuYXBwZW5kKChhcmcsIHN5cy5leGNfaW5mbygpWzFdKSkKLQotICAgICAgICAgICAg
c2VsZi50cmFjZS5yb290LmluZGVudCAtPSAxCi0KLSAgICBkZWYgX2NvbGxlY3Qoc2VsZiwgYXJn
KToKLSAgICAgICAgbmFtZXMgPSBzZWxmLl9wYXJzZWFyZyhhcmcpCi0gICAgICAgIHBhdGggPSBu
YW1lcy5wb3AoMCkKLSAgICAgICAgaWYgcGF0aC5jaGVjayhkaXI9MSk6Ci0gICAgICAgICAgICBh
c3NlcnQgbm90IG5hbWVzLCAiaW52YWxpZCBhcmcgJXIiICUgKGFyZywpCi0gICAgICAgICAgICBm
b3IgcGF0aCBpbiBwYXRoLnZpc2l0KGZpbD1sYW1iZGEgeDogeC5jaGVjayhmaWxlPTEpLAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWM9c2VsZi5fcmVjdXJzZSwgYmY9VHJ1
ZSwgc29ydD1UcnVlKToKLSAgICAgICAgICAgICAgICBmb3IgeCBpbiBzZWxmLl9jb2xsZWN0Zmls
ZShwYXRoKToKLSAgICAgICAgICAgICAgICAgICAgeWllbGQgeAotICAgICAgICBlbHNlOgotICAg
ICAgICAgICAgYXNzZXJ0IHBhdGguY2hlY2soZmlsZT0xKQotICAgICAgICAgICAgZm9yIHggaW4g
c2VsZi5tYXRjaG5vZGVzKHNlbGYuX2NvbGxlY3RmaWxlKHBhdGgpLCBuYW1lcyk6Ci0gICAgICAg
ICAgICAgICAgeWllbGQgeAotCi0gICAgZGVmIF9jb2xsZWN0ZmlsZShzZWxmLCBwYXRoKToKLSAg
ICAgICAgaWhvb2sgPSBzZWxmLmdldGhvb2twcm94eShwYXRoKQotICAgICAgICBpZiBub3Qgc2Vs
Zi5pc2luaXRwYXRoKHBhdGgpOgotICAgICAgICAgICAgaWYgaWhvb2sucHl0ZXN0X2lnbm9yZV9j
b2xsZWN0KHBhdGg9cGF0aCwgY29uZmlnPXNlbGYuY29uZmlnKToKLSAgICAgICAgICAgICAgICBy
ZXR1cm4gKCkKLSAgICAgICAgcmV0dXJuIGlob29rLnB5dGVzdF9jb2xsZWN0X2ZpbGUocGF0aD1w
YXRoLCBwYXJlbnQ9c2VsZikKLQotICAgIGRlZiBfcmVjdXJzZShzZWxmLCBwYXRoKToKLSAgICAg
ICAgaWhvb2sgPSBzZWxmLmdldGhvb2twcm94eShwYXRoLmRpcnBhdGgoKSkKLSAgICAgICAgaWYg
aWhvb2sucHl0ZXN0X2lnbm9yZV9jb2xsZWN0KHBhdGg9cGF0aCwgY29uZmlnPXNlbGYuY29uZmln
KToKLSAgICAgICAgICAgIHJldHVybgotICAgICAgICBmb3IgcGF0IGluIHNlbGYuX25vcmVjdXJz
ZXBhdHRlcm5zOgotICAgICAgICAgICAgaWYgcGF0aC5jaGVjayhmbm1hdGNoPXBhdCk6Ci0gICAg
ICAgICAgICAgICAgcmV0dXJuIEZhbHNlCi0gICAgICAgIGlob29rID0gc2VsZi5nZXRob29rcHJv
eHkocGF0aCkKLSAgICAgICAgaWhvb2sucHl0ZXN0X2NvbGxlY3RfZGlyZWN0b3J5KHBhdGg9cGF0
aCwgcGFyZW50PXNlbGYpCi0gICAgICAgIHJldHVybiBUcnVlCi0KLSAgICBkZWYgX3RyeWNvbnZl
cnRweWFyZyhzZWxmLCB4KToKLSAgICAgICAgIiIiQ29udmVydCBhIGRvdHRlZCBtb2R1bGUgbmFt
ZSB0byBwYXRoLgotCi0gICAgICAgICIiIgotICAgICAgICBpbXBvcnQgcGtndXRpbAotICAgICAg
ICB0cnk6Ci0gICAgICAgICAgICBsb2FkZXIgPSBwa2d1dGlsLmZpbmRfbG9hZGVyKHgpCi0gICAg
ICAgIGV4Y2VwdCBJbXBvcnRFcnJvcjoKLSAgICAgICAgICAgIHJldHVybiB4Ci0gICAgICAgIGlm
IGxvYWRlciBpcyBOb25lOgotICAgICAgICAgICAgcmV0dXJuIHgKLSAgICAgICAgIyBUaGlzIG1l
dGhvZCBpcyBzb21ldGltZXMgaW52b2tlZCB3aGVuIEFzc2VydGlvblJld3JpdGluZ0hvb2ssIHdo
aWNoCi0gICAgICAgICMgZG9lcyBub3QgZGVmaW5lIGEgZ2V0X2ZpbGVuYW1lIG1ldGhvZCwgaXMg
YWxyZWFkeSBpbiBwbGFjZToKLSAgICAgICAgdHJ5OgotICAgICAgICAgICAgcGF0aCA9IGxvYWRl
ci5nZXRfZmlsZW5hbWUoeCkKLSAgICAgICAgZXhjZXB0IEF0dHJpYnV0ZUVycm9yOgotICAgICAg
ICAgICAgIyBSZXRyaWV2ZSBwYXRoIGZyb20gQXNzZXJ0aW9uUmV3cml0aW5nSG9vazoKLSAgICAg
ICAgICAgIHBhdGggPSBsb2FkZXIubW9kdWxlc1t4XVswXS5jb19maWxlbmFtZQotICAgICAgICBp
ZiBsb2FkZXIuaXNfcGFja2FnZSh4KToKLSAgICAgICAgICAgIHBhdGggPSBvcy5wYXRoLmRpcm5h
bWUocGF0aCkKLSAgICAgICAgcmV0dXJuIHBhdGgKLQotICAgIGRlZiBfcGFyc2Vhcmcoc2VsZiwg
YXJnKToKLSAgICAgICAgIiIiIHJldHVybiAoZnNwYXRoLCBuYW1lcykgdHVwbGUgYWZ0ZXIgY2hl
Y2tpbmcgdGhlIGZpbGUgZXhpc3RzLiAiIiIKLSAgICAgICAgcGFydHMgPSBzdHIoYXJnKS5zcGxp
dCgiOjoiKQotICAgICAgICBpZiBzZWxmLmNvbmZpZy5vcHRpb24ucHlhcmdzOgotICAgICAgICAg
ICAgcGFydHNbMF0gPSBzZWxmLl90cnljb252ZXJ0cHlhcmcocGFydHNbMF0pCi0gICAgICAgIHJl
bHBhdGggPSBwYXJ0c1swXS5yZXBsYWNlKCIvIiwgb3Muc2VwKQotICAgICAgICBwYXRoID0gc2Vs
Zi5jb25maWcuaW52b2NhdGlvbl9kaXIuam9pbihyZWxwYXRoLCBhYnM9VHJ1ZSkKLSAgICAgICAg
aWYgbm90IHBhdGguY2hlY2soKToKLSAgICAgICAgICAgIGlmIHNlbGYuY29uZmlnLm9wdGlvbi5w
eWFyZ3M6Ci0gICAgICAgICAgICAgICAgcmFpc2UgVXNhZ2VFcnJvcigKLSAgICAgICAgICAgICAg
ICAgICAgImZpbGUgb3IgcGFja2FnZSBub3QgZm91bmQ6ICIgKyBhcmcgKwotICAgICAgICAgICAg
ICAgICAgICAiIChtaXNzaW5nIF9faW5pdF9fLnB5PykiKQotICAgICAgICAgICAgZWxzZToKLSAg
ICAgICAgICAgICAgICByYWlzZSBVc2FnZUVycm9yKCJmaWxlIG5vdCBmb3VuZDogIiArIGFyZykK
LSAgICAgICAgcGFydHNbMF0gPSBwYXRoCi0gICAgICAgIHJldHVybiBwYXJ0cwotCi0gICAgZGVm
IG1hdGNobm9kZXMoc2VsZiwgbWF0Y2hpbmcsIG5hbWVzKToKLSAgICAgICAgc2VsZi50cmFjZSgi
bWF0Y2hub2RlcyIsIG1hdGNoaW5nLCBuYW1lcykKLSAgICAgICAgc2VsZi50cmFjZS5yb290Lmlu
ZGVudCArPSAxCi0gICAgICAgIG5vZGVzID0gc2VsZi5fbWF0Y2hub2RlcyhtYXRjaGluZywgbmFt
ZXMpCi0gICAgICAgIG51bSA9IGxlbihub2RlcykKLSAgICAgICAgc2VsZi50cmFjZSgibWF0Y2hu
b2RlcyBmaW5pc2hlZCAtPiAiLCBudW0sICJub2RlcyIpCi0gICAgICAgIHNlbGYudHJhY2Uucm9v
dC5pbmRlbnQgLT0gMQotICAgICAgICBpZiBudW0gPT0gMDoKLSAgICAgICAgICAgIHJhaXNlIE5v
TWF0Y2gobWF0Y2hpbmcsIG5hbWVzWzoxXSkKLSAgICAgICAgcmV0dXJuIG5vZGVzCi0KLSAgICBk
ZWYgX21hdGNobm9kZXMoc2VsZiwgbWF0Y2hpbmcsIG5hbWVzKToKLSAgICAgICAgaWYgbm90IG1h
dGNoaW5nIG9yIG5vdCBuYW1lczoKLSAgICAgICAgICAgIHJldHVybiBtYXRjaGluZwotICAgICAg
ICBuYW1lID0gbmFtZXNbMF0KLSAgICAgICAgYXNzZXJ0IG5hbWUKLSAgICAgICAgbmV4dG5hbWVz
ID0gbmFtZXNbMTpdCi0gICAgICAgIHJlc3VsdG5vZGVzID0gW10KLSAgICAgICAgZm9yIG5vZGUg
aW4gbWF0Y2hpbmc6Ci0gICAgICAgICAgICBpZiBpc2luc3RhbmNlKG5vZGUsIEl0ZW0pOgotICAg
ICAgICAgICAgICAgIGlmIG5vdCBuYW1lczoKLSAgICAgICAgICAgICAgICAgICAgcmVzdWx0bm9k
ZXMuYXBwZW5kKG5vZGUpCi0gICAgICAgICAgICAgICAgY29udGludWUKLSAgICAgICAgICAgIGFz
c2VydCBpc2luc3RhbmNlKG5vZGUsIENvbGxlY3RvcikKLSAgICAgICAgICAgIHJlcCA9IGNvbGxl
Y3Rfb25lX25vZGUobm9kZSkKLSAgICAgICAgICAgIGlmIHJlcC5wYXNzZWQ6Ci0gICAgICAgICAg
ICAgICAgaGFzX21hdGNoZWQgPSBGYWxzZQotICAgICAgICAgICAgICAgIGZvciB4IGluIHJlcC5y
ZXN1bHQ6Ci0gICAgICAgICAgICAgICAgICAgICMgVE9ETzogcmVtb3ZlIHBhcmFtZXRyaXplZCB3
b3JrYXJvdW5kIG9uY2UgY29sbGVjdGlvbiBzdHJ1Y3R1cmUgY29udGFpbnMgcGFyYW1ldHJpemF0
aW9uCi0gICAgICAgICAgICAgICAgICAgIGlmIHgubmFtZSA9PSBuYW1lIG9yIHgubmFtZS5zcGxp
dCgiWyIpWzBdID09IG5hbWU6Ci0gICAgICAgICAgICAgICAgICAgICAgICByZXN1bHRub2Rlcy5l
eHRlbmQoc2VsZi5tYXRjaG5vZGVzKFt4XSwgbmV4dG5hbWVzKSkKLSAgICAgICAgICAgICAgICAg
ICAgICAgIGhhc19tYXRjaGVkID0gVHJ1ZQotICAgICAgICAgICAgICAgICMgWFhYIGFjY2VwdCBJ
RHMgdGhhdCBkb24ndCBoYXZlICIoKSIgZm9yIGNsYXNzIGluc3RhbmNlcwotICAgICAgICAgICAg
ICAgIGlmIG5vdCBoYXNfbWF0Y2hlZCBhbmQgbGVuKHJlcC5yZXN1bHQpID09IDEgYW5kIHgubmFt
ZSA9PSAiKCkiOgotICAgICAgICAgICAgICAgICAgICBuZXh0bmFtZXMuaW5zZXJ0KDAsIG5hbWUp
Ci0gICAgICAgICAgICAgICAgICAgIHJlc3VsdG5vZGVzLmV4dGVuZChzZWxmLm1hdGNobm9kZXMo
W3hdLCBuZXh0bmFtZXMpKQotICAgICAgICAgICAgZWxzZToKLSAgICAgICAgICAgICAgICAjIHJl
cG9ydCBjb2xsZWN0aW9uIGZhaWx1cmVzIGhlcmUgdG8gYXZvaWQgZmFpbGluZyB0byBydW4gc29t
ZSB0ZXN0Ci0gICAgICAgICAgICAgICAgIyBzcGVjaWZpZWQgaW4gdGhlIGNvbW1hbmQgbGluZSBi
ZWNhdXNlIHRoZSBtb2R1bGUgY291bGQgbm90IGJlCi0gICAgICAgICAgICAgICAgIyBpbXBvcnRl
ZCAoIzEzNCkKLSAgICAgICAgICAgICAgICBub2RlLmlob29rLnB5dGVzdF9jb2xsZWN0cmVwb3J0
KHJlcG9ydD1yZXApCi0gICAgICAgIHJldHVybiByZXN1bHRub2RlcwotCi0gICAgZGVmIGdlbml0
ZW1zKHNlbGYsIG5vZGUpOgotICAgICAgICBzZWxmLnRyYWNlKCJnZW5pdGVtcyIsIG5vZGUpCi0g
ICAgICAgIGlmIGlzaW5zdGFuY2Uobm9kZSwgSXRlbSk6Ci0gICAgICAgICAgICBub2RlLmlob29r
LnB5dGVzdF9pdGVtY29sbGVjdGVkKGl0ZW09bm9kZSkKLSAgICAgICAgICAgIHlpZWxkIG5vZGUK
LSAgICAgICAgZWxzZToKLSAgICAgICAgICAgIGFzc2VydCBpc2luc3RhbmNlKG5vZGUsIENvbGxl
Y3RvcikKLSAgICAgICAgICAgIHJlcCA9IGNvbGxlY3Rfb25lX25vZGUobm9kZSkKLSAgICAgICAg
ICAgIGlmIHJlcC5wYXNzZWQ6Ci0gICAgICAgICAgICAgICAgZm9yIHN1Ym5vZGUgaW4gcmVwLnJl
c3VsdDoKLSAgICAgICAgICAgICAgICAgICAgZm9yIHggaW4gc2VsZi5nZW5pdGVtcyhzdWJub2Rl
KToKLSAgICAgICAgICAgICAgICAgICAgICAgIHlpZWxkIHgKLSAgICAgICAgICAgIG5vZGUuaWhv
b2sucHl0ZXN0X2NvbGxlY3RyZXBvcnQocmVwb3J0PXJlcCkKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0
ZXN0L19weXRlc3QvbWFyay5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L19weXRlc3QvbWFyay5weQpkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggM2YxZjAxYjFhMmUzNGRiMzVjYjI2MWEzZmI0OTBmMWM0
NjU3ZDRkMS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3Bh
cnR5L3B5dGVzdC9fcHl0ZXN0L21hcmsucHkKKysrIC9kZXYvbnVsbApAQCAtMSw0OTYgKzAsMCBA
QAotIiIiIGdlbmVyaWMgbWVjaGFuaXNtIGZvciBtYXJraW5nIGFuZCBzZWxlY3RpbmcgcHl0aG9u
IGZ1bmN0aW9ucy4gIiIiCi1mcm9tIF9fZnV0dXJlX18gaW1wb3J0IGFic29sdXRlX2ltcG9ydCwg
ZGl2aXNpb24sIHByaW50X2Z1bmN0aW9uCi0KLWltcG9ydCBpbnNwZWN0Ci1pbXBvcnQgd2Fybmlu
Z3MKLWltcG9ydCBhdHRyCi1mcm9tIGNvbGxlY3Rpb25zIGltcG9ydCBuYW1lZHR1cGxlCi1mcm9t
IG9wZXJhdG9yIGltcG9ydCBhdHRyZ2V0dGVyCi1mcm9tIHNpeC5tb3ZlcyBpbXBvcnQgbWFwCi1m
cm9tIC5kZXByZWNhdGVkIGltcG9ydCBNQVJLX1BBUkFNRVRFUlNFVF9VTlBBQ0tJTkcKLWZyb20g
LmNvbXBhdCBpbXBvcnQgTk9UU0VULCBnZXRmc2xpbmVubwotCi0KLWRlZiBhbGlhcyhuYW1lLCB3
YXJuaW5nPU5vbmUpOgotICAgIGdldHRlciA9IGF0dHJnZXR0ZXIobmFtZSkKLQotICAgIGRlZiB3
YXJuZWQoc2VsZik6Ci0gICAgICAgIHdhcm5pbmdzLndhcm4od2FybmluZywgc3RhY2tsZXZlbD0y
KQotICAgICAgICByZXR1cm4gZ2V0dGVyKHNlbGYpCi0KLSAgICByZXR1cm4gcHJvcGVydHkoZ2V0
dGVyIGlmIHdhcm5pbmcgaXMgTm9uZSBlbHNlIHdhcm5lZCwgZG9jPSdhbGlhcyBmb3IgJyArIG5h
bWUpCi0KLQotY2xhc3MgUGFyYW1ldGVyU2V0KG5hbWVkdHVwbGUoJ1BhcmFtZXRlclNldCcsICd2
YWx1ZXMsIG1hcmtzLCBpZCcpKToKLSAgICBAY2xhc3NtZXRob2QKLSAgICBkZWYgcGFyYW0oY2xz
LCAqdmFsdWVzLCAqKmt3KToKLSAgICAgICAgbWFya3MgPSBrdy5wb3AoJ21hcmtzJywgKCkpCi0g
ICAgICAgIGlmIGlzaW5zdGFuY2UobWFya3MsIE1hcmtEZWNvcmF0b3IpOgotICAgICAgICAgICAg
bWFya3MgPSBtYXJrcywKLSAgICAgICAgZWxzZToKLSAgICAgICAgICAgIGFzc2VydCBpc2luc3Rh
bmNlKG1hcmtzLCAodHVwbGUsIGxpc3QsIHNldCkpCi0KLSAgICAgICAgZGVmIHBhcmFtX2V4dHJh
Y3RfaWQoaWQ9Tm9uZSk6Ci0gICAgICAgICAgICByZXR1cm4gaWQKLQotICAgICAgICBpZCA9IHBh
cmFtX2V4dHJhY3RfaWQoKiprdykKLSAgICAgICAgcmV0dXJuIGNscyh2YWx1ZXMsIG1hcmtzLCBp
ZCkKLQotICAgIEBjbGFzc21ldGhvZAotICAgIGRlZiBleHRyYWN0X2Zyb20oY2xzLCBwYXJhbWV0
ZXJzZXQsIGxlZ2FjeV9mb3JjZV90dXBsZT1GYWxzZSk6Ci0gICAgICAgICIiIgotICAgICAgICA6
cGFyYW0gcGFyYW1ldGVyc2V0OgotICAgICAgICAgICAgYSBsZWdhY3kgc3R5bGUgcGFyYW1ldGVy
c2V0IHRoYXQgbWF5IG9yIG1heSBub3QgYmUgYSB0dXBsZSwKLSAgICAgICAgICAgIGFuZCBtYXkg
b3IgbWF5IG5vdCBiZSB3cmFwcGVkIGludG8gYSBtZXNzIG9mIG1hcmsgb2JqZWN0cwotCi0gICAg
ICAgIDpwYXJhbSBsZWdhY3lfZm9yY2VfdHVwbGU6Ci0gICAgICAgICAgICBlbmZvcmNlIHR1cGxl
IHdyYXBwaW5nIHNvIHNpbmdsZSBhcmd1bWVudCB0dXBsZSB2YWx1ZXMKLSAgICAgICAgICAgIGRv
bid0IGdldCBkZWNvbXBvc2VkIGFuZCBicmVhayB0ZXN0cwotCi0gICAgICAgICIiIgotCi0gICAg
ICAgIGlmIGlzaW5zdGFuY2UocGFyYW1ldGVyc2V0LCBjbHMpOgotICAgICAgICAgICAgcmV0dXJu
IHBhcmFtZXRlcnNldAotICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShwYXJhbWV0ZXJzZXQsIE1h
cmtEZWNvcmF0b3IpIGFuZCBsZWdhY3lfZm9yY2VfdHVwbGU6Ci0gICAgICAgICAgICByZXR1cm4g
Y2xzLnBhcmFtKHBhcmFtZXRlcnNldCkKLQotICAgICAgICBuZXdtYXJrcyA9IFtdCi0gICAgICAg
IGFyZ3ZhbCA9IHBhcmFtZXRlcnNldAotICAgICAgICB3aGlsZSBpc2luc3RhbmNlKGFyZ3ZhbCwg
TWFya0RlY29yYXRvcik6Ci0gICAgICAgICAgICBuZXdtYXJrcy5hcHBlbmQoTWFya0RlY29yYXRv
cihNYXJrKAotICAgICAgICAgICAgICAgIGFyZ3ZhbC5tYXJrbmFtZSwgYXJndmFsLmFyZ3NbOi0x
XSwgYXJndmFsLmt3YXJncykpKQotICAgICAgICAgICAgYXJndmFsID0gYXJndmFsLmFyZ3NbLTFd
Ci0gICAgICAgIGFzc2VydCBub3QgaXNpbnN0YW5jZShhcmd2YWwsIFBhcmFtZXRlclNldCkKLSAg
ICAgICAgaWYgbGVnYWN5X2ZvcmNlX3R1cGxlOgotICAgICAgICAgICAgYXJndmFsID0gYXJndmFs
LAotCi0gICAgICAgIGlmIG5ld21hcmtzOgotICAgICAgICAgICAgd2FybmluZ3Mud2FybihNQVJL
X1BBUkFNRVRFUlNFVF9VTlBBQ0tJTkcpCi0KLSAgICAgICAgcmV0dXJuIGNscyhhcmd2YWwsIG1h
cmtzPW5ld21hcmtzLCBpZD1Ob25lKQotCi0gICAgQGNsYXNzbWV0aG9kCi0gICAgZGVmIF9mb3Jf
cGFyYW1ldGVyaXplKGNscywgYXJnbmFtZXMsIGFyZ3ZhbHVlcywgZnVuY3Rpb24pOgotICAgICAg
ICBpZiBub3QgaXNpbnN0YW5jZShhcmduYW1lcywgKHR1cGxlLCBsaXN0KSk6Ci0gICAgICAgICAg
ICBhcmduYW1lcyA9IFt4LnN0cmlwKCkgZm9yIHggaW4gYXJnbmFtZXMuc3BsaXQoIiwiKSBpZiB4
LnN0cmlwKCldCi0gICAgICAgICAgICBmb3JjZV90dXBsZSA9IGxlbihhcmduYW1lcykgPT0gMQot
ICAgICAgICBlbHNlOgotICAgICAgICAgICAgZm9yY2VfdHVwbGUgPSBGYWxzZQotICAgICAgICBw
YXJhbWV0ZXJzID0gWwotICAgICAgICAgICAgUGFyYW1ldGVyU2V0LmV4dHJhY3RfZnJvbSh4LCBs
ZWdhY3lfZm9yY2VfdHVwbGU9Zm9yY2VfdHVwbGUpCi0gICAgICAgICAgICBmb3IgeCBpbiBhcmd2
YWx1ZXNdCi0gICAgICAgIGRlbCBhcmd2YWx1ZXMKLQotICAgICAgICBpZiBub3QgcGFyYW1ldGVy
czoKLSAgICAgICAgICAgIGZzLCBsaW5lbm8gPSBnZXRmc2xpbmVubyhmdW5jdGlvbikKLSAgICAg
ICAgICAgIHJlYXNvbiA9ICJnb3QgZW1wdHkgcGFyYW1ldGVyIHNldCAlciwgZnVuY3Rpb24gJXMg
YXQgJXM6JWQiICUgKAotICAgICAgICAgICAgICAgIGFyZ25hbWVzLCBmdW5jdGlvbi5fX25hbWVf
XywgZnMsIGxpbmVubykKLSAgICAgICAgICAgIG1hcmsgPSBNQVJLX0dFTi5za2lwKHJlYXNvbj1y
ZWFzb24pCi0gICAgICAgICAgICBwYXJhbWV0ZXJzLmFwcGVuZChQYXJhbWV0ZXJTZXQoCi0gICAg
ICAgICAgICAgICAgdmFsdWVzPShOT1RTRVQsKSAqIGxlbihhcmduYW1lcyksCi0gICAgICAgICAg
ICAgICAgbWFya3M9W21hcmtdLAotICAgICAgICAgICAgICAgIGlkPU5vbmUsCi0gICAgICAgICAg
ICApKQotICAgICAgICByZXR1cm4gYXJnbmFtZXMsIHBhcmFtZXRlcnMKLQotCi1jbGFzcyBNYXJr
ZXJFcnJvcihFeGNlcHRpb24pOgotCi0gICAgIiIiRXJyb3IgaW4gdXNlIG9mIGEgcHl0ZXN0IG1h
cmtlci9hdHRyaWJ1dGUuIiIiCi0KLQotZGVmIHBhcmFtKCp2YWx1ZXMsICoqa3cpOgotICAgIHJl
dHVybiBQYXJhbWV0ZXJTZXQucGFyYW0oKnZhbHVlcywgKiprdykKLQotCi1kZWYgcHl0ZXN0X2Fk
ZG9wdGlvbihwYXJzZXIpOgotICAgIGdyb3VwID0gcGFyc2VyLmdldGdyb3VwKCJnZW5lcmFsIikK
LSAgICBncm91cC5fYWRkb3B0aW9uKAotICAgICAgICAnLWsnLAotICAgICAgICBhY3Rpb249InN0
b3JlIiwgZGVzdD0ia2V5d29yZCIsIGRlZmF1bHQ9JycsIG1ldGF2YXI9IkVYUFJFU1NJT04iLAot
ICAgICAgICBoZWxwPSJvbmx5IHJ1biB0ZXN0cyB3aGljaCBtYXRjaCB0aGUgZ2l2ZW4gc3Vic3Ry
aW5nIGV4cHJlc3Npb24uICIKLSAgICAgICAgICAgICAiQW4gZXhwcmVzc2lvbiBpcyBhIHB5dGhv
biBldmFsdWF0YWJsZSBleHByZXNzaW9uICIKLSAgICAgICAgICAgICAid2hlcmUgYWxsIG5hbWVz
IGFyZSBzdWJzdHJpbmctbWF0Y2hlZCBhZ2FpbnN0IHRlc3QgbmFtZXMgIgotICAgICAgICAgICAg
ICJhbmQgdGhlaXIgcGFyZW50IGNsYXNzZXMuIEV4YW1wbGU6IC1rICd0ZXN0X21ldGhvZCBvciB0
ZXN0XyIKLSAgICAgICAgICAgICAib3RoZXInIG1hdGNoZXMgYWxsIHRlc3QgZnVuY3Rpb25zIGFu
ZCBjbGFzc2VzIHdob3NlIG5hbWUgIgotICAgICAgICAgICAgICJjb250YWlucyAndGVzdF9tZXRo
b2QnIG9yICd0ZXN0X290aGVyJywgd2hpbGUgLWsgJ25vdCB0ZXN0X21ldGhvZCcgIgotICAgICAg
ICAgICAgICJtYXRjaGVzIHRob3NlIHRoYXQgZG9uJ3QgY29udGFpbiAndGVzdF9tZXRob2QnIGlu
IHRoZWlyIG5hbWVzLiAiCi0gICAgICAgICAgICAgIkFkZGl0aW9uYWxseSBrZXl3b3JkcyBhcmUg
bWF0Y2hlZCB0byBjbGFzc2VzIGFuZCBmdW5jdGlvbnMgIgotICAgICAgICAgICAgICJjb250YWlu
aW5nIGV4dHJhIG5hbWVzIGluIHRoZWlyICdleHRyYV9rZXl3b3JkX21hdGNoZXMnIHNldCwgIgot
ICAgICAgICAgICAgICJhcyB3ZWxsIGFzIGZ1bmN0aW9ucyB3aGljaCBoYXZlIG5hbWVzIGFzc2ln
bmVkIGRpcmVjdGx5IHRvIHRoZW0uIgotICAgICkKLQotICAgIGdyb3VwLl9hZGRvcHRpb24oCi0g
ICAgICAgICItbSIsCi0gICAgICAgIGFjdGlvbj0ic3RvcmUiLCBkZXN0PSJtYXJrZXhwciIsIGRl
ZmF1bHQ9IiIsIG1ldGF2YXI9Ik1BUktFWFBSIiwKLSAgICAgICAgaGVscD0ib25seSBydW4gdGVz
dHMgbWF0Y2hpbmcgZ2l2ZW4gbWFyayBleHByZXNzaW9uLiAgIgotICAgICAgICAgICAgICJleGFt
cGxlOiAtbSAnbWFyazEgYW5kIG5vdCBtYXJrMicuIgotICAgICkKLQotICAgIGdyb3VwLmFkZG9w
dGlvbigKLSAgICAgICAgIi0tbWFya2VycyIsIGFjdGlvbj0ic3RvcmVfdHJ1ZSIsCi0gICAgICAg
IGhlbHA9InNob3cgbWFya2VycyAoYnVpbHRpbiwgcGx1Z2luIGFuZCBwZXItcHJvamVjdCBvbmVz
KS4iCi0gICAgKQotCi0gICAgcGFyc2VyLmFkZGluaSgibWFya2VycyIsICJtYXJrZXJzIGZvciB0
ZXN0IGZ1bmN0aW9ucyIsICdsaW5lbGlzdCcpCi0KLQotZGVmIHB5dGVzdF9jbWRsaW5lX21haW4o
Y29uZmlnKToKLSAgICBpbXBvcnQgX3B5dGVzdC5jb25maWcKLSAgICBpZiBjb25maWcub3B0aW9u
Lm1hcmtlcnM6Ci0gICAgICAgIGNvbmZpZy5fZG9fY29uZmlndXJlKCkKLSAgICAgICAgdHcgPSBf
cHl0ZXN0LmNvbmZpZy5jcmVhdGVfdGVybWluYWxfd3JpdGVyKGNvbmZpZykKLSAgICAgICAgZm9y
IGxpbmUgaW4gY29uZmlnLmdldGluaSgibWFya2VycyIpOgotICAgICAgICAgICAgcGFydHMgPSBs
aW5lLnNwbGl0KCI6IiwgMSkKLSAgICAgICAgICAgIG5hbWUgPSBwYXJ0c1swXQotICAgICAgICAg
ICAgcmVzdCA9IHBhcnRzWzFdIGlmIGxlbihwYXJ0cykgPT0gMiBlbHNlICcnCi0gICAgICAgICAg
ICB0dy53cml0ZSgiQHB5dGVzdC5tYXJrLiVzOiIgJSBuYW1lLCBib2xkPVRydWUpCi0gICAgICAg
ICAgICB0dy5saW5lKHJlc3QpCi0gICAgICAgICAgICB0dy5saW5lKCkKLSAgICAgICAgY29uZmln
Ll9lbnN1cmVfdW5jb25maWd1cmUoKQotICAgICAgICByZXR1cm4gMAotCi0KLXB5dGVzdF9jbWRs
aW5lX21haW4udHJ5Zmlyc3QgPSBUcnVlCi0KLQotZGVmIHB5dGVzdF9jb2xsZWN0aW9uX21vZGlm
eWl0ZW1zKGl0ZW1zLCBjb25maWcpOgotICAgIGtleXdvcmRleHByID0gY29uZmlnLm9wdGlvbi5r
ZXl3b3JkLmxzdHJpcCgpCi0gICAgbWF0Y2hleHByID0gY29uZmlnLm9wdGlvbi5tYXJrZXhwcgot
ICAgIGlmIG5vdCBrZXl3b3JkZXhwciBhbmQgbm90IG1hdGNoZXhwcjoKLSAgICAgICAgcmV0dXJu
Ci0gICAgIyBweXRlc3QgdXNlZCB0byBhbGxvdyAiLSIgZm9yIG5lZ2F0aW5nCi0gICAgIyBidXQg
dG9kYXkgd2UganVzdCBhbGxvdyAiLSIgYXQgdGhlIGJlZ2lubmluZywgdXNlICJub3QiIGluc3Rl
YWQKLSAgICAjIHdlIHByb2JhYmx5IHJlbW92ZSAiLSIgYWx0b2dldGhlciBzb29uCi0gICAgaWYg
a2V5d29yZGV4cHIuc3RhcnRzd2l0aCgiLSIpOgotICAgICAgICBrZXl3b3JkZXhwciA9ICJub3Qg
IiArIGtleXdvcmRleHByWzE6XQotICAgIHNlbGVjdHVudGlsID0gRmFsc2UKLSAgICBpZiBrZXl3
b3JkZXhwclstMTpdID09ICI6IjoKLSAgICAgICAgc2VsZWN0dW50aWwgPSBUcnVlCi0gICAgICAg
IGtleXdvcmRleHByID0ga2V5d29yZGV4cHJbOi0xXQotCi0gICAgcmVtYWluaW5nID0gW10KLSAg
ICBkZXNlbGVjdGVkID0gW10KLSAgICBmb3IgY29saXRlbSBpbiBpdGVtczoKLSAgICAgICAgaWYg
a2V5d29yZGV4cHIgYW5kIG5vdCBtYXRjaGtleXdvcmQoY29saXRlbSwga2V5d29yZGV4cHIpOgot
ICAgICAgICAgICAgZGVzZWxlY3RlZC5hcHBlbmQoY29saXRlbSkKLSAgICAgICAgZWxzZToKLSAg
ICAgICAgICAgIGlmIHNlbGVjdHVudGlsOgotICAgICAgICAgICAgICAgIGtleXdvcmRleHByID0g
Tm9uZQotICAgICAgICAgICAgaWYgbWF0Y2hleHByOgotICAgICAgICAgICAgICAgIGlmIG5vdCBt
YXRjaG1hcmsoY29saXRlbSwgbWF0Y2hleHByKToKLSAgICAgICAgICAgICAgICAgICAgZGVzZWxl
Y3RlZC5hcHBlbmQoY29saXRlbSkKLSAgICAgICAgICAgICAgICAgICAgY29udGludWUKLSAgICAg
ICAgICAgIHJlbWFpbmluZy5hcHBlbmQoY29saXRlbSkKLQotICAgIGlmIGRlc2VsZWN0ZWQ6Ci0g
ICAgICAgIGNvbmZpZy5ob29rLnB5dGVzdF9kZXNlbGVjdGVkKGl0ZW1zPWRlc2VsZWN0ZWQpCi0g
ICAgICAgIGl0ZW1zWzpdID0gcmVtYWluaW5nCi0KLQotQGF0dHIucwotY2xhc3MgTWFya01hcHBp
bmcob2JqZWN0KToKLSAgICAiIiJQcm92aWRlcyBhIGxvY2FsIG1hcHBpbmcgZm9yIG1hcmtlcnMg
d2hlcmUgaXRlbSBhY2Nlc3MKLSAgICByZXNvbHZlcyB0byBUcnVlIGlmIHRoZSBtYXJrZXIgaXMg
cHJlc2VudC4gIiIiCi0KLSAgICBvd25fbWFya19uYW1lcyA9IGF0dHIuaWIoKQotCi0gICAgQGNs
YXNzbWV0aG9kCi0gICAgZGVmIGZyb21fa2V5d29yZHMoY2xzLCBrZXl3b3Jkcyk6Ci0gICAgICAg
IG1hcmtfbmFtZXMgPSBzZXQoKQotICAgICAgICBmb3Iga2V5LCB2YWx1ZSBpbiBrZXl3b3Jkcy5p
dGVtcygpOgotICAgICAgICAgICAgaWYgaXNpbnN0YW5jZSh2YWx1ZSwgTWFya0luZm8pIG9yIGlz
aW5zdGFuY2UodmFsdWUsIE1hcmtEZWNvcmF0b3IpOgotICAgICAgICAgICAgICAgIG1hcmtfbmFt
ZXMuYWRkKGtleSkKLSAgICAgICAgcmV0dXJuIGNscyhtYXJrX25hbWVzKQotCi0gICAgZGVmIF9f
Z2V0aXRlbV9fKHNlbGYsIG5hbWUpOgotICAgICAgICByZXR1cm4gbmFtZSBpbiBzZWxmLm93bl9t
YXJrX25hbWVzCi0KLQotY2xhc3MgS2V5d29yZE1hcHBpbmcob2JqZWN0KToKLSAgICAiIiJQcm92
aWRlcyBhIGxvY2FsIG1hcHBpbmcgZm9yIGtleXdvcmRzLgotICAgIEdpdmVuIGEgbGlzdCBvZiBu
YW1lcywgbWFwIGFueSBzdWJzdHJpbmcgb2Ygb25lIG9mIHRoZXNlIG5hbWVzIHRvIFRydWUuCi0g
ICAgIiIiCi0KLSAgICBkZWYgX19pbml0X18oc2VsZiwgbmFtZXMpOgotICAgICAgICBzZWxmLl9u
YW1lcyA9IG5hbWVzCi0KLSAgICBkZWYgX19nZXRpdGVtX18oc2VsZiwgc3VibmFtZSk6Ci0gICAg
ICAgIGZvciBuYW1lIGluIHNlbGYuX25hbWVzOgotICAgICAgICAgICAgaWYgc3VibmFtZSBpbiBu
YW1lOgotICAgICAgICAgICAgICAgIHJldHVybiBUcnVlCi0gICAgICAgIHJldHVybiBGYWxzZQot
Ci0KLWRlZiBtYXRjaG1hcmsoY29saXRlbSwgbWFya2V4cHIpOgotICAgICIiIlRyaWVzIHRvIG1h
dGNoIG9uIGFueSBtYXJrZXIgbmFtZXMsIGF0dGFjaGVkIHRvIHRoZSBnaXZlbiBjb2xpdGVtLiIi
IgotICAgIHJldHVybiBldmFsKG1hcmtleHByLCB7fSwgTWFya01hcHBpbmcuZnJvbV9rZXl3b3Jk
cyhjb2xpdGVtLmtleXdvcmRzKSkKLQotCi1kZWYgbWF0Y2hrZXl3b3JkKGNvbGl0ZW0sIGtleXdv
cmRleHByKToKLSAgICAiIiJUcmllcyB0byBtYXRjaCBnaXZlbiBrZXl3b3JkIGV4cHJlc3Npb24g
dG8gZ2l2ZW4gY29sbGVjdG9yIGl0ZW0uCi0KLSAgICBXaWxsIG1hdGNoIG9uIHRoZSBuYW1lIG9m
IGNvbGl0ZW0sIGluY2x1ZGluZyB0aGUgbmFtZXMgb2YgaXRzIHBhcmVudHMuCi0gICAgT25seSBt
YXRjaGVzIG5hbWVzIG9mIGl0ZW1zIHdoaWNoIGFyZSBlaXRoZXIgYSA6Y2xhc3M6YENsYXNzYCBv
ciBhCi0gICAgOmNsYXNzOmBGdW5jdGlvbmAuCi0gICAgQWRkaXRpb25hbGx5LCBtYXRjaGVzIG9u
IG5hbWVzIGluIHRoZSAnZXh0cmFfa2V5d29yZF9tYXRjaGVzJyBzZXQgb2YKLSAgICBhbnkgaXRl
bSwgYXMgd2VsbCBhcyBuYW1lcyBkaXJlY3RseSBhc3NpZ25lZCB0byB0ZXN0IGZ1bmN0aW9ucy4K
LSAgICAiIiIKLSAgICBtYXBwZWRfbmFtZXMgPSBzZXQoKQotCi0gICAgIyBBZGQgdGhlIG5hbWVz
IG9mIHRoZSBjdXJyZW50IGl0ZW0gYW5kIGFueSBwYXJlbnQgaXRlbXMKLSAgICBpbXBvcnQgcHl0
ZXN0Ci0gICAgZm9yIGl0ZW0gaW4gY29saXRlbS5saXN0Y2hhaW4oKToKLSAgICAgICAgaWYgbm90
IGlzaW5zdGFuY2UoaXRlbSwgcHl0ZXN0Lkluc3RhbmNlKToKLSAgICAgICAgICAgIG1hcHBlZF9u
YW1lcy5hZGQoaXRlbS5uYW1lKQotCi0gICAgIyBBZGQgdGhlIG5hbWVzIGFkZGVkIGFzIGV4dHJh
IGtleXdvcmRzIHRvIGN1cnJlbnQgb3IgcGFyZW50IGl0ZW1zCi0gICAgZm9yIG5hbWUgaW4gY29s
aXRlbS5saXN0ZXh0cmFrZXl3b3JkcygpOgotICAgICAgICBtYXBwZWRfbmFtZXMuYWRkKG5hbWUp
Ci0KLSAgICAjIEFkZCB0aGUgbmFtZXMgYXR0YWNoZWQgdG8gdGhlIGN1cnJlbnQgZnVuY3Rpb24g
dGhyb3VnaCBkaXJlY3QgYXNzaWdubWVudAotICAgIGlmIGhhc2F0dHIoY29saXRlbSwgJ2Z1bmN0
aW9uJyk6Ci0gICAgICAgIGZvciBuYW1lIGluIGNvbGl0ZW0uZnVuY3Rpb24uX19kaWN0X186Ci0g
ICAgICAgICAgICBtYXBwZWRfbmFtZXMuYWRkKG5hbWUpCi0KLSAgICBtYXBwaW5nID0gS2V5d29y
ZE1hcHBpbmcobWFwcGVkX25hbWVzKQotICAgIGlmICIgIiBub3QgaW4ga2V5d29yZGV4cHI6Ci0g
ICAgICAgICMgc3BlY2lhbCBjYXNlIHRvIGFsbG93IGZvciBzaW1wbGUgIi1rIHBhc3MiIGFuZCAi
LWsgMS4zIgotICAgICAgICByZXR1cm4gbWFwcGluZ1trZXl3b3JkZXhwcl0KLSAgICBlbGlmIGtl
eXdvcmRleHByLnN0YXJ0c3dpdGgoIm5vdCAiKSBhbmQgIiAiIG5vdCBpbiBrZXl3b3JkZXhwcls0
Ol06Ci0gICAgICAgIHJldHVybiBub3QgbWFwcGluZ1trZXl3b3JkZXhwcls0Ol1dCi0gICAgcmV0
dXJuIGV2YWwoa2V5d29yZGV4cHIsIHt9LCBtYXBwaW5nKQotCi0KLWRlZiBweXRlc3RfY29uZmln
dXJlKGNvbmZpZyk6Ci0gICAgY29uZmlnLl9vbGRfbWFya19jb25maWcgPSBNQVJLX0dFTi5fY29u
ZmlnCi0gICAgaWYgY29uZmlnLm9wdGlvbi5zdHJpY3Q6Ci0gICAgICAgIE1BUktfR0VOLl9jb25m
aWcgPSBjb25maWcKLQotCi1kZWYgcHl0ZXN0X3VuY29uZmlndXJlKGNvbmZpZyk6Ci0gICAgTUFS
S19HRU4uX2NvbmZpZyA9IGdldGF0dHIoY29uZmlnLCAnX29sZF9tYXJrX2NvbmZpZycsIE5vbmUp
Ci0KLQotY2xhc3MgTWFya0dlbmVyYXRvcjoKLSAgICAiIiIgRmFjdG9yeSBmb3IgOmNsYXNzOmBN
YXJrRGVjb3JhdG9yYCBvYmplY3RzIC0gZXhwb3NlZCBhcwotICAgIGEgYGBweXRlc3QubWFya2Bg
IHNpbmdsZXRvbiBpbnN0YW5jZS4gIEV4YW1wbGU6OgotCi0gICAgICAgICBpbXBvcnQgcHl0ZXN0
Ci0gICAgICAgICBAcHl0ZXN0Lm1hcmsuc2xvd3Rlc3QKLSAgICAgICAgIGRlZiB0ZXN0X2Z1bmN0
aW9uKCk6Ci0gICAgICAgICAgICBwYXNzCi0KLSAgICB3aWxsIHNldCBhICdzbG93dGVzdCcgOmNs
YXNzOmBNYXJrSW5mb2Agb2JqZWN0Ci0gICAgb24gdGhlIGBgdGVzdF9mdW5jdGlvbmBgIG9iamVj
dC4gIiIiCi0gICAgX2NvbmZpZyA9IE5vbmUKLQotICAgIGRlZiBfX2dldGF0dHJfXyhzZWxmLCBu
YW1lKToKLSAgICAgICAgaWYgbmFtZVswXSA9PSAiXyI6Ci0gICAgICAgICAgICByYWlzZSBBdHRy
aWJ1dGVFcnJvcigiTWFya2VyIG5hbWUgbXVzdCBOT1Qgc3RhcnQgd2l0aCB1bmRlcnNjb3JlIikK
LSAgICAgICAgaWYgc2VsZi5fY29uZmlnIGlzIG5vdCBOb25lOgotICAgICAgICAgICAgc2VsZi5f
Y2hlY2sobmFtZSkKLSAgICAgICAgcmV0dXJuIE1hcmtEZWNvcmF0b3IoTWFyayhuYW1lLCAoKSwg
e30pKQotCi0gICAgZGVmIF9jaGVjayhzZWxmLCBuYW1lKToKLSAgICAgICAgdHJ5OgotICAgICAg
ICAgICAgaWYgbmFtZSBpbiBzZWxmLl9tYXJrZXJzOgotICAgICAgICAgICAgICAgIHJldHVybgot
ICAgICAgICBleGNlcHQgQXR0cmlidXRlRXJyb3I6Ci0gICAgICAgICAgICBwYXNzCi0gICAgICAg
IHNlbGYuX21hcmtlcnMgPSB2YWx1ZXMgPSBzZXQoKQotICAgICAgICBmb3IgbGluZSBpbiBzZWxm
Ll9jb25maWcuZ2V0aW5pKCJtYXJrZXJzIik6Ci0gICAgICAgICAgICBtYXJrZXIgPSBsaW5lLnNw
bGl0KCI6IiwgMSlbMF0KLSAgICAgICAgICAgIG1hcmtlciA9IG1hcmtlci5yc3RyaXAoKQotICAg
ICAgICAgICAgeCA9IG1hcmtlci5zcGxpdCgiKCIsIDEpWzBdCi0gICAgICAgICAgICB2YWx1ZXMu
YWRkKHgpCi0gICAgICAgIGlmIG5hbWUgbm90IGluIHNlbGYuX21hcmtlcnM6Ci0gICAgICAgICAg
ICByYWlzZSBBdHRyaWJ1dGVFcnJvcigiJXIgbm90IGEgcmVnaXN0ZXJlZCBtYXJrZXIiICUgKG5h
bWUsKSkKLQotCi1kZWYgaXN0ZXN0ZnVuYyhmdW5jKToKLSAgICByZXR1cm4gaGFzYXR0cihmdW5j
LCAiX19jYWxsX18iKSBhbmQgXAotICAgICAgICBnZXRhdHRyKGZ1bmMsICJfX25hbWVfXyIsICI8
bGFtYmRhPiIpICE9ICI8bGFtYmRhPiIKLQotCi1AYXR0ci5zKGZyb3plbj1UcnVlKQotY2xhc3Mg
TWFyayhvYmplY3QpOgotICAgIG5hbWUgPSBhdHRyLmliKCkKLSAgICBhcmdzID0gYXR0ci5pYigp
Ci0gICAga3dhcmdzID0gYXR0ci5pYigpCi0KLSAgICBkZWYgY29tYmluZWRfd2l0aChzZWxmLCBv
dGhlcik6Ci0gICAgICAgIGFzc2VydCBzZWxmLm5hbWUgPT0gb3RoZXIubmFtZQotICAgICAgICBy
ZXR1cm4gTWFyaygKLSAgICAgICAgICAgIHNlbGYubmFtZSwgc2VsZi5hcmdzICsgb3RoZXIuYXJn
cywKLSAgICAgICAgICAgIGRpY3Qoc2VsZi5rd2FyZ3MsICoqb3RoZXIua3dhcmdzKSkKLQotCi1A
YXR0ci5zCi1jbGFzcyBNYXJrRGVjb3JhdG9yKG9iamVjdCk6Ci0gICAgIiIiIEEgZGVjb3JhdG9y
IGZvciB0ZXN0IGZ1bmN0aW9ucyBhbmQgdGVzdCBjbGFzc2VzLiAgV2hlbiBhcHBsaWVkCi0gICAg
aXQgd2lsbCBjcmVhdGUgOmNsYXNzOmBNYXJrSW5mb2Agb2JqZWN0cyB3aGljaCBtYXkgYmUKLSAg
ICA6cmVmOmByZXRyaWV2ZWQgYnkgaG9va3MgYXMgaXRlbSBrZXl3b3JkcyA8ZXhjb250cm9sc2tp
cD5gLgotICAgIE1hcmtEZWNvcmF0b3IgaW5zdGFuY2VzIGFyZSBvZnRlbiBjcmVhdGVkIGxpa2Ug
dGhpczo6Ci0KLSAgICAgICAgbWFyazEgPSBweXRlc3QubWFyay5OQU1FICAgICAgICAgICAgICAj
IHNpbXBsZSBNYXJrRGVjb3JhdG9yCi0gICAgICAgIG1hcmsyID0gcHl0ZXN0Lm1hcmsuTkFNRShu
YW1lMT12YWx1ZSkgIyBwYXJhbWV0cml6ZWQgTWFya0RlY29yYXRvcgotCi0gICAgYW5kIGNhbiB0
aGVuIGJlIGFwcGxpZWQgYXMgZGVjb3JhdG9ycyB0byB0ZXN0IGZ1bmN0aW9uczo6Ci0KLSAgICAg
ICAgQG1hcmsyCi0gICAgICAgIGRlZiB0ZXN0X2Z1bmN0aW9uKCk6Ci0gICAgICAgICAgICBwYXNz
Ci0KLSAgICBXaGVuIGEgTWFya0RlY29yYXRvciBpbnN0YW5jZSBpcyBjYWxsZWQgaXQgZG9lcyB0
aGUgZm9sbG93aW5nOgotICAgICAgMS4gSWYgY2FsbGVkIHdpdGggYSBzaW5nbGUgY2xhc3MgYXMg
aXRzIG9ubHkgcG9zaXRpb25hbCBhcmd1bWVudCBhbmQgbm8KLSAgICAgICAgIGFkZGl0aW9uYWwg
a2V5d29yZCBhcmd1bWVudHMsIGl0IGF0dGFjaGVzIGl0c2VsZiB0byB0aGUgY2xhc3Mgc28gaXQK
LSAgICAgICAgIGdldHMgYXBwbGllZCBhdXRvbWF0aWNhbGx5IHRvIGFsbCB0ZXN0IGNhc2VzIGZv
dW5kIGluIHRoYXQgY2xhc3MuCi0gICAgICAyLiBJZiBjYWxsZWQgd2l0aCBhIHNpbmdsZSBmdW5j
dGlvbiBhcyBpdHMgb25seSBwb3NpdGlvbmFsIGFyZ3VtZW50IGFuZAotICAgICAgICAgbm8gYWRk
aXRpb25hbCBrZXl3b3JkIGFyZ3VtZW50cywgaXQgYXR0YWNoZXMgYSBNYXJrSW5mbyBvYmplY3Qg
dG8gdGhlCi0gICAgICAgICBmdW5jdGlvbiwgY29udGFpbmluZyBhbGwgdGhlIGFyZ3VtZW50cyBh
bHJlYWR5IHN0b3JlZCBpbnRlcm5hbGx5IGluCi0gICAgICAgICB0aGUgTWFya0RlY29yYXRvci4K
LSAgICAgIDMuIFdoZW4gY2FsbGVkIGluIGFueSBvdGhlciBjYXNlLCBpdCBwZXJmb3JtcyBhICdm
YWtlIGNvbnN0cnVjdGlvbicgY2FsbCwKLSAgICAgICAgIGkuZS4gaXQgcmV0dXJucyBhIG5ldyBN
YXJrRGVjb3JhdG9yIGluc3RhbmNlIHdpdGggdGhlIG9yaWdpbmFsCi0gICAgICAgICBNYXJrRGVj
b3JhdG9yJ3MgY29udGVudCB1cGRhdGVkIHdpdGggdGhlIGFyZ3VtZW50cyBwYXNzZWQgdG8gdGhp
cwotICAgICAgICAgY2FsbC4KLQotICAgIE5vdGU6IFRoZSBydWxlcyBhYm92ZSBwcmV2ZW50IE1h
cmtEZWNvcmF0b3Igb2JqZWN0cyBmcm9tIHN0b3Jpbmcgb25seSBhCi0gICAgc2luZ2xlIGZ1bmN0
aW9uIG9yIGNsYXNzIHJlZmVyZW5jZSBhcyB0aGVpciBwb3NpdGlvbmFsIGFyZ3VtZW50IHdpdGgg
bm8KLSAgICBhZGRpdGlvbmFsIGtleXdvcmQgb3IgcG9zaXRpb25hbCBhcmd1bWVudHMuCi0KLSAg
ICAiIiIKLQotICAgIG1hcmsgPSBhdHRyLmliKHZhbGlkYXRvcj1hdHRyLnZhbGlkYXRvcnMuaW5z
dGFuY2Vfb2YoTWFyaykpCi0KLSAgICBuYW1lID0gYWxpYXMoJ21hcmsubmFtZScpCi0gICAgYXJn
cyA9IGFsaWFzKCdtYXJrLmFyZ3MnKQotICAgIGt3YXJncyA9IGFsaWFzKCdtYXJrLmt3YXJncycp
Ci0KLSAgICBAcHJvcGVydHkKLSAgICBkZWYgbWFya25hbWUoc2VsZik6Ci0gICAgICAgIHJldHVy
biBzZWxmLm5hbWUgICMgZm9yIGJhY2t3YXJkLWNvbXBhdCAoMi40LjEgaGFkIHRoaXMgYXR0cikK
LQotICAgIGRlZiBfX2VxX18oc2VsZiwgb3RoZXIpOgotICAgICAgICByZXR1cm4gc2VsZi5tYXJr
ID09IG90aGVyLm1hcmsgaWYgaXNpbnN0YW5jZShvdGhlciwgTWFya0RlY29yYXRvcikgZWxzZSBG
YWxzZQotCi0gICAgZGVmIF9fcmVwcl9fKHNlbGYpOgotICAgICAgICByZXR1cm4gIjxNYXJrRGVj
b3JhdG9yICVyPiIgJSAoc2VsZi5tYXJrLCkKLQotICAgIGRlZiB3aXRoX2FyZ3Moc2VsZiwgKmFy
Z3MsICoqa3dhcmdzKToKLSAgICAgICAgIiIiIHJldHVybiBhIE1hcmtEZWNvcmF0b3Igd2l0aCBl
eHRyYSBhcmd1bWVudHMgYWRkZWQKLQotICAgICAgICB1bmxpa2UgY2FsbCB0aGlzIGNhbiBiZSB1
c2VkIGV2ZW4gaWYgdGhlIHNvbGUgYXJndW1lbnQgaXMgYSBjYWxsYWJsZS9jbGFzcwotCi0gICAg
ICAgIDpyZXR1cm46IE1hcmtEZWNvcmF0b3IKLSAgICAgICAgIiIiCi0KLSAgICAgICAgbWFyayA9
IE1hcmsoc2VsZi5uYW1lLCBhcmdzLCBrd2FyZ3MpCi0gICAgICAgIHJldHVybiBzZWxmLl9fY2xh
c3NfXyhzZWxmLm1hcmsuY29tYmluZWRfd2l0aChtYXJrKSkKLQotICAgIGRlZiBfX2NhbGxfXyhz
ZWxmLCAqYXJncywgKiprd2FyZ3MpOgotICAgICAgICAiIiIgaWYgcGFzc2VkIGEgc2luZ2xlIGNh
bGxhYmxlIGFyZ3VtZW50OiBkZWNvcmF0ZSBpdCB3aXRoIG1hcmsgaW5mby4KLSAgICAgICAgICAg
IG90aGVyd2lzZSBhZGQgKmFyZ3MvKiprd2FyZ3MgaW4tcGxhY2UgdG8gbWFyayBpbmZvcm1hdGlv
bi4gIiIiCi0gICAgICAgIGlmIGFyZ3MgYW5kIG5vdCBrd2FyZ3M6Ci0gICAgICAgICAgICBmdW5j
ID0gYXJnc1swXQotICAgICAgICAgICAgaXNfY2xhc3MgPSBpbnNwZWN0LmlzY2xhc3MoZnVuYykK
LSAgICAgICAgICAgIGlmIGxlbihhcmdzKSA9PSAxIGFuZCAoaXN0ZXN0ZnVuYyhmdW5jKSBvciBp
c19jbGFzcyk6Ci0gICAgICAgICAgICAgICAgaWYgaXNfY2xhc3M6Ci0gICAgICAgICAgICAgICAg
ICAgIHN0b3JlX21hcmsoZnVuYywgc2VsZi5tYXJrKQotICAgICAgICAgICAgICAgIGVsc2U6Ci0g
ICAgICAgICAgICAgICAgICAgIHN0b3JlX2xlZ2FjeV9tYXJraW5mbyhmdW5jLCBzZWxmLm1hcmsp
Ci0gICAgICAgICAgICAgICAgICAgIHN0b3JlX21hcmsoZnVuYywgc2VsZi5tYXJrKQotICAgICAg
ICAgICAgICAgIHJldHVybiBmdW5jCi0gICAgICAgIHJldHVybiBzZWxmLndpdGhfYXJncygqYXJn
cywgKiprd2FyZ3MpCi0KLQotZGVmIGdldF91bnBhY2tlZF9tYXJrcyhvYmopOgotICAgICIiIgot
ICAgIG9idGFpbiB0aGUgdW5wYWNrZWQgbWFya3MgdGhhdCBhcmUgc3RvcmVkIG9uIGEgb2JqZWN0
Ci0gICAgIiIiCi0gICAgbWFya19saXN0ID0gZ2V0YXR0cihvYmosICdweXRlc3RtYXJrJywgW10p
Ci0KLSAgICBpZiBub3QgaXNpbnN0YW5jZShtYXJrX2xpc3QsIGxpc3QpOgotICAgICAgICBtYXJr
X2xpc3QgPSBbbWFya19saXN0XQotICAgIHJldHVybiBbCi0gICAgICAgIGdldGF0dHIobWFyaywg
J21hcmsnLCBtYXJrKSAgIyB1bnBhY2sgTWFya0RlY29yYXRvcgotICAgICAgICBmb3IgbWFyayBp
biBtYXJrX2xpc3QKLSAgICBdCi0KLQotZGVmIHN0b3JlX21hcmsob2JqLCBtYXJrKToKLSAgICAi
IiJzdG9yZSBhIE1hcmsgb24gYSBvYmplY3QKLSAgICB0aGlzIGlzIHVzZWQgdG8gaW1wbGVtZW50
IHRoZSBNYXJrIGRlY2xhcmF0aW9ucy9kZWNvcmF0b3JzIGNvcnJlY3RseQotICAgICIiIgotICAg
IGFzc2VydCBpc2luc3RhbmNlKG1hcmssIE1hcmspLCBtYXJrCi0gICAgIyBhbHdheXMgcmVhc3Np
Z24gbmFtZSB0byBhdm9pZCB1cGRhdGluZyBweXRlc3RtYXJrCi0gICAgIyBpbiBhIHJlZmVyZW5j
ZSB0aGF0IHdhcyBvbmx5IGJvcnJvd2VkCi0gICAgb2JqLnB5dGVzdG1hcmsgPSBnZXRfdW5wYWNr
ZWRfbWFya3Mob2JqKSArIFttYXJrXQotCi0KLWRlZiBzdG9yZV9sZWdhY3lfbWFya2luZm8oZnVu
YywgbWFyayk6Ci0gICAgIiIiY3JlYXRlIHRoZSBsZWdhY3kgTWFya0luZm8gb2JqZWN0cyBhbmQg
cHV0IHRoZW0gb250byB0aGUgZnVuY3Rpb24KLSAgICAiIiIKLSAgICBpZiBub3QgaXNpbnN0YW5j
ZShtYXJrLCBNYXJrKToKLSAgICAgICAgcmFpc2UgVHlwZUVycm9yKCJnb3Qge21hcmshcn0gaW5z
dGVhZCBvZiBhIE1hcmsiLmZvcm1hdChtYXJrPW1hcmspKQotICAgIGhvbGRlciA9IGdldGF0dHIo
ZnVuYywgbWFyay5uYW1lLCBOb25lKQotICAgIGlmIGhvbGRlciBpcyBOb25lOgotICAgICAgICBo
b2xkZXIgPSBNYXJrSW5mbyhtYXJrKQotICAgICAgICBzZXRhdHRyKGZ1bmMsIG1hcmsubmFtZSwg
aG9sZGVyKQotICAgIGVsc2U6Ci0gICAgICAgIGhvbGRlci5hZGRfbWFyayhtYXJrKQotCi0KLWNs
YXNzIE1hcmtJbmZvKG9iamVjdCk6Ci0gICAgIiIiIE1hcmtpbmcgb2JqZWN0IGNyZWF0ZWQgYnkg
OmNsYXNzOmBNYXJrRGVjb3JhdG9yYCBpbnN0YW5jZXMuICIiIgotCi0gICAgZGVmIF9faW5pdF9f
KHNlbGYsIG1hcmspOgotICAgICAgICBhc3NlcnQgaXNpbnN0YW5jZShtYXJrLCBNYXJrKSwgcmVw
cihtYXJrKQotICAgICAgICBzZWxmLmNvbWJpbmVkID0gbWFyawotICAgICAgICBzZWxmLl9tYXJr
cyA9IFttYXJrXQotCi0gICAgbmFtZSA9IGFsaWFzKCdjb21iaW5lZC5uYW1lJykKLSAgICBhcmdz
ID0gYWxpYXMoJ2NvbWJpbmVkLmFyZ3MnKQotICAgIGt3YXJncyA9IGFsaWFzKCdjb21iaW5lZC5r
d2FyZ3MnKQotCi0gICAgZGVmIF9fcmVwcl9fKHNlbGYpOgotICAgICAgICByZXR1cm4gIjxNYXJr
SW5mbyB7MCFyfT4iLmZvcm1hdChzZWxmLmNvbWJpbmVkKQotCi0gICAgZGVmIGFkZF9tYXJrKHNl
bGYsIG1hcmspOgotICAgICAgICAiIiIgYWRkIGEgTWFya0luZm8gd2l0aCB0aGUgZ2l2ZW4gYXJn
cyBhbmQga3dhcmdzLiAiIiIKLSAgICAgICAgc2VsZi5fbWFya3MuYXBwZW5kKG1hcmspCi0gICAg
ICAgIHNlbGYuY29tYmluZWQgPSBzZWxmLmNvbWJpbmVkLmNvbWJpbmVkX3dpdGgobWFyaykKLQot
ICAgIGRlZiBfX2l0ZXJfXyhzZWxmKToKLSAgICAgICAgIiIiIHlpZWxkIE1hcmtJbmZvIG9iamVj
dHMgZWFjaCByZWxhdGluZyB0byBhIG1hcmtpbmctY2FsbC4gIiIiCi0gICAgICAgIHJldHVybiBt
YXAoTWFya0luZm8sIHNlbGYuX21hcmtzKQotCi0KLU1BUktfR0VOID0gTWFya0dlbmVyYXRvcigp
Ci0KLQotZGVmIF9tYXJrZWQoZnVuYywgbWFyayk6Ci0gICAgIiIiIFJldHVybnMgVHJ1ZSBpZiA6
ZnVuYzogaXMgYWxyZWFkeSBtYXJrZWQgd2l0aCA6bWFyazosIEZhbHNlIG90aGVyd2lzZS4KLSAg
ICBUaGlzIGNhbiBoYXBwZW4gaWYgbWFya2VyIGlzIGFwcGxpZWQgdG8gY2xhc3MgYW5kIHRoZSB0
ZXN0IGZpbGUgaXMKLSAgICBpbnZva2VkIG1vcmUgdGhhbiBvbmNlLgotICAgICIiIgotICAgIHRy
eToKLSAgICAgICAgZnVuY19tYXJrID0gZ2V0YXR0cihmdW5jLCBtYXJrLm5hbWUpCi0gICAgZXhj
ZXB0IEF0dHJpYnV0ZUVycm9yOgotICAgICAgICByZXR1cm4gRmFsc2UKLSAgICByZXR1cm4gbWFy
ay5hcmdzID09IGZ1bmNfbWFyay5hcmdzIGFuZCBtYXJrLmt3YXJncyA9PSBmdW5jX21hcmsua3dh
cmdzCi0KLQotZGVmIHRyYW5zZmVyX21hcmtlcnMoZnVuY29iaiwgY2xzLCBtb2QpOgotICAgICIi
IgotICAgIHRoaXMgZnVuY3Rpb24gdHJhbnNmZXJzIGNsYXNzIGxldmVsIG1hcmtlcnMgYW5kIG1v
ZHVsZSBsZXZlbCBtYXJrZXJzCi0gICAgaW50byBmdW5jdGlvbiBsZXZlbCBtYXJraW5mbyBvYmpl
Y3RzCi0KLSAgICB0aGlzIGlzIHRoZSBtYWluIHJlYXNvbiB3aHkgbWFya3MgYXJlIHNvIGJyb2tl
bgotICAgIHRoZSByZXNvbHV0aW9uIHdpbGwgaW52b2x2ZSBwaGFzaW5nIG91dCBmdW5jdGlvbiBs
ZXZlbCBNYXJrSW5mbyBvYmplY3RzCi0KLSAgICAiIiIKLSAgICBmb3Igb2JqIGluIChjbHMsIG1v
ZCk6Ci0gICAgICAgIGZvciBtYXJrIGluIGdldF91bnBhY2tlZF9tYXJrcyhvYmopOgotICAgICAg
ICAgICAgaWYgbm90IF9tYXJrZWQoZnVuY29iaiwgbWFyayk6Ci0gICAgICAgICAgICAgICAgc3Rv
cmVfbGVnYWN5X21hcmtpbmZvKGZ1bmNvYmosIG1hcmspCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVz
dC9fcHl0ZXN0L21vbmtleXBhdGNoLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvX3B5dGVzdC9tb25rZXlwYXRj
aC5weQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNDBhZTU2MGYwNzAyYjEzNjBhMzA5
ZDkxNDczMDI5MDNiMTE3NGU2Yy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9fcHl0ZXN0L21vbmtleXBhdGNoLnB5CisrKyAvZGV2L251
bGwKQEAgLTEsMjU4ICswLDAgQEAKLSIiIiBtb25rZXlwYXRjaGluZyBhbmQgbW9ja2luZyBmdW5j
dGlvbmFsaXR5LiAgIiIiCi1mcm9tIF9fZnV0dXJlX18gaW1wb3J0IGFic29sdXRlX2ltcG9ydCwg
ZGl2aXNpb24sIHByaW50X2Z1bmN0aW9uCi0KLWltcG9ydCBvcwotaW1wb3J0IHN5cwotaW1wb3J0
IHJlCi1pbXBvcnQgc2l4Ci1mcm9tIF9weXRlc3QuZml4dHVyZXMgaW1wb3J0IGZpeHR1cmUKLQot
UkVfSU1QT1JUX0VSUk9SX05BTUUgPSByZS5jb21waWxlKCJeTm8gbW9kdWxlIG5hbWVkICguKikk
IikKLQotCi1AZml4dHVyZQotZGVmIG1vbmtleXBhdGNoKCk6Ci0gICAgIiIiVGhlIHJldHVybmVk
IGBgbW9ua2V5cGF0Y2hgYCBmaXh0dXJlIHByb3ZpZGVzIHRoZXNlCi0gICAgaGVscGVyIG1ldGhv
ZHMgdG8gbW9kaWZ5IG9iamVjdHMsIGRpY3Rpb25hcmllcyBvciBvcy5lbnZpcm9uOjoKLQotICAg
ICAgICBtb25rZXlwYXRjaC5zZXRhdHRyKG9iaiwgbmFtZSwgdmFsdWUsIHJhaXNpbmc9VHJ1ZSkK
LSAgICAgICAgbW9ua2V5cGF0Y2guZGVsYXR0cihvYmosIG5hbWUsIHJhaXNpbmc9VHJ1ZSkKLSAg
ICAgICAgbW9ua2V5cGF0Y2guc2V0aXRlbShtYXBwaW5nLCBuYW1lLCB2YWx1ZSkKLSAgICAgICAg
bW9ua2V5cGF0Y2guZGVsaXRlbShvYmosIG5hbWUsIHJhaXNpbmc9VHJ1ZSkKLSAgICAgICAgbW9u
a2V5cGF0Y2guc2V0ZW52KG5hbWUsIHZhbHVlLCBwcmVwZW5kPUZhbHNlKQotICAgICAgICBtb25r
ZXlwYXRjaC5kZWxlbnYobmFtZSwgdmFsdWUsIHJhaXNpbmc9VHJ1ZSkKLSAgICAgICAgbW9ua2V5
cGF0Y2guc3lzcGF0aF9wcmVwZW5kKHBhdGgpCi0gICAgICAgIG1vbmtleXBhdGNoLmNoZGlyKHBh
dGgpCi0KLSAgICBBbGwgbW9kaWZpY2F0aW9ucyB3aWxsIGJlIHVuZG9uZSBhZnRlciB0aGUgcmVx
dWVzdGluZwotICAgIHRlc3QgZnVuY3Rpb24gb3IgZml4dHVyZSBoYXMgZmluaXNoZWQuIFRoZSBg
YHJhaXNpbmdgYAotICAgIHBhcmFtZXRlciBkZXRlcm1pbmVzIGlmIGEgS2V5RXJyb3Igb3IgQXR0
cmlidXRlRXJyb3IKLSAgICB3aWxsIGJlIHJhaXNlZCBpZiB0aGUgc2V0L2RlbGV0aW9uIG9wZXJh
dGlvbiBoYXMgbm8gdGFyZ2V0LgotICAgICIiIgotICAgIG1wYXRjaCA9IE1vbmtleVBhdGNoKCkK
LSAgICB5aWVsZCBtcGF0Y2gKLSAgICBtcGF0Y2gudW5kbygpCi0KLQotZGVmIHJlc29sdmUobmFt
ZSk6Ci0gICAgIyBzaW1wbGlmaWVkIGZyb20gem9wZS5kb3R0ZWRuYW1lCi0gICAgcGFydHMgPSBu
YW1lLnNwbGl0KCcuJykKLQotICAgIHVzZWQgPSBwYXJ0cy5wb3AoMCkKLSAgICBmb3VuZCA9IF9f
aW1wb3J0X18odXNlZCkKLSAgICBmb3IgcGFydCBpbiBwYXJ0czoKLSAgICAgICAgdXNlZCArPSAn
LicgKyBwYXJ0Ci0gICAgICAgIHRyeToKLSAgICAgICAgICAgIGZvdW5kID0gZ2V0YXR0cihmb3Vu
ZCwgcGFydCkKLSAgICAgICAgZXhjZXB0IEF0dHJpYnV0ZUVycm9yOgotICAgICAgICAgICAgcGFz
cwotICAgICAgICBlbHNlOgotICAgICAgICAgICAgY29udGludWUKLSAgICAgICAgIyB3ZSB1c2Ug
ZXhwbGljaXQgdW4tbmVzdGluZyBvZiB0aGUgaGFuZGxpbmcgYmxvY2sgaW4gb3JkZXIKLSAgICAg
ICAgIyB0byBhdm9pZCBuZXN0ZWQgZXhjZXB0aW9ucyBvbiBweXRob24gMwotICAgICAgICB0cnk6
Ci0gICAgICAgICAgICBfX2ltcG9ydF9fKHVzZWQpCi0gICAgICAgIGV4Y2VwdCBJbXBvcnRFcnJv
ciBhcyBleDoKLSAgICAgICAgICAgICMgc3RyIGlzIHVzZWQgZm9yIHB5MiB2cyBweTMKLSAgICAg
ICAgICAgIGV4cGVjdGVkID0gc3RyKGV4KS5zcGxpdCgpWy0xXQotICAgICAgICAgICAgaWYgZXhw
ZWN0ZWQgPT0gdXNlZDoKLSAgICAgICAgICAgICAgICByYWlzZQotICAgICAgICAgICAgZWxzZToK
LSAgICAgICAgICAgICAgICByYWlzZSBJbXBvcnRFcnJvcigKLSAgICAgICAgICAgICAgICAgICAg
J2ltcG9ydCBlcnJvciBpbiAlczogJXMnICUgKHVzZWQsIGV4KQotICAgICAgICAgICAgICAgICkK
LSAgICAgICAgZm91bmQgPSBhbm5vdGF0ZWRfZ2V0YXR0cihmb3VuZCwgcGFydCwgdXNlZCkKLSAg
ICByZXR1cm4gZm91bmQKLQotCi1kZWYgYW5ub3RhdGVkX2dldGF0dHIob2JqLCBuYW1lLCBhbm4p
OgotICAgIHRyeToKLSAgICAgICAgb2JqID0gZ2V0YXR0cihvYmosIG5hbWUpCi0gICAgZXhjZXB0
IEF0dHJpYnV0ZUVycm9yOgotICAgICAgICByYWlzZSBBdHRyaWJ1dGVFcnJvcigKLSAgICAgICAg
ICAgICclciBvYmplY3QgYXQgJXMgaGFzIG5vIGF0dHJpYnV0ZSAlcicgJSAoCi0gICAgICAgICAg
ICAgICAgdHlwZShvYmopLl9fbmFtZV9fLCBhbm4sIG5hbWUKLSAgICAgICAgICAgICkKLSAgICAg
ICAgKQotICAgIHJldHVybiBvYmoKLQotCi1kZWYgZGVyaXZlX2ltcG9ydHBhdGgoaW1wb3J0X3Bh
dGgsIHJhaXNpbmcpOgotICAgIGlmIG5vdCBpc2luc3RhbmNlKGltcG9ydF9wYXRoLCBzaXguc3Ry
aW5nX3R5cGVzKSBvciAiLiIgbm90IGluIGltcG9ydF9wYXRoOgotICAgICAgICByYWlzZSBUeXBl
RXJyb3IoIm11c3QgYmUgYWJzb2x1dGUgaW1wb3J0IHBhdGggc3RyaW5nLCBub3QgJXIiICUKLSAg
ICAgICAgICAgICAgICAgICAgICAgIChpbXBvcnRfcGF0aCwpKQotICAgIG1vZHVsZSwgYXR0ciA9
IGltcG9ydF9wYXRoLnJzcGxpdCgnLicsIDEpCi0gICAgdGFyZ2V0ID0gcmVzb2x2ZShtb2R1bGUp
Ci0gICAgaWYgcmFpc2luZzoKLSAgICAgICAgYW5ub3RhdGVkX2dldGF0dHIodGFyZ2V0LCBhdHRy
LCBhbm49bW9kdWxlKQotICAgIHJldHVybiBhdHRyLCB0YXJnZXQKLQotCi1jbGFzcyBOb3RzZXQ6
Ci0gICAgZGVmIF9fcmVwcl9fKHNlbGYpOgotICAgICAgICByZXR1cm4gIjxub3RzZXQ+IgotCi0K
LW5vdHNldCA9IE5vdHNldCgpCi0KLQotY2xhc3MgTW9ua2V5UGF0Y2g6Ci0gICAgIiIiIE9iamVj
dCByZXR1cm5lZCBieSB0aGUgYGBtb25rZXlwYXRjaGBgIGZpeHR1cmUga2VlcGluZyBhIHJlY29y
ZCBvZiBzZXRhdHRyL2l0ZW0vZW52L3N5c3BhdGggY2hhbmdlcy4KLSAgICAiIiIKLQotICAgIGRl
ZiBfX2luaXRfXyhzZWxmKToKLSAgICAgICAgc2VsZi5fc2V0YXR0ciA9IFtdCi0gICAgICAgIHNl
bGYuX3NldGl0ZW0gPSBbXQotICAgICAgICBzZWxmLl9jd2QgPSBOb25lCi0gICAgICAgIHNlbGYu
X3NhdmVzeXNwYXRoID0gTm9uZQotCi0gICAgZGVmIHNldGF0dHIoc2VsZiwgdGFyZ2V0LCBuYW1l
LCB2YWx1ZT1ub3RzZXQsIHJhaXNpbmc9VHJ1ZSk6Ci0gICAgICAgICIiIiBTZXQgYXR0cmlidXRl
IHZhbHVlIG9uIHRhcmdldCwgbWVtb3JpemluZyB0aGUgb2xkIHZhbHVlLgotICAgICAgICBCeSBk
ZWZhdWx0IHJhaXNlIEF0dHJpYnV0ZUVycm9yIGlmIHRoZSBhdHRyaWJ1dGUgZGlkIG5vdCBleGlz
dC4KLQotICAgICAgICBGb3IgY29udmVuaWVuY2UgeW91IGNhbiBzcGVjaWZ5IGEgc3RyaW5nIGFz
IGBgdGFyZ2V0YGAgd2hpY2gKLSAgICAgICAgd2lsbCBiZSBpbnRlcnByZXRlZCBhcyBhIGRvdHRl
ZCBpbXBvcnQgcGF0aCwgd2l0aCB0aGUgbGFzdCBwYXJ0Ci0gICAgICAgIGJlaW5nIHRoZSBhdHRy
aWJ1dGUgbmFtZS4gIEV4YW1wbGU6Ci0gICAgICAgIGBgbW9ua2V5cGF0Y2guc2V0YXR0cigib3Mu
Z2V0Y3dkIiwgbGFtYmRhIHg6ICIvIilgYAotICAgICAgICB3b3VsZCBzZXQgdGhlIGBgZ2V0Y3dk
YGAgZnVuY3Rpb24gb2YgdGhlIGBgb3NgYCBtb2R1bGUuCi0KLSAgICAgICAgVGhlIGBgcmFpc2lu
Z2BgIHZhbHVlIGRldGVybWluZXMgaWYgdGhlIHNldGF0dHIgc2hvdWxkIGZhaWwKLSAgICAgICAg
aWYgdGhlIGF0dHJpYnV0ZSBpcyBub3QgYWxyZWFkeSBwcmVzZW50IChkZWZhdWx0cyB0byBUcnVl
Ci0gICAgICAgIHdoaWNoIG1lYW5zIGl0IHdpbGwgcmFpc2UpLgotICAgICAgICAiIiIKLSAgICAg
ICAgX190cmFjZWJhY2toaWRlX18gPSBUcnVlCi0gICAgICAgIGltcG9ydCBpbnNwZWN0Ci0KLSAg
ICAgICAgaWYgdmFsdWUgaXMgbm90c2V0OgotICAgICAgICAgICAgaWYgbm90IGlzaW5zdGFuY2Uo
dGFyZ2V0LCBzaXguc3RyaW5nX3R5cGVzKToKLSAgICAgICAgICAgICAgICByYWlzZSBUeXBlRXJy
b3IoInVzZSBzZXRhdHRyKHRhcmdldCwgbmFtZSwgdmFsdWUpIG9yICIKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgInNldGF0dHIodGFyZ2V0LCB2YWx1ZSkgd2l0aCB0YXJnZXQgYmVp
bmcgYSBkb3R0ZWQgIgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiaW1wb3J0IHN0
cmluZyIpCi0gICAgICAgICAgICB2YWx1ZSA9IG5hbWUKLSAgICAgICAgICAgIG5hbWUsIHRhcmdl
dCA9IGRlcml2ZV9pbXBvcnRwYXRoKHRhcmdldCwgcmFpc2luZykKLQotICAgICAgICBvbGR2YWwg
PSBnZXRhdHRyKHRhcmdldCwgbmFtZSwgbm90c2V0KQotICAgICAgICBpZiByYWlzaW5nIGFuZCBv
bGR2YWwgaXMgbm90c2V0OgotICAgICAgICAgICAgcmFpc2UgQXR0cmlidXRlRXJyb3IoIiVyIGhh
cyBubyBhdHRyaWJ1dGUgJXIiICUgKHRhcmdldCwgbmFtZSkpCi0KLSAgICAgICAgIyBhdm9pZCBj
bGFzcyBkZXNjcmlwdG9ycyBsaWtlIHN0YXRpY21ldGhvZC9jbGFzc21ldGhvZAotICAgICAgICBp
ZiBpbnNwZWN0LmlzY2xhc3ModGFyZ2V0KToKLSAgICAgICAgICAgIG9sZHZhbCA9IHRhcmdldC5f
X2RpY3RfXy5nZXQobmFtZSwgbm90c2V0KQotICAgICAgICBzZWxmLl9zZXRhdHRyLmFwcGVuZCgo
dGFyZ2V0LCBuYW1lLCBvbGR2YWwpKQotICAgICAgICBzZXRhdHRyKHRhcmdldCwgbmFtZSwgdmFs
dWUpCi0KLSAgICBkZWYgZGVsYXR0cihzZWxmLCB0YXJnZXQsIG5hbWU9bm90c2V0LCByYWlzaW5n
PVRydWUpOgotICAgICAgICAiIiIgRGVsZXRlIGF0dHJpYnV0ZSBgYG5hbWVgYCBmcm9tIGBgdGFy
Z2V0YGAsIGJ5IGRlZmF1bHQgcmFpc2UKLSAgICAgICAgQXR0cmlidXRlRXJyb3IgaXQgdGhlIGF0
dHJpYnV0ZSBkaWQgbm90IHByZXZpb3VzbHkgZXhpc3QuCi0KLSAgICAgICAgSWYgbm8gYGBuYW1l
YGAgaXMgc3BlY2lmaWVkIGFuZCBgYHRhcmdldGBgIGlzIGEgc3RyaW5nCi0gICAgICAgIGl0IHdp
bGwgYmUgaW50ZXJwcmV0ZWQgYXMgYSBkb3R0ZWQgaW1wb3J0IHBhdGggd2l0aCB0aGUKLSAgICAg
ICAgbGFzdCBwYXJ0IGJlaW5nIHRoZSBhdHRyaWJ1dGUgbmFtZS4KLQotICAgICAgICBJZiBgYHJh
aXNpbmdgYCBpcyBzZXQgdG8gRmFsc2UsIG5vIGV4Y2VwdGlvbiB3aWxsIGJlIHJhaXNlZCBpZiB0
aGUKLSAgICAgICAgYXR0cmlidXRlIGlzIG1pc3NpbmcuCi0gICAgICAgICIiIgotICAgICAgICBf
X3RyYWNlYmFja2hpZGVfXyA9IFRydWUKLSAgICAgICAgaWYgbmFtZSBpcyBub3RzZXQ6Ci0gICAg
ICAgICAgICBpZiBub3QgaXNpbnN0YW5jZSh0YXJnZXQsIHNpeC5zdHJpbmdfdHlwZXMpOgotICAg
ICAgICAgICAgICAgIHJhaXNlIFR5cGVFcnJvcigidXNlIGRlbGF0dHIodGFyZ2V0LCBuYW1lKSBv
ciAiCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJkZWxhdHRyKHRhcmdldCkgd2l0
aCB0YXJnZXQgYmVpbmcgYSBkb3R0ZWQgIgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAiaW1wb3J0IHN0cmluZyIpCi0gICAgICAgICAgICBuYW1lLCB0YXJnZXQgPSBkZXJpdmVfaW1w
b3J0cGF0aCh0YXJnZXQsIHJhaXNpbmcpCi0KLSAgICAgICAgaWYgbm90IGhhc2F0dHIodGFyZ2V0
LCBuYW1lKToKLSAgICAgICAgICAgIGlmIHJhaXNpbmc6Ci0gICAgICAgICAgICAgICAgcmFpc2Ug
QXR0cmlidXRlRXJyb3IobmFtZSkKLSAgICAgICAgZWxzZToKLSAgICAgICAgICAgIHNlbGYuX3Nl
dGF0dHIuYXBwZW5kKCh0YXJnZXQsIG5hbWUsIGdldGF0dHIodGFyZ2V0LCBuYW1lLCBub3RzZXQp
KSkKLSAgICAgICAgICAgIGRlbGF0dHIodGFyZ2V0LCBuYW1lKQotCi0gICAgZGVmIHNldGl0ZW0o
c2VsZiwgZGljLCBuYW1lLCB2YWx1ZSk6Ci0gICAgICAgICIiIiBTZXQgZGljdGlvbmFyeSBlbnRy
eSBgYG5hbWVgYCB0byB2YWx1ZS4gIiIiCi0gICAgICAgIHNlbGYuX3NldGl0ZW0uYXBwZW5kKChk
aWMsIG5hbWUsIGRpYy5nZXQobmFtZSwgbm90c2V0KSkpCi0gICAgICAgIGRpY1tuYW1lXSA9IHZh
bHVlCi0KLSAgICBkZWYgZGVsaXRlbShzZWxmLCBkaWMsIG5hbWUsIHJhaXNpbmc9VHJ1ZSk6Ci0g
ICAgICAgICIiIiBEZWxldGUgYGBuYW1lYGAgZnJvbSBkaWN0LiBSYWlzZSBLZXlFcnJvciBpZiBp
dCBkb2Vzbid0IGV4aXN0LgotCi0gICAgICAgIElmIGBgcmFpc2luZ2BgIGlzIHNldCB0byBGYWxz
ZSwgbm8gZXhjZXB0aW9uIHdpbGwgYmUgcmFpc2VkIGlmIHRoZQotICAgICAgICBrZXkgaXMgbWlz
c2luZy4KLSAgICAgICAgIiIiCi0gICAgICAgIGlmIG5hbWUgbm90IGluIGRpYzoKLSAgICAgICAg
ICAgIGlmIHJhaXNpbmc6Ci0gICAgICAgICAgICAgICAgcmFpc2UgS2V5RXJyb3IobmFtZSkKLSAg
ICAgICAgZWxzZToKLSAgICAgICAgICAgIHNlbGYuX3NldGl0ZW0uYXBwZW5kKChkaWMsIG5hbWUs
IGRpYy5nZXQobmFtZSwgbm90c2V0KSkpCi0gICAgICAgICAgICBkZWwgZGljW25hbWVdCi0KLSAg
ICBkZWYgc2V0ZW52KHNlbGYsIG5hbWUsIHZhbHVlLCBwcmVwZW5kPU5vbmUpOgotICAgICAgICAi
IiIgU2V0IGVudmlyb25tZW50IHZhcmlhYmxlIGBgbmFtZWBgIHRvIGBgdmFsdWVgYC4gIElmIGBg
cHJlcGVuZGBgCi0gICAgICAgIGlzIGEgY2hhcmFjdGVyLCByZWFkIHRoZSBjdXJyZW50IGVudmly
b25tZW50IHZhcmlhYmxlIHZhbHVlCi0gICAgICAgIGFuZCBwcmVwZW5kIHRoZSBgYHZhbHVlYGAg
YWRqb2luZWQgd2l0aCB0aGUgYGBwcmVwZW5kYGAgY2hhcmFjdGVyLiIiIgotICAgICAgICB2YWx1
ZSA9IHN0cih2YWx1ZSkKLSAgICAgICAgaWYgcHJlcGVuZCBhbmQgbmFtZSBpbiBvcy5lbnZpcm9u
OgotICAgICAgICAgICAgdmFsdWUgPSB2YWx1ZSArIHByZXBlbmQgKyBvcy5lbnZpcm9uW25hbWVd
Ci0gICAgICAgIHNlbGYuc2V0aXRlbShvcy5lbnZpcm9uLCBuYW1lLCB2YWx1ZSkKLQotICAgIGRl
ZiBkZWxlbnYoc2VsZiwgbmFtZSwgcmFpc2luZz1UcnVlKToKLSAgICAgICAgIiIiIERlbGV0ZSBg
YG5hbWVgYCBmcm9tIHRoZSBlbnZpcm9ubWVudC4gUmFpc2UgS2V5RXJyb3IgaXQgZG9lcyBub3QK
LSAgICAgICAgZXhpc3QuCi0KLSAgICAgICAgSWYgYGByYWlzaW5nYGAgaXMgc2V0IHRvIEZhbHNl
LCBubyBleGNlcHRpb24gd2lsbCBiZSByYWlzZWQgaWYgdGhlCi0gICAgICAgIGVudmlyb25tZW50
IHZhcmlhYmxlIGlzIG1pc3NpbmcuCi0gICAgICAgICIiIgotICAgICAgICBzZWxmLmRlbGl0ZW0o
b3MuZW52aXJvbiwgbmFtZSwgcmFpc2luZz1yYWlzaW5nKQotCi0gICAgZGVmIHN5c3BhdGhfcHJl
cGVuZChzZWxmLCBwYXRoKToKLSAgICAgICAgIiIiIFByZXBlbmQgYGBwYXRoYGAgdG8gYGBzeXMu
cGF0aGBgIGxpc3Qgb2YgaW1wb3J0IGxvY2F0aW9ucy4gIiIiCi0gICAgICAgIGlmIHNlbGYuX3Nh
dmVzeXNwYXRoIGlzIE5vbmU6Ci0gICAgICAgICAgICBzZWxmLl9zYXZlc3lzcGF0aCA9IHN5cy5w
YXRoWzpdCi0gICAgICAgIHN5cy5wYXRoLmluc2VydCgwLCBzdHIocGF0aCkpCi0KLSAgICBkZWYg
Y2hkaXIoc2VsZiwgcGF0aCk6Ci0gICAgICAgICIiIiBDaGFuZ2UgdGhlIGN1cnJlbnQgd29ya2lu
ZyBkaXJlY3RvcnkgdG8gdGhlIHNwZWNpZmllZCBwYXRoLgotICAgICAgICBQYXRoIGNhbiBiZSBh
IHN0cmluZyBvciBhIHB5LnBhdGgubG9jYWwgb2JqZWN0LgotICAgICAgICAiIiIKLSAgICAgICAg
aWYgc2VsZi5fY3dkIGlzIE5vbmU6Ci0gICAgICAgICAgICBzZWxmLl9jd2QgPSBvcy5nZXRjd2Qo
KQotICAgICAgICBpZiBoYXNhdHRyKHBhdGgsICJjaGRpciIpOgotICAgICAgICAgICAgcGF0aC5j
aGRpcigpCi0gICAgICAgIGVsc2U6Ci0gICAgICAgICAgICBvcy5jaGRpcihwYXRoKQotCi0gICAg
ZGVmIHVuZG8oc2VsZik6Ci0gICAgICAgICIiIiBVbmRvIHByZXZpb3VzIGNoYW5nZXMuICBUaGlz
IGNhbGwgY29uc3VtZXMgdGhlCi0gICAgICAgIHVuZG8gc3RhY2suIENhbGxpbmcgaXQgYSBzZWNv
bmQgdGltZSBoYXMgbm8gZWZmZWN0IHVubGVzcwotICAgICAgICB5b3UgZG8gbW9yZSBtb25rZXlw
YXRjaGluZyBhZnRlciB0aGUgdW5kbyBjYWxsLgotCi0gICAgICAgIFRoZXJlIGlzIGdlbmVyYWxs
eSBubyBuZWVkIHRvIGNhbGwgYHVuZG8oKWAsIHNpbmNlIGl0IGlzCi0gICAgICAgIGNhbGxlZCBh
dXRvbWF0aWNhbGx5IGR1cmluZyB0ZWFyLWRvd24uCi0KLSAgICAgICAgTm90ZSB0aGF0IHRoZSBz
YW1lIGBtb25rZXlwYXRjaGAgZml4dHVyZSBpcyB1c2VkIGFjcm9zcyBhCi0gICAgICAgIHNpbmds
ZSB0ZXN0IGZ1bmN0aW9uIGludm9jYXRpb24uIElmIGBtb25rZXlwYXRjaGAgaXMgdXNlZCBib3Ro
IGJ5Ci0gICAgICAgIHRoZSB0ZXN0IGZ1bmN0aW9uIGl0c2VsZiBhbmQgb25lIG9mIHRoZSB0ZXN0
IGZpeHR1cmVzLAotICAgICAgICBjYWxsaW5nIGB1bmRvKClgIHdpbGwgdW5kbyBhbGwgb2YgdGhl
IGNoYW5nZXMgbWFkZSBpbgotICAgICAgICBib3RoIGZ1bmN0aW9ucy4KLSAgICAgICAgIiIiCi0g
ICAgICAgIGZvciBvYmosIG5hbWUsIHZhbHVlIGluIHJldmVyc2VkKHNlbGYuX3NldGF0dHIpOgot
ICAgICAgICAgICAgaWYgdmFsdWUgaXMgbm90IG5vdHNldDoKLSAgICAgICAgICAgICAgICBzZXRh
dHRyKG9iaiwgbmFtZSwgdmFsdWUpCi0gICAgICAgICAgICBlbHNlOgotICAgICAgICAgICAgICAg
IGRlbGF0dHIob2JqLCBuYW1lKQotICAgICAgICBzZWxmLl9zZXRhdHRyWzpdID0gW10KLSAgICAg
ICAgZm9yIGRpY3Rpb25hcnksIG5hbWUsIHZhbHVlIGluIHJldmVyc2VkKHNlbGYuX3NldGl0ZW0p
OgotICAgICAgICAgICAgaWYgdmFsdWUgaXMgbm90c2V0OgotICAgICAgICAgICAgICAgIHRyeToK
LSAgICAgICAgICAgICAgICAgICAgZGVsIGRpY3Rpb25hcnlbbmFtZV0KLSAgICAgICAgICAgICAg
ICBleGNlcHQgS2V5RXJyb3I6Ci0gICAgICAgICAgICAgICAgICAgIHBhc3MgICMgd2FzIGFscmVh
ZHkgZGVsZXRlZCwgc28gd2UgaGF2ZSB0aGUgZGVzaXJlZCBzdGF0ZQotICAgICAgICAgICAgZWxz
ZToKLSAgICAgICAgICAgICAgICBkaWN0aW9uYXJ5W25hbWVdID0gdmFsdWUKLSAgICAgICAgc2Vs
Zi5fc2V0aXRlbVs6XSA9IFtdCi0gICAgICAgIGlmIHNlbGYuX3NhdmVzeXNwYXRoIGlzIG5vdCBO
b25lOgotICAgICAgICAgICAgc3lzLnBhdGhbOl0gPSBzZWxmLl9zYXZlc3lzcGF0aAotICAgICAg
ICAgICAgc2VsZi5fc2F2ZXN5c3BhdGggPSBOb25lCi0KLSAgICAgICAgaWYgc2VsZi5fY3dkIGlz
IG5vdCBOb25lOgotICAgICAgICAgICAgb3MuY2hkaXIoc2VsZi5fY3dkKQotICAgICAgICAgICAg
c2VsZi5fY3dkID0gTm9uZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvX3B5dGVzdC9ub2Rlcy5w
eSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhp
cmRfcGFydHkvcHl0ZXN0L19weXRlc3Qvbm9kZXMucHkKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IGFkM2FmMmNlNjdjODk1OGY5NTMzNTI5NDQ0ZWIyYmYyYjFiNzc5OTguLjAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvX3B5dGVz
dC9ub2Rlcy5weQorKysgL2Rldi9udWxsCkBAIC0xLDM3ICswLDAgQEAKLVNFUCA9ICIvIgotCi0K
LWRlZiBfc3BsaXRub2RlKG5vZGVpZCk6Ci0gICAgIiIiU3BsaXQgYSBub2RlaWQgaW50byBjb25z
dGl0dWVudCAncGFydHMnLgotCi0gICAgTm9kZSBJRHMgYXJlIHN0cmluZ3MsIGFuZCBjYW4gYmUg
dGhpbmdzIGxpa2U6Ci0gICAgICAgICcnCi0gICAgICAgICd0ZXN0aW5nL2NvZGUnCi0gICAgICAg
ICd0ZXN0aW5nL2NvZGUvdGVzdF9leGNpbmZvLnB5JwotICAgICAgICAndGVzdGluZy9jb2RlL3Rl
c3RfZXhjaW5mby5weTo6VGVzdEZvcm1hdHRlZEV4Y2luZm86OigpJwotCi0gICAgUmV0dXJuIHZh
bHVlcyBhcmUgbGlzdHMgZS5nLgotICAgICAgICBbXQotICAgICAgICBbJ3Rlc3RpbmcnLCAnY29k
ZSddCi0gICAgICAgIFsndGVzdGluZycsICdjb2RlJywgJ3Rlc3RfZXhjaW5mby5weSddCi0gICAg
ICAgIFsndGVzdGluZycsICdjb2RlJywgJ3Rlc3RfZXhjaW5mby5weScsICdUZXN0Rm9ybWF0dGVk
RXhjaW5mbycsICcoKSddCi0gICAgIiIiCi0gICAgaWYgbm9kZWlkID09ICcnOgotICAgICAgICAj
IElmIHRoZXJlIGlzIG5vIHJvb3Qgbm9kZSBhdCBhbGwsIHJldHVybiBhbiBlbXB0eSBsaXN0IHNv
IHRoZSBjYWxsZXIncyBsb2dpYyBjYW4gcmVtYWluIHNhbmUKLSAgICAgICAgcmV0dXJuIFtdCi0g
ICAgcGFydHMgPSBub2RlaWQuc3BsaXQoU0VQKQotICAgICMgUmVwbGFjZSBzaW5nbGUgbGFzdCBl
bGVtZW50ICd0ZXN0X2Zvby5weTo6QmFyOjooKScgd2l0aCBtdWx0aXBsZSBlbGVtZW50cyAndGVz
dF9mb28ucHknLCAnQmFyJywgJygpJwotICAgIHBhcnRzWy0xOl0gPSBwYXJ0c1stMV0uc3BsaXQo
Ijo6IikKLSAgICByZXR1cm4gcGFydHMKLQotCi1kZWYgaXNjaGlsZG5vZGUoYmFzZWlkLCBub2Rl
aWQpOgotICAgICIiIlJldHVybiBUcnVlIGlmIHRoZSBub2RlaWQgaXMgYSBjaGlsZCBub2RlIG9m
IHRoZSBiYXNlaWQuCi0KLSAgICBFLmcuICdmb28vYmFyOjpCYXo6OigpJyBpcyBhIGNoaWxkIG9m
ICdmb28nLCAnZm9vL2JhcicgYW5kICdmb28vYmFyOjpCYXonLCBidXQgbm90IG9mICdmb28vYmxv
cnAnCi0gICAgIiIiCi0gICAgYmFzZV9wYXJ0cyA9IF9zcGxpdG5vZGUoYmFzZWlkKQotICAgIG5v
ZGVfcGFydHMgPSBfc3BsaXRub2RlKG5vZGVpZCkKLSAgICBpZiBsZW4obm9kZV9wYXJ0cykgPCBs
ZW4oYmFzZV9wYXJ0cyk6Ci0gICAgICAgIHJldHVybiBGYWxzZQotICAgIHJldHVybiBub2RlX3Bh
cnRzWzpsZW4oYmFzZV9wYXJ0cyldID09IGJhc2VfcGFydHMKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0
ZXN0L19weXRlc3Qvbm9zZS5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L19weXRlc3Qvbm9zZS5weQpkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYzgxNTQyZWFkZjM3N2QxZDNhZGRmYWFmZWE1ZDY0YTg4
MzI5OGEwMy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3Bh
cnR5L3B5dGVzdC9fcHl0ZXN0L25vc2UucHkKKysrIC9kZXYvbnVsbApAQCAtMSw3MiArMCwwIEBA
Ci0iIiIgcnVuIHRlc3Qgc3VpdGVzIHdyaXR0ZW4gZm9yIG5vc2UuICIiIgotZnJvbSBfX2Z1dHVy
ZV9fIGltcG9ydCBhYnNvbHV0ZV9pbXBvcnQsIGRpdmlzaW9uLCBwcmludF9mdW5jdGlvbgotCi1p
bXBvcnQgc3lzCi0KLWZyb20gX3B5dGVzdCBpbXBvcnQgdW5pdHRlc3QsIHJ1bm5lciwgcHl0aG9u
Ci1mcm9tIF9weXRlc3QuY29uZmlnIGltcG9ydCBob29raW1wbAotCi0KLWRlZiBnZXRfc2tpcF9l
eGNlcHRpb25zKCk6Ci0gICAgc2tpcF9jbGFzc2VzID0gc2V0KCkKLSAgICBmb3IgbW9kdWxlX25h
bWUgaW4gKCd1bml0dGVzdCcsICd1bml0dGVzdDInLCAnbm9zZScpOgotICAgICAgICBtb2QgPSBz
eXMubW9kdWxlcy5nZXQobW9kdWxlX25hbWUpCi0gICAgICAgIGlmIGhhc2F0dHIobW9kLCAnU2tp
cFRlc3QnKToKLSAgICAgICAgICAgIHNraXBfY2xhc3Nlcy5hZGQobW9kLlNraXBUZXN0KQotICAg
IHJldHVybiB0dXBsZShza2lwX2NsYXNzZXMpCi0KLQotZGVmIHB5dGVzdF9ydW50ZXN0X21ha2Vy
ZXBvcnQoaXRlbSwgY2FsbCk6Ci0gICAgaWYgY2FsbC5leGNpbmZvIGFuZCBjYWxsLmV4Y2luZm8u
ZXJyaXNpbnN0YW5jZShnZXRfc2tpcF9leGNlcHRpb25zKCkpOgotICAgICAgICAjIGxldCdzIHN1
YnN0aXR1dGUgdGhlIGV4Y2luZm8gd2l0aCBhIHB5dGVzdC5za2lwIG9uZQotICAgICAgICBjYWxs
MiA9IGNhbGwuX19jbGFzc19fKAotICAgICAgICAgICAgbGFtYmRhOiBydW5uZXIuc2tpcChzdHIo
Y2FsbC5leGNpbmZvLnZhbHVlKSksIGNhbGwud2hlbikKLSAgICAgICAgY2FsbC5leGNpbmZvID0g
Y2FsbDIuZXhjaW5mbwotCi0KLUBob29raW1wbCh0cnlsYXN0PVRydWUpCi1kZWYgcHl0ZXN0X3J1
bnRlc3Rfc2V0dXAoaXRlbSk6Ci0gICAgaWYgaXNfcG90ZW50aWFsX25vc2V0ZXN0KGl0ZW0pOgot
ICAgICAgICBpZiBpc2luc3RhbmNlKGl0ZW0ucGFyZW50LCBweXRob24uR2VuZXJhdG9yKToKLSAg
ICAgICAgICAgIGdlbiA9IGl0ZW0ucGFyZW50Ci0gICAgICAgICAgICBpZiBub3QgaGFzYXR0cihn
ZW4sICdfbm9zZWdlbnNldHVwJyk6Ci0gICAgICAgICAgICAgICAgY2FsbF9vcHRpb25hbChnZW4u
b2JqLCAnc2V0dXAnKQotICAgICAgICAgICAgICAgIGlmIGlzaW5zdGFuY2UoZ2VuLnBhcmVudCwg
cHl0aG9uLkluc3RhbmNlKToKLSAgICAgICAgICAgICAgICAgICAgY2FsbF9vcHRpb25hbChnZW4u
cGFyZW50Lm9iaiwgJ3NldHVwJykKLSAgICAgICAgICAgICAgICBnZW4uX25vc2VnZW5zZXR1cCA9
IFRydWUKLSAgICAgICAgaWYgbm90IGNhbGxfb3B0aW9uYWwoaXRlbS5vYmosICdzZXR1cCcpOgot
ICAgICAgICAgICAgIyBjYWxsIG1vZHVsZSBsZXZlbCBzZXR1cCBpZiB0aGVyZSBpcyBubyBvYmpl
Y3QgbGV2ZWwgb25lCi0gICAgICAgICAgICBjYWxsX29wdGlvbmFsKGl0ZW0ucGFyZW50Lm9iaiwg
J3NldHVwJykKLSAgICAgICAgIyBYWFggdGhpcyBpbXBsaWVzIHdlIG9ubHkgY2FsbCB0ZWFyZG93
biB3aGVuIHNldHVwIHdvcmtlZAotICAgICAgICBpdGVtLnNlc3Npb24uX3NldHVwc3RhdGUuYWRk
ZmluYWxpemVyKChsYW1iZGE6IHRlYXJkb3duX25vc2UoaXRlbSkpLCBpdGVtKQotCi0KLWRlZiB0
ZWFyZG93bl9ub3NlKGl0ZW0pOgotICAgIGlmIGlzX3BvdGVudGlhbF9ub3NldGVzdChpdGVtKToK
LSAgICAgICAgaWYgbm90IGNhbGxfb3B0aW9uYWwoaXRlbS5vYmosICd0ZWFyZG93bicpOgotICAg
ICAgICAgICAgY2FsbF9vcHRpb25hbChpdGVtLnBhcmVudC5vYmosICd0ZWFyZG93bicpCi0gICAg
ICAgICMgaWYgaGFzYXR0cihpdGVtLnBhcmVudCwgJ19ub3NlZ2Vuc2V0dXAnKToKLSAgICAgICAg
IyAgICAjY2FsbF9vcHRpb25hbChpdGVtLl9ub3NlZ2Vuc2V0dXAsICd0ZWFyZG93bicpCi0gICAg
ICAgICMgICAgZGVsIGl0ZW0ucGFyZW50Ll9ub3NlZ2Vuc2V0dXAKLQotCi1kZWYgcHl0ZXN0X21h
a2VfY29sbGVjdF9yZXBvcnQoY29sbGVjdG9yKToKLSAgICBpZiBpc2luc3RhbmNlKGNvbGxlY3Rv
ciwgcHl0aG9uLkdlbmVyYXRvcik6Ci0gICAgICAgIGNhbGxfb3B0aW9uYWwoY29sbGVjdG9yLm9i
aiwgJ3NldHVwJykKLQotCi1kZWYgaXNfcG90ZW50aWFsX25vc2V0ZXN0KGl0ZW0pOgotICAgICMg
ZXh0cmEgY2hlY2sgbmVlZGVkIHNpbmNlIHdlIGRvIG5vdCBkbyBub3NlIHN0eWxlIHNldHVwL3Rl
YXJkb3duCi0gICAgIyBvbiBkaXJlY3QgdW5pdHRlc3Qgc3R5bGUgY2xhc3NlcwotICAgIHJldHVy
biBpc2luc3RhbmNlKGl0ZW0sIHB5dGhvbi5GdW5jdGlvbikgYW5kIFwKLSAgICAgICAgbm90IGlz
aW5zdGFuY2UoaXRlbSwgdW5pdHRlc3QuVGVzdENhc2VGdW5jdGlvbikKLQotCi1kZWYgY2FsbF9v
cHRpb25hbChvYmosIG5hbWUpOgotICAgIG1ldGhvZCA9IGdldGF0dHIob2JqLCBuYW1lLCBOb25l
KQotICAgIGlzZml4dHVyZSA9IGhhc2F0dHIobWV0aG9kLCAiX3B5dGVzdGZpeHR1cmVmdW5jdGlv
biIpCi0gICAgaWYgbWV0aG9kIGlzIG5vdCBOb25lIGFuZCBub3QgaXNmaXh0dXJlIGFuZCBjYWxs
YWJsZShtZXRob2QpOgotICAgICAgICAjIElmIHRoZXJlJ3MgYW55IHByb2JsZW1zIGFsbG93IHRo
ZSBleGNlcHRpb24gdG8gcmFpc2UgcmF0aGVyIHRoYW4KLSAgICAgICAgIyBzaWxlbnRseSBpZ25v
cmluZyB0aGVtCi0gICAgICAgIG1ldGhvZCgpCi0gICAgICAgIHJldHVybiBUcnVlCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3Ro
aXJkX3BhcnR5L3B5dGVzdC9fcHl0ZXN0L291dGNvbWVzLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvX3B5dGVz
dC9vdXRjb21lcy5weQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggN2YwYzE4ZmE2YzFi
NDg3ODNhM2E5ZDNhNjQ1ZDNlMjQ0ZDY3M2MxNC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9fcHl0ZXN0L291dGNvbWVzLnB5CisrKyAv
ZGV2L251bGwKQEAgLTEsMTQ3ICswLDAgQEAKLSIiIgotZXhjZXB0aW9uIGNsYXNzZXMgYW5kIGNv
bnN0YW50cyBoYW5kbGluZyB0ZXN0IG91dGNvbWVzCi1hcyB3ZWxsIGFzIGZ1bmN0aW9ucyBjcmVh
dGluZyB0aGVtCi0iIiIKLWZyb20gX19mdXR1cmVfXyBpbXBvcnQgYWJzb2x1dGVfaW1wb3J0LCBk
aXZpc2lvbiwgcHJpbnRfZnVuY3Rpb24KLWltcG9ydCBweQotaW1wb3J0IHN5cwotCi0KLWNsYXNz
IE91dGNvbWVFeGNlcHRpb24oQmFzZUV4Y2VwdGlvbik6Ci0gICAgIiIiIE91dGNvbWVFeGNlcHRp
b24gYW5kIGl0cyBzdWJjbGFzcyBpbnN0YW5jZXMgaW5kaWNhdGUgYW5kCi0gICAgICAgIGNvbnRh
aW4gaW5mbyBhYm91dCB0ZXN0IGFuZCBjb2xsZWN0aW9uIG91dGNvbWVzLgotICAgICIiIgotICAg
IGRlZiBfX2luaXRfXyhzZWxmLCBtc2c9Tm9uZSwgcHl0cmFjZT1UcnVlKToKLSAgICAgICAgQmFz
ZUV4Y2VwdGlvbi5fX2luaXRfXyhzZWxmLCBtc2cpCi0gICAgICAgIHNlbGYubXNnID0gbXNnCi0g
ICAgICAgIHNlbGYucHl0cmFjZSA9IHB5dHJhY2UKLQotICAgIGRlZiBfX3JlcHJfXyhzZWxmKToK
LSAgICAgICAgaWYgc2VsZi5tc2c6Ci0gICAgICAgICAgICB2YWwgPSBzZWxmLm1zZwotICAgICAg
ICAgICAgaWYgaXNpbnN0YW5jZSh2YWwsIGJ5dGVzKToKLSAgICAgICAgICAgICAgICB2YWwgPSBw
eS5fYnVpbHRpbi5fdG90ZXh0KHZhbCwgZXJyb3JzPSdyZXBsYWNlJykKLSAgICAgICAgICAgIHJl
dHVybiB2YWwKLSAgICAgICAgcmV0dXJuICI8JXMgaW5zdGFuY2U+IiAlIChzZWxmLl9fY2xhc3Nf
Xy5fX25hbWVfXywpCi0gICAgX19zdHJfXyA9IF9fcmVwcl9fCi0KLQotVEVTVF9PVVRDT01FID0g
KE91dGNvbWVFeGNlcHRpb24sIEV4Y2VwdGlvbikKLQotCi1jbGFzcyBTa2lwcGVkKE91dGNvbWVF
eGNlcHRpb24pOgotICAgICMgWFhYIGhhY2tpc2g6IG9uIDNrIHdlIGZha2UgdG8gbGl2ZSBpbiB0
aGUgYnVpbHRpbnMKLSAgICAjIGluIG9yZGVyIHRvIGhhdmUgU2tpcHBlZCBleGNlcHRpb24gcHJp
bnRpbmcgc2hvcnRlci9uaWNlcgotICAgIF9fbW9kdWxlX18gPSAnYnVpbHRpbnMnCi0KLSAgICBk
ZWYgX19pbml0X18oc2VsZiwgbXNnPU5vbmUsIHB5dHJhY2U9VHJ1ZSwgYWxsb3dfbW9kdWxlX2xl
dmVsPUZhbHNlKToKLSAgICAgICAgT3V0Y29tZUV4Y2VwdGlvbi5fX2luaXRfXyhzZWxmLCBtc2c9
bXNnLCBweXRyYWNlPXB5dHJhY2UpCi0gICAgICAgIHNlbGYuYWxsb3dfbW9kdWxlX2xldmVsID0g
YWxsb3dfbW9kdWxlX2xldmVsCi0KLQotY2xhc3MgRmFpbGVkKE91dGNvbWVFeGNlcHRpb24pOgot
ICAgICIiIiByYWlzZWQgZnJvbSBhbiBleHBsaWNpdCBjYWxsIHRvIHB5dGVzdC5mYWlsKCkgIiIi
Ci0gICAgX19tb2R1bGVfXyA9ICdidWlsdGlucycKLQotCi1jbGFzcyBFeGl0KEtleWJvYXJkSW50
ZXJydXB0KToKLSAgICAiIiIgcmFpc2VkIGZvciBpbW1lZGlhdGUgcHJvZ3JhbSBleGl0cyAobm8g
dHJhY2ViYWNrcy9zdW1tYXJpZXMpIiIiCi0gICAgZGVmIF9faW5pdF9fKHNlbGYsIG1zZz0idW5r
bm93biByZWFzb24iKToKLSAgICAgICAgc2VsZi5tc2cgPSBtc2cKLSAgICAgICAgS2V5Ym9hcmRJ
bnRlcnJ1cHQuX19pbml0X18oc2VsZiwgbXNnKQotCi0jIGV4cG9zZWQgaGVscGVyIG1ldGhvZHMK
LQotCi1kZWYgZXhpdChtc2cpOgotICAgICIiIiBleGl0IHRlc3RpbmcgcHJvY2VzcyBhcyBpZiBL
ZXlib2FyZEludGVycnVwdCB3YXMgdHJpZ2dlcmVkLiAiIiIKLSAgICBfX3RyYWNlYmFja2hpZGVf
XyA9IFRydWUKLSAgICByYWlzZSBFeGl0KG1zZykKLQotCi1leGl0LkV4Y2VwdGlvbiA9IEV4aXQK
LQotCi1kZWYgc2tpcChtc2c9IiIsICoqa3dhcmdzKToKLSAgICAiIiIgc2tpcCBhbiBleGVjdXRp
bmcgdGVzdCB3aXRoIHRoZSBnaXZlbiBtZXNzYWdlLiAgTm90ZTogaXQncyB1c3VhbGx5Ci0gICAg
YmV0dGVyIHRvIHVzZSB0aGUgcHl0ZXN0Lm1hcmsuc2tpcGlmIG1hcmtlciB0byBkZWNsYXJlIGEg
dGVzdCB0byBiZQotICAgIHNraXBwZWQgdW5kZXIgY2VydGFpbiBjb25kaXRpb25zIGxpa2UgbWlz
bWF0Y2hpbmcgcGxhdGZvcm1zIG9yCi0gICAgZGVwZW5kZW5jaWVzLiAgU2VlIHRoZSBweXRlc3Rf
c2tpcHBpbmcgcGx1Z2luIGZvciBkZXRhaWxzLgotCi0gICAgOmt3YXJnIGJvb2wgYWxsb3dfbW9k
dWxlX2xldmVsOiBhbGxvd3MgdGhpcyBmdW5jdGlvbiB0byBiZSBjYWxsZWQgYXQKLSAgICAgICAg
bW9kdWxlIGxldmVsLCBza2lwcGluZyB0aGUgcmVzdCBvZiB0aGUgbW9kdWxlLiBEZWZhdWx0IHRv
IEZhbHNlLgotICAgICIiIgotICAgIF9fdHJhY2ViYWNraGlkZV9fID0gVHJ1ZQotICAgIGFsbG93
X21vZHVsZV9sZXZlbCA9IGt3YXJncy5wb3AoJ2FsbG93X21vZHVsZV9sZXZlbCcsIEZhbHNlKQot
ICAgIGlmIGt3YXJnczoKLSAgICAgICAga2V5cyA9IFtrIGZvciBrIGluIGt3YXJncy5rZXlzKCld
Ci0gICAgICAgIHJhaXNlIFR5cGVFcnJvcigndW5leHBlY3RlZCBrZXl3b3JkIGFyZ3VtZW50czog
ezB9Jy5mb3JtYXQoa2V5cykpCi0gICAgcmFpc2UgU2tpcHBlZChtc2c9bXNnLCBhbGxvd19tb2R1
bGVfbGV2ZWw9YWxsb3dfbW9kdWxlX2xldmVsKQotCi0KLXNraXAuRXhjZXB0aW9uID0gU2tpcHBl
ZAotCi0KLWRlZiBmYWlsKG1zZz0iIiwgcHl0cmFjZT1UcnVlKToKLSAgICAiIiIgZXhwbGljaXRs
eSBmYWlsIGFuIGN1cnJlbnRseS1leGVjdXRpbmcgdGVzdCB3aXRoIHRoZSBnaXZlbiBNZXNzYWdl
LgotCi0gICAgOmFyZyBweXRyYWNlOiBpZiBmYWxzZSB0aGUgbXNnIHJlcHJlc2VudHMgdGhlIGZ1
bGwgZmFpbHVyZSBpbmZvcm1hdGlvbgotICAgICAgICAgICAgICAgICAgYW5kIG5vIHB5dGhvbiB0
cmFjZWJhY2sgd2lsbCBiZSByZXBvcnRlZC4KLSAgICAiIiIKLSAgICBfX3RyYWNlYmFja2hpZGVf
XyA9IFRydWUKLSAgICByYWlzZSBGYWlsZWQobXNnPW1zZywgcHl0cmFjZT1weXRyYWNlKQotCi0K
LWZhaWwuRXhjZXB0aW9uID0gRmFpbGVkCi0KLQotY2xhc3MgWEZhaWxlZChmYWlsLkV4Y2VwdGlv
bik6Ci0gICAgIiIiIHJhaXNlZCBmcm9tIGFuIGV4cGxpY2l0IGNhbGwgdG8gcHl0ZXN0LnhmYWls
KCkgIiIiCi0KLQotZGVmIHhmYWlsKHJlYXNvbj0iIik6Ci0gICAgIiIiIHhmYWlsIGFuIGV4ZWN1
dGluZyB0ZXN0IG9yIHNldHVwIGZ1bmN0aW9ucyB3aXRoIHRoZSBnaXZlbiByZWFzb24uIiIiCi0g
ICAgX190cmFjZWJhY2toaWRlX18gPSBUcnVlCi0gICAgcmFpc2UgWEZhaWxlZChyZWFzb24pCi0K
LQoteGZhaWwuRXhjZXB0aW9uID0gWEZhaWxlZAotCi0KLWRlZiBpbXBvcnRvcnNraXAobW9kbmFt
ZSwgbWludmVyc2lvbj1Ob25lKToKLSAgICAiIiIgcmV0dXJuIGltcG9ydGVkIG1vZHVsZSBpZiBp
dCBoYXMgYXQgbGVhc3QgIm1pbnZlcnNpb24iIGFzIGl0cwotICAgIF9fdmVyc2lvbl9fIGF0dHJp
YnV0ZS4gIElmIG5vIG1pbnZlcnNpb24gaXMgc3BlY2lmaWVkIHRoZSBhIHNraXAKLSAgICBpcyBv
bmx5IHRyaWdnZXJlZCBpZiB0aGUgbW9kdWxlIGNhbiBub3QgYmUgaW1wb3J0ZWQuCi0gICAgIiIi
Ci0gICAgaW1wb3J0IHdhcm5pbmdzCi0gICAgX190cmFjZWJhY2toaWRlX18gPSBUcnVlCi0gICAg
Y29tcGlsZShtb2RuYW1lLCAnJywgJ2V2YWwnKSAgIyB0byBjYXRjaCBzeW50YXhlcnJvcnMKLSAg
ICBzaG91bGRfc2tpcCA9IEZhbHNlCi0KLSAgICB3aXRoIHdhcm5pbmdzLmNhdGNoX3dhcm5pbmdz
KCk6Ci0gICAgICAgICMgbWFrZSBzdXJlIHRvIGlnbm9yZSBJbXBvcnRXYXJuaW5ncyB0aGF0IG1p
Z2h0IGhhcHBlbiBiZWNhdXNlCi0gICAgICAgICMgb2YgZXhpc3RpbmcgZGlyZWN0b3JpZXMgd2l0
aCB0aGUgc2FtZSBuYW1lIHdlJ3JlIHRyeWluZyB0bwotICAgICAgICAjIGltcG9ydCBidXQgd2l0
aG91dCBhIF9faW5pdF9fLnB5IGZpbGUKLSAgICAgICAgd2FybmluZ3Muc2ltcGxlZmlsdGVyKCdp
Z25vcmUnKQotICAgICAgICB0cnk6Ci0gICAgICAgICAgICBfX2ltcG9ydF9fKG1vZG5hbWUpCi0g
ICAgICAgIGV4Y2VwdCBJbXBvcnRFcnJvcjoKLSAgICAgICAgICAgICMgRG8gbm90IHJhaXNlIGNo
YWluZWQgZXhjZXB0aW9uIGhlcmUoIzE0ODUpCi0gICAgICAgICAgICBzaG91bGRfc2tpcCA9IFRy
dWUKLSAgICBpZiBzaG91bGRfc2tpcDoKLSAgICAgICAgcmFpc2UgU2tpcHBlZCgiY291bGQgbm90
IGltcG9ydCAlciIgJSAobW9kbmFtZSwpLCBhbGxvd19tb2R1bGVfbGV2ZWw9VHJ1ZSkKLSAgICBt
b2QgPSBzeXMubW9kdWxlc1ttb2RuYW1lXQotICAgIGlmIG1pbnZlcnNpb24gaXMgTm9uZToKLSAg
ICAgICAgcmV0dXJuIG1vZAotICAgIHZlcmF0dHIgPSBnZXRhdHRyKG1vZCwgJ19fdmVyc2lvbl9f
JywgTm9uZSkKLSAgICBpZiBtaW52ZXJzaW9uIGlzIG5vdCBOb25lOgotICAgICAgICB0cnk6Ci0g
ICAgICAgICAgICBmcm9tIHBrZ19yZXNvdXJjZXMgaW1wb3J0IHBhcnNlX3ZlcnNpb24gYXMgcHYK
LSAgICAgICAgZXhjZXB0IEltcG9ydEVycm9yOgotICAgICAgICAgICAgcmFpc2UgU2tpcHBlZCgi
d2UgaGF2ZSBhIHJlcXVpcmVkIHZlcnNpb24gZm9yICVyIGJ1dCBjYW4gbm90IGltcG9ydCAiCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICJwa2dfcmVzb3VyY2VzIHRvIHBhcnNlIHZlcnNpb24g
c3RyaW5ncy4iICUgKG1vZG5hbWUsKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgYWxsb3df
bW9kdWxlX2xldmVsPVRydWUpCi0gICAgICAgIGlmIHZlcmF0dHIgaXMgTm9uZSBvciBwdih2ZXJh
dHRyKSA8IHB2KG1pbnZlcnNpb24pOgotICAgICAgICAgICAgcmFpc2UgU2tpcHBlZCgibW9kdWxl
ICVyIGhhcyBfX3ZlcnNpb25fXyAlciwgcmVxdWlyZWQgaXM6ICVyIiAlICgKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgbW9kbmFtZSwgdmVyYXR0ciwgbWludmVyc2lvbiksIGFsbG93X21vZHVs
ZV9sZXZlbD1UcnVlKQotICAgIHJldHVybiBtb2QKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L19w
eXRlc3QvcGFzdGViaW4ucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9fcHl0ZXN0L3Bhc3RlYmluLnB5CmRlbGV0
ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiNTg4YjAyMWIxMjQyMmY1NTA3YzliZGZhNTExZjYx
ZjNkMDI4MWY5Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRf
cGFydHkvcHl0ZXN0L19weXRlc3QvcGFzdGViaW4ucHkKKysrIC9kZXYvbnVsbApAQCAtMSwxMDAg
KzAsMCBAQAotIiIiIHN1Ym1pdCBmYWlsdXJlIG9yIHRlc3Qgc2Vzc2lvbiBpbmZvcm1hdGlvbiB0
byBhIHBhc3RlYmluIHNlcnZpY2UuICIiIgotZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCBhYnNvbHV0
ZV9pbXBvcnQsIGRpdmlzaW9uLCBwcmludF9mdW5jdGlvbgotCi1pbXBvcnQgcHl0ZXN0Ci1pbXBv
cnQgc2l4Ci1pbXBvcnQgc3lzCi1pbXBvcnQgdGVtcGZpbGUKLQotCi1kZWYgcHl0ZXN0X2FkZG9w
dGlvbihwYXJzZXIpOgotICAgIGdyb3VwID0gcGFyc2VyLmdldGdyb3VwKCJ0ZXJtaW5hbCByZXBv
cnRpbmciKQotICAgIGdyb3VwLl9hZGRvcHRpb24oJy0tcGFzdGViaW4nLCBtZXRhdmFyPSJtb2Rl
IiwKLSAgICAgICAgICAgICAgICAgICAgIGFjdGlvbj0nc3RvcmUnLCBkZXN0PSJwYXN0ZWJpbiIs
IGRlZmF1bHQ9Tm9uZSwKLSAgICAgICAgICAgICAgICAgICAgIGNob2ljZXM9WydmYWlsZWQnLCAn
YWxsJ10sCi0gICAgICAgICAgICAgICAgICAgICBoZWxwPSJzZW5kIGZhaWxlZHxhbGwgaW5mbyB0
byBicGFzdGUubmV0IHBhc3RlYmluIHNlcnZpY2UuIikKLQotCi1AcHl0ZXN0Lmhvb2tpbXBsKHRy
eWxhc3Q9VHJ1ZSkKLWRlZiBweXRlc3RfY29uZmlndXJlKGNvbmZpZyk6Ci0gICAgaWYgY29uZmln
Lm9wdGlvbi5wYXN0ZWJpbiA9PSAiYWxsIjoKLSAgICAgICAgdHIgPSBjb25maWcucGx1Z2lubWFu
YWdlci5nZXRwbHVnaW4oJ3Rlcm1pbmFscmVwb3J0ZXInKQotICAgICAgICAjIGlmIG5vIHRlcm1p
bmFsIHJlcG9ydGVyIHBsdWdpbiBpcyBwcmVzZW50LCBub3RoaW5nIHdlIGNhbiBkbyBoZXJlOwot
ICAgICAgICAjIHRoaXMgY2FuIGhhcHBlbiB3aGVuIHRoaXMgZnVuY3Rpb24gZXhlY3V0ZXMgaW4g
YSBzbGF2ZSBub2RlCi0gICAgICAgICMgd2hlbiB1c2luZyBweXRlc3QteGRpc3QsIGZvciBleGFt
cGxlCi0gICAgICAgIGlmIHRyIGlzIG5vdCBOb25lOgotICAgICAgICAgICAgIyBwYXN0ZWJpbiBm
aWxlIHdpbGwgYmUgdXRmLTggZW5jb2RlZCBiaW5hcnkgZmlsZQotICAgICAgICAgICAgY29uZmln
Ll9wYXN0ZWJpbmZpbGUgPSB0ZW1wZmlsZS5UZW1wb3JhcnlGaWxlKCd3K2InKQotICAgICAgICAg
ICAgb2xkd3JpdGUgPSB0ci5fdHcud3JpdGUKLQotICAgICAgICAgICAgZGVmIHRlZV93cml0ZShz
LCAqKmt3YXJncyk6Ci0gICAgICAgICAgICAgICAgb2xkd3JpdGUocywgKiprd2FyZ3MpCi0gICAg
ICAgICAgICAgICAgaWYgaXNpbnN0YW5jZShzLCBzaXgudGV4dF90eXBlKToKLSAgICAgICAgICAg
ICAgICAgICAgcyA9IHMuZW5jb2RlKCd1dGYtOCcpCi0gICAgICAgICAgICAgICAgY29uZmlnLl9w
YXN0ZWJpbmZpbGUud3JpdGUocykKLQotICAgICAgICAgICAgdHIuX3R3LndyaXRlID0gdGVlX3dy
aXRlCi0KLQotZGVmIHB5dGVzdF91bmNvbmZpZ3VyZShjb25maWcpOgotICAgIGlmIGhhc2F0dHIo
Y29uZmlnLCAnX3Bhc3RlYmluZmlsZScpOgotICAgICAgICAjIGdldCB0ZXJtaW5hbCBjb250ZW50
cyBhbmQgZGVsZXRlIGZpbGUKLSAgICAgICAgY29uZmlnLl9wYXN0ZWJpbmZpbGUuc2VlaygwKQot
ICAgICAgICBzZXNzaW9ubG9nID0gY29uZmlnLl9wYXN0ZWJpbmZpbGUucmVhZCgpCi0gICAgICAg
IGNvbmZpZy5fcGFzdGViaW5maWxlLmNsb3NlKCkKLSAgICAgICAgZGVsIGNvbmZpZy5fcGFzdGVi
aW5maWxlCi0gICAgICAgICMgdW5kbyBvdXIgcGF0Y2hpbmcgaW4gdGhlIHRlcm1pbmFsIHJlcG9y
dGVyCi0gICAgICAgIHRyID0gY29uZmlnLnBsdWdpbm1hbmFnZXIuZ2V0cGx1Z2luKCd0ZXJtaW5h
bHJlcG9ydGVyJykKLSAgICAgICAgZGVsIHRyLl90dy5fX2RpY3RfX1snd3JpdGUnXQotICAgICAg
ICAjIHdyaXRlIHN1bW1hcnkKLSAgICAgICAgdHIud3JpdGVfc2VwKCI9IiwgIlNlbmRpbmcgaW5m
b3JtYXRpb24gdG8gUGFzdGUgU2VydmljZSIpCi0gICAgICAgIHBhc3RlYmludXJsID0gY3JlYXRl
X25ld19wYXN0ZShzZXNzaW9ubG9nKQotICAgICAgICB0ci53cml0ZV9saW5lKCJwYXN0ZWJpbiBz
ZXNzaW9uLWxvZzogJXNcbiIgJSBwYXN0ZWJpbnVybCkKLQotCi1kZWYgY3JlYXRlX25ld19wYXN0
ZShjb250ZW50cyk6Ci0gICAgIiIiCi0gICAgQ3JlYXRlcyBhIG5ldyBwYXN0ZSB1c2luZyBicGFz
dGUubmV0IHNlcnZpY2UuCi0KLSAgICA6Y29udGVudHM6IHBhc3RlIGNvbnRlbnRzIGFzIHV0Zi04
IGVuY29kZWQgYnl0ZXMKLSAgICA6cmV0dXJuczogdXJsIHRvIHRoZSBwYXN0ZWQgY29udGVudHMK
LSAgICAiIiIKLSAgICBpbXBvcnQgcmUKLSAgICBpZiBzeXMudmVyc2lvbl9pbmZvIDwgKDMsIDAp
OgotICAgICAgICBmcm9tIHVybGxpYiBpbXBvcnQgdXJsb3BlbiwgdXJsZW5jb2RlCi0gICAgZWxz
ZToKLSAgICAgICAgZnJvbSB1cmxsaWIucmVxdWVzdCBpbXBvcnQgdXJsb3BlbgotICAgICAgICBm
cm9tIHVybGxpYi5wYXJzZSBpbXBvcnQgdXJsZW5jb2RlCi0KLSAgICBwYXJhbXMgPSB7Ci0gICAg
ICAgICdjb2RlJzogY29udGVudHMsCi0gICAgICAgICdsZXhlcic6ICdweXRob24zJyBpZiBzeXMu
dmVyc2lvbl9pbmZvWzBdID09IDMgZWxzZSAncHl0aG9uJywKLSAgICAgICAgJ2V4cGlyeSc6ICcx
d2VlaycsCi0gICAgfQotICAgIHVybCA9ICdodHRwczovL2JwYXN0ZS5uZXQnCi0gICAgcmVzcG9u
c2UgPSB1cmxvcGVuKHVybCwgZGF0YT11cmxlbmNvZGUocGFyYW1zKS5lbmNvZGUoJ2FzY2lpJykp
LnJlYWQoKQotICAgIG0gPSByZS5zZWFyY2gocidocmVmPSIvcmF3LyhcdyspIicsIHJlc3BvbnNl
LmRlY29kZSgndXRmLTgnKSkKLSAgICBpZiBtOgotICAgICAgICByZXR1cm4gJyVzL3Nob3cvJXMn
ICUgKHVybCwgbS5ncm91cCgxKSkKLSAgICBlbHNlOgotICAgICAgICByZXR1cm4gJ2JhZCByZXNw
b25zZTogJyArIHJlc3BvbnNlCi0KLQotZGVmIHB5dGVzdF90ZXJtaW5hbF9zdW1tYXJ5KHRlcm1p
bmFscmVwb3J0ZXIpOgotICAgIGltcG9ydCBfcHl0ZXN0LmNvbmZpZwotICAgIGlmIHRlcm1pbmFs
cmVwb3J0ZXIuY29uZmlnLm9wdGlvbi5wYXN0ZWJpbiAhPSAiZmFpbGVkIjoKLSAgICAgICAgcmV0
dXJuCi0gICAgdHIgPSB0ZXJtaW5hbHJlcG9ydGVyCi0gICAgaWYgJ2ZhaWxlZCcgaW4gdHIuc3Rh
dHM6Ci0gICAgICAgIHRlcm1pbmFscmVwb3J0ZXIud3JpdGVfc2VwKCI9IiwgIlNlbmRpbmcgaW5m
b3JtYXRpb24gdG8gUGFzdGUgU2VydmljZSIpCi0gICAgICAgIGZvciByZXAgaW4gdGVybWluYWxy
ZXBvcnRlci5zdGF0cy5nZXQoJ2ZhaWxlZCcpOgotICAgICAgICAgICAgdHJ5OgotICAgICAgICAg
ICAgICAgIG1zZyA9IHJlcC5sb25ncmVwci5yZXBydHJhY2ViYWNrLnJlcHJlbnRyaWVzWy0xXS5y
ZXByZmlsZWxvYwotICAgICAgICAgICAgZXhjZXB0IEF0dHJpYnV0ZUVycm9yOgotICAgICAgICAg
ICAgICAgIG1zZyA9IHRyLl9nZXRmYWlsdXJlaGVhZGxpbmUocmVwKQotICAgICAgICAgICAgdHcg
PSBfcHl0ZXN0LmNvbmZpZy5jcmVhdGVfdGVybWluYWxfd3JpdGVyKHRlcm1pbmFscmVwb3J0ZXIu
Y29uZmlnLCBzdHJpbmdpbz1UcnVlKQotICAgICAgICAgICAgcmVwLnRvdGVybWluYWwodHcpCi0g
ICAgICAgICAgICBzID0gdHcuc3RyaW5naW8uZ2V0dmFsdWUoKQotICAgICAgICAgICAgYXNzZXJ0
IGxlbihzKQotICAgICAgICAgICAgcGFzdGViaW51cmwgPSBjcmVhdGVfbmV3X3Bhc3RlKHMpCi0g
ICAgICAgICAgICB0ci53cml0ZV9saW5lKCIlcyAtLT4gJXMiICUgKG1zZywgcGFzdGViaW51cmwp
KQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvX3B5dGVzdC9weXRlc3Rlci5weSBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0
ZXN0L19weXRlc3QvcHl0ZXN0ZXIucHkKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGYy
ZGQ1OTk0ZjFiYmZiNGRkNmI0MjlkODZlZjc0OGNiZDU3OGQ1N2EuLjAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvX3B5dGVzdC9weXRlc3Rl
ci5weQorKysgL2Rldi9udWxsCkBAIC0xLDExODcgKzAsMCBAQAotIiIiIChkaXNhYmxlZCBieSBk
ZWZhdWx0KSBzdXBwb3J0IGZvciB0ZXN0aW5nIHB5dGVzdCBhbmQgcHl0ZXN0IHBsdWdpbnMuICIi
IgotZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCBhYnNvbHV0ZV9pbXBvcnQsIGRpdmlzaW9uLCBwcmlu
dF9mdW5jdGlvbgotCi1pbXBvcnQgY29kZWNzCi1pbXBvcnQgZ2MKLWltcG9ydCBvcwotaW1wb3J0
IHBsYXRmb3JtCi1pbXBvcnQgcmUKLWltcG9ydCBzdWJwcm9jZXNzCi1pbXBvcnQgc2l4Ci1pbXBv
cnQgc3lzCi1pbXBvcnQgdGltZQotaW1wb3J0IHRyYWNlYmFjawotZnJvbSBmbm1hdGNoIGltcG9y
dCBmbm1hdGNoCi0KLWZyb20gd2Vha3JlZiBpbXBvcnQgV2Vha0tleURpY3Rpb25hcnkKLQotZnJv
bSBfcHl0ZXN0LmNhcHR1cmUgaW1wb3J0IE11bHRpQ2FwdHVyZSwgU3lzQ2FwdHVyZQotZnJvbSBf
cHl0ZXN0Ll9jb2RlIGltcG9ydCBTb3VyY2UKLWltcG9ydCBweQotaW1wb3J0IHB5dGVzdAotZnJv
bSBfcHl0ZXN0Lm1haW4gaW1wb3J0IFNlc3Npb24sIEVYSVRfT0sKLWZyb20gX3B5dGVzdC5hc3Nl
cnRpb24ucmV3cml0ZSBpbXBvcnQgQXNzZXJ0aW9uUmV3cml0aW5nSG9vawotCi0KLVBZVEVTVF9G
VUxMUEFUSCA9IG9zLnBhdGguYWJzcGF0aChweXRlc3QuX19maWxlX18ucnN0cmlwKCJvYyIpKS5y
ZXBsYWNlKCIkcHkuY2xhc3MiLCAiLnB5IikKLQotCi1kZWYgcHl0ZXN0X2FkZG9wdGlvbihwYXJz
ZXIpOgotICAgICMgZ3JvdXAgPSBwYXJzZXIuZ2V0Z3JvdXAoInB5dGVzdGVyIiwgInB5dGVzdGVy
IChzZWxmLXRlc3RzKSBvcHRpb25zIikKLSAgICBwYXJzZXIuYWRkb3B0aW9uKCctLWxzb2YnLAot
ICAgICAgICAgICAgICAgICAgICAgYWN0aW9uPSJzdG9yZV90cnVlIiwgZGVzdD0ibHNvZiIsIGRl
ZmF1bHQ9RmFsc2UsCi0gICAgICAgICAgICAgICAgICAgICBoZWxwPSgicnVuIEZEIGNoZWNrcyBp
ZiBsc29mIGlzIGF2YWlsYWJsZSIpKQotCi0gICAgcGFyc2VyLmFkZG9wdGlvbignLS1ydW5weXRl
c3QnLCBkZWZhdWx0PSJpbnByb2Nlc3MiLCBkZXN0PSJydW5weXRlc3QiLAotICAgICAgICAgICAg
ICAgICAgICAgY2hvaWNlcz0oImlucHJvY2VzcyIsICJzdWJwcm9jZXNzIiwgKSwKLSAgICAgICAg
ICAgICAgICAgICAgIGhlbHA9KCJydW4gcHl0ZXN0IHN1YiBydW5zIGluIHRlc3RzIHVzaW5nIGFu
ICdpbnByb2Nlc3MnICIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICJvciAnc3VicHJvY2Vz
cycgKHB5dGhvbiAtbSBtYWluKSBtZXRob2QiKSkKLQotCi1kZWYgcHl0ZXN0X2NvbmZpZ3VyZShj
b25maWcpOgotICAgIGlmIGNvbmZpZy5nZXR2YWx1ZSgibHNvZiIpOgotICAgICAgICBjaGVja2Vy
ID0gTHNvZkZkTGVha0NoZWNrZXIoKQotICAgICAgICBpZiBjaGVja2VyLm1hdGNoaW5nX3BsYXRm
b3JtKCk6Ci0gICAgICAgICAgICBjb25maWcucGx1Z2lubWFuYWdlci5yZWdpc3RlcihjaGVja2Vy
KQotCi0KLWNsYXNzIExzb2ZGZExlYWtDaGVja2VyKG9iamVjdCk6Ci0gICAgZGVmIGdldF9vcGVu
X2ZpbGVzKHNlbGYpOgotICAgICAgICBvdXQgPSBzZWxmLl9leGVjX2xzb2YoKQotICAgICAgICBv
cGVuX2ZpbGVzID0gc2VsZi5fcGFyc2VfbHNvZl9vdXRwdXQob3V0KQotICAgICAgICByZXR1cm4g
b3Blbl9maWxlcwotCi0gICAgZGVmIF9leGVjX2xzb2Yoc2VsZik6Ci0gICAgICAgIHBpZCA9IG9z
LmdldHBpZCgpCi0gICAgICAgIHJldHVybiBweS5wcm9jZXNzLmNtZGV4ZWMoImxzb2YgLUZmbjAg
LXAgJWQiICUgcGlkKQotCi0gICAgZGVmIF9wYXJzZV9sc29mX291dHB1dChzZWxmLCBvdXQpOgot
ICAgICAgICBkZWYgaXNvcGVuKGxpbmUpOgotICAgICAgICAgICAgcmV0dXJuIGxpbmUuc3RhcnRz
d2l0aCgnZicpIGFuZCAoImRlbGV0ZWQiIG5vdCBpbiBsaW5lIGFuZAotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ21lbScgbm90IGluIGxpbmUgYW5kICJ0eHQi
IG5vdCBpbiBsaW5lIGFuZCAnY3dkJyBub3QgaW4gbGluZSkKLQotICAgICAgICBvcGVuX2ZpbGVz
ID0gW10KLQotICAgICAgICBmb3IgbGluZSBpbiBvdXQuc3BsaXQoIlxuIik6Ci0gICAgICAgICAg
ICBpZiBpc29wZW4obGluZSk6Ci0gICAgICAgICAgICAgICAgZmllbGRzID0gbGluZS5zcGxpdCgn
XDAnKQotICAgICAgICAgICAgICAgIGZkID0gZmllbGRzWzBdWzE6XQotICAgICAgICAgICAgICAg
IGZpbGVuYW1lID0gZmllbGRzWzFdWzE6XQotICAgICAgICAgICAgICAgIGlmIGZpbGVuYW1lLnN0
YXJ0c3dpdGgoJy8nKToKLSAgICAgICAgICAgICAgICAgICAgb3Blbl9maWxlcy5hcHBlbmQoKGZk
LCBmaWxlbmFtZSkpCi0KLSAgICAgICAgcmV0dXJuIG9wZW5fZmlsZXMKLQotICAgIGRlZiBtYXRj
aGluZ19wbGF0Zm9ybShzZWxmKToKLSAgICAgICAgdHJ5OgotICAgICAgICAgICAgcHkucHJvY2Vz
cy5jbWRleGVjKCJsc29mIC12IikKLSAgICAgICAgZXhjZXB0IChweS5wcm9jZXNzLmNtZGV4ZWMu
RXJyb3IsIFVuaWNvZGVEZWNvZGVFcnJvcik6Ci0gICAgICAgICAgICAjIGNtZGV4ZWMgbWF5IHJh
aXNlIFVuaWNvZGVEZWNvZGVFcnJvciBvbiBXaW5kb3dzIHN5c3RlbXMKLSAgICAgICAgICAgICMg
d2l0aCBsb2NhbGUgb3RoZXIgdGhhbiBlbmdsaXNoOgotICAgICAgICAgICAgIyBodHRwczovL2Jp
dGJ1Y2tldC5vcmcvcHl0ZXN0LWRldi9weS9pc3N1ZXMvNjYKLSAgICAgICAgICAgIHJldHVybiBG
YWxzZQotICAgICAgICBlbHNlOgotICAgICAgICAgICAgcmV0dXJuIFRydWUKLQotICAgIEBweXRl
c3QuaG9va2ltcGwoaG9va3dyYXBwZXI9VHJ1ZSwgdHJ5Zmlyc3Q9VHJ1ZSkKLSAgICBkZWYgcHl0
ZXN0X3J1bnRlc3RfcHJvdG9jb2woc2VsZiwgaXRlbSk6Ci0gICAgICAgIGxpbmVzMSA9IHNlbGYu
Z2V0X29wZW5fZmlsZXMoKQotICAgICAgICB5aWVsZAotICAgICAgICBpZiBoYXNhdHRyKHN5cywg
InB5cHlfdmVyc2lvbl9pbmZvIik6Ci0gICAgICAgICAgICBnYy5jb2xsZWN0KCkKLSAgICAgICAg
bGluZXMyID0gc2VsZi5nZXRfb3Blbl9maWxlcygpCi0KLSAgICAgICAgbmV3X2ZkcyA9IHNldChb
dFswXSBmb3IgdCBpbiBsaW5lczJdKSAtIHNldChbdFswXSBmb3IgdCBpbiBsaW5lczFdKQotICAg
ICAgICBsZWFrZWRfZmlsZXMgPSBbdCBmb3IgdCBpbiBsaW5lczIgaWYgdFswXSBpbiBuZXdfZmRz
XQotICAgICAgICBpZiBsZWFrZWRfZmlsZXM6Ci0gICAgICAgICAgICBlcnJvciA9IFtdCi0gICAg
ICAgICAgICBlcnJvci5hcHBlbmQoIioqKioqICVzIEZEIGxlYWthZ2UgZGV0ZWN0ZWQiICUgbGVu
KGxlYWtlZF9maWxlcykpCi0gICAgICAgICAgICBlcnJvci5leHRlbmQoW3N0cihmKSBmb3IgZiBp
biBsZWFrZWRfZmlsZXNdKQotICAgICAgICAgICAgZXJyb3IuYXBwZW5kKCIqKiogQmVmb3JlOiIp
Ci0gICAgICAgICAgICBlcnJvci5leHRlbmQoW3N0cihmKSBmb3IgZiBpbiBsaW5lczFdKQotICAg
ICAgICAgICAgZXJyb3IuYXBwZW5kKCIqKiogQWZ0ZXI6IikKLSAgICAgICAgICAgIGVycm9yLmV4
dGVuZChbc3RyKGYpIGZvciBmIGluIGxpbmVzMl0pCi0gICAgICAgICAgICBlcnJvci5hcHBlbmQo
ZXJyb3JbMF0pCi0gICAgICAgICAgICBlcnJvci5hcHBlbmQoIioqKiBmdW5jdGlvbiAlczolczog
JXMgIiAlIGl0ZW0ubG9jYXRpb24pCi0gICAgICAgICAgICBlcnJvci5hcHBlbmQoIlNlZSBpc3N1
ZSAjMjM2NiIpCi0gICAgICAgICAgICBpdGVtLndhcm4oJycsICJcbiIuam9pbihlcnJvcikpCi0K
LQotIyBYWFggY29waWVkIGZyb20gZXhlY25ldCdzIGNvbmZ0ZXN0LnB5IC0gbmVlZHMgdG8gYmUg
bWVyZ2VkCi13aW5weW1hcCA9IHsKLSAgICAncHl0aG9uMi43JzogcidDOlxQeXRob24yN1xweXRo
b24uZXhlJywKLSAgICAncHl0aG9uMy40JzogcidDOlxQeXRob24zNFxweXRob24uZXhlJywKLSAg
ICAncHl0aG9uMy41JzogcidDOlxQeXRob24zNVxweXRob24uZXhlJywKLSAgICAncHl0aG9uMy42
JzogcidDOlxQeXRob24zNlxweXRob24uZXhlJywKLX0KLQotCi1kZWYgZ2V0ZXhlY3V0YWJsZShu
YW1lLCBjYWNoZT17fSk6Ci0gICAgdHJ5OgotICAgICAgICByZXR1cm4gY2FjaGVbbmFtZV0KLSAg
ICBleGNlcHQgS2V5RXJyb3I6Ci0gICAgICAgIGV4ZWN1dGFibGUgPSBweS5wYXRoLmxvY2FsLnN5
c2ZpbmQobmFtZSkKLSAgICAgICAgaWYgZXhlY3V0YWJsZToKLSAgICAgICAgICAgIGltcG9ydCBz
dWJwcm9jZXNzCi0gICAgICAgICAgICBwb3BlbiA9IHN1YnByb2Nlc3MuUG9wZW4oW3N0cihleGVj
dXRhYmxlKSwgIi0tdmVyc2lvbiJdLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHVuaXZlcnNhbF9uZXdsaW5lcz1UcnVlLCBzdGRlcnI9c3VicHJvY2Vzcy5QSVBFKQotICAg
ICAgICAgICAgb3V0LCBlcnIgPSBwb3Blbi5jb21tdW5pY2F0ZSgpCi0gICAgICAgICAgICBpZiBu
YW1lID09ICJqeXRob24iOgotICAgICAgICAgICAgICAgIGlmIG5vdCBlcnIgb3IgIjIuNSIgbm90
IGluIGVycjoKLSAgICAgICAgICAgICAgICAgICAgZXhlY3V0YWJsZSA9IE5vbmUKLSAgICAgICAg
ICAgICAgICBpZiAiMi41LjIiIGluIGVycjoKLSAgICAgICAgICAgICAgICAgICAgZXhlY3V0YWJs
ZSA9IE5vbmUgICMgaHR0cDovL2J1Z3Muanl0aG9uLm9yZy9pc3N1ZTE3OTAKLSAgICAgICAgICAg
IGVsaWYgcG9wZW4ucmV0dXJuY29kZSAhPSAwOgotICAgICAgICAgICAgICAgICMgSGFuZGxlIHB5
ZW52J3MgMTI3LgotICAgICAgICAgICAgICAgIGV4ZWN1dGFibGUgPSBOb25lCi0gICAgICAgIGNh
Y2hlW25hbWVdID0gZXhlY3V0YWJsZQotICAgICAgICByZXR1cm4gZXhlY3V0YWJsZQotCi0KLUBw
eXRlc3QuZml4dHVyZShwYXJhbXM9WydweXRob24yLjcnLCAncHl0aG9uMy40JywgJ3B5cHknLCAn
cHlweTMnXSkKLWRlZiBhbnlweXRob24ocmVxdWVzdCk6Ci0gICAgbmFtZSA9IHJlcXVlc3QucGFy
YW0KLSAgICBleGVjdXRhYmxlID0gZ2V0ZXhlY3V0YWJsZShuYW1lKQotICAgIGlmIGV4ZWN1dGFi
bGUgaXMgTm9uZToKLSAgICAgICAgaWYgc3lzLnBsYXRmb3JtID09ICJ3aW4zMiI6Ci0gICAgICAg
ICAgICBleGVjdXRhYmxlID0gd2lucHltYXAuZ2V0KG5hbWUsIE5vbmUpCi0gICAgICAgICAgICBp
ZiBleGVjdXRhYmxlOgotICAgICAgICAgICAgICAgIGV4ZWN1dGFibGUgPSBweS5wYXRoLmxvY2Fs
KGV4ZWN1dGFibGUpCi0gICAgICAgICAgICAgICAgaWYgZXhlY3V0YWJsZS5jaGVjaygpOgotICAg
ICAgICAgICAgICAgICAgICByZXR1cm4gZXhlY3V0YWJsZQotICAgICAgICBweXRlc3Quc2tpcCgi
bm8gc3VpdGFibGUgJXMgZm91bmQiICUgKG5hbWUsKSkKLSAgICByZXR1cm4gZXhlY3V0YWJsZQot
Ci0jIHVzZWQgYXQgbGVhc3QgYnkgcHl0ZXN0LXhkaXN0IHBsdWdpbgotCi0KLUBweXRlc3QuZml4
dHVyZQotZGVmIF9weXRlc3QocmVxdWVzdCk6Ci0gICAgIiIiIFJldHVybiBhIGhlbHBlciB3aGlj
aCBvZmZlcnMgYSBnZXRob29rcmVjb3JkZXIoaG9vaykKLSAgICBtZXRob2Qgd2hpY2ggcmV0dXJu
cyBhIEhvb2tSZWNvcmRlciBpbnN0YW5jZSB3aGljaCBoZWxwcwotICAgIHRvIG1ha2UgYXNzZXJ0
aW9ucyBhYm91dCBjYWxsZWQgaG9va3MuCi0gICAgIiIiCi0gICAgcmV0dXJuIFB5dGVzdEFyZyhy
ZXF1ZXN0KQotCi0KLWNsYXNzIFB5dGVzdEFyZzoKLSAgICBkZWYgX19pbml0X18oc2VsZiwgcmVx
dWVzdCk6Ci0gICAgICAgIHNlbGYucmVxdWVzdCA9IHJlcXVlc3QKLQotICAgIGRlZiBnZXRob29r
cmVjb3JkZXIoc2VsZiwgaG9vayk6Ci0gICAgICAgIGhvb2tyZWNvcmRlciA9IEhvb2tSZWNvcmRl
cihob29rLl9wbSkKLSAgICAgICAgc2VsZi5yZXF1ZXN0LmFkZGZpbmFsaXplcihob29rcmVjb3Jk
ZXIuZmluaXNoX3JlY29yZGluZykKLSAgICAgICAgcmV0dXJuIGhvb2tyZWNvcmRlcgotCi0KLWRl
ZiBnZXRfcHVibGljX25hbWVzKHZhbHVlcyk6Ci0gICAgIiIiT25seSByZXR1cm4gbmFtZXMgZnJv
bSBpdGVyYXRvciB2YWx1ZXMgd2l0aG91dCBhIGxlYWRpbmcgdW5kZXJzY29yZS4iIiIKLSAgICBy
ZXR1cm4gW3ggZm9yIHggaW4gdmFsdWVzIGlmIHhbMF0gIT0gIl8iXQotCi0KLWNsYXNzIFBhcnNl
ZENhbGw6Ci0gICAgZGVmIF9faW5pdF9fKHNlbGYsIG5hbWUsIGt3YXJncyk6Ci0gICAgICAgIHNl
bGYuX19kaWN0X18udXBkYXRlKGt3YXJncykKLSAgICAgICAgc2VsZi5fbmFtZSA9IG5hbWUKLQot
ICAgIGRlZiBfX3JlcHJfXyhzZWxmKToKLSAgICAgICAgZCA9IHNlbGYuX19kaWN0X18uY29weSgp
Ci0gICAgICAgIGRlbCBkWydfbmFtZSddCi0gICAgICAgIHJldHVybiAiPFBhcnNlZENhbGwgJXIo
Kiolcik+IiAlIChzZWxmLl9uYW1lLCBkKQotCi0KLWNsYXNzIEhvb2tSZWNvcmRlcjoKLSAgICAi
IiJSZWNvcmQgYWxsIGhvb2tzIGNhbGxlZCBpbiBhIHBsdWdpbiBtYW5hZ2VyLgotCi0gICAgVGhp
cyB3cmFwcyBhbGwgdGhlIGhvb2sgY2FsbHMgaW4gdGhlIHBsdWdpbiBtYW5hZ2VyLCByZWNvcmRp
bmcKLSAgICBlYWNoIGNhbGwgYmVmb3JlIHByb3BhZ2F0aW5nIHRoZSBub3JtYWwgY2FsbHMuCi0K
LSAgICAiIiIKLQotICAgIGRlZiBfX2luaXRfXyhzZWxmLCBwbHVnaW5tYW5hZ2VyKToKLSAgICAg
ICAgc2VsZi5fcGx1Z2lubWFuYWdlciA9IHBsdWdpbm1hbmFnZXIKLSAgICAgICAgc2VsZi5jYWxs
cyA9IFtdCi0KLSAgICAgICAgZGVmIGJlZm9yZShob29rX25hbWUsIGhvb2tfaW1wbHMsIGt3YXJn
cyk6Ci0gICAgICAgICAgICBzZWxmLmNhbGxzLmFwcGVuZChQYXJzZWRDYWxsKGhvb2tfbmFtZSwg
a3dhcmdzKSkKLQotICAgICAgICBkZWYgYWZ0ZXIob3V0Y29tZSwgaG9va19uYW1lLCBob29rX2lt
cGxzLCBrd2FyZ3MpOgotICAgICAgICAgICAgcGFzcwotCi0gICAgICAgIHNlbGYuX3VuZG9fd3Jh
cHBpbmcgPSBwbHVnaW5tYW5hZ2VyLmFkZF9ob29rY2FsbF9tb25pdG9yaW5nKGJlZm9yZSwgYWZ0
ZXIpCi0KLSAgICBkZWYgZmluaXNoX3JlY29yZGluZyhzZWxmKToKLSAgICAgICAgc2VsZi5fdW5k
b193cmFwcGluZygpCi0KLSAgICBkZWYgZ2V0Y2FsbHMoc2VsZiwgbmFtZXMpOgotICAgICAgICBp
ZiBpc2luc3RhbmNlKG5hbWVzLCBzdHIpOgotICAgICAgICAgICAgbmFtZXMgPSBuYW1lcy5zcGxp
dCgpCi0gICAgICAgIHJldHVybiBbY2FsbCBmb3IgY2FsbCBpbiBzZWxmLmNhbGxzIGlmIGNhbGwu
X25hbWUgaW4gbmFtZXNdCi0KLSAgICBkZWYgYXNzZXJ0X2NvbnRhaW5zKHNlbGYsIGVudHJpZXMp
OgotICAgICAgICBfX3RyYWNlYmFja2hpZGVfXyA9IFRydWUKLSAgICAgICAgaSA9IDAKLSAgICAg
ICAgZW50cmllcyA9IGxpc3QoZW50cmllcykKLSAgICAgICAgYmFja2xvY2FscyA9IHN5cy5fZ2V0
ZnJhbWUoMSkuZl9sb2NhbHMKLSAgICAgICAgd2hpbGUgZW50cmllczoKLSAgICAgICAgICAgIG5h
bWUsIGNoZWNrID0gZW50cmllcy5wb3AoMCkKLSAgICAgICAgICAgIGZvciBpbmQsIGNhbGwgaW4g
ZW51bWVyYXRlKHNlbGYuY2FsbHNbaTpdKToKLSAgICAgICAgICAgICAgICBpZiBjYWxsLl9uYW1l
ID09IG5hbWU6Ci0gICAgICAgICAgICAgICAgICAgIHByaW50KCJOQU1FTUFUQ0giLCBuYW1lLCBj
YWxsKQotICAgICAgICAgICAgICAgICAgICBpZiBldmFsKGNoZWNrLCBiYWNrbG9jYWxzLCBjYWxs
Ll9fZGljdF9fKToKLSAgICAgICAgICAgICAgICAgICAgICAgIHByaW50KCJDSEVDS0VSTUFUQ0gi
LCByZXByKGNoZWNrKSwgIi0+IiwgY2FsbCkKLSAgICAgICAgICAgICAgICAgICAgZWxzZToKLSAg
ICAgICAgICAgICAgICAgICAgICAgIHByaW50KCJOT0NIRUNLRVJNQVRDSCIsIHJlcHIoY2hlY2sp
LCAiLSIsIGNhbGwpCi0gICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZQotICAgICAgICAg
ICAgICAgICAgICBpICs9IGluZCArIDEKLSAgICAgICAgICAgICAgICAgICAgYnJlYWsKLSAgICAg
ICAgICAgICAgICBwcmludCgiTk9OQU1FTUFUQ0giLCBuYW1lLCAid2l0aCIsIGNhbGwpCi0gICAg
ICAgICAgICBlbHNlOgotICAgICAgICAgICAgICAgIHB5dGVzdC5mYWlsKCJjb3VsZCBub3QgZmlu
ZCAlciBjaGVjayAlciIgJSAobmFtZSwgY2hlY2spKQotCi0gICAgZGVmIHBvcGNhbGwoc2VsZiwg
bmFtZSk6Ci0gICAgICAgIF9fdHJhY2ViYWNraGlkZV9fID0gVHJ1ZQotICAgICAgICBmb3IgaSwg
Y2FsbCBpbiBlbnVtZXJhdGUoc2VsZi5jYWxscyk6Ci0gICAgICAgICAgICBpZiBjYWxsLl9uYW1l
ID09IG5hbWU6Ci0gICAgICAgICAgICAgICAgZGVsIHNlbGYuY2FsbHNbaV0KLSAgICAgICAgICAg
ICAgICByZXR1cm4gY2FsbAotICAgICAgICBsaW5lcyA9IFsiY291bGQgbm90IGZpbmQgY2FsbCAl
ciwgaW46IiAlIChuYW1lLCldCi0gICAgICAgIGxpbmVzLmV4dGVuZChbIiAgJXMiICUgc3RyKHgp
IGZvciB4IGluIHNlbGYuY2FsbHNdKQotICAgICAgICBweXRlc3QuZmFpbCgiXG4iLmpvaW4obGlu
ZXMpKQotCi0gICAgZGVmIGdldGNhbGwoc2VsZiwgbmFtZSk6Ci0gICAgICAgIHZhbHVlcyA9IHNl
bGYuZ2V0Y2FsbHMobmFtZSkKLSAgICAgICAgYXNzZXJ0IGxlbih2YWx1ZXMpID09IDEsIChuYW1l
LCB2YWx1ZXMpCi0gICAgICAgIHJldHVybiB2YWx1ZXNbMF0KLQotICAgICMgZnVuY3Rpb25hbGl0
eSBmb3IgdGVzdCByZXBvcnRzCi0KLSAgICBkZWYgZ2V0cmVwb3J0cyhzZWxmLAotICAgICAgICAg
ICAgICAgICAgIG5hbWVzPSJweXRlc3RfcnVudGVzdF9sb2dyZXBvcnQgcHl0ZXN0X2NvbGxlY3Ry
ZXBvcnQiKToKLSAgICAgICAgcmV0dXJuIFt4LnJlcG9ydCBmb3IgeCBpbiBzZWxmLmdldGNhbGxz
KG5hbWVzKV0KLQotICAgIGRlZiBtYXRjaHJlcG9ydChzZWxmLCBpbmFtZXBhcnQ9IiIsCi0gICAg
ICAgICAgICAgICAgICAgIG5hbWVzPSJweXRlc3RfcnVudGVzdF9sb2dyZXBvcnQgcHl0ZXN0X2Nv
bGxlY3RyZXBvcnQiLCB3aGVuPU5vbmUpOgotICAgICAgICAiIiIgcmV0dXJuIGEgdGVzdHJlcG9y
dCB3aG9zZSBkb3R0ZWQgaW1wb3J0IHBhdGggbWF0Y2hlcyAiIiIKLSAgICAgICAgdmFsdWVzID0g
W10KLSAgICAgICAgZm9yIHJlcCBpbiBzZWxmLmdldHJlcG9ydHMobmFtZXM9bmFtZXMpOgotICAg
ICAgICAgICAgdHJ5OgotICAgICAgICAgICAgICAgIGlmIG5vdCB3aGVuIGFuZCByZXAud2hlbiAh
PSAiY2FsbCIgYW5kIHJlcC5wYXNzZWQ6Ci0gICAgICAgICAgICAgICAgICAgICMgc2V0dXAvdGVh
cmRvd24gcGFzc2luZyByZXBvcnRzIC0gbGV0J3MgaWdub3JlIHRob3NlCi0gICAgICAgICAgICAg
ICAgICAgIGNvbnRpbnVlCi0gICAgICAgICAgICBleGNlcHQgQXR0cmlidXRlRXJyb3I6Ci0gICAg
ICAgICAgICAgICAgcGFzcwotICAgICAgICAgICAgaWYgd2hlbiBhbmQgZ2V0YXR0cihyZXAsICd3
aGVuJywgTm9uZSkgIT0gd2hlbjoKLSAgICAgICAgICAgICAgICBjb250aW51ZQotICAgICAgICAg
ICAgaWYgbm90IGluYW1lcGFydCBvciBpbmFtZXBhcnQgaW4gcmVwLm5vZGVpZC5zcGxpdCgiOjoi
KToKLSAgICAgICAgICAgICAgICB2YWx1ZXMuYXBwZW5kKHJlcCkKLSAgICAgICAgaWYgbm90IHZh
bHVlczoKLSAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoImNvdWxkIG5vdCBmaW5kIHRlc3Qg
cmVwb3J0IG1hdGNoaW5nICVyOiAiCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICJubyB0
ZXN0IHJlcG9ydHMgYXQgYWxsISIgJSAoaW5hbWVwYXJ0LCkpCi0gICAgICAgIGlmIGxlbih2YWx1
ZXMpID4gMToKLSAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoCi0gICAgICAgICAgICAgICAg
ImZvdW5kIDIgb3IgbW9yZSB0ZXN0cmVwb3J0cyBtYXRjaGluZyAlcjogJXMiICUgKGluYW1lcGFy
dCwgdmFsdWVzKSkKLSAgICAgICAgcmV0dXJuIHZhbHVlc1swXQotCi0gICAgZGVmIGdldGZhaWx1
cmVzKHNlbGYsCi0gICAgICAgICAgICAgICAgICAgIG5hbWVzPSdweXRlc3RfcnVudGVzdF9sb2dy
ZXBvcnQgcHl0ZXN0X2NvbGxlY3RyZXBvcnQnKToKLSAgICAgICAgcmV0dXJuIFtyZXAgZm9yIHJl
cCBpbiBzZWxmLmdldHJlcG9ydHMobmFtZXMpIGlmIHJlcC5mYWlsZWRdCi0KLSAgICBkZWYgZ2V0
ZmFpbGVkY29sbGVjdGlvbnMoc2VsZik6Ci0gICAgICAgIHJldHVybiBzZWxmLmdldGZhaWx1cmVz
KCdweXRlc3RfY29sbGVjdHJlcG9ydCcpCi0KLSAgICBkZWYgbGlzdG91dGNvbWVzKHNlbGYpOgot
ICAgICAgICBwYXNzZWQgPSBbXQotICAgICAgICBza2lwcGVkID0gW10KLSAgICAgICAgZmFpbGVk
ID0gW10KLSAgICAgICAgZm9yIHJlcCBpbiBzZWxmLmdldHJlcG9ydHMoCi0gICAgICAgICAgICAg
ICAgInB5dGVzdF9jb2xsZWN0cmVwb3J0IHB5dGVzdF9ydW50ZXN0X2xvZ3JlcG9ydCIpOgotICAg
ICAgICAgICAgaWYgcmVwLnBhc3NlZDoKLSAgICAgICAgICAgICAgICBpZiBnZXRhdHRyKHJlcCwg
IndoZW4iLCBOb25lKSA9PSAiY2FsbCI6Ci0gICAgICAgICAgICAgICAgICAgIHBhc3NlZC5hcHBl
bmQocmVwKQotICAgICAgICAgICAgZWxpZiByZXAuc2tpcHBlZDoKLSAgICAgICAgICAgICAgICBz
a2lwcGVkLmFwcGVuZChyZXApCi0gICAgICAgICAgICBlbGlmIHJlcC5mYWlsZWQ6Ci0gICAgICAg
ICAgICAgICAgZmFpbGVkLmFwcGVuZChyZXApCi0gICAgICAgIHJldHVybiBwYXNzZWQsIHNraXBw
ZWQsIGZhaWxlZAotCi0gICAgZGVmIGNvdW50b3V0Y29tZXMoc2VsZik6Ci0gICAgICAgIHJldHVy
biBbbGVuKHgpIGZvciB4IGluIHNlbGYubGlzdG91dGNvbWVzKCldCi0KLSAgICBkZWYgYXNzZXJ0
b3V0Y29tZShzZWxmLCBwYXNzZWQ9MCwgc2tpcHBlZD0wLCBmYWlsZWQ9MCk6Ci0gICAgICAgIHJl
YWxwYXNzZWQsIHJlYWxza2lwcGVkLCByZWFsZmFpbGVkID0gc2VsZi5saXN0b3V0Y29tZXMoKQot
ICAgICAgICBhc3NlcnQgcGFzc2VkID09IGxlbihyZWFscGFzc2VkKQotICAgICAgICBhc3NlcnQg
c2tpcHBlZCA9PSBsZW4ocmVhbHNraXBwZWQpCi0gICAgICAgIGFzc2VydCBmYWlsZWQgPT0gbGVu
KHJlYWxmYWlsZWQpCi0KLSAgICBkZWYgY2xlYXIoc2VsZik6Ci0gICAgICAgIHNlbGYuY2FsbHNb
Ol0gPSBbXQotCi0KLUBweXRlc3QuZml4dHVyZQotZGVmIGxpbmVjb21wKHJlcXVlc3QpOgotICAg
IHJldHVybiBMaW5lQ29tcCgpCi0KLQotQHB5dGVzdC5maXh0dXJlKG5hbWU9J0xpbmVNYXRjaGVy
JykKLWRlZiBMaW5lTWF0Y2hlcl9maXh0dXJlKHJlcXVlc3QpOgotICAgIHJldHVybiBMaW5lTWF0
Y2hlcgotCi0KLUBweXRlc3QuZml4dHVyZQotZGVmIHRlc3RkaXIocmVxdWVzdCwgdG1wZGlyX2Zh
Y3RvcnkpOgotICAgIHJldHVybiBUZXN0ZGlyKHJlcXVlc3QsIHRtcGRpcl9mYWN0b3J5KQotCi0K
LXJleF9vdXRjb21lID0gcmUuY29tcGlsZShyIihcZCspIChbXHctXSspIikKLQotCi1jbGFzcyBS
dW5SZXN1bHQ6Ci0gICAgIiIiVGhlIHJlc3VsdCBvZiBydW5uaW5nIGEgY29tbWFuZC4KLQotICAg
IEF0dHJpYnV0ZXM6Ci0KLSAgICA6cmV0OiBUaGUgcmV0dXJuIHZhbHVlLgotICAgIDpvdXRsaW5l
czogTGlzdCBvZiBsaW5lcyBjYXB0dXJlZCBmcm9tIHN0ZG91dC4KLSAgICA6ZXJybGluZXM6IExp
c3Qgb2YgbGluZXMgY2FwdHVyZXMgZnJvbSBzdGRlcnIuCi0gICAgOnN0ZG91dDogOnB5OmNsYXNz
OmBMaW5lTWF0Y2hlcmAgb2Ygc3Rkb3V0LCB1c2UgYGBzdGRvdXQuc3RyKClgYCB0bwotICAgICAg
IHJlY29uc3RydWN0IHN0ZG91dCBvciB0aGUgY29tbW9ubHkgdXNlZAotICAgICAgIGBgc3Rkb3V0
LmZubWF0Y2hfbGluZXMoKWBgIG1ldGhvZC4KLSAgICA6c3RkZXJycjogOnB5OmNsYXNzOmBMaW5l
TWF0Y2hlcmAgb2Ygc3RkZXJyLgotICAgIDpkdXJhdGlvbjogRHVyYXRpb24gaW4gc2Vjb25kcy4K
LQotICAgICIiIgotCi0gICAgZGVmIF9faW5pdF9fKHNlbGYsIHJldCwgb3V0bGluZXMsIGVycmxp
bmVzLCBkdXJhdGlvbik6Ci0gICAgICAgIHNlbGYucmV0ID0gcmV0Ci0gICAgICAgIHNlbGYub3V0
bGluZXMgPSBvdXRsaW5lcwotICAgICAgICBzZWxmLmVycmxpbmVzID0gZXJybGluZXMKLSAgICAg
ICAgc2VsZi5zdGRvdXQgPSBMaW5lTWF0Y2hlcihvdXRsaW5lcykKLSAgICAgICAgc2VsZi5zdGRl
cnIgPSBMaW5lTWF0Y2hlcihlcnJsaW5lcykKLSAgICAgICAgc2VsZi5kdXJhdGlvbiA9IGR1cmF0
aW9uCi0KLSAgICBkZWYgcGFyc2VvdXRjb21lcyhzZWxmKToKLSAgICAgICAgIiIiIFJldHVybiBh
IGRpY3Rpb25hcnkgb2Ygb3V0Y29tZXN0cmluZy0+bnVtIGZyb20gcGFyc2luZwotICAgICAgICB0
aGUgdGVybWluYWwgb3V0cHV0IHRoYXQgdGhlIHRlc3QgcHJvY2VzcyBwcm9kdWNlZC4iIiIKLSAg
ICAgICAgZm9yIGxpbmUgaW4gcmV2ZXJzZWQoc2VsZi5vdXRsaW5lcyk6Ci0gICAgICAgICAgICBp
ZiAnc2Vjb25kcycgaW4gbGluZToKLSAgICAgICAgICAgICAgICBvdXRjb21lcyA9IHJleF9vdXRj
b21lLmZpbmRhbGwobGluZSkKLSAgICAgICAgICAgICAgICBpZiBvdXRjb21lczoKLSAgICAgICAg
ICAgICAgICAgICAgZCA9IHt9Ci0gICAgICAgICAgICAgICAgICAgIGZvciBudW0sIGNhdCBpbiBv
dXRjb21lczoKLSAgICAgICAgICAgICAgICAgICAgICAgIGRbY2F0XSA9IGludChudW0pCi0gICAg
ICAgICAgICAgICAgICAgIHJldHVybiBkCi0gICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoIlB5dGVz
dCB0ZXJtaW5hbCByZXBvcnQgbm90IGZvdW5kIikKLQotICAgIGRlZiBhc3NlcnRfb3V0Y29tZXMo
c2VsZiwgcGFzc2VkPTAsIHNraXBwZWQ9MCwgZmFpbGVkPTAsIGVycm9yPTApOgotICAgICAgICAi
IiIgYXNzZXJ0IHRoYXQgdGhlIHNwZWNpZmllZCBvdXRjb21lcyBhcHBlYXIgd2l0aCB0aGUgcmVz
cGVjdGl2ZQotICAgICAgICBudW1iZXJzICgwIG1lYW5zIGl0IGRpZG4ndCBvY2N1cikgaW4gdGhl
IHRleHQgb3V0cHV0IGZyb20gYSB0ZXN0IHJ1bi4iIiIKLSAgICAgICAgZCA9IHNlbGYucGFyc2Vv
dXRjb21lcygpCi0gICAgICAgIG9idGFpbmVkID0gewotICAgICAgICAgICAgJ3Bhc3NlZCc6IGQu
Z2V0KCdwYXNzZWQnLCAwKSwKLSAgICAgICAgICAgICdza2lwcGVkJzogZC5nZXQoJ3NraXBwZWQn
LCAwKSwKLSAgICAgICAgICAgICdmYWlsZWQnOiBkLmdldCgnZmFpbGVkJywgMCksCi0gICAgICAg
ICAgICAnZXJyb3InOiBkLmdldCgnZXJyb3InLCAwKSwKLSAgICAgICAgfQotICAgICAgICBhc3Nl
cnQgb2J0YWluZWQgPT0gZGljdChwYXNzZWQ9cGFzc2VkLCBza2lwcGVkPXNraXBwZWQsIGZhaWxl
ZD1mYWlsZWQsIGVycm9yPWVycm9yKQotCi0KLWNsYXNzIFRlc3RkaXI6Ci0gICAgIiIiVGVtcG9y
YXJ5IHRlc3QgZGlyZWN0b3J5IHdpdGggdG9vbHMgdG8gdGVzdC9ydW4gcHl0ZXN0IGl0c2VsZi4K
LQotICAgIFRoaXMgaXMgYmFzZWQgb24gdGhlIGBgdG1wZGlyYGAgZml4dHVyZSBidXQgcHJvdmlk
ZXMgYSBudW1iZXIgb2YKLSAgICBtZXRob2RzIHdoaWNoIGFpZCB3aXRoIHRlc3RpbmcgcHl0ZXN0
IGl0c2VsZi4gIFVubGVzcwotICAgIDpweTptZXRoOmBjaGRpcmAgaXMgdXNlZCBhbGwgbWV0aG9k
cyB3aWxsIHVzZSA6cHk6YXR0cjpgdG1wZGlyYCBhcwotICAgIGN1cnJlbnQgd29ya2luZyBkaXJl
Y3RvcnkuCi0KLSAgICBBdHRyaWJ1dGVzOgotCi0gICAgOnRtcGRpcjogVGhlIDpweTpjbGFzczpg
cHkucGF0aC5sb2NhbGAgaW5zdGFuY2Ugb2YgdGhlIHRlbXBvcmFyeQotICAgICAgIGRpcmVjdG9y
eS4KLQotICAgIDpwbHVnaW5zOiBBIGxpc3Qgb2YgcGx1Z2lucyB0byB1c2Ugd2l0aCA6cHk6bWV0
aDpgcGFyc2Vjb25maWdgIGFuZAotICAgICAgIDpweTptZXRoOmBydW5weXRlc3RgLiAgSW5pdGlh
bGx5IHRoaXMgaXMgYW4gZW1wdHkgbGlzdCBidXQKLSAgICAgICBwbHVnaW5zIGNhbiBiZSBhZGRl
ZCB0byB0aGUgbGlzdC4gIFRoZSB0eXBlIG9mIGl0ZW1zIHRvIGFkZCB0bwotICAgICAgIHRoZSBs
aXN0IGRlcGVuZCBvbiB0aGUgbWV0aG9kIHdoaWNoIHVzZXMgdGhlbSBzbyByZWZlciB0byB0aGVt
Ci0gICAgICAgZm9yIGRldGFpbHMuCi0KLSAgICAiIiIKLQotICAgIGRlZiBfX2luaXRfXyhzZWxm
LCByZXF1ZXN0LCB0bXBkaXJfZmFjdG9yeSk6Ci0gICAgICAgIHNlbGYucmVxdWVzdCA9IHJlcXVl
c3QKLSAgICAgICAgc2VsZi5fbW9kX2NvbGxlY3Rpb25zID0gV2Vha0tleURpY3Rpb25hcnkoKQot
ICAgICAgICBuYW1lID0gcmVxdWVzdC5mdW5jdGlvbi5fX25hbWVfXwotICAgICAgICBzZWxmLnRt
cGRpciA9IHRtcGRpcl9mYWN0b3J5Lm1rdGVtcChuYW1lLCBudW1iZXJlZD1UcnVlKQotICAgICAg
ICBzZWxmLnBsdWdpbnMgPSBbXQotICAgICAgICBzZWxmLl9zYXZlc3lzcGF0aCA9IChsaXN0KHN5
cy5wYXRoKSwgbGlzdChzeXMubWV0YV9wYXRoKSkKLSAgICAgICAgc2VsZi5fc2F2ZW1vZHVsZWtl
eXMgPSBzZXQoc3lzLm1vZHVsZXMpCi0gICAgICAgIHNlbGYuY2hkaXIoKSAgIyBhbHdheXMgY2hk
aXIKLSAgICAgICAgc2VsZi5yZXF1ZXN0LmFkZGZpbmFsaXplcihzZWxmLmZpbmFsaXplKQotICAg
ICAgICBtZXRob2QgPSBzZWxmLnJlcXVlc3QuY29uZmlnLmdldG9wdGlvbigiLS1ydW5weXRlc3Qi
KQotICAgICAgICBpZiBtZXRob2QgPT0gImlucHJvY2VzcyI6Ci0gICAgICAgICAgICBzZWxmLl9y
dW5weXRlc3RfbWV0aG9kID0gc2VsZi5ydW5weXRlc3RfaW5wcm9jZXNzCi0gICAgICAgIGVsaWYg
bWV0aG9kID09ICJzdWJwcm9jZXNzIjoKLSAgICAgICAgICAgIHNlbGYuX3J1bnB5dGVzdF9tZXRo
b2QgPSBzZWxmLnJ1bnB5dGVzdF9zdWJwcm9jZXNzCi0KLSAgICBkZWYgX19yZXByX18oc2VsZik6
Ci0gICAgICAgIHJldHVybiAiPFRlc3RkaXIgJXI+IiAlIChzZWxmLnRtcGRpciwpCi0KLSAgICBk
ZWYgZmluYWxpemUoc2VsZik6Ci0gICAgICAgICIiIkNsZWFuIHVwIGdsb2JhbCBzdGF0ZSBhcnRp
ZmFjdHMuCi0KLSAgICAgICAgU29tZSBtZXRob2RzIG1vZGlmeSB0aGUgZ2xvYmFsIGludGVycHJl
dGVyIHN0YXRlIGFuZCB0aGlzCi0gICAgICAgIHRyaWVzIHRvIGNsZWFuIHRoaXMgdXAuICBJdCBk
b2VzIG5vdCByZW1vdmUgdGhlIHRlbXBvcmFyeQotICAgICAgICBkaXJlY3RvcnkgaG93ZXZlciBz
byBpdCBjYW4gYmUgbG9va2VkIGF0IGFmdGVyIHRoZSB0ZXN0IHJ1bgotICAgICAgICBoYXMgZmlu
aXNoZWQuCi0KLSAgICAgICAgIiIiCi0gICAgICAgIHN5cy5wYXRoWzpdLCBzeXMubWV0YV9wYXRo
WzpdID0gc2VsZi5fc2F2ZXN5c3BhdGgKLSAgICAgICAgaWYgaGFzYXR0cihzZWxmLCAnX29sZGRp
cicpOgotICAgICAgICAgICAgc2VsZi5fb2xkZGlyLmNoZGlyKCkKLSAgICAgICAgc2VsZi5kZWxl
dGVfbG9hZGVkX21vZHVsZXMoKQotCi0gICAgZGVmIGRlbGV0ZV9sb2FkZWRfbW9kdWxlcyhzZWxm
KToKLSAgICAgICAgIiIiRGVsZXRlIG1vZHVsZXMgdGhhdCBoYXZlIGJlZW4gbG9hZGVkIGR1cmlu
ZyBhIHRlc3QuCi0KLSAgICAgICAgVGhpcyBhbGxvd3MgdGhlIGludGVycHJldGVyIHRvIGNhdGNo
IG1vZHVsZSBjaGFuZ2VzIGluIGNhc2UKLSAgICAgICAgdGhlIG1vZHVsZSBpcyByZS1pbXBvcnRl
ZC4KLSAgICAgICAgIiIiCi0gICAgICAgIGZvciBuYW1lIGluIHNldChzeXMubW9kdWxlcykuZGlm
ZmVyZW5jZShzZWxmLl9zYXZlbW9kdWxla2V5cyk6Ci0gICAgICAgICAgICAjIHNvbWUgem9wZSBt
b2R1bGVzIHVzZWQgYnkgdHdpc3RlZC1yZWxhdGVkIHRlc3RzIGtlZXBzIGludGVybmFsCi0gICAg
ICAgICAgICAjIHN0YXRlIGFuZCBjYW4ndCBiZSBkZWxldGVkOyB3ZSBoYWQgc29tZSB0cm91Ymxl
IGluIHRoZSBwYXN0Ci0gICAgICAgICAgICAjIHdpdGggem9wZS5pbnRlcmZhY2UgZm9yIGV4YW1w
bGUKLSAgICAgICAgICAgIGlmIG5vdCBuYW1lLnN0YXJ0c3dpdGgoInpvcGUiKToKLSAgICAgICAg
ICAgICAgICBkZWwgc3lzLm1vZHVsZXNbbmFtZV0KLQotICAgIGRlZiBtYWtlX2hvb2tfcmVjb3Jk
ZXIoc2VsZiwgcGx1Z2lubWFuYWdlcik6Ci0gICAgICAgICIiIkNyZWF0ZSBhIG5ldyA6cHk6Y2xh
c3M6YEhvb2tSZWNvcmRlcmAgZm9yIGEgUGx1Z2luTWFuYWdlci4iIiIKLSAgICAgICAgYXNzZXJ0
IG5vdCBoYXNhdHRyKHBsdWdpbm1hbmFnZXIsICJyZXByZWMiKQotICAgICAgICBwbHVnaW5tYW5h
Z2VyLnJlcHJlYyA9IHJlcHJlYyA9IEhvb2tSZWNvcmRlcihwbHVnaW5tYW5hZ2VyKQotICAgICAg
ICBzZWxmLnJlcXVlc3QuYWRkZmluYWxpemVyKHJlcHJlYy5maW5pc2hfcmVjb3JkaW5nKQotICAg
ICAgICByZXR1cm4gcmVwcmVjCi0KLSAgICBkZWYgY2hkaXIoc2VsZik6Ci0gICAgICAgICIiIkNk
IGludG8gdGhlIHRlbXBvcmFyeSBkaXJlY3RvcnkuCi0KLSAgICAgICAgVGhpcyBpcyBkb25lIGF1
dG9tYXRpY2FsbHkgdXBvbiBpbnN0YW50aWF0aW9uLgotCi0gICAgICAgICIiIgotICAgICAgICBv
bGQgPSBzZWxmLnRtcGRpci5jaGRpcigpCi0gICAgICAgIGlmIG5vdCBoYXNhdHRyKHNlbGYsICdf
b2xkZGlyJyk6Ci0gICAgICAgICAgICBzZWxmLl9vbGRkaXIgPSBvbGQKLQotICAgIGRlZiBfbWFr
ZWZpbGUoc2VsZiwgZXh0LCBhcmdzLCBrd2FyZ3MsIGVuY29kaW5nPSd1dGYtOCcpOgotICAgICAg
ICBpdGVtcyA9IGxpc3Qoa3dhcmdzLml0ZW1zKCkpCi0KLSAgICAgICAgZGVmIHRvX3RleHQocyk6
Ci0gICAgICAgICAgICByZXR1cm4gcy5kZWNvZGUoZW5jb2RpbmcpIGlmIGlzaW5zdGFuY2Uocywg
Ynl0ZXMpIGVsc2Ugc2l4LnRleHRfdHlwZShzKQotCi0gICAgICAgIGlmIGFyZ3M6Ci0gICAgICAg
ICAgICBzb3VyY2UgPSB1IlxuIi5qb2luKHRvX3RleHQoeCkgZm9yIHggaW4gYXJncykKLSAgICAg
ICAgICAgIGJhc2VuYW1lID0gc2VsZi5yZXF1ZXN0LmZ1bmN0aW9uLl9fbmFtZV9fCi0gICAgICAg
ICAgICBpdGVtcy5pbnNlcnQoMCwgKGJhc2VuYW1lLCBzb3VyY2UpKQotCi0gICAgICAgIHJldCA9
IE5vbmUKLSAgICAgICAgZm9yIGJhc2VuYW1lLCB2YWx1ZSBpbiBpdGVtczoKLSAgICAgICAgICAg
IHAgPSBzZWxmLnRtcGRpci5qb2luKGJhc2VuYW1lKS5uZXcoZXh0PWV4dCkKLSAgICAgICAgICAg
IHAuZGlycGF0aCgpLmVuc3VyZV9kaXIoKQotICAgICAgICAgICAgc291cmNlID0gU291cmNlKHZh
bHVlKQotICAgICAgICAgICAgc291cmNlID0gdSJcbiIuam9pbih0b190ZXh0KGxpbmUpIGZvciBs
aW5lIGluIHNvdXJjZS5saW5lcykKLSAgICAgICAgICAgIHAud3JpdGUoc291cmNlLnN0cmlwKCku
ZW5jb2RlKGVuY29kaW5nKSwgIndiIikKLSAgICAgICAgICAgIGlmIHJldCBpcyBOb25lOgotICAg
ICAgICAgICAgICAgIHJldCA9IHAKLSAgICAgICAgcmV0dXJuIHJldAotCi0gICAgZGVmIG1ha2Vm
aWxlKHNlbGYsIGV4dCwgKmFyZ3MsICoqa3dhcmdzKToKLSAgICAgICAgIiIiQ3JlYXRlIGEgbmV3
IGZpbGUgaW4gdGhlIHRlc3RkaXIuCi0KLSAgICAgICAgZXh0OiBUaGUgZXh0ZW5zaW9uIHRoZSBm
aWxlIHNob3VsZCB1c2UsIGluY2x1ZGluZyB0aGUgZG90LgotICAgICAgICAgICBFLmcuICIucHki
LgotCi0gICAgICAgIGFyZ3M6IEFsbCBhcmdzIHdpbGwgYmUgdHJlYXRlZCBhcyBzdHJpbmdzIGFu
ZCBqb2luZWQgdXNpbmcKLSAgICAgICAgICAgbmV3bGluZXMuICBUaGUgcmVzdWx0IHdpbGwgYmUg
d3JpdHRlbiBhcyBjb250ZW50cyB0byB0aGUKLSAgICAgICAgICAgZmlsZS4gIFRoZSBuYW1lIG9m
IHRoZSBmaWxlIHdpbGwgYmUgYmFzZWQgb24gdGhlIHRlc3QKLSAgICAgICAgICAgZnVuY3Rpb24g
cmVxdWVzdGluZyB0aGlzIGZpeHR1cmUuCi0gICAgICAgICAgIEUuZy4gInRlc3RkaXIubWFrZWZp
bGUoJy50eHQnLCAnbGluZTEnLCAnbGluZTInKSIKLQotICAgICAgICBrd2FyZ3M6IEVhY2gga2V5
d29yZCBpcyB0aGUgbmFtZSBvZiBhIGZpbGUsIHdoaWxlIHRoZSB2YWx1ZSBvZgotICAgICAgICAg
ICBpdCB3aWxsIGJlIHdyaXR0ZW4gYXMgY29udGVudHMgb2YgdGhlIGZpbGUuCi0gICAgICAgICAg
IEUuZy4gInRlc3RkaXIubWFrZWZpbGUoJy5pbmknLCBweXRlc3Q9J1tweXRlc3RdXG5hZGRvcHRz
PS1yc1xuJykiCi0KLSAgICAgICAgIiIiCi0gICAgICAgIHJldHVybiBzZWxmLl9tYWtlZmlsZShl
eHQsIGFyZ3MsIGt3YXJncykKLQotICAgIGRlZiBtYWtlY29uZnRlc3Qoc2VsZiwgc291cmNlKToK
LSAgICAgICAgIiIiV3JpdGUgYSBjb250ZXN0LnB5IGZpbGUgd2l0aCAnc291cmNlJyBhcyBjb250
ZW50cy4iIiIKLSAgICAgICAgcmV0dXJuIHNlbGYubWFrZXB5ZmlsZShjb25mdGVzdD1zb3VyY2Up
Ci0KLSAgICBkZWYgbWFrZWluaShzZWxmLCBzb3VyY2UpOgotICAgICAgICAiIiJXcml0ZSBhIHRv
eC5pbmkgZmlsZSB3aXRoICdzb3VyY2UnIGFzIGNvbnRlbnRzLiIiIgotICAgICAgICByZXR1cm4g
c2VsZi5tYWtlZmlsZSgnLmluaScsIHRveD1zb3VyY2UpCi0KLSAgICBkZWYgZ2V0aW5pY2ZnKHNl
bGYsIHNvdXJjZSk6Ci0gICAgICAgICIiIlJldHVybiB0aGUgcHl0ZXN0IHNlY3Rpb24gZnJvbSB0
aGUgdG94LmluaSBjb25maWcgZmlsZS4iIiIKLSAgICAgICAgcCA9IHNlbGYubWFrZWluaShzb3Vy
Y2UpCi0gICAgICAgIHJldHVybiBweS5pbmljb25maWcuSW5pQ29uZmlnKHApWydweXRlc3QnXQot
Ci0gICAgZGVmIG1ha2VweWZpbGUoc2VsZiwgKmFyZ3MsICoqa3dhcmdzKToKLSAgICAgICAgIiIi
U2hvcnRjdXQgZm9yIC5tYWtlZmlsZSgpIHdpdGggYSAucHkgZXh0ZW5zaW9uLiIiIgotICAgICAg
ICByZXR1cm4gc2VsZi5fbWFrZWZpbGUoJy5weScsIGFyZ3MsIGt3YXJncykKLQotICAgIGRlZiBt
YWtldHh0ZmlsZShzZWxmLCAqYXJncywgKiprd2FyZ3MpOgotICAgICAgICAiIiJTaG9ydGN1dCBm
b3IgLm1ha2VmaWxlKCkgd2l0aCBhIC50eHQgZXh0ZW5zaW9uLiIiIgotICAgICAgICByZXR1cm4g
c2VsZi5fbWFrZWZpbGUoJy50eHQnLCBhcmdzLCBrd2FyZ3MpCi0KLSAgICBkZWYgc3lzcGF0aGlu
c2VydChzZWxmLCBwYXRoPU5vbmUpOgotICAgICAgICAiIiJQcmVwZW5kIGEgZGlyZWN0b3J5IHRv
IHN5cy5wYXRoLCBkZWZhdWx0cyB0byA6cHk6YXR0cjpgdG1wZGlyYC4KLQotICAgICAgICBUaGlz
IGlzIHVuZG9uZSBhdXRvbWF0aWNhbGx5IGFmdGVyIHRoZSB0ZXN0LgotICAgICAgICAiIiIKLSAg
ICAgICAgaWYgcGF0aCBpcyBOb25lOgotICAgICAgICAgICAgcGF0aCA9IHNlbGYudG1wZGlyCi0g
ICAgICAgIHN5cy5wYXRoLmluc2VydCgwLCBzdHIocGF0aCkpCi0gICAgICAgICMgYSBjYWxsIHRv
IHN5c3BhdGhpbnNlcnQoKSB1c3VhbGx5IG1lYW5zIHRoYXQgdGhlIGNhbGxlcgotICAgICAgICAj
IHdhbnRzIHRvIGltcG9ydCBzb21lIGR5bmFtaWNhbGx5IGNyZWF0ZWQgZmlsZXMuCi0gICAgICAg
ICMgd2l0aCBweXRob24zIHdlIHRodXMgaW52YWxpZGF0ZSBpbXBvcnQgY2FjaGVzLgotICAgICAg
ICBzZWxmLl9wb3NzaWJseV9pbnZhbGlkYXRlX2ltcG9ydF9jYWNoZXMoKQotCi0gICAgZGVmIF9w
b3NzaWJseV9pbnZhbGlkYXRlX2ltcG9ydF9jYWNoZXMoc2VsZik6Ci0gICAgICAgICMgaW52YWxp
ZGF0ZSBjYWNoZXMgaWYgd2UgY2FuIChweTMzIGFuZCBhYm92ZSkKLSAgICAgICAgdHJ5OgotICAg
ICAgICAgICAgaW1wb3J0IGltcG9ydGxpYgotICAgICAgICBleGNlcHQgSW1wb3J0RXJyb3I6Ci0g
ICAgICAgICAgICBwYXNzCi0gICAgICAgIGVsc2U6Ci0gICAgICAgICAgICBpZiBoYXNhdHRyKGlt
cG9ydGxpYiwgImludmFsaWRhdGVfY2FjaGVzIik6Ci0gICAgICAgICAgICAgICAgaW1wb3J0bGli
LmludmFsaWRhdGVfY2FjaGVzKCkKLQotICAgIGRlZiBta2RpcihzZWxmLCBuYW1lKToKLSAgICAg
ICAgIiIiQ3JlYXRlIGEgbmV3IChzdWIpZGlyZWN0b3J5LiIiIgotICAgICAgICByZXR1cm4gc2Vs
Zi50bXBkaXIubWtkaXIobmFtZSkKLQotICAgIGRlZiBta3B5ZGlyKHNlbGYsIG5hbWUpOgotICAg
ICAgICAiIiJDcmVhdGUgYSBuZXcgcHl0aG9uIHBhY2thZ2UuCi0KLSAgICAgICAgVGhpcyBjcmVh
dGVzIGEgKHN1YilkaXJlY3Rvcnkgd2l0aCBhbiBlbXB0eSBgYF9faW5pdF9fLnB5YGAKLSAgICAg
ICAgZmlsZSBzbyB0aGF0IGlzIHJlY29nbmlzZWQgYXMgYSBweXRob24gcGFja2FnZS4KLQotICAg
ICAgICAiIiIKLSAgICAgICAgcCA9IHNlbGYubWtkaXIobmFtZSkKLSAgICAgICAgcC5lbnN1cmUo
Il9faW5pdF9fLnB5IikKLSAgICAgICAgcmV0dXJuIHAKLQotICAgIFNlc3Npb24gPSBTZXNzaW9u
Ci0KLSAgICBkZWYgZ2V0bm9kZShzZWxmLCBjb25maWcsIGFyZyk6Ci0gICAgICAgICIiIlJldHVy
biB0aGUgY29sbGVjdGlvbiBub2RlIG9mIGEgZmlsZS4KLQotICAgICAgICA6cGFyYW0gY29uZmln
OiA6cHk6Y2xhc3M6YF9weXRlc3QuY29uZmlnLkNvbmZpZ2AgaW5zdGFuY2UsIHNlZQotICAgICAg
ICAgICA6cHk6bWV0aDpgcGFyc2Vjb25maWdgIGFuZCA6cHk6bWV0aDpgcGFyc2Vjb25maWd1cmVg
IHRvCi0gICAgICAgICAgIGNyZWF0ZSB0aGUgY29uZmlndXJhdGlvbi4KLQotICAgICAgICA6cGFy
YW0gYXJnOiBBIDpweTpjbGFzczpgcHkucGF0aC5sb2NhbGAgaW5zdGFuY2Ugb2YgdGhlIGZpbGUu
Ci0KLSAgICAgICAgIiIiCi0gICAgICAgIHNlc3Npb24gPSBTZXNzaW9uKGNvbmZpZykKLSAgICAg
ICAgYXNzZXJ0ICc6Oicgbm90IGluIHN0cihhcmcpCi0gICAgICAgIHAgPSBweS5wYXRoLmxvY2Fs
KGFyZykKLSAgICAgICAgY29uZmlnLmhvb2sucHl0ZXN0X3Nlc3Npb25zdGFydChzZXNzaW9uPXNl
c3Npb24pCi0gICAgICAgIHJlcyA9IHNlc3Npb24ucGVyZm9ybV9jb2xsZWN0KFtzdHIocCldLCBn
ZW5pdGVtcz1GYWxzZSlbMF0KLSAgICAgICAgY29uZmlnLmhvb2sucHl0ZXN0X3Nlc3Npb25maW5p
c2goc2Vzc2lvbj1zZXNzaW9uLCBleGl0c3RhdHVzPUVYSVRfT0spCi0gICAgICAgIHJldHVybiBy
ZXMKLQotICAgIGRlZiBnZXRwYXRobm9kZShzZWxmLCBwYXRoKToKLSAgICAgICAgIiIiUmV0dXJu
IHRoZSBjb2xsZWN0aW9uIG5vZGUgb2YgYSBmaWxlLgotCi0gICAgICAgIFRoaXMgaXMgbGlrZSA6
cHk6bWV0aDpgZ2V0bm9kZWAgYnV0IHVzZXMKLSAgICAgICAgOnB5Om1ldGg6YHBhcnNlY29uZmln
dXJlYCB0byBjcmVhdGUgdGhlIChjb25maWd1cmVkKSBweXRlc3QKLSAgICAgICAgQ29uZmlnIGlu
c3RhbmNlLgotCi0gICAgICAgIDpwYXJhbSBwYXRoOiBBIDpweTpjbGFzczpgcHkucGF0aC5sb2Nh
bGAgaW5zdGFuY2Ugb2YgdGhlIGZpbGUuCi0KLSAgICAgICAgIiIiCi0gICAgICAgIGNvbmZpZyA9
IHNlbGYucGFyc2Vjb25maWd1cmUocGF0aCkKLSAgICAgICAgc2Vzc2lvbiA9IFNlc3Npb24oY29u
ZmlnKQotICAgICAgICB4ID0gc2Vzc2lvbi5mc3BhdGguYmVzdHJlbHBhdGgocGF0aCkKLSAgICAg
ICAgY29uZmlnLmhvb2sucHl0ZXN0X3Nlc3Npb25zdGFydChzZXNzaW9uPXNlc3Npb24pCi0gICAg
ICAgIHJlcyA9IHNlc3Npb24ucGVyZm9ybV9jb2xsZWN0KFt4XSwgZ2VuaXRlbXM9RmFsc2UpWzBd
Ci0gICAgICAgIGNvbmZpZy5ob29rLnB5dGVzdF9zZXNzaW9uZmluaXNoKHNlc3Npb249c2Vzc2lv
biwgZXhpdHN0YXR1cz1FWElUX09LKQotICAgICAgICByZXR1cm4gcmVzCi0KLSAgICBkZWYgZ2Vu
aXRlbXMoc2VsZiwgY29saXRlbXMpOgotICAgICAgICAiIiJHZW5lcmF0ZSBhbGwgdGVzdCBpdGVt
cyBmcm9tIGEgY29sbGVjdGlvbiBub2RlLgotCi0gICAgICAgIFRoaXMgcmVjdXJzZXMgaW50byB0
aGUgY29sbGVjdGlvbiBub2RlIGFuZCByZXR1cm5zIGEgbGlzdCBvZgotICAgICAgICBhbGwgdGhl
IHRlc3QgaXRlbXMgY29udGFpbmVkIHdpdGhpbi4KLQotICAgICAgICAiIiIKLSAgICAgICAgc2Vz
c2lvbiA9IGNvbGl0ZW1zWzBdLnNlc3Npb24KLSAgICAgICAgcmVzdWx0ID0gW10KLSAgICAgICAg
Zm9yIGNvbGl0ZW0gaW4gY29saXRlbXM6Ci0gICAgICAgICAgICByZXN1bHQuZXh0ZW5kKHNlc3Np
b24uZ2VuaXRlbXMoY29saXRlbSkpCi0gICAgICAgIHJldHVybiByZXN1bHQKLQotICAgIGRlZiBy
dW5pdGVtKHNlbGYsIHNvdXJjZSk6Ci0gICAgICAgICIiIlJ1biB0aGUgInRlc3RfZnVuYyIgSXRl
bS4KLQotICAgICAgICBUaGUgY2FsbGluZyB0ZXN0IGluc3RhbmNlICh0aGUgY2xhc3Mgd2hpY2gg
Y29udGFpbnMgdGhlIHRlc3QKLSAgICAgICAgbWV0aG9kKSBtdXN0IHByb3ZpZGUgYSBgYC5nZXRy
dW5uZXIoKWBgIG1ldGhvZCB3aGljaCBzaG91bGQKLSAgICAgICAgcmV0dXJuIGEgcnVubmVyIHdo
aWNoIGNhbiBydW4gdGhlIHRlc3QgcHJvdG9jb2wgZm9yIGEgc2luZ2xlCi0gICAgICAgIGl0ZW0s
IGxpa2UgZS5nLiA6cHk6ZnVuYzpgX3B5dGVzdC5ydW5uZXIucnVudGVzdHByb3RvY29sYC4KLQot
ICAgICAgICAiIiIKLSAgICAgICAgIyB1c2VkIGZyb20gcnVubmVyIGZ1bmN0aW9uYWwgdGVzdHMK
LSAgICAgICAgaXRlbSA9IHNlbGYuZ2V0aXRlbShzb3VyY2UpCi0gICAgICAgICMgdGhlIHRlc3Qg
Y2xhc3Mgd2hlcmUgd2UgYXJlIGNhbGxlZCBmcm9tIHdhbnRzIHRvIHByb3ZpZGUgdGhlIHJ1bm5l
cgotICAgICAgICB0ZXN0Y2xhc3NpbnN0YW5jZSA9IHNlbGYucmVxdWVzdC5pbnN0YW5jZQotICAg
ICAgICBydW5uZXIgPSB0ZXN0Y2xhc3NpbnN0YW5jZS5nZXRydW5uZXIoKQotICAgICAgICByZXR1
cm4gcnVubmVyKGl0ZW0pCi0KLSAgICBkZWYgaW5saW5lX3J1bnNvdXJjZShzZWxmLCBzb3VyY2Us
ICpjbWRsaW5lYXJncyk6Ci0gICAgICAgICIiIlJ1biBhIHRlc3QgbW9kdWxlIGluIHByb2Nlc3Mg
dXNpbmcgYGBweXRlc3QubWFpbigpYGAuCi0KLSAgICAgICAgVGhpcyBydW4gd3JpdGVzICJzb3Vy
Y2UiIGludG8gYSB0ZW1wb3JhcnkgZmlsZSBhbmQgcnVucwotICAgICAgICBgYHB5dGVzdC5tYWlu
KClgYCBvbiBpdCwgcmV0dXJuaW5nIGEgOnB5OmNsYXNzOmBIb29rUmVjb3JkZXJgCi0gICAgICAg
IGluc3RhbmNlIGZvciB0aGUgcmVzdWx0LgotCi0gICAgICAgIDpwYXJhbSBzb3VyY2U6IFRoZSBz
b3VyY2UgY29kZSBvZiB0aGUgdGVzdCBtb2R1bGUuCi0KLSAgICAgICAgOnBhcmFtIGNtZGxpbmVh
cmdzOiBBbnkgZXh0cmEgY29tbWFuZCBsaW5lIGFyZ3VtZW50cyB0byB1c2UuCi0KLSAgICAgICAg
OnJldHVybjogOnB5OmNsYXNzOmBIb29rUmVjb3JkZXJgIGluc3RhbmNlIG9mIHRoZSByZXN1bHQu
Ci0KLSAgICAgICAgIiIiCi0gICAgICAgIHAgPSBzZWxmLm1ha2VweWZpbGUoc291cmNlKQotICAg
ICAgICB2YWx1ZXMgPSBsaXN0KGNtZGxpbmVhcmdzKSArIFtwXQotICAgICAgICByZXR1cm4gc2Vs
Zi5pbmxpbmVfcnVuKCp2YWx1ZXMpCi0KLSAgICBkZWYgaW5saW5lX2dlbml0ZW1zKHNlbGYsICph
cmdzKToKLSAgICAgICAgIiIiUnVuIGBgcHl0ZXN0Lm1haW4oWyctLWNvbGxlY3Rvbmx5J10pYGAg
aW4tcHJvY2Vzcy4KLQotICAgICAgICBSZXR1cm5zIGEgdHVwbGUgb2YgdGhlIGNvbGxlY3RlZCBp
dGVtcyBhbmQgYQotICAgICAgICA6cHk6Y2xhc3M6YEhvb2tSZWNvcmRlcmAgaW5zdGFuY2UuCi0K
LSAgICAgICAgVGhpcyBydW5zIHRoZSA6cHk6ZnVuYzpgcHl0ZXN0Lm1haW5gIGZ1bmN0aW9uIHRv
IHJ1biBhbGwgb2YKLSAgICAgICAgcHl0ZXN0IGluc2lkZSB0aGUgdGVzdCBwcm9jZXNzIGl0c2Vs
ZiBsaWtlCi0gICAgICAgIDpweTptZXRoOmBpbmxpbmVfcnVuYC4gIEhvd2V2ZXIgdGhlIHJldHVy
biB2YWx1ZSBpcyBhIHR1cGxlIG9mCi0gICAgICAgIHRoZSBjb2xsZWN0aW9uIGl0ZW1zIGFuZCBh
IDpweTpjbGFzczpgSG9va1JlY29yZGVyYCBpbnN0YW5jZS4KLQotICAgICAgICAiIiIKLSAgICAg
ICAgcmVjID0gc2VsZi5pbmxpbmVfcnVuKCItLWNvbGxlY3Qtb25seSIsICphcmdzKQotICAgICAg
ICBpdGVtcyA9IFt4Lml0ZW0gZm9yIHggaW4gcmVjLmdldGNhbGxzKCJweXRlc3RfaXRlbWNvbGxl
Y3RlZCIpXQotICAgICAgICByZXR1cm4gaXRlbXMsIHJlYwotCi0gICAgZGVmIGlubGluZV9ydW4o
c2VsZiwgKmFyZ3MsICoqa3dhcmdzKToKLSAgICAgICAgIiIiUnVuIGBgcHl0ZXN0Lm1haW4oKWBg
IGluLXByb2Nlc3MsIHJldHVybmluZyBhIEhvb2tSZWNvcmRlci4KLQotICAgICAgICBUaGlzIHJ1
bnMgdGhlIDpweTpmdW5jOmBweXRlc3QubWFpbmAgZnVuY3Rpb24gdG8gcnVuIGFsbCBvZgotICAg
ICAgICBweXRlc3QgaW5zaWRlIHRoZSB0ZXN0IHByb2Nlc3MgaXRzZWxmLiAgVGhpcyBtZWFucyBp
dCBjYW4KLSAgICAgICAgcmV0dXJuIGEgOnB5OmNsYXNzOmBIb29rUmVjb3JkZXJgIGluc3RhbmNl
IHdoaWNoIGdpdmVzIG1vcmUKLSAgICAgICAgZGV0YWlsZWQgcmVzdWx0cyBmcm9tIHRoZW4gcnVu
IHRoZW4gY2FuIGJlIGRvbmUgYnkgbWF0Y2hpbmcKLSAgICAgICAgc3Rkb3V0L3N0ZGVyciBmcm9t
IDpweTptZXRoOmBydW5weXRlc3RgLgotCi0gICAgICAgIDpwYXJhbSBhcmdzOiBBbnkgY29tbWFu
ZCBsaW5lIGFyZ3VtZW50cyB0byBwYXNzIHRvCi0gICAgICAgICAgIDpweTpmdW5jOmBweXRlc3Qu
bWFpbmAuCi0KLSAgICAgICAgOnBhcmFtIHBsdWdpbjogKGtleXdvcmQtb25seSkgRXh0cmEgcGx1
Z2luIGluc3RhbmNlcyB0aGUKLSAgICAgICAgICAgYGBweXRlc3QubWFpbigpYGAgaW5zdGFuY2Ug
c2hvdWxkIHVzZS4KLQotICAgICAgICA6cmV0dXJuOiBBIDpweTpjbGFzczpgSG9va1JlY29yZGVy
YCBpbnN0YW5jZS4KLSAgICAgICAgIiIiCi0gICAgICAgICMgV2hlbiBydW5uaW5nIHB5LnRlc3Qg
aW5saW5lIGFueSBwbHVnaW5zIGFjdGl2ZSBpbiB0aGUgbWFpbgotICAgICAgICAjIHRlc3QgcHJv
Y2VzcyBhcmUgYWxyZWFkeSBpbXBvcnRlZC4gIFNvIHRoaXMgZGlzYWJsZXMgdGhlCi0gICAgICAg
ICMgd2FybmluZyB3aGljaCB3aWxsIHRyaWdnZXIgdG8gc2F5IHRoZXkgY2FuIG5vIGxvbmdlciBi
ZQotICAgICAgICAjIHJld3JpdHRlbiwgd2hpY2ggaXMgZmluZSBhcyB0aGV5IGFyZSBhbHJlYWR5
IHJld3JpdHRlbi4KLSAgICAgICAgb3JpZ193YXJuID0gQXNzZXJ0aW9uUmV3cml0aW5nSG9vay5f
d2Fybl9hbHJlYWR5X2ltcG9ydGVkCi0KLSAgICAgICAgZGVmIHJldmVydCgpOgotICAgICAgICAg
ICAgQXNzZXJ0aW9uUmV3cml0aW5nSG9vay5fd2Fybl9hbHJlYWR5X2ltcG9ydGVkID0gb3JpZ193
YXJuCi0KLSAgICAgICAgc2VsZi5yZXF1ZXN0LmFkZGZpbmFsaXplcihyZXZlcnQpCi0gICAgICAg
IEFzc2VydGlvblJld3JpdGluZ0hvb2suX3dhcm5fYWxyZWFkeV9pbXBvcnRlZCA9IGxhbWJkYSAq
YTogTm9uZQotCi0gICAgICAgIHJlYyA9IFtdCi0KLSAgICAgICAgY2xhc3MgQ29sbGVjdDoKLSAg
ICAgICAgICAgIGRlZiBweXRlc3RfY29uZmlndXJlKHgsIGNvbmZpZyk6Ci0gICAgICAgICAgICAg
ICAgcmVjLmFwcGVuZChzZWxmLm1ha2VfaG9va19yZWNvcmRlcihjb25maWcucGx1Z2lubWFuYWdl
cikpCi0KLSAgICAgICAgcGx1Z2lucyA9IGt3YXJncy5nZXQoInBsdWdpbnMiKSBvciBbXQotICAg
ICAgICBwbHVnaW5zLmFwcGVuZChDb2xsZWN0KCkpCi0gICAgICAgIHJldCA9IHB5dGVzdC5tYWlu
KGxpc3QoYXJncyksIHBsdWdpbnM9cGx1Z2lucykKLSAgICAgICAgc2VsZi5kZWxldGVfbG9hZGVk
X21vZHVsZXMoKQotICAgICAgICBpZiBsZW4ocmVjKSA9PSAxOgotICAgICAgICAgICAgcmVwcmVj
ID0gcmVjLnBvcCgpCi0gICAgICAgIGVsc2U6Ci0gICAgICAgICAgICBjbGFzcyByZXByZWM6Ci0g
ICAgICAgICAgICAgICAgcGFzcwotICAgICAgICByZXByZWMucmV0ID0gcmV0Ci0KLSAgICAgICAg
IyB0eXBpY2FsbHkgd2UgcmVyYWlzZSBrZXlib2FyZCBpbnRlcnJ1cHRzIGZyb20gdGhlIGNoaWxk
IHJ1bgotICAgICAgICAjIGJlY2F1c2UgaXQncyBvdXIgdXNlciByZXF1ZXN0aW5nIGludGVycnVw
dGlvbiBvZiB0aGUgdGVzdGluZwotICAgICAgICBpZiByZXQgPT0gMiBhbmQgbm90IGt3YXJncy5n
ZXQoIm5vX3JlcmFpc2VfY3RybGMiKToKLSAgICAgICAgICAgIGNhbGxzID0gcmVwcmVjLmdldGNh
bGxzKCJweXRlc3Rfa2V5Ym9hcmRfaW50ZXJydXB0IikKLSAgICAgICAgICAgIGlmIGNhbGxzIGFu
ZCBjYWxsc1stMV0uZXhjaW5mby50eXBlID09IEtleWJvYXJkSW50ZXJydXB0OgotICAgICAgICAg
ICAgICAgIHJhaXNlIEtleWJvYXJkSW50ZXJydXB0KCkKLSAgICAgICAgcmV0dXJuIHJlcHJlYwot
Ci0gICAgZGVmIHJ1bnB5dGVzdF9pbnByb2Nlc3Moc2VsZiwgKmFyZ3MsICoqa3dhcmdzKToKLSAg
ICAgICAgIiIiIFJldHVybiByZXN1bHQgb2YgcnVubmluZyBweXRlc3QgaW4tcHJvY2VzcywgcHJv
dmlkaW5nIGEgc2ltaWxhcgotICAgICAgICBpbnRlcmZhY2UgdG8gd2hhdCBzZWxmLnJ1bnB5dGVz
dCgpIHByb3ZpZGVzLiAiIiIKLSAgICAgICAgaWYga3dhcmdzLmdldCgic3lzcGF0aGluc2VydCIp
OgotICAgICAgICAgICAgc2VsZi5zeXNwYXRoaW5zZXJ0KCkKLSAgICAgICAgbm93ID0gdGltZS50
aW1lKCkKLSAgICAgICAgY2FwdHVyZSA9IE11bHRpQ2FwdHVyZShDYXB0dXJlPVN5c0NhcHR1cmUp
Ci0gICAgICAgIGNhcHR1cmUuc3RhcnRfY2FwdHVyaW5nKCkKLSAgICAgICAgdHJ5OgotICAgICAg
ICAgICAgdHJ5OgotICAgICAgICAgICAgICAgIHJlcHJlYyA9IHNlbGYuaW5saW5lX3J1bigqYXJn
cywgKiprd2FyZ3MpCi0gICAgICAgICAgICBleGNlcHQgU3lzdGVtRXhpdCBhcyBlOgotCi0gICAg
ICAgICAgICAgICAgY2xhc3MgcmVwcmVjOgotICAgICAgICAgICAgICAgICAgICByZXQgPSBlLmFy
Z3NbMF0KLQotICAgICAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbjoKLSAgICAgICAgICAgICAgICB0
cmFjZWJhY2sucHJpbnRfZXhjKCkKLQotICAgICAgICAgICAgICAgIGNsYXNzIHJlcHJlYzoKLSAg
ICAgICAgICAgICAgICAgICAgcmV0ID0gMwotICAgICAgICBmaW5hbGx5OgotICAgICAgICAgICAg
b3V0LCBlcnIgPSBjYXB0dXJlLnJlYWRvdXRlcnIoKQotICAgICAgICAgICAgY2FwdHVyZS5zdG9w
X2NhcHR1cmluZygpCi0gICAgICAgICAgICBzeXMuc3Rkb3V0LndyaXRlKG91dCkKLSAgICAgICAg
ICAgIHN5cy5zdGRlcnIud3JpdGUoZXJyKQotCi0gICAgICAgIHJlcyA9IFJ1blJlc3VsdChyZXBy
ZWMucmV0LAotICAgICAgICAgICAgICAgICAgICAgICAgb3V0LnNwbGl0KCJcbiIpLCBlcnIuc3Bs
aXQoIlxuIiksCi0gICAgICAgICAgICAgICAgICAgICAgICB0aW1lLnRpbWUoKSAtIG5vdykKLSAg
ICAgICAgcmVzLnJlcHJlYyA9IHJlcHJlYwotICAgICAgICByZXR1cm4gcmVzCi0KLSAgICBkZWYg
cnVucHl0ZXN0KHNlbGYsICphcmdzLCAqKmt3YXJncyk6Ci0gICAgICAgICIiIiBSdW4gcHl0ZXN0
IGlubGluZSBvciBpbiBhIHN1YnByb2Nlc3MsIGRlcGVuZGluZyBvbiB0aGUgY29tbWFuZCBsaW5l
Ci0gICAgICAgIG9wdGlvbiAiLS1ydW5weXRlc3QiIGFuZCByZXR1cm4gYSA6cHk6Y2xhc3M6YFJ1
blJlc3VsdGAuCi0KLSAgICAgICAgIiIiCi0gICAgICAgIGFyZ3MgPSBzZWxmLl9lbnN1cmVfYmFz
ZXRlbXAoYXJncykKLSAgICAgICAgcmV0dXJuIHNlbGYuX3J1bnB5dGVzdF9tZXRob2QoKmFyZ3Ms
ICoqa3dhcmdzKQotCi0gICAgZGVmIF9lbnN1cmVfYmFzZXRlbXAoc2VsZiwgYXJncyk6Ci0gICAg
ICAgIGFyZ3MgPSBbc3RyKHgpIGZvciB4IGluIGFyZ3NdCi0gICAgICAgIGZvciB4IGluIGFyZ3M6
Ci0gICAgICAgICAgICBpZiBzdHIoeCkuc3RhcnRzd2l0aCgnLS1iYXNldGVtcCcpOgotICAgICAg
ICAgICAgICAgICMgcHJpbnQoImJhc2VkdGVtcCBleGlzdHM6ICVzIiAlKGFyZ3MsKSkKLSAgICAg
ICAgICAgICAgICBicmVhawotICAgICAgICBlbHNlOgotICAgICAgICAgICAgYXJncy5hcHBlbmQo
Ii0tYmFzZXRlbXA9JXMiICUgc2VsZi50bXBkaXIuZGlycGF0aCgnYmFzZXRlbXAnKSkKLSAgICAg
ICAgICAgICMgcHJpbnQoImFkZGVkIGJhc2V0ZW1wOiAlcyIgJShhcmdzLCkpCi0gICAgICAgIHJl
dHVybiBhcmdzCi0KLSAgICBkZWYgcGFyc2Vjb25maWcoc2VsZiwgKmFyZ3MpOgotICAgICAgICAi
IiJSZXR1cm4gYSBuZXcgcHl0ZXN0IENvbmZpZyBpbnN0YW5jZSBmcm9tIGdpdmVuIGNvbW1hbmRs
aW5lIGFyZ3MuCi0KLSAgICAgICAgVGhpcyBpbnZva2VzIHRoZSBweXRlc3QgYm9vdHN0cmFwcGlu
ZyBjb2RlIGluIF9weXRlc3QuY29uZmlnCi0gICAgICAgIHRvIGNyZWF0ZSBhIG5ldyA6cHk6Y2xh
c3M6YF9weXRlc3QuY29yZS5QbHVnaW5NYW5hZ2VyYCBhbmQKLSAgICAgICAgY2FsbCB0aGUgcHl0
ZXN0X2NtZGxpbmVfcGFyc2UgaG9vayB0byBjcmVhdGUgbmV3Ci0gICAgICAgIDpweTpjbGFzczpg
X3B5dGVzdC5jb25maWcuQ29uZmlnYCBpbnN0YW5jZS4KLQotICAgICAgICBJZiA6cHk6YXR0cjpg
cGx1Z2luc2AgaGFzIGJlZW4gcG9wdWxhdGVkIHRoZXkgc2hvdWxkIGJlIHBsdWdpbgotICAgICAg
ICBtb2R1bGVzIHdoaWNoIHdpbGwgYmUgcmVnaXN0ZXJlZCB3aXRoIHRoZSBQbHVnaW5NYW5hZ2Vy
LgotCi0gICAgICAgICIiIgotICAgICAgICBhcmdzID0gc2VsZi5fZW5zdXJlX2Jhc2V0ZW1wKGFy
Z3MpCi0KLSAgICAgICAgaW1wb3J0IF9weXRlc3QuY29uZmlnCi0gICAgICAgIGNvbmZpZyA9IF9w
eXRlc3QuY29uZmlnLl9wcmVwYXJlY29uZmlnKGFyZ3MsIHNlbGYucGx1Z2lucykKLSAgICAgICAg
IyB3ZSBkb24ndCBrbm93IHdoYXQgdGhlIHRlc3Qgd2lsbCBkbyB3aXRoIHRoaXMgaGFsZi1zZXR1
cCBjb25maWcKLSAgICAgICAgIyBvYmplY3QgYW5kIHRodXMgd2UgbWFrZSBzdXJlIGl0IGdldHMg
dW5jb25maWd1cmVkIHByb3Blcmx5IGluIGFueQotICAgICAgICAjIGNhc2UgKG90aGVyd2lzZSBj
YXB0dXJpbmcgY291bGQgc3RpbGwgYmUgYWN0aXZlLCBmb3IgZXhhbXBsZSkKLSAgICAgICAgc2Vs
Zi5yZXF1ZXN0LmFkZGZpbmFsaXplcihjb25maWcuX2Vuc3VyZV91bmNvbmZpZ3VyZSkKLSAgICAg
ICAgcmV0dXJuIGNvbmZpZwotCi0gICAgZGVmIHBhcnNlY29uZmlndXJlKHNlbGYsICphcmdzKToK
LSAgICAgICAgIiIiUmV0dXJuIGEgbmV3IHB5dGVzdCBjb25maWd1cmVkIENvbmZpZyBpbnN0YW5j
ZS4KLQotICAgICAgICBUaGlzIHJldHVybnMgYSBuZXcgOnB5OmNsYXNzOmBfcHl0ZXN0LmNvbmZp
Zy5Db25maWdgIGluc3RhbmNlCi0gICAgICAgIGxpa2UgOnB5Om1ldGg6YHBhcnNlY29uZmlnYCwg
YnV0IGFsc28gY2FsbHMgdGhlCi0gICAgICAgIHB5dGVzdF9jb25maWd1cmUgaG9vay4KLQotICAg
ICAgICAiIiIKLSAgICAgICAgY29uZmlnID0gc2VsZi5wYXJzZWNvbmZpZygqYXJncykKLSAgICAg
ICAgY29uZmlnLl9kb19jb25maWd1cmUoKQotICAgICAgICBzZWxmLnJlcXVlc3QuYWRkZmluYWxp
emVyKGNvbmZpZy5fZW5zdXJlX3VuY29uZmlndXJlKQotICAgICAgICByZXR1cm4gY29uZmlnCi0K
LSAgICBkZWYgZ2V0aXRlbShzZWxmLCBzb3VyY2UsIGZ1bmNuYW1lPSJ0ZXN0X2Z1bmMiKToKLSAg
ICAgICAgIiIiUmV0dXJuIHRoZSB0ZXN0IGl0ZW0gZm9yIGEgdGVzdCBmdW5jdGlvbi4KLQotICAg
ICAgICBUaGlzIHdyaXRlcyB0aGUgc291cmNlIHRvIGEgcHl0aG9uIGZpbGUgYW5kIHJ1bnMgcHl0
ZXN0J3MKLSAgICAgICAgY29sbGVjdGlvbiBvbiB0aGUgcmVzdWx0aW5nIG1vZHVsZSwgcmV0dXJu
aW5nIHRoZSB0ZXN0IGl0ZW0KLSAgICAgICAgZm9yIHRoZSByZXF1ZXN0ZWQgZnVuY3Rpb24gbmFt
ZS4KLQotICAgICAgICA6cGFyYW0gc291cmNlOiBUaGUgbW9kdWxlIHNvdXJjZS4KLQotICAgICAg
ICA6cGFyYW0gZnVuY25hbWU6IFRoZSBuYW1lIG9mIHRoZSB0ZXN0IGZ1bmN0aW9uIGZvciB3aGlj
aCB0aGUKLSAgICAgICAgICAgSXRlbSBtdXN0IGJlIHJldHVybmVkLgotCi0gICAgICAgICIiIgot
ICAgICAgICBpdGVtcyA9IHNlbGYuZ2V0aXRlbXMoc291cmNlKQotICAgICAgICBmb3IgaXRlbSBp
biBpdGVtczoKLSAgICAgICAgICAgIGlmIGl0ZW0ubmFtZSA9PSBmdW5jbmFtZToKLSAgICAgICAg
ICAgICAgICByZXR1cm4gaXRlbQotICAgICAgICBhc3NlcnQgMCwgIiVyIGl0ZW0gbm90IGZvdW5k
IGluIG1vZHVsZTpcbiVzXG5pdGVtczogJXMiICUgKAotICAgICAgICAgICAgICAgICAgZnVuY25h
bWUsIHNvdXJjZSwgaXRlbXMpCi0KLSAgICBkZWYgZ2V0aXRlbXMoc2VsZiwgc291cmNlKToKLSAg
ICAgICAgIiIiUmV0dXJuIGFsbCB0ZXN0IGl0ZW1zIGNvbGxlY3RlZCBmcm9tIHRoZSBtb2R1bGUu
Ci0KLSAgICAgICAgVGhpcyB3cml0ZXMgdGhlIHNvdXJjZSB0byBhIHB5dGhvbiBmaWxlIGFuZCBy
dW5zIHB5dGVzdCdzCi0gICAgICAgIGNvbGxlY3Rpb24gb24gdGhlIHJlc3VsdGluZyBtb2R1bGUs
IHJldHVybmluZyBhbGwgdGVzdCBpdGVtcwotICAgICAgICBjb250YWluZWQgd2l0aGluLgotCi0g
ICAgICAgICIiIgotICAgICAgICBtb2Rjb2wgPSBzZWxmLmdldG1vZHVsZWNvbChzb3VyY2UpCi0g
ICAgICAgIHJldHVybiBzZWxmLmdlbml0ZW1zKFttb2Rjb2xdKQotCi0gICAgZGVmIGdldG1vZHVs
ZWNvbChzZWxmLCBzb3VyY2UsIGNvbmZpZ2FyZ3M9KCksIHdpdGhpbml0PUZhbHNlKToKLSAgICAg
ICAgIiIiUmV0dXJuIHRoZSBtb2R1bGUgY29sbGVjdGlvbiBub2RlIGZvciBgYHNvdXJjZWBgLgot
Ci0gICAgICAgIFRoaXMgd3JpdGVzIGBgc291cmNlYGAgdG8gYSBmaWxlIHVzaW5nIDpweTptZXRo
OmBtYWtlcHlmaWxlYAotICAgICAgICBhbmQgdGhlbiBydW5zIHRoZSBweXRlc3QgY29sbGVjdGlv
biBvbiBpdCwgcmV0dXJuaW5nIHRoZQotICAgICAgICBjb2xsZWN0aW9uIG5vZGUgZm9yIHRoZSB0
ZXN0IG1vZHVsZS4KLQotICAgICAgICA6cGFyYW0gc291cmNlOiBUaGUgc291cmNlIGNvZGUgb2Yg
dGhlIG1vZHVsZSB0byBjb2xsZWN0LgotCi0gICAgICAgIDpwYXJhbSBjb25maWdhcmdzOiBBbnkg
ZXh0cmEgYXJndW1lbnRzIHRvIHBhc3MgdG8KLSAgICAgICAgICAgOnB5Om1ldGg6YHBhcnNlY29u
ZmlndXJlYC4KLQotICAgICAgICA6cGFyYW0gd2l0aGluaXQ6IFdoZXRoZXIgdG8gYWxzbyB3cml0
ZSBhIGBgX19pbml0X18ucHlgYCBmaWxlCi0gICAgICAgICAgIHRvIHRoZSB0ZW1wb3JhcnkgZGly
ZWN0b3J5IHRvIGVuc3VyZSBpdCBpcyBhIHBhY2thZ2UuCi0KLSAgICAgICAgIiIiCi0gICAgICAg
IGt3ID0ge3NlbGYucmVxdWVzdC5mdW5jdGlvbi5fX25hbWVfXzogU291cmNlKHNvdXJjZSkuc3Ry
aXAoKX0KLSAgICAgICAgcGF0aCA9IHNlbGYubWFrZXB5ZmlsZSgqKmt3KQotICAgICAgICBpZiB3
aXRoaW5pdDoKLSAgICAgICAgICAgIHNlbGYubWFrZXB5ZmlsZShfX2luaXRfXz0iIyIpCi0gICAg
ICAgIHNlbGYuY29uZmlnID0gY29uZmlnID0gc2VsZi5wYXJzZWNvbmZpZ3VyZShwYXRoLCAqY29u
ZmlnYXJncykKLSAgICAgICAgbm9kZSA9IHNlbGYuZ2V0bm9kZShjb25maWcsIHBhdGgpCi0KLSAg
ICAgICAgcmV0dXJuIG5vZGUKLQotICAgIGRlZiBjb2xsZWN0X2J5X25hbWUoc2VsZiwgbW9kY29s
LCBuYW1lKToKLSAgICAgICAgIiIiUmV0dXJuIHRoZSBjb2xsZWN0aW9uIG5vZGUgZm9yIG5hbWUg
ZnJvbSB0aGUgbW9kdWxlIGNvbGxlY3Rpb24uCi0KLSAgICAgICAgVGhpcyB3aWxsIHNlYXJjaCBh
IG1vZHVsZSBjb2xsZWN0aW9uIG5vZGUgZm9yIGEgY29sbGVjdGlvbgotICAgICAgICBub2RlIG1h
dGNoaW5nIHRoZSBnaXZlbiBuYW1lLgotCi0gICAgICAgIDpwYXJhbSBtb2Rjb2w6IEEgbW9kdWxl
IGNvbGxlY3Rpb24gbm9kZSwgc2VlCi0gICAgICAgICAgIDpweTptZXRoOmBnZXRtb2R1bGVjb2xg
LgotCi0gICAgICAgIDpwYXJhbSBuYW1lOiBUaGUgbmFtZSBvZiB0aGUgbm9kZSB0byByZXR1cm4u
Ci0KLSAgICAgICAgIiIiCi0gICAgICAgIGlmIG1vZGNvbCBub3QgaW4gc2VsZi5fbW9kX2NvbGxl
Y3Rpb25zOgotICAgICAgICAgICAgc2VsZi5fbW9kX2NvbGxlY3Rpb25zW21vZGNvbF0gPSBsaXN0
KG1vZGNvbC5jb2xsZWN0KCkpCi0gICAgICAgIGZvciBjb2xpdGVtIGluIHNlbGYuX21vZF9jb2xs
ZWN0aW9uc1ttb2Rjb2xdOgotICAgICAgICAgICAgaWYgY29saXRlbS5uYW1lID09IG5hbWU6Ci0g
ICAgICAgICAgICAgICAgcmV0dXJuIGNvbGl0ZW0KLQotICAgIGRlZiBwb3BlbihzZWxmLCBjbWRh
cmdzLCBzdGRvdXQsIHN0ZGVyciwgKiprdyk6Ci0gICAgICAgICIiIkludm9rZSBzdWJwcm9jZXNz
LlBvcGVuLgotCi0gICAgICAgIFRoaXMgY2FsbHMgc3VicHJvY2Vzcy5Qb3BlbiBtYWtpbmcgc3Vy
ZSB0aGUgY3VycmVudCB3b3JraW5nCi0gICAgICAgIGRpcmVjdG9yeSBpcyB0aGUgUFlUSE9OUEFU
SC4KLQotICAgICAgICBZb3UgcHJvYmFibHkgd2FudCB0byB1c2UgOnB5Om1ldGg6YHJ1bmAgaW5z
dGVhZC4KLQotICAgICAgICAiIiIKLSAgICAgICAgZW52ID0gb3MuZW52aXJvbi5jb3B5KCkKLSAg
ICAgICAgZW52WydQWVRIT05QQVRIJ10gPSBvcy5wYXRoc2VwLmpvaW4oZmlsdGVyKE5vbmUsIFsK
LSAgICAgICAgICAgIHN0cihvcy5nZXRjd2QoKSksIGVudi5nZXQoJ1BZVEhPTlBBVEgnLCAnJyld
KSkKLSAgICAgICAga3dbJ2VudiddID0gZW52Ci0KLSAgICAgICAgcG9wZW4gPSBzdWJwcm9jZXNz
LlBvcGVuKGNtZGFyZ3MsIHN0ZGluPXN1YnByb2Nlc3MuUElQRSwgc3Rkb3V0PXN0ZG91dCwgc3Rk
ZXJyPXN0ZGVyciwgKiprdykKLSAgICAgICAgcG9wZW4uc3RkaW4uY2xvc2UoKQotCi0gICAgICAg
IHJldHVybiBwb3BlbgotCi0gICAgZGVmIHJ1bihzZWxmLCAqY21kYXJncyk6Ci0gICAgICAgICIi
IlJ1biBhIGNvbW1hbmQgd2l0aCBhcmd1bWVudHMuCi0KLSAgICAgICAgUnVuIGEgcHJvY2VzcyB1
c2luZyBzdWJwcm9jZXNzLlBvcGVuIHNhdmluZyB0aGUgc3Rkb3V0IGFuZAotICAgICAgICBzdGRl
cnIuCi0KLSAgICAgICAgUmV0dXJucyBhIDpweTpjbGFzczpgUnVuUmVzdWx0YC4KLQotICAgICAg
ICAiIiIKLSAgICAgICAgcmV0dXJuIHNlbGYuX3J1bigqY21kYXJncykKLQotICAgIGRlZiBfcnVu
KHNlbGYsICpjbWRhcmdzKToKLSAgICAgICAgY21kYXJncyA9IFtzdHIoeCkgZm9yIHggaW4gY21k
YXJnc10KLSAgICAgICAgcDEgPSBzZWxmLnRtcGRpci5qb2luKCJzdGRvdXQiKQotICAgICAgICBw
MiA9IHNlbGYudG1wZGlyLmpvaW4oInN0ZGVyciIpCi0gICAgICAgIHByaW50KCJydW5uaW5nOiIs
ICcgJy5qb2luKGNtZGFyZ3MpKQotICAgICAgICBwcmludCgiICAgICBpbjoiLCBzdHIocHkucGF0
aC5sb2NhbCgpKSkKLSAgICAgICAgZjEgPSBjb2RlY3Mub3BlbihzdHIocDEpLCAidyIsIGVuY29k
aW5nPSJ1dGY4IikKLSAgICAgICAgZjIgPSBjb2RlY3Mub3BlbihzdHIocDIpLCAidyIsIGVuY29k
aW5nPSJ1dGY4IikKLSAgICAgICAgdHJ5OgotICAgICAgICAgICAgbm93ID0gdGltZS50aW1lKCkK
LSAgICAgICAgICAgIHBvcGVuID0gc2VsZi5wb3BlbihjbWRhcmdzLCBzdGRvdXQ9ZjEsIHN0ZGVy
cj1mMiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbG9zZV9mZHM9KHN5cy5wbGF0
Zm9ybSAhPSAid2luMzIiKSkKLSAgICAgICAgICAgIHJldCA9IHBvcGVuLndhaXQoKQotICAgICAg
ICBmaW5hbGx5OgotICAgICAgICAgICAgZjEuY2xvc2UoKQotICAgICAgICAgICAgZjIuY2xvc2Uo
KQotICAgICAgICBmMSA9IGNvZGVjcy5vcGVuKHN0cihwMSksICJyIiwgZW5jb2Rpbmc9InV0Zjgi
KQotICAgICAgICBmMiA9IGNvZGVjcy5vcGVuKHN0cihwMiksICJyIiwgZW5jb2Rpbmc9InV0Zjgi
KQotICAgICAgICB0cnk6Ci0gICAgICAgICAgICBvdXQgPSBmMS5yZWFkKCkuc3BsaXRsaW5lcygp
Ci0gICAgICAgICAgICBlcnIgPSBmMi5yZWFkKCkuc3BsaXRsaW5lcygpCi0gICAgICAgIGZpbmFs
bHk6Ci0gICAgICAgICAgICBmMS5jbG9zZSgpCi0gICAgICAgICAgICBmMi5jbG9zZSgpCi0gICAg
ICAgIHNlbGYuX2R1bXBfbGluZXMob3V0LCBzeXMuc3Rkb3V0KQotICAgICAgICBzZWxmLl9kdW1w
X2xpbmVzKGVyciwgc3lzLnN0ZGVycikKLSAgICAgICAgcmV0dXJuIFJ1blJlc3VsdChyZXQsIG91
dCwgZXJyLCB0aW1lLnRpbWUoKSAtIG5vdykKLQotICAgIGRlZiBfZHVtcF9saW5lcyhzZWxmLCBs
aW5lcywgZnApOgotICAgICAgICB0cnk6Ci0gICAgICAgICAgICBmb3IgbGluZSBpbiBsaW5lczoK
LSAgICAgICAgICAgICAgICBwcmludChsaW5lLCBmaWxlPWZwKQotICAgICAgICBleGNlcHQgVW5p
Y29kZUVuY29kZUVycm9yOgotICAgICAgICAgICAgcHJpbnQoImNvdWxkbid0IHByaW50IHRvICVz
IGJlY2F1c2Ugb2YgZW5jb2RpbmciICUgKGZwLCkpCi0KLSAgICBkZWYgX2dldHB5dGVzdGFyZ3Mo
c2VsZik6Ci0gICAgICAgICMgd2UgY2Fubm90IHVzZSAiKHN5cy5leGVjdXRhYmxlLHNjcmlwdCki
Ci0gICAgICAgICMgYmVjYXVzZSBvbiB3aW5kb3dzIHRoZSBzY3JpcHQgaXMgZS5nLiBhIHB5dGVz
dC5leGUKLSAgICAgICAgcmV0dXJuIChzeXMuZXhlY3V0YWJsZSwgUFlURVNUX0ZVTExQQVRIKSAj
IG5vcWEKLQotICAgIGRlZiBydW5weXRob24oc2VsZiwgc2NyaXB0KToKLSAgICAgICAgIiIiUnVu
IGEgcHl0aG9uIHNjcmlwdCB1c2luZyBzeXMuZXhlY3V0YWJsZSBhcyBpbnRlcnByZXRlci4KLQot
ICAgICAgICBSZXR1cm5zIGEgOnB5OmNsYXNzOmBSdW5SZXN1bHRgLgotICAgICAgICAiIiIKLSAg
ICAgICAgcmV0dXJuIHNlbGYucnVuKHN5cy5leGVjdXRhYmxlLCBzY3JpcHQpCi0KLSAgICBkZWYg
cnVucHl0aG9uX2Moc2VsZiwgY29tbWFuZCk6Ci0gICAgICAgICIiIlJ1biBweXRob24gLWMgImNv
bW1hbmQiLCByZXR1cm4gYSA6cHk6Y2xhc3M6YFJ1blJlc3VsdGAuIiIiCi0gICAgICAgIHJldHVy
biBzZWxmLnJ1bihzeXMuZXhlY3V0YWJsZSwgIi1jIiwgY29tbWFuZCkKLQotICAgIGRlZiBydW5w
eXRlc3Rfc3VicHJvY2VzcyhzZWxmLCAqYXJncywgKiprd2FyZ3MpOgotICAgICAgICAiIiJSdW4g
cHl0ZXN0IGFzIGEgc3VicHJvY2VzcyB3aXRoIGdpdmVuIGFyZ3VtZW50cy4KLQotICAgICAgICBB
bnkgcGx1Z2lucyBhZGRlZCB0byB0aGUgOnB5OmF0dHI6YHBsdWdpbnNgIGxpc3Qgd2lsbCBhZGRl
ZAotICAgICAgICB1c2luZyB0aGUgYGAtcGBgIGNvbW1hbmQgbGluZSBvcHRpb24uICBBZGR0aW9u
YWxseQotICAgICAgICBgYC0tYmFzZXRlbXBgYCBpcyB1c2VkIHB1dCBhbnkgdGVtcG9yYXJ5IGZp
bGVzIGFuZCBkaXJlY3RvcmllcwotICAgICAgICBpbiBhIG51bWJlcmVkIGRpcmVjdG9yeSBwcmVm
aXhlZCB3aXRoICJydW5weXRlc3QtIiBzbyB0aGV5IGRvCi0gICAgICAgIG5vdCBjb25mbGljdCB3
aXRoIHRoZSBub3JtYWwgbnVtYmVyZCBweXRlc3QgbG9jYXRpb24gZm9yCi0gICAgICAgIHRlbXBv
cmFyeSBmaWxlcyBhbmQgZGlyZWN0b3JpZXMuCi0KLSAgICAgICAgUmV0dXJucyBhIDpweTpjbGFz
czpgUnVuUmVzdWx0YC4KLQotICAgICAgICAiIiIKLSAgICAgICAgcCA9IHB5LnBhdGgubG9jYWwu
bWFrZV9udW1iZXJlZF9kaXIocHJlZml4PSJydW5weXRlc3QtIiwKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAga2VlcD1Ob25lLCByb290ZGlyPXNlbGYudG1wZGly
KQotICAgICAgICBhcmdzID0gKCctLWJhc2V0ZW1wPSVzJyAlIHAsICkgKyBhcmdzCi0gICAgICAg
ICMgZm9yIHggaW4gYXJnczoKLSAgICAgICAgIyAgICBpZiAnLS1jb25mY3V0ZGlyJyBpbiBzdHIo
eCk6Ci0gICAgICAgICMgICAgICAgIGJyZWFrCi0gICAgICAgICMgZWxzZToKLSAgICAgICAgIyAg
ICBwYXNzCi0gICAgICAgICMgICAgYXJncyA9ICgnLS1jb25mY3V0ZGlyPS4nLCkgKyBhcmdzCi0g
ICAgICAgIHBsdWdpbnMgPSBbeCBmb3IgeCBpbiBzZWxmLnBsdWdpbnMgaWYgaXNpbnN0YW5jZSh4
LCBzdHIpXQotICAgICAgICBpZiBwbHVnaW5zOgotICAgICAgICAgICAgYXJncyA9ICgnLXAnLCBw
bHVnaW5zWzBdKSArIGFyZ3MKLSAgICAgICAgYXJncyA9IHNlbGYuX2dldHB5dGVzdGFyZ3MoKSAr
IGFyZ3MKLSAgICAgICAgcmV0dXJuIHNlbGYucnVuKCphcmdzKQotCi0gICAgZGVmIHNwYXduX3B5
dGVzdChzZWxmLCBzdHJpbmcsIGV4cGVjdF90aW1lb3V0PTEwLjApOgotICAgICAgICAiIiJSdW4g
cHl0ZXN0IHVzaW5nIHBleHBlY3QuCi0KLSAgICAgICAgVGhpcyBtYWtlcyBzdXJlIHRvIHVzZSB0
aGUgcmlnaHQgcHl0ZXN0IGFuZCBzZXRzIHVwIHRoZQotICAgICAgICB0ZW1wb3JhcnkgZGlyZWN0
b3J5IGxvY2F0aW9ucy4KLQotICAgICAgICBUaGUgcGV4cGVjdCBjaGlsZCBpcyByZXR1cm5lZC4K
LQotICAgICAgICAiIiIKLSAgICAgICAgYmFzZXRlbXAgPSBzZWxmLnRtcGRpci5ta2RpcigidGVt
cC1wZXhwZWN0IikKLSAgICAgICAgaW52b2tlID0gIiAiLmpvaW4obWFwKHN0ciwgc2VsZi5fZ2V0
cHl0ZXN0YXJncygpKSkKLSAgICAgICAgY21kID0gIiVzIC0tYmFzZXRlbXA9JXMgJXMiICUgKGlu
dm9rZSwgYmFzZXRlbXAsIHN0cmluZykKLSAgICAgICAgcmV0dXJuIHNlbGYuc3Bhd24oY21kLCBl
eHBlY3RfdGltZW91dD1leHBlY3RfdGltZW91dCkKLQotICAgIGRlZiBzcGF3bihzZWxmLCBjbWQs
IGV4cGVjdF90aW1lb3V0PTEwLjApOgotICAgICAgICAiIiJSdW4gYSBjb21tYW5kIHVzaW5nIHBl
eHBlY3QuCi0KLSAgICAgICAgVGhlIHBleHBlY3QgY2hpbGQgaXMgcmV0dXJuZWQuCi0gICAgICAg
ICIiIgotICAgICAgICBwZXhwZWN0ID0gcHl0ZXN0LmltcG9ydG9yc2tpcCgicGV4cGVjdCIsICIz
LjAiKQotICAgICAgICBpZiBoYXNhdHRyKHN5cywgJ3B5cHlfdmVyc2lvbl9pbmZvJykgYW5kICc2
NCcgaW4gcGxhdGZvcm0ubWFjaGluZSgpOgotICAgICAgICAgICAgcHl0ZXN0LnNraXAoInB5cHkt
NjQgYml0IG5vdCBzdXBwb3J0ZWQiKQotICAgICAgICBpZiBzeXMucGxhdGZvcm0uc3RhcnRzd2l0
aCgiZnJlZWJzZCIpOgotICAgICAgICAgICAgcHl0ZXN0LnhmYWlsKCJwZXhwZWN0IGRvZXMgbm90
IHdvcmsgcmVsaWFibHkgb24gZnJlZWJzZCIpCi0gICAgICAgIGxvZ2ZpbGUgPSBzZWxmLnRtcGRp
ci5qb2luKCJzcGF3bi5vdXQiKS5vcGVuKCJ3YiIpCi0gICAgICAgIGNoaWxkID0gcGV4cGVjdC5z
cGF3bihjbWQsIGxvZ2ZpbGU9bG9nZmlsZSkKLSAgICAgICAgc2VsZi5yZXF1ZXN0LmFkZGZpbmFs
aXplcihsb2dmaWxlLmNsb3NlKQotICAgICAgICBjaGlsZC50aW1lb3V0ID0gZXhwZWN0X3RpbWVv
dXQKLSAgICAgICAgcmV0dXJuIGNoaWxkCi0KLQotZGVmIGdldGRlY29kZWQob3V0KToKLSAgICB0
cnk6Ci0gICAgICAgIHJldHVybiBvdXQuZGVjb2RlKCJ1dGYtOCIpCi0gICAgZXhjZXB0IFVuaWNv
ZGVEZWNvZGVFcnJvcjoKLSAgICAgICAgcmV0dXJuICJJTlRFUk5BTCBub3QtdXRmOC1kZWNvZGVh
YmxlLCB0cnVuY2F0ZWQgc3RyaW5nOlxuJXMiICUgKAotICAgICAgICAgICAgcHkuaW8uc2FmZXJl
cHIob3V0KSwpCi0KLQotY2xhc3MgTGluZUNvbXA6Ci0gICAgZGVmIF9faW5pdF9fKHNlbGYpOgot
ICAgICAgICBzZWxmLnN0cmluZ2lvID0gcHkuaW8uVGV4dElPKCkKLQotICAgIGRlZiBhc3NlcnRf
Y29udGFpbnNfbGluZXMoc2VsZiwgbGluZXMyKToKLSAgICAgICAgIiIiIGFzc2VydCB0aGF0IGxp
bmVzMiBhcmUgY29udGFpbmVkIChsaW5lYXJseSkgaW4gbGluZXMxLgotICAgICAgICAgICAgcmV0
dXJuIGEgbGlzdCBvZiBleHRyYWxpbmVzIGZvdW5kLgotICAgICAgICAiIiIKLSAgICAgICAgX190
cmFjZWJhY2toaWRlX18gPSBUcnVlCi0gICAgICAgIHZhbCA9IHNlbGYuc3RyaW5naW8uZ2V0dmFs
dWUoKQotICAgICAgICBzZWxmLnN0cmluZ2lvLnRydW5jYXRlKDApCi0gICAgICAgIHNlbGYuc3Ry
aW5naW8uc2VlaygwKQotICAgICAgICBsaW5lczEgPSB2YWwuc3BsaXQoIlxuIikKLSAgICAgICAg
cmV0dXJuIExpbmVNYXRjaGVyKGxpbmVzMSkuZm5tYXRjaF9saW5lcyhsaW5lczIpCi0KLQotY2xh
c3MgTGluZU1hdGNoZXI6Ci0gICAgIiIiRmxleGlibGUgbWF0Y2hpbmcgb2YgdGV4dC4KLQotICAg
IFRoaXMgaXMgYSBjb252ZW5pZW5jZSBjbGFzcyB0byB0ZXN0IGxhcmdlIHRleHRzIGxpa2UgdGhl
IG91dHB1dCBvZgotICAgIGNvbW1hbmRzLgotCi0gICAgVGhlIGNvbnN0cnVjdG9yIHRha2VzIGEg
bGlzdCBvZiBsaW5lcyB3aXRob3V0IHRoZWlyIHRyYWlsaW5nCi0gICAgbmV3bGluZXMsIGkuZS4g
YGB0ZXh0LnNwbGl0bGluZXMoKWBgLgotCi0gICAgIiIiCi0KLSAgICBkZWYgX19pbml0X18oc2Vs
ZiwgbGluZXMpOgotICAgICAgICBzZWxmLmxpbmVzID0gbGluZXMKLSAgICAgICAgc2VsZi5fbG9n
X291dHB1dCA9IFtdCi0KLSAgICBkZWYgc3RyKHNlbGYpOgotICAgICAgICAiIiJSZXR1cm4gdGhl
IGVudGlyZSBvcmlnaW5hbCB0ZXh0LiIiIgotICAgICAgICByZXR1cm4gIlxuIi5qb2luKHNlbGYu
bGluZXMpCi0KLSAgICBkZWYgX2dldGxpbmVzKHNlbGYsIGxpbmVzMik6Ci0gICAgICAgIGlmIGlz
aW5zdGFuY2UobGluZXMyLCBzdHIpOgotICAgICAgICAgICAgbGluZXMyID0gU291cmNlKGxpbmVz
MikKLSAgICAgICAgaWYgaXNpbnN0YW5jZShsaW5lczIsIFNvdXJjZSk6Ci0gICAgICAgICAgICBs
aW5lczIgPSBsaW5lczIuc3RyaXAoKS5saW5lcwotICAgICAgICByZXR1cm4gbGluZXMyCi0KLSAg
ICBkZWYgZm5tYXRjaF9saW5lc19yYW5kb20oc2VsZiwgbGluZXMyKToKLSAgICAgICAgIiIiQ2hl
Y2sgbGluZXMgZXhpc3QgaW4gdGhlIG91dHB1dCB1c2luZyBgYGZubWF0Y2guZm5tYXRjaGBgLCBp
biBhbnkgb3JkZXIuCi0KLSAgICAgICAgVGhlIGFyZ3VtZW50IGlzIGEgbGlzdCBvZiBsaW5lcyB3
aGljaCBoYXZlIHRvIG9jY3VyIGluIHRoZQotICAgICAgICBvdXRwdXQsIGluIGFueSBvcmRlci4K
LSAgICAgICAgIiIiCi0gICAgICAgIHNlbGYuX21hdGNoX2xpbmVzX3JhbmRvbShsaW5lczIsIGZu
bWF0Y2gpCi0KLSAgICBkZWYgcmVfbWF0Y2hfbGluZXNfcmFuZG9tKHNlbGYsIGxpbmVzMik6Ci0g
ICAgICAgICIiIkNoZWNrIGxpbmVzIGV4aXN0IGluIHRoZSBvdXRwdXQgdXNpbmcgYGByZS5tYXRj
aGBgLCBpbiBhbnkgb3JkZXIuCi0KLSAgICAgICAgVGhlIGFyZ3VtZW50IGlzIGEgbGlzdCBvZiBs
aW5lcyB3aGljaCBoYXZlIHRvIG9jY3VyIGluIHRoZQotICAgICAgICBvdXRwdXQsIGluIGFueSBv
cmRlci4KLQotICAgICAgICAiIiIKLSAgICAgICAgc2VsZi5fbWF0Y2hfbGluZXNfcmFuZG9tKGxp
bmVzMiwgbGFtYmRhIG5hbWUsIHBhdDogcmUubWF0Y2gocGF0LCBuYW1lKSkKLQotICAgIGRlZiBf
bWF0Y2hfbGluZXNfcmFuZG9tKHNlbGYsIGxpbmVzMiwgbWF0Y2hfZnVuYyk6Ci0gICAgICAgICIi
IkNoZWNrIGxpbmVzIGV4aXN0IGluIHRoZSBvdXRwdXQuCi0KLSAgICAgICAgVGhlIGFyZ3VtZW50
IGlzIGEgbGlzdCBvZiBsaW5lcyB3aGljaCBoYXZlIHRvIG9jY3VyIGluIHRoZQotICAgICAgICBv
dXRwdXQsIGluIGFueSBvcmRlci4gIEVhY2ggbGluZSBjYW4gY29udGFpbiBnbG9iIHdoaWxkY2Fy
ZHMuCi0KLSAgICAgICAgIiIiCi0gICAgICAgIGxpbmVzMiA9IHNlbGYuX2dldGxpbmVzKGxpbmVz
MikKLSAgICAgICAgZm9yIGxpbmUgaW4gbGluZXMyOgotICAgICAgICAgICAgZm9yIHggaW4gc2Vs
Zi5saW5lczoKLSAgICAgICAgICAgICAgICBpZiBsaW5lID09IHggb3IgbWF0Y2hfZnVuYyh4LCBs
aW5lKToKLSAgICAgICAgICAgICAgICAgICAgc2VsZi5fbG9nKCJtYXRjaGVkOiAiLCByZXByKGxp
bmUpKQotICAgICAgICAgICAgICAgICAgICBicmVhawotICAgICAgICAgICAgZWxzZToKLSAgICAg
ICAgICAgICAgICBzZWxmLl9sb2coImxpbmUgJXIgbm90IGZvdW5kIGluIG91dHB1dCIgJSBsaW5l
KQotICAgICAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3Ioc2VsZi5fbG9nX3RleHQpCi0KLSAg
ICBkZWYgZ2V0X2xpbmVzX2FmdGVyKHNlbGYsIGZubGluZSk6Ci0gICAgICAgICIiIlJldHVybiBh
bGwgbGluZXMgZm9sbG93aW5nIHRoZSBnaXZlbiBsaW5lIGluIHRoZSB0ZXh0LgotCi0gICAgICAg
IFRoZSBnaXZlbiBsaW5lIGNhbiBjb250YWluIGdsb2Igd2lsZGNhcmRzLgotICAgICAgICAiIiIK
LSAgICAgICAgZm9yIGksIGxpbmUgaW4gZW51bWVyYXRlKHNlbGYubGluZXMpOgotICAgICAgICAg
ICAgaWYgZm5saW5lID09IGxpbmUgb3IgZm5tYXRjaChsaW5lLCBmbmxpbmUpOgotICAgICAgICAg
ICAgICAgIHJldHVybiBzZWxmLmxpbmVzW2kgKyAxOl0KLSAgICAgICAgcmFpc2UgVmFsdWVFcnJv
cigibGluZSAlciBub3QgZm91bmQgaW4gb3V0cHV0IiAlIGZubGluZSkKLQotICAgIGRlZiBfbG9n
KHNlbGYsICphcmdzKToKLSAgICAgICAgc2VsZi5fbG9nX291dHB1dC5hcHBlbmQoJyAnLmpvaW4o
KHN0cih4KSBmb3IgeCBpbiBhcmdzKSkpCi0KLSAgICBAcHJvcGVydHkKLSAgICBkZWYgX2xvZ190
ZXh0KHNlbGYpOgotICAgICAgICByZXR1cm4gJ1xuJy5qb2luKHNlbGYuX2xvZ19vdXRwdXQpCi0K
LSAgICBkZWYgZm5tYXRjaF9saW5lcyhzZWxmLCBsaW5lczIpOgotICAgICAgICAiIiJTZWFyY2gg
Y2FwdHVyZWQgdGV4dCBmb3IgbWF0Y2hpbmcgbGluZXMgdXNpbmcgYGBmbm1hdGNoLmZubWF0Y2hg
YC4KLQotICAgICAgICBUaGUgYXJndW1lbnQgaXMgYSBsaXN0IG9mIGxpbmVzIHdoaWNoIGhhdmUg
dG8gbWF0Y2ggYW5kIGNhbgotICAgICAgICB1c2UgZ2xvYiB3aWxkY2FyZHMuICBJZiB0aGV5IGRv
IG5vdCBtYXRjaCBhIHB5dGVzdC5mYWlsKCkgaXMKLSAgICAgICAgY2FsbGVkLiAgVGhlIG1hdGNo
ZXMgYW5kIG5vbi1tYXRjaGVzIGFyZSBhbHNvIHByaW50ZWQgb24KLSAgICAgICAgc3Rkb3V0Lgot
Ci0gICAgICAgICIiIgotICAgICAgICBzZWxmLl9tYXRjaF9saW5lcyhsaW5lczIsIGZubWF0Y2gs
ICdmbm1hdGNoJykKLQotICAgIGRlZiByZV9tYXRjaF9saW5lcyhzZWxmLCBsaW5lczIpOgotICAg
ICAgICAiIiJTZWFyY2ggY2FwdHVyZWQgdGV4dCBmb3IgbWF0Y2hpbmcgbGluZXMgdXNpbmcgYGBy
ZS5tYXRjaGBgLgotCi0gICAgICAgIFRoZSBhcmd1bWVudCBpcyBhIGxpc3Qgb2YgbGluZXMgd2hp
Y2ggaGF2ZSB0byBtYXRjaCB1c2luZyBgYHJlLm1hdGNoYGAuCi0gICAgICAgIElmIHRoZXkgZG8g
bm90IG1hdGNoIGEgcHl0ZXN0LmZhaWwoKSBpcyBjYWxsZWQuCi0KLSAgICAgICAgVGhlIG1hdGNo
ZXMgYW5kIG5vbi1tYXRjaGVzIGFyZSBhbHNvIHByaW50ZWQgb24KLSAgICAgICAgc3Rkb3V0Lgot
ICAgICAgICAiIiIKLSAgICAgICAgc2VsZi5fbWF0Y2hfbGluZXMobGluZXMyLCBsYW1iZGEgbmFt
ZSwgcGF0OiByZS5tYXRjaChwYXQsIG5hbWUpLCAncmUubWF0Y2gnKQotCi0gICAgZGVmIF9tYXRj
aF9saW5lcyhzZWxmLCBsaW5lczIsIG1hdGNoX2Z1bmMsIG1hdGNoX25pY2tuYW1lKToKLSAgICAg
ICAgIiIiVW5kZXJseWluZyBpbXBsZW1lbnRhdGlvbiBvZiBgYGZubWF0Y2hfbGluZXNgYCBhbmQg
YGByZV9tYXRjaF9saW5lc2BgLgotCi0gICAgICAgIDpwYXJhbSBsaXN0W3N0cl0gbGluZXMyOiBs
aXN0IG9mIHN0cmluZyBwYXR0ZXJucyB0byBtYXRjaC4gVGhlIGFjdHVhbCBmb3JtYXQgZGVwZW5k
cyBvbgotICAgICAgICAgICAgYGBtYXRjaF9mdW5jYGAuCi0gICAgICAgIDpwYXJhbSBtYXRjaF9m
dW5jOiBhIGNhbGxhYmxlIGBgbWF0Y2hfZnVuYyhsaW5lLCBwYXR0ZXJuKWBgIHdoZXJlIGxpbmUg
aXMgdGhlIGNhcHR1cmVkCi0gICAgICAgICAgICBsaW5lIGZyb20gc3Rkb3V0L3N0ZGVyciBhbmQg
cGF0dGVybiBpcyB0aGUgbWF0Y2hpbmcgcGF0dGVybi4KLQotICAgICAgICA6cGFyYW0gc3RyIG1h
dGNoX25pY2tuYW1lOiB0aGUgbmlja25hbWUgZm9yIHRoZSBtYXRjaCBmdW5jdGlvbiB0aGF0IHdp
bGwgYmUgbG9nZ2VkCi0gICAgICAgICAgICB0byBzdGRvdXQgd2hlbiBhIG1hdGNoIG9jY3Vycy4K
LSAgICAgICAgIiIiCi0gICAgICAgIGxpbmVzMiA9IHNlbGYuX2dldGxpbmVzKGxpbmVzMikKLSAg
ICAgICAgbGluZXMxID0gc2VsZi5saW5lc1s6XQotICAgICAgICBuZXh0bGluZSA9IE5vbmUKLSAg
ICAgICAgZXh0cmFsaW5lcyA9IFtdCi0gICAgICAgIF9fdHJhY2ViYWNraGlkZV9fID0gVHJ1ZQot
ICAgICAgICBmb3IgbGluZSBpbiBsaW5lczI6Ci0gICAgICAgICAgICBub21hdGNocHJpbnRlZCA9
IEZhbHNlCi0gICAgICAgICAgICB3aGlsZSBsaW5lczE6Ci0gICAgICAgICAgICAgICAgbmV4dGxp
bmUgPSBsaW5lczEucG9wKDApCi0gICAgICAgICAgICAgICAgaWYgbGluZSA9PSBuZXh0bGluZToK
LSAgICAgICAgICAgICAgICAgICAgc2VsZi5fbG9nKCJleGFjdCBtYXRjaDoiLCByZXByKGxpbmUp
KQotICAgICAgICAgICAgICAgICAgICBicmVhawotICAgICAgICAgICAgICAgIGVsaWYgbWF0Y2hf
ZnVuYyhuZXh0bGluZSwgbGluZSk6Ci0gICAgICAgICAgICAgICAgICAgIHNlbGYuX2xvZygiJXM6
IiAlIG1hdGNoX25pY2tuYW1lLCByZXByKGxpbmUpKQotICAgICAgICAgICAgICAgICAgICBzZWxm
Ll9sb2coIiAgIHdpdGg6IiwgcmVwcihuZXh0bGluZSkpCi0gICAgICAgICAgICAgICAgICAgIGJy
ZWFrCi0gICAgICAgICAgICAgICAgZWxzZToKLSAgICAgICAgICAgICAgICAgICAgaWYgbm90IG5v
bWF0Y2hwcmludGVkOgotICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5fbG9nKCJub21hdGNo
OiIsIHJlcHIobGluZSkpCi0gICAgICAgICAgICAgICAgICAgICAgICBub21hdGNocHJpbnRlZCA9
IFRydWUKLSAgICAgICAgICAgICAgICAgICAgc2VsZi5fbG9nKCIgICAgYW5kOiIsIHJlcHIobmV4
dGxpbmUpKQotICAgICAgICAgICAgICAgIGV4dHJhbGluZXMuYXBwZW5kKG5leHRsaW5lKQotICAg
ICAgICAgICAgZWxzZToKLSAgICAgICAgICAgICAgICBzZWxmLl9sb2coInJlbWFpbnMgdW5tYXRj
aGVkOiAlciIgJSAobGluZSwpKQotICAgICAgICAgICAgICAgIHB5dGVzdC5mYWlsKHNlbGYuX2xv
Z190ZXh0KQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvX3B5dGVzdC9weXRob24ucHkgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5
L3B5dGVzdC9fcHl0ZXN0L3B5dGhvbi5weQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
NjUwMTcxYTllOWM5MDkwOWRhM2NlMjdiYTU5NjM4YTVmYzliMTY0NS4uMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9fcHl0ZXN0L3B5dGhv
bi5weQorKysgL2Rldi9udWxsCkBAIC0xLDExNzUgKzAsMCBAQAotIiIiIFB5dGhvbiB0ZXN0IGRp
c2NvdmVyeSwgc2V0dXAgYW5kIHJ1biBvZiB0ZXN0IGZ1bmN0aW9ucy4gIiIiCi1mcm9tIF9fZnV0
dXJlX18gaW1wb3J0IGFic29sdXRlX2ltcG9ydCwgZGl2aXNpb24sIHByaW50X2Z1bmN0aW9uCi0K
LWltcG9ydCBmbm1hdGNoCi1pbXBvcnQgaW5zcGVjdAotaW1wb3J0IHN5cwotaW1wb3J0IG9zCi1p
bXBvcnQgY29sbGVjdGlvbnMKLWltcG9ydCB3YXJuaW5ncwotZnJvbSB0ZXh0d3JhcCBpbXBvcnQg
ZGVkZW50Ci1mcm9tIGl0ZXJ0b29scyBpbXBvcnQgY291bnQKLQotCi1pbXBvcnQgcHkKLWltcG9y
dCBzaXgKLWZyb20gX3B5dGVzdC5tYXJrIGltcG9ydCBNYXJrZXJFcnJvcgotZnJvbSBfcHl0ZXN0
LmNvbmZpZyBpbXBvcnQgaG9va2ltcGwKLQotaW1wb3J0IF9weXRlc3QKLWltcG9ydCBwbHVnZ3kK
LWZyb20gX3B5dGVzdCBpbXBvcnQgZml4dHVyZXMKLWZyb20gX3B5dGVzdCBpbXBvcnQgbWFpbgot
ZnJvbSBfcHl0ZXN0IGltcG9ydCBkZXByZWNhdGVkCi1mcm9tIF9weXRlc3QuY29tcGF0IGltcG9y
dCAoCi0gICAgaXNjbGFzcywgaXNmdW5jdGlvbiwgaXNfZ2VuZXJhdG9yLCBhc2NpaV9lc2NhcGVk
LAotICAgIFJFR0VYX1RZUEUsIFNUUklOR19UWVBFUywgTm9uZVR5cGUsIE5PVFNFVCwKLSAgICBn
ZXRfcmVhbF9mdW5jLCBnZXRmc2xpbmVubywgc2FmZV9nZXRhdHRyLAotICAgIHNhZmVfc3RyLCBn
ZXRsb2NhdGlvbiwgZW51bSwKLSkKLWZyb20gX3B5dGVzdC5vdXRjb21lcyBpbXBvcnQgZmFpbAot
ZnJvbSBfcHl0ZXN0Lm1hcmsgaW1wb3J0IHRyYW5zZmVyX21hcmtlcnMKLQotY3V0ZGlyMSA9IHB5
LnBhdGgubG9jYWwocGx1Z2d5Ll9fZmlsZV9fLnJzdHJpcCgib2MiKSkKLWN1dGRpcjIgPSBweS5w
YXRoLmxvY2FsKF9weXRlc3QuX19maWxlX18pLmRpcnBhdGgoKQotY3V0ZGlyMyA9IHB5LnBhdGgu
bG9jYWwocHkuX19maWxlX18pLmRpcnBhdGgoKQotCi0KLWRlZiBmaWx0ZXJfdHJhY2ViYWNrKGVu
dHJ5KToKLSAgICAiIiJSZXR1cm4gVHJ1ZSBpZiBhIFRyYWNlYmFja0VudHJ5IGluc3RhbmNlIHNo
b3VsZCBiZSByZW1vdmVkIGZyb20gdHJhY2ViYWNrczoKLSAgICAqIGR5bmFtaWNhbGx5IGdlbmVy
YXRlZCBjb2RlIChubyBjb2RlIHRvIHNob3cgdXAgZm9yIGl0KTsKLSAgICAqIGludGVybmFsIHRy
YWNlYmFjayBmcm9tIHB5dGVzdCBvciBpdHMgaW50ZXJuYWwgbGlicmFyaWVzLCBweSBhbmQgcGx1
Z2d5LgotICAgICIiIgotICAgICMgZW50cnkucGF0aCBtaWdodCBzb21ldGltZXMgcmV0dXJuIGEg
c3RyIG9iamVjdCB3aGVuIHRoZSBlbnRyeQotICAgICMgcG9pbnRzIHRvIGR5bmFtaWNhbGx5IGdl
bmVyYXRlZCBjb2RlCi0gICAgIyBzZWUgaHR0cHM6Ly9iaXRidWNrZXQub3JnL3B5dGVzdC1kZXYv
cHkvaXNzdWVzLzcxCi0gICAgcmF3X2ZpbGVuYW1lID0gZW50cnkuZnJhbWUuY29kZS5yYXcuY29f
ZmlsZW5hbWUKLSAgICBpc19nZW5lcmF0ZWQgPSAnPCcgaW4gcmF3X2ZpbGVuYW1lIGFuZCAnPicg
aW4gcmF3X2ZpbGVuYW1lCi0gICAgaWYgaXNfZ2VuZXJhdGVkOgotICAgICAgICByZXR1cm4gRmFs
c2UKLSAgICAjIGVudHJ5LnBhdGggbWlnaHQgcG9pbnQgdG8gYW4gaW5leGlzdGluZyBmaWxlLCBp
biB3aGljaCBjYXNlIGl0IHdpbGwKLSAgICAjIGFsc3NvIHJldHVybiBhIHN0ciBvYmplY3QuIHNl
ZSAjMTEzMwotICAgIHAgPSBweS5wYXRoLmxvY2FsKGVudHJ5LnBhdGgpCi0gICAgcmV0dXJuIHAg
IT0gY3V0ZGlyMSBhbmQgbm90IHAucmVsdG8oY3V0ZGlyMikgYW5kIG5vdCBwLnJlbHRvKGN1dGRp
cjMpCi0KLQotZGVmIHB5b2JqX3Byb3BlcnR5KG5hbWUpOgotICAgIGRlZiBnZXQoc2VsZik6Ci0g
ICAgICAgIG5vZGUgPSBzZWxmLmdldHBhcmVudChnZXRhdHRyKF9faW1wb3J0X18oJ3B5dGVzdCcp
LCBuYW1lKSkKLSAgICAgICAgaWYgbm9kZSBpcyBub3QgTm9uZToKLSAgICAgICAgICAgIHJldHVy
biBub2RlLm9iagotICAgIGRvYyA9ICJweXRob24gJXMgb2JqZWN0IHRoaXMgbm9kZSB3YXMgY29s
bGVjdGVkIGZyb20gKGNhbiBiZSBOb25lKS4iICUgKAotICAgICAgICAgIG5hbWUubG93ZXIoKSwp
Ci0gICAgcmV0dXJuIHByb3BlcnR5KGdldCwgTm9uZSwgTm9uZSwgZG9jKQotCi0KLWRlZiBweXRl
c3RfYWRkb3B0aW9uKHBhcnNlcik6Ci0gICAgZ3JvdXAgPSBwYXJzZXIuZ2V0Z3JvdXAoImdlbmVy
YWwiKQotICAgIGdyb3VwLmFkZG9wdGlvbignLS1maXh0dXJlcycsICctLWZ1bmNhcmdzJywKLSAg
ICAgICAgICAgICAgICAgICAgYWN0aW9uPSJzdG9yZV90cnVlIiwgZGVzdD0ic2hvd2ZpeHR1cmVz
IiwgZGVmYXVsdD1GYWxzZSwKLSAgICAgICAgICAgICAgICAgICAgaGVscD0ic2hvdyBhdmFpbGFi
bGUgZml4dHVyZXMsIHNvcnRlZCBieSBwbHVnaW4gYXBwZWFyYW5jZSIpCi0gICAgZ3JvdXAuYWRk
b3B0aW9uKAotICAgICAgICAnLS1maXh0dXJlcy1wZXItdGVzdCcsCi0gICAgICAgIGFjdGlvbj0i
c3RvcmVfdHJ1ZSIsCi0gICAgICAgIGRlc3Q9InNob3dfZml4dHVyZXNfcGVyX3Rlc3QiLAotICAg
ICAgICBkZWZhdWx0PUZhbHNlLAotICAgICAgICBoZWxwPSJzaG93IGZpeHR1cmVzIHBlciB0ZXN0
IiwKLSAgICApCi0gICAgcGFyc2VyLmFkZGluaSgidXNlZml4dHVyZXMiLCB0eXBlPSJhcmdzIiwg
ZGVmYXVsdD1bXSwKLSAgICAgICAgICAgICAgICAgIGhlbHA9Imxpc3Qgb2YgZGVmYXVsdCBmaXh0
dXJlcyB0byBiZSB1c2VkIHdpdGggdGhpcyBwcm9qZWN0IikKLSAgICBwYXJzZXIuYWRkaW5pKCJw
eXRob25fZmlsZXMiLCB0eXBlPSJhcmdzIiwKLSAgICAgICAgICAgICAgICAgIGRlZmF1bHQ9Wyd0
ZXN0XyoucHknLCAnKl90ZXN0LnB5J10sCi0gICAgICAgICAgICAgICAgICBoZWxwPSJnbG9iLXN0
eWxlIGZpbGUgcGF0dGVybnMgZm9yIFB5dGhvbiB0ZXN0IG1vZHVsZSBkaXNjb3ZlcnkiKQotICAg
IHBhcnNlci5hZGRpbmkoInB5dGhvbl9jbGFzc2VzIiwgdHlwZT0iYXJncyIsIGRlZmF1bHQ9WyJU
ZXN0IiwgXSwKLSAgICAgICAgICAgICAgICAgIGhlbHA9InByZWZpeGVzIG9yIGdsb2IgbmFtZXMg
Zm9yIFB5dGhvbiB0ZXN0IGNsYXNzIGRpc2NvdmVyeSIpCi0gICAgcGFyc2VyLmFkZGluaSgicHl0
aG9uX2Z1bmN0aW9ucyIsIHR5cGU9ImFyZ3MiLCBkZWZhdWx0PVsidGVzdCIsIF0sCi0gICAgICAg
ICAgICAgICAgICBoZWxwPSJwcmVmaXhlcyBvciBnbG9iIG5hbWVzIGZvciBQeXRob24gdGVzdCBm
dW5jdGlvbiBhbmQgIgotICAgICAgICAgICAgICAgICAgIm1ldGhvZCBkaXNjb3ZlcnkiKQotCi0g
ICAgZ3JvdXAuYWRkb3B0aW9uKCItLWltcG9ydC1tb2RlIiwgZGVmYXVsdD0icHJlcGVuZCIsCi0g
ICAgICAgICAgICAgICAgICAgIGNob2ljZXM9WyJwcmVwZW5kIiwgImFwcGVuZCJdLCBkZXN0PSJp
bXBvcnRtb2RlIiwKLSAgICAgICAgICAgICAgICAgICAgaGVscD0icHJlcGVuZC9hcHBlbmQgdG8g
c3lzLnBhdGggd2hlbiBpbXBvcnRpbmcgdGVzdCBtb2R1bGVzLCAiCi0gICAgICAgICAgICAgICAg
ICAgICJkZWZhdWx0IGlzIHRvIHByZXBlbmQuIikKLQotCi1kZWYgcHl0ZXN0X2NtZGxpbmVfbWFp
bihjb25maWcpOgotICAgIGlmIGNvbmZpZy5vcHRpb24uc2hvd2ZpeHR1cmVzOgotICAgICAgICBz
aG93Zml4dHVyZXMoY29uZmlnKQotICAgICAgICByZXR1cm4gMAotICAgIGlmIGNvbmZpZy5vcHRp
b24uc2hvd19maXh0dXJlc19wZXJfdGVzdDoKLSAgICAgICAgc2hvd19maXh0dXJlc19wZXJfdGVz
dChjb25maWcpCi0gICAgICAgIHJldHVybiAwCi0KLQotZGVmIHB5dGVzdF9nZW5lcmF0ZV90ZXN0
cyhtZXRhZnVuYyk6Ci0gICAgIyB0aG9zZSBhbHRlcm5hdGl2ZSBzcGVsbGluZ3MgYXJlIGNvbW1v
biAtIHJhaXNlIGEgc3BlY2lmaWMgZXJyb3IgdG8gYWxlcnQKLSAgICAjIHRoZSB1c2VyCi0gICAg
YWx0X3NwZWxsaW5ncyA9IFsncGFyYW1ldGVyaXplJywgJ3BhcmFtZXRyaXNlJywgJ3BhcmFtZXRl
cmlzZSddCi0gICAgZm9yIGF0dHIgaW4gYWx0X3NwZWxsaW5nczoKLSAgICAgICAgaWYgaGFzYXR0
cihtZXRhZnVuYy5mdW5jdGlvbiwgYXR0cik6Ci0gICAgICAgICAgICBtc2cgPSAiezB9IGhhcyAn
ezF9Jywgc3BlbGxpbmcgc2hvdWxkIGJlICdwYXJhbWV0cml6ZSciCi0gICAgICAgICAgICByYWlz
ZSBNYXJrZXJFcnJvcihtc2cuZm9ybWF0KG1ldGFmdW5jLmZ1bmN0aW9uLl9fbmFtZV9fLCBhdHRy
KSkKLSAgICB0cnk6Ci0gICAgICAgIG1hcmtlcnMgPSBtZXRhZnVuYy5mdW5jdGlvbi5wYXJhbWV0
cml6ZQotICAgIGV4Y2VwdCBBdHRyaWJ1dGVFcnJvcjoKLSAgICAgICAgcmV0dXJuCi0gICAgZm9y
IG1hcmtlciBpbiBtYXJrZXJzOgotICAgICAgICBtZXRhZnVuYy5wYXJhbWV0cml6ZSgqbWFya2Vy
LmFyZ3MsICoqbWFya2VyLmt3YXJncykKLQotCi1kZWYgcHl0ZXN0X2NvbmZpZ3VyZShjb25maWcp
OgotICAgIGNvbmZpZy5hZGRpbml2YWx1ZV9saW5lKCJtYXJrZXJzIiwKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAicGFyYW1ldHJpemUoYXJnbmFtZXMsIGFyZ3ZhbHVlcyk6IGNhbGwgYSB0
ZXN0IGZ1bmN0aW9uIG11bHRpcGxlICIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAidGlt
ZXMgcGFzc2luZyBpbiBkaWZmZXJlbnQgYXJndW1lbnRzIGluIHR1cm4uIGFyZ3ZhbHVlcyBnZW5l
cmFsbHkgIgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICJuZWVkcyB0byBiZSBhIGxpc3Qg
b2YgdmFsdWVzIGlmIGFyZ25hbWVzIHNwZWNpZmllcyBvbmx5IG9uZSBuYW1lICIKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAib3IgYSBsaXN0IG9mIHR1cGxlcyBvZiB2YWx1ZXMgaWYgYXJn
bmFtZXMgc3BlY2lmaWVzIG11bHRpcGxlIG5hbWVzLiAiCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIkV4YW1wbGU6IEBwYXJhbWV0cml6ZSgnYXJnMScsIFsxLDJdKSB3b3VsZCBsZWFkIHRv
IHR3byBjYWxscyBvZiB0aGUgIgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICJkZWNvcmF0
ZWQgdGVzdCBmdW5jdGlvbiwgb25lIHdpdGggYXJnMT0xIGFuZCBhbm90aGVyIHdpdGggYXJnMT0y
LiIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAic2VlIGh0dHA6Ly9weXRlc3Qub3JnL2xh
dGVzdC9wYXJhbWV0cml6ZS5odG1sIGZvciBtb3JlIGluZm8gYW5kICIKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAiZXhhbXBsZXMuIgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICkK
LSAgICBjb25maWcuYWRkaW5pdmFsdWVfbGluZSgibWFya2VycyIsCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgInVzZWZpeHR1cmVzKGZpeHR1cmVuYW1lMSwgZml4dHVyZW5hbWUyLCAuLi4p
OiBtYXJrIHRlc3RzIGFzIG5lZWRpbmcgIgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICJh
bGwgb2YgdGhlIHNwZWNpZmllZCBmaXh0dXJlcy4gc2VlIGh0dHA6Ly9weXRlc3Qub3JnL2xhdGVz
dC9maXh0dXJlLmh0bWwjdXNlZml4dHVyZXMgIgotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICkKLQotCi1AaG9va2ltcGwodHJ5bGFzdD1UcnVlKQotZGVmIHB5dGVzdF9weWZ1bmNfY2FsbChw
eWZ1bmNpdGVtKToKLSAgICB0ZXN0ZnVuY3Rpb24gPSBweWZ1bmNpdGVtLm9iagotICAgIGlmIHB5
ZnVuY2l0ZW0uX2lzeWllbGRlZGZ1bmN0aW9uKCk6Ci0gICAgICAgIHRlc3RmdW5jdGlvbigqcHlm
dW5jaXRlbS5fYXJncykKLSAgICBlbHNlOgotICAgICAgICBmdW5jYXJncyA9IHB5ZnVuY2l0ZW0u
ZnVuY2FyZ3MKLSAgICAgICAgdGVzdGFyZ3MgPSB7fQotICAgICAgICBmb3IgYXJnIGluIHB5ZnVu
Y2l0ZW0uX2ZpeHR1cmVpbmZvLmFyZ25hbWVzOgotICAgICAgICAgICAgdGVzdGFyZ3NbYXJnXSA9
IGZ1bmNhcmdzW2FyZ10KLSAgICAgICAgdGVzdGZ1bmN0aW9uKCoqdGVzdGFyZ3MpCi0gICAgcmV0
dXJuIFRydWUKLQotCi1kZWYgcHl0ZXN0X2NvbGxlY3RfZmlsZShwYXRoLCBwYXJlbnQpOgotICAg
IGV4dCA9IHBhdGguZXh0Ci0gICAgaWYgZXh0ID09ICIucHkiOgotICAgICAgICBpZiBub3QgcGFy
ZW50LnNlc3Npb24uaXNpbml0cGF0aChwYXRoKToKLSAgICAgICAgICAgIGZvciBwYXQgaW4gcGFy
ZW50LmNvbmZpZy5nZXRpbmkoJ3B5dGhvbl9maWxlcycpOgotICAgICAgICAgICAgICAgIGlmIHBh
dGguZm5tYXRjaChwYXQpOgotICAgICAgICAgICAgICAgICAgICBicmVhawotICAgICAgICAgICAg
ZWxzZToKLSAgICAgICAgICAgICAgICByZXR1cm4KLSAgICAgICAgaWhvb2sgPSBwYXJlbnQuc2Vz
c2lvbi5nZXRob29rcHJveHkocGF0aCkKLSAgICAgICAgcmV0dXJuIGlob29rLnB5dGVzdF9weWNv
bGxlY3RfbWFrZW1vZHVsZShwYXRoPXBhdGgsIHBhcmVudD1wYXJlbnQpCi0KLQotZGVmIHB5dGVz
dF9weWNvbGxlY3RfbWFrZW1vZHVsZShwYXRoLCBwYXJlbnQpOgotICAgIHJldHVybiBNb2R1bGUo
cGF0aCwgcGFyZW50KQotCi0KLUBob29raW1wbChob29rd3JhcHBlcj1UcnVlKQotZGVmIHB5dGVz
dF9weWNvbGxlY3RfbWFrZWl0ZW0oY29sbGVjdG9yLCBuYW1lLCBvYmopOgotICAgIG91dGNvbWUg
PSB5aWVsZAotICAgIHJlcyA9IG91dGNvbWUuZ2V0X3Jlc3VsdCgpCi0gICAgaWYgcmVzIGlzIG5v
dCBOb25lOgotICAgICAgICByZXR1cm4KLSAgICAjIG5vdGhpbmcgd2FzIGNvbGxlY3RlZCBlbHNl
d2hlcmUsIGxldCdzIGRvIGl0IGhlcmUKLSAgICBpZiBpc2NsYXNzKG9iaik6Ci0gICAgICAgIGlm
IGNvbGxlY3Rvci5pc3Rlc3RjbGFzcyhvYmosIG5hbWUpOgotICAgICAgICAgICAgQ2xhc3MgPSBj
b2xsZWN0b3IuX2dldGN1c3RvbWNsYXNzKCJDbGFzcyIpCi0gICAgICAgICAgICBvdXRjb21lLmZv
cmNlX3Jlc3VsdChDbGFzcyhuYW1lLCBwYXJlbnQ9Y29sbGVjdG9yKSkKLSAgICBlbGlmIGNvbGxl
Y3Rvci5pc3Rlc3RmdW5jdGlvbihvYmosIG5hbWUpOgotICAgICAgICAjIG1vY2sgc2VlbXMgdG8g
c3RvcmUgdW5ib3VuZCBtZXRob2RzIChpc3N1ZTQ3MyksIG5vcm1hbGl6ZSBpdAotICAgICAgICBv
YmogPSBnZXRhdHRyKG9iaiwgIl9fZnVuY19fIiwgb2JqKQotICAgICAgICAjIFdlIG5lZWQgdG8g
dHJ5IGFuZCB1bndyYXAgdGhlIGZ1bmN0aW9uIGlmIGl0J3MgYSBmdW5jdG9vbHMucGFydGlhbAot
ICAgICAgICAjIG9yIGEgZnVudG9vbHMud3JhcHBlZC4KLSAgICAgICAgIyBXZSBtdXNuJ3QgaWYg
aXQncyBiZWVuIHdyYXBwZWQgd2l0aCBtb2NrLnBhdGNoIChweXRob24gMiBvbmx5KQotICAgICAg
ICBpZiBub3QgKGlzZnVuY3Rpb24ob2JqKSBvciBpc2Z1bmN0aW9uKGdldF9yZWFsX2Z1bmMob2Jq
KSkpOgotICAgICAgICAgICAgY29sbGVjdG9yLndhcm4oY29kZT0iQzIiLCBtZXNzYWdlPSJjYW5u
b3QgY29sbGVjdCAlciBiZWNhdXNlIGl0IGlzIG5vdCBhIGZ1bmN0aW9uLiIKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICUgbmFtZSwgKQotICAgICAgICBlbGlmIGdldGF0dHIob2JqLCAiX190
ZXN0X18iLCBUcnVlKToKLSAgICAgICAgICAgIGlmIGlzX2dlbmVyYXRvcihvYmopOgotICAgICAg
ICAgICAgICAgIHJlcyA9IEdlbmVyYXRvcihuYW1lLCBwYXJlbnQ9Y29sbGVjdG9yKQotICAgICAg
ICAgICAgZWxzZToKLSAgICAgICAgICAgICAgICByZXMgPSBsaXN0KGNvbGxlY3Rvci5fZ2VuZnVu
Y3Rpb25zKG5hbWUsIG9iaikpCi0gICAgICAgICAgICBvdXRjb21lLmZvcmNlX3Jlc3VsdChyZXMp
Ci0KLQotZGVmIHB5dGVzdF9tYWtlX3BhcmFtZXRyaXplX2lkKGNvbmZpZywgdmFsLCBhcmduYW1l
PU5vbmUpOgotICAgIHJldHVybiBOb25lCi0KLQotY2xhc3MgUHlvYmpDb250ZXh0KG9iamVjdCk6
Ci0gICAgbW9kdWxlID0gcHlvYmpfcHJvcGVydHkoIk1vZHVsZSIpCi0gICAgY2xzID0gcHlvYmpf
cHJvcGVydHkoIkNsYXNzIikKLSAgICBpbnN0YW5jZSA9IHB5b2JqX3Byb3BlcnR5KCJJbnN0YW5j
ZSIpCi0KLQotY2xhc3MgUHlvYmpNaXhpbihQeW9iakNvbnRleHQpOgotICAgIGRlZiBvYmooKToK
LSAgICAgICAgZGVmIGZnZXQoc2VsZik6Ci0gICAgICAgICAgICBvYmogPSBnZXRhdHRyKHNlbGYs
ICdfb2JqJywgTm9uZSkKLSAgICAgICAgICAgIGlmIG9iaiBpcyBOb25lOgotICAgICAgICAgICAg
ICAgIHNlbGYuX29iaiA9IG9iaiA9IHNlbGYuX2dldG9iaigpCi0gICAgICAgICAgICByZXR1cm4g
b2JqCi0KLSAgICAgICAgZGVmIGZzZXQoc2VsZiwgdmFsdWUpOgotICAgICAgICAgICAgc2VsZi5f
b2JqID0gdmFsdWUKLQotICAgICAgICByZXR1cm4gcHJvcGVydHkoZmdldCwgZnNldCwgTm9uZSwg
InVuZGVybHlpbmcgcHl0aG9uIG9iamVjdCIpCi0KLSAgICBvYmogPSBvYmooKQotCi0gICAgZGVm
IF9nZXRvYmooc2VsZik6Ci0gICAgICAgIHJldHVybiBnZXRhdHRyKHNlbGYucGFyZW50Lm9iaiwg
c2VsZi5uYW1lKQotCi0gICAgZGVmIGdldG1vZHBhdGgoc2VsZiwgc3RvcGF0bW9kdWxlPVRydWUs
IGluY2x1ZGVtb2R1bGU9RmFsc2UpOgotICAgICAgICAiIiIgcmV0dXJuIHB5dGhvbiBwYXRoIHJl
bGF0aXZlIHRvIHRoZSBjb250YWluaW5nIG1vZHVsZS4gIiIiCi0gICAgICAgIGNoYWluID0gc2Vs
Zi5saXN0Y2hhaW4oKQotICAgICAgICBjaGFpbi5yZXZlcnNlKCkKLSAgICAgICAgcGFydHMgPSBb
XQotICAgICAgICBmb3Igbm9kZSBpbiBjaGFpbjoKLSAgICAgICAgICAgIGlmIGlzaW5zdGFuY2Uo
bm9kZSwgSW5zdGFuY2UpOgotICAgICAgICAgICAgICAgIGNvbnRpbnVlCi0gICAgICAgICAgICBu
YW1lID0gbm9kZS5uYW1lCi0gICAgICAgICAgICBpZiBpc2luc3RhbmNlKG5vZGUsIE1vZHVsZSk6
Ci0gICAgICAgICAgICAgICAgbmFtZSA9IG9zLnBhdGguc3BsaXRleHQobmFtZSlbMF0KLSAgICAg
ICAgICAgICAgICBpZiBzdG9wYXRtb2R1bGU6Ci0gICAgICAgICAgICAgICAgICAgIGlmIGluY2x1
ZGVtb2R1bGU6Ci0gICAgICAgICAgICAgICAgICAgICAgICBwYXJ0cy5hcHBlbmQobmFtZSkKLSAg
ICAgICAgICAgICAgICAgICAgYnJlYWsKLSAgICAgICAgICAgIHBhcnRzLmFwcGVuZChuYW1lKQot
ICAgICAgICBwYXJ0cy5yZXZlcnNlKCkKLSAgICAgICAgcyA9ICIuIi5qb2luKHBhcnRzKQotICAg
ICAgICByZXR1cm4gcy5yZXBsYWNlKCIuWyIsICJbIikKLQotICAgIGRlZiBfZ2V0ZnNsaW5lbm8o
c2VsZik6Ci0gICAgICAgIHJldHVybiBnZXRmc2xpbmVubyhzZWxmLm9iaikKLQotICAgIGRlZiBy
ZXBvcnRpbmZvKHNlbGYpOgotICAgICAgICAjIFhYWCBjYWNoaW5nPwotICAgICAgICBvYmogPSBz
ZWxmLm9iagotICAgICAgICBjb21wYXRfY29fZmlyc3RsaW5lbm8gPSBnZXRhdHRyKG9iaiwgJ2Nv
bXBhdF9jb19maXJzdGxpbmVubycsIE5vbmUpCi0gICAgICAgIGlmIGlzaW5zdGFuY2UoY29tcGF0
X2NvX2ZpcnN0bGluZW5vLCBpbnQpOgotICAgICAgICAgICAgIyBub3NlIGNvbXBhdGliaWxpdHkK
LSAgICAgICAgICAgIGZzcGF0aCA9IHN5cy5tb2R1bGVzW29iai5fX21vZHVsZV9fXS5fX2ZpbGVf
XwotICAgICAgICAgICAgaWYgZnNwYXRoLmVuZHN3aXRoKCIucHljIik6Ci0gICAgICAgICAgICAg
ICAgZnNwYXRoID0gZnNwYXRoWzotMV0KLSAgICAgICAgICAgIGxpbmVubyA9IGNvbXBhdF9jb19m
aXJzdGxpbmVubwotICAgICAgICBlbHNlOgotICAgICAgICAgICAgZnNwYXRoLCBsaW5lbm8gPSBn
ZXRmc2xpbmVubyhvYmopCi0gICAgICAgIG1vZHBhdGggPSBzZWxmLmdldG1vZHBhdGgoKQotICAg
ICAgICBhc3NlcnQgaXNpbnN0YW5jZShsaW5lbm8sIGludCkKLSAgICAgICAgcmV0dXJuIGZzcGF0
aCwgbGluZW5vLCBtb2RwYXRoCi0KLQotY2xhc3MgUHlDb2xsZWN0b3IoUHlvYmpNaXhpbiwgbWFp
bi5Db2xsZWN0b3IpOgotCi0gICAgZGVmIGZ1bmNuYW1lZmlsdGVyKHNlbGYsIG5hbWUpOgotICAg
ICAgICByZXR1cm4gc2VsZi5fbWF0Y2hlc19wcmVmaXhfb3JfZ2xvYl9vcHRpb24oJ3B5dGhvbl9m
dW5jdGlvbnMnLCBuYW1lKQotCi0gICAgZGVmIGlzbm9zZXRlc3Qoc2VsZiwgb2JqKToKLSAgICAg
ICAgIiIiIExvb2sgZm9yIHRoZSBfX3Rlc3RfXyBhdHRyaWJ1dGUsIHdoaWNoIGlzIGFwcGxpZWQg
YnkgdGhlCi0gICAgICAgIEBub3NlLnRvb2xzLmlzdGVzdCBkZWNvcmF0b3IKLSAgICAgICAgIiIi
Ci0gICAgICAgICMgV2UgZXhwbGljaXRseSBjaGVjayBmb3IgImlzIFRydWUiIGhlcmUgdG8gbm90
IG1pc3Rha2VubHkgdHJlYXQKLSAgICAgICAgIyBjbGFzc2VzIHdpdGggYSBjdXN0b20gX19nZXRh
dHRyX18gcmV0dXJuaW5nIHNvbWV0aGluZyB0cnV0aHkgKGxpa2UgYQotICAgICAgICAjIGZ1bmN0
aW9uKSBhcyB0ZXN0IGNsYXNzZXMuCi0gICAgICAgIHJldHVybiBzYWZlX2dldGF0dHIob2JqLCAn
X190ZXN0X18nLCBGYWxzZSkgaXMgVHJ1ZQotCi0gICAgZGVmIGNsYXNzbmFtZWZpbHRlcihzZWxm
LCBuYW1lKToKLSAgICAgICAgcmV0dXJuIHNlbGYuX21hdGNoZXNfcHJlZml4X29yX2dsb2Jfb3B0
aW9uKCdweXRob25fY2xhc3NlcycsIG5hbWUpCi0KLSAgICBkZWYgaXN0ZXN0ZnVuY3Rpb24oc2Vs
Ziwgb2JqLCBuYW1lKToKLSAgICAgICAgaWYgc2VsZi5mdW5jbmFtZWZpbHRlcihuYW1lKSBvciBz
ZWxmLmlzbm9zZXRlc3Qob2JqKToKLSAgICAgICAgICAgIGlmIGlzaW5zdGFuY2Uob2JqLCBzdGF0
aWNtZXRob2QpOgotICAgICAgICAgICAgICAgICMgc3RhdGljIG1ldGhvZHMgbmVlZCB0byBiZSB1
bndyYXBwZWQKLSAgICAgICAgICAgICAgICBvYmogPSBzYWZlX2dldGF0dHIob2JqLCAnX19mdW5j
X18nLCBGYWxzZSkKLSAgICAgICAgICAgICAgICBpZiBvYmogaXMgRmFsc2U6Ci0gICAgICAgICAg
ICAgICAgICAgICMgUHl0aG9uIDIuNiB3cmFwcyBpbiBhIGRpZmZlcmVudCB3YXkgdGhhdCB3ZSB3
b24ndCB0cnkgdG8gaGFuZGxlCi0gICAgICAgICAgICAgICAgICAgIG1zZyA9ICJjYW5ub3QgY29s
bGVjdCBzdGF0aWMgbWV0aG9kICVyIGJlY2F1c2UgIiBcCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICJpdCBpcyBub3QgYSBmdW5jdGlvbiAoYWx3YXlzIHRoZSBjYXNlIGluIFB5dGhvbiAyLjYp
IgotICAgICAgICAgICAgICAgICAgICBzZWxmLndhcm4oCi0gICAgICAgICAgICAgICAgICAgICAg
ICBjb2RlPSJDMiIsIG1lc3NhZ2U9bXNnICUgbmFtZSkKLSAgICAgICAgICAgICAgICAgICAgcmV0
dXJuIEZhbHNlCi0gICAgICAgICAgICByZXR1cm4gKAotICAgICAgICAgICAgICAgIHNhZmVfZ2V0
YXR0cihvYmosICJfX2NhbGxfXyIsIEZhbHNlKSBhbmQgZml4dHVyZXMuZ2V0Zml4dHVyZW1hcmtl
cihvYmopIGlzIE5vbmUKLSAgICAgICAgICAgICkKLSAgICAgICAgZWxzZToKLSAgICAgICAgICAg
IHJldHVybiBGYWxzZQotCi0gICAgZGVmIGlzdGVzdGNsYXNzKHNlbGYsIG9iaiwgbmFtZSk6Ci0g
ICAgICAgIHJldHVybiBzZWxmLmNsYXNzbmFtZWZpbHRlcihuYW1lKSBvciBzZWxmLmlzbm9zZXRl
c3Qob2JqKQotCi0gICAgZGVmIF9tYXRjaGVzX3ByZWZpeF9vcl9nbG9iX29wdGlvbihzZWxmLCBv
cHRpb25fbmFtZSwgbmFtZSk6Ci0gICAgICAgICIiIgotICAgICAgICBjaGVja3MgaWYgdGhlIGdp
dmVuIG5hbWUgbWF0Y2hlcyB0aGUgcHJlZml4IG9yIGdsb2ItcGF0dGVybiBkZWZpbmVkCi0gICAg
ICAgIGluIGluaSBjb25maWd1cmF0aW9uLgotICAgICAgICAiIiIKLSAgICAgICAgZm9yIG9wdGlv
biBpbiBzZWxmLmNvbmZpZy5nZXRpbmkob3B0aW9uX25hbWUpOgotICAgICAgICAgICAgaWYgbmFt
ZS5zdGFydHN3aXRoKG9wdGlvbik6Ci0gICAgICAgICAgICAgICAgcmV0dXJuIFRydWUKLSAgICAg
ICAgICAgICMgY2hlY2sgdGhhdCBuYW1lIGxvb2tzIGxpa2UgYSBnbG9iLXN0cmluZyBiZWZvcmUg
Y2FsbGluZyBmbm1hdGNoCi0gICAgICAgICAgICAjIGJlY2F1c2UgdGhpcyBpcyBjYWxsZWQgZm9y
IGV2ZXJ5IG5hbWUgaW4gZWFjaCBjb2xsZWN0ZWQgbW9kdWxlLAotICAgICAgICAgICAgIyBhbmQg
Zm5tYXRjaCBpcyBzb21ld2hhdCBleHBlbnNpdmUgdG8gY2FsbAotICAgICAgICAgICAgZWxpZiAo
JyonIGluIG9wdGlvbiBvciAnPycgaW4gb3B0aW9uIG9yICdbJyBpbiBvcHRpb24pIGFuZCBcCi0g
ICAgICAgICAgICAgICAgICAgIGZubWF0Y2guZm5tYXRjaChuYW1lLCBvcHRpb24pOgotICAgICAg
ICAgICAgICAgIHJldHVybiBUcnVlCi0gICAgICAgIHJldHVybiBGYWxzZQotCi0gICAgZGVmIGNv
bGxlY3Qoc2VsZik6Ci0gICAgICAgIGlmIG5vdCBnZXRhdHRyKHNlbGYub2JqLCAiX190ZXN0X18i
LCBUcnVlKToKLSAgICAgICAgICAgIHJldHVybiBbXQotCi0gICAgICAgICMgTkIuIHdlIGF2b2lk
IHJhbmRvbSBnZXRhdHRycyBhbmQgcGVlayBpbiB0aGUgX19kaWN0X18gaW5zdGVhZAotICAgICAg
ICAjIChYWFggb3JpZ2luYWxseSBpbnRyb2R1Y2VkIGZyb20gYSBQeVB5IG5lZWQsIHN0aWxsIHRy
dWU/KQotICAgICAgICBkaWN0cyA9IFtnZXRhdHRyKHNlbGYub2JqLCAnX19kaWN0X18nLCB7fSld
Ci0gICAgICAgIGZvciBiYXNlY2xzIGluIGluc3BlY3QuZ2V0bXJvKHNlbGYub2JqLl9fY2xhc3Nf
Xyk6Ci0gICAgICAgICAgICBkaWN0cy5hcHBlbmQoYmFzZWNscy5fX2RpY3RfXykKLSAgICAgICAg
c2VlbiA9IHt9Ci0gICAgICAgIHZhbHVlcyA9IFtdCi0gICAgICAgIGZvciBkaWMgaW4gZGljdHM6
Ci0gICAgICAgICAgICBmb3IgbmFtZSwgb2JqIGluIGxpc3QoZGljLml0ZW1zKCkpOgotICAgICAg
ICAgICAgICAgIGlmIG5hbWUgaW4gc2VlbjoKLSAgICAgICAgICAgICAgICAgICAgY29udGludWUK
LSAgICAgICAgICAgICAgICBzZWVuW25hbWVdID0gVHJ1ZQotICAgICAgICAgICAgICAgIHJlcyA9
IHNlbGYuX21ha2VpdGVtKG5hbWUsIG9iaikKLSAgICAgICAgICAgICAgICBpZiByZXMgaXMgTm9u
ZToKLSAgICAgICAgICAgICAgICAgICAgY29udGludWUKLSAgICAgICAgICAgICAgICBpZiBub3Qg
aXNpbnN0YW5jZShyZXMsIGxpc3QpOgotICAgICAgICAgICAgICAgICAgICByZXMgPSBbcmVzXQot
ICAgICAgICAgICAgICAgIHZhbHVlcy5leHRlbmQocmVzKQotICAgICAgICB2YWx1ZXMuc29ydChr
ZXk9bGFtYmRhIGl0ZW06IGl0ZW0ucmVwb3J0aW5mbygpWzoyXSkKLSAgICAgICAgcmV0dXJuIHZh
bHVlcwotCi0gICAgZGVmIG1ha2VpdGVtKHNlbGYsIG5hbWUsIG9iaik6Ci0gICAgICAgIHdhcm5p
bmdzLndhcm4oZGVwcmVjYXRlZC5DT0xMRUNUT1JfTUFLRUlURU0sIHN0YWNrbGV2ZWw9MikKLSAg
ICAgICAgc2VsZi5fbWFrZWl0ZW0obmFtZSwgb2JqKQotCi0gICAgZGVmIF9tYWtlaXRlbShzZWxm
LCBuYW1lLCBvYmopOgotICAgICAgICAjIGFzc2VydCBzZWxmLmlob29rLmZzcGF0aCA9PSBzZWxm
LmZzcGF0aCwgc2VsZgotICAgICAgICByZXR1cm4gc2VsZi5paG9vay5weXRlc3RfcHljb2xsZWN0
X21ha2VpdGVtKAotICAgICAgICAgICAgY29sbGVjdG9yPXNlbGYsIG5hbWU9bmFtZSwgb2JqPW9i
aikKLQotICAgIGRlZiBfZ2VuZnVuY3Rpb25zKHNlbGYsIG5hbWUsIGZ1bmNvYmopOgotICAgICAg
ICBtb2R1bGUgPSBzZWxmLmdldHBhcmVudChNb2R1bGUpLm9iagotICAgICAgICBjbHNjb2wgPSBz
ZWxmLmdldHBhcmVudChDbGFzcykKLSAgICAgICAgY2xzID0gY2xzY29sIGFuZCBjbHNjb2wub2Jq
IG9yIE5vbmUKLSAgICAgICAgdHJhbnNmZXJfbWFya2VycyhmdW5jb2JqLCBjbHMsIG1vZHVsZSkK
LSAgICAgICAgZm0gPSBzZWxmLnNlc3Npb24uX2ZpeHR1cmVtYW5hZ2VyCi0gICAgICAgIGZpeHR1
cmVpbmZvID0gZm0uZ2V0Zml4dHVyZWluZm8oc2VsZiwgZnVuY29iaiwgY2xzKQotICAgICAgICBt
ZXRhZnVuYyA9IE1ldGFmdW5jKGZ1bmNvYmosIGZpeHR1cmVpbmZvLCBzZWxmLmNvbmZpZywKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBjbHM9Y2xzLCBtb2R1bGU9bW9kdWxlKQotICAgICAg
ICBtZXRob2RzID0gW10KLSAgICAgICAgaWYgaGFzYXR0cihtb2R1bGUsICJweXRlc3RfZ2VuZXJh
dGVfdGVzdHMiKToKLSAgICAgICAgICAgIG1ldGhvZHMuYXBwZW5kKG1vZHVsZS5weXRlc3RfZ2Vu
ZXJhdGVfdGVzdHMpCi0gICAgICAgIGlmIGhhc2F0dHIoY2xzLCAicHl0ZXN0X2dlbmVyYXRlX3Rl
c3RzIik6Ci0gICAgICAgICAgICBtZXRob2RzLmFwcGVuZChjbHMoKS5weXRlc3RfZ2VuZXJhdGVf
dGVzdHMpCi0gICAgICAgIGlmIG1ldGhvZHM6Ci0gICAgICAgICAgICBzZWxmLmlob29rLnB5dGVz
dF9nZW5lcmF0ZV90ZXN0cy5jYWxsX2V4dHJhKG1ldGhvZHMsCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpY3QobWV0YWZ1bmM9bWV0YWZ1
bmMpKQotICAgICAgICBlbHNlOgotICAgICAgICAgICAgc2VsZi5paG9vay5weXRlc3RfZ2VuZXJh
dGVfdGVzdHMobWV0YWZ1bmM9bWV0YWZ1bmMpCi0KLSAgICAgICAgRnVuY3Rpb24gPSBzZWxmLl9n
ZXRjdXN0b21jbGFzcygiRnVuY3Rpb24iKQotICAgICAgICBpZiBub3QgbWV0YWZ1bmMuX2NhbGxz
OgotICAgICAgICAgICAgeWllbGQgRnVuY3Rpb24obmFtZSwgcGFyZW50PXNlbGYsIGZpeHR1cmVp
bmZvPWZpeHR1cmVpbmZvKQotICAgICAgICBlbHNlOgotICAgICAgICAgICAgIyBhZGQgZnVuY2Fy
Z3MoKSBhcyBmaXh0dXJlZGVmcyB0byBmaXh0dXJlaW5mby5hcmcyZml4dHVyZWRlZnMKLSAgICAg
ICAgICAgIGZpeHR1cmVzLmFkZF9mdW5jYXJnX3BzZXVkb19maXh0dXJlX2RlZihzZWxmLCBtZXRh
ZnVuYywgZm0pCi0KLSAgICAgICAgICAgIGZvciBjYWxsc3BlYyBpbiBtZXRhZnVuYy5fY2FsbHM6
Ci0gICAgICAgICAgICAgICAgc3VibmFtZSA9ICIlc1slc10iICUgKG5hbWUsIGNhbGxzcGVjLmlk
KQotICAgICAgICAgICAgICAgIHlpZWxkIEZ1bmN0aW9uKG5hbWU9c3VibmFtZSwgcGFyZW50PXNl
bGYsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FsbHNwZWM9Y2FsbHNwZWMsIGNh
bGxvYmo9ZnVuY29iaiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaXh0dXJlaW5m
bz1maXh0dXJlaW5mbywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrZXl3b3Jkcz17
Y2FsbHNwZWMuaWQ6IFRydWV9LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9yaWdp
bmFsbmFtZT1uYW1lLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICkKLQotCi1jbGFz
cyBNb2R1bGUobWFpbi5GaWxlLCBQeUNvbGxlY3Rvcik6Ci0gICAgIiIiIENvbGxlY3RvciBmb3Ig
dGVzdCBjbGFzc2VzIGFuZCBmdW5jdGlvbnMuICIiIgotCi0gICAgZGVmIF9nZXRvYmooc2VsZik6
Ci0gICAgICAgIHJldHVybiBzZWxmLl9pbXBvcnR0ZXN0bW9kdWxlKCkKLQotICAgIGRlZiBjb2xs
ZWN0KHNlbGYpOgotICAgICAgICBzZWxmLnNlc3Npb24uX2ZpeHR1cmVtYW5hZ2VyLnBhcnNlZmFj
dG9yaWVzKHNlbGYpCi0gICAgICAgIHJldHVybiBzdXBlcihNb2R1bGUsIHNlbGYpLmNvbGxlY3Qo
KQotCi0gICAgZGVmIF9pbXBvcnR0ZXN0bW9kdWxlKHNlbGYpOgotICAgICAgICAjIHdlIGFzc3Vt
ZSB3ZSBhcmUgb25seSBjYWxsZWQgb25jZSBwZXIgbW9kdWxlCi0gICAgICAgIGltcG9ydG1vZGUg
PSBzZWxmLmNvbmZpZy5nZXRvcHRpb24oIi0taW1wb3J0LW1vZGUiKQotICAgICAgICB0cnk6Ci0g
ICAgICAgICAgICBtb2QgPSBzZWxmLmZzcGF0aC5weWltcG9ydChlbnN1cmVzeXNwYXRoPWltcG9y
dG1vZGUpCi0gICAgICAgIGV4Y2VwdCBTeW50YXhFcnJvcjoKLSAgICAgICAgICAgIHJhaXNlIHNl
bGYuQ29sbGVjdEVycm9yKAotICAgICAgICAgICAgICAgIF9weXRlc3QuX2NvZGUuRXhjZXB0aW9u
SW5mbygpLmdldHJlcHIoc3R5bGU9InNob3J0IikpCi0gICAgICAgIGV4Y2VwdCBzZWxmLmZzcGF0
aC5JbXBvcnRNaXNtYXRjaEVycm9yOgotICAgICAgICAgICAgZSA9IHN5cy5leGNfaW5mbygpWzFd
Ci0gICAgICAgICAgICByYWlzZSBzZWxmLkNvbGxlY3RFcnJvcigKLSAgICAgICAgICAgICAgICAi
aW1wb3J0IGZpbGUgbWlzbWF0Y2g6XG4iCi0gICAgICAgICAgICAgICAgImltcG9ydGVkIG1vZHVs
ZSAlciBoYXMgdGhpcyBfX2ZpbGVfXyBhdHRyaWJ1dGU6XG4iCi0gICAgICAgICAgICAgICAgIiAg
JXNcbiIKLSAgICAgICAgICAgICAgICAid2hpY2ggaXMgbm90IHRoZSBzYW1lIGFzIHRoZSB0ZXN0
IGZpbGUgd2Ugd2FudCB0byBjb2xsZWN0OlxuIgotICAgICAgICAgICAgICAgICIgICVzXG4iCi0g
ICAgICAgICAgICAgICAgIkhJTlQ6IHJlbW92ZSBfX3B5Y2FjaGVfXyAvIC5weWMgZmlsZXMgYW5k
L29yIHVzZSBhICIKLSAgICAgICAgICAgICAgICAidW5pcXVlIGJhc2VuYW1lIGZvciB5b3VyIHRl
c3QgZmlsZSBtb2R1bGVzIgotICAgICAgICAgICAgICAgICUgZS5hcmdzCi0gICAgICAgICAgICAp
Ci0gICAgICAgIGV4Y2VwdCBJbXBvcnRFcnJvcjoKLSAgICAgICAgICAgIGZyb20gX3B5dGVzdC5f
Y29kZS5jb2RlIGltcG9ydCBFeGNlcHRpb25JbmZvCi0gICAgICAgICAgICBleGNfaW5mbyA9IEV4
Y2VwdGlvbkluZm8oKQotICAgICAgICAgICAgaWYgc2VsZi5jb25maWcuZ2V0b3B0aW9uKCd2ZXJi
b3NlJykgPCAyOgotICAgICAgICAgICAgICAgIGV4Y19pbmZvLnRyYWNlYmFjayA9IGV4Y19pbmZv
LnRyYWNlYmFjay5maWx0ZXIoZmlsdGVyX3RyYWNlYmFjaykKLSAgICAgICAgICAgIGV4Y19yZXBy
ID0gZXhjX2luZm8uZ2V0cmVwcihzdHlsZT0nc2hvcnQnKSBpZiBleGNfaW5mby50cmFjZWJhY2sg
ZWxzZSBleGNfaW5mby5leGNvbmx5KCkKLSAgICAgICAgICAgIGZvcm1hdHRlZF90YiA9IHNhZmVf
c3RyKGV4Y19yZXByKQotICAgICAgICAgICAgcmFpc2Ugc2VsZi5Db2xsZWN0RXJyb3IoCi0gICAg
ICAgICAgICAgICAgIkltcG9ydEVycm9yIHdoaWxlIGltcG9ydGluZyB0ZXN0IG1vZHVsZSAne2Zz
cGF0aH0nLlxuIgotICAgICAgICAgICAgICAgICJIaW50OiBtYWtlIHN1cmUgeW91ciB0ZXN0IG1v
ZHVsZXMvcGFja2FnZXMgaGF2ZSB2YWxpZCBQeXRob24gbmFtZXMuXG4iCi0gICAgICAgICAgICAg
ICAgIlRyYWNlYmFjazpcbiIKLSAgICAgICAgICAgICAgICAie3RyYWNlYmFja30iLmZvcm1hdChm
c3BhdGg9c2VsZi5mc3BhdGgsIHRyYWNlYmFjaz1mb3JtYXR0ZWRfdGIpCi0gICAgICAgICAgICAp
Ci0gICAgICAgIGV4Y2VwdCBfcHl0ZXN0LnJ1bm5lci5Ta2lwcGVkIGFzIGU6Ci0gICAgICAgICAg
ICBpZiBlLmFsbG93X21vZHVsZV9sZXZlbDoKLSAgICAgICAgICAgICAgICByYWlzZQotICAgICAg
ICAgICAgcmFpc2Ugc2VsZi5Db2xsZWN0RXJyb3IoCi0gICAgICAgICAgICAgICAgIlVzaW5nIHB5
dGVzdC5za2lwIG91dHNpZGUgb2YgYSB0ZXN0IGlzIG5vdCBhbGxvd2VkLiAiCi0gICAgICAgICAg
ICAgICAgIlRvIGRlY29yYXRlIGEgdGVzdCBmdW5jdGlvbiwgdXNlIHRoZSBAcHl0ZXN0Lm1hcmsu
c2tpcCAiCi0gICAgICAgICAgICAgICAgIm9yIEBweXRlc3QubWFyay5za2lwaWYgZGVjb3JhdG9y
cyBpbnN0ZWFkLCBhbmQgdG8gc2tpcCBhICIKLSAgICAgICAgICAgICAgICAibW9kdWxlIHVzZSBg
cHl0ZXN0bWFyayA9IHB5dGVzdC5tYXJrLntza2lwLHNraXBpZn0uIgotICAgICAgICAgICAgKQot
ICAgICAgICBzZWxmLmNvbmZpZy5wbHVnaW5tYW5hZ2VyLmNvbnNpZGVyX21vZHVsZShtb2QpCi0g
ICAgICAgIHJldHVybiBtb2QKLQotICAgIGRlZiBzZXR1cChzZWxmKToKLSAgICAgICAgc2V0dXBf
bW9kdWxlID0gX2dldF94dW5pdF9zZXR1cF90ZWFyZG93bihzZWxmLm9iaiwgInNldFVwTW9kdWxl
IikKLSAgICAgICAgaWYgc2V0dXBfbW9kdWxlIGlzIE5vbmU6Ci0gICAgICAgICAgICBzZXR1cF9t
b2R1bGUgPSBfZ2V0X3h1bml0X3NldHVwX3RlYXJkb3duKHNlbGYub2JqLCAic2V0dXBfbW9kdWxl
IikKLSAgICAgICAgaWYgc2V0dXBfbW9kdWxlIGlzIG5vdCBOb25lOgotICAgICAgICAgICAgc2V0
dXBfbW9kdWxlKCkKLQotICAgICAgICB0ZWFyZG93bl9tb2R1bGUgPSBfZ2V0X3h1bml0X3NldHVw
X3RlYXJkb3duKHNlbGYub2JqLCAndGVhckRvd25Nb2R1bGUnKQotICAgICAgICBpZiB0ZWFyZG93
bl9tb2R1bGUgaXMgTm9uZToKLSAgICAgICAgICAgIHRlYXJkb3duX21vZHVsZSA9IF9nZXRfeHVu
aXRfc2V0dXBfdGVhcmRvd24oc2VsZi5vYmosICd0ZWFyZG93bl9tb2R1bGUnKQotICAgICAgICBp
ZiB0ZWFyZG93bl9tb2R1bGUgaXMgbm90IE5vbmU6Ci0gICAgICAgICAgICBzZWxmLmFkZGZpbmFs
aXplcih0ZWFyZG93bl9tb2R1bGUpCi0KLQotZGVmIF9nZXRfeHVuaXRfc2V0dXBfdGVhcmRvd24o
aG9sZGVyLCBhdHRyX25hbWUsIHBhcmFtX29iaj1Ob25lKToKLSAgICAiIiIKLSAgICBSZXR1cm4g
YSBjYWxsYWJsZSB0byBwZXJmb3JtIHh1bml0LXN0eWxlIHNldHVwIG9yIHRlYXJkb3duIGlmCi0g
ICAgdGhlIGZ1bmN0aW9uIGV4aXN0cyBpbiB0aGUgYGBob2xkZXJgYCBvYmplY3QuCi0gICAgVGhl
IGBgcGFyYW1fb2JqYGAgcGFyYW1ldGVyIGlzIHRoZSBwYXJhbWV0ZXIgd2hpY2ggd2lsbCBiZSBw
YXNzZWQgdG8gdGhlIGZ1bmN0aW9uCi0gICAgd2hlbiB0aGUgY2FsbGFibGUgaXMgY2FsbGVkIHdp
dGhvdXQgYXJndW1lbnRzLCBkZWZhdWx0cyB0byB0aGUgYGBob2xkZXJgYCBvYmplY3QuCi0gICAg
UmV0dXJuIGBgTm9uZWBgIGlmIGEgc3VpdGFibGUgY2FsbGFibGUgaXMgbm90IGZvdW5kLgotICAg
ICIiIgotICAgIHBhcmFtX29iaiA9IHBhcmFtX29iaiBpZiBwYXJhbV9vYmogaXMgbm90IE5vbmUg
ZWxzZSBob2xkZXIKLSAgICByZXN1bHQgPSBfZ2V0X3h1bml0X2Z1bmMoaG9sZGVyLCBhdHRyX25h
bWUpCi0gICAgaWYgcmVzdWx0IGlzIG5vdCBOb25lOgotICAgICAgICBhcmdfY291bnQgPSByZXN1
bHQuX19jb2RlX18uY29fYXJnY291bnQKLSAgICAgICAgaWYgaW5zcGVjdC5pc21ldGhvZChyZXN1
bHQpOgotICAgICAgICAgICAgYXJnX2NvdW50IC09IDEKLSAgICAgICAgaWYgYXJnX2NvdW50Ogot
ICAgICAgICAgICAgcmV0dXJuIGxhbWJkYTogcmVzdWx0KHBhcmFtX29iaikKLSAgICAgICAgZWxz
ZToKLSAgICAgICAgICAgIHJldHVybiByZXN1bHQKLQotCi1kZWYgX2dldF94dW5pdF9mdW5jKG9i
aiwgbmFtZSk6Ci0gICAgIiIiUmV0dXJuIHRoZSBhdHRyaWJ1dGUgZnJvbSB0aGUgZ2l2ZW4gb2Jq
ZWN0IHRvIGJlIHVzZWQgYXMgYSBzZXR1cC90ZWFyZG93bgotICAgIHh1bml0LXN0eWxlIGZ1bmN0
aW9uLCBidXQgb25seSBpZiBub3QgbWFya2VkIGFzIGEgZml4dHVyZSB0bwotICAgIGF2b2lkIGNh
bGxpbmcgaXQgdHdpY2UuCi0gICAgIiIiCi0gICAgbWV0aCA9IGdldGF0dHIob2JqLCBuYW1lLCBO
b25lKQotICAgIGlmIGZpeHR1cmVzLmdldGZpeHR1cmVtYXJrZXIobWV0aCkgaXMgTm9uZToKLSAg
ICAgICAgcmV0dXJuIG1ldGgKLQotCi1jbGFzcyBDbGFzcyhQeUNvbGxlY3Rvcik6Ci0gICAgIiIi
IENvbGxlY3RvciBmb3IgdGVzdCBtZXRob2RzLiAiIiIKLQotICAgIGRlZiBjb2xsZWN0KHNlbGYp
OgotICAgICAgICBpZiBub3Qgc2FmZV9nZXRhdHRyKHNlbGYub2JqLCAiX190ZXN0X18iLCBUcnVl
KToKLSAgICAgICAgICAgIHJldHVybiBbXQotICAgICAgICBpZiBoYXNpbml0KHNlbGYub2JqKToK
LSAgICAgICAgICAgIHNlbGYud2FybigiQzEiLCAiY2Fubm90IGNvbGxlY3QgdGVzdCBjbGFzcyAl
ciBiZWNhdXNlIGl0IGhhcyBhICIKLSAgICAgICAgICAgICAgICAgICAgICAiX19pbml0X18gY29u
c3RydWN0b3IiICUgc2VsZi5vYmouX19uYW1lX18pCi0gICAgICAgICAgICByZXR1cm4gW10KLSAg
ICAgICAgZWxpZiBoYXNuZXcoc2VsZi5vYmopOgotICAgICAgICAgICAgc2VsZi53YXJuKCJDMSIs
ICJjYW5ub3QgY29sbGVjdCB0ZXN0IGNsYXNzICVyIGJlY2F1c2UgaXQgaGFzIGEgIgotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICJfX25ld19fIGNvbnN0cnVjdG9yIiAlIHNlbGYub2JqLl9f
bmFtZV9fKQotICAgICAgICAgICAgcmV0dXJuIFtdCi0gICAgICAgIHJldHVybiBbc2VsZi5fZ2V0
Y3VzdG9tY2xhc3MoIkluc3RhbmNlIikobmFtZT0iKCkiLCBwYXJlbnQ9c2VsZildCi0KLSAgICBk
ZWYgc2V0dXAoc2VsZik6Ci0gICAgICAgIHNldHVwX2NsYXNzID0gX2dldF94dW5pdF9mdW5jKHNl
bGYub2JqLCAnc2V0dXBfY2xhc3MnKQotICAgICAgICBpZiBzZXR1cF9jbGFzcyBpcyBub3QgTm9u
ZToKLSAgICAgICAgICAgIHNldHVwX2NsYXNzID0gZ2V0YXR0cihzZXR1cF9jbGFzcywgJ2ltX2Z1
bmMnLCBzZXR1cF9jbGFzcykKLSAgICAgICAgICAgIHNldHVwX2NsYXNzID0gZ2V0YXR0cihzZXR1
cF9jbGFzcywgJ19fZnVuY19fJywgc2V0dXBfY2xhc3MpCi0gICAgICAgICAgICBzZXR1cF9jbGFz
cyhzZWxmLm9iaikKLQotICAgICAgICBmaW5fY2xhc3MgPSBnZXRhdHRyKHNlbGYub2JqLCAndGVh
cmRvd25fY2xhc3MnLCBOb25lKQotICAgICAgICBpZiBmaW5fY2xhc3MgaXMgbm90IE5vbmU6Ci0g
ICAgICAgICAgICBmaW5fY2xhc3MgPSBnZXRhdHRyKGZpbl9jbGFzcywgJ2ltX2Z1bmMnLCBmaW5f
Y2xhc3MpCi0gICAgICAgICAgICBmaW5fY2xhc3MgPSBnZXRhdHRyKGZpbl9jbGFzcywgJ19fZnVu
Y19fJywgZmluX2NsYXNzKQotICAgICAgICAgICAgc2VsZi5hZGRmaW5hbGl6ZXIobGFtYmRhOiBm
aW5fY2xhc3Moc2VsZi5vYmopKQotCi0KLWNsYXNzIEluc3RhbmNlKFB5Q29sbGVjdG9yKToKLSAg
ICBkZWYgX2dldG9iaihzZWxmKToKLSAgICAgICAgcmV0dXJuIHNlbGYucGFyZW50Lm9iaigpCi0K
LSAgICBkZWYgY29sbGVjdChzZWxmKToKLSAgICAgICAgc2VsZi5zZXNzaW9uLl9maXh0dXJlbWFu
YWdlci5wYXJzZWZhY3RvcmllcyhzZWxmKQotICAgICAgICByZXR1cm4gc3VwZXIoSW5zdGFuY2Us
IHNlbGYpLmNvbGxlY3QoKQotCi0gICAgZGVmIG5ld2luc3RhbmNlKHNlbGYpOgotICAgICAgICBz
ZWxmLm9iaiA9IHNlbGYuX2dldG9iaigpCi0gICAgICAgIHJldHVybiBzZWxmLm9iagotCi0KLWNs
YXNzIEZ1bmN0aW9uTWl4aW4oUHlvYmpNaXhpbik6Ci0gICAgIiIiIG1peGluIGZvciB0aGUgY29k
ZSBjb21tb24gdG8gRnVuY3Rpb24gYW5kIEdlbmVyYXRvci4KLSAgICAiIiIKLQotICAgIGRlZiBz
ZXR1cChzZWxmKToKLSAgICAgICAgIiIiIHBlcmZvcm0gc2V0dXAgZm9yIHRoaXMgdGVzdCBmdW5j
dGlvbi4gIiIiCi0gICAgICAgIGlmIGhhc2F0dHIoc2VsZiwgJ19wcmVzZXJ2ZWRwYXJlbnQnKToK
LSAgICAgICAgICAgIG9iaiA9IHNlbGYuX3ByZXNlcnZlZHBhcmVudAotICAgICAgICBlbGlmIGlz
aW5zdGFuY2Uoc2VsZi5wYXJlbnQsIEluc3RhbmNlKToKLSAgICAgICAgICAgIG9iaiA9IHNlbGYu
cGFyZW50Lm5ld2luc3RhbmNlKCkKLSAgICAgICAgICAgIHNlbGYub2JqID0gc2VsZi5fZ2V0b2Jq
KCkKLSAgICAgICAgZWxzZToKLSAgICAgICAgICAgIG9iaiA9IHNlbGYucGFyZW50Lm9iagotICAg
ICAgICBpZiBpbnNwZWN0LmlzbWV0aG9kKHNlbGYub2JqKToKLSAgICAgICAgICAgIHNldHVwX25h
bWUgPSAnc2V0dXBfbWV0aG9kJwotICAgICAgICAgICAgdGVhcmRvd25fbmFtZSA9ICd0ZWFyZG93
bl9tZXRob2QnCi0gICAgICAgIGVsc2U6Ci0gICAgICAgICAgICBzZXR1cF9uYW1lID0gJ3NldHVw
X2Z1bmN0aW9uJwotICAgICAgICAgICAgdGVhcmRvd25fbmFtZSA9ICd0ZWFyZG93bl9mdW5jdGlv
bicKLSAgICAgICAgc2V0dXBfZnVuY19vcl9tZXRob2QgPSBfZ2V0X3h1bml0X3NldHVwX3RlYXJk
b3duKG9iaiwgc2V0dXBfbmFtZSwgcGFyYW1fb2JqPXNlbGYub2JqKQotICAgICAgICBpZiBzZXR1
cF9mdW5jX29yX21ldGhvZCBpcyBub3QgTm9uZToKLSAgICAgICAgICAgIHNldHVwX2Z1bmNfb3Jf
bWV0aG9kKCkKLSAgICAgICAgdGVhcmRvd25fZnVuY19vcl9tZXRob2QgPSBfZ2V0X3h1bml0X3Nl
dHVwX3RlYXJkb3duKG9iaiwgdGVhcmRvd25fbmFtZSwgcGFyYW1fb2JqPXNlbGYub2JqKQotICAg
ICAgICBpZiB0ZWFyZG93bl9mdW5jX29yX21ldGhvZCBpcyBub3QgTm9uZToKLSAgICAgICAgICAg
IHNlbGYuYWRkZmluYWxpemVyKHRlYXJkb3duX2Z1bmNfb3JfbWV0aG9kKQotCi0gICAgZGVmIF9w
cnVuZXRyYWNlYmFjayhzZWxmLCBleGNpbmZvKToKLSAgICAgICAgaWYgaGFzYXR0cihzZWxmLCAn
X29iaicpIGFuZCBub3Qgc2VsZi5jb25maWcub3B0aW9uLmZ1bGx0cmFjZToKLSAgICAgICAgICAg
IGNvZGUgPSBfcHl0ZXN0Ll9jb2RlLkNvZGUoZ2V0X3JlYWxfZnVuYyhzZWxmLm9iaikpCi0gICAg
ICAgICAgICBwYXRoLCBmaXJzdGxpbmVubyA9IGNvZGUucGF0aCwgY29kZS5maXJzdGxpbmVubwot
ICAgICAgICAgICAgdHJhY2ViYWNrID0gZXhjaW5mby50cmFjZWJhY2sKLSAgICAgICAgICAgIG50
cmFjZWJhY2sgPSB0cmFjZWJhY2suY3V0KHBhdGg9cGF0aCwgZmlyc3RsaW5lbm89Zmlyc3RsaW5l
bm8pCi0gICAgICAgICAgICBpZiBudHJhY2ViYWNrID09IHRyYWNlYmFjazoKLSAgICAgICAgICAg
ICAgICBudHJhY2ViYWNrID0gbnRyYWNlYmFjay5jdXQocGF0aD1wYXRoKQotICAgICAgICAgICAg
ICAgIGlmIG50cmFjZWJhY2sgPT0gdHJhY2ViYWNrOgotICAgICAgICAgICAgICAgICAgICAjIG50
cmFjZWJhY2sgPSBudHJhY2ViYWNrLmN1dChleGNsdWRlcGF0aD1jdXRkaXIyKQotICAgICAgICAg
ICAgICAgICAgICBudHJhY2ViYWNrID0gbnRyYWNlYmFjay5maWx0ZXIoZmlsdGVyX3RyYWNlYmFj
aykKLSAgICAgICAgICAgICAgICAgICAgaWYgbm90IG50cmFjZWJhY2s6Ci0gICAgICAgICAgICAg
ICAgICAgICAgICBudHJhY2ViYWNrID0gdHJhY2ViYWNrCi0KLSAgICAgICAgICAgIGV4Y2luZm8u
dHJhY2ViYWNrID0gbnRyYWNlYmFjay5maWx0ZXIoKQotICAgICAgICAgICAgIyBpc3N1ZTM2NDog
bWFyayBhbGwgYnV0IGZpcnN0IGFuZCBsYXN0IGZyYW1lcyB0bwotICAgICAgICAgICAgIyBvbmx5
IHNob3cgYSBzaW5nbGUtbGluZSBtZXNzYWdlIGZvciBlYWNoIGZyYW1lCi0gICAgICAgICAgICBp
ZiBzZWxmLmNvbmZpZy5vcHRpb24udGJzdHlsZSA9PSAiYXV0byI6Ci0gICAgICAgICAgICAgICAg
aWYgbGVuKGV4Y2luZm8udHJhY2ViYWNrKSA+IDI6Ci0gICAgICAgICAgICAgICAgICAgIGZvciBl
bnRyeSBpbiBleGNpbmZvLnRyYWNlYmFja1sxOi0xXToKLSAgICAgICAgICAgICAgICAgICAgICAg
IGVudHJ5LnNldF9yZXByX3N0eWxlKCdzaG9ydCcpCi0KLSAgICBkZWYgX3JlcHJfZmFpbHVyZV9w
eShzZWxmLCBleGNpbmZvLCBzdHlsZT0ibG9uZyIpOgotICAgICAgICBpZiBleGNpbmZvLmVycmlz
aW5zdGFuY2UoZmFpbC5FeGNlcHRpb24pOgotICAgICAgICAgICAgaWYgbm90IGV4Y2luZm8udmFs
dWUucHl0cmFjZToKLSAgICAgICAgICAgICAgICByZXR1cm4gcHkuX2J1aWx0aW4uX3RvdGV4dChl
eGNpbmZvLnZhbHVlKQotICAgICAgICByZXR1cm4gc3VwZXIoRnVuY3Rpb25NaXhpbiwgc2VsZiku
X3JlcHJfZmFpbHVyZV9weShleGNpbmZvLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHlsZT1zdHlsZSkKLQotICAgIGRlZiByZXBy
X2ZhaWx1cmUoc2VsZiwgZXhjaW5mbywgb3V0ZXJyPU5vbmUpOgotICAgICAgICBhc3NlcnQgb3V0
ZXJyIGlzIE5vbmUsICJYWFggb3V0ZXJyIHVzYWdlIGlzIGRlcHJlY2F0ZWQiCi0gICAgICAgIHN0
eWxlID0gc2VsZi5jb25maWcub3B0aW9uLnRic3R5bGUKLSAgICAgICAgaWYgc3R5bGUgPT0gImF1
dG8iOgotICAgICAgICAgICAgc3R5bGUgPSAibG9uZyIKLSAgICAgICAgcmV0dXJuIHNlbGYuX3Jl
cHJfZmFpbHVyZV9weShleGNpbmZvLCBzdHlsZT1zdHlsZSkKLQotCi1jbGFzcyBHZW5lcmF0b3Io
RnVuY3Rpb25NaXhpbiwgUHlDb2xsZWN0b3IpOgotICAgIGRlZiBjb2xsZWN0KHNlbGYpOgotICAg
ICAgICAjIHRlc3QgZ2VuZXJhdG9ycyBhcmUgc2VlbiBhcyBjb2xsZWN0b3JzIGJ1dCB0aGV5IGFs
c28KLSAgICAgICAgIyBpbnZva2Ugc2V0dXAvdGVhcmRvd24gb24gcG9wdWxhciByZXF1ZXN0Ci0g
ICAgICAgICMgKGluZHVjZWQgYnkgdGhlIGNvbW1vbiAidGVzdF8qIiBuYW1pbmcgc2hhcmVkIHdp
dGggbm9ybWFsIHRlc3RzKQotICAgICAgICBmcm9tIF9weXRlc3QgaW1wb3J0IGRlcHJlY2F0ZWQK
LSAgICAgICAgc2VsZi5zZXNzaW9uLl9zZXR1cHN0YXRlLnByZXBhcmUoc2VsZikKLSAgICAgICAg
IyBzZWUgRnVuY3Rpb25NaXhpbi5zZXR1cCBhbmQgdGVzdF9zZXR1cHN0YXRlX2lzX3ByZXNlcnZl
ZF8xMzQKLSAgICAgICAgc2VsZi5fcHJlc2VydmVkcGFyZW50ID0gc2VsZi5wYXJlbnQub2JqCi0g
ICAgICAgIHZhbHVlcyA9IFtdCi0gICAgICAgIHNlZW4gPSB7fQotICAgICAgICBmb3IgaSwgeCBp
biBlbnVtZXJhdGUoc2VsZi5vYmooKSk6Ci0gICAgICAgICAgICBuYW1lLCBjYWxsLCBhcmdzID0g
c2VsZi5nZXRjYWxsYXJncyh4KQotICAgICAgICAgICAgaWYgbm90IGNhbGxhYmxlKGNhbGwpOgot
ICAgICAgICAgICAgICAgIHJhaXNlIFR5cGVFcnJvcigiJXIgeWllbGRlZCBub24gY2FsbGFibGUg
dGVzdCAlciIgJSAoc2VsZi5vYmosIGNhbGwsKSkKLSAgICAgICAgICAgIGlmIG5hbWUgaXMgTm9u
ZToKLSAgICAgICAgICAgICAgICBuYW1lID0gIlslZF0iICUgaQotICAgICAgICAgICAgZWxzZToK
LSAgICAgICAgICAgICAgICBuYW1lID0gIlsnJXMnXSIgJSBuYW1lCi0gICAgICAgICAgICBpZiBu
YW1lIGluIHNlZW46Ci0gICAgICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigiJXIgZ2VuZXJh
dGVkIHRlc3RzIHdpdGggbm9uLXVuaXF1ZSBuYW1lICVyIiAlIChzZWxmLCBuYW1lKSkKLSAgICAg
ICAgICAgIHNlZW5bbmFtZV0gPSBUcnVlCi0gICAgICAgICAgICB2YWx1ZXMuYXBwZW5kKHNlbGYu
RnVuY3Rpb24obmFtZSwgc2VsZiwgYXJncz1hcmdzLCBjYWxsb2JqPWNhbGwpKQotICAgICAgICBz
ZWxmLndhcm4oJ0MxJywgZGVwcmVjYXRlZC5ZSUVMRF9URVNUUykKLSAgICAgICAgcmV0dXJuIHZh
bHVlcwotCi0gICAgZGVmIGdldGNhbGxhcmdzKHNlbGYsIG9iaik6Ci0gICAgICAgIGlmIG5vdCBp
c2luc3RhbmNlKG9iaiwgKHR1cGxlLCBsaXN0KSk6Ci0gICAgICAgICAgICBvYmogPSAob2JqLCkK
LSAgICAgICAgIyBleHBsaWNpdCBuYW1pbmcKLSAgICAgICAgaWYgaXNpbnN0YW5jZShvYmpbMF0s
IHNpeC5zdHJpbmdfdHlwZXMpOgotICAgICAgICAgICAgbmFtZSA9IG9ialswXQotICAgICAgICAg
ICAgb2JqID0gb2JqWzE6XQotICAgICAgICBlbHNlOgotICAgICAgICAgICAgbmFtZSA9IE5vbmUK
LSAgICAgICAgY2FsbCwgYXJncyA9IG9ialswXSwgb2JqWzE6XQotICAgICAgICByZXR1cm4gbmFt
ZSwgY2FsbCwgYXJncwotCi0KLWRlZiBoYXNpbml0KG9iaik6Ci0gICAgaW5pdCA9IGdldGF0dHIo
b2JqLCAnX19pbml0X18nLCBOb25lKQotICAgIGlmIGluaXQ6Ci0gICAgICAgIHJldHVybiBpbml0
ICE9IG9iamVjdC5fX2luaXRfXwotCi0KLWRlZiBoYXNuZXcob2JqKToKLSAgICBuZXcgPSBnZXRh
dHRyKG9iaiwgJ19fbmV3X18nLCBOb25lKQotICAgIGlmIG5ldzoKLSAgICAgICAgcmV0dXJuIG5l
dyAhPSBvYmplY3QuX19uZXdfXwotCi0KLWNsYXNzIENhbGxTcGVjMihvYmplY3QpOgotICAgIGRl
ZiBfX2luaXRfXyhzZWxmLCBtZXRhZnVuYyk6Ci0gICAgICAgIHNlbGYubWV0YWZ1bmMgPSBtZXRh
ZnVuYwotICAgICAgICBzZWxmLmZ1bmNhcmdzID0ge30KLSAgICAgICAgc2VsZi5faWRsaXN0ID0g
W10KLSAgICAgICAgc2VsZi5wYXJhbXMgPSB7fQotICAgICAgICBzZWxmLl9nbG9iYWxpZCA9IE5P
VFNFVAotICAgICAgICBzZWxmLl9nbG9iYWxpZF9hcmdzID0gc2V0KCkKLSAgICAgICAgc2VsZi5f
Z2xvYmFscGFyYW0gPSBOT1RTRVQKLSAgICAgICAgc2VsZi5fYXJnMnNjb3BlbnVtID0ge30gICMg
dXNlZCBmb3Igc29ydGluZyBwYXJhbWV0cml6ZWQgcmVzb3VyY2VzCi0gICAgICAgIHNlbGYubWFy
a3MgPSBbXQotICAgICAgICBzZWxmLmluZGljZXMgPSB7fQotCi0gICAgZGVmIGNvcHkoc2VsZiwg
bWV0YWZ1bmMpOgotICAgICAgICBjcyA9IENhbGxTcGVjMihzZWxmLm1ldGFmdW5jKQotICAgICAg
ICBjcy5mdW5jYXJncy51cGRhdGUoc2VsZi5mdW5jYXJncykKLSAgICAgICAgY3MucGFyYW1zLnVw
ZGF0ZShzZWxmLnBhcmFtcykKLSAgICAgICAgY3MubWFya3MuZXh0ZW5kKHNlbGYubWFya3MpCi0g
ICAgICAgIGNzLmluZGljZXMudXBkYXRlKHNlbGYuaW5kaWNlcykKLSAgICAgICAgY3MuX2FyZzJz
Y29wZW51bS51cGRhdGUoc2VsZi5fYXJnMnNjb3BlbnVtKQotICAgICAgICBjcy5faWRsaXN0ID0g
bGlzdChzZWxmLl9pZGxpc3QpCi0gICAgICAgIGNzLl9nbG9iYWxpZCA9IHNlbGYuX2dsb2JhbGlk
Ci0gICAgICAgIGNzLl9nbG9iYWxpZF9hcmdzID0gc2VsZi5fZ2xvYmFsaWRfYXJncwotICAgICAg
ICBjcy5fZ2xvYmFscGFyYW0gPSBzZWxmLl9nbG9iYWxwYXJhbQotICAgICAgICByZXR1cm4gY3MK
LQotICAgIGRlZiBfY2hlY2thcmdub3Rjb250YWluZWQoc2VsZiwgYXJnKToKLSAgICAgICAgaWYg
YXJnIGluIHNlbGYucGFyYW1zIG9yIGFyZyBpbiBzZWxmLmZ1bmNhcmdzOgotICAgICAgICAgICAg
cmFpc2UgVmFsdWVFcnJvcigiZHVwbGljYXRlICVyIiAlIChhcmcsKSkKLQotICAgIGRlZiBnZXRw
YXJhbShzZWxmLCBuYW1lKToKLSAgICAgICAgdHJ5OgotICAgICAgICAgICAgcmV0dXJuIHNlbGYu
cGFyYW1zW25hbWVdCi0gICAgICAgIGV4Y2VwdCBLZXlFcnJvcjoKLSAgICAgICAgICAgIGlmIHNl
bGYuX2dsb2JhbHBhcmFtIGlzIE5PVFNFVDoKLSAgICAgICAgICAgICAgICByYWlzZSBWYWx1ZUVy
cm9yKG5hbWUpCi0gICAgICAgICAgICByZXR1cm4gc2VsZi5fZ2xvYmFscGFyYW0KLQotICAgIEBw
cm9wZXJ0eQotICAgIGRlZiBpZChzZWxmKToKLSAgICAgICAgcmV0dXJuICItIi5qb2luKG1hcChz
dHIsIGZpbHRlcihOb25lLCBzZWxmLl9pZGxpc3QpKSkKLQotICAgIGRlZiBzZXRtdWx0aTIoc2Vs
ZiwgdmFsdHlwZXMsIGFyZ25hbWVzLCB2YWxzZXQsIGlkLCBtYXJrcywgc2NvcGVudW0sCi0gICAg
ICAgICAgICAgICAgICBwYXJhbV9pbmRleCk6Ci0gICAgICAgIGZvciBhcmcsIHZhbCBpbiB6aXAo
YXJnbmFtZXMsIHZhbHNldCk6Ci0gICAgICAgICAgICBzZWxmLl9jaGVja2FyZ25vdGNvbnRhaW5l
ZChhcmcpCi0gICAgICAgICAgICB2YWx0eXBlX2Zvcl9hcmcgPSB2YWx0eXBlc1thcmddCi0gICAg
ICAgICAgICBnZXRhdHRyKHNlbGYsIHZhbHR5cGVfZm9yX2FyZylbYXJnXSA9IHZhbAotICAgICAg
ICAgICAgc2VsZi5pbmRpY2VzW2FyZ10gPSBwYXJhbV9pbmRleAotICAgICAgICAgICAgc2VsZi5f
YXJnMnNjb3BlbnVtW2FyZ10gPSBzY29wZW51bQotICAgICAgICBzZWxmLl9pZGxpc3QuYXBwZW5k
KGlkKQotICAgICAgICBzZWxmLm1hcmtzLmV4dGVuZChtYXJrcykKLQotICAgIGRlZiBzZXRhbGwo
c2VsZiwgZnVuY2FyZ3MsIGlkLCBwYXJhbSk6Ci0gICAgICAgIGZvciB4IGluIGZ1bmNhcmdzOgot
ICAgICAgICAgICAgc2VsZi5fY2hlY2thcmdub3Rjb250YWluZWQoeCkKLSAgICAgICAgc2VsZi5m
dW5jYXJncy51cGRhdGUoZnVuY2FyZ3MpCi0gICAgICAgIGlmIGlkIGlzIG5vdCBOT1RTRVQ6Ci0g
ICAgICAgICAgICBzZWxmLl9pZGxpc3QuYXBwZW5kKGlkKQotICAgICAgICBpZiBwYXJhbSBpcyBu
b3QgTk9UU0VUOgotICAgICAgICAgICAgYXNzZXJ0IHNlbGYuX2dsb2JhbHBhcmFtIGlzIE5PVFNF
VAotICAgICAgICAgICAgc2VsZi5fZ2xvYmFscGFyYW0gPSBwYXJhbQotICAgICAgICBmb3IgYXJn
IGluIGZ1bmNhcmdzOgotICAgICAgICAgICAgc2VsZi5fYXJnMnNjb3BlbnVtW2FyZ10gPSBmaXh0
dXJlcy5zY29wZW51bV9mdW5jdGlvbgotCi0KLWNsYXNzIE1ldGFmdW5jKGZpeHR1cmVzLkZ1bmNh
cmduYW1lc0NvbXBhdEF0dHIpOgotICAgICIiIgotICAgIE1ldGFmdW5jIG9iamVjdHMgYXJlIHBh
c3NlZCB0byB0aGUgYGBweXRlc3RfZ2VuZXJhdGVfdGVzdHNgYCBob29rLgotICAgIFRoZXkgaGVs
cCB0byBpbnNwZWN0IGEgdGVzdCBmdW5jdGlvbiBhbmQgdG8gZ2VuZXJhdGUgdGVzdHMgYWNjb3Jk
aW5nIHRvCi0gICAgdGVzdCBjb25maWd1cmF0aW9uIG9yIHZhbHVlcyBzcGVjaWZpZWQgaW4gdGhl
IGNsYXNzIG9yIG1vZHVsZSB3aGVyZSBhCi0gICAgdGVzdCBmdW5jdGlvbiBpcyBkZWZpbmVkLgot
ICAgICIiIgotCi0gICAgZGVmIF9faW5pdF9fKHNlbGYsIGZ1bmN0aW9uLCBmaXh0dXJlaW5mbywg
Y29uZmlnLCBjbHM9Tm9uZSwgbW9kdWxlPU5vbmUpOgotICAgICAgICAjOiBhY2Nlc3MgdG8gdGhl
IDpjbGFzczpgX3B5dGVzdC5jb25maWcuQ29uZmlnYCBvYmplY3QgZm9yIHRoZSB0ZXN0IHNlc3Np
b24KLSAgICAgICAgc2VsZi5jb25maWcgPSBjb25maWcKLQotICAgICAgICAjOiB0aGUgbW9kdWxl
IG9iamVjdCB3aGVyZSB0aGUgdGVzdCBmdW5jdGlvbiBpcyBkZWZpbmVkIGluLgotICAgICAgICBz
ZWxmLm1vZHVsZSA9IG1vZHVsZQotCi0gICAgICAgICM6IHVuZGVybHlpbmcgcHl0aG9uIHRlc3Qg
ZnVuY3Rpb24KLSAgICAgICAgc2VsZi5mdW5jdGlvbiA9IGZ1bmN0aW9uCi0KLSAgICAgICAgIzog
c2V0IG9mIGZpeHR1cmUgbmFtZXMgcmVxdWlyZWQgYnkgdGhlIHRlc3QgZnVuY3Rpb24KLSAgICAg
ICAgc2VsZi5maXh0dXJlbmFtZXMgPSBmaXh0dXJlaW5mby5uYW1lc19jbG9zdXJlCi0KLSAgICAg
ICAgIzogY2xhc3Mgb2JqZWN0IHdoZXJlIHRoZSB0ZXN0IGZ1bmN0aW9uIGlzIGRlZmluZWQgaW4g
b3IgYGBOb25lYGAuCi0gICAgICAgIHNlbGYuY2xzID0gY2xzCi0KLSAgICAgICAgc2VsZi5fY2Fs
bHMgPSBbXQotICAgICAgICBzZWxmLl9pZHMgPSBzZXQoKQotICAgICAgICBzZWxmLl9hcmcyZml4
dHVyZWRlZnMgPSBmaXh0dXJlaW5mby5uYW1lMmZpeHR1cmVkZWZzCi0KLSAgICBkZWYgcGFyYW1l
dHJpemUoc2VsZiwgYXJnbmFtZXMsIGFyZ3ZhbHVlcywgaW5kaXJlY3Q9RmFsc2UsIGlkcz1Ob25l
LAotICAgICAgICAgICAgICAgICAgICBzY29wZT1Ob25lKToKLSAgICAgICAgIiIiIEFkZCBuZXcg
aW52b2NhdGlvbnMgdG8gdGhlIHVuZGVybHlpbmcgdGVzdCBmdW5jdGlvbiB1c2luZyB0aGUgbGlz
dAotICAgICAgICBvZiBhcmd2YWx1ZXMgZm9yIHRoZSBnaXZlbiBhcmduYW1lcy4gIFBhcmFtZXRy
aXphdGlvbiBpcyBwZXJmb3JtZWQKLSAgICAgICAgZHVyaW5nIHRoZSBjb2xsZWN0aW9uIHBoYXNl
LiAgSWYgeW91IG5lZWQgdG8gc2V0dXAgZXhwZW5zaXZlIHJlc291cmNlcwotICAgICAgICBzZWUg
YWJvdXQgc2V0dGluZyBpbmRpcmVjdCB0byBkbyBpdCByYXRoZXIgYXQgdGVzdCBzZXR1cCB0aW1l
LgotCi0gICAgICAgIDphcmcgYXJnbmFtZXM6IGEgY29tbWEtc2VwYXJhdGVkIHN0cmluZyBkZW5v
dGluZyBvbmUgb3IgbW9yZSBhcmd1bWVudAotICAgICAgICAgICAgICAgICAgICAgICBuYW1lcywg
b3IgYSBsaXN0L3R1cGxlIG9mIGFyZ3VtZW50IHN0cmluZ3MuCi0KLSAgICAgICAgOmFyZyBhcmd2
YWx1ZXM6IFRoZSBsaXN0IG9mIGFyZ3ZhbHVlcyBkZXRlcm1pbmVzIGhvdyBvZnRlbiBhCi0gICAg
ICAgICAgICB0ZXN0IGlzIGludm9rZWQgd2l0aCBkaWZmZXJlbnQgYXJndW1lbnQgdmFsdWVzLiAg
SWYgb25seSBvbmUKLSAgICAgICAgICAgIGFyZ25hbWUgd2FzIHNwZWNpZmllZCBhcmd2YWx1ZXMg
aXMgYSBsaXN0IG9mIHZhbHVlcy4gIElmIE4KLSAgICAgICAgICAgIGFyZ25hbWVzIHdlcmUgc3Bl
Y2lmaWVkLCBhcmd2YWx1ZXMgbXVzdCBiZSBhIGxpc3Qgb2YgTi10dXBsZXMsCi0gICAgICAgICAg
ICB3aGVyZSBlYWNoIHR1cGxlLWVsZW1lbnQgc3BlY2lmaWVzIGEgdmFsdWUgZm9yIGl0cyByZXNw
ZWN0aXZlCi0gICAgICAgICAgICBhcmduYW1lLgotCi0gICAgICAgIDphcmcgaW5kaXJlY3Q6IFRo
ZSBsaXN0IG9mIGFyZ25hbWVzIG9yIGJvb2xlYW4uIEEgbGlzdCBvZiBhcmd1bWVudHMnCi0gICAg
ICAgICAgICBuYW1lcyAoc3Vic2V0IG9mIGFyZ25hbWVzKS4gSWYgVHJ1ZSB0aGUgbGlzdCBjb250
YWlucyBhbGwgbmFtZXMgZnJvbQotICAgICAgICAgICAgdGhlIGFyZ25hbWVzLiBFYWNoIGFyZ3Zh
bHVlIGNvcnJlc3BvbmRpbmcgdG8gYW4gYXJnbmFtZSBpbiB0aGlzIGxpc3Qgd2lsbAotICAgICAg
ICAgICAgYmUgcGFzc2VkIGFzIHJlcXVlc3QucGFyYW0gdG8gaXRzIHJlc3BlY3RpdmUgYXJnbmFt
ZSBmaXh0dXJlCi0gICAgICAgICAgICBmdW5jdGlvbiBzbyB0aGF0IGl0IGNhbiBwZXJmb3JtIG1v
cmUgZXhwZW5zaXZlIHNldHVwcyBkdXJpbmcgdGhlCi0gICAgICAgICAgICBzZXR1cCBwaGFzZSBv
ZiBhIHRlc3QgcmF0aGVyIHRoYW4gYXQgY29sbGVjdGlvbiB0aW1lLgotCi0gICAgICAgIDphcmcg
aWRzOiBsaXN0IG9mIHN0cmluZyBpZHMsIG9yIGEgY2FsbGFibGUuCi0gICAgICAgICAgICBJZiBz
dHJpbmdzLCBlYWNoIGlzIGNvcnJlc3BvbmRpbmcgdG8gdGhlIGFyZ3ZhbHVlcyBzbyB0aGF0IHRo
ZXkgYXJlCi0gICAgICAgICAgICBwYXJ0IG9mIHRoZSB0ZXN0IGlkLiBJZiBOb25lIGlzIGdpdmVu
IGFzIGlkIG9mIHNwZWNpZmljIHRlc3QsIHRoZQotICAgICAgICAgICAgYXV0b21hdGljYWxseSBn
ZW5lcmF0ZWQgaWQgZm9yIHRoYXQgYXJndW1lbnQgd2lsbCBiZSB1c2VkLgotICAgICAgICAgICAg
SWYgY2FsbGFibGUsIGl0IHNob3VsZCB0YWtlIG9uZSBhcmd1bWVudCAoYSBzaW5nbGUgYXJndmFs
dWUpIGFuZCByZXR1cm4KLSAgICAgICAgICAgIGEgc3RyaW5nIG9yIHJldHVybiBOb25lLiBJZiBO
b25lLCB0aGUgYXV0b21hdGljYWxseSBnZW5lcmF0ZWQgaWQgZm9yIHRoYXQKLSAgICAgICAgICAg
IGFyZ3VtZW50IHdpbGwgYmUgdXNlZC4KLSAgICAgICAgICAgIElmIG5vIGlkcyBhcmUgcHJvdmlk
ZWQgdGhleSB3aWxsIGJlIGdlbmVyYXRlZCBhdXRvbWF0aWNhbGx5IGZyb20KLSAgICAgICAgICAg
IHRoZSBhcmd2YWx1ZXMuCi0KLSAgICAgICAgOmFyZyBzY29wZTogaWYgc3BlY2lmaWVkIGl0IGRl
bm90ZXMgdGhlIHNjb3BlIG9mIHRoZSBwYXJhbWV0ZXJzLgotICAgICAgICAgICAgVGhlIHNjb3Bl
IGlzIHVzZWQgZm9yIGdyb3VwaW5nIHRlc3RzIGJ5IHBhcmFtZXRlciBpbnN0YW5jZXMuCi0gICAg
ICAgICAgICBJdCB3aWxsIGFsc28gb3ZlcnJpZGUgYW55IGZpeHR1cmUtZnVuY3Rpb24gZGVmaW5l
ZCBzY29wZSwgYWxsb3dpbmcKLSAgICAgICAgICAgIHRvIHNldCBhIGR5bmFtaWMgc2NvcGUgdXNp
bmcgdGVzdCBjb250ZXh0IG9yIGNvbmZpZ3VyYXRpb24uCi0gICAgICAgICIiIgotICAgICAgICBm
cm9tIF9weXRlc3QuZml4dHVyZXMgaW1wb3J0IHNjb3BlMmluZGV4Ci0gICAgICAgIGZyb20gX3B5
dGVzdC5tYXJrIGltcG9ydCBQYXJhbWV0ZXJTZXQKLSAgICAgICAgZnJvbSBweS5pbyBpbXBvcnQg
c2FmZXJlcHIKLSAgICAgICAgYXJnbmFtZXMsIHBhcmFtZXRlcnMgPSBQYXJhbWV0ZXJTZXQuX2Zv
cl9wYXJhbWV0ZXJpemUoCi0gICAgICAgICAgICBhcmduYW1lcywgYXJndmFsdWVzLCBzZWxmLmZ1
bmN0aW9uKQotICAgICAgICBkZWwgYXJndmFsdWVzCi0KLSAgICAgICAgaWYgc2NvcGUgaXMgTm9u
ZToKLSAgICAgICAgICAgIHNjb3BlID0gX2ZpbmRfcGFyYW1ldHJpemVkX3Njb3BlKGFyZ25hbWVz
LCBzZWxmLl9hcmcyZml4dHVyZWRlZnMsIGluZGlyZWN0KQotCi0gICAgICAgIHNjb3BlbnVtID0g
c2NvcGUyaW5kZXgoc2NvcGUsIGRlc2NyPSdjYWxsIHRvIHswfScuZm9ybWF0KHNlbGYucGFyYW1l
dHJpemUpKQotICAgICAgICB2YWx0eXBlcyA9IHt9Ci0gICAgICAgIGZvciBhcmcgaW4gYXJnbmFt
ZXM6Ci0gICAgICAgICAgICBpZiBhcmcgbm90IGluIHNlbGYuZml4dHVyZW5hbWVzOgotICAgICAg
ICAgICAgICAgIGlmIGlzaW5zdGFuY2UoaW5kaXJlY3QsICh0dXBsZSwgbGlzdCkpOgotICAgICAg
ICAgICAgICAgICAgICBuYW1lID0gJ2ZpeHR1cmUnIGlmIGFyZyBpbiBpbmRpcmVjdCBlbHNlICdh
cmd1bWVudCcKLSAgICAgICAgICAgICAgICBlbHNlOgotICAgICAgICAgICAgICAgICAgICBuYW1l
ID0gJ2ZpeHR1cmUnIGlmIGluZGlyZWN0IGVsc2UgJ2FyZ3VtZW50JwotICAgICAgICAgICAgICAg
IHJhaXNlIFZhbHVlRXJyb3IoCi0gICAgICAgICAgICAgICAgICAgICIlciB1c2VzIG5vICVzICVy
IiAlICgKLSAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuZnVuY3Rpb24sIG5hbWUsIGFyZykp
Ci0KLSAgICAgICAgaWYgaW5kaXJlY3QgaXMgVHJ1ZToKLSAgICAgICAgICAgIHZhbHR5cGVzID0g
ZGljdC5mcm9ta2V5cyhhcmduYW1lcywgInBhcmFtcyIpCi0gICAgICAgIGVsaWYgaW5kaXJlY3Qg
aXMgRmFsc2U6Ci0gICAgICAgICAgICB2YWx0eXBlcyA9IGRpY3QuZnJvbWtleXMoYXJnbmFtZXMs
ICJmdW5jYXJncyIpCi0gICAgICAgIGVsaWYgaXNpbnN0YW5jZShpbmRpcmVjdCwgKHR1cGxlLCBs
aXN0KSk6Ci0gICAgICAgICAgICB2YWx0eXBlcyA9IGRpY3QuZnJvbWtleXMoYXJnbmFtZXMsICJm
dW5jYXJncyIpCi0gICAgICAgICAgICBmb3IgYXJnIGluIGluZGlyZWN0OgotICAgICAgICAgICAg
ICAgIGlmIGFyZyBub3QgaW4gYXJnbmFtZXM6Ci0gICAgICAgICAgICAgICAgICAgIHJhaXNlIFZh
bHVlRXJyb3IoImluZGlyZWN0IGdpdmVuIHRvICVyOiBmaXh0dXJlICVyIGRvZXNuJ3QgZXhpc3Qi
ICUgKAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuZnVuY3Rpb24s
IGFyZykpCi0gICAgICAgICAgICAgICAgdmFsdHlwZXNbYXJnXSA9ICJwYXJhbXMiCi0gICAgICAg
IGlkZm4gPSBOb25lCi0gICAgICAgIGlmIGNhbGxhYmxlKGlkcyk6Ci0gICAgICAgICAgICBpZGZu
ID0gaWRzCi0gICAgICAgICAgICBpZHMgPSBOb25lCi0gICAgICAgIGlmIGlkczoKLSAgICAgICAg
ICAgIGlmIGxlbihpZHMpICE9IGxlbihwYXJhbWV0ZXJzKToKLSAgICAgICAgICAgICAgICByYWlz
ZSBWYWx1ZUVycm9yKCclZCB0ZXN0cyBzcGVjaWZpZWQgd2l0aCAlZCBpZHMnICUgKAotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgbGVuKHBhcmFtZXRlcnMpLCBsZW4oaWRzKSkpCi0g
ICAgICAgICAgICBmb3IgaWRfdmFsdWUgaW4gaWRzOgotICAgICAgICAgICAgICAgIGlmIGlkX3Zh
bHVlIGlzIG5vdCBOb25lIGFuZCBub3QgaXNpbnN0YW5jZShpZF92YWx1ZSwgc2l4LnN0cmluZ190
eXBlcyk6Ci0gICAgICAgICAgICAgICAgICAgIG1zZyA9ICdpZHMgbXVzdCBiZSBsaXN0IG9mIHN0
cmluZ3MsIGZvdW5kOiAlcyAodHlwZTogJXMpJwotICAgICAgICAgICAgICAgICAgICByYWlzZSBW
YWx1ZUVycm9yKG1zZyAlIChzYWZlcmVwcihpZF92YWx1ZSksIHR5cGUoaWRfdmFsdWUpLl9fbmFt
ZV9fKSkKLSAgICAgICAgaWRzID0gaWRtYWtlcihhcmduYW1lcywgcGFyYW1ldGVycywgaWRmbiwg
aWRzLCBzZWxmLmNvbmZpZykKLSAgICAgICAgbmV3Y2FsbHMgPSBbXQotICAgICAgICBmb3IgY2Fs
bHNwZWMgaW4gc2VsZi5fY2FsbHMgb3IgW0NhbGxTcGVjMihzZWxmKV06Ci0gICAgICAgICAgICBl
bGVtZW50cyA9IHppcChpZHMsIHBhcmFtZXRlcnMsIGNvdW50KCkpCi0gICAgICAgICAgICBmb3Ig
YV9pZCwgcGFyYW0sIHBhcmFtX2luZGV4IGluIGVsZW1lbnRzOgotICAgICAgICAgICAgICAgIGlm
IGxlbihwYXJhbS52YWx1ZXMpICE9IGxlbihhcmduYW1lcyk6Ci0gICAgICAgICAgICAgICAgICAg
IHJhaXNlIFZhbHVlRXJyb3IoCi0gICAgICAgICAgICAgICAgICAgICAgICAnSW4gInBhcmFtZXRy
aXplIiB0aGUgbnVtYmVyIG9mIHZhbHVlcyAoezB9KSBtdXN0IGJlICcKLSAgICAgICAgICAgICAg
ICAgICAgICAgICdlcXVhbCB0byB0aGUgbnVtYmVyIG9mIG5hbWVzICh7MX0pJy5mb3JtYXQoCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFyYW0udmFsdWVzLCBhcmduYW1lcykpCi0gICAg
ICAgICAgICAgICAgbmV3Y2FsbHNwZWMgPSBjYWxsc3BlYy5jb3B5KHNlbGYpCi0gICAgICAgICAg
ICAgICAgbmV3Y2FsbHNwZWMuc2V0bXVsdGkyKHZhbHR5cGVzLCBhcmduYW1lcywgcGFyYW0udmFs
dWVzLCBhX2lkLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXJhbS5t
YXJrcywgc2NvcGVudW0sIHBhcmFtX2luZGV4KQotICAgICAgICAgICAgICAgIG5ld2NhbGxzLmFw
cGVuZChuZXdjYWxsc3BlYykKLSAgICAgICAgc2VsZi5fY2FsbHMgPSBuZXdjYWxscwotCi0gICAg
ZGVmIGFkZGNhbGwoc2VsZiwgZnVuY2FyZ3M9Tm9uZSwgaWQ9Tk9UU0VULCBwYXJhbT1OT1RTRVQp
OgotICAgICAgICAiIiIgQWRkIGEgbmV3IGNhbGwgdG8gdGhlIHVuZGVybHlpbmcgdGVzdCBmdW5j
dGlvbiBkdXJpbmcgdGhlIGNvbGxlY3Rpb24gcGhhc2Ugb2YgYSB0ZXN0IHJ1bi4KLQotICAgICAg
ICAuLiBkZXByZWNhdGVkOjogMy4zCi0KLSAgICAgICAgICAgIFVzZSA6bWV0aDpgcGFyYW1ldHJp
emVgIGluc3RlYWQuCi0KLSAgICAgICAgTm90ZSB0aGF0IHJlcXVlc3QuYWRkY2FsbCgpIGlzIGNh
bGxlZCBkdXJpbmcgdGhlIHRlc3QgY29sbGVjdGlvbiBwaGFzZSBwcmlvciBhbmQKLSAgICAgICAg
aW5kZXBlbmRlbnRseSB0byBhY3R1YWwgdGVzdCBleGVjdXRpb24uICBZb3Ugc2hvdWxkIG9ubHkg
dXNlIGFkZGNhbGwoKQotICAgICAgICBpZiB5b3UgbmVlZCB0byBzcGVjaWZ5IG11bHRpcGxlIGFy
Z3VtZW50cyBvZiBhIHRlc3QgZnVuY3Rpb24uCi0KLSAgICAgICAgOmFyZyBmdW5jYXJnczogYXJn
dW1lbnQga2V5d29yZCBkaWN0aW9uYXJ5IHVzZWQgd2hlbiBpbnZva2luZwotICAgICAgICAgICAg
dGhlIHRlc3QgZnVuY3Rpb24uCi0KLSAgICAgICAgOmFyZyBpZDogdXNlZCBmb3IgcmVwb3J0aW5n
IGFuZCBpZGVudGlmaWNhdGlvbiBwdXJwb3Nlcy4gIElmIHlvdQotICAgICAgICAgICAgZG9uJ3Qg
c3VwcGx5IGFuIGBpZGAgYW4gYXV0b21hdGljIHVuaXF1ZSBpZCB3aWxsIGJlIGdlbmVyYXRlZC4K
LQotICAgICAgICA6YXJnIHBhcmFtOiBhIHBhcmFtZXRlciB3aGljaCB3aWxsIGJlIGV4cG9zZWQg
dG8gYSBsYXRlciBmaXh0dXJlIGZ1bmN0aW9uCi0gICAgICAgICAgICBpbnZvY2F0aW9uIHRocm91
Z2ggdGhlIGBgcmVxdWVzdC5wYXJhbWBgIGF0dHJpYnV0ZS4KLSAgICAgICAgIiIiCi0gICAgICAg
IGlmIHNlbGYuY29uZmlnOgotICAgICAgICAgICAgc2VsZi5jb25maWcud2FybignQzEnLCBtZXNz
YWdlPWRlcHJlY2F0ZWQuTUVUQUZVTkNfQUREX0NBTEwsIGZzbG9jYXRpb249Tm9uZSkKLSAgICAg
ICAgYXNzZXJ0IGZ1bmNhcmdzIGlzIE5vbmUgb3IgaXNpbnN0YW5jZShmdW5jYXJncywgZGljdCkK
LSAgICAgICAgaWYgZnVuY2FyZ3MgaXMgbm90IE5vbmU6Ci0gICAgICAgICAgICBmb3IgbmFtZSBp
biBmdW5jYXJnczoKLSAgICAgICAgICAgICAgICBpZiBuYW1lIG5vdCBpbiBzZWxmLmZpeHR1cmVu
YW1lczoKLSAgICAgICAgICAgICAgICAgICAgZmFpbCgiZnVuY2FyZyAlciBub3QgdXNlZCBpbiB0
aGlzIGZ1bmN0aW9uLiIgJSBuYW1lKQotICAgICAgICBlbHNlOgotICAgICAgICAgICAgZnVuY2Fy
Z3MgPSB7fQotICAgICAgICBpZiBpZCBpcyBOb25lOgotICAgICAgICAgICAgcmFpc2UgVmFsdWVF
cnJvcigiaWQ9Tm9uZSBub3QgYWxsb3dlZCIpCi0gICAgICAgIGlmIGlkIGlzIE5PVFNFVDoKLSAg
ICAgICAgICAgIGlkID0gbGVuKHNlbGYuX2NhbGxzKQotICAgICAgICBpZCA9IHN0cihpZCkKLSAg
ICAgICAgaWYgaWQgaW4gc2VsZi5faWRzOgotICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigi
ZHVwbGljYXRlIGlkICVyIiAlIGlkKQotICAgICAgICBzZWxmLl9pZHMuYWRkKGlkKQotCi0gICAg
ICAgIGNzID0gQ2FsbFNwZWMyKHNlbGYpCi0gICAgICAgIGNzLnNldGFsbChmdW5jYXJncywgaWQs
IHBhcmFtKQotICAgICAgICBzZWxmLl9jYWxscy5hcHBlbmQoY3MpCi0KLQotZGVmIF9maW5kX3Bh
cmFtZXRyaXplZF9zY29wZShhcmduYW1lcywgYXJnMmZpeHR1cmVkZWZzLCBpbmRpcmVjdCk6Ci0g
ICAgIiIiRmluZCB0aGUgbW9zdCBhcHByb3ByaWF0ZSBzY29wZSBmb3IgYSBwYXJhbWV0cml6ZWQg
Y2FsbCBiYXNlZCBvbiBpdHMgYXJndW1lbnRzLgotCi0gICAgV2hlbiB0aGVyZSdzIGF0IGxlYXN0
IG9uZSBkaXJlY3QgYXJndW1lbnQsIGFsd2F5cyB1c2UgImZ1bmN0aW9uIiBzY29wZS4KLQotICAg
IFdoZW4gYSB0ZXN0IGZ1bmN0aW9uIGlzIHBhcmFtZXRyaXplZCBhbmQgYWxsIGl0cyBhcmd1bWVu
dHMgYXJlIGluZGlyZWN0Ci0gICAgKGUuZy4gZml4dHVyZXMpLCByZXR1cm4gdGhlIG1vc3QgbmFy
cm93IHNjb3BlIGJhc2VkIG9uIHRoZSBmaXh0dXJlcyB1c2VkLgotCi0gICAgUmVsYXRlZCB0byBp
c3N1ZSAjMTgzMiwgYmFzZWQgb24gY29kZSBwb3N0ZWQgYnkgQEtpbmdkcmVhZC4KLSAgICAiIiIK
LSAgICBmcm9tIF9weXRlc3QuZml4dHVyZXMgaW1wb3J0IHNjb3BlcwotICAgIGluZGlyZWN0X2Fz
X2xpc3QgPSBpc2luc3RhbmNlKGluZGlyZWN0LCAobGlzdCwgdHVwbGUpKQotICAgIGFsbF9hcmd1
bWVudHNfYXJlX2ZpeHR1cmVzID0gaW5kaXJlY3QgaXMgVHJ1ZSBvciBcCi0gICAgICAgIGluZGly
ZWN0X2FzX2xpc3QgYW5kIGxlbihpbmRpcmVjdCkgPT0gYXJnbmFtZXMKLSAgICBpZiBhbGxfYXJn
dW1lbnRzX2FyZV9maXh0dXJlczoKLSAgICAgICAgZml4dHVyZWRlZnMgPSBhcmcyZml4dHVyZWRl
ZnMgb3Ige30KLSAgICAgICAgdXNlZF9zY29wZXMgPSBbZml4dHVyZWRlZlswXS5zY29wZSBmb3Ig
bmFtZSwgZml4dHVyZWRlZiBpbiBmaXh0dXJlZGVmcy5pdGVtcygpXQotICAgICAgICBpZiB1c2Vk
X3Njb3BlczoKLSAgICAgICAgICAgICMgVGFrZXMgdGhlIG1vc3QgbmFycm93IHNjb3BlIGZyb20g
dXNlZCBmaXh0dXJlcwotICAgICAgICAgICAgZm9yIHNjb3BlIGluIHJldmVyc2VkKHNjb3Blcyk6
Ci0gICAgICAgICAgICAgICAgaWYgc2NvcGUgaW4gdXNlZF9zY29wZXM6Ci0gICAgICAgICAgICAg
ICAgICAgIHJldHVybiBzY29wZQotCi0gICAgcmV0dXJuICdmdW5jdGlvbicKLQotCi1kZWYgX2lk
dmFsKHZhbCwgYXJnbmFtZSwgaWR4LCBpZGZuLCBjb25maWc9Tm9uZSk6Ci0gICAgaWYgaWRmbjoK
LSAgICAgICAgcyA9IE5vbmUKLSAgICAgICAgdHJ5OgotICAgICAgICAgICAgcyA9IGlkZm4odmFs
KQotICAgICAgICBleGNlcHQgRXhjZXB0aW9uOgotICAgICAgICAgICAgIyBTZWUgaXNzdWUgaHR0
cHM6Ly9naXRodWIuY29tL3B5dGVzdC1kZXYvcHl0ZXN0L2lzc3Vlcy8yMTY5Ci0gICAgICAgICAg
ICBpbXBvcnQgd2FybmluZ3MKLSAgICAgICAgICAgIG1zZyA9ICJSYWlzZWQgd2hpbGUgdHJ5aW5n
IHRvIGRldGVybWluZSBpZCBvZiBwYXJhbWV0ZXIgJXMgYXQgcG9zaXRpb24gJWQuIiAlIChhcmdu
YW1lLCBpZHgpCi0gICAgICAgICAgICBtc2cgKz0gJ1xuVXBkYXRlIHlvdXIgY29kZSBhcyB0aGlz
IHdpbGwgcmFpc2UgYW4gZXJyb3IgaW4gcHl0ZXN0LTQuMC4nCi0gICAgICAgICAgICB3YXJuaW5n
cy53YXJuKG1zZywgRGVwcmVjYXRpb25XYXJuaW5nKQotICAgICAgICBpZiBzOgotICAgICAgICAg
ICAgcmV0dXJuIGFzY2lpX2VzY2FwZWQocykKLQotICAgIGlmIGNvbmZpZzoKLSAgICAgICAgaG9v
a19pZCA9IGNvbmZpZy5ob29rLnB5dGVzdF9tYWtlX3BhcmFtZXRyaXplX2lkKAotICAgICAgICAg
ICAgY29uZmlnPWNvbmZpZywgdmFsPXZhbCwgYXJnbmFtZT1hcmduYW1lKQotICAgICAgICBpZiBo
b29rX2lkOgotICAgICAgICAgICAgcmV0dXJuIGhvb2tfaWQKLQotICAgIGlmIGlzaW5zdGFuY2Uo
dmFsLCBTVFJJTkdfVFlQRVMpOgotICAgICAgICByZXR1cm4gYXNjaWlfZXNjYXBlZCh2YWwpCi0g
ICAgZWxpZiBpc2luc3RhbmNlKHZhbCwgKGZsb2F0LCBpbnQsIGJvb2wsIE5vbmVUeXBlKSk6Ci0g
ICAgICAgIHJldHVybiBzdHIodmFsKQotICAgIGVsaWYgaXNpbnN0YW5jZSh2YWwsIFJFR0VYX1RZ
UEUpOgotICAgICAgICByZXR1cm4gYXNjaWlfZXNjYXBlZCh2YWwucGF0dGVybikKLSAgICBlbGlm
IGVudW0gaXMgbm90IE5vbmUgYW5kIGlzaW5zdGFuY2UodmFsLCBlbnVtLkVudW0pOgotICAgICAg
ICByZXR1cm4gc3RyKHZhbCkKLSAgICBlbGlmIGlzY2xhc3ModmFsKSBhbmQgaGFzYXR0cih2YWws
ICdfX25hbWVfXycpOgotICAgICAgICByZXR1cm4gdmFsLl9fbmFtZV9fCi0gICAgcmV0dXJuIHN0
cihhcmduYW1lKSArIHN0cihpZHgpCi0KLQotZGVmIF9pZHZhbHNldChpZHgsIHBhcmFtZXRlcnNl
dCwgYXJnbmFtZXMsIGlkZm4sIGlkcywgY29uZmlnPU5vbmUpOgotICAgIGlmIHBhcmFtZXRlcnNl
dC5pZCBpcyBub3QgTm9uZToKLSAgICAgICAgcmV0dXJuIHBhcmFtZXRlcnNldC5pZAotICAgIGlm
IGlkcyBpcyBOb25lIG9yIChpZHggPj0gbGVuKGlkcykgb3IgaWRzW2lkeF0gaXMgTm9uZSk6Ci0g
ICAgICAgIHRoaXNfaWQgPSBbX2lkdmFsKHZhbCwgYXJnbmFtZSwgaWR4LCBpZGZuLCBjb25maWcp
Ci0gICAgICAgICAgICAgICAgICAgZm9yIHZhbCwgYXJnbmFtZSBpbiB6aXAocGFyYW1ldGVyc2V0
LnZhbHVlcywgYXJnbmFtZXMpXQotICAgICAgICByZXR1cm4gIi0iLmpvaW4odGhpc19pZCkKLSAg
ICBlbHNlOgotICAgICAgICByZXR1cm4gYXNjaWlfZXNjYXBlZChpZHNbaWR4XSkKLQotCi1kZWYg
aWRtYWtlcihhcmduYW1lcywgcGFyYW1ldGVyc2V0cywgaWRmbj1Ob25lLCBpZHM9Tm9uZSwgY29u
ZmlnPU5vbmUpOgotICAgIGlkcyA9IFtfaWR2YWxzZXQodmFsaW5kZXgsIHBhcmFtZXRlcnNldCwg
YXJnbmFtZXMsIGlkZm4sIGlkcywgY29uZmlnKQotICAgICAgICAgICBmb3IgdmFsaW5kZXgsIHBh
cmFtZXRlcnNldCBpbiBlbnVtZXJhdGUocGFyYW1ldGVyc2V0cyldCi0gICAgaWYgbGVuKHNldChp
ZHMpKSAhPSBsZW4oaWRzKToKLSAgICAgICAgIyBUaGUgaWRzIGFyZSBub3QgdW5pcXVlCi0gICAg
ICAgIGR1cGxpY2F0ZXMgPSBbdGVzdGlkIGZvciB0ZXN0aWQgaW4gaWRzIGlmIGlkcy5jb3VudCh0
ZXN0aWQpID4gMV0KLSAgICAgICAgY291bnRlcnMgPSBjb2xsZWN0aW9ucy5kZWZhdWx0ZGljdChs
YW1iZGE6IDApCi0gICAgICAgIGZvciBpbmRleCwgdGVzdGlkIGluIGVudW1lcmF0ZShpZHMpOgot
ICAgICAgICAgICAgaWYgdGVzdGlkIGluIGR1cGxpY2F0ZXM6Ci0gICAgICAgICAgICAgICAgaWRz
W2luZGV4XSA9IHRlc3RpZCArIHN0cihjb3VudGVyc1t0ZXN0aWRdKQotICAgICAgICAgICAgICAg
IGNvdW50ZXJzW3Rlc3RpZF0gKz0gMQotICAgIHJldHVybiBpZHMKLQotCi1kZWYgc2hvd19maXh0
dXJlc19wZXJfdGVzdChjb25maWcpOgotICAgIGZyb20gX3B5dGVzdC5tYWluIGltcG9ydCB3cmFw
X3Nlc3Npb24KLSAgICByZXR1cm4gd3JhcF9zZXNzaW9uKGNvbmZpZywgX3Nob3dfZml4dHVyZXNf
cGVyX3Rlc3QpCi0KLQotZGVmIF9zaG93X2ZpeHR1cmVzX3Blcl90ZXN0KGNvbmZpZywgc2Vzc2lv
bik6Ci0gICAgaW1wb3J0IF9weXRlc3QuY29uZmlnCi0gICAgc2Vzc2lvbi5wZXJmb3JtX2NvbGxl
Y3QoKQotICAgIGN1cmRpciA9IHB5LnBhdGgubG9jYWwoKQotICAgIHR3ID0gX3B5dGVzdC5jb25m
aWcuY3JlYXRlX3Rlcm1pbmFsX3dyaXRlcihjb25maWcpCi0gICAgdmVyYm9zZSA9IGNvbmZpZy5n
ZXR2YWx1ZSgidmVyYm9zZSIpCi0KLSAgICBkZWYgZ2V0X2Jlc3RfcmVscGF0aChmdW5jKToKLSAg
ICAgICAgbG9jID0gZ2V0bG9jYXRpb24oZnVuYywgY3VyZGlyKQotICAgICAgICByZXR1cm4gY3Vy
ZGlyLmJlc3RyZWxwYXRoKGxvYykKLQotICAgIGRlZiB3cml0ZV9maXh0dXJlKGZpeHR1cmVfZGVm
KToKLSAgICAgICAgYXJnbmFtZSA9IGZpeHR1cmVfZGVmLmFyZ25hbWUKLSAgICAgICAgaWYgdmVy
Ym9zZSA8PSAwIGFuZCBhcmduYW1lLnN0YXJ0c3dpdGgoIl8iKToKLSAgICAgICAgICAgIHJldHVy
bgotICAgICAgICBpZiB2ZXJib3NlID4gMDoKLSAgICAgICAgICAgIGJlc3RyZWwgPSBnZXRfYmVz
dF9yZWxwYXRoKGZpeHR1cmVfZGVmLmZ1bmMpCi0gICAgICAgICAgICBmdW5jYXJnc3BlYyA9ICJ7
MH0gLS0gezF9Ii5mb3JtYXQoYXJnbmFtZSwgYmVzdHJlbCkKLSAgICAgICAgZWxzZToKLSAgICAg
ICAgICAgIGZ1bmNhcmdzcGVjID0gYXJnbmFtZQotICAgICAgICB0dy5saW5lKGZ1bmNhcmdzcGVj
LCBncmVlbj1UcnVlKQotICAgICAgICBmaXh0dXJlX2RvYyA9IGZpeHR1cmVfZGVmLmZ1bmMuX19k
b2NfXwotICAgICAgICBpZiBmaXh0dXJlX2RvYzoKLSAgICAgICAgICAgIHdyaXRlX2RvY3N0cmlu
Zyh0dywgZml4dHVyZV9kb2MpCi0gICAgICAgIGVsc2U6Ci0gICAgICAgICAgICB0dy5saW5lKCcg
ICAgbm8gZG9jc3RyaW5nIGF2YWlsYWJsZScsIHJlZD1UcnVlKQotCi0gICAgZGVmIHdyaXRlX2l0
ZW0oaXRlbSk6Ci0gICAgICAgIHRyeToKLSAgICAgICAgICAgIGluZm8gPSBpdGVtLl9maXh0dXJl
aW5mbwotICAgICAgICBleGNlcHQgQXR0cmlidXRlRXJyb3I6Ci0gICAgICAgICAgICAjIGRvY3Rl
c3RzIGl0ZW1zIGhhdmUgbm8gX2ZpeHR1cmVpbmZvIGF0dHJpYnV0ZQotICAgICAgICAgICAgcmV0
dXJuCi0gICAgICAgIGlmIG5vdCBpbmZvLm5hbWUyZml4dHVyZWRlZnM6Ci0gICAgICAgICAgICAj
IHRoaXMgdGVzdCBpdGVtIGRvZXMgbm90IHVzZSBhbnkgZml4dHVyZXMKLSAgICAgICAgICAgIHJl
dHVybgotICAgICAgICB0dy5saW5lKCkKLSAgICAgICAgdHcuc2VwKCctJywgJ2ZpeHR1cmVzIHVz
ZWQgYnkgezB9Jy5mb3JtYXQoaXRlbS5uYW1lKSkKLSAgICAgICAgdHcuc2VwKCctJywgJyh7MH0p
Jy5mb3JtYXQoZ2V0X2Jlc3RfcmVscGF0aChpdGVtLmZ1bmN0aW9uKSkpCi0gICAgICAgICMgZGlj
dCBrZXkgbm90IHVzZWQgaW4gbG9vcCBidXQgbmVlZGVkIGZvciBzb3J0aW5nCi0gICAgICAgIGZv
ciBfLCBmaXh0dXJlZGVmcyBpbiBzb3J0ZWQoaW5mby5uYW1lMmZpeHR1cmVkZWZzLml0ZW1zKCkp
OgotICAgICAgICAgICAgYXNzZXJ0IGZpeHR1cmVkZWZzIGlzIG5vdCBOb25lCi0gICAgICAgICAg
ICBpZiBub3QgZml4dHVyZWRlZnM6Ci0gICAgICAgICAgICAgICAgY29udGludWUKLSAgICAgICAg
ICAgICMgbGFzdCBpdGVtIGlzIGV4cGVjdGVkIHRvIGJlIHRoZSBvbmUgdXNlZCBieSB0aGUgdGVz
dCBpdGVtCi0gICAgICAgICAgICB3cml0ZV9maXh0dXJlKGZpeHR1cmVkZWZzWy0xXSkKLQotICAg
IGZvciBzZXNzaW9uX2l0ZW0gaW4gc2Vzc2lvbi5pdGVtczoKLSAgICAgICAgd3JpdGVfaXRlbShz
ZXNzaW9uX2l0ZW0pCi0KLQotZGVmIHNob3dmaXh0dXJlcyhjb25maWcpOgotICAgIGZyb20gX3B5
dGVzdC5tYWluIGltcG9ydCB3cmFwX3Nlc3Npb24KLSAgICByZXR1cm4gd3JhcF9zZXNzaW9uKGNv
bmZpZywgX3Nob3dmaXh0dXJlc19tYWluKQotCi0KLWRlZiBfc2hvd2ZpeHR1cmVzX21haW4oY29u
ZmlnLCBzZXNzaW9uKToKLSAgICBpbXBvcnQgX3B5dGVzdC5jb25maWcKLSAgICBzZXNzaW9uLnBl
cmZvcm1fY29sbGVjdCgpCi0gICAgY3VyZGlyID0gcHkucGF0aC5sb2NhbCgpCi0gICAgdHcgPSBf
cHl0ZXN0LmNvbmZpZy5jcmVhdGVfdGVybWluYWxfd3JpdGVyKGNvbmZpZykKLSAgICB2ZXJib3Nl
ID0gY29uZmlnLmdldHZhbHVlKCJ2ZXJib3NlIikKLQotICAgIGZtID0gc2Vzc2lvbi5fZml4dHVy
ZW1hbmFnZXIKLQotICAgIGF2YWlsYWJsZSA9IFtdCi0gICAgc2VlbiA9IHNldCgpCi0KLSAgICBm
b3IgYXJnbmFtZSwgZml4dHVyZWRlZnMgaW4gZm0uX2FyZzJmaXh0dXJlZGVmcy5pdGVtcygpOgot
ICAgICAgICBhc3NlcnQgZml4dHVyZWRlZnMgaXMgbm90IE5vbmUKLSAgICAgICAgaWYgbm90IGZp
eHR1cmVkZWZzOgotICAgICAgICAgICAgY29udGludWUKLSAgICAgICAgZm9yIGZpeHR1cmVkZWYg
aW4gZml4dHVyZWRlZnM6Ci0gICAgICAgICAgICBsb2MgPSBnZXRsb2NhdGlvbihmaXh0dXJlZGVm
LmZ1bmMsIGN1cmRpcikKLSAgICAgICAgICAgIGlmIChmaXh0dXJlZGVmLmFyZ25hbWUsIGxvYykg
aW4gc2VlbjoKLSAgICAgICAgICAgICAgICBjb250aW51ZQotICAgICAgICAgICAgc2Vlbi5hZGQo
KGZpeHR1cmVkZWYuYXJnbmFtZSwgbG9jKSkKLSAgICAgICAgICAgIGF2YWlsYWJsZS5hcHBlbmQo
KGxlbihmaXh0dXJlZGVmLmJhc2VpZCksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBm
aXh0dXJlZGVmLmZ1bmMuX19tb2R1bGVfXywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGN1cmRpci5iZXN0cmVscGF0aChsb2MpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
Zml4dHVyZWRlZi5hcmduYW1lLCBmaXh0dXJlZGVmKSkKLQotICAgIGF2YWlsYWJsZS5zb3J0KCkK
LSAgICBjdXJyZW50bW9kdWxlID0gTm9uZQotICAgIGZvciBiYXNlaWQsIG1vZHVsZSwgYmVzdHJl
bCwgYXJnbmFtZSwgZml4dHVyZWRlZiBpbiBhdmFpbGFibGU6Ci0gICAgICAgIGlmIGN1cnJlbnRt
b2R1bGUgIT0gbW9kdWxlOgotICAgICAgICAgICAgaWYgbm90IG1vZHVsZS5zdGFydHN3aXRoKCJf
cHl0ZXN0LiIpOgotICAgICAgICAgICAgICAgIHR3LmxpbmUoKQotICAgICAgICAgICAgICAgIHR3
LnNlcCgiLSIsICJmaXh0dXJlcyBkZWZpbmVkIGZyb20gJXMiICUgKG1vZHVsZSwpKQotICAgICAg
ICAgICAgICAgIGN1cnJlbnRtb2R1bGUgPSBtb2R1bGUKLSAgICAgICAgaWYgdmVyYm9zZSA8PSAw
IGFuZCBhcmduYW1lWzBdID09ICJfIjoKLSAgICAgICAgICAgIGNvbnRpbnVlCi0gICAgICAgIGlm
IHZlcmJvc2UgPiAwOgotICAgICAgICAgICAgZnVuY2FyZ3NwZWMgPSAiJXMgLS0gJXMiICUgKGFy
Z25hbWUsIGJlc3RyZWwsKQotICAgICAgICBlbHNlOgotICAgICAgICAgICAgZnVuY2FyZ3NwZWMg
PSBhcmduYW1lCi0gICAgICAgIHR3LmxpbmUoZnVuY2FyZ3NwZWMsIGdyZWVuPVRydWUpCi0gICAg
ICAgIGxvYyA9IGdldGxvY2F0aW9uKGZpeHR1cmVkZWYuZnVuYywgY3VyZGlyKQotICAgICAgICBk
b2MgPSBmaXh0dXJlZGVmLmZ1bmMuX19kb2NfXyBvciAiIgotICAgICAgICBpZiBkb2M6Ci0gICAg
ICAgICAgICB3cml0ZV9kb2NzdHJpbmcodHcsIGRvYykKLSAgICAgICAgZWxzZToKLSAgICAgICAg
ICAgIHR3LmxpbmUoIiAgICAlczogbm8gZG9jc3RyaW5nIGF2YWlsYWJsZSIgJSAobG9jLCksCi0g
ICAgICAgICAgICAgICAgICAgIHJlZD1UcnVlKQotCi0KLWRlZiB3cml0ZV9kb2NzdHJpbmcodHcs
IGRvYyk6Ci0gICAgSU5ERU5UID0gIiAgICAiCi0gICAgZG9jID0gZG9jLnJzdHJpcCgpCi0gICAg
aWYgIlxuIiBpbiBkb2M6Ci0gICAgICAgIGZpcnN0bGluZSwgcmVzdCA9IGRvYy5zcGxpdCgiXG4i
LCAxKQotICAgIGVsc2U6Ci0gICAgICAgIGZpcnN0bGluZSwgcmVzdCA9IGRvYywgIiIKLQotICAg
IGlmIGZpcnN0bGluZS5zdHJpcCgpOgotICAgICAgICB0dy5saW5lKElOREVOVCArIGZpcnN0bGlu
ZS5zdHJpcCgpKQotCi0gICAgaWYgcmVzdDoKLSAgICAgICAgZm9yIGxpbmUgaW4gZGVkZW50KHJl
c3QpLnNwbGl0KCJcbiIpOgotICAgICAgICAgICAgdHcud3JpdGUoSU5ERU5UICsgbGluZSArICJc
biIpCi0KLQotY2xhc3MgRnVuY3Rpb24oRnVuY3Rpb25NaXhpbiwgbWFpbi5JdGVtLCBmaXh0dXJl
cy5GdW5jYXJnbmFtZXNDb21wYXRBdHRyKToKLSAgICAiIiIgYSBGdW5jdGlvbiBJdGVtIGlzIHJl
c3BvbnNpYmxlIGZvciBzZXR0aW5nIHVwIGFuZCBleGVjdXRpbmcgYQotICAgIFB5dGhvbiB0ZXN0
IGZ1bmN0aW9uLgotICAgICIiIgotICAgIF9nZW5pZCA9IE5vbmUKLQotICAgIGRlZiBfX2luaXRf
XyhzZWxmLCBuYW1lLCBwYXJlbnQsIGFyZ3M9Tm9uZSwgY29uZmlnPU5vbmUsCi0gICAgICAgICAg
ICAgICAgIGNhbGxzcGVjPU5vbmUsIGNhbGxvYmo9Tk9UU0VULCBrZXl3b3Jkcz1Ob25lLCBzZXNz
aW9uPU5vbmUsCi0gICAgICAgICAgICAgICAgIGZpeHR1cmVpbmZvPU5vbmUsIG9yaWdpbmFsbmFt
ZT1Ob25lKToKLSAgICAgICAgc3VwZXIoRnVuY3Rpb24sIHNlbGYpLl9faW5pdF9fKG5hbWUsIHBh
cmVudCwgY29uZmlnPWNvbmZpZywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHNlc3Npb249c2Vzc2lvbikKLSAgICAgICAgc2VsZi5fYXJncyA9IGFyZ3MKLSAgICAgICAg
aWYgY2FsbG9iaiBpcyBub3QgTk9UU0VUOgotICAgICAgICAgICAgc2VsZi5vYmogPSBjYWxsb2Jq
Ci0KLSAgICAgICAgc2VsZi5rZXl3b3Jkcy51cGRhdGUoc2VsZi5vYmouX19kaWN0X18pCi0gICAg
ICAgIGlmIGNhbGxzcGVjOgotICAgICAgICAgICAgc2VsZi5jYWxsc3BlYyA9IGNhbGxzcGVjCi0g
ICAgICAgICAgICAjIHRoaXMgaXMgdG90YWwgaG9zdGlsZSBhbmQgYSBtZXNzCi0gICAgICAgICAg
ICAjIGtleXdvcmRzIGFyZSBicm9rZW4gYnkgZGVzaWduIGJ5IG5vdwotICAgICAgICAgICAgIyB0
aGlzIHdpbGwgYmUgcmVkZWVtZWQgbGF0ZXIKLSAgICAgICAgICAgIGZvciBtYXJrIGluIGNhbGxz
cGVjLm1hcmtzOgotICAgICAgICAgICAgICAgICMgZmVlbCBmcmVlIHRvIGNyeSwgdGhpcyB3YXMg
YnJva2VuIGZvciB5ZWFycyBiZWZvcmUKLSAgICAgICAgICAgICAgICAjIGFuZCBrZXl3b3JkcyBj
YW50IGZpeCBpdCBwZXIgZGVzaWduCi0gICAgICAgICAgICAgICAgc2VsZi5rZXl3b3Jkc1ttYXJr
Lm5hbWVdID0gbWFyawotICAgICAgICBpZiBrZXl3b3JkczoKLSAgICAgICAgICAgIHNlbGYua2V5
d29yZHMudXBkYXRlKGtleXdvcmRzKQotCi0gICAgICAgIGlmIGZpeHR1cmVpbmZvIGlzIE5vbmU6
Ci0gICAgICAgICAgICBmaXh0dXJlaW5mbyA9IHNlbGYuc2Vzc2lvbi5fZml4dHVyZW1hbmFnZXIu
Z2V0Zml4dHVyZWluZm8oCi0gICAgICAgICAgICAgICAgc2VsZi5wYXJlbnQsIHNlbGYub2JqLCBz
ZWxmLmNscywKLSAgICAgICAgICAgICAgICBmdW5jYXJncz1ub3Qgc2VsZi5faXN5aWVsZGVkZnVu
Y3Rpb24oKSkKLSAgICAgICAgc2VsZi5fZml4dHVyZWluZm8gPSBmaXh0dXJlaW5mbwotICAgICAg
ICBzZWxmLmZpeHR1cmVuYW1lcyA9IGZpeHR1cmVpbmZvLm5hbWVzX2Nsb3N1cmUKLSAgICAgICAg
c2VsZi5faW5pdHJlcXVlc3QoKQotCi0gICAgICAgICM6IG9yaWdpbmFsIGZ1bmN0aW9uIG5hbWUs
IHdpdGhvdXQgYW55IGRlY29yYXRpb25zIChmb3IgZXhhbXBsZQotICAgICAgICAjOiBwYXJhbWV0
cml6YXRpb24gYWRkcyBhIGBgIlsuLi5dImBgIHN1ZmZpeCB0byBmdW5jdGlvbiBuYW1lcykuCi0g
ICAgICAgICM6Ci0gICAgICAgICM6IC4uIHZlcnNpb25hZGRlZDo6IDMuMAotICAgICAgICBzZWxm
Lm9yaWdpbmFsbmFtZSA9IG9yaWdpbmFsbmFtZQotCi0gICAgZGVmIF9pbml0cmVxdWVzdChzZWxm
KToKLSAgICAgICAgc2VsZi5mdW5jYXJncyA9IHt9Ci0gICAgICAgIGlmIHNlbGYuX2lzeWllbGRl
ZGZ1bmN0aW9uKCk6Ci0gICAgICAgICAgICBhc3NlcnQgbm90IGhhc2F0dHIoc2VsZiwgImNhbGxz
cGVjIiksICgKLSAgICAgICAgICAgICAgICAieWllbGRlZCBmdW5jdGlvbnMgKGRlcHJlY2F0ZWQp
IGNhbm5vdCBoYXZlIGZ1bmNhcmdzIikKLSAgICAgICAgZWxzZToKLSAgICAgICAgICAgIGlmIGhh
c2F0dHIoc2VsZiwgImNhbGxzcGVjIik6Ci0gICAgICAgICAgICAgICAgY2FsbHNwZWMgPSBzZWxm
LmNhbGxzcGVjCi0gICAgICAgICAgICAgICAgYXNzZXJ0IG5vdCBjYWxsc3BlYy5mdW5jYXJncwot
ICAgICAgICAgICAgICAgIHNlbGYuX2dlbmlkID0gY2FsbHNwZWMuaWQKLSAgICAgICAgICAgICAg
ICBpZiBoYXNhdHRyKGNhbGxzcGVjLCAicGFyYW0iKToKLSAgICAgICAgICAgICAgICAgICAgc2Vs
Zi5wYXJhbSA9IGNhbGxzcGVjLnBhcmFtCi0gICAgICAgIHNlbGYuX3JlcXVlc3QgPSBmaXh0dXJl
cy5GaXh0dXJlUmVxdWVzdChzZWxmKQotCi0gICAgQHByb3BlcnR5Ci0gICAgZGVmIGZ1bmN0aW9u
KHNlbGYpOgotICAgICAgICAidW5kZXJseWluZyBweXRob24gJ2Z1bmN0aW9uJyBvYmplY3QiCi0g
ICAgICAgIHJldHVybiBnZXRhdHRyKHNlbGYub2JqLCAnaW1fZnVuYycsIHNlbGYub2JqKQotCi0g
ICAgZGVmIF9nZXRvYmooc2VsZik6Ci0gICAgICAgIG5hbWUgPSBzZWxmLm5hbWUKLSAgICAgICAg
aSA9IG5hbWUuZmluZCgiWyIpICAjIHBhcmFtZXRyaXphdGlvbgotICAgICAgICBpZiBpICE9IC0x
OgotICAgICAgICAgICAgbmFtZSA9IG5hbWVbOmldCi0gICAgICAgIHJldHVybiBnZXRhdHRyKHNl
bGYucGFyZW50Lm9iaiwgbmFtZSkKLQotICAgIEBwcm9wZXJ0eQotICAgIGRlZiBfcHlmdW5jaXRl
bShzZWxmKToKLSAgICAgICAgIihjb21wYXRvbmx5KSBmb3IgY29kZSBleHBlY3RpbmcgcHl0ZXN0
LTIuMiBzdHlsZSByZXF1ZXN0IG9iamVjdHMiCi0gICAgICAgIHJldHVybiBzZWxmCi0KLSAgICBk
ZWYgX2lzeWllbGRlZGZ1bmN0aW9uKHNlbGYpOgotICAgICAgICByZXR1cm4gZ2V0YXR0cihzZWxm
LCAiX2FyZ3MiLCBOb25lKSBpcyBub3QgTm9uZQotCi0gICAgZGVmIHJ1bnRlc3Qoc2VsZik6Ci0g
ICAgICAgICIiIiBleGVjdXRlIHRoZSB1bmRlcmx5aW5nIHRlc3QgZnVuY3Rpb24uICIiIgotICAg
ICAgICBzZWxmLmlob29rLnB5dGVzdF9weWZ1bmNfY2FsbChweWZ1bmNpdGVtPXNlbGYpCi0KLSAg
ICBkZWYgc2V0dXAoc2VsZik6Ci0gICAgICAgIHN1cGVyKEZ1bmN0aW9uLCBzZWxmKS5zZXR1cCgp
Ci0gICAgICAgIGZpeHR1cmVzLmZpbGxmaXh0dXJlcyhzZWxmKQpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9w
eXRlc3QvX3B5dGVzdC9weXRob25fYXBpLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvX3B5dGVzdC9weXRob25f
YXBpLnB5CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4MTk2MDI5NWIzODFiZDBlOTky
M2Y3ZmIzZDAxYWUxMTEyMTQyZjllLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L19weXRlc3QvcHl0aG9uX2FwaS5weQorKysgL2Rldi9u
dWxsCkBAIC0xLDYxOSArMCwwIEBACi1pbXBvcnQgbWF0aAotaW1wb3J0IHN5cwotCi1pbXBvcnQg
cHkKLWZyb20gc2l4Lm1vdmVzIGltcG9ydCB6aXAKLQotZnJvbSBfcHl0ZXN0LmNvbXBhdCBpbXBv
cnQgaXNjbGFzcwotZnJvbSBfcHl0ZXN0Lm91dGNvbWVzIGltcG9ydCBmYWlsCi1pbXBvcnQgX3B5
dGVzdC5fY29kZQotCi0KLWRlZiBfY21wX3JhaXNlc190eXBlX2Vycm9yKHNlbGYsIG90aGVyKToK
LSAgICAiIiJfX2NtcF9fIGltcGxlbWVudGF0aW9uIHdoaWNoIHJhaXNlcyBUeXBlRXJyb3IuIFVz
ZWQKLSAgICBieSBBcHByb3ggYmFzZSBjbGFzc2VzIHRvIGltcGxlbWVudCBvbmx5ID09IGFuZCAh
PSBhbmQgcmFpc2UgYQotICAgIFR5cGVFcnJvciBmb3Igb3RoZXIgY29tcGFyaXNvbnMuCi0KLSAg
ICBOZWVkZWQgaW4gUHl0aG9uIDIgb25seSwgUHl0aG9uIDMgYWxsIGl0IHRha2VzIGlzIG5vdCBp
bXBsZW1lbnRpbmcgdGhlCi0gICAgb3RoZXIgb3BlcmF0b3JzIGF0IGFsbC4KLSAgICAiIiIKLSAg
ICBfX3RyYWNlYmFja2hpZGVfXyA9IFRydWUKLSAgICByYWlzZSBUeXBlRXJyb3IoJ0NvbXBhcmlz
b24gb3BlcmF0b3JzIG90aGVyIHRoYW4gPT0gYW5kICE9IG5vdCBzdXBwb3J0ZWQgYnkgYXBwcm94
IG9iamVjdHMnKQotCi0KLSMgYnVpbHRpbiBweXRlc3QuYXBwcm94IGhlbHBlcgotCi0KLWNsYXNz
IEFwcHJveEJhc2Uob2JqZWN0KToKLSAgICAiIiIKLSAgICBQcm92aWRlIHNoYXJlZCB1dGlsaXRp
ZXMgZm9yIG1ha2luZyBhcHByb3hpbWF0ZSBjb21wYXJpc29ucyBiZXR3ZWVuIG51bWJlcnMKLSAg
ICBvciBzZXF1ZW5jZXMgb2YgbnVtYmVycy4KLSAgICAiIiIKLQotICAgIGRlZiBfX2luaXRfXyhz
ZWxmLCBleHBlY3RlZCwgcmVsPU5vbmUsIGFicz1Ob25lLCBuYW5fb2s9RmFsc2UpOgotICAgICAg
ICBzZWxmLmV4cGVjdGVkID0gZXhwZWN0ZWQKLSAgICAgICAgc2VsZi5hYnMgPSBhYnMKLSAgICAg
ICAgc2VsZi5yZWwgPSByZWwKLSAgICAgICAgc2VsZi5uYW5fb2sgPSBuYW5fb2sKLQotICAgIGRl
ZiBfX3JlcHJfXyhzZWxmKToKLSAgICAgICAgcmFpc2UgTm90SW1wbGVtZW50ZWRFcnJvcgotCi0g
ICAgZGVmIF9fZXFfXyhzZWxmLCBhY3R1YWwpOgotICAgICAgICByZXR1cm4gYWxsKAotICAgICAg
ICAgICAgYSA9PSBzZWxmLl9hcHByb3hfc2NhbGFyKHgpCi0gICAgICAgICAgICBmb3IgYSwgeCBp
biBzZWxmLl95aWVsZF9jb21wYXJpc29ucyhhY3R1YWwpKQotCi0gICAgX19oYXNoX18gPSBOb25l
Ci0KLSAgICBkZWYgX19uZV9fKHNlbGYsIGFjdHVhbCk6Ci0gICAgICAgIHJldHVybiBub3QgKGFj
dHVhbCA9PSBzZWxmKQotCi0gICAgaWYgc3lzLnZlcnNpb25faW5mb1swXSA9PSAyOgotICAgICAg
ICBfX2NtcF9fID0gX2NtcF9yYWlzZXNfdHlwZV9lcnJvcgotCi0gICAgZGVmIF9hcHByb3hfc2Nh
bGFyKHNlbGYsIHgpOgotICAgICAgICByZXR1cm4gQXBwcm94U2NhbGFyKHgsIHJlbD1zZWxmLnJl
bCwgYWJzPXNlbGYuYWJzLCBuYW5fb2s9c2VsZi5uYW5fb2spCi0KLSAgICBkZWYgX3lpZWxkX2Nv
bXBhcmlzb25zKHNlbGYsIGFjdHVhbCk6Ci0gICAgICAgICIiIgotICAgICAgICBZaWVsZCBhbGwg
dGhlIHBhaXJzIG9mIG51bWJlcnMgdG8gYmUgY29tcGFyZWQuICBUaGlzIGlzIHVzZWQgdG8KLSAg
ICAgICAgaW1wbGVtZW50IHRoZSBgX19lcV9fYCBtZXRob2QuCi0gICAgICAgICIiIgotICAgICAg
ICByYWlzZSBOb3RJbXBsZW1lbnRlZEVycm9yCi0KLQotY2xhc3MgQXBwcm94TnVtcHkoQXBwcm94
QmFzZSk6Ci0gICAgIiIiCi0gICAgUGVyZm9ybSBhcHByb3hpbWF0ZSBjb21wYXJpc29ucyBmb3Ig
bnVtcHkgYXJyYXlzLgotICAgICIiIgotCi0gICAgIyBUZWxsIG51bXB5IHRvIHVzZSBvdXIgYF9f
ZXFfX2Agb3BlcmF0b3IgaW5zdGVhZCBvZiBpdHMuCi0gICAgX19hcnJheV9wcmlvcml0eV9fID0g
MTAwCi0KLSAgICBkZWYgX19yZXByX18oc2VsZik6Ci0gICAgICAgICMgSXQgbWlnaHQgYmUgbmlj
ZSB0byByZXdyaXRlIHRoaXMgZnVuY3Rpb24gdG8gYWNjb3VudCBmb3IgdGhlCi0gICAgICAgICMg
c2hhcGUgb2YgdGhlIGFycmF5Li4uCi0gICAgICAgIHJldHVybiAiYXBwcm94KHswIXJ9KSIuZm9y
bWF0KGxpc3QoCi0gICAgICAgICAgICBzZWxmLl9hcHByb3hfc2NhbGFyKHgpIGZvciB4IGluIHNl
bGYuZXhwZWN0ZWQpKQotCi0gICAgaWYgc3lzLnZlcnNpb25faW5mb1swXSA9PSAyOgotICAgICAg
ICBfX2NtcF9fID0gX2NtcF9yYWlzZXNfdHlwZV9lcnJvcgotCi0gICAgZGVmIF9fZXFfXyhzZWxm
LCBhY3R1YWwpOgotICAgICAgICBpbXBvcnQgbnVtcHkgYXMgbnAKLQotICAgICAgICB0cnk6Ci0g
ICAgICAgICAgICBhY3R1YWwgPSBucC5hc2FycmF5KGFjdHVhbCkKLSAgICAgICAgZXhjZXB0OiAg
IyBub3FhCi0gICAgICAgICAgICByYWlzZSBUeXBlRXJyb3IoImNhbm5vdCBjb21wYXJlICd7MH0n
IHRvIG51bXB5Lm5kYXJyYXkiLmZvcm1hdChhY3R1YWwpKQotCi0gICAgICAgIGlmIGFjdHVhbC5z
aGFwZSAhPSBzZWxmLmV4cGVjdGVkLnNoYXBlOgotICAgICAgICAgICAgcmV0dXJuIEZhbHNlCi0K
LSAgICAgICAgcmV0dXJuIEFwcHJveEJhc2UuX19lcV9fKHNlbGYsIGFjdHVhbCkKLQotICAgIGRl
ZiBfeWllbGRfY29tcGFyaXNvbnMoc2VsZiwgYWN0dWFsKToKLSAgICAgICAgaW1wb3J0IG51bXB5
IGFzIG5wCi0KLSAgICAgICAgIyBXZSBjYW4gYmUgc3VyZSB0aGF0IGBhY3R1YWxgIGlzIGEgbnVt
cHkgYXJyYXksIGJlY2F1c2UgaXQncwotICAgICAgICAjIGNhc3RlZCBpbiBgX19lcV9fYCBiZWZv
cmUgYmVpbmcgcGFzc2VkIHRvIGBBcHByb3hCYXNlLl9fZXFfX2AsCi0gICAgICAgICMgd2hpY2gg
aXMgdGhlIG9ubHkgbWV0aG9kIHRoYXQgY2FsbHMgdGhpcyBvbmUuCi0gICAgICAgIGZvciBpIGlu
IG5wLm5kaW5kZXgoc2VsZi5leHBlY3RlZC5zaGFwZSk6Ci0gICAgICAgICAgICB5aWVsZCBhY3R1
YWxbaV0sIHNlbGYuZXhwZWN0ZWRbaV0KLQotCi1jbGFzcyBBcHByb3hNYXBwaW5nKEFwcHJveEJh
c2UpOgotICAgICIiIgotICAgIFBlcmZvcm0gYXBwcm94aW1hdGUgY29tcGFyaXNvbnMgZm9yIG1h
cHBpbmdzIHdoZXJlIHRoZSB2YWx1ZXMgYXJlIG51bWJlcnMKLSAgICAodGhlIGtleXMgY2FuIGJl
IGFueXRoaW5nKS4KLSAgICAiIiIKLQotICAgIGRlZiBfX3JlcHJfXyhzZWxmKToKLSAgICAgICAg
cmV0dXJuICJhcHByb3goezAhcn0pIi5mb3JtYXQoZGljdCgKLSAgICAgICAgICAgIChrLCBzZWxm
Ll9hcHByb3hfc2NhbGFyKHYpKQotICAgICAgICAgICAgZm9yIGssIHYgaW4gc2VsZi5leHBlY3Rl
ZC5pdGVtcygpKSkKLQotICAgIGRlZiBfX2VxX18oc2VsZiwgYWN0dWFsKToKLSAgICAgICAgaWYg
c2V0KGFjdHVhbC5rZXlzKCkpICE9IHNldChzZWxmLmV4cGVjdGVkLmtleXMoKSk6Ci0gICAgICAg
ICAgICByZXR1cm4gRmFsc2UKLQotICAgICAgICByZXR1cm4gQXBwcm94QmFzZS5fX2VxX18oc2Vs
ZiwgYWN0dWFsKQotCi0gICAgZGVmIF95aWVsZF9jb21wYXJpc29ucyhzZWxmLCBhY3R1YWwpOgot
ICAgICAgICBmb3IgayBpbiBzZWxmLmV4cGVjdGVkLmtleXMoKToKLSAgICAgICAgICAgIHlpZWxk
IGFjdHVhbFtrXSwgc2VsZi5leHBlY3RlZFtrXQotCi0KLWNsYXNzIEFwcHJveFNlcXVlbmNlKEFw
cHJveEJhc2UpOgotICAgICIiIgotICAgIFBlcmZvcm0gYXBwcm94aW1hdGUgY29tcGFyaXNvbnMg
Zm9yIHNlcXVlbmNlcyBvZiBudW1iZXJzLgotICAgICIiIgotCi0gICAgIyBUZWxsIG51bXB5IHRv
IHVzZSBvdXIgYF9fZXFfX2Agb3BlcmF0b3IgaW5zdGVhZCBvZiBpdHMuCi0gICAgX19hcnJheV9w
cmlvcml0eV9fID0gMTAwCi0KLSAgICBkZWYgX19yZXByX18oc2VsZik6Ci0gICAgICAgIHNlcV90
eXBlID0gdHlwZShzZWxmLmV4cGVjdGVkKQotICAgICAgICBpZiBzZXFfdHlwZSBub3QgaW4gKHR1
cGxlLCBsaXN0LCBzZXQpOgotICAgICAgICAgICAgc2VxX3R5cGUgPSBsaXN0Ci0gICAgICAgIHJl
dHVybiAiYXBwcm94KHswIXJ9KSIuZm9ybWF0KHNlcV90eXBlKAotICAgICAgICAgICAgc2VsZi5f
YXBwcm94X3NjYWxhcih4KSBmb3IgeCBpbiBzZWxmLmV4cGVjdGVkKSkKLQotICAgIGRlZiBfX2Vx
X18oc2VsZiwgYWN0dWFsKToKLSAgICAgICAgaWYgbGVuKGFjdHVhbCkgIT0gbGVuKHNlbGYuZXhw
ZWN0ZWQpOgotICAgICAgICAgICAgcmV0dXJuIEZhbHNlCi0gICAgICAgIHJldHVybiBBcHByb3hC
YXNlLl9fZXFfXyhzZWxmLCBhY3R1YWwpCi0KLSAgICBkZWYgX3lpZWxkX2NvbXBhcmlzb25zKHNl
bGYsIGFjdHVhbCk6Ci0gICAgICAgIHJldHVybiB6aXAoYWN0dWFsLCBzZWxmLmV4cGVjdGVkKQot
Ci0KLWNsYXNzIEFwcHJveFNjYWxhcihBcHByb3hCYXNlKToKLSAgICAiIiIKLSAgICBQZXJmb3Jt
IGFwcHJveGltYXRlIGNvbXBhcmlzb25zIGZvciBzaW5nbGUgbnVtYmVycyBvbmx5LgotICAgICIi
IgotCi0gICAgZGVmIF9fcmVwcl9fKHNlbGYpOgotICAgICAgICAiIiIKLSAgICAgICAgUmV0dXJu
IGEgc3RyaW5nIGNvbW11bmljYXRpbmcgYm90aCB0aGUgZXhwZWN0ZWQgdmFsdWUgYW5kIHRoZSB0
b2xlcmFuY2UKLSAgICAgICAgZm9yIHRoZSBjb21wYXJpc29uIGJlaW5nIG1hZGUsIGUuZy4gJzEu
MCArLSAxZS02Jy4gIFVzZSB0aGUgdW5pY29kZQotICAgICAgICBwbHVzL21pbnVzIHN5bWJvbCBp
ZiB0aGlzIGlzIHB5dGhvbjMgKGl0J3MgdG9vIGhhcmQgdG8gZ2V0IHJpZ2h0IGZvcgotICAgICAg
ICBweXRob24yKS4KLSAgICAgICAgIiIiCi0gICAgICAgIGlmIGlzaW5zdGFuY2Uoc2VsZi5leHBl
Y3RlZCwgY29tcGxleCk6Ci0gICAgICAgICAgICByZXR1cm4gc3RyKHNlbGYuZXhwZWN0ZWQpCi0K
LSAgICAgICAgIyBJbmZpbml0aWVzIGFyZW4ndCBjb21wYXJlZCB1c2luZyB0b2xlcmFuY2VzLCBz
byBkb24ndCBzaG93IGEKLSAgICAgICAgIyB0b2xlcmFuY2UuCi0gICAgICAgIGlmIG1hdGguaXNp
bmYoc2VsZi5leHBlY3RlZCk6Ci0gICAgICAgICAgICByZXR1cm4gc3RyKHNlbGYuZXhwZWN0ZWQp
Ci0KLSAgICAgICAgIyBJZiBhIHNlbnNpYmxlIHRvbGVyYW5jZSBjYW4ndCBiZSBjYWxjdWxhdGVk
LCBzZWxmLnRvbGVyYW5jZSB3aWxsCi0gICAgICAgICMgcmFpc2UgYSBWYWx1ZUVycm9yLiAgSW4g
dGhpcyBjYXNlLCBkaXNwbGF5ICc/Pz8nLgotICAgICAgICB0cnk6Ci0gICAgICAgICAgICB2ZXR0
ZWRfdG9sZXJhbmNlID0gJ3s6LjFlfScuZm9ybWF0KHNlbGYudG9sZXJhbmNlKQotICAgICAgICBl
eGNlcHQgVmFsdWVFcnJvcjoKLSAgICAgICAgICAgIHZldHRlZF90b2xlcmFuY2UgPSAnPz8/Jwot
Ci0gICAgICAgIGlmIHN5cy52ZXJzaW9uX2luZm9bMF0gPT0gMjoKLSAgICAgICAgICAgIHJldHVy
biAnezB9ICstIHsxfScuZm9ybWF0KHNlbGYuZXhwZWN0ZWQsIHZldHRlZF90b2xlcmFuY2UpCi0g
ICAgICAgIGVsc2U6Ci0gICAgICAgICAgICByZXR1cm4gdSd7MH0gXHUwMGIxIHsxfScuZm9ybWF0
KHNlbGYuZXhwZWN0ZWQsIHZldHRlZF90b2xlcmFuY2UpCi0KLSAgICBkZWYgX19lcV9fKHNlbGYs
IGFjdHVhbCk6Ci0gICAgICAgICIiIgotICAgICAgICBSZXR1cm4gdHJ1ZSBpZiB0aGUgZ2l2ZW4g
dmFsdWUgaXMgZXF1YWwgdG8gdGhlIGV4cGVjdGVkIHZhbHVlIHdpdGhpbgotICAgICAgICB0aGUg
cHJlLXNwZWNpZmllZCB0b2xlcmFuY2UuCi0gICAgICAgICIiIgotCi0gICAgICAgICMgU2hvcnQt
Y2lyY3VpdCBleGFjdCBlcXVhbGl0eS4KLSAgICAgICAgaWYgYWN0dWFsID09IHNlbGYuZXhwZWN0
ZWQ6Ci0gICAgICAgICAgICByZXR1cm4gVHJ1ZQotCi0gICAgICAgICMgQWxsb3cgdGhlIHVzZXIg
dG8gY29udHJvbCB3aGV0aGVyIE5hTnMgYXJlIGNvbnNpZGVyZWQgZXF1YWwgdG8gZWFjaAotICAg
ICAgICAjIG90aGVyIG9yIG5vdC4gIFRoZSBhYnMoKSBjYWxscyBhcmUgZm9yIGNvbXBhdGliaWxp
dHkgd2l0aCBjb21wbGV4Ci0gICAgICAgICMgbnVtYmVycy4KLSAgICAgICAgaWYgbWF0aC5pc25h
bihhYnMoc2VsZi5leHBlY3RlZCkpOgotICAgICAgICAgICAgcmV0dXJuIHNlbGYubmFuX29rIGFu
ZCBtYXRoLmlzbmFuKGFicyhhY3R1YWwpKQotCi0gICAgICAgICMgSW5maW5pdHkgc2hvdWxkbid0
IGJlIGFwcHJveGltYXRlbHkgZXF1YWwgdG8gYW55dGhpbmcgYnV0IGl0c2VsZiwgYnV0Ci0gICAg
ICAgICMgaWYgdGhlcmUncyBhIHJlbGF0aXZlIHRvbGVyYW5jZSwgaXQgd2lsbCBiZSBpbmZpbml0
ZSBhbmQgaW5maW5pdHkKLSAgICAgICAgIyB3aWxsIHNlZW0gYXBwcm94aW1hdGVseSBlcXVhbCB0
byBldmVyeXRoaW5nLiAgVGhlIGVxdWFsLXRvLWl0c2VsZgotICAgICAgICAjIGNhc2Ugd291bGQg
aGF2ZSBiZWVuIHNob3J0IGNpcmN1aXRlZCBhYm92ZSwgc28gaGVyZSB3ZSBjYW4ganVzdAotICAg
ICAgICAjIHJldHVybiBmYWxzZSBpZiB0aGUgZXhwZWN0ZWQgdmFsdWUgaXMgaW5maW5pdGUuICBU
aGUgYWJzKCkgY2FsbCBpcwotICAgICAgICAjIGZvciBjb21wYXRpYmlsaXR5IHdpdGggY29tcGxl
eCBudW1iZXJzLgotICAgICAgICBpZiBtYXRoLmlzaW5mKGFicyhzZWxmLmV4cGVjdGVkKSk6Ci0g
ICAgICAgICAgICByZXR1cm4gRmFsc2UKLQotICAgICAgICAjIFJldHVybiB0cnVlIGlmIHRoZSB0
d28gbnVtYmVycyBhcmUgd2l0aGluIHRoZSB0b2xlcmFuY2UuCi0gICAgICAgIHJldHVybiBhYnMo
c2VsZi5leHBlY3RlZCAtIGFjdHVhbCkgPD0gc2VsZi50b2xlcmFuY2UKLQotICAgIF9faGFzaF9f
ID0gTm9uZQotCi0gICAgQHByb3BlcnR5Ci0gICAgZGVmIHRvbGVyYW5jZShzZWxmKToKLSAgICAg
ICAgIiIiCi0gICAgICAgIFJldHVybiB0aGUgdG9sZXJhbmNlIGZvciB0aGUgY29tcGFyaXNvbi4g
IFRoaXMgY291bGQgYmUgZWl0aGVyIGFuCi0gICAgICAgIGFic29sdXRlIHRvbGVyYW5jZSBvciBh
IHJlbGF0aXZlIHRvbGVyYW5jZSwgZGVwZW5kaW5nIG9uIHdoYXQgdGhlIHVzZXIKLSAgICAgICAg
c3BlY2lmaWVkIG9yIHdoaWNoIHdvdWxkIGJlIGxhcmdlci4KLSAgICAgICAgIiIiCi0gICAgICAg
IGRlZiBzZXRfZGVmYXVsdCh4LCBkZWZhdWx0KToKLSAgICAgICAgICAgIHJldHVybiB4IGlmIHgg
aXMgbm90IE5vbmUgZWxzZSBkZWZhdWx0Ci0KLSAgICAgICAgIyBGaWd1cmUgb3V0IHdoYXQgdGhl
IGFic29sdXRlIHRvbGVyYW5jZSBzaG91bGQgYmUuICBgYHNlbGYuYWJzYGAgaXMKLSAgICAgICAg
IyBlaXRoZXIgTm9uZSBvciBhIHZhbHVlIHNwZWNpZmllZCBieSB0aGUgdXNlci4KLSAgICAgICAg
YWJzb2x1dGVfdG9sZXJhbmNlID0gc2V0X2RlZmF1bHQoc2VsZi5hYnMsIDFlLTEyKQotCi0gICAg
ICAgIGlmIGFic29sdXRlX3RvbGVyYW5jZSA8IDA6Ci0gICAgICAgICAgICByYWlzZSBWYWx1ZUVy
cm9yKCJhYnNvbHV0ZSB0b2xlcmFuY2UgY2FuJ3QgYmUgbmVnYXRpdmU6IHt9Ii5mb3JtYXQoYWJz
b2x1dGVfdG9sZXJhbmNlKSkKLSAgICAgICAgaWYgbWF0aC5pc25hbihhYnNvbHV0ZV90b2xlcmFu
Y2UpOgotICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigiYWJzb2x1dGUgdG9sZXJhbmNlIGNh
bid0IGJlIE5hTi4iKQotCi0gICAgICAgICMgSWYgdGhlIHVzZXIgc3BlY2lmaWVkIGFuIGFic29s
dXRlIHRvbGVyYW5jZSBidXQgbm90IGEgcmVsYXRpdmUgb25lLAotICAgICAgICAjIGp1c3QgcmV0
dXJuIHRoZSBhYnNvbHV0ZSB0b2xlcmFuY2UuCi0gICAgICAgIGlmIHNlbGYucmVsIGlzIE5vbmU6
Ci0gICAgICAgICAgICBpZiBzZWxmLmFicyBpcyBub3QgTm9uZToKLSAgICAgICAgICAgICAgICBy
ZXR1cm4gYWJzb2x1dGVfdG9sZXJhbmNlCi0KLSAgICAgICAgIyBGaWd1cmUgb3V0IHdoYXQgdGhl
IHJlbGF0aXZlIHRvbGVyYW5jZSBzaG91bGQgYmUuICBgYHNlbGYucmVsYGAgaXMKLSAgICAgICAg
IyBlaXRoZXIgTm9uZSBvciBhIHZhbHVlIHNwZWNpZmllZCBieSB0aGUgdXNlci4gIFRoaXMgaXMg
ZG9uZSBhZnRlcgotICAgICAgICAjIHdlJ3ZlIG1hZGUgc3VyZSB0aGUgdXNlciBkaWRuJ3QgYXNr
IGZvciBhbiBhYnNvbHV0ZSB0b2xlcmFuY2Ugb25seSwKLSAgICAgICAgIyBiZWNhdXNlIHdlIGRv
bid0IHdhbnQgdG8gcmFpc2UgZXJyb3JzIGFib3V0IHRoZSByZWxhdGl2ZSB0b2xlcmFuY2UgaWYK
LSAgICAgICAgIyB3ZSBhcmVuJ3QgZXZlbiBnb2luZyB0byB1c2UgaXQuCi0gICAgICAgIHJlbGF0
aXZlX3RvbGVyYW5jZSA9IHNldF9kZWZhdWx0KHNlbGYucmVsLCAxZS02KSAqIGFicyhzZWxmLmV4
cGVjdGVkKQotCi0gICAgICAgIGlmIHJlbGF0aXZlX3RvbGVyYW5jZSA8IDA6Ci0gICAgICAgICAg
ICByYWlzZSBWYWx1ZUVycm9yKCJyZWxhdGl2ZSB0b2xlcmFuY2UgY2FuJ3QgYmUgbmVnYXRpdmU6
IHt9Ii5mb3JtYXQoYWJzb2x1dGVfdG9sZXJhbmNlKSkKLSAgICAgICAgaWYgbWF0aC5pc25hbihy
ZWxhdGl2ZV90b2xlcmFuY2UpOgotICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigicmVsYXRp
dmUgdG9sZXJhbmNlIGNhbid0IGJlIE5hTi4iKQotCi0gICAgICAgICMgUmV0dXJuIHRoZSBsYXJn
ZXIgb2YgdGhlIHJlbGF0aXZlIGFuZCBhYnNvbHV0ZSB0b2xlcmFuY2VzLgotICAgICAgICByZXR1
cm4gbWF4KHJlbGF0aXZlX3RvbGVyYW5jZSwgYWJzb2x1dGVfdG9sZXJhbmNlKQotCi0KLWRlZiBh
cHByb3goZXhwZWN0ZWQsIHJlbD1Ob25lLCBhYnM9Tm9uZSwgbmFuX29rPUZhbHNlKToKLSAgICAi
IiIKLSAgICBBc3NlcnQgdGhhdCB0d28gbnVtYmVycyAob3IgdHdvIHNldHMgb2YgbnVtYmVycykg
YXJlIGVxdWFsIHRvIGVhY2ggb3RoZXIKLSAgICB3aXRoaW4gc29tZSB0b2xlcmFuY2UuCi0KLSAg
ICBEdWUgdG8gdGhlIGBpbnRyaWNhY2llcyBvZiBmbG9hdGluZy1wb2ludCBhcml0aG1ldGljYF9f
LCBudW1iZXJzIHRoYXQgd2UKLSAgICB3b3VsZCBpbnR1aXRpdmVseSBleHBlY3QgdG8gYmUgZXF1
YWwgYXJlIG5vdCBhbHdheXMgc286OgotCi0gICAgICAgID4+PiAwLjEgKyAwLjIgPT0gMC4zCi0g
ICAgICAgIEZhbHNlCi0KLSAgICBfXyBodHRwczovL2RvY3MucHl0aG9uLm9yZy8zL3R1dG9yaWFs
L2Zsb2F0aW5ncG9pbnQuaHRtbAotCi0gICAgVGhpcyBwcm9ibGVtIGlzIGNvbW1vbmx5IGVuY291
bnRlcmVkIHdoZW4gd3JpdGluZyB0ZXN0cywgZS5nLiB3aGVuIG1ha2luZwotICAgIHN1cmUgdGhh
dCBmbG9hdGluZy1wb2ludCB2YWx1ZXMgYXJlIHdoYXQgeW91IGV4cGVjdCB0aGVtIHRvIGJlLiAg
T25lIHdheSB0bwotICAgIGRlYWwgd2l0aCB0aGlzIHByb2JsZW0gaXMgdG8gYXNzZXJ0IHRoYXQg
dHdvIGZsb2F0aW5nLXBvaW50IG51bWJlcnMgYXJlCi0gICAgZXF1YWwgdG8gd2l0aGluIHNvbWUg
YXBwcm9wcmlhdGUgdG9sZXJhbmNlOjoKLQotICAgICAgICA+Pj4gYWJzKCgwLjEgKyAwLjIpIC0g
MC4zKSA8IDFlLTYKLSAgICAgICAgVHJ1ZQotCi0gICAgSG93ZXZlciwgY29tcGFyaXNvbnMgbGlr
ZSB0aGlzIGFyZSB0ZWRpb3VzIHRvIHdyaXRlIGFuZCBkaWZmaWN1bHQgdG8KLSAgICB1bmRlcnN0
YW5kLiAgRnVydGhlcm1vcmUsIGFic29sdXRlIGNvbXBhcmlzb25zIGxpa2UgdGhlIG9uZSBhYm92
ZSBhcmUKLSAgICB1c3VhbGx5IGRpc2NvdXJhZ2VkIGJlY2F1c2UgdGhlcmUncyBubyB0b2xlcmFu
Y2UgdGhhdCB3b3JrcyB3ZWxsIGZvciBhbGwKLSAgICBzaXR1YXRpb25zLiAgYGAxZS02YGAgaXMg
Z29vZCBmb3IgbnVtYmVycyBhcm91bmQgYGAxYGAsIGJ1dCB0b28gc21hbGwgZm9yCi0gICAgdmVy
eSBiaWcgbnVtYmVycyBhbmQgdG9vIGJpZyBmb3IgdmVyeSBzbWFsbCBvbmVzLiAgSXQncyBiZXR0
ZXIgdG8gZXhwcmVzcwotICAgIHRoZSB0b2xlcmFuY2UgYXMgYSBmcmFjdGlvbiBvZiB0aGUgZXhw
ZWN0ZWQgdmFsdWUsIGJ1dCByZWxhdGl2ZSBjb21wYXJpc29ucwotICAgIGxpa2UgdGhhdCBhcmUg
ZXZlbiBtb3JlIGRpZmZpY3VsdCB0byB3cml0ZSBjb3JyZWN0bHkgYW5kIGNvbmNpc2VseS4KLQot
ICAgIFRoZSBgYGFwcHJveGBgIGNsYXNzIHBlcmZvcm1zIGZsb2F0aW5nLXBvaW50IGNvbXBhcmlz
b25zIHVzaW5nIGEgc3ludGF4Ci0gICAgdGhhdCdzIGFzIGludHVpdGl2ZSBhcyBwb3NzaWJsZTo6
Ci0KLSAgICAgICAgPj4+IGZyb20gcHl0ZXN0IGltcG9ydCBhcHByb3gKLSAgICAgICAgPj4+IDAu
MSArIDAuMiA9PSBhcHByb3goMC4zKQotICAgICAgICBUcnVlCi0KLSAgICBUaGUgc2FtZSBzeW50
YXggYWxzbyB3b3JrcyBmb3Igc2VxdWVuY2VzIG9mIG51bWJlcnM6OgotCi0gICAgICAgID4+PiAo
MC4xICsgMC4yLCAwLjIgKyAwLjQpID09IGFwcHJveCgoMC4zLCAwLjYpKQotICAgICAgICBUcnVl
Ci0KLSAgICBEaWN0aW9uYXJ5ICp2YWx1ZXMqOjoKLQotICAgICAgICA+Pj4geydhJzogMC4xICsg
MC4yLCAnYic6IDAuMiArIDAuNH0gPT0gYXBwcm94KHsnYSc6IDAuMywgJ2InOiAwLjZ9KQotICAg
ICAgICBUcnVlCi0KLSAgICBBbmQgYGBudW1weWBgIGFycmF5czo6Ci0KLSAgICAgICAgPj4+IGlt
cG9ydCBudW1weSBhcyBucCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAjIGRvY3Rlc3Q6ICtTS0lQCi0gICAgICAgID4+PiBucC5hcnJheShb
MC4xLCAwLjJdKSArIG5wLmFycmF5KFswLjIsIDAuNF0pID09IGFwcHJveChucC5hcnJheShbMC4z
LCAwLjZdKSkgIyBkb2N0ZXN0OiArU0tJUAotICAgICAgICBUcnVlCi0KLSAgICBCeSBkZWZhdWx0
LCBgYGFwcHJveGBgIGNvbnNpZGVycyBudW1iZXJzIHdpdGhpbiBhIHJlbGF0aXZlIHRvbGVyYW5j
ZSBvZgotICAgIGBgMWUtNmBgIChpLmUuIG9uZSBwYXJ0IGluIGEgbWlsbGlvbikgb2YgaXRzIGV4
cGVjdGVkIHZhbHVlIHRvIGJlIGVxdWFsLgotICAgIFRoaXMgdHJlYXRtZW50IHdvdWxkIGxlYWQg
dG8gc3VycHJpc2luZyByZXN1bHRzIGlmIHRoZSBleHBlY3RlZCB2YWx1ZSB3YXMKLSAgICBgYDAu
MGBgLCBiZWNhdXNlIG5vdGhpbmcgYnV0IGBgMC4wYGAgaXRzZWxmIGlzIHJlbGF0aXZlbHkgY2xv
c2UgdG8gYGAwLjBgYC4KLSAgICBUbyBoYW5kbGUgdGhpcyBjYXNlIGxlc3Mgc3VycHJpc2luZ2x5
LCBgYGFwcHJveGBgIGFsc28gY29uc2lkZXJzIG51bWJlcnMKLSAgICB3aXRoaW4gYW4gYWJzb2x1
dGUgdG9sZXJhbmNlIG9mIGBgMWUtMTJgYCBvZiBpdHMgZXhwZWN0ZWQgdmFsdWUgdG8gYmUKLSAg
ICBlcXVhbC4gIEluZmluaXR5IGFuZCBOYU4gYXJlIHNwZWNpYWwgY2FzZXMuICBJbmZpbml0eSBp
cyBvbmx5IGNvbnNpZGVyZWQKLSAgICBlcXVhbCB0byBpdHNlbGYsIHJlZ2FyZGxlc3Mgb2YgdGhl
IHJlbGF0aXZlIHRvbGVyYW5jZS4gIE5hTiBpcyBub3QKLSAgICBjb25zaWRlcmVkIGVxdWFsIHRv
IGFueXRoaW5nIGJ5IGRlZmF1bHQsIGJ1dCB5b3UgY2FuIG1ha2UgaXQgYmUgZXF1YWwgdG8KLSAg
ICBpdHNlbGYgYnkgc2V0dGluZyB0aGUgYGBuYW5fb2tgYCBhcmd1bWVudCB0byBUcnVlLiAgKFRo
aXMgaXMgbWVhbnQgdG8KLSAgICBmYWNpbGl0YXRlIGNvbXBhcmluZyBhcnJheXMgdGhhdCB1c2Ug
TmFOIHRvIG1lYW4gIm5vIGRhdGEiLikKLQotICAgIEJvdGggdGhlIHJlbGF0aXZlIGFuZCBhYnNv
bHV0ZSB0b2xlcmFuY2VzIGNhbiBiZSBjaGFuZ2VkIGJ5IHBhc3NpbmcKLSAgICBhcmd1bWVudHMg
dG8gdGhlIGBgYXBwcm94YGAgY29uc3RydWN0b3I6OgotCi0gICAgICAgID4+PiAxLjAwMDEgPT0g
YXBwcm94KDEpCi0gICAgICAgIEZhbHNlCi0gICAgICAgID4+PiAxLjAwMDEgPT0gYXBwcm94KDEs
IHJlbD0xZS0zKQotICAgICAgICBUcnVlCi0gICAgICAgID4+PiAxLjAwMDEgPT0gYXBwcm94KDEs
IGFicz0xZS0zKQotICAgICAgICBUcnVlCi0KLSAgICBJZiB5b3Ugc3BlY2lmeSBgYGFic2BgIGJ1
dCBub3QgYGByZWxgYCwgdGhlIGNvbXBhcmlzb24gd2lsbCBub3QgY29uc2lkZXIKLSAgICB0aGUg
cmVsYXRpdmUgdG9sZXJhbmNlIGF0IGFsbC4gIEluIG90aGVyIHdvcmRzLCB0d28gbnVtYmVycyB0
aGF0IGFyZSB3aXRoaW4KLSAgICB0aGUgZGVmYXVsdCByZWxhdGl2ZSB0b2xlcmFuY2Ugb2YgYGAx
ZS02YGAgd2lsbCBzdGlsbCBiZSBjb25zaWRlcmVkIHVuZXF1YWwKLSAgICBpZiB0aGV5IGV4Y2Vl
ZCB0aGUgc3BlY2lmaWVkIGFic29sdXRlIHRvbGVyYW5jZS4gIElmIHlvdSBzcGVjaWZ5IGJvdGgK
LSAgICBgYGFic2BgIGFuZCBgYHJlbGBgLCB0aGUgbnVtYmVycyB3aWxsIGJlIGNvbnNpZGVyZWQg
ZXF1YWwgaWYgZWl0aGVyCi0gICAgdG9sZXJhbmNlIGlzIG1ldDo6Ci0KLSAgICAgICAgPj4+IDEg
KyAxZS04ID09IGFwcHJveCgxKQotICAgICAgICBUcnVlCi0gICAgICAgID4+PiAxICsgMWUtOCA9
PSBhcHByb3goMSwgYWJzPTFlLTEyKQotICAgICAgICBGYWxzZQotICAgICAgICA+Pj4gMSArIDFl
LTggPT0gYXBwcm94KDEsIHJlbD0xZS02LCBhYnM9MWUtMTIpCi0gICAgICAgIFRydWUKLQotICAg
IElmIHlvdSdyZSB0aGlua2luZyBhYm91dCB1c2luZyBgYGFwcHJveGBgLCB0aGVuIHlvdSBtaWdo
dCB3YW50IHRvIGtub3cgaG93Ci0gICAgaXQgY29tcGFyZXMgdG8gb3RoZXIgZ29vZCB3YXlzIG9m
IGNvbXBhcmluZyBmbG9hdGluZy1wb2ludCBudW1iZXJzLiAgQWxsIG9mCi0gICAgdGhlc2UgYWxn
b3JpdGhtcyBhcmUgYmFzZWQgb24gcmVsYXRpdmUgYW5kIGFic29sdXRlIHRvbGVyYW5jZXMgYW5k
IHNob3VsZAotICAgIGFncmVlIGZvciB0aGUgbW9zdCBwYXJ0LCBidXQgdGhleSBkbyBoYXZlIG1l
YW5pbmdmdWwgZGlmZmVyZW5jZXM6Ci0KLSAgICAtIGBgbWF0aC5pc2Nsb3NlKGEsIGIsIHJlbF90
b2w9MWUtOSwgYWJzX3RvbD0wLjApYGA6ICBUcnVlIGlmIHRoZSByZWxhdGl2ZQotICAgICAgdG9s
ZXJhbmNlIGlzIG1ldCB3LnIudC4gZWl0aGVyIGBgYWBgIG9yIGBgYmBgIG9yIGlmIHRoZSBhYnNv
bHV0ZQotICAgICAgdG9sZXJhbmNlIGlzIG1ldC4gIEJlY2F1c2UgdGhlIHJlbGF0aXZlIHRvbGVy
YW5jZSBpcyBjYWxjdWxhdGVkIHcuci50LgotICAgICAgYm90aCBgYGFgYCBhbmQgYGBiYGAsIHRo
aXMgdGVzdCBpcyBzeW1tZXRyaWMgKGkuZS4gIG5laXRoZXIgYGBhYGAgbm9yCi0gICAgICBgYGJg
YCBpcyBhICJyZWZlcmVuY2UgdmFsdWUiKS4gIFlvdSBoYXZlIHRvIHNwZWNpZnkgYW4gYWJzb2x1
dGUgdG9sZXJhbmNlCi0gICAgICBpZiB5b3Ugd2FudCB0byBjb21wYXJlIHRvIGBgMC4wYGAgYmVj
YXVzZSB0aGVyZSBpcyBubyB0b2xlcmFuY2UgYnkKLSAgICAgIGRlZmF1bHQuICBPbmx5IGF2YWls
YWJsZSBpbiBweXRob24+PTMuNS4gIGBNb3JlIGluZm9ybWF0aW9uLi4uYF9fCi0KLSAgICAgIF9f
IGh0dHBzOi8vZG9jcy5weXRob24ub3JnLzMvbGlicmFyeS9tYXRoLmh0bWwjbWF0aC5pc2Nsb3Nl
Ci0KLSAgICAtIGBgbnVtcHkuaXNjbG9zZShhLCBiLCBydG9sPTFlLTUsIGF0b2w9MWUtOClgYDog
VHJ1ZSBpZiB0aGUgZGlmZmVyZW5jZQotICAgICAgYmV0d2VlbiBgYGFgYCBhbmQgYGBiYGAgaXMg
bGVzcyB0aGF0IHRoZSBzdW0gb2YgdGhlIHJlbGF0aXZlIHRvbGVyYW5jZQotICAgICAgdy5yLnQu
IGBgYmBgIGFuZCB0aGUgYWJzb2x1dGUgdG9sZXJhbmNlLiAgQmVjYXVzZSB0aGUgcmVsYXRpdmUg
dG9sZXJhbmNlCi0gICAgICBpcyBvbmx5IGNhbGN1bGF0ZWQgdy5yLnQuIGBgYmBgLCB0aGlzIHRl
c3QgaXMgYXN5bW1ldHJpYyBhbmQgeW91IGNhbgotICAgICAgdGhpbmsgb2YgYGBiYGAgYXMgdGhl
IHJlZmVyZW5jZSB2YWx1ZS4gIFN1cHBvcnQgZm9yIGNvbXBhcmluZyBzZXF1ZW5jZXMKLSAgICAg
IGlzIHByb3ZpZGVkIGJ5IGBgbnVtcHkuYWxsY2xvc2VgYC4gIGBNb3JlIGluZm9ybWF0aW9uLi4u
YF9fCi0KLSAgICAgIF9fIGh0dHA6Ly9kb2NzLnNjaXB5Lm9yZy9kb2MvbnVtcHktMS4xMC4wL3Jl
ZmVyZW5jZS9nZW5lcmF0ZWQvbnVtcHkuaXNjbG9zZS5odG1sCi0KLSAgICAtIGBgdW5pdHRlc3Qu
VGVzdENhc2UuYXNzZXJ0QWxtb3N0RXF1YWwoYSwgYilgYDogVHJ1ZSBpZiBgYGFgYCBhbmQgYGBi
YGAKLSAgICAgIGFyZSB3aXRoaW4gYW4gYWJzb2x1dGUgdG9sZXJhbmNlIG9mIGBgMWUtN2BgLiAg
Tm8gcmVsYXRpdmUgdG9sZXJhbmNlIGlzCi0gICAgICBjb25zaWRlcmVkIGFuZCB0aGUgYWJzb2x1
dGUgdG9sZXJhbmNlIGNhbm5vdCBiZSBjaGFuZ2VkLCBzbyB0aGlzIGZ1bmN0aW9uCi0gICAgICBp
cyBub3QgYXBwcm9wcmlhdGUgZm9yIHZlcnkgbGFyZ2Ugb3IgdmVyeSBzbWFsbCBudW1iZXJzLiAg
QWxzbywgaXQncyBvbmx5Ci0gICAgICBhdmFpbGFibGUgaW4gc3ViY2xhc3NlcyBvZiBgYHVuaXR0
ZXN0LlRlc3RDYXNlYGAgYW5kIGl0J3MgdWdseSBiZWNhdXNlIGl0Ci0gICAgICBkb2Vzbid0IGZv
bGxvdyBQRVA4LiAgYE1vcmUgaW5mb3JtYXRpb24uLi5gX18KLQotICAgICAgX18gaHR0cHM6Ly9k
b2NzLnB5dGhvbi5vcmcvMy9saWJyYXJ5L3VuaXR0ZXN0Lmh0bWwjdW5pdHRlc3QuVGVzdENhc2Uu
YXNzZXJ0QWxtb3N0RXF1YWwKLQotICAgIC0gYGBhID09IHB5dGVzdC5hcHByb3goYiwgcmVsPTFl
LTYsIGFicz0xZS0xMilgYDogVHJ1ZSBpZiB0aGUgcmVsYXRpdmUKLSAgICAgIHRvbGVyYW5jZSBp
cyBtZXQgdy5yLnQuIGBgYmBgIG9yIGlmIHRoZSBhYnNvbHV0ZSB0b2xlcmFuY2UgaXMgbWV0Lgot
ICAgICAgQmVjYXVzZSB0aGUgcmVsYXRpdmUgdG9sZXJhbmNlIGlzIG9ubHkgY2FsY3VsYXRlZCB3
LnIudC4gYGBiYGAsIHRoaXMgdGVzdAotICAgICAgaXMgYXN5bW1ldHJpYyBhbmQgeW91IGNhbiB0
aGluayBvZiBgYGJgYCBhcyB0aGUgcmVmZXJlbmNlIHZhbHVlLiAgSW4gdGhlCi0gICAgICBzcGVj
aWFsIGNhc2UgdGhhdCB5b3UgZXhwbGljaXRseSBzcGVjaWZ5IGFuIGFic29sdXRlIHRvbGVyYW5j
ZSBidXQgbm90IGEKLSAgICAgIHJlbGF0aXZlIHRvbGVyYW5jZSwgb25seSB0aGUgYWJzb2x1dGUg
dG9sZXJhbmNlIGlzIGNvbnNpZGVyZWQuCi0KLSAgICAuLiB3YXJuaW5nOjoKLQotICAgICAgIC4u
IHZlcnNpb25jaGFuZ2VkOjogMy4yCi0KLSAgICAgICBJbiBvcmRlciB0byBhdm9pZCBpbmNvbnNp
c3RlbnQgYmVoYXZpb3IsIGBgVHlwZUVycm9yYGAgaXMKLSAgICAgICByYWlzZWQgZm9yIGBgPmBg
LCBgYD49YGAsIGBgPGBgIGFuZCBgYDw9YGAgY29tcGFyaXNvbnMuCi0gICAgICAgVGhlIGV4YW1w
bGUgYmVsb3cgaWxsdXN0cmF0ZXMgdGhlIHByb2JsZW06OgotCi0gICAgICAgICAgIGFzc2VydCBh
cHByb3goMC4xKSA+IDAuMSArIDFlLTEwICAjIGNhbGxzIGFwcHJveCgwLjEpLl9fZ3RfXygwLjEg
KyAxZS0xMCkKLSAgICAgICAgICAgYXNzZXJ0IDAuMSArIDFlLTEwID4gYXBwcm94KDAuMSkgICMg
Y2FsbHMgYXBwcm94KDAuMSkuX19sdF9fKDAuMSArIDFlLTEwKQotCi0gICAgICAgSW4gdGhlIHNl
Y29uZCBleGFtcGxlIG9uZSBleHBlY3RzIGBgYXBwcm94KDAuMSkuX19sZV9fKDAuMSArIDFlLTEw
KWBgCi0gICAgICAgdG8gYmUgY2FsbGVkLiBCdXQgaW5zdGVhZCwgYGBhcHByb3goMC4xKS5fX2x0
X18oMC4xICsgMWUtMTApYGAgaXMgdXNlZCB0bwotICAgICAgIGNvbXBhcmlzb24uIFRoaXMgaXMg
YmVjYXVzZSB0aGUgY2FsbCBoaWVyYXJjaHkgb2YgcmljaCBjb21wYXJpc29ucwotICAgICAgIGZv
bGxvd3MgYSBmaXhlZCBiZWhhdmlvci4gYE1vcmUgaW5mb3JtYXRpb24uLi5gX18KLQotICAgICAg
IF9fIGh0dHBzOi8vZG9jcy5weXRob24ub3JnLzMvcmVmZXJlbmNlL2RhdGFtb2RlbC5odG1sI29i
amVjdC5fX2dlX18KLSAgICAiIiIKLQotICAgIGZyb20gY29sbGVjdGlvbnMgaW1wb3J0IE1hcHBp
bmcsIFNlcXVlbmNlCi0gICAgZnJvbSBfcHl0ZXN0LmNvbXBhdCBpbXBvcnQgU1RSSU5HX1RZUEVT
IGFzIFN0cmluZwotCi0gICAgIyBEZWxlZ2F0ZSB0aGUgY29tcGFyaXNvbiB0byBhIGNsYXNzIHRo
YXQga25vd3MgaG93IHRvIGRlYWwgd2l0aCB0aGUgdHlwZQotICAgICMgb2YgdGhlIGV4cGVjdGVk
IHZhbHVlIChlLmcuIGludCwgZmxvYXQsIGxpc3QsIGRpY3QsIG51bXB5LmFycmF5LCBldGMpLgot
ICAgICMKLSAgICAjIFRoaXMgYXJjaGl0ZWN0dXJlIGlzIHJlYWxseSBkcml2ZW4gYnkgdGhlIG5l
ZWQgdG8gc3VwcG9ydCBudW1weSBhcnJheXMuCi0gICAgIyBUaGUgb25seSB3YXkgdG8gb3ZlcnJp
ZGUgYD09YCBmb3IgYXJyYXlzIHdpdGhvdXQgcmVxdWlyaW5nIHRoYXQgYXBwcm94IGJlCi0gICAg
IyB0aGUgbGVmdCBvcGVyYW5kIGlzIHRvIGluaGVyaXQgdGhlIGFwcHJveCBvYmplY3QgZnJvbSBg
bnVtcHkubmRhcnJheWAuCi0gICAgIyBCdXQgdGhhdCBjYW4ndCBiZSBhIGdlbmVyYWwgc29sdXRp
b24sIGJlY2F1c2UgaXQgcmVxdWlyZXMgKDEpIG51bXB5IHRvIGJlCi0gICAgIyBpbnN0YWxsZWQg
YW5kICgyKSB0aGUgZXhwZWN0ZWQgdmFsdWUgdG8gYmUgYSBudW1weSBhcnJheS4gIFNvIHRoZSBn
ZW5lcmFsCi0gICAgIyBzb2x1dGlvbiBpcyB0byBkZWxlZ2F0ZSBlYWNoIHR5cGUgb2YgZXhwZWN0
ZWQgdmFsdWUgdG8gYSBkaWZmZXJlbnQgY2xhc3MuCi0gICAgIwotICAgICMgVGhpcyBoYXMgdGhl
IGFkdmFudGFnZSB0aGF0IGl0IG1hZGUgaXQgZWFzeSB0byBzdXBwb3J0IG1hcHBpbmcgdHlwZXMK
LSAgICAjIChpLmUuIGRpY3QpLiAgVGhlIG9sZCBjb2RlIGFjY2VwdGVkIG1hcHBpbmcgdHlwZXMs
IGJ1dCB3b3VsZCBvbmx5IGNvbXBhcmUKLSAgICAjIHRoZWlyIGtleXMsIHdoaWNoIGlzIHByb2Jh
Ymx5IG5vdCB3aGF0IG1vc3QgcGVvcGxlIHdvdWxkIGV4cGVjdC4KLQotICAgIGlmIF9pc19udW1w
eV9hcnJheShleHBlY3RlZCk6Ci0gICAgICAgIGNscyA9IEFwcHJveE51bXB5Ci0gICAgZWxpZiBp
c2luc3RhbmNlKGV4cGVjdGVkLCBNYXBwaW5nKToKLSAgICAgICAgY2xzID0gQXBwcm94TWFwcGlu
ZwotICAgIGVsaWYgaXNpbnN0YW5jZShleHBlY3RlZCwgU2VxdWVuY2UpIGFuZCBub3QgaXNpbnN0
YW5jZShleHBlY3RlZCwgU3RyaW5nKToKLSAgICAgICAgY2xzID0gQXBwcm94U2VxdWVuY2UKLSAg
ICBlbHNlOgotICAgICAgICBjbHMgPSBBcHByb3hTY2FsYXIKLQotICAgIHJldHVybiBjbHMoZXhw
ZWN0ZWQsIHJlbCwgYWJzLCBuYW5fb2spCi0KLQotZGVmIF9pc19udW1weV9hcnJheShvYmopOgot
ICAgICIiIgotICAgIFJldHVybiB0cnVlIGlmIHRoZSBnaXZlbiBvYmplY3QgaXMgYSBudW1weSBh
cnJheS4gIE1ha2UgYSBzcGVjaWFsIGVmZm9ydCB0bwotICAgIGF2b2lkIGltcG9ydGluZyBudW1w
eSB1bmxlc3MgaXQncyByZWFsbHkgbmVjZXNzYXJ5LgotICAgICIiIgotICAgIGltcG9ydCBpbnNw
ZWN0Ci0KLSAgICBmb3IgY2xzIGluIGluc3BlY3QuZ2V0bXJvKHR5cGUob2JqKSk6Ci0gICAgICAg
IGlmIGNscy5fX21vZHVsZV9fID09ICdudW1weSc6Ci0gICAgICAgICAgICB0cnk6Ci0gICAgICAg
ICAgICAgICAgaW1wb3J0IG51bXB5IGFzIG5wCi0gICAgICAgICAgICAgICAgcmV0dXJuIGlzaW5z
dGFuY2Uob2JqLCBucC5uZGFycmF5KQotICAgICAgICAgICAgZXhjZXB0IEltcG9ydEVycm9yOgot
ICAgICAgICAgICAgICAgIHBhc3MKLQotICAgIHJldHVybiBGYWxzZQotCi0KLSMgYnVpbHRpbiBw
eXRlc3QucmFpc2VzIGhlbHBlcgotCi1kZWYgcmFpc2VzKGV4cGVjdGVkX2V4Y2VwdGlvbiwgKmFy
Z3MsICoqa3dhcmdzKToKLSAgICAiIiIKLSAgICBBc3NlcnQgdGhhdCBhIGNvZGUgYmxvY2svZnVu
Y3Rpb24gY2FsbCByYWlzZXMgYGBleHBlY3RlZF9leGNlcHRpb25gYAotICAgIGFuZCByYWlzZSBh
IGZhaWx1cmUgZXhjZXB0aW9uIG90aGVyd2lzZS4KLQotICAgIFRoaXMgaGVscGVyIHByb2R1Y2Vz
IGEgYGBFeGNlcHRpb25JbmZvKClgYCBvYmplY3QgKHNlZSBiZWxvdykuCi0KLSAgICBZb3UgbWF5
IHVzZSB0aGlzIGZ1bmN0aW9uIGFzIGEgY29udGV4dCBtYW5hZ2VyOjoKLQotICAgICAgICA+Pj4g
d2l0aCByYWlzZXMoWmVyb0RpdmlzaW9uRXJyb3IpOgotICAgICAgICAuLi4gICAgMS8wCi0KLSAg
ICAuLiB2ZXJzaW9uY2hhbmdlZDo6IDIuMTAKLQotICAgIEluIHRoZSBjb250ZXh0IG1hbmFnZXIg
Zm9ybSB5b3UgbWF5IHVzZSB0aGUga2V5d29yZCBhcmd1bWVudAotICAgIGBgbWVzc2FnZWBgIHRv
IHNwZWNpZnkgYSBjdXN0b20gZmFpbHVyZSBtZXNzYWdlOjoKLQotICAgICAgICA+Pj4gd2l0aCBy
YWlzZXMoWmVyb0RpdmlzaW9uRXJyb3IsIG1lc3NhZ2U9IkV4cGVjdGluZyBaZXJvRGl2aXNpb25F
cnJvciIpOgotICAgICAgICAuLi4gICAgcGFzcwotICAgICAgICBUcmFjZWJhY2sgKG1vc3QgcmVj
ZW50IGNhbGwgbGFzdCk6Ci0gICAgICAgICAgLi4uCi0gICAgICAgIEZhaWxlZDogRXhwZWN0aW5n
IFplcm9EaXZpc2lvbkVycm9yCi0KLSAgICAuLiBub3RlOjoKLQotICAgICAgIFdoZW4gdXNpbmcg
YGBweXRlc3QucmFpc2VzYGAgYXMgYSBjb250ZXh0IG1hbmFnZXIsIGl0J3Mgd29ydGh3aGlsZSB0
bwotICAgICAgIG5vdGUgdGhhdCBub3JtYWwgY29udGV4dCBtYW5hZ2VyIHJ1bGVzIGFwcGx5IGFu
ZCB0aGF0IHRoZSBleGNlcHRpb24KLSAgICAgICByYWlzZWQgKm11c3QqIGJlIHRoZSBmaW5hbCBs
aW5lIGluIHRoZSBzY29wZSBvZiB0aGUgY29udGV4dCBtYW5hZ2VyLgotICAgICAgIExpbmVzIG9m
IGNvZGUgYWZ0ZXIgdGhhdCwgd2l0aGluIHRoZSBzY29wZSBvZiB0aGUgY29udGV4dCBtYW5hZ2Vy
IHdpbGwKLSAgICAgICBub3QgYmUgZXhlY3V0ZWQuIEZvciBleGFtcGxlOjoKLQotICAgICAgICAg
ICA+Pj4gdmFsdWUgPSAxNQotICAgICAgICAgICA+Pj4gd2l0aCByYWlzZXMoVmFsdWVFcnJvcikg
YXMgZXhjX2luZm86Ci0gICAgICAgICAgIC4uLiAgICAgaWYgdmFsdWUgPiAxMDoKLSAgICAgICAg
ICAgLi4uICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigidmFsdWUgbXVzdCBiZSA8PSAxMCIpCi0g
ICAgICAgICAgIC4uLiAgICAgYXNzZXJ0IGV4Y19pbmZvLnR5cGUgPT0gVmFsdWVFcnJvciAgIyB0
aGlzIHdpbGwgbm90IGV4ZWN1dGUKLQotICAgICAgIEluc3RlYWQsIHRoZSBmb2xsb3dpbmcgYXBw
cm9hY2ggbXVzdCBiZSB0YWtlbiAobm90ZSB0aGUgZGlmZmVyZW5jZSBpbgotICAgICAgIHNjb3Bl
KTo6Ci0KLSAgICAgICAgICAgPj4+IHdpdGggcmFpc2VzKFZhbHVlRXJyb3IpIGFzIGV4Y19pbmZv
OgotICAgICAgICAgICAuLi4gICAgIGlmIHZhbHVlID4gMTA6Ci0gICAgICAgICAgIC4uLiAgICAg
ICAgIHJhaXNlIFZhbHVlRXJyb3IoInZhbHVlIG11c3QgYmUgPD0gMTAiKQotICAgICAgICAgICAu
Li4KLSAgICAgICAgICAgPj4+IGFzc2VydCBleGNfaW5mby50eXBlID09IFZhbHVlRXJyb3IKLQot
Ci0gICAgU2luY2UgdmVyc2lvbiBgYDMuMWBgIHlvdSBjYW4gdXNlIHRoZSBrZXl3b3JkIGFyZ3Vt
ZW50IGBgbWF0Y2hgYCB0byBhc3NlcnQgdGhhdCB0aGUKLSAgICBleGNlcHRpb24gbWF0Y2hlcyBh
IHRleHQgb3IgcmVnZXg6OgotCi0gICAgICAgID4+PiB3aXRoIHJhaXNlcyhWYWx1ZUVycm9yLCBt
YXRjaD0nbXVzdCBiZSAwIG9yIE5vbmUnKToKLSAgICAgICAgLi4uICAgICByYWlzZSBWYWx1ZUVy
cm9yKCJ2YWx1ZSBtdXN0IGJlIDAgb3IgTm9uZSIpCi0KLSAgICAgICAgPj4+IHdpdGggcmFpc2Vz
KFZhbHVlRXJyb3IsIG1hdGNoPXInbXVzdCBiZSBcZCskJyk6Ci0gICAgICAgIC4uLiAgICAgcmFp
c2UgVmFsdWVFcnJvcigidmFsdWUgbXVzdCBiZSA0MiIpCi0KLSAgICAqKkxlZ2FjeSBmb3Jtcyoq
Ci0KLSAgICBUaGUgZm9ybXMgYmVsb3cgYXJlIGZ1bGx5IHN1cHBvcnRlZCBidXQgYXJlIGRpc2Nv
dXJhZ2VkIGZvciBuZXcgY29kZSBiZWNhdXNlIHRoZQotICAgIGNvbnRleHQgbWFuYWdlciBmb3Jt
IGlzIHJlZ2FyZGVkIGFzIG1vcmUgcmVhZGFibGUgYW5kIGxlc3MgZXJyb3ItcHJvbmUuCi0KLSAg
ICBJdCBpcyBwb3NzaWJsZSB0byBzcGVjaWZ5IGEgY2FsbGFibGUgYnkgcGFzc2luZyBhIHRvLWJl
LWNhbGxlZCBsYW1iZGE6OgotCi0gICAgICAgID4+PiByYWlzZXMoWmVyb0RpdmlzaW9uRXJyb3Is
IGxhbWJkYTogMS8wKQotICAgICAgICA8RXhjZXB0aW9uSW5mbyAuLi4+Ci0KLSAgICBvciB5b3Ug
Y2FuIHNwZWNpZnkgYW4gYXJiaXRyYXJ5IGNhbGxhYmxlIHdpdGggYXJndW1lbnRzOjoKLQotICAg
ICAgICA+Pj4gZGVmIGYoeCk6IHJldHVybiAxL3gKLSAgICAgICAgLi4uCi0gICAgICAgID4+PiBy
YWlzZXMoWmVyb0RpdmlzaW9uRXJyb3IsIGYsIDApCi0gICAgICAgIDxFeGNlcHRpb25JbmZvIC4u
Lj4KLSAgICAgICAgPj4+IHJhaXNlcyhaZXJvRGl2aXNpb25FcnJvciwgZiwgeD0wKQotICAgICAg
ICA8RXhjZXB0aW9uSW5mbyAuLi4+Ci0KLSAgICBJdCBpcyBhbHNvIHBvc3NpYmxlIHRvIHBhc3Mg
YSBzdHJpbmcgdG8gYmUgZXZhbHVhdGVkIGF0IHJ1bnRpbWU6OgotCi0gICAgICAgID4+PiByYWlz
ZXMoWmVyb0RpdmlzaW9uRXJyb3IsICJmKDApIikKLSAgICAgICAgPEV4Y2VwdGlvbkluZm8gLi4u
PgotCi0gICAgVGhlIHN0cmluZyB3aWxsIGJlIGV2YWx1YXRlZCB1c2luZyB0aGUgc2FtZSBgYGxv
Y2FscygpYGAgYW5kIGBgZ2xvYmFscygpYGAKLSAgICBhdCB0aGUgbW9tZW50IG9mIHRoZSBgYHJh
aXNlc2BgIGNhbGwuCi0KLSAgICAuLiBhdXRvY2xhc3M6OiBfcHl0ZXN0Ll9jb2RlLkV4Y2VwdGlv
bkluZm8KLSAgICAgICAgOm1lbWJlcnM6Ci0KLSAgICAuLiBub3RlOjoKLSAgICAgICAgU2ltaWxh
ciB0byBjYXVnaHQgZXhjZXB0aW9uIG9iamVjdHMgaW4gUHl0aG9uLCBleHBsaWNpdGx5IGNsZWFy
aW5nCi0gICAgICAgIGxvY2FsIHJlZmVyZW5jZXMgdG8gcmV0dXJuZWQgYGBFeGNlcHRpb25JbmZv
YGAgb2JqZWN0cyBjYW4KLSAgICAgICAgaGVscCB0aGUgUHl0aG9uIGludGVycHJldGVyIHNwZWVk
IHVwIGl0cyBnYXJiYWdlIGNvbGxlY3Rpb24uCi0KLSAgICAgICAgQ2xlYXJpbmcgdGhvc2UgcmVm
ZXJlbmNlcyBicmVha3MgYSByZWZlcmVuY2UgY3ljbGUKLSAgICAgICAgKGBgRXhjZXB0aW9uSW5m
b2BgIC0tPiBjYXVnaHQgZXhjZXB0aW9uIC0tPiBmcmFtZSBzdGFjayByYWlzaW5nCi0gICAgICAg
IHRoZSBleGNlcHRpb24gLS0+IGN1cnJlbnQgZnJhbWUgc3RhY2sgLS0+IGxvY2FsIHZhcmlhYmxl
cyAtLT4KLSAgICAgICAgYGBFeGNlcHRpb25JbmZvYGApIHdoaWNoIG1ha2VzIFB5dGhvbiBrZWVw
IGFsbCBvYmplY3RzIHJlZmVyZW5jZWQKLSAgICAgICAgZnJvbSB0aGF0IGN5Y2xlIChpbmNsdWRp
bmcgYWxsIGxvY2FsIHZhcmlhYmxlcyBpbiB0aGUgY3VycmVudAotICAgICAgICBmcmFtZSkgYWxp
dmUgdW50aWwgdGhlIG5leHQgY3ljbGljIGdhcmJhZ2UgY29sbGVjdGlvbiBydW4uIFNlZSB0aGUK
LSAgICAgICAgb2ZmaWNpYWwgUHl0aG9uIGBgdHJ5YGAgc3RhdGVtZW50IGRvY3VtZW50YXRpb24g
Zm9yIG1vcmUgZGV0YWlsZWQKLSAgICAgICAgaW5mb3JtYXRpb24uCi0KLSAgICAiIiIKLSAgICBf
X3RyYWNlYmFja2hpZGVfXyA9IFRydWUKLSAgICBtc2cgPSAoImV4Y2VwdGlvbnMgbXVzdCBiZSBv
bGQtc3R5bGUgY2xhc3NlcyBvciIKLSAgICAgICAgICAgIiBkZXJpdmVkIGZyb20gQmFzZUV4Y2Vw
dGlvbiwgbm90ICVzIikKLSAgICBpZiBpc2luc3RhbmNlKGV4cGVjdGVkX2V4Y2VwdGlvbiwgdHVw
bGUpOgotICAgICAgICBmb3IgZXhjIGluIGV4cGVjdGVkX2V4Y2VwdGlvbjoKLSAgICAgICAgICAg
IGlmIG5vdCBpc2NsYXNzKGV4Yyk6Ci0gICAgICAgICAgICAgICAgcmFpc2UgVHlwZUVycm9yKG1z
ZyAlIHR5cGUoZXhjKSkKLSAgICBlbGlmIG5vdCBpc2NsYXNzKGV4cGVjdGVkX2V4Y2VwdGlvbik6
Ci0gICAgICAgIHJhaXNlIFR5cGVFcnJvcihtc2cgJSB0eXBlKGV4cGVjdGVkX2V4Y2VwdGlvbikp
Ci0KLSAgICBtZXNzYWdlID0gIkRJRCBOT1QgUkFJU0UgezB9Ii5mb3JtYXQoZXhwZWN0ZWRfZXhj
ZXB0aW9uKQotICAgIG1hdGNoX2V4cHIgPSBOb25lCi0KLSAgICBpZiBub3QgYXJnczoKLSAgICAg
ICAgaWYgIm1lc3NhZ2UiIGluIGt3YXJnczoKLSAgICAgICAgICAgIG1lc3NhZ2UgPSBrd2FyZ3Mu
cG9wKCJtZXNzYWdlIikKLSAgICAgICAgaWYgIm1hdGNoIiBpbiBrd2FyZ3M6Ci0gICAgICAgICAg
ICBtYXRjaF9leHByID0ga3dhcmdzLnBvcCgibWF0Y2giKQotICAgICAgICAgICAgbWVzc2FnZSAr
PSAiIG1hdGNoaW5nICd7MH0nIi5mb3JtYXQobWF0Y2hfZXhwcikKLSAgICAgICAgcmV0dXJuIFJh
aXNlc0NvbnRleHQoZXhwZWN0ZWRfZXhjZXB0aW9uLCBtZXNzYWdlLCBtYXRjaF9leHByKQotICAg
IGVsaWYgaXNpbnN0YW5jZShhcmdzWzBdLCBzdHIpOgotICAgICAgICBjb2RlLCA9IGFyZ3MKLSAg
ICAgICAgYXNzZXJ0IGlzaW5zdGFuY2UoY29kZSwgc3RyKQotICAgICAgICBmcmFtZSA9IHN5cy5f
Z2V0ZnJhbWUoMSkKLSAgICAgICAgbG9jID0gZnJhbWUuZl9sb2NhbHMuY29weSgpCi0gICAgICAg
IGxvYy51cGRhdGUoa3dhcmdzKQotICAgICAgICAjIHByaW50ICJyYWlzZXMgZnJhbWUgc2NvcGU6
ICVyIiAlIGZyYW1lLmZfbG9jYWxzCi0gICAgICAgIHRyeToKLSAgICAgICAgICAgIGNvZGUgPSBf
cHl0ZXN0Ll9jb2RlLlNvdXJjZShjb2RlKS5jb21waWxlKCkKLSAgICAgICAgICAgIHB5LmJ1aWx0
aW4uZXhlY18oY29kZSwgZnJhbWUuZl9nbG9iYWxzLCBsb2MpCi0gICAgICAgICAgICAjIFhYWCBk
aWRuJ1QgbWVhbiBmX2dsb2JhbHMgPT0gZl9sb2NhbHMgc29tZXRoaW5nIHNwZWNpYWw/Ci0gICAg
ICAgICAgICAjICAgICB0aGlzIGlzIGRlc3Ryb3llZCBoZXJlIC4uLgotICAgICAgICBleGNlcHQg
ZXhwZWN0ZWRfZXhjZXB0aW9uOgotICAgICAgICAgICAgcmV0dXJuIF9weXRlc3QuX2NvZGUuRXhj
ZXB0aW9uSW5mbygpCi0gICAgZWxzZToKLSAgICAgICAgZnVuYyA9IGFyZ3NbMF0KLSAgICAgICAg
dHJ5OgotICAgICAgICAgICAgZnVuYygqYXJnc1sxOl0sICoqa3dhcmdzKQotICAgICAgICBleGNl
cHQgZXhwZWN0ZWRfZXhjZXB0aW9uOgotICAgICAgICAgICAgcmV0dXJuIF9weXRlc3QuX2NvZGUu
RXhjZXB0aW9uSW5mbygpCi0gICAgZmFpbChtZXNzYWdlKQotCi0KLXJhaXNlcy5FeGNlcHRpb24g
PSBmYWlsLkV4Y2VwdGlvbgotCi0KLWNsYXNzIFJhaXNlc0NvbnRleHQob2JqZWN0KToKLSAgICBk
ZWYgX19pbml0X18oc2VsZiwgZXhwZWN0ZWRfZXhjZXB0aW9uLCBtZXNzYWdlLCBtYXRjaF9leHBy
KToKLSAgICAgICAgc2VsZi5leHBlY3RlZF9leGNlcHRpb24gPSBleHBlY3RlZF9leGNlcHRpb24K
LSAgICAgICAgc2VsZi5tZXNzYWdlID0gbWVzc2FnZQotICAgICAgICBzZWxmLm1hdGNoX2V4cHIg
PSBtYXRjaF9leHByCi0gICAgICAgIHNlbGYuZXhjaW5mbyA9IE5vbmUKLQotICAgIGRlZiBfX2Vu
dGVyX18oc2VsZik6Ci0gICAgICAgIHNlbGYuZXhjaW5mbyA9IG9iamVjdC5fX25ld19fKF9weXRl
c3QuX2NvZGUuRXhjZXB0aW9uSW5mbykKLSAgICAgICAgcmV0dXJuIHNlbGYuZXhjaW5mbwotCi0g
ICAgZGVmIF9fZXhpdF9fKHNlbGYsICp0cCk6Ci0gICAgICAgIF9fdHJhY2ViYWNraGlkZV9fID0g
VHJ1ZQotICAgICAgICBpZiB0cFswXSBpcyBOb25lOgotICAgICAgICAgICAgZmFpbChzZWxmLm1l
c3NhZ2UpCi0gICAgICAgIHNlbGYuZXhjaW5mby5fX2luaXRfXyh0cCkKLSAgICAgICAgc3VwcHJl
c3NfZXhjZXB0aW9uID0gaXNzdWJjbGFzcyhzZWxmLmV4Y2luZm8udHlwZSwgc2VsZi5leHBlY3Rl
ZF9leGNlcHRpb24pCi0gICAgICAgIGlmIHN5cy52ZXJzaW9uX2luZm9bMF0gPT0gMiBhbmQgc3Vw
cHJlc3NfZXhjZXB0aW9uOgotICAgICAgICAgICAgc3lzLmV4Y19jbGVhcigpCi0gICAgICAgIGlm
IHNlbGYubWF0Y2hfZXhwcjoKLSAgICAgICAgICAgIHNlbGYuZXhjaW5mby5tYXRjaChzZWxmLm1h
dGNoX2V4cHIpCi0gICAgICAgIHJldHVybiBzdXBwcmVzc19leGNlcHRpb24KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRf
cGFydHkvcHl0ZXN0L19weXRlc3QvcmVjd2Fybi5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L19weXRlc3QvcmVj
d2Fybi5weQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNGZjZWIxMGE3ZjM0MDQzZjQw
ZGM0Mzk2MDg5MWNhZGMyZmU0MWEyOC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9fcHl0ZXN0L3JlY3dhcm4ucHkKKysrIC9kZXYvbnVs
bApAQCAtMSwyMzYgKzAsMCBAQAotIiIiIHJlY29yZGluZyB3YXJuaW5ncyBkdXJpbmcgdGVzdCBm
dW5jdGlvbiBleGVjdXRpb24uICIiIgotZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCBhYnNvbHV0ZV9p
bXBvcnQsIGRpdmlzaW9uLCBwcmludF9mdW5jdGlvbgotCi1pbXBvcnQgaW5zcGVjdAotCi1pbXBv
cnQgX3B5dGVzdC5fY29kZQotaW1wb3J0IHB5Ci1pbXBvcnQgc3lzCi1pbXBvcnQgd2FybmluZ3MK
LQotaW1wb3J0IHJlCi0KLWZyb20gX3B5dGVzdC5maXh0dXJlcyBpbXBvcnQgeWllbGRfZml4dHVy
ZQotZnJvbSBfcHl0ZXN0Lm91dGNvbWVzIGltcG9ydCBmYWlsCi0KLQotQHlpZWxkX2ZpeHR1cmUK
LWRlZiByZWN3YXJuKCk6Ci0gICAgIiIiUmV0dXJuIGEgV2FybmluZ3NSZWNvcmRlciBpbnN0YW5j
ZSB0aGF0IHByb3ZpZGVzIHRoZXNlIG1ldGhvZHM6Ci0KLSAgICAqIGBgcG9wKGNhdGVnb3J5PU5v
bmUpYGA6IHJldHVybiBsYXN0IHdhcm5pbmcgbWF0Y2hpbmcgdGhlIGNhdGVnb3J5LgotICAgICog
YGBjbGVhcigpYGA6IGNsZWFyIGxpc3Qgb2Ygd2FybmluZ3MKLQotICAgIFNlZSBodHRwOi8vZG9j
cy5weXRob24ub3JnL2xpYnJhcnkvd2FybmluZ3MuaHRtbCBmb3IgaW5mb3JtYXRpb24KLSAgICBv
biB3YXJuaW5nIGNhdGVnb3JpZXMuCi0gICAgIiIiCi0gICAgd3JlYyA9IFdhcm5pbmdzUmVjb3Jk
ZXIoKQotICAgIHdpdGggd3JlYzoKLSAgICAgICAgd2FybmluZ3Muc2ltcGxlZmlsdGVyKCdkZWZh
dWx0JykKLSAgICAgICAgeWllbGQgd3JlYwotCi0KLWRlZiBkZXByZWNhdGVkX2NhbGwoZnVuYz1O
b25lLCAqYXJncywgKiprd2FyZ3MpOgotICAgICIiImNvbnRleHQgbWFuYWdlciB0aGF0IGNhbiBi
ZSB1c2VkIHRvIGVuc3VyZSBhIGJsb2NrIG9mIGNvZGUgdHJpZ2dlcnMgYQotICAgIGBgRGVwcmVj
YXRpb25XYXJuaW5nYGAgb3IgYGBQZW5kaW5nRGVwcmVjYXRpb25XYXJuaW5nYGA6OgotCi0gICAg
ICAgID4+PiBpbXBvcnQgd2FybmluZ3MKLSAgICAgICAgPj4+IGRlZiBhcGlfY2FsbF92MigpOgot
ICAgICAgICAuLi4gICAgIHdhcm5pbmdzLndhcm4oJ3VzZSB2MyBvZiB0aGlzIGFwaScsIERlcHJl
Y2F0aW9uV2FybmluZykKLSAgICAgICAgLi4uICAgICByZXR1cm4gMjAwCi0KLSAgICAgICAgPj4+
IHdpdGggZGVwcmVjYXRlZF9jYWxsKCk6Ci0gICAgICAgIC4uLiAgICBhc3NlcnQgYXBpX2NhbGxf
djIoKSA9PSAyMDAKLQotICAgIGBgZGVwcmVjYXRlZF9jYWxsYGAgY2FuIGFsc28gYmUgdXNlZCBi
eSBwYXNzaW5nIGEgZnVuY3Rpb24gYW5kIGBgKmFyZ3NgYCBhbmQgYGAqa3dhcmdzYGAsCi0gICAg
aW4gd2hpY2ggY2FzZSBpdCB3aWxsIGVuc3VyZSBjYWxsaW5nIGBgZnVuYygqYXJncywgKiprd2Fy
Z3MpYGAgcHJvZHVjZXMgb25lIG9mIHRoZSB3YXJuaW5ncwotICAgIHR5cGVzIGFib3ZlLgotICAg
ICIiIgotICAgIGlmIG5vdCBmdW5jOgotICAgICAgICByZXR1cm4gX0RlcHJlY2F0ZWRDYWxsQ29u
dGV4dCgpCi0gICAgZWxzZToKLSAgICAgICAgX190cmFjZWJhY2toaWRlX18gPSBUcnVlCi0gICAg
ICAgIHdpdGggX0RlcHJlY2F0ZWRDYWxsQ29udGV4dCgpOgotICAgICAgICAgICAgcmV0dXJuIGZ1
bmMoKmFyZ3MsICoqa3dhcmdzKQotCi0KLWNsYXNzIF9EZXByZWNhdGVkQ2FsbENvbnRleHQob2Jq
ZWN0KToKLSAgICAiIiJJbXBsZW1lbnRzIHRoZSBsb2dpYyB0byBjYXB0dXJlIGRlcHJlY2F0aW9u
IHdhcm5pbmdzIGFzIGEgY29udGV4dCBtYW5hZ2VyLiIiIgotCi0gICAgZGVmIF9fZW50ZXJfXyhz
ZWxmKToKLSAgICAgICAgc2VsZi5fY2FwdHVyZWRfY2F0ZWdvcmllcyA9IFtdCi0gICAgICAgIHNl
bGYuX29sZF93YXJuID0gd2FybmluZ3Mud2FybgotICAgICAgICBzZWxmLl9vbGRfd2Fybl9leHBs
aWNpdCA9IHdhcm5pbmdzLndhcm5fZXhwbGljaXQKLSAgICAgICAgd2FybmluZ3Mud2Fybl9leHBs
aWNpdCA9IHNlbGYuX3dhcm5fZXhwbGljaXQKLSAgICAgICAgd2FybmluZ3Mud2FybiA9IHNlbGYu
X3dhcm4KLQotICAgIGRlZiBfd2Fybl9leHBsaWNpdChzZWxmLCBtZXNzYWdlLCBjYXRlZ29yeSwg
KmFyZ3MsICoqa3dhcmdzKToKLSAgICAgICAgc2VsZi5fY2FwdHVyZWRfY2F0ZWdvcmllcy5hcHBl
bmQoY2F0ZWdvcnkpCi0KLSAgICBkZWYgX3dhcm4oc2VsZiwgbWVzc2FnZSwgY2F0ZWdvcnk9Tm9u
ZSwgKmFyZ3MsICoqa3dhcmdzKToKLSAgICAgICAgaWYgaXNpbnN0YW5jZShtZXNzYWdlLCBXYXJu
aW5nKToKLSAgICAgICAgICAgIHNlbGYuX2NhcHR1cmVkX2NhdGVnb3JpZXMuYXBwZW5kKG1lc3Nh
Z2UuX19jbGFzc19fKQotICAgICAgICBlbHNlOgotICAgICAgICAgICAgc2VsZi5fY2FwdHVyZWRf
Y2F0ZWdvcmllcy5hcHBlbmQoY2F0ZWdvcnkpCi0KLSAgICBkZWYgX19leGl0X18oc2VsZiwgZXhj
X3R5cGUsIGV4Y192YWwsIGV4Y190Yik6Ci0gICAgICAgIHdhcm5pbmdzLndhcm5fZXhwbGljaXQg
PSBzZWxmLl9vbGRfd2Fybl9leHBsaWNpdAotICAgICAgICB3YXJuaW5ncy53YXJuID0gc2VsZi5f
b2xkX3dhcm4KLQotICAgICAgICBpZiBleGNfdHlwZSBpcyBOb25lOgotICAgICAgICAgICAgZGVw
cmVjYXRpb25fY2F0ZWdvcmllcyA9IChEZXByZWNhdGlvbldhcm5pbmcsIFBlbmRpbmdEZXByZWNh
dGlvbldhcm5pbmcpCi0gICAgICAgICAgICBpZiBub3QgYW55KGlzc3ViY2xhc3MoYywgZGVwcmVj
YXRpb25fY2F0ZWdvcmllcykgZm9yIGMgaW4gc2VsZi5fY2FwdHVyZWRfY2F0ZWdvcmllcyk6Ci0g
ICAgICAgICAgICAgICAgX190cmFjZWJhY2toaWRlX18gPSBUcnVlCi0gICAgICAgICAgICAgICAg
bXNnID0gIkRpZCBub3QgcHJvZHVjZSBEZXByZWNhdGlvbldhcm5pbmcgb3IgUGVuZGluZ0RlcHJl
Y2F0aW9uV2FybmluZyIKLSAgICAgICAgICAgICAgICByYWlzZSBBc3NlcnRpb25FcnJvcihtc2cp
Ci0KLQotZGVmIHdhcm5zKGV4cGVjdGVkX3dhcm5pbmcsICphcmdzLCAqKmt3YXJncyk6Ci0gICAg
IiIiQXNzZXJ0IHRoYXQgY29kZSByYWlzZXMgYSBwYXJ0aWN1bGFyIGNsYXNzIG9mIHdhcm5pbmcu
Ci0KLSAgICBTcGVjaWZpY2FsbHksIHRoZSBpbnB1dCBAZXhwZWN0ZWRfd2FybmluZyBjYW4gYmUg
YSB3YXJuaW5nIGNsYXNzIG9yCi0gICAgdHVwbGUgb2Ygd2FybmluZyBjbGFzc2VzLCBhbmQgdGhl
IGNvZGUgbXVzdCByZXR1cm4gdGhhdCB3YXJuaW5nCi0gICAgKGlmIGEgc2luZ2xlIGNsYXNzKSBv
ciBvbmUgb2YgdGhvc2Ugd2FybmluZ3MgKGlmIGEgdHVwbGUpLgotCi0gICAgVGhpcyBoZWxwZXIg
cHJvZHVjZXMgYSBsaXN0IG9mIGBgd2FybmluZ3MuV2FybmluZ01lc3NhZ2VgYCBvYmplY3RzLAot
ICAgIG9uZSBmb3IgZWFjaCB3YXJuaW5nIHJhaXNlZC4KLQotICAgIFRoaXMgZnVuY3Rpb24gY2Fu
IGJlIHVzZWQgYXMgYSBjb250ZXh0IG1hbmFnZXIsIG9yIGFueSBvZiB0aGUgb3RoZXIgd2F5cwot
ICAgIGBgcHl0ZXN0LnJhaXNlc2BgIGNhbiBiZSB1c2VkOjoKLQotICAgICAgICA+Pj4gd2l0aCB3
YXJucyhSdW50aW1lV2FybmluZyk6Ci0gICAgICAgIC4uLiAgICB3YXJuaW5ncy53YXJuKCJteSB3
YXJuaW5nIiwgUnVudGltZVdhcm5pbmcpCi0KLSAgICBJbiB0aGUgY29udGV4dCBtYW5hZ2VyIGZv
cm0geW91IG1heSB1c2UgdGhlIGtleXdvcmQgYXJndW1lbnQgYGBtYXRjaGBgIHRvIGFzc2VydAot
ICAgIHRoYXQgdGhlIGV4Y2VwdGlvbiBtYXRjaGVzIGEgdGV4dCBvciByZWdleDo6Ci0KLSAgICAg
ICAgPj4+IHdpdGggd2FybnMoVXNlcldhcm5pbmcsIG1hdGNoPSdtdXN0IGJlIDAgb3IgTm9uZScp
OgotICAgICAgICAuLi4gICAgIHdhcm5pbmdzLndhcm4oInZhbHVlIG11c3QgYmUgMCBvciBOb25l
IiwgVXNlcldhcm5pbmcpCi0KLSAgICAgICAgPj4+IHdpdGggd2FybnMoVXNlcldhcm5pbmcsIG1h
dGNoPXInbXVzdCBiZSBcZCskJyk6Ci0gICAgICAgIC4uLiAgICAgd2FybmluZ3Mud2FybigidmFs
dWUgbXVzdCBiZSA0MiIsIFVzZXJXYXJuaW5nKQotCi0gICAgICAgID4+PiB3aXRoIHdhcm5zKFVz
ZXJXYXJuaW5nLCBtYXRjaD1yJ211c3QgYmUgXGQrJCcpOgotICAgICAgICAuLi4gICAgIHdhcm5p
bmdzLndhcm4oInRoaXMgaXMgbm90IGhlcmUiLCBVc2VyV2FybmluZykKLSAgICAgICAgVHJhY2Vi
YWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgotICAgICAgICAgIC4uLgotICAgICAgICBGYWls
ZWQ6IERJRCBOT1QgV0FSTi4gTm8gd2FybmluZ3Mgb2YgdHlwZSAuLi5Vc2VyV2FybmluZy4uLiB3
YXMgZW1pdHRlZC4uLgotCi0gICAgIiIiCi0gICAgbWF0Y2hfZXhwciA9IE5vbmUKLSAgICBpZiBu
b3QgYXJnczoKLSAgICAgICAgaWYgIm1hdGNoIiBpbiBrd2FyZ3M6Ci0gICAgICAgICAgICBtYXRj
aF9leHByID0ga3dhcmdzLnBvcCgibWF0Y2giKQotICAgICAgICByZXR1cm4gV2FybmluZ3NDaGVj
a2VyKGV4cGVjdGVkX3dhcm5pbmcsIG1hdGNoX2V4cHI9bWF0Y2hfZXhwcikKLSAgICBlbGlmIGlz
aW5zdGFuY2UoYXJnc1swXSwgc3RyKToKLSAgICAgICAgY29kZSwgPSBhcmdzCi0gICAgICAgIGFz
c2VydCBpc2luc3RhbmNlKGNvZGUsIHN0cikKLSAgICAgICAgZnJhbWUgPSBzeXMuX2dldGZyYW1l
KDEpCi0gICAgICAgIGxvYyA9IGZyYW1lLmZfbG9jYWxzLmNvcHkoKQotICAgICAgICBsb2MudXBk
YXRlKGt3YXJncykKLQotICAgICAgICB3aXRoIFdhcm5pbmdzQ2hlY2tlcihleHBlY3RlZF93YXJu
aW5nLCBtYXRjaF9leHByPW1hdGNoX2V4cHIpOgotICAgICAgICAgICAgY29kZSA9IF9weXRlc3Qu
X2NvZGUuU291cmNlKGNvZGUpLmNvbXBpbGUoKQotICAgICAgICAgICAgcHkuYnVpbHRpbi5leGVj
Xyhjb2RlLCBmcmFtZS5mX2dsb2JhbHMsIGxvYykKLSAgICBlbHNlOgotICAgICAgICBmdW5jID0g
YXJnc1swXQotICAgICAgICB3aXRoIFdhcm5pbmdzQ2hlY2tlcihleHBlY3RlZF93YXJuaW5nLCBt
YXRjaF9leHByPW1hdGNoX2V4cHIpOgotICAgICAgICAgICAgcmV0dXJuIGZ1bmMoKmFyZ3NbMTpd
LCAqKmt3YXJncykKLQotCi1jbGFzcyBXYXJuaW5nc1JlY29yZGVyKHdhcm5pbmdzLmNhdGNoX3dh
cm5pbmdzKToKLSAgICAiIiJBIGNvbnRleHQgbWFuYWdlciB0byByZWNvcmQgcmFpc2VkIHdhcm5p
bmdzLgotCi0gICAgQWRhcHRlZCBmcm9tIGB3YXJuaW5ncy5jYXRjaF93YXJuaW5nc2AuCi0gICAg
IiIiCi0KLSAgICBkZWYgX19pbml0X18oc2VsZik6Ci0gICAgICAgIHN1cGVyKFdhcm5pbmdzUmVj
b3JkZXIsIHNlbGYpLl9faW5pdF9fKHJlY29yZD1UcnVlKQotICAgICAgICBzZWxmLl9lbnRlcmVk
ID0gRmFsc2UKLSAgICAgICAgc2VsZi5fbGlzdCA9IFtdCi0KLSAgICBAcHJvcGVydHkKLSAgICBk
ZWYgbGlzdChzZWxmKToKLSAgICAgICAgIiIiVGhlIGxpc3Qgb2YgcmVjb3JkZWQgd2FybmluZ3Mu
IiIiCi0gICAgICAgIHJldHVybiBzZWxmLl9saXN0Ci0KLSAgICBkZWYgX19nZXRpdGVtX18oc2Vs
ZiwgaSk6Ci0gICAgICAgICIiIkdldCBhIHJlY29yZGVkIHdhcm5pbmcgYnkgaW5kZXguIiIiCi0g
ICAgICAgIHJldHVybiBzZWxmLl9saXN0W2ldCi0KLSAgICBkZWYgX19pdGVyX18oc2VsZik6Ci0g
ICAgICAgICIiIkl0ZXJhdGUgdGhyb3VnaCB0aGUgcmVjb3JkZWQgd2FybmluZ3MuIiIiCi0gICAg
ICAgIHJldHVybiBpdGVyKHNlbGYuX2xpc3QpCi0KLSAgICBkZWYgX19sZW5fXyhzZWxmKToKLSAg
ICAgICAgIiIiVGhlIG51bWJlciBvZiByZWNvcmRlZCB3YXJuaW5ncy4iIiIKLSAgICAgICAgcmV0
dXJuIGxlbihzZWxmLl9saXN0KQotCi0gICAgZGVmIHBvcChzZWxmLCBjbHM9V2FybmluZyk6Ci0g
ICAgICAgICIiIlBvcCB0aGUgZmlyc3QgcmVjb3JkZWQgd2FybmluZywgcmFpc2UgZXhjZXB0aW9u
IGlmIG5vdCBleGlzdHMuIiIiCi0gICAgICAgIGZvciBpLCB3IGluIGVudW1lcmF0ZShzZWxmLl9s
aXN0KToKLSAgICAgICAgICAgIGlmIGlzc3ViY2xhc3Mody5jYXRlZ29yeSwgY2xzKToKLSAgICAg
ICAgICAgICAgICByZXR1cm4gc2VsZi5fbGlzdC5wb3AoaSkKLSAgICAgICAgX190cmFjZWJhY2to
aWRlX18gPSBUcnVlCi0gICAgICAgIHJhaXNlIEFzc2VydGlvbkVycm9yKCIlciBub3QgZm91bmQg
aW4gd2FybmluZyBsaXN0IiAlIGNscykKLQotICAgIGRlZiBjbGVhcihzZWxmKToKLSAgICAgICAg
IiIiQ2xlYXIgdGhlIGxpc3Qgb2YgcmVjb3JkZWQgd2FybmluZ3MuIiIiCi0gICAgICAgIHNlbGYu
X2xpc3RbOl0gPSBbXQotCi0gICAgZGVmIF9fZW50ZXJfXyhzZWxmKToKLSAgICAgICAgaWYgc2Vs
Zi5fZW50ZXJlZDoKLSAgICAgICAgICAgIF9fdHJhY2ViYWNraGlkZV9fID0gVHJ1ZQotICAgICAg
ICAgICAgcmFpc2UgUnVudGltZUVycm9yKCJDYW5ub3QgZW50ZXIgJXIgdHdpY2UiICUgc2VsZikK
LSAgICAgICAgc2VsZi5fbGlzdCA9IHN1cGVyKFdhcm5pbmdzUmVjb3JkZXIsIHNlbGYpLl9fZW50
ZXJfXygpCi0gICAgICAgIHdhcm5pbmdzLnNpbXBsZWZpbHRlcignYWx3YXlzJykKLSAgICAgICAg
cmV0dXJuIHNlbGYKLQotICAgIGRlZiBfX2V4aXRfXyhzZWxmLCAqZXhjX2luZm8pOgotICAgICAg
ICBpZiBub3Qgc2VsZi5fZW50ZXJlZDoKLSAgICAgICAgICAgIF9fdHJhY2ViYWNraGlkZV9fID0g
VHJ1ZQotICAgICAgICAgICAgcmFpc2UgUnVudGltZUVycm9yKCJDYW5ub3QgZXhpdCAlciB3aXRo
b3V0IGVudGVyaW5nIGZpcnN0IiAlIHNlbGYpCi0gICAgICAgIHN1cGVyKFdhcm5pbmdzUmVjb3Jk
ZXIsIHNlbGYpLl9fZXhpdF9fKCpleGNfaW5mbykKLQotCi1jbGFzcyBXYXJuaW5nc0NoZWNrZXIo
V2FybmluZ3NSZWNvcmRlcik6Ci0gICAgZGVmIF9faW5pdF9fKHNlbGYsIGV4cGVjdGVkX3dhcm5p
bmc9Tm9uZSwgbWF0Y2hfZXhwcj1Ob25lKToKLSAgICAgICAgc3VwZXIoV2FybmluZ3NDaGVja2Vy
LCBzZWxmKS5fX2luaXRfXygpCi0KLSAgICAgICAgbXNnID0gKCJleGNlcHRpb25zIG11c3QgYmUg
b2xkLXN0eWxlIGNsYXNzZXMgb3IgIgotICAgICAgICAgICAgICAgImRlcml2ZWQgZnJvbSBXYXJu
aW5nLCBub3QgJXMiKQotICAgICAgICBpZiBpc2luc3RhbmNlKGV4cGVjdGVkX3dhcm5pbmcsIHR1
cGxlKToKLSAgICAgICAgICAgIGZvciBleGMgaW4gZXhwZWN0ZWRfd2FybmluZzoKLSAgICAgICAg
ICAgICAgICBpZiBub3QgaW5zcGVjdC5pc2NsYXNzKGV4Yyk6Ci0gICAgICAgICAgICAgICAgICAg
IHJhaXNlIFR5cGVFcnJvcihtc2cgJSB0eXBlKGV4YykpCi0gICAgICAgIGVsaWYgaW5zcGVjdC5p
c2NsYXNzKGV4cGVjdGVkX3dhcm5pbmcpOgotICAgICAgICAgICAgZXhwZWN0ZWRfd2FybmluZyA9
IChleHBlY3RlZF93YXJuaW5nLCkKLSAgICAgICAgZWxpZiBleHBlY3RlZF93YXJuaW5nIGlzIG5v
dCBOb25lOgotICAgICAgICAgICAgcmFpc2UgVHlwZUVycm9yKG1zZyAlIHR5cGUoZXhwZWN0ZWRf
d2FybmluZykpCi0KLSAgICAgICAgc2VsZi5leHBlY3RlZF93YXJuaW5nID0gZXhwZWN0ZWRfd2Fy
bmluZwotICAgICAgICBzZWxmLm1hdGNoX2V4cHIgPSBtYXRjaF9leHByCi0KLSAgICBkZWYgX19l
eGl0X18oc2VsZiwgKmV4Y19pbmZvKToKLSAgICAgICAgc3VwZXIoV2FybmluZ3NDaGVja2VyLCBz
ZWxmKS5fX2V4aXRfXygqZXhjX2luZm8pCi0KLSAgICAgICAgIyBvbmx5IGNoZWNrIGlmIHdlJ3Jl
IG5vdCBjdXJyZW50bHkgaGFuZGxpbmcgYW4gZXhjZXB0aW9uCi0gICAgICAgIGlmIGFsbChhIGlz
IE5vbmUgZm9yIGEgaW4gZXhjX2luZm8pOgotICAgICAgICAgICAgaWYgc2VsZi5leHBlY3RlZF93
YXJuaW5nIGlzIG5vdCBOb25lOgotICAgICAgICAgICAgICAgIGlmIG5vdCBhbnkoaXNzdWJjbGFz
cyhyLmNhdGVnb3J5LCBzZWxmLmV4cGVjdGVkX3dhcm5pbmcpCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICBmb3IgciBpbiBzZWxmKToKLSAgICAgICAgICAgICAgICAgICAgX190cmFjZWJhY2to
aWRlX18gPSBUcnVlCi0gICAgICAgICAgICAgICAgICAgIGZhaWwoIkRJRCBOT1QgV0FSTi4gTm8g
d2FybmluZ3Mgb2YgdHlwZSB7MH0gd2FzIGVtaXR0ZWQuICIKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAiVGhlIGxpc3Qgb2YgZW1pdHRlZCB3YXJuaW5ncyBpczogezF9LiIuZm9ybWF0KAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmV4cGVjdGVkX3dhcm5pbmcsCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIFtlYWNoLm1lc3NhZ2UgZm9yIGVhY2ggaW4gc2VsZl0pKQot
ICAgICAgICAgICAgICAgIGVsaWYgc2VsZi5tYXRjaF9leHByIGlzIG5vdCBOb25lOgotICAgICAg
ICAgICAgICAgICAgICBmb3IgciBpbiBzZWxmOgotICAgICAgICAgICAgICAgICAgICAgICAgaWYg
aXNzdWJjbGFzcyhyLmNhdGVnb3J5LCBzZWxmLmV4cGVjdGVkX3dhcm5pbmcpOgotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGlmIHJlLmNvbXBpbGUoc2VsZi5tYXRjaF9leHByKS5zZWFyY2go
c3RyKHIubWVzc2FnZSkpOgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhawot
ICAgICAgICAgICAgICAgICAgICBlbHNlOgotICAgICAgICAgICAgICAgICAgICAgICAgZmFpbCgi
RElEIE5PVCBXQVJOLiBObyB3YXJuaW5ncyBvZiB0eXBlIHswfSBtYXRjaGluZyIKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIiAoJ3sxfScpIHdhcyBlbWl0dGVkLiBUaGUgbGlzdCBvZiBl
bWl0dGVkIHdhcm5pbmdzIgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiIGlzOiB7Mn0u
Ii5mb3JtYXQoc2VsZi5leHBlY3RlZF93YXJuaW5nLCBzZWxmLm1hdGNoX2V4cHIsCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZWFjaC5tZXNzYWdlIGZv
ciBlYWNoIGluIHNlbGZdKSkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L19weXRlc3QvcmVzdWx0
bG9nLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy90aGlyZF9wYXJ0eS9weXRlc3QvX3B5dGVzdC9yZXN1bHRsb2cucHkKZGVsZXRlZCBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDlmOWMyZDFmNjUzNjBmMzhkMGQ2NDEyM2Q2NDY1N2MwNzI2YTI2Njcu
LjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRl
c3QvX3B5dGVzdC9yZXN1bHRsb2cucHkKKysrIC9kZXYvbnVsbApAQCAtMSwxMTMgKzAsMCBAQAot
IiIiIGxvZyBtYWNoaW5lLXBhcnNlYWJsZSB0ZXN0IHNlc3Npb24gcmVzdWx0IGluZm9ybWF0aW9u
IGluIGEgcGxhaW4KLXRleHQgZmlsZS4KLSIiIgotZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCBhYnNv
bHV0ZV9pbXBvcnQsIGRpdmlzaW9uLCBwcmludF9mdW5jdGlvbgotCi1pbXBvcnQgcHkKLWltcG9y
dCBvcwotCi0KLWRlZiBweXRlc3RfYWRkb3B0aW9uKHBhcnNlcik6Ci0gICAgZ3JvdXAgPSBwYXJz
ZXIuZ2V0Z3JvdXAoInRlcm1pbmFsIHJlcG9ydGluZyIsICJyZXN1bHRsb2cgcGx1Z2luIG9wdGlv
bnMiKQotICAgIGdyb3VwLmFkZG9wdGlvbignLS1yZXN1bHRsb2cnLCAnLS1yZXN1bHQtbG9nJywg
YWN0aW9uPSJzdG9yZSIsCi0gICAgICAgICAgICAgICAgICAgIG1ldGF2YXI9InBhdGgiLCBkZWZh
dWx0PU5vbmUsCi0gICAgICAgICAgICAgICAgICAgIGhlbHA9IkRFUFJFQ0FURUQgcGF0aCBmb3Ig
bWFjaGluZS1yZWFkYWJsZSByZXN1bHQgbG9nLiIpCi0KLQotZGVmIHB5dGVzdF9jb25maWd1cmUo
Y29uZmlnKToKLSAgICByZXN1bHRsb2cgPSBjb25maWcub3B0aW9uLnJlc3VsdGxvZwotICAgICMg
cHJldmVudCBvcGVuaW5nIHJlc3VsdGxvZyBvbiBzbGF2ZSBub2RlcyAoeGRpc3QpCi0gICAgaWYg
cmVzdWx0bG9nIGFuZCBub3QgaGFzYXR0cihjb25maWcsICdzbGF2ZWlucHV0Jyk6Ci0gICAgICAg
IGRpcm5hbWUgPSBvcy5wYXRoLmRpcm5hbWUob3MucGF0aC5hYnNwYXRoKHJlc3VsdGxvZykpCi0g
ICAgICAgIGlmIG5vdCBvcy5wYXRoLmlzZGlyKGRpcm5hbWUpOgotICAgICAgICAgICAgb3MubWFr
ZWRpcnMoZGlybmFtZSkKLSAgICAgICAgbG9nZmlsZSA9IG9wZW4ocmVzdWx0bG9nLCAndycsIDEp
ICAjIGxpbmUgYnVmZmVyZWQKLSAgICAgICAgY29uZmlnLl9yZXN1bHRsb2cgPSBSZXN1bHRMb2co
Y29uZmlnLCBsb2dmaWxlKQotICAgICAgICBjb25maWcucGx1Z2lubWFuYWdlci5yZWdpc3Rlcihj
b25maWcuX3Jlc3VsdGxvZykKLQotICAgICAgICBmcm9tIF9weXRlc3QuZGVwcmVjYXRlZCBpbXBv
cnQgUkVTVUxUX0xPRwotICAgICAgICBjb25maWcud2FybignQzEnLCBSRVNVTFRfTE9HKQotCi0K
LWRlZiBweXRlc3RfdW5jb25maWd1cmUoY29uZmlnKToKLSAgICByZXN1bHRsb2cgPSBnZXRhdHRy
KGNvbmZpZywgJ19yZXN1bHRsb2cnLCBOb25lKQotICAgIGlmIHJlc3VsdGxvZzoKLSAgICAgICAg
cmVzdWx0bG9nLmxvZ2ZpbGUuY2xvc2UoKQotICAgICAgICBkZWwgY29uZmlnLl9yZXN1bHRsb2cK
LSAgICAgICAgY29uZmlnLnBsdWdpbm1hbmFnZXIudW5yZWdpc3RlcihyZXN1bHRsb2cpCi0KLQot
ZGVmIGdlbmVyaWNfcGF0aChpdGVtKToKLSAgICBjaGFpbiA9IGl0ZW0ubGlzdGNoYWluKCkKLSAg
ICBncGF0aCA9IFtjaGFpblswXS5uYW1lXQotICAgIGZzcGF0aCA9IGNoYWluWzBdLmZzcGF0aAot
ICAgIGZzcGFydCA9IEZhbHNlCi0gICAgZm9yIG5vZGUgaW4gY2hhaW5bMTpdOgotICAgICAgICBu
ZXdmc3BhdGggPSBub2RlLmZzcGF0aAotICAgICAgICBpZiBuZXdmc3BhdGggPT0gZnNwYXRoOgot
ICAgICAgICAgICAgaWYgZnNwYXJ0OgotICAgICAgICAgICAgICAgIGdwYXRoLmFwcGVuZCgnOicp
Ci0gICAgICAgICAgICAgICAgZnNwYXJ0ID0gRmFsc2UKLSAgICAgICAgICAgIGVsc2U6Ci0gICAg
ICAgICAgICAgICAgZ3BhdGguYXBwZW5kKCcuJykKLSAgICAgICAgZWxzZToKLSAgICAgICAgICAg
IGdwYXRoLmFwcGVuZCgnLycpCi0gICAgICAgICAgICBmc3BhcnQgPSBUcnVlCi0gICAgICAgIG5h
bWUgPSBub2RlLm5hbWUKLSAgICAgICAgaWYgbmFtZVswXSBpbiAnKFsnOgotICAgICAgICAgICAg
Z3BhdGgucG9wKCkKLSAgICAgICAgZ3BhdGguYXBwZW5kKG5hbWUpCi0gICAgICAgIGZzcGF0aCA9
IG5ld2ZzcGF0aAotICAgIHJldHVybiAnJy5qb2luKGdwYXRoKQotCi0KLWNsYXNzIFJlc3VsdExv
ZyhvYmplY3QpOgotICAgIGRlZiBfX2luaXRfXyhzZWxmLCBjb25maWcsIGxvZ2ZpbGUpOgotICAg
ICAgICBzZWxmLmNvbmZpZyA9IGNvbmZpZwotICAgICAgICBzZWxmLmxvZ2ZpbGUgPSBsb2dmaWxl
ICAjIHByZWZlcmFibHkgbGluZSBidWZmZXJlZAotCi0gICAgZGVmIHdyaXRlX2xvZ19lbnRyeShz
ZWxmLCB0ZXN0cGF0aCwgbGV0dGVyY29kZSwgbG9uZ3JlcHIpOgotICAgICAgICBwcmludCgiJXMg
JXMiICUgKGxldHRlcmNvZGUsIHRlc3RwYXRoKSwgZmlsZT1zZWxmLmxvZ2ZpbGUpCi0gICAgICAg
IGZvciBsaW5lIGluIGxvbmdyZXByLnNwbGl0bGluZXMoKToKLSAgICAgICAgICAgIHByaW50KCIg
JXMiICUgbGluZSwgZmlsZT1zZWxmLmxvZ2ZpbGUpCi0KLSAgICBkZWYgbG9nX291dGNvbWUoc2Vs
ZiwgcmVwb3J0LCBsZXR0ZXJjb2RlLCBsb25ncmVwcik6Ci0gICAgICAgIHRlc3RwYXRoID0gZ2V0
YXR0cihyZXBvcnQsICdub2RlaWQnLCBOb25lKQotICAgICAgICBpZiB0ZXN0cGF0aCBpcyBOb25l
OgotICAgICAgICAgICAgdGVzdHBhdGggPSByZXBvcnQuZnNwYXRoCi0gICAgICAgIHNlbGYud3Jp
dGVfbG9nX2VudHJ5KHRlc3RwYXRoLCBsZXR0ZXJjb2RlLCBsb25ncmVwcikKLQotICAgIGRlZiBw
eXRlc3RfcnVudGVzdF9sb2dyZXBvcnQoc2VsZiwgcmVwb3J0KToKLSAgICAgICAgaWYgcmVwb3J0
LndoZW4gIT0gImNhbGwiIGFuZCByZXBvcnQucGFzc2VkOgotICAgICAgICAgICAgcmV0dXJuCi0g
ICAgICAgIHJlcyA9IHNlbGYuY29uZmlnLmhvb2sucHl0ZXN0X3JlcG9ydF90ZXN0c3RhdHVzKHJl
cG9ydD1yZXBvcnQpCi0gICAgICAgIGNvZGUgPSByZXNbMV0KLSAgICAgICAgaWYgY29kZSA9PSAn
eCc6Ci0gICAgICAgICAgICBsb25ncmVwciA9IHN0cihyZXBvcnQubG9uZ3JlcHIpCi0gICAgICAg
IGVsaWYgY29kZSA9PSAnWCc6Ci0gICAgICAgICAgICBsb25ncmVwciA9ICcnCi0gICAgICAgIGVs
aWYgcmVwb3J0LnBhc3NlZDoKLSAgICAgICAgICAgIGxvbmdyZXByID0gIiIKLSAgICAgICAgZWxp
ZiByZXBvcnQuZmFpbGVkOgotICAgICAgICAgICAgbG9uZ3JlcHIgPSBzdHIocmVwb3J0Lmxvbmdy
ZXByKQotICAgICAgICBlbGlmIHJlcG9ydC5za2lwcGVkOgotICAgICAgICAgICAgbG9uZ3JlcHIg
PSBzdHIocmVwb3J0LmxvbmdyZXByWzJdKQotICAgICAgICBzZWxmLmxvZ19vdXRjb21lKHJlcG9y
dCwgY29kZSwgbG9uZ3JlcHIpCi0KLSAgICBkZWYgcHl0ZXN0X2NvbGxlY3RyZXBvcnQoc2VsZiwg
cmVwb3J0KToKLSAgICAgICAgaWYgbm90IHJlcG9ydC5wYXNzZWQ6Ci0gICAgICAgICAgICBpZiBy
ZXBvcnQuZmFpbGVkOgotICAgICAgICAgICAgICAgIGNvZGUgPSAiRiIKLSAgICAgICAgICAgICAg
ICBsb25ncmVwciA9IHN0cihyZXBvcnQubG9uZ3JlcHIpCi0gICAgICAgICAgICBlbHNlOgotICAg
ICAgICAgICAgICAgIGFzc2VydCByZXBvcnQuc2tpcHBlZAotICAgICAgICAgICAgICAgIGNvZGUg
PSAiUyIKLSAgICAgICAgICAgICAgICBsb25ncmVwciA9ICIlczolZDogJXMiICUgcmVwb3J0Lmxv
bmdyZXByCi0gICAgICAgICAgICBzZWxmLmxvZ19vdXRjb21lKHJlcG9ydCwgY29kZSwgbG9uZ3Jl
cHIpCi0KLSAgICBkZWYgcHl0ZXN0X2ludGVybmFsZXJyb3Ioc2VsZiwgZXhjcmVwcik6Ci0gICAg
ICAgIHJlcHJjcmFzaCA9IGdldGF0dHIoZXhjcmVwciwgJ3JlcHJjcmFzaCcsIE5vbmUpCi0gICAg
ICAgIHBhdGggPSBnZXRhdHRyKHJlcHJjcmFzaCwgInBhdGgiLCBOb25lKQotICAgICAgICBpZiBw
YXRoIGlzIE5vbmU6Ci0gICAgICAgICAgICBwYXRoID0gImN3ZDolcyIgJSBweS5wYXRoLmxvY2Fs
KCkKLSAgICAgICAgc2VsZi53cml0ZV9sb2dfZW50cnkocGF0aCwgJyEnLCBzdHIoZXhjcmVwcikp
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9fcHl0ZXN0L3J1bm5lci5weSBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0
L19weXRlc3QvcnVubmVyLnB5CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlMDdlZDJh
MjQ4YjMyMjM5ZTA1NzM2MjM0MDcxOGI0NTIxN2Q3Y2YwLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L19weXRlc3QvcnVubmVyLnB5Cisr
KyAvZGV2L251bGwKQEAgLTEsNTA2ICswLDAgQEAKLSIiIiBiYXNpYyBjb2xsZWN0IGFuZCBydW50
ZXN0IHByb3RvY29sIGltcGxlbWVudGF0aW9ucyAiIiIKLWZyb20gX19mdXR1cmVfXyBpbXBvcnQg
YWJzb2x1dGVfaW1wb3J0LCBkaXZpc2lvbiwgcHJpbnRfZnVuY3Rpb24KLQotaW1wb3J0IGJkYgot
aW1wb3J0IG9zCi1pbXBvcnQgc3lzCi1mcm9tIHRpbWUgaW1wb3J0IHRpbWUKLQotaW1wb3J0IHB5
Ci1mcm9tIF9weXRlc3QuX2NvZGUuY29kZSBpbXBvcnQgVGVybWluYWxSZXByLCBFeGNlcHRpb25J
bmZvCi1mcm9tIF9weXRlc3Qub3V0Y29tZXMgaW1wb3J0IHNraXAsIFNraXBwZWQsIFRFU1RfT1VU
Q09NRQotCi0jCi0jIHB5dGVzdCBwbHVnaW4gaG9va3MKLQotCi1kZWYgcHl0ZXN0X2FkZG9wdGlv
bihwYXJzZXIpOgotICAgIGdyb3VwID0gcGFyc2VyLmdldGdyb3VwKCJ0ZXJtaW5hbCByZXBvcnRp
bmciLCAicmVwb3J0aW5nIiwgYWZ0ZXI9ImdlbmVyYWwiKQotICAgIGdyb3VwLmFkZG9wdGlvbign
LS1kdXJhdGlvbnMnLAotICAgICAgICAgICAgICAgICAgICBhY3Rpb249InN0b3JlIiwgdHlwZT1p
bnQsIGRlZmF1bHQ9Tm9uZSwgbWV0YXZhcj0iTiIsCi0gICAgICAgICAgICAgICAgICAgIGhlbHA9
InNob3cgTiBzbG93ZXN0IHNldHVwL3Rlc3QgZHVyYXRpb25zIChOPTAgZm9yIGFsbCkuIiksCi0K
LQotZGVmIHB5dGVzdF90ZXJtaW5hbF9zdW1tYXJ5KHRlcm1pbmFscmVwb3J0ZXIpOgotICAgIGR1
cmF0aW9ucyA9IHRlcm1pbmFscmVwb3J0ZXIuY29uZmlnLm9wdGlvbi5kdXJhdGlvbnMKLSAgICBp
ZiBkdXJhdGlvbnMgaXMgTm9uZToKLSAgICAgICAgcmV0dXJuCi0gICAgdHIgPSB0ZXJtaW5hbHJl
cG9ydGVyCi0gICAgZGxpc3QgPSBbXQotICAgIGZvciByZXBsaXN0IGluIHRyLnN0YXRzLnZhbHVl
cygpOgotICAgICAgICBmb3IgcmVwIGluIHJlcGxpc3Q6Ci0gICAgICAgICAgICBpZiBoYXNhdHRy
KHJlcCwgJ2R1cmF0aW9uJyk6Ci0gICAgICAgICAgICAgICAgZGxpc3QuYXBwZW5kKHJlcCkKLSAg
ICBpZiBub3QgZGxpc3Q6Ci0gICAgICAgIHJldHVybgotICAgIGRsaXN0LnNvcnQoa2V5PWxhbWJk
YSB4OiB4LmR1cmF0aW9uKQotICAgIGRsaXN0LnJldmVyc2UoKQotICAgIGlmIG5vdCBkdXJhdGlv
bnM6Ci0gICAgICAgIHRyLndyaXRlX3NlcCgiPSIsICJzbG93ZXN0IHRlc3QgZHVyYXRpb25zIikK
LSAgICBlbHNlOgotICAgICAgICB0ci53cml0ZV9zZXAoIj0iLCAic2xvd2VzdCAlcyB0ZXN0IGR1
cmF0aW9ucyIgJSBkdXJhdGlvbnMpCi0gICAgICAgIGRsaXN0ID0gZGxpc3RbOmR1cmF0aW9uc10K
LQotICAgIGZvciByZXAgaW4gZGxpc3Q6Ci0gICAgICAgIG5vZGVpZCA9IHJlcC5ub2RlaWQucmVw
bGFjZSgiOjooKTo6IiwgIjo6IikKLSAgICAgICAgdHIud3JpdGVfbGluZSgiJTAyLjJmcyAlLThz
ICVzIiAlCi0gICAgICAgICAgICAgICAgICAgICAgKHJlcC5kdXJhdGlvbiwgcmVwLndoZW4sIG5v
ZGVpZCkpCi0KLQotZGVmIHB5dGVzdF9zZXNzaW9uc3RhcnQoc2Vzc2lvbik6Ci0gICAgc2Vzc2lv
bi5fc2V0dXBzdGF0ZSA9IFNldHVwU3RhdGUoKQotCi0KLWRlZiBweXRlc3Rfc2Vzc2lvbmZpbmlz
aChzZXNzaW9uKToKLSAgICBzZXNzaW9uLl9zZXR1cHN0YXRlLnRlYXJkb3duX2FsbCgpCi0KLQot
ZGVmIHB5dGVzdF9ydW50ZXN0X3Byb3RvY29sKGl0ZW0sIG5leHRpdGVtKToKLSAgICBpdGVtLmlo
b29rLnB5dGVzdF9ydW50ZXN0X2xvZ3N0YXJ0KAotICAgICAgICBub2RlaWQ9aXRlbS5ub2RlaWQs
IGxvY2F0aW9uPWl0ZW0ubG9jYXRpb24sCi0gICAgKQotICAgIHJ1bnRlc3Rwcm90b2NvbChpdGVt
LCBuZXh0aXRlbT1uZXh0aXRlbSkKLSAgICByZXR1cm4gVHJ1ZQotCi0KLWRlZiBydW50ZXN0cHJv
dG9jb2woaXRlbSwgbG9nPVRydWUsIG5leHRpdGVtPU5vbmUpOgotICAgIGhhc3JlcXVlc3QgPSBo
YXNhdHRyKGl0ZW0sICJfcmVxdWVzdCIpCi0gICAgaWYgaGFzcmVxdWVzdCBhbmQgbm90IGl0ZW0u
X3JlcXVlc3Q6Ci0gICAgICAgIGl0ZW0uX2luaXRyZXF1ZXN0KCkKLSAgICByZXAgPSBjYWxsX2Fu
ZF9yZXBvcnQoaXRlbSwgInNldHVwIiwgbG9nKQotICAgIHJlcG9ydHMgPSBbcmVwXQotICAgIGlm
IHJlcC5wYXNzZWQ6Ci0gICAgICAgIGlmIGl0ZW0uY29uZmlnLm9wdGlvbi5zZXR1cHNob3c6Ci0g
ICAgICAgICAgICBzaG93X3Rlc3RfaXRlbShpdGVtKQotICAgICAgICBpZiBub3QgaXRlbS5jb25m
aWcub3B0aW9uLnNldHVwb25seToKLSAgICAgICAgICAgIHJlcG9ydHMuYXBwZW5kKGNhbGxfYW5k
X3JlcG9ydChpdGVtLCAiY2FsbCIsIGxvZykpCi0gICAgcmVwb3J0cy5hcHBlbmQoY2FsbF9hbmRf
cmVwb3J0KGl0ZW0sICJ0ZWFyZG93biIsIGxvZywKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgbmV4dGl0ZW09bmV4dGl0ZW0pKQotICAgICMgYWZ0ZXIgYWxsIHRlYXJkb3duIGhv
b2tzIGhhdmUgYmVlbiBjYWxsZWQKLSAgICAjIHdhbnQgZnVuY2FyZ3MgYW5kIHJlcXVlc3QgaW5m
byB0byBnbyBhd2F5Ci0gICAgaWYgaGFzcmVxdWVzdDoKLSAgICAgICAgaXRlbS5fcmVxdWVzdCA9
IEZhbHNlCi0gICAgICAgIGl0ZW0uZnVuY2FyZ3MgPSBOb25lCi0gICAgcmV0dXJuIHJlcG9ydHMK
LQotCi1kZWYgc2hvd190ZXN0X2l0ZW0oaXRlbSk6Ci0gICAgIiIiU2hvdyB0ZXN0IGZ1bmN0aW9u
LCBwYXJhbWV0ZXJzIGFuZCB0aGUgZml4dHVyZXMgb2YgdGhlIHRlc3QgaXRlbS4iIiIKLSAgICB0
dyA9IGl0ZW0uY29uZmlnLmdldF90ZXJtaW5hbF93cml0ZXIoKQotICAgIHR3LmxpbmUoKQotICAg
IHR3LndyaXRlKCcgJyAqIDgpCi0gICAgdHcud3JpdGUoaXRlbS5fbm9kZWlkKQotICAgIHVzZWRf
Zml4dHVyZXMgPSBzb3J0ZWQoaXRlbS5fZml4dHVyZWluZm8ubmFtZTJmaXh0dXJlZGVmcy5rZXlz
KCkpCi0gICAgaWYgdXNlZF9maXh0dXJlczoKLSAgICAgICAgdHcud3JpdGUoJyAoZml4dHVyZXMg
dXNlZDogezB9KScuZm9ybWF0KCcsICcuam9pbih1c2VkX2ZpeHR1cmVzKSkpCi0KLQotZGVmIHB5
dGVzdF9ydW50ZXN0X3NldHVwKGl0ZW0pOgotICAgIF91cGRhdGVfY3VycmVudF90ZXN0X3Zhcihp
dGVtLCAnc2V0dXAnKQotICAgIGl0ZW0uc2Vzc2lvbi5fc2V0dXBzdGF0ZS5wcmVwYXJlKGl0ZW0p
Ci0KLQotZGVmIHB5dGVzdF9ydW50ZXN0X2NhbGwoaXRlbSk6Ci0gICAgX3VwZGF0ZV9jdXJyZW50
X3Rlc3RfdmFyKGl0ZW0sICdjYWxsJykKLSAgICB0cnk6Ci0gICAgICAgIGl0ZW0ucnVudGVzdCgp
Ci0gICAgZXhjZXB0IEV4Y2VwdGlvbjoKLSAgICAgICAgIyBTdG9yZSB0cmFjZSBpbmZvIHRvIGFs
bG93IHBvc3Rtb3J0ZW0gZGVidWdnaW5nCi0gICAgICAgIHR5cGUsIHZhbHVlLCB0YiA9IHN5cy5l
eGNfaW5mbygpCi0gICAgICAgIHRiID0gdGIudGJfbmV4dCAgIyBTa2lwICp0aGlzKiBmcmFtZQot
ICAgICAgICBzeXMubGFzdF90eXBlID0gdHlwZQotICAgICAgICBzeXMubGFzdF92YWx1ZSA9IHZh
bHVlCi0gICAgICAgIHN5cy5sYXN0X3RyYWNlYmFjayA9IHRiCi0gICAgICAgIGRlbCB0YiAgIyBH
ZXQgcmlkIG9mIGl0IGluIHRoaXMgbmFtZXNwYWNlCi0gICAgICAgIHJhaXNlCi0KLQotZGVmIHB5
dGVzdF9ydW50ZXN0X3RlYXJkb3duKGl0ZW0sIG5leHRpdGVtKToKLSAgICBfdXBkYXRlX2N1cnJl
bnRfdGVzdF92YXIoaXRlbSwgJ3RlYXJkb3duJykKLSAgICBpdGVtLnNlc3Npb24uX3NldHVwc3Rh
dGUudGVhcmRvd25fZXhhY3QoaXRlbSwgbmV4dGl0ZW0pCi0gICAgX3VwZGF0ZV9jdXJyZW50X3Rl
c3RfdmFyKGl0ZW0sIE5vbmUpCi0KLQotZGVmIF91cGRhdGVfY3VycmVudF90ZXN0X3ZhcihpdGVt
LCB3aGVuKToKLSAgICAiIiIKLSAgICBVcGRhdGUgUFlURVNUX0NVUlJFTlRfVEVTVCB0byByZWZs
ZWN0IHRoZSBjdXJyZW50IGl0ZW0gYW5kIHN0YWdlLgotCi0gICAgSWYgYGB3aGVuYGAgaXMgTm9u
ZSwgZGVsZXRlIFBZVEVTVF9DVVJSRU5UX1RFU1QgZnJvbSB0aGUgZW52aXJvbm1lbnQuCi0gICAg
IiIiCi0gICAgdmFyX25hbWUgPSAnUFlURVNUX0NVUlJFTlRfVEVTVCcKLSAgICBpZiB3aGVuOgot
ICAgICAgICB2YWx1ZSA9ICd7MH0gKHsxfSknLmZvcm1hdChpdGVtLm5vZGVpZCwgd2hlbikKLSAg
ICAgICAgIyBkb24ndCBhbGxvdyBudWxsIGJ5dGVzIG9uIGVudmlyb25tZW50IHZhcmlhYmxlcyAo
c2VlICMyNjQ0LCAjMjk1NykKLSAgICAgICAgdmFsdWUgPSB2YWx1ZS5yZXBsYWNlKCdceDAwJywg
JyhudWxsKScpCi0gICAgICAgIG9zLmVudmlyb25bdmFyX25hbWVdID0gdmFsdWUKLSAgICBlbHNl
OgotICAgICAgICBvcy5lbnZpcm9uLnBvcCh2YXJfbmFtZSkKLQotCi1kZWYgcHl0ZXN0X3JlcG9y
dF90ZXN0c3RhdHVzKHJlcG9ydCk6Ci0gICAgaWYgcmVwb3J0LndoZW4gaW4gKCJzZXR1cCIsICJ0
ZWFyZG93biIpOgotICAgICAgICBpZiByZXBvcnQuZmFpbGVkOgotICAgICAgICAgICAgIyAgICAg
IGNhdGVnb3J5LCBzaG9ydGxldHRlciwgdmVyYm9zZS13b3JkCi0gICAgICAgICAgICByZXR1cm4g
ImVycm9yIiwgIkUiLCAiRVJST1IiCi0gICAgICAgIGVsaWYgcmVwb3J0LnNraXBwZWQ6Ci0gICAg
ICAgICAgICByZXR1cm4gInNraXBwZWQiLCAicyIsICJTS0lQUEVEIgotICAgICAgICBlbHNlOgot
ICAgICAgICAgICAgcmV0dXJuICIiLCAiIiwgIiIKLQotCi0jCi0jIEltcGxlbWVudGF0aW9uCi0K
LWRlZiBjYWxsX2FuZF9yZXBvcnQoaXRlbSwgd2hlbiwgbG9nPVRydWUsICoqa3dkcyk6Ci0gICAg
Y2FsbCA9IGNhbGxfcnVudGVzdF9ob29rKGl0ZW0sIHdoZW4sICoqa3dkcykKLSAgICBob29rID0g
aXRlbS5paG9vawotICAgIHJlcG9ydCA9IGhvb2sucHl0ZXN0X3J1bnRlc3RfbWFrZXJlcG9ydChp
dGVtPWl0ZW0sIGNhbGw9Y2FsbCkKLSAgICBpZiBsb2c6Ci0gICAgICAgIGhvb2sucHl0ZXN0X3J1
bnRlc3RfbG9ncmVwb3J0KHJlcG9ydD1yZXBvcnQpCi0gICAgaWYgY2hlY2tfaW50ZXJhY3RpdmVf
ZXhjZXB0aW9uKGNhbGwsIHJlcG9ydCk6Ci0gICAgICAgIGhvb2sucHl0ZXN0X2V4Y2VwdGlvbl9p
bnRlcmFjdChub2RlPWl0ZW0sIGNhbGw9Y2FsbCwgcmVwb3J0PXJlcG9ydCkKLSAgICByZXR1cm4g
cmVwb3J0Ci0KLQotZGVmIGNoZWNrX2ludGVyYWN0aXZlX2V4Y2VwdGlvbihjYWxsLCByZXBvcnQp
OgotICAgIHJldHVybiBjYWxsLmV4Y2luZm8gYW5kIG5vdCAoCi0gICAgICAgIGhhc2F0dHIocmVw
b3J0LCAid2FzeGZhaWwiKSBvcgotICAgICAgICBjYWxsLmV4Y2luZm8uZXJyaXNpbnN0YW5jZShz
a2lwLkV4Y2VwdGlvbikgb3IKLSAgICAgICAgY2FsbC5leGNpbmZvLmVycmlzaW5zdGFuY2UoYmRi
LkJkYlF1aXQpKQotCi0KLWRlZiBjYWxsX3J1bnRlc3RfaG9vayhpdGVtLCB3aGVuLCAqKmt3ZHMp
OgotICAgIGhvb2tuYW1lID0gInB5dGVzdF9ydW50ZXN0XyIgKyB3aGVuCi0gICAgaWhvb2sgPSBn
ZXRhdHRyKGl0ZW0uaWhvb2ssIGhvb2tuYW1lKQotICAgIHJldHVybiBDYWxsSW5mbyhsYW1iZGE6
IGlob29rKGl0ZW09aXRlbSwgKiprd2RzKSwgd2hlbj13aGVuKQotCi0KLWNsYXNzIENhbGxJbmZv
OgotICAgICIiIiBSZXN1bHQvRXhjZXB0aW9uIGluZm8gYSBmdW5jdGlvbiBpbnZvY2F0aW9uLiAi
IiIKLSAgICAjOiBOb25lIG9yIEV4Y2VwdGlvbkluZm8gb2JqZWN0LgotICAgIGV4Y2luZm8gPSBO
b25lCi0KLSAgICBkZWYgX19pbml0X18oc2VsZiwgZnVuYywgd2hlbik6Ci0gICAgICAgICM6IGNv
bnRleHQgb2YgaW52b2NhdGlvbjogb25lIG9mICJzZXR1cCIsICJjYWxsIiwKLSAgICAgICAgIzog
InRlYXJkb3duIiwgIm1lbW9jb2xsZWN0IgotICAgICAgICBzZWxmLndoZW4gPSB3aGVuCi0gICAg
ICAgIHNlbGYuc3RhcnQgPSB0aW1lKCkKLSAgICAgICAgdHJ5OgotICAgICAgICAgICAgc2VsZi5y
ZXN1bHQgPSBmdW5jKCkKLSAgICAgICAgZXhjZXB0IEtleWJvYXJkSW50ZXJydXB0OgotICAgICAg
ICAgICAgc2VsZi5zdG9wID0gdGltZSgpCi0gICAgICAgICAgICByYWlzZQotICAgICAgICBleGNl
cHQ6ICAjIG5vcWEKLSAgICAgICAgICAgIHNlbGYuZXhjaW5mbyA9IEV4Y2VwdGlvbkluZm8oKQot
ICAgICAgICBzZWxmLnN0b3AgPSB0aW1lKCkKLQotICAgIGRlZiBfX3JlcHJfXyhzZWxmKToKLSAg
ICAgICAgaWYgc2VsZi5leGNpbmZvOgotICAgICAgICAgICAgc3RhdHVzID0gImV4Y2VwdGlvbjog
JXMiICUgc3RyKHNlbGYuZXhjaW5mby52YWx1ZSkKLSAgICAgICAgZWxzZToKLSAgICAgICAgICAg
IHN0YXR1cyA9ICJyZXN1bHQ6ICVyIiAlIChzZWxmLnJlc3VsdCwpCi0gICAgICAgIHJldHVybiAi
PENhbGxJbmZvIHdoZW49JXIgJXM+IiAlIChzZWxmLndoZW4sIHN0YXR1cykKLQotCi1kZWYgZ2V0
c2xhdmVpbmZvbGluZShub2RlKToKLSAgICB0cnk6Ci0gICAgICAgIHJldHVybiBub2RlLl9zbGF2
ZWluZm9jYWNoZQotICAgIGV4Y2VwdCBBdHRyaWJ1dGVFcnJvcjoKLSAgICAgICAgZCA9IG5vZGUu
c2xhdmVpbmZvCi0gICAgICAgIHZlciA9ICIlcy4lcy4lcyIgJSBkWyd2ZXJzaW9uX2luZm8nXVs6
M10KLSAgICAgICAgbm9kZS5fc2xhdmVpbmZvY2FjaGUgPSBzID0gIlslc10gJXMgLS0gUHl0aG9u
ICVzICVzIiAlICgKLSAgICAgICAgICAgIGRbJ2lkJ10sIGRbJ3N5c3BsYXRmb3JtJ10sIHZlciwg
ZFsnZXhlY3V0YWJsZSddKQotICAgICAgICByZXR1cm4gcwotCi0KLWNsYXNzIEJhc2VSZXBvcnQo
b2JqZWN0KToKLQotICAgIGRlZiBfX2luaXRfXyhzZWxmLCAqKmt3KToKLSAgICAgICAgc2VsZi5f
X2RpY3RfXy51cGRhdGUoa3cpCi0KLSAgICBkZWYgdG90ZXJtaW5hbChzZWxmLCBvdXQpOgotICAg
ICAgICBpZiBoYXNhdHRyKHNlbGYsICdub2RlJyk6Ci0gICAgICAgICAgICBvdXQubGluZShnZXRz
bGF2ZWluZm9saW5lKHNlbGYubm9kZSkpCi0KLSAgICAgICAgbG9uZ3JlcHIgPSBzZWxmLmxvbmdy
ZXByCi0gICAgICAgIGlmIGxvbmdyZXByIGlzIE5vbmU6Ci0gICAgICAgICAgICByZXR1cm4KLQot
ICAgICAgICBpZiBoYXNhdHRyKGxvbmdyZXByLCAndG90ZXJtaW5hbCcpOgotICAgICAgICAgICAg
bG9uZ3JlcHIudG90ZXJtaW5hbChvdXQpCi0gICAgICAgIGVsc2U6Ci0gICAgICAgICAgICB0cnk6
Ci0gICAgICAgICAgICAgICAgb3V0LmxpbmUobG9uZ3JlcHIpCi0gICAgICAgICAgICBleGNlcHQg
VW5pY29kZUVuY29kZUVycm9yOgotICAgICAgICAgICAgICAgIG91dC5saW5lKCI8dW5wcmludGFi
bGUgbG9uZ3JlcHI+IikKLQotICAgIGRlZiBnZXRfc2VjdGlvbnMoc2VsZiwgcHJlZml4KToKLSAg
ICAgICAgZm9yIG5hbWUsIGNvbnRlbnQgaW4gc2VsZi5zZWN0aW9uczoKLSAgICAgICAgICAgIGlm
IG5hbWUuc3RhcnRzd2l0aChwcmVmaXgpOgotICAgICAgICAgICAgICAgIHlpZWxkIHByZWZpeCwg
Y29udGVudAotCi0gICAgQHByb3BlcnR5Ci0gICAgZGVmIGxvbmdyZXBydGV4dChzZWxmKToKLSAg
ICAgICAgIiIiCi0gICAgICAgIFJlYWQtb25seSBwcm9wZXJ0eSB0aGF0IHJldHVybnMgdGhlIGZ1
bGwgc3RyaW5nIHJlcHJlc2VudGF0aW9uCi0gICAgICAgIG9mIGBgbG9uZ3JlcHJgYC4KLQotICAg
ICAgICAuLiB2ZXJzaW9uYWRkZWQ6OiAzLjAKLSAgICAgICAgIiIiCi0gICAgICAgIHR3ID0gcHku
aW8uVGVybWluYWxXcml0ZXIoc3RyaW5naW89VHJ1ZSkKLSAgICAgICAgdHcuaGFzbWFya3VwID0g
RmFsc2UKLSAgICAgICAgc2VsZi50b3Rlcm1pbmFsKHR3KQotICAgICAgICBleGMgPSB0dy5zdHJp
bmdpby5nZXR2YWx1ZSgpCi0gICAgICAgIHJldHVybiBleGMuc3RyaXAoKQotCi0gICAgQHByb3Bl
cnR5Ci0gICAgZGVmIGNhcHN0ZG91dChzZWxmKToKLSAgICAgICAgIiIiUmV0dXJuIGNhcHR1cmVk
IHRleHQgZnJvbSBzdGRvdXQsIGlmIGNhcHR1cmluZyBpcyBlbmFibGVkCi0KLSAgICAgICAgLi4g
dmVyc2lvbmFkZGVkOjogMy4wCi0gICAgICAgICIiIgotICAgICAgICByZXR1cm4gJycuam9pbihj
b250ZW50IGZvciAocHJlZml4LCBjb250ZW50KSBpbiBzZWxmLmdldF9zZWN0aW9ucygnQ2FwdHVy
ZWQgc3Rkb3V0JykpCi0KLSAgICBAcHJvcGVydHkKLSAgICBkZWYgY2Fwc3RkZXJyKHNlbGYpOgot
ICAgICAgICAiIiJSZXR1cm4gY2FwdHVyZWQgdGV4dCBmcm9tIHN0ZGVyciwgaWYgY2FwdHVyaW5n
IGlzIGVuYWJsZWQKLQotICAgICAgICAuLiB2ZXJzaW9uYWRkZWQ6OiAzLjAKLSAgICAgICAgIiIi
Ci0gICAgICAgIHJldHVybiAnJy5qb2luKGNvbnRlbnQgZm9yIChwcmVmaXgsIGNvbnRlbnQpIGlu
IHNlbGYuZ2V0X3NlY3Rpb25zKCdDYXB0dXJlZCBzdGRlcnInKSkKLQotICAgIHBhc3NlZCA9IHBy
b3BlcnR5KGxhbWJkYSB4OiB4Lm91dGNvbWUgPT0gInBhc3NlZCIpCi0gICAgZmFpbGVkID0gcHJv
cGVydHkobGFtYmRhIHg6IHgub3V0Y29tZSA9PSAiZmFpbGVkIikKLSAgICBza2lwcGVkID0gcHJv
cGVydHkobGFtYmRhIHg6IHgub3V0Y29tZSA9PSAic2tpcHBlZCIpCi0KLSAgICBAcHJvcGVydHkK
LSAgICBkZWYgZnNwYXRoKHNlbGYpOgotICAgICAgICByZXR1cm4gc2VsZi5ub2RlaWQuc3BsaXQo
Ijo6IilbMF0KLQotCi1kZWYgcHl0ZXN0X3J1bnRlc3RfbWFrZXJlcG9ydChpdGVtLCBjYWxsKToK
LSAgICB3aGVuID0gY2FsbC53aGVuCi0gICAgZHVyYXRpb24gPSBjYWxsLnN0b3AgLSBjYWxsLnN0
YXJ0Ci0gICAga2V5d29yZHMgPSBkaWN0KFsoeCwgMSkgZm9yIHggaW4gaXRlbS5rZXl3b3Jkc10p
Ci0gICAgZXhjaW5mbyA9IGNhbGwuZXhjaW5mbwotICAgIHNlY3Rpb25zID0gW10KLSAgICBpZiBu
b3QgY2FsbC5leGNpbmZvOgotICAgICAgICBvdXRjb21lID0gInBhc3NlZCIKLSAgICAgICAgbG9u
Z3JlcHIgPSBOb25lCi0gICAgZWxzZToKLSAgICAgICAgaWYgbm90IGlzaW5zdGFuY2UoZXhjaW5m
bywgRXhjZXB0aW9uSW5mbyk6Ci0gICAgICAgICAgICBvdXRjb21lID0gImZhaWxlZCIKLSAgICAg
ICAgICAgIGxvbmdyZXByID0gZXhjaW5mbwotICAgICAgICBlbGlmIGV4Y2luZm8uZXJyaXNpbnN0
YW5jZShza2lwLkV4Y2VwdGlvbik6Ci0gICAgICAgICAgICBvdXRjb21lID0gInNraXBwZWQiCi0g
ICAgICAgICAgICByID0gZXhjaW5mby5fZ2V0cmVwcmNyYXNoKCkKLSAgICAgICAgICAgIGxvbmdy
ZXByID0gKHN0cihyLnBhdGgpLCByLmxpbmVubywgci5tZXNzYWdlKQotICAgICAgICBlbHNlOgot
ICAgICAgICAgICAgb3V0Y29tZSA9ICJmYWlsZWQiCi0gICAgICAgICAgICBpZiBjYWxsLndoZW4g
PT0gImNhbGwiOgotICAgICAgICAgICAgICAgIGxvbmdyZXByID0gaXRlbS5yZXByX2ZhaWx1cmUo
ZXhjaW5mbykKLSAgICAgICAgICAgIGVsc2U6ICAjIGV4Y2VwdGlvbiBpbiBzZXR1cCBvciB0ZWFy
ZG93bgotICAgICAgICAgICAgICAgIGxvbmdyZXByID0gaXRlbS5fcmVwcl9mYWlsdXJlX3B5KGV4
Y2luZm8sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
c3R5bGU9aXRlbS5jb25maWcub3B0aW9uLnRic3R5bGUpCi0gICAgZm9yIHJ3aGVuLCBrZXksIGNv
bnRlbnQgaW4gaXRlbS5fcmVwb3J0X3NlY3Rpb25zOgotICAgICAgICBzZWN0aW9ucy5hcHBlbmQo
KCJDYXB0dXJlZCAlcyAlcyIgJSAoa2V5LCByd2hlbiksIGNvbnRlbnQpKQotICAgIHJldHVybiBU
ZXN0UmVwb3J0KGl0ZW0ubm9kZWlkLCBpdGVtLmxvY2F0aW9uLAotICAgICAgICAgICAgICAgICAg
ICAgIGtleXdvcmRzLCBvdXRjb21lLCBsb25ncmVwciwgd2hlbiwKLSAgICAgICAgICAgICAgICAg
ICAgICBzZWN0aW9ucywgZHVyYXRpb24pCi0KLQotY2xhc3MgVGVzdFJlcG9ydChCYXNlUmVwb3J0
KToKLSAgICAiIiIgQmFzaWMgdGVzdCByZXBvcnQgb2JqZWN0IChhbHNvIHVzZWQgZm9yIHNldHVw
IGFuZCB0ZWFyZG93biBjYWxscyBpZgotICAgIHRoZXkgZmFpbCkuCi0gICAgIiIiCi0KLSAgICBk
ZWYgX19pbml0X18oc2VsZiwgbm9kZWlkLCBsb2NhdGlvbiwga2V5d29yZHMsIG91dGNvbWUsCi0g
ICAgICAgICAgICAgICAgIGxvbmdyZXByLCB3aGVuLCBzZWN0aW9ucz0oKSwgZHVyYXRpb249MCwg
KipleHRyYSk6Ci0gICAgICAgICM6IG5vcm1hbGl6ZWQgY29sbGVjdGlvbiBub2RlIGlkCi0gICAg
ICAgIHNlbGYubm9kZWlkID0gbm9kZWlkCi0KLSAgICAgICAgIzogYSAoZmlsZXN5c3RlbXBhdGgs
IGxpbmVubywgZG9tYWluaW5mbykgdHVwbGUgaW5kaWNhdGluZyB0aGUKLSAgICAgICAgIzogYWN0
dWFsIGxvY2F0aW9uIG9mIGEgdGVzdCBpdGVtIC0gaXQgbWlnaHQgYmUgZGlmZmVyZW50IGZyb20g
dGhlCi0gICAgICAgICM6IGNvbGxlY3RlZCBvbmUgZS5nLiBpZiBhIG1ldGhvZCBpcyBpbmhlcml0
ZWQgZnJvbSBhIGRpZmZlcmVudCBtb2R1bGUuCi0gICAgICAgIHNlbGYubG9jYXRpb24gPSBsb2Nh
dGlvbgotCi0gICAgICAgICM6IGEgbmFtZSAtPiB2YWx1ZSBkaWN0aW9uYXJ5IGNvbnRhaW5pbmcg
YWxsIGtleXdvcmRzIGFuZAotICAgICAgICAjOiBtYXJrZXJzIGFzc29jaWF0ZWQgd2l0aCBhIHRl
c3QgaW52b2NhdGlvbi4KLSAgICAgICAgc2VsZi5rZXl3b3JkcyA9IGtleXdvcmRzCi0KLSAgICAg
ICAgIzogdGVzdCBvdXRjb21lLCBhbHdheXMgb25lIG9mICJwYXNzZWQiLCAiZmFpbGVkIiwgInNr
aXBwZWQiLgotICAgICAgICBzZWxmLm91dGNvbWUgPSBvdXRjb21lCi0KLSAgICAgICAgIzogTm9u
ZSBvciBhIGZhaWx1cmUgcmVwcmVzZW50YXRpb24uCi0gICAgICAgIHNlbGYubG9uZ3JlcHIgPSBs
b25ncmVwcgotCi0gICAgICAgICM6IG9uZSBvZiAnc2V0dXAnLCAnY2FsbCcsICd0ZWFyZG93bicg
dG8gaW5kaWNhdGUgcnVudGVzdCBwaGFzZS4KLSAgICAgICAgc2VsZi53aGVuID0gd2hlbgotCi0g
ICAgICAgICM6IGxpc3Qgb2YgcGFpcnMgYGAoc3RyLCBzdHIpYGAgb2YgZXh0cmEgaW5mb3JtYXRp
b24gd2hpY2ggbmVlZHMgdG8KLSAgICAgICAgIzogbWFyc2hhbGxhYmxlLiBVc2VkIGJ5IHB5dGVz
dCB0byBhZGQgY2FwdHVyZWQgdGV4dAotICAgICAgICAjOiBmcm9tIGBgc3Rkb3V0YGAgYW5kIGBg
c3RkZXJyYGAsIGJ1dCBtYXkgYmUgdXNlZCBieSBvdGhlciBwbHVnaW5zCi0gICAgICAgICM6IHRv
IGFkZCBhcmJpdHJhcnkgaW5mb3JtYXRpb24gdG8gcmVwb3J0cy4KLSAgICAgICAgc2VsZi5zZWN0
aW9ucyA9IGxpc3Qoc2VjdGlvbnMpCi0KLSAgICAgICAgIzogdGltZSBpdCB0b29rIHRvIHJ1biBq
dXN0IHRoZSB0ZXN0Ci0gICAgICAgIHNlbGYuZHVyYXRpb24gPSBkdXJhdGlvbgotCi0gICAgICAg
IHNlbGYuX19kaWN0X18udXBkYXRlKGV4dHJhKQotCi0gICAgZGVmIF9fcmVwcl9fKHNlbGYpOgot
ICAgICAgICByZXR1cm4gIjxUZXN0UmVwb3J0ICVyIHdoZW49JXIgb3V0Y29tZT0lcj4iICUgKAot
ICAgICAgICAgICAgc2VsZi5ub2RlaWQsIHNlbGYud2hlbiwgc2VsZi5vdXRjb21lKQotCi0KLWNs
YXNzIFRlYXJkb3duRXJyb3JSZXBvcnQoQmFzZVJlcG9ydCk6Ci0gICAgb3V0Y29tZSA9ICJmYWls
ZWQiCi0gICAgd2hlbiA9ICJ0ZWFyZG93biIKLQotICAgIGRlZiBfX2luaXRfXyhzZWxmLCBsb25n
cmVwciwgKipleHRyYSk6Ci0gICAgICAgIHNlbGYubG9uZ3JlcHIgPSBsb25ncmVwcgotICAgICAg
ICBzZWxmLnNlY3Rpb25zID0gW10KLSAgICAgICAgc2VsZi5fX2RpY3RfXy51cGRhdGUoZXh0cmEp
Ci0KLQotZGVmIHB5dGVzdF9tYWtlX2NvbGxlY3RfcmVwb3J0KGNvbGxlY3Rvcik6Ci0gICAgY2Fs
bCA9IENhbGxJbmZvKAotICAgICAgICBsYW1iZGE6IGxpc3QoY29sbGVjdG9yLmNvbGxlY3QoKSks
Ci0gICAgICAgICdjb2xsZWN0JykKLSAgICBsb25ncmVwciA9IE5vbmUKLSAgICBpZiBub3QgY2Fs
bC5leGNpbmZvOgotICAgICAgICBvdXRjb21lID0gInBhc3NlZCIKLSAgICBlbHNlOgotICAgICAg
ICBmcm9tIF9weXRlc3QgaW1wb3J0IG5vc2UKLSAgICAgICAgc2tpcF9leGNlcHRpb25zID0gKFNr
aXBwZWQsKSArIG5vc2UuZ2V0X3NraXBfZXhjZXB0aW9ucygpCi0gICAgICAgIGlmIGNhbGwuZXhj
aW5mby5lcnJpc2luc3RhbmNlKHNraXBfZXhjZXB0aW9ucyk6Ci0gICAgICAgICAgICBvdXRjb21l
ID0gInNraXBwZWQiCi0gICAgICAgICAgICByID0gY29sbGVjdG9yLl9yZXByX2ZhaWx1cmVfcHko
Y2FsbC5leGNpbmZvLCAibGluZSIpLnJlcHJjcmFzaAotICAgICAgICAgICAgbG9uZ3JlcHIgPSAo
c3RyKHIucGF0aCksIHIubGluZW5vLCByLm1lc3NhZ2UpCi0gICAgICAgIGVsc2U6Ci0gICAgICAg
ICAgICBvdXRjb21lID0gImZhaWxlZCIKLSAgICAgICAgICAgIGVycm9yaW5mbyA9IGNvbGxlY3Rv
ci5yZXByX2ZhaWx1cmUoY2FsbC5leGNpbmZvKQotICAgICAgICAgICAgaWYgbm90IGhhc2F0dHIo
ZXJyb3JpbmZvLCAidG90ZXJtaW5hbCIpOgotICAgICAgICAgICAgICAgIGVycm9yaW5mbyA9IENv
bGxlY3RFcnJvclJlcHIoZXJyb3JpbmZvKQotICAgICAgICAgICAgbG9uZ3JlcHIgPSBlcnJvcmlu
Zm8KLSAgICByZXAgPSBDb2xsZWN0UmVwb3J0KGNvbGxlY3Rvci5ub2RlaWQsIG91dGNvbWUsIGxv
bmdyZXByLAotICAgICAgICAgICAgICAgICAgICAgICAgZ2V0YXR0cihjYWxsLCAncmVzdWx0Jywg
Tm9uZSkpCi0gICAgcmVwLmNhbGwgPSBjYWxsICAjIHNlZSBjb2xsZWN0X29uZV9ub2RlCi0gICAg
cmV0dXJuIHJlcAotCi0KLWNsYXNzIENvbGxlY3RSZXBvcnQoQmFzZVJlcG9ydCk6Ci0gICAgZGVm
IF9faW5pdF9fKHNlbGYsIG5vZGVpZCwgb3V0Y29tZSwgbG9uZ3JlcHIsIHJlc3VsdCwKLSAgICAg
ICAgICAgICAgICAgc2VjdGlvbnM9KCksICoqZXh0cmEpOgotICAgICAgICBzZWxmLm5vZGVpZCA9
IG5vZGVpZAotICAgICAgICBzZWxmLm91dGNvbWUgPSBvdXRjb21lCi0gICAgICAgIHNlbGYubG9u
Z3JlcHIgPSBsb25ncmVwcgotICAgICAgICBzZWxmLnJlc3VsdCA9IHJlc3VsdCBvciBbXQotICAg
ICAgICBzZWxmLnNlY3Rpb25zID0gbGlzdChzZWN0aW9ucykKLSAgICAgICAgc2VsZi5fX2RpY3Rf
Xy51cGRhdGUoZXh0cmEpCi0KLSAgICBAcHJvcGVydHkKLSAgICBkZWYgbG9jYXRpb24oc2VsZik6
Ci0gICAgICAgIHJldHVybiAoc2VsZi5mc3BhdGgsIE5vbmUsIHNlbGYuZnNwYXRoKQotCi0gICAg
ZGVmIF9fcmVwcl9fKHNlbGYpOgotICAgICAgICByZXR1cm4gIjxDb2xsZWN0UmVwb3J0ICVyIGxl
bnJlc3VsdD0lcyBvdXRjb21lPSVyPiIgJSAoCi0gICAgICAgICAgICBzZWxmLm5vZGVpZCwgbGVu
KHNlbGYucmVzdWx0KSwgc2VsZi5vdXRjb21lKQotCi0KLWNsYXNzIENvbGxlY3RFcnJvclJlcHIo
VGVybWluYWxSZXByKToKLSAgICBkZWYgX19pbml0X18oc2VsZiwgbXNnKToKLSAgICAgICAgc2Vs
Zi5sb25ncmVwciA9IG1zZwotCi0gICAgZGVmIHRvdGVybWluYWwoc2VsZiwgb3V0KToKLSAgICAg
ICAgb3V0LmxpbmUoc2VsZi5sb25ncmVwciwgcmVkPVRydWUpCi0KLQotY2xhc3MgU2V0dXBTdGF0
ZShvYmplY3QpOgotICAgICIiIiBzaGFyZWQgc3RhdGUgZm9yIHNldHRpbmcgdXAvdGVhcmluZyBk
b3duIHRlc3QgaXRlbXMgb3IgY29sbGVjdG9ycy4gIiIiCi0KLSAgICBkZWYgX19pbml0X18oc2Vs
Zik6Ci0gICAgICAgIHNlbGYuc3RhY2sgPSBbXQotICAgICAgICBzZWxmLl9maW5hbGl6ZXJzID0g
e30KLQotICAgIGRlZiBhZGRmaW5hbGl6ZXIoc2VsZiwgZmluYWxpemVyLCBjb2xpdGVtKToKLSAg
ICAgICAgIiIiIGF0dGFjaCBhIGZpbmFsaXplciB0byB0aGUgZ2l2ZW4gY29saXRlbS4KLSAgICAg
ICAgaWYgY29saXRlbSBpcyBOb25lLCB0aGlzIHdpbGwgYWRkIGEgZmluYWxpemVyIHRoYXQKLSAg
ICAgICAgaXMgY2FsbGVkIGF0IHRoZSBlbmQgb2YgdGVhcmRvd25fYWxsKCkuCi0gICAgICAgICIi
IgotICAgICAgICBhc3NlcnQgY29saXRlbSBhbmQgbm90IGlzaW5zdGFuY2UoY29saXRlbSwgdHVw
bGUpCi0gICAgICAgIGFzc2VydCBjYWxsYWJsZShmaW5hbGl6ZXIpCi0gICAgICAgICMgYXNzZXJ0
IGNvbGl0ZW0gaW4gc2VsZi5zdGFjayAgIyBzb21lIHVuaXQgdGVzdHMgZG9uJ3Qgc2V0dXAgc3Rh
Y2sgOi8KLSAgICAgICAgc2VsZi5fZmluYWxpemVycy5zZXRkZWZhdWx0KGNvbGl0ZW0sIFtdKS5h
cHBlbmQoZmluYWxpemVyKQotCi0gICAgZGVmIF9wb3BfYW5kX3RlYXJkb3duKHNlbGYpOgotICAg
ICAgICBjb2xpdGVtID0gc2VsZi5zdGFjay5wb3AoKQotICAgICAgICBzZWxmLl90ZWFyZG93bl93
aXRoX2ZpbmFsaXphdGlvbihjb2xpdGVtKQotCi0gICAgZGVmIF9jYWxsZmluYWxpemVycyhzZWxm
LCBjb2xpdGVtKToKLSAgICAgICAgZmluYWxpemVycyA9IHNlbGYuX2ZpbmFsaXplcnMucG9wKGNv
bGl0ZW0sIE5vbmUpCi0gICAgICAgIGV4YyA9IE5vbmUKLSAgICAgICAgd2hpbGUgZmluYWxpemVy
czoKLSAgICAgICAgICAgIGZpbiA9IGZpbmFsaXplcnMucG9wKCkKLSAgICAgICAgICAgIHRyeToK
LSAgICAgICAgICAgICAgICBmaW4oKQotICAgICAgICAgICAgZXhjZXB0IFRFU1RfT1VUQ09NRToK
LSAgICAgICAgICAgICAgICAjIFhYWCBPbmx5IGZpcnN0IGV4Y2VwdGlvbiB3aWxsIGJlIHNlZW4g
YnkgdXNlciwKLSAgICAgICAgICAgICAgICAjICAgICBpZGVhbGx5IGFsbCBzaG91bGQgYmUgcmVw
b3J0ZWQuCi0gICAgICAgICAgICAgICAgaWYgZXhjIGlzIE5vbmU6Ci0gICAgICAgICAgICAgICAg
ICAgIGV4YyA9IHN5cy5leGNfaW5mbygpCi0gICAgICAgIGlmIGV4YzoKLSAgICAgICAgICAgIHB5
LmJ1aWx0aW4uX3JlcmFpc2UoKmV4YykKLQotICAgIGRlZiBfdGVhcmRvd25fd2l0aF9maW5hbGl6
YXRpb24oc2VsZiwgY29saXRlbSk6Ci0gICAgICAgIHNlbGYuX2NhbGxmaW5hbGl6ZXJzKGNvbGl0
ZW0pCi0gICAgICAgIGlmIGhhc2F0dHIoY29saXRlbSwgInRlYXJkb3duIik6Ci0gICAgICAgICAg
ICBjb2xpdGVtLnRlYXJkb3duKCkKLSAgICAgICAgZm9yIGNvbGl0ZW0gaW4gc2VsZi5fZmluYWxp
emVyczoKLSAgICAgICAgICAgIGFzc2VydCBjb2xpdGVtIGlzIE5vbmUgb3IgY29saXRlbSBpbiBz
ZWxmLnN0YWNrIFwKLSAgICAgICAgICAgICAgICBvciBpc2luc3RhbmNlKGNvbGl0ZW0sIHR1cGxl
KQotCi0gICAgZGVmIHRlYXJkb3duX2FsbChzZWxmKToKLSAgICAgICAgd2hpbGUgc2VsZi5zdGFj
azoKLSAgICAgICAgICAgIHNlbGYuX3BvcF9hbmRfdGVhcmRvd24oKQotICAgICAgICBmb3Iga2V5
IGluIGxpc3Qoc2VsZi5fZmluYWxpemVycyk6Ci0gICAgICAgICAgICBzZWxmLl90ZWFyZG93bl93
aXRoX2ZpbmFsaXphdGlvbihrZXkpCi0gICAgICAgIGFzc2VydCBub3Qgc2VsZi5fZmluYWxpemVy
cwotCi0gICAgZGVmIHRlYXJkb3duX2V4YWN0KHNlbGYsIGl0ZW0sIG5leHRpdGVtKToKLSAgICAg
ICAgbmVlZGVkX2NvbGxlY3RvcnMgPSBuZXh0aXRlbSBhbmQgbmV4dGl0ZW0ubGlzdGNoYWluKCkg
b3IgW10KLSAgICAgICAgc2VsZi5fdGVhcmRvd25fdG93YXJkcyhuZWVkZWRfY29sbGVjdG9ycykK
LQotICAgIGRlZiBfdGVhcmRvd25fdG93YXJkcyhzZWxmLCBuZWVkZWRfY29sbGVjdG9ycyk6Ci0g
ICAgICAgIHdoaWxlIHNlbGYuc3RhY2s6Ci0gICAgICAgICAgICBpZiBzZWxmLnN0YWNrID09IG5l
ZWRlZF9jb2xsZWN0b3JzWzpsZW4oc2VsZi5zdGFjayldOgotICAgICAgICAgICAgICAgIGJyZWFr
Ci0gICAgICAgICAgICBzZWxmLl9wb3BfYW5kX3RlYXJkb3duKCkKLQotICAgIGRlZiBwcmVwYXJl
KHNlbGYsIGNvbGl0ZW0pOgotICAgICAgICAiIiIgc2V0dXAgb2JqZWN0cyBhbG9uZyB0aGUgY29s
bGVjdG9yIGNoYWluIHRvIHRoZSB0ZXN0LW1ldGhvZAotICAgICAgICAgICAgYW5kIHRlYXJkb3du
IHByZXZpb3VzbHkgc2V0dXAgb2JqZWN0cy4iIiIKLSAgICAgICAgbmVlZGVkX2NvbGxlY3RvcnMg
PSBjb2xpdGVtLmxpc3RjaGFpbigpCi0gICAgICAgIHNlbGYuX3RlYXJkb3duX3Rvd2FyZHMobmVl
ZGVkX2NvbGxlY3RvcnMpCi0KLSAgICAgICAgIyBjaGVjayBpZiB0aGUgbGFzdCBjb2xsZWN0aW9u
IG5vZGUgaGFzIHJhaXNlZCBhbiBlcnJvcgotICAgICAgICBmb3IgY29sIGluIHNlbGYuc3RhY2s6
Ci0gICAgICAgICAgICBpZiBoYXNhdHRyKGNvbCwgJ19wcmVwYXJlX2V4YycpOgotICAgICAgICAg
ICAgICAgIHB5LmJ1aWx0aW4uX3JlcmFpc2UoKmNvbC5fcHJlcGFyZV9leGMpCi0gICAgICAgIGZv
ciBjb2wgaW4gbmVlZGVkX2NvbGxlY3RvcnNbbGVuKHNlbGYuc3RhY2spOl06Ci0gICAgICAgICAg
ICBzZWxmLnN0YWNrLmFwcGVuZChjb2wpCi0gICAgICAgICAgICB0cnk6Ci0gICAgICAgICAgICAg
ICAgY29sLnNldHVwKCkKLSAgICAgICAgICAgIGV4Y2VwdCBURVNUX09VVENPTUU6Ci0gICAgICAg
ICAgICAgICAgY29sLl9wcmVwYXJlX2V4YyA9IHN5cy5leGNfaW5mbygpCi0gICAgICAgICAgICAg
ICAgcmFpc2UKLQotCi1kZWYgY29sbGVjdF9vbmVfbm9kZShjb2xsZWN0b3IpOgotICAgIGlob29r
ID0gY29sbGVjdG9yLmlob29rCi0gICAgaWhvb2sucHl0ZXN0X2NvbGxlY3RzdGFydChjb2xsZWN0
b3I9Y29sbGVjdG9yKQotICAgIHJlcCA9IGlob29rLnB5dGVzdF9tYWtlX2NvbGxlY3RfcmVwb3J0
KGNvbGxlY3Rvcj1jb2xsZWN0b3IpCi0gICAgY2FsbCA9IHJlcC5fX2RpY3RfXy5wb3AoImNhbGwi
LCBOb25lKQotICAgIGlmIGNhbGwgYW5kIGNoZWNrX2ludGVyYWN0aXZlX2V4Y2VwdGlvbihjYWxs
LCByZXApOgotICAgICAgICBpaG9vay5weXRlc3RfZXhjZXB0aW9uX2ludGVyYWN0KG5vZGU9Y29s
bGVjdG9yLCBjYWxsPWNhbGwsIHJlcG9ydD1yZXApCi0gICAgcmV0dXJuIHJlcApkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS9weXRlc3QvX3B5dGVzdC9zZXR1cG9ubHkucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9fcHl0ZXN0
L3NldHVwb25seS5weQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYTFjNzQ1N2Q3ZTUw
NmMwN2I3YzE3NWViOGM5NDcwZWI2MWI1ZmQ3YS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9fcHl0ZXN0L3NldHVwb25seS5weQorKysg
L2Rldi9udWxsCkBAIC0xLDc0ICswLDAgQEAKLWZyb20gX19mdXR1cmVfXyBpbXBvcnQgYWJzb2x1
dGVfaW1wb3J0LCBkaXZpc2lvbiwgcHJpbnRfZnVuY3Rpb24KLQotaW1wb3J0IHB5dGVzdAotaW1w
b3J0IHN5cwotCi0KLWRlZiBweXRlc3RfYWRkb3B0aW9uKHBhcnNlcik6Ci0gICAgZ3JvdXAgPSBw
YXJzZXIuZ2V0Z3JvdXAoImRlYnVnY29uZmlnIikKLSAgICBncm91cC5hZGRvcHRpb24oJy0tc2V0
dXBvbmx5JywgJy0tc2V0dXAtb25seScsIGFjdGlvbj0ic3RvcmVfdHJ1ZSIsCi0gICAgICAgICAg
ICAgICAgICAgIGhlbHA9Im9ubHkgc2V0dXAgZml4dHVyZXMsIGRvIG5vdCBleGVjdXRlIHRlc3Rz
LiIpCi0gICAgZ3JvdXAuYWRkb3B0aW9uKCctLXNldHVwc2hvdycsICctLXNldHVwLXNob3cnLCBh
Y3Rpb249InN0b3JlX3RydWUiLAotICAgICAgICAgICAgICAgICAgICBoZWxwPSJzaG93IHNldHVw
IG9mIGZpeHR1cmVzIHdoaWxlIGV4ZWN1dGluZyB0ZXN0cy4iKQotCi0KLUBweXRlc3QuaG9va2lt
cGwoaG9va3dyYXBwZXI9VHJ1ZSkKLWRlZiBweXRlc3RfZml4dHVyZV9zZXR1cChmaXh0dXJlZGVm
LCByZXF1ZXN0KToKLSAgICB5aWVsZAotICAgIGNvbmZpZyA9IHJlcXVlc3QuY29uZmlnCi0gICAg
aWYgY29uZmlnLm9wdGlvbi5zZXR1cHNob3c6Ci0gICAgICAgIGlmIGhhc2F0dHIocmVxdWVzdCwg
J3BhcmFtJyk6Ci0gICAgICAgICAgICAjIFNhdmUgdGhlIGZpeHR1cmUgcGFyYW1ldGVyIHNvIC5f
c2hvd19maXh0dXJlX2FjdGlvbigpIGNhbgotICAgICAgICAgICAgIyBkaXNwbGF5IGl0IG5vdyBh
bmQgZHVyaW5nIHRoZSB0ZWFyZG93biAoaW4gLmZpbmlzaCgpKS4KLSAgICAgICAgICAgIGlmIGZp
eHR1cmVkZWYuaWRzOgotICAgICAgICAgICAgICAgIGlmIGNhbGxhYmxlKGZpeHR1cmVkZWYuaWRz
KToKLSAgICAgICAgICAgICAgICAgICAgZml4dHVyZWRlZi5jYWNoZWRfcGFyYW0gPSBmaXh0dXJl
ZGVmLmlkcyhyZXF1ZXN0LnBhcmFtKQotICAgICAgICAgICAgICAgIGVsc2U6Ci0gICAgICAgICAg
ICAgICAgICAgIGZpeHR1cmVkZWYuY2FjaGVkX3BhcmFtID0gZml4dHVyZWRlZi5pZHNbCi0gICAg
ICAgICAgICAgICAgICAgICAgICByZXF1ZXN0LnBhcmFtX2luZGV4XQotICAgICAgICAgICAgZWxz
ZToKLSAgICAgICAgICAgICAgICBmaXh0dXJlZGVmLmNhY2hlZF9wYXJhbSA9IHJlcXVlc3QucGFy
YW0KLSAgICAgICAgX3Nob3dfZml4dHVyZV9hY3Rpb24oZml4dHVyZWRlZiwgJ1NFVFVQJykKLQot
Ci1kZWYgcHl0ZXN0X2ZpeHR1cmVfcG9zdF9maW5hbGl6ZXIoZml4dHVyZWRlZik6Ci0gICAgaWYg
aGFzYXR0cihmaXh0dXJlZGVmLCAiY2FjaGVkX3Jlc3VsdCIpOgotICAgICAgICBjb25maWcgPSBm
aXh0dXJlZGVmLl9maXh0dXJlbWFuYWdlci5jb25maWcKLSAgICAgICAgaWYgY29uZmlnLm9wdGlv
bi5zZXR1cHNob3c6Ci0gICAgICAgICAgICBfc2hvd19maXh0dXJlX2FjdGlvbihmaXh0dXJlZGVm
LCAnVEVBUkRPV04nKQotICAgICAgICAgICAgaWYgaGFzYXR0cihmaXh0dXJlZGVmLCAiY2FjaGVk
X3BhcmFtIik6Ci0gICAgICAgICAgICAgICAgZGVsIGZpeHR1cmVkZWYuY2FjaGVkX3BhcmFtCi0K
LQotZGVmIF9zaG93X2ZpeHR1cmVfYWN0aW9uKGZpeHR1cmVkZWYsIG1zZyk6Ci0gICAgY29uZmln
ID0gZml4dHVyZWRlZi5fZml4dHVyZW1hbmFnZXIuY29uZmlnCi0gICAgY2FwbWFuID0gY29uZmln
LnBsdWdpbm1hbmFnZXIuZ2V0cGx1Z2luKCdjYXB0dXJlbWFuYWdlcicpCi0gICAgaWYgY2FwbWFu
OgotICAgICAgICBvdXQsIGVyciA9IGNhcG1hbi5zdXNwZW5kX2dsb2JhbF9jYXB0dXJlKCkKLQot
ICAgIHR3ID0gY29uZmlnLmdldF90ZXJtaW5hbF93cml0ZXIoKQotICAgIHR3LmxpbmUoKQotICAg
IHR3LndyaXRlKCcgJyAqIDIgKiBmaXh0dXJlZGVmLnNjb3BlbnVtKQotICAgIHR3LndyaXRlKCd7
c3RlcH0ge3Njb3BlfSB7Zml4dHVyZX0nLmZvcm1hdCgKLSAgICAgICAgc3RlcD1tc2cubGp1c3Qo
OCksICAjIGFsaWduIHRoZSBvdXRwdXQgdG8gVEVBUkRPV04KLSAgICAgICAgc2NvcGU9Zml4dHVy
ZWRlZi5zY29wZVswXS51cHBlcigpLAotICAgICAgICBmaXh0dXJlPWZpeHR1cmVkZWYuYXJnbmFt
ZSkpCi0KLSAgICBpZiBtc2cgPT0gJ1NFVFVQJzoKLSAgICAgICAgZGVwcyA9IHNvcnRlZChhcmcg
Zm9yIGFyZyBpbiBmaXh0dXJlZGVmLmFyZ25hbWVzIGlmIGFyZyAhPSAncmVxdWVzdCcpCi0gICAg
ICAgIGlmIGRlcHM6Ci0gICAgICAgICAgICB0dy53cml0ZSgnIChmaXh0dXJlcyB1c2VkOiB7MH0p
Jy5mb3JtYXQoJywgJy5qb2luKGRlcHMpKSkKLQotICAgIGlmIGhhc2F0dHIoZml4dHVyZWRlZiwg
J2NhY2hlZF9wYXJhbScpOgotICAgICAgICB0dy53cml0ZSgnW3swfV0nLmZvcm1hdChmaXh0dXJl
ZGVmLmNhY2hlZF9wYXJhbSkpCi0KLSAgICBpZiBjYXBtYW46Ci0gICAgICAgIGNhcG1hbi5yZXN1
bWVfZ2xvYmFsX2NhcHR1cmUoKQotICAgICAgICBzeXMuc3Rkb3V0LndyaXRlKG91dCkKLSAgICAg
ICAgc3lzLnN0ZGVyci53cml0ZShlcnIpCi0KLQotQHB5dGVzdC5ob29raW1wbCh0cnlmaXJzdD1U
cnVlKQotZGVmIHB5dGVzdF9jbWRsaW5lX21haW4oY29uZmlnKToKLSAgICBpZiBjb25maWcub3B0
aW9uLnNldHVwb25seToKLSAgICAgICAgY29uZmlnLm9wdGlvbi5zZXR1cHNob3cgPSBUcnVlCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9fcHl0ZXN0L3NldHVwcGxhbi5weSBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0
L19weXRlc3Qvc2V0dXBwbGFuLnB5CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlMTFi
ZDQwNjk4Yjc3MmIwNmEzNzI5N2NmYzM0ZTBhNzhiZDExNjQ5Li4wMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L19weXRlc3Qvc2V0dXBwbGFu
LnB5CisrKyAvZGV2L251bGwKQEAgLTEsMjUgKzAsMCBAQAotZnJvbSBfX2Z1dHVyZV9fIGltcG9y
dCBhYnNvbHV0ZV9pbXBvcnQsIGRpdmlzaW9uLCBwcmludF9mdW5jdGlvbgotCi1pbXBvcnQgcHl0
ZXN0Ci0KLQotZGVmIHB5dGVzdF9hZGRvcHRpb24ocGFyc2VyKToKLSAgICBncm91cCA9IHBhcnNl
ci5nZXRncm91cCgiZGVidWdjb25maWciKQotICAgIGdyb3VwLmFkZG9wdGlvbignLS1zZXR1cHBs
YW4nLCAnLS1zZXR1cC1wbGFuJywgYWN0aW9uPSJzdG9yZV90cnVlIiwKLSAgICAgICAgICAgICAg
ICAgICAgaGVscD0ic2hvdyB3aGF0IGZpeHR1cmVzIGFuZCB0ZXN0cyB3b3VsZCBiZSBleGVjdXRl
ZCBidXQgIgotICAgICAgICAgICAgICAgICAgICAiZG9uJ3QgZXhlY3V0ZSBhbnl0aGluZy4iKQot
Ci0KLUBweXRlc3QuaG9va2ltcGwodHJ5Zmlyc3Q9VHJ1ZSkKLWRlZiBweXRlc3RfZml4dHVyZV9z
ZXR1cChmaXh0dXJlZGVmLCByZXF1ZXN0KToKLSAgICAjIFdpbGwgcmV0dXJuIGEgZHVtbXkgZml4
dHVyZSBpZiB0aGUgc2V0dXBvbmx5IG9wdGlvbiBpcyBwcm92aWRlZC4KLSAgICBpZiByZXF1ZXN0
LmNvbmZpZy5vcHRpb24uc2V0dXBwbGFuOgotICAgICAgICBmaXh0dXJlZGVmLmNhY2hlZF9yZXN1
bHQgPSAoTm9uZSwgTm9uZSwgTm9uZSkKLSAgICAgICAgcmV0dXJuIGZpeHR1cmVkZWYuY2FjaGVk
X3Jlc3VsdAotCi0KLUBweXRlc3QuaG9va2ltcGwodHJ5Zmlyc3Q9VHJ1ZSkKLWRlZiBweXRlc3Rf
Y21kbGluZV9tYWluKGNvbmZpZyk6Ci0gICAgaWYgY29uZmlnLm9wdGlvbi5zZXR1cHBsYW46Ci0g
ICAgICAgIGNvbmZpZy5vcHRpb24uc2V0dXBvbmx5ID0gVHJ1ZQotICAgICAgICBjb25maWcub3B0
aW9uLnNldHVwc2hvdyA9IFRydWUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L19weXRlc3Qvc2tp
cHBpbmcucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9fcHl0ZXN0L3NraXBwaW5nLnB5CmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCBhMWU1YjQzODAwYjU0ZjhjOGEyOTA1NDBiMTNkYTNhMDI4MjBkN2Y1
Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0
ZXN0L19weXRlc3Qvc2tpcHBpbmcucHkKKysrIC9kZXYvbnVsbApAQCAtMSwzOTcgKzAsMCBAQAot
IiIiIHN1cHBvcnQgZm9yIHNraXAveGZhaWwgZnVuY3Rpb25zIGFuZCBtYXJrZXJzLiAiIiIKLWZy
b20gX19mdXR1cmVfXyBpbXBvcnQgYWJzb2x1dGVfaW1wb3J0LCBkaXZpc2lvbiwgcHJpbnRfZnVu
Y3Rpb24KLQotaW1wb3J0IG9zCi1pbXBvcnQgc2l4Ci1pbXBvcnQgc3lzCi1pbXBvcnQgdHJhY2Vi
YWNrCi0KLWZyb20gX3B5dGVzdC5jb25maWcgaW1wb3J0IGhvb2tpbXBsCi1mcm9tIF9weXRlc3Qu
bWFyayBpbXBvcnQgTWFya0luZm8sIE1hcmtEZWNvcmF0b3IKLWZyb20gX3B5dGVzdC5vdXRjb21l
cyBpbXBvcnQgZmFpbCwgc2tpcCwgeGZhaWwsIFRFU1RfT1VUQ09NRQotCi0KLWRlZiBweXRlc3Rf
YWRkb3B0aW9uKHBhcnNlcik6Ci0gICAgZ3JvdXAgPSBwYXJzZXIuZ2V0Z3JvdXAoImdlbmVyYWwi
KQotICAgIGdyb3VwLmFkZG9wdGlvbignLS1ydW54ZmFpbCcsCi0gICAgICAgICAgICAgICAgICAg
IGFjdGlvbj0ic3RvcmVfdHJ1ZSIsIGRlc3Q9InJ1bnhmYWlsIiwgZGVmYXVsdD1GYWxzZSwKLSAg
ICAgICAgICAgICAgICAgICAgaGVscD0icnVuIHRlc3RzIGV2ZW4gaWYgdGhleSBhcmUgbWFya2Vk
IHhmYWlsIikKLQotICAgIHBhcnNlci5hZGRpbmkoInhmYWlsX3N0cmljdCIsICJkZWZhdWx0IGZv
ciB0aGUgc3RyaWN0IHBhcmFtZXRlciBvZiB4ZmFpbCAiCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIm1hcmtlcnMgd2hlbiBub3QgZ2l2ZW4gZXhwbGljaXRseSAoZGVmYXVsdDog
IgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJGYWxzZSkiLAotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ9RmFsc2UsCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgdHlwZT0iYm9vbCIpCi0KLQotZGVmIHB5dGVzdF9jb25maWd1cmUo
Y29uZmlnKToKLSAgICBpZiBjb25maWcub3B0aW9uLnJ1bnhmYWlsOgotICAgICAgICAjIHlheSBh
IGhhY2sKLSAgICAgICAgaW1wb3J0IHB5dGVzdAotICAgICAgICBvbGQgPSBweXRlc3QueGZhaWwK
LSAgICAgICAgY29uZmlnLl9jbGVhbnVwLmFwcGVuZChsYW1iZGE6IHNldGF0dHIocHl0ZXN0LCAi
eGZhaWwiLCBvbGQpKQotCi0gICAgICAgIGRlZiBub3AoKmFyZ3MsICoqa3dhcmdzKToKLSAgICAg
ICAgICAgIHBhc3MKLQotICAgICAgICBub3AuRXhjZXB0aW9uID0geGZhaWwuRXhjZXB0aW9uCi0g
ICAgICAgIHNldGF0dHIocHl0ZXN0LCAieGZhaWwiLCBub3ApCi0KLSAgICBjb25maWcuYWRkaW5p
dmFsdWVfbGluZSgibWFya2VycyIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgInNraXAo
cmVhc29uPU5vbmUpOiBza2lwIHRoZSBnaXZlbiB0ZXN0IGZ1bmN0aW9uIHdpdGggYW4gb3B0aW9u
YWwgcmVhc29uLiAiCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIkV4YW1wbGU6IHNraXAo
cmVhc29uPVwibm8gd2F5IG9mIGN1cnJlbnRseSB0ZXN0aW5nIHRoaXNcIikgc2tpcHMgdGhlICIK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAidGVzdC4iCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgKQotICAgIGNvbmZpZy5hZGRpbml2YWx1ZV9saW5lKCJtYXJrZXJzIiwKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAic2tpcGlmKGNvbmRpdGlvbik6IHNraXAgdGhlIGdpdmVu
IHRlc3QgZnVuY3Rpb24gaWYgZXZhbChjb25kaXRpb24pICIKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAicmVzdWx0cyBpbiBhIFRydWUgdmFsdWUuICBFdmFsdWF0aW9uIGhhcHBlbnMgd2l0
aGluIHRoZSAiCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIm1vZHVsZSBnbG9iYWwgY29u
dGV4dC4gRXhhbXBsZTogc2tpcGlmKCdzeXMucGxhdGZvcm0gPT0gXCJ3aW4zMlwiJykgIgotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICJza2lwcyB0aGUgdGVzdCBpZiB3ZSBhcmUgb24gdGhl
IHdpbjMyIHBsYXRmb3JtLiBzZWUgIgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICJodHRw
Oi8vcHl0ZXN0Lm9yZy9sYXRlc3Qvc2tpcHBpbmcuaHRtbCIKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICApCi0gICAgY29uZmlnLmFkZGluaXZhbHVlX2xpbmUoIm1hcmtlcnMiLAotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICJ4ZmFpbChjb25kaXRpb24sIHJlYXNvbj1Ob25lLCBydW49
VHJ1ZSwgcmFpc2VzPU5vbmUsIHN0cmljdD1GYWxzZSk6ICIKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAibWFyayB0aGUgdGVzdCBmdW5jdGlvbiBhcyBhbiBleHBlY3RlZCBmYWlsdXJlIGlm
IGV2YWwoY29uZGl0aW9uKSAiCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgImhhcyBhIFRy
dWUgdmFsdWUuIE9wdGlvbmFsbHkgc3BlY2lmeSBhIHJlYXNvbiBmb3IgYmV0dGVyIHJlcG9ydGlu
ZyAiCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgImFuZCBydW49RmFsc2UgaWYgeW91IGRv
bid0IGV2ZW4gd2FudCB0byBleGVjdXRlIHRoZSB0ZXN0IGZ1bmN0aW9uLiAiCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIklmIG9ubHkgc3BlY2lmaWMgZXhjZXB0aW9uKHMpIGFyZSBleHBl
Y3RlZCwgeW91IGNhbiBsaXN0IHRoZW0gaW4gIgotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICJyYWlzZXMsIGFuZCBpZiB0aGUgdGVzdCBmYWlscyBpbiBvdGhlciB3YXlzLCBpdCB3aWxsIGJl
IHJlcG9ydGVkIGFzICIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAiYSB0cnVlIGZhaWx1
cmUuIFNlZSBodHRwOi8vcHl0ZXN0Lm9yZy9sYXRlc3Qvc2tpcHBpbmcuaHRtbCIKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICApCi0KLQotY2xhc3MgTWFya0V2YWx1YXRvcihvYmplY3QpOgot
ICAgIGRlZiBfX2luaXRfXyhzZWxmLCBpdGVtLCBuYW1lKToKLSAgICAgICAgc2VsZi5pdGVtID0g
aXRlbQotICAgICAgICBzZWxmLl9tYXJrcyA9IE5vbmUKLSAgICAgICAgc2VsZi5fbWFyayA9IE5v
bmUKLSAgICAgICAgc2VsZi5fbWFya19uYW1lID0gbmFtZQotCi0gICAgZGVmIF9fYm9vbF9fKHNl
bGYpOgotICAgICAgICBzZWxmLl9tYXJrcyA9IHNlbGYuX2dldF9tYXJrcygpCi0gICAgICAgIHJl
dHVybiBib29sKHNlbGYuX21hcmtzKQotICAgIF9fbm9uemVyb19fID0gX19ib29sX18KLQotICAg
IGRlZiB3YXN2YWxpZChzZWxmKToKLSAgICAgICAgcmV0dXJuIG5vdCBoYXNhdHRyKHNlbGYsICdl
eGMnKQotCi0gICAgZGVmIF9nZXRfbWFya3Moc2VsZik6Ci0KLSAgICAgICAga2V5d29yZCA9IHNl
bGYuaXRlbS5rZXl3b3Jkcy5nZXQoc2VsZi5fbWFya19uYW1lKQotICAgICAgICBpZiBpc2luc3Rh
bmNlKGtleXdvcmQsIE1hcmtEZWNvcmF0b3IpOgotICAgICAgICAgICAgcmV0dXJuIFtrZXl3b3Jk
Lm1hcmtdCi0gICAgICAgIGVsaWYgaXNpbnN0YW5jZShrZXl3b3JkLCBNYXJrSW5mbyk6Ci0gICAg
ICAgICAgICByZXR1cm4gW3guY29tYmluZWQgZm9yIHggaW4ga2V5d29yZF0KLSAgICAgICAgZWxz
ZToKLSAgICAgICAgICAgIHJldHVybiBbXQotCi0gICAgZGVmIGludmFsaWRyYWlzZShzZWxmLCBl
eGMpOgotICAgICAgICByYWlzZXMgPSBzZWxmLmdldCgncmFpc2VzJykKLSAgICAgICAgaWYgbm90
IHJhaXNlczoKLSAgICAgICAgICAgIHJldHVybgotICAgICAgICByZXR1cm4gbm90IGlzaW5zdGFu
Y2UoZXhjLCByYWlzZXMpCi0KLSAgICBkZWYgaXN0cnVlKHNlbGYpOgotICAgICAgICB0cnk6Ci0g
ICAgICAgICAgICByZXR1cm4gc2VsZi5faXN0cnVlKCkKLSAgICAgICAgZXhjZXB0IFRFU1RfT1VU
Q09NRToKLSAgICAgICAgICAgIHNlbGYuZXhjID0gc3lzLmV4Y19pbmZvKCkKLSAgICAgICAgICAg
IGlmIGlzaW5zdGFuY2Uoc2VsZi5leGNbMV0sIFN5bnRheEVycm9yKToKLSAgICAgICAgICAgICAg
ICBtc2cgPSBbIiAiICogKHNlbGYuZXhjWzFdLm9mZnNldCArIDQpICsgIl4iLCBdCi0gICAgICAg
ICAgICAgICAgbXNnLmFwcGVuZCgiU3ludGF4RXJyb3I6IGludmFsaWQgc3ludGF4IikKLSAgICAg
ICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAgICAgbXNnID0gdHJhY2ViYWNrLmZvcm1hdF9leGNl
cHRpb25fb25seSgqc2VsZi5leGNbOjJdKQotICAgICAgICAgICAgZmFpbCgiRXJyb3IgZXZhbHVh
dGluZyAlciBleHByZXNzaW9uXG4iCi0gICAgICAgICAgICAgICAgICIgICAgJXNcbiIKLSAgICAg
ICAgICAgICAgICAgIiVzIgotICAgICAgICAgICAgICAgICAlIChzZWxmLl9tYXJrX25hbWUsIHNl
bGYuZXhwciwgIlxuIi5qb2luKG1zZykpLAotICAgICAgICAgICAgICAgICBweXRyYWNlPUZhbHNl
KQotCi0gICAgZGVmIF9nZXRnbG9iYWxzKHNlbGYpOgotICAgICAgICBkID0geydvcyc6IG9zLCAn
c3lzJzogc3lzLCAnY29uZmlnJzogc2VsZi5pdGVtLmNvbmZpZ30KLSAgICAgICAgaWYgaGFzYXR0
cihzZWxmLml0ZW0sICdvYmonKToKLSAgICAgICAgICAgIGQudXBkYXRlKHNlbGYuaXRlbS5vYmou
X19nbG9iYWxzX18pCi0gICAgICAgIHJldHVybiBkCi0KLSAgICBkZWYgX2lzdHJ1ZShzZWxmKToK
LSAgICAgICAgaWYgaGFzYXR0cihzZWxmLCAncmVzdWx0Jyk6Ci0gICAgICAgICAgICByZXR1cm4g
c2VsZi5yZXN1bHQKLSAgICAgICAgc2VsZi5fbWFya3MgPSBzZWxmLl9nZXRfbWFya3MoKQotCi0g
ICAgICAgIGlmIHNlbGYuX21hcmtzOgotICAgICAgICAgICAgc2VsZi5yZXN1bHQgPSBGYWxzZQot
ICAgICAgICAgICAgZm9yIG1hcmsgaW4gc2VsZi5fbWFya3M6Ci0gICAgICAgICAgICAgICAgc2Vs
Zi5fbWFyayA9IG1hcmsKLSAgICAgICAgICAgICAgICBpZiAnY29uZGl0aW9uJyBpbiBtYXJrLmt3
YXJnczoKLSAgICAgICAgICAgICAgICAgICAgYXJncyA9IChtYXJrLmt3YXJnc1snY29uZGl0aW9u
J10sKQotICAgICAgICAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAgICAgICAgIGFyZ3MgPSBt
YXJrLmFyZ3MKLQotICAgICAgICAgICAgICAgIGZvciBleHByIGluIGFyZ3M6Ci0gICAgICAgICAg
ICAgICAgICAgIHNlbGYuZXhwciA9IGV4cHIKLSAgICAgICAgICAgICAgICAgICAgaWYgaXNpbnN0
YW5jZShleHByLCBzaXguc3RyaW5nX3R5cGVzKToKLSAgICAgICAgICAgICAgICAgICAgICAgIGQg
PSBzZWxmLl9nZXRnbG9iYWxzKCkKLSAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdCA9IGNh
Y2hlZF9ldmFsKHNlbGYuaXRlbS5jb25maWcsIGV4cHIsIGQpCi0gICAgICAgICAgICAgICAgICAg
IGVsc2U6Ci0gICAgICAgICAgICAgICAgICAgICAgICBpZiAicmVhc29uIiBub3QgaW4gbWFyay5r
d2FyZ3M6Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBYWFggYmV0dGVyIGJlIGNoZWNr
ZWQgYXQgY29sbGVjdGlvbiB0aW1lCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgbXNnID0g
InlvdSBuZWVkIHRvIHNwZWNpZnkgcmVhc29uPVNUUklORyAiIFwKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAid2hlbiB1c2luZyBib29sZWFucyBhcyBjb25kaXRpb25zLiIKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBmYWlsKG1zZykKLSAgICAgICAgICAgICAgICAgICAg
ICAgIHJlc3VsdCA9IGJvb2woZXhwcikKLSAgICAgICAgICAgICAgICAgICAgaWYgcmVzdWx0Ogot
ICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5yZXN1bHQgPSBUcnVlCi0gICAgICAgICAgICAg
ICAgICAgICAgICBzZWxmLnJlYXNvbiA9IG1hcmsua3dhcmdzLmdldCgncmVhc29uJywgTm9uZSkK
LSAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuZXhwciA9IGV4cHIKLSAgICAgICAgICAgICAg
ICAgICAgICAgIHJldHVybiBzZWxmLnJlc3VsdAotCi0gICAgICAgICAgICAgICAgaWYgbm90IGFy
Z3M6Ci0gICAgICAgICAgICAgICAgICAgIHNlbGYucmVzdWx0ID0gVHJ1ZQotICAgICAgICAgICAg
ICAgICAgICBzZWxmLnJlYXNvbiA9IG1hcmsua3dhcmdzLmdldCgncmVhc29uJywgTm9uZSkKLSAg
ICAgICAgICAgICAgICAgICAgcmV0dXJuIHNlbGYucmVzdWx0Ci0gICAgICAgIHJldHVybiBGYWxz
ZQotCi0gICAgZGVmIGdldChzZWxmLCBhdHRyLCBkZWZhdWx0PU5vbmUpOgotICAgICAgICBpZiBz
ZWxmLl9tYXJrIGlzIE5vbmU6Ci0gICAgICAgICAgICByZXR1cm4gZGVmYXVsdAotICAgICAgICBy
ZXR1cm4gc2VsZi5fbWFyay5rd2FyZ3MuZ2V0KGF0dHIsIGRlZmF1bHQpCi0KLSAgICBkZWYgZ2V0
ZXhwbGFuYXRpb24oc2VsZik6Ci0gICAgICAgIGV4cGwgPSBnZXRhdHRyKHNlbGYsICdyZWFzb24n
LCBOb25lKSBvciBzZWxmLmdldCgncmVhc29uJywgTm9uZSkKLSAgICAgICAgaWYgbm90IGV4cGw6
Ci0gICAgICAgICAgICBpZiBub3QgaGFzYXR0cihzZWxmLCAnZXhwcicpOgotICAgICAgICAgICAg
ICAgIHJldHVybiAiIgotICAgICAgICAgICAgZWxzZToKLSAgICAgICAgICAgICAgICByZXR1cm4g
ImNvbmRpdGlvbjogIiArIHN0cihzZWxmLmV4cHIpCi0gICAgICAgIHJldHVybiBleHBsCi0KLQot
QGhvb2tpbXBsKHRyeWZpcnN0PVRydWUpCi1kZWYgcHl0ZXN0X3J1bnRlc3Rfc2V0dXAoaXRlbSk6
Ci0gICAgIyBDaGVjayBpZiBza2lwIG9yIHNraXBpZiBhcmUgc3BlY2lmaWVkIGFzIHB5dGVzdCBt
YXJrcwotICAgIGl0ZW0uX3NraXBwZWRfYnlfbWFyayA9IEZhbHNlCi0gICAgc2tpcGlmX2luZm8g
PSBpdGVtLmtleXdvcmRzLmdldCgnc2tpcGlmJykKLSAgICBpZiBpc2luc3RhbmNlKHNraXBpZl9p
bmZvLCAoTWFya0luZm8sIE1hcmtEZWNvcmF0b3IpKToKLSAgICAgICAgZXZhbF9za2lwaWYgPSBN
YXJrRXZhbHVhdG9yKGl0ZW0sICdza2lwaWYnKQotICAgICAgICBpZiBldmFsX3NraXBpZi5pc3Ry
dWUoKToKLSAgICAgICAgICAgIGl0ZW0uX3NraXBwZWRfYnlfbWFyayA9IFRydWUKLSAgICAgICAg
ICAgIHNraXAoZXZhbF9za2lwaWYuZ2V0ZXhwbGFuYXRpb24oKSkKLQotICAgIHNraXBfaW5mbyA9
IGl0ZW0ua2V5d29yZHMuZ2V0KCdza2lwJykKLSAgICBpZiBpc2luc3RhbmNlKHNraXBfaW5mbywg
KE1hcmtJbmZvLCBNYXJrRGVjb3JhdG9yKSk6Ci0gICAgICAgIGl0ZW0uX3NraXBwZWRfYnlfbWFy
ayA9IFRydWUKLSAgICAgICAgaWYgJ3JlYXNvbicgaW4gc2tpcF9pbmZvLmt3YXJnczoKLSAgICAg
ICAgICAgIHNraXAoc2tpcF9pbmZvLmt3YXJnc1sncmVhc29uJ10pCi0gICAgICAgIGVsaWYgc2tp
cF9pbmZvLmFyZ3M6Ci0gICAgICAgICAgICBza2lwKHNraXBfaW5mby5hcmdzWzBdKQotICAgICAg
ICBlbHNlOgotICAgICAgICAgICAgc2tpcCgidW5jb25kaXRpb25hbCBza2lwIikKLQotICAgIGl0
ZW0uX2V2YWx4ZmFpbCA9IE1hcmtFdmFsdWF0b3IoaXRlbSwgJ3hmYWlsJykKLSAgICBjaGVja194
ZmFpbF9ub19ydW4oaXRlbSkKLQotCi1AaG9va2ltcGwoaG9va3dyYXBwZXI9VHJ1ZSkKLWRlZiBw
eXRlc3RfcHlmdW5jX2NhbGwocHlmdW5jaXRlbSk6Ci0gICAgY2hlY2tfeGZhaWxfbm9fcnVuKHB5
ZnVuY2l0ZW0pCi0gICAgb3V0Y29tZSA9IHlpZWxkCi0gICAgcGFzc2VkID0gb3V0Y29tZS5leGNp
bmZvIGlzIE5vbmUKLSAgICBpZiBwYXNzZWQ6Ci0gICAgICAgIGNoZWNrX3N0cmljdF94ZmFpbChw
eWZ1bmNpdGVtKQotCi0KLWRlZiBjaGVja194ZmFpbF9ub19ydW4oaXRlbSk6Ci0gICAgIiIiY2hl
Y2sgeGZhaWwocnVuPUZhbHNlKSIiIgotICAgIGlmIG5vdCBpdGVtLmNvbmZpZy5vcHRpb24ucnVu
eGZhaWw6Ci0gICAgICAgIGV2YWx4ZmFpbCA9IGl0ZW0uX2V2YWx4ZmFpbAotICAgICAgICBpZiBl
dmFseGZhaWwuaXN0cnVlKCk6Ci0gICAgICAgICAgICBpZiBub3QgZXZhbHhmYWlsLmdldCgncnVu
JywgVHJ1ZSk6Ci0gICAgICAgICAgICAgICAgeGZhaWwoIltOT1RSVU5dICIgKyBldmFseGZhaWwu
Z2V0ZXhwbGFuYXRpb24oKSkKLQotCi1kZWYgY2hlY2tfc3RyaWN0X3hmYWlsKHB5ZnVuY2l0ZW0p
OgotICAgICIiImNoZWNrIHhmYWlsKHN0cmljdD1UcnVlKSBmb3IgdGhlIGdpdmVuIFBBU1NJTkcg
dGVzdCIiIgotICAgIGV2YWx4ZmFpbCA9IHB5ZnVuY2l0ZW0uX2V2YWx4ZmFpbAotICAgIGlmIGV2
YWx4ZmFpbC5pc3RydWUoKToKLSAgICAgICAgc3RyaWN0X2RlZmF1bHQgPSBweWZ1bmNpdGVtLmNv
bmZpZy5nZXRpbmkoJ3hmYWlsX3N0cmljdCcpCi0gICAgICAgIGlzX3N0cmljdF94ZmFpbCA9IGV2
YWx4ZmFpbC5nZXQoJ3N0cmljdCcsIHN0cmljdF9kZWZhdWx0KQotICAgICAgICBpZiBpc19zdHJp
Y3RfeGZhaWw6Ci0gICAgICAgICAgICBkZWwgcHlmdW5jaXRlbS5fZXZhbHhmYWlsCi0gICAgICAg
ICAgICBleHBsYW5hdGlvbiA9IGV2YWx4ZmFpbC5nZXRleHBsYW5hdGlvbigpCi0gICAgICAgICAg
ICBmYWlsKCdbWFBBU1Moc3RyaWN0KV0gJyArIGV4cGxhbmF0aW9uLCBweXRyYWNlPUZhbHNlKQot
Ci0KLUBob29raW1wbChob29rd3JhcHBlcj1UcnVlKQotZGVmIHB5dGVzdF9ydW50ZXN0X21ha2Vy
ZXBvcnQoaXRlbSwgY2FsbCk6Ci0gICAgb3V0Y29tZSA9IHlpZWxkCi0gICAgcmVwID0gb3V0Y29t
ZS5nZXRfcmVzdWx0KCkKLSAgICBldmFseGZhaWwgPSBnZXRhdHRyKGl0ZW0sICdfZXZhbHhmYWls
JywgTm9uZSkKLSAgICAjIHVuaXR0dGVzdCBzcGVjaWFsIGNhc2UsIHNlZSBzZXR0aW5nIG9mIF91
bmV4cGVjdGVkc3VjY2VzcwotICAgIGlmIGhhc2F0dHIoaXRlbSwgJ191bmV4cGVjdGVkc3VjY2Vz
cycpIGFuZCByZXAud2hlbiA9PSAiY2FsbCI6Ci0gICAgICAgIGZyb20gX3B5dGVzdC5jb21wYXQg
aW1wb3J0IF9pc191bml0dGVzdF91bmV4cGVjdGVkX3N1Y2Nlc3NfYV9mYWlsdXJlCi0gICAgICAg
IGlmIGl0ZW0uX3VuZXhwZWN0ZWRzdWNjZXNzOgotICAgICAgICAgICAgcmVwLmxvbmdyZXByID0g
IlVuZXhwZWN0ZWQgc3VjY2VzczogezB9Ii5mb3JtYXQoaXRlbS5fdW5leHBlY3RlZHN1Y2Nlc3Mp
Ci0gICAgICAgIGVsc2U6Ci0gICAgICAgICAgICByZXAubG9uZ3JlcHIgPSAiVW5leHBlY3RlZCBz
dWNjZXNzIgotICAgICAgICBpZiBfaXNfdW5pdHRlc3RfdW5leHBlY3RlZF9zdWNjZXNzX2FfZmFp
bHVyZSgpOgotICAgICAgICAgICAgcmVwLm91dGNvbWUgPSAiZmFpbGVkIgotICAgICAgICBlbHNl
OgotICAgICAgICAgICAgcmVwLm91dGNvbWUgPSAicGFzc2VkIgotICAgICAgICAgICAgcmVwLndh
c3hmYWlsID0gcmVwLmxvbmdyZXByCi0gICAgZWxpZiBpdGVtLmNvbmZpZy5vcHRpb24ucnVueGZh
aWw6Ci0gICAgICAgIHBhc3MgICAjIGRvbid0IGludGVyZWZlcmUKLSAgICBlbGlmIGNhbGwuZXhj
aW5mbyBhbmQgY2FsbC5leGNpbmZvLmVycmlzaW5zdGFuY2UoeGZhaWwuRXhjZXB0aW9uKToKLSAg
ICAgICAgcmVwLndhc3hmYWlsID0gInJlYXNvbjogIiArIGNhbGwuZXhjaW5mby52YWx1ZS5tc2cK
LSAgICAgICAgcmVwLm91dGNvbWUgPSAic2tpcHBlZCIKLSAgICBlbGlmIGV2YWx4ZmFpbCBhbmQg
bm90IHJlcC5za2lwcGVkIGFuZCBldmFseGZhaWwud2FzdmFsaWQoKSBhbmQgXAotICAgICAgICAg
ICAgZXZhbHhmYWlsLmlzdHJ1ZSgpOgotICAgICAgICBpZiBjYWxsLmV4Y2luZm86Ci0gICAgICAg
ICAgICBpZiBldmFseGZhaWwuaW52YWxpZHJhaXNlKGNhbGwuZXhjaW5mby52YWx1ZSk6Ci0gICAg
ICAgICAgICAgICAgcmVwLm91dGNvbWUgPSAiZmFpbGVkIgotICAgICAgICAgICAgZWxzZToKLSAg
ICAgICAgICAgICAgICByZXAub3V0Y29tZSA9ICJza2lwcGVkIgotICAgICAgICAgICAgICAgIHJl
cC53YXN4ZmFpbCA9IGV2YWx4ZmFpbC5nZXRleHBsYW5hdGlvbigpCi0gICAgICAgIGVsaWYgY2Fs
bC53aGVuID09ICJjYWxsIjoKLSAgICAgICAgICAgIHN0cmljdF9kZWZhdWx0ID0gaXRlbS5jb25m
aWcuZ2V0aW5pKCd4ZmFpbF9zdHJpY3QnKQotICAgICAgICAgICAgaXNfc3RyaWN0X3hmYWlsID0g
ZXZhbHhmYWlsLmdldCgnc3RyaWN0Jywgc3RyaWN0X2RlZmF1bHQpCi0gICAgICAgICAgICBleHBs
YW5hdGlvbiA9IGV2YWx4ZmFpbC5nZXRleHBsYW5hdGlvbigpCi0gICAgICAgICAgICBpZiBpc19z
dHJpY3RfeGZhaWw6Ci0gICAgICAgICAgICAgICAgcmVwLm91dGNvbWUgPSAiZmFpbGVkIgotICAg
ICAgICAgICAgICAgIHJlcC5sb25ncmVwciA9ICJbWFBBU1Moc3RyaWN0KV0gezB9Ii5mb3JtYXQo
ZXhwbGFuYXRpb24pCi0gICAgICAgICAgICBlbHNlOgotICAgICAgICAgICAgICAgIHJlcC5vdXRj
b21lID0gInBhc3NlZCIKLSAgICAgICAgICAgICAgICByZXAud2FzeGZhaWwgPSBleHBsYW5hdGlv
bgotICAgIGVsaWYgaXRlbS5fc2tpcHBlZF9ieV9tYXJrIGFuZCByZXAuc2tpcHBlZCBhbmQgdHlw
ZShyZXAubG9uZ3JlcHIpIGlzIHR1cGxlOgotICAgICAgICAjIHNraXBwZWQgYnkgbWFyay5za2lw
aWY7IGNoYW5nZSB0aGUgbG9jYXRpb24gb2YgdGhlIGZhaWx1cmUKLSAgICAgICAgIyB0byBwb2lu
dCB0byB0aGUgaXRlbSBkZWZpbml0aW9uLCBvdGhlcndpc2UgaXQgd2lsbCBkaXNwbGF5Ci0gICAg
ICAgICMgdGhlIGxvY2F0aW9uIG9mIHdoZXJlIHRoZSBza2lwIGV4Y2VwdGlvbiB3YXMgcmFpc2Vk
IHdpdGhpbiBweXRlc3QKLSAgICAgICAgZmlsZW5hbWUsIGxpbmUsIHJlYXNvbiA9IHJlcC5sb25n
cmVwcgotICAgICAgICBmaWxlbmFtZSwgbGluZSA9IGl0ZW0ubG9jYXRpb25bOjJdCi0gICAgICAg
IHJlcC5sb25ncmVwciA9IGZpbGVuYW1lLCBsaW5lLCByZWFzb24KLQotIyBjYWxsZWQgYnkgdGVy
bWluYWxyZXBvcnRlciBwcm9ncmVzcyByZXBvcnRpbmcKLQotCi1kZWYgcHl0ZXN0X3JlcG9ydF90
ZXN0c3RhdHVzKHJlcG9ydCk6Ci0gICAgaWYgaGFzYXR0cihyZXBvcnQsICJ3YXN4ZmFpbCIpOgot
ICAgICAgICBpZiByZXBvcnQuc2tpcHBlZDoKLSAgICAgICAgICAgIHJldHVybiAieGZhaWxlZCIs
ICJ4IiwgInhmYWlsIgotICAgICAgICBlbGlmIHJlcG9ydC5wYXNzZWQ6Ci0gICAgICAgICAgICBy
ZXR1cm4gInhwYXNzZWQiLCAiWCIsICgiWFBBU1MiLCB7J3llbGxvdyc6IFRydWV9KQotCi0jIGNh
bGxlZCBieSB0aGUgdGVybWluYWxyZXBvcnRlciBpbnN0YW5jZS9wbHVnaW4KLQotCi1kZWYgcHl0
ZXN0X3Rlcm1pbmFsX3N1bW1hcnkodGVybWluYWxyZXBvcnRlcik6Ci0gICAgdHIgPSB0ZXJtaW5h
bHJlcG9ydGVyCi0gICAgaWYgbm90IHRyLnJlcG9ydGNoYXJzOgotICAgICAgICAjIGZvciBuYW1l
IGluICJ4ZmFpbGVkIHNraXBwZWQgZmFpbGVkIHhwYXNzZWQiOgotICAgICAgICAjICAgIGlmIG5v
dCB0ci5zdGF0cy5nZXQobmFtZSwgMCk6Ci0gICAgICAgICMgICAgICAgIHRyLndyaXRlX2xpbmUo
IkhJTlQ6IHVzZSAnLXInIG9wdGlvbiB0byBzZWUgZXh0cmEgIgotICAgICAgICAjICAgICAgICAg
ICAgICAic3VtbWFyeSBpbmZvIGFib3V0IHRlc3RzIikKLSAgICAgICAgIyAgICAgICAgYnJlYWsK
LSAgICAgICAgcmV0dXJuCi0KLSAgICBsaW5lcyA9IFtdCi0gICAgZm9yIGNoYXIgaW4gdHIucmVw
b3J0Y2hhcnM6Ci0gICAgICAgIGlmIGNoYXIgPT0gIngiOgotICAgICAgICAgICAgc2hvd194ZmFp
bGVkKHRlcm1pbmFscmVwb3J0ZXIsIGxpbmVzKQotICAgICAgICBlbGlmIGNoYXIgPT0gIlgiOgot
ICAgICAgICAgICAgc2hvd194cGFzc2VkKHRlcm1pbmFscmVwb3J0ZXIsIGxpbmVzKQotICAgICAg
ICBlbGlmIGNoYXIgaW4gImZGIjoKLSAgICAgICAgICAgIHNob3dfc2ltcGxlKHRlcm1pbmFscmVw
b3J0ZXIsIGxpbmVzLCAnZmFpbGVkJywgIkZBSUwgJXMiKQotICAgICAgICBlbGlmIGNoYXIgaW4g
InNTIjoKLSAgICAgICAgICAgIHNob3dfc2tpcHBlZCh0ZXJtaW5hbHJlcG9ydGVyLCBsaW5lcykK
LSAgICAgICAgZWxpZiBjaGFyID09ICJFIjoKLSAgICAgICAgICAgIHNob3dfc2ltcGxlKHRlcm1p
bmFscmVwb3J0ZXIsIGxpbmVzLCAnZXJyb3InLCAiRVJST1IgJXMiKQotICAgICAgICBlbGlmIGNo
YXIgPT0gJ3AnOgotICAgICAgICAgICAgc2hvd19zaW1wbGUodGVybWluYWxyZXBvcnRlciwgbGlu
ZXMsICdwYXNzZWQnLCAiUEFTU0VEICVzIikKLQotICAgIGlmIGxpbmVzOgotICAgICAgICB0ci5f
dHcuc2VwKCI9IiwgInNob3J0IHRlc3Qgc3VtbWFyeSBpbmZvIikKLSAgICAgICAgZm9yIGxpbmUg
aW4gbGluZXM6Ci0gICAgICAgICAgICB0ci5fdHcubGluZShsaW5lKQotCi0KLWRlZiBzaG93X3Np
bXBsZSh0ZXJtaW5hbHJlcG9ydGVyLCBsaW5lcywgc3RhdCwgZm9ybWF0KToKLSAgICBmYWlsZWQg
PSB0ZXJtaW5hbHJlcG9ydGVyLnN0YXRzLmdldChzdGF0KQotICAgIGlmIGZhaWxlZDoKLSAgICAg
ICAgZm9yIHJlcCBpbiBmYWlsZWQ6Ci0gICAgICAgICAgICBwb3MgPSB0ZXJtaW5hbHJlcG9ydGVy
LmNvbmZpZy5jd2RfcmVsYXRpdmVfbm9kZWlkKHJlcC5ub2RlaWQpCi0gICAgICAgICAgICBsaW5l
cy5hcHBlbmQoZm9ybWF0ICUgKHBvcywpKQotCi0KLWRlZiBzaG93X3hmYWlsZWQodGVybWluYWxy
ZXBvcnRlciwgbGluZXMpOgotICAgIHhmYWlsZWQgPSB0ZXJtaW5hbHJlcG9ydGVyLnN0YXRzLmdl
dCgieGZhaWxlZCIpCi0gICAgaWYgeGZhaWxlZDoKLSAgICAgICAgZm9yIHJlcCBpbiB4ZmFpbGVk
OgotICAgICAgICAgICAgcG9zID0gdGVybWluYWxyZXBvcnRlci5jb25maWcuY3dkX3JlbGF0aXZl
X25vZGVpZChyZXAubm9kZWlkKQotICAgICAgICAgICAgcmVhc29uID0gcmVwLndhc3hmYWlsCi0g
ICAgICAgICAgICBsaW5lcy5hcHBlbmQoIlhGQUlMICVzIiAlIChwb3MsKSkKLSAgICAgICAgICAg
IGlmIHJlYXNvbjoKLSAgICAgICAgICAgICAgICBsaW5lcy5hcHBlbmQoIiAgIiArIHN0cihyZWFz
b24pKQotCi0KLWRlZiBzaG93X3hwYXNzZWQodGVybWluYWxyZXBvcnRlciwgbGluZXMpOgotICAg
IHhwYXNzZWQgPSB0ZXJtaW5hbHJlcG9ydGVyLnN0YXRzLmdldCgieHBhc3NlZCIpCi0gICAgaWYg
eHBhc3NlZDoKLSAgICAgICAgZm9yIHJlcCBpbiB4cGFzc2VkOgotICAgICAgICAgICAgcG9zID0g
dGVybWluYWxyZXBvcnRlci5jb25maWcuY3dkX3JlbGF0aXZlX25vZGVpZChyZXAubm9kZWlkKQot
ICAgICAgICAgICAgcmVhc29uID0gcmVwLndhc3hmYWlsCi0gICAgICAgICAgICBsaW5lcy5hcHBl
bmQoIlhQQVNTICVzICVzIiAlIChwb3MsIHJlYXNvbikpCi0KLQotZGVmIGNhY2hlZF9ldmFsKGNv
bmZpZywgZXhwciwgZCk6Ci0gICAgaWYgbm90IGhhc2F0dHIoY29uZmlnLCAnX2V2YWxjYWNoZScp
OgotICAgICAgICBjb25maWcuX2V2YWxjYWNoZSA9IHt9Ci0gICAgdHJ5OgotICAgICAgICByZXR1
cm4gY29uZmlnLl9ldmFsY2FjaGVbZXhwcl0KLSAgICBleGNlcHQgS2V5RXJyb3I6Ci0gICAgICAg
IGltcG9ydCBfcHl0ZXN0Ll9jb2RlCi0gICAgICAgIGV4cHJjb2RlID0gX3B5dGVzdC5fY29kZS5j
b21waWxlKGV4cHIsIG1vZGU9ImV2YWwiKQotICAgICAgICBjb25maWcuX2V2YWxjYWNoZVtleHBy
XSA9IHggPSBldmFsKGV4cHJjb2RlLCBkKQotICAgICAgICByZXR1cm4geAotCi0KLWRlZiBmb2xk
ZWRfc2tpcHMoc2tpcHBlZCk6Ci0gICAgZCA9IHt9Ci0gICAgZm9yIGV2ZW50IGluIHNraXBwZWQ6
Ci0gICAgICAgIGtleSA9IGV2ZW50LmxvbmdyZXByCi0gICAgICAgIGFzc2VydCBsZW4oa2V5KSA9
PSAzLCAoZXZlbnQsIGtleSkKLSAgICAgICAga2V5d29yZHMgPSBnZXRhdHRyKGV2ZW50LCAna2V5
d29yZHMnLCB7fSkKLSAgICAgICAgIyBmb2xkaW5nIHJlcG9ydHMgd2l0aCBnbG9iYWwgcHl0ZXN0
bWFyayB2YXJpYWJsZQotICAgICAgICAjIHRoaXMgaXMgd29ya2Fyb3VuZCwgYmVjYXVzZSBmb3Ig
bm93IHdlIGNhbm5vdCBpZGVudGlmeSB0aGUgc2NvcGUgb2YgYSBza2lwIG1hcmtlcgotICAgICAg
ICAjIFRPRE86IHJldmlzaXQgYWZ0ZXIgbWFya3Mgc2NvcGUgd291bGQgYmUgZml4ZWQKLSAgICAg
ICAgd2hlbiA9IGdldGF0dHIoZXZlbnQsICd3aGVuJywgTm9uZSkKLSAgICAgICAgaWYgd2hlbiA9
PSAnc2V0dXAnIGFuZCAnc2tpcCcgaW4ga2V5d29yZHMgYW5kICdweXRlc3RtYXJrJyBub3QgaW4g
a2V5d29yZHM6Ci0gICAgICAgICAgICBrZXkgPSAoa2V5WzBdLCBOb25lLCBrZXlbMl0sICkKLSAg
ICAgICAgZC5zZXRkZWZhdWx0KGtleSwgW10pLmFwcGVuZChldmVudCkKLSAgICB2YWx1ZXMgPSBb
XQotICAgIGZvciBrZXksIGV2ZW50cyBpbiBkLml0ZW1zKCk6Ci0gICAgICAgIHZhbHVlcy5hcHBl
bmQoKGxlbihldmVudHMpLCkgKyBrZXkpCi0gICAgcmV0dXJuIHZhbHVlcwotCi0KLWRlZiBzaG93
X3NraXBwZWQodGVybWluYWxyZXBvcnRlciwgbGluZXMpOgotICAgIHRyID0gdGVybWluYWxyZXBv
cnRlcgotICAgIHNraXBwZWQgPSB0ci5zdGF0cy5nZXQoJ3NraXBwZWQnLCBbXSkKLSAgICBpZiBz
a2lwcGVkOgotICAgICAgICAjIGlmIG5vdCB0ci5oYXNvcHQoJ3NraXBwZWQnKToKLSAgICAgICAg
IyAgICB0ci53cml0ZV9saW5lKAotICAgICAgICAjICAgICAgICAiJWQgc2tpcHBlZCB0ZXN0cywg
c3BlY2lmeSAtcnMgZm9yIG1vcmUgaW5mbyIgJQotICAgICAgICAjICAgICAgICBsZW4oc2tpcHBl
ZCkpCi0gICAgICAgICMgICAgcmV0dXJuCi0gICAgICAgIGZza2lwcyA9IGZvbGRlZF9za2lwcyhz
a2lwcGVkKQotICAgICAgICBpZiBmc2tpcHM6Ci0gICAgICAgICAgICAjIHRyLndyaXRlX3NlcCgi
XyIsICJza2lwcGVkIHRlc3Qgc3VtbWFyeSIpCi0gICAgICAgICAgICBmb3IgbnVtLCBmc3BhdGgs
IGxpbmVubywgcmVhc29uIGluIGZza2lwczoKLSAgICAgICAgICAgICAgICBpZiByZWFzb24uc3Rh
cnRzd2l0aCgiU2tpcHBlZDogIik6Ci0gICAgICAgICAgICAgICAgICAgIHJlYXNvbiA9IHJlYXNv
bls5Ol0KLSAgICAgICAgICAgICAgICBpZiBsaW5lbm8gaXMgbm90IE5vbmU6Ci0gICAgICAgICAg
ICAgICAgICAgIGxpbmVzLmFwcGVuZCgKLSAgICAgICAgICAgICAgICAgICAgICAgICJTS0lQIFsl
ZF0gJXM6JWQ6ICVzIiAlCi0gICAgICAgICAgICAgICAgICAgICAgICAobnVtLCBmc3BhdGgsIGxp
bmVubyArIDEsIHJlYXNvbikpCi0gICAgICAgICAgICAgICAgZWxzZToKLSAgICAgICAgICAgICAg
ICAgICAgbGluZXMuYXBwZW5kKAotICAgICAgICAgICAgICAgICAgICAgICAgIlNLSVAgWyVkXSAl
czogJXMiICUKLSAgICAgICAgICAgICAgICAgICAgICAgIChudW0sIGZzcGF0aCwgcmVhc29uKSkK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L19weXRlc3QvdGVybWluYWwucHkgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVz
dC9fcHl0ZXN0L3Rlcm1pbmFsLnB5CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxYWJh
NWU4NDVlNTE5MGFmNDZiZGY0NGEwMzUyZjljZDQwNzY5YjYxLi4wMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L19weXRlc3QvdGVybWluYWwu
cHkKKysrIC9kZXYvbnVsbApAQCAtMSw3MDMgKzAsMCBAQAotIiIiIHRlcm1pbmFsIHJlcG9ydGlu
ZyBvZiB0aGUgZnVsbCB0ZXN0aW5nIHByb2Nlc3MuCi0KLVRoaXMgaXMgYSBnb29kIHNvdXJjZSBm
b3IgbG9va2luZyBhdCB0aGUgdmFyaW91cyByZXBvcnRpbmcgaG9va3MuCi0iIiIKLWZyb20gX19m
dXR1cmVfXyBpbXBvcnQgYWJzb2x1dGVfaW1wb3J0LCBkaXZpc2lvbiwgcHJpbnRfZnVuY3Rpb24K
LQotaW1wb3J0IGl0ZXJ0b29scwotaW1wb3J0IHBsYXRmb3JtCi1pbXBvcnQgc3lzCi1pbXBvcnQg
dGltZQotCi1pbXBvcnQgcGx1Z2d5Ci1pbXBvcnQgcHkKLWltcG9ydCBzaXgKLQotaW1wb3J0IHB5
dGVzdAotZnJvbSBfcHl0ZXN0IGltcG9ydCBub2RlcwotZnJvbSBfcHl0ZXN0Lm1haW4gaW1wb3J0
IEVYSVRfT0ssIEVYSVRfVEVTVFNGQUlMRUQsIEVYSVRfSU5URVJSVVBURUQsIFwKLSAgICBFWElU
X1VTQUdFRVJST1IsIEVYSVRfTk9URVNUU0NPTExFQ1RFRAotCi0KLWRlZiBweXRlc3RfYWRkb3B0
aW9uKHBhcnNlcik6Ci0gICAgZ3JvdXAgPSBwYXJzZXIuZ2V0Z3JvdXAoInRlcm1pbmFsIHJlcG9y
dGluZyIsICJyZXBvcnRpbmciLCBhZnRlcj0iZ2VuZXJhbCIpCi0gICAgZ3JvdXAuX2FkZG9wdGlv
bignLXYnLCAnLS12ZXJib3NlJywgYWN0aW9uPSJjb3VudCIsCi0gICAgICAgICAgICAgICAgICAg
ICBkZXN0PSJ2ZXJib3NlIiwgZGVmYXVsdD0wLCBoZWxwPSJpbmNyZWFzZSB2ZXJib3NpdHkuIiks
Ci0gICAgZ3JvdXAuX2FkZG9wdGlvbignLXEnLCAnLS1xdWlldCcsIGFjdGlvbj0iY291bnQiLAot
ICAgICAgICAgICAgICAgICAgICAgZGVzdD0icXVpZXQiLCBkZWZhdWx0PTAsIGhlbHA9ImRlY3Jl
YXNlIHZlcmJvc2l0eS4iKSwKLSAgICBncm91cC5fYWRkb3B0aW9uKCctcicsCi0gICAgICAgICAg
ICAgICAgICAgICBhY3Rpb249InN0b3JlIiwgZGVzdD0icmVwb3J0Y2hhcnMiLCBkZWZhdWx0PScn
LCBtZXRhdmFyPSJjaGFycyIsCi0gICAgICAgICAgICAgICAgICAgICBoZWxwPSJzaG93IGV4dHJh
IHRlc3Qgc3VtbWFyeSBpbmZvIGFzIHNwZWNpZmllZCBieSBjaGFycyAoZilhaWxlZCwgIgotICAg
ICAgICAgICAgICAgICAgICAgIihFKWVycm9yLCAocylza2lwcGVkLCAoeClmYWlsZWQsIChYKXBh
c3NlZCwgIgotICAgICAgICAgICAgICAgICAgICAgIihwKXBhc3NlZCwgKFApcGFzc2VkIHdpdGgg
b3V0cHV0LCAoYSlhbGwgZXhjZXB0IHBQLiAiCi0gICAgICAgICAgICAgICAgICAgICAiV2Fybmlu
Z3MgYXJlIGRpc3BsYXllZCBhdCBhbGwgdGltZXMgZXhjZXB0IHdoZW4gIgotICAgICAgICAgICAg
ICAgICAgICAgIi0tZGlzYWJsZS13YXJuaW5ncyBpcyBzZXQiKQotICAgIGdyb3VwLl9hZGRvcHRp
b24oJy0tZGlzYWJsZS13YXJuaW5ncycsICctLWRpc2FibGUtcHl0ZXN0LXdhcm5pbmdzJywgZGVm
YXVsdD1GYWxzZSwKLSAgICAgICAgICAgICAgICAgICAgIGRlc3Q9J2Rpc2FibGVfd2FybmluZ3Mn
LCBhY3Rpb249J3N0b3JlX3RydWUnLAotICAgICAgICAgICAgICAgICAgICAgaGVscD0nZGlzYWJs
ZSB3YXJuaW5ncyBzdW1tYXJ5JykKLSAgICBncm91cC5fYWRkb3B0aW9uKCctbCcsICctLXNob3ds
b2NhbHMnLAotICAgICAgICAgICAgICAgICAgICAgYWN0aW9uPSJzdG9yZV90cnVlIiwgZGVzdD0i
c2hvd2xvY2FscyIsIGRlZmF1bHQ9RmFsc2UsCi0gICAgICAgICAgICAgICAgICAgICBoZWxwPSJz
aG93IGxvY2FscyBpbiB0cmFjZWJhY2tzIChkaXNhYmxlZCBieSBkZWZhdWx0KS4iKQotICAgIGdy
b3VwLl9hZGRvcHRpb24oJy0tdGInLCBtZXRhdmFyPSJzdHlsZSIsCi0gICAgICAgICAgICAgICAg
ICAgICBhY3Rpb249InN0b3JlIiwgZGVzdD0idGJzdHlsZSIsIGRlZmF1bHQ9J2F1dG8nLAotICAg
ICAgICAgICAgICAgICAgICAgY2hvaWNlcz1bJ2F1dG8nLCAnbG9uZycsICdzaG9ydCcsICdubycs
ICdsaW5lJywgJ25hdGl2ZSddLAotICAgICAgICAgICAgICAgICAgICAgaGVscD0idHJhY2ViYWNr
IHByaW50IG1vZGUgKGF1dG8vbG9uZy9zaG9ydC9saW5lL25hdGl2ZS9ubykuIikKLSAgICBncm91
cC5fYWRkb3B0aW9uKCctLWZ1bGx0cmFjZScsICctLWZ1bGwtdHJhY2UnLAotICAgICAgICAgICAg
ICAgICAgICAgYWN0aW9uPSJzdG9yZV90cnVlIiwgZGVmYXVsdD1GYWxzZSwKLSAgICAgICAgICAg
ICAgICAgICAgIGhlbHA9ImRvbid0IGN1dCBhbnkgdHJhY2ViYWNrcyAoZGVmYXVsdCBpcyB0byBj
dXQpLiIpCi0gICAgZ3JvdXAuX2FkZG9wdGlvbignLS1jb2xvcicsIG1ldGF2YXI9ImNvbG9yIiwK
LSAgICAgICAgICAgICAgICAgICAgIGFjdGlvbj0ic3RvcmUiLCBkZXN0PSJjb2xvciIsIGRlZmF1
bHQ9J2F1dG8nLAotICAgICAgICAgICAgICAgICAgICAgY2hvaWNlcz1bJ3llcycsICdubycsICdh
dXRvJ10sCi0gICAgICAgICAgICAgICAgICAgICBoZWxwPSJjb2xvciB0ZXJtaW5hbCBvdXRwdXQg
KHllcy9uby9hdXRvKS4iKQotCi0gICAgcGFyc2VyLmFkZGluaSgiY29uc29sZV9vdXRwdXRfc3R5
bGUiLAotICAgICAgICAgICAgICAgICAgaGVscD0iY29uc29sZSBvdXRwdXQ6IGNsYXNzaWMgb3Ig
d2l0aCBhZGRpdGlvbmFsIHByb2dyZXNzIGluZm9ybWF0aW9uIChjbGFzc2ljfHByb2dyZXNzKS4i
LAotICAgICAgICAgICAgICAgICAgZGVmYXVsdD0ncHJvZ3Jlc3MnKQotCi0KLWRlZiBweXRlc3Rf
Y29uZmlndXJlKGNvbmZpZyk6Ci0gICAgY29uZmlnLm9wdGlvbi52ZXJib3NlIC09IGNvbmZpZy5v
cHRpb24ucXVpZXQKLSAgICByZXBvcnRlciA9IFRlcm1pbmFsUmVwb3J0ZXIoY29uZmlnLCBzeXMu
c3Rkb3V0KQotICAgIGNvbmZpZy5wbHVnaW5tYW5hZ2VyLnJlZ2lzdGVyKHJlcG9ydGVyLCAndGVy
bWluYWxyZXBvcnRlcicpCi0gICAgaWYgY29uZmlnLm9wdGlvbi5kZWJ1ZyBvciBjb25maWcub3B0
aW9uLnRyYWNlY29uZmlnOgotICAgICAgICBkZWYgbXl3cml0ZXIodGFncywgYXJncyk6Ci0gICAg
ICAgICAgICBtc2cgPSAiICIuam9pbihtYXAoc3RyLCBhcmdzKSkKLSAgICAgICAgICAgIHJlcG9y
dGVyLndyaXRlX2xpbmUoIlt0cmFjZWNvbmZpZ10gIiArIG1zZykKLSAgICAgICAgY29uZmlnLnRy
YWNlLnJvb3Quc2V0cHJvY2Vzc29yKCJweXRlc3Q6Y29uZmlnIiwgbXl3cml0ZXIpCi0KLQotZGVm
IGdldHJlcG9ydG9wdChjb25maWcpOgotICAgIHJlcG9ydG9wdHMgPSAiIgotICAgIHJlcG9ydGNo
YXJzID0gY29uZmlnLm9wdGlvbi5yZXBvcnRjaGFycwotICAgIGlmIG5vdCBjb25maWcub3B0aW9u
LmRpc2FibGVfd2FybmluZ3MgYW5kICd3JyBub3QgaW4gcmVwb3J0Y2hhcnM6Ci0gICAgICAgIHJl
cG9ydGNoYXJzICs9ICd3JwotICAgIGVsaWYgY29uZmlnLm9wdGlvbi5kaXNhYmxlX3dhcm5pbmdz
IGFuZCAndycgaW4gcmVwb3J0Y2hhcnM6Ci0gICAgICAgIHJlcG9ydGNoYXJzID0gcmVwb3J0Y2hh
cnMucmVwbGFjZSgndycsICcnKQotICAgIGlmIHJlcG9ydGNoYXJzOgotICAgICAgICBmb3IgY2hh
ciBpbiByZXBvcnRjaGFyczoKLSAgICAgICAgICAgIGlmIGNoYXIgbm90IGluIHJlcG9ydG9wdHMg
YW5kIGNoYXIgIT0gJ2EnOgotICAgICAgICAgICAgICAgIHJlcG9ydG9wdHMgKz0gY2hhcgotICAg
ICAgICAgICAgZWxpZiBjaGFyID09ICdhJzoKLSAgICAgICAgICAgICAgICByZXBvcnRvcHRzID0g
J2ZFc3hYdycKLSAgICByZXR1cm4gcmVwb3J0b3B0cwotCi0KLWRlZiBweXRlc3RfcmVwb3J0X3Rl
c3RzdGF0dXMocmVwb3J0KToKLSAgICBpZiByZXBvcnQucGFzc2VkOgotICAgICAgICBsZXR0ZXIg
PSAiLiIKLSAgICBlbGlmIHJlcG9ydC5za2lwcGVkOgotICAgICAgICBsZXR0ZXIgPSAicyIKLSAg
ICBlbGlmIHJlcG9ydC5mYWlsZWQ6Ci0gICAgICAgIGxldHRlciA9ICJGIgotICAgICAgICBpZiBy
ZXBvcnQud2hlbiAhPSAiY2FsbCI6Ci0gICAgICAgICAgICBsZXR0ZXIgPSAiZiIKLSAgICByZXR1
cm4gcmVwb3J0Lm91dGNvbWUsIGxldHRlciwgcmVwb3J0Lm91dGNvbWUudXBwZXIoKQotCi0KLWNs
YXNzIFdhcm5pbmdSZXBvcnQ6Ci0gICAgIiIiCi0gICAgU2ltcGxlIHN0cnVjdHVyZSB0byBob2xk
IHdhcm5pbmdzIGluZm9ybWF0aW9uIGNhcHR1cmVkIGJ5IGBgcHl0ZXN0X2xvZ3dhcm5pbmdgYC4K
LSAgICAiIiIKLQotICAgIGRlZiBfX2luaXRfXyhzZWxmLCBjb2RlLCBtZXNzYWdlLCBub2RlaWQ9
Tm9uZSwgZnNsb2NhdGlvbj1Ob25lKToKLSAgICAgICAgIiIiCi0gICAgICAgIDpwYXJhbSBjb2Rl
OiB1bnVzZWQKLSAgICAgICAgOnBhcmFtIHN0ciBtZXNzYWdlOiB1c2VyIGZyaWVuZGx5IG1lc3Nh
Z2UgYWJvdXQgdGhlIHdhcm5pbmcKLSAgICAgICAgOnBhcmFtIHN0cnxOb25lIG5vZGVpZDogbm9k
ZSBpZCB0aGF0IGdlbmVyYXRlZCB0aGUgd2FybmluZyAoc2VlIGBgZ2V0X2xvY2F0aW9uYGApLgot
ICAgICAgICA6cGFyYW0gdHVwbGV8cHkucGF0aC5sb2NhbCBmc2xvY2F0aW9uOgotICAgICAgICAg
ICAgZmlsZSBzeXN0ZW0gbG9jYXRpb24gb2YgdGhlIHNvdXJjZSBvZiB0aGUgd2FybmluZyAoc2Vl
IGBgZ2V0X2xvY2F0aW9uYGApLgotICAgICAgICAiIiIKLSAgICAgICAgc2VsZi5jb2RlID0gY29k
ZQotICAgICAgICBzZWxmLm1lc3NhZ2UgPSBtZXNzYWdlCi0gICAgICAgIHNlbGYubm9kZWlkID0g
bm9kZWlkCi0gICAgICAgIHNlbGYuZnNsb2NhdGlvbiA9IGZzbG9jYXRpb24KLQotICAgIGRlZiBn
ZXRfbG9jYXRpb24oc2VsZiwgY29uZmlnKToKLSAgICAgICAgIiIiCi0gICAgICAgIFJldHVybnMg
dGhlIG1vcmUgdXNlci1mcmllbmRseSBpbmZvcm1hdGlvbiBhYm91dCB0aGUgbG9jYXRpb24KLSAg
ICAgICAgb2YgYSB3YXJuaW5nLCBvciBOb25lLgotICAgICAgICAiIiIKLSAgICAgICAgaWYgc2Vs
Zi5ub2RlaWQ6Ci0gICAgICAgICAgICByZXR1cm4gc2VsZi5ub2RlaWQKLSAgICAgICAgaWYgc2Vs
Zi5mc2xvY2F0aW9uOgotICAgICAgICAgICAgaWYgaXNpbnN0YW5jZShzZWxmLmZzbG9jYXRpb24s
IHR1cGxlKSBhbmQgbGVuKHNlbGYuZnNsb2NhdGlvbikgPj0gMjoKLSAgICAgICAgICAgICAgICBm
aWxlbmFtZSwgbGluZW51bSA9IHNlbGYuZnNsb2NhdGlvbls6Ml0KLSAgICAgICAgICAgICAgICBy
ZWxwYXRoID0gcHkucGF0aC5sb2NhbChmaWxlbmFtZSkucmVsdG8oY29uZmlnLmludm9jYXRpb25f
ZGlyKQotICAgICAgICAgICAgICAgIHJldHVybiAnJXM6JXMnICUgKHJlbHBhdGgsIGxpbmVudW0p
Ci0gICAgICAgICAgICBlbHNlOgotICAgICAgICAgICAgICAgIHJldHVybiBzdHIoc2VsZi5mc2xv
Y2F0aW9uKQotICAgICAgICByZXR1cm4gTm9uZQotCi0KLWNsYXNzIFRlcm1pbmFsUmVwb3J0ZXI6
Ci0gICAgZGVmIF9faW5pdF9fKHNlbGYsIGNvbmZpZywgZmlsZT1Ob25lKToKLSAgICAgICAgaW1w
b3J0IF9weXRlc3QuY29uZmlnCi0gICAgICAgIHNlbGYuY29uZmlnID0gY29uZmlnCi0gICAgICAg
IHNlbGYudmVyYm9zaXR5ID0gc2VsZi5jb25maWcub3B0aW9uLnZlcmJvc2UKLSAgICAgICAgc2Vs
Zi5zaG93aGVhZGVyID0gc2VsZi52ZXJib3NpdHkgPj0gMAotICAgICAgICBzZWxmLnNob3dmc3Bh
dGggPSBzZWxmLnZlcmJvc2l0eSA+PSAwCi0gICAgICAgIHNlbGYuc2hvd2xvbmd0ZXN0aW5mbyA9
IHNlbGYudmVyYm9zaXR5ID4gMAotICAgICAgICBzZWxmLl9udW1jb2xsZWN0ZWQgPSAwCi0gICAg
ICAgIHNlbGYuX3Nlc3Npb24gPSBOb25lCi0KLSAgICAgICAgc2VsZi5zdGF0cyA9IHt9Ci0gICAg
ICAgIHNlbGYuc3RhcnRkaXIgPSBweS5wYXRoLmxvY2FsKCkKLSAgICAgICAgaWYgZmlsZSBpcyBO
b25lOgotICAgICAgICAgICAgZmlsZSA9IHN5cy5zdGRvdXQKLSAgICAgICAgc2VsZi5fdHcgPSBf
cHl0ZXN0LmNvbmZpZy5jcmVhdGVfdGVybWluYWxfd3JpdGVyKGNvbmZpZywgZmlsZSkKLSAgICAg
ICAgIyBzZWxmLndyaXRlciB3aWxsIGJlIGRlcHJlY2F0ZWQgaW4gcHl0ZXN0LTMuNAotICAgICAg
ICBzZWxmLndyaXRlciA9IHNlbGYuX3R3Ci0gICAgICAgIHNlbGYuX3NjcmVlbl93aWR0aCA9IHNl
bGYuX3R3LmZ1bGx3aWR0aAotICAgICAgICBzZWxmLmN1cnJlbnRmc3BhdGggPSBOb25lCi0gICAg
ICAgIHNlbGYucmVwb3J0Y2hhcnMgPSBnZXRyZXBvcnRvcHQoY29uZmlnKQotICAgICAgICBzZWxm
Lmhhc21hcmt1cCA9IHNlbGYuX3R3Lmhhc21hcmt1cAotICAgICAgICBzZWxmLmlzYXR0eSA9IGZp
bGUuaXNhdHR5KCkKLSAgICAgICAgc2VsZi5fcHJvZ3Jlc3NfaXRlbXNfcmVwb3J0ZWQgPSAwCi0g
ICAgICAgIHNlbGYuX3Nob3dfcHJvZ3Jlc3NfaW5mbyA9IHNlbGYuY29uZmlnLmdldGluaSgnY29u
c29sZV9vdXRwdXRfc3R5bGUnKSA9PSAncHJvZ3Jlc3MnCi0KLSAgICBkZWYgaGFzb3B0KHNlbGYs
IGNoYXIpOgotICAgICAgICBjaGFyID0geyd4ZmFpbGVkJzogJ3gnLCAnc2tpcHBlZCc6ICdzJ30u
Z2V0KGNoYXIsIGNoYXIpCi0gICAgICAgIHJldHVybiBjaGFyIGluIHNlbGYucmVwb3J0Y2hhcnMK
LQotICAgIGRlZiB3cml0ZV9mc3BhdGhfcmVzdWx0KHNlbGYsIG5vZGVpZCwgcmVzKToKLSAgICAg
ICAgZnNwYXRoID0gc2VsZi5jb25maWcucm9vdGRpci5qb2luKG5vZGVpZC5zcGxpdCgiOjoiKVsw
XSkKLSAgICAgICAgaWYgZnNwYXRoICE9IHNlbGYuY3VycmVudGZzcGF0aDoKLSAgICAgICAgICAg
IGlmIHNlbGYuY3VycmVudGZzcGF0aCBpcyBub3QgTm9uZToKLSAgICAgICAgICAgICAgICBzZWxm
Ll93cml0ZV9wcm9ncmVzc19pbmZvcm1hdGlvbl9maWxsaW5nX3NwYWNlKCkKLSAgICAgICAgICAg
IHNlbGYuY3VycmVudGZzcGF0aCA9IGZzcGF0aAotICAgICAgICAgICAgZnNwYXRoID0gc2VsZi5z
dGFydGRpci5iZXN0cmVscGF0aChmc3BhdGgpCi0gICAgICAgICAgICBzZWxmLl90dy5saW5lKCkK
LSAgICAgICAgICAgIHNlbGYuX3R3LndyaXRlKGZzcGF0aCArICIgIikKLSAgICAgICAgc2VsZi5f
dHcud3JpdGUocmVzKQotCi0gICAgZGVmIHdyaXRlX2Vuc3VyZV9wcmVmaXgoc2VsZiwgcHJlZml4
LCBleHRyYT0iIiwgKiprd2FyZ3MpOgotICAgICAgICBpZiBzZWxmLmN1cnJlbnRmc3BhdGggIT0g
cHJlZml4OgotICAgICAgICAgICAgc2VsZi5fdHcubGluZSgpCi0gICAgICAgICAgICBzZWxmLmN1
cnJlbnRmc3BhdGggPSBwcmVmaXgKLSAgICAgICAgICAgIHNlbGYuX3R3LndyaXRlKHByZWZpeCkK
LSAgICAgICAgaWYgZXh0cmE6Ci0gICAgICAgICAgICBzZWxmLl90dy53cml0ZShleHRyYSwgKipr
d2FyZ3MpCi0gICAgICAgICAgICBzZWxmLmN1cnJlbnRmc3BhdGggPSAtMgotICAgICAgICAgICAg
c2VsZi5fd3JpdGVfcHJvZ3Jlc3NfaW5mb3JtYXRpb25fZmlsbGluZ19zcGFjZSgpCi0KLSAgICBk
ZWYgZW5zdXJlX25ld2xpbmUoc2VsZik6Ci0gICAgICAgIGlmIHNlbGYuY3VycmVudGZzcGF0aDoK
LSAgICAgICAgICAgIHNlbGYuX3R3LmxpbmUoKQotICAgICAgICAgICAgc2VsZi5jdXJyZW50ZnNw
YXRoID0gTm9uZQotCi0gICAgZGVmIHdyaXRlKHNlbGYsIGNvbnRlbnQsICoqbWFya3VwKToKLSAg
ICAgICAgc2VsZi5fdHcud3JpdGUoY29udGVudCwgKiptYXJrdXApCi0KLSAgICBkZWYgd3JpdGVf
bGluZShzZWxmLCBsaW5lLCAqKm1hcmt1cCk6Ci0gICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKGxp
bmUsIHNpeC50ZXh0X3R5cGUpOgotICAgICAgICAgICAgbGluZSA9IHNpeC50ZXh0X3R5cGUobGlu
ZSwgZXJyb3JzPSJyZXBsYWNlIikKLSAgICAgICAgc2VsZi5lbnN1cmVfbmV3bGluZSgpCi0gICAg
ICAgIHNlbGYuX3R3LmxpbmUobGluZSwgKiptYXJrdXApCi0KLSAgICBkZWYgcmV3cml0ZShzZWxm
LCBsaW5lLCAqKm1hcmt1cCk6Ci0gICAgICAgICIiIgotICAgICAgICBSZXdpbmRzIHRoZSB0ZXJt
aW5hbCBjdXJzb3IgdG8gdGhlIGJlZ2lubmluZyBhbmQgd3JpdGVzIHRoZSBnaXZlbiBsaW5lLgot
Ci0gICAgICAgIDprd2FyZyBlcmFzZTogaWYgVHJ1ZSwgd2lsbCBhbHNvIGFkZCBzcGFjZXMgdW50
aWwgdGhlIGZ1bGwgdGVybWluYWwgd2lkdGggdG8gZW5zdXJlCi0gICAgICAgICAgICBwcmV2aW91
cyBsaW5lcyBhcmUgcHJvcGVybHkgZXJhc2VkLgotCi0gICAgICAgIFRoZSByZXN0IG9mIHRoZSBr
ZXl3b3JkIGFyZ3VtZW50cyBhcmUgbWFya3VwIGluc3RydWN0aW9ucy4KLSAgICAgICAgIiIiCi0g
ICAgICAgIGVyYXNlID0gbWFya3VwLnBvcCgnZXJhc2UnLCBGYWxzZSkKLSAgICAgICAgaWYgZXJh
c2U6Ci0gICAgICAgICAgICBmaWxsX2NvdW50ID0gc2VsZi5fdHcuZnVsbHdpZHRoIC0gbGVuKGxp
bmUpIC0gMQotICAgICAgICAgICAgZmlsbCA9ICcgJyAqIGZpbGxfY291bnQKLSAgICAgICAgZWxz
ZToKLSAgICAgICAgICAgIGZpbGwgPSAnJwotICAgICAgICBsaW5lID0gc3RyKGxpbmUpCi0gICAg
ICAgIHNlbGYuX3R3LndyaXRlKCJcciIgKyBsaW5lICsgZmlsbCwgKiptYXJrdXApCi0KLSAgICBk
ZWYgd3JpdGVfc2VwKHNlbGYsIHNlcCwgdGl0bGU9Tm9uZSwgKiptYXJrdXApOgotICAgICAgICBz
ZWxmLmVuc3VyZV9uZXdsaW5lKCkKLSAgICAgICAgc2VsZi5fdHcuc2VwKHNlcCwgdGl0bGUsICoq
bWFya3VwKQotCi0gICAgZGVmIHNlY3Rpb24oc2VsZiwgdGl0bGUsIHNlcD0iPSIsICoqa3cpOgot
ICAgICAgICBzZWxmLl90dy5zZXAoc2VwLCB0aXRsZSwgKiprdykKLQotICAgIGRlZiBsaW5lKHNl
bGYsIG1zZywgKiprdyk6Ci0gICAgICAgIHNlbGYuX3R3LmxpbmUobXNnLCAqKmt3KQotCi0gICAg
ZGVmIHB5dGVzdF9pbnRlcm5hbGVycm9yKHNlbGYsIGV4Y3JlcHIpOgotICAgICAgICBmb3IgbGlu
ZSBpbiBzaXgudGV4dF90eXBlKGV4Y3JlcHIpLnNwbGl0KCJcbiIpOgotICAgICAgICAgICAgc2Vs
Zi53cml0ZV9saW5lKCJJTlRFUk5BTEVSUk9SPiAiICsgbGluZSkKLSAgICAgICAgcmV0dXJuIDEK
LQotICAgIGRlZiBweXRlc3RfbG9nd2FybmluZyhzZWxmLCBjb2RlLCBmc2xvY2F0aW9uLCBtZXNz
YWdlLCBub2RlaWQpOgotICAgICAgICB3YXJuaW5ncyA9IHNlbGYuc3RhdHMuc2V0ZGVmYXVsdCgi
d2FybmluZ3MiLCBbXSkKLSAgICAgICAgd2FybmluZyA9IFdhcm5pbmdSZXBvcnQoY29kZT1jb2Rl
LCBmc2xvY2F0aW9uPWZzbG9jYXRpb24sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IG1lc3NhZ2U9bWVzc2FnZSwgbm9kZWlkPW5vZGVpZCkKLSAgICAgICAgd2FybmluZ3MuYXBwZW5k
KHdhcm5pbmcpCi0KLSAgICBkZWYgcHl0ZXN0X3BsdWdpbl9yZWdpc3RlcmVkKHNlbGYsIHBsdWdp
bik6Ci0gICAgICAgIGlmIHNlbGYuY29uZmlnLm9wdGlvbi50cmFjZWNvbmZpZzoKLSAgICAgICAg
ICAgIG1zZyA9ICJQTFVHSU4gcmVnaXN0ZXJlZDogJXMiICUgKHBsdWdpbiwpCi0gICAgICAgICAg
ICAjIFhYWCB0aGlzIGV2ZW50IG1heSBoYXBwZW4gZHVyaW5nIHNldHVwL3RlYXJkb3duIHRpbWUK
LSAgICAgICAgICAgICMgICAgIHdoaWNoIHVuZm9ydHVuYXRlbHkgY2FwdHVyZXMgb3VyIG91dHB1
dCBoZXJlCi0gICAgICAgICAgICAjICAgICB3aGljaCBnYXJibGVzIG91ciBvdXRwdXQgaWYgd2Ug
dXNlIHNlbGYud3JpdGVfbGluZQotICAgICAgICAgICAgc2VsZi53cml0ZV9saW5lKG1zZykKLQot
ICAgIGRlZiBweXRlc3RfZGVzZWxlY3RlZChzZWxmLCBpdGVtcyk6Ci0gICAgICAgIHNlbGYuc3Rh
dHMuc2V0ZGVmYXVsdCgnZGVzZWxlY3RlZCcsIFtdKS5leHRlbmQoaXRlbXMpCi0KLSAgICBkZWYg
cHl0ZXN0X3J1bnRlc3RfbG9nc3RhcnQoc2VsZiwgbm9kZWlkLCBsb2NhdGlvbik6Ci0gICAgICAg
ICMgZW5zdXJlIHRoYXQgdGhlIHBhdGggaXMgcHJpbnRlZCBiZWZvcmUgdGhlCi0gICAgICAgICMg
MXN0IHRlc3Qgb2YgYSBtb2R1bGUgc3RhcnRzIHJ1bm5pbmcKLSAgICAgICAgaWYgc2VsZi5zaG93
bG9uZ3Rlc3RpbmZvOgotICAgICAgICAgICAgbGluZSA9IHNlbGYuX2xvY2F0aW9ubGluZShub2Rl
aWQsICpsb2NhdGlvbikKLSAgICAgICAgICAgIHNlbGYud3JpdGVfZW5zdXJlX3ByZWZpeChsaW5l
LCAiIikKLSAgICAgICAgZWxpZiBzZWxmLnNob3dmc3BhdGg6Ci0gICAgICAgICAgICBmc2lkID0g
bm9kZWlkLnNwbGl0KCI6OiIpWzBdCi0gICAgICAgICAgICBzZWxmLndyaXRlX2ZzcGF0aF9yZXN1
bHQoZnNpZCwgIiIpCi0KLSAgICBkZWYgcHl0ZXN0X3J1bnRlc3RfbG9ncmVwb3J0KHNlbGYsIHJl
cG9ydCk6Ci0gICAgICAgIHJlcCA9IHJlcG9ydAotICAgICAgICByZXMgPSBzZWxmLmNvbmZpZy5o
b29rLnB5dGVzdF9yZXBvcnRfdGVzdHN0YXR1cyhyZXBvcnQ9cmVwKQotICAgICAgICBjYXQsIGxl
dHRlciwgd29yZCA9IHJlcwotICAgICAgICBpZiBpc2luc3RhbmNlKHdvcmQsIHR1cGxlKToKLSAg
ICAgICAgICAgIHdvcmQsIG1hcmt1cCA9IHdvcmQKLSAgICAgICAgZWxzZToKLSAgICAgICAgICAg
IG1hcmt1cCA9IE5vbmUKLSAgICAgICAgc2VsZi5zdGF0cy5zZXRkZWZhdWx0KGNhdCwgW10pLmFw
cGVuZChyZXApCi0gICAgICAgIHNlbGYuX3Rlc3RzX3JhbiA9IFRydWUKLSAgICAgICAgaWYgbm90
IGxldHRlciBhbmQgbm90IHdvcmQ6Ci0gICAgICAgICAgICAjIHByb2JhYmx5IHBhc3NlZCBzZXR1
cC90ZWFyZG93bgotICAgICAgICAgICAgcmV0dXJuCi0gICAgICAgIHJ1bm5pbmdfeGRpc3QgPSBo
YXNhdHRyKHJlcCwgJ25vZGUnKQotICAgICAgICBzZWxmLl9wcm9ncmVzc19pdGVtc19yZXBvcnRl
ZCArPSAxCi0gICAgICAgIGlmIHNlbGYudmVyYm9zaXR5IDw9IDA6Ci0gICAgICAgICAgICBpZiBu
b3QgcnVubmluZ194ZGlzdCBhbmQgc2VsZi5zaG93ZnNwYXRoOgotICAgICAgICAgICAgICAgIHNl
bGYud3JpdGVfZnNwYXRoX3Jlc3VsdChyZXAubm9kZWlkLCBsZXR0ZXIpCi0gICAgICAgICAgICBl
bHNlOgotICAgICAgICAgICAgICAgIHNlbGYuX3R3LndyaXRlKGxldHRlcikKLSAgICAgICAgICAg
IHNlbGYuX3dyaXRlX3Byb2dyZXNzX2lmX3Bhc3RfZWRnZSgpCi0gICAgICAgIGVsc2U6Ci0gICAg
ICAgICAgICBpZiBtYXJrdXAgaXMgTm9uZToKLSAgICAgICAgICAgICAgICBpZiByZXAucGFzc2Vk
OgotICAgICAgICAgICAgICAgICAgICBtYXJrdXAgPSB7J2dyZWVuJzogVHJ1ZX0KLSAgICAgICAg
ICAgICAgICBlbGlmIHJlcC5mYWlsZWQ6Ci0gICAgICAgICAgICAgICAgICAgIG1hcmt1cCA9IHsn
cmVkJzogVHJ1ZX0KLSAgICAgICAgICAgICAgICBlbGlmIHJlcC5za2lwcGVkOgotICAgICAgICAg
ICAgICAgICAgICBtYXJrdXAgPSB7J3llbGxvdyc6IFRydWV9Ci0gICAgICAgICAgICAgICAgZWxz
ZToKLSAgICAgICAgICAgICAgICAgICAgbWFya3VwID0ge30KLSAgICAgICAgICAgIGxpbmUgPSBz
ZWxmLl9sb2NhdGlvbmxpbmUocmVwLm5vZGVpZCwgKnJlcC5sb2NhdGlvbikKLSAgICAgICAgICAg
IGlmIG5vdCBydW5uaW5nX3hkaXN0OgotICAgICAgICAgICAgICAgIHNlbGYud3JpdGVfZW5zdXJl
X3ByZWZpeChsaW5lLCB3b3JkLCAqKm1hcmt1cCkKLSAgICAgICAgICAgIGVsc2U6Ci0gICAgICAg
ICAgICAgICAgc2VsZi5lbnN1cmVfbmV3bGluZSgpCi0gICAgICAgICAgICAgICAgc2VsZi5fdHcu
d3JpdGUoIlslc10iICUgcmVwLm5vZGUuZ2F0ZXdheS5pZCkKLSAgICAgICAgICAgICAgICBpZiBz
ZWxmLl9zaG93X3Byb2dyZXNzX2luZm86Ci0gICAgICAgICAgICAgICAgICAgIHNlbGYuX3R3Lndy
aXRlKHNlbGYuX2dldF9wcm9ncmVzc19pbmZvcm1hdGlvbl9tZXNzYWdlKCkgKyAiICIsIGN5YW49
VHJ1ZSkKLSAgICAgICAgICAgICAgICBlbHNlOgotICAgICAgICAgICAgICAgICAgICBzZWxmLl90
dy53cml0ZSgnICcpCi0gICAgICAgICAgICAgICAgc2VsZi5fdHcud3JpdGUod29yZCwgKiptYXJr
dXApCi0gICAgICAgICAgICAgICAgc2VsZi5fdHcud3JpdGUoIiAiICsgbGluZSkKLSAgICAgICAg
ICAgICAgICBzZWxmLmN1cnJlbnRmc3BhdGggPSAtMgotCi0gICAgZGVmIF93cml0ZV9wcm9ncmVz
c19pZl9wYXN0X2VkZ2Uoc2VsZik6Ci0gICAgICAgIGlmIG5vdCBzZWxmLl9zaG93X3Byb2dyZXNz
X2luZm86Ci0gICAgICAgICAgICByZXR1cm4KLSAgICAgICAgbGFzdF9pdGVtID0gc2VsZi5fcHJv
Z3Jlc3NfaXRlbXNfcmVwb3J0ZWQgPT0gc2VsZi5fc2Vzc2lvbi50ZXN0c2NvbGxlY3RlZAotICAg
ICAgICBpZiBsYXN0X2l0ZW06Ci0gICAgICAgICAgICBzZWxmLl93cml0ZV9wcm9ncmVzc19pbmZv
cm1hdGlvbl9maWxsaW5nX3NwYWNlKCkKLSAgICAgICAgICAgIHJldHVybgotCi0gICAgICAgIHBh
c3RfZWRnZSA9IHNlbGYuX3R3LmNoYXJzX29uX2N1cnJlbnRfbGluZSArIHNlbGYuX1BST0dSRVNT
X0xFTkdUSCArIDEgPj0gc2VsZi5fc2NyZWVuX3dpZHRoCi0gICAgICAgIGlmIHBhc3RfZWRnZToK
LSAgICAgICAgICAgIG1zZyA9IHNlbGYuX2dldF9wcm9ncmVzc19pbmZvcm1hdGlvbl9tZXNzYWdl
KCkKLSAgICAgICAgICAgIHNlbGYuX3R3LndyaXRlKG1zZyArICdcbicsIGN5YW49VHJ1ZSkKLQot
ICAgIF9QUk9HUkVTU19MRU5HVEggPSBsZW4oJyBbMTAwJV0nKQotCi0gICAgZGVmIF9nZXRfcHJv
Z3Jlc3NfaW5mb3JtYXRpb25fbWVzc2FnZShzZWxmKToKLSAgICAgICAgY29sbGVjdGVkID0gc2Vs
Zi5fc2Vzc2lvbi50ZXN0c2NvbGxlY3RlZAotICAgICAgICBpZiBjb2xsZWN0ZWQ6Ci0gICAgICAg
ICAgICBwcm9ncmVzcyA9IHNlbGYuX3Byb2dyZXNzX2l0ZW1zX3JlcG9ydGVkICogMTAwIC8vIGNv
bGxlY3RlZAotICAgICAgICAgICAgcmV0dXJuICcgW3s6M2R9JV0nLmZvcm1hdChwcm9ncmVzcykK
LSAgICAgICAgcmV0dXJuICcgWzEwMCVdJwotCi0gICAgZGVmIF93cml0ZV9wcm9ncmVzc19pbmZv
cm1hdGlvbl9maWxsaW5nX3NwYWNlKHNlbGYpOgotICAgICAgICBpZiBub3Qgc2VsZi5fc2hvd19w
cm9ncmVzc19pbmZvOgotICAgICAgICAgICAgcmV0dXJuCi0gICAgICAgIG1zZyA9IHNlbGYuX2dl
dF9wcm9ncmVzc19pbmZvcm1hdGlvbl9tZXNzYWdlKCkKLSAgICAgICAgZmlsbCA9ICcgJyAqIChz
ZWxmLl90dy5mdWxsd2lkdGggLSBzZWxmLl90dy5jaGFyc19vbl9jdXJyZW50X2xpbmUgLSBsZW4o
bXNnKSAtIDEpCi0gICAgICAgIHNlbGYud3JpdGUoZmlsbCArIG1zZywgY3lhbj1UcnVlKQotCi0g
ICAgZGVmIHB5dGVzdF9jb2xsZWN0aW9uKHNlbGYpOgotICAgICAgICBpZiBub3Qgc2VsZi5pc2F0
dHkgYW5kIHNlbGYuY29uZmlnLm9wdGlvbi52ZXJib3NlID49IDE6Ci0gICAgICAgICAgICBzZWxm
LndyaXRlKCJjb2xsZWN0aW5nIC4uLiAiLCBib2xkPVRydWUpCi0KLSAgICBkZWYgcHl0ZXN0X2Nv
bGxlY3RyZXBvcnQoc2VsZiwgcmVwb3J0KToKLSAgICAgICAgaWYgcmVwb3J0LmZhaWxlZDoKLSAg
ICAgICAgICAgIHNlbGYuc3RhdHMuc2V0ZGVmYXVsdCgiZXJyb3IiLCBbXSkuYXBwZW5kKHJlcG9y
dCkKLSAgICAgICAgZWxpZiByZXBvcnQuc2tpcHBlZDoKLSAgICAgICAgICAgIHNlbGYuc3RhdHMu
c2V0ZGVmYXVsdCgic2tpcHBlZCIsIFtdKS5hcHBlbmQocmVwb3J0KQotICAgICAgICBpdGVtcyA9
IFt4IGZvciB4IGluIHJlcG9ydC5yZXN1bHQgaWYgaXNpbnN0YW5jZSh4LCBweXRlc3QuSXRlbSld
Ci0gICAgICAgIHNlbGYuX251bWNvbGxlY3RlZCArPSBsZW4oaXRlbXMpCi0gICAgICAgIGlmIHNl
bGYuaXNhdHR5OgotICAgICAgICAgICAgIyBzZWxmLndyaXRlX2ZzcGF0aF9yZXN1bHQocmVwb3J0
Lm5vZGVpZCwgJ0UnKQotICAgICAgICAgICAgc2VsZi5yZXBvcnRfY29sbGVjdCgpCi0KLSAgICBk
ZWYgcmVwb3J0X2NvbGxlY3Qoc2VsZiwgZmluYWw9RmFsc2UpOgotICAgICAgICBpZiBzZWxmLmNv
bmZpZy5vcHRpb24udmVyYm9zZSA8IDA6Ci0gICAgICAgICAgICByZXR1cm4KLQotICAgICAgICBl
cnJvcnMgPSBsZW4oc2VsZi5zdGF0cy5nZXQoJ2Vycm9yJywgW10pKQotICAgICAgICBza2lwcGVk
ID0gbGVuKHNlbGYuc3RhdHMuZ2V0KCdza2lwcGVkJywgW10pKQotICAgICAgICBpZiBmaW5hbDoK
LSAgICAgICAgICAgIGxpbmUgPSAiY29sbGVjdGVkICIKLSAgICAgICAgZWxzZToKLSAgICAgICAg
ICAgIGxpbmUgPSAiY29sbGVjdGluZyAiCi0gICAgICAgIGxpbmUgKz0gc3RyKHNlbGYuX251bWNv
bGxlY3RlZCkgKyAiIGl0ZW0iICsgKCcnIGlmIHNlbGYuX251bWNvbGxlY3RlZCA9PSAxIGVsc2Ug
J3MnKQotICAgICAgICBpZiBlcnJvcnM6Ci0gICAgICAgICAgICBsaW5lICs9ICIgLyAlZCBlcnJv
cnMiICUgZXJyb3JzCi0gICAgICAgIGlmIHNraXBwZWQ6Ci0gICAgICAgICAgICBsaW5lICs9ICIg
LyAlZCBza2lwcGVkIiAlIHNraXBwZWQKLSAgICAgICAgaWYgc2VsZi5pc2F0dHk6Ci0gICAgICAg
ICAgICBzZWxmLnJld3JpdGUobGluZSwgYm9sZD1UcnVlLCBlcmFzZT1UcnVlKQotICAgICAgICAg
ICAgaWYgZmluYWw6Ci0gICAgICAgICAgICAgICAgc2VsZi53cml0ZSgnXG4nKQotICAgICAgICBl
bHNlOgotICAgICAgICAgICAgc2VsZi53cml0ZV9saW5lKGxpbmUpCi0KLSAgICBkZWYgcHl0ZXN0
X2NvbGxlY3Rpb25fbW9kaWZ5aXRlbXMoc2VsZik6Ci0gICAgICAgIHNlbGYucmVwb3J0X2NvbGxl
Y3QoVHJ1ZSkKLQotICAgIEBweXRlc3QuaG9va2ltcGwodHJ5bGFzdD1UcnVlKQotICAgIGRlZiBw
eXRlc3Rfc2Vzc2lvbnN0YXJ0KHNlbGYsIHNlc3Npb24pOgotICAgICAgICBzZWxmLl9zZXNzaW9u
ID0gc2Vzc2lvbgotICAgICAgICBzZWxmLl9zZXNzaW9uc3RhcnR0aW1lID0gdGltZS50aW1lKCkK
LSAgICAgICAgaWYgbm90IHNlbGYuc2hvd2hlYWRlcjoKLSAgICAgICAgICAgIHJldHVybgotICAg
ICAgICBzZWxmLndyaXRlX3NlcCgiPSIsICJ0ZXN0IHNlc3Npb24gc3RhcnRzIiwgYm9sZD1UcnVl
KQotICAgICAgICB2ZXJpbmZvID0gcGxhdGZvcm0ucHl0aG9uX3ZlcnNpb24oKQotICAgICAgICBt
c2cgPSAicGxhdGZvcm0gJXMgLS0gUHl0aG9uICVzIiAlIChzeXMucGxhdGZvcm0sIHZlcmluZm8p
Ci0gICAgICAgIGlmIGhhc2F0dHIoc3lzLCAncHlweV92ZXJzaW9uX2luZm8nKToKLSAgICAgICAg
ICAgIHZlcmluZm8gPSAiLiIuam9pbihtYXAoc3RyLCBzeXMucHlweV92ZXJzaW9uX2luZm9bOjNd
KSkKLSAgICAgICAgICAgIG1zZyArPSAiW3B5cHktJXMtJXNdIiAlICh2ZXJpbmZvLCBzeXMucHlw
eV92ZXJzaW9uX2luZm9bM10pCi0gICAgICAgIG1zZyArPSAiLCBweXRlc3QtJXMsIHB5LSVzLCBw
bHVnZ3ktJXMiICUgKAotICAgICAgICAgICAgICAgcHl0ZXN0Ll9fdmVyc2lvbl9fLCBweS5fX3Zl
cnNpb25fXywgcGx1Z2d5Ll9fdmVyc2lvbl9fKQotICAgICAgICBpZiBzZWxmLnZlcmJvc2l0eSA+
IDAgb3Igc2VsZi5jb25maWcub3B0aW9uLmRlYnVnIG9yIFwKLSAgICAgICAgICAgZ2V0YXR0cihz
ZWxmLmNvbmZpZy5vcHRpb24sICdwYXN0ZWJpbicsIE5vbmUpOgotICAgICAgICAgICAgbXNnICs9
ICIgLS0gIiArIHN0cihzeXMuZXhlY3V0YWJsZSkKLSAgICAgICAgc2VsZi53cml0ZV9saW5lKG1z
ZykKLSAgICAgICAgbGluZXMgPSBzZWxmLmNvbmZpZy5ob29rLnB5dGVzdF9yZXBvcnRfaGVhZGVy
KAotICAgICAgICAgICAgY29uZmlnPXNlbGYuY29uZmlnLCBzdGFydGRpcj1zZWxmLnN0YXJ0ZGly
KQotICAgICAgICBzZWxmLl93cml0ZV9yZXBvcnRfbGluZXNfZnJvbV9ob29rcyhsaW5lcykKLQot
ICAgIGRlZiBfd3JpdGVfcmVwb3J0X2xpbmVzX2Zyb21faG9va3Moc2VsZiwgbGluZXMpOgotICAg
ICAgICBsaW5lcy5yZXZlcnNlKCkKLSAgICAgICAgZm9yIGxpbmUgaW4gZmxhdHRlbihsaW5lcyk6
Ci0gICAgICAgICAgICBzZWxmLndyaXRlX2xpbmUobGluZSkKLQotICAgIGRlZiBweXRlc3RfcmVw
b3J0X2hlYWRlcihzZWxmLCBjb25maWcpOgotICAgICAgICBpbmlmaWxlID0gIiIKLSAgICAgICAg
aWYgY29uZmlnLmluaWZpbGU6Ci0gICAgICAgICAgICBpbmlmaWxlID0gIiAiICsgY29uZmlnLnJv
b3RkaXIuYmVzdHJlbHBhdGgoY29uZmlnLmluaWZpbGUpCi0gICAgICAgIGxpbmVzID0gWyJyb290
ZGlyOiAlcywgaW5pZmlsZTolcyIgJSAoY29uZmlnLnJvb3RkaXIsIGluaWZpbGUpXQotCi0gICAg
ICAgIHBsdWdpbmluZm8gPSBjb25maWcucGx1Z2lubWFuYWdlci5saXN0X3BsdWdpbl9kaXN0aW5m
bygpCi0gICAgICAgIGlmIHBsdWdpbmluZm86Ci0KLSAgICAgICAgICAgIGxpbmVzLmFwcGVuZCgK
LSAgICAgICAgICAgICAgICAicGx1Z2luczogJXMiICUgIiwgIi5qb2luKF9wbHVnaW5fbmFtZXZl
cnNpb25zKHBsdWdpbmluZm8pKSkKLSAgICAgICAgcmV0dXJuIGxpbmVzCi0KLSAgICBkZWYgcHl0
ZXN0X2NvbGxlY3Rpb25fZmluaXNoKHNlbGYsIHNlc3Npb24pOgotICAgICAgICBpZiBzZWxmLmNv
bmZpZy5vcHRpb24uY29sbGVjdG9ubHk6Ci0gICAgICAgICAgICBzZWxmLl9wcmludGNvbGxlY3Rl
ZGl0ZW1zKHNlc3Npb24uaXRlbXMpCi0gICAgICAgICAgICBpZiBzZWxmLnN0YXRzLmdldCgnZmFp
bGVkJyk6Ci0gICAgICAgICAgICAgICAgc2VsZi5fdHcuc2VwKCIhIiwgImNvbGxlY3Rpb24gZmFp
bHVyZXMiKQotICAgICAgICAgICAgICAgIGZvciByZXAgaW4gc2VsZi5zdGF0cy5nZXQoJ2ZhaWxl
ZCcpOgotICAgICAgICAgICAgICAgICAgICByZXAudG90ZXJtaW5hbChzZWxmLl90dykKLSAgICAg
ICAgICAgICAgICByZXR1cm4gMQotICAgICAgICAgICAgcmV0dXJuIDAKLSAgICAgICAgbGluZXMg
PSBzZWxmLmNvbmZpZy5ob29rLnB5dGVzdF9yZXBvcnRfY29sbGVjdGlvbmZpbmlzaCgKLSAgICAg
ICAgICAgIGNvbmZpZz1zZWxmLmNvbmZpZywgc3RhcnRkaXI9c2VsZi5zdGFydGRpciwgaXRlbXM9
c2Vzc2lvbi5pdGVtcykKLSAgICAgICAgc2VsZi5fd3JpdGVfcmVwb3J0X2xpbmVzX2Zyb21faG9v
a3MobGluZXMpCi0KLSAgICBkZWYgX3ByaW50Y29sbGVjdGVkaXRlbXMoc2VsZiwgaXRlbXMpOgot
ICAgICAgICAjIHRvIHByaW50IG91dCBpdGVtcyBhbmQgdGhlaXIgcGFyZW50IGNvbGxlY3RvcnMK
LSAgICAgICAgIyB3ZSB0YWtlIGNhcmUgdG8gbGVhdmUgb3V0IEluc3RhbmNlcyBha2EgKCkKLSAg
ICAgICAgIyBiZWNhdXNlIGxhdGVyIHZlcnNpb25zIGFyZSBnb2luZyB0byBnZXQgcmlkIG9mIHRo
ZW0gYW55d2F5Ci0gICAgICAgIGlmIHNlbGYuY29uZmlnLm9wdGlvbi52ZXJib3NlIDwgMDoKLSAg
ICAgICAgICAgIGlmIHNlbGYuY29uZmlnLm9wdGlvbi52ZXJib3NlIDwgLTE6Ci0gICAgICAgICAg
ICAgICAgY291bnRzID0ge30KLSAgICAgICAgICAgICAgICBmb3IgaXRlbSBpbiBpdGVtczoKLSAg
ICAgICAgICAgICAgICAgICAgbmFtZSA9IGl0ZW0ubm9kZWlkLnNwbGl0KCc6OicsIDEpWzBdCi0g
ICAgICAgICAgICAgICAgICAgIGNvdW50c1tuYW1lXSA9IGNvdW50cy5nZXQobmFtZSwgMCkgKyAx
Ci0gICAgICAgICAgICAgICAgZm9yIG5hbWUsIGNvdW50IGluIHNvcnRlZChjb3VudHMuaXRlbXMo
KSk6Ci0gICAgICAgICAgICAgICAgICAgIHNlbGYuX3R3LmxpbmUoIiVzOiAlZCIgJSAobmFtZSwg
Y291bnQpKQotICAgICAgICAgICAgZWxzZToKLSAgICAgICAgICAgICAgICBmb3IgaXRlbSBpbiBp
dGVtczoKLSAgICAgICAgICAgICAgICAgICAgbm9kZWlkID0gaXRlbS5ub2RlaWQKLSAgICAgICAg
ICAgICAgICAgICAgbm9kZWlkID0gbm9kZWlkLnJlcGxhY2UoIjo6KCk6OiIsICI6OiIpCi0gICAg
ICAgICAgICAgICAgICAgIHNlbGYuX3R3LmxpbmUobm9kZWlkKQotICAgICAgICAgICAgcmV0dXJu
Ci0gICAgICAgIHN0YWNrID0gW10KLSAgICAgICAgaW5kZW50ID0gIiIKLSAgICAgICAgZm9yIGl0
ZW0gaW4gaXRlbXM6Ci0gICAgICAgICAgICBuZWVkZWRfY29sbGVjdG9ycyA9IGl0ZW0ubGlzdGNo
YWluKClbMTpdICAjIHN0cmlwIHJvb3Qgbm9kZQotICAgICAgICAgICAgd2hpbGUgc3RhY2s6Ci0g
ICAgICAgICAgICAgICAgaWYgc3RhY2sgPT0gbmVlZGVkX2NvbGxlY3RvcnNbOmxlbihzdGFjayld
OgotICAgICAgICAgICAgICAgICAgICBicmVhawotICAgICAgICAgICAgICAgIHN0YWNrLnBvcCgp
Ci0gICAgICAgICAgICBmb3IgY29sIGluIG5lZWRlZF9jb2xsZWN0b3JzW2xlbihzdGFjayk6XToK
LSAgICAgICAgICAgICAgICBzdGFjay5hcHBlbmQoY29sKQotICAgICAgICAgICAgICAgICMgaWYg
Y29sLm5hbWUgPT0gIigpIjoKLSAgICAgICAgICAgICAgICAjICAgIGNvbnRpbnVlCi0gICAgICAg
ICAgICAgICAgaW5kZW50ID0gKGxlbihzdGFjaykgLSAxKSAqICIgICIKLSAgICAgICAgICAgICAg
ICBzZWxmLl90dy5saW5lKCIlcyVzIiAlIChpbmRlbnQsIGNvbCkpCi0KLSAgICBAcHl0ZXN0Lmhv
b2tpbXBsKGhvb2t3cmFwcGVyPVRydWUpCi0gICAgZGVmIHB5dGVzdF9zZXNzaW9uZmluaXNoKHNl
bGYsIGV4aXRzdGF0dXMpOgotICAgICAgICBvdXRjb21lID0geWllbGQKLSAgICAgICAgb3V0Y29t
ZS5nZXRfcmVzdWx0KCkKLSAgICAgICAgc2VsZi5fdHcubGluZSgiIikKLSAgICAgICAgc3VtbWFy
eV9leGl0X2NvZGVzID0gKAotICAgICAgICAgICAgRVhJVF9PSywgRVhJVF9URVNUU0ZBSUxFRCwg
RVhJVF9JTlRFUlJVUFRFRCwgRVhJVF9VU0FHRUVSUk9SLAotICAgICAgICAgICAgRVhJVF9OT1RF
U1RTQ09MTEVDVEVEKQotICAgICAgICBpZiBleGl0c3RhdHVzIGluIHN1bW1hcnlfZXhpdF9jb2Rl
czoKLSAgICAgICAgICAgIHNlbGYuY29uZmlnLmhvb2sucHl0ZXN0X3Rlcm1pbmFsX3N1bW1hcnko
dGVybWluYWxyZXBvcnRlcj1zZWxmLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBleGl0c3RhdHVzPWV4aXRzdGF0dXMpCi0gICAgICAgICAgICBz
ZWxmLnN1bW1hcnlfZXJyb3JzKCkKLSAgICAgICAgICAgIHNlbGYuc3VtbWFyeV9mYWlsdXJlcygp
Ci0gICAgICAgICAgICBzZWxmLnN1bW1hcnlfd2FybmluZ3MoKQotICAgICAgICAgICAgc2VsZi5z
dW1tYXJ5X3Bhc3NlcygpCi0gICAgICAgIGlmIGV4aXRzdGF0dXMgPT0gRVhJVF9JTlRFUlJVUFRF
RDoKLSAgICAgICAgICAgIHNlbGYuX3JlcG9ydF9rZXlib2FyZGludGVycnVwdCgpCi0gICAgICAg
ICAgICBkZWwgc2VsZi5fa2V5Ym9hcmRpbnRlcnJ1cHRfbWVtbwotICAgICAgICBzZWxmLnN1bW1h
cnlfZGVzZWxlY3RlZCgpCi0gICAgICAgIHNlbGYuc3VtbWFyeV9zdGF0cygpCi0KLSAgICBkZWYg
cHl0ZXN0X2tleWJvYXJkX2ludGVycnVwdChzZWxmLCBleGNpbmZvKToKLSAgICAgICAgc2VsZi5f
a2V5Ym9hcmRpbnRlcnJ1cHRfbWVtbyA9IGV4Y2luZm8uZ2V0cmVwcihmdW5jYXJncz1UcnVlKQot
Ci0gICAgZGVmIHB5dGVzdF91bmNvbmZpZ3VyZShzZWxmKToKLSAgICAgICAgaWYgaGFzYXR0cihz
ZWxmLCAnX2tleWJvYXJkaW50ZXJydXB0X21lbW8nKToKLSAgICAgICAgICAgIHNlbGYuX3JlcG9y
dF9rZXlib2FyZGludGVycnVwdCgpCi0KLSAgICBkZWYgX3JlcG9ydF9rZXlib2FyZGludGVycnVw
dChzZWxmKToKLSAgICAgICAgZXhjcmVwciA9IHNlbGYuX2tleWJvYXJkaW50ZXJydXB0X21lbW8K
LSAgICAgICAgbXNnID0gZXhjcmVwci5yZXByY3Jhc2gubWVzc2FnZQotICAgICAgICBzZWxmLndy
aXRlX3NlcCgiISIsIG1zZykKLSAgICAgICAgaWYgIktleWJvYXJkSW50ZXJydXB0IiBpbiBtc2c6
Ci0gICAgICAgICAgICBpZiBzZWxmLmNvbmZpZy5vcHRpb24uZnVsbHRyYWNlOgotICAgICAgICAg
ICAgICAgIGV4Y3JlcHIudG90ZXJtaW5hbChzZWxmLl90dykKLSAgICAgICAgICAgIGVsc2U6Ci0g
ICAgICAgICAgICAgICAgc2VsZi5fdHcubGluZSgidG8gc2hvdyBhIGZ1bGwgdHJhY2ViYWNrIG9u
IEtleWJvYXJkSW50ZXJydXB0IHVzZSAtLWZ1bGx0cmFjZSIsIHllbGxvdz1UcnVlKQotICAgICAg
ICAgICAgICAgIGV4Y3JlcHIucmVwcmNyYXNoLnRvdGVybWluYWwoc2VsZi5fdHcpCi0KLSAgICBk
ZWYgX2xvY2F0aW9ubGluZShzZWxmLCBub2RlaWQsIGZzcGF0aCwgbGluZW5vLCBkb21haW4pOgot
ICAgICAgICBkZWYgbWtyZWwobm9kZWlkKToKLSAgICAgICAgICAgIGxpbmUgPSBzZWxmLmNvbmZp
Zy5jd2RfcmVsYXRpdmVfbm9kZWlkKG5vZGVpZCkKLSAgICAgICAgICAgIGlmIGRvbWFpbiBhbmQg
bGluZS5lbmRzd2l0aChkb21haW4pOgotICAgICAgICAgICAgICAgIGxpbmUgPSBsaW5lWzotbGVu
KGRvbWFpbildCi0gICAgICAgICAgICAgICAgdmFsdWVzID0gZG9tYWluLnNwbGl0KCJbIikKLSAg
ICAgICAgICAgICAgICB2YWx1ZXNbMF0gPSB2YWx1ZXNbMF0ucmVwbGFjZSgnLicsICc6OicpICAj
IGRvbid0IHJlcGxhY2UgJy4nIGluIHBhcmFtcwotICAgICAgICAgICAgICAgIGxpbmUgKz0gIlsi
LmpvaW4odmFsdWVzKQotICAgICAgICAgICAgcmV0dXJuIGxpbmUKLSAgICAgICAgIyBjb2xsZWN0
X2ZzcGF0aCBjb21lcyBmcm9tIHRlc3RpZCB3aGljaCBoYXMgYSAiLyItbm9ybWFsaXplZCBwYXRo
Ci0KLSAgICAgICAgaWYgZnNwYXRoOgotICAgICAgICAgICAgcmVzID0gbWtyZWwobm9kZWlkKS5y
ZXBsYWNlKCI6OigpIiwgIiIpICAjIHBhcmVucy1ub3JtYWxpemF0aW9uCi0gICAgICAgICAgICBp
ZiBub2RlaWQuc3BsaXQoIjo6IilbMF0gIT0gZnNwYXRoLnJlcGxhY2UoIlxcIiwgbm9kZXMuU0VQ
KToKLSAgICAgICAgICAgICAgICByZXMgKz0gIiA8LSAiICsgc2VsZi5zdGFydGRpci5iZXN0cmVs
cGF0aChmc3BhdGgpCi0gICAgICAgIGVsc2U6Ci0gICAgICAgICAgICByZXMgPSAiW2xvY2F0aW9u
XSIKLSAgICAgICAgcmV0dXJuIHJlcyArICIgIgotCi0gICAgZGVmIF9nZXRmYWlsdXJlaGVhZGxp
bmUoc2VsZiwgcmVwKToKLSAgICAgICAgaWYgaGFzYXR0cihyZXAsICdsb2NhdGlvbicpOgotICAg
ICAgICAgICAgZnNwYXRoLCBsaW5lbm8sIGRvbWFpbiA9IHJlcC5sb2NhdGlvbgotICAgICAgICAg
ICAgcmV0dXJuIGRvbWFpbgotICAgICAgICBlbHNlOgotICAgICAgICAgICAgcmV0dXJuICJ0ZXN0
IHNlc3Npb24iICAjIFhYWD8KLQotICAgIGRlZiBfZ2V0Y3Jhc2hsaW5lKHNlbGYsIHJlcCk6Ci0g
ICAgICAgIHRyeToKLSAgICAgICAgICAgIHJldHVybiBzdHIocmVwLmxvbmdyZXByLnJlcHJjcmFz
aCkKLSAgICAgICAgZXhjZXB0IEF0dHJpYnV0ZUVycm9yOgotICAgICAgICAgICAgdHJ5OgotICAg
ICAgICAgICAgICAgIHJldHVybiBzdHIocmVwLmxvbmdyZXByKVs6NTBdCi0gICAgICAgICAgICBl
eGNlcHQgQXR0cmlidXRlRXJyb3I6Ci0gICAgICAgICAgICAgICAgcmV0dXJuICIiCi0KLSAgICAj
Ci0gICAgIyBzdW1tYXJpZXMgZm9yIHNlc3Npb25maW5pc2gKLSAgICAjCi0gICAgZGVmIGdldHJl
cG9ydHMoc2VsZiwgbmFtZSk6Ci0gICAgICAgIHZhbHVlcyA9IFtdCi0gICAgICAgIGZvciB4IGlu
IHNlbGYuc3RhdHMuZ2V0KG5hbWUsIFtdKToKLSAgICAgICAgICAgIGlmIG5vdCBoYXNhdHRyKHgs
ICdfcGRic2hvd24nKToKLSAgICAgICAgICAgICAgICB2YWx1ZXMuYXBwZW5kKHgpCi0gICAgICAg
IHJldHVybiB2YWx1ZXMKLQotICAgIGRlZiBzdW1tYXJ5X3dhcm5pbmdzKHNlbGYpOgotICAgICAg
ICBpZiBzZWxmLmhhc29wdCgidyIpOgotICAgICAgICAgICAgYWxsX3dhcm5pbmdzID0gc2VsZi5z
dGF0cy5nZXQoIndhcm5pbmdzIikKLSAgICAgICAgICAgIGlmIG5vdCBhbGxfd2FybmluZ3M6Ci0g
ICAgICAgICAgICAgICAgcmV0dXJuCi0KLSAgICAgICAgICAgIGdyb3VwZWQgPSBpdGVydG9vbHMu
Z3JvdXBieShhbGxfd2FybmluZ3MsIGtleT1sYW1iZGEgd3I6IHdyLmdldF9sb2NhdGlvbihzZWxm
LmNvbmZpZykpCi0KLSAgICAgICAgICAgIHNlbGYud3JpdGVfc2VwKCI9IiwgIndhcm5pbmdzIHN1
bW1hcnkiLCB5ZWxsb3c9VHJ1ZSwgYm9sZD1GYWxzZSkKLSAgICAgICAgICAgIGZvciBsb2NhdGlv
biwgd2FybmluZ19yZWNvcmRzIGluIGdyb3VwZWQ6Ci0gICAgICAgICAgICAgICAgc2VsZi5fdHcu
bGluZShzdHIobG9jYXRpb24pIG9yICc8dW5kZXRlcm1pbmVkIGxvY2F0aW9uPicpCi0gICAgICAg
ICAgICAgICAgZm9yIHcgaW4gd2FybmluZ19yZWNvcmRzOgotICAgICAgICAgICAgICAgICAgICBs
aW5lcyA9IHcubWVzc2FnZS5zcGxpdGxpbmVzKCkKLSAgICAgICAgICAgICAgICAgICAgaW5kZW50
ZWQgPSAnXG4nLmpvaW4oJyAgJyArIHggZm9yIHggaW4gbGluZXMpCi0gICAgICAgICAgICAgICAg
ICAgIHNlbGYuX3R3LmxpbmUoaW5kZW50ZWQpCi0gICAgICAgICAgICAgICAgc2VsZi5fdHcubGlu
ZSgpCi0gICAgICAgICAgICBzZWxmLl90dy5saW5lKCctLSBEb2NzOiBodHRwOi8vZG9jLnB5dGVz
dC5vcmcvZW4vbGF0ZXN0L3dhcm5pbmdzLmh0bWwnKQotCi0gICAgZGVmIHN1bW1hcnlfcGFzc2Vz
KHNlbGYpOgotICAgICAgICBpZiBzZWxmLmNvbmZpZy5vcHRpb24udGJzdHlsZSAhPSAibm8iOgot
ICAgICAgICAgICAgaWYgc2VsZi5oYXNvcHQoIlAiKToKLSAgICAgICAgICAgICAgICByZXBvcnRz
ID0gc2VsZi5nZXRyZXBvcnRzKCdwYXNzZWQnKQotICAgICAgICAgICAgICAgIGlmIG5vdCByZXBv
cnRzOgotICAgICAgICAgICAgICAgICAgICByZXR1cm4KLSAgICAgICAgICAgICAgICBzZWxmLndy
aXRlX3NlcCgiPSIsICJQQVNTRVMiKQotICAgICAgICAgICAgICAgIGZvciByZXAgaW4gcmVwb3J0
czoKLSAgICAgICAgICAgICAgICAgICAgbXNnID0gc2VsZi5fZ2V0ZmFpbHVyZWhlYWRsaW5lKHJl
cCkKLSAgICAgICAgICAgICAgICAgICAgc2VsZi53cml0ZV9zZXAoIl8iLCBtc2cpCi0gICAgICAg
ICAgICAgICAgICAgIHNlbGYuX291dHJlcF9zdW1tYXJ5KHJlcCkKLQotICAgIGRlZiBwcmludF90
ZWFyZG93bl9zZWN0aW9ucyhzZWxmLCByZXApOgotICAgICAgICBmb3Igc2VjbmFtZSwgY29udGVu
dCBpbiByZXAuc2VjdGlvbnM6Ci0gICAgICAgICAgICBpZiAndGVhcmRvd24nIGluIHNlY25hbWU6
Ci0gICAgICAgICAgICAgICAgc2VsZi5fdHcuc2VwKCctJywgc2VjbmFtZSkKLSAgICAgICAgICAg
ICAgICBpZiBjb250ZW50Wy0xOl0gPT0gIlxuIjoKLSAgICAgICAgICAgICAgICAgICAgY29udGVu
dCA9IGNvbnRlbnRbOi0xXQotICAgICAgICAgICAgICAgIHNlbGYuX3R3LmxpbmUoY29udGVudCkK
LQotICAgIGRlZiBzdW1tYXJ5X2ZhaWx1cmVzKHNlbGYpOgotICAgICAgICBpZiBzZWxmLmNvbmZp
Zy5vcHRpb24udGJzdHlsZSAhPSAibm8iOgotICAgICAgICAgICAgcmVwb3J0cyA9IHNlbGYuZ2V0
cmVwb3J0cygnZmFpbGVkJykKLSAgICAgICAgICAgIGlmIG5vdCByZXBvcnRzOgotICAgICAgICAg
ICAgICAgIHJldHVybgotICAgICAgICAgICAgc2VsZi53cml0ZV9zZXAoIj0iLCAiRkFJTFVSRVMi
KQotICAgICAgICAgICAgZm9yIHJlcCBpbiByZXBvcnRzOgotICAgICAgICAgICAgICAgIGlmIHNl
bGYuY29uZmlnLm9wdGlvbi50YnN0eWxlID09ICJsaW5lIjoKLSAgICAgICAgICAgICAgICAgICAg
bGluZSA9IHNlbGYuX2dldGNyYXNobGluZShyZXApCi0gICAgICAgICAgICAgICAgICAgIHNlbGYu
d3JpdGVfbGluZShsaW5lKQotICAgICAgICAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAgICAg
ICAgIG1zZyA9IHNlbGYuX2dldGZhaWx1cmVoZWFkbGluZShyZXApCi0gICAgICAgICAgICAgICAg
ICAgIG1hcmt1cCA9IHsncmVkJzogVHJ1ZSwgJ2JvbGQnOiBUcnVlfQotICAgICAgICAgICAgICAg
ICAgICBzZWxmLndyaXRlX3NlcCgiXyIsIG1zZywgKiptYXJrdXApCi0gICAgICAgICAgICAgICAg
ICAgIHNlbGYuX291dHJlcF9zdW1tYXJ5KHJlcCkKLSAgICAgICAgICAgICAgICAgICAgZm9yIHJl
cG9ydCBpbiBzZWxmLmdldHJlcG9ydHMoJycpOgotICAgICAgICAgICAgICAgICAgICAgICAgaWYg
cmVwb3J0Lm5vZGVpZCA9PSByZXAubm9kZWlkIGFuZCByZXBvcnQud2hlbiA9PSAndGVhcmRvd24n
OgotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYucHJpbnRfdGVhcmRvd25fc2VjdGlv
bnMocmVwb3J0KQotCi0gICAgZGVmIHN1bW1hcnlfZXJyb3JzKHNlbGYpOgotICAgICAgICBpZiBz
ZWxmLmNvbmZpZy5vcHRpb24udGJzdHlsZSAhPSAibm8iOgotICAgICAgICAgICAgcmVwb3J0cyA9
IHNlbGYuZ2V0cmVwb3J0cygnZXJyb3InKQotICAgICAgICAgICAgaWYgbm90IHJlcG9ydHM6Ci0g
ICAgICAgICAgICAgICAgcmV0dXJuCi0gICAgICAgICAgICBzZWxmLndyaXRlX3NlcCgiPSIsICJF
UlJPUlMiKQotICAgICAgICAgICAgZm9yIHJlcCBpbiBzZWxmLnN0YXRzWydlcnJvciddOgotICAg
ICAgICAgICAgICAgIG1zZyA9IHNlbGYuX2dldGZhaWx1cmVoZWFkbGluZShyZXApCi0gICAgICAg
ICAgICAgICAgaWYgbm90IGhhc2F0dHIocmVwLCAnd2hlbicpOgotICAgICAgICAgICAgICAgICAg
ICAjIGNvbGxlY3QKLSAgICAgICAgICAgICAgICAgICAgbXNnID0gIkVSUk9SIGNvbGxlY3Rpbmcg
IiArIG1zZwotICAgICAgICAgICAgICAgIGVsaWYgcmVwLndoZW4gPT0gInNldHVwIjoKLSAgICAg
ICAgICAgICAgICAgICAgbXNnID0gIkVSUk9SIGF0IHNldHVwIG9mICIgKyBtc2cKLSAgICAgICAg
ICAgICAgICBlbGlmIHJlcC53aGVuID09ICJ0ZWFyZG93biI6Ci0gICAgICAgICAgICAgICAgICAg
IG1zZyA9ICJFUlJPUiBhdCB0ZWFyZG93biBvZiAiICsgbXNnCi0gICAgICAgICAgICAgICAgc2Vs
Zi53cml0ZV9zZXAoIl8iLCBtc2cpCi0gICAgICAgICAgICAgICAgc2VsZi5fb3V0cmVwX3N1bW1h
cnkocmVwKQotCi0gICAgZGVmIF9vdXRyZXBfc3VtbWFyeShzZWxmLCByZXApOgotICAgICAgICBy
ZXAudG90ZXJtaW5hbChzZWxmLl90dykKLSAgICAgICAgZm9yIHNlY25hbWUsIGNvbnRlbnQgaW4g
cmVwLnNlY3Rpb25zOgotICAgICAgICAgICAgc2VsZi5fdHcuc2VwKCItIiwgc2VjbmFtZSkKLSAg
ICAgICAgICAgIGlmIGNvbnRlbnRbLTE6XSA9PSAiXG4iOgotICAgICAgICAgICAgICAgIGNvbnRl
bnQgPSBjb250ZW50WzotMV0KLSAgICAgICAgICAgIHNlbGYuX3R3LmxpbmUoY29udGVudCkKLQot
ICAgIGRlZiBzdW1tYXJ5X3N0YXRzKHNlbGYpOgotICAgICAgICBzZXNzaW9uX2R1cmF0aW9uID0g
dGltZS50aW1lKCkgLSBzZWxmLl9zZXNzaW9uc3RhcnR0aW1lCi0gICAgICAgIChsaW5lLCBjb2xv
cikgPSBidWlsZF9zdW1tYXJ5X3N0YXRzX2xpbmUoc2VsZi5zdGF0cykKLSAgICAgICAgbXNnID0g
IiVzIGluICUuMmYgc2Vjb25kcyIgJSAobGluZSwgc2Vzc2lvbl9kdXJhdGlvbikKLSAgICAgICAg
bWFya3VwID0ge2NvbG9yOiBUcnVlLCAnYm9sZCc6IFRydWV9Ci0KLSAgICAgICAgaWYgc2VsZi52
ZXJib3NpdHkgPj0gMDoKLSAgICAgICAgICAgIHNlbGYud3JpdGVfc2VwKCI9IiwgbXNnLCAqKm1h
cmt1cCkKLSAgICAgICAgaWYgc2VsZi52ZXJib3NpdHkgPT0gLTE6Ci0gICAgICAgICAgICBzZWxm
LndyaXRlX2xpbmUobXNnLCAqKm1hcmt1cCkKLQotICAgIGRlZiBzdW1tYXJ5X2Rlc2VsZWN0ZWQo
c2VsZik6Ci0gICAgICAgIGlmICdkZXNlbGVjdGVkJyBpbiBzZWxmLnN0YXRzOgotICAgICAgICAg
ICAgc2VsZi53cml0ZV9zZXAoIj0iLCAiJWQgdGVzdHMgZGVzZWxlY3RlZCIgJSAoCi0gICAgICAg
ICAgICAgICAgbGVuKHNlbGYuc3RhdHNbJ2Rlc2VsZWN0ZWQnXSkpLCBib2xkPVRydWUpCi0KLQot
ZGVmIHJlcHJfcHl0aG9udmVyc2lvbih2PU5vbmUpOgotICAgIGlmIHYgaXMgTm9uZToKLSAgICAg
ICAgdiA9IHN5cy52ZXJzaW9uX2luZm8KLSAgICB0cnk6Ci0gICAgICAgIHJldHVybiAiJXMuJXMu
JXMtJXMtJXMiICUgdgotICAgIGV4Y2VwdCAoVHlwZUVycm9yLCBWYWx1ZUVycm9yKToKLSAgICAg
ICAgcmV0dXJuIHN0cih2KQotCi0KLWRlZiBmbGF0dGVuKHZhbHVlcyk6Ci0gICAgZm9yIHggaW4g
dmFsdWVzOgotICAgICAgICBpZiBpc2luc3RhbmNlKHgsIChsaXN0LCB0dXBsZSkpOgotICAgICAg
ICAgICAgZm9yIHkgaW4gZmxhdHRlbih4KToKLSAgICAgICAgICAgICAgICB5aWVsZCB5Ci0gICAg
ICAgIGVsc2U6Ci0gICAgICAgICAgICB5aWVsZCB4Ci0KLQotZGVmIGJ1aWxkX3N1bW1hcnlfc3Rh
dHNfbGluZShzdGF0cyk6Ci0gICAga2V5cyA9ICgiZmFpbGVkIHBhc3NlZCBza2lwcGVkIGRlc2Vs
ZWN0ZWQgIgotICAgICAgICAgICAgInhmYWlsZWQgeHBhc3NlZCB3YXJuaW5ncyBlcnJvciIpLnNw
bGl0KCkKLSAgICB1bmtub3duX2tleV9zZWVuID0gRmFsc2UKLSAgICBmb3Iga2V5IGluIHN0YXRz
LmtleXMoKToKLSAgICAgICAgaWYga2V5IG5vdCBpbiBrZXlzOgotICAgICAgICAgICAgaWYga2V5
OiAgIyBzZXR1cC90ZWFyZG93biByZXBvcnRzIGhhdmUgYW4gZW1wdHkga2V5LCBpZ25vcmUgdGhl
bQotICAgICAgICAgICAgICAgIGtleXMuYXBwZW5kKGtleSkKLSAgICAgICAgICAgICAgICB1bmtu
b3duX2tleV9zZWVuID0gVHJ1ZQotICAgIHBhcnRzID0gW10KLSAgICBmb3Iga2V5IGluIGtleXM6
Ci0gICAgICAgIHZhbCA9IHN0YXRzLmdldChrZXksIE5vbmUpCi0gICAgICAgIGlmIHZhbDoKLSAg
ICAgICAgICAgIHBhcnRzLmFwcGVuZCgiJWQgJXMiICUgKGxlbih2YWwpLCBrZXkpKQotCi0gICAg
aWYgcGFydHM6Ci0gICAgICAgIGxpbmUgPSAiLCAiLmpvaW4ocGFydHMpCi0gICAgZWxzZToKLSAg
ICAgICAgbGluZSA9ICJubyB0ZXN0cyByYW4iCi0KLSAgICBpZiAnZmFpbGVkJyBpbiBzdGF0cyBv
ciAnZXJyb3InIGluIHN0YXRzOgotICAgICAgICBjb2xvciA9ICdyZWQnCi0gICAgZWxpZiAnd2Fy
bmluZ3MnIGluIHN0YXRzIG9yIHVua25vd25fa2V5X3NlZW46Ci0gICAgICAgIGNvbG9yID0gJ3ll
bGxvdycKLSAgICBlbGlmICdwYXNzZWQnIGluIHN0YXRzOgotICAgICAgICBjb2xvciA9ICdncmVl
bicKLSAgICBlbHNlOgotICAgICAgICBjb2xvciA9ICd5ZWxsb3cnCi0KLSAgICByZXR1cm4gKGxp
bmUsIGNvbG9yKQotCi0KLWRlZiBfcGx1Z2luX25hbWV2ZXJzaW9ucyhwbHVnaW5pbmZvKToKLSAg
ICB2YWx1ZXMgPSBbXQotICAgIGZvciBwbHVnaW4sIGRpc3QgaW4gcGx1Z2luaW5mbzoKLSAgICAg
ICAgIyBnZXRzIHVzIG5hbWUgYW5kIHZlcnNpb24hCi0gICAgICAgIG5hbWUgPSAne2Rpc3QucHJv
amVjdF9uYW1lfS17ZGlzdC52ZXJzaW9ufScuZm9ybWF0KGRpc3Q9ZGlzdCkKLSAgICAgICAgIyBx
dWVzdGlvbmFibGUgY29udmVuaWVuY2UsIGJ1dCBpdCBrZWVwcyB0aGluZ3Mgc2hvcnQKLSAgICAg
ICAgaWYgbmFtZS5zdGFydHN3aXRoKCJweXRlc3QtIik6Ci0gICAgICAgICAgICBuYW1lID0gbmFt
ZVs3Ol0KLSAgICAgICAgIyB3ZSBkZWNpZGVkIHRvIHByaW50IHB5dGhvbiBwYWNrYWdlIG5hbWVz
Ci0gICAgICAgICMgdGhleSBjYW4gaGF2ZSBtb3JlIHRoYW4gb25lIHBsdWdpbgotICAgICAgICBp
ZiBuYW1lIG5vdCBpbiB2YWx1ZXM6Ci0gICAgICAgICAgICB2YWx1ZXMuYXBwZW5kKG5hbWUpCi0g
ICAgcmV0dXJuIHZhbHVlcwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvX3B5dGVzdC90bXBkaXIu
cHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3Ro
aXJkX3BhcnR5L3B5dGVzdC9fcHl0ZXN0L3RtcGRpci5weQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggZGExYjAzMjIzN2FmYmY0NjhjYzBlMzQ5ZDJiMjYyYjkyODNlOTc4My4uMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9fcHl0
ZXN0L3RtcGRpci5weQorKysgL2Rldi9udWxsCkBAIC0xLDEyNiArMCwwIEBACi0iIiIgc3VwcG9y
dCBmb3IgcHJvdmlkaW5nIHRlbXBvcmFyeSBkaXJlY3RvcmllcyB0byB0ZXN0IGZ1bmN0aW9ucy4g
ICIiIgotZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCBhYnNvbHV0ZV9pbXBvcnQsIGRpdmlzaW9uLCBw
cmludF9mdW5jdGlvbgotCi1pbXBvcnQgcmUKLQotaW1wb3J0IHB5dGVzdAotaW1wb3J0IHB5Ci1m
cm9tIF9weXRlc3QubW9ua2V5cGF0Y2ggaW1wb3J0IE1vbmtleVBhdGNoCi0KLQotY2xhc3MgVGVt
cGRpckZhY3Rvcnk6Ci0gICAgIiIiRmFjdG9yeSBmb3IgdGVtcG9yYXJ5IGRpcmVjdG9yaWVzIHVu
ZGVyIHRoZSBjb21tb24gYmFzZSB0ZW1wIGRpcmVjdG9yeS4KLQotICAgIFRoZSBiYXNlIGRpcmVj
dG9yeSBjYW4gYmUgY29uZmlndXJlZCB1c2luZyB0aGUgYGAtLWJhc2V0ZW1wYGAgb3B0aW9uLgot
ICAgICIiIgotCi0gICAgZGVmIF9faW5pdF9fKHNlbGYsIGNvbmZpZyk6Ci0gICAgICAgIHNlbGYu
Y29uZmlnID0gY29uZmlnCi0gICAgICAgIHNlbGYudHJhY2UgPSBjb25maWcudHJhY2UuZ2V0KCJ0
bXBkaXIiKQotCi0gICAgZGVmIGVuc3VyZXRlbXAoc2VsZiwgc3RyaW5nLCBkaXI9MSk6Ci0gICAg
ICAgICIiIiAoZGVwcmVjYXRlZCkgcmV0dXJuIHRlbXBvcmFyeSBkaXJlY3RvcnkgcGF0aCB3aXRo
Ci0gICAgICAgICAgICB0aGUgZ2l2ZW4gc3RyaW5nIGFzIHRoZSB0cmFpbGluZyBwYXJ0LiAgSXQg
aXMgdXN1YWxseQotICAgICAgICAgICAgYmV0dGVyIHRvIHVzZSB0aGUgJ3RtcGRpcicgZnVuY3Rp
b24gYXJndW1lbnQgd2hpY2gKLSAgICAgICAgICAgIHByb3ZpZGVzIGFuIGVtcHR5IHVuaXF1ZS1w
ZXItdGVzdC1pbnZvY2F0aW9uIGRpcmVjdG9yeQotICAgICAgICAgICAgYW5kIGlzIGd1YXJhbnRl
ZWQgdG8gYmUgZW1wdHkuCi0gICAgICAgICIiIgotICAgICAgICAjIHB5LmxvZy5fYXBpd2Fybigi
PjEuMSIsICJ1c2UgdG1wZGlyIGZ1bmN0aW9uIGFyZ3VtZW50IikKLSAgICAgICAgcmV0dXJuIHNl
bGYuZ2V0YmFzZXRlbXAoKS5lbnN1cmUoc3RyaW5nLCBkaXI9ZGlyKQotCi0gICAgZGVmIG1rdGVt
cChzZWxmLCBiYXNlbmFtZSwgbnVtYmVyZWQ9VHJ1ZSk6Ci0gICAgICAgICIiIkNyZWF0ZSBhIHN1
YmRpcmVjdG9yeSBvZiB0aGUgYmFzZSB0ZW1wb3JhcnkgZGlyZWN0b3J5IGFuZCByZXR1cm4gaXQu
Ci0gICAgICAgIElmIGBgbnVtYmVyZWRgYCwgZW5zdXJlIHRoZSBkaXJlY3RvcnkgaXMgdW5pcXVl
IGJ5IGFkZGluZyBhIG51bWJlcgotICAgICAgICBwcmVmaXggZ3JlYXRlciB0aGFuIGFueSBleGlz
dGluZyBvbmUuCi0gICAgICAgICIiIgotICAgICAgICBiYXNldGVtcCA9IHNlbGYuZ2V0YmFzZXRl
bXAoKQotICAgICAgICBpZiBub3QgbnVtYmVyZWQ6Ci0gICAgICAgICAgICBwID0gYmFzZXRlbXAu
bWtkaXIoYmFzZW5hbWUpCi0gICAgICAgIGVsc2U6Ci0gICAgICAgICAgICBwID0gcHkucGF0aC5s
b2NhbC5tYWtlX251bWJlcmVkX2RpcihwcmVmaXg9YmFzZW5hbWUsCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrZWVwPTAsIHJvb3RkaXI9YmFzZXRlbXAs
IGxvY2tfdGltZW91dD1Ob25lKQotICAgICAgICBzZWxmLnRyYWNlKCJta3RlbXAiLCBwKQotICAg
ICAgICByZXR1cm4gcAotCi0gICAgZGVmIGdldGJhc2V0ZW1wKHNlbGYpOgotICAgICAgICAiIiIg
cmV0dXJuIGJhc2UgdGVtcG9yYXJ5IGRpcmVjdG9yeS4gIiIiCi0gICAgICAgIHRyeToKLSAgICAg
ICAgICAgIHJldHVybiBzZWxmLl9iYXNldGVtcAotICAgICAgICBleGNlcHQgQXR0cmlidXRlRXJy
b3I6Ci0gICAgICAgICAgICBiYXNldGVtcCA9IHNlbGYuY29uZmlnLm9wdGlvbi5iYXNldGVtcAot
ICAgICAgICAgICAgaWYgYmFzZXRlbXA6Ci0gICAgICAgICAgICAgICAgYmFzZXRlbXAgPSBweS5w
YXRoLmxvY2FsKGJhc2V0ZW1wKQotICAgICAgICAgICAgICAgIGlmIGJhc2V0ZW1wLmNoZWNrKCk6
Ci0gICAgICAgICAgICAgICAgICAgIGJhc2V0ZW1wLnJlbW92ZSgpCi0gICAgICAgICAgICAgICAg
YmFzZXRlbXAubWtkaXIoKQotICAgICAgICAgICAgZWxzZToKLSAgICAgICAgICAgICAgICB0ZW1w
cm9vdCA9IHB5LnBhdGgubG9jYWwuZ2V0X3RlbXByb290KCkKLSAgICAgICAgICAgICAgICB1c2Vy
ID0gZ2V0X3VzZXIoKQotICAgICAgICAgICAgICAgIGlmIHVzZXI6Ci0gICAgICAgICAgICAgICAg
ICAgICMgdXNlIGEgc3ViLWRpcmVjdG9yeSBpbiB0aGUgdGVtcHJvb3QgdG8gc3BlZWQtdXAKLSAg
ICAgICAgICAgICAgICAgICAgIyBtYWtlX251bWJlcmVkX2RpcigpIGNhbGwKLSAgICAgICAgICAg
ICAgICAgICAgcm9vdGRpciA9IHRlbXByb290LmpvaW4oJ3B5dGVzdC1vZi0lcycgJSB1c2VyKQot
ICAgICAgICAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAgICAgICAgIHJvb3RkaXIgPSB0ZW1w
cm9vdAotICAgICAgICAgICAgICAgIHJvb3RkaXIuZW5zdXJlKGRpcj0xKQotICAgICAgICAgICAg
ICAgIGJhc2V0ZW1wID0gcHkucGF0aC5sb2NhbC5tYWtlX251bWJlcmVkX2RpcihwcmVmaXg9J3B5
dGVzdC0nLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICByb290ZGlyPXJvb3RkaXIpCi0gICAgICAgICAgICBzZWxmLl9iYXNldGVtcCA9
IHQgPSBiYXNldGVtcC5yZWFscGF0aCgpCi0gICAgICAgICAgICBzZWxmLnRyYWNlKCJuZXcgYmFz
ZXRlbXAiLCB0KQotICAgICAgICAgICAgcmV0dXJuIHQKLQotICAgIGRlZiBmaW5pc2goc2VsZik6
Ci0gICAgICAgIHNlbGYudHJhY2UoImZpbmlzaCIpCi0KLQotZGVmIGdldF91c2VyKCk6Ci0gICAg
IiIiUmV0dXJuIHRoZSBjdXJyZW50IHVzZXIgbmFtZSwgb3IgTm9uZSBpZiBnZXR1c2VyKCkgZG9l
cyBub3Qgd29yawotICAgIGluIHRoZSBjdXJyZW50IGVudmlyb25tZW50IChzZWUgIzEwMTApLgot
ICAgICIiIgotICAgIGltcG9ydCBnZXRwYXNzCi0gICAgdHJ5OgotICAgICAgICByZXR1cm4gZ2V0
cGFzcy5nZXR1c2VyKCkKLSAgICBleGNlcHQgKEltcG9ydEVycm9yLCBLZXlFcnJvcik6Ci0gICAg
ICAgIHJldHVybiBOb25lCi0KLQotIyBiYWNrd2FyZCBjb21wYXRpYmlsaXR5Ci1UZW1wZGlySGFu
ZGxlciA9IFRlbXBkaXJGYWN0b3J5Ci0KLQotZGVmIHB5dGVzdF9jb25maWd1cmUoY29uZmlnKToK
LSAgICAiIiJDcmVhdGUgYSBUZW1wZGlyRmFjdG9yeSBhbmQgYXR0YWNoIGl0IHRvIHRoZSBjb25m
aWcgb2JqZWN0LgotCi0gICAgVGhpcyBpcyB0byBjb21wbHkgd2l0aCBleGlzdGluZyBwbHVnaW5z
IHdoaWNoIGV4cGVjdCB0aGUgaGFuZGxlciB0byBiZQotICAgIGF2YWlsYWJsZSBhdCBweXRlc3Rf
Y29uZmlndXJlIHRpbWUsIGJ1dCBpZGVhbGx5IHNob3VsZCBiZSBtb3ZlZCBlbnRpcmVseQotICAg
IHRvIHRoZSB0bXBkaXJfZmFjdG9yeSBzZXNzaW9uIGZpeHR1cmUuCi0gICAgIiIiCi0gICAgbXAg
PSBNb25rZXlQYXRjaCgpCi0gICAgdCA9IFRlbXBkaXJGYWN0b3J5KGNvbmZpZykKLSAgICBjb25m
aWcuX2NsZWFudXAuZXh0ZW5kKFttcC51bmRvLCB0LmZpbmlzaF0pCi0gICAgbXAuc2V0YXR0cihj
b25maWcsICdfdG1wZGlyaGFuZGxlcicsIHQsIHJhaXNpbmc9RmFsc2UpCi0gICAgbXAuc2V0YXR0
cihweXRlc3QsICdlbnN1cmV0ZW1wJywgdC5lbnN1cmV0ZW1wLCByYWlzaW5nPUZhbHNlKQotCi0K
LUBweXRlc3QuZml4dHVyZShzY29wZT0nc2Vzc2lvbicpCi1kZWYgdG1wZGlyX2ZhY3RvcnkocmVx
dWVzdCk6Ci0gICAgIiIiUmV0dXJuIGEgVGVtcGRpckZhY3RvcnkgaW5zdGFuY2UgZm9yIHRoZSB0
ZXN0IHNlc3Npb24uCi0gICAgIiIiCi0gICAgcmV0dXJuIHJlcXVlc3QuY29uZmlnLl90bXBkaXJo
YW5kbGVyCi0KLQotQHB5dGVzdC5maXh0dXJlCi1kZWYgdG1wZGlyKHJlcXVlc3QsIHRtcGRpcl9m
YWN0b3J5KToKLSAgICAiIiJSZXR1cm4gYSB0ZW1wb3JhcnkgZGlyZWN0b3J5IHBhdGggb2JqZWN0
Ci0gICAgd2hpY2ggaXMgdW5pcXVlIHRvIGVhY2ggdGVzdCBmdW5jdGlvbiBpbnZvY2F0aW9uLAot
ICAgIGNyZWF0ZWQgYXMgYSBzdWIgZGlyZWN0b3J5IG9mIHRoZSBiYXNlIHRlbXBvcmFyeQotICAg
IGRpcmVjdG9yeS4gIFRoZSByZXR1cm5lZCBvYmplY3QgaXMgYSBgcHkucGF0aC5sb2NhbGBfCi0g
ICAgcGF0aCBvYmplY3QuCi0gICAgIiIiCi0gICAgbmFtZSA9IHJlcXVlc3Qubm9kZS5uYW1lCi0g
ICAgbmFtZSA9IHJlLnN1YihyIltcV10iLCAiXyIsIG5hbWUpCi0gICAgTUFYVkFMID0gMzAKLSAg
ICBpZiBsZW4obmFtZSkgPiBNQVhWQUw6Ci0gICAgICAgIG5hbWUgPSBuYW1lWzpNQVhWQUxdCi0g
ICAgeCA9IHRtcGRpcl9mYWN0b3J5Lm1rdGVtcChuYW1lLCBudW1iZXJlZD1UcnVlKQotICAgIHJl
dHVybiB4CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9fcHl0ZXN0L3VuaXR0ZXN0LnB5IGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0
eS9weXRlc3QvX3B5dGVzdC91bml0dGVzdC5weQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggM2RkYjM5NDk1ZTM5NzAzNDRiNGE2ZDhmOTJhODY4MDg3YjVmZWYyOS4uMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9fcHl0ZXN0L3Vu
aXR0ZXN0LnB5CisrKyAvZGV2L251bGwKQEAgLTEsMjM3ICswLDAgQEAKLSIiIiBkaXNjb3Zlcnkg
YW5kIHJ1bm5pbmcgb2Ygc3RkLWxpYnJhcnkgInVuaXR0ZXN0IiBzdHlsZSB0ZXN0cy4gIiIiCi1m
cm9tIF9fZnV0dXJlX18gaW1wb3J0IGFic29sdXRlX2ltcG9ydCwgZGl2aXNpb24sIHByaW50X2Z1
bmN0aW9uCi0KLWltcG9ydCBzeXMKLWltcG9ydCB0cmFjZWJhY2sKLQotIyBmb3IgdHJhbnNmZXJy
aW5nIG1hcmtlcnMKLWltcG9ydCBfcHl0ZXN0Ll9jb2RlCi1mcm9tIF9weXRlc3QuY29uZmlnIGlt
cG9ydCBob29raW1wbAotZnJvbSBfcHl0ZXN0Lm91dGNvbWVzIGltcG9ydCBmYWlsLCBza2lwLCB4
ZmFpbAotZnJvbSBfcHl0ZXN0LnB5dGhvbiBpbXBvcnQgdHJhbnNmZXJfbWFya2VycywgQ2xhc3Ms
IE1vZHVsZSwgRnVuY3Rpb24KLQotCi1kZWYgcHl0ZXN0X3B5Y29sbGVjdF9tYWtlaXRlbShjb2xs
ZWN0b3IsIG5hbWUsIG9iaik6Ci0gICAgIyBoYXMgdW5pdHRlc3QgYmVlbiBpbXBvcnRlZCBhbmQg
aXMgb2JqIGEgc3ViY2xhc3Mgb2YgaXRzIFRlc3RDYXNlPwotICAgIHRyeToKLSAgICAgICAgaWYg
bm90IGlzc3ViY2xhc3Mob2JqLCBzeXMubW9kdWxlc1sidW5pdHRlc3QiXS5UZXN0Q2FzZSk6Ci0g
ICAgICAgICAgICByZXR1cm4KLSAgICBleGNlcHQgRXhjZXB0aW9uOgotICAgICAgICByZXR1cm4K
LSAgICAjIHllcywgc28gbGV0J3MgY29sbGVjdCBpdAotICAgIHJldHVybiBVbml0VGVzdENhc2Uo
bmFtZSwgcGFyZW50PWNvbGxlY3RvcikKLQotCi1jbGFzcyBVbml0VGVzdENhc2UoQ2xhc3MpOgot
ICAgICMgbWFya2VyIGZvciBmaXh0dXJlbWFuZ2VyLmdldGZpeHR1cmVpbmZvKCkKLSAgICAjIHRv
IGRlY2xhcmUgdGhhdCBvdXIgY2hpbGRyZW4gZG8gbm90IHN1cHBvcnQgZnVuY2FyZ3MKLSAgICBu
b2Z1bmNhcmdzID0gVHJ1ZQotCi0gICAgZGVmIHNldHVwKHNlbGYpOgotICAgICAgICBjbHMgPSBz
ZWxmLm9iagotICAgICAgICBpZiBnZXRhdHRyKGNscywgJ19fdW5pdHRlc3Rfc2tpcF9fJywgRmFs
c2UpOgotICAgICAgICAgICAgcmV0dXJuICAjIHNraXBwZWQKLSAgICAgICAgc2V0dXAgPSBnZXRh
dHRyKGNscywgJ3NldFVwQ2xhc3MnLCBOb25lKQotICAgICAgICBpZiBzZXR1cCBpcyBub3QgTm9u
ZToKLSAgICAgICAgICAgIHNldHVwKCkKLSAgICAgICAgdGVhcmRvd24gPSBnZXRhdHRyKGNscywg
J3RlYXJEb3duQ2xhc3MnLCBOb25lKQotICAgICAgICBpZiB0ZWFyZG93biBpcyBub3QgTm9uZToK
LSAgICAgICAgICAgIHNlbGYuYWRkZmluYWxpemVyKHRlYXJkb3duKQotICAgICAgICBzdXBlcihV
bml0VGVzdENhc2UsIHNlbGYpLnNldHVwKCkKLQotICAgIGRlZiBjb2xsZWN0KHNlbGYpOgotICAg
ICAgICBmcm9tIHVuaXR0ZXN0IGltcG9ydCBUZXN0TG9hZGVyCi0gICAgICAgIGNscyA9IHNlbGYu
b2JqCi0gICAgICAgIGlmIG5vdCBnZXRhdHRyKGNscywgIl9fdGVzdF9fIiwgVHJ1ZSk6Ci0gICAg
ICAgICAgICByZXR1cm4KLSAgICAgICAgc2VsZi5zZXNzaW9uLl9maXh0dXJlbWFuYWdlci5wYXJz
ZWZhY3RvcmllcyhzZWxmLCB1bml0dGVzdD1UcnVlKQotICAgICAgICBsb2FkZXIgPSBUZXN0TG9h
ZGVyKCkKLSAgICAgICAgbW9kdWxlID0gc2VsZi5nZXRwYXJlbnQoTW9kdWxlKS5vYmoKLSAgICAg
ICAgZm91bmRzb21ldGhpbmcgPSBGYWxzZQotICAgICAgICBmb3IgbmFtZSBpbiBsb2FkZXIuZ2V0
VGVzdENhc2VOYW1lcyhzZWxmLm9iaik6Ci0gICAgICAgICAgICB4ID0gZ2V0YXR0cihzZWxmLm9i
aiwgbmFtZSkKLSAgICAgICAgICAgIGlmIG5vdCBnZXRhdHRyKHgsICdfX3Rlc3RfXycsIFRydWUp
OgotICAgICAgICAgICAgICAgIGNvbnRpbnVlCi0gICAgICAgICAgICBmdW5jb2JqID0gZ2V0YXR0
cih4LCAnaW1fZnVuYycsIHgpCi0gICAgICAgICAgICB0cmFuc2Zlcl9tYXJrZXJzKGZ1bmNvYmos
IGNscywgbW9kdWxlKQotICAgICAgICAgICAgeWllbGQgVGVzdENhc2VGdW5jdGlvbihuYW1lLCBw
YXJlbnQ9c2VsZikKLSAgICAgICAgICAgIGZvdW5kc29tZXRoaW5nID0gVHJ1ZQotCi0gICAgICAg
IGlmIG5vdCBmb3VuZHNvbWV0aGluZzoKLSAgICAgICAgICAgIHJ1bnRlc3QgPSBnZXRhdHRyKHNl
bGYub2JqLCAncnVuVGVzdCcsIE5vbmUpCi0gICAgICAgICAgICBpZiBydW50ZXN0IGlzIG5vdCBO
b25lOgotICAgICAgICAgICAgICAgIHV0ID0gc3lzLm1vZHVsZXMuZ2V0KCJ0d2lzdGVkLnRyaWFs
LnVuaXR0ZXN0IiwgTm9uZSkKLSAgICAgICAgICAgICAgICBpZiB1dCBpcyBOb25lIG9yIHJ1bnRl
c3QgIT0gdXQuVGVzdENhc2UucnVuVGVzdDoKLSAgICAgICAgICAgICAgICAgICAgeWllbGQgVGVz
dENhc2VGdW5jdGlvbigncnVuVGVzdCcsIHBhcmVudD1zZWxmKQotCi0KLWNsYXNzIFRlc3RDYXNl
RnVuY3Rpb24oRnVuY3Rpb24pOgotICAgIF9leGNpbmZvID0gTm9uZQotCi0gICAgZGVmIHNldHVw
KHNlbGYpOgotICAgICAgICBzZWxmLl90ZXN0Y2FzZSA9IHNlbGYucGFyZW50Lm9iaihzZWxmLm5h
bWUpCi0gICAgICAgIHNlbGYuX2ZpeF91bml0dGVzdF9za2lwX2RlY29yYXRvcigpCi0gICAgICAg
IHNlbGYuX29iaiA9IGdldGF0dHIoc2VsZi5fdGVzdGNhc2UsIHNlbGYubmFtZSkKLSAgICAgICAg
aWYgaGFzYXR0cihzZWxmLl90ZXN0Y2FzZSwgJ3NldHVwX21ldGhvZCcpOgotICAgICAgICAgICAg
c2VsZi5fdGVzdGNhc2Uuc2V0dXBfbWV0aG9kKHNlbGYuX29iaikKLSAgICAgICAgaWYgaGFzYXR0
cihzZWxmLCAiX3JlcXVlc3QiKToKLSAgICAgICAgICAgIHNlbGYuX3JlcXVlc3QuX2ZpbGxmaXh0
dXJlcygpCi0KLSAgICBkZWYgX2ZpeF91bml0dGVzdF9za2lwX2RlY29yYXRvcihzZWxmKToKLSAg
ICAgICAgIiIiCi0gICAgICAgIFRoZSBAdW5pdHRlc3Quc2tpcCBkZWNvcmF0b3IgY2FsbHMgZnVu
Y3Rvb2xzLndyYXBzKHNlbGYuX3Rlc3RjYXNlKQotICAgICAgICBUaGUgY2FsbCB0byBmdW5jdG9v
bHMud3JhcHMoKSBmYWlscyB1bmxlc3Mgc2VsZi5fdGVzdGNhc2UKLSAgICAgICAgaGFzIGEgX19u
YW1lX18gYXR0cmlidXRlLiBUaGlzIGlzIHVzdWFsbHkgYXV0b21hdGljYWxseSBzdXBwbGllZAot
ICAgICAgICBpZiB0aGUgdGVzdCBpcyBhIGZ1bmN0aW9uIG9yIG1ldGhvZCwgYnV0IHdlIG5lZWQg
dG8gYWRkIG1hbnVhbGx5Ci0gICAgICAgIGhlcmUuCi0KLSAgICAgICAgU2VlIGlzc3VlICMxMTY5
Ci0gICAgICAgICIiIgotICAgICAgICBpZiBzeXMudmVyc2lvbl9pbmZvWzBdID09IDI6Ci0gICAg
ICAgICAgICBzZXRhdHRyKHNlbGYuX3Rlc3RjYXNlLCAiX19uYW1lX18iLCBzZWxmLm5hbWUpCi0K
LSAgICBkZWYgdGVhcmRvd24oc2VsZik6Ci0gICAgICAgIGlmIGhhc2F0dHIoc2VsZi5fdGVzdGNh
c2UsICd0ZWFyZG93bl9tZXRob2QnKToKLSAgICAgICAgICAgIHNlbGYuX3Rlc3RjYXNlLnRlYXJk
b3duX21ldGhvZChzZWxmLl9vYmopCi0gICAgICAgICMgQWxsb3cgZ2FyYmFnZSBjb2xsZWN0aW9u
IG9uIFRlc3RDYXNlIGluc3RhbmNlIGF0dHJpYnV0ZXMuCi0gICAgICAgIHNlbGYuX3Rlc3RjYXNl
ID0gTm9uZQotICAgICAgICBzZWxmLl9vYmogPSBOb25lCi0KLSAgICBkZWYgc3RhcnRUZXN0KHNl
bGYsIHRlc3RjYXNlKToKLSAgICAgICAgcGFzcwotCi0gICAgZGVmIF9hZGRleGNpbmZvKHNlbGYs
IHJhd2V4Y2luZm8pOgotICAgICAgICAjIHVud3JhcCBwb3RlbnRpYWwgZXhjZXB0aW9uIGluZm8g
KHNlZSB0d2lzdGVkIHRyaWFsIHN1cHBvcnQgYmVsb3cpCi0gICAgICAgIHJhd2V4Y2luZm8gPSBn
ZXRhdHRyKHJhd2V4Y2luZm8sICdfcmF3ZXhjaW5mbycsIHJhd2V4Y2luZm8pCi0gICAgICAgIHRy
eToKLSAgICAgICAgICAgIGV4Y2luZm8gPSBfcHl0ZXN0Ll9jb2RlLkV4Y2VwdGlvbkluZm8ocmF3
ZXhjaW5mbykKLSAgICAgICAgZXhjZXB0IFR5cGVFcnJvcjoKLSAgICAgICAgICAgIHRyeToKLSAg
ICAgICAgICAgICAgICB0cnk6Ci0gICAgICAgICAgICAgICAgICAgIHZhbHVlcyA9IHRyYWNlYmFj
ay5mb3JtYXRfZXhjZXB0aW9uKCpyYXdleGNpbmZvKQotICAgICAgICAgICAgICAgICAgICB2YWx1
ZXMuaW5zZXJ0KDAsICJOT1RFOiBJbmNvbXBhdGlibGUgRXhjZXB0aW9uIFJlcHJlc2VudGF0aW9u
LCAiCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImRpc3BsYXlpbmcgbmF0aXZl
bHk6XG5cbiIpCi0gICAgICAgICAgICAgICAgICAgIGZhaWwoIiIuam9pbih2YWx1ZXMpLCBweXRy
YWNlPUZhbHNlKQotICAgICAgICAgICAgICAgIGV4Y2VwdCAoZmFpbC5FeGNlcHRpb24sIEtleWJv
YXJkSW50ZXJydXB0KToKLSAgICAgICAgICAgICAgICAgICAgcmFpc2UKLSAgICAgICAgICAgICAg
ICBleGNlcHQ6ICAjIG5vcWEKLSAgICAgICAgICAgICAgICAgICAgZmFpbCgiRVJST1I6IFVua25v
d24gSW5jb21wYXRpYmxlIEV4Y2VwdGlvbiAiCi0gICAgICAgICAgICAgICAgICAgICAgICAgInJl
cHJlc2VudGF0aW9uOlxuJXIiICUgKHJhd2V4Y2luZm8sKSwgcHl0cmFjZT1GYWxzZSkKLSAgICAg
ICAgICAgIGV4Y2VwdCBLZXlib2FyZEludGVycnVwdDoKLSAgICAgICAgICAgICAgICByYWlzZQot
ICAgICAgICAgICAgZXhjZXB0IGZhaWwuRXhjZXB0aW9uOgotICAgICAgICAgICAgICAgIGV4Y2lu
Zm8gPSBfcHl0ZXN0Ll9jb2RlLkV4Y2VwdGlvbkluZm8oKQotICAgICAgICBzZWxmLl9fZGljdF9f
LnNldGRlZmF1bHQoJ19leGNpbmZvJywgW10pLmFwcGVuZChleGNpbmZvKQotCi0gICAgZGVmIGFk
ZEVycm9yKHNlbGYsIHRlc3RjYXNlLCByYXdleGNpbmZvKToKLSAgICAgICAgc2VsZi5fYWRkZXhj
aW5mbyhyYXdleGNpbmZvKQotCi0gICAgZGVmIGFkZEZhaWx1cmUoc2VsZiwgdGVzdGNhc2UsIHJh
d2V4Y2luZm8pOgotICAgICAgICBzZWxmLl9hZGRleGNpbmZvKHJhd2V4Y2luZm8pCi0KLSAgICBk
ZWYgYWRkU2tpcChzZWxmLCB0ZXN0Y2FzZSwgcmVhc29uKToKLSAgICAgICAgdHJ5OgotICAgICAg
ICAgICAgc2tpcChyZWFzb24pCi0gICAgICAgIGV4Y2VwdCBza2lwLkV4Y2VwdGlvbjoKLSAgICAg
ICAgICAgIHNlbGYuX3NraXBwZWRfYnlfbWFyayA9IFRydWUKLSAgICAgICAgICAgIHNlbGYuX2Fk
ZGV4Y2luZm8oc3lzLmV4Y19pbmZvKCkpCi0KLSAgICBkZWYgYWRkRXhwZWN0ZWRGYWlsdXJlKHNl
bGYsIHRlc3RjYXNlLCByYXdleGNpbmZvLCByZWFzb249IiIpOgotICAgICAgICB0cnk6Ci0gICAg
ICAgICAgICB4ZmFpbChzdHIocmVhc29uKSkKLSAgICAgICAgZXhjZXB0IHhmYWlsLkV4Y2VwdGlv
bjoKLSAgICAgICAgICAgIHNlbGYuX2FkZGV4Y2luZm8oc3lzLmV4Y19pbmZvKCkpCi0KLSAgICBk
ZWYgYWRkVW5leHBlY3RlZFN1Y2Nlc3Moc2VsZiwgdGVzdGNhc2UsIHJlYXNvbj0iIik6Ci0gICAg
ICAgIHNlbGYuX3VuZXhwZWN0ZWRzdWNjZXNzID0gcmVhc29uCi0KLSAgICBkZWYgYWRkU3VjY2Vz
cyhzZWxmLCB0ZXN0Y2FzZSk6Ci0gICAgICAgIHBhc3MKLQotICAgIGRlZiBzdG9wVGVzdChzZWxm
LCB0ZXN0Y2FzZSk6Ci0gICAgICAgIHBhc3MKLQotICAgIGRlZiBfaGFuZGxlX3NraXAoc2VsZik6
Ci0gICAgICAgICMgaW1wbGVtZW50cyB0aGUgc2tpcHBpbmcgbWFjaGluZXJ5IChzZWUgIzIxMzcp
Ci0gICAgICAgICMgYW5hbG9nIHRvIHB5dGhvbnMgTGliL3VuaXR0ZXN0L2Nhc2UucHk6cnVuCi0g
ICAgICAgIHRlc3RNZXRob2QgPSBnZXRhdHRyKHNlbGYuX3Rlc3RjYXNlLCBzZWxmLl90ZXN0Y2Fz
ZS5fdGVzdE1ldGhvZE5hbWUpCi0gICAgICAgIGlmIChnZXRhdHRyKHNlbGYuX3Rlc3RjYXNlLl9f
Y2xhc3NfXywgIl9fdW5pdHRlc3Rfc2tpcF9fIiwgRmFsc2UpIG9yCi0gICAgICAgICAgICAgICAg
Z2V0YXR0cih0ZXN0TWV0aG9kLCAiX191bml0dGVzdF9za2lwX18iLCBGYWxzZSkpOgotICAgICAg
ICAgICAgIyBJZiB0aGUgY2xhc3Mgb3IgbWV0aG9kIHdhcyBza2lwcGVkLgotICAgICAgICAgICAg
c2tpcF93aHkgPSAoZ2V0YXR0cihzZWxmLl90ZXN0Y2FzZS5fX2NsYXNzX18sICdfX3VuaXR0ZXN0
X3NraXBfd2h5X18nLCAnJykgb3IKLSAgICAgICAgICAgICAgICAgICAgICAgIGdldGF0dHIodGVz
dE1ldGhvZCwgJ19fdW5pdHRlc3Rfc2tpcF93aHlfXycsICcnKSkKLSAgICAgICAgICAgIHRyeTog
ICMgUFkzLCB1bml0dGVzdDIgb24gUFkyCi0gICAgICAgICAgICAgICAgc2VsZi5fdGVzdGNhc2Uu
X2FkZFNraXAoc2VsZiwgc2VsZi5fdGVzdGNhc2UsIHNraXBfd2h5KQotICAgICAgICAgICAgZXhj
ZXB0IFR5cGVFcnJvcjogICMgUFkyCi0gICAgICAgICAgICAgICAgaWYgc3lzLnZlcnNpb25faW5m
b1swXSAhPSAyOgotICAgICAgICAgICAgICAgICAgICByYWlzZQotICAgICAgICAgICAgICAgIHNl
bGYuX3Rlc3RjYXNlLl9hZGRTa2lwKHNlbGYsIHNraXBfd2h5KQotICAgICAgICAgICAgcmV0dXJu
IFRydWUKLSAgICAgICAgcmV0dXJuIEZhbHNlCi0KLSAgICBkZWYgcnVudGVzdChzZWxmKToKLSAg
ICAgICAgaWYgc2VsZi5jb25maWcucGx1Z2lubWFuYWdlci5nZXRfcGx1Z2luKCJwZGJpbnZva2Ui
KSBpcyBOb25lOgotICAgICAgICAgICAgc2VsZi5fdGVzdGNhc2UocmVzdWx0PXNlbGYpCi0gICAg
ICAgIGVsc2U6Ci0gICAgICAgICAgICAjIGRpc2FibGVzIHRlYXJEb3duIGFuZCBjbGVhbnVwcyBm
b3IgcG9zdCBtb3J0ZW0gZGVidWdnaW5nIChzZWUgIzE4OTApCi0gICAgICAgICAgICBpZiBzZWxm
Ll9oYW5kbGVfc2tpcCgpOgotICAgICAgICAgICAgICAgIHJldHVybgotICAgICAgICAgICAgc2Vs
Zi5fdGVzdGNhc2UuZGVidWcoKQotCi0gICAgZGVmIF9wcnVuZXRyYWNlYmFjayhzZWxmLCBleGNp
bmZvKToKLSAgICAgICAgRnVuY3Rpb24uX3BydW5ldHJhY2ViYWNrKHNlbGYsIGV4Y2luZm8pCi0g
ICAgICAgIHRyYWNlYmFjayA9IGV4Y2luZm8udHJhY2ViYWNrLmZpbHRlcigKLSAgICAgICAgICAg
IGxhbWJkYSB4OiBub3QgeC5mcmFtZS5mX2dsb2JhbHMuZ2V0KCdfX3VuaXR0ZXN0JykpCi0gICAg
ICAgIGlmIHRyYWNlYmFjazoKLSAgICAgICAgICAgIGV4Y2luZm8udHJhY2ViYWNrID0gdHJhY2Vi
YWNrCi0KLQotQGhvb2tpbXBsKHRyeWZpcnN0PVRydWUpCi1kZWYgcHl0ZXN0X3J1bnRlc3RfbWFr
ZXJlcG9ydChpdGVtLCBjYWxsKToKLSAgICBpZiBpc2luc3RhbmNlKGl0ZW0sIFRlc3RDYXNlRnVu
Y3Rpb24pOgotICAgICAgICBpZiBpdGVtLl9leGNpbmZvOgotICAgICAgICAgICAgY2FsbC5leGNp
bmZvID0gaXRlbS5fZXhjaW5mby5wb3AoMCkKLSAgICAgICAgICAgIHRyeToKLSAgICAgICAgICAg
ICAgICBkZWwgY2FsbC5yZXN1bHQKLSAgICAgICAgICAgIGV4Y2VwdCBBdHRyaWJ1dGVFcnJvcjoK
LSAgICAgICAgICAgICAgICBwYXNzCi0KLSMgdHdpc3RlZCB0cmlhbCBzdXBwb3J0Ci0KLQotQGhv
b2tpbXBsKGhvb2t3cmFwcGVyPVRydWUpCi1kZWYgcHl0ZXN0X3J1bnRlc3RfcHJvdG9jb2woaXRl
bSk6Ci0gICAgaWYgaXNpbnN0YW5jZShpdGVtLCBUZXN0Q2FzZUZ1bmN0aW9uKSBhbmQgXAotICAg
ICAgICd0d2lzdGVkLnRyaWFsLnVuaXR0ZXN0JyBpbiBzeXMubW9kdWxlczoKLSAgICAgICAgdXQg
PSBzeXMubW9kdWxlc1sndHdpc3RlZC5weXRob24uZmFpbHVyZSddCi0gICAgICAgIEZhaWx1cmVf
X2luaXRfXyA9IHV0LkZhaWx1cmUuX19pbml0X18KLSAgICAgICAgY2hlY2tfdGVzdGNhc2VfaW1w
bGVtZW50c190cmlhbF9yZXBvcnRlcigpCi0KLSAgICAgICAgZGVmIGV4Y3N0b3JlKHNlbGYsIGV4
Y192YWx1ZT1Ob25lLCBleGNfdHlwZT1Ob25lLCBleGNfdGI9Tm9uZSwKLSAgICAgICAgICAgICAg
ICAgICAgIGNhcHR1cmVWYXJzPU5vbmUpOgotICAgICAgICAgICAgaWYgZXhjX3ZhbHVlIGlzIE5v
bmU6Ci0gICAgICAgICAgICAgICAgc2VsZi5fcmF3ZXhjaW5mbyA9IHN5cy5leGNfaW5mbygpCi0g
ICAgICAgICAgICBlbHNlOgotICAgICAgICAgICAgICAgIGlmIGV4Y190eXBlIGlzIE5vbmU6Ci0g
ICAgICAgICAgICAgICAgICAgIGV4Y190eXBlID0gdHlwZShleGNfdmFsdWUpCi0gICAgICAgICAg
ICAgICAgc2VsZi5fcmF3ZXhjaW5mbyA9IChleGNfdHlwZSwgZXhjX3ZhbHVlLCBleGNfdGIpCi0g
ICAgICAgICAgICB0cnk6Ci0gICAgICAgICAgICAgICAgRmFpbHVyZV9faW5pdF9fKHNlbGYsIGV4
Y192YWx1ZSwgZXhjX3R5cGUsIGV4Y190YiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgY2FwdHVyZVZhcnM9Y2FwdHVyZVZhcnMpCi0gICAgICAgICAgICBleGNlcHQgVHlwZUVycm9y
OgotICAgICAgICAgICAgICAgIEZhaWx1cmVfX2luaXRfXyhzZWxmLCBleGNfdmFsdWUsIGV4Y190
eXBlLCBleGNfdGIpCi0KLSAgICAgICAgdXQuRmFpbHVyZS5fX2luaXRfXyA9IGV4Y3N0b3JlCi0g
ICAgICAgIHlpZWxkCi0gICAgICAgIHV0LkZhaWx1cmUuX19pbml0X18gPSBGYWlsdXJlX19pbml0
X18KLSAgICBlbHNlOgotICAgICAgICB5aWVsZAotCi0KLWRlZiBjaGVja190ZXN0Y2FzZV9pbXBs
ZW1lbnRzX3RyaWFsX3JlcG9ydGVyKGRvbmU9W10pOgotICAgIGlmIGRvbmU6Ci0gICAgICAgIHJl
dHVybgotICAgIGZyb20gem9wZS5pbnRlcmZhY2UgaW1wb3J0IGNsYXNzSW1wbGVtZW50cwotICAg
IGZyb20gdHdpc3RlZC50cmlhbC5pdHJpYWwgaW1wb3J0IElSZXBvcnRlcgotICAgIGNsYXNzSW1w
bGVtZW50cyhUZXN0Q2FzZUZ1bmN0aW9uLCBJUmVwb3J0ZXIpCi0gICAgZG9uZS5hcHBlbmQoMSkK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L19weXRlc3QvdzNjLWltcG9ydC5sb2cgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5
dGVzdC9fcHl0ZXN0L3czYy1pbXBvcnQubG9nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCA4ODBlZmMwYzkxMGZkMDc2MmVmNjAxM2Y0OGVmZDMzNDYzZjQzOThlLi4wMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L19weXRlc3QvdzNj
LWltcG9ydC5sb2cKKysrIC9kZXYvbnVsbApAQCAtMSw1MSArMCwwIEBACi1UaGUgdGVzdHMgaW4g
dGhpcyBkaXJlY3Rvcnkgd2VyZSBpbXBvcnRlZCBmcm9tIHRoZSBXM0MgcmVwb3NpdG9yeS4KLURv
IE5PVCBtb2RpZnkgdGhlc2UgdGVzdHMgZGlyZWN0bHkgaW4gV2ViS2l0LgotSW5zdGVhZCwgY3Jl
YXRlIGEgcHVsbCByZXF1ZXN0IG9uIHRoZSBXUFQgZ2l0aHViOgotCWh0dHBzOi8vZ2l0aHViLmNv
bS93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzCi0KLVRoZW4gcnVuIHRoZSBUb29scy9TY3JpcHRzL2lt
cG9ydC13M2MtdGVzdHMgaW4gV2ViS2l0IHRvIHJlaW1wb3J0Ci0KLURvIE5PVCBtb2RpZnkgb3Ig
cmVtb3ZlIHRoaXMgZmlsZS4KLQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1Qcm9wZXJ0aWVzIHJlcXVpcmlu
ZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi1Qcm9wZXJ0eSB2YWx1ZXMgcmVxdWlyaW5nIHZlbmRv
ciBwcmVmaXhlczoKLU5vbmUKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotTGlzdCBvZiBmaWxlczoKLS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5
L3B5dGVzdC9fcHl0ZXN0L19faW5pdF9fLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvX3B5dGVzdC9fYXJnY29t
cGxldGUucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9fcHl0ZXN0L2NhY2hlcHJvdmlkZXIucHkKLS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5
dGVzdC9fcHl0ZXN0L2NhcHR1cmUucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9fcHl0ZXN0L2NvbXBhdC5weQot
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRf
cGFydHkvcHl0ZXN0L19weXRlc3QvY29uZmlnLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvX3B5dGVzdC9kZWJ1
Z2dpbmcucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9fcHl0ZXN0L2RlcHJlY2F0ZWQucHkKLS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVz
dC9fcHl0ZXN0L2RvY3Rlc3QucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9fcHl0ZXN0L2ZpeHR1cmVzLnB5Ci0v
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9w
YXJ0eS9weXRlc3QvX3B5dGVzdC9mcmVlemVfc3VwcG9ydC5weQotL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L19weXRl
c3QvaGVscGNvbmZpZy5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L19weXRlc3QvaG9va3NwZWMucHkKLS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5
L3B5dGVzdC9fcHl0ZXN0L2p1bml0eG1sLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvX3B5dGVzdC9sb2dnaW5n
LnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90
aGlyZF9wYXJ0eS9weXRlc3QvX3B5dGVzdC9tYWluLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvX3B5dGVzdC9t
YXJrLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy90aGlyZF9wYXJ0eS9weXRlc3QvX3B5dGVzdC9tb25rZXlwYXRjaC5weQotL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0
L19weXRlc3Qvbm9kZXMucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9fcHl0ZXN0L25vc2UucHkKLS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5
dGVzdC9fcHl0ZXN0L291dGNvbWVzLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvX3B5dGVzdC9wYXN0ZWJpbi5w
eQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhp
cmRfcGFydHkvcHl0ZXN0L19weXRlc3QvcHl0ZXN0ZXIucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9fcHl0ZXN0
L3B5dGhvbi5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L19weXRlc3QvcHl0aG9uX2FwaS5weQotL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0
ZXN0L19weXRlc3QvcmVjd2Fybi5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L19weXRlc3QvcmVzdWx0bG9nLnB5
Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS9weXRlc3QvX3B5dGVzdC9ydW5uZXIucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9fcHl0ZXN0L3Nl
dHVwb25seS5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L19weXRlc3Qvc2V0dXBwbGFuLnB5Ci0vTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRl
c3QvX3B5dGVzdC9za2lwcGluZy5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L19weXRlc3QvdGVybWluYWwucHkK
LS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJk
X3BhcnR5L3B5dGVzdC9fcHl0ZXN0L3RtcGRpci5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L19weXRlc3QvdW5p
dHRlc3QucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9fcHl0ZXN0L3dhcm5pbmdzLnB5CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3Bh
cnR5L3B5dGVzdC9fcHl0ZXN0L3dhcm5pbmdzLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvX3B5dGVzdC93YXJu
aW5ncy5weQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggM2MyYjE5MTRmYjY5MTY0YjM4
MGYxZjUyOTRmNTc0OWVkM2U0OTI5ZC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9fcHl0ZXN0L3dhcm5pbmdzLnB5CisrKyAvZGV2L251
bGwKQEAgLTEsOTYgKzAsMCBAQAotZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCBhYnNvbHV0ZV9pbXBv
cnQsIGRpdmlzaW9uLCBwcmludF9mdW5jdGlvbgotCi1pbXBvcnQgd2FybmluZ3MKLWZyb20gY29u
dGV4dGxpYiBpbXBvcnQgY29udGV4dG1hbmFnZXIKLQotaW1wb3J0IHB5dGVzdAotCi1mcm9tIF9w
eXRlc3QgaW1wb3J0IGNvbXBhdAotCi0KLWRlZiBfc2V0b3B0aW9uKHdtb2QsIGFyZyk6Ci0gICAg
IiIiCi0gICAgQ29weSBvZiB0aGUgd2FybmluZy5fc2V0b3B0aW9uIGZ1bmN0aW9uIGJ1dCBkb2Vz
IG5vdCBlc2NhcGUgYXJndW1lbnRzLgotICAgICIiIgotICAgIHBhcnRzID0gYXJnLnNwbGl0KCc6
JykKLSAgICBpZiBsZW4ocGFydHMpID4gNToKLSAgICAgICAgcmFpc2Ugd21vZC5fT3B0aW9uRXJy
b3IoInRvbyBtYW55IGZpZWxkcyAobWF4IDUpOiAlciIgJSAoYXJnLCkpCi0gICAgd2hpbGUgbGVu
KHBhcnRzKSA8IDU6Ci0gICAgICAgIHBhcnRzLmFwcGVuZCgnJykKLSAgICBhY3Rpb24sIG1lc3Nh
Z2UsIGNhdGVnb3J5LCBtb2R1bGUsIGxpbmVubyA9IFtzLnN0cmlwKCkKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3IgcyBpbiBwYXJ0c10KLSAgICBh
Y3Rpb24gPSB3bW9kLl9nZXRhY3Rpb24oYWN0aW9uKQotICAgIGNhdGVnb3J5ID0gd21vZC5fZ2V0
Y2F0ZWdvcnkoY2F0ZWdvcnkpCi0gICAgaWYgbGluZW5vOgotICAgICAgICB0cnk6Ci0gICAgICAg
ICAgICBsaW5lbm8gPSBpbnQobGluZW5vKQotICAgICAgICAgICAgaWYgbGluZW5vIDwgMDoKLSAg
ICAgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yCi0gICAgICAgIGV4Y2VwdCAoVmFsdWVFcnJv
ciwgT3ZlcmZsb3dFcnJvcik6Ci0gICAgICAgICAgICByYWlzZSB3bW9kLl9PcHRpb25FcnJvcigi
aW52YWxpZCBsaW5lbm8gJXIiICUgKGxpbmVubywpKQotICAgIGVsc2U6Ci0gICAgICAgIGxpbmVu
byA9IDAKLSAgICB3bW9kLmZpbHRlcndhcm5pbmdzKGFjdGlvbiwgbWVzc2FnZSwgY2F0ZWdvcnks
IG1vZHVsZSwgbGluZW5vKQotCi0KLWRlZiBweXRlc3RfYWRkb3B0aW9uKHBhcnNlcik6Ci0gICAg
Z3JvdXAgPSBwYXJzZXIuZ2V0Z3JvdXAoInB5dGVzdC13YXJuaW5ncyIpCi0gICAgZ3JvdXAuYWRk
b3B0aW9uKAotICAgICAgICAnLVcnLCAnLS1weXRob253YXJuaW5ncycsIGFjdGlvbj0nYXBwZW5k
JywKLSAgICAgICAgaGVscD0ic2V0IHdoaWNoIHdhcm5pbmdzIHRvIHJlcG9ydCwgc2VlIC1XIG9w
dGlvbiBvZiBweXRob24gaXRzZWxmLiIpCi0gICAgcGFyc2VyLmFkZGluaSgiZmlsdGVyd2Fybmlu
Z3MiLCB0eXBlPSJsaW5lbGlzdCIsCi0gICAgICAgICAgICAgICAgICBoZWxwPSJFYWNoIGxpbmUg
c3BlY2lmaWVzIGEgcGF0dGVybiBmb3IgIgotICAgICAgICAgICAgICAgICAgIndhcm5pbmdzLmZp
bHRlcndhcm5pbmdzLiAiCi0gICAgICAgICAgICAgICAgICAiUHJvY2Vzc2VkIGFmdGVyIC1XIGFu
ZCAtLXB5dGhvbndhcm5pbmdzLiIpCi0KLQotQGNvbnRleHRtYW5hZ2VyCi1kZWYgY2F0Y2hfd2Fy
bmluZ3NfZm9yX2l0ZW0oaXRlbSk6Ci0gICAgIiIiCi0gICAgY2F0Y2hlcyB0aGUgd2FybmluZ3Mg
Z2VuZXJhdGVkIGR1cmluZyBzZXR1cC9jYWxsL3RlYXJkb3duIGV4ZWN1dGlvbgotICAgIG9mIHRo
ZSBnaXZlbiBpdGVtIGFuZCBhZnRlciBpdCBpcyBkb25lIHBvc3RzIHRoZW0gYXMgd2FybmluZ3Mg
dG8gdGhpcwotICAgIGl0ZW0uCi0gICAgIiIiCi0gICAgYXJncyA9IGl0ZW0uY29uZmlnLmdldG9w
dGlvbigncHl0aG9ud2FybmluZ3MnKSBvciBbXQotICAgIGluaWZpbHRlcnMgPSBpdGVtLmNvbmZp
Zy5nZXRpbmkoImZpbHRlcndhcm5pbmdzIikKLSAgICB3aXRoIHdhcm5pbmdzLmNhdGNoX3dhcm5p
bmdzKHJlY29yZD1UcnVlKSBhcyBsb2c6Ci0gICAgICAgIGZvciBhcmcgaW4gYXJnczoKLSAgICAg
ICAgICAgIHdhcm5pbmdzLl9zZXRvcHRpb24oYXJnKQotCi0gICAgICAgIGZvciBhcmcgaW4gaW5p
ZmlsdGVyczoKLSAgICAgICAgICAgIF9zZXRvcHRpb24od2FybmluZ3MsIGFyZykKLQotICAgICAg
ICBtYXJrID0gaXRlbS5nZXRfbWFya2VyKCdmaWx0ZXJ3YXJuaW5ncycpCi0gICAgICAgIGlmIG1h
cms6Ci0gICAgICAgICAgICBmb3IgYXJnIGluIG1hcmsuYXJnczoKLSAgICAgICAgICAgICAgICB3
YXJuaW5ncy5fc2V0b3B0aW9uKGFyZykKLQotICAgICAgICB5aWVsZAotCi0gICAgICAgIGZvciB3
YXJuaW5nIGluIGxvZzoKLSAgICAgICAgICAgIHdhcm5fbXNnID0gd2FybmluZy5tZXNzYWdlCi0g
ICAgICAgICAgICB1bmljb2RlX3dhcm5pbmcgPSBGYWxzZQotCi0gICAgICAgICAgICBpZiBjb21w
YXQuX1BZMiBhbmQgYW55KGlzaW5zdGFuY2UobSwgY29tcGF0LlVOSUNPREVfVFlQRVMpIGZvciBt
IGluIHdhcm5fbXNnLmFyZ3MpOgotICAgICAgICAgICAgICAgIG5ld19hcmdzID0gW10KLSAgICAg
ICAgICAgICAgICBmb3IgbSBpbiB3YXJuX21zZy5hcmdzOgotICAgICAgICAgICAgICAgICAgICBu
ZXdfYXJncy5hcHBlbmQoY29tcGF0LmFzY2lpX2VzY2FwZWQobSkgaWYgaXNpbnN0YW5jZShtLCBj
b21wYXQuVU5JQ09ERV9UWVBFUykgZWxzZSBtKQotICAgICAgICAgICAgICAgIHVuaWNvZGVfd2Fy
bmluZyA9IGxpc3Qod2Fybl9tc2cuYXJncykgIT0gbmV3X2FyZ3MKLSAgICAgICAgICAgICAgICB3
YXJuX21zZy5hcmdzID0gbmV3X2FyZ3MKLQotICAgICAgICAgICAgbXNnID0gd2FybmluZ3MuZm9y
bWF0d2FybmluZygKLSAgICAgICAgICAgICAgICB3YXJuX21zZywgd2FybmluZy5jYXRlZ29yeSwK
LSAgICAgICAgICAgICAgICB3YXJuaW5nLmZpbGVuYW1lLCB3YXJuaW5nLmxpbmVubywgd2Fybmlu
Zy5saW5lKQotICAgICAgICAgICAgaXRlbS53YXJuKCJ1bnVzZWQiLCBtc2cpCi0KLSAgICAgICAg
ICAgIGlmIHVuaWNvZGVfd2FybmluZzoKLSAgICAgICAgICAgICAgICB3YXJuaW5ncy53YXJuKAot
ICAgICAgICAgICAgICAgICAgICAiV2FybmluZyBpcyB1c2luZyB1bmljb2RlIG5vbiBjb252ZXJ0
aWJsZSB0byBhc2NpaSwgIgotICAgICAgICAgICAgICAgICAgICAiY29udmVydGluZyB0byBhIHNh
ZmUgcmVwcmVzZW50YXRpb246XG4gICVzIiAlIG1zZywKLSAgICAgICAgICAgICAgICAgICAgVW5p
Y29kZVdhcm5pbmcpCi0KLQotQHB5dGVzdC5ob29raW1wbChob29rd3JhcHBlcj1UcnVlKQotZGVm
IHB5dGVzdF9ydW50ZXN0X3Byb3RvY29sKGl0ZW0pOgotICAgIHdpdGggY2F0Y2hfd2FybmluZ3Nf
Zm9yX2l0ZW0oaXRlbSk6Ci0gICAgICAgIHlpZWxkCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9i
ZW5jaC93M2MtaW1wb3J0LmxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2JlbmNoL3czYy1pbXBvcnQubG9nCmRl
bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyNzcyN2E3Nzc0M2FiMjIzY2VkZjFkYWFjYTli
NTU5Y2I2OGJkOGExLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0t
LSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhp
cmRfcGFydHkvcHl0ZXN0L2JlbmNoL3czYy1pbXBvcnQubG9nCisrKyAvZGV2L251bGwKQEAgLTEs
MjEgKzAsMCBAQAotVGhlIHRlc3RzIGluIHRoaXMgZGlyZWN0b3J5IHdlcmUgaW1wb3J0ZWQgZnJv
bSB0aGUgVzNDIHJlcG9zaXRvcnkuCi1EbyBOT1QgbW9kaWZ5IHRoZXNlIHRlc3RzIGRpcmVjdGx5
IGluIFdlYktpdC4KLUluc3RlYWQsIGNyZWF0ZSBhIHB1bGwgcmVxdWVzdCBvbiB0aGUgV1BUIGdp
dGh1YjoKLQlodHRwczovL2dpdGh1Yi5jb20vd2ViLXBsYXRmb3JtLXRlc3RzL3dwdAotCi1UaGVu
IHJ1biB0aGUgVG9vbHMvU2NyaXB0cy9pbXBvcnQtdzNjLXRlc3RzIGluIFdlYktpdCB0byByZWlt
cG9ydAotCi1EbyBOT1QgbW9kaWZ5IG9yIHJlbW92ZSB0aGlzIGZpbGUuCi0KLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLQotUHJvcGVydGllcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotUHJvcGVy
dHkgdmFsdWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0KLUxpc3Qgb2YgZmlsZXM6Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvYmVuY2gvYmVuY2gucHkKLS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5
dGVzdC9iZW5jaC9iZW5jaF9hcmdjb21wbGV0ZS5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2JlbmNoL2VtcHR5
LnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90
aGlyZF9wYXJ0eS9weXRlc3QvYmVuY2gvbWFueXBhcmFtLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvYmVuY2gv
c2tpcC5weQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvY2hhbmdlbG9nL3czYy1pbXBvcnQubG9n
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS9weXRlc3QvY2hhbmdlbG9nL3czYy1pbXBvcnQubG9nCmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAxMzk5MTZhYTVlZTA5NzVlNDlkNmU5YTZhOGRjMDY5Y2Q2ZDlhODE0Li4w
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0
L2NoYW5nZWxvZy93M2MtaW1wb3J0LmxvZworKysgL2Rldi9udWxsCkBAIC0xLDE4ICswLDAgQEAK
LVRoZSB0ZXN0cyBpbiB0aGlzIGRpcmVjdG9yeSB3ZXJlIGltcG9ydGVkIGZyb20gdGhlIFczQyBy
ZXBvc2l0b3J5LgotRG8gTk9UIG1vZGlmeSB0aGVzZSB0ZXN0cyBkaXJlY3RseSBpbiBXZWJLaXQu
Ci1JbnN0ZWFkLCBjcmVhdGUgYSBwdWxsIHJlcXVlc3Qgb24gdGhlIFdQVCBnaXRodWI6Ci0JaHR0
cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQKLQotVGhlbiBydW4gdGhlIFRv
b2xzL1NjcmlwdHMvaW1wb3J0LXczYy10ZXN0cyBpbiBXZWJLaXQgdG8gcmVpbXBvcnQKLQotRG8g
Tk9UIG1vZGlmeSBvciByZW1vdmUgdGhpcyBmaWxlLgotCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLVByb3Bl
cnRpZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLVByb3BlcnR5IHZhbHVlcyBy
ZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1MaXN0IG9m
IGZpbGVzOgotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvdGhpcmRfcGFydHkvcHl0ZXN0L2NoYW5nZWxvZy9SRUFETUUucnN0Ci0vTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3Qv
Y2hhbmdlbG9nL190ZW1wbGF0ZS5yc3QKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9f
dGVtcGxhdGVzL3czYy1pbXBvcnQubG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL190ZW1wbGF0ZXMv
dzNjLWltcG9ydC5sb2cKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGE0MzY2MDRiNGE1
MzRjZGU5YThhZWFjYzk4YzliODk3MGVlOGZhOGEuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL190ZW1wbGF0ZXMvdzNjLWlt
cG9ydC5sb2cKKysrIC9kZXYvbnVsbApAQCAtMSwyMCArMCwwIEBACi1UaGUgdGVzdHMgaW4gdGhp
cyBkaXJlY3Rvcnkgd2VyZSBpbXBvcnRlZCBmcm9tIHRoZSBXM0MgcmVwb3NpdG9yeS4KLURvIE5P
VCBtb2RpZnkgdGhlc2UgdGVzdHMgZGlyZWN0bHkgaW4gV2ViS2l0LgotSW5zdGVhZCwgY3JlYXRl
IGEgcHVsbCByZXF1ZXN0IG9uIHRoZSBXUFQgZ2l0aHViOgotCWh0dHBzOi8vZ2l0aHViLmNvbS93
ZWItcGxhdGZvcm0tdGVzdHMvd3B0Ci0KLVRoZW4gcnVuIHRoZSBUb29scy9TY3JpcHRzL2ltcG9y
dC13M2MtdGVzdHMgaW4gV2ViS2l0IHRvIHJlaW1wb3J0Ci0KLURvIE5PVCBtb2RpZnkgb3IgcmVt
b3ZlIHRoaXMgZmlsZS4KLQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1Qcm9wZXJ0aWVzIHJlcXVpcmluZyB2
ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi1Qcm9wZXJ0eSB2YWx1ZXMgcmVxdWlyaW5nIHZlbmRvciBw
cmVmaXhlczoKLU5vbmUKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotTGlzdCBvZiBmaWxlczoKLS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5
dGVzdC9kb2MvZW4vX3RlbXBsYXRlcy9nbG9iYWx0b2MuaHRtbAotL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9l
bi9fdGVtcGxhdGVzL2xheW91dC5odG1sCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL190ZW1wbGF0ZXMv
bGlua3MuaHRtbAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9fdGVtcGxhdGVzL3NpZGViYXJpbnRyby5o
dG1sCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vX3RoZW1lcy8uZ2l0aWdub3JlIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9w
YXJ0eS9weXRlc3QvZG9jL2VuL190aGVtZXMvLmdpdGlnbm9yZQpuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42NmI2ZTRj
MmYzYjU1YjI1YWZkOTcxNmY5ZDNjNWFmYjQ3YjE1ZDRlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0
eS9weXRlc3QvZG9jL2VuL190aGVtZXMvLmdpdGlnbm9yZQpAQCAtMCwwICsxLDMgQEAKKyoucHlj
CisqLnB5bworLkRTX1N0b3JlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vX3RoZW1l
cy9mbGFzay9zdGF0aWMvdzNjLWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vX3RoZW1l
cy9mbGFzay9zdGF0aWMvdzNjLWltcG9ydC5sb2cKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDI4NDc0Zjk3MGVhZTU4OTcxNWI4NGNmNzI1MGJmYTQzMDE5YWEyOTMuLjAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL190
aGVtZXMvZmxhc2svc3RhdGljL3czYy1pbXBvcnQubG9nCisrKyAvZGV2L251bGwKQEAgLTEsMTcg
KzAsMCBAQAotVGhlIHRlc3RzIGluIHRoaXMgZGlyZWN0b3J5IHdlcmUgaW1wb3J0ZWQgZnJvbSB0
aGUgVzNDIHJlcG9zaXRvcnkuCi1EbyBOT1QgbW9kaWZ5IHRoZXNlIHRlc3RzIGRpcmVjdGx5IGlu
IFdlYktpdC4KLUluc3RlYWQsIGNyZWF0ZSBhIHB1bGwgcmVxdWVzdCBvbiB0aGUgV1BUIGdpdGh1
YjoKLQlodHRwczovL2dpdGh1Yi5jb20vd2ViLXBsYXRmb3JtLXRlc3RzL3dwdAotCi1UaGVuIHJ1
biB0aGUgVG9vbHMvU2NyaXB0cy9pbXBvcnQtdzNjLXRlc3RzIGluIFdlYktpdCB0byByZWltcG9y
dAotCi1EbyBOT1QgbW9kaWZ5IG9yIHJlbW92ZSB0aGlzIGZpbGUuCi0KLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LQotUHJvcGVydGllcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotUHJvcGVydHkg
dmFsdWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K
LUxpc3Qgb2YgZmlsZXM6Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL190aGVtZXMvZmxhc2svc3RhdGlj
L2ZsYXNreS5jc3NfdApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL190aGVtZXMvZmxh
c2svdzNjLWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vX3RoZW1lcy9mbGFzay93M2Mt
aW1wb3J0LmxvZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDM2MjZhYmEzNmY2YTk1
ZjEwNzk2OTE3MWE1MzU5OTJhY2E5MmU4Ni4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vX3RoZW1lcy9mbGFzay93M2MtaW1w
b3J0LmxvZworKysgL2Rldi9udWxsCkBAIC0xLDE5ICswLDAgQEAKLVRoZSB0ZXN0cyBpbiB0aGlz
IGRpcmVjdG9yeSB3ZXJlIGltcG9ydGVkIGZyb20gdGhlIFczQyByZXBvc2l0b3J5LgotRG8gTk9U
IG1vZGlmeSB0aGVzZSB0ZXN0cyBkaXJlY3RseSBpbiBXZWJLaXQuCi1JbnN0ZWFkLCBjcmVhdGUg
YSBwdWxsIHJlcXVlc3Qgb24gdGhlIFdQVCBnaXRodWI6Ci0JaHR0cHM6Ly9naXRodWIuY29tL3dl
Yi1wbGF0Zm9ybS10ZXN0cy93cHQKLQotVGhlbiBydW4gdGhlIFRvb2xzL1NjcmlwdHMvaW1wb3J0
LXczYy10ZXN0cyBpbiBXZWJLaXQgdG8gcmVpbXBvcnQKLQotRG8gTk9UIG1vZGlmeSBvciByZW1v
dmUgdGhpcyBmaWxlLgotCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLVByb3BlcnRpZXMgcmVxdWlyaW5nIHZl
bmRvciBwcmVmaXhlczoKLU5vbmUKLVByb3BlcnR5IHZhbHVlcyByZXF1aXJpbmcgdmVuZG9yIHBy
ZWZpeGVzOgotTm9uZQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1MaXN0IG9mIGZpbGVzOgotL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0
ZXN0L2RvYy9lbi9fdGhlbWVzL2ZsYXNrL2xheW91dC5odG1sCi0vTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2Vu
L190aGVtZXMvZmxhc2svcmVsYXRpb25zLmh0bWwKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vX3RoZW1l
cy9mbGFzay90aGVtZS5jb25mCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vX3RoZW1l
cy93M2MtaW1wb3J0LmxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9fdGhlbWVzL3czYy1pbXBvcnQu
bG9nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzNjU2NTQ4ZDBkYTc5NTI0ZThhYWI3
ZjNiOTczNTE4NmY4YjkwYjIwLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9fdGhlbWVzL3czYy1pbXBvcnQubG9nCisrKyAv
ZGV2L251bGwKQEAgLTEsMTkgKzAsMCBAQAotVGhlIHRlc3RzIGluIHRoaXMgZGlyZWN0b3J5IHdl
cmUgaW1wb3J0ZWQgZnJvbSB0aGUgVzNDIHJlcG9zaXRvcnkuCi1EbyBOT1QgbW9kaWZ5IHRoZXNl
IHRlc3RzIGRpcmVjdGx5IGluIFdlYktpdC4KLUluc3RlYWQsIGNyZWF0ZSBhIHB1bGwgcmVxdWVz
dCBvbiB0aGUgV1BUIGdpdGh1YjoKLQlodHRwczovL2dpdGh1Yi5jb20vd2ViLXBsYXRmb3JtLXRl
c3RzL3dwdAotCi1UaGVuIHJ1biB0aGUgVG9vbHMvU2NyaXB0cy9pbXBvcnQtdzNjLXRlc3RzIGlu
IFdlYktpdCB0byByZWltcG9ydAotCi1EbyBOT1QgbW9kaWZ5IG9yIHJlbW92ZSB0aGlzIGZpbGUu
Ci0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLQotUHJvcGVydGllcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVz
OgotTm9uZQotUHJvcGVydHkgdmFsdWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25l
Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0KLUxpc3Qgb2YgZmlsZXM6Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL190
aGVtZXMvTElDRU5TRQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9fdGhlbWVzL1JFQURNRQotL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkv
cHl0ZXN0L2RvYy9lbi9fdGhlbWVzL2ZsYXNrX3RoZW1lX3N1cHBvcnQucHkKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRf
cGFydHkvcHl0ZXN0L2RvYy9lbi9hbm5vdW5jZS93M2MtaW1wb3J0LmxvZyBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0
L2RvYy9lbi9hbm5vdW5jZS93M2MtaW1wb3J0LmxvZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggNDY0YzhiY2Q0ZGM2NzM0YjE1N2VmMWQzODMwZjA5MzlhZWU1YzVkNC4uMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4v
YW5ub3VuY2UvdzNjLWltcG9ydC5sb2cKKysrIC9kZXYvbnVsbApAQCAtMSw4NyArMCwwIEBACi1U
aGUgdGVzdHMgaW4gdGhpcyBkaXJlY3Rvcnkgd2VyZSBpbXBvcnRlZCBmcm9tIHRoZSBXM0MgcmVw
b3NpdG9yeS4KLURvIE5PVCBtb2RpZnkgdGhlc2UgdGVzdHMgZGlyZWN0bHkgaW4gV2ViS2l0Lgot
SW5zdGVhZCwgY3JlYXRlIGEgcHVsbCByZXF1ZXN0IG9uIHRoZSBXUFQgZ2l0aHViOgotCWh0dHBz
Oi8vZ2l0aHViLmNvbS93ZWItcGxhdGZvcm0tdGVzdHMvd3B0Ci0KLVRoZW4gcnVuIHRoZSBUb29s
cy9TY3JpcHRzL2ltcG9ydC13M2MtdGVzdHMgaW4gV2ViS2l0IHRvIHJlaW1wb3J0Ci0KLURvIE5P
VCBtb2RpZnkgb3IgcmVtb3ZlIHRoaXMgZmlsZS4KLQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1Qcm9wZXJ0
aWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi1Qcm9wZXJ0eSB2YWx1ZXMgcmVx
dWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotTGlzdCBvZiBm
aWxlczoKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vYW5ub3VuY2UvaW5kZXgucnN0Ci0vTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRl
c3QvZG9jL2VuL2Fubm91bmNlL3JlbGVhc2UtMi4wLjAucnN0Ci0vTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2Vu
L2Fubm91bmNlL3JlbGVhc2UtMi4wLjEucnN0Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2Fubm91bmNl
L3JlbGVhc2UtMi4wLjIucnN0Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2Fubm91bmNlL3JlbGVhc2Ut
Mi4wLjMucnN0Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2Fubm91bmNlL3JlbGVhc2UtMi4xLjAucnN0
Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2Fubm91bmNlL3JlbGVhc2UtMi4xLjEucnN0Ci0vTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9w
eXRlc3QvZG9jL2VuL2Fubm91bmNlL3JlbGVhc2UtMi4xLjIucnN0Ci0vTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9j
L2VuL2Fubm91bmNlL3JlbGVhc2UtMi4xLjMucnN0Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2Fubm91
bmNlL3JlbGVhc2UtMi4yLjAucnN0Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2Fubm91bmNlL3JlbGVh
c2UtMi4yLjEucnN0Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2Fubm91bmNlL3JlbGVhc2UtMi4yLjIu
cnN0Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90
aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2Fubm91bmNlL3JlbGVhc2UtMi4yLjQucnN0Ci0vTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0
eS9weXRlc3QvZG9jL2VuL2Fubm91bmNlL3JlbGVhc2UtMi4zLjAucnN0Ci0vTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3Qv
ZG9jL2VuL2Fubm91bmNlL3JlbGVhc2UtMi4zLjEucnN0Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2Fu
bm91bmNlL3JlbGVhc2UtMi4zLjIucnN0Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2Fubm91bmNlL3Jl
bGVhc2UtMi4zLjMucnN0Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2Fubm91bmNlL3JlbGVhc2UtMi4z
LjQucnN0Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2Fubm91bmNlL3JlbGVhc2UtMi4zLjUucnN0Ci0v
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9w
YXJ0eS9weXRlc3QvZG9jL2VuL2Fubm91bmNlL3JlbGVhc2UtMi40LjAucnN0Ci0vTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRl
c3QvZG9jL2VuL2Fubm91bmNlL3JlbGVhc2UtMi40LjEucnN0Ci0vTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2Vu
L2Fubm91bmNlL3JlbGVhc2UtMi40LjIucnN0Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2Fubm91bmNl
L3JlbGVhc2UtMi41LjAucnN0Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2Fubm91bmNlL3JlbGVhc2Ut
Mi41LjEucnN0Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2Fubm91bmNlL3JlbGVhc2UtMi41LjIucnN0
Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2Fubm91bmNlL3JlbGVhc2UtMi42LjAucnN0Ci0vTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9w
eXRlc3QvZG9jL2VuL2Fubm91bmNlL3JlbGVhc2UtMi42LjEucnN0Ci0vTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9j
L2VuL2Fubm91bmNlL3JlbGVhc2UtMi42LjIucnN0Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2Fubm91
bmNlL3JlbGVhc2UtMi42LjMucnN0Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2Fubm91bmNlL3JlbGVh
c2UtMi43LjAucnN0Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2Fubm91bmNlL3JlbGVhc2UtMi43LjEu
cnN0Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90
aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2Fubm91bmNlL3JlbGVhc2UtMi43LjIucnN0Ci0vTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0
eS9weXRlc3QvZG9jL2VuL2Fubm91bmNlL3JlbGVhc2UtMi44LjIucnN0Ci0vTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3Qv
ZG9jL2VuL2Fubm91bmNlL3JlbGVhc2UtMi44LjMucnN0Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2Fu
bm91bmNlL3JlbGVhc2UtMi44LjQucnN0Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2Fubm91bmNlL3Jl
bGVhc2UtMi44LjUucnN0Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2Fubm91bmNlL3JlbGVhc2UtMi44
LjYucnN0Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2Fubm91bmNlL3JlbGVhc2UtMi44LjcucnN0Ci0v
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9w
YXJ0eS9weXRlc3QvZG9jL2VuL2Fubm91bmNlL3JlbGVhc2UtMi45LjAucnN0Ci0vTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRl
c3QvZG9jL2VuL2Fubm91bmNlL3JlbGVhc2UtMi45LjEucnN0Ci0vTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2Vu
L2Fubm91bmNlL3JlbGVhc2UtMi45LjIucnN0Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2Fubm91bmNl
L3JlbGVhc2UtMy4wLjAucnN0Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2Fubm91bmNlL3JlbGVhc2Ut
My4wLjEucnN0Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2Fubm91bmNlL3JlbGVhc2UtMy4wLjIucnN0
Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2Fubm91bmNlL3JlbGVhc2UtMy4wLjMucnN0Ci0vTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9w
eXRlc3QvZG9jL2VuL2Fubm91bmNlL3JlbGVhc2UtMy4wLjQucnN0Ci0vTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9j
L2VuL2Fubm91bmNlL3JlbGVhc2UtMy4wLjUucnN0Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2Fubm91
bmNlL3JlbGVhc2UtMy4wLjYucnN0Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2Fubm91bmNlL3JlbGVh
c2UtMy4wLjcucnN0Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2Fubm91bmNlL3JlbGVhc2UtMy4xLjAu
cnN0Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90
aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2Fubm91bmNlL3JlbGVhc2UtMy4xLjEucnN0Ci0vTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0
eS9weXRlc3QvZG9jL2VuL2Fubm91bmNlL3JlbGVhc2UtMy4xLjIucnN0Ci0vTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3Qv
ZG9jL2VuL2Fubm91bmNlL3JlbGVhc2UtMy4xLjMucnN0Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2Fu
bm91bmNlL3JlbGVhc2UtMy4yLjAucnN0Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2Fubm91bmNlL3Jl
bGVhc2UtMy4yLjEucnN0Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2Fubm91bmNlL3JlbGVhc2UtMy4y
LjIucnN0Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2Fubm91bmNlL3JlbGVhc2UtMy4yLjMucnN0Ci0v
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9w
YXJ0eS9weXRlc3QvZG9jL2VuL2Fubm91bmNlL3JlbGVhc2UtMy4yLjQucnN0Ci0vTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRl
c3QvZG9jL2VuL2Fubm91bmNlL3JlbGVhc2UtMy4yLjUucnN0Ci0vTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2Vu
L2Fubm91bmNlL3JlbGVhc2UtMy4zLjAucnN0Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2Fubm91bmNl
L3JlbGVhc2UtMy4zLjEucnN0Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2Fubm91bmNlL3JlbGVhc2Ut
My4zLjIucnN0Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2Fubm91bmNlL3JlbGVhc2UtMy40LjAucnN0
Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2Fubm91bmNlL3JlbGVhc2UtMy40LjEucnN0Ci0vTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9w
eXRlc3QvZG9jL2VuL2Fubm91bmNlL3JlbGVhc2UtMy40LjIucnN0Ci0vTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9j
L2VuL2Fubm91bmNlL3JlbGVhc2UtMy41LjAucnN0Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2Fubm91
bmNlL3JlbGVhc2UtMy41LjEucnN0Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2Fubm91bmNlL3JlbGVh
c2UtMy42LjAucnN0Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2Fubm91bmNlL3JlbGVhc2UtMy42LjEu
cnN0Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90
aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2Fubm91bmNlL3JlbGVhc2UtMy42LjIucnN0Ci0vTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0
eS9weXRlc3QvZG9jL2VuL2Fubm91bmNlL3NwcmludDIwMTYucnN0CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5
L3B5dGVzdC9kb2MvZW4vZXhhbXBsZS9hc3NlcnRpb24vZ2xvYmFsX3Rlc3Rtb2R1bGVfY29uZmln
L3czYy1pbXBvcnQubG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2V4YW1wbGUvYXNzZXJ0aW9uL2ds
b2JhbF90ZXN0bW9kdWxlX2NvbmZpZy93M2MtaW1wb3J0LmxvZwpkZWxldGVkIGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDQyYjJiNmJjODY3YTUzNWE5YjUyYWNkODJhMzE1Y2I1MmEzOWFlYi4uMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9k
b2MvZW4vZXhhbXBsZS9hc3NlcnRpb24vZ2xvYmFsX3Rlc3Rtb2R1bGVfY29uZmlnL3czYy1pbXBv
cnQubG9nCisrKyAvZGV2L251bGwKQEAgLTEsMTggKzAsMCBAQAotVGhlIHRlc3RzIGluIHRoaXMg
ZGlyZWN0b3J5IHdlcmUgaW1wb3J0ZWQgZnJvbSB0aGUgVzNDIHJlcG9zaXRvcnkuCi1EbyBOT1Qg
bW9kaWZ5IHRoZXNlIHRlc3RzIGRpcmVjdGx5IGluIFdlYktpdC4KLUluc3RlYWQsIGNyZWF0ZSBh
IHB1bGwgcmVxdWVzdCBvbiB0aGUgV1BUIGdpdGh1YjoKLQlodHRwczovL2dpdGh1Yi5jb20vd2Vi
LXBsYXRmb3JtLXRlc3RzL3dwdAotCi1UaGVuIHJ1biB0aGUgVG9vbHMvU2NyaXB0cy9pbXBvcnQt
dzNjLXRlc3RzIGluIFdlYktpdCB0byByZWltcG9ydAotCi1EbyBOT1QgbW9kaWZ5IG9yIHJlbW92
ZSB0aGlzIGZpbGUuCi0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotUHJvcGVydGllcyByZXF1aXJpbmcgdmVu
ZG9yIHByZWZpeGVzOgotTm9uZQotUHJvcGVydHkgdmFsdWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJl
Zml4ZXM6Ci1Ob25lCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLUxpc3Qgb2YgZmlsZXM6Ci0vTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRl
c3QvZG9jL2VuL2V4YW1wbGUvYXNzZXJ0aW9uL2dsb2JhbF90ZXN0bW9kdWxlX2NvbmZpZy9jb25m
dGVzdC5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9leGFtcGxlL2Fzc2VydGlvbi9nbG9iYWxfdGVz
dG1vZHVsZV9jb25maWcvdGVzdF9oZWxsb193b3JsZC5weQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRl
c3QvZG9jL2VuL2V4YW1wbGUvYXNzZXJ0aW9uL3czYy1pbXBvcnQubG9nIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3Qv
ZG9jL2VuL2V4YW1wbGUvYXNzZXJ0aW9uL3czYy1pbXBvcnQubG9nCmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCA4YzIyYWI5Mzc4ZmJkNGI1NDBlOTgzN2VjYzA0N2M2NmY4MDA3MDdkLi4w
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0
L2RvYy9lbi9leGFtcGxlL2Fzc2VydGlvbi93M2MtaW1wb3J0LmxvZworKysgL2Rldi9udWxsCkBA
IC0xLDE5ICswLDAgQEAKLVRoZSB0ZXN0cyBpbiB0aGlzIGRpcmVjdG9yeSB3ZXJlIGltcG9ydGVk
IGZyb20gdGhlIFczQyByZXBvc2l0b3J5LgotRG8gTk9UIG1vZGlmeSB0aGVzZSB0ZXN0cyBkaXJl
Y3RseSBpbiBXZWJLaXQuCi1JbnN0ZWFkLCBjcmVhdGUgYSBwdWxsIHJlcXVlc3Qgb24gdGhlIFdQ
VCBnaXRodWI6Ci0JaHR0cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQKLQot
VGhlbiBydW4gdGhlIFRvb2xzL1NjcmlwdHMvaW1wb3J0LXczYy10ZXN0cyBpbiBXZWJLaXQgdG8g
cmVpbXBvcnQKLQotRG8gTk9UIG1vZGlmeSBvciByZW1vdmUgdGhpcyBmaWxlLgotCi0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0KLVByb3BlcnRpZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLVBy
b3BlcnR5IHZhbHVlcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tCi1MaXN0IG9mIGZpbGVzOgotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9leGFtcGxlL2Fzc2Vy
dGlvbi9mYWlsdXJlX2RlbW8ucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vZXhhbXBsZS9hc3NlcnRp
b24vdGVzdF9mYWlsdXJlcy5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9leGFtcGxlL2Fzc2VydGlv
bi90ZXN0X3NldHVwX2Zsb3dfZXhhbXBsZS5weQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9j
L2VuL2V4YW1wbGUvY29zdGx5c2V0dXAvc3ViMS9fX2luaXRfXy5weSBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2Rv
Yy9lbi9leGFtcGxlL2Nvc3RseXNldHVwL3N1YjEvX19pbml0X18ucHkKZGVsZXRlZCBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDc5MmQ2MDA1NDg5ZWJlZTYyY2RlMDIwNjZmMTljNTUyMWU2MjA0NTEu
LjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRl
c3QvZG9jL2VuL2V4YW1wbGUvY29zdGx5c2V0dXAvc3ViMS9fX2luaXRfXy5weQorKysgL2Rldi9u
dWxsCkBAIC0xICswLDAgQEAKLSMKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9leGFt
cGxlL2Nvc3RseXNldHVwL3N1YjEvdGVzdF9xdWljay5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9l
eGFtcGxlL2Nvc3RseXNldHVwL3N1YjEvdGVzdF9xdWljay5weQpkZWxldGVkIGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggZDk3NjU3ODY3ZTAyMWRiZThjNjQyNjdlNWViNDc3ODQyZDY3M2MzYS4uMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9k
b2MvZW4vZXhhbXBsZS9jb3N0bHlzZXR1cC9zdWIxL3Rlc3RfcXVpY2sucHkKKysrIC9kZXYvbnVs
bApAQCAtMSwzICswLDAgQEAKLQotZGVmIHRlc3RfcXVpY2soc2V0dXApOgotICAgIHBhc3MKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9leGFtcGxlL2Nvc3RseXNldHVwL3N1YjEvdzNj
LWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vZXhhbXBsZS9jb3N0bHlzZXR1cC9zdWIx
L3czYy1pbXBvcnQubG9nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxMzdmNjZhMThi
YTcyMDkwNDgyODQ5ZWZmNDhjZDcyYzM0Yzc3ODNlLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9leGFtcGxlL2Nvc3RseXNl
dHVwL3N1YjEvdzNjLWltcG9ydC5sb2cKKysrIC9kZXYvbnVsbApAQCAtMSwxOCArMCwwIEBACi1U
aGUgdGVzdHMgaW4gdGhpcyBkaXJlY3Rvcnkgd2VyZSBpbXBvcnRlZCBmcm9tIHRoZSBXM0MgcmVw
b3NpdG9yeS4KLURvIE5PVCBtb2RpZnkgdGhlc2UgdGVzdHMgZGlyZWN0bHkgaW4gV2ViS2l0Lgot
SW5zdGVhZCwgY3JlYXRlIGEgcHVsbCByZXF1ZXN0IG9uIHRoZSBXUFQgZ2l0aHViOgotCWh0dHBz
Oi8vZ2l0aHViLmNvbS93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzCi0KLVRoZW4gcnVuIHRoZSBUb29s
cy9TY3JpcHRzL2ltcG9ydC13M2MtdGVzdHMgaW4gV2ViS2l0IHRvIHJlaW1wb3J0Ci0KLURvIE5P
VCBtb2RpZnkgb3IgcmVtb3ZlIHRoaXMgZmlsZS4KLQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1Qcm9wZXJ0
aWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi1Qcm9wZXJ0eSB2YWx1ZXMgcmVx
dWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotTGlzdCBvZiBm
aWxlczoKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vZXhhbXBsZS9jb3N0bHlzZXR1cC9zdWIxL19faW5p
dF9fLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2V4YW1wbGUvY29zdGx5c2V0dXAvc3ViMS90ZXN0
X3F1aWNrLnB5CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vZXhhbXBsZS9jb3N0bHlz
ZXR1cC9zdWIyL19faW5pdF9fLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2V4YW1wbGUvY29zdGx5
c2V0dXAvc3ViMi9fX2luaXRfXy5weQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNzky
ZDYwMDU0ODllYmVlNjJjZGUwMjA2NmYxOWM1NTIxZTYyMDQ1MS4uMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vZXhhbXBsZS9j
b3N0bHlzZXR1cC9zdWIyL19faW5pdF9fLnB5CisrKyAvZGV2L251bGwKQEAgLTEgKzAsMCBAQAot
IwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2V4YW1wbGUvY29zdGx5c2V0dXAvc3Vi
Mi90ZXN0X3R3by5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9leGFtcGxlL2Nvc3RseXNldHVwL3N1
YjIvdGVzdF90d28ucHkKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDZlZDZlZTRkODk4
ZmY2ZWZhNzZlNmExZDQ5MGM0Y2QxYjBlOGMwNDIuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2V4YW1wbGUvY29zdGx5c2V0
dXAvc3ViMi90ZXN0X3R3by5weQorKysgL2Rldi9udWxsCkBAIC0xLDYgKzAsMCBAQAotZGVmIHRl
c3Rfc29tZXRoaW5nKHNldHVwKToKLSAgICBhc3NlcnQgc2V0dXAudGltZWNvc3RseSA9PSAxCi0K
LWRlZiB0ZXN0X3NvbWV0aGluZ19tb3JlKHNldHVwKToKLSAgICBhc3NlcnQgc2V0dXAudGltZWNv
c3RseSA9PSAxCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9leGFtcGxlL2Nvc3Rs
eXNldHVwL3N1YjIvdzNjLWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vZXhhbXBsZS9j
b3N0bHlzZXR1cC9zdWIyL3czYy1pbXBvcnQubG9nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCBiYTY0MjBlYzgzZDg3NzhiYjUwYmJlYTBhNzBmNTJlZmI5OWY3MjZiLi4wMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9l
eGFtcGxlL2Nvc3RseXNldHVwL3N1YjIvdzNjLWltcG9ydC5sb2cKKysrIC9kZXYvbnVsbApAQCAt
MSwxOCArMCwwIEBACi1UaGUgdGVzdHMgaW4gdGhpcyBkaXJlY3Rvcnkgd2VyZSBpbXBvcnRlZCBm
cm9tIHRoZSBXM0MgcmVwb3NpdG9yeS4KLURvIE5PVCBtb2RpZnkgdGhlc2UgdGVzdHMgZGlyZWN0
bHkgaW4gV2ViS2l0LgotSW5zdGVhZCwgY3JlYXRlIGEgcHVsbCByZXF1ZXN0IG9uIHRoZSBXUFQg
Z2l0aHViOgotCWh0dHBzOi8vZ2l0aHViLmNvbS93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzCi0KLVRo
ZW4gcnVuIHRoZSBUb29scy9TY3JpcHRzL2ltcG9ydC13M2MtdGVzdHMgaW4gV2ViS2l0IHRvIHJl
aW1wb3J0Ci0KLURvIE5PVCBtb2RpZnkgb3IgcmVtb3ZlIHRoaXMgZmlsZS4KLQotLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tCi1Qcm9wZXJ0aWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi1Qcm9w
ZXJ0eSB2YWx1ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLQotTGlzdCBvZiBmaWxlczoKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vZXhhbXBsZS9jb3N0bHlz
ZXR1cC9zdWIyL19faW5pdF9fLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2V4YW1wbGUvY29zdGx5
c2V0dXAvc3ViMi90ZXN0X3R3by5weQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2V4
YW1wbGUvY29zdGx5c2V0dXAvc3ViX2EvdzNjLWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2Mv
ZW4vZXhhbXBsZS9jb3N0bHlzZXR1cC9zdWJfYS93M2MtaW1wb3J0LmxvZwpkZWxldGVkIGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMmEwNTgxNWNkZDA3NDhmNGM5Y2M3ZjM1YTAyOTZjYTg5Zjc1NmNi
Zi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5
dGVzdC9kb2MvZW4vZXhhbXBsZS9jb3N0bHlzZXR1cC9zdWJfYS93M2MtaW1wb3J0LmxvZworKysg
L2Rldi9udWxsCkBAIC0xLDE4ICswLDAgQEAKLVRoZSB0ZXN0cyBpbiB0aGlzIGRpcmVjdG9yeSB3
ZXJlIGltcG9ydGVkIGZyb20gdGhlIFczQyByZXBvc2l0b3J5LgotRG8gTk9UIG1vZGlmeSB0aGVz
ZSB0ZXN0cyBkaXJlY3RseSBpbiBXZWJLaXQuCi1JbnN0ZWFkLCBjcmVhdGUgYSBwdWxsIHJlcXVl
c3Qgb24gdGhlIFdQVCBnaXRodWI6Ci0JaHR0cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9ybS10
ZXN0cy93cHQKLQotVGhlbiBydW4gdGhlIFRvb2xzL1NjcmlwdHMvaW1wb3J0LXczYy10ZXN0cyBp
biBXZWJLaXQgdG8gcmVpbXBvcnQKLQotRG8gTk9UIG1vZGlmeSBvciByZW1vdmUgdGhpcyBmaWxl
LgotCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0KLVByb3BlcnRpZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhl
czoKLU5vbmUKLVByb3BlcnR5IHZhbHVlcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9u
ZQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tCi1MaXN0IG9mIGZpbGVzOgotL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9l
eGFtcGxlL2Nvc3RseXNldHVwL3N1Yl9hL19faW5pdF9fLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2Vu
L2V4YW1wbGUvY29zdGx5c2V0dXAvc3ViX2EvdGVzdF9xdWljay5weQpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0
eS9weXRlc3QvZG9jL2VuL2V4YW1wbGUvY29zdGx5c2V0dXAvc3ViX2IvdzNjLWltcG9ydC5sb2cg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJk
X3BhcnR5L3B5dGVzdC9kb2MvZW4vZXhhbXBsZS9jb3N0bHlzZXR1cC9zdWJfYi93M2MtaW1wb3J0
LmxvZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYmRhMzk3MDY1NmZiMDc5NTJjZDc4
ZDM2YTJhMzliZjRjZjM3MWFlZi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vZXhhbXBsZS9jb3N0bHlzZXR1cC9zdWJfYi93
M2MtaW1wb3J0LmxvZworKysgL2Rldi9udWxsCkBAIC0xLDE4ICswLDAgQEAKLVRoZSB0ZXN0cyBp
biB0aGlzIGRpcmVjdG9yeSB3ZXJlIGltcG9ydGVkIGZyb20gdGhlIFczQyByZXBvc2l0b3J5Lgot
RG8gTk9UIG1vZGlmeSB0aGVzZSB0ZXN0cyBkaXJlY3RseSBpbiBXZWJLaXQuCi1JbnN0ZWFkLCBj
cmVhdGUgYSBwdWxsIHJlcXVlc3Qgb24gdGhlIFdQVCBnaXRodWI6Ci0JaHR0cHM6Ly9naXRodWIu
Y29tL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQKLQotVGhlbiBydW4gdGhlIFRvb2xzL1NjcmlwdHMv
aW1wb3J0LXczYy10ZXN0cyBpbiBXZWJLaXQgdG8gcmVpbXBvcnQKLQotRG8gTk9UIG1vZGlmeSBv
ciByZW1vdmUgdGhpcyBmaWxlLgotCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLVByb3BlcnRpZXMgcmVxdWly
aW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLVByb3BlcnR5IHZhbHVlcyByZXF1aXJpbmcgdmVu
ZG9yIHByZWZpeGVzOgotTm9uZQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1MaXN0IG9mIGZpbGVzOgotL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFy
dHkvcHl0ZXN0L2RvYy9lbi9leGFtcGxlL2Nvc3RseXNldHVwL3N1Yl9iL19faW5pdF9fLnB5Ci0v
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9w
YXJ0eS9weXRlc3QvZG9jL2VuL2V4YW1wbGUvY29zdGx5c2V0dXAvc3ViX2IvdGVzdF90d28ucHkK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9leGFtcGxlL2Nvc3RseXNldHVwL3czYy1p
bXBvcnQubG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2V4YW1wbGUvY29zdGx5c2V0dXAvdzNjLWlt
cG9ydC5sb2cKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDhjMzQ1ZjdjOGQ1MDBhNWUz
NzM3NzRhNDM2NzgwMTZjYTk5MzAxZTIuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2V4YW1wbGUvY29zdGx5c2V0dXAvdzNj
LWltcG9ydC5sb2cKKysrIC9kZXYvbnVsbApAQCAtMSwxNyArMCwwIEBACi1UaGUgdGVzdHMgaW4g
dGhpcyBkaXJlY3Rvcnkgd2VyZSBpbXBvcnRlZCBmcm9tIHRoZSBXM0MgcmVwb3NpdG9yeS4KLURv
IE5PVCBtb2RpZnkgdGhlc2UgdGVzdHMgZGlyZWN0bHkgaW4gV2ViS2l0LgotSW5zdGVhZCwgY3Jl
YXRlIGEgcHVsbCByZXF1ZXN0IG9uIHRoZSBXUFQgZ2l0aHViOgotCWh0dHBzOi8vZ2l0aHViLmNv
bS93ZWItcGxhdGZvcm0tdGVzdHMvd3B0Ci0KLVRoZW4gcnVuIHRoZSBUb29scy9TY3JpcHRzL2lt
cG9ydC13M2MtdGVzdHMgaW4gV2ViS2l0IHRvIHJlaW1wb3J0Ci0KLURvIE5PVCBtb2RpZnkgb3Ig
cmVtb3ZlIHRoaXMgZmlsZS4KLQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1Qcm9wZXJ0aWVzIHJlcXVpcmlu
ZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi1Qcm9wZXJ0eSB2YWx1ZXMgcmVxdWlyaW5nIHZlbmRv
ciBwcmVmaXhlczoKLU5vbmUKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotTGlzdCBvZiBmaWxlczoKLS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5
L3B5dGVzdC9kb2MvZW4vZXhhbXBsZS9jb3N0bHlzZXR1cC9jb25mdGVzdC5weQpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2V4YW1wbGUvbm9ucHl0aG9uL19faW5pdF9fLnB5IGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0
eS9weXRlc3QvZG9jL2VuL2V4YW1wbGUvbm9ucHl0aG9uL19faW5pdF9fLnB5CmluZGV4IGE2ODM0
YjgyODVhNTZiZWYwZTE1NDNmZDkwMWM3ZTZmMmY4YmMyMDIuLmU2OWRlMjliYjJkMWQ2NDM0Yjhi
MjlhZTc3NWFkOGMyZTQ4YzUzOTEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9leGFt
cGxlL25vbnB5dGhvbi9fX2luaXRfXy5weQorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vZXhhbXBs
ZS9ub25weXRob24vX19pbml0X18ucHkKQEAgLTEgKzAsMCBAQAotIyBUaGlzIGZpbGUgaXMgcmVx
dWlyZWQgZm9yIFB5dGhvbiB0byBzZWFyY2ggdGhpcyBkaXJlY3RvcnkgZm9yIG1vZHVsZXMuClwg
Tm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2Vu
L2V4YW1wbGUvbm9ucHl0aG9uL3czYy1pbXBvcnQubG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2V4
YW1wbGUvbm9ucHl0aG9uL3czYy1pbXBvcnQubG9nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCBiMTZmNDBkMGRmOWVlMDg3ZDM1MTUxNjE4ZDdmNmM0NTI3MTgyODE5Li4wMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9l
eGFtcGxlL25vbnB5dGhvbi93M2MtaW1wb3J0LmxvZworKysgL2Rldi9udWxsCkBAIC0xLDE5ICsw
LDAgQEAKLVRoZSB0ZXN0cyBpbiB0aGlzIGRpcmVjdG9yeSB3ZXJlIGltcG9ydGVkIGZyb20gdGhl
IFczQyByZXBvc2l0b3J5LgotRG8gTk9UIG1vZGlmeSB0aGVzZSB0ZXN0cyBkaXJlY3RseSBpbiBX
ZWJLaXQuCi1JbnN0ZWFkLCBjcmVhdGUgYSBwdWxsIHJlcXVlc3Qgb24gdGhlIFdQVCBnaXRodWI6
Ci0JaHR0cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQKLQotVGhlbiBydW4g
dGhlIFRvb2xzL1NjcmlwdHMvaW1wb3J0LXczYy10ZXN0cyBpbiBXZWJLaXQgdG8gcmVpbXBvcnQK
LQotRG8gTk9UIG1vZGlmeSBvciByZW1vdmUgdGhpcyBmaWxlLgotCi0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K
LVByb3BlcnRpZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLVByb3BlcnR5IHZh
bHVlcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1M
aXN0IG9mIGZpbGVzOgotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9leGFtcGxlL25vbnB5dGhvbi9fX2lu
aXRfXy5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9leGFtcGxlL25vbnB5dGhvbi9jb25mdGVzdC5w
eQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhp
cmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9leGFtcGxlL25vbnB5dGhvbi90ZXN0X3NpbXBsZS55bWwK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9leGFtcGxlL3B5MnB5My93M2MtaW1wb3J0
LmxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
dGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9leGFtcGxlL3B5MnB5My93M2MtaW1wb3J0LmxvZwpk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggM2Y4YThjOTRmNGU1YWY2YjU5N2Q4ZWVjODU1
MTMwM2ZiZjUxYzZiMi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAot
LS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3Ro
aXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vZXhhbXBsZS9weTJweTMvdzNjLWltcG9ydC5sb2cKKysr
IC9kZXYvbnVsbApAQCAtMSwxOSArMCwwIEBACi1UaGUgdGVzdHMgaW4gdGhpcyBkaXJlY3Rvcnkg
d2VyZSBpbXBvcnRlZCBmcm9tIHRoZSBXM0MgcmVwb3NpdG9yeS4KLURvIE5PVCBtb2RpZnkgdGhl
c2UgdGVzdHMgZGlyZWN0bHkgaW4gV2ViS2l0LgotSW5zdGVhZCwgY3JlYXRlIGEgcHVsbCByZXF1
ZXN0IG9uIHRoZSBXUFQgZ2l0aHViOgotCWh0dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxhdGZvcm0t
dGVzdHMvd3B0Ci0KLVRoZW4gcnVuIHRoZSBUb29scy9TY3JpcHRzL2ltcG9ydC13M2MtdGVzdHMg
aW4gV2ViS2l0IHRvIHJlaW1wb3J0Ci0KLURvIE5PVCBtb2RpZnkgb3IgcmVtb3ZlIHRoaXMgZmls
ZS4KLQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1Qcm9wZXJ0aWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4
ZXM6Ci1Ob25lCi1Qcm9wZXJ0eSB2YWx1ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5v
bmUKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLQotTGlzdCBvZiBmaWxlczoKLS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4v
ZXhhbXBsZS9weTJweTMvY29uZnRlc3QucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vZXhhbXBsZS9w
eTJweTMvdGVzdF9weTIucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vZXhhbXBsZS9weTJweTMvdGVz
dF9weTMucHkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9leGFtcGxlL3czYy1pbXBv
cnQubG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2V4YW1wbGUvdzNjLWltcG9ydC5sb2cKZGVsZXRl
ZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDVlYmRhYWQxZDI1MDZkNWY3MjA2ZmFlM2Y1MDNjNzRi
MjA4NmY4YTUuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9w
YXJ0eS9weXRlc3QvZG9jL2VuL2V4YW1wbGUvdzNjLWltcG9ydC5sb2cKKysrIC9kZXYvbnVsbApA
QCAtMSwyOSArMCwwIEBACi1UaGUgdGVzdHMgaW4gdGhpcyBkaXJlY3Rvcnkgd2VyZSBpbXBvcnRl
ZCBmcm9tIHRoZSBXM0MgcmVwb3NpdG9yeS4KLURvIE5PVCBtb2RpZnkgdGhlc2UgdGVzdHMgZGly
ZWN0bHkgaW4gV2ViS2l0LgotSW5zdGVhZCwgY3JlYXRlIGEgcHVsbCByZXF1ZXN0IG9uIHRoZSBX
UFQgZ2l0aHViOgotCWh0dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxhdGZvcm0tdGVzdHMvd3B0Ci0K
LVRoZW4gcnVuIHRoZSBUb29scy9TY3JpcHRzL2ltcG9ydC13M2MtdGVzdHMgaW4gV2ViS2l0IHRv
IHJlaW1wb3J0Ci0KLURvIE5PVCBtb2RpZnkgb3IgcmVtb3ZlIHRoaXMgZmlsZS4KLQotLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tCi1Qcm9wZXJ0aWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi1Q
cm9wZXJ0eSB2YWx1ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLQotTGlzdCBvZiBmaWxlczoKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vZXhhbXBsZS9hdHRp
Yy5yc3QKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vZXhhbXBsZS9jb25mdGVzdC5weQotL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0
ZXN0L2RvYy9lbi9leGFtcGxlL2luZGV4LnJzdAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9leGFtcGxl
L21hcmtlcnMucnN0Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2V4YW1wbGUvbXVsdGlweXRob24ucHkK
LS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJk
X3BhcnR5L3B5dGVzdC9kb2MvZW4vZXhhbXBsZS9ub25weXRob24ucnN0Ci0vTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3Qv
ZG9jL2VuL2V4YW1wbGUvcGFyYW1ldHJpemUucnN0Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2V4YW1w
bGUvcHl0aG9uY29sbGVjdGlvbi5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9leGFtcGxlL3B5dGhv
bmNvbGxlY3Rpb24ucnN0Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2V4YW1wbGUvcmVwb3J0aW5nZGVt
by5yc3QKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vZXhhbXBsZS9zaW1wbGUucnN0Ci0vTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRl
c3QvZG9jL2VuL2V4YW1wbGUvc3BlY2lhbC5yc3QKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vZXhhbXBs
ZS94ZmFpbF9kZW1vLnB5CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vaW1nL3czYy1p
bXBvcnQubG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2ltZy93M2MtaW1wb3J0LmxvZwpkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMzNmOTMwMmI3N2JlZDY4NzcwOTkyMjk3MGI1MWM3ZjEx
NzE0ODE4Ny4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3Bh
cnR5L3B5dGVzdC9kb2MvZW4vaW1nL3czYy1pbXBvcnQubG9nCisrKyAvZGV2L251bGwKQEAgLTEs
MjUgKzAsMCBAQAotVGhlIHRlc3RzIGluIHRoaXMgZGlyZWN0b3J5IHdlcmUgaW1wb3J0ZWQgZnJv
bSB0aGUgVzNDIHJlcG9zaXRvcnkuCi1EbyBOT1QgbW9kaWZ5IHRoZXNlIHRlc3RzIGRpcmVjdGx5
IGluIFdlYktpdC4KLUluc3RlYWQsIGNyZWF0ZSBhIHB1bGwgcmVxdWVzdCBvbiB0aGUgV1BUIGdp
dGh1YjoKLQlodHRwczovL2dpdGh1Yi5jb20vd2ViLXBsYXRmb3JtLXRlc3RzL3dwdAotCi1UaGVu
IHJ1biB0aGUgVG9vbHMvU2NyaXB0cy9pbXBvcnQtdzNjLXRlc3RzIGluIFdlYktpdCB0byByZWlt
cG9ydAotCi1EbyBOT1QgbW9kaWZ5IG9yIHJlbW92ZSB0aGlzIGZpbGUuCi0KLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLQotUHJvcGVydGllcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotUHJvcGVy
dHkgdmFsdWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0KLUxpc3Qgb2YgZmlsZXM6Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2ltZy9jcmFtZXIyLnBuZwot
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRf
cGFydHkvcHl0ZXN0L2RvYy9lbi9pbWcvZnJlaWJ1cmcyLmpwZwotL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9l
bi9pbWcvZ2F5bm9yMy5wbmcKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vaW1nL2tlbGVzaGV2LnBuZwot
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRf
cGFydHkvcHl0ZXN0L2RvYy9lbi9pbWcvcHVsbHJlcXVlc3QucG5nCi0vTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9j
L2VuL2ltZy9weWxpYi5wbmcKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vaW1nL3B5dGVzdDEucG5nCi0v
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9w
YXJ0eS9weXRlc3QvZG9jL2VuL2ltZy9weXRlc3QxZmF2aS5pY28KLS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2Mv
ZW4vaW1nL3RoZXVuaS5wbmcKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9wcm9wb3Nh
bHMvdzNjLWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vcHJvcG9zYWxzL3czYy1pbXBv
cnQubG9nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0MzczNWVmZmU5OTRkOGUxNzg5
Yzc3YjIxZjQxNzkyYjE4M2M5YTA5Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9wcm9wb3NhbHMvdzNjLWltcG9ydC5sb2cK
KysrIC9kZXYvbnVsbApAQCAtMSwxNyArMCwwIEBACi1UaGUgdGVzdHMgaW4gdGhpcyBkaXJlY3Rv
cnkgd2VyZSBpbXBvcnRlZCBmcm9tIHRoZSBXM0MgcmVwb3NpdG9yeS4KLURvIE5PVCBtb2RpZnkg
dGhlc2UgdGVzdHMgZGlyZWN0bHkgaW4gV2ViS2l0LgotSW5zdGVhZCwgY3JlYXRlIGEgcHVsbCBy
ZXF1ZXN0IG9uIHRoZSBXUFQgZ2l0aHViOgotCWh0dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxhdGZv
cm0tdGVzdHMvd3B0Ci0KLVRoZW4gcnVuIHRoZSBUb29scy9TY3JpcHRzL2ltcG9ydC13M2MtdGVz
dHMgaW4gV2ViS2l0IHRvIHJlaW1wb3J0Ci0KLURvIE5PVCBtb2RpZnkgb3IgcmVtb3ZlIHRoaXMg
ZmlsZS4KLQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1Qcm9wZXJ0aWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJl
Zml4ZXM6Ci1Ob25lCi1Qcm9wZXJ0eSB2YWx1ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoK
LU5vbmUKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotTGlzdCBvZiBmaWxlczoKLS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2Mv
ZW4vcHJvcG9zYWxzL3BhcmFtZXRyaXplX3dpdGhfZml4dHVyZXMucnN0CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3Bh
cnR5L3B5dGVzdC9kb2MvZW4vdGVzdC9hdHRpYy5yc3QgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vdGVz
dC9hdHRpYy5yc3QKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDA2OTQ0NjYxY2I1Y2U3
MTUwYWQ5ZGZmZTdlNTM5ZGRmMThkOGEwODAuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL3Rlc3QvYXR0aWMucnN0CisrKyAv
ZGV2L251bGwKQEAgLTEsMTE3ICswLDAgQEAKLT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci1BVFRJQyBkb2N1bWVudGF0aW9uCi09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotCi1YWFggUkVWSUVXIGFuZCByZW1vdmUg
dGhlIGJlbG93ICBYWFgKLQotQ3VzdG9taXppbmcgdGhlIHRlc3RpbmcgcHJvY2VzcwotPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotCi13cml0aW5nIGNvbmZ0ZXN0LnB5IGZpbGVzCi0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotCi1Zb3UgbWF5IHB1dCBjb25mdGVz
dC5weSBmaWxlcyBjb250YWluaW5nIHByb2plY3Qtc3BlY2lmaWMKLWNvbmZpZ3VyYXRpb24gaW4g
eW91ciBwcm9qZWN0J3Mgcm9vdCBkaXJlY3RvcnksIGl0J3MgdXN1YWxseQotYmVzdCB0byBwdXQg
aXQganVzdCBpbnRvIHRoZSBzYW1lIGRpcmVjdG9yeSBsZXZlbCBhcyB5b3VyCi10b3Btb3N0IGBg
X19pbml0X18ucHlgYC4gIEluIGZhY3QsIGBgcHl0ZXN0YGAgcGVyZm9ybXMKLWFuICJ1cHdhcmRz
IiBzZWFyY2ggc3RhcnRpbmcgZnJvbSB0aGUgZGlyZWN0b3J5IHRoYXQgeW91IHNwZWNpZnkKLXRv
IGJlIHRlc3RlZCBhbmQgd2lsbCBsb29rdXAgY29uZmlndXJhdGlvbiB2YWx1ZXMgcmlnaHQtdG8t
bGVmdC4KLVlvdSBtYXkgaGF2ZSBvcHRpb25zIHRoYXQgcmVzaWRlIGUuZy4gaW4geW91ciBob21l
IGRpcmVjdG9yeQotYnV0IG5vdGUgdGhhdCBwcm9qZWN0IHNwZWNpZmljIHNldHRpbmdzIHdpbGwg
YmUgY29uc2lkZXJlZAotZmlyc3QuICBUaGVyZSBpcyBhIGZsYWcgdGhhdCBoZWxwcyB5b3UgZGVi
dWdnaW5nIHlvdXIKLWNvbmZ0ZXN0LnB5IGNvbmZpZ3VyYXRpb25zOjoKLQotICAgIHB5dGVzdCAt
LXRyYWNlLWNvbmZpZwotCi0KLWN1c3RvbWl6aW5nIHRoZSBjb2xsZWN0aW5nIGFuZCBydW5uaW5n
IHByb2Nlc3MKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
Ci0KLVRvIGludHJvZHVjZSBkaWZmZXJlbnQgdGVzdCBpdGVtcyB5b3UgY2FuIGNyZWF0ZQotb25l
IG9yIG1vcmUgYGBjb25mdGVzdC5weWBgIGZpbGVzIGluIHlvdXIgcHJvamVjdC4KLVdoZW4gdGhl
IGNvbGxlY3Rpb24gcHJvY2VzcyB0cmF2ZXJzZXMgZGlyZWN0b3JpZXMKLWFuZCBtb2R1bGVzIHRo
ZSBkZWZhdWx0IGNvbGxlY3RvcnMgd2lsbCBwcm9kdWNlCi1jdXN0b20gQ29sbGVjdG9ycyBhbmQg
SXRlbXMgaWYgdGhleSBhcmUgZm91bmQKLWluIGEgbG9jYWwgYGBjb25mdGVzdC5weWBgIGZpbGUu
Ci0KLQotQ3VzdG9taXppbmcgdGhlIGNvbGxlY3Rpb24gcHJvY2VzcyBpbiBhIG1vZHVsZQotLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotCi1JZiB5b3UgaGF2
ZSBhIG1vZHVsZSB3aGVyZSB5b3Ugd2FudCB0byB0YWtlIHJlc3BvbnNpYmlsaXR5IGZvcgotY29s
bGVjdGluZyB5b3VyIG93biB0ZXN0IEl0ZW1zIGFuZCBwb3NzaWJseSBldmVuIGZvciBleGVjdXRp
bmcKLWEgdGVzdCB0aGVuIHlvdSBjYW4gcHJvdmlkZSBgZ2VuZXJhdGl2ZSB0ZXN0c2BfIHRoYXQg
eWllbGQKLWNhbGxhYmxlcyBhbmQgcG9zc2libHkgYXJndW1lbnRzIGFzIGEgdHVwbGUuICAgVGhp
cyBpcyBlc3BlY2lhbGx5Ci11c2VmdWwgZm9yIGNhbGxpbmcgYXBwbGljYXRpb24gdGVzdCBtYWNo
aW5lcnkgd2l0aCBkaWZmZXJlbnQKLXBhcmFtZXRlciBzZXRzIGJ1dCBjb3VudGluZyBlYWNoIG9m
IHRoZSBjYWxscyBhcyBhIHNlcGFyYXRlCi10ZXN0cy4KLQotLi4gX2BnZW5lcmF0aXZlIHRlc3Rz
YDogZmVhdHVyZXMuaHRtbCNnZW5lcmF0aXZlLXRlc3RzCi0KLVRoZSBvdGhlciBleHRlbnNpb24g
cG9zc2liaWxpdHkgaXMgYWJvdXQKLXNwZWNpZnlpbmcgYSBjdXN0b20gdGVzdCBgYEl0ZW1gYCBj
bGFzcyB3aGljaAotaXMgcmVzcG9uc2libGUgZm9yIHNldHRpbmcgdXAgYW5kIGV4ZWN1dGluZyBh
biB1bmRlcmx5aW5nCi10ZXN0LiAgT3IgeW91IGNhbiBleHRlbmQgdGhlIGNvbGxlY3Rpb24gcHJv
Y2VzcyBmb3IgYSB3aG9sZQotZGlyZWN0b3J5IHRyZWUgYnkgcHV0dGluZyBJdGVtcyBpbiBhIGBg
Y29uZnRlc3QucHlgYCBjb25maWd1cmF0aW9uIGZpbGUuCi1UaGUgY29sbGVjdGlvbiBwcm9jZXNz
IGR5bmFtaWNhbGx5IGNvbnN1bHRzIHRoZSAqY2hhaW4gb2YgY29uZnRlc3QucHkqCi1tb2R1bGVz
IHRvIGRldGVybWluZSBjb2xsZWN0b3JzIGFuZCBpdGVtcyBhdCBgYERpcmVjdG9yeWBgLCBgYE1v
ZHVsZWBgLAotYGBDbGFzc2BgLCBgYEZ1bmN0aW9uYGAgb3IgYGBHZW5lcmF0b3JgYCBsZXZlbCBy
ZXNwZWN0aXZlbHkuCi0KLUN1c3RvbWl6aW5nIGV4ZWN1dGlvbiBvZiBJdGVtcyBhbmQgRnVuY3Rp
b25zCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
Ci0KLS0gYGBweXRlc3QuRnVuY3Rpb25gYCB0ZXN0IGl0ZW1zIGNvbnRyb2wgZXhlY3V0aW9uCi0g
IG9mIGEgdGVzdCBmdW5jdGlvbiB0aHJvdWdoIGl0cyBgYGZ1bmN0aW9uLnJ1bnRlc3QoKWBgIG1l
dGhvZC4KLSAgVGhpcyBtZXRob2QgaXMgcmVzcG9uc2libGUgZm9yIHBlcmZvcm1pbmcgc2V0dXAg
YW5kIHRlYXJkb3duCi0gICgiVGVzdCBGaXh0dXJlcyIpIGZvciBhIHRlc3QgRnVuY3Rpb24uCi0K
LS0gYGBGdW5jdGlvbi5leGVjdXRlKHRhcmdldCwgKmFyZ3MpYGAgbWV0aG9kcyBhcmUgaW52b2tl
ZCBieQotICB0aGUgZGVmYXVsdCBgYEZ1bmN0aW9uLnJ1bigpYGAgdG8gYWN0dWFsbHkgZXhlY3V0
ZSBhIHB5dGhvbgotICBmdW5jdGlvbiB3aXRoIHRoZSBnaXZlbiAodXN1YWxseSBlbXB0eSBzZXQg
b2YpIGFyZ3VtZW50cy4KLQotLi4gX2BweS1kZXYgbWFpbGluZyBsaXN0YDogaHR0cDovL2NvZGVz
cGVhay5uZXQvbWFpbG1hbi9saXN0aW5mby9weS1kZXYKLQotCi0uLiBfYHRlc3QgZ2VuZXJhdG9y
c2A6IGZ1bmNhcmdzLmh0bWwjdGVzdC1nZW5lcmF0b3JzCi0KLS4uIF9gZ2VuZXJhdGl2ZSB0ZXN0
c2A6Ci0KLWdlbmVyYXRpdmUgdGVzdHM6IHlpZWxkaW5nIHBhcmFtZXRyaXplZCB0ZXN0cwotPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotCi1EZXBy
ZWNhdGVkIHNpbmNlIDEuMCBpbiBmYXZvdXIgb2YgYHRlc3QgZ2VuZXJhdG9yc2BfLgotCi0qR2Vu
ZXJhdGl2ZSB0ZXN0cyogYXJlIHRlc3QgbWV0aG9kcyB0aGF0IGFyZSAqZ2VuZXJhdG9yIGZ1bmN0
aW9ucyogd2hpY2gKLWBgeWllbGRgYCBjYWxsYWJsZXMgYW5kIHRoZWlyIGFyZ3VtZW50cy4gIFRo
aXMgaXMgdXNlZnVsIGZvciBydW5uaW5nIGEKLXRlc3QgZnVuY3Rpb24gbXVsdGlwbGUgdGltZXMg
YWdhaW5zdCBkaWZmZXJlbnQgcGFyYW1ldGVycy4gIEV4YW1wbGU6OgotCi0gICAgZGVmIHRlc3Rf
Z2VuZXJhdGl2ZSgpOgotICAgICAgICBmb3IgeCBpbiAoNDIsMTcsNDkpOgotICAgICAgICAgICAg
eWllbGQgY2hlY2ssIHgKLQotICAgIGRlZiBjaGVjayhhcmcpOgotICAgICAgICBhc3NlcnQgYXJn
ICUgNyA9PSAwICAgIyBzZWNvbmQgZ2VuZXJhdGVkIHRlc3RzIGZhaWxzIQotCi1Ob3RlIHRoYXQg
YGB0ZXN0X2dlbmVyYXRpdmUoKWBgIHdpbGwgY2F1c2UgdGhyZWUgdGVzdHMKLXRvIGdldCBydW4s
IG5vdGFibHkgYGBjaGVjayg0MilgYCwgYGBjaGVjaygxNylgYCBhbmQgYGBjaGVjayg0OSlgYAot
b2Ygd2hpY2ggdGhlIG1pZGRsZSBvbmUgd2lsbCBvYnZpb3VzbHkgZmFpbC4KLQotVG8gbWFrZSBp
dCBlYXNpZXIgdG8gZGlzdGluZ3Vpc2ggdGhlIGdlbmVyYXRlZCB0ZXN0cyBpdCBpcyBwb3NzaWJs
ZSB0byBzcGVjaWZ5IGFuIGV4cGxpY2l0IG5hbWUgZm9yIHRoZW0sIGxpa2UgZm9yIGV4YW1wbGU6
OgotCi0gICAgZGVmIHRlc3RfZ2VuZXJhdGl2ZSgpOgotICAgICAgICBmb3IgeCBpbiAoNDIsMTcs
NDkpOgotICAgICAgICAgICAgeWllbGQgImNhc2UgJWQiICUgeCwgY2hlY2ssIHgKLQotCi1kaXNh
YmxpbmcgYSB0ZXN0IGNsYXNzCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0KLUlmIHlvdSB3YW50
IHRvIGRpc2FibGUgYSBjb21wbGV0ZSB0ZXN0IGNsYXNzIHlvdQotY2FuIHNldCB0aGUgY2xhc3Mt
bGV2ZWwgYXR0cmlidXRlIGBgZGlzYWJsZWRgYC4KLUZvciBleGFtcGxlLCBpbiBvcmRlciB0byBh
dm9pZCBydW5uaW5nIHNvbWUgdGVzdHMgb24gV2luMzI6OgotCi0gICAgY2xhc3MgVGVzdFBvc2l4
T25seShvYmplY3QpOgotICAgICAgICBkaXNhYmxlZCA9IHN5cy5wbGF0Zm9ybSA9PSAnd2luMzIn
Ci0KLSAgICAgICAgZGVmIHRlc3RfeHh4KHNlbGYpOgotICAgICAgICAgICAgLi4uCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3Ro
aXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vdGVzdC9jb25maWcuaHRtbCBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2Rv
Yy9lbi90ZXN0L2NvbmZpZy5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjYmE1
YTQ2Zjk4MmVhYTJhNzc4Y2Y4NjViMDUwM2QzMGM4YWFiOGRjLi4wMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi90ZXN0L2NvbmZp
Zy5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMTggKzAsMCBAQAotPGh0bWw+Ci0gICAgPGhlYWQ+
Ci0gICAgICAgIDxtZXRhIGh0dHAtZXF1aXY9InJlZnJlc2giIGNvbnRlbnQ9IiAxIDsgVVJMPWN1
c3RvbWl6ZS5odG1sIiAvPgotICAgIDwvaGVhZD4KLQotICAgIDxib2R5PgotPHNjcmlwdCB0eXBl
PSJ0ZXh0L2phdmFzY3JpcHQiPgotdmFyIGdhSnNIb3N0ID0gKCgiaHR0cHM6IiA9PSBkb2N1bWVu
dC5sb2NhdGlvbi5wcm90b2NvbCkgPyAiaHR0cHM6Ly9zc2wuIiA6ICJodHRwOi8vd3d3LiIpOwot
ZG9jdW1lbnQud3JpdGUodW5lc2NhcGUoIiUzQ3NjcmlwdCBzcmM9JyIgKyBnYUpzSG9zdCArICJn
b29nbGUtYW5hbHl0aWNzLmNvbS9nYS5qcycgdHlwZT0ndGV4dC9qYXZhc2NyaXB0JyUzRSUzQy9z
Y3JpcHQlM0UiKSk7Ci08L3NjcmlwdD4KLTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4K
LXRyeSB7Ci12YXIgcGFnZVRyYWNrZXIgPSBfZ2F0Ll9nZXRUcmFja2VyKCJVQS03NTk3Mjc0LTMi
KTsKLXBhZ2VUcmFja2VyLl90cmFja1BhZ2V2aWV3KCk7Ci19IGNhdGNoKGVycikge308L3Njcmlw
dD4KLTwvYm9keT4KLTwvaHRtbD4KLSAgICAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9l
bi90ZXN0L2Rpc3QuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi90ZXN0L2Rpc3QuaHRtbApkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZTMyODU1MGE4NWNiMTA1MjFhYzIxNmIyNTkxZjI2
ODllNDY0ZTkxOC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0g
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJk
X3BhcnR5L3B5dGVzdC9kb2MvZW4vdGVzdC9kaXN0Lmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwx
OCArMCwwIEBACi08aHRtbD4KLSAgICA8aGVhZD4KLSAgICAgICAgPG1ldGEgaHR0cC1lcXVpdj0i
cmVmcmVzaCIgY29udGVudD0iIDEgOyBVUkw9cGx1Z2luL3hkaXN0Lmh0bWwiIC8+Ci0gICAgPC9o
ZWFkPgotCi0gICAgPGJvZHk+Ci08c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+Ci12YXIg
Z2FKc0hvc3QgPSAoKCJodHRwczoiID09IGRvY3VtZW50LmxvY2F0aW9uLnByb3RvY29sKSA/ICJo
dHRwczovL3NzbC4iIDogImh0dHA6Ly93d3cuIik7Ci1kb2N1bWVudC53cml0ZSh1bmVzY2FwZSgi
JTNDc2NyaXB0IHNyYz0nIiArIGdhSnNIb3N0ICsgImdvb2dsZS1hbmFseXRpY3MuY29tL2dhLmpz
JyB0eXBlPSd0ZXh0L2phdmFzY3JpcHQnJTNFJTNDL3NjcmlwdCUzRSIpKTsKLTwvc2NyaXB0Pgot
PHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgotdHJ5IHsKLXZhciBwYWdlVHJhY2tlciA9
IF9nYXQuX2dldFRyYWNrZXIoIlVBLTc1OTcyNzQtMyIpOwotcGFnZVRyYWNrZXIuX3RyYWNrUGFn
ZXZpZXcoKTsKLX0gY2F0Y2goZXJyKSB7fTwvc2NyaXB0PgotPC9ib2R5PgotPC9odG1sPgotICAg
IApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL3Rlc3QvZXh0ZW5kLmh0bWwgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5
L3B5dGVzdC9kb2MvZW4vdGVzdC9leHRlbmQuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggY2JhNWE0NmY5ODJlYWEyYTc3OGNmODY1YjA1MDNkMzBjOGFhYjhkYy4uMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4v
dGVzdC9leHRlbmQuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDE4ICswLDAgQEAKLTxodG1sPgot
ICAgIDxoZWFkPgotICAgICAgICA8bWV0YSBodHRwLWVxdWl2PSJyZWZyZXNoIiBjb250ZW50PSIg
MSA7IFVSTD1jdXN0b21pemUuaHRtbCIgLz4KLSAgICA8L2hlYWQ+Ci0KLSAgICA8Ym9keT4KLTxz
Y3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KLXZhciBnYUpzSG9zdCA9ICgoImh0dHBzOiIg
PT0gZG9jdW1lbnQubG9jYXRpb24ucHJvdG9jb2wpID8gImh0dHBzOi8vc3NsLiIgOiAiaHR0cDov
L3d3dy4iKTsKLWRvY3VtZW50LndyaXRlKHVuZXNjYXBlKCIlM0NzY3JpcHQgc3JjPSciICsgZ2FK
c0hvc3QgKyAiZ29vZ2xlLWFuYWx5dGljcy5jb20vZ2EuanMnIHR5cGU9J3RleHQvamF2YXNjcmlw
dCclM0UlM0Mvc2NyaXB0JTNFIikpOwotPC9zY3JpcHQ+Ci08c2NyaXB0IHR5cGU9InRleHQvamF2
YXNjcmlwdCI+Ci10cnkgewotdmFyIHBhZ2VUcmFja2VyID0gX2dhdC5fZ2V0VHJhY2tlcigiVUEt
NzU5NzI3NC0zIik7Ci1wYWdlVHJhY2tlci5fdHJhY2tQYWdldmlldygpOwotfSBjYXRjaChlcnIp
IHt9PC9zY3JpcHQ+Ci08L2JvZHk+Ci08L2h0bWw+Ci0gICAgCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5
dGVzdC9kb2MvZW4vdGVzdC9pbmRleC5yc3QgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vdGVzdC9pbmRl
eC5yc3QKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDFhM2I1YTU0ZGEwOGM2NzJjM2Fm
OTcyZTQ3YmY3ZDQ2ZTg4NjFiNWQuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL3Rlc3QvaW5kZXgucnN0CisrKyAvZGV2L251
bGwKQEAgLTEsMzUgKzAsMCBAQAotPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci1weXRlc3QgZG9jdW1lbnRhdGlvbiBpbmRleAotPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0KLQotZmVhdHVyZXNfOiBvdmVydmlldyBhbmQgZGlzY3Vzc2lvbiBv
ZiBmZWF0dXJlcy4KLQotcXVpY2tzdGFydF86IGdldHRpbmcgc3RhcnRlZCB3aXRoIHdyaXRpbmcg
YSBzaW1wbGUgdGVzdC4KLQotYHRhbGtzLCB0dXRvcmlhbHMsIGV4YW1wbGVzYF86IHR1dG9yaWFs
IGV4YW1wbGVzLCBzbGlkZXMKLQotZnVuY2FyZ3NfOiBwb3dlcmZ1bCBwYXJhbWV0cml6ZWQgdGVz
dCBmdW5jdGlvbiBzZXR1cAotCi1gcGx1Z2luc2BfOiBsaXN0IG9mIGF2YWlsYWJsZSBwbHVnaW5z
IHdpdGggdXNhZ2UgZXhhbXBsZXMgYW5kIGZlYXR1cmUgZGV0YWlscy4KLQotY3VzdG9taXplXzog
Y29uZmlndXJhdGlvbiwgY3VzdG9taXphdGlvbiwgZXh0ZW5zaW9ucwotCi1jaGFuZ2Vsb2dfOiBo
aXN0b3J5IG9mIGNoYW5nZXMgY292ZXJpbmcgbGFzdCByZWxlYXNlcwotCi0qKkNvbnRpbnVvdXMg
SW50ZWdyYXRpb24gb2YgcHl0ZXN0J3Mgb3duIHRlc3RzIGFuZCBwbHVnaW5zIHdpdGggSHVkc29u
Kio6Ci0KLSAgICBgaHR0cDovL2h1ZHNvbi50ZXN0cnVuLm9yZy92aWV3L3B5dGVzdGBfCi0KLS4u
IF9gaHR0cDovL2h1ZHNvbi50ZXN0cnVuLm9yZy92aWV3L3B5dGVzdGA6IGh0dHA6Ly9odWRzb24u
dGVzdHJ1bi5vcmcvdmlldy9weXRlc3QvCi0KLQotLi4gX2NoYW5nZWxvZzogLi4vY2hhbmdlbG9n
Lmh0bWwKLS4uIF9gcGx1Z2luc2A6IHBsdWdpbi9pbmRleC5odG1sCi0uLiBfYHRhbGtzLCB0dXRv
cmlhbHMsIGV4YW1wbGVzYDogdGFsa3MuaHRtbAotLi4gX3F1aWNrc3RhcnQ6IHF1aWNrc3RhcnQu
aHRtbAotLi4gX2ZlYXR1cmVzOiBmZWF0dXJlcy5odG1sCi0uLiBfZnVuY2FyZ3M6IGZ1bmNhcmdz
Lmh0bWwKLS4uIF9jdXN0b21pemU6IGN1c3RvbWl6ZS5odG1sCi0KLQpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0
eS9weXRlc3QvZG9jL2VuL3Rlc3QvbWlzc2lvbi5yc3QgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vdGVz
dC9taXNzaW9uLnJzdApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNTFjMjUyZGMwZDg2
YTRjNDE3NTNkNjU2MTk4MzIxYWE4ZDllMzI0ZC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vdGVzdC9taXNzaW9uLnJzdAor
KysgL2Rldi9udWxsCkBAIC0xLDEzICswLDAgQEAKLQotTWlzc2lvbgotPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0KLWBgcHl0ZXN0YGAgc3RyaXZlcyB0byBtYWtlIHRlc3Rp
bmcgYSBmdW4gYW5kIG5vLWJvaWxlcnBsYXRlIGVmZm9ydC4KLQotVGhlIHRvb2wgaXMgZGlzdHJp
YnV0ZWQgYXMgYSBgcHl0ZXN0YCBwYWNrYWdlLiAgSXRzIHByb2plY3QgaW5kZXBlbmRlbnQKLWBg
cHl0ZXN0YGAgY29tbWFuZCBsaW5lIHRvb2wgaGVscHMgeW91IHRvOgotCi0qIHJhcGlkbHkgY29s
bGVjdCBhbmQgcnVuIHRlc3RzCi0qIHJ1biB1bml0LSBvciBkb2N0ZXN0cywgZnVuY3Rpb25hbCBv
ciBpbnRlZ3JhdGlvbiB0ZXN0cwotKiBkaXN0cmlidXRlIHRlc3RzIHRvIG11bHRpcGxlIGVudmly
b25tZW50cwotKiB1c2UgbG9jYWwgb3IgZ2xvYmFsIHBsdWdpbnMgZm9yIGN1c3RvbSB0ZXN0IHR5
cGVzIGFuZCBzZXR1cApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL3Rlc3QvcGx1Z2lu
L2Nvdi5yc3QgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vdGVzdC9wbHVnaW4vY292LnJzdApkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNTQxYzdlZjk0NzkzNGVhNTZhYWY1MDIyOGQzMTI5NzU3
NGI1YTU3ZS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3Bh
cnR5L3B5dGVzdC9kb2MvZW4vdGVzdC9wbHVnaW4vY292LnJzdAorKysgL2Rldi9udWxsCkBAIC0x
LDIzMCArMCwwIEBACi0KLXByb2R1Y2UgY29kZSBjb3ZlcmFnZSByZXBvcnRzIHVzaW5nIHRoZSAn
Y292ZXJhZ2UnIHBhY2thZ2UsIGluY2x1ZGluZyBzdXBwb3J0IGZvciBkaXN0cmlidXRlZCB0ZXN0
aW5nLgotPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0KLQot
Li4gY29udGVudHM6OgotICA6bG9jYWw6Ci0KLVRoaXMgcGx1Z2luIHByb2R1Y2VzIGNvdmVyYWdl
IHJlcG9ydHMuICBJdCBzdXBwb3J0cyBjZW50cmFsaXNlZCB0ZXN0aW5nIGFuZCBkaXN0cmlidXRl
ZCB0ZXN0aW5nIGluCi1ib3RoIGxvYWQgYW5kIGVhY2ggbW9kZXMuICBJdCBhbHNvIHN1cHBvcnRz
IGNvdmVyYWdlIG9mIHN1YnByb2Nlc3Nlcy4KLQotQWxsIGZlYXR1cmVzIG9mZmVyZWQgYnkgdGhl
IGNvdmVyYWdlIHBhY2thZ2Ugc2hvdWxkIGJlIGF2YWlsYWJsZSwgZWl0aGVyIHRocm91Z2ggcHl0
ZXN0LWNvdiBvcgotdGhyb3VnaCBjb3ZlcmFnZSdzIGNvbmZpZyBmaWxlLgotCi0KLUluc3RhbGxh
dGlvbgotLS0tLS0tLS0tLS0tCi0KLVRoZSBgcHl0ZXN0LWNvdmBfIHBhY2thZ2UgbWF5IGJlIGlu
c3RhbGxlZCB3aXRoIHBpcCBvciBlYXN5X2luc3RhbGw6OgotCi0gICAgcGlwIGluc3RhbGwgcHl0
ZXN0LWNvdgotICAgIGVhc3lfaW5zdGFsbCBweXRlc3QtY292Ci0KLS4uIF9gcHl0ZXN0LWNvdmA6
IGh0dHA6Ly9weXBpLnB5dGhvbi5vcmcvcHlwaS9weXRlc3QtY292LwotCi0KLVVuaW5zdGFsbGF0
aW9uCi0tLS0tLS0tLS0tLS0tLQotCi1Vbmluc3RhbGxpbmcgcGFja2FnZXMgaXMgc3VwcG9ydGVk
IGJ5IHBpcDo6Ci0KLSAgICBwaXAgdW5pbnN0YWxsIHB5dGVzdC1jb3YKLQotSG93ZXZlciBlYXN5
X2luc3RhbGwgZG9lcyBub3QgcHJvdmlkZSBhbiB1bmluc3RhbGwgZmFjaWxpdHkuCi0KLS4uIElN
UE9SVEFOVDo6Ci0KLSAgICBFbnN1cmUgdGhhdCB5b3UgbWFudWFsbHkgZGVsZXRlIHRoZSBpbml0
X2Nvdm1haW4ucHRoIGZpbGUgaW4geW91cgotICAgIHNpdGUtcGFja2FnZXMgZGlyZWN0b3J5Lgot
Ci0gICAgVGhpcyBmaWxlIHN0YXJ0cyBjb3ZlcmFnZSBjb2xsZWN0aW9uIG9mIHN1YnByb2Nlc3Nl
cyBpZiBhcHByb3ByaWF0ZSBkdXJpbmcKLSAgICBzaXRlIGluaXRpYWxpemF0aW9uIGF0IHB5dGhv
biBzdGFydHVwLgotCi0KLVVzYWdlCi0tLS0tLQotCi1DZW50cmFsaXNlZCBUZXN0aW5nCi1+fn5+
fn5+fn5+fn5+fn5+fn5+Ci0KLUNlbnRyYWxpc2VkIHRlc3Rpbmcgd2lsbCByZXBvcnQgb24gdGhl
IGNvbWJpbmVkIGNvdmVyYWdlIG9mIHRoZSBtYWluIHByb2Nlc3MgYW5kIGFsbCBvZiBpdCdzCi1z
dWJwcm9jZXNzZXMuCi0KLVJ1bm5pbmcgY2VudHJhbGlzZWQgdGVzdGluZzo6Ci0KLSAgICBweXRl
c3QgLS1jb3YgbXlwcm9qIHRlc3RzLwotCi1TaG93cyBhIHRlcm1pbmFsIHJlcG9ydDo6Ci0KLSAg
ICAtLS0tLS0tLS0tLS0tLS0tLS0tLSBjb3ZlcmFnZTogcGxhdGZvcm0gbGludXgyLCBweXRob24g
Mi42LjQtZmluYWwtMCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSAgICBOYW1lICAgICAgICAgICAg
ICAgICBTdG10cyAgIE1pc3MgIENvdmVyCi0gICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLQotICAgIG15cHJvai9fX2luaXRfXyAgICAgICAgICAyICAgICAgMCAgIDEw
MCUKLSAgICBteXByb2ovbXlwcm9qICAgICAgICAgIDI1NyAgICAgMTMgICAgOTQlCi0gICAgbXlw
cm9qL2ZlYXR1cmU0Mjg2ICAgICAgOTQgICAgICA3ICAgIDkyJQotICAgIC0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSAgICBUT1RBTCAgICAgICAgICAgICAgICAgIDM1
MyAgICAgMjAgICAgOTQlCi0KLQotRGlzdHJpYnV0ZWQgVGVzdGluZzogTG9hZAotfn5+fn5+fn5+
fn5+fn5+fn5+fn5+fn5+fgotCi1EaXN0cmlidXRlZCB0ZXN0aW5nIHdpdGggZGlzdCBtb2RlIHNl
dCB0byBsb2FkIHdpbGwgcmVwb3J0IG9uIHRoZSBjb21iaW5lZCBjb3ZlcmFnZSBvZiBhbGwgc2xh
dmVzLgotVGhlIHNsYXZlcyBtYXkgYmUgc3ByZWFkIG91dCBvdmVyIGFueSBudW1iZXIgb2YgaG9z
dHMgYW5kIGVhY2ggc2xhdmUgbWF5IGJlIGxvY2F0ZWQgYW55d2hlcmUgb24gdGhlCi1maWxlIHN5
c3RlbS4gIEVhY2ggc2xhdmUgd2lsbCBoYXZlIGl0J3Mgc3VicHJvY2Vzc2VzIG1lYXN1cmVkLgot
Ci1SdW5uaW5nIGRpc3RyaWJ1dGVkIHRlc3Rpbmcgd2l0aCBkaXN0IG1vZGUgc2V0IHRvIGxvYWQ6
OgotCi0gICAgcHl0ZXN0IC0tY292IG15cHJvaiAtbiAyIHRlc3RzLwotCi1TaG93cyBhIHRlcm1p
bmFsIHJlcG9ydDo6Ci0KLSAgICAtLS0tLS0tLS0tLS0tLS0tLS0tLSBjb3ZlcmFnZTogcGxhdGZv
cm0gbGludXgyLCBweXRob24gMi42LjQtZmluYWwtMCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSAg
ICBOYW1lICAgICAgICAgICAgICAgICBTdG10cyAgIE1pc3MgIENvdmVyCi0gICAgLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotICAgIG15cHJvai9fX2luaXRfXyAgICAg
ICAgICAyICAgICAgMCAgIDEwMCUKLSAgICBteXByb2ovbXlwcm9qICAgICAgICAgIDI1NyAgICAg
MTMgICAgOTQlCi0gICAgbXlwcm9qL2ZlYXR1cmU0Mjg2ICAgICAgOTQgICAgICA3ICAgIDkyJQot
ICAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSAgICBUT1RBTCAg
ICAgICAgICAgICAgICAgIDM1MyAgICAgMjAgICAgOTQlCi0KLQotQWdhaW4gYnV0IHNwcmVhZCBv
dmVyIGRpZmZlcmVudCBob3N0cyBhbmQgZGlmZmVyZW50IGRpcmVjdG9yaWVzOjoKLQotICAgIHB5
dGVzdCAtLWNvdiBteXByb2ogLS1kaXN0IGxvYWQKLSAgICAgICAgICAgIC0tdHggc3NoPW1lbWVk
b3VnaEBob3N0MS8vY2hkaXI9dGVzdGVudjEKLSAgICAgICAgICAgIC0tdHggc3NoPW1lbWVkb3Vn
aEBob3N0Mi8vY2hkaXI9L3RtcC90ZXN0ZW52Mi8vcHl0aG9uPS90bXAvZW52MS9iaW4vcHl0aG9u
Ci0gICAgICAgICAgICAtLXJzeW5jZGlyIG15cHJvaiAtLXJzeW5jZGlyIHRlc3RzIC0tcnN5bmMg
ZXhhbXBsZXMKLSAgICAgICAgICAgIHRlc3RzLwotCi1TaG93cyBhIHRlcm1pbmFsIHJlcG9ydDo6
Ci0KLSAgICAtLS0tLS0tLS0tLS0tLS0tLS0tLSBjb3ZlcmFnZTogcGxhdGZvcm0gbGludXgyLCBw
eXRob24gMi42LjQtZmluYWwtMCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSAgICBOYW1lICAgICAg
ICAgICAgICAgICBTdG10cyAgIE1pc3MgIENvdmVyCi0gICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLQotICAgIG15cHJvai9fX2luaXRfXyAgICAgICAgICAyICAgICAg
MCAgIDEwMCUKLSAgICBteXByb2ovbXlwcm9qICAgICAgICAgIDI1NyAgICAgMTMgICAgOTQlCi0g
ICAgbXlwcm9qL2ZlYXR1cmU0Mjg2ICAgICAgOTQgICAgICA3ICAgIDkyJQotICAgIC0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSAgICBUT1RBTCAgICAgICAgICAgICAg
ICAgIDM1MyAgICAgMjAgICAgOTQlCi0KLQotRGlzdHJpYnV0ZWQgVGVzdGluZzogRWFjaAotfn5+
fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgotCi1EaXN0cmlidXRlZCB0ZXN0aW5nIHdpdGggZGlzdCBt
b2RlIHNldCB0byBlYWNoIHdpbGwgcmVwb3J0IG9uIHRoZSBjb21iaW5lZCBjb3ZlcmFnZSBvZiBh
bGwgc2xhdmVzLgotU2luY2UgZWFjaCBzbGF2ZSBpcyBydW5uaW5nIGFsbCB0ZXN0cyB0aGlzIGFs
bG93cyBnZW5lcmF0aW5nIGEgY29tYmluZWQgY292ZXJhZ2UgcmVwb3J0IGZvciBtdWx0aXBsZQot
ZW52aXJvbm1lbnRzLgotCi1SdW5uaW5nIGRpc3RyaWJ1dGVkIHRlc3Rpbmcgd2l0aCBkaXN0IG1v
ZGUgc2V0IHRvIGVhY2g6OgotCi0gICAgcHl0ZXN0IC0tY292IG15cHJvaiAtLWRpc3QgZWFjaAot
ICAgICAgICAgICAgLS10eCBwb3Blbi8vY2hkaXI9L3RtcC90ZXN0ZW52My8vcHl0aG9uPS91c3Iv
bG9jYWwvcHl0aG9uMjcvYmluL3B5dGhvbgotICAgICAgICAgICAgLS10eCBzc2g9bWVtZWRvdWdo
QGhvc3QyLy9jaGRpcj0vdG1wL3Rlc3RlbnY0Ly9weXRob249L3RtcC9lbnYyL2Jpbi9weXRob24K
LSAgICAgICAgICAgIC0tcnN5bmNkaXIgbXlwcm9qIC0tcnN5bmNkaXIgdGVzdHMgLS1yc3luYyBl
eGFtcGxlcwotICAgICAgICAgICAgdGVzdHMvCi0KLVNob3dzIGEgdGVybWluYWwgcmVwb3J0OjoK
LQotICAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gY292ZXJhZ2Ug
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgcGxhdGZvcm0gbGludXgyLCBweXRob24gMi42LjUtZmluYWwtMAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgcGxhdGZvcm0gbGludXgyLCBweXRob24gMi43LjAt
ZmluYWwtMAotICAgIE5hbWUgICAgICAgICAgICAgICAgIFN0bXRzICAgTWlzcyAgQ292ZXIKLSAg
ICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0gICAgbXlwcm9qL19f
aW5pdF9fICAgICAgICAgIDIgICAgICAwICAgMTAwJQotICAgIG15cHJvai9teXByb2ogICAgICAg
ICAgMjU3ICAgICAxMyAgICA5NCUKLSAgICBteXByb2ovZmVhdHVyZTQyODYgICAgICA5NCAgICAg
IDcgICAgOTIlCi0gICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQot
ICAgIFRPVEFMICAgICAgICAgICAgICAgICAgMzUzICAgICAyMCAgICA5NCUKLQotCi1SZXBvcnRp
bmcKLS0tLS0tLS0tLQotCi1JdCBpcyBwb3NzaWJsZSB0byBnZW5lcmF0ZSBhbnkgY29tYmluYXRp
b24gb2YgdGhlIHJlcG9ydHMgZm9yIGEgc2luZ2xlIHRlc3QgcnVuLgotCi1UaGUgYXZhaWxhYmxl
IHJlcG9ydHMgYXJlIHRlcm1pbmFsICh3aXRoIG9yIHdpdGhvdXQgbWlzc2luZyBsaW5lIG51bWJl
cnMgc2hvd24pLCBIVE1MLCBYTUwgYW5kCi1hbm5vdGF0ZWQgc291cmNlIGNvZGUuCi0KLVRoZSB0
ZXJtaW5hbCByZXBvcnQgd2l0aG91dCBsaW5lIG51bWJlcnMgKGRlZmF1bHQpOjoKLQotICAgIHB5
dGVzdCAtLWNvdi1yZXBvcnQgdGVybSAtLWNvdiBteXByb2ogdGVzdHMvCi0KLSAgICAtLS0tLS0t
LS0tLS0tLS0tLS0tLSBjb3ZlcmFnZTogcGxhdGZvcm0gbGludXgyLCBweXRob24gMi42LjQtZmlu
YWwtMCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSAgICBOYW1lICAgICAgICAgICAgICAgICBTdG10
cyAgIE1pc3MgIENvdmVyCi0gICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLQotICAgIG15cHJvai9fX2luaXRfXyAgICAgICAgICAyICAgICAgMCAgIDEwMCUKLSAgICBt
eXByb2ovbXlwcm9qICAgICAgICAgIDI1NyAgICAgMTMgICAgOTQlCi0gICAgbXlwcm9qL2ZlYXR1
cmU0Mjg2ICAgICAgOTQgICAgICA3ICAgIDkyJQotICAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0KLSAgICBUT1RBTCAgICAgICAgICAgICAgICAgIDM1MyAgICAgMjAg
ICAgOTQlCi0KLQotVGhlIHRlcm1pbmFsIHJlcG9ydCB3aXRoIGxpbmUgbnVtYmVyczo6Ci0KLSAg
ICBweXRlc3QgLS1jb3YtcmVwb3J0IHRlcm0tbWlzc2luZyAtLWNvdiBteXByb2ogdGVzdHMvCi0K
LSAgICAtLS0tLS0tLS0tLS0tLS0tLS0tLSBjb3ZlcmFnZTogcGxhdGZvcm0gbGludXgyLCBweXRo
b24gMi42LjQtZmluYWwtMCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSAgICBOYW1lICAgICAgICAg
ICAgICAgICBTdG10cyAgIE1pc3MgIENvdmVyICAgTWlzc2luZwotICAgIC0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0gICAgbXlwcm9qL19faW5pdF9f
ICAgICAgICAgIDIgICAgICAwICAgMTAwJQotICAgIG15cHJvai9teXByb2ogICAgICAgICAgMjU3
ICAgICAxMyAgICA5NCUgICAyNC0yNiwgOTksIDE0OSwgMjMzLTIzNiwgMjk3LTI5OCwgMzY5LTM3
MAotICAgIG15cHJvai9mZWF0dXJlNDI4NiAgICAgIDk0ICAgICAgNyAgICA5MiUgICAxODMtMTg4
LCAxOTcKLSAgICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLQotICAgIFRPVEFMICAgICAgICAgICAgICAgICAgMzUzICAgICAyMCAgICA5NCUKLQotCi1U
aGUgcmVtYWluaW5nIHRocmVlIHJlcG9ydHMgb3V0cHV0IHRvIGZpbGVzIHdpdGhvdXQgc2hvd2lu
ZyBhbnl0aGluZyBvbiB0aGUgdGVybWluYWwgKHVzZWZ1bCBmb3IKLXdoZW4gdGhlIG91dHB1dCBp
cyBnb2luZyB0byBhIGNvbnRpbnVvdXMgaW50ZWdyYXRpb24gc2VydmVyKTo6Ci0KLSAgICBweXRl
c3QgLS1jb3YtcmVwb3J0IGh0bWwgLS1jb3YtcmVwb3J0IHhtbCAtLWNvdi1yZXBvcnQgYW5ub3Rh
dGUgLS1jb3YgbXlwcm9qIHRlc3RzLwotCi0KLUNvdmVyYWdlIERhdGEgRmlsZQotLS0tLS0tLS0t
LS0tLS0tLS0tCi0KLVRoZSBkYXRhIGZpbGUgaXMgZXJhc2VkIGF0IHRoZSBiZWdpbm5pbmcgb2Yg
dGVzdGluZyB0byBlbnN1cmUgY2xlYW4gZGF0YSBmb3IgZWFjaCB0ZXN0IHJ1bi4KLQotVGhlIGRh
dGEgZmlsZSBpcyBsZWZ0IGF0IHRoZSBlbmQgb2YgdGVzdGluZyBzbyB0aGF0IGl0IGlzIHBvc3Np
YmxlIHRvIHVzZSBub3JtYWwgY292ZXJhZ2UgdG9vbHMgdG8KLWV4YW1pbmUgaXQuCi0KLQotTGlt
aXRhdGlvbnMKLS0tLS0tLS0tLS0tCi0KLUZvciBkaXN0cmlidXRlZCB0ZXN0aW5nIHRoZSBzbGF2
ZXMgbXVzdCBoYXZlIHRoZSBweXRlc3QtY292IHBhY2thZ2UgaW5zdGFsbGVkLiAgVGhpcyBpcyBu
ZWVkZWQgc2luY2UKLXRoZSBwbHVnaW4gbXVzdCBiZSByZWdpc3RlcmVkIHRocm91Z2ggc2V0dXB0
b29scyAvIGRpc3RyaWJ1dGUgZm9yIHB5dGVzdCB0byBzdGFydCB0aGUgcGx1Z2luIG9uIHRoZQot
c2xhdmUuCi0KLUZvciBzdWJwcm9jZXNzIG1lYXN1cmVtZW50IGVudmlyb25tZW50IHZhcmlhYmxl
cyBtdXN0IG1ha2UgaXQgZnJvbSB0aGUgbWFpbiBwcm9jZXNzIHRvIHRoZQotc3VicHJvY2Vzcy4g
IFRoZSBweXRob24gdXNlZCBieSB0aGUgc3VicHJvY2VzcyBtdXN0IGhhdmUgcHl0ZXN0LWNvdiBp
bnN0YWxsZWQuICBUaGUgc3VicHJvY2VzcyBtdXN0Ci1kbyBub3JtYWwgc2l0ZSBpbml0aWFsaXph
dGlvbiBzbyB0aGF0IHRoZSBlbnZpcm9ubWVudCB2YXJpYWJsZXMgY2FuIGJlIGRldGVjdGVkIGFu
ZCBjb3ZlcmFnZQotc3RhcnRlZC4KLQotCi1BY2tub3dsZWRnbWVudHMKLS0tLS0tLS0tLS0tLS0t
LS0KLQotSG9sZ2VyIEtyZWtlbCBmb3IgcHl0ZXN0IHdpdGggaXRzIGRpc3RyaWJ1dGVkIHRlc3Rp
bmcgc3VwcG9ydC4KLQotTmVkIEJhdGNoZWxkZXIgZm9yIGNvdmVyYWdlIGFuZCBpdHMgYWJpbGl0
eSB0byBjb21iaW5lIHRoZSBjb3ZlcmFnZSByZXN1bHRzIG9mIHBhcmFsbGVsIHJ1bnMuCi0KLVdo
aWxzdCB0aGlzIHBsdWdpbiBoYXMgYmVlbiBidWlsdCBmcmVzaCBmcm9tIHRoZSBncm91bmQgdXAg
dG8gc3VwcG9ydCBkaXN0cmlidXRlZCB0ZXN0aW5nIGl0IGhhcwotYmVlbiBpbmZsdWVuY2VkIGJ5
IHRoZSB3b3JrIGRvbmUgb24gcHl0ZXN0LWNvdmVyYWdlIChSb3NzIExhd2xleSwgSmFtZXMgTWls
bHMsIEhvbGdlciBLcmVrZWwpIGFuZAotbm9zZS1jb3ZlciAoSmFzb24gUGVsbGVyaW4pIHdoaWNo
IGFyZSBvdGhlciBjb3ZlcmFnZSBwbHVnaW5zIGZvciBweXRlc3QgYW5kIG5vc2UgcmVzcGVjdGl2
ZWx5LgotCi1ObyBkb3VidCBvdGhlcnMgaGF2ZSBjb250cmlidXRlZCB0byB0aGVzZSB0b29scyBh
cyB3ZWxsLgotCi1jb21tYW5kIGxpbmUgb3B0aW9ucwotLS0tLS0tLS0tLS0tLS0tLS0tLS0KLQot
Ci1gYC0tY292PXBhdGhgYAotICAgIG1lYXN1cmUgY292ZXJhZ2UgZm9yIGZpbGVzeXN0ZW0gcGF0
aCAobXVsdGktYWxsb3dlZCkKLWBgLS1jb3YtcmVwb3J0PXR5cGVgYAotICAgIHR5cGUgb2YgcmVw
b3J0IHRvIGdlbmVyYXRlOiB0ZXJtLCB0ZXJtLW1pc3NpbmcsIGFubm90YXRlLCBodG1sLCB4bWwg
KG11bHRpLWFsbG93ZWQpCi1gYC0tY292LWNvbmZpZz1wYXRoYGAKLSAgICBjb25maWcgZmlsZSBm
b3IgY292ZXJhZ2UsIGRlZmF1bHQ6IC5jb3ZlcmFnZXJjCi0KLS4uIGluY2x1ZGU6OiBsaW5rcy50
eHQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi90ZXN0L3BsdWdpbi9jb3ZlcmFnZS5y
c3QgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3Ro
aXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vdGVzdC9wbHVnaW4vY292ZXJhZ2UucnN0CmRlbGV0ZWQg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3MTEzOWQwMDhiYTAyMGE3ZjdiNjk2YTIzYzg0MmMzZjUz
M2RkYzUyLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFy
dHkvcHl0ZXN0L2RvYy9lbi90ZXN0L3BsdWdpbi9jb3ZlcmFnZS5yc3QKKysrIC9kZXYvbnVsbApA
QCAtMSw1MSArMCwwIEBACi0KLVdyaXRlIGFuZCByZXBvcnQgY292ZXJhZ2UgZGF0YSB3aXRoIHRo
ZSAnY292ZXJhZ2UnIHBhY2thZ2UuCi09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotCi0KLS4uIGNvbnRlbnRzOjoKLSAgOmxvY2FsOgot
Ci1Ob3RlOiBPcmlnaW5hbCBjb2RlIGJ5IFJvc3MgTGF3bGV5LiAKLQotSW5zdGFsbAotLS0tLS0t
LS0tLS0tLS0KLQotVXNlIHBpcCB0byAodW4paW5zdGFsbDo6Ci0KLSAgICBwaXAgaW5zdGFsbCBw
eXRlc3QtY292ZXJhZ2UgCi0gICAgcGlwIHVuaW5zdGFsbCBweXRlc3QtY292ZXJhZ2UgCi0KLW9y
IGFsdGVybmF0aXZlbHkgdXNlIGVhc3lfaW5zdGFsbCB0byBpbnN0YWxsOjoKLQotICAgIGVhc3lf
aW5zdGFsbCBweXRlc3QtY292ZXJhZ2UgCi0KLQotVXNhZ2UgCi0tLS0tLS0tLS0tLS0tCi0KLVRv
IGdldCBmdWxsIHRlc3QgY292ZXJhZ2UgcmVwb3J0cyBmb3IgYSBwYXJ0aWN1bGFyIHBhY2thZ2Ug
dHlwZTo6Ci0KLSAgICBweXRlc3QgLS1jb3Zlci1yZXBvcnQ9cmVwb3J0Ci0KLWNvbW1hbmQgbGlu
ZSBvcHRpb25zCi0tLS0tLS0tLS0tLS0tLS0tLS0tLQotCi0KLWBgLS1jb3Zlcj1DT1ZFUlBBQ0tB
R0VTYGAKLSAgICAobXVsdGkgYWxsb3dlZCkgb25seSBpbmNsdWRlIGluZm8gZnJvbSBzcGVjaWZp
ZWQgcGFja2FnZS4KLWBgLS1jb3Zlci1yZXBvcnQ9UkVQT1JUX1RZUEVgYAotICAgIGh0bWw6IERp
cmVjdG9yeSBmb3IgaHRtbCBvdXRwdXQuCi0gICAgICAgICAgICAgICAgICAgIHJlcG9ydDogT3V0
cHV0IGEgdGV4dCByZXBvcnQuCi0gICAgICAgICAgICAgICAgICAgIGFubm90YXRlOiBBbm5vdGF0
ZSB5b3VyIHNvdXJjZSBjb2RlIGZvciB3aGljaCBsaW5lcyB3ZXJlIGV4ZWN1dGVkIGFuZCB3aGlj
aCB3ZXJlIG5vdC4KLSAgICAgICAgICAgICAgICAgICAgeG1sOiBPdXRwdXQgYW4geG1sIHJlcG9y
dCBjb21wYXRpYmxlIHdpdGggdGhlIGNvYmVydHVyYSBwbHVnaW4gZm9yIGh1ZHNvbi4KLWBgLS1j
b3Zlci1kaXJlY3Rvcnk9RElSRUNUT1JZYGAKLSAgICBEaXJlY3RvcnkgZm9yIHRoZSByZXBvcnRz
IChodG1sIC8gYW5ub3RhdGUgcmVzdWx0cykgZGVmYXVsdHMgdG8gLi9jb3ZlcmFnZQotYGAtLWNv
dmVyLXhtbC1maWxlPVhNTF9GSUxFYGAKLSAgICBGaWxlIGZvciB0aGUgeG1sIHJlcG9ydCBkZWZh
dWx0cyB0byAuL2NvdmVyYWdlLnhtbAotYGAtLWNvdmVyLXNob3ctbWlzc2luZ2BgCi0gICAgU2hv
dyBtaXNzaW5nIGZpbGVzCi1gYC0tY292ZXItaWdub3JlLWVycm9ycz1JR05PUkVfRVJST1JTYGAK
LSAgICBJZ25vcmUgZXJyb3JzIG9mIGZpbmRpbmcgc291cmNlIGZpbGVzIGZvciBjb2RlLgotCi0u
LiBpbmNsdWRlOjogbGlua3MudHh0CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vdGVz
dC9wbHVnaW4vZGphbmdvLnJzdCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi90ZXN0L3BsdWdpbi9kamFu
Z28ucnN0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwNjE0OTdiMzg1ZWRlNTg0OWZj
NGJlMjZjMzllNjU4ZWM3MWIxMzlkLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi90ZXN0L3BsdWdpbi9kamFuZ28ucnN0Cisr
KyAvZGV2L251bGwKQEAgLTEsNyArMCwwIEBACi1weXRlc3RfZGphbmdvIHBsdWdpbiAoRVhURVJO
QUwpCi09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLQotcHl0ZXN0
X2RqYW5nbyBpcyBhIHBsdWdpbiBmb3IgYGBweXRlc3RgYCB0aGF0IHByb3ZpZGVzIGEgc2V0IG9m
IHVzZWZ1bCB0b29scyBmb3IgdGVzdGluZyBEamFuZ28gYXBwbGljYXRpb25zLCBjaGVja291dCBC
ZW4gRmlyc2htYW4ncyBgcHl0ZXN0X2RqYW5nbyBnaXRodWIgcGFnZWBfLgotCi0uLiBfYHB5dGVz
dF9kamFuZ28gZ2l0aHViIHBhZ2VgOiBodHRwOi8vZ2l0aHViLmNvbS9iZmlyc2gvcHl0ZXN0X2Rq
YW5nby90cmVlL21hc3RlcgotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vdGVzdC9w
bHVnaW4vZmlnbGVhZi5yc3QgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vdGVzdC9wbHVnaW4vZmlnbGVh
Zi5yc3QKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDBjMTYwM2FkZTlmYzNkZjE3Yjgy
MjE4MmQ4ZjM1NzliMmI2Yzg3ODcuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL3Rlc3QvcGx1Z2luL2ZpZ2xlYWYucnN0Cisr
KyAvZGV2L251bGwKQEAgLTEsNDQgKzAsMCBAQAotCi1yZXBvcnQgdGVzdCBjb3ZlcmFnZSB1c2lu
ZyB0aGUgJ2ZpZ2xlYWYnIHBhY2thZ2UuCi09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0KLQotLi4gY29udGVudHM6OgotICA6bG9jYWw6Ci0KLUluc3Rh
bGwKLS0tLS0tLS0tLS0tLS0tLQotCi1UbyBpbnN0YWxsIHRoZSBwbHVnaW4gaXNzdWU6OgotCi0g
ICAgZWFzeV9pbnN0YWxsIHB5dGVzdC1maWdsZWFmICAjIG9yCi0gICAgcGlwIGluc3RhbGwgcHl0
ZXN0LWZpZ2xlYWYgICAKLQotYW5kIGlmIHlvdSBhcmUgdXNpbmcgcGlwIHlvdSBjYW4gYWxzbyB1
bmluc3RhbGw6OgotCi0gICAgcGlwIHVuaW5zdGFsbCBweXRlc3QtZmlnbGVhZgotCi0KLVVzYWdl
Ci0tLS0tLS0tLS0tLS0tLS0KLQotQWZ0ZXIgaW5zdGFsbGF0aW9uIHlvdSBjYW4gc2ltcGx5IHR5
cGU6OgotCi0gICAgcHl0ZXN0IC0tZmlnbGVhZiBbLi4uXQotCi10byBlbmFibGUgZmlnbGVhZiBj
b3ZlcmFnZSBpbiB5b3VyIHRlc3QgcnVuLiAgQSBkZWZhdWx0ICIuZmlnbGVhZiIgZGF0YSBmaWxl
Ci1hbmQgImh0bWwiIGRpcmVjdG9yeSB3aWxsIGJlIGNyZWF0ZWQuICBZb3UgY2FuIHVzZSBjb21t
YW5kIGxpbmUgb3B0aW9ucwotdG8gY29udHJvbCB3aGVyZSBkYXRhIGFuZCBodG1sIGZpbGVzIGFy
ZSBjcmVhdGVkLgotCi1jb21tYW5kIGxpbmUgb3B0aW9ucwotLS0tLS0tLS0tLS0tLS0tLS0tLS0K
LQotCi1gYC0tZmlnbGVhZmBgCi0gICAgdHJhY2UgcHl0aG9uIGNvdmVyYWdlIHdpdGggZmlnbGVh
ZiBhbmQgd3JpdGUgSFRNTCBmb3IgZmlsZXMgYmVsb3cgdGhlIGN1cnJlbnQgd29ya2luZyBkaXIK
LWBgLS1maWctZGF0YT1kaXJgYAotICAgIHNldCB0cmFjaW5nIGZpbGUsIGRlZmF1bHQ6ICIuZmln
bGVhZiIuCi1gYC0tZmlnLWh0bWw9ZGlyYGAKLSAgICBzZXQgaHRtbCByZXBvcnRpbmcgZGlyLCBk
ZWZhdWx0ICJodG1sIi4KLQotLi4gaW5jbHVkZTo6IGxpbmtzLnR4dApkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0
eS9weXRlc3QvZG9jL2VuL3Rlc3QvcGx1Z2luL2hlbHBjb25maWcucnN0IGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3Qv
ZG9jL2VuL3Rlc3QvcGx1Z2luL2hlbHBjb25maWcucnN0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAzMjZiNzVjNDU1MmUxNDJhYTlkZmE1NWJhZjE2NjcwNDZkNzExMzYwLi4wMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9l
bi90ZXN0L3BsdWdpbi9oZWxwY29uZmlnLnJzdAorKysgL2Rldi9udWxsCkBAIC0xLDM2ICswLDAg
QEAKLQotcHJvdmlkZSB2ZXJzaW9uIGluZm8sIGNvbmZ0ZXN0L2Vudmlyb25tZW50IGNvbmZpZyBu
YW1lcy4KLT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0KLQotLi4gY29udGVudHM6OgotICA6bG9jYWw6Ci0KLQotCi1jb21tYW5kIGxpbmUg
b3B0aW9ucwotLS0tLS0tLS0tLS0tLS0tLS0tLS0KLQotCi1gYC0tdmVyc2lvbmBgCi0gICAgZGlz
cGxheSBweSBsaWIgdmVyc2lvbiBhbmQgaW1wb3J0IGluZm9ybWF0aW9uLgotYGAtcCBuYW1lYGAK
LSAgICBlYXJseS1sb2FkIGdpdmVuIHBsdWdpbiAobXVsdGktYWxsb3dlZCkuCi1gYC0tdHJhY2Ut
Y29uZmlnYGAKLSAgICB0cmFjZSBjb25zaWRlcmF0aW9ucyBvZiBjb25mdGVzdC5weSBmaWxlcy4K
LWBgLS1kZWJ1Z2BgCi0gICAgZ2VuZXJhdGUgYW5kIHNob3cgaW50ZXJuYWwgZGVidWdnaW5nIGlu
Zm9ybWF0aW9uLgotYGAtLWhlbHAtY29uZmlnYGAKLSAgICBzaG93IGF2YWlsYWJsZSBjb25mdGVz
dC5weSBhbmQgRU5WLXZhcmlhYmxlIG5hbWVzLgotCi1TdGFydCBpbXByb3ZpbmcgdGhpcyBwbHVn
aW4gaW4gMzAgc2Vjb25kcwotPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLQotCi0xLiBEb3dubG9hZCBgcHl0ZXN0X2hlbHBjb25maWcucHlgXyBwbHVnaW4gc291cmNl
IGNvZGUKLTIuIHB1dCBpdCBzb21ld2hlcmUgYXMgYGBweXRlc3RfaGVscGNvbmZpZy5weWBgIGlu
dG8geW91ciBpbXBvcnQgcGF0aAotMy4gYSBzdWJzZXF1ZW50IGBgcHl0ZXN0YGAgcnVuIHdpbGwg
dXNlIHlvdXIgbG9jYWwgdmVyc2lvbgotCi1DaGVja291dCBjdXN0b21pemVfLCBvdGhlciBwbHVn
aW5zXyBvciBgZ2V0IGluIGNvbnRhY3RgXy4KLQotLi4gaW5jbHVkZTo6IGxpbmtzLnR4dApkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL3Rlc3QvcGx1Z2luL2luZGV4LnJzdCBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkv
cHl0ZXN0L2RvYy9lbi90ZXN0L3BsdWdpbi9pbmRleC5yc3QKZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDg1M2E0ZGNlNjgxYzhmNmJiZWMxZjcxNzU5ZTEyYmU5NTkwMTZlMmIuLjAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9j
L2VuL3Rlc3QvcGx1Z2luL2luZGV4LnJzdAorKysgL2Rldi9udWxsCkBAIC0xLDY4ICswLDAgQEAK
LQotYWR2YW5jZWQgcHl0aG9uIHRlc3RpbmcKLT09PT09PT09PT09PT09PT09PT09PT09Ci0KLXNr
aXBwaW5nXyBhZHZhbmNlZCBza2lwcGluZyBmb3IgcHl0aG9uIHRlc3QgZnVuY3Rpb25zLCBjbGFz
c2VzIG9yIG1vZHVsZXMuCi0KLW1hcmtfIGdlbmVyaWMgbWVjaGFuaXNtIGZvciBtYXJraW5nIHB5
dGhvbiBmdW5jdGlvbnMuCi0KLXBkYl8gaW50ZXJhY3RpdmUgZGVidWdnaW5nIHdpdGggdGhlIFB5
dGhvbiBEZWJ1Z2dlci4KLQotZmlnbGVhZl8gKGV4dGVybmFsKSByZXBvcnQgdGVzdCBjb3ZlcmFn
ZSB1c2luZyB0aGUgJ2ZpZ2xlYWYnIHBhY2thZ2UuCi0KLW1vbmtleXBhdGNoXyBzYWZlbHkgcGF0
Y2ggb2JqZWN0IGF0dHJpYnV0ZXMsIGRpY3RzIGFuZCBlbnZpcm9ubWVudCB2YXJpYWJsZXMuCi0K
LWNvdmVyYWdlXyAoZXh0ZXJuYWwpIFdyaXRlIGFuZCByZXBvcnQgY292ZXJhZ2UgZGF0YSB3aXRo
IHRoZSAnY292ZXJhZ2UnIHBhY2thZ2UuCi0KLWNvdl8gKGV4dGVybmFsKSBwcm9kdWNlIGNvZGUg
Y292ZXJhZ2UgcmVwb3J0cyB1c2luZyB0aGUgJ2NvdmVyYWdlJyBwYWNrYWdlLCBpbmNsdWRpbmcg
c3VwcG9ydCBmb3IgZGlzdHJpYnV0ZWQgdGVzdGluZy4KLQotY2FwdHVyZV8gY29uZmlndXJhYmxl
IHBlci10ZXN0IHN0ZG91dC9zdGRlcnIgY2FwdHVyaW5nIG1lY2hhbmlzbXMuCi0KLWNhcHR1cmVs
b2dfIChleHRlcm5hbCkgY2FwdHVyZSBvdXRwdXQgb2YgbG9nZ2luZyBtb2R1bGUuCi0KLXJlY3dh
cm5fIGhlbHBlcnMgZm9yIGFzc2VydGluZyBkZXByZWNhdGlvbiBhbmQgb3RoZXIgd2FybmluZ3Mu
Ci0KLXRtcGRpcl8gcHJvdmlkZSB0ZW1wb3JhcnkgZGlyZWN0b3JpZXMgdG8gdGVzdCBmdW5jdGlv
bnMuCi0KLQotZGlzdHJpYnV0ZWQgdGVzdGluZywgQ0kgYW5kIGRlcGxveW1lbnQKLT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0KLXhkaXN0XyAoZXh0ZXJuYWwpIGxvb3Ag
b24gZmFpbGluZyB0ZXN0cywgZGlzdHJpYnV0ZSB0ZXN0IHJ1bnMgdG8gQ1BVcyBhbmQgaG9zdHMu
Ci0KLXBhc3RlYmluXyBzdWJtaXQgZmFpbHVyZSBvciB0ZXN0IHNlc3Npb24gaW5mb3JtYXRpb24g
dG8gYSBwYXN0ZWJpbiBzZXJ2aWNlLgotCi1qdW5pdHhtbF8gbG9nZ2luZyBvZiB0ZXN0IHJlc3Vs
dHMgaW4gSlVuaXQtWE1MIGZvcm1hdCwgZm9yIHVzZSB3aXRoIEh1ZHNvbgotCi1yZXN1bHRsb2df
IG5vbi14bWwgbWFjaGluZS1yZWFkYWJsZSBsb2dnaW5nIG9mIHRlc3QgcmVzdWx0cy4KLQotZ2Vu
c2NyaXB0XyBnZW5lcmF0ZSBzdGFuZGFsb25lIHRlc3Qgc2NyaXB0IHRvIGJlIGRpc3RyaWJ1dGVk
IGFsb25nIHdpdGggYW4gYXBwbGljYXRpb24uCi0KLQotdGVzdGluZyBkb21haW5zIGFuZCBjb252
ZW50aW9ucyBjb2RlY2hlY2tlcnMKLT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0KLW9lanNraXRfIChleHRlcm5hbCkgcnVuIGphdmFzY3JpcHQgdGVzdHMgaW4g
cmVhbCBsaWZlIGJyb3dzZXJzCi0KLWRqYW5nb18gKGV4dGVybmFsKSBmb3IgdGVzdGluZyBkamFu
Z28gYXBwbGljYXRpb25zCi0KLXVuaXR0ZXN0XyBhdXRvbWF0aWNhbGx5IGRpc2NvdmVyIGFuZCBy
dW4gdHJhZGl0aW9uYWwgInVuaXR0ZXN0LnB5IiBzdHlsZSB0ZXN0cy4KLQotbm9zZV8gbm9zZS1j
b21wYXRpYmlsaXR5IHBsdWdpbjogYWxsb3cgdG8gcnVuIG5vc2UgdGVzdCBzdWl0ZXMgbmF0aXZl
bHkuCi0KLWRvY3Rlc3RfIGNvbGxlY3QgYW5kIGV4ZWN1dGUgZG9jdGVzdHMgZnJvbSBtb2R1bGVz
IGFuZCB0ZXN0IGZpbGVzLgotCi1yZXN0ZG9jXyBwZXJmb3JtIFJlU1Qgc3ludGF4LCBsb2NhbCBh
bmQgcmVtb3RlIHJlZmVyZW5jZSB0ZXN0cyBvbiAucnN0Ly50eHQgZmlsZXMuCi0KLQotaW50ZXJu
YWwsIGRlYnVnZ2luZywgaGVscCBmdW5jdGlvbmFsaXR5Ci09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLQotaGVscGNvbmZpZ18gcHJvdmlkZSB2ZXJzaW9uIGluZm8sIGNv
bmZ0ZXN0L2Vudmlyb25tZW50IGNvbmZpZyBuYW1lcy4KLQotdGVybWluYWxfIEltcGxlbWVudHMg
dGVybWluYWwgcmVwb3J0aW5nIG9mIHRoZSBmdWxsIHRlc3RpbmcgcHJvY2Vzcy4KLQotaG9va2xv
Z18gbG9nIGludm9jYXRpb25zIG9mIGV4dGVuc2lvbiBob29rcyB0byBhIGZpbGUuCi0KLQotLi4g
aW5jbHVkZTo6IGxpbmtzLnR4dApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL3Rlc3Qv
cGx1Z2luL2xpbmtzLnJzdCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi90ZXN0L3BsdWdpbi9saW5rcy5y
c3QKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDZkZWMyYjQ4NDhhNjllNWViODA1Njg1
ODljYzNmOTllMmRkZDJlMzQuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL3Rlc3QvcGx1Z2luL2xpbmtzLnJzdAorKysgL2Rl
di9udWxsCkBAIC0xLDQ1ICswLDAgQEAKLS4uIF9gaGVscGNvbmZpZ2A6IGhlbHBjb25maWcuaHRt
bAotLi4gX2BweXRlc3RfcmVjd2Fybi5weWA6IGh0dHA6Ly9iaXRidWNrZXQub3JnL2hwazQyL3B5
LXRydW5rL3Jhdy8xLjMuNC9weS9fcGx1Z2luL3B5dGVzdF9yZWN3YXJuLnB5Ci0uLiBfYHVuaXR0
ZXN0YDogdW5pdHRlc3QuaHRtbAotLi4gX2BweXRlc3RfbW9ua2V5cGF0Y2gucHlgOiBodHRwOi8v
Yml0YnVja2V0Lm9yZy9ocGs0Mi9weS10cnVuay9yYXcvMS4zLjQvcHkvX3BsdWdpbi9weXRlc3Rf
bW9ua2V5cGF0Y2gucHkKLS4uIF9gcGFzdGViaW5gOiBwYXN0ZWJpbi5odG1sCi0uLiBfYHNraXBw
aW5nYDogc2tpcHBpbmcuaHRtbAotLi4gX2BwbHVnaW5zYDogaW5kZXguaHRtbAotLi4gX2BtYXJr
YDogbWFyay5odG1sCi0uLiBfYHRtcGRpcmA6IHRtcGRpci5odG1sCi0uLiBfYHB5dGVzdF9kb2N0
ZXN0LnB5YDogaHR0cDovL2JpdGJ1Y2tldC5vcmcvaHBrNDIvcHktdHJ1bmsvcmF3LzEuMy40L3B5
L19wbHVnaW4vcHl0ZXN0X2RvY3Rlc3QucHkKLS4uIF9gY2FwdHVyZWA6IGNhcHR1cmUuaHRtbAot
Li4gX2BweXRlc3Rfbm9zZS5weWA6IGh0dHA6Ly9iaXRidWNrZXQub3JnL2hwazQyL3B5LXRydW5r
L3Jhdy8xLjMuNC9weS9fcGx1Z2luL3B5dGVzdF9ub3NlLnB5Ci0uLiBfYHB5dGVzdF9yZXN0ZG9j
LnB5YDogaHR0cDovL2JpdGJ1Y2tldC5vcmcvaHBrNDIvcHktdHJ1bmsvcmF3LzEuMy40L3B5L19w
bHVnaW4vcHl0ZXN0X3Jlc3Rkb2MucHkKLS4uIF9gcmVzdGRvY2A6IHJlc3Rkb2MuaHRtbAotLi4g
X2B4ZGlzdGA6IHhkaXN0Lmh0bWwKLS4uIF9gcHl0ZXN0X3Bhc3RlYmluLnB5YDogaHR0cDovL2Jp
dGJ1Y2tldC5vcmcvaHBrNDIvcHktdHJ1bmsvcmF3LzEuMy40L3B5L19wbHVnaW4vcHl0ZXN0X3Bh
c3RlYmluLnB5Ci0uLiBfYHB5dGVzdF90bXBkaXIucHlgOiBodHRwOi8vYml0YnVja2V0Lm9yZy9o
cGs0Mi9weS10cnVuay9yYXcvMS4zLjQvcHkvX3BsdWdpbi9weXRlc3RfdG1wZGlyLnB5Ci0uLiBf
YHRlcm1pbmFsYDogdGVybWluYWwuaHRtbAotLi4gX2BweXRlc3RfaG9va2xvZy5weWA6IGh0dHA6
Ly9iaXRidWNrZXQub3JnL2hwazQyL3B5LXRydW5rL3Jhdy8xLjMuNC9weS9fcGx1Z2luL3B5dGVz
dF9ob29rbG9nLnB5Ci0uLiBfYGNhcHR1cmVsb2dgOiBjYXB0dXJlbG9nLmh0bWwKLS4uIF9ganVu
aXR4bWxgOiBqdW5pdHhtbC5odG1sCi0uLiBfYHB5dGVzdF9za2lwcGluZy5weWA6IGh0dHA6Ly9i
aXRidWNrZXQub3JnL2hwazQyL3B5LXRydW5rL3Jhdy8xLjMuNC9weS9fcGx1Z2luL3B5dGVzdF9z
a2lwcGluZy5weQotLi4gX2BjaGVja291dCB0aGUgcHl0ZXN0IGRldmVsb3BtZW50IHZlcnNpb25g
OiAuLi8uLi9pbnN0YWxsLmh0bWwjY2hlY2tvdXQKLS4uIF9gcHl0ZXN0X2hlbHBjb25maWcucHlg
OiBodHRwOi8vYml0YnVja2V0Lm9yZy9ocGs0Mi9weS10cnVuay9yYXcvMS4zLjQvcHkvX3BsdWdp
bi9weXRlc3RfaGVscGNvbmZpZy5weQotLi4gX2BvZWpza2l0YDogb2Vqc2tpdC5odG1sCi0uLiBf
YGRvY3Rlc3RgOiBkb2N0ZXN0Lmh0bWwKLS4uIF9gcHl0ZXN0X21hcmsucHlgOiBodHRwOi8vYml0
YnVja2V0Lm9yZy9ocGs0Mi9weS10cnVuay9yYXcvMS4zLjQvcHkvX3BsdWdpbi9weXRlc3RfbWFy
ay5weQotLi4gX2BnZXQgaW4gY29udGFjdGA6IC4uLy4uL2NvbnRhY3QuaHRtbAotLi4gX2BweXRl
c3RfY2FwdHVyZS5weWA6IGh0dHA6Ly9iaXRidWNrZXQub3JnL2hwazQyL3B5LXRydW5rL3Jhdy8x
LjMuNC9weS9fcGx1Z2luL3B5dGVzdF9jYXB0dXJlLnB5Ci0uLiBfYGZpZ2xlYWZgOiBmaWdsZWFm
Lmh0bWwKLS4uIF9gY3VzdG9taXplYDogLi4vY3VzdG9taXplLmh0bWwKLS4uIF9gaG9va2xvZ2A6
IGhvb2tsb2cuaHRtbAotLi4gX2BweXRlc3RfdGVybWluYWwucHlgOiBodHRwOi8vYml0YnVja2V0
Lm9yZy9ocGs0Mi9weS10cnVuay9yYXcvMS4zLjQvcHkvX3BsdWdpbi9weXRlc3RfdGVybWluYWwu
cHkKLS4uIF9gcmVjd2FybmA6IHJlY3dhcm4uaHRtbAotLi4gX2BweXRlc3RfcGRiLnB5YDogaHR0
cDovL2JpdGJ1Y2tldC5vcmcvaHBrNDIvcHktdHJ1bmsvcmF3LzEuMy40L3B5L19wbHVnaW4vcHl0
ZXN0X3BkYi5weQotLi4gX2Btb25rZXlwYXRjaGA6IG1vbmtleXBhdGNoLmh0bWwKLS4uIF9gY292
ZXJhZ2VgOiBjb3ZlcmFnZS5odG1sCi0uLiBfYHJlc3VsdGxvZ2A6IHJlc3VsdGxvZy5odG1sCi0u
LiBfYGNvdmA6IGNvdi5odG1sCi0uLiBfYHB5dGVzdF9qdW5pdHhtbC5weWA6IGh0dHA6Ly9iaXRi
dWNrZXQub3JnL2hwazQyL3B5LXRydW5rL3Jhdy8xLjMuNC9weS9fcGx1Z2luL3B5dGVzdF9qdW5p
dHhtbC5weQotLi4gX2BkamFuZ29gOiBkamFuZ28uaHRtbAotLi4gX2BweXRlc3RfdW5pdHRlc3Qu
cHlgOiBodHRwOi8vYml0YnVja2V0Lm9yZy9ocGs0Mi9weS10cnVuay9yYXcvMS4zLjQvcHkvX3Bs
dWdpbi9weXRlc3RfdW5pdHRlc3QucHkKLS4uIF9gbm9zZWA6IG5vc2UuaHRtbAotLi4gX2BweXRl
c3RfcmVzdWx0bG9nLnB5YDogaHR0cDovL2JpdGJ1Y2tldC5vcmcvaHBrNDIvcHktdHJ1bmsvcmF3
LzEuMy40L3B5L19wbHVnaW4vcHl0ZXN0X3Jlc3VsdGxvZy5weQotLi4gX2BwZGJgOiBwZGIuaHRt
bApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL3Rlc3QvcGx1Z2luL25vc2UucnN0IGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9w
YXJ0eS9weXRlc3QvZG9jL2VuL3Rlc3QvcGx1Z2luL25vc2UucnN0CmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCA5ZWVhZTVmZjY5N2YwNWEyMjY1MWY5NmYwYTliZTBjZTIxMDRlNTkwLi4w
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0
L2RvYy9lbi90ZXN0L3BsdWdpbi9ub3NlLnJzdAorKysgL2Rldi9udWxsCkBAIC0xLDU2ICswLDAg
QEAKLQotbm9zZS1jb21wYXRpYmlsaXR5IHBsdWdpbjogYWxsb3cgdG8gcnVuIG5vc2UgdGVzdCBz
dWl0ZXMgbmF0aXZlbHkuCi09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLQotCi0uLiBjb250ZW50czo6Ci0gIDpsb2NhbDoK
LQotVGhpcyBpcyBhbiBleHBlcmltZW50YWwgcGx1Z2luIGZvciBhbGxvd2luZyB0byBydW4gdGVz
dHMgd3JpdHRlbgotaW4gJ25vc2V0ZXN0cycgc3R5bGUgd2l0aCBgYHB5dGVzdGBgLgotCi1Vc2Fn
ZQotLS0tLS0tLS0tLS0tLQotCi10eXBlOjoKLQotICAgIHB5dGVzdCAgIyBpbnN0ZWFkIG9mICdu
b3NldGVzdHMnCi0KLWFuZCB5b3Ugc2hvdWxkIGJlIGFibGUgdG8gcnVuIG5vc2Ugc3R5bGUgdGVz
dHMgYW5kIGF0IHRoZSBzYW1lCi10aW1lIGNhbiBtYWtlIGZ1bGwgdXNlIG9mIHB5dGVzdCdzIGNh
cGFiaWxpdGllcy4KLQotU3VwcG9ydGVkIG5vc2UgSWRpb21zCi0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tCi0KLSogc2V0dXAgYW5kIHRlYXJkb3duIGF0IG1vZHVsZS9jbGFzcy9tZXRob2QgbGV2ZWwK
LSogU2tpcFRlc3QgZXhjZXB0aW9ucyBhbmQgbWFya2VycwotKiBzZXR1cC90ZWFyZG93biBkZWNv
cmF0b3JzCi0qIHlpZWxkLWJhc2VkIHRlc3RzIGFuZCB0aGVpciBzZXR1cAotKiBnZW5lcmFsIHVz
YWdlIG9mIG5vc2UgdXRpbGl0aWVzCi0KLVVuc3VwcG9ydGVkIGlkaW9tcyAvIGlzc3VlcwotLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotCi0tIG5vc2Utc3R5bGUgZG9jdGVzdHMg
YXJlIG5vdCBjb2xsZWN0ZWQgYW5kIGV4ZWN1dGVkIGNvcnJlY3RseSwKLSAgYWxzbyBmaXh0dXJl
cyBkb24ndCB3b3JrLgotCi0tIG5vIG5vc2UtY29uZmlndXJhdGlvbiBpcyByZWNvZ25pemVkCi0K
LUlmIHlvdSBmaW5kIG90aGVyIGlzc3VlcyBvciBoYXZlIHN1Z2dlc3Rpb25zIHBsZWFzZSBydW46
OgotCi0gICAgcHl0ZXN0IC0tcGFzdGViaW49YWxsCi0KLWFuZCBzZW5kIHRoZSByZXN1bHRpbmcg
VVJMIHRvIGEgYGBweXRlc3RgYCBjb250YWN0IGNoYW5uZWwsCi1hdCBiZXN0IHRvIHRoZSBtYWls
aW5nIGxpc3QuCi0KLVN0YXJ0IGltcHJvdmluZyB0aGlzIHBsdWdpbiBpbiAzMCBzZWNvbmRzCi09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotCi0KLTEuIERvd25sb2Fk
IGBweXRlc3Rfbm9zZS5weWBfIHBsdWdpbiBzb3VyY2UgY29kZQotMi4gcHV0IGl0IHNvbWV3aGVy
ZSBhcyBgYHB5dGVzdF9ub3NlLnB5YGAgaW50byB5b3VyIGltcG9ydCBwYXRoCi0zLiBhIHN1YnNl
cXVlbnQgYGBweXRlc3RgYCBydW4gd2lsbCB1c2UgeW91ciBsb2NhbCB2ZXJzaW9uCi0KLUNoZWNr
b3V0IGN1c3RvbWl6ZV8sIG90aGVyIHBsdWdpbnNfIG9yIGBnZXQgaW4gY29udGFjdGBfLgotCi0u
LiBpbmNsdWRlOjogbGlua3MudHh0CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vdGVz
dC9wbHVnaW4vb2Vqc2tpdC5yc3QgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vdGVzdC9wbHVnaW4vb2Vq
c2tpdC5yc3QKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDQ5OTVhYTE3YzcyZDVjZTBi
NzkxNTRhNjJjOTdmMGEyMTBkMjNhZGUuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL3Rlc3QvcGx1Z2luL29lanNraXQucnN0
CisrKyAvZGV2L251bGwKQEAgLTEsMTIgKzAsMCBAQAotcHl0ZXN0X29lanNraXQgcGx1Z2luIChF
WFRFUk5BTCkKLT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotCi1U
aGUgYG9lanNraXRgXyBvZmZlcnMgYSBgYHB5dGVzdGBgIHBsdWdpbiBmb3IgcnVubmluZyBKYXZh
c2NyaXB0IHRlc3RzIGluIGxpdmUgYnJvd3NlcnMuICAgUnVubmluZyBpbnNpZGUgdGhlIGJyb3dz
ZXJzIGNvbWVzIHdpdGggc29tZSBzcGVlZCBjb3N0LCBvbiB0aGUgb3RoZXIgaGFuZCBpdCBtZWFu
cyBmb3IgZXhhbXBsZSB0aGUgY29kZSBpcyB0ZXN0ZWQgYWdhaW5zdCB0aGUgcmVhbC13b3JkIERP
TSBpbXBsZW1lbnRhdGlvbnMuCi1UaGUgYXBwcm9hY2ggZW5hYmxlcyB0byB3cml0ZSBpbnRlZ3Jh
dGlvbiB0ZXN0cyBzdWNoIHRoYXQgdGhlIEphdmFTY3JpcHQgY29kZSBpcyB0ZXN0ZWQgYWdhaW5z
dCBzZXJ2ZXItc2lkZSBQeXRob24gY29kZSBtb2NrZWQgYXMgbmVjZXNzYXJ5LiBBbnkgc2VydmVy
LXNpZGUgZnJhbWV3b3JrIHRoYXQgY2FuIGFscmVhZHkgYmUgZXhwb3NlZCB0aHJvdWdoIFdTR0kg
KG9yIGZvciB3aGljaCBhIHN1YnNldCBvZiBXU0dJIGNhbiBiZSB3cml0dGVuIHRvIGFjY29tbW9k
YXRlIHRoZSBqc2tpdCBvd24gbmVlZHMpIGNhbiBwbGF5IGFsb25nLgotCi1Gb3IgbW9yZSBpbmZv
IGFuZCBkb3dubG9hZCBwbGVhc2UgdmlzaXQgdGhlIGBvZWpza2l0IFB5UElgXyBwYWdlLgotCi0u
LiBfYG9lanNraXRgOgotLi4gX2BvZWpza2l0IFB5UElgOiBodHRwOi8vcHlwaS5weXRob24ub3Jn
L3B5cGkvb2Vqc2tpdAotCi0uLiBzb3VyY2UgbGluayAnaHR0cDovL2JpdGJ1Y2tldC5vcmcvcGVk
cm9uaXMvanMtaW5mcmFzdHJ1Y3R1cmUvc3JjL3RpcC9weXRlc3RfanN0ZXN0cy5weScsCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vdGVzdC9wbHVnaW4vdGVybWluYWwucnN0IGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0
eS9weXRlc3QvZG9jL2VuL3Rlc3QvcGx1Z2luL3Rlcm1pbmFsLnJzdApkZWxldGVkIGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggZTA3ZDRmNzIxODNhOWEyNzY3NjMzNmNkOTg0ZTZmNzVlZmEzMGE3MS4u
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVz
dC9kb2MvZW4vdGVzdC9wbHVnaW4vdGVybWluYWwucnN0CisrKyAvZGV2L251bGwKQEAgLTEsMzgg
KzAsMCBAQAotCi1JbXBsZW1lbnRzIHRlcm1pbmFsIHJlcG9ydGluZyBvZiB0aGUgZnVsbCB0ZXN0
aW5nIHByb2Nlc3MuCi09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0KLQotLi4gY29udGVudHM6OgotICA6bG9jYWw6Ci0KLVRoaXMgaXMg
YSBnb29kIHNvdXJjZSBmb3IgbG9va2luZyBhdCB0aGUgdmFyaW91cyByZXBvcnRpbmcgaG9va3Mu
Ci0KLWNvbW1hbmQgbGluZSBvcHRpb25zCi0tLS0tLS0tLS0tLS0tLS0tLS0tLQotCi0KLWBgLXYs
IC0tdmVyYm9zZWBgCi0gICAgaW5jcmVhc2UgdmVyYm9zaXR5LgotYGAtciBjaGFyc2BgCi0gICAg
c2hvdyBleHRyYSB0ZXN0IHN1bW1hcnkgaW5mbyBhcyBzcGVjaWZpZWQgYnkgY2hhcnMgKGYpYWls
ZWQsIChzKXNraXBwZWQsICh4KWZhaWxlZCwgKFgpcGFzc2VkLgotYGAtbCwgLS1zaG93bG9jYWxz
YGAKLSAgICBzaG93IGxvY2FscyBpbiB0cmFjZWJhY2tzIChkaXNhYmxlZCBieSBkZWZhdWx0KS4K
LWBgLS10Yj1zdHlsZWBgCi0gICAgdHJhY2ViYWNrIHByaW50IG1vZGUgKGxvbmcvc2hvcnQvbGlu
ZS9ubykuCi1gYC0tZnVsbC10cmFjZWBgCi0gICAgZG9uJ3QgY3V0IGFueSB0cmFjZWJhY2tzIChk
ZWZhdWx0IGlzIHRvIGN1dCkuCi1gYC0tZml4dHVyZXNgYAotICAgIHNob3cgYXZhaWxhYmxlIGZ1
bmN0aW9uIGFyZ3VtZW50cywgc29ydGVkIGJ5IHBsdWdpbgotCi1TdGFydCBpbXByb3ZpbmcgdGhp
cyBwbHVnaW4gaW4gMzAgc2Vjb25kcwotPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLQotCi0xLiBEb3dubG9hZCBgcHl0ZXN0X3Rlcm1pbmFsLnB5YF8gcGx1Z2luIHNv
dXJjZSBjb2RlCi0yLiBwdXQgaXQgc29tZXdoZXJlIGFzIGBgcHl0ZXN0X3Rlcm1pbmFsLnB5YGAg
aW50byB5b3VyIGltcG9ydCBwYXRoCi0zLiBhIHN1YnNlcXVlbnQgYGBweXRlc3RgYCBydW4gd2ls
bCB1c2UgeW91ciBsb2NhbCB2ZXJzaW9uCi0KLUNoZWNrb3V0IGN1c3RvbWl6ZV8sIG90aGVyIHBs
dWdpbnNfIG9yIGBnZXQgaW4gY29udGFjdGBfLgotCi0uLiBpbmNsdWRlOjogbGlua3MudHh0CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vdGVzdC9wbHVnaW4vdzNjLWltcG9ydC5sb2cg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJk
X3BhcnR5L3B5dGVzdC9kb2MvZW4vdGVzdC9wbHVnaW4vdzNjLWltcG9ydC5sb2cKZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IGY5MDY3MTdkNGQzZjYyY2M5N2IxNTMxNTE1MWIwN2Y4NGRk
MThkZDQuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0
eS9weXRlc3QvZG9jL2VuL3Rlc3QvcGx1Z2luL3czYy1pbXBvcnQubG9nCisrKyAvZGV2L251bGwK
QEAgLTEsMjcgKzAsMCBAQAotVGhlIHRlc3RzIGluIHRoaXMgZGlyZWN0b3J5IHdlcmUgaW1wb3J0
ZWQgZnJvbSB0aGUgVzNDIHJlcG9zaXRvcnkuCi1EbyBOT1QgbW9kaWZ5IHRoZXNlIHRlc3RzIGRp
cmVjdGx5IGluIFdlYktpdC4KLUluc3RlYWQsIGNyZWF0ZSBhIHB1bGwgcmVxdWVzdCBvbiB0aGUg
V1BUIGdpdGh1YjoKLQlodHRwczovL2dpdGh1Yi5jb20vdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cwot
Ci1UaGVuIHJ1biB0aGUgVG9vbHMvU2NyaXB0cy9pbXBvcnQtdzNjLXRlc3RzIGluIFdlYktpdCB0
byByZWltcG9ydAotCi1EbyBOT1QgbW9kaWZ5IG9yIHJlbW92ZSB0aGlzIGZpbGUuCi0KLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLQotUHJvcGVydGllcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQot
UHJvcGVydHkgdmFsdWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0KLUxpc3Qgb2YgZmlsZXM6Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL3Rlc3QvcGx1Z2lu
L2Nvdi5yc3QKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vdGVzdC9wbHVnaW4vY292ZXJhZ2UucnN0Ci0v
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9w
YXJ0eS9weXRlc3QvZG9jL2VuL3Rlc3QvcGx1Z2luL2RqYW5nby5yc3QKLS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9k
b2MvZW4vdGVzdC9wbHVnaW4vZmlnbGVhZi5yc3QKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vdGVzdC9w
bHVnaW4vaGVscGNvbmZpZy5yc3QKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vdGVzdC9wbHVnaW4vaW5k
ZXgucnN0Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL3Rlc3QvcGx1Z2luL2xpbmtzLnJzdAotL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkv
cHl0ZXN0L2RvYy9lbi90ZXN0L3BsdWdpbi9ub3NlLnJzdAotL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi90
ZXN0L3BsdWdpbi9vZWpza2l0LnJzdAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi90ZXN0L3BsdWdpbi90
ZXJtaW5hbC5yc3QKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vdGVzdC9wbHVnaW4veGRpc3QucnN0CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vdGVzdC9wbHVnaW4veGRpc3QucnN0IGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0
eS9weXRlc3QvZG9jL2VuL3Rlc3QvcGx1Z2luL3hkaXN0LnJzdApkZWxldGVkIGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggNTA2ZDI0MGFlZTEzYzdkZDMxOWM5MzMxM2NmM2U4ZWY0ZTI2NTIxOS4uMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9k
b2MvZW4vdGVzdC9wbHVnaW4veGRpc3QucnN0CisrKyAvZGV2L251bGwKQEAgLTEsMTcyICswLDAg
QEAKLQotbG9vcCBvbiBmYWlsaW5nIHRlc3RzLCBkaXN0cmlidXRlIHRlc3QgcnVucyB0byBDUFVz
IGFuZCBob3N0cy4KLT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0KLQotLi4gY29udGVudHM6OgotICA6bG9jYWw6Ci0KLVRoZSBg
cHl0ZXN0LXhkaXN0YF8gcGx1Z2luIGV4dGVuZHMgYGBweXRlc3RgYCB3aXRoIHNvbWUgdW5pcXVl
Ci10ZXN0IGV4ZWN1dGlvbiBtb2RlczoKLQotKiBMb29wb25mYWlsOiBydW4geW91ciB0ZXN0cyBy
ZXBlYXRlZGx5IGluIGEgc3VicHJvY2Vzcy4gIEFmdGVyIGVhY2ggcnVuCi0gIGBgcHl0ZXN0YGAg
d2FpdHMgdW50aWwgYSBmaWxlIGluIHlvdXIgcHJvamVjdCBjaGFuZ2VzIGFuZCB0aGVuIHJlLXJ1
bnMgdGhlCi0gIHByZXZpb3VzbHkgZmFpbGluZyB0ZXN0cy4gIFRoaXMgaXMgcmVwZWF0ZWQgdW50
aWwgYWxsIHRlc3RzIHBhc3MgYWZ0ZXIgd2hpY2gKLSAgYWdhaW4gYSBmdWxsIHJ1biBpcyBwZXJm
b3JtZWQuCi0KLSogTG9hZC1iYWxhbmNpbmc6IGlmIHlvdSBoYXZlIG11bHRpcGxlIENQVXMgb3Ig
aG9zdHMgeW91IGNhbiB1c2UKLSAgdGhvc2UgZm9yIGEgY29tYmluZWQgdGVzdCBydW4uICBUaGlz
IGFsbG93cyB0byBzcGVlZCB1cAotICBkZXZlbG9wbWVudCBvciB0byB1c2Ugc3BlY2lhbCByZXNv
dXJjZXMgb2YgcmVtb3RlIG1hY2hpbmVzLgotCi0qIE11bHRpLVBsYXRmb3JtIGNvdmVyYWdlOiB5
b3UgY2FuIHNwZWNpZnkgZGlmZmVyZW50IFB5dGhvbiBpbnRlcnByZXRlcnMKLSAgb3IgZGlmZmVy
ZW50IHBsYXRmb3JtcyBhbmQgcnVuIHRlc3RzIGluIHBhcmFsbGVsIG9uIGFsbCBvZiB0aGVtLgot
Ci1CZWZvcmUgcnVubmluZyB0ZXN0cyByZW1vdGVseSwgYGBweXRlc3RgYCBlZmZpY2llbnRseSBz
eW5jaHJvbml6ZXMgeW91cgotcHJvZ3JhbSBzb3VyY2UgY29kZSB0byB0aGUgcmVtb3RlIHBsYWNl
LiAgQWxsIHRlc3QgcmVzdWx0cwotYXJlIHJlcG9ydGVkIGJhY2sgYW5kIGRpc3BsYXllZCB0byB5
b3VyIGxvY2FsIHRlc3Qgc2Vzc2lvbi4KLVlvdSBtYXkgc3BlY2lmeSBkaWZmZXJlbnQgUHl0aG9u
IHZlcnNpb25zIGFuZCBpbnRlcnByZXRlcnMuCi0KLS4uIF9gcHl0ZXN0LXhkaXN0YDogaHR0cDov
L3B5cGkucHl0aG9uLm9yZy9weXBpL3B5dGVzdC14ZGlzdAotCi1Vc2FnZSBleGFtcGxlcwotLS0t
LS0tLS0tLS0tLS0tLS0tLS0tCi0KLVNwZWVkIHVwIHRlc3QgcnVucyBieSBzZW5kaW5nIHRlc3Rz
IHRvIG11bHRpcGxlIENQVXMKLSsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr
KysrKysrKysrKysrKysrKysrKysrCi0KLVRvIHNlbmQgdGVzdHMgdG8gbXVsdGlwbGUgQ1BVcywg
dHlwZTo6Ci0KLSAgICBweXRlc3QgLW4gTlVNCi0KLUVzcGVjaWFsbHkgZm9yIGxvbmdlciBydW5u
aW5nIHRlc3RzIG9yIHRlc3RzIHJlcXVpcmluZwotYSBsb3Qgb2YgSU8gdGhpcyBjYW4gbGVhZCB0
byBjb25zaWRlcmFibGUgc3BlZWQgdXBzLgotCi0KLVJ1bm5pbmcgdGVzdHMgaW4gYSBQeXRob24g
c3VicHJvY2VzcwotKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr
KysrKysrKysrKysrKysKLQotVG8gaW5zdGFudGlhdGUgYSBweXRob24yLjQgc3ViIHByb2Nlc3Mg
YW5kIHNlbmQgdGVzdHMgdG8gaXQsIHlvdSBtYXkgdHlwZTo6Ci0KLSAgICBweXRlc3QgLWQgLS10
eCBwb3Blbi8vcHl0aG9uPXB5dGhvbjIuNAotCi1UaGlzIHdpbGwgc3RhcnQgYSBzdWJwcm9jZXNz
IHdoaWNoIGlzIHJ1biB3aXRoIHRoZSAicHl0aG9uMi40IgotUHl0aG9uIGludGVycHJldGVyLCBm
b3VuZCBpbiB5b3VyIHN5c3RlbSBiaW5hcnkgbG9va3VwIHBhdGguCi0KLUlmIHlvdSBwcmVmaXgg
dGhlIC0tdHggb3B0aW9uIHZhbHVlIGxpa2UgdGhpczo6Ci0KLSAgICAtLXR4IDMqcG9wZW4vL3B5
dGhvbj1weXRob24yLjQKLQotdGhlbiB0aHJlZSBzdWJwcm9jZXNzZXMgd291bGQgYmUgY3JlYXRl
ZCBhbmQgdGVzdHMKLXdpbGwgYmUgbG9hZC1iYWxhbmNlZCBhY3Jvc3MgdGhlc2UgdGhyZWUgcHJv
Y2Vzc2VzLgotCi0KLVNlbmRpbmcgdGVzdHMgdG8gcmVtb3RlIFNTSCBhY2NvdW50cwotKysrKysr
KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKLQot
U3VwcG9zZSB5b3UgaGF2ZSBhIHBhY2thZ2UgYGBteXBrZ2BgIHdoaWNoIGNvbnRhaW5zIHNvbWUK
LXRlc3RzIHRoYXQgeW91IGNhbiBzdWNjZXNzZnVsbHkgcnVuIGxvY2FsbHkuIEFuZCB5b3UKLWhh
dmUgYSBzc2gtcmVhY2hhYmxlIG1hY2hpbmUgYGBteWhvc3RgYC4gIFRoZW4KLXlvdSBjYW4gYWQt
aG9jIGRpc3RyaWJ1dGUgeW91ciB0ZXN0cyBieSB0eXBpbmc6OgotCi0gICAgcHl0ZXN0IC1kIC0t
dHggc3NoPW15aG9zdHBvcGVuIC0tcnN5bmNkaXIgbXlwa2cgbXlwa2cKLQotVGhpcyB3aWxsIHN5
bmNocm9uaXplIHlvdXIgYGBteXBrZ2BgIHBhY2thZ2UgZGlyZWN0b3J5Ci10byBhIHJlbW90ZSBz
c2ggYWNjb3VudCBhbmQgdGhlbiBsb2NhbGx5IGNvbGxlY3QgdGVzdHMKLWFuZCBzZW5kIHRoZW0g
dG8gcmVtb3RlIHBsYWNlcyBmb3IgZXhlY3V0aW9uLgotCi1Zb3UgY2FuIHNwZWNpZnkgbXVsdGlw
bGUgYGAtLXJzeW5jZGlyYGAgZGlyZWN0b3JpZXMKLXRvIGJlIHNlbnQgdG8gdGhlIHJlbW90ZSBz
aWRlLgotCi0qKk5PVEU6KiogRm9yIGBgcHl0ZXN0YGAgdG8gY29sbGVjdCBhbmQgc2VuZCB0ZXN0
cyBjb3JyZWN0bHkKLXlvdSBub3Qgb25seSBuZWVkIHRvIG1ha2Ugc3VyZSBhbGwgY29kZSBhbmQg
dGVzdHMKLWRpcmVjdG9yaWVzIGFyZSByc3luY2VkLCBidXQgdGhhdCBhbnkgdGVzdCAoc3ViKSBk
aXJlY3RvcnkKLWFsc28gaGFzIGFuIGBgX19pbml0X18ucHlgYCBmaWxlIGJlY2F1c2UgaW50ZXJu
YWxseQotYGBweXRlc3RgYCByZWZlcmVuY2VzIHRlc3RzIHVzaW5nIHRoZWlyIGZ1bGx5IHF1YWxp
ZmllZCBweXRob24KLW1vZHVsZSBwYXRoLiAgKipZb3Ugd2lsbCBvdGhlcndpc2UgZ2V0IHN0cmFu
Z2UgZXJyb3JzKioKLWR1cmluZyBzZXR1cCBvZiB0aGUgcmVtb3RlIHNpZGUuCi0KLVNlbmRpbmcg
dGVzdHMgdG8gcmVtb3RlIFNvY2tldCBTZXJ2ZXJzCi0rKysrKysrKysrKysrKysrKysrKysrKysr
KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKwotCi1Eb3dubG9hZCB0aGUgc2luZ2xl
LW1vZHVsZSBgc29ja2V0c2VydmVyLnB5YF8gUHl0aG9uIHByb2dyYW0KLWFuZCBydW4gaXQgbGlr
ZSB0aGlzOjoKLQotICAgIHB5dGhvbiBzb2NrZXRzZXJ2ZXIucHkKLQotSXQgd2lsbCB0ZWxsIHlv
dSB0aGF0IGl0IHN0YXJ0cyBsaXN0ZW5pbmcgb24gdGhlIGRlZmF1bHQKLXBvcnQuICBZb3UgY2Fu
IG5vdyBvbiB5b3VyIGhvbWUgbWFjaGluZSBzcGVjaWZ5IHRoaXMKLW5ldyBzb2NrZXQgaG9zdCB3
aXRoIHNvbWV0aGluZyBsaWtlIHRoaXM6OgotCi0gICAgcHl0ZXN0IC1kIC0tdHggc29ja2V0PTE5
Mi4xNjguMS4xMDI6ODg4OCAtLXJzeW5jZGlyIG15cGtnIG15cGtnCi0KLQotLi4gX2BhdG9uY2Vg
OgotCi1SdW5uaW5nIHRlc3RzIG9uIG1hbnkgcGxhdGZvcm1zIGF0IG9uY2UKLSsrKysrKysrKysr
KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCi0KLVRoZSBi
YXNpYyBjb21tYW5kIHRvIHJ1biB0ZXN0cyBvbiBtdWx0aXBsZSBwbGF0Zm9ybXMgaXM6OgotCi0g
ICAgcHl0ZXN0IC0tZGlzdD1lYWNoIC0tdHg9c3BlYzEgLS10eD1zcGVjMgotCi1JZiB5b3Ugc3Bl
Y2lmeSBhIHdpbmRvd3MgaG9zdCwgYW4gT1NYIGhvc3QgYW5kIGEgTGludXgKLWVudmlyb25tZW50
IHRoaXMgY29tbWFuZCB3aWxsIHNlbmQgZWFjaCB0ZXN0cyB0byBhbGwKLXBsYXRmb3JtcyAtIGFu
ZCByZXBvcnQgYmFjayBmYWlsdXJlcyBmcm9tIGFsbCBwbGF0Zm9ybXMKLWF0IG9uY2UuICAgVGhl
IHNwZWNpZmljYXRpb25zIHN0cmluZ3MgdXNlIHRoZSBgeHNwZWMgc3ludGF4YF8uCi0KLS4uIF9g
eHNwZWMgc3ludGF4YDogaHR0cDovL2NvZGVzcGVhay5uZXQvZXhlY25ldC90cnVuay9iYXNpY3Mu
aHRtbCN4c3BlYwotCi0uLiBfYHNvY2tldHNlcnZlci5weWA6IGh0dHA6Ly9jb2Rlc3BlYWsubmV0
L3N2bi9weS9kaXN0L3B5L2V4ZWNuZXQvc2NyaXB0L3NvY2tldHNlcnZlci5weQotCi0uLiBfYGV4
ZWNuZXRgOiBodHRwOi8vY29kZXNwZWFrLm5ldC9leGVjbmV0Ci0KLVNwZWNpZnlpbmcgdGVzdCBl
eGVjIGVudmlyb25tZW50cyBpbiBhIGNvbmZ0ZXN0LnB5Ci0rKysrKysrKysrKysrKysrKysrKysr
KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKwotCi1JbnN0ZWFkIG9mIHNwZWNp
ZnlpbmcgY29tbWFuZCBsaW5lIG9wdGlvbnMsIHlvdSBjYW4KLXB1dCBvcHRpb25zIHZhbHVlcyBp
biBhIGBgY29uZnRlc3QucHlgYCBmaWxlIGxpa2UgdGhpczo6Ci0KLSAgICBvcHRpb25fdHggPSBb
J3NzaD1teWhvc3QvL3B5dGhvbj1weXRob24yLjcnLCAncG9wZW4vL3B5dGhvbj1weXRob24yLjcn
XQotICAgIG9wdGlvbl9kaXN0ID0gVHJ1ZQotCi1BbnkgY29tbWFuZGxpbmUgYGAtLXR4YGAgc3Bl
Y2lmaWNhdGlvbnMgIHdpbGwgYWRkIHRvIHRoZSBsaXN0IG9mCi1hdmFpbGFibGUgZXhlY3V0aW9u
IGVudmlyb25tZW50cy4KLQotU3BlY2lmeWluZyAicnN5bmMiIGRpcnMgaW4gYSBjb25mdGVzdC5w
eQotKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr
KysrKysKLQotSW4geW91ciBgYG15cGtnL2NvbmZ0ZXN0LnB5YGAgeW91IG1heSBzcGVjaWZ5IGRp
cmVjdG9yaWVzIHRvIHN5bmNocm9uaXNlCi1vciB0byBleGNsdWRlOjoKLQotICAgIHJzeW5jZGly
cyA9IFsnLicsICcuLi9wbHVnaW5zJ10KLSAgICByc3luY2lnbm9yZSA9IFsnX2NhY2hlJ10KLQot
VGhlc2UgZGlyZWN0b3J5IHNwZWNpZmljYXRpb25zIGFyZSByZWxhdGl2ZSB0byB0aGUgZGlyZWN0
b3J5Ci13aGVyZSB0aGUgYGBjb25mdGVzdC5weWBgIGlzIGZvdW5kLgotCi1jb21tYW5kIGxpbmUg
b3B0aW9ucwotLS0tLS0tLS0tLS0tLS0tLS0tLS0KLQotCi1gYC1mLCAtLWxvb3BvbmZhaWxgYAot
ICAgIHJ1biB0ZXN0cyBpbiBzdWJwcm9jZXNzLCB3YWl0IGZvciBtb2RpZmllZCBmaWxlcyBhbmQg
cmUtcnVuIGZhaWxpbmcgdGVzdCBzZXQgdW50aWwgYWxsIHBhc3MuCi1gYC1uIG51bXByb2Nlc3Nl
c2BgCi0gICAgc2hvcnRjdXQgZm9yICctLWRpc3Q9bG9hZCAtLXR4PU5VTSpwb3BlbicKLWBgLS1i
b3hlZGBgCi0gICAgYm94IGVhY2ggdGVzdCBydW4gaW4gYSBzZXBhcmF0ZSBwcm9jZXNzICh1bml4
KQotYGAtLWRpc3Q9ZGlzdG1vZGVgYAotICAgIHNldCBtb2RlIGZvciBkaXN0cmlidXRpbmcgdGVz
dHMgdG8gZXhlYyBlbnZpcm9ubWVudHMuCi0KLSAgICBlYWNoOiBzZW5kIGVhY2ggdGVzdCB0byBl
YWNoIGF2YWlsYWJsZSBlbnZpcm9ubWVudC4KLQotICAgIGxvYWQ6IHNlbmQgZWFjaCB0ZXN0IHRv
IG9uZSBhdmFpbGFibGUgZW52aXJvbm1lbnQgc28gaXQgaXMgcnVuIG9ubHkgb25jZS4KLQotICAg
IChkZWZhdWx0KSBubzogcnVuIHRlc3RzIGlucHJvY2VzcywgZG9uJ3QgZGlzdHJpYnV0ZS4KLWBg
LS10eD14c3BlY2BgCi0gICAgYWRkIGEgdGVzdCBleGVjdXRpb24gZW52aXJvbm1lbnQuIHNvbWUg
ZXhhbXBsZXM6IC0tdHggcG9wZW4vL3B5dGhvbj1weXRob24yLjcgLS10eCBzb2NrZXQ9MTkyLjE2
OC4xLjEwMjo4ODg4IC0tdHggc3NoPXVzZXJAY29kZXNwZWFrLm5ldC8vY2hkaXI9dGVzdGNhY2hl
Ci1gYC1kYGAKLSAgICBsb2FkLWJhbGFuY2UgdGVzdHMuICBzaG9ydGN1dCBmb3IgJy0tZGlzdD1s
b2FkJwotYGAtLXJzeW5jZGlyPWRpcjFgYAotICAgIGFkZCBkaXJlY3RvcnkgZm9yIHJzeW5jaW5n
IHRvIHJlbW90ZSB0eCBub2Rlcy4KLQotLi4gaW5jbHVkZTo6IGxpbmtzLnR4dApkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS9weXRlc3QvZG9jL2VuL3Rlc3QvdGVzdC5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2Vu
L3Rlc3QvdGVzdC5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3ZDAwZjcxOGE2
NzcyNGNmMGFmOTA1NDg0YzE4Y2M2YjVlYjI1MDNiLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi90ZXN0L3Rlc3QuaHRtbAor
KysgL2Rldi9udWxsCkBAIC0xLDE4ICswLDAgQEAKLTxodG1sPgotICAgIDxoZWFkPgotICAgICAg
ICA8bWV0YSBodHRwLWVxdWl2PSJyZWZyZXNoIiBjb250ZW50PSIgMSA7IFVSTD1pbmRleC5odG1s
IiAvPgotICAgIDwvaGVhZD4KLQotICAgIDxib2R5PgotPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFz
Y3JpcHQiPgotdmFyIGdhSnNIb3N0ID0gKCgiaHR0cHM6IiA9PSBkb2N1bWVudC5sb2NhdGlvbi5w
cm90b2NvbCkgPyAiaHR0cHM6Ly9zc2wuIiA6ICJodHRwOi8vd3d3LiIpOwotZG9jdW1lbnQud3Jp
dGUodW5lc2NhcGUoIiUzQ3NjcmlwdCBzcmM9JyIgKyBnYUpzSG9zdCArICJnb29nbGUtYW5hbHl0
aWNzLmNvbS9nYS5qcycgdHlwZT0ndGV4dC9qYXZhc2NyaXB0JyUzRSUzQy9zY3JpcHQlM0UiKSk7
Ci08L3NjcmlwdD4KLTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KLXRyeSB7Ci12YXIg
cGFnZVRyYWNrZXIgPSBfZ2F0Ll9nZXRUcmFja2VyKCJVQS03NTk3Mjc0LTMiKTsKLXBhZ2VUcmFj
a2VyLl90cmFja1BhZ2V2aWV3KCk7Ci19IGNhdGNoKGVycikge308L3NjcmlwdD4KLTwvYm9keT4K
LTwvaHRtbD4KLSAgICAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi90ZXN0L3czYy1p
bXBvcnQubG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL3Rlc3QvdzNjLWltcG9ydC5sb2cKZGVsZXRl
ZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDhhYjkzZjVmN2NmYTBlMjcwYjZjZDU1MmI3YTE2OWE3
MzdiOTkyZjYuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9w
YXJ0eS9weXRlc3QvZG9jL2VuL3Rlc3QvdzNjLWltcG9ydC5sb2cKKysrIC9kZXYvbnVsbApAQCAt
MSwyMyArMCwwIEBACi1UaGUgdGVzdHMgaW4gdGhpcyBkaXJlY3Rvcnkgd2VyZSBpbXBvcnRlZCBm
cm9tIHRoZSBXM0MgcmVwb3NpdG9yeS4KLURvIE5PVCBtb2RpZnkgdGhlc2UgdGVzdHMgZGlyZWN0
bHkgaW4gV2ViS2l0LgotSW5zdGVhZCwgY3JlYXRlIGEgcHVsbCByZXF1ZXN0IG9uIHRoZSBXUFQg
Z2l0aHViOgotCWh0dHBzOi8vZ2l0aHViLmNvbS93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzCi0KLVRo
ZW4gcnVuIHRoZSBUb29scy9TY3JpcHRzL2ltcG9ydC13M2MtdGVzdHMgaW4gV2ViS2l0IHRvIHJl
aW1wb3J0Ci0KLURvIE5PVCBtb2RpZnkgb3IgcmVtb3ZlIHRoaXMgZmlsZS4KLQotLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tCi1Qcm9wZXJ0aWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi1Qcm9w
ZXJ0eSB2YWx1ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLQotTGlzdCBvZiBmaWxlczoKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vdGVzdC9hdHRpYy5yc3QK
LS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJk
X3BhcnR5L3B5dGVzdC9kb2MvZW4vdGVzdC9jb25maWcuaHRtbAotL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9l
bi90ZXN0L2Rpc3QuaHRtbAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi90ZXN0L2V4dGVuZC5odG1sCi0v
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9w
YXJ0eS9weXRlc3QvZG9jL2VuL3Rlc3QvaW5kZXgucnN0Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL3Rl
c3QvbWlzc2lvbi5yc3QKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vdGVzdC90ZXN0Lmh0bWwKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
dGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi93M2MtaW1wb3J0LmxvZyBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2Rv
Yy9lbi93M2MtaW1wb3J0LmxvZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZTdmMWY1
N2E0ODdmM2QyZDc5OGNmMGQ0ZWZiM2Y3ODQxNjZlYWZlOS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vdzNjLWltcG9ydC5s
b2cKKysrIC9kZXYvbnVsbApAQCAtMSw2NiArMCwwIEBACi1UaGUgdGVzdHMgaW4gdGhpcyBkaXJl
Y3Rvcnkgd2VyZSBpbXBvcnRlZCBmcm9tIHRoZSBXM0MgcmVwb3NpdG9yeS4KLURvIE5PVCBtb2Rp
ZnkgdGhlc2UgdGVzdHMgZGlyZWN0bHkgaW4gV2ViS2l0LgotSW5zdGVhZCwgY3JlYXRlIGEgcHVs
bCByZXF1ZXN0IG9uIHRoZSBXUFQgZ2l0aHViOgotCWh0dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxh
dGZvcm0tdGVzdHMvd3B0Ci0KLVRoZW4gcnVuIHRoZSBUb29scy9TY3JpcHRzL2ltcG9ydC13M2Mt
dGVzdHMgaW4gV2ViS2l0IHRvIHJlaW1wb3J0Ci0KLURvIE5PVCBtb2RpZnkgb3IgcmVtb3ZlIHRo
aXMgZmlsZS4KLQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1Qcm9wZXJ0aWVzIHJlcXVpcmluZyB2ZW5kb3Ig
cHJlZml4ZXM6Ci1Ob25lCi1Qcm9wZXJ0eSB2YWx1ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhl
czoKLU5vbmUKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotTGlzdCBvZiBmaWxlczoKLS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9k
b2MvZW4vTWFrZWZpbGUKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vYWRvcHQucnN0Ci0vTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRl
c3QvZG9jL2VuL2Fzc2VydC5yc3QKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vYmFja3dhcmRzLWNvbXBh
dGliaWxpdHkucnN0Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2Jhc2gtY29tcGxldGlvbi5yc3QKLS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3Bh
cnR5L3B5dGVzdC9kb2MvZW4vYnVpbHRpbi5yc3QKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vY2FjaGUu
cnN0Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90
aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2NhcHR1cmUucnN0Ci0vTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2Vu
L2NoYW5nZWxvZy5yc3QKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vY29uZi5weQotL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0
L2RvYy9lbi9jb25mdGVzdC5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9jb250YWN0LnJzdAotL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFy
dHkvcHl0ZXN0L2RvYy9lbi9jb250ZW50cy5yc3QKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vY29udHJp
YnV0aW5nLnJzdAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9jdXN0b21pemUucnN0Ci0vTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRl
c3QvZG9jL2VuL2RldmVsb3BtZW50X2d1aWRlLnJzdAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9kb2N0
ZXN0LnJzdAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9leGlzdGluZ3Rlc3RzdWl0ZS5yc3QKLS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5
L3B5dGVzdC9kb2MvZW4vZmFxLnJzdAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9maXh0dXJlLnJzdAot
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRf
cGFydHkvcHl0ZXN0L2RvYy9lbi9mdW5jYXJnX2NvbXBhcmUucnN0Ci0vTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9j
L2VuL2Z1bmNhcmdzLnJzdAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9nZXR0aW5nLXN0YXJ0ZWQucnN0
Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2dvb2RwcmFjdGljZXMucnN0Ci0vTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9j
L2VuL2hpc3RvcmljYWwtbm90ZXMucnN0Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9jL2VuL2luZGV4LnJzdAot
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRf
cGFydHkvcHl0ZXN0L2RvYy9lbi9saWNlbnNlLnJzdAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9saW5r
cy5pbmMKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vbG9nZ2luZy5yc3QKLS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2Mv
ZW4vbWFyay5yc3QKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vbW9ua2V5cGF0Y2gucnN0Ci0vTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9w
eXRlc3QvZG9jL2VuL25hbWluZzIwLnJzdAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9ub3NlLnJzdAot
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRf
cGFydHkvcHl0ZXN0L2RvYy9lbi9wYXJhbWV0cml6ZS5yc3QKLS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4v
cGx1Z2lucy5yc3QKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vcHJvamVjdHMucnN0Ci0vTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRl
c3QvZG9jL2VuL3B5dGVzdC5pbmkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vcHl0aG9ucGF0aC5yc3QK
LS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJk
X3BhcnR5L3B5dGVzdC9kb2MvZW4vcmVjd2Fybi5yc3QKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vcmVm
ZXJlbmNlLnJzdAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi9yZXF1aXJlbWVudHMudHh0Ci0vTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9w
eXRlc3QvZG9jL2VuL3NraXBwaW5nLnJzdAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi90YWxrcy5yc3QK
LS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJk
X3BhcnR5L3B5dGVzdC9kb2MvZW4vdG1wZGlyLnJzdAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi91bml0
dGVzdC5yc3QKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9kb2MvZW4vdXNhZ2UucnN0Ci0vTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZG9j
L2VuL3dhcm5pbmdzLnJzdAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9lbi93cml0aW5nX3BsdWdpbnMucnN0
Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS9weXRlc3QvZG9jL2VuL3h1bml0X3NldHVwLnJzdAotL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2RvYy9l
bi95aWVsZGZpeHR1cmUucnN0CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9leHRyYS9zZXR1cC1w
eS50ZXN0L3czYy1pbXBvcnQubG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvZXh0cmEvc2V0dXAtcHkudGVzdC93
M2MtaW1wb3J0LmxvZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNWRjOGI4MzYwMTdj
MjA1NmYwODk0OTY2ZDgwYmVjYWFhZWQzMWQ5NC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9leHRyYS9zZXR1cC1weS50ZXN0L3czYy1p
bXBvcnQubG9nCisrKyAvZGV2L251bGwKQEAgLTEsMTcgKzAsMCBAQAotVGhlIHRlc3RzIGluIHRo
aXMgZGlyZWN0b3J5IHdlcmUgaW1wb3J0ZWQgZnJvbSB0aGUgVzNDIHJlcG9zaXRvcnkuCi1EbyBO
T1QgbW9kaWZ5IHRoZXNlIHRlc3RzIGRpcmVjdGx5IGluIFdlYktpdC4KLUluc3RlYWQsIGNyZWF0
ZSBhIHB1bGwgcmVxdWVzdCBvbiB0aGUgV1BUIGdpdGh1YjoKLQlodHRwczovL2dpdGh1Yi5jb20v
d2ViLXBsYXRmb3JtLXRlc3RzL3dwdAotCi1UaGVuIHJ1biB0aGUgVG9vbHMvU2NyaXB0cy9pbXBv
cnQtdzNjLXRlc3RzIGluIFdlYktpdCB0byByZWltcG9ydAotCi1EbyBOT1QgbW9kaWZ5IG9yIHJl
bW92ZSB0aGlzIGZpbGUuCi0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotUHJvcGVydGllcyByZXF1aXJpbmcg
dmVuZG9yIHByZWZpeGVzOgotTm9uZQotUHJvcGVydHkgdmFsdWVzIHJlcXVpcmluZyB2ZW5kb3Ig
cHJlZml4ZXM6Ci1Ob25lCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLUxpc3Qgb2YgZmlsZXM6Ci0vTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9w
eXRlc3QvZXh0cmEvc2V0dXAtcHkudGVzdC9zZXR1cC5weQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRl
c3QvZXh0cmEvdzNjLWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9leHRyYS93M2MtaW1wb3J0Lmxv
ZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNGUxNWQzZmViMTYwMGNkYTJhMzQ5Zjkz
OWZjYzM1ODhlYmZmZTY3ZC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3RoaXJkX3BhcnR5L3B5dGVzdC9leHRyYS93M2MtaW1wb3J0LmxvZworKysgL2Rldi9udWxsCkBA
IC0xLDE3ICswLDAgQEAKLVRoZSB0ZXN0cyBpbiB0aGlzIGRpcmVjdG9yeSB3ZXJlIGltcG9ydGVk
IGZyb20gdGhlIFczQyByZXBvc2l0b3J5LgotRG8gTk9UIG1vZGlmeSB0aGVzZSB0ZXN0cyBkaXJl
Y3RseSBpbiBXZWJLaXQuCi1JbnN0ZWFkLCBjcmVhdGUgYSBwdWxsIHJlcXVlc3Qgb24gdGhlIFdQ
VCBnaXRodWI6Ci0JaHR0cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQKLQot
VGhlbiBydW4gdGhlIFRvb2xzL1NjcmlwdHMvaW1wb3J0LXczYy10ZXN0cyBpbiBXZWJLaXQgdG8g
cmVpbXBvcnQKLQotRG8gTk9UIG1vZGlmeSBvciByZW1vdmUgdGhpcyBmaWxlLgotCi0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0KLVByb3BlcnRpZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLVBy
b3BlcnR5IHZhbHVlcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tCi1MaXN0IG9mIGZpbGVzOgotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L2V4dHJhL2dldF9pc3N1ZXMucHkK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3NjcmlwdHMvdzNjLWltcG9ydC5sb2cgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5
dGVzdC9zY3JpcHRzL3czYy1pbXBvcnQubG9nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCA2MTE0NjNlY2RlNDU0YWM0NGFmNzA4OTYxOWI1MzljYjc2ZGNlYTk4Li4wMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3NjcmlwdHMvdzNj
LWltcG9ydC5sb2cKKysrIC9kZXYvbnVsbApAQCAtMSwxOCArMCwwIEBACi1UaGUgdGVzdHMgaW4g
dGhpcyBkaXJlY3Rvcnkgd2VyZSBpbXBvcnRlZCBmcm9tIHRoZSBXM0MgcmVwb3NpdG9yeS4KLURv
IE5PVCBtb2RpZnkgdGhlc2UgdGVzdHMgZGlyZWN0bHkgaW4gV2ViS2l0LgotSW5zdGVhZCwgY3Jl
YXRlIGEgcHVsbCByZXF1ZXN0IG9uIHRoZSBXUFQgZ2l0aHViOgotCWh0dHBzOi8vZ2l0aHViLmNv
bS93ZWItcGxhdGZvcm0tdGVzdHMvd3B0Ci0KLVRoZW4gcnVuIHRoZSBUb29scy9TY3JpcHRzL2lt
cG9ydC13M2MtdGVzdHMgaW4gV2ViS2l0IHRvIHJlaW1wb3J0Ci0KLURvIE5PVCBtb2RpZnkgb3Ig
cmVtb3ZlIHRoaXMgZmlsZS4KLQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1Qcm9wZXJ0aWVzIHJlcXVpcmlu
ZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi1Qcm9wZXJ0eSB2YWx1ZXMgcmVxdWlyaW5nIHZlbmRv
ciBwcmVmaXhlczoKLU5vbmUKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotTGlzdCBvZiBmaWxlczoKLS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5
L3B5dGVzdC9zY3JpcHRzL2NhbGwtdG94LmJhdAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3NjcmlwdHMvaW5zdGFs
bC1weXB5LmJhdApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3Qvc3JjL19weXRlc3QvX2NvZGUvdzNj
LWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9zcmMvX3B5dGVzdC9fY29kZS93M2MtaW1wb3J0Lmxv
ZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYTBiNjBjYjM3NjQ3ZmNlMjNkMTJhZDU4
ODFhMDYzMzFkNDIyOGIxYi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3RoaXJkX3BhcnR5L3B5dGVzdC9zcmMvX3B5dGVzdC9fY29kZS93M2MtaW1wb3J0LmxvZworKysg
L2Rldi9udWxsCkBAIC0xLDIwICswLDAgQEAKLVRoZSB0ZXN0cyBpbiB0aGlzIGRpcmVjdG9yeSB3
ZXJlIGltcG9ydGVkIGZyb20gdGhlIFczQyByZXBvc2l0b3J5LgotRG8gTk9UIG1vZGlmeSB0aGVz
ZSB0ZXN0cyBkaXJlY3RseSBpbiBXZWJLaXQuCi1JbnN0ZWFkLCBjcmVhdGUgYSBwdWxsIHJlcXVl
c3Qgb24gdGhlIFdQVCBnaXRodWI6Ci0JaHR0cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9ybS10
ZXN0cy93cHQKLQotVGhlbiBydW4gdGhlIFRvb2xzL1NjcmlwdHMvaW1wb3J0LXczYy10ZXN0cyBp
biBXZWJLaXQgdG8gcmVpbXBvcnQKLQotRG8gTk9UIG1vZGlmeSBvciByZW1vdmUgdGhpcyBmaWxl
LgotCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0KLVByb3BlcnRpZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhl
czoKLU5vbmUKLVByb3BlcnR5IHZhbHVlcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9u
ZQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tCi1MaXN0IG9mIGZpbGVzOgotL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3NyYy9fcHl0
ZXN0L19jb2RlL19faW5pdF9fLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3Qvc3JjL19weXRlc3QvX2NvZGUvX3B5
MnRyYWNlYmFjay5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3NyYy9fcHl0ZXN0L19jb2RlL2NvZGUucHkKLS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3Bh
cnR5L3B5dGVzdC9zcmMvX3B5dGVzdC9fY29kZS9zb3VyY2UucHkKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkv
cHl0ZXN0L3NyYy9fcHl0ZXN0L2Fzc2VydGlvbi93M2MtaW1wb3J0LmxvZyBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0
L3NyYy9fcHl0ZXN0L2Fzc2VydGlvbi93M2MtaW1wb3J0LmxvZwpkZWxldGVkIGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggYzVkYjNiYTJlZTE5YjU5OTQ2YmNiYTBkNzNjZWE4MDNkMmJmZjk0ZS4uMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9z
cmMvX3B5dGVzdC9hc3NlcnRpb24vdzNjLWltcG9ydC5sb2cKKysrIC9kZXYvbnVsbApAQCAtMSwy
MCArMCwwIEBACi1UaGUgdGVzdHMgaW4gdGhpcyBkaXJlY3Rvcnkgd2VyZSBpbXBvcnRlZCBmcm9t
IHRoZSBXM0MgcmVwb3NpdG9yeS4KLURvIE5PVCBtb2RpZnkgdGhlc2UgdGVzdHMgZGlyZWN0bHkg
aW4gV2ViS2l0LgotSW5zdGVhZCwgY3JlYXRlIGEgcHVsbCByZXF1ZXN0IG9uIHRoZSBXUFQgZ2l0
aHViOgotCWh0dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxhdGZvcm0tdGVzdHMvd3B0Ci0KLVRoZW4g
cnVuIHRoZSBUb29scy9TY3JpcHRzL2ltcG9ydC13M2MtdGVzdHMgaW4gV2ViS2l0IHRvIHJlaW1w
b3J0Ci0KLURvIE5PVCBtb2RpZnkgb3IgcmVtb3ZlIHRoaXMgZmlsZS4KLQotLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tCi1Qcm9wZXJ0aWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi1Qcm9wZXJ0
eSB2YWx1ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LQotTGlzdCBvZiBmaWxlczoKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9zcmMvX3B5dGVzdC9hc3NlcnRpb24vX19p
bml0X18ucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9zcmMvX3B5dGVzdC9hc3NlcnRpb24vcmV3cml0ZS5weQot
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRf
cGFydHkvcHl0ZXN0L3NyYy9fcHl0ZXN0L2Fzc2VydGlvbi90cnVuY2F0ZS5weQotL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0
ZXN0L3NyYy9fcHl0ZXN0L2Fzc2VydGlvbi91dGlsLnB5CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVz
dC9zcmMvX3B5dGVzdC9jYWNoZXByb3ZpZGVyLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3Qvc3JjL19weXRlc3Qv
Y2FjaGVwcm92aWRlci5weQpvbGQgbW9kZSAxMDA2NDQKbmV3IG1vZGUgMTAwNzU1CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3Ro
aXJkX3BhcnR5L3B5dGVzdC9zcmMvX3B5dGVzdC9jb25maWcvdzNjLWltcG9ydC5sb2cgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5
L3B5dGVzdC9zcmMvX3B5dGVzdC9jb25maWcvdzNjLWltcG9ydC5sb2cKZGVsZXRlZCBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDRmYmUxMWRhNTI3OTI5YTlkM2Y4YzU0MTgxYmM3ZWMyZTczNzE1NTMu
LjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRl
c3Qvc3JjL19weXRlc3QvY29uZmlnL3czYy1pbXBvcnQubG9nCisrKyAvZGV2L251bGwKQEAgLTEs
MjAgKzAsMCBAQAotVGhlIHRlc3RzIGluIHRoaXMgZGlyZWN0b3J5IHdlcmUgaW1wb3J0ZWQgZnJv
bSB0aGUgVzNDIHJlcG9zaXRvcnkuCi1EbyBOT1QgbW9kaWZ5IHRoZXNlIHRlc3RzIGRpcmVjdGx5
IGluIFdlYktpdC4KLUluc3RlYWQsIGNyZWF0ZSBhIHB1bGwgcmVxdWVzdCBvbiB0aGUgV1BUIGdp
dGh1YjoKLQlodHRwczovL2dpdGh1Yi5jb20vd2ViLXBsYXRmb3JtLXRlc3RzL3dwdAotCi1UaGVu
IHJ1biB0aGUgVG9vbHMvU2NyaXB0cy9pbXBvcnQtdzNjLXRlc3RzIGluIFdlYktpdCB0byByZWlt
cG9ydAotCi1EbyBOT1QgbW9kaWZ5IG9yIHJlbW92ZSB0aGlzIGZpbGUuCi0KLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLQotUHJvcGVydGllcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotUHJvcGVy
dHkgdmFsdWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0KLUxpc3Qgb2YgZmlsZXM6Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3Qvc3JjL19weXRlc3QvY29uZmlnL19faW5p
dF9fLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy90aGlyZF9wYXJ0eS9weXRlc3Qvc3JjL19weXRlc3QvY29uZmlnL2FyZ3BhcnNpbmcucHkKLS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3Bh
cnR5L3B5dGVzdC9zcmMvX3B5dGVzdC9jb25maWcvZXhjZXB0aW9ucy5weQotL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0
L3NyYy9fcHl0ZXN0L2NvbmZpZy9maW5kcGF0aHMucHkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0
L3NyYy9fcHl0ZXN0L21hcmsvdzNjLWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9zcmMvX3B5dGVz
dC9tYXJrL3czYy1pbXBvcnQubG9nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzNjEw
YzAxODYwNGQwZTQ4YTk5ODk2MjU0NzJiNGE1OTE3MDJjMGVkLi4wMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3NyYy9fcHl0ZXN0L21hcmsv
dzNjLWltcG9ydC5sb2cKKysrIC9kZXYvbnVsbApAQCAtMSwyMCArMCwwIEBACi1UaGUgdGVzdHMg
aW4gdGhpcyBkaXJlY3Rvcnkgd2VyZSBpbXBvcnRlZCBmcm9tIHRoZSBXM0MgcmVwb3NpdG9yeS4K
LURvIE5PVCBtb2RpZnkgdGhlc2UgdGVzdHMgZGlyZWN0bHkgaW4gV2ViS2l0LgotSW5zdGVhZCwg
Y3JlYXRlIGEgcHVsbCByZXF1ZXN0IG9uIHRoZSBXUFQgZ2l0aHViOgotCWh0dHBzOi8vZ2l0aHVi
LmNvbS93ZWItcGxhdGZvcm0tdGVzdHMvd3B0Ci0KLVRoZW4gcnVuIHRoZSBUb29scy9TY3JpcHRz
L2ltcG9ydC13M2MtdGVzdHMgaW4gV2ViS2l0IHRvIHJlaW1wb3J0Ci0KLURvIE5PVCBtb2RpZnkg
b3IgcmVtb3ZlIHRoaXMgZmlsZS4KLQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1Qcm9wZXJ0aWVzIHJlcXVp
cmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi1Qcm9wZXJ0eSB2YWx1ZXMgcmVxdWlyaW5nIHZl
bmRvciBwcmVmaXhlczoKLU5vbmUKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotTGlzdCBvZiBmaWxlczoKLS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3Bh
cnR5L3B5dGVzdC9zcmMvX3B5dGVzdC9tYXJrL19faW5pdF9fLnB5Ci0vTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3Qvc3Jj
L19weXRlc3QvbWFyay9ldmFsdWF0ZS5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3NyYy9fcHl0ZXN0L21hcmsv
bGVnYWN5LnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy90aGlyZF9wYXJ0eS9weXRlc3Qvc3JjL19weXRlc3QvbWFyay9zdHJ1Y3R1cmVzLnB5CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9zcmMvX3B5dGVzdC93M2MtaW1wb3J0LmxvZyBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkv
cHl0ZXN0L3NyYy9fcHl0ZXN0L3czYy1pbXBvcnQubG9nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCA5YjMyYjk1M2E4YzNiMGY3NTJhZjg1YTcxMzQ4Yzc3NGEzMmI4ZmEwLi4wMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3NyYy9f
cHl0ZXN0L3czYy1pbXBvcnQubG9nCisrKyAvZGV2L251bGwKQEAgLTEsNDkgKzAsMCBAQAotVGhl
IHRlc3RzIGluIHRoaXMgZGlyZWN0b3J5IHdlcmUgaW1wb3J0ZWQgZnJvbSB0aGUgVzNDIHJlcG9z
aXRvcnkuCi1EbyBOT1QgbW9kaWZ5IHRoZXNlIHRlc3RzIGRpcmVjdGx5IGluIFdlYktpdC4KLUlu
c3RlYWQsIGNyZWF0ZSBhIHB1bGwgcmVxdWVzdCBvbiB0aGUgV1BUIGdpdGh1YjoKLQlodHRwczov
L2dpdGh1Yi5jb20vd2ViLXBsYXRmb3JtLXRlc3RzL3dwdAotCi1UaGVuIHJ1biB0aGUgVG9vbHMv
U2NyaXB0cy9pbXBvcnQtdzNjLXRlc3RzIGluIFdlYktpdCB0byByZWltcG9ydAotCi1EbyBOT1Qg
bW9kaWZ5IG9yIHJlbW92ZSB0aGlzIGZpbGUuCi0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotUHJvcGVydGll
cyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotUHJvcGVydHkgdmFsdWVzIHJlcXVp
cmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLUxpc3Qgb2YgZmls
ZXM6Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90
aGlyZF9wYXJ0eS9weXRlc3Qvc3JjL19weXRlc3QvX19pbml0X18ucHkKLS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9z
cmMvX3B5dGVzdC9fYXJnY29tcGxldGUucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9zcmMvX3B5dGVzdC9jYWNo
ZXByb3ZpZGVyLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3Qvc3JjL19weXRlc3QvY2FwdHVyZS5weQotL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkv
cHl0ZXN0L3NyYy9fcHl0ZXN0L2NvbXBhdC5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3NyYy9fcHl0ZXN0L2Rl
YnVnZ2luZy5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3NyYy9fcHl0ZXN0L2RlcHJlY2F0ZWQucHkKLS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5
L3B5dGVzdC9zcmMvX3B5dGVzdC9kb2N0ZXN0LnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3Qvc3JjL19weXRlc3Qv
Zml4dHVyZXMucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9zcmMvX3B5dGVzdC9mcmVlemVfc3VwcG9ydC5weQot
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRf
cGFydHkvcHl0ZXN0L3NyYy9fcHl0ZXN0L2hlbHBjb25maWcucHkKLS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9zcmMv
X3B5dGVzdC9ob29rc3BlYy5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3NyYy9fcHl0ZXN0L2p1bml0eG1sLnB5
Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS9weXRlc3Qvc3JjL19weXRlc3QvbG9nZ2luZy5weQotL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3NyYy9f
cHl0ZXN0L21haW4ucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9zcmMvX3B5dGVzdC9tb25rZXlwYXRjaC5weQot
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRf
cGFydHkvcHl0ZXN0L3NyYy9fcHl0ZXN0L25vZGVzLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3Qvc3JjL19weXRl
c3Qvbm9zZS5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3NyYy9fcHl0ZXN0L291dGNvbWVzLnB5Ci0vTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9w
eXRlc3Qvc3JjL19weXRlc3QvcGFzdGViaW4ucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9zcmMvX3B5dGVzdC9w
eXRlc3Rlci5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3NyYy9fcHl0ZXN0L3B5dGhvbi5weQotL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0
ZXN0L3NyYy9fcHl0ZXN0L3B5dGhvbl9hcGkucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9zcmMvX3B5dGVzdC9y
ZWN3YXJuLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy90aGlyZF9wYXJ0eS9weXRlc3Qvc3JjL19weXRlc3QvcmVzdWx0bG9nLnB5Ci0vTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9w
eXRlc3Qvc3JjL19weXRlc3QvcnVubmVyLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3Qvc3JjL19weXRlc3Qvc2V0
dXBvbmx5LnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy90aGlyZF9wYXJ0eS9weXRlc3Qvc3JjL19weXRlc3Qvc2V0dXBwbGFuLnB5Ci0vTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9w
eXRlc3Qvc3JjL19weXRlc3Qvc2tpcHBpbmcucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9zcmMvX3B5dGVzdC90
ZXJtaW5hbC5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3NyYy9fcHl0ZXN0L3RtcGRpci5weQotL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0
ZXN0L3NyYy9fcHl0ZXN0L3VuaXR0ZXN0LnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3Qvc3JjL19weXRlc3Qvd2Fy
bmluZ3MucHkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3NyYy93M2MtaW1wb3J0LmxvZyBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFy
dHkvcHl0ZXN0L3NyYy93M2MtaW1wb3J0LmxvZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggYWE3MWQzYmE4YWQ4MjkwMzMxMDcwZTZlZWJkYTI4NzkzMTQxNTZiMy4uMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9zcmMvdzNjLWlt
cG9ydC5sb2cKKysrIC9kZXYvbnVsbApAQCAtMSwxNyArMCwwIEBACi1UaGUgdGVzdHMgaW4gdGhp
cyBkaXJlY3Rvcnkgd2VyZSBpbXBvcnRlZCBmcm9tIHRoZSBXM0MgcmVwb3NpdG9yeS4KLURvIE5P
VCBtb2RpZnkgdGhlc2UgdGVzdHMgZGlyZWN0bHkgaW4gV2ViS2l0LgotSW5zdGVhZCwgY3JlYXRl
IGEgcHVsbCByZXF1ZXN0IG9uIHRoZSBXUFQgZ2l0aHViOgotCWh0dHBzOi8vZ2l0aHViLmNvbS93
ZWItcGxhdGZvcm0tdGVzdHMvd3B0Ci0KLVRoZW4gcnVuIHRoZSBUb29scy9TY3JpcHRzL2ltcG9y
dC13M2MtdGVzdHMgaW4gV2ViS2l0IHRvIHJlaW1wb3J0Ci0KLURvIE5PVCBtb2RpZnkgb3IgcmVt
b3ZlIHRoaXMgZmlsZS4KLQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1Qcm9wZXJ0aWVzIHJlcXVpcmluZyB2
ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi1Qcm9wZXJ0eSB2YWx1ZXMgcmVxdWlyaW5nIHZlbmRvciBw
cmVmaXhlczoKLU5vbmUKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotTGlzdCBvZiBmaWxlczoKLS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5
dGVzdC9zcmMvcHl0ZXN0LnB5CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90YXNrcy93M2MtaW1w
b3J0LmxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rhc2tzL3czYy1pbXBvcnQubG9nCmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCBkYWUwODUzZDMyZDgwMDY2ZGY5NDZjMDIzNDFhMWE2OGIxNDVmZDQ3
Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0
ZXN0L3Rhc2tzL3czYy1pbXBvcnQubG9nCisrKyAvZGV2L251bGwKQEAgLTEsMjEgKzAsMCBAQAot
VGhlIHRlc3RzIGluIHRoaXMgZGlyZWN0b3J5IHdlcmUgaW1wb3J0ZWQgZnJvbSB0aGUgVzNDIHJl
cG9zaXRvcnkuCi1EbyBOT1QgbW9kaWZ5IHRoZXNlIHRlc3RzIGRpcmVjdGx5IGluIFdlYktpdC4K
LUluc3RlYWQsIGNyZWF0ZSBhIHB1bGwgcmVxdWVzdCBvbiB0aGUgV1BUIGdpdGh1YjoKLQlodHRw
czovL2dpdGh1Yi5jb20vd2ViLXBsYXRmb3JtLXRlc3RzL3dwdAotCi1UaGVuIHJ1biB0aGUgVG9v
bHMvU2NyaXB0cy9pbXBvcnQtdzNjLXRlc3RzIGluIFdlYktpdCB0byByZWltcG9ydAotCi1EbyBO
T1QgbW9kaWZ5IG9yIHJlbW92ZSB0aGlzIGZpbGUuCi0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotUHJvcGVy
dGllcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotUHJvcGVydHkgdmFsdWVzIHJl
cXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLUxpc3Qgb2Yg
ZmlsZXM6Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy90aGlyZF9wYXJ0eS9weXRlc3QvdGFza3MvX19pbml0X18ucHkKLS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90YXNr
cy9nZW5lcmF0ZS5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rhc2tzL3JlbGVhc2UubWlub3IucnN0Ci0vTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0
eS9weXRlc3QvdGFza3MvcmVsZWFzZS5wYXRjaC5yc3QKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90YXNrcy9yZXF1
aXJlbWVudHMudHh0CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL2NvZGUvdzNjLWlt
cG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL2NvZGUvdzNjLWltcG9ydC5sb2cKZGVsZXRl
ZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGYzYjBmZmQ1ODFmY2EzYTliZDI3MDhjYmJiZjg0Mzc3
M2RmYzJmMzcuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9w
YXJ0eS9weXRlc3QvdGVzdGluZy9jb2RlL3czYy1pbXBvcnQubG9nCisrKyAvZGV2L251bGwKQEAg
LTEsMjAgKzAsMCBAQAotVGhlIHRlc3RzIGluIHRoaXMgZGlyZWN0b3J5IHdlcmUgaW1wb3J0ZWQg
ZnJvbSB0aGUgVzNDIHJlcG9zaXRvcnkuCi1EbyBOT1QgbW9kaWZ5IHRoZXNlIHRlc3RzIGRpcmVj
dGx5IGluIFdlYktpdC4KLUluc3RlYWQsIGNyZWF0ZSBhIHB1bGwgcmVxdWVzdCBvbiB0aGUgV1BU
IGdpdGh1YjoKLQlodHRwczovL2dpdGh1Yi5jb20vd2ViLXBsYXRmb3JtLXRlc3RzL3dwdAotCi1U
aGVuIHJ1biB0aGUgVG9vbHMvU2NyaXB0cy9pbXBvcnQtdzNjLXRlc3RzIGluIFdlYktpdCB0byBy
ZWltcG9ydAotCi1EbyBOT1QgbW9kaWZ5IG9yIHJlbW92ZSB0aGlzIGZpbGUuCi0KLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLQotUHJvcGVydGllcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotUHJv
cGVydHkgdmFsdWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0KLUxpc3Qgb2YgZmlsZXM6Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9jb2RlL3Rlc3RfY29k
ZS5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
dGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvY29kZS90ZXN0X2V4Y2luZm8ucHkKLS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5
dGVzdC90ZXN0aW5nL2NvZGUvdGVzdF9zb3VyY2UucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL2Nv
ZGUvdGVzdF9zb3VyY2VfbXVsdGlsaW5lX2Jsb2NrLnB5CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVz
dC90ZXN0aW5nL2ZyZWV6ZS8uZ2l0aWdub3JlIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9mcmVlemUv
LmdpdGlnbm9yZQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iNTMzMTkwODcyNDg1NzQyZDBmMDc3MDkyMWU3N2U4ZTdi
OGI1ZWQwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9mcmVlemUvLmdp
dGlnbm9yZQpAQCAtMCwwICsxLDMgQEAKK2J1aWxkLworZGlzdC8KKyouc3BlYwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9mcmVlemUvdGVzdHMvdzNjLWltcG9ydC5sb2cgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5
L3B5dGVzdC90ZXN0aW5nL2ZyZWV6ZS90ZXN0cy93M2MtaW1wb3J0LmxvZwpkZWxldGVkIGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggOTM3MmRiMWZmOTg1OTE1MDA5Nzk3OTRmNzJiMGM5N2U1MWExYzBi
MS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5
dGVzdC90ZXN0aW5nL2ZyZWV6ZS90ZXN0cy93M2MtaW1wb3J0LmxvZworKysgL2Rldi9udWxsCkBA
IC0xLDE4ICswLDAgQEAKLVRoZSB0ZXN0cyBpbiB0aGlzIGRpcmVjdG9yeSB3ZXJlIGltcG9ydGVk
IGZyb20gdGhlIFczQyByZXBvc2l0b3J5LgotRG8gTk9UIG1vZGlmeSB0aGVzZSB0ZXN0cyBkaXJl
Y3RseSBpbiBXZWJLaXQuCi1JbnN0ZWFkLCBjcmVhdGUgYSBwdWxsIHJlcXVlc3Qgb24gdGhlIFdQ
VCBnaXRodWI6Ci0JaHR0cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQKLQot
VGhlbiBydW4gdGhlIFRvb2xzL1NjcmlwdHMvaW1wb3J0LXczYy10ZXN0cyBpbiBXZWJLaXQgdG8g
cmVpbXBvcnQKLQotRG8gTk9UIG1vZGlmeSBvciByZW1vdmUgdGhpcyBmaWxlLgotCi0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0KLVByb3BlcnRpZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLVBy
b3BlcnR5IHZhbHVlcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tCi1MaXN0IG9mIGZpbGVzOgotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvZnJlZXplL3Rlc3Rz
L3Rlc3RfZG9jdGVzdC50eHQKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL2ZyZWV6ZS90ZXN0cy90ZXN0
X3RyaXZpYWwucHkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvZnJlZXplL3czYy1p
bXBvcnQubG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9mcmVlemUvdzNjLWltcG9ydC5sb2cKZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDUyMDg1YjY1YjdmZDQ2NzM2YTMwZjczOTU2Njhh
MGFmYmM2ZmRiMTUuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0t
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9mcmVlemUvdzNjLWltcG9ydC5sb2cKKysrIC9kZXYvbnVs
bApAQCAtMSwxOSArMCwwIEBACi1UaGUgdGVzdHMgaW4gdGhpcyBkaXJlY3Rvcnkgd2VyZSBpbXBv
cnRlZCBmcm9tIHRoZSBXM0MgcmVwb3NpdG9yeS4KLURvIE5PVCBtb2RpZnkgdGhlc2UgdGVzdHMg
ZGlyZWN0bHkgaW4gV2ViS2l0LgotSW5zdGVhZCwgY3JlYXRlIGEgcHVsbCByZXF1ZXN0IG9uIHRo
ZSBXUFQgZ2l0aHViOgotCWh0dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxhdGZvcm0tdGVzdHMvd3B0
Ci0KLVRoZW4gcnVuIHRoZSBUb29scy9TY3JpcHRzL2ltcG9ydC13M2MtdGVzdHMgaW4gV2ViS2l0
IHRvIHJlaW1wb3J0Ci0KLURvIE5PVCBtb2RpZnkgb3IgcmVtb3ZlIHRoaXMgZmlsZS4KLQotLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tCi1Qcm9wZXJ0aWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25l
Ci1Qcm9wZXJ0eSB2YWx1ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLQotTGlzdCBvZiBmaWxlczoKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL2ZyZWV6ZS9j
cmVhdGVfZXhlY3V0YWJsZS5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvZnJlZXplL3J1bnRlc3Rz
X3NjcmlwdC5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvZnJlZXplL3RveF9ydW4ucHkKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
dGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvbG9nZ2luZy93M2MtaW1wb3J0LmxvZyBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkv
cHl0ZXN0L3Rlc3RpbmcvbG9nZ2luZy93M2MtaW1wb3J0LmxvZwpkZWxldGVkIGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMWYyNzgwNjg3MWFkNTFhYjE1YWJlMDZiM2M5MDE1NmJiMjQ5YjkxZC4uMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90
ZXN0aW5nL2xvZ2dpbmcvdzNjLWltcG9ydC5sb2cKKysrIC9kZXYvbnVsbApAQCAtMSwxOSArMCww
IEBACi1UaGUgdGVzdHMgaW4gdGhpcyBkaXJlY3Rvcnkgd2VyZSBpbXBvcnRlZCBmcm9tIHRoZSBX
M0MgcmVwb3NpdG9yeS4KLURvIE5PVCBtb2RpZnkgdGhlc2UgdGVzdHMgZGlyZWN0bHkgaW4gV2Vi
S2l0LgotSW5zdGVhZCwgY3JlYXRlIGEgcHVsbCByZXF1ZXN0IG9uIHRoZSBXUFQgZ2l0aHViOgot
CWh0dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxhdGZvcm0tdGVzdHMvd3B0Ci0KLVRoZW4gcnVuIHRo
ZSBUb29scy9TY3JpcHRzL2ltcG9ydC13M2MtdGVzdHMgaW4gV2ViS2l0IHRvIHJlaW1wb3J0Ci0K
LURvIE5PVCBtb2RpZnkgb3IgcmVtb3ZlIHRoaXMgZmlsZS4KLQotLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1Q
cm9wZXJ0aWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi1Qcm9wZXJ0eSB2YWx1
ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotTGlz
dCBvZiBmaWxlczoKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL2xvZ2dpbmcvdGVzdF9maXh0dXJlLnB5
Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9sb2dnaW5nL3Rlc3RfZm9ybWF0dGVyLnB5Ci0vTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9w
eXRlc3QvdGVzdGluZy9sb2dnaW5nL3Rlc3RfcmVwb3J0aW5nLnB5CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5
L3B5dGVzdC90ZXN0aW5nL3B5dGhvbi93M2MtaW1wb3J0LmxvZyBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3Rp
bmcvcHl0aG9uL3czYy1pbXBvcnQubG9nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBi
YzM3OWE1OTY0YzhjYzI5N2FkMTE4ODBkMGFiZTczMDE2NmMzNTkxLi4wMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvcHl0aG9u
L3czYy1pbXBvcnQubG9nCisrKyAvZGV2L251bGwKQEAgLTEsMjYgKzAsMCBAQAotVGhlIHRlc3Rz
IGluIHRoaXMgZGlyZWN0b3J5IHdlcmUgaW1wb3J0ZWQgZnJvbSB0aGUgVzNDIHJlcG9zaXRvcnku
Ci1EbyBOT1QgbW9kaWZ5IHRoZXNlIHRlc3RzIGRpcmVjdGx5IGluIFdlYktpdC4KLUluc3RlYWQs
IGNyZWF0ZSBhIHB1bGwgcmVxdWVzdCBvbiB0aGUgV1BUIGdpdGh1YjoKLQlodHRwczovL2dpdGh1
Yi5jb20vd2ViLXBsYXRmb3JtLXRlc3RzL3dwdAotCi1UaGVuIHJ1biB0aGUgVG9vbHMvU2NyaXB0
cy9pbXBvcnQtdzNjLXRlc3RzIGluIFdlYktpdCB0byByZWltcG9ydAotCi1EbyBOT1QgbW9kaWZ5
IG9yIHJlbW92ZSB0aGlzIGZpbGUuCi0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotUHJvcGVydGllcyByZXF1
aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotUHJvcGVydHkgdmFsdWVzIHJlcXVpcmluZyB2
ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLUxpc3Qgb2YgZmlsZXM6Ci0v
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9w
YXJ0eS9weXRlc3QvdGVzdGluZy9weXRob24vYXBwcm94LnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGlu
Zy9weXRob24vY29sbGVjdC5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvcHl0aG9uL2ZpeHR1cmUu
cHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3Ro
aXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL3B5dGhvbi9pbnRlZ3JhdGlvbi5weQotL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0
ZXN0L3Rlc3RpbmcvcHl0aG9uL21ldGFmdW5jLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9weXRo
b24vcmFpc2VzLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy9weXRob24vc2V0dXBfb25seS5weQot
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRf
cGFydHkvcHl0ZXN0L3Rlc3RpbmcvcHl0aG9uL3NldHVwX3BsYW4ucHkKLS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90
ZXN0aW5nL3B5dGhvbi9zaG93X2ZpeHR1cmVzX3Blcl90ZXN0LnB5Ci0vTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVz
dGluZy9weXRob24vdGVzdF9kZXByZWNhdGlvbnMucHkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0
L3Rlc3RpbmcvdzNjLWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL3czYy1pbXBvcnQu
bG9nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiZTc3N2E5MmMzN2M5NjM3NDZmN2I0
ODRkY2VlZmRiYjkxNmI5YTdjLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvdzNjLWltcG9ydC5sb2cKKysrIC9kZXYvbnVs
bApAQCAtMSw1MSArMCwwIEBACi1UaGUgdGVzdHMgaW4gdGhpcyBkaXJlY3Rvcnkgd2VyZSBpbXBv
cnRlZCBmcm9tIHRoZSBXM0MgcmVwb3NpdG9yeS4KLURvIE5PVCBtb2RpZnkgdGhlc2UgdGVzdHMg
ZGlyZWN0bHkgaW4gV2ViS2l0LgotSW5zdGVhZCwgY3JlYXRlIGEgcHVsbCByZXF1ZXN0IG9uIHRo
ZSBXUFQgZ2l0aHViOgotCWh0dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxhdGZvcm0tdGVzdHMvd3B0
Ci0KLVRoZW4gcnVuIHRoZSBUb29scy9TY3JpcHRzL2ltcG9ydC13M2MtdGVzdHMgaW4gV2ViS2l0
IHRvIHJlaW1wb3J0Ci0KLURvIE5PVCBtb2RpZnkgb3IgcmVtb3ZlIHRoaXMgZmlsZS4KLQotLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tCi1Qcm9wZXJ0aWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25l
Ci1Qcm9wZXJ0eSB2YWx1ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLQotTGlzdCBvZiBmaWxlczoKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL2FjY2VwdGFu
Y2VfdGVzdC5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvZGVwcmVjYXRlZF90ZXN0LnB5Ci0vTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0
eS9weXRlc3QvdGVzdGluZy90ZXN0X2FyZ2NvbXBsZXRlLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGlu
Zy90ZXN0X2Fzc2VydGlvbi5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvdGVzdF9hc3NlcnRyZXdy
aXRlLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy90ZXN0X2NhY2hlcHJvdmlkZXIucHkKLS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5
L3B5dGVzdC90ZXN0aW5nL3Rlc3RfY2FwdHVyZS5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvdGVz
dF9jb2xsZWN0aW9uLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy90ZXN0X2NvbXBhdC5weQotL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFy
dHkvcHl0ZXN0L3Rlc3RpbmcvdGVzdF9jb25maWcucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL3Rl
c3RfY29uZnRlc3QucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL3Rlc3RfZG9jdGVzdC5weQotL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFy
dHkvcHl0ZXN0L3Rlc3RpbmcvdGVzdF9lbnRyeV9wb2ludHMucHkKLS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0
aW5nL3Rlc3RfaGVscGNvbmZpZy5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvdGVzdF9qdW5pdHht
bC5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
dGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvdGVzdF9tYXJrLnB5Ci0vTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVz
dGluZy90ZXN0X21vZGltcG9ydC5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvdGVzdF9tb25rZXlw
YXRjaC5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvdGVzdF9ub2Rlcy5weQotL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0
L3Rlc3RpbmcvdGVzdF9ub3NlLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy90ZXN0X3BhcnNlb3B0
LnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90
aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy90ZXN0X3Bhc3RlYmluLnB5Ci0vTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3Qv
dGVzdGluZy90ZXN0X3BkYi5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvdGVzdF9wbHVnaW5tYW5h
Z2VyLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy90ZXN0X3B5dGVzdGVyLnB5Ci0vTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRl
c3QvdGVzdGluZy90ZXN0X3JlY3dhcm4ucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL3Rlc3RfcmVz
dWx0bG9nLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdGVzdGluZy90ZXN0X3J1bm5lci5weQotL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0
ZXN0L3Rlc3RpbmcvdGVzdF9ydW5uZXJfeHVuaXQucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL3Rl
c3Rfc2Vzc2lvbi5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3RpbmcvdGVzdF9za2lwcGluZy5weQotL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFy
dHkvcHl0ZXN0L3Rlc3RpbmcvdGVzdF90ZXJtaW5hbC5weQotL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3Rlc3Rpbmcv
dGVzdF90bXBkaXIucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC90ZXN0aW5nL3Rlc3RfdW5pdHRlc3QucHkKLS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3Bh
cnR5L3B5dGVzdC90ZXN0aW5nL3Rlc3Rfd2FybmluZ3MucHkKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0
ZXN0L3czYy1pbXBvcnQubG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdzNjLWltcG9ydC5sb2cKZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IGZiMGQxNmI5YjZkN2Q5MzI1NTc4NDliYjE1Y2IzZmNmZWY3
NGE5OGUuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0
eS9weXRlc3QvdzNjLWltcG9ydC5sb2cKKysrIC9kZXYvbnVsbApAQCAtMSwyNyArMCwwIEBACi1U
aGUgdGVzdHMgaW4gdGhpcyBkaXJlY3Rvcnkgd2VyZSBpbXBvcnRlZCBmcm9tIHRoZSBXM0MgcmVw
b3NpdG9yeS4KLURvIE5PVCBtb2RpZnkgdGhlc2UgdGVzdHMgZGlyZWN0bHkgaW4gV2ViS2l0Lgot
SW5zdGVhZCwgY3JlYXRlIGEgcHVsbCByZXF1ZXN0IG9uIHRoZSBXUFQgZ2l0aHViOgotCWh0dHBz
Oi8vZ2l0aHViLmNvbS93ZWItcGxhdGZvcm0tdGVzdHMvd3B0Ci0KLVRoZW4gcnVuIHRoZSBUb29s
cy9TY3JpcHRzL2ltcG9ydC13M2MtdGVzdHMgaW4gV2ViS2l0IHRvIHJlaW1wb3J0Ci0KLURvIE5P
VCBtb2RpZnkgb3IgcmVtb3ZlIHRoaXMgZmlsZS4KLQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1Qcm9wZXJ0
aWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi1Qcm9wZXJ0eSB2YWx1ZXMgcmVx
dWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotTGlzdCBvZiBm
aWxlczoKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3RoaXJkX3BhcnR5L3B5dGVzdC9BVVRIT1JTCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvQ0hBTkdFTE9HLnJzdAot
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRf
cGFydHkvcHl0ZXN0L0NPTlRSSUJVVElORy5yc3QKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9IT1dUT1JFTEVBU0Uu
cnN0Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90
aGlyZF9wYXJ0eS9weXRlc3QvTElDRU5TRQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L1JFQURNRS5yc3QKLS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5
L3B5dGVzdC9hcHB2ZXlvci55bWwKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3B5dGVzdC9weXByb2plY3QudG9tbAotL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkv
cHl0ZXN0L3NldHVwLmNmZwotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvcHl0ZXN0L3NldHVwLnB5Ci0vTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9weXRlc3QvdG94
LmluaQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy90aGlyZF9wYXJ0eS9zaXgvZG9jdW1lbnRhdGlvbi93M2MtaW1wb3J0LmxvZyBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRf
cGFydHkvc2l4L2RvY3VtZW50YXRpb24vdzNjLWltcG9ydC5sb2cKZGVsZXRlZCBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IGMxMGQ2ZjA5OGU5ZGViNWNkYTAyZjJiYmMxYmFkOGNjOWUyMWU3YzAuLjAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9zaXgvZG9j
dW1lbnRhdGlvbi93M2MtaW1wb3J0LmxvZworKysgL2Rldi9udWxsCkBAIC0xLDE5ICswLDAgQEAK
LVRoZSB0ZXN0cyBpbiB0aGlzIGRpcmVjdG9yeSB3ZXJlIGltcG9ydGVkIGZyb20gdGhlIFczQyBy
ZXBvc2l0b3J5LgotRG8gTk9UIG1vZGlmeSB0aGVzZSB0ZXN0cyBkaXJlY3RseSBpbiBXZWJLaXQu
Ci1JbnN0ZWFkLCBjcmVhdGUgYSBwdWxsIHJlcXVlc3Qgb24gdGhlIFdQVCBnaXRodWI6Ci0JaHR0
cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQKLQotVGhlbiBydW4gdGhlIFRv
b2xzL1NjcmlwdHMvaW1wb3J0LXczYy10ZXN0cyBpbiBXZWJLaXQgdG8gcmVpbXBvcnQKLQotRG8g
Tk9UIG1vZGlmeSBvciByZW1vdmUgdGhpcyBmaWxlLgotCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLVByb3Bl
cnRpZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLVByb3BlcnR5IHZhbHVlcyBy
ZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1MaXN0IG9m
IGZpbGVzOgotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvdGhpcmRfcGFydHkvc2l4L2RvY3VtZW50YXRpb24vTWFrZWZpbGUKLS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3NpeC9kb2N1
bWVudGF0aW9uL2NvbmYucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3NpeC9kb2N1bWVudGF0aW9uL2luZGV4LnJzdApkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy90aGlyZF9wYXJ0eS9zaXgvc2l4LmVnZy1pbmZvL3czYy1pbXBvcnQubG9nIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9zaXgv
c2l4LmVnZy1pbmZvL3czYy1pbXBvcnQubG9nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAxMTMxOTUzMWYxZTFmNzQ4NzJjNDgxMjEyOTM5ZDMyZGY3MjE0MWQ4Li4wMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvc2l4L3NpeC5lZ2ctaW5mby93
M2MtaW1wb3J0LmxvZworKysgL2Rldi9udWxsCkBAIC0xLDIwICswLDAgQEAKLVRoZSB0ZXN0cyBp
biB0aGlzIGRpcmVjdG9yeSB3ZXJlIGltcG9ydGVkIGZyb20gdGhlIFczQyByZXBvc2l0b3J5Lgot
RG8gTk9UIG1vZGlmeSB0aGVzZSB0ZXN0cyBkaXJlY3RseSBpbiBXZWJLaXQuCi1JbnN0ZWFkLCBj
cmVhdGUgYSBwdWxsIHJlcXVlc3Qgb24gdGhlIFdQVCBnaXRodWI6Ci0JaHR0cHM6Ly9naXRodWIu
Y29tL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQKLQotVGhlbiBydW4gdGhlIFRvb2xzL1NjcmlwdHMv
aW1wb3J0LXczYy10ZXN0cyBpbiBXZWJLaXQgdG8gcmVpbXBvcnQKLQotRG8gTk9UIG1vZGlmeSBv
ciByZW1vdmUgdGhpcyBmaWxlLgotCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLVByb3BlcnRpZXMgcmVxdWly
aW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLVByb3BlcnR5IHZhbHVlcyByZXF1aXJpbmcgdmVu
ZG9yIHByZWZpeGVzOgotTm9uZQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1MaXN0IG9mIGZpbGVzOgotL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFy
dHkvc2l4L3NpeC5lZ2ctaW5mby9QS0ctSU5GTwotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvc2l4L3NpeC5lZ2ctaW5mby9TT1VS
Q0VTLnR4dAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvdGhpcmRfcGFydHkvc2l4L3NpeC5lZ2ctaW5mby9kZXBlbmRlbmN5X2xpbmtzLnR4dAotL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFy
dHkvc2l4L3NpeC5lZ2ctaW5mby90b3BfbGV2ZWwudHh0CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3NpeC93
M2MtaW1wb3J0LmxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvdGhpcmRfcGFydHkvc2l4L3czYy1pbXBvcnQubG9nCmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCBmMGU4YTNlMjgyMjY0ZmViZGI4ZWYxNDc3NDY2ODc0YmFiMjdkMTFlLi4w
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvc2l4L3cz
Yy1pbXBvcnQubG9nCisrKyAvZGV2L251bGwKQEAgLTEsMjYgKzAsMCBAQAotVGhlIHRlc3RzIGlu
IHRoaXMgZGlyZWN0b3J5IHdlcmUgaW1wb3J0ZWQgZnJvbSB0aGUgVzNDIHJlcG9zaXRvcnkuCi1E
byBOT1QgbW9kaWZ5IHRoZXNlIHRlc3RzIGRpcmVjdGx5IGluIFdlYktpdC4KLUluc3RlYWQsIGNy
ZWF0ZSBhIHB1bGwgcmVxdWVzdCBvbiB0aGUgV1BUIGdpdGh1YjoKLQlodHRwczovL2dpdGh1Yi5j
b20vd2ViLXBsYXRmb3JtLXRlc3RzL3dwdAotCi1UaGVuIHJ1biB0aGUgVG9vbHMvU2NyaXB0cy9p
bXBvcnQtdzNjLXRlc3RzIGluIFdlYktpdCB0byByZWltcG9ydAotCi1EbyBOT1QgbW9kaWZ5IG9y
IHJlbW92ZSB0aGlzIGZpbGUuCi0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotUHJvcGVydGllcyByZXF1aXJp
bmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotUHJvcGVydHkgdmFsdWVzIHJlcXVpcmluZyB2ZW5k
b3IgcHJlZml4ZXM6Ci1Ob25lCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLUxpc3Qgb2YgZmlsZXM6Ci0vTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0
eS9zaXgvQ0hBTkdFUwotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvdGhpcmRfcGFydHkvc2l4L0xJQ0VOU0UKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3NpeC9NQU5JRkVTVC5pbgot
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRf
cGFydHkvc2l4L1BLRy1JTkZPCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9zaXgvUkVBRE1FLnJzdAotL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvc2l4L3NldHVw
LmNmZwotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
dGhpcmRfcGFydHkvc2l4L3NldHVwLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9zaXgvc2l4LnB5Ci0vTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9zaXgvc2l4
LnB5YwotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
dGhpcmRfcGFydHkvc2l4L3Rlc3Rfc2l4LnB5CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3Rvb2x0b29sL3Rv
b2x0b29sLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy90aGlyZF9wYXJ0eS90b29sdG9vbC90b29sdG9vbC5weQpuZXcgZmlsZSBtb2RlIDEwMDc1
NQppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41MzkyOWZj
ZTg4MDI4NTYyOWViZjZmMjQzZDdiZWE4NjAzNmIxNmQwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0
eS90b29sdG9vbC90b29sdG9vbC5weQpAQCAtMCwwICsxLDEzMTYgQEAKKyMhL3Vzci9iaW4vZW52
IHB5dGhvbgorCisjIHRvb2x0b29sIGlzIGEgbG9va2FzaWRlIGNhY2hlIGltcGxlbWVudGVkIGlu
IFB5dGhvbgorIyBDb3B5cmlnaHQgKEMpIDIwMTEgSm9obiBILiBGb3JkIDxqb2huQGpvaG5mb3Jk
LmluZm8+CisjCisjIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlz
dHJpYnV0ZSBpdCBhbmQvb3IKKyMgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05V
IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyMgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3
YXJlIEZvdW5kYXRpb24gdmVyc2lvbiAyCisjCisjIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRl
ZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorIyBidXQgV0lUSE9VVCBBTlkg
V0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorIyBNRVJDSEFO
VEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCisj
IEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisjCisjIFlvdSBz
aG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNl
bnNlCisjIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVl
IFNvZnR3YXJlCisjIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGgg
Rmxvb3IsIEJvc3RvbiwgTUEKKyMgMDIxMTAtMTMwMSwgVVNBLgorCisjIEEgbWFuaWZlc3QgZmls
ZSBzcGVjaWZpZXMgZmlsZXMgaW4gdGhhdCBkaXJlY3RvcnkgdGhhdCBhcmUgc3RvcmVkCisjIGVs
c2V3aGVyZS4gVGhpcyBmaWxlIHNob3VsZCBvbmx5IGxpc3QgZmlsZXMgaW4gdGhlIHNhbWUgZGly
ZWN0b3J5CisjIGluIHdoaWNoIHRoZSBtYW5pZmVzdCBmaWxlIHJlc2lkZXMgYW5kIGl0IHNob3Vs
ZCBiZSBjYWxsZWQKKyMgJ21hbmlmZXN0LnR0JworCitmcm9tIF9fZnV0dXJlX18gaW1wb3J0IHBy
aW50X2Z1bmN0aW9uCisKK2ltcG9ydCBiYXNlNjQKK2ltcG9ydCBjYWxlbmRhcgoraW1wb3J0IGhh
c2hsaWIKK2ltcG9ydCBobWFjCitpbXBvcnQganNvbgoraW1wb3J0IGxvZ2dpbmcKK2ltcG9ydCBt
YXRoCitpbXBvcnQgb3B0cGFyc2UKK2ltcG9ydCBvcworaW1wb3J0IHBwcmludAoraW1wb3J0IHJl
CitpbXBvcnQgc2h1dGlsCitpbXBvcnQgc3lzCitpbXBvcnQgdGFyZmlsZQoraW1wb3J0IHRlbXBm
aWxlCitpbXBvcnQgdGhyZWFkaW5nCitpbXBvcnQgdGltZQoraW1wb3J0IHppcGZpbGUKKworZnJv
bSBpbyBpbXBvcnQgb3BlbgorZnJvbSBpbyBpbXBvcnQgQnl0ZXNJTworZnJvbSBzdWJwcm9jZXNz
IGltcG9ydCBQSVBFCitmcm9tIHN1YnByb2Nlc3MgaW1wb3J0IFBvcGVuCisKK19fdmVyc2lvbl9f
ID0gJzEnCisKKyMgQWxsb3dlZCByZXF1ZXN0IGhlYWRlciBjaGFyYWN0ZXJzOgorIyAhIyQlJico
KSorLC0uLzo7PD0+P0BbXV5fYHt8fX4gYW5kIHNwYWNlLCBhLXosIEEtWiwgMC05LCBcLCAiCitS
RVFVRVNUX0hFQURFUl9BVFRSSUJVVEVfQ0hBUlMgPSByZS5jb21waWxlKAorICAgIHIiXlsgYS16
QS1aMC05X1whI1wkJSYnXChcKVwqXCssXC1cLi9cOjs8XD0+XD9AXFtcXVxeYFx7XHxcfX5dKiQi
KQorREVGQVVMVF9NQU5JRkVTVF9OQU1FID0gJ21hbmlmZXN0LnR0JworVE9PTFRPT0xfUEFDS0FH
RV9TVUZGSVggPSAnLlRPT0xUT09MLVBBQ0tBR0UnCitIQVdLX1ZFUiA9IDEKK1BZMyA9IHN5cy52
ZXJzaW9uX2luZm9bMF0gPT0gMworCitpZiBQWTM6CisgICAgb3Blbl9hdHRycyA9IGRpY3QobW9k
ZT0ndycsIGVuY29kaW5nPSd1dGYtOCcpCisgICAgc2l4X2JpbmFyeV90eXBlID0gYnl0ZXMKKyAg
ICBzaXhfdGV4dF90eXBlID0gc3RyCisgICAgdW5pY29kZSA9IHN0ciAgIyBTaWxlbmNlIGBweWZs
YWtlc2AgZnJvbSByZXBvcnRpbmcgYHVuZGVmaW5lZCBuYW1lICd1bmljb2RlJ2AgaW4gUHl0aG9u
IDMuCisgICAgaW1wb3J0IHVybGxpYi5yZXF1ZXN0IGFzIHVybGxpYjIKKyAgICBmcm9tIGh0dHAu
Y2xpZW50IGltcG9ydCBIVFRQU0Nvbm5lY3Rpb24sIEhUVFBDb25uZWN0aW9uCisgICAgZnJvbSB1
cmxsaWIucGFyc2UgaW1wb3J0IHVybHBhcnNlLCB1cmxqb2luCisgICAgZnJvbSB1cmxsaWIucmVx
dWVzdCBpbXBvcnQgUmVxdWVzdAorICAgIGZyb20gdXJsbGliLmVycm9yIGltcG9ydCBIVFRQRXJy
b3IsIFVSTEVycm9yCitlbHNlOgorICAgIG9wZW5fYXR0cnMgPSBkaWN0KG1vZGU9J3diJykKKyAg
ICBzaXhfYmluYXJ5X3R5cGUgPSBzdHIKKyAgICBzaXhfdGV4dF90eXBlID0gdW5pY29kZQorICAg
IGltcG9ydCB1cmxsaWIyCisgICAgZnJvbSBodHRwbGliIGltcG9ydCBIVFRQU0Nvbm5lY3Rpb24s
IEhUVFBDb25uZWN0aW9uCisgICAgZnJvbSB1cmxsaWIyIGltcG9ydCBSZXF1ZXN0LCBIVFRQRXJy
b3IsIFVSTEVycm9yCisgICAgZnJvbSB1cmxwYXJzZSBpbXBvcnQgdXJscGFyc2UsIHVybGpvaW4K
KworCitsb2cgPSBsb2dnaW5nLmdldExvZ2dlcihfX25hbWVfXykKKworCitkZWYgcmVxdWVzdF9o
YXNfZGF0YShyZXEpOgorICAgIGlmIFBZMzoKKyAgICAgICAgcmV0dXJuIHJlcS5kYXRhIGlzIG5v
dCBOb25lCisgICAgcmV0dXJuIHJlcS5oYXNfZGF0YSgpCisKKworZGVmIHRvX2JpbmFyeSh2YWwp
OgorICAgIGlmIGlzaW5zdGFuY2UodmFsLCBzaXhfdGV4dF90eXBlKToKKyAgICAgICAgcmV0dXJu
IHZhbC5lbmNvZGUoJ3V0Zi04JykKKyAgICByZXR1cm4gdmFsCisKKworZGVmIHRvX3RleHQodmFs
KToKKyAgICBpZiBpc2luc3RhbmNlKHZhbCwgc2l4X2JpbmFyeV90eXBlKToKKyAgICAgICAgcmV0
dXJuIHZhbC5kZWNvZGUoJ3V0Zi04JykKKyAgICByZXR1cm4gdmFsCisKKworZGVmIGdldF9oZXhk
aWdlc3QodmFsKToKKyAgICByZXR1cm4gaGFzaGxpYi5zaGE1MTIodG9fYmluYXJ5KHZhbCkpLmhl
eGRpZ2VzdCgpCisKKworY2xhc3MgRmlsZVJlY29yZEpTT05FbmNvZGVyRXhjZXB0aW9uKEV4Y2Vw
dGlvbik6CisgICAgcGFzcworCisKK2NsYXNzIEludmFsaWRNYW5pZmVzdChFeGNlcHRpb24pOgor
ICAgIHBhc3MKKworCitjbGFzcyBFeGNlcHRpb25XaXRoRmlsZW5hbWUoRXhjZXB0aW9uKToKKwor
ICAgIGRlZiBfX2luaXRfXyhzZWxmLCBmaWxlbmFtZSk6CisgICAgICAgIEV4Y2VwdGlvbi5fX2lu
aXRfXyhzZWxmKQorICAgICAgICBzZWxmLmZpbGVuYW1lID0gZmlsZW5hbWUKKworCitjbGFzcyBC
YWRGaWxlbmFtZUV4Y2VwdGlvbihFeGNlcHRpb25XaXRoRmlsZW5hbWUpOgorICAgIHBhc3MKKwor
CitjbGFzcyBEaWdlc3RNaXNtYXRjaEV4Y2VwdGlvbihFeGNlcHRpb25XaXRoRmlsZW5hbWUpOgor
ICAgIHBhc3MKKworCitjbGFzcyBNaXNzaW5nRmlsZUV4Y2VwdGlvbihFeGNlcHRpb25XaXRoRmls
ZW5hbWUpOgorICAgIHBhc3MKKworCitjbGFzcyBJbnZhbGlkQ3JlZGVudGlhbHMoRXhjZXB0aW9u
KToKKyAgICBwYXNzCisKKworY2xhc3MgQmFkSGVhZGVyVmFsdWUoRXhjZXB0aW9uKToKKyAgICBw
YXNzCisKKworZGVmIHBhcnNlX3VybCh1cmwpOgorICAgIHVybF9wYXJ0cyA9IHVybHBhcnNlKHVy
bCkKKyAgICB1cmxfZGljdCA9IHsKKyAgICAgICAgJ3NjaGVtZSc6IHVybF9wYXJ0cy5zY2hlbWUs
CisgICAgICAgICdob3N0bmFtZSc6IHVybF9wYXJ0cy5ob3N0bmFtZSwKKyAgICAgICAgJ3BvcnQn
OiB1cmxfcGFydHMucG9ydCwKKyAgICAgICAgJ3BhdGgnOiB1cmxfcGFydHMucGF0aCwKKyAgICAg
ICAgJ3Jlc291cmNlJzogdXJsX3BhcnRzLnBhdGgsCisgICAgICAgICdxdWVyeSc6IHVybF9wYXJ0
cy5xdWVyeSwKKyAgICB9CisgICAgaWYgbGVuKHVybF9kaWN0WydxdWVyeSddKSA+IDA6CisgICAg
ICAgIHVybF9kaWN0WydyZXNvdXJjZSddID0gJyVzPyVzJyAlICh1cmxfZGljdFsncmVzb3VyY2Un
XSwgICMgcHJhZ21hOiBubyBjb3ZlcgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgdXJsX2RpY3RbJ3F1ZXJ5J10pCisKKyAgICBpZiB1cmxfcGFydHMucG9ydCBpcyBO
b25lOgorICAgICAgICBpZiB1cmxfcGFydHMuc2NoZW1lID09ICdodHRwJzoKKyAgICAgICAgICAg
IHVybF9kaWN0Wydwb3J0J10gPSA4MAorICAgICAgICBlbGlmIHVybF9wYXJ0cy5zY2hlbWUgPT0g
J2h0dHBzJzogICMgcHJhZ21hOiBubyBjb3ZlcgorICAgICAgICAgICAgdXJsX2RpY3RbJ3BvcnQn
XSA9IDQ0MworICAgIHJldHVybiB1cmxfZGljdAorCisKK2RlZiB1dGNfbm93KG9mZnNldF9pbl9z
ZWNvbmRzPTAuMCk6CisgICAgcmV0dXJuIGludChtYXRoLmZsb29yKGNhbGVuZGFyLnRpbWVnbSh0
aW1lLmdtdGltZSgpKSArIGZsb2F0KG9mZnNldF9pbl9zZWNvbmRzKSkpCisKKworZGVmIHJhbmRv
bV9zdHJpbmcobGVuZ3RoKToKKyAgICByZXR1cm4gYmFzZTY0LnVybHNhZmVfYjY0ZW5jb2RlKG9z
LnVyYW5kb20obGVuZ3RoKSlbOmxlbmd0aF0KKworCitkZWYgcHJlcGFyZV9oZWFkZXJfdmFsKHZh
bCk6CisgICAgaWYgaXNpbnN0YW5jZSh2YWwsIHNpeF9iaW5hcnlfdHlwZSk6CisgICAgICAgIHZh
bCA9IHZhbC5kZWNvZGUoJ3V0Zi04JykKKworICAgIGlmIG5vdCBSRVFVRVNUX0hFQURFUl9BVFRS
SUJVVEVfQ0hBUlMubWF0Y2godmFsKToKKyAgICAgICAgcmFpc2UgQmFkSGVhZGVyVmFsdWUoICAj
IHByYWdtYTogbm8gY292ZXIKKyAgICAgICAgICAgICdoZWFkZXIgdmFsdWUgdmFsdWU9e3ZhbH0g
Y29udGFpbmVkIGFuIGlsbGVnYWwgY2hhcmFjdGVyJy5mb3JtYXQodmFsPXJlcHIodmFsKSkpCisK
KyAgICByZXR1cm4gdmFsCisKKworZGVmIHBhcnNlX2NvbnRlbnRfdHlwZShjb250ZW50X3R5cGUp
OiAgIyBwcmFnbWE6IG5vIGNvdmVyCisgICAgaWYgY29udGVudF90eXBlOgorICAgICAgICByZXR1
cm4gY29udGVudF90eXBlLnNwbGl0KCc7JylbMF0uc3RyaXAoKS5sb3dlcigpCisgICAgZWxzZToK
KyAgICAgICAgcmV0dXJuICcnCisKKworZGVmIGNhbGN1bGF0ZV9wYXlsb2FkX2hhc2goYWxnb3Jp
dGhtLCBwYXlsb2FkLCBjb250ZW50X3R5cGUpOiAgIyBwcmFnbWE6IG5vIGNvdmVyCisgICAgcGFy
dHMgPSBbCisgICAgICAgIHBhcnQgaWYgaXNpbnN0YW5jZShwYXJ0LCBzaXhfYmluYXJ5X3R5cGUp
IGVsc2UgcGFydC5lbmNvZGUoJ3V0ZjgnKQorICAgICAgICBmb3IgcGFydCBpbiBbJ2hhd2suJyAr
IHN0cihIQVdLX1ZFUikgKyAnLnBheWxvYWRcbicsCisgICAgICAgICAgICAgICAgICAgICBwYXJz
ZV9jb250ZW50X3R5cGUoY29udGVudF90eXBlKSArICdcbicsCisgICAgICAgICAgICAgICAgICAg
ICBwYXlsb2FkIG9yICcnLAorICAgICAgICAgICAgICAgICAgICAgJ1xuJywKKyAgICAgICAgICAg
ICAgICAgICAgIF0KKyAgICBdCisKKyAgICBwX2hhc2ggPSBoYXNobGliLm5ldyhhbGdvcml0aG0p
CisgICAgcF9oYXNoLnVwZGF0ZSgnJy5qb2luKHBhcnRzKSkKKworICAgIGxvZy5kZWJ1ZygnY2Fs
Y3VsYXRpbmcgcGF5bG9hZCBoYXNoIGZyb206XG57cGFydHN9Jy5mb3JtYXQocGFydHM9cHByaW50
LnBmb3JtYXQocGFydHMpKSkKKworICAgIHJldHVybiBiYXNlNjQuYjY0ZW5jb2RlKHBfaGFzaC5k
aWdlc3QoKSkKKworCitkZWYgdmFsaWRhdGVfdGFza2NsdXN0ZXJfY3JlZGVudGlhbHMoY3JlZGVu
dGlhbHMpOgorICAgIGlmIG5vdCBoYXNhdHRyKGNyZWRlbnRpYWxzLCAnX19nZXRpdGVtX18nKToK
KyAgICAgICAgcmFpc2UgSW52YWxpZENyZWRlbnRpYWxzKCdjcmVkZW50aWFscyBtdXN0IGJlIGEg
ZGljdC1saWtlIG9iamVjdCcpICAjIHByYWdtYTogbm8gY292ZXIKKyAgICB0cnk6CisgICAgICAg
IGNyZWRlbnRpYWxzWydjbGllbnRJZCddCisgICAgICAgIGNyZWRlbnRpYWxzWydhY2Nlc3NUb2tl
biddCisgICAgZXhjZXB0IEtleUVycm9yOiAgIyBwcmFnbWE6IG5vIGNvdmVyCisgICAgICAgIGV0
eXBlLCB2YWwsIHRiID0gc3lzLmV4Y19pbmZvKCkKKyAgICAgICAgcmFpc2UgSW52YWxpZENyZWRl
bnRpYWxzKCd7ZXR5cGV9OiB7dmFsfScuZm9ybWF0KGV0eXBlPWV0eXBlLCB2YWw9dmFsKSkKKwor
CitkZWYgbm9ybWFsaXplX2hlYWRlcl9hdHRyKHZhbCk6CisgICAgaWYgaXNpbnN0YW5jZSh2YWws
IHNpeF9iaW5hcnlfdHlwZSk6CisgICAgICAgIHJldHVybiB2YWwuZGVjb2RlKCd1dGYtOCcpCisg
ICAgcmV0dXJuIHZhbCAgIyBwcmFnbWE6IG5vIGNvdmVyCisKKworZGVmIG5vcm1hbGl6ZV9zdHJp
bmcobWFjX3R5cGUsCisgICAgICAgICAgICAgICAgICAgICB0aW1lc3RhbXAsCisgICAgICAgICAg
ICAgICAgICAgICBub25jZSwKKyAgICAgICAgICAgICAgICAgICAgIG1ldGhvZCwKKyAgICAgICAg
ICAgICAgICAgICAgIG5hbWUsCisgICAgICAgICAgICAgICAgICAgICBob3N0LAorICAgICAgICAg
ICAgICAgICAgICAgcG9ydCwKKyAgICAgICAgICAgICAgICAgICAgIGNvbnRlbnRfaGFzaCwKKyAg
ICAgICAgICAgICAgICAgICAgICk6CisgICAgcmV0dXJuICdcbicuam9pbihbCisgICAgICAgIG5v
cm1hbGl6ZV9oZWFkZXJfYXR0cihoZWFkZXIpCisgICAgICAgICMgVGhlIGJsYW5rIGxpbmVzIGFy
ZSBpbXBvcnRhbnQuIFRoZXkgZm9sbG93IHdoYXQgdGhlIE5vZGUgSGF3ayBsaWIgZG9lcy4KKyAg
ICAgICAgZm9yIGhlYWRlciBpbiBbJ2hhd2suJyArIHN0cihIQVdLX1ZFUikgKyAnLicgKyBtYWNf
dHlwZSwKKyAgICAgICAgICAgICAgICAgICAgICAgdGltZXN0YW1wLAorICAgICAgICAgICAgICAg
ICAgICAgICBub25jZSwKKyAgICAgICAgICAgICAgICAgICAgICAgbWV0aG9kIG9yICcnLAorICAg
ICAgICAgICAgICAgICAgICAgICBuYW1lIG9yICcnLAorICAgICAgICAgICAgICAgICAgICAgICBo
b3N0LAorICAgICAgICAgICAgICAgICAgICAgICBwb3J0LAorICAgICAgICAgICAgICAgICAgICAg
ICBjb250ZW50X2hhc2ggb3IgJycsCisgICAgICAgICAgICAgICAgICAgICAgICcnLCAgIyBmb3Ig
ZXh0IHdoaWNoIGlzIGVtcHR5IGluIHRoaXMgY2FzZQorICAgICAgICAgICAgICAgICAgICAgICAn
JywgICMgQWRkIHRyYWlsaW5nIG5ldyBsaW5lLgorICAgICAgICAgICAgICAgICAgICAgICBdCisg
ICAgXSkKKworCitkZWYgY2FsY3VsYXRlX21hYyhtYWNfdHlwZSwKKyAgICAgICAgICAgICAgICAg
IGFjY2Vzc190b2tlbiwKKyAgICAgICAgICAgICAgICAgIGFsZ29yaXRobSwKKyAgICAgICAgICAg
ICAgICAgIHRpbWVzdGFtcCwKKyAgICAgICAgICAgICAgICAgIG5vbmNlLAorICAgICAgICAgICAg
ICAgICAgbWV0aG9kLAorICAgICAgICAgICAgICAgICAgbmFtZSwKKyAgICAgICAgICAgICAgICAg
IGhvc3QsCisgICAgICAgICAgICAgICAgICBwb3J0LAorICAgICAgICAgICAgICAgICAgY29udGVu
dF9oYXNoLAorICAgICAgICAgICAgICAgICAgKToKKyAgICBub3JtYWxpemVkID0gbm9ybWFsaXpl
X3N0cmluZyhtYWNfdHlwZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aW1l
c3RhbXAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9uY2UsCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgbWV0aG9kLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIG5hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaG9z
dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwb3J0LAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGNvbnRlbnRfaGFzaCkKKyAgICBsb2cuZGVidWcodSdub3Jt
YWxpemVkIHJlc291cmNlIGZvciBtYWMgY2FsYzoge25vcm19Jy5mb3JtYXQobm9ybT1ub3JtYWxp
emVkKSkKKyAgICBkaWdlc3Rtb2QgPSBnZXRhdHRyKGhhc2hsaWIsIGFsZ29yaXRobSkKKworICAg
IGlmIG5vdCBpc2luc3RhbmNlKG5vcm1hbGl6ZWQsIHNpeF9iaW5hcnlfdHlwZSk6CisgICAgICAg
IG5vcm1hbGl6ZWQgPSBub3JtYWxpemVkLmVuY29kZSgndXRmOCcpCisKKyAgICBpZiBub3QgaXNp
bnN0YW5jZShhY2Nlc3NfdG9rZW4sIHNpeF9iaW5hcnlfdHlwZSk6CisgICAgICAgIGFjY2Vzc190
b2tlbiA9IGFjY2Vzc190b2tlbi5lbmNvZGUoJ2FzY2lpJykKKworICAgIHJlc3VsdCA9IGhtYWMu
bmV3KGFjY2Vzc190b2tlbiwgbm9ybWFsaXplZCwgZGlnZXN0bW9kKQorICAgIHJldHVybiBiYXNl
NjQuYjY0ZW5jb2RlKHJlc3VsdC5kaWdlc3QoKSkKKworCitkZWYgbWFrZV90YXNrY2x1c3Rlcl9o
ZWFkZXIoY3JlZGVudGlhbHMsIHJlcSk6CisgICAgdmFsaWRhdGVfdGFza2NsdXN0ZXJfY3JlZGVu
dGlhbHMoY3JlZGVudGlhbHMpCisKKyAgICB1cmwgPSByZXEuZ2V0X2Z1bGxfdXJsKCkKKyAgICBt
ZXRob2QgPSByZXEuZ2V0X21ldGhvZCgpCisgICAgYWxnb3JpdGhtID0gJ3NoYTI1NicKKyAgICB0
aW1lc3RhbXAgPSBzdHIodXRjX25vdygpKQorICAgIG5vbmNlID0gcmFuZG9tX3N0cmluZyg2KQor
ICAgIHVybF9wYXJ0cyA9IHBhcnNlX3VybCh1cmwpCisKKyAgICBjb250ZW50X2hhc2ggPSBOb25l
CisgICAgaWYgcmVxdWVzdF9oYXNfZGF0YShyZXEpOgorICAgICAgICBjb250ZW50X2hhc2ggPSBj
YWxjdWxhdGVfcGF5bG9hZF9oYXNoKCAgIyBwcmFnbWE6IG5vIGNvdmVyCisgICAgICAgICAgICBh
bGdvcml0aG0sCisgICAgICAgICAgICByZXEuZ2V0X2RhdGEoKSwKKyAgICAgICAgICAgICMgbWF5
YmUgd2Ugc2hvdWxkIGRldGVjdCB0aGlzIGZyb20gcmVxLmhlYWRlcnMgYnV0IHdlIGFueXdheSBl
eHBlY3QganNvbgorICAgICAgICAgICAgY29udGVudF90eXBlPSdhcHBsaWNhdGlvbi9qc29uJywK
KyAgICAgICAgKQorCisgICAgbWFjID0gY2FsY3VsYXRlX21hYygnaGVhZGVyJywKKyAgICAgICAg
ICAgICAgICAgICAgICAgIGNyZWRlbnRpYWxzWydhY2Nlc3NUb2tlbiddLAorICAgICAgICAgICAg
ICAgICAgICAgICAgYWxnb3JpdGhtLAorICAgICAgICAgICAgICAgICAgICAgICAgdGltZXN0YW1w
LAorICAgICAgICAgICAgICAgICAgICAgICAgbm9uY2UsCisgICAgICAgICAgICAgICAgICAgICAg
ICBtZXRob2QsCisgICAgICAgICAgICAgICAgICAgICAgICB1cmxfcGFydHNbJ3Jlc291cmNlJ10s
CisgICAgICAgICAgICAgICAgICAgICAgICB1cmxfcGFydHNbJ2hvc3RuYW1lJ10sCisgICAgICAg
ICAgICAgICAgICAgICAgICBzdHIodXJsX3BhcnRzWydwb3J0J10pLAorICAgICAgICAgICAgICAg
ICAgICAgICAgY29udGVudF9oYXNoLAorICAgICAgICAgICAgICAgICAgICAgICAgKQorCisgICAg
aGVhZGVyID0gdSdIYXdrIG1hYz0ie30iJy5mb3JtYXQocHJlcGFyZV9oZWFkZXJfdmFsKG1hYykp
CisKKyAgICBpZiBjb250ZW50X2hhc2g6ICAjIHByYWdtYTogbm8gY292ZXIKKyAgICAgICAgaGVh
ZGVyID0gdSd7fSwgaGFzaD0ie30iJy5mb3JtYXQoaGVhZGVyLCBwcmVwYXJlX2hlYWRlcl92YWwo
Y29udGVudF9oYXNoKSkKKworICAgIGhlYWRlciA9IHUne2hlYWRlcn0sIGlkPSJ7aWR9IiwgdHM9
Int0c30iLCBub25jZT0ie25vbmNlfSInLmZvcm1hdCgKKyAgICAgICAgaGVhZGVyPWhlYWRlciwK
KyAgICAgICAgaWQ9cHJlcGFyZV9oZWFkZXJfdmFsKGNyZWRlbnRpYWxzWydjbGllbnRJZCddKSwK
KyAgICAgICAgdHM9cHJlcGFyZV9oZWFkZXJfdmFsKHRpbWVzdGFtcCksCisgICAgICAgIG5vbmNl
PXByZXBhcmVfaGVhZGVyX3ZhbChub25jZSksCisgICAgKQorCisgICAgbG9nLmRlYnVnKCdIYXdr
IGhlYWRlciBmb3IgVVJMPXt9IG1ldGhvZD17fToge30nLmZvcm1hdCh1cmwsIG1ldGhvZCwgaGVh
ZGVyKSkKKworICAgIHJldHVybiBoZWFkZXIKKworCitjbGFzcyBGaWxlUmVjb3JkKG9iamVjdCk6
CisKKyAgICBkZWYgX19pbml0X18oc2VsZiwgZmlsZW5hbWUsIHNpemUsIGRpZ2VzdCwgYWxnb3Jp
dGhtLCB1bnBhY2s9RmFsc2UsCisgICAgICAgICAgICAgICAgIHZlcnNpb249Tm9uZSwgdmlzaWJp
bGl0eT1Ob25lKToKKyAgICAgICAgb2JqZWN0Ll9faW5pdF9fKHNlbGYpCisgICAgICAgIGlmICcv
JyBpbiBmaWxlbmFtZSBvciAnXFwnIGluIGZpbGVuYW1lOgorICAgICAgICAgICAgbG9nLmVycm9y
KAorICAgICAgICAgICAgICAgICJUaGUgZmlsZW5hbWUgcHJvdmlkZWQgY29udGFpbnMgcGF0aCBp
bmZvcm1hdGlvbiBhbmQgaXMsIHRoZXJlZm9yZSwgaW52YWxpZC4iKQorICAgICAgICAgICAgcmFp
c2UgQmFkRmlsZW5hbWVFeGNlcHRpb24oZmlsZW5hbWU9ZmlsZW5hbWUpCisgICAgICAgIHNlbGYu
ZmlsZW5hbWUgPSBmaWxlbmFtZQorICAgICAgICBzZWxmLnNpemUgPSBzaXplCisgICAgICAgIHNl
bGYuZGlnZXN0ID0gZGlnZXN0CisgICAgICAgIHNlbGYuYWxnb3JpdGhtID0gYWxnb3JpdGhtCisg
ICAgICAgIHNlbGYudW5wYWNrID0gdW5wYWNrCisgICAgICAgIHNlbGYudmVyc2lvbiA9IHZlcnNp
b24KKyAgICAgICAgc2VsZi52aXNpYmlsaXR5ID0gdmlzaWJpbGl0eQorCisgICAgZGVmIF9fZXFf
XyhzZWxmLCBvdGhlcik6CisgICAgICAgIGlmIHNlbGYgaXMgb3RoZXI6CisgICAgICAgICAgICBy
ZXR1cm4gVHJ1ZQorICAgICAgICBpZiBzZWxmLmZpbGVuYW1lID09IG90aGVyLmZpbGVuYW1lIGFu
ZCBcCisgICAgICAgICAgIHNlbGYuc2l6ZSA9PSBvdGhlci5zaXplIGFuZCBcCisgICAgICAgICAg
IHNlbGYuZGlnZXN0ID09IG90aGVyLmRpZ2VzdCBhbmQgXAorICAgICAgICAgICBzZWxmLmFsZ29y
aXRobSA9PSBvdGhlci5hbGdvcml0aG0gYW5kIFwKKyAgICAgICAgICAgc2VsZi52ZXJzaW9uID09
IG90aGVyLnZlcnNpb24gYW5kIFwKKyAgICAgICAgICAgc2VsZi52aXNpYmlsaXR5ID09IG90aGVy
LnZpc2liaWxpdHk6CisgICAgICAgICAgICByZXR1cm4gVHJ1ZQorICAgICAgICBlbHNlOgorICAg
ICAgICAgICAgcmV0dXJuIEZhbHNlCisKKyAgICBkZWYgX19uZV9fKHNlbGYsIG90aGVyKToKKyAg
ICAgICAgcmV0dXJuIG5vdCBzZWxmLl9fZXFfXyhvdGhlcikKKworICAgIGRlZiBfX3N0cl9fKHNl
bGYpOgorICAgICAgICByZXR1cm4gcmVwcihzZWxmKQorCisgICAgZGVmIF9fcmVwcl9fKHNlbGYp
OgorICAgICAgICByZXR1cm4gIiVzLiVzKGZpbGVuYW1lPSclcycsIHNpemU9JXMsIGRpZ2VzdD0n
JXMnLCBhbGdvcml0aG09JyVzJywgdmlzaWJpbGl0eT0lcikiICUgKAorICAgICAgICAgICAgX19u
YW1lX18sIHNlbGYuX19jbGFzc19fLl9fbmFtZV9fLCBzZWxmLmZpbGVuYW1lLCBzZWxmLnNpemUs
CisgICAgICAgICAgICBzZWxmLmRpZ2VzdCwgc2VsZi5hbGdvcml0aG0sIHNlbGYudmlzaWJpbGl0
eSkKKworICAgIGRlZiBwcmVzZW50KHNlbGYpOgorICAgICAgICAjIERvZXNuJ3QgY2hlY2sgdmFs
aWRpdHkKKyAgICAgICAgcmV0dXJuIG9zLnBhdGguZXhpc3RzKHNlbGYuZmlsZW5hbWUpCisKKyAg
ICBkZWYgdmFsaWRhdGVfc2l6ZShzZWxmKToKKyAgICAgICAgaWYgc2VsZi5wcmVzZW50KCk6Cisg
ICAgICAgICAgICByZXR1cm4gc2VsZi5zaXplID09IG9zLnBhdGguZ2V0c2l6ZShzZWxmLmZpbGVu
YW1lKQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgbG9nLmRlYnVnKAorICAgICAgICAgICAg
ICAgICJ0cnlpbmcgdG8gdmFsaWRhdGUgc2l6ZSBvbiBhIG1pc3NpbmcgZmlsZSwgJXMiLCBzZWxm
LmZpbGVuYW1lKQorICAgICAgICAgICAgcmFpc2UgTWlzc2luZ0ZpbGVFeGNlcHRpb24oZmlsZW5h
bWU9c2VsZi5maWxlbmFtZSkKKworICAgIGRlZiB2YWxpZGF0ZV9kaWdlc3Qoc2VsZik6CisgICAg
ICAgIGlmIHNlbGYucHJlc2VudCgpOgorICAgICAgICAgICAgd2l0aCBvcGVuKHNlbGYuZmlsZW5h
bWUsICdyYicpIGFzIGY6CisgICAgICAgICAgICAgICAgcmV0dXJuIHNlbGYuZGlnZXN0ID09IGRp
Z2VzdF9maWxlKGYsIHNlbGYuYWxnb3JpdGhtKQorICAgICAgICBlbHNlOgorICAgICAgICAgICAg
bG9nLmRlYnVnKAorICAgICAgICAgICAgICAgICJ0cnlpbmcgdG8gdmFsaWRhdGUgZGlnZXN0IG9u
IGEgbWlzc2luZyBmaWxlLCAlcycsIHNlbGYuZmlsZW5hbWUiKQorICAgICAgICAgICAgcmFpc2Ug
TWlzc2luZ0ZpbGVFeGNlcHRpb24oZmlsZW5hbWU9c2VsZi5maWxlbmFtZSkKKworICAgIGRlZiB2
YWxpZGF0ZShzZWxmKToKKyAgICAgICAgaWYgc2VsZi5zaXplIGlzIE5vbmUgb3Igc2VsZi52YWxp
ZGF0ZV9zaXplKCk6CisgICAgICAgICAgICBpZiBzZWxmLnZhbGlkYXRlX2RpZ2VzdCgpOgorICAg
ICAgICAgICAgICAgIHJldHVybiBUcnVlCisgICAgICAgIHJldHVybiBGYWxzZQorCisgICAgZGVm
IGRlc2NyaWJlKHNlbGYpOgorICAgICAgICBpZiBzZWxmLnByZXNlbnQoKSBhbmQgc2VsZi52YWxp
ZGF0ZSgpOgorICAgICAgICAgICAgcmV0dXJuICInJXMnIGlzIHByZXNlbnQgYW5kIHZhbGlkIiAl
IHNlbGYuZmlsZW5hbWUKKyAgICAgICAgZWxpZiBzZWxmLnByZXNlbnQoKToKKyAgICAgICAgICAg
IHJldHVybiAiJyVzJyBpcyBwcmVzZW50IGFuZCBpbnZhbGlkIiAlIHNlbGYuZmlsZW5hbWUKKyAg
ICAgICAgZWxzZToKKyAgICAgICAgICAgIHJldHVybiAiJyVzJyBpcyBhYnNlbnQiICUgc2VsZi5m
aWxlbmFtZQorCisKK2RlZiBjcmVhdGVfZmlsZV9yZWNvcmQoZmlsZW5hbWUsIGFsZ29yaXRobSk6
CisgICAgZm8gPSBvcGVuKGZpbGVuYW1lLCAncmInKQorICAgIHN0b3JlZF9maWxlbmFtZSA9IG9z
LnBhdGguc3BsaXQoZmlsZW5hbWUpWzFdCisgICAgZnIgPSBGaWxlUmVjb3JkKHN0b3JlZF9maWxl
bmFtZSwgb3MucGF0aC5nZXRzaXplKAorICAgICAgICBmaWxlbmFtZSksIGRpZ2VzdF9maWxlKGZv
LCBhbGdvcml0aG0pLCBhbGdvcml0aG0pCisgICAgZm8uY2xvc2UoKQorICAgIHJldHVybiBmcgor
CisKK2NsYXNzIEZpbGVSZWNvcmRKU09ORW5jb2Rlcihqc29uLkpTT05FbmNvZGVyKToKKworICAg
IGRlZiBlbmNvZGVfZmlsZV9yZWNvcmQoc2VsZiwgb2JqKToKKyAgICAgICAgaWYgbm90IGlzc3Vi
Y2xhc3ModHlwZShvYmopLCBGaWxlUmVjb3JkKToKKyAgICAgICAgICAgIGVyciA9ICJGaWxlUmVj
b3JkSlNPTkVuY29kZXIgaXMgb25seSBmb3IgRmlsZVJlY29yZCBhbmQgbGlzdHMgb2YgRmlsZVJl
Y29yZHMsICIgXAorICAgICAgICAgICAgICAgICAgIm5vdCAlcyIgJSBvYmouX19jbGFzc19fLl9f
bmFtZV9fCisgICAgICAgICAgICBsb2cud2FybihlcnIpCisgICAgICAgICAgICByYWlzZSBGaWxl
UmVjb3JkSlNPTkVuY29kZXJFeGNlcHRpb24oZXJyKQorICAgICAgICBlbHNlOgorICAgICAgICAg
ICAgcnYgPSB7CisgICAgICAgICAgICAgICAgJ2ZpbGVuYW1lJzogb2JqLmZpbGVuYW1lLAorICAg
ICAgICAgICAgICAgICdzaXplJzogb2JqLnNpemUsCisgICAgICAgICAgICAgICAgJ2FsZ29yaXRo
bSc6IG9iai5hbGdvcml0aG0sCisgICAgICAgICAgICAgICAgJ2RpZ2VzdCc6IG9iai5kaWdlc3Qs
CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiBvYmoudW5wYWNrOgorICAgICAgICAgICAg
ICAgIHJ2Wyd1bnBhY2snXSA9IFRydWUKKyAgICAgICAgICAgIGlmIG9iai52ZXJzaW9uOgorICAg
ICAgICAgICAgICAgIHJ2Wyd2ZXJzaW9uJ10gPSBvYmoudmVyc2lvbgorICAgICAgICAgICAgaWYg
b2JqLnZpc2liaWxpdHkgaXMgbm90IE5vbmU6CisgICAgICAgICAgICAgICAgcnZbJ3Zpc2liaWxp
dHknXSA9IG9iai52aXNpYmlsaXR5CisgICAgICAgICAgICByZXR1cm4gcnYKKworICAgIGRlZiBk
ZWZhdWx0KHNlbGYsIGYpOgorICAgICAgICBpZiBpc3N1YmNsYXNzKHR5cGUoZiksIGxpc3QpOgor
ICAgICAgICAgICAgcmVjb3JkX2xpc3QgPSBbXQorICAgICAgICAgICAgZm9yIGkgaW4gZjoKKyAg
ICAgICAgICAgICAgICByZWNvcmRfbGlzdC5hcHBlbmQoc2VsZi5lbmNvZGVfZmlsZV9yZWNvcmQo
aSkpCisgICAgICAgICAgICByZXR1cm4gcmVjb3JkX2xpc3QKKyAgICAgICAgZWxzZToKKyAgICAg
ICAgICAgIHJldHVybiBzZWxmLmVuY29kZV9maWxlX3JlY29yZChmKQorCisKK2NsYXNzIEZpbGVS
ZWNvcmRKU09ORGVjb2Rlcihqc29uLkpTT05EZWNvZGVyKToKKworICAgICIiIkkgaGVscCB0aGUg
anNvbiBtb2R1bGUgbWF0ZXJpYWxpemUgYSBGaWxlUmVjb3JkIGZyb20KKyAgICBhIEpTT04gZmls
ZS4gIEkgdW5kZXJzdGFuZCBGaWxlUmVjb3JkcyBhbmQgbGlzdHMgb2YKKyAgICBGaWxlUmVjb3Jk
cy4gIEkgaWdub3JlIHRoaW5ncyB0aGF0IEkgZG9uJ3QgZXhwZWN0IGZvciBub3ciIiIKKyAgICAj
IFRPRE86IG1ha2UgdGhpcyBtb3JlIGV4cGxpY2l0IGluIHdoYXQgaXQncyBsb29raW5nIGZvcgor
ICAgICMgYW5kIGVycm9yIG91dCBvbiB1bmV4cGVjdGVkIHRoaW5ncworCisgICAgZGVmIHByb2Nl
c3NfZmlsZV9yZWNvcmRzKHNlbGYsIG9iaik6CisgICAgICAgIGlmIGlzaW5zdGFuY2Uob2JqLCBs
aXN0KToKKyAgICAgICAgICAgIHJlY29yZF9saXN0ID0gW10KKyAgICAgICAgICAgIGZvciBpIGlu
IG9iajoKKyAgICAgICAgICAgICAgICByZWNvcmQgPSBzZWxmLnByb2Nlc3NfZmlsZV9yZWNvcmRz
KGkpCisgICAgICAgICAgICAgICAgaWYgaXNzdWJjbGFzcyh0eXBlKHJlY29yZCksIEZpbGVSZWNv
cmQpOgorICAgICAgICAgICAgICAgICAgICByZWNvcmRfbGlzdC5hcHBlbmQocmVjb3JkKQorICAg
ICAgICAgICAgcmV0dXJuIHJlY29yZF9saXN0CisgICAgICAgIHJlcXVpcmVkX2ZpZWxkcyA9IFsK
KyAgICAgICAgICAgICdmaWxlbmFtZScsCisgICAgICAgICAgICAnc2l6ZScsCisgICAgICAgICAg
ICAnYWxnb3JpdGhtJywKKyAgICAgICAgICAgICdkaWdlc3QnLAorICAgICAgICBdCisgICAgICAg
IGlmIGlzaW5zdGFuY2Uob2JqLCBkaWN0KToKKyAgICAgICAgICAgIG1pc3NpbmcgPSBGYWxzZQor
ICAgICAgICAgICAgZm9yIHJlcSBpbiByZXF1aXJlZF9maWVsZHM6CisgICAgICAgICAgICAgICAg
aWYgcmVxIG5vdCBpbiBvYmo6CisgICAgICAgICAgICAgICAgICAgIG1pc3NpbmcgPSBUcnVlCisg
ICAgICAgICAgICAgICAgICAgIGJyZWFrCisKKyAgICAgICAgICAgIGlmIG5vdCBtaXNzaW5nOgor
ICAgICAgICAgICAgICAgIHVucGFjayA9IG9iai5nZXQoJ3VucGFjaycsIEZhbHNlKQorICAgICAg
ICAgICAgICAgIHZlcnNpb24gPSBvYmouZ2V0KCd2ZXJzaW9uJywgTm9uZSkKKyAgICAgICAgICAg
ICAgICB2aXNpYmlsaXR5ID0gb2JqLmdldCgndmlzaWJpbGl0eScsIE5vbmUpCisgICAgICAgICAg
ICAgICAgcnYgPSBGaWxlUmVjb3JkKAorICAgICAgICAgICAgICAgICAgICBvYmpbJ2ZpbGVuYW1l
J10sIG9ialsnc2l6ZSddLCBvYmpbJ2RpZ2VzdCddLCBvYmpbJ2FsZ29yaXRobSddLAorICAgICAg
ICAgICAgICAgICAgICB1bnBhY2ssIHZlcnNpb24sIHZpc2liaWxpdHkpCisgICAgICAgICAgICAg
ICAgbG9nLmRlYnVnKCJtYXRlcmlhbGl6ZWQgJXMiICUgcnYpCisgICAgICAgICAgICAgICAgcmV0
dXJuIHJ2CisgICAgICAgIHJldHVybiBvYmoKKworICAgIGRlZiBkZWNvZGUoc2VsZiwgcyk6Cisg
ICAgICAgIGRlY29kZWQgPSBqc29uLkpTT05EZWNvZGVyLmRlY29kZShzZWxmLCBzKQorICAgICAg
ICBydiA9IHNlbGYucHJvY2Vzc19maWxlX3JlY29yZHMoZGVjb2RlZCkKKyAgICAgICAgcmV0dXJu
IHJ2CisKKworY2xhc3MgTWFuaWZlc3Qob2JqZWN0KToKKworICAgIHZhbGlkX2Zvcm1hdHMgPSAo
J2pzb24nLCkKKworICAgIGRlZiBfX2luaXRfXyhzZWxmLCBmaWxlX3JlY29yZHM9Tm9uZSk6Cisg
ICAgICAgIHNlbGYuZmlsZV9yZWNvcmRzID0gZmlsZV9yZWNvcmRzIG9yIFtdCisKKyAgICBkZWYg
X19lcV9fKHNlbGYsIG90aGVyKToKKyAgICAgICAgaWYgc2VsZiBpcyBvdGhlcjoKKyAgICAgICAg
ICAgIHJldHVybiBUcnVlCisgICAgICAgIGlmIGxlbihzZWxmLmZpbGVfcmVjb3JkcykgIT0gbGVu
KG90aGVyLmZpbGVfcmVjb3Jkcyk6CisgICAgICAgICAgICBsb2cuZGVidWcoJ01hbmlmZXN0cyBk
aWZmZXIgaW4gbnVtYmVyIG9mIGZpbGVzJykKKyAgICAgICAgICAgIHJldHVybiBGYWxzZQorICAg
ICAgICAjIHNvcnQgdGhlIGZpbGUgcmVjb3JkcyBieSBmaWxlbmFtZSBiZWZvcmUgY29tcGFyaW5n
CisgICAgICAgIG1pbmUgPSBzb3J0ZWQoKGZyLmZpbGVuYW1lLCBmcikgZm9yIGZyIGluIHNlbGYu
ZmlsZV9yZWNvcmRzKQorICAgICAgICB0aGVpcnMgPSBzb3J0ZWQoKGZyLmZpbGVuYW1lLCBmcikg
Zm9yIGZyIGluIG90aGVyLmZpbGVfcmVjb3JkcykKKyAgICAgICAgcmV0dXJuIG1pbmUgPT0gdGhl
aXJzCisKKyAgICBkZWYgX19uZV9fKHNlbGYsIG90aGVyKToKKyAgICAgICAgcmV0dXJuIG5vdCBz
ZWxmLl9fZXFfXyhvdGhlcikKKworICAgIGRlZiBfX2RlZXBjb3B5X18oc2VsZiwgbWVtbyk6Cisg
ICAgICAgICMgVGhpcyBpcyByZXF1aXJlZCBmb3IgYSBkZWVwIGNvcHkKKyAgICAgICAgcmV0dXJu
IE1hbmlmZXN0KHNlbGYuZmlsZV9yZWNvcmRzWzpdKQorCisgICAgZGVmIF9fY29weV9fKHNlbGYp
OgorICAgICAgICByZXR1cm4gTWFuaWZlc3Qoc2VsZi5maWxlX3JlY29yZHMpCisKKyAgICBkZWYg
Y29weShzZWxmKToKKyAgICAgICAgcmV0dXJuIE1hbmlmZXN0KHNlbGYuZmlsZV9yZWNvcmRzWzpd
KQorCisgICAgZGVmIHByZXNlbnQoc2VsZik6CisgICAgICAgIHJldHVybiBhbGwoaS5wcmVzZW50
KCkgZm9yIGkgaW4gc2VsZi5maWxlX3JlY29yZHMpCisKKyAgICBkZWYgdmFsaWRhdGVfc2l6ZXMo
c2VsZik6CisgICAgICAgIHJldHVybiBhbGwoaS52YWxpZGF0ZV9zaXplKCkgZm9yIGkgaW4gc2Vs
Zi5maWxlX3JlY29yZHMpCisKKyAgICBkZWYgdmFsaWRhdGVfZGlnZXN0cyhzZWxmKToKKyAgICAg
ICAgcmV0dXJuIGFsbChpLnZhbGlkYXRlX2RpZ2VzdCgpIGZvciBpIGluIHNlbGYuZmlsZV9yZWNv
cmRzKQorCisgICAgZGVmIHZhbGlkYXRlKHNlbGYpOgorICAgICAgICByZXR1cm4gYWxsKGkudmFs
aWRhdGUoKSBmb3IgaSBpbiBzZWxmLmZpbGVfcmVjb3JkcykKKworICAgIGRlZiBsb2FkKHNlbGYs
IGRhdGFfZmlsZSwgZm10PSdqc29uJyk6CisgICAgICAgIGFzc2VydCBmbXQgaW4gc2VsZi52YWxp
ZF9mb3JtYXRzCisgICAgICAgIGlmIGZtdCA9PSAnanNvbic6CisgICAgICAgICAgICB0cnk6Cisg
ICAgICAgICAgICAgICAgc2VsZi5maWxlX3JlY29yZHMuZXh0ZW5kKAorICAgICAgICAgICAgICAg
ICAgICBqc29uLmxvYWQoZGF0YV9maWxlLCBjbHM9RmlsZVJlY29yZEpTT05EZWNvZGVyKSkKKyAg
ICAgICAgICAgIGV4Y2VwdCBWYWx1ZUVycm9yOgorICAgICAgICAgICAgICAgIHJhaXNlIEludmFs
aWRNYW5pZmVzdCgidHJ5aW5nIHRvIHJlYWQgaW52YWxpZCBtYW5pZmVzdCBmaWxlIikKKworICAg
IGRlZiBsb2FkcyhzZWxmLCBkYXRhX3N0cmluZywgZm10PSdqc29uJyk6CisgICAgICAgIGFzc2Vy
dCBmbXQgaW4gc2VsZi52YWxpZF9mb3JtYXRzCisgICAgICAgIGlmIGZtdCA9PSAnanNvbic6Cisg
ICAgICAgICAgICB0cnk6CisgICAgICAgICAgICAgICAgc2VsZi5maWxlX3JlY29yZHMuZXh0ZW5k
KAorICAgICAgICAgICAgICAgICAgICBqc29uLmxvYWRzKGRhdGFfc3RyaW5nLCBjbHM9RmlsZVJl
Y29yZEpTT05EZWNvZGVyKSkKKyAgICAgICAgICAgIGV4Y2VwdCBWYWx1ZUVycm9yOgorICAgICAg
ICAgICAgICAgIHJhaXNlIEludmFsaWRNYW5pZmVzdCgidHJ5aW5nIHRvIHJlYWQgaW52YWxpZCBt
YW5pZmVzdCBmaWxlIikKKworICAgIGRlZiBkdW1wKHNlbGYsIG91dHB1dF9maWxlLCBmbXQ9J2pz
b24nKToKKyAgICAgICAgYXNzZXJ0IGZtdCBpbiBzZWxmLnZhbGlkX2Zvcm1hdHMKKyAgICAgICAg
aWYgZm10ID09ICdqc29uJzoKKyAgICAgICAgICAgIHJldHVybiBqc29uLmR1bXAoCisgICAgICAg
ICAgICAgICAgc2VsZi5maWxlX3JlY29yZHMsIG91dHB1dF9maWxlLAorICAgICAgICAgICAgICAg
IGluZGVudD0yLCBzZXBhcmF0b3JzPSgnLCcsICc6ICcpLAorICAgICAgICAgICAgICAgIGNscz1G
aWxlUmVjb3JkSlNPTkVuY29kZXIsCisgICAgICAgICAgICApCisKKyAgICBkZWYgZHVtcHMoc2Vs
ZiwgZm10PSdqc29uJyk6CisgICAgICAgIGFzc2VydCBmbXQgaW4gc2VsZi52YWxpZF9mb3JtYXRz
CisgICAgICAgIGlmIGZtdCA9PSAnanNvbic6CisgICAgICAgICAgICByZXR1cm4ganNvbi5kdW1w
cygKKyAgICAgICAgICAgICAgICBzZWxmLmZpbGVfcmVjb3JkcywKKyAgICAgICAgICAgICAgICBp
bmRlbnQ9Miwgc2VwYXJhdG9ycz0oJywnLCAnOiAnKSwKKyAgICAgICAgICAgICAgICBjbHM9Rmls
ZVJlY29yZEpTT05FbmNvZGVyLAorICAgICAgICAgICAgKQorCisKK2RlZiBkaWdlc3RfZmlsZShm
LCBhKToKKyAgICAiIiJJIHRha2UgYSBmaWxlIGxpa2Ugb2JqZWN0ICdmJyBhbmQgcmV0dXJuIGEg
aGV4LXN0cmluZyBjb250YWluaW5nCisgICAgb2YgdGhlIHJlc3VsdCBvZiB0aGUgYWxnb3JpdGht
ICdhJyBhcHBsaWVkIHRvICdmJy4iIiIKKyAgICBoID0gaGFzaGxpYi5uZXcoYSkKKyAgICBjaHVu
a19zaXplID0gMTAyNCAqIDEwCisgICAgZGF0YSA9IGYucmVhZChjaHVua19zaXplKQorICAgIHdo
aWxlIGRhdGE6CisgICAgICAgIGgudXBkYXRlKGRhdGEpCisgICAgICAgIGRhdGEgPSBmLnJlYWQo
Y2h1bmtfc2l6ZSkKKyAgICBuYW1lID0gcmVwcihmLm5hbWUpIGlmIGhhc2F0dHIoZiwgJ25hbWUn
KSBlbHNlICdhIGZpbGUnCisgICAgbG9nLmRlYnVnKCdoYXNoZWQgJXMgd2l0aCAlcyB0byBiZSAl
cycsIG5hbWUsIGEsIGguaGV4ZGlnZXN0KCkpCisgICAgcmV0dXJuIGguaGV4ZGlnZXN0KCkKKwor
CitkZWYgZXhlY3V0ZShjbWQpOgorICAgICIiIkV4ZWN1dGUgQ01ELCBsb2dnaW5nIGl0cyBzdGRv
dXQgYXQgdGhlIGluZm8gbGV2ZWwiIiIKKyAgICBwcm9jZXNzID0gUG9wZW4oY21kLCBzaGVsbD1U
cnVlLCBzdGRvdXQ9UElQRSkKKyAgICB3aGlsZSBUcnVlOgorICAgICAgICBsaW5lID0gcHJvY2Vz
cy5zdGRvdXQucmVhZGxpbmUoKQorICAgICAgICBpZiBub3QgbGluZToKKyAgICAgICAgICAgIGJy
ZWFrCisgICAgICAgIGxvZy5pbmZvKGxpbmUucmVwbGFjZSgnXG4nLCAnICcpKQorICAgIHJldHVy
biBwcm9jZXNzLndhaXQoKSA9PSAwCisKKworZGVmIG9wZW5fbWFuaWZlc3QobWFuaWZlc3RfZmls
ZSk6CisgICAgIiIiSSBrbm93IGhvdyB0byB0YWtlIGEgZmlsZW5hbWUgYW5kIGxvYWQgaXQgaW50
byBhIE1hbmlmZXN0IG9iamVjdCIiIgorICAgIGlmIG9zLnBhdGguZXhpc3RzKG1hbmlmZXN0X2Zp
bGUpOgorICAgICAgICBtYW5pZmVzdCA9IE1hbmlmZXN0KCkKKyAgICAgICAgd2l0aCBvcGVuKG1h
bmlmZXN0X2ZpbGUsICJyYiIpIGFzIGY6CisgICAgICAgICAgICBtYW5pZmVzdC5sb2FkKGYpCisg
ICAgICAgICAgICBsb2cuZGVidWcoImxvYWRlZCBtYW5pZmVzdCBmcm9tIGZpbGUgJyVzJyIgJSBt
YW5pZmVzdF9maWxlKQorICAgICAgICByZXR1cm4gbWFuaWZlc3QKKyAgICBlbHNlOgorICAgICAg
ICBsb2cuZGVidWcoInRyaWVkIHRvIGxvYWQgYWJzZW50IGZpbGUgJyVzJyBhcyBtYW5pZmVzdCIg
JSBtYW5pZmVzdF9maWxlKQorICAgICAgICByYWlzZSBJbnZhbGlkTWFuaWZlc3QoCisgICAgICAg
ICAgICAibWFuaWZlc3QgZmlsZSAnJXMnIGRvZXMgbm90IGV4aXN0IiAlIG1hbmlmZXN0X2ZpbGUp
CisKKworZGVmIGxpc3RfbWFuaWZlc3QobWFuaWZlc3RfZmlsZSk6CisgICAgIiIiSSBrbm93IGhv
dyBwcmludCBhbGwgdGhlIGZpbGVzIGluIGEgbG9jYXRpb24iIiIKKyAgICB0cnk6CisgICAgICAg
IG1hbmlmZXN0ID0gb3Blbl9tYW5pZmVzdChtYW5pZmVzdF9maWxlKQorICAgIGV4Y2VwdCBJbnZh
bGlkTWFuaWZlc3QgYXMgZToKKyAgICAgICAgbG9nLmVycm9yKCJmYWlsZWQgdG8gbG9hZCBtYW5p
ZmVzdCBmaWxlIGF0ICclcyc6ICVzIiAlICgKKyAgICAgICAgICAgIG1hbmlmZXN0X2ZpbGUsCisg
ICAgICAgICAgICBzdHIoZSksCisgICAgICAgICkpCisgICAgICAgIHJldHVybiBGYWxzZQorICAg
IGZvciBmIGluIG1hbmlmZXN0LmZpbGVfcmVjb3JkczoKKyAgICAgICAgcHJpbnQoInt9XHR7fVx0
e30iLmZvcm1hdCgiUCIgaWYgZi5wcmVzZW50KCkgZWxzZSAiLSIsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIlYiIGlmIGYucHJlc2VudCgpIGFuZCBmLnZhbGlkYXRlKCkgZWxz
ZSAiLSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZi5maWxlbmFtZSkpCisg
ICAgcmV0dXJuIFRydWUKKworCitkZWYgdmFsaWRhdGVfbWFuaWZlc3QobWFuaWZlc3RfZmlsZSk6
CisgICAgIiIiSSB2YWxpZGF0ZSB0aGF0IGFsbCBmaWxlcyBpbiBhIG1hbmlmZXN0IGFyZSBwcmVz
ZW50IGFuZCB2YWxpZCBidXQKKyAgICBkb24ndCBmZXRjaCBvciBkZWxldGUgdGhlbSBpZiB0aGV5
IGFyZW4ndCIiIgorICAgIHRyeToKKyAgICAgICAgbWFuaWZlc3QgPSBvcGVuX21hbmlmZXN0KG1h
bmlmZXN0X2ZpbGUpCisgICAgZXhjZXB0IEludmFsaWRNYW5pZmVzdCBhcyBlOgorICAgICAgICBs
b2cuZXJyb3IoImZhaWxlZCB0byBsb2FkIG1hbmlmZXN0IGZpbGUgYXQgJyVzJzogJXMiICUgKAor
ICAgICAgICAgICAgbWFuaWZlc3RfZmlsZSwKKyAgICAgICAgICAgIHN0cihlKSwKKyAgICAgICAg
KSkKKyAgICAgICAgcmV0dXJuIEZhbHNlCisgICAgaW52YWxpZF9maWxlcyA9IFtdCisgICAgYWJz
ZW50X2ZpbGVzID0gW10KKyAgICBmb3IgZiBpbiBtYW5pZmVzdC5maWxlX3JlY29yZHM6CisgICAg
ICAgIGlmIG5vdCBmLnByZXNlbnQoKToKKyAgICAgICAgICAgIGFic2VudF9maWxlcy5hcHBlbmQo
ZikKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIGlmIG5vdCBmLnZhbGlkYXRlKCk6CisgICAg
ICAgICAgICAgICAgaW52YWxpZF9maWxlcy5hcHBlbmQoZikKKyAgICBpZiBsZW4oaW52YWxpZF9m
aWxlcyArIGFic2VudF9maWxlcykgPT0gMDoKKyAgICAgICAgcmV0dXJuIFRydWUKKyAgICBlbHNl
OgorICAgICAgICByZXR1cm4gRmFsc2UKKworCitkZWYgYWRkX2ZpbGVzKG1hbmlmZXN0X2ZpbGUs
IGFsZ29yaXRobSwgZmlsZW5hbWVzLCB2ZXJzaW9uLCB2aXNpYmlsaXR5LCB1bnBhY2spOgorICAg
ICMgcmV0dXJucyBUcnVlIGlmIGFsbCBmaWxlcyBzdWNjZXNzZnVsbHkgYWRkZWQsIEZhbHNlIGlm
IG5vdAorICAgICMgYW5kIGRvZXNuJ3QgY2F0Y2ggbGlicmFyeSBFeGNlcHRpb25zLiAgSWYgYW55
IGZpbGVzIGFyZSBhbHJlYWR5CisgICAgIyB0cmFja2VkIGluIHRoZSBtYW5pZmVzdCwgcmV0dXJu
IHdpbGwgYmUgRmFsc2UgYmVjYXVzZSB0aGV5IHdlcmVuJ3QKKyAgICAjIGFkZGVkCisgICAgYWxs
X2ZpbGVzX2FkZGVkID0gVHJ1ZQorICAgICMgQ3JlYXRlIGEgb2xkX21hbmlmZXN0IG9iamVjdCB0
byBhZGQgdG8KKyAgICBpZiBvcy5wYXRoLmV4aXN0cyhtYW5pZmVzdF9maWxlKToKKyAgICAgICAg
b2xkX21hbmlmZXN0ID0gb3Blbl9tYW5pZmVzdChtYW5pZmVzdF9maWxlKQorICAgIGVsc2U6Cisg
ICAgICAgIG9sZF9tYW5pZmVzdCA9IE1hbmlmZXN0KCkKKyAgICAgICAgbG9nLmRlYnVnKCJjcmVh
dGluZyBhIG5ldyBtYW5pZmVzdCBmaWxlIikKKyAgICBuZXdfbWFuaWZlc3QgPSBNYW5pZmVzdCgp
ICAjIHVzZSBhIGRpZmZlcmVudCBtYW5pZmVzdCBmb3IgdGhlIG91dHB1dAorICAgIGZvciBmaWxl
bmFtZSBpbiBmaWxlbmFtZXM6CisgICAgICAgIGxvZy5kZWJ1ZygiYWRkaW5nICVzIiAlIGZpbGVu
YW1lKQorICAgICAgICBwYXRoLCBuYW1lID0gb3MucGF0aC5zcGxpdChmaWxlbmFtZSkKKyAgICAg
ICAgbmV3X2ZyID0gY3JlYXRlX2ZpbGVfcmVjb3JkKGZpbGVuYW1lLCBhbGdvcml0aG0pCisgICAg
ICAgIG5ld19mci52ZXJzaW9uID0gdmVyc2lvbgorICAgICAgICBuZXdfZnIudmlzaWJpbGl0eSA9
IHZpc2liaWxpdHkKKyAgICAgICAgbmV3X2ZyLnVucGFjayA9IHVucGFjaworICAgICAgICBsb2cu
ZGVidWcoImFwcGVuZGluZyBhIG5ldyBmaWxlIHJlY29yZCB0byBtYW5pZmVzdCBmaWxlIikKKyAg
ICAgICAgYWRkID0gVHJ1ZQorICAgICAgICBmb3IgZnIgaW4gb2xkX21hbmlmZXN0LmZpbGVfcmVj
b3JkczoKKyAgICAgICAgICAgIGxvZy5kZWJ1ZygibWFuaWZlc3QgZmlsZSBoYXMgJyVzJyIgJSAi
JywgIi5qb2luKAorICAgICAgICAgICAgICAgIFt4LmZpbGVuYW1lIGZvciB4IGluIG9sZF9tYW5p
ZmVzdC5maWxlX3JlY29yZHNdKSkKKyAgICAgICAgICAgIGlmIG5ld19mciA9PSBmcjoKKyAgICAg
ICAgICAgICAgICBsb2cuaW5mbygiZmlsZSBhbHJlYWR5IGluIG9sZF9tYW5pZmVzdCIpCisgICAg
ICAgICAgICAgICAgYWRkID0gRmFsc2UKKyAgICAgICAgICAgIGVsaWYgZmlsZW5hbWUgPT0gZnIu
ZmlsZW5hbWU6CisgICAgICAgICAgICAgICAgbG9nLmVycm9yKCJtYW5pZmVzdCBhbHJlYWR5IGNv
bnRhaW5zIGEgZGlmZmVyZW50IGZpbGUgbmFtZWQgJXMiICUgZmlsZW5hbWUpCisgICAgICAgICAg
ICAgICAgYWRkID0gRmFsc2UKKyAgICAgICAgaWYgYWRkOgorICAgICAgICAgICAgbmV3X21hbmlm
ZXN0LmZpbGVfcmVjb3Jkcy5hcHBlbmQobmV3X2ZyKQorICAgICAgICAgICAgbG9nLmRlYnVnKCJh
ZGRlZCAnJXMnIHRvIG1hbmlmZXN0IiAlIGZpbGVuYW1lKQorICAgICAgICBlbHNlOgorICAgICAg
ICAgICAgYWxsX2ZpbGVzX2FkZGVkID0gRmFsc2UKKyAgICAjIGNvcHkgYW55IGZpbGVzIGluIHRo
ZSBvbGQgbWFuaWZlc3QgdGhhdCBhcmVuJ3QgaW4gdGhlIG5ldyBvbmUKKyAgICBuZXdfZmlsZW5h
bWVzID0gc2V0KGZyLmZpbGVuYW1lIGZvciBmciBpbiBuZXdfbWFuaWZlc3QuZmlsZV9yZWNvcmRz
KQorICAgIGZvciBvbGRfZnIgaW4gb2xkX21hbmlmZXN0LmZpbGVfcmVjb3JkczoKKyAgICAgICAg
aWYgb2xkX2ZyLmZpbGVuYW1lIG5vdCBpbiBuZXdfZmlsZW5hbWVzOgorICAgICAgICAgICAgbmV3
X21hbmlmZXN0LmZpbGVfcmVjb3Jkcy5hcHBlbmQob2xkX2ZyKQorICAgIHdpdGggb3BlbihtYW5p
ZmVzdF9maWxlLCAqKm9wZW5fYXR0cnMpIGFzIG91dHB1dDoKKyAgICAgICAgbmV3X21hbmlmZXN0
LmR1bXAob3V0cHV0LCBmbXQ9J2pzb24nKQorICAgIHJldHVybiBhbGxfZmlsZXNfYWRkZWQKKwor
CitkZWYgdG91Y2goZik6CisgICAgIiIiVXNlZCB0byBtb2RpZnkgbXRpbWUgaW4gY2FjaGVkIGZp
bGVzOworICAgIG10aW1lIGlzIHVzZWQgYnkgdGhlIHB1cmdlIGNvbW1hbmQiIiIKKyAgICB0cnk6
CisgICAgICAgIG9zLnV0aW1lKGYsIE5vbmUpCisgICAgZXhjZXB0IE9TRXJyb3I6CisgICAgICAg
IGxvZy53YXJuKCdpbXBvc3NpYmxlIHRvIHVwZGF0ZSB1dGltZSBvZiBmaWxlICVzJyAlIGYpCisK
KworZGVmIGZldGNoX2ZpbGUoYmFzZV91cmxzLCBmaWxlX3JlY29yZCwgZ3JhYmNodW5rPTEwMjQg
KiA0LCBhdXRoX2ZpbGU9Tm9uZSwgcmVnaW9uPU5vbmUpOgorICAgICMgQSBmaWxlIHdoaWNoIGlz
IHJlcXVlc3RlZCB0byBiZSBmZXRjaGVkIHRoYXQgZXhpc3RzIGxvY2FsbHkgd2lsbCBiZQorICAg
ICMgb3ZlcndyaXR0ZW4gYnkgdGhpcyBmdW5jdGlvbgorICAgIGZkLCB0ZW1wX3BhdGggPSB0ZW1w
ZmlsZS5ta3N0ZW1wKGRpcj1vcy5nZXRjd2QoKSkKKyAgICBvcy5jbG9zZShmZCkKKyAgICBmZXRj
aGVkX3BhdGggPSBOb25lCisgICAgZm9yIGJhc2VfdXJsIGluIGJhc2VfdXJsczoKKyAgICAgICAg
IyBHZW5lcmF0ZSB0aGUgVVJMIGZvciB0aGUgZmlsZSBvbiB0aGUgc2VydmVyIHNpZGUKKyAgICAg
ICAgdXJsID0gdXJsam9pbihiYXNlX3VybCwKKyAgICAgICAgICAgICAgICAgICAgICAnJXMvJXMn
ICUgKGZpbGVfcmVjb3JkLmFsZ29yaXRobSwgZmlsZV9yZWNvcmQuZGlnZXN0KSkKKyAgICAgICAg
aWYgcmVnaW9uIGlzIG5vdCBOb25lOgorICAgICAgICAgICAgdXJsICs9ICc/cmVnaW9uPScgKyBy
ZWdpb24KKworICAgICAgICBsb2cuaW5mbygiQXR0ZW1wdGluZyB0byBmZXRjaCBmcm9tICclcycu
Li4iICUgYmFzZV91cmwpCisKKyAgICAgICAgIyBXZWxsLCB0aGUgZmlsZSBkb2Vzbid0IGV4aXN0
IGxvY2FsbHkuICBMZXQncyBmZXRjaCBpdC4KKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgcmVx
ID0gUmVxdWVzdCh1cmwpCisgICAgICAgICAgICBfYXV0aG9yaXplKHJlcSwgYXV0aF9maWxlKQor
ICAgICAgICAgICAgZiA9IHVybGxpYjIudXJsb3BlbihyZXEpCisgICAgICAgICAgICBsb2cuZGVi
dWcoIm9wZW5lZCAlcyBmb3IgcmVhZGluZyIgJSB1cmwpCisgICAgICAgICAgICB3aXRoIG9wZW4o
dGVtcF9wYXRoLCAqKm9wZW5fYXR0cnMpIGFzIG91dDoKKyAgICAgICAgICAgICAgICBrID0gVHJ1
ZQorICAgICAgICAgICAgICAgIHNpemUgPSAwCisgICAgICAgICAgICAgICAgd2hpbGUgazoKKyAg
ICAgICAgICAgICAgICAgICAgIyBUT0RPOiBwcmludCBzdGF0aXN0aWNzIGFzIGZpbGUgdHJhbnNm
ZXJzIGhhcHBlbiBib3RoIGZvciBpbmZvIGFuZCB0byBzdG9wCisgICAgICAgICAgICAgICAgICAg
ICMgYnVpbGRib3QgdGltZW91dHMKKyAgICAgICAgICAgICAgICAgICAgaW5kYXRhID0gZi5yZWFk
KGdyYWJjaHVuaykKKyAgICAgICAgICAgICAgICAgICAgaWYgUFkzOgorICAgICAgICAgICAgICAg
ICAgICAgICAgaW5kYXRhID0gdG9fdGV4dChpbmRhdGEpCisgICAgICAgICAgICAgICAgICAgIG91
dC53cml0ZShpbmRhdGEpCisgICAgICAgICAgICAgICAgICAgIHNpemUgKz0gbGVuKGluZGF0YSkK
KyAgICAgICAgICAgICAgICAgICAgaWYgbGVuKGluZGF0YSkgPT0gMDoKKyAgICAgICAgICAgICAg
ICAgICAgICAgIGsgPSBGYWxzZQorICAgICAgICAgICAgICAgIGxvZy5pbmZvKCJGaWxlICVzIGZl
dGNoZWQgZnJvbSAlcyBhcyAlcyIgJQorICAgICAgICAgICAgICAgICAgICAgICAgIChmaWxlX3Jl
Y29yZC5maWxlbmFtZSwgYmFzZV91cmwsIHRlbXBfcGF0aCkpCisgICAgICAgICAgICAgICAgZmV0
Y2hlZF9wYXRoID0gdGVtcF9wYXRoCisgICAgICAgICAgICAgICAgYnJlYWsKKyAgICAgICAgZXhj
ZXB0IChVUkxFcnJvciwgSFRUUEVycm9yLCBWYWx1ZUVycm9yKToKKyAgICAgICAgICAgIGxvZy5p
bmZvKCIuLi5mYWlsZWQgdG8gZmV0Y2ggJyVzJyBmcm9tICVzIiAlCisgICAgICAgICAgICAgICAg
ICAgICAoZmlsZV9yZWNvcmQuZmlsZW5hbWUsIGJhc2VfdXJsKSwgZXhjX2luZm89VHJ1ZSkKKyAg
ICAgICAgZXhjZXB0IElPRXJyb3I6ICAjIHByYWdtYTogbm8gY292ZXIKKyAgICAgICAgICAgIGxv
Zy5pbmZvKCJmYWlsZWQgdG8gd3JpdGUgdG8gdGVtcG9yYXJ5IGZpbGUgZm9yICclcyciICUKKyAg
ICAgICAgICAgICAgICAgICAgIGZpbGVfcmVjb3JkLmZpbGVuYW1lLCBleGNfaW5mbz1UcnVlKQor
CisgICAgIyBjbGVhbnVwIHRlbXAgZmlsZSBpbiBjYXNlIG9mIGlzc3VlcworICAgIGlmIGZldGNo
ZWRfcGF0aDoKKyAgICAgICAgcmV0dXJuIG9zLnBhdGguc3BsaXQoZmV0Y2hlZF9wYXRoKVsxXQor
ICAgIGVsc2U6CisgICAgICAgIHRyeToKKyAgICAgICAgICAgIG9zLnJlbW92ZSh0ZW1wX3BhdGgp
CisgICAgICAgIGV4Y2VwdCBPU0Vycm9yOiAgIyBwcmFnbWE6IG5vIGNvdmVyCisgICAgICAgICAg
ICBwYXNzCisgICAgICAgIHJldHVybiBOb25lCisKKworZGVmIGNsZWFuX3BhdGgoZGlybmFtZSk6
CisgICAgIiIiUmVtb3ZlIGEgc3VidHJlZSBpZiBpcyBleGlzdHMuIEhlbHBlciBmb3IgdW5wYWNr
X2ZpbGUoKS4iIiIKKyAgICBpZiBvcy5wYXRoLmV4aXN0cyhkaXJuYW1lKToKKyAgICAgICAgbG9n
LmluZm8oJ3JtIHRyZWU6ICVzJyAlIGRpcm5hbWUpCisgICAgICAgIHNodXRpbC5ybXRyZWUoZGly
bmFtZSkKKworCitDSEVDS1NVTV9TVUZGSVggPSAiLmNoZWNrc3VtIgorCisKK2RlZiB1bnBhY2tf
ZmlsZShmaWxlbmFtZSk6CisgICAgIiIiVW50YXIgYGZpbGVuYW1lYCwgYXNzdW1pbmcgaXQgaXMg
dW5jb21wcmVzc2VkIG9yIGNvbXByZXNzZWQgd2l0aCBiemlwMiwKKyAgICB4eiwgZ3ppcCwgb3Ig
dW56aXAgYSB6aXAgZmlsZS4gVGhlIGZpbGUgaXMgYXNzdW1lZCB0byBjb250YWluIGEgc2luZ2xl
CisgICAgZGlyZWN0b3J5IHdpdGggYSBuYW1lIG1hdGNoaW5nIHRoZSBiYXNlIG9mIHRoZSBnaXZl
biBmaWxlbmFtZS4KKyAgICBYeiBzdXBwb3J0IGlzIGhhbmRsZWQgYnkgc2hlbGxpbmcgb3V0IHRv
ICd0YXInLiIiIgorICAgIGlmIG9zLnBhdGguaXNmaWxlKGZpbGVuYW1lKSBhbmQgdGFyZmlsZS5p
c190YXJmaWxlKGZpbGVuYW1lKToKKyAgICAgICAgdGFyX2ZpbGUsIHppcF9leHQgPSBvcy5wYXRo
LnNwbGl0ZXh0KGZpbGVuYW1lKQorICAgICAgICBiYXNlX2ZpbGUsIHRhcl9leHQgPSBvcy5wYXRo
LnNwbGl0ZXh0KHRhcl9maWxlKQorICAgICAgICBjbGVhbl9wYXRoKGJhc2VfZmlsZSkKKyAgICAg
ICAgbG9nLmluZm8oJ3VudGFycmluZyAiJXMiJyAlIGZpbGVuYW1lKQorICAgICAgICB0YXIgPSB0
YXJmaWxlLm9wZW4oZmlsZW5hbWUpCisgICAgICAgIHRhci5leHRyYWN0YWxsKCkKKyAgICAgICAg
dGFyLmNsb3NlKCkKKyAgICBlbGlmIG9zLnBhdGguaXNmaWxlKGZpbGVuYW1lKSBhbmQgZmlsZW5h
bWUuZW5kc3dpdGgoJy50YXIueHonKToKKyAgICAgICAgYmFzZV9maWxlID0gZmlsZW5hbWUucmVw
bGFjZSgnLnRhci54eicsICcnKQorICAgICAgICBjbGVhbl9wYXRoKGJhc2VfZmlsZSkKKyAgICAg
ICAgbG9nLmluZm8oJ3VudGFycmluZyAiJXMiJyAlIGZpbGVuYW1lKQorICAgICAgICAjIE5vdCB1
c2luZyB0YXIgLUp4ZiBiZWNhdXNlIGl0IGZhaWxzIG9uIFdpbmRvd3MgZm9yIHNvbWUgcmVhc29u
LgorICAgICAgICBwcm9jZXNzID0gUG9wZW4oWyd4eicsICctZCcsICctYycsIGZpbGVuYW1lXSwg
c3Rkb3V0PVBJUEUpCisgICAgICAgIHN0ZG91dCwgc3RkZXJyID0gcHJvY2Vzcy5jb21tdW5pY2F0
ZSgpCisgICAgICAgIGlmIHByb2Nlc3MucmV0dXJuY29kZSAhPSAwOgorICAgICAgICAgICAgcmV0
dXJuIEZhbHNlCisgICAgICAgIGZpbGVvYmogPSBCeXRlc0lPKCkKKyAgICAgICAgZmlsZW9iai53
cml0ZShzdGRvdXQpCisgICAgICAgIGZpbGVvYmouc2VlaygwKQorICAgICAgICB0YXIgPSB0YXJm
aWxlLm9wZW4oZmlsZW9iaj1maWxlb2JqLCBtb2RlPSdyfCcpCisgICAgICAgIHRhci5leHRyYWN0
YWxsKCkKKyAgICAgICAgdGFyLmNsb3NlKCkKKyAgICBlbGlmIG9zLnBhdGguaXNmaWxlKGZpbGVu
YW1lKSBhbmQgemlwZmlsZS5pc196aXBmaWxlKGZpbGVuYW1lKToKKyAgICAgICAgYmFzZV9maWxl
ID0gZmlsZW5hbWUucmVwbGFjZSgnLnppcCcsICcnKQorICAgICAgICBjbGVhbl9wYXRoKGJhc2Vf
ZmlsZSkKKyAgICAgICAgbG9nLmluZm8oJ3VuemlwcGluZyAiJXMiJyAlIGZpbGVuYW1lKQorICAg
ICAgICB6ID0gemlwZmlsZS5aaXBGaWxlKGZpbGVuYW1lKQorICAgICAgICB6LmV4dHJhY3RhbGwo
KQorICAgICAgICB6LmNsb3NlKCkKKyAgICBlbHNlOgorICAgICAgICBsb2cuZXJyb3IoIlVua25v
d24gYXJjaGl2ZSBleHRlbnNpb24gZm9yIGZpbGVuYW1lICclcyciICUgZmlsZW5hbWUpCisgICAg
ICAgIHJldHVybiBGYWxzZQorICAgIHJldHVybiBUcnVlCisKKworZGVmIGZldGNoX2ZpbGVzKG1h
bmlmZXN0X2ZpbGUsIGJhc2VfdXJscywgZmlsZW5hbWVzPVtdLCBjYWNoZV9mb2xkZXI9Tm9uZSwK
KyAgICAgICAgICAgICAgICBhdXRoX2ZpbGU9Tm9uZSwgcmVnaW9uPU5vbmUpOgorICAgICMgTGV0
cyBsb2FkIHRoZSBtYW5pZmVzdCBmaWxlCisgICAgdHJ5OgorICAgICAgICBtYW5pZmVzdCA9IG9w
ZW5fbWFuaWZlc3QobWFuaWZlc3RfZmlsZSkKKyAgICBleGNlcHQgSW52YWxpZE1hbmlmZXN0IGFz
IGU6CisgICAgICAgIGxvZy5lcnJvcigiZmFpbGVkIHRvIGxvYWQgbWFuaWZlc3QgZmlsZSBhdCAn
JXMnOiAlcyIgJSAoCisgICAgICAgICAgICBtYW5pZmVzdF9maWxlLAorICAgICAgICAgICAgc3Ry
KGUpLAorICAgICAgICApKQorICAgICAgICByZXR1cm4gRmFsc2UKKworICAgICMgd2Ugd2FudCB0
byB0cmFjayBmaWxlcyBhbHJlYWR5IGluIGN1cnJlbnQgd29ya2luZyBkaXJlY3RvcnkgQU5EIHZh
bGlkCisgICAgIyB3ZSB3aWxsIG5vdCBuZWVkIHRvIGZldGNoIHRoZXNlCisgICAgcHJlc2VudF9m
aWxlcyA9IFtdCisKKyAgICAjIFdlIHdhbnQgdG8gdHJhY2sgZmlsZXMgdGhhdCBmYWlsIHRvIGJl
IGZldGNoZWQgYXMgd2VsbCBhcworICAgICMgZmlsZXMgdGhhdCBhcmUgZmV0Y2hlZAorICAgIGZh
aWxlZF9maWxlcyA9IFtdCisgICAgZmV0Y2hlZF9maWxlcyA9IFtdCisKKyAgICAjIEZpbGVzIHRo
YXQgd2Ugd2FudCB0byB1bnBhY2suCisgICAgdW5wYWNrX2ZpbGVzID0gW10KKworICAgICMgTGV0
cyBnbyB0aHJvdWdoIHRoZSBtYW5pZmVzdCBhbmQgZmV0Y2ggdGhlIGZpbGVzIHRoYXQgd2Ugd2Fu
dAorICAgIGZvciBmIGluIG1hbmlmZXN0LmZpbGVfcmVjb3JkczoKKyAgICAgICAgIyBjYXNlIDE6
IGZpbGVzIGFyZSBhbHJlYWR5IHByZXNlbnQKKyAgICAgICAgaWYgZi5wcmVzZW50KCk6CisgICAg
ICAgICAgICBpZiBmLnZhbGlkYXRlKCk6CisgICAgICAgICAgICAgICAgcHJlc2VudF9maWxlcy5h
cHBlbmQoZi5maWxlbmFtZSkKKyAgICAgICAgICAgICAgICBpZiBmLnVucGFjazoKKyAgICAgICAg
ICAgICAgICAgICAgdW5wYWNrX2ZpbGVzLmFwcGVuZChmLmZpbGVuYW1lKQorICAgICAgICAgICAg
ZWxzZToKKyAgICAgICAgICAgICAgICAjIHdlIGhhdmUgYW4gaW52YWxpZCBmaWxlIGhlcmUsIGJl
dHRlciB0byBjbGVhbnVwIQorICAgICAgICAgICAgICAgICMgdGhpcyBpbnZhbGlkIGZpbGUgbmVl
ZHMgdG8gYmUgcmVwbGFjZWQgd2l0aCBhIGdvb2Qgb25lCisgICAgICAgICAgICAgICAgIyBmcm9t
IHRoZSBsb2NhbCBjYXNoIG9yIGZldGNoZWQgZnJvbSBhIHRvb2x0b29sIHNlcnZlcgorICAgICAg
ICAgICAgICAgIGxvZy5pbmZvKCJGaWxlICVzIGlzIHByZXNlbnQgbG9jYWxseSBidXQgaXQgaXMg
aW52YWxpZCwgc28gSSB3aWxsIHJlbW92ZSBpdCAiCisgICAgICAgICAgICAgICAgICAgICAgICAg
ImFuZCB0cnkgdG8gZmV0Y2ggaXQiICUgZi5maWxlbmFtZSkKKyAgICAgICAgICAgICAgICBvcy5y
ZW1vdmUob3MucGF0aC5qb2luKG9zLmdldGN3ZCgpLCBmLmZpbGVuYW1lKSkKKworICAgICAgICAj
IGNoZWNrIGlmIGZpbGUgaXMgYWxyZWFkeSBpbiBjYWNoZQorICAgICAgICBpZiBjYWNoZV9mb2xk
ZXIgYW5kIGYuZmlsZW5hbWUgbm90IGluIHByZXNlbnRfZmlsZXM6CisgICAgICAgICAgICB0cnk6
CisgICAgICAgICAgICAgICAgc2h1dGlsLmNvcHkob3MucGF0aC5qb2luKGNhY2hlX2ZvbGRlciwg
Zi5kaWdlc3QpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9zLnBhdGguam9pbihvcy5n
ZXRjd2QoKSwgZi5maWxlbmFtZSkpCisgICAgICAgICAgICAgICAgbG9nLmluZm8oIkZpbGUgJXMg
cmV0cmlldmVkIGZyb20gbG9jYWwgY2FjaGUgJXMiICUKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAoZi5maWxlbmFtZSwgY2FjaGVfZm9sZGVyKSkKKyAgICAgICAgICAgICAgICB0b3VjaChvcy5w
YXRoLmpvaW4oY2FjaGVfZm9sZGVyLCBmLmRpZ2VzdCkpCisKKyAgICAgICAgICAgICAgICBmaWxl
cmVjb3JkX2Zvcl92YWxpZGF0aW9uID0gRmlsZVJlY29yZCgKKyAgICAgICAgICAgICAgICAgICAg
Zi5maWxlbmFtZSwgZi5zaXplLCBmLmRpZ2VzdCwgZi5hbGdvcml0aG0pCisgICAgICAgICAgICAg
ICAgaWYgZmlsZXJlY29yZF9mb3JfdmFsaWRhdGlvbi52YWxpZGF0ZSgpOgorICAgICAgICAgICAg
ICAgICAgICBwcmVzZW50X2ZpbGVzLmFwcGVuZChmLmZpbGVuYW1lKQorICAgICAgICAgICAgICAg
ICAgICBpZiBmLnVucGFjazoKKyAgICAgICAgICAgICAgICAgICAgICAgIHVucGFja19maWxlcy5h
cHBlbmQoZi5maWxlbmFtZSkKKyAgICAgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAg
ICAgICAjIHRoZSBmaWxlIGNvcGllZCBmcm9tIHRoZSBjYWNoZSBpcyBpbnZhbGlkLCBiZXR0ZXIg
dG8KKyAgICAgICAgICAgICAgICAgICAgIyBjbGVhbiB1cCB0aGUgY2FjaGUgdmVyc2lvbiBpdHNl
bGYgYXMgd2VsbAorICAgICAgICAgICAgICAgICAgICBsb2cud2FybigiRmlsZSAlcyByZXRyaWV2
ZWQgZnJvbSBjYWNoZSBpcyBpbnZhbGlkISBJIGFtIGRlbGV0aW5nIGl0IGZyb20gdGhlICIKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgImNhY2hlIGFzIHdlbGwiICUgZi5maWxlbmFtZSkK
KyAgICAgICAgICAgICAgICAgICAgb3MucmVtb3ZlKG9zLnBhdGguam9pbihvcy5nZXRjd2QoKSwg
Zi5maWxlbmFtZSkpCisgICAgICAgICAgICAgICAgICAgIG9zLnJlbW92ZShvcy5wYXRoLmpvaW4o
Y2FjaGVfZm9sZGVyLCBmLmRpZ2VzdCkpCisgICAgICAgICAgICBleGNlcHQgSU9FcnJvcjoKKyAg
ICAgICAgICAgICAgICBsb2cuaW5mbygiRmlsZSAlcyBub3QgcHJlc2VudCBpbiBsb2NhbCBjYWNo
ZSBmb2xkZXIgJXMiICUKKyAgICAgICAgICAgICAgICAgICAgICAgICAoZi5maWxlbmFtZSwgY2Fj
aGVfZm9sZGVyKSkKKworICAgICAgICAjIG5vdyBJIHdpbGwgdHJ5IHRvIGZldGNoIGFsbCBmaWxl
cyB3aGljaCBhcmUgbm90IGFscmVhZHkgcHJlc2VudCBhbmQKKyAgICAgICAgIyB2YWxpZCwgYXBw
ZW5kaW5nIGEgc3VmZml4IHRvIGF2b2lkIHJhY2UgY29uZGl0aW9ucworICAgICAgICB0ZW1wX2Zp
bGVfbmFtZSA9IE5vbmUKKyAgICAgICAgIyAnZmlsZW5hbWVzJyBpcyB0aGUgbGlzdCBvZiBmaWxl
bmFtZXMgdG8gYmUgbWFuYWdlZCwgaWYgdGhpcyB2YXJpYWJsZQorICAgICAgICAjIGlzIGEgbm9u
IGVtcHR5IGxpc3QgaXQgY2FuIGJlIHVzZWQgdG8gZmlsdGVyIGlmIGZpbGVuYW1lIGlzIGluCisg
ICAgICAgICMgcHJlc2VudF9maWxlcywgaXQgbWVhbnMgdGhhdCBJIGhhdmUgaXQgYWxyZWFkeSBi
ZWNhdXNlIGl0IHdhcyBhbHJlYWR5CisgICAgICAgICMgZWl0aGVyIGluIHRoZSB3b3JraW5nIGRp
ciBvciBpbiB0aGUgY2FjaGUKKyAgICAgICAgaWYgKGYuZmlsZW5hbWUgaW4gZmlsZW5hbWVzIG9y
IGxlbihmaWxlbmFtZXMpID09IDApIGFuZCBmLmZpbGVuYW1lIG5vdCBpbiBwcmVzZW50X2ZpbGVz
OgorICAgICAgICAgICAgbG9nLmRlYnVnKCJmZXRjaGluZyAlcyIgJSBmLmZpbGVuYW1lKQorICAg
ICAgICAgICAgdGVtcF9maWxlX25hbWUgPSBmZXRjaF9maWxlKGJhc2VfdXJscywgZiwgYXV0aF9m
aWxlPWF1dGhfZmlsZSwgcmVnaW9uPXJlZ2lvbikKKyAgICAgICAgICAgIGlmIHRlbXBfZmlsZV9u
YW1lOgorICAgICAgICAgICAgICAgIGZldGNoZWRfZmlsZXMuYXBwZW5kKChmLCB0ZW1wX2ZpbGVf
bmFtZSkpCisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgIGZhaWxlZF9maWxlcy5h
cHBlbmQoZi5maWxlbmFtZSkKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIGxvZy5kZWJ1Zygi
c2tpcHBpbmcgJXMiICUgZi5maWxlbmFtZSkKKworICAgICMgbGV0cyBlbnN1cmUgdGhhdCBmZXRj
aGVkIGZpbGVzIG1hdGNoIHdoYXQgdGhlIG1hbmlmZXN0IHNwZWNpZmllZAorICAgIGZvciBsb2Nh
bGZpbGUsIHRlbXBfZmlsZV9uYW1lIGluIGZldGNoZWRfZmlsZXM6CisgICAgICAgICMgc2luY2Ug
SSBkb3dubG9hZGVkIHRvIGEgdGVtcCBmaWxlLCBJIG5lZWQgdG8gcGVyZm9ybSBhbGwgdmFsaWRh
dGlvbnMgb24gdGhlIHRlbXAgZmlsZQorICAgICAgICAjIHRoaXMgaXMgd2h5IGZpbGVyZWNvcmRf
Zm9yX3ZhbGlkYXRpb24gaXMgY3JlYXRlZAorCisgICAgICAgIGZpbGVyZWNvcmRfZm9yX3ZhbGlk
YXRpb24gPSBGaWxlUmVjb3JkKAorICAgICAgICAgICAgdGVtcF9maWxlX25hbWUsIGxvY2FsZmls
ZS5zaXplLCBsb2NhbGZpbGUuZGlnZXN0LCBsb2NhbGZpbGUuYWxnb3JpdGhtKQorCisgICAgICAg
IGlmIGZpbGVyZWNvcmRfZm9yX3ZhbGlkYXRpb24udmFsaWRhdGUoKToKKyAgICAgICAgICAgICMg
Z3JlYXQhCisgICAgICAgICAgICAjIEkgY2FuIHJlbmFtZSB0aGUgdGVtcCBmaWxlCisgICAgICAg
ICAgICBsb2cuaW5mbygiRmlsZSBpbnRlZ3JpdHkgdmVyaWZpZWQsIHJlbmFtaW5nICVzIHRvICVz
IiAlCisgICAgICAgICAgICAgICAgICAgICAodGVtcF9maWxlX25hbWUsIGxvY2FsZmlsZS5maWxl
bmFtZSkpCisgICAgICAgICAgICBvcy5yZW5hbWUob3MucGF0aC5qb2luKG9zLmdldGN3ZCgpLCB0
ZW1wX2ZpbGVfbmFtZSksCisgICAgICAgICAgICAgICAgICAgICAgb3MucGF0aC5qb2luKG9zLmdl
dGN3ZCgpLCBsb2NhbGZpbGUuZmlsZW5hbWUpKQorCisgICAgICAgICAgICBpZiBsb2NhbGZpbGUu
dW5wYWNrOgorICAgICAgICAgICAgICAgIHVucGFja19maWxlcy5hcHBlbmQobG9jYWxmaWxlLmZp
bGVuYW1lKQorCisgICAgICAgICAgICAjIGlmIEkgYW0gdXNpbmcgYSBjYWNoZSBhbmQgYSBuZXcg
ZmlsZSBoYXMganVzdCBiZWVuIHJldHJpZXZlZCBmcm9tIGEKKyAgICAgICAgICAgICMgcmVtb3Rl
IGxvY2F0aW9uLCBJIG5lZWQgdG8gdXBkYXRlIHRoZSBjYWNoZSBhcyB3ZWxsCisgICAgICAgICAg
ICBpZiBjYWNoZV9mb2xkZXI6CisgICAgICAgICAgICAgICAgbG9nLmluZm8oIlVwZGF0aW5nIGxv
Y2FsIGNhY2hlICVzLi4uIiAlIGNhY2hlX2ZvbGRlcikKKyAgICAgICAgICAgICAgICB0cnk6Cisg
ICAgICAgICAgICAgICAgICAgIGlmIG5vdCBvcy5wYXRoLmV4aXN0cyhjYWNoZV9mb2xkZXIpOgor
ICAgICAgICAgICAgICAgICAgICAgICAgbG9nLmluZm8oIkNyZWF0aW5nIGNhY2hlIGluICVzLi4u
IiAlIGNhY2hlX2ZvbGRlcikKKyAgICAgICAgICAgICAgICAgICAgICAgIG9zLm1ha2VkaXJzKGNh
Y2hlX2ZvbGRlciwgMG8wNzAwKQorICAgICAgICAgICAgICAgICAgICBzaHV0aWwuY29weShvcy5w
YXRoLmpvaW4ob3MuZ2V0Y3dkKCksIGxvY2FsZmlsZS5maWxlbmFtZSksCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIG9zLnBhdGguam9pbihjYWNoZV9mb2xkZXIsIGxvY2FsZmlsZS5k
aWdlc3QpKQorICAgICAgICAgICAgICAgICAgICBsb2cuaW5mbygiTG9jYWwgY2FjaGUgJXMgdXBk
YXRlZCB3aXRoICVzIiAlIChjYWNoZV9mb2xkZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvY2FsZmlsZS5maWxlbmFt
ZSkpCisgICAgICAgICAgICAgICAgICAgIHRvdWNoKG9zLnBhdGguam9pbihjYWNoZV9mb2xkZXIs
IGxvY2FsZmlsZS5kaWdlc3QpKQorICAgICAgICAgICAgICAgIGV4Y2VwdCAoT1NFcnJvciwgSU9F
cnJvcik6CisgICAgICAgICAgICAgICAgICAgIGxvZy53YXJuaW5nKCdJbXBvc3NpYmxlIHRvIGFk
ZCBmaWxlICVzIHRvIGNhY2hlIGZvbGRlciAlcycgJQorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAobG9jYWxmaWxlLmZpbGVuYW1lLCBjYWNoZV9mb2xkZXIpLCBleGNfaW5mbz1UcnVl
KQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgZmFpbGVkX2ZpbGVzLmFwcGVuZChsb2NhbGZp
bGUuZmlsZW5hbWUpCisgICAgICAgICAgICBsb2cuZXJyb3IoIiclcyciICUgZmlsZXJlY29yZF9m
b3JfdmFsaWRhdGlvbi5kZXNjcmliZSgpKQorICAgICAgICAgICAgb3MucmVtb3ZlKHRlbXBfZmls
ZV9uYW1lKQorCisgICAgIyBVbnBhY2sgZmlsZXMgdGhhdCBuZWVkIHRvIGJlIHVucGFja2VkLgor
ICAgIGZvciBmaWxlbmFtZSBpbiB1bnBhY2tfZmlsZXM6CisgICAgICAgIGlmIG5vdCB1bnBhY2tf
ZmlsZShmaWxlbmFtZSk6CisgICAgICAgICAgICBmYWlsZWRfZmlsZXMuYXBwZW5kKGZpbGVuYW1l
KQorCisgICAgIyBJZiB3ZSBmYWlsZWQgdG8gZmV0Y2ggb3IgdmFsaWRhdGUgYSBmaWxlLCB3ZSBu
ZWVkIHRvIGZhaWwKKyAgICBpZiBsZW4oZmFpbGVkX2ZpbGVzKSA+IDA6CisgICAgICAgIGxvZy5l
cnJvcigiVGhlIGZvbGxvd2luZyBmaWxlcyBmYWlsZWQ6ICclcyciICUKKyAgICAgICAgICAgICAg
ICAgICInLCAiLmpvaW4oZmFpbGVkX2ZpbGVzKSkKKyAgICAgICAgcmV0dXJuIEZhbHNlCisgICAg
cmV0dXJuIFRydWUKKworCitkZWYgZnJlZXNwYWNlKHApOgorICAgICJSZXR1cm5zIHRoZSBudW1i
ZXIgb2YgYnl0ZXMgZnJlZSB1bmRlciBkaXJlY3RvcnkgYHBgIgorICAgIGlmIHN5cy5wbGF0Zm9y
bSA9PSAnd2luMzInOiAgIyBwcmFnbWE6IG5vIGNvdmVyCisgICAgICAgICMgb3Muc3RhdHZmcyBk
b2Vzbid0IHdvcmsgb24gV2luZG93cworICAgICAgICBpbXBvcnQgd2luMzJmaWxlCisKKyAgICAg
ICAgc2Vjc1BlckNsdXMsIGJ5dGVzUGVyU2VjLCBuRnJlZUNsdXMsIHRvdENsdXMgPSB3aW4zMmZp
bGUuR2V0RGlza0ZyZWVTcGFjZSgKKyAgICAgICAgICAgIHApCisgICAgICAgIHJldHVybiBzZWNz
UGVyQ2x1cyAqIGJ5dGVzUGVyU2VjICogbkZyZWVDbHVzCisgICAgZWxzZToKKyAgICAgICAgciA9
IG9zLnN0YXR2ZnMocCkKKyAgICAgICAgcmV0dXJuIHIuZl9mcnNpemUgKiByLmZfYmF2YWlsCisK
KworZGVmIHB1cmdlKGZvbGRlciwgZ2lncyk6CisgICAgIiIiSWYgZ2lncyBpcyBub24gMCwgaXQg
ZGVsZXRlcyBmaWxlcyBpbiBgZm9sZGVyYCB1bnRpbCBgZ2lnc2AgR0IgYXJlIGZyZWUsCisgICAg
c3RhcnRpbmcgZnJvbSBvbGRlciBmaWxlcy4gIElmIGdpZ3MgaXMgMCwgYSBmdWxsIHB1cmdlIHdp
bGwgYmUgcGVyZm9ybWVkLgorICAgIE5vIHJlY3Vyc2l2ZSBkZWxldGlvbiBvZiBmaWxlcyBpbiBz
dWJmb2xkZXIgaXMgcGVyZm9ybWVkLiIiIgorCisgICAgZnVsbF9wdXJnZSA9IGJvb2woZ2lncyA9
PSAwKQorICAgIGdpZ3MgKj0gMTAyNCAqIDEwMjQgKiAxMDI0CisKKyAgICBpZiBub3QgZnVsbF9w
dXJnZSBhbmQgZnJlZXNwYWNlKGZvbGRlcikgPj0gZ2lnczoKKyAgICAgICAgbG9nLmluZm8oIk5v
IG5lZWQgdG8gY2xlYW51cCIpCisgICAgICAgIHJldHVybgorCisgICAgZmlsZXMgPSBbXQorICAg
IGZvciBmIGluIG9zLmxpc3RkaXIoZm9sZGVyKToKKyAgICAgICAgcCA9IG9zLnBhdGguam9pbihm
b2xkZXIsIGYpCisgICAgICAgICMgaXQgZGVsZXRlcyBmaWxlcyBpbiBmb2xkZXIgd2l0aG91dCBn
b2luZyBpbnRvIHN1YmZvbGRlcnMsCisgICAgICAgICMgYXNzdW1pbmcgdGhlIGNhY2hlIGhhcyBh
IGZsYXQgc3RydWN0dXJlCisgICAgICAgIGlmIG5vdCBvcy5wYXRoLmlzZmlsZShwKToKKyAgICAg
ICAgICAgIGNvbnRpbnVlCisgICAgICAgIG10aW1lID0gb3MucGF0aC5nZXRtdGltZShwKQorICAg
ICAgICBmaWxlcy5hcHBlbmQoKG10aW1lLCBwKSkKKworICAgICMgaXRlcmF0ZSBmaWxlcyBzb3J0
ZWQgYnkgbXRpbWUKKyAgICBmb3IgXywgZiBpbiBzb3J0ZWQoZmlsZXMpOgorICAgICAgICBsb2cu
aW5mbygicmVtb3ZpbmcgJXMgdG8gZnJlZSB1cCBzcGFjZSIgJSBmKQorICAgICAgICB0cnk6Cisg
ICAgICAgICAgICBvcy5yZW1vdmUoZikKKyAgICAgICAgZXhjZXB0IE9TRXJyb3I6CisgICAgICAg
ICAgICBsb2cuaW5mbygiSW1wb3NzaWJsZSB0byByZW1vdmUgJXMiICUgZiwgZXhjX2luZm89VHJ1
ZSkKKyAgICAgICAgaWYgbm90IGZ1bGxfcHVyZ2UgYW5kIGZyZWVzcGFjZShmb2xkZXIpID49IGdp
Z3M6CisgICAgICAgICAgICBicmVhaworCisKK2RlZiBfbG9nX2FwaV9lcnJvcihlKToKKyAgICBp
ZiBoYXNhdHRyKGUsICdoZHJzJykgYW5kIGUuaGRyc1snY29udGVudC10eXBlJ10gPT0gJ2FwcGxp
Y2F0aW9uL2pzb24nOgorICAgICAgICBqc29uX3Jlc3AgPSBqc29uLmxvYWQoZS5mcCkKKyAgICAg
ICAgbG9nLmVycm9yKCIlczogJXMiICUgKGpzb25fcmVzcFsnZXJyb3InXVsnbmFtZSddLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAganNvbl9yZXNwWydlcnJvciddWydkZXNjcmlwdGlv
biddKSkKKyAgICBlbHNlOgorICAgICAgICBsb2cuZXhjZXB0aW9uKCJFcnJvciBtYWtpbmcgUmVs
ZW5nQVBJIHJlcXVlc3Q6IikKKworCitkZWYgX2F1dGhvcml6ZShyZXEsIGF1dGhfZmlsZSk6Cisg
ICAgaWYgbm90IGF1dGhfZmlsZToKKyAgICAgICAgcmV0dXJuCisKKyAgICBpc190YXNrY2x1c3Rl
cl9hdXRoID0gRmFsc2UKKyAgICB3aXRoIG9wZW4oYXV0aF9maWxlKSBhcyBmOgorICAgICAgICBh
dXRoX2ZpbGVfY29udGVudCA9IGYucmVhZCgpLnN0cmlwKCkKKyAgICAgICAgdHJ5OgorICAgICAg
ICAgICAgYXV0aF9maWxlX2NvbnRlbnQgPSBqc29uLmxvYWRzKGF1dGhfZmlsZV9jb250ZW50KQor
ICAgICAgICAgICAgaXNfdGFza2NsdXN0ZXJfYXV0aCA9IFRydWUKKyAgICAgICAgZXhjZXB0IEV4
Y2VwdGlvbjoKKyAgICAgICAgICAgIHBhc3MKKworICAgIGlmIGlzX3Rhc2tjbHVzdGVyX2F1dGg6
CisgICAgICAgIHRhc2tjbHVzdGVyX2hlYWRlciA9IG1ha2VfdGFza2NsdXN0ZXJfaGVhZGVyKGF1
dGhfZmlsZV9jb250ZW50LCByZXEpCisgICAgICAgIGxvZy5kZWJ1ZygiVXNpbmcgdGFza2NsdXN0
ZXIgY3JlZGVudGlhbHMgaW4gJXMiICUgYXV0aF9maWxlKQorICAgICAgICByZXEuYWRkX3VucmVk
aXJlY3RlZF9oZWFkZXIoJ0F1dGhvcml6YXRpb24nLCB0YXNrY2x1c3Rlcl9oZWFkZXIpCisgICAg
ZWxzZToKKyAgICAgICAgbG9nLmRlYnVnKCJVc2luZyBCZWFyZXIgdG9rZW4gaW4gJXMiICUgYXV0
aF9maWxlKQorICAgICAgICByZXEuYWRkX3VucmVkaXJlY3RlZF9oZWFkZXIoJ0F1dGhvcml6YXRp
b24nLCAnQmVhcmVyICVzJyAlIGF1dGhfZmlsZV9jb250ZW50KQorCisKK2RlZiBfc2VuZF9iYXRj
aChiYXNlX3VybCwgYXV0aF9maWxlLCBiYXRjaCwgcmVnaW9uKToKKyAgICB1cmwgPSB1cmxqb2lu
KGJhc2VfdXJsLCAndXBsb2FkJykKKyAgICBpZiByZWdpb24gaXMgbm90IE5vbmU6CisgICAgICAg
IHVybCArPSAiP3JlZ2lvbj0iICsgcmVnaW9uCisgICAgaWYgUFkzOgorICAgICAgICBkYXRhID0g
dG9fYmluYXJ5KGpzb24uZHVtcHMoYmF0Y2gpKQorICAgIGVsc2U6CisgICAgICAgIGRhdGEgPSBq
c29uLmR1bXBzKGJhdGNoKQorICAgIHJlcSA9IFJlcXVlc3QodXJsLCBkYXRhLCB7J0NvbnRlbnQt
VHlwZSc6ICdhcHBsaWNhdGlvbi9qc29uJ30pCisgICAgX2F1dGhvcml6ZShyZXEsIGF1dGhfZmls
ZSkKKyAgICB0cnk6CisgICAgICAgIHJlc3AgPSB1cmxsaWIyLnVybG9wZW4ocmVxKQorICAgIGV4
Y2VwdCAoVVJMRXJyb3IsIEhUVFBFcnJvcikgYXMgZToKKyAgICAgICAgX2xvZ19hcGlfZXJyb3Io
ZSkKKyAgICAgICAgcmV0dXJuIE5vbmUKKyAgICByZXR1cm4ganNvbi5sb2FkKHJlc3ApWydyZXN1
bHQnXQorCisKK2RlZiBfczNfdXBsb2FkKGZpbGVuYW1lLCBmaWxlKToKKyAgICAjIHVybGxpYjIg
ZG9lcyBub3Qgc3VwcG9ydCBzdHJlYW1pbmcsIHNvIHdlIGZhbGwgYmFjayB0byBnb29kIG9sZCBo
dHRwbGliCisgICAgdXJsID0gdXJscGFyc2UoZmlsZVsncHV0X3VybCddKQorICAgIGNscyA9IEhU
VFBTQ29ubmVjdGlvbiBpZiB1cmwuc2NoZW1lID09ICdodHRwcycgZWxzZSBIVFRQQ29ubmVjdGlv
bgorICAgIGhvc3QsIHBvcnQgPSB1cmwubmV0bG9jLnNwbGl0KCc6JykgaWYgJzonIGluIHVybC5u
ZXRsb2MgZWxzZSAodXJsLm5ldGxvYywgNDQzKQorICAgIHBvcnQgPSBpbnQocG9ydCkKKyAgICBj
b25uID0gY2xzKGhvc3QsIHBvcnQpCisgICAgdHJ5OgorICAgICAgICByZXFfcGF0aCA9ICIlcz8l
cyIgJSAodXJsLnBhdGgsIHVybC5xdWVyeSkgaWYgdXJsLnF1ZXJ5IGVsc2UgdXJsLnBhdGgKKyAg
ICAgICAgd2l0aCBvcGVuKGZpbGVuYW1lLCAncmInKSBhcyBmOgorICAgICAgICAgICAgY29udGVu
dCA9IGYucmVhZCgpCisgICAgICAgICAgICBjb250ZW50X2xlbmd0aCA9IGxlbihjb250ZW50KQor
ICAgICAgICAgICAgZi5zZWVrKDApCisgICAgICAgICAgICBjb25uLnJlcXVlc3QoCisgICAgICAg
ICAgICAgICAgJ1BVVCcsCisgICAgICAgICAgICAgICAgcmVxX3BhdGgsCisgICAgICAgICAgICAg
ICAgZiwKKyAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICdDb250ZW50LVR5
cGUnOiAnYXBwbGljYXRpb24vb2N0ZXQtc3RyZWFtJywKKyAgICAgICAgICAgICAgICAgICAgJ0Nv
bnRlbnQtTGVuZ3RoJzogc3RyKGNvbnRlbnRfbGVuZ3RoKSwKKyAgICAgICAgICAgICAgICB9LAor
ICAgICAgICAgICAgKQorICAgICAgICAgICAgcmVzcCA9IGNvbm4uZ2V0cmVzcG9uc2UoKQorICAg
ICAgICAgICAgcmVzcF9ib2R5ID0gcmVzcC5yZWFkKCkKKyAgICAgICAgICAgIGNvbm4uY2xvc2Uo
KQorICAgICAgICBpZiByZXNwLnN0YXR1cyAhPSAyMDA6CisgICAgICAgICAgICByYWlzZSBSdW50
aW1lRXJyb3IoIk5vbi0yMDAgcmV0dXJuIGZyb20gQVdTOiAlcyAlc1xuJXMiICUKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAocmVzcC5zdGF0dXMsIHJlc3AucmVhc29uLCByZXNwX2Jv
ZHkpKQorICAgIGV4Y2VwdCBFeGNlcHRpb246CisgICAgICAgIGZpbGVbJ3VwbG9hZF9leGNlcHRp
b24nXSA9IHN5cy5leGNfaW5mbygpCisgICAgICAgIGZpbGVbJ3VwbG9hZF9vayddID0gRmFsc2UK
KyAgICBlbHNlOgorICAgICAgICBmaWxlWyd1cGxvYWRfb2snXSA9IFRydWUKKworCitkZWYgX25v
dGlmeV91cGxvYWRfY29tcGxldGUoYmFzZV91cmwsIGF1dGhfZmlsZSwgZmlsZSk6CisgICAgcmVx
ID0gUmVxdWVzdCgKKyAgICAgICAgdXJsam9pbigKKyAgICAgICAgICAgIGJhc2VfdXJsLAorICAg
ICAgICAgICAgJ3VwbG9hZC9jb21wbGV0ZS8lKGFsZ29yaXRobSlzLyUoZGlnZXN0KXMnICUgZmls
ZSkpCisgICAgX2F1dGhvcml6ZShyZXEsIGF1dGhfZmlsZSkKKyAgICB0cnk6CisgICAgICAgIHVy
bGxpYjIudXJsb3BlbihyZXEpCisgICAgZXhjZXB0IEhUVFBFcnJvciBhcyBlOgorICAgICAgICBp
ZiBlLmNvZGUgIT0gNDA5OgorICAgICAgICAgICAgX2xvZ19hcGlfZXJyb3IoZSkKKyAgICAgICAg
ICAgIHJldHVybgorICAgICAgICAjIDQwOSBpbmRpY2F0ZXMgdGhhdCB0aGUgdXBsb2FkIFVSTCBo
YXNuJ3QgZXhwaXJlZCB5ZXQgYW5kIHdlCisgICAgICAgICMgc2hvdWxkIHJldHJ5IGFmdGVyIGEg
ZGVsYXkKKyAgICAgICAgdG9fd2FpdCA9IGludChlLmhlYWRlcnMuZ2V0KCdYLVJldHJ5LUFmdGVy
JywgNjApKQorICAgICAgICBsb2cud2FybmluZygiV2FpdGluZyAlZCBzZWNvbmRzIGZvciB1cGxv
YWQgVVJMcyB0byBleHBpcmUiICUgdG9fd2FpdCkKKyAgICAgICAgdGltZS5zbGVlcCh0b193YWl0
KQorICAgICAgICBfbm90aWZ5X3VwbG9hZF9jb21wbGV0ZShiYXNlX3VybCwgYXV0aF9maWxlLCBm
aWxlKQorICAgIGV4Y2VwdCBFeGNlcHRpb246CisgICAgICAgIGxvZy5leGNlcHRpb24oIldoaWxl
IG5vdGlmeWluZyBzZXJ2ZXIgb2YgdXBsb2FkIGNvbXBsZXRpb246IikKKworCitkZWYgdXBsb2Fk
KG1hbmlmZXN0LCBtZXNzYWdlLCBiYXNlX3VybHMsIGF1dGhfZmlsZSwgcmVnaW9uKToKKyAgICB0
cnk6CisgICAgICAgIG1hbmlmZXN0ID0gb3Blbl9tYW5pZmVzdChtYW5pZmVzdCkKKyAgICBleGNl
cHQgSW52YWxpZE1hbmlmZXN0OgorICAgICAgICBsb2cuZXhjZXB0aW9uKCJmYWlsZWQgdG8gbG9h
ZCBtYW5pZmVzdCBmaWxlIGF0ICclcyciKQorICAgICAgICByZXR1cm4gRmFsc2UKKworICAgICMg
dmVyaWZ5IHRoZSBtYW5pZmVzdCwgc2luY2Ugd2UnbGwgbmVlZCB0aGUgZmlsZXMgcHJlc2VudCB0
byB1cGxvYWQKKyAgICBpZiBub3QgbWFuaWZlc3QudmFsaWRhdGUoKToKKyAgICAgICAgbG9nLmVy
cm9yKCdtYW5pZmVzdCBpcyBpbnZhbGlkJykKKyAgICAgICAgcmV0dXJuIEZhbHNlCisKKyAgICBp
ZiBhbnkoZnIudmlzaWJpbGl0eSBpcyBOb25lIGZvciBmciBpbiBtYW5pZmVzdC5maWxlX3JlY29y
ZHMpOgorICAgICAgICBsb2cuZXJyb3IoJ0FsbCBmaWxlcyBpbiBhIG1hbmlmZXN0IGZvciB1cGxv
YWQgbXVzdCBoYXZlIGEgdmlzaWJpbGl0eSBzZXQnKQorCisgICAgIyBjb252ZXJ0IHRoZSBtYW5p
ZmVzdCB0byBhbiB1cGxvYWQgYmF0Y2gKKyAgICBiYXRjaCA9IHsKKyAgICAgICAgJ21lc3NhZ2Un
OiBtZXNzYWdlLAorICAgICAgICAnZmlsZXMnOiB7fSwKKyAgICB9CisgICAgZm9yIGZyIGluIG1h
bmlmZXN0LmZpbGVfcmVjb3JkczoKKyAgICAgICAgYmF0Y2hbJ2ZpbGVzJ11bZnIuZmlsZW5hbWVd
ID0geworICAgICAgICAgICAgJ3NpemUnOiBmci5zaXplLAorICAgICAgICAgICAgJ2RpZ2VzdCc6
IGZyLmRpZ2VzdCwKKyAgICAgICAgICAgICdhbGdvcml0aG0nOiBmci5hbGdvcml0aG0sCisgICAg
ICAgICAgICAndmlzaWJpbGl0eSc6IGZyLnZpc2liaWxpdHksCisgICAgICAgIH0KKworICAgICMg
bWFrZSB0aGUgdXBsb2FkIHJlcXVlc3QKKyAgICByZXNwID0gX3NlbmRfYmF0Y2goYmFzZV91cmxz
WzBdLCBhdXRoX2ZpbGUsIGJhdGNoLCByZWdpb24pCisgICAgaWYgbm90IHJlc3A6CisgICAgICAg
IHJldHVybiBOb25lCisgICAgZmlsZXMgPSByZXNwWydmaWxlcyddCisKKyAgICAjIFVwbG9hZCB0
aGUgZmlsZXMsIGVhY2ggaW4gYSB0aHJlYWQuICBUaGlzIGFsbG93cyB1cyB0byBzdGFydCBhbGwg
b2YgdGhlCisgICAgIyB1cGxvYWRzIGJlZm9yZSBhbnkgb2YgdGhlIFVSTHMgZXhwaXJlLgorICAg
IHRocmVhZHMgPSB7fQorICAgIGZvciBmaWxlbmFtZSwgZmlsZSBpbiBmaWxlcy5pdGVtcygpOgor
ICAgICAgICBpZiAncHV0X3VybCcgaW4gZmlsZToKKyAgICAgICAgICAgIGxvZy5pbmZvKCIlczog
c3RhcnRpbmcgdXBsb2FkIiAlIChmaWxlbmFtZSwpKQorICAgICAgICAgICAgdGhkID0gdGhyZWFk
aW5nLlRocmVhZCh0YXJnZXQ9X3MzX3VwbG9hZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgYXJncz0oZmlsZW5hbWUsIGZpbGUpKQorICAgICAgICAgICAgdGhkLmRhZW1vbiA9
IDEKKyAgICAgICAgICAgIHRoZC5zdGFydCgpCisgICAgICAgICAgICB0aHJlYWRzW2ZpbGVuYW1l
XSA9IHRoZAorICAgICAgICBlbHNlOgorICAgICAgICAgICAgbG9nLmluZm8oIiVzOiBhbHJlYWR5
IGV4aXN0cyBvbiBzZXJ2ZXIiICUgKGZpbGVuYW1lLCkpCisKKyAgICAjIHJlLWpvaW4gYWxsIG9m
IHRob3NlIHRocmVhZHMgYXMgdGhleSBleGl0CisgICAgc3VjY2VzcyA9IFRydWUKKyAgICB3aGls
ZSB0aHJlYWRzOgorICAgICAgICBmb3IgZmlsZW5hbWUsIHRocmVhZCBpbiBsaXN0KHRocmVhZHMu
aXRlbXMoKSk6CisgICAgICAgICAgICBpZiBub3QgdGhyZWFkLmlzX2FsaXZlKCk6CisgICAgICAg
ICAgICAgICAgIyBfczNfdXBsb2FkIGhhcyBhbm5vdGF0ZWQgZmlsZSB3aXRoIHJlc3VsdCBpbmZv
cm1hdGlvbgorICAgICAgICAgICAgICAgIGZpbGUgPSBmaWxlc1tmaWxlbmFtZV0KKyAgICAgICAg
ICAgICAgICB0aHJlYWQuam9pbigpCisgICAgICAgICAgICAgICAgaWYgZmlsZVsndXBsb2FkX29r
J106CisgICAgICAgICAgICAgICAgICAgIGxvZy5pbmZvKCIlczogdXBsb2FkZWQiICUgZmlsZW5h
bWUpCisgICAgICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICAgICAgbG9nLmVycm9y
KCIlczogZmFpbGVkIiAlIGZpbGVuYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ZXhjX2luZm89ZmlsZVsndXBsb2FkX2V4Y2VwdGlvbiddKQorICAgICAgICAgICAgICAgICAgICBz
dWNjZXNzID0gRmFsc2UKKyAgICAgICAgICAgICAgICBkZWwgdGhyZWFkc1tmaWxlbmFtZV0KKwor
ICAgICMgbm90aWZ5IHRoZSBzZXJ2ZXIgdGhhdCB0aGUgdXBsb2FkcyBhcmUgY29tcGxldGVkLiAg
SWYgdGhlIG5vdGlmaWNhdGlvbgorICAgICMgZmFpbHMsIHdlIGRvbid0IGNvbnNpZGVyIHRoYXQg
YW4gZXJyb3IgKHRoZSBzZXJ2ZXIgd2lsbCBub3RpY2UKKyAgICAjIGV2ZW50dWFsbHkpCisgICAg
Zm9yIGZpbGVuYW1lLCBmaWxlIGluIGZpbGVzLml0ZW1zKCk6CisgICAgICAgIGlmICdwdXRfdXJs
JyBpbiBmaWxlIGFuZCBmaWxlWyd1cGxvYWRfb2snXToKKyAgICAgICAgICAgIGxvZy5pbmZvKCJu
b3RpZnlpbmcgc2VydmVyIG9mIHVwbG9hZCBjb21wbGV0aW9uIGZvciAlcyIgJSAoZmlsZW5hbWUs
KSkKKyAgICAgICAgICAgIF9ub3RpZnlfdXBsb2FkX2NvbXBsZXRlKGJhc2VfdXJsc1swXSwgYXV0
aF9maWxlLCBmaWxlKQorCisgICAgcmV0dXJuIHN1Y2Nlc3MKKworCitkZWYgcHJvY2Vzc19jb21t
YW5kKG9wdGlvbnMsIGFyZ3MpOgorICAgICIiIiBJIGtub3cgaG93IHRvIHRha2UgYSBsaXN0IG9m
IHByb2dyYW0gYXJndW1lbnRzIGFuZAorICAgIHN0YXJ0IGRvaW5nIHRoZSByaWdodCB0aGluZyB3
aXRoIHRoZW0iIiIKKyAgICBjbWQgPSBhcmdzWzBdCisgICAgY21kX2FyZ3MgPSBhcmdzWzE6XQor
ICAgIGxvZy5kZWJ1ZygicHJvY2Vzc2luZyAnJXMnIGNvbW1hbmQgd2l0aCBhcmdzICclcyciICUK
KyAgICAgICAgICAgICAgKGNtZCwgJyIsICInLmpvaW4oY21kX2FyZ3MpKSkKKyAgICBsb2cuZGVi
dWcoInVzaW5nIG9wdGlvbnM6ICVzIiAlIG9wdGlvbnMpCisKKyAgICBpZiBjbWQgPT0gJ2xpc3Qn
OgorICAgICAgICByZXR1cm4gbGlzdF9tYW5pZmVzdChvcHRpb25zWydtYW5pZmVzdCddKQorICAg
IGlmIGNtZCA9PSAndmFsaWRhdGUnOgorICAgICAgICByZXR1cm4gdmFsaWRhdGVfbWFuaWZlc3Qo
b3B0aW9uc1snbWFuaWZlc3QnXSkKKyAgICBlbGlmIGNtZCA9PSAnYWRkJzoKKyAgICAgICAgcmV0
dXJuIGFkZF9maWxlcyhvcHRpb25zWydtYW5pZmVzdCddLCBvcHRpb25zWydhbGdvcml0aG0nXSwg
Y21kX2FyZ3MsCisgICAgICAgICAgICAgICAgICAgICAgICAgb3B0aW9uc1sndmVyc2lvbiddLCBv
cHRpb25zWyd2aXNpYmlsaXR5J10sCisgICAgICAgICAgICAgICAgICAgICAgICAgb3B0aW9uc1sn
dW5wYWNrJ10pCisgICAgZWxpZiBjbWQgPT0gJ3B1cmdlJzoKKyAgICAgICAgaWYgb3B0aW9uc1sn
Y2FjaGVfZm9sZGVyJ106CisgICAgICAgICAgICBwdXJnZShmb2xkZXI9b3B0aW9uc1snY2FjaGVf
Zm9sZGVyJ10sIGdpZ3M9b3B0aW9uc1snc2l6ZSddKQorICAgICAgICBlbHNlOgorICAgICAgICAg
ICAgbG9nLmNyaXRpY2FsKCdwbGVhc2Ugc3BlY2lmeSB0aGUgY2FjaGUgZm9sZGVyIHRvIGJlIHB1
cmdlZCcpCisgICAgICAgICAgICByZXR1cm4gRmFsc2UKKyAgICBlbGlmIGNtZCA9PSAnZmV0Y2gn
OgorICAgICAgICByZXR1cm4gZmV0Y2hfZmlsZXMoCisgICAgICAgICAgICBvcHRpb25zWydtYW5p
ZmVzdCddLAorICAgICAgICAgICAgb3B0aW9uc1snYmFzZV91cmwnXSwKKyAgICAgICAgICAgIGNt
ZF9hcmdzLAorICAgICAgICAgICAgY2FjaGVfZm9sZGVyPW9wdGlvbnNbJ2NhY2hlX2ZvbGRlcidd
LAorICAgICAgICAgICAgYXV0aF9maWxlPW9wdGlvbnMuZ2V0KCJhdXRoX2ZpbGUiKSwKKyAgICAg
ICAgICAgIHJlZ2lvbj1vcHRpb25zLmdldCgncmVnaW9uJykpCisgICAgZWxpZiBjbWQgPT0gJ3Vw
bG9hZCc6CisgICAgICAgIGlmIG5vdCBvcHRpb25zLmdldCgnbWVzc2FnZScpOgorICAgICAgICAg
ICAgbG9nLmNyaXRpY2FsKCd1cGxvYWQgY29tbWFuZCByZXF1aXJlcyBhIG1lc3NhZ2UnKQorICAg
ICAgICAgICAgcmV0dXJuIEZhbHNlCisgICAgICAgIHJldHVybiB1cGxvYWQoCisgICAgICAgICAg
ICBvcHRpb25zLmdldCgnbWFuaWZlc3QnKSwKKyAgICAgICAgICAgIG9wdGlvbnMuZ2V0KCdtZXNz
YWdlJyksCisgICAgICAgICAgICBvcHRpb25zLmdldCgnYmFzZV91cmwnKSwKKyAgICAgICAgICAg
IG9wdGlvbnMuZ2V0KCdhdXRoX2ZpbGUnKSwKKyAgICAgICAgICAgIG9wdGlvbnMuZ2V0KCdyZWdp
b24nKSkKKyAgICBlbHNlOgorICAgICAgICBsb2cuY3JpdGljYWwoJ2NvbW1hbmQgIiVzIiBpcyBu
b3QgaW1wbGVtZW50ZWQnICUgY21kKQorICAgICAgICByZXR1cm4gRmFsc2UKKworCitkZWYgbWFp
bihhcmd2LCBfc2tpcF9sb2dnaW5nPUZhbHNlKToKKyAgICAjIFNldCB1cCBvcHRpb24gcGFyc2lu
ZworICAgIHBhcnNlciA9IG9wdHBhcnNlLk9wdGlvblBhcnNlcigpCisgICAgcGFyc2VyLmFkZF9v
cHRpb24oJy1xJywgJy0tcXVpZXQnLCBkZWZhdWx0PWxvZ2dpbmcuSU5GTywKKyAgICAgICAgICAg
ICAgICAgICAgICBkZXN0PSdsb2dsZXZlbCcsIGFjdGlvbj0nc3RvcmVfY29uc3QnLCBjb25zdD1s
b2dnaW5nLkVSUk9SKQorICAgIHBhcnNlci5hZGRfb3B0aW9uKCctdicsICctLXZlcmJvc2UnLAor
ICAgICAgICAgICAgICAgICAgICAgIGRlc3Q9J2xvZ2xldmVsJywgYWN0aW9uPSdzdG9yZV9jb25z
dCcsIGNvbnN0PWxvZ2dpbmcuREVCVUcpCisgICAgcGFyc2VyLmFkZF9vcHRpb24oJy1tJywgJy0t
bWFuaWZlc3QnLCBkZWZhdWx0PURFRkFVTFRfTUFOSUZFU1RfTkFNRSwKKyAgICAgICAgICAgICAg
ICAgICAgICBkZXN0PSdtYW5pZmVzdCcsIGFjdGlvbj0nc3RvcmUnLAorICAgICAgICAgICAgICAg
ICAgICAgIGhlbHA9J3NwZWNpZnkgdGhlIG1hbmlmZXN0IGZpbGUgdG8gYmUgb3BlcmF0ZWQgb24n
KQorICAgIHBhcnNlci5hZGRfb3B0aW9uKCctZCcsICctLWFsZ29yaXRobScsIGRlZmF1bHQ9J3No
YTUxMicsCisgICAgICAgICAgICAgICAgICAgICAgZGVzdD0nYWxnb3JpdGhtJywgYWN0aW9uPSdz
dG9yZScsCisgICAgICAgICAgICAgICAgICAgICAgaGVscD0naGFzaGluZyBhbGdvcml0aG0gdG8g
dXNlIChvbmx5IHNoYTUxMiBpcyBhbGxvd2VkKScpCisgICAgcGFyc2VyLmFkZF9vcHRpb24oJy0t
dmlzaWJpbGl0eScsIGRlZmF1bHQ9Tm9uZSwKKyAgICAgICAgICAgICAgICAgICAgICBkZXN0PSd2
aXNpYmlsaXR5JywgY2hvaWNlcz1bJ2ludGVybmFsJywgJ3B1YmxpYyddLAorICAgICAgICAgICAg
ICAgICAgICAgIGhlbHA9J1Zpc2liaWxpdHkgbGV2ZWwgb2YgdGhpcyBmaWxlOyAiaW50ZXJuYWwi
IGlzIGZvciAnCisgICAgICAgICAgICAgICAgICAgICAgICAgICAnZmlsZXMgdGhhdCBjYW5ub3Qg
YmUgZGlzdHJpYnV0ZWQgb3V0IG9mIHRoZSBjb21wYW55ICcKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICdidXQgbm90IGZvciBzZWNyZXRzOyAicHVibGljIiBmaWxlcyBhcmUgYXZhaWxhYmxl
IHRvICcKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICdhbnlvbmUgd2l0aG91dCByZXN0cmlj
dGlvbicpCisgICAgcGFyc2VyLmFkZF9vcHRpb24oJy0tdW5wYWNrJywgZGVmYXVsdD1GYWxzZSwK
KyAgICAgICAgICAgICAgICAgICAgICBkZXN0PSd1bnBhY2snLCBhY3Rpb249J3N0b3JlX3RydWUn
LAorICAgICAgICAgICAgICAgICAgICAgIGhlbHA9J1JlcXVlc3QgdW5wYWNraW5nIHRoaXMgZmls
ZSBhZnRlciBmZXRjaC4nCisgICAgICAgICAgICAgICAgICAgICAgICAgICAnIFRoaXMgaXMgaGVs
cGZ1bCB3aXRoIHRhcmJhbGxzLicpCisgICAgcGFyc2VyLmFkZF9vcHRpb24oJy0tdmVyc2lvbics
IGRlZmF1bHQ9Tm9uZSwKKyAgICAgICAgICAgICAgICAgICAgICBkZXN0PSd2ZXJzaW9uJywgYWN0
aW9uPSdzdG9yZScsCisgICAgICAgICAgICAgICAgICAgICAgaGVscD0nVmVyc2lvbiBzdHJpbmcg
Zm9yIHRoaXMgZmlsZS4gVGhpcyBhbm5vdGF0ZXMgdGhlICcKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICdtYW5pZmVzdCBlbnRyeSB3aXRoIGEgdmVyc2lvbiBzdHJpbmcgdG8gaGVscCAnCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAnaWRlbnRpZnkgdGhlIGNvbnRlbnRzLicpCisgICAg
cGFyc2VyLmFkZF9vcHRpb24oJy1vJywgJy0tb3ZlcndyaXRlJywgZGVmYXVsdD1GYWxzZSwKKyAg
ICAgICAgICAgICAgICAgICAgICBkZXN0PSdvdmVyd3JpdGUnLCBhY3Rpb249J3N0b3JlX3RydWUn
LAorICAgICAgICAgICAgICAgICAgICAgIGhlbHA9J1VOVVNFRDsgcHJlc2VudCBmb3IgYmFja3dh
cmQgY29tcGF0aWJpbGl0eScpCisgICAgcGFyc2VyLmFkZF9vcHRpb24oJy0tdXJsJywgZGVzdD0n
YmFzZV91cmwnLCBhY3Rpb249J2FwcGVuZCcsCisgICAgICAgICAgICAgICAgICAgICAgaGVscD0n
UmVsZW5nQVBJIFVSTCBlbmRpbmcgd2l0aCAvdG9vbHRvb2wvOyBkZWZhdWx0ICcKKyAgICAgICAg
ICAgICAgICAgICAgICAnaXMgYXBwcm9wcmlhdGUgZm9yIE1vemlsbGEnKQorICAgIHBhcnNlci5h
ZGRfb3B0aW9uKCctYycsICctLWNhY2hlLWZvbGRlcicsIGRlc3Q9J2NhY2hlX2ZvbGRlcicsCisg
ICAgICAgICAgICAgICAgICAgICAgaGVscD0nTG9jYWwgY2FjaGUgZm9sZGVyJykKKyAgICBwYXJz
ZXIuYWRkX29wdGlvbignLXMnLCAnLS1zaXplJywKKyAgICAgICAgICAgICAgICAgICAgICBoZWxw
PSdmcmVlIHNwYWNlIHJlcXVpcmVkIChpbiBHQiknLCBkZXN0PSdzaXplJywKKyAgICAgICAgICAg
ICAgICAgICAgICB0eXBlPSdmbG9hdCcsIGRlZmF1bHQ9MC4pCisgICAgcGFyc2VyLmFkZF9vcHRp
b24oJy1yJywgJy0tcmVnaW9uJywgaGVscD0nUHJlZmVycmVkIEFXUyByZWdpb24gZm9yIHVwbG9h
ZCBvciBmZXRjaDsgJworICAgICAgICAgICAgICAgICAgICAgICdleGFtcGxlOiAtLXJlZ2lvbj11
cy13ZXN0LTInKQorICAgIHBhcnNlci5hZGRfb3B0aW9uKCctLW1lc3NhZ2UnLAorICAgICAgICAg
ICAgICAgICAgICAgIGhlbHA9J1RoZSAiY29tbWl0IG1lc3NhZ2UiIGZvciBhbiB1cGxvYWQ7IGZv
cm1hdCB3aXRoIGEgYnVnIG51bWJlciAnCisgICAgICAgICAgICAgICAgICAgICAgICAgICAnYW5k
IGJyaWVmIGNvbW1lbnQnLAorICAgICAgICAgICAgICAgICAgICAgIGRlc3Q9J21lc3NhZ2UnKQor
ICAgIHBhcnNlci5hZGRfb3B0aW9uKCctLWF1dGhlbnRpY2F0aW9uLWZpbGUnLAorICAgICAgICAg
ICAgICAgICAgICAgIGhlbHA9J1VzZSB0aGUgUmVsZW5nQVBJIHRva2VuIGZvdW5kIGluIHRoZSBn
aXZlbiBmaWxlIHRvICcKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICdhdXRoZW50aWNhdGUg
dG8gdGhlIFJlbGVuZ0FQSSBzZXJ2ZXIuJywKKyAgICAgICAgICAgICAgICAgICAgICBkZXN0PSdh
dXRoX2ZpbGUnKQorCisgICAgKG9wdGlvbnNfb2JqLCBhcmdzKSA9IHBhcnNlci5wYXJzZV9hcmdz
KGFyZ3ZbMTpdKQorCisgICAgIyBkZWZhdWx0IHRoZSBvcHRpb25zIGxpc3QgaWYgbm90IHByb3Zp
ZGVkCisgICAgaWYgbm90IG9wdGlvbnNfb2JqLmJhc2VfdXJsOgorICAgICAgICBvcHRpb25zX29i
ai5iYXNlX3VybCA9IFsnaHR0cHM6Ly90b29sdG9vbC5tb3ppbGxhLXJlbGVuZy5uZXQvJ10KKwor
ICAgICMgZW5zdXJlIGFsbCBVUkxzIGhhdmUgYSB0cmFpbGluZyBzbGFzaAorICAgIGRlZiBhZGRf
c2xhc2godXJsKToKKyAgICAgICAgcmV0dXJuIHVybCBpZiB1cmwuZW5kc3dpdGgoJy8nKSBlbHNl
ICh1cmwgKyAnLycpCisgICAgb3B0aW9uc19vYmouYmFzZV91cmwgPSBbYWRkX3NsYXNoKHUpIGZv
ciB1IGluIG9wdGlvbnNfb2JqLmJhc2VfdXJsXQorCisgICAgIyBleHBhbmQgfiBpbiAtLWF1dGhl
bnRpY2F0aW9uLWZpbGUKKyAgICBpZiBvcHRpb25zX29iai5hdXRoX2ZpbGU6CisgICAgICAgIG9w
dGlvbnNfb2JqLmF1dGhfZmlsZSA9IG9zLnBhdGguZXhwYW5kdXNlcihvcHRpb25zX29iai5hdXRo
X2ZpbGUpCisKKyAgICAjIERpY3Rpb25hcmllcyBhcmUgZWFzaWVyIHRvIHdvcmsgd2l0aAorICAg
IG9wdGlvbnMgPSB2YXJzKG9wdGlvbnNfb2JqKQorCisgICAgbG9nLnNldExldmVsKG9wdGlvbnNb
J2xvZ2xldmVsJ10pCisKKyAgICAjIFNldCB1cCBsb2dnaW5nLCBmb3Igbm93IGp1c3QgdG8gdGhl
IGNvbnNvbGUKKyAgICBpZiBub3QgX3NraXBfbG9nZ2luZzogICMgcHJhZ21hOiBubyBjb3Zlcgor
ICAgICAgICBjaCA9IGxvZ2dpbmcuU3RyZWFtSGFuZGxlcigpCisgICAgICAgIGNmID0gbG9nZ2lu
Zy5Gb3JtYXR0ZXIoIiUobGV2ZWxuYW1lKXMgLSAlKG1lc3NhZ2UpcyIpCisgICAgICAgIGNoLnNl
dEZvcm1hdHRlcihjZikKKyAgICAgICAgbG9nLmFkZEhhbmRsZXIoY2gpCisKKyAgICBpZiBvcHRp
b25zWydhbGdvcml0aG0nXSAhPSAnc2hhNTEyJzoKKyAgICAgICAgcGFyc2VyLmVycm9yKCdvbmx5
IC0tYWxnb3JpdGhtIHNoYTUxMiBpcyBzdXBwb3J0ZWQnKQorCisgICAgaWYgbGVuKGFyZ3MpIDwg
MToKKyAgICAgICAgcGFyc2VyLmVycm9yKCdZb3UgbXVzdCBzcGVjaWZ5IGEgY29tbWFuZCcpCisK
KyAgICByZXR1cm4gMCBpZiBwcm9jZXNzX2NvbW1hbmQob3B0aW9ucywgYXJncykgZWxzZSAxCisK
KworaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjogICMgcHJhZ21hOiBubyBjb3ZlcgorICAgIHN5
cy5leGl0KG1haW4oc3lzLmFyZ3YpKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS93ZWJlbmNvZGluZ3MvdzNj
LWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3RoaXJkX3BhcnR5L3dlYmVuY29kaW5ncy93M2MtaW1wb3J0LmxvZwpkZWxldGVkIGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMzJlODJkMmQ1ZDQ4MDk1MzcyOWIyOWViMzY0MTJjNDI4NmMx
NTQ0ZS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5
L3dlYmVuY29kaW5ncy93M2MtaW1wb3J0LmxvZworKysgL2Rldi9udWxsCkBAIC0xLDIwICswLDAg
QEAKLVRoZSB0ZXN0cyBpbiB0aGlzIGRpcmVjdG9yeSB3ZXJlIGltcG9ydGVkIGZyb20gdGhlIFcz
QyByZXBvc2l0b3J5LgotRG8gTk9UIG1vZGlmeSB0aGVzZSB0ZXN0cyBkaXJlY3RseSBpbiBXZWJL
aXQuCi1JbnN0ZWFkLCBjcmVhdGUgYSBwdWxsIHJlcXVlc3Qgb24gdGhlIFdQVCBnaXRodWI6Ci0J
aHR0cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQKLQotVGhlbiBydW4gdGhl
IFRvb2xzL1NjcmlwdHMvaW1wb3J0LXczYy10ZXN0cyBpbiBXZWJLaXQgdG8gcmVpbXBvcnQKLQot
RG8gTk9UIG1vZGlmeSBvciByZW1vdmUgdGhpcyBmaWxlLgotCi0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLVBy
b3BlcnRpZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLVByb3BlcnR5IHZhbHVl
cyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1MaXN0
IG9mIGZpbGVzOgotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvdGhpcmRfcGFydHkvd2ViZW5jb2RpbmdzL1BLRy1JTkZPCi0vTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS93ZWJlbmNvZGlu
Z3MvUkVBRE1FLnJzdAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvdGhpcmRfcGFydHkvd2ViZW5jb2RpbmdzL3NldHVwLmNmZwotL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvd2ViZW5j
b2RpbmdzL3NldHVwLnB5CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3dlYmVuY29kaW5ncy93ZWJlbmNvZGlu
Z3MuZWdnLWluZm8vdzNjLWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3dlYmVuY29kaW5ncy93ZWJlbmNvZGlu
Z3MuZWdnLWluZm8vdzNjLWltcG9ydC5sb2cKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IGRmYTY3Y2EzY2MwOGExYjNiNDlkODNmM2E2NmU3MDM1YWY3Zjk3N2MuLjAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS93ZWJlbmNvZGluZ3Mvd2ViZW5j
b2RpbmdzLmVnZy1pbmZvL3czYy1pbXBvcnQubG9nCisrKyAvZGV2L251bGwKQEAgLTEsMjAgKzAs
MCBAQAotVGhlIHRlc3RzIGluIHRoaXMgZGlyZWN0b3J5IHdlcmUgaW1wb3J0ZWQgZnJvbSB0aGUg
VzNDIHJlcG9zaXRvcnkuCi1EbyBOT1QgbW9kaWZ5IHRoZXNlIHRlc3RzIGRpcmVjdGx5IGluIFdl
YktpdC4KLUluc3RlYWQsIGNyZWF0ZSBhIHB1bGwgcmVxdWVzdCBvbiB0aGUgV1BUIGdpdGh1YjoK
LQlodHRwczovL2dpdGh1Yi5jb20vd2ViLXBsYXRmb3JtLXRlc3RzL3dwdAotCi1UaGVuIHJ1biB0
aGUgVG9vbHMvU2NyaXB0cy9pbXBvcnQtdzNjLXRlc3RzIGluIFdlYktpdCB0byByZWltcG9ydAot
Ci1EbyBOT1QgbW9kaWZ5IG9yIHJlbW92ZSB0aGlzIGZpbGUuCi0KLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQot
UHJvcGVydGllcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotUHJvcGVydHkgdmFs
dWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLUxp
c3Qgb2YgZmlsZXM6Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy90aGlyZF9wYXJ0eS93ZWJlbmNvZGluZ3Mvd2ViZW5jb2RpbmdzLmVnZy1pbmZvL1BL
Ry1JTkZPCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy90aGlyZF9wYXJ0eS93ZWJlbmNvZGluZ3Mvd2ViZW5jb2RpbmdzLmVnZy1pbmZvL1NPVVJDRVMu
dHh0Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90
aGlyZF9wYXJ0eS93ZWJlbmNvZGluZ3Mvd2ViZW5jb2RpbmdzLmVnZy1pbmZvL2RlcGVuZGVuY3lf
bGlua3MudHh0Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy90aGlyZF9wYXJ0eS93ZWJlbmNvZGluZ3Mvd2ViZW5jb2RpbmdzLmVnZy1pbmZvL3RvcF9s
ZXZlbC50eHQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvd2ViZW5jb2RpbmdzL3dlYmVuY29kaW5ncy93M2Mt
aW1wb3J0LmxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvdGhpcmRfcGFydHkvd2ViZW5jb2RpbmdzL3dlYmVuY29kaW5ncy93M2MtaW1wb3J0Lmxv
ZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNDdmZjBkZTY5MTI0MzY2NjNjYmZkMjE3
ZWFmYjMxYzllOWUzZTc0My4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3RoaXJkX3BhcnR5L3dlYmVuY29kaW5ncy93ZWJlbmNvZGluZ3MvdzNjLWltcG9ydC5sb2cKKysr
IC9kZXYvbnVsbApAQCAtMSwyMyArMCwwIEBACi1UaGUgdGVzdHMgaW4gdGhpcyBkaXJlY3Rvcnkg
d2VyZSBpbXBvcnRlZCBmcm9tIHRoZSBXM0MgcmVwb3NpdG9yeS4KLURvIE5PVCBtb2RpZnkgdGhl
c2UgdGVzdHMgZGlyZWN0bHkgaW4gV2ViS2l0LgotSW5zdGVhZCwgY3JlYXRlIGEgcHVsbCByZXF1
ZXN0IG9uIHRoZSBXUFQgZ2l0aHViOgotCWh0dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxhdGZvcm0t
dGVzdHMvd3B0Ci0KLVRoZW4gcnVuIHRoZSBUb29scy9TY3JpcHRzL2ltcG9ydC13M2MtdGVzdHMg
aW4gV2ViS2l0IHRvIHJlaW1wb3J0Ci0KLURvIE5PVCBtb2RpZnkgb3IgcmVtb3ZlIHRoaXMgZmls
ZS4KLQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1Qcm9wZXJ0aWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4
ZXM6Ci1Ob25lCi1Qcm9wZXJ0eSB2YWx1ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5v
bmUKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLQotTGlzdCBvZiBmaWxlczoKLS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3dlYmVuY29kaW5ncy93
ZWJlbmNvZGluZ3MvX19pbml0X18ucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3dlYmVuY29kaW5ncy93ZWJlbmNvZGluZ3Mv
X19pbml0X18ucHljCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy90aGlyZF9wYXJ0eS93ZWJlbmNvZGluZ3Mvd2ViZW5jb2RpbmdzL2xhYmVscy5weQot
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRf
cGFydHkvd2ViZW5jb2RpbmdzL3dlYmVuY29kaW5ncy9sYWJlbHMucHljCi0vTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS93ZWJlbmNv
ZGluZ3Mvd2ViZW5jb2RpbmdzL21rbGFiZWxzLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS93ZWJlbmNvZGluZ3Mvd2ViZW5j
b2RpbmdzL3Rlc3RzLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy90aGlyZF9wYXJ0eS93ZWJlbmNvZGluZ3Mvd2ViZW5jb2RpbmdzL3hfdXNlcl9k
ZWZpbmVkLnB5CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3RveC5pbmkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3RveC5pbmkKaW5kZXggM2ViMTJjMzU3YmEwNWExMjgzNTIxMjU2
NjM1NTdkMWUyYjE3ZjMxNC4uZTg2NzNkYjBhNjlhZTQ2OTVlN2IxZmExNTJjNTMzYWExYjBmOThk
MSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy90b3guaW5pCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvdG94LmluaQpAQCAtMSwyNiArMSw1NiBAQAogW3RveF0KLWVudmxpc3Qg
PSBweTI3LHB5MzYscHlweQorZW52bGlzdCA9IHB5MjcscHkzNSxweTM2LHB5MzcscHlweSx7cHky
NyxweTM1LHB5MzYscHkzN30tZmxha2U4LHtweTM1LHB5MzYscHkzN30tbXlweQogc2tpcHNkaXN0
PVRydWUKIAogW3Rlc3RlbnZdCi0jIGZsYWtlOCB2ZXJzaW9ucyBzaG91bGQgYmUga2VwdCBpbiBz
eW5jIGFjcm9zcyB0b29scy90b3guaW5pLCB0b29scy93cHQvdG94LmluaSwgYW5kIHRvb2xzL3dw
dHJ1bm5lci90b3guaW5pCiBkZXBzID0KLSAgZmxha2U4PT0zLjUuMAotICBweWNvZGVzdHlsZT09
Mi4zLjEKLSAgcHlmbGFrZXM9PTEuNi4wCi0gIHBlcDgtbmFtaW5nPT0wLjQuMQogICBweXRlc3QK
ICAgcHl0ZXN0LWNvdgogICBtb2NrCiAgIGh5cG90aGVzaXMKLSAgcHl0ZXN0LWNhdGNobG9nCisg
IHJlcXVlc3RzCisgIHRhc2tjbHVzdGVyCisgIHB5eWFtbAorICBqc29uLWUKKyAganNvbnNjaGVt
YQogCi1jb21tYW5kcyA9Ci0gIHB5dGVzdCAtLWNvdiB7cG9zYXJnc30KLSAgZmxha2U4IC0tYXBw
ZW5kLWNvbmZpZz1mbGFrZTguaW5pCitjb21tYW5kcyA9IHB5dGVzdCB7cG9zYXJnc30KIAogcGFz
c2VudiA9CiAgIEhZUE9USEVTSVNfUFJPRklMRQorICBQWV9DT0xPUlMKKyAgVEFTS0NMVVNURVJf
Uk9PVF9VUkwKKworW3Rlc3RlbnY6cHkyNy1mbGFrZThdCitkZXBzID0gLXJyZXF1aXJlbWVudHNf
Zmxha2U4LnR4dAorY29tbWFuZHMgPSBmbGFrZTggLS1hcHBlbmQtY29uZmlnPXt0b3hpbmlkaXJ9
L3B5MjctZmxha2U4LmluaSB7cG9zYXJnc30KKworW3Rlc3RlbnY6cHkzNS1mbGFrZThdCitkZXBz
ID0gLXJyZXF1aXJlbWVudHNfZmxha2U4LnR4dAorY29tbWFuZHMgPSBmbGFrZTggLS1hcHBlbmQt
Y29uZmlnPXt0b3hpbmlkaXJ9L3B5MzYtZmxha2U4LmluaSB7cG9zYXJnc30KKworW3Rlc3RlbnY6
cHkzNi1mbGFrZThdCitkZXBzID0gLXJyZXF1aXJlbWVudHNfZmxha2U4LnR4dAorY29tbWFuZHMg
PSBmbGFrZTggLS1hcHBlbmQtY29uZmlnPXt0b3hpbmlkaXJ9L3B5MzYtZmxha2U4LmluaSB7cG9z
YXJnc30KKworW3Rlc3RlbnY6cHkzNy1mbGFrZThdCitkZXBzID0gLXJyZXF1aXJlbWVudHNfZmxh
a2U4LnR4dAorY29tbWFuZHMgPSBmbGFrZTggLS1hcHBlbmQtY29uZmlnPXt0b3hpbmlkaXJ9L3B5
MzYtZmxha2U4LmluaSB7cG9zYXJnc30KIAotW2ZsYWtlOF0KLWV4Y2x1ZGUgPSAudG94LGh0bWw1
bGliLHRoaXJkX3BhcnR5LHB5d2Vic29ja2V0LHNpeCxfdmVudix3ZWJlbmNvZGluZ3Msd3B0c2Vy
dmUvZG9jcyx3cHRzZXJ2ZS90ZXN0cy9mdW5jdGlvbmFsL2RvY3Jvb3QvLHdwdCx3cHRydW5uZXIK
K1t0ZXN0ZW52OnB5MzUtbXlweV0KK2RlcHMgPSAtcnJlcXVpcmVtZW50c19teXB5LnR4dAorY2hh
bmdlZGlyID0ge3RveGluaWRpcn0vLi4KK2NvbW1hbmRzID0KKyAgbXlweSAtLWNvbmZpZy1maWxl
PXt0b3hpbmlkaXJ9L215cHkuaW5pIC0tbm8taW5jcmVtZW50YWwgLS1weTIgLXAgdG9vbHMubWFu
aWZlc3QgLXAgdG9vbHMubGludCAtcCB0b29scy5naXRpZ25vcmUKKworW3Rlc3RlbnY6cHkzNi1t
eXB5XQorZGVwcyA9IC1ycmVxdWlyZW1lbnRzX215cHkudHh0CitjaGFuZ2VkaXIgPSB7dG94aW5p
ZGlyfS8uLgorY29tbWFuZHMgPQorICBteXB5IC0tY29uZmlnLWZpbGU9e3RveGluaWRpcn0vbXlw
eS5pbmkgLS1uby1pbmNyZW1lbnRhbCAtLXB5MiAtcCB0b29scy5tYW5pZmVzdCAtcCB0b29scy5s
aW50IC1wIHRvb2xzLmdpdGlnbm9yZQorCitbdGVzdGVudjpweTM3LW15cHldCitkZXBzID0gLXJy
ZXF1aXJlbWVudHNfbXlweS50eHQKK2NoYW5nZWRpciA9IHt0b3hpbmlkaXJ9Ly4uCitjb21tYW5k
cyA9CisgIG15cHkgLS1jb25maWctZmlsZT17dG94aW5pZGlyfS9teXB5LmluaSAtLW5vLWluY3Jl
bWVudGFsIC0tcHkyIC1wIHRvb2xzLm1hbmlmZXN0IC1wIHRvb2xzLmxpbnQgLXAgdG9vbHMuZ2l0
aWdub3JlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3czYy1pbXBvcnQubG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy93M2MtaW1wb3J0LmxvZwpkZWxldGVkIGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggZjdhMmYzMjc0YzgxMzk4MDU2MWE3MWZiZDU5Zjc0MDBlYzZmYWI2NC4uMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3czYy1pbXBvcnQubG9nCisrKyAv
ZGV2L251bGwKQEAgLTEsMjYgKzAsMCBAQAotVGhlIHRlc3RzIGluIHRoaXMgZGlyZWN0b3J5IHdl
cmUgaW1wb3J0ZWQgZnJvbSB0aGUgVzNDIHJlcG9zaXRvcnkuCi1EbyBOT1QgbW9kaWZ5IHRoZXNl
IHRlc3RzIGRpcmVjdGx5IGluIFdlYktpdC4KLUluc3RlYWQsIGNyZWF0ZSBhIHB1bGwgcmVxdWVz
dCBvbiB0aGUgV1BUIGdpdGh1YjoKLQlodHRwczovL2dpdGh1Yi5jb20vd2ViLXBsYXRmb3JtLXRl
c3RzL3dwdAotCi1UaGVuIHJ1biB0aGUgVG9vbHMvU2NyaXB0cy9pbXBvcnQtdzNjLXRlc3RzIGlu
IFdlYktpdCB0byByZWltcG9ydAotCi1EbyBOT1QgbW9kaWZ5IG9yIHJlbW92ZSB0aGlzIGZpbGUu
Ci0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLQotUHJvcGVydGllcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVz
OgotTm9uZQotUHJvcGVydHkgdmFsdWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25l
Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0KLUxpc3Qgb2YgZmlsZXM6Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9NRVRBLnltbAotL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvX19pbml0X18ucHkKLS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL19faW5pdF9fLnB5YwotL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvYXBwdmV5b3Iu
eW1sCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9j
b25mdGVzdC5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvZmxha2U4LmluaQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvbG9jYWxwYXRocy5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvbG9jYWxwYXRocy5weWMKLS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5dGVzdC5pbmkKLS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RveC5pbmkKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd2ViZHJp
dmVyLy5naXRpZ25vcmUgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3dlYmRyaXZlci8uZ2l0aWdub3JlCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmU4NDEzZTBlZTQ1NWFk
YzU0ODAwOTgzMjBkMjU0ZmI5YzVjZWQ5MDMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dlYmRyaXZlci8uZ2l0aWdu
b3JlCkBAIC0wLDAgKzEsMiBAQAord2ViZHJpdmVyLmVnZy1pbmZvLworKi5weWMKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd2Vi
ZHJpdmVyL1JFQURNRS5tZCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvd2ViZHJpdmVyL1JFQURNRS5tZAppbmRleCA3MmRlM2IyYWU4YjZhMjU0MzRi
YmZlZjAwZTQ5ZTBhMDQ2M2ZmMjQ3Li4yNzk1ZmYxZmNmMzlmN2RhOThhMThlYjM0ODQxMDliMGJm
NzEzN2FlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3dlYmRyaXZlci9SRUFETUUubWQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93ZWJkcml2ZXIvUkVBRE1FLm1kCkBAIC05
LDcgKzksNyBAQCBpbXBsZW1lbnRhdGlvbiBjb21wbGlhbmNlIHRvIHRoZSBzcGVjaWZpY2F0aW9u
IGluIG1pbmQsCiBzbyB0aGF0IGRpZmZlcmVudCByZW1vdGUgZW5kIGRyaXZlcnMKIGNhbiBkZXRl
cm1pbmUgd2hldGhlciB0aGV5IG1lZXQgdGhlIHJlY29nbmlzZWQgc3RhbmRhcmQuCiBUaGUgY2xp
ZW50IGlzIHVzZWQgZm9yIHRoZSBXZWJEcml2ZXIgc3BlY2lmaWNhdGlvbiB0ZXN0cwotaW4gdGhl
IFtXZWIgUGxhdGZvcm0gVGVzdHNdKGh0dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxhdGZvcm0tdGVz
dHMvd3B0KS4KK2luIFt3ZWItcGxhdGZvcm0tdGVzdHNdKGh0dHBzOi8vZ2l0aHViLmNvbS93ZWIt
cGxhdGZvcm0tdGVzdHMvd3B0KS4KIAogIyMgSW5zdGFsbGF0aW9uCiAKQEAgLTI0LDExICsyNCwx
MSBAQCB3aGljaCBpcyB1c2VmdWwgaWYgeW91IHdhbnQgdG8gY29udHJpYnV0ZSBwYXRjaGVzIGJh
Y2s6CiAKICAgICAlIGNkIC9wYXRoL3RvL3dkY2xpZW50CiAgICAgJSBweXRob24KLSAgICBQeXRo
b24gMi43LjEyKyAoZGVmYXVsdCwgQXVnICA0IDIwMTYsIDIwOjA0OjM0KSAKKyAgICBQeXRob24g
Mi43LjEyKyAoZGVmYXVsdCwgQXVnICA0IDIwMTYsIDIwOjA0OjM0KQogICAgIFtHQ0MgNi4xLjEg
MjAxNjA3MjRdIG9uIGxpbnV4MgogICAgIFR5cGUgImhlbHAiLCAiY29weXJpZ2h0IiwgImNyZWRp
dHMiIG9yICJsaWNlbnNlIiBmb3IgbW9yZSBpbmZvcm1hdGlvbi4KICAgICA+Pj4gaW1wb3J0IHdl
YmRyaXZlcgotICAgID4+PiAKKyAgICA+Pj4KIAogSWYgeW91IGFyZSB3cml0aW5nIFdlYkRyaXZl
ciBzcGVjaWZpY2F0aW9uIHRlc3RzIGZvcgogW1dQVF0oaHR0cHM6Ly9naXRodWIuY29tL3dlYi1w
bGF0Zm9ybS10ZXN0cy93cHQpLApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93ZWJkcml2ZXIvdzNjLWltcG9ydC5sb2cgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dlYmRyaXZlci93
M2MtaW1wb3J0LmxvZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMTk1ZGJjNzMyZWZk
NzhjNDc3NmNiZDQ2ZTdlYzYzNGMxYmVlYjk5NS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3dlYmRyaXZlci93M2MtaW1wb3J0LmxvZworKysgL2Rldi9udWxsCkBAIC0x
LDE4ICswLDAgQEAKLVRoZSB0ZXN0cyBpbiB0aGlzIGRpcmVjdG9yeSB3ZXJlIGltcG9ydGVkIGZy
b20gdGhlIFczQyByZXBvc2l0b3J5LgotRG8gTk9UIG1vZGlmeSB0aGVzZSB0ZXN0cyBkaXJlY3Rs
eSBpbiBXZWJLaXQuCi1JbnN0ZWFkLCBjcmVhdGUgYSBwdWxsIHJlcXVlc3Qgb24gdGhlIFdQVCBn
aXRodWI6Ci0JaHR0cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQKLQotVGhl
biBydW4gdGhlIFRvb2xzL1NjcmlwdHMvaW1wb3J0LXczYy10ZXN0cyBpbiBXZWJLaXQgdG8gcmVp
bXBvcnQKLQotRG8gTk9UIG1vZGlmeSBvciByZW1vdmUgdGhpcyBmaWxlLgotCi0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0KLVByb3BlcnRpZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLVByb3Bl
cnR5IHZhbHVlcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tCi1MaXN0IG9mIGZpbGVzOgotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvd2ViZHJpdmVyL1JFQURNRS5tZAotL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd2ViZHJpdmVyL3NldHVwLnB5CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dl
YmRyaXZlci93ZWJkcml2ZXIvX19pbml0X18ucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dlYmRyaXZlci93ZWJkcml2ZXIvX19pbml0X18ucHkK
aW5kZXggMjE3YmZjNjUyNzIyOGMxNDBiMTRkZmQ3ODNjOGVjMzVhNDk4ZTFiMy4uZDg2MGI5ZWEy
NTMzZjAzMmNhMjI3YWU2M2Q4ZjIwMjJiNmQ4OTdjNyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93ZWJkcml2ZXIvd2ViZHJpdmVy
L19faW5pdF9fLnB5CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvd2ViZHJpdmVyL3dlYmRyaXZlci9fX2luaXRfXy5weQpAQCAtMSw2ICsxLDYg
QEAKICMgZmxha2U4OiBub3FhCiAKLWZyb20gY2xpZW50IGltcG9ydCAoCitmcm9tIC5jbGllbnQg
aW1wb3J0ICgKICAgICBDb29raWVzLAogICAgIEVsZW1lbnQsCiAgICAgRmluZCwKQEAgLTgsNyAr
OCw3IEBAIGZyb20gY2xpZW50IGltcG9ydCAoCiAgICAgU2Vzc2lvbiwKICAgICBUaW1lb3V0cywK
ICAgICBXaW5kb3cpCi1mcm9tIGVycm9yIGltcG9ydCAoCitmcm9tIC5lcnJvciBpbXBvcnQgKAog
ICAgIEVsZW1lbnROb3RTZWxlY3RhYmxlRXhjZXB0aW9uLAogICAgIEVsZW1lbnROb3RWaXNpYmxl
RXhjZXB0aW9uLAogICAgIEludmFsaWRBcmd1bWVudEV4Y2VwdGlvbiwKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd2ViZHJpdmVy
L3dlYmRyaXZlci9jbGllbnQucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3dlYmRyaXZlci93ZWJkcml2ZXIvY2xpZW50LnB5CmluZGV4IGE4Yzlh
MDYxY2NmNTBiMWI4NzAyODM4NzFlMmU0ZWE1NWJjNGU4Y2MuLjBjNWJiZmY1NjI5ODY4ZmRjNDhh
MWE0MWNmODgyZmFiZTU2MTdjMWIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd2ViZHJpdmVyL3dlYmRyaXZlci9jbGllbnQucHkK
KysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93
ZWJkcml2ZXIvd2ViZHJpdmVyL2NsaWVudC5weQpAQCAtMSwxMCArMSw5IEBACi1pbXBvcnQgdXJs
cGFyc2UKLQotaW1wb3J0IGVycm9yCi1pbXBvcnQgcHJvdG9jb2wKLWltcG9ydCB0cmFuc3BvcnQK
K2Zyb20gLiBpbXBvcnQgZXJyb3IKK2Zyb20gLiBpbXBvcnQgcHJvdG9jb2wKK2Zyb20gLiBpbXBv
cnQgdHJhbnNwb3J0CiAKIGZyb20gc2l4IGltcG9ydCBzdHJpbmdfdHlwZXMKK2Zyb20gc2l4Lm1v
dmVzLnVybGxpYiBpbXBvcnQgcGFyc2UgYXMgdXJscGFyc2UKIAogCiBkZWYgY29tbWFuZChmdW5j
KToKQEAgLTIxOCw3ICsyMTcsMTIgQEAgY2xhc3MgQWN0aW9ucyhvYmplY3QpOgogICAgICAgICAg
ICAgICAgICAgICAgICAgYGBBY3Rpb25TZXF1ZW5jZS5kaWN0YGAuCiAgICAgICAgICIiIgogICAg
ICAgICBib2R5ID0geyJhY3Rpb25zIjogW10gaWYgYWN0aW9ucyBpcyBOb25lIGVsc2UgYWN0aW9u
c30KLSAgICAgICAgcmV0dXJuIHNlbGYuc2Vzc2lvbi5zZW5kX3Nlc3Npb25fY29tbWFuZCgiUE9T
VCIsICJhY3Rpb25zIiwgYm9keSkKKyAgICAgICAgYWN0aW9ucyA9IHNlbGYuc2Vzc2lvbi5zZW5k
X3Nlc3Npb25fY29tbWFuZCgiUE9TVCIsICJhY3Rpb25zIiwgYm9keSkKKyAgICAgICAgIiIiV2Vi
RHJpdmVyIHdpbmRvdyBzaG91bGQgYmUgc2V0IHRvIHRoZSB0b3AgbGV2ZWwgd2luZG93IHdoZW4g
d3B0cnVubmVyCisgICAgICAgIHByb2Nlc3NlcyB0aGUgbmV4dCBldmVudC4KKyAgICAgICAgIiIi
CisgICAgICAgIHNlbGYuc2Vzc2lvbi5zd2l0Y2hfZnJhbWUoTm9uZSkKKyAgICAgICAgcmV0dXJu
IGFjdGlvbnMKIAogICAgIEBjb21tYW5kCiAgICAgZGVmIHJlbGVhc2Uoc2VsZik6CkBAIC0zMDgs
OCArMzEyLDExIEBAIGNsYXNzIEZpbmQob2JqZWN0KToKICAgICAgICAgc2VsZi5zZXNzaW9uID0g
c2Vzc2lvbgogCiAgICAgQGNvbW1hbmQKLSAgICBkZWYgY3NzKHNlbGYsIHNlbGVjdG9yLCBhbGw9
VHJ1ZSk6Ci0gICAgICAgIHJldHVybiBzZWxmLl9maW5kX2VsZW1lbnQoImNzcyBzZWxlY3RvciIs
IHNlbGVjdG9yLCBhbGwpCisgICAgZGVmIGNzcyhzZWxmLCBlbGVtZW50X3NlbGVjdG9yLCBhbGw9
VHJ1ZSwgZnJhbWU9IndpbmRvdyIpOgorICAgICAgICBpZiAoZnJhbWUgIT0gIndpbmRvdyIpOgor
ICAgICAgICAgICAgc2VsZi5zZXNzaW9uLnN3aXRjaF9mcmFtZShmcmFtZSkKKyAgICAgICAgZWxl
bWVudHMgPSBzZWxmLl9maW5kX2VsZW1lbnQoImNzcyBzZWxlY3RvciIsIGVsZW1lbnRfc2VsZWN0
b3IsIGFsbCkKKyAgICAgICAgcmV0dXJuIGVsZW1lbnRzCiAKICAgICBkZWYgX2ZpbmRfZWxlbWVu
dChzZWxmLCBzdHJhdGVneSwgc2VsZWN0b3IsIGFsbCk6CiAgICAgICAgIHJvdXRlID0gImVsZW1l
bnRzIiBpZiBhbGwgZWxzZSAiZWxlbWVudCIKQEAgLTM1Niw3ICszNjMsNyBAQCBjbGFzcyBVc2Vy
UHJvbXB0KG9iamVjdCk6CiAgICAgQHRleHQuc2V0dGVyCiAgICAgQGNvbW1hbmQKICAgICBkZWYg
dGV4dChzZWxmLCB2YWx1ZSk6Ci0gICAgICAgIGJvZHkgPSB7InZhbHVlIjogbGlzdCh2YWx1ZSl9
CisgICAgICAgIGJvZHkgPSB7InRleHQiOiB2YWx1ZX0KICAgICAgICAgc2VsZi5zZXNzaW9uLnNl
bmRfc2Vzc2lvbl9jb21tYW5kKCJQT1NUIiwgImFsZXJ0L3RleHQiLCBib2R5PWJvZHkpCiAKIApA
QCAtMzc2LDcgKzM4Myw2IEBAIGNsYXNzIFNlc3Npb24ob2JqZWN0KToKICAgICAgICAgc2VsZi50
aW1lb3V0cyA9IE5vbmUKICAgICAgICAgc2VsZi53aW5kb3cgPSBOb25lCiAgICAgICAgIHNlbGYu
ZmluZCA9IE5vbmUKLSAgICAgICAgc2VsZi5fZWxlbWVudF9jYWNoZSA9IHt9CiAgICAgICAgIHNl
bGYuZXh0ZW5zaW9uID0gTm9uZQogICAgICAgICBzZWxmLmV4dGVuc2lvbl9jbHMgPSBleHRlbnNp
b24KIApAQCAtNDA0LDEwICs0MTAsMTcgQEAgY2xhc3MgU2Vzc2lvbihvYmplY3QpOgogICAgICAg
ICBzZWxmLmVuZCgpCiAKICAgICBkZWYgc3RhcnQoc2VsZik6CisgICAgICAgICIiIlN0YXJ0IGEg
bmV3IFdlYkRyaXZlciBzZXNzaW9uLgorCisgICAgICAgIDpyZXR1cm46IERpY3Rpb25hcnkgd2l0
aCBgY2FwYWJpbGl0aWVzYCBhbmQgYHNlc3Npb25JZGAuCisKKyAgICAgICAgOnJhaXNlcyBlcnJv
ci5XZWJEcml2ZXJFeGNlcHRpb246IElmIHRoZSByZW1vdGUgZW5kIHJldHVybnMKKyAgICAgICAg
ICAgIGFuIGVycm9yLgorICAgICAgICAiIiIKICAgICAgICAgaWYgc2VsZi5zZXNzaW9uX2lkIGlz
IG5vdCBOb25lOgogICAgICAgICAgICAgcmV0dXJuCiAKLSAgICAgICAgYm9keSA9IHt9CisgICAg
ICAgIGJvZHkgPSB7ImNhcGFiaWxpdGllcyI6IHt9fQogCiAgICAgICAgIGlmIHNlbGYucmVxdWVz
dGVkX2NhcGFiaWxpdGllcyBpcyBub3QgTm9uZToKICAgICAgICAgICAgIGJvZHlbImNhcGFiaWxp
dGllcyJdID0gc2VsZi5yZXF1ZXN0ZWRfY2FwYWJpbGl0aWVzCkBAIC00MjIsMTMgKzQzNSwxMyBA
QCBjbGFzcyBTZXNzaW9uKG9iamVjdCk6CiAgICAgICAgIHJldHVybiB2YWx1ZQogCiAgICAgZGVm
IGVuZChzZWxmKToKLSAgICAgICAgIiIiVHJpZXMgdG8gY2xvc2UgdGhlIGFjdGl2ZSBzZXNzaW9u
LiIiIgorICAgICAgICAiIiJUcnkgdG8gY2xvc2UgdGhlIGFjdGl2ZSBzZXNzaW9uLiIiIgogICAg
ICAgICBpZiBzZWxmLnNlc3Npb25faWQgaXMgTm9uZToKICAgICAgICAgICAgIHJldHVybgogCiAg
ICAgICAgIHRyeToKICAgICAgICAgICAgIHNlbGYuc2VuZF9jb21tYW5kKCJERUxFVEUiLCAic2Vz
c2lvbi8lcyIgJSBzZWxmLnNlc3Npb25faWQpCi0gICAgICAgIGV4Y2VwdCBlcnJvci5TZXNzaW9u
Tm90Q3JlYXRlZEV4Y2VwdGlvbjoKKyAgICAgICAgZXhjZXB0IGVycm9yLkludmFsaWRTZXNzaW9u
SWRFeGNlcHRpb246CiAgICAgICAgICAgICBwYXNzCiAgICAgICAgIGZpbmFsbHk6CiAgICAgICAg
ICAgICBzZWxmLnNlc3Npb25faWQgPSBOb25lCkBAIC00NDYsMTAgKzQ1OSwxMCBAQCBjbGFzcyBT
ZXNzaW9uKG9iamVjdCk6CiAgICAgICAgICAgICB0aGUgYHZhbHVlYCBmaWVsZCByZXR1cm5lZCBh
ZnRlciBwYXJzaW5nIHRoZSByZXNwb25zZQogICAgICAgICAgICAgYm9keSBhcyBKU09OLgogCi0g
ICAgICAgIDpyYWlzZXMgVmFsdWVFcnJvcjogSWYgdGhlIHJlc3BvbnNlIGJvZHkgZG9lcyBub3Qg
Y29udGFpbiBhCi0gICAgICAgICAgICBgdmFsdWVgIGtleS4KICAgICAgICAgOnJhaXNlcyBlcnJv
ci5XZWJEcml2ZXJFeGNlcHRpb246IElmIHRoZSByZW1vdGUgZW5kIHJldHVybnMKICAgICAgICAg
ICAgIGFuIGVycm9yLgorICAgICAgICA6cmFpc2VzIFZhbHVlRXJyb3I6IElmIHRoZSByZXNwb25z
ZSBib2R5IGRvZXMgbm90IGNvbnRhaW4gYQorICAgICAgICAgICAgYHZhbHVlYCBrZXkuCiAgICAg
ICAgICIiIgogICAgICAgICByZXNwb25zZSA9IHNlbGYudHJhbnNwb3J0LnNlbmQoCiAgICAgICAg
ICAgICBtZXRob2QsIHVybCwgYm9keSwKQEAgLTQ1OSw3ICs0NzIsNyBAQCBjbGFzcyBTZXNzaW9u
KG9iamVjdCk6CiAgICAgICAgIGlmIHJlc3BvbnNlLnN0YXR1cyAhPSAyMDA6CiAgICAgICAgICAg
ICBlcnIgPSBlcnJvci5mcm9tX3Jlc3BvbnNlKHJlc3BvbnNlKQogCi0gICAgICAgICAgICBpZiBp
c2luc3RhbmNlKGVyciwgZXJyb3IuU2Vzc2lvbk5vdENyZWF0ZWRFeGNlcHRpb24pOgorICAgICAg
ICAgICAgaWYgaXNpbnN0YW5jZShlcnIsIGVycm9yLkludmFsaWRTZXNzaW9uSWRFeGNlcHRpb24p
OgogICAgICAgICAgICAgICAgICMgVGhlIGRyaXZlciBjb3VsZCBoYXZlIGFscmVhZHkgYmVlbiBk
ZWxldGVkIHRoZSBzZXNzaW9uLgogICAgICAgICAgICAgICAgIHNlbGYuc2Vzc2lvbl9pZCA9IE5v
bmUKIApAQCAtNDk1LDE0ICs1MDgsOSBAQCBjbGFzcyBTZXNzaW9uKG9iamVjdCk6CiAgICAgICAg
IDpyZXR1cm46IGBOb25lYCBpZiB0aGUgSFRUUCByZXNwb25zZSBib2R5IHdhcyBlbXB0eSwgb3Ro
ZXJ3aXNlCiAgICAgICAgICAgICB0aGUgcmVzdWx0IG9mIHBhcnNpbmcgdGhlIGJvZHkgYXMgSlNP
Ti4KIAotICAgICAgICA6cmFpc2VzIGVycm9yLlNlc3Npb25Ob3RDcmVhdGVkRXhjZXB0aW9uOiBJ
ZiB0aGVyZSBpcyBubyBhY3RpdmUKLSAgICAgICAgICAgIHNlc3Npb24uCiAgICAgICAgIDpyYWlz
ZXMgZXJyb3IuV2ViRHJpdmVyRXhjZXB0aW9uOiBJZiB0aGUgcmVtb3RlIGVuZCByZXR1cm5zCiAg
ICAgICAgICAgICBhbiBlcnJvci4KICAgICAgICAgIiIiCi0gICAgICAgIGlmIHNlbGYuc2Vzc2lv
bl9pZCBpcyBOb25lOgotICAgICAgICAgICAgcmFpc2UgZXJyb3IuU2Vzc2lvbk5vdENyZWF0ZWRF
eGNlcHRpb24oKQotCiAgICAgICAgIHVybCA9IHVybHBhcnNlLnVybGpvaW4oInNlc3Npb24vJXMv
IiAlIHNlbGYuc2Vzc2lvbl9pZCwgdXJpKQogICAgICAgICByZXR1cm4gc2VsZi5zZW5kX2NvbW1h
bmQobWV0aG9kLCB1cmwsIGJvZHkpCiAKQEAgLTU2NSw3ICs1NzMsNyBAQCBjbGFzcyBTZXNzaW9u
KG9iamVjdCk6CiAgICAgQGNvbW1hbmQKICAgICBkZWYgY2xvc2Uoc2VsZik6CiAgICAgICAgIGhh
bmRsZXMgPSBzZWxmLnNlbmRfc2Vzc2lvbl9jb21tYW5kKCJERUxFVEUiLCAid2luZG93IikKLSAg
ICAgICAgaWYgbGVuKGhhbmRsZXMpID09IDA6CisgICAgICAgIGlmIGhhbmRsZXMgaXMgbm90IE5v
bmUgYW5kIGxlbihoYW5kbGVzKSA9PSAwOgogICAgICAgICAgICAgIyBXaXRoIG5vIG1vcmUgb3Bl
biB0b3AtbGV2ZWwgYnJvd3NpbmcgY29udGV4dHMsIHRoZSBzZXNzaW9uIGlzIGNsb3NlZC4KICAg
ICAgICAgICAgIHNlbGYuc2Vzc2lvbl9pZCA9IE5vbmUKIApAQCAtNjY3LDEwICs2NzUsNiBAQCBj
bGFzcyBFbGVtZW50KG9iamVjdCk6CiAgICAgICAgIHNlbGYuaWQgPSBpZAogICAgICAgICBzZWxm
LnNlc3Npb24gPSBzZXNzaW9uCiAKLSAgICAgICAgaWYgaWQgaW4gc2VsZi5zZXNzaW9uLl9lbGVt
ZW50X2NhY2hlOgotICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigiRWxlbWVudCBhbHJlYWR5
IGluIGNhY2hlOiAlcyIgJSBpZCkKLSAgICAgICAgc2VsZi5zZXNzaW9uLl9lbGVtZW50X2NhY2hl
W3NlbGYuaWRdID0gc2VsZgotCiAgICAgZGVmIF9fcmVwcl9fKHNlbGYpOgogICAgICAgICByZXR1
cm4gIjwlcyAlcz4iICUgKHNlbGYuX19jbGFzc19fLl9fbmFtZV9fLCBzZWxmLmlkKQogCkBAIC02
ODEsOCArNjg1LDYgQEAgY2xhc3MgRWxlbWVudChvYmplY3QpOgogICAgIEBjbGFzc21ldGhvZAog
ICAgIGRlZiBmcm9tX2pzb24oY2xzLCBqc29uLCBzZXNzaW9uKToKICAgICAgICAgdXVpZCA9IGpz
b25bRWxlbWVudC5pZGVudGlmaWVyXQotICAgICAgICBpZiB1dWlkIGluIHNlc3Npb24uX2VsZW1l
bnRfY2FjaGU6Ci0gICAgICAgICAgICByZXR1cm4gc2Vzc2lvbi5fZWxlbWVudF9jYWNoZVt1dWlk
XQogICAgICAgICByZXR1cm4gY2xzKHV1aWQsIHNlc3Npb24pCiAKICAgICBkZWYgc2VuZF9lbGVt
ZW50X2NvbW1hbmQoc2VsZiwgbWV0aG9kLCB1cmksIGJvZHk9Tm9uZSk6CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dlYmRyaXZl
ci93ZWJkcml2ZXIvZXJyb3IucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3dlYmRyaXZlci93ZWJkcml2ZXIvZXJyb3IucHkKaW5kZXggYjIzMzdm
ZjNiMzhmNTc4MjhjNzJkNzZlNDllZjg4OTNkMzBiNTc4Yy4uMDY0N2U3ZWI2MWY4MzRiMWRlMGVi
MDcyOTZlODc2Y2UzOGFhOGE0NyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93ZWJkcml2ZXIvd2ViZHJpdmVyL2Vycm9yLnB5Cisr
KyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd2Vi
ZHJpdmVyL3dlYmRyaXZlci9lcnJvci5weQpAQCAtMSwxMyArMSwxNiBAQAogaW1wb3J0IGNvbGxl
Y3Rpb25zCiBpbXBvcnQganNvbgogCitmcm9tIHNpeCBpbXBvcnQgaXRlcnZhbHVlcwogCiBjbGFz
cyBXZWJEcml2ZXJFeGNlcHRpb24oRXhjZXB0aW9uKToKICAgICBodHRwX3N0YXR1cyA9IE5vbmUK
ICAgICBzdGF0dXNfY29kZSA9IE5vbmUKIAotICAgIGRlZiBfX2luaXRfXyhzZWxmLCBtZXNzYWdl
PU5vbmUsIHN0YWNrdHJhY2U9Tm9uZSk6CisgICAgZGVmIF9faW5pdF9fKHNlbGYsIGh0dHBfc3Rh
dHVzPU5vbmUsIHN0YXR1c19jb2RlPU5vbmUsIG1lc3NhZ2U9Tm9uZSwgc3RhY2t0cmFjZT1Ob25l
KToKICAgICAgICAgc3VwZXIoV2ViRHJpdmVyRXhjZXB0aW9uLCBzZWxmKQorICAgICAgICBzZWxm
Lmh0dHBfc3RhdHVzID0gaHR0cF9zdGF0dXMKKyAgICAgICAgc2VsZi5zdGF0dXNfY29kZSA9IHN0
YXR1c19jb2RlCiAgICAgICAgIHNlbGYubWVzc2FnZSA9IG1lc3NhZ2UKICAgICAgICAgc2VsZi5z
dGFja3RyYWNlID0gc3RhY2t0cmFjZQogCkBAIC0xMTMsNyArMTE2LDcgQEAgY2xhc3MgTm9TdWNo
V2luZG93RXhjZXB0aW9uKFdlYkRyaXZlckV4Y2VwdGlvbik6CiAKIAogY2xhc3MgU2NyaXB0VGlt
ZW91dEV4Y2VwdGlvbihXZWJEcml2ZXJFeGNlcHRpb24pOgotICAgIGh0dHBfc3RhdHVzID0gNDA4
CisgICAgaHR0cF9zdGF0dXMgPSA1MDAKICAgICBzdGF0dXNfY29kZSA9ICJzY3JpcHQgdGltZW91
dCIKIAogCkBAIC0xMjgsNyArMTMxLDcgQEAgY2xhc3MgU3RhbGVFbGVtZW50UmVmZXJlbmNlRXhj
ZXB0aW9uKFdlYkRyaXZlckV4Y2VwdGlvbik6CiAKIAogY2xhc3MgVGltZW91dEV4Y2VwdGlvbihX
ZWJEcml2ZXJFeGNlcHRpb24pOgotICAgIGh0dHBfc3RhdHVzID0gNDA4CisgICAgaHR0cF9zdGF0
dXMgPSA1MDAKICAgICBzdGF0dXNfY29kZSA9ICJ0aW1lb3V0IgogCiAKQEAgLTE3MSw2ICsxNzQs
OCBAQCBkZWYgZnJvbV9yZXNwb25zZShyZXNwb25zZSk6CiAgICAgIiIiCiAgICAgaWYgcmVzcG9u
c2Uuc3RhdHVzID09IDIwMDoKICAgICAgICAgcmFpc2UgVW5rbm93bkVycm9yRXhjZXB0aW9uKAor
ICAgICAgICAgICAgcmVzcG9uc2Uuc3RhdHVzLAorICAgICAgICAgICAgTm9uZSwKICAgICAgICAg
ICAgICJSZXNwb25zZSBpcyBub3QgYW4gZXJyb3I6XG4iCiAgICAgICAgICAgICAiJXMiICUganNv
bi5kdW1wcyhyZXNwb25zZS5ib2R5KSkKIApAQCAtMTc4LDYgKzE4Myw4IEBAIGRlZiBmcm9tX3Jl
c3BvbnNlKHJlc3BvbnNlKToKICAgICAgICAgdmFsdWUgPSByZXNwb25zZS5ib2R5WyJ2YWx1ZSJd
CiAgICAgZWxzZToKICAgICAgICAgcmFpc2UgVW5rbm93bkVycm9yRXhjZXB0aW9uKAorICAgICAg
ICAgICAgcmVzcG9uc2Uuc3RhdHVzLAorICAgICAgICAgICAgTm9uZSwKICAgICAgICAgICAgICJF
eHBlY3RlZCAndmFsdWUnIGtleSBpbiByZXNwb25zZSBib2R5OlxuIgogICAgICAgICAgICAgIiVz
IiAlIGpzb24uZHVtcHMocmVzcG9uc2UuYm9keSkpCiAKQEAgLTE4Nyw3ICsxOTQsNyBAQCBkZWYg
ZnJvbV9yZXNwb25zZShyZXNwb25zZSk6CiAgICAgc3RhY2sgPSB2YWx1ZVsic3RhY2t0cmFjZSJd
IG9yIE5vbmUKIAogICAgIGNscyA9IGdldChjb2RlKQotICAgIHJldHVybiBjbHMobWVzc2FnZSwg
c3RhY2t0cmFjZT1zdGFjaykKKyAgICByZXR1cm4gY2xzKHJlc3BvbnNlLnN0YXR1cywgY29kZSwg
bWVzc2FnZSwgc3RhY2t0cmFjZT1zdGFjaykKIAogCiBkZWYgZ2V0KGVycm9yX2NvZGUpOgpAQCAt
MTk5LDYgKzIwNiw2IEBAIGRlZiBnZXQoZXJyb3JfY29kZSk6CiAKIAogX2Vycm9ycyA9IGNvbGxl
Y3Rpb25zLmRlZmF1bHRkaWN0KCkKLWZvciBpdGVtIGluIGxvY2FscygpLnZhbHVlcygpOgorZm9y
IGl0ZW0gaW4gbGlzdChpdGVydmFsdWVzKGxvY2FscygpKSk6CiAgICAgaWYgdHlwZShpdGVtKSA9
PSB0eXBlIGFuZCBpc3N1YmNsYXNzKGl0ZW0sIFdlYkRyaXZlckV4Y2VwdGlvbik6CiAgICAgICAg
IF9lcnJvcnNbaXRlbS5zdGF0dXNfY29kZV0gPSBpdGVtCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dlYmRyaXZlci93ZWJkcml2
ZXIvdHJhbnNwb3J0LnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy93ZWJkcml2ZXIvd2ViZHJpdmVyL3RyYW5zcG9ydC5weQppbmRleCA2MTliM2Zh
ZWU1NDQ2NDZjMmVkOTdkZGUwODE1Y2I1ODVhYjRhYzI4Li4zMmJhMzFhMmFlOWE5OTZhNWM1N2Zk
MDQwNjEyOTNmMzE3ZTViZjA0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dlYmRyaXZlci93ZWJkcml2ZXIvdHJhbnNwb3J0LnB5
CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
d2ViZHJpdmVyL3dlYmRyaXZlci90cmFuc3BvcnQucHkKQEAgLTEsOCArMSw5IEBACi1pbXBvcnQg
aHR0cGxpYgogaW1wb3J0IGpzb24KLWltcG9ydCB1cmxwYXJzZQoraW1wb3J0IHNlbGVjdAorZnJv
bSBzaXgubW92ZXMudXJsbGliIGltcG9ydCBwYXJzZSBhcyB1cmxwYXJzZQorZnJvbSBzaXgubW92
ZXMgaW1wb3J0IGh0dHBfY2xpZW50IGFzIGh0dHBsaWIKIAotaW1wb3J0IGVycm9yCitmcm9tIC4g
aW1wb3J0IGVycm9yCiAKIGZyb20gc2l4IGltcG9ydCB0ZXh0X3R5cGUKIApAQCAtMTUsOSArMTYs
MTAgQEAgY2xhc3MgUmVzcG9uc2Uob2JqZWN0KToKICAgICBib2R5IGhhcyBiZWVuIHJlYWQgYW5k
IHBhcnNlZCBhcyBhcHByb3ByaWF0ZS4KICAgICAiIiIKIAotICAgIGRlZiBfX2luaXRfXyhzZWxm
LCBzdGF0dXMsIGJvZHkpOgorICAgIGRlZiBfX2luaXRfXyhzZWxmLCBzdGF0dXMsIGJvZHksIGhl
YWRlcnMpOgogICAgICAgICBzZWxmLnN0YXR1cyA9IHN0YXR1cwogICAgICAgICBzZWxmLmJvZHkg
PSBib2R5CisgICAgICAgIHNlbGYuaGVhZGVycyA9IGhlYWRlcnMKIAogICAgIGRlZiBfX3JlcHJf
XyhzZWxmKToKICAgICAgICAgY2xzX25hbWUgPSBzZWxmLl9fY2xhc3NfXy5fX25hbWVfXwpAQCAt
MzgsMTEgKzQwLDEyIEBAIGNsYXNzIFJlc3BvbnNlKG9iamVjdCk6CiAgICAgZGVmIGZyb21faHR0
cChjbHMsIGh0dHBfcmVzcG9uc2UsIGRlY29kZXI9anNvbi5KU09ORGVjb2RlciwgKiprd2FyZ3Mp
OgogICAgICAgICB0cnk6CiAgICAgICAgICAgICBib2R5ID0ganNvbi5sb2FkKGh0dHBfcmVzcG9u
c2UsIGNscz1kZWNvZGVyLCAqKmt3YXJncykKKyAgICAgICAgICAgIGhlYWRlcnMgPSBkaWN0KGh0
dHBfcmVzcG9uc2UuZ2V0aGVhZGVycygpKQogICAgICAgICBleGNlcHQgVmFsdWVFcnJvcjoKICAg
ICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoIkZhaWxlZCB0byBkZWNvZGUgcmVzcG9uc2UgYm9k
eSBhcyBKU09OOlxuIiArCiAgICAgICAgICAgICAgICAgaHR0cF9yZXNwb25zZS5yZWFkKCkpCiAK
LSAgICAgICAgcmV0dXJuIGNscyhodHRwX3Jlc3BvbnNlLnN0YXR1cywgYm9keSkKKyAgICAgICAg
cmV0dXJuIGNscyhodHRwX3Jlc3BvbnNlLnN0YXR1cywgYm9keSwgaGVhZGVycykKIAogCiBjbGFz
cyBIVFRQV2lyZVByb3RvY29sKG9iamVjdCk6CkBAIC04Myw5ICs4NiwzNSBAQCBjbGFzcyBIVFRQ
V2lyZVByb3RvY29sKG9iamVjdCk6CiAgICAgICAgIHNlbGYucG9ydCA9IHBvcnQKICAgICAgICAg
c2VsZi51cmxfcHJlZml4ID0gdXJsX3ByZWZpeAogCisgICAgICAgIHNlbGYuX2Nvbm4gPSBOb25l
CiAgICAgICAgIHNlbGYuX3RpbWVvdXQgPSB0aW1lb3V0CiAKKyAgICBkZWYgX19kZWxfXyhzZWxm
KToKKyAgICAgICAgc2VsZi5jbG9zZSgpCisKKyAgICBkZWYgY2xvc2Uoc2VsZik6CisgICAgICAg
ICIiIkNsb3NlcyB0aGUgY3VycmVudCBIVFRQIGNvbm5lY3Rpb24sIGlmIHRoZXJlIGlzIG9uZS4i
IiIKKyAgICAgICAgaWYgc2VsZi5fY29ubjoKKyAgICAgICAgICAgIHNlbGYuX2Nvbm4uY2xvc2Uo
KQorCisgICAgQHByb3BlcnR5CisgICAgZGVmIGNvbm5lY3Rpb24oc2VsZik6CisgICAgICAgICIi
IkdldHMgdGhlIGN1cnJlbnQgSFRUUCBjb25uZWN0aW9uLCBvciBsYXppbHkgY3JlYXRlcyBvbmUu
IiIiCisgICAgICAgIGlmIG5vdCBzZWxmLl9jb25uOgorICAgICAgICAgICAgY29ubl9rd2FyZ3Mg
PSB7fQorICAgICAgICAgICAgaWYgc2VsZi5fdGltZW91dCBpcyBub3QgTm9uZToKKyAgICAgICAg
ICAgICAgICBjb25uX2t3YXJnc1sidGltZW91dCJdID0gc2VsZi5fdGltZW91dAorCisgICAgICAg
ICAgICBzZWxmLl9jb25uID0gaHR0cGxpYi5IVFRQQ29ubmVjdGlvbigKKyAgICAgICAgICAgICAg
ICBzZWxmLmhvc3QsIHNlbGYucG9ydCwgc3RyaWN0PVRydWUsICoqY29ubl9rd2FyZ3MpCisKKyAg
ICAgICAgcmV0dXJuIHNlbGYuX2Nvbm4KKwogICAgIGRlZiB1cmwoc2VsZiwgc3VmZml4KToKKyAg
ICAgICAgIiIiCisgICAgICAgIEZyb20gdGhlIHJlbGF0aXZlIHBhdGggdG8gYSBjb21tYW5kIGVu
ZC1wb2ludCwKKyAgICAgICAgY3JhZnQgYSBmdWxsIFVSTCBzdWl0YWJsZSB0byBiZSB1c2VkIGlu
IGEgcmVxdWVzdCB0byB0aGUgSFRUUEQuCisgICAgICAgICIiIgogICAgICAgICByZXR1cm4gdXJs
cGFyc2UudXJsam9pbihzZWxmLnVybF9wcmVmaXgsIHN1ZmZpeCkKIAogICAgIGRlZiBzZW5kKHNl
bGYsCkBAIC0xMTEsNiArMTQwLDggQEAgY2xhc3MgSFRUUFdpcmVQcm90b2NvbChvYmplY3QpOgog
ICAgICAgICBlbGVtZW50IHJlZmVyZW5jZXMgdG8gYGB3ZWJkcml2ZXIuRWxlbWVudGBgIGlzIHBy
b3ZpZGVkLgogICAgICAgICBVc2UgYGB3ZWJkcml2ZXIucHJvdG9jb2wuRGVjb2RlcmBgIHRvIGFj
aGlldmUgdGhpcyBiZWhhdmlvdXIuCiAKKyAgICAgICAgVGhlIGNsaWVudCB3aWxsIGF0dGVtcHQg
dG8gdXNlIHBlcnNpc3RlbnQgSFRUUCBjb25uZWN0aW9ucy4KKwogICAgICAgICA6cGFyYW0gbWV0
aG9kOiBgR0VUYCwgYFBPU1RgLCBvciBgREVMRVRFYC4KICAgICAgICAgOnBhcmFtIHVyaTogUmVs
YXRpdmUgZW5kcG9pbnQgb2YgdGhlIHJlcXVlc3RzIFVSTCBwYXRoLgogICAgICAgICA6cGFyYW0g
Ym9keTogQm9keSBvZiB0aGUgcmVxdWVzdC4gIERlZmF1bHRzIHRvIGFuIGVtcHR5CkBAIC0xNDEs
MjYgKzE3MiwyMyBAQCBjbGFzcyBIVFRQV2lyZVByb3RvY29sKG9iamVjdCk6CiAgICAgICAgICAg
ICAgICAgcmFpc2UgVmFsdWVFcnJvcigiRmFpbGVkIHRvIGVuY29kZSByZXF1ZXN0IGJvZHkgYXMg
SlNPTjpcbiIKICAgICAgICAgICAgICAgICAgICAgIiVzIiAlIGpzb24uZHVtcHMoYm9keSwgaW5k
ZW50PTIpKQogCi0gICAgICAgICAgICBpZiBpc2luc3RhbmNlKHBheWxvYWQsIHRleHRfdHlwZSk6
Ci0gICAgICAgICAgICAgICAgcGF5bG9hZCA9IGJvZHkuZW5jb2RlKCJ1dGYtOCIpCisgICAgICAg
IHJlc3BvbnNlID0gc2VsZi5fcmVxdWVzdChtZXRob2QsIHVyaSwgcGF5bG9hZCwgaGVhZGVycykK
KyAgICAgICAgcmV0dXJuIFJlc3BvbnNlLmZyb21faHR0cChyZXNwb25zZSwgZGVjb2Rlcj1kZWNv
ZGVyLCAqKmNvZGVjX2t3YXJncykKKworICAgIGRlZiBfcmVxdWVzdChzZWxmLCBtZXRob2QsIHVy
aSwgcGF5bG9hZCwgaGVhZGVycz1Ob25lKToKKyAgICAgICAgaWYgaXNpbnN0YW5jZShwYXlsb2Fk
LCB0ZXh0X3R5cGUpOgorICAgICAgICAgICAgcGF5bG9hZCA9IHBheWxvYWQuZW5jb2RlKCJ1dGYt
OCIpCiAKICAgICAgICAgaWYgaGVhZGVycyBpcyBOb25lOgogICAgICAgICAgICAgaGVhZGVycyA9
IHt9Ci0gICAgICAgIGhlYWRlcnMudXBkYXRlKHsnQ29ubmVjdGlvbic6ICdrZWVwLWFsaXZlJ30p
CisgICAgICAgIGhlYWRlcnMudXBkYXRlKHsiQ29ubmVjdGlvbiI6ICJrZWVwLWFsaXZlIn0pCiAK
ICAgICAgICAgdXJsID0gc2VsZi51cmwodXJpKQogCi0gICAgICAgIGNvbm5fa3dhcmdzID0ge30K
LSAgICAgICAgaWYgc2VsZi5fdGltZW91dCBpcyBub3QgTm9uZToKLSAgICAgICAgICAgIGNvbm5f
a3dhcmdzWyJ0aW1lb3V0Il0gPSBzZWxmLl90aW1lb3V0Ci0KLSAgICAgICAgY29ubiA9IGh0dHBs
aWIuSFRUUENvbm5lY3Rpb24oCi0gICAgICAgICAgICBzZWxmLmhvc3QsIHNlbGYucG9ydCwgc3Ry
aWN0PVRydWUsICoqY29ubl9rd2FyZ3MpCi0gICAgICAgIGNvbm4ucmVxdWVzdChtZXRob2QsIHVy
bCwgcGF5bG9hZCwgaGVhZGVycykKKyAgICAgICAgaWYgc2VsZi5faGFzX3VucmVhZF9kYXRhKCk6
CisgICAgICAgICAgICBzZWxmLmNsb3NlKCkKKyAgICAgICAgc2VsZi5jb25uZWN0aW9uLnJlcXVl
c3QobWV0aG9kLCB1cmwsIHBheWxvYWQsIGhlYWRlcnMpCisgICAgICAgIHJldHVybiBzZWxmLmNv
bm5lY3Rpb24uZ2V0cmVzcG9uc2UoKQogCi0gICAgICAgIHRyeToKLSAgICAgICAgICAgIHJlc3Bv
bnNlID0gY29ubi5nZXRyZXNwb25zZSgpCi0gICAgICAgICAgICByZXR1cm4gUmVzcG9uc2UuZnJv
bV9odHRwKAotICAgICAgICAgICAgICAgIHJlc3BvbnNlLCBkZWNvZGVyPWRlY29kZXIsICoqY29k
ZWNfa3dhcmdzKQotICAgICAgICBmaW5hbGx5OgotICAgICAgICAgICAgY29ubi5jbG9zZSgpCisg
ICAgZGVmIF9oYXNfdW5yZWFkX2RhdGEoc2VsZik6CisgICAgICAgIHJldHVybiBzZWxmLl9jb25u
IGFuZCBzZWxmLl9jb25uLnNvY2sgYW5kIHNlbGVjdC5zZWxlY3QoW3NlbGYuX2Nvbm4uc29ja10s
IFtdLCBbXSwgMClbMF0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvd2ViZHJpdmVyL3dlYmRyaXZlci93M2MtaW1wb3J0LmxvZyBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd2ViZHJp
dmVyL3dlYmRyaXZlci93M2MtaW1wb3J0LmxvZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggZWJlMzg1MTNmMWZjMDY2ZDc4OWNmOGQ2MzQ5NzU5MTkxNGZiNDBiZC4uMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dlYmRyaXZlci93ZWJkcml2ZXIvdzNjLWltcG9y
dC5sb2cKKysrIC9kZXYvbnVsbApAQCAtMSwyMSArMCwwIEBACi1UaGUgdGVzdHMgaW4gdGhpcyBk
aXJlY3Rvcnkgd2VyZSBpbXBvcnRlZCBmcm9tIHRoZSBXM0MgcmVwb3NpdG9yeS4KLURvIE5PVCBt
b2RpZnkgdGhlc2UgdGVzdHMgZGlyZWN0bHkgaW4gV2ViS2l0LgotSW5zdGVhZCwgY3JlYXRlIGEg
cHVsbCByZXF1ZXN0IG9uIHRoZSBXUFQgZ2l0aHViOgotCWh0dHBzOi8vZ2l0aHViLmNvbS93ZWIt
cGxhdGZvcm0tdGVzdHMvd3B0Ci0KLVRoZW4gcnVuIHRoZSBUb29scy9TY3JpcHRzL2ltcG9ydC13
M2MtdGVzdHMgaW4gV2ViS2l0IHRvIHJlaW1wb3J0Ci0KLURvIE5PVCBtb2RpZnkgb3IgcmVtb3Zl
IHRoaXMgZmlsZS4KLQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1Qcm9wZXJ0aWVzIHJlcXVpcmluZyB2ZW5k
b3IgcHJlZml4ZXM6Ci1Ob25lCi1Qcm9wZXJ0eSB2YWx1ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVm
aXhlczoKLU5vbmUKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotTGlzdCBvZiBmaWxlczoKLS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dlYmRyaXZlci93ZWJkcml2
ZXIvX19pbml0X18ucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3dlYmRyaXZlci93ZWJkcml2ZXIvY2xpZW50LnB5Ci0vTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93ZWJkcml2ZXIvd2ViZHJpdmVyL2Vy
cm9yLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy93ZWJkcml2ZXIvd2ViZHJpdmVyL3Byb3RvY29sLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93ZWJkcml2ZXIvd2ViZHJpdmVyL3RyYW5zcG9y
dC5weQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy93cHQvX19pbml0X18ucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdC9fX2luaXRfXy5weQppbmRleCBhNjgzNGI4Mjg1YTU2
YmVmMGUxNTQzZmQ5MDFjN2U2ZjJmOGJjMjAyLi5lNjlkZTI5YmIyZDFkNjQzNGI4YjI5YWU3NzVh
ZDhjMmU0OGM1MzkxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3dwdC9fX2luaXRfXy5weQorKysgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdC9fX2luaXRfXy5weQpAQCAtMSAr
MCwwIEBACi0jIFRoaXMgZmlsZSBpcyByZXF1aXJlZCBmb3IgUHl0aG9uIHRvIHNlYXJjaCB0aGlz
IGRpcmVjdG9yeSBmb3IgbW9kdWxlcy4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3dwdC9hbmRyb2lkLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy93cHQvYW5kcm9pZC5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41MWRlYjcxZTMxNjUzODE0OGUw
NmIxNDZiY2E3NTU1ZmI3YjA0NmRmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHQvYW5kcm9pZC5weQpAQCAtMCww
ICsxLDE4MyBAQAoraW1wb3J0IGFyZ3BhcnNlCitpbXBvcnQgb3MKK2ltcG9ydCBwbGF0Zm9ybQor
aW1wb3J0IHNodXRpbAoraW1wb3J0IHN1YnByb2Nlc3MKKworaW1wb3J0IHJlcXVlc3RzCisKK2Fu
ZHJvaWRfZGV2aWNlID0gTm9uZQorCitoZXJlID0gb3MucGF0aC5hYnNwYXRoKG9zLnBhdGguZGly
bmFtZShfX2ZpbGVfXykpCit3cHRfcm9vdCA9IG9zLnBhdGguYWJzcGF0aChvcy5wYXRoLmpvaW4o
aGVyZSwgb3MucGFyZGlyLCBvcy5wYXJkaXIpKQorCisKK2RlZiBkb19kZWxheWVkX2ltcG9ydHMo
KToKKyAgICBnbG9iYWwgYW5kcm9pZF9kZXZpY2UKKyAgICBmcm9tIG1venJ1bm5lci5kZXZpY2Vz
IGltcG9ydCBhbmRyb2lkX2RldmljZQorICAgIGFuZHJvaWRfZGV2aWNlLlRPT0xUT09MX1BBVEgg
PSBvcy5wYXRoLmpvaW4ob3MucGF0aC5kaXJuYW1lKF9fZmlsZV9fKSwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9zLnBhcmRpciwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ0aGlyZF9wYXJ0eSIsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAidG9vbHRvb2wiLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInRvb2x0b29s
LnB5IikKKworCitkZWYgZ2V0X3BhcnNlcl9pbnN0YWxsKCk6CisgICAgcGFyc2VyID0gYXJncGFy
c2UuQXJndW1lbnRQYXJzZXIoKQorICAgIHBhcnNlci5hZGRfYXJndW1lbnQoIi0tcmVpbnN0YWxs
IiwgYWN0aW9uPSJzdG9yZV90cnVlIiwgZGVmYXVsdD1GYWxzZSwKKyAgICAgICAgICAgICAgICAg
ICAgICAgIGhlbHA9IkZvcmNlIHJlaW5zdGFsbCBldmVuIGlmIHRoZSBlbXVsYXRvciBhbHJlYWR5
IGV4aXN0cyIpCisgICAgcmV0dXJuIHBhcnNlcgorCisKK2RlZiBnZXRfcGFyc2VyX3N0YXJ0KCk6
CisgICAgcmV0dXJuIGdldF9wYXJzZXJfaW5zdGFsbCgpCisKKworZGVmIGdldF9zZGtfcGF0aChk
ZXN0KToKKyAgICBpZiBkZXN0IGlzIE5vbmU6CisgICAgICAgICMgb3MuZ2V0Y3dkKCkgZG9lc24n
dCBpbmNsdWRlIHRoZSB2ZW52IHBhdGgKKyAgICAgICAgZGVzdCA9IG9zLnBhdGguam9pbih3cHRf
cm9vdCwgIl92ZW52IikKKyAgICBkZXN0ID0gb3MucGF0aC5qb2luKGRlc3QsICdhbmRyb2lkLXNk
aycpCisgICAgcmV0dXJuIG9zLnBhdGguYWJzcGF0aChvcy5lbnZpcm9uLmdldCgnQU5EUk9JRF9T
REtfUEFUSCcsIGRlc3QpKQorCisKK2RlZiB1bmluc3RhbGxfc2RrKGRlc3Q9Tm9uZSk6CisgICAg
cGF0aCA9IGdldF9zZGtfcGF0aChkZXN0KQorICAgIGlmIG9zLnBhdGguZXhpc3RzKHBhdGgpIGFu
ZCBvcy5wYXRoLmlzZGlyKHBhdGgpOgorICAgICAgICBzaHV0aWwucm10cmVlKHBhdGgpCisKKwor
ZGVmIGluc3RhbGxfc2RrKGxvZ2dlciwgZGVzdD1Ob25lKToKKyAgICBzZGtfcGF0aCA9IGdldF9z
ZGtfcGF0aChkZXN0KQorICAgIGlmIG9zLnBhdGguaXNkaXIoc2RrX3BhdGgpOgorICAgICAgICBs
b2dnZXIuaW5mbygiVXNpbmcgU0RLIGluc3RhbGxlZCBhdCAlcyIgJSBzZGtfcGF0aCkKKyAgICAg
ICAgcmV0dXJuIHNka19wYXRoLCBGYWxzZQorCisgICAgaWYgbm90IG9zLnBhdGguZXhpc3RzKHNk
a19wYXRoKToKKyAgICAgICAgb3MubWFrZWRpcnMoc2RrX3BhdGgpCisKKyAgICBvc19uYW1lID0g
cGxhdGZvcm0uc3lzdGVtKCkubG93ZXIoKQorICAgIGlmIG9zX25hbWUgbm90IGluIFsiZGFyd2lu
IiwgImxpbnV4IiwgIndpbmRvd3MiXToKKyAgICAgICAgbG9nZ2VyLmNyaXRpY2FsKCJVbnN1cHBv
cnRlZCBwbGF0Zm9ybSAlcyIgJSBvc19uYW1lKQorICAgICAgICByYWlzZSBOb3RJbXBsZW1lbnRl
ZEVycm9yCisKKyAgICBvc19uYW1lID0gJ2RhcndpbicgaWYgb3NfbmFtZSA9PSAnbWFjb3N4JyBl
bHNlIG9zX25hbWUKKyAgICAjIFRPRE86IGVpdGhlciBhbHdheXMgdXNlIHRoZSBsYXRlc3QgdmVy
c2lvbiBvciBoYXZlIHNvbWUgd2F5IHRvCisgICAgIyBjb25maWd1cmUgYSBwZXItcHJvZHVjdCB2
ZXJzaW9uIGlmIHRoZXJlIGFyZSBzdHJvbmcgcmVxdWlyZW1lbnRzCisgICAgIyB0byB1c2UgYSBz
cGVjaWZpYyB2ZXJzaW9uLgorICAgIHVybCA9ICdodHRwczovL2RsLmdvb2dsZS5jb20vYW5kcm9p
ZC9yZXBvc2l0b3J5L3Nkay10b29scy0lcy00MzMzNzk2LnppcCcgJSAob3NfbmFtZSwpCisKKyAg
ICBsb2dnZXIuaW5mbygiR2V0dGluZyBTREsgZnJvbSAlcyIgJSB1cmwpCisgICAgdGVtcF9wYXRo
ID0gb3MucGF0aC5qb2luKHNka19wYXRoLCB1cmwucnNwbGl0KCIvIiwgMSlbMV0pCisgICAgdHJ5
OgorICAgICAgICB3aXRoIG9wZW4odGVtcF9wYXRoLCAid2IiKSBhcyBmOgorICAgICAgICAgICAg
d2l0aCByZXF1ZXN0cy5nZXQodXJsLCBzdHJlYW09VHJ1ZSkgYXMgcmVzcDoKKyAgICAgICAgICAg
ICAgICBzaHV0aWwuY29weWZpbGVvYmoocmVzcC5yYXcsIGYpCisKKyAgICAgICAgIyBQeXRob24n
cyB6aXBmaWxlIG1vZHVsZSBkb2Vzbid0IHNlZW0gdG8gd29yayBoZXJlCisgICAgICAgIHN1YnBy
b2Nlc3MuY2hlY2tfY2FsbChbInVuemlwIiwgdGVtcF9wYXRoXSwgY3dkPXNka19wYXRoKQorICAg
IGZpbmFsbHk6CisgICAgICAgIG9zLnVubGluayh0ZW1wX3BhdGgpCisKKyAgICByZXR1cm4gc2Rr
X3BhdGgsIFRydWUKKworCitkZWYgaW5zdGFsbF9hbmRyb2lkX3BhY2thZ2VzKGxvZ2dlciwgc2Rr
X3BhdGgsIG5vX3Byb21wdD1GYWxzZSk6CisgICAgc2RrX21hbmFnZXJfcGF0aCA9IG9zLnBhdGgu
am9pbihzZGtfcGF0aCwgInRvb2xzIiwgImJpbiIsICJzZGttYW5hZ2VyIikKKyAgICBpZiBub3Qg
b3MucGF0aC5leGlzdHMoc2RrX21hbmFnZXJfcGF0aCk6CisgICAgICAgIHJhaXNlIE9TRXJyb3Io
IkNhbid0IGZpbmQgc2RrbWFuYWdlciBhdCAlcyIgJSBzZGtfbWFuYWdlcl9wYXRoKQorCisgICAg
I1RPRE86IE5vdCBzdXJlIHdoYXQncyByZWFsbHkgbmVlZGVkIGhlcmUKKyAgICBwYWNrYWdlcyA9
IFsicGxhdGZvcm0tdG9vbHMiLAorICAgICAgICAgICAgICAgICJidWlsZC10b29sczsyOC4wLjMi
LAorICAgICAgICAgICAgICAgICJwbGF0Zm9ybXM7YW5kcm9pZC0yOCIsCisgICAgICAgICAgICAg
ICAgImVtdWxhdG9yIl0KKworICAgICMgVE9ETzogbWFrZSB0aGlzIHdvcmsgbm9uLWludGVybmFj
dGl2ZWx5CisgICAgbG9nZ2VyLmluZm8oIkluc3RhbGxpbmcgU0RLIHBhY2thZ2VzIikKKyAgICBj
bWQgPSBbc2RrX21hbmFnZXJfcGF0aF0gKyBwYWNrYWdlcworCisgICAgcHJvYyA9IHN1YnByb2Nl
c3MuUG9wZW4oY21kLCBzdGRpbj1zdWJwcm9jZXNzLlBJUEUpCisgICAgaWYgbm9fcHJvbXB0Ogor
ICAgICAgICBkYXRhID0gIllcbiIgKiAxMDAgaWYgbm9fcHJvbXB0IGVsc2UgTm9uZQorICAgICAg
ICBwcm9jLmNvbW11bmljYXRlKGRhdGEpCisgICAgZWxzZToKKyAgICAgICAgcHJvYy53YWl0KCkK
KyAgICBpZiBwcm9jLnJldHVybmNvZGUgIT0gMDoKKyAgICAgICAgcmFpc2Ugc3VicHJvY2Vzcy5D
YWxsZWRQcm9jZXNzRXJyb3IocHJvYy5yZXR1cm5jb2RlLCBjbWQpCisKKworZGVmIGdldF9lbXVs
YXRvcihzZGtfcGF0aCk6CisgICAgaWYgYW5kcm9pZF9kZXZpY2UgaXMgTm9uZToKKyAgICAgICAg
ZG9fZGVsYXllZF9pbXBvcnRzKCkKKyAgICBpZiAiQU5EUk9JRF9TREtfUk9PVCIgbm90IGluIG9z
LmVudmlyb246CisgICAgICAgIG9zLmVudmlyb25bIkFORFJPSURfU0RLX1JPT1QiXSA9IHNka19w
YXRoCisgICAgc3Vic3RzID0geyJ0b3Bfc3JjZGlyIjogd3B0X3Jvb3QsICJUQVJHRVRfQ1BVIjog
Ing4NiJ9CisgICAgZW11bGF0b3IgPSBhbmRyb2lkX2RldmljZS5BbmRyb2lkRW11bGF0b3IoIioi
LCBzdWJzdHM9c3Vic3RzKQorICAgIGVtdWxhdG9yLmVtdWxhdG9yX3BhdGggPSBvcy5wYXRoLmpv
aW4oc2RrX3BhdGgsICJlbXVsYXRvciIsICJlbXVsYXRvciIpCisgICAgZW11bGF0b3IuYXZkX2lu
Zm8udG9vbHRvb2xfbWFuaWZlc3QgPSBvcy5wYXRoLmpvaW4od3B0X3Jvb3QsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInRvb2xzIiwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAid3B0
IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAibWFjaC1lbXVsYXRvci5tYW5pZmVzdCIpCisgICAgcmV0dXJuIGVtdWxhdG9yCisKKworZGVm
IGluc3RhbGwobG9nZ2VyLCByZWluc3RhbGw9RmFsc2UsIG5vX3Byb21wdD1GYWxzZSk6CisgICAg
aWYgcmVpbnN0YWxsOgorICAgICAgICB1bmluc3RhbGxfc2RrKCkKKworICAgIGRlc3QsIG5ld19p
bnN0YWxsID0gaW5zdGFsbF9zZGsobG9nZ2VyKQorICAgIGlmIG5ld19pbnN0YWxsOgorICAgICAg
ICBpbnN0YWxsX2FuZHJvaWRfcGFja2FnZXMobG9nZ2VyLCBkZXN0LCBub19wcm9tcHQpCisKKyAg
ICBpZiAiQU5EUk9JRF9TREtfUk9PVCIgbm90IGluIG9zLmVudmlyb246CisgICAgICAgIG9zLmVu
dmlyb25bIkFORFJPSURfU0RLX1JPT1QiXSA9IGRlc3QKKworICAgIGVtdWxhdG9yID0gZ2V0X2Vt
dWxhdG9yKGRlc3QpCisgICAgZW11bGF0b3IudXBkYXRlX2F2ZCgpCisgICAgcmV0dXJuIGVtdWxh
dG9yCisKKworZGVmIHN0YXJ0KGxvZ2dlciwgZW11bGF0b3I9Tm9uZSwgcmVpbnN0YWxsPUZhbHNl
KToKKyAgICBpZiByZWluc3RhbGw6CisgICAgICAgIGluc3RhbGwocmVpbnN0YWxsPVRydWUpCisK
KyAgICBzZGtfcGF0aCA9IGdldF9zZGtfcGF0aChOb25lKQorCisgICAgaWYgZW11bGF0b3IgaXMg
Tm9uZToKKyAgICAgICAgZW11bGF0b3IgPSBnZXRfZW11bGF0b3Ioc2RrX3BhdGgpCisKKyAgICBp
ZiBub3QgZW11bGF0b3IuY2hlY2tfYXZkKCk6CisgICAgICAgIGVtdWxhdG9yLnVwZGF0ZV9hdmQo
KQorCisgICAgZW11bGF0b3Iuc3RhcnQoKQorICAgIGVtdWxhdG9yLndhaXRfZm9yX3N0YXJ0KCkK
KyAgICByZXR1cm4gZW11bGF0b3IKKworCitkZWYgcnVuX2luc3RhbGwodmVudiwgKiprd2FyZ3Mp
OgorICAgIHRyeToKKyAgICAgICAgaW1wb3J0IGxvZ2dpbmcKKyAgICAgICAgbG9nZ2luZy5iYXNp
Y0NvbmZpZygpCisgICAgICAgIGxvZ2dlciA9IGxvZ2dpbmcuZ2V0TG9nZ2VyKCkKKworICAgICAg
ICBpbnN0YWxsKGxvZ2dlciwgKiprd2FyZ3MpCisgICAgZXhjZXB0IEV4Y2VwdGlvbjoKKyAgICAg
ICAgaW1wb3J0IHRyYWNlYmFjaworICAgICAgICB0cmFjZWJhY2sucHJpbnRfZXhjKCkKKyAgICAg
ICAgaW1wb3J0IHBkYgorICAgICAgICBwZGIucG9zdF9tb3J0ZW0oKQorCisKK2RlZiBydW5fc3Rh
cnQodmVudiwgKiprd2FyZ3MpOgorICAgIHRyeToKKyAgICAgICAgaW1wb3J0IGxvZ2dpbmcKKyAg
ICAgICAgbG9nZ2luZy5iYXNpY0NvbmZpZygpCisgICAgICAgIGxvZ2dlciA9IGxvZ2dpbmcuZ2V0
TG9nZ2VyKCkKKworICAgICAgICBzdGFydChsb2dnZXIsICoqa3dhcmdzKQorICAgIGV4Y2VwdCBF
eGNlcHRpb246CisgICAgICAgIGltcG9ydCB0cmFjZWJhY2sKKyAgICAgICAgdHJhY2ViYWNrLnBy
aW50X2V4YygpCisgICAgICAgIGltcG9ydCBwZGIKKyAgICAgICAgcGRiLnBvc3RfbW9ydGVtKCkK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvd3B0L2Jyb3dzZXIucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3dwdC9icm93c2VyLnB5CmluZGV4IDk4MzRlNWQ1M2YzYWI3NTIyZjYx
YjEyZDE0YWEyNzNhZDg5YWQ0MzguLmE5NGQ1NTA5Y2M4YmExYmZjYzRjYmNlYWZkOWY1MTFhNGY5
ODA0YWIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvd3B0L2Jyb3dzZXIucHkKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHQvYnJvd3Nlci5weQpAQCAtMSwzNyArMSw2OSBA
QAotaW1wb3J0IGxvZ2dpbmcKIGltcG9ydCBvcwogaW1wb3J0IHBsYXRmb3JtCiBpbXBvcnQgcmUK
IGltcG9ydCBzaHV0aWwKIGltcG9ydCBzdGF0CitpbXBvcnQgZXJybm8KIGltcG9ydCBzdWJwcm9j
ZXNzCiBpbXBvcnQgdGVtcGZpbGUKK2ltcG9ydCB1cmxwYXJzZQogZnJvbSBhYmMgaW1wb3J0IEFC
Q01ldGEsIGFic3RyYWN0bWV0aG9kCiBmcm9tIGRhdGV0aW1lIGltcG9ydCBkYXRldGltZSwgdGlt
ZWRlbHRhCiBmcm9tIGRpc3R1dGlscy5zcGF3biBpbXBvcnQgZmluZF9leGVjdXRhYmxlCiAKLWZy
b20gdXRpbHMgaW1wb3J0IGNhbGwsIGdldCwgdW50YXIsIHVuemlwCitpbXBvcnQgcmVxdWVzdHMK
IAotbG9nZ2VyID0gbG9nZ2luZy5nZXRMb2dnZXIoX19uYW1lX18pCitmcm9tIHV0aWxzIGltcG9y
dCBjYWxsLCBnZXQsIHVudGFyLCB1bnppcAogCiB1bmFtZSA9IHBsYXRmb3JtLnVuYW1lKCkKIAor
IyB0aGUgcm9vdFVybCBmb3IgdGhlIGZpcmVmb3gtY2kgZGVwbG95bWVudCBvZiBUYXNrY2x1c3Rl
cgorIyAoYWZ0ZXIgTm92ZW1iZXIgOSwgaHR0cHM6Ly9maXJlZm94LWNpLXRjLnNlcnZpY2VzLm1v
emlsbGEuY29tLykKK0ZJUkVGT1hfQ0lfUk9PVF9VUkwgPSAnaHR0cHM6Ly90YXNrY2x1c3Rlci5u
ZXQnCisKKworZGVmIF9nZXRfZmlsZXZlcnNpb24oYmluYXJ5LCBsb2dnZXI9Tm9uZSk6CisgICAg
Y29tbWFuZCA9ICIoR2V0LUl0ZW0gJyVzJykuVmVyc2lvbkluZm8uRmlsZVZlcnNpb24iICUgYmlu
YXJ5LnJlcGxhY2UoIiciLCAiJyciKQorICAgIHRyeToKKyAgICAgICAgcmV0dXJuIGNhbGwoInBv
d2Vyc2hlbGwuZXhlIiwgY29tbWFuZCkuc3RyaXAoKQorICAgIGV4Y2VwdCAoc3VicHJvY2Vzcy5D
YWxsZWRQcm9jZXNzRXJyb3IsIE9TRXJyb3IpOgorICAgICAgICBpZiBsb2dnZXIgaXMgbm90IE5v
bmU6CisgICAgICAgICAgICBsb2dnZXIud2FybmluZygiRmFpbGVkIHRvIGNhbGwgJXMgaW4gUG93
ZXJTaGVsbCIgJSBjb21tYW5kKQorICAgICAgICByZXR1cm4gTm9uZQorCisKK2RlZiBoYW5kbGVf
cmVtb3ZlX3JlYWRvbmx5KGZ1bmMsIHBhdGgsIGV4Yyk6CisgICAgZXhjdmFsdWUgPSBleGNbMV0K
KyAgICBpZiBmdW5jIGluIChvcy5ybWRpciwgb3MucmVtb3ZlKSBhbmQgZXhjdmFsdWUuZXJybm8g
PT0gZXJybm8uRUFDQ0VTOgorICAgICAgICBvcy5jaG1vZChwYXRoLCBzdGF0LlNfSVJXWFUgfCBz
dGF0LlNfSVJXWEcgfCBzdGF0LlNfSVJXWE8pICAjIDA3NzcKKyAgICAgICAgZnVuYyhwYXRoKQor
ICAgIGVsc2U6CisgICAgICAgIHJhaXNlCisKIAogY2xhc3MgQnJvd3NlcihvYmplY3QpOgogICAg
IF9fbWV0YWNsYXNzX18gPSBBQkNNZXRhCiAKKyAgICBkZWYgX19pbml0X18oc2VsZiwgbG9nZ2Vy
KToKKyAgICAgICAgc2VsZi5sb2dnZXIgPSBsb2dnZXIKKworICAgIEBhYnN0cmFjdG1ldGhvZAor
ICAgIGRlZiBkb3dubG9hZChzZWxmLCBkZXN0PU5vbmUsIGNoYW5uZWw9Tm9uZSk6CisgICAgICAg
ICIiIkRvd25sb2FkIGEgcGFja2FnZSBvciBpbnN0YWxsZXIgZm9yIHRoZSBicm93c2VyIiIiCisg
ICAgICAgIHJldHVybiBOb3RJbXBsZW1lbnRlZAorCiAgICAgQGFic3RyYWN0bWV0aG9kCiAgICAg
ZGVmIGluc3RhbGwoc2VsZiwgZGVzdD1Ob25lKToKICAgICAgICAgIiIiSW5zdGFsbCB0aGUgYnJv
d3Nlci4iIiIKICAgICAgICAgcmV0dXJuIE5vdEltcGxlbWVudGVkCiAKICAgICBAYWJzdHJhY3Rt
ZXRob2QKLSAgICBkZWYgaW5zdGFsbF93ZWJkcml2ZXIoc2VsZiwgZGVzdD1Ob25lKToKKyAgICBk
ZWYgaW5zdGFsbF93ZWJkcml2ZXIoc2VsZiwgZGVzdD1Ob25lLCBjaGFubmVsPU5vbmUsIGJyb3dz
ZXJfYmluYXJ5PU5vbmUpOgogICAgICAgICAiIiJJbnN0YWxsIHRoZSBXZWJEcml2ZXIgaW1wbGVt
ZW50YXRpb24gZm9yIHRoaXMgYnJvd3Nlci4iIiIKICAgICAgICAgcmV0dXJuIE5vdEltcGxlbWVu
dGVkCiAKICAgICBAYWJzdHJhY3RtZXRob2QKLSAgICBkZWYgZmluZF9iaW5hcnkoc2VsZik6Cisg
ICAgZGVmIGZpbmRfYmluYXJ5KHNlbGYsIHZlbnZfcGF0aD1Ob25lLCBjaGFubmVsPU5vbmUpOgog
ICAgICAgICAiIiJGaW5kIHRoZSBiaW5hcnkgb2YgdGhlIGJyb3dzZXIuCiAKICAgICAgICAgSWYg
dGhlIFdlYkRyaXZlciBmb3IgdGhlIGJyb3dzZXIgaXMgYWJsZSB0byBmaW5kIHRoZSBiaW5hcnkg
aXRzZWxmLCB0aGlzCkBAIC00MSwxMiArNzMsMTIgQEAgY2xhc3MgQnJvd3NlcihvYmplY3QpOgog
ICAgICAgICByZXR1cm4gTm90SW1wbGVtZW50ZWQKIAogICAgIEBhYnN0cmFjdG1ldGhvZAotICAg
IGRlZiBmaW5kX3dlYmRyaXZlcihzZWxmKToKKyAgICBkZWYgZmluZF93ZWJkcml2ZXIoc2VsZiwg
Y2hhbm5lbD1Ob25lKToKICAgICAgICAgIiIiRmluZCB0aGUgYmluYXJ5IG9mIHRoZSBXZWJEcml2
ZXIuIiIiCiAgICAgICAgIHJldHVybiBOb3RJbXBsZW1lbnRlZAogCiAgICAgQGFic3RyYWN0bWV0
aG9kCi0gICAgZGVmIHZlcnNpb24oc2VsZiwgYmluYXJ5PU5vbmUpOgorICAgIGRlZiB2ZXJzaW9u
KHNlbGYsIGJpbmFyeT1Ob25lLCB3ZWJkcml2ZXJfYmluYXJ5PU5vbmUpOgogICAgICAgICAiIiJS
ZXRyaWV2ZSB0aGUgcmVsZWFzZSB2ZXJzaW9uIG9mIHRoZSBpbnN0YWxsZWQgYnJvd3Nlci4iIiIK
ICAgICAgICAgcmV0dXJuIE5vdEltcGxlbWVudGVkCiAKQEAgLTY0LDk3ICs5NiwxNjAgQEAgY2xh
c3MgRmlyZWZveChCcm93c2VyKToKIAogICAgIHByb2R1Y3QgPSAiZmlyZWZveCIKICAgICBiaW5h
cnkgPSAiYnJvd3NlcnMvZmlyZWZveC9maXJlZm94IgotICAgIHBsYXRmb3JtX2luaSA9ICJicm93
c2Vycy9maXJlZm94L3BsYXRmb3JtLmluaSIKICAgICByZXF1aXJlbWVudHMgPSAicmVxdWlyZW1l
bnRzX2ZpcmVmb3gudHh0IgogCi0gICAgZGVmIHBsYXRmb3JtX3N0cmluZ19nZWNrb2RyaXZlcihz
ZWxmKToKLSAgICAgICAgcGxhdGZvcm0gPSB7Ci0gICAgICAgICAgICAiTGludXgiOiAibGludXgi
LAotICAgICAgICAgICAgIldpbmRvd3MiOiAid2luIiwKLSAgICAgICAgICAgICJEYXJ3aW4iOiAi
bWFjb3MiCi0gICAgICAgIH0uZ2V0KHVuYW1lWzBdKQorICAgIHBsYXRmb3JtID0geworICAgICAg
ICAiTGludXgiOiAibGludXgiLAorICAgICAgICAiV2luZG93cyI6ICJ3aW4iLAorICAgICAgICAi
RGFyd2luIjogIm1hY29zIgorICAgIH0uZ2V0KHVuYW1lWzBdKQogCi0gICAgICAgIGlmIHBsYXRm
b3JtIGlzIE5vbmU6CisgICAgYXBwbGljYXRpb25fbmFtZSA9IHsKKyAgICAgICAgInN0YWJsZSI6
ICJGaXJlZm94LmFwcCIsCisgICAgICAgICJiZXRhIjogIkZpcmVmb3guYXBwIiwKKyAgICAgICAg
Im5pZ2h0bHkiOiAiRmlyZWZveCBOaWdodGx5LmFwcCIKKyAgICB9CisKKyAgICBkZWYgcGxhdGZv
cm1fc3RyaW5nX2dlY2tvZHJpdmVyKHNlbGYpOgorICAgICAgICBpZiBzZWxmLnBsYXRmb3JtIGlz
IE5vbmU6CiAgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJVbmFibGUgdG8gY29uc3RydWN0
IGEgdmFsaWQgR2Vja29kcml2ZXIgcGFja2FnZSBuYW1lIGZvciBjdXJyZW50IHBsYXRmb3JtIikK
IAotICAgICAgICBpZiBwbGF0Zm9ybSBpbiAoImxpbnV4IiwgIndpbiIpOgorICAgICAgICBpZiBz
ZWxmLnBsYXRmb3JtIGluICgibGludXgiLCAid2luIik6CiAgICAgICAgICAgICBiaXRzID0gIjY0
IiBpZiB1bmFtZVs0XSA9PSAieDg2XzY0IiBlbHNlICIzMiIKICAgICAgICAgZWxzZToKICAgICAg
ICAgICAgIGJpdHMgPSAiIgogCi0gICAgICAgIHJldHVybiAiJXMlcyIgJSAocGxhdGZvcm0sIGJp
dHMpCisgICAgICAgIHJldHVybiAiJXMlcyIgJSAoc2VsZi5wbGF0Zm9ybSwgYml0cykKIAotICAg
IGRlZiBpbnN0YWxsKHNlbGYsIGRlc3Q9Tm9uZSk6Ci0gICAgICAgICIiIkluc3RhbGwgRmlyZWZv
eC4iIiIKKyAgICBkZWYgX2dldF9kZXN0KHNlbGYsIGRlc3QsIGNoYW5uZWwpOgorICAgICAgICBp
ZiBkZXN0IGlzIE5vbmU6CisgICAgICAgICAgICAjIG9zLmdldGN3ZCgpIGRvZXNuJ3QgaW5jbHVk
ZSB0aGUgdmVudiBwYXRoCisgICAgICAgICAgICBkZXN0ID0gb3MucGF0aC5qb2luKG9zLmdldGN3
ZCgpLCAiX3ZlbnYiKQogCi0gICAgICAgIGZyb20gbW96ZG93bmxvYWQgaW1wb3J0IEZhY3RvcnlT
Y3JhcGVyCi0gICAgICAgIGltcG9ydCBtb3ppbnN0YWxsCisgICAgICAgIGRlc3QgPSBvcy5wYXRo
LmpvaW4oZGVzdCwgImJyb3dzZXJzIiwgY2hhbm5lbCkKIAotICAgICAgICBwbGF0Zm9ybSA9IHsK
LSAgICAgICAgICAgICJMaW51eCI6ICJsaW51eCIsCi0gICAgICAgICAgICAiV2luZG93cyI6ICJ3
aW4iLAotICAgICAgICAgICAgIkRhcndpbiI6ICJtYWMiCi0gICAgICAgIH0uZ2V0KHVuYW1lWzBd
KQorICAgICAgICBpZiBub3Qgb3MucGF0aC5leGlzdHMoZGVzdCk6CisgICAgICAgICAgICBvcy5t
YWtlZGlycyhkZXN0KQogCi0gICAgICAgIGlmIHBsYXRmb3JtIGlzIE5vbmU6Ci0gICAgICAgICAg
ICByYWlzZSBWYWx1ZUVycm9yKCJVbmFibGUgdG8gY29uc3RydWN0IGEgdmFsaWQgRmlyZWZveCBw
YWNrYWdlIG5hbWUgZm9yIGN1cnJlbnQgcGxhdGZvcm0iKQorICAgICAgICByZXR1cm4gZGVzdAor
CisgICAgZGVmIGRvd25sb2FkKHNlbGYsIGRlc3Q9Tm9uZSwgY2hhbm5lbD0ibmlnaHRseSIpOgor
ICAgICAgICBwcm9kdWN0ID0geworICAgICAgICAgICAgIm5pZ2h0bHkiOiAiZmlyZWZveC1uaWdo
dGx5LWxhdGVzdC1zc2wiLAorICAgICAgICAgICAgImJldGEiOiAiZmlyZWZveC1iZXRhLWxhdGVz
dC1zc2wiLAorICAgICAgICAgICAgInN0YWJsZSI6ICJmaXJlZm94LWxhdGVzdC1zc2wiCisgICAg
ICAgIH0KKworICAgICAgICBvc19idWlsZHMgPSB7CisgICAgICAgICAgICAoImxpbnV4IiwgIng4
NiIpOiAibGludXgiLAorICAgICAgICAgICAgKCJsaW51eCIsICJ4ODZfNjQiKTogImxpbnV4NjQi
LAorICAgICAgICAgICAgKCJ3aW4iLCAieDg2Iik6ICJ3aW4iLAorICAgICAgICAgICAgKCJ3aW4i
LCAiQU1ENjQiKTogIndpbjY0IiwKKyAgICAgICAgICAgICgibWFjb3MiLCAieDg2XzY0Iik6ICJv
c3giLAorICAgICAgICB9CisgICAgICAgIG9zX2tleSA9IChzZWxmLnBsYXRmb3JtLCB1bmFtZVs0
XSkKIAogICAgICAgICBpZiBkZXN0IGlzIE5vbmU6Ci0gICAgICAgICAgICAjIG9zLmdldGN3ZCgp
IGRvZXNuJ3QgaW5jbHVkZSB0aGUgdmVudiBwYXRoCi0gICAgICAgICAgICBkZXN0ID0gb3MucGF0
aC5qb2luKG9zLmdldGN3ZCgpLCAiX3ZlbnYiKQorICAgICAgICAgICAgZGVzdCA9IHNlbGYuX2dl
dF9kZXN0KE5vbmUsIGNoYW5uZWwpCisKKyAgICAgICAgaWYgY2hhbm5lbCBub3QgaW4gcHJvZHVj
dDoKKyAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoIlVucmVjb2duaXNlZCByZWxlYXNlIGNo
YW5uZWw6ICVzIiAlIGNoYW5uZWwpCisKKyAgICAgICAgaWYgb3Nfa2V5IG5vdCBpbiBvc19idWls
ZHM6CisgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJVbnN1cHBvcnRlZCBwbGF0Zm9ybTog
JXMgJXMiICUgb3Nfa2V5KQorCisgICAgICAgIHVybCA9ICJodHRwczovL2Rvd25sb2FkLm1vemls
bGEub3JnLz9wcm9kdWN0PSVzJm9zPSVzJmxhbmc9ZW4tVVMiICUgKHByb2R1Y3RbY2hhbm5lbF0s
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIG9zX2J1aWxkc1tvc19rZXldKQorICAgICAgICBzZWxmLmxv
Z2dlci5pbmZvKCJEb3dubG9hZGluZyBGaXJlZm94IGZyb20gJXMiICUgdXJsKQorICAgICAgICBy
ZXNwID0gcmVxdWVzdHMuZ2V0KHVybCkKKworICAgICAgICBmaWxlbmFtZSA9IE5vbmUKKworICAg
ICAgICBjb250ZW50X2Rpc3Bvc2l0aW9uID0gcmVzcC5oZWFkZXJzLmdldCgnY29udGVudC1kaXNw
b3NpdGlvbicpCisgICAgICAgIGlmIGNvbnRlbnRfZGlzcG9zaXRpb246CisgICAgICAgICAgICBm
aWxlbmFtZXMgPSByZS5maW5kYWxsKCJmaWxlbmFtZT0oLispIiwgY29udGVudF9kaXNwb3NpdGlv
bikKKyAgICAgICAgICAgIGlmIGZpbGVuYW1lczoKKyAgICAgICAgICAgICAgICBmaWxlbmFtZSA9
IGZpbGVuYW1lc1swXQorCisgICAgICAgIGlmIG5vdCBmaWxlbmFtZToKKyAgICAgICAgICAgIGZp
bGVuYW1lID0gdXJscGFyc2UudXJsc3BsaXQocmVzcC51cmwpLnBhdGgucnNwbGl0KCIvIiwgMSlb
MV0KIAotICAgICAgICBkZXN0ID0gb3MucGF0aC5qb2luKGRlc3QsICJicm93c2VycyIpCisgICAg
ICAgIGlmIG5vdCBmaWxlbmFtZToKKyAgICAgICAgICAgIGZpbGVuYW1lID0gImZpcmVmb3gudGFy
LmJ6MiIKIAotICAgICAgICBmaWxlbmFtZSA9IEZhY3RvcnlTY3JhcGVyKCJkYWlseSIsIGJyYW5j
aD0ibW96aWxsYS1jZW50cmFsIiwgZGVzdGluYXRpb249ZGVzdCkuZG93bmxvYWQoKQorICAgICAg
ICBpbnN0YWxsZXJfcGF0aCA9IG9zLnBhdGguam9pbihkZXN0LCBmaWxlbmFtZSkKKworICAgICAg
ICB3aXRoIG9wZW4oaW5zdGFsbGVyX3BhdGgsICJ3YiIpIGFzIGY6CisgICAgICAgICAgICBmLndy
aXRlKHJlc3AuY29udGVudCkKKworICAgICAgICByZXR1cm4gaW5zdGFsbGVyX3BhdGgKKworICAg
IGRlZiBpbnN0YWxsKHNlbGYsIGRlc3Q9Tm9uZSwgY2hhbm5lbD0ibmlnaHRseSIpOgorICAgICAg
ICAiIiJJbnN0YWxsIEZpcmVmb3guIiIiCisgICAgICAgIGltcG9ydCBtb3ppbnN0YWxsCisKKyAg
ICAgICAgZGVzdCA9IHNlbGYuX2dldF9kZXN0KGRlc3QsIGNoYW5uZWwpCisKKyAgICAgICAgZmls
ZW5hbWUgPSBvcy5wYXRoLmJhc2VuYW1lKGRlc3QpCisKKyAgICAgICAgaW5zdGFsbGVyX3BhdGgg
PSBzZWxmLmRvd25sb2FkKGRlc3QsIGNoYW5uZWwpCiAKICAgICAgICAgdHJ5OgotICAgICAgICAg
ICAgbW96aW5zdGFsbC5pbnN0YWxsKGZpbGVuYW1lLCBkZXN0KQorICAgICAgICAgICAgbW96aW5z
dGFsbC5pbnN0YWxsKGluc3RhbGxlcl9wYXRoLCBkZXN0KQogICAgICAgICBleGNlcHQgbW96aW5z
dGFsbC5tb3ppbnN0YWxsLkluc3RhbGxFcnJvcjoKLSAgICAgICAgICAgIGlmIHBsYXRmb3JtID09
ICJtYWMiIGFuZCBvcy5wYXRoLmV4aXN0cyhvcy5wYXRoLmpvaW4oZGVzdCwgIkZpcmVmb3ggTmln
aHRseS5hcHAiKSk6CisgICAgICAgICAgICBpZiBzZWxmLnBsYXRmb3JtID09ICJtYWNvcyIgYW5k
IG9zLnBhdGguZXhpc3RzKG9zLnBhdGguam9pbihkZXN0LCBzZWxmLmFwcGxpY2F0aW9uX25hbWUu
Z2V0KGNoYW5uZWwsICJGaXJlZm94IE5pZ2h0bHkuYXBwIikpKToKICAgICAgICAgICAgICAgICAj
IG1vemluc3RhbGwgd2lsbCBmYWlsIGlmIG5pZ2h0bHkgaXMgYWxyZWFkeSBpbnN0YWxsZWQgaW4g
dGhlIHZlbnYgYmVjYXVzZQogICAgICAgICAgICAgICAgICMgbWFjIGluc3RhbGxhdGlvbiB1c2Vz
IHNodXRpbC5jb3B5X3RyZWUKLSAgICAgICAgICAgICAgICBtb3ppbnN0YWxsLnVuaW5zdGFsbChv
cy5wYXRoLmpvaW4oZGVzdCwgIkZpcmVmb3ggTmlnaHRseS5hcHAiKSkKKyAgICAgICAgICAgICAg
ICBtb3ppbnN0YWxsLnVuaW5zdGFsbChvcy5wYXRoLmpvaW4oZGVzdCwgc2VsZi5hcHBsaWNhdGlv
bl9uYW1lLmdldChjaGFubmVsLCAiRmlyZWZveCBOaWdodGx5LmFwcCIpKSkKICAgICAgICAgICAg
ICAgICBtb3ppbnN0YWxsLmluc3RhbGwoZmlsZW5hbWUsIGRlc3QpCiAgICAgICAgICAgICBlbHNl
OgogICAgICAgICAgICAgICAgIHJhaXNlCiAKLSAgICAgICAgb3MucmVtb3ZlKGZpbGVuYW1lKQor
ICAgICAgICBvcy5yZW1vdmUoaW5zdGFsbGVyX3BhdGgpCiAgICAgICAgIHJldHVybiBzZWxmLmZp
bmRfYmluYXJ5X3BhdGgoZGVzdCkKIAotICAgIGRlZiBmaW5kX2JpbmFyeV9wYXRoKHNlbGYsIHBh
dGg9Tm9uZSk6CisgICAgZGVmIGZpbmRfYmluYXJ5X3BhdGgoc2VsZiwgcGF0aD1Ob25lLCBjaGFu
bmVsPSJuaWdodGx5Iik6CiAgICAgICAgICIiIkxvb2tzIGZvciB0aGUgZmlyZWZveCBiaW5hcnkg
aW4gdGhlIHZpcnR1YWwgZW52aXJvbm1lbnQiIiIKIAotICAgICAgICBwbGF0Zm9ybSA9IHsKLSAg
ICAgICAgICAgICJMaW51eCI6ICJsaW51eCIsCi0gICAgICAgICAgICAiV2luZG93cyI6ICJ3aW4i
LAotICAgICAgICAgICAgIkRhcndpbiI6ICJtYWMiCi0gICAgICAgIH0uZ2V0KHVuYW1lWzBdKQot
CiAgICAgICAgIGlmIHBhdGggaXMgTm9uZToKLSAgICAgICAgICAgICNvcy5nZXRjd2QoKSBkb2Vz
bid0IGluY2x1ZGUgdGhlIHZlbnYgcGF0aAotICAgICAgICAgICAgcGF0aCA9IG9zLnBhdGguam9p
bihvcy5nZXRjd2QoKSwgIl92ZW52IiwgImJyb3dzZXJzIikKKyAgICAgICAgICAgICMgb3MuZ2V0
Y3dkKCkgZG9lc24ndCBpbmNsdWRlIHRoZSB2ZW52IHBhdGgKKyAgICAgICAgICAgIHBhdGggPSBv
cy5wYXRoLmpvaW4ob3MuZ2V0Y3dkKCksICJfdmVudiIsICJicm93c2VycyIsIGNoYW5uZWwpCiAK
ICAgICAgICAgYmluYXJ5ID0gTm9uZQogCi0gICAgICAgIGlmIHBsYXRmb3JtID09ICJsaW51eCI6
CisgICAgICAgIGlmIHNlbGYucGxhdGZvcm0gPT0gImxpbnV4IjoKICAgICAgICAgICAgIGJpbmFy
eSA9IGZpbmRfZXhlY3V0YWJsZSgiZmlyZWZveCIsIG9zLnBhdGguam9pbihwYXRoLCAiZmlyZWZv
eCIpKQotICAgICAgICBlbGlmIHBsYXRmb3JtID09ICJ3aW4iOgorICAgICAgICBlbGlmIHNlbGYu
cGxhdGZvcm0gPT0gIndpbiI6CiAgICAgICAgICAgICBpbXBvcnQgbW96aW5zdGFsbAotICAgICAg
ICAgICAgYmluYXJ5ID0gbW96aW5zdGFsbC5nZXRfYmluYXJ5KHBhdGgsICJmaXJlZm94IikKLSAg
ICAgICAgZWxpZiBwbGF0Zm9ybSA9PSAibWFjIjoKLSAgICAgICAgICAgIGJpbmFyeSA9IGZpbmRf
ZXhlY3V0YWJsZSgiZmlyZWZveCIsIG9zLnBhdGguam9pbihwYXRoLCAiRmlyZWZveCBOaWdodGx5
LmFwcCIsICJDb250ZW50cyIsICJNYWNPUyIpKQorICAgICAgICAgICAgdHJ5OgorICAgICAgICAg
ICAgICAgIGJpbmFyeSA9IG1vemluc3RhbGwuZ2V0X2JpbmFyeShwYXRoLCAiZmlyZWZveCIpCisg
ICAgICAgICAgICBleGNlcHQgbW96aW5zdGFsbC5JbnZhbGlkQmluYXJ5OgorICAgICAgICAgICAg
ICAgICMgaWdub3JlIHRoZSBjYXNlIHdoZXJlIHdlIGZhaWwgdG8gZ2V0IGEgYmluYXJ5CisgICAg
ICAgICAgICAgICAgcGFzcworICAgICAgICBlbGlmIHNlbGYucGxhdGZvcm0gPT0gIm1hY29zIjoK
KyAgICAgICAgICAgIGJpbmFyeSA9IGZpbmRfZXhlY3V0YWJsZSgiZmlyZWZveCIsIG9zLnBhdGgu
am9pbihwYXRoLCBzZWxmLmFwcGxpY2F0aW9uX25hbWUuZ2V0KGNoYW5uZWwsICJGaXJlZm94IE5p
Z2h0bHkuYXBwIiksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIkNvbnRlbnRzIiwgIk1hY09TIikpCiAKICAgICAgICAgcmV0dXJu
IGJpbmFyeQogCi0gICAgZGVmIGZpbmRfYmluYXJ5KHNlbGYsIHZlbnZfcGF0aD1Ob25lKToKKyAg
ICBkZWYgZmluZF9iaW5hcnkoc2VsZiwgdmVudl9wYXRoPU5vbmUsIGNoYW5uZWw9Im5pZ2h0bHki
KToKICAgICAgICAgaWYgdmVudl9wYXRoIGlzIE5vbmU6CiAgICAgICAgICAgICB2ZW52X3BhdGgg
PSBvcy5wYXRoLmpvaW4ob3MuZ2V0Y3dkKCksICJfdmVudiIpCiAKLSAgICAgICAgYmluYXJ5ID0g
c2VsZi5maW5kX2JpbmFyeV9wYXRoKG9zLnBhdGguam9pbih2ZW52X3BhdGgsICJicm93c2VycyIp
KQorICAgICAgICBwYXRoID0gb3MucGF0aC5qb2luKHZlbnZfcGF0aCwgImJyb3dzZXJzIiwgY2hh
bm5lbCkKKyAgICAgICAgYmluYXJ5ID0gc2VsZi5maW5kX2JpbmFyeV9wYXRoKHBhdGgsIGNoYW5u
ZWwpCisKKyAgICAgICAgaWYgbm90IGJpbmFyeSBhbmQgc2VsZi5wbGF0Zm9ybSA9PSAid2luIjoK
KyAgICAgICAgICAgIHdpbnBhdGhzID0gW29zLnBhdGguZXhwYW5kdmFycygiJFNZU1RFTURSSVZF
XFxQcm9ncmFtIEZpbGVzXFxNb3ppbGxhIEZpcmVmb3giKSwKKyAgICAgICAgICAgICAgICAgICAg
ICAgIG9zLnBhdGguZXhwYW5kdmFycygiJFNZU1RFTURSSVZFXFxQcm9ncmFtIEZpbGVzICh4ODYp
XFxNb3ppbGxhIEZpcmVmb3giKV0KKyAgICAgICAgICAgIGZvciB3aW5wYXRoIGluIHdpbnBhdGhz
OgorICAgICAgICAgICAgICAgIGJpbmFyeSA9IHNlbGYuZmluZF9iaW5hcnlfcGF0aCh3aW5wYXRo
LCBjaGFubmVsKQorICAgICAgICAgICAgICAgIGlmIGJpbmFyeSBpcyBub3QgTm9uZToKKyAgICAg
ICAgICAgICAgICAgICAgYnJlYWsKIAotICAgICAgICBpZiBub3QgYmluYXJ5IGFuZCB1bmFtZVsw
XSA9PSAiRGFyd2luIjoKLSAgICAgICAgICAgIG1hY3BhdGhzID0gWyIvQXBwbGljYXRpb25zL0Zp
cmVmb3hOaWdodGx5LmFwcC9Db250ZW50cy9NYWNPUyIsCi0gICAgICAgICAgICAgICAgICAgICAg
ICBvcy5wYXRoLmV4cGFuZHVzZXIoIn4vQXBwbGljYXRpb25zL0ZpcmVmb3hOaWdodGx5LmFwcC9D
b250ZW50cy9NYWNPUyIpLAorICAgICAgICBpZiBub3QgYmluYXJ5IGFuZCBzZWxmLnBsYXRmb3Jt
ID09ICJtYWNvcyI6CisgICAgICAgICAgICBtYWNwYXRocyA9IFsiL0FwcGxpY2F0aW9ucy9GaXJl
Zm94IE5pZ2h0bHkuYXBwL0NvbnRlbnRzL01hY09TIiwKKyAgICAgICAgICAgICAgICAgICAgICAg
IG9zLnBhdGguZXhwYW5kdXNlcigifi9BcHBsaWNhdGlvbnMvRmlyZWZveCBOaWdodGx5LmFwcC9D
b250ZW50cy9NYWNPUyIpLAogICAgICAgICAgICAgICAgICAgICAgICAgIi9BcHBsaWNhdGlvbnMv
RmlyZWZveCBEZXZlbG9wZXIgRWRpdGlvbi5hcHAvQ29udGVudHMvTWFjT1MiLAogICAgICAgICAg
ICAgICAgICAgICAgICAgb3MucGF0aC5leHBhbmR1c2VyKCJ+L0FwcGxpY2F0aW9ucy9GaXJlZm94
IERldmVsb3BlciBFZGl0aW9uLmFwcC9Db250ZW50cy9NYWNPUyIpLAogICAgICAgICAgICAgICAg
ICAgICAgICAgIi9BcHBsaWNhdGlvbnMvRmlyZWZveC5hcHAvQ29udGVudHMvTWFjT1MiLApAQCAt
MTcwLDExICsyNjUsMTEgQEAgY2xhc3MgRmlyZWZveChCcm93c2VyKToKICAgICAgICAgcGF0aCA9
IGZpbmRfZXhlY3V0YWJsZSgiY2VydHV0aWwiKQogICAgICAgICBpZiBwYXRoIGlzIE5vbmU6CiAg
ICAgICAgICAgICByZXR1cm4gTm9uZQotICAgICAgICBpZiBvcy5wYXRoLnNwbGl0ZHJpdmUocGF0
aClbMV0uc3BsaXQob3MucGF0aC5zZXApID09IFsiIiwgIldpbmRvd3MiLCAic3lzdGVtMzIiLCAi
Y2VydHV0aWwuZXhlIl06CisgICAgICAgIGlmIG9zLnBhdGguc3BsaXRkcml2ZShvcy5wYXRoLm5v
cm1jYXNlKHBhdGgpKVsxXS5zcGxpdChvcy5wYXRoLnNlcCkgPT0gWyIiLCAid2luZG93cyIsICJz
eXN0ZW0zMiIsICJjZXJ0dXRpbC5leGUiXToKICAgICAgICAgICAgIHJldHVybiBOb25lCiAgICAg
ICAgIHJldHVybiBwYXRoCiAKLSAgICBkZWYgZmluZF93ZWJkcml2ZXIoc2VsZik6CisgICAgZGVm
IGZpbmRfd2ViZHJpdmVyKHNlbGYsIGNoYW5uZWw9Tm9uZSk6CiAgICAgICAgIHJldHVybiBmaW5k
X2V4ZWN1dGFibGUoImdlY2tvZHJpdmVyIikKIAogICAgIGRlZiBnZXRfdmVyc2lvbl9hbmRfY2hh
bm5lbChzZWxmLCBiaW5hcnkpOgpAQCAtMTkwLDI2ICsyODUsNDcgQEAgY2xhc3MgRmlyZWZveChC
cm93c2VyKToKICAgICAgICAgaWYgY2hhbm5lbCA9PSAic3RhYmxlIjoKICAgICAgICAgICAgIHJl
cG8gPSAiaHR0cHM6Ly9oZy5tb3ppbGxhLm9yZy9yZWxlYXNlcy9tb3ppbGxhLXJlbGVhc2UiCiAg
ICAgICAgICAgICB0YWcgPSAiRklSRUZPWF8lc19SRUxFQVNFIiAlIHZlcnNpb24ucmVwbGFjZSgi
LiIsICJfIikKLSAgICAgICAgZWxzZToKLSAgICAgICAgICAgIHJlcG8gPSAiaHR0cHM6Ly9oZy5t
b3ppbGxhLm9yZy9tb3ppbGxhLWNlbnRyYWwiCi0gICAgICAgICAgICBpZiBjaGFubmVsID09ICJi
ZXRhIjoKLSAgICAgICAgICAgICAgICB0YWcgPSAiRklSRUZPWF8lc19CRVRBIiAlIHZlcnNpb24u
c3BsaXQoIi4iLCAxKVswXQorICAgICAgICBlbGlmIGNoYW5uZWwgPT0gImJldGEiOgorICAgICAg
ICAgICAgcmVwbyA9ICJodHRwczovL2hnLm1vemlsbGEub3JnL3JlbGVhc2VzL21vemlsbGEtYmV0
YSIKKyAgICAgICAgICAgIG1ham9yX3ZlcnNpb24gPSB2ZXJzaW9uLnNwbGl0KCIuIiwgMSlbMF0K
KyAgICAgICAgICAgICMgRm9yIGJldGEgd2UgaGF2ZSBhIGRpZmZlcmVudCBmb3JtYXQgZm9yIGJl
dGFzIHRoYXQgYXJlIG5vdyBpbiBzdGFibGUgcmVsZWFzZXMKKyAgICAgICAgICAgICMgdnMgdGhv
c2UgdGhhdCBhcmUgbm90CisgICAgICAgICAgICB0YWdzID0gZ2V0KCJodHRwczovL2hnLm1vemls
bGEub3JnL3JlbGVhc2VzL21vemlsbGEtYmV0YS9qc29uLXRhZ3MiKS5qc29uKClbInRhZ3MiXQor
ICAgICAgICAgICAgdGFncyA9IHtpdGVtWyJ0YWciXSBmb3IgaXRlbSBpbiB0YWdzfQorICAgICAg
ICAgICAgZW5kX3RhZyA9ICJGSVJFRk9YX0JFVEFfJXNfRU5EIiAlIG1ham9yX3ZlcnNpb24KKyAg
ICAgICAgICAgIGlmIGVuZF90YWcgaW4gdGFnczoKKyAgICAgICAgICAgICAgICB0YWcgPSBlbmRf
dGFnCiAgICAgICAgICAgICBlbHNlOgotICAgICAgICAgICAgICAgICMgQWx3YXlzIHVzZSB0aXAg
YXMgdGhlIHRhZyBmb3IgbmlnaHRseTsgdGhpcyBpc24ndCBxdWl0ZSByaWdodAotICAgICAgICAg
ICAgICAgICMgYnV0IHRvIGRvIGJldHRlciB3ZSBuZWVkIHRoZSBhY3R1YWwgYnVpbGQgcmV2aXNp
b24sIHdoaWNoIHdlCi0gICAgICAgICAgICAgICAgIyBjYW4gZ2V0IGlmIHdlIGhhdmUgYW4gYXBw
bGljYXRpb24uaW5pIGZpbGUKICAgICAgICAgICAgICAgICB0YWcgPSAidGlwIgorICAgICAgICBl
bHNlOgorICAgICAgICAgICAgcmVwbyA9ICJodHRwczovL2hnLm1vemlsbGEub3JnL21vemlsbGEt
Y2VudHJhbCIKKyAgICAgICAgICAgICMgQWx3YXlzIHVzZSB0aXAgYXMgdGhlIHRhZyBmb3Igbmln
aHRseTsgdGhpcyBpc24ndCBxdWl0ZSByaWdodAorICAgICAgICAgICAgIyBidXQgdG8gZG8gYmV0
dGVyIHdlIG5lZWQgdGhlIGFjdHVhbCBidWlsZCByZXZpc2lvbiwgd2hpY2ggd2UKKyAgICAgICAg
ICAgICMgY2FuIGdldCBpZiB3ZSBoYXZlIGFuIGFwcGxpY2F0aW9uLmluaSBmaWxlCisgICAgICAg
ICAgICB0YWcgPSAidGlwIgogCiAgICAgICAgIHJldHVybiAiJXMvYXJjaGl2ZS8lcy56aXAvdGVz
dGluZy9wcm9maWxlcy8iICUgKHJlcG8sIHRhZykKIAotICAgIGRlZiBpbnN0YWxsX3ByZWZzKHNl
bGYsIGJpbmFyeSwgZGVzdD1Ob25lKToKLSAgICAgICAgdmVyc2lvbiwgY2hhbm5lbCA9IHNlbGYu
Z2V0X3ZlcnNpb25fYW5kX2NoYW5uZWwoYmluYXJ5KQorICAgIGRlZiBpbnN0YWxsX3ByZWZzKHNl
bGYsIGJpbmFyeSwgZGVzdD1Ob25lLCBjaGFubmVsPU5vbmUpOgorICAgICAgICBpZiBiaW5hcnk6
CisgICAgICAgICAgICB2ZXJzaW9uLCBjaGFubmVsXyA9IHNlbGYuZ2V0X3ZlcnNpb25fYW5kX2No
YW5uZWwoYmluYXJ5KQorICAgICAgICAgICAgaWYgY2hhbm5lbCBpcyBub3QgTm9uZSBhbmQgY2hh
bm5lbCAhPSBjaGFubmVsXzoKKyAgICAgICAgICAgICAgICAjIEJldGEgZG9lc24ndCBhbHdheXMg
c2VlbSB0byBoYXZlIHRoZSBiIGluIHRoZSB2ZXJzaW9uIHN0cmluZywgc28gYWxsb3cgdGhlCisg
ICAgICAgICAgICAgICAgIyBtYW51YWxseSBzdXBwbGllZCB2YWx1ZSB0byBvdmVycmlkZSB0aGUg
b25lIGZyb20gdGhlIGJpbmFyeQorICAgICAgICAgICAgICAgIHNlbGYubG9nZ2VyLndhcm5pbmco
IlN1cHBsaWVkIGNoYW5uZWwgZG9lc24ndCBtYXRjaCBiaW5hcnksIHVzaW5nIHN1cHBsaWVkIGNo
YW5uZWwiKQorICAgICAgICAgICAgZWxpZiBjaGFubmVsIGlzIE5vbmU6CisgICAgICAgICAgICAg
ICAgY2hhbm5lbCA9IGNoYW5uZWxfCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICB2ZXJzaW9u
ID0gTm9uZQorCiAgICAgICAgIGlmIGRlc3QgaXMgTm9uZToKLSAgICAgICAgICAgIGRlc3QgPSBv
cy5wd2QKKyAgICAgICAgICAgIGRlc3QgPSBvcy5jdXJkaXIKIAotICAgICAgICBkZXN0ID0gb3Mu
cGF0aC5qb2luKGRlc3QsICJwcm9maWxlcyIsIGNoYW5uZWwsIHZlcnNpb24pCisgICAgICAgIGRl
c3QgPSBvcy5wYXRoLmpvaW4oZGVzdCwgInByb2ZpbGVzIiwgY2hhbm5lbCkKKyAgICAgICAgaWYg
dmVyc2lvbjoKKyAgICAgICAgICAgIGRlc3QgPSBvcy5wYXRoLmpvaW4oZGVzdCwgdmVyc2lvbikK
ICAgICAgICAgaGF2ZV9jYWNoZSA9IEZhbHNlCi0gICAgICAgIGlmIG9zLnBhdGguZXhpc3RzKGRl
c3QpOgorICAgICAgICBpZiBvcy5wYXRoLmV4aXN0cyhkZXN0KSBhbmQgbGVuKG9zLmxpc3RkaXIo
ZGVzdCkpID4gMDoKICAgICAgICAgICAgIGlmIGNoYW5uZWwgIT0gIm5pZ2h0bHkiOgogICAgICAg
ICAgICAgICAgIGhhdmVfY2FjaGUgPSBUcnVlCiAgICAgICAgICAgICBlbHNlOgpAQCAtMjI1LDcg
KzM0MSw3IEBAIGNsYXNzIEZpcmVmb3goQnJvd3Nlcik6CiAKICAgICAgICAgICAgIHVybCA9IHNl
bGYuZ2V0X3Byb2ZpbGVfYnVuZGxlX3VybCh2ZXJzaW9uLCBjaGFubmVsKQogCi0gICAgICAgICAg
ICBwcmludCgiSW5zdGFsbGluZyB0ZXN0IHByZWZzIGZyb20gJXMiICUgdXJsKQorICAgICAgICAg
ICAgc2VsZi5sb2dnZXIuaW5mbygiSW5zdGFsbGluZyB0ZXN0IHByZWZzIGZyb20gJXMiICUgdXJs
KQogICAgICAgICAgICAgdHJ5OgogICAgICAgICAgICAgICAgIGV4dHJhY3RfZGlyID0gdGVtcGZp
bGUubWtkdGVtcCgpCiAgICAgICAgICAgICAgICAgdW56aXAoZ2V0KHVybCkucmF3LCBkZXN0PWV4
dHJhY3RfZGlyKQpAQCAtMjM3LDcgKzM1Myw3IEBAIGNsYXNzIEZpcmVmb3goQnJvd3Nlcik6CiAg
ICAgICAgICAgICBmaW5hbGx5OgogICAgICAgICAgICAgICAgIHNodXRpbC5ybXRyZWUoZXh0cmFj
dF9kaXIpCiAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICBwcmludCgiVXNpbmcgY2FjaGVkIHRl
c3QgcHJlZnMgZnJvbSAlcyIgJSBkZXN0KQorICAgICAgICAgICAgc2VsZi5sb2dnZXIuaW5mbygi
VXNpbmcgY2FjaGVkIHRlc3QgcHJlZnMgZnJvbSAlcyIgJSBkZXN0KQogCiAgICAgICAgIHJldHVy
biBkZXN0CiAKQEAgLTI0Niw3ICszNjIsNyBAQCBjbGFzcyBGaXJlZm94KEJyb3dzZXIpOgogICAg
ICAgICAjIFRoaXMgaXMgdXNlZCByYXRoZXIgdGhhbiBhbiBBUEkgY2FsbCB0byBhdm9pZCByYXRl
IGxpbWl0cwogICAgICAgICB0YWdzID0gY2FsbCgiZ2l0IiwgImxzLXJlbW90ZSIsICItLXRhZ3Mi
LCAiLS1yZWZzIiwKICAgICAgICAgICAgICAgICAgICAgImh0dHBzOi8vZ2l0aHViLmNvbS9tb3pp
bGxhL2dlY2tvZHJpdmVyLmdpdCIpCi0gICAgICAgIHJlbGVhc2VfcmUgPSByZS5jb21waWxlKCIu
KnJlZnMvdGFncy92KFxkKylcLihcZCspXC4oXGQrKSIpCisgICAgICAgIHJlbGVhc2VfcmUgPSBy
ZS5jb21waWxlKHIiLipyZWZzL3RhZ3MvdihcZCspXC4oXGQrKVwuKFxkKykiKQogICAgICAgICBs
YXRlc3RfcmVsZWFzZSA9IDAKICAgICAgICAgZm9yIGl0ZW0gaW4gdGFncy5zcGxpdCgiXG4iKToK
ICAgICAgICAgICAgIG0gPSByZWxlYXNlX3JlLm1hdGNoKGl0ZW0pCkBAIC0yNTcsMTQgKzM3Mywy
MSBAQCBjbGFzcyBGaXJlZm94KEJyb3dzZXIpOgogICAgICAgICBhc3NlcnQgbGF0ZXN0X3JlbGVh
c2UgIT0gMAogICAgICAgICByZXR1cm4gInYlcy4lcy4lcyIgJSB0dXBsZShzdHIoaXRlbSkgZm9y
IGl0ZW0gaW4gbGF0ZXN0X3JlbGVhc2UpCiAKLSAgICBkZWYgaW5zdGFsbF93ZWJkcml2ZXIoc2Vs
ZiwgZGVzdD1Ob25lKToKKyAgICBkZWYgaW5zdGFsbF93ZWJkcml2ZXIoc2VsZiwgZGVzdD1Ob25l
LCBjaGFubmVsPU5vbmUsIGJyb3dzZXJfYmluYXJ5PU5vbmUpOgogICAgICAgICAiIiJJbnN0YWxs
IGxhdGVzdCBHZWNrb2RyaXZlci4iIiIKICAgICAgICAgaWYgZGVzdCBpcyBOb25lOgogICAgICAg
ICAgICAgZGVzdCA9IG9zLmdldGN3ZCgpCiAKKyAgICAgICAgaWYgY2hhbm5lbCA9PSAibmlnaHRs
eSI6CisgICAgICAgICAgICBwYXRoID0gc2VsZi5pbnN0YWxsX2dlY2tvZHJpdmVyX25pZ2h0bHko
ZGVzdCkKKyAgICAgICAgICAgIGlmIHBhdGggaXMgbm90IE5vbmU6CisgICAgICAgICAgICAgICAg
cmV0dXJuIHBhdGgKKyAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgc2VsZi5sb2dn
ZXIud2FybmluZygiTmlnaHRseSB3ZWJkcml2ZXIgbm90IGZvdW5kOyBmYWxsaW5nIGJhY2sgdG8g
cmVsZWFzZSIpCisKICAgICAgICAgdmVyc2lvbiA9IHNlbGYuX2xhdGVzdF9nZWNrb2RyaXZlcl92
ZXJzaW9uKCkKICAgICAgICAgZm9ybWF0ID0gInppcCIgaWYgdW5hbWVbMF0gPT0gIldpbmRvd3Mi
IGVsc2UgInRhci5neiIKLSAgICAgICAgbG9nZ2VyLmRlYnVnKCJMYXRlc3QgZ2Vja29kcml2ZXIg
cmVsZWFzZSAlcyIgJSB2ZXJzaW9uKQorICAgICAgICBzZWxmLmxvZ2dlci5kZWJ1ZygiTGF0ZXN0
IGdlY2tvZHJpdmVyIHJlbGVhc2UgJXMiICUgdmVyc2lvbikKICAgICAgICAgdXJsID0gKCJodHRw
czovL2dpdGh1Yi5jb20vbW96aWxsYS9nZWNrb2RyaXZlci9yZWxlYXNlcy9kb3dubG9hZC8lcy9n
ZWNrb2RyaXZlci0lcy0lcy4lcyIgJQogICAgICAgICAgICAgICAgKHZlcnNpb24sIHZlcnNpb24s
IHNlbGYucGxhdGZvcm1fc3RyaW5nX2dlY2tvZHJpdmVyKCksIGZvcm1hdCkpCiAgICAgICAgIGlm
IGZvcm1hdCA9PSAiemlwIjoKQEAgLTI3Myw5ICszOTYsMzggQEAgY2xhc3MgRmlyZWZveChCcm93
c2VyKToKICAgICAgICAgICAgIHVudGFyKGdldCh1cmwpLnJhdywgZGVzdD1kZXN0KQogICAgICAg
ICByZXR1cm4gZmluZF9leGVjdXRhYmxlKG9zLnBhdGguam9pbihkZXN0LCAiZ2Vja29kcml2ZXIi
KSkKIAotICAgIGRlZiB2ZXJzaW9uKHNlbGYsIGJpbmFyeT1Ob25lKToKKyAgICBkZWYgaW5zdGFs
bF9nZWNrb2RyaXZlcl9uaWdodGx5KHNlbGYsIGRlc3QpOgorICAgICAgICBpbXBvcnQgdGFyZmls
ZQorICAgICAgICBpbXBvcnQgbW96ZG93bmxvYWQKKyAgICAgICAgc2VsZi5sb2dnZXIuaW5mbygi
QXR0ZW1wdGluZyB0byBpbnN0YWxsIHdlYmRyaXZlciBmcm9tIG5pZ2h0bHkiKQorICAgICAgICB0
cnk6CisgICAgICAgICAgICBzID0gbW96ZG93bmxvYWQuRGFpbHlTY3JhcGVyKGJyYW5jaD0ibW96
aWxsYS1jZW50cmFsIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ZXh0ZW5zaW9uPSJjb21tb24udGVzdHMudGFyLmd6IiwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgZGVzdGluYXRpb249ZGVzdCkKKyAgICAgICAgICAgIHBhY2thZ2Vf
cGF0aCA9IHMuZG93bmxvYWQoKQorICAgICAgICBleGNlcHQgbW96ZG93bmxvYWQuZXJyb3JzLk5v
dEZvdW5kRXJyb3I6CisgICAgICAgICAgICByZXR1cm4KKworICAgICAgICB0cnk6CisgICAgICAg
ICAgICBleGVfc3VmZml4ID0gIi5leGUiIGlmIHVuYW1lWzBdID09ICJXaW5kb3dzIiBlbHNlICIi
CisgICAgICAgICAgICB3aXRoIHRhcmZpbGUub3BlbihwYWNrYWdlX3BhdGgsICJyIikgYXMgZjoK
KyAgICAgICAgICAgICAgICB0cnk6CisgICAgICAgICAgICAgICAgICAgIG1lbWJlciA9IGYuZ2V0
bWVtYmVyKCJiaW4lc2dlY2tvZHJpdmVyJXMiICUgKG9zLnBhdGguc2VwLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBleGVf
c3VmZml4KSkKKyAgICAgICAgICAgICAgICBleGNlcHQgS2V5RXJyb3I6CisgICAgICAgICAgICAg
ICAgICAgIHJldHVybgorICAgICAgICAgICAgICAgICMgUmVtb3ZlIGJpbi8gZnJvbSB0aGUgcGF0
aC4KKyAgICAgICAgICAgICAgICBtZW1iZXIubmFtZSA9IG9zLnBhdGguYmFzZW5hbWUobWVtYmVy
Lm5hbWUpCisgICAgICAgICAgICAgICAgZi5leHRyYWN0YWxsKG1lbWJlcnM9W21lbWJlcl0sIHBh
dGg9ZGVzdCkKKyAgICAgICAgICAgICAgICBwYXRoID0gb3MucGF0aC5qb2luKGRlc3QsIG1lbWJl
ci5uYW1lKQorICAgICAgICAgICAgc2VsZi5sb2dnZXIuaW5mbygiRXh0cmFjdGVkIGdlY2tvZHJp
dmVyIHRvICVzIiAlIHBhdGgpCisgICAgICAgIGZpbmFsbHk6CisgICAgICAgICAgICBvcy51bmxp
bmsocGFja2FnZV9wYXRoKQorCisgICAgICAgIHJldHVybiBwYXRoCisKKyAgICBkZWYgdmVyc2lv
bihzZWxmLCBiaW5hcnk9Tm9uZSwgd2ViZHJpdmVyX2JpbmFyeT1Ob25lKToKICAgICAgICAgIiIi
UmV0cmlldmUgdGhlIHJlbGVhc2UgdmVyc2lvbiBvZiB0aGUgaW5zdGFsbGVkIGJyb3dzZXIuIiIi
Ci0gICAgICAgIGJpbmFyeSA9IGJpbmFyeSBvciBzZWxmLmZpbmRfYmluYXJ5KCkKICAgICAgICAg
dmVyc2lvbl9zdHJpbmcgPSBjYWxsKGJpbmFyeSwgIi0tdmVyc2lvbiIpLnN0cmlwKCkKICAgICAg
ICAgbSA9IHJlLm1hdGNoKHIiTW96aWxsYSBGaXJlZm94ICguKikiLCB2ZXJzaW9uX3N0cmluZykK
ICAgICAgICAgaWYgbm90IG06CkBAIC0yODMsMjUgKzQzNSw1OSBAQCBjbGFzcyBGaXJlZm94KEJy
b3dzZXIpOgogICAgICAgICByZXR1cm4gbS5ncm91cCgxKQogCiAKLWNsYXNzIEZlbm5lYyhCcm93
c2VyKToKLSAgICAiIiJGZW5uZWMtc3BlY2lmaWMgaW50ZXJmYWNlLiIiIgorY2xhc3MgRmlyZWZv
eEFuZHJvaWQoQnJvd3Nlcik6CisgICAgIiIiQW5kcm9pZC1zcGVjaWZpYyBGaXJlZm94IGludGVy
ZmFjZS4iIiIKIAotICAgIHByb2R1Y3QgPSAiZmVubmVjIgorICAgIHByb2R1Y3QgPSAiZmlyZWZv
eF9hbmRyb2lkIgogICAgIHJlcXVpcmVtZW50cyA9ICJyZXF1aXJlbWVudHNfZmlyZWZveC50eHQi
CiAKLSAgICBkZWYgaW5zdGFsbChzZWxmLCBkZXN0PU5vbmUpOgotICAgICAgICByYWlzZSBOb3RJ
bXBsZW1lbnRlZEVycm9yCisgICAgZGVmIGRvd25sb2FkKHNlbGYsIGRlc3Q9Tm9uZSwgY2hhbm5l
bD1Ob25lKToKKyAgICAgICAgaWYgZGVzdCBpcyBOb25lOgorICAgICAgICAgICAgZGVzdCA9IG9z
LnB3ZAorCisgICAgICAgIGlmIEZJUkVGT1hfQ0lfUk9PVF9VUkwgPT0gJ2h0dHBzOi8vdGFza2Ns
dXN0ZXIubmV0JzoKKyAgICAgICAgICAgICMgTk9URTogdGhpcyBjb25kaXRpb24gY2FuIGJlIHJl
bW92ZWQgYWZ0ZXIgTm92ZW1iZXIgOSwgMjAxOQorICAgICAgICAgICAgVENfUVVFVUVfQkFTRSA9
ICJodHRwczovL3F1ZXVlLnRhc2tjbHVzdGVyLm5ldC92MS8iCisgICAgICAgICAgICBUQ19JTkRF
WF9CQVNFID0gImh0dHBzOi8vaW5kZXgudGFza2NsdXN0ZXIubmV0L3YxLyIKKyAgICAgICAgZWxz
ZToKKyAgICAgICAgICAgIFRDX1FVRVVFX0JBU0UgPSBGSVJFRk9YX0NJX1JPT1RfVVJMICsgIi9h
cGkvcXVldWUvdjEvIgorICAgICAgICAgICAgVENfSU5ERVhfQkFTRSA9IEZJUkVGT1hfQ0lfUk9P
VF9VUkwgKyAiL2FwaS9pbmRleC92MS8iCisKKworICAgICAgICByZXNwID0gcmVxdWVzdHMuZ2V0
KFRDX0lOREVYX0JBU0UgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ0YXNrL2dlY2tv
LnYyLm1vemlsbGEtY2VudHJhbC5sYXRlc3QubW9iaWxlLmFuZHJvaWQteDg2XzY0LW9wdCIpCisg
ICAgICAgIHJlc3AucmFpc2VfZm9yX3N0YXR1cygpCisgICAgICAgIGluZGV4ID0gcmVzcC5qc29u
KCkKKyAgICAgICAgdGFza19pZCA9IGluZGV4WyJ0YXNrSWQiXQorCisgICAgICAgIHJlc3AgPSBy
ZXF1ZXN0cy5nZXQoVENfUVVFVUVfQkFTRSArICJ0YXNrLyVzL2FydGlmYWN0cy8lcyIgJQorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICh0YXNrX2lkLCAicHVibGljL2J1aWxkL2dlY2tvdmll
dy1hbmRyb2lkVGVzdC5hcGsiKSkKKyAgICAgICAgcmVzcC5yYWlzZV9mb3Jfc3RhdHVzKCkKIAot
ICAgIGRlZiBmaW5kX2JpbmFyeShzZWxmLCB2ZW52X3BhdGg9Tm9uZSk6CisgICAgICAgIGFwa19w
YXRoID0gb3MucGF0aC5qb2luKGRlc3QsICJnZWNrb3ZpZXctYW5kcm9pZFRlc3QuYXBrIikKKwor
ICAgICAgICB3aXRoIG9wZW4oYXBrX3BhdGgsICJ3YiIpIGFzIGY6CisgICAgICAgICAgICBmLndy
aXRlKHJlc3AuY29udGVudCkKKworICAgICAgICByZXR1cm4gYXBrX3BhdGgKKworICAgIGRlZiBp
bnN0YWxsKHNlbGYsIGRlc3Q9Tm9uZSwgY2hhbm5lbD1Ob25lKToKKyAgICAgICAgcmV0dXJuIHNl
bGYuZG93bmxvYWQoZGVzdCwgY2hhbm5lbCkKKworICAgIGRlZiBpbnN0YWxsX3ByZWZzKHNlbGYs
IGJpbmFyeSwgZGVzdD1Ob25lLCBjaGFubmVsPU5vbmUpOgorICAgICAgICBmeF9icm93c2VyID0g
RmlyZWZveChzZWxmLmxvZ2dlcikKKyAgICAgICAgcmV0dXJuIGZ4X2Jyb3dzZXIuaW5zdGFsbF9w
cmVmcyhiaW5hcnksIGRlc3QsIGNoYW5uZWwpCisKKyAgICBkZWYgZmluZF9iaW5hcnkoc2VsZiwg
dmVudl9wYXRoPU5vbmUsIGNoYW5uZWw9Tm9uZSk6CiAgICAgICAgIHJhaXNlIE5vdEltcGxlbWVu
dGVkRXJyb3IKIAotICAgIGRlZiBmaW5kX3dlYmRyaXZlcihzZWxmKToKKyAgICBkZWYgZmluZF93
ZWJkcml2ZXIoc2VsZiwgY2hhbm5lbD1Ob25lKToKICAgICAgICAgcmFpc2UgTm90SW1wbGVtZW50
ZWRFcnJvcgogCi0gICAgZGVmIGluc3RhbGxfd2ViZHJpdmVyKHNlbGYsIGRlc3Q9Tm9uZSk6Cisg
ICAgZGVmIGluc3RhbGxfd2ViZHJpdmVyKHNlbGYsIGRlc3Q9Tm9uZSwgY2hhbm5lbD1Ob25lLCBi
cm93c2VyX2JpbmFyeT1Ob25lKToKICAgICAgICAgcmFpc2UgTm90SW1wbGVtZW50ZWRFcnJvcgog
Ci0gICAgZGVmIHZlcnNpb24oc2VsZiwgYmluYXJ5PU5vbmUpOgorICAgIGRlZiB2ZXJzaW9uKHNl
bGYsIGJpbmFyeT1Ob25lLCB3ZWJkcml2ZXJfYmluYXJ5PU5vbmUpOgogICAgICAgICByZXR1cm4g
Tm9uZQogCiAKQEAgLTMxNCwxNyArNTAwLDEwIEBAIGNsYXNzIENocm9tZShCcm93c2VyKToKICAg
ICBwcm9kdWN0ID0gImNocm9tZSIKICAgICByZXF1aXJlbWVudHMgPSAicmVxdWlyZW1lbnRzX2No
cm9tZS50eHQiCiAKLSAgICBAcHJvcGVydHkKLSAgICBkZWYgYmluYXJ5KHNlbGYpOgotICAgICAg
ICBpZiB1bmFtZVswXSA9PSAiTGludXgiOgotICAgICAgICAgICAgcmV0dXJuICIvdXNyL2Jpbi9n
b29nbGUtY2hyb21lIgotICAgICAgICBpZiB1bmFtZVswXSA9PSAiRGFyd2luIjoKLSAgICAgICAg
ICAgIHJldHVybiAiL0FwcGxpY2F0aW9ucy9Hb29nbGUgQ2hyb21lLmFwcC9Db250ZW50cy9NYWNP
Uy9Hb29nbGUgQ2hyb21lIgotICAgICAgICAjIFRPRE8gV2luZG93cz8KLSAgICAgICAgbG9nZ2Vy
Lndhcm4oIlVuYWJsZSB0byBmaW5kIHRoZSBicm93c2VyIGJpbmFyeS4iKQotICAgICAgICByZXR1
cm4gTm9uZQorICAgIGRlZiBkb3dubG9hZChzZWxmLCBkZXN0PU5vbmUsIGNoYW5uZWw9Tm9uZSk6
CisgICAgICAgIHJhaXNlIE5vdEltcGxlbWVudGVkRXJyb3IKIAotICAgIGRlZiBpbnN0YWxsKHNl
bGYsIGRlc3Q9Tm9uZSk6CisgICAgZGVmIGluc3RhbGwoc2VsZiwgZGVzdD1Ob25lLCBjaGFubmVs
PU5vbmUpOgogICAgICAgICByYWlzZSBOb3RJbXBsZW1lbnRlZEVycm9yCiAKICAgICBkZWYgcGxh
dGZvcm1fc3RyaW5nKHNlbGYpOgpAQCAtMzQ2LDY1ICs1MjUsMjQ5IEBAIGNsYXNzIENocm9tZShC
cm93c2VyKToKIAogICAgICAgICByZXR1cm4gIiVzJXMiICUgKHBsYXRmb3JtLCBiaXRzKQogCi0g
ICAgZGVmIGZpbmRfYmluYXJ5KHNlbGYpOgotICAgICAgICByYWlzZSBOb3RJbXBsZW1lbnRlZEVy
cm9yCisgICAgZGVmIGNocm9taXVtX3BsYXRmb3JtX3N0cmluZyhzZWxmKToKKyAgICAgICAgcGxh
dGZvcm0gPSB7CisgICAgICAgICAgICAiTGludXgiOiAiTGludXgiLAorICAgICAgICAgICAgIldp
bmRvd3MiOiAiV2luIiwKKyAgICAgICAgICAgICJEYXJ3aW4iOiAiTWFjIgorICAgICAgICB9Lmdl
dCh1bmFtZVswXSkKKworICAgICAgICBpZiBwbGF0Zm9ybSBpcyBOb25lOgorICAgICAgICAgICAg
cmFpc2UgVmFsdWVFcnJvcigiVW5hYmxlIHRvIGNvbnN0cnVjdCBhIHZhbGlkIENocm9taXVtIHBh
Y2thZ2UgbmFtZSBmb3IgY3VycmVudCBwbGF0Zm9ybSIpCisKKyAgICAgICAgaWYgKHBsYXRmb3Jt
ID09ICJMaW51eCIgb3IgcGxhdGZvcm0gPT0gIldpbiIpIGFuZCB1bmFtZVs0XSA9PSAieDg2XzY0
IjoKKyAgICAgICAgICAgIHBsYXRmb3JtICs9ICJfeDY0IgorCisgICAgICAgIHJldHVybiBwbGF0
Zm9ybQogCi0gICAgZGVmIGZpbmRfd2ViZHJpdmVyKHNlbGYpOgorICAgIGRlZiBmaW5kX2JpbmFy
eShzZWxmLCB2ZW52X3BhdGg9Tm9uZSwgY2hhbm5lbD1Ob25lKToKKyAgICAgICAgaWYgdW5hbWVb
MF0gPT0gIkxpbnV4IjoKKyAgICAgICAgICAgIG5hbWUgPSAiZ29vZ2xlLWNocm9tZSIKKyAgICAg
ICAgICAgIGlmIGNoYW5uZWwgPT0gInN0YWJsZSI6CisgICAgICAgICAgICAgICAgbmFtZSArPSAi
LXN0YWJsZSIKKyAgICAgICAgICAgIGVsaWYgY2hhbm5lbCA9PSAiYmV0YSI6CisgICAgICAgICAg
ICAgICAgbmFtZSArPSAiLWJldGEiCisgICAgICAgICAgICBlbGlmIGNoYW5uZWwgPT0gImRldiI6
CisgICAgICAgICAgICAgICAgbmFtZSArPSAiLXVuc3RhYmxlIgorICAgICAgICAgICAgIyBObyBD
YW5hcnkgb24gTGludXguCisgICAgICAgICAgICByZXR1cm4gZmluZF9leGVjdXRhYmxlKG5hbWUp
CisgICAgICAgIGlmIHVuYW1lWzBdID09ICJEYXJ3aW4iOgorICAgICAgICAgICAgaWYgY2hhbm5l
bCA9PSAiY2FuYXJ5IjoKKyAgICAgICAgICAgICAgICByZXR1cm4gIi9BcHBsaWNhdGlvbnMvR29v
Z2xlIENocm9tZSBDYW5hcnkuYXBwL0NvbnRlbnRzL01hY09TL0dvb2dsZSBDaHJvbWUgQ2FuYXJ5
IgorICAgICAgICAgICAgIyBBbGwgb3RoZXIgY2hhbm5lbHMgc2hhcmUgdGhlIHNhbWUgcGF0aCBv
biBtYWNPUy4KKyAgICAgICAgICAgIHJldHVybiAiL0FwcGxpY2F0aW9ucy9Hb29nbGUgQ2hyb21l
LmFwcC9Db250ZW50cy9NYWNPUy9Hb29nbGUgQ2hyb21lIgorICAgICAgICBpZiB1bmFtZVswXSA9
PSAiV2luZG93cyI6CisgICAgICAgICAgICByZXR1cm4gb3MucGF0aC5leHBhbmR2YXJzKHIiJFNZ
U1RFTURSSVZFXFByb2dyYW0gRmlsZXMgKHg4NilcR29vZ2xlXENocm9tZVxBcHBsaWNhdGlvblxj
aHJvbWUuZXhlIikKKyAgICAgICAgc2VsZi5sb2dnZXIud2FybmluZygiVW5hYmxlIHRvIGZpbmQg
dGhlIGJyb3dzZXIgYmluYXJ5LiIpCisgICAgICAgIHJldHVybiBOb25lCisKKyAgICBkZWYgZmlu
ZF93ZWJkcml2ZXIoc2VsZiwgY2hhbm5lbD1Ob25lKToKICAgICAgICAgcmV0dXJuIGZpbmRfZXhl
Y3V0YWJsZSgiY2hyb21lZHJpdmVyIikKIAotICAgIGRlZiBpbnN0YWxsX3dlYmRyaXZlcihzZWxm
LCBkZXN0PU5vbmUpOgorICAgIGRlZiBfb2ZmaWNpYWxfY2hyb21lZHJpdmVyX3VybChzZWxmLCBj
aHJvbWVfdmVyc2lvbik6CisgICAgICAgICMgaHR0cDovL2Nocm9tZWRyaXZlci5jaHJvbWl1bS5v
cmcvZG93bmxvYWRzL3ZlcnNpb24tc2VsZWN0aW9uCisgICAgICAgIHBhcnRzID0gY2hyb21lX3Zl
cnNpb24uc3BsaXQoIi4iKQorICAgICAgICBhc3NlcnQgbGVuKHBhcnRzKSA9PSA0CisgICAgICAg
IGxhdGVzdF91cmwgPSAiaHR0cHM6Ly9jaHJvbWVkcml2ZXIuc3RvcmFnZS5nb29nbGVhcGlzLmNv
bS9MQVRFU1RfUkVMRUFTRV8lcy4lcy4lcyIgJSB0dXBsZShwYXJ0c1s6LTFdKQorICAgICAgICB0
cnk6CisgICAgICAgICAgICBsYXRlc3QgPSBnZXQobGF0ZXN0X3VybCkudGV4dC5zdHJpcCgpCisg
ICAgICAgIGV4Y2VwdCByZXF1ZXN0cy5SZXF1ZXN0RXhjZXB0aW9uOgorICAgICAgICAgICAgbGF0
ZXN0X3VybCA9ICJodHRwczovL2Nocm9tZWRyaXZlci5zdG9yYWdlLmdvb2dsZWFwaXMuY29tL0xB
VEVTVF9SRUxFQVNFXyVzIiAlIHBhcnRzWzBdCisgICAgICAgICAgICB0cnk6CisgICAgICAgICAg
ICAgICAgbGF0ZXN0ID0gZ2V0KGxhdGVzdF91cmwpLnRleHQuc3RyaXAoKQorICAgICAgICAgICAg
ZXhjZXB0IHJlcXVlc3RzLlJlcXVlc3RFeGNlcHRpb246CisgICAgICAgICAgICAgICAgcmV0dXJu
IE5vbmUKKyAgICAgICAgcmV0dXJuICJodHRwczovL2Nocm9tZWRyaXZlci5zdG9yYWdlLmdvb2ds
ZWFwaXMuY29tLyVzL2Nocm9tZWRyaXZlcl8lcy56aXAiICUgKAorICAgICAgICAgICAgbGF0ZXN0
LCBzZWxmLnBsYXRmb3JtX3N0cmluZygpKQorCisgICAgZGVmIF9jaHJvbWl1bV9jaHJvbWVkcml2
ZXJfdXJsKHNlbGYsIGNocm9tZV92ZXJzaW9uKToKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAg
IyBUcnkgdG8gZmluZCB0aGUgQ2hyb21pdW0gYnVpbGQgd2l0aCB0aGUgc2FtZSByZXZpc2lvbi4K
KyAgICAgICAgICAgIG9tYWhhID0gZ2V0KCJodHRwczovL29tYWhhcHJveHkuYXBwc3BvdC5jb20v
ZGVwcy5qc29uP3ZlcnNpb249IiArIGNocm9tZV92ZXJzaW9uKS5qc29uKCkKKyAgICAgICAgICAg
IHJldmlzaW9uID0gb21haGFbJ2Nocm9taXVtX2Jhc2VfcG9zaXRpb24nXQorICAgICAgICAgICAg
dXJsID0gImh0dHBzOi8vc3RvcmFnZS5nb29nbGVhcGlzLmNvbS9jaHJvbWl1bS1icm93c2VyLXNu
YXBzaG90cy8lcy8lcy9jaHJvbWVkcml2ZXJfJXMuemlwIiAlICgKKyAgICAgICAgICAgICAgICBz
ZWxmLmNocm9taXVtX3BsYXRmb3JtX3N0cmluZygpLCByZXZpc2lvbiwgc2VsZi5wbGF0Zm9ybV9z
dHJpbmcoKSkKKyAgICAgICAgICAgICMgQ2hlY2sgdGhlIHN0YXR1cyB3aXRob3V0IGRvd25sb2Fk
aW5nIHRoZSBjb250ZW50ICh0aGlzIGlzIGEgc3RyZWFtaW5nIHJlcXVlc3QpLgorICAgICAgICAg
ICAgZ2V0KHVybCkKKyAgICAgICAgZXhjZXB0IHJlcXVlc3RzLlJlcXVlc3RFeGNlcHRpb246Cisg
ICAgICAgICAgICAjIEZhbGwgYmFjayB0byB0aGUgdGlwLW9mLXRyZWUgQ2hyb21pdW0gYnVpbGQu
CisgICAgICAgICAgICByZXZpc2lvbl91cmwgPSAiaHR0cHM6Ly9zdG9yYWdlLmdvb2dsZWFwaXMu
Y29tL2Nocm9taXVtLWJyb3dzZXItc25hcHNob3RzLyVzL0xBU1RfQ0hBTkdFIiAlICgKKyAgICAg
ICAgICAgICAgICBzZWxmLmNocm9taXVtX3BsYXRmb3JtX3N0cmluZygpKQorICAgICAgICAgICAg
cmV2aXNpb24gPSBnZXQocmV2aXNpb25fdXJsKS50ZXh0LnN0cmlwKCkKKyAgICAgICAgICAgIHVy
bCA9ICJodHRwczovL3N0b3JhZ2UuZ29vZ2xlYXBpcy5jb20vY2hyb21pdW0tYnJvd3Nlci1zbmFw
c2hvdHMvJXMvJXMvY2hyb21lZHJpdmVyXyVzLnppcCIgJSAoCisgICAgICAgICAgICAgICAgc2Vs
Zi5jaHJvbWl1bV9wbGF0Zm9ybV9zdHJpbmcoKSwgcmV2aXNpb24sIHNlbGYucGxhdGZvcm1fc3Ry
aW5nKCkpCisgICAgICAgIHJldHVybiB1cmwKKworICAgIGRlZiBfbGF0ZXN0X2Nocm9tZWRyaXZl
cl91cmwoc2VsZiwgY2hyb21lX3ZlcnNpb24pOgorICAgICAgICAjIFJlbW92ZSBjaGFubmVsIHN1
ZmZpeGVzIChlLmcuICIgZGV2IikuCisgICAgICAgIGNocm9tZV92ZXJzaW9uID0gY2hyb21lX3Zl
cnNpb24uc3BsaXQoJyAnKVswXQorICAgICAgICByZXR1cm4gKHNlbGYuX29mZmljaWFsX2Nocm9t
ZWRyaXZlcl91cmwoY2hyb21lX3ZlcnNpb24pIG9yCisgICAgICAgICAgICAgICAgc2VsZi5fY2hy
b21pdW1fY2hyb21lZHJpdmVyX3VybChjaHJvbWVfdmVyc2lvbikpCisKKyAgICBkZWYgaW5zdGFs
bF93ZWJkcml2ZXJfYnlfdmVyc2lvbihzZWxmLCB2ZXJzaW9uLCBkZXN0PU5vbmUpOgorICAgICAg
ICBhc3NlcnQgdmVyc2lvbiwgIkNhbm5vdCBpbnN0YWxsIENocm9tZURyaXZlciB3aXRob3V0IENo
cm9tZSB2ZXJzaW9uIgogICAgICAgICBpZiBkZXN0IGlzIE5vbmU6CiAgICAgICAgICAgICBkZXN0
ID0gb3MucHdkCi0gICAgICAgIGxhdGVzdCA9IGdldCgiaHR0cDovL2Nocm9tZWRyaXZlci5zdG9y
YWdlLmdvb2dsZWFwaXMuY29tL0xBVEVTVF9SRUxFQVNFIikudGV4dC5zdHJpcCgpCi0gICAgICAg
IHVybCA9ICJodHRwOi8vY2hyb21lZHJpdmVyLnN0b3JhZ2UuZ29vZ2xlYXBpcy5jb20vJXMvY2hy
b21lZHJpdmVyXyVzLnppcCIgJSAobGF0ZXN0LAotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHNlbGYucGxhdGZvcm1fc3RyaW5nKCkpCisgICAgICAgIHVybCA9IHNlbGYuX2xhdGVzdF9jaHJv
bWVkcml2ZXJfdXJsKHZlcnNpb24pCisgICAgICAgIHNlbGYubG9nZ2VyLmluZm8oIkRvd25sb2Fk
aW5nIENocm9tZURyaXZlciBmcm9tICVzIiAlIHVybCkKICAgICAgICAgdW56aXAoZ2V0KHVybCku
cmF3LCBkZXN0KQorICAgICAgICBjaHJvbWVkcml2ZXJfZGlyID0gb3MucGF0aC5qb2luKAorICAg
ICAgICAgICAgZGVzdCwgJ2Nocm9tZWRyaXZlcl8lcycgJSBzZWxmLnBsYXRmb3JtX3N0cmluZygp
KQorICAgICAgICBpZiBvcy5wYXRoLmlzZmlsZShvcy5wYXRoLmpvaW4oY2hyb21lZHJpdmVyX2Rp
ciwgImNocm9tZWRyaXZlciIpKToKKyAgICAgICAgICAgIHNodXRpbC5tb3ZlKG9zLnBhdGguam9p
bihjaHJvbWVkcml2ZXJfZGlyLCAiY2hyb21lZHJpdmVyIiksIGRlc3QpCisgICAgICAgICAgICBz
aHV0aWwucm10cmVlKGNocm9tZWRyaXZlcl9kaXIpCisgICAgICAgIHJldHVybiBmaW5kX2V4ZWN1
dGFibGUoImNocm9tZWRyaXZlciIsIGRlc3QpCisKKyAgICBkZWYgaW5zdGFsbF93ZWJkcml2ZXIo
c2VsZiwgZGVzdD1Ob25lLCBjaGFubmVsPU5vbmUsIGJyb3dzZXJfYmluYXJ5PU5vbmUpOgorICAg
ICAgICBpZiBicm93c2VyX2JpbmFyeSBpcyBOb25lOgorICAgICAgICAgICAgYnJvd3Nlcl9iaW5h
cnkgPSBzZWxmLmZpbmRfYmluYXJ5KGNoYW5uZWwpCisgICAgICAgIHJldHVybiBzZWxmLmluc3Rh
bGxfd2ViZHJpdmVyX2J5X3ZlcnNpb24oCisgICAgICAgICAgICBzZWxmLnZlcnNpb24oYnJvd3Nl
cl9iaW5hcnkpLCBkZXN0KQorCisgICAgZGVmIHZlcnNpb24oc2VsZiwgYmluYXJ5PU5vbmUsIHdl
YmRyaXZlcl9iaW5hcnk9Tm9uZSk6CisgICAgICAgIGlmIG5vdCBiaW5hcnk6CisgICAgICAgICAg
ICBzZWxmLmxvZ2dlci53YXJuaW5nKCJObyBicm93c2VyIGJpbmFyeSBwcm92aWRlZC4iKQorICAg
ICAgICAgICAgcmV0dXJuIE5vbmUKIAotICAgICAgICBwYXRoID0gZmluZF9leGVjdXRhYmxlKCJj
aHJvbWVkcml2ZXIiLCBkZXN0KQotICAgICAgICBzdCA9IG9zLnN0YXQocGF0aCkKLSAgICAgICAg
b3MuY2htb2QocGF0aCwgc3Quc3RfbW9kZSB8IHN0YXQuU19JRVhFQykKLSAgICAgICAgcmV0dXJu
IHBhdGgKKyAgICAgICAgaWYgdW5hbWVbMF0gPT0gIldpbmRvd3MiOgorICAgICAgICAgICAgcmV0
dXJuIF9nZXRfZmlsZXZlcnNpb24oYmluYXJ5LCBzZWxmLmxvZ2dlcikKIAotICAgIGRlZiB2ZXJz
aW9uKHNlbGYsIGJpbmFyeT1Ob25lKToKLSAgICAgICAgYmluYXJ5ID0gYmluYXJ5IG9yIHNlbGYu
YmluYXJ5Ci0gICAgICAgIGlmIHVuYW1lWzBdICE9ICJXaW5kb3dzIjoKLSAgICAgICAgICAgIHRy
eToKLSAgICAgICAgICAgICAgICB2ZXJzaW9uX3N0cmluZyA9IGNhbGwoYmluYXJ5LCAiLS12ZXJz
aW9uIikuc3RyaXAoKQotICAgICAgICAgICAgZXhjZXB0IHN1YnByb2Nlc3MuQ2FsbGVkUHJvY2Vz
c0Vycm9yOgotICAgICAgICAgICAgICAgIGxvZ2dlci53YXJuKCJGYWlsZWQgdG8gY2FsbCAlcyIs
IGJpbmFyeSkKLSAgICAgICAgICAgICAgICByZXR1cm4gTm9uZQotICAgICAgICAgICAgbSA9IHJl
Lm1hdGNoKHIiR29vZ2xlIENocm9tZSAoLiopIiwgdmVyc2lvbl9zdHJpbmcpCi0gICAgICAgICAg
ICBpZiBub3QgbToKLSAgICAgICAgICAgICAgICBsb2dnZXIud2FybigiRmFpbGVkIHRvIGV4dHJh
Y3QgdmVyc2lvbiBmcm9tOiBzJSIsIHZlcnNpb25fc3RyaW5nKQotICAgICAgICAgICAgICAgIHJl
dHVybiBOb25lCi0gICAgICAgICAgICByZXR1cm4gbS5ncm91cCgxKQotICAgICAgICBsb2dnZXIu
d2FybigiVW5hYmxlIHRvIGV4dHJhY3QgdmVyc2lvbiBmcm9tIGJpbmFyeSBvbiBXaW5kb3dzLiIp
Ci0gICAgICAgIHJldHVybiBOb25lCisgICAgICAgIHRyeToKKyAgICAgICAgICAgIHZlcnNpb25f
c3RyaW5nID0gY2FsbChiaW5hcnksICItLXZlcnNpb24iKS5zdHJpcCgpCisgICAgICAgIGV4Y2Vw
dCBzdWJwcm9jZXNzLkNhbGxlZFByb2Nlc3NFcnJvcjoKKyAgICAgICAgICAgIHNlbGYubG9nZ2Vy
Lndhcm5pbmcoIkZhaWxlZCB0byBjYWxsICVzIiAlIGJpbmFyeSkKKyAgICAgICAgICAgIHJldHVy
biBOb25lCisgICAgICAgIG0gPSByZS5tYXRjaChyIig/Okdvb2dsZSBDaHJvbWV8Q2hyb21pdW0p
ICguKikiLCB2ZXJzaW9uX3N0cmluZykKKyAgICAgICAgaWYgbm90IG06CisgICAgICAgICAgICBz
ZWxmLmxvZ2dlci53YXJuaW5nKCJGYWlsZWQgdG8gZXh0cmFjdCB2ZXJzaW9uIGZyb206ICVzIiAl
IHZlcnNpb25fc3RyaW5nKQorICAgICAgICAgICAgcmV0dXJuIE5vbmUKKyAgICAgICAgcmV0dXJu
IG0uZ3JvdXAoMSkKIAogCi1jbGFzcyBDaHJvbWVBbmRyb2lkKEJyb3dzZXIpOgotICAgICIiIkNo
cm9tZS1zcGVjaWZpYyBpbnRlcmZhY2UgZm9yIEFuZHJvaWQuCitjbGFzcyBDaHJvbWVBbmRyb2lk
QmFzZShCcm93c2VyKToKKyAgICAiIiJBIGJhc2UgY2xhc3MgZm9yIENocm9tZUFuZHJvaWQgYW5k
IEFuZHJvaWRXZWJWaWV3LgogCisgICAgT24gQW5kcm9pZCwgV2ViVmlldyBpcyBiYXNlZCBvbiBD
aHJvbWl1bSBvcGVuIHNvdXJjZSBwcm9qZWN0LCBhbmQgb24gc29tZQorICAgIHZlcnNpb25zIG9m
IEFuZHJvaWQgd2Ugc2hhcmUgdGhlIGxpYnJhcnkgd2l0aCBDaHJvbWUuIFRoZXJlZm9yZSwgd2Ug
aGF2ZQorICAgIGEgdmVyeSBzaW1pbGFyIFdQVCBydW5uZXIgaW1wbGVtZW50YXRpb24uCiAgICAg
SW5jbHVkZXMgd2ViZHJpdmVyIGluc3RhbGxhdGlvbi4KICAgICAiIiIKKyAgICBfX21ldGFjbGFz
c19fID0gQUJDTWV0YSAgIyBUaGlzIGlzIGFuIGFic3RyYWN0IGNsYXNzLgorCisgICAgZGVmIF9f
aW5pdF9fKHNlbGYsIGxvZ2dlcik6CisgICAgICAgIHN1cGVyKENocm9tZUFuZHJvaWRCYXNlLCBz
ZWxmKS5fX2luaXRfXyhsb2dnZXIpCisgICAgICAgIHNlbGYuZGV2aWNlX3NlcmlhbCA9IE5vbmUK
KworICAgIGRlZiBkb3dubG9hZChzZWxmLCBkZXN0PU5vbmUsIGNoYW5uZWw9Tm9uZSk6CisgICAg
ICAgIHJhaXNlIE5vdEltcGxlbWVudGVkRXJyb3IKKworICAgIGRlZiBpbnN0YWxsKHNlbGYsIGRl
c3Q9Tm9uZSwgY2hhbm5lbD1Ob25lKToKKyAgICAgICAgcmFpc2UgTm90SW1wbGVtZW50ZWRFcnJv
cgorCisgICAgQGFic3RyYWN0bWV0aG9kCisgICAgZGVmIGZpbmRfYmluYXJ5KHNlbGYsIHZlbnZf
cGF0aD1Ob25lLCBjaGFubmVsPU5vbmUpOgorICAgICAgICByYWlzZSBOb3RJbXBsZW1lbnRlZEVy
cm9yCisKKyAgICBkZWYgZmluZF93ZWJkcml2ZXIoc2VsZiwgY2hhbm5lbD1Ob25lKToKKyAgICAg
ICAgcmV0dXJuIGZpbmRfZXhlY3V0YWJsZSgiY2hyb21lZHJpdmVyIikKKworICAgIGRlZiBpbnN0
YWxsX3dlYmRyaXZlcihzZWxmLCBkZXN0PU5vbmUsIGNoYW5uZWw9Tm9uZSwgYnJvd3Nlcl9iaW5h
cnk9Tm9uZSk6CisgICAgICAgIGlmIGJyb3dzZXJfYmluYXJ5IGlzIE5vbmU6CisgICAgICAgICAg
ICBicm93c2VyX2JpbmFyeSA9IHNlbGYuZmluZF9iaW5hcnkoY2hhbm5lbCkKKyAgICAgICAgY2hy
b21lID0gQ2hyb21lKHNlbGYubG9nZ2VyKQorICAgICAgICByZXR1cm4gY2hyb21lLmluc3RhbGxf
d2ViZHJpdmVyX2J5X3ZlcnNpb24oCisgICAgICAgICAgICBzZWxmLnZlcnNpb24oYnJvd3Nlcl9i
aW5hcnkpLCBkZXN0KQorCisgICAgZGVmIHZlcnNpb24oc2VsZiwgYmluYXJ5PU5vbmUsIHdlYmRy
aXZlcl9iaW5hcnk9Tm9uZSk6CisgICAgICAgIGlmIG5vdCBiaW5hcnk6CisgICAgICAgICAgICBz
ZWxmLmxvZ2dlci53YXJuaW5nKCJObyBwYWNrYWdlIG5hbWUgcHJvdmlkZWQuIikKKyAgICAgICAg
ICAgIHJldHVybiBOb25lCisKKyAgICAgICAgY29tbWFuZCA9IFsnYWRiJ10KKyAgICAgICAgaWYg
c2VsZi5kZXZpY2Vfc2VyaWFsOgorICAgICAgICAgICAgY29tbWFuZC5leHRlbmQoWyctcycsIHNl
bGYuZGV2aWNlX3NlcmlhbF0pCisgICAgICAgIGNvbW1hbmQuZXh0ZW5kKFsnc2hlbGwnLCAnZHVt
cHN5cycsICdwYWNrYWdlJywgYmluYXJ5XSkKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgb3V0
cHV0ID0gY2FsbCgqY29tbWFuZCkKKyAgICAgICAgZXhjZXB0IChzdWJwcm9jZXNzLkNhbGxlZFBy
b2Nlc3NFcnJvciwgT1NFcnJvcik6CisgICAgICAgICAgICBzZWxmLmxvZ2dlci53YXJuaW5nKCJG
YWlsZWQgdG8gY2FsbCAlcyIgJSAiICIuam9pbihjb21tYW5kKSkKKyAgICAgICAgICAgIHJldHVy
biBOb25lCisgICAgICAgIG1hdGNoID0gcmUuc2VhcmNoKHIndmVyc2lvbk5hbWU9KC4qKScsIG91
dHB1dCkKKyAgICAgICAgaWYgbm90IG1hdGNoOgorICAgICAgICAgICAgc2VsZi5sb2dnZXIud2Fy
bmluZygiRmFpbGVkIHRvIGZpbmQgdmVyc2lvbk5hbWUiKQorICAgICAgICAgICAgcmV0dXJuIE5v
bmUKKyAgICAgICAgcmV0dXJuIG1hdGNoLmdyb3VwKDEpCisKKworY2xhc3MgQ2hyb21lQW5kcm9p
ZChDaHJvbWVBbmRyb2lkQmFzZSk6CisgICAgIiIiQ2hyb21lLXNwZWNpZmljIGludGVyZmFjZSBm
b3IgQW5kcm9pZC4KKyAgICAiIiIKIAogICAgIHByb2R1Y3QgPSAiY2hyb21lX2FuZHJvaWQiCiAg
ICAgcmVxdWlyZW1lbnRzID0gInJlcXVpcmVtZW50c19jaHJvbWVfYW5kcm9pZC50eHQiCiAKLSAg
ICBkZWYgaW5zdGFsbChzZWxmLCBkZXN0PU5vbmUpOgorICAgIGRlZiBmaW5kX2JpbmFyeShzZWxm
LCB2ZW52X3BhdGg9Tm9uZSwgY2hhbm5lbD1Ob25lKToKKyAgICAgICAgaWYgY2hhbm5lbCBpbiAo
ImJldGEiLCAiZGV2IiwgImNhbmFyeSIpOgorICAgICAgICAgICAgcmV0dXJuICJjb20uY2hyb21l
LiIgKyBjaGFubmVsCisgICAgICAgIHJldHVybiAiY29tLmFuZHJvaWQuY2hyb21lIgorCisKK2Ns
YXNzIEFuZHJvaWRXZWJ2aWV3KENocm9tZUFuZHJvaWRCYXNlKToKKyAgICAiIiJXZWJ2aWV3LXNw
ZWNpZmljIGludGVyZmFjZSBmb3IgQW5kcm9pZC4KKworICAgIERlc2lnbiBkb2M6CisgICAgaHR0
cHM6Ly9kb2NzLmdvb2dsZS5jb20vZG9jdW1lbnQvZC8xOWNHejMxbHpDQmRwYnRTQzkyc3ZYbGhs
aG42OGhyc1Z3U0I3Y2ZadDU0by92aWV3CisgICAgIiIiCisKKyAgICBwcm9kdWN0ID0gImFuZHJv
aWRfd2VidmlldyIKKyAgICByZXF1aXJlbWVudHMgPSAicmVxdWlyZW1lbnRzX2FuZHJvaWRfd2Vi
dmlldy50eHQiCisKKyAgICBkZWYgZmluZF9iaW5hcnkoc2VsZiwgdmVudl9wYXRoPU5vbmUsIGNo
YW5uZWw9Tm9uZSk6CisgICAgICAgICMgSnVzdCBnZXQgdGhlIGN1cnJlbnQgcGFja2FnZSBuYW1l
IG9mIHRoZSBXZWJWaWV3IHByb3ZpZGVyLgorICAgICAgICAjIEZvciBXZWJWaWV3LCBpdCBpcyBu
b3QgdHJpdmlhbCB0byBjaGFuZ2UgdGhlIFdlYlZpZXcgcHJvdmlkZXIsIHNvCisgICAgICAgICMg
d2Ugd2lsbCBqdXN0IGdyYWIgd2hhdGV2ZXIgaXMgYXZhaWxhYmxlLgorICAgICAgICAjIGh0dHBz
Oi8vY2hyb21pdW0uZ29vZ2xlc291cmNlLmNvbS9jaHJvbWl1bS9zcmMvKy9IRUFEL2FuZHJvaWRf
d2Vidmlldy9kb2NzL2NoYW5uZWxzLm1kCisgICAgICAgIGNvbW1hbmQgPSBbJ2FkYiddCisgICAg
ICAgIGlmIHNlbGYuZGV2aWNlX3NlcmlhbDoKKyAgICAgICAgICAgIGNvbW1hbmQuZXh0ZW5kKFsn
LXMnLCBzZWxmLmRldmljZV9zZXJpYWxdKQorICAgICAgICBjb21tYW5kLmV4dGVuZChbJ3NoZWxs
JywgJ2R1bXBzeXMnLCAnd2Vidmlld3VwZGF0ZSddKQorICAgICAgICB0cnk6CisgICAgICAgICAg
ICBvdXRwdXQgPSBjYWxsKCpjb21tYW5kKQorICAgICAgICBleGNlcHQgKHN1YnByb2Nlc3MuQ2Fs
bGVkUHJvY2Vzc0Vycm9yLCBPU0Vycm9yKToKKyAgICAgICAgICAgIHNlbGYubG9nZ2VyLndhcm5p
bmcoIkZhaWxlZCB0byBjYWxsICVzIiAlICIgIi5qb2luKGNvbW1hbmQpKQorICAgICAgICAgICAg
cmV0dXJuIE5vbmUKKyAgICAgICAgbSA9IHJlLnNlYXJjaChyJ15ccypDdXJyZW50IFdlYlZpZXcg
cGFja2FnZSBcKG5hbWUsIHZlcnNpb25cKTogXCgoLiopLCAoWzAtOS5dKilcKSQnLAorICAgICAg
ICAgICAgICAgICAgICAgIG91dHB1dCwgcmUuTSkKKyAgICAgICAgaWYgbSBpcyBOb25lOgorICAg
ICAgICAgICAgc2VsZi5sb2dnZXIud2FybmluZygiVW5hYmxlIHRvIGZpbmQgY3VycmVudCBXZWJW
aWV3IHBhY2thZ2UgaW4gZHVtcHN5cyBvdXRwdXQiKQorICAgICAgICAgICAgcmV0dXJuIE5vbmUK
KyAgICAgICAgc2VsZi5sb2dnZXIud2FybmluZygiRmluYWwgcGFja2FnZSBuYW1lOiAiICsgbS5n
cm91cCgxKSkKKyAgICAgICAgcmV0dXJuIG0uZ3JvdXAoMSkKKworCitjbGFzcyBDaHJvbWVpT1Mo
QnJvd3Nlcik6CisgICAgIiIiQ2hyb21lLXNwZWNpZmljIGludGVyZmFjZSBmb3IgaU9TLgorICAg
ICIiIgorCisgICAgcHJvZHVjdCA9ICJjaHJvbWVfaW9zIgorICAgIHJlcXVpcmVtZW50cyA9ICJy
ZXF1aXJlbWVudHNfY2hyb21lX2lvcy50eHQiCisKKyAgICBkZWYgZG93bmxvYWQoc2VsZiwgZGVz
dD1Ob25lLCBjaGFubmVsPU5vbmUpOgogICAgICAgICByYWlzZSBOb3RJbXBsZW1lbnRlZEVycm9y
CiAKLSAgICBkZWYgZmluZF9iaW5hcnkoc2VsZik6CisgICAgZGVmIGluc3RhbGwoc2VsZiwgZGVz
dD1Ob25lLCBjaGFubmVsPU5vbmUpOgogICAgICAgICByYWlzZSBOb3RJbXBsZW1lbnRlZEVycm9y
CiAKLSAgICBkZWYgZmluZF93ZWJkcml2ZXIoc2VsZik6Ci0gICAgICAgIHJldHVybiBmaW5kX2V4
ZWN1dGFibGUoImNocm9tZWRyaXZlciIpCisgICAgZGVmIGZpbmRfYmluYXJ5KHNlbGYsIHZlbnZf
cGF0aD1Ob25lLCBjaGFubmVsPU5vbmUpOgorICAgICAgICByYWlzZSBOb3RJbXBsZW1lbnRlZEVy
cm9yCiAKLSAgICBkZWYgaW5zdGFsbF93ZWJkcml2ZXIoc2VsZiwgZGVzdD1Ob25lKToKLSAgICAg
ICAgY2hyb21lID0gQ2hyb21lKCkKLSAgICAgICAgcmV0dXJuIGNocm9tZS5pbnN0YWxsX3dlYmRy
aXZlcihkZXN0KQorICAgIGRlZiBmaW5kX3dlYmRyaXZlcihzZWxmLCBjaGFubmVsPU5vbmUpOgor
ICAgICAgICByYWlzZSBOb3RJbXBsZW1lbnRlZEVycm9yCiAKLSAgICBkZWYgdmVyc2lvbihzZWxm
LCBiaW5hcnkpOgorICAgIGRlZiBpbnN0YWxsX3dlYmRyaXZlcihzZWxmLCBkZXN0PU5vbmUsIGNo
YW5uZWw9Tm9uZSwgYnJvd3Nlcl9iaW5hcnk9Tm9uZSk6CisgICAgICAgIHJhaXNlIE5vdEltcGxl
bWVudGVkRXJyb3IKKworICAgIGRlZiB2ZXJzaW9uKHNlbGYsIGJpbmFyeT1Ob25lLCB3ZWJkcml2
ZXJfYmluYXJ5PU5vbmUpOgogICAgICAgICByZXR1cm4gTm9uZQogCiAKQEAgLTQyMiwxMCArNzg1
LDEzIEBAIGNsYXNzIE9wZXJhKEJyb3dzZXIpOgogICAgICAgICBpZiB1bmFtZVswXSA9PSAiTGlu
dXgiOgogICAgICAgICAgICAgcmV0dXJuICIvdXNyL2Jpbi9vcGVyYSIKICAgICAgICAgIyBUT0RP
IFdpbmRvd3MsIE1hYz8KLSAgICAgICAgbG9nZ2VyLndhcm4oIlVuYWJsZSB0byBmaW5kIHRoZSBi
cm93c2VyIGJpbmFyeS4iKQorICAgICAgICBzZWxmLmxvZ2dlci53YXJuaW5nKCJVbmFibGUgdG8g
ZmluZCB0aGUgYnJvd3NlciBiaW5hcnkuIikKICAgICAgICAgcmV0dXJuIE5vbmUKIAotICAgIGRl
ZiBpbnN0YWxsKHNlbGYsIGRlc3Q9Tm9uZSk6CisgICAgZGVmIGRvd25sb2FkKHNlbGYsIGRlc3Q9
Tm9uZSwgY2hhbm5lbD1Ob25lKToKKyAgICAgICAgcmFpc2UgTm90SW1wbGVtZW50ZWRFcnJvcgor
CisgICAgZGVmIGluc3RhbGwoc2VsZiwgZGVzdD1Ob25lLCBjaGFubmVsPU5vbmUpOgogICAgICAg
ICByYWlzZSBOb3RJbXBsZW1lbnRlZEVycm9yCiAKICAgICBkZWYgcGxhdGZvcm1fc3RyaW5nKHNl
bGYpOgpAQCAtNDQ3LDEzICs4MTMsMTMgQEAgY2xhc3MgT3BlcmEoQnJvd3Nlcik6CiAKICAgICAg
ICAgcmV0dXJuICIlcyVzIiAlIChwbGF0Zm9ybSwgYml0cykKIAotICAgIGRlZiBmaW5kX2JpbmFy
eShzZWxmKToKKyAgICBkZWYgZmluZF9iaW5hcnkoc2VsZiwgdmVudl9wYXRoPU5vbmUsIGNoYW5u
ZWw9Tm9uZSk6CiAgICAgICAgIHJhaXNlIE5vdEltcGxlbWVudGVkRXJyb3IKIAotICAgIGRlZiBm
aW5kX3dlYmRyaXZlcihzZWxmKToKKyAgICBkZWYgZmluZF93ZWJkcml2ZXIoc2VsZiwgY2hhbm5l
bD1Ob25lKToKICAgICAgICAgcmV0dXJuIGZpbmRfZXhlY3V0YWJsZSgib3BlcmFkcml2ZXIiKQog
Ci0gICAgZGVmIGluc3RhbGxfd2ViZHJpdmVyKHNlbGYsIGRlc3Q9Tm9uZSk6CisgICAgZGVmIGlu
c3RhbGxfd2ViZHJpdmVyKHNlbGYsIGRlc3Q9Tm9uZSwgY2hhbm5lbD1Ob25lLCBicm93c2VyX2Jp
bmFyeT1Ob25lKToKICAgICAgICAgaWYgZGVzdCBpcyBOb25lOgogICAgICAgICAgICAgZGVzdCA9
IG9zLnB3ZAogICAgICAgICBsYXRlc3QgPSBnZXQoImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVw
b3Mvb3BlcmFzb2Z0d2FyZS9vcGVyYWNocm9taXVtZHJpdmVyL3JlbGVhc2VzL2xhdGVzdCIpLmpz
b24oKVsidGFnX25hbWUiXQpAQCAtNDcwLDE1ICs4MzYsMTIxIEBAIGNsYXNzIE9wZXJhKEJyb3dz
ZXIpOgogICAgICAgICBvcy5jaG1vZChwYXRoLCBzdC5zdF9tb2RlIHwgc3RhdC5TX0lFWEVDKQog
ICAgICAgICByZXR1cm4gcGF0aAogCi0gICAgZGVmIHZlcnNpb24oc2VsZiwgYmluYXJ5KToKKyAg
ICBkZWYgdmVyc2lvbihzZWxmLCBiaW5hcnk9Tm9uZSwgd2ViZHJpdmVyX2JpbmFyeT1Ob25lKToK
ICAgICAgICAgIiIiUmV0cmlldmUgdGhlIHJlbGVhc2UgdmVyc2lvbiBvZiB0aGUgaW5zdGFsbGVk
IGJyb3dzZXIuIiIiCiAgICAgICAgIGJpbmFyeSA9IGJpbmFyeSBvciBzZWxmLmJpbmFyeQogICAg
ICAgICB0cnk6CiAgICAgICAgICAgICBvdXRwdXQgPSBjYWxsKGJpbmFyeSwgIi0tdmVyc2lvbiIp
CiAgICAgICAgIGV4Y2VwdCBzdWJwcm9jZXNzLkNhbGxlZFByb2Nlc3NFcnJvcjoKLSAgICAgICAg
ICAgIGxvZ2dlci53YXJuKCJGYWlsZWQgdG8gY2FsbCAlcyIsIGJpbmFyeSkKKyAgICAgICAgICAg
IHNlbGYubG9nZ2VyLndhcm5pbmcoIkZhaWxlZCB0byBjYWxsICVzIiAlIGJpbmFyeSkKKyAgICAg
ICAgICAgIHJldHVybiBOb25lCisgICAgICAgIG0gPSByZS5zZWFyY2gociJbMC05XC5dKyggW2Et
el0rKT8kIiwgb3V0cHV0LnN0cmlwKCkpCisgICAgICAgIGlmIG06CisgICAgICAgICAgICByZXR1
cm4gbS5ncm91cCgwKQorCisKK2NsYXNzIEVkZ2VDaHJvbWl1bShCcm93c2VyKToKKyAgICAiIiJN
aWNyb3NvZnRFZGdlLXNwZWNpZmljIGludGVyZmFjZS4iIiIKKyAgICBwbGF0Zm9ybSA9IHsKKyAg
ICAgICAgIkxpbnV4IjogImxpbnV4IiwKKyAgICAgICAgIldpbmRvd3MiOiAid2luIiwKKyAgICAg
ICAgIkRhcndpbiI6ICJtYWNvcyIKKyAgICB9LmdldCh1bmFtZVswXSkKKyAgICBwcm9kdWN0ID0g
ImVkZ2VjaHJvbWl1bSIKKyAgICBlZGdlZHJpdmVyX25hbWUgPSAibXNlZGdlZHJpdmVyIgorICAg
IHJlcXVpcmVtZW50cyA9ICJyZXF1aXJlbWVudHNfZWRnZV9jaHJvbWl1bS50eHQiCisKKyAgICBk
ZWYgZG93bmxvYWQoc2VsZiwgZGVzdD1Ob25lLCBjaGFubmVsPU5vbmUpOgorICAgICAgICByYWlz
ZSBOb3RJbXBsZW1lbnRlZEVycm9yCisKKyAgICBkZWYgaW5zdGFsbChzZWxmLCBkZXN0PU5vbmUs
IGNoYW5uZWw9Tm9uZSk6CisgICAgICAgIHJhaXNlIE5vdEltcGxlbWVudGVkRXJyb3IKKworICAg
IGRlZiBmaW5kX2JpbmFyeShzZWxmLCB2ZW52X3BhdGg9Tm9uZSwgY2hhbm5lbD1Ob25lKToKKyAg
ICAgICAgYmluYXJ5ID0gTm9uZQorICAgICAgICBpZiBzZWxmLnBsYXRmb3JtID09ICJ3aW4iOgor
ICAgICAgICAgICAgYmluYXJ5bmFtZSA9ICJtc2VkZ2UiCisgICAgICAgICAgICBiaW5hcnkgPSBm
aW5kX2V4ZWN1dGFibGUoYmluYXJ5bmFtZSkKKyAgICAgICAgICAgIGlmIG5vdCBiaW5hcnk6Cisg
ICAgICAgICAgICAgICAgIyBVc2UgcGF0aHMgZnJvbSBkaWZmZXJlbnQgRWRnZSBjaGFubmVscyBz
dGFydGluZyB3aXRoIFJlbGVhc2VcQmV0YVxEZXZcQ2FuYXJ5CisgICAgICAgICAgICAgICAgd2lu
cGF0aHMgPSBbb3MucGF0aC5leHBhbmR1c2VyKCJ+XFxBcHBEYXRhXFxMb2NhbFxcTWljcm9zb2Z0
XFxFZGdlXFxBcHBsaWNhdGlvbiIpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9zLnBh
dGguZXhwYW5kdmFycygiJFNZU1RFTURSSVZFXFxQcm9ncmFtIEZpbGVzXFxNaWNyb3NvZnRcXEVk
Z2UgQmV0YVxcQXBwbGljYXRpb24iKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcy5w
YXRoLmV4cGFuZHZhcnMoIiRTWVNURU1EUklWRVxcUHJvZ3JhbSBGaWxlc1xcTWljcm9zb2Z0XFxF
ZGdlIERldlxcQXBwbGljYXRpb24iKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcy5w
YXRoLmV4cGFuZHZhcnMoIiRTWVNURU1EUklWRVxcUHJvZ3JhbSBGaWxlcyAoeDg2KVxcTWljcm9z
b2Z0XFxFZGdlIEJldGFcXEFwcGxpY2F0aW9uIiksCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgb3MucGF0aC5leHBhbmR2YXJzKCIkU1lTVEVNRFJJVkVcXFByb2dyYW0gRmlsZXMgKHg4Nilc
XE1pY3Jvc29mdFxcRWRnZSBEZXZcXEFwcGxpY2F0aW9uIiksCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgb3MucGF0aC5leHBhbmR1c2VyKCJ+XFxBcHBEYXRhXExvY2FsXFxNaWNyb3NvZnRc
XEVkZ2UgU3hTXFxBcHBsaWNhdGlvbiIpXQorICAgICAgICAgICAgICAgIHJldHVybiBmaW5kX2V4
ZWN1dGFibGUoYmluYXJ5bmFtZSwgb3MucGF0aHNlcC5qb2luKHdpbnBhdGhzKSkKKyAgICAgICAg
aWYgc2VsZi5wbGF0Zm9ybSA9PSAibWFjb3MiOgorICAgICAgICAgICAgYmluYXJ5bmFtZSA9ICJN
aWNyb3NvZnQgRWRnZSBDYW5hcnkiCisgICAgICAgICAgICBiaW5hcnkgPSBmaW5kX2V4ZWN1dGFi
bGUoYmluYXJ5bmFtZSkKKyAgICAgICAgICAgIGlmIG5vdCBiaW5hcnk6CisgICAgICAgICAgICAg
ICAgbWFjcGF0aHMgPSBbIi9BcHBsaWNhdGlvbnMvTWljcm9zb2Z0IEVkZ2UuYXBwL0NvbnRlbnRz
L01hY09TIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcy5wYXRoLmV4cGFuZHVzZXIo
In4vQXBwbGljYXRpb25zL01pY3Jvc29mdCBFZGdlLmFwcC9Db250ZW50cy9NYWNPUyIpLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICIvQXBwbGljYXRpb25zL01pY3Jvc29mdCBFZGdlIENh
bmFyeS5hcHAvQ29udGVudHMvTWFjT1MiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9z
LnBhdGguZXhwYW5kdXNlcigifi9BcHBsaWNhdGlvbnMvTWljcm9zb2Z0IEVkZ2UgQ2FuYXJ5LmFw
cC9Db250ZW50cy9NYWNPUyIpXQorICAgICAgICAgICAgICAgIHJldHVybiBmaW5kX2V4ZWN1dGFi
bGUoIk1pY3Jvc29mdCBFZGdlIENhbmFyeSIsIG9zLnBhdGhzZXAuam9pbihtYWNwYXRocykpCisg
ICAgICAgIHJldHVybiBiaW5hcnkKKworICAgIGRlZiBmaW5kX3dlYmRyaXZlcihzZWxmLCBjaGFu
bmVsPU5vbmUpOgorICAgICAgICByZXR1cm4gZmluZF9leGVjdXRhYmxlKCJtc2VkZ2Vkcml2ZXIi
KQorCisgICAgZGVmIGluc3RhbGxfd2ViZHJpdmVyKHNlbGYsIGRlc3Q9Tm9uZSwgY2hhbm5lbD1O
b25lLCBicm93c2VyX2JpbmFyeT1Ob25lKToKKyAgICAgICAgaWYgc2VsZi5wbGF0Zm9ybSAhPSAi
d2luIiBhbmQgc2VsZi5wbGF0Zm9ybSAhPSAibWFjb3MiOgorICAgICAgICAgICAgcmFpc2UgVmFs
dWVFcnJvcigiT25seSBXaW5kb3dzIGFuZCBNYWMgcGxhdGZvcm1zIGFyZSBjdXJyZW50bHkgc3Vw
cG9ydGVkIikKKworICAgICAgICBpZiBkZXN0IGlzIE5vbmU6CisgICAgICAgICAgICBkZXN0ID0g
b3MucHdkCisKKyAgICAgICAgaWYgY2hhbm5lbCBpcyBOb25lOgorICAgICAgICAgICAgdmVyc2lv
bl91cmwgPSAiaHR0cHM6Ly9tc2VkZ2Vkcml2ZXIuYXp1cmVlZGdlLm5ldC9MQVRFU1RfREVWIgor
ICAgICAgICBlbHNlOgorICAgICAgICAgICAgdmVyc2lvbl91cmwgPSAiaHR0cHM6Ly9tc2VkZ2Vk
cml2ZXIuYXp1cmVlZGdlLm5ldC9MQVRFU1RfJXMiICUgY2hhbm5lbC51cHBlcigpCisgICAgICAg
IHZlcnNpb24gPSBnZXQodmVyc2lvbl91cmwpLnRleHQuc3RyaXAoKQorCisgICAgICAgIGlmIHNl
bGYucGxhdGZvcm0gPT0gIm1hY29zIjoKKyAgICAgICAgICAgIGJpdHMgPSAibWFjNjQiCisgICAg
ICAgICAgICBlZGdlZHJpdmVyX3BhdGggPSBvcy5wYXRoLmpvaW4oZGVzdCwgc2VsZi5lZGdlZHJp
dmVyX25hbWUpCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBiaXRzID0gIndpbjY0IiBpZiB1
bmFtZVs0XSA9PSAieDg2XzY0IiBlbHNlICJ3aW4zMiIKKyAgICAgICAgICAgIGVkZ2Vkcml2ZXJf
cGF0aCA9IG9zLnBhdGguam9pbihkZXN0LCAiJXMuZXhlIiAlIHNlbGYuZWRnZWRyaXZlcl9uYW1l
KQorICAgICAgICB1cmwgPSAiaHR0cHM6Ly9tc2VkZ2Vkcml2ZXIuYXp1cmVlZGdlLm5ldC8lcy9l
ZGdlZHJpdmVyXyVzLnppcCIgJSAodmVyc2lvbiwgYml0cykKKworICAgICAgICAjIGNsZWFudXAg
ZXhpc3RpbmcgRWRnZSBkcml2ZXIgZmlsZXMgdG8gYXZvaWQgYWNjZXNzX2RlbmllZCBlcnJvcnMg
d2hlbiB1bnppcHBpbmcKKyAgICAgICAgaWYgb3MucGF0aC5pc2ZpbGUoZWRnZWRyaXZlcl9wYXRo
KToKKyAgICAgICAgICAgICMgcmVtb3ZlIHJlYWQtb25seSBhdHRyaWJ1dGUKKyAgICAgICAgICAg
IG9zLmNobW9kKGVkZ2Vkcml2ZXJfcGF0aCwgc3RhdC5TX0lSV1hVIHwgc3RhdC5TX0lSV1hHIHwg
c3RhdC5TX0lSV1hPKSAgIyAwNzc3CisgICAgICAgICAgICBwcmludCgiRGVsZXRlICVzIGZpbGUi
ICUgZWRnZWRyaXZlcl9wYXRoKQorICAgICAgICAgICAgb3MucmVtb3ZlKGVkZ2Vkcml2ZXJfcGF0
aCkKKyAgICAgICAgZHJpdmVyX25vdGVzX3BhdGggPSBvcy5wYXRoLmpvaW4oZGVzdCwgIkRyaXZl
cl9ub3RlcyIpCisgICAgICAgIGlmIG9zLnBhdGguaXNkaXIoZHJpdmVyX25vdGVzX3BhdGgpOgor
ICAgICAgICAgICAgcHJpbnQoIkRlbGV0ZSAlcyBmb2xkZXIiICUgZHJpdmVyX25vdGVzX3BhdGgp
CisgICAgICAgICAgICBzaHV0aWwucm10cmVlKGRyaXZlcl9ub3Rlc19wYXRoLCBpZ25vcmVfZXJy
b3JzPUZhbHNlLCBvbmVycm9yPWhhbmRsZV9yZW1vdmVfcmVhZG9ubHkpCisKKyAgICAgICAgc2Vs
Zi5sb2dnZXIuaW5mbygiRG93bmxvYWRpbmcgTVNFZGdlRHJpdmVyIGZyb20gJXMiICUgdXJsKQor
ICAgICAgICB1bnppcChnZXQodXJsKS5yYXcsIGRlc3QpCisgICAgICAgIGlmIG9zLnBhdGguaXNm
aWxlKGVkZ2Vkcml2ZXJfcGF0aCk6CisgICAgICAgICAgICBzZWxmLmxvZ2dlci5pbmZvKCJTdWNj
ZXNzZnVsbHkgZG93bmxvYWRlZCBNU0VkZ2VEcml2ZXIgdG8gJXMiICUgZWRnZWRyaXZlcl9wYXRo
KQorICAgICAgICByZXR1cm4gZmluZF9leGVjdXRhYmxlKHNlbGYuZWRnZWRyaXZlcl9uYW1lLCBk
ZXN0KQorCisgICAgZGVmIHZlcnNpb24oc2VsZiwgYmluYXJ5PU5vbmUsIHdlYmRyaXZlcl9iaW5h
cnk9Tm9uZSk6CisgICAgICAgIGlmIGJpbmFyeSBpcyBOb25lOgorICAgICAgICAgICAgYmluYXJ5
ID0gc2VsZi5maW5kX2JpbmFyeSgpCisgICAgICAgIGlmIHNlbGYucGxhdGZvcm0gIT0gIndpbiI6
CisgICAgICAgICAgICB0cnk6CisgICAgICAgICAgICAgICAgdmVyc2lvbl9zdHJpbmcgPSBjYWxs
KGJpbmFyeSwgIi0tdmVyc2lvbiIpLnN0cmlwKCkKKyAgICAgICAgICAgIGV4Y2VwdCBzdWJwcm9j
ZXNzLkNhbGxlZFByb2Nlc3NFcnJvcjoKKyAgICAgICAgICAgICAgICBzZWxmLmxvZ2dlci53YXJu
aW5nKCJGYWlsZWQgdG8gY2FsbCAlcyIgJSBiaW5hcnkpCisgICAgICAgICAgICAgICAgcmV0dXJu
IE5vbmUKKyAgICAgICAgICAgIG0gPSByZS5tYXRjaChyIk1pY3Jvc29mdCBFZGdlICguKikgIiwg
dmVyc2lvbl9zdHJpbmcpCisgICAgICAgICAgICBpZiBub3QgbToKKyAgICAgICAgICAgICAgICBz
ZWxmLmxvZ2dlci53YXJuaW5nKCJGYWlsZWQgdG8gZXh0cmFjdCB2ZXJzaW9uIGZyb206ICVzIiAl
IHZlcnNpb25fc3RyaW5nKQorICAgICAgICAgICAgICAgIHJldHVybiBOb25lCisgICAgICAgICAg
ICByZXR1cm4gbS5ncm91cCgxKQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgaWYgYmluYXJ5
IGlzIG5vdCBOb25lOgorICAgICAgICAgICAgICAgIHJldHVybiBfZ2V0X2ZpbGV2ZXJzaW9uKGJp
bmFyeSwgc2VsZi5sb2dnZXIpCisgICAgICAgICAgICBzZWxmLmxvZ2dlci53YXJuaW5nKCJGYWls
ZWQgdG8gZmluZCBFZGdlIGJpbmFyeS4iKQogICAgICAgICAgICAgcmV0dXJuIE5vbmUKLSAgICAg
ICAgcmV0dXJuIHJlLnNlYXJjaChyIlswLTlcLl0rKCBbYS16XSspPyQiLCBvdXRwdXQuc3RyaXAo
KSkuZ3JvdXAoMCkKIAogCiBjbGFzcyBFZGdlKEJyb3dzZXIpOgpAQCAtNDg3LDIwICs5NTksMzIg
QEAgY2xhc3MgRWRnZShCcm93c2VyKToKICAgICBwcm9kdWN0ID0gImVkZ2UiCiAgICAgcmVxdWly
ZW1lbnRzID0gInJlcXVpcmVtZW50c19lZGdlLnR4dCIKIAotICAgIGRlZiBpbnN0YWxsKHNlbGYs
IGRlc3Q9Tm9uZSk6CisgICAgZGVmIGRvd25sb2FkKHNlbGYsIGRlc3Q9Tm9uZSwgY2hhbm5lbD1O
b25lKToKICAgICAgICAgcmFpc2UgTm90SW1wbGVtZW50ZWRFcnJvcgogCi0gICAgZGVmIGZpbmRf
YmluYXJ5KHNlbGYpOgorICAgIGRlZiBpbnN0YWxsKHNlbGYsIGRlc3Q9Tm9uZSwgY2hhbm5lbD1O
b25lKToKICAgICAgICAgcmFpc2UgTm90SW1wbGVtZW50ZWRFcnJvcgogCi0gICAgZGVmIGZpbmRf
d2ViZHJpdmVyKHNlbGYpOgorICAgIGRlZiBmaW5kX2JpbmFyeShzZWxmLCB2ZW52X3BhdGg9Tm9u
ZSwgY2hhbm5lbD1Ob25lKToKKyAgICAgICAgcmFpc2UgTm90SW1wbGVtZW50ZWRFcnJvcgorCisg
ICAgZGVmIGZpbmRfd2ViZHJpdmVyKHNlbGYsIGNoYW5uZWw9Tm9uZSk6CiAgICAgICAgIHJldHVy
biBmaW5kX2V4ZWN1dGFibGUoIk1pY3Jvc29mdFdlYkRyaXZlciIpCiAKLSAgICBkZWYgaW5zdGFs
bF93ZWJkcml2ZXIoc2VsZiwgZGVzdD1Ob25lKToKKyAgICBkZWYgaW5zdGFsbF93ZWJkcml2ZXIo
c2VsZiwgZGVzdD1Ob25lLCBjaGFubmVsPU5vbmUsIGJyb3dzZXJfYmluYXJ5PU5vbmUpOgogICAg
ICAgICByYWlzZSBOb3RJbXBsZW1lbnRlZEVycm9yCiAKLSAgICBkZWYgdmVyc2lvbihzZWxmLCBi
aW5hcnkpOgotICAgICAgICByZXR1cm4gTm9uZQorICAgIGRlZiB2ZXJzaW9uKHNlbGYsIGJpbmFy
eT1Ob25lLCB3ZWJkcml2ZXJfYmluYXJ5PU5vbmUpOgorICAgICAgICBjb21tYW5kID0gIihHZXQt
QXBweFBhY2thZ2UgTWljcm9zb2Z0Lk1pY3Jvc29mdEVkZ2UpLlZlcnNpb24iCisgICAgICAgIHRy
eToKKyAgICAgICAgICAgIHJldHVybiBjYWxsKCJwb3dlcnNoZWxsLmV4ZSIsIGNvbW1hbmQpLnN0
cmlwKCkKKyAgICAgICAgZXhjZXB0IChzdWJwcm9jZXNzLkNhbGxlZFByb2Nlc3NFcnJvciwgT1NF
cnJvcik6CisgICAgICAgICAgICBzZWxmLmxvZ2dlci53YXJuaW5nKCJGYWlsZWQgdG8gY2FsbCAl
cyBpbiBQb3dlclNoZWxsIiAlIGNvbW1hbmQpCisgICAgICAgICAgICByZXR1cm4gTm9uZQorCisK
K2NsYXNzIEVkZ2VXZWJEcml2ZXIoRWRnZSk6CisgICAgcHJvZHVjdCA9ICJlZGdlX3dlYmRyaXZl
ciIKIAogCiBjbGFzcyBJbnRlcm5ldEV4cGxvcmVyKEJyb3dzZXIpOgpAQCAtNTA5LDE5ICs5OTMs
MjIgQEAgY2xhc3MgSW50ZXJuZXRFeHBsb3JlcihCcm93c2VyKToKICAgICBwcm9kdWN0ID0gImll
IgogICAgIHJlcXVpcmVtZW50cyA9ICJyZXF1aXJlbWVudHNfaWUudHh0IgogCi0gICAgZGVmIGlu
c3RhbGwoc2VsZiwgZGVzdD1Ob25lKToKKyAgICBkZWYgZG93bmxvYWQoc2VsZiwgZGVzdD1Ob25l
LCBjaGFubmVsPU5vbmUpOgorICAgICAgICByYWlzZSBOb3RJbXBsZW1lbnRlZEVycm9yCisKKyAg
ICBkZWYgaW5zdGFsbChzZWxmLCBkZXN0PU5vbmUsIGNoYW5uZWw9Tm9uZSk6CiAgICAgICAgIHJh
aXNlIE5vdEltcGxlbWVudGVkRXJyb3IKIAotICAgIGRlZiBmaW5kX2JpbmFyeShzZWxmKToKKyAg
ICBkZWYgZmluZF9iaW5hcnkoc2VsZiwgdmVudl9wYXRoPU5vbmUsIGNoYW5uZWw9Tm9uZSk6CiAg
ICAgICAgIHJhaXNlIE5vdEltcGxlbWVudGVkRXJyb3IKIAotICAgIGRlZiBmaW5kX3dlYmRyaXZl
cihzZWxmKToKKyAgICBkZWYgZmluZF93ZWJkcml2ZXIoc2VsZiwgY2hhbm5lbD1Ob25lKToKICAg
ICAgICAgcmV0dXJuIGZpbmRfZXhlY3V0YWJsZSgiSUVEcml2ZXJTZXJ2ZXIuZXhlIikKIAotICAg
IGRlZiBpbnN0YWxsX3dlYmRyaXZlcihzZWxmLCBkZXN0PU5vbmUpOgorICAgIGRlZiBpbnN0YWxs
X3dlYmRyaXZlcihzZWxmLCBkZXN0PU5vbmUsIGNoYW5uZWw9Tm9uZSwgYnJvd3Nlcl9iaW5hcnk9
Tm9uZSk6CiAgICAgICAgIHJhaXNlIE5vdEltcGxlbWVudGVkRXJyb3IKIAotICAgIGRlZiB2ZXJz
aW9uKHNlbGYsIGJpbmFyeSk6CisgICAgZGVmIHZlcnNpb24oc2VsZiwgYmluYXJ5PU5vbmUsIHdl
YmRyaXZlcl9iaW5hcnk9Tm9uZSk6CiAgICAgICAgIHJldHVybiBOb25lCiAKIApAQCAtNTM0LDIw
ICsxMDIxLDQyIEBAIGNsYXNzIFNhZmFyaShCcm93c2VyKToKICAgICBwcm9kdWN0ID0gInNhZmFy
aSIKICAgICByZXF1aXJlbWVudHMgPSAicmVxdWlyZW1lbnRzX3NhZmFyaS50eHQiCiAKLSAgICBk
ZWYgaW5zdGFsbChzZWxmLCBkZXN0PU5vbmUpOgorICAgIGRlZiBkb3dubG9hZChzZWxmLCBkZXN0
PU5vbmUsIGNoYW5uZWw9Tm9uZSk6CiAgICAgICAgIHJhaXNlIE5vdEltcGxlbWVudGVkRXJyb3IK
IAotICAgIGRlZiBmaW5kX2JpbmFyeShzZWxmKToKKyAgICBkZWYgaW5zdGFsbChzZWxmLCBkZXN0
PU5vbmUsIGNoYW5uZWw9Tm9uZSk6CiAgICAgICAgIHJhaXNlIE5vdEltcGxlbWVudGVkRXJyb3IK
IAotICAgIGRlZiBmaW5kX3dlYmRyaXZlcihzZWxmKToKLSAgICAgICAgcmV0dXJuIGZpbmRfZXhl
Y3V0YWJsZSgic2FmYXJpZHJpdmVyIikKKyAgICBkZWYgZmluZF9iaW5hcnkoc2VsZiwgdmVudl9w
YXRoPU5vbmUsIGNoYW5uZWw9Tm9uZSk6CisgICAgICAgIHJhaXNlIE5vdEltcGxlbWVudGVkRXJy
b3IKIAotICAgIGRlZiBpbnN0YWxsX3dlYmRyaXZlcihzZWxmKToKKyAgICBkZWYgZmluZF93ZWJk
cml2ZXIoc2VsZiwgY2hhbm5lbD1Ob25lKToKKyAgICAgICAgcGF0aCA9IE5vbmUKKyAgICAgICAg
aWYgY2hhbm5lbCA9PSAicHJldmlldyI6CisgICAgICAgICAgICBwYXRoID0gIi9BcHBsaWNhdGlv
bnMvU2FmYXJpIFRlY2hub2xvZ3kgUHJldmlldy5hcHAvQ29udGVudHMvTWFjT1MiCisgICAgICAg
IHJldHVybiBmaW5kX2V4ZWN1dGFibGUoInNhZmFyaWRyaXZlciIsIHBhdGgpCisKKyAgICBkZWYg
aW5zdGFsbF93ZWJkcml2ZXIoc2VsZiwgZGVzdD1Ob25lLCBjaGFubmVsPU5vbmUsIGJyb3dzZXJf
YmluYXJ5PU5vbmUpOgogICAgICAgICByYWlzZSBOb3RJbXBsZW1lbnRlZEVycm9yCiAKLSAgICBk
ZWYgdmVyc2lvbihzZWxmLCBiaW5hcnkpOgotICAgICAgICByZXR1cm4gTm9uZQorICAgIGRlZiB2
ZXJzaW9uKHNlbGYsIGJpbmFyeT1Ob25lLCB3ZWJkcml2ZXJfYmluYXJ5PU5vbmUpOgorICAgICAg
ICBpZiB3ZWJkcml2ZXJfYmluYXJ5IGlzIE5vbmU6CisgICAgICAgICAgICBzZWxmLmxvZ2dlci53
YXJuaW5nKCJDYW5ub3QgZmluZCBTYWZhcmkgdmVyc2lvbiB3aXRob3V0IHNhZmFyaWRyaXZlciIp
CisgICAgICAgICAgICByZXR1cm4gTm9uZQorICAgICAgICAjIFVzZSBgc2FmYXJpZHJpdmVyIC0t
dmVyc2lvbmAgdG8gZ2V0IHRoZSB2ZXJzaW9uLiBFeGFtcGxlIG91dHB1dDoKKyAgICAgICAgIyAi
SW5jbHVkZWQgd2l0aCBTYWZhcmkgMTIuMSAoMTQ2MDcuMS4xMSkiCisgICAgICAgICMgIkluY2x1
ZGVkIHdpdGggU2FmYXJpIFRlY2hub2xvZ3kgUHJldmlldyAoUmVsZWFzZSA2NywgMTM2MDcuMS45
LjAuMSkiCisgICAgICAgICMgVGhlIGAtLXZlcnNpb25gIGZsYWcgd2FzIGFkZGVkIGluIFNUUCA2
Nywgc28gYWxsb3cgdGhlIGNhbGwgdG8gZmFpbC4KKyAgICAgICAgdHJ5OgorICAgICAgICAgICAg
dmVyc2lvbl9zdHJpbmcgPSBjYWxsKHdlYmRyaXZlcl9iaW5hcnksICItLXZlcnNpb24iKS5zdHJp
cCgpCisgICAgICAgIGV4Y2VwdCBzdWJwcm9jZXNzLkNhbGxlZFByb2Nlc3NFcnJvcjoKKyAgICAg
ICAgICAgIHNlbGYubG9nZ2VyLndhcm5pbmcoIkZhaWxlZCB0byBjYWxsICVzIC0tdmVyc2lvbiIg
JSB3ZWJkcml2ZXJfYmluYXJ5KQorICAgICAgICAgICAgcmV0dXJuIE5vbmUKKyAgICAgICAgbSA9
IHJlLm1hdGNoKHIiSW5jbHVkZWQgd2l0aCBTYWZhcmkgKC4qKSIsIHZlcnNpb25fc3RyaW5nKQor
ICAgICAgICBpZiBub3QgbToKKyAgICAgICAgICAgIHNlbGYubG9nZ2VyLndhcm5pbmcoIkZhaWxl
ZCB0byBleHRyYWN0IHZlcnNpb24gZnJvbTogJXMiICUgdmVyc2lvbl9zdHJpbmcpCisgICAgICAg
ICAgICByZXR1cm4gTm9uZQorICAgICAgICByZXR1cm4gbS5ncm91cCgxKQogCiAKIGNsYXNzIFNl
cnZvKEJyb3dzZXIpOgpAQCAtNTc0LDMzICsxMDgzLDYwIEBAIGNsYXNzIFNlcnZvKEJyb3dzZXIp
OgogCiAgICAgICAgIHJldHVybiAocGxhdGZvcm0sIGV4dGVuc2lvbiwgZGVjb21wcmVzcykKIAot
ICAgIGRlZiBpbnN0YWxsKHNlbGYsIGRlc3Q9Tm9uZSk6CisgICAgZGVmIF9nZXQoc2VsZiwgY2hh
bm5lbD0ibmlnaHRseSIpOgorICAgICAgICBpZiBjaGFubmVsICE9ICJuaWdodGx5IjoKKyAgICAg
ICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoIk9ubHkgbmlnaHRseSB2ZXJzaW9ucyBvZiBTZXJ2byBh
cmUgYXZhaWxhYmxlIikKKworICAgICAgICBwbGF0Zm9ybSwgZXh0ZW5zaW9uLCBfID0gc2VsZi5w
bGF0Zm9ybV9jb21wb25lbnRzKCkKKyAgICAgICAgdXJsID0gImh0dHBzOi8vZG93bmxvYWQuc2Vy
dm8ub3JnL25pZ2h0bHkvJXMvc2Vydm8tbGF0ZXN0JXMiICUgKHBsYXRmb3JtLCBleHRlbnNpb24p
CisgICAgICAgIHJldHVybiBnZXQodXJsKQorCisgICAgZGVmIGRvd25sb2FkKHNlbGYsIGRlc3Q9
Tm9uZSwgY2hhbm5lbD0ibmlnaHRseSIpOgorICAgICAgICBpZiBkZXN0IGlzIE5vbmU6CisgICAg
ICAgICAgICBkZXN0ID0gb3MucHdkCisKKyAgICAgICAgcmVzcCA9IHNlbGYuX2dldChkZXN0LCBj
aGFubmVsKQorICAgICAgICBfLCBleHRlbnNpb24sIF8gPSBzZWxmLnBsYXRmb3JtX2NvbXBvbmVu
dHMoKQorCisgICAgICAgIHdpdGggb3Blbihvcy5wYXRoLmpvaW4oZGVzdCwgInNlcnZvLWxhdGVz
dCVzIiAlIChleHRlbnNpb24sKSksICJ3IikgYXMgZjoKKyAgICAgICAgICAgIGYud3JpdGUocmVz
cC5jb250ZW50KQorCisgICAgZGVmIGluc3RhbGwoc2VsZiwgZGVzdD1Ob25lLCBjaGFubmVsPSJu
aWdodGx5Iik6CiAgICAgICAgICIiIkluc3RhbGwgbGF0ZXN0IEJyb3dzZXIgRW5naW5lLiIiIgog
ICAgICAgICBpZiBkZXN0IGlzIE5vbmU6CiAgICAgICAgICAgICBkZXN0ID0gb3MucHdkCiAKLSAg
ICAgICAgcGxhdGZvcm0sIGV4dGVuc2lvbiwgZGVjb21wcmVzcyA9IHNlbGYucGxhdGZvcm1fY29t
cG9uZW50cygpCi0gICAgICAgIHVybCA9ICJodHRwczovL2Rvd25sb2FkLnNlcnZvLm9yZy9uaWdo
dGx5LyVzL3NlcnZvLWxhdGVzdCVzIiAlIChwbGF0Zm9ybSwgZXh0ZW5zaW9uKQorICAgICAgICBf
LCBfLCBkZWNvbXByZXNzID0gc2VsZi5wbGF0Zm9ybV9jb21wb25lbnRzKCkKIAotICAgICAgICBk
ZWNvbXByZXNzKGdldCh1cmwpLnJhdywgZGVzdD1kZXN0KQorICAgICAgICByZXNwID0gc2VsZi5f
Z2V0KGRlc3QsIGNoYW5uZWwpCisgICAgICAgIGRlY29tcHJlc3MocmVzcC5yYXcsIGRlc3Q9ZGVz
dCkKICAgICAgICAgcGF0aCA9IGZpbmRfZXhlY3V0YWJsZSgic2Vydm8iLCBvcy5wYXRoLmpvaW4o
ZGVzdCwgInNlcnZvIikpCiAgICAgICAgIHN0ID0gb3Muc3RhdChwYXRoKQogICAgICAgICBvcy5j
aG1vZChwYXRoLCBzdC5zdF9tb2RlIHwgc3RhdC5TX0lFWEVDKQogICAgICAgICByZXR1cm4gcGF0
aAogCi0gICAgZGVmIGZpbmRfYmluYXJ5KHNlbGYpOgotICAgICAgICByZXR1cm4gZmluZF9leGVj
dXRhYmxlKCJzZXJ2byIpCisgICAgZGVmIGZpbmRfYmluYXJ5KHNlbGYsIHZlbnZfcGF0aD1Ob25l
LCBjaGFubmVsPU5vbmUpOgorICAgICAgICBwYXRoID0gZmluZF9leGVjdXRhYmxlKCJzZXJ2byIs
IG9zLnBhdGguam9pbih2ZW52X3BhdGgsICJzZXJ2byIpKQorICAgICAgICBpZiBwYXRoIGlzIE5v
bmU6CisgICAgICAgICAgICBwYXRoID0gZmluZF9leGVjdXRhYmxlKCJzZXJ2byIpCisgICAgICAg
IHJldHVybiBwYXRoCiAKLSAgICBkZWYgZmluZF93ZWJkcml2ZXIoc2VsZik6CisgICAgZGVmIGZp
bmRfd2ViZHJpdmVyKHNlbGYsIGNoYW5uZWw9Tm9uZSk6CiAgICAgICAgIHJldHVybiBOb25lCiAK
LSAgICBkZWYgaW5zdGFsbF93ZWJkcml2ZXIoc2VsZiwgZGVzdD1Ob25lKToKKyAgICBkZWYgaW5z
dGFsbF93ZWJkcml2ZXIoc2VsZiwgZGVzdD1Ob25lLCBjaGFubmVsPU5vbmUsIGJyb3dzZXJfYmlu
YXJ5PU5vbmUpOgogICAgICAgICByYWlzZSBOb3RJbXBsZW1lbnRlZEVycm9yCiAKLSAgICBkZWYg
dmVyc2lvbihzZWxmLCBiaW5hcnkpOgorICAgIGRlZiB2ZXJzaW9uKHNlbGYsIGJpbmFyeT1Ob25l
LCB3ZWJkcml2ZXJfYmluYXJ5PU5vbmUpOgogICAgICAgICAiIiJSZXRyaWV2ZSB0aGUgcmVsZWFz
ZSB2ZXJzaW9uIG9mIHRoZSBpbnN0YWxsZWQgYnJvd3Nlci4iIiIKICAgICAgICAgb3V0cHV0ID0g
Y2FsbChiaW5hcnksICItLXZlcnNpb24iKQotICAgICAgICByZXR1cm4gcmUuc2VhcmNoKHIiWzAt
OVwuXSsoIFthLXpdKyk/JCIsIG91dHB1dC5zdHJpcCgpKS5ncm91cCgwKQorICAgICAgICBtID0g
cmUuc2VhcmNoKHIiU2Vydm8gKFswLTlcLl0rLVthLWYwLTldKyk/KC1kaXJ0eSk/JCIsIG91dHB1
dC5zdHJpcCgpKQorICAgICAgICBpZiBtOgorICAgICAgICAgICAgcmV0dXJuIG0uZ3JvdXAoMCkK
KworCitjbGFzcyBTZXJ2b1dlYkRyaXZlcihTZXJ2byk6CisgICAgcHJvZHVjdCA9ICJzZXJ2b2Ry
aXZlciIKIAogCiBjbGFzcyBTYXVjZShCcm93c2VyKToKQEAgLTYwOSwxOSArMTE0NSwyMiBAQCBj
bGFzcyBTYXVjZShCcm93c2VyKToKICAgICBwcm9kdWN0ID0gInNhdWNlIgogICAgIHJlcXVpcmVt
ZW50cyA9ICJyZXF1aXJlbWVudHNfc2F1Y2UudHh0IgogCi0gICAgZGVmIGluc3RhbGwoc2VsZiwg
ZGVzdD1Ob25lKToKKyAgICBkZWYgZG93bmxvYWQoc2VsZiwgZGVzdD1Ob25lLCBjaGFubmVsPU5v
bmUpOgorICAgICAgICByYWlzZSBOb3RJbXBsZW1lbnRlZEVycm9yCisKKyAgICBkZWYgaW5zdGFs
bChzZWxmLCBkZXN0PU5vbmUsIGNoYW5uZWw9Tm9uZSk6CiAgICAgICAgIHJhaXNlIE5vdEltcGxl
bWVudGVkRXJyb3IKIAotICAgIGRlZiBmaW5kX2JpbmFyeShzZWxmKToKKyAgICBkZWYgZmluZF9i
aW5hcnkoc2VsZiwgdmVuZXZfcGF0aD1Ob25lLCBjaGFubmVsPU5vbmUpOgogICAgICAgICByYWlz
ZSBOb3RJbXBsZW1lbnRlZEVycm9yCiAKLSAgICBkZWYgZmluZF93ZWJkcml2ZXIoc2VsZik6Cisg
ICAgZGVmIGZpbmRfd2ViZHJpdmVyKHNlbGYsIGNoYW5uZWw9Tm9uZSk6CiAgICAgICAgIHJhaXNl
IE5vdEltcGxlbWVudGVkRXJyb3IKIAotICAgIGRlZiBpbnN0YWxsX3dlYmRyaXZlcihzZWxmLCBk
ZXN0PU5vbmUpOgorICAgIGRlZiBpbnN0YWxsX3dlYmRyaXZlcihzZWxmLCBkZXN0PU5vbmUsIGNo
YW5uZWw9Tm9uZSwgYnJvd3Nlcl9iaW5hcnk9Tm9uZSk6CiAgICAgICAgIHJhaXNlIE5vdEltcGxl
bWVudGVkRXJyb3IKIAotICAgIGRlZiB2ZXJzaW9uKHNlbGYsIGJpbmFyeSk6CisgICAgZGVmIHZl
cnNpb24oc2VsZiwgYmluYXJ5PU5vbmUsIHdlYmRyaXZlcl9iaW5hcnk9Tm9uZSk6CiAgICAgICAg
IHJldHVybiBOb25lCiAKIApAQCAtNjMxLDE3ICsxMTcwLDkzIEBAIGNsYXNzIFdlYktpdChCcm93
c2VyKToKICAgICBwcm9kdWN0ID0gIndlYmtpdCIKICAgICByZXF1aXJlbWVudHMgPSAicmVxdWly
ZW1lbnRzX3dlYmtpdC50eHQiCiAKLSAgICBkZWYgaW5zdGFsbChzZWxmLCBkZXN0PU5vbmUpOgor
ICAgIGRlZiBkb3dubG9hZChzZWxmLCBkZXN0PU5vbmUsIGNoYW5uZWw9Tm9uZSk6CiAgICAgICAg
IHJhaXNlIE5vdEltcGxlbWVudGVkRXJyb3IKIAotICAgIGRlZiBmaW5kX2JpbmFyeShzZWxmLCBw
YXRoPU5vbmUpOgorICAgIGRlZiBpbnN0YWxsKHNlbGYsIGRlc3Q9Tm9uZSwgY2hhbm5lbD1Ob25l
KToKKyAgICAgICAgcmFpc2UgTm90SW1wbGVtZW50ZWRFcnJvcgorCisgICAgZGVmIGZpbmRfYmlu
YXJ5KHNlbGYsIHZlbnZfcGF0aD1Ob25lLCBjaGFubmVsPU5vbmUpOgogICAgICAgICByZXR1cm4g
Tm9uZQogCi0gICAgZGVmIGZpbmRfd2ViZHJpdmVyKHNlbGYpOgorICAgIGRlZiBmaW5kX3dlYmRy
aXZlcihzZWxmLCBjaGFubmVsPU5vbmUpOgogICAgICAgICByZXR1cm4gTm9uZQogCi0gICAgZGVm
IGluc3RhbGxfd2ViZHJpdmVyKHNlbGYpOgorICAgIGRlZiBpbnN0YWxsX3dlYmRyaXZlcihzZWxm
LCBkZXN0PU5vbmUsIGNoYW5uZWw9Tm9uZSwgYnJvd3Nlcl9iaW5hcnk9Tm9uZSk6CiAgICAgICAg
IHJhaXNlIE5vdEltcGxlbWVudGVkRXJyb3IKIAotICAgIGRlZiB2ZXJzaW9uKHNlbGYsIGJpbmFy
eSk6CisgICAgZGVmIHZlcnNpb24oc2VsZiwgYmluYXJ5PU5vbmUsIHdlYmRyaXZlcl9iaW5hcnk9
Tm9uZSk6CisgICAgICAgIHJldHVybiBOb25lCisKKworY2xhc3MgV2ViS2l0R1RLTWluaUJyb3dz
ZXIoV2ViS2l0KToKKworICAgIGRlZiBmaW5kX2JpbmFyeShzZWxmLCB2ZW52X3BhdGg9Tm9uZSwg
Y2hhbm5lbD1Ob25lKToKKyAgICAgICAgbGliZXhlY3BhdGhzID0gWyIvdXNyL2xpYmV4ZWMvd2Vi
a2l0Mmd0ay00LjAiXSAgIyBGZWRvcmEgcGF0aAorICAgICAgICB0cmlwbGV0ID0gIng4Nl82NC1s
aW51eC1nbnUiCisgICAgICAgICMgVHJ5IHRvIHVzZSBHQ0MgdG8gZGV0ZWN0IHRoaXMgbWFjaGlu
ZSB0cmlwbGV0CisgICAgICAgIGdjYyA9IGZpbmRfZXhlY3V0YWJsZSgiZ2NjIikKKyAgICAgICAg
aWYgZ2NjOgorICAgICAgICAgICAgdHJ5OgorICAgICAgICAgICAgICAgIHRyaXBsZXQgPSBjYWxs
KGdjYywgIi1kdW1wbWFjaGluZSIpLnN0cmlwKCkKKyAgICAgICAgICAgIGV4Y2VwdCBzdWJwcm9j
ZXNzLkNhbGxlZFByb2Nlc3NFcnJvcjoKKyAgICAgICAgICAgICAgICBwYXNzCisgICAgICAgICMg
QWRkIERlYmlhbi9VYnVudHUgcGF0aAorICAgICAgICBsaWJleGVjcGF0aHMuYXBwZW5kKCIvdXNy
L2xpYi8lcy93ZWJraXQyZ3RrLTQuMCIgJSB0cmlwbGV0KQorICAgICAgICBpZiBjaGFubmVsID09
ICJuaWdodGx5IjoKKyAgICAgICAgICAgIGxpYmV4ZWNwYXRocy5hcHBlbmQoIi9vcHQvd2Via2l0
Z3RrL25pZ2h0bHkiKQorICAgICAgICByZXR1cm4gZmluZF9leGVjdXRhYmxlKCJNaW5pQnJvd3Nl
ciIsIG9zLnBhdGhzZXAuam9pbihsaWJleGVjcGF0aHMpKQorCisgICAgZGVmIGZpbmRfd2ViZHJp
dmVyKHNlbGYsIGNoYW5uZWw9Tm9uZSk6CisgICAgICAgIHBhdGggPSBvcy5lbnZpcm9uWydQQVRI
J10KKyAgICAgICAgaWYgY2hhbm5lbCA9PSAibmlnaHRseSI6CisgICAgICAgICAgICBwYXRoID0g
IiVzOiVzIiAlIChwYXRoLCAiL29wdC93ZWJraXRndGsvbmlnaHRseSIpCisgICAgICAgIHJldHVy
biBmaW5kX2V4ZWN1dGFibGUoIldlYktpdFdlYkRyaXZlciIsIHBhdGgpCisKKyAgICBkZWYgdmVy
c2lvbihzZWxmLCBiaW5hcnk9Tm9uZSwgd2ViZHJpdmVyX2JpbmFyeT1Ob25lKToKKyAgICAgICAg
aWYgYmluYXJ5IGlzIE5vbmU6CisgICAgICAgICAgICByZXR1cm4gTm9uZQorICAgICAgICB0cnk6
ICAjIFdlYktpdEdUSyBNaW5pQnJvd3NlciBiZWZvcmUgMi4yNi4wIGRvZXNuJ3Qgc3VwcG9ydCAt
LXZlcnNpb24KKyAgICAgICAgICAgIG91dHB1dCA9IGNhbGwoYmluYXJ5LCAiLS12ZXJzaW9uIiku
c3RyaXAoKQorICAgICAgICBleGNlcHQgc3VicHJvY2Vzcy5DYWxsZWRQcm9jZXNzRXJyb3I6Cisg
ICAgICAgICAgICByZXR1cm4gTm9uZQorICAgICAgICAjIEV4YW1wbGUgb3V0cHV0OiAiV2ViS2l0
R1RLIDIuMjYuMSIKKyAgICAgICAgaWYgb3V0cHV0OgorICAgICAgICAgICAgbSA9IHJlLm1hdGNo
KHIiV2ViS2l0R1RLICguKykiLCBvdXRwdXQpCisgICAgICAgICAgICBpZiBub3QgbToKKyAgICAg
ICAgICAgICAgICBzZWxmLmxvZ2dlci53YXJuaW5nKCJGYWlsZWQgdG8gZXh0cmFjdCB2ZXJzaW9u
IGZyb206ICVzIiAlIG91dHB1dCkKKyAgICAgICAgICAgICAgICByZXR1cm4gTm9uZQorICAgICAg
ICAgICAgcmV0dXJuIG0uZ3JvdXAoMSkKKyAgICAgICAgcmV0dXJuIE5vbmUKKworCitjbGFzcyBF
cGlwaGFueShCcm93c2VyKToKKyAgICAiIiJFcGlwaGFueS1zcGVjaWZpYyBpbnRlcmZhY2UuIiIi
CisKKyAgICBwcm9kdWN0ID0gImVwaXBoYW55IgorICAgIHJlcXVpcmVtZW50cyA9ICJyZXF1aXJl
bWVudHNfZXBpcGhhbnkudHh0IgorCisgICAgZGVmIGRvd25sb2FkKHNlbGYsIGRlc3Q9Tm9uZSwg
Y2hhbm5lbD1Ob25lKToKKyAgICAgICAgcmFpc2UgTm90SW1wbGVtZW50ZWRFcnJvcgorCisgICAg
ZGVmIGluc3RhbGwoc2VsZiwgZGVzdD1Ob25lLCBjaGFubmVsPU5vbmUpOgorICAgICAgICByYWlz
ZSBOb3RJbXBsZW1lbnRlZEVycm9yCisKKyAgICBkZWYgZmluZF9iaW5hcnkoc2VsZiwgdmVudl9w
YXRoPU5vbmUsIGNoYW5uZWw9Tm9uZSk6CisgICAgICAgIHJldHVybiBmaW5kX2V4ZWN1dGFibGUo
ImVwaXBoYW55IikKKworICAgIGRlZiBmaW5kX3dlYmRyaXZlcihzZWxmLCBjaGFubmVsPU5vbmUp
OgorICAgICAgICByZXR1cm4gZmluZF9leGVjdXRhYmxlKCJXZWJLaXRXZWJEcml2ZXIiKQorCisg
ICAgZGVmIGluc3RhbGxfd2ViZHJpdmVyKHNlbGYsIGRlc3Q9Tm9uZSwgY2hhbm5lbD1Ob25lLCBi
cm93c2VyX2JpbmFyeT1Ob25lKToKKyAgICAgICAgcmFpc2UgTm90SW1wbGVtZW50ZWRFcnJvcgor
CisgICAgZGVmIHZlcnNpb24oc2VsZiwgYmluYXJ5PU5vbmUsIHdlYmRyaXZlcl9iaW5hcnk9Tm9u
ZSk6CisgICAgICAgIGlmIGJpbmFyeSBpcyBOb25lOgorICAgICAgICAgICAgcmV0dXJuIE5vbmUK
KyAgICAgICAgb3V0cHV0ID0gY2FsbChiaW5hcnksICItLXZlcnNpb24iKQorICAgICAgICBpZiBv
dXRwdXQ6CisgICAgICAgICAgICAjIFN0YWJsZSByZWxlYXNlIG91dHB1dCBsb29rcyBsaWtlOiAi
V2ViIDMuMzAuMiIKKyAgICAgICAgICAgICMgVGVjaCBQcmV2aWV3IG91dHB1dCBsb29rcyBsaWtl
ICJXZWIgMy4zMS4zLTg4LWc5N2RiNGY0MGYiCisgICAgICAgICAgICByZXR1cm4gb3V0cHV0LnNw
bGl0KClbMV0KICAgICAgICAgcmV0dXJuIE5vbmUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0L2NvbW1hbmRzLmpzb24gYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdC9jb21t
YW5kcy5qc29uCmluZGV4IDBlYTZiMjUyNzZmZjQ4MTM0MGI1NGI0YzcyMzQwYTM3OTA0MDM4Mzcu
LjYwZmUxNjIxYWYwZGVjZDBmYWE0MzRmMjZkY2JhOTk1MTU0MTczZTcgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0L2NvbW1h
bmRzLmpzb24KKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy93cHQvY29tbWFuZHMuanNvbgpAQCAtMSwxNSArMSw5MyBAQAogewotICAgICJydW4i
OiB7InBhdGgiOiAicnVuLnB5IiwgInNjcmlwdCI6ICJydW4iLCAicGFyc2VyIjogImNyZWF0ZV9w
YXJzZXIiLCAiaGVscCI6ICJSdW4gdGVzdHMgaW4gYSBicm93c2VyIiwKLSAgICAgICAgICAgICJ2
aXJ0dWFsZW52IjogdHJ1ZSwgImluc3RhbGwiOiBbInJlcXVlc3RzIl0sICJyZXF1aXJlbWVudHMi
OiBbIi4uL3dwdHJ1bm5lci9yZXF1aXJlbWVudHMudHh0Il19LAotICAgICJ1cGRhdGUtZXhwZWN0
YXRpb25zIjogeyJwYXRoIjogInVwZGF0ZS5weSIsICJzY3JpcHQiOiAidXBkYXRlX2V4cGVjdGF0
aW9ucyIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgInBhcnNlciI6ICJjcmVhdGVfcGFy
c2VyX3VwZGF0ZSIsICJoZWxwIjogIlVwZGF0ZSBleHBlY3RhdGlvbnMgZmlsZXMgZnJvbSByYXcg
bG9ncy4iLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ2aXJ0dWFsZW52IjogdHJ1ZSwg
Imluc3RhbGwiOiBbInJlcXVlc3RzIl0sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgInJl
cXVpcmVtZW50cyI6IFsiLi4vd3B0cnVubmVyL3JlcXVpcmVtZW50cy50eHQiXX0sCi0gICAgImZp
bGVzLWNoYW5nZWQiOiB7InBhdGgiOiAidGVzdGZpbGVzLnB5IiwgInNjcmlwdCI6ICJydW5fY2hh
bmdlZF9maWxlcyIsICJwYXJzZXIiOiAiZ2V0X3BhcnNlciIsCi0gICAgICAgICAgICAgICAgICAg
ICAgImhlbHAiOiAiR2V0IGEgbGlzdCBvZiBmaWxlcyB0aGF0IGhhdmUgY2hhbmdlZCIsICJ2aXJ0
dWFsZW52IjogZmFsc2V9LAotICAgICJ0ZXN0cy1hZmZlY3RlZCI6IHsicGF0aCI6ICJ0ZXN0Zmls
ZXMucHkiLCAic2NyaXB0IjogInJ1bl90ZXN0c19hZmZlY3RlZCIsICJwYXJzZXIiOiAiZ2V0X3Bh
cnNlcl9hZmZlY3RlZCIsCi0gICAgICAgICAgICAgICAgICAgICAgICJoZWxwIjogIkdldCBhIGxp
c3Qgb2YgdGVzdHMgYWZmZWN0ZWQgYnkgY2hhbmdlcyIsICJ2aXJ0dWFsZW52IjogZmFsc2V9LAot
ICAgICJpbnN0YWxsIjogeyJwYXRoIjogImluc3RhbGwucHkiLCAic2NyaXB0IjogInJ1biIsICJw
YXJzZXIiOiAiZ2V0X3BhcnNlciIsICJoZWxwIjogIkluc3RhbGwgYnJvd3NlciBjb21wb25lbnRz
IiwKLSAgICAgICAgICAgICAgICAiaW5zdGFsbCI6IFsibW96ZG93bmxvYWQiLCAibW96aW5zdGFs
bCJdfSwKLSAgICAiYnJhbmNoLXBvaW50IjogeyJwYXRoIjogInRlc3RmaWxlcy5weSIsICJzY3Jp
cHQiOiAiZGlzcGxheV9icmFuY2hfcG9pbnQiLCAicGFyc2VyIjogbnVsbCwgImhlbHAiOiAiUHJp
bnQgYnJhbmNoIHBvaW50IGZyb20gbWFzdGVyIiwgInZpcnR1YWxlbnYiOiBmYWxzZX0KKyAgInJ1
biI6IHsKKyAgICAicGF0aCI6ICJydW4ucHkiLAorICAgICJzY3JpcHQiOiAicnVuIiwKKyAgICAi
cGFyc2VyIjogImNyZWF0ZV9wYXJzZXIiLAorICAgICJoZWxwIjogIlJ1biB0ZXN0cyBpbiBhIGJy
b3dzZXIiLAorICAgICJ2aXJ0dWFsZW52IjogdHJ1ZSwKKyAgICAiaW5zdGFsbCI6IFsKKyAgICAg
ICJyZXF1ZXN0cyIsCisgICAgICAienN0YW5kYXJkIgorICAgIF0sCisgICAgInJlcXVpcmVtZW50
cyI6IFsKKyAgICAgICIuLi93cHRydW5uZXIvcmVxdWlyZW1lbnRzLnR4dCIKKyAgICBdCisgIH0s
CisgICJjcmVhdGUiOiB7CisgICAgInBhdGgiOiAiY3JlYXRlLnB5IiwKKyAgICAic2NyaXB0Ijog
InJ1biIsCisgICAgInBhcnNlciI6ICJnZXRfcGFyc2VyIiwKKyAgICAiaGVscCI6ICJDcmVhdGUg
YSBuZXcgd3B0IHRlc3QiCisgIH0sCisgICJ1cGRhdGUtZXhwZWN0YXRpb25zIjogeworICAgICJw
YXRoIjogInVwZGF0ZS5weSIsCisgICAgInNjcmlwdCI6ICJ1cGRhdGVfZXhwZWN0YXRpb25zIiwK
KyAgICAicGFyc2VyIjogImNyZWF0ZV9wYXJzZXJfdXBkYXRlIiwKKyAgICAiaGVscCI6ICJVcGRh
dGUgZXhwZWN0YXRpb25zIGZpbGVzIGZyb20gcmF3IGxvZ3MuIiwKKyAgICAidmlydHVhbGVudiI6
IHRydWUsCisgICAgImluc3RhbGwiOiBbCisgICAgICAicmVxdWVzdHMiCisgICAgXSwKKyAgICAi
cmVxdWlyZW1lbnRzIjogWworICAgICAgIi4uL3dwdHJ1bm5lci9yZXF1aXJlbWVudHMudHh0Igor
ICAgIF0KKyAgfSwKKyAgImZpbGVzLWNoYW5nZWQiOiB7CisgICAgInBhdGgiOiAidGVzdGZpbGVz
LnB5IiwKKyAgICAic2NyaXB0IjogInJ1bl9jaGFuZ2VkX2ZpbGVzIiwKKyAgICAicGFyc2VyIjog
ImdldF9wYXJzZXIiLAorICAgICJoZWxwIjogIkdldCBhIGxpc3Qgb2YgZmlsZXMgdGhhdCBoYXZl
IGNoYW5nZWQiLAorICAgICJ2aXJ0dWFsZW52IjogZmFsc2UKKyAgfSwKKyAgInRlc3RzLWFmZmVj
dGVkIjogeworICAgICJwYXRoIjogInRlc3RmaWxlcy5weSIsCisgICAgInNjcmlwdCI6ICJydW5f
dGVzdHNfYWZmZWN0ZWQiLAorICAgICJwYXJzZXIiOiAiZ2V0X3BhcnNlcl9hZmZlY3RlZCIsCisg
ICAgImhlbHAiOiAiR2V0IGEgbGlzdCBvZiB0ZXN0cyBhZmZlY3RlZCBieSBjaGFuZ2VzIiwKKyAg
ICAidmlydHVhbGVudiI6IGZhbHNlCisgIH0sCisgICJpbnN0YWxsIjogeworICAgICJwYXRoIjog
Imluc3RhbGwucHkiLAorICAgICJzY3JpcHQiOiAicnVuIiwKKyAgICAicGFyc2VyIjogImdldF9w
YXJzZXIiLAorICAgICJoZWxwIjogIkluc3RhbGwgYnJvd3NlciBjb21wb25lbnRzIiwKKyAgICAi
aW5zdGFsbCI6IFsKKyAgICAgICJtb3pkb3dubG9hZCIsCisgICAgICAibW96aW5zdGFsbCIKKyAg
ICBdCisgIH0sCisgICJicmFuY2gtcG9pbnQiOiB7CisgICAgInBhdGgiOiAidGVzdGZpbGVzLnB5
IiwKKyAgICAic2NyaXB0IjogImRpc3BsYXlfYnJhbmNoX3BvaW50IiwKKyAgICAicGFyc2VyIjog
bnVsbCwKKyAgICAiaGVscCI6ICJQcmludCBicmFuY2ggcG9pbnQgZnJvbSBtYXN0ZXIiLAorICAg
ICJ2aXJ0dWFsZW52IjogZmFsc2UKKyAgfSwKKyAgInJldi1saXN0IjogeworICAgICJwYXRoIjog
InJldmxpc3QucHkiLAorICAgICJzY3JpcHQiOiAicnVuX3Jldl9saXN0IiwKKyAgICAicGFyc2Vy
IjogImdldF9wYXJzZXIiLAorICAgICJoZWxwIjogIkxpc3QgdGFnZ2VkIHJldmlzaW9ucyBhdCBy
ZWd1bGFyIGludGVydmFscyIsCisgICAgInZpcnR1YWxlbnYiOiBmYWxzZQorICB9LAorICAiaW5z
dGFsbC1hbmRyb2lkLWVtdWxhdG9yIjogeworICAgICJwYXRoIjogImFuZHJvaWQucHkiLAorICAg
ICJzY3JpcHQiOiAicnVuX2luc3RhbGwiLAorICAgICJwYXJzZXIiOiAiZ2V0X3BhcnNlcl9pbnN0
YWxsIiwKKyAgICAiaGVscCI6ICJTZXR1cCB0aGUgeDg2IGFuZHJvaWQgZW11bGF0b3IiLAorICAg
ICJ2aXJ0dWFsZW52IjogdHJ1ZSwKKyAgICAiaW5zdGFsbCI6IFsKKyAgICAgICJyZXF1ZXN0cyIK
KyAgICBdCisgIH0sCisgICJzdGFydC1hbmRyb2lkLWVtdWxhdG9yIjogeworICAgICJwYXRoIjog
ImFuZHJvaWQucHkiLAorICAgICJzY3JpcHQiOiAicnVuX3N0YXJ0IiwKKyAgICAicGFyc2VyIjog
ImdldF9wYXJzZXJfc3RhcnQiLAorICAgICJoZWxwIjogIlN0YXJ0IHRoZSB4ODYgYW5kcm9pZCBl
bXVsYXRvciIsCisgICAgInZpcnR1YWxlbnYiOiB0cnVlLAorICAgICJpbnN0YWxsIjogWworICAg
ICAgInJlcXVlc3RzIgorICAgIF0KKyAgfQogfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHQvY3JlYXRlLnB5IGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHQvY3JlYXRlLnB5
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjY5NjYwOWE2OGNlMjhjMzc1NTYyMGQwMjU1ZmNjYmM0NzQ4MWI2ODYKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3dwdC9jcmVhdGUucHkKQEAgLTAsMCArMSwxMzEgQEAKK2ltcG9ydCBzdWJwcm9j
ZXNzCitpbXBvcnQgb3MKKworaGVyZSA9IG9zLnBhdGguZGlybmFtZShfX2ZpbGVfXykKKwordGVt
cGxhdGVfcHJlZml4ID0gIiIiPCFkb2N0eXBlIGh0bWw+CislKGRvY3VtZW50RWxlbWVudClzPG1l
dGEgY2hhcnNldD11dGYtOD4KKyIiIgordGVtcGxhdGVfbG9uZ190aW1lb3V0ID0gIjxtZXRhIG5h
bWU9dGltZW91dCBjb250ZW50PWxvbmc+XG4iCisKK3RlbXBsYXRlX2JvZHlfdGggPSAiIiI8dGl0
bGU+PC90aXRsZT4KKzxzY3JpcHQgc3JjPS9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanM+PC9zY3Jp
cHQ+Cis8c2NyaXB0IHNyYz0vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzPjwvc2NyaXB0
PgorPHNjcmlwdD4KKworPC9zY3JpcHQ+CisiIiIKKwordGVtcGxhdGVfYm9keV9yZWZ0ZXN0ID0g
IiIiPHRpdGxlPjwvdGl0bGU+Cis8bGluayByZWw9JShtYXRjaClzIGhyZWY9JShyZWYpcz4KKyIi
IgorCit0ZW1wbGF0ZV9ib2R5X3JlZnRlc3Rfd2FpdCA9ICIiIjxzY3JpcHQgc3JjPSIvY29tbW9u
L3JlZnRlc3Qtd2FpdC5qcyI+PC9zY3JpcHQ+CisiIiIKKworZGVmIGdldF9wYXJzZXIoKToKKyAg
ICBpbXBvcnQgYXJncGFyc2UKKyAgICBwID0gYXJncGFyc2UuQXJndW1lbnRQYXJzZXIoKQorICAg
IHAuYWRkX2FyZ3VtZW50KCItLW5vLWVkaXRvciIsIGFjdGlvbj0ic3RvcmVfdHJ1ZSIsCisgICAg
ICAgICAgICAgICAgICAgaGVscD0iRG9uJ3QgdHJ5IHRvIG9wZW4gdGhlIHRlc3QgaW4gYW4gZWRp
dG9yIikKKyAgICBwLmFkZF9hcmd1bWVudCgiLWUiLCAiLS1lZGl0b3IiLCBhY3Rpb249InN0b3Jl
IiwgaGVscD0iRWRpdG9yIHRvIHVzZSIpCisgICAgcC5hZGRfYXJndW1lbnQoIi0tbG9uZy10aW1l
b3V0IiwgYWN0aW9uPSJzdG9yZV90cnVlIiwKKyAgICAgICAgICAgICAgICAgICBoZWxwPSJUZXN0
IHNob3VsZCBiZSBnaXZlbiBhIGxvbmcgdGltZW91dCAodHlwaWNhbGx5IDYwcyByYXRoZXIgdGhh
biAxMHMsIGJ1dCB2YXJpZXMgZGVwZW5kaW5nIG9uIGVudmlyb25tZW50KSIpCisgICAgcC5hZGRf
YXJndW1lbnQoIi0tb3ZlcndyaXRlIiwgYWN0aW9uPSJzdG9yZV90cnVlIiwKKyAgICAgICAgICAg
ICAgICAgICBoZWxwPSJBbGxvdyBvdmVyd3JpdGluZyBhbiBleGlzdGluZyB0ZXN0IGZpbGUiKQor
ICAgIHAuYWRkX2FyZ3VtZW50KCItciIsICItLXJlZnRlc3QiLCBhY3Rpb249InN0b3JlX3RydWUi
LAorICAgICAgICAgICAgICAgICAgIGhlbHA9IkNyZWF0ZSBhIHJlZnRlc3QgcmF0aGVyIHRoYW4g
YSB0ZXN0aGFybmVzcyAoanMpIHRlc3QiKSwKKyAgICBwLmFkZF9hcmd1bWVudCgiLW0iLCAiLS1y
ZWZlcmVuY2UiLCBkZXN0PSJyZWYiLCBoZWxwPSJQYXRoIHRvIHRoZSByZWZlcmVuY2UgZmlsZSIp
CisgICAgcC5hZGRfYXJndW1lbnQoIi0tbWlzbWF0Y2giLCBhY3Rpb249InN0b3JlX3RydWUiLAor
ICAgICAgICAgICAgICAgICAgIGhlbHA9IkNyZWF0ZSBhIG1pc21hdGNoIHJlZnRlc3QiKQorICAg
IHAuYWRkX2FyZ3VtZW50KCItLXdhaXQiLCBhY3Rpb249InN0b3JlX3RydWUiLAorICAgICAgICAg
ICAgICAgICAgIGhlbHA9IkNyZWF0ZSBhIHJlZnRlc3QgdGhhdCB3YWl0cyB1bnRpbCB0YWtlU2Ny
ZWVuc2hvdCgpIGlzIGNhbGxlZCIpCisgICAgcC5hZGRfYXJndW1lbnQoIi0tdGVzdHMtcm9vdCIs
IGFjdGlvbj0ic3RvcmUiLCBkZWZhdWx0PW9zLnBhdGguam9pbihoZXJlLCAiLi4iLCAiLi4iKSwK
KyAgICAgICAgICAgICAgICAgICBoZWxwPSJQYXRoIHRvIHRoZSByb290IG9mIHRoZSB3cHQgZGly
ZWN0b3J5IikKKyAgICBwLmFkZF9hcmd1bWVudCgicGF0aCIsIGFjdGlvbj0ic3RvcmUiLCBoZWxw
PSJQYXRoIHRvIHRoZSB0ZXN0IGZpbGUiKQorICAgIHJldHVybiBwCisKKworCitkZWYgcmVsX3Bh
dGgocGF0aCwgdGVzdHNfcm9vdCk6CisgICAgaWYgcGF0aCBpcyBOb25lOgorICAgICAgICByZXR1
cm4KKworICAgIGFic19wYXRoID0gb3MucGF0aC5ub3JtcGF0aChvcy5wYXRoLmFic3BhdGgocGF0
aCkpCisgICAgcmV0dXJuIG9zLnBhdGgucmVscGF0aChhYnNfcGF0aCwgdGVzdHNfcm9vdCkKKwor
CitkZWYgcnVuKF92ZW52LCAqKmt3YXJncyk6CisgICAgcGF0aCA9IHJlbF9wYXRoKGt3YXJnc1si
cGF0aCJdLCBrd2FyZ3NbInRlc3RzX3Jvb3QiXSkKKyAgICByZWZfcGF0aCA9IHJlbF9wYXRoKGt3
YXJnc1sicmVmIl0sIGt3YXJnc1sidGVzdHNfcm9vdCJdKQorCisgICAgaWYga3dhcmdzWyJyZWYi
XToKKyAgICAgICAga3dhcmdzWyJyZWZ0ZXN0Il0gPSBUcnVlCisKKyAgICBpZiAiLi4iIGluIHBh
dGg6CisgICAgICAgIHByaW50KCIiIlRlc3QgcGF0aCAlcyBpcyBub3QgdW5kZXIgd3B0IHJvb3Qu
IiIiICUgcGF0aCkKKyAgICAgICAgcmV0dXJuIDEKKworICAgIGlmIHJlZl9wYXRoIGFuZCAiLi4i
IGluIHJlZl9wYXRoOgorICAgICAgICBwcmludCgiIiJSZWZlcmVuY2UgcGF0aCAlcyBpcyBub3Qg
dW5kZXIgd3B0IHJvb3QiIiIgJSByZWZfcGF0aCkKKyAgICAgICAgcmV0dXJuIDEKKworCisgICAg
aWYgb3MucGF0aC5leGlzdHMocGF0aCkgYW5kIG5vdCBrd2FyZ3NbIm92ZXJ3cml0ZSJdOgorICAg
ICAgICBwcmludCgiVGVzdCBwYXRoIGFscmVhZHkgZXhpc3RzLCBwYXNzIC0tb3ZlcndyaXRlIHRv
IHJlcGxhY2UiKQorICAgICAgICByZXR1cm4gMQorCisgICAgaWYga3dhcmdzWyJtaXNtYXRjaCJd
IGFuZCBub3Qga3dhcmdzWyJyZWZ0ZXN0Il06CisgICAgICAgIHByaW50KCItLW1pc21hdGNoIG9u
bHkgbWFrZXMgc2Vuc2UgZm9yIGEgcmVmdGVzdCIpCisgICAgICAgIHJldHVybiAxCisKKyAgICBp
ZiBrd2FyZ3NbIndhaXQiXSBhbmQgbm90IGt3YXJnc1sicmVmdGVzdCJdOgorICAgICAgICBwcmlu
dCgiLS13YWl0IG9ubHkgbWFrZXMgc2Vuc2UgZm9yIGEgcmVmdGVzdCIpCisgICAgICAgIHJldHVy
biAxCisKKyAgICBhcmdzID0geyJkb2N1bWVudEVsZW1lbnQiOiAiPGh0bWwgY2xhc3M9cmVmdGVz
dC13YWl0PlxuIiBpZiBrd2FyZ3NbIndhaXQiXSBlbHNlICIifQorICAgIHRlbXBsYXRlID0gdGVt
cGxhdGVfcHJlZml4ICUgYXJncworICAgIGlmIGt3YXJnc1sibG9uZ190aW1lb3V0Il06CisgICAg
ICAgIHRlbXBsYXRlICs9IHRlbXBsYXRlX2xvbmdfdGltZW91dAorCisgICAgaWYga3dhcmdzWyJy
ZWZ0ZXN0Il06CisgICAgICAgIGFyZ3MgPSB7Im1hdGNoIjogIm1hdGNoIiBpZiBub3Qga3dhcmdz
WyJtaXNtYXRjaCJdIGVsc2UgIm1pc21hdGNoIiwKKyAgICAgICAgICAgICAgICAicmVmIjogb3Mu
cGF0aC5yZWxwYXRoKHJlZl9wYXRoLCBwYXRoKSBpZiBrd2FyZ3NbInJlZiJdIGVsc2UgJyIiJ30K
KyAgICAgICAgdGVtcGxhdGUgKz0gdGVtcGxhdGVfYm9keV9yZWZ0ZXN0ICUgYXJncworICAgICAg
ICBpZiBrd2FyZ3NbIndhaXQiXToKKyAgICAgICAgICAgIHRlbXBsYXRlICs9IHRlbXBsYXRlX2Jv
ZHlfcmVmdGVzdF93YWl0CisgICAgZWxzZToKKyAgICAgICAgdGVtcGxhdGUgKz0gdGVtcGxhdGVf
Ym9keV90aAorICAgIHRyeToKKyAgICAgICAgb3MubWFrZWRpcnMob3MucGF0aC5kaXJuYW1lKHBh
dGgpKQorICAgIGV4Y2VwdCBPU0Vycm9yOgorICAgICAgICBwYXNzCisgICAgd2l0aCBvcGVuKHBh
dGgsICJ3IikgYXMgZjoKKyAgICAgICAgZi53cml0ZSh0ZW1wbGF0ZSkKKworICAgIHJlZl9wYXRo
ID0ga3dhcmdzWyJyZWYiXQorICAgIGlmIHJlZl9wYXRoIGFuZCBub3Qgb3MucGF0aC5leGlzdHMo
cmVmX3BhdGgpOgorICAgICAgICB3aXRoIG9wZW4ocmVmX3BhdGgsICJ3IikgYXMgZjoKKyAgICAg
ICAgICAgIGYud3JpdGUodGVtcGxhdGVfcHJlZml4ICUgeyJkb2N1bWVudEVsZW1lbnQiOiAiIn0p
CisKKyAgICBpZiBrd2FyZ3NbIm5vX2VkaXRvciJdOgorICAgICAgICBlZGl0b3IgPSBOb25lCisg
ICAgZWxpZiBrd2FyZ3NbImVkaXRvciJdOgorICAgICAgICBlZGl0b3IgPSBrd2FyZ3NbImVkaXRv
ciJdCisgICAgZWxpZiAiVklTVUFMIiBpbiBvcy5lbnZpcm9uOgorICAgICAgICBlZGl0b3IgPSBv
cy5lbnZpcm9uWyJWSVNVQUwiXQorICAgIGVsaWYgIkVESVRPUiIgaW4gb3MuZW52aXJvbjoKKyAg
ICAgICAgZWRpdG9yID0gb3MuZW52aXJvblsiRURJVE9SIl0KKyAgICBlbHNlOgorICAgICAgICBl
ZGl0b3IgPSBOb25lCisKKyAgICBwcm9jID0gTm9uZQorICAgIGlmIGVkaXRvcjoKKyAgICAgICAg
aWYgcmVmX3BhdGg6CisgICAgICAgICAgICBwYXRoID0gIiVzICVzIiAlIChwYXRoLCByZWZfcGF0
aCkKKyAgICAgICAgcHJvYyA9IHN1YnByb2Nlc3MuUG9wZW4oIiVzICVzIiAlIChlZGl0b3IsIHBh
dGgpLCBzaGVsbD1UcnVlKQorICAgIGVsc2U6CisgICAgICAgIHByaW50KCJDcmVhdGVkIHRlc3Qg
JXMiICUgcGF0aCkKKworICAgIGlmIHByb2M6CisgICAgICAgIHByb2Mud2FpdCgpCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dw
dC9pbnN0YWxsLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy93cHQvaW5zdGFsbC5weQppbmRleCBkNzc5NjUxYzk5MGUyYjdiYTc5OGYwODZlODBm
NmRjOGJlYWM1MjVkLi4yNDkxNWYwYzk4ZDBiZTNhODY0YTNhNTE1YmEwZTE2MmRjMzdkYThjIDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3dwdC9pbnN0YWxsLnB5CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvd3B0L2luc3RhbGwucHkKQEAgLTIsMjAgKzIsNjggQEAgaW1wb3J0
IGFyZ3BhcnNlCiBpbXBvcnQgYnJvd3NlcgogaW1wb3J0IHN5cwogCisKK2xhdGVzdF9jaGFubmVs
cyA9IHsKKyAgICAnZmlyZWZveCc6ICduaWdodGx5JywKKyAgICAnY2hyb21lJzogJ2RldicsCisg
ICAgJ2Nocm9tZV9hbmRyb2lkJzogJ2RldicsCisgICAgJ2VkZ2VjaHJvbWl1bSc6ICdkZXYnLAor
ICAgICdzYWZhcmknOiAncHJldmlldycsCisgICAgJ3NlcnZvJzogJ25pZ2h0bHknCit9CisKK2No
YW5uZWxfYnlfbmFtZSA9IHsKKyAgICAnc3RhYmxlJzogJ3N0YWJsZScsCisgICAgJ3JlbGVhc2Un
OiAnc3RhYmxlJywKKyAgICAnYmV0YSc6ICdiZXRhJywKKyAgICAnbmlnaHRseSc6IGxhdGVzdF9j
aGFubmVscywKKyAgICAnZGV2JzogbGF0ZXN0X2NoYW5uZWxzLAorICAgICdwcmV2aWV3JzogbGF0
ZXN0X2NoYW5uZWxzLAorICAgICdleHBlcmltZW50YWwnOiBsYXRlc3RfY2hhbm5lbHMsCisgICAg
J2NhbmFyeSc6ICdjYW5hcnknLAorfQorCisKIGRlZiBnZXRfcGFyc2VyKCk6Ci0gICAgcGFyc2Vy
ID0gYXJncGFyc2UuQXJndW1lbnRQYXJzZXIoKQotICAgIHBhcnNlci5hZGRfYXJndW1lbnQoJ2Jy
b3dzZXInLCBjaG9pY2VzPVsnZmlyZWZveCcsICdjaHJvbWUnXSwKKyAgICBwYXJzZXIgPSBhcmdw
YXJzZS5Bcmd1bWVudFBhcnNlcihkZXNjcmlwdGlvbj0iIiJJbnN0YWxsIGEgZ2l2ZW4gYnJvd3Nl
ciBvciB3ZWJkcml2ZXIgZnJvbnRlbmQuCisKKyAgICBGb3IgY29udmVuaWVuY2UgdGhlIHJlbGVh
c2UgY2hhbm5lbCBvZiB0aGUgYnJvd3NlciBhY2NlcHRzIHZhcmlvdXMgc3BlbGxpbmdzLAorICAg
IGJ1dCB3ZSBhY3R1YWxseSBzdXBwb3J0IGF0IG1vc3QgdGhyZWUgdmFyaWFudHM7IHdoYXRldmVy
IHRoZSBsYXRlc3QgZGV2ZWxvcG1lbnQKKyAgICByZWxlYXNlIGlzIChlLmcuIEZpcmVmb3ggbmln
aHRseSBvciBDaHJvbWUgZGV2KSwgdGhlIGxhdGVzdCBiZXRhIHJlbGVhc2UsIGFuZAorICAgIHRo
ZSBtb3N0IHJlY2VudCBzdGFibGUgcmVsZWFzZS4iIiIpCisgICAgcGFyc2VyLmFkZF9hcmd1bWVu
dCgnYnJvd3NlcicsIGNob2ljZXM9WydmaXJlZm94JywgJ2Nocm9tZScsICdzZXJ2byddLAogICAg
ICAgICAgICAgICAgICAgICAgICAgaGVscD0nbmFtZSBvZiB3ZWIgYnJvd3NlciBwcm9kdWN0JykK
ICAgICBwYXJzZXIuYWRkX2FyZ3VtZW50KCdjb21wb25lbnQnLCBjaG9pY2VzPVsnYnJvd3Nlcics
ICd3ZWJkcml2ZXInXSwKICAgICAgICAgICAgICAgICAgICAgICAgIGhlbHA9J25hbWUgb2YgY29t
cG9uZW50JykKKyAgICBwYXJzZXIuYWRkX2FyZ3VtZW50KCctLWNoYW5uZWwnLCBjaG9pY2VzPWNo
YW5uZWxfYnlfbmFtZS5rZXlzKCksCisgICAgICAgICAgICAgICAgICAgICAgICBkZWZhdWx0PSJu
aWdodGx5IiwgaGVscD0nTmFtZSBvZiBicm93c2VyIHJlbGVhc2UgY2hhbm5lbC4gJworICAgICAg
ICAgICAgICAgICAgICAgICAgJyJzdGFibGUiIGFuZCAicmVsZWFzZSIgYXJlIHN5bm9ueW1zIGZv
ciB0aGUgbGF0ZXN0IGJyb3dzZXIgc3RhYmxlIHJlbGVhc2UsJworICAgICAgICAgICAgICAgICAg
ICAgICAgJyJuaWdodGx5IiwgImRldiIsICJleHBlcmltZW50YWwiLCBhbmQgInByZXZpZXciIGFy
ZSBhbGwgc3lub255bXMgZm9yICcKKyAgICAgICAgICAgICAgICAgICAgICAgICd0aGUgbGF0ZXN0
IGF2YWlsYWJsZSBkZXZlbG9wbWVudCByZWxlYXNlLiBGb3IgV2ViRHJpdmVyIGluc3RhbGxzLCAn
CisgICAgICAgICAgICAgICAgICAgICAgICAnd2UgYXR0ZW1wdCB0byBzZWxlY3QgYW4gYXBwcm9w
cmlhdGUsIGNvbXBhdGlibGUsIHZlcnNpb24gZm9yIHRoZSAnCisgICAgICAgICAgICAgICAgICAg
ICAgICAnbGF0ZXN0IGJyb3dzZXIgcmVsZWFzZSBvbiB0aGUgc2VsZWN0ZWQgY2hhbm5lbC4nKQor
ICAgIHBhcnNlci5hZGRfYXJndW1lbnQoJy0tZG93bmxvYWQtb25seScsIGFjdGlvbj0ic3RvcmVf
dHJ1ZSIsCisgICAgICAgICAgICAgICAgICAgICAgICBoZWxwPSJEb3dubG9hZCB0aGUgc2VsZWN0
ZWQgY29tcG9uZW50IGJ1dCBkb24ndCBpbnN0YWxsIGl0IikKICAgICBwYXJzZXIuYWRkX2FyZ3Vt
ZW50KCctZCcsICctLWRlc3RpbmF0aW9uJywKICAgICAgICAgICAgICAgICAgICAgICAgIGhlbHA9
J2ZpbGVzeXN0ZW0gZGlyZWN0b3J5IHRvIHBsYWNlIHRoZSBjb21wb25lbnQnKQogICAgIHJldHVy
biBwYXJzZXIKIAogCitkZWYgZ2V0X2NoYW5uZWwoYnJvd3NlciwgY2hhbm5lbCk6CisgICAgY2hh
bm5lbCA9IGNoYW5uZWxfYnlfbmFtZVtjaGFubmVsXQorICAgIGlmIGlzaW5zdGFuY2UoY2hhbm5l
bCwgZGljdCk6CisgICAgICAgIGNoYW5uZWwgPSBjaGFubmVsLmdldChicm93c2VyKQorICAgIHJl
dHVybiBjaGFubmVsCisKKwogZGVmIHJ1bih2ZW52LCAqKmt3YXJncyk6CiAgICAgYnJvd3NlciA9
IGt3YXJnc1siYnJvd3NlciJdCiAgICAgZGVzdGluYXRpb24gPSBrd2FyZ3NbImRlc3RpbmF0aW9u
Il0KKyAgICBjaGFubmVsID0gZ2V0X2NoYW5uZWwoYnJvd3Nlciwga3dhcmdzWyJjaGFubmVsIl0p
CisKKyAgICBpZiBjaGFubmVsICE9IGt3YXJnc1siY2hhbm5lbCJdOgorICAgICAgICBwcmludCgi
SW50ZXJwcmV0aW5nIGNoYW5uZWwgJyVzJyBhcyAnJXMnIiAlIChrd2FyZ3NbImNoYW5uZWwiXSwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hh
bm5lbCkpCiAKICAgICBpZiBkZXN0aW5hdGlvbiBpcyBOb25lOgogICAgICAgICBpZiB2ZW52OgpA
QCAtMjcsMTUgKzc1LDIyIEBAIGRlZiBydW4odmVudiwgKiprd2FyZ3MpOgogICAgICAgICAgICAg
cmFpc2UgYXJncGFyc2UuQXJndW1lbnRFcnJvcihOb25lLAogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAiTm8gLS1kZXN0aW5hdGlvbiBhcmd1bWVudCwgYW5kIG5vIGRl
ZmF1bHQgZm9yIHRoZSBlbnZpcm9ubWVudCIpCiAKLSAgICBpbnN0YWxsKGJyb3dzZXIsIGt3YXJn
c1siY29tcG9uZW50Il0sIGRlc3RpbmF0aW9uKQorICAgIGluc3RhbGwoYnJvd3Nlciwga3dhcmdz
WyJjb21wb25lbnQiXSwgZGVzdGluYXRpb24sIGNoYW5uZWwsCisgICAgICAgICAgICBkb3dubG9h
ZF9vbmx5PWt3YXJnc1siZG93bmxvYWRfb25seSJdKQorCisKK2RlZiBpbnN0YWxsKG5hbWUsIGNv
bXBvbmVudCwgZGVzdGluYXRpb24sIGNoYW5uZWw9Im5pZ2h0bHkiLCBsb2dnZXI9Tm9uZSwgZG93
bmxvYWRfb25seT1GYWxzZSk6CisgICAgaWYgbG9nZ2VyIGlzIE5vbmU6CisgICAgICAgIGltcG9y
dCBsb2dnaW5nCisgICAgICAgIGxvZ2dlciA9IGxvZ2dpbmcuZ2V0TG9nZ2VyKCJpbnN0YWxsIikK
IAorICAgIHByZWZpeCA9ICJkb3dubG9hZCIgaWYgZG93bmxvYWRfb25seSBlbHNlICJpbnN0YWxs
IgorICAgIHN1ZmZpeCA9ICJfd2ViZHJpdmVyIiBpZiBjb21wb25lbnQgPT0gJ3dlYmRyaXZlcicg
ZWxzZSAiIgogCi1kZWYgaW5zdGFsbChuYW1lLCBjb21wb25lbnQsIGRlc3RpbmF0aW9uKToKLSAg
ICBpZiBjb21wb25lbnQgPT0gJ3dlYmRyaXZlcic6Ci0gICAgICAgIG1ldGhvZCA9ICdpbnN0YWxs
X3dlYmRyaXZlcicKLSAgICBlbHNlOgotICAgICAgICBtZXRob2QgPSAnaW5zdGFsbCcKKyAgICBt
ZXRob2QgPSBwcmVmaXggKyBzdWZmaXgKIAogICAgIHN1YmNsYXNzID0gZ2V0YXR0cihicm93c2Vy
LCBuYW1lLnRpdGxlKCkpCiAgICAgc3lzLnN0ZG91dC53cml0ZSgnTm93IGluc3RhbGxpbmcgJXMg
JXMuLi5cbicgJSAobmFtZSwgY29tcG9uZW50KSkKLSAgICBnZXRhdHRyKHN1YmNsYXNzKCksIG1l
dGhvZCkoZGVzdD1kZXN0aW5hdGlvbikKKyAgICBwYXRoID0gZ2V0YXR0cihzdWJjbGFzcyhsb2dn
ZXIpLCBtZXRob2QpKGRlc3Q9ZGVzdGluYXRpb24sIGNoYW5uZWw9Y2hhbm5lbCkKKyAgICBpZiBw
YXRoOgorICAgICAgICBzeXMuc3Rkb3V0LndyaXRlKCdCaW5hcnkgJXMgYXMgJXNcbicgJSAoImRv
d25sb2FkZWQiIGlmIGRvd25sb2FkX29ubHkgZWxzZSAiaW5zdGFsbGVkIiwgcGF0aCwpKQpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy93cHQvbWFjaC1lbXVsYXRvci5tYW5pZmVzdCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0L21hY2gtZW11bGF0b3IubWFuaWZlc3QKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uNDlmNDZjNjBmZmUxOTgyZTUyYWU5OTI5ODFiZTljODIwM2QzNWE5YgotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvd3B0L21hY2gtZW11bGF0b3IubWFuaWZlc3QKQEAgLTAsMCArMSwxMCBAQAorWworICB7Cisg
ICAgImFsZ29yaXRobSI6ICJzaGE1MTIiLAorICAgICJ2aXNpYmlsaXR5IjogInB1YmxpYyIsCisg
ICAgImZpbGVuYW1lIjogIkFWRHMteDg2LWFuZHJvaWQtNy4wLWJ1aWxkLTIwMTktMDQtMjMudGFy
Lmd6IiwKKyAgICAidW5wYWNrIjogdHJ1ZSwKKyAgICAiZGlnZXN0IjogIjNjYzAzNzg5YWFiZmM2
OTJjNzZlNWFlNGViZWZhN2E1NjI4ZjM4NmRmM2M5Nzc4YWYyNDg1YTQ5YjI0MDFkNGFkNjYzMDFi
ZTZjM2QxMTZmZjdkM2VlNzQ3ZTAwY2U2MzMyMzgxMjE2ZjU1YTcyNTNiNmI1YjYwMGQwNTliYWEy
IiwKKyAgICAic2l6ZSI6IDQ0NTI1MDkzNQorICB9CitdCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdC9tYXJrZG93bi5weSBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0L21h
cmtkb3duLnB5CmluZGV4IDhiNWZmODA3OWRmMDg1NjFlZDRmMDE0ZGVhODdhNThjMzU4NjkyY2Qu
LjQzMDIwY2RhZmU2ZTMzNjEwMmFjZjQ5ODZiZjNhYzFhNmIyNWRlMGQgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0L21hcmtk
b3duLnB5CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvd3B0L21hcmtkb3duLnB5CkBAIC0xLDMgKzEsNSBAQAorZnJvbSBmdW5jdG9vbHMgaW1w
b3J0IHJlZHVjZQorCiBkZWYgZm9ybWF0X2NvbW1lbnRfdGl0bGUocHJvZHVjdCk6CiAgICAgIiIi
UHJvZHVjZSBhIE1hcmtkb3duLWZvcm1hdHRlZCBzdHJpbmcgYmFzZWQgb24gYSBnaXZlbiAicHJv
ZHVjdCItLWEgc3RyaW5nCiAgICAgY29udGFpbmluZyBhIGJyb3dzZXIgaWRlbnRpZmllciBvcHRp
b25hbGx5IGZvbGxvd2VkIGJ5IGEgY29sb24gYW5kIGEKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0L3BhdGhzIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHQvcGF0aHMKaW5k
ZXggMGVmMTNjOTZlMzhjNDZhMWJmMDYzNjc5MmE5OTMzMTI2ZDFjYWQwNi4uMzU4NjdjNGNjYmZl
OTVjNGU3MWE4ZDcxY2U5MGE3YjM3ODk1MWZkNSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHQvcGF0aHMKKysrIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHQvcGF0aHMKQEAg
LTEsNCArMSw1IEBACiB0b29scy9jaS8KK3Rvb2xzL2RvY2tlci8KIHRvb2xzL2xpbnQvCiB0b29s
cy9tYW5pZmVzdC8KIHRvb2xzL3NlcnZlLwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHQvcmVxdWlyZW1lbnRzLnR4dCBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0L3JlcXVp
cmVtZW50cy50eHQKaW5kZXggNDZjNGIxM2EzYmYzYjA0NWZjNDc3MjcyZjliNTU1ZWY5MDk3MWU3
My4uNTY2MDgzY2I2YmU4OWEwM2U0OGNjNWMxYTBhODhmYzVjZTUzYTg1MyAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHQvcmVx
dWlyZW1lbnRzLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3dwdC9yZXF1aXJlbWVudHMudHh0CkBAIC0xICsxIEBACi1yZXF1ZXN0cz09
Mi4xOS4xCityZXF1ZXN0cz09Mi4yMi4wCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdC9yZXZsaXN0LnB5IGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHQvcmV2bGlzdC5weQpu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi5jNGNiYzI5NDNiN2NlMDJlZjJhNThmNjVkMzRhYjcxN2JmYjBjOTgxCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy93cHQvcmV2bGlzdC5weQpAQCAtMCwwICsxLDExOSBAQAoraW1wb3J0IGFyZ3BhcnNl
CitpbXBvcnQgbG9nZ2luZworaW1wb3J0IG9zCitpbXBvcnQgdGltZQorZnJvbSB0b29scy53cHQu
dGVzdGZpbGVzIGltcG9ydCBnZXRfZ2l0X2NtZAorCitoZXJlID0gb3MucGF0aC5kaXJuYW1lKF9f
ZmlsZV9fKQord3B0X3Jvb3QgPSBvcy5wYXRoLmFic3BhdGgob3MucGF0aC5qb2luKGhlcmUsIG9z
LnBhcmRpciwgb3MucGFyZGlyKSkKKworbG9nZ2VyID0gbG9nZ2luZy5nZXRMb2dnZXIoKQorCitN
WVBZID0gRmFsc2UKK2lmIE1ZUFk6CisgICAgIyBNWVBZIGlzIHNldCB0byBUcnVlIHdoZW4gcnVu
IHVuZGVyIE15cHkuCisgICAgZnJvbSB0eXBpbmcgaW1wb3J0IEFueQorICAgIGZyb20gdHlwaW5n
IGltcG9ydCBEaWN0CisgICAgZnJvbSB0eXBpbmcgaW1wb3J0IExpc3QKKyAgICBmcm9tIHR5cGlu
ZyBpbXBvcnQgVGV4dAorCisKK2RlZiBjYWxjdWxhdGVfY3V0b2ZmX2RhdGUodW50aWwsIGVwb2No
LCBvZmZzZXQpOgorICAgIHJldHVybiAoKCgodW50aWwgLSBvZmZzZXQpIC8vIGVwb2NoKSkgKiBl
cG9jaCkgKyBvZmZzZXQKKworCitkZWYgcGFyc2VfZXBvY2goc3RyaW5nKToKKyAgICAjIHR5cGU6
IChzdHIpIC0+IGludAorICAgIFVOSVRfRElDVCA9IHsiaCI6IDM2MDAsICJkIjogODY0MDAsICJ3
IjogNjA0ODAwfQorICAgIGJhc2UgPSBzdHJpbmdbOi0xXQorICAgIHVuaXQgPSBzdHJpbmdbLTE6
XQorICAgIGlmIGJhc2UuaXNkaWdpdCgpIGFuZCB1bml0IGluIFVOSVRfRElDVDoKKyAgICAgICAg
cmV0dXJuIGludChiYXNlKSAqIFVOSVRfRElDVFt1bml0XQorICAgIHJhaXNlIGFyZ3BhcnNlLkFy
Z3VtZW50VHlwZUVycm9yKCdtdXN0IGJlIGRpZ2l0cyBmb2xsb3dlZCBieSBoL2QvdycpCisKKwor
ZGVmIGdldF90YWdnZWRfcmV2aXNpb25zKHBhdHRlcm4pOgorICAgICMgdHlwZTogKGJ5dGVzKSAt
PiBMaXN0Wy4uLiwgRGljdF0KKyAgICAnJycKKyAgICBSZXR1cm5zIHRoZSB0YWdnZWQgcmV2aXNp
b25zIGluZGV4ZWQgYnkgdGhlIGNvbW1pdHRlciBkYXRlLgorICAgICcnJworICAgIGdpdCA9IGdl
dF9naXRfY21kKHdwdF9yb290KQorICAgIGFyZ3MgPSBbCisgICAgICAgIHBhdHRlcm4sCisgICAg
ICAgICctLXNvcnQ9LWNvbW1pdHRlcmRhdGUnLAorICAgICAgICAnLS1mb3JtYXQ9JShyZWZuYW1l
OmxzdHJpcD0yKSAlKG9iamVjdG5hbWUpICUoY29tbWl0dGVyZGF0ZTpyYXcpJywKKyAgICAgICAg
Jy0tY291bnQ9MTAwMDAwJworICAgIF0KKyAgICBmb3IgbGluZSBpbiBnaXQoImZvci1lYWNoLXJl
ZiIsICphcmdzKS5zcGxpdGxpbmVzKCk6CisgICAgICAgIHRhZywgY29tbWl0LCBkYXRlLCBfID0g
bGluZS5zcGxpdCgiICIpCisgICAgICAgIGRhdGUgPSBpbnQoZGF0ZSkKKyAgICAgICAgeWllbGQg
dGFnLCBjb21taXQsIGRhdGUKKworCitkZWYgZ2V0X2Vwb2NoX3JldmlzaW9ucyhlcG9jaCwgdW50
aWwsIG1heF9jb3VudCk6CisgICAgIyB0eXBlOiAoKipBbnkpIC0+IExpc3RbVGV4dF0KKyAgICBs
b2dnZXIuZGVidWcoImdldF9lcG9jaF9yZXZpc2lvbnMoJXMsICVzKSIgJSAoZXBvY2gsIG1heF9j
b3VudCkpCisgICAgIyBTZXQgYW4gb2Zmc2V0IHRvIHN0YXJ0IHRvIGNvdW50IHRoZSB0aGUgd2Vl
a2x5IGVwb2NoIGZyb20KKyAgICAjIE1vbmRheSAwMDowMDowMC4gVGhpcyBpcyBwYXJ0aWN1bGFy
bHkgaW1wb3J0YW50IGZvciB0aGUgd2Vla2x5IGVwb2NoCisgICAgIyBiZWNhdXNlIGZpeCB0aGUg
c3RhcnQgb2YgdGhlIGVwb2NoIHRvIE1vbmRheS4gVGhpcyBvZmZzZXQgaXMgY2FsY3VsYXRlZAor
ICAgICMgZnJvbSBUaHVyc2RheSwgMSBKYW51YXJ5IDE5NzAgMDowMDowMCB0byBNb25kYXksIDUg
SmFudWFyeSAxOTcwIDA6MDA6MDAKKyAgICBlcG9jaF9vZmZzZXQgPSAzNDU2MDAKKyAgICBjb3Vu
dCA9IDAKKworICAgICMgSXRlcmF0ZXMgdGhlIHRhZ2dlZCByZXZpc2lvbnMgaW4gZGVzY2VuZGlu
ZyBvcmRlciBmaW5kaW5nIHRoZSBtb3JlCisgICAgIyByZWNlbnQgY29tbWl0IHN0aWxsIG9sZGVy
IHRoYW4gYSAiY3V0b2ZmX2RhdGUiIHZhbHVlLgorICAgICMgV2hlbiBhIGNvbW1pdCBpcyBmb3Vu
ZCAiY3V0b2ZmX2RhdGUiIGlzIHNldCB0byBhIG5ldyB2YWx1ZSBtdWx0aXBsaWVyIG9mCisgICAg
IyAiZXBvY2giIGJ1dCBzdGlsbCBiZWxvdyBvZiB0aGUgZGF0ZSBvZiB0aGUgY3VycmVudCBjb21t
aXQgZm91bmQuCisgICAgIyBUaGlzIG5lZWRlZCB0byBkZWFsIHdpdGggaW50ZXJ2YWxzIHdoZXJl
IG5vIGNhbmRpZGF0ZXMgd2VyZSBmb3VuZAorICAgICMgZm9yIHRoZSBjdXJyZW50ICJlcG9jaCIg
YW5kIHRoZSBuZXh0IGNhbmRpZGF0ZSBmb3VuZCBpcyB5ZXQgYmVsb3cKKyAgICAjIHRoZSBsb3dl
ciB2YWx1ZXMgb2YgdGhlIGludGVydmFsIChpdCBpcyB0aGUgY2FzZSBvZiBKIGFuZCBJIGZvciB0
aGUKKyAgICAjIGludGVydmFsIGJldHdlZW4gV2VkIGFuZCBUdWUsIGluIHRoZSBleGFtcGxlKS4g
VGhlIGFsZ29yaXRobSBmaXgKKyAgICAjIHRoZSBuZXh0ICJjdXRvZmZfZGF0ZSIgdmFsdWUgYmFz
ZWQgb24gdGhlIGRhdGUgdmFsdWUgb2YgdGhlIGN1cnJlbnQgb25lCisgICAgIyBza2lwcGluZyB0
aGUgaW50ZXJtZWRpYXRlIHZhbHVlcy4KKyAgICAjIFRoZSBsb29wIGVuZHMgb25jZSB3ZSByZWFj
aGVkIHRoZSByZXF1aXJlZCBudW1iZXIgb2YgcmV2aXNpb25zIHRvIHJldHVybgorICAgICMgb3Ig
dGhlIGFyZSBubyBtb3JlIHRhZ2dlZCByZXZpc2lvbnMgb3IgdGhlIGN1dG9mZl9kYXRlIHJlYWNo
IHplcm8uCisgICAgIworICAgICMgICBGcmkgICBTYXQgICBTdW4gICBNb24gICBUdWUgICBXZWQg
ICBUaHUgICBGcmkgICBTYXQKKyAgICAjICAgIHwgICAgIHwgICAgIHwgICAgIHwgICAgIHwgICAg
IHwgICAgIHwgICAgIHwgICAgIHwKKyAgICAjIC1BLS0tQi1DLS0tREVGLS0tRy0tLUgtLUlKLS0t
LS0tLS0tLUstLS0tLUwtTS0tLS1OLS1PLS0KKyAgICAjICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KKyAgICAjICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm93CisgICAgIyBFeHBlY3RlZCBy
ZXN1bHQ6IE4sTSxLLEosSCxHLEYsQyxBCisKKyAgICBjdXRvZmZfZGF0ZSA9IGNhbGN1bGF0ZV9j
dXRvZmZfZGF0ZSh1bnRpbCwgZXBvY2gsIGVwb2NoX29mZnNldCkKKyAgICBmb3IgXywgY29tbWl0
LCBkYXRlIGluIGdldF90YWdnZWRfcmV2aXNpb25zKCJyZWZzL3RhZ3MvbWVyZ2VfcHJfKiIpOgor
ICAgICAgICBpZiBjb3VudCA+PSBtYXhfY291bnQ6CisgICAgICAgICAgICByZXR1cm4KKyAgICAg
ICAgaWYgZGF0ZSA8IGN1dG9mZl9kYXRlOgorICAgICAgICAgICAgeWllbGQgY29tbWl0CisgICAg
ICAgICAgICBjb3VudCArPSAxCisgICAgICAgICAgICBjdXRvZmZfZGF0ZSA9IGNhbGN1bGF0ZV9j
dXRvZmZfZGF0ZShkYXRlLCBlcG9jaCwgZXBvY2hfb2Zmc2V0KQorCisKK2RlZiBnZXRfcGFyc2Vy
KCk6CisgICAgIyB0eXBlOiAoKSAtPiBhcmdwYXJzZS5Bcmd1bWVudFBhcnNlcgorICAgIHBhcnNl
ciA9IGFyZ3BhcnNlLkFyZ3VtZW50UGFyc2VyKCkKKyAgICBwYXJzZXIuYWRkX2FyZ3VtZW50KCIt
LWVwb2NoIiwKKyAgICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ9IjFkIiwKKyAgICAgICAg
ICAgICAgICAgICAgICAgIHR5cGU9cGFyc2VfZXBvY2gsCisgICAgICAgICAgICAgICAgICAgICAg
ICBoZWxwPSJyZWd1bGFyIGludGVydmFsIG9mIHRpbWUgc2VsZWN0ZWQgdG8gZ2V0IHRoZSAiCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ0YWdnZWQgcmV2aXNpb25zLiBWYWxpZCB2YWx1
ZXMgYXJlIGRpZ2l0cyAiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJmb2xsb3dlZCBi
eSBoL2QvdyAoZS54LiA5aCwgOWQsIDl3IC4uLikgd2hlcmUgIgorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAidGhlIG1pbWltdW4gc2VsZWN0YWJsZSBpbnRlcnZhbCBpcyBvbmUgaG91ciAi
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIoMWgpIikKKyAgICBwYXJzZXIuYWRkX2Fy
Z3VtZW50KCItLW1heC1jb3VudCIsCisgICAgICAgICAgICAgICAgICAgICAgICBkZWZhdWx0PTEs
CisgICAgICAgICAgICAgICAgICAgICAgICB0eXBlPWludCwKKyAgICAgICAgICAgICAgICAgICAg
ICAgIGhlbHA9Im1heGltdW0gbnVtYmVyIG9mIHJldmlzaW9ucyB0byBiZSByZXR1cm5lZCBieSAi
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ0aGUgY29tbWFuZCIpCisgICAgcmV0dXJu
IHBhcnNlcgorCisKK2RlZiBydW5fcmV2X2xpc3QoKiprd2FyZ3MpOgorICAgICMgdHlwZTogKCoq
QW55KSAtPiBOb25lCisgICAgIyAiZXBvY2hfdGhyZXNob2xkIiBpcyBhIHNhZmV0eSBtYXJnaW4u
IEFmdGVyIHRoaXMgdGltZSBpdCBpcyBmaW5lIHRvCisgICAgIyBhc3N1bWUgdGhhdCBhbnkgdGFn
cyBhcmUgY3JlYXRlZCBhbmQgcHVzaGVkLgorICAgIGVwb2NoX3RocmVzaG9sZCA9IDYwMAorICAg
IHVudGlsID0gaW50KHRpbWUudGltZSgpKSAtIGVwb2NoX3RocmVzaG9sZAorICAgIGZvciBsaW5l
IGluIGdldF9lcG9jaF9yZXZpc2lvbnMoa3dhcmdzWyJlcG9jaCJdLCB1bnRpbCwga3dhcmdzWyJt
YXhfY291bnQiXSk6CisgICAgICAgIHByaW50KGxpbmUpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdC9ydW4ucHkgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdC9ydW4ucHkK
aW5kZXggZjA3MmNmN2YwMjExOWVkMTU4MWJmY2ExNWMwYTk0ZTkyYmVmZDRjMi4uNGMxZjJjOTkx
MjhkZTg5MzdkY2EwMTQ3OWIxYjRjNDMxOTQxNGY4YiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHQvcnVuLnB5CisrKyBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0L3J1bi5w
eQpAQCAtMywxMSArMywxMiBAQCBpbXBvcnQgb3MKIGltcG9ydCBwbGF0Zm9ybQogaW1wb3J0IHN5
cwogZnJvbSBkaXN0dXRpbHMuc3Bhd24gaW1wb3J0IGZpbmRfZXhlY3V0YWJsZQorZnJvbSBzaXgu
bW92ZXMgaW1wb3J0IGlucHV0CiAKIHdwdF9yb290ID0gb3MucGF0aC5hYnNwYXRoKG9zLnBhdGgu
am9pbihvcy5wYXRoLmRpcm5hbWUoX19maWxlX18pLCBvcy5wYXJkaXIsIG9zLnBhcmRpcikpCiBz
eXMucGF0aC5pbnNlcnQoMCwgb3MucGF0aC5hYnNwYXRoKG9zLnBhdGguam9pbih3cHRfcm9vdCwg
InRvb2xzIikpKQogCi1mcm9tIC4gaW1wb3J0IGJyb3dzZXIsIHV0aWxzLCB2aXJ0dWFsZW52Citm
cm9tIC4gaW1wb3J0IGJyb3dzZXIsIGluc3RhbGwsIHRlc3RmaWxlcywgdXRpbHMsIHZpcnR1YWxl
bnYKIGZyb20gLi5zZXJ2ZSBpbXBvcnQgc2VydmUKIAogbG9nZ2VyID0gTm9uZQpAQCAtNDQsMTcg
KzQ1LDMyIEBAIGRlZiBjcmVhdGVfcGFyc2VyKCk6CiAgICAgcGFyc2VyID0gYXJncGFyc2UuQXJn
dW1lbnRQYXJzZXIoYWRkX2hlbHA9RmFsc2UpCiAgICAgcGFyc2VyLmFkZF9hcmd1bWVudCgicHJv
ZHVjdCIsIGFjdGlvbj0ic3RvcmUiLAogICAgICAgICAgICAgICAgICAgICAgICAgaGVscD0iQnJv
d3NlciB0byBydW4gdGVzdHMgaW4iKQorICAgIHBhcnNlci5hZGRfYXJndW1lbnQoIi0tYWZmZWN0
ZWQiLCBhY3Rpb249InN0b3JlIiwgZGVmYXVsdD1Ob25lLAorICAgICAgICAgICAgICAgICAgICAg
ICAgaGVscD0iUnVuIGFmZmVjdGVkIHRlc3RzIHNpbmNlIHJldmlzaCIpCiAgICAgcGFyc2VyLmFk
ZF9hcmd1bWVudCgiLS15ZXMiLCAiLXkiLCBkZXN0PSJwcm9tcHQiLCBhY3Rpb249InN0b3JlX2Zh
bHNlIiwgZGVmYXVsdD1UcnVlLAogICAgICAgICAgICAgICAgICAgICAgICAgaGVscD0iRG9uJ3Qg
cHJvbXB0IGJlZm9yZSBpbnN0YWxsaW5nIGNvbXBvbmVudHMiKQogICAgIHBhcnNlci5hZGRfYXJn
dW1lbnQoIi0taW5zdGFsbC1icm93c2VyIiwgYWN0aW9uPSJzdG9yZV90cnVlIiwKLSAgICAgICAg
ICAgICAgICAgICAgICAgIGhlbHA9Ikluc3RhbGwgdGhlIGxhdGVzdCBkZXZlbG9wbWVudCB2ZXJz
aW9uIG9mIHRoZSBicm93c2VyIikKKyAgICAgICAgICAgICAgICAgICAgICAgIGhlbHA9Ikluc3Rh
bGwgdGhlIGJyb3dzZXIgZnJvbSB0aGUgcmVsZWFzZSBjaGFubmVsIHNwZWNpZmllZCBieSAtLWNo
YW5uZWwgIgorICAgICAgICAgICAgICAgICAgICAgICAgIihvciB0aGUgbmlnaHRseSBjaGFubmVs
IGJ5IGRlZmF1bHQpLiIpCisgICAgcGFyc2VyLmFkZF9hcmd1bWVudCgiLS1jaGFubmVsIiwgYWN0
aW9uPSJzdG9yZSIsCisgICAgICAgICAgICAgICAgICAgICAgICBjaG9pY2VzPWluc3RhbGwuY2hh
bm5lbF9ieV9uYW1lLmtleXMoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ9Tm9u
ZSwgaGVscD0nTmFtZSBvZiBicm93c2VyIHJlbGVhc2UgY2hhbm5lbC4gJworICAgICAgICAgICAg
ICAgICAgICAgICAgJyJzdGFibGUiIGFuZCAicmVsZWFzZSIgYXJlIHN5bm9ueW1zIGZvciB0aGUg
bGF0ZXN0IGJyb3dzZXIgc3RhYmxlICcKKyAgICAgICAgICAgICAgICAgICAgICAgICdyZWxlYXNl
LCAibmlnaHRseSIsICJkZXYiLCAiZXhwZXJpbWVudGFsIiwgYW5kICJwcmV2aWV3IiBhcmUgYWxs
ICcKKyAgICAgICAgICAgICAgICAgICAgICAgICdzeW5vbnltcyBmb3IgdGhlIGxhdGVzdCBhdmFp
bGFibGUgZGV2ZWxvcG1lbnQgcmVsZWFzZS4gKEZvciBXZWJEcml2ZXIgJworICAgICAgICAgICAg
ICAgICAgICAgICAgJ2luc3RhbGxzLCB3ZSBhdHRlbXB0IHRvIHNlbGVjdCBhbiBhcHByb3ByaWF0
ZSwgY29tcGF0aWJsZSB2ZXJzaW9uIGZvciAnCisgICAgICAgICAgICAgICAgICAgICAgICAndGhl
IGxhdGVzdCBicm93c2VyIHJlbGVhc2Ugb24gdGhlIHNlbGVjdGVkIGNoYW5uZWwuKSAnCisgICAg
ICAgICAgICAgICAgICAgICAgICAnVGhpcyBmbGFnIG92ZXJyaWRlcyAtLWJyb3dzZXItY2hhbm5l
bC4nKQogICAgIHBhcnNlci5fYWRkX2NvbnRhaW5lcl9hY3Rpb25zKHdwdGNvbW1hbmRsaW5lLmNy
ZWF0ZV9wYXJzZXIoKSkKICAgICByZXR1cm4gcGFyc2VyCiAKIAotZGVmIGV4aXQobXNnKToKLSAg
ICBsb2dnZXIuZXJyb3IobXNnKQotICAgIHN5cy5leGl0KDEpCitkZWYgZXhpdChtc2c9Tm9uZSk6
CisgICAgaWYgbXNnOgorICAgICAgICBsb2dnZXIuY3JpdGljYWwobXNnKQorICAgICAgICBzeXMu
ZXhpdCgxKQorICAgIGVsc2U6CisgICAgICAgIHN5cy5leGl0KDApCiAKIAogZGVmIGFyZ3NfZ2Vu
ZXJhbChrd2FyZ3MpOgpAQCAtOTAsOSArMTA2LDkgQEAgb3RoZXJ3aXNlIGluc3RhbGwgT3BlblNT
TCBhbmQgZW5zdXJlIHRoYXQgaXQncyBvbiB5b3VyICRQQVRILiIiIikKIAogCiBkZWYgY2hlY2tf
ZW52aXJvbihwcm9kdWN0KToKLSAgICBpZiBwcm9kdWN0IG5vdCBpbiAoImZpcmVmb3giLCAic2Vy
dm8iKToKKyAgICBpZiBwcm9kdWN0IG5vdCBpbiAoImFuZHJvaWRfd2VidmlldyIsICJjaHJvbWUi
LCAiY2hyb21lX2FuZHJvaWQiLCAiZmlyZWZveCIsICJmaXJlZm94X2FuZHJvaWQiLCAic2Vydm8i
KToKICAgICAgICAgY29uZmlnX2J1aWxkZXIgPSBzZXJ2ZS5idWlsZF9jb25maWcob3MucGF0aC5q
b2luKHdwdF9yb290LCAiY29uZmlnLmpzb24iKSkKLSAgICAgICAgIyBPdnZlcmlkZSB0aGUgcG9y
dHMgdG8gYXZvaWQgbG9va2luZyBmb3IgZnJlZSBwb3J0cworICAgICAgICAjIE92ZXJyaWRlIHRo
ZSBwb3J0cyB0byBhdm9pZCBsb29raW5nIGZvciBmcmVlIHBvcnRzCiAgICAgICAgIGNvbmZpZ19i
dWlsZGVyLnNzbCA9IHsidHlwZSI6ICJub25lIn0KICAgICAgICAgY29uZmlnX2J1aWxkZXIucG9y
dHMgPSB7Imh0dHAiOiBbODAwMF19CiAKQEAgLTEwNSwxMCArMTIxLDE1IEBAIGRlZiBjaGVja19l
bnZpcm9uKHByb2R1Y3QpOgogCiAgICAgICAgIG1pc3NpbmdfaG9zdHMgPSBzZXQoZXhwZWN0ZWRf
aG9zdHMpCiAgICAgICAgIGlmIGlzX3dpbmRvd3M6Ci0gICAgICAgICAgICBob3N0c19wYXRoID0g
IkM6XFdpbmRvd3NcU3lzdGVtMzJcZHJpdmVyc1xldGNcaG9zdHMiCisgICAgICAgICAgICBob3N0
c19wYXRoID0gciIlc1xTeXN0ZW0zMlxkcml2ZXJzXGV0Y1xob3N0cyIgJSBvcy5lbnZpcm9uLmdl
dCgiU3lzdGVtUm9vdCIsIHIiQzpcV2luZG93cyIpCiAgICAgICAgIGVsc2U6CiAgICAgICAgICAg
ICBob3N0c19wYXRoID0gIi9ldGMvaG9zdHMiCiAKKyAgICAgICAgaWYgb3MucGF0aC5hYnNwYXRo
KG9zLmN1cmRpcikgPT0gd3B0X3Jvb3Q6CisgICAgICAgICAgICB3cHRfcGF0aCA9ICJ3cHQiCisg
ICAgICAgIGVsc2U6CisgICAgICAgICAgICB3cHRfcGF0aCA9IG9zLnBhdGguam9pbih3cHRfcm9v
dCwgIndwdCIpCisKICAgICAgICAgd2l0aCBvcGVuKGhvc3RzX3BhdGgsICJyIikgYXMgZjoKICAg
ICAgICAgICAgIGZvciBsaW5lIGluIGY6CiAgICAgICAgICAgICAgICAgbGluZSA9IGxpbmUuc3Bs
aXQoIiMiLCAxKVswXS5zdHJpcCgpCkBAIC0xMjAsMTMgKzE0MSwxNCBAQCBkZWYgY2hlY2tfZW52
aXJvbihwcm9kdWN0KToKICAgICAgICAgICAgICAgICBpZiBpc193aW5kb3dzOgogICAgICAgICAg
ICAgICAgICAgICBtZXNzYWdlID0gIiIiTWlzc2luZyBob3N0cyBmaWxlIGNvbmZpZ3VyYXRpb24u
IFJ1bgogCi1weXRob24gd3B0IG1ha2UtaG9zdHMtZmlsZSB8IE91dC1GaWxlICVTeXN0ZW1Sb290
JVxTeXN0ZW0zMlxkcml2ZXJzXGV0Y1xob3N0cyAtRW5jb2RpbmcgYXNjaWkgLUFwcGVuZAorcHl0
aG9uICVzIG1ha2UtaG9zdHMtZmlsZSB8IE91dC1GaWxlICVzIC1FbmNvZGluZyBhc2NpaSAtQXBw
ZW5kCiAKLWluIFBvd2VyU2hlbGwgd2l0aCBBZG1pbmlzdHJhdG9yIHByaXZpbGVnZXMuIiIiICUg
aG9zdHNfcGF0aAoraW4gUG93ZXJTaGVsbCB3aXRoIEFkbWluaXN0cmF0b3IgcHJpdmlsZWdlcy4i
IiIgJSAod3B0X3BhdGgsIGhvc3RzX3BhdGgpCiAgICAgICAgICAgICAgICAgZWxzZToKICAgICAg
ICAgICAgICAgICAgICAgbWVzc2FnZSA9ICIiIk1pc3NpbmcgaG9zdHMgZmlsZSBjb25maWd1cmF0
aW9uLiBSdW4KIAotLi93cHQgbWFrZS1ob3N0cy1maWxlIHwgc3VkbyB0ZWUgLWEgJXMiIiIgJSBo
b3N0c19wYXRoCislcyBtYWtlLWhvc3RzLWZpbGUgfCBzdWRvIHRlZSAtYSAlcyIiIiAlICgiLi93
cHQiIGlmIHdwdF9wYXRoID09ICJ3cHQiIGVsc2Ugd3B0X3BhdGgsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBob3N0c19wYXRoKQogICAgICAgICAgICAgICAgIHJh
aXNlIFdwdHJ1bkVycm9yKG1lc3NhZ2UpCiAKIApAQCAtMTM1LDcgKzE1Nyw3IEBAIGNsYXNzIEJy
b3dzZXJTZXR1cChvYmplY3QpOgogICAgIGJyb3dzZXJfY2xzID0gTm9uZQogCiAgICAgZGVmIF9f
aW5pdF9fKHNlbGYsIHZlbnYsIHByb21wdD1UcnVlLCBzdWJfcHJvZHVjdD1Ob25lKToKLSAgICAg
ICAgc2VsZi5icm93c2VyID0gc2VsZi5icm93c2VyX2NscygpCisgICAgICAgIHNlbGYuYnJvd3Nl
ciA9IHNlbGYuYnJvd3Nlcl9jbHMobG9nZ2VyKQogICAgICAgICBzZWxmLnZlbnYgPSB2ZW52CiAg
ICAgICAgIHNlbGYucHJvbXB0ID0gcHJvbXB0CiAgICAgICAgIHNlbGYuc3ViX3Byb2R1Y3QgPSBz
dWJfcHJvZHVjdApAQCAtMTQ0LDE4ICsxNjYsMTkgQEAgY2xhc3MgQnJvd3NlclNldHVwKG9iamVj
dCk6CiAgICAgICAgIGlmIG5vdCBzZWxmLnByb21wdDoKICAgICAgICAgICAgIHJldHVybiBUcnVl
CiAgICAgICAgIHdoaWxlIFRydWU6Ci0gICAgICAgICAgICByZXNwID0gcmF3X2lucHV0KCJEb3du
bG9hZCBhbmQgaW5zdGFsbCAlcyBbWS9uXT8gIiAlIGNvbXBvbmVudCkuc3RyaXAoKS5sb3dlcigp
CisgICAgICAgICAgICByZXNwID0gaW5wdXQoIkRvd25sb2FkIGFuZCBpbnN0YWxsICVzIFtZL25d
PyAiICUgY29tcG9uZW50KS5zdHJpcCgpLmxvd2VyKCkKICAgICAgICAgICAgIGlmIG5vdCByZXNw
IG9yIHJlc3AgPT0gInkiOgogICAgICAgICAgICAgICAgIHJldHVybiBUcnVlCiAgICAgICAgICAg
ICBlbGlmIHJlc3AgPT0gIm4iOgogICAgICAgICAgICAgICAgIHJldHVybiBGYWxzZQogCi0gICAg
ZGVmIGluc3RhbGwoc2VsZiwgdmVudik6CisgICAgZGVmIGluc3RhbGwoc2VsZiwgY2hhbm5lbD1O
b25lKToKICAgICAgICAgaWYgc2VsZi5wcm9tcHRfaW5zdGFsbChzZWxmLm5hbWUpOgotICAgICAg
ICAgICAgcmV0dXJuIHNlbGYuYnJvd3Nlci5pbnN0YWxsKHZlbnYucGF0aCkKKyAgICAgICAgICAg
IHJldHVybiBzZWxmLmJyb3dzZXIuaW5zdGFsbChzZWxmLnZlbnYucGF0aCwgY2hhbm5lbCkKIAog
ICAgIGRlZiBpbnN0YWxsX3JlcXVpcmVtZW50cyhzZWxmKToKLSAgICAgICAgc2VsZi52ZW52Lmlu
c3RhbGxfcmVxdWlyZW1lbnRzKG9zLnBhdGguam9pbih3cHRfcm9vdCwgInRvb2xzIiwgIndwdHJ1
bm5lciIsIHNlbGYuYnJvd3Nlci5yZXF1aXJlbWVudHMpKQorICAgICAgICBpZiBub3Qgc2VsZi52
ZW52LnNraXBfdmlydHVhbGVudl9zZXR1cDoKKyAgICAgICAgICAgIHNlbGYudmVudi5pbnN0YWxs
X3JlcXVpcmVtZW50cyhvcy5wYXRoLmpvaW4od3B0X3Jvb3QsICJ0b29scyIsICJ3cHRydW5uZXIi
LCBzZWxmLmJyb3dzZXIucmVxdWlyZW1lbnRzKSkKIAogICAgIGRlZiBzZXR1cChzZWxmLCBrd2Fy
Z3MpOgogICAgICAgICBzZWxmLnNldHVwX2t3YXJncyhrd2FyZ3MpCkBAIC0xNjcsNyArMTkwLDEy
IEBAIGNsYXNzIEZpcmVmb3goQnJvd3NlclNldHVwKToKIAogICAgIGRlZiBzZXR1cF9rd2FyZ3Mo
c2VsZiwga3dhcmdzKToKICAgICAgICAgaWYga3dhcmdzWyJiaW5hcnkiXSBpcyBOb25lOgotICAg
ICAgICAgICAgYmluYXJ5ID0gc2VsZi5icm93c2VyLmZpbmRfYmluYXJ5KHNlbGYudmVudi5wYXRo
KQorICAgICAgICAgICAgaWYga3dhcmdzWyJicm93c2VyX2NoYW5uZWwiXSBpcyBOb25lOgorICAg
ICAgICAgICAgICAgIGt3YXJnc1siYnJvd3Nlcl9jaGFubmVsIl0gPSAibmlnaHRseSIKKyAgICAg
ICAgICAgICAgICBsb2dnZXIuaW5mbygiTm8gYnJvd3NlciBjaGFubmVsIHNwZWNpZmllZC4gUnVu
bmluZyBuaWdodGx5IGluc3RlYWQuIikKKworICAgICAgICAgICAgYmluYXJ5ID0gc2VsZi5icm93
c2VyLmZpbmRfYmluYXJ5KHNlbGYudmVudi5wYXRoLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGt3YXJnc1siYnJvd3Nlcl9jaGFubmVsIl0pCiAgICAgICAg
ICAgICBpZiBiaW5hcnkgaXMgTm9uZToKICAgICAgICAgICAgICAgICByYWlzZSBXcHRydW5FcnJv
cigiIiJGaXJlZm94IGJpbmFyeSBub3QgZm91bmQgb24gJFBBVEguCiAKQEAgLTE4Miw3ICsyMTAs
NyBAQCBJbnN0YWxsIEZpcmVmb3ggb3IgdXNlIC0tYmluYXJ5IHRvIHNldCB0aGUgYmluYXJ5IHBh
dGgiIiIpCiAgICAgICAgICAgICAgICAgbG9nZ2VyLmluZm8oIiIiQ2FuJ3QgZmluZCBjZXJ0dXRp
bCwgY2VydGlmaWNhdGVzIHdpbGwgbm90IGJlIGNoZWNrZWQuCiBDb25zaWRlciBpbnN0YWxsaW5n
IGNlcnR1dGlsIHZpYSB5b3VyIE9TIHBhY2thZ2UgbWFuYWdlciBvciBkaXJlY3RseS4iIiIpCiAg
ICAgICAgICAgICBlbHNlOgotICAgICAgICAgICAgICAgIHByaW50KCJVc2luZyBjZXJ0dXRpbCAl
cyIgJSBjZXJ0dXRpbCkKKyAgICAgICAgICAgICAgICBsb2dnZXIuaW5mbygiVXNpbmcgY2VydHV0
aWwgJXMiICUgY2VydHV0aWwpCiAKICAgICAgICAgICAgIGt3YXJnc1siY2VydHV0aWxfYmluYXJ5
Il0gPSBjZXJ0dXRpbAogCkBAIC0xOTMsMjggKzIyMSw5NCBAQCBDb25zaWRlciBpbnN0YWxsaW5n
IGNlcnR1dGlsIHZpYSB5b3VyIE9TIHBhY2thZ2UgbWFuYWdlciBvciBkaXJlY3RseS4iIiIpCiAg
ICAgICAgICAgICAgICAgaW5zdGFsbCA9IHNlbGYucHJvbXB0X2luc3RhbGwoImdlY2tvZHJpdmVy
IikKIAogICAgICAgICAgICAgICAgIGlmIGluc3RhbGw6Ci0gICAgICAgICAgICAgICAgICAgIHBy
aW50KCJEb3dubG9hZGluZyBnZWNrb2RyaXZlciIpCisgICAgICAgICAgICAgICAgICAgIGxvZ2dl
ci5pbmZvKCJEb3dubG9hZGluZyBnZWNrb2RyaXZlciIpCiAgICAgICAgICAgICAgICAgICAgIHdl
YmRyaXZlcl9iaW5hcnkgPSBzZWxmLmJyb3dzZXIuaW5zdGFsbF93ZWJkcml2ZXIoZGVzdD1zZWxm
LnZlbnYuYmluX3BhdGgpCiAgICAgICAgICAgICBlbHNlOgotICAgICAgICAgICAgICAgIHByaW50
KCJVc2luZyB3ZWJkcml2ZXIgYmluYXJ5ICVzIiAlIHdlYmRyaXZlcl9iaW5hcnkpCisgICAgICAg
ICAgICAgICAgbG9nZ2VyLmluZm8oIlVzaW5nIHdlYmRyaXZlciBiaW5hcnkgJXMiICUgd2ViZHJp
dmVyX2JpbmFyeSkKIAogICAgICAgICAgICAgaWYgd2ViZHJpdmVyX2JpbmFyeToKICAgICAgICAg
ICAgICAgICBrd2FyZ3NbIndlYmRyaXZlcl9iaW5hcnkiXSA9IHdlYmRyaXZlcl9iaW5hcnkKICAg
ICAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAgICAgcHJpbnQoIlVuYWJsZSB0byBmaW5kIG9y
IGluc3RhbGwgZ2Vja29kcml2ZXIsIHNraXBwaW5nIHdkc3BlYyB0ZXN0cyIpCisgICAgICAgICAg
ICAgICAgbG9nZ2VyLmluZm8oIlVuYWJsZSB0byBmaW5kIG9yIGluc3RhbGwgZ2Vja29kcml2ZXIs
IHNraXBwaW5nIHdkc3BlYyB0ZXN0cyIpCiAgICAgICAgICAgICAgICAga3dhcmdzWyJ0ZXN0X3R5
cGVzIl0ucmVtb3ZlKCJ3ZHNwZWMiKQogCiAgICAgICAgIGlmIGt3YXJnc1sicHJlZnNfcm9vdCJd
IGlzIE5vbmU6Ci0gICAgICAgICAgICBwcmVmc19yb290ID0gc2VsZi5icm93c2VyLmluc3RhbGxf
cHJlZnMoa3dhcmdzWyJiaW5hcnkiXSwgc2VsZi52ZW52LnBhdGgpCisgICAgICAgICAgICBwcmVm
c19yb290ID0gc2VsZi5icm93c2VyLmluc3RhbGxfcHJlZnMoa3dhcmdzWyJiaW5hcnkiXSwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnZl
bnYucGF0aCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBjaGFubmVsPWt3YXJnc1siYnJvd3Nlcl9jaGFubmVsIl0pCiAgICAgICAgICAgICBrd2Fy
Z3NbInByZWZzX3Jvb3QiXSA9IHByZWZzX3Jvb3QKIAorICAgICAgICBpZiBrd2FyZ3NbImhlYWRs
ZXNzIl0gaXMgTm9uZToKKyAgICAgICAgICAgIGt3YXJnc1siaGVhZGxlc3MiXSA9IFRydWUKKyAg
ICAgICAgICAgIGxvZ2dlci5pbmZvKCJSdW5uaW5nIGluIGhlYWRsZXNzIG1vZGUsIHBhc3MgLS1u
by1oZWFkbGVzcyB0byBkaXNhYmxlIikKKworICAgICAgICAjIFR1cm4gb2ZmIEZpcmVmb3ggV2Vi
UlRDIElDRSBsb2dnaW5nIG9uIFdQVCAodHVybmVkIG9uIGJ5IG1venJ1bm5lcikKKyAgICAgICAg
b3MudW5zZXRlbnYoJ1JfTE9HX0xFVkVMJykKKyAgICAgICAgb3MudW5zZXRlbnYoJ1JfTE9HX0RF
U1RJTkFUSU9OJykKKyAgICAgICAgb3MudW5zZXRlbnYoJ1JfTE9HX1ZFUkJPU0UnKQorCisgICAg
ICAgICMgQWxsb3cgV2ViUlRDIHRlc3RzIHRvIGNhbGwgZ2V0VXNlck1lZGlhLgorICAgICAgICBr
d2FyZ3NbImV4dHJhX3ByZWZzIl0uYXBwZW5kKCJtZWRpYS5uYXZpZ2F0b3Iuc3RyZWFtcy5mYWtl
PXRydWUiKQorCisKK2NsYXNzIEZpcmVmb3hBbmRyb2lkKEJyb3dzZXJTZXR1cCk6CisgICAgbmFt
ZSA9ICJmaXJlZm94X2FuZHJvaWQiCisgICAgYnJvd3Nlcl9jbHMgPSBicm93c2VyLkZpcmVmb3hB
bmRyb2lkCiAKLWNsYXNzIEZlbm5lYyhCcm93c2VyU2V0dXApOgotICAgIG5hbWUgPSAiZmVubmVj
IgotICAgIGJyb3dzZXJfY2xzID0gYnJvd3Nlci5GZW5uZWMKKyAgICBkZWYgaW5zdGFsbChzZWxm
LCBjaGFubmVsKToKKyAgICAgICAgIyBUaGUgaW5zdGFsbCBuZWVkcyB0byBoYXBwZW4gaW4gc2V0
dXAgc28gdGhhdCB3ZSBoYXZlIGFjY2VzcyB0byBhbGwgdGhlIGt3YXJncworICAgICAgICBzZWxm
Ll9pbnN0YWxsX2Jyb3dzZXIgPSBUcnVlCisgICAgICAgIHJldHVybiBOb25lCiAKICAgICBkZWYg
c2V0dXBfa3dhcmdzKHNlbGYsIGt3YXJncyk6Ci0gICAgICAgIHBhc3MKKyAgICAgICAgZnJvbSAu
IGltcG9ydCBhbmRyb2lkCisgICAgICAgIGltcG9ydCBtb3pkZXZpY2UKKworICAgICAgICAjIFdl
IGRvbid0IHN1cHBvcnQgbXVsdGlwbGUgY2hhbm5lbHMgZm9yIGFuZHJvaWQgeWV0CisgICAgICAg
IGlmIGt3YXJnc1siYnJvd3Nlcl9jaGFubmVsIl0gaXMgTm9uZToKKyAgICAgICAgICAgIGt3YXJn
c1siYnJvd3Nlcl9jaGFubmVsIl0gPSAibmlnaHRseSIKKworICAgICAgICBpZiBrd2FyZ3NbInBy
ZWZzX3Jvb3QiXSBpcyBOb25lOgorICAgICAgICAgICAgcHJlZnNfcm9vdCA9IHNlbGYuYnJvd3Nl
ci5pbnN0YWxsX3ByZWZzKGt3YXJnc1siYmluYXJ5Il0sCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi52ZW52LnBhdGgsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hhbm5lbD1rd2FyZ3Nb
ImJyb3dzZXJfY2hhbm5lbCJdKQorICAgICAgICAgICAga3dhcmdzWyJwcmVmc19yb290Il0gPSBw
cmVmc19yb290CisKKyAgICAgICAgaWYga3dhcmdzWyJwYWNrYWdlX25hbWUiXSBpcyBOb25lOgor
ICAgICAgICAgICAga3dhcmdzWyJwYWNrYWdlX25hbWUiXSA9ICJvcmcubW96aWxsYS5nZWNrb3Zp
ZXcudGVzdCIKKyAgICAgICAgYXBwID0ga3dhcmdzWyJwYWNrYWdlX25hbWUiXQorCisgICAgICAg
IGlmIGt3YXJnc1siZGV2aWNlX3NlcmlhbCJdIGlzIE5vbmU6CisgICAgICAgICAgICBrd2FyZ3Nb
ImRldmljZV9zZXJpYWwiXSA9ICJlbXVsYXRvci01NTU0IgorCisgICAgICAgICMgV2UncmUgcnVu
bmluZyBvbiBhbiBlbXVsYXRvciBzbyBlbnN1cmUgdGhhdCdzIHNldCB1cAorICAgICAgICBpZiBr
d2FyZ3NbImRldmljZV9zZXJpYWwiXS5zdGFydHN3aXRoKCJlbXVsYXRvci0iKToKKyAgICAgICAg
ICAgIGVtdWxhdG9yID0gYW5kcm9pZC5pbnN0YWxsKGxvZ2dlciwgcmVpbnN0YWxsPUZhbHNlLCBu
b19wcm9tcHQ9bm90IHNlbGYucHJvbXB0KQorICAgICAgICAgICAgYW5kcm9pZC5zdGFydChsb2dn
ZXIsIGVtdWxhdG9yPWVtdWxhdG9yLCByZWluc3RhbGw9RmFsc2UpCisKKyAgICAgICAgaW5zdGFs
bCA9IEZhbHNlCisgICAgICAgIGlmIGhhc2F0dHIoc2VsZiwgIl9pbnN0YWxsX2Jyb3dzZXIiKToK
KyAgICAgICAgICAgIGlmIHNlbGYucHJvbXB0X2luc3RhbGwoImdlY2tvdmlldy10ZXN0Iik6Cisg
ICAgICAgICAgICAgICAgaW5zdGFsbCA9IFRydWUKKyAgICAgICAgICAgICAgICBhcGtfcGF0aCA9
IHNlbGYuYnJvd3Nlci5pbnN0YWxsKHNlbGYudmVudi5wYXRoLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hhbm5lbD1rd2FyZ3NbImJyb3dzZXJfY2hh
bm5lbCJdKQorCisgICAgICAgIGlmICJBREJfUEFUSCIgbm90IGluIG9zLmVudmlyb246CisgICAg
ICAgICAgICBhZGJfcGF0aCA9IG9zLnBhdGguam9pbihhbmRyb2lkLmdldF9zZGtfcGF0aChOb25l
KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJwbGF0Zm9ybS10b29scyIs
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiYWRiIikKKyAgICAgICAgICAg
IG9zLmVudmlyb25bIkFEQl9QQVRIIl0gPSBhZGJfcGF0aAorICAgICAgICBhZGJfcGF0aCA9IG9z
LmVudmlyb25bIkFEQl9QQVRIIl0KKworICAgICAgICBkZXZpY2UgPSBtb3pkZXZpY2UuQURCRGV2
aWNlKGFkYj1hZGJfcGF0aCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBk
ZXZpY2U9a3dhcmdzWyJkZXZpY2Vfc2VyaWFsIl0pCisKKyAgICAgICAgaWYgaW5zdGFsbDoKKyAg
ICAgICAgICAgIGRldmljZS51bmluc3RhbGxfYXBwKGFwcCkKKyAgICAgICAgICAgIGRldmljZS5p
bnN0YWxsX2FwcChhcGtfcGF0aCkKKyAgICAgICAgZWxpZiBub3QgZGV2aWNlLmlzX2FwcF9pbnN0
YWxsZWQoYXBwKToKKyAgICAgICAgICAgIHJhaXNlIFdwdHJ1bkVycm9yKCJhcHAgJXMgbm90IGlu
c3RhbGxlZCBvbiBkZXZpY2UgJXMiICUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChh
cHAsIGt3YXJnc1siZGV2aWNlX3NlcmlhbCJdKSkKIAogCiBjbGFzcyBDaHJvbWUoQnJvd3NlclNl
dHVwKToKQEAgLTIyMiw2ICszMTYsMTMgQEAgY2xhc3MgQ2hyb21lKEJyb3dzZXJTZXR1cCk6CiAg
ICAgYnJvd3Nlcl9jbHMgPSBicm93c2VyLkNocm9tZQogCiAgICAgZGVmIHNldHVwX2t3YXJncyhz
ZWxmLCBrd2FyZ3MpOgorICAgICAgICBicm93c2VyX2NoYW5uZWwgPSBrd2FyZ3NbImJyb3dzZXJf
Y2hhbm5lbCJdCisgICAgICAgIGlmIGt3YXJnc1siYmluYXJ5Il0gaXMgTm9uZToKKyAgICAgICAg
ICAgIGJpbmFyeSA9IHNlbGYuYnJvd3Nlci5maW5kX2JpbmFyeShjaGFubmVsPWJyb3dzZXJfY2hh
bm5lbCkKKyAgICAgICAgICAgIGlmIGJpbmFyeToKKyAgICAgICAgICAgICAgICBrd2FyZ3NbImJp
bmFyeSJdID0gYmluYXJ5CisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgIHJhaXNl
IFdwdHJ1bkVycm9yKCJVbmFibGUgdG8gbG9jYXRlIENocm9tZSBiaW5hcnkiKQogICAgICAgICBp
ZiBrd2FyZ3NbIndlYmRyaXZlcl9iaW5hcnkiXSBpcyBOb25lOgogICAgICAgICAgICAgd2ViZHJp
dmVyX2JpbmFyeSA9IHNlbGYuYnJvd3Nlci5maW5kX3dlYmRyaXZlcigpCiAKQEAgLTIyOSwxNSAr
MzMwLDI3IEBAIGNsYXNzIENocm9tZShCcm93c2VyU2V0dXApOgogICAgICAgICAgICAgICAgIGlu
c3RhbGwgPSBzZWxmLnByb21wdF9pbnN0YWxsKCJjaHJvbWVkcml2ZXIiKQogCiAgICAgICAgICAg
ICAgICAgaWYgaW5zdGFsbDoKLSAgICAgICAgICAgICAgICAgICAgcHJpbnQoIkRvd25sb2FkaW5n
IGNocm9tZWRyaXZlciIpCi0gICAgICAgICAgICAgICAgICAgIHdlYmRyaXZlcl9iaW5hcnkgPSBz
ZWxmLmJyb3dzZXIuaW5zdGFsbF93ZWJkcml2ZXIoZGVzdD1zZWxmLnZlbnYuYmluX3BhdGgpCisg
ICAgICAgICAgICAgICAgICAgIGxvZ2dlci5pbmZvKCJEb3dubG9hZGluZyBjaHJvbWVkcml2ZXIi
KQorICAgICAgICAgICAgICAgICAgICB3ZWJkcml2ZXJfYmluYXJ5ID0gc2VsZi5icm93c2VyLmlu
c3RhbGxfd2ViZHJpdmVyKAorICAgICAgICAgICAgICAgICAgICAgICAgZGVzdD1zZWxmLnZlbnYu
YmluX3BhdGgsCisgICAgICAgICAgICAgICAgICAgICAgICBicm93c2VyX2JpbmFyeT1rd2FyZ3Nb
ImJpbmFyeSJdLAorICAgICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICBlbHNlOgotICAg
ICAgICAgICAgICAgIHByaW50KCJVc2luZyB3ZWJkcml2ZXIgYmluYXJ5ICVzIiAlIHdlYmRyaXZl
cl9iaW5hcnkpCisgICAgICAgICAgICAgICAgbG9nZ2VyLmluZm8oIlVzaW5nIHdlYmRyaXZlciBi
aW5hcnkgJXMiICUgd2ViZHJpdmVyX2JpbmFyeSkKIAogICAgICAgICAgICAgaWYgd2ViZHJpdmVy
X2JpbmFyeToKICAgICAgICAgICAgICAgICBrd2FyZ3NbIndlYmRyaXZlcl9iaW5hcnkiXSA9IHdl
YmRyaXZlcl9iaW5hcnkKICAgICAgICAgICAgIGVsc2U6CiAgICAgICAgICAgICAgICAgcmFpc2Ug
V3B0cnVuRXJyb3IoIlVuYWJsZSB0byBsb2NhdGUgb3IgaW5zdGFsbCBjaHJvbWVkcml2ZXIgYmlu
YXJ5IikKKyAgICAgICAgaWYgYnJvd3Nlcl9jaGFubmVsIGluICgiZGV2IiwgImNhbmFyeSIpOgor
ICAgICAgICAgICAgbG9nZ2VyLmluZm8oIkF1dG9tYXRpY2FsbHkgdHVybmluZyBvbiBleHBlcmlt
ZW50YWwgZmVhdHVyZXMgZm9yIENocm9tZSBEZXYvQ2FuYXJ5IikKKyAgICAgICAgICAgIGt3YXJn
c1siYmluYXJ5X2FyZ3MiXS5hcHBlbmQoIi0tZW5hYmxlLWV4cGVyaW1lbnRhbC13ZWItcGxhdGZv
cm0tZmVhdHVyZXMiKQorICAgICAgICAgICAgIyBIQUNLKEhleGNsZXMpOiB3b3JrIGFyb3VuZCBo
dHRwczovL2dpdGh1Yi5jb20vd2ViLXBsYXRmb3JtLXRlc3RzL3dwdC9pc3N1ZXMvMTY0NDgKKyAg
ICAgICAgICAgIGt3YXJnc1sid2ViZHJpdmVyX2FyZ3MiXS5hcHBlbmQoIi0tZGlzYWJsZS1idWls
ZC1jaGVjayIpCisgICAgICAgIGlmIG9zLmdldGVudigiVEFTS0NMVVNURVJfUk9PVF9VUkwiKToK
KyAgICAgICAgICAgICMgV2UgYXJlIG9uIFRhc2tjbHVzdGVyLCB3aGVyZSBvdXIgRG9ja2VyIGNv
bnRhaW5lciBkb2VzIG5vdCBoYXZlCisgICAgICAgICAgICAjIGVub3VnaCBjYXBhYmlsaXRpZXMg
dG8gcnVuIENocm9tZSB3aXRoIHNhbmRib3hpbmcuIChnaC0yMDEzMykKKyAgICAgICAgICAgIGt3
YXJnc1siYmluYXJ5X2FyZ3MiXS5hcHBlbmQoIi0tbm8tc2FuZGJveCIpCiAKIAogY2xhc3MgQ2hy
b21lQW5kcm9pZChCcm93c2VyU2V0dXApOgpAQCAtMjQ1LDYgKzM1OCw1NCBAQCBjbGFzcyBDaHJv
bWVBbmRyb2lkKEJyb3dzZXJTZXR1cCk6CiAgICAgYnJvd3Nlcl9jbHMgPSBicm93c2VyLkNocm9t
ZUFuZHJvaWQKIAogICAgIGRlZiBzZXR1cF9rd2FyZ3Moc2VsZiwga3dhcmdzKToKKyAgICAgICAg
aWYga3dhcmdzLmdldCgiZGV2aWNlX3NlcmlhbCIpOgorICAgICAgICAgICAgc2VsZi5icm93c2Vy
LmRldmljZV9zZXJpYWwgPSBrd2FyZ3NbImRldmljZV9zZXJpYWwiXQorICAgICAgICBicm93c2Vy
X2NoYW5uZWwgPSBrd2FyZ3NbImJyb3dzZXJfY2hhbm5lbCJdCisgICAgICAgIGlmIGt3YXJnc1si
cGFja2FnZV9uYW1lIl0gaXMgTm9uZToKKyAgICAgICAgICAgIGt3YXJnc1sicGFja2FnZV9uYW1l
Il0gPSBzZWxmLmJyb3dzZXIuZmluZF9iaW5hcnkoCisgICAgICAgICAgICAgICAgY2hhbm5lbD1i
cm93c2VyX2NoYW5uZWwpCisgICAgICAgIGlmIGt3YXJnc1sid2ViZHJpdmVyX2JpbmFyeSJdIGlz
IE5vbmU6CisgICAgICAgICAgICB3ZWJkcml2ZXJfYmluYXJ5ID0gc2VsZi5icm93c2VyLmZpbmRf
d2ViZHJpdmVyKCkKKworICAgICAgICAgICAgaWYgd2ViZHJpdmVyX2JpbmFyeSBpcyBOb25lOgor
ICAgICAgICAgICAgICAgIGluc3RhbGwgPSBzZWxmLnByb21wdF9pbnN0YWxsKCJjaHJvbWVkcml2
ZXIiKQorCisgICAgICAgICAgICAgICAgaWYgaW5zdGFsbDoKKyAgICAgICAgICAgICAgICAgICAg
bG9nZ2VyLmluZm8oIkRvd25sb2FkaW5nIGNocm9tZWRyaXZlciIpCisgICAgICAgICAgICAgICAg
ICAgIHdlYmRyaXZlcl9iaW5hcnkgPSBzZWxmLmJyb3dzZXIuaW5zdGFsbF93ZWJkcml2ZXIoCisg
ICAgICAgICAgICAgICAgICAgICAgICBkZXN0PXNlbGYudmVudi5iaW5fcGF0aCwKKyAgICAgICAg
ICAgICAgICAgICAgICAgIGJyb3dzZXJfYmluYXJ5PWt3YXJnc1sicGFja2FnZV9uYW1lIl0sCisg
ICAgICAgICAgICAgICAgICAgICkKKyAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAg
bG9nZ2VyLmluZm8oIlVzaW5nIHdlYmRyaXZlciBiaW5hcnkgJXMiICUgd2ViZHJpdmVyX2JpbmFy
eSkKKworICAgICAgICAgICAgaWYgd2ViZHJpdmVyX2JpbmFyeToKKyAgICAgICAgICAgICAgICBr
d2FyZ3NbIndlYmRyaXZlcl9iaW5hcnkiXSA9IHdlYmRyaXZlcl9iaW5hcnkKKyAgICAgICAgICAg
IGVsc2U6CisgICAgICAgICAgICAgICAgcmFpc2UgV3B0cnVuRXJyb3IoIlVuYWJsZSB0byBsb2Nh
dGUgb3IgaW5zdGFsbCBjaHJvbWVkcml2ZXIgYmluYXJ5IikKKyAgICAgICAgaWYgYnJvd3Nlcl9j
aGFubmVsIGluICgiZGV2IiwgImNhbmFyeSIpOgorICAgICAgICAgICAgbG9nZ2VyLmluZm8oIkF1
dG9tYXRpY2FsbHkgdHVybmluZyBvbiBleHBlcmltZW50YWwgZmVhdHVyZXMgZm9yIENocm9tZSBE
ZXYvQ2FuYXJ5IikKKyAgICAgICAgICAgIGt3YXJnc1siYmluYXJ5X2FyZ3MiXS5hcHBlbmQoIi0t
ZW5hYmxlLWV4cGVyaW1lbnRhbC13ZWItcGxhdGZvcm0tZmVhdHVyZXMiKQorICAgICAgICAgICAg
IyBIQUNLKEhleGNsZXMpOiB3b3JrIGFyb3VuZCBodHRwczovL2dpdGh1Yi5jb20vd2ViLXBsYXRm
b3JtLXRlc3RzL3dwdC9pc3N1ZXMvMTY0NDgKKyAgICAgICAgICAgIGt3YXJnc1sid2ViZHJpdmVy
X2FyZ3MiXS5hcHBlbmQoIi0tZGlzYWJsZS1idWlsZC1jaGVjayIpCisKKworY2xhc3MgQ2hyb21l
aU9TKEJyb3dzZXJTZXR1cCk6CisgICAgbmFtZSA9ICJjaHJvbWVfaW9zIgorICAgIGJyb3dzZXJf
Y2xzID0gYnJvd3Nlci5DaHJvbWVpT1MKKworICAgIGRlZiBzZXR1cF9rd2FyZ3Moc2VsZiwga3dh
cmdzKToKKyAgICAgICAgaWYga3dhcmdzWyJ3ZWJkcml2ZXJfYmluYXJ5Il0gaXMgTm9uZToKKyAg
ICAgICAgICAgIHJhaXNlIFdwdHJ1bkVycm9yKCJVbmFibGUgdG8gbG9jYXRlIG9yIGluc3RhbGwg
Y2hyb21lZHJpdmVyIGJpbmFyeSIpCisKKworY2xhc3MgQW5kcm9pZFdlYnZpZXcoQnJvd3NlclNl
dHVwKToKKyAgICBuYW1lID0gImFuZHJvaWRfd2VidmlldyIKKyAgICBicm93c2VyX2NscyA9IGJy
b3dzZXIuQW5kcm9pZFdlYnZpZXcKKworICAgIGRlZiBzZXR1cF9rd2FyZ3Moc2VsZiwga3dhcmdz
KToKKyAgICAgICAgaWYga3dhcmdzLmdldCgiZGV2aWNlX3NlcmlhbCIpOgorICAgICAgICAgICAg
c2VsZi5icm93c2VyLmRldmljZV9zZXJpYWwgPSBrd2FyZ3NbImRldmljZV9zZXJpYWwiXQogICAg
ICAgICBpZiBrd2FyZ3NbIndlYmRyaXZlcl9iaW5hcnkiXSBpcyBOb25lOgogICAgICAgICAgICAg
d2ViZHJpdmVyX2JpbmFyeSA9IHNlbGYuYnJvd3Nlci5maW5kX3dlYmRyaXZlcigpCiAKQEAgLTI1
MiwxMCArNDEzLDEwIEBAIGNsYXNzIENocm9tZUFuZHJvaWQoQnJvd3NlclNldHVwKToKICAgICAg
ICAgICAgICAgICBpbnN0YWxsID0gc2VsZi5wcm9tcHRfaW5zdGFsbCgiY2hyb21lZHJpdmVyIikK
IAogICAgICAgICAgICAgICAgIGlmIGluc3RhbGw6Ci0gICAgICAgICAgICAgICAgICAgIHByaW50
KCJEb3dubG9hZGluZyBjaHJvbWVkcml2ZXIiKQorICAgICAgICAgICAgICAgICAgICBsb2dnZXIu
aW5mbygiRG93bmxvYWRpbmcgY2hyb21lZHJpdmVyIikKICAgICAgICAgICAgICAgICAgICAgd2Vi
ZHJpdmVyX2JpbmFyeSA9IHNlbGYuYnJvd3Nlci5pbnN0YWxsX3dlYmRyaXZlcihkZXN0PXNlbGYu
dmVudi5iaW5fcGF0aCkKICAgICAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAgICAgcHJpbnQo
IlVzaW5nIHdlYmRyaXZlciBiaW5hcnkgJXMiICUgd2ViZHJpdmVyX2JpbmFyeSkKKyAgICAgICAg
ICAgICAgICBsb2dnZXIuaW5mbygiVXNpbmcgd2ViZHJpdmVyIGJpbmFyeSAlcyIgJSB3ZWJkcml2
ZXJfYmluYXJ5KQogCiAgICAgICAgICAgICBpZiB3ZWJkcml2ZXJfYmluYXJ5OgogICAgICAgICAg
ICAgICAgIGt3YXJnc1sid2ViZHJpdmVyX2JpbmFyeSJdID0gd2ViZHJpdmVyX2JpbmFyeQpAQCAt
Mjc1LDEwICs0MzYsMTAgQEAgY2xhc3MgT3BlcmEoQnJvd3NlclNldHVwKToKICAgICAgICAgICAg
ICAgICBpbnN0YWxsID0gc2VsZi5wcm9tcHRfaW5zdGFsbCgib3BlcmFkcml2ZXIiKQogCiAgICAg
ICAgICAgICAgICAgaWYgaW5zdGFsbDoKLSAgICAgICAgICAgICAgICAgICAgcHJpbnQoIkRvd25s
b2FkaW5nIG9wZXJhZHJpdmVyIikKKyAgICAgICAgICAgICAgICAgICAgbG9nZ2VyLmluZm8oIkRv
d25sb2FkaW5nIG9wZXJhZHJpdmVyIikKICAgICAgICAgICAgICAgICAgICAgd2ViZHJpdmVyX2Jp
bmFyeSA9IHNlbGYuYnJvd3Nlci5pbnN0YWxsX3dlYmRyaXZlcihkZXN0PXNlbGYudmVudi5iaW5f
cGF0aCkKICAgICAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAgICAgcHJpbnQoIlVzaW5nIHdl
YmRyaXZlciBiaW5hcnkgJXMiICUgd2ViZHJpdmVyX2JpbmFyeSkKKyAgICAgICAgICAgICAgICBs
b2dnZXIuaW5mbygiVXNpbmcgd2ViZHJpdmVyIGJpbmFyeSAlcyIgJSB3ZWJkcml2ZXJfYmluYXJ5
KQogCiAgICAgICAgICAgICBpZiB3ZWJkcml2ZXJfYmluYXJ5OgogICAgICAgICAgICAgICAgIGt3
YXJnc1sid2ViZHJpdmVyX2JpbmFyeSJdID0gd2ViZHJpdmVyX2JpbmFyeQpAQCAtMjg2LDExICs0
NDcsNDUgQEAgY2xhc3MgT3BlcmEoQnJvd3NlclNldHVwKToKICAgICAgICAgICAgICAgICByYWlz
ZSBXcHRydW5FcnJvcigiVW5hYmxlIHRvIGxvY2F0ZSBvciBpbnN0YWxsIG9wZXJhZHJpdmVyIGJp
bmFyeSIpCiAKIAorY2xhc3MgRWRnZUNocm9taXVtKEJyb3dzZXJTZXR1cCk6CisgICAgbmFtZSA9
ICJNaWNyb3NvZnRFZGdlIgorICAgIGJyb3dzZXJfY2xzID0gYnJvd3Nlci5FZGdlQ2hyb21pdW0K
KworICAgIGRlZiBzZXR1cF9rd2FyZ3Moc2VsZiwga3dhcmdzKToKKyAgICAgICAgYnJvd3Nlcl9j
aGFubmVsID0ga3dhcmdzWyJicm93c2VyX2NoYW5uZWwiXQorICAgICAgICBpZiBrd2FyZ3NbImJp
bmFyeSJdIGlzIE5vbmU6CisgICAgICAgICAgICBiaW5hcnkgPSBzZWxmLmJyb3dzZXIuZmluZF9i
aW5hcnkoY2hhbm5lbD1icm93c2VyX2NoYW5uZWwpCisgICAgICAgICAgICBpZiBiaW5hcnk6Cisg
ICAgICAgICAgICAgICAga3dhcmdzWyJiaW5hcnkiXSA9IGJpbmFyeQorICAgICAgICAgICAgZWxz
ZToKKyAgICAgICAgICAgICAgICByYWlzZSBXcHRydW5FcnJvcigiVW5hYmxlIHRvIGxvY2F0ZSBF
ZGdlIGJpbmFyeSIpCisgICAgICAgIGlmIGt3YXJnc1sid2ViZHJpdmVyX2JpbmFyeSJdIGlzIE5v
bmU6CisgICAgICAgICAgICB3ZWJkcml2ZXJfYmluYXJ5ID0gc2VsZi5icm93c2VyLmZpbmRfd2Vi
ZHJpdmVyKCkKKworICAgICAgICAgICAgIyBJbnN0YWxsIGJyb3dzZXIgaWYgbm9uZSBhcmUgZm91
bmQgb3IgaWYgaXQncyBmb3VuZCBpbiB2ZW52IHBhdGgKKyAgICAgICAgICAgIGlmIHdlYmRyaXZl
cl9iaW5hcnkgaXMgTm9uZSBvciB3ZWJkcml2ZXJfYmluYXJ5IGluIHNlbGYudmVudi5iaW5fcGF0
aDoKKyAgICAgICAgICAgICAgICBpbnN0YWxsID0gc2VsZi5wcm9tcHRfaW5zdGFsbCgibXNlZGdl
ZHJpdmVyIikKKworICAgICAgICAgICAgICAgIGlmIGluc3RhbGw6CisgICAgICAgICAgICAgICAg
ICAgIGxvZ2dlci5pbmZvKCJEb3dubG9hZGluZyBtc2VkZ2Vkcml2ZXIiKQorICAgICAgICAgICAg
ICAgICAgICB3ZWJkcml2ZXJfYmluYXJ5ID0gc2VsZi5icm93c2VyLmluc3RhbGxfd2ViZHJpdmVy
KGRlc3Q9c2VsZi52ZW52LmJpbl9wYXRoLCBjaGFubmVsPWJyb3dzZXJfY2hhbm5lbCkKKyAgICAg
ICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgbG9nZ2VyLmluZm8oIlVzaW5nIHdlYmRyaXZl
ciBiaW5hcnkgJXMiICUgd2ViZHJpdmVyX2JpbmFyeSkKKworICAgICAgICAgICAgaWYgd2ViZHJp
dmVyX2JpbmFyeToKKyAgICAgICAgICAgICAgICBrd2FyZ3NbIndlYmRyaXZlcl9iaW5hcnkiXSA9
IHdlYmRyaXZlcl9iaW5hcnkKKyAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgcmFp
c2UgV3B0cnVuRXJyb3IoIlVuYWJsZSB0byBsb2NhdGUgb3IgaW5zdGFsbCBtc2VkZ2Vkcml2ZXIg
YmluYXJ5IikKKyAgICAgICAgaWYgYnJvd3Nlcl9jaGFubmVsIGluICgiZGV2IiwgImNhbmFyeSIp
OgorICAgICAgICAgICAgbG9nZ2VyLmluZm8oIkF1dG9tYXRpY2FsbHkgdHVybmluZyBvbiBleHBl
cmltZW50YWwgZmVhdHVyZXMgZm9yIEVkZ2UgRGV2L0NhbmFyeSIpCisgICAgICAgICAgICBrd2Fy
Z3NbImJpbmFyeV9hcmdzIl0uYXBwZW5kKCItLWVuYWJsZS1leHBlcmltZW50YWwtd2ViLXBsYXRm
b3JtLWZlYXR1cmVzIikKKworCiBjbGFzcyBFZGdlKEJyb3dzZXJTZXR1cCk6CiAgICAgbmFtZSA9
ICJlZGdlIgogICAgIGJyb3dzZXJfY2xzID0gYnJvd3Nlci5FZGdlCiAKLSAgICBkZWYgaW5zdGFs
bChzZWxmLCB2ZW52KToKKyAgICBkZWYgaW5zdGFsbChzZWxmLCBjaGFubmVsPU5vbmUpOgogICAg
ICAgICByYWlzZSBOb3RJbXBsZW1lbnRlZEVycm9yCiAKICAgICBkZWYgc2V0dXBfa3dhcmdzKHNl
bGYsIGt3YXJncyk6CkBAIC0zMDcsMTEgKzUwMiwxNiBAQCBodHRwczovL2RldmVsb3Blci5taWNy
b3NvZnQuY29tL2VuLXVzL21pY3Jvc29mdC1lZGdlL3Rvb2xzL3dlYmRyaXZlci8KICAgICAgICAg
ICAgIGt3YXJnc1sid2ViZHJpdmVyX2JpbmFyeSJdID0gd2ViZHJpdmVyX2JpbmFyeQogCiAKK2Ns
YXNzIEVkZ2VXZWJEcml2ZXIoRWRnZSk6CisgICAgbmFtZSA9ICJlZGdlX3dlYmRyaXZlciIKKyAg
ICBicm93c2VyX2NscyA9IGJyb3dzZXIuRWRnZVdlYkRyaXZlcgorCisKIGNsYXNzIEludGVybmV0
RXhwbG9yZXIoQnJvd3NlclNldHVwKToKICAgICBuYW1lID0gImllIgogICAgIGJyb3dzZXJfY2xz
ID0gYnJvd3Nlci5JbnRlcm5ldEV4cGxvcmVyCiAKLSAgICBkZWYgaW5zdGFsbChzZWxmLCB2ZW52
KToKKyAgICBkZWYgaW5zdGFsbChzZWxmLCBjaGFubmVsPU5vbmUpOgogICAgICAgICByYWlzZSBO
b3RJbXBsZW1lbnRlZEVycm9yCiAKICAgICBkZWYgc2V0dXBfa3dhcmdzKHNlbGYsIGt3YXJncyk6
CkBAIC0zMzIsMTIgKzUzMiwxMiBAQCBjbGFzcyBTYWZhcmkoQnJvd3NlclNldHVwKToKICAgICBu
YW1lID0gInNhZmFyaSIKICAgICBicm93c2VyX2NscyA9IGJyb3dzZXIuU2FmYXJpCiAKLSAgICBk
ZWYgaW5zdGFsbChzZWxmLCB2ZW52KToKKyAgICBkZWYgaW5zdGFsbChzZWxmLCBjaGFubmVsPU5v
bmUpOgogICAgICAgICByYWlzZSBOb3RJbXBsZW1lbnRlZEVycm9yCiAKICAgICBkZWYgc2V0dXBf
a3dhcmdzKHNlbGYsIGt3YXJncyk6CiAgICAgICAgIGlmIGt3YXJnc1sid2ViZHJpdmVyX2JpbmFy
eSJdIGlzIE5vbmU6Ci0gICAgICAgICAgICB3ZWJkcml2ZXJfYmluYXJ5ID0gc2VsZi5icm93c2Vy
LmZpbmRfd2ViZHJpdmVyKCkKKyAgICAgICAgICAgIHdlYmRyaXZlcl9iaW5hcnkgPSBzZWxmLmJy
b3dzZXIuZmluZF93ZWJkcml2ZXIoY2hhbm5lbD1rd2FyZ3NbImJyb3dzZXJfY2hhbm5lbCJdKQog
CiAgICAgICAgICAgICBpZiB3ZWJkcml2ZXJfYmluYXJ5IGlzIE5vbmU6CiAgICAgICAgICAgICAg
ICAgcmFpc2UgV3B0cnVuRXJyb3IoIlVuYWJsZSB0byBsb2NhdGUgc2FmYXJpZHJpdmVyIGJpbmFy
eSIpCkBAIC0zNDksNyArNTQ5LDcgQEAgY2xhc3MgU2F1Y2UoQnJvd3NlclNldHVwKToKICAgICBu
YW1lID0gInNhdWNlIgogICAgIGJyb3dzZXJfY2xzID0gYnJvd3Nlci5TYXVjZQogCi0gICAgZGVm
IGluc3RhbGwoc2VsZiwgdmVudik6CisgICAgZGVmIGluc3RhbGwoc2VsZiwgY2hhbm5lbD1Ob25l
KToKICAgICAgICAgcmFpc2UgTm90SW1wbGVtZW50ZWRFcnJvcgogCiAgICAgZGVmIHNldHVwX2t3
YXJncyhzZWxmLCBrd2FyZ3MpOgpAQCAtMzYyLDU5ICs1NjIsMTMwIEBAIGNsYXNzIFNlcnZvKEJy
b3dzZXJTZXR1cCk6CiAgICAgbmFtZSA9ICJzZXJ2byIKICAgICBicm93c2VyX2NscyA9IGJyb3dz
ZXIuU2Vydm8KIAotICAgIGRlZiBpbnN0YWxsKHNlbGYsIHZlbnYpOgorICAgIGRlZiBpbnN0YWxs
KHNlbGYsIGNoYW5uZWw9Tm9uZSk6CiAgICAgICAgIGlmIHNlbGYucHJvbXB0X2luc3RhbGwoc2Vs
Zi5uYW1lKToKLSAgICAgICAgICAgIHJldHVybiBzZWxmLmJyb3dzZXIuaW5zdGFsbCh2ZW52LnBh
dGgpCisgICAgICAgICAgICByZXR1cm4gc2VsZi5icm93c2VyLmluc3RhbGwoc2VsZi52ZW52LnBh
dGgpCiAKICAgICBkZWYgc2V0dXBfa3dhcmdzKHNlbGYsIGt3YXJncyk6CiAgICAgICAgIGlmIGt3
YXJnc1siYmluYXJ5Il0gaXMgTm9uZToKLSAgICAgICAgICAgIGJpbmFyeSA9IHNlbGYuYnJvd3Nl
ci5maW5kX2JpbmFyeSgpCisgICAgICAgICAgICBiaW5hcnkgPSBzZWxmLmJyb3dzZXIuZmluZF9i
aW5hcnkoc2VsZi52ZW52LnBhdGgsIE5vbmUpCiAKICAgICAgICAgICAgIGlmIGJpbmFyeSBpcyBO
b25lOgotICAgICAgICAgICAgICAgIHJhaXNlIFdwdHJ1bkVycm9yKCJVbmFibGUgdG8gZmluZCBz
ZXJ2byBiaW5hcnkgb24gdGhlIFBBVEgiKQorICAgICAgICAgICAgICAgIHJhaXNlIFdwdHJ1bkVy
cm9yKCJVbmFibGUgdG8gZmluZCBzZXJ2byBiaW5hcnkgaW4gUEFUSCIpCiAgICAgICAgICAgICBr
d2FyZ3NbImJpbmFyeSJdID0gYmluYXJ5CiAKIAorY2xhc3MgU2Vydm9XZWJEcml2ZXIoU2Vydm8p
OgorICAgIG5hbWUgPSAic2Vydm9kcml2ZXIiCisgICAgYnJvd3Nlcl9jbHMgPSBicm93c2VyLlNl
cnZvV2ViRHJpdmVyCisKKwogY2xhc3MgV2ViS2l0KEJyb3dzZXJTZXR1cCk6CiAgICAgbmFtZSA9
ICJ3ZWJraXQiCiAgICAgYnJvd3Nlcl9jbHMgPSBicm93c2VyLldlYktpdAogCi0gICAgZGVmIGlu
c3RhbGwoc2VsZiwgdmVudik6CisgICAgZGVmIGluc3RhbGwoc2VsZiwgY2hhbm5lbD1Ob25lKToK
ICAgICAgICAgcmFpc2UgTm90SW1wbGVtZW50ZWRFcnJvcgogCiAgICAgZGVmIHNldHVwX2t3YXJn
cyhzZWxmLCBrd2FyZ3MpOgogICAgICAgICBwYXNzCiAKIAorY2xhc3MgV2ViS2l0R1RLTWluaUJy
b3dzZXIoQnJvd3NlclNldHVwKToKKyAgICBuYW1lID0gIndlYmtpdGd0a19taW5pYnJvd3NlciIK
KyAgICBicm93c2VyX2NscyA9IGJyb3dzZXIuV2ViS2l0R1RLTWluaUJyb3dzZXIKKworICAgIGRl
ZiBpbnN0YWxsKHNlbGYsIGNoYW5uZWw9Tm9uZSk6CisgICAgICAgIHJhaXNlIE5vdEltcGxlbWVu
dGVkRXJyb3IKKworICAgIGRlZiBzZXR1cF9rd2FyZ3Moc2VsZiwga3dhcmdzKToKKyAgICAgICAg
aWYga3dhcmdzWyJiaW5hcnkiXSBpcyBOb25lOgorICAgICAgICAgICAgYmluYXJ5ID0gc2VsZi5i
cm93c2VyLmZpbmRfYmluYXJ5KGNoYW5uZWw9a3dhcmdzWyJicm93c2VyX2NoYW5uZWwiXSkKKwor
ICAgICAgICAgICAgaWYgYmluYXJ5IGlzIE5vbmU6CisgICAgICAgICAgICAgICAgcmFpc2UgV3B0
cnVuRXJyb3IoIlVuYWJsZSB0byBmaW5kIE1pbmlCcm93c2VyIGJpbmFyeSIpCisgICAgICAgICAg
ICBrd2FyZ3NbImJpbmFyeSJdID0gYmluYXJ5CisKKyAgICAgICAgaWYga3dhcmdzWyJ3ZWJkcml2
ZXJfYmluYXJ5Il0gaXMgTm9uZToKKyAgICAgICAgICAgIHdlYmRyaXZlcl9iaW5hcnkgPSBzZWxm
LmJyb3dzZXIuZmluZF93ZWJkcml2ZXIoY2hhbm5lbD1rd2FyZ3NbImJyb3dzZXJfY2hhbm5lbCJd
KQorCisgICAgICAgICAgICBpZiB3ZWJkcml2ZXJfYmluYXJ5IGlzIE5vbmU6CisgICAgICAgICAg
ICAgICAgcmFpc2UgV3B0cnVuRXJyb3IoIlVuYWJsZSB0byBmaW5kIFdlYktpdFdlYkRyaXZlciBp
biBQQVRIIikKKyAgICAgICAgICAgIGt3YXJnc1sid2ViZHJpdmVyX2JpbmFyeSJdID0gd2ViZHJp
dmVyX2JpbmFyeQorCisKK2NsYXNzIEVwaXBoYW55KEJyb3dzZXJTZXR1cCk6CisgICAgbmFtZSA9
ICJlcGlwaGFueSIKKyAgICBicm93c2VyX2NscyA9IGJyb3dzZXIuRXBpcGhhbnkKKworICAgIGRl
ZiBpbnN0YWxsKHNlbGYsIGNoYW5uZWw9Tm9uZSk6CisgICAgICAgIHJhaXNlIE5vdEltcGxlbWVu
dGVkRXJyb3IKKworICAgIGRlZiBzZXR1cF9rd2FyZ3Moc2VsZiwga3dhcmdzKToKKyAgICAgICAg
aWYga3dhcmdzWyJiaW5hcnkiXSBpcyBOb25lOgorICAgICAgICAgICAgYmluYXJ5ID0gc2VsZi5i
cm93c2VyLmZpbmRfYmluYXJ5KCkKKworICAgICAgICAgICAgaWYgYmluYXJ5IGlzIE5vbmU6Cisg
ICAgICAgICAgICAgICAgcmFpc2UgV3B0cnVuRXJyb3IoIlVuYWJsZSB0byBmaW5kIGVwaXBoYW55
IGluIFBBVEgiKQorICAgICAgICAgICAga3dhcmdzWyJiaW5hcnkiXSA9IGJpbmFyeQorCisgICAg
ICAgIGlmIGt3YXJnc1sid2ViZHJpdmVyX2JpbmFyeSJdIGlzIE5vbmU6CisgICAgICAgICAgICB3
ZWJkcml2ZXJfYmluYXJ5ID0gc2VsZi5icm93c2VyLmZpbmRfd2ViZHJpdmVyKCkKKworICAgICAg
ICAgICAgaWYgd2ViZHJpdmVyX2JpbmFyeSBpcyBOb25lOgorICAgICAgICAgICAgICAgIHJhaXNl
IFdwdHJ1bkVycm9yKCJVbmFibGUgdG8gZmluZCBXZWJLaXRXZWJEcml2ZXIgaW4gUEFUSCIpCisg
ICAgICAgICAgICBrd2FyZ3NbIndlYmRyaXZlcl9iaW5hcnkiXSA9IHdlYmRyaXZlcl9iaW5hcnkK
KworCiBwcm9kdWN0X3NldHVwID0gewotICAgICJmZW5uZWMiOiBGZW5uZWMsCisgICAgImFuZHJv
aWRfd2VidmlldyI6IEFuZHJvaWRXZWJ2aWV3LAogICAgICJmaXJlZm94IjogRmlyZWZveCwKKyAg
ICAiZmlyZWZveF9hbmRyb2lkIjogRmlyZWZveEFuZHJvaWQsCiAgICAgImNocm9tZSI6IENocm9t
ZSwKICAgICAiY2hyb21lX2FuZHJvaWQiOiBDaHJvbWVBbmRyb2lkLAorICAgICJjaHJvbWVfaW9z
IjogQ2hyb21laU9TLAorICAgICJlZGdlY2hyb21pdW0iOiBFZGdlQ2hyb21pdW0sCiAgICAgImVk
Z2UiOiBFZGdlLAorICAgICJlZGdlX3dlYmRyaXZlciI6IEVkZ2VXZWJEcml2ZXIsCiAgICAgImll
IjogSW50ZXJuZXRFeHBsb3JlciwKICAgICAic2FmYXJpIjogU2FmYXJpLAogICAgICJzZXJ2byI6
IFNlcnZvLAorICAgICJzZXJ2b2RyaXZlciI6IFNlcnZvV2ViRHJpdmVyLAogICAgICJzYXVjZSI6
IFNhdWNlLAogICAgICJvcGVyYSI6IE9wZXJhLAogICAgICJ3ZWJraXQiOiBXZWJLaXQsCisgICAg
IndlYmtpdGd0a19taW5pYnJvd3NlciI6IFdlYktpdEdUS01pbmlCcm93c2VyLAorICAgICJlcGlw
aGFueSI6IEVwaXBoYW55LAogfQogCiAKLWRlZiBzZXR1cF93cHRydW5uZXIodmVudiwgcHJvbXB0
PVRydWUsIGluc3RhbGw9RmFsc2UsICoqa3dhcmdzKToKLSAgICBmcm9tIHdwdHJ1bm5lciBpbXBv
cnQgd3B0cnVubmVyLCB3cHRjb21tYW5kbGluZQorZGVmIHNldHVwX2xvZ2dpbmcoa3dhcmdzLCBk
ZWZhdWx0X2NvbmZpZz1Ob25lLCBmb3JtYXR0ZXJfZGVmYXVsdHM9Tm9uZSk6CisgICAgaW1wb3J0
IG1vemxvZworICAgIGZyb20gd3B0cnVubmVyIGltcG9ydCB3cHRydW5uZXIKIAogICAgIGdsb2Jh
bCBsb2dnZXIKIAorICAgICMgVXNlIHRoZSBncm91cGVkIGZvcm1hdHRlciBieSBkZWZhdWx0IHdo
ZXJlIG1vemxvZyAzLjkrIGlzIGluc3RhbGxlZAorICAgIGlmIGRlZmF1bHRfY29uZmlnIGlzIE5v
bmU6CisgICAgICAgIGlmIGhhc2F0dHIobW96bG9nLmZvcm1hdHRlcnMsICJHcm91cGluZ0Zvcm1h
dHRlciIpOgorICAgICAgICAgICAgZGVmYXVsdF9mb3JtYXR0ZXIgPSAiZ3JvdXBlZCIKKyAgICAg
ICAgZWxzZToKKyAgICAgICAgICAgIGRlZmF1bHRfZm9ybWF0dGVyID0gIm1hY2giCisgICAgICAg
IGRlZmF1bHRfY29uZmlnID0ge2RlZmF1bHRfZm9ybWF0dGVyOiBzeXMuc3Rkb3V0fQorICAgIHdw
dHJ1bm5lci5zZXR1cF9sb2dnaW5nKGt3YXJncywgZGVmYXVsdF9jb25maWcsIGZvcm1hdHRlcl9k
ZWZhdWx0cz1mb3JtYXR0ZXJfZGVmYXVsdHMpCisgICAgbG9nZ2VyID0gd3B0cnVubmVyLmxvZ2dl
cgorICAgIHJldHVybiBsb2dnZXIKKworCitkZWYgc2V0dXBfd3B0cnVubmVyKHZlbnYsIHByb21w
dD1UcnVlLCBpbnN0YWxsX2Jyb3dzZXI9RmFsc2UsICoqa3dhcmdzKToKKyAgICBmcm9tIHdwdHJ1
bm5lciBpbXBvcnQgd3B0Y29tbWFuZGxpbmUKKwogICAgIGt3YXJncyA9IHV0aWxzLkt3YXJncyhr
d2FyZ3MuaXRlcml0ZW1zKCkpCiAKICAgICBwcm9kdWN0X3BhcnRzID0ga3dhcmdzWyJwcm9kdWN0
Il0uc3BsaXQoIjoiKQotICAgIGt3YXJnc1sicHJvZHVjdCJdID0gcHJvZHVjdF9wYXJ0c1swXQor
ICAgIGt3YXJnc1sicHJvZHVjdCJdID0gcHJvZHVjdF9wYXJ0c1swXS5yZXBsYWNlKCItIiwgIl8i
KQogICAgIHN1Yl9wcm9kdWN0ID0gcHJvZHVjdF9wYXJ0c1sxOl0KIAotICAgIHdwdHJ1bm5lci5z
ZXR1cF9sb2dnaW5nKGt3YXJncywgeyJtYWNoIjogc3lzLnN0ZG91dH0pCi0gICAgbG9nZ2VyID0g
d3B0cnVubmVyLmxvZ2dlcgotCiAgICAgY2hlY2tfZW52aXJvbihrd2FyZ3NbInByb2R1Y3QiXSkK
ICAgICBhcmdzX2dlbmVyYWwoa3dhcmdzKQogCkBAIC00MjQsOSArNjk1LDQ0IEBAIGRlZiBzZXR1
cF93cHRydW5uZXIodmVudiwgcHJvbXB0PVRydWUsIGluc3RhbGw9RmFsc2UsICoqa3dhcmdzKToK
ICAgICBzZXR1cF9jbHMgPSBwcm9kdWN0X3NldHVwW2t3YXJnc1sicHJvZHVjdCJdXSh2ZW52LCBw
cm9tcHQsIHN1Yl9wcm9kdWN0KQogICAgIHNldHVwX2Nscy5pbnN0YWxsX3JlcXVpcmVtZW50cygp
CiAKLSAgICBpZiBpbnN0YWxsOgorICAgIGFmZmVjdGVkX3JldmlzaCA9IGt3YXJncy5wb3AoImFm
ZmVjdGVkIiwgTm9uZSkKKyAgICBpZiBhZmZlY3RlZF9yZXZpc2ggaXMgbm90IE5vbmU6CisgICAg
ICAgICMgVE9ETzogQ29uc29saWRhdGUgd2l0aCBgLi93cHQgdGVzdHMtYWZmZWN0ZWQgLS1pZ25v
cmUtcnVsZXNgOgorICAgICAgICAjIGh0dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxhdGZvcm0tdGVz
dHMvd3B0L2lzc3Vlcy8xNDU2MAorICAgICAgICBmaWxlc19jaGFuZ2VkLCBfID0gdGVzdGZpbGVz
LmZpbGVzX2NoYW5nZWQoCisgICAgICAgICAgICBhZmZlY3RlZF9yZXZpc2gsCisgICAgICAgICAg
ICBpZ25vcmVfcnVsZXM9WyJyZXNvdXJjZXMvdGVzdGhhcm5lc3MqIl0sCisgICAgICAgICAgICBp
bmNsdWRlX3VuY29tbWl0dGVkPVRydWUsIGluY2x1ZGVfbmV3PVRydWUpCisgICAgICAgICMgVE9E
TzogUGVyaGFwcyB1c2Ugd3B0cnVubmVyLnRlc3Rsb2FkZXIuTWFuaWZlc3RMb2FkZXIgaGVyZQor
ICAgICAgICAjIGFuZCByZW1vdmUgdGhlIG1hbmlmZXN0LXJlbGF0ZWQgY29kZSBmcm9tIHRlc3Rm
aWxlcy4KKyAgICAgICAgIyBodHRwczovL2dpdGh1Yi5jb20vd2ViLXBsYXRmb3JtLXRlc3RzL3dw
dC9pc3N1ZXMvMTQ0MjEKKyAgICAgICAgdGVzdHNfY2hhbmdlZCwgdGVzdHNfYWZmZWN0ZWQgPSB0
ZXN0ZmlsZXMuYWZmZWN0ZWRfdGVzdGZpbGVzKAorICAgICAgICAgICAgZmlsZXNfY2hhbmdlZCwg
bWFuaWZlc3RfcGF0aD1rd2FyZ3MuZ2V0KCJtYW5pZmVzdF9wYXRoIiksIG1hbmlmZXN0X3VwZGF0
ZT1rd2FyZ3NbIm1hbmlmZXN0X3VwZGF0ZSJdKQorICAgICAgICB0ZXN0X2xpc3QgPSB0ZXN0c19j
aGFuZ2VkIHwgdGVzdHNfYWZmZWN0ZWQKKyAgICAgICAgbG9nZ2VyLmluZm8oIklkZW50aWZpZWQg
JXMgYWZmZWN0ZWQgdGVzdHMiICUgbGVuKHRlc3RfbGlzdCkpCisgICAgICAgIHRlc3RfbGlzdCA9
IFtvcy5wYXRoLnJlbHBhdGgoaXRlbSwgd3B0X3Jvb3QpIGZvciBpdGVtIGluIHRlc3RfbGlzdF0K
KyAgICAgICAga3dhcmdzWyJ0ZXN0X2xpc3QiXSArPSB0ZXN0X2xpc3QKKyAgICAgICAga3dhcmdz
WyJkZWZhdWx0X2V4Y2x1ZGUiXSA9IFRydWUKKworICAgIGlmIGluc3RhbGxfYnJvd3NlciBhbmQg
bm90IGt3YXJnc1siY2hhbm5lbCJdOgorICAgICAgICBsb2dnZXIuaW5mbygiLS1pbnN0YWxsLWJy
b3dzZXIgaXMgZ2l2ZW4gYnV0IC0tY2hhbm5lbCBpcyBub3Qgc2V0LCBkZWZhdWx0IHRvIG5pZ2h0
bHkgY2hhbm5lbCIpCisgICAgICAgIGt3YXJnc1siY2hhbm5lbCJdID0gIm5pZ2h0bHkiCisKKyAg
ICBpZiBrd2FyZ3NbImNoYW5uZWwiXToKKyAgICAgICAgY2hhbm5lbCA9IGluc3RhbGwuZ2V0X2No
YW5uZWwoa3dhcmdzWyJwcm9kdWN0Il0sIGt3YXJnc1siY2hhbm5lbCJdKQorICAgICAgICBpZiBj
aGFubmVsIGlzIG5vdCBOb25lOgorICAgICAgICAgICAgaWYgY2hhbm5lbCAhPSBrd2FyZ3NbImNo
YW5uZWwiXToKKyAgICAgICAgICAgICAgICBsb2dnZXIuaW5mbygiSW50ZXJwcmV0aW5nIGNoYW5u
ZWwgJyVzJyBhcyAnJXMnIiAlIChrd2FyZ3NbImNoYW5uZWwiXSwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGFubmVs
KSkKKyAgICAgICAgICAgIGt3YXJnc1siYnJvd3Nlcl9jaGFubmVsIl0gPSBjaGFubmVsCisgICAg
ICAgIGVsc2U6CisgICAgICAgICAgICBsb2dnZXIuaW5mbygiVmFsaWQgY2hhbm5lbHMgZm9yICVz
IG5vdCBrbm93bjsgdXNpbmcgYXJndW1lbnQgdW5tb2RpZmllZCIgJSBrd2FyZ3NbInByb2R1Y3Qi
XSkKKyAgICAgICAgICAgIGt3YXJnc1siYnJvd3Nlcl9jaGFubmVsIl0gPSBrd2FyZ3NbImNoYW5u
ZWwiXQorICAgICAgICBkZWwga3dhcmdzWyJjaGFubmVsIl0KKworICAgIGlmIGluc3RhbGxfYnJv
d3NlcjoKICAgICAgICAgbG9nZ2VyLmluZm8oIkluc3RhbGxpbmcgYnJvd3NlciIpCi0gICAgICAg
IGt3YXJnc1siYmluYXJ5Il0gPSBzZXR1cF9jbHMuaW5zdGFsbCh2ZW52KQorICAgICAgICBrd2Fy
Z3NbImJpbmFyeSJdID0gc2V0dXBfY2xzLmluc3RhbGwoY2hhbm5lbD1jaGFubmVsKQogCiAgICAg
c2V0dXBfY2xzLnNldHVwKGt3YXJncykKIApAQCAtNDM0LDIwICs3NDAsMzAgQEAgZGVmIHNldHVw
X3dwdHJ1bm5lcih2ZW52LCBwcm9tcHQ9VHJ1ZSwgaW5zdGFsbD1GYWxzZSwgKiprd2FyZ3MpOgog
CiAgICAgd3B0cnVubmVyX3BhdGggPSBvcy5wYXRoLmpvaW4od3B0X3Jvb3QsICJ0b29scyIsICJ3
cHRydW5uZXIiKQogCi0gICAgdmVudi5pbnN0YWxsX3JlcXVpcmVtZW50cyhvcy5wYXRoLmpvaW4o
d3B0cnVubmVyX3BhdGgsICJyZXF1aXJlbWVudHMudHh0IikpCisgICAgaWYgbm90IHZlbnYuc2tp
cF92aXJ0dWFsZW52X3NldHVwOgorICAgICAgICB2ZW52Lmluc3RhbGxfcmVxdWlyZW1lbnRzKG9z
LnBhdGguam9pbih3cHRydW5uZXJfcGF0aCwgInJlcXVpcmVtZW50cy50eHQiKSkKKworICAgICMg
T25seSB1cGRhdGUgYnJvd3Nlcl92ZXJzaW9uIGlmIGl0IHdhcyBub3QgZ2l2ZW4gYXMgYSBjb21t
YW5kIGxpbmUKKyAgICAjIGFyZ3VtZW50LCBzbyB0aGF0IGl0IGNhbiBiZSBvdmVycmlkZGVuIG9u
IHRoZSBjb21tYW5kIGxpbmUuCisgICAgaWYgbm90IGt3YXJnc1siYnJvd3Nlcl92ZXJzaW9uIl06
CisgICAgICAgIGt3YXJnc1siYnJvd3Nlcl92ZXJzaW9uIl0gPSBzZXR1cF9jbHMuYnJvd3Nlci52
ZXJzaW9uKAorICAgICAgICAgICAgYmluYXJ5PWt3YXJncy5nZXQoImJpbmFyeSIpIG9yIGt3YXJn
cy5nZXQoInBhY2thZ2VfbmFtZSIpLAorICAgICAgICAgICAgd2ViZHJpdmVyX2JpbmFyeT1rd2Fy
Z3MuZ2V0KCJ3ZWJkcml2ZXJfYmluYXJ5IiksCisgICAgICAgICkKIAotICAgIGt3YXJnc1snYnJv
d3Nlcl92ZXJzaW9uJ10gPSBzZXR1cF9jbHMuYnJvd3Nlci52ZXJzaW9uKGt3YXJncy5nZXQoImJp
bmFyeSIpKQogICAgIHJldHVybiBrd2FyZ3MKIAogCiBkZWYgcnVuKHZlbnYsICoqa3dhcmdzKToK
LSAgICAjUmVtb3ZlIGFyZ3VtZW50cyB0aGF0IGFyZW4ndCBwYXNzZWQgdG8gd3B0cnVubmVyCisg
ICAgc2V0dXBfbG9nZ2luZyhrd2FyZ3MpCisKKyAgICAjIFJlbW92ZSBhcmd1bWVudHMgdGhhdCBh
cmVuJ3QgcGFzc2VkIHRvIHdwdHJ1bm5lcgogICAgIHByb21wdCA9IGt3YXJncy5wb3AoInByb21w
dCIsIFRydWUpCiAgICAgaW5zdGFsbF9icm93c2VyID0ga3dhcmdzLnBvcCgiaW5zdGFsbF9icm93
c2VyIiwgRmFsc2UpCiAKICAgICBrd2FyZ3MgPSBzZXR1cF93cHRydW5uZXIodmVudiwKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgcHJvbXB0PXByb21wdCwKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgaW5zdGFsbD1pbnN0YWxsX2Jyb3dzZXIsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGluc3RhbGxfYnJvd3Nlcj1pbnN0YWxsX2Jyb3dzZXIsCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICoqa3dhcmdzKQogCiAgICAgcnYgPSBydW5fc2luZ2xlKHZlbnYsICoq
a3dhcmdzKSA+IDAKQEAgLTQ3Nyw3ICs3OTMsNyBAQCBkZWYgbWFpbigpOgogCiBpZiBfX25hbWVf
XyA9PSAiX19tYWluX18iOgogICAgIGltcG9ydCBwZGIKLSAgICBmcm9tIHRvb2xzIGltcG9ydCBs
b2NhbHBhdGhzICAjIG5vcWE6IGZsYWtlOAorICAgIGZyb20gdG9vbHMgaW1wb3J0IGxvY2FscGF0
aHMgICMgbm9xYTogRjQwMQogICAgIHRyeToKICAgICAgICAgbWFpbigpCiAgICAgZXhjZXB0IEV4
Y2VwdGlvbjoKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvd3B0L3Rlc3RmaWxlcy5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0L3Rlc3RmaWxlcy5weQppbmRleCAzNWE0Yjk3
ZDdmZmFhMjRmNjMwZDcwYzY4NzdjNzE5ZDE1NWMyZWM3Li5jZjEyYTU5YzhlNjhhNzBmNzgyNTYz
YTgxYzE1MTEyNDI5NjJlZGYzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdC90ZXN0ZmlsZXMucHkKKysrIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHQvdGVzdGZpbGVzLnB5
CkBAIC01LDEwICs1LDM3IEBAIGltcG9ydCByZQogaW1wb3J0IHN1YnByb2Nlc3MKIGltcG9ydCBz
eXMKIAoraW1wb3J0IHNpeAogZnJvbSBjb2xsZWN0aW9ucyBpbXBvcnQgT3JkZXJlZERpY3QKIGZy
b20gc2l4IGltcG9ydCBpdGVyaXRlbXMKIAotZnJvbSAuLm1hbmlmZXN0IGltcG9ydCBtYW5pZmVz
dCwgdXBkYXRlCit0cnk6CisgICAgZnJvbSAuLm1hbmlmZXN0IGltcG9ydCBtYW5pZmVzdAorZXhj
ZXB0IFZhbHVlRXJyb3I6CisgICAgIyBpZiB3ZSdyZSBub3Qgd2l0aGluIHRoZSB0b29scyBwYWNr
YWdlLCB0aGUgYWJvdmUgaXMgYW4gaW1wb3J0IGZyb20gYWJvdmUKKyAgICAjIHRoZSB0b3AtbGV2
ZWwgd2hpY2ggcmFpc2VzIFZhbHVlRXJyb3IsIHNvIHJlaW1wb3J0IGl0IHdpdGggYW4gYWJzb2x1
dGUKKyAgICAjIHJlZmVyZW5jZQorICAgICMKKyAgICAjIG5vdGUgd2UgbmVlZCBib3RoIGJlY2F1
c2UgZGVwZW5kaW5nIG9uIGNhbGxlciB3ZSBtYXkvbWF5IG5vdCBoYXZlIHRoZQorICAgICMgcGF0
aHMgc2V0IHVwIGNvcnJlY3RseSB0byBoYW5kbGUgYm90aCBhbmQgTVlQWSBoYXMgbm8ga25vd2xl
ZGdlIG9mIG91cgorICAgICMgc3lzLnBhdGggbWFnaWMKKyAgICBmcm9tIG1hbmlmZXN0IGltcG9y
dCBtYW5pZmVzdCAgIyB0eXBlOiBpZ25vcmUKKworTVlQWSA9IEZhbHNlCitpZiBNWVBZOgorICAg
ICMgTVlQWSBpcyBzZXQgdG8gVHJ1ZSB3aGVuIHJ1biB1bmRlciBNeXB5LgorICAgIGZyb20gdHlw
aW5nIGltcG9ydCBBbnkKKyAgICBmcm9tIHR5cGluZyBpbXBvcnQgQ2FsbGFibGUKKyAgICBmcm9t
IHR5cGluZyBpbXBvcnQgRGljdAorICAgIGZyb20gdHlwaW5nIGltcG9ydCBJdGVyYWJsZQorICAg
IGZyb20gdHlwaW5nIGltcG9ydCBMaXN0CisgICAgZnJvbSB0eXBpbmcgaW1wb3J0IE9wdGlvbmFs
CisgICAgZnJvbSB0eXBpbmcgaW1wb3J0IFBhdHRlcm4KKyAgICBmcm9tIHR5cGluZyBpbXBvcnQg
U2VxdWVuY2UKKyAgICBmcm9tIHR5cGluZyBpbXBvcnQgU2V0CisgICAgZnJvbSB0eXBpbmcgaW1w
b3J0IFRleHQKKyAgICBmcm9tIHR5cGluZyBpbXBvcnQgVHVwbGUKKyAgICBmcm9tIHR5cGluZyBp
bXBvcnQgVW5pb24KIAogaGVyZSA9IG9zLnBhdGguZGlybmFtZShfX2ZpbGVfXykKIHdwdF9yb290
ID0gb3MucGF0aC5hYnNwYXRoKG9zLnBhdGguam9pbihoZXJlLCBvcy5wYXJkaXIsIG9zLnBhcmRp
cikpCkBAIC0xNywzNCArNDQsMzggQEAgbG9nZ2VyID0gbG9nZ2luZy5nZXRMb2dnZXIoKQogCiAK
IGRlZiBnZXRfZ2l0X2NtZChyZXBvX3BhdGgpOgorICAgICMgdHlwZTogKGJ5dGVzKSAtPiBDYWxs
YWJsZVsuLi4sIFRleHRdCiAgICAgIiIiQ3JlYXRlIGEgZnVuY3Rpb24gZm9yIGludm9raW5nIGdp
dCBjb21tYW5kcyBhcyBhIHN1YnByb2Nlc3MuIiIiCiAgICAgZGVmIGdpdChjbWQsICphcmdzKToK
LSAgICAgICAgZnVsbF9jbWQgPSBbImdpdCIsIGNtZF0gKyBsaXN0KGl0ZW0uZGVjb2RlKCJ1dGY4
IikgaWYgaXNpbnN0YW5jZShpdGVtLCBieXRlcykgZWxzZSBpdGVtIGZvciBpdGVtIGluIGFyZ3Mp
CisgICAgICAgICMgdHlwZTogKFRleHQsICpVbmlvbltieXRlcywgVGV4dF0pIC0+IFRleHQKKyAg
ICAgICAgZnVsbF9jbWQgPSBbdSJnaXQiLCBjbWRdICsgbGlzdChpdGVtLmRlY29kZSgidXRmOCIp
IGlmIGlzaW5zdGFuY2UoaXRlbSwgYnl0ZXMpIGVsc2UgaXRlbSBmb3IgaXRlbSBpbiBhcmdzKSAg
IyB0eXBlOiBMaXN0W1RleHRdCiAgICAgICAgIHRyeToKICAgICAgICAgICAgIGxvZ2dlci5kZWJ1
ZygiICIuam9pbihmdWxsX2NtZCkpCi0gICAgICAgICAgICByZXR1cm4gc3VicHJvY2Vzcy5jaGVj
a19vdXRwdXQoZnVsbF9jbWQsIGN3ZD1yZXBvX3BhdGgsIHN0ZGVycj1zdWJwcm9jZXNzLlNURE9V
VCkuZGVjb2RlKCJ1dGY4Iikuc3RyaXAoKQorICAgICAgICAgICAgcmV0dXJuIHN1YnByb2Nlc3Mu
Y2hlY2tfb3V0cHV0KGZ1bGxfY21kLCBjd2Q9cmVwb19wYXRoKS5kZWNvZGUoInV0ZjgiKS5zdHJp
cCgpCiAgICAgICAgIGV4Y2VwdCBzdWJwcm9jZXNzLkNhbGxlZFByb2Nlc3NFcnJvciBhcyBlOgot
ICAgICAgICAgICAgbG9nZ2VyLmVycm9yKCJHaXQgY29tbWFuZCBleGl0ZWQgd2l0aCBzdGF0dXMg
JWkiICUgZS5yZXR1cm5jb2RlKQotICAgICAgICAgICAgbG9nZ2VyLmVycm9yKGUub3V0cHV0KQor
ICAgICAgICAgICAgbG9nZ2VyLmNyaXRpY2FsKCJHaXQgY29tbWFuZCBleGl0ZWQgd2l0aCBzdGF0
dXMgJWkiICUgZS5yZXR1cm5jb2RlKQorICAgICAgICAgICAgbG9nZ2VyLmNyaXRpY2FsKGUub3V0
cHV0KQogICAgICAgICAgICAgc3lzLmV4aXQoMSkKICAgICByZXR1cm4gZ2l0CiAKIAogZGVmIGRp
c3BsYXlfYnJhbmNoX3BvaW50KCk6CisgICAgIyB0eXBlOiAoKSAtPiBOb25lCiAgICAgcHJpbnQo
YnJhbmNoX3BvaW50KCkpCiAKIAogZGVmIGJyYW5jaF9wb2ludCgpOgorICAgICMgdHlwZTogKCkg
LT4gT3B0aW9uYWxbVGV4dF0KICAgICBnaXQgPSBnZXRfZ2l0X2NtZCh3cHRfcm9vdCkKLSAgICBp
ZiAob3MuZW52aXJvbi5nZXQoIlRSQVZJU19QVUxMX1JFUVVFU1QiLCAiZmFsc2UiKSA9PSAiZmFs
c2UiIGFuZAotICAgICAgICBvcy5lbnZpcm9uLmdldCgiVFJBVklTX0JSQU5DSCIpID09ICJtYXN0
ZXIiKToKKyAgICBpZiAob3MuZW52aXJvbi5nZXQoIkdJVEhVQl9QVUxMX1JFUVVFU1QiLCAiZmFs
c2UiKSA9PSAiZmFsc2UiIGFuZAorICAgICAgICBvcy5lbnZpcm9uLmdldCgiR0lUSFVCX0JSQU5D
SCIpID09ICJtYXN0ZXIiKToKICAgICAgICAgIyBGb3IgYnVpbGRzIG9uIHRoZSBtYXN0ZXIgYnJh
bmNoIGp1c3QgcmV0dXJuIHRoZSBIRUFEIGNvbW1pdAogICAgICAgICByZXR1cm4gZ2l0KCJyZXYt
cGFyc2UiLCAiSEVBRCIpCi0gICAgZWxpZiBvcy5lbnZpcm9uLmdldCgiVFJBVklTX1BVTExfUkVR
VUVTVCIsICJmYWxzZSIpICE9ICJmYWxzZSI6Ci0gICAgICAgICMgVGhpcyBpcyBhIFBSLCBzbyB0
aGUgYmFzZSBicmFuY2ggaXMgaW4gVFJBVklTX0JSQU5DSAotICAgICAgICB0cmF2aXNfYnJhbmNo
ID0gb3MuZW52aXJvbi5nZXQoIlRSQVZJU19CUkFOQ0giKQotICAgICAgICBhc3NlcnQgdHJhdmlz
X2JyYW5jaCwgIlRSQVZJU19CUkFOQ0ggZW52aXJvbm1lbnQgdmFyaWFibGUgaXMgZGVmaW5lZCIK
LSAgICAgICAgYnJhbmNoX3BvaW50ID0gZ2l0KCJtZXJnZS1iYXNlIiwgIkhFQUQiLCB0cmF2aXNf
YnJhbmNoKQorICAgIGVsaWYgb3MuZW52aXJvbi5nZXQoIkdJVEhVQl9QVUxMX1JFUVVFU1QiLCAi
ZmFsc2UiKSAhPSAiZmFsc2UiOgorICAgICAgICAjIFRoaXMgaXMgYSBQUiwgc28gdGhlIGJhc2Ug
YnJhbmNoIGlzIGluIEdJVEhVQl9CUkFOQ0gKKyAgICAgICAgYmFzZV9icmFuY2ggPSBvcy5lbnZp
cm9uLmdldCgiR0lUSFVCX0JSQU5DSCIpCisgICAgICAgIGFzc2VydCBiYXNlX2JyYW5jaCwgIkdJ
VEhVQl9CUkFOQ0ggZW52aXJvbm1lbnQgdmFyaWFibGUgaXMgZGVmaW5lZCIKKyAgICAgICAgYnJh
bmNoX3BvaW50ID0gZ2l0KCJtZXJnZS1iYXNlIiwgIkhFQUQiLCBiYXNlX2JyYW5jaCkgICMgdHlw
ZTogT3B0aW9uYWxbVGV4dF0KICAgICBlbHNlOgogICAgICAgICAjIE90aGVyd2lzZSB3ZSBhcmVu
J3Qgb24gYSBQUiwgc28gd2UgdHJ5IHRvIGZpbmQgY29tbWl0cyB0aGF0IGFyZSBvbmx5IGluIHRo
ZQogICAgICAgICAjIGN1cnJlbnQgYnJhbmNoIGMuZi4KQEAgLTU5LDcgKzkwLDcgQEAgZGVmIGJy
YW5jaF9wb2ludCgpOgogCiAgICAgICAgICMgZ2V0IGFsbCBjb21taXRzIG9uIEhFQUQgYnV0IG5v
dCByZWFjaGFibGUgZnJvbSBhbnl0aGluZyBpbiBub3RfaGVhZHMKICAgICAgICAgY29tbWl0cyA9
IGdpdCgicmV2LWxpc3QiLCAiLS10b3BvLW9yZGVyIiwgIi0tcGFyZW50cyIsICJIRUFEIiwgKm5v
dF9oZWFkcykKLSAgICAgICAgY29tbWl0X3BhcmVudHMgPSBPcmRlcmVkRGljdCgpCisgICAgICAg
IGNvbW1pdF9wYXJlbnRzID0gT3JkZXJlZERpY3QoKSAgIyB0eXBlOiBEaWN0W1RleHQsIExpc3Rb
VGV4dF1dCiAgICAgICAgIGlmIGNvbW1pdHM6CiAgICAgICAgICAgICBmb3IgbGluZSBpbiBjb21t
aXRzLnNwbGl0KCJcbiIpOgogICAgICAgICAgICAgICAgIGxpbmVfY29tbWl0cyA9IGxpbmUuc3Bs
aXQoIiAiKQpAQCAtMTAzLDYgKzEzNCw3IEBAIGRlZiBicmFuY2hfcG9pbnQoKToKIAogCiBkZWYg
Y29tcGlsZV9pZ25vcmVfcnVsZShydWxlKToKKyAgICAjIHR5cGU6IChzdHIpIC0+IFBhdHRlcm5b
c3RyXQogICAgIHJ1bGUgPSBydWxlLnJlcGxhY2Uob3MucGF0aC5zZXAsICIvIikKICAgICBwYXJ0
cyA9IHJ1bGUuc3BsaXQoIi8iKQogICAgIHJlX3BhcnRzID0gW10KQEAgLTExNywxMCArMTQ5LDEx
IEBAIGRlZiBjb21waWxlX2lnbm9yZV9ydWxlKHJ1bGUpOgogCiAKIGRlZiByZXBvX2ZpbGVzX2No
YW5nZWQocmV2aXNoLCBpbmNsdWRlX3VuY29tbWl0dGVkPUZhbHNlLCBpbmNsdWRlX25ldz1GYWxz
ZSk6CisgICAgIyB0eXBlOiAoc3RyLCBib29sLCBib29sKSAtPiBTZXRbVGV4dF0KICAgICBnaXQg
PSBnZXRfZ2l0X2NtZCh3cHRfcm9vdCkKLSAgICBmaWxlcyA9IGdpdCgiZGlmZiIsICItLW5hbWUt
b25seSIsICIteiIsIHJldmlzaCkuc3BsaXQoIlwwIikKLSAgICBhc3NlcnQgbm90IGZpbGVzWy0x
XQotICAgIGZpbGVzID0gc2V0KGZpbGVzWzotMV0pCisgICAgZmlsZXNfbGlzdCA9IGdpdCgiZGlm
ZiIsICItLW5hbWUtb25seSIsICIteiIsIHJldmlzaCkuc3BsaXQoIlwwIikKKyAgICBhc3NlcnQg
bm90IGZpbGVzX2xpc3RbLTFdCisgICAgZmlsZXMgPSBzZXQoZmlsZXNfbGlzdFs6LTFdKQogCiAg
ICAgaWYgaW5jbHVkZV91bmNvbW1pdHRlZDoKICAgICAgICAgZW50cmllcyA9IGdpdCgic3RhdHVz
IiwgIi16Iikuc3BsaXQoIlwwIikKQEAgLTE0MiwxNiArMTc1LDE3IEBAIGRlZiByZXBvX2ZpbGVz
X2NoYW5nZWQocmV2aXNoLCBpbmNsdWRlX3VuY29tbWl0dGVkPUZhbHNlLCBpbmNsdWRlX25ldz1G
YWxzZSk6CiAKIAogZGVmIGV4Y2x1ZGVfaWdub3JlZChmaWxlcywgaWdub3JlX3J1bGVzKToKKyAg
ICAjIHR5cGU6IChJdGVyYWJsZVtUZXh0XSwgT3B0aW9uYWxbU2VxdWVuY2Vbc3RyXV0pIC0+IFR1
cGxlW0xpc3RbVGV4dF0sIExpc3RbVGV4dF1dCiAgICAgaWYgaWdub3JlX3J1bGVzIGlzIE5vbmU6
CiAgICAgICAgIGlnbm9yZV9ydWxlcyA9IFtdCi0gICAgaWdub3JlX3J1bGVzID0gW2NvbXBpbGVf
aWdub3JlX3J1bGUoaXRlbSkgZm9yIGl0ZW0gaW4gaWdub3JlX3J1bGVzXQorICAgIGNvbXBpbGVk
X2lnbm9yZV9ydWxlcyA9IFtjb21waWxlX2lnbm9yZV9ydWxlKGl0ZW0pIGZvciBpdGVtIGluIGln
bm9yZV9ydWxlc10KIAogICAgIGNoYW5nZWQgPSBbXQogICAgIGlnbm9yZWQgPSBbXQogICAgIGZv
ciBpdGVtIGluIHNvcnRlZChmaWxlcyk6CiAgICAgICAgIGZ1bGxwYXRoID0gb3MucGF0aC5qb2lu
KHdwdF9yb290LCBpdGVtKQogICAgICAgICBydWxlX3BhdGggPSBpdGVtLnJlcGxhY2Uob3MucGF0
aC5zZXAsICIvIikKLSAgICAgICAgZm9yIHJ1bGUgaW4gaWdub3JlX3J1bGVzOgorICAgICAgICBm
b3IgcnVsZSBpbiBjb21waWxlZF9pZ25vcmVfcnVsZXM6CiAgICAgICAgICAgICBpZiBydWxlLm1h
dGNoKHJ1bGVfcGF0aCk6CiAgICAgICAgICAgICAgICAgaWdub3JlZC5hcHBlbmQoZnVsbHBhdGgp
CiAgICAgICAgICAgICAgICAgYnJlYWsKQEAgLTE2MSwxMCArMTk1LDE4IEBAIGRlZiBleGNsdWRl
X2lnbm9yZWQoZmlsZXMsIGlnbm9yZV9ydWxlcyk6CiAgICAgcmV0dXJuIGNoYW5nZWQsIGlnbm9y
ZWQKIAogCi1kZWYgZmlsZXNfY2hhbmdlZChyZXZpc2gsIGlnbm9yZV9ydWxlcz1Ob25lLCBpbmNs
dWRlX3VuY29tbWl0dGVkPUZhbHNlLCBpbmNsdWRlX25ldz1GYWxzZSk6Ci0gICAgIiIiR2V0IGFu
ZCByZXR1cm4gZmlsZXMgY2hhbmdlZCBzaW5jZSBjdXJyZW50IGJyYW5jaCBkaXZlcmdlZCBmcm9t
IG1hc3RlciwKLSAgICBleGNsdWRpbmcgdGhvc2UgdGhhdCBhcmUgbG9jYXRlZCB3aXRoaW4gYW55
IHBhdGggbWF0Y2hlZCBieQotICAgIGBpZ25vcmVfcnVsZXNgLiIiIgorZGVmIGZpbGVzX2NoYW5n
ZWQocmV2aXNoLCAgIyB0eXBlOiBzdHIKKyAgICAgICAgICAgICAgICAgIGlnbm9yZV9ydWxlcz1O
b25lLCAgIyB0eXBlOiBPcHRpb25hbFtTZXF1ZW5jZVtzdHJdXQorICAgICAgICAgICAgICAgICAg
aW5jbHVkZV91bmNvbW1pdHRlZD1GYWxzZSwgICMgdHlwZTogYm9vbAorICAgICAgICAgICAgICAg
ICAgaW5jbHVkZV9uZXc9RmFsc2UgICMgdHlwZTogYm9vbAorICAgICAgICAgICAgICAgICAgKToK
KyAgICAjIHR5cGU6ICguLi4pIC0+IFR1cGxlW0xpc3RbVGV4dF0sIExpc3RbVGV4dF1dCisgICAg
IiIiRmluZCBmaWxlcyBjaGFuZ2VkIGluIGNlcnRhaW4gcmV2aXNpb25zLgorCisgICAgVGhlIGZ1
bmN0aW9uIHBhc3NlcyBgcmV2aXNoYCBkaXJlY3RseSB0byBgZ2l0IGRpZmZgLCBzbyBgcmV2aXNo
YCBjYW4gaGF2ZSBhCisgICAgdmFyaWV0eSBvZiBmb3Jtczsgc2VlIGBnaXQgZGlmZiAtLWhlbHBg
IGZvciBkZXRhaWxzLiBGaWxlcyBpbiB0aGUgZGlmZiB0aGF0CisgICAgYXJlIG1hdGNoZWQgYnkg
YGlnbm9yZV9ydWxlc2AgYXJlIGV4Y2x1ZGVkLgorICAgICIiIgogICAgIGZpbGVzID0gcmVwb19m
aWxlc19jaGFuZ2VkKHJldmlzaCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbmNs
dWRlX3VuY29tbWl0dGVkPWluY2x1ZGVfdW5jb21taXR0ZWQsCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgaW5jbHVkZV9uZXc9aW5jbHVkZV9uZXcpCkBAIC0xNzUsNDEgKzIxNywzNSBA
QCBkZWYgZmlsZXNfY2hhbmdlZChyZXZpc2gsIGlnbm9yZV9ydWxlcz1Ob25lLCBpbmNsdWRlX3Vu
Y29tbWl0dGVkPUZhbHNlLCBpbmNsdWRlXwogCiAKIGRlZiBfaW5fcmVwb19yb290KGZ1bGxfcGF0
aCk6CisgICAgIyB0eXBlOiAoVW5pb25bYnl0ZXMsIFRleHRdKSAtPiBib29sCiAgICAgcmVsX3Bh
dGggPSBvcy5wYXRoLnJlbHBhdGgoZnVsbF9wYXRoLCB3cHRfcm9vdCkKICAgICBwYXRoX2NvbXBv
bmVudHMgPSByZWxfcGF0aC5zcGxpdChvcy5zZXApCiAgICAgcmV0dXJuIGxlbihwYXRoX2NvbXBv
bmVudHMpIDwgMgogCiAKLWRlZiBfaW5pdF9tYW5pZmVzdF9jYWNoZSgpOgotICAgIGMgPSB7fQot
Ci0gICAgZGVmIGxvYWQobWFuaWZlc3RfcGF0aD1Ob25lKToKLSAgICAgICAgaWYgbWFuaWZlc3Rf
cGF0aCBpcyBOb25lOgotICAgICAgICAgICAgbWFuaWZlc3RfcGF0aCA9IG9zLnBhdGguam9pbih3
cHRfcm9vdCwgIk1BTklGRVNULmpzb24iKQotICAgICAgICBpZiBjLmdldChtYW5pZmVzdF9wYXRo
KToKLSAgICAgICAgICAgIHJldHVybiBjW21hbmlmZXN0X3BhdGhdCi0gICAgICAgICMgY2FjaGUg
YXQgbW9zdCBvbmUgcGF0aDptYW5pZmVzdAotICAgICAgICBjLmNsZWFyKCkKLSAgICAgICAgd3B0
X21hbmlmZXN0ID0gbWFuaWZlc3QubG9hZCh3cHRfcm9vdCwgbWFuaWZlc3RfcGF0aCkKLSAgICAg
ICAgaWYgd3B0X21hbmlmZXN0IGlzIE5vbmU6Ci0gICAgICAgICAgICB3cHRfbWFuaWZlc3QgPSBt
YW5pZmVzdC5NYW5pZmVzdCgpCi0gICAgICAgIHVwZGF0ZS51cGRhdGUod3B0X3Jvb3QsIHdwdF9t
YW5pZmVzdCkKLSAgICAgICAgY1ttYW5pZmVzdF9wYXRoXSA9IHdwdF9tYW5pZmVzdAotICAgICAg
ICByZXR1cm4gY1ttYW5pZmVzdF9wYXRoXQotICAgIHJldHVybiBsb2FkCi0KLQotbG9hZF9tYW5p
ZmVzdCA9IF9pbml0X21hbmlmZXN0X2NhY2hlKCkKK2RlZiBsb2FkX21hbmlmZXN0KG1hbmlmZXN0
X3BhdGg9Tm9uZSwgbWFuaWZlc3RfdXBkYXRlPVRydWUpOgorICAgICMgdHlwZTogKE9wdGlvbmFs
W3N0cl0sIGJvb2wpIC0+IG1hbmlmZXN0Lk1hbmlmZXN0CisgICAgaWYgbWFuaWZlc3RfcGF0aCBp
cyBOb25lOgorICAgICAgICBtYW5pZmVzdF9wYXRoID0gb3MucGF0aC5qb2luKHdwdF9yb290LCAi
TUFOSUZFU1QuanNvbiIpCisgICAgcmV0dXJuIG1hbmlmZXN0LmxvYWRfYW5kX3VwZGF0ZSh3cHRf
cm9vdCwgbWFuaWZlc3RfcGF0aCwgIi8iLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgdXBkYXRlPW1hbmlmZXN0X3VwZGF0ZSkKIAogCi1kZWYgYWZmZWN0ZWRfdGVzdGZpbGVz
KGZpbGVzX2NoYW5nZWQsIHNraXBfdGVzdHMsIG1hbmlmZXN0X3BhdGg9Tm9uZSk6CitkZWYgYWZm
ZWN0ZWRfdGVzdGZpbGVzKGZpbGVzX2NoYW5nZWQsICAjIHR5cGU6IEl0ZXJhYmxlW1RleHRdCisg
ICAgICAgICAgICAgICAgICAgICAgIHNraXBfZGlycz1Ob25lLCAgIyB0eXBlOiBPcHRpb25hbFtT
ZXRbc3RyXV0KKyAgICAgICAgICAgICAgICAgICAgICAgbWFuaWZlc3RfcGF0aD1Ob25lLCAgIyB0
eXBlOiBPcHRpb25hbFtzdHJdCisgICAgICAgICAgICAgICAgICAgICAgIG1hbmlmZXN0X3VwZGF0
ZT1UcnVlICAjIHR5cGU6IGJvb2wKKyAgICAgICAgICAgICAgICAgICAgICAgKToKKyAgICAjIHR5
cGU6ICguLi4pIC0+IFR1cGxlW1NldFtUZXh0XSwgU2V0W3N0cl1dCiAgICAgIiIiRGV0ZXJtaW5l
IGFuZCByZXR1cm4gbGlzdCBvZiB0ZXN0IGZpbGVzIHRoYXQgcmVmZXJlbmNlIGNoYW5nZWQgZmls
ZXMuIiIiCisgICAgaWYgc2tpcF9kaXJzIGlzIE5vbmU6CisgICAgICAgIHNraXBfZGlycyA9IHsi
Y29uZm9ybWFuY2UtY2hlY2tlcnMiLCAiZG9jcyIsICJ0b29scyJ9CiAgICAgYWZmZWN0ZWRfdGVz
dGZpbGVzID0gc2V0KCkKICAgICAjIEV4Y2x1ZGUgZmlsZXMgdGhhdCBhcmUgaW4gdGhlIHJlcG8g
cm9vdCwgYmVjYXVzZQogICAgICMgdGhleSBhcmUgbm90IHBhcnQgb2YgYW55IHRlc3QuCiAgICAg
ZmlsZXNfY2hhbmdlZCA9IFtmIGZvciBmIGluIGZpbGVzX2NoYW5nZWQgaWYgbm90IF9pbl9yZXBv
X3Jvb3QoZildCiAgICAgbm9udGVzdHNfY2hhbmdlZCA9IHNldChmaWxlc19jaGFuZ2VkKQotICAg
IHdwdF9tYW5pZmVzdCA9IGxvYWRfbWFuaWZlc3QobWFuaWZlc3RfcGF0aCkKKyAgICB3cHRfbWFu
aWZlc3QgPSBsb2FkX21hbmlmZXN0KG1hbmlmZXN0X3BhdGgsIG1hbmlmZXN0X3VwZGF0ZSkKIAog
ICAgIHRlc3RfdHlwZXMgPSBbInRlc3RoYXJuZXNzIiwgInJlZnRlc3QiLCAid2RzcGVjIl0KICAg
ICBzdXBwb3J0X2ZpbGVzID0ge29zLnBhdGguam9pbih3cHRfcm9vdCwgcGF0aCkKQEAgLTIxOSwx
NyArMjU1LDIyIEBAIGRlZiBhZmZlY3RlZF90ZXN0ZmlsZXMoZmlsZXNfY2hhbmdlZCwgc2tpcF90
ZXN0cywgbWFuaWZlc3RfcGF0aD1Ob25lKToKICAgICB0ZXN0X2ZpbGVzID0ge29zLnBhdGguam9p
bih3cHRfcm9vdCwgcGF0aCkKICAgICAgICAgICAgICAgICAgIGZvciBfLCBwYXRoLCBfIGluIHdw
dF9tYW5pZmVzdC5pdGVydHlwZXMoKnRlc3RfdHlwZXMpfQogCisgICAgaW50ZXJmYWNlX2RpciA9
IG9zLnBhdGguam9pbih3cHRfcm9vdCwgJ2ludGVyZmFjZXMnKQorICAgIGludGVyZmFjZXNfZmls
ZXMgPSB7b3MucGF0aC5qb2luKHdwdF9yb290LCAnaW50ZXJmYWNlcycsIGZpbGVuYW1lKQorICAg
ICAgICAgICAgICAgICAgICAgICAgZm9yIGZpbGVuYW1lIGluIG9zLmxpc3RkaXIoaW50ZXJmYWNl
X2Rpcil9CisKKyAgICBpbnRlcmZhY2VzX2NoYW5nZWQgPSBpbnRlcmZhY2VzX2ZpbGVzLmludGVy
c2VjdGlvbihub250ZXN0c19jaGFuZ2VkKQogICAgIG5vbnRlc3RzX2NoYW5nZWQgPSBub250ZXN0
c19jaGFuZ2VkLmludGVyc2VjdGlvbihzdXBwb3J0X2ZpbGVzKQogCi0gICAgdGVzdHNfY2hhbmdl
ZCA9IHNldChpdGVtIGZvciBpdGVtIGluIGZpbGVzX2NoYW5nZWQgaWYgaXRlbSBpbiB0ZXN0X2Zp
bGVzKQorICAgIHRlc3RzX2NoYW5nZWQgPSB7aXRlbSBmb3IgaXRlbSBpbiBmaWxlc19jaGFuZ2Vk
IGlmIGl0ZW0gaW4gdGVzdF9maWxlc30KIAogICAgIG5vbnRlc3RfY2hhbmdlZF9wYXRocyA9IHNl
dCgpCi0gICAgcmV3cml0ZXMgPSB7Ii9yZXNvdXJjZXMvd2ViaWRsMi9saWIvd2ViaWRsMi5qcyI6
ICIvcmVzb3VyY2VzL1dlYklETFBhcnNlci5qcyJ9CisgICAgcmV3cml0ZXMgPSB7Ii9yZXNvdXJj
ZXMvd2ViaWRsMi9saWIvd2ViaWRsMi5qcyI6ICIvcmVzb3VyY2VzL1dlYklETFBhcnNlci5qcyJ9
ICAjIHR5cGU6IERpY3RbVGV4dCwgVGV4dF0KICAgICBmb3IgZnVsbF9wYXRoIGluIG5vbnRlc3Rz
X2NoYW5nZWQ6CiAgICAgICAgIHJlbF9wYXRoID0gb3MucGF0aC5yZWxwYXRoKGZ1bGxfcGF0aCwg
d3B0X3Jvb3QpCiAgICAgICAgIHBhdGhfY29tcG9uZW50cyA9IHJlbF9wYXRoLnNwbGl0KG9zLnNl
cCkKICAgICAgICAgdG9wX2xldmVsX3N1YmRpciA9IHBhdGhfY29tcG9uZW50c1swXQotICAgICAg
ICBpZiB0b3BfbGV2ZWxfc3ViZGlyIGluIHNraXBfdGVzdHM6CisgICAgICAgIGlmIHRvcF9sZXZl
bF9zdWJkaXIgaW4gc2tpcF9kaXJzOgogICAgICAgICAgICAgY29udGludWUKICAgICAgICAgcmVw
b19wYXRoID0gIi8iICsgb3MucGF0aC5yZWxwYXRoKGZ1bGxfcGF0aCwgd3B0X3Jvb3QpLnJlcGxh
Y2Uob3MucGF0aC5zZXAsICIvIikKICAgICAgICAgaWYgcmVwb19wYXRoIGluIHJld3JpdGVzOgpA
QCAtMjM3LDcgKzI3OCwxMSBAQCBkZWYgYWZmZWN0ZWRfdGVzdGZpbGVzKGZpbGVzX2NoYW5nZWQs
IHNraXBfdGVzdHMsIG1hbmlmZXN0X3BhdGg9Tm9uZSk6CiAgICAgICAgICAgICBmdWxsX3BhdGgg
PSBvcy5wYXRoLmpvaW4od3B0X3Jvb3QsIHJlcG9fcGF0aFsxOl0ucmVwbGFjZSgiLyIsIG9zLnBh
dGguc2VwKSkKICAgICAgICAgbm9udGVzdF9jaGFuZ2VkX3BhdGhzLmFkZCgoZnVsbF9wYXRoLCBy
ZXBvX3BhdGgpKQogCisgICAgaW50ZXJmYWNlX25hbWUgPSBsYW1iZGEgeDogb3MucGF0aC5zcGxp
dGV4dChvcy5wYXRoLmJhc2VuYW1lKHgpKVswXQorICAgIGludGVyZmFjZXNfY2hhbmdlZF9uYW1l
cyA9IG1hcChpbnRlcmZhY2VfbmFtZSwgaW50ZXJmYWNlc19jaGFuZ2VkKQorCiAgICAgZGVmIGFm
ZmVjdGVkX2J5X3dkc3BlYyh0ZXN0KToKKyAgICAgICAgIyB0eXBlOiAoc3RyKSAtPiBib29sCiAg
ICAgICAgIGFmZmVjdGVkID0gRmFsc2UKICAgICAgICAgaWYgdGVzdCBpbiB3ZHNwZWNfdGVzdF9m
aWxlczoKICAgICAgICAgICAgIGZvciBzdXBwb3J0X2Z1bGxfcGF0aCwgXyBpbiBub250ZXN0X2No
YW5nZWRfcGF0aHM6CkBAIC0yNTIsMTEgKzI5NywyMSBAQCBkZWYgYWZmZWN0ZWRfdGVzdGZpbGVz
KGZpbGVzX2NoYW5nZWQsIHNraXBfdGVzdHMsIG1hbmlmZXN0X3BhdGg9Tm9uZSk6CiAgICAgICAg
ICAgICAgICAgICAgIGJyZWFrCiAgICAgICAgIHJldHVybiBhZmZlY3RlZAogCisgICAgZGVmIGFm
ZmVjdGVkX2J5X2ludGVyZmFjZXMoZmlsZV9jb250ZW50cyk6CisgICAgICAgICMgdHlwZTogKFVu
aW9uW2J5dGVzLCBUZXh0XSkgLT4gYm9vbAorICAgICAgICBpZiBsZW4oaW50ZXJmYWNlc19jaGFu
Z2VkX25hbWVzKSA+IDA6CisgICAgICAgICAgICBpZiAnaWRsaGFybmVzcy5qcycgaW4gZmlsZV9j
b250ZW50czoKKyAgICAgICAgICAgICAgICBmb3IgaW50ZXJmYWNlIGluIGludGVyZmFjZXNfY2hh
bmdlZF9uYW1lczoKKyAgICAgICAgICAgICAgICAgICAgcmVnZXggPSAnW1wnIl0nICsgaW50ZXJm
YWNlICsgJyhcXC5pZGwpP1tcJyJdJworICAgICAgICAgICAgICAgICAgICBpZiByZS5zZWFyY2go
cmVnZXgsIGZpbGVfY29udGVudHMpOgorICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFRy
dWUKKyAgICAgICAgcmV0dXJuIEZhbHNlCisKICAgICBmb3Igcm9vdCwgZGlycywgZm5hbWVzIGlu
IG9zLndhbGsod3B0X3Jvb3QpOgogICAgICAgICAjIFdhbGsgdG9wX2xldmVsX3N1YmRpciBsb29r
aW5nIGZvciB0ZXN0IGZpbGVzIGNvbnRhaW5pbmcgZWl0aGVyIHRoZQogICAgICAgICAjIHJlbGF0
aXZlIGZpbGVwYXRoIG9yIGFic29sdXRlIGZpbGVwYXRoIHRvIHRoZSBjaGFuZ2VkIGZpbGVzLgog
ICAgICAgICBpZiByb290ID09IHdwdF9yb290OgotICAgICAgICAgICAgZm9yIGRpcl9uYW1lIGlu
IHNraXBfdGVzdHM6CisgICAgICAgICAgICBmb3IgZGlyX25hbWUgaW4gc2tpcF9kaXJzOgogICAg
ICAgICAgICAgICAgIGRpcnMucmVtb3ZlKGRpcl9uYW1lKQogICAgICAgICBmb3IgZm5hbWUgaW4g
Zm5hbWVzOgogICAgICAgICAgICAgdGVzdF9mdWxsX3BhdGggPSBvcy5wYXRoLmpvaW4ocm9vdCwg
Zm5hbWUpCkBAIC0yNjgsMTYgKzMyMywxNiBAQCBkZWYgYWZmZWN0ZWRfdGVzdGZpbGVzKGZpbGVz
X2NoYW5nZWQsIHNraXBfdGVzdHMsIG1hbmlmZXN0X3BhdGg9Tm9uZSk6CiAgICAgICAgICAgICAg
ICAgY29udGludWUKIAogICAgICAgICAgICAgd2l0aCBvcGVuKHRlc3RfZnVsbF9wYXRoLCAicmIi
KSBhcyBmaDoKLSAgICAgICAgICAgICAgICBmaWxlX2NvbnRlbnRzID0gZmgucmVhZCgpCi0gICAg
ICAgICAgICAgICAgaWYgZmlsZV9jb250ZW50cy5zdGFydHN3aXRoKCJceGZlXHhmZiIpOgotICAg
ICAgICAgICAgICAgICAgICBmaWxlX2NvbnRlbnRzID0gZmlsZV9jb250ZW50cy5kZWNvZGUoInV0
Zi0xNmJlIiwgInJlcGxhY2UiKQotICAgICAgICAgICAgICAgIGVsaWYgZmlsZV9jb250ZW50cy5z
dGFydHN3aXRoKCJceGZmXHhmZSIpOgotICAgICAgICAgICAgICAgICAgICBmaWxlX2NvbnRlbnRz
ID0gZmlsZV9jb250ZW50cy5kZWNvZGUoInV0Zi0xNmxlIiwgInJlcGxhY2UiKQorICAgICAgICAg
ICAgICAgIHJhd19maWxlX2NvbnRlbnRzID0gZmgucmVhZCgpICAjIHR5cGU6IGJ5dGVzCisgICAg
ICAgICAgICAgICAgaWYgcmF3X2ZpbGVfY29udGVudHMuc3RhcnRzd2l0aCgiXHhmZVx4ZmYiKToK
KyAgICAgICAgICAgICAgICAgICAgZmlsZV9jb250ZW50cyA9IHJhd19maWxlX2NvbnRlbnRzLmRl
Y29kZSgidXRmLTE2YmUiLCAicmVwbGFjZSIpICAjIHR5cGU6IFRleHQKKyAgICAgICAgICAgICAg
ICBlbGlmIHJhd19maWxlX2NvbnRlbnRzLnN0YXJ0c3dpdGgoIlx4ZmZceGZlIik6CisgICAgICAg
ICAgICAgICAgICAgIGZpbGVfY29udGVudHMgPSByYXdfZmlsZV9jb250ZW50cy5kZWNvZGUoInV0
Zi0xNmxlIiwgInJlcGxhY2UiKQogICAgICAgICAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAg
ICAgICAgIGZpbGVfY29udGVudHMgPSBmaWxlX2NvbnRlbnRzLmRlY29kZSgidXRmOCIsICJyZXBs
YWNlIikKKyAgICAgICAgICAgICAgICAgICAgZmlsZV9jb250ZW50cyA9IHJhd19maWxlX2NvbnRl
bnRzLmRlY29kZSgidXRmOCIsICJyZXBsYWNlIikKICAgICAgICAgICAgICAgICBmb3IgZnVsbF9w
YXRoLCByZXBvX3BhdGggaW4gbm9udGVzdF9jaGFuZ2VkX3BhdGhzOgogICAgICAgICAgICAgICAg
ICAgICByZWxfcGF0aCA9IG9zLnBhdGgucmVscGF0aChmdWxsX3BhdGgsIHJvb3QpLnJlcGxhY2Uo
b3MucGF0aC5zZXAsICIvIikKLSAgICAgICAgICAgICAgICAgICAgaWYgcmVsX3BhdGggaW4gZmls
ZV9jb250ZW50cyBvciByZXBvX3BhdGggaW4gZmlsZV9jb250ZW50czoKKyAgICAgICAgICAgICAg
ICAgICAgaWYgcmVsX3BhdGggaW4gZmlsZV9jb250ZW50cyBvciByZXBvX3BhdGggaW4gZmlsZV9j
b250ZW50cyBvciBhZmZlY3RlZF9ieV9pbnRlcmZhY2VzKGZpbGVfY29udGVudHMpOgogICAgICAg
ICAgICAgICAgICAgICAgICAgYWZmZWN0ZWRfdGVzdGZpbGVzLmFkZCh0ZXN0X2Z1bGxfcGF0aCkK
ICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlCiAKQEAgLTI4NSwxMSArMzQwLDE0IEBA
IGRlZiBhZmZlY3RlZF90ZXN0ZmlsZXMoZmlsZXNfY2hhbmdlZCwgc2tpcF90ZXN0cywgbWFuaWZl
c3RfcGF0aD1Ob25lKToKIAogCiBkZWYgZ2V0X3BhcnNlcigpOgorICAgICMgdHlwZTogKCkgLT4g
YXJncGFyc2UuQXJndW1lbnRQYXJzZXIKICAgICBwYXJzZXIgPSBhcmdwYXJzZS5Bcmd1bWVudFBh
cnNlcigpCiAgICAgcGFyc2VyLmFkZF9hcmd1bWVudCgicmV2aXNoIiwgZGVmYXVsdD1Ob25lLCBo
ZWxwPSJDb21taXRzIHRvIGNvbnNpZGVyLiBEZWZhdWx0cyB0byB0aGUgIgogICAgICAgICAgICAg
ICAgICAgICAgICAgImNvbW1pdHMgb24gdGhlIGN1cnJlbnQgYnJhbmNoIiwgbmFyZ3M9Ij8iKQot
ICAgIHBhcnNlci5hZGRfYXJndW1lbnQoIi0taWdub3JlLXJ1bGVzIiwgbmFyZ3M9IioiLCB0eXBl
PXNldCwKLSAgICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ9c2V0KFsicmVzb3VyY2VzL3Rl
c3RoYXJuZXNzKiJdKSwKKyAgICAjIFRPRE86IENvbnNvbGlkYXRlIHdpdGggYC4vd3B0IHJ1biAt
LWFmZmVjdGVkYDoKKyAgICAjIGh0dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxhdGZvcm0tdGVzdHMv
d3B0L2lzc3Vlcy8xNDU2MAorICAgIHBhcnNlci5hZGRfYXJndW1lbnQoIi0taWdub3JlLXJ1bGVz
IiwgbmFyZ3M9IioiLCB0eXBlPXNldCwgICMgdHlwZTogaWdub3JlCisgICAgICAgICAgICAgICAg
ICAgICAgICBkZWZhdWx0PXsicmVzb3VyY2VzL3Rlc3RoYXJuZXNzKiJ9LAogICAgICAgICAgICAg
ICAgICAgICAgICAgaGVscD0iUnVsZXMgZm9yIHBhdGhzIHRvIGV4Y2x1ZGUgZnJvbSBsaXN0cyBv
ZiBjaGFuZ2VzLiBSdWxlcyBhcmUgcGF0aHMgIgogICAgICAgICAgICAgICAgICAgICAgICAgInJl
bGF0aXZlIHRvIHRoZSB0ZXN0IHJvb3QsIHdpdGggKiBiZWZvcmUgYSBzZXBhcmF0b3Igb3IgdGhl
IGVuZCBtYXRjaGluZyAiCiAgICAgICAgICAgICAgICAgICAgICAgICAiYW55dGhpbmcgb3RoZXIg
dGhhbiBhIHBhdGggc2VwYXJhdG9yIGFuZCAqKiBpbiB0aGF0IHBvc2l0aW9uIG1hdGNoaW5nICIK
QEAgLTMwNyw2ICszNjUsNyBAQCBkZWYgZ2V0X3BhcnNlcigpOgogCiAKIGRlZiBnZXRfcGFyc2Vy
X2FmZmVjdGVkKCk6CisgICAgIyB0eXBlOiAoKSAtPiBhcmdwYXJzZS5Bcmd1bWVudFBhcnNlcgog
ICAgIHBhcnNlciA9IGdldF9wYXJzZXIoKQogICAgIHBhcnNlci5hZGRfYXJndW1lbnQoIi0tbWV0
YWRhdGEiLAogICAgICAgICAgICAgICAgICAgICAgICAgZGVzdD0ibWV0YWRhdGFfcm9vdCIsCkBA
IC0zMTcsMTMgKzM3NiwxOCBAQCBkZWYgZ2V0X3BhcnNlcl9hZmZlY3RlZCgpOgogCiAKIGRlZiBn
ZXRfcmV2aXNoKCoqa3dhcmdzKToKLSAgICByZXZpc2ggPSBrd2FyZ3NbInJldmlzaCJdCi0gICAg
aWYga3dhcmdzWyJyZXZpc2giXSBpcyBOb25lOgorICAgICMgdHlwZTogKCoqQW55KSAtPiBieXRl
cworICAgIHJldmlzaCA9IGt3YXJncy5nZXQoInJldmlzaCIpCisgICAgaWYgcmV2aXNoIGlzIE5v
bmU6CiAgICAgICAgIHJldmlzaCA9ICIlcy4uSEVBRCIgJSBicmFuY2hfcG9pbnQoKQorICAgIGlm
IGlzaW5zdGFuY2UocmV2aXNoLCBzaXgudGV4dF90eXBlKToKKyAgICAgICAgcmV2aXNoID0gcmV2
aXNoLmVuY29kZSgidXRmOCIpCisgICAgYXNzZXJ0IGlzaW5zdGFuY2UocmV2aXNoLCBzaXguYmlu
YXJ5X3R5cGUpCiAgICAgcmV0dXJuIHJldmlzaAogCiAKIGRlZiBydW5fY2hhbmdlZF9maWxlcygq
Kmt3YXJncyk6CisgICAgIyB0eXBlOiAoKipBbnkpIC0+IE5vbmUKICAgICByZXZpc2ggPSBnZXRf
cmV2aXNoKCoqa3dhcmdzKQogICAgIGNoYW5nZWQsIF8gPSBmaWxlc19jaGFuZ2VkKHJldmlzaCwg
a3dhcmdzWyJpZ25vcmVfcnVsZXMiXSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBp
bmNsdWRlX3VuY29tbWl0dGVkPWt3YXJnc1sibW9kaWZpZWQiXSwKQEAgLTMzMiwxMCArMzk2LDEx
IEBAIGRlZiBydW5fY2hhbmdlZF9maWxlcygqKmt3YXJncyk6CiAgICAgc2VwYXJhdG9yID0gIlww
IiBpZiBrd2FyZ3NbIm51bGwiXSBlbHNlICJcbiIKIAogICAgIGZvciBpdGVtIGluIHNvcnRlZChj
aGFuZ2VkKToKLSAgICAgICAgc3lzLnN0ZG91dC53cml0ZShvcy5wYXRoLnJlbHBhdGgoaXRlbSwg
d3B0X3Jvb3QpICsgc2VwYXJhdG9yKQorICAgICAgICBzeXMuc3Rkb3V0LndyaXRlKG9zLnBhdGgu
cmVscGF0aChpdGVtLmVuY29kZSgidXRmOCIpLCB3cHRfcm9vdCkgKyBzZXBhcmF0b3IpCiAKIAog
ZGVmIHJ1bl90ZXN0c19hZmZlY3RlZCgqKmt3YXJncyk6CisgICAgIyB0eXBlOiAoKipBbnkpIC0+
IE5vbmUKICAgICByZXZpc2ggPSBnZXRfcmV2aXNoKCoqa3dhcmdzKQogICAgIGNoYW5nZWQsIF8g
PSBmaWxlc19jaGFuZ2VkKHJldmlzaCwga3dhcmdzWyJpZ25vcmVfcnVsZXMiXSwKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBpbmNsdWRlX3VuY29tbWl0dGVkPWt3YXJnc1sibW9kaWZp
ZWQiXSwKQEAgLTM0Myw3ICs0MDgsNyBAQCBkZWYgcnVuX3Rlc3RzX2FmZmVjdGVkKCoqa3dhcmdz
KToKICAgICBtYW5pZmVzdF9wYXRoID0gb3MucGF0aC5qb2luKGt3YXJnc1sibWV0YWRhdGFfcm9v
dCJdLCAiTUFOSUZFU1QuanNvbiIpCiAgICAgdGVzdHNfY2hhbmdlZCwgZGVwZW5kZW50cyA9IGFm
ZmVjdGVkX3Rlc3RmaWxlcygKICAgICAgICAgY2hhbmdlZCwKLSAgICAgICAgc2V0KFsiY29uZm9y
bWFuY2UtY2hlY2tlcnMiLCAiZG9jcyIsICJ0b29scyJdKSwKKyAgICAgICAgeyJjb25mb3JtYW5j
ZS1jaGVja2VycyIsICJkb2NzIiwgInRvb2xzIn0sCiAgICAgICAgIG1hbmlmZXN0X3BhdGg9bWFu
aWZlc3RfcGF0aAogICAgICkKIApAQCAtMzYxLDYgKzQyNiw2IEBAIGRlZiBydW5fdGVzdHNfYWZm
ZWN0ZWQoKiprd2FyZ3MpOgogICAgICAgICBpZiBrd2FyZ3NbInNob3dfdHlwZSJdOgogICAgICAg
ICAgICAgaXRlbV90eXBlcyA9IHtpLml0ZW1fdHlwZSBmb3IgaSBpbiB3cHRfbWFuaWZlc3QuaXRl
cnBhdGgocmVzdWx0c1sicGF0aCJdKX0KICAgICAgICAgICAgIGlmIGxlbihpdGVtX3R5cGVzKSAh
PSAxOgotICAgICAgICAgICAgICAgIGl0ZW1fdHlwZXMgPSBbIiAiLmpvaW4oaXRlbV90eXBlcyld
CisgICAgICAgICAgICAgICAgaXRlbV90eXBlcyA9IHsiICIuam9pbihpdGVtX3R5cGVzKX0KICAg
ICAgICAgICAgIHJlc3VsdHNbIml0ZW1fdHlwZSJdID0gaXRlbV90eXBlcy5wb3AoKQogICAgICAg
ICBzeXMuc3Rkb3V0LndyaXRlKG1lc3NhZ2UuZm9ybWF0KCoqcmVzdWx0cykpCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdC90
ZXN0cy90ZXN0X2Jyb3dzZXIucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3dwdC90ZXN0cy90ZXN0X2Jyb3dzZXIucHkKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjVi
NjZlN2Q5MjJmNTRlZGYxOTdiYWFhZjQyYzI2YzlmY2UwNDYyMQotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0L3Rl
c3RzL3Rlc3RfYnJvd3Nlci5weQpAQCAtMCwwICsxLDEwMyBAQAoraW1wb3J0IG1vY2sKK2ltcG9y
dCBzdWJwcm9jZXNzCitpbXBvcnQgbG9nZ2luZworaW1wb3J0IHN5cworaW1wb3J0IHB5dGVzdAor
Citmcm9tIHRvb2xzLndwdCBpbXBvcnQgYnJvd3NlcgorCisKK2xvZ2dlciA9IGxvZ2dpbmcuZ2V0
TG9nZ2VyKCkKKworCitAbW9jay5wYXRjaCgnc3VicHJvY2Vzcy5jaGVja19vdXRwdXQnKQorZGVm
IHRlc3Rfc2FmYXJpX3ZlcnNpb24obW9ja2VkX2NoZWNrX291dHB1dCk6CisgICAgc2FmYXJpID0g
YnJvd3Nlci5TYWZhcmkobG9nZ2VyKQorCisgICAgIyBTYWZhcmkKKyAgICBtb2NrZWRfY2hlY2tf
b3V0cHV0LnJldHVybl92YWx1ZSA9ICdJbmNsdWRlZCB3aXRoIFNhZmFyaSAxMi4xICgxNDYwNy4x
LjExKScKKyAgICBhc3NlcnQgc2FmYXJpLnZlcnNpb24od2ViZHJpdmVyX2JpbmFyeT0ic2FmYXJp
ZHJpdmVyIikgPT0gJzEyLjEgKDE0NjA3LjEuMTEpJworCisgICAgIyBTYWZhcmkgVGVjaG5vbG9n
eSBQcmV2aWV3CisgICAgbW9ja2VkX2NoZWNrX291dHB1dC5yZXR1cm5fdmFsdWUgPSAnSW5jbHVk
ZWQgd2l0aCBTYWZhcmkgVGVjaG5vbG9neSBQcmV2aWV3IChSZWxlYXNlIDY3LCAxMzYwNy4xLjku
MC4xKScKKyAgICBhc3NlcnQgc2FmYXJpLnZlcnNpb24od2ViZHJpdmVyX2JpbmFyeT0ic2FmYXJp
ZHJpdmVyIikgPT0gJ1RlY2hub2xvZ3kgUHJldmlldyAoUmVsZWFzZSA2NywgMTM2MDcuMS45LjAu
MSknCisKK0Btb2NrLnBhdGNoKCdzdWJwcm9jZXNzLmNoZWNrX291dHB1dCcpCitkZWYgdGVzdF9z
YWZhcmlfdmVyc2lvbl9lcnJvcnMobW9ja2VkX2NoZWNrX291dHB1dCk6CisgICAgc2FmYXJpID0g
YnJvd3Nlci5TYWZhcmkobG9nZ2VyKQorCisgICAgIyBObyB3ZWJkcml2ZXJfYmluYXJ5CisgICAg
YXNzZXJ0IHNhZmFyaS52ZXJzaW9uKCkgaXMgTm9uZQorCisgICAgIyBgc2FmYXJpZHJpdmVyIC0t
dmVyc2lvbmAgcmV0dXJuIGdpYmJlcmlzaAorICAgIG1vY2tlZF9jaGVja19vdXRwdXQucmV0dXJu
X3ZhbHVlID0gJ2dpYmJlcmlzaCcKKyAgICBhc3NlcnQgc2FmYXJpLnZlcnNpb24od2ViZHJpdmVy
X2JpbmFyeT0ic2FmYXJpZHJpdmVyIikgaXMgTm9uZQorCisgICAgIyBgc2FmYXJpZHJpdmVyIC0t
dmVyc2lvbmAgZmFpbHMgKGFzIGl0IGRvZXMgZm9yIFNhZmFyaSA8PTEyLjApCisgICAgbW9ja2Vk
X2NoZWNrX291dHB1dC5yZXR1cm5fdmFsdWUgPSAnZHVtbXknCisgICAgbW9ja2VkX2NoZWNrX291
dHB1dC5zaWRlX2VmZmVjdCA9IHN1YnByb2Nlc3MuQ2FsbGVkUHJvY2Vzc0Vycm9yKDEsICdjbWQn
KQorICAgIGFzc2VydCBzYWZhcmkudmVyc2lvbih3ZWJkcml2ZXJfYmluYXJ5PSJzYWZhcmlkcml2
ZXIiKSBpcyBOb25lCisKKworQG1vY2sucGF0Y2goJ3N1YnByb2Nlc3MuY2hlY2tfb3V0cHV0JykK
K2RlZiB0ZXN0X3dlYmtpdGd0a19taW5pYnJvd3Nlcl92ZXJzaW9uKG1vY2tlZF9jaGVja19vdXRw
dXQpOgorICAgIHdlYmtpdGd0a19taW5pYnJvd3NlciA9IGJyb3dzZXIuV2ViS2l0R1RLTWluaUJy
b3dzZXIobG9nZ2VyKQorCisgICAgIyBzdGFibGUgdmVyc2lvbgorICAgIG1vY2tlZF9jaGVja19v
dXRwdXQucmV0dXJuX3ZhbHVlID0gJ1dlYktpdEdUSyAyLjI2LjFcbicKKyAgICBhc3NlcnQgd2Vi
a2l0Z3RrX21pbmlicm93c2VyLnZlcnNpb24oYmluYXJ5PSdNaW5pQnJvd3NlcicpID09ICcyLjI2
LjEnCisKKyAgICAjIG5pZ2h0bHkgdmVyc2lvbgorICAgIG1vY2tlZF9jaGVja19vdXRwdXQucmV0
dXJuX3ZhbHVlID0gJ1dlYktpdEdUSyAyLjI3LjEgKHIyNTA4MjMpXG4nCisgICAgYXNzZXJ0IHdl
YmtpdGd0a19taW5pYnJvd3Nlci52ZXJzaW9uKGJpbmFyeT0nTWluaUJyb3dzZXInKSA9PSAnMi4y
Ny4xIChyMjUwODIzKScKKworQG1vY2sucGF0Y2goJ3N1YnByb2Nlc3MuY2hlY2tfb3V0cHV0JykK
K2RlZiB0ZXN0X3dlYmtpdGd0a19taW5pYnJvd3Nlcl92ZXJzaW9uX2Vycm9ycyhtb2NrZWRfY2hl
Y2tfb3V0cHV0KToKKyAgICB3ZWJraXRndGtfbWluaWJyb3dzZXIgPSBicm93c2VyLldlYktpdEdU
S01pbmlCcm93c2VyKGxvZ2dlcikKKworICAgICMgTm8gYmluYXJ5CisgICAgYXNzZXJ0IHdlYmtp
dGd0a19taW5pYnJvd3Nlci52ZXJzaW9uKCkgaXMgTm9uZQorCisgICAgIyBgTWluaUJyb3dzZXIg
LS12ZXJzaW9uYCByZXR1cm4gZ2liYmVyaXNoCisgICAgbW9ja2VkX2NoZWNrX291dHB1dC5yZXR1
cm5fdmFsdWUgPSAnZ2liYmVyaXNoJworICAgIGFzc2VydCB3ZWJraXRndGtfbWluaWJyb3dzZXIu
dmVyc2lvbihiaW5hcnk9J01pbmlCcm93c2VyJykgaXMgTm9uZQorCisgICAgIyBgTWluaUJyb3dz
ZXIgLS12ZXJzaW9uYCBmYWlscyAoYXMgaXQgZG9lcyBmb3IgTWluaUJyb3dzZXIgPD0gMi4yNi4w
KQorICAgIG1vY2tlZF9jaGVja19vdXRwdXQucmV0dXJuX3ZhbHVlID0gJ2R1bW15JworICAgIG1v
Y2tlZF9jaGVja19vdXRwdXQuc2lkZV9lZmZlY3QgPSBzdWJwcm9jZXNzLkNhbGxlZFByb2Nlc3NF
cnJvcigxLCAnY21kJykKKyAgICBhc3NlcnQgd2Via2l0Z3RrX21pbmlicm93c2VyLnZlcnNpb24o
YmluYXJ5PSdNaW5pQnJvd3NlcicpIGlzIE5vbmUKKworCisjIFRoZSB0ZXN0IGJlbG93IGRvZXNu
J3Qgd29yayBvbiBXaW5kb3dzIGJlY2F1c2UgZGlzdHV0aWxzIGZpbmRfYmluYXJ5KCkKKyMgb24g
V2luZG93cyBvbmx5IHdvcmtzIGlmIHRoZSBiaW5hcnkgbmFtZSBlbmRzIHdpdGggYSAiLmV4ZSIg
c3VmZml4LgorIyBCdXQsIFdlYktpdEdUSyBpdHNlbGYgZG9lc24ndCBzdXBwb3J0IFdpbmRvd3Ms
IHNvIGxldHMgc2tpcCB0aGUgdGVzdC4KK0BweXRlc3QubWFyay5za2lwaWYoc3lzLnBsYXRmb3Jt
LnN0YXJ0c3dpdGgoJ3dpbicpLCByZWFzb249J3Rlc3Qgbm90IG5lZWRlZCBvbiBXaW5kb3dzJykK
K0Btb2NrLnBhdGNoKCdvcy5wYXRoLmlzZmlsZScpCitkZWYgdGVzdF93ZWJraXRndGtfbWluaWJy
b3dzZXJfZmluZF9iaW5hcnkobW9ja2VkX29zX3BhdGhfaXNmaWxlKToKKyAgICB3ZWJraXRndGtf
bWluaWJyb3dzZXIgPSBicm93c2VyLldlYktpdEdUS01pbmlCcm93c2VyKGxvZ2dlcikKKworICAg
ICMgTm8gTWluaUJyb3dzZXIgZm91bmQKKyAgICBtb2NrZWRfb3NfcGF0aF9pc2ZpbGUuc2lkZV9l
ZmZlY3QgPSBsYW1iZGEgcGF0aDogcGF0aCA9PSAnL2V0Yy9wYXNzd2QnCisgICAgYXNzZXJ0IHdl
YmtpdGd0a19taW5pYnJvd3Nlci5maW5kX2JpbmFyeSgpIGlzIE5vbmUKKworICAgICMgRm91bmQg
b24gdGhlIGRlZmF1bHQgRmVkb3JhIHBhdGgKKyAgICBmZWRvcmFfbWluaWJyb3dzZXJfcGF0aCA9
ICcvdXNyL2xpYmV4ZWMvd2Via2l0Mmd0ay00LjAvTWluaUJyb3dzZXInCisgICAgbW9ja2VkX29z
X3BhdGhfaXNmaWxlLnNpZGVfZWZmZWN0ID0gbGFtYmRhIHBhdGg6IHBhdGggPT0gZmVkb3JhX21p
bmlicm93c2VyX3BhdGgKKyAgICBhc3NlcnQgd2Via2l0Z3RrX21pbmlicm93c2VyLmZpbmRfYmlu
YXJ5KCkgPT0gZmVkb3JhX21pbmlicm93c2VyX3BhdGgKKworICAgICMgRm91bmQgb24gdGhlIGRl
ZmF1bHQgRGViaWFuIHBhdGggZm9yIEFNRDY0IChnY2Mgbm90IGF2YWlsYWJsZSkKKyAgICBkZWJp
YW5fbWluaWJyb3dzZXJfcGF0aF9hbWQ2NCA9ICcvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L3dl
YmtpdDJndGstNC4wL01pbmlCcm93c2VyJworICAgIG1vY2tlZF9vc19wYXRoX2lzZmlsZS5zaWRl
X2VmZmVjdCA9IGxhbWJkYSBwYXRoOiBwYXRoID09IGRlYmlhbl9taW5pYnJvd3Nlcl9wYXRoX2Ft
ZDY0CisgICAgYXNzZXJ0IHdlYmtpdGd0a19taW5pYnJvd3Nlci5maW5kX2JpbmFyeSgpID09IGRl
Ymlhbl9taW5pYnJvd3Nlcl9wYXRoX2FtZDY0CisKKyAgICAjIEZvdW5kIG9uIHRoZSBkZWZhdWx0
IERlYmlhbiBwYXRoIGZvciBBTUQ2NCAoZ2NjIGF2YWlsYWJsZSBidXQgZ2l2ZXMgYW4gZXJyb3Ip
CisgICAgZGViaWFuX21pbmlicm93c2VyX3BhdGhfYW1kNjQgPSAnL3Vzci9saWIveDg2XzY0LWxp
bnV4LWdudS93ZWJraXQyZ3RrLTQuMC9NaW5pQnJvd3NlcicKKyAgICBtb2NrZWRfb3NfcGF0aF9p
c2ZpbGUuc2lkZV9lZmZlY3QgPSBsYW1iZGEgcGF0aDogcGF0aCBpbiBbZGViaWFuX21pbmlicm93
c2VyX3BhdGhfYW1kNjQsICcvdXNyL2Jpbi9nY2MnXQorICAgIHdpdGggbW9jay5wYXRjaCgnc3Vi
cHJvY2Vzcy5jaGVja19vdXRwdXQnLCByZXR1cm5fdmFsdWUgPSAnZXJyb3InLCBzaWRlX2VmZmVj
dCA9IHN1YnByb2Nlc3MuQ2FsbGVkUHJvY2Vzc0Vycm9yKDEsICdjbWQnKSk6CisgICAgICAgIGFz
c2VydCB3ZWJraXRndGtfbWluaWJyb3dzZXIuZmluZF9iaW5hcnkoKSA9PSBkZWJpYW5fbWluaWJy
b3dzZXJfcGF0aF9hbWQ2NAorCisgICAgICAgICMgRm91bmQgb24gdGhlIGRlZmF1bHQgRGViaWFu
IHBhdGggZm9yIEFSTTY0IChnY2MgYXZhaWxhYmxlKQorICAgICAgICBkZWJpYW5fbWluaWJyb3dz
ZXJfcGF0aF9hcm02NCA9ICcvdXNyL2xpYi9hYXJjaDY0LWxpbnV4LWdudS93ZWJraXQyZ3RrLTQu
MC9NaW5pQnJvd3NlcicKKyAgICAgICAgbW9ja2VkX29zX3BhdGhfaXNmaWxlLnNpZGVfZWZmZWN0
ID0gbGFtYmRhIHBhdGg6IHBhdGggaW4gW2RlYmlhbl9taW5pYnJvd3Nlcl9wYXRoX2FybTY0LCAn
L3Vzci9iaW4vZ2NjJ10KKyAgICAgICAgd2l0aCBtb2NrLnBhdGNoKCdzdWJwcm9jZXNzLmNoZWNr
X291dHB1dCcsIHJldHVybl92YWx1ZSA9ICdhYXJjaDY0LWxpbnV4LWdudScpOgorICAgICAgICAg
ICAgYXNzZXJ0IHdlYmtpdGd0a19taW5pYnJvd3Nlci5maW5kX2JpbmFyeSgpID09IGRlYmlhbl9t
aW5pYnJvd3Nlcl9wYXRoX2FybTY0CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdC90ZXN0cy90ZXN0X3Jldmxpc3QucHkgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdC90ZXN0
cy90ZXN0X3Jldmxpc3QucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZWMyYTZiODk5ZDVkMWE5MjdkY2FkMWY5YTc1
ODNmOTg3YTNhZDk0NwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0L3Rlc3RzL3Rlc3RfcmV2bGlzdC5weQpAQCAt
MCwwICsxLDE2MyBAQAoraW1wb3J0IG1vY2sKK2Zyb20gdG9vbHMud3B0IGltcG9ydCByZXZsaXN0
CisKKworZGVmIHRlc3RfY2FsY3VsYXRlX2N1dG9mZl9kYXRlKCk6CisgICAgYXNzZXJ0IHJldmxp
c3QuY2FsY3VsYXRlX2N1dG9mZl9kYXRlKDM2MDEsIDM2MDAsIDApID09IDM2MDAKKyAgICBhc3Nl
cnQgcmV2bGlzdC5jYWxjdWxhdGVfY3V0b2ZmX2RhdGUoMzYwMCwgMzYwMCwgMCkgPT0gMzYwMAor
ICAgIGFzc2VydCByZXZsaXN0LmNhbGN1bGF0ZV9jdXRvZmZfZGF0ZSgzNTk5LCAzNjAwLCAwKSA9
PSAwCisgICAgYXNzZXJ0IHJldmxpc3QuY2FsY3VsYXRlX2N1dG9mZl9kYXRlKDM2MDAsIDM2MDAs
IDEpID09IDEKKyAgICBhc3NlcnQgcmV2bGlzdC5jYWxjdWxhdGVfY3V0b2ZmX2RhdGUoMzYwMCwg
MzYwMCwgLTEpID09IDM1OTkKKworCitkZWYgdGVzdF9wYXJzZV9lcG9jaCgpOgorICAgIGFzc2Vy
dCByZXZsaXN0LnBhcnNlX2Vwb2NoKGIiMTBoIikgPT0gMzYwMDAKKyAgICBhc3NlcnQgcmV2bGlz
dC5wYXJzZV9lcG9jaChiIjEwZCIpID09IDg2NDAwMAorICAgIGFzc2VydCByZXZsaXN0LnBhcnNl
X2Vwb2NoKGIiMTB3IikgPT0gNjA0ODAwMAorCisKK0Btb2NrLnBhdGNoKCdzdWJwcm9jZXNzLmNo
ZWNrX291dHB1dCcpCitkZWYgdGVzdF9nZXRfZXBvY2hfcmV2aXNpb25zKG1vY2tlZF9jaGVja19v
dXRwdXQpOgorICAgICMgY2hlY2s6CisgICAgIworICAgICMgKiBTZXZlcmFsIHJldmlzaW9ucyBp
biB0aGUgc2FtZSBlcG9jaCBvZmZzZXQgKEJDLCBERUYsIEhJSiwgYW5kIExNKQorICAgICMgKiBS
ZXZpc2lvbiB3aXRoIGEgdGltZXN0YW1wIGV4YWN0bHkgZXF1YWwgdG8gdGhlIGVwb2NoIGJvdW5k
YXJ5IChIKQorICAgICMgKiBSZXZpc2lvbiBpbiBub24gY2xvc2VkIGludGVydmFsIChPKQorICAg
ICMKKyAgICAjICAgICAgIG1vbiAgdHVlICAgd2VkICAgdGh1ICAgZnJpICAgc2F0ICAgc3VuICAg
bW9uICAgdGh1ICAgd2VkCisgICAgIyAgICAgICAgICB8ICAgICB8ICAgICB8ICAgICB8ICAgICB8
ICAgICB8ICAgICB8ICAgICB8ICAgICB8CisgICAgIyAgICAgICAtQS0tLUItQy0tLURFRi0tLUct
LS1ILS1JSi0tLS0tLS0tLS1LLS0tLS1MLU0tLS0tTi0tTy0tCisgICAgIyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCisgICAgIyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHVudGlsCisgICAgIyAgICAgICBtYXhfY291bnQ6IDU7IGVwb2NoOiAxZAorICAgICMgICAgICAg
RXhwZWN0ZWQgcmVzdWx0OiBOLE0sSyxKLEcsRixDLEEKKyAgICBlcG9jaCA9IDg2NDAwCisgICAg
dW50aWwgPSAxMTg4MDAwICAjIFdlZG5lc2RheSwgMTQgSmFudWFyeSAxOTcwIDE4OjAwOjAwIFVU
QworICAgIG1vY2tlZF9jaGVja19vdXRwdXQucmV0dXJuX3ZhbHVlID0gYicnJworbWVyZ2VfcHJf
TyBPIDExNjY0MDAgX3dlZF8KK21lcmdlX3ByX04gTiAxMDgwMDAwIF90dWVfCittZXJnZV9wcl9N
IE0gMTAxNTIwMCBfbW9uXworbWVyZ2VfcHJfTCBMIDk5MzYwMCBfbW9uXworbWVyZ2VfcHJfSyBL
IDkwNzIwMCBfc3VuXworbWVyZ2VfcHJfSiBKIDczNDQwMCBfZnJpXworbWVyZ2VfcHJfSSBJIDcx
MjgwMCBfZnJpXworbWVyZ2VfcHJfSCBIIDY5MTIwMCBfZnJpXworbWVyZ2VfcHJfRyBHIDY0ODAw
MCBfdGh1XworbWVyZ2VfcHJfRiBGIDU4MzIwMCBfd2VkXworbWVyZ2VfcHJfRSBFIDU2MTYwMCBf
d2VkXworbWVyZ2VfcHJfRCBEIDU0MDAwMCBfd2VkXworbWVyZ2VfcHJfQyBDIDQ3NTIwMCBfdHVl
XworbWVyZ2VfcHJfQiBCIDQ1MzYwMCBfdHVlXworbWVyZ2VfcHJfQSBBIDM4ODgwMCBfbW9uXwor
JycnCisgICAgdGFnZ2VkX3Jldmlzb25zID0gcmV2bGlzdC5nZXRfZXBvY2hfcmV2aXNpb25zKGVw
b2NoLCB1bnRpbCwgOCkKKyAgICBhc3NlcnQgdGFnZ2VkX3Jldmlzb25zLm5leHQoKSA9PSAnTicK
KyAgICBhc3NlcnQgdGFnZ2VkX3Jldmlzb25zLm5leHQoKSA9PSAnTScKKyAgICBhc3NlcnQgdGFn
Z2VkX3Jldmlzb25zLm5leHQoKSA9PSAnSycKKyAgICBhc3NlcnQgdGFnZ2VkX3Jldmlzb25zLm5l
eHQoKSA9PSAnSicKKyAgICBhc3NlcnQgdGFnZ2VkX3Jldmlzb25zLm5leHQoKSA9PSAnRycKKyAg
ICBhc3NlcnQgdGFnZ2VkX3Jldmlzb25zLm5leHQoKSA9PSAnRicKKyAgICBhc3NlcnQgdGFnZ2Vk
X3Jldmlzb25zLm5leHQoKSA9PSAnQycKKyAgICBhc3NlcnQgdGFnZ2VkX3Jldmlzb25zLm5leHQo
KSA9PSAnQScKKyAgICBhc3NlcnQgbGVuKGxpc3QodGFnZ2VkX3Jldmlzb25zKSkgPT0gMCAgIyBn
ZW5lcmF0b3IgZXhoYXVzdGVkCisKKworICAgICMgY2hlY2s6IG1heF9jb3VudCB3aXRoIGVub3Vn
aCBjYW5kaWRhdGUgaXRlbXMgaW4gdGhlIHJldmlzaW9uIGxpc3QKKyAgICAjCisgICAgIyAgICAg
ICBtb24gIHR1ZSAgIHdlZCAgIHRodSAgIGZyaSAgIHNhdCAgIHN1biAgICBtb24KKyAgICAjICAg
ICAgICAgIHwgICAgIHwgICAgIHwgICAgIHwgICAgIHwgICAgIHwgICAgIHwKKyAgICAjICAgICAg
IC0tLS0tLUItLS0tLUMtLS0tLUQtLS0tRS0tLS0tRi0tLS0tRy0tLS0tLUgtLS0KKyAgICAjICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgorICAgICMg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW50aWwKKyAg
ICAjICAgICAgIG1heF9jb3VudDogNTsgZXBvY2g6IDFkCisgICAgIyAgICAgICBFeHBlY3RlZCBy
ZXN1bHQ6IEcsRixFLEQsQworICAgIGVwb2NoID0gODY0MDAKKyAgICB1bnRpbCA9IDEwMTUyMDAg
ICAjIE1vbmRheSwgMTIgSmFudWFyeSAxOTcwIDE4OjAwOjAwIFVUQworICAgIG1vY2tlZF9jaGVj
a19vdXRwdXQucmV0dXJuX3ZhbHVlID0gYicnJworbWVyZ2VfcHJfSCBIIDk5MzYwMCBfbW9uXwor
bWVyZ2VfcHJfRyBHIDkwNzIwMCBfc3VuXworbWVyZ2VfcHJfRiBGIDgyMDgwMCBfc2F0XworbWVy
Z2VfcHJfRSBFIDczNDQwMCBfZnJpXworbWVyZ2VfcHJfRCBEIDY0ODAwMCBfdGh1XworbWVyZ2Vf
cHJfQyBDIDU2MTYwMCBfd2VkXworbWVyZ2VfcHJfQiBCIDQ3NTIwMCBfdGh1XworJycnCisgICAg
dGFnZ2VkX3Jldmlzb25zID0gcmV2bGlzdC5nZXRfZXBvY2hfcmV2aXNpb25zKGVwb2NoLCB1bnRp
bCwgNSkKKyAgICBhc3NlcnQgdGFnZ2VkX3Jldmlzb25zLm5leHQoKSA9PSAnRycKKyAgICBhc3Nl
cnQgdGFnZ2VkX3Jldmlzb25zLm5leHQoKSA9PSAnRicKKyAgICBhc3NlcnQgdGFnZ2VkX3Jldmlz
b25zLm5leHQoKSA9PSAnRScKKyAgICBhc3NlcnQgdGFnZ2VkX3Jldmlzb25zLm5leHQoKSA9PSAn
RCcKKyAgICBhc3NlcnQgdGFnZ2VkX3Jldmlzb25zLm5leHQoKSA9PSAnQycKKyAgICBhc3NlcnQg
bGVuKGxpc3QodGFnZ2VkX3Jldmlzb25zKSkgPT0gMCAgIyBnZW5lcmF0b3IgZXhoYXVzdGVkCisK
KworICAgICMgY2hlY2s6IG1heF9jb3VudCB3aXRoIGxlc3MgcmV0dXJuZWQgY2FuZGlkYXRlcyBp
dGVtcyB0aGFuIHRoZSBuZWVkZWQKKyAgICAjCisgICAgIyAgICAgICBtb24gIHR1ZSAgIHdlZCAg
IHRodSAgIGZyaSAgIHNhdCAgIHN1biAgIG1vbgorICAgICMgICAgICAgICAgfCAgICAgfCAgICAg
fCAgICAgfCAgICAgfCAgICAgfCAgICAgfAorICAgICMgICAgICAgLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS1GLS0tLS1HLS0tLS0tSC0tLQorICAgICMgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCisgICAgIyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnRpbAorICAgICMgICAgICAgbWF4X2NvdW50
OiA1OyBlcG9jaDogMWQKKyAgICAjICAgICAgIEV4cGVjdGVkIHJlc3VsdDogRyxGCisgICAgZXBv
Y2ggPSA4NjQwMAorICAgIHVudGlsID0gMTAxNTIwMCAgICMgTW9uZGF5LCAxMiBKYW51YXJ5IDE5
NzAgMTg6MDA6MDAgVVRDCisgICAgbW9ja2VkX2NoZWNrX291dHB1dC5yZXR1cm5fdmFsdWUgPSBi
JycnCittZXJnZV9wcl9IIEggOTkzNjAwIF9tb25fCittZXJnZV9wcl9HIEcgOTA3MjAwIF9zdW5f
CittZXJnZV9wcl9GIEYgODIwODAwIF9zYXRfCisnJycKKyAgICB0YWdnZWRfcmV2aXNvbnMgPSBy
ZXZsaXN0LmdldF9lcG9jaF9yZXZpc2lvbnMoZXBvY2gsIHVudGlsLCA1KQorICAgIGFzc2VydCB0
YWdnZWRfcmV2aXNvbnMubmV4dCgpID09ICdHJworICAgIGFzc2VydCB0YWdnZWRfcmV2aXNvbnMu
bmV4dCgpID09ICdGJworICAgIGFzc2VydCBsZW4obGlzdCh0YWdnZWRfcmV2aXNvbnMpKSA9PSAw
ICAjIGdlbmVyYXRvciBleGhhdXN0ZWQKKworCisgICAgIyBjaGVjazogaW5pdGlhbCB1bnRpbCB2
YWx1ZSBpcyBvbiBhbiBlcG9jaCBib3VuZGFyeQorICAgICMKKyAgICAjICAgICAgICAgICAgICAg
ICAgICAgIHN1ZCAgbW9uICAgdHVlICAgd2VkICAgdGh1CisgICAgIyAgICAgICAgICAgICAgICAg
ICAgICAgICB8ICAgICB8ICAgICB8ICAgICB8CisgICAgIyAgICAgICAgICAgICAgICAgICAgICAt
Ri1HLS0tLS0tLS0tLS0tLS0tLS1ICisgICAgIyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBeCisgICAgIyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgdW50aWwKKyAgICAjICAgICAgIG1heF9jb3VudDogMzsgZXBvY2g6IDFkCisgICAgIyAg
ICAgICBFeHBlY3RlZCByZXN1bHQ6IEcsRgorICAgICMgICAgICAgKiBIIGlzIHNraXBwZWQgYmVj
YXVzZSBiZWNhdXNlIHRoZSBlcG9jaAorICAgICMgICAgICAgICBpbnRlcnZhbCBpcyBkZWZpbmVk
IGFzIGFuIHJpZ2h0LW9wZW4gaW50ZXJ2YWwKKyAgICAjICAgICAgICogRyBpcyBpbmNsdWRlZCBi
dXQgaW4gdGhlIE1vbmRheSdzIGludGVydmFsCisgICAgIyAgICAgICAqIEYgaXMgaW5jbHVkZWQg
YmVjYXVzZSBpdCBpcyB0aGUgdW5pcXVlIGNhbmRpZGF0ZQorICAgICMgICAgICAgICBpbmNsdWRl
ZCBpbiB0aGUgU3VuZGF5J3MgaW50ZXJ2YWwKKyAgICBlcG9jaCA9IDg2NDAwCisgICAgdW50aWwg
PSAxMjk2MDAwICAjIFRodXJzZGF5LCAxNSBKYW51YXJ5IDE5NzAgMDowMDowMCBVVEMKKyAgICBt
b2NrZWRfY2hlY2tfb3V0cHV0LnJldHVybl92YWx1ZSA9IGInJycKK21lcmdlX3ByX0ggSCAxMjk2
MDAwIF93ZWRfCittZXJnZV9wcl9HIEcgOTUwNDAwIF9tb25fCittZXJnZV9wcl9GIEYgOTIxNjAw
IF9zdWRfCisnJycKKyAgICB0YWdnZWRfcmV2aXNvbnMgPSByZXZsaXN0LmdldF9lcG9jaF9yZXZp
c2lvbnMoZXBvY2gsIHVudGlsLCAzKQorICAgIGFzc2VydCB0YWdnZWRfcmV2aXNvbnMubmV4dCgp
ID09ICdHJworICAgIGFzc2VydCB0YWdnZWRfcmV2aXNvbnMubmV4dCgpID09ICdGJworICAgIGFz
c2VydCBsZW4obGlzdCh0YWdnZWRfcmV2aXNvbnMpKSA9PSAwICAjIGdlbmVyYXRvciBleGhhdXN0
ZWQKKworCisgICAgIyBjaGVjazogdW50aWwgYWxpZ25lZCB3aXRoIE1vbmRheSwgNSBKYW51YXJ5
IDE5NzAgMDowMDowMCAoMzQ1NjAwKQorICAgICMgICAgICAgIG5vdCB3aXRoIFRodXJzZGF5LCAx
IEphbnVhcnkgMTk3MCAwOjAwOjAwICgwKQorICAgICMKKyAgICAjICAgICAgICAgICAgICAgICAg
ICAgIHN1ZCAgbW9uICAgdHVlICAgd2VkICAgdGh1CisgICAgIyAgICAgICAgICAgICAgICAgICAg
ICAgICB8ICAgICB8ICAgICB8ICAgICB8CisgICAgIyAgICAgICAgICAgICAgICAgICAgICAtRi1H
LS0tLS0tLS0tLS0tLS1ILS0tCisgICAgIyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBeCisgICAgIyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgdW50aWwKKyAgICAjICAgICAgIG1heF9jb3VudDogMTsgZXBvY2g6IDF3CisgICAgIyAgICAg
ICBFeHBlY3RlZCByZXN1bHQ6IEYKKyAgICBlcG9jaCA9IDYwNDgwMAorICAgIG1vZGF5ID0gOTUw
NDAwICAjIE1vbmRheSwgMTIgSmFudWFyeSAxOTcwIDAwOjAwOjAwIFVUQworICAgIHVudGlsID0g
bW9kYXkgKyAzNDU2MDAgICMgMTI5NjAwMC4gVGh1cnNkYXksIDE1IEphbnVhcnkgMTk3MCAwOjAw
OjAwIFVUQworICAgIG1vY2tlZF9jaGVja19vdXRwdXQucmV0dXJuX3ZhbHVlID0gYicnJworbWVy
Z2VfcHJfSCBIIDExODA4MDAgX3dlZF8KK21lcmdlX3ByX0cgRyA5NTA0MDAgX21vbl8KK21lcmdl
X3ByX0YgRiA5MjE2MDAgX3N1ZF8KKycnJworICAgIHRhZ2dlZF9yZXZpc29ucyA9IHJldmxpc3Qu
Z2V0X2Vwb2NoX3JldmlzaW9ucyhlcG9jaCwgdW50aWwsIDEpCisgICAgYXNzZXJ0IHRhZ2dlZF9y
ZXZpc29ucy5uZXh0KCkgPT0gJ0YnCisgICAgYXNzZXJ0IGxlbihsaXN0KHRhZ2dlZF9yZXZpc29u
cykpID09IDAgICMgZ2VuZXJhdG9yIGV4aGF1c3RlZApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHQvdGVzdHMvdGVzdF9ydW4u
cHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dw
dC90ZXN0cy90ZXN0X3J1bi5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lZjU4ZWM0MWIyYjRjZmMxNDk1NWI3MDE2
MjdkMDQ3YWY3OGYyOWJjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHQvdGVzdHMvdGVzdF9ydW4ucHkKQEAgLTAs
MCArMSw3MyBAQAoraW1wb3J0IG1vY2sKK2ltcG9ydCB0ZW1wZmlsZQoraW1wb3J0IHNodXRpbAor
aW1wb3J0IHN5cworCitpbXBvcnQgcHl0ZXN0CisKK2Zyb20gdG9vbHMud3B0IGltcG9ydCBydW4K
K2Zyb20gdG9vbHMgaW1wb3J0IGxvY2FscGF0aHMgICMgbm9xYTogRjQwMQorZnJvbSB3cHRydW5u
ZXIuYnJvd3NlcnMgaW1wb3J0IHByb2R1Y3RfbGlzdAorCisKK0BweXRlc3QuZml4dHVyZShzY29w
ZT0ibW9kdWxlIikKK2RlZiB2ZW52KCk6CisgICAgZnJvbSB0b29scy53cHQgaW1wb3J0IHZpcnR1
YWxlbnYKKworICAgIGNsYXNzIFZpcnR1YWxlbnYodmlydHVhbGVudi5WaXJ0dWFsZW52KToKKyAg
ICAgICAgZGVmIF9faW5pdF9fKHNlbGYpOgorICAgICAgICAgICAgc2VsZi5wYXRoID0gdGVtcGZp
bGUubWtkdGVtcCgpCisgICAgICAgICAgICBzZWxmLnNraXBfdmlydHVhbGVudl9zZXR1cCA9IEZh
bHNlCisKKyAgICAgICAgZGVmIGNyZWF0ZShzZWxmKToKKyAgICAgICAgICAgIHJldHVybgorCisg
ICAgICAgIGRlZiBhY3RpdmF0ZShzZWxmKToKKyAgICAgICAgICAgIHJldHVybgorCisgICAgICAg
IGRlZiBzdGFydChzZWxmKToKKyAgICAgICAgICAgIHJldHVybgorCisgICAgICAgIGRlZiBpbnN0
YWxsKHNlbGYsICpyZXF1aXJlbWVudHMpOgorICAgICAgICAgICAgcmV0dXJuCisKKyAgICAgICAg
ZGVmIGluc3RhbGxfcmVxdWlyZW1lbnRzKHNlbGYsIHJlcXVpcmVtZW50c19wYXRoKToKKyAgICAg
ICAgICAgIHJldHVybgorCisgICAgdmVudiA9IFZpcnR1YWxlbnYoKQorICAgIHlpZWxkIHZlbnYK
KworICAgIHNodXRpbC5ybXRyZWUodmVudi5wYXRoKQorCisKK0BweXRlc3QuZml4dHVyZShzY29w
ZT0ibW9kdWxlIikKK2RlZiBsb2dnZXIoKToKKyAgICBydW4uc2V0dXBfbG9nZ2luZyh7fSkKKwor
CitAcHl0ZXN0Lm1hcmsucGFyYW1ldHJpemUoInBsYXRmb3JtIiwgWyJXaW5kb3dzIiwgIkxpbnV4
IiwgIkRhcndpbiJdKQorZGVmIHRlc3RfY2hlY2tfZW52aXJvbl9mYWlsKHBsYXRmb3JtKToKKyAg
ICBtX29wZW4gPSBtb2NrLm1vY2tfb3BlbihyZWFkX2RhdGE9YiIiKQorCisgICAgd2l0aCBtb2Nr
LnBhdGNoLm9iamVjdChydW4sICJvcGVuIiwgbV9vcGVuKToKKyAgICAgICAgd2l0aCBtb2NrLnBh
dGNoLm9iamVjdChydW4ucGxhdGZvcm0sICJ1bmFtZSIsCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgcmV0dXJuX3ZhbHVlPShwbGF0Zm9ybSwgIiIsICIiLCAiIiwgIiIsICIiKSk6Cisg
ICAgICAgICAgICB3aXRoIHB5dGVzdC5yYWlzZXMocnVuLldwdHJ1bkVycm9yKSBhcyBleGNpbmZv
OgorICAgICAgICAgICAgICAgIHJ1bi5jaGVja19lbnZpcm9uKCJmb28iKQorCisgICAgYXNzZXJ0
ICJ3cHQgbWFrZS1ob3N0cy1maWxlIiBpbiBzdHIoZXhjaW5mby52YWx1ZSkKKworCitAcHl0ZXN0
Lm1hcmsucGFyYW1ldHJpemUoInByb2R1Y3QiLCBwcm9kdWN0X2xpc3QpCitkZWYgdGVzdF9zZXR1
cF93cHRydW5uZXIodmVudiwgbG9nZ2VyLCBwcm9kdWN0KToKKyAgICBpZiBwcm9kdWN0ID09ICJm
aXJlZm94X2FuZHJvaWQiOgorICAgICAgICBweXRlc3Quc2tpcCgiQW5kcm9pZCBlbXVsYXRvciBk
b2Vzbid0IHdvcmsgb24gZG9ja2VyIikKKyAgICBwYXJzZXIgPSBydW4uY3JlYXRlX3BhcnNlcigp
CisgICAga3dhcmdzID0gdmFycyhwYXJzZXIucGFyc2VfYXJncyhbIi0tY2hhbm5lbD1uaWdodGx5
IiwgcHJvZHVjdF0pKQorICAgIGt3YXJnc1sicHJvbXB0Il0gPSBGYWxzZQorICAgICMgSGFjayB0
byBnZXQgYSByZWFsIGV4aXN0aW5nIHBhdGgKKyAgICBrd2FyZ3NbImJpbmFyeSJdID0gc3lzLmFy
Z3ZbMF0KKyAgICBrd2FyZ3NbIndlYmRyaXZlcl9iaW5hcnkiXSA9IHN5cy5hcmd2WzBdCisgICAg
aWYga3dhcmdzWyJwcm9kdWN0Il0gPT0gInNhdWNlIjoKKyAgICAgICAga3dhcmdzWyJwcm9kdWN0
Il0gPSAic2F1Y2U6ZmlyZWZveDo2MyIKKyAgICBydW4uc2V0dXBfd3B0cnVubmVyKHZlbnYsICoq
a3dhcmdzKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy93cHQvdGVzdHMvdGVzdF90ZXN0ZmlsZXMucHkgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdC90ZXN0cy90ZXN0X3Rlc3Rm
aWxlcy5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi4zMzEzNWRmZGMyZDViNWFlMGM3MjJkY2UzNGYzNWI1ODEyN2Jm
MzM5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy93cHQvdGVzdHMvdGVzdF90ZXN0ZmlsZXMucHkKQEAgLTAsMCArMSwx
MyBAQAorZnJvbSBtb2NrIGltcG9ydCBwYXRjaAorCitmcm9tIHRvb2xzLndwdCBpbXBvcnQgdGVz
dGZpbGVzCisKKworZGVmIHRlc3RfZ2V0cmV2aXNoX2t3YXJnKCk6CisgICAgYXNzZXJ0IHRlc3Rm
aWxlcy5nZXRfcmV2aXNoKHJldmlzaD11ImFiY2RlZiIpID09IGIiYWJjZGVmIgorICAgIGFzc2Vy
dCB0ZXN0ZmlsZXMuZ2V0X3JldmlzaChyZXZpc2g9YiJhYmNkZWYiKSA9PSBiImFiY2RlZiIKKwor
CitkZWYgdGVzdF9nZXRyZXZpc2hfaW1wbGljaXQoKToKKyAgICB3aXRoIHBhdGNoKCJ0b29scy53
cHQudGVzdGZpbGVzLmJyYW5jaF9wb2ludCIsIHJldHVybl92YWx1ZT11ImJhc2UiKToKKyAgICAg
ICAgYXNzZXJ0IHRlc3RmaWxlcy5nZXRfcmV2aXNoKCkgPT0gYiJiYXNlLi5IRUFEIgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93
cHQvdGVzdHMvdGVzdF93cHQucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3dwdC90ZXN0cy90ZXN0X3dwdC5weQppbmRleCAxNmQyODZkMzgyYzcx
NzlhZDM2ODA3YjQ3NjM4ZDgyYjRiNDZmMjg2Li42NTY5NTgwZTlmZjQ3MTc4NGUzMDdiN2U4NDU1
NTkzNWRlYzk5NTg2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3dwdC90ZXN0cy90ZXN0X3dwdC5weQorKysgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdC90ZXN0cy90ZXN0X3dw
dC5weQpAQCAtMzAsMjcgKzMwLDU0IEBAIGRlZiBpc19wb3J0XzgwMDBfaW5fdXNlKCk6CiAgICAg
cmV0dXJuIEZhbHNlCiAKIAotQHB5dGVzdC5maXh0dXJlKHNjb3BlPSJtb2R1bGUiKQorZGVmIGdl
dF9wZXJzaXN0ZW50X21hbmlmZXN0X3BhdGgoKToKKyAgICBkaXJlY3RvcnkgPSAoIn4vbWV0YSIg
aWYgb3MuZW52aXJvbi5nZXQoJ1RSQVZJUycpID09ICJ0cnVlIgorICAgICAgICAgICAgICAgICBl
bHNlIHdwdC5sb2NhbHBhdGhzLnJlcG9fcm9vdCkKKyAgICByZXR1cm4gb3MucGF0aC5qb2luKGRp
cmVjdG9yeSwgIk1BTklGRVNULmpzb24iKQorCisKK0BweXRlc3QuZml4dHVyZShzY29wZT0ibW9k
dWxlIiwgYXV0b3VzZT1UcnVlKQorZGVmIGluaXRfbWFuaWZlc3QoKToKKyAgICB3aXRoIHB5dGVz
dC5yYWlzZXMoU3lzdGVtRXhpdCkgYXMgZXhjaW5mbzoKKyAgICAgICAgd3B0Lm1haW4oYXJndj1b
Im1hbmlmZXN0IiwgIi0tbm8tZG93bmxvYWQiLAorICAgICAgICAgICAgICAgICAgICAgICAiLS1w
YXRoIiwgZ2V0X3BlcnNpc3RlbnRfbWFuaWZlc3RfcGF0aCgpXSkKKyAgICBhc3NlcnQgZXhjaW5m
by52YWx1ZS5jb2RlID09IDAKKworCitAcHl0ZXN0LmZpeHR1cmUKIGRlZiBtYW5pZmVzdF9kaXIo
KToKLSAgICBkZWYgdXBkYXRlX21hbmlmZXN0KCk6Ci0gICAgICAgIHdpdGggcHl0ZXN0LnJhaXNl
cyhTeXN0ZW1FeGl0KSBhcyBleGNpbmZvOgotICAgICAgICAgICAgd3B0Lm1haW4oYXJndj1bIm1h
bmlmZXN0IiwgIi0tbm8tZG93bmxvYWQiLCAiLS1wYXRoIiwgb3MucGF0aC5qb2luKHBhdGgsICJN
QU5JRkVTVC5qc29uIildKQotICAgICAgICBhc3NlcnQgZXhjaW5mby52YWx1ZS5jb2RlID09IDAK
LQotICAgIGlmIG9zLmVudmlyb24uZ2V0KCdUUkFWSVMnKSA9PSAidHJ1ZSI6Ci0gICAgICAgIHBh
dGggPSAifi9tZXRhIgotICAgICAgICB1cGRhdGVfbWFuaWZlc3QoKQorICAgIHRyeToKKyAgICAg
ICAgcGF0aCA9IHRlbXBmaWxlLm1rZHRlbXAoKQorICAgICAgICBzaHV0aWwuY29weWZpbGUoZ2V0
X3BlcnNpc3RlbnRfbWFuaWZlc3RfcGF0aCgpLAorICAgICAgICAgICAgICAgICAgICAgICAgb3Mu
cGF0aC5qb2luKHBhdGgsICJNQU5JRkVTVC5qc29uIikpCiAgICAgICAgIHlpZWxkIHBhdGgKLSAg
ICBlbHNlOgotICAgICAgICB0cnk6Ci0gICAgICAgICAgICBwYXRoID0gdGVtcGZpbGUubWtkdGVt
cCgpCi0gICAgICAgICAgICBvbGRfcGF0aCA9IG9zLnBhdGguam9pbih3cHQubG9jYWxwYXRocy5y
ZXBvX3Jvb3QsICJNQU5JRkVTVC5qc29uIikKLSAgICAgICAgICAgIGlmIG9zLnBhdGguZXhpc3Rz
KG9zLnBhdGguam9pbih3cHQubG9jYWxwYXRocy5yZXBvX3Jvb3QsICJNQU5JRkVTVC5qc29uIikp
OgotICAgICAgICAgICAgICAgIHNodXRpbC5jb3B5ZmlsZShvbGRfcGF0aCwgb3MucGF0aC5qb2lu
KHBhdGgsICJNQU5JRkVTVC5qc29uIikpCi0gICAgICAgICAgICB1cGRhdGVfbWFuaWZlc3QoKQot
ICAgICAgICAgICAgeWllbGQgcGF0aAotICAgICAgICBmaW5hbGx5OgotICAgICAgICAgICAgc2h1
dGlsLnJtdHJlZShwYXRoKQorICAgIGZpbmFsbHk6CisgICAgICAgIHNodXRpbC5ybXRyZWUocGF0
aCkKKworCitAcHl0ZXN0LmZpeHR1cmUKK2RlZiB0ZW1wX3Rlc3QoKToKKyAgICBvcy5tYWtlZGly
cygiLi4vLi4vLnRvb2xzLXRlc3RzIikKKyAgICB0ZXN0X2NvdW50ID0geyJ2YWx1ZSI6IDB9CisK
KyAgICBkZWYgbWFrZV90ZXN0KGJvZHkpOgorICAgICAgICB0ZXN0X2NvdW50WyJ2YWx1ZSJdICs9
IDEKKyAgICAgICAgdGVzdF9uYW1lID0gIi50b29scy10ZXN0cy8lcy5odG1sIiAlIHRlc3RfY291
bnRbInZhbHVlIl0KKyAgICAgICAgdGVzdF9wYXRoID0gIi4uLy4uLyVzIiAlIHRlc3RfbmFtZQor
CisgICAgICAgIHdpdGggb3Blbih0ZXN0X3BhdGgsICJ3IikgYXMgaGFuZGxlOgorICAgICAgICAg
ICAgaGFuZGxlLndyaXRlKCIiIgorICAgICAgICAgICAgPCFET0NUWVBFIGh0bWw+CisgICAgICAg
ICAgICA8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cisg
ICAgICAgICAgICA8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+
PC9zY3JpcHQ+CisgICAgICAgICAgICA8c2NyaXB0PiVzPC9zY3JpcHQ+CisgICAgICAgICAgICAi
IiIgJSBib2R5KQorCisgICAgICAgIHJldHVybiB0ZXN0X25hbWUKKworICAgIHlpZWxkIG1ha2Vf
dGVzdAorCisgICAgc2h1dGlsLnJtdHJlZSgiLi4vLi4vLnRvb2xzLXRlc3RzIikKIAogCiBkZWYg
dGVzdF9taXNzaW5nKCk6CkBAIC03Myw3ICsxMDAsOCBAQCBkZWYgdGVzdF9saXN0X3Rlc3RzKG1h
bmlmZXN0X2Rpcik6CiAKICAgICB3aXRoIHB5dGVzdC5yYWlzZXMoU3lzdGVtRXhpdCkgYXMgZXhj
aW5mbzoKICAgICAgICAgd3B0Lm1haW4oYXJndj1bInJ1biIsICItLW1ldGFkYXRhIiwgbWFuaWZl
c3RfZGlyLCAiLS1saXN0LXRlc3RzIiwKLSAgICAgICAgICAgICAgICAgICAgICAgIi0teWVzIiwg
ImNocm9tZSIsICIvZG9tL25vZGVzL0VsZW1lbnQtdGFnTmFtZS5odG1sIl0pCisgICAgICAgICAg
ICAgICAgICAgICAgICItLWNoYW5uZWwiLCAiZGV2IiwgIi0teWVzIiwgImNocm9tZSIsCisgICAg
ICAgICAgICAgICAgICAgICAgICIvZG9tL25vZGVzL0VsZW1lbnQtdGFnTmFtZS5odG1sIl0pCiAg
ICAgYXNzZXJ0IGV4Y2luZm8udmFsdWUuY29kZSA9PSAwCiAKIApAQCAtMTMwLDUxICsxNTgsNiBA
QCBkZWYgdGVzdF9saXN0X3Rlc3RzX2ludmFsaWRfbWFuaWZlc3QobWFuaWZlc3RfZGlyKToKIAog
QHB5dGVzdC5tYXJrLnNsb3cKIEBweXRlc3QubWFyay5yZW1vdGVfbmV0d29yawotQHB5dGVzdC5t
YXJrLnhmYWlsKHN5cy5wbGF0Zm9ybSA9PSAid2luMzIiLAotICAgICAgICAgICAgICAgICAgIHJl
YXNvbj0iVGVzdHMgY3VycmVudGx5IGRvbid0IHdvcmsgb24gV2luZG93cyBmb3IgcGF0aCByZWFz
b25zIikKLWRlZiB0ZXN0X3J1bl9maXJlZm94KG1hbmlmZXN0X2Rpcik6Ci0gICAgIyBUT0RPOiBJ
dCBzZWVtcyBsaWtlIHRoZXJlJ3MgYSBidWcgaW4gYXJncGFyc2UgdGhhdCBtYWtlcyB0aGlzIGFy
Z3VtZW50IG9yZGVyIHJlcXVpcmVkCi0gICAgIyBzaG91bGQgdHJ5IHRvIHdvcmsgYXJvdW5kIHRo
YXQKLSAgICBpZiBpc19wb3J0XzgwMDBfaW5fdXNlKCk6Ci0gICAgICAgIHB5dGVzdC5za2lwKCJw
b3J0IDgwMDAgYWxyZWFkeSBpbiB1c2UiKQotCi0gICAgb3MuZW52aXJvblsiTU9aX0hFQURMRVNT
Il0gPSAiMSIKLSAgICB0cnk6Ci0gICAgICAgIGlmIHN5cy5wbGF0Zm9ybSA9PSAiZGFyd2luIjoK
LSAgICAgICAgICAgIGZ4X3BhdGggPSBvcy5wYXRoLmpvaW4od3B0LmxvY2FscGF0aHMucmVwb19y
b290LCAiX3ZlbnYiLCAiYnJvd3NlcnMiLCAiRmlyZWZveCBOaWdodGx5LmFwcCIpCi0gICAgICAg
IGVsc2U6Ci0gICAgICAgICAgICBmeF9wYXRoID0gb3MucGF0aC5qb2luKHdwdC5sb2NhbHBhdGhz
LnJlcG9fcm9vdCwgIl92ZW52IiwgImJyb3dzZXJzIiwgImZpcmVmb3giKQotICAgICAgICBpZiBv
cy5wYXRoLmV4aXN0cyhmeF9wYXRoKToKLSAgICAgICAgICAgIHNodXRpbC5ybXRyZWUoZnhfcGF0
aCkKLSAgICAgICAgd2l0aCBweXRlc3QucmFpc2VzKFN5c3RlbUV4aXQpIGFzIGV4Y2luZm86Ci0g
ICAgICAgICAgICB3cHQubWFpbihhcmd2PVsicnVuIiwgIi0tbm8tcGF1c2UiLCAiLS1pbnN0YWxs
LWJyb3dzZXIiLCAiLS15ZXMiLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIi0tbWV0YWRh
dGEiLCBtYW5pZmVzdF9kaXIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAiZmlyZWZveCIs
ICIvZG9tL25vZGVzL0VsZW1lbnQtdGFnTmFtZS5odG1sIl0pCi0gICAgICAgIGFzc2VydCBvcy5w
YXRoLmV4aXN0cyhmeF9wYXRoKQotICAgICAgICBzaHV0aWwucm10cmVlKGZ4X3BhdGgpCi0gICAg
ICAgIGFzc2VydCBleGNpbmZvLnZhbHVlLmNvZGUgPT0gMAotICAgIGZpbmFsbHk6Ci0gICAgICAg
IGRlbCBvcy5lbnZpcm9uWyJNT1pfSEVBRExFU1MiXQotCi0KLUBweXRlc3QubWFyay5zbG93Ci1A
cHl0ZXN0Lm1hcmsueGZhaWwoc3lzLnBsYXRmb3JtID09ICJ3aW4zMiIsCi0gICAgICAgICAgICAg
ICAgICAgcmVhc29uPSJUZXN0cyBjdXJyZW50bHkgZG9uJ3Qgd29yayBvbiBXaW5kb3dzIGZvciBw
YXRoIHJlYXNvbnMiKQotZGVmIHRlc3RfcnVuX2Nocm9tZShtYW5pZmVzdF9kaXIpOgotICAgIGlm
IGlzX3BvcnRfODAwMF9pbl91c2UoKToKLSAgICAgICAgcHl0ZXN0LnNraXAoInBvcnQgODAwMCBh
bHJlYWR5IGluIHVzZSIpCi0KLSAgICB3aXRoIHB5dGVzdC5yYWlzZXMoU3lzdGVtRXhpdCkgYXMg
ZXhjaW5mbzoKLSAgICAgICAgd3B0Lm1haW4oYXJndj1bInJ1biIsICItLXllcyIsICItLW5vLXBh
dXNlIiwgIi0tYmluYXJ5LWFyZyIsICJoZWFkbGVzcyIsCi0gICAgICAgICAgICAgICAgICAgICAg
ICItLW1ldGFkYXRhIiwgbWFuaWZlc3RfZGlyLAotICAgICAgICAgICAgICAgICAgICAgICAiY2hy
b21lIiwgIi9kb20vbm9kZXMvRWxlbWVudC10YWdOYW1lLmh0bWwiXSkKLSAgICBhc3NlcnQgZXhj
aW5mby52YWx1ZS5jb2RlID09IDAKLQotCi1AcHl0ZXN0Lm1hcmsuc2xvdwotQHB5dGVzdC5tYXJr
LnJlbW90ZV9uZXR3b3JrCi1AcHl0ZXN0Lm1hcmsueGZhaWwoc3lzLnBsYXRmb3JtID09ICJ3aW4z
MiIsCi0gICAgICAgICAgICAgICAgICAgcmVhc29uPSJUZXN0cyBjdXJyZW50bHkgZG9uJ3Qgd29y
ayBvbiBXaW5kb3dzIGZvciBwYXRoIHJlYXNvbnMiKQogZGVmIHRlc3RfcnVuX3plcm9fdGVzdHMo
KToKICAgICAiIiJBIHRlc3QgZXhlY3V0aW9uIGRlc2NyaWJpbmcgemVybyB0ZXN0cyBzaG91bGQg
YmUgcmVwb3J0ZWQgYXMgYW4gZXJyb3IKICAgICBldmVuIGluIHRoZSBwcmVzZW5jZSBvZiB0aGUg
YC0tbm8tZmFpbC1vbi11bmV4cGVjdGVkYCBvcHRpb24uIiIiCkBAIC0xODMsMTkgKzE2NiwxOCBA
QCBkZWYgdGVzdF9ydW5femVyb190ZXN0cygpOgogCiAgICAgd2l0aCBweXRlc3QucmFpc2VzKFN5
c3RlbUV4aXQpIGFzIGV4Y2luZm86CiAgICAgICAgIHdwdC5tYWluKGFyZ3Y9WyJydW4iLCAiLS15
ZXMiLCAiLS1uby1wYXVzZSIsICItLWJpbmFyeS1hcmciLCAiaGVhZGxlc3MiLAotICAgICAgICAg
ICAgICAgICAgICAgICAiY2hyb21lIiwgIi9ub24tZXhpc3RlbnQtZGlyL25vbi1leGlzdGVudC1m
aWxlLmh0bWwiXSkKKyAgICAgICAgICAgICAgICAgICAgICAgIi0tY2hhbm5lbCIsICJkZXYiLCAi
Y2hyb21lIiwKKyAgICAgICAgICAgICAgICAgICAgICAgIi9ub24tZXhpc3RlbnQtZGlyL25vbi1l
eGlzdGVudC1maWxlLmh0bWwiXSkKICAgICBhc3NlcnQgZXhjaW5mby52YWx1ZS5jb2RlICE9IDAK
IAogICAgIHdpdGggcHl0ZXN0LnJhaXNlcyhTeXN0ZW1FeGl0KSBhcyBleGNpbmZvOgogICAgICAg
ICB3cHQubWFpbihhcmd2PVsicnVuIiwgIi0teWVzIiwgIi0tbm8tcGF1c2UiLCAiLS1iaW5hcnkt
YXJnIiwgImhlYWRsZXNzIiwKLSAgICAgICAgICAgICAgICAgICAgICAgIi0tbm8tZmFpbC1vbi11
bmV4cGVjdGVkIiwKKyAgICAgICAgICAgICAgICAgICAgICAgIi0tbm8tZmFpbC1vbi11bmV4cGVj
dGVkIiwgIi0tY2hhbm5lbCIsICJkZXYiLAogICAgICAgICAgICAgICAgICAgICAgICAiY2hyb21l
IiwgIi9ub24tZXhpc3RlbnQtZGlyL25vbi1leGlzdGVudC1maWxlLmh0bWwiXSkKICAgICBhc3Nl
cnQgZXhjaW5mby52YWx1ZS5jb2RlICE9IDAKIAogQHB5dGVzdC5tYXJrLnNsb3cKIEBweXRlc3Qu
bWFyay5yZW1vdGVfbmV0d29yawotQHB5dGVzdC5tYXJrLnhmYWlsKHN5cy5wbGF0Zm9ybSA9PSAi
d2luMzIiLAotICAgICAgICAgICAgICAgICAgIHJlYXNvbj0iVGVzdHMgY3VycmVudGx5IGRvbid0
IHdvcmsgb24gV2luZG93cyBmb3IgcGF0aCByZWFzb25zIikKIGRlZiB0ZXN0X3J1bl9mYWlsaW5n
X3Rlc3QoKToKICAgICAiIiJGYWlsaW5nIHRlc3RzIHNob3VsZCBiZSByZXBvcnRlZCB3aXRoIGEg
bm9uLXplcm8gZXhpdCBzdGF0dXMgdW5sZXNzIHRoZQogICAgIGAtLW5vLWZhaWwtb24tdW5leHBl
Y3RlZGAgb3B0aW9uIGhhcyBiZWVuIHNwZWNpZmllZC4iIiIKQEAgLTIwNywyMiArMTg5LDUzIEBA
IGRlZiB0ZXN0X3J1bl9mYWlsaW5nX3Rlc3QoKToKIAogICAgIHdpdGggcHl0ZXN0LnJhaXNlcyhT
eXN0ZW1FeGl0KSBhcyBleGNpbmZvOgogICAgICAgICB3cHQubWFpbihhcmd2PVsicnVuIiwgIi0t
eWVzIiwgIi0tbm8tcGF1c2UiLCAiLS1iaW5hcnktYXJnIiwgImhlYWRsZXNzIiwKLSAgICAgICAg
ICAgICAgICAgICAgICAgImNocm9tZSIsIGZhaWxpbmdfdGVzdF0pCisgICAgICAgICAgICAgICAg
ICAgICAgICItLWNoYW5uZWwiLCAiZGV2IiwgImNocm9tZSIsIGZhaWxpbmdfdGVzdF0pCiAgICAg
YXNzZXJ0IGV4Y2luZm8udmFsdWUuY29kZSAhPSAwCiAKICAgICB3aXRoIHB5dGVzdC5yYWlzZXMo
U3lzdGVtRXhpdCkgYXMgZXhjaW5mbzoKICAgICAgICAgd3B0Lm1haW4oYXJndj1bInJ1biIsICIt
LXllcyIsICItLW5vLXBhdXNlIiwgIi0tYmluYXJ5LWFyZyIsICJoZWFkbGVzcyIsCi0gICAgICAg
ICAgICAgICAgICAgICAgICItLW5vLWZhaWwtb24tdW5leHBlY3RlZCIsCisgICAgICAgICAgICAg
ICAgICAgICAgICItLW5vLWZhaWwtb24tdW5leHBlY3RlZCIsICItLWNoYW5uZWwiLCAiZGV2IiwK
ICAgICAgICAgICAgICAgICAgICAgICAgImNocm9tZSIsIGZhaWxpbmdfdGVzdF0pCiAgICAgYXNz
ZXJ0IGV4Y2luZm8udmFsdWUuY29kZSA9PSAwCiAKIAogQHB5dGVzdC5tYXJrLnNsb3cKIEBweXRl
c3QubWFyay5yZW1vdGVfbmV0d29yawotQHB5dGVzdC5tYXJrLnhmYWlsKHN5cy5wbGF0Zm9ybSA9
PSAid2luMzIiLAotICAgICAgICAgICAgICAgICAgIHJlYXNvbj0iVGVzdHMgY3VycmVudGx5IGRv
bid0IHdvcmsgb24gV2luZG93cyBmb3IgcGF0aCByZWFzb25zIikKK2RlZiB0ZXN0X3J1bl92ZXJp
ZnlfdW5zdGFibGUodGVtcF90ZXN0KToKKyAgICAiIiJVbnN0YWJsZSB0ZXN0cyBzaG91bGQgYmUg
cmVwb3J0ZWQgd2l0aCBhIG5vbi16ZXJvIGV4aXQgc3RhdHVzLiBTdGFibGUKKyAgICB0ZXN0cyBz
aG91bGQgYmUgcmVwb3J0ZWQgd2l0aCBhIHplcm8gZXhpdCBzdGF0dXMuIiIiCisgICAgaWYgaXNf
cG9ydF84MDAwX2luX3VzZSgpOgorICAgICAgICBweXRlc3Quc2tpcCgicG9ydCA4MDAwIGFscmVh
ZHkgaW4gdXNlIikKKyAgICB1bnN0YWJsZV90ZXN0ID0gdGVtcF90ZXN0KCIiIgorICAgICAgICB0
ZXN0KGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgaWYgKGxvY2FsU3RvcmFnZS5nZXRJdGVtKCd3
cHQtdW5zdGFibGUtdGVzdC1mbGFnJykpIHsKKyAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9y
KCk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKCd3
cHQtdW5zdGFibGUtdGVzdC1mbGFnJywgJ3gnKTsKKyAgICAgICAgfSwgJ215IHRlc3QnKTsKKyAg
ICAiIiIpCisKKyAgICB3aXRoIHB5dGVzdC5yYWlzZXMoU3lzdGVtRXhpdCkgYXMgZXhjaW5mbzoK
KyAgICAgICAgd3B0Lm1haW4oYXJndj1bInJ1biIsICItLXllcyIsICItLXZlcmlmeSIsICItLWJp
bmFyeS1hcmciLCAiaGVhZGxlc3MiLAorICAgICAgICAgICAgICAgICAgICAgICAiLS1jaGFubmVs
IiwgImRldiIsICJjaHJvbWUiLCB1bnN0YWJsZV90ZXN0XSkKKyAgICBhc3NlcnQgZXhjaW5mby52
YWx1ZS5jb2RlICE9IDAKKworICAgIHN0YWJsZV90ZXN0ID0gdGVtcF90ZXN0KCJ0ZXN0KGZ1bmN0
aW9uKCkge30sICdteSB0ZXN0Jyk7IikKKworICAgIHdpdGggcHl0ZXN0LnJhaXNlcyhTeXN0ZW1F
eGl0KSBhcyBleGNpbmZvOgorICAgICAgICB3cHQubWFpbihhcmd2PVsicnVuIiwgIi0teWVzIiwg
Ii0tdmVyaWZ5IiwgIi0tYmluYXJ5LWFyZyIsICJoZWFkbGVzcyIsCisgICAgICAgICAgICAgICAg
ICAgICAgICItLWNoYW5uZWwiLCAiZGV2IiwgImNocm9tZSIsIHN0YWJsZV90ZXN0XSkKKyAgICBh
c3NlcnQgZXhjaW5mby52YWx1ZS5jb2RlID09IDAKKworCitAcHl0ZXN0Lm1hcmsuc2xvdworQHB5
dGVzdC5tYXJrLnJlbW90ZV9uZXR3b3JrCiBkZWYgdGVzdF9pbnN0YWxsX2Nocm9tZWRyaXZlcigp
OgotICAgIGNocm9tZWRyaXZlcl9wYXRoID0gb3MucGF0aC5qb2luKHdwdC5sb2NhbHBhdGhzLnJl
cG9fcm9vdCwgIl92ZW52IiwgImJpbiIsICJjaHJvbWVkcml2ZXIiKQorICAgIGlmIHN5cy5wbGF0
Zm9ybSA9PSAid2luMzIiOgorICAgICAgICBjaHJvbWVkcml2ZXJfcGF0aCA9IG9zLnBhdGguam9p
bih3cHQubG9jYWxwYXRocy5yZXBvX3Jvb3QsICJfdmVudiIsICJTY3JpcHRzIiwgImNocm9tZWRy
aXZlci5leGUiKQorICAgIGVsc2U6CisgICAgICAgIGNocm9tZWRyaXZlcl9wYXRoID0gb3MucGF0
aC5qb2luKHdwdC5sb2NhbHBhdGhzLnJlcG9fcm9vdCwgIl92ZW52IiwgImJpbiIsICJjaHJvbWVk
cml2ZXIiKQogICAgIGlmIG9zLnBhdGguZXhpc3RzKGNocm9tZWRyaXZlcl9wYXRoKToKICAgICAg
ICAgb3MudW5saW5rKGNocm9tZWRyaXZlcl9wYXRoKQogICAgIHdpdGggcHl0ZXN0LnJhaXNlcyhT
eXN0ZW1FeGl0KSBhcyBleGNpbmZvOgpAQCAtMjM1LDU3ICsyNDgsNTQgQEAgZGVmIHRlc3RfaW5z
dGFsbF9jaHJvbWVkcml2ZXIoKToKIEBweXRlc3QubWFyay5zbG93CiBAcHl0ZXN0Lm1hcmsucmVt
b3RlX25ldHdvcmsKIEBweXRlc3QubWFyay54ZmFpbChzeXMucGxhdGZvcm0gPT0gIndpbjMyIiwK
LSAgICAgICAgICAgICAgICAgICByZWFzb249IlRlc3RzIGN1cnJlbnRseSBkb24ndCB3b3JrIG9u
IFdpbmRvd3MgZm9yIHBhdGggcmVhc29ucyIpCisgICAgICAgICAgICAgICAgICAgcmVhc29uPSJo
dHRwczovL2dpdGh1Yi5jb20vd2ViLXBsYXRmb3JtLXRlc3RzL3dwdC9pc3N1ZXMvMTcwNzQiKQog
ZGVmIHRlc3RfaW5zdGFsbF9maXJlZm94KCk6Ci0KICAgICBpZiBzeXMucGxhdGZvcm0gPT0gImRh
cndpbiI6Ci0gICAgICAgIGZ4X3BhdGggPSBvcy5wYXRoLmpvaW4od3B0LmxvY2FscGF0aHMucmVw
b19yb290LCAiX3ZlbnYiLCAiYnJvd3NlcnMiLCAiRmlyZWZveCBOaWdodGx5LmFwcCIpCisgICAg
ICAgIGZ4X3BhdGggPSBvcy5wYXRoLmpvaW4od3B0LmxvY2FscGF0aHMucmVwb19yb290LCAiX3Zl
bnYiLCAiYnJvd3NlcnMiLCAibmlnaHRseSIsICJGaXJlZm94IE5pZ2h0bHkuYXBwIikKICAgICBl
bHNlOgotICAgICAgICBmeF9wYXRoID0gb3MucGF0aC5qb2luKHdwdC5sb2NhbHBhdGhzLnJlcG9f
cm9vdCwgIl92ZW52IiwgImJyb3dzZXJzIiwgImZpcmVmb3giKQorICAgICAgICBmeF9wYXRoID0g
b3MucGF0aC5qb2luKHdwdC5sb2NhbHBhdGhzLnJlcG9fcm9vdCwgIl92ZW52IiwgImJyb3dzZXJz
IiwgIm5pZ2h0bHkiLCAiZmlyZWZveCIpCiAgICAgaWYgb3MucGF0aC5leGlzdHMoZnhfcGF0aCk6
CiAgICAgICAgIHNodXRpbC5ybXRyZWUoZnhfcGF0aCkKICAgICB3aXRoIHB5dGVzdC5yYWlzZXMo
U3lzdGVtRXhpdCkgYXMgZXhjaW5mbzoKLSAgICAgICAgd3B0Lm1haW4oYXJndj1bImluc3RhbGwi
LCAiZmlyZWZveCIsICJicm93c2VyIl0pCisgICAgICAgIHdwdC5tYWluKGFyZ3Y9WyJpbnN0YWxs
IiwgImZpcmVmb3giLCAiYnJvd3NlciIsICItLWNoYW5uZWw9bmlnaHRseSJdKQogICAgIGFzc2Vy
dCBleGNpbmZvLnZhbHVlLmNvZGUgPT0gMAogICAgIGFzc2VydCBvcy5wYXRoLmV4aXN0cyhmeF9w
YXRoKQogICAgIHNodXRpbC5ybXRyZWUoZnhfcGF0aCkKIAogCi1AcHl0ZXN0Lm1hcmsueGZhaWwo
c3lzLnBsYXRmb3JtID09ICJ3aW4zMiIsCi0gICAgICAgICAgICAgICAgICAgcmVhc29uPSJUZXN0
cyBjdXJyZW50bHkgZG9uJ3Qgd29yayBvbiBXaW5kb3dzIGZvciBwYXRoIHJlYXNvbnMiKQogZGVm
IHRlc3RfZmlsZXNfY2hhbmdlZChjYXBzeXMpOgogICAgIGNvbW1pdCA9ICI5MDQ3YWMxZDlmNTFi
MWU5ZmFhNGY5ZmFkOWM0N2QxMDk2MDlhYjA5IgogICAgIHdpdGggcHl0ZXN0LnJhaXNlcyhTeXN0
ZW1FeGl0KSBhcyBleGNpbmZvOgogICAgICAgICB3cHQubWFpbihhcmd2PVsiZmlsZXMtY2hhbmdl
ZCIsICIlc34uLiVzIiAlIChjb21taXQsIGNvbW1pdCldKQogICAgIGFzc2VydCBleGNpbmZvLnZh
bHVlLmNvZGUgPT0gMAogICAgIG91dCwgZXJyID0gY2Fwc3lzLnJlYWRvdXRlcnIoKQotICAgIGFz
c2VydCBvdXQgPT0gIiIiaHRtbC9icm93c2Vycy9vZmZsaW5lL2FwcGNhY2hlL3dvcmtlcnMvYXBw
Y2FjaGUtd29ya2VyLmh0bWwKKyAgICBleHBlY3RlZCA9ICIiImh0bWwvYnJvd3NlcnMvb2ZmbGlu
ZS9hcHBjYWNoZS93b3JrZXJzL2FwcGNhY2hlLXdvcmtlci5odG1sCiBodG1sL2Jyb3dzZXJzL29m
ZmxpbmUvYXBwY2FjaGUvd29ya2Vycy9yZXNvdXJjZXMvYXBwY2FjaGUtZGVkaWNhdGVkLXdvcmtl
ci1ub3QtaW4tY2FjaGUuanMKIGh0bWwvYnJvd3NlcnMvb2ZmbGluZS9hcHBjYWNoZS93b3JrZXJz
L3Jlc291cmNlcy9hcHBjYWNoZS1zaGFyZWQtd29ya2VyLW5vdC1pbi1jYWNoZS5qcwogaHRtbC9i
cm93c2Vycy9vZmZsaW5lL2FwcGNhY2hlL3dvcmtlcnMvcmVzb3VyY2VzL2FwcGNhY2hlLXdvcmtl
ci1kYXRhLnB5CiBodG1sL2Jyb3dzZXJzL29mZmxpbmUvYXBwY2FjaGUvd29ya2Vycy9yZXNvdXJj
ZXMvYXBwY2FjaGUtd29ya2VyLWltcG9ydC5weQogaHRtbC9icm93c2Vycy9vZmZsaW5lL2FwcGNh
Y2hlL3dvcmtlcnMvcmVzb3VyY2VzL2FwcGNhY2hlLXdvcmtlci5tYW5pZmVzdAogaHRtbC9icm93
c2Vycy9vZmZsaW5lL2FwcGNhY2hlL3dvcmtlcnMvcmVzb3VyY2VzL2FwcGNhY2hlLXdvcmtlci5w
eQotIiIiCisiIiIucmVwbGFjZSgiLyIsIG9zLnBhdGguc2VwKQorICAgIGFzc2VydCBvdXQgPT0g
ZXhwZWN0ZWQKICAgICBhc3NlcnQgZXJyID09ICIiCiAKIAotQHB5dGVzdC5tYXJrLnhmYWlsKHN5
cy5wbGF0Zm9ybSA9PSAid2luMzIiLAotICAgICAgICAgICAgICAgICAgIHJlYXNvbj0iVGVzdHMg
Y3VycmVudGx5IGRvbid0IHdvcmsgb24gV2luZG93cyBmb3IgcGF0aCByZWFzb25zIikKIGRlZiB0
ZXN0X2ZpbGVzX2NoYW5nZWRfbnVsbChjYXBzeXMpOgogICAgIGNvbW1pdCA9ICI5MDQ3YWMxZDlm
NTFiMWU5ZmFhNGY5ZmFkOWM0N2QxMDk2MDlhYjA5IgogICAgIHdpdGggcHl0ZXN0LnJhaXNlcyhT
eXN0ZW1FeGl0KSBhcyBleGNpbmZvOgogICAgICAgICB3cHQubWFpbihhcmd2PVsiZmlsZXMtY2hh
bmdlZCIsICItLW51bGwiLCAiJXN+Li4lcyIgJSAoY29tbWl0LCBjb21taXQpXSkKICAgICBhc3Nl
cnQgZXhjaW5mby52YWx1ZS5jb2RlID09IDAKICAgICBvdXQsIGVyciA9IGNhcHN5cy5yZWFkb3V0
ZXJyKCkKLSAgICBhc3NlcnQgb3V0ID09ICJcMCIuam9pbihbImh0bWwvYnJvd3NlcnMvb2ZmbGlu
ZS9hcHBjYWNoZS93b3JrZXJzL2FwcGNhY2hlLXdvcmtlci5odG1sIiwKKyAgICBleHBlY3RlZCA9
ICJcMCIuam9pbihbImh0bWwvYnJvd3NlcnMvb2ZmbGluZS9hcHBjYWNoZS93b3JrZXJzL2FwcGNh
Y2hlLXdvcmtlci5odG1sIiwKICAgICAgICAgImh0bWwvYnJvd3NlcnMvb2ZmbGluZS9hcHBjYWNo
ZS93b3JrZXJzL3Jlc291cmNlcy9hcHBjYWNoZS1kZWRpY2F0ZWQtd29ya2VyLW5vdC1pbi1jYWNo
ZS5qcyIsCiAgICAgICAgICJodG1sL2Jyb3dzZXJzL29mZmxpbmUvYXBwY2FjaGUvd29ya2Vycy9y
ZXNvdXJjZXMvYXBwY2FjaGUtc2hhcmVkLXdvcmtlci1ub3QtaW4tY2FjaGUuanMiLAogICAgICAg
ICAiaHRtbC9icm93c2Vycy9vZmZsaW5lL2FwcGNhY2hlL3dvcmtlcnMvcmVzb3VyY2VzL2FwcGNh
Y2hlLXdvcmtlci1kYXRhLnB5IiwKICAgICAgICAgImh0bWwvYnJvd3NlcnMvb2ZmbGluZS9hcHBj
YWNoZS93b3JrZXJzL3Jlc291cmNlcy9hcHBjYWNoZS13b3JrZXItaW1wb3J0LnB5IiwKICAgICAg
ICAgImh0bWwvYnJvd3NlcnMvb2ZmbGluZS9hcHBjYWNoZS93b3JrZXJzL3Jlc291cmNlcy9hcHBj
YWNoZS13b3JrZXIubWFuaWZlc3QiLAogICAgICAgICAiaHRtbC9icm93c2Vycy9vZmZsaW5lL2Fw
cGNhY2hlL3dvcmtlcnMvcmVzb3VyY2VzL2FwcGNhY2hlLXdvcmtlci5weSIsCi0gICAgICAgICIi
XSkKKyAgICAgICAgIiJdKS5yZXBsYWNlKCIvIiwgb3MucGF0aC5zZXApCisgICAgYXNzZXJ0IG91
dCA9PSBleHBlY3RlZAogICAgIGFzc2VydCBlcnIgPT0gIiIKIAogCkBAIC0zMDEsOCArMzExLDgg
QEAgZGVmIHRlc3RfZmlsZXNfY2hhbmdlZF9pZ25vcmUoKToKIAogZGVmIHRlc3RfZmlsZXNfY2hh
bmdlZF9pZ25vcmVfcnVsZXMoKToKICAgICBmcm9tIHRvb2xzLndwdC50ZXN0ZmlsZXMgaW1wb3J0
IGNvbXBpbGVfaWdub3JlX3J1bGUKLSAgICBhc3NlcnQgY29tcGlsZV9pZ25vcmVfcnVsZSgiZm9v
KmJhciovYmF6IikucGF0dGVybiA9PSAiXmZvb1wqYmFyW14vXSovYmF6JCIKLSAgICBhc3NlcnQg
Y29tcGlsZV9pZ25vcmVfcnVsZSgiZm9vKipiYXIqKi9iYXoiKS5wYXR0ZXJuID09ICJeZm9vXCpc
KmJhci4qL2JheiQiCisgICAgYXNzZXJ0IGNvbXBpbGVfaWdub3JlX3J1bGUoImZvbypiYXIqL2Jh
eiIpLnBhdHRlcm4gPT0gciJeZm9vXCpiYXJbXi9dKi9iYXokIgorICAgIGFzc2VydCBjb21waWxl
X2lnbm9yZV9ydWxlKCJmb28qKmJhcioqL2JheiIpLnBhdHRlcm4gPT0gciJeZm9vXCpcKmJhci4q
L2JheiQiCiAgICAgYXNzZXJ0IGNvbXBpbGVfaWdub3JlX3J1bGUoImZvb2Jhci9iYXovKiIpLnBh
dHRlcm4gPT0gIl5mb29iYXIvYmF6L1teL10qJCIKICAgICBhc3NlcnQgY29tcGlsZV9pZ25vcmVf
cnVsZSgiZm9vYmFyL2Jhei8qKiIpLnBhdHRlcm4gPT0gIl5mb29iYXIvYmF6Ly4qJCIKIApAQCAt
MzEwLDYgKzMyMCw4IEBAIGRlZiB0ZXN0X2ZpbGVzX2NoYW5nZWRfaWdub3JlX3J1bGVzKCk6CiBA
cHl0ZXN0Lm1hcmsuc2xvdyAgIyB0aGlzIHVwZGF0ZXMgdGhlIG1hbmlmZXN0CiBAcHl0ZXN0Lm1h
cmsueGZhaWwoc3lzLnBsYXRmb3JtID09ICJ3aW4zMiIsCiAgICAgICAgICAgICAgICAgICAgcmVh
c29uPSJUZXN0cyBjdXJyZW50bHkgZG9uJ3Qgd29yayBvbiBXaW5kb3dzIGZvciBwYXRoIHJlYXNv
bnMiKQorQHB5dGVzdC5tYXJrLnNraXBpZihzeXMucGxhdGZvcm0gPT0gIndpbjMyIiwKKyAgICAg
ICAgICAgICAgICAgICAgcmVhc29uPSJodHRwczovL2dpdGh1Yi5jb20vd2ViLXBsYXRmb3JtLXRl
c3RzL3dwdC9pc3N1ZXMvMTI5MzQiKQogZGVmIHRlc3RfdGVzdHNfYWZmZWN0ZWQoY2Fwc3lzLCBt
YW5pZmVzdF9kaXIpOgogICAgICMgVGhpcyBkb2Vzbid0IHJlYWxseSB3b3JrIHByb3Blcmx5IGZv
ciByYW5kb20gY29tbWl0cyBiZWNhdXNlIHdlIHRlc3QgdGhlIGZpbGVzIGluCiAgICAgIyB0aGUg
Y3VycmVudCB3b3JraW5nIGRpcmVjdG9yeSBmb3IgcmVmZXJlbmNlcyB0byB0aGUgY2hhbmdlZCBm
aWxlcywgbm90IHRoZSBvbmVzIGF0CkBAIC0zMjYsMjUgKzMzOCw0MSBAQCBkZWYgdGVzdF90ZXN0
c19hZmZlY3RlZChjYXBzeXMsIG1hbmlmZXN0X2Rpcik6CiBAcHl0ZXN0Lm1hcmsuc2xvdyAgIyB0
aGlzIHVwZGF0ZXMgdGhlIG1hbmlmZXN0CiBAcHl0ZXN0Lm1hcmsueGZhaWwoc3lzLnBsYXRmb3Jt
ID09ICJ3aW4zMiIsCiAgICAgICAgICAgICAgICAgICAgcmVhc29uPSJUZXN0cyBjdXJyZW50bHkg
ZG9uJ3Qgd29yayBvbiBXaW5kb3dzIGZvciBwYXRoIHJlYXNvbnMiKQorQHB5dGVzdC5tYXJrLnNr
aXBpZihzeXMucGxhdGZvcm0gPT0gIndpbjMyIiwKKyAgICAgICAgICAgICAgICAgICAgcmVhc29u
PSJodHRwczovL2dpdGh1Yi5jb20vd2ViLXBsYXRmb3JtLXRlc3RzL3dwdC9pc3N1ZXMvMTI5MzQi
KQorZGVmIHRlc3RfdGVzdHNfYWZmZWN0ZWRfaWRsaGFybmVzcyhjYXBzeXMsIG1hbmlmZXN0X2Rp
cik6CisgICAgY29tbWl0ID0gIjQ3Y2VhOGMzOGI4OGMwZGRkMzg1NGU0ZWRlYzBjNWI2ZjI2OTdl
NjIiCisgICAgd2l0aCBweXRlc3QucmFpc2VzKFN5c3RlbUV4aXQpIGFzIGV4Y2luZm86CisgICAg
ICAgIHdwdC5tYWluKGFyZ3Y9WyJ0ZXN0cy1hZmZlY3RlZCIsICItLW1ldGFkYXRhIiwgbWFuaWZl
c3RfZGlyLCAiJXN+Li4lcyIgJSAoY29tbWl0LCBjb21taXQpXSkKKyAgICBhc3NlcnQgZXhjaW5m
by52YWx1ZS5jb2RlID09IDAKKyAgICBvdXQsIGVyciA9IGNhcHN5cy5yZWFkb3V0ZXJyKCkKKyAg
ICBhc3NlcnQgIndlYnJ0Yy1pZGVudGl0eS9pZGxoYXJuZXNzLmh0dHBzLndpbmRvdy5qc1xud2Vi
cnRjLXN0YXRzL2lkbGhhcm5lc3Mud2luZG93LmpzXG53ZWJydGMvaWRsaGFybmVzcy5odHRwcy53
aW5kb3cuanNcbiIgPT0gb3V0CisKKworQHB5dGVzdC5tYXJrLnNsb3cgICMgdGhpcyB1cGRhdGVz
IHRoZSBtYW5pZmVzdAorQHB5dGVzdC5tYXJrLnhmYWlsKHN5cy5wbGF0Zm9ybSA9PSAid2luMzIi
LAorICAgICAgICAgICAgICAgICAgIHJlYXNvbj0iVGVzdHMgY3VycmVudGx5IGRvbid0IHdvcmsg
b24gV2luZG93cyBmb3IgcGF0aCByZWFzb25zIikKK0BweXRlc3QubWFyay5za2lwaWYoc3lzLnBs
YXRmb3JtID09ICJ3aW4zMiIsCisgICAgICAgICAgICAgICAgICAgIHJlYXNvbj0iaHR0cHM6Ly9n
aXRodWIuY29tL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQvaXNzdWVzLzEyOTM0IikKIGRlZiB0ZXN0
X3Rlc3RzX2FmZmVjdGVkX251bGwoY2Fwc3lzLCBtYW5pZmVzdF9kaXIpOgogICAgICMgVGhpcyBk
b2Vzbid0IHJlYWxseSB3b3JrIHByb3Blcmx5IGZvciByYW5kb20gY29tbWl0cyBiZWNhdXNlIHdl
IHRlc3QgdGhlIGZpbGVzIGluCiAgICAgIyB0aGUgY3VycmVudCB3b3JraW5nIGRpcmVjdG9yeSBm
b3IgcmVmZXJlbmNlcyB0byB0aGUgY2hhbmdlZCBmaWxlcywgbm90IHRoZSBvbmVzIGF0CiAgICAg
IyB0aGF0IHNwZWNpZmljIGNvbW1pdC4gQnV0IHdlIGNhbiBhdCBsZWFzdCB0ZXN0IGl0IHJldHVy
bnMgc29tZXRoaW5nIHNlbnNpYmxlLgogICAgICMgVGhlIHRlc3Qgd2lsbCBmYWlsIGlmIHRoZSBm
aWxlIHdlIGFzc2VydCBpcyByZW5hbWVkLCBzbyB3ZSBjaG9vc2UgYSBzdGFibGUgb25lLgotICAg
IGNvbW1pdCA9ICI5YmYxZGFhM2Q4YjQ0MjVmMjM1NGMzY2E5MmM0Y2YwMzk4ZDMyOWRkIgorICAg
IGNvbW1pdCA9ICIyNjE0ZTMzMTZmMWQzZDFhNzQ0ZWQzYWYwODhkMTk1MTY1NTJhNWRlIgogICAg
IHdpdGggcHl0ZXN0LnJhaXNlcyhTeXN0ZW1FeGl0KSBhcyBleGNpbmZvOgogICAgICAgICB3cHQu
bWFpbihhcmd2PVsidGVzdHMtYWZmZWN0ZWQiLCAiLS1udWxsIiwgIi0tbWV0YWRhdGEiLCBtYW5p
ZmVzdF9kaXIsICIlc34uLiVzIiAlIChjb21taXQsIGNvbW1pdCldKQogICAgIGFzc2VydCBleGNp
bmZvLnZhbHVlLmNvZGUgPT0gMAogICAgIG91dCwgZXJyID0gY2Fwc3lzLnJlYWRvdXRlcnIoKQog
CiAgICAgdGVzdHMgPSBvdXQuc3BsaXQoIlwwIikKLSAgICBhc3NlcnQgImRvbS9pbnRlcmZhY2Vz
Lmh0bWwiIGluIHRlc3RzCi0gICAgYXNzZXJ0ICJodG1sL2RvbS9pbnRlcmZhY2VzLmh0dHBzLmh0
bWwiIGluIHRlc3RzCisgICAgYXNzZXJ0ICJkb20vaWRsaGFybmVzcy5hbnkuanMiIGluIHRlc3Rz
CisgICAgYXNzZXJ0ICJ4aHIvaWRsaGFybmVzcy5hbnkuanMiIGluIHRlc3RzCiAKIAogQHB5dGVz
dC5tYXJrLnNsb3cKLUBweXRlc3QubWFyay54ZmFpbChzeXMucGxhdGZvcm0gPT0gIndpbjMyIiwK
LSAgICAgICAgICAgICAgICAgICByZWFzb249IlRlc3RzIGN1cnJlbnRseSBkb24ndCB3b3JrIG9u
IFdpbmRvd3MgZm9yIHBhdGggcmVhc29ucyIpCitAcHl0ZXN0Lm1hcmsuc2tpcGlmKHN5cy5wbGF0
Zm9ybSA9PSAid2luMzIiLAorICAgICAgICAgICAgICAgICAgICByZWFzb249Im5vIG9zLnNldHNp
ZC9raWxscGcgdG8gZWFzaWx5IGNsZWFudXAgdGhlIHByb2Nlc3MgdHJlZSIpCiBkZWYgdGVzdF9z
ZXJ2ZSgpOgogICAgIGlmIGlzX3BvcnRfODAwMF9pbl91c2UoKToKICAgICAgICAgcHl0ZXN0LnNr
aXAoInBvcnQgODAwMCBhbHJlYWR5IGluIHVzZSIpCkBAIC0zNjEsOSArMzg5LDkgQEAgZGVmIHRl
c3Rfc2VydmUoKToKICAgICAgICAgICAgICAgICBhc3NlcnQgRmFsc2UsICJzZXJ2ZXIgZGlkIG5v
dCBzdGFydCByZXNwb25kaW5nIHdpdGhpbiA2MHMiCiAgICAgICAgICAgICB0cnk6CiAgICAgICAg
ICAgICAgICAgcmVzcCA9IHVybGxpYjIudXJsb3BlbigiaHR0cDovL3dlYi1wbGF0Zm9ybS50ZXN0
OjgwMDAiKQotICAgICAgICAgICAgICAgIHByaW50IHJlc3AKKyAgICAgICAgICAgICAgICBwcmlu
dChyZXNwKQogICAgICAgICAgICAgZXhjZXB0IHVybGxpYjIuVVJMRXJyb3I6Ci0gICAgICAgICAg
ICAgICAgcHJpbnQgIlVSTEVycm9yIgorICAgICAgICAgICAgICAgIHByaW50KCJVUkxFcnJvciIp
CiAgICAgICAgICAgICAgICAgdGltZS5zbGVlcCgxKQogICAgICAgICAgICAgZWxzZToKICAgICAg
ICAgICAgICAgICBhc3NlcnQgcmVzcC5jb2RlID09IDIwMApAQCAtMzczLDYgKzQwMSw1IEBAIGRl
ZiB0ZXN0X3NlcnZlKCk6CiAKICMgVGhlIGZvbGxvd2luZyBjb21tYW5kcyBhcmUgc2xvdyBydW5u
aW5nIGFuZCB1c2VkIGltcGxpY2l0bHkgaW4gb3RoZXIgQ0kKICMgam9icywgc28gd2Ugc2tpcCB0
aGVtIGhlcmU6Ci0jIHdwdCBjaGVjay1zdGFiaWxpdHkKICMgd3B0IG1hbmlmZXN0CiAjIHdwdCBs
aW50CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3dwdC90ZXN0cy93M2MtaW1wb3J0LmxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0L3Rlc3RzL3czYy1pbXBvcnQubG9nCmRl
bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwNTM4YjczZDBiYTAwOTAyZTM3ODE2OTA3YTE4
MDBjYWQyMDdlODcyLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0t
LSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0
L3Rlc3RzL3czYy1pbXBvcnQubG9nCisrKyAvZGV2L251bGwKQEAgLTEsMTggKzAsMCBAQAotVGhl
IHRlc3RzIGluIHRoaXMgZGlyZWN0b3J5IHdlcmUgaW1wb3J0ZWQgZnJvbSB0aGUgVzNDIHJlcG9z
aXRvcnkuCi1EbyBOT1QgbW9kaWZ5IHRoZXNlIHRlc3RzIGRpcmVjdGx5IGluIFdlYktpdC4KLUlu
c3RlYWQsIGNyZWF0ZSBhIHB1bGwgcmVxdWVzdCBvbiB0aGUgV1BUIGdpdGh1YjoKLQlodHRwczov
L2dpdGh1Yi5jb20vd2ViLXBsYXRmb3JtLXRlc3RzL3dwdAotCi1UaGVuIHJ1biB0aGUgVG9vbHMv
U2NyaXB0cy9pbXBvcnQtdzNjLXRlc3RzIGluIFdlYktpdCB0byByZWltcG9ydAotCi1EbyBOT1Qg
bW9kaWZ5IG9yIHJlbW92ZSB0aGlzIGZpbGUuCi0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotUHJvcGVydGll
cyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotUHJvcGVydHkgdmFsdWVzIHJlcXVp
cmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLUxpc3Qgb2YgZmls
ZXM6Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93
cHQvdGVzdHMvbGF0ZXN0X21vemlsbGFfY2VudHJhbC50eHQKLS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdC90ZXN0cy90ZXN0X3dwdC5weQpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy93cHQvdG94LmluaSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvd3B0L3RveC5pbmkKaW5kZXggZTQ4NmJiMjIxZDcyOTAwYjEwM2ZhNTZmYmYxODE3
NWFmYzU1NjBjOC4uNmEwNDQ0NzNhNmI3NDk4MTM0NTY4M2FiYjk2MDU4OGRlNjUzNWJmYiAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy93cHQvdG94LmluaQorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3dwdC90b3guaW5pCkBAIC0xLDUgKzEsNSBAQAogW3RveF0KLWVudmxpc3Qg
PSBweTI3LHB5MjctZmxha2U4CitlbnZsaXN0ID0gcHkyNwogc2tpcHNkaXN0PVRydWUKIAogW3Rl
c3RlbnZdCkBAIC03LDIwICs3LDEzIEBAIGRlcHMgPQogICBweXRlc3QKICAgcHl0ZXN0LWNvdgog
ICBoeXBvdGhlc2lzCisgIG1vY2sKICAgLXJ7dG94aW5pZGlyfS8uLi93cHRydW5uZXIvcmVxdWly
ZW1lbnRzLnR4dAogICAtcnt0b3hpbmlkaXJ9Ly4uL3dwdHJ1bm5lci9yZXF1aXJlbWVudHNfY2hy
b21lLnR4dAogICAtcnt0b3hpbmlkaXJ9Ly4uL3dwdHJ1bm5lci9yZXF1aXJlbWVudHNfZmlyZWZv
eC50eHQKIAogY29tbWFuZHMgPQotICBweXRlc3QgLS1jb3Yge3Bvc2FyZ3N9CisgIHB5dGVzdCB7
cG9zYXJnc30KIAotW3Rlc3RlbnY6cHkyNy1mbGFrZThdCi0jIGZsYWtlOCB2ZXJzaW9ucyBzaG91
bGQgYmUga2VwdCBpbiBzeW5jIGFjcm9zcyB0b29scy90b3guaW5pLCB0b29scy93cHQvdG94Lmlu
aSwgYW5kIHRvb2xzL3dwdHJ1bm5lci90b3guaW5pCi1kZXBzID0KLSAgICAgZmxha2U4PT0zLjUu
MAotICAgICBweWNvZGVzdHlsZT09Mi4zLjEKLSAgICAgcHlmbGFrZXM9PTEuNi4wCi0gICAgIHBl
cDgtbmFtaW5nPT0wLjQuMQotCi1jb21tYW5kcyA9Ci0gICAgIGZsYWtlOCAtLWFwcGVuZC1jb25m
aWc9Li4vZmxha2U4LmluaSB7cG9zYXJnc30KK3Bhc3NlbnYgPQorICBUQVNLQ0xVU1RFUl9ST09U
X1VSTApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy93cHQvdXRpbHMucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3dwdC91dGlscy5weQppbmRleCBlOGVkYzBiZTQ5MzczMTU4MTEy
YjYyY2ZhODA2NGE3MzIxMjliOTcxLi4yZDQyNzcxM2U0ZTgyNDg0NWI2ZDc4NzFiNjFjZDZmMTFl
YzI1MWY2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3dwdC91dGlscy5weQorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdC91dGlscy5weQpAQCAtMSwxMSArMSwxNSBAQAog
aW1wb3J0IGxvZ2dpbmcKIGltcG9ydCBvcwogaW1wb3J0IHN1YnByb2Nlc3MKLWltcG9ydCBzeXMK
IGltcG9ydCB0YXJmaWxlCiBpbXBvcnQgemlwZmlsZQogZnJvbSBpbyBpbXBvcnQgQnl0ZXNJTwog
Cit0cnk6CisgICAgZnJvbSB0eXBpbmcgaW1wb3J0IEFueSwgQ2FsbGFibGUKK2V4Y2VwdCBJbXBv
cnRFcnJvcjoKKyAgICBwYXNzCisKIGxvZ2dlciA9IGxvZ2dpbmcuZ2V0TG9nZ2VyKF9fbmFtZV9f
KQogCiAKQEAgLTEzLDEwICsxNywxMSBAQCBjbGFzcyBLd2FyZ3MoZGljdCk6CiAgICAgZGVmIHNl
dF9pZl9ub25lKHNlbGYsCiAgICAgICAgICAgICAgICAgICAgIG5hbWUsICAgICAgICAgICAgIyB0
eXBlOiBzdHIKICAgICAgICAgICAgICAgICAgICAgdmFsdWUsICAgICAgICAgICAjIHR5cGU6IEFu
eQotICAgICAgICAgICAgICAgICAgICBlcnJfZm49Tm9uZSwgICAgICMgdHlwZTogKEt3YXJncywg
c3RyKSAtPiBBbnkKKyAgICAgICAgICAgICAgICAgICAgZXJyX2ZuPU5vbmUsICAgICAjIHR5cGU6
IENhbGxhYmxlW1tLd2FyZ3MsIHN0cl0sIEFueV0KICAgICAgICAgICAgICAgICAgICAgZGVzYz1O
b25lLCAgICAgICAjIHR5cGU6IHN0cgotICAgICAgICAgICAgICAgICAgICBleHRyYV9jb25kPU5v
bmUgICMgdHlwZTogKEt3YXJncykgLT4gYm9vbAorICAgICAgICAgICAgICAgICAgICBleHRyYV9j
b25kPU5vbmUgICMgdHlwZTogQ2FsbGFibGVbW0t3YXJnc10sIEFueV0KICAgICAgICAgICAgICAg
ICAgICAgKToKKyAgICAgICAgIyB0eXBlOiAoLi4uKSAtPiBBbnkKICAgICAgICAgaWYgZGVzYyBp
cyBOb25lOgogICAgICAgICAgICAgZGVzYyA9IG5hbWUKIApAQCAtMzksNyArNDQsNyBAQCBkZWYg
Y2FsbCgqYXJncyk6CiAKICAgICBSZXR1cm5zIGEgYnl0ZXN0cmluZyBvZiB0aGUgc3VicHJvY2Vz
cyBvdXRwdXQgaWYgbm8gZXJyb3IuCiAgICAgIiIiCi0gICAgbG9nZ2VyLmRlYnVnKCIlcyIgJSAi
ICIuam9pbihhcmdzKSkKKyAgICBsb2dnZXIuZGVidWcoIiAiLmpvaW4oYXJncykpCiAgICAgdHJ5
OgogICAgICAgICByZXR1cm4gc3VicHJvY2Vzcy5jaGVja19vdXRwdXQoYXJncykKICAgICBleGNl
cHQgc3VicHJvY2Vzcy5DYWxsZWRQcm9jZXNzRXJyb3IgYXMgZToKQEAgLTQ5LDIwICs1NCw2IEBA
IGRlZiBjYWxsKCphcmdzKToKICAgICAgICAgcmFpc2UKIAogCi1kZWYgZ2V0X2dpdF9jbWQocmVw
b19wYXRoKToKLSAgICAiIiJDcmVhdGUgYSBmdW5jdGlvbiBmb3IgaW52b2tpbmcgZ2l0IGNvbW1h
bmRzIGFzIGEgc3VicHJvY2Vzcy4iIiIKLSAgICBkZWYgZ2l0KGNtZCwgKmFyZ3MpOgotICAgICAg
ICBmdWxsX2NtZCA9IFsiZ2l0IiwgY21kXSArIGxpc3QoYXJncykKLSAgICAgICAgdHJ5OgotICAg
ICAgICAgICAgbG9nZ2VyLmRlYnVnKCIgIi5qb2luKGZ1bGxfY21kKSkKLSAgICAgICAgICAgIHJl
dHVybiBzdWJwcm9jZXNzLmNoZWNrX291dHB1dChmdWxsX2NtZCwgY3dkPXJlcG9fcGF0aCwgc3Rk
ZXJyPXN1YnByb2Nlc3MuU1RET1VUKS5zdHJpcCgpCi0gICAgICAgIGV4Y2VwdCBzdWJwcm9jZXNz
LkNhbGxlZFByb2Nlc3NFcnJvciBhcyBlOgotICAgICAgICAgICAgbG9nZ2VyLmVycm9yKCJHaXQg
Y29tbWFuZCBleGl0ZWQgd2l0aCBzdGF0dXMgJWkiICUgZS5yZXR1cm5jb2RlKQotICAgICAgICAg
ICAgbG9nZ2VyLmVycm9yKGUub3V0cHV0KQotICAgICAgICAgICAgc3lzLmV4aXQoMSkKLSAgICBy
ZXR1cm4gZ2l0Ci0KLQogZGVmIHNlZWthYmxlKGZpbGVvYmopOgogICAgICIiIkF0dGVtcHQgdG8g
dXNlIGZpbGUuc2VlayBvbiBnaXZlbiBmaWxlLCB3aXRoIGZhbGxiYWNrcy4iIiIKICAgICB0cnk6
CkBAIC05NCwyMSArODUsNiBAQCBkZWYgdW56aXAoZmlsZW9iaiwgZGVzdD1Ob25lLCBsaW1pdD1O
b25lKToKICAgICAgICAgICAgIG9zLmNobW9kKG9zLnBhdGguam9pbihkZXN0LCBpbmZvLmZpbGVu
YW1lKSwgcGVybSkKIAogCi1jbGFzcyBwd2Qob2JqZWN0KToKLSAgICAiIiJDcmVhdGUgY29udGV4
dCBmb3IgdGVtcG9yYXJpbHkgY2hhbmdpbmcgcHJlc2VudCB3b3JraW5nIGRpcmVjdG9yeS4iIiIK
LSAgICBkZWYgX19pbml0X18oc2VsZiwgZGlyKToKLSAgICAgICAgc2VsZi5kaXIgPSBkaXIKLSAg
ICAgICAgc2VsZi5vbGRfZGlyID0gTm9uZQotCi0gICAgZGVmIF9fZW50ZXJfXyhzZWxmKToKLSAg
ICAgICAgc2VsZi5vbGRfZGlyID0gb3MucGF0aC5hYnNwYXRoKG9zLmN1cmRpcikKLSAgICAgICAg
b3MuY2hkaXIoc2VsZi5kaXIpCi0KLSAgICBkZWYgX19leGl0X18oc2VsZiwgKmFyZ3MsICoqa3dh
cmdzKToKLSAgICAgICAgb3MuY2hkaXIoc2VsZi5vbGRfZGlyKQotICAgICAgICBzZWxmLm9sZF9k
aXIgPSBOb25lCi0KLQogZGVmIGdldCh1cmwpOgogICAgICIiIklzc3VlIEdFVCByZXF1ZXN0IHRv
IGEgZ2l2ZW4gVVJMIGFuZCByZXR1cm4gdGhlIHJlc3BvbnNlLiIiIgogICAgIGltcG9ydCByZXF1
ZXN0cwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy93cHQvdmlydHVhbGVudi5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0L3ZpcnR1YWxlbnYucHkKaW5kZXggYjg0NTRjOTc5
YzJjNGJhMjA5OTViYTg4MDVjZWJiNjE4ZmQ4YmFlZC4uNDAwZGViYzg4ZTQ2OTEwZDI2NDFlNzI4
ZmM0YWRiODZhODg1NjhlMCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHQvdmlydHVhbGVudi5weQorKysgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdC92aXJ0dWFsZW52LnB5
CkBAIC00LDI0ICs0LDQ1IEBAIGltcG9ydCBzeXMKIGltcG9ydCBsb2dnaW5nCiBmcm9tIGRpc3R1
dGlscy5zcGF3biBpbXBvcnQgZmluZF9leGVjdXRhYmxlCiAKKyMgVGhlIGBwa2dfcmVzb3VyY2Vz
YCBtb2R1bGUgaXMgcHJvdmlkZWQgYnkgYHNldHVwdG9vbHNgLCB3aGljaCBpcyBpdHNlbGYgYQor
IyBkZXBlbmRlbmN5IG9mIGB2aXJ0dWFsZW52YC4gVG9sZXJhdGUgaXRzIGFic2VuY2Ugc28gdGhh
dCB0aGlzIG1vZHVsZSBtYXkgYmUKKyMgZXZhbHVhdGVkIHdoZW4gdGhhdCBtb2R1bGUgaXMgbm90
IGF2YWlsYWJsZS4gQmVjYXVzZSB1c2VycyBtYXkgbm90IHJlY29nbml6ZQorIyB0aGUgYHBrZ19y
ZXNvdXJjZXNgIG1vZHVsZSBieSBuYW1lLCByYWlzZSBhIG1vcmUgZGVzY3JpcHRpdmUgZXJyb3Ig
aWYgaXQgaXMKKyMgcmVmZXJlbmNlZCBkdXJpbmcgZXhlY3V0aW9uLgordHJ5OgorICAgIGltcG9y
dCBwa2dfcmVzb3VyY2VzIGFzIF9wa2dfcmVzb3VyY2VzCisgICAgZ2V0X3BrZ19yZXNvdXJjZXMg
PSBsYW1iZGE6IF9wa2dfcmVzb3VyY2VzCitleGNlcHQgSW1wb3J0RXJyb3I6CisgICAgZGVmIGdl
dF9wa2dfcmVzb3VyY2VzKCk6CisgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoIlRoZSBQeXRob24g
bW9kdWxlIGB2aXJ0dWFsZW52YCBpcyBub3QgaW5zdGFsbGVkLiIpCisKIGZyb20gdG9vbHMud3B0
LnV0aWxzIGltcG9ydCBjYWxsCiAKIGxvZ2dlciA9IGxvZ2dpbmcuZ2V0TG9nZ2VyKF9fbmFtZV9f
KQogCiBjbGFzcyBWaXJ0dWFsZW52KG9iamVjdCk6Ci0gICAgZGVmIF9faW5pdF9fKHNlbGYsIHBh
dGgpOgorICAgIGRlZiBfX2luaXRfXyhzZWxmLCBwYXRoLCBza2lwX3ZpcnR1YWxlbnZfc2V0dXAp
OgogICAgICAgICBzZWxmLnBhdGggPSBwYXRoCi0gICAgICAgIHNlbGYudmlydHVhbGVudiA9IGZp
bmRfZXhlY3V0YWJsZSgidmlydHVhbGVudiIpCi0gICAgICAgIGlmIG5vdCBzZWxmLnZpcnR1YWxl
bnY6Ci0gICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJ2aXJ0dWFsZW52IG11c3QgYmUgaW5z
dGFsbGVkIGFuZCBvbiB0aGUgUEFUSCIpCisgICAgICAgIHNlbGYuc2tpcF92aXJ0dWFsZW52X3Nl
dHVwID0gc2tpcF92aXJ0dWFsZW52X3NldHVwCisgICAgICAgIGlmIG5vdCBza2lwX3ZpcnR1YWxl
bnZfc2V0dXA6CisgICAgICAgICAgICBzZWxmLnZpcnR1YWxlbnYgPSBmaW5kX2V4ZWN1dGFibGUo
InZpcnR1YWxlbnYiKQorICAgICAgICAgICAgaWYgbm90IHNlbGYudmlydHVhbGVudjoKKyAgICAg
ICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJ2aXJ0dWFsZW52IG11c3QgYmUgaW5zdGFsbGVk
IGFuZCBvbiB0aGUgUEFUSCIpCisgICAgICAgICAgICBzZWxmLl93b3JraW5nX3NldCA9IE5vbmUK
IAogICAgIEBwcm9wZXJ0eQogICAgIGRlZiBleGlzdHMoc2VsZik6CiAgICAgICAgIHJldHVybiBv
cy5wYXRoLmlzZGlyKHNlbGYucGF0aCkKIAorICAgIEBwcm9wZXJ0eQorICAgIGRlZiBicm9rZW5f
bGluayhzZWxmKToKKyAgICAgICAgcHl0aG9uX2xpbmsgPSBvcy5wYXRoLmpvaW4oc2VsZi5wYXRo
LCAiLlB5dGhvbiIpCisgICAgICAgIHJldHVybiBvcy5wYXRoLmxleGlzdHMocHl0aG9uX2xpbmsp
IGFuZCBub3Qgb3MucGF0aC5leGlzdHMocHl0aG9uX2xpbmspCisKICAgICBkZWYgY3JlYXRlKHNl
bGYpOgogICAgICAgICBpZiBvcy5wYXRoLmV4aXN0cyhzZWxmLnBhdGgpOgogICAgICAgICAgICAg
c2h1dGlsLnJtdHJlZShzZWxmLnBhdGgpCisgICAgICAgICAgICBzZWxmLl93b3JraW5nX3NldCA9
IE5vbmUKICAgICAgICAgY2FsbChzZWxmLnZpcnR1YWxlbnYsIHNlbGYucGF0aCwgIi1wIiwgc3lz
LmV4ZWN1dGFibGUpCiAKICAgICBAcHJvcGVydHkKQEAgLTM3LDE3ICs1OCw2OSBAQCBjbGFzcyBW
aXJ0dWFsZW52KG9iamVjdCk6CiAgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJwaXAgbm90
IGZvdW5kIikKICAgICAgICAgcmV0dXJuIHBhdGgKIAorICAgIEBwcm9wZXJ0eQorICAgIGRlZiBs
aWJfcGF0aChzZWxmKToKKyAgICAgICAgYmFzZSA9IHNlbGYucGF0aAorCisgICAgICAgICMgdGhp
cyBibG9jayBpcyBsaXRlcmFsbHkgdGFrZW4gZnJvbSB2aXJ0dWFsZW52IDE2LjQuMworICAgICAg
ICBJU19QWVBZID0gaGFzYXR0cihzeXMsICJweXB5X3ZlcnNpb25faW5mbyIpCisgICAgICAgIElT
X0pZVEhPTiA9IHN5cy5wbGF0Zm9ybS5zdGFydHN3aXRoKCJqYXZhIikKKyAgICAgICAgaWYgSVNf
SllUSE9OOgorICAgICAgICAgICAgc2l0ZV9wYWNrYWdlcyA9IG9zLnBhdGguam9pbihiYXNlLCAi
TGliIiwgInNpdGUtcGFja2FnZXMiKQorICAgICAgICBlbGlmIElTX1BZUFk6CisgICAgICAgICAg
ICBzaXRlX3BhY2thZ2VzID0gb3MucGF0aC5qb2luKGJhc2UsICJzaXRlLXBhY2thZ2VzIikKKyAg
ICAgICAgZWxzZToKKyAgICAgICAgICAgIElTX1dJTiA9IHN5cy5wbGF0Zm9ybSA9PSAid2luMzIi
CisgICAgICAgICAgICBpZiBJU19XSU46CisgICAgICAgICAgICAgICAgc2l0ZV9wYWNrYWdlcyA9
IG9zLnBhdGguam9pbihiYXNlLCAiTGliIiwgInNpdGUtcGFja2FnZXMiKQorICAgICAgICAgICAg
ZWxzZToKKyAgICAgICAgICAgICAgICBzaXRlX3BhY2thZ2VzID0gb3MucGF0aC5qb2luKGJhc2Us
ICJsaWIiLCAicHl0aG9ue30iLmZvcm1hdChzeXMudmVyc2lvbls6M10pLCAic2l0ZS1wYWNrYWdl
cyIpCisKKyAgICAgICAgcmV0dXJuIHNpdGVfcGFja2FnZXMKKworICAgIEBwcm9wZXJ0eQorICAg
IGRlZiB3b3JraW5nX3NldChzZWxmKToKKyAgICAgICAgaWYgbm90IHNlbGYuZXhpc3RzOgorICAg
ICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigidHJ5aW5nIHRvIHJlYWQgd29ya2luZ19zZXQgd2hl
biB2ZW52IGRvZXNuJ3QgZXhpc3QiKQorCisgICAgICAgIGlmIHNlbGYuX3dvcmtpbmdfc2V0IGlz
IE5vbmU6CisgICAgICAgICAgICBzZWxmLl93b3JraW5nX3NldCA9IGdldF9wa2dfcmVzb3VyY2Vz
KCkuV29ya2luZ1NldCgoc2VsZi5saWJfcGF0aCwpKQorCisgICAgICAgIHJldHVybiBzZWxmLl93
b3JraW5nX3NldAorCiAgICAgZGVmIGFjdGl2YXRlKHNlbGYpOgogICAgICAgICBwYXRoID0gb3Mu
cGF0aC5qb2luKHNlbGYuYmluX3BhdGgsICJhY3RpdmF0ZV90aGlzLnB5IikKLSAgICAgICAgZXhl
Y2ZpbGUocGF0aCwgeyJfX2ZpbGVfXyI6IHBhdGh9KQorICAgICAgICB3aXRoIG9wZW4ocGF0aCkg
YXMgZjoKKyAgICAgICAgICAgIGV4ZWMoZi5yZWFkKCksIHsiX19maWxlX18iOiBwYXRofSkKIAog
ICAgIGRlZiBzdGFydChzZWxmKToKLSAgICAgICAgaWYgbm90IHNlbGYuZXhpc3RzOgorICAgICAg
ICBpZiBub3Qgc2VsZi5leGlzdHMgb3Igc2VsZi5icm9rZW5fbGluazoKICAgICAgICAgICAgIHNl
bGYuY3JlYXRlKCkKICAgICAgICAgc2VsZi5hY3RpdmF0ZSgpCiAKICAgICBkZWYgaW5zdGFsbChz
ZWxmLCAqcmVxdWlyZW1lbnRzKToKLSAgICAgICAgY2FsbChzZWxmLnBpcF9wYXRoLCAiaW5zdGFs
bCIsICpyZXF1aXJlbWVudHMpCisgICAgICAgIHRyeToKKyAgICAgICAgICAgIHNlbGYud29ya2lu
Z19zZXQucmVxdWlyZSgqcmVxdWlyZW1lbnRzKQorICAgICAgICBleGNlcHQgRXhjZXB0aW9uOgor
ICAgICAgICAgICAgcGFzcworICAgICAgICBlbHNlOgorICAgICAgICAgICAgcmV0dXJuCisKKyAg
ICAgICAgIyBgLS1wcmVmZXItYmluYXJ5YCBndWFyZHMgYWdhaW5zdCByYWNlIGNvbmRpdGlvbnMg
d2hlbiBpbnN0YWxsYXRpb24KKyAgICAgICAgIyBvY2N1cnMgd2hpbGUgcGFja2FnZXMgYXJlIGlu
IHRoZSBwcm9jZXNzIG9mIGJlaW5nIHB1Ymxpc2hlZC4KKyAgICAgICAgY2FsbChzZWxmLnBpcF9w
YXRoLCAiaW5zdGFsbCIsICItLXByZWZlci1iaW5hcnkiLCAqcmVxdWlyZW1lbnRzKQogCiAgICAg
ZGVmIGluc3RhbGxfcmVxdWlyZW1lbnRzKHNlbGYsIHJlcXVpcmVtZW50c19wYXRoKToKLSAgICAg
ICAgY2FsbChzZWxmLnBpcF9wYXRoLCAiaW5zdGFsbCIsICItciIsIHJlcXVpcmVtZW50c19wYXRo
KQorICAgICAgICB3aXRoIG9wZW4ocmVxdWlyZW1lbnRzX3BhdGgpIGFzIGY6CisgICAgICAgICAg
ICB0cnk6CisgICAgICAgICAgICAgICAgc2VsZi53b3JraW5nX3NldC5yZXF1aXJlKGYucmVhZCgp
KQorICAgICAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbjoKKyAgICAgICAgICAgICAgICBwYXNzCisg
ICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgIHJldHVybgorCisgICAgICAgICMgYC0t
cHJlZmVyLWJpbmFyeWAgZ3VhcmRzIGFnYWluc3QgcmFjZSBjb25kaXRpb25zIHdoZW4gaW5zdGFs
bGF0aW9uCisgICAgICAgICMgb2NjdXJzIHdoaWxlIHBhY2thZ2VzIGFyZSBpbiB0aGUgcHJvY2Vz
cyBvZiBiZWluZyBwdWJsaXNoZWQuCisgICAgICAgIGNhbGwoCisgICAgICAgICAgICBzZWxmLnBp
cF9wYXRoLCAiaW5zdGFsbCIsICItLXByZWZlci1iaW5hcnkiLCAiLXIiLCByZXF1aXJlbWVudHNf
cGF0aAorICAgICAgICApCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdC93M2MtaW1wb3J0LmxvZyBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0L3czYy1pbXBvcnQubG9nCmRl
bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1NjNjMWQ1ZTZlOTk1MzY0NTM4MjFhZThjMzFm
ZTI2NzM5MTQxMzc1Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0t
LSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0
L3czYy1pbXBvcnQubG9nCisrKyAvZGV2L251bGwKQEAgLTEsMzUgKzAsMCBAQAotVGhlIHRlc3Rz
IGluIHRoaXMgZGlyZWN0b3J5IHdlcmUgaW1wb3J0ZWQgZnJvbSB0aGUgVzNDIHJlcG9zaXRvcnku
Ci1EbyBOT1QgbW9kaWZ5IHRoZXNlIHRlc3RzIGRpcmVjdGx5IGluIFdlYktpdC4KLUluc3RlYWQs
IGNyZWF0ZSBhIHB1bGwgcmVxdWVzdCBvbiB0aGUgV1BUIGdpdGh1YjoKLQlodHRwczovL2dpdGh1
Yi5jb20vd2ViLXBsYXRmb3JtLXRlc3RzL3dwdAotCi1UaGVuIHJ1biB0aGUgVG9vbHMvU2NyaXB0
cy9pbXBvcnQtdzNjLXRlc3RzIGluIFdlYktpdCB0byByZWltcG9ydAotCi1EbyBOT1QgbW9kaWZ5
IG9yIHJlbW92ZSB0aGlzIGZpbGUuCi0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotUHJvcGVydGllcyByZXF1
aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotUHJvcGVydHkgdmFsdWVzIHJlcXVpcmluZyB2
ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLUxpc3Qgb2YgZmlsZXM6Ci0v
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHQvX19p
bml0X18ucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3dwdC9fX2luaXRfXy5weWMKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3dwdC9icm93c2VyLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHQvY29tbWFuZHMuanNvbgotL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0L2luc3RhbGwucHkKLS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdC9tYXJr
ZG93bi5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvd3B0L3BhdGhzCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy93cHQvcmVxdWlyZW1lbnRzLnR4dAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0L3J1bi5weQotL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0L3Rlc3RmaWxlcy5weQotL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0L3Rlc3RmaWxlcy5w
eWMKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dw
dC90b3guaW5pCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy93cHQvdXBkYXRlLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy93cHQvdXRpbHMucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdC91dGlscy5weWMKLS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdC92aXJ0dWFsZW52LnB5Ci0vTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHQvdmlydHVhbGVu
di5weWMKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3dwdC93cHQucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3dwdC93cHQucHljCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdC93cHQucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdC93cHQucHkKaW5kZXggZjRlZWNjZTIy
Y2Y5MTUwNDlmNDgxMDQ5OTAzYTdjNTNhMmE4ZWZmNy4uOTMzMDFkZDg2YjRmZmUyMDI5MDJhNDky
MjA0ZWJhNjUzN2ZiNTBkNSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHQvd3B0LnB5CisrKyBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0L3dwdC5weQpAQCAtNCw3ICs0LDcg
QEAgaW1wb3J0IGxvZ2dpbmcKIGltcG9ydCBvcwogaW1wb3J0IHN5cwogCi1mcm9tIHRvb2xzIGlt
cG9ydCBsb2NhbHBhdGhzICAjIG5vcWE6IGZsYWtlOAorZnJvbSB0b29scyBpbXBvcnQgbG9jYWxw
YXRocyAgIyBub3FhOiBGNDAxCiAKIGZyb20gc2l4IGltcG9ydCBpdGVyaXRlbXMKIGZyb20gLiBp
bXBvcnQgdmlydHVhbGVudgpAQCAtNDMsNiArNDMsOSBAQCBkZWYgbG9hZF9jb21tYW5kcygpOgog
ZGVmIHBhcnNlX2FyZ3MoYXJndiwgY29tbWFuZHMpOgogICAgIHBhcnNlciA9IGFyZ3BhcnNlLkFy
Z3VtZW50UGFyc2VyKCkKICAgICBwYXJzZXIuYWRkX2FyZ3VtZW50KCItLXZlbnYiLCBhY3Rpb249
InN0b3JlIiwgaGVscD0iUGF0aCB0byBhbiBleGlzdGluZyB2aXJ0dWFsZW52IHRvIHVzZSIpCisg
ICAgcGFyc2VyLmFkZF9hcmd1bWVudCgiLS1za2lwLXZlbnYtc2V0dXAiLCBhY3Rpb249InN0b3Jl
X3RydWUiLAorICAgICAgICAgICAgICAgICAgICAgICAgZGVzdD0ic2tpcF92ZW52X3NldHVwIiwK
KyAgICAgICAgICAgICAgICAgICAgICAgIGhlbHA9IldoZXRoZXIgdG8gdXNlIHRoZSB2aXJ0dWFs
ZW52IGFzLWlzLiBNdXN0IHNldCAtLXZlbnYgYXMgd2VsbCIpCiAgICAgcGFyc2VyLmFkZF9hcmd1
bWVudCgiLS1kZWJ1ZyIsIGFjdGlvbj0ic3RvcmVfdHJ1ZSIsIGhlbHA9IlJ1biB0aGUgZGVidWdn
ZXIgaW4gY2FzZSBvZiBhbiBleGNlcHRpb24iKQogICAgIHN1YnBhcnNlcnMgPSBwYXJzZXIuYWRk
X3N1YnBhcnNlcnMoZGVzdD0iY29tbWFuZCIpCiAgICAgZm9yIGNvbW1hbmQsIHByb3BzIGluIGl0
ZXJpdGVtcyhjb21tYW5kcyk6CkBAIC03NywxNSArODAsNDcgQEAgZGVmIGltcG9ydF9jb21tYW5k
KHByb2csIGNvbW1hbmQsIHByb3BzKToKICAgICByZXR1cm4gc2NyaXB0LCBwYXJzZXIKIAogCi1k
ZWYgc2V0dXBfdmlydHVhbGVudihwYXRoLCBwcm9wcyk6CitkZWYgY3JlYXRlX2NvbXBsZXRlX3Bh
cnNlcigpOgorICAgICIiIkVhZ2VybHkgbG9hZCBhbGwgc3VicGFyc2Vycy4gVGhpcyBpbnZvbHZl
cyBtb3JlIHdvcmsgdGhhbiBpcyByZXF1aXJlZAorICAgIGZvciB0eXBpY2FsIGNvbW1hbmQtbGlu
ZSB1c2FnZS4gSXQgaXMgbWFpbnRhaW5lZCBmb3IgdGhlIHB1cnBvc2VzIG9mCisgICAgZG9jdW1l
bnRhdGlvbiBnZW5lcmF0aW9uIGFzIGltcGxlbWVudGVkIGluIFdQVCdzIHRvcC1sZXZlbCBgL2Rv
Y3NgCisgICAgZGlyZWN0b3J5LiIiIgorCisgICAgY29tbWFuZHMgPSBsb2FkX2NvbW1hbmRzKCkK
KyAgICBwYXJzZXIgPSBhcmdwYXJzZS5Bcmd1bWVudFBhcnNlcigpCisgICAgc3VicGFyc2VycyA9
IHBhcnNlci5hZGRfc3VicGFyc2VycygpCisKKyAgICBmb3IgY29tbWFuZCBpbiBjb21tYW5kczoK
KyAgICAgICAgcHJvcHMgPSBjb21tYW5kc1tjb21tYW5kXQorCisgICAgICAgIGlmIHByb3BzWyJ2
aXJ0dWFsZW52Il06CisgICAgICAgICAgICBzZXR1cF92aXJ0dWFsZW52KE5vbmUsIEZhbHNlLCBw
cm9wcykKKworICAgICAgICBzdWJwYXJzZXIgPSBpbXBvcnRfY29tbWFuZCgnd3B0JywgY29tbWFu
ZCwgcHJvcHMpWzFdCisgICAgICAgIGlmIG5vdCBzdWJwYXJzZXI6CisgICAgICAgICAgICBjb250
aW51ZQorCisgICAgICAgIHN1YnBhcnNlcnMuYWRkX3BhcnNlcihjb21tYW5kLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgaGVscD1wcm9wc1siaGVscCJdLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgYWRkX2hlbHA9RmFsc2UsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBwYXJlbnRzPVtzdWJwYXJzZXJdKQorCisgICAgcmV0dXJuIHBhcnNlcgorCisKK2RlZiBz
ZXR1cF92aXJ0dWFsZW52KHBhdGgsIHNraXBfdmVudl9zZXR1cCwgcHJvcHMpOgorICAgIGlmIHNr
aXBfdmVudl9zZXR1cCBhbmQgcGF0aCBpcyBOb25lOgorICAgICAgICByYWlzZSBWYWx1ZUVycm9y
KCJNdXN0IHNldCAtLXZlbnYgd2hlbiAtLXNraXAtdmVudi1zZXR1cCBpcyB1c2VkIikKKyAgICBz
aG91bGRfc2tpcF9zZXR1cCA9IHBhdGggaXMgbm90IE5vbmUgYW5kIHNraXBfdmVudl9zZXR1cAog
ICAgIGlmIHBhdGggaXMgTm9uZToKICAgICAgICAgcGF0aCA9IG9zLnBhdGguam9pbih3cHRfcm9v
dCwgIl92ZW52IikKLSAgICB2ZW52ID0gdmlydHVhbGVudi5WaXJ0dWFsZW52KHBhdGgpCi0gICAg
dmVudi5zdGFydCgpCi0gICAgZm9yIG5hbWUgaW4gcHJvcHNbImluc3RhbGwiXToKLSAgICAgICAg
dmVudi5pbnN0YWxsKG5hbWUpCi0gICAgZm9yIHBhdGggaW4gcHJvcHNbInJlcXVpcmVtZW50cyJd
OgotICAgICAgICB2ZW52Lmluc3RhbGxfcmVxdWlyZW1lbnRzKHBhdGgpCisgICAgdmVudiA9IHZp
cnR1YWxlbnYuVmlydHVhbGVudihwYXRoLCBzaG91bGRfc2tpcF9zZXR1cCkKKyAgICBpZiBub3Qg
c2hvdWxkX3NraXBfc2V0dXA6CisgICAgICAgIHZlbnYuc3RhcnQoKQorICAgICAgICBmb3IgbmFt
ZSBpbiBwcm9wc1siaW5zdGFsbCJdOgorICAgICAgICAgICAgdmVudi5pbnN0YWxsKG5hbWUpCisg
ICAgICAgIGZvciBwYXRoIGluIHByb3BzWyJyZXF1aXJlbWVudHMiXToKKyAgICAgICAgICAgIHZl
bnYuaW5zdGFsbF9yZXF1aXJlbWVudHMocGF0aCkKICAgICByZXR1cm4gdmVudgogCiAKQEAgLTEw
MSwxNCArMTM2LDExIEBAIGRlZiBtYWluKHByb2c9Tm9uZSwgYXJndj1Ob25lKToKIAogICAgIG1h
aW5fYXJncywgY29tbWFuZF9hcmdzID0gcGFyc2VfYXJncyhhcmd2LCBjb21tYW5kcykKIAotICAg
IGlmIG5vdChsZW4oYXJndikgYW5kIGFyZ3ZbMF0gaW4gY29tbWFuZHMpOgotICAgICAgICBzeXMu
ZXhpdCgxKQotCiAgICAgY29tbWFuZCA9IG1haW5fYXJncy5jb21tYW5kCiAgICAgcHJvcHMgPSBj
b21tYW5kc1tjb21tYW5kXQogICAgIHZlbnYgPSBOb25lCiAgICAgaWYgcHJvcHNbInZpcnR1YWxl
bnYiXToKLSAgICAgICAgdmVudiA9IHNldHVwX3ZpcnR1YWxlbnYobWFpbl9hcmdzLnZlbnYsIHBy
b3BzKQorICAgICAgICB2ZW52ID0gc2V0dXBfdmlydHVhbGVudihtYWluX2FyZ3MudmVudiwgbWFp
bl9hcmdzLnNraXBfdmVudl9zZXR1cCwgcHJvcHMpCiAgICAgc2NyaXB0LCBwYXJzZXIgPSBpbXBv
cnRfY29tbWFuZChwcm9nLCBjb21tYW5kLCBwcm9wcykKICAgICBpZiBwYXJzZXI6CiAgICAgICAg
IGlmIHByb3BzWyJwYXJzZV9rbm93biJdOgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvLmdpdGlnbm9yZSBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVy
Ly5naXRpZ25vcmUKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDk1NjE2ZWYxZDE5YzU0Y2I5NjNlOTllMWEyMjZlODMy
MGNjMzc0NAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyLy5naXRpZ25vcmUKQEAgLTAsMCArMSw4IEBA
CisqLnB5W2NvXQorKn4KKyojCitcIyoKK192aXJ0dWFsZW52Cit0ZXN0L3Rlc3QuY2ZnCit0ZXN0
L21ldGFkYXRhL01BTklGRVNULmpzb24KK3dwdHJ1bm5lci5lZ2ctaW5mbwpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5u
ZXIvUkVBRE1FLnJzdCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvd3B0cnVubmVyL1JFQURNRS5yc3QKaW5kZXggNzZlNDk2ZGNkYmI2OTdhMmQ2NjYy
YTZkZmZiNjAzYjE3YWNlMDUzZi4uMGFkZjBhOTRiMTVkMjI0YWI3OTcwZTgxYWU3ZjQzMmRmMzRi
YjNkNyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy93cHRydW5uZXIvUkVBRE1FLnJzdAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci9SRUFETUUucnN0CkBAIC0z
LDIzNCArMywxMiBAQCB3cHRydW5uZXI6IEEgd2ViLXBsYXRmb3JtLXRlc3RzIGhhcm5lc3MKIAog
d3B0cnVubmVyIGlzIGEgaGFybmVzcyBmb3IgcnVubmluZyB0aGUgVzNDIGB3ZWItcGxhdGZvcm0t
dGVzdHMgdGVzdHN1aXRlYF8uCiAKLS4uIGNvbnRlbnRzOjoKKy4uIHRvY3RyZWU6OgorICAgOm1h
eGRlcHRoOiAyCiAKLUluc3RhbGxhdGlvbgotfn5+fn5+fn5+fn5+Ci0KLXdwdHJ1bm5lciBpcyBl
eHBlY3RlZCB0byBiZSBpbnN0YWxsZWQgaW50byBhIHZpcnR1YWxlbnYgdXNpbmcgcGlwLiBGb3IK
LWRldmVsb3BtZW50LCBpdCBjYW4gYmUgaW5zdGFsbGVkIHVzaW5nIHRoZSBgLWVgIG9wdGlvbjo6
Ci0KLSAgcGlwIGluc3RhbGwgLWUgLi8KLQotUnVubmluZyB0aGUgVGVzdHMKLX5+fn5+fn5+fn5+
fn5+fn5+Ci0KLUFmdGVyIGluc3RhbGxhdGlvbiwgdGhlIGNvbW1hbmQgYGB3cHRydW5uZXJgYCBz
aG91bGQgYmUgYXZhaWxhYmxlIHRvIHJ1bgotdGhlIHRlc3RzLgotCi1UaGUgYGB3cHRydW5uZXJg
YCBjb21tYW5kICB0YWtlcyBtdWx0aXBsZSBvcHRpb25zLCBvZiB3aGljaCB0aGUKLWZvbGxvd2lu
ZyBhcmUgbW9zdCBzaWduaWZpY2FudDoKLQotYGAtLXByb2R1Y3RgYCAoZGVmYXVsdHMgdG8gYGZp
cmVmb3hgKQotICBUaGUgcHJvZHVjdCB0byB0ZXN0IGFnYWluc3Q6IGBjaHJvbWVgLCBgZmlyZWZv
eGAsIG9yIGBzZXJ2b2AuCi0KLWBgLS1iaW5hcnlgYCAocmVxdWlyZWQgaWYgcHJvZHVjdCBpcyBg
ZmlyZWZveGAgb3IgYHNlcnZvYCkKLSAgVGhlIHBhdGggdG8gYSBiaW5hcnkgZmlsZSBmb3IgdGhl
IHByb2R1Y3QgKGJyb3dzZXIpIHRvIHRlc3QgYWdhaW5zdC4KLQotYGAtLXdlYmRyaXZlci1iaW5h
cnlgYCAocmVxdWlyZWQgaWYgcHJvZHVjdCBpcyBgY2hyb21lYCkKLSAgVGhlIHBhdGggdG8gYSBg
ZHJpdmVyYCBiaW5hcnk7IGUuZy4sIGEgYGNocm9tZWRyaXZlcmAgYmluYXJ5LgotCi1gYC0tY2Vy
dHV0aWwtYmluYXJ5YGAgKHJlcXVpcmVkIGlmIHByb2R1Y3QgaXMgYGZpcmVmb3hgIFsjXV8pCi0g
IFRoZSBwYXRoIHRvIGEgYGNlcnR1dGlsYCBiaW5hcnkgKGZvciB0ZXN0cyB0aGF0IG11c3QgYmUg
cnVuIG92ZXIgaHR0cHMpLgotCi1gYC0tbWV0YWRhdGFgYCAocmVxdWlyZWQpCi0gIFRoZSBwYXRo
IHRvIGEgZGlyZWN0b3J5IGNvbnRhaW5pbmcgdGVzdCBtZXRhZGF0YS4gWyNdXwotCi1gYC0tdGVz
dHNgYCAocmVxdWlyZWQpCi0gIFRoZSBwYXRoIHRvIGEgZGlyZWN0b3J5IGNvbnRhaW5pbmcgYSB3
ZWItcGxhdGZvcm0tdGVzdHMgY2hlY2tvdXQuCi0KLWBgLS1wcmVmcy1yb290YGAgKHJlcXVpcmVk
IG9ubHkgd2hlbiB0ZXN0aW5nIGEgRmlyZWZveCBiaW5hcnkpCi0gIFRoZSBwYXRoIHRvIGEgZGly
ZWN0b3J5IGNvbnRhaW5pbmcgRmlyZWZveCB0ZXN0LWhhcm5lc3MgcHJlZmVyZW5jZXMuIFsjXV8K
LQotYGAtLWNvbmZpZ2BgIChzaG91bGQgZGVmYXVsdCB0byBgd3B0cnVubmVyLmRlZmF1bHQuaW5p
YCkKLSAgVGhlIHBhdGggdG8gdGhlIGNvbmZpZyAoaW5pKSBmaWxlLgotCi0uLiBbI10gVGhlIGBg
LS1jZXJ0dXRpbC1iaW5hcnlgYCBvcHRpb24gaXMgcmVxdWlyZWQgd2hlbiB0aGUgcHJvZHVjdCBp
cwotICAgYGBmaXJlZm94YGAgdW5sZXNzIGBgLS1zc2wtdHlwZT1ub25lYGAgaXMgc3BlY2lmaWVk
LgotCi0uLiBbI10gVGhlIGBgLS1tZXRhZGF0YWBgIHBhdGggaXMgdG8gYSBkaXJlY3RvcnkgdGhh
dCBjb250YWluczoKLQotICAqIGEgYGBNQU5JRkVTVC5qc29uYGAgZmlsZSAoaW5zdHJ1Y3Rpb25z
IG9uIGdlbmVyYXRpbmcgdGhpcyBmaWxlIGFyZQotICAgIGF2YWlsYWJsZSBpbiB0aGUgYGRldGFp
bGVkIGRvY3VtZW50YXRpb24KLSAgICA8aHR0cDovL3dwdHJ1bm5lci5yZWFkdGhlZG9jcy5vcmcv
ZW4vbGF0ZXN0L3VzYWdlLmh0bWwjaW5zdGFsbGluZy13cHRydW5uZXI+YF8pOwotICAgIGFuZAot
ICAqIChvcHRpb25hbGx5KSBhbnkgZXhwZWN0YXRpb24gZmlsZXMgKHNlZSBiZWxvdykKLQotLi4g
WyNdIEV4YW1wbGUgYGAtLXByZWZzLXJvb3RgYCB2YWx1ZTogYGB+L21vemlsbGEtY2VudHJhbC90
ZXN0aW5nL3Byb2ZpbGVzYGAuCi0KLVRoZXJlIGFyZSBhbHNvIGEgdmFyaWV0eSBvZiBvdGhlciBv
cHRpb25zIGF2YWlsYWJsZTsgdXNlIGBgLS1oZWxwYGAgdG8KLWxpc3QgdGhlbS4KLQotLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotRXhhbXBsZTogSG93IHRvIHN0YXJ0IHdwdHJ1bm5l
cgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotCi1UbyB0ZXN0IGEgRmlyZWZveCBO
aWdodGx5IGJ1aWxkIGluIGFuIE9TIFggZW52aXJvbm1lbnQsIHlvdSBtaWdodCBzdGFydAotd3B0
cnVubmVyIHVzaW5nIHNvbWV0aGluZyBzaW1pbGFyIHRvIHRoZSBmb2xsb3dpbmcgZXhhbXBsZTo6
Ci0KLSAgd3B0cnVubmVyIC0tbWV0YWRhdGE9fi93ZWItcGxhdGZvcm0tdGVzdHMvIC0tdGVzdHM9
fi93ZWItcGxhdGZvcm0tdGVzdHMvIFwKLSAgICAtLWJpbmFyeT1+L21vemlsbGEtY2VudHJhbC9v
YmoteDg2XzY0LWFwcGxlLWRhcndpbjE0LjMuMC9kaXN0L05pZ2h0bHkuYXBwL0NvbnRlbnRzL01h
Y09TL2ZpcmVmb3ggXAotICAgIC0tY2VydHV0aWwtYmluYXJ5PX4vbW96aWxsYS1jZW50cmFsL29i
ai14ODZfNjQtYXBwbGUtZGFyd2luMTQuMy4wL3NlY3VyaXR5L25zcy9jbWQvY2VydHV0aWwvY2Vy
dHV0aWwgXAotICAgIC0tcHJlZnMtcm9vdD1+L21vemlsbGEtY2VudHJhbC90ZXN0aW5nL3Byb2Zp
bGVzCi0KLUFuZCB0byB0ZXN0IGEgQ2hyb21pdW0gYnVpbGQgaW4gYW4gT1MgWCBlbnZpcm9ubWVu
dCwgeW91IG1pZ2h0IHN0YXJ0Ci13cHRydW5uZXIgdXNpbmcgc29tZXRoaW5nIHNpbWlsYXIgdG8g
dGhlIGZvbGxvd2luZyBleGFtcGxlOjoKLQotICB3cHRydW5uZXIgLS1tZXRhZGF0YT1+L3dlYi1w
bGF0Zm9ybS10ZXN0cy8gLS10ZXN0cz1+L3dlYi1wbGF0Zm9ybS10ZXN0cy8gXAotICAgIC0tYmlu
YXJ5PX4vY2hyb21pdW0vc3JjL291dC9SZWxlYXNlL0Nocm9taXVtLmFwcC9Db250ZW50cy9NYWNP
Uy9DaHJvbWl1bSBcCi0gICAgLS13ZWJkcml2ZXItYmluYXJ5PS91c3IvbG9jYWwvYmluL2Nocm9t
ZWRyaXZlciAtLXByb2R1Y3Q9Y2hyb21lCi0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0KLUV4YW1wbGU6IEhvdyB0byBydW4gYSBzdWJzZXQgb2YgdGVzdHMKLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLQotVG8gcmVzdHJpY3QgYSB0ZXN0IHJ1biBq
dXN0IHRvIHRlc3RzIGluIGEgcGFydGljdWxhciB3ZWItcGxhdGZvcm0tdGVzdHMKLXN1YmRpcmVj
dG9yeSwgc3BlY2lmeSB0aGUgZGlyZWN0b3J5IG5hbWUgaW4gdGhlIHBvc2l0aW9uYWwgYXJndW1l
bnRzIGFmdGVyCi10aGUgb3B0aW9uczsgZm9yIGV4YW1wbGUsIHJ1biBqdXN0IHRoZSB0ZXN0cyBp
biB0aGUgYGRvbWAgc3ViZGlyZWN0b3J5OjoKLQotICB3cHRydW5uZXIgLS1tZXRhZGF0YT1+L3dl
Yi1wbGF0Zm9ybS10ZXN0cy8gLS10ZXN0cz1+L3dlYi1wbGF0Zm9ybS10ZXN0cy8gXAotICAgIC0t
YmluYXJ5PS9wYXRoL3RvL2ZpcmVmb3ggLS1jZXJ0dXRpbC1iaW5hcnk9L3BhdGgvdG8vY2VydHV0
aWwgXAotICAgIC0tcHJlZnMtcm9vdD0vcGF0aC90by90ZXN0aW5nL3Byb2ZpbGVzIFwKLSAgICBk
b20KLQotT3V0cHV0Ci1+fn5+fn4KLQotQnkgZGVmYXVsdCB3cHRydW5uZXIganVzdCBkdW1wcyBp
dHMgZW50aXJlIG91dHB1dCBhcyByYXcgSlNPTiBtZXNzYWdlcwotdG8gc3Rkb3V0LiBUaGlzIGlz
IGNvbnZlbmllbnQgZm9yIHBpcGluZyBpbnRvIG90aGVyIHRvb2xzLCBidXQgbm90IGlkZWFsCi1m
b3IgaHVtYW5zIHJlYWRpbmcgdGhlIG91dHB1dC4KLQotQXMgYW4gYWx0ZXJuYXRpdmUsIHlvdSBj
YW4gdXNlIHRoZSBgYC0tbG9nLW1hY2hgYCBvcHRpb24sIHdoaWNoIHByb3ZpZGVzCi1vdXRwdXQg
aW4gYSByZWFzb25hYmxlIGZvcm1hdCBmb3IgaHVtYW5zLiBUaGUgb3B0aW9uIHJlcXVpcmVzIGEg
dmFsdWU6Ci1laXRoZXIgdGhlIHBhdGggZm9yIGEgZmlsZSB0byB3cml0ZSB0aGUgYG1hY2hgLWZv
cm1hdHRlZCBvdXRwdXQgdG8sIG9yCi0iYC1gIiAoYSBoeXBoZW4pIHRvIHdyaXRlIHRoZSBgbWFj
aGAtZm9ybWF0dGVkIG91dHB1dCB0byBzdGRvdXQuCi0KLVdoZW4gdXNpbmcgYGAtLWxvZy1tYWNo
YGAsIG91dHB1dCBvZiB0aGUgZnVsbCByYXcgSlNPTiBsb2cgaXMgc3RpbGwKLWF2YWlsYWJsZSwg
ZnJvbSB0aGUgYGAtLWxvZy1yYXdgYCBvcHRpb24uIFNvIHRvIG91dHB1dCB0aGUgZnVsbCByYXcg
SlNPTgotbG9nIHRvIGEgZmlsZSBhbmQgYSBodW1hbi1yZWFkYWJsZSBzdW1tYXJ5IHRvIHN0ZG91
dCwgeW91IG1pZ2h0IHN0YXJ0Ci13cHRydW5uZXIgdXNpbmcgc29tZXRoaW5nIHNpbWlsYXIgdG8g
dGhlIGZvbGxvd2luZyBleGFtcGxlOjoKLQotICB3cHRydW5uZXIgLS1tZXRhZGF0YT1+L3dlYi1w
bGF0Zm9ybS10ZXN0cy8gLS10ZXN0cz1+L3dlYi1wbGF0Zm9ybS10ZXN0cy8gXAotICAgIC0tYmlu
YXJ5PS9wYXRoL3RvL2ZpcmVmb3ggLS1jZXJ0dXRpbC1iaW5hcnk9L3BhdGgvdG8vY2VydHV0aWwg
XAotICAgIC0tcHJlZnMtcm9vdD0vcGF0aC90by90ZXN0aW5nL3Byb2ZpbGVzIFwKLSAgICAtLWxv
Zy1yYXc9b3V0cHV0LmxvZyAtLWxvZy1tYWNoPS0KLQotRXhwZWN0YXRpb24gRGF0YQotfn5+fn5+
fn5+fn5+fn5+fgotCi13cHRydW5uZXIgaXMgZGVzaWduZWQgdG8gYmUgdXNlZCBpbiBhbiBlbnZp
cm9ubWVudCB3aGVyZSBpdCBpcyBub3QKLWp1c3QgbmVjZXNzYXJ5IHRvIGtub3cgd2hpY2ggdGVz
dHMgcGFzc2VkLCBidXQgdG8gY29tcGFyZSB0aGUgcmVzdWx0cwotYmV0d2VlbiBydW5zLiBGb3Ig
dGhpcyByZWFzb24gaXQgaXMgcG9zc2libGUgdG8gc3RvcmUgdGhlIHJlc3VsdHMgb2YgYQotcHJl
dmlvdXMgcnVuIGluIGEgc2V0IG9mIGluaS1saWtlICJleHBlY3RhdGlvbiBmaWxlcyIuIFRoaXMg
Zm9ybWF0IGlzCi1kb2N1bWVudGVkIGJlbG93LiBUbyBnZW5lcmF0ZSB0aGUgZXhwZWN0YXRpb24g
ZmlsZXMgdXNlIGB3cHRydW5uZXJgIHdpdGgKLXRoZSBgLS1sb2ctcmF3PS9wYXRoL3RvL2xvZy9m
aWxlYCBvcHRpb24uIFRoaXMgY2FuIHRoZW4gYmUgdXNlZCBhcwotaW5wdXQgdG8gdGhlIGB3cHR1
cGRhdGVgIHRvb2wuCi0KLUV4cGVjdGF0aW9uIEZpbGUgRm9ybWF0Ci1+fn5+fn5+fn5+fn5+fn5+
fn5+fn5+fgotCi1NZXRhZGF0YSBhYm91dCB0ZXN0cywgbm90YWJseSBpbmNsdWRpbmcgdGhlaXIg
ZXhwZWN0ZWQgcmVzdWx0cywgaXMKLXN0b3JlZCBpbiBhIG1vZGlmaWVkIGluaS1saWtlIGZvcm1h
dCB0aGF0IGlzIGRlc2lnbmVkIHRvIGJlIGh1bWFuCi1lZGl0YWJsZSwgYnV0IGFsc28gdG8gYmUg
bWFjaGluZSB1cGRhdGFibGUuCi0KLUVhY2ggdGVzdCBmaWxlIHRoYXQgcmVxdWlyZXMgbWV0YWRh
dGEgdG8gYmUgc3BlY2lmaWVkIChiZWNhdXNlIGl0IGhhcwotYSBub24tZGVmYXVsdCBleHBlY3Rh
dGlvbiBvciBiZWNhdXNlIGl0IGlzIGRpc2FibGVkLCBmb3IgZXhhbXBsZSkgaGFzCi1hIGNvcnJl
c3BvbmRpbmcgZXhwZWN0YXRpb24gZmlsZSBpbiB0aGUgYG1ldGFkYXRhYCBkaXJlY3RvcnkuIEZv
cgotZXhhbXBsZSBhIHRlc3QgZmlsZSBgaHRtbC90ZXN0MS5odG1sYCBjb250YWluaW5nIGEgZmFp
bGluZyB0ZXN0IHdvdWxkCi1oYXZlIGFuIGV4cGVjdGF0aW9uIGZpbGUgY2FsbGVkIGBodG1sL3Rl
c3QxLmh0bWwuaW5pYCBpbiB0aGUKLWBtZXRhZGF0YWAgZGlyZWN0b3J5LgotCi1BbiBleGFtcGxl
IG9mIGFuIGV4cGVjdGF0aW9uIGZpbGUgaXM6OgotCi0gIGV4YW1wbGVfZGVmYXVsdF9rZXk6IGV4
YW1wbGVfdmFsdWUKLQotICBbZmlsZW5hbWUuaHRtbF0KLSAgICBbc3VidGVzdDFdCi0gICAgICBl
eHBlY3RlZDogRkFJTAotCi0gICAgW3N1YnRlc3QyXQotICAgICAgZXhwZWN0ZWQ6Ci0gICAgICAg
IGlmIHBsYXRmb3JtID09ICd3aW4nOiBUSU1FT1VUCi0gICAgICAgIGlmIHBsYXRmb3JtID09ICdv
c3gnOiBFUlJPUgotICAgICAgICBGQUlMCi0KLSAgW2ZpbGVuYW1lLmh0bWw/cXVlcnk9c29tZXRo
aW5nXQotICAgIGRpc2FibGVkOiBidWcxMjM0NQotCi1UaGUgZmlsZSBjb25zaXN0cyBvZiB0d28g
ZWxlbWVudHMsIGtleS12YWx1ZSBwYWlycyBhbmQKLXNlY3Rpb25zLgotCi1TZWN0aW9ucyBhcmUg
ZGVsaW1pdGVkIGJ5IGhlYWRpbmdzIGVuY2xvc2VkIGluIHNxdWFyZSBicmFja2V0cy4gQW55Ci1j
bG9zaW5nIHNxdWFyZSBicmFja2V0IGluIHRoZSBoZWFkaW5nIGl0c2VsZiBteSBiZSBlc2NhcGVk
IHdpdGggYQotYmFja3NsYXNoLiBFYWNoIHNlY3Rpb24gbWF5IHRoZW4gY29udGFpbiBhbnkgbnVt
YmVyIG9mIGtleS12YWx1ZSBwYWlycwotZm9sbG93ZWQgYnkgYW55IG51bWJlciBvZiBzdWJzZWN0
aW9ucy4gU28gdGhhdCBpdCBpcyBjbGVhciB3aGljaCBkYXRhCi1iZWxvbmdzIHRvIGVhY2ggc2Vj
dGlvbiB3aXRob3V0IHRoZSB1c2Ugb2YgZW5kLXNlY3Rpb24gbWFya2VycywgdGhlCi1kYXRhIGZv
ciBlYWNoIHNlY3Rpb24gKGkuZS4gdGhlIGtleS12YWx1ZSBwYWlycyBhbmQgc3Vic2VjdGlvbnMp
IG11c3QKLWJlIGluZGVudGVkIHVzaW5nIHNwYWNlcy4gSW5kZW50YXRpb24gbmVlZCBvbmx5IGJl
IGNvbnNpc3RlbnQsIGJ1dAotdXNpbmcgdHdvIHNwYWNlcyBwZXIgbGV2ZWwgaXMgcmVjb21tZW5k
ZWQuCi0KLUluIGEgdGVzdCBleHBlY3RhdGlvbiBmaWxlLCBlYWNoIHJlc291cmNlIHByb3ZpZGVk
IGJ5IHRoZSBmaWxlIGhhcyBhCi1zaW5nbGUgc2VjdGlvbiwgd2l0aCB0aGUgc2VjdGlvbiBoZWFk
aW5nIGJlaW5nIHRoZSBwYXJ0IGFmdGVyIHRoZSBsYXN0Ci1gL2AgaW4gdGhlIHRlc3QgdXJsLiBU
ZXN0cyB0aGF0IGhhdmUgc3Vic2VjdGlvbnMgbWF5IGhhdmUgc3Vic2VjdGlvbnMKLWZvciB0aG9z
ZSBzdWJ0ZXN0cyBpbiB3aGljaCB0aGUgaGVhZGluZyBpcyB0aGUgbmFtZSBvZiB0aGUgc3VidGVz
dC4KLQotU2ltcGxlIGtleS12YWx1ZSBwYWlycyBhcmUgb2YgdGhlIGZvcm06OgotCi0gIGtleTog
dmFsdWUKLQotTm90ZSB0aGF0IHVubGlrZSBpbmkgZmlsZXMsIG9ubHkgYDpgIGlzIGEgdmFsaWQg
c2VwYXJhdG9yOyBgPWAgd2lsbAotbm90IHdvcmsgYXMgZXhwZWN0ZWQuIEtleS12YWx1ZSBwYWly
cyBtYXkgYWxzbyBoYXZlIGNvbmRpdGlvbmFsCi12YWx1ZXMgb2YgdGhlIGZvcm06OgotCi0gIGtl
eToKLSAgICBpZiBjb25kaXRpb24xOiB2YWx1ZTEKLSAgICBpZiBjb25kaXRpb24yOiB2YWx1ZTIK
LSAgICBkZWZhdWx0Ci0KLUluIHRoaXMgY2FzZSBlYWNoIGNvbmRpdGlvbmFsIGlzIGV2YWx1YXRl
ZCBpbiB0dXJuIGFuZCB0aGUgdmFsdWUgaXMKLXRoYXQgb24gdGhlIHJpZ2h0IGhhbmQgc2lkZSBv
ZiB0aGUgZmlyc3QgbWF0Y2hpbmcgY29uZGl0aW9uYWwuIEluIHRoZQotY2FzZSB0aGF0IG5vIGNv
bmRpdGlvbiBtYXRjaGVzLCB0aGUgdW5jb25kaXRpb25hbCBkZWZhdWx0IGlzIHVzZWQuIElmCi1u
byBjb25kaXRpb24gbWF0Y2hlcyBhbmQgbm8gZGVmYXVsdCBpcyBwcm92aWRlZCBpdCBpcyBlcXVp
dmFsZW50IHRvCi10aGUga2V5IG5vdCBiZWluZyBwcmVzZW50LiBDb25kaXRpb25hbHMgdXNlIGEg
c2ltcGxlIHB5dGhvbi1saWtlIGV4cHJlc3Npb24KLWxhbmd1YWdlIGUuZy46OgotCi0gIGlmIGRl
YnVnIGFuZCAocGxhdGZvcm0gPT0gImxpbnV4IiBvciBwbGF0Zm9ybSA9PSAib3N4Iik6IEZBSUwK
LQotRm9yIHRlc3QgZXhwZWN0YXRpb25zIHRoZSBhdmFpbGFibGUgdmFyaWFibGVzIGFyZSB0aG9z
ZSBpbiB0aGUKLWBydW5faW5mb2Agd2hpY2ggZm9yIGRlc2t0b3AgYXJlIGB2ZXJzaW9uYCwgYG9z
YCwgYGJpdHNgLCBgcHJvY2Vzc29yYCwKLWBkZWJ1Z2AgYW5kIGBwcm9kdWN0YC4KLQotS2V5LXZh
bHVlIHBhaXJzIHNwZWNpZmllZCBhdCB0aGUgdG9wIGxldmVsIG9mIHRoZSBmaWxlIGJlZm9yZSBh
bnkKLXNlY3Rpb25zIGFyZSBzcGVjaWFsIGFzIHRoZXkgcHJvdmlkZSBkZWZhdWx0cyBmb3IgdGhl
IHJlc3Qgb2YgdGhlIGZpbGUKLWUuZy46OgotCi0gIGtleTE6IHZhbHVlMQotCi0gIFtzZWN0aW9u
IDFdCi0gICAga2V5MjogdmFsdWUyCi0KLSAgW3NlY3Rpb24gMl0KLSAgICBrZXkxOiB2YWx1ZTMK
LQotSW4gdGhpcyBjYXNlLCBpbnNpZGUgc2VjdGlvbiAxLCBga2V5MWAgd291bGQgaGF2ZSB0aGUg
dmFsdWUgYHZhbHVlMWAKLWFuZCBga2V5MmAgdGhlIHZhbHVlIGB2YWx1ZTJgIHdoZXJlYXMgaW4g
c2VjdGlvbiAyIGBrZXkxYCB3b3VsZCBoYXZlCi10aGUgdmFsdWUgYHZhbHVlM2AgYW5kIGBrZXky
YCB3b3VsZCBiZSB1bmRlZmluZWQuCi0KLVRoZSB3ZWItcGxhdGZvcm0tdGVzdCBoYXJuZXNzIGtu
b3dzIGFib3V0IHNldmVyYWwga2V5czoKLQotYGV4cGVjdGVkYAotICBNdXN0IGV2YWx1YXRlIHRv
IGEgcG9zc2libGUgdGVzdCBzdGF0dXMgaW5kaWNhdGluZyB0aGUgZXhwZWN0ZWQKLSAgcmVzdWx0
IG9mIHRoZSB0ZXN0LiBUaGUgaW1wbGljaXQgZGVmYXVsdCBpcyBQQVNTIG9yIE9LIHdoZW4gdGhl
Ci0gIGZpZWxkIGlzbid0IHByZXNlbnQuCi0KLWBkaXNhYmxlZGAKLSAgQW55IHZhbHVlIGluZGlj
YXRlcyB0aGF0IHRoZSB0ZXN0IGlzIGRpc2FibGVkLgotCi1gcmVmdHlwZWAKLSAgVGhlIHR5cGUg
b2YgY29tcGFyaXNvbiBmb3IgcmVmdGVzdHM7IGVpdGhlciBgPT1gIG9yIGAhPWAuCi0KLWByZWZ1
cmxgCi0gIFRoZSByZWZlcmVuY2UgdXJsIGZvciByZWZ0ZXN0cy4KKyAgIGRvY3MvdXNhZ2UKKyAg
IGRvY3MvZXhwZWN0YXRpb24KKyAgIGRvY3MvZGVzaWduCisgICBkb2NzL2ludGVybmFscwogCiAu
LiBfYHdlYi1wbGF0Zm9ybS10ZXN0cyB0ZXN0c3VpdGVgOiBodHRwczovL2dpdGh1Yi5jb20vd2Vi
LXBsYXRmb3JtLXRlc3RzL3dwdApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvZG9jcy9NYWtlZmlsZSBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL2Rv
Y3MvTWFrZWZpbGUKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGQwMmI2YzVlN2M0ZjI2
NzAzMWJkMzkwMTNjMzg4NGFiNTg1MzM4ZjguLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy93cHRydW5uZXIvZG9jcy9NYWtlZmlsZQorKysgL2Rldi9udWxsCkBAIC0xLDE3
NyArMCwwIEBACi0jIE1ha2VmaWxlIGZvciBTcGhpbnggZG9jdW1lbnRhdGlvbgotIwotCi0jIFlv
dSBjYW4gc2V0IHRoZXNlIHZhcmlhYmxlcyBmcm9tIHRoZSBjb21tYW5kIGxpbmUuCi1TUEhJTlhP
UFRTICAgID0KLVNQSElOWEJVSUxEICAgPSBzcGhpbngtYnVpbGQKLVBBUEVSICAgICAgICAgPQot
QlVJTERESVIgICAgICA9IF9idWlsZAotCi0jIFVzZXItZnJpZW5kbHkgY2hlY2sgZm9yIHNwaGlu
eC1idWlsZAotaWZlcSAoJChzaGVsbCB3aGljaCAkKFNQSElOWEJVSUxEKSA+L2Rldi9udWxsIDI+
JjE7IGVjaG8gJCQ/KSwgMSkKLSQoZXJyb3IgVGhlICckKFNQSElOWEJVSUxEKScgY29tbWFuZCB3
YXMgbm90IGZvdW5kLiBNYWtlIHN1cmUgeW91IGhhdmUgU3BoaW54IGluc3RhbGxlZCwgdGhlbiBz
ZXQgdGhlIFNQSElOWEJVSUxEIGVudmlyb25tZW50IHZhcmlhYmxlIHRvIHBvaW50IHRvIHRoZSBm
dWxsIHBhdGggb2YgdGhlICckKFNQSElOWEJVSUxEKScgZXhlY3V0YWJsZS4gQWx0ZXJuYXRpdmVs
eSB5b3UgY2FuIGFkZCB0aGUgZGlyZWN0b3J5IHdpdGggdGhlIGV4ZWN1dGFibGUgdG8geW91ciBQ
QVRILiBJZiB5b3UgZG9uJ3QgaGF2ZSBTcGhpbnggaW5zdGFsbGVkLCBncmFiIGl0IGZyb20gaHR0
cDovL3NwaGlueC1kb2Mub3JnLykKLWVuZGlmCi0KLSMgSW50ZXJuYWwgdmFyaWFibGVzLgotUEFQ
RVJPUFRfYTQgICAgID0gLUQgbGF0ZXhfcGFwZXJfc2l6ZT1hNAotUEFQRVJPUFRfbGV0dGVyID0g
LUQgbGF0ZXhfcGFwZXJfc2l6ZT1sZXR0ZXIKLUFMTFNQSElOWE9QVFMgICA9IC1kICQoQlVJTERE
SVIpL2RvY3RyZWVzICQoUEFQRVJPUFRfJChQQVBFUikpICQoU1BISU5YT1BUUykgLgotIyB0aGUg
aTE4biBidWlsZGVyIGNhbm5vdCBzaGFyZSB0aGUgZW52aXJvbm1lbnQgYW5kIGRvY3RyZWVzIHdp
dGggdGhlIG90aGVycwotSTE4TlNQSElOWE9QVFMgID0gJChQQVBFUk9QVF8kKFBBUEVSKSkgJChT
UEhJTlhPUFRTKSAuCi0KLS5QSE9OWTogaGVscCBjbGVhbiBodG1sIGRpcmh0bWwgc2luZ2xlaHRt
bCBwaWNrbGUganNvbiBodG1saGVscCBxdGhlbHAgZGV2aGVscCBlcHViIGxhdGV4IGxhdGV4cGRm
IHRleHQgbWFuIGNoYW5nZXMgbGlua2NoZWNrIGRvY3Rlc3QgZ2V0dGV4dAotCi1oZWxwOgotCUBl
Y2hvICJQbGVhc2UgdXNlIFxgbWFrZSA8dGFyZ2V0Picgd2hlcmUgPHRhcmdldD4gaXMgb25lIG9m
IgotCUBlY2hvICIgIGh0bWwgICAgICAgdG8gbWFrZSBzdGFuZGFsb25lIEhUTUwgZmlsZXMiCi0J
QGVjaG8gIiAgZGlyaHRtbCAgICB0byBtYWtlIEhUTUwgZmlsZXMgbmFtZWQgaW5kZXguaHRtbCBp
biBkaXJlY3RvcmllcyIKLQlAZWNobyAiICBzaW5nbGVodG1sIHRvIG1ha2UgYSBzaW5nbGUgbGFy
Z2UgSFRNTCBmaWxlIgotCUBlY2hvICIgIHBpY2tsZSAgICAgdG8gbWFrZSBwaWNrbGUgZmlsZXMi
Ci0JQGVjaG8gIiAganNvbiAgICAgICB0byBtYWtlIEpTT04gZmlsZXMiCi0JQGVjaG8gIiAgaHRt
bGhlbHAgICB0byBtYWtlIEhUTUwgZmlsZXMgYW5kIGEgSFRNTCBoZWxwIHByb2plY3QiCi0JQGVj
aG8gIiAgcXRoZWxwICAgICB0byBtYWtlIEhUTUwgZmlsZXMgYW5kIGEgcXRoZWxwIHByb2plY3Qi
Ci0JQGVjaG8gIiAgZGV2aGVscCAgICB0byBtYWtlIEhUTUwgZmlsZXMgYW5kIGEgRGV2aGVscCBw
cm9qZWN0IgotCUBlY2hvICIgIGVwdWIgICAgICAgdG8gbWFrZSBhbiBlcHViIgotCUBlY2hvICIg
IGxhdGV4ICAgICAgdG8gbWFrZSBMYVRlWCBmaWxlcywgeW91IGNhbiBzZXQgUEFQRVI9YTQgb3Ig
UEFQRVI9bGV0dGVyIgotCUBlY2hvICIgIGxhdGV4cGRmICAgdG8gbWFrZSBMYVRlWCBmaWxlcyBh
bmQgcnVuIHRoZW0gdGhyb3VnaCBwZGZsYXRleCIKLQlAZWNobyAiICBsYXRleHBkZmphIHRvIG1h
a2UgTGFUZVggZmlsZXMgYW5kIHJ1biB0aGVtIHRocm91Z2ggcGxhdGV4L2R2aXBkZm14IgotCUBl
Y2hvICIgIHRleHQgICAgICAgdG8gbWFrZSB0ZXh0IGZpbGVzIgotCUBlY2hvICIgIG1hbiAgICAg
ICAgdG8gbWFrZSBtYW51YWwgcGFnZXMiCi0JQGVjaG8gIiAgdGV4aW5mbyAgICB0byBtYWtlIFRl
eGluZm8gZmlsZXMiCi0JQGVjaG8gIiAgaW5mbyAgICAgICB0byBtYWtlIFRleGluZm8gZmlsZXMg
YW5kIHJ1biB0aGVtIHRocm91Z2ggbWFrZWluZm8iCi0JQGVjaG8gIiAgZ2V0dGV4dCAgICB0byBt
YWtlIFBPIG1lc3NhZ2UgY2F0YWxvZ3MiCi0JQGVjaG8gIiAgY2hhbmdlcyAgICB0byBtYWtlIGFu
IG92ZXJ2aWV3IG9mIGFsbCBjaGFuZ2VkL2FkZGVkL2RlcHJlY2F0ZWQgaXRlbXMiCi0JQGVjaG8g
IiAgeG1sICAgICAgICB0byBtYWtlIERvY3V0aWxzLW5hdGl2ZSBYTUwgZmlsZXMiCi0JQGVjaG8g
IiAgcHNldWRveG1sICB0byBtYWtlIHBzZXVkb3htbC1YTUwgZmlsZXMgZm9yIGRpc3BsYXkgcHVy
cG9zZXMiCi0JQGVjaG8gIiAgbGlua2NoZWNrICB0byBjaGVjayBhbGwgZXh0ZXJuYWwgbGlua3Mg
Zm9yIGludGVncml0eSIKLQlAZWNobyAiICBkb2N0ZXN0ICAgIHRvIHJ1biBhbGwgZG9jdGVzdHMg
ZW1iZWRkZWQgaW4gdGhlIGRvY3VtZW50YXRpb24gKGlmIGVuYWJsZWQpIgotCi1jbGVhbjoKLQly
bSAtcmYgJChCVUlMRERJUikvKgotCi1odG1sOgotCSQoU1BISU5YQlVJTEQpIC1iIGh0bWwgJChB
TExTUEhJTlhPUFRTKSAkKEJVSUxERElSKS9odG1sCi0JQGVjaG8KLQlAZWNobyAiQnVpbGQgZmlu
aXNoZWQuIFRoZSBIVE1MIHBhZ2VzIGFyZSBpbiAkKEJVSUxERElSKS9odG1sLiIKLQotZGlyaHRt
bDoKLQkkKFNQSElOWEJVSUxEKSAtYiBkaXJodG1sICQoQUxMU1BISU5YT1BUUykgJChCVUlMRERJ
UikvZGlyaHRtbAotCUBlY2hvCi0JQGVjaG8gIkJ1aWxkIGZpbmlzaGVkLiBUaGUgSFRNTCBwYWdl
cyBhcmUgaW4gJChCVUlMRERJUikvZGlyaHRtbC4iCi0KLXNpbmdsZWh0bWw6Ci0JJChTUEhJTlhC
VUlMRCkgLWIgc2luZ2xlaHRtbCAkKEFMTFNQSElOWE9QVFMpICQoQlVJTERESVIpL3NpbmdsZWh0
bWwKLQlAZWNobwotCUBlY2hvICJCdWlsZCBmaW5pc2hlZC4gVGhlIEhUTUwgcGFnZSBpcyBpbiAk
KEJVSUxERElSKS9zaW5nbGVodG1sLiIKLQotcGlja2xlOgotCSQoU1BISU5YQlVJTEQpIC1iIHBp
Y2tsZSAkKEFMTFNQSElOWE9QVFMpICQoQlVJTERESVIpL3BpY2tsZQotCUBlY2hvCi0JQGVjaG8g
IkJ1aWxkIGZpbmlzaGVkOyBub3cgeW91IGNhbiBwcm9jZXNzIHRoZSBwaWNrbGUgZmlsZXMuIgot
Ci1qc29uOgotCSQoU1BISU5YQlVJTEQpIC1iIGpzb24gJChBTExTUEhJTlhPUFRTKSAkKEJVSUxE
RElSKS9qc29uCi0JQGVjaG8KLQlAZWNobyAiQnVpbGQgZmluaXNoZWQ7IG5vdyB5b3UgY2FuIHBy
b2Nlc3MgdGhlIEpTT04gZmlsZXMuIgotCi1odG1saGVscDoKLQkkKFNQSElOWEJVSUxEKSAtYiBo
dG1saGVscCAkKEFMTFNQSElOWE9QVFMpICQoQlVJTERESVIpL2h0bWxoZWxwCi0JQGVjaG8KLQlA
ZWNobyAiQnVpbGQgZmluaXNoZWQ7IG5vdyB5b3UgY2FuIHJ1biBIVE1MIEhlbHAgV29ya3Nob3Ag
d2l0aCB0aGUiIFwKLQkgICAgICAiLmhocCBwcm9qZWN0IGZpbGUgaW4gJChCVUlMRERJUikvaHRt
bGhlbHAuIgotCi1xdGhlbHA6Ci0JJChTUEhJTlhCVUlMRCkgLWIgcXRoZWxwICQoQUxMU1BISU5Y
T1BUUykgJChCVUlMRERJUikvcXRoZWxwCi0JQGVjaG8KLQlAZWNobyAiQnVpbGQgZmluaXNoZWQ7
IG5vdyB5b3UgY2FuIHJ1biAicWNvbGxlY3Rpb25nZW5lcmF0b3IiIHdpdGggdGhlIiBcCi0JICAg
ICAgIi5xaGNwIHByb2plY3QgZmlsZSBpbiAkKEJVSUxERElSKS9xdGhlbHAsIGxpa2UgdGhpczoi
Ci0JQGVjaG8gIiMgcWNvbGxlY3Rpb25nZW5lcmF0b3IgJChCVUlMRERJUikvcXRoZWxwL3dwdHJ1
bm5lci5xaGNwIgotCUBlY2hvICJUbyB2aWV3IHRoZSBoZWxwIGZpbGU6IgotCUBlY2hvICIjIGFz
c2lzdGFudCAtY29sbGVjdGlvbkZpbGUgJChCVUlMRERJUikvcXRoZWxwL3dwdHJ1bm5lci5xaGMi
Ci0KLWRldmhlbHA6Ci0JJChTUEhJTlhCVUlMRCkgLWIgZGV2aGVscCAkKEFMTFNQSElOWE9QVFMp
ICQoQlVJTERESVIpL2RldmhlbHAKLQlAZWNobwotCUBlY2hvICJCdWlsZCBmaW5pc2hlZC4iCi0J
QGVjaG8gIlRvIHZpZXcgdGhlIGhlbHAgZmlsZToiCi0JQGVjaG8gIiMgbWtkaXIgLXAgJCRIT01F
Ly5sb2NhbC9zaGFyZS9kZXZoZWxwL3dwdHJ1bm5lciIKLQlAZWNobyAiIyBsbiAtcyAkKEJVSUxE
RElSKS9kZXZoZWxwICQkSE9NRS8ubG9jYWwvc2hhcmUvZGV2aGVscC93cHRydW5uZXIiCi0JQGVj
aG8gIiMgZGV2aGVscCIKLQotZXB1YjoKLQkkKFNQSElOWEJVSUxEKSAtYiBlcHViICQoQUxMU1BI
SU5YT1BUUykgJChCVUlMRERJUikvZXB1YgotCUBlY2hvCi0JQGVjaG8gIkJ1aWxkIGZpbmlzaGVk
LiBUaGUgZXB1YiBmaWxlIGlzIGluICQoQlVJTERESVIpL2VwdWIuIgotCi1sYXRleDoKLQkkKFNQ
SElOWEJVSUxEKSAtYiBsYXRleCAkKEFMTFNQSElOWE9QVFMpICQoQlVJTERESVIpL2xhdGV4Ci0J
QGVjaG8KLQlAZWNobyAiQnVpbGQgZmluaXNoZWQ7IHRoZSBMYVRlWCBmaWxlcyBhcmUgaW4gJChC
VUlMRERJUikvbGF0ZXguIgotCUBlY2hvICJSdW4gXGBtYWtlJyBpbiB0aGF0IGRpcmVjdG9yeSB0
byBydW4gdGhlc2UgdGhyb3VnaCAocGRmKWxhdGV4IiBcCi0JICAgICAgIih1c2UgXGBtYWtlIGxh
dGV4cGRmJyBoZXJlIHRvIGRvIHRoYXQgYXV0b21hdGljYWxseSkuIgotCi1sYXRleHBkZjoKLQkk
KFNQSElOWEJVSUxEKSAtYiBsYXRleCAkKEFMTFNQSElOWE9QVFMpICQoQlVJTERESVIpL2xhdGV4
Ci0JQGVjaG8gIlJ1bm5pbmcgTGFUZVggZmlsZXMgdGhyb3VnaCBwZGZsYXRleC4uLiIKLQkkKE1B
S0UpIC1DICQoQlVJTERESVIpL2xhdGV4IGFsbC1wZGYKLQlAZWNobyAicGRmbGF0ZXggZmluaXNo
ZWQ7IHRoZSBQREYgZmlsZXMgYXJlIGluICQoQlVJTERESVIpL2xhdGV4LiIKLQotbGF0ZXhwZGZq
YToKLQkkKFNQSElOWEJVSUxEKSAtYiBsYXRleCAkKEFMTFNQSElOWE9QVFMpICQoQlVJTERESVIp
L2xhdGV4Ci0JQGVjaG8gIlJ1bm5pbmcgTGFUZVggZmlsZXMgdGhyb3VnaCBwbGF0ZXggYW5kIGR2
aXBkZm14Li4uIgotCSQoTUFLRSkgLUMgJChCVUlMRERJUikvbGF0ZXggYWxsLXBkZi1qYQotCUBl
Y2hvICJwZGZsYXRleCBmaW5pc2hlZDsgdGhlIFBERiBmaWxlcyBhcmUgaW4gJChCVUlMRERJUikv
bGF0ZXguIgotCi10ZXh0OgotCSQoU1BISU5YQlVJTEQpIC1iIHRleHQgJChBTExTUEhJTlhPUFRT
KSAkKEJVSUxERElSKS90ZXh0Ci0JQGVjaG8KLQlAZWNobyAiQnVpbGQgZmluaXNoZWQuIFRoZSB0
ZXh0IGZpbGVzIGFyZSBpbiAkKEJVSUxERElSKS90ZXh0LiIKLQotbWFuOgotCSQoU1BISU5YQlVJ
TEQpIC1iIG1hbiAkKEFMTFNQSElOWE9QVFMpICQoQlVJTERESVIpL21hbgotCUBlY2hvCi0JQGVj
aG8gIkJ1aWxkIGZpbmlzaGVkLiBUaGUgbWFudWFsIHBhZ2VzIGFyZSBpbiAkKEJVSUxERElSKS9t
YW4uIgotCi10ZXhpbmZvOgotCSQoU1BISU5YQlVJTEQpIC1iIHRleGluZm8gJChBTExTUEhJTlhP
UFRTKSAkKEJVSUxERElSKS90ZXhpbmZvCi0JQGVjaG8KLQlAZWNobyAiQnVpbGQgZmluaXNoZWQu
IFRoZSBUZXhpbmZvIGZpbGVzIGFyZSBpbiAkKEJVSUxERElSKS90ZXhpbmZvLiIKLQlAZWNobyAi
UnVuIFxgbWFrZScgaW4gdGhhdCBkaXJlY3RvcnkgdG8gcnVuIHRoZXNlIHRocm91Z2ggbWFrZWlu
Zm8iIFwKLQkgICAgICAiKHVzZSBcYG1ha2UgaW5mbycgaGVyZSB0byBkbyB0aGF0IGF1dG9tYXRp
Y2FsbHkpLiIKLQotaW5mbzoKLQkkKFNQSElOWEJVSUxEKSAtYiB0ZXhpbmZvICQoQUxMU1BISU5Y
T1BUUykgJChCVUlMRERJUikvdGV4aW5mbwotCUBlY2hvICJSdW5uaW5nIFRleGluZm8gZmlsZXMg
dGhyb3VnaCBtYWtlaW5mby4uLiIKLQltYWtlIC1DICQoQlVJTERESVIpL3RleGluZm8gaW5mbwot
CUBlY2hvICJtYWtlaW5mbyBmaW5pc2hlZDsgdGhlIEluZm8gZmlsZXMgYXJlIGluICQoQlVJTERE
SVIpL3RleGluZm8uIgotCi1nZXR0ZXh0OgotCSQoU1BISU5YQlVJTEQpIC1iIGdldHRleHQgJChJ
MThOU1BISU5YT1BUUykgJChCVUlMRERJUikvbG9jYWxlCi0JQGVjaG8KLQlAZWNobyAiQnVpbGQg
ZmluaXNoZWQuIFRoZSBtZXNzYWdlIGNhdGFsb2dzIGFyZSBpbiAkKEJVSUxERElSKS9sb2NhbGUu
IgotCi1jaGFuZ2VzOgotCSQoU1BISU5YQlVJTEQpIC1iIGNoYW5nZXMgJChBTExTUEhJTlhPUFRT
KSAkKEJVSUxERElSKS9jaGFuZ2VzCi0JQGVjaG8KLQlAZWNobyAiVGhlIG92ZXJ2aWV3IGZpbGUg
aXMgaW4gJChCVUlMRERJUikvY2hhbmdlcy4iCi0KLWxpbmtjaGVjazoKLQkkKFNQSElOWEJVSUxE
KSAtYiBsaW5rY2hlY2sgJChBTExTUEhJTlhPUFRTKSAkKEJVSUxERElSKS9saW5rY2hlY2sKLQlA
ZWNobwotCUBlY2hvICJMaW5rIGNoZWNrIGNvbXBsZXRlOyBsb29rIGZvciBhbnkgZXJyb3JzIGlu
IHRoZSBhYm92ZSBvdXRwdXQgIiBcCi0JICAgICAgIm9yIGluICQoQlVJTERESVIpL2xpbmtjaGVj
ay9vdXRwdXQudHh0LiIKLQotZG9jdGVzdDoKLQkkKFNQSElOWEJVSUxEKSAtYiBkb2N0ZXN0ICQo
QUxMU1BISU5YT1BUUykgJChCVUlMRERJUikvZG9jdGVzdAotCUBlY2hvICJUZXN0aW5nIG9mIGRv
Y3Rlc3RzIGluIHRoZSBzb3VyY2VzIGZpbmlzaGVkLCBsb29rIGF0IHRoZSAiIFwKLQkgICAgICAi
cmVzdWx0cyBpbiAkKEJVSUxERElSKS9kb2N0ZXN0L291dHB1dC50eHQuIgotCi14bWw6Ci0JJChT
UEhJTlhCVUlMRCkgLWIgeG1sICQoQUxMU1BISU5YT1BUUykgJChCVUlMRERJUikveG1sCi0JQGVj
aG8KLQlAZWNobyAiQnVpbGQgZmluaXNoZWQuIFRoZSBYTUwgZmlsZXMgYXJlIGluICQoQlVJTERE
SVIpL3htbC4iCi0KLXBzZXVkb3htbDoKLQkkKFNQSElOWEJVSUxEKSAtYiBwc2V1ZG94bWwgJChB
TExTUEhJTlhPUFRTKSAkKEJVSUxERElSKS9wc2V1ZG94bWwKLQlAZWNobwotCUBlY2hvICJCdWls
ZCBmaW5pc2hlZC4gVGhlIHBzZXVkby1YTUwgZmlsZXMgYXJlIGluICQoQlVJTERESVIpL3BzZXVk
b3htbC4iCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci9kb2NzL2NvbmYucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci9kb2NzL2NvbmYucHkKZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGMyZDRmZDVhYjk1MWI0NDYzNjI4OTU5NzE5MmJj
ZjNiODg2OWI4OWMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0t
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRy
dW5uZXIvZG9jcy9jb25mLnB5CisrKyAvZGV2L251bGwKQEAgLTEsMjY3ICswLDAgQEAKLSMgLSot
IGNvZGluZzogdXRmLTggLSotCi0jCi0jIHdwdHJ1bm5lciBkb2N1bWVudGF0aW9uIGJ1aWxkIGNv
bmZpZ3VyYXRpb24gZmlsZSwgY3JlYXRlZCBieQotIyBzcGhpbngtcXVpY2tzdGFydCBvbiBNb24g
TWF5IDE5IDE4OjE0OjIwIDIwMTQuCi0jCi0jIFRoaXMgZmlsZSBpcyBleGVjZmlsZSgpZCB3aXRo
IHRoZSBjdXJyZW50IGRpcmVjdG9yeSBzZXQgdG8gaXRzCi0jIGNvbnRhaW5pbmcgZGlyLgotIwot
IyBOb3RlIHRoYXQgbm90IGFsbCBwb3NzaWJsZSBjb25maWd1cmF0aW9uIHZhbHVlcyBhcmUgcHJl
c2VudCBpbiB0aGlzCi0jIGF1dG9nZW5lcmF0ZWQgZmlsZS4KLSMKLSMgQWxsIGNvbmZpZ3VyYXRp
b24gdmFsdWVzIGhhdmUgYSBkZWZhdWx0OyB2YWx1ZXMgdGhhdCBhcmUgY29tbWVudGVkIG91dAot
IyBzZXJ2ZSB0byBzaG93IHRoZSBkZWZhdWx0LgotCi0jaW1wb3J0IHN5cwotI2ltcG9ydCBvcwot
Ci0jIElmIGV4dGVuc2lvbnMgKG9yIG1vZHVsZXMgdG8gZG9jdW1lbnQgd2l0aCBhdXRvZG9jKSBh
cmUgaW4gYW5vdGhlciBkaXJlY3RvcnksCi0jIGFkZCB0aGVzZSBkaXJlY3RvcmllcyB0byBzeXMu
cGF0aCBoZXJlLiBJZiB0aGUgZGlyZWN0b3J5IGlzIHJlbGF0aXZlIHRvIHRoZQotIyBkb2N1bWVu
dGF0aW9uIHJvb3QsIHVzZSBvcy5wYXRoLmFic3BhdGggdG8gbWFrZSBpdCBhYnNvbHV0ZSwgbGlr
ZSBzaG93biBoZXJlLgotI3N5cy5wYXRoLmluc2VydCgwLCBvcy5wYXRoLmFic3BhdGgoJy4nKSkK
LQotIyAtLSBHZW5lcmFsIGNvbmZpZ3VyYXRpb24gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0KLSMgSWYgeW91ciBkb2N1bWVudGF0aW9uIG5lZWRzIGEg
bWluaW1hbCBTcGhpbnggdmVyc2lvbiwgc3RhdGUgaXQgaGVyZS4KLSNuZWVkc19zcGhpbnggPSAn
MS4wJwotCi0jIEFkZCBhbnkgU3BoaW54IGV4dGVuc2lvbiBtb2R1bGUgbmFtZXMgaGVyZSwgYXMg
c3RyaW5ncy4gVGhleSBjYW4gYmUKLSMgZXh0ZW5zaW9ucyBjb21pbmcgd2l0aCBTcGhpbnggKG5h
bWVkICdzcGhpbnguZXh0LionKSBvciB5b3VyIGN1c3RvbQotIyBvbmVzLgotZXh0ZW5zaW9ucyA9
IFsKLSAgICAnc3BoaW54LmV4dC5hdXRvZG9jJywKLSAgICAnc3BoaW54LmV4dC5pbnRlcnNwaGlu
eCcsCi0gICAgJ3NwaGlueC5leHQudmlld2NvZGUnLAotXQotCi0jIEFkZCBhbnkgcGF0aHMgdGhh
dCBjb250YWluIHRlbXBsYXRlcyBoZXJlLCByZWxhdGl2ZSB0byB0aGlzIGRpcmVjdG9yeS4KLXRl
bXBsYXRlc19wYXRoID0gWydfdGVtcGxhdGVzJ10KLQotIyBUaGUgc3VmZml4IG9mIHNvdXJjZSBm
aWxlbmFtZXMuCi1zb3VyY2Vfc3VmZml4ID0gJy5yc3QnCi0KLSMgVGhlIGVuY29kaW5nIG9mIHNv
dXJjZSBmaWxlcy4KLSNzb3VyY2VfZW5jb2RpbmcgPSAndXRmLTgtc2lnJwotCi0jIFRoZSBtYXN0
ZXIgdG9jdHJlZSBkb2N1bWVudC4KLW1hc3Rlcl9kb2MgPSAnaW5kZXgnCi0KLSMgR2VuZXJhbCBp
bmZvcm1hdGlvbiBhYm91dCB0aGUgcHJvamVjdC4KLXByb2plY3QgPSB1J3dwdHJ1bm5lcicKLWNv
cHlyaWdodCA9IHUnJwotCi0jIFRoZSB2ZXJzaW9uIGluZm8gZm9yIHRoZSBwcm9qZWN0IHlvdSdy
ZSBkb2N1bWVudGluZywgYWN0cyBhcyByZXBsYWNlbWVudCBmb3IKLSMgfHZlcnNpb258IGFuZCB8
cmVsZWFzZXwsIGFsc28gdXNlZCBpbiB2YXJpb3VzIG90aGVyIHBsYWNlcyB0aHJvdWdob3V0IHRo
ZQotIyBidWlsdCBkb2N1bWVudHMuCi0jCi0jIFRoZSBzaG9ydCBYLlkgdmVyc2lvbi4KLXZlcnNp
b24gPSAnMC4zJwotIyBUaGUgZnVsbCB2ZXJzaW9uLCBpbmNsdWRpbmcgYWxwaGEvYmV0YS9yYyB0
YWdzLgotcmVsZWFzZSA9ICcwLjMnCi0KLSMgVGhlIGxhbmd1YWdlIGZvciBjb250ZW50IGF1dG9n
ZW5lcmF0ZWQgYnkgU3BoaW54LiBSZWZlciB0byBkb2N1bWVudGF0aW9uCi0jIGZvciBhIGxpc3Qg
b2Ygc3VwcG9ydGVkIGxhbmd1YWdlcy4KLSNsYW5ndWFnZSA9IE5vbmUKLQotIyBUaGVyZSBhcmUg
dHdvIG9wdGlvbnMgZm9yIHJlcGxhY2luZyB8dG9kYXl8OiBlaXRoZXIsIHlvdSBzZXQgdG9kYXkg
dG8gc29tZQotIyBub24tZmFsc2UgdmFsdWUsIHRoZW4gaXQgaXMgdXNlZDoKLSN0b2RheSA9ICcn
Ci0jIEVsc2UsIHRvZGF5X2ZtdCBpcyB1c2VkIGFzIHRoZSBmb3JtYXQgZm9yIGEgc3RyZnRpbWUg
Y2FsbC4KLSN0b2RheV9mbXQgPSAnJUIgJWQsICVZJwotCi0jIExpc3Qgb2YgcGF0dGVybnMsIHJl
bGF0aXZlIHRvIHNvdXJjZSBkaXJlY3RvcnksIHRoYXQgbWF0Y2ggZmlsZXMgYW5kCi0jIGRpcmVj
dG9yaWVzIHRvIGlnbm9yZSB3aGVuIGxvb2tpbmcgZm9yIHNvdXJjZSBmaWxlcy4KLWV4Y2x1ZGVf
cGF0dGVybnMgPSBbJ19idWlsZCddCi0KLSMgVGhlIHJlU1QgZGVmYXVsdCByb2xlICh1c2VkIGZv
ciB0aGlzIG1hcmt1cDogYHRleHRgKSB0byB1c2UgZm9yIGFsbAotIyBkb2N1bWVudHMuCi0jZGVm
YXVsdF9yb2xlID0gTm9uZQotCi0jIElmIHRydWUsICcoKScgd2lsbCBiZSBhcHBlbmRlZCB0byA6
ZnVuYzogZXRjLiBjcm9zcy1yZWZlcmVuY2UgdGV4dC4KLSNhZGRfZnVuY3Rpb25fcGFyZW50aGVz
ZXMgPSBUcnVlCi0KLSMgSWYgdHJ1ZSwgdGhlIGN1cnJlbnQgbW9kdWxlIG5hbWUgd2lsbCBiZSBw
cmVwZW5kZWQgdG8gYWxsIGRlc2NyaXB0aW9uCi0jIHVuaXQgdGl0bGVzIChzdWNoIGFzIC4uIGZ1
bmN0aW9uOjopLgotI2FkZF9tb2R1bGVfbmFtZXMgPSBUcnVlCi0KLSMgSWYgdHJ1ZSwgc2VjdGlv
bmF1dGhvciBhbmQgbW9kdWxlYXV0aG9yIGRpcmVjdGl2ZXMgd2lsbCBiZSBzaG93biBpbiB0aGUK
LSMgb3V0cHV0LiBUaGV5IGFyZSBpZ25vcmVkIGJ5IGRlZmF1bHQuCi0jc2hvd19hdXRob3JzID0g
RmFsc2UKLQotIyBUaGUgbmFtZSBvZiB0aGUgUHlnbWVudHMgKHN5bnRheCBoaWdobGlnaHRpbmcp
IHN0eWxlIHRvIHVzZS4KLXB5Z21lbnRzX3N0eWxlID0gJ3NwaGlueCcKLQotIyBBIGxpc3Qgb2Yg
aWdub3JlZCBwcmVmaXhlcyBmb3IgbW9kdWxlIGluZGV4IHNvcnRpbmcuCi0jbW9kaW5kZXhfY29t
bW9uX3ByZWZpeCA9IFtdCi0KLSMgSWYgdHJ1ZSwga2VlcCB3YXJuaW5ncyBhcyAic3lzdGVtIG1l
c3NhZ2UiIHBhcmFncmFwaHMgaW4gdGhlIGJ1aWx0IGRvY3VtZW50cy4KLSNrZWVwX3dhcm5pbmdz
ID0gRmFsc2UKLQotCi0jIC0tIE9wdGlvbnMgZm9yIEhUTUwgb3V0cHV0IC0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLQotIyBUaGUgdGhlbWUgdG8gdXNlIGZv
ciBIVE1MIGFuZCBIVE1MIEhlbHAgcGFnZXMuICBTZWUgdGhlIGRvY3VtZW50YXRpb24gZm9yCi0j
IGEgbGlzdCBvZiBidWlsdGluIHRoZW1lcy4KLWh0bWxfdGhlbWUgPSAnZGVmYXVsdCcKLQotIyBU
aGVtZSBvcHRpb25zIGFyZSB0aGVtZS1zcGVjaWZpYyBhbmQgY3VzdG9taXplIHRoZSBsb29rIGFu
ZCBmZWVsIG9mIGEgdGhlbWUKLSMgZnVydGhlci4gIEZvciBhIGxpc3Qgb2Ygb3B0aW9ucyBhdmFp
bGFibGUgZm9yIGVhY2ggdGhlbWUsIHNlZSB0aGUKLSMgZG9jdW1lbnRhdGlvbi4KLSNodG1sX3Ro
ZW1lX29wdGlvbnMgPSB7fQotCi0jIEFkZCBhbnkgcGF0aHMgdGhhdCBjb250YWluIGN1c3RvbSB0
aGVtZXMgaGVyZSwgcmVsYXRpdmUgdG8gdGhpcyBkaXJlY3RvcnkuCi0jaHRtbF90aGVtZV9wYXRo
ID0gW10KLQotIyBUaGUgbmFtZSBmb3IgdGhpcyBzZXQgb2YgU3BoaW54IGRvY3VtZW50cy4gIElm
IE5vbmUsIGl0IGRlZmF1bHRzIHRvCi0jICI8cHJvamVjdD4gdjxyZWxlYXNlPiBkb2N1bWVudGF0
aW9uIi4KLSNodG1sX3RpdGxlID0gTm9uZQotCi0jIEEgc2hvcnRlciB0aXRsZSBmb3IgdGhlIG5h
dmlnYXRpb24gYmFyLiAgRGVmYXVsdCBpcyB0aGUgc2FtZSBhcyBodG1sX3RpdGxlLgotI2h0bWxf
c2hvcnRfdGl0bGUgPSBOb25lCi0KLSMgVGhlIG5hbWUgb2YgYW4gaW1hZ2UgZmlsZSAocmVsYXRp
dmUgdG8gdGhpcyBkaXJlY3RvcnkpIHRvIHBsYWNlIGF0IHRoZSB0b3AKLSMgb2YgdGhlIHNpZGVi
YXIuCi0jaHRtbF9sb2dvID0gTm9uZQotCi0jIFRoZSBuYW1lIG9mIGFuIGltYWdlIGZpbGUgKHdp
dGhpbiB0aGUgc3RhdGljIHBhdGgpIHRvIHVzZSBhcyBmYXZpY29uIG9mIHRoZQotIyBkb2NzLiAg
VGhpcyBmaWxlIHNob3VsZCBiZSBhIFdpbmRvd3MgaWNvbiBmaWxlICguaWNvKSBiZWluZyAxNngx
NiBvciAzMngzMgotIyBwaXhlbHMgbGFyZ2UuCi0jaHRtbF9mYXZpY29uID0gTm9uZQotCi0jIEFk
ZCBhbnkgcGF0aHMgdGhhdCBjb250YWluIGN1c3RvbSBzdGF0aWMgZmlsZXMgKHN1Y2ggYXMgc3R5
bGUgc2hlZXRzKSBoZXJlLAotIyByZWxhdGl2ZSB0byB0aGlzIGRpcmVjdG9yeS4gVGhleSBhcmUg
Y29waWVkIGFmdGVyIHRoZSBidWlsdGluIHN0YXRpYyBmaWxlcywKLSMgc28gYSBmaWxlIG5hbWVk
ICJkZWZhdWx0LmNzcyIgd2lsbCBvdmVyd3JpdGUgdGhlIGJ1aWx0aW4gImRlZmF1bHQuY3NzIi4K
LWh0bWxfc3RhdGljX3BhdGggPSBbJ19zdGF0aWMnXQotCi0jIEFkZCBhbnkgZXh0cmEgcGF0aHMg
dGhhdCBjb250YWluIGN1c3RvbSBmaWxlcyAoc3VjaCBhcyByb2JvdHMudHh0IG9yCi0jIC5odGFj
Y2VzcykgaGVyZSwgcmVsYXRpdmUgdG8gdGhpcyBkaXJlY3RvcnkuIFRoZXNlIGZpbGVzIGFyZSBj
b3BpZWQKLSMgZGlyZWN0bHkgdG8gdGhlIHJvb3Qgb2YgdGhlIGRvY3VtZW50YXRpb24uCi0jaHRt
bF9leHRyYV9wYXRoID0gW10KLQotIyBJZiBub3QgJycsIGEgJ0xhc3QgdXBkYXRlZCBvbjonIHRp
bWVzdGFtcCBpcyBpbnNlcnRlZCBhdCBldmVyeSBwYWdlIGJvdHRvbSwKLSMgdXNpbmcgdGhlIGdp
dmVuIHN0cmZ0aW1lIGZvcm1hdC4KLSNodG1sX2xhc3RfdXBkYXRlZF9mbXQgPSAnJWIgJWQsICVZ
JwotCi0jIElmIHRydWUsIFNtYXJ0eVBhbnRzIHdpbGwgYmUgdXNlZCB0byBjb252ZXJ0IHF1b3Rl
cyBhbmQgZGFzaGVzIHRvCi0jIHR5cG9ncmFwaGljYWxseSBjb3JyZWN0IGVudGl0aWVzLgotI2h0
bWxfdXNlX3NtYXJ0eXBhbnRzID0gVHJ1ZQotCi0jIEN1c3RvbSBzaWRlYmFyIHRlbXBsYXRlcywg
bWFwcyBkb2N1bWVudCBuYW1lcyB0byB0ZW1wbGF0ZSBuYW1lcy4KLSNodG1sX3NpZGViYXJzID0g
e30KLQotIyBBZGRpdGlvbmFsIHRlbXBsYXRlcyB0aGF0IHNob3VsZCBiZSByZW5kZXJlZCB0byBw
YWdlcywgbWFwcyBwYWdlIG5hbWVzIHRvCi0jIHRlbXBsYXRlIG5hbWVzLgotI2h0bWxfYWRkaXRp
b25hbF9wYWdlcyA9IHt9Ci0KLSMgSWYgZmFsc2UsIG5vIG1vZHVsZSBpbmRleCBpcyBnZW5lcmF0
ZWQuCi0jaHRtbF9kb21haW5faW5kaWNlcyA9IFRydWUKLQotIyBJZiBmYWxzZSwgbm8gaW5kZXgg
aXMgZ2VuZXJhdGVkLgotI2h0bWxfdXNlX2luZGV4ID0gVHJ1ZQotCi0jIElmIHRydWUsIHRoZSBp
bmRleCBpcyBzcGxpdCBpbnRvIGluZGl2aWR1YWwgcGFnZXMgZm9yIGVhY2ggbGV0dGVyLgotI2h0
bWxfc3BsaXRfaW5kZXggPSBGYWxzZQotCi0jIElmIHRydWUsIGxpbmtzIHRvIHRoZSByZVNUIHNv
dXJjZXMgYXJlIGFkZGVkIHRvIHRoZSBwYWdlcy4KLSNodG1sX3Nob3dfc291cmNlbGluayA9IFRy
dWUKLQotIyBJZiB0cnVlLCAiQ3JlYXRlZCB1c2luZyBTcGhpbngiIGlzIHNob3duIGluIHRoZSBI
VE1MIGZvb3Rlci4gRGVmYXVsdCBpcyBUcnVlLgotI2h0bWxfc2hvd19zcGhpbnggPSBUcnVlCi0K
LSMgSWYgdHJ1ZSwgIihDKSBDb3B5cmlnaHQgLi4uIiBpcyBzaG93biBpbiB0aGUgSFRNTCBmb290
ZXIuIERlZmF1bHQgaXMgVHJ1ZS4KLSNodG1sX3Nob3dfY29weXJpZ2h0ID0gVHJ1ZQotCi0jIElm
IHRydWUsIGFuIE9wZW5TZWFyY2ggZGVzY3JpcHRpb24gZmlsZSB3aWxsIGJlIG91dHB1dCwgYW5k
IGFsbCBwYWdlcyB3aWxsCi0jIGNvbnRhaW4gYSA8bGluaz4gdGFnIHJlZmVycmluZyB0byBpdC4g
IFRoZSB2YWx1ZSBvZiB0aGlzIG9wdGlvbiBtdXN0IGJlIHRoZQotIyBiYXNlIFVSTCBmcm9tIHdo
aWNoIHRoZSBmaW5pc2hlZCBIVE1MIGlzIHNlcnZlZC4KLSNodG1sX3VzZV9vcGVuc2VhcmNoID0g
JycKLQotIyBUaGlzIGlzIHRoZSBmaWxlIG5hbWUgc3VmZml4IGZvciBIVE1MIGZpbGVzIChlLmcu
ICIueGh0bWwiKS4KLSNodG1sX2ZpbGVfc3VmZml4ID0gTm9uZQotCi0jIE91dHB1dCBmaWxlIGJh
c2UgbmFtZSBmb3IgSFRNTCBoZWxwIGJ1aWxkZXIuCi1odG1saGVscF9iYXNlbmFtZSA9ICd3cHRy
dW5uZXJkb2MnCi0KLQotIyAtLSBPcHRpb25zIGZvciBMYVRlWCBvdXRwdXQgLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0KLWxhdGV4X2VsZW1lbnRzID0gewot
ICAgICMgVGhlIHBhcGVyIHNpemUgKCdsZXR0ZXJwYXBlcicgb3IgJ2E0cGFwZXInKS4KLSAgICAj
J3BhcGVyc2l6ZSc6ICdsZXR0ZXJwYXBlcicsCi0KLSAgICAjIFRoZSBmb250IHNpemUgKCcxMHB0
JywgJzExcHQnIG9yICcxMnB0JykuCi0gICAgIydwb2ludHNpemUnOiAnMTBwdCcsCi0KLSAgICAj
IEFkZGl0aW9uYWwgc3R1ZmYgZm9yIHRoZSBMYVRlWCBwcmVhbWJsZS4KLSAgICAjJ3ByZWFtYmxl
JzogJycsCi19Ci0KLSMgR3JvdXBpbmcgdGhlIGRvY3VtZW50IHRyZWUgaW50byBMYVRlWCBmaWxl
cy4gTGlzdCBvZiB0dXBsZXMKLSMgKHNvdXJjZSBzdGFydCBmaWxlLCB0YXJnZXQgbmFtZSwgdGl0
bGUsCi0jICBhdXRob3IsIGRvY3VtZW50Y2xhc3MgW2hvd3RvLCBtYW51YWwsIG9yIG93biBjbGFz
c10pLgotbGF0ZXhfZG9jdW1lbnRzID0gWwotICAgICgnaW5kZXgnLCAnd3B0cnVubmVyLnRleCcs
IHUnd3B0cnVubmVyIERvY3VtZW50YXRpb24nLAotICAgICB1J0phbWVzIEdyYWhhbScsICdtYW51
YWwnKSwKLV0KLQotIyBUaGUgbmFtZSBvZiBhbiBpbWFnZSBmaWxlIChyZWxhdGl2ZSB0byB0aGlz
IGRpcmVjdG9yeSkgdG8gcGxhY2UgYXQgdGhlIHRvcCBvZgotIyB0aGUgdGl0bGUgcGFnZS4KLSNs
YXRleF9sb2dvID0gTm9uZQotCi0jIEZvciAibWFudWFsIiBkb2N1bWVudHMsIGlmIHRoaXMgaXMg
dHJ1ZSwgdGhlbiB0b3BsZXZlbCBoZWFkaW5ncyBhcmUgcGFydHMsCi0jIG5vdCBjaGFwdGVycy4K
LSNsYXRleF91c2VfcGFydHMgPSBGYWxzZQotCi0jIElmIHRydWUsIHNob3cgcGFnZSByZWZlcmVu
Y2VzIGFmdGVyIGludGVybmFsIGxpbmtzLgotI2xhdGV4X3Nob3dfcGFnZXJlZnMgPSBGYWxzZQot
Ci0jIElmIHRydWUsIHNob3cgVVJMIGFkZHJlc3NlcyBhZnRlciBleHRlcm5hbCBsaW5rcy4KLSNs
YXRleF9zaG93X3VybHMgPSBGYWxzZQotCi0jIERvY3VtZW50cyB0byBhcHBlbmQgYXMgYW4gYXBw
ZW5kaXggdG8gYWxsIG1hbnVhbHMuCi0jbGF0ZXhfYXBwZW5kaWNlcyA9IFtdCi0KLSMgSWYgZmFs
c2UsIG5vIG1vZHVsZSBpbmRleCBpcyBnZW5lcmF0ZWQuCi0jbGF0ZXhfZG9tYWluX2luZGljZXMg
PSBUcnVlCi0KLQotIyAtLSBPcHRpb25zIGZvciBtYW51YWwgcGFnZSBvdXRwdXQgLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0KLSMgT25lIGVudHJ5IHBlciBtYW51YWwg
cGFnZS4gTGlzdCBvZiB0dXBsZXMKLSMgKHNvdXJjZSBzdGFydCBmaWxlLCBuYW1lLCBkZXNjcmlw
dGlvbiwgYXV0aG9ycywgbWFudWFsIHNlY3Rpb24pLgotbWFuX3BhZ2VzID0gWwotICAgICgnaW5k
ZXgnLCAnd3B0cnVubmVyJywgdSd3cHRydW5uZXIgRG9jdW1lbnRhdGlvbicsCi0gICAgIFt1J0ph
bWVzIEdyYWhhbSddLCAxKQotXQotCi0jIElmIHRydWUsIHNob3cgVVJMIGFkZHJlc3NlcyBhZnRl
ciBleHRlcm5hbCBsaW5rcy4KLSNtYW5fc2hvd191cmxzID0gRmFsc2UKLQotCi0jIC0tIE9wdGlv
bnMgZm9yIFRleGluZm8gb3V0cHV0IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0KLQotIyBHcm91cGluZyB0aGUgZG9jdW1lbnQgdHJlZSBpbnRvIFRleGluZm8gZmls
ZXMuIExpc3Qgb2YgdHVwbGVzCi0jIChzb3VyY2Ugc3RhcnQgZmlsZSwgdGFyZ2V0IG5hbWUsIHRp
dGxlLCBhdXRob3IsCi0jICBkaXIgbWVudSBlbnRyeSwgZGVzY3JpcHRpb24sIGNhdGVnb3J5KQot
dGV4aW5mb19kb2N1bWVudHMgPSBbCi0gICAgKCdpbmRleCcsICd3cHRydW5uZXInLCB1J3dwdHJ1
bm5lciBEb2N1bWVudGF0aW9uJywKLSAgICAgdSdKYW1lcyBHcmFoYW0nLCAnd3B0cnVubmVyJywg
J09uZSBsaW5lIGRlc2NyaXB0aW9uIG9mIHByb2plY3QuJywKLSAgICAgJ01pc2NlbGxhbmVvdXMn
KSwKLV0KLQotIyBEb2N1bWVudHMgdG8gYXBwZW5kIGFzIGFuIGFwcGVuZGl4IHRvIGFsbCBtYW51
YWxzLgotI3RleGluZm9fYXBwZW5kaWNlcyA9IFtdCi0KLSMgSWYgZmFsc2UsIG5vIG1vZHVsZSBp
bmRleCBpcyBnZW5lcmF0ZWQuCi0jdGV4aW5mb19kb21haW5faW5kaWNlcyA9IFRydWUKLQotIyBI
b3cgdG8gZGlzcGxheSBVUkwgYWRkcmVzc2VzOiAnZm9vdG5vdGUnLCAnbm8nLCBvciAnaW5saW5l
Jy4KLSN0ZXhpbmZvX3Nob3dfdXJscyA9ICdmb290bm90ZScKLQotIyBJZiB0cnVlLCBkbyBub3Qg
Z2VuZXJhdGUgYSBAZGV0YWlsbWVudSBpbiB0aGUgIlRvcCIgbm9kZSdzIG1lbnUuCi0jdGV4aW5m
b19ub19kZXRhaWxtZW51ID0gRmFsc2UKLQotCi0jIEV4YW1wbGUgY29uZmlndXJhdGlvbiBmb3Ig
aW50ZXJzcGhpbng6IHJlZmVyIHRvIHRoZSBQeXRob24gc3RhbmRhcmQgbGlicmFyeS4KLWludGVy
c3BoaW54X21hcHBpbmcgPSB7J3B5dGhvbic6ICgnaHR0cDovL2RvY3MucHl0aG9uLm9yZy8nLCBO
b25lKSwKLSAgICAgICAgICAgICAgICAgICAgICAgJ21vemxvZyc6ICgnaHR0cHM6Ly9maXJlZm94
LXNvdXJjZS1kb2NzLm1vemlsbGEub3JnLycsIE5vbmUpfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvZG9jcy9k
ZXNpZ24ucnN0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy93cHRydW5uZXIvZG9jcy9kZXNpZ24ucnN0CmluZGV4IGJmMTA4YTAwODdkYTBjNmVjMTIz
MTY5YzcxNTg2ZjZjZTNiZmJhNzIuLjMwZjgyNzExYTU5ZDc2MGQ3MGFkNjk2NWM1ZjUxN2VmYzQy
ZjZiMGMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvd3B0cnVubmVyL2RvY3MvZGVzaWduLnJzdAorKysgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci9kb2NzL2Rlc2ln
bi5yc3QKQEAgLTE1LDcgKzE1LDcgQEAgcmVxdWlyZW1lbnRzOgogICAgb2YgYW4gYGBpZnJhbWVg
YCB0ZXN0IGNvbnRhaW5lci4KIAogICogSXQgbXVzdCBiZSBwb3NzaWJsZSB0byBkZWFsIHdpdGgg
YWxsIGtpbmRzIG9mIGJlaGF2aW91ciBvZiB0aGUKLSAgIGJyb3dzZXIgcnVuZGVyIHRlc3QsIGZv
ciBleGFtcGxlLCBjcmFzaGluZywgaGFuZ2luZywgZXRjLgorICAgYnJvd3NlciB1bmRlciB0ZXN0
LCBmb3IgZXhhbXBsZSwgY3Jhc2hpbmcsIGhhbmdpbmcsIGV0Yy4KIAogICogSXQgc2hvdWxkIGJl
IHBvc3NpYmxlIHRvIGFkZCBzdXBwb3J0IGZvciBuZXcgcGxhdGZvcm1zIGFuZCBicm93c2Vycwog
ICAgd2l0aCBtaW5pbWFsIGNvZGUgY2hhbmdlcy4KQEAgLTQzLDY0ICs0Myw2NiBAQCBUaGUgb3Zl
cmFsbCBhcmNoaXRlY3R1cmUgb2Ygd3B0cnVubmVyIGlzIHNob3duIGluIHRoZSBkaWFncmFtIGJl
bG93OgogCiAuLiBpbWFnZTo6IGFyY2hpdGVjdHVyZS5zdmcKIAotVGhlIG1haW4gZW50cnkgcG9p
bnQgdG8gdGhlIGNvZGUgaXMgOnB5OmZ1bmM6YHJ1bl90ZXN0c2AgaW4KKy4uIGN1cnJlbnRtb2R1
bGU6OiB3cHRydW5uZXIKKworVGhlIG1haW4gZW50cnkgcG9pbnQgdG8gdGhlIGNvZGUgaXMgOnB5
OmZ1bmM6YH53cHRydW5uZXIucnVuX3Rlc3RzYCBpbgogYGB3cHRydW5uZXIucHlgYC4gVGhpcyBp
cyByZXNwb25zaWJsZSBmb3Igc2V0dGluZyB1cCB0aGUgdGVzdAogZW52aXJvbm1lbnQsIGxvYWRp
bmcgdGhlIGxpc3Qgb2YgdGVzdHMgdG8gYmUgZXhlY3V0ZWQsIGFuZCBpbnZva2luZwogdGhlIHJl
bWFpbmRlciBvZiB0aGUgY29kZSB0byBhY3R1YWxseSBleGVjdXRlIHNvbWUgdGVzdHMuCiAKIFRo
ZSB0ZXN0IGVudmlyb25tZW50IGlzIGVuY2Fwc3VsYXRlZCBpbiB0aGUKLTpweTpjbGFzczpgVGVz
dEVudmlyb25tZW50YCBjbGFzcy4gVGhpcyBkZWZlcnMgdG8gY29kZSBpbgorOnB5OmNsYXNzOmB+
ZW52aXJvbm1lbnQuVGVzdEVudmlyb25tZW50YCBjbGFzcy4gVGhpcyBkZWZlcnMgdG8gY29kZSBp
bgogYGB3ZWItcGxhdGZvcm0tdGVzdHNgYCB3aGljaCBhY3R1YWxseSBzdGFydHMgdGhlIHJlcXVp
cmVkIHNlcnZlcnMgdG8KIHJ1biB0aGUgdGVzdHMuCiAKIFRoZSBzZXQgb2YgdGVzdHMgdG8gcnVu
IGlzIGRlZmluZWQgYnkgdGhlCi06cHk6Y2xhc3M6YFRlc3RMb2FkZXJgLiBUaGlzIGlzIGNvbnN0
cnVjdGVkIHdpdGggYQotOnB5OmNsYXNzOmBUZXN0RmlsdGVyYCAobm90IHNob3duKSwgd2hpY2gg
dGFrZXMgYW55IGZpbHRlciBhcmd1bWVudHMKKzpweTpjbGFzczpgfnRlc3Rsb2FkZXIuVGVzdExv
YWRlcmAuIFRoaXMgaXMgY29uc3RydWN0ZWQgd2l0aCBhCis6cHk6Y2xhc3M6YH50ZXN0bG9hZGVy
LlRlc3RGaWx0ZXJgIChub3Qgc2hvd24pLCB3aGljaCB0YWtlcyBhbnkgZmlsdGVyIGFyZ3VtZW50
cwogZnJvbSB0aGUgY29tbWFuZCBsaW5lIHRvIHJlc3RyaWN0IHRoZSBzZXQgb2YgdGVzdHMgdGhh
dCB3aWxsIGJlCi1ydW4uIFRoZSA6cHk6Y2xhc3M6YFRlc3RMb2FkZXJgIHJlYWRzIGJvdGggdGhl
IGBgd2ViLXBsYXRmb3JtLXRlc3RzYGAKK3J1bi4gVGhlIDpweTpjbGFzczpgfnRlc3Rsb2FkZXIu
VGVzdExvYWRlcmAgcmVhZHMgYm90aCB0aGUgYGB3ZWItcGxhdGZvcm0tdGVzdHNgYAogSlNPTiBt
YW5pZmVzdCBhbmQgdGhlIGV4cGVjdGF0aW9uIGRhdGEgc3RvcmVkIGluIGluaSBmaWxlcyBhbmQK
IHByb2R1Y2VzIGEgOnB5OmNsYXNzOmBtdWx0aXByb2Nlc3NpbmcuUXVldWVgIG9mIHRlc3RzIHRv
IHJ1biwgYW5kCiB0aGVpciBleHBlY3RlZCByZXN1bHRzLgogCiBBY3R1YWxseSBydW5uaW5nIHRo
ZSB0ZXN0cyBoYXBwZW5zIHRocm91Z2ggdGhlCi06cHk6Y2xhc3M6YE1hbmFnZXJHcm91cGAgb2Jq
ZWN0LiBUaGlzIHRha2VzIHRoZSA6cHk6Y2xhc3M6YFF1ZXVlYCBvZgotdGVzdHMgdG8gYmUgcnVu
IGFuZCBzdGFydHMgYSA6cHk6Y2xhc3M6YHRlc3RydW5uZXIuVGVzdFJ1bm5lck1hbmFnZXJgIGZv
ciBlYWNoCis6cHk6Y2xhc3M6YH50ZXN0cnVubmVyLk1hbmFnZXJHcm91cGAgb2JqZWN0LiBUaGlz
IHRha2VzIHRoZSA6cHk6Y2xhc3M6YH5tdWx0aXByb2Nlc3NpbmcuUXVldWVgIG9mCit0ZXN0cyB0
byBiZSBydW4gYW5kIHN0YXJ0cyBhIDpweTpjbGFzczpgfnRlc3RydW5uZXIuVGVzdFJ1bm5lck1h
bmFnZXJgIGZvciBlYWNoCiBpbnN0YW5jZSBvZiB0aGUgYnJvd3NlciB1bmRlciB0ZXN0IHRoYXQg
d2lsbCBiZSBzdGFydGVkLiBUaGVzZQotOnB5OmNsYXNzOmBUZXN0UnVubmVyTWFuYWdlcmAgaW5z
dGFuY2VzIGFyZSBlYWNoIHN0YXJ0ZWQgaW4gdGhlaXIgb3duCis6cHk6Y2xhc3M6YH50ZXN0cnVu
bmVyLlRlc3RSdW5uZXJNYW5hZ2VyYCBpbnN0YW5jZXMgYXJlIGVhY2ggc3RhcnRlZCBpbiB0aGVp
ciBvd24KIHRocmVhZC4KIAotQSA6cHk6Y2xhc3M6YFRlc3RSdW5uZXJNYW5hZ2VyYCBjb29yZGlu
YXRlcyBzdGFydGluZyB0aGUgcHJvZHVjdCB1bmRlcgorQSA6cHk6Y2xhc3M6YH50ZXN0cnVubmVy
LlRlc3RSdW5uZXJNYW5hZ2VyYCBjb29yZGluYXRlcyBzdGFydGluZyB0aGUgcHJvZHVjdCB1bmRl
cgogdGVzdCwgYW5kIG91dHB1dHRpbmcgcmVzdWx0cyBmcm9tIHRoZSB0ZXN0LiBJbiB0aGUgY2Fz
ZSB0aGF0IHRoZSB0ZXN0CiBoYXMgdGltZWQgb3V0IG9yIHRoZSBicm93c2VyIGhhcyBjcmFzaGVk
LCBpdCBoYXMgdG8gcmVzdGFydCB0aGUKIGJyb3dzZXIgdG8gZW5zdXJlIHRoZSB0ZXN0IHJ1biBj
YW4gY29udGludWUuIFRoZSBmdW5jdGlvbmFsaXR5IGZvcgogaW5pdGlhbGlzaW5nIHRoZSBicm93
c2VyIHVuZGVyIHRlc3QsIGFuZCBwcm9iaW5nIGl0cyBzdGF0ZQogKGUuZy4gd2hldGhlciB0aGUg
cHJvY2VzcyBpcyBzdGlsbCBhbGl2ZSkgaXMgaW1wbGVtZW50ZWQgdGhyb3VnaCBhCi06cHk6Y2xh
c3M6YEJyb3dzZXJgIG9iamVjdC4gQW4gaW1wbGVtZW50YXRpb24gb2YgdGhpcyBjbGFzcyBtdXN0
IGJlCis6cHk6Y2xhc3M6YH5icm93c2Vycy5iYXNlLkJyb3dzZXJgIG9iamVjdC4gQW4gaW1wbGVt
ZW50YXRpb24gb2YgdGhpcyBjbGFzcyBtdXN0IGJlCiBwcm92aWRlZCBmb3IgZWFjaCBwcm9kdWN0
IHRoYXQgaXMgc3VwcG9ydGVkLgogCiBUaGUgZnVuY3Rpb25hbGl0eSBmb3IgYWN0dWFsbHkgcnVu
bmluZyB0aGUgdGVzdHMgaXMgcHJvdmlkZWQgYnkgYQotOnB5OmNsYXNzOmBUZXN0UnVubmVyYCBv
YmplY3QuIDpweTpjbGFzczpgVGVzdFJ1bm5lcmAgaW5zdGFuY2VzIGFyZQorOnB5OmNsYXNzOmB+
dGVzdHJ1bm5lci5UZXN0UnVubmVyYCBvYmplY3QuIDpweTpjbGFzczpgfnRlc3RydW5uZXIuVGVz
dFJ1bm5lcmAgaW5zdGFuY2VzIGFyZQogcnVuIGluIHRoZWlyIG93biBjaGlsZCBwcm9jZXNzIGNy
ZWF0ZWQgd2l0aCB0aGUKIDpweTptb2Q6YG11bHRpcHJvY2Vzc2luZ2AgbW9kdWxlLiBUaGlzIGFs
bG93cyB0aGVtIHRvIHJ1biBjb25jdXJyZW50bHkKIGFuZCB0byBiZSBraWxsZWQgYW5kIHJlc3Rh
cnRlZCBhcyByZXF1aXJlZC4gQ29tbXVuaWNhdGlvbiBiZXR3ZWVuIHRoZQotOnB5OmNsYXNzOmBU
ZXN0UnVubmVyTWFuYWdlcmAgYW5kIHRoZSA6cHk6Y2xhc3M6YFRlc3RSdW5uZXJgIGlzCis6cHk6
Y2xhc3M6YH50ZXN0cnVubmVyLlRlc3RSdW5uZXJNYW5hZ2VyYCBhbmQgdGhlIDpweTpjbGFzczpg
fnRlc3RydW5uZXIuVGVzdFJ1bm5lcmAgaXMKIHByb3ZpZGVkIGJ5IGEgcGFpciBvZiBxdWV1ZXMs
IG9uZSBmb3Igc2VuZGluZyBtZXNzYWdlcyBpbiBlYWNoCiBkaXJlY3Rpb24uIEluIHBhcnRpY3Vs
YXIgdGVzdCByZXN1bHRzIGFyZSBzZW50IGZyb20gdGhlCi06cHk6Y2xhc3M6YFRlc3RSdW5uZXJg
IHRvIHRoZSA6cHk6Y2xhc3M6YFRlc3RSdW5uZXJNYW5hZ2VyYCB1c2luZyBvbmUKKzpweTpjbGFz
czpgfnRlc3RydW5uZXIuVGVzdFJ1bm5lcmAgdG8gdGhlIDpweTpjbGFzczpgfnRlc3RydW5uZXIu
VGVzdFJ1bm5lck1hbmFnZXJgIHVzaW5nIG9uZQogb2YgdGhlc2UgcXVldWVzLgogCi1UaGUgOnB5
OmNsYXNzOmBUZXN0UnVubmVyYCBvYmplY3QgaXMgZ2VuZXJpYyBpbiB0aGF0IHRoZSBzYW1lCi06
cHk6Y2xhc3M6YFRlc3RSdW5uZXJgIGlzIHVzZWQgcmVnYXJkbGVzcyBvZiB0aGUgcHJvZHVjdCB1
bmRlcgorVGhlIDpweTpjbGFzczpgfnRlc3RydW5uZXIuVGVzdFJ1bm5lcmAgb2JqZWN0IGlzIGdl
bmVyaWMgaW4gdGhhdCB0aGUgc2FtZQorOnB5OmNsYXNzOmB+dGVzdHJ1bm5lci5UZXN0UnVubmVy
YCBpcyB1c2VkIHJlZ2FyZGxlc3Mgb2YgdGhlIHByb2R1Y3QgdW5kZXIKIHRlc3QuIEhvd2V2ZXIg
dGhlIGRldGFpbHMgb2YgaG93IHRvIHJ1biB0aGUgdGVzdCBtYXkgdmFyeSBncmVhdGx5IHdpdGgK
IHRoZSBwcm9kdWN0IHNpbmNlIGRpZmZlcmVudCBwcm9kdWN0cyBzdXBwb3J0IGRpZmZlcmVudCBy
ZW1vdGUgY29udHJvbAogcHJvdG9jb2xzIChvciBub25lIGF0IGFsbCkuIFRoZXNlIHByb3RvY29s
LXNwZWNpZmljIHBhcnRzIGFyZSBwbGFjZWQKLWluIHRoZSA6cHk6Y2xhc3M6YEV4ZWN1dG9yYCBv
YmplY3QuIFRoZXJlIGlzIHR5cGljYWxseSBhIGRpZmZlcmVudAotOnB5OmNsYXNzOmBFeGVjdXRv
cmAgY2xhc3MgZm9yIGVhY2ggY29tYmluYXRpb24gb2YgY29udHJvbCBwcm90b2NvbAotYW5kIHRl
c3QgdHlwZS4gVGhlIDpweTpjbGFzczpgVGVzdFJ1bm5lcmAgaXMgcmVzcG9uc2libGUgZm9yIHB1
bGxpbmcKLWVhY2ggdGVzdCBvZmYgdGhlIDpweTpjbGFzczpgUXVldWVgIG9mIHRlc3RzIGFuZCBw
YXNzaW5nIGl0IGRvd24gdG8KLXRoZSA6cHk6Y2xhc3M6YEV4ZWN1dG9yYC4KK2luIHRoZSA6cHk6
Y2xhc3M6YH5leGVjdXRvcnMuYmFzZS5UZXN0RXhlY3V0b3JgIG9iamVjdC4gVGhlcmUgaXMgdHlw
aWNhbGx5IGEgZGlmZmVyZW50Cis6cHk6Y2xhc3M6YH5leGVjdXRvcnMuYmFzZS5UZXN0RXhlY3V0
b3JgIGNsYXNzIGZvciBlYWNoIGNvbWJpbmF0aW9uIG9mIGNvbnRyb2wgcHJvdG9jb2wKK2FuZCB0
ZXN0IHR5cGUuIFRoZSA6cHk6Y2xhc3M6YH50ZXN0cnVubmVyLlRlc3RSdW5uZXJgIGlzIHJlc3Bv
bnNpYmxlIGZvciBwdWxsaW5nCitlYWNoIHRlc3Qgb2ZmIHRoZSA6cHk6Y2xhc3M6YG11bHRpcHJv
Y2Vzc2luZy5RdWV1ZWAgb2YgdGVzdHMgYW5kIHBhc3NpbmcgaXQgZG93biB0bwordGhlIDpweTpj
bGFzczpgfmV4ZWN1dG9ycy5iYXNlLlRlc3RFeGVjdXRvcmAuCiAKIFRoZSBleGVjdXRvciBvZnRl
biByZXF1aXJlcyBhY2Nlc3MgdG8gZGV0YWlscyBvZiB0aGUgcGFydGljdWxhcgogYnJvd3NlciBp
bnN0YW5jZSB0aGF0IGl0IGlzIHRlc3Rpbmcgc28gdGhhdCBpdCBrbm93cyBlLmcuIHdoaWNoIHBv
cnQKIHRvIGNvbm5lY3QgdG8gdG8gc2VuZCBjb21tYW5kcyB0byB0aGUgYnJvd3Nlci4gVGhlc2Ug
ZGV0YWlscyBhcmUKLWVuY2Fwc3VsYXRlZCBpbiB0aGUgOnB5OmNsYXNzOmBFeGVjdXRvckJyb3dz
ZXJgIGNsYXNzLgorZW5jYXBzdWxhdGVkIGluIHRoZSA6cHk6Y2xhc3M6YH5icm93c2Vycy5iYXNl
LkV4ZWN1dG9yQnJvd3NlcmAgY2xhc3MuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci9kb2NzL2V4cGVjdGF0aW9u
LnJzdCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
d3B0cnVubmVyL2RvY3MvZXhwZWN0YXRpb24ucnN0CmluZGV4IDZhMGM3NzY4NGEzYjgzYWJhODg0
MzZlODRiMzk5ZmQ4ZmI2NGUzMjUuLjc3OTM4YWJlMDNkNTVjZTE0NTcxZWMxYjRjMmI0M2QwZWQ0
YTQwOWIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvd3B0cnVubmVyL2RvY3MvZXhwZWN0YXRpb24ucnN0CisrKyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL2RvY3Mv
ZXhwZWN0YXRpb24ucnN0CkBAIC05OCw2ICs5OCwyNSBAQCB3cHR1cGRhdGUgdGFrZXMgc2V2ZXJh
bCB1c2VmdWwgb3B0aW9uczoKICAgT3ZlcndyaXRlIGFsbCB0aGUgZXhwZWN0YXRpb24gZGF0YSBm
b3IgYW55IHRlc3RzIHRoYXQgaGF2ZSBhIHJlc3VsdAogICBpbiB0aGUgcGFzc2VkIGxvZyBmaWxl
cywgbm90IGp1c3QgZGF0YSBmb3IgdGhlIHNhbWUgcGxhdGZvcm0uCiAKK2BgLS1kaXNhYmxlLWlu
dGVybWl0dGVudGBgCisgIFdoZW4gdXBkYXRpbmcgdGVzdCByZXN1bHRzLCBkaXNhYmxlIHRlc3Rz
IHRoYXQgaGF2ZSBpbmNvbnNpc3RlbnQKKyAgcmVzdWx0cyBhY3Jvc3MgbWFueSBydW5zLiBUaGlz
IGNhbiBwcmVjZWRlIGEgbWVzc2FnZSBwcm92aWRpbmcgYQorICByZWFzb24gd2h5IHRoYXQgdGVz
dCBpcyBkaXNhYmxlLiBJZiBubyBtZXNzYWdlIGlzIHByb3ZpZGVkLAorICBgYHVuc3RhYmxlYGAg
aXMgdGhlIGRlZmF1bHQgdGV4dC4KKworYGAtLXVwZGF0ZS1pbnRlcm1pdHRlbnRgYAorICBXaGVu
IHRoaXMgb3B0aW9uIGlzIHVzZWQsIHRoZSBgYGV4cGVjdGVkYGAga2V5IChzZWUgYmVsb3cpIHN0
b3JlcworICBleHBlY3RlZCBpbnRlcm1pdHRlbnQgc3RhdHVzZXMgaW4gYWRkaXRpb24gdG8gdGhl
IHByaW1hcnkgZXhwZWN0ZWQKKyAgc3RhdHVzLiBJZiB0aGVyZSBpcyBtb3JlIHRoYW4gb25lIHN0
YXR1cywgaXQgYXBwZWFycyBhcyBhIGxpc3QuIFRoZQorICBkZWZhdWx0IGJlaGF2aW91ciBvZiB0
aGlzIG9wdGlvbiBpcyB0byByZXRhaW4gYW55IGV4aXN0aW5nIGludGVybWl0dGVudAorICBzdGF0
dXNlcyBpbiB0aGUgbGlzdCB1bmxlc3MgYGAtLXJlbW92ZS1pbnRlcm1pdHRlbnRgYCBpcyBzcGVj
aWZpZWQuCisKK2BgLS1yZW1vdmUtaW50ZXJtaXR0ZW50YGAKKyAgVGhpcyBvcHRpb24gaXMgdXNl
ZCBpbiBjb25qdW5jdGlvbiB3aXRoIGBgLS11cGRhdGUtaW50ZXJtaXR0ZW50YGAuCisgIFdoZW4g
dGhlIGBgZXhwZWN0ZWRgYCBzdGF0dXNlcyBhcmUgdXBkYXRlZCwgYW55IG9ic29sZXRlIGludGVy
bWl0dGVudAorICBzdGF0dXNlcyB0aGF0IGRpZCBub3Qgb2NjdXIgaW4gdGhlIHNwZWNpZmllZCBs
b2dmaWxlcyBhcmUgcmVtb3ZlZCBmcm9tCisgIHRoZSBsaXN0LgorCiBFeGFtcGxlcwogfn5+fn5+
fn4KIApAQCAtMTQxLDYgKzE2MCwyNCBAQCBBIHNpbXBsZSBleGFtcGxlIG9mIGEgbWFuaWZlc3Qg
ZmlsZSBpczo6CiAgIFthbm90aGVyX3NlY3Rpb25dCiAgICAgYW5vdGhlcl9rZXk6IGFub3RoZXJf
dmFsdWUKIAorVGhlIHdlYi1wbGF0Zm9ybS10ZXN0IGhhcm5lc3Mga25vd3MgYWJvdXQgc2V2ZXJh
bCBrZXlzOgorCitgZXhwZWN0ZWRgCisgIE11c3QgZXZhbHVhdGUgdG8gYSBwb3NzaWJsZSB0ZXN0
IHN0YXR1cyBpbmRpY2F0aW5nIHRoZSBleHBlY3RlZAorICByZXN1bHQgb2YgdGhlIHRlc3QuIFRo
ZSBpbXBsaWNpdCBkZWZhdWx0IGlzIFBBU1Mgb3IgT0sgd2hlbiB0aGUKKyAgZmllbGQgaXNuJ3Qg
cHJlc2VudC4gV2hlbiBgZXhwZWN0ZWRgIGlzIGEgbGlzdCwgdGhlIGZpcnN0IHN0YXR1cworICBp
cyB0aGUgcHJpbWFyeSBleHBlY3RlZCBzdGF0dXMgYW5kIHRoZSB0cmFpbGluZyBzdGF0dXNlcyBs
aXN0ZWQgYXJlCisgIGV4cGVjdGVkIGludGVybWl0dGVudCBzdGF0dXNlcy4KKworYGRpc2FibGVk
YAorICBBbnkgdmFsdWUgaW5kaWNhdGVzIHRoYXQgdGhlIHRlc3QgaXMgZGlzYWJsZWQuCisKK2By
ZWZ0eXBlYAorICBUaGUgdHlwZSBvZiBjb21wYXJpc29uIGZvciByZWZ0ZXN0czsgZWl0aGVyIGA9
PWAgb3IgYCE9YC4KKworYHJlZnVybGAKKyAgVGhlIHJlZmVyZW5jZSB1cmwgZm9yIHJlZnRlc3Rz
LgorCiBDb25kaXRpb25hbCBWYWx1ZXMKIH5+fn5+fn5+fn5+fn5+fn5+fgogCkBAIC0xOTAsMTQg
KzIyNyw4IEBAIFdoZW4gdXNlZCBmb3IgZXhwZWN0YXRpb24gZGF0YSwgbWFuaWZlc3RzIGhhdmUg
dGhlIGZvbGxvd2luZyBmb3JtYXQ6CiAgKiBBIHN1YnNlY3Rpb24gcGVyIHN1YnRlc3QsIHdpdGgg
dGhlIGhlYWRpbmcgYmVpbmcgdGhlIHRpdGxlIG9mIHRoZQogICAgc3VidGVzdC4KIAotICogQSBr
ZXkgYGB0eXBlYGAgaW5kaWNhdGluZyB0aGUgdGVzdCB0eXBlLiBUaGlzIHRha2VzIHRoZSB2YWx1
ZXMKLSAgIGBgdGVzdGhhcm5lc3NgYCBhbmQgYGByZWZ0ZXN0YGAuCi0KLSAqIEZvciByZWZ0ZXN0
cywga2V5cyBgYHJlZnR5cGVgYCBpbmRpY2F0aW5nIHRoZSByZWZlcmVuY2UgdHlwZQotICAgKGBg
PT1gYCBvciBgYCE9YGApIGFuZCBgYHJlZnVybGBgIGluZGljYXRpbmcgdGhlIFVSTCBvZiB0aGUK
LSAgIHJlZmVyZW5jZS4KLQotICogQSBrZXkgYGBleHBlY3RlZGBgIGdpdmluZyB0aGUgZXhwZWN0
YXRpb24gdmFsdWUgb2YgZWFjaCAoc3ViKXRlc3QuCisgKiBBIGtleSBgYGV4cGVjdGVkYGAgZ2l2
aW5nIHRoZSBleHBlY3RhdGlvbiB2YWx1ZSBvciB2YWx1ZXMgb2YgZWFjaCAKKyAgIChzdWIpdGVz
dC4KIAogICogQSBrZXkgYGBkaXNhYmxlZGBgIHdoaWNoIGNhbiBiZSBzZXQgdG8gYW55IHZhbHVl
IHRvIGluZGljYXRlIHRoYXQKICAgIHRoZSAoc3ViKXRlc3QgaXMgZGlzYWJsZWQgYW5kIHNob3Vs
ZCBlaXRoZXIgbm90IGJlIHJ1biAoZm9yIHRlc3RzKQpAQCAtMjA3LDYgKzIzOCwxOSBAQCBXaGVu
IHVzZWQgZm9yIGV4cGVjdGF0aW9uIGRhdGEsIG1hbmlmZXN0cyBoYXZlIHRoZSBmb2xsb3dpbmcg
Zm9ybWF0OgogICAgdGhlIHJ1bm5lciBzaG91bGQgcmVzdGFydCB0aGUgYnJvd3NlciBhZnRlciBy
dW5uaW5nIHRoaXMgdGVzdCAoZS5nLiB0bwogICAgY2xlYXIgb3V0IHVud2FudGVkIHN0YXRlKS4K
IAorICogQSBrZXkgYGBmdXp6eWBgIHRoYXQgaXMgdXNlZCBmb3IgcmVmdGVzdHMuIFRoaXMgaXMg
aW50ZXJwcmV0ZWQgYXMgYQorICAgbGlzdCBjb250YWluaW5nIGVudHJpZXMgbGlrZSBgYDxtZXRh
IG5hbWU9ZnV6enk+YGAgY29udGVudCB2YWx1ZSwKKyAgIHdoaWNoIGNvbnNpc3RzIG9mIGFuIG9w
dGlvbmFsIHJlZmVyZW5jZSBpZGVudGlmaWVyIGZvbGxvd2VkIGJ5IGEKKyAgIGNvbG9uLCB0aGVu
IGEgcmFuZ2UgaW5kaWNhdGluZyB0aGUgbWF4aW11bSBwZXJtaXR0ZWQgcGl4ZWwKKyAgIGRpZmZl
cmVuY2UgcGVyIGNoYW5uZWwsIHRoZW4gc2VtaWNvbG9uLCB0aGVuIGEgcmFuZ2UgaW5kaWNhdGlu
ZyB0aGUKKyAgIG1heGltdW0gcGVybWl0dGVkIHRvdGFsIG51bWJlciBvZiBkaWZmZXJpbmcgcGl4
ZWxzLiBUaGUgcmVmZXJlbmNlCisgICBpZGVudGlmaWVyIGlzIGVpdGhlciBhIHNpbmdsZSByZWxh
dGl2ZSBVUkwsIHJlc29sdmVkIGFnYWluc3QgdGhlCisgICBiYXNlIHRlc3QgVVJMLCBpbiB3aGlj
aCBjYXNlIHRoZSBmdXp6aW5lc3MgYXBwbGllcyB0byBhbnkKKyAgIGNvbXBhcmlzb24gd2l0aCB0
aGF0IFVSTCwgb3IgdGFrZXMgdGhlIGZvcm0gbGhzIHVybCwgY29tcGFyaXNvbiwKKyAgIHJocyB1
cmwsIGluIHdoaWNoIGNhc2UgdGhlIGZ1enppbmVzcyBvbmx5IGFwcGxpZXMgZm9yIGFueQorICAg
Y29tcGFyaXNvbiBpbnZvbHZpbmcgdGhhdCBzcGVjaWZjIHBhaXIgb2YgVVJMcy4gU29tZSBpbGx1
c3RyYXRpdmUKKyAgIGV4YW1wbGVzIGFyZSBnaXZlbiBiZWxvdy4KKwogICogVmFyaWFibGVzIGBg
ZGVidWdgYCwgYGBvc2BgLCBgYHZlcnNpb25gYCwgYGBwcm9jZXNzb3JgYCBhbmQKICAgIGBgYml0
c2BgIHRoYXQgZGVzY3JpYmUgdGhlIGNvbmZpZ3VyYXRpb24gb2YgdGhlIGJyb3dzZXIgdW5kZXIK
ICAgIHRlc3QuIGBgZGVidWdgYCBpcyBhIGJvb2xlYW4gaW5kaWNhdGluZyB3aGV0aGVyIGEgYnVp
bGQgaXMgYSBkZWJ1ZwpAQCAtMjMwLDYgKzI3NCw5IEBAIEFuIHNpbXBsZSBleGFtcGxlIG1hbmlm
ZXN0IG1pZ2h0IGxvb2sgbGlrZTo6CiAgICAgW1Rlc3Qgc29tZXRoaW5nIHVuc3VwcG9ydGVkXQog
ICAgICAgIGV4cGVjdGVkOiBGQUlMCiAKKyAgICBbVGVzdCB3aXRoIGludGVybWl0dGVudCBzdGF0
dXNlc10KKyAgICAgICBleHBlY3RlZDogW1BBU1MsIFRJTUVPVVRdCisKICAgW3Rlc3QuaHRtbD92
YXJpYW50PWJyb2tlbl0KICAgICBleHBlY3RlZDogRVJST1IKIApAQCAtMjQwLDkgKzI4NywyNCBA
QCBBIG1vcmUgY29tcGxleCBtYW5pZmVzdCB3aXRoIGNvbmRpdGlvbmFsIHByb3BlcnRpZXMgbWln
aHQgYmU6OgogCiAgIFtjYW52YXNfdGVzdC5odG1sXQogICAgIGV4cGVjdGVkOgotICAgICAgaWYg
b3MgPT0gIm9zeCI6IEZBSUwKKyAgICAgIGlmIG9zID09ICJtYWMiOiBGQUlMCiAgICAgICBpZiBv
cyA9PSAid2luZG93cyIgYW5kIHZlcnNpb24gPT0gIlhQIjogRkFJTAogICAgICAgUEFTUwogCiBO
b3RlIHRoYXQgYGBQQVNTYGAgaW4gdGhlIGFib3ZlIHdvcmtzLCBidXQgaXMgdW5uZWNlc3Nhcnk7
IGBgUEFTU2BgCiAob3IgYGBPS2BgKSBpcyBhbHdheXMgdGhlIGRlZmF1bHQgZXhwZWN0YXRpb24g
Zm9yIChzdWIpdGVzdHMuCisKK0EgbWFuaWZlc3Qgd2l0aCBmdXp6eSByZWZ0ZXN0IHZhbHVlcyBt
aWdodCBiZTo6CisKKyAgW3JlZnRlc3QuaHRtbF0KKyAgICBmdXp6eTogWzEwOzIwMCwgcmVmMS5o
dG1sOjIwOzIwMC0zMDAsIHN1YnRlc3QxLmh0bWw9PXJlZjIuaHRtbDoxMC0xNTsyMF0KKworSW4g
dGhpcyBjYXNlIHRoZSBkZWZhdWx0IGZ1enppbmVzcyBmb3IgYW55IGNvbXBhcmlzb24gd291bGQg
YmUgdG8KK3JlcXVpcmUgYSBtYXhpbXVtIGRpZmZlcmVuY2UgcGVyIGNoYW5uZWwgb2YgbGVzcyB0
aGFuIG9yIGVxdWFsIHRvIDEwCithbmQgbGVzcyB0aGFuIG9yIGVxdWFsIHRvIDIwMCB0b3RhbCBw
aXhlbHMgZGlmZmVyZW50LiBGb3IgYW55Citjb21wYXJpc29uIGludm9sdmluZyByZWYxLmh0bWwg
b24gdGhlIHJpZ2h0IGhhbmQgc2lkZSwgdGhlIGxpbWl0cword291bGQgaW5zdGVhZCBiZSBhIGRp
ZmZlcmVuY2UgcGVyIGNoYW5uZWwgbm90IG1vcmUgdGhhbiAyMCBhbmQgYSB0b3RhbAorZGlmZmVy
ZW5jZSBjb3VudCBvZiBub3QgbGVzcyB0aGFuIDIwMCBhbmQgbm90IG1vcmUgdGhhbiAzMDAuIEZv
ciB0aGUKK3NwZWNpZmljIGNvbXBhcmlzb24gc3VidGVzdDEuaHRtbCA9PSByZWYyLmh0bWwgKGJv
dGggcmVzb2x2ZWQgYWdhaW5zdAordGhlIHRlc3QgVVJMKSB0aGVzZSBsaW1pdHMgd291bGQgaW5z
dGVhZCBiZSAxMCB0byAxNSBhbmQgMCB0byAyMCwKK3Jlc3BlY3RpdmVseS4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVu
bmVyL2RvY3MvaW5kZXgucnN0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy93cHRydW5uZXIvZG9jcy9pbmRleC5yc3QKZGVsZXRlZCBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDUxNDdkM2UzMWMzYmM0NGIxMjE2ZTQ2YmJjMDNhMDRjMzgwY2IzYWQuLjAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvZG9jcy9pbmRl
eC5yc3QKKysrIC9kZXYvbnVsbApAQCAtMSwyNCArMCwwIEBACi0uLiB3cHRydW5uZXIgZG9jdW1l
bnRhdGlvbiBtYXN0ZXIgZmlsZSwgY3JlYXRlZCBieQotICAgc3BoaW54LXF1aWNrc3RhcnQgb24g
TW9uIE1heSAxOSAxODoxNDoyMCAyMDE0LgotICAgWW91IGNhbiBhZGFwdCB0aGlzIGZpbGUgY29t
cGxldGVseSB0byB5b3VyIGxpa2luZywgYnV0IGl0IHNob3VsZCBhdCBsZWFzdAotICAgY29udGFp
biB0aGUgcm9vdCBgdG9jdHJlZWAgZGlyZWN0aXZlLgotCi1XZWxjb21lIHRvIHdwdHJ1bm5lcidz
IGRvY3VtZW50YXRpb24hCi09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0K
LUNvbnRlbnRzOgotCi0uLiB0b2N0cmVlOjoKLSAgIDptYXhkZXB0aDogMgotCi0gICB1c2FnZQot
ICAgZXhwZWN0YXRpb24KLSAgIGRlc2lnbgotCi1JbmRpY2VzIGFuZCB0YWJsZXMKLT09PT09PT09
PT09PT09PT09PQotCi0qIDpyZWY6YGdlbmluZGV4YAotKiA6cmVmOmBtb2RpbmRleGAKLSogOnJl
Zjpgc2VhcmNoYAotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci9kb2NzL2ludGVybmFscy5yc3QgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci9kb2Nz
L2ludGVybmFscy5yc3QKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzgwZGY4NzJlZGMxNzI4Y2U2NDBkZTg4MzQ4MDNj
YjI4Nzg2ZDBhNAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL2RvY3MvaW50ZXJuYWxzLnJzdApAQCAt
MCwwICsxLDIzIEBACit3cHRydW5uZXIgSW50ZXJuYWxzCis9PT09PT09PT09PT09PT09PT09CisK
Ky4uIFRoZXNlIG1vZHVsZXMgYXJlIGludGVudGlvbmFsbHkgcmVmZXJlbmNlZCBhcyBzdWJtb2R1
bGVzIGZyb20gdGhlIHBhcmVudAorICAgZGlyZWN0b3J5LiBUaGlzIGVuc3VyZXMgdGhhdCBTcGhp
bnggaW50ZXJwcmV0cyB0aGVtIGFzIHBhY2thZ2VzLgorCisuLiBhdXRvbW9kdWxlOjogd3B0cnVu
bmVyLmJyb3dzZXJzLmJhc2UKKyAgIDptZW1iZXJzOgorCisuLiBhdXRvbW9kdWxlOjogd3B0cnVu
bmVyLmVudmlyb25tZW50CisgICA6bWVtYmVyczoKKworLi4gYXV0b21vZHVsZTo6IHdwdHJ1bm5l
ci5leGVjdXRvcnMuYmFzZQorICAgOm1lbWJlcnM6CisKKy4uIGF1dG9tb2R1bGU6OiB3cHRydW5u
ZXIud3B0cnVubmVyCisgICA6bWVtYmVyczoKKworLi4gYXV0b21vZHVsZTo6IHdwdHJ1bm5lci50
ZXN0bG9hZGVyCisgICA6bWVtYmVyczoKKworLi4gYXV0b21vZHVsZTo6IHdwdHJ1bm5lci50ZXN0
cnVubmVyCisgICA6bWVtYmVyczoKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL2RvY3MvbWFrZS5iYXQgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci9k
b2NzL21ha2UuYmF0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5NTljMTYxNWEyODlk
YjBiMWE5MGEwOTBkODk0ZmE0YjU0YjRmYTNmLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvd3B0cnVubmVyL2RvY3MvbWFrZS5iYXQKKysrIC9kZXYvbnVsbApAQCAtMSwy
NDIgKzAsMCBAQAotQEVDSE8gT0ZGDQotDQotUkVNIENvbW1hbmQgZmlsZSBmb3IgU3BoaW54IGRv
Y3VtZW50YXRpb24NCi0NCi1pZiAiJVNQSElOWEJVSUxEJSIgPT0gIiIgKA0KLQlzZXQgU1BISU5Y
QlVJTEQ9c3BoaW54LWJ1aWxkDQotKQ0KLXNldCBCVUlMRERJUj1fYnVpbGQNCi1zZXQgQUxMU1BI
SU5YT1BUUz0tZCAlQlVJTERESVIlL2RvY3RyZWVzICVTUEhJTlhPUFRTJSAuDQotc2V0IEkxOE5T
UEhJTlhPUFRTPSVTUEhJTlhPUFRTJSAuDQotaWYgTk9UICIlUEFQRVIlIiA9PSAiIiAoDQotCXNl
dCBBTExTUEhJTlhPUFRTPS1EIGxhdGV4X3BhcGVyX3NpemU9JVBBUEVSJSAlQUxMU1BISU5YT1BU
UyUNCi0Jc2V0IEkxOE5TUEhJTlhPUFRTPS1EIGxhdGV4X3BhcGVyX3NpemU9JVBBUEVSJSAlSTE4
TlNQSElOWE9QVFMlDQotKQ0KLQ0KLWlmICIlMSIgPT0gIiIgZ290byBoZWxwDQotDQotaWYgIiUx
IiA9PSAiaGVscCIgKA0KLQk6aGVscA0KLQllY2hvLlBsZWFzZSB1c2UgYG1ha2UgXjx0YXJnZXRe
PmAgd2hlcmUgXjx0YXJnZXRePiBpcyBvbmUgb2YNCi0JZWNoby4gIGh0bWwgICAgICAgdG8gbWFr
ZSBzdGFuZGFsb25lIEhUTUwgZmlsZXMNCi0JZWNoby4gIGRpcmh0bWwgICAgdG8gbWFrZSBIVE1M
IGZpbGVzIG5hbWVkIGluZGV4Lmh0bWwgaW4gZGlyZWN0b3JpZXMNCi0JZWNoby4gIHNpbmdsZWh0
bWwgdG8gbWFrZSBhIHNpbmdsZSBsYXJnZSBIVE1MIGZpbGUNCi0JZWNoby4gIHBpY2tsZSAgICAg
dG8gbWFrZSBwaWNrbGUgZmlsZXMNCi0JZWNoby4gIGpzb24gICAgICAgdG8gbWFrZSBKU09OIGZp
bGVzDQotCWVjaG8uICBodG1saGVscCAgIHRvIG1ha2UgSFRNTCBmaWxlcyBhbmQgYSBIVE1MIGhl
bHAgcHJvamVjdA0KLQllY2hvLiAgcXRoZWxwICAgICB0byBtYWtlIEhUTUwgZmlsZXMgYW5kIGEg
cXRoZWxwIHByb2plY3QNCi0JZWNoby4gIGRldmhlbHAgICAgdG8gbWFrZSBIVE1MIGZpbGVzIGFu
ZCBhIERldmhlbHAgcHJvamVjdA0KLQllY2hvLiAgZXB1YiAgICAgICB0byBtYWtlIGFuIGVwdWIN
Ci0JZWNoby4gIGxhdGV4ICAgICAgdG8gbWFrZSBMYVRlWCBmaWxlcywgeW91IGNhbiBzZXQgUEFQ
RVI9YTQgb3IgUEFQRVI9bGV0dGVyDQotCWVjaG8uICB0ZXh0ICAgICAgIHRvIG1ha2UgdGV4dCBm
aWxlcw0KLQllY2hvLiAgbWFuICAgICAgICB0byBtYWtlIG1hbnVhbCBwYWdlcw0KLQllY2hvLiAg
dGV4aW5mbyAgICB0byBtYWtlIFRleGluZm8gZmlsZXMNCi0JZWNoby4gIGdldHRleHQgICAgdG8g
bWFrZSBQTyBtZXNzYWdlIGNhdGFsb2dzDQotCWVjaG8uICBjaGFuZ2VzICAgIHRvIG1ha2UgYW4g
b3ZlcnZpZXcgb3ZlciBhbGwgY2hhbmdlZC9hZGRlZC9kZXByZWNhdGVkIGl0ZW1zDQotCWVjaG8u
ICB4bWwgICAgICAgIHRvIG1ha2UgRG9jdXRpbHMtbmF0aXZlIFhNTCBmaWxlcw0KLQllY2hvLiAg
cHNldWRveG1sICB0byBtYWtlIHBzZXVkb3htbC1YTUwgZmlsZXMgZm9yIGRpc3BsYXkgcHVycG9z
ZXMNCi0JZWNoby4gIGxpbmtjaGVjayAgdG8gY2hlY2sgYWxsIGV4dGVybmFsIGxpbmtzIGZvciBp
bnRlZ3JpdHkNCi0JZWNoby4gIGRvY3Rlc3QgICAgdG8gcnVuIGFsbCBkb2N0ZXN0cyBlbWJlZGRl
ZCBpbiB0aGUgZG9jdW1lbnRhdGlvbiBpZiBlbmFibGVkDQotCWdvdG8gZW5kDQotKQ0KLQ0KLWlm
ICIlMSIgPT0gImNsZWFuIiAoDQotCWZvciAvZCAlJWkgaW4gKCVCVUlMRERJUiVcKikgZG8gcm1k
aXIgL3EgL3MgJSVpDQotCWRlbCAvcSAvcyAlQlVJTERESVIlXCoNCi0JZ290byBlbmQNCi0pDQot
DQotDQotJVNQSElOWEJVSUxEJSAyPiBudWwNCi1pZiBlcnJvcmxldmVsIDkwMDkgKA0KLQllY2hv
Lg0KLQllY2hvLlRoZSAnc3BoaW54LWJ1aWxkJyBjb21tYW5kIHdhcyBub3QgZm91bmQuIE1ha2Ug
c3VyZSB5b3UgaGF2ZSBTcGhpbngNCi0JZWNoby5pbnN0YWxsZWQsIHRoZW4gc2V0IHRoZSBTUEhJ
TlhCVUlMRCBlbnZpcm9ubWVudCB2YXJpYWJsZSB0byBwb2ludA0KLQllY2hvLnRvIHRoZSBmdWxs
IHBhdGggb2YgdGhlICdzcGhpbngtYnVpbGQnIGV4ZWN1dGFibGUuIEFsdGVybmF0aXZlbHkgeW91
DQotCWVjaG8ubWF5IGFkZCB0aGUgU3BoaW54IGRpcmVjdG9yeSB0byBQQVRILg0KLQllY2hvLg0K
LQllY2hvLklmIHlvdSBkb24ndCBoYXZlIFNwaGlueCBpbnN0YWxsZWQsIGdyYWIgaXQgZnJvbQ0K
LQllY2hvLmh0dHA6Ly9zcGhpbngtZG9jLm9yZy8NCi0JZXhpdCAvYiAxDQotKQ0KLQ0KLWlmICIl
MSIgPT0gImh0bWwiICgNCi0JJVNQSElOWEJVSUxEJSAtYiBodG1sICVBTExTUEhJTlhPUFRTJSAl
QlVJTERESVIlL2h0bWwNCi0JaWYgZXJyb3JsZXZlbCAxIGV4aXQgL2IgMQ0KLQllY2hvLg0KLQll
Y2hvLkJ1aWxkIGZpbmlzaGVkLiBUaGUgSFRNTCBwYWdlcyBhcmUgaW4gJUJVSUxERElSJS9odG1s
Lg0KLQlnb3RvIGVuZA0KLSkNCi0NCi1pZiAiJTEiID09ICJkaXJodG1sIiAoDQotCSVTUEhJTlhC
VUlMRCUgLWIgZGlyaHRtbCAlQUxMU1BISU5YT1BUUyUgJUJVSUxERElSJS9kaXJodG1sDQotCWlm
IGVycm9ybGV2ZWwgMSBleGl0IC9iIDENCi0JZWNoby4NCi0JZWNoby5CdWlsZCBmaW5pc2hlZC4g
VGhlIEhUTUwgcGFnZXMgYXJlIGluICVCVUlMRERJUiUvZGlyaHRtbC4NCi0JZ290byBlbmQNCi0p
DQotDQotaWYgIiUxIiA9PSAic2luZ2xlaHRtbCIgKA0KLQklU1BISU5YQlVJTEQlIC1iIHNpbmds
ZWh0bWwgJUFMTFNQSElOWE9QVFMlICVCVUlMRERJUiUvc2luZ2xlaHRtbA0KLQlpZiBlcnJvcmxl
dmVsIDEgZXhpdCAvYiAxDQotCWVjaG8uDQotCWVjaG8uQnVpbGQgZmluaXNoZWQuIFRoZSBIVE1M
IHBhZ2VzIGFyZSBpbiAlQlVJTERESVIlL3NpbmdsZWh0bWwuDQotCWdvdG8gZW5kDQotKQ0KLQ0K
LWlmICIlMSIgPT0gInBpY2tsZSIgKA0KLQklU1BISU5YQlVJTEQlIC1iIHBpY2tsZSAlQUxMU1BI
SU5YT1BUUyUgJUJVSUxERElSJS9waWNrbGUNCi0JaWYgZXJyb3JsZXZlbCAxIGV4aXQgL2IgMQ0K
LQllY2hvLg0KLQllY2hvLkJ1aWxkIGZpbmlzaGVkOyBub3cgeW91IGNhbiBwcm9jZXNzIHRoZSBw
aWNrbGUgZmlsZXMuDQotCWdvdG8gZW5kDQotKQ0KLQ0KLWlmICIlMSIgPT0gImpzb24iICgNCi0J
JVNQSElOWEJVSUxEJSAtYiBqc29uICVBTExTUEhJTlhPUFRTJSAlQlVJTERESVIlL2pzb24NCi0J
aWYgZXJyb3JsZXZlbCAxIGV4aXQgL2IgMQ0KLQllY2hvLg0KLQllY2hvLkJ1aWxkIGZpbmlzaGVk
OyBub3cgeW91IGNhbiBwcm9jZXNzIHRoZSBKU09OIGZpbGVzLg0KLQlnb3RvIGVuZA0KLSkNCi0N
Ci1pZiAiJTEiID09ICJodG1saGVscCIgKA0KLQklU1BISU5YQlVJTEQlIC1iIGh0bWxoZWxwICVB
TExTUEhJTlhPUFRTJSAlQlVJTERESVIlL2h0bWxoZWxwDQotCWlmIGVycm9ybGV2ZWwgMSBleGl0
IC9iIDENCi0JZWNoby4NCi0JZWNoby5CdWlsZCBmaW5pc2hlZDsgbm93IHlvdSBjYW4gcnVuIEhU
TUwgSGVscCBXb3Jrc2hvcCB3aXRoIHRoZSBeDQotLmhocCBwcm9qZWN0IGZpbGUgaW4gJUJVSUxE
RElSJS9odG1saGVscC4NCi0JZ290byBlbmQNCi0pDQotDQotaWYgIiUxIiA9PSAicXRoZWxwIiAo
DQotCSVTUEhJTlhCVUlMRCUgLWIgcXRoZWxwICVBTExTUEhJTlhPUFRTJSAlQlVJTERESVIlL3F0
aGVscA0KLQlpZiBlcnJvcmxldmVsIDEgZXhpdCAvYiAxDQotCWVjaG8uDQotCWVjaG8uQnVpbGQg
ZmluaXNoZWQ7IG5vdyB5b3UgY2FuIHJ1biAicWNvbGxlY3Rpb25nZW5lcmF0b3IiIHdpdGggdGhl
IF4NCi0ucWhjcCBwcm9qZWN0IGZpbGUgaW4gJUJVSUxERElSJS9xdGhlbHAsIGxpa2UgdGhpczoN
Ci0JZWNoby5ePiBxY29sbGVjdGlvbmdlbmVyYXRvciAlQlVJTERESVIlXHF0aGVscFx3cHRydW5u
ZXIucWhjcA0KLQllY2hvLlRvIHZpZXcgdGhlIGhlbHAgZmlsZToNCi0JZWNoby5ePiBhc3Npc3Rh
bnQgLWNvbGxlY3Rpb25GaWxlICVCVUlMRERJUiVccXRoZWxwXHdwdHJ1bm5lci5naGMNCi0JZ290
byBlbmQNCi0pDQotDQotaWYgIiUxIiA9PSAiZGV2aGVscCIgKA0KLQklU1BISU5YQlVJTEQlIC1i
IGRldmhlbHAgJUFMTFNQSElOWE9QVFMlICVCVUlMRERJUiUvZGV2aGVscA0KLQlpZiBlcnJvcmxl
dmVsIDEgZXhpdCAvYiAxDQotCWVjaG8uDQotCWVjaG8uQnVpbGQgZmluaXNoZWQuDQotCWdvdG8g
ZW5kDQotKQ0KLQ0KLWlmICIlMSIgPT0gImVwdWIiICgNCi0JJVNQSElOWEJVSUxEJSAtYiBlcHVi
ICVBTExTUEhJTlhPUFRTJSAlQlVJTERESVIlL2VwdWINCi0JaWYgZXJyb3JsZXZlbCAxIGV4aXQg
L2IgMQ0KLQllY2hvLg0KLQllY2hvLkJ1aWxkIGZpbmlzaGVkLiBUaGUgZXB1YiBmaWxlIGlzIGlu
ICVCVUlMRERJUiUvZXB1Yi4NCi0JZ290byBlbmQNCi0pDQotDQotaWYgIiUxIiA9PSAibGF0ZXgi
ICgNCi0JJVNQSElOWEJVSUxEJSAtYiBsYXRleCAlQUxMU1BISU5YT1BUUyUgJUJVSUxERElSJS9s
YXRleA0KLQlpZiBlcnJvcmxldmVsIDEgZXhpdCAvYiAxDQotCWVjaG8uDQotCWVjaG8uQnVpbGQg
ZmluaXNoZWQ7IHRoZSBMYVRlWCBmaWxlcyBhcmUgaW4gJUJVSUxERElSJS9sYXRleC4NCi0JZ290
byBlbmQNCi0pDQotDQotaWYgIiUxIiA9PSAibGF0ZXhwZGYiICgNCi0JJVNQSElOWEJVSUxEJSAt
YiBsYXRleCAlQUxMU1BISU5YT1BUUyUgJUJVSUxERElSJS9sYXRleA0KLQljZCAlQlVJTERESVIl
L2xhdGV4DQotCW1ha2UgYWxsLXBkZg0KLQljZCAlQlVJTERESVIlLy4uDQotCWVjaG8uDQotCWVj
aG8uQnVpbGQgZmluaXNoZWQ7IHRoZSBQREYgZmlsZXMgYXJlIGluICVCVUlMRERJUiUvbGF0ZXgu
DQotCWdvdG8gZW5kDQotKQ0KLQ0KLWlmICIlMSIgPT0gImxhdGV4cGRmamEiICgNCi0JJVNQSElO
WEJVSUxEJSAtYiBsYXRleCAlQUxMU1BISU5YT1BUUyUgJUJVSUxERElSJS9sYXRleA0KLQljZCAl
QlVJTERESVIlL2xhdGV4DQotCW1ha2UgYWxsLXBkZi1qYQ0KLQljZCAlQlVJTERESVIlLy4uDQot
CWVjaG8uDQotCWVjaG8uQnVpbGQgZmluaXNoZWQ7IHRoZSBQREYgZmlsZXMgYXJlIGluICVCVUlM
RERJUiUvbGF0ZXguDQotCWdvdG8gZW5kDQotKQ0KLQ0KLWlmICIlMSIgPT0gInRleHQiICgNCi0J
JVNQSElOWEJVSUxEJSAtYiB0ZXh0ICVBTExTUEhJTlhPUFRTJSAlQlVJTERESVIlL3RleHQNCi0J
aWYgZXJyb3JsZXZlbCAxIGV4aXQgL2IgMQ0KLQllY2hvLg0KLQllY2hvLkJ1aWxkIGZpbmlzaGVk
LiBUaGUgdGV4dCBmaWxlcyBhcmUgaW4gJUJVSUxERElSJS90ZXh0Lg0KLQlnb3RvIGVuZA0KLSkN
Ci0NCi1pZiAiJTEiID09ICJtYW4iICgNCi0JJVNQSElOWEJVSUxEJSAtYiBtYW4gJUFMTFNQSElO
WE9QVFMlICVCVUlMRERJUiUvbWFuDQotCWlmIGVycm9ybGV2ZWwgMSBleGl0IC9iIDENCi0JZWNo
by4NCi0JZWNoby5CdWlsZCBmaW5pc2hlZC4gVGhlIG1hbnVhbCBwYWdlcyBhcmUgaW4gJUJVSUxE
RElSJS9tYW4uDQotCWdvdG8gZW5kDQotKQ0KLQ0KLWlmICIlMSIgPT0gInRleGluZm8iICgNCi0J
JVNQSElOWEJVSUxEJSAtYiB0ZXhpbmZvICVBTExTUEhJTlhPUFRTJSAlQlVJTERESVIlL3RleGlu
Zm8NCi0JaWYgZXJyb3JsZXZlbCAxIGV4aXQgL2IgMQ0KLQllY2hvLg0KLQllY2hvLkJ1aWxkIGZp
bmlzaGVkLiBUaGUgVGV4aW5mbyBmaWxlcyBhcmUgaW4gJUJVSUxERElSJS90ZXhpbmZvLg0KLQln
b3RvIGVuZA0KLSkNCi0NCi1pZiAiJTEiID09ICJnZXR0ZXh0IiAoDQotCSVTUEhJTlhCVUlMRCUg
LWIgZ2V0dGV4dCAlSTE4TlNQSElOWE9QVFMlICVCVUlMRERJUiUvbG9jYWxlDQotCWlmIGVycm9y
bGV2ZWwgMSBleGl0IC9iIDENCi0JZWNoby4NCi0JZWNoby5CdWlsZCBmaW5pc2hlZC4gVGhlIG1l
c3NhZ2UgY2F0YWxvZ3MgYXJlIGluICVCVUlMRERJUiUvbG9jYWxlLg0KLQlnb3RvIGVuZA0KLSkN
Ci0NCi1pZiAiJTEiID09ICJjaGFuZ2VzIiAoDQotCSVTUEhJTlhCVUlMRCUgLWIgY2hhbmdlcyAl
QUxMU1BISU5YT1BUUyUgJUJVSUxERElSJS9jaGFuZ2VzDQotCWlmIGVycm9ybGV2ZWwgMSBleGl0
IC9iIDENCi0JZWNoby4NCi0JZWNoby5UaGUgb3ZlcnZpZXcgZmlsZSBpcyBpbiAlQlVJTERESVIl
L2NoYW5nZXMuDQotCWdvdG8gZW5kDQotKQ0KLQ0KLWlmICIlMSIgPT0gImxpbmtjaGVjayIgKA0K
LQklU1BISU5YQlVJTEQlIC1iIGxpbmtjaGVjayAlQUxMU1BISU5YT1BUUyUgJUJVSUxERElSJS9s
aW5rY2hlY2sNCi0JaWYgZXJyb3JsZXZlbCAxIGV4aXQgL2IgMQ0KLQllY2hvLg0KLQllY2hvLkxp
bmsgY2hlY2sgY29tcGxldGU7IGxvb2sgZm9yIGFueSBlcnJvcnMgaW4gdGhlIGFib3ZlIG91dHB1
dCBeDQotb3IgaW4gJUJVSUxERElSJS9saW5rY2hlY2svb3V0cHV0LnR4dC4NCi0JZ290byBlbmQN
Ci0pDQotDQotaWYgIiUxIiA9PSAiZG9jdGVzdCIgKA0KLQklU1BISU5YQlVJTEQlIC1iIGRvY3Rl
c3QgJUFMTFNQSElOWE9QVFMlICVCVUlMRERJUiUvZG9jdGVzdA0KLQlpZiBlcnJvcmxldmVsIDEg
ZXhpdCAvYiAxDQotCWVjaG8uDQotCWVjaG8uVGVzdGluZyBvZiBkb2N0ZXN0cyBpbiB0aGUgc291
cmNlcyBmaW5pc2hlZCwgbG9vayBhdCB0aGUgXg0KLXJlc3VsdHMgaW4gJUJVSUxERElSJS9kb2N0
ZXN0L291dHB1dC50eHQuDQotCWdvdG8gZW5kDQotKQ0KLQ0KLWlmICIlMSIgPT0gInhtbCIgKA0K
LQklU1BISU5YQlVJTEQlIC1iIHhtbCAlQUxMU1BISU5YT1BUUyUgJUJVSUxERElSJS94bWwNCi0J
aWYgZXJyb3JsZXZlbCAxIGV4aXQgL2IgMQ0KLQllY2hvLg0KLQllY2hvLkJ1aWxkIGZpbmlzaGVk
LiBUaGUgWE1MIGZpbGVzIGFyZSBpbiAlQlVJTERESVIlL3htbC4NCi0JZ290byBlbmQNCi0pDQot
DQotaWYgIiUxIiA9PSAicHNldWRveG1sIiAoDQotCSVTUEhJTlhCVUlMRCUgLWIgcHNldWRveG1s
ICVBTExTUEhJTlhPUFRTJSAlQlVJTERESVIlL3BzZXVkb3htbA0KLQlpZiBlcnJvcmxldmVsIDEg
ZXhpdCAvYiAxDQotCWVjaG8uDQotCWVjaG8uQnVpbGQgZmluaXNoZWQuIFRoZSBwc2V1ZG8tWE1M
IGZpbGVzIGFyZSBpbiAlQlVJTERESVIlL3BzZXVkb3htbC4NCi0JZ290byBlbmQNCi0pDQotDQot
OmVuZA0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvd3B0cnVubmVyL2RvY3MvdXNhZ2UucnN0IGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvZG9jcy91c2FnZS5yc3QK
aW5kZXggNTk5N2Y0MjU0ZjFlZWFhYjQ4NzgwYWFiZmEzZDIzM2ZlZjdmNjY3Zi4uODVmZDk3YmY2
YzEyYTFmYzNhMmRiYmQyNGVjMmMzMjY1OWRiOTExNCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvZG9jcy91c2Fn
ZS5yc3QKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy93cHRydW5uZXIvZG9jcy91c2FnZS5yc3QKQEAgLTE2NCwyMCArMTY0LDI0IEBAIG1ldGFk
YXRhIGZpbGVzIGluIGEgc3ViZGlyZWN0b3J5IG9mIHRoZSBjdXJyZW50IGRpcmVjdG9yeSBuYW1l
ZCBgYG1ldGFgYC4KIE91dHB1dAogLS0tLS0tCiAKLXdwdHJ1bm5lciB1c2VzIHRoZSA6cHk6bW9k
OmBtb3psb2dgIHBhY2thZ2UgZm9yIG91dHB1dC4gVGhpcwotc3RydWN0dXJlcyBldmVudHMgc3Vj
aCBhcyB0ZXN0IHJlc3VsdHMgb3IgbG9nIG1lc3NhZ2VzIGFzIEpTT04gb2JqZWN0cwotdGhhdCBj
YW4gdGhlbiBiZSBmZWQgdG8gb3RoZXIgdG9vbHMgZm9yIGludGVycHJldGF0aW9uLiBNb3JlIGRl
dGFpbHMKLWFib3V0IHRoZSBtZXNzYWdlIGZvcm1hdCBhcmUgZ2l2ZW4gaW4gdGhlCi06cHk6bW9k
OmBtb3psb2dgIGRvY3VtZW50YXRpb24uCit3cHRydW5uZXIgdXNlcyBgdGhlIG1vemxvZyBwYWNr
YWdlCis8aHR0cHM6Ly9maXJlZm94LXNvdXJjZS1kb2NzLm1vemlsbGEub3JnL21vemJhc2UvbW96
bG9nLmh0bWw+YF8pIGZvcgorb3V0cHV0LiBUaGlzIHN0cnVjdHVyZXMgZXZlbnRzIHN1Y2ggYXMg
dGVzdCByZXN1bHRzIG9yIGxvZyBtZXNzYWdlcyBhcworSlNPTiBvYmplY3RzIHRoYXQgY2FuIHRo
ZW4gYmUgZmVkIHRvIG90aGVyIHRvb2xzIGZvcgoraW50ZXJwcmV0YXRpb24uIE1vcmUgZGV0YWls
cyBhYm91dCB0aGUgbWVzc2FnZSBmb3JtYXQgYXJlIGdpdmVuIGluCitgdGhlIG1vemxvZyBkb2N1
bWVudGF0aW9uCis8aHR0cHM6Ly9maXJlZm94LXNvdXJjZS1kb2NzLm1vemlsbGEub3JnL21vemJh
c2UvbW96bG9nLmh0bWw+YF8uCiAKIEJ5IGRlZmF1bHQgdGhlIHJhdyBKU09OIG1lc3NhZ2VzIGFy
ZSBkdW1wZWQgdG8gc3Rkb3V0LiBUaGlzIGlzCiBjb252ZW5pZW50IGZvciBwaXBpbmcgaW50byBv
dGhlciB0b29scywgYnV0IG5vdCBpZGVhbCBmb3IgaHVtYW5zCi1yZWFkaW5nIHRoZSBvdXRwdXQu
IDpweTptb2Q6YG1vemxvZ2AgY29tZXMgd2l0aCBzZXZlcmFsIG90aGVyCi1mb3JtYXR0ZXJzLCB3
aGljaCBhcmUgYWNjZXNzaWJsZSB0aHJvdWdoIGNvbW1hbmQgbGluZSBvcHRpb25zLiBUaGUKLWdl
bmVyYWwgZm9ybWF0IG9mIHRoZXNlIG9wdGlvbnMgaXMgYGAtLWxvZy1uYW1lPWRlc3RgYCwgd2hl
cmUgYGBuYW1lYGAKLWlzIHRoZSBuYW1lIG9mIHRoZSBmb3JtYXQgYW5kIGBgZGVzdGBgIGlzIGEg
cGF0aCB0byBhIGRlc3RpbmF0aW9uCi1maWxlLCBvciBgYC1gYCBmb3Igc3Rkb3V0LiBUaGUgcmF3
IEpTT04gZGF0YSBpcyB3cml0dGVuIGJ5IHRoZSBgYHJhd2BgCi1mb3JtYXR0ZXIgc28sIHRoZSBk
ZWZhdWx0IHNldHVwIGNvcnJlc3BvbmRzIHRvIGBgLS1sb2ctcmF3PS1gYC4KK3JlYWRpbmcgdGhl
IG91dHB1dC4gYG1vemxvZworPGh0dHBzOi8vZmlyZWZveC1zb3VyY2UtZG9jcy5tb3ppbGxhLm9y
Zy9tb3piYXNlL21vemxvZy5odG1sPmBfIGNvbWVzCit3aXRoIHNldmVyYWwgb3RoZXIgZm9ybWF0
dGVycywgd2hpY2ggYXJlIGFjY2Vzc2libGUgdGhyb3VnaCBjb21tYW5kCitsaW5lIG9wdGlvbnMu
IFRoZSBnZW5lcmFsIGZvcm1hdCBvZiB0aGVzZSBvcHRpb25zIGlzCitgYC0tbG9nLW5hbWU9ZGVz
dGBgLCB3aGVyZSBgYG5hbWVgYCBpcyB0aGUgbmFtZSBvZiB0aGUgZm9ybWF0IGFuZAorYGBkZXN0
YGAgaXMgYSBwYXRoIHRvIGEgZGVzdGluYXRpb24gZmlsZSwgb3IgYGAtYGAgZm9yIHN0ZG91dC4g
VGhlIHJhdworSlNPTiBkYXRhIGlzIHdyaXR0ZW4gYnkgdGhlIGBgcmF3YGAgZm9ybWF0dGVyIHNv
LCB0aGUgZGVmYXVsdCBzZXR1cAorY29ycmVzcG9uZHMgdG8gYGAtLWxvZy1yYXc9LWBgLgogCiBB
IHJlYXNvbmFibGUgb3V0cHV0IGZvcm1hdCBmb3IgaHVtYW5zIGlzIHByb3ZpZGVkIGFzIGBgbWFj
aGBgLiBTbyBpbgogb3JkZXIgdG8gb3V0cHV0IHRoZSBmdWxsIHJhdyBsb2cgdG8gYSBmaWxlIGFu
ZCBhIGh1bWFuLXJlYWRhYmxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci9kb2NzL3czYy1pbXBvcnQubG9nIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5u
ZXIvZG9jcy93M2MtaW1wb3J0LmxvZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMmE0
ZjFkMTljZmFkYzBmZDdmNGZhOGZiNzhkNWM3MGIyNjNiNjczNC4uMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci9kb2NzL3czYy1pbXBvcnQubG9nCisrKyAv
ZGV2L251bGwKQEAgLTEsMjQgKzAsMCBAQAotVGhlIHRlc3RzIGluIHRoaXMgZGlyZWN0b3J5IHdl
cmUgaW1wb3J0ZWQgZnJvbSB0aGUgVzNDIHJlcG9zaXRvcnkuCi1EbyBOT1QgbW9kaWZ5IHRoZXNl
IHRlc3RzIGRpcmVjdGx5IGluIFdlYktpdC4KLUluc3RlYWQsIGNyZWF0ZSBhIHB1bGwgcmVxdWVz
dCBvbiB0aGUgV1BUIGdpdGh1YjoKLQlodHRwczovL2dpdGh1Yi5jb20vd2ViLXBsYXRmb3JtLXRl
c3RzL3dwdAotCi1UaGVuIHJ1biB0aGUgVG9vbHMvU2NyaXB0cy9pbXBvcnQtdzNjLXRlc3RzIGlu
IFdlYktpdCB0byByZWltcG9ydAotCi1EbyBOT1QgbW9kaWZ5IG9yIHJlbW92ZSB0aGlzIGZpbGUu
Ci0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLQotUHJvcGVydGllcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVz
OgotTm9uZQotUHJvcGVydHkgdmFsdWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25l
Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0KLUxpc3Qgb2YgZmlsZXM6Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvZG9jcy9NYWtlZmlsZQotL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVy
L2RvY3MvYXJjaGl0ZWN0dXJlLnN2ZwotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL2RvY3MvY29uZi5weQotL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL2RvY3MvZGVzaWdu
LnJzdAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
d3B0cnVubmVyL2RvY3MvZXhwZWN0YXRpb24ucnN0Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvZG9jcy9pbmRleC5yc3QKLS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci9k
b2NzL21ha2UuYmF0Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy93cHRydW5uZXIvZG9jcy91c2FnZS5yc3QKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3JlcXVpcmVt
ZW50cy50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3dwdHJ1bm5lci9yZXF1aXJlbWVudHMudHh0CmluZGV4IGZjYjU5MjJkMTBkNTM3MTg5OTdk
MGQ1ZGNhMmUzZjkyZTA4NjJjOGIuLjNjZDAxNDQ2ZTI1YmNlYjRkYWRlZjQ4MjU5MTE3YmQwNTdl
YTZmNDggMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvd3B0cnVubmVyL3JlcXVpcmVtZW50cy50eHQKKysrIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvcmVxdWlyZW1l
bnRzLnR4dApAQCAtMSw1ICsxLDggQEAKLWh0bWw1bGliID09IDEuMC4xCi1tb3ppbmZvID09IDAu
MTAKLW1vemxvZz09My44Ci1tb3pkZWJ1ZyA9PSAwLjEKLXVybGxpYjNbc2VjdXJlXSA9PSAxLjIy
CitodG1sNWxpYj09MS4wLjEKK21vemluZm89PTEuMS4wCittb3psb2c9PTUuMAorbW96ZGVidWc9
PTAuMS4xCitwaWxsb3c9PTYuMi4xCit1cmxsaWIzW3NlY3VyZV09PTEuMjUuNworcmVxdWVzdHM9
PTIuMjIuMAorc2l4PT0xLjEzLjAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3JlcXVpcmVtZW50c19hbmRyb2lk
X3dlYnZpZXcudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy93cHRydW5uZXIvcmVxdWlyZW1lbnRzX2FuZHJvaWRfd2Vidmlldy50eHQKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uNDcwYWFmOWE5Mzk5NmQwMjMxZTEzZTA1Y2MzNTU1N2EzNmQyNWRlOQotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvd3B0cnVubmVyL3JlcXVpcmVtZW50c19hbmRyb2lkX3dlYnZpZXcudHh0CkBAIC0wLDAgKzEg
QEAKK21venByb2Nlc3M9PTEuMC4wCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci9yZXF1aXJlbWVudHNfY2hyb21l
LnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
d3B0cnVubmVyL3JlcXVpcmVtZW50c19jaHJvbWUudHh0CmluZGV4IDIyYTA3NTMyNjU3ZGFkYjc5
YzQwNGZjYjYxYTI2ZTFhMTI3YjhjYzIuLjQ3MGFhZjlhOTM5OTZkMDIzMWUxM2UwNWNjMzU1NTdh
MzZkMjVkZTkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3JlcXVpcmVtZW50c19jaHJvbWUudHh0CisrKyBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVy
L3JlcXVpcmVtZW50c19jaHJvbWUudHh0CkBAIC0xLDIgKzEgQEAKLW1venByb2Nlc3MgPT0gMC4y
Ngotc2VsZW5pdW09PTMuMTQuMAorbW96cHJvY2Vzcz09MS4wLjAKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3Jl
cXVpcmVtZW50c19jaHJvbWVfYW5kcm9pZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci9yZXF1aXJlbWVudHNfY2hyb21lX2Fu
ZHJvaWQudHh0CmluZGV4IDIyYTA3NTMyNjU3ZGFkYjc5YzQwNGZjYjYxYTI2ZTFhMTI3YjhjYzIu
LjQ3MGFhZjlhOTM5OTZkMDIzMWUxM2UwNWNjMzU1NTdhMzZkMjVkZTkgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVy
L3JlcXVpcmVtZW50c19jaHJvbWVfYW5kcm9pZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvcmVxdWlyZW1lbnRzX2No
cm9tZV9hbmRyb2lkLnR4dApAQCAtMSwyICsxIEBACi1tb3pwcm9jZXNzID09IDAuMjYKLXNlbGVu
aXVtPT0zLjE0LjAKK21venByb2Nlc3M9PTEuMC4wCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci9yZXF1aXJlbWVu
dHNfY2hyb21lX2lvcy50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci9yZXF1aXJlbWVudHNfY2hyb21lX2lvcy50eHQKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uNDcwYWFmOWE5Mzk5NmQwMjMxZTEzZTA1Y2MzNTU1N2EzNmQyNWRlOQotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvd3B0cnVubmVyL3JlcXVpcmVtZW50c19jaHJvbWVfaW9zLnR4dApAQCAtMCwwICsxIEBACitt
b3pwcm9jZXNzPT0xLjAuMApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvcmVxdWlyZW1lbnRzX2VkZ2UudHh0IGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5u
ZXIvcmVxdWlyZW1lbnRzX2VkZ2UudHh0CmluZGV4IDIyYTA3NTMyNjU3ZGFkYjc5YzQwNGZjYjYx
YTI2ZTFhMTI3YjhjYzIuLjFiZjZlZjMyYWQ0NzNhNzE2Y2M5NjlkMDZmMTQ3ZTVlODI3YWRlMzUg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvd3B0cnVubmVyL3JlcXVpcmVtZW50c19lZGdlLnR4dAorKysgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci9yZXF1aXJlbWVu
dHNfZWRnZS50eHQKQEAgLTEsMiArMSwyIEBACi1tb3pwcm9jZXNzID09IDAuMjYKLXNlbGVuaXVt
PT0zLjE0LjAKK21venByb2Nlc3M9PTEuMC4wCitzZWxlbml1bT09My4xNDEuMApkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRy
dW5uZXIvcmVxdWlyZW1lbnRzX2VkZ2VfY2hyb21pdW0udHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvcmVxdWlyZW1lbnRzX2Vk
Z2VfY2hyb21pdW0udHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjcwYzEyNDQzMjQzZTY2NTVkOTc3MmNkZTNmZGFh
MjBhYjYwMjNiZjcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci9yZXF1aXJlbWVudHNfZWRnZV9jaHJv
bWl1bS50eHQKQEAgLTAsMCArMSBAQAorbW96cHJvY2Vzcz09MS4wLjANCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5l
ci9yZXF1aXJlbWVudHNfZXBpcGhhbnkudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvcmVxdWlyZW1lbnRzX2VwaXBoYW55LnR4
dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi40NzBhYWY5YTkzOTk2ZDAyMzFlMTNlMDVjYzM1NTU3YTM2ZDI1ZGU5Ci0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy93cHRydW5uZXIvcmVxdWlyZW1lbnRzX2VwaXBoYW55LnR4dApAQCAtMCwwICsx
IEBACittb3pwcm9jZXNzPT0xLjAuMApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvcmVxdWlyZW1lbnRzX2ZpcmVm
b3gudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy93cHRydW5uZXIvcmVxdWlyZW1lbnRzX2ZpcmVmb3gudHh0CmluZGV4IGYxZTZhODU4NWNhYTYz
YjViZDRiOWIyNTk0ZjcxNzBmYTQ5ZjA0ZWQuLjRjYmI3YTVlYzAyOTNlZmYxZWYxOThhMjFlY2Rj
OTBmZWNmNDE0MTEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3JlcXVpcmVtZW50c19maXJlZm94LnR4dAorKysg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1
bm5lci9yZXF1aXJlbWVudHNfZmlyZWZveC50eHQKQEAgLTEsOSArMSwxMSBAQAotbWFyaW9uZXR0
ZV9kcml2ZXI9PTIuNi4wCi1tb3pwcm9maWxlPT0xLjEuMAotbW96cHJvY2VzcyA9PSAwLjI2Ci1t
b3pjcmFzaCA9PSAxLjAKLW1venJ1bm5lciA9PSA3LjAuMAotbW96bGVhayA9PSAwLjEKLW1vemlu
c3RhbGw9PTEuMTYuMAotbW96ZG93bmxvYWQ9PTEuMjQKLQorbWFyaW9uZXR0ZV9kcml2ZXI9PTMu
MC4wCittb3pjcmFzaD09MS4xLjAKK21vemRvd25sb2FkPT0xLjI2LjAKK21vemluc3RhbGw9PTIu
MC4wCittb3psZWFrPT0wLjIKK21vem5ldHdvcms9PTAuMjcKK21venByb2Nlc3M9PTEuMC4wCitt
b3pwcm9maWxlPT0yLjQuMAorbW96cnVubmVyPT03LjcuMAorbW96dmVyc2lvbj09Mi4yLjAKK3Bz
dXRpbD09NS42LjcKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3JlcXVpcmVtZW50c19pZS50eHQgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci9yZXF1
aXJlbWVudHNfaWUudHh0CmluZGV4IDIyYTA3NTMyNjU3ZGFkYjc5YzQwNGZjYjYxYTI2ZTFhMTI3
YjhjYzIuLjFiZjZlZjMyYWQ0NzNhNzE2Y2M5NjlkMDZmMTQ3ZTVlODI3YWRlMzUgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0
cnVubmVyL3JlcXVpcmVtZW50c19pZS50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvcmVxdWlyZW1lbnRzX2llLnR4dApA
QCAtMSwyICsxLDIgQEAKLW1venByb2Nlc3MgPT0gMC4yNgotc2VsZW5pdW09PTMuMTQuMAorbW96
cHJvY2Vzcz09MS4wLjAKK3NlbGVuaXVtPT0zLjE0MS4wCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci9yZXF1aXJl
bWVudHNfb3BlcmEudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy93cHRydW5uZXIvcmVxdWlyZW1lbnRzX29wZXJhLnR4dAppbmRleCAyMmEwNzUz
MjY1N2RhZGI3OWM0MDRmY2I2MWEyNmUxYTEyN2I4Y2MyLi4xYmY2ZWYzMmFkNDczYTcxNmNjOTY5
ZDA2ZjE0N2U1ZTgyN2FkZTM1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci9yZXF1aXJlbWVudHNfb3BlcmEudHh0
CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
d3B0cnVubmVyL3JlcXVpcmVtZW50c19vcGVyYS50eHQKQEAgLTEsMiArMSwyIEBACi1tb3pwcm9j
ZXNzID09IDAuMjYKLXNlbGVuaXVtPT0zLjE0LjAKK21venByb2Nlc3M9PTEuMC4wCitzZWxlbml1
bT09My4xNDEuMApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvcmVxdWlyZW1lbnRzX3NhZmFyaS50eHQgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci9y
ZXF1aXJlbWVudHNfc2FmYXJpLnR4dAppbmRleCA1YTFkMjZiOGI5YmNjZDVjYmJlNjM3YzdkMTE1
ODA4YjRmZDg1ZjQ5Li40NzBhYWY5YTkzOTk2ZDAyMzFlMTNlMDVjYzM1NTU3YTM2ZDI1ZGU5IDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3dwdHJ1bm5lci9yZXF1aXJlbWVudHNfc2FmYXJpLnR4dAorKysgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci9yZXF1aXJlbWVu
dHNfc2FmYXJpLnR4dApAQCAtMSwyICsxIEBACi1tb3pwcm9jZXNzID09IDAuMjYKLXNlbGVuaXVt
PT0zLjEzLjAKK21venByb2Nlc3M9PTEuMC4wCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci9yZXF1aXJlbWVudHNf
c2F1Y2UudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy93cHRydW5uZXIvcmVxdWlyZW1lbnRzX3NhdWNlLnR4dAppbmRleCA3N2E3NDIyMjQzM2E2
OTNjODQ1OGY0YTA1ODU3YzdlZDZkYjg1NjAxLi4zMmI1ZjY0ZDE0ZmQwM2RmNGVlYWNiNTc4Mzky
MTBhMjZhMjgzZmE3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci9yZXF1aXJlbWVudHNfc2F1Y2UudHh0CisrKyBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVu
bmVyL3JlcXVpcmVtZW50c19zYXVjZS50eHQKQEAgLTEsMyArMSwzIEBACi1tb3pwcm9jZXNzID09
IDAuMjYKLXNlbGVuaXVtPT0zLjE0LjAKLXJlcXVlc3RzPT0yLjE5LjEKK21venByb2Nlc3M9PTEu
MC4wCitzZWxlbml1bT09My4xNDEuMAorcmVxdWVzdHM9PTIuMjIuMApkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIv
cmVxdWlyZW1lbnRzX3NlcnZvLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3JlcXVpcmVtZW50c19zZXJ2by50eHQKaW5kZXgg
OTExNWI3YWM0ZThmNmE2ZTQ3MDNhN2I2MWQyNzE1MDc1ZTJmNjA1My4uNDcwYWFmOWE5Mzk5NmQw
MjMxZTEzZTA1Y2MzNTU1N2EzNmQyNWRlOSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvcmVxdWlyZW1lbnRzX3Nl
cnZvLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3dwdHJ1bm5lci9yZXF1aXJlbWVudHNfc2Vydm8udHh0CkBAIC0xICsxIEBACi1tb3pw
cm9jZXNzID09IDAuMjYKK21venByb2Nlc3M9PTEuMC4wCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci9yZXF1aXJl
bWVudHNfd2Via2l0LnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvd3B0cnVubmVyL3JlcXVpcmVtZW50c193ZWJraXQudHh0CmluZGV4IDI1Y2M1
ODQ2ZWU3MjA0OTIzMjE3Mzk2MTkxOTk2ZTE1ZmQyM2RjMTMuLjQ3MGFhZjlhOTM5OTZkMDIzMWUx
M2UwNWNjMzU1NTdhMzZkMjVkZTkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3JlcXVpcmVtZW50c193ZWJraXQu
dHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvd3B0cnVubmVyL3JlcXVpcmVtZW50c193ZWJraXQudHh0CkBAIC0xLDIgKzEgQEAKLW1venBy
b2Nlc3MgPT0gMC4yNgotc2VsZW5pdW0gPT0gMy45LjAKK21venByb2Nlc3M9PTEuMC4wCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3dwdHJ1bm5lci9zZXR1cC5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3NldHVwLnB5CmluZGV4IDYzZDNlZGRlMjQ0ZDBiOWU4
OGFiYmRhYThjNTc5YTRhODgwNzIzNmEuLmFiOTZiZDEwMzU3Y2Q2YjMwMjIzNjRkNDcxZTVjZWJm
MGNiNjUyZGQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3NldHVwLnB5CisrKyBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3NldHVwLnB5CkBAIC0y
LDYgKzIsOCBAQAogIyBMaWNlbnNlLCB2LiAyLjAuIElmIGEgY29weSBvZiB0aGUgTVBMIHdhcyBu
b3QgZGlzdHJpYnV0ZWQgd2l0aCB0aGlzIGZpbGUsCiAjIFlvdSBjYW4gb2J0YWluIG9uZSBhdCBo
dHRwOi8vbW96aWxsYS5vcmcvTVBMLzIuMC8uCiAKK2Zyb20gX19mdXR1cmVfXyBpbXBvcnQgcHJp
bnRfZnVuY3Rpb24KKwogaW1wb3J0IGdsb2IKIGltcG9ydCBvcwogaW1wb3J0IHN5cwpAQCAtNTUs
MTcgKzU3LDE2IEBAIHNldHVwKG5hbWU9UEFDS0FHRV9OQU1FLAogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICJwcmVmcy8qIl19LAogICAgICAgaW5jbHVkZV9wYWNrYWdlX2RhdGE9
VHJ1ZSwKICAgICAgIGRhdGFfZmlsZXM9WygicmVxdWlyZW1lbnRzIiwgcmVxdWlyZW1lbnRzX2Zp
bGVzKV0sCi0gICAgICBpbnN0YWxsX3JlcXVpcmVzPWRlcHMKICAgICAgICkKIAogaWYgImluc3Rh
bGwiIGluIHN5cy5hcmd2OgogICAgIHBhdGggPSBvcy5wYXRoLnJlbHBhdGgob3MucGF0aC5qb2lu
KHN5cy5wcmVmaXgsICJyZXF1aXJlbWVudHMiKSwgb3MuY3VyZGlyKQotICAgIHByaW50IHRleHR3
cmFwLmZpbGwoIiIiSW4gb3JkZXIgdG8gdXNlIHdpdGggb25lIG9mIHRoZSBidWlsdC1pbiBicm93
c2VyCisgICAgcHJpbnQodGV4dHdyYXAuZmlsbCgiIiJJbiBvcmRlciB0byB1c2Ugd2l0aCBvbmUg
b2YgdGhlIGJ1aWx0LWluIGJyb3dzZXIKIHByb2R1Y3RzLCB5b3Ugd2lsbCBuZWVkIHRvIGluc3Rh
bGwgdGhlIGV4dHJhIGRlcGVuZGVuY2llcy4gVGhlc2UgYXJlIHByb3ZpZGVkCiBhcyByZXF1aXJl
bWVudHNfW25hbWVdLnR4dCBpbiB0aGUgJXMgZGlyZWN0b3J5IGFuZCBjYW4gYmUgaW5zdGFsbGVk
IHVzaW5nCi1lLmcuIiIiICUgcGF0aCwgODApCitlLmcuIiIiICUgcGF0aCwgODApKQogCi0gICAg
cHJpbnQgIiIiCisgICAgcHJpbnQoIiIiCiAKIHBpcCBpbnN0YWxsIC1yICVzL3JlcXVpcmVtZW50
c19maXJlZm94LnR4dAotIiIiICUgcGF0aAorIiIiICUgcGF0aCkKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3Rl
c3QvbWV0YWRhdGEvcmVmdGVzdC9yZWZ0ZXN0X2FuZF9mYWlsLmh0bWwuaW5pIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvdGVzdC9t
ZXRhZGF0YS9yZWZ0ZXN0L3JlZnRlc3RfYW5kX2ZhaWwuaHRtbC5pbmkKZGVsZXRlZCBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDgxYWVmMDQ5Y2QxMjJmNzMzMmM2NmY1YTA4Nzk0N2U1MTJhNTlkMGUu
LjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvdGVzdC9t
ZXRhZGF0YS9yZWZ0ZXN0L3JlZnRlc3RfYW5kX2ZhaWwuaHRtbC5pbmkKKysrIC9kZXYvbnVsbApA
QCAtMSwzICswLDAgQEAKLVtyZWZ0ZXN0X2FuZF9mYWlsLmh0bWxdCi0gIHR5cGU6IHJlZnRlc3QK
LSAgZXhwZWN0ZWQ6IEZBSUwKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3Rlc3QvbWV0YWRhdGEvcmVmdGVzdC9y
ZWZ0ZXN0X2N5Y2xlX2ZhaWwuaHRtbC5pbmkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci90ZXN0L21ldGFkYXRhL3JlZnRlc3QvcmVm
dGVzdF9jeWNsZV9mYWlsLmh0bWwuaW5pCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0
NzJiMzNmNzc2NGJkZTZlMmFlYTdiYzJjY2Q4YmYzNzM5YmFiYWQyLi4wMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3Rlc3QvbWV0YWRhdGEvcmVmdGVzdC9y
ZWZ0ZXN0X2N5Y2xlX2ZhaWwuaHRtbC5pbmkKKysrIC9kZXYvbnVsbApAQCAtMSwzICswLDAgQEAK
LVtyZWZ0ZXN0X2N5Y2xlX2ZhaWwuaHRtbF0KLSAgdHlwZTogcmVmdGVzdAotICBleHBlY3RlZDog
RkFJTApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy93cHRydW5uZXIvdGVzdC9tZXRhZGF0YS9yZWZ0ZXN0L3JlZnRlc3RfbWF0Y2hf
ZmFpbC5odG1sLmluaSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvd3B0cnVubmVyL3Rlc3QvbWV0YWRhdGEvcmVmdGVzdC9yZWZ0ZXN0X21hdGNoX2Zh
aWwuaHRtbC5pbmkKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGYzZGMzMzYyZmFjNDFi
YmU4ZGVkNDQ1ODllODk4ZWY1ODljYjFhODkuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy93cHRydW5uZXIvdGVzdC9tZXRhZGF0YS9yZWZ0ZXN0L3JlZnRlc3RfbWF0Y2hf
ZmFpbC5odG1sLmluaQorKysgL2Rldi9udWxsCkBAIC0xLDMgKzAsMCBAQAotW3JlZnRlc3RfbWF0
Y2hfZmFpbC5odG1sXQotICB0eXBlOiByZWZ0ZXN0Ci0gIGV4cGVjdGVkOiBGQUlMCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dw
dHJ1bm5lci90ZXN0L21ldGFkYXRhL3JlZnRlc3QvcmVmdGVzdF9taXNtYXRjaF9mYWlsLmh0bWwu
aW5pIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93
cHRydW5uZXIvdGVzdC9tZXRhZGF0YS9yZWZ0ZXN0L3JlZnRlc3RfbWlzbWF0Y2hfZmFpbC5odG1s
LmluaQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMTA1NTMzN2UyZDY1Y2I4ZjIxZDJj
ZWFjNjJlMzVjZTdiYjk5YTk3Ni4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3dwdHJ1bm5lci90ZXN0L21ldGFkYXRhL3JlZnRlc3QvcmVmdGVzdF9taXNtYXRjaF9mYWls
Lmh0bWwuaW5pCisrKyAvZGV2L251bGwKQEAgLTEsMyArMCwwIEBACi1bcmVmdGVzdF9taXNtYXRj
aF9mYWlsLmh0bWxdCi0gIHR5cGU6IHJlZnRlc3QKLSAgZXhwZWN0ZWQ6IEZBSUwKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0
cnVubmVyL3Rlc3QvbWV0YWRhdGEvcmVmdGVzdC9yZWZ0ZXN0X3JlZl90aW1lb3V0Lmh0bWwuaW5p
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRy
dW5uZXIvdGVzdC9tZXRhZGF0YS9yZWZ0ZXN0L3JlZnRlc3RfcmVmX3RpbWVvdXQuaHRtbC5pbmkK
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDg5MzYyNDFhZDI5Y2QxNjJmOTYxMDc2YzJi
YThlYjk2MGY3Njk4YzMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAK
LS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93
cHRydW5uZXIvdGVzdC9tZXRhZGF0YS9yZWZ0ZXN0L3JlZnRlc3RfcmVmX3RpbWVvdXQuaHRtbC5p
bmkKKysrIC9kZXYvbnVsbApAQCAtMSwzICswLDAgQEAKLVtyZWZ0ZXN0X3JlZl90aW1lb3V0Lmh0
bWxdCi0gIHR5cGU6IHJlZnRlc3QKLSAgZXhwZWN0ZWQ6IFRJTUVPVVQKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVy
L3Rlc3QvbWV0YWRhdGEvcmVmdGVzdC9yZWZ0ZXN0X3RpbWVvdXQuaHRtbC5pbmkgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci90ZXN0
L21ldGFkYXRhL3JlZnRlc3QvcmVmdGVzdF90aW1lb3V0Lmh0bWwuaW5pCmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwZDFiOWJhZGU5NWQ3YjEwMWM4ZGJmNTE1NDdmZmJhZWMyMjYwYzI3
Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3Rlc3Qv
bWV0YWRhdGEvcmVmdGVzdC9yZWZ0ZXN0X3RpbWVvdXQuaHRtbC5pbmkKKysrIC9kZXYvbnVsbApA
QCAtMSwzICswLDAgQEAKLVtyZWZ0ZXN0X3RpbWVvdXQuaHRtbF0KLSAgdHlwZTogcmVmdGVzdAot
ICBleHBlY3RlZDogVElNRU9VVApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvdGVzdC9tZXRhZGF0YS9yZWZ0ZXN0
L3czYy1pbXBvcnQubG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy93cHRydW5uZXIvdGVzdC9tZXRhZGF0YS9yZWZ0ZXN0L3czYy1pbXBvcnQubG9n
CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhZWU0ZmJiNzYzOTZlYjI2NDFiM2E0MGZm
MWFmYTQ3ZmFhZTNkOGYzLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
d3B0cnVubmVyL3Rlc3QvbWV0YWRhdGEvcmVmdGVzdC93M2MtaW1wb3J0LmxvZworKysgL2Rldi9u
dWxsCkBAIC0xLDIyICswLDAgQEAKLVRoZSB0ZXN0cyBpbiB0aGlzIGRpcmVjdG9yeSB3ZXJlIGlt
cG9ydGVkIGZyb20gdGhlIFczQyByZXBvc2l0b3J5LgotRG8gTk9UIG1vZGlmeSB0aGVzZSB0ZXN0
cyBkaXJlY3RseSBpbiBXZWJLaXQuCi1JbnN0ZWFkLCBjcmVhdGUgYSBwdWxsIHJlcXVlc3Qgb24g
dGhlIFdQVCBnaXRodWI6Ci0JaHR0cHM6Ly9naXRodWIuY29tL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMKLQotVGhlbiBydW4gdGhlIFRvb2xzL1NjcmlwdHMvaW1wb3J0LXczYy10ZXN0cyBpbiBXZWJL
aXQgdG8gcmVpbXBvcnQKLQotRG8gTk9UIG1vZGlmeSBvciByZW1vdmUgdGhpcyBmaWxlLgotCi0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0KLVByb3BlcnRpZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5v
bmUKLVByb3BlcnR5IHZhbHVlcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tCi1MaXN0IG9mIGZpbGVzOgotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3Rlc3QvbWV0YWRhdGEvcmVmdGVzdC9y
ZWZ0ZXN0X2FuZF9mYWlsLmh0bWwuaW5pCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvdGVzdC9tZXRhZGF0YS9yZWZ0ZXN0L3JlZnRl
c3RfY3ljbGVfZmFpbC5odG1sLmluaQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3Rlc3QvbWV0YWRhdGEvcmVmdGVzdC9yZWZ0ZXN0
X21hdGNoX2ZhaWwuaHRtbC5pbmkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci90ZXN0L21ldGFkYXRhL3JlZnRlc3QvcmVmdGVzdF9t
aXNtYXRjaF9mYWlsLmh0bWwuaW5pCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvdGVzdC9tZXRhZGF0YS9yZWZ0ZXN0L3JlZnRlc3Rf
cmVmX3RpbWVvdXQuaHRtbC5pbmkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci90ZXN0L21ldGFkYXRhL3JlZnRlc3QvcmVmdGVzdF90
aW1lb3V0Lmh0bWwuaW5pCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci90ZXN0L21ldGFkYXRhL3Rlc3RoYXJuZXNz
L2ZpcmVmb3gvc3ViZGlyL3czYy1pbXBvcnQubG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvdGVzdC9tZXRhZGF0YS90ZXN0aGFy
bmVzcy9maXJlZm94L3N1YmRpci93M2MtaW1wb3J0LmxvZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggNjUyZGMwOWRlNTVjM2IwZDI5OGUyOTIzYWE5NTM3MWQxNTg3OTE5OC4uMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci90ZXN0L21ldGFkYXRh
L3Rlc3RoYXJuZXNzL2ZpcmVmb3gvc3ViZGlyL3czYy1pbXBvcnQubG9nCisrKyAvZGV2L251bGwK
QEAgLTEsMTcgKzAsMCBAQAotVGhlIHRlc3RzIGluIHRoaXMgZGlyZWN0b3J5IHdlcmUgaW1wb3J0
ZWQgZnJvbSB0aGUgVzNDIHJlcG9zaXRvcnkuCi1EbyBOT1QgbW9kaWZ5IHRoZXNlIHRlc3RzIGRp
cmVjdGx5IGluIFdlYktpdC4KLUluc3RlYWQsIGNyZWF0ZSBhIHB1bGwgcmVxdWVzdCBvbiB0aGUg
V1BUIGdpdGh1YjoKLQlodHRwczovL2dpdGh1Yi5jb20vd2ViLXBsYXRmb3JtLXRlc3RzL3dwdAot
Ci1UaGVuIHJ1biB0aGUgVG9vbHMvU2NyaXB0cy9pbXBvcnQtdzNjLXRlc3RzIGluIFdlYktpdCB0
byByZWltcG9ydAotCi1EbyBOT1QgbW9kaWZ5IG9yIHJlbW92ZSB0aGlzIGZpbGUuCi0KLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLQotUHJvcGVydGllcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQot
UHJvcGVydHkgdmFsdWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0KLUxpc3Qgb2YgZmlsZXM6Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvdGVzdC9tZXRhZGF0YS90ZXN0aGFybmVzcy9m
aXJlZm94L3N1YmRpci90ZXN0X3ByZWZfcmVzZXQuaHRtbC5pbmkKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3Rl
c3QvbWV0YWRhdGEvdGVzdGhhcm5lc3MvZmlyZWZveC93M2MtaW1wb3J0LmxvZyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3Rlc3Qv
bWV0YWRhdGEvdGVzdGhhcm5lc3MvZmlyZWZveC93M2MtaW1wb3J0LmxvZwpkZWxldGVkIGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggN2IxYmIxODMyYTkxODcxOWI3NTA3ZDUzMDA1OGZiYjhkZjM3MjQ5
OC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci90ZXN0
L21ldGFkYXRhL3Rlc3RoYXJuZXNzL2ZpcmVmb3gvdzNjLWltcG9ydC5sb2cKKysrIC9kZXYvbnVs
bApAQCAtMSwxOCArMCwwIEBACi1UaGUgdGVzdHMgaW4gdGhpcyBkaXJlY3Rvcnkgd2VyZSBpbXBv
cnRlZCBmcm9tIHRoZSBXM0MgcmVwb3NpdG9yeS4KLURvIE5PVCBtb2RpZnkgdGhlc2UgdGVzdHMg
ZGlyZWN0bHkgaW4gV2ViS2l0LgotSW5zdGVhZCwgY3JlYXRlIGEgcHVsbCByZXF1ZXN0IG9uIHRo
ZSBXUFQgZ2l0aHViOgotCWh0dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxhdGZvcm0tdGVzdHMvd3B0
Ci0KLVRoZW4gcnVuIHRoZSBUb29scy9TY3JpcHRzL2ltcG9ydC13M2MtdGVzdHMgaW4gV2ViS2l0
IHRvIHJlaW1wb3J0Ci0KLURvIE5PVCBtb2RpZnkgb3IgcmVtb3ZlIHRoaXMgZmlsZS4KLQotLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tCi1Qcm9wZXJ0aWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25l
Ci1Qcm9wZXJ0eSB2YWx1ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLQotTGlzdCBvZiBmaWxlczoKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci90ZXN0L21ldGFkYXRhL3Rlc3RoYXJuZXNz
L2ZpcmVmb3gvX19kaXJfXy5pbmkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci90ZXN0L21ldGFkYXRhL3Rlc3RoYXJuZXNzL2ZpcmVm
b3gvdGVzdF9wcmVmX3NldC5odG1sLmluaQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvdGVzdC9tZXRhZGF0YS90
ZXN0aGFybmVzcy9zdWJkaXIvdzNjLWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci90ZXN0L21ldGFkYXRhL3Rlc3Ro
YXJuZXNzL3N1YmRpci93M2MtaW1wb3J0LmxvZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggNWZiZDg5ZWZlZmE5NGNkOTJhYmUyMjVmYWEzZDkyYjQ0MDgyMjU2Mi4uMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci90ZXN0L21ldGFkYXRhL3Rlc3Ro
YXJuZXNzL3N1YmRpci93M2MtaW1wb3J0LmxvZworKysgL2Rldi9udWxsCkBAIC0xLDE4ICswLDAg
QEAKLVRoZSB0ZXN0cyBpbiB0aGlzIGRpcmVjdG9yeSB3ZXJlIGltcG9ydGVkIGZyb20gdGhlIFcz
QyByZXBvc2l0b3J5LgotRG8gTk9UIG1vZGlmeSB0aGVzZSB0ZXN0cyBkaXJlY3RseSBpbiBXZWJL
aXQuCi1JbnN0ZWFkLCBjcmVhdGUgYSBwdWxsIHJlcXVlc3Qgb24gdGhlIFdQVCBnaXRodWI6Ci0J
aHR0cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQKLQotVGhlbiBydW4gdGhl
IFRvb2xzL1NjcmlwdHMvaW1wb3J0LXczYy10ZXN0cyBpbiBXZWJLaXQgdG8gcmVpbXBvcnQKLQot
RG8gTk9UIG1vZGlmeSBvciByZW1vdmUgdGhpcyBmaWxlLgotCi0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLVBy
b3BlcnRpZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLVByb3BlcnR5IHZhbHVl
cyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1MaXN0
IG9mIGZpbGVzOgotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvd3B0cnVubmVyL3Rlc3QvbWV0YWRhdGEvdGVzdGhhcm5lc3Mvc3ViZGlyL19fZGlyX18u
aW5pCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93
cHRydW5uZXIvdGVzdC9tZXRhZGF0YS90ZXN0aGFybmVzcy9zdWJkaXIvdGVzdGhhcm5lc3NfMS5o
dG1sLmluaQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy93cHRydW5uZXIvdGVzdC9tZXRhZGF0YS90ZXN0aGFybmVzcy93M2MtaW1w
b3J0LmxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvd3B0cnVubmVyL3Rlc3QvbWV0YWRhdGEvdGVzdGhhcm5lc3MvdzNjLWltcG9ydC5sb2cKZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGYzNGVhMjUzOTcyNWQ3MzUwZjc2ODU0ZjBkYmVj
MDJkMGYzYzFjMzEuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0t
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRy
dW5uZXIvdGVzdC9tZXRhZGF0YS90ZXN0aGFybmVzcy93M2MtaW1wb3J0LmxvZworKysgL2Rldi9u
dWxsCkBAIC0xLDE5ICswLDAgQEAKLVRoZSB0ZXN0cyBpbiB0aGlzIGRpcmVjdG9yeSB3ZXJlIGlt
cG9ydGVkIGZyb20gdGhlIFczQyByZXBvc2l0b3J5LgotRG8gTk9UIG1vZGlmeSB0aGVzZSB0ZXN0
cyBkaXJlY3RseSBpbiBXZWJLaXQuCi1JbnN0ZWFkLCBjcmVhdGUgYSBwdWxsIHJlcXVlc3Qgb24g
dGhlIFdQVCBnaXRodWI6Ci0JaHR0cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9ybS10ZXN0cy93
cHQKLQotVGhlbiBydW4gdGhlIFRvb2xzL1NjcmlwdHMvaW1wb3J0LXczYy10ZXN0cyBpbiBXZWJL
aXQgdG8gcmVpbXBvcnQKLQotRG8gTk9UIG1vZGlmeSBvciByZW1vdmUgdGhpcyBmaWxlLgotCi0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0KLVByb3BlcnRpZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5v
bmUKLVByb3BlcnR5IHZhbHVlcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tCi1MaXN0IG9mIGZpbGVzOgotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3Rlc3QvbWV0YWRhdGEvdGVzdGhhcm5l
c3MvdGVzdGhhcm5lc3NfMC5odG1sLmluaQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3Rlc3QvbWV0YWRhdGEvdGVzdGhhcm5lc3Mv
dGVzdGhhcm5lc3NfZXJyb3IuaHRtbC5pbmkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci90ZXN0L21ldGFkYXRhL3Rlc3RoYXJuZXNz
L3Rlc3RoYXJuZXNzX3RpbWVvdXQuaHRtbC5pbmkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3Rlc3QvdGVzdC5w
eSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0
cnVubmVyL3Rlc3QvdGVzdC5weQppbmRleCA5OTYwZGNkMWUyODEyMGUxYzliYjNhMGNjZGY0MGQ4
ZWM5YTk5OTA0Li44ZjMyM2EzMzg2Yzk5N2NiY2ZhMDEzZTY1ODUwODY0NzFkZGZhMjA4IDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3dwdHJ1bm5lci90ZXN0L3Rlc3QucHkKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvdGVzdC90ZXN0LnB5CkBAIC0xLDMgKzEs
NCBAQAorZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCBwcmludF9mdW5jdGlvbgogaW1wb3J0IENvbmZp
Z1BhcnNlcgogaW1wb3J0IGFyZ3BhcnNlCiBpbXBvcnQgb3MKQEAgLTE1Myw3ICsxNTQsNyBAQCBk
ZWYgbWFpbigpOgogICAgICAgICBpZiBhcmdzLnBkYjoKICAgICAgICAgICAgIGltcG9ydCBwZGIK
ICAgICAgICAgICAgIGltcG9ydCB0cmFjZWJhY2sKLSAgICAgICAgICAgIHByaW50IHRyYWNlYmFj
ay5mb3JtYXRfZXhjKCkKKyAgICAgICAgICAgIHByaW50KHRyYWNlYmFjay5mb3JtYXRfZXhjKCkp
CiAgICAgICAgICAgICBwZGIucG9zdF9tb3J0ZW0oKQogICAgICAgICBlbHNlOgogICAgICAgICAg
ICAgcmFpc2UKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3Rlc3QvdGVzdGRhdGEvcmVmdGVzdC9ncmVlbi1leHBl
Y3RlZC5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy93cHRydW5uZXIvdGVzdC90ZXN0ZGF0YS9yZWZ0ZXN0L2dyZWVuLWV4cGVjdGVkLmh0bWwK
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDBlMTQ1ZDYwYjU1YjM1MDI2MzlkMTVmMTBk
NGQ2M2E2YjBmNzliN2QuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAK
LS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93
cHRydW5uZXIvdGVzdC90ZXN0ZGF0YS9yZWZ0ZXN0L2dyZWVuLWV4cGVjdGVkLmh0bWwKKysrIC9k
ZXYvbnVsbApAQCAtMSw0ICswLDAgQEAKLTxsaW5rIHJlbD1tYXRjaCBocmVmPWdyZWVuLmh0bWw+
Ci08c3R5bGU+Ci06cm9vdCB7YmFja2dyb3VuZC1jb2xvcjpncmVlbn0KLTwvc3R5bGU+ClwgTm8g
bmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvdGVzdC90ZXN0ZGF0YS9yZWZ0
ZXN0L2dyZWVuLXJlZi1leHBlY3RlZC5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvdGVzdC90ZXN0ZGF0YS9yZWZ0ZXN0L2dy
ZWVuLXJlZi1leHBlY3RlZC5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzODE2
N2JiNThkNTcxZTc1ZjU0OTA4MTY2YzU0MmFjYTg0NzMxYWVjLi4wMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3Rlc3QvdGVzdGRhdGEvcmVmdGVzdC9ncmVl
bi1yZWYtZXhwZWN0ZWQuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDMgKzAsMCBAQAotPHN0eWxl
PgotOnJvb3Qge2JhY2tncm91bmQtY29sb3I6Z3JlZW59Ci08L3N0eWxlPgpcIE5vIG5ld2xpbmUg
YXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3Rlc3QvdGVzdGRhdGEvcmVmdGVzdC9ncmVl
bi1yZWYuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvd3B0cnVubmVyL3Rlc3QvdGVzdGRhdGEvcmVmdGVzdC9ncmVlbi1yZWYuaHRtbApkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMGUxNDVkNjBiNTViMzUwMjYzOWQxNWYxMGQ0ZDYz
YTZiMGY3OWI3ZC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0g
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1
bm5lci90ZXN0L3Rlc3RkYXRhL3JlZnRlc3QvZ3JlZW4tcmVmLmh0bWwKKysrIC9kZXYvbnVsbApA
QCAtMSw0ICswLDAgQEAKLTxsaW5rIHJlbD1tYXRjaCBocmVmPWdyZWVuLmh0bWw+Ci08c3R5bGU+
Ci06cm9vdCB7YmFja2dyb3VuZC1jb2xvcjpncmVlbn0KLTwvc3R5bGU+ClwgTm8gbmV3bGluZSBh
dCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvdGVzdC90ZXN0ZGF0YS9yZWZ0ZXN0L2dyZWVu
Lmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3dwdHJ1bm5lci90ZXN0L3Rlc3RkYXRhL3JlZnRlc3QvZ3JlZW4uaHRtbApkZWxldGVkIGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMzgxNjdiYjU4ZDU3MWU3NWY1NDkwODE2NmM1NDJhY2E4NDczMWFl
Yy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci90ZXN0
L3Rlc3RkYXRhL3JlZnRlc3QvZ3JlZW4uaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDMgKzAsMCBA
QAotPHN0eWxlPgotOnJvb3Qge2JhY2tncm91bmQtY29sb3I6Z3JlZW59Ci08L3N0eWxlPgpcIE5v
IG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3Rlc3QvdGVzdGRhdGEvcmVm
dGVzdC9yZWQuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvd3B0cnVubmVyL3Rlc3QvdGVzdGRhdGEvcmVmdGVzdC9yZWQuaHRtbApkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMmI2NzdlMDA2MzRiY2QxNmMzMmJhOGQwMjljY2FiMDQw
ZjAxNjc4MC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5l
ci90ZXN0L3Rlc3RkYXRhL3JlZnRlc3QvcmVkLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwzICsw
LDAgQEAKLTxzdHlsZT4KLTpyb290IHtiYWNrZ3JvdW5kLWNvbG9yOnJlZH0KLTwvc3R5bGU+Clwg
Tm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvdGVzdC90ZXN0ZGF0YS9y
ZWZ0ZXN0L3JlZnRlc3QuaHR0cHMtZXhwZWN0ZWQuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3Rlc3QvdGVzdGRhdGEvcmVm
dGVzdC9yZWZ0ZXN0Lmh0dHBzLWV4cGVjdGVkLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDM4MTY3YmI1OGQ1NzFlNzVmNTQ5MDgxNjZjNTQyYWNhODQ3MzFhZWMuLjAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvdGVzdC90ZXN0ZGF0YS9y
ZWZ0ZXN0L3JlZnRlc3QuaHR0cHMtZXhwZWN0ZWQuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDMg
KzAsMCBAQAotPHN0eWxlPgotOnJvb3Qge2JhY2tncm91bmQtY29sb3I6Z3JlZW59Ci08L3N0eWxl
PgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3Rlc3QvdGVzdGRh
dGEvcmVmdGVzdC9yZWZ0ZXN0Lmh0dHBzLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci90ZXN0L3Rlc3RkYXRhL3JlZnRlc3Qv
cmVmdGVzdC5odHRwcy5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1YTQ1ZjEw
ZjM1ZWI0NzJlYzEzY2M1ZGQyNDdmZjhkZjVjMjY1Mzg1Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3Rlc3QvdGVzdGRhdGEvcmVmdGVzdC9yZWZ0ZXN0
Lmh0dHBzLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw5ICswLDAgQEAKLTxsaW5rIHJlbD1tYXRj
aCBocmVmPWdyZWVuLmh0bWw+Ci08c3R5bGU+Ci06cm9vdCB7YmFja2dyb3VuZC1jb2xvcjpyZWR9
Ci08L3N0eWxlPgotPHNjcmlwdD4KLWlmICh3aW5kb3cubG9jYXRpb24ucHJvdG9jb2wgPT09ICJo
dHRwczoiKSB7Ci0gICBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc3R5bGUuYmFja2dyb3VuZENv
bG9yID0gImdyZWVuIjsKLX0KLTwvc2NyaXB0PgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvd3B0cnVubmVyL3Rlc3QvdGVzdGRhdGEvcmVmdGVzdC9yZWZ0ZXN0X2FuZF9mYWlsLWV4
cGVjdGVkLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3dwdHJ1bm5lci90ZXN0L3Rlc3RkYXRhL3JlZnRlc3QvcmVmdGVzdF9hbmRfZmFpbC1l
eHBlY3RlZC5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwNGZiOWFhMTUxNzZl
NjE5MWRlZDVlY2NmNDQyZmNmZDZjZGNmNTY2Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvd3B0cnVubmVyL3Rlc3QvdGVzdGRhdGEvcmVmdGVzdC9yZWZ0ZXN0X2FuZF9m
YWlsLWV4cGVjdGVkLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw1ICswLDAgQEAKLTx0aXRsZT5S
ZWZ0ZXN0IGNoYWluIHRoYXQgc2hvdWxkIGZhaWw8L3RpdGxlPgotPGxpbmsgcmVsPW1hdGNoIGhy
ZWY9cmVkLmh0bWw+Ci08c3R5bGU+Ci06cm9vdCB7YmFja2dyb3VuZC1jb2xvcjpncmVlbn0KLTwv
c3R5bGU+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvdGVzdC90
ZXN0ZGF0YS9yZWZ0ZXN0L3JlZnRlc3RfYW5kX2ZhaWwuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3Rlc3QvdGVzdGRhdGEv
cmVmdGVzdC9yZWZ0ZXN0X2FuZF9mYWlsLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDI5NjAxOTUzNTYyMzhmMDM1NDMyMDdlOWU2YTM1OTkzNjFkYWViOTEuLjAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvdGVzdC90ZXN0ZGF0YS9yZWZ0
ZXN0L3JlZnRlc3RfYW5kX2ZhaWwuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDUgKzAsMCBAQAot
PHRpdGxlPlJlZnRlc3QgY2hhaW4gdGhhdCBzaG91bGQgZmFpbDwvdGl0bGU+Ci08bGluayByZWw9
bWF0Y2ggaHJlZj1yZWZ0ZXN0X2FuZF9mYWlsXzAtcmVmLmh0bWw+Ci08c3R5bGU+Ci06cm9vdCB7
YmFja2dyb3VuZC1jb2xvcjpncmVlbn0KLTwvc3R5bGU+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2Yg
ZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy93cHRydW5uZXIvdGVzdC90ZXN0ZGF0YS9yZWZ0ZXN0L3JlZnRlc3RfYW5kX2Zh
aWxfMC1yZWYtZXhwZWN0ZWQuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3Rlc3QvdGVzdGRhdGEvcmVmdGVzdC9yZWZ0ZXN0
X2FuZF9mYWlsXzAtcmVmLWV4cGVjdGVkLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDJiNjc3ZTAwNjM0YmNkMTZjMzJiYThkMDI5Y2NhYjA0MGYwMTY3ODAuLjAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvdGVzdC90ZXN0ZGF0YS9yZWZ0
ZXN0L3JlZnRlc3RfYW5kX2ZhaWxfMC1yZWYtZXhwZWN0ZWQuaHRtbAorKysgL2Rldi9udWxsCkBA
IC0xLDMgKzAsMCBAQAotPHN0eWxlPgotOnJvb3Qge2JhY2tncm91bmQtY29sb3I6cmVkfQotPC9z
dHlsZT4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci90ZXN0L3Rl
c3RkYXRhL3JlZnRlc3QvcmVmdGVzdF9hbmRfZmFpbF8wLXJlZi5odG1sIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvdGVzdC90ZXN0
ZGF0YS9yZWZ0ZXN0L3JlZnRlc3RfYW5kX2ZhaWxfMC1yZWYuaHRtbApkZWxldGVkIGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDRmYjlhYTE1MTc2ZTYxOTFkZWQ1ZWNjZjQ0MmZjZmQ2Y2RjZjU2Ni4u
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci90ZXN0L3Rl
c3RkYXRhL3JlZnRlc3QvcmVmdGVzdF9hbmRfZmFpbF8wLXJlZi5odG1sCisrKyAvZGV2L251bGwK
QEAgLTEsNSArMCwwIEBACi08dGl0bGU+UmVmdGVzdCBjaGFpbiB0aGF0IHNob3VsZCBmYWlsPC90
aXRsZT4KLTxsaW5rIHJlbD1tYXRjaCBocmVmPXJlZC5odG1sPgotPHN0eWxlPgotOnJvb3Qge2Jh
Y2tncm91bmQtY29sb3I6Z3JlZW59Ci08L3N0eWxlPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZp
bGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvd3B0cnVubmVyL3Rlc3QvdGVzdGRhdGEvcmVmdGVzdC9yZWZ0ZXN0X2N5Y2xlLWV4
cGVjdGVkLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3dwdHJ1bm5lci90ZXN0L3Rlc3RkYXRhL3JlZnRlc3QvcmVmdGVzdF9jeWNsZS1leHBl
Y3RlZC5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxMThiZmQ4ODQ0N2I0ODIx
MmFmMjllNTQ4NjFiYjZkNTA5YTVlMWIxLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvd3B0cnVubmVyL3Rlc3QvdGVzdGRhdGEvcmVmdGVzdC9yZWZ0ZXN0X2N5Y2xlLWV4
cGVjdGVkLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw1ICswLDAgQEAKLTx0aXRsZT5PUiBtYXRj
aCB0aGF0IHNob3VsZCBwYXNzPC90aXRsZT4KLTxsaW5rIHJlbD1tYXRjaCBocmVmPXJlZnRlc3Rf
Y3ljbGVfMS1yZWYuaHRtbD4KLTxzdHlsZT4KLTpyb290IHtiYWNrZ3JvdW5kLWNvbG9yOmdyZWVu
fQotPC9zdHlsZT4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci90
ZXN0L3Rlc3RkYXRhL3JlZnRlc3QvcmVmdGVzdF9jeWNsZS5odG1sIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvdGVzdC90ZXN0ZGF0
YS9yZWZ0ZXN0L3JlZnRlc3RfY3ljbGUuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggNGE4NGEzYjY3NDFlZTQxZmU2MTg3YTliZGM3NjZkNzQ5MjA2YzgzYS4uMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci90ZXN0L3Rlc3RkYXRhL3JlZnRl
c3QvcmVmdGVzdF9jeWNsZS5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsNSArMCwwIEBACi08dGl0
bGU+UmVmdGVzdCB3aXRoIGN5Y2xlLCBhbGwgbWF0Y2g8L3RpdGxlPgotPGxpbmsgcmVsPW1hdGNo
IGhyZWY9cmVmdGVzdF9jeWNsZV8wLXJlZi5odG1sPgotPHN0eWxlPgotOnJvb3Qge2JhY2tncm91
bmQtY29sb3I6Z3JlZW59Ci08L3N0eWxlPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvd3B0cnVubmVyL3Rlc3QvdGVzdGRhdGEvcmVmdGVzdC9yZWZ0ZXN0X2N5Y2xlXzAtcmVmLWV4
cGVjdGVkLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3dwdHJ1bm5lci90ZXN0L3Rlc3RkYXRhL3JlZnRlc3QvcmVmdGVzdF9jeWNsZV8wLXJl
Zi1leHBlY3RlZC5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1OWJlMGI2NDFk
ZWY2YmQ3M2EwY2NhNzJmMTdkMzMwNDY0MWI0OGVhLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3Rlc3QvdGVzdGRhdGEvcmVmdGVzdC9yZWZ0ZXN0X2N5
Y2xlXzAtcmVmLWV4cGVjdGVkLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw1ICswLDAgQEAKLTx0
aXRsZT5SZWZ0ZXN0IHdpdGggY3ljbGUsIGFsbCBtYXRjaDwvdGl0bGU+Ci08bGluayByZWw9bWF0
Y2ggaHJlZj1yZWZ0ZXN0X2N5Y2xlLmh0bWw+Ci08c3R5bGU+Ci06cm9vdCB7YmFja2dyb3VuZC1j
b2xvcjpncmVlbn0KLTwvc3R5bGU+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93
cHRydW5uZXIvdGVzdC90ZXN0ZGF0YS9yZWZ0ZXN0L3JlZnRlc3RfY3ljbGVfMC1yZWYuaHRtbCBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVu
bmVyL3Rlc3QvdGVzdGRhdGEvcmVmdGVzdC9yZWZ0ZXN0X2N5Y2xlXzAtcmVmLmh0bWwKZGVsZXRl
ZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDExOGJmZDg4NDQ3YjQ4MjEyYWYyOWU1NDg2MWJiNmQ1
MDlhNWUxYjEuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5u
ZXIvdGVzdC90ZXN0ZGF0YS9yZWZ0ZXN0L3JlZnRlc3RfY3ljbGVfMC1yZWYuaHRtbAorKysgL2Rl
di9udWxsCkBAIC0xLDUgKzAsMCBAQAotPHRpdGxlPk9SIG1hdGNoIHRoYXQgc2hvdWxkIHBhc3M8
L3RpdGxlPgotPGxpbmsgcmVsPW1hdGNoIGhyZWY9cmVmdGVzdF9jeWNsZV8xLXJlZi5odG1sPgot
PHN0eWxlPgotOnJvb3Qge2JhY2tncm91bmQtY29sb3I6Z3JlZW59Ci08L3N0eWxlPgpcIE5vIG5l
d2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3Rlc3QvdGVzdGRhdGEvcmVmdGVz
dC9yZWZ0ZXN0X2N5Y2xlXzEtcmVmLWV4cGVjdGVkLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci90ZXN0L3Rlc3RkYXRhL3Jl
ZnRlc3QvcmVmdGVzdF9jeWNsZV8xLXJlZi1leHBlY3RlZC5odG1sCmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCA0YTg0YTNiNjc0MWVlNDFmZTYxODdhOWJkYzc2NmQ3NDkyMDZjODNhLi4w
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3Rlc3QvdGVz
dGRhdGEvcmVmdGVzdC9yZWZ0ZXN0X2N5Y2xlXzEtcmVmLWV4cGVjdGVkLmh0bWwKKysrIC9kZXYv
bnVsbApAQCAtMSw1ICswLDAgQEAKLTx0aXRsZT5SZWZ0ZXN0IHdpdGggY3ljbGUsIGFsbCBtYXRj
aDwvdGl0bGU+Ci08bGluayByZWw9bWF0Y2ggaHJlZj1yZWZ0ZXN0X2N5Y2xlXzAtcmVmLmh0bWw+
Ci08c3R5bGU+Ci06cm9vdCB7YmFja2dyb3VuZC1jb2xvcjpncmVlbn0KLTwvc3R5bGU+ClwgTm8g
bmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvdGVzdC90ZXN0ZGF0YS9yZWZ0
ZXN0L3JlZnRlc3RfY3ljbGVfMS1yZWYuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3Rlc3QvdGVzdGRhdGEvcmVmdGVzdC9y
ZWZ0ZXN0X2N5Y2xlXzEtcmVmLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDU5
YmUwYjY0MWRlZjZiZDczYTBjY2E3MmYxN2QzMzA0NjQxYjQ4ZWEuLjAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvdGVzdC90ZXN0ZGF0YS9yZWZ0ZXN0L3Jl
ZnRlc3RfY3ljbGVfMS1yZWYuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDUgKzAsMCBAQAotPHRp
dGxlPlJlZnRlc3Qgd2l0aCBjeWNsZSwgYWxsIG1hdGNoPC90aXRsZT4KLTxsaW5rIHJlbD1tYXRj
aCBocmVmPXJlZnRlc3RfY3ljbGUuaHRtbD4KLTxzdHlsZT4KLTpyb290IHtiYWNrZ3JvdW5kLWNv
bG9yOmdyZWVufQotPC9zdHlsZT4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dw
dHJ1bm5lci90ZXN0L3Rlc3RkYXRhL3JlZnRlc3QvcmVmdGVzdF9jeWNsZV9mYWlsLWV4cGVjdGVk
Lmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3dwdHJ1bm5lci90ZXN0L3Rlc3RkYXRhL3JlZnRlc3QvcmVmdGVzdF9jeWNsZV9mYWlsLWV4cGVj
dGVkLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGM4ZTU0OGM0NjIyNTU2Mzhh
MzJjNDc0YTE3Nzc1OWZmNmQ3Y2NlYWYuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy93cHRydW5uZXIvdGVzdC90ZXN0ZGF0YS9yZWZ0ZXN0L3JlZnRlc3RfY3ljbGVfZmFp
bC1leHBlY3RlZC5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsNSArMCwwIEBACi08dGl0bGU+UmVm
dGVzdCB3aXRoIGN5Y2xlLCBmYWlsczwvdGl0bGU+Ci08bGluayByZWw9bWlzbWF0Y2ggaHJlZj1y
ZWZ0ZXN0X2N5Y2xlX2ZhaWwuaHRtbD4KLTxzdHlsZT4KLTpyb290IHtiYWNrZ3JvdW5kLWNvbG9y
OmdyZWVufQotPC9zdHlsZT4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1
bm5lci90ZXN0L3Rlc3RkYXRhL3JlZnRlc3QvcmVmdGVzdF9jeWNsZV9mYWlsLmh0bWwgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci90
ZXN0L3Rlc3RkYXRhL3JlZnRlc3QvcmVmdGVzdF9jeWNsZV9mYWlsLmh0bWwKZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDE3NWU3NmM0Y2M5YmI3NjVmOGZjOGRmYzM0NDU1YWQyZWI5YmM0
MDUuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvdGVz
dC90ZXN0ZGF0YS9yZWZ0ZXN0L3JlZnRlc3RfY3ljbGVfZmFpbC5odG1sCisrKyAvZGV2L251bGwK
QEAgLTEsNSArMCwwIEBACi08dGl0bGU+UmVmdGVzdCB3aXRoIGN5Y2xlLCBmYWlsczwvdGl0bGU+
Ci08bGluayByZWw9bWF0Y2ggaHJlZj1yZWZ0ZXN0X2N5Y2xlX2ZhaWxfMC1yZWYuaHRtbD4KLTxz
dHlsZT4KLTpyb290IHtiYWNrZ3JvdW5kLWNvbG9yOmdyZWVufQotPC9zdHlsZT4KXCBObyBuZXds
aW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci90ZXN0L3Rlc3RkYXRhL3JlZnRlc3Qv
cmVmdGVzdF9jeWNsZV9mYWlsXzAtcmVmLWV4cGVjdGVkLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci90ZXN0L3Rlc3RkYXRh
L3JlZnRlc3QvcmVmdGVzdF9jeWNsZV9mYWlsXzAtcmVmLWV4cGVjdGVkLmh0bWwKZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDE3NWU3NmM0Y2M5YmI3NjVmOGZjOGRmYzM0NDU1YWQyZWI5
YmM0MDUuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIv
dGVzdC90ZXN0ZGF0YS9yZWZ0ZXN0L3JlZnRlc3RfY3ljbGVfZmFpbF8wLXJlZi1leHBlY3RlZC5o
dG1sCisrKyAvZGV2L251bGwKQEAgLTEsNSArMCwwIEBACi08dGl0bGU+UmVmdGVzdCB3aXRoIGN5
Y2xlLCBmYWlsczwvdGl0bGU+Ci08bGluayByZWw9bWF0Y2ggaHJlZj1yZWZ0ZXN0X2N5Y2xlX2Zh
aWxfMC1yZWYuaHRtbD4KLTxzdHlsZT4KLTpyb290IHtiYWNrZ3JvdW5kLWNvbG9yOmdyZWVufQot
PC9zdHlsZT4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci90ZXN0
L3Rlc3RkYXRhL3JlZnRlc3QvcmVmdGVzdF9jeWNsZV9mYWlsXzAtcmVmLmh0bWwgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci90ZXN0
L3Rlc3RkYXRhL3JlZnRlc3QvcmVmdGVzdF9jeWNsZV9mYWlsXzAtcmVmLmh0bWwKZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IGM4ZTU0OGM0NjIyNTU2MzhhMzJjNDc0YTE3Nzc1OWZmNmQ3
Y2NlYWYuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIv
dGVzdC90ZXN0ZGF0YS9yZWZ0ZXN0L3JlZnRlc3RfY3ljbGVfZmFpbF8wLXJlZi5odG1sCisrKyAv
ZGV2L251bGwKQEAgLTEsNSArMCwwIEBACi08dGl0bGU+UmVmdGVzdCB3aXRoIGN5Y2xlLCBmYWls
czwvdGl0bGU+Ci08bGluayByZWw9bWlzbWF0Y2ggaHJlZj1yZWZ0ZXN0X2N5Y2xlX2ZhaWwuaHRt
bD4KLTxzdHlsZT4KLTpyb290IHtiYWNrZ3JvdW5kLWNvbG9yOmdyZWVufQotPC9zdHlsZT4KXCBO
byBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci90ZXN0L3Rlc3RkYXRhL3Jl
ZnRlc3QvcmVmdGVzdF9tYXRjaC1leHBlY3RlZC5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvdGVzdC90ZXN0ZGF0YS9yZWZ0
ZXN0L3JlZnRlc3RfbWF0Y2gtZXhwZWN0ZWQuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMzgxNjdiYjU4ZDU3MWU3NWY1NDkwODE2NmM1NDJhY2E4NDczMWFlYy4uMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci90ZXN0L3Rlc3RkYXRhL3Jl
ZnRlc3QvcmVmdGVzdF9tYXRjaC1leHBlY3RlZC5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMyAr
MCwwIEBACi08c3R5bGU+Ci06cm9vdCB7YmFja2dyb3VuZC1jb2xvcjpncmVlbn0KLTwvc3R5bGU+
ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvdGVzdC90ZXN0ZGF0
YS9yZWZ0ZXN0L3JlZnRlc3RfbWF0Y2guaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3Rlc3QvdGVzdGRhdGEvcmVmdGVzdC9y
ZWZ0ZXN0X21hdGNoLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDMzM2NjNmMx
ZWNkZjIwMDBlNGIxMTg1NjU2NjE3NjFiODc2YTcyOTkuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvdGVzdC90ZXN0ZGF0YS9yZWZ0ZXN0L3JlZnRlc3Rf
bWF0Y2guaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDUgKzAsMCBAQAotPHRpdGxlPnJlbD1tYXRj
aCB0aGF0IHNob3VsZCBwYXNzPC90aXRsZT4KLTxsaW5rIHJlbD1tYXRjaCBocmVmPWdyZWVuLmh0
bWw+Ci08c3R5bGU+Ci06cm9vdCB7YmFja2dyb3VuZC1jb2xvcjpncmVlbn0KLTwvc3R5bGU+Clwg
Tm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvdGVzdC90ZXN0ZGF0YS9y
ZWZ0ZXN0L3JlZnRlc3RfbWF0Y2hfZmFpbC1leHBlY3RlZC5odG1sIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvdGVzdC90ZXN0ZGF0
YS9yZWZ0ZXN0L3JlZnRlc3RfbWF0Y2hfZmFpbC1leHBlY3RlZC5odG1sCmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAyYjY3N2UwMDYzNGJjZDE2YzMyYmE4ZDAyOWNjYWIwNDBmMDE2Nzgw
Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3Rlc3Qv
dGVzdGRhdGEvcmVmdGVzdC9yZWZ0ZXN0X21hdGNoX2ZhaWwtZXhwZWN0ZWQuaHRtbAorKysgL2Rl
di9udWxsCkBAIC0xLDMgKzAsMCBAQAotPHN0eWxlPgotOnJvb3Qge2JhY2tncm91bmQtY29sb3I6
cmVkfQotPC9zdHlsZT4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5l
ci90ZXN0L3Rlc3RkYXRhL3JlZnRlc3QvcmVmdGVzdF9tYXRjaF9mYWlsLmh0bWwgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci90ZXN0
L3Rlc3RkYXRhL3JlZnRlc3QvcmVmdGVzdF9tYXRjaF9mYWlsLmh0bWwKZGVsZXRlZCBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IGE5MjcyZWY3NGRhODczMzdhMDIyM2ZjYjAwZjA1M2NlYmE1ZmI1MmIu
LjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvdGVzdC90
ZXN0ZGF0YS9yZWZ0ZXN0L3JlZnRlc3RfbWF0Y2hfZmFpbC5odG1sCisrKyAvZGV2L251bGwKQEAg
LTEsNSArMCwwIEBACi08dGl0bGU+cmVsPW1hdGNoIHRoYXQgc2hvdWxkIGZhaWw8L3RpdGxlPgot
PGxpbmsgcmVsPW1hdGNoIGhyZWY9cmVkLmh0bWw+Ci08c3R5bGU+Ci06cm9vdCB7YmFja2dyb3Vu
ZC1jb2xvcjpncmVlbn0KLTwvc3R5bGU+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy93cHRydW5uZXIvdGVzdC90ZXN0ZGF0YS9yZWZ0ZXN0L3JlZnRlc3RfbWlzbWF0Y2gtZXhwZWN0
ZWQuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvd3B0cnVubmVyL3Rlc3QvdGVzdGRhdGEvcmVmdGVzdC9yZWZ0ZXN0X21pc21hdGNoLWV4cGVj
dGVkLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDJiNjc3ZTAwNjM0YmNkMTZj
MzJiYThkMDI5Y2NhYjA0MGYwMTY3ODAuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy93cHRydW5uZXIvdGVzdC90ZXN0ZGF0YS9yZWZ0ZXN0L3JlZnRlc3RfbWlzbWF0Y2gt
ZXhwZWN0ZWQuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDMgKzAsMCBAQAotPHN0eWxlPgotOnJv
b3Qge2JhY2tncm91bmQtY29sb3I6cmVkfQotPC9zdHlsZT4KXCBObyBuZXdsaW5lIGF0IGVuZCBv
ZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci90ZXN0L3Rlc3RkYXRhL3JlZnRlc3QvcmVmdGVzdF9taXNt
YXRjaC5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy93cHRydW5uZXIvdGVzdC90ZXN0ZGF0YS9yZWZ0ZXN0L3JlZnRlc3RfbWlzbWF0Y2guaHRt
bApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYWY1ZmEwNzUwZDgzYjY3NTljMzBlYTQz
NGZjNTA5MjU1MjQ2Y2Y4My4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3dwdHJ1bm5lci90ZXN0L3Rlc3RkYXRhL3JlZnRlc3QvcmVmdGVzdF9taXNtYXRjaC5odG1sCisr
KyAvZGV2L251bGwKQEAgLTEsNSArMCwwIEBACi08dGl0bGU+cmVsPW1pc21hdGNoIHRoYXQgc2hv
dWxkIHBhc3M8L3RpdGxlPgotPGxpbmsgcmVsPW1pc21hdGNoIGhyZWY9cmVkLmh0bWw+Ci08c3R5
bGU+Ci06cm9vdCB7YmFja2dyb3VuZC1jb2xvcjpncmVlbn0KLTwvc3R5bGU+ClwgTm8gbmV3bGlu
ZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvdGVzdC90ZXN0ZGF0YS9yZWZ0ZXN0L3Jl
ZnRlc3RfbWlzbWF0Y2hfZmFpbC1leHBlY3RlZC5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvdGVzdC90ZXN0ZGF0YS9yZWZ0
ZXN0L3JlZnRlc3RfbWlzbWF0Y2hfZmFpbC1leHBlY3RlZC5odG1sCmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAzODE2N2JiNThkNTcxZTc1ZjU0OTA4MTY2YzU0MmFjYTg0NzMxYWVjLi4w
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3Rlc3QvdGVz
dGRhdGEvcmVmdGVzdC9yZWZ0ZXN0X21pc21hdGNoX2ZhaWwtZXhwZWN0ZWQuaHRtbAorKysgL2Rl
di9udWxsCkBAIC0xLDMgKzAsMCBAQAotPHN0eWxlPgotOnJvb3Qge2JhY2tncm91bmQtY29sb3I6
Z3JlZW59Ci08L3N0eWxlPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVu
bmVyL3Rlc3QvdGVzdGRhdGEvcmVmdGVzdC9yZWZ0ZXN0X21pc21hdGNoX2ZhaWwuaHRtbCBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVy
L3Rlc3QvdGVzdGRhdGEvcmVmdGVzdC9yZWZ0ZXN0X21pc21hdGNoX2ZhaWwuaHRtbApkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOGQxNjBjNGZjMjAwY2E5NzYzMWIxODUwNTg0N2Q1MWZk
NzYyYWJhOS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5l
ci90ZXN0L3Rlc3RkYXRhL3JlZnRlc3QvcmVmdGVzdF9taXNtYXRjaF9mYWlsLmh0bWwKKysrIC9k
ZXYvbnVsbApAQCAtMSw1ICswLDAgQEAKLTx0aXRsZT5yZWw9bWlzbWF0Y2ggdGhhdCBzaG91bGQg
ZmFpbDwvdGl0bGU+Ci08bGluayByZWw9bWlzbWF0Y2ggaHJlZj1ncmVlbi5odG1sPgotPHN0eWxl
PgotOnJvb3Qge2JhY2tncm91bmQtY29sb3I6Z3JlZW59Ci08L3N0eWxlPgpcIE5vIG5ld2xpbmUg
YXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3Rlc3QvdGVzdGRhdGEvcmVmdGVzdC9yZWZ0
ZXN0X29yXzAtZXhwZWN0ZWQuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3Rlc3QvdGVzdGRhdGEvcmVmdGVzdC9yZWZ0ZXN0
X29yXzAtZXhwZWN0ZWQuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMmI2Nzdl
MDA2MzRiY2QxNmMzMmJhOGQwMjljY2FiMDQwZjAxNjc4MC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci90ZXN0L3Rlc3RkYXRhL3JlZnRlc3QvcmVmdGVz
dF9vcl8wLWV4cGVjdGVkLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwzICswLDAgQEAKLTxzdHls
ZT4KLTpyb290IHtiYWNrZ3JvdW5kLWNvbG9yOnJlZH0KLTwvc3R5bGU+ClwgTm8gbmV3bGluZSBh
dCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvdGVzdC90ZXN0ZGF0YS9yZWZ0ZXN0L3JlZnRl
c3Rfb3JfMC5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy93cHRydW5uZXIvdGVzdC90ZXN0ZGF0YS9yZWZ0ZXN0L3JlZnRlc3Rfb3JfMC5odG1s
CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzYTUxZGUyMTY0NDEwM2E5M2Y1OWQ0YzU2
NTQyOGNjMmQxNjA2ZTU0Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
d3B0cnVubmVyL3Rlc3QvdGVzdGRhdGEvcmVmdGVzdC9yZWZ0ZXN0X29yXzAuaHRtbAorKysgL2Rl
di9udWxsCkBAIC0xLDYgKzAsMCBAQAotPHRpdGxlPk9SIG1hdGNoIHRoYXQgc2hvdWxkIHBhc3M8
L3RpdGxlPgotPGxpbmsgcmVsPW1hdGNoIGhyZWY9cmVkLmh0bWw+Ci08bGluayByZWw9bWF0Y2gg
aHJlZj1ncmVlbi5odG1sPgotPHN0eWxlPgotOnJvb3Qge2JhY2tncm91bmQtY29sb3I6Z3JlZW59
Ci08L3N0eWxlPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3Rl
c3QvdGVzdGRhdGEvcmVmdGVzdC9yZWZ0ZXN0X3JlZl90aW1lb3V0LWV4cGVjdGVkLmh0bWwgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5l
ci90ZXN0L3Rlc3RkYXRhL3JlZnRlc3QvcmVmdGVzdF9yZWZfdGltZW91dC1leHBlY3RlZC5odG1s
CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwNGNiYjcxZTBjM2M0Mjg2YzAwZDRjMDFl
Y2U2YWIxYTFiZWM2MWI4Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
d3B0cnVubmVyL3Rlc3QvdGVzdGRhdGEvcmVmdGVzdC9yZWZ0ZXN0X3JlZl90aW1lb3V0LWV4cGVj
dGVkLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw2ICswLDAgQEAKLTxodG1sIGNsYXNzPSJyZWZ0
ZXN0LXdhaXQiPgotPHRpdGxlPnJlbD1tYXRjaCB0aGF0IHNob3VsZCB0aW1lIG91dCBpbiB0aGUg
cmVmPC90aXRsZT4KLTxsaW5rIHJlbD1tYXRjaCBocmVmPXJlZnRlc3RfcmVmX3RpbWVvdXQtcmVm
Lmh0bWw+Ci08c3R5bGU+Ci06cm9vdCB7YmFja2dyb3VuZC1jb2xvcjpncmVlbn0KLTwvc3R5bGU+
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3dwdHJ1bm5lci90ZXN0L3Rlc3RkYXRhL3JlZnRlc3QvcmVmdGVzdF9yZWZfdGltZW91
dC5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy93cHRydW5uZXIvdGVzdC90ZXN0ZGF0YS9yZWZ0ZXN0L3JlZnRlc3RfcmVmX3RpbWVvdXQuaHRt
bApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYWFmNjhmNWNiNWZhMDRjZDM2NWE3MTkx
ZWVjZWFmYTM1Y2MzY2U0YS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3dwdHJ1bm5lci90ZXN0L3Rlc3RkYXRhL3JlZnRlc3QvcmVmdGVzdF9yZWZfdGltZW91dC5odG1s
CisrKyAvZGV2L251bGwKQEAgLTEsNiArMCwwIEBACi08aHRtbD4KLTx0aXRsZT5yZWw9bWF0Y2gg
dGhhdCBzaG91bGQgdGltZSBvdXQgaW4gdGhlIHJlZjwvdGl0bGU+Ci08bGluayByZWw9bWF0Y2gg
aHJlZj1yZWZ0ZXN0X3JlZl90aW1lb3V0LXJlZi5odG1sPgotPHN0eWxlPgotOnJvb3Qge2JhY2tn
cm91bmQtY29sb3I6Z3JlZW59Ci08L3N0eWxlPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvdGVzdC90ZXN0ZGF0
YS9yZWZ0ZXN0L3JlZnRlc3RfdGltZW91dC1leHBlY3RlZC5odG1sIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvdGVzdC90ZXN0ZGF0
YS9yZWZ0ZXN0L3JlZnRlc3RfdGltZW91dC1leHBlY3RlZC5odG1sCmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAzODE2N2JiNThkNTcxZTc1ZjU0OTA4MTY2YzU0MmFjYTg0NzMxYWVjLi4w
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3Rlc3QvdGVz
dGRhdGEvcmVmdGVzdC9yZWZ0ZXN0X3RpbWVvdXQtZXhwZWN0ZWQuaHRtbAorKysgL2Rldi9udWxs
CkBAIC0xLDMgKzAsMCBAQAotPHN0eWxlPgotOnJvb3Qge2JhY2tncm91bmQtY29sb3I6Z3JlZW59
Ci08L3N0eWxlPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3Rl
c3QvdGVzdGRhdGEvcmVmdGVzdC9yZWZ0ZXN0X3RpbWVvdXQuaHRtbCBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3Rlc3QvdGVzdGRh
dGEvcmVmdGVzdC9yZWZ0ZXN0X3RpbWVvdXQuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggYjEwZTY3NmJmMDA1MmU3YmNiZTJlOTIxNGE2OTBiM2NlNjY1ZGE4OC4uMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci90ZXN0L3Rlc3RkYXRhL3Jl
ZnRlc3QvcmVmdGVzdF90aW1lb3V0Lmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw2ICswLDAgQEAK
LTxodG1sIGNsYXNzPSJyZWZ0ZXN0LXdhaXQiPgotPHRpdGxlPnJlbD1tYXRjaCB0aGF0IHNob3Vs
ZCB0aW1lb3V0PC90aXRsZT4KLTxsaW5rIHJlbD1tYXRjaCBocmVmPWdyZWVuLmh0bWw+Ci08c3R5
bGU+Ci06cm9vdCB7YmFja2dyb3VuZC1jb2xvcjpncmVlbn0KLTwvc3R5bGU+CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1
bm5lci90ZXN0L3Rlc3RkYXRhL3JlZnRlc3QvcmVmdGVzdF93YWl0XzAtZXhwZWN0ZWQuaHRtbCBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVu
bmVyL3Rlc3QvdGVzdGRhdGEvcmVmdGVzdC9yZWZ0ZXN0X3dhaXRfMC1leHBlY3RlZC5odG1sCmRl
bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyYjY3N2UwMDYzNGJjZDE2YzMyYmE4ZDAyOWNj
YWIwNDBmMDE2NzgwLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0t
LSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0
cnVubmVyL3Rlc3QvdGVzdGRhdGEvcmVmdGVzdC9yZWZ0ZXN0X3dhaXRfMC1leHBlY3RlZC5odG1s
CisrKyAvZGV2L251bGwKQEAgLTEsMyArMCwwIEBACi08c3R5bGU+Ci06cm9vdCB7YmFja2dyb3Vu
ZC1jb2xvcjpyZWR9Ci08L3N0eWxlPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
d3B0cnVubmVyL3Rlc3QvdGVzdGRhdGEvcmVmdGVzdC9yZWZ0ZXN0X3dhaXRfMC5odG1sIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIv
dGVzdC90ZXN0ZGF0YS9yZWZ0ZXN0L3JlZnRlc3Rfd2FpdF8wLmh0bWwKZGVsZXRlZCBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDRmOTI3MTVjNjFlN2Q5MjJhOTQ5NWU5NzM3Yzk5NmU3YzA2YzM3ZDQu
LjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvdGVzdC90
ZXN0ZGF0YS9yZWZ0ZXN0L3JlZnRlc3Rfd2FpdF8wLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwx
MyArMCwwIEBACi08aHRtbCBjbGFzcz0icmVmdGVzdC13YWl0Ij4KLTx0aXRsZT5yZWw9bWF0Y2gg
dGhhdCBzaG91bGQgZmFpbDwvdGl0bGU+Ci08bGluayByZWw9bWF0Y2ggaHJlZj1yZWQuaHRtbD4K
LTxzdHlsZT4KLTpyb290IHtiYWNrZ3JvdW5kLWNvbG9yOnJlZH0KLTwvc3R5bGU+Ci08c2NyaXB0
Pgotc2V0VGltZW91dChmdW5jdGlvbigpIHsKLSAgZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnN0
eWxlLmJhY2tncm91bmRDb2xvciA9ICJncmVlbiI7Ci0gIGRvY3VtZW50LmRvY3VtZW50RWxlbWVu
dC5jbGFzc05hbWUgPSAiIjsKLX0sIDIwMDApOwotPC9zY3JpcHQ+Ci08L2h0bWw+CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dw
dHJ1bm5lci90ZXN0L3Rlc3RkYXRhL3JlZnRlc3QvdzNjLWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci90ZXN0L3Rl
c3RkYXRhL3JlZnRlc3QvdzNjLWltcG9ydC5sb2cKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDllZDEwMDgxNDFlY2ViZjVkMzdhYjA0MjI4MWQyNTRlYjA2Y2ZjNGIuLjAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvdGVzdC90ZXN0ZGF0YS9yZWZ0
ZXN0L3czYy1pbXBvcnQubG9nCisrKyAvZGV2L251bGwKQEAgLTEsNTMgKzAsMCBAQAotVGhlIHRl
c3RzIGluIHRoaXMgZGlyZWN0b3J5IHdlcmUgaW1wb3J0ZWQgZnJvbSB0aGUgVzNDIHJlcG9zaXRv
cnkuCi1EbyBOT1QgbW9kaWZ5IHRoZXNlIHRlc3RzIGRpcmVjdGx5IGluIFdlYktpdC4KLUluc3Rl
YWQsIGNyZWF0ZSBhIHB1bGwgcmVxdWVzdCBvbiB0aGUgV1BUIGdpdGh1YjoKLQlodHRwczovL2dp
dGh1Yi5jb20vdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cwotCi1UaGVuIHJ1biB0aGUgVG9vbHMvU2Ny
aXB0cy9pbXBvcnQtdzNjLXRlc3RzIGluIFdlYktpdCB0byByZWltcG9ydAotCi1EbyBOT1QgbW9k
aWZ5IG9yIHJlbW92ZSB0aGlzIGZpbGUuCi0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotUHJvcGVydGllcyBy
ZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotUHJvcGVydHkgdmFsdWVzIHJlcXVpcmlu
ZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLUxpc3Qgb2YgZmlsZXM6
Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRy
dW5uZXIvdGVzdC90ZXN0ZGF0YS9yZWZ0ZXN0L2dyZWVuLWV4cGVjdGVkLmh0bWwKLS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci90ZXN0
L3Rlc3RkYXRhL3JlZnRlc3QvZ3JlZW4tcmVmLWV4cGVjdGVkLmh0bWwKLS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci90ZXN0L3Rlc3Rk
YXRhL3JlZnRlc3QvZ3JlZW4tcmVmLmh0bWwKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci90ZXN0L3Rlc3RkYXRhL3JlZnRlc3QvZ3Jl
ZW4uaHRtbAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvd3B0cnVubmVyL3Rlc3QvdGVzdGRhdGEvcmVmdGVzdC9yZWQuaHRtbAotL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3Rlc3QvdGVz
dGRhdGEvcmVmdGVzdC9yZWZ0ZXN0Lmh0dHBzLWV4cGVjdGVkLmh0bWwKLS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci90ZXN0L3Rlc3Rk
YXRhL3JlZnRlc3QvcmVmdGVzdC5odHRwcy5odG1sCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvdGVzdC90ZXN0ZGF0YS9yZWZ0ZXN0
L3JlZnRlc3RfYW5kX2ZhaWwtZXhwZWN0ZWQuaHRtbAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3Rlc3QvdGVzdGRhdGEvcmVmdGVz
dC9yZWZ0ZXN0X2FuZF9mYWlsLmh0bWwKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci90ZXN0L3Rlc3RkYXRhL3JlZnRlc3QvcmVmdGVz
dF9hbmRfZmFpbF8wLXJlZi1leHBlY3RlZC5odG1sCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvdGVzdC90ZXN0ZGF0YS9yZWZ0ZXN0
L3JlZnRlc3RfYW5kX2ZhaWxfMC1yZWYuaHRtbAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3Rlc3QvdGVzdGRhdGEvcmVmdGVzdC9y
ZWZ0ZXN0X2N5Y2xlLWV4cGVjdGVkLmh0bWwKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci90ZXN0L3Rlc3RkYXRhL3JlZnRlc3QvcmVm
dGVzdF9jeWNsZS5odG1sCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy93cHRydW5uZXIvdGVzdC90ZXN0ZGF0YS9yZWZ0ZXN0L3JlZnRlc3RfY3ljbGVf
MC1yZWYtZXhwZWN0ZWQuaHRtbAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3Rlc3QvdGVzdGRhdGEvcmVmdGVzdC9yZWZ0ZXN0X2N5
Y2xlXzAtcmVmLmh0bWwKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3dwdHJ1bm5lci90ZXN0L3Rlc3RkYXRhL3JlZnRlc3QvcmVmdGVzdF9jeWNsZV8x
LXJlZi1leHBlY3RlZC5odG1sCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy93cHRydW5uZXIvdGVzdC90ZXN0ZGF0YS9yZWZ0ZXN0L3JlZnRlc3RfY3lj
bGVfMS1yZWYuaHRtbAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvd3B0cnVubmVyL3Rlc3QvdGVzdGRhdGEvcmVmdGVzdC9yZWZ0ZXN0X2N5Y2xlX2Zh
aWwtZXhwZWN0ZWQuaHRtbAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvd3B0cnVubmVyL3Rlc3QvdGVzdGRhdGEvcmVmdGVzdC9yZWZ0ZXN0X2N5Y2xl
X2ZhaWwuaHRtbAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvd3B0cnVubmVyL3Rlc3QvdGVzdGRhdGEvcmVmdGVzdC9yZWZ0ZXN0X2N5Y2xlX2ZhaWxf
MC1yZWYtZXhwZWN0ZWQuaHRtbAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3Rlc3QvdGVzdGRhdGEvcmVmdGVzdC9yZWZ0ZXN0X2N5
Y2xlX2ZhaWxfMC1yZWYuaHRtbAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3Rlc3QvdGVzdGRhdGEvcmVmdGVzdC9yZWZ0ZXN0X21h
dGNoLWV4cGVjdGVkLmh0bWwKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci90ZXN0L3Rlc3RkYXRhL3JlZnRlc3QvcmVmdGVzdF9tYXRj
aC5odG1sCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy93cHRydW5uZXIvdGVzdC90ZXN0ZGF0YS9yZWZ0ZXN0L3JlZnRlc3RfbWF0Y2hfZmFpbC1leHBl
Y3RlZC5odG1sCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy93cHRydW5uZXIvdGVzdC90ZXN0ZGF0YS9yZWZ0ZXN0L3JlZnRlc3RfbWF0Y2hfZmFpbC5o
dG1sCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93
cHRydW5uZXIvdGVzdC90ZXN0ZGF0YS9yZWZ0ZXN0L3JlZnRlc3RfbWlzbWF0Y2gtZXhwZWN0ZWQu
aHRtbAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
d3B0cnVubmVyL3Rlc3QvdGVzdGRhdGEvcmVmdGVzdC9yZWZ0ZXN0X21pc21hdGNoLmh0bWwKLS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5l
ci90ZXN0L3Rlc3RkYXRhL3JlZnRlc3QvcmVmdGVzdF9taXNtYXRjaF9mYWlsLWV4cGVjdGVkLmh0
bWwKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dw
dHJ1bm5lci90ZXN0L3Rlc3RkYXRhL3JlZnRlc3QvcmVmdGVzdF9taXNtYXRjaF9mYWlsLmh0bWwK
LS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1
bm5lci90ZXN0L3Rlc3RkYXRhL3JlZnRlc3QvcmVmdGVzdF9vcl8wLWV4cGVjdGVkLmh0bWwKLS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5l
ci90ZXN0L3Rlc3RkYXRhL3JlZnRlc3QvcmVmdGVzdF9vcl8wLmh0bWwKLS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci90ZXN0L3Rlc3Rk
YXRhL3JlZnRlc3QvcmVmdGVzdF9yZWZfdGltZW91dC1leHBlY3RlZC5odG1sCi0vTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvdGVzdC90
ZXN0ZGF0YS9yZWZ0ZXN0L3JlZnRlc3RfcmVmX3RpbWVvdXQuaHRtbAotL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3Rlc3QvdGVzdGRh
dGEvcmVmdGVzdC9yZWZ0ZXN0X3RpbWVvdXQtZXhwZWN0ZWQuaHRtbAotL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3Rlc3QvdGVzdGRh
dGEvcmVmdGVzdC9yZWZ0ZXN0X3RpbWVvdXQuaHRtbAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3Rlc3QvdGVzdGRhdGEvcmVmdGVz
dC9yZWZ0ZXN0X3dhaXRfMC1leHBlY3RlZC5odG1sCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvdGVzdC90ZXN0ZGF0YS9yZWZ0ZXN0
L3JlZnRlc3Rfd2FpdF8wLmh0bWwKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3Rlc3QvdGVzdGRhdGEvdGVzdGhh
cm5lc3MvZmlyZWZveC9zdWJkaXIvdzNjLWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci90ZXN0L3Rlc3RkYXRhL3Rl
c3RoYXJuZXNzL2ZpcmVmb3gvc3ViZGlyL3czYy1pbXBvcnQubG9nCmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAyNmNmNWM3MWM2OThmYTUzZmQzYmI4OGE3ZGQwMzljN2M3ZmFmMmFiLi4w
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3Rlc3QvdGVz
dGRhdGEvdGVzdGhhcm5lc3MvZmlyZWZveC9zdWJkaXIvdzNjLWltcG9ydC5sb2cKKysrIC9kZXYv
bnVsbApAQCAtMSwxOCArMCwwIEBACi1UaGUgdGVzdHMgaW4gdGhpcyBkaXJlY3Rvcnkgd2VyZSBp
bXBvcnRlZCBmcm9tIHRoZSBXM0MgcmVwb3NpdG9yeS4KLURvIE5PVCBtb2RpZnkgdGhlc2UgdGVz
dHMgZGlyZWN0bHkgaW4gV2ViS2l0LgotSW5zdGVhZCwgY3JlYXRlIGEgcHVsbCByZXF1ZXN0IG9u
IHRoZSBXUFQgZ2l0aHViOgotCWh0dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxhdGZvcm0tdGVzdHMv
d3B0Ci0KLVRoZW4gcnVuIHRoZSBUb29scy9TY3JpcHRzL2ltcG9ydC13M2MtdGVzdHMgaW4gV2Vi
S2l0IHRvIHJlaW1wb3J0Ci0KLURvIE5PVCBtb2RpZnkgb3IgcmVtb3ZlIHRoaXMgZmlsZS4KLQot
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tCi1Qcm9wZXJ0aWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1O
b25lCi1Qcm9wZXJ0eSB2YWx1ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLQotTGlzdCBvZiBmaWxlczoKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci90ZXN0L3Rlc3RkYXRhL3Rlc3RoYXJu
ZXNzL2ZpcmVmb3gvc3ViZGlyL3Rlc3RfcHJlZl9pbmhlcml0Lmh0bWwKLS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci90ZXN0L3Rlc3Rk
YXRhL3Rlc3RoYXJuZXNzL2ZpcmVmb3gvc3ViZGlyL3Rlc3RfcHJlZl9yZXNldC5odG1sCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3dwdHJ1bm5lci90ZXN0L3Rlc3RkYXRhL3Rlc3RoYXJuZXNzL2ZpcmVmb3gvdzNjLWltcG9ydC5s
b2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dw
dHJ1bm5lci90ZXN0L3Rlc3RkYXRhL3Rlc3RoYXJuZXNzL2ZpcmVmb3gvdzNjLWltcG9ydC5sb2cK
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGZiMzYwNmVkYjNiZTIxMjkwMjhkODU5ZjBh
ODQ0NjFhOWFmNTAwZjguLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAK
LS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93
cHRydW5uZXIvdGVzdC90ZXN0ZGF0YS90ZXN0aGFybmVzcy9maXJlZm94L3czYy1pbXBvcnQubG9n
CisrKyAvZGV2L251bGwKQEAgLTEsMTggKzAsMCBAQAotVGhlIHRlc3RzIGluIHRoaXMgZGlyZWN0
b3J5IHdlcmUgaW1wb3J0ZWQgZnJvbSB0aGUgVzNDIHJlcG9zaXRvcnkuCi1EbyBOT1QgbW9kaWZ5
IHRoZXNlIHRlc3RzIGRpcmVjdGx5IGluIFdlYktpdC4KLUluc3RlYWQsIGNyZWF0ZSBhIHB1bGwg
cmVxdWVzdCBvbiB0aGUgV1BUIGdpdGh1YjoKLQlodHRwczovL2dpdGh1Yi5jb20vd2ViLXBsYXRm
b3JtLXRlc3RzL3dwdAotCi1UaGVuIHJ1biB0aGUgVG9vbHMvU2NyaXB0cy9pbXBvcnQtdzNjLXRl
c3RzIGluIFdlYktpdCB0byByZWltcG9ydAotCi1EbyBOT1QgbW9kaWZ5IG9yIHJlbW92ZSB0aGlz
IGZpbGUuCi0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotUHJvcGVydGllcyByZXF1aXJpbmcgdmVuZG9yIHBy
ZWZpeGVzOgotTm9uZQotUHJvcGVydHkgdmFsdWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6
Ci1Ob25lCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLUxpc3Qgb2YgZmlsZXM6Ci0vTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvdGVzdC90ZXN0ZGF0
YS90ZXN0aGFybmVzcy9maXJlZm94L3Rlc3RfcHJlZl9kaXIuaHRtbAotL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3Rlc3QvdGVzdGRh
dGEvdGVzdGhhcm5lc3MvZmlyZWZveC90ZXN0X3ByZWZfc2V0Lmh0bWwKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVy
L3Rlc3QvdGVzdGRhdGEvdGVzdGhhcm5lc3Mvc3ViZGlyL3czYy1pbXBvcnQubG9nIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvdGVz
dC90ZXN0ZGF0YS90ZXN0aGFybmVzcy9zdWJkaXIvdzNjLWltcG9ydC5sb2cKZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDg4N2Y4NWVhNzliNWQ4MDA4YjM4NmJjNmQ2YzljZGM3YTBmMWVm
NTQuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvdGVz
dC90ZXN0ZGF0YS90ZXN0aGFybmVzcy9zdWJkaXIvdzNjLWltcG9ydC5sb2cKKysrIC9kZXYvbnVs
bApAQCAtMSwxNyArMCwwIEBACi1UaGUgdGVzdHMgaW4gdGhpcyBkaXJlY3Rvcnkgd2VyZSBpbXBv
cnRlZCBmcm9tIHRoZSBXM0MgcmVwb3NpdG9yeS4KLURvIE5PVCBtb2RpZnkgdGhlc2UgdGVzdHMg
ZGlyZWN0bHkgaW4gV2ViS2l0LgotSW5zdGVhZCwgY3JlYXRlIGEgcHVsbCByZXF1ZXN0IG9uIHRo
ZSBXUFQgZ2l0aHViOgotCWh0dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxhdGZvcm0tdGVzdHMvd3B0
Ci0KLVRoZW4gcnVuIHRoZSBUb29scy9TY3JpcHRzL2ltcG9ydC13M2MtdGVzdHMgaW4gV2ViS2l0
IHRvIHJlaW1wb3J0Ci0KLURvIE5PVCBtb2RpZnkgb3IgcmVtb3ZlIHRoaXMgZmlsZS4KLQotLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tCi1Qcm9wZXJ0aWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25l
Ci1Qcm9wZXJ0eSB2YWx1ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLQotTGlzdCBvZiBmaWxlczoKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci90ZXN0L3Rlc3RkYXRhL3Rlc3RoYXJuZXNz
L3N1YmRpci90ZXN0aGFybmVzc18xLmh0bWwKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3Rlc3QvdGVzdGRhdGEv
dGVzdGhhcm5lc3MvdzNjLWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci90ZXN0L3Rlc3RkYXRhL3Rlc3RoYXJuZXNz
L3czYy1pbXBvcnQubG9nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxNTE4YWRhYjQw
M2Y2YjA5YTRjYmFkNDA5ZWQ4MzJmZTE0N2YyOGFiLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3Rlc3QvdGVzdGRhdGEvdGVzdGhhcm5lc3MvdzNjLWlt
cG9ydC5sb2cKKysrIC9kZXYvbnVsbApAQCAtMSwyMSArMCwwIEBACi1UaGUgdGVzdHMgaW4gdGhp
cyBkaXJlY3Rvcnkgd2VyZSBpbXBvcnRlZCBmcm9tIHRoZSBXM0MgcmVwb3NpdG9yeS4KLURvIE5P
VCBtb2RpZnkgdGhlc2UgdGVzdHMgZGlyZWN0bHkgaW4gV2ViS2l0LgotSW5zdGVhZCwgY3JlYXRl
IGEgcHVsbCByZXF1ZXN0IG9uIHRoZSBXUFQgZ2l0aHViOgotCWh0dHBzOi8vZ2l0aHViLmNvbS93
ZWItcGxhdGZvcm0tdGVzdHMvd3B0Ci0KLVRoZW4gcnVuIHRoZSBUb29scy9TY3JpcHRzL2ltcG9y
dC13M2MtdGVzdHMgaW4gV2ViS2l0IHRvIHJlaW1wb3J0Ci0KLURvIE5PVCBtb2RpZnkgb3IgcmVt
b3ZlIHRoaXMgZmlsZS4KLQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1Qcm9wZXJ0aWVzIHJlcXVpcmluZyB2
ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi1Qcm9wZXJ0eSB2YWx1ZXMgcmVxdWlyaW5nIHZlbmRvciBw
cmVmaXhlczoKLU5vbmUKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotTGlzdCBvZiBmaWxlczoKLS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci90ZXN0
L3Rlc3RkYXRhL3Rlc3RoYXJuZXNzL3Rlc3RoYXJuZXNzLmh0dHBzLmh0bWwKLS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci90ZXN0L3Rl
c3RkYXRhL3Rlc3RoYXJuZXNzL3Rlc3RoYXJuZXNzXzAuaHRtbAotL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3Rlc3QvdGVzdGRhdGEv
dGVzdGhhcm5lc3MvdGVzdGhhcm5lc3NfZXJyb3IuaHRtbAotL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3Rlc3QvdGVzdGRhdGEvdGVz
dGhhcm5lc3MvdGVzdGhhcm5lc3NfbG9uZ190aW1lb3V0Lmh0bWwKLS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci90ZXN0L3Rlc3RkYXRh
L3Rlc3RoYXJuZXNzL3Rlc3RoYXJuZXNzX3RpbWVvdXQuaHRtbApkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvdGVz
dC93M2MtaW1wb3J0LmxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvd3B0cnVubmVyL3Rlc3QvdzNjLWltcG9ydC5sb2cKZGVsZXRlZCBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IGZiMDExYjZiMDRmZGU5NTUyNWUzZjk5NzNjYjdjNzk2NWI1MTQ2MDMu
LjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvdGVzdC93
M2MtaW1wb3J0LmxvZworKysgL2Rldi9udWxsCkBAIC0xLDE4ICswLDAgQEAKLVRoZSB0ZXN0cyBp
biB0aGlzIGRpcmVjdG9yeSB3ZXJlIGltcG9ydGVkIGZyb20gdGhlIFczQyByZXBvc2l0b3J5Lgot
RG8gTk9UIG1vZGlmeSB0aGVzZSB0ZXN0cyBkaXJlY3RseSBpbiBXZWJLaXQuCi1JbnN0ZWFkLCBj
cmVhdGUgYSBwdWxsIHJlcXVlc3Qgb24gdGhlIFdQVCBnaXRodWI6Ci0JaHR0cHM6Ly9naXRodWIu
Y29tL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQKLQotVGhlbiBydW4gdGhlIFRvb2xzL1NjcmlwdHMv
aW1wb3J0LXczYy10ZXN0cyBpbiBXZWJLaXQgdG8gcmVpbXBvcnQKLQotRG8gTk9UIG1vZGlmeSBv
ciByZW1vdmUgdGhpcyBmaWxlLgotCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLVByb3BlcnRpZXMgcmVxdWly
aW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLVByb3BlcnR5IHZhbHVlcyByZXF1aXJpbmcgdmVu
ZG9yIHByZWZpeGVzOgotTm9uZQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1MaXN0IG9mIGZpbGVzOgotL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVy
L3Rlc3QvdGVzdC5jZmcuZXhhbXBsZQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3Rlc3QvdGVzdC5weQpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIv
dG94LmluaSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvd3B0cnVubmVyL3RveC5pbmkKaW5kZXggZmE3OTg1ZWM4MGQ2NjQzYzQ2OGIzYTYxMmU1MWJl
ZTg0NGNiMWIxMi4uYWQzNTAyZTAyYTllODEwMTY5NDBjOGYzOWY1NjU0MGY1YWIxZjI2ZCAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy93cHRydW5uZXIvdG94LmluaQorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci90b3guaW5pCkBAIC0yLDcgKzIsOCBAQAogeGZh
aWxfc3RyaWN0PXRydWUKIAogW3RveF0KLWVudmxpc3QgPSB7cHkyN30te2Jhc2UsY2hyb21lLGVk
Z2UsZmlyZWZveCxpZSxvcGVyYSxzYWZhcmksc2F1Y2Usc2Vydm99LHB5MjctZmxha2U4CitlbnZs
aXN0ID0gcHkyNy17YmFzZSxjaHJvbWUsZWRnZSxmaXJlZm94LGllLG9wZXJhLHNhZmFyaSxzYXVj
ZSxzZXJ2byx3ZWJraXQsd2Via2l0Z3RrX21pbmlicm93c2VyLGVwaXBoYW55fSxweTM2LWJhc2UK
K3NraXBfbWlzc2luZ19pbnRlcnByZXRlcnMgPSB0cnVlCiAKIFt0ZXN0ZW52XQogZGVwcyA9CkBA
IC0xOSwxOCArMjAsMTMgQEAgZGVwcyA9CiAgICAgIHNhZmFyaTogLXJ7dG94aW5pZGlyfS9yZXF1
aXJlbWVudHNfc2FmYXJpLnR4dAogICAgICBzYXVjZTogLXJ7dG94aW5pZGlyfS9yZXF1aXJlbWVu
dHNfc2F1Y2UudHh0CiAgICAgIHNlcnZvOiAtcnt0b3hpbmlkaXJ9L3JlcXVpcmVtZW50c19zZXJ2
by50eHQKKyAgICAgd2Via2l0OiAtcnt0b3hpbmlkaXJ9L3JlcXVpcmVtZW50c193ZWJraXQudHh0
CisgICAgIHdlYmtpdGd0a19taW5pYnJvd3NlcjogLXJ7dG94aW5pZGlyfS9yZXF1aXJlbWVudHNf
d2Via2l0LnR4dAorICAgICBlcGlwaGFueTogLXJ7dG94aW5pZGlyfS9yZXF1aXJlbWVudHNfZXBp
cGhhbnkudHh0CiAKLWNvbW1hbmRzID0gcHl0ZXN0IHtwb3NhcmdzOi0tY292fQorY29tbWFuZHMg
PSBweXRlc3Qge3Bvc2FyZ3N9CiAKIHNldGVudiA9IENVUlJFTlRfVE9YX0VOViA9IHtlbnZuYW1l
fQogCi1bdGVzdGVudjpweTI3LWZsYWtlOF0KLSMgZmxha2U4IHZlcnNpb25zIHNob3VsZCBiZSBr
ZXB0IGluIHN5bmMgYWNyb3NzIHRvb2xzL3RveC5pbmksIHRvb2xzL3dwdC90b3guaW5pLCBhbmQg
dG9vbHMvd3B0cnVubmVyL3RveC5pbmkKLWRlcHMgPQotICAgICBmbGFrZTg9PTMuNS4wCi0gICAg
IHB5Y29kZXN0eWxlPT0yLjMuMQotICAgICBweWZsYWtlcz09MS42LjAKLSAgICAgcGVwOC1uYW1p
bmc9PTAuNC4xCi0KLWNvbW1hbmRzID0KLSAgICAgZmxha2U4IC0tYXBwZW5kLWNvbmZpZz0uLi9m
bGFrZTguaW5pCitwYXNzZW52ID0KKyAgVEFTS0NMVVNURVJfUk9PVF9VUkwKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVu
bmVyL3czYy1pbXBvcnQubG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy93cHRydW5uZXIvdzNjLWltcG9ydC5sb2cKZGVsZXRlZCBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDQzNDVjY2U3OGQ0MDRhODUyMDI3Njc3MGQyYjRhZGFkOGZhMjdiMDQuLjAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvdzNjLWltcG9y
dC5sb2cKKysrIC9kZXYvbnVsbApAQCAtMSwzMyArMCwwIEBACi1UaGUgdGVzdHMgaW4gdGhpcyBk
aXJlY3Rvcnkgd2VyZSBpbXBvcnRlZCBmcm9tIHRoZSBXM0MgcmVwb3NpdG9yeS4KLURvIE5PVCBt
b2RpZnkgdGhlc2UgdGVzdHMgZGlyZWN0bHkgaW4gV2ViS2l0LgotSW5zdGVhZCwgY3JlYXRlIGEg
cHVsbCByZXF1ZXN0IG9uIHRoZSBXUFQgZ2l0aHViOgotCWh0dHBzOi8vZ2l0aHViLmNvbS93ZWIt
cGxhdGZvcm0tdGVzdHMvd3B0Ci0KLVRoZW4gcnVuIHRoZSBUb29scy9TY3JpcHRzL2ltcG9ydC13
M2MtdGVzdHMgaW4gV2ViS2l0IHRvIHJlaW1wb3J0Ci0KLURvIE5PVCBtb2RpZnkgb3IgcmVtb3Zl
IHRoaXMgZmlsZS4KLQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1Qcm9wZXJ0aWVzIHJlcXVpcmluZyB2ZW5k
b3IgcHJlZml4ZXM6Ci1Ob25lCi1Qcm9wZXJ0eSB2YWx1ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVm
aXhlczoKLU5vbmUKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotTGlzdCBvZiBmaWxlczoKLS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci9MSUNFTlNF
Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRy
dW5uZXIvTUFOSUZFU1QuaW4KLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci9SRUFETUUucnN0Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvcmVxdWlyZW1lbnRzLnR4dAot
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVu
bmVyL3JlcXVpcmVtZW50c19jaHJvbWUudHh0Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvcmVxdWlyZW1lbnRzX2Nocm9tZV9hbmRy
b2lkLnR4dAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvd3B0cnVubmVyL3JlcXVpcmVtZW50c19lZGdlLnR4dAotL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3JlcXVpcmVtZW50c19maXJl
Zm94LnR4dAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvd3B0cnVubmVyL3JlcXVpcmVtZW50c19pZS50eHQKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci9yZXF1aXJlbWVudHNfb3BlcmEu
dHh0Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93
cHRydW5uZXIvcmVxdWlyZW1lbnRzX3NhZmFyaS50eHQKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci9yZXF1aXJlbWVudHNfc2F1Y2Uu
dHh0Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93
cHRydW5uZXIvcmVxdWlyZW1lbnRzX3NlcnZvLnR4dAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3JlcXVpcmVtZW50c193ZWJraXQu
dHh0Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93
cHRydW5uZXIvc2V0dXAucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci90b3guaW5pCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyLmRlZmF1bHQuaW5p
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvX19pbml0X18ucHkgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvX19p
bml0X18ucHkKaW5kZXggYTY4MzRiODI4NWE1NmJlZjBlMTU0M2ZkOTAxYzdlNmYyZjhiYzIwMi4u
ZTY5ZGUyOWJiMmQxZDY0MzRiOGIyOWFlNzc1YWQ4YzJlNDhjNTM5MSAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIv
d3B0cnVubmVyL19faW5pdF9fLnB5CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9fX2luaXRfXy5weQpAQCAt
MSArMCwwIEBACi0jIFRoaXMgZmlsZSBpcyByZXF1aXJlZCBmb3IgUHl0aG9uIHRvIHNlYXJjaCB0
aGlzIGRpcmVjdG9yeSBmb3IgbW9kdWxlcy4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3dwdHJ1bm5lci93cHRydW5uZXIvYnJvd3NlcnMvX19pbml0X18ucHkgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5u
ZXIvYnJvd3NlcnMvX19pbml0X18ucHkKaW5kZXggZDg2ODJlMTZhNTUxZTVlY2I0MDlhNWYyZDNk
ZjQ0NGQxY2FiNGI3Yy4uOTU3ZDJhNjg5YWNkYTQ4MDFjZGRjMzUxZTFjMmNkNGMwNmE4ZDdlMyAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy93cHRydW5uZXIvd3B0cnVubmVyL2Jyb3dzZXJzL19faW5pdF9fLnB5CisrKyBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dw
dHJ1bm5lci9icm93c2Vycy9fX2luaXRfXy5weQpAQCAtMTUsMjIgKzE1LDI4IEBAIGEgZGljdGlv
bmFyeSB3aXRoIHRoZSBmaWVsZHMKICJleGVjdXRvcl9rd2FyZ3MiOiBTdHJpbmcgbmFtaW5nIGEg
ZnVuY3Rpb24gdGhhdCB0YWtlcyBodHRwIHNlcnZlciB1cmwgYW5kCiAgICAgICAgICAgICAgICAg
ICAgdGltZW91dCBtdWx0aXBsaWVyIGFuZCByZXR1cm5zIGt3YXJncyB0byB1c2Ugd2hlbiBjcmVh
dGluZwogICAgICAgICAgICAgICAgICAgIHRoZSBleGVjdXRvciBjbGFzcy4KLSJlbnZfb3B0aW9u
cyI6IFN0cmluZyBuYW1pbmcgYSBmdW50aW9uIG9mIG5vIGFyZ3VtZW50cyB0aGF0IHJldHVybnMg
dGhlCisiZW52X29wdGlvbnMiOiBTdHJpbmcgbmFtaW5nIGEgZnVuY3Rpb24gb2Ygbm8gYXJndW1l
bnRzIHRoYXQgcmV0dXJucyB0aGUKICAgICAgICAgICAgICAgIGFyZ3VtZW50cyBwYXNzZWQgdG8g
dGhlIFRlc3RFbnZpcm9ubWVudC4KIAogQWxsIGNsYXNzZXMgYW5kIGZ1bmN0aW9ucyBuYW1lZCBp
biB0aGUgYWJvdmUgZGljdCBtdXN0IGJlIGltcG9ydGVkIGludG8gdGhlCiBtb2R1bGUgZ2xvYmFs
IHNjb3BlLgogIiIiCiAKLXByb2R1Y3RfbGlzdCA9IFsiY2hyb21lIiwKK3Byb2R1Y3RfbGlzdCA9
IFsiYW5kcm9pZF93ZWJ2aWV3IiwKKyAgICAgICAgICAgICAgICAiY2hyb21lIiwKICAgICAgICAg
ICAgICAgICAiY2hyb21lX2FuZHJvaWQiLAorICAgICAgICAgICAgICAgICJjaHJvbWVfaW9zIiwK
KyAgICAgICAgICAgICAgICAiZWRnZWNocm9taXVtIiwKICAgICAgICAgICAgICAgICAiZWRnZSIs
Ci0gICAgICAgICAgICAgICAgImZlbm5lYyIsCisgICAgICAgICAgICAgICAgImVkZ2Vfd2ViZHJp
dmVyIiwKICAgICAgICAgICAgICAgICAiZmlyZWZveCIsCisgICAgICAgICAgICAgICAgImZpcmVm
b3hfYW5kcm9pZCIsCiAgICAgICAgICAgICAgICAgImllIiwKICAgICAgICAgICAgICAgICAic2Fm
YXJpIiwKICAgICAgICAgICAgICAgICAic2F1Y2UiLAogICAgICAgICAgICAgICAgICJzZXJ2byIs
CiAgICAgICAgICAgICAgICAgInNlcnZvZHJpdmVyIiwKICAgICAgICAgICAgICAgICAib3BlcmEi
LAotICAgICAgICAgICAgICAgICJ3ZWJraXQiXQorICAgICAgICAgICAgICAgICJ3ZWJraXQiLAor
ICAgICAgICAgICAgICAgICJ3ZWJraXRndGtfbWluaWJyb3dzZXIiLAorICAgICAgICAgICAgICAg
ICJlcGlwaGFueSJdCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvYnJvd3NlcnMvYW5kcm9pZF93
ZWJ2aWV3LnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy93cHRydW5uZXIvd3B0cnVubmVyL2Jyb3dzZXJzL2FuZHJvaWRfd2Vidmlldy5weQpuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5kYzY4N2I0OGVkN2E5ZGRlODI3MzM0YWU4YjU5MDk2Y2M1OGQyNGQ3Ci0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy93cHRydW5uZXIvd3B0cnVubmVyL2Jyb3dzZXJzL2FuZHJvaWRfd2Vidmlldy5weQpAQCAt
MCwwICsxLDEzNCBAQAoraW1wb3J0IHN1YnByb2Nlc3MKKworZnJvbSAuYmFzZSBpbXBvcnQgQnJv
d3NlciwgRXhlY3V0b3JCcm93c2VyLCByZXF1aXJlX2FyZworZnJvbSAuYmFzZSBpbXBvcnQgZ2V0
X3RpbWVvdXRfbXVsdGlwbGllciAgICMgbm9xYTogRjQwMQorZnJvbSAuY2hyb21lIGltcG9ydCBl
eGVjdXRvcl9rd2FyZ3MgYXMgY2hyb21lX2V4ZWN1dG9yX2t3YXJncworZnJvbSAuLndlYmRyaXZl
cl9zZXJ2ZXIgaW1wb3J0IENocm9tZURyaXZlclNlcnZlcgorZnJvbSAuLmV4ZWN1dG9ycy5leGVj
dXRvcndlYmRyaXZlciBpbXBvcnQgKFdlYkRyaXZlclRlc3RoYXJuZXNzRXhlY3V0b3IsICAjIG5v
cWE6IEY0MDEKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBXZWJE
cml2ZXJSZWZUZXN0RXhlY3V0b3IpICAjIG5vcWE6IEY0MDEKK2Zyb20gLi5leGVjdXRvcnMuZXhl
Y3V0b3JjaHJvbWUgaW1wb3J0IENocm9tZURyaXZlcldkc3BlY0V4ZWN1dG9yICAjIG5vcWE6IEY0
MDEKKworCitfX3dwdHJ1bm5lcl9fID0geyJwcm9kdWN0IjogImFuZHJvaWRfd2VidmlldyIsCisg
ICAgICAgICAgICAgICAgICJjaGVja19hcmdzIjogImNoZWNrX2FyZ3MiLAorICAgICAgICAgICAg
ICAgICAiYnJvd3NlciI6ICJTeXN0ZW1XZWJWaWV3U2hlbGwiLAorICAgICAgICAgICAgICAgICAi
ZXhlY3V0b3IiOiB7InRlc3RoYXJuZXNzIjogIldlYkRyaXZlclRlc3RoYXJuZXNzRXhlY3V0b3Ii
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInJlZnRlc3QiOiAiV2ViRHJpdmVyUmVm
VGVzdEV4ZWN1dG9yIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ3ZHNwZWMiOiAi
Q2hyb21lRHJpdmVyV2RzcGVjRXhlY3V0b3IifSwKKyAgICAgICAgICAgICAgICAgImJyb3dzZXJf
a3dhcmdzIjogImJyb3dzZXJfa3dhcmdzIiwKKyAgICAgICAgICAgICAgICAgImV4ZWN1dG9yX2t3
YXJncyI6ICJleGVjdXRvcl9rd2FyZ3MiLAorICAgICAgICAgICAgICAgICAiZW52X2V4dHJhcyI6
ICJlbnZfZXh0cmFzIiwKKyAgICAgICAgICAgICAgICAgImVudl9vcHRpb25zIjogImVudl9vcHRp
b25zIiwKKyAgICAgICAgICAgICAgICAgInRpbWVvdXRfbXVsdGlwbGllciI6ICJnZXRfdGltZW91
dF9tdWx0aXBsaWVyIn0KKworX3dwdHNlcnZlX3BvcnRzID0gc2V0KCkKKworCitkZWYgY2hlY2tf
YXJncygqKmt3YXJncyk6CisgICAgcmVxdWlyZV9hcmcoa3dhcmdzLCAid2ViZHJpdmVyX2JpbmFy
eSIpCisKKworZGVmIGJyb3dzZXJfa3dhcmdzKHRlc3RfdHlwZSwgcnVuX2luZm9fZGF0YSwgY29u
ZmlnLCAqKmt3YXJncyk6CisgICAgcmV0dXJuIHsiYmluYXJ5Ijoga3dhcmdzWyJiaW5hcnkiXSwK
KyAgICAgICAgICAgICJkZXZpY2Vfc2VyaWFsIjoga3dhcmdzWyJkZXZpY2Vfc2VyaWFsIl0sCisg
ICAgICAgICAgICAid2ViZHJpdmVyX2JpbmFyeSI6IGt3YXJnc1sid2ViZHJpdmVyX2JpbmFyeSJd
LAorICAgICAgICAgICAgIndlYmRyaXZlcl9hcmdzIjoga3dhcmdzLmdldCgid2ViZHJpdmVyX2Fy
Z3MiKX0KKworCitkZWYgZXhlY3V0b3Jfa3dhcmdzKHRlc3RfdHlwZSwgc2VydmVyX2NvbmZpZywg
Y2FjaGVfbWFuYWdlciwgcnVuX2luZm9fZGF0YSwKKyAgICAgICAgICAgICAgICAgICAgKiprd2Fy
Z3MpOgorICAgICMgVXNlIHVwZGF0ZSgpIHRvIG1vZGlmeSB0aGUgZ2xvYmFsIGxpc3QgaW4gcGxh
Y2UuCisgICAgX3dwdHNlcnZlX3BvcnRzLnVwZGF0ZShzZXQoCisgICAgICAgIHNlcnZlcl9jb25m
aWdbJ3BvcnRzJ11bJ2h0dHAnXSArIHNlcnZlcl9jb25maWdbJ3BvcnRzJ11bJ2h0dHBzJ10gKwor
ICAgICAgICBzZXJ2ZXJfY29uZmlnWydwb3J0cyddWyd3cyddICsgc2VydmVyX2NvbmZpZ1sncG9y
dHMnXVsnd3NzJ10KKyAgICApKQorCisgICAgZXhlY3V0b3Jfa3dhcmdzID0gY2hyb21lX2V4ZWN1
dG9yX2t3YXJncyh0ZXN0X3R5cGUsIHNlcnZlcl9jb25maWcsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBjYWNoZV9tYW5hZ2VyLCBydW5faW5mb19kYXRhLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiprd2FyZ3MpCisg
ICAgZGVsIGV4ZWN1dG9yX2t3YXJnc1siY2FwYWJpbGl0aWVzIl1bImdvb2c6Y2hyb21lT3B0aW9u
cyJdWyJwcmVmcyJdCisgICAgZGVsIGV4ZWN1dG9yX2t3YXJnc1siY2FwYWJpbGl0aWVzIl1bImdv
b2c6Y2hyb21lT3B0aW9ucyJdWyJ1c2VBdXRvbWF0aW9uRXh0ZW5zaW9uIl0KKyAgICBjYXBhYmls
aXRpZXMgPSBleGVjdXRvcl9rd2FyZ3NbImNhcGFiaWxpdGllcyJdCisgICAgIyBOb3RlIHRoYXQg
Zm9yIFdlYlZpZXcsIHdlIGxhdW5jaCBhIHRlc3Qgc2hlbGwgYW5kIGhhdmUgdGhlIHRlc3Qgc2hl
bGwgdXNlIFdlYlZpZXcuCisgICAgIyBodHRwczovL2Nocm9taXVtLmdvb2dsZXNvdXJjZS5jb20v
Y2hyb21pdW0vc3JjLysvSEVBRC9hbmRyb2lkX3dlYnZpZXcvZG9jcy93ZWJ2aWV3LXNoZWxsLm1k
CisgICAgY2FwYWJpbGl0aWVzWyJnb29nOmNocm9tZU9wdGlvbnMiXVsiYW5kcm9pZFBhY2thZ2Ui
XSA9IFwKKyAgICAgICAgIm9yZy5jaHJvbWl1bS53ZWJ2aWV3X3NoZWxsIgorICAgIGNhcGFiaWxp
dGllc1siZ29vZzpjaHJvbWVPcHRpb25zIl1bImFuZHJvaWRBY3Rpdml0eSJdID0gIi5XZWJQbGF0
Zm9ybVRlc3RzQWN0aXZpdHkiCisgICAgaWYga3dhcmdzLmdldCgnZGV2aWNlX3NlcmlhbCcpOgor
ICAgICAgICBjYXBhYmlsaXRpZXNbImdvb2c6Y2hyb21lT3B0aW9ucyJdWyJhbmRyb2lkRGV2aWNl
U2VyaWFsIl0gPSBrd2FyZ3NbJ2RldmljZV9zZXJpYWwnXQorCisgICAgIyBXb3JrYXJvdW5kOiBk
cml2ZXIucXVpdCgpIGNhbm5vdCBxdWl0IFN5c3RlbVdlYlZpZXdTaGVsbC4KKyAgICBleGVjdXRv
cl9rd2FyZ3NbInBhdXNlX2FmdGVyX3Rlc3QiXSA9IEZhbHNlCisgICAgIyBXb3JrYXJvdW5kOiBk
cml2ZXIuY2xvc2UoKSBpcyBub3Qgc3VwcG9ydGVkLgorICAgIGV4ZWN1dG9yX2t3YXJnc1sicmVz
dGFydF9hZnRlcl90ZXN0Il0gPSBUcnVlCisgICAgZXhlY3V0b3Jfa3dhcmdzWyJjbG9zZV9hZnRl
cl9kb25lIl0gPSBGYWxzZQorICAgIHJldHVybiBleGVjdXRvcl9rd2FyZ3MKKworCitkZWYgZW52
X2V4dHJhcygqKmt3YXJncyk6CisgICAgcmV0dXJuIFtdCisKKworZGVmIGVudl9vcHRpb25zKCk6
CisgICAgIyBhbGxvdyB0aGUgdXNlIG9mIGhvc3QtcmVzb2x2ZXItcnVsZXMgaW4gbGlldSBvZiBt
b2RpZnlpbmcgL2V0Yy9ob3N0cyBmaWxlCisgICAgcmV0dXJuIHsic2VydmVyX2hvc3QiOiAiMTI3
LjAuMC4xIn0KKworCisjVE9ETzogcmVmYWN0b3IgY29tbW9uIGVsZW1lbnRzIG9mIFN5c3RlbVdl
YlZpZXdTaGVsbCBhbmQgQ2hyb21lQW5kcm9pZEJyb3dzZXIKK2NsYXNzIFN5c3RlbVdlYlZpZXdT
aGVsbChCcm93c2VyKToKKyAgICAiIiJDaHJvbWUgaXMgYmFja2VkIGJ5IGNocm9tZWRyaXZlciwg
d2hpY2ggaXMgc3VwcGxpZWQgdGhyb3VnaAorICAgIGBgd3B0cnVubmVyLndlYmRyaXZlci5DaHJv
bWVEcml2ZXJTZXJ2ZXJgYC4KKyAgICAiIiIKKworICAgIGRlZiBfX2luaXRfXyhzZWxmLCBsb2dn
ZXIsIGJpbmFyeSwgd2ViZHJpdmVyX2JpbmFyeT0iY2hyb21lZHJpdmVyIiwKKyAgICAgICAgICAg
ICAgICAgZGV2aWNlX3NlcmlhbD1Ob25lLAorICAgICAgICAgICAgICAgICB3ZWJkcml2ZXJfYXJn
cz1Ob25lKToKKyAgICAgICAgIiIiQ3JlYXRlcyBhIG5ldyByZXByZXNlbnRhdGlvbiBvZiBDaHJv
bWUuICBUaGUgYGJpbmFyeWAgYXJndW1lbnQgZ2l2ZXMKKyAgICAgICAgdGhlIGJyb3dzZXIgYmlu
YXJ5IHRvIHVzZSBmb3IgdGVzdGluZy4iIiIKKyAgICAgICAgQnJvd3Nlci5fX2luaXRfXyhzZWxm
LCBsb2dnZXIpCisgICAgICAgIHNlbGYuYmluYXJ5ID0gYmluYXJ5CisgICAgICAgIHNlbGYuZGV2
aWNlX3NlcmlhbCA9IGRldmljZV9zZXJpYWwKKyAgICAgICAgc2VsZi5zZXJ2ZXIgPSBDaHJvbWVE
cml2ZXJTZXJ2ZXIoc2VsZi5sb2dnZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGJpbmFyeT13ZWJkcml2ZXJfYmluYXJ5LAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBhcmdzPXdlYmRyaXZlcl9hcmdzKQorICAgICAgICBzZWxmLnNl
dHVwX2FkYl9yZXZlcnNlKCkKKworICAgIGRlZiBfYWRiX3J1bihzZWxmLCBhcmdzKToKKyAgICAg
ICAgY21kID0gWydhZGInXQorICAgICAgICBpZiBzZWxmLmRldmljZV9zZXJpYWw6CisgICAgICAg
ICAgICBjbWQuZXh0ZW5kKFsnLXMnLCBzZWxmLmRldmljZV9zZXJpYWxdKQorICAgICAgICBjbWQu
ZXh0ZW5kKGFyZ3MpCisgICAgICAgIHNlbGYubG9nZ2VyLmluZm8oJyAnLmpvaW4oY21kKSkKKyAg
ICAgICAgc3VicHJvY2Vzcy5jaGVja19jYWxsKGNtZCkKKworICAgIGRlZiBzZXR1cF9hZGJfcmV2
ZXJzZShzZWxmKToKKyAgICAgICAgc2VsZi5fYWRiX3J1bihbJ3dhaXQtZm9yLWRldmljZSddKQor
ICAgICAgICBzZWxmLl9hZGJfcnVuKFsnZm9yd2FyZCcsICctLXJlbW92ZS1hbGwnXSkKKyAgICAg
ICAgc2VsZi5fYWRiX3J1bihbJ3JldmVyc2UnLCAnLS1yZW1vdmUtYWxsJ10pCisgICAgICAgICMg
ImFkYiByZXZlcnNlIiBiYXNpY2FsbHkgZm9yd2FyZHMgbmV0d29yayBjb25uZWN0aW9uIGZyb20g
ZGV2aWNlIHRvCisgICAgICAgICMgaG9zdC4KKyAgICAgICAgZm9yIHBvcnQgaW4gX3dwdHNlcnZl
X3BvcnRzOgorICAgICAgICAgICAgc2VsZi5fYWRiX3J1bihbJ3JldmVyc2UnLCAndGNwOiVkJyAl
IHBvcnQsICd0Y3A6JWQnICUgcG9ydF0pCisKKyAgICBkZWYgc3RhcnQoc2VsZiwgKiprd2FyZ3Mp
OgorICAgICAgICBzZWxmLnNlcnZlci5zdGFydChibG9jaz1GYWxzZSkKKworICAgIGRlZiBzdG9w
KHNlbGYsIGZvcmNlPUZhbHNlKToKKyAgICAgICAgc2VsZi5zZXJ2ZXIuc3RvcChmb3JjZT1mb3Jj
ZSkKKworICAgIGRlZiBwaWQoc2VsZik6CisgICAgICAgIHJldHVybiBzZWxmLnNlcnZlci5waWQK
KworICAgIGRlZiBpc19hbGl2ZShzZWxmKToKKyAgICAgICAgIyBUT0RPKGF0byk6IFRoaXMgb25s
eSBpbmRpY2F0ZXMgdGhlIGRyaXZlciBpcyBhbGl2ZSwKKyAgICAgICAgIyBhbmQgZG9lc24ndCBz
YXkgYW55dGhpbmcgYWJvdXQgd2hldGhlciBhIGJyb3dzZXIgc2Vzc2lvbgorICAgICAgICAjIGlz
IGFjdGl2ZS4KKyAgICAgICAgcmV0dXJuIHNlbGYuc2VydmVyLmlzX2FsaXZlCisKKyAgICBkZWYg
Y2xlYW51cChzZWxmKToKKyAgICAgICAgc2VsZi5zdG9wKCkKKyAgICAgICAgc2VsZi5fYWRiX3J1
bihbJ2ZvcndhcmQnLCAnLS1yZW1vdmUtYWxsJ10pCisgICAgICAgIHNlbGYuX2FkYl9ydW4oWydy
ZXZlcnNlJywgJy0tcmVtb3ZlLWFsbCddKQorCisgICAgZGVmIGV4ZWN1dG9yX2Jyb3dzZXIoc2Vs
Zik6CisgICAgICAgIHJldHVybiBFeGVjdXRvckJyb3dzZXIsIHsid2ViZHJpdmVyX3VybCI6IHNl
bGYuc2VydmVyLnVybH0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9icm93c2Vycy9iYXNlLnB5
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRy
dW5uZXIvd3B0cnVubmVyL2Jyb3dzZXJzL2Jhc2UucHkKaW5kZXggZGMwM2VmNzExYjYwMTRlN2Yz
ZDhhNDVlZjdjOTA5ODg5MGJiMDUwNS4uNjU1MzQ0NTgxOTczYzE1YjY1NzcyOWZlYjczNmRkMjA3
M2Q3OWEzMCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2Jyb3dzZXJzL2Jhc2UucHkKKysrIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5u
ZXIvd3B0cnVubmVyL2Jyb3dzZXJzL2Jhc2UucHkKQEAgLTIsMTIgKzIsMzIgQEAgaW1wb3J0IG9z
CiBpbXBvcnQgcGxhdGZvcm0KIGltcG9ydCBzb2NrZXQKIGZyb20gYWJjIGltcG9ydCBBQkNNZXRh
LCBhYnN0cmFjdG1ldGhvZAorZnJvbSBjb3B5IGltcG9ydCBkZWVwY29weQogCiBmcm9tIC4ud3B0
Y29tbWFuZGxpbmUgaW1wb3J0IHJlcXVpcmVfYXJnICAjIG5vcWE6IEY0MDEKIAogaGVyZSA9IG9z
LnBhdGguc3BsaXQoX19maWxlX18pWzBdCiAKIAorZGVmIGluaGVyaXQoc3VwZXJfbW9kdWxlLCBj
aGlsZF9nbG9iYWxzLCBwcm9kdWN0X25hbWUpOgorICAgIHN1cGVyX3dwdHJ1bm5lciA9IHN1cGVy
X21vZHVsZS5fX3dwdHJ1bm5lcl9fCisgICAgY2hpbGRfZ2xvYmFsc1siX193cHRydW5uZXJfXyJd
ID0gY2hpbGRfd3B0cnVubmVyID0gZGVlcGNvcHkoc3VwZXJfd3B0cnVubmVyKQorCisgICAgY2hp
bGRfd3B0cnVubmVyWyJwcm9kdWN0Il0gPSBwcm9kdWN0X25hbWUKKworICAgIGZvciBrIGluICgi
Y2hlY2tfYXJncyIsICJicm93c2VyIiwgImJyb3dzZXJfa3dhcmdzIiwgImV4ZWN1dG9yX2t3YXJn
cyIsCisgICAgICAgICAgICAgICJlbnZfZXh0cmFzIiwgImVudl9vcHRpb25zIiwgInRpbWVvdXRf
bXVsdGlwbGllciIpOgorICAgICAgICBhdHRyID0gc3VwZXJfd3B0cnVubmVyW2tdCisgICAgICAg
IGNoaWxkX2dsb2JhbHNbYXR0cl0gPSBnZXRhdHRyKHN1cGVyX21vZHVsZSwgYXR0cikKKworICAg
IGZvciB2IGluIHN1cGVyX21vZHVsZS5fX3dwdHJ1bm5lcl9fWyJleGVjdXRvciJdLnZhbHVlcygp
OgorICAgICAgICBjaGlsZF9nbG9iYWxzW3ZdID0gZ2V0YXR0cihzdXBlcl9tb2R1bGUsIHYpCisK
KyAgICBpZiAicnVuX2luZm9fZXh0cmFzIiBpbiBzdXBlcl93cHRydW5uZXI6CisgICAgICAgIGF0
dHIgPSBzdXBlcl93cHRydW5uZXJbInJ1bl9pbmZvX2V4dHJhcyJdCisgICAgICAgIGNoaWxkX2ds
b2JhbHNbYXR0cl0gPSBnZXRhdHRyKHN1cGVyX21vZHVsZSwgYXR0cikKKworCiBkZWYgY21kX2Fy
ZyhuYW1lLCB2YWx1ZT1Ob25lKToKICAgICBwcmVmaXggPSAiLSIgaWYgcGxhdGZvcm0uc3lzdGVt
KCkgPT0gIldpbmRvd3MiIGVsc2UgIi0tIgogICAgIHJ2ID0gcHJlZml4ICsgbmFtZQpAQCAtMTYs
MjcgKzM2LDQ4IEBAIGRlZiBjbWRfYXJnKG5hbWUsIHZhbHVlPU5vbmUpOgogICAgIHJldHVybiBy
dgogCiAKLWRlZiBnZXRfZnJlZV9wb3J0KHN0YXJ0X3BvcnQsIGV4Y2x1ZGU9Tm9uZSk6Ci0gICAg
IiIiR2V0IHRoZSBmaXJzdCBwb3J0IG51bWJlciBhZnRlciBzdGFydF9wb3J0IChpbmNsdXNpdmUp
IHRoYXQgaXMKLSAgICBub3QgY3VycmVudGx5IGJvdW5kLgorZGVmIG1heWJlX2FkZF9hcmdzKHJl
cXVpcmVkX2FyZ3MsIGN1cnJlbnRfYXJncyk6CisgICAgZm9yIHJlcXVpcmVkX2FyZyBpbiByZXF1
aXJlZF9hcmdzOgorICAgICAgICAjIElmIHRoZSBhcmcgaXMgaW4gdGhlIGZvcm0gb2YgInZhcmlh
YmxlPXZhbHVlIiwgb25seSBhZGQgaXQgaWYKKyAgICAgICAgIyBubyBhcmcgd2l0aCBhbm90aGVy
IHZhbHVlIGZvciAidmFyaWFibGUiIGlzIGFscmVhZHkgdGhlcmUuCisgICAgICAgIGlmICI9IiBp
biByZXF1aXJlZF9hcmc6CisgICAgICAgICAgICByZXF1aXJlZF9hcmdfcHJlZml4ID0gIiVzPSIg
JSByZXF1aXJlZF9hcmcuc3BsaXQoIj0iKVswXQorICAgICAgICAgICAgaWYgbm90IGFueShpdGVt
LnN0YXJ0c3dpdGgocmVxdWlyZWRfYXJnX3ByZWZpeCkgZm9yIGl0ZW0gaW4gY3VycmVudF9hcmdz
KToKKyAgICAgICAgICAgICAgICBjdXJyZW50X2FyZ3MuYXBwZW5kKHJlcXVpcmVkX2FyZykKKyAg
ICAgICAgZWxzZToKKyAgICAgICAgICAgIGlmIHJlcXVpcmVkX2FyZyBub3QgaW4gY3VycmVudF9h
cmdzOgorICAgICAgICAgICAgICAgIGN1cnJlbnRfYXJncy5hcHBlbmQocmVxdWlyZWRfYXJnKQor
ICAgIHJldHVybiBjdXJyZW50X2FyZ3MKKworCitkZWYgY2VydGlmaWNhdGVfZG9tYWluX2xpc3Qo
bGlzdF9vZl9kb21haW5zLCBjZXJ0aWZpY2F0ZV9maWxlKToKKyAgICAiIiJCdWlsZCBhIGxpc3Qg
b2YgZG9tYWlucyB3aGVyZSBjZXJ0aWZpY2F0ZV9maWxlIHNob3VsZCBiZSB1c2VkIiIiCisgICAg
Y2VydF9saXN0ID0gW10KKyAgICBmb3IgZG9tYWluIGluIGxpc3Rfb2ZfZG9tYWluczoKKyAgICAg
ICAgY2VydF9saXN0LmFwcGVuZCh7Imhvc3QiOiBkb21haW4sICJjZXJ0aWZpY2F0ZUZpbGUiOiBj
ZXJ0aWZpY2F0ZV9maWxlfSkKKyAgICByZXR1cm4gY2VydF9saXN0CisKIAotICAgIDpwYXJhbSBz
dGFydF9wb3J0OiBJbnRlZ2VyIHBvcnQgbnVtYmVyIGF0IHdoaWNoIHRvIHN0YXJ0IHRlc3Rpbmcu
Ci0gICAgOnBhcmFtIGV4Y2x1ZGU6IFNldCBvZiBwb3J0IG51bWJlcnMgdG8gc2tpcCIiIgotICAg
IHBvcnQgPSBzdGFydF9wb3J0CitkZWYgZ2V0X2ZyZWVfcG9ydCgpOgorICAgICIiIkdldCBhIHJh
bmRvbSB1bmJvdW5kIHBvcnQiIiIKICAgICB3aGlsZSBUcnVlOgotICAgICAgICBpZiBleGNsdWRl
IGFuZCBwb3J0IGluIGV4Y2x1ZGU6Ci0gICAgICAgICAgICBwb3J0ICs9IDEKLSAgICAgICAgICAg
IGNvbnRpbnVlCiAgICAgICAgIHMgPSBzb2NrZXQuc29ja2V0KCkKICAgICAgICAgdHJ5OgotICAg
ICAgICAgICAgcy5iaW5kKCgiMTI3LjAuMC4xIiwgcG9ydCkpCisgICAgICAgICAgICBzLmJpbmQo
KCIxMjcuMC4wLjEiLCAwKSkKICAgICAgICAgZXhjZXB0IHNvY2tldC5lcnJvcjoKLSAgICAgICAg
ICAgIHBvcnQgKz0gMQorICAgICAgICAgICAgY29udGludWUKICAgICAgICAgZWxzZToKLSAgICAg
ICAgICAgIHJldHVybiBwb3J0CisgICAgICAgICAgICByZXR1cm4gcy5nZXRzb2NrbmFtZSgpWzFd
CiAgICAgICAgIGZpbmFsbHk6CiAgICAgICAgICAgICBzLmNsb3NlKCkKIAorCitkZWYgZ2V0X3Rp
bWVvdXRfbXVsdGlwbGllcih0ZXN0X3R5cGUsIHJ1bl9pbmZvX2RhdGEsICoqa3dhcmdzKToKKyAg
ICBpZiBrd2FyZ3NbInRpbWVvdXRfbXVsdGlwbGllciJdIGlzIG5vdCBOb25lOgorICAgICAgICBy
ZXR1cm4ga3dhcmdzWyJ0aW1lb3V0X211bHRpcGxpZXIiXQorICAgIHJldHVybiAxCisKKwogZGVm
IGJyb3dzZXJfY29tbWFuZChiaW5hcnksIGFyZ3MsIGRlYnVnX2luZm8pOgogICAgIGlmIGRlYnVn
X2luZm86CiAgICAgICAgIGlmIGRlYnVnX2luZm8ucmVxdWlyZXNFc2NhcGVkQXJnczoKQEAgLTU1
LDIxICs5NiwyMSBAQCBjbGFzcyBCcm93c2VyRXJyb3IoRXhjZXB0aW9uKToKIAogCiBjbGFzcyBC
cm93c2VyKG9iamVjdCk6CisgICAgIiIiQWJzdHJhY3QgY2xhc3Mgc2VydmluZyBhcyB0aGUgYmFz
aXMgZm9yIEJyb3dzZXIgaW1wbGVtZW50YXRpb25zLgorCisgICAgVGhlIEJyb3dzZXIgaXMgdXNl
ZCBpbiB0aGUgVGVzdFJ1bm5lck1hbmFnZXIgdG8gc3RhcnQgYW5kIHN0b3AgdGhlIGJyb3dzZXIK
KyAgICBwcm9jZXNzLCBhbmQgdG8gY2hlY2sgdGhlIHN0YXRlIG9mIHRoYXQgcHJvY2Vzcy4gVGhp
cyBjbGFzcyBhbHNvIGFjdHMgYXMgYQorICAgIGNvbnRleHQgbWFuYWdlciwgZW5hYmxpbmcgaXQg
dG8gZG8gYnJvd3Nlci1zcGVjaWZpYyBzZXR1cCBhdCB0aGUgc3RhcnQgb2YKKyAgICB0aGUgdGVz
dHJ1biBhbmQgY2xlYW51cCBhZnRlciB0aGUgcnVuIGlzIGNvbXBsZXRlLgorCisgICAgOnBhcmFt
IGxvZ2dlcjogU3RydWN0dXJlZCBsb2dnZXIgdG8gdXNlIGZvciBvdXRwdXQuCisgICAgIiIiCiAg
ICAgX19tZXRhY2xhc3NfXyA9IEFCQ01ldGEKIAogICAgIHByb2Nlc3NfY2xzID0gTm9uZQogICAg
IGluaXRfdGltZW91dCA9IDMwCiAKICAgICBkZWYgX19pbml0X18oc2VsZiwgbG9nZ2VyKToKLSAg
ICAgICAgIiIiQWJzdHJhY3QgY2xhc3Mgc2VydmluZyBhcyB0aGUgYmFzaXMgZm9yIEJyb3dzZXIg
aW1wbGVtZW50YXRpb25zLgotCi0gICAgICAgIFRoZSBCcm93c2VyIGlzIHVzZWQgaW4gdGhlIFRl
c3RSdW5uZXJNYW5hZ2VyIHRvIHN0YXJ0IGFuZCBzdG9wIHRoZSBicm93c2VyCi0gICAgICAgIHBy
b2Nlc3MsIGFuZCB0byBjaGVjayB0aGUgc3RhdGUgb2YgdGhhdCBwcm9jZXNzLiBUaGlzIGNsYXNz
IGFsc28gYWN0cyBhcyBhCi0gICAgICAgIGNvbnRleHQgbWFuYWdlciwgZW5hYmxpbmcgaXQgdG8g
ZG8gYnJvd3Nlci1zcGVjaWZpYyBzZXR1cCBhdCB0aGUgc3RhcnQgb2YKLSAgICAgICAgdGhlIHRl
c3RydW4gYW5kIGNsZWFudXAgYWZ0ZXIgdGhlIHJ1biBpcyBjb21wbGV0ZS4KLQotICAgICAgICA6
cGFyYW0gbG9nZ2VyOiBTdHJ1Y3R1cmVkIGxvZ2dlciB0byB1c2UgZm9yIG91dHB1dC4KLSAgICAg
ICAgIiIiCiAgICAgICAgIHNlbGYubG9nZ2VyID0gbG9nZ2VyCiAKICAgICBkZWYgX19lbnRlcl9f
KHNlbGYpOgpAQCAtMTE5LDE1ICsxNjAsMTEgQEAgY2xhc3MgQnJvd3NlcihvYmplY3QpOgogICAg
ICAgICB3aXRoIHdoaWNoIGl0IHNob3VsZCBiZSBpbnN0YW50aWF0ZWQiIiIKICAgICAgICAgcmV0
dXJuIEV4ZWN1dG9yQnJvd3Nlciwge30KIAotICAgIGRlZiBjaGVja19mb3JfY3Jhc2hlcyhzZWxm
KToKLSAgICAgICAgIiIiQ2hlY2sgZm9yIGNyYXNoZXMgdGhhdCBkaWRuJ3QgY2F1c2UgdGhlIGJy
b3dzZXIgcHJvY2VzcyB0byB0ZXJtaW5hdGUiIiIKKyAgICBkZWYgY2hlY2tfY3Jhc2goc2VsZiwg
cHJvY2VzcywgdGVzdCk6CisgICAgICAgICIiIkNoZWNrIGlmIGEgY3Jhc2ggb2NjdXJlZCBhbmQg
b3V0cHV0IGFueSB1c2VmdWwgaW5mb3JtYXRpb24gdG8gdGhlCisgICAgICAgIGxvZy4gUmV0dXJu
cyBhIGJvb2xlYW4gaW5kaWNhdGluZyB3aGV0aGVyIGEgY3Jhc2ggb2NjdXJlZC4iIiIKICAgICAg
ICAgcmV0dXJuIEZhbHNlCiAKLSAgICBkZWYgbG9nX2NyYXNoKHNlbGYsIHByb2Nlc3MsIHRlc3Qp
OgotICAgICAgICAiIiJSZXR1cm4gYSBsaXN0IG9mIGRpY3Rpb25hcmllcyBjb250YWluaW5nIGlu
Zm9ybWF0aW9uIGFib3V0IGNyYXNoZXMgdGhhdCBoYXBwZW5kCi0gICAgICAgIGluIHRoZSBicm93
c2VyLCBvciBhbiBlbXB0eSBsaXN0IGlmIG5vIGNyYXNoZXMgb2NjdXJyZWQiIiIKLSAgICAgICAg
c2VsZi5sb2dnZXIuY3Jhc2gocHJvY2VzcywgdGVzdCkKLQogCiBjbGFzcyBOdWxsQnJvd3NlcihC
cm93c2VyKToKICAgICBkZWYgX19pbml0X18oc2VsZiwgbG9nZ2VyLCAqKmt3YXJncyk6CkBAIC0x
NTMsMTQgKzE5MCwxNCBAQCBjbGFzcyBOdWxsQnJvd3NlcihCcm93c2VyKToKIAogCiBjbGFzcyBF
eGVjdXRvckJyb3dzZXIob2JqZWN0KToKKyAgICAiIiJWaWV3IG9mIHRoZSBCcm93c2VyIHVzZWQg
YnkgdGhlIEV4ZWN1dG9yIG9iamVjdC4KKyAgICBUaGlzIGlzIG5lZWRlZCBiZWNhdXNlIHRoZSBF
eGVjdXRvciBydW5zIGluIGEgY2hpbGQgcHJvY2VzcyBhbmQKKyAgICB3ZSBjYW4ndCBzaGlwIEJy
b3dzZXIgaW5zdGFuY2VzIGJldHdlZW4gcHJvY2Vzc2VzIG9uIFdpbmRvd3MuCisKKyAgICBUeXBp
Y2FsbHkgdGhpcyB3aWxsIGhhdmUgYSBmZXcgcHJvZHVjdC1zcGVjaWZpYyBwcm9wZXJ0aWVzIHNl
dCwKKyAgICBidXQgaW4gc29tZSBjYXNlcyBpdCBtYXkgaGF2ZSBtb3JlIGVsYWJvcmF0ZSBtZXRo
b2RzIGZvciBzZXR0aW5nCisgICAgdXAgdGhlIGJyb3dzZXIgZnJvbSB0aGUgcnVubmVyIHByb2Nl
c3MuCisgICAgIiIiCiAgICAgZGVmIF9faW5pdF9fKHNlbGYsICoqa3dhcmdzKToKLSAgICAgICAg
IiIiVmlldyBvZiB0aGUgQnJvd3NlciB1c2VkIGJ5IHRoZSBFeGVjdXRvciBvYmplY3QuCi0gICAg
ICAgIFRoaXMgaXMgbmVlZGVkIGJlY2F1c2UgdGhlIEV4ZWN1dG9yIHJ1bnMgaW4gYSBjaGlsZCBw
cm9jZXNzIGFuZAotICAgICAgICB3ZSBjYW4ndCBzaGlwIEJyb3dzZXIgaW5zdGFuY2VzIGJldHdl
ZW4gcHJvY2Vzc2VzIG9uIFdpbmRvd3MuCi0KLSAgICAgICAgVHlwaWNhbGx5IHRoaXMgd2lsbCBo
YXZlIGEgZmV3IHByb2R1Y3Qtc3BlY2lmaWMgcHJvcGVydGllcyBzZXQsCi0gICAgICAgIGJ1dCBp
biBzb21lIGNhc2VzIGl0IG1heSBoYXZlIG1vcmUgZWxhYm9yYXRlIG1ldGhvZHMgZm9yIHNldHRp
bmcKLSAgICAgICAgdXAgdGhlIGJyb3dzZXIgZnJvbSB0aGUgcnVubmVyIHByb2Nlc3MuCi0gICAg
ICAgICIiIgogICAgICAgICBmb3IgaywgdiBpbiBrd2FyZ3MuaXRlcml0ZW1zKCk6CiAgICAgICAg
ICAgICBzZXRhdHRyKHNlbGYsIGssIHYpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvYnJvd3Nl
cnMvY2hyb21lLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2Jyb3dzZXJzL2Nocm9tZS5weQppbmRleCA4YjBi
YTQ1ODVhOTQzNTk4YjRjOTA4ZjJlMmRhNTZiMGI2MTUwNWE2Li44MDYxNGM1ZTU1MWMzNWRkMWNm
MmJiZDEyNDk1ZDQwZTAyMzkxMzcxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvYnJvd3NlcnMv
Y2hyb21lLnB5CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9icm93c2Vycy9jaHJvbWUucHkKQEAgLTEsMjEg
KzEsMjMgQEAKIGZyb20gLmJhc2UgaW1wb3J0IEJyb3dzZXIsIEV4ZWN1dG9yQnJvd3NlciwgcmVx
dWlyZV9hcmcKK2Zyb20gLmJhc2UgaW1wb3J0IGdldF90aW1lb3V0X211bHRpcGxpZXIgICAjIG5v
cWE6IEY0MDEKIGZyb20gLi53ZWJkcml2ZXJfc2VydmVyIGltcG9ydCBDaHJvbWVEcml2ZXJTZXJ2
ZXIKIGZyb20gLi5leGVjdXRvcnMgaW1wb3J0IGV4ZWN1dG9yX2t3YXJncyBhcyBiYXNlX2V4ZWN1
dG9yX2t3YXJncwotZnJvbSAuLmV4ZWN1dG9ycy5leGVjdXRvcnNlbGVuaXVtIGltcG9ydCAoU2Vs
ZW5pdW1UZXN0aGFybmVzc0V4ZWN1dG9yLCAgIyBub3FhOiBGNDAxCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBTZWxlbml1bVJlZlRlc3RFeGVjdXRvcikgICMgbm9x
YTogRjQwMQorZnJvbSAuLmV4ZWN1dG9ycy5leGVjdXRvcndlYmRyaXZlciBpbXBvcnQgKFdlYkRy
aXZlclRlc3RoYXJuZXNzRXhlY3V0b3IsICAjIG5vcWE6IEY0MDEKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBXZWJEcml2ZXJSZWZUZXN0RXhlY3V0b3IpICAjIG5v
cWE6IEY0MDEKIGZyb20gLi5leGVjdXRvcnMuZXhlY3V0b3JjaHJvbWUgaW1wb3J0IENocm9tZURy
aXZlcldkc3BlY0V4ZWN1dG9yICAjIG5vcWE6IEY0MDEKIAogCiBfX3dwdHJ1bm5lcl9fID0geyJw
cm9kdWN0IjogImNocm9tZSIsCiAgICAgICAgICAgICAgICAgICJjaGVja19hcmdzIjogImNoZWNr
X2FyZ3MiLAogICAgICAgICAgICAgICAgICAiYnJvd3NlciI6ICJDaHJvbWVCcm93c2VyIiwKLSAg
ICAgICAgICAgICAgICAgImV4ZWN1dG9yIjogeyJ0ZXN0aGFybmVzcyI6ICJTZWxlbml1bVRlc3Ro
YXJuZXNzRXhlY3V0b3IiLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInJlZnRlc3Qi
OiAiU2VsZW5pdW1SZWZUZXN0RXhlY3V0b3IiLAorICAgICAgICAgICAgICAgICAiZXhlY3V0b3Ii
OiB7InRlc3RoYXJuZXNzIjogIldlYkRyaXZlclRlc3RoYXJuZXNzRXhlY3V0b3IiLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgInJlZnRlc3QiOiAiV2ViRHJpdmVyUmVmVGVzdEV4ZWN1
dG9yIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ3ZHNwZWMiOiAiQ2hyb21lRHJp
dmVyV2RzcGVjRXhlY3V0b3IifSwKICAgICAgICAgICAgICAgICAgImJyb3dzZXJfa3dhcmdzIjog
ImJyb3dzZXJfa3dhcmdzIiwKICAgICAgICAgICAgICAgICAgImV4ZWN1dG9yX2t3YXJncyI6ICJl
eGVjdXRvcl9rd2FyZ3MiLAogICAgICAgICAgICAgICAgICAiZW52X2V4dHJhcyI6ICJlbnZfZXh0
cmFzIiwKLSAgICAgICAgICAgICAgICAgImVudl9vcHRpb25zIjogImVudl9vcHRpb25zIn0KKyAg
ICAgICAgICAgICAgICAgImVudl9vcHRpb25zIjogImVudl9vcHRpb25zIiwKKyAgICAgICAgICAg
ICAgICAgInRpbWVvdXRfbXVsdGlwbGllciI6ICJnZXRfdGltZW91dF9tdWx0aXBsaWVyIix9CiAK
IAogZGVmIGNoZWNrX2FyZ3MoKiprd2FyZ3MpOgpAQCAtMzAsMjkgKzMyLDU4IEBAIGRlZiBicm93
c2VyX2t3YXJncyh0ZXN0X3R5cGUsIHJ1bl9pbmZvX2RhdGEsIGNvbmZpZywgKiprd2FyZ3MpOgog
CiBkZWYgZXhlY3V0b3Jfa3dhcmdzKHRlc3RfdHlwZSwgc2VydmVyX2NvbmZpZywgY2FjaGVfbWFu
YWdlciwgcnVuX2luZm9fZGF0YSwKICAgICAgICAgICAgICAgICAgICAgKiprd2FyZ3MpOgotICAg
IGZyb20gc2VsZW5pdW0ud2ViZHJpdmVyIGltcG9ydCBEZXNpcmVkQ2FwYWJpbGl0aWVzCi0KICAg
ICBleGVjdXRvcl9rd2FyZ3MgPSBiYXNlX2V4ZWN1dG9yX2t3YXJncyh0ZXN0X3R5cGUsIHNlcnZl
cl9jb25maWcsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2Fj
aGVfbWFuYWdlciwgcnVuX2luZm9fZGF0YSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAqKmt3YXJncykKICAgICBleGVjdXRvcl9rd2FyZ3NbImNsb3NlX2FmdGVy
X2RvbmUiXSA9IFRydWUKLSAgICBjYXBhYmlsaXRpZXMgPSBkaWN0KERlc2lyZWRDYXBhYmlsaXRp
ZXMuQ0hST01FLml0ZW1zKCkpCi0gICAgY2FwYWJpbGl0aWVzLnNldGRlZmF1bHQoImdvb2c6Y2hy
b21lT3B0aW9ucyIsIHt9KVsicHJlZnMiXSA9IHsKLSAgICAgICAgInByb2ZpbGUiOiB7Ci0gICAg
ICAgICAgICAiZGVmYXVsdF9jb250ZW50X3NldHRpbmdfdmFsdWVzIjogewotICAgICAgICAgICAg
ICAgICJwb3B1cHMiOiAxCi0gICAgICAgICAgICB9CisgICAgZXhlY3V0b3Jfa3dhcmdzWyJzdXBw
b3J0c19lYWdlcl9wYWdlbG9hZCJdID0gRmFsc2UKKworICAgIGNhcGFiaWxpdGllcyA9IHsKKyAg
ICAgICAgImdvb2c6Y2hyb21lT3B0aW9ucyI6IHsKKyAgICAgICAgICAgICJwcmVmcyI6IHsKKyAg
ICAgICAgICAgICAgICAicHJvZmlsZSI6IHsKKyAgICAgICAgICAgICAgICAgICAgImRlZmF1bHRf
Y29udGVudF9zZXR0aW5nX3ZhbHVlcyI6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICJwb3B1
cHMiOiAxCisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAg
ICAgICB9LAorICAgICAgICAgICAgInVzZUF1dG9tYXRpb25FeHRlbnNpb24iOiBGYWxzZSwKKyAg
ICAgICAgICAgICJleGNsdWRlU3dpdGNoZXMiOiBbImVuYWJsZS1hdXRvbWF0aW9uIl0sCisgICAg
ICAgICAgICAidzNjIjogVHJ1ZQogICAgICAgICB9CiAgICAgfQotICAgIGZvciAoa3dhcmcsIGNh
cGFiaWxpdHkpIGluIFsoImJpbmFyeSIsICJiaW5hcnkiKSwgKCJiaW5hcnlfYXJncyIsICJhcmdz
IildOgotICAgICAgICBpZiBrd2FyZ3Nba3dhcmddIGlzIG5vdCBOb25lOgotICAgICAgICAgICAg
Y2FwYWJpbGl0aWVzWyJnb29nOmNocm9tZU9wdGlvbnMiXVtjYXBhYmlsaXR5XSA9IGt3YXJnc1tr
d2FyZ10KKwogICAgIGlmIHRlc3RfdHlwZSA9PSAidGVzdGhhcm5lc3MiOgotICAgICAgICBjYXBh
YmlsaXRpZXNbImdvb2c6Y2hyb21lT3B0aW9ucyJdWyJ1c2VBdXRvbWF0aW9uRXh0ZW5zaW9uIl0g
PSBGYWxzZQotICAgICAgICBjYXBhYmlsaXRpZXNbImdvb2c6Y2hyb21lT3B0aW9ucyJdWyJleGNs
dWRlU3dpdGNoZXMiXSA9IFsiZW5hYmxlLWF1dG9tYXRpb24iXQotICAgIGlmIHRlc3RfdHlwZSA9
PSAid2RzcGVjIjoKLSAgICAgICAgY2FwYWJpbGl0aWVzWyJnb29nOmNocm9tZU9wdGlvbnMiXVsi
dzNjIl0gPSBUcnVlCisgICAgICAgIGNhcGFiaWxpdGllc1sicGFnZUxvYWRTdHJhdGVneSJdID0g
Im5vbmUiCisKKyAgICBjaHJvbWVfb3B0aW9ucyA9IGNhcGFiaWxpdGllc1siZ29vZzpjaHJvbWVP
cHRpb25zIl0KKyAgICBpZiBrd2FyZ3NbImJpbmFyeSJdIGlzIG5vdCBOb25lOgorICAgICAgICBj
aHJvbWVfb3B0aW9uc1siYmluYXJ5Il0gPSBrd2FyZ3NbImJpbmFyeSJdCisKKyAgICAjIEhlcmUg
d2Ugc2V0IGEgZmV3IENocm9tZSBmbGFncyB0aGF0IGFyZSBhbHdheXMgcGFzc2VkLgorICAgICMg
Q2hyb21lRHJpdmVyJ3MgImFjY2VwdEluc2VjdXJlQ2VydHMiIGNhcGFiaWxpdHkgb25seSBjb250
cm9scyB0aGUgY3VycmVudAorICAgICMgYnJvd3NpbmcgY29udGV4dCwgd2hlcmVhcyB0aGUgQ0xJ
IGZsYWcgd29ya3MgZm9yIHdvcmtlcnMsIHRvby4KKyAgICBjaHJvbWVfb3B0aW9uc1siYXJncyJd
ID0gWyItLWlnbm9yZS1jZXJ0aWZpY2F0ZS1lcnJvcnMiXQorICAgICMgQWxsb3cgYXVkaW8gYXV0
b3BsYXkgd2l0aG91dCBhIHVzZXIgZ2VzdHVyZS4KKyAgICBjaHJvbWVfb3B0aW9uc1siYXJncyJd
LmFwcGVuZCgiLS1hdXRvcGxheS1wb2xpY3k9bm8tdXNlci1nZXN0dXJlLXJlcXVpcmVkIikKKyAg
ICAjIEFsbG93IFdlYlJUQyB0ZXN0cyB0byBjYWxsIGdldFVzZXJNZWRpYS4KKyAgICBjaHJvbWVf
b3B0aW9uc1siYXJncyJdLmFwcGVuZCgiLS11c2UtZmFrZS11aS1mb3ItbWVkaWEtc3RyZWFtIikK
KyAgICBjaHJvbWVfb3B0aW9uc1siYXJncyJdLmFwcGVuZCgiLS11c2UtZmFrZS1kZXZpY2UtZm9y
LW1lZGlhLXN0cmVhbSIpCisgICAgIyBTaG9ydGVuIGRlbGF5IGZvciBSZXBvcnRpbmcgPGh0dHBz
Oi8vdzNjLmdpdGh1Yi5pby9yZXBvcnRpbmcvPi4KKyAgICBjaHJvbWVfb3B0aW9uc1siYXJncyJd
LmFwcGVuZCgiLS1zaG9ydC1yZXBvcnRpbmctZGVsYXkiKQorICAgICMgUG9pbnQgYWxsIC50ZXN0
IGRvbWFpbnMgdG8gbG9jYWxob3N0IGZvciBDaHJvbWUKKyAgICBjaHJvbWVfb3B0aW9uc1siYXJn
cyJdLmFwcGVuZCgiLS1ob3N0LXJlc29sdmVyLXJ1bGVzPU1BUCBub25leGlzdGVudC4qLnRlc3Qg
fk5PVEZPVU5ELCBNQVAgKi50ZXN0IDEyNy4wLjAuMSIpCisKKyAgICAjIENvcHkgb3ZlciBhbnkg
b3RoZXIgZmxhZ3MgdGhhdCB3ZXJlIHBhc3NlZCBpbiB2aWEgLS1iaW5hcnlfYXJncworICAgIGlm
IGt3YXJnc1siYmluYXJ5X2FyZ3MiXSBpcyBub3QgTm9uZToKKyAgICAgICAgY2hyb21lX29wdGlv
bnNbImFyZ3MiXS5leHRlbmQoa3dhcmdzWyJiaW5hcnlfYXJncyJdKQorCisgICAgIyBQYXNzIHRo
ZSAtLWhlYWRsZXNzIGZsYWcgdG8gQ2hyb21lIGlmIFdQVCdzIG93biAtLWhlYWRsZXNzIGZsYWcg
d2FzIHNldAorICAgIGlmIGt3YXJnc1siaGVhZGxlc3MiXSBhbmQgIi0taGVhZGxlc3MiIG5vdCBp
biBjaHJvbWVfb3B0aW9uc1siYXJncyJdOgorICAgICAgICBjaHJvbWVfb3B0aW9uc1siYXJncyJd
LmFwcGVuZCgiLS1oZWFkbGVzcyIpCisKICAgICBleGVjdXRvcl9rd2FyZ3NbImNhcGFiaWxpdGll
cyJdID0gY2FwYWJpbGl0aWVzCisKICAgICByZXR1cm4gZXhlY3V0b3Jfa3dhcmdzCiAKIApAQCAt
NjEsNyArOTIsNyBAQCBkZWYgZW52X2V4dHJhcygqKmt3YXJncyk6CiAKIAogZGVmIGVudl9vcHRp
b25zKCk6Ci0gICAgcmV0dXJuIHt9CisgICAgcmV0dXJuIHsic2VydmVyX2hvc3QiOiAiMTI3LjAu
MC4xIn0KIAogCiBjbGFzcyBDaHJvbWVCcm93c2VyKEJyb3dzZXIpOgpAQCAtOTIsNyArMTIzLDcg
QEAgY2xhc3MgQ2hyb21lQnJvd3NlcihCcm93c2VyKToKICAgICAgICAgIyBUT0RPKGF0byk6IFRo
aXMgb25seSBpbmRpY2F0ZXMgdGhlIGRyaXZlciBpcyBhbGl2ZSwKICAgICAgICAgIyBhbmQgZG9l
c24ndCBzYXkgYW55dGhpbmcgYWJvdXQgd2hldGhlciBhIGJyb3dzZXIgc2Vzc2lvbgogICAgICAg
ICAjIGlzIGFjdGl2ZS4KLSAgICAgICAgcmV0dXJuIHNlbGYuc2VydmVyLmlzX2FsaXZlKCkKKyAg
ICAgICAgcmV0dXJuIHNlbGYuc2VydmVyLmlzX2FsaXZlCiAKICAgICBkZWYgY2xlYW51cChzZWxm
KToKICAgICAgICAgc2VsZi5zdG9wKCkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9icm93c2Vy
cy9jaHJvbWVfYW5kcm9pZC5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9icm93c2Vycy9jaHJvbWVfYW5kcm9p
ZC5weQppbmRleCBjOTZjZjU2MzRmM2Q3NmE3OWI0Y2ZkMjA0MjlmNjYyMmU0OTZkNmEwLi5iNGVk
YzA1MGQwYzcwOWNmYTQ2N2E0M2I2ZTZhNDEyMDBhYTA0YzczIDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRy
dW5uZXIvYnJvd3NlcnMvY2hyb21lX2FuZHJvaWQucHkKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2Jyb3dz
ZXJzL2Nocm9tZV9hbmRyb2lkLnB5CkBAIC0xLDY0ICsxLDYzIEBACiBpbXBvcnQgc3VicHJvY2Vz
cwogCiBmcm9tIC5iYXNlIGltcG9ydCBCcm93c2VyLCBFeGVjdXRvckJyb3dzZXIsIHJlcXVpcmVf
YXJnCitmcm9tIC5iYXNlIGltcG9ydCBnZXRfdGltZW91dF9tdWx0aXBsaWVyICAgIyBub3FhOiBG
NDAxCitmcm9tIC5jaHJvbWUgaW1wb3J0IGV4ZWN1dG9yX2t3YXJncyBhcyBjaHJvbWVfZXhlY3V0
b3Jfa3dhcmdzCiBmcm9tIC4ud2ViZHJpdmVyX3NlcnZlciBpbXBvcnQgQ2hyb21lRHJpdmVyU2Vy
dmVyCi1mcm9tIC4uZXhlY3V0b3JzIGltcG9ydCBleGVjdXRvcl9rd2FyZ3MgYXMgYmFzZV9leGVj
dXRvcl9rd2FyZ3MKLWZyb20gLi5leGVjdXRvcnMuZXhlY3V0b3JzZWxlbml1bSBpbXBvcnQgKFNl
bGVuaXVtVGVzdGhhcm5lc3NFeGVjdXRvciwgICMgbm9xYTogRjQwMQotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgU2VsZW5pdW1SZWZUZXN0RXhlY3V0b3IpICAjIG5v
cWE6IEY0MDEKK2Zyb20gLi5leGVjdXRvcnMuZXhlY3V0b3J3ZWJkcml2ZXIgaW1wb3J0IChXZWJE
cml2ZXJUZXN0aGFybmVzc0V4ZWN1dG9yLCAgIyBub3FhOiBGNDAxCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgV2ViRHJpdmVyUmVmVGVzdEV4ZWN1dG9yKSAgIyBu
b3FhOiBGNDAxCiBmcm9tIC4uZXhlY3V0b3JzLmV4ZWN1dG9yY2hyb21lIGltcG9ydCBDaHJvbWVE
cml2ZXJXZHNwZWNFeGVjdXRvciAgIyBub3FhOiBGNDAxCiAKIAogX193cHRydW5uZXJfXyA9IHsi
cHJvZHVjdCI6ICJjaHJvbWVfYW5kcm9pZCIsCiAgICAgICAgICAgICAgICAgICJjaGVja19hcmdz
IjogImNoZWNrX2FyZ3MiLAogICAgICAgICAgICAgICAgICAiYnJvd3NlciI6ICJDaHJvbWVBbmRy
b2lkQnJvd3NlciIsCi0gICAgICAgICAgICAgICAgICJleGVjdXRvciI6IHsidGVzdGhhcm5lc3Mi
OiAiU2VsZW5pdW1UZXN0aGFybmVzc0V4ZWN1dG9yIiwKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICJyZWZ0ZXN0IjogIlNlbGVuaXVtUmVmVGVzdEV4ZWN1dG9yIiwKKyAgICAgICAgICAg
ICAgICAgImV4ZWN1dG9yIjogeyJ0ZXN0aGFybmVzcyI6ICJXZWJEcml2ZXJUZXN0aGFybmVzc0V4
ZWN1dG9yIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJyZWZ0ZXN0IjogIldlYkRy
aXZlclJlZlRlc3RFeGVjdXRvciIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAid2Rz
cGVjIjogIkNocm9tZURyaXZlcldkc3BlY0V4ZWN1dG9yIn0sCiAgICAgICAgICAgICAgICAgICJi
cm93c2VyX2t3YXJncyI6ICJicm93c2VyX2t3YXJncyIsCiAgICAgICAgICAgICAgICAgICJleGVj
dXRvcl9rd2FyZ3MiOiAiZXhlY3V0b3Jfa3dhcmdzIiwKICAgICAgICAgICAgICAgICAgImVudl9l
eHRyYXMiOiAiZW52X2V4dHJhcyIsCi0gICAgICAgICAgICAgICAgICJlbnZfb3B0aW9ucyI6ICJl
bnZfb3B0aW9ucyJ9CisgICAgICAgICAgICAgICAgICJlbnZfb3B0aW9ucyI6ICJlbnZfb3B0aW9u
cyIsCisgICAgICAgICAgICAgICAgICJ0aW1lb3V0X211bHRpcGxpZXIiOiAiZ2V0X3RpbWVvdXRf
bXVsdGlwbGllciJ9CiAKIF93cHRzZXJ2ZV9wb3J0cyA9IHNldCgpCiAKIAogZGVmIGNoZWNrX2Fy
Z3MoKiprd2FyZ3MpOgorICAgIHJlcXVpcmVfYXJnKGt3YXJncywgInBhY2thZ2VfbmFtZSIpCiAg
ICAgcmVxdWlyZV9hcmcoa3dhcmdzLCAid2ViZHJpdmVyX2JpbmFyeSIpCiAKIAogZGVmIGJyb3dz
ZXJfa3dhcmdzKHRlc3RfdHlwZSwgcnVuX2luZm9fZGF0YSwgY29uZmlnLCAqKmt3YXJncyk6Ci0g
ICAgcmV0dXJuIHsiYmluYXJ5Ijoga3dhcmdzWyJiaW5hcnkiXSwKKyAgICByZXR1cm4geyJwYWNr
YWdlX25hbWUiOiBrd2FyZ3NbInBhY2thZ2VfbmFtZSJdLAorICAgICAgICAgICAgImRldmljZV9z
ZXJpYWwiOiBrd2FyZ3NbImRldmljZV9zZXJpYWwiXSwKICAgICAgICAgICAgICJ3ZWJkcml2ZXJf
YmluYXJ5Ijoga3dhcmdzWyJ3ZWJkcml2ZXJfYmluYXJ5Il0sCiAgICAgICAgICAgICAid2ViZHJp
dmVyX2FyZ3MiOiBrd2FyZ3MuZ2V0KCJ3ZWJkcml2ZXJfYXJncyIpfQogCiAKIGRlZiBleGVjdXRv
cl9rd2FyZ3ModGVzdF90eXBlLCBzZXJ2ZXJfY29uZmlnLCBjYWNoZV9tYW5hZ2VyLCBydW5faW5m
b19kYXRhLAogICAgICAgICAgICAgICAgICAgICAqKmt3YXJncyk6Ci0gICAgZnJvbSBzZWxlbml1
bS53ZWJkcml2ZXIgaW1wb3J0IERlc2lyZWRDYXBhYmlsaXRpZXMKLQotICAgICMgVXNlIGV4dGVu
ZCgpIHRvIG1vZGlmeSB0aGUgZ2xvYmFsIGxpc3QgaW4gcGxhY2UuCisgICAgIyBVc2UgdXBkYXRl
KCkgdG8gbW9kaWZ5IHRoZSBnbG9iYWwgbGlzdCBpbiBwbGFjZS4KICAgICBfd3B0c2VydmVfcG9y
dHMudXBkYXRlKHNldCgKICAgICAgICAgc2VydmVyX2NvbmZpZ1sncG9ydHMnXVsnaHR0cCddICsg
c2VydmVyX2NvbmZpZ1sncG9ydHMnXVsnaHR0cHMnXSArCiAgICAgICAgIHNlcnZlcl9jb25maWdb
J3BvcnRzJ11bJ3dzJ10gKyBzZXJ2ZXJfY29uZmlnWydwb3J0cyddWyd3c3MnXQogICAgICkpCiAK
LSAgICBleGVjdXRvcl9rd2FyZ3MgPSBiYXNlX2V4ZWN1dG9yX2t3YXJncyh0ZXN0X3R5cGUsIHNl
cnZlcl9jb25maWcsIGNhY2hlX21hbmFnZXIsIHJ1bl9pbmZvX2RhdGEsCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiprd2FyZ3MpCi0gICAgZXhlY3V0b3Jfa3dh
cmdzWyJjbG9zZV9hZnRlcl9kb25lIl0gPSBUcnVlCi0gICAgY2FwYWJpbGl0aWVzID0gZGljdChE
ZXNpcmVkQ2FwYWJpbGl0aWVzLkNIUk9NRS5pdGVtcygpKQotICAgIGNhcGFiaWxpdGllc1siY2hy
b21lT3B0aW9ucyJdID0ge30KLSAgICAjIHJlcXVpcmVkIHRvIHN0YXJ0IG9uIG1vYmlsZQotICAg
IGNhcGFiaWxpdGllc1siY2hyb21lT3B0aW9ucyJdWyJhbmRyb2lkUGFja2FnZSJdID0gImNvbS5n
b29nbGUuYW5kcm9pZC5hcHBzLmNocm9tZSIKLQotICAgIGZvciAoa3dhcmcsIGNhcGFiaWxpdHkp
IGluIFsoImJpbmFyeSIsICJiaW5hcnkiKSwgKCJiaW5hcnlfYXJncyIsICJhcmdzIildOgotICAg
ICAgICBpZiBrd2FyZ3Nba3dhcmddIGlzIG5vdCBOb25lOgotICAgICAgICAgICAgY2FwYWJpbGl0
aWVzWyJjaHJvbWVPcHRpb25zIl1bY2FwYWJpbGl0eV0gPSBrd2FyZ3Nba3dhcmddCi0gICAgaWYg
dGVzdF90eXBlID09ICJ0ZXN0aGFybmVzcyI6Ci0gICAgICAgIGNhcGFiaWxpdGllc1sidXNlQXV0
b21hdGlvbkV4dGVuc2lvbiJdID0gRmFsc2UKLSAgICAgICAgY2FwYWJpbGl0aWVzWyJleGNsdWRl
U3dpdGNoZXMiXSA9IFsiZW5hYmxlLWF1dG9tYXRpb24iXQotICAgIGlmIHRlc3RfdHlwZSA9PSAi
d2RzcGVjIjoKLSAgICAgICAgY2FwYWJpbGl0aWVzWyJjaHJvbWVPcHRpb25zIl1bInczYyJdID0g
VHJ1ZQotICAgIGV4ZWN1dG9yX2t3YXJnc1siY2FwYWJpbGl0aWVzIl0gPSBjYXBhYmlsaXRpZXMK
KyAgICBleGVjdXRvcl9rd2FyZ3MgPSBjaHJvbWVfZXhlY3V0b3Jfa3dhcmdzKHRlc3RfdHlwZSwg
c2VydmVyX2NvbmZpZywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGNhY2hlX21hbmFnZXIsIHJ1bl9pbmZvX2RhdGEsCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAqKmt3YXJncykKKyAgICAjIFJlbW92ZSB1bnN1cHBvcnRl
ZCBvcHRpb25zIG9uIG1vYmlsZS4KKyAgICBkZWwgZXhlY3V0b3Jfa3dhcmdzWyJjYXBhYmlsaXRp
ZXMiXVsiZ29vZzpjaHJvbWVPcHRpb25zIl1bInByZWZzIl0KKyAgICBkZWwgZXhlY3V0b3Jfa3dh
cmdzWyJjYXBhYmlsaXRpZXMiXVsiZ29vZzpjaHJvbWVPcHRpb25zIl1bInVzZUF1dG9tYXRpb25F
eHRlbnNpb24iXQorCisgICAgYXNzZXJ0IGt3YXJnc1sicGFja2FnZV9uYW1lIl0sICJtaXNzaW5n
IC0tcGFja2FnZS1uYW1lIgorICAgIGV4ZWN1dG9yX2t3YXJnc1siY2FwYWJpbGl0aWVzIl1bImdv
b2c6Y2hyb21lT3B0aW9ucyJdWyJhbmRyb2lkUGFja2FnZSJdID0gXAorICAgICAgICBrd2FyZ3Nb
InBhY2thZ2VfbmFtZSJdCisgICAgaWYga3dhcmdzLmdldCgiZGV2aWNlX3NlcmlhbCIpOgorICAg
ICAgICBleGVjdXRvcl9rd2FyZ3NbImNhcGFiaWxpdGllcyJdWyJnb29nOmNocm9tZU9wdGlvbnMi
XVsiYW5kcm9pZERldmljZVNlcmlhbCJdID0gXAorICAgICAgICAgICAga3dhcmdzWyJkZXZpY2Vf
c2VyaWFsIl0KKwogICAgIHJldHVybiBleGVjdXRvcl9rd2FyZ3MKIAogCkBAIC02Nyw3ICs2Niw4
IEBAIGRlZiBlbnZfZXh0cmFzKCoqa3dhcmdzKToKIAogCiBkZWYgZW52X29wdGlvbnMoKToKLSAg
ICByZXR1cm4ge30KKyAgICAjIGFsbG93IHRoZSB1c2Ugb2YgaG9zdC1yZXNvbHZlci1ydWxlcyBp
biBsaWV1IG9mIG1vZGlmeWluZyAvZXRjL2hvc3RzIGZpbGUKKyAgICByZXR1cm4geyJzZXJ2ZXJf
aG9zdCI6ICIxMjcuMC4wLjEifQogCiAKIGNsYXNzIENocm9tZUFuZHJvaWRCcm93c2VyKEJyb3dz
ZXIpOgpAQCAtNzUsMjQgKzc1LDI5IEBAIGNsYXNzIENocm9tZUFuZHJvaWRCcm93c2VyKEJyb3dz
ZXIpOgogICAgIGBgd3B0cnVubmVyLndlYmRyaXZlci5DaHJvbWVEcml2ZXJTZXJ2ZXJgYC4KICAg
ICAiIiIKIAotICAgIGRlZiBfX2luaXRfXyhzZWxmLCBsb2dnZXIsIGJpbmFyeSwgd2ViZHJpdmVy
X2JpbmFyeT0iY2hyb21lZHJpdmVyIiwKLSAgICAgICAgICAgICAgICAgd2ViZHJpdmVyX2FyZ3M9
Tm9uZSk6Ci0gICAgICAgICIiIkNyZWF0ZXMgYSBuZXcgcmVwcmVzZW50YXRpb24gb2YgQ2hyb21l
LiAgVGhlIGBiaW5hcnlgIGFyZ3VtZW50IGdpdmVzCi0gICAgICAgIHRoZSBicm93c2VyIGJpbmFy
eSB0byB1c2UgZm9yIHRlc3RpbmcuIiIiCisgICAgZGVmIF9faW5pdF9fKHNlbGYsIGxvZ2dlciwg
cGFja2FnZV9uYW1lLCB3ZWJkcml2ZXJfYmluYXJ5PSJjaHJvbWVkcml2ZXIiLAorICAgICAgICAg
ICAgICAgICBkZXZpY2Vfc2VyaWFsPU5vbmUsIHdlYmRyaXZlcl9hcmdzPU5vbmUpOgogICAgICAg
ICBCcm93c2VyLl9faW5pdF9fKHNlbGYsIGxvZ2dlcikKLSAgICAgICAgc2VsZi5iaW5hcnkgPSBi
aW5hcnkKKyAgICAgICAgc2VsZi5wYWNrYWdlX25hbWUgPSBwYWNrYWdlX25hbWUKKyAgICAgICAg
c2VsZi5kZXZpY2Vfc2VyaWFsID0gZGV2aWNlX3NlcmlhbAogICAgICAgICBzZWxmLnNlcnZlciA9
IENocm9tZURyaXZlclNlcnZlcihzZWxmLmxvZ2dlciwKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgYmluYXJ5PXdlYmRyaXZlcl9iaW5hcnksCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyZ3M9d2ViZHJpdmVyX2FyZ3MpCisgICAgICAg
IHNlbGYuc2V0dXBfYWRiX3JldmVyc2UoKQogCiAgICAgZGVmIF9hZGJfcnVuKHNlbGYsIGFyZ3Mp
OgotICAgICAgICBzZWxmLmxvZ2dlci5pbmZvKCdhZGIgJyArICcgJy5qb2luKGFyZ3MpKQotICAg
ICAgICBzdWJwcm9jZXNzLmNoZWNrX2NhbGwoWydhZGInXSArIGFyZ3MpCi0KLSAgICBkZWYgc2V0
dXAoc2VsZik6CisgICAgICAgIGNtZCA9IFsnYWRiJ10KKyAgICAgICAgaWYgc2VsZi5kZXZpY2Vf
c2VyaWFsOgorICAgICAgICAgICAgY21kLmV4dGVuZChbJy1zJywgc2VsZi5kZXZpY2Vfc2VyaWFs
XSkKKyAgICAgICAgY21kLmV4dGVuZChhcmdzKQorICAgICAgICBzZWxmLmxvZ2dlci5pbmZvKCcg
Jy5qb2luKGNtZCkpCisgICAgICAgIHN1YnByb2Nlc3MuY2hlY2tfY2FsbChjbWQpCisKKyAgICBk
ZWYgc2V0dXBfYWRiX3JldmVyc2Uoc2VsZik6CiAgICAgICAgIHNlbGYuX2FkYl9ydW4oWyd3YWl0
LWZvci1kZXZpY2UnXSkKICAgICAgICAgc2VsZi5fYWRiX3J1bihbJ2ZvcndhcmQnLCAnLS1yZW1v
dmUtYWxsJ10pCiAgICAgICAgIHNlbGYuX2FkYl9ydW4oWydyZXZlcnNlJywgJy0tcmVtb3ZlLWFs
bCddKQorICAgICAgICAjICJhZGIgcmV2ZXJzZSIgZm9yd2FyZHMgbmV0d29yayBjb25uZWN0aW9u
IGZyb20gZGV2aWNlIHRvIGhvc3QuCiAgICAgICAgIGZvciBwb3J0IGluIF93cHRzZXJ2ZV9wb3J0
czoKICAgICAgICAgICAgIHNlbGYuX2FkYl9ydW4oWydyZXZlcnNlJywgJ3RjcDolZCcgJSBwb3J0
LCAndGNwOiVkJyAlIHBvcnRdKQogCkBAIC0xMDksNyArMTE0LDcgQEAgY2xhc3MgQ2hyb21lQW5k
cm9pZEJyb3dzZXIoQnJvd3Nlcik6CiAgICAgICAgICMgVE9ETyhhdG8pOiBUaGlzIG9ubHkgaW5k
aWNhdGVzIHRoZSBkcml2ZXIgaXMgYWxpdmUsCiAgICAgICAgICMgYW5kIGRvZXNuJ3Qgc2F5IGFu
eXRoaW5nIGFib3V0IHdoZXRoZXIgYSBicm93c2VyIHNlc3Npb24KICAgICAgICAgIyBpcyBhY3Rp
dmUuCi0gICAgICAgIHJldHVybiBzZWxmLnNlcnZlci5pc19hbGl2ZSgpCisgICAgICAgIHJldHVy
biBzZWxmLnNlcnZlci5pc19hbGl2ZQogCiAgICAgZGVmIGNsZWFudXAoc2VsZik6CiAgICAgICAg
IHNlbGYuc3RvcCgpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvYnJvd3NlcnMvY2hyb21lX2lv
cy5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
d3B0cnVubmVyL3dwdHJ1bm5lci9icm93c2Vycy9jaHJvbWVfaW9zLnB5Cm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmEw
NDI5NjY1YzliYzU3ZTI3YzAyY2U4MWE3ZGViOTA5YjhmYTAwZjUKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1
bm5lci93cHRydW5uZXIvYnJvd3NlcnMvY2hyb21lX2lvcy5weQpAQCAtMCwwICsxLDgwIEBACitm
cm9tIC5iYXNlIGltcG9ydCBCcm93c2VyLCBFeGVjdXRvckJyb3dzZXIsIHJlcXVpcmVfYXJnCitm
cm9tIC5iYXNlIGltcG9ydCBnZXRfdGltZW91dF9tdWx0aXBsaWVyICAgIyBub3FhOiBGNDAxCitm
cm9tIC4ud2ViZHJpdmVyX3NlcnZlciBpbXBvcnQgQ1dUQ2hyb21lRHJpdmVyU2VydmVyCitmcm9t
IC4uZXhlY3V0b3JzIGltcG9ydCBleGVjdXRvcl9rd2FyZ3MgYXMgYmFzZV9leGVjdXRvcl9rd2Fy
Z3MKK2Zyb20gLi5leGVjdXRvcnMuZXhlY3V0b3J3ZWJkcml2ZXIgaW1wb3J0IChXZWJEcml2ZXJU
ZXN0aGFybmVzc0V4ZWN1dG9yLCAgIyBub3FhOiBGNDAxCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgV2ViRHJpdmVyUmVmVGVzdEV4ZWN1dG9yKSAgIyBub3FhOiBG
NDAxCitmcm9tIC4uZXhlY3V0b3JzLmV4ZWN1dG9yY2hyb21lIGltcG9ydCBDaHJvbWVEcml2ZXJX
ZHNwZWNFeGVjdXRvciAgIyBub3FhOiBGNDAxCisKKworX193cHRydW5uZXJfXyA9IHsicHJvZHVj
dCI6ICJjaHJvbWVfaW9zIiwKKyAgICAgICAgICAgICAgICAgImNoZWNrX2FyZ3MiOiAiY2hlY2tf
YXJncyIsCisgICAgICAgICAgICAgICAgICJicm93c2VyIjogIkNocm9tZWlPU0Jyb3dzZXIiLAor
ICAgICAgICAgICAgICAgICAiZXhlY3V0b3IiOiB7InRlc3RoYXJuZXNzIjogIldlYkRyaXZlclRl
c3RoYXJuZXNzRXhlY3V0b3IiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInJlZnRl
c3QiOiAiV2ViRHJpdmVyUmVmVGVzdEV4ZWN1dG9yIn0sCisgICAgICAgICAgICAgICAgICJicm93
c2VyX2t3YXJncyI6ICJicm93c2VyX2t3YXJncyIsCisgICAgICAgICAgICAgICAgICJleGVjdXRv
cl9rd2FyZ3MiOiAiZXhlY3V0b3Jfa3dhcmdzIiwKKyAgICAgICAgICAgICAgICAgImVudl9leHRy
YXMiOiAiZW52X2V4dHJhcyIsCisgICAgICAgICAgICAgICAgICJlbnZfb3B0aW9ucyI6ICJlbnZf
b3B0aW9ucyIsCisgICAgICAgICAgICAgICAgICJ0aW1lb3V0X211bHRpcGxpZXIiOiAiZ2V0X3Rp
bWVvdXRfbXVsdGlwbGllciJ9CisKK2RlZiBjaGVja19hcmdzKCoqa3dhcmdzKToKKyAgICByZXF1
aXJlX2FyZyhrd2FyZ3MsICJ3ZWJkcml2ZXJfYmluYXJ5IikKKworCitkZWYgYnJvd3Nlcl9rd2Fy
Z3ModGVzdF90eXBlLCBydW5faW5mb19kYXRhLCBjb25maWcsICoqa3dhcmdzKToKKyAgICByZXR1
cm4geyJ3ZWJkcml2ZXJfYmluYXJ5Ijoga3dhcmdzWyJ3ZWJkcml2ZXJfYmluYXJ5Il0sCisgICAg
ICAgICAgICAid2ViZHJpdmVyX2FyZ3MiOiBrd2FyZ3MuZ2V0KCJ3ZWJkcml2ZXJfYXJncyIpfQor
CisKK2RlZiBleGVjdXRvcl9rd2FyZ3ModGVzdF90eXBlLCBzZXJ2ZXJfY29uZmlnLCBjYWNoZV9t
YW5hZ2VyLCBydW5faW5mb19kYXRhLAorICAgICAgICAgICAgICAgICAgICAqKmt3YXJncyk6Cisg
ICAgZXhlY3V0b3Jfa3dhcmdzID0gYmFzZV9leGVjdXRvcl9rd2FyZ3ModGVzdF90eXBlLCBzZXJ2
ZXJfY29uZmlnLCBjYWNoZV9tYW5hZ2VyLCBydW5faW5mb19kYXRhLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICoqa3dhcmdzKQorICAgIGV4ZWN1dG9yX2t3YXJn
c1siY2xvc2VfYWZ0ZXJfZG9uZSJdID0gVHJ1ZQorICAgIGV4ZWN1dG9yX2t3YXJnc1siY2FwYWJp
bGl0aWVzIl0gPSB7fQorICAgIHJldHVybiBleGVjdXRvcl9rd2FyZ3MKKworCitkZWYgZW52X2V4
dHJhcygqKmt3YXJncyk6CisgICAgcmV0dXJuIFtdCisKKworZGVmIGVudl9vcHRpb25zKCk6Cisg
ICAgcmV0dXJuIHt9CisKKworY2xhc3MgQ2hyb21laU9TQnJvd3NlcihCcm93c2VyKToKKyAgICAi
IiJDaHJvbWVpT1MgaXMgYmFja2VkIGJ5IENXVENocm9tZURyaXZlciwgd2hpY2ggaXMgc3VwcGxp
ZWQgdGhyb3VnaAorICAgIGBgd3B0cnVubmVyLndlYmRyaXZlci5DV1RDaHJvbWVEcml2ZXJTZXJ2
ZXJgYC4KKyAgICAiIiIKKworICAgIGluaXRfdGltZW91dCA9IDEyMAorCisgICAgZGVmIF9faW5p
dF9fKHNlbGYsIGxvZ2dlciwgd2ViZHJpdmVyX2JpbmFyeSwgd2ViZHJpdmVyX2FyZ3M9Tm9uZSk6
CisgICAgICAgICIiIkNyZWF0ZXMgYSBuZXcgcmVwcmVzZW50YXRpb24gb2YgQ2hyb21lLiIiIgor
ICAgICAgICBCcm93c2VyLl9faW5pdF9fKHNlbGYsIGxvZ2dlcikKKyAgICAgICAgc2VsZi5zZXJ2
ZXIgPSBDV1RDaHJvbWVEcml2ZXJTZXJ2ZXIoc2VsZi5sb2dnZXIsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJpbmFyeT13ZWJkcml2ZXJfYmluYXJ5LAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmdzPXdlYmRyaXZlcl9h
cmdzKQorCisgICAgZGVmIHN0YXJ0KHNlbGYsICoqa3dhcmdzKToKKyAgICAgICAgc2VsZi5zZXJ2
ZXIuc3RhcnQoYmxvY2s9RmFsc2UpCisKKyAgICBkZWYgc3RvcChzZWxmLCBmb3JjZT1GYWxzZSk6
CisgICAgICAgIHNlbGYuc2VydmVyLnN0b3AoZm9yY2U9Zm9yY2UpCisKKyAgICBkZWYgcGlkKHNl
bGYpOgorICAgICAgICByZXR1cm4gc2VsZi5zZXJ2ZXIucGlkCisKKyAgICBkZWYgaXNfYWxpdmUo
c2VsZik6CisgICAgICAgICMgVE9ETyhhdG8pOiBUaGlzIG9ubHkgaW5kaWNhdGVzIHRoZSBkcml2
ZXIgaXMgYWxpdmUsCisgICAgICAgICMgYW5kIGRvZXNuJ3Qgc2F5IGFueXRoaW5nIGFib3V0IHdo
ZXRoZXIgYSBicm93c2VyIHNlc3Npb24KKyAgICAgICAgIyBpcyBhY3RpdmUuCisgICAgICAgIHJl
dHVybiBzZWxmLnNlcnZlci5pc19hbGl2ZQorCisgICAgZGVmIGNsZWFudXAoc2VsZik6CisgICAg
ICAgIHNlbGYuc3RvcCgpCisKKyAgICBkZWYgZXhlY3V0b3JfYnJvd3NlcihzZWxmKToKKyAgICAg
ICAgcmV0dXJuIEV4ZWN1dG9yQnJvd3NlciwgeyJ3ZWJkcml2ZXJfdXJsIjogc2VsZi5zZXJ2ZXIu
dXJsfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2Jyb3dzZXJzL2VkZ2UucHkgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRy
dW5uZXIvYnJvd3NlcnMvZWRnZS5weQppbmRleCBhZDJiYjUxM2E2YTgwMWIyOWE3OTFhNmQ2NWI3
YjczMGI4NmU5YTY0Li5kOWQwYWYxMTVjYzllOWM2NGU5MjdiMTVjZGQyOTFmMzE0YjA3YWU1IDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3dwdHJ1bm5lci93cHRydW5uZXIvYnJvd3NlcnMvZWRnZS5weQorKysgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5u
ZXIvYnJvd3NlcnMvZWRnZS5weQpAQCAtMSwzICsxLDYgQEAKK2Zyb20gX19mdXR1cmVfXyBpbXBv
cnQgcHJpbnRfZnVuY3Rpb24KK2ltcG9ydCB0aW1lCitpbXBvcnQgc3VicHJvY2VzcwogZnJvbSAu
YmFzZSBpbXBvcnQgQnJvd3NlciwgRXhlY3V0b3JCcm93c2VyLCByZXF1aXJlX2FyZwogZnJvbSAu
LndlYmRyaXZlcl9zZXJ2ZXIgaW1wb3J0IEVkZ2VEcml2ZXJTZXJ2ZXIKIGZyb20gLi5leGVjdXRv
cnMgaW1wb3J0IGV4ZWN1dG9yX2t3YXJncyBhcyBiYXNlX2V4ZWN1dG9yX2t3YXJncwpAQCAtMTQs
NyArMTcsMTAgQEAgX193cHRydW5uZXJfXyA9IHsicHJvZHVjdCI6ICJlZGdlIiwKICAgICAgICAg
ICAgICAgICAgImJyb3dzZXJfa3dhcmdzIjogImJyb3dzZXJfa3dhcmdzIiwKICAgICAgICAgICAg
ICAgICAgImV4ZWN1dG9yX2t3YXJncyI6ICJleGVjdXRvcl9rd2FyZ3MiLAogICAgICAgICAgICAg
ICAgICAiZW52X2V4dHJhcyI6ICJlbnZfZXh0cmFzIiwKLSAgICAgICAgICAgICAgICAgImVudl9v
cHRpb25zIjogImVudl9vcHRpb25zIn0KKyAgICAgICAgICAgICAgICAgImVudl9vcHRpb25zIjog
ImVudl9vcHRpb25zIiwKKyAgICAgICAgICAgICAgICAgInJ1bl9pbmZvX2V4dHJhcyI6ICJydW5f
aW5mb19leHRyYXMiLAorICAgICAgICAgICAgICAgICAidGltZW91dF9tdWx0aXBsaWVyIjogImdl
dF90aW1lb3V0X211bHRpcGxpZXIifQorCiAKIGRlZiBnZXRfdGltZW91dF9tdWx0aXBsaWVyKHRl
c3RfdHlwZSwgcnVuX2luZm9fZGF0YSwgKiprd2FyZ3MpOgogICAgIGlmIGt3YXJnc1sidGltZW91
dF9tdWx0aXBsaWVyIl0gaXMgbm90IE5vbmU6CkBAIC0yMyw5ICsyOSwxMSBAQCBkZWYgZ2V0X3Rp
bWVvdXRfbXVsdGlwbGllcih0ZXN0X3R5cGUsIHJ1bl9pbmZvX2RhdGEsICoqa3dhcmdzKToKICAg
ICAgICAgcmV0dXJuIDEwCiAgICAgcmV0dXJuIDEKIAorCiBkZWYgY2hlY2tfYXJncygqKmt3YXJn
cyk6CiAgICAgcmVxdWlyZV9hcmcoa3dhcmdzLCAid2ViZHJpdmVyX2JpbmFyeSIpCiAKKwogZGVm
IGJyb3dzZXJfa3dhcmdzKHRlc3RfdHlwZSwgcnVuX2luZm9fZGF0YSwgY29uZmlnLCAqKmt3YXJn
cyk6CiAgICAgcmV0dXJuIHsid2ViZHJpdmVyX2JpbmFyeSI6IGt3YXJnc1sid2ViZHJpdmVyX2Jp
bmFyeSJdLAogICAgICAgICAgICAgIndlYmRyaXZlcl9hcmdzIjoga3dhcmdzLmdldCgid2ViZHJp
dmVyX2FyZ3MiKSwKQEAgLTMzLDYgKzQxLDcgQEAgZGVmIGJyb3dzZXJfa3dhcmdzKHRlc3RfdHlw
ZSwgcnVuX2luZm9fZGF0YSwgY29uZmlnLCAqKmt3YXJncyk6CiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBydW5faW5mb19kYXRhLAogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKipr
d2FyZ3MpfQogCisKIGRlZiBleGVjdXRvcl9rd2FyZ3ModGVzdF90eXBlLCBzZXJ2ZXJfY29uZmln
LCBjYWNoZV9tYW5hZ2VyLCBydW5faW5mb19kYXRhLAogICAgICAgICAgICAgICAgICAgICAqKmt3
YXJncyk6CiAgICAgZXhlY3V0b3Jfa3dhcmdzID0gYmFzZV9leGVjdXRvcl9rd2FyZ3ModGVzdF90
eXBlLCBzZXJ2ZXJfY29uZmlnLApAQCAtNDIsMTQgKzUxLDE5IEBAIGRlZiBleGVjdXRvcl9rd2Fy
Z3ModGVzdF90eXBlLCBzZXJ2ZXJfY29uZmlnLCBjYWNoZV9tYW5hZ2VyLCBydW5faW5mb19kYXRh
LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHJ1bl9pbmZvX2RhdGEsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiprd2FyZ3MpCiAgICAgZXhl
Y3V0b3Jfa3dhcmdzWyJjYXBhYmlsaXRpZXMiXSA9IHt9CisgICAgaWYgdGVzdF90eXBlID09ICJ0
ZXN0aGFybmVzcyI6CisgICAgICAgIGV4ZWN1dG9yX2t3YXJnc1siY2FwYWJpbGl0aWVzIl1bInBh
Z2VMb2FkU3RyYXRlZ3kiXSA9ICJlYWdlciIKICAgICByZXR1cm4gZXhlY3V0b3Jfa3dhcmdzCiAK
KwogZGVmIGVudl9leHRyYXMoKiprd2FyZ3MpOgogICAgIHJldHVybiBbXQogCisKIGRlZiBlbnZf
b3B0aW9ucygpOgogICAgIHJldHVybiB7InN1cHBvcnRzX2RlYnVnZ2VyIjogRmFsc2V9CiAKKwog
Y2xhc3MgRWRnZUJyb3dzZXIoQnJvd3Nlcik6CiAgICAgdXNlZF9wb3J0cyA9IHNldCgpCiAgICAg
aW5pdF90aW1lb3V0ID0gNjAKQEAgLTY2LDExICs4MCwyNiBAQCBjbGFzcyBFZGdlQnJvd3NlcihC
cm93c2VyKToKIAogCiAgICAgZGVmIHN0YXJ0KHNlbGYsICoqa3dhcmdzKToKLSAgICAgICAgcHJp
bnQgc2VsZi5zZXJ2ZXIudXJsCisgICAgICAgIHByaW50KHNlbGYuc2VydmVyLnVybCkKICAgICAg
ICAgc2VsZi5zZXJ2ZXIuc3RhcnQoKQogCiAgICAgZGVmIHN0b3Aoc2VsZiwgZm9yY2U9RmFsc2Up
OgogICAgICAgICBzZWxmLnNlcnZlci5zdG9wKGZvcmNlPWZvcmNlKQorICAgICAgICAjIFdhaXQg
Zm9yIEVkZ2UgYnJvd3NlciBwcm9jZXNzIHRvIGV4aXQgaWYgZHJpdmVyIHByb2Nlc3MgaXMgZm91
bmQKKyAgICAgICAgZWRnZV9wcm9jX25hbWUgPSAnTWljcm9zb2Z0RWRnZS5leGUnCisgICAgICAg
IGZvciBpIGluIHJhbmdlKDAsNSk6CisgICAgICAgICAgICBwcm9jcyA9IHN1YnByb2Nlc3MuY2hl
Y2tfb3V0cHV0KFsndGFza2xpc3QnLCAnL2ZpJywgJ0ltYWdlTmFtZSBlcSAnICsgZWRnZV9wcm9j
X25hbWVdKQorICAgICAgICAgICAgaWYgJ01pY3Jvc29mdFdlYkRyaXZlci5leGUnIG5vdCBpbiBw
cm9jczoKKyAgICAgICAgICAgICAgICAjIEVkZ2UgZHJpdmVyIHByb2Nlc3MgYWxyZWFkeSBleGl0
ZWQsIGRvbid0IHdhaXQgZm9yIGJyb3dzZXIgcHJvY2VzcyB0byBleGl0CisgICAgICAgICAgICAg
ICAgYnJlYWsKKyAgICAgICAgICAgIGVsaWYgZWRnZV9wcm9jX25hbWUgaW4gcHJvY3M6CisgICAg
ICAgICAgICAgICAgdGltZS5zbGVlcCgwLjUpCisgICAgICAgICAgICBlbHNlOgorICAgICAgICAg
ICAgICAgIGJyZWFrCisKKyAgICAgICAgaWYgZWRnZV9wcm9jX25hbWUgaW4gcHJvY3M6CisgICAg
ICAgICAgICAjIGNsb3NlIEVkZ2UgcHJvY2VzcyBpZiBpdCBpcyBzdGlsbCBydW5uaW5nCisgICAg
ICAgICAgICBzdWJwcm9jZXNzLmNhbGwoWyd0YXNra2lsbC5leGUnLCAnL2YnLCAnL2ltJywgJ21p
Y3Jvc29mdGVkZ2UqJ10pCiAKICAgICBkZWYgcGlkKHNlbGYpOgogICAgICAgICByZXR1cm4gc2Vs
Zi5zZXJ2ZXIucGlkCkBAIC03OSwxMCArMTA4LDI0IEBAIGNsYXNzIEVkZ2VCcm93c2VyKEJyb3dz
ZXIpOgogICAgICAgICAjIFRPRE8oYXRvKTogVGhpcyBvbmx5IGluZGljYXRlcyB0aGUgc2VydmVy
IGlzIGFsaXZlLAogICAgICAgICAjIGFuZCBkb2Vzbid0IHNheSBhbnl0aGluZyBhYm91dCB3aGV0
aGVyIGEgYnJvd3NlciBzZXNzaW9uCiAgICAgICAgICMgaXMgYWN0aXZlLgotICAgICAgICByZXR1
cm4gc2VsZi5zZXJ2ZXIuaXNfYWxpdmUoKQorICAgICAgICByZXR1cm4gc2VsZi5zZXJ2ZXIuaXNf
YWxpdmUKIAogICAgIGRlZiBjbGVhbnVwKHNlbGYpOgogICAgICAgICBzZWxmLnN0b3AoKQogCiAg
ICAgZGVmIGV4ZWN1dG9yX2Jyb3dzZXIoc2VsZik6CiAgICAgICAgIHJldHVybiBFeGVjdXRvckJy
b3dzZXIsIHsid2ViZHJpdmVyX3VybCI6IHNlbGYuc2VydmVyLnVybH0KKworCitkZWYgcnVuX2lu
Zm9fZXh0cmFzKCoqa3dhcmdzKToKKyAgICBvc1JlbGVhc2VDb21tYW5kID0gciIoR2V0LUl0ZW1Q
cm9wZXJ0eSAnSEtMTTpcU29mdHdhcmVcTWljcm9zb2Z0XFdpbmRvd3MgTlRcQ3VycmVudFZlcnNp
b24nKS5SZWxlYXNlSWQiCisgICAgb3NCdWlsZENvbW1hbmQgPSByIihHZXQtSXRlbVByb3BlcnR5
ICdIS0xNOlxTb2Z0d2FyZVxNaWNyb3NvZnRcV2luZG93cyBOVFxDdXJyZW50VmVyc2lvbicpLkJ1
aWxkTGFiRXgiCisgICAgdHJ5OgorICAgICAgICBvc19yZWxlYXNlID0gc3VicHJvY2Vzcy5jaGVj
a19vdXRwdXQoWyJwb3dlcnNoZWxsLmV4ZSIsIG9zUmVsZWFzZUNvbW1hbmRdKS5zdHJpcCgpCisg
ICAgICAgIG9zX2J1aWxkID0gc3VicHJvY2Vzcy5jaGVja19vdXRwdXQoWyJwb3dlcnNoZWxsLmV4
ZSIsIG9zQnVpbGRDb21tYW5kXSkuc3RyaXAoKQorICAgIGV4Y2VwdCAoc3VicHJvY2Vzcy5DYWxs
ZWRQcm9jZXNzRXJyb3IsIE9TRXJyb3IpOgorICAgICAgICByZXR1cm4ge30KKworICAgIHJ2ID0g
eyJvc19idWlsZCI6IG9zX2J1aWxkLAorICAgICAgICAgICJvc19yZWxlYXNlIjogb3NfcmVsZWFz
ZX0KKyAgICByZXR1cm4gcnYKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9icm93c2Vycy9lZGdl
X3dlYmRyaXZlci5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9icm93c2Vycy9lZGdlX3dlYmRyaXZlci5weQpu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi5jMjU0NWRlNDZmMGI1ZGVmMDBjMjczZWNmYjVhNTdmMGQ0MDI5NTMxCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2Jyb3dzZXJzL2VkZ2Vfd2ViZHJpdmVyLnB5CkBA
IC0wLDAgKzEsMTIgQEAKK2Zyb20gLmJhc2UgaW1wb3J0IGluaGVyaXQKK2Zyb20gLiBpbXBvcnQg
ZWRnZQorCitmcm9tIC4uZXhlY3V0b3JzLmV4ZWN1dG9yd2ViZHJpdmVyIGltcG9ydCAoV2ViRHJp
dmVyVGVzdGhhcm5lc3NFeGVjdXRvciwgICMgbm9xYTogRjQwMQorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIFdlYkRyaXZlclJlZlRlc3RFeGVjdXRvcikgICMgbm9x
YTogRjQwMQorCisKK2luaGVyaXQoZWRnZSwgZ2xvYmFscygpLCAiZWRnZV93ZWJkcml2ZXIiKQor
CisjIF9fd3B0cnVubmVyX18gbWFnaWNhbGx5IGFwcGVhcnMgZnJvbSBpbmhlcml0LCBGODIxIGlz
IHVuZGVmaW5lZCBuYW1lCitfX3dwdHJ1bm5lcl9fWyJleGVjdXRvciJdWyJ0ZXN0aGFybmVzcyJd
ID0gIldlYkRyaXZlclRlc3RoYXJuZXNzRXhlY3V0b3IiICAjIG5vcWE6IEY4MjEKK19fd3B0cnVu
bmVyX19bImV4ZWN1dG9yIl1bInJlZnRlc3QiXSA9ICJXZWJEcml2ZXJSZWZUZXN0RXhlY3V0b3Ii
ICAjIG5vcWE6IEY4MjEKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9icm93c2Vycy9lZGdlY2hy
b21pdW0ucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3dwdHJ1bm5lci93cHRydW5uZXIvYnJvd3NlcnMvZWRnZWNocm9taXVtLnB5Cm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjYzNjgwYjY3NzRhMjc1OTI0OTFlNjcxZjUzZjE0MGI2NWUxNzA0MmIKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3dwdHJ1bm5lci93cHRydW5uZXIvYnJvd3NlcnMvZWRnZWNocm9taXVtLnB5CkBAIC0wLDAgKzEs
MTE2IEBACitmcm9tIC5iYXNlIGltcG9ydCBCcm93c2VyLCBFeGVjdXRvckJyb3dzZXIsIHJlcXVp
cmVfYXJnDQorZnJvbSAuYmFzZSBpbXBvcnQgZ2V0X3RpbWVvdXRfbXVsdGlwbGllciAgICMgbm9x
YTogRjQwMQ0KK2Zyb20gLi53ZWJkcml2ZXJfc2VydmVyIGltcG9ydCBFZGdlQ2hyb21pdW1Ecml2
ZXJTZXJ2ZXINCitmcm9tIC4uZXhlY3V0b3JzIGltcG9ydCBleGVjdXRvcl9rd2FyZ3MgYXMgYmFz
ZV9leGVjdXRvcl9rd2FyZ3MNCitmcm9tIC4uZXhlY3V0b3JzLmV4ZWN1dG9yd2ViZHJpdmVyIGlt
cG9ydCAoV2ViRHJpdmVyVGVzdGhhcm5lc3NFeGVjdXRvciwgICMgbm9xYTogRjQwMQ0KKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBXZWJEcml2ZXJSZWZUZXN0RXhl
Y3V0b3IpICAjIG5vcWE6IEY0MDENCitmcm9tIC4uZXhlY3V0b3JzLmV4ZWN1dG9yZWRnZWNocm9t
aXVtIGltcG9ydCBFZGdlQ2hyb21pdW1Ecml2ZXJXZHNwZWNFeGVjdXRvciAgIyBub3FhOiBGNDAx
DQorDQorDQorX193cHRydW5uZXJfXyA9IHsicHJvZHVjdCI6ICJlZGdlY2hyb21pdW0iLA0KKyAg
ICAgICAgICAgICAgICAgImNoZWNrX2FyZ3MiOiAiY2hlY2tfYXJncyIsDQorICAgICAgICAgICAg
ICAgICAiYnJvd3NlciI6ICJFZGdlQ2hyb21pdW1Ccm93c2VyIiwNCisgICAgICAgICAgICAgICAg
ICJleGVjdXRvciI6IHsidGVzdGhhcm5lc3MiOiAiV2ViRHJpdmVyVGVzdGhhcm5lc3NFeGVjdXRv
ciIsDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInJlZnRlc3QiOiAiV2ViRHJpdmVy
UmVmVGVzdEV4ZWN1dG9yIiwNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAid2RzcGVj
IjogIkVkZ2VDaHJvbWl1bURyaXZlcldkc3BlY0V4ZWN1dG9yIn0sDQorICAgICAgICAgICAgICAg
ICAiYnJvd3Nlcl9rd2FyZ3MiOiAiYnJvd3Nlcl9rd2FyZ3MiLA0KKyAgICAgICAgICAgICAgICAg
ImV4ZWN1dG9yX2t3YXJncyI6ICJleGVjdXRvcl9rd2FyZ3MiLA0KKyAgICAgICAgICAgICAgICAg
ImVudl9leHRyYXMiOiAiZW52X2V4dHJhcyIsDQorICAgICAgICAgICAgICAgICAiZW52X29wdGlv
bnMiOiAiZW52X29wdGlvbnMiLA0KKyAgICAgICAgICAgICAgICAgInRpbWVvdXRfbXVsdGlwbGll
ciI6ICJnZXRfdGltZW91dF9tdWx0aXBsaWVyIix9DQorDQorDQorZGVmIGNoZWNrX2FyZ3MoKipr
d2FyZ3MpOg0KKyAgICByZXF1aXJlX2FyZyhrd2FyZ3MsICJ3ZWJkcml2ZXJfYmluYXJ5IikNCisN
CisNCitkZWYgYnJvd3Nlcl9rd2FyZ3ModGVzdF90eXBlLCBydW5faW5mb19kYXRhLCBjb25maWcs
ICoqa3dhcmdzKToNCisgICAgcmV0dXJuIHsiYmluYXJ5Ijoga3dhcmdzWyJiaW5hcnkiXSwNCisg
ICAgICAgICAgICAid2ViZHJpdmVyX2JpbmFyeSI6IGt3YXJnc1sid2ViZHJpdmVyX2JpbmFyeSJd
LA0KKyAgICAgICAgICAgICJ3ZWJkcml2ZXJfYXJncyI6IGt3YXJncy5nZXQoIndlYmRyaXZlcl9h
cmdzIil9DQorDQorDQorZGVmIGV4ZWN1dG9yX2t3YXJncyh0ZXN0X3R5cGUsIHNlcnZlcl9jb25m
aWcsIGNhY2hlX21hbmFnZXIsIHJ1bl9pbmZvX2RhdGEsDQorICAgICAgICAgICAgICAgICAgICAq
Kmt3YXJncyk6DQorICAgIGV4ZWN1dG9yX2t3YXJncyA9IGJhc2VfZXhlY3V0b3Jfa3dhcmdzKHRl
c3RfdHlwZSwgc2VydmVyX2NvbmZpZywNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgY2FjaGVfbWFuYWdlciwgcnVuX2luZm9fZGF0YSwNCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiprd2FyZ3MpDQorICAgIGV4ZWN1dG9yX2t3
YXJnc1siY2xvc2VfYWZ0ZXJfZG9uZSJdID0gVHJ1ZQ0KKyAgICBleGVjdXRvcl9rd2FyZ3NbInN1
cHBvcnRzX2VhZ2VyX3BhZ2Vsb2FkIl0gPSBGYWxzZQ0KKw0KKyAgICBjYXBhYmlsaXRpZXMgPSB7
DQorICAgICAgICAiZ29vZzpjaHJvbWVPcHRpb25zIjogew0KKyAgICAgICAgICAgICJwcmVmcyI6
IHsNCisgICAgICAgICAgICAgICAgInByb2ZpbGUiOiB7DQorICAgICAgICAgICAgICAgICAgICAi
ZGVmYXVsdF9jb250ZW50X3NldHRpbmdfdmFsdWVzIjogew0KKyAgICAgICAgICAgICAgICAgICAg
ICAgICJwb3B1cHMiOiAxDQorICAgICAgICAgICAgICAgICAgICB9DQorICAgICAgICAgICAgICAg
IH0NCisgICAgICAgICAgICB9LA0KKyAgICAgICAgICAgICJ1c2VBdXRvbWF0aW9uRXh0ZW5zaW9u
IjogRmFsc2UsDQorICAgICAgICAgICAgImV4Y2x1ZGVTd2l0Y2hlcyI6IFsiZW5hYmxlLWF1dG9t
YXRpb24iXSwNCisgICAgICAgICAgICAidzNjIjogVHJ1ZQ0KKyAgICAgICAgfQ0KKyAgICB9DQor
DQorICAgIGlmIHRlc3RfdHlwZSA9PSAidGVzdGhhcm5lc3MiOg0KKyAgICAgICAgY2FwYWJpbGl0
aWVzWyJwYWdlTG9hZFN0cmF0ZWd5Il0gPSAibm9uZSINCisNCisgICAgZm9yIChrd2FyZywgY2Fw
YWJpbGl0eSkgaW4gWygiYmluYXJ5IiwgImJpbmFyeSIpLCAoImJpbmFyeV9hcmdzIiwgImFyZ3Mi
KV06DQorICAgICAgICBpZiBrd2FyZ3Nba3dhcmddIGlzIG5vdCBOb25lOg0KKyAgICAgICAgICAg
IGNhcGFiaWxpdGllc1siZ29vZzpjaHJvbWVPcHRpb25zIl1bY2FwYWJpbGl0eV0gPSBrd2FyZ3Nb
a3dhcmddDQorDQorICAgIGlmIGt3YXJnc1siaGVhZGxlc3MiXToNCisgICAgICAgIGlmICJhcmdz
IiBub3QgaW4gY2FwYWJpbGl0aWVzWyJnb29nOmNocm9tZU9wdGlvbnMiXToNCisgICAgICAgICAg
ICBjYXBhYmlsaXRpZXNbImdvb2c6Y2hyb21lT3B0aW9ucyJdWyJhcmdzIl0gPSBbXQ0KKyAgICAg
ICAgaWYgIi0taGVhZGxlc3MiIG5vdCBpbiBjYXBhYmlsaXRpZXNbImdvb2c6Y2hyb21lT3B0aW9u
cyJdWyJhcmdzIl06DQorICAgICAgICAgICAgY2FwYWJpbGl0aWVzWyJnb29nOmNocm9tZU9wdGlv
bnMiXVsiYXJncyJdLmFwcGVuZCgiLS1oZWFkbGVzcyIpDQorDQorICAgIGV4ZWN1dG9yX2t3YXJn
c1siY2FwYWJpbGl0aWVzIl0gPSBjYXBhYmlsaXRpZXMNCisNCisgICAgcmV0dXJuIGV4ZWN1dG9y
X2t3YXJncw0KKw0KKw0KK2RlZiBlbnZfZXh0cmFzKCoqa3dhcmdzKToNCisgICAgcmV0dXJuIFtd
DQorDQorDQorZGVmIGVudl9vcHRpb25zKCk6DQorICAgIHJldHVybiB7fQ0KKw0KKw0KK2NsYXNz
IEVkZ2VDaHJvbWl1bUJyb3dzZXIoQnJvd3Nlcik6DQorICAgICIiIk1pY3Jvc29mdEVkZ2UgaXMg
YmFja2VkIGJ5IE1TRWRnZURyaXZlciwgd2hpY2ggaXMgc3VwcGxpZWQgdGhyb3VnaA0KKyAgICBg
YHdwdHJ1bm5lci53ZWJkcml2ZXIuRWRnZUNocm9taXVtRHJpdmVyU2VydmVyYGAuDQorICAgICIi
Ig0KKw0KKyAgICBkZWYgX19pbml0X18oc2VsZiwgbG9nZ2VyLCBiaW5hcnksIHdlYmRyaXZlcl9i
aW5hcnk9Im1zZWRnZWRyaXZlciIsDQorICAgICAgICAgICAgICAgICB3ZWJkcml2ZXJfYXJncz1O
b25lKToNCisgICAgICAgICIiIkNyZWF0ZXMgYSBuZXcgcmVwcmVzZW50YXRpb24gb2YgTWljcm9z
b2Z0RWRnZS4gIFRoZSBgYmluYXJ5YCBhcmd1bWVudCBnaXZlcw0KKyAgICAgICAgdGhlIGJyb3dz
ZXIgYmluYXJ5IHRvIHVzZSBmb3IgdGVzdGluZy4iIiINCisgICAgICAgIEJyb3dzZXIuX19pbml0
X18oc2VsZiwgbG9nZ2VyKQ0KKyAgICAgICAgc2VsZi5iaW5hcnkgPSBiaW5hcnkNCisgICAgICAg
IHNlbGYuc2VydmVyID0gRWRnZUNocm9taXVtRHJpdmVyU2VydmVyKHNlbGYubG9nZ2VyLA0KKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmluYXJ5PXdlYmRyaXZlcl9i
aW5hcnksDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmdzPXdl
YmRyaXZlcl9hcmdzKQ0KKw0KKyAgICBkZWYgc3RhcnQoc2VsZiwgKiprd2FyZ3MpOg0KKyAgICAg
ICAgc2VsZi5zZXJ2ZXIuc3RhcnQoYmxvY2s9RmFsc2UpDQorDQorICAgIGRlZiBzdG9wKHNlbGYs
IGZvcmNlPUZhbHNlKToNCisgICAgICAgIHNlbGYuc2VydmVyLnN0b3AoZm9yY2U9Zm9yY2UpDQor
DQorICAgIGRlZiBwaWQoc2VsZik6DQorICAgICAgICByZXR1cm4gc2VsZi5zZXJ2ZXIucGlkDQor
DQorICAgIGRlZiBpc19hbGl2ZShzZWxmKToNCisgICAgICAgICMgVE9ETyhhdG8pOiBUaGlzIG9u
bHkgaW5kaWNhdGVzIHRoZSBkcml2ZXIgaXMgYWxpdmUsDQorICAgICAgICAjIGFuZCBkb2Vzbid0
IHNheSBhbnl0aGluZyBhYm91dCB3aGV0aGVyIGEgYnJvd3NlciBzZXNzaW9uDQorICAgICAgICAj
IGlzIGFjdGl2ZS4NCisgICAgICAgIHJldHVybiBzZWxmLnNlcnZlci5pc19hbGl2ZQ0KKw0KKyAg
ICBkZWYgY2xlYW51cChzZWxmKToNCisgICAgICAgIHNlbGYuc3RvcCgpDQorDQorICAgIGRlZiBl
eGVjdXRvcl9icm93c2VyKHNlbGYpOg0KKyAgICAgICAgcmV0dXJuIEV4ZWN1dG9yQnJvd3Nlciwg
eyJ3ZWJkcml2ZXJfdXJsIjogc2VsZi5zZXJ2ZXIudXJsfQ0KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1
bm5lci9icm93c2Vycy9lcGlwaGFueS5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9icm93c2Vycy9lcGlwaGFu
eS5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi44YTBlNWY1NzhiMmZlYjg3MWRkZDUwYWIwODE2OGM2YjlkNDVlNGIw
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2Jyb3dzZXJzL2VwaXBoYW55LnB5CkBA
IC0wLDAgKzEsNzUgQEAKK2Zyb20gLmJhc2UgaW1wb3J0IGdldF90aW1lb3V0X211bHRpcGxpZXIs
IG1heWJlX2FkZF9hcmdzLCBjZXJ0aWZpY2F0ZV9kb21haW5fbGlzdCAgIyBub3FhOiBGNDAxCitm
cm9tIC53ZWJraXQgaW1wb3J0IFdlYktpdEJyb3dzZXIKK2Zyb20gLi5leGVjdXRvcnMgaW1wb3J0
IGV4ZWN1dG9yX2t3YXJncyBhcyBiYXNlX2V4ZWN1dG9yX2t3YXJncworZnJvbSAuLmV4ZWN1dG9y
cy5leGVjdXRvcndlYmRyaXZlciBpbXBvcnQgKFdlYkRyaXZlclRlc3RoYXJuZXNzRXhlY3V0b3Is
ICAjIG5vcWE6IEY0MDEKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBXZWJEcml2ZXJSZWZUZXN0RXhlY3V0b3IpICAjIG5vcWE6IEY0MDEKK2Zyb20gLi5leGVjdXRv
cnMuZXhlY3V0b3J3ZWJraXQgaW1wb3J0IFdlYktpdERyaXZlcldkc3BlY0V4ZWN1dG9yICAjIG5v
cWE6IEY0MDEKKworX193cHRydW5uZXJfXyA9IHsicHJvZHVjdCI6ICJlcGlwaGFueSIsCisgICAg
ICAgICAgICAgICAgICJjaGVja19hcmdzIjogImNoZWNrX2FyZ3MiLAorICAgICAgICAgICAgICAg
ICAiYnJvd3NlciI6ICJFcGlwaGFueUJyb3dzZXIiLAorICAgICAgICAgICAgICAgICAiYnJvd3Nl
cl9rd2FyZ3MiOiAiYnJvd3Nlcl9rd2FyZ3MiLAorICAgICAgICAgICAgICAgICAiZXhlY3V0b3Ii
OiB7InRlc3RoYXJuZXNzIjogIldlYkRyaXZlclRlc3RoYXJuZXNzRXhlY3V0b3IiLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgInJlZnRlc3QiOiAiV2ViRHJpdmVyUmVmVGVzdEV4ZWN1
dG9yIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ3ZHNwZWMiOiAiV2ViS2l0RHJp
dmVyV2RzcGVjRXhlY3V0b3IifSwKKyAgICAgICAgICAgICAgICAgImV4ZWN1dG9yX2t3YXJncyI6
ICJleGVjdXRvcl9rd2FyZ3MiLAorICAgICAgICAgICAgICAgICAiZW52X2V4dHJhcyI6ICJlbnZf
ZXh0cmFzIiwKKyAgICAgICAgICAgICAgICAgImVudl9vcHRpb25zIjogImVudl9vcHRpb25zIiwK
KyAgICAgICAgICAgICAgICAgInJ1bl9pbmZvX2V4dHJhcyI6ICJydW5faW5mb19leHRyYXMiLAor
ICAgICAgICAgICAgICAgICAidGltZW91dF9tdWx0aXBsaWVyIjogImdldF90aW1lb3V0X211bHRp
cGxpZXIifQorCisKK2RlZiBjaGVja19hcmdzKCoqa3dhcmdzKToKKyAgICBwYXNzCisKKworZGVm
IGJyb3dzZXJfa3dhcmdzKHRlc3RfdHlwZSwgcnVuX2luZm9fZGF0YSwgY29uZmlnLCAqKmt3YXJn
cyk6CisgICAgIyBXb3JrYXJvdW5kIGZvciBodHRwczovL2dpdGxhYi5nbm9tZS5vcmcvR05PTUUv
bGlic291cC9pc3N1ZXMvMTcyCisgICAgd2ViZHJpdmVyX3JlcXVpcmVkX2FyZ3MgPSBbIi0taG9z
dD0xMjcuMC4wLjEiXQorICAgIHdlYmRyaXZlcl9hcmdzID0gbWF5YmVfYWRkX2FyZ3Mod2ViZHJp
dmVyX3JlcXVpcmVkX2FyZ3MsIGt3YXJncy5nZXQoIndlYmRyaXZlcl9hcmdzIikpCisgICAgcmV0
dXJuIHsiYmluYXJ5Ijoga3dhcmdzWyJiaW5hcnkiXSwKKyAgICAgICAgICAgICJ3ZWJkcml2ZXJf
YmluYXJ5Ijoga3dhcmdzWyJ3ZWJkcml2ZXJfYmluYXJ5Il0sCisgICAgICAgICAgICAid2ViZHJp
dmVyX2FyZ3MiOiB3ZWJkcml2ZXJfYXJnc30KKworCitkZWYgY2FwYWJpbGl0aWVzKHNlcnZlcl9j
b25maWcsICoqa3dhcmdzKToKKyAgICBhcmdzID0ga3dhcmdzLmdldCgiYmluYXJ5X2FyZ3MiLCBb
XSkKKyAgICBpZiAiLS1hdXRvbWF0aW9uLW1vZGUiIG5vdCBpbiBhcmdzOgorICAgICAgICBhcmdz
LmFwcGVuZCgiLS1hdXRvbWF0aW9uLW1vZGUiKQorCisgICAgcmV0dXJuIHsKKyAgICAgICAgImJy
b3dzZXJOYW1lIjogIkVwaXBoYW55IiwKKyAgICAgICAgImJyb3dzZXJWZXJzaW9uIjogIjMuMzEu
NCIsICAjIEZpcnN0IHZlcnNpb24gdG8gc3VwcG9ydCBhdXRvbWF0aW9uCisgICAgICAgICJwbGF0
Zm9ybU5hbWUiOiAiQU5ZIiwKKyAgICAgICAgIndlYmtpdGd0azpicm93c2VyT3B0aW9ucyI6IHsK
KyAgICAgICAgICAgICJiaW5hcnkiOiBrd2FyZ3NbImJpbmFyeSJdLAorICAgICAgICAgICAgImFy
Z3MiOiBhcmdzLAorICAgICAgICAgICAgImNlcnRpZmljYXRlcyI6IGNlcnRpZmljYXRlX2RvbWFp
bl9saXN0KHNlcnZlcl9jb25maWcuZG9tYWluc19zZXQsIGt3YXJnc1siaG9zdF9jZXJ0X3BhdGgi
XSl9fQorCisKK2RlZiBleGVjdXRvcl9rd2FyZ3ModGVzdF90eXBlLCBzZXJ2ZXJfY29uZmlnLCBj
YWNoZV9tYW5hZ2VyLCBydW5faW5mb19kYXRhLAorICAgICAgICAgICAgICAgICAgICAqKmt3YXJn
cyk6CisgICAgZXhlY3V0b3Jfa3dhcmdzID0gYmFzZV9leGVjdXRvcl9rd2FyZ3ModGVzdF90eXBl
LCBzZXJ2ZXJfY29uZmlnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGNhY2hlX21hbmFnZXIsIHJ1bl9pbmZvX2RhdGEsICoqa3dhcmdzKQorICAgIGV4ZWN1dG9y
X2t3YXJnc1siY2xvc2VfYWZ0ZXJfZG9uZSJdID0gVHJ1ZQorICAgIGV4ZWN1dG9yX2t3YXJnc1si
Y2FwYWJpbGl0aWVzIl0gPSBjYXBhYmlsaXRpZXMoc2VydmVyX2NvbmZpZywgKiprd2FyZ3MpCisg
ICAgcmV0dXJuIGV4ZWN1dG9yX2t3YXJncworCisKK2RlZiBlbnZfZXh0cmFzKCoqa3dhcmdzKToK
KyAgICByZXR1cm4gW10KKworCitkZWYgZW52X29wdGlvbnMoKToKKyAgICByZXR1cm4ge30KKwor
CitkZWYgcnVuX2luZm9fZXh0cmFzKCoqa3dhcmdzKToKKyAgICByZXR1cm4geyJ3ZWJraXRfcG9y
dCI6ICJndGsifQorCisKK2NsYXNzIEVwaXBoYW55QnJvd3NlcihXZWJLaXRCcm93c2VyKToKKyAg
ICBkZWYgX19pbml0X18oc2VsZiwgbG9nZ2VyLCBiaW5hcnk9Tm9uZSwgd2ViZHJpdmVyX2JpbmFy
eT1Ob25lLAorICAgICAgICAgICAgICAgICB3ZWJkcml2ZXJfYXJncz1Ob25lKToKKyAgICAgICAg
V2ViS2l0QnJvd3Nlci5fX2luaXRfXyhzZWxmLCBsb2dnZXIsIGJpbmFyeSwgd2ViZHJpdmVyX2Jp
bmFyeSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3ZWJkcml2ZXJfYXJncykKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvd3B0cnVubmVyL3dwdHJ1bm5lci9icm93c2Vycy9mZW5uZWMucHkgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIv
YnJvd3NlcnMvZmVubmVjLnB5CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkYjI3MWFj
YzUwZWEwOGU2MWVmZDA5ODQ4YTlmZjc4YjUzYjhlZDFlLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9icm93c2Vycy9mZW5uZWMucHkK
KysrIC9kZXYvbnVsbApAQCAtMSwyNTQgKzAsMCBAQAotaW1wb3J0IG9zCi1pbXBvcnQgc2lnbmFs
Ci1pbXBvcnQgc3lzCi1pbXBvcnQgdGVtcGZpbGUKLWltcG9ydCB0cmFjZWJhY2sKLQotaW1wb3J0
IG1vem5ldHdvcmsKLWZyb20gbW96cHJvY2VzcyBpbXBvcnQgUHJvY2Vzc0hhbmRsZXIKLWZyb20g
bW96cHJvZmlsZSBpbXBvcnQgRmlyZWZveFByb2ZpbGUKLWZyb20gbW96cnVubmVyIGltcG9ydCBG
ZW5uZWNFbXVsYXRvclJ1bm5lcgotCi1mcm9tIHNlcnZlLnNlcnZlIGltcG9ydCBtYWtlX2hvc3Rz
X2ZpbGUKLQotZnJvbSAuYmFzZSBpbXBvcnQgKGdldF9mcmVlX3BvcnQsCi0gICAgICAgICAgICAg
ICAgICAgY21kX2FyZywKLSAgICAgICAgICAgICAgICAgICBicm93c2VyX2NvbW1hbmQpCi1mcm9t
IC4uZXhlY3V0b3JzLmV4ZWN1dG9ybWFyaW9uZXR0ZSBpbXBvcnQgTWFyaW9uZXR0ZVRlc3RoYXJu
ZXNzRXhlY3V0b3IgICMgbm9xYTogRjQwMQotZnJvbSAuZmlyZWZveCBpbXBvcnQgKGdldF90aW1l
b3V0X211bHRpcGxpZXIsIHVwZGF0ZV9wcm9wZXJ0aWVzLCBleGVjdXRvcl9rd2FyZ3MsIEZpcmVm
b3hCcm93c2VyKSAgIyBub3FhOiBGNDAxCi0KLQotX193cHRydW5uZXJfXyA9IHsicHJvZHVjdCI6
ICJmZW5uZWMiLAotICAgICAgICAgICAgICAgICAiY2hlY2tfYXJncyI6ICJjaGVja19hcmdzIiwK
LSAgICAgICAgICAgICAgICAgImJyb3dzZXIiOiAiRmVubmVjQnJvd3NlciIsCi0gICAgICAgICAg
ICAgICAgICJleGVjdXRvciI6IHsidGVzdGhhcm5lc3MiOiAiTWFyaW9uZXR0ZVRlc3RoYXJuZXNz
RXhlY3V0b3IifSwKLSAgICAgICAgICAgICAgICAgImJyb3dzZXJfa3dhcmdzIjogImJyb3dzZXJf
a3dhcmdzIiwKLSAgICAgICAgICAgICAgICAgImV4ZWN1dG9yX2t3YXJncyI6ICJleGVjdXRvcl9r
d2FyZ3MiLAotICAgICAgICAgICAgICAgICAiZW52X2V4dHJhcyI6ICJlbnZfZXh0cmFzIiwKLSAg
ICAgICAgICAgICAgICAgImVudl9vcHRpb25zIjogImVudl9vcHRpb25zIiwKLSAgICAgICAgICAg
ICAgICAgInJ1bl9pbmZvX2V4dHJhcyI6ICJydW5faW5mb19leHRyYXMiLAotICAgICAgICAgICAg
ICAgICAidXBkYXRlX3Byb3BlcnRpZXMiOiAidXBkYXRlX3Byb3BlcnRpZXMifQotCi1jbGFzcyBG
ZW5uZWNQcm9maWxlKEZpcmVmb3hQcm9maWxlKToKLSAgICAjIFdQVC1zcGVjaWZpYyBwcmVmcyBh
cmUgc2V0IGluIEZlbm5lY0Jyb3dzZXIuc3RhcnQoKQotICAgIEZpcmVmb3hQcm9maWxlLnByZWZl
cmVuY2VzLnVwZGF0ZSh7Ci0gICAgICAgICMgTWFrZSBzdXJlIFNoaWVsZCBkb2Vzbid0IGhpdCB0
aGUgbmV0d29yay4KLSAgICAgICAgImFwcC5ub3JtYW5keS5hcGlfdXJsIjogIiIsCi0gICAgICAg
ICMgSW5jcmVhc2UgdGhlIEFQWiBjb250ZW50IHJlc3BvbnNlIHRpbWVvdXQgaW4gdGVzdHMgdG8g
MSBtaW51dGUuCi0gICAgICAgICJhcHouY29udGVudF9yZXNwb25zZV90aW1lb3V0IjogNjAwMDAs
Ci0gICAgICAgICMgRW5hYmxlIG91dHB1dCBvZiBkdW1wKCkKLSAgICAgICAgImJyb3dzZXIuZG9t
LndpbmRvdy5kdW1wLmVuYWJsZWQiOiBUcnVlLAotICAgICAgICAjIERpc2FibGUgc2FmZWJyb3dz
aW5nIGNvbXBvbmVudHMKLSAgICAgICAgImJyb3dzZXIuc2FmZWJyb3dzaW5nLmJsb2NrZWRVUklz
LmVuYWJsZWQiOiBGYWxzZSwKLSAgICAgICAgImJyb3dzZXIuc2FmZWJyb3dzaW5nLmRvd25sb2Fk
cy5lbmFibGVkIjogRmFsc2UsCi0gICAgICAgICJicm93c2VyLnNhZmVicm93c2luZy5wYXNzd29y
ZHMuZW5hYmxlZCI6IEZhbHNlLAotICAgICAgICAiYnJvd3Nlci5zYWZlYnJvd3NpbmcubWFsd2Fy
ZS5lbmFibGVkIjogRmFsc2UsCi0gICAgICAgICJicm93c2VyLnNhZmVicm93c2luZy5waGlzaGlu
Zy5lbmFibGVkIjogRmFsc2UsCi0gICAgICAgICMgRG8gbm90IHJlc3RvcmUgdGhlIGxhc3Qgb3Bl
biBzZXQgb2YgdGFicyBpZiB0aGUgYnJvd3NlciBoYXMgY3Jhc2hlZAotICAgICAgICAiYnJvd3Nl
ci5zZXNzaW9uc3RvcmUucmVzdW1lX2Zyb21fY3Jhc2giOiBGYWxzZSwKLSAgICAgICAgIyBEaXNh
YmxlIEFuZHJvaWQgc25pcHBldHMKLSAgICAgICAgImJyb3dzZXIuc25pcHBldHMuZW5hYmxlZCI6
IEZhbHNlLAotICAgICAgICAiYnJvd3Nlci5zbmlwcGV0cy5zeW5jUHJvbW8uZW5hYmxlZCI6IEZh
bHNlLAotICAgICAgICAiYnJvd3Nlci5zbmlwcGV0cy5maXJzdHJ1bkhvbWVwYWdlLmVuYWJsZWQi
OiBGYWxzZSwKLSAgICAgICAgIyBEbyBub3QgYWxsb3cgYmFja2dyb3VuZCB0YWJzIHRvIGJlIHpv
bWJpZmllZCwgb3RoZXJ3aXNlIGZvciB0ZXN0cyB0aGF0Ci0gICAgICAgICMgb3BlbiBhZGRpdGlv
bmFsIHRhYnMsIHRoZSB0ZXN0IGhhcm5lc3MgdGFiIGl0c2VsZiBtaWdodCBnZXQgdW5sb2FkZWQK
LSAgICAgICAgImJyb3dzZXIudGFicy5kaXNhYmxlQmFja2dyb3VuZFpvbWJpZmljYXRpb24iOiBU
cnVlLAotICAgICAgICAjIERpc2FibGUgZTEwcyBieSBkZWZhdWx0Ci0gICAgICAgICJicm93c2Vy
LnRhYnMucmVtb3RlLmF1dG9zdGFydCI6IEZhbHNlLAotICAgICAgICAjIERvbid0IHdhcm4gd2hl
biBleGl0aW5nIHRoZSBicm93c2VyCi0gICAgICAgICJicm93c2VyLndhcm5PblF1aXQiOiBGYWxz
ZSwKLSAgICAgICAgIyBEb24ndCBzZW5kIEZpcmVmb3ggaGVhbHRoIHJlcG9ydHMgdG8gdGhlIHBy
b2R1Y3Rpb24gc2VydmVyCi0gICAgICAgICJkYXRhcmVwb3J0aW5nLmhlYWx0aHJlcG9ydC5hYm91
dC5yZXBvcnRVcmwiOiAiaHR0cDovLyUoc2VydmVyKXMvZHVtbXkvYWJvdXRoZWFsdGhyZXBvcnQv
IiwKLSAgICAgICAgIyBBdXRvbWF0aWNhbGx5IHVubG9hZCBiZWZvcmV1bmxvYWQgYWxlcnRzCi0g
ICAgICAgICJkb20uZGlzYWJsZV9iZWZvcmV1bmxvYWQiOiBUcnVlLAotICAgICAgICAjIERpc2Fi
bGUgdGhlIFByb2Nlc3NIYW5nTW9uaXRvcgotICAgICAgICAiZG9tLmlwYy5yZXBvcnRQcm9jZXNz
SGFuZ3MiOiBGYWxzZSwKLSAgICAgICAgIyBObyBzbG93IHNjcmlwdCBkaWFsb2dzCi0gICAgICAg
ICJkb20ubWF4X2Nocm9tZV9zY3JpcHRfcnVuX3RpbWUiOiAwLAotICAgICAgICAiZG9tLm1heF9z
Y3JpcHRfcnVuX3RpbWUiOiAwLAotICAgICAgICAjIE1ha2Ugc3VyZSBvcGVuaW5nIGFib3V0OmFk
ZG9ucyB3b24idCBoaXQgdGhlIG5ldHdvcmsKLSAgICAgICAgImV4dGVuc2lvbnMud2Vic2Vydmlj
ZS5kaXNjb3ZlclVSTCI6ICJodHRwOi8vJShzZXJ2ZXIpcy9kdW1teS9kaXNjb3ZlcnlVUkwiLAot
ICAgICAgICAjIE5vIGhhbmcgbW9uaXRvcgotICAgICAgICAiaGFuZ21vbml0b3IudGltZW91dCI6
IDAsCi0KLSAgICAgICAgImphdmFzY3JpcHQub3B0aW9ucy5zaG93SW5Db25zb2xlIjogVHJ1ZSwK
LSAgICAgICAgIyBFbnN1cmUgYmxvY2tsaXN0IHVwZGF0ZXMgZG9uJ3QgaGl0IHRoZSBuZXR3b3Jr
Ci0gICAgICAgICJzZXJ2aWNlcy5zZXR0aW5ncy5zZXJ2ZXIiOiAiaHR0cDovLyUoc2VydmVyKXMv
ZHVtbXkvYmxvY2tsaXN0LyIsCi0gICAgICAgICMgRGlzYWJsZSBwYXNzd29yZCBjYXB0dXJlLCBz
byB0aGF0IHRlc3RzIHRoYXQgaW5jbHVkZSBmb3JtcyBhcmVuInQKLSAgICAgICAgIyBpbmZsdWVu
Y2VkIGJ5IHRoZSBwcmVzZW5jZSBvZiB0aGUgcGVyc2lzdGVudCBkb29yaGFuZ2VyIG5vdGlmaWNh
dGlvbgotICAgICAgICAic2lnbm9uLnJlbWVtYmVyU2lnbm9ucyI6IEZhbHNlLAotICAgIH0pCi0K
LQotZGVmIGNoZWNrX2FyZ3MoKiprd2FyZ3MpOgotICAgIHBhc3MKLQotZGVmIGJyb3dzZXJfa3dh
cmdzKHRlc3RfdHlwZSwgcnVuX2luZm9fZGF0YSwgY29uZmlnLCAqKmt3YXJncyk6Ci0gICAgcmV0
dXJuIHsicGFja2FnZV9uYW1lIjoga3dhcmdzWyJwYWNrYWdlX25hbWUiXSwKLSAgICAgICAgICAg
ICJkZXZpY2Vfc2VyaWFsIjoga3dhcmdzWyJkZXZpY2Vfc2VyaWFsIl0sCi0gICAgICAgICAgICAi
cHJlZnNfcm9vdCI6IGt3YXJnc1sicHJlZnNfcm9vdCJdLAotICAgICAgICAgICAgImV4dHJhX3By
ZWZzIjoga3dhcmdzWyJleHRyYV9wcmVmcyJdLAotICAgICAgICAgICAgInRlc3RfdHlwZSI6IHRl
c3RfdHlwZSwKLSAgICAgICAgICAgICJkZWJ1Z19pbmZvIjoga3dhcmdzWyJkZWJ1Z19pbmZvIl0s
Ci0gICAgICAgICAgICAic3ltYm9sc19wYXRoIjoga3dhcmdzWyJzeW1ib2xzX3BhdGgiXSwKLSAg
ICAgICAgICAgICJzdGFja3dhbGtfYmluYXJ5Ijoga3dhcmdzWyJzdGFja3dhbGtfYmluYXJ5Il0s
Ci0gICAgICAgICAgICAiY2VydHV0aWxfYmluYXJ5Ijoga3dhcmdzWyJjZXJ0dXRpbF9iaW5hcnki
XSwKLSAgICAgICAgICAgICJjYV9jZXJ0aWZpY2F0ZV9wYXRoIjoga3dhcmdzWyJzc2xfZW52Il0u
Y2FfY2VydF9wYXRoKCksCi0gICAgICAgICAgICAic3RhY2tmaXhfZGlyIjoga3dhcmdzWyJzdGFj
a2ZpeF9kaXIiXSwKLSAgICAgICAgICAgICJiaW5hcnlfYXJncyI6IGt3YXJnc1siYmluYXJ5X2Fy
Z3MiXSwKLSAgICAgICAgICAgICJ0aW1lb3V0X211bHRpcGxpZXIiOiBnZXRfdGltZW91dF9tdWx0
aXBsaWVyKHRlc3RfdHlwZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHJ1bl9pbmZvX2RhdGEsCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKmt3YXJncyksCi0gICAgICAgICAg
ICAibGVha19jaGVjayI6IGt3YXJnc1sibGVha19jaGVjayJdLAotICAgICAgICAgICAgInN0eWxv
X3RocmVhZHMiOiBrd2FyZ3NbInN0eWxvX3RocmVhZHMiXSwKLSAgICAgICAgICAgICJjaGFvc19t
b2RlX2ZsYWdzIjoga3dhcmdzWyJjaGFvc19tb2RlX2ZsYWdzIl0sCi0gICAgICAgICAgICAiY29u
ZmlnIjogY29uZmlnfQotCi0KLWRlZiBlbnZfZXh0cmFzKCoqa3dhcmdzKToKLSAgICByZXR1cm4g
W10KLQotCi1kZWYgcnVuX2luZm9fZXh0cmFzKCoqa3dhcmdzKToKLSAgICByZXR1cm4geyJlMTBz
IjogRmFsc2UsCi0gICAgICAgICAgICAiaGVhZGxlc3MiOiBGYWxzZX0KLQotCi1kZWYgZW52X29w
dGlvbnMoKToKLSAgICAjIFRoZSBzZXJ2ZXIgaG9zdCBpcyBzZXQgdG8gcHVibGljIGxvY2FsaG9z
dCBJUCBzbyB0aGF0IHJlc291cmNlcyBjYW4gYmUgYWNjZXNzZWQKLSAgICAjIGZyb20gQW5kcm9p
ZCBlbXVsYXRvcgotICAgIHJldHVybiB7InNlcnZlcl9ob3N0IjogbW96bmV0d29yay5nZXRfaXAo
KSwKLSAgICAgICAgICAgICJiaW5kX2FkZHJlc3MiOiBGYWxzZSwKLSAgICAgICAgICAgICJzdXBw
b3J0c19kZWJ1Z2dlciI6IFRydWV9Ci0KLQotZGVmIHdyaXRlX2hvc3RzX2ZpbGUoY29uZmlnLCBk
ZXZpY2UpOgotICAgIG5ld19ob3N0cyA9IG1ha2VfaG9zdHNfZmlsZShjb25maWcsIG1vem5ldHdv
cmsuZ2V0X2lwKCkpCi0gICAgY3VycmVudF9ob3N0cyA9IGRldmljZS5nZXRfZmlsZSgiL2V0Yy9o
b3N0cyIpCi0gICAgaWYgbmV3X2hvc3RzID09IGN1cnJlbnRfaG9zdHM6Ci0gICAgICAgIHJldHVy
bgotICAgIGhvc3RzX2ZkLCBob3N0c19wYXRoID0gdGVtcGZpbGUubWtzdGVtcCgpCi0gICAgdHJ5
OgotICAgICAgICB3aXRoIG9zLmZkb3Blbihob3N0c19mZCwgInciKSBhcyBmOgotICAgICAgICAg
ICAgZi53cml0ZShuZXdfaG9zdHMpCi0gICAgICAgIGRldmljZS5yZW1vdW50KCkKLSAgICAgICAg
ZGV2aWNlLnB1c2goaG9zdHNfcGF0aCwgIi9ldGMvaG9zdHMiKQotICAgIGZpbmFsbHk6Ci0gICAg
ICAgIG9zLnJlbW92ZShob3N0c19wYXRoKQotCi0KLWNsYXNzIEZlbm5lY0Jyb3dzZXIoRmlyZWZv
eEJyb3dzZXIpOgotICAgIHVzZWRfcG9ydHMgPSBzZXQoKQotICAgIGluaXRfdGltZW91dCA9IDMw
MAotICAgIHNodXRkb3duX3RpbWVvdXQgPSA2MAotCi0gICAgZGVmIF9faW5pdF9fKHNlbGYsIGxv
Z2dlciwgcHJlZnNfcm9vdCwgdGVzdF90eXBlLCBwYWNrYWdlX25hbWU9Tm9uZSwKLSAgICAgICAg
ICAgICAgICAgZGV2aWNlX3NlcmlhbD0iZW11bGF0b3ItNTQ0NCIsICoqa3dhcmdzKToKLSAgICAg
ICAgRmlyZWZveEJyb3dzZXIuX19pbml0X18oc2VsZiwgbG9nZ2VyLCBOb25lLCBwcmVmc19yb290
LCB0ZXN0X3R5cGUsICoqa3dhcmdzKQotICAgICAgICBzZWxmLl9wYWNrYWdlX25hbWUgPSBwYWNr
YWdlX25hbWUKLSAgICAgICAgc2VsZi5kZXZpY2Vfc2VyaWFsID0gZGV2aWNlX3NlcmlhbAotCi0g
ICAgQHByb3BlcnR5Ci0gICAgZGVmIHBhY2thZ2VfbmFtZShzZWxmKToKLSAgICAgICAgIiIiCi0g
ICAgICAgIE5hbWUgb2YgYXBwIHRvIHJ1biBvbiBlbXVsYXRvci4KLSAgICAgICAgIiIiCi0gICAg
ICAgIGlmIHNlbGYuX3BhY2thZ2VfbmFtZSBpcyBOb25lOgotICAgICAgICAgICAgc2VsZi5fcGFj
a2FnZV9uYW1lID0gIm9yZy5tb3ppbGxhLmZlbm5lYyIKLSAgICAgICAgICAgIHVzZXIgPSBvcy5n
ZXRlbnYoIlVTRVIiKQotICAgICAgICAgICAgaWYgdXNlcjoKLSAgICAgICAgICAgICAgICBzZWxm
Ll9wYWNrYWdlX25hbWUgKz0gIl8iICsgdXNlcgotICAgICAgICByZXR1cm4gc2VsZi5fcGFja2Fn
ZV9uYW1lCi0KLSAgICBkZWYgc3RhcnQoc2VsZiwgKiprd2FyZ3MpOgotICAgICAgICBpZiBzZWxm
Lm1hcmlvbmV0dGVfcG9ydCBpcyBOb25lOgotICAgICAgICAgICAgc2VsZi5tYXJpb25ldHRlX3Bv
cnQgPSBnZXRfZnJlZV9wb3J0KDI4MjgsIGV4Y2x1ZGU9c2VsZi51c2VkX3BvcnRzKQotICAgICAg
ICAgICAgc2VsZi51c2VkX3BvcnRzLmFkZChzZWxmLm1hcmlvbmV0dGVfcG9ydCkKLQotICAgICAg
ICBlbnYgPSB7fQotICAgICAgICBlbnZbIk1PWl9DUkFTSFJFUE9SVEVSIl0gPSAiMSIKLSAgICAg
ICAgZW52WyJNT1pfQ1JBU0hSRVBPUlRFUl9TSFVURE9XTiJdID0gIjEiCi0gICAgICAgIGVudlsi
TU9aX0RJU0FCTEVfTk9OTE9DQUxfQ09OTkVDVElPTlMiXSA9ICIxIgotICAgICAgICBlbnZbIlNU
WUxPX1RIUkVBRFMiXSA9IHN0cihzZWxmLnN0eWxvX3RocmVhZHMpCi0gICAgICAgIGlmIHNlbGYu
Y2hhb3NfbW9kZV9mbGFncyBpcyBub3QgTm9uZToKLSAgICAgICAgICAgIGVudlsiTU9aX0NIQU9T
TU9ERSJdID0gc3RyKHNlbGYuY2hhb3NfbW9kZV9mbGFncykKLQotICAgICAgICBwcmVmZXJlbmNl
cyA9IHNlbGYubG9hZF9wcmVmcygpCi0KLSAgICAgICAgc2VsZi5wcm9maWxlID0gRmVubmVjUHJv
ZmlsZShwcmVmZXJlbmNlcz1wcmVmZXJlbmNlcykKLSAgICAgICAgc2VsZi5wcm9maWxlLnNldF9w
cmVmZXJlbmNlcyh7Im1hcmlvbmV0dGUucG9ydCI6IHNlbGYubWFyaW9uZXR0ZV9wb3J0LAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiZG9tLmRpc2FibGVfb3Blbl9kdXJp
bmdfbG9hZCI6IEZhbHNlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAi
cGxhY2VzLmhpc3RvcnkuZW5hYmxlZCI6IEZhbHNlLAotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAiZG9tLnNlbmRfYWZ0ZXJfcGFpbnRfdG9fY29udGVudCI6IFRydWUsCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJuZXR3b3JrLnByZWxvYWQiOiBU
cnVlfSkKLQotICAgICAgICBpZiBzZWxmLmxlYWtfY2hlY2sgYW5kIGt3YXJncy5nZXQoImNoZWNr
X2xlYWtzIiwgVHJ1ZSk6Ci0gICAgICAgICAgICBzZWxmLmxlYWtfcmVwb3J0X2ZpbGUgPSBvcy5w
YXRoLmpvaW4oc2VsZi5wcm9maWxlLnByb2ZpbGUsICJydW50ZXN0c19sZWFrcy5sb2ciKQotICAg
ICAgICAgICAgaWYgb3MucGF0aC5leGlzdHMoc2VsZi5sZWFrX3JlcG9ydF9maWxlKToKLSAgICAg
ICAgICAgICAgICBvcy5yZW1vdmUoc2VsZi5sZWFrX3JlcG9ydF9maWxlKQotICAgICAgICAgICAg
ZW52WyJYUENPTV9NRU1fQkxPQVRfTE9HIl0gPSBzZWxmLmxlYWtfcmVwb3J0X2ZpbGUKLSAgICAg
ICAgZWxzZToKLSAgICAgICAgICAgIHNlbGYubGVha19yZXBvcnRfZmlsZSA9IE5vbmUKLQotICAg
ICAgICBpZiBzZWxmLmNhX2NlcnRpZmljYXRlX3BhdGggaXMgbm90IE5vbmU6Ci0gICAgICAgICAg
ICBzZWxmLnNldHVwX3NzbCgpCi0KLSAgICAgICAgZGVidWdfYXJncywgY21kID0gYnJvd3Nlcl9j
b21tYW5kKHNlbGYucGFja2FnZV9uYW1lLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgc2VsZi5iaW5hcnlfYXJncyBpZiBzZWxmLmJpbmFyeV9hcmdzIGVsc2UgW10g
KwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NtZF9hcmcoIm1h
cmlvbmV0dGUiKSwgImFib3V0OmJsYW5rIl0sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBzZWxmLmRlYnVnX2luZm8pCi0KLSAgICAgICAgc2VsZi5ydW5uZXIgPSBG
ZW5uZWNFbXVsYXRvclJ1bm5lcihhcHA9c2VsZi5wYWNrYWdlX25hbWUsCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvZmlsZT1zZWxmLnByb2ZpbGUsCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY21kYXJncz1jbWRbMTpdLAot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVudj1lbnYsCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3ltYm9sc19wYXRoPXNlbGYu
c3ltYm9sc19wYXRoLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHNlcmlhbD1zZWxmLmRldmljZV9zZXJpYWwsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIyBUT0RPIC0gY2hvb3NlIGFwcHJvcHJpYXRlIGxvZyBkaXIKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb2dkaXI9b3MuZ2V0Y3dkKCks
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvY2Vzc19jbGFz
cz1Qcm9jZXNzSGFuZGxlciwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBwcm9jZXNzX2FyZ3M9eyJwcm9jZXNzT3V0cHV0TGluZSI6IFtzZWxmLm9uX291dHB1dF19
KQotCi0gICAgICAgIHNlbGYubG9nZ2VyLmRlYnVnKCJTdGFydGluZyBGZW5uZWMiKQotICAgICAg
ICAjIGNvbm5lY3QgdG8gYSBydW5uaW5nIGVtdWxhdG9yCi0gICAgICAgIHNlbGYucnVubmVyLmRl
dmljZS5jb25uZWN0KCkKLQotICAgICAgICB3cml0ZV9ob3N0c19maWxlKHNlbGYuY29uZmlnLCBz
ZWxmLnJ1bm5lci5kZXZpY2UuZGV2aWNlKQotCi0gICAgICAgIHNlbGYucnVubmVyLnN0YXJ0KGRl
YnVnX2FyZ3M9ZGVidWdfYXJncywgaW50ZXJhY3RpdmU9c2VsZi5kZWJ1Z19pbmZvIGFuZCBzZWxm
LmRlYnVnX2luZm8uaW50ZXJhY3RpdmUpCi0KLSAgICAgICAgIyBnZWNrb19sb2cgY29tZXMgZnJv
bSBsb2djYXQgd2hlbiBydW5uaW5nIHdpdGggZGV2aWNlL2VtdWxhdG9yCi0gICAgICAgIGxvZ2Nh
dF9hcmdzID0gewotICAgICAgICAgICAgImZpbHRlcnNwZWMiOiAiR2Vja28iLAotICAgICAgICAg
ICAgInNlcmlhbCI6IHNlbGYucnVubmVyLmRldmljZS5hcHBfY3R4LmRldmljZV9zZXJpYWwKLSAg
ICAgICAgfQotICAgICAgICAjIFRPRE8gc2V0dGluZyBsb2djYXRfYXJnc1sibG9nZmlsZSJdIHlp
ZWxkcyBhbiBhbG1vc3QgZW1wdHkgZmlsZQotICAgICAgICAjIGV2ZW4gd2l0aG91dCBmaWx0ZXJz
cGVjCi0gICAgICAgIGxvZ2NhdF9hcmdzWyJzdHJlYW0iXSA9IHN5cy5zdGRvdXQKLSAgICAgICAg
c2VsZi5ydW5uZXIuZGV2aWNlLnN0YXJ0X2xvZ2NhdCgqKmxvZ2NhdF9hcmdzKQotCi0gICAgICAg
IHNlbGYucnVubmVyLmRldmljZS5kZXZpY2UuZm9yd2FyZCgKLSAgICAgICAgICAgIGxvY2FsPSJ0
Y3A6e30iLmZvcm1hdChzZWxmLm1hcmlvbmV0dGVfcG9ydCksCi0gICAgICAgICAgICByZW1vdGU9
InRjcDp7fSIuZm9ybWF0KHNlbGYubWFyaW9uZXR0ZV9wb3J0KSkKLQotICAgICAgICBzZWxmLmxv
Z2dlci5kZWJ1ZygiRmVubmVjIFN0YXJ0ZWQiKQotCi0gICAgZGVmIHN0b3Aoc2VsZiwgZm9yY2U9
RmFsc2UpOgotICAgICAgICBpZiBzZWxmLnJ1bm5lciBpcyBub3QgTm9uZToKLSAgICAgICAgICAg
IHRyeToKLSAgICAgICAgICAgICAgICBpZiBzZWxmLnJ1bm5lci5kZXZpY2UuY29ubmVjdGVkOgot
ICAgICAgICAgICAgICAgICAgICBzZWxmLnJ1bm5lci5kZXZpY2UuZGV2aWNlLnJlbW92ZV9mb3J3
YXJkcygKLSAgICAgICAgICAgICAgICAgICAgICAgICJ0Y3A6e30iLmZvcm1hdChzZWxmLm1hcmlv
bmV0dGVfcG9ydCkpCi0gICAgICAgICAgICBleGNlcHQgRXhjZXB0aW9uOgotICAgICAgICAgICAg
ICAgIHRyYWNlYmFjay5wcmludF9leGNlcHRpb24oKnN5cy5leGNfaW5mbygpKQotICAgICAgICAg
ICAgIyBXZSBhc3N1bWUgdGhhdCBzdG9wcGluZyB0aGUgcnVubmVyIHByb21wdHMgdGhlCi0gICAg
ICAgICAgICAjIGJyb3dzZXIgdG8gc2h1dCBkb3duLiBUaGlzIGFsbG93cyB0aGUgbGVhayBsb2cg
dG8gYmUgd3JpdHRlbgotICAgICAgICAgICAgZm9yIGNsZWFuLCBzdG9wX2YgaW4gWyhUcnVlLCBs
YW1iZGE6IHNlbGYucnVubmVyLndhaXQoc2VsZi5zaHV0ZG93bl90aW1lb3V0KSksCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgKEZhbHNlLCBsYW1iZGE6IHNlbGYucnVubmVyLnN0
b3Aoc2lnbmFsLlNJR1RFUk0pKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAo
RmFsc2UsIGxhbWJkYTogc2VsZi5ydW5uZXIuc3RvcChzaWduYWwuU0lHS0lMTCkpXToKLSAgICAg
ICAgICAgICAgICBpZiBub3QgZm9yY2Ugb3Igbm90IGNsZWFuOgotICAgICAgICAgICAgICAgICAg
ICByZXRjb2RlID0gc3RvcF9mKCkKLSAgICAgICAgICAgICAgICAgICAgaWYgcmV0Y29kZSBpcyBu
b3QgTm9uZToKLSAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYubG9nZ2VyLmluZm8oIkJyb3dz
ZXIgZXhpdGVkIHdpdGggcmV0dXJuIGNvZGUgJXMiICUgcmV0Y29kZSkKLSAgICAgICAgICAgICAg
ICAgICAgICAgIGJyZWFrCi0gICAgICAgIHNlbGYubG9nZ2VyLmRlYnVnKCJzdG9wcGVkIikKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvd3B0cnVubmVyL3dwdHJ1bm5lci9icm93c2Vycy9maXJlZm94LnB5IGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVy
L2Jyb3dzZXJzL2ZpcmVmb3gucHkKaW5kZXggMDRmMmNlODRhNDE2MTlhMjNlMjlkNTQzNjQzMGIx
MWZhMmI2ZDdjNS4uNWUzZTQxZWI1NWZjODI1NjdiYTk1NDNjMjgzZTM0NjM1YmQ4YjExMiAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy93cHRydW5uZXIvd3B0cnVubmVyL2Jyb3dzZXJzL2ZpcmVmb3gucHkKKysrIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVu
bmVyL2Jyb3dzZXJzL2ZpcmVmb3gucHkKQEAgLTcsNiArNyw3IEBAIGltcG9ydCBzeXMKIAogaW1w
b3J0IG1vemluZm8KIGltcG9ydCBtb3psZWFrCitpbXBvcnQgbW96dmVyc2lvbgogZnJvbSBtb3pw
cm9jZXNzIGltcG9ydCBQcm9jZXNzSGFuZGxlcgogZnJvbSBtb3pwcm9maWxlIGltcG9ydCBGaXJl
Zm94UHJvZmlsZSwgUHJlZmVyZW5jZXMKIGZyb20gbW96cnVubmVyIGltcG9ydCBGaXJlZm94UnVu
bmVyCkBAIC0zOCw3ICszOSw4IEBAIF9fd3B0cnVubmVyX18gPSB7InByb2R1Y3QiOiAiZmlyZWZv
eCIsCiAgICAgICAgICAgICAgICAgICJlbnZfZXh0cmFzIjogImVudl9leHRyYXMiLAogICAgICAg
ICAgICAgICAgICAiZW52X29wdGlvbnMiOiAiZW52X29wdGlvbnMiLAogICAgICAgICAgICAgICAg
ICAicnVuX2luZm9fZXh0cmFzIjogInJ1bl9pbmZvX2V4dHJhcyIsCi0gICAgICAgICAgICAgICAg
ICJ1cGRhdGVfcHJvcGVydGllcyI6ICJ1cGRhdGVfcHJvcGVydGllcyJ9CisgICAgICAgICAgICAg
ICAgICJ1cGRhdGVfcHJvcGVydGllcyI6ICJ1cGRhdGVfcHJvcGVydGllcyIsCisgICAgICAgICAg
ICAgICAgICJ0aW1lb3V0X211bHRpcGxpZXIiOiAiZ2V0X3RpbWVvdXRfbXVsdGlwbGllciJ9CiAK
IAogZGVmIGdldF90aW1lb3V0X211bHRpcGxpZXIodGVzdF90eXBlLCBydW5faW5mb19kYXRhLCAq
Kmt3YXJncyk6CkBAIC01Niw2ICs1OCw5IEBAIGRlZiBnZXRfdGltZW91dF9tdWx0aXBsaWVyKHRl
c3RfdHlwZSwgcnVuX2luZm9fZGF0YSwgKiprd2FyZ3MpOgogICAgICAgICAgICAgcmV0dXJuIDMK
ICAgICBlbGlmIHJ1bl9pbmZvX2RhdGFbIm9zIl0gPT0gImFuZHJvaWQiOgogICAgICAgICByZXR1
cm4gNAorICAgICMgaHR0cHM6Ly9idWd6aWxsYS5tb3ppbGxhLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTUzODcyNQorICAgIGVsaWYgcnVuX2luZm9fZGF0YVsib3MiXSA9PSAid2luIiBhbmQgcnVuX2lu
Zm9fZGF0YVsicHJvY2Vzc29yIl0gPT0gImFhcmNoNjQiOgorICAgICAgICByZXR1cm4gNAogICAg
IHJldHVybiAxCiAKIApAQCAtNzQsMTYgKzc5LDE5IEBAIGRlZiBicm93c2VyX2t3YXJncyh0ZXN0
X3R5cGUsIHJ1bl9pbmZvX2RhdGEsIGNvbmZpZywgKiprd2FyZ3MpOgogICAgICAgICAgICAgImNl
cnR1dGlsX2JpbmFyeSI6IGt3YXJnc1siY2VydHV0aWxfYmluYXJ5Il0sCiAgICAgICAgICAgICAi
Y2FfY2VydGlmaWNhdGVfcGF0aCI6IGNvbmZpZy5zc2xfY29uZmlnWyJjYV9jZXJ0X3BhdGgiXSwK
ICAgICAgICAgICAgICJlMTBzIjoga3dhcmdzWyJnZWNrb19lMTBzIl0sCisgICAgICAgICAgICAi
ZW5hYmxlX3dlYnJlbmRlciI6IGt3YXJnc1siZW5hYmxlX3dlYnJlbmRlciJdLAogICAgICAgICAg
ICAgInN0YWNrZml4X2RpciI6IGt3YXJnc1sic3RhY2tmaXhfZGlyIl0sCiAgICAgICAgICAgICAi
YmluYXJ5X2FyZ3MiOiBrd2FyZ3NbImJpbmFyeV9hcmdzIl0sCiAgICAgICAgICAgICAidGltZW91
dF9tdWx0aXBsaWVyIjogZ2V0X3RpbWVvdXRfbXVsdGlwbGllcih0ZXN0X3R5cGUsCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBydW5faW5m
b19kYXRhLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgKiprd2FyZ3MpLAotICAgICAgICAgICAgImxlYWtfY2hlY2siOiBrd2FyZ3NbImxl
YWtfY2hlY2siXSwKKyAgICAgICAgICAgICJsZWFrX2NoZWNrIjogcnVuX2luZm9fZGF0YVsiZGVi
dWciXSBhbmQgKGt3YXJnc1sibGVha19jaGVjayJdIGlzIG5vdCBGYWxzZSksCiAgICAgICAgICAg
ICAiYXNhbiI6IHJ1bl9pbmZvX2RhdGEuZ2V0KCJhc2FuIiksCiAgICAgICAgICAgICAic3R5bG9f
dGhyZWFkcyI6IGt3YXJnc1sic3R5bG9fdGhyZWFkcyJdLAogICAgICAgICAgICAgImNoYW9zX21v
ZGVfZmxhZ3MiOiBrd2FyZ3NbImNoYW9zX21vZGVfZmxhZ3MiXSwKLSAgICAgICAgICAgICJjb25m
aWciOiBjb25maWd9CisgICAgICAgICAgICAiY29uZmlnIjogY29uZmlnLAorICAgICAgICAgICAg
ImJyb3dzZXJfY2hhbm5lbCI6IGt3YXJnc1siYnJvd3Nlcl9jaGFubmVsIl0sCisgICAgICAgICAg
ICAiaGVhZGxlc3MiOiBrd2FyZ3NbImhlYWRsZXNzIl19CiAKIAogZGVmIGV4ZWN1dG9yX2t3YXJn
cyh0ZXN0X3R5cGUsIHNlcnZlcl9jb25maWcsIGNhY2hlX21hbmFnZXIsIHJ1bl9pbmZvX2RhdGEs
CkBAIC05Nyw2ICsxMDUsOCBAQCBkZWYgZXhlY3V0b3Jfa3dhcmdzKHRlc3RfdHlwZSwgc2VydmVy
X2NvbmZpZywgY2FjaGVfbWFuYWdlciwgcnVuX2luZm9fZGF0YSwKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKmt3YXJn
cykKICAgICBleGVjdXRvcl9rd2FyZ3NbImUxMHMiXSA9IHJ1bl9pbmZvX2RhdGFbImUxMHMiXQog
ICAgIGNhcGFiaWxpdGllcyA9IHt9CisgICAgaWYgdGVzdF90eXBlID09ICJ0ZXN0aGFybmVzcyI6
CisgICAgICAgIGNhcGFiaWxpdGllc1sicGFnZUxvYWRTdHJhdGVneSJdID0gImVhZ2VyIgogICAg
IGlmIHRlc3RfdHlwZSA9PSAicmVmdGVzdCI6CiAgICAgICAgIGV4ZWN1dG9yX2t3YXJnc1sicmVm
dGVzdF9pbnRlcm5hbCJdID0ga3dhcmdzWyJyZWZ0ZXN0X2ludGVybmFsIl0KICAgICAgICAgZXhl
Y3V0b3Jfa3dhcmdzWyJyZWZ0ZXN0X3NjcmVlbnNob3QiXSA9IGt3YXJnc1sicmVmdGVzdF9zY3Jl
ZW5zaG90Il0KQEAgLTEwNiw5ICsxMTYsMTYgQEAgZGVmIGV4ZWN1dG9yX2t3YXJncyh0ZXN0X3R5
cGUsIHNlcnZlcl9jb25maWcsIGNhY2hlX21hbmFnZXIsIHJ1bl9pbmZvX2RhdGEsCiAgICAgICAg
ICAgICBvcHRpb25zWyJiaW5hcnkiXSA9IGt3YXJnc1siYmluYXJ5Il0KICAgICAgICAgaWYga3dh
cmdzWyJiaW5hcnlfYXJncyJdOgogICAgICAgICAgICAgb3B0aW9uc1siYXJncyJdID0ga3dhcmdz
WyJiaW5hcnlfYXJncyJdCisgICAgICAgIGlmIGt3YXJnc1siaGVhZGxlc3MiXToKKyAgICAgICAg
ICAgIGlmICJhcmdzIiBub3QgaW4gb3B0aW9uczoKKyAgICAgICAgICAgICAgICBvcHRpb25zWyJh
cmdzIl0gPSBbXQorICAgICAgICAgICAgaWYgIi0taGVhZGxlc3MiIG5vdCBpbiBvcHRpb25zWyJh
cmdzIl06CisgICAgICAgICAgICAgICAgb3B0aW9uc1siYXJncyJdLmFwcGVuZCgiLS1oZWFkbGVz
cyIpCiAgICAgICAgIG9wdGlvbnNbInByZWZzIl0gPSB7CiAgICAgICAgICAgICAibmV0d29yay5k
bnMubG9jYWxEb21haW5zIjogIiwiLmpvaW4oc2VydmVyX2NvbmZpZy5kb21haW5zX3NldCkKICAg
ICAgICAgfQorICAgICAgICBmb3IgcHJlZiwgdmFsdWUgaW4ga3dhcmdzWyJleHRyYV9wcmVmcyJd
OgorICAgICAgICAgICAgb3B0aW9uc1sicHJlZnMiXS51cGRhdGUoe3ByZWY6IFByZWZlcmVuY2Vz
LmNhc3QodmFsdWUpfSkKICAgICAgICAgY2FwYWJpbGl0aWVzWyJtb3o6ZmlyZWZveE9wdGlvbnMi
XSA9IG9wdGlvbnMKICAgICBpZiBrd2FyZ3NbImNlcnR1dGlsX2JpbmFyeSJdIGlzIE5vbmU6CiAg
ICAgICAgIGNhcGFiaWxpdGllc1siYWNjZXB0SW5zZWN1cmVDZXJ0cyJdID0gVHJ1ZQpAQCAtMTMw
LDMyICsxNDcsNjkgQEAgZGVmIGVudl9vcHRpb25zKCk6CiAgICAgIwogICAgICMgaHR0cHM6Ly9n
aXRodWIuY29tL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQvcHVsbC85NDgwCiAgICAgcmV0dXJuIHsi
c2VydmVyX2hvc3QiOiAiMTI3LjAuMC4xIiwKLSAgICAgICAgICAgICJiaW5kX2FkZHJlc3MiOiBG
YWxzZSwKICAgICAgICAgICAgICJzdXBwb3J0c19kZWJ1Z2dlciI6IFRydWV9CiAKIAogZGVmIHJ1
bl9pbmZvX2V4dHJhcygqKmt3YXJncyk6Ci0gICAgcmV0dXJuIHsiZTEwcyI6IGt3YXJnc1siZ2Vj
a29fZTEwcyJdLAotICAgICAgICAgICAgIndhc20iOiBrd2FyZ3MuZ2V0KCJ3YXNtIiwgVHJ1ZSks
Ci0gICAgICAgICAgICAidmVyaWZ5Ijoga3dhcmdzWyJ2ZXJpZnkiXSwKLSAgICAgICAgICAgICJo
ZWFkbGVzcyI6ICJNT1pfSEVBRExFU1MiIGluIG9zLmVudmlyb259CisKKyAgICBkZWYgZ2V0X2Jv
b2xfcHJlZl9pZl9leGlzdHMocHJlZik6CisgICAgICAgIGZvciBrZXksIHZhbHVlIGluIGt3YXJn
cy5nZXQoJ2V4dHJhX3ByZWZzJywgW10pOgorICAgICAgICAgICAgaWYgcHJlZiA9PSBrZXk6Cisg
ICAgICAgICAgICAgICAgcmV0dXJuIHZhbHVlLmxvd2VyKCkgaW4gKCd0cnVlJywgJzEnKQorICAg
ICAgICByZXR1cm4gTm9uZQorCisgICAgZGVmIGdldF9ib29sX3ByZWYocHJlZik6CisgICAgICAg
IHByZWZfdmFsdWUgPSBnZXRfYm9vbF9wcmVmX2lmX2V4aXN0cyhwcmVmKQorICAgICAgICByZXR1
cm4gcHJlZl92YWx1ZSBpZiBwcmVmX3ZhbHVlIGlzIG5vdCBOb25lIGVsc2UgRmFsc2UKKworICAg
IHJ2ID0geyJlMTBzIjoga3dhcmdzWyJnZWNrb19lMTBzIl0sCisgICAgICAgICAgIndhc20iOiBr
d2FyZ3MuZ2V0KCJ3YXNtIiwgVHJ1ZSksCisgICAgICAgICAgInZlcmlmeSI6IGt3YXJnc1sidmVy
aWZ5Il0sCisgICAgICAgICAgImhlYWRsZXNzIjoga3dhcmdzLmdldCgiaGVhZGxlc3MiLCBGYWxz
ZSkgb3IgIk1PWl9IRUFETEVTUyIgaW4gb3MuZW52aXJvbiwKKyAgICAgICAgICAiZmlzc2lvbiI6
IGdldF9ib29sX3ByZWYoImZpc3Npb24uYXV0b3N0YXJ0Iil9CisKKyAgICAjIFRoZSB2YWx1ZSBv
ZiBgc3ctZTEwc2AgZGVmYXVsdHMgdG8gd2hldGhlciB0aGUgInBhcmVudF9pbnRlcmNlcHQiCisg
ICAgIyBpbXBsZW1lbnRhdGlvbiBpcyBlbmFibGVkIGZvciB0aGUgY3VycmVudCBidWlsZC4gVGhp
cyB2YWx1ZSwgaG93ZXZlciwKKyAgICAjIGNhbiBiZSBvdmVycmlkZGVuIGJ5IGV4cGxpY2l0bHkg
c2V0dGluZyB0aGUgcHJlZiB3aXRoIHRoZSBgLS1zZXRwcmVmYCBDTEkKKyAgICAjIGZsYWcsIHdo
aWNoIGlzIGNoZWNrZWQgaGVyZS4gSWYgbm90IHN1cHBsaWVkLCB0aGUgZGVmYXVsdCB2YWx1ZSBv
ZgorICAgICMgYHN3LWUxMHNgIHdpbGwgYmUgZmlsbGVkIGluIGluIGBSdW5JbmZvYCdzIGNvbnN0
cnVjdG9yLgorICAgICMKKyAgICAjIFdlIGNhbid0IGNhcHR1cmUgdGhlIGRlZmF1bHQgdmFsdWUg
cmlnaHQgbm93IGJlY2F1c2UgKGN1cnJlbnRseSksIGl0CisgICAgIyBkZWZhdWx0cyB0byB0aGUg
dmFsdWUgb2YgYG5pZ2h0bHlfYnVpbGRgLCB3aGljaCBpc24ndCBrbm93biB1bnRpbAorICAgICMg
YFJ1bkluZm9gJ3MgY29uc3RydWN0b3IuCisgICAgc3dfZTEwc19vdmVycmlkZSA9IGdldF9ib29s
X3ByZWZfaWZfZXhpc3RzKCJkb20uc2VydmljZVdvcmtlcnMucGFyZW50X2ludGVyY2VwdCIpCisg
ICAgaWYgc3dfZTEwc19vdmVycmlkZSBpcyBub3QgTm9uZToKKyAgICAgICAgcnZbInN3LWUxMHMi
XSA9IHN3X2UxMHNfb3ZlcnJpZGUKKworICAgIHJ2LnVwZGF0ZShydW5faW5mb19icm93c2VyX3Zl
cnNpb24oa3dhcmdzWyJiaW5hcnkiXSkpCisgICAgcmV0dXJuIHJ2CisKKworZGVmIHJ1bl9pbmZv
X2Jyb3dzZXJfdmVyc2lvbihiaW5hcnkpOgorICAgIHRyeToKKyAgICAgICAgdmVyc2lvbl9pbmZv
ID0gbW96dmVyc2lvbi5nZXRfdmVyc2lvbihiaW5hcnkpCisgICAgZXhjZXB0IG1venZlcnNpb24u
ZXJyb3JzLlZlcnNpb25FcnJvcjoKKyAgICAgICAgdmVyc2lvbl9pbmZvID0gTm9uZQorICAgIGlm
IHZlcnNpb25faW5mbzoKKyAgICAgICAgcmV0dXJuIHsiYnJvd3Nlcl9idWlsZF9pZCI6IHZlcnNp
b25faW5mby5nZXQoImFwcGxpY2F0aW9uX2J1aWxkaWQiLCBOb25lKSwKKyAgICAgICAgICAgICAg
ICAiYnJvd3Nlcl9jaGFuZ2VzZXQiOiB2ZXJzaW9uX2luZm8uZ2V0KCJhcHBsaWNhdGlvbl9jaGFu
Z2VzZXQiLCBOb25lKX0KKyAgICByZXR1cm4ge30KIAogCiBkZWYgdXBkYXRlX3Byb3BlcnRpZXMo
KToKLSAgICByZXR1cm4gKFsiZGVidWciLCAid2VicmVuZGVyIiwgImUxMHMiLCAib3MiLCAidmVy
c2lvbiIsICJwcm9jZXNzb3IiLCAiYml0cyJdLAotICAgICAgICAgICAgeyJkZWJ1ZyIsICJlMTBz
IiwgIndlYnJlbmRlciJ9KQorICAgIHJldHVybiAoWyJvcyIsICJkZWJ1ZyIsICJ3ZWJyZW5kZXIi
LCAiZmlzc2lvbiIsICJlMTBzIiwgInN3LWUxMHMiLCAicHJvY2Vzc29yIl0sCisgICAgICAgICAg
ICB7Im9zIjogWyJ2ZXJzaW9uIl0sICJwcm9jZXNzb3IiOiBbImJpdHMiXX0pCiAKIAogY2xhc3Mg
RmlyZWZveEJyb3dzZXIoQnJvd3Nlcik6Ci0gICAgdXNlZF9wb3J0cyA9IHNldCgpCiAgICAgaW5p
dF90aW1lb3V0ID0gNzAKICAgICBzaHV0ZG93bl90aW1lb3V0ID0gNzAKIAogICAgIGRlZiBfX2lu
aXRfXyhzZWxmLCBsb2dnZXIsIGJpbmFyeSwgcHJlZnNfcm9vdCwgdGVzdF90eXBlLCBleHRyYV9w
cmVmcz1Ob25lLCBkZWJ1Z19pbmZvPU5vbmUsCiAgICAgICAgICAgICAgICAgIHN5bWJvbHNfcGF0
aD1Ob25lLCBzdGFja3dhbGtfYmluYXJ5PU5vbmUsIGNlcnR1dGlsX2JpbmFyeT1Ob25lLAotICAg
ICAgICAgICAgICAgICBjYV9jZXJ0aWZpY2F0ZV9wYXRoPU5vbmUsIGUxMHM9RmFsc2UsIHN0YWNr
Zml4X2Rpcj1Ob25lLAorICAgICAgICAgICAgICAgICBjYV9jZXJ0aWZpY2F0ZV9wYXRoPU5vbmUs
IGUxMHM9RmFsc2UsIGVuYWJsZV93ZWJyZW5kZXI9RmFsc2UsIHN0YWNrZml4X2Rpcj1Ob25lLAog
ICAgICAgICAgICAgICAgICBiaW5hcnlfYXJncz1Ob25lLCB0aW1lb3V0X211bHRpcGxpZXI9Tm9u
ZSwgbGVha19jaGVjaz1GYWxzZSwgYXNhbj1GYWxzZSwKLSAgICAgICAgICAgICAgICAgc3R5bG9f
dGhyZWFkcz0xLCBjaGFvc19tb2RlX2ZsYWdzPU5vbmUsIGNvbmZpZz1Ob25lKToKKyAgICAgICAg
ICAgICAgICAgc3R5bG9fdGhyZWFkcz0xLCBjaGFvc19tb2RlX2ZsYWdzPU5vbmUsIGNvbmZpZz1O
b25lLCBicm93c2VyX2NoYW5uZWw9Im5pZ2h0bHkiLCBoZWFkbGVzcz1Ob25lLCAqKmt3YXJncyk6
CiAgICAgICAgIEJyb3dzZXIuX19pbml0X18oc2VsZiwgbG9nZ2VyKQogICAgICAgICBzZWxmLmJp
bmFyeSA9IGJpbmFyeQogICAgICAgICBzZWxmLnByZWZzX3Jvb3QgPSBwcmVmc19yb290CkBAIC0x
NzAsNiArMjI0LDcgQEAgY2xhc3MgRmlyZWZveEJyb3dzZXIoQnJvd3Nlcik6CiAgICAgICAgIHNl
bGYuY2FfY2VydGlmaWNhdGVfcGF0aCA9IGNhX2NlcnRpZmljYXRlX3BhdGgKICAgICAgICAgc2Vs
Zi5jZXJ0dXRpbF9iaW5hcnkgPSBjZXJ0dXRpbF9iaW5hcnkKICAgICAgICAgc2VsZi5lMTBzID0g
ZTEwcworICAgICAgICBzZWxmLmVuYWJsZV93ZWJyZW5kZXIgPSBlbmFibGVfd2VicmVuZGVyCiAg
ICAgICAgIHNlbGYuYmluYXJ5X2FyZ3MgPSBiaW5hcnlfYXJncwogICAgICAgICBzZWxmLmNvbmZp
ZyA9IGNvbmZpZwogICAgICAgICBpZiBzdGFja2ZpeF9kaXI6CkBAIC0xODMsNTAgKzIzOCw3MCBA
QCBjbGFzcyBGaXJlZm94QnJvd3NlcihCcm93c2VyKToKIAogICAgICAgICBzZWxmLmFzYW4gPSBh
c2FuCiAgICAgICAgIHNlbGYubHNhbl9hbGxvd2VkID0gTm9uZQorICAgICAgICBzZWxmLmxzYW5f
bWF4X3N0YWNrX2RlcHRoID0gTm9uZQorICAgICAgICBzZWxmLm1vemxlYWtfYWxsb3dlZCA9IE5v
bmUKKyAgICAgICAgc2VsZi5tb3psZWFrX3RocmVzaG9sZHMgPSBOb25lCiAgICAgICAgIHNlbGYu
bGVha19jaGVjayA9IGxlYWtfY2hlY2sKICAgICAgICAgc2VsZi5sZWFrX3JlcG9ydF9maWxlID0g
Tm9uZQogICAgICAgICBzZWxmLmxzYW5faGFuZGxlciA9IE5vbmUKICAgICAgICAgc2VsZi5zdHls
b190aHJlYWRzID0gc3R5bG9fdGhyZWFkcwogICAgICAgICBzZWxmLmNoYW9zX21vZGVfZmxhZ3Mg
PSBjaGFvc19tb2RlX2ZsYWdzCisgICAgICAgIHNlbGYuYnJvd3Nlcl9jaGFubmVsID0gYnJvd3Nl
cl9jaGFubmVsCisgICAgICAgIHNlbGYuaGVhZGxlc3MgPSBoZWFkbGVzcwogCiAgICAgZGVmIHNl
dHRpbmdzKHNlbGYsIHRlc3QpOgotICAgICAgICBzZWxmLmxzYW5fYWxsb3dlZCA9IHRlc3QubHNh
bl9hbGxvd2VkCiAgICAgICAgIHJldHVybiB7ImNoZWNrX2xlYWtzIjogc2VsZi5sZWFrX2NoZWNr
IGFuZCBub3QgdGVzdC5sZWFrcywKLSAgICAgICAgICAgICAgICAibHNhbl9hbGxvd2VkIjogdGVz
dC5sc2FuX2FsbG93ZWR9CisgICAgICAgICAgICAgICAgImxzYW5fYWxsb3dlZCI6IHRlc3QubHNh
bl9hbGxvd2VkLAorICAgICAgICAgICAgICAgICJsc2FuX21heF9zdGFja19kZXB0aCI6IHRlc3Qu
bHNhbl9tYXhfc3RhY2tfZGVwdGgsCisgICAgICAgICAgICAgICAgIm1vemxlYWtfYWxsb3dlZCI6
IHNlbGYubGVha19jaGVjayBhbmQgdGVzdC5tb3psZWFrX2FsbG93ZWQsCisgICAgICAgICAgICAg
ICAgIm1vemxlYWtfdGhyZXNob2xkcyI6IHNlbGYubGVha19jaGVjayBhbmQgdGVzdC5tb3psZWFr
X3RocmVzaG9sZH0KIAogICAgIGRlZiBzdGFydChzZWxmLCBncm91cF9tZXRhZGF0YT1Ob25lLCAq
Kmt3YXJncyk6CiAgICAgICAgIGlmIGdyb3VwX21ldGFkYXRhIGlzIE5vbmU6CiAgICAgICAgICAg
ICBncm91cF9tZXRhZGF0YSA9IHt9CiAKKyAgICAgICAgc2VsZi5ncm91cF9tZXRhZGF0YSA9IGdy
b3VwX21ldGFkYXRhCisgICAgICAgIHNlbGYubHNhbl9hbGxvd2VkID0ga3dhcmdzLmdldCgibHNh
bl9hbGxvd2VkIikKKyAgICAgICAgc2VsZi5sc2FuX21heF9zdGFja19kZXB0aCA9IGt3YXJncy5n
ZXQoImxzYW5fbWF4X3N0YWNrX2RlcHRoIikKKyAgICAgICAgc2VsZi5tb3psZWFrX2FsbG93ZWQg
PSBrd2FyZ3MuZ2V0KCJtb3psZWFrX2FsbG93ZWQiKQorICAgICAgICBzZWxmLm1vemxlYWtfdGhy
ZXNob2xkcyA9IGt3YXJncy5nZXQoIm1vemxlYWtfdGhyZXNob2xkcyIpCisKICAgICAgICAgaWYg
c2VsZi5tYXJpb25ldHRlX3BvcnQgaXMgTm9uZToKLSAgICAgICAgICAgIHNlbGYubWFyaW9uZXR0
ZV9wb3J0ID0gZ2V0X2ZyZWVfcG9ydCgyODI4LCBleGNsdWRlPXNlbGYudXNlZF9wb3J0cykKLSAg
ICAgICAgICAgIHNlbGYudXNlZF9wb3J0cy5hZGQoc2VsZi5tYXJpb25ldHRlX3BvcnQpCisgICAg
ICAgICAgICBzZWxmLm1hcmlvbmV0dGVfcG9ydCA9IGdldF9mcmVlX3BvcnQoKQogCiAgICAgICAg
IGlmIHNlbGYuYXNhbjoKLSAgICAgICAgICAgIHByaW50ICJTZXR0aW5nIHVwIExTQU4iCiAgICAg
ICAgICAgICBzZWxmLmxzYW5faGFuZGxlciA9IG1vemxlYWsuTFNBTkxlYWtzKHNlbGYubG9nZ2Vy
LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzY29w
ZT1ncm91cF9tZXRhZGF0YS5nZXQoInNjb3BlIiwgIi8iKSwKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWxsb3dlZD1zZWxmLmxzYW5fYWxsb3dlZCkK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWxsb3dl
ZD1zZWxmLmxzYW5fYWxsb3dlZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgbWF4TnVtUmVjb3JkZWRGcmFtZXM9c2VsZi5sc2FuX21heF9zdGFja19k
ZXB0aCkKIAogICAgICAgICBlbnYgPSB0ZXN0X2Vudmlyb25tZW50KHhyZVBhdGg9b3MucGF0aC5k
aXJuYW1lKHNlbGYuYmluYXJ5KSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWJ1
Z2dlcj1zZWxmLmRlYnVnX2luZm8gaXMgbm90IE5vbmUsCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgbG9nPXNlbGYubG9nZ2VyLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGxzYW5QYXRoPXNlbGYucHJlZnNfcm9vdCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICB1c2VMU2FuPVRydWUsIGxvZz1zZWxmLmxvZ2dlcikKIAogICAgICAgICBlbnZbIlNUWUxPX1RI
UkVBRFMiXSA9IHN0cihzZWxmLnN0eWxvX3RocmVhZHMpCiAgICAgICAgIGlmIHNlbGYuY2hhb3Nf
bW9kZV9mbGFncyBpcyBub3QgTm9uZToKICAgICAgICAgICAgIGVudlsiTU9aX0NIQU9TTU9ERSJd
ID0gc3RyKHNlbGYuY2hhb3NfbW9kZV9mbGFncykKKyAgICAgICAgaWYgc2VsZi5oZWFkbGVzczoK
KyAgICAgICAgICAgIGVudlsiTU9aX0hFQURMRVNTIl0gPSAiMSIKKyAgICAgICAgaWYgc2VsZi5l
bmFibGVfd2VicmVuZGVyOgorICAgICAgICAgICAgZW52WyJNT1pfV0VCUkVOREVSIl0gPSAiMSIK
KyAgICAgICAgICAgIGVudlsiTU9aX0FDQ0VMRVJBVEVEIl0gPSAiMSIKKyAgICAgICAgZWxzZToK
KyAgICAgICAgICAgIGVudlsiTU9aX1dFQlJFTkRFUiJdID0gIjAiCiAKICAgICAgICAgcHJlZmVy
ZW5jZXMgPSBzZWxmLmxvYWRfcHJlZnMoKQogCiAgICAgICAgIHNlbGYucHJvZmlsZSA9IEZpcmVm
b3hQcm9maWxlKHByZWZlcmVuY2VzPXByZWZlcmVuY2VzKQotICAgICAgICBzZWxmLnByb2ZpbGUu
c2V0X3ByZWZlcmVuY2VzKHsibWFyaW9uZXR0ZS5wb3J0Ijogc2VsZi5tYXJpb25ldHRlX3BvcnQs
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJkb20uZGlzYWJsZV9vcGVu
X2R1cmluZ19sb2FkIjogRmFsc2UsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICJuZXR3b3JrLmRucy5sb2NhbERvbWFpbnMiOiAiLCIuam9pbihzZWxmLmNvbmZpZy5kb21h
aW5zX3NldCksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJuZXR3b3Jr
LnByb3h5LnR5cGUiOiAwLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAi
cGxhY2VzLmhpc3RvcnkuZW5hYmxlZCI6IEZhbHNlLAotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAiZG9tLnNlbmRfYWZ0ZXJfcGFpbnRfdG9fY29udGVudCI6IFRydWUsCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJuZXR3b3JrLnByZWxvYWQiOiBU
cnVlfSkKKyAgICAgICAgc2VsZi5wcm9maWxlLnNldF9wcmVmZXJlbmNlcyh7CisgICAgICAgICAg
ICAibWFyaW9uZXR0ZS5wb3J0Ijogc2VsZi5tYXJpb25ldHRlX3BvcnQsCisgICAgICAgICAgICAi
bmV0d29yay5kbnMubG9jYWxEb21haW5zIjogIiwiLmpvaW4oc2VsZi5jb25maWcuZG9tYWluc19z
ZXQpLAorICAgICAgICAgICAgImRvbS5maWxlLmNyZWF0ZUluQ2hpbGQiOiBUcnVlLAorICAgICAg
ICAgICAgIyBUT0RPOiBSZW1vdmUgcHJlZmVyZW5jZXMgb25jZSBGaXJlZm94IDY0IGlzIHN0YWJs
ZSAoQnVnIDkwNTQwNCkKKyAgICAgICAgICAgICJuZXR3b3JrLnByb3h5LnR5cGUiOiAwLAorICAg
ICAgICAgICAgInBsYWNlcy5oaXN0b3J5LmVuYWJsZWQiOiBGYWxzZSwKKyAgICAgICAgICAgICJu
ZXR3b3JrLnByZWxvYWQiOiBUcnVlLAorICAgICAgICB9KQogICAgICAgICBpZiBzZWxmLmUxMHM6
CiAgICAgICAgICAgICBzZWxmLnByb2ZpbGUuc2V0X3ByZWZlcmVuY2VzKHsiYnJvd3Nlci50YWJz
LnJlbW90ZS5hdXRvc3RhcnQiOiBUcnVlfSkKIApAQCAtMjQ5LDkgKzMyNCwxMSBAQCBjbGFzcyBG
aXJlZm94QnJvd3NlcihCcm93c2VyKToKICAgICAgICAgaWYgc2VsZi5jYV9jZXJ0aWZpY2F0ZV9w
YXRoIGlzIG5vdCBOb25lOgogICAgICAgICAgICAgc2VsZi5zZXR1cF9zc2woKQogCisgICAgICAg
IGFyZ3MgPSBzZWxmLmJpbmFyeV9hcmdzWzpdIGlmIHNlbGYuYmluYXJ5X2FyZ3MgZWxzZSBbXQor
ICAgICAgICBhcmdzICs9IFtjbWRfYXJnKCJtYXJpb25ldHRlIiksICJhYm91dDpibGFuayJdCisK
ICAgICAgICAgZGVidWdfYXJncywgY21kID0gYnJvd3Nlcl9jb21tYW5kKHNlbGYuYmluYXJ5LAot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5iaW5hcnlfYXJn
cyBpZiBzZWxmLmJpbmFyeV9hcmdzIGVsc2UgW10gKwotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgW2NtZF9hcmcoIm1hcmlvbmV0dGUiKSwgImFib3V0OmJsYW5rIl0s
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmdzLAogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5kZWJ1Z19pbmZvKQogCiAg
ICAgICAgIHNlbGYucnVubmVyID0gRmlyZWZveFJ1bm5lcihwcm9maWxlPXNlbGYucHJvZmlsZSwK
QEAgLTI3NSw3ICszNTIsMTAgQEAgY2xhc3MgRmlyZWZveEJyb3dzZXIoQnJvd3Nlcik6CiAgICAg
ICAgIGlmIG9zLnBhdGguaXNmaWxlKHByb2ZpbGVzKToKICAgICAgICAgICAgIHdpdGggb3Blbihw
cm9maWxlcywgJ3InKSBhcyBmaDoKICAgICAgICAgICAgICAgICBmb3IgbmFtZSBpbiBqc29uLmxv
YWQoZmgpWyd3ZWItcGxhdGZvcm0tdGVzdHMnXToKLSAgICAgICAgICAgICAgICAgICAgcHJlZl9w
YXRocy5hcHBlbmQob3MucGF0aC5qb2luKHNlbGYucHJlZnNfcm9vdCwgbmFtZSwgJ3VzZXIuanMn
KSkKKyAgICAgICAgICAgICAgICAgICAgaWYgc2VsZi5icm93c2VyX2NoYW5uZWwgaW4gKE5vbmUs
ICduaWdodGx5Jyk6CisgICAgICAgICAgICAgICAgICAgICAgICBwcmVmX3BhdGhzLmFwcGVuZChv
cy5wYXRoLmpvaW4oc2VsZi5wcmVmc19yb290LCBuYW1lLCAndXNlci5qcycpKQorICAgICAgICAg
ICAgICAgICAgICBlbGlmIG5hbWUgIT0gJ3VuaXR0ZXN0LWZlYXR1cmVzJzoKKyAgICAgICAgICAg
ICAgICAgICAgICAgIHByZWZfcGF0aHMuYXBwZW5kKG9zLnBhdGguam9pbihzZWxmLnByZWZzX3Jv
b3QsIG5hbWUsICd1c2VyLmpzJykpCiAgICAgICAgIGVsc2U6CiAgICAgICAgICAgICAjIE9sZCBw
cmVmZXJlbmNlIGZpbGVzIHVzZWQgYmVmb3JlIHRoZSBjcmVhdGlvbiBvZiBwcm9maWxlcy5qc29u
IChyZW1vdmUgd2hlbiBubyBsb25nZXIgc3VwcG9ydGVkKQogICAgICAgICAgICAgbGVnYWN5X3By
ZWZfcGF0aHMgPSAoCkBAIC0zMTcsMjEgKzM5NywxOCBAQCBjbGFzcyBGaXJlZm94QnJvd3NlcihC
cm93c2VyKToKICAgICAgICAgc2VsZi5sb2dnZXIuZGVidWcoInN0b3BwZWQiKQogCiAgICAgZGVm
IHByb2Nlc3NfbGVha3Moc2VsZik6Ci0gICAgICAgIHNlbGYubG9nZ2VyLmRlYnVnKCJQUk9DRVNT
IExFQUtTICVzIiAlIHNlbGYubGVha19yZXBvcnRfZmlsZSkKKyAgICAgICAgc2VsZi5sb2dnZXIu
aW5mbygiUFJPQ0VTUyBMRUFLUyAlcyIgJSBzZWxmLmxlYWtfcmVwb3J0X2ZpbGUpCiAgICAgICAg
IGlmIHNlbGYubHNhbl9oYW5kbGVyOgogICAgICAgICAgICAgc2VsZi5sc2FuX2hhbmRsZXIucHJv
Y2VzcygpCiAgICAgICAgIGlmIHNlbGYubGVha19yZXBvcnRfZmlsZSBpcyBub3QgTm9uZToKICAg
ICAgICAgICAgIG1vemxlYWsucHJvY2Vzc19sZWFrX2xvZygKICAgICAgICAgICAgICAgICBzZWxm
LmxlYWtfcmVwb3J0X2ZpbGUsCi0gICAgICAgICAgICAgICAgbGVha190aHJlc2hvbGRzPXsKLSAg
ICAgICAgICAgICAgICAgICAgImRlZmF1bHQiOiAwLAotICAgICAgICAgICAgICAgICAgICAidGFi
IjogMTAwMDAsICAjIFNlZSBkZXBlbmRlbmNpZXMgb2YgYnVnIDEwNTEyMzAuCi0gICAgICAgICAg
ICAgICAgICAgICMgR01QIHJhcmVseSBnZXRzIGEgbG9nLCBidXQgd2hlbiBpdCBkb2VzLCBpdCBs
ZWFrcyBhIGxpdHRsZS4KLSAgICAgICAgICAgICAgICAgICAgImdlY2tvbWVkaWFwbHVnaW4iOiAy
MDAwMCwKLSAgICAgICAgICAgICAgICB9LAotICAgICAgICAgICAgICAgIGlnbm9yZV9taXNzaW5n
X2xlYWtzPVsiZ2Vja29tZWRpYXBsdWdpbiJdLAorICAgICAgICAgICAgICAgIGxlYWtfdGhyZXNo
b2xkcz1zZWxmLm1vemxlYWtfdGhyZXNob2xkcywKKyAgICAgICAgICAgICAgICBpZ25vcmVfbWlz
c2luZ19sZWFrcz1bImdtcGx1Z2luIl0sCiAgICAgICAgICAgICAgICAgbG9nPXNlbGYubG9nZ2Vy
LAotICAgICAgICAgICAgICAgIHN0YWNrX2ZpeGVyPXNlbGYuc3RhY2tfZml4ZXIKKyAgICAgICAg
ICAgICAgICBzdGFja19maXhlcj1zZWxmLnN0YWNrX2ZpeGVyLAorICAgICAgICAgICAgICAgIHNj
b3BlPXNlbGYuZ3JvdXBfbWV0YWRhdGEuZ2V0KCJzY29wZSIpLAorICAgICAgICAgICAgICAgIGFs
bG93ZWQ9c2VsZi5tb3psZWFrX2FsbG93ZWQKICAgICAgICAgICAgICkKIAogICAgIGRlZiBwaWQo
c2VsZik6CkBAIC0zNzAsMjMgKzQ0NywxNSBAQCBjbGFzcyBGaXJlZm94QnJvd3NlcihCcm93c2Vy
KToKICAgICAgICAgYXNzZXJ0IHNlbGYubWFyaW9uZXR0ZV9wb3J0IGlzIG5vdCBOb25lCiAgICAg
ICAgIHJldHVybiBFeGVjdXRvckJyb3dzZXIsIHsibWFyaW9uZXR0ZV9wb3J0Ijogc2VsZi5tYXJp
b25ldHRlX3BvcnR9CiAKLSAgICBkZWYgY2hlY2tfZm9yX2NyYXNoZXMoc2VsZik6Ci0gICAgICAg
IGR1bXBfZGlyID0gb3MucGF0aC5qb2luKHNlbGYucHJvZmlsZS5wcm9maWxlLCAibWluaWR1bXBz
IikKLQotICAgICAgICByZXR1cm4gYm9vbChtb3pjcmFzaC5jaGVja19mb3JfY3Jhc2hlcyhkdW1w
X2RpciwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3lt
Ym9sc19wYXRoPXNlbGYuc3ltYm9sc19wYXRoLAotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBzdGFja3dhbGtfYmluYXJ5PXNlbGYuc3RhY2t3YWxrX2JpbmFy
eSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcXVpZXQ9
VHJ1ZSkpCi0KLSAgICBkZWYgbG9nX2NyYXNoKHNlbGYsIHByb2Nlc3MsIHRlc3QpOgorICAgIGRl
ZiBjaGVja19jcmFzaChzZWxmLCBwcm9jZXNzLCB0ZXN0KToKICAgICAgICAgZHVtcF9kaXIgPSBv
cy5wYXRoLmpvaW4oc2VsZi5wcm9maWxlLnByb2ZpbGUsICJtaW5pZHVtcHMiKQogCi0gICAgICAg
IG1vemNyYXNoLmxvZ19jcmFzaGVzKHNlbGYubG9nZ2VyLAotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBkdW1wX2RpciwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3ltYm9sc19w
YXRoPXNlbGYuc3ltYm9sc19wYXRoLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFj
a3dhbGtfYmluYXJ5PXNlbGYuc3RhY2t3YWxrX2JpbmFyeSwKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgcHJvY2Vzcz1wcm9jZXNzLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0
ZXN0PXRlc3QpCisgICAgICAgIHJldHVybiBib29sKG1vemNyYXNoLmxvZ19jcmFzaGVzKHNlbGYu
bG9nZ2VyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkdW1wX2Rp
ciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3ltYm9sc19wYXRo
PXNlbGYuc3ltYm9sc19wYXRoLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBzdGFja3dhbGtfYmluYXJ5PXNlbGYuc3RhY2t3YWxrX2JpbmFyeSwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvY2Vzcz1wcm9jZXNzLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0PXRlc3QpKQogCiAgICAgZGVmIHNl
dHVwX3NzbChzZWxmKToKICAgICAgICAgIiIiQ3JlYXRlIGEgY2VydGlmaWNhdGUgZGF0YWJhc2Ug
dG8gdXNlIGluIHRoZSB0ZXN0IHByb2ZpbGUuIFRoaXMgaXMgY29uZmlndXJlZApkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRy
dW5uZXIvd3B0cnVubmVyL2Jyb3dzZXJzL2ZpcmVmb3hfYW5kcm9pZC5weSBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5l
ci9icm93c2Vycy9maXJlZm94X2FuZHJvaWQucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzNiNWQ1MWU1NGU4MmFk
YjZjZGJlNDYxMjI2M2JjMzA4ODNkZDEwOAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5l
ci9icm93c2Vycy9maXJlZm94X2FuZHJvaWQucHkKQEAgLTAsMCArMSwyMDIgQEAKK2ltcG9ydCBv
cworCitpbXBvcnQgbW96bmV0d29yaworZnJvbSBtb3pwcm9maWxlIGltcG9ydCBGaXJlZm94UHJv
ZmlsZQorZnJvbSBtb3pydW5uZXIgaW1wb3J0IEZlbm5lY0VtdWxhdG9yUnVubmVyCisKK2Zyb20g
LmJhc2UgaW1wb3J0IChnZXRfZnJlZV9wb3J0LAorICAgICAgICAgICAgICAgICAgIGNtZF9hcmcs
CisgICAgICAgICAgICAgICAgICAgYnJvd3Nlcl9jb21tYW5kKQorZnJvbSAuLmV4ZWN1dG9ycy5l
eGVjdXRvcm1hcmlvbmV0dGUgaW1wb3J0IChNYXJpb25ldHRlVGVzdGhhcm5lc3NFeGVjdXRvciwg
ICMgbm9xYTogRjQwMQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBNYXJpb25ldHRlUmVmVGVzdEV4ZWN1dG9yKSAgIyBub3FhOiBGNDAxCitmcm9tIC5maXJlZm94
IGltcG9ydCAoZ2V0X3RpbWVvdXRfbXVsdGlwbGllciwgICMgbm9xYTogRjQwMQorICAgICAgICAg
ICAgICAgICAgICAgIHJ1bl9pbmZvX2V4dHJhcyBhcyBmeF9ydW5faW5mb19leHRyYXMsCisgICAg
ICAgICAgICAgICAgICAgICAgdXBkYXRlX3Byb3BlcnRpZXMsICAjIG5vcWE6IEY0MDEKKyAgICAg
ICAgICAgICAgICAgICAgICBleGVjdXRvcl9rd2FyZ3MsICAjIG5vcWE6IEY0MDEKKyAgICAgICAg
ICAgICAgICAgICAgICBGaXJlZm94QnJvd3NlcikgICMgbm9xYTogRjQwMQorCisKK19fd3B0cnVu
bmVyX18gPSB7InByb2R1Y3QiOiAiZmlyZWZveF9hbmRyb2lkIiwKKyAgICAgICAgICAgICAgICAg
ImNoZWNrX2FyZ3MiOiAiY2hlY2tfYXJncyIsCisgICAgICAgICAgICAgICAgICJicm93c2VyIjog
IkZpcmVmb3hBbmRyb2lkQnJvd3NlciIsCisgICAgICAgICAgICAgICAgICJleGVjdXRvciI6IHsi
dGVzdGhhcm5lc3MiOiAiTWFyaW9uZXR0ZVRlc3RoYXJuZXNzRXhlY3V0b3IiLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgInJlZnRlc3QiOiAiTWFyaW9uZXR0ZVJlZlRlc3RFeGVjdXRv
ciJ9LAorICAgICAgICAgICAgICAgICAiYnJvd3Nlcl9rd2FyZ3MiOiAiYnJvd3Nlcl9rd2FyZ3Mi
LAorICAgICAgICAgICAgICAgICAiZXhlY3V0b3Jfa3dhcmdzIjogImV4ZWN1dG9yX2t3YXJncyIs
CisgICAgICAgICAgICAgICAgICJlbnZfZXh0cmFzIjogImVudl9leHRyYXMiLAorICAgICAgICAg
ICAgICAgICAiZW52X29wdGlvbnMiOiAiZW52X29wdGlvbnMiLAorICAgICAgICAgICAgICAgICAi
cnVuX2luZm9fZXh0cmFzIjogInJ1bl9pbmZvX2V4dHJhcyIsCisgICAgICAgICAgICAgICAgICJ1
cGRhdGVfcHJvcGVydGllcyI6ICJ1cGRhdGVfcHJvcGVydGllcyIsCisgICAgICAgICAgICAgICAg
ICJ0aW1lb3V0X211bHRpcGxpZXIiOiAiZ2V0X3RpbWVvdXRfbXVsdGlwbGllciJ9CisKKworZGVm
IGNoZWNrX2FyZ3MoKiprd2FyZ3MpOgorICAgIHBhc3MKKworCitkZWYgYnJvd3Nlcl9rd2FyZ3Mo
dGVzdF90eXBlLCBydW5faW5mb19kYXRhLCBjb25maWcsICoqa3dhcmdzKToKKyAgICByZXR1cm4g
eyJwYWNrYWdlX25hbWUiOiBrd2FyZ3NbInBhY2thZ2VfbmFtZSJdLAorICAgICAgICAgICAgImRl
dmljZV9zZXJpYWwiOiBrd2FyZ3NbImRldmljZV9zZXJpYWwiXSwKKyAgICAgICAgICAgICJwcmVm
c19yb290Ijoga3dhcmdzWyJwcmVmc19yb290Il0sCisgICAgICAgICAgICAiZXh0cmFfcHJlZnMi
OiBrd2FyZ3NbImV4dHJhX3ByZWZzIl0sCisgICAgICAgICAgICAidGVzdF90eXBlIjogdGVzdF90
eXBlLAorICAgICAgICAgICAgImRlYnVnX2luZm8iOiBrd2FyZ3NbImRlYnVnX2luZm8iXSwKKyAg
ICAgICAgICAgICJzeW1ib2xzX3BhdGgiOiBrd2FyZ3NbInN5bWJvbHNfcGF0aCJdLAorICAgICAg
ICAgICAgInN0YWNrd2Fsa19iaW5hcnkiOiBrd2FyZ3NbInN0YWNrd2Fsa19iaW5hcnkiXSwKKyAg
ICAgICAgICAgICJjZXJ0dXRpbF9iaW5hcnkiOiBrd2FyZ3NbImNlcnR1dGlsX2JpbmFyeSJdLAor
ICAgICAgICAgICAgImNhX2NlcnRpZmljYXRlX3BhdGgiOiBjb25maWcuc3NsX2NvbmZpZ1siY2Ff
Y2VydF9wYXRoIl0sCisgICAgICAgICAgICAiZW5hYmxlX3dlYnJlbmRlciI6IGt3YXJnc1siZW5h
YmxlX3dlYnJlbmRlciJdLAorICAgICAgICAgICAgInN0YWNrZml4X2RpciI6IGt3YXJnc1sic3Rh
Y2tmaXhfZGlyIl0sCisgICAgICAgICAgICAiYmluYXJ5X2FyZ3MiOiBrd2FyZ3NbImJpbmFyeV9h
cmdzIl0sCisgICAgICAgICAgICAidGltZW91dF9tdWx0aXBsaWVyIjogZ2V0X3RpbWVvdXRfbXVs
dGlwbGllcih0ZXN0X3R5cGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBydW5faW5mb19kYXRhLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiprd2FyZ3MpLAorICAgICAgICAg
ICAgIyBkZXNrdG9wIG9ubHkKKyAgICAgICAgICAgICJsZWFrX2NoZWNrIjogRmFsc2UsCisgICAg
ICAgICAgICAic3R5bG9fdGhyZWFkcyI6IGt3YXJnc1sic3R5bG9fdGhyZWFkcyJdLAorICAgICAg
ICAgICAgImNoYW9zX21vZGVfZmxhZ3MiOiBrd2FyZ3NbImNoYW9zX21vZGVfZmxhZ3MiXSwKKyAg
ICAgICAgICAgICJjb25maWciOiBjb25maWcsCisgICAgICAgICAgICAiaW5zdGFsbF9mb250cyI6
IGt3YXJnc1siaW5zdGFsbF9mb250cyJdLAorICAgICAgICAgICAgInRlc3RzX3Jvb3QiOiBjb25m
aWcuZG9jX3Jvb3R9CisKKworZGVmIGVudl9leHRyYXMoKiprd2FyZ3MpOgorICAgIHJldHVybiBb
XQorCisKK2RlZiBydW5faW5mb19leHRyYXMoKiprd2FyZ3MpOgorICAgIHJ2ID0gZnhfcnVuX2lu
Zm9fZXh0cmFzKCoqa3dhcmdzKQorICAgIHBhY2thZ2UgPSBrd2FyZ3NbInBhY2thZ2VfbmFtZSJd
CisgICAgcnYudXBkYXRlKHsiZTEwcyI6IFRydWUgaWYgcGFja2FnZSBpcyBub3QgTm9uZSBhbmQg
ImdlY2tvdmlldyIgaW4gcGFja2FnZSBlbHNlIEZhbHNlLAorICAgICAgICAgICAgICAgImhlYWRs
ZXNzIjogRmFsc2V9KQorICAgIHJldHVybiBydgorCisKK2RlZiBlbnZfb3B0aW9ucygpOgorICAg
ICMgVGhlIHNlcnZlciBob3N0IGlzIHNldCB0byBwdWJsaWMgbG9jYWxob3N0IElQIHNvIHRoYXQg
cmVzb3VyY2VzIGNhbiBiZSBhY2Nlc3NlZAorICAgICMgZnJvbSBBbmRyb2lkIGVtdWxhdG9yCisg
ICAgcmV0dXJuIHsic2VydmVyX2hvc3QiOiBtb3puZXR3b3JrLmdldF9pcCgpLAorICAgICAgICAg
ICAgImJpbmRfYWRkcmVzcyI6IEZhbHNlLAorICAgICAgICAgICAgInN1cHBvcnRzX2RlYnVnZ2Vy
IjogVHJ1ZX0KKworCitjbGFzcyBGaXJlZm94QW5kcm9pZEJyb3dzZXIoRmlyZWZveEJyb3dzZXIp
OgorICAgIGluaXRfdGltZW91dCA9IDMwMAorICAgIHNodXRkb3duX3RpbWVvdXQgPSA2MAorCisg
ICAgZGVmIF9faW5pdF9fKHNlbGYsIGxvZ2dlciwgcHJlZnNfcm9vdCwgdGVzdF90eXBlLCBwYWNr
YWdlX25hbWU9Im9yZy5tb3ppbGxhLmdlY2tvdmlldy50ZXN0IiwKKyAgICAgICAgICAgICAgICAg
ZGV2aWNlX3NlcmlhbD0iZW11bGF0b3ItNTQ0NCIsICoqa3dhcmdzKToKKyAgICAgICAgRmlyZWZv
eEJyb3dzZXIuX19pbml0X18oc2VsZiwgbG9nZ2VyLCBOb25lLCBwcmVmc19yb290LCB0ZXN0X3R5
cGUsICoqa3dhcmdzKQorICAgICAgICBzZWxmLnBhY2thZ2VfbmFtZSA9IHBhY2thZ2VfbmFtZQor
ICAgICAgICBzZWxmLmRldmljZV9zZXJpYWwgPSBkZXZpY2Vfc2VyaWFsCisgICAgICAgIHNlbGYu
dGVzdHNfcm9vdCA9IGt3YXJnc1sidGVzdHNfcm9vdCJdCisgICAgICAgIHNlbGYuaW5zdGFsbF9m
b250cyA9IGt3YXJnc1siaW5zdGFsbF9mb250cyJdCisgICAgICAgIHNlbGYuc3RhY2t3YWxrX2Jp
bmFyeSA9IGt3YXJnc1sic3RhY2t3YWxrX2JpbmFyeSJdCisKKyAgICBkZWYgc3RhcnQoc2VsZiwg
Kiprd2FyZ3MpOgorICAgICAgICBpZiBzZWxmLm1hcmlvbmV0dGVfcG9ydCBpcyBOb25lOgorICAg
ICAgICAgICAgc2VsZi5tYXJpb25ldHRlX3BvcnQgPSBnZXRfZnJlZV9wb3J0KCkKKworICAgICAg
ICBlbnYgPSB7fQorICAgICAgICBlbnZbIk1PWl9DUkFTSFJFUE9SVEVSIl0gPSAiMSIKKyAgICAg
ICAgZW52WyJNT1pfQ1JBU0hSRVBPUlRFUl9TSFVURE9XTiJdID0gIjEiCisgICAgICAgIGVudlsi
TU9aX0RJU0FCTEVfTk9OTE9DQUxfQ09OTkVDVElPTlMiXSA9ICIxIgorICAgICAgICBlbnZbIlNU
WUxPX1RIUkVBRFMiXSA9IHN0cihzZWxmLnN0eWxvX3RocmVhZHMpCisgICAgICAgIGlmIHNlbGYu
Y2hhb3NfbW9kZV9mbGFncyBpcyBub3QgTm9uZToKKyAgICAgICAgICAgIGVudlsiTU9aX0NIQU9T
TU9ERSJdID0gc3RyKHNlbGYuY2hhb3NfbW9kZV9mbGFncykKKyAgICAgICAgaWYgc2VsZi5lbmFi
bGVfd2VicmVuZGVyOgorICAgICAgICAgICAgZW52WyJNT1pfV0VCUkVOREVSIl0gPSAiMSIKKyAg
ICAgICAgZWxzZToKKyAgICAgICAgICAgIGVudlsiTU9aX1dFQlJFTkRFUiJdID0gIjAiCisKKyAg
ICAgICAgcHJlZmVyZW5jZXMgPSBzZWxmLmxvYWRfcHJlZnMoKQorCisgICAgICAgIHNlbGYucHJv
ZmlsZSA9IEZpcmVmb3hQcm9maWxlKHByZWZlcmVuY2VzPXByZWZlcmVuY2VzKQorICAgICAgICBz
ZWxmLnByb2ZpbGUuc2V0X3ByZWZlcmVuY2VzKHsKKyAgICAgICAgICAgICJtYXJpb25ldHRlLnBv
cnQiOiBzZWxmLm1hcmlvbmV0dGVfcG9ydCwKKyAgICAgICAgICAgICJuZXR3b3JrLmRucy5sb2Nh
bERvbWFpbnMiOiAiLCIuam9pbihzZWxmLmNvbmZpZy5kb21haW5zX3NldCksCisgICAgICAgICAg
ICAiZG9tLmRpc2FibGVfb3Blbl9kdXJpbmdfbG9hZCI6IEZhbHNlLAorICAgICAgICAgICAgInBs
YWNlcy5oaXN0b3J5LmVuYWJsZWQiOiBGYWxzZSwKKyAgICAgICAgICAgICJkb20uc2VuZF9hZnRl
cl9wYWludF90b19jb250ZW50IjogVHJ1ZSwKKyAgICAgICAgICAgICJuZXR3b3JrLnByZWxvYWQi
OiBUcnVlLAorICAgICAgICB9KQorCisgICAgICAgIGlmIHNlbGYudGVzdF90eXBlID09ICJyZWZ0
ZXN0IjoKKyAgICAgICAgICAgIHNlbGYubG9nZ2VyLmluZm8oIlNldHRpbmcgYW5kcm9pZCByZWZ0
ZXN0IHByZWZlcmVuY2VzIikKKyAgICAgICAgICAgIHNlbGYucHJvZmlsZS5zZXRfcHJlZmVyZW5j
ZXMoeworICAgICAgICAgICAgICAgICJicm93c2VyLnZpZXdwb3J0LmRlc2t0b3BXaWR0aCI6IDgw
MCwKKyAgICAgICAgICAgICAgICAjIERpc2FibGUgaGlnaCBEUEkKKyAgICAgICAgICAgICAgICAi
bGF5b3V0LmNzcy5kZXZQaXhlbHNQZXJQeCI6ICIxLjAiLAorICAgICAgICAgICAgICAgICMgRW5z
dXJlIHRoYXQgdGhlIGZ1bGwgYnJvd3NlciBlbGVtZW50CisgICAgICAgICAgICAgICAgIyBhcHBl
YXJzIGluIHRoZSBzY3JlZW5zaG90CisgICAgICAgICAgICAgICAgImFwei5hbGxvd196b29taW5n
IjogRmFsc2UsCisgICAgICAgICAgICAgICAgImFuZHJvaWQud2lkZ2V0X3BhaW50c19iYWNrZ3Jv
dW5kIjogRmFsc2UsCisgICAgICAgICAgICAgICAgIyBFbnN1cmUgdGhhdCBzY3JvbGxiYXJzIGFy
ZSBhbHdheXMgcGFpbnRlZAorICAgICAgICAgICAgICAgICJsYXlvdXQudGVzdGluZy5vdmVybGF5
LXNjcm9sbGJhcnMuYWx3YXlzLXZpc2libGUiOiBUcnVlLAorICAgICAgICAgICAgfSkKKworICAg
ICAgICBpZiBzZWxmLmluc3RhbGxfZm9udHM6CisgICAgICAgICAgICBzZWxmLmxvZ2dlci5kZWJ1
ZygiQ29weWluZyBBaGVtIGZvbnQgdG8gcHJvZmlsZSIpCisgICAgICAgICAgICBmb250X2RpciA9
IG9zLnBhdGguam9pbihzZWxmLnByb2ZpbGUucHJvZmlsZSwgImZvbnRzIikKKyAgICAgICAgICAg
IGlmIG5vdCBvcy5wYXRoLmV4aXN0cyhmb250X2Rpcik6CisgICAgICAgICAgICAgICAgb3MubWFr
ZWRpcnMoZm9udF9kaXIpCisgICAgICAgICAgICB3aXRoIG9wZW4ob3MucGF0aC5qb2luKHNlbGYu
dGVzdHNfcm9vdCwgImZvbnRzIiwgIkFoZW0udHRmIiksICJyYiIpIGFzIHNyYzoKKyAgICAgICAg
ICAgICAgICB3aXRoIG9wZW4ob3MucGF0aC5qb2luKGZvbnRfZGlyLCAiQWhlbS50dGYiKSwgIndi
IikgYXMgZGVzdDoKKyAgICAgICAgICAgICAgICAgICAgZGVzdC53cml0ZShzcmMucmVhZCgpKQor
CisgICAgICAgIHNlbGYubGVha19yZXBvcnRfZmlsZSA9IE5vbmUKKworICAgICAgICBpZiBzZWxm
LmNhX2NlcnRpZmljYXRlX3BhdGggaXMgbm90IE5vbmU6CisgICAgICAgICAgICBzZWxmLnNldHVw
X3NzbCgpCisKKyAgICAgICAgZGVidWdfYXJncywgY21kID0gYnJvd3Nlcl9jb21tYW5kKHNlbGYu
cGFja2FnZV9uYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
c2VsZi5iaW5hcnlfYXJncyBpZiBzZWxmLmJpbmFyeV9hcmdzIGVsc2UgW10gKworICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NtZF9hcmcoIm1hcmlvbmV0dGUiKSwg
ImFib3V0OmJsYW5rIl0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBzZWxmLmRlYnVnX2luZm8pCisKKyAgICAgICAgc2VsZi5ydW5uZXIgPSBGZW5uZWNFbXVsYXRv
clJ1bm5lcihhcHA9c2VsZi5wYWNrYWdlX25hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgcHJvZmlsZT1zZWxmLnByb2ZpbGUsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgY21kYXJncz1jbWRbMTpdLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVudj1lbnYsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgc3ltYm9sc19wYXRoPXNlbGYuc3ltYm9sc19wYXRo
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlcmlhbD1zZWxm
LmRldmljZV9zZXJpYWwsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIyBUT0RPIC0gY2hvb3NlIGFwcHJvcHJpYXRlIGxvZyBkaXIKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBsb2dkaXI9b3MuZ2V0Y3dkKCkpCisKKyAgICAgICAg
c2VsZi5sb2dnZXIuZGVidWcoIlN0YXJ0aW5nICVzIiAlIHNlbGYucGFja2FnZV9uYW1lKQorICAg
ICAgICAjIGNvbm5lY3QgdG8gYSBydW5uaW5nIGVtdWxhdG9yCisgICAgICAgIHNlbGYucnVubmVy
LmRldmljZS5jb25uZWN0KCkKKworICAgICAgICBzZWxmLnJ1bm5lci5zdG9wKCkKKyAgICAgICAg
c2VsZi5ydW5uZXIuc3RhcnQoZGVidWdfYXJncz1kZWJ1Z19hcmdzLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICBpbnRlcmFjdGl2ZT1zZWxmLmRlYnVnX2luZm8gYW5kIHNlbGYuZGVidWdfaW5m
by5pbnRlcmFjdGl2ZSkKKworICAgICAgICBzZWxmLnJ1bm5lci5kZXZpY2UuZGV2aWNlLmZvcndh
cmQoCisgICAgICAgICAgICBsb2NhbD0idGNwOnt9Ii5mb3JtYXQoc2VsZi5tYXJpb25ldHRlX3Bv
cnQpLAorICAgICAgICAgICAgcmVtb3RlPSJ0Y3A6e30iLmZvcm1hdChzZWxmLm1hcmlvbmV0dGVf
cG9ydCkpCisKKyAgICAgICAgZm9yIHBvcnRzIGluIHNlbGYuY29uZmlnLnBvcnRzLnZhbHVlcygp
OgorICAgICAgICAgICAgZm9yIHBvcnQgaW4gcG9ydHM6CisgICAgICAgICAgICAgICAgc2VsZi5y
dW5uZXIuZGV2aWNlLmRldmljZS5yZXZlcnNlKAorICAgICAgICAgICAgICAgICAgICBsb2NhbD0i
dGNwOnt9Ii5mb3JtYXQocG9ydCksCisgICAgICAgICAgICAgICAgICAgIHJlbW90ZT0idGNwOnt9
Ii5mb3JtYXQocG9ydCkpCisKKyAgICAgICAgc2VsZi5sb2dnZXIuZGVidWcoIiVzIFN0YXJ0ZWQi
ICUgc2VsZi5wYWNrYWdlX25hbWUpCisKKyAgICBkZWYgc3RvcChzZWxmLCBmb3JjZT1GYWxzZSk6
CisgICAgICAgIGlmIHNlbGYucnVubmVyIGlzIG5vdCBOb25lOgorICAgICAgICAgICAgaWYgc2Vs
Zi5ydW5uZXIuZGV2aWNlLmNvbm5lY3RlZDoKKyAgICAgICAgICAgICAgICB0cnk6CisgICAgICAg
ICAgICAgICAgICAgIHNlbGYucnVubmVyLmRldmljZS5kZXZpY2UucmVtb3ZlX2ZvcndhcmRzKCkK
KyAgICAgICAgICAgICAgICAgICAgc2VsZi5ydW5uZXIuZGV2aWNlLmRldmljZS5yZW1vdmVfcmV2
ZXJzZXMoKQorICAgICAgICAgICAgICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZToKKyAgICAgICAg
ICAgICAgICAgICAgc2VsZi5sb2dnZXIud2FybmluZygiRmFpbGVkIHRvIHJlbW92ZSBmb3J3YXJk
ZWQgb3IgcmV2ZXJzZWQgcG9ydHM6ICVzIiAlIGUpCisgICAgICAgICAgICAjIFdlIGFzc3VtZSB0
aGF0IHN0b3BwaW5nIHRoZSBydW5uZXIgcHJvbXB0cyB0aGUKKyAgICAgICAgICAgICMgYnJvd3Nl
ciB0byBzaHV0IGRvd24uCisgICAgICAgICAgICBzZWxmLnJ1bm5lci5zdG9wKCkKKyAgICAgICAg
c2VsZi5sb2dnZXIuZGVidWcoInN0b3BwZWQiKQorCisgICAgZGVmIGNoZWNrX2NyYXNoKHNlbGYs
IHByb2Nlc3MsIHRlc3QpOgorICAgICAgICBpZiBub3Qgb3MuZW52aXJvbi5nZXQoIk1JTklEVU1Q
X1NUQUNLV0FMSyIsICIiKSBhbmQgc2VsZi5zdGFja3dhbGtfYmluYXJ5OgorICAgICAgICAgICAg
b3MuZW52aXJvblsiTUlOSURVTVBfU1RBQ0tXQUxLIl0gPSBzZWxmLnN0YWNrd2Fsa19iaW5hcnkK
KyAgICAgICAgcmV0dXJuIGJvb2woc2VsZi5ydW5uZXIuY2hlY2tfZm9yX2NyYXNoZXModGVzdF9u
YW1lPXRlc3QpKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2Jyb3dzZXJzL2llLnB5IGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIv
d3B0cnVubmVyL2Jyb3dzZXJzL2llLnB5CmluZGV4IGEwNzMwZjhiYTI5ZWE4YjY1YjU2NzA5YTRm
OTZhYzU4OTQwNzhkOTQuLjYzNWU4MjdjMjk1YjViMTE5MjgyMmY1MWQ5M2E0YjA5ZTM3NjQxOTIg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9icm93c2Vycy9pZS5weQorKysgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5u
ZXIvYnJvd3NlcnMvaWUucHkKQEAgLTEsMjAgKzEsMTggQEAKIGZyb20gLmJhc2UgaW1wb3J0IEJy
b3dzZXIsIEV4ZWN1dG9yQnJvd3NlciwgcmVxdWlyZV9hcmcKK2Zyb20gLmJhc2UgaW1wb3J0IGdl
dF90aW1lb3V0X211bHRpcGxpZXIgICAjIG5vcWE6IEY0MDEKIGZyb20gLi53ZWJkcml2ZXJfc2Vy
dmVyIGltcG9ydCBJbnRlcm5ldEV4cGxvcmVyRHJpdmVyU2VydmVyCiBmcm9tIC4uZXhlY3V0b3Jz
IGltcG9ydCBleGVjdXRvcl9rd2FyZ3MgYXMgYmFzZV9leGVjdXRvcl9rd2FyZ3MKLWZyb20gLi5l
eGVjdXRvcnMuZXhlY3V0b3JzZWxlbml1bSBpbXBvcnQgKFNlbGVuaXVtVGVzdGhhcm5lc3NFeGVj
dXRvciwgICMgbm9xYTogRjQwMQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgU2VsZW5pdW1SZWZUZXN0RXhlY3V0b3IpICAjIG5vcWE6IEY0MDEKIGZyb20gLi5leGVj
dXRvcnMuZXhlY3V0b3JpbnRlcm5ldGV4cGxvcmVyIGltcG9ydCBJbnRlcm5ldEV4cGxvcmVyRHJp
dmVyV2RzcGVjRXhlY3V0b3IgICMgbm9xYTogRjQwMQogCiBfX3dwdHJ1bm5lcl9fID0geyJwcm9k
dWN0IjogImllIiwKICAgICAgICAgICAgICAgICAgImNoZWNrX2FyZ3MiOiAiY2hlY2tfYXJncyIs
CiAgICAgICAgICAgICAgICAgICJicm93c2VyIjogIkludGVybmV0RXhwbG9yZXJCcm93c2VyIiwK
LSAgICAgICAgICAgICAgICAgImV4ZWN1dG9yIjogeyJ0ZXN0aGFybmVzcyI6ICJTZWxlbml1bVRl
c3RoYXJuZXNzRXhlY3V0b3IiLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInJlZnRl
c3QiOiAiU2VsZW5pdW1SZWZUZXN0RXhlY3V0b3IiLAotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIndkc3BlYyI6ICJJbnRlcm5ldEV4cGxvcmVyRHJpdmVyV2RzcGVjRXhlY3V0b3IifSwK
KyAgICAgICAgICAgICAgICAgImV4ZWN1dG9yIjogeyJ3ZHNwZWMiOiAiSW50ZXJuZXRFeHBsb3Jl
ckRyaXZlcldkc3BlY0V4ZWN1dG9yIn0sCiAgICAgICAgICAgICAgICAgICJicm93c2VyX2t3YXJn
cyI6ICJicm93c2VyX2t3YXJncyIsCiAgICAgICAgICAgICAgICAgICJleGVjdXRvcl9rd2FyZ3Mi
OiAiZXhlY3V0b3Jfa3dhcmdzIiwKICAgICAgICAgICAgICAgICAgImVudl9leHRyYXMiOiAiZW52
X2V4dHJhcyIsCi0gICAgICAgICAgICAgICAgICJlbnZfb3B0aW9ucyI6ICJlbnZfb3B0aW9ucyJ9
CisgICAgICAgICAgICAgICAgICJlbnZfb3B0aW9ucyI6ICJlbnZfb3B0aW9ucyIsCisgICAgICAg
ICAgICAgICAgICJ0aW1lb3V0X211bHRpcGxpZXIiOiAiZ2V0X3RpbWVvdXRfbXVsdGlwbGllciJ9
CiAKIAogZGVmIGNoZWNrX2FyZ3MoKiprd2FyZ3MpOgpAQCAtNjYsNyArNjQsNyBAQCBjbGFzcyBJ
bnRlcm5ldEV4cGxvcmVyQnJvd3NlcihCcm93c2VyKToKICAgICAgICAgIyBUT0RPKGF0byk6IFRo
aXMgb25seSBpbmRpY2F0ZXMgdGhlIHNlcnZlciBpcyBhbGl2ZSwKICAgICAgICAgIyBhbmQgZG9l
c24ndCBzYXkgYW55dGhpbmcgYWJvdXQgd2hldGhlciBhIGJyb3dzZXIgc2Vzc2lvbgogICAgICAg
ICAjIGlzIGFjdGl2ZS4KLSAgICAgICAgcmV0dXJuIHNlbGYuc2VydmVyLmlzX2FsaXZlKCkKKyAg
ICAgICAgcmV0dXJuIHNlbGYuc2VydmVyLmlzX2FsaXZlCiAKICAgICBkZWYgY2xlYW51cChzZWxm
KToKICAgICAgICAgc2VsZi5zdG9wKCkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9icm93c2Vy
cy9vcGVyYS5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9icm93c2Vycy9vcGVyYS5weQppbmRleCBjNWFlYWFh
Zjk2N2VmZGJiM2U3ODk3ZjcxODRkNzQzMGZlMDFmZTBjLi41NWMwNTA5ZWVkOTJhMmFiZTI3Y2Q2
MmNlNDBkNzQ5ZGRhY2I2YTgzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvYnJvd3NlcnMvb3Bl
cmEucHkKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy93cHRydW5uZXIvd3B0cnVubmVyL2Jyb3dzZXJzL29wZXJhLnB5CkBAIC0xLDQgKzEsNSBA
QAogZnJvbSAuYmFzZSBpbXBvcnQgQnJvd3NlciwgRXhlY3V0b3JCcm93c2VyLCByZXF1aXJlX2Fy
ZworZnJvbSAuYmFzZSBpbXBvcnQgZ2V0X3RpbWVvdXRfbXVsdGlwbGllciAgICMgbm9xYTogRjQw
MQogZnJvbSAuLndlYmRyaXZlcl9zZXJ2ZXIgaW1wb3J0IE9wZXJhRHJpdmVyU2VydmVyCiBmcm9t
IC4uZXhlY3V0b3JzIGltcG9ydCBleGVjdXRvcl9rd2FyZ3MgYXMgYmFzZV9leGVjdXRvcl9rd2Fy
Z3MKIGZyb20gLi5leGVjdXRvcnMuZXhlY3V0b3JzZWxlbml1bSBpbXBvcnQgKFNlbGVuaXVtVGVz
dGhhcm5lc3NFeGVjdXRvciwgICMgbm9xYTogRjQwMQpAQCAtMTUsNyArMTYsOCBAQCBfX3dwdHJ1
bm5lcl9fID0geyJwcm9kdWN0IjogIm9wZXJhIiwKICAgICAgICAgICAgICAgICAgImJyb3dzZXJf
a3dhcmdzIjogImJyb3dzZXJfa3dhcmdzIiwKICAgICAgICAgICAgICAgICAgImV4ZWN1dG9yX2t3
YXJncyI6ICJleGVjdXRvcl9rd2FyZ3MiLAogICAgICAgICAgICAgICAgICAiZW52X2V4dHJhcyI6
ICJlbnZfZXh0cmFzIiwKLSAgICAgICAgICAgICAgICAgImVudl9vcHRpb25zIjogImVudl9vcHRp
b25zIn0KKyAgICAgICAgICAgICAgICAgImVudl9vcHRpb25zIjogImVudl9vcHRpb25zIiwKKyAg
ICAgICAgICAgICAgICAgInRpbWVvdXRfbXVsdGlwbGllciI6ICJnZXRfdGltZW91dF9tdWx0aXBs
aWVyIn0KIAogCiBkZWYgY2hlY2tfYXJncygqKmt3YXJncyk6CkBAIC05MSw3ICs5Myw3IEBAIGNs
YXNzIE9wZXJhQnJvd3NlcihCcm93c2VyKToKICAgICAgICAgIyBUT0RPKGF0byk6IFRoaXMgb25s
eSBpbmRpY2F0ZXMgdGhlIGRyaXZlciBpcyBhbGl2ZSwKICAgICAgICAgIyBhbmQgZG9lc24ndCBz
YXkgYW55dGhpbmcgYWJvdXQgd2hldGhlciBhIGJyb3dzZXIgc2Vzc2lvbgogICAgICAgICAjIGlz
IGFjdGl2ZS4KLSAgICAgICAgcmV0dXJuIHNlbGYuc2VydmVyLmlzX2FsaXZlKCkKKyAgICAgICAg
cmV0dXJuIHNlbGYuc2VydmVyLmlzX2FsaXZlCiAKICAgICBkZWYgY2xlYW51cChzZWxmKToKICAg
ICAgICAgc2VsZi5zdG9wKCkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9icm93c2Vycy9zYWZh
cmkucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3dwdHJ1bm5lci93cHRydW5uZXIvYnJvd3NlcnMvc2FmYXJpLnB5CmluZGV4IDY3MDA5OGVhMjIy
MTZiMzU1OGVjMmQ1MGZjNmYxOTBiMGIyZGZlOTcuLmY0ZmQzMzEzZjlmYmJjMWJmMTdmODcwZDM5
NTA2OTQ2Yjk1MzhiNjcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9icm93c2Vycy9zYWZhcmku
cHkKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy93cHRydW5uZXIvd3B0cnVubmVyL2Jyb3dzZXJzL3NhZmFyaS5weQpAQCAtMSwyMSArMSwyMyBA
QAogZnJvbSAuYmFzZSBpbXBvcnQgQnJvd3NlciwgRXhlY3V0b3JCcm93c2VyLCByZXF1aXJlX2Fy
ZworZnJvbSAuYmFzZSBpbXBvcnQgZ2V0X3RpbWVvdXRfbXVsdGlwbGllciAgICMgbm9xYTogRjQw
MQogZnJvbSAuLndlYmRyaXZlcl9zZXJ2ZXIgaW1wb3J0IFNhZmFyaURyaXZlclNlcnZlcgogZnJv
bSAuLmV4ZWN1dG9ycyBpbXBvcnQgZXhlY3V0b3Jfa3dhcmdzIGFzIGJhc2VfZXhlY3V0b3Jfa3dh
cmdzCi1mcm9tIC4uZXhlY3V0b3JzLmV4ZWN1dG9yc2VsZW5pdW0gaW1wb3J0IChTZWxlbml1bVRl
c3RoYXJuZXNzRXhlY3V0b3IsICAjIG5vcWE6IEY0MDEKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIFNlbGVuaXVtUmVmVGVzdEV4ZWN1dG9yKSAgIyBub3FhOiBGNDAx
Citmcm9tIC4uZXhlY3V0b3JzLmV4ZWN1dG9yd2ViZHJpdmVyIGltcG9ydCAoV2ViRHJpdmVyVGVz
dGhhcm5lc3NFeGVjdXRvciwgICMgbm9xYTogRjQwMQorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIFdlYkRyaXZlclJlZlRlc3RFeGVjdXRvcikgICMgbm9xYTogRjQw
MQogZnJvbSAuLmV4ZWN1dG9ycy5leGVjdXRvcnNhZmFyaSBpbXBvcnQgU2FmYXJpRHJpdmVyV2Rz
cGVjRXhlY3V0b3IgICMgbm9xYTogRjQwMQogCiAKIF9fd3B0cnVubmVyX18gPSB7InByb2R1Y3Qi
OiAic2FmYXJpIiwKICAgICAgICAgICAgICAgICAgImNoZWNrX2FyZ3MiOiAiY2hlY2tfYXJncyIs
CiAgICAgICAgICAgICAgICAgICJicm93c2VyIjogIlNhZmFyaUJyb3dzZXIiLAotICAgICAgICAg
ICAgICAgICAiZXhlY3V0b3IiOiB7InRlc3RoYXJuZXNzIjogIlNlbGVuaXVtVGVzdGhhcm5lc3NF
eGVjdXRvciIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAicmVmdGVzdCI6ICJTZWxl
bml1bVJlZlRlc3RFeGVjdXRvciIsCisgICAgICAgICAgICAgICAgICJleGVjdXRvciI6IHsidGVz
dGhhcm5lc3MiOiAiV2ViRHJpdmVyVGVzdGhhcm5lc3NFeGVjdXRvciIsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAicmVmdGVzdCI6ICJXZWJEcml2ZXJSZWZUZXN0RXhlY3V0b3IiLAog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIndkc3BlYyI6ICJTYWZhcmlEcml2ZXJXZHNw
ZWNFeGVjdXRvciJ9LAogICAgICAgICAgICAgICAgICAiYnJvd3Nlcl9rd2FyZ3MiOiAiYnJvd3Nl
cl9rd2FyZ3MiLAogICAgICAgICAgICAgICAgICAiZXhlY3V0b3Jfa3dhcmdzIjogImV4ZWN1dG9y
X2t3YXJncyIsCiAgICAgICAgICAgICAgICAgICJlbnZfZXh0cmFzIjogImVudl9leHRyYXMiLAot
ICAgICAgICAgICAgICAgICAiZW52X29wdGlvbnMiOiAiZW52X29wdGlvbnMifQorICAgICAgICAg
ICAgICAgICAiZW52X29wdGlvbnMiOiAiZW52X29wdGlvbnMiLAorICAgICAgICAgICAgICAgICAi
dGltZW91dF9tdWx0aXBsaWVyIjogImdldF90aW1lb3V0X211bHRpcGxpZXIifQogCiAKIGRlZiBj
aGVja19hcmdzKCoqa3dhcmdzKToKQEAgLTMzLDYgKzM1LDggQEAgZGVmIGV4ZWN1dG9yX2t3YXJn
cyh0ZXN0X3R5cGUsIHNlcnZlcl9jb25maWcsIGNhY2hlX21hbmFnZXIsIHJ1bl9pbmZvX2RhdGEs
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FjaGVfbWFuYWdl
ciwgcnVuX2luZm9fZGF0YSwgKiprd2FyZ3MpCiAgICAgZXhlY3V0b3Jfa3dhcmdzWyJjbG9zZV9h
ZnRlcl9kb25lIl0gPSBUcnVlCiAgICAgZXhlY3V0b3Jfa3dhcmdzWyJjYXBhYmlsaXRpZXMiXSA9
IHt9CisgICAgaWYgdGVzdF90eXBlID09ICJ0ZXN0aGFybmVzcyI6CisgICAgICAgIGV4ZWN1dG9y
X2t3YXJnc1siY2FwYWJpbGl0aWVzIl1bInBhZ2VMb2FkU3RyYXRlZ3kiXSA9ICJlYWdlciIKICAg
ICBpZiBrd2FyZ3NbImJpbmFyeSJdIGlzIG5vdCBOb25lOgogICAgICAgICByYWlzZSBWYWx1ZUVy
cm9yKCJTYWZhcmkgZG9lc24ndCBzdXBwb3J0IHNldHRpbmcgZXhlY3V0YWJsZSBsb2NhdGlvbiIp
CiAKQEAgLTc1LDcgKzc5LDcgQEAgY2xhc3MgU2FmYXJpQnJvd3NlcihCcm93c2VyKToKICAgICAg
ICAgIyBUT0RPKGF0byk6IFRoaXMgb25seSBpbmRpY2F0ZXMgdGhlIGRyaXZlciBpcyBhbGl2ZSwK
ICAgICAgICAgIyBhbmQgZG9lc24ndCBzYXkgYW55dGhpbmcgYWJvdXQgd2hldGhlciBhIGJyb3dz
ZXIgc2Vzc2lvbgogICAgICAgICAjIGlzIGFjdGl2ZS4KLSAgICAgICAgcmV0dXJuIHNlbGYuc2Vy
dmVyLmlzX2FsaXZlKCkKKyAgICAgICAgcmV0dXJuIHNlbGYuc2VydmVyLmlzX2FsaXZlCiAKICAg
ICBkZWYgY2xlYW51cChzZWxmKToKICAgICAgICAgc2VsZi5zdG9wKCkKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVy
L3dwdHJ1bm5lci9icm93c2Vycy9zYXVjZS5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9icm93c2Vycy9zYXVj
ZS5weQppbmRleCA5YWE0ODRhY2NkNDdkMGQ0Y2Q4NjRiMTk0OTExNzRhNzc1NDIxZDdhLi4zMzAx
Yzc1YjIxMDA0YTU1NGY5MWQ0NzY3Yjg1NjBmYzQwMjE0NDEyIDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRy
dW5uZXIvYnJvd3NlcnMvc2F1Y2UucHkKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2Jyb3dzZXJzL3NhdWNl
LnB5CkBAIC0xNCw2ICsxNCw3IEBAIGZyb20gY1N0cmluZ0lPIGltcG9ydCBTdHJpbmdJTyBhcyBD
U3RyaW5nSU8KIGltcG9ydCByZXF1ZXN0cwogCiBmcm9tIC5iYXNlIGltcG9ydCBCcm93c2VyLCBF
eGVjdXRvckJyb3dzZXIsIHJlcXVpcmVfYXJnCitmcm9tIC5iYXNlIGltcG9ydCBnZXRfdGltZW91
dF9tdWx0aXBsaWVyICAgIyBub3FhOiBGNDAxCiBmcm9tIC4uZXhlY3V0b3JzIGltcG9ydCBleGVj
dXRvcl9rd2FyZ3MgYXMgYmFzZV9leGVjdXRvcl9rd2FyZ3MKIGZyb20gLi5leGVjdXRvcnMuZXhl
Y3V0b3JzZWxlbml1bSBpbXBvcnQgKFNlbGVuaXVtVGVzdGhhcm5lc3NFeGVjdXRvciwgICMgbm9x
YTogRjQwMQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU2VsZW5p
dW1SZWZUZXN0RXhlY3V0b3IpICAjIG5vcWE6IEY0MDEKQEAgLTMyLDcgKzMzLDggQEAgX193cHRy
dW5uZXJfXyA9IHsicHJvZHVjdCI6ICJzYXVjZSIsCiAgICAgICAgICAgICAgICAgICJicm93c2Vy
X2t3YXJncyI6ICJicm93c2VyX2t3YXJncyIsCiAgICAgICAgICAgICAgICAgICJleGVjdXRvcl9r
d2FyZ3MiOiAiZXhlY3V0b3Jfa3dhcmdzIiwKICAgICAgICAgICAgICAgICAgImVudl9leHRyYXMi
OiAiZW52X2V4dHJhcyIsCi0gICAgICAgICAgICAgICAgICJlbnZfb3B0aW9ucyI6ICJlbnZfb3B0
aW9ucyJ9CisgICAgICAgICAgICAgICAgICJlbnZfb3B0aW9ucyI6ICJlbnZfb3B0aW9ucyIsCisg
ICAgICAgICAgICAgICAgICJ0aW1lb3V0X211bHRpcGxpZXIiOiAiZ2V0X3RpbWVvdXRfbXVsdGlw
bGllciJ9CiAKIAogZGVmIGdldF9jYXBhYmlsaXRpZXMoKiprd2FyZ3MpOgpAQCAtMTMzLDYgKzEz
NSw4IEBAIGNsYXNzIFNhdWNlQ29ubmVjdCgpOgogICAgICAgICBzZWxmLnNhdWNlX2tleSA9IGt3
YXJnc1sic2F1Y2Vfa2V5Il0KICAgICAgICAgc2VsZi5zYXVjZV90dW5uZWxfaWQgPSBrd2FyZ3Nb
InNhdWNlX3R1bm5lbF9pZCJdCiAgICAgICAgIHNlbGYuc2F1Y2VfY29ubmVjdF9iaW5hcnkgPSBr
d2FyZ3MuZ2V0KCJzYXVjZV9jb25uZWN0X2JpbmFyeSIpCisgICAgICAgIHNlbGYuc2F1Y2VfY29u
bmVjdF9hcmdzID0ga3dhcmdzLmdldCgic2F1Y2VfY29ubmVjdF9hcmdzIikKKyAgICAgICAgc2Vs
Zi5zYXVjZV9pbml0X3RpbWVvdXQgPSBrd2FyZ3MuZ2V0KCJzYXVjZV9pbml0X3RpbWVvdXQiKQog
ICAgICAgICBzZWxmLnNjX3Byb2Nlc3MgPSBOb25lCiAgICAgICAgIHNlbGYudGVtcF9kaXIgPSBO
b25lCiAgICAgICAgIHNlbGYuZW52X2NvbmZpZyA9IE5vbmUKQEAgLTE3MCwxNCArMTc0LDExIEBA
IGNsYXNzIFNhdWNlQ29ubmVjdCgpOgogICAgICAgICAgICAgIi0tcmVhZHlmaWxlPS4vc2F1Y2Vf
aXNfcmVhZHkiLAogICAgICAgICAgICAgIi0tdHVubmVsLWRvbWFpbnMiLAogICAgICAgICAgICAg
IiwiLmpvaW4oc2VsZi5lbnZfY29uZmlnLmRvbWFpbnNfc2V0KQotICAgICAgICBdKQotCi0gICAg
ICAgICMgVGltZW91dCBjb25maWcgdmFycwotICAgICAgICBtYXhfd2FpdCA9IDMwCisgICAgICAg
IF0gKyBzZWxmLnNhdWNlX2Nvbm5lY3RfYXJncykKIAogICAgICAgICB0b3Rfd2FpdCA9IDAKICAg
ICAgICAgd2hpbGUgbm90IG9zLnBhdGguZXhpc3RzKCcuL3NhdWNlX2lzX3JlYWR5JykgYW5kIHNl
bGYuc2NfcHJvY2Vzcy5wb2xsKCkgaXMgTm9uZToKLSAgICAgICAgICAgIGlmIHRvdF93YWl0ID49
IG1heF93YWl0OgorICAgICAgICAgICAgaWYgdG90X3dhaXQgPj0gc2VsZi5zYXVjZV9pbml0X3Rp
bWVvdXQ6CiAgICAgICAgICAgICAgICAgc2VsZi5xdWl0KCkKIAogICAgICAgICAgICAgICAgIHJh
aXNlIFNhdWNlRXhjZXB0aW9uKCJTYXVjZSBDb25uZWN0IFByb3h5IHdhcyBub3QgcmVhZHkgYWZ0
ZXIgJWQgc2Vjb25kcyIgJSB0b3Rfd2FpdCkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9icm93
c2Vycy9zYXVjZV9zZXR1cC9lZGdlLXByZXJ1bi5iYXQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvYnJvd3NlcnMv
c2F1Y2Vfc2V0dXAvZWRnZS1wcmVydW4uYmF0Cm9sZCBtb2RlIDEwMDY0NApuZXcgbW9kZSAxMDA3
NTUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9icm93c2Vycy9zYXVjZV9zZXR1cC9zYWZhcmkt
cHJlcnVuLnNoIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy93cHRydW5uZXIvd3B0cnVubmVyL2Jyb3dzZXJzL3NhdWNlX3NldHVwL3NhZmFyaS1wcmVy
dW4uc2gKb2xkIG1vZGUgMTAwNjQ0Cm5ldyBtb2RlIDEwMDc1NQpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0
cnVubmVyL2Jyb3dzZXJzL3NhdWNlX3NldHVwL3czYy1pbXBvcnQubG9nIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVy
L2Jyb3dzZXJzL3NhdWNlX3NldHVwL3czYy1pbXBvcnQubG9nCmRlbGV0ZWQgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCA1MTUyZTEyNmI0ZTIxNGZkMGVlYjI2NmJiZWRjNzM3NzBiM2VlZmVlLi4wMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9i
cm93c2Vycy9zYXVjZV9zZXR1cC93M2MtaW1wb3J0LmxvZworKysgL2Rldi9udWxsCkBAIC0xLDE4
ICswLDAgQEAKLVRoZSB0ZXN0cyBpbiB0aGlzIGRpcmVjdG9yeSB3ZXJlIGltcG9ydGVkIGZyb20g
dGhlIFczQyByZXBvc2l0b3J5LgotRG8gTk9UIG1vZGlmeSB0aGVzZSB0ZXN0cyBkaXJlY3RseSBp
biBXZWJLaXQuCi1JbnN0ZWFkLCBjcmVhdGUgYSBwdWxsIHJlcXVlc3Qgb24gdGhlIFdQVCBnaXRo
dWI6Ci0JaHR0cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQKLQotVGhlbiBy
dW4gdGhlIFRvb2xzL1NjcmlwdHMvaW1wb3J0LXczYy10ZXN0cyBpbiBXZWJLaXQgdG8gcmVpbXBv
cnQKLQotRG8gTk9UIG1vZGlmeSBvciByZW1vdmUgdGhpcyBmaWxlLgotCi0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0KLVByb3BlcnRpZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLVByb3BlcnR5
IHZhbHVlcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
Ci1MaXN0IG9mIGZpbGVzOgotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9icm93c2Vycy9zYXVjZV9zZXR1cC9lZGdl
LXByZXJ1bi5iYXQKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvYnJvd3NlcnMvc2F1Y2Vfc2V0dXAvc2FmYXJpLXBy
ZXJ1bi5zaApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2Jyb3dzZXJzL3NlcnZvLnB5IGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIv
d3B0cnVubmVyL2Jyb3dzZXJzL3NlcnZvLnB5CmluZGV4IDFhMzU3YTNjZWQ5M2VkZjhmNjViMjFk
ZGU4ZjA0YjA4ODQ5YTQ2NjkuLmQzZWQ0YjNmYjFkNDY0ZWNiMDEyYTY4MzIzZGRlN2M5NDJkYjE0
ZTEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9icm93c2Vycy9zZXJ2by5weQorKysgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93
cHRydW5uZXIvYnJvd3NlcnMvc2Vydm8ucHkKQEAgLTEsNiArMSw3IEBACiBpbXBvcnQgb3MKIAog
ZnJvbSAuYmFzZSBpbXBvcnQgTnVsbEJyb3dzZXIsIEV4ZWN1dG9yQnJvd3NlciwgcmVxdWlyZV9h
cmcKK2Zyb20gLmJhc2UgaW1wb3J0IGdldF90aW1lb3V0X211bHRpcGxpZXIgICAjIG5vcWE6IEY0
MDEKIGZyb20gLi5leGVjdXRvcnMgaW1wb3J0IGV4ZWN1dG9yX2t3YXJncyBhcyBiYXNlX2V4ZWN1
dG9yX2t3YXJncwogZnJvbSAuLmV4ZWN1dG9ycy5leGVjdXRvcnNlcnZvIGltcG9ydCBTZXJ2b1Rl
c3RoYXJuZXNzRXhlY3V0b3IsIFNlcnZvUmVmVGVzdEV4ZWN1dG9yLCBTZXJ2b1dkc3BlY0V4ZWN1
dG9yICAjIG5vcWE6IEY0MDEKIApAQCAtMTksNiArMjAsNyBAQCBfX3dwdHJ1bm5lcl9fID0gewog
ICAgICJleGVjdXRvcl9rd2FyZ3MiOiAiZXhlY3V0b3Jfa3dhcmdzIiwKICAgICAiZW52X2V4dHJh
cyI6ICJlbnZfZXh0cmFzIiwKICAgICAiZW52X29wdGlvbnMiOiAiZW52X29wdGlvbnMiLAorICAg
ICJ0aW1lb3V0X211bHRpcGxpZXIiOiAiZ2V0X3RpbWVvdXRfbXVsdGlwbGllciIsCiAgICAgInVw
ZGF0ZV9wcm9wZXJ0aWVzIjogInVwZGF0ZV9wcm9wZXJ0aWVzIiwKIH0KIApAQCAtNTksNyArNjEs
NyBAQCBkZWYgZW52X29wdGlvbnMoKToKIAogCiBkZWYgdXBkYXRlX3Byb3BlcnRpZXMoKToKLSAg
ICByZXR1cm4gWyJkZWJ1ZyIsICJvcyIsICJ2ZXJzaW9uIiwgInByb2Nlc3NvciIsICJiaXRzIl0s
IE5vbmUKKyAgICByZXR1cm4gWyJkZWJ1ZyIsICJvcyIsICJwcm9jZXNzb3IiXSwgeyJvcyI6IFsi
dmVyc2lvbiJdLCAicHJvY2Vzc29yIjogWyJiaXRzIl19CiAKIAogY2xhc3MgU2Vydm9Ccm93c2Vy
KE51bGxCcm93c2VyKToKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9icm93c2Vycy9zZXJ2b2Ry
aXZlci5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvd3B0cnVubmVyL3dwdHJ1bm5lci9icm93c2Vycy9zZXJ2b2RyaXZlci5weQppbmRleCA2NDg2
YTc4OGI4YzhmYmY0ZmM1MmRkNDM2ODI2NTU3MTk3NWNhYmI0Li4yOTUzZGUxODE3NGVmNzVkNTA1
ZGIwYjhkNTE4ZmUzMzM5ZjcwNjVlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvYnJvd3NlcnMv
c2Vydm9kcml2ZXIucHkKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2Jyb3dzZXJzL3NlcnZvZHJpdmVyLnB5
CkBAIC00LDkgKzQsMTAgQEAgaW1wb3J0IHRlbXBmaWxlCiAKIGZyb20gbW96cHJvY2VzcyBpbXBv
cnQgUHJvY2Vzc0hhbmRsZXIKIAotZnJvbSBzZXJ2ZS5zZXJ2ZSBpbXBvcnQgbWFrZV9ob3N0c19m
aWxlCitmcm9tIHRvb2xzLnNlcnZlLnNlcnZlIGltcG9ydCBtYWtlX2hvc3RzX2ZpbGUKIAogZnJv
bSAuYmFzZSBpbXBvcnQgQnJvd3NlciwgcmVxdWlyZV9hcmcsIGdldF9mcmVlX3BvcnQsIGJyb3dz
ZXJfY29tbWFuZCwgRXhlY3V0b3JCcm93c2VyCitmcm9tIC5iYXNlIGltcG9ydCBnZXRfdGltZW91
dF9tdWx0aXBsaWVyICAgIyBub3FhOiBGNDAxCiBmcm9tIC4uZXhlY3V0b3JzIGltcG9ydCBleGVj
dXRvcl9rd2FyZ3MgYXMgYmFzZV9leGVjdXRvcl9rd2FyZ3MKIGZyb20gLi5leGVjdXRvcnMuZXhl
Y3V0b3JzZXJ2b2RyaXZlciBpbXBvcnQgKFNlcnZvV2ViRHJpdmVyVGVzdGhhcm5lc3NFeGVjdXRv
ciwgICMgbm9xYTogRjQwMQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgU2Vydm9XZWJEcml2ZXJSZWZUZXN0RXhlY3V0b3IpICAjIG5vcWE6IEY0MDEKQEAgLTI1
LDYgKzI2LDcgQEAgX193cHRydW5uZXJfXyA9IHsKICAgICAiZXhlY3V0b3Jfa3dhcmdzIjogImV4
ZWN1dG9yX2t3YXJncyIsCiAgICAgImVudl9leHRyYXMiOiAiZW52X2V4dHJhcyIsCiAgICAgImVu
dl9vcHRpb25zIjogImVudl9vcHRpb25zIiwKKyAgICAidGltZW91dF9tdWx0aXBsaWVyIjogImdl
dF90aW1lb3V0X211bHRpcGxpZXIiLAogICAgICJ1cGRhdGVfcHJvcGVydGllcyI6ICJ1cGRhdGVf
cHJvcGVydGllcyIsCiB9CiAKQEAgLTQwLDYgKzQyLDcgQEAgZGVmIGJyb3dzZXJfa3dhcmdzKHRl
c3RfdHlwZSwgcnVuX2luZm9fZGF0YSwgY29uZmlnLCAqKmt3YXJncyk6CiAgICAgICAgICJkZWJ1
Z19pbmZvIjoga3dhcmdzWyJkZWJ1Z19pbmZvIl0sCiAgICAgICAgICJzZXJ2ZXJfY29uZmlnIjog
Y29uZmlnLAogICAgICAgICAidXNlcl9zdHlsZXNoZWV0cyI6IGt3YXJncy5nZXQoInVzZXJfc3R5
bGVzaGVldHMiKSwKKyAgICAgICAgImhlYWRsZXNzIjoga3dhcmdzLmdldCgiaGVhZGxlc3MiKSwK
ICAgICB9CiAKIApAQCAtNjAsNyArNjMsNyBAQCBkZWYgZW52X29wdGlvbnMoKToKIAogCiBkZWYg
dXBkYXRlX3Byb3BlcnRpZXMoKToKLSAgICByZXR1cm4gWyJkZWJ1ZyIsICJvcyIsICJ2ZXJzaW9u
IiwgInByb2Nlc3NvciIsICJiaXRzIl0sIE5vbmUKKyAgICByZXR1cm4gKFsiZGVidWciLCAib3Mi
LCAicHJvY2Vzc29yIl0sIHsib3MiOiBbInZlcnNpb24iXSwgInByb2Nlc3NvciI6IFsiYml0cyJd
fSkKIAogCiBkZWYgd3JpdGVfaG9zdHNfZmlsZShjb25maWcpOgpAQCAtNjksMTMgKzcyLDExIEBA
IGRlZiB3cml0ZV9ob3N0c19maWxlKGNvbmZpZyk6CiAgICAgICAgIGYud3JpdGUobWFrZV9ob3N0
c19maWxlKGNvbmZpZywgIjEyNy4wLjAuMSIpKQogICAgIHJldHVybiBob3N0c19wYXRoCiAKLQog
Y2xhc3MgU2Vydm9XZWJEcml2ZXJCcm93c2VyKEJyb3dzZXIpOgotICAgIHVzZWRfcG9ydHMgPSBz
ZXQoKQogICAgIGluaXRfdGltZW91dCA9IDMwMCAgIyBMYXJnZSB0aW1lb3V0IGZvciBjYXNlcyB3
aGVyZSB3ZSdyZSBib290aW5nIGFuIEFuZHJvaWQgZW11bGF0b3IKIAogICAgIGRlZiBfX2luaXRf
XyhzZWxmLCBsb2dnZXIsIGJpbmFyeSwgZGVidWdfaW5mbz1Ob25lLCB3ZWJkcml2ZXJfaG9zdD0i
MTI3LjAuMC4xIiwKLSAgICAgICAgICAgICAgICAgc2VydmVyX2NvbmZpZz1Ob25lLCBiaW5hcnlf
YXJncz1Ob25lLCB1c2VyX3N0eWxlc2hlZXRzPU5vbmUpOgorICAgICAgICAgICAgICAgICBzZXJ2
ZXJfY29uZmlnPU5vbmUsIGJpbmFyeV9hcmdzPU5vbmUsIHVzZXJfc3R5bGVzaGVldHM9Tm9uZSwg
aGVhZGxlc3M9Tm9uZSk6CiAgICAgICAgIEJyb3dzZXIuX19pbml0X18oc2VsZiwgbG9nZ2VyKQog
ICAgICAgICBzZWxmLmJpbmFyeSA9IGJpbmFyeQogICAgICAgICBzZWxmLmJpbmFyeV9hcmdzID0g
YmluYXJ5X2FyZ3Mgb3IgW10KQEAgLTg3LDEwICs4OCwxMSBAQCBjbGFzcyBTZXJ2b1dlYkRyaXZl
ckJyb3dzZXIoQnJvd3Nlcik6CiAgICAgICAgIHNlbGYuc2VydmVyX3BvcnRzID0gc2VydmVyX2Nv
bmZpZy5wb3J0cyBpZiBzZXJ2ZXJfY29uZmlnIGVsc2Uge30KICAgICAgICAgc2VsZi5jb21tYW5k
ID0gTm9uZQogICAgICAgICBzZWxmLnVzZXJfc3R5bGVzaGVldHMgPSB1c2VyX3N0eWxlc2hlZXRz
IGlmIHVzZXJfc3R5bGVzaGVldHMgZWxzZSBbXQorICAgICAgICBzZWxmLmhlYWRsZXNzID0gaGVh
ZGxlc3MgaWYgaGVhZGxlc3MgZWxzZSBGYWxzZQorICAgICAgICBzZWxmLmNhX2NlcnRpZmljYXRl
X3BhdGggPSBzZXJ2ZXJfY29uZmlnLnNzbF9jb25maWdbImNhX2NlcnRfcGF0aCJdCiAKICAgICBk
ZWYgc3RhcnQoc2VsZiwgKiprd2FyZ3MpOgotICAgICAgICBzZWxmLndlYmRyaXZlcl9wb3J0ID0g
Z2V0X2ZyZWVfcG9ydCg0NDQ0LCBleGNsdWRlPXNlbGYudXNlZF9wb3J0cykKLSAgICAgICAgc2Vs
Zi51c2VkX3BvcnRzLmFkZChzZWxmLndlYmRyaXZlcl9wb3J0KQorICAgICAgICBzZWxmLndlYmRy
aXZlcl9wb3J0ID0gZ2V0X2ZyZWVfcG9ydCgpCiAKICAgICAgICAgZW52ID0gb3MuZW52aXJvbi5j
b3B5KCkKICAgICAgICAgZW52WyJIT1NUX0ZJTEUiXSA9IHNlbGYuaG9zdHNfcGF0aApAQCAtMTA2
LDEyICsxMDgsMTggQEAgY2xhc3MgU2Vydm9XZWJEcml2ZXJCcm93c2VyKEJyb3dzZXIpOgogICAg
ICAgICAgICAgc2VsZi5iaW5hcnksCiAgICAgICAgICAgICBzZWxmLmJpbmFyeV9hcmdzICsgWwog
ICAgICAgICAgICAgICAgICItLWhhcmQtZmFpbCIsCi0gICAgICAgICAgICAgICAgIi0td2ViZHJp
dmVyIiwgc3RyKHNlbGYud2ViZHJpdmVyX3BvcnQpLAorICAgICAgICAgICAgICAgICItLXdlYmRy
aXZlcj0lcyIgJSBzZWxmLndlYmRyaXZlcl9wb3J0LAogICAgICAgICAgICAgICAgICJhYm91dDpi
bGFuayIsCiAgICAgICAgICAgICBdLAogICAgICAgICAgICAgc2VsZi5kZWJ1Z19pbmZvCiAgICAg
ICAgICkKIAorICAgICAgICBpZiBzZWxmLmhlYWRsZXNzOgorICAgICAgICAgICAgY29tbWFuZCAr
PSBbIi0taGVhZGxlc3MiXQorCisgICAgICAgIGlmIHNlbGYuY2FfY2VydGlmaWNhdGVfcGF0aDoK
KyAgICAgICAgICAgIGNvbW1hbmQgKz0gWyItLWNlcnRpZmljYXRlLXBhdGgiLCBzZWxmLmNhX2Nl
cnRpZmljYXRlX3BhdGhdCisKICAgICAgICAgZm9yIHN0eWxlc2hlZXQgaW4gc2VsZi51c2VyX3N0
eWxlc2hlZXRzOgogICAgICAgICAgICAgY29tbWFuZCArPSBbIi0tdXNlci1zdHlsZXNoZWV0Iiwg
c3R5bGVzaGVldF0KIApAQCAtMTU1LDkgKzE2Myw3IEBAIGNsYXNzIFNlcnZvV2ViRHJpdmVyQnJv
d3NlcihCcm93c2VyKToKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29tbWFu
ZD0iICIuam9pbihzZWxmLmNvbW1hbmQpKQogCiAgICAgZGVmIGlzX2FsaXZlKHNlbGYpOgotICAg
ICAgICBpZiBzZWxmLnJ1bm5lcjoKLSAgICAgICAgICAgIHJldHVybiBzZWxmLnJ1bm5lci5pc19y
dW5uaW5nKCkKLSAgICAgICAgcmV0dXJuIEZhbHNlCisgICAgICAgIHJldHVybiBzZWxmLnByb2Mu
cG9sbCgpIGlzIE5vbmUKIAogICAgIGRlZiBjbGVhbnVwKHNlbGYpOgogICAgICAgICBzZWxmLnN0
b3AoKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2Jyb3dzZXJzL3czYy1pbXBvcnQubG9nIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5u
ZXIvd3B0cnVubmVyL2Jyb3dzZXJzL3czYy1pbXBvcnQubG9nCmRlbGV0ZWQgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCA5YzI3YjE5MDEzYmUxMTBkZTgwYTQ1MjAxZDE2OTc1MGNlNThkNDY4Li4wMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9i
cm93c2Vycy93M2MtaW1wb3J0LmxvZworKysgL2Rldi9udWxsCkBAIC0xLDMwICswLDAgQEAKLVRo
ZSB0ZXN0cyBpbiB0aGlzIGRpcmVjdG9yeSB3ZXJlIGltcG9ydGVkIGZyb20gdGhlIFczQyByZXBv
c2l0b3J5LgotRG8gTk9UIG1vZGlmeSB0aGVzZSB0ZXN0cyBkaXJlY3RseSBpbiBXZWJLaXQuCi1J
bnN0ZWFkLCBjcmVhdGUgYSBwdWxsIHJlcXVlc3Qgb24gdGhlIFdQVCBnaXRodWI6Ci0JaHR0cHM6
Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQKLQotVGhlbiBydW4gdGhlIFRvb2xz
L1NjcmlwdHMvaW1wb3J0LXczYy10ZXN0cyBpbiBXZWJLaXQgdG8gcmVpbXBvcnQKLQotRG8gTk9U
IG1vZGlmeSBvciByZW1vdmUgdGhpcyBmaWxlLgotCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLVByb3BlcnRp
ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLVByb3BlcnR5IHZhbHVlcyByZXF1
aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1MaXN0IG9mIGZp
bGVzOgotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
d3B0cnVubmVyL3dwdHJ1bm5lci9icm93c2Vycy9fX2luaXRfXy5weQotL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9i
cm93c2Vycy9iYXNlLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2Jyb3dzZXJzL2Nocm9tZS5weQotL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dw
dHJ1bm5lci9icm93c2Vycy9jaHJvbWVfYW5kcm9pZC5weQotL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9icm93c2Vy
cy9lZGdlLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy93cHRydW5uZXIvd3B0cnVubmVyL2Jyb3dzZXJzL2Zlbm5lYy5weQotL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5l
ci9icm93c2Vycy9maXJlZm94LnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2Jyb3dzZXJzL2llLnB5Ci0vTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIv
d3B0cnVubmVyL2Jyb3dzZXJzL29wZXJhLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2Jyb3dzZXJzL3NhZmFy
aS5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
d3B0cnVubmVyL3dwdHJ1bm5lci9icm93c2Vycy9zYXVjZS5weQotL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9icm93
c2Vycy9zZXJ2by5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9icm93c2Vycy9zZXJ2b2RyaXZlci5weQotL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVy
L3dwdHJ1bm5lci9icm93c2Vycy93ZWJraXQucHkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9i
cm93c2Vycy93ZWJraXQucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvYnJvd3NlcnMvd2Via2l0LnB5CmluZGV4
IDk0ODJmMmY3NzQzMzI0NzYxNTBkM2UxYmJiNDUyZDU1NDVlMmVmNjkuLmFhMjg2MjEzOTQ1MGY2
ODJlNjA1MWM1ZjYxN2FiOGNhZjE5NjA3ODQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9icm93
c2Vycy93ZWJraXQucHkKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2Jyb3dzZXJzL3dlYmtpdC5weQpAQCAt
MSw3ICsxLDggQEAKIGZyb20gLmJhc2UgaW1wb3J0IEJyb3dzZXIsIEV4ZWN1dG9yQnJvd3Nlciwg
cmVxdWlyZV9hcmcKK2Zyb20gLmJhc2UgaW1wb3J0IGdldF90aW1lb3V0X211bHRpcGxpZXIsIGNl
cnRpZmljYXRlX2RvbWFpbl9saXN0ICAjIG5vcWE6IEY0MDEKIGZyb20gLi5leGVjdXRvcnMgaW1w
b3J0IGV4ZWN1dG9yX2t3YXJncyBhcyBiYXNlX2V4ZWN1dG9yX2t3YXJncwotZnJvbSAuLmV4ZWN1
dG9ycy5leGVjdXRvcnNlbGVuaXVtIGltcG9ydCAoU2VsZW5pdW1UZXN0aGFybmVzc0V4ZWN1dG9y
LCAgIyBub3FhOiBGNDAxCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBTZWxlbml1bVJlZlRlc3RFeGVjdXRvcikgICMgbm9xYTogRjQwMQorZnJvbSAuLmV4ZWN1dG9y
cy5leGVjdXRvcndlYmRyaXZlciBpbXBvcnQgKFdlYkRyaXZlclRlc3RoYXJuZXNzRXhlY3V0b3Is
ICAjIG5vcWE6IEY0MDEKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBXZWJEcml2ZXJSZWZUZXN0RXhlY3V0b3IpICAjIG5vcWE6IEY0MDEKIGZyb20gLi5leGVjdXRv
cnMuZXhlY3V0b3J3ZWJraXQgaW1wb3J0IFdlYktpdERyaXZlcldkc3BlY0V4ZWN1dG9yICAjIG5v
cWE6IEY0MDEKIGZyb20gLi53ZWJkcml2ZXJfc2VydmVyIGltcG9ydCBXZWJLaXREcml2ZXJTZXJ2
ZXIKIApAQCAtMTAsMTIgKzExLDE0IEBAIF9fd3B0cnVubmVyX18gPSB7InByb2R1Y3QiOiAid2Vi
a2l0IiwKICAgICAgICAgICAgICAgICAgImNoZWNrX2FyZ3MiOiAiY2hlY2tfYXJncyIsCiAgICAg
ICAgICAgICAgICAgICJicm93c2VyIjogIldlYktpdEJyb3dzZXIiLAogICAgICAgICAgICAgICAg
ICAiYnJvd3Nlcl9rd2FyZ3MiOiAiYnJvd3Nlcl9rd2FyZ3MiLAotICAgICAgICAgICAgICAgICAi
ZXhlY3V0b3IiOiB7InRlc3RoYXJuZXNzIjogIlNlbGVuaXVtVGVzdGhhcm5lc3NFeGVjdXRvciIs
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAicmVmdGVzdCI6ICJTZWxlbml1bVJlZlRl
c3RFeGVjdXRvciIsCisgICAgICAgICAgICAgICAgICJleGVjdXRvciI6IHsidGVzdGhhcm5lc3Mi
OiAiV2ViRHJpdmVyVGVzdGhhcm5lc3NFeGVjdXRvciIsCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAicmVmdGVzdCI6ICJXZWJEcml2ZXJSZWZUZXN0RXhlY3V0b3IiLAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIndkc3BlYyI6ICJXZWJLaXREcml2ZXJXZHNwZWNFeGVjdXRv
ciJ9LAogICAgICAgICAgICAgICAgICAiZXhlY3V0b3Jfa3dhcmdzIjogImV4ZWN1dG9yX2t3YXJn
cyIsCiAgICAgICAgICAgICAgICAgICJlbnZfZXh0cmFzIjogImVudl9leHRyYXMiLAotICAgICAg
ICAgICAgICAgICAiZW52X29wdGlvbnMiOiAiZW52X29wdGlvbnMifQorICAgICAgICAgICAgICAg
ICAiZW52X29wdGlvbnMiOiAiZW52X29wdGlvbnMiLAorICAgICAgICAgICAgICAgICAicnVuX2lu
Zm9fZXh0cmFzIjogInJ1bl9pbmZvX2V4dHJhcyIsCisgICAgICAgICAgICAgICAgICJ0aW1lb3V0
X211bHRpcGxpZXIiOiAiZ2V0X3RpbWVvdXRfbXVsdGlwbGllciJ9CiAKIAogZGVmIGNoZWNrX2Fy
Z3MoKiprd2FyZ3MpOgpAQCAtMzEsMTkgKzM0LDIwIEBAIGRlZiBicm93c2VyX2t3YXJncyh0ZXN0
X3R5cGUsIHJ1bl9pbmZvX2RhdGEsIGNvbmZpZywgKiprd2FyZ3MpOgogCiAKIGRlZiBjYXBhYmls
aXRpZXNfZm9yX3BvcnQoc2VydmVyX2NvbmZpZywgKiprd2FyZ3MpOgotICAgIGZyb20gc2VsZW5p
dW0ud2ViZHJpdmVyIGltcG9ydCBEZXNpcmVkQ2FwYWJpbGl0aWVzCi0KLSAgICBpZiBrd2FyZ3Nb
IndlYmtpdF9wb3J0Il0gPT0gImd0ayI6Ci0gICAgICAgIGNhcGFiaWxpdGllcyA9IGRpY3QoRGVz
aXJlZENhcGFiaWxpdGllcy5XRUJLSVRHVEsuY29weSgpKQotICAgICAgICBjYXBhYmlsaXRpZXNb
IndlYmtpdGd0azpicm93c2VyT3B0aW9ucyJdID0gewotICAgICAgICAgICAgImJpbmFyeSI6IGt3
YXJnc1siYmluYXJ5Il0sCi0gICAgICAgICAgICAiYXJncyI6IGt3YXJncy5nZXQoImJpbmFyeV9h
cmdzIiwgW10pLAotICAgICAgICAgICAgImNlcnRpZmljYXRlcyI6IFsKLSAgICAgICAgICAgICAg
ICB7Imhvc3QiOiBzZXJ2ZXJfY29uZmlnWyJicm93c2VyX2hvc3QiXSwKLSAgICAgICAgICAgICAg
ICAgImNlcnRpZmljYXRlRmlsZSI6IGt3YXJnc1siaG9zdF9jZXJ0X3BhdGgiXX0KLSAgICAgICAg
ICAgIF0KLSAgICAgICAgfQotICAgICAgICByZXR1cm4gY2FwYWJpbGl0aWVzCisgICAgcG9ydF9u
YW1lID0ga3dhcmdzWyJ3ZWJraXRfcG9ydCJdCisgICAgaWYgcG9ydF9uYW1lIGluIFsiZ3RrIiwg
IndwZSJdOgorICAgICAgICBwb3J0X2tleV9tYXAgPSB7Imd0ayI6ICJ3ZWJraXRndGsifQorICAg
ICAgICBicm93c2VyX29wdGlvbnNfcG9ydCA9IHBvcnRfa2V5X21hcC5nZXQocG9ydF9uYW1lLCBw
b3J0X25hbWUpCisgICAgICAgIGJyb3dzZXJfb3B0aW9uc19rZXkgPSAiJXM6YnJvd3Nlck9wdGlv
bnMiICUgYnJvd3Nlcl9vcHRpb25zX3BvcnQKKworICAgICAgICByZXR1cm4geworICAgICAgICAg
ICAgImJyb3dzZXJOYW1lIjogIk1pbmlCcm93c2VyIiwKKyAgICAgICAgICAgICJicm93c2VyVmVy
c2lvbiI6ICIyLjIwIiwKKyAgICAgICAgICAgICJwbGF0Zm9ybU5hbWUiOiAiQU5ZIiwKKyAgICAg
ICAgICAgIGJyb3dzZXJfb3B0aW9uc19rZXk6IHsKKyAgICAgICAgICAgICAgICAiYmluYXJ5Ijog
a3dhcmdzWyJiaW5hcnkiXSwKKyAgICAgICAgICAgICAgICAiYXJncyI6IGt3YXJncy5nZXQoImJp
bmFyeV9hcmdzIiwgW10pLAorICAgICAgICAgICAgICAgICJjZXJ0aWZpY2F0ZXMiOiBjZXJ0aWZp
Y2F0ZV9kb21haW5fbGlzdChzZXJ2ZXJfY29uZmlnLmRvbWFpbnNfc2V0LCBrd2FyZ3NbImhvc3Rf
Y2VydF9wYXRoIl0pfX0KIAogICAgIHJldHVybiB7fQogCkBAIC02Niw2ICs3MCwxMCBAQCBkZWYg
ZW52X29wdGlvbnMoKToKICAgICByZXR1cm4ge30KIAogCitkZWYgcnVuX2luZm9fZXh0cmFzKCoq
a3dhcmdzKToKKyAgICByZXR1cm4geyJ3ZWJraXRfcG9ydCI6IGt3YXJnc1sid2Via2l0X3BvcnQi
XX0KKworCiBjbGFzcyBXZWJLaXRCcm93c2VyKEJyb3dzZXIpOgogICAgICIiIkdlbmVyaWMgV2Vi
S2l0IGJyb3dzZXIgaXMgYmFja2VkIGJ5IFdlYktpdCdzIFdlYkRyaXZlciBpbXBsZW1lbnRhdGlv
biwKICAgICB3aGljaCBpcyBzdXBwbGllZCB0aHJvdWdoIGBgd3B0cnVubmVyLndlYmRyaXZlci5X
ZWJLaXREcml2ZXJTZXJ2ZXJgYC4KQEAgLTkxLDcgKzk5LDcgQEAgY2xhc3MgV2ViS2l0QnJvd3Nl
cihCcm93c2VyKToKICAgICAgICAgIyBUT0RPKGF0byk6IFRoaXMgb25seSBpbmRpY2F0ZXMgdGhl
IGRyaXZlciBpcyBhbGl2ZSwKICAgICAgICAgIyBhbmQgZG9lc24ndCBzYXkgYW55dGhpbmcgYWJv
dXQgd2hldGhlciBhIGJyb3dzZXIgc2Vzc2lvbgogICAgICAgICAjIGlzIGFjdGl2ZS4KLSAgICAg
ICAgcmV0dXJuIHNlbGYuc2VydmVyLmlzX2FsaXZlKCkKKyAgICAgICAgcmV0dXJuIHNlbGYuc2Vy
dmVyLmlzX2FsaXZlCiAKICAgICBkZWYgY2xlYW51cChzZWxmKToKICAgICAgICAgc2VsZi5zdG9w
KCkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9icm93c2Vycy93ZWJraXRndGtfbWluaWJyb3dz
ZXIucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3dwdHJ1bm5lci93cHRydW5uZXIvYnJvd3NlcnMvd2Via2l0Z3RrX21pbmlicm93c2VyLnB5Cm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLmQ3MzVmM2MwNzkyYTYzNTZjNjI3MDE0MzIwNWM1NWI3YzAyZWVmNDcKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvYnJvd3NlcnMvd2Via2l0Z3RrX21pbmlicm93c2Vy
LnB5CkBAIC0wLDAgKzEsNzkgQEAKK2Zyb20gLmJhc2UgaW1wb3J0IGdldF90aW1lb3V0X211bHRp
cGxpZXIsIG1heWJlX2FkZF9hcmdzLCBjZXJ0aWZpY2F0ZV9kb21haW5fbGlzdCAgIyBub3FhOiBG
NDAxCitmcm9tIC53ZWJraXQgaW1wb3J0IFdlYktpdEJyb3dzZXIKK2Zyb20gLi5leGVjdXRvcnMg
aW1wb3J0IGV4ZWN1dG9yX2t3YXJncyBhcyBiYXNlX2V4ZWN1dG9yX2t3YXJncworZnJvbSAuLmV4
ZWN1dG9ycy5leGVjdXRvcndlYmRyaXZlciBpbXBvcnQgKFdlYkRyaXZlclRlc3RoYXJuZXNzRXhl
Y3V0b3IsICAjIG5vcWE6IEY0MDEKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBXZWJEcml2ZXJSZWZUZXN0RXhlY3V0b3IpICAjIG5vcWE6IEY0MDEKK2Zyb20gLi5l
eGVjdXRvcnMuZXhlY3V0b3J3ZWJraXQgaW1wb3J0IFdlYktpdERyaXZlcldkc3BlY0V4ZWN1dG9y
ICAjIG5vcWE6IEY0MDEKKworX193cHRydW5uZXJfXyA9IHsicHJvZHVjdCI6ICJ3ZWJraXRndGtf
bWluaWJyb3dzZXIiLAorICAgICAgICAgICAgICAgICAiY2hlY2tfYXJncyI6ICJjaGVja19hcmdz
IiwKKyAgICAgICAgICAgICAgICAgImJyb3dzZXIiOiAiV2ViS2l0R1RLTWluaUJyb3dzZXIiLAor
ICAgICAgICAgICAgICAgICAiYnJvd3Nlcl9rd2FyZ3MiOiAiYnJvd3Nlcl9rd2FyZ3MiLAorICAg
ICAgICAgICAgICAgICAiZXhlY3V0b3IiOiB7InRlc3RoYXJuZXNzIjogIldlYkRyaXZlclRlc3Ro
YXJuZXNzRXhlY3V0b3IiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInJlZnRlc3Qi
OiAiV2ViRHJpdmVyUmVmVGVzdEV4ZWN1dG9yIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICJ3ZHNwZWMiOiAiV2ViS2l0RHJpdmVyV2RzcGVjRXhlY3V0b3IifSwKKyAgICAgICAgICAg
ICAgICAgImV4ZWN1dG9yX2t3YXJncyI6ICJleGVjdXRvcl9rd2FyZ3MiLAorICAgICAgICAgICAg
ICAgICAiZW52X2V4dHJhcyI6ICJlbnZfZXh0cmFzIiwKKyAgICAgICAgICAgICAgICAgImVudl9v
cHRpb25zIjogImVudl9vcHRpb25zIiwKKyAgICAgICAgICAgICAgICAgInJ1bl9pbmZvX2V4dHJh
cyI6ICJydW5faW5mb19leHRyYXMiLAorICAgICAgICAgICAgICAgICAidGltZW91dF9tdWx0aXBs
aWVyIjogImdldF90aW1lb3V0X211bHRpcGxpZXIifQorCisKK2RlZiBjaGVja19hcmdzKCoqa3dh
cmdzKToKKyAgICBwYXNzCisKKworZGVmIGJyb3dzZXJfa3dhcmdzKHRlc3RfdHlwZSwgcnVuX2lu
Zm9fZGF0YSwgY29uZmlnLCAqKmt3YXJncyk6CisgICAgIyBXb3JrYXJvdW5kIGZvciBodHRwczov
L2dpdGxhYi5nbm9tZS5vcmcvR05PTUUvbGlic291cC9pc3N1ZXMvMTcyCisgICAgd2ViZHJpdmVy
X3JlcXVpcmVkX2FyZ3MgPSBbIi0taG9zdD0xMjcuMC4wLjEiXQorICAgIHdlYmRyaXZlcl9hcmdz
ID0gbWF5YmVfYWRkX2FyZ3Mod2ViZHJpdmVyX3JlcXVpcmVkX2FyZ3MsIGt3YXJncy5nZXQoIndl
YmRyaXZlcl9hcmdzIikpCisgICAgcmV0dXJuIHsiYmluYXJ5Ijoga3dhcmdzWyJiaW5hcnkiXSwK
KyAgICAgICAgICAgICJ3ZWJkcml2ZXJfYmluYXJ5Ijoga3dhcmdzWyJ3ZWJkcml2ZXJfYmluYXJ5
Il0sCisgICAgICAgICAgICAid2ViZHJpdmVyX2FyZ3MiOiB3ZWJkcml2ZXJfYXJnc30KKworCitk
ZWYgY2FwYWJpbGl0aWVzKHNlcnZlcl9jb25maWcsICoqa3dhcmdzKToKKyAgICBicm93c2VyX3Jl
cXVpcmVkX2FyZ3MgPSBbIi0tYXV0b21hdGlvbiIsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIi0tamF2YXNjcmlwdC1jYW4tb3Blbi13aW5kb3dzLWF1dG9tYXRpY2FsbHk9dHJ1ZSIsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIi0tZW5hYmxlLXhzcy1hdWRpdG9yPWZhbHNlIiwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAiLS1lbmFibGUtbWVkaWEtY2FwYWJpbGl0aWVz
PXRydWUiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICItLWVuYWJsZS1lbmNyeXB0ZWQt
bWVkaWE9dHJ1ZSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIi0tZW5hYmxlLW1lZGlh
LXN0cmVhbT10cnVlIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAiLS1lbmFibGUtbW9j
ay1jYXB0dXJlLWRldmljZXM9dHJ1ZSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIi0t
ZW5hYmxlLXdlYmF1ZGlvPXRydWUiXQorICAgIGFyZ3MgPSBrd2FyZ3MuZ2V0KCJiaW5hcnlfYXJn
cyIsIFtdKQorICAgIGFyZ3MgPSBtYXliZV9hZGRfYXJncyhicm93c2VyX3JlcXVpcmVkX2FyZ3Ms
IGFyZ3MpCisgICAgcmV0dXJuIHsKKyAgICAgICAgImJyb3dzZXJOYW1lIjogIk1pbmlCcm93c2Vy
IiwKKyAgICAgICAgIndlYmtpdGd0azpicm93c2VyT3B0aW9ucyI6IHsKKyAgICAgICAgICAgICJi
aW5hcnkiOiBrd2FyZ3NbImJpbmFyeSJdLAorICAgICAgICAgICAgImFyZ3MiOiBhcmdzLAorICAg
ICAgICAgICAgImNlcnRpZmljYXRlcyI6IGNlcnRpZmljYXRlX2RvbWFpbl9saXN0KHNlcnZlcl9j
b25maWcuZG9tYWluc19zZXQsIGt3YXJnc1siaG9zdF9jZXJ0X3BhdGgiXSl9fQorCisKK2RlZiBl
eGVjdXRvcl9rd2FyZ3ModGVzdF90eXBlLCBzZXJ2ZXJfY29uZmlnLCBjYWNoZV9tYW5hZ2VyLCBy
dW5faW5mb19kYXRhLAorICAgICAgICAgICAgICAgICAgICAqKmt3YXJncyk6CisgICAgZXhlY3V0
b3Jfa3dhcmdzID0gYmFzZV9leGVjdXRvcl9rd2FyZ3ModGVzdF90eXBlLCBzZXJ2ZXJfY29uZmln
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhY2hlX21hbmFn
ZXIsIHJ1bl9pbmZvX2RhdGEsICoqa3dhcmdzKQorICAgIGV4ZWN1dG9yX2t3YXJnc1siY2xvc2Vf
YWZ0ZXJfZG9uZSJdID0gVHJ1ZQorICAgIGV4ZWN1dG9yX2t3YXJnc1siY2FwYWJpbGl0aWVzIl0g
PSBjYXBhYmlsaXRpZXMoc2VydmVyX2NvbmZpZywgKiprd2FyZ3MpCisgICAgcmV0dXJuIGV4ZWN1
dG9yX2t3YXJncworCisKK2RlZiBlbnZfZXh0cmFzKCoqa3dhcmdzKToKKyAgICByZXR1cm4gW10K
KworCitkZWYgZW52X29wdGlvbnMoKToKKyAgICByZXR1cm4ge30KKworCitkZWYgcnVuX2luZm9f
ZXh0cmFzKCoqa3dhcmdzKToKKyAgICByZXR1cm4geyJ3ZWJraXRfcG9ydCI6ICJndGsifQorCisK
K2NsYXNzIFdlYktpdEdUS01pbmlCcm93c2VyKFdlYktpdEJyb3dzZXIpOgorICAgIGRlZiBfX2lu
aXRfXyhzZWxmLCBsb2dnZXIsIGJpbmFyeT1Ob25lLCB3ZWJkcml2ZXJfYmluYXJ5PU5vbmUsCisg
ICAgICAgICAgICAgICAgIHdlYmRyaXZlcl9hcmdzPU5vbmUpOgorICAgICAgICBXZWJLaXRCcm93
c2VyLl9faW5pdF9fKHNlbGYsIGxvZ2dlciwgYmluYXJ5LCB3ZWJkcml2ZXJfYmluYXJ5LAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdlYmRyaXZlcl9hcmdzKQpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5u
ZXIvd3B0cnVubmVyL2NvbmZpZy5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9jb25maWcucHkKaW5kZXggNWJk
M2Y0NjdmM2VkYTVmNTY0Y2E1YzUxNTQwZjIzYjI1MjFhMmE1OC4uZTdmOWQ3YjhjYzk4N2JmZGZl
Y2RhNjU0OGFjZjgyZDFiZTNhMjhkNCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2NvbmZpZy5w
eQorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3dwdHJ1bm5lci93cHRydW5uZXIvY29uZmlnLnB5CkBAIC0xLDQgKzEsNCBAQAotaW1wb3J0IENv
bmZpZ1BhcnNlcgorZnJvbSBzaXgubW92ZXMuY29uZmlncGFyc2VyIGltcG9ydCBTYWZlQ29uZmln
UGFyc2VyCiBpbXBvcnQgb3MKIGltcG9ydCBzeXMKIGZyb20gY29sbGVjdGlvbnMgaW1wb3J0IE9y
ZGVyZWREaWN0CkBAIC0yMCw3ICsyMCw3IEBAIGNsYXNzIENvbmZpZ0RpY3QoZGljdCk6CiBkZWYg
cmVhZChjb25maWdfcGF0aCk6CiAgICAgY29uZmlnX3BhdGggPSBvcy5wYXRoLmFic3BhdGgoY29u
ZmlnX3BhdGgpCiAgICAgY29uZmlnX3Jvb3QgPSBvcy5wYXRoLnNwbGl0KGNvbmZpZ19wYXRoKVsw
XQotICAgIHBhcnNlciA9IENvbmZpZ1BhcnNlci5TYWZlQ29uZmlnUGFyc2VyKCkKKyAgICBwYXJz
ZXIgPSBTYWZlQ29uZmlnUGFyc2VyKCkKICAgICBzdWNjZXNzID0gcGFyc2VyLnJlYWQoY29uZmln
X3BhdGgpCiAgICAgYXNzZXJ0IGNvbmZpZ19wYXRoIGluIHN1Y2Nlc3MsIHN1Y2Nlc3MKIApAQCAt
MzAsNyArMzAsNyBAQCBkZWYgcmVhZChjb25maWdfcGF0aCk6CiAgICAgZm9yIHNlY3Rpb24gaW4g
cGFyc2VyLnNlY3Rpb25zKCk6CiAgICAgICAgIHJ2W3NlY3Rpb25dID0gQ29uZmlnRGljdChjb25m
aWdfcm9vdCkKICAgICAgICAgZm9yIGtleSBpbiBwYXJzZXIub3B0aW9ucyhzZWN0aW9uKToKLSAg
ICAgICAgICAgIHJ2W3NlY3Rpb25dW2tleV0gPSBwYXJzZXIuZ2V0KHNlY3Rpb24sIGtleSwgRmFs
c2UsIHN1Ym5zKQorICAgICAgICAgICAgcnZbc2VjdGlvbl1ba2V5XSA9IHBhcnNlci5nZXQoc2Vj
dGlvbiwga2V5LCByYXc9RmFsc2UsIHZhcnM9c3VibnMpCiAKICAgICByZXR1cm4gcnYKIApkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy93cHRydW5uZXIvd3B0cnVubmVyL2Vudmlyb25tZW50LnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2Vudmly
b25tZW50LnB5CmluZGV4IGJhODlmYjlmZTc2M2E3NTIwODNmMWIzZWI2NmE4MWE2ODM3M2I2YTQu
LmU3OWFlMzc1MDY0N2Y4OGJiYTQ0NzAzMTgxYzIwODIyOTgwMGY2NTggMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVy
L3dwdHJ1bm5lci9lbnZpcm9ubWVudC5weQorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvZW52aXJvbm1lbnQu
cHkKQEAgLTgsMTIgKzgsMTYgQEAgaW1wb3J0IHRpbWUKIAogZnJvbSBtb3psb2cgaW1wb3J0IGdl
dF9kZWZhdWx0X2xvZ2dlciwgaGFuZGxlcnMsIHByb3h5CiAKLWZyb20gd3B0bG9nZ2luZyBpbXBv
cnQgTG9nTGV2ZWxSZXdyaXRlcgotZnJvbSB3cHRzZXJ2ZS5oYW5kbGVycyBpbXBvcnQgU3RyaW5n
SGFuZGxlcgorZnJvbSAud3B0bG9nZ2luZyBpbXBvcnQgTG9nTGV2ZWxSZXdyaXRlcgogCiBoZXJl
ID0gb3MucGF0aC5zcGxpdChfX2ZpbGVfXylbMF0KIHJlcG9fcm9vdCA9IG9zLnBhdGguYWJzcGF0
aChvcy5wYXRoLmpvaW4oaGVyZSwgb3MucGFyZGlyLCBvcy5wYXJkaXIsIG9zLnBhcmRpcikpCiAK
K3N5cy5wYXRoLmluc2VydCgwLCByZXBvX3Jvb3QpCitmcm9tIHRvb2xzIGltcG9ydCBsb2NhbHBh
dGhzICAjIG5vcWE6IEY0MDEKKworZnJvbSB3cHRzZXJ2ZS5oYW5kbGVycyBpbXBvcnQgU3RyaW5n
SGFuZGxlcgorCiBzZXJ2ZSA9IE5vbmUKIAogCkBAIC00NiwxMyArNTAsMTQgQEAgY2xhc3MgVGVz
dEVudmlyb25tZW50RXJyb3IoRXhjZXB0aW9uKToKIAogCiBjbGFzcyBUZXN0RW52aXJvbm1lbnQo
b2JqZWN0KToKLSAgICBkZWYgX19pbml0X18oc2VsZiwgdGVzdF9wYXRocywgcGF1c2VfYWZ0ZXJf
dGVzdCwgZGVidWdfaW5mbywgb3B0aW9ucywgc3NsX2NvbmZpZywgZW52X2V4dHJhcyk6Ci0gICAg
ICAgICIiIkNvbnRleHQgbWFuYWdlciB0aGF0IG93bnMgdGhlIHRlc3QgZW52aXJvbm1lbnQgaS5l
LiB0aGUgaHR0cCBhbmQKLSAgICAgICAgd2Vic29ja2V0cyBzZXJ2ZXJzIiIiCisgICAgIiIiQ29u
dGV4dCBtYW5hZ2VyIHRoYXQgb3ducyB0aGUgdGVzdCBlbnZpcm9ubWVudCBpLmUuIHRoZSBodHRw
IGFuZAorICAgIHdlYnNvY2tldHMgc2VydmVycyIiIgorICAgIGRlZiBfX2luaXRfXyhzZWxmLCB0
ZXN0X3BhdGhzLCB0ZXN0aGFybmVzc190aW1lb3V0X211bHRpcGxlciwgcGF1c2VfYWZ0ZXJfdGVz
dCwgZGVidWdfaW5mbywgb3B0aW9ucywgc3NsX2NvbmZpZywgZW52X2V4dHJhcyk6CiAgICAgICAg
IHNlbGYudGVzdF9wYXRocyA9IHRlc3RfcGF0aHMKICAgICAgICAgc2VsZi5zZXJ2ZXIgPSBOb25l
CiAgICAgICAgIHNlbGYuY29uZmlnX2N0eCA9IE5vbmUKICAgICAgICAgc2VsZi5jb25maWcgPSBO
b25lCisgICAgICAgIHNlbGYudGVzdGhhcm5lc3NfdGltZW91dF9tdWx0aXBsZXIgPSB0ZXN0aGFy
bmVzc190aW1lb3V0X211bHRpcGxlcgogICAgICAgICBzZWxmLnBhdXNlX2FmdGVyX3Rlc3QgPSBw
YXVzZV9hZnRlcl90ZXN0CiAgICAgICAgIHNlbGYudGVzdF9zZXJ2ZXJfcG9ydCA9IG9wdGlvbnMu
cG9wKCJ0ZXN0X3NlcnZlcl9wb3J0IiwgVHJ1ZSkKICAgICAgICAgc2VsZi5kZWJ1Z19pbmZvID0g
ZGVidWdfaW5mbwpAQCAtMTY5LDcgKzE3NCwxMCBAQCBjbGFzcyBUZXN0RW52aXJvbm1lbnQob2Jq
ZWN0KToKICAgICAgICAgZm9yIHBhdGgsIGZvcm1hdF9hcmdzLCBjb250ZW50X3R5cGUsIHJvdXRl
IGluIFsKICAgICAgICAgICAgICAgICAoInRlc3RoYXJuZXNzX3J1bm5lci5odG1sIiwge30sICJ0
ZXh0L2h0bWwiLCAiL3Rlc3RoYXJuZXNzX3J1bm5lci5odG1sIiksCiAgICAgICAgICAgICAgICAg
KHNlbGYub3B0aW9ucy5nZXQoInRlc3RoYXJuZXNzcmVwb3J0IiwgInRlc3RoYXJuZXNzcmVwb3J0
LmpzIiksCi0gICAgICAgICAgICAgICAgIHsib3V0cHV0Ijogc2VsZi5wYXVzZV9hZnRlcl90ZXN0
fSwgInRleHQvamF2YXNjcmlwdDtjaGFyc2V0PXV0ZjgiLAorICAgICAgICAgICAgICAgICB7Im91
dHB1dCI6IHNlbGYucGF1c2VfYWZ0ZXJfdGVzdCwKKyAgICAgICAgICAgICAgICAgICJ0aW1lb3V0
X211bHRpcGxpZXIiOiBzZWxmLnRlc3RoYXJuZXNzX3RpbWVvdXRfbXVsdGlwbGVyLAorICAgICAg
ICAgICAgICAgICAgImV4cGxpY2l0X3RpbWVvdXQiOiAidHJ1ZSIgaWYgc2VsZi5kZWJ1Z19pbmZv
IGlzIG5vdCBOb25lIGVsc2UgImZhbHNlIn0sCisgICAgICAgICAgICAgICAgICJ0ZXh0L2phdmFz
Y3JpcHQ7Y2hhcnNldD11dGY4IiwKICAgICAgICAgICAgICAgICAgIi9yZXNvdXJjZXMvdGVzdGhh
cm5lc3NyZXBvcnQuanMiKV06CiAgICAgICAgICAgICBwYXRoID0gb3MucGF0aC5ub3JtcGF0aChv
cy5wYXRoLmpvaW4oaGVyZSwgcGF0aCkpCiAgICAgICAgICAgICAjIE5vdGUgdGhhdCAuaGVhZGVy
cy4gZmlsZXMgZG9uJ3QgYXBwbHkgdG8gc3RhdGljIHJvdXRlcywgc28gd2UgbmVlZCB0bwpAQCAt
MTk4LDExICsyMDYsMTQgQEAgY2xhc3MgVGVzdEVudmlyb25tZW50KG9iamVjdCk6CiAKICAgICBk
ZWYgZW5zdXJlX3N0YXJ0ZWQoc2VsZik6CiAgICAgICAgICMgUGF1c2UgZm9yIGEgd2hpbGUgdG8g
ZW5zdXJlIHRoYXQgdGhlIHNlcnZlciBoYXMgYSBjaGFuY2UgdG8gc3RhcnQKLSAgICAgICAgZm9y
IF8gaW4geHJhbmdlKDYwKToKKyAgICAgICAgdG90YWxfc2xlZXBfc2VjcyA9IDMwCisgICAgICAg
IGVhY2hfc2xlZXBfc2VjcyA9IDAuNQorICAgICAgICBlbmRfdGltZSA9IHRpbWUudGltZSgpICsg
dG90YWxfc2xlZXBfc2VjcworICAgICAgICB3aGlsZSB0aW1lLnRpbWUoKSA8IGVuZF90aW1lOgog
ICAgICAgICAgICAgZmFpbGVkID0gc2VsZi50ZXN0X3NlcnZlcnMoKQogICAgICAgICAgICAgaWYg
bm90IGZhaWxlZDoKICAgICAgICAgICAgICAgICByZXR1cm4KLSAgICAgICAgICAgIHRpbWUuc2xl
ZXAoMC41KQorICAgICAgICAgICAgdGltZS5zbGVlcChlYWNoX3NsZWVwX3NlY3MpCiAgICAgICAg
IHJhaXNlIEVudmlyb25tZW50RXJyb3IoIlNlcnZlcnMgZmFpbGVkIHRvIHN0YXJ0OiAlcyIgJQog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIsICIuam9pbigiJXM6JXMiICUgaXRlbSBm
b3IgaXRlbSBpbiBmYWlsZWQpKQogCkBAIC0yMTMsNiArMjI0LDcgQEAgY2xhc3MgVGVzdEVudmly
b25tZW50KG9iamVjdCk6CiAgICAgICAgICAgICBmb3IgcG9ydCwgc2VydmVyIGluIHNlcnZlcnM6
CiAgICAgICAgICAgICAgICAgaWYgc2VsZi50ZXN0X3NlcnZlcl9wb3J0OgogICAgICAgICAgICAg
ICAgICAgICBzID0gc29ja2V0LnNvY2tldCgpCisgICAgICAgICAgICAgICAgICAgIHMuc2V0dGlt
ZW91dCgwLjEpCiAgICAgICAgICAgICAgICAgICAgIHRyeToKICAgICAgICAgICAgICAgICAgICAg
ICAgIHMuY29ubmVjdCgoaG9zdCwgcG9ydCkpCiAgICAgICAgICAgICAgICAgICAgIGV4Y2VwdCBz
b2NrZXQuZXJyb3I6CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvZXhlY3V0b3JzL19faW5pdF9f
LnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93
cHRydW5uZXIvd3B0cnVubmVyL2V4ZWN1dG9ycy9fX2luaXRfXy5weQppbmRleCBhNTgwNzMwZGI4
MmQ4MzI1MTcyMTJhMTc4OGI4OTQ0MTlhMzAwZjM4Li5iZjgyOWQ5M2U5NjhkNGE2YmNjZmE2Nzk4
ZmI5NzRiZjk4ZmY3ZDYwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvZXhlY3V0b3JzL19faW5p
dF9fLnB5CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9leGVjdXRvcnMvX19pbml0X18ucHkKQEAgLTEsNSAr
MSw1IEBACiAjIGZsYWtlODogbm9xYSAobm90IGlkZWFsLCBidXQgbmljZXIgdGhhbiBhZGRpbmcg
bm9xYTogRjQwMSB0byBldmVyeSBsaW5lISkKLWZyb20gYmFzZSBpbXBvcnQgKGV4ZWN1dG9yX2t3
YXJncywKLSAgICAgICAgICAgICAgICAgIHRlc3RoYXJuZXNzX3Jlc3VsdF9jb252ZXJ0ZXIsCi0g
ICAgICAgICAgICAgICAgICByZWZ0ZXN0X3Jlc3VsdF9jb252ZXJ0ZXIsCi0gICAgICAgICAgICAg
ICAgICBUZXN0RXhlY3V0b3IpCitmcm9tIC5iYXNlIGltcG9ydCAoZXhlY3V0b3Jfa3dhcmdzLAor
ICAgICAgICAgICAgICAgICAgIHRlc3RoYXJuZXNzX3Jlc3VsdF9jb252ZXJ0ZXIsCisgICAgICAg
ICAgICAgICAgICAgcmVmdGVzdF9yZXN1bHRfY29udmVydGVyLAorICAgICAgICAgICAgICAgICAg
IFRlc3RFeGVjdXRvcikKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9leGVjdXRvcnMvYmFzZS5w
eSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0
cnVubmVyL3dwdHJ1bm5lci9leGVjdXRvcnMvYmFzZS5weQppbmRleCAxZGM5NjJjZmIwODM1ZGM0
YTViOWE2ZDdkNzYwNDA5YTdkZjEyMjA0Li43MTNkODUwMDExMzVkMGNkZjIzYzdhMDY1ODNiZDAz
ZDQzNTVkNThlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvZXhlY3V0b3JzL2Jhc2UucHkKKysr
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRy
dW5uZXIvd3B0cnVubmVyL2V4ZWN1dG9ycy9iYXNlLnB5CkBAIC0xLDIxICsxLDIxIEBACitpbXBv
cnQgYmFzZTY0CiBpbXBvcnQgaGFzaGxpYgotaW1wb3J0IGh0dHBsaWIKK2Zyb20gc2l4Lm1vdmVz
Lmh0dHBfY2xpZW50IGltcG9ydCBIVFRQQ29ubmVjdGlvbgoraW1wb3J0IGlvCitpbXBvcnQganNv
bgogaW1wb3J0IG9zCiBpbXBvcnQgdGhyZWFkaW5nCiBpbXBvcnQgdHJhY2ViYWNrCiBpbXBvcnQg
c29ja2V0Ci1pbXBvcnQgdXJscGFyc2UKK2ltcG9ydCBzeXMKK2Zyb20gc2l4Lm1vdmVzLnVybGxp
Yi5wYXJzZSBpbXBvcnQgdXJsam9pbiwgdXJsc3BsaXQsIHVybHVuc3BsaXQKIGZyb20gYWJjIGlt
cG9ydCBBQkNNZXRhLCBhYnN0cmFjdG1ldGhvZAogCiBmcm9tIC4udGVzdHJ1bm5lciBpbXBvcnQg
U3RvcAotZnJvbSBwcm90b2NvbCBpbXBvcnQgUHJvdG9jb2wsIEJhc2VQcm90b2NvbFBhcnQKK2Zy
b20gLnByb3RvY29sIGltcG9ydCBQcm90b2NvbCwgQmFzZVByb3RvY29sUGFydAogCiBoZXJlID0g
b3MucGF0aC5zcGxpdChfX2ZpbGVfXylbMF0KIAotIyBFeHRyYSB0aW1lb3V0IHRvIHVzZSBhZnRl
ciBpbnRlcm5hbCB0ZXN0IHRpbWVvdXQgYXQgd2hpY2ggdGhlIGhhcm5lc3MKLSMgc2hvdWxkIGZv
cmNlIGEgdGltZW91dAotZXh0cmFfdGltZW91dCA9IDUgICMgc2Vjb25kcwotCiAKIGRlZiBleGVj
dXRvcl9rd2FyZ3ModGVzdF90eXBlLCBzZXJ2ZXJfY29uZmlnLCBjYWNoZV9tYW5hZ2VyLCBydW5f
aW5mb19kYXRhLAogICAgICAgICAgICAgICAgICAgICAqKmt3YXJncyk6CkBAIC00NiwyMSArNDYs
MjMgQEAgZGVmIHN0cmlwX3NlcnZlcih1cmwpOgogCiAgICAgZS5nLiBodHRwOi8vZXhhbXBsZS5v
cmc6ODAwMC90ZXN0cz9pZD0xIzIgYmVjb21lcyAvdGVzdHM/aWQ9MSMyIiIiCiAKLSAgICB1cmxf
cGFydHMgPSBsaXN0KHVybHBhcnNlLnVybHNwbGl0KHVybCkpCisgICAgdXJsX3BhcnRzID0gbGlz
dCh1cmxzcGxpdCh1cmwpKQogICAgIHVybF9wYXJ0c1swXSA9ICIiCiAgICAgdXJsX3BhcnRzWzFd
ID0gIiIKLSAgICByZXR1cm4gdXJscGFyc2UudXJsdW5zcGxpdCh1cmxfcGFydHMpCisgICAgcmV0
dXJuIHVybHVuc3BsaXQodXJsX3BhcnRzKQogCiAKIGNsYXNzIFRlc3RoYXJuZXNzUmVzdWx0Q29u
dmVydGVyKG9iamVjdCk6CiAgICAgaGFybmVzc19jb2RlcyA9IHswOiAiT0siLAogICAgICAgICAg
ICAgICAgICAgICAgMTogIkVSUk9SIiwKLSAgICAgICAgICAgICAgICAgICAgIDI6ICJUSU1FT1VU
In0KKyAgICAgICAgICAgICAgICAgICAgIDI6ICJUSU1FT1VUIiwKKyAgICAgICAgICAgICAgICAg
ICAgIDM6ICJQUkVDT05ESVRJT05fRkFJTEVEIn0KIAogICAgIHRlc3RfY29kZXMgPSB7MDogIlBB
U1MiLAogICAgICAgICAgICAgICAgICAgMTogIkZBSUwiLAogICAgICAgICAgICAgICAgICAgMjog
IlRJTUVPVVQiLAotICAgICAgICAgICAgICAgICAgMzogIk5PVFJVTiJ9CisgICAgICAgICAgICAg
ICAgICAzOiAiTk9UUlVOIiwKKyAgICAgICAgICAgICAgICAgIDQ6ICJQUkVDT05ESVRJT05fRkFJ
TEVEIn0KIAogICAgIGRlZiBfX2NhbGxfXyhzZWxmLCB0ZXN0LCByZXN1bHQsIGV4dHJhPU5vbmUp
OgogICAgICAgICAiIiJDb252ZXJ0IGEgSlNPTiByZXN1bHQgaW50byBhIChUZXN0UmVzdWx0LCBb
U3VidGVzdFJlc3VsdF0pIHR1cGxlIiIiCkBAIC03NiwxMSArNzgsMzQgQEAgY2xhc3MgVGVzdGhh
cm5lc3NSZXN1bHRDb252ZXJ0ZXIob2JqZWN0KToKIHRlc3RoYXJuZXNzX3Jlc3VsdF9jb252ZXJ0
ZXIgPSBUZXN0aGFybmVzc1Jlc3VsdENvbnZlcnRlcigpCiAKIAorZGVmIGhhc2hfc2NyZWVuc2hv
dChkYXRhKToKKyAgICAiIiJDb21wdXRlcyB0aGUgc2hhMSBjaGVja3N1bSBvZiBhIGJhc2U2NC1l
bmNvZGVkIHNjcmVlbnNob3QuIiIiCisgICAgcmV0dXJuIGhhc2hsaWIuc2hhMShiYXNlNjQuYjY0
ZGVjb2RlKGRhdGEpKS5oZXhkaWdlc3QoKQorCisKK2RlZiBfZW5zdXJlX2hhc2hfaW5fcmVmdGVz
dF9zY3JlZW5zaG90cyhleHRyYSk6CisgICAgIiIiTWFrZSBzdXJlIHJlZnRlc3Rfc2NyZWVuc2hv
dHMgaGF2ZSBoYXNoZXMuCisKKyAgICBNYXJpb25ldHRlIGludGVybmFsIHJlZnRlc3QgcnVubmVy
IGRvZXMgbm90IHByb2R1Y2UgaGFzaGVzLgorICAgICIiIgorICAgIGxvZ19kYXRhID0gZXh0cmEu
Z2V0KCJyZWZ0ZXN0X3NjcmVlbnNob3RzIikKKyAgICBpZiBub3QgbG9nX2RhdGE6CisgICAgICAg
IHJldHVybgorICAgIGZvciBpdGVtIGluIGxvZ19kYXRhOgorICAgICAgICBpZiB0eXBlKGl0ZW0p
ICE9IGRpY3Q6CisgICAgICAgICAgICAjIFNraXAgcmVsYXRpb24gc3RyaW5ncy4KKyAgICAgICAg
ICAgIGNvbnRpbnVlCisgICAgICAgIGlmICJoYXNoIiBub3QgaW4gaXRlbToKKyAgICAgICAgICAg
IGl0ZW1bImhhc2giXSA9IGhhc2hfc2NyZWVuc2hvdChpdGVtWyJzY3JlZW5zaG90Il0pCisKKwog
ZGVmIHJlZnRlc3RfcmVzdWx0X2NvbnZlcnRlcihzZWxmLCB0ZXN0LCByZXN1bHQpOgorICAgIGV4
dHJhID0gcmVzdWx0LmdldCgiZXh0cmEiLCB7fSkKKyAgICBfZW5zdXJlX2hhc2hfaW5fcmVmdGVz
dF9zY3JlZW5zaG90cyhleHRyYSkKICAgICByZXR1cm4gKHRlc3QucmVzdWx0X2NscygKICAgICAg
ICAgcmVzdWx0WyJzdGF0dXMiXSwKICAgICAgICAgcmVzdWx0WyJtZXNzYWdlIl0sCi0gICAgICAg
IGV4dHJhPXJlc3VsdC5nZXQoImV4dHJhIiwge30pLAorICAgICAgICBleHRyYT1leHRyYSwKICAg
ICAgICAgc3RhY2s9cmVzdWx0LmdldCgic3RhY2siKSksIFtdKQogCiAKQEAgLTEwMiwyNyArMTI3
LDg2IEBAIGNsYXNzIEV4ZWN1dG9yRXhjZXB0aW9uKEV4Y2VwdGlvbik6CiAgICAgICAgIHNlbGYu
bWVzc2FnZSA9IG1lc3NhZ2UKIAogCitjbGFzcyBUaW1lZFJ1bm5lcihvYmplY3QpOgorICAgIGRl
ZiBfX2luaXRfXyhzZWxmLCBsb2dnZXIsIGZ1bmMsIHByb3RvY29sLCB1cmwsIHRpbWVvdXQsIGV4
dHJhX3RpbWVvdXQpOgorICAgICAgICBzZWxmLmZ1bmMgPSBmdW5jCisgICAgICAgIHNlbGYucmVz
dWx0ID0gTm9uZQorICAgICAgICBzZWxmLnByb3RvY29sID0gcHJvdG9jb2wKKyAgICAgICAgc2Vs
Zi51cmwgPSB1cmwKKyAgICAgICAgc2VsZi50aW1lb3V0ID0gdGltZW91dAorICAgICAgICBzZWxm
LmV4dHJhX3RpbWVvdXQgPSBleHRyYV90aW1lb3V0CisgICAgICAgIHNlbGYucmVzdWx0X2ZsYWcg
PSB0aHJlYWRpbmcuRXZlbnQoKQorCisgICAgZGVmIHJ1bihzZWxmKToKKyAgICAgICAgaWYgc2Vs
Zi5zZXRfdGltZW91dCgpIGlzIFN0b3A6CisgICAgICAgICAgICByZXR1cm4gU3RvcAorCisgICAg
ICAgIGlmIHNlbGYuYmVmb3JlX3J1bigpIGlzIFN0b3A6CisgICAgICAgICAgICByZXR1cm4gU3Rv
cAorCisgICAgICAgIGV4ZWN1dG9yID0gdGhyZWFkaW5nLlRocmVhZCh0YXJnZXQ9c2VsZi5ydW5f
ZnVuYykKKyAgICAgICAgZXhlY3V0b3Iuc3RhcnQoKQorCisgICAgICAgICMgQWRkIHR3aWNlIHRo
ZSB0aW1lb3V0IG11bHRpcGxpZXIgc2luY2UgdGhlIGNhbGxlZCBmdW5jdGlvbiBpcyBleHBlY3Rl
ZCB0bworICAgICAgICAjIHdhaXQgYXQgbGVhc3Qgc2VsZi50aW1lb3V0ICsgc2VsZi5leHRyYV90
aW1lb3V0IGFuZCB0aGlzIGdpdmVzIHNvbWUgbGVld2F5CisgICAgICAgIGZpbmlzaGVkID0gc2Vs
Zi5yZXN1bHRfZmxhZy53YWl0KHNlbGYudGltZW91dCArIDIgKiBzZWxmLmV4dHJhX3RpbWVvdXQp
CisgICAgICAgIGlmIHNlbGYucmVzdWx0IGlzIE5vbmU6CisgICAgICAgICAgICBpZiBmaW5pc2hl
ZDoKKyAgICAgICAgICAgICAgICAjIGZsYWcgaXMgVHJ1ZSB1bmxlc3Mgd2UgdGltZW91dDsgdGhp
cyAqc2hvdWxkbid0KiBoYXBwZW4sIGJ1dAorICAgICAgICAgICAgICAgICMgaXQgY2FuIGlmIHNl
bGYucnVuX2Z1bmMgZmFpbHMgdG8gc2V0IHNlbGYucmVzdWx0IGR1ZSB0byByYWlzaW5nCisgICAg
ICAgICAgICAgICAgc2VsZi5yZXN1bHQgPSBGYWxzZSwgKCJJTlRFUk5BTC1FUlJPUiIsICIlcy5y
dW5fZnVuYyBkaWRuJ3Qgc2V0IGEgcmVzdWx0IiAlCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHNlbGYuX19jbGFzc19fLl9fbmFtZV9fKQorICAgICAgICAgICAgZWxzZToK
KyAgICAgICAgICAgICAgICBtZXNzYWdlID0gIkV4ZWN1dG9yIGhpdCBleHRlcm5hbCB0aW1lb3V0
ICh0aGlzIG1heSBpbmRpY2F0ZSBhIGhhbmcpXG4iCisgICAgICAgICAgICAgICAgIyBnZXQgYSB0
cmFjZWJhY2sgZm9yIHRoZSBjdXJyZW50IHN0YWNrIG9mIHRoZSBleGVjdXRvciB0aHJlYWQKKyAg
ICAgICAgICAgICAgICBtZXNzYWdlICs9ICIiLmpvaW4odHJhY2ViYWNrLmZvcm1hdF9zdGFjayhz
eXMuX2N1cnJlbnRfZnJhbWVzKClbZXhlY3V0b3IuaWRlbnRdKSkKKyAgICAgICAgICAgICAgICBz
ZWxmLnJlc3VsdCA9IEZhbHNlLCAoIkVYVEVSTkFMLVRJTUVPVVQiLCBtZXNzYWdlKQorICAgICAg
ICBlbGlmIHNlbGYucmVzdWx0WzFdIGlzIE5vbmU6CisgICAgICAgICAgICAjIFdlIGRpZG4ndCBn
ZXQgYW55IGRhdGEgYmFjayBmcm9tIHRoZSB0ZXN0LCBzbyBjaGVjayBpZiB0aGUKKyAgICAgICAg
ICAgICMgYnJvd3NlciBpcyBzdGlsbCByZXNwb25zaXZlCisgICAgICAgICAgICBpZiBzZWxmLnBy
b3RvY29sLmlzX2FsaXZlOgorICAgICAgICAgICAgICAgIHNlbGYucmVzdWx0ID0gRmFsc2UsICgi
SU5URVJOQUwtRVJST1IiLCBOb25lKQorICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAg
ICBzZWxmLmxvZ2dlci5pbmZvKCJCcm93c2VyIG5vdCByZXNwb25kaW5nLCBzZXR0aW5nIHN0YXR1
cyB0byBDUkFTSCIpCisgICAgICAgICAgICAgICAgc2VsZi5yZXN1bHQgPSBGYWxzZSwgKCJDUkFT
SCIsIE5vbmUpCisKKyAgICAgICAgcmV0dXJuIHNlbGYucmVzdWx0CisKKyAgICBkZWYgc2V0X3Rp
bWVvdXQoc2VsZik6CisgICAgICAgIHJhaXNlIE5vdEltcGxlbWVudGVkRXJyb3IKKworICAgIGRl
ZiBiZWZvcmVfcnVuKHNlbGYpOgorICAgICAgICBwYXNzCisKKyAgICBkZWYgcnVuX2Z1bmMoc2Vs
Zik6CisgICAgICAgIHJhaXNlIE5vdEltcGxlbWVudGVkRXJyb3IKKworCiBjbGFzcyBUZXN0RXhl
Y3V0b3Iob2JqZWN0KToKKyAgICAiIiJBYnN0cmFjdCBCYXNlIGNsYXNzIGZvciBvYmplY3QgdGhh
dCBhY3R1YWxseSBleGVjdXRlcyB0aGUgdGVzdHMgaW4gYQorICAgIHNwZWNpZmljIGJyb3dzZXIu
IFR5cGljYWxseSB0aGVyZSB3aWxsIGJlIGEgZGlmZmVyZW50IFRlc3RFeGVjdXRvcgorICAgIHN1
YmNsYXNzIGZvciBlYWNoIHRlc3QgdHlwZSBhbmQgbWV0aG9kIG9mIGV4ZWN1dGluZyB0ZXN0cy4K
KworICAgIDpwYXJhbSBicm93c2VyOiBFeGVjdXRvckJyb3dzZXIgaW5zdGFuY2UgcHJvdmlkaW5n
IHByb3BlcnRpZXMgb2YgdGhlCisgICAgICAgICAgICAgICAgICAgIGJyb3dzZXIgdGhhdCB3aWxs
IGJlIHRlc3RlZC4KKyAgICA6cGFyYW0gc2VydmVyX2NvbmZpZzogRGljdGlvbmFyeSBvZiB3cHRz
ZXJ2ZSBzZXJ2ZXIgY29uZmlndXJhdGlvbiBvZiB0aGUKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgZm9ybSBzdG9yZWQgaW4gVGVzdEVudmlyb25tZW50LmNvbmZpZworICAgIDpwYXJhbSB0aW1l
b3V0X211bHRpcGxpZXI6IE11bHRpcGxpZXIgcmVsYXRpdmUgdG8gYmFzZSB0aW1lb3V0IHRvIHVz
ZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdoZW4gc2V0dGluZyB0ZXN0IHRpbWVv
dXQuCisgICAgIiIiCiAgICAgX19tZXRhY2xhc3NfXyA9IEFCQ01ldGEKIAogICAgIHRlc3RfdHlw
ZSA9IE5vbmUKICAgICBjb252ZXJ0X3Jlc3VsdCA9IE5vbmUKICAgICBzdXBwb3J0c190ZXN0ZHJp
dmVyID0gRmFsc2UKICAgICBzdXBwb3J0c19qc3NoZWxsID0gRmFsc2UKKyAgICAjIEV4dHJhIHRp
bWVvdXQgdG8gdXNlIGFmdGVyIGludGVybmFsIHRlc3QgdGltZW91dCBhdCB3aGljaCB0aGUgaGFy
bmVzcworICAgICMgc2hvdWxkIGZvcmNlIGEgdGltZW91dAorICAgIGV4dHJhX3RpbWVvdXQgPSA1
ICAjIHNlY29uZHMKKwogCiAgICAgZGVmIF9faW5pdF9fKHNlbGYsIGJyb3dzZXIsIHNlcnZlcl9j
b25maWcsIHRpbWVvdXRfbXVsdGlwbGllcj0xLAogICAgICAgICAgICAgICAgICBkZWJ1Z19pbmZv
PU5vbmUsICoqa3dhcmdzKToKLSAgICAgICAgIiIiQWJzdHJhY3QgQmFzZSBjbGFzcyBmb3Igb2Jq
ZWN0IHRoYXQgYWN0dWFsbHkgZXhlY3V0ZXMgdGhlIHRlc3RzIGluIGEKLSAgICAgICAgc3BlY2lm
aWMgYnJvd3Nlci4gVHlwaWNhbGx5IHRoZXJlIHdpbGwgYmUgYSBkaWZmZXJlbnQgVGVzdEV4ZWN1
dG9yCi0gICAgICAgIHN1YmNsYXNzIGZvciBlYWNoIHRlc3QgdHlwZSBhbmQgbWV0aG9kIG9mIGV4
ZWN1dGluZyB0ZXN0cy4KLQotICAgICAgICA6cGFyYW0gYnJvd3NlcjogRXhlY3V0b3JCcm93c2Vy
IGluc3RhbmNlIHByb3ZpZGluZyBwcm9wZXJ0aWVzIG9mIHRoZQotICAgICAgICAgICAgICAgICAg
ICAgICAgYnJvd3NlciB0aGF0IHdpbGwgYmUgdGVzdGVkLgotICAgICAgICA6cGFyYW0gc2VydmVy
X2NvbmZpZzogRGljdGlvbmFyeSBvZiB3cHRzZXJ2ZSBzZXJ2ZXIgY29uZmlndXJhdGlvbiBvZiB0
aGUKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcm0gc3RvcmVkIGluIFRlc3RFbnZp
cm9ubWVudC5jb25maWcKLSAgICAgICAgOnBhcmFtIHRpbWVvdXRfbXVsdGlwbGllcjogTXVsdGlw
bGllciByZWxhdGl2ZSB0byBiYXNlIHRpbWVvdXQgdG8gdXNlCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHdoZW4gc2V0dGluZyB0ZXN0IHRpbWVvdXQuCi0gICAgICAgICIiIgog
ICAgICAgICBzZWxmLnJ1bm5lciA9IE5vbmUKICAgICAgICAgc2VsZi5icm93c2VyID0gYnJvd3Nl
cgogICAgICAgICBzZWxmLnNlcnZlcl9jb25maWcgPSBzZXJ2ZXJfY29uZmlnCkBAIC0xNTIsNiAr
MjM2LDExIEBAIGNsYXNzIFRlc3RFeGVjdXRvcihvYmplY3QpOgogICAgICAgICBpZiBzZWxmLnBy
b3RvY29sIGlzIG5vdCBOb25lOgogICAgICAgICAgICAgc2VsZi5wcm90b2NvbC50ZWFyZG93bigp
CiAKKyAgICBkZWYgcmVzZXQoc2VsZik6CisgICAgICAgICIiIlJlLWluaXRpYWxpemUgaW50ZXJu
YWwgc3RhdGUgdG8gZmFjaWxpdGF0ZSByZXBlYXRlZCB0ZXN0IGV4ZWN1dGlvbgorICAgICAgICBh
cyBpbXBsZW1lbnRlZCBieSB0aGUgYC0tcmVydW5gIGNvbW1hbmQtbGluZSBhcmd1bWVudC4iIiIK
KyAgICAgICAgcGFzcworCiAgICAgZGVmIHJ1bl90ZXN0KHNlbGYsIHRlc3QpOgogICAgICAgICAi
IiJSdW4gYSBwYXJ0aWN1bGFyIHRlc3QuCiAKQEAgLTE4MSw3ICsyNzAsNyBAQCBjbGFzcyBUZXN0
RXhlY3V0b3Iob2JqZWN0KToKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnNl
cnZlcl9jb25maWdbInBvcnRzIl1bcHJvdG9jb2xdWzBdKQogCiAgICAgZGVmIHRlc3RfdXJsKHNl
bGYsIHRlc3QpOgotICAgICAgICByZXR1cm4gdXJscGFyc2UudXJsam9pbihzZWxmLnNlcnZlcl91
cmwodGVzdC5lbnZpcm9ubWVudFsicHJvdG9jb2wiXSksIHRlc3QudXJsKQorICAgICAgICByZXR1
cm4gdXJsam9pbihzZWxmLnNlcnZlcl91cmwodGVzdC5lbnZpcm9ubWVudFsicHJvdG9jb2wiXSks
IHRlc3QudXJsKQogCiAgICAgQGFic3RyYWN0bWV0aG9kCiAgICAgZGVmIGRvX3Rlc3Qoc2VsZiwg
dGVzdCk6CkBAIC0yNTYsOSArMzQ1LDggQEAgY2xhc3MgUmVmVGVzdEltcGxlbWVudGF0aW9uKG9i
amVjdCk6CiAgICAgICAgICAgICAgICAgcmV0dXJuIEZhbHNlLCBkYXRhCiAKICAgICAgICAgICAg
IHNjcmVlbnNob3QgPSBkYXRhCi0gICAgICAgICAgICBoYXNoX3ZhbHVlID0gaGFzaGxpYi5zaGEx
KHNjcmVlbnNob3QpLmhleGRpZ2VzdCgpCi0KLSAgICAgICAgICAgIHNlbGYuc2NyZWVuc2hvdF9j
YWNoZVtrZXldID0gKGhhc2hfdmFsdWUsIE5vbmUpCisgICAgICAgICAgICBoYXNoX3ZhbHVlID0g
aGFzaF9zY3JlZW5zaG90KGRhdGEpCisgICAgICAgICAgICBzZWxmLnNjcmVlbnNob3RfY2FjaGVb
a2V5XSA9IChoYXNoX3ZhbHVlLCBzY3JlZW5zaG90KQogCiAgICAgICAgICAgICBydiA9IChoYXNo
X3ZhbHVlLCBzY3JlZW5zaG90KQogICAgICAgICBlbHNlOgpAQCAtMjY3LDExICszNTUsNDQgQEAg
Y2xhc3MgUmVmVGVzdEltcGxlbWVudGF0aW9uKG9iamVjdCk6CiAgICAgICAgIHNlbGYubWVzc2Fn
ZS5hcHBlbmQoIiVzICVzIiAlICh0ZXN0LnVybCwgcnZbMF0pKQogICAgICAgICByZXR1cm4gVHJ1
ZSwgcnYKIAotICAgIGRlZiBpc19wYXNzKHNlbGYsIGxoc19oYXNoLCByaHNfaGFzaCwgcmVsYXRp
b24pOgorICAgIGRlZiByZXNldChzZWxmKToKKyAgICAgICAgc2VsZi5zY3JlZW5zaG90X2NhY2hl
LmNsZWFyKCkKKworICAgIGRlZiBpc19wYXNzKHNlbGYsIGhhc2hlcywgc2NyZWVuc2hvdHMsIHJl
bGF0aW9uLCBmdXp6eSk6CiAgICAgICAgIGFzc2VydCByZWxhdGlvbiBpbiAoIj09IiwgIiE9IikK
LSAgICAgICAgc2VsZi5tZXNzYWdlLmFwcGVuZCgiVGVzdGluZyAlcyAlcyAlcyIgJSAobGhzX2hh
c2gsIHJlbGF0aW9uLCByaHNfaGFzaCkpCi0gICAgICAgIHJldHVybiAoKHJlbGF0aW9uID09ICI9
PSIgYW5kIGxoc19oYXNoID09IHJoc19oYXNoKSBvcgotICAgICAgICAgICAgICAgIChyZWxhdGlv
biA9PSAiIT0iIGFuZCBsaHNfaGFzaCAhPSByaHNfaGFzaCkpCisgICAgICAgIGlmIG5vdCBmdXp6
eSBvciBmdXp6eSA9PSAoKDAsMCksICgwLDApKToKKyAgICAgICAgICAgIGVxdWFsID0gaGFzaGVz
WzBdID09IGhhc2hlc1sxXQorICAgICAgICAgICAgIyBzb21ldGltZXMgaW1hZ2VzIGNhbiBoYXZl
IGRpZmZlcmVudCBoYXNoZXMsIGJ1dCBwaXhlbHMgY2FuIGJlIGlkZW50aWNhbC4KKyAgICAgICAg
ICAgIGlmIG5vdCBlcXVhbDoKKyAgICAgICAgICAgICAgICBzZWxmLmxvZ2dlci5pbmZvKCJJbWFn
ZSBoYXNoZXMgZGlkbid0IG1hdGNoLCBjaGVja2luZyBwaXhlbCBkaWZmZXJlbmNlcyIpCisgICAg
ICAgICAgICAgICAgbWF4X3Blcl9jaGFubmVsLCBwaXhlbHNfZGlmZmVyZW50ID0gc2VsZi5nZXRf
ZGlmZmVyZW5jZXMoc2NyZWVuc2hvdHMpCisgICAgICAgICAgICAgICAgZXF1YWwgPSBwaXhlbHNf
ZGlmZmVyZW50ID09IDAgYW5kIG1heF9wZXJfY2hhbm5lbCA9PSAwCisgICAgICAgIGVsc2U6Cisg
ICAgICAgICAgICBtYXhfcGVyX2NoYW5uZWwsIHBpeGVsc19kaWZmZXJlbnQgPSBzZWxmLmdldF9k
aWZmZXJlbmNlcyhzY3JlZW5zaG90cykKKyAgICAgICAgICAgIGFsbG93ZWRfcGVyX2NoYW5uZWws
IGFsbG93ZWRfZGlmZmVyZW50ID0gZnV6enkKKyAgICAgICAgICAgIHNlbGYubG9nZ2VyLmluZm8o
IkFsbG93ZWQgJXMgcGl4ZWxzIGRpZmZlcmVudCwgbWF4aW11bSBkaWZmZXJlbmNlIHBlciBjaGFu
bmVsICVzIiAlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgiLSIuam9pbihzdHIoaXRl
bSkgZm9yIGl0ZW0gaW4gYWxsb3dlZF9kaWZmZXJlbnQpLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIi0iLmpvaW4oc3RyKGl0ZW0pIGZvciBpdGVtIGluIGFsbG93ZWRfcGVyX2NoYW5u
ZWwpKSkKKyAgICAgICAgICAgIGVxdWFsID0gKChwaXhlbHNfZGlmZmVyZW50ID09IDAgYW5kIGFs
bG93ZWRfZGlmZmVyZW50WzBdID09IDApIG9yCisgICAgICAgICAgICAgICAgICAgICAobWF4X3Bl
cl9jaGFubmVsID09IDAgYW5kIGFsbG93ZWRfcGVyX2NoYW5uZWxbMF0gPT0gMCkgb3IKKyAgICAg
ICAgICAgICAgICAgICAgIChhbGxvd2VkX3Blcl9jaGFubmVsWzBdIDw9IG1heF9wZXJfY2hhbm5l
bCA8PSBhbGxvd2VkX3Blcl9jaGFubmVsWzFdIGFuZAorICAgICAgICAgICAgICAgICAgICAgIGFs
bG93ZWRfZGlmZmVyZW50WzBdIDw9IHBpeGVsc19kaWZmZXJlbnQgPD0gYWxsb3dlZF9kaWZmZXJl
bnRbMV0pKQorICAgICAgICByZXR1cm4gZXF1YWwgaWYgcmVsYXRpb24gPT0gIj09IiBlbHNlIG5v
dCBlcXVhbAorCisgICAgZGVmIGdldF9kaWZmZXJlbmNlcyhzZWxmLCBzY3JlZW5zaG90cyk6Cisg
ICAgICAgIGZyb20gUElMIGltcG9ydCBJbWFnZSwgSW1hZ2VDaG9wcywgSW1hZ2VTdGF0CisKKyAg
ICAgICAgbGhzID0gSW1hZ2Uub3Blbihpby5CeXRlc0lPKGJhc2U2NC5iNjRkZWNvZGUoc2NyZWVu
c2hvdHNbMF0pKSkuY29udmVydCgiUkdCIikKKyAgICAgICAgcmhzID0gSW1hZ2Uub3Blbihpby5C
eXRlc0lPKGJhc2U2NC5iNjRkZWNvZGUoc2NyZWVuc2hvdHNbMV0pKSkuY29udmVydCgiUkdCIikK
KyAgICAgICAgZGlmZiA9IEltYWdlQ2hvcHMuZGlmZmVyZW5jZShsaHMsIHJocykKKyAgICAgICAg
bWluaW1hbF9kaWZmID0gZGlmZi5jcm9wKGRpZmYuZ2V0YmJveCgpKQorICAgICAgICBtYXNrID0g
bWluaW1hbF9kaWZmLmNvbnZlcnQoIkwiLCBkaXRoZXI9Tm9uZSkKKyAgICAgICAgc3RhdCA9IElt
YWdlU3RhdC5TdGF0KG1pbmltYWxfZGlmZiwgbWFzaykKKyAgICAgICAgcGVyX2NoYW5uZWwgPSBt
YXgoaXRlbVsxXSBmb3IgaXRlbSBpbiBzdGF0LmV4dHJlbWEpCisgICAgICAgIGNvdW50ID0gc3Rh
dC5jb3VudFswXQorICAgICAgICBzZWxmLmxvZ2dlci5pbmZvKCJGb3VuZCAlcyBwaXhlbHMgZGlm
ZmVyZW50LCBtYXhpbXVtIGRpZmZlcmVuY2UgcGVyIGNoYW5uZWwgJXMiICUKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAoY291bnQsIHBlcl9jaGFubmVsKSkKKyAgICAgICAgcmV0dXJuIHBlcl9j
aGFubmVsLCBjb3VudAogCiAgICAgZGVmIHJ1bl90ZXN0KHNlbGYsIHRlc3QpOgogICAgICAgICB2
aWV3cG9ydF9zaXplID0gdGVzdC52aWV3cG9ydF9zaXplCkBAIC0yODcsNiArNDA4LDcgQEAgY2xh
c3MgUmVmVGVzdEltcGxlbWVudGF0aW9uKG9iamVjdCk6CiAgICAgICAgICAgICBzY3JlZW5zaG90
cyA9IFtOb25lLCBOb25lXQogCiAgICAgICAgICAgICBub2RlcywgcmVsYXRpb24gPSBzdGFjay5w
b3AoKQorICAgICAgICAgICAgZnV6enkgPSBzZWxmLmdldF9mdXp6eSh0ZXN0LCBub2RlcywgcmVs
YXRpb24pCiAKICAgICAgICAgICAgIGZvciBpLCBub2RlIGluIGVudW1lcmF0ZShub2Rlcyk6CiAg
ICAgICAgICAgICAgICAgc3VjY2VzcywgZGF0YSA9IHNlbGYuZ2V0X2hhc2gobm9kZSwgdmlld3Bv
cnRfc2l6ZSwgZHBpKQpAQCAtMjk1LDcgKzQxNyw4IEBAIGNsYXNzIFJlZlRlc3RJbXBsZW1lbnRh
dGlvbihvYmplY3QpOgogCiAgICAgICAgICAgICAgICAgaGFzaGVzW2ldLCBzY3JlZW5zaG90c1tp
XSA9IGRhdGEKIAotICAgICAgICAgICAgaWYgc2VsZi5pc19wYXNzKGhhc2hlc1swXSwgaGFzaGVz
WzFdLCByZWxhdGlvbik6CisgICAgICAgICAgICBpZiBzZWxmLmlzX3Bhc3MoaGFzaGVzLCBzY3Jl
ZW5zaG90cywgcmVsYXRpb24sIGZ1enp5KToKKyAgICAgICAgICAgICAgICBmdXp6eSA9IHNlbGYu
Z2V0X2Z1enp5KHRlc3QsIG5vZGVzLCByZWxhdGlvbikKICAgICAgICAgICAgICAgICBpZiBub2Rl
c1sxXS5yZWZlcmVuY2VzOgogICAgICAgICAgICAgICAgICAgICBzdGFjay5leHRlbmQobGlzdCgo
KG5vZGVzWzFdLCBpdGVtWzBdKSwgaXRlbVsxXSkgZm9yIGl0ZW0gaW4gcmV2ZXJzZWQobm9kZXNb
MV0ucmVmZXJlbmNlcykpKQogICAgICAgICAgICAgICAgIGVsc2U6CkBAIC0zMTAsMTMgKzQzMywz
NSBAQCBjbGFzcyBSZWZUZXN0SW1wbGVtZW50YXRpb24ob2JqZWN0KToKICAgICAgICAgICAgICAg
ICBpZiBzdWNjZXNzOgogICAgICAgICAgICAgICAgICAgICBzY3JlZW5zaG90c1tpXSA9IHNjcmVl
bnNob3QKIAotICAgICAgICBsb2dfZGF0YSA9IFt7InVybCI6IG5vZGVzWzBdLnVybCwgInNjcmVl
bnNob3QiOiBzY3JlZW5zaG90c1swXX0sIHJlbGF0aW9uLAotICAgICAgICAgICAgICAgICAgICB7
InVybCI6IG5vZGVzWzFdLnVybCwgInNjcmVlbnNob3QiOiBzY3JlZW5zaG90c1sxXX1dCisgICAg
ICAgIGxvZ19kYXRhID0gWworICAgICAgICAgICAgeyJ1cmwiOiBub2Rlc1swXS51cmwsICJzY3Jl
ZW5zaG90Ijogc2NyZWVuc2hvdHNbMF0sICJoYXNoIjogaGFzaGVzWzBdfSwKKyAgICAgICAgICAg
IHJlbGF0aW9uLAorICAgICAgICAgICAgeyJ1cmwiOiBub2Rlc1sxXS51cmwsICJzY3JlZW5zaG90
Ijogc2NyZWVuc2hvdHNbMV0sICJoYXNoIjogaGFzaGVzWzFdfSwKKyAgICAgICAgXQogCiAgICAg
ICAgIHJldHVybiB7InN0YXR1cyI6ICJGQUlMIiwKICAgICAgICAgICAgICAgICAibWVzc2FnZSI6
ICJcbiIuam9pbihzZWxmLm1lc3NhZ2UpLAogICAgICAgICAgICAgICAgICJleHRyYSI6IHsicmVm
dGVzdF9zY3JlZW5zaG90cyI6IGxvZ19kYXRhfX0KIAorICAgIGRlZiBnZXRfZnV6enkoc2VsZiwg
cm9vdF90ZXN0LCB0ZXN0X25vZGVzLCByZWxhdGlvbik6CisgICAgICAgIGZ1bGxfa2V5ID0gdHVw
bGUoW2l0ZW0udXJsIGZvciBpdGVtIGluIHRlc3Rfbm9kZXNdICsgW3JlbGF0aW9uXSkKKyAgICAg
ICAgcmVmX29ubHlfa2V5ID0gdGVzdF9ub2Rlc1sxXS51cmwKKworICAgICAgICBmdXp6eV9vdmVy
cmlkZSA9IHJvb3RfdGVzdC5mdXp6eV9vdmVycmlkZQorICAgICAgICBmdXp6eSA9IHRlc3Rfbm9k
ZXNbMF0uZnV6enkKKworICAgICAgICBzb3VyY2VzID0gW2Z1enp5X292ZXJyaWRlLCBmdXp6eV0K
KyAgICAgICAga2V5cyA9IFtmdWxsX2tleSwgcmVmX29ubHlfa2V5LCBOb25lXQorICAgICAgICB2
YWx1ZSA9IE5vbmUKKyAgICAgICAgZm9yIHNvdXJjZSBpbiBzb3VyY2VzOgorICAgICAgICAgICAg
Zm9yIGtleSBpbiBrZXlzOgorICAgICAgICAgICAgICAgIGlmIGtleSBpbiBzb3VyY2U6CisgICAg
ICAgICAgICAgICAgICAgIHZhbHVlID0gc291cmNlW2tleV0KKyAgICAgICAgICAgICAgICAgICAg
YnJlYWsKKyAgICAgICAgICAgIGlmIHZhbHVlOgorICAgICAgICAgICAgICAgIGJyZWFrCisgICAg
ICAgIHJldHVybiB2YWx1ZQorCiAgICAgZGVmIHJldGFrZV9zY3JlZW5zaG90KHNlbGYsIG5vZGUs
IHZpZXdwb3J0X3NpemUsIGRwaSk6CiAgICAgICAgIHN1Y2Nlc3MsIGRhdGEgPSBzZWxmLmV4ZWN1
dG9yLnNjcmVlbnNob3Qobm9kZSwgdmlld3BvcnRfc2l6ZSwgZHBpKQogICAgICAgICBpZiBub3Qg
c3VjY2VzczoKQEAgLTM1Miw3ICs0OTcsNyBAQCBjbGFzcyBXZHNwZWNFeGVjdXRvcihUZXN0RXhl
Y3V0b3IpOgogICAgICAgICBwYXNzCiAKICAgICBkZWYgZG9fdGVzdChzZWxmLCB0ZXN0KToKLSAg
ICAgICAgdGltZW91dCA9IHRlc3QudGltZW91dCAqIHNlbGYudGltZW91dF9tdWx0aXBsaWVyICsg
ZXh0cmFfdGltZW91dAorICAgICAgICB0aW1lb3V0ID0gdGVzdC50aW1lb3V0ICogc2VsZi50aW1l
b3V0X211bHRpcGxpZXIgKyBzZWxmLmV4dHJhX3RpbWVvdXQKIAogICAgICAgICBzdWNjZXNzLCBk
YXRhID0gV2RzcGVjUnVuKHNlbGYuZG9fd2RzcGVjLAogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHNlbGYucHJvdG9jb2wuc2Vzc2lvbl9jb25maWcsCkBAIC00MTYsNyArNTYxLDcg
QEAgY2xhc3MgV2RzcGVjUnVuKG9iamVjdCk6CiAKIAogY2xhc3MgQ29ubmVjdGlvbmxlc3NCYXNl
UHJvdG9jb2xQYXJ0KEJhc2VQcm90b2NvbFBhcnQpOgotICAgIGRlZiBleGVjdXRlX3NjcmlwdChz
ZWxmLCBzY3JpcHQsIGFzeW5jPUZhbHNlKToKKyAgICBkZWYgZXhlY3V0ZV9zY3JpcHQoc2VsZiwg
c2NyaXB0LCBhc3luY2hyb25vdXM9RmFsc2UpOgogICAgICAgICBwYXNzCiAKICAgICBkZWYgc2V0
X3RpbWVvdXQoc2VsZiwgdGltZW91dCk6CkBAIC00ODQsNyArNjI5LDcgQEAgY2xhc3MgV2ViRHJp
dmVyUHJvdG9jb2woUHJvdG9jb2wpOgogICAgICAgICBBbiBIVFRQIHJlcXVlc3QgdG8gYW4gaW52
YWxpZCBwYXRoIHRoYXQgcmVzdWx0cyBpbiBhIDQwNCBpcwogICAgICAgICBwcm9vZiBlbm91Z2gg
dG8gdXMgdGhhdCB0aGUgc2VydmVyIGlzIGFsaXZlIGFuZCBraWNraW5nLgogICAgICAgICAiIiIK
LSAgICAgICAgY29ubiA9IGh0dHBsaWIuSFRUUENvbm5lY3Rpb24oc2VsZi5zZXJ2ZXIuaG9zdCwg
c2VsZi5zZXJ2ZXIucG9ydCkKKyAgICAgICAgY29ubiA9IEhUVFBDb25uZWN0aW9uKHNlbGYuc2Vy
dmVyLmhvc3QsIHNlbGYuc2VydmVyLnBvcnQpCiAgICAgICAgIGNvbm4ucmVxdWVzdCgiSEVBRCIs
IHNlbGYuc2VydmVyLmJhc2VfcGF0aCArICJpbnZhbGlkIikKICAgICAgICAgcmVzID0gY29ubi5n
ZXRyZXNwb25zZSgpCiAgICAgICAgIHJldHVybiByZXMuc3RhdHVzID09IDQwNApAQCAtNTA4LDcg
KzY1MywxNiBAQCBjbGFzcyBDYWxsYmFja0hhbmRsZXIob2JqZWN0KToKIAogICAgICAgICBzZWxm
LmFjdGlvbnMgPSB7CiAgICAgICAgICAgICAiY2xpY2siOiBDbGlja0FjdGlvbihzZWxmLmxvZ2dl
ciwgc2VsZi5wcm90b2NvbCksCi0gICAgICAgICAgICAic2VuZF9rZXlzIjogU2VuZEtleXNBY3Rp
b24oc2VsZi5sb2dnZXIsIHNlbGYucHJvdG9jb2wpCisgICAgICAgICAgICAic2VuZF9rZXlzIjog
U2VuZEtleXNBY3Rpb24oc2VsZi5sb2dnZXIsIHNlbGYucHJvdG9jb2wpLAorICAgICAgICAgICAg
ImFjdGlvbl9zZXF1ZW5jZSI6IEFjdGlvblNlcXVlbmNlQWN0aW9uKHNlbGYubG9nZ2VyLCBzZWxm
LnByb3RvY29sKSwKKyAgICAgICAgICAgICJnZW5lcmF0ZV90ZXN0X3JlcG9ydCI6IEdlbmVyYXRl
VGVzdFJlcG9ydEFjdGlvbihzZWxmLmxvZ2dlciwgc2VsZi5wcm90b2NvbCksCisgICAgICAgICAg
ICAiYWRkX3ZpcnR1YWxfYXV0aGVudGljYXRvciI6IEFkZFZpcnR1YWxBdXRoZW50aWNhdG9yQWN0
aW9uKHNlbGYubG9nZ2VyLCBzZWxmLnByb3RvY29sKSwKKyAgICAgICAgICAgICJyZW1vdmVfdmly
dHVhbF9hdXRoZW50aWNhdG9yIjogUmVtb3ZlVmlydHVhbEF1dGhlbnRpY2F0b3JBY3Rpb24oc2Vs
Zi5sb2dnZXIsIHNlbGYucHJvdG9jb2wpLAorICAgICAgICAgICAgImFkZF9jcmVkZW50aWFsIjog
QWRkQ3JlZGVudGlhbEFjdGlvbihzZWxmLmxvZ2dlciwgc2VsZi5wcm90b2NvbCksCisgICAgICAg
ICAgICAiZ2V0X2NyZWRlbnRpYWxzIjogR2V0Q3JlZGVudGlhbHNBY3Rpb24oc2VsZi5sb2dnZXIs
IHNlbGYucHJvdG9jb2wpLAorICAgICAgICAgICAgInJlbW92ZV9jcmVkZW50aWFsIjogUmVtb3Zl
Q3JlZGVudGlhbEFjdGlvbihzZWxmLmxvZ2dlciwgc2VsZi5wcm90b2NvbCksCisgICAgICAgICAg
ICAicmVtb3ZlX2FsbF9jcmVkZW50aWFscyI6IFJlbW92ZUFsbENyZWRlbnRpYWxzQWN0aW9uKHNl
bGYubG9nZ2VyLCBzZWxmLnByb3RvY29sKSwKKyAgICAgICAgICAgICJzZXRfdXNlcl92ZXJpZmll
ZCI6IFNldFVzZXJWZXJpZmllZEFjdGlvbihzZWxmLmxvZ2dlciwgc2VsZi5wcm90b2NvbCksCiAg
ICAgICAgIH0KIAogICAgIGRlZiBfX2NhbGxfXyhzZWxmLCByZXN1bHQpOgpAQCAtNTIxLDMwICs2
NzUsMjcgQEAgY2xhc3MgQ2FsbGJhY2tIYW5kbGVyKG9iamVjdCk6CiAgICAgICAgIHJldHVybiBj
YWxsYmFjayh1cmwsIHBheWxvYWQpCiAKICAgICBkZWYgcHJvY2Vzc19jb21wbGV0ZShzZWxmLCB1
cmwsIHBheWxvYWQpOgotICAgICAgICBydiA9IFt1cmxdICsgcGF5bG9hZAorICAgICAgICBydiA9
IFtzdHJpcF9zZXJ2ZXIodXJsKV0gKyBwYXlsb2FkCiAgICAgICAgIHJldHVybiBUcnVlLCBydgog
CiAgICAgZGVmIHByb2Nlc3NfYWN0aW9uKHNlbGYsIHVybCwgcGF5bG9hZCk6Ci0gICAgICAgIHBh
cmVudCA9IHNlbGYucHJvdG9jb2wuYmFzZS5jdXJyZW50X3dpbmRvdworICAgICAgICBhY3Rpb24g
PSBwYXlsb2FkWyJhY3Rpb24iXQorICAgICAgICBzZWxmLmxvZ2dlci5kZWJ1ZygiR290IGFjdGlv
bjogJXMiICUgYWN0aW9uKQogICAgICAgICB0cnk6Ci0gICAgICAgICAgICBzZWxmLnByb3RvY29s
LmJhc2Uuc2V0X3dpbmRvdyhzZWxmLnRlc3Rfd2luZG93KQotICAgICAgICAgICAgYWN0aW9uID0g
cGF5bG9hZFsiYWN0aW9uIl0KLSAgICAgICAgICAgIHNlbGYubG9nZ2VyLmRlYnVnKCJHb3QgYWN0
aW9uOiAlcyIgJSBhY3Rpb24pCi0gICAgICAgICAgICB0cnk6Ci0gICAgICAgICAgICAgICAgYWN0
aW9uX2hhbmRsZXIgPSBzZWxmLmFjdGlvbnNbYWN0aW9uXQotICAgICAgICAgICAgZXhjZXB0IEtl
eUVycm9yOgotICAgICAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoIlVua25vd24gYWN0aW9u
ICVzIiAlIGFjdGlvbikKLSAgICAgICAgICAgIHRyeToKLSAgICAgICAgICAgICAgICBhY3Rpb25f
aGFuZGxlcihwYXlsb2FkKQotICAgICAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbjoKLSAgICAgICAg
ICAgICAgICBzZWxmLmxvZ2dlci53YXJuaW5nKCJBY3Rpb24gJXMgZmFpbGVkIiAlIGFjdGlvbikK
LSAgICAgICAgICAgICAgICBzZWxmLmxvZ2dlci53YXJuaW5nKHRyYWNlYmFjay5mb3JtYXRfZXhj
KCkpCi0gICAgICAgICAgICAgICAgc2VsZi5fc2VuZF9tZXNzYWdlKCJjb21wbGV0ZSIsICJmYWls
dXJlIikKLSAgICAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAgICAgc2VsZi5sb2dnZXIuZGVi
dWcoIkFjdGlvbiAlcyBjb21wbGV0ZWQiICUgYWN0aW9uKQotICAgICAgICAgICAgICAgIHNlbGYu
X3NlbmRfbWVzc2FnZSgiY29tcGxldGUiLCAic3VjY2VzcyIpCi0gICAgICAgIGZpbmFsbHk6Ci0g
ICAgICAgICAgICBzZWxmLnByb3RvY29sLmJhc2Uuc2V0X3dpbmRvdyhwYXJlbnQpCisgICAgICAg
ICAgICBhY3Rpb25faGFuZGxlciA9IHNlbGYuYWN0aW9uc1thY3Rpb25dCisgICAgICAgIGV4Y2Vw
dCBLZXlFcnJvcjoKKyAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoIlVua25vd24gYWN0aW9u
ICVzIiAlIGFjdGlvbikKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgcmVzdWx0ID0gYWN0aW9u
X2hhbmRsZXIocGF5bG9hZCkKKyAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbjoKKyAgICAgICAgICAg
IHNlbGYubG9nZ2VyLndhcm5pbmcoIkFjdGlvbiAlcyBmYWlsZWQiICUgYWN0aW9uKQorICAgICAg
ICAgICAgc2VsZi5sb2dnZXIud2FybmluZyh0cmFjZWJhY2suZm9ybWF0X2V4YygpKQorICAgICAg
ICAgICAgc2VsZi5fc2VuZF9tZXNzYWdlKCJjb21wbGV0ZSIsICJlcnJvciIpCisgICAgICAgICAg
ICByYWlzZQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgc2VsZi5sb2dnZXIuZGVidWcoIkFj
dGlvbiAlcyBjb21wbGV0ZWQgd2l0aCByZXN1bHQgJXMiICUgKGFjdGlvbiwgcmVzdWx0KSkKKyAg
ICAgICAgICAgIHJldHVybl9tZXNzYWdlID0geyJyZXN1bHQiOiByZXN1bHR9CisgICAgICAgICAg
ICBzZWxmLl9zZW5kX21lc3NhZ2UoImNvbXBsZXRlIiwgInN1Y2Nlc3MiLCBqc29uLmR1bXBzKHJl
dHVybl9tZXNzYWdlKSkKIAogICAgICAgICByZXR1cm4gRmFsc2UsIE5vbmUKIApAQCAtNTU5LDEz
ICs3MTAsOSBAQCBjbGFzcyBDbGlja0FjdGlvbihvYmplY3QpOgogCiAgICAgZGVmIF9fY2FsbF9f
KHNlbGYsIHBheWxvYWQpOgogICAgICAgICBzZWxlY3RvciA9IHBheWxvYWRbInNlbGVjdG9yIl0K
LSAgICAgICAgZWxlbWVudHMgPSBzZWxmLnByb3RvY29sLnNlbGVjdC5lbGVtZW50c19ieV9zZWxl
Y3RvcihzZWxlY3RvcikKLSAgICAgICAgaWYgbGVuKGVsZW1lbnRzKSA9PSAwOgotICAgICAgICAg
ICAgcmFpc2UgVmFsdWVFcnJvcigiU2VsZWN0b3IgbWF0Y2hlcyBubyBlbGVtZW50cyIpCi0gICAg
ICAgIGVsaWYgbGVuKGVsZW1lbnRzKSA+IDE6Ci0gICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9y
KCJTZWxlY3RvciBtYXRjaGVzIG11bHRpcGxlIGVsZW1lbnRzIikKKyAgICAgICAgZWxlbWVudCA9
IHNlbGYucHJvdG9jb2wuc2VsZWN0LmVsZW1lbnRfYnlfc2VsZWN0b3Ioc2VsZWN0b3IpCiAgICAg
ICAgIHNlbGYubG9nZ2VyLmRlYnVnKCJDbGlja2luZyBlbGVtZW50OiAlcyIgJSBzZWxlY3RvcikK
LSAgICAgICAgc2VsZi5wcm90b2NvbC5jbGljay5lbGVtZW50KGVsZW1lbnRzWzBdKQorICAgICAg
ICBzZWxmLnByb3RvY29sLmNsaWNrLmVsZW1lbnQoZWxlbWVudCkKIAogCiBjbGFzcyBTZW5kS2V5
c0FjdGlvbihvYmplY3QpOgpAQCAtNTc2LDEwICs3MjMsMTE0IEBAIGNsYXNzIFNlbmRLZXlzQWN0
aW9uKG9iamVjdCk6CiAgICAgZGVmIF9fY2FsbF9fKHNlbGYsIHBheWxvYWQpOgogICAgICAgICBz
ZWxlY3RvciA9IHBheWxvYWRbInNlbGVjdG9yIl0KICAgICAgICAga2V5cyA9IHBheWxvYWRbImtl
eXMiXQotICAgICAgICBlbGVtZW50cyA9IHNlbGYucHJvdG9jb2wuc2VsZWN0LmVsZW1lbnRzX2J5
X3NlbGVjdG9yKHNlbGVjdG9yKQotICAgICAgICBpZiBsZW4oZWxlbWVudHMpID09IDA6Ci0gICAg
ICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJTZWxlY3RvciBtYXRjaGVzIG5vIGVsZW1lbnRzIikK
LSAgICAgICAgZWxpZiBsZW4oZWxlbWVudHMpID4gMToKLSAgICAgICAgICAgIHJhaXNlIFZhbHVl
RXJyb3IoIlNlbGVjdG9yIG1hdGNoZXMgbXVsdGlwbGUgZWxlbWVudHMiKQorICAgICAgICBlbGVt
ZW50ID0gc2VsZi5wcm90b2NvbC5zZWxlY3QuZWxlbWVudF9ieV9zZWxlY3RvcihzZWxlY3RvcikK
ICAgICAgICAgc2VsZi5sb2dnZXIuZGVidWcoIlNlbmRpbmcga2V5cyB0byBlbGVtZW50OiAlcyIg
JSBzZWxlY3RvcikKLSAgICAgICAgc2VsZi5wcm90b2NvbC5zZW5kX2tleXMuc2VuZF9rZXlzKGVs
ZW1lbnRzWzBdLCBrZXlzKQorICAgICAgICBzZWxmLnByb3RvY29sLnNlbmRfa2V5cy5zZW5kX2tl
eXMoZWxlbWVudCwga2V5cykKKworCitjbGFzcyBBY3Rpb25TZXF1ZW5jZUFjdGlvbihvYmplY3Qp
OgorICAgIGRlZiBfX2luaXRfXyhzZWxmLCBsb2dnZXIsIHByb3RvY29sKToKKyAgICAgICAgc2Vs
Zi5sb2dnZXIgPSBsb2dnZXIKKyAgICAgICAgc2VsZi5wcm90b2NvbCA9IHByb3RvY29sCisKKyAg
ICBkZWYgX19jYWxsX18oc2VsZiwgcGF5bG9hZCk6CisgICAgICAgICMgVE9ETzogc29tZSBzb3J0
IG9mIHNoYWxsb3cgZXJyb3IgY2hlY2tpbmcKKyAgICAgICAgYWN0aW9ucyA9IHBheWxvYWRbImFj
dGlvbnMiXQorICAgICAgICBmb3IgYWN0aW9uU2VxdWVuY2UgaW4gYWN0aW9uczoKKyAgICAgICAg
ICAgIGlmIGFjdGlvblNlcXVlbmNlWyJ0eXBlIl0gPT0gInBvaW50ZXIiOgorICAgICAgICAgICAg
ICAgIGZvciBhY3Rpb24gaW4gYWN0aW9uU2VxdWVuY2VbImFjdGlvbnMiXToKKyAgICAgICAgICAg
ICAgICAgICAgaWYgKGFjdGlvblsidHlwZSJdID09ICJwb2ludGVyTW92ZSIgYW5kCisgICAgICAg
ICAgICAgICAgICAgICAgICBpc2luc3RhbmNlKGFjdGlvblsib3JpZ2luIl0sIGRpY3QpKToKKyAg
ICAgICAgICAgICAgICAgICAgICAgIGFjdGlvblsib3JpZ2luIl0gPSBzZWxmLmdldF9lbGVtZW50
KGFjdGlvblsib3JpZ2luIl1bInNlbGVjdG9yIl0sIGFjdGlvblsiZnJhbWUiXVsiZnJhbWUiXSkK
KyAgICAgICAgc2VsZi5wcm90b2NvbC5hY3Rpb25fc2VxdWVuY2Uuc2VuZF9hY3Rpb25zKHsiYWN0
aW9ucyI6IGFjdGlvbnN9KQorCisgICAgZGVmIGdldF9lbGVtZW50KHNlbGYsIGVsZW1lbnRfc2Vs
ZWN0b3IsIGZyYW1lKToKKyAgICAgICAgZWxlbWVudCA9IHNlbGYucHJvdG9jb2wuc2VsZWN0LmVs
ZW1lbnRfYnlfc2VsZWN0b3IoZWxlbWVudF9zZWxlY3RvciwgZnJhbWUpCisgICAgICAgIHJldHVy
biBlbGVtZW50CisKK2NsYXNzIEdlbmVyYXRlVGVzdFJlcG9ydEFjdGlvbihvYmplY3QpOgorICAg
IGRlZiBfX2luaXRfXyhzZWxmLCBsb2dnZXIsIHByb3RvY29sKToKKyAgICAgICAgc2VsZi5sb2dn
ZXIgPSBsb2dnZXIKKyAgICAgICAgc2VsZi5wcm90b2NvbCA9IHByb3RvY29sCisKKyAgICBkZWYg
X19jYWxsX18oc2VsZiwgcGF5bG9hZCk6CisgICAgICAgIG1lc3NhZ2UgPSBwYXlsb2FkWyJtZXNz
YWdlIl0KKyAgICAgICAgc2VsZi5sb2dnZXIuZGVidWcoIkdlbmVyYXRpbmcgdGVzdCByZXBvcnQ6
ICVzIiAlIG1lc3NhZ2UpCisgICAgICAgIHNlbGYucHJvdG9jb2wuZ2VuZXJhdGVfdGVzdF9yZXBv
cnQuZ2VuZXJhdGVfdGVzdF9yZXBvcnQobWVzc2FnZSkKKworY2xhc3MgQWRkVmlydHVhbEF1dGhl
bnRpY2F0b3JBY3Rpb24ob2JqZWN0KToKKyAgICBkZWYgX19pbml0X18oc2VsZiwgbG9nZ2VyLCBw
cm90b2NvbCk6CisgICAgICAgIHNlbGYubG9nZ2VyID0gbG9nZ2VyCisgICAgICAgIHNlbGYucHJv
dG9jb2wgPSBwcm90b2NvbAorCisgICAgZGVmIF9fY2FsbF9fKHNlbGYsIHBheWxvYWQpOgorICAg
ICAgICBzZWxmLmxvZ2dlci5kZWJ1ZygiQWRkaW5nIHZpcnR1YWwgYXV0aGVudGljYXRvciIpCisg
ICAgICAgIGNvbmZpZyA9IHBheWxvYWRbImNvbmZpZyJdCisgICAgICAgIGF1dGhlbnRpY2F0b3Jf
aWQgPSBzZWxmLnByb3RvY29sLnZpcnR1YWxfYXV0aGVudGljYXRvci5hZGRfdmlydHVhbF9hdXRo
ZW50aWNhdG9yKGNvbmZpZykKKyAgICAgICAgc2VsZi5sb2dnZXIuZGVidWcoIkF1dGhlbnRpY2F0
b3IgY3JlYXRlZCB3aXRoIElEICVzIiAlIGF1dGhlbnRpY2F0b3JfaWQpCisgICAgICAgIHJldHVy
biBhdXRoZW50aWNhdG9yX2lkCisKK2NsYXNzIFJlbW92ZVZpcnR1YWxBdXRoZW50aWNhdG9yQWN0
aW9uKG9iamVjdCk6CisgICAgZGVmIF9faW5pdF9fKHNlbGYsIGxvZ2dlciwgcHJvdG9jb2wpOgor
ICAgICAgICBzZWxmLmxvZ2dlciA9IGxvZ2dlcgorICAgICAgICBzZWxmLnByb3RvY29sID0gcHJv
dG9jb2wKKworICAgIGRlZiBfX2NhbGxfXyhzZWxmLCBwYXlsb2FkKToKKyAgICAgICAgYXV0aGVu
dGljYXRvcl9pZCA9IHBheWxvYWRbImF1dGhlbnRpY2F0b3JfaWQiXQorICAgICAgICBzZWxmLmxv
Z2dlci5kZWJ1ZygiUmVtb3ZpbmcgdmlydHVhbCBhdXRoZW50aWNhdG9yICVzIiAlIGF1dGhlbnRp
Y2F0b3JfaWQpCisgICAgICAgIHJldHVybiBzZWxmLnByb3RvY29sLnZpcnR1YWxfYXV0aGVudGlj
YXRvci5yZW1vdmVfdmlydHVhbF9hdXRoZW50aWNhdG9yKGF1dGhlbnRpY2F0b3JfaWQpCisKKwor
Y2xhc3MgQWRkQ3JlZGVudGlhbEFjdGlvbihvYmplY3QpOgorICAgIGRlZiBfX2luaXRfXyhzZWxm
LCBsb2dnZXIsIHByb3RvY29sKToKKyAgICAgICAgc2VsZi5sb2dnZXIgPSBsb2dnZXIKKyAgICAg
ICAgc2VsZi5wcm90b2NvbCA9IHByb3RvY29sCisKKyAgICBkZWYgX19jYWxsX18oc2VsZiwgcGF5
bG9hZCk6CisgICAgICAgIGF1dGhlbnRpY2F0b3JfaWQgPSBwYXlsb2FkWyJhdXRoZW50aWNhdG9y
X2lkIl0KKyAgICAgICAgY3JlZGVudGlhbCA9IHBheWxvYWRbImNyZWRlbnRpYWwiXQorICAgICAg
ICBzZWxmLmxvZ2dlci5kZWJ1ZygiQWRkaW5nIGNyZWRlbnRpYWwgdG8gdmlydHVhbCBhdXRoZW50
aWNhdG9yICVzICIgJSBhdXRoZW50aWNhdG9yX2lkKQorICAgICAgICByZXR1cm4gc2VsZi5wcm90
b2NvbC52aXJ0dWFsX2F1dGhlbnRpY2F0b3IuYWRkX2NyZWRlbnRpYWwoYXV0aGVudGljYXRvcl9p
ZCwgY3JlZGVudGlhbCkKKworY2xhc3MgR2V0Q3JlZGVudGlhbHNBY3Rpb24ob2JqZWN0KToKKyAg
ICBkZWYgX19pbml0X18oc2VsZiwgbG9nZ2VyLCBwcm90b2NvbCk6CisgICAgICAgIHNlbGYubG9n
Z2VyID0gbG9nZ2VyCisgICAgICAgIHNlbGYucHJvdG9jb2wgPSBwcm90b2NvbAorCisgICAgZGVm
IF9fY2FsbF9fKHNlbGYsIHBheWxvYWQpOgorICAgICAgICBhdXRoZW50aWNhdG9yX2lkID0gcGF5
bG9hZFsiYXV0aGVudGljYXRvcl9pZCJdCisgICAgICAgIHNlbGYubG9nZ2VyLmRlYnVnKCJHZXR0
aW5nIGNyZWRlbnRpYWxzIGZyb20gdmlydHVhbCBhdXRoZW50aWNhdG9yICVzICIgJSBhdXRoZW50
aWNhdG9yX2lkKQorICAgICAgICByZXR1cm4gc2VsZi5wcm90b2NvbC52aXJ0dWFsX2F1dGhlbnRp
Y2F0b3IuZ2V0X2NyZWRlbnRpYWxzKGF1dGhlbnRpY2F0b3JfaWQpCisKK2NsYXNzIFJlbW92ZUNy
ZWRlbnRpYWxBY3Rpb24ob2JqZWN0KToKKyAgICBkZWYgX19pbml0X18oc2VsZiwgbG9nZ2VyLCBw
cm90b2NvbCk6CisgICAgICAgIHNlbGYubG9nZ2VyID0gbG9nZ2VyCisgICAgICAgIHNlbGYucHJv
dG9jb2wgPSBwcm90b2NvbAorCisgICAgZGVmIF9fY2FsbF9fKHNlbGYsIHBheWxvYWQpOgorICAg
ICAgICBhdXRoZW50aWNhdG9yX2lkID0gcGF5bG9hZFsiYXV0aGVudGljYXRvcl9pZCJdCisgICAg
ICAgIGNyZWRlbnRpYWxfaWQgPSBwYXlsb2FkWyJjcmVkZW50aWFsX2lkIl0KKyAgICAgICAgc2Vs
Zi5sb2dnZXIuZGVidWcoIlJlbW92aW5nIGNyZWRlbnRpYWwgJXMgZnJvbSBhdXRoZW50aWNhdG9y
ICVzIiAlIChjcmVkZW50aWFsX2lkLCBhdXRoZW50aWNhdG9yX2lkKSkKKyAgICAgICAgcmV0dXJu
IHNlbGYucHJvdG9jb2wudmlydHVhbF9hdXRoZW50aWNhdG9yLnJlbW92ZV9jcmVkZW50aWFsKGF1
dGhlbnRpY2F0b3JfaWQsIGNyZWRlbnRpYWxfaWQpCisKK2NsYXNzIFJlbW92ZUFsbENyZWRlbnRp
YWxzQWN0aW9uKG9iamVjdCk6CisgICAgZGVmIF9faW5pdF9fKHNlbGYsIGxvZ2dlciwgcHJvdG9j
b2wpOgorICAgICAgICBzZWxmLmxvZ2dlciA9IGxvZ2dlcgorICAgICAgICBzZWxmLnByb3RvY29s
ID0gcHJvdG9jb2wKKworICAgIGRlZiBfX2NhbGxfXyhzZWxmLCBwYXlsb2FkKToKKyAgICAgICAg
YXV0aGVudGljYXRvcl9pZCA9IHBheWxvYWRbImF1dGhlbnRpY2F0b3JfaWQiXQorICAgICAgICBz
ZWxmLmxvZ2dlci5kZWJ1ZygiUmVtb3ZpbmcgYWxsIGNyZWRlbnRpYWxzIGZyb20gYXV0aGVudGlj
YXRvciAlcyIgJSBhdXRoZW50aWNhdG9yX2lkKQorICAgICAgICByZXR1cm4gc2VsZi5wcm90b2Nv
bC52aXJ0dWFsX2F1dGhlbnRpY2F0b3IucmVtb3ZlX2FsbF9jcmVkZW50aWFscyhhdXRoZW50aWNh
dG9yX2lkKQorCitjbGFzcyBTZXRVc2VyVmVyaWZpZWRBY3Rpb24ob2JqZWN0KToKKyAgICBkZWYg
X19pbml0X18oc2VsZiwgbG9nZ2VyLCBwcm90b2NvbCk6CisgICAgICAgIHNlbGYubG9nZ2VyID0g
bG9nZ2VyCisgICAgICAgIHNlbGYucHJvdG9jb2wgPSBwcm90b2NvbAorCisgICAgZGVmIF9fY2Fs
bF9fKHNlbGYsIHBheWxvYWQpOgorICAgICAgICBhdXRoZW50aWNhdG9yX2lkID0gcGF5bG9hZFsi
YXV0aGVudGljYXRvcl9pZCJdCisgICAgICAgIHV2ID0gcGF5bG9hZFsidXYiXQorICAgICAgICBz
ZWxmLmxvZ2dlci5kZWJ1ZygKKyAgICAgICAgICAgICJTZXR0aW5nIHVzZXIgdmVyaWZpZWQgZmxh
ZyBvbiBhdXRoZW50aWNhdG9yICVzIHRvICVzIiAlIChhdXRoZW50aWNhdG9yX2lkLCB1dlsiaXNV
c2VyVmVyaWZpZWQiXSkpCisgICAgICAgIHJldHVybiBzZWxmLnByb3RvY29sLnZpcnR1YWxfYXV0
aGVudGljYXRvci5zZXRfdXNlcl92ZXJpZmllZChhdXRoZW50aWNhdG9yX2lkLCB1dikKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
d3B0cnVubmVyL3dwdHJ1bm5lci9leGVjdXRvcnMvZXhlY3V0b3JlZGdlY2hyb21pdW0ucHkgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5l
ci93cHRydW5uZXIvZXhlY3V0b3JzL2V4ZWN1dG9yZWRnZWNocm9taXVtLnB5Cm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjMzZWJlMTk3ZTcxN2RlOTRjMzkzMWQzZjA5ODU2OTcyNDQ2ZDc2ZWMKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dw
dHJ1bm5lci93cHRydW5uZXIvZXhlY3V0b3JzL2V4ZWN1dG9yZWRnZWNocm9taXVtLnB5CkBAIC0w
LDAgKzEsMTAgQEAKK2Zyb20gLi53ZWJkcml2ZXJfc2VydmVyIGltcG9ydCBFZGdlQ2hyb21pdW1E
cml2ZXJTZXJ2ZXINCitmcm9tIC5iYXNlIGltcG9ydCBXZHNwZWNFeGVjdXRvciwgV2ViRHJpdmVy
UHJvdG9jb2wNCisNCisNCitjbGFzcyBFZGdlQ2hyb21pdW1Ecml2ZXJQcm90b2NvbChXZWJEcml2
ZXJQcm90b2NvbCk6DQorICAgIHNlcnZlcl9jbHMgPSBFZGdlQ2hyb21pdW1Ecml2ZXJTZXJ2ZXIN
CisNCisNCitjbGFzcyBFZGdlQ2hyb21pdW1Ecml2ZXJXZHNwZWNFeGVjdXRvcihXZHNwZWNFeGVj
dXRvcik6DQorICAgIHByb3RvY29sX2NscyA9IEVkZ2VDaHJvbWl1bURyaXZlclByb3RvY29sDQpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy93cHRydW5uZXIvd3B0cnVubmVyL2V4ZWN1dG9ycy9leGVjdXRvcm1hcmlvbmV0dGUucHkg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1
bm5lci93cHRydW5uZXIvZXhlY3V0b3JzL2V4ZWN1dG9ybWFyaW9uZXR0ZS5weQppbmRleCA3MDA1
NGI1NzI5NGY4YWU1MGNlZGExMGY5NWVmZWJiZWJlYzM0NTM4Li5iMTY1ZThjZDkzZDUzNDA2MmYz
MDNhYTNlMDQ1Y2JiOTg1MGVkMjVjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvZXhlY3V0b3Jz
L2V4ZWN1dG9ybWFyaW9uZXR0ZS5weQorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvZXhlY3V0b3JzL2V4ZWN1
dG9ybWFyaW9uZXR0ZS5weQpAQCAtMSw3ICsxLDcgQEAKIGltcG9ydCBqc29uCiBpbXBvcnQgb3MK
LWltcG9ydCBzb2NrZXQKIGltcG9ydCB0aHJlYWRpbmcKK2ltcG9ydCB0aW1lCiBpbXBvcnQgdHJh
Y2ViYWNrCiBpbXBvcnQgdXJscGFyc2UKIGltcG9ydCB1dWlkCkBAIC0xNiwxMSArMTYsMTIgQEAg
ZnJvbSAuYmFzZSBpbXBvcnQgKENhbGxiYWNrSGFuZGxlciwKICAgICAgICAgICAgICAgICAgICBS
ZWZUZXN0RXhlY3V0b3IsCiAgICAgICAgICAgICAgICAgICAgUmVmVGVzdEltcGxlbWVudGF0aW9u
LAogICAgICAgICAgICAgICAgICAgIFRlc3RoYXJuZXNzRXhlY3V0b3IsCisgICAgICAgICAgICAg
ICAgICAgVGltZWRSdW5uZXIsCiAgICAgICAgICAgICAgICAgICAgV2RzcGVjRXhlY3V0b3IsCiAg
ICAgICAgICAgICAgICAgICAgV2ViRHJpdmVyUHJvdG9jb2wsCi0gICAgICAgICAgICAgICAgICAg
ZXh0cmFfdGltZW91dCwKICAgICAgICAgICAgICAgICAgICBzdHJpcF9zZXJ2ZXIpCi1mcm9tIC5w
cm90b2NvbCBpbXBvcnQgKEFzc2VydHNQcm90b2NvbFBhcnQsCitmcm9tIC5wcm90b2NvbCBpbXBv
cnQgKEFjdGlvblNlcXVlbmNlUHJvdG9jb2xQYXJ0LAorICAgICAgICAgICAgICAgICAgICAgICBB
c3NlcnRzUHJvdG9jb2xQYXJ0LAogICAgICAgICAgICAgICAgICAgICAgICBCYXNlUHJvdG9jb2xQ
YXJ0LAogICAgICAgICAgICAgICAgICAgICAgICBUZXN0aGFybmVzc1Byb3RvY29sUGFydCwKICAg
ICAgICAgICAgICAgICAgICAgICAgUHJlZnNQcm90b2NvbFBhcnQsCkBAIC01NSw4ICs1Niw4IEBA
IGNsYXNzIE1hcmlvbmV0dGVCYXNlUHJvdG9jb2xQYXJ0KEJhc2VQcm90b2NvbFBhcnQpOgogICAg
IGRlZiBzZXR1cChzZWxmKToKICAgICAgICAgc2VsZi5tYXJpb25ldHRlID0gc2VsZi5wYXJlbnQu
bWFyaW9uZXR0ZQogCi0gICAgZGVmIGV4ZWN1dGVfc2NyaXB0KHNlbGYsIHNjcmlwdCwgYXN5bmM9
RmFsc2UpOgotICAgICAgICBtZXRob2QgPSBzZWxmLm1hcmlvbmV0dGUuZXhlY3V0ZV9hc3luY19z
Y3JpcHQgaWYgYXN5bmMgZWxzZSBzZWxmLm1hcmlvbmV0dGUuZXhlY3V0ZV9zY3JpcHQKKyAgICBk
ZWYgZXhlY3V0ZV9zY3JpcHQoc2VsZiwgc2NyaXB0LCBhc3luY2hyb25vdXM9RmFsc2UpOgorICAg
ICAgICBtZXRob2QgPSBzZWxmLm1hcmlvbmV0dGUuZXhlY3V0ZV9hc3luY19zY3JpcHQgaWYgYXN5
bmNocm9ub3VzIGVsc2Ugc2VsZi5tYXJpb25ldHRlLmV4ZWN1dGVfc2NyaXB0CiAgICAgICAgIHJl
dHVybiBtZXRob2Qoc2NyaXB0LCBuZXdfc2FuZGJveD1GYWxzZSwgc2FuZGJveD1Ob25lKQogCiAg
ICAgZGVmIHNldF90aW1lb3V0KHNlbGYsIHRpbWVvdXQpOgpAQCAtODUsNyArODYsNyBAQCBjbGFz
cyBNYXJpb25ldHRlQmFzZVByb3RvY29sUGFydChCYXNlUHJvdG9jb2xQYXJ0KToKICAgICAgICAg
aWYgc29ja2V0X3RpbWVvdXQ6CiAgICAgICAgICAgICB0cnk6CiAgICAgICAgICAgICAgICAgc2Vs
Zi5tYXJpb25ldHRlLnRpbWVvdXQuc2NyaXB0ID0gc29ja2V0X3RpbWVvdXQgLyAyCi0gICAgICAg
ICAgICBleGNlcHQgKHNvY2tldC5lcnJvciwgSU9FcnJvcik6CisgICAgICAgICAgICBleGNlcHQg
SU9FcnJvcjoKICAgICAgICAgICAgICAgICBzZWxmLmxvZ2dlci5kZWJ1ZygiU29ja2V0IGNsb3Nl
ZCIpCiAgICAgICAgICAgICAgICAgcmV0dXJuCiAKQEAgLTk4LDcgKzk5LDExIEBAIGNsYXNzIE1h
cmlvbmV0dGVCYXNlUHJvdG9jb2xQYXJ0KEJhc2VQcm90b2NvbFBhcnQpOgogICAgICAgICAgICAg
ZXhjZXB0IGVycm9ycy5TY3JpcHRUaW1lb3V0RXhjZXB0aW9uOgogICAgICAgICAgICAgICAgIHNl
bGYubG9nZ2VyLmRlYnVnKCJTY3JpcHQgdGltZWQgb3V0IikKICAgICAgICAgICAgICAgICBwYXNz
Ci0gICAgICAgICAgICBleGNlcHQgKHNvY2tldC50aW1lb3V0LCBJT0Vycm9yKToKKyAgICAgICAg
ICAgIGV4Y2VwdCBlcnJvcnMuSmF2YXNjcmlwdEV4Y2VwdGlvbiBhcyBlOgorICAgICAgICAgICAg
ICAgICMgVGhpcyBjYW4gaGFwcGVuIGlmIHdlIG5hdmlnYXRlLCBidXQganVzdCBrZWVwIGdvaW5n
CisgICAgICAgICAgICAgICAgc2VsZi5sb2dnZXIuZGVidWcoZS5tZXNzYWdlKQorICAgICAgICAg
ICAgICAgIHBhc3MKKyAgICAgICAgICAgIGV4Y2VwdCBJT0Vycm9yOgogICAgICAgICAgICAgICAg
IHNlbGYubG9nZ2VyLmRlYnVnKCJTb2NrZXQgY2xvc2VkIikKICAgICAgICAgICAgICAgICBicmVh
awogICAgICAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBlOgpAQCAtMTEwLDE3ICsxMTUsMTkg
QEAgY2xhc3MgTWFyaW9uZXR0ZVRlc3RoYXJuZXNzUHJvdG9jb2xQYXJ0KFRlc3RoYXJuZXNzUHJv
dG9jb2xQYXJ0KToKICAgICBkZWYgX19pbml0X18oc2VsZiwgcGFyZW50KToKICAgICAgICAgc3Vw
ZXIoTWFyaW9uZXR0ZVRlc3RoYXJuZXNzUHJvdG9jb2xQYXJ0LCBzZWxmKS5fX2luaXRfXyhwYXJl
bnQpCiAgICAgICAgIHNlbGYucnVubmVyX2hhbmRsZSA9IE5vbmUKKyAgICAgICAgd2l0aCBvcGVu
KG9zLnBhdGguam9pbihoZXJlLCAicnVubmVyLmpzIikpIGFzIGY6CisgICAgICAgICAgICBzZWxm
LnJ1bm5lcl9zY3JpcHQgPSBmLnJlYWQoKQogCiAgICAgZGVmIHNldHVwKHNlbGYpOgogICAgICAg
ICBzZWxmLm1hcmlvbmV0dGUgPSBzZWxmLnBhcmVudC5tYXJpb25ldHRlCiAKICAgICBkZWYgbG9h
ZF9ydW5uZXIoc2VsZiwgdXJsX3Byb3RvY29sKToKICAgICAgICAgIyBDaGVjayBpZiB3ZSBwcmV2
aW91c2x5IGhhZCBhIHRlc3Qgd2luZG93IG9wZW4sIGFuZCBpZiB3ZSBkaWQgbWFrZSBzdXJlIGl0
J3MgY2xvc2VkCi0gICAgICAgIHNlbGYucGFyZW50LmJhc2UuZXhlY3V0ZV9zY3JpcHQoImlmICh3
aW5kb3cud2luKSB7d2luZG93Lndpbi5jbG9zZSgpfSIpCisgICAgICAgIGlmIHNlbGYucnVubmVy
X2hhbmRsZToKKyAgICAgICAgICAgIHNlbGYuX2Nsb3NlX3dpbmRvd3MoKQogICAgICAgICB1cmwg
PSB1cmxwYXJzZS51cmxqb2luKHNlbGYucGFyZW50LmV4ZWN1dG9yLnNlcnZlcl91cmwodXJsX3By
b3RvY29sKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiL3Rlc3RoYXJuZXNzX3J1
bm5lci5odG1sIikKICAgICAgICAgc2VsZi5sb2dnZXIuZGVidWcoIkxvYWRpbmcgJXMiICUgdXJs
KQotICAgICAgICBzZWxmLnJ1bm5lcl9oYW5kbGUgPSBzZWxmLm1hcmlvbmV0dGUuY3VycmVudF93
aW5kb3dfaGFuZGxlCiAgICAgICAgIHRyeToKICAgICAgICAgICAgIHNlbGYuZGlzbWlzc19hbGVy
dChsYW1iZGE6IHNlbGYubWFyaW9uZXR0ZS5uYXZpZ2F0ZSh1cmwpKQogICAgICAgICBleGNlcHQg
RXhjZXB0aW9uIGFzIGU6CkBAIC0xMjgsMTIgKzEzNSwxMyBAQCBjbGFzcyBNYXJpb25ldHRlVGVz
dGhhcm5lc3NQcm90b2NvbFBhcnQoVGVzdGhhcm5lc3NQcm90b2NvbFBhcnQpOgogICAgICAgICAg
ICAgICAgICJMb2FkaW5nIGluaXRpYWwgcGFnZSAlcyBmYWlsZWQuIEVuc3VyZSB0aGF0IHRoZSAi
CiAgICAgICAgICAgICAgICAgInRoZXJlIGFyZSBubyBvdGhlciBwcm9ncmFtcyBib3VuZCB0byB0
aGlzIHBvcnQgYW5kICIKICAgICAgICAgICAgICAgICAidGhhdCB5b3VyIGZpcmV3YWxsIHJ1bGVz
IG9yIG5ldHdvcmsgc2V0dXAgZG9lcyBub3QgIgotICAgICAgICAgICAgICAgICJwcmV2ZW50IGFj
Y2Vzcy5cZSVzIiAlICh1cmwsIHRyYWNlYmFjay5mb3JtYXRfZXhjKGUpKSkKKyAgICAgICAgICAg
ICAgICByInByZXZlbnQgYWNjZXNzLlxlJXMiICUgKHVybCwgdHJhY2ViYWNrLmZvcm1hdF9leGMo
ZSkpKQogICAgICAgICAgICAgcmFpc2UKLSAgICAgICAgc2VsZi5wYXJlbnQuYmFzZS5leGVjdXRl
X3NjcmlwdCgKLSAgICAgICAgICAgICJkb2N1bWVudC50aXRsZSA9ICclcyciICUgdGhyZWFkaW5n
LmN1cnJlbnRfdGhyZWFkKCkubmFtZS5yZXBsYWNlKCInIiwgJyInKSkKKyAgICAgICAgc2VsZi5y
dW5uZXJfaGFuZGxlID0gc2VsZi5tYXJpb25ldHRlLmN1cnJlbnRfd2luZG93X2hhbmRsZQorICAg
ICAgICBmb3JtYXRfbWFwID0geyJ0aXRsZSI6IHRocmVhZGluZy5jdXJyZW50X3RocmVhZCgpLm5h
bWUucmVwbGFjZSgiJyIsICciJyl9CisgICAgICAgIHNlbGYucGFyZW50LmJhc2UuZXhlY3V0ZV9z
Y3JpcHQoc2VsZi5ydW5uZXJfc2NyaXB0ICUgZm9ybWF0X21hcCkKIAotICAgIGRlZiBjbG9zZV9v
bGRfd2luZG93cyhzZWxmLCB1cmxfcHJvdG9jb2wpOgorICAgIGRlZiBfY2xvc2Vfd2luZG93cyhz
ZWxmKToKICAgICAgICAgaGFuZGxlcyA9IHNlbGYubWFyaW9uZXR0ZS53aW5kb3dfaGFuZGxlcwog
ICAgICAgICBydW5uZXJfaGFuZGxlID0gTm9uZQogICAgICAgICB0cnk6CkBAIC0xNDYsMTggKzE1
NCwyMiBAQCBjbGFzcyBNYXJpb25ldHRlVGVzdGhhcm5lc3NQcm90b2NvbFBhcnQoVGVzdGhhcm5l
c3NQcm90b2NvbFBhcnQpOgogICAgICAgICAgICAgIyBidXQgaXQgaG9wZWZ1bGx5IGRvZXNuJ3Qg
bWF0dGVyIHRvbyBtdWNoIGlmIHRoYXQgYXNzdW1wdGlvbiBpcwogICAgICAgICAgICAgIyB3cm9u
ZyBzaW5jZSB3ZSByZWxvYWQgdGhlIHJ1bm5lciBpbiB0aGF0IHRhYiBhbnl3YXkuCiAgICAgICAg
ICAgICBydW5uZXJfaGFuZGxlID0gaGFuZGxlcy5wb3AoMCkKKyAgICAgICAgICAgIHNlbGYubG9n
Z2VyLmluZm8oIkNoYW5naW5nIGhhcm5lc3Nfd2luZG93IHRvICVzIiAlIHJ1bm5lcl9oYW5kbGUp
CiAKICAgICAgICAgZm9yIGhhbmRsZSBpbiBoYW5kbGVzOgogICAgICAgICAgICAgdHJ5OgotICAg
ICAgICAgICAgICAgIHNlbGYuZGlzbWlzc19hbGVydChsYW1iZGE6IHNlbGYubWFyaW9uZXR0ZS5z
d2l0Y2hfdG9fd2luZG93KGhhbmRsZSkpCisgICAgICAgICAgICAgICAgc2VsZi5sb2dnZXIuaW5m
bygiQ2xvc2luZyB3aW5kb3cgJXMiICUgaGFuZGxlKQogICAgICAgICAgICAgICAgIHNlbGYubWFy
aW9uZXR0ZS5zd2l0Y2hfdG9fd2luZG93KGhhbmRsZSkKLSAgICAgICAgICAgICAgICBzZWxmLm1h
cmlvbmV0dGUuY2xvc2UoKQorICAgICAgICAgICAgICAgIHNlbGYuZGlzbWlzc19hbGVydChsYW1i
ZGE6IHNlbGYubWFyaW9uZXR0ZS5jbG9zZSgpKQogICAgICAgICAgICAgZXhjZXB0IGVycm9ycy5O
b1N1Y2hXaW5kb3dFeGNlcHRpb246CiAgICAgICAgICAgICAgICAgIyBXZSBtaWdodCBoYXZlIHJh
Y2VkIHdpdGggdGhlIHByZXZpb3VzIHRlc3QgdG8gY2xvc2UgdGhpcwogICAgICAgICAgICAgICAg
ICMgd2luZG93LCBza2lwIGl0LgogICAgICAgICAgICAgICAgIHBhc3MKLQogICAgICAgICBzZWxm
Lm1hcmlvbmV0dGUuc3dpdGNoX3RvX3dpbmRvdyhydW5uZXJfaGFuZGxlKQorICAgICAgICByZXR1
cm4gcnVubmVyX2hhbmRsZQorCisgICAgZGVmIGNsb3NlX29sZF93aW5kb3dzKHNlbGYsIHVybF9w
cm90b2NvbCk6CisgICAgICAgIHJ1bm5lcl9oYW5kbGUgPSBzZWxmLl9jbG9zZV93aW5kb3dzKCkK
ICAgICAgICAgaWYgcnVubmVyX2hhbmRsZSAhPSBzZWxmLnJ1bm5lcl9oYW5kbGU6CiAgICAgICAg
ICAgICBzZWxmLmxvYWRfcnVubmVyKHVybF9wcm90b2NvbCkKICAgICAgICAgcmV0dXJuIHNlbGYu
cnVubmVyX2hhbmRsZQpAQCAtMTc1LDI5ICsxODcsNDMgQEAgY2xhc3MgTWFyaW9uZXR0ZVRlc3Ro
YXJuZXNzUHJvdG9jb2xQYXJ0KFRlc3RoYXJuZXNzUHJvdG9jb2xQYXJ0KToKICAgICAgICAgICAg
IGVsc2U6CiAgICAgICAgICAgICAgICAgYnJlYWsKIAotICAgIGRlZiBnZXRfdGVzdF93aW5kb3co
c2VsZiwgd2luZG93X2lkLCBwYXJlbnQpOgorICAgIGRlZiBnZXRfdGVzdF93aW5kb3coc2VsZiwg
d2luZG93X2lkLCBwYXJlbnQsIHRpbWVvdXQ9NSk6CisgICAgICAgICIiIkZpbmQgdGhlIHRlc3Qg
d2luZG93IGFtb25nc3QgYWxsIHRoZSBvcGVuIHdpbmRvd3MuCisgICAgICAgIFRoaXMgaXMgYXNz
dW1lZCB0byBiZSBlaXRoZXIgdGhlIG5hbWVkIHdpbmRvdyBvciB0aGUgb25lIGFmdGVyIHRoZSBw
YXJlbnQgaW4gdGhlIGxpc3Qgb2YKKyAgICAgICAgd2luZG93IGhhbmRsZXMKKworICAgICAgICA6
cGFyYW0gd2luZG93X2lkOiBUaGUgRE9NIG5hbWUgb2YgdGhlIFdpbmRvdworICAgICAgICA6cGFy
YW0gcGFyZW50OiBUaGUgaGFuZGxlIG9mIHRoZSBydW5uZXIgd2luZG93CisgICAgICAgIDpwYXJh
bSB0aW1lb3V0OiBUaGUgdGltZSBpbiBzZWNvbmRzIHRvIHdhaXQgZm9yIHRoZSB3aW5kb3cgdG8g
YXBwZWFyLiBUaGlzIGlzIGJlY2F1c2UgaW4KKyAgICAgICAgICAgICAgICAgICAgICAgIHNvbWUg
aW1wbGVtZW50YXRpb25zIHRoZXJlJ3MgYSByYWNlIGJldHdlZW4gY2FsbGluZyB3aW5kb3cub3Bl
biBhbmQgdGhlCisgICAgICAgICAgICAgICAgICAgICAgICB3aW5kb3cgYmVpbmcgYWRkZWQgdG8g
dGhlIGxpc3Qgb2YgV2ViRHJpdmVyIGFjY2Vzc2libGUgd2luZG93cy4iIiIKICAgICAgICAgdGVz
dF93aW5kb3cgPSBOb25lCi0gICAgICAgIGlmIHdpbmRvd19pZDoKLSAgICAgICAgICAgIHRyeToK
LSAgICAgICAgICAgICAgICAjIFRyeSB0aGlzLCBpdCdzIGluIExldmVsIDEgYnV0IG5vdGhpbmcg
c3VwcG9ydHMgaXQgeWV0Ci0gICAgICAgICAgICAgICAgd2luX3MgPSBzZWxmLnBhcmVudC5iYXNl
LmV4ZWN1dGVfc2NyaXB0KCJyZXR1cm4gd2luZG93WyclcyddOyIgJSBzZWxmLndpbmRvd19pZCkK
LSAgICAgICAgICAgICAgICB3aW5fb2JqID0ganNvbi5sb2Fkcyh3aW5fcykKLSAgICAgICAgICAg
ICAgICB0ZXN0X3dpbmRvdyA9IHdpbl9vYmpbIndpbmRvdy1mY2M2LTExZTUtYjRmOC0zMzBhODhh
YjlkN2YiXQotICAgICAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbjoKLSAgICAgICAgICAgICAgICBw
YXNzCisgICAgICAgIGVuZF90aW1lID0gdGltZS50aW1lKCkgKyB0aW1lb3V0CisgICAgICAgIHdo
aWxlIHRpbWUudGltZSgpIDwgZW5kX3RpbWU6CisgICAgICAgICAgICBpZiB3aW5kb3dfaWQ6Cisg
ICAgICAgICAgICAgICAgdHJ5OgorICAgICAgICAgICAgICAgICAgICAjIFRyeSB0aGlzLCBpdCdz
IGluIExldmVsIDEgYnV0IG5vdGhpbmcgc3VwcG9ydHMgaXQgeWV0CisgICAgICAgICAgICAgICAg
ICAgIHdpbl9zID0gc2VsZi5wYXJlbnQuYmFzZS5leGVjdXRlX3NjcmlwdCgicmV0dXJuIHdpbmRv
d1snJXMnXTsiICUgc2VsZi53aW5kb3dfaWQpCisgICAgICAgICAgICAgICAgICAgIHdpbl9vYmog
PSBqc29uLmxvYWRzKHdpbl9zKQorICAgICAgICAgICAgICAgICAgICB0ZXN0X3dpbmRvdyA9IHdp
bl9vYmpbIndpbmRvdy1mY2M2LTExZTUtYjRmOC0zMzBhODhhYjlkN2YiXQorICAgICAgICAgICAg
ICAgIGV4Y2VwdCBFeGNlcHRpb246CisgICAgICAgICAgICAgICAgICAgIHBhc3MKIAotICAgICAg
ICBpZiB0ZXN0X3dpbmRvdyBpcyBOb25lOgotICAgICAgICAgICAgYWZ0ZXIgPSBzZWxmLm1hcmlv
bmV0dGUud2luZG93X2hhbmRsZXMKLSAgICAgICAgICAgIGlmIGxlbihhZnRlcikgPT0gMjoKLSAg
ICAgICAgICAgICAgICB0ZXN0X3dpbmRvdyA9IG5leHQoaXRlcihzZXQoYWZ0ZXIpIC0gc2V0KFtw
YXJlbnRdKSkpCi0gICAgICAgICAgICBlbGlmIGFmdGVyWzBdID09IHBhcmVudCBhbmQgbGVuKGFm
dGVyKSA+IDI6Ci0gICAgICAgICAgICAgICAgIyBIb3BlIHRoZSBmaXJzdCBvbmUgaGVyZSBpcyB0
aGUgdGVzdCB3aW5kb3cKLSAgICAgICAgICAgICAgICB0ZXN0X3dpbmRvdyA9IGFmdGVyWzFdCi0g
ICAgICAgICAgICBlbHNlOgotICAgICAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigidW5hYmxl
IHRvIGZpbmQgdGVzdCB3aW5kb3ciKQorICAgICAgICAgICAgaWYgdGVzdF93aW5kb3cgaXMgTm9u
ZToKKyAgICAgICAgICAgICAgICBoYW5kbGVzID0gc2VsZi5tYXJpb25ldHRlLndpbmRvd19oYW5k
bGVzCisgICAgICAgICAgICAgICAgaWYgbGVuKGhhbmRsZXMpID09IDI6CisgICAgICAgICAgICAg
ICAgICAgIHRlc3Rfd2luZG93ID0gbmV4dChpdGVyKHNldChoYW5kbGVzKSAtIHtwYXJlbnR9KSkK
KyAgICAgICAgICAgICAgICBlbGlmIGxlbihoYW5kbGVzKSA+IDIgYW5kIGhhbmRsZXNbMF0gPT0g
cGFyZW50OgorICAgICAgICAgICAgICAgICAgICAjIEhvcGUgdGhlIGZpcnN0IG9uZSBoZXJlIGlz
IHRoZSB0ZXN0IHdpbmRvdworICAgICAgICAgICAgICAgICAgICB0ZXN0X3dpbmRvdyA9IGhhbmRs
ZXNbMV0KIAotICAgICAgICBhc3NlcnQgdGVzdF93aW5kb3cgIT0gcGFyZW50Ci0gICAgICAgIHJl
dHVybiB0ZXN0X3dpbmRvdworICAgICAgICAgICAgaWYgdGVzdF93aW5kb3cgaXMgbm90IE5vbmU6
CisgICAgICAgICAgICAgICAgYXNzZXJ0IHRlc3Rfd2luZG93ICE9IHBhcmVudAorICAgICAgICAg
ICAgICAgIHJldHVybiB0ZXN0X3dpbmRvdworCisgICAgICAgICAgICB0aW1lLnNsZWVwKDAuMSkK
KworICAgICAgICByYWlzZSBFeGNlcHRpb24oInVuYWJsZSB0byBmaW5kIHRlc3Qgd2luZG93IikK
IAogCiBjbGFzcyBNYXJpb25ldHRlUHJlZnNQcm90b2NvbFBhcnQoUHJlZnNQcm90b2NvbFBhcnQp
OgpAQCAtMjMxLDYgKzI1NywyNSBAQCBjbGFzcyBNYXJpb25ldHRlUHJlZnNQcm90b2NvbFBhcnQo
UHJlZnNQcm90b2NvbFBhcnQpOgogICAgICAgICAgICAgICAgIGNhc2UgcHJlZkludGVyZmFjZS5Q
UkVGX0lOVDoKICAgICAgICAgICAgICAgICAgICAgcHJlZkludGVyZmFjZS5zZXRJbnRQcmVmKHBy
ZWYsIHZhbHVlKTsKICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAg
Y2FzZSBwcmVmSW50ZXJmYWNlLlBSRUZfSU5WQUxJRDoKKyAgICAgICAgICAgICAgICAgICAgLy8g
UHJlZiBkb2Vzbid0IHNlZW0gdG8gYmUgZGVmaW5lZCBhbHJlYWR5OyBndWVzcyBhdCB0aGUKKyAg
ICAgICAgICAgICAgICAgICAgLy8gcmlnaHQgd2F5IHRvIHNldCBpdCBiYXNlZCBvbiB0aGUgdHlw
ZSBvZiB2YWx1ZSB3ZSBoYXZlLgorICAgICAgICAgICAgICAgICAgICBzd2l0Y2ggKHR5cGVvZiB2
YWx1ZSkgeworICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAiYm9vbGVhbiI6CisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgcHJlZkludGVyZmFjZS5zZXRCb29sUHJlZihwcmVmLCB2YWx1
ZSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAg
ICAgICAgICBjYXNlICJzdHJpbmciOgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByZWZJ
bnRlcmZhY2Uuc2V0Q2hhclByZWYocHJlZiwgdmFsdWUpOworICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAibnVtYmVyIjoKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBwcmVmSW50ZXJmYWNlLnNldEludFByZWYocHJlZiwg
dmFsdWUpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAg
ICAgICAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBu
ZXcgRXJyb3IoIlVua25vd24gcHJlZiB2YWx1ZSB0eXBlOiAiICsgKHR5cGVvZiB2YWx1ZSkpOwor
ICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAg
ICAgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigi
VW5rbm93biBwcmVmIHR5cGUgIiArIHR5cGUpOwogICAgICAgICAgICAgfQogICAgICAgICAgICAg
IiIiICUgKG5hbWUsIHZhbHVlKQogICAgICAgICB3aXRoIHNlbGYubWFyaW9uZXR0ZS51c2luZ19j
b250ZXh0KHNlbGYubWFyaW9uZXR0ZS5DT05URVhUX0NIUk9NRSk6CkBAIC0yODEsMTAgKzMyNiwx
MCBAQCBjbGFzcyBNYXJpb25ldHRlU3RvcmFnZVByb3RvY29sUGFydChTdG9yYWdlUHJvdG9jb2xQ
YXJ0KToKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLm5ld1VSSSh1cmwpOwogICAg
ICAgICAgICAgbGV0IHNzbSA9IENvbXBvbmVudHMuY2xhc3Nlc1siQG1vemlsbGEub3JnL3Njcmlw
dHNlY3VyaXR5bWFuYWdlcjsxIl0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLmdl
dFNlcnZpY2UoQ2kubnNJU2NyaXB0U2VjdXJpdHlNYW5hZ2VyKTsKLSAgICAgICAgICAgIGxldCBw
cmluY2lwYWwgPSBzc20uY3JlYXRlQ29kZWJhc2VQcmluY2lwYWwodXJpLCB7fSk7CisgICAgICAg
ICAgICBsZXQgcHJpbmNpcGFsID0gc3NtLmNyZWF0ZUNvbnRlbnRQcmluY2lwYWwodXJpLCB7fSk7
CiAgICAgICAgICAgICBsZXQgcW1zID0gQ29tcG9uZW50cy5jbGFzc2VzWyJAbW96aWxsYS5vcmcv
ZG9tL3F1b3RhLW1hbmFnZXItc2VydmljZTsxIl0KICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgLmdldFNlcnZpY2UoQ29tcG9uZW50cy5pbnRlcmZhY2VzLm5zSVF1b3RhTWFuYWdlclNl
cnZpY2UpOwotICAgICAgICAgICAgcW1zLmNsZWFyU3RvcmFnZXNGb3JQcmluY2lwYWwocHJpbmNp
cGFsLCAiZGVmYXVsdCIsIHRydWUpOworICAgICAgICAgICAgcW1zLmNsZWFyU3RvcmFnZXNGb3JQ
cmluY2lwYWwocHJpbmNpcGFsLCAiZGVmYXVsdCIsIG51bGwsIHRydWUpOwogICAgICAgICAgICAg
IiIiICUgdXJsCiAgICAgICAgIHdpdGggc2VsZi5tYXJpb25ldHRlLnVzaW5nX2NvbnRleHQoc2Vs
Zi5tYXJpb25ldHRlLkNPTlRFWFRfQ0hST01FKToKICAgICAgICAgICAgIHNlbGYubWFyaW9uZXR0
ZS5leGVjdXRlX3NjcmlwdChzY3JpcHQpCkBAIC0zMTYsNyArMzYxLDcgQEAgY2xhc3MgTWFyaW9u
ZXR0ZUFzc2VydHNQcm90b2NvbFBhcnQoQXNzZXJ0c1Byb3RvY29sUGFydCk6CiAgICAgICAgICAg
ICBleGNlcHQgZXJyb3JzLk5vU3VjaFdpbmRvd0V4Y2VwdGlvbjoKICAgICAgICAgICAgICAgICAj
IElmIHRoZSB3aW5kb3cgd2FzIGFscmVhZHkgY2xvc2VkCiAgICAgICAgICAgICAgICAgc2VsZi5w
YXJlbnQubG9nZ2VyLndhcm5pbmcoIkZhaWxlZCB0byBnZXQgYXNzZXJ0aW9uIGNvdW50OyB3aW5k
b3cgd2FzIGNsb3NlZCIpCi0gICAgICAgICAgICBleGNlcHQgKGVycm9ycy5NYXJpb25ldHRlRXhj
ZXB0aW9uLCBzb2NrZXQuZXJyb3IpOgorICAgICAgICAgICAgZXhjZXB0IChlcnJvcnMuTWFyaW9u
ZXR0ZUV4Y2VwdGlvbiwgSU9FcnJvcik6CiAgICAgICAgICAgICAgICAgIyBUaGlzIHVzdWFsbHkg
aGFwcGVucyBpZiB0aGUgcHJvY2VzcyBjcmFzaGVkCiAgICAgICAgICAgICAgICAgcGFzcwogCkBA
IC0zNDEsNiArMzg2LDkgQEAgY2xhc3MgTWFyaW9uZXR0ZVNlbGVjdG9yUHJvdG9jb2xQYXJ0KFNl
bGVjdG9yUHJvdG9jb2xQYXJ0KToKICAgICBkZWYgZWxlbWVudHNfYnlfc2VsZWN0b3Ioc2VsZiwg
c2VsZWN0b3IpOgogICAgICAgICByZXR1cm4gc2VsZi5tYXJpb25ldHRlLmZpbmRfZWxlbWVudHMo
ImNzcyBzZWxlY3RvciIsIHNlbGVjdG9yKQogCisgICAgZGVmIGVsZW1lbnRzX2J5X3NlbGVjdG9y
X2FuZF9mcmFtZShzZWxmLCBlbGVtZW50X3NlbGVjdG9yLCBmcmFtZSk6CisgICAgICAgIHJldHVy
biBzZWxmLm1hcmlvbmV0dGUuZmluZF9lbGVtZW50cygiY3NzIHNlbGVjdG9yIiwgZWxlbWVudF9z
ZWxlY3RvcikKKwogCiBjbGFzcyBNYXJpb25ldHRlQ2xpY2tQcm90b2NvbFBhcnQoQ2xpY2tQcm90
b2NvbFBhcnQpOgogICAgIGRlZiBzZXR1cChzZWxmKToKQEAgLTM1OCw2ICs0MDYsMTYgQEAgY2xh
c3MgTWFyaW9uZXR0ZVNlbmRLZXlzUHJvdG9jb2xQYXJ0KFNlbmRLZXlzUHJvdG9jb2xQYXJ0KToK
ICAgICAgICAgcmV0dXJuIGVsZW1lbnQuc2VuZF9rZXlzKGtleXMpCiAKIAorY2xhc3MgTWFyaW9u
ZXR0ZUFjdGlvblNlcXVlbmNlUHJvdG9jb2xQYXJ0KEFjdGlvblNlcXVlbmNlUHJvdG9jb2xQYXJ0
KToKKyAgICBkZWYgc2V0dXAoc2VsZik6CisgICAgICAgIHNlbGYubWFyaW9uZXR0ZSA9IHNlbGYu
cGFyZW50Lm1hcmlvbmV0dGUKKworICAgIGRlZiBzZW5kX2FjdGlvbnMoc2VsZiwgYWN0aW9ucyk6
CisgICAgICAgIGFjdGlvbnMgPSBzZWxmLm1hcmlvbmV0dGUuX3RvX2pzb24oYWN0aW9ucykKKyAg
ICAgICAgc2VsZi5sb2dnZXIuaW5mbyhhY3Rpb25zKQorICAgICAgICBzZWxmLm1hcmlvbmV0dGUu
X3NlbmRfbWVzc2FnZSgiV2ViRHJpdmVyOlBlcmZvcm1BY3Rpb25zIiwgYWN0aW9ucykKKworCiBj
bGFzcyBNYXJpb25ldHRlVGVzdERyaXZlclByb3RvY29sUGFydChUZXN0RHJpdmVyUHJvdG9jb2xQ
YXJ0KToKICAgICBkZWYgc2V0dXAoc2VsZik6CiAgICAgICAgIHNlbGYubWFyaW9uZXR0ZSA9IHNl
bGYucGFyZW50Lm1hcmlvbmV0dGUKQEAgLTM4MSw3ICs0MzksNyBAQCBjbGFzcyBNYXJpb25ldHRl
Q292ZXJhZ2VQcm90b2NvbFBhcnQoQ292ZXJhZ2VQcm90b2NvbFBhcnQpOgogICAgICAgICAgICAg
cmV0dXJuCiAKICAgICAgICAgc2NyaXB0ID0gIiIiCi0gICAgICAgICAgICBDaHJvbWVVdGlscy5p
bXBvcnQoImNocm9tZTovL21hcmlvbmV0dGUvY29udGVudC9QZXJUZXN0Q292ZXJhZ2VVdGlscy5q
c20iKTsKKyAgICAgICAgICAgIGNvbnN0IHtQZXJUZXN0Q292ZXJhZ2VVdGlsc30gPSBDaHJvbWVV
dGlscy5pbXBvcnQoImNocm9tZTovL21hcmlvbmV0dGUvY29udGVudC9QZXJUZXN0Q292ZXJhZ2VV
dGlscy5qc20iKTsKICAgICAgICAgICAgIHJldHVybiBQZXJUZXN0Q292ZXJhZ2VVdGlscy5lbmFi
bGVkOwogICAgICAgICAgICAgIiIiCiAgICAgICAgIHdpdGggc2VsZi5tYXJpb25ldHRlLnVzaW5n
X2NvbnRleHQoc2VsZi5tYXJpb25ldHRlLkNPTlRFWFRfQ0hST01FKToKQEAgLTM5MSw3ICs0NDks
NyBAQCBjbGFzcyBNYXJpb25ldHRlQ292ZXJhZ2VQcm90b2NvbFBhcnQoQ292ZXJhZ2VQcm90b2Nv
bFBhcnQpOgogICAgICAgICBzY3JpcHQgPSAiIiIKICAgICAgICAgICAgIHZhciBjYWxsYmFjayA9
IGFyZ3VtZW50c1thcmd1bWVudHMubGVuZ3RoIC0gMV07CiAKLSAgICAgICAgICAgIENocm9tZVV0
aWxzLmltcG9ydCgiY2hyb21lOi8vbWFyaW9uZXR0ZS9jb250ZW50L1BlclRlc3RDb3ZlcmFnZVV0
aWxzLmpzbSIpOworICAgICAgICAgICAgY29uc3Qge1BlclRlc3RDb3ZlcmFnZVV0aWxzfSA9IENo
cm9tZVV0aWxzLmltcG9ydCgiY2hyb21lOi8vbWFyaW9uZXR0ZS9jb250ZW50L1BlclRlc3RDb3Zl
cmFnZVV0aWxzLmpzbSIpOwogICAgICAgICAgICAgUGVyVGVzdENvdmVyYWdlVXRpbHMuYmVmb3Jl
VGVzdCgpLnRoZW4oY2FsbGJhY2ssIGNhbGxiYWNrKTsKICAgICAgICAgICAgICIiIgogICAgICAg
ICB3aXRoIHNlbGYubWFyaW9uZXR0ZS51c2luZ19jb250ZXh0KHNlbGYubWFyaW9uZXR0ZS5DT05U
RVhUX0NIUk9NRSk6CkBAIC0zOTksNyArNDU3LDcgQEAgY2xhc3MgTWFyaW9uZXR0ZUNvdmVyYWdl
UHJvdG9jb2xQYXJ0KENvdmVyYWdlUHJvdG9jb2xQYXJ0KToKICAgICAgICAgICAgICAgICBlcnJv
ciA9IHNlbGYubWFyaW9uZXR0ZS5leGVjdXRlX2FzeW5jX3NjcmlwdChzY3JpcHQpCiAgICAgICAg
ICAgICAgICAgaWYgZXJyb3IgaXMgbm90IE5vbmU6CiAgICAgICAgICAgICAgICAgICAgIHJhaXNl
IEV4Y2VwdGlvbignRmFpbHVyZSB3aGlsZSByZXNldHRpbmcgY291bnRlcnM6ICVzJyAlIGpzb24u
ZHVtcHMoZXJyb3IpKQotICAgICAgICAgICAgZXhjZXB0IChlcnJvcnMuTWFyaW9uZXR0ZUV4Y2Vw
dGlvbiwgc29ja2V0LmVycm9yKToKKyAgICAgICAgICAgIGV4Y2VwdCAoZXJyb3JzLk1hcmlvbmV0
dGVFeGNlcHRpb24sIElPRXJyb3IpOgogICAgICAgICAgICAgICAgICMgVGhpcyB1c3VhbGx5IGhh
cHBlbnMgaWYgdGhlIHByb2Nlc3MgY3Jhc2hlZAogICAgICAgICAgICAgICAgIHBhc3MKIApAQCAt
NDExLDcgKzQ2OSw3IEBAIGNsYXNzIE1hcmlvbmV0dGVDb3ZlcmFnZVByb3RvY29sUGFydChDb3Zl
cmFnZVByb3RvY29sUGFydCk6CiAgICAgICAgIHNjcmlwdCA9ICIiIgogICAgICAgICAgICAgdmFy
IGNhbGxiYWNrID0gYXJndW1lbnRzW2FyZ3VtZW50cy5sZW5ndGggLSAxXTsKIAotICAgICAgICAg
ICAgQ2hyb21lVXRpbHMuaW1wb3J0KCJjaHJvbWU6Ly9tYXJpb25ldHRlL2NvbnRlbnQvUGVyVGVz
dENvdmVyYWdlVXRpbHMuanNtIik7CisgICAgICAgICAgICBjb25zdCB7UGVyVGVzdENvdmVyYWdl
VXRpbHN9ID0gQ2hyb21lVXRpbHMuaW1wb3J0KCJjaHJvbWU6Ly9tYXJpb25ldHRlL2NvbnRlbnQv
UGVyVGVzdENvdmVyYWdlVXRpbHMuanNtIik7CiAgICAgICAgICAgICBQZXJUZXN0Q292ZXJhZ2VV
dGlscy5hZnRlclRlc3QoKS50aGVuKGNhbGxiYWNrLCBjYWxsYmFjayk7CiAgICAgICAgICAgICAi
IiIKICAgICAgICAgd2l0aCBzZWxmLm1hcmlvbmV0dGUudXNpbmdfY29udGV4dChzZWxmLm1hcmlv
bmV0dGUuQ09OVEVYVF9DSFJPTUUpOgpAQCAtNDE5LDcgKzQ3Nyw3IEBAIGNsYXNzIE1hcmlvbmV0
dGVDb3ZlcmFnZVByb3RvY29sUGFydChDb3ZlcmFnZVByb3RvY29sUGFydCk6CiAgICAgICAgICAg
ICAgICAgZXJyb3IgPSBzZWxmLm1hcmlvbmV0dGUuZXhlY3V0ZV9hc3luY19zY3JpcHQoc2NyaXB0
KQogICAgICAgICAgICAgICAgIGlmIGVycm9yIGlzIG5vdCBOb25lOgogICAgICAgICAgICAgICAg
ICAgICByYWlzZSBFeGNlcHRpb24oJ0ZhaWx1cmUgd2hpbGUgZHVtcGluZyBjb3VudGVyczogJXMn
ICUganNvbi5kdW1wcyhlcnJvcikpCi0gICAgICAgICAgICBleGNlcHQgKGVycm9ycy5NYXJpb25l
dHRlRXhjZXB0aW9uLCBzb2NrZXQuZXJyb3IpOgorICAgICAgICAgICAgZXhjZXB0IChlcnJvcnMu
TWFyaW9uZXR0ZUV4Y2VwdGlvbiwgSU9FcnJvcik6CiAgICAgICAgICAgICAgICAgIyBUaGlzIHVz
dWFsbHkgaGFwcGVucyBpZiB0aGUgcHJvY2VzcyBjcmFzaGVkCiAgICAgICAgICAgICAgICAgcGFz
cwogCkBAIC00MzIsNiArNDkwLDcgQEAgY2xhc3MgTWFyaW9uZXR0ZVByb3RvY29sKFByb3RvY29s
KToKICAgICAgICAgICAgICAgICAgIE1hcmlvbmV0dGVTZWxlY3RvclByb3RvY29sUGFydCwKICAg
ICAgICAgICAgICAgICAgIE1hcmlvbmV0dGVDbGlja1Byb3RvY29sUGFydCwKICAgICAgICAgICAg
ICAgICAgIE1hcmlvbmV0dGVTZW5kS2V5c1Byb3RvY29sUGFydCwKKyAgICAgICAgICAgICAgICAg
IE1hcmlvbmV0dGVBY3Rpb25TZXF1ZW5jZVByb3RvY29sUGFydCwKICAgICAgICAgICAgICAgICAg
IE1hcmlvbmV0dGVUZXN0RHJpdmVyUHJvdG9jb2xQYXJ0LAogICAgICAgICAgICAgICAgICAgTWFy
aW9uZXR0ZUFzc2VydHNQcm90b2NvbFBhcnQsCiAgICAgICAgICAgICAgICAgICBNYXJpb25ldHRl
Q292ZXJhZ2VQcm90b2NvbFBhcnRdCkBAIC00NzEsMTUgKzUzMCwxNiBAQCBjbGFzcyBNYXJpb25l
dHRlUHJvdG9jb2woUHJvdG9jb2wpOgogICAgICAgICBzZWxmLmxvZ2dlci5kZWJ1ZygiTWFyaW9u
ZXR0ZSBzZXNzaW9uIHN0YXJ0ZWQiKQogCiAgICAgZGVmIGFmdGVyX2Nvbm5lY3Qoc2VsZik6Ci0g
ICAgICAgIHNlbGYudGVzdGhhcm5lc3MubG9hZF9ydW5uZXIoc2VsZi5leGVjdXRvci5sYXN0X2Vu
dmlyb25tZW50WyJwcm90b2NvbCJdKQorICAgICAgICBwYXNzCiAKICAgICBkZWYgdGVhcmRvd24o
c2VsZik6Ci0gICAgICAgIHRyeToKLSAgICAgICAgICAgIHNlbGYubWFyaW9uZXR0ZS5fcmVxdWVz
dF9pbl9hcHBfc2h1dGRvd24oKQotICAgICAgICAgICAgc2VsZi5tYXJpb25ldHRlLmRlbGV0ZV9z
ZXNzaW9uKHNlbmRfcmVxdWVzdD1GYWxzZSkKLSAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbjoKLSAg
ICAgICAgICAgICMgVGhpcyBpcyB0eXBpY2FsbHkgYmVjYXVzZSB0aGUgc2Vzc2lvbiBuZXZlciBz
dGFydGVkCi0gICAgICAgICAgICBwYXNzCisgICAgICAgIGlmIHNlbGYubWFyaW9uZXR0ZSBhbmQg
c2VsZi5tYXJpb25ldHRlLnNlc3Npb25faWQ6CisgICAgICAgICAgICB0cnk6CisgICAgICAgICAg
ICAgICAgc2VsZi5tYXJpb25ldHRlLl9yZXF1ZXN0X2luX2FwcF9zaHV0ZG93bigpCisgICAgICAg
ICAgICAgICAgc2VsZi5tYXJpb25ldHRlLmRlbGV0ZV9zZXNzaW9uKHNlbmRfcmVxdWVzdD1GYWxz
ZSkKKyAgICAgICAgICAgIGV4Y2VwdCBFeGNlcHRpb246CisgICAgICAgICAgICAgICAgIyBUaGlz
IGlzIHR5cGljYWxseSBiZWNhdXNlIHRoZSBzZXNzaW9uIG5ldmVyIHN0YXJ0ZWQKKyAgICAgICAg
ICAgICAgICBwYXNzCiAgICAgICAgIGlmIHNlbGYubWFyaW9uZXR0ZSBpcyBub3QgTm9uZToKICAg
ICAgICAgICAgIGRlbCBzZWxmLm1hcmlvbmV0dGUKICAgICAgICAgc3VwZXIoTWFyaW9uZXR0ZVBy
b3RvY29sLCBzZWxmKS50ZWFyZG93bigpCkBAIC01MDYsMjcgKzU2NiwxNCBAQCBjbGFzcyBNYXJp
b25ldHRlUHJvdG9jb2woUHJvdG9jb2wpOgogICAgICAgICAgICAgc2VsZi5wcmVmcy5zZXQobmFt
ZSwgdmFsdWUpCiAKIAotY2xhc3MgRXhlY3V0ZUFzeW5jU2NyaXB0UnVuKG9iamVjdCk6Ci0gICAg
ZGVmIF9faW5pdF9fKHNlbGYsIGxvZ2dlciwgZnVuYywgcHJvdG9jb2wsIHVybCwgdGltZW91dCk6
Ci0gICAgICAgIHNlbGYubG9nZ2VyID0gbG9nZ2VyCi0gICAgICAgIHNlbGYucmVzdWx0ID0gKE5v
bmUsIE5vbmUpCi0gICAgICAgIHNlbGYucHJvdG9jb2wgPSBwcm90b2NvbAotICAgICAgICBzZWxm
LmZ1bmMgPSBmdW5jCi0gICAgICAgIHNlbGYudXJsID0gdXJsCi0gICAgICAgIHNlbGYudGltZW91
dCA9IHRpbWVvdXQKLSAgICAgICAgc2VsZi5yZXN1bHRfZmxhZyA9IHRocmVhZGluZy5FdmVudCgp
Ci0KLSAgICBkZWYgcnVuKHNlbGYpOgotICAgICAgICBpbmRleCA9IHNlbGYudXJsLnJmaW5kKCIv
c3RvcmFnZS8iKQotICAgICAgICBpZiBpbmRleCAhPSAtMToKLSAgICAgICAgICAgICMgQ2xlYXIg
c3RvcmFnZQotICAgICAgICAgICAgc2VsZi5wcm90b2NvbC5zdG9yYWdlLmNsZWFyX29yaWdpbihz
ZWxmLnVybCkKK2NsYXNzIEV4ZWN1dGVBc3luY1NjcmlwdFJ1bihUaW1lZFJ1bm5lcik6CiAKKyAg
ICBkZWYgc2V0X3RpbWVvdXQoc2VsZik6CiAgICAgICAgIHRpbWVvdXQgPSBzZWxmLnRpbWVvdXQK
IAogICAgICAgICB0cnk6CiAgICAgICAgICAgICBpZiB0aW1lb3V0IGlzIG5vdCBOb25lOgotICAg
ICAgICAgICAgICAgIHNlbGYucHJvdG9jb2wuYmFzZS5zZXRfdGltZW91dCh0aW1lb3V0ICsgZXh0
cmFfdGltZW91dCkKKyAgICAgICAgICAgICAgICBzZWxmLnByb3RvY29sLmJhc2Uuc2V0X3RpbWVv
dXQodGltZW91dCArIHNlbGYuZXh0cmFfdGltZW91dCkKICAgICAgICAgICAgIGVsc2U6CiAgICAg
ICAgICAgICAgICAgIyBXZSBqdXN0IHdhbnQgaXQgdG8gbmV2ZXIgdGltZSBvdXQsIHJlYWxseSwg
YnV0IG1hcmlvbmV0dGUgZG9lc24ndAogICAgICAgICAgICAgICAgICMgbWFrZSB0aGF0IHBvc3Np
YmxlLiBJdCBhbHNvIHNlZW1zIHRvIHRpbWUgb3V0IGltbWVkaWF0ZWx5IGlmIHRoZQpAQCAtNTM2
LDU3ICs1ODMsNDAgQEAgY2xhc3MgRXhlY3V0ZUFzeW5jU2NyaXB0UnVuKG9iamVjdCk6CiAgICAg
ICAgICAgICBzZWxmLmxvZ2dlci5lcnJvcigiTG9zdCBtYXJpb25ldHRlIGNvbm5lY3Rpb24gYmVm
b3JlIHN0YXJ0aW5nIHRlc3QiKQogICAgICAgICAgICAgcmV0dXJuIFN0b3AKIAotICAgICAgICBp
ZiB0aW1lb3V0IGlzIG5vdCBOb25lOgotICAgICAgICAgICAgd2FpdF90aW1lb3V0ID0gdGltZW91
dCArIDIgKiBleHRyYV90aW1lb3V0Ci0gICAgICAgIGVsc2U6Ci0gICAgICAgICAgICB3YWl0X3Rp
bWVvdXQgPSBOb25lCi0KLSAgICAgICAgdGltZXIgPSB0aHJlYWRpbmcuVGltZXIod2FpdF90aW1l
b3V0LCBzZWxmLl90aW1lb3V0KQotICAgICAgICB0aW1lci5zdGFydCgpCi0KLSAgICAgICAgc2Vs
Zi5fcnVuKCkKLQotICAgICAgICBzZWxmLnJlc3VsdF9mbGFnLndhaXQoKQotICAgICAgICB0aW1l
ci5jYW5jZWwoKQotCi0gICAgICAgIGlmIHNlbGYucmVzdWx0ID09IChOb25lLCBOb25lKToKLSAg
ICAgICAgICAgIHNlbGYubG9nZ2VyLmRlYnVnKCJUaW1lZCBvdXQgd2FpdGluZyBmb3IgYSByZXN1
bHQiKQotICAgICAgICAgICAgc2VsZi5yZXN1bHQgPSBGYWxzZSwgKCJFWFRFUk5BTC1USU1FT1VU
IiwgTm9uZSkKLSAgICAgICAgZWxpZiBzZWxmLnJlc3VsdFsxXSBpcyBOb25lOgotICAgICAgICAg
ICAgIyBXZSBkaWRuJ3QgZ2V0IGFueSBkYXRhIGJhY2sgZnJvbSB0aGUgdGVzdCwgc28gY2hlY2sg
aWYgdGhlCi0gICAgICAgICAgICAjIGJyb3dzZXIgaXMgc3RpbGwgcmVzcG9uc2l2ZQotICAgICAg
ICAgICAgaWYgc2VsZi5wcm90b2NvbC5pc19hbGl2ZToKLSAgICAgICAgICAgICAgICBzZWxmLnJl
c3VsdCA9IEZhbHNlLCAoIklOVEVSTkFMLUVSUk9SIiwgTm9uZSkKLSAgICAgICAgICAgIGVsc2U6
Ci0gICAgICAgICAgICAgICAgc2VsZi5yZXN1bHQgPSBGYWxzZSwgKCJDUkFTSCIsIE5vbmUpCi0g
ICAgICAgIHJldHVybiBzZWxmLnJlc3VsdAorICAgIGRlZiBiZWZvcmVfcnVuKHNlbGYpOgorICAg
ICAgICBpbmRleCA9IHNlbGYudXJsLnJmaW5kKCIvc3RvcmFnZS8iKQorICAgICAgICBpZiBpbmRl
eCAhPSAtMToKKyAgICAgICAgICAgICMgQ2xlYXIgc3RvcmFnZQorICAgICAgICAgICAgc2VsZi5w
cm90b2NvbC5zdG9yYWdlLmNsZWFyX29yaWdpbihzZWxmLnVybCkKIAotICAgIGRlZiBfcnVuKHNl
bGYpOgorICAgIGRlZiBydW5fZnVuYyhzZWxmKToKICAgICAgICAgdHJ5OgogICAgICAgICAgICAg
c2VsZi5yZXN1bHQgPSBUcnVlLCBzZWxmLmZ1bmMoc2VsZi5wcm90b2NvbCwgc2VsZi51cmwsIHNl
bGYudGltZW91dCkKICAgICAgICAgZXhjZXB0IGVycm9ycy5TY3JpcHRUaW1lb3V0RXhjZXB0aW9u
OgogICAgICAgICAgICAgc2VsZi5sb2dnZXIuZGVidWcoIkdvdCBhIG1hcmlvbmV0dGUgdGltZW91
dCIpCiAgICAgICAgICAgICBzZWxmLnJlc3VsdCA9IEZhbHNlLCAoIkVYVEVSTkFMLVRJTUVPVVQi
LCBOb25lKQotICAgICAgICBleGNlcHQgKHNvY2tldC50aW1lb3V0LCBJT0Vycm9yKToKKyAgICAg
ICAgZXhjZXB0IElPRXJyb3I6CiAgICAgICAgICAgICAjIFRoaXMgY2FuIGhhcHBlbiBvbiBhIGNy
YXNoCiAgICAgICAgICAgICAjIEFsc28sIHNob3VsZCBjaGVjayBhZnRlciB0aGUgdGVzdCBpZiB0
aGUgZmlyZWZveCBwcm9jZXNzIGlzIHN0aWxsIHJ1bm5pbmcKICAgICAgICAgICAgICMgYW5kIG90
aGVyd2lzZSBpZ25vcmUgYW55IG90aGVyIHJlc3VsdCBhbmQgc2V0IGl0IHRvIGNyYXNoCisgICAg
ICAgICAgICBzZWxmLmxvZ2dlci5pbmZvKCJJT0Vycm9yIG9uIGNvbW1hbmQsIHNldHRpbmcgc3Rh
dHVzIHRvIENSQVNIIikKKyAgICAgICAgICAgIHNlbGYucmVzdWx0ID0gRmFsc2UsICgiQ1JBU0gi
LCBOb25lKQorICAgICAgICBleGNlcHQgZXJyb3JzLk5vU3VjaFdpbmRvd0V4Y2VwdGlvbjoKKyAg
ICAgICAgICAgIHNlbGYubG9nZ2VyLmluZm8oIk5vU3VjaFdpbmRvd0V4Y2VwdGlvbiBvbiBjb21t
YW5kLCBzZXR0aW5nIHN0YXR1cyB0byBDUkFTSCIpCiAgICAgICAgICAgICBzZWxmLnJlc3VsdCA9
IEZhbHNlLCAoIkNSQVNIIiwgTm9uZSkKICAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBlOgot
ICAgICAgICAgICAgbWVzc2FnZSA9IGdldGF0dHIoZSwgIm1lc3NhZ2UiLCAiIikKLSAgICAgICAg
ICAgIGlmIG1lc3NhZ2U6Ci0gICAgICAgICAgICAgICAgbWVzc2FnZSArPSAiXG4iCi0gICAgICAg
ICAgICBtZXNzYWdlICs9IHRyYWNlYmFjay5mb3JtYXRfZXhjKGUpCi0gICAgICAgICAgICBzZWxm
LmxvZ2dlci53YXJuaW5nKG1lc3NhZ2UpCi0gICAgICAgICAgICBzZWxmLnJlc3VsdCA9IEZhbHNl
LCAoIklOVEVSTkFMLUVSUk9SIiwgTm9uZSkKLQorICAgICAgICAgICAgaWYgaXNpbnN0YW5jZShl
LCBlcnJvcnMuSmF2YXNjcmlwdEV4Y2VwdGlvbikgYW5kIGUubWVzc2FnZS5zdGFydHN3aXRoKCJE
b2N1bWVudCB3YXMgdW5sb2FkZWQiKToKKyAgICAgICAgICAgICAgICBtZXNzYWdlID0gIkRvY3Vt
ZW50IHVubG9hZGVkOyBtYXliZSB0ZXN0IG5hdmlnYXRlZCB0aGUgdG9wLWxldmVsLWJyb3dzaW5n
IGNvbnRleHQ/IgorICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICBtZXNzYWdlID0g
Z2V0YXR0cihlLCAibWVzc2FnZSIsICIiKQorICAgICAgICAgICAgICAgIGlmIG1lc3NhZ2U6Cisg
ICAgICAgICAgICAgICAgICAgIG1lc3NhZ2UgKz0gIlxuIgorICAgICAgICAgICAgICAgIG1lc3Nh
Z2UgKz0gdHJhY2ViYWNrLmZvcm1hdF9leGMoZSkKKyAgICAgICAgICAgICAgICBzZWxmLmxvZ2dl
ci53YXJuaW5nKHRyYWNlYmFjay5mb3JtYXRfZXhjKCkpCisgICAgICAgICAgICBzZWxmLnJlc3Vs
dCA9IEZhbHNlLCAoIklOVEVSTkFMLUVSUk9SIiwgbWVzc2FnZSkKICAgICAgICAgZmluYWxseToK
ICAgICAgICAgICAgIHNlbGYucmVzdWx0X2ZsYWcuc2V0KCkKIAotICAgIGRlZiBfdGltZW91dChz
ZWxmKToKLSAgICAgICAgc2VsZi5yZXN1bHQgPSBGYWxzZSwgKCJFWFRFUk5BTC1USU1FT1VUIiwg
Tm9uZSkKLSAgICAgICAgc2VsZi5yZXN1bHRfZmxhZy5zZXQoKQotCiAKIGNsYXNzIE1hcmlvbmV0
dGVUZXN0aGFybmVzc0V4ZWN1dG9yKFRlc3RoYXJuZXNzRXhlY3V0b3IpOgogICAgIHN1cHBvcnRz
X3Rlc3Rkcml2ZXIgPSBUcnVlCkBAIC01OTgsOSArNjI4LDE0IEBAIGNsYXNzIE1hcmlvbmV0dGVU
ZXN0aGFybmVzc0V4ZWN1dG9yKFRlc3RoYXJuZXNzRXhlY3V0b3IpOgogICAgICAgICBUZXN0aGFy
bmVzc0V4ZWN1dG9yLl9faW5pdF9fKHNlbGYsIGJyb3dzZXIsIHNlcnZlcl9jb25maWcsCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGltZW91dF9tdWx0aXBsaWVyPXRpbWVv
dXRfbXVsdGlwbGllciwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWJ1
Z19pbmZvPWRlYnVnX2luZm8pCi0gICAgICAgIHNlbGYucHJvdG9jb2wgPSBNYXJpb25ldHRlUHJv
dG9jb2woc2VsZiwgYnJvd3NlciwgY2FwYWJpbGl0aWVzLCB0aW1lb3V0X211bHRpcGxpZXIsIGt3
YXJnc1siZTEwcyJdLCBjY292KQotICAgICAgICBzZWxmLnNjcmlwdCA9IG9wZW4ob3MucGF0aC5q
b2luKGhlcmUsICJ0ZXN0aGFybmVzc193ZWJkcml2ZXIuanMiKSkucmVhZCgpCi0gICAgICAgIHNl
bGYuc2NyaXB0X3Jlc3VtZSA9IG9wZW4ob3MucGF0aC5qb2luKGhlcmUsICJ0ZXN0aGFybmVzc193
ZWJkcml2ZXJfcmVzdW1lLmpzIikpLnJlYWQoKQorICAgICAgICBzZWxmLnByb3RvY29sID0gTWFy
aW9uZXR0ZVByb3RvY29sKHNlbGYsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgYnJvd3NlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBjYXBhYmlsaXRpZXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgdGltZW91dF9tdWx0aXBsaWVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGt3YXJnc1siZTEwcyJdLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGNjb3YpCisgICAgICAgIHdpdGggb3Blbihvcy5wYXRoLmpvaW4oaGVy
ZSwgInRlc3RoYXJuZXNzX3dlYmRyaXZlcl9yZXN1bWUuanMiKSkgYXMgZjoKKyAgICAgICAgICAg
IHNlbGYuc2NyaXB0X3Jlc3VtZSA9IGYucmVhZCgpCiAgICAgICAgIHNlbGYuY2xvc2VfYWZ0ZXJf
ZG9uZSA9IGNsb3NlX2FmdGVyX2RvbmUKICAgICAgICAgc2VsZi53aW5kb3dfaWQgPSBzdHIodXVp
ZC51dWlkNCgpKQogICAgICAgICBzZWxmLmRlYnVnID0gZGVidWcKQEAgLTYxMCw2ICs2NDUsMTAg
QEAgY2xhc3MgTWFyaW9uZXR0ZVRlc3RoYXJuZXNzRXhlY3V0b3IoVGVzdGhhcm5lc3NFeGVjdXRv
cik6CiAgICAgICAgIGlmIG1hcmlvbmV0dGUgaXMgTm9uZToKICAgICAgICAgICAgIGRvX2RlbGF5
ZWRfaW1wb3J0cygpCiAKKyAgICBkZWYgc2V0dXAoc2VsZiwgcnVubmVyKToKKyAgICAgICAgc3Vw
ZXIoTWFyaW9uZXR0ZVRlc3RoYXJuZXNzRXhlY3V0b3IsIHNlbGYpLnNldHVwKHJ1bm5lcikKKyAg
ICAgICAgc2VsZi5wcm90b2NvbC50ZXN0aGFybmVzcy5sb2FkX3J1bm5lcihzZWxmLmxhc3RfZW52
aXJvbm1lbnRbInByb3RvY29sIl0pCisKICAgICBkZWYgaXNfYWxpdmUoc2VsZik6CiAgICAgICAg
IHJldHVybiBzZWxmLnByb3RvY29sLmlzX2FsaXZlCiAKQEAgLTYyNyw3ICs2NjYsOCBAQCBjbGFz
cyBNYXJpb25ldHRlVGVzdGhhcm5lc3NFeGVjdXRvcihUZXN0aGFybmVzc0V4ZWN1dG9yKToKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmRvX3Rlc3Ro
YXJuZXNzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNl
bGYucHJvdG9jb2wsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgc2VsZi50ZXN0X3VybCh0ZXN0KSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICB0aW1lb3V0KS5ydW4oKQorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHRpbWVvdXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgc2VsZi5leHRyYV90aW1lb3V0KS5ydW4oKQogICAgICAgICAjIFRo
ZSBmb3JtYXQgb2YgZGF0YSBkZXBlbmRzIG9uIHdoZXRoZXIgdGhlIHRlc3QgcmFuIHRvIGNvbXBs
ZXRpb24gb3Igbm90CiAgICAgICAgICMgRm9yIGFzc2VydHMgd2Ugb25seSBjYXJlIGFib3V0IHRo
ZSBmYWN0IHRoYXQgaWYgaXQgZGlkbid0IGNvbXBsZXRlLCB0aGUKICAgICAgICAgIyBzdGF0dXMg
aXMgaW4gdGhlIGZpcnN0IGZpZWxkLgpAQCAtNjQ3LDMzICs2ODcsMjIgQEAgY2xhc3MgTWFyaW9u
ZXR0ZVRlc3RoYXJuZXNzRXhlY3V0b3IoVGVzdGhhcm5lc3NFeGVjdXRvcik6CiAgICAgICAgIHJl
dHVybiAodGVzdC5yZXN1bHRfY2xzKGV4dHJhPWV4dHJhLCAqZGF0YSksIFtdKQogCiAgICAgZGVm
IGRvX3Rlc3RoYXJuZXNzKHNlbGYsIHByb3RvY29sLCB1cmwsIHRpbWVvdXQpOgotICAgICAgICBw
cm90b2NvbC5iYXNlLmV4ZWN1dGVfc2NyaXB0KCJpZiAod2luZG93Lndpbikge3dpbmRvdy53aW4u
Y2xvc2UoKX0iKQogICAgICAgICBwYXJlbnRfd2luZG93ID0gcHJvdG9jb2wudGVzdGhhcm5lc3Mu
Y2xvc2Vfb2xkX3dpbmRvd3MocHJvdG9jb2wpCiAKLSAgICAgICAgaWYgdGltZW91dCBpcyBub3Qg
Tm9uZToKLSAgICAgICAgICAgIHRpbWVvdXRfbXMgPSBzdHIodGltZW91dCAqIDEwMDApCi0gICAg
ICAgIGVsc2U6Ci0gICAgICAgICAgICB0aW1lb3V0X21zID0gIm51bGwiCi0KICAgICAgICAgaWYg
c2VsZi5wcm90b2NvbC5jb3ZlcmFnZS5pc19lbmFibGVkOgogICAgICAgICAgICAgc2VsZi5wcm90
b2NvbC5jb3ZlcmFnZS5yZXNldCgpCiAKLSAgICAgICAgZm9ybWF0X21hcCA9IHsiYWJzX3VybCI6
IHVybCwKLSAgICAgICAgICAgICAgICAgICAgICAidXJsIjogc3RyaXBfc2VydmVyKHVybCksCi0g
ICAgICAgICAgICAgICAgICAgICAgIndpbmRvd19pZCI6IHNlbGYud2luZG93X2lkLAotICAgICAg
ICAgICAgICAgICAgICAgICJ0aW1lb3V0X211bHRpcGxpZXIiOiBzZWxmLnRpbWVvdXRfbXVsdGlw
bGllciwKLSAgICAgICAgICAgICAgICAgICAgICAidGltZW91dCI6IHRpbWVvdXRfbXMsCi0gICAg
ICAgICAgICAgICAgICAgICAgImV4cGxpY2l0X3RpbWVvdXQiOiB0aW1lb3V0IGlzIE5vbmV9Ci0K
LSAgICAgICAgc2NyaXB0ID0gc2VsZi5zY3JpcHQgJSBmb3JtYXRfbWFwCi0KLSAgICAgICAgcnYg
PSBwcm90b2NvbC5iYXNlLmV4ZWN1dGVfc2NyaXB0KHNjcmlwdCkKLSAgICAgICAgdGVzdF93aW5k
b3cgPSBwcm90b2NvbC50ZXN0aGFybmVzcy5nZXRfdGVzdF93aW5kb3coc2VsZi53aW5kb3dfaWQs
IHBhcmVudF93aW5kb3cpCisgICAgICAgIGZvcm1hdF9tYXAgPSB7InVybCI6IHN0cmlwX3NlcnZl
cih1cmwpfQogCisgICAgICAgIHByb3RvY29sLmJhc2UuZXhlY3V0ZV9zY3JpcHQoIndpbmRvdy5v
cGVuKHVuZGVmaW5lZCwgJyVzJywgJ25vb3BlbmVyJykiICUgc2VsZi53aW5kb3dfaWQpCisgICAg
ICAgIHRlc3Rfd2luZG93ID0gcHJvdG9jb2wudGVzdGhhcm5lc3MuZ2V0X3Rlc3Rfd2luZG93KHNl
bGYud2luZG93X2lkLCBwYXJlbnRfd2luZG93LAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aW1lb3V0PTEwKnNlbGYudGltZW91dF9t
dWx0aXBsaWVyKQorICAgICAgICBzZWxmLnByb3RvY29sLmJhc2Uuc2V0X3dpbmRvdyh0ZXN0X3dp
bmRvdykKICAgICAgICAgaGFuZGxlciA9IENhbGxiYWNrSGFuZGxlcihzZWxmLmxvZ2dlciwgcHJv
dG9jb2wsIHRlc3Rfd2luZG93KQorICAgICAgICBwcm90b2NvbC5tYXJpb25ldHRlLm5hdmlnYXRl
KHVybCkKICAgICAgICAgd2hpbGUgVHJ1ZToKICAgICAgICAgICAgIHJlc3VsdCA9IHByb3RvY29s
LmJhc2UuZXhlY3V0ZV9zY3JpcHQoCi0gICAgICAgICAgICAgICAgc2VsZi5zY3JpcHRfcmVzdW1l
ICUgZm9ybWF0X21hcCwgYXN5bmM9VHJ1ZSkKKyAgICAgICAgICAgICAgICBzZWxmLnNjcmlwdF9y
ZXN1bWUgJSBmb3JtYXRfbWFwLCBhc3luY2hyb25vdXM9VHJ1ZSkKICAgICAgICAgICAgIGlmIHJl
c3VsdCBpcyBOb25lOgogICAgICAgICAgICAgICAgICMgVGhpcyBjYW4gaGFwcGVuIGlmIHdlIGdl
dCBhbiBjb250ZW50IHByb2Nlc3MgY3Jhc2gKICAgICAgICAgICAgICAgICByZXR1cm4gTm9uZQpA
QCAtNzE3LDcgKzc0Niw3IEBAIGNsYXNzIE1hcmlvbmV0dGVSZWZUZXN0RXhlY3V0b3IoUmVmVGVz
dEV4ZWN1dG9yKToKIAogICAgICAgICB3aXRoIG9wZW4ob3MucGF0aC5qb2luKGhlcmUsICJyZWZ0
ZXN0LmpzIikpIGFzIGY6CiAgICAgICAgICAgICBzZWxmLnNjcmlwdCA9IGYucmVhZCgpCi0gICAg
ICAgIHdpdGggb3Blbihvcy5wYXRoLmpvaW4oaGVyZSwgInJlZnRlc3Qtd2FpdF9tYXJpb25ldHRl
LmpzIikpIGFzIGY6CisgICAgICAgIHdpdGggb3Blbihvcy5wYXRoLmpvaW4oaGVyZSwgInJlZnRl
c3Qtd2FpdF93ZWJkcml2ZXIuanMiKSkgYXMgZjoKICAgICAgICAgICAgIHNlbGYud2FpdF9zY3Jp
cHQgPSBmLnJlYWQoKQogCiAgICAgZGVmIHNldHVwKHNlbGYsIHJ1bm5lcik6CkBAIC03MjcsMTIg
Kzc1NiwxOCBAQCBjbGFzcyBNYXJpb25ldHRlUmVmVGVzdEV4ZWN1dG9yKFJlZlRlc3RFeGVjdXRv
cik6CiAgICAgZGVmIHRlYXJkb3duKHNlbGYpOgogICAgICAgICB0cnk6CiAgICAgICAgICAgICBz
ZWxmLmltcGxlbWVudGF0aW9uLnRlYXJkb3duKCkKLSAgICAgICAgICAgIGhhbmRsZSA9IHNlbGYu
cHJvdG9jb2wubWFyaW9uZXR0ZS53aW5kb3dfaGFuZGxlc1swXQotICAgICAgICAgICAgc2VsZi5w
cm90b2NvbC5tYXJpb25ldHRlLnN3aXRjaF90b193aW5kb3coaGFuZGxlKQorICAgICAgICAgICAg
aWYgc2VsZi5wcm90b2NvbC5tYXJpb25ldHRlIGFuZCBzZWxmLnByb3RvY29sLm1hcmlvbmV0dGUu
c2Vzc2lvbl9pZDoKKyAgICAgICAgICAgICAgICBoYW5kbGVzID0gc2VsZi5wcm90b2NvbC5tYXJp
b25ldHRlLndpbmRvd19oYW5kbGVzCisgICAgICAgICAgICAgICAgaWYgaGFuZGxlczoKKyAgICAg
ICAgICAgICAgICAgICAgc2VsZi5wcm90b2NvbC5tYXJpb25ldHRlLnN3aXRjaF90b193aW5kb3co
aGFuZGxlc1swXSkKICAgICAgICAgICAgIHN1cGVyKHNlbGYuX19jbGFzc19fLCBzZWxmKS50ZWFy
ZG93bigpCiAgICAgICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZToKICAgICAgICAgICAgICMgSWdu
b3JlIGVycm9ycyBkdXJpbmcgdGVhcmRvd24KLSAgICAgICAgICAgIHNlbGYubG9nZ2VyLndhcm5p
bmcodHJhY2ViYWNrLmZvcm1hdF9leGMoZSkpCisgICAgICAgICAgICBzZWxmLmxvZ2dlci53YXJu
aW5nKCJFeGNlcHRpb24gZHVyaW5nIHJlZnRlc3QgdGVhcmRvd246XG4lcyIgJQorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICB0cmFjZWJhY2suZm9ybWF0X2V4YyhlKSkKKworICAgIGRl
ZiByZXNldChzZWxmKToKKyAgICAgICAgc2VsZi5pbXBsZW1lbnRhdGlvbi5yZXNldCgqKnNlbGYu
aW1wbGVtZW50YXRpb25fa3dhcmdzKQogCiAgICAgZGVmIGlzX2FsaXZlKHNlbGYpOgogICAgICAg
ICByZXR1cm4gc2VsZi5wcm90b2NvbC5pc19hbGl2ZQpAQCAtNzcwLDcgKzgwNSw3IEBAIGNsYXNz
IE1hcmlvbmV0dGVSZWZUZXN0RXhlY3V0b3IoUmVmVGVzdEV4ZWN1dG9yKToKICAgICAgICAgcmV0
dXJuIHNlbGYuY29udmVydF9yZXN1bHQodGVzdCwgcmVzdWx0KQogCiAgICAgZGVmIHNjcmVlbnNo
b3Qoc2VsZiwgdGVzdCwgdmlld3BvcnRfc2l6ZSwgZHBpKToKLSAgICAgICAgIyBodHRwczovL2dp
dGh1Yi5jb20vdzNjL3dwdHJ1bm5lci9pc3N1ZXMvMTY2CisgICAgICAgICMgaHR0cHM6Ly9naXRo
dWIuY29tL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQvaXNzdWVzLzcxMzUKICAgICAgICAgYXNzZXJ0
IHZpZXdwb3J0X3NpemUgaXMgTm9uZQogICAgICAgICBhc3NlcnQgZHBpIGlzIE5vbmUKIApAQCAt
NzgyLDEyICs4MTcsMTMgQEAgY2xhc3MgTWFyaW9uZXR0ZVJlZlRlc3RFeGVjdXRvcihSZWZUZXN0
RXhlY3V0b3IpOgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuX3Nj
cmVlbnNob3QsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5wcm90
b2NvbCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0X3VybCwKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aW1lb3V0KS5ydW4oKQorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpbWVvdXQsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgc2VsZi5leHRyYV90aW1lb3V0KS5ydW4oKQogCiAgICAgZGVm
IF9zY3JlZW5zaG90KHNlbGYsIHByb3RvY29sLCB1cmwsIHRpbWVvdXQpOgogICAgICAgICBwcm90
b2NvbC5tYXJpb25ldHRlLm5hdmlnYXRlKHVybCkKIAotICAgICAgICBwcm90b2NvbC5iYXNlLmV4
ZWN1dGVfc2NyaXB0KHNlbGYud2FpdF9zY3JpcHQsIGFzeW5jPVRydWUpCisgICAgICAgIHByb3Rv
Y29sLmJhc2UuZXhlY3V0ZV9zY3JpcHQoc2VsZi53YWl0X3NjcmlwdCwgYXN5bmNocm9ub3VzPVRy
dWUpCiAKICAgICAgICAgc2NyZWVuc2hvdCA9IHByb3RvY29sLm1hcmlvbmV0dGUuc2NyZWVuc2hv
dChmdWxsPUZhbHNlKQogICAgICAgICAjIHN0cmlwIG9mZiB0aGUgZGF0YTppbWcvcG5nLCBwYXJ0
IG9mIHRoZSB1cmwKQEAgLTc5Nyw3ICs4MzMsNyBAQCBjbGFzcyBNYXJpb25ldHRlUmVmVGVzdEV4
ZWN1dG9yKFJlZlRlc3RFeGVjdXRvcik6CiAgICAgICAgIHJldHVybiBzY3JlZW5zaG90CiAKIAot
Y2xhc3MgSW50ZXJuYWxSZWZUZXN0SW1wbGVtZW50YXRpb24ob2JqZWN0KToKK2NsYXNzIEludGVy
bmFsUmVmVGVzdEltcGxlbWVudGF0aW9uKFJlZlRlc3RJbXBsZW1lbnRhdGlvbik6CiAgICAgZGVm
IF9faW5pdF9fKHNlbGYsIGV4ZWN1dG9yKToKICAgICAgICAgc2VsZi50aW1lb3V0X211bHRpcGxp
ZXIgPSBleGVjdXRvci50aW1lb3V0X211bHRpcGxpZXIKICAgICAgICAgc2VsZi5leGVjdXRvciA9
IGV4ZWN1dG9yCkBAIC04MTUsMjYgKzg1MSw0MSBAQCBjbGFzcyBJbnRlcm5hbFJlZlRlc3RJbXBs
ZW1lbnRhdGlvbihvYmplY3QpOgogICAgICAgICBzZWxmLmV4ZWN1dG9yLnByb3RvY29sLm1hcmlv
bmV0dGUuc2V0X2NvbnRleHQoc2VsZi5leGVjdXRvci5wcm90b2NvbC5tYXJpb25ldHRlLkNPTlRF
WFRfQ0hST01FKQogICAgICAgICBzZWxmLmV4ZWN1dG9yLnByb3RvY29sLm1hcmlvbmV0dGUuX3Nl
bmRfbWVzc2FnZSgicmVmdGVzdDpzZXR1cCIsIGRhdGEpCiAKKyAgICBkZWYgcmVzZXQoc2VsZiwg
c2NyZWVuc2hvdD1Ob25lKToKKyAgICAgICAgIyB0aGlzIGlzIG9idmlvdXMgd3Jvbmc7IGl0IHNo
b3VsZG4ndCBiZSBhIG5vLW9wCisgICAgICAgICMgc2VlIGh0dHBzOi8vZ2l0aHViLmNvbS93ZWIt
cGxhdGZvcm0tdGVzdHMvd3B0L2lzc3Vlcy8xNTYwNAorICAgICAgICBwYXNzCisKICAgICBkZWYg
cnVuX3Rlc3Qoc2VsZiwgdGVzdCk6Ci0gICAgICAgIHJlZmVyZW5jZXMgPSBzZWxmLmdldF9yZWZl
cmVuY2VzKHRlc3QpCisgICAgICAgIHJlZmVyZW5jZXMgPSBzZWxmLmdldF9yZWZlcmVuY2VzKHRl
c3QsIHRlc3QpCiAgICAgICAgIHRpbWVvdXQgPSAodGVzdC50aW1lb3V0ICogMTAwMCkgKiBzZWxm
LnRpbWVvdXRfbXVsdGlwbGllcgogICAgICAgICBydiA9IHNlbGYuZXhlY3V0b3IucHJvdG9jb2wu
bWFyaW9uZXR0ZS5fc2VuZF9tZXNzYWdlKCJyZWZ0ZXN0OnJ1biIsCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyJ0ZXN0Ijogc2Vs
Zi5leGVjdXRvci50ZXN0X3VybCh0ZXN0KSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInJlZmVyZW5jZXMiOiByZWZlcmVuY2Vz
LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAiZXhwZWN0ZWQiOiB0ZXN0LmV4cGVjdGVkKCksCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ0aW1lb3V0IjogdGlt
ZW91dH0pWyJ2YWx1ZSJdCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICJ0aW1lb3V0IjogdGltZW91dCwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIndpZHRoIjog
ODAwLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAiaGVpZ2h0IjogNjAwfSlbInZhbHVlIl0KICAgICAgICAgcmV0dXJuIHJ2CiAK
LSAgICBkZWYgZ2V0X3JlZmVyZW5jZXMoc2VsZiwgbm9kZSk6CisgICAgZGVmIGdldF9yZWZlcmVu
Y2VzKHNlbGYsIHJvb3RfdGVzdCwgbm9kZSk6CiAgICAgICAgIHJ2ID0gW10KICAgICAgICAgZm9y
IGl0ZW0sIHJlbGF0aW9uIGluIG5vZGUucmVmZXJlbmNlczoKLSAgICAgICAgICAgIHJ2LmFwcGVu
ZChbc2VsZi5leGVjdXRvci50ZXN0X3VybChpdGVtKSwgc2VsZi5nZXRfcmVmZXJlbmNlcyhpdGVt
KSwgcmVsYXRpb25dKQorICAgICAgICAgICAgcnYuYXBwZW5kKFtzZWxmLmV4ZWN1dG9yLnRlc3Rf
dXJsKGl0ZW0pLCBzZWxmLmdldF9yZWZlcmVuY2VzKHJvb3RfdGVzdCwgaXRlbSksIHJlbGF0aW9u
LAorICAgICAgICAgICAgICAgICAgICAgICB7ImZ1enp5Ijogc2VsZi5nZXRfZnV6enkocm9vdF90
ZXN0LCBbbm9kZSwgaXRlbV0sIHJlbGF0aW9uKX1dKQogICAgICAgICByZXR1cm4gcnYKIAogICAg
IGRlZiB0ZWFyZG93bihzZWxmKToKICAgICAgICAgdHJ5OgotICAgICAgICAgICAgc2VsZi5leGVj
dXRvci5wcm90b2NvbC5tYXJpb25ldHRlLl9zZW5kX21lc3NhZ2UoInJlZnRlc3Q6dGVhcmRvd24i
LCB7fSkKLSAgICAgICAgICAgIHNlbGYuZXhlY3V0b3IucHJvdG9jb2wubWFyaW9uZXR0ZS5zZXRf
Y29udGV4dChzZWxmLmV4ZWN1dG9yLnByb3RvY29sLm1hcmlvbmV0dGUuQ09OVEVYVF9DT05URU5U
KQorICAgICAgICAgICAgaWYgc2VsZi5leGVjdXRvci5wcm90b2NvbC5tYXJpb25ldHRlIGFuZCBz
ZWxmLmV4ZWN1dG9yLnByb3RvY29sLm1hcmlvbmV0dGUuc2Vzc2lvbl9pZDoKKyAgICAgICAgICAg
ICAgICBzZWxmLmV4ZWN1dG9yLnByb3RvY29sLm1hcmlvbmV0dGUuX3NlbmRfbWVzc2FnZSgicmVm
dGVzdDp0ZWFyZG93biIsIHt9KQorICAgICAgICAgICAgICAgIHNlbGYuZXhlY3V0b3IucHJvdG9j
b2wubWFyaW9uZXR0ZS5zZXRfY29udGV4dChzZWxmLmV4ZWN1dG9yLnByb3RvY29sLm1hcmlvbmV0
dGUuQ09OVEVYVF9DT05URU5UKQorICAgICAgICAgICAgICAgICMgdGhlIHJlZnRlc3QgcnVubmVy
IG9wZW5zL2Nsb3NlcyBhIHdpbmRvdyB3aXRoIGZvY3VzLCBzbyBhcworICAgICAgICAgICAgICAg
ICMgd2l0aCBhZnRlciBjbG9zaW5nIGEgd2luZG93IHdlIG5lZWQgdG8gZ2l2ZSBhIG5ldyB3aW5k
b3cKKyAgICAgICAgICAgICAgICAjIGZvY3VzCisgICAgICAgICAgICAgICAgaGFuZGxlcyA9IHNl
bGYuZXhlY3V0b3IucHJvdG9jb2wubWFyaW9uZXR0ZS53aW5kb3dfaGFuZGxlcworICAgICAgICAg
ICAgICAgIGlmIGhhbmRsZXM6CisgICAgICAgICAgICAgICAgICAgIHNlbGYuZXhlY3V0b3IucHJv
dG9jb2wubWFyaW9uZXR0ZS5zd2l0Y2hfdG9fd2luZG93KGhhbmRsZXNbMF0pCiAgICAgICAgIGV4
Y2VwdCBFeGNlcHRpb24gYXMgZToKICAgICAgICAgICAgICMgSWdub3JlIGVycm9ycyBkdXJpbmcg
dGVhcmRvd24KICAgICAgICAgICAgIHNlbGYubG9nZ2VyLndhcm5pbmcodHJhY2ViYWNrLmZvcm1h
dF9leGMoZSkpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvZXhlY3V0b3JzL2V4ZWN1dG9yc2Vs
ZW5pdW0ucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3dwdHJ1bm5lci93cHRydW5uZXIvZXhlY3V0b3JzL2V4ZWN1dG9yc2VsZW5pdW0ucHkKaW5k
ZXggZDliNjc5NjhkZGY2NmUwNDRmY2U1Yjk3NmI4ZThkNjY0YzA3Njg4OS4uZDY3NDUwMTgyNzll
NzRhZmZjZTE0OTNkYTNjYmI5YjAxZjgyOGZiMCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2V4
ZWN1dG9ycy9leGVjdXRvcnNlbGVuaXVtLnB5CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9leGVjdXRvcnMv
ZXhlY3V0b3JzZWxlbml1bS5weQpAQCAtMiw2ICsyLDcgQEAgaW1wb3J0IGpzb24KIGltcG9ydCBv
cwogaW1wb3J0IHNvY2tldAogaW1wb3J0IHRocmVhZGluZworaW1wb3J0IHRpbWUKIGltcG9ydCB0
cmFjZWJhY2sKIGltcG9ydCB1cmxwYXJzZQogaW1wb3J0IHV1aWQKQEAgLTEwLDcgKzExLDcgQEAg
ZnJvbSAuYmFzZSBpbXBvcnQgKENhbGxiYWNrSGFuZGxlciwKICAgICAgICAgICAgICAgICAgICBS
ZWZUZXN0RXhlY3V0b3IsCiAgICAgICAgICAgICAgICAgICAgUmVmVGVzdEltcGxlbWVudGF0aW9u
LAogICAgICAgICAgICAgICAgICAgIFRlc3RoYXJuZXNzRXhlY3V0b3IsCi0gICAgICAgICAgICAg
ICAgICAgZXh0cmFfdGltZW91dCwKKyAgICAgICAgICAgICAgICAgICBUaW1lZFJ1bm5lciwKICAg
ICAgICAgICAgICAgICAgICBzdHJpcF9zZXJ2ZXIpCiBmcm9tIC5wcm90b2NvbCBpbXBvcnQgKEJh
c2VQcm90b2NvbFBhcnQsCiAgICAgICAgICAgICAgICAgICAgICAgIFRlc3RoYXJuZXNzUHJvdG9j
b2xQYXJ0LApAQCAtMTgsNiArMTksNyBAQCBmcm9tIC5wcm90b2NvbCBpbXBvcnQgKEJhc2VQcm90
b2NvbFBhcnQsCiAgICAgICAgICAgICAgICAgICAgICAgIFNlbGVjdG9yUHJvdG9jb2xQYXJ0LAog
ICAgICAgICAgICAgICAgICAgICAgICBDbGlja1Byb3RvY29sUGFydCwKICAgICAgICAgICAgICAg
ICAgICAgICAgU2VuZEtleXNQcm90b2NvbFBhcnQsCisgICAgICAgICAgICAgICAgICAgICAgIEFj
dGlvblNlcXVlbmNlUHJvdG9jb2xQYXJ0LAogICAgICAgICAgICAgICAgICAgICAgICBUZXN0RHJp
dmVyUHJvdG9jb2xQYXJ0KQogZnJvbSAuLnRlc3RydW5uZXIgaW1wb3J0IFN0b3AKIApAQCAtMjYs
MjMgKzI4LDI2IEBAIGhlcmUgPSBvcy5wYXRoLmpvaW4ob3MucGF0aC5zcGxpdChfX2ZpbGVfXylb
MF0pCiB3ZWJkcml2ZXIgPSBOb25lCiBleGNlcHRpb25zID0gTm9uZQogUmVtb3RlQ29ubmVjdGlv
biA9IE5vbmUKK0NvbW1hbmQgPSBOb25lCiAKIAogZGVmIGRvX2RlbGF5ZWRfaW1wb3J0cygpOgog
ICAgIGdsb2JhbCB3ZWJkcml2ZXIKICAgICBnbG9iYWwgZXhjZXB0aW9ucwogICAgIGdsb2JhbCBS
ZW1vdGVDb25uZWN0aW9uCisgICAgZ2xvYmFsIENvbW1hbmQKICAgICBmcm9tIHNlbGVuaXVtIGlt
cG9ydCB3ZWJkcml2ZXIKICAgICBmcm9tIHNlbGVuaXVtLmNvbW1vbiBpbXBvcnQgZXhjZXB0aW9u
cwogICAgIGZyb20gc2VsZW5pdW0ud2ViZHJpdmVyLnJlbW90ZS5yZW1vdGVfY29ubmVjdGlvbiBp
bXBvcnQgUmVtb3RlQ29ubmVjdGlvbgorICAgIGZyb20gc2VsZW5pdW0ud2ViZHJpdmVyLnJlbW90
ZS5jb21tYW5kIGltcG9ydCBDb21tYW5kCiAKIAogY2xhc3MgU2VsZW5pdW1CYXNlUHJvdG9jb2xQ
YXJ0KEJhc2VQcm90b2NvbFBhcnQpOgogICAgIGRlZiBzZXR1cChzZWxmKToKICAgICAgICAgc2Vs
Zi53ZWJkcml2ZXIgPSBzZWxmLnBhcmVudC53ZWJkcml2ZXIKIAotICAgIGRlZiBleGVjdXRlX3Nj
cmlwdChzZWxmLCBzY3JpcHQsIGFzeW5jPUZhbHNlKToKLSAgICAgICAgbWV0aG9kID0gc2VsZi53
ZWJkcml2ZXIuZXhlY3V0ZV9hc3luY19zY3JpcHQgaWYgYXN5bmMgZWxzZSBzZWxmLndlYmRyaXZl
ci5leGVjdXRlX3NjcmlwdAorICAgIGRlZiBleGVjdXRlX3NjcmlwdChzZWxmLCBzY3JpcHQsIGFz
eW5jaHJvbm91cz1GYWxzZSk6CisgICAgICAgIG1ldGhvZCA9IHNlbGYud2ViZHJpdmVyLmV4ZWN1
dGVfYXN5bmNfc2NyaXB0IGlmIGFzeW5jaHJvbm91cyBlbHNlIHNlbGYud2ViZHJpdmVyLmV4ZWN1
dGVfc2NyaXB0CiAgICAgICAgIHJldHVybiBtZXRob2Qoc2NyaXB0KQogCiAgICAgZGVmIHNldF90
aW1lb3V0KHNlbGYsIHRpbWVvdXQpOgpAQCAtNzIsNTAgKzc3LDY5IEBAIGNsYXNzIFNlbGVuaXVt
QmFzZVByb3RvY29sUGFydChCYXNlUHJvdG9jb2xQYXJ0KToKIGNsYXNzIFNlbGVuaXVtVGVzdGhh
cm5lc3NQcm90b2NvbFBhcnQoVGVzdGhhcm5lc3NQcm90b2NvbFBhcnQpOgogICAgIGRlZiBzZXR1
cChzZWxmKToKICAgICAgICAgc2VsZi53ZWJkcml2ZXIgPSBzZWxmLnBhcmVudC53ZWJkcml2ZXIK
KyAgICAgICAgc2VsZi5ydW5uZXJfaGFuZGxlID0gTm9uZQorICAgICAgICB3aXRoIG9wZW4ob3Mu
cGF0aC5qb2luKGhlcmUsICJydW5uZXIuanMiKSkgYXMgZjoKKyAgICAgICAgICAgIHNlbGYucnVu
bmVyX3NjcmlwdCA9IGYucmVhZCgpCiAKICAgICBkZWYgbG9hZF9ydW5uZXIoc2VsZiwgdXJsX3By
b3RvY29sKToKKyAgICAgICAgaWYgc2VsZi5ydW5uZXJfaGFuZGxlOgorICAgICAgICAgICAgc2Vs
Zi53ZWJkcml2ZXIuc3dpdGNoX3RvX3dpbmRvdyhzZWxmLnJ1bm5lcl9oYW5kbGUpCiAgICAgICAg
IHVybCA9IHVybHBhcnNlLnVybGpvaW4oc2VsZi5wYXJlbnQuZXhlY3V0b3Iuc2VydmVyX3VybCh1
cmxfcHJvdG9jb2wpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIvdGVzdGhhcm5l
c3NfcnVubmVyLmh0bWwiKQogICAgICAgICBzZWxmLmxvZ2dlci5kZWJ1ZygiTG9hZGluZyAlcyIg
JSB1cmwpCiAgICAgICAgIHNlbGYud2ViZHJpdmVyLmdldCh1cmwpCi0gICAgICAgIHNlbGYud2Vi
ZHJpdmVyLmV4ZWN1dGVfc2NyaXB0KCJkb2N1bWVudC50aXRsZSA9ICclcyciICUKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhyZWFkaW5nLmN1cnJlbnRfdGhyZWFkKCku
bmFtZS5yZXBsYWNlKCInIiwgJyInKSkKKyAgICAgICAgc2VsZi5ydW5uZXJfaGFuZGxlID0gc2Vs
Zi53ZWJkcml2ZXIuY3VycmVudF93aW5kb3dfaGFuZGxlCisgICAgICAgIGZvcm1hdF9tYXAgPSB7
InRpdGxlIjogdGhyZWFkaW5nLmN1cnJlbnRfdGhyZWFkKCkubmFtZS5yZXBsYWNlKCInIiwgJyIn
KX0KKyAgICAgICAgc2VsZi5wYXJlbnQuYmFzZS5leGVjdXRlX3NjcmlwdChzZWxmLnJ1bm5lcl9z
Y3JpcHQgJSBmb3JtYXRfbWFwKQogCiAgICAgZGVmIGNsb3NlX29sZF93aW5kb3dzKHNlbGYpOgot
ICAgICAgICBleGNsdWRlID0gc2VsZi53ZWJkcml2ZXIuY3VycmVudF93aW5kb3dfaGFuZGxlCi0g
ICAgICAgIGhhbmRsZXMgPSBbaXRlbSBmb3IgaXRlbSBpbiBzZWxmLndlYmRyaXZlci53aW5kb3df
aGFuZGxlcyBpZiBpdGVtICE9IGV4Y2x1ZGVdCisgICAgICAgIGhhbmRsZXMgPSBbaXRlbSBmb3Ig
aXRlbSBpbiBzZWxmLndlYmRyaXZlci53aW5kb3dfaGFuZGxlcyBpZiBpdGVtICE9IHNlbGYucnVu
bmVyX2hhbmRsZV0KICAgICAgICAgZm9yIGhhbmRsZSBpbiBoYW5kbGVzOgogICAgICAgICAgICAg
dHJ5OgogICAgICAgICAgICAgICAgIHNlbGYud2ViZHJpdmVyLnN3aXRjaF90b193aW5kb3coaGFu
ZGxlKQogICAgICAgICAgICAgICAgIHNlbGYud2ViZHJpdmVyLmNsb3NlKCkKICAgICAgICAgICAg
IGV4Y2VwdCBleGNlcHRpb25zLk5vU3VjaFdpbmRvd0V4Y2VwdGlvbjoKICAgICAgICAgICAgICAg
ICBwYXNzCi0gICAgICAgIHNlbGYud2ViZHJpdmVyLnN3aXRjaF90b193aW5kb3coZXhjbHVkZSkK
LSAgICAgICAgcmV0dXJuIGV4Y2x1ZGUKLQotICAgIGRlZiBnZXRfdGVzdF93aW5kb3coc2VsZiwg
d2luZG93X2lkLCBwYXJlbnQpOgorICAgICAgICBzZWxmLndlYmRyaXZlci5zd2l0Y2hfdG9fd2lu
ZG93KHNlbGYucnVubmVyX2hhbmRsZSkKKyAgICAgICAgcmV0dXJuIHNlbGYucnVubmVyX2hhbmRs
ZQorCisgICAgZGVmIGdldF90ZXN0X3dpbmRvdyhzZWxmLCB3aW5kb3dfaWQsIHBhcmVudCwgdGlt
ZW91dD01KToKKyAgICAgICAgIiIiRmluZCB0aGUgdGVzdCB3aW5kb3cgYW1vbmdzdCBhbGwgdGhl
IG9wZW4gd2luZG93cy4KKyAgICAgICAgVGhpcyBpcyBhc3N1bWVkIHRvIGJlIGVpdGhlciB0aGUg
bmFtZWQgd2luZG93IG9yIHRoZSBvbmUgYWZ0ZXIgdGhlIHBhcmVudCBpbiB0aGUgbGlzdCBvZgor
ICAgICAgICB3aW5kb3cgaGFuZGxlcworCisgICAgICAgIDpwYXJhbSB3aW5kb3dfaWQ6IFRoZSBE
T00gbmFtZSBvZiB0aGUgV2luZG93CisgICAgICAgIDpwYXJhbSBwYXJlbnQ6IFRoZSBoYW5kbGUg
b2YgdGhlIHJ1bm5lciB3aW5kb3cKKyAgICAgICAgOnBhcmFtIHRpbWVvdXQ6IFRoZSB0aW1lIGlu
IHNlY29uZHMgdG8gd2FpdCBmb3IgdGhlIHdpbmRvdyB0byBhcHBlYXIuIFRoaXMgaXMgYmVjYXVz
ZSBpbgorICAgICAgICAgICAgICAgICAgICAgICAgc29tZSBpbXBsZW1lbnRhdGlvbnMgdGhlcmUn
cyBhIHJhY2UgYmV0d2VlbiBjYWxsaW5nIHdpbmRvdy5vcGVuIGFuZCB0aGUKKyAgICAgICAgICAg
ICAgICAgICAgICAgIHdpbmRvdyBiZWluZyBhZGRlZCB0byB0aGUgbGlzdCBvZiBXZWJEcml2ZXIg
YWNjZXNzaWJsZSB3aW5kb3dzLiIiIgogICAgICAgICB0ZXN0X3dpbmRvdyA9IE5vbmUKLSAgICAg
ICAgaWYgd2luZG93X2lkOgorICAgICAgICBlbmRfdGltZSA9IHRpbWUudGltZSgpICsgdGltZW91
dAorICAgICAgICB3aGlsZSB0aW1lLnRpbWUoKSA8IGVuZF90aW1lOgogICAgICAgICAgICAgdHJ5
OgotICAgICAgICAgICAgICAgICMgVHJ5IHRoaXMsIGl0J3MgaW4gTGV2ZWwgMSBidXQgbm90aGlu
ZyBzdXBwb3J0cyBpdCB5ZXQKLSAgICAgICAgICAgICAgICB3aW5fcyA9IHNlbGYud2ViZHJpdmVy
LmV4ZWN1dGVfc2NyaXB0KCJyZXR1cm4gd2luZG93WyclcyddOyIgJSBzZWxmLndpbmRvd19pZCkK
KyAgICAgICAgICAgICAgICAjIFRyeSB1c2luZyB0aGUgSlNPTiBzZXJpYWxpemF0aW9uIG9mIHRo
ZSBXaW5kb3dQcm94eSBvYmplY3QsCisgICAgICAgICAgICAgICAgIyBpdCdzIGluIExldmVsIDEg
YnV0IG5vdGhpbmcgc3VwcG9ydHMgaXQgeWV0CisgICAgICAgICAgICAgICAgd2luX3MgPSBzZWxm
LndlYmRyaXZlci5leGVjdXRlX3NjcmlwdCgicmV0dXJuIHdpbmRvd1snJXMnXTsiICUgd2luZG93
X2lkKQogICAgICAgICAgICAgICAgIHdpbl9vYmogPSBqc29uLmxvYWRzKHdpbl9zKQogICAgICAg
ICAgICAgICAgIHRlc3Rfd2luZG93ID0gd2luX29ialsid2luZG93LWZjYzYtMTFlNS1iNGY4LTMz
MGE4OGFiOWQ3ZiJdCiAgICAgICAgICAgICBleGNlcHQgRXhjZXB0aW9uOgogICAgICAgICAgICAg
ICAgIHBhc3MKIAotICAgICAgICBpZiB0ZXN0X3dpbmRvdyBpcyBOb25lOgotICAgICAgICAgICAg
YWZ0ZXIgPSBzZWxmLndlYmRyaXZlci53aW5kb3dfaGFuZGxlcwotICAgICAgICAgICAgaWYgbGVu
KGFmdGVyKSA9PSAyOgotICAgICAgICAgICAgICAgIHRlc3Rfd2luZG93ID0gbmV4dChpdGVyKHNl
dChhZnRlcikgLSBzZXQoW3BhcmVudF0pKSkKLSAgICAgICAgICAgIGVsaWYgYWZ0ZXJbMF0gPT0g
cGFyZW50IGFuZCBsZW4oYWZ0ZXIpID4gMjoKLSAgICAgICAgICAgICAgICAjIEhvcGUgdGhlIGZp
cnN0IG9uZSBoZXJlIGlzIHRoZSB0ZXN0IHdpbmRvdwotICAgICAgICAgICAgICAgIHRlc3Rfd2lu
ZG93ID0gYWZ0ZXJbMV0KLSAgICAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAgICAgcmFpc2Ug
RXhjZXB0aW9uKCJ1bmFibGUgdG8gZmluZCB0ZXN0IHdpbmRvdyIpCisgICAgICAgICAgICBpZiB0
ZXN0X3dpbmRvdyBpcyBOb25lOgorICAgICAgICAgICAgICAgIGFmdGVyID0gc2VsZi53ZWJkcml2
ZXIud2luZG93X2hhbmRsZXMKKyAgICAgICAgICAgICAgICBpZiBsZW4oYWZ0ZXIpID09IDI6Cisg
ICAgICAgICAgICAgICAgICAgIHRlc3Rfd2luZG93ID0gbmV4dChpdGVyKHNldChhZnRlcikgLSB7
cGFyZW50fSkpCisgICAgICAgICAgICAgICAgZWxpZiBhZnRlclswXSA9PSBwYXJlbnQgYW5kIGxl
bihhZnRlcikgPiAyOgorICAgICAgICAgICAgICAgICAgICAjIEhvcGUgdGhlIGZpcnN0IG9uZSBo
ZXJlIGlzIHRoZSB0ZXN0IHdpbmRvdworICAgICAgICAgICAgICAgICAgICB0ZXN0X3dpbmRvdyA9
IGFmdGVyWzFdCisKKyAgICAgICAgICAgIGlmIHRlc3Rfd2luZG93IGlzIG5vdCBOb25lOgorICAg
ICAgICAgICAgICAgIGFzc2VydCB0ZXN0X3dpbmRvdyAhPSBwYXJlbnQKKyAgICAgICAgICAgICAg
ICByZXR1cm4gdGVzdF93aW5kb3cKKworICAgICAgICAgICAgdGltZS5zbGVlcCgwLjEpCiAKLSAg
ICAgICAgYXNzZXJ0IHRlc3Rfd2luZG93ICE9IHBhcmVudAotICAgICAgICByZXR1cm4gdGVzdF93
aW5kb3cKKyAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCJ1bmFibGUgdG8gZmluZCB0ZXN0IHdpbmRv
dyIpCiAKIAogY2xhc3MgU2VsZW5pdW1TZWxlY3RvclByb3RvY29sUGFydChTZWxlY3RvclByb3Rv
Y29sUGFydCk6CkBAIC0xMjUsNiArMTQ5LDkgQEAgY2xhc3MgU2VsZW5pdW1TZWxlY3RvclByb3Rv
Y29sUGFydChTZWxlY3RvclByb3RvY29sUGFydCk6CiAgICAgZGVmIGVsZW1lbnRzX2J5X3NlbGVj
dG9yKHNlbGYsIHNlbGVjdG9yKToKICAgICAgICAgcmV0dXJuIHNlbGYud2ViZHJpdmVyLmZpbmRf
ZWxlbWVudHNfYnlfY3NzX3NlbGVjdG9yKHNlbGVjdG9yKQogCisgICAgZGVmIGVsZW1lbnRzX2J5
X3NlbGVjdG9yX2FuZF9mcmFtZShzZWxmLCBlbGVtZW50X3NlbGVjdG9yLCBmcmFtZSk6CisgICAg
ICAgIHJldHVybiBzZWxmLndlYmRyaXZlci5maW5kX2VsZW1lbnRzX2J5X2Nzc19zZWxlY3Rvcihl
bGVtZW50X3NlbGVjdG9yKQorCiAKIGNsYXNzIFNlbGVuaXVtQ2xpY2tQcm90b2NvbFBhcnQoQ2xp
Y2tQcm90b2NvbFBhcnQpOgogICAgIGRlZiBzZXR1cChzZWxmKToKQEAgLTEzMyw2ICsxNjAsNyBA
QCBjbGFzcyBTZWxlbml1bUNsaWNrUHJvdG9jb2xQYXJ0KENsaWNrUHJvdG9jb2xQYXJ0KToKICAg
ICBkZWYgZWxlbWVudChzZWxmLCBlbGVtZW50KToKICAgICAgICAgcmV0dXJuIGVsZW1lbnQuY2xp
Y2soKQogCisKIGNsYXNzIFNlbGVuaXVtU2VuZEtleXNQcm90b2NvbFBhcnQoU2VuZEtleXNQcm90
b2NvbFBhcnQpOgogICAgIGRlZiBzZXR1cChzZWxmKToKICAgICAgICAgc2VsZi53ZWJkcml2ZXIg
PSBzZWxmLnBhcmVudC53ZWJkcml2ZXIKQEAgLTE0MSw2ICsxNjksMTQgQEAgY2xhc3MgU2VsZW5p
dW1TZW5kS2V5c1Byb3RvY29sUGFydChTZW5kS2V5c1Byb3RvY29sUGFydCk6CiAgICAgICAgIHJl
dHVybiBlbGVtZW50LnNlbmRfa2V5cyhrZXlzKQogCiAKK2NsYXNzIFNlbGVuaXVtQWN0aW9uU2Vx
dWVuY2VQcm90b2NvbFBhcnQoQWN0aW9uU2VxdWVuY2VQcm90b2NvbFBhcnQpOgorICAgIGRlZiBz
ZXR1cChzZWxmKToKKyAgICAgICAgc2VsZi53ZWJkcml2ZXIgPSBzZWxmLnBhcmVudC53ZWJkcml2
ZXIKKworICAgIGRlZiBzZW5kX2FjdGlvbnMoc2VsZiwgYWN0aW9ucyk6CisgICAgICAgIHNlbGYu
d2ViZHJpdmVyLmV4ZWN1dGUoQ29tbWFuZC5XM0NfQUNUSU9OUywgeyJhY3Rpb25zIjogYWN0aW9u
c30pCisKKwogY2xhc3MgU2VsZW5pdW1UZXN0RHJpdmVyUHJvdG9jb2xQYXJ0KFRlc3REcml2ZXJQ
cm90b2NvbFBhcnQpOgogICAgIGRlZiBzZXR1cChzZWxmKToKICAgICAgICAgc2VsZi53ZWJkcml2
ZXIgPSBzZWxmLnBhcmVudC53ZWJkcml2ZXIKQEAgLTE2MSw3ICsxOTcsOCBAQCBjbGFzcyBTZWxl
bml1bVByb3RvY29sKFByb3RvY29sKToKICAgICAgICAgICAgICAgICAgIFNlbGVuaXVtU2VsZWN0
b3JQcm90b2NvbFBhcnQsCiAgICAgICAgICAgICAgICAgICBTZWxlbml1bUNsaWNrUHJvdG9jb2xQ
YXJ0LAogICAgICAgICAgICAgICAgICAgU2VsZW5pdW1TZW5kS2V5c1Byb3RvY29sUGFydCwKLSAg
ICAgICAgICAgICAgICAgIFNlbGVuaXVtVGVzdERyaXZlclByb3RvY29sUGFydF0KKyAgICAgICAg
ICAgICAgICAgIFNlbGVuaXVtVGVzdERyaXZlclByb3RvY29sUGFydCwKKyAgICAgICAgICAgICAg
ICAgIFNlbGVuaXVtQWN0aW9uU2VxdWVuY2VQcm90b2NvbFBhcnRdCiAKICAgICBkZWYgX19pbml0
X18oc2VsZiwgZXhlY3V0b3IsIGJyb3dzZXIsIGNhcGFiaWxpdGllcywgKiprd2FyZ3MpOgogICAg
ICAgICBkb19kZWxheWVkX2ltcG9ydHMoKQpAQCAtMTc5LDkgKzIxNiw2IEBAIGNsYXNzIFNlbGVu
aXVtUHJvdG9jb2woUHJvdG9jb2wpOgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc29sdmVfaXA9RmFs
c2UpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVzaXJlZF9j
YXBhYmlsaXRpZXM9c2VsZi5jYXBhYmlsaXRpZXMpCiAKLSAgICBkZWYgYWZ0ZXJfY29uZWN0KHNl
bGYpOgotICAgICAgICBwYXNzCi0KICAgICBkZWYgdGVhcmRvd24oc2VsZik6CiAgICAgICAgIHNl
bGYubG9nZ2VyLmRlYnVnKCJIYW5naW5nIHVwIG9uIFNlbGVuaXVtIHNlc3Npb24iKQogICAgICAg
ICB0cnk6CkBAIC0yMDMsMzUgKzIzNywxNyBAQCBjbGFzcyBTZWxlbml1bVByb3RvY29sKFByb3Rv
Y29sKToKICAgICAgICAgc2VsZi50ZXN0aGFybmVzcy5sb2FkX3J1bm5lcihzZWxmLmV4ZWN1dG9y
Lmxhc3RfZW52aXJvbm1lbnRbInByb3RvY29sIl0pCiAKIAotY2xhc3MgU2VsZW5pdW1SdW4ob2Jq
ZWN0KToKLSAgICBkZWYgX19pbml0X18oc2VsZiwgZnVuYywgcHJvdG9jb2wsIHVybCwgdGltZW91
dCk6Ci0gICAgICAgIHNlbGYuZnVuYyA9IGZ1bmMKLSAgICAgICAgc2VsZi5yZXN1bHQgPSBOb25l
Ci0gICAgICAgIHNlbGYucHJvdG9jb2wgPSBwcm90b2NvbAotICAgICAgICBzZWxmLnVybCA9IHVy
bAotICAgICAgICBzZWxmLnRpbWVvdXQgPSB0aW1lb3V0Ci0gICAgICAgIHNlbGYucmVzdWx0X2Zs
YWcgPSB0aHJlYWRpbmcuRXZlbnQoKQotCi0gICAgZGVmIHJ1bihzZWxmKToKK2NsYXNzIFNlbGVu
aXVtUnVuKFRpbWVkUnVubmVyKToKKyAgICBkZWYgc2V0X3RpbWVvdXQoc2VsZik6CiAgICAgICAg
IHRpbWVvdXQgPSBzZWxmLnRpbWVvdXQKIAogICAgICAgICB0cnk6Ci0gICAgICAgICAgICBzZWxm
LnByb3RvY29sLmJhc2Uuc2V0X3RpbWVvdXQoKHRpbWVvdXQgKyBleHRyYV90aW1lb3V0KSkKKyAg
ICAgICAgICAgIHNlbGYucHJvdG9jb2wuYmFzZS5zZXRfdGltZW91dCh0aW1lb3V0ICsgc2VsZi5l
eHRyYV90aW1lb3V0KQogICAgICAgICBleGNlcHQgZXhjZXB0aW9ucy5FcnJvckluUmVzcG9uc2VF
eGNlcHRpb246CiAgICAgICAgICAgICBzZWxmLmxvZ2dlci5lcnJvcigiTG9zdCBXZWJEcml2ZXIg
Y29ubmVjdGlvbiIpCiAgICAgICAgICAgICByZXR1cm4gU3RvcAogCi0gICAgICAgIGV4ZWN1dG9y
ID0gdGhyZWFkaW5nLlRocmVhZCh0YXJnZXQ9c2VsZi5fcnVuKQotICAgICAgICBleGVjdXRvci5z
dGFydCgpCi0KLSAgICAgICAgZmxhZyA9IHNlbGYucmVzdWx0X2ZsYWcud2FpdCh0aW1lb3V0ICsg
MiAqIGV4dHJhX3RpbWVvdXQpCi0gICAgICAgIGlmIHNlbGYucmVzdWx0IGlzIE5vbmU6Ci0gICAg
ICAgICAgICBhc3NlcnQgbm90IGZsYWcKLSAgICAgICAgICAgIHNlbGYucmVzdWx0ID0gRmFsc2Us
ICgiRVhURVJOQUwtVElNRU9VVCIsIE5vbmUpCi0KLSAgICAgICAgcmV0dXJuIHNlbGYucmVzdWx0
Ci0KLSAgICBkZWYgX3J1bihzZWxmKToKKyAgICBkZWYgcnVuX2Z1bmMoc2VsZik6CiAgICAgICAg
IHRyeToKICAgICAgICAgICAgIHNlbGYucmVzdWx0ID0gVHJ1ZSwgc2VsZi5mdW5jKHNlbGYucHJv
dG9jb2wsIHNlbGYudXJsLCBzZWxmLnRpbWVvdXQpCiAgICAgICAgIGV4Y2VwdCBleGNlcHRpb25z
LlRpbWVvdXRFeGNlcHRpb246CkBAIC0yMzksMTEgKzI1NSwxMSBAQCBjbGFzcyBTZWxlbml1bVJ1
bihvYmplY3QpOgogICAgICAgICBleGNlcHQgKHNvY2tldC50aW1lb3V0LCBleGNlcHRpb25zLkVy
cm9ySW5SZXNwb25zZUV4Y2VwdGlvbik6CiAgICAgICAgICAgICBzZWxmLnJlc3VsdCA9IEZhbHNl
LCAoIkNSQVNIIiwgTm9uZSkKICAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBlOgotICAgICAg
ICAgICAgbWVzc2FnZSA9IGdldGF0dHIoZSwgIm1lc3NhZ2UiLCAiIikKKyAgICAgICAgICAgIG1l
c3NhZ2UgPSBzdHIoZ2V0YXR0cihlLCAibWVzc2FnZSIsICIiKSkKICAgICAgICAgICAgIGlmIG1l
c3NhZ2U6CiAgICAgICAgICAgICAgICAgbWVzc2FnZSArPSAiXG4iCiAgICAgICAgICAgICBtZXNz
YWdlICs9IHRyYWNlYmFjay5mb3JtYXRfZXhjKGUpCi0gICAgICAgICAgICBzZWxmLnJlc3VsdCA9
IEZhbHNlLCAoIklOVEVSTkFMLUVSUk9SIiwgZSkKKyAgICAgICAgICAgIHNlbGYucmVzdWx0ID0g
RmFsc2UsICgiSU5URVJOQUwtRVJST1IiLCBtZXNzYWdlKQogICAgICAgICBmaW5hbGx5OgogICAg
ICAgICAgICAgc2VsZi5yZXN1bHRfZmxhZy5zZXQoKQogCkBAIC0yNTksOCArMjc1LDYgQEAgY2xh
c3MgU2VsZW5pdW1UZXN0aGFybmVzc0V4ZWN1dG9yKFRlc3RoYXJuZXNzRXhlY3V0b3IpOgogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpbWVvdXRfbXVsdGlwbGllcj10aW1l
b3V0X211bHRpcGxpZXIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVi
dWdfaW5mbz1kZWJ1Z19pbmZvKQogICAgICAgICBzZWxmLnByb3RvY29sID0gU2VsZW5pdW1Qcm90
b2NvbChzZWxmLCBicm93c2VyLCBjYXBhYmlsaXRpZXMpCi0gICAgICAgIHdpdGggb3Blbihvcy5w
YXRoLmpvaW4oaGVyZSwgInRlc3RoYXJuZXNzX3dlYmRyaXZlci5qcyIpKSBhcyBmOgotICAgICAg
ICAgICAgc2VsZi5zY3JpcHQgPSBmLnJlYWQoKQogICAgICAgICB3aXRoIG9wZW4ob3MucGF0aC5q
b2luKGhlcmUsICJ0ZXN0aGFybmVzc193ZWJkcml2ZXJfcmVzdW1lLmpzIikpIGFzIGY6CiAgICAg
ICAgICAgICBzZWxmLnNjcmlwdF9yZXN1bWUgPSBmLnJlYWQoKQogICAgICAgICBzZWxmLmNsb3Nl
X2FmdGVyX2RvbmUgPSBjbG9zZV9hZnRlcl9kb25lCkBAIC0yNzYsMTAgKzI5MCwxMiBAQCBjbGFz
cyBTZWxlbml1bVRlc3RoYXJuZXNzRXhlY3V0b3IoVGVzdGhhcm5lc3NFeGVjdXRvcik6CiAgICAg
ZGVmIGRvX3Rlc3Qoc2VsZiwgdGVzdCk6CiAgICAgICAgIHVybCA9IHNlbGYudGVzdF91cmwodGVz
dCkKIAotICAgICAgICBzdWNjZXNzLCBkYXRhID0gU2VsZW5pdW1SdW4oc2VsZi5kb190ZXN0aGFy
bmVzcywKKyAgICAgICAgc3VjY2VzcywgZGF0YSA9IFNlbGVuaXVtUnVuKHNlbGYubG9nZ2VyLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5kb190ZXN0aGFybmVzcywK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYucHJvdG9jb2wsCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1cmwsCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICB0ZXN0LnRpbWVvdXQgKiBzZWxmLnRpbWVvdXRfbXVsdGlwbGllciku
cnVuKCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRlc3QudGltZW91dCAq
IHNlbGYudGltZW91dF9tdWx0aXBsaWVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgc2VsZi5leHRyYV90aW1lb3V0KS5ydW4oKQogCiAgICAgICAgIGlmIHN1Y2Nlc3M6CiAg
ICAgICAgICAgICByZXR1cm4gc2VsZi5jb252ZXJ0X3Jlc3VsdCh0ZXN0LCBkYXRhKQpAQCAtMjg3
LDIxICszMDMsMTkgQEAgY2xhc3MgU2VsZW5pdW1UZXN0aGFybmVzc0V4ZWN1dG9yKFRlc3RoYXJu
ZXNzRXhlY3V0b3IpOgogICAgICAgICByZXR1cm4gKHRlc3QucmVzdWx0X2NscygqZGF0YSksIFtd
KQogCiAgICAgZGVmIGRvX3Rlc3RoYXJuZXNzKHNlbGYsIHByb3RvY29sLCB1cmwsIHRpbWVvdXQp
OgotICAgICAgICBmb3JtYXRfbWFwID0geyJhYnNfdXJsIjogdXJsLAotICAgICAgICAgICAgICAg
ICAgICAgICJ1cmwiOiBzdHJpcF9zZXJ2ZXIodXJsKSwKLSAgICAgICAgICAgICAgICAgICAgICAi
d2luZG93X2lkIjogc2VsZi53aW5kb3dfaWQsCi0gICAgICAgICAgICAgICAgICAgICAgInRpbWVv
dXRfbXVsdGlwbGllciI6IHNlbGYudGltZW91dF9tdWx0aXBsaWVyLAotICAgICAgICAgICAgICAg
ICAgICAgICJ0aW1lb3V0IjogdGltZW91dCAqIDEwMDB9CisgICAgICAgIGZvcm1hdF9tYXAgPSB7
InVybCI6IHN0cmlwX3NlcnZlcih1cmwpfQogCiAgICAgICAgIHBhcmVudF93aW5kb3cgPSBwcm90
b2NvbC50ZXN0aGFybmVzcy5jbG9zZV9vbGRfd2luZG93cygpCiAgICAgICAgICMgTm93IHN0YXJ0
IHRoZSB0ZXN0IGhhcm5lc3MKLSAgICAgICAgcHJvdG9jb2wuYmFzZS5leGVjdXRlX3NjcmlwdChz
ZWxmLnNjcmlwdCAlIGZvcm1hdF9tYXApCi0gICAgICAgIHRlc3Rfd2luZG93ID0gcHJvdG9jb2wu
dGVzdGhhcm5lc3MuZ2V0X3Rlc3Rfd2luZG93KHdlYmRyaXZlciwgcGFyZW50X3dpbmRvdykKLQor
ICAgICAgICBwcm90b2NvbC5iYXNlLmV4ZWN1dGVfc2NyaXB0KCJ3aW5kb3cub3BlbignYWJvdXQ6
YmxhbmsnLCAnJXMnLCAnbm9vcGVuZXInKSIgJSBzZWxmLndpbmRvd19pZCkKKyAgICAgICAgdGVz
dF93aW5kb3cgPSBwcm90b2NvbC50ZXN0aGFybmVzcy5nZXRfdGVzdF93aW5kb3coc2VsZi53aW5k
b3dfaWQsIHBhcmVudF93aW5kb3csCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHRpbWVvdXQ9NSpzZWxmLnRpbWVvdXRfbXVsdGlwbGll
cikKKyAgICAgICAgc2VsZi5wcm90b2NvbC5iYXNlLnNldF93aW5kb3codGVzdF93aW5kb3cpCisg
ICAgICAgIHByb3RvY29sLndlYmRyaXZlci5nZXQodXJsKQogICAgICAgICBoYW5kbGVyID0gQ2Fs
bGJhY2tIYW5kbGVyKHNlbGYubG9nZ2VyLCBwcm90b2NvbCwgdGVzdF93aW5kb3cpCiAgICAgICAg
IHdoaWxlIFRydWU6CiAgICAgICAgICAgICByZXN1bHQgPSBwcm90b2NvbC5iYXNlLmV4ZWN1dGVf
c2NyaXB0KAotICAgICAgICAgICAgICAgIHNlbGYuc2NyaXB0X3Jlc3VtZSAlIGZvcm1hdF9tYXAs
IGFzeW5jPVRydWUpCisgICAgICAgICAgICAgICAgc2VsZi5zY3JpcHRfcmVzdW1lICUgZm9ybWF0
X21hcCwgYXN5bmNocm9ub3VzPVRydWUpCiAgICAgICAgICAgICBkb25lLCBydiA9IGhhbmRsZXIo
cmVzdWx0KQogICAgICAgICAgICAgaWYgZG9uZToKICAgICAgICAgICAgICAgICBicmVhawpAQCAt
MzI1LDMyICszMzksNDAgQEAgY2xhc3MgU2VsZW5pdW1SZWZUZXN0RXhlY3V0b3IoUmVmVGVzdEV4
ZWN1dG9yKToKICAgICAgICAgc2VsZi5jbG9zZV9hZnRlcl9kb25lID0gY2xvc2VfYWZ0ZXJfZG9u
ZQogICAgICAgICBzZWxmLmhhc193aW5kb3cgPSBGYWxzZQogCi0gICAgICAgIHdpdGggb3Blbihv
cy5wYXRoLmpvaW4oaGVyZSwgInJlZnRlc3QuanMiKSkgYXMgZjoKLSAgICAgICAgICAgIHNlbGYu
c2NyaXB0ID0gZi5yZWFkKCkKICAgICAgICAgd2l0aCBvcGVuKG9zLnBhdGguam9pbihoZXJlLCAi
cmVmdGVzdC13YWl0X3dlYmRyaXZlci5qcyIpKSBhcyBmOgogICAgICAgICAgICAgc2VsZi53YWl0
X3NjcmlwdCA9IGYucmVhZCgpCiAKKyAgICBkZWYgcmVzZXQoc2VsZik6CisgICAgICAgIHNlbGYu
aW1wbGVtZW50YXRpb24ucmVzZXQoKQorCiAgICAgZGVmIGlzX2FsaXZlKHNlbGYpOgogICAgICAg
ICByZXR1cm4gc2VsZi5wcm90b2NvbC5pc19hbGl2ZSgpCiAKICAgICBkZWYgZG9fdGVzdChzZWxm
LCB0ZXN0KToKICAgICAgICAgc2VsZi5sb2dnZXIuaW5mbygiVGVzdCByZXF1aXJlcyBPUy1sZXZl
bCB3aW5kb3cgZm9jdXMiKQogCi0gICAgICAgIHNlbGYucHJvdG9jb2wud2ViZHJpdmVyLnNldF93
aW5kb3dfc2l6ZSg2MDAsIDYwMCkKKyAgICAgICAgd2lkdGhfb2Zmc2V0LCBoZWlnaHRfb2Zmc2V0
ID0gc2VsZi5wcm90b2NvbC53ZWJkcml2ZXIuZXhlY3V0ZV9zY3JpcHQoCisgICAgICAgICAgICAi
IiJyZXR1cm4gW3dpbmRvdy5vdXRlcldpZHRoIC0gd2luZG93LmlubmVyV2lkdGgsCisgICAgICAg
ICAgICAgICAgICAgICAgIHdpbmRvdy5vdXRlckhlaWdodCAtIHdpbmRvdy5pbm5lckhlaWdodF07
IiIiCisgICAgICAgICkKKyAgICAgICAgc2VsZi5wcm90b2NvbC53ZWJkcml2ZXIuc2V0X3dpbmRv
d19zaXplKDAsIDApCisgICAgICAgIHNlbGYucHJvdG9jb2wud2ViZHJpdmVyLnNldF93aW5kb3df
cG9zaXRpb24oODAwICsgd2lkdGhfb2Zmc2V0LCA2MDAgKyBoZWlnaHRfb2Zmc2V0KQogCiAgICAg
ICAgIHJlc3VsdCA9IHNlbGYuaW1wbGVtZW50YXRpb24ucnVuX3Rlc3QodGVzdCkKIAogICAgICAg
ICByZXR1cm4gc2VsZi5jb252ZXJ0X3Jlc3VsdCh0ZXN0LCByZXN1bHQpCiAKICAgICBkZWYgc2Ny
ZWVuc2hvdChzZWxmLCB0ZXN0LCB2aWV3cG9ydF9zaXplLCBkcGkpOgotICAgICAgICAjIGh0dHBz
Oi8vZ2l0aHViLmNvbS93M2Mvd3B0cnVubmVyL2lzc3Vlcy8xNjYKKyAgICAgICAgIyBodHRwczov
L2dpdGh1Yi5jb20vd2ViLXBsYXRmb3JtLXRlc3RzL3dwdC9pc3N1ZXMvNzEzNQogICAgICAgICBh
c3NlcnQgdmlld3BvcnRfc2l6ZSBpcyBOb25lCiAgICAgICAgIGFzc2VydCBkcGkgaXMgTm9uZQog
Ci0gICAgICAgIHJldHVybiBTZWxlbml1bVJ1bihzZWxmLl9zY3JlZW5zaG90LAorICAgICAgICBy
ZXR1cm4gU2VsZW5pdW1SdW4oc2VsZi5sb2dnZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICBzZWxmLl9zY3JlZW5zaG90LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5wcm90
b2NvbCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYudGVzdF91cmwodGVzdCksCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0LnRpbWVvdXQpLnJ1bigpCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICB0ZXN0LnRpbWVvdXQsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICBzZWxmLmV4dHJhX3RpbWVvdXQpLnJ1bigpCiAKICAgICBkZWYgX3NjcmVlbnNob3Qoc2VsZiwg
cHJvdG9jb2wsIHVybCwgdGltZW91dCk6CiAgICAgICAgIHdlYmRyaXZlciA9IHByb3RvY29sLndl
YmRyaXZlcgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2V4ZWN1dG9ycy9leGVjdXRvcnNlcnZv
LnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93
cHRydW5uZXIvd3B0cnVubmVyL2V4ZWN1dG9ycy9leGVjdXRvcnNlcnZvLnB5CmluZGV4IGNhYTk3
MTQ1NTYwZWMxYzFkMGU3OGQzOGNkZDdhODU3YzM5NzJkNDAuLjM2NWExYTA4NjUzYjAxNzVmYzRk
ZjQwNTBlYjlkOWFhZjhiMWQzNGMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9leGVjdXRvcnMv
ZXhlY3V0b3JzZXJ2by5weQorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvZXhlY3V0b3JzL2V4ZWN1dG9yc2Vy
dm8ucHkKQEAgLTEsMyArMSw0IEBACitmcm9tIF9fZnV0dXJlX18gaW1wb3J0IHByaW50X2Z1bmN0
aW9uCiBpbXBvcnQgYmFzZTY0CiBpbXBvcnQganNvbgogaW1wb3J0IG9zCkBAIC04LDcgKzksNyBA
QCBpbXBvcnQgdXVpZAogCiBmcm9tIG1venByb2Nlc3MgaW1wb3J0IFByb2Nlc3NIYW5kbGVyCiAK
LWZyb20gc2VydmUuc2VydmUgaW1wb3J0IG1ha2VfaG9zdHNfZmlsZQorZnJvbSB0b29scy5zZXJ2
ZS5zZXJ2ZSBpbXBvcnQgbWFrZV9ob3N0c19maWxlCiAKIGZyb20gLmJhc2UgaW1wb3J0IChDb25u
ZWN0aW9ubGVzc1Byb3RvY29sLAogICAgICAgICAgICAgICAgICAgIFJlZlRlc3RJbXBsZW1lbnRh
dGlvbiwKQEAgLTIzLDcgKzI0LDYgQEAgZnJvbSAuLndlYmRyaXZlcl9zZXJ2ZXIgaW1wb3J0IFNl
cnZvRHJpdmVyU2VydmVyCiBweXRlc3RydW5uZXIgPSBOb25lCiB3ZWJkcml2ZXIgPSBOb25lCiAK
LWV4dHJhX3RpbWVvdXQgPSA1ICAjIHNlY29uZHMKIAogZGVmIHdyaXRlX2hvc3RzX2ZpbGUoY29u
ZmlnKToKICAgICBob3N0c19mZCwgaG9zdHNfcGF0aCA9IHRlbXBmaWxlLm1rc3RlbXAoKQpAQCAt
MTIyLDcgKzEyMiw3IEBAIGNsYXNzIFNlcnZvVGVzdGhhcm5lc3NFeGVjdXRvcihQcm9jZXNzVGVz
dEV4ZWN1dG9yKToKICAgICAgICAgICAgICAgICAgICAgc2VsZi5wcm9jLndhaXQoKQogICAgICAg
ICAgICAgICAgIGVsc2U6CiAgICAgICAgICAgICAgICAgICAgIHNlbGYucHJvYy5raWxsKCkKLSAg
ICAgICAgZXhjZXB0IEtleWJvYXJkSW50ZXJydXB0OgorICAgICAgICBleGNlcHQ6ICAjIG5vcWEK
ICAgICAgICAgICAgIHNlbGYucHJvYy5raWxsKCkKICAgICAgICAgICAgIHJhaXNlCiAKQEAgLTEz
Niw3ICsxMzYsNyBAQCBjbGFzcyBTZXJ2b1Rlc3RoYXJuZXNzRXhlY3V0b3IoUHJvY2Vzc1Rlc3RF
eGVjdXRvcik6CiAgICAgICAgICAgICBzZWxmLnJlc3VsdF9mbGFnLnNldCgpCiAgICAgICAgIGVs
c2U6CiAgICAgICAgICAgICBpZiBzZWxmLmludGVyYWN0aXZlOgotICAgICAgICAgICAgICAgIHBy
aW50IGxpbmUKKyAgICAgICAgICAgICAgICBwcmludChsaW5lKQogICAgICAgICAgICAgZWxzZToK
ICAgICAgICAgICAgICAgICBzZWxmLmxvZ2dlci5wcm9jZXNzX291dHB1dChzZWxmLnByb2MucGlk
LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpbmUsCkBAIC0x
ODAsNiArMTgwLDkgQEAgY2xhc3MgU2Vydm9SZWZUZXN0RXhlY3V0b3IoUHJvY2Vzc1Rlc3RFeGVj
dXRvcik6CiAgICAgICAgIHNlbGYudGVtcGRpciA9IHRlbXBmaWxlLm1rZHRlbXAoKQogICAgICAg
ICBzZWxmLmhvc3RzX3BhdGggPSB3cml0ZV9ob3N0c19maWxlKHNlcnZlcl9jb25maWcpCiAKKyAg
ICBkZWYgcmVzZXQoc2VsZik6CisgICAgICAgIHNlbGYuaW1wbGVtZW50YXRpb24ucmVzZXQoKQor
CiAgICAgZGVmIHRlYXJkb3duKHNlbGYpOgogICAgICAgICB0cnk6CiAgICAgICAgICAgICBvcy51
bmxpbmsoc2VsZi5ob3N0c19wYXRoKQpAQCAtMjY3LDcgKzI3MCw3IEBAIGNsYXNzIFNlcnZvUmVm
VGVzdEV4ZWN1dG9yKFByb2Nlc3NUZXN0RXhlY3V0b3IpOgogICAgIGRlZiBvbl9vdXRwdXQoc2Vs
ZiwgbGluZSk6CiAgICAgICAgIGxpbmUgPSBsaW5lLmRlY29kZSgidXRmOCIsICJyZXBsYWNlIikK
ICAgICAgICAgaWYgc2VsZi5pbnRlcmFjdGl2ZToKLSAgICAgICAgICAgIHByaW50IGxpbmUKKyAg
ICAgICAgICAgIHByaW50KGxpbmUpCiAgICAgICAgIGVsc2U6CiAgICAgICAgICAgICBzZWxmLmxv
Z2dlci5wcm9jZXNzX291dHB1dChzZWxmLnByb2MucGlkLAogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgbGluZSwKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9leGVjdXRv
cnMvZXhlY3V0b3JzZXJ2b2RyaXZlci5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9leGVjdXRvcnMvZXhlY3V0
b3JzZXJ2b2RyaXZlci5weQppbmRleCBkMDE1ZTc3YjhjNzJiNGY3ZDFkY2MzMmY2ZDFjNTYxM2Y5
MGI5NTliLi5iZDM3N2QwZDU5NTBjYThkNDY5ZjEzMjBjZGMwNzJjOGRmZjEwYmIyIDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dw
dHJ1bm5lci93cHRydW5uZXIvZXhlY3V0b3JzL2V4ZWN1dG9yc2Vydm9kcml2ZXIucHkKKysrIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5u
ZXIvd3B0cnVubmVyL2V4ZWN1dG9ycy9leGVjdXRvcnNlcnZvZHJpdmVyLnB5CkBAIC0xLDggKzEs
NiBAQAogaW1wb3J0IGpzb24KIGltcG9ydCBvcwogaW1wb3J0IHNvY2tldAotaW1wb3J0IHRocmVh
ZGluZwotaW1wb3J0IHRpbWUKIGltcG9ydCB0cmFjZWJhY2sKIAogZnJvbSAuYmFzZSBpbXBvcnQg
KFByb3RvY29sLApAQCAtMTAsNiArOCw3IEBAIGZyb20gLmJhc2UgaW1wb3J0IChQcm90b2NvbCwK
ICAgICAgICAgICAgICAgICAgICBSZWZUZXN0RXhlY3V0b3IsCiAgICAgICAgICAgICAgICAgICAg
UmVmVGVzdEltcGxlbWVudGF0aW9uLAogICAgICAgICAgICAgICAgICAgIFRlc3RoYXJuZXNzRXhl
Y3V0b3IsCisgICAgICAgICAgICAgICAgICAgVGltZWRSdW5uZXIsCiAgICAgICAgICAgICAgICAg
ICAgc3RyaXBfc2VydmVyKQogZnJvbSAuLnRlc3RydW5uZXIgaW1wb3J0IFN0b3AKIGZyb20gLi53
ZWJkcml2ZXJfc2VydmVyIGltcG9ydCB3YWl0X2Zvcl9zZXJ2aWNlCkBAIC0xOSw4ICsxOCw2IEBA
IFNlcnZvQ29tbWFuZEV4dGVuc2lvbnMgPSBOb25lCiAKIGhlcmUgPSBvcy5wYXRoLmpvaW4ob3Mu
cGF0aC5zcGxpdChfX2ZpbGVfXylbMF0pCiAKLWV4dHJhX3RpbWVvdXQgPSA1Ci0KIAogZGVmIGRv
X2RlbGF5ZWRfaW1wb3J0cygpOgogICAgIGdsb2JhbCB3ZWJkcml2ZXIKQEAgLTY3LDcgKzY0LDcg
QEAgZGVmIHBhcnNlX3ByZWZfdmFsdWUodmFsdWUpOgogCiAKIGNsYXNzIFNlcnZvQmFzZVByb3Rv
Y29sUGFydChCYXNlUHJvdG9jb2xQYXJ0KToKLSAgICBkZWYgZXhlY3V0ZV9zY3JpcHQoc2VsZiwg
c2NyaXB0LCBhc3luYz1GYWxzZSk6CisgICAgZGVmIGV4ZWN1dGVfc2NyaXB0KHNlbGYsIHNjcmlw
dCwgYXN5bmNocm9ub3VzPUZhbHNlKToKICAgICAgICAgcGFzcwogCiAgICAgZGVmIHNldF90aW1l
b3V0KHNlbGYsIHRpbWVvdXQpOgpAQCAtMTMxLDI5ICsxMjgsMTMgQEAgY2xhc3MgU2Vydm9XZWJE
cml2ZXJQcm90b2NvbChQcm90b2NvbCk6CiAgICAgICAgICAgICAgICAgYnJlYWsKIAogCi1jbGFz
cyBTZXJ2b1dlYkRyaXZlclJ1bihvYmplY3QpOgotICAgIGRlZiBfX2luaXRfXyhzZWxmLCBmdW5j
LCBzZXNzaW9uLCB1cmwsIHRpbWVvdXQsIGN1cnJlbnRfdGltZW91dD1Ob25lKToKLSAgICAgICAg
c2VsZi5mdW5jID0gZnVuYwotICAgICAgICBzZWxmLnJlc3VsdCA9IE5vbmUKLSAgICAgICAgc2Vs
Zi5zZXNzaW9uID0gc2Vzc2lvbgotICAgICAgICBzZWxmLnVybCA9IHVybAotICAgICAgICBzZWxm
LnRpbWVvdXQgPSB0aW1lb3V0Ci0gICAgICAgIHNlbGYucmVzdWx0X2ZsYWcgPSB0aHJlYWRpbmcu
RXZlbnQoKQotCi0gICAgZGVmIHJ1bihzZWxmKToKLSAgICAgICAgZXhlY3V0b3IgPSB0aHJlYWRp
bmcuVGhyZWFkKHRhcmdldD1zZWxmLl9ydW4pCi0gICAgICAgIGV4ZWN1dG9yLnN0YXJ0KCkKLQot
ICAgICAgICBmbGFnID0gc2VsZi5yZXN1bHRfZmxhZy53YWl0KHNlbGYudGltZW91dCArIGV4dHJh
X3RpbWVvdXQpCi0gICAgICAgIGlmIHNlbGYucmVzdWx0IGlzIE5vbmU6Ci0gICAgICAgICAgICBh
c3NlcnQgbm90IGZsYWcKLSAgICAgICAgICAgIHNlbGYucmVzdWx0ID0gRmFsc2UsICgiRVhURVJO
QUwtVElNRU9VVCIsIE5vbmUpCi0KLSAgICAgICAgcmV0dXJuIHNlbGYucmVzdWx0CitjbGFzcyBT
ZXJ2b1dlYkRyaXZlclJ1bihUaW1lZFJ1bm5lcik6CisgICAgZGVmIHNldF90aW1lb3V0KHNlbGYp
OgorICAgICAgICBwYXNzCiAKLSAgICBkZWYgX3J1bihzZWxmKToKKyAgICBkZWYgcnVuX2Z1bmMo
c2VsZik6CiAgICAgICAgIHRyeToKLSAgICAgICAgICAgIHNlbGYucmVzdWx0ID0gVHJ1ZSwgc2Vs
Zi5mdW5jKHNlbGYuc2Vzc2lvbiwgc2VsZi51cmwsIHNlbGYudGltZW91dCkKKyAgICAgICAgICAg
IHNlbGYucmVzdWx0ID0gVHJ1ZSwgc2VsZi5mdW5jKHNlbGYucHJvdG9jb2wuc2Vzc2lvbiwgc2Vs
Zi51cmwsIHNlbGYudGltZW91dCkKICAgICAgICAgZXhjZXB0IHdlYmRyaXZlci5UaW1lb3V0RXhj
ZXB0aW9uOgogICAgICAgICAgICAgc2VsZi5yZXN1bHQgPSBGYWxzZSwgKCJFWFRFUk5BTC1USU1F
T1VUIiwgTm9uZSkKICAgICAgICAgZXhjZXB0IChzb2NrZXQudGltZW91dCwgSU9FcnJvcik6CkBA
IC0xNjgsMTUgKzE0OSw5IEBAIGNsYXNzIFNlcnZvV2ViRHJpdmVyUnVuKG9iamVjdCk6CiAgICAg
ICAgICAgICBzZWxmLnJlc3VsdF9mbGFnLnNldCgpCiAKIAotZGVmIHRpbWVvdXRfZnVuYyh0aW1l
b3V0KToKLSAgICBpZiB0aW1lb3V0OgotICAgICAgICB0MCA9IHRpbWUudGltZSgpCi0gICAgICAg
IHJldHVybiBsYW1iZGE6IHRpbWUudGltZSgpIC0gdDAgPiB0aW1lb3V0ICsgZXh0cmFfdGltZW91
dAotICAgIGVsc2U6Ci0gICAgICAgIHJldHVybiBsYW1iZGE6IEZhbHNlCi0KLQogY2xhc3MgU2Vy
dm9XZWJEcml2ZXJUZXN0aGFybmVzc0V4ZWN1dG9yKFRlc3RoYXJuZXNzRXhlY3V0b3IpOgorICAg
IHN1cHBvcnRzX3Rlc3Rkcml2ZXIgPSBUcnVlCisKICAgICBkZWYgX19pbml0X18oc2VsZiwgYnJv
d3Nlciwgc2VydmVyX2NvbmZpZywgdGltZW91dF9tdWx0aXBsaWVyPTEsCiAgICAgICAgICAgICAg
ICAgIGNsb3NlX2FmdGVyX2RvbmU9VHJ1ZSwgY2FwYWJpbGl0aWVzPU5vbmUsIGRlYnVnX2luZm89
Tm9uZSwKICAgICAgICAgICAgICAgICAgKiprd2FyZ3MpOgpAQCAtMTk2LDcgKzE3MSw3IEBAIGNs
YXNzIFNlcnZvV2ViRHJpdmVyVGVzdGhhcm5lc3NFeGVjdXRvcihUZXN0aGFybmVzc0V4ZWN1dG9y
KToKICAgICBkZWYgZG9fdGVzdChzZWxmLCB0ZXN0KToKICAgICAgICAgdXJsID0gc2VsZi50ZXN0
X3VybCh0ZXN0KQogCi0gICAgICAgIHRpbWVvdXQgPSB0ZXN0LnRpbWVvdXQgKiBzZWxmLnRpbWVv
dXRfbXVsdGlwbGllciArIGV4dHJhX3RpbWVvdXQKKyAgICAgICAgdGltZW91dCA9IHRlc3QudGlt
ZW91dCAqIHNlbGYudGltZW91dF9tdWx0aXBsaWVyICsgc2VsZi5leHRyYV90aW1lb3V0CiAKICAg
ICAgICAgaWYgdGltZW91dCAhPSBzZWxmLnRpbWVvdXQ6CiAgICAgICAgICAgICB0cnk6CkBAIC0y
MDYsMTAgKzE4MSwxMiBAQCBjbGFzcyBTZXJ2b1dlYkRyaXZlclRlc3RoYXJuZXNzRXhlY3V0b3Io
VGVzdGhhcm5lc3NFeGVjdXRvcik6CiAgICAgICAgICAgICAgICAgc2VsZi5sb2dnZXIuZXJyb3Io
Ikxvc3Qgd2ViZHJpdmVyIGNvbm5lY3Rpb24iKQogICAgICAgICAgICAgICAgIHJldHVybiBTdG9w
CiAKLSAgICAgICAgc3VjY2VzcywgZGF0YSA9IFNlcnZvV2ViRHJpdmVyUnVuKHNlbGYuZG9fdGVz
dGhhcm5lc3MsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxm
LnByb3RvY29sLnNlc3Npb24sCisgICAgICAgIHN1Y2Nlc3MsIGRhdGEgPSBTZXJ2b1dlYkRyaXZl
clJ1bihzZWxmLmxvZ2dlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHNlbGYuZG9fdGVzdGhhcm5lc3MsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBzZWxmLnByb3RvY29sLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgdXJsLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgdGltZW91dCkucnVuKCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHRpbWVvdXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBz
ZWxmLmV4dHJhX3RpbWVvdXQpLnJ1bigpCiAKICAgICAgICAgaWYgc3VjY2VzczoKICAgICAgICAg
ICAgIHJldHVybiBzZWxmLmNvbnZlcnRfcmVzdWx0KHRlc3QsIGRhdGEpCkBAIC0yNTgsNiArMjM1
LDkgQEAgY2xhc3MgU2Vydm9XZWJEcml2ZXJSZWZUZXN0RXhlY3V0b3IoUmVmVGVzdEV4ZWN1dG9y
KToKICAgICAgICAgd2l0aCBvcGVuKG9zLnBhdGguam9pbihoZXJlLCAicmVmdGVzdC13YWl0X3dl
YmRyaXZlci5qcyIpKSBhcyBmOgogICAgICAgICAgICAgc2VsZi53YWl0X3NjcmlwdCA9IGYucmVh
ZCgpCiAKKyAgICBkZWYgcmVzZXQoc2VsZik6CisgICAgICAgIHNlbGYuaW1wbGVtZW50YXRpb24u
cmVzZXQoKQorCiAgICAgZGVmIGlzX2FsaXZlKHNlbGYpOgogICAgICAgICByZXR1cm4gc2VsZi5w
cm90b2NvbC5pc19hbGl2ZSgpCiAKQEAgLTI3NywxMSArMjU3LDExIEBAIGNsYXNzIFNlcnZvV2Vi
RHJpdmVyUmVmVGVzdEV4ZWN1dG9yKFJlZlRlc3RFeGVjdXRvcik6CiAgICAgICAgICAgICByZXR1
cm4gdGVzdC5yZXN1bHRfY2xzKCJJTlRFUk5BTC1FUlJPUiIsIG1lc3NhZ2UpLCBbXQogCiAgICAg
ZGVmIHNjcmVlbnNob3Qoc2VsZiwgdGVzdCwgdmlld3BvcnRfc2l6ZSwgZHBpKToKLSAgICAgICAg
IyBodHRwczovL2dpdGh1Yi5jb20vdzNjL3dwdHJ1bm5lci9pc3N1ZXMvMTY2CisgICAgICAgICMg
aHR0cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQvaXNzdWVzLzcxMzUKICAg
ICAgICAgYXNzZXJ0IHZpZXdwb3J0X3NpemUgaXMgTm9uZQogICAgICAgICBhc3NlcnQgZHBpIGlz
IE5vbmUKIAotICAgICAgICB0aW1lb3V0ID0gKHRlc3QudGltZW91dCAqIHNlbGYudGltZW91dF9t
dWx0aXBsaWVyICsgZXh0cmFfdGltZW91dAorICAgICAgICB0aW1lb3V0ID0gKHRlc3QudGltZW91
dCAqIHNlbGYudGltZW91dF9tdWx0aXBsaWVyICsgc2VsZi5leHRyYV90aW1lb3V0CiAgICAgICAg
ICAgICAgICAgICAgaWYgc2VsZi5kZWJ1Z19pbmZvIGlzIE5vbmUgZWxzZSBOb25lKQogCiAgICAg
ICAgIGlmIHNlbGYudGltZW91dCAhPSB0aW1lb3V0OgpAQCAtMjkyLDEwICsyNzIsMTIgQEAgY2xh
c3MgU2Vydm9XZWJEcml2ZXJSZWZUZXN0RXhlY3V0b3IoUmVmVGVzdEV4ZWN1dG9yKToKICAgICAg
ICAgICAgICAgICBzZWxmLmxvZ2dlci5lcnJvcigiTG9zdCB3ZWJkcml2ZXIgY29ubmVjdGlvbiIp
CiAgICAgICAgICAgICAgICAgcmV0dXJuIFN0b3AKIAotICAgICAgICByZXR1cm4gU2Vydm9XZWJE
cml2ZXJSdW4oc2VsZi5fc2NyZWVuc2hvdCwKKyAgICAgICAgcmV0dXJuIFNlcnZvV2ViRHJpdmVy
UnVuKHNlbGYubG9nZ2VyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5f
c2NyZWVuc2hvdCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYucHJvdG9j
b2wuc2Vzc2lvbiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYudGVzdF91
cmwodGVzdCksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aW1lb3V0KS5ydW4o
KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGltZW91dCwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHNlbGYuZXh0cmFfdGltZW91dCkucnVuKCkKIAogICAgIGRl
ZiBfc2NyZWVuc2hvdChzZWxmLCBzZXNzaW9uLCB1cmwsIHRpbWVvdXQpOgogICAgICAgICBzZXNz
aW9uLnVybCA9IHVybApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2V4ZWN1dG9ycy9leGVjdXRv
cndlYmRyaXZlci5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9leGVjdXRvcnMvZXhlY3V0b3J3ZWJkcml2ZXIu
cHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uMzkzNDZlODA1ZDczNTAwMGU5ZmNmMjhmY2FhNzJlY2NhOGYzNGY2OAot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9leGVjdXRvcnMvZXhlY3V0b3J3ZWJkcml2
ZXIucHkKQEAgLTAsMCArMSw0ODAgQEAKK2ltcG9ydCBqc29uCitpbXBvcnQgb3MKK2ltcG9ydCBz
b2NrZXQKK2ltcG9ydCB0aHJlYWRpbmcKK2ltcG9ydCB0aW1lCitpbXBvcnQgdHJhY2ViYWNrCitp
bXBvcnQgdXJscGFyc2UKK2ltcG9ydCB1dWlkCisKK2Zyb20gLmJhc2UgaW1wb3J0IChDYWxsYmFj
a0hhbmRsZXIsCisgICAgICAgICAgICAgICAgICAgUmVmVGVzdEV4ZWN1dG9yLAorICAgICAgICAg
ICAgICAgICAgIFJlZlRlc3RJbXBsZW1lbnRhdGlvbiwKKyAgICAgICAgICAgICAgICAgICBUZXN0
aGFybmVzc0V4ZWN1dG9yLAorICAgICAgICAgICAgICAgICAgIFRpbWVkUnVubmVyLAorICAgICAg
ICAgICAgICAgICAgIHN0cmlwX3NlcnZlcikKK2Zyb20gLnByb3RvY29sIGltcG9ydCAoQmFzZVBy
b3RvY29sUGFydCwKKyAgICAgICAgICAgICAgICAgICAgICAgVGVzdGhhcm5lc3NQcm90b2NvbFBh
cnQsCisgICAgICAgICAgICAgICAgICAgICAgIFByb3RvY29sLAorICAgICAgICAgICAgICAgICAg
ICAgICBTZWxlY3RvclByb3RvY29sUGFydCwKKyAgICAgICAgICAgICAgICAgICAgICAgQ2xpY2tQ
cm90b2NvbFBhcnQsCisgICAgICAgICAgICAgICAgICAgICAgIFNlbmRLZXlzUHJvdG9jb2xQYXJ0
LAorICAgICAgICAgICAgICAgICAgICAgICBBY3Rpb25TZXF1ZW5jZVByb3RvY29sUGFydCwKKyAg
ICAgICAgICAgICAgICAgICAgICAgVGVzdERyaXZlclByb3RvY29sUGFydCwKKyAgICAgICAgICAg
ICAgICAgICAgICAgR2VuZXJhdGVUZXN0UmVwb3J0UHJvdG9jb2xQYXJ0LAorICAgICAgICAgICAg
ICAgICAgICAgICBWaXJ0dWFsQXV0aGVudGljYXRvclByb3RvY29sUGFydCkKK2Zyb20gLi50ZXN0
cnVubmVyIGltcG9ydCBTdG9wCisKK2ltcG9ydCB3ZWJkcml2ZXIgYXMgY2xpZW50CisKK2hlcmUg
PSBvcy5wYXRoLmpvaW4ob3MucGF0aC5zcGxpdChfX2ZpbGVfXylbMF0pCisKKworY2xhc3MgV2Vi
RHJpdmVyQmFzZVByb3RvY29sUGFydChCYXNlUHJvdG9jb2xQYXJ0KToKKyAgICBkZWYgc2V0dXAo
c2VsZik6CisgICAgICAgIHNlbGYud2ViZHJpdmVyID0gc2VsZi5wYXJlbnQud2ViZHJpdmVyCisK
KyAgICBkZWYgZXhlY3V0ZV9zY3JpcHQoc2VsZiwgc2NyaXB0LCBhc3luY2hyb25vdXM9RmFsc2Up
OgorICAgICAgICBtZXRob2QgPSBzZWxmLndlYmRyaXZlci5leGVjdXRlX2FzeW5jX3NjcmlwdCBp
ZiBhc3luY2hyb25vdXMgZWxzZSBzZWxmLndlYmRyaXZlci5leGVjdXRlX3NjcmlwdAorICAgICAg
ICByZXR1cm4gbWV0aG9kKHNjcmlwdCkKKworICAgIGRlZiBzZXRfdGltZW91dChzZWxmLCB0aW1l
b3V0KToKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgc2VsZi53ZWJkcml2ZXIudGltZW91dHMu
c2NyaXB0ID0gdGltZW91dAorICAgICAgICBleGNlcHQgY2xpZW50LldlYkRyaXZlckV4Y2VwdGlv
bjoKKyAgICAgICAgICAgICMgd29ya2Fyb3VuZCBodHRwczovL2J1Z3MuY2hyb21pdW0ub3JnL3Av
Y2hyb21lZHJpdmVyL2lzc3Vlcy9kZXRhaWw/aWQ9MjA1NworICAgICAgICAgICAgYm9keSA9IHsi
dHlwZSI6ICJzY3JpcHQiLCAibXMiOiB0aW1lb3V0ICogMTAwMH0KKyAgICAgICAgICAgIHNlbGYu
d2ViZHJpdmVyLnNlbmRfc2Vzc2lvbl9jb21tYW5kKCJQT1NUIiwgInRpbWVvdXRzIiwgYm9keSkK
KworICAgIEBwcm9wZXJ0eQorICAgIGRlZiBjdXJyZW50X3dpbmRvdyhzZWxmKToKKyAgICAgICAg
cmV0dXJuIHNlbGYud2ViZHJpdmVyLndpbmRvd19oYW5kbGUKKworICAgIGRlZiBzZXRfd2luZG93
KHNlbGYsIGhhbmRsZSk6CisgICAgICAgIHNlbGYud2ViZHJpdmVyLndpbmRvd19oYW5kbGUgPSBo
YW5kbGUKKworICAgIGRlZiB3YWl0KHNlbGYpOgorICAgICAgICB3aGlsZSBUcnVlOgorICAgICAg
ICAgICAgdHJ5OgorICAgICAgICAgICAgICAgIHNlbGYud2ViZHJpdmVyLmV4ZWN1dGVfYXN5bmNf
c2NyaXB0KCIiKQorICAgICAgICAgICAgZXhjZXB0IChjbGllbnQuVGltZW91dEV4Y2VwdGlvbiwg
Y2xpZW50LlNjcmlwdFRpbWVvdXRFeGNlcHRpb24pOgorICAgICAgICAgICAgICAgIHBhc3MKKyAg
ICAgICAgICAgIGV4Y2VwdCAoc29ja2V0LnRpbWVvdXQsIGNsaWVudC5Ob1N1Y2hXaW5kb3dFeGNl
cHRpb24sCisgICAgICAgICAgICAgICAgICAgIGNsaWVudC5Vbmtub3duRXJyb3JFeGNlcHRpb24s
IElPRXJyb3IpOgorICAgICAgICAgICAgICAgIGJyZWFrCisgICAgICAgICAgICBleGNlcHQgRXhj
ZXB0aW9uIGFzIGU6CisgICAgICAgICAgICAgICAgc2VsZi5sb2dnZXIuZXJyb3IodHJhY2ViYWNr
LmZvcm1hdF9leGMoZSkpCisgICAgICAgICAgICAgICAgYnJlYWsKKworCitjbGFzcyBXZWJEcml2
ZXJUZXN0aGFybmVzc1Byb3RvY29sUGFydChUZXN0aGFybmVzc1Byb3RvY29sUGFydCk6CisgICAg
ZGVmIHNldHVwKHNlbGYpOgorICAgICAgICBzZWxmLndlYmRyaXZlciA9IHNlbGYucGFyZW50Lndl
YmRyaXZlcgorICAgICAgICBzZWxmLnJ1bm5lcl9oYW5kbGUgPSBOb25lCisgICAgICAgIHdpdGgg
b3Blbihvcy5wYXRoLmpvaW4oaGVyZSwgInJ1bm5lci5qcyIpKSBhcyBmOgorICAgICAgICAgICAg
c2VsZi5ydW5uZXJfc2NyaXB0ID0gZi5yZWFkKCkKKworICAgIGRlZiBsb2FkX3J1bm5lcihzZWxm
LCB1cmxfcHJvdG9jb2wpOgorICAgICAgICBpZiBzZWxmLnJ1bm5lcl9oYW5kbGU6CisgICAgICAg
ICAgICBzZWxmLndlYmRyaXZlci53aW5kb3dfaGFuZGxlID0gc2VsZi5ydW5uZXJfaGFuZGxlCisg
ICAgICAgIHVybCA9IHVybHBhcnNlLnVybGpvaW4oc2VsZi5wYXJlbnQuZXhlY3V0b3Iuc2VydmVy
X3VybCh1cmxfcHJvdG9jb2wpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIvdGVz
dGhhcm5lc3NfcnVubmVyLmh0bWwiKQorICAgICAgICBzZWxmLmxvZ2dlci5kZWJ1ZygiTG9hZGlu
ZyAlcyIgJSB1cmwpCisKKyAgICAgICAgc2VsZi53ZWJkcml2ZXIudXJsID0gdXJsCisgICAgICAg
IHNlbGYucnVubmVyX2hhbmRsZSA9IHNlbGYud2ViZHJpdmVyLndpbmRvd19oYW5kbGUKKyAgICAg
ICAgZm9ybWF0X21hcCA9IHsidGl0bGUiOiB0aHJlYWRpbmcuY3VycmVudF90aHJlYWQoKS5uYW1l
LnJlcGxhY2UoIiciLCAnIicpfQorICAgICAgICBzZWxmLnBhcmVudC5iYXNlLmV4ZWN1dGVfc2Ny
aXB0KHNlbGYucnVubmVyX3NjcmlwdCAlIGZvcm1hdF9tYXApCisKKyAgICBkZWYgY2xvc2Vfb2xk
X3dpbmRvd3Moc2VsZik6CisgICAgICAgIHNlbGYud2ViZHJpdmVyLmFjdGlvbnMucmVsZWFzZSgp
CisgICAgICAgIGhhbmRsZXMgPSBbaXRlbSBmb3IgaXRlbSBpbiBzZWxmLndlYmRyaXZlci5oYW5k
bGVzIGlmIGl0ZW0gIT0gc2VsZi5ydW5uZXJfaGFuZGxlXQorICAgICAgICBmb3IgaGFuZGxlIGlu
IGhhbmRsZXM6CisgICAgICAgICAgICB0cnk6CisgICAgICAgICAgICAgICAgc2VsZi53ZWJkcml2
ZXIud2luZG93X2hhbmRsZSA9IGhhbmRsZQorICAgICAgICAgICAgICAgIHNlbGYud2ViZHJpdmVy
LmNsb3NlKCkKKyAgICAgICAgICAgIGV4Y2VwdCBjbGllbnQuTm9TdWNoV2luZG93RXhjZXB0aW9u
OgorICAgICAgICAgICAgICAgIHBhc3MKKyAgICAgICAgc2VsZi53ZWJkcml2ZXIud2luZG93X2hh
bmRsZSA9IHNlbGYucnVubmVyX2hhbmRsZQorICAgICAgICByZXR1cm4gc2VsZi5ydW5uZXJfaGFu
ZGxlCisKKyAgICBkZWYgZ2V0X3Rlc3Rfd2luZG93KHNlbGYsIHdpbmRvd19pZCwgcGFyZW50LCB0
aW1lb3V0PTUpOgorICAgICAgICAiIiJGaW5kIHRoZSB0ZXN0IHdpbmRvdyBhbW9uZ3N0IGFsbCB0
aGUgb3BlbiB3aW5kb3dzLgorICAgICAgICBUaGlzIGlzIGFzc3VtZWQgdG8gYmUgZWl0aGVyIHRo
ZSBuYW1lZCB3aW5kb3cgb3IgdGhlIG9uZSBhZnRlciB0aGUgcGFyZW50IGluIHRoZSBsaXN0IG9m
CisgICAgICAgIHdpbmRvdyBoYW5kbGVzCisKKyAgICAgICAgOnBhcmFtIHdpbmRvd19pZDogVGhl
IERPTSBuYW1lIG9mIHRoZSBXaW5kb3cKKyAgICAgICAgOnBhcmFtIHBhcmVudDogVGhlIGhhbmRs
ZSBvZiB0aGUgcnVubmVyIHdpbmRvdworICAgICAgICA6cGFyYW0gdGltZW91dDogVGhlIHRpbWUg
aW4gc2Vjb25kcyB0byB3YWl0IGZvciB0aGUgd2luZG93IHRvIGFwcGVhci4gVGhpcyBpcyBiZWNh
dXNlIGluCisgICAgICAgICAgICAgICAgICAgICAgICBzb21lIGltcGxlbWVudGF0aW9ucyB0aGVy
ZSdzIGEgcmFjZSBiZXR3ZWVuIGNhbGxpbmcgd2luZG93Lm9wZW4gYW5kIHRoZQorICAgICAgICAg
ICAgICAgICAgICAgICAgd2luZG93IGJlaW5nIGFkZGVkIHRvIHRoZSBsaXN0IG9mIFdlYkRyaXZl
ciBhY2Nlc3NpYmxlIHdpbmRvd3MuIiIiCisgICAgICAgIHRlc3Rfd2luZG93ID0gTm9uZQorICAg
ICAgICBlbmRfdGltZSA9IHRpbWUudGltZSgpICsgdGltZW91dAorICAgICAgICB3aGlsZSB0aW1l
LnRpbWUoKSA8IGVuZF90aW1lOgorICAgICAgICAgICAgdHJ5OgorICAgICAgICAgICAgICAgICMg
VHJ5IHVzaW5nIHRoZSBKU09OIHNlcmlhbGl6YXRpb24gb2YgdGhlIFdpbmRvd1Byb3h5IG9iamVj
dCwKKyAgICAgICAgICAgICAgICAjIGl0J3MgaW4gTGV2ZWwgMSBidXQgbm90aGluZyBzdXBwb3J0
cyBpdCB5ZXQKKyAgICAgICAgICAgICAgICB3aW5fcyA9IHNlbGYud2ViZHJpdmVyLmV4ZWN1dGVf
c2NyaXB0KCJyZXR1cm4gd2luZG93WyclcyddOyIgJSB3aW5kb3dfaWQpCisgICAgICAgICAgICAg
ICAgd2luX29iaiA9IGpzb24ubG9hZHMod2luX3MpCisgICAgICAgICAgICAgICAgdGVzdF93aW5k
b3cgPSB3aW5fb2JqWyJ3aW5kb3ctZmNjNi0xMWU1LWI0ZjgtMzMwYTg4YWI5ZDdmIl0KKyAgICAg
ICAgICAgIGV4Y2VwdCBFeGNlcHRpb246CisgICAgICAgICAgICAgICAgcGFzcworCisgICAgICAg
ICAgICBpZiB0ZXN0X3dpbmRvdyBpcyBOb25lOgorICAgICAgICAgICAgICAgIGFmdGVyID0gc2Vs
Zi53ZWJkcml2ZXIuaGFuZGxlcworICAgICAgICAgICAgICAgIGlmIGxlbihhZnRlcikgPT0gMjoK
KyAgICAgICAgICAgICAgICAgICAgdGVzdF93aW5kb3cgPSBuZXh0KGl0ZXIoc2V0KGFmdGVyKSAt
IHtwYXJlbnR9KSkKKyAgICAgICAgICAgICAgICBlbGlmIGFmdGVyWzBdID09IHBhcmVudCBhbmQg
bGVuKGFmdGVyKSA+IDI6CisgICAgICAgICAgICAgICAgICAgICMgSG9wZSB0aGUgZmlyc3Qgb25l
IGhlcmUgaXMgdGhlIHRlc3Qgd2luZG93CisgICAgICAgICAgICAgICAgICAgIHRlc3Rfd2luZG93
ID0gYWZ0ZXJbMV0KKworICAgICAgICAgICAgaWYgdGVzdF93aW5kb3cgaXMgbm90IE5vbmU6Cisg
ICAgICAgICAgICAgICAgYXNzZXJ0IHRlc3Rfd2luZG93ICE9IHBhcmVudAorICAgICAgICAgICAg
ICAgIHJldHVybiB0ZXN0X3dpbmRvdworCisgICAgICAgICAgICB0aW1lLnNsZWVwKDAuMSkKKwor
ICAgICAgICByYWlzZSBFeGNlcHRpb24oInVuYWJsZSB0byBmaW5kIHRlc3Qgd2luZG93IikKKwor
CitjbGFzcyBXZWJEcml2ZXJTZWxlY3RvclByb3RvY29sUGFydChTZWxlY3RvclByb3RvY29sUGFy
dCk6CisgICAgZGVmIHNldHVwKHNlbGYpOgorICAgICAgICBzZWxmLndlYmRyaXZlciA9IHNlbGYu
cGFyZW50LndlYmRyaXZlcgorCisgICAgZGVmIGVsZW1lbnRzX2J5X3NlbGVjdG9yKHNlbGYsIHNl
bGVjdG9yKToKKyAgICAgICAgcmV0dXJuIHNlbGYud2ViZHJpdmVyLmZpbmQuY3NzKHNlbGVjdG9y
KQorCisgICAgZGVmIGVsZW1lbnRzX2J5X3NlbGVjdG9yX2FuZF9mcmFtZShzZWxmLCBlbGVtZW50
X3NlbGVjdG9yLCBmcmFtZSk6CisgICAgICAgIHJldHVybiBzZWxmLndlYmRyaXZlci5maW5kLmNz
cyhlbGVtZW50X3NlbGVjdG9yLCBmcmFtZT1mcmFtZSkKKworCitjbGFzcyBXZWJEcml2ZXJDbGlj
a1Byb3RvY29sUGFydChDbGlja1Byb3RvY29sUGFydCk6CisgICAgZGVmIHNldHVwKHNlbGYpOgor
ICAgICAgICBzZWxmLndlYmRyaXZlciA9IHNlbGYucGFyZW50LndlYmRyaXZlcgorCisgICAgZGVm
IGVsZW1lbnQoc2VsZiwgZWxlbWVudCk6CisgICAgICAgIHNlbGYubG9nZ2VyLmluZm8oImNsaWNr
ICIgKyByZXByKGVsZW1lbnQpKQorICAgICAgICByZXR1cm4gZWxlbWVudC5jbGljaygpCisKKwor
Y2xhc3MgV2ViRHJpdmVyU2VuZEtleXNQcm90b2NvbFBhcnQoU2VuZEtleXNQcm90b2NvbFBhcnQp
OgorICAgIGRlZiBzZXR1cChzZWxmKToKKyAgICAgICAgc2VsZi53ZWJkcml2ZXIgPSBzZWxmLnBh
cmVudC53ZWJkcml2ZXIKKworICAgIGRlZiBzZW5kX2tleXMoc2VsZiwgZWxlbWVudCwga2V5cyk6
CisgICAgICAgIHRyeToKKyAgICAgICAgICAgIHJldHVybiBlbGVtZW50LnNlbmRfa2V5cyhrZXlz
KQorICAgICAgICBleGNlcHQgY2xpZW50LlVua25vd25FcnJvckV4Y2VwdGlvbiBhcyBlOgorICAg
ICAgICAgICAgIyB3b3JrYXJvdW5kIGh0dHBzOi8vYnVncy5jaHJvbWl1bS5vcmcvcC9jaHJvbWVk
cml2ZXIvaXNzdWVzL2RldGFpbD9pZD0xOTk5CisgICAgICAgICAgICBpZiAoZS5odHRwX3N0YXR1
cyAhPSA1MDAgb3IKKyAgICAgICAgICAgICAgICBlLnN0YXR1c19jb2RlICE9ICJ1bmtub3duIGVy
cm9yIik6CisgICAgICAgICAgICAgICAgcmFpc2UKKyAgICAgICAgICAgIHJldHVybiBlbGVtZW50
LnNlbmRfZWxlbWVudF9jb21tYW5kKCJQT1NUIiwgInZhbHVlIiwgeyJ2YWx1ZSI6IGxpc3Qoa2V5
cyl9KQorCisKK2NsYXNzIFdlYkRyaXZlckFjdGlvblNlcXVlbmNlUHJvdG9jb2xQYXJ0KEFjdGlv
blNlcXVlbmNlUHJvdG9jb2xQYXJ0KToKKyAgICBkZWYgc2V0dXAoc2VsZik6CisgICAgICAgIHNl
bGYud2ViZHJpdmVyID0gc2VsZi5wYXJlbnQud2ViZHJpdmVyCisKKyAgICBkZWYgc2VuZF9hY3Rp
b25zKHNlbGYsIGFjdGlvbnMpOgorICAgICAgICBzZWxmLndlYmRyaXZlci5hY3Rpb25zLnBlcmZv
cm0oYWN0aW9uc1snYWN0aW9ucyddKQorCisKK2NsYXNzIFdlYkRyaXZlclRlc3REcml2ZXJQcm90
b2NvbFBhcnQoVGVzdERyaXZlclByb3RvY29sUGFydCk6CisgICAgZGVmIHNldHVwKHNlbGYpOgor
ICAgICAgICBzZWxmLndlYmRyaXZlciA9IHNlbGYucGFyZW50LndlYmRyaXZlcgorCisgICAgZGVm
IHNlbmRfbWVzc2FnZShzZWxmLCBtZXNzYWdlX3R5cGUsIHN0YXR1cywgbWVzc2FnZT1Ob25lKToK
KyAgICAgICAgb2JqID0geworICAgICAgICAgICAgInR5cGUiOiAidGVzdGRyaXZlci0lcyIgJSBz
dHIobWVzc2FnZV90eXBlKSwKKyAgICAgICAgICAgICJzdGF0dXMiOiBzdHIoc3RhdHVzKQorICAg
ICAgICB9CisgICAgICAgIGlmIG1lc3NhZ2U6CisgICAgICAgICAgICBvYmpbIm1lc3NhZ2UiXSA9
IHN0cihtZXNzYWdlKQorICAgICAgICBzZWxmLndlYmRyaXZlci5leGVjdXRlX3NjcmlwdCgid2lu
ZG93LnBvc3RNZXNzYWdlKCVzLCAnKicpIiAlIGpzb24uZHVtcHMob2JqKSkKKworCitjbGFzcyBX
ZWJEcml2ZXJHZW5lcmF0ZVRlc3RSZXBvcnRQcm90b2NvbFBhcnQoR2VuZXJhdGVUZXN0UmVwb3J0
UHJvdG9jb2xQYXJ0KToKKyAgICBkZWYgc2V0dXAoc2VsZik6CisgICAgICAgIHNlbGYud2ViZHJp
dmVyID0gc2VsZi5wYXJlbnQud2ViZHJpdmVyCisKKyAgICBkZWYgZ2VuZXJhdGVfdGVzdF9yZXBv
cnQoc2VsZiwgbWVzc2FnZSk6CisgICAgICAgIGpzb25fbWVzc2FnZSA9IHsibWVzc2FnZSI6IG1l
c3NhZ2V9CisgICAgICAgIHNlbGYud2ViZHJpdmVyLnNlbmRfc2Vzc2lvbl9jb21tYW5kKCJQT1NU
IiwgInJlcG9ydGluZy9nZW5lcmF0ZV90ZXN0X3JlcG9ydCIsIGpzb25fbWVzc2FnZSkKKworY2xh
c3MgV2ViRHJpdmVyVmlydHVhbEF1dGhlbnRpY2F0b3JQcm90b2NvbFBhcnQoVmlydHVhbEF1dGhl
bnRpY2F0b3JQcm90b2NvbFBhcnQpOgorICAgIGRlZiBzZXR1cChzZWxmKToKKyAgICAgICAgc2Vs
Zi53ZWJkcml2ZXIgPSBzZWxmLnBhcmVudC53ZWJkcml2ZXIKKworICAgIGRlZiBhZGRfdmlydHVh
bF9hdXRoZW50aWNhdG9yKHNlbGYsIGNvbmZpZyk6CisgICAgICAgIHJldHVybiBzZWxmLndlYmRy
aXZlci5zZW5kX3Nlc3Npb25fY29tbWFuZCgiUE9TVCIsICJ3ZWJhdXRobi9hdXRoZW50aWNhdG9y
IiwgY29uZmlnKQorCisgICAgZGVmIHJlbW92ZV92aXJ0dWFsX2F1dGhlbnRpY2F0b3Ioc2VsZiwg
YXV0aGVudGljYXRvcl9pZCk6CisgICAgICAgIHJldHVybiBzZWxmLndlYmRyaXZlci5zZW5kX3Nl
c3Npb25fY29tbWFuZCgiREVMRVRFIiwgIndlYmF1dGhuL2F1dGhlbnRpY2F0b3IvJXMiICUgYXV0
aGVudGljYXRvcl9pZCkKKworICAgIGRlZiBhZGRfY3JlZGVudGlhbChzZWxmLCBhdXRoZW50aWNh
dG9yX2lkLCBjcmVkZW50aWFsKToKKyAgICAgICAgcmV0dXJuIHNlbGYud2ViZHJpdmVyLnNlbmRf
c2Vzc2lvbl9jb21tYW5kKCJQT1NUIiwgIndlYmF1dGhuL2F1dGhlbnRpY2F0b3IvJXMvY3JlZGVu
dGlhbCIgJSBhdXRoZW50aWNhdG9yX2lkLCBjcmVkZW50aWFsKQorCisgICAgZGVmIGdldF9jcmVk
ZW50aWFscyhzZWxmLCBhdXRoZW50aWNhdG9yX2lkKToKKyAgICAgICAgcmV0dXJuIHNlbGYud2Vi
ZHJpdmVyLnNlbmRfc2Vzc2lvbl9jb21tYW5kKCJHRVQiLCAid2ViYXV0aG4vYXV0aGVudGljYXRv
ci8lcy9jcmVkZW50aWFscyIgJSBhdXRoZW50aWNhdG9yX2lkKQorCisgICAgZGVmIHJlbW92ZV9j
cmVkZW50aWFsKHNlbGYsIGF1dGhlbnRpY2F0b3JfaWQsIGNyZWRlbnRpYWxfaWQpOgorICAgICAg
ICByZXR1cm4gc2VsZi53ZWJkcml2ZXIuc2VuZF9zZXNzaW9uX2NvbW1hbmQoIkRFTEVURSIsICJ3
ZWJhdXRobi9hdXRoZW50aWNhdG9yLyVzL2NyZWRlbnRpYWxzLyVzIiAlIChhdXRoZW50aWNhdG9y
X2lkLCBjcmVkZW50aWFsX2lkKSkKKworICAgIGRlZiByZW1vdmVfYWxsX2NyZWRlbnRpYWxzKHNl
bGYsIGF1dGhlbnRpY2F0b3JfaWQpOgorICAgICAgICByZXR1cm4gc2VsZi53ZWJkcml2ZXIuc2Vu
ZF9zZXNzaW9uX2NvbW1hbmQoIkRFTEVURSIsICJ3ZWJhdXRobi9hdXRoZW50aWNhdG9yLyVzL2Ny
ZWRlbnRpYWxzIiAlIGF1dGhlbnRpY2F0b3JfaWQpCisKKyAgICBkZWYgc2V0X3VzZXJfdmVyaWZp
ZWQoc2VsZiwgYXV0aGVudGljYXRvcl9pZCwgdXYpOgorICAgICAgICByZXR1cm4gc2VsZi53ZWJk
cml2ZXIuc2VuZF9zZXNzaW9uX2NvbW1hbmQoIlBPU1QiLCAid2ViYXV0aG4vYXV0aGVudGljYXRv
ci8lcy91diIgJSBhdXRoZW50aWNhdG9yX2lkLCB1dikKKworCitjbGFzcyBXZWJEcml2ZXJQcm90
b2NvbChQcm90b2NvbCk6CisgICAgaW1wbGVtZW50cyA9IFtXZWJEcml2ZXJCYXNlUHJvdG9jb2xQ
YXJ0LAorICAgICAgICAgICAgICAgICAgV2ViRHJpdmVyVGVzdGhhcm5lc3NQcm90b2NvbFBhcnQs
CisgICAgICAgICAgICAgICAgICBXZWJEcml2ZXJTZWxlY3RvclByb3RvY29sUGFydCwKKyAgICAg
ICAgICAgICAgICAgIFdlYkRyaXZlckNsaWNrUHJvdG9jb2xQYXJ0LAorICAgICAgICAgICAgICAg
ICAgV2ViRHJpdmVyU2VuZEtleXNQcm90b2NvbFBhcnQsCisgICAgICAgICAgICAgICAgICBXZWJE
cml2ZXJBY3Rpb25TZXF1ZW5jZVByb3RvY29sUGFydCwKKyAgICAgICAgICAgICAgICAgIFdlYkRy
aXZlclRlc3REcml2ZXJQcm90b2NvbFBhcnQsCisgICAgICAgICAgICAgICAgICBXZWJEcml2ZXJH
ZW5lcmF0ZVRlc3RSZXBvcnRQcm90b2NvbFBhcnQsCisgICAgICAgICAgICAgICAgICBXZWJEcml2
ZXJWaXJ0dWFsQXV0aGVudGljYXRvclByb3RvY29sUGFydF0KKworICAgIGRlZiBfX2luaXRfXyhz
ZWxmLCBleGVjdXRvciwgYnJvd3NlciwgY2FwYWJpbGl0aWVzLCAqKmt3YXJncyk6CisgICAgICAg
IHN1cGVyKFdlYkRyaXZlclByb3RvY29sLCBzZWxmKS5fX2luaXRfXyhleGVjdXRvciwgYnJvd3Nl
cikKKyAgICAgICAgc2VsZi5jYXBhYmlsaXRpZXMgPSBjYXBhYmlsaXRpZXMKKyAgICAgICAgc2Vs
Zi51cmwgPSBicm93c2VyLndlYmRyaXZlcl91cmwKKyAgICAgICAgc2VsZi53ZWJkcml2ZXIgPSBO
b25lCisKKyAgICBkZWYgY29ubmVjdChzZWxmKToKKyAgICAgICAgIiIiQ29ubmVjdCB0byBicm93
c2VyIHZpYSBXZWJEcml2ZXIuIiIiCisgICAgICAgIHNlbGYubG9nZ2VyLmRlYnVnKCJDb25uZWN0
aW5nIHRvIFdlYkRyaXZlciBvbiBVUkw6ICVzIiAlIHNlbGYudXJsKQorCisgICAgICAgIGhvc3Qs
IHBvcnQgPSBzZWxmLnVybC5zcGxpdCgiOiIpWzFdLnN0cmlwKCIvIiksIHNlbGYudXJsLnNwbGl0
KCc6JylbLTFdLnN0cmlwKCIvIikKKworICAgICAgICBjYXBhYmlsaXRpZXMgPSB7ImFsd2F5c01h
dGNoIjogc2VsZi5jYXBhYmlsaXRpZXN9CisgICAgICAgIHNlbGYud2ViZHJpdmVyID0gY2xpZW50
LlNlc3Npb24oaG9zdCwgcG9ydCwgY2FwYWJpbGl0aWVzPWNhcGFiaWxpdGllcykKKyAgICAgICAg
c2VsZi53ZWJkcml2ZXIuc3RhcnQoKQorCisgICAgZGVmIHRlYXJkb3duKHNlbGYpOgorICAgICAg
ICBzZWxmLmxvZ2dlci5kZWJ1ZygiSGFuZ2luZyB1cCBvbiBXZWJEcml2ZXIgc2Vzc2lvbiIpCisg
ICAgICAgIHRyeToKKyAgICAgICAgICAgIHNlbGYud2ViZHJpdmVyLmVuZCgpCisgICAgICAgIGV4
Y2VwdCBFeGNlcHRpb24gYXMgZToKKyAgICAgICAgICAgIG1lc3NhZ2UgPSBzdHIoZ2V0YXR0cihl
LCAibWVzc2FnZSIsICIiKSkKKyAgICAgICAgICAgIGlmIG1lc3NhZ2U6CisgICAgICAgICAgICAg
ICAgbWVzc2FnZSArPSAiXG4iCisgICAgICAgICAgICBtZXNzYWdlICs9IHRyYWNlYmFjay5mb3Jt
YXRfZXhjKGUpCisgICAgICAgICAgICBzZWxmLmxvZ2dlci5kZWJ1ZyhtZXNzYWdlKQorICAgICAg
ICBzZWxmLndlYmRyaXZlciA9IE5vbmUKKworICAgIGRlZiBpc19hbGl2ZShzZWxmKToKKyAgICAg
ICAgdHJ5OgorICAgICAgICAgICAgIyBHZXQgYSBzaW1wbGUgcHJvcGVydHkgb3ZlciB0aGUgY29u
bmVjdGlvbgorICAgICAgICAgICAgc2VsZi53ZWJkcml2ZXIud2luZG93X2hhbmRsZQorICAgICAg
ICBleGNlcHQgKHNvY2tldC50aW1lb3V0LCBjbGllbnQuVW5rbm93bkVycm9yRXhjZXB0aW9uKToK
KyAgICAgICAgICAgIHJldHVybiBGYWxzZQorICAgICAgICByZXR1cm4gVHJ1ZQorCisgICAgZGVm
IGFmdGVyX2Nvbm5lY3Qoc2VsZik6CisgICAgICAgIHNlbGYudGVzdGhhcm5lc3MubG9hZF9ydW5u
ZXIoc2VsZi5leGVjdXRvci5sYXN0X2Vudmlyb25tZW50WyJwcm90b2NvbCJdKQorCisKK2NsYXNz
IFdlYkRyaXZlclJ1bihUaW1lZFJ1bm5lcik6CisgICAgZGVmIHNldF90aW1lb3V0KHNlbGYpOgor
ICAgICAgICB0cnk6CisgICAgICAgICAgICBzZWxmLnByb3RvY29sLmJhc2Uuc2V0X3RpbWVvdXQo
c2VsZi50aW1lb3V0ICsgc2VsZi5leHRyYV90aW1lb3V0KQorICAgICAgICBleGNlcHQgY2xpZW50
LlVua25vd25FcnJvckV4Y2VwdGlvbjoKKyAgICAgICAgICAgIHNlbGYubG9nZ2VyLmVycm9yKCJM
b3N0IFdlYkRyaXZlciBjb25uZWN0aW9uIikKKyAgICAgICAgICAgIHJldHVybiBTdG9wCisKKyAg
ICBkZWYgcnVuX2Z1bmMoc2VsZik6CisgICAgICAgIHRyeToKKyAgICAgICAgICAgIHNlbGYucmVz
dWx0ID0gVHJ1ZSwgc2VsZi5mdW5jKHNlbGYucHJvdG9jb2wsIHNlbGYudXJsLCBzZWxmLnRpbWVv
dXQpCisgICAgICAgIGV4Y2VwdCAoY2xpZW50LlRpbWVvdXRFeGNlcHRpb24sIGNsaWVudC5TY3Jp
cHRUaW1lb3V0RXhjZXB0aW9uKToKKyAgICAgICAgICAgIHNlbGYucmVzdWx0ID0gRmFsc2UsICgi
RVhURVJOQUwtVElNRU9VVCIsIE5vbmUpCisgICAgICAgIGV4Y2VwdCAoc29ja2V0LnRpbWVvdXQs
IGNsaWVudC5Vbmtub3duRXJyb3JFeGNlcHRpb24pOgorICAgICAgICAgICAgc2VsZi5yZXN1bHQg
PSBGYWxzZSwgKCJDUkFTSCIsIE5vbmUpCisgICAgICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZToK
KyAgICAgICAgICAgIGlmIChpc2luc3RhbmNlKGUsIGNsaWVudC5XZWJEcml2ZXJFeGNlcHRpb24p
IGFuZAorICAgICAgICAgICAgICAgICAgICBlLmh0dHBfc3RhdHVzID09IDQwOCBhbmQKKyAgICAg
ICAgICAgICAgICAgICAgZS5zdGF0dXNfY29kZSA9PSAiYXN5bmNocm9ub3VzIHNjcmlwdCB0aW1l
b3V0Iik6CisgICAgICAgICAgICAgICAgIyB3b3JrYXJvdW5kIGZvciBodHRwczovL2J1Z3MuY2hy
b21pdW0ub3JnL3AvY2hyb21lZHJpdmVyL2lzc3Vlcy9kZXRhaWw/aWQ9MjAwMQorICAgICAgICAg
ICAgICAgIHNlbGYucmVzdWx0ID0gRmFsc2UsICgiRVhURVJOQUwtVElNRU9VVCIsIE5vbmUpCisg
ICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgIG1lc3NhZ2UgPSBzdHIoZ2V0YXR0cihl
LCAibWVzc2FnZSIsICIiKSkKKyAgICAgICAgICAgICAgICBpZiBtZXNzYWdlOgorICAgICAgICAg
ICAgICAgICAgICBtZXNzYWdlICs9ICJcbiIKKyAgICAgICAgICAgICAgICBtZXNzYWdlICs9IHRy
YWNlYmFjay5mb3JtYXRfZXhjKGUpCisgICAgICAgICAgICAgICAgc2VsZi5yZXN1bHQgPSBGYWxz
ZSwgKCJJTlRFUk5BTC1FUlJPUiIsIG1lc3NhZ2UpCisgICAgICAgIGZpbmFsbHk6CisgICAgICAg
ICAgICBzZWxmLnJlc3VsdF9mbGFnLnNldCgpCisKKworY2xhc3MgV2ViRHJpdmVyVGVzdGhhcm5l
c3NFeGVjdXRvcihUZXN0aGFybmVzc0V4ZWN1dG9yKToKKyAgICBzdXBwb3J0c190ZXN0ZHJpdmVy
ID0gVHJ1ZQorCisgICAgZGVmIF9faW5pdF9fKHNlbGYsIGJyb3dzZXIsIHNlcnZlcl9jb25maWcs
IHRpbWVvdXRfbXVsdGlwbGllcj0xLAorICAgICAgICAgICAgICAgICBjbG9zZV9hZnRlcl9kb25l
PVRydWUsIGNhcGFiaWxpdGllcz1Ob25lLCBkZWJ1Z19pbmZvPU5vbmUsCisgICAgICAgICAgICAg
ICAgIHN1cHBvcnRzX2VhZ2VyX3BhZ2Vsb2FkPVRydWUsICoqa3dhcmdzKToKKyAgICAgICAgIiIi
V2ViRHJpdmVyLWJhc2VkIGV4ZWN1dG9yIGZvciB0ZXN0aGFybmVzcy5qcyB0ZXN0cyIiIgorICAg
ICAgICBUZXN0aGFybmVzc0V4ZWN1dG9yLl9faW5pdF9fKHNlbGYsIGJyb3dzZXIsIHNlcnZlcl9j
b25maWcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGltZW91dF9tdWx0
aXBsaWVyPXRpbWVvdXRfbXVsdGlwbGllciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBkZWJ1Z19pbmZvPWRlYnVnX2luZm8pCisgICAgICAgIHNlbGYucHJvdG9jb2wgPSBX
ZWJEcml2ZXJQcm90b2NvbChzZWxmLCBicm93c2VyLCBjYXBhYmlsaXRpZXMpCisgICAgICAgIHdp
dGggb3Blbihvcy5wYXRoLmpvaW4oaGVyZSwgInRlc3RoYXJuZXNzX3dlYmRyaXZlcl9yZXN1bWUu
anMiKSkgYXMgZjoKKyAgICAgICAgICAgIHNlbGYuc2NyaXB0X3Jlc3VtZSA9IGYucmVhZCgpCisg
ICAgICAgIHNlbGYuY2xvc2VfYWZ0ZXJfZG9uZSA9IGNsb3NlX2FmdGVyX2RvbmUKKyAgICAgICAg
c2VsZi53aW5kb3dfaWQgPSBzdHIodXVpZC51dWlkNCgpKQorICAgICAgICBzZWxmLnN1cHBvcnRz
X2VhZ2VyX3BhZ2Vsb2FkID0gc3VwcG9ydHNfZWFnZXJfcGFnZWxvYWQKKworICAgIGRlZiBpc19h
bGl2ZShzZWxmKToKKyAgICAgICAgcmV0dXJuIHNlbGYucHJvdG9jb2wuaXNfYWxpdmUoKQorCisg
ICAgZGVmIG9uX2Vudmlyb25tZW50X2NoYW5nZShzZWxmLCBuZXdfZW52aXJvbm1lbnQpOgorICAg
ICAgICBpZiBuZXdfZW52aXJvbm1lbnRbInByb3RvY29sIl0gIT0gc2VsZi5sYXN0X2Vudmlyb25t
ZW50WyJwcm90b2NvbCJdOgorICAgICAgICAgICAgc2VsZi5wcm90b2NvbC50ZXN0aGFybmVzcy5s
b2FkX3J1bm5lcihuZXdfZW52aXJvbm1lbnRbInByb3RvY29sIl0pCisKKyAgICBkZWYgZG9fdGVz
dChzZWxmLCB0ZXN0KToKKyAgICAgICAgdXJsID0gc2VsZi50ZXN0X3VybCh0ZXN0KQorCisgICAg
ICAgIHN1Y2Nlc3MsIGRhdGEgPSBXZWJEcml2ZXJSdW4oc2VsZi5sb2dnZXIsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5kb190ZXN0aGFybmVzcywKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnByb3RvY29sLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHVybCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICB0ZXN0LnRpbWVvdXQgKiBzZWxmLnRpbWVvdXRfbXVsdGlwbGllciwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmV4dHJhX3RpbWVvdXQpLnJ1bigp
CisKKyAgICAgICAgaWYgc3VjY2VzczoKKyAgICAgICAgICAgIHJldHVybiBzZWxmLmNvbnZlcnRf
cmVzdWx0KHRlc3QsIGRhdGEpCisKKyAgICAgICAgcmV0dXJuICh0ZXN0LnJlc3VsdF9jbHMoKmRh
dGEpLCBbXSkKKworICAgIGRlZiBkb190ZXN0aGFybmVzcyhzZWxmLCBwcm90b2NvbCwgdXJsLCB0
aW1lb3V0KToKKyAgICAgICAgZm9ybWF0X21hcCA9IHsidXJsIjogc3RyaXBfc2VydmVyKHVybCl9
CisKKyAgICAgICAgcGFyZW50X3dpbmRvdyA9IHByb3RvY29sLnRlc3RoYXJuZXNzLmNsb3NlX29s
ZF93aW5kb3dzKCkKKyAgICAgICAgIyBOb3cgc3RhcnQgdGhlIHRlc3QgaGFybmVzcworICAgICAg
ICBwcm90b2NvbC5iYXNlLmV4ZWN1dGVfc2NyaXB0KCJ3aW5kb3cub3BlbignYWJvdXQ6Ymxhbmsn
LCAnJXMnLCAnbm9vcGVuZXInKSIgJSBzZWxmLndpbmRvd19pZCkKKyAgICAgICAgdGVzdF93aW5k
b3cgPSBwcm90b2NvbC50ZXN0aGFybmVzcy5nZXRfdGVzdF93aW5kb3coc2VsZi53aW5kb3dfaWQs
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHBhcmVudF93aW5kb3csCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHRpbWVvdXQ9NSpzZWxmLnRpbWVvdXRfbXVsdGlwbGllcikK
KyAgICAgICAgc2VsZi5wcm90b2NvbC5iYXNlLnNldF93aW5kb3codGVzdF93aW5kb3cpCisgICAg
ICAgIGhhbmRsZXIgPSBDYWxsYmFja0hhbmRsZXIoc2VsZi5sb2dnZXIsIHByb3RvY29sLCB0ZXN0
X3dpbmRvdykKKyAgICAgICAgcHJvdG9jb2wud2ViZHJpdmVyLnVybCA9IHVybAorCisgICAgICAg
IGlmIG5vdCBzZWxmLnN1cHBvcnRzX2VhZ2VyX3BhZ2Vsb2FkOgorICAgICAgICAgICAgc2VsZi53
YWl0X2Zvcl9sb2FkKHByb3RvY29sKQorCisgICAgICAgIHdoaWxlIFRydWU6CisgICAgICAgICAg
ICByZXN1bHQgPSBwcm90b2NvbC5iYXNlLmV4ZWN1dGVfc2NyaXB0KAorICAgICAgICAgICAgICAg
IHNlbGYuc2NyaXB0X3Jlc3VtZSAlIGZvcm1hdF9tYXAsIGFzeW5jaHJvbm91cz1UcnVlKQorCisg
ICAgICAgICAgICAjIEFzIG9mIDIwMTktMDMtMjksIFdlYkRyaXZlciBkb2VzIG5vdCBkZWZpbmUg
ZXhwZWN0ZWQgYmVoYXZpb3IgZm9yCisgICAgICAgICAgICAjIGNhc2VzIHdoZXJlIHRoZSBicm93
c2VyIGNyYXNoZXMgZHVyaW5nIHNjcmlwdCBleGVjdXRpb246CisgICAgICAgICAgICAjCisgICAg
ICAgICAgICAjIGh0dHBzOi8vZ2l0aHViLmNvbS93M2Mvd2ViZHJpdmVyL2lzc3Vlcy8xMzA4Cisg
ICAgICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShyZXN1bHQsIGxpc3QpIG9yIGxlbihyZXN1bHQp
ICE9IDI6CisgICAgICAgICAgICAgICAgdHJ5OgorICAgICAgICAgICAgICAgICAgICBpc19hbGl2
ZSA9IHNlbGYuaXNfYWxpdmUoKQorICAgICAgICAgICAgICAgIGV4Y2VwdCBjbGllbnQuV2ViRHJp
dmVyRXhjZXB0aW9uOgorICAgICAgICAgICAgICAgICAgICBpc19hbGl2ZSA9IEZhbHNlCisKKyAg
ICAgICAgICAgICAgICBpZiBub3QgaXNfYWxpdmU6CisgICAgICAgICAgICAgICAgICAgIHJhaXNl
IEV4Y2VwdGlvbigiQnJvd3NlciBjcmFzaGVkIGR1cmluZyBzY3JpcHQgZXhlY3V0aW9uLiIpCisK
KyAgICAgICAgICAgIGRvbmUsIHJ2ID0gaGFuZGxlcihyZXN1bHQpCisgICAgICAgICAgICBpZiBk
b25lOgorICAgICAgICAgICAgICAgIGJyZWFrCisgICAgICAgIHJldHVybiBydgorCisgICAgZGVm
IHdhaXRfZm9yX2xvYWQoc2VsZiwgcHJvdG9jb2wpOgorICAgICAgICAjIHBhZ2VMb2FkU3RyYXRl
Z3k9ZWFnZXIgZG9lc24ndCB3b3JrIGluIENocm9tZSBzbyB0cnkgdG8gZW11bGF0ZSBpbiB1c2Vy
IHNjcmlwdAorICAgICAgICBsb2FkZWQgPSBGYWxzZQorICAgICAgICBzZWVuX2Vycm9yID0gRmFs
c2UKKyAgICAgICAgd2hpbGUgbm90IGxvYWRlZDoKKyAgICAgICAgICAgIHRyeToKKyAgICAgICAg
ICAgICAgICBsb2FkZWQgPSBwcm90b2NvbC5iYXNlLmV4ZWN1dGVfc2NyaXB0KCIiIgordmFyIGNh
bGxiYWNrID0gYXJndW1lbnRzW2FyZ3VtZW50cy5sZW5ndGggLSAxXTsKK2lmIChsb2NhdGlvbi5o
cmVmID09PSAiYWJvdXQ6YmxhbmsiKSB7CisgIGNhbGxiYWNrKGZhbHNlKTsKK30gZWxzZSBpZiAo
ZG9jdW1lbnQucmVhZHlTdGF0ZSAhPT0gImxvYWRpbmciKSB7CisgIGNhbGxiYWNrKHRydWUpOwor
fSBlbHNlIHsKKyAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigicmVhZHlzdGF0ZWNoYW5nZSIs
ICgpID0+IHtpZiAoZG9jdW1lbnQucmVhZHlTdGF0ZSAhPT0gImxvYWRpbmciKSB7Y2FsbGJhY2so
dHJ1ZSl9fSk7Cit9IiIiLCBhc3luY2hyb25vdXM9VHJ1ZSkKKyAgICAgICAgICAgIGV4Y2VwdCBj
bGllbnQuSmF2YXNjcmlwdEVycm9yRXhjZXB0aW9uOgorICAgICAgICAgICAgICAgICMgV2UgY2Fu
IGdldCBhbiBlcnJvciBoZXJlIGlmIHRoZSBzY3JpcHQgcnVucyBpbiB0aGUgaW5pdGlhbCBhYm91
dDpibGFuaworICAgICAgICAgICAgICAgICMgZG9jdW1lbnQgYmVmb3JlIGl0IGhhcyBuYXZpZ2F0
ZWQsIHdpdGggdGhlIGRyaXZlciByZXR1cm5pbmcgYW4gZXJyb3IKKyAgICAgICAgICAgICAgICAj
IGluZGljYXRpbmcgdGhhdCB0aGUgZG9jdW1lbnQgd2FzIHVubG9hZGVkCisgICAgICAgICAgICAg
ICAgaWYgc2Vlbl9lcnJvcjoKKyAgICAgICAgICAgICAgICAgICAgcmFpc2UKKyAgICAgICAgICAg
ICAgICBzZWVuX2Vycm9yID0gVHJ1ZQorCisKK2NsYXNzIFdlYkRyaXZlclJlZlRlc3RFeGVjdXRv
cihSZWZUZXN0RXhlY3V0b3IpOgorICAgIGRlZiBfX2luaXRfXyhzZWxmLCBicm93c2VyLCBzZXJ2
ZXJfY29uZmlnLCB0aW1lb3V0X211bHRpcGxpZXI9MSwKKyAgICAgICAgICAgICAgICAgc2NyZWVu
c2hvdF9jYWNoZT1Ob25lLCBjbG9zZV9hZnRlcl9kb25lPVRydWUsCisgICAgICAgICAgICAgICAg
IGRlYnVnX2luZm89Tm9uZSwgY2FwYWJpbGl0aWVzPU5vbmUsICoqa3dhcmdzKToKKyAgICAgICAg
IiIiV2ViRHJpdmVyLWJhc2VkIGV4ZWN1dG9yIGZvciByZWZ0ZXN0cyIiIgorICAgICAgICBSZWZU
ZXN0RXhlY3V0b3IuX19pbml0X18oc2VsZiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGJyb3dzZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXJ2ZXJfY29u
ZmlnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2NyZWVuc2hvdF9jYWNoZT1z
Y3JlZW5zaG90X2NhY2hlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGltZW91
dF9tdWx0aXBsaWVyPXRpbWVvdXRfbXVsdGlwbGllciwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGRlYnVnX2luZm89ZGVidWdfaW5mbykKKyAgICAgICAgc2VsZi5wcm90b2NvbCA9
IFdlYkRyaXZlclByb3RvY29sKHNlbGYsIGJyb3dzZXIsCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBjYXBhYmlsaXRpZXM9Y2FwYWJpbGl0aWVzKQorICAgICAgICBz
ZWxmLmltcGxlbWVudGF0aW9uID0gUmVmVGVzdEltcGxlbWVudGF0aW9uKHNlbGYpCisgICAgICAg
IHNlbGYuY2xvc2VfYWZ0ZXJfZG9uZSA9IGNsb3NlX2FmdGVyX2RvbmUKKyAgICAgICAgc2VsZi5o
YXNfd2luZG93ID0gRmFsc2UKKworICAgICAgICB3aXRoIG9wZW4ob3MucGF0aC5qb2luKGhlcmUs
ICJyZWZ0ZXN0LXdhaXRfd2ViZHJpdmVyLmpzIikpIGFzIGY6CisgICAgICAgICAgICBzZWxmLndh
aXRfc2NyaXB0ID0gZi5yZWFkKCkKKworICAgIGRlZiByZXNldChzZWxmKToKKyAgICAgICAgc2Vs
Zi5pbXBsZW1lbnRhdGlvbi5yZXNldCgpCisKKyAgICBkZWYgaXNfYWxpdmUoc2VsZik6CisgICAg
ICAgIHJldHVybiBzZWxmLnByb3RvY29sLmlzX2FsaXZlKCkKKworICAgIGRlZiBkb190ZXN0KHNl
bGYsIHRlc3QpOgorICAgICAgICB3aWR0aF9vZmZzZXQsIGhlaWdodF9vZmZzZXQgPSBzZWxmLnBy
b3RvY29sLndlYmRyaXZlci5leGVjdXRlX3NjcmlwdCgKKyAgICAgICAgICAgICIiInJldHVybiBb
d2luZG93Lm91dGVyV2lkdGggLSB3aW5kb3cuaW5uZXJXaWR0aCwKKyAgICAgICAgICAgICAgICAg
ICAgICAgd2luZG93Lm91dGVySGVpZ2h0IC0gd2luZG93LmlubmVySGVpZ2h0XTsiIiIKKyAgICAg
ICAgKQorICAgICAgICB0cnk6CisgICAgICAgICAgICBzZWxmLnByb3RvY29sLndlYmRyaXZlci53
aW5kb3cucG9zaXRpb24gPSAoMCwgMCkKKyAgICAgICAgZXhjZXB0IGNsaWVudC5JbnZhbGlkQXJn
dW1lbnRFeGNlcHRpb246CisgICAgICAgICAgICAjIFNhZmFyaSAxMiB0aHJvd3Mgd2l0aCAwIG9y
IDEsIHRyZWF0aW5nIHRoZW0gYXMgYm9vbHM7IGZpeGVkIGluIFNUUAorICAgICAgICAgICAgc2Vs
Zi5wcm90b2NvbC53ZWJkcml2ZXIud2luZG93LnBvc2l0aW9uID0gKDIsIDIpCisgICAgICAgIHNl
bGYucHJvdG9jb2wud2ViZHJpdmVyLndpbmRvdy5zaXplID0gKDgwMCArIHdpZHRoX29mZnNldCwg
NjAwICsgaGVpZ2h0X29mZnNldCkKKworICAgICAgICByZXN1bHQgPSBzZWxmLmltcGxlbWVudGF0
aW9uLnJ1bl90ZXN0KHRlc3QpCisKKyAgICAgICAgcmV0dXJuIHNlbGYuY29udmVydF9yZXN1bHQo
dGVzdCwgcmVzdWx0KQorCisgICAgZGVmIHNjcmVlbnNob3Qoc2VsZiwgdGVzdCwgdmlld3BvcnRf
c2l6ZSwgZHBpKToKKyAgICAgICAgIyBodHRwczovL2dpdGh1Yi5jb20vd2ViLXBsYXRmb3JtLXRl
c3RzL3dwdC9pc3N1ZXMvNzEzNQorICAgICAgICBhc3NlcnQgdmlld3BvcnRfc2l6ZSBpcyBOb25l
CisgICAgICAgIGFzc2VydCBkcGkgaXMgTm9uZQorCisgICAgICAgIHJldHVybiBXZWJEcml2ZXJS
dW4oc2VsZi5sb2dnZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5fc2NyZWVu
c2hvdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnByb3RvY29sLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHNlbGYudGVzdF91cmwodGVzdCksCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgdGVzdC50aW1lb3V0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHNlbGYuZXh0cmFfdGltZW91dCkucnVuKCkKKworICAgIGRlZiBfc2NyZWVuc2hvdChzZWxmLCBw
cm90b2NvbCwgdXJsLCB0aW1lb3V0KToKKyAgICAgICAgd2ViZHJpdmVyID0gcHJvdG9jb2wud2Vi
ZHJpdmVyCisgICAgICAgIHdlYmRyaXZlci51cmwgPSB1cmwKKworICAgICAgICB3ZWJkcml2ZXIu
ZXhlY3V0ZV9hc3luY19zY3JpcHQoc2VsZi53YWl0X3NjcmlwdCkKKworICAgICAgICBzY3JlZW5z
aG90ID0gd2ViZHJpdmVyLnNjcmVlbnNob3QoKQorCisgICAgICAgICMgc3RyaXAgb2ZmIHRoZSBk
YXRhOmltZy9wbmcsIHBhcnQgb2YgdGhlIHVybAorICAgICAgICBpZiBzY3JlZW5zaG90LnN0YXJ0
c3dpdGgoImRhdGE6aW1hZ2UvcG5nO2Jhc2U2NCwiKToKKyAgICAgICAgICAgIHNjcmVlbnNob3Qg
PSBzY3JlZW5zaG90LnNwbGl0KCIsIiwgMSlbMV0KKworICAgICAgICByZXR1cm4gc2NyZWVuc2hv
dApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2V4ZWN1dG9ycy9wcm90b2NvbC5weSBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dw
dHJ1bm5lci9leGVjdXRvcnMvcHJvdG9jb2wucHkKaW5kZXggNzFmYzNjOWE4ZjY1MTkxM2U1MzI2
NmYxODFlZjIxNjFhYzkxYzk3ZS4uMDc1ODMxMmQ2NWY5MDA0M2IxY2JiMmY1MzZkM2QzMWM3MTgx
MmFkNiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2V4ZWN1dG9ycy9wcm90b2NvbC5weQorKysg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1
bm5lci93cHRydW5uZXIvZXhlY3V0b3JzL3Byb3RvY29sLnB5CkBAIC0xLDQgKzEsNSBAQAogaW1w
b3J0IHRyYWNlYmFjaworCiBmcm9tIGFiYyBpbXBvcnQgQUJDTWV0YSwgYWJzdHJhY3RtZXRob2QK
IAogCkBAIC01NiwxMSArNTcsOCBAQCBjbGFzcyBQcm90b2NvbChvYmplY3QpOgogICAgICAgICBl
eGNlcHQgRXhjZXB0aW9uOgogICAgICAgICAgICAgaWYgbXNnIGlzIG5vdCBOb25lOgogICAgICAg
ICAgICAgICAgIHNlbGYubG9nZ2VyLndhcm5pbmcobXNnKQotICAgICAgICAgICAgc2VsZi5sb2dn
ZXIuZXJyb3IodHJhY2ViYWNrLmZvcm1hdF9leGMoKSkKLSAgICAgICAgICAgIHNlbGYuZXhlY3V0
b3IucnVubmVyLnNlbmRfbWVzc2FnZSgiaW5pdF9mYWlsZWQiKQotICAgICAgICAgICAgcmV0dXJu
Ci0gICAgICAgIGVsc2U6Ci0gICAgICAgICAgICBzZWxmLmV4ZWN1dG9yLnJ1bm5lci5zZW5kX21l
c3NhZ2UoImluaXRfc3VjY2VlZGVkIikKKyAgICAgICAgICAgIHNlbGYubG9nZ2VyLndhcm5pbmco
dHJhY2ViYWNrLmZvcm1hdF9leGMoKSkKKyAgICAgICAgICAgIHJhaXNlCiAKICAgICBAYWJzdHJh
Y3RtZXRob2QKICAgICBkZWYgY29ubmVjdChzZWxmKToKQEAgLTExMSwxMSArMTA5LDExIEBAIGNs
YXNzIEJhc2VQcm90b2NvbFBhcnQoUHJvdG9jb2xQYXJ0KToKICAgICBuYW1lID0gImJhc2UiCiAK
ICAgICBAYWJzdHJhY3RtZXRob2QKLSAgICBkZWYgZXhlY3V0ZV9zY3JpcHQoc2VsZiwgc2NyaXB0
LCBhc3luYz1GYWxzZSk6CisgICAgZGVmIGV4ZWN1dGVfc2NyaXB0KHNlbGYsIHNjcmlwdCwgYXN5
bmNocm9ub3VzPUZhbHNlKToKICAgICAgICAgIiIiRXhlY3V0ZSBqYXZhc2NyaXB0IGluIHRoZSBj
dXJyZW50IFdpbmRvdy4KIAogICAgICAgICA6cGFyYW0gc3RyIHNjcmlwdDogVGhlIGpzIHNvdXJj
ZSB0byBleGVjdXRlLiBUaGlzIGlzIGltcGxpY2l0bHkgd3JhcHBlZCBpbiBhIGZ1bmN0aW9uLgot
ICAgICAgICA6cGFyYW0gYm9vbCBhc3luYzogV2hldGhlciB0aGUgc2NyaXB0IGlzIGFzeW5jaHJv
bm91cyBpbiB0aGUgd2ViZHJpdmVyCisgICAgICAgIDpwYXJhbSBib29sIGFzeW5jaHJvbm91czog
V2hldGhlciB0aGUgc2NyaXB0IGlzIGFzeW5jaHJvbm91cyBpbiB0aGUgd2ViZHJpdmVyCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBzZW5zZSBpLmUuIHdoZXRoZXIgdGhlIHJldHVybiB2YWx1
ZSBpcyB0aGUgcmVzdWx0IG9mCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGUgaW5pdGlh
bCBmdW5jdGlvbiBjYWxsIG9yIGlmIGl0IHdhaXRzIGZvciBzb21lIGNhbGxiYWNrLgogICAgICAg
ICA6cmV0dXJuczogVGhlIHJlc3VsdCBvZiB0aGUgc2NyaXB0IGV4ZWN1dGlvbi4KQEAgLTIzNyw2
ICsyMzUsMTcgQEAgY2xhc3MgU2VsZWN0b3JQcm90b2NvbFBhcnQoUHJvdG9jb2xQYXJ0KToKIAog
ICAgIG5hbWUgPSAic2VsZWN0IgogCisgICAgZGVmIGVsZW1lbnRfYnlfc2VsZWN0b3Ioc2VsZiwg
ZWxlbWVudF9zZWxlY3RvciwgZnJhbWU9IndpbmRvdyIpOgorICAgICAgICBlbGVtZW50cyA9IHNl
bGYuZWxlbWVudHNfYnlfc2VsZWN0b3JfYW5kX2ZyYW1lKGVsZW1lbnRfc2VsZWN0b3IsIGZyYW1l
KQorICAgICAgICBmcmFtZV9uYW1lID0gIndpbmRvdyIKKyAgICAgICAgaWYgKGZyYW1lICE9ICJ3
aW5kb3ciKToKKyAgICAgICAgICAgIGZyYW1lX25hbWUgPSBmcmFtZS5pZAorICAgICAgICBpZiBs
ZW4oZWxlbWVudHMpID09IDA6CisgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJTZWxlY3Rv
ciAnJXMnIGluIGZyYW1lICclcycgbWF0Y2hlcyBubyBlbGVtZW50cyIgJSAoZWxlbWVudF9zZWxl
Y3RvciwgZnJhbWVfbmFtZSkpCisgICAgICAgIGVsaWYgbGVuKGVsZW1lbnRzKSA+IDE6CisgICAg
ICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJTZWxlY3RvciAnJXMnIGluIGZyYW1lICclcycgbWF0
Y2hlcyBtdWx0aXBsZSBlbGVtZW50cyIgJSAoZWxlbWVudF9zZWxlY3RvciwgZnJhbWVfbmFtZSkp
CisgICAgICAgIHJldHVybiBlbGVtZW50c1swXQorCiAgICAgQGFic3RyYWN0bWV0aG9kCiAgICAg
ZGVmIGVsZW1lbnRzX2J5X3NlbGVjdG9yKHNlbGYsIHNlbGVjdG9yKToKICAgICAgICAgIiIiU2Vs
ZWN0IGVsZW1lbnRzIG1hdGNoaW5nIGEgQ1NTIHNlbGVjdG9yCkBAIC0yNDUsNiArMjU0LDEzIEBA
IGNsYXNzIFNlbGVjdG9yUHJvdG9jb2xQYXJ0KFByb3RvY29sUGFydCk6CiAgICAgICAgIDpyZXR1
cm5zOiBBIGxpc3Qgb2YgcHJvdG9jb2wtc3BlY2lmaWMgaGFuZGxlcyB0byBlbGVtZW50cyIiIgog
ICAgICAgICBwYXNzCiAKKyAgICBAYWJzdHJhY3RtZXRob2QKKyAgICBkZWYgZWxlbWVudHNfYnlf
c2VsZWN0b3JfYW5kX2ZyYW1lKHNlbGYsIGVsZW1lbnRfc2VsZWN0b3IsIGZyYW1lKToKKyAgICAg
ICAgIiIiU2VsZWN0IGVsZW1lbnRzIG1hdGNoaW5nIGEgQ1NTIHNlbGVjdG9yCisgICAgICAgIDpw
YXJhbSBzdHIgc2VsZWN0b3I6IFRoZSBDU1Mgc2VsZWN0b3IKKyAgICAgICAgOnJldHVybnM6IEEg
bGlzdCBvZiBwcm90b2NvbC1zcGVjaWZpYyBoYW5kbGVzIHRvIGVsZW1lbnRzIiIiCisgICAgICAg
IHBhc3MKKwogCiBjbGFzcyBDbGlja1Byb3RvY29sUGFydChQcm90b2NvbFBhcnQpOgogICAgICIi
IlByb3RvY29sIHBhcnQgZm9yIHBlcmZvcm1pbmcgdHJ1c3RlZCBjbGlja3MiIiIKQEAgLTI1OSw2
ICsyNzUsNyBAQCBjbGFzcyBDbGlja1Byb3RvY29sUGFydChQcm90b2NvbFBhcnQpOgogICAgICAg
ICA6cGFyYW0gZWxlbWVudDogQSBwcm90b2NvbC1zcGVjaWZpYyBoYW5kbGUgdG8gYW4gZWxlbWVu
dC4iIiIKICAgICAgICAgcGFzcwogCisKIGNsYXNzIFNlbmRLZXlzUHJvdG9jb2xQYXJ0KFByb3Rv
Y29sUGFydCk6CiAgICAgIiIiUHJvdG9jb2wgcGFydCBmb3IgcGVyZm9ybWluZyB0cnVzdGVkIGNs
aWNrcyIiIgogICAgIF9fbWV0YWNsYXNzX18gPSBBQkNNZXRhCkBAIC0yNzQsNiArMjkxLDM0IEBA
IGNsYXNzIFNlbmRLZXlzUHJvdG9jb2xQYXJ0KFByb3RvY29sUGFydCk6CiAgICAgICAgIHBhc3MK
IAogCitjbGFzcyBHZW5lcmF0ZVRlc3RSZXBvcnRQcm90b2NvbFBhcnQoUHJvdG9jb2xQYXJ0KToK
KyAgICAiIiJQcm90b2NvbCBwYXJ0IGZvciBnZW5lcmF0aW5nIHRlc3QgcmVwb3J0cyIiIgorICAg
IF9fbWV0YWNsYXNzX18gPSBBQkNNZXRhCisKKyAgICBuYW1lID0gImdlbmVyYXRlX3Rlc3RfcmVw
b3J0IgorCisgICAgQGFic3RyYWN0bWV0aG9kCisgICAgZGVmIGdlbmVyYXRlX3Rlc3RfcmVwb3J0
KHNlbGYsIG1lc3NhZ2UpOgorICAgICAgICAiIiJHZW5lcmF0ZSBhIHRlc3QgcmVwb3J0LgorCisg
ICAgICAgIDpwYXJhbSBtZXNzYWdlOiBUaGUgbWVzc2FnZSB0byBiZSBjb250YWluZWQgaW4gdGhl
IHJlcG9ydC4iIiIKKyAgICAgICAgcGFzcworCisKK2NsYXNzIEFjdGlvblNlcXVlbmNlUHJvdG9j
b2xQYXJ0KFByb3RvY29sUGFydCk6CisgICAgIiIiUHJvdG9jb2wgcGFydCBmb3IgcGVyZm9ybWlu
ZyB0cnVzdGVkIGNsaWNrcyIiIgorICAgIF9fbWV0YWNsYXNzX18gPSBBQkNNZXRhCisKKyAgICBu
YW1lID0gImFjdGlvbl9zZXF1ZW5jZSIKKworICAgIEBhYnN0cmFjdG1ldGhvZAorICAgIGRlZiBz
ZW5kX2FjdGlvbnMoc2VsZiwgYWN0aW9ucyk6CisgICAgICAgICIiIlNlbmQgYSBzZXF1ZW5jZSBv
ZiBhY3Rpb25zIHRvIHRoZSB3aW5kb3cuCisKKyAgICAgICAgOnBhcmFtIGFjdGlvbnM6IEEgcHJv
dG9jb2wtc3BlY2lmaWMgaGFuZGxlIHRvIGFuIGFycmF5IG9mIGFjdGlvbnMuIiIiCisgICAgICAg
IHBhc3MKKworCiBjbGFzcyBUZXN0RHJpdmVyUHJvdG9jb2xQYXJ0KFByb3RvY29sUGFydCk6CiAg
ICAgIiIiUHJvdG9jb2wgcGFydCB0aGF0IGltcGxlbWVudHMgdGhlIGJhc2ljIGZ1bmN0aW9uYWxp
dHkgcmVxdWlyZWQgZm9yCiAgICAgYWxsIHRlc3Rkcml2ZXItYmFzZWQgdGVzdHMuIiIiCkBAIC0z
MjAsMyArMzY1LDYyIEBAIGNsYXNzIENvdmVyYWdlUHJvdG9jb2xQYXJ0KFByb3RvY29sUGFydCk6
CiAgICAgZGVmIGR1bXAoc2VsZik6CiAgICAgICAgICIiIkR1bXAgY292ZXJhZ2UgY291bnRlcnMi
IiIKICAgICAgICAgcGFzcworCitjbGFzcyBWaXJ0dWFsQXV0aGVudGljYXRvclByb3RvY29sUGFy
dChQcm90b2NvbFBhcnQpOgorICAgICIiIlByb3RvY29sIHBhcnQgZm9yIGNyZWF0aW5nIGFuZCBt
YW5pcHVsYXRpbmcgdmlydHVhbCBhdXRoZW50aWNhdG9ycyIiIgorICAgIF9fbWV0YWNsYXNzX18g
PSBBQkNNZXRhCisKKyAgICBuYW1lID0gInZpcnR1YWxfYXV0aGVudGljYXRvciIKKworICAgIEBh
YnN0cmFjdG1ldGhvZAorICAgIGRlZiBhZGRfdmlydHVhbF9hdXRoZW50aWNhdG9yKHNlbGYsIGNv
bmZpZyk6CisgICAgICAgICIiIkFkZCBhIHZpcnR1YWwgYXV0aGVudGljYXRvcgorCisgICAgICAg
IDpwYXJhbSBjb25maWc6IFRoZSBBdXRoZW50aWNhdG9yIENvbmZpZ3VyYXRpb24iIiIKKyAgICAg
ICAgcGFzcworCisgICAgQGFic3RyYWN0bWV0aG9kCisgICAgZGVmIHJlbW92ZV92aXJ0dWFsX2F1
dGhlbnRpY2F0b3Ioc2VsZiwgYXV0aGVudGljYXRvcl9pZCk6CisgICAgICAgICIiIlJlbW92ZSBh
IHZpcnR1YWwgYXV0aGVudGljYXRvcgorCisgICAgICAgIDpwYXJhbSBzdHIgYXV0aGVudGljYXRv
cl9pZDogVGhlIElEIG9mIHRoZSBhdXRoZW50aWNhdG9yIHRvIHJlbW92ZSIiIgorICAgICAgICBw
YXNzCisKKyAgICBAYWJzdHJhY3RtZXRob2QKKyAgICBkZWYgYWRkX2NyZWRlbnRpYWwoc2VsZiwg
YXV0aGVudGljYXRvcl9pZCwgY3JlZGVudGlhbCk6CisgICAgICAgICIiIkluamVjdCBhIGNyZWRl
bnRpYWwgb250byBhbiBhdXRoZW50aWNhdG9yCisKKyAgICAgICAgOnBhcmFtIHN0ciBhdXRoZW50
aWNhdG9yX2lkOiBUaGUgSUQgb2YgdGhlIGF1dGhlbnRpY2F0b3IgdG8gYWRkIHRoZSBjcmVkZW50
aWFsIHRvCisgICAgICAgIDpwYXJhbSBjcmVkZW50aWFsOiBUaGUgY3JlZGVudGlhbCB0byBpbmpl
Y3QiIiIKKyAgICAgICAgcGFzcworCisgICAgQGFic3RyYWN0bWV0aG9kCisgICAgZGVmIGdldF9j
cmVkZW50aWFscyhzZWxmLCBhdXRoZW50aWNhdG9yX2lkKToKKyAgICAgICAgIiIiR2V0IHRoZSBj
cmVkZW50aWFscyBzdG9yZWQgaW4gYW4gYXV0aGVudGljYXRvcgorCisgICAgICAgIDpwYXJhbSBz
dHIgYXV0aGVudGljYXRvcl9pZDogVGhlIElEIG9mIHRoZSBhdXRoZW50aWNhdG9yCisgICAgICAg
IDpyZXR1cm5zOiBBbiBhcnJheSB3aXRoIHRoZSBjcmVkZW50aWFscyBzdG9yZWQgb24gdGhlIGF1
dGhlbnRpY2F0b3IiIiIKKyAgICAgICAgcGFzcworCisgICAgQGFic3RyYWN0bWV0aG9kCisgICAg
ZGVmIHJlbW92ZV9jcmVkZW50aWFsKHNlbGYsIGF1dGhlbnRpY2F0b3JfaWQsIGNyZWRlbnRpYWxf
aWQpOgorICAgICAgICAiIiJSZW1vdmUgYSBjcmVkZW50aWFsIHN0b3JlZCBpbiBhbiBhdXRoZW50
aWNhdG9yCisKKyAgICAgICAgOnBhcmFtIHN0ciBhdXRoZW50aWNhdG9yX2lkOiBUaGUgSUQgb2Yg
dGhlIGF1dGhlbnRpY2F0b3IKKyAgICAgICAgOnBhcmFtIHN0ciBjcmVkZW50aWFsX2lkOiBUaGUg
SUQgb2YgdGhlIGNyZWRlbnRpYWwiIiIKKyAgICAgICAgcGFzcworCisgICAgQGFic3RyYWN0bWV0
aG9kCisgICAgZGVmIHJlbW92ZV9hbGxfY3JlZGVudGlhbHMoc2VsZiwgYXV0aGVudGljYXRvcl9p
ZCk6CisgICAgICAgICIiIlJlbW92ZSBhbGwgdGhlIGNyZWRlbnRpYWxzIHN0b3JlZCBpbiBhbiBh
dXRoZW50aWNhdG9yCisKKyAgICAgICAgOnBhcmFtIHN0ciBhdXRoZW50aWNhdG9yX2lkOiBUaGUg
SUQgb2YgdGhlIGF1dGhlbnRpY2F0b3IiIiIKKyAgICAgICAgcGFzcworCisgICAgQGFic3RyYWN0
bWV0aG9kCisgICAgZGVmIHNldF91c2VyX3ZlcmlmaWVkKHNlbGYsIGF1dGhlbnRpY2F0b3JfaWQs
IHV2KToKKyAgICAgICAgIiIiU2V0cyB0aGUgdXNlciB2ZXJpZmllZCBmbGFnIG9uIGFuIGF1dGhl
bnRpY2F0b3IKKworICAgICAgICA6cGFyYW0gc3RyIGF1dGhlbnRpY2F0b3JfaWQ6IFRoZSBJRCBv
ZiB0aGUgYXV0aGVudGljYXRvcgorICAgICAgICA6cGFyYW0gYm9vbCB1djogdGhlIHVzZXIgdmVy
aWZpZWQgZmxhZyIiIgorICAgICAgICBwYXNzCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvZXhl
Y3V0b3JzL3B5dGVzdHJ1bm5lci93M2MtaW1wb3J0LmxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9leGVjdXRv
cnMvcHl0ZXN0cnVubmVyL3czYy1pbXBvcnQubG9nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCA4OTFkZjBhMjNjNTljNGUwMjMzNjFlNTA3ZDE0NjA0Y2NiNWMxYjE4Li4wMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9leGVjdXRv
cnMvcHl0ZXN0cnVubmVyL3czYy1pbXBvcnQubG9nCisrKyAvZGV2L251bGwKQEAgLTEsMTggKzAs
MCBAQAotVGhlIHRlc3RzIGluIHRoaXMgZGlyZWN0b3J5IHdlcmUgaW1wb3J0ZWQgZnJvbSB0aGUg
VzNDIHJlcG9zaXRvcnkuCi1EbyBOT1QgbW9kaWZ5IHRoZXNlIHRlc3RzIGRpcmVjdGx5IGluIFdl
YktpdC4KLUluc3RlYWQsIGNyZWF0ZSBhIHB1bGwgcmVxdWVzdCBvbiB0aGUgV1BUIGdpdGh1YjoK
LQlodHRwczovL2dpdGh1Yi5jb20vd2ViLXBsYXRmb3JtLXRlc3RzL3dwdAotCi1UaGVuIHJ1biB0
aGUgVG9vbHMvU2NyaXB0cy9pbXBvcnQtdzNjLXRlc3RzIGluIFdlYktpdCB0byByZWltcG9ydAot
Ci1EbyBOT1QgbW9kaWZ5IG9yIHJlbW92ZSB0aGlzIGZpbGUuCi0KLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQot
UHJvcGVydGllcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotUHJvcGVydHkgdmFs
dWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLUxp
c3Qgb2YgZmlsZXM6Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2V4ZWN1dG9ycy9weXRlc3RydW5uZXIvX19pbml0
X18ucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3dwdHJ1bm5lci93cHRydW5uZXIvZXhlY3V0b3JzL3B5dGVzdHJ1bm5lci9ydW5uZXIucHkKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvd3B0cnVubmVyL3dwdHJ1bm5lci9leGVjdXRvcnMvcmVmdGVzdC13YWl0X21hcmlvbmV0dGUu
anMgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dw
dHJ1bm5lci93cHRydW5uZXIvZXhlY3V0b3JzL3JlZnRlc3Qtd2FpdF9tYXJpb25ldHRlLmpzCmRl
bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2MWY4OTRmODc2MGJjNjIzYzg5NTNlMGViN2Yw
YzNlMDFkNWY3MmU0Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0t
LSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0
cnVubmVyL3dwdHJ1bm5lci9leGVjdXRvcnMvcmVmdGVzdC13YWl0X21hcmlvbmV0dGUuanMKKysr
IC9kZXYvbnVsbApAQCAtMSwxOSArMCwwIEBACi12YXIgY2FsbGJhY2sgPSBhcmd1bWVudHNbYXJn
dW1lbnRzLmxlbmd0aCAtIDFdOwotCi1mdW5jdGlvbiB0ZXN0KHgpIHsKLSAgaWYgKCFyb290LmNs
YXNzTGlzdC5jb250YWlucygicmVmdGVzdC13YWl0IikpIHsKLSAgICBvYnNlcnZlci5kaXNjb25u
ZWN0KCk7Ci0gICAgY2FsbGJhY2soKTsKLSAgfQotfQotCi12YXIgcm9vdCA9IGRvY3VtZW50LmRv
Y3VtZW50RWxlbWVudDsKLXZhciBvYnNlcnZlciA9IG5ldyBNdXRhdGlvbk9ic2VydmVyKHRlc3Qp
OwotCi1vYnNlcnZlci5vYnNlcnZlKHJvb3QsIHthdHRyaWJ1dGVzOiB0cnVlfSk7Ci0KLWlmIChk
b2N1bWVudC5yZWFkeVN0YXRlICE9ICJjb21wbGV0ZSIpIHsKLSAgb25sb2FkID0gdGVzdAotfSBl
bHNlIHsKLSAgdGVzdCgpOwotfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2V4ZWN1dG9ycy9y
ZWZ0ZXN0LXdhaXRfd2ViZHJpdmVyLmpzIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2V4ZWN1dG9ycy9yZWZ0ZXN0
LXdhaXRfd2ViZHJpdmVyLmpzCmluZGV4IGMxY2M2NDllMzIzZjk3NDIzOTZiNzNlMzAxZmYzMDYy
NzFiMTYwZDMuLmY4NmVkYWNkZWYyNTI1N2U0ZWRhOTMwNGIyMDkzODFhMDFkN2YzMTMgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
d3B0cnVubmVyL3dwdHJ1bm5lci9leGVjdXRvcnMvcmVmdGVzdC13YWl0X3dlYmRyaXZlci5qcwor
KysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dw
dHJ1bm5lci93cHRydW5uZXIvZXhlY3V0b3JzL3JlZnRlc3Qtd2FpdF93ZWJkcml2ZXIuanMKQEAg
LTEsMjEgKzEsMjAgQEAKIHZhciBjYWxsYmFjayA9IGFyZ3VtZW50c1thcmd1bWVudHMubGVuZ3Ro
IC0gMV07Cit2YXIgb2JzZXJ2ZXIgPSBudWxsOwordmFyIHJvb3QgPSBkb2N1bWVudC5kb2N1bWVu
dEVsZW1lbnQ7CiAKLWZ1bmN0aW9uIHJvb3Rfd2FpdCgpIHsKLSAgaWYgKCFyb290LmNsYXNzTGlz
dC5jb250YWlucygicmVmdGVzdC13YWl0IikpIHsKLSAgICBvYnNlcnZlci5kaXNjb25uZWN0KCk7
Ci0KLSAgICBpZiAoRG9jdW1lbnQucHJvdG90eXBlLmhhc093blByb3BlcnR5KCJmb250cyIpKSB7
Ci0gICAgICBkb2N1bWVudC5mb250cy5yZWFkeS50aGVuKHJlYWR5X2Zvcl9zY3JlZW5zaG90KTsK
LSAgICB9IGVsc2UgewotICAgICAgLy8gVGhpcyBtaWdodCB0YWtlIHRoZSBzY3JlZW5zaG90IHRv
byBlYXJseSwgZGVwZW5kaW5nIG9uIHdoZXRoZXIgdGhlCi0gICAgICAvLyBsb2FkIGV2ZW50IGlz
IGJsb2NrZWQgb24gZm9udHMgYmVpbmcgbG9hZGVkLiBTZWU6Ci0gICAgICAvLyBodHRwczovL2dp
dGh1Yi5jb20vdzNjL2Nzc3dnLWRyYWZ0cy9pc3N1ZXMvMTA4OAotICAgICAgcmVhZHlfZm9yX3Nj
cmVlbnNob3QoKTsKLSAgICB9CitmdW5jdGlvbiB3YWl0X2xvYWQoKSB7CisgIGlmIChEb2N1bWVu
dC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkoImZvbnRzIikpIHsKKyAgICBkb2N1bWVudC5mb250
cy5yZWFkeS50aGVuKHdhaXRfcGFpbnRzKTsKKyAgfSBlbHNlIHsKKyAgICAvLyBUaGlzIG1pZ2h0
IHRha2UgdGhlIHNjcmVlbnNob3QgdG9vIGVhcmx5LCBkZXBlbmRpbmcgb24gd2hldGhlciB0aGUK
KyAgICAvLyBsb2FkIGV2ZW50IGlzIGJsb2NrZWQgb24gZm9udHMgYmVpbmcgbG9hZGVkLiBTZWU6
CisgICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL3czYy9jc3N3Zy1kcmFmdHMvaXNzdWVzLzEwODgK
KyAgICB3YWl0X3BhaW50cygpOwogICB9CiB9CiAKLWZ1bmN0aW9uIHJlYWR5X2Zvcl9zY3JlZW5z
aG90KCkgeworCitmdW5jdGlvbiB3YWl0X3BhaW50cygpIHsKICAgLy8gQXMgb2YgMjAxNy0wNC0w
NSwgdGhlIENocm9taXVtIHdlYiBicm93c2VyIGV4aGliaXRzIGEgcmVuZGVyaW5nIGJ1ZwogICAv
LyAoaHR0cHM6Ly9idWdzLmNocm9taXVtLm9yZy9wL2Nocm9taXVtL2lzc3Vlcy9kZXRhaWw/aWQ9
NzA4NzU3KSB0aGF0CiAgIC8vIHByb2R1Y2VzIGluc3RhYmlsaXR5IGR1cmluZyBzY3JlZW4gY2Fw
dHVyZS4gVGhlIGZvbGxvd2luZyB1c2Ugb2YKQEAgLTI3LDE4ICsyNiwyOSBAQCBmdW5jdGlvbiBy
ZWFkeV9mb3Jfc2NyZWVuc2hvdCgpIHsKIAogICByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoZnVuY3Rp
b24oKSB7CiAgICAgcmVxdWVzdEFuaW1hdGlvbkZyYW1lKGZ1bmN0aW9uKCkgewotICAgICAgY2Fs
bGJhY2soKTsKKyAgICAgIHNjcmVlbnNob3RfaWZfcmVhZHkoKTsKICAgICB9KTsKICAgfSk7CiB9
CiAKLXZhciByb290ID0gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50OwotdmFyIG9ic2VydmVyID0g
bmV3IE11dGF0aW9uT2JzZXJ2ZXIocm9vdF93YWl0KTsKK2Z1bmN0aW9uIHNjcmVlbnNob3RfaWZf
cmVhZHkoKSB7CisgIGlmIChyb290LmNsYXNzTGlzdC5jb250YWlucygicmVmdGVzdC13YWl0Iikg
JiYKKyAgICAgIG9ic2VydmVyID09PSBudWxsKSB7CisgICAgb2JzZXJ2ZXIgPSBuZXcgTXV0YXRp
b25PYnNlcnZlcih3YWl0X3BhaW50cyk7CisgICAgb2JzZXJ2ZXIub2JzZXJ2ZShyb290LCB7YXR0
cmlidXRlczogdHJ1ZX0pOworICAgIHZhciBldmVudCA9IG5ldyBFdmVudCgiVGVzdFJlbmRlcmVk
Iiwge2J1YmJsZXM6IHRydWV9KTsKKyAgICByb290LmRpc3BhdGNoRXZlbnQoZXZlbnQpOworICAg
IHJldHVybjsKKyAgfQorICBpZiAob2JzZXJ2ZXIgIT09IG51bGwpIHsKKyAgICBvYnNlcnZlci5k
aXNjb25uZWN0KCk7CisgIH0KKyAgY2FsbGJhY2soKTsKK30KIAotb2JzZXJ2ZXIub2JzZXJ2ZShy
b290LCB7YXR0cmlidXRlczogdHJ1ZX0pOwogCiBpZiAoZG9jdW1lbnQucmVhZHlTdGF0ZSAhPSAi
Y29tcGxldGUiKSB7Ci0gICAgb25sb2FkID0gcm9vdF93YWl0OworICBhZGRFdmVudExpc3RlbmVy
KCdsb2FkJywgd2FpdF9sb2FkKTsKIH0gZWxzZSB7Ci0gICAgcm9vdF93YWl0KCk7CisgIHdhaXRf
bG9hZCgpOwogfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2V4ZWN1dG9ycy9yZWZ0ZXN0Lmpz
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRy
dW5uZXIvd3B0cnVubmVyL2V4ZWN1dG9ycy9yZWZ0ZXN0LmpzCmluZGV4IDViZDVjNjA5Y2JkNWU3
OTk3ODdjOTNiYWM2NzNmYjhlMzkyYTdjMzAuLjFiYTk4YzY4NmYwOWMzODRiNzE0YmRjMzZmMjE0
NTU4YTgyY2YzYWQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9leGVjdXRvcnMvcmVmdGVzdC5q
cworKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3dwdHJ1bm5lci93cHRydW5uZXIvZXhlY3V0b3JzL3JlZnRlc3QuanMKQEAgLTEgKzEgQEAKLXZh
ciB3aW4gPSB3aW5kb3cub3BlbigiYWJvdXQ6YmxhbmsiLCAidGVzdCIsICJ3aWR0aD02MDAsaGVp
Z2h0PTYwMCIpOwordmFyIHdpbiA9IHdpbmRvdy5vcGVuKCJhYm91dDpibGFuayIsICJ0ZXN0Iiwg
ImxlZnQ9MCx0b3A9MCx3aWR0aD04MDAsaGVpZ2h0PTYwMCIpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0
cnVubmVyL2V4ZWN1dG9ycy9ydW5uZXIuanMgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvZXhlY3V0b3JzL3J1bm5l
ci5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi4xNzFlNmZlYmQ5ZmE2MzQ4MDVmMzFjYTlkMmI5ZTc0MTNlNmQyNzRj
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2V4ZWN1dG9ycy9ydW5uZXIuanMKQEAg
LTAsMCArMSBAQAorZG9jdW1lbnQudGl0bGUgPSAnJSh0aXRsZSlzJzsKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVy
L3dwdHJ1bm5lci9leGVjdXRvcnMvdGVzdGhhcm5lc3Nfd2ViZHJpdmVyLmpzIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVu
bmVyL2V4ZWN1dG9ycy90ZXN0aGFybmVzc193ZWJkcml2ZXIuanMKZGVsZXRlZCBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDdmMDAwNTBmYTdlZDZkYWY4OWNlNmFmN2EwZTYxMGQwZTVkZGM0MmIuLjAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVy
L2V4ZWN1dG9ycy90ZXN0aGFybmVzc193ZWJkcml2ZXIuanMKKysrIC9kZXYvbnVsbApAQCAtMSwy
NSArMCwwIEBACi13aW5kb3cudGltZW91dF9tdWx0aXBsaWVyID0gJSh0aW1lb3V0X211bHRpcGxp
ZXIpZDsKLQotd2luZG93Lm1lc3NhZ2VfcXVldWUgPSBbXTsKLQotd2luZG93LnNldE1lc3NhZ2VM
aXN0ZW5lciA9IGZ1bmN0aW9uKGZ1bmMpIHsKLSAgd2luZG93LmN1cnJlbnRfbGlzdGVuZXIgPSBm
dW5jOwotICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigKLSAgICAibWVzc2FnZSIsCi0gICAgZnVu
YywKLSAgICBmYWxzZQotICApOwotfTsKLQotd2luZG93LnNldE1lc3NhZ2VMaXN0ZW5lcihmdW5j
dGlvbihldmVudCkgewotICB3aW5kb3cubWVzc2FnZV9xdWV1ZS5wdXNoKGV2ZW50KTsKLX0pOwot
Ci13aW5kb3cud2luID0gd2luZG93Lm9wZW4oIiUoYWJzX3VybClzIiwgIiUod2luZG93X2lkKXMi
KTsKLQotaWYgKCUodGltZW91dClzICE9IG51bGwpIHsKLSAgd2luZG93LnRpbWVyID0gc2V0VGlt
ZW91dChmdW5jdGlvbigpIHsKLSAgICB3aW5kb3cud2luLnRpbWVvdXQoKTsKLSAgICB3aW5kb3cu
d2luLmNsb3NlKCk7Ci0gIH0sICUodGltZW91dClzKTsKLX0KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1
bm5lci9leGVjdXRvcnMvdGVzdGhhcm5lc3Nfd2ViZHJpdmVyX3Jlc3VtZS5qcyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1
bm5lci9leGVjdXRvcnMvdGVzdGhhcm5lc3Nfd2ViZHJpdmVyX3Jlc3VtZS5qcwppbmRleCA3YTJk
Zjk4ZWQ0ZTczYmY0NjE4YjE2OWFhMjk3ZjBjMDc1ZmY4YTE5Li4zNmQwODZjOTc0N2E1NmNhNzEy
MmM4OTljZmNiNDZkMDBkZDYwYjE1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvZXhlY3V0b3Jz
L3Rlc3RoYXJuZXNzX3dlYmRyaXZlcl9yZXN1bWUuanMKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2V4ZWN1
dG9ycy90ZXN0aGFybmVzc193ZWJkcml2ZXJfcmVzdW1lLmpzCkBAIC0xLDQ2ICsxLDUgQEAKLXZh
ciBjYWxsYmFjayA9IGFyZ3VtZW50c1thcmd1bWVudHMubGVuZ3RoIC0gMV07Ci0KLWZ1bmN0aW9u
IHByb2Nlc3NfZXZlbnQoZXZlbnQpIHsKLSAgdmFyIGRhdGEgPSBldmVudC5kYXRhOwotCi0gIHZh
ciBwYXlsb2FkID0gdW5kZWZpbmVkOwotCi0gIHN3aXRjaChkYXRhLnR5cGUpIHsKLSAgY2FzZSAi
Y29tcGxldGUiOgotICAgIHZhciB0ZXN0cyA9IGV2ZW50LmRhdGEudGVzdHM7Ci0gICAgdmFyIHN0
YXR1cyA9IGV2ZW50LmRhdGEuc3RhdHVzOwotCi0gICAgdmFyIHN1YnRlc3RfcmVzdWx0cyA9IHRl
c3RzLm1hcChmdW5jdGlvbih4KSB7Ci0gICAgICByZXR1cm4gW3gubmFtZSwgeC5zdGF0dXMsIHgu
bWVzc2FnZSwgeC5zdGFja107Ci0gICAgfSk7Ci0gICAgcGF5bG9hZCA9IFtzdGF0dXMuc3RhdHVz
LAotICAgICAgICAgICAgICAgc3RhdHVzLm1lc3NhZ2UsCi0gICAgICAgICAgICAgICBzdGF0dXMu
c3RhY2ssCi0gICAgICAgICAgICAgICBzdWJ0ZXN0X3Jlc3VsdHNdOwotICAgIGNsZWFyVGltZW91
dCh3aW5kb3cudGltZXIpOwotICAgIGJyZWFrOwotCi0gIGNhc2UgImFjdGlvbiI6Ci0gICAgd2lu
ZG93LnNldE1lc3NhZ2VMaXN0ZW5lcihmdW5jdGlvbihldmVudCkgewotICAgICAgd2luZG93Lm1l
c3NhZ2VfcXVldWUucHVzaChldmVudCk7Ci0gICAgfSk7Ci0gICAgcGF5bG9hZCA9IGRhdGE7Ci0g
ICAgYnJlYWs7Ci0gIGRlZmF1bHQ6Ci0gICAgcmV0dXJuOwotICB9Ci0KLSAgY2FsbGJhY2soWyIl
KHVybClzIiwgZGF0YS50eXBlLCBwYXlsb2FkXSk7Ci19Ci0KLXdpbmRvdy5yZW1vdmVFdmVudExp
c3RlbmVyKCJtZXNzYWdlIiwgd2luZG93LmN1cnJlbnRfbGlzdGVuZXIpOwotaWYgKHdpbmRvdy5t
ZXNzYWdlX3F1ZXVlLmxlbmd0aCkgewotICB2YXIgbmV4dCA9IHdpbmRvdy5tZXNzYWdlX3F1ZXVl
LnNoaWZ0KCk7Ci0gIHByb2Nlc3NfZXZlbnQobmV4dCk7Ci19IGVsc2UgewotICB3aW5kb3cuYWRk
RXZlbnRMaXN0ZW5lcigKLSAgICAibWVzc2FnZSIsIGZ1bmN0aW9uIGYoZXZlbnQpIHsKLSAgICAg
IHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCJtZXNzYWdlIiwgZik7Ci0gICAgICBwcm9jZXNz
X2V2ZW50KGV2ZW50KTsKLSAgICB9LCBmYWxzZSk7Ci19CisvLyBXZSBoYXZlIHRvIHNldCB0aGUg
dXJsIGhlcmUgdG8gZW5zdXJlIHdlIGdldCB0aGUgc2FtZSBlc2NhcGluZyBhcyBpbiB0aGUgaGFy
bmVzcworLy8gYW5kIGFsc28gdG8gaGFuZGxlIHRoZSBjYXNlIHdoZXJlIHRoZSB0ZXN0IGNoYW5n
ZXMgdGhlIGZyYWdtZW50Cit3aW5kb3cuX193cHRydW5uZXJfdXJsID0gIiUodXJsKXMiOword2lu
ZG93Ll9fd3B0cnVubmVyX3Rlc3Rkcml2ZXJfY2FsbGJhY2sgPSBhcmd1bWVudHNbYXJndW1lbnRz
Lmxlbmd0aCAtIDFdOword2luZG93Ll9fd3B0cnVubmVyX3Byb2Nlc3NfbmV4dF9ldmVudCgpOwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy93cHRydW5uZXIvd3B0cnVubmVyL2V4ZWN1dG9ycy93M2MtaW1wb3J0LmxvZyBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dw
dHJ1bm5lci9leGVjdXRvcnMvdzNjLWltcG9ydC5sb2cKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IGViN2Y0Mzk2ZDdlYTcxZjMwYjVmODg5YTY5ODRmMDYzOGY0NmMyZjMuLjAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2V4ZWN1
dG9ycy93M2MtaW1wb3J0LmxvZworKysgL2Rldi9udWxsCkBAIC0xLDM2ICswLDAgQEAKLVRoZSB0
ZXN0cyBpbiB0aGlzIGRpcmVjdG9yeSB3ZXJlIGltcG9ydGVkIGZyb20gdGhlIFczQyByZXBvc2l0
b3J5LgotRG8gTk9UIG1vZGlmeSB0aGVzZSB0ZXN0cyBkaXJlY3RseSBpbiBXZWJLaXQuCi1JbnN0
ZWFkLCBjcmVhdGUgYSBwdWxsIHJlcXVlc3Qgb24gdGhlIFdQVCBnaXRodWI6Ci0JaHR0cHM6Ly9n
aXRodWIuY29tL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQKLQotVGhlbiBydW4gdGhlIFRvb2xzL1Nj
cmlwdHMvaW1wb3J0LXczYy10ZXN0cyBpbiBXZWJLaXQgdG8gcmVpbXBvcnQKLQotRG8gTk9UIG1v
ZGlmeSBvciByZW1vdmUgdGhpcyBmaWxlLgotCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLVByb3BlcnRpZXMg
cmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLVByb3BlcnR5IHZhbHVlcyByZXF1aXJp
bmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1MaXN0IG9mIGZpbGVz
OgotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0
cnVubmVyL3dwdHJ1bm5lci9leGVjdXRvcnMvX19pbml0X18ucHkKLS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvZXhl
Y3V0b3JzL2Jhc2UucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvZXhlY3V0b3JzL2V4ZWN1dG9yY2hyb21lLnB5
Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRy
dW5uZXIvd3B0cnVubmVyL2V4ZWN1dG9ycy9leGVjdXRvcmVkZ2UucHkKLS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIv
ZXhlY3V0b3JzL2V4ZWN1dG9yaW50ZXJuZXRleHBsb3Jlci5weQotL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9leGVj
dXRvcnMvZXhlY3V0b3JtYXJpb25ldHRlLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2V4ZWN1dG9ycy9leGVj
dXRvcm9wZXJhLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2V4ZWN1dG9ycy9leGVjdXRvcnNhZmFyaS5weQot
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVu
bmVyL3dwdHJ1bm5lci9leGVjdXRvcnMvZXhlY3V0b3JzZWxlbml1bS5weQotL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5l
ci9leGVjdXRvcnMvZXhlY3V0b3JzZXJ2by5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9leGVjdXRvcnMvZXhl
Y3V0b3JzZXJ2b2RyaXZlci5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9leGVjdXRvcnMvZXhlY3V0b3J3ZWJr
aXQucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3dwdHJ1bm5lci93cHRydW5uZXIvZXhlY3V0b3JzL3Byb2Nlc3MucHkKLS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIv
ZXhlY3V0b3JzL3Byb3RvY29sLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2V4ZWN1dG9ycy9yZWZ0ZXN0LXdh
aXRfbWFyaW9uZXR0ZS5qcwotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9leGVjdXRvcnMvcmVmdGVzdC13YWl0X3dl
YmRyaXZlci5qcwotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9leGVjdXRvcnMvcmVmdGVzdC5qcwotL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1
bm5lci9leGVjdXRvcnMvdGVzdGhhcm5lc3Nfc2Vydm9kcml2ZXIuanMKLS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIv
ZXhlY3V0b3JzL3Rlc3RoYXJuZXNzX3dlYmRyaXZlci5qcwotL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9leGVjdXRv
cnMvdGVzdGhhcm5lc3Nfd2ViZHJpdmVyX3Jlc3VtZS5qcwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVu
bmVyL2V4cGVjdGVkdHJlZS5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9leHBlY3RlZHRyZWUucHkKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uNGQ1MDUwODZiZDhkOTkxYzk1M2MzNGQzOGQ4ZTFmYTBjYjkyMGY5OQotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvd3B0cnVubmVyL3dwdHJ1bm5lci9leHBlY3RlZHRyZWUucHkKQEAgLTAsMCArMSwxMzEgQEAK
K2Zyb20gbWF0aCBpbXBvcnQgbG9nCitmcm9tIGNvbGxlY3Rpb25zIGltcG9ydCBkZWZhdWx0ZGlj
dAorCitjbGFzcyBOb2RlKG9iamVjdCk6CisgICAgZGVmIF9faW5pdF9fKHNlbGYsIHByb3AsIHZh
bHVlKToKKyAgICAgICAgc2VsZi5wcm9wID0gcHJvcAorICAgICAgICBzZWxmLnZhbHVlID0gdmFs
dWUKKyAgICAgICAgc2VsZi5wYXJlbnQgPSBOb25lCisKKyAgICAgICAgc2VsZi5jaGlsZHJlbiA9
IHNldCgpCisKKyAgICAgICAgIyBQb3B1bGF0ZWQgZm9yIGxlYWYgbm9kZXMKKyAgICAgICAgc2Vs
Zi5ydW5faW5mbyA9IHNldCgpCisgICAgICAgIHNlbGYucmVzdWx0X3ZhbHVlcyA9IGRlZmF1bHRk
aWN0KGludCkKKworICAgIGRlZiBhZGQoc2VsZiwgbm9kZSk6CisgICAgICAgIHNlbGYuY2hpbGRy
ZW4uYWRkKG5vZGUpCisgICAgICAgIG5vZGUucGFyZW50ID0gc2VsZgorCisgICAgZGVmIF9faXRl
cl9fKHNlbGYpOgorICAgICAgICB5aWVsZCBzZWxmCisgICAgICAgIGZvciBub2RlIGluIHNlbGYu
Y2hpbGRyZW46CisgICAgICAgICAgICBmb3IgaXRlbSBpbiBub2RlOgorICAgICAgICAgICAgICAg
IHlpZWxkIGl0ZW0KKworICAgIGRlZiBfX2xlbl9fKHNlbGYpOgorICAgICAgICByZXR1cm4gMSAr
IHN1bShsZW4oaXRlbSkgZm9yIGl0ZW0gaW4gc2VsZi5jaGlsZHJlbikKKworCitkZWYgZW50cm9w
eShyZXN1bHRzKToKKyAgICAiIiJUaGlzIGlzIGJhc2ljYWxseSBhIG1lYXN1cmUgb2YgdGhlIHVu
aWZvcm1pdHkgb2YgdGhlIHZhbHVlcyBpbiByZXN1bHRzCisgICAgYmFzZWQgb24gdGhlIHNoYW5u
b24gZW50cm9weSIiIgorCisgICAgcmVzdWx0X2NvdW50cyA9IGRlZmF1bHRkaWN0KGludCkKKyAg
ICB0b3RhbCA9IGZsb2F0KGxlbihyZXN1bHRzKSkKKyAgICBmb3IgdmFsdWVzIGluIHJlc3VsdHMu
aXRlcnZhbHVlcygpOgorICAgICAgICAjIE5vdCBzdXJlIHRoaXMgaXMgcmlnaHQsIHBvc3NpYmx5
IHdhbnQgdG8gdHJlYXQgbXVsdGlwbGUgdmFsdWVzIGFzCisgICAgICAgICMgZGlzdGluY3QgZnJv
bSBtdWx0aXBsZSBvZiB0aGUgc2FtZSB2YWx1ZT8KKyAgICAgICAgZm9yIHZhbHVlIGluIHZhbHVl
czoKKyAgICAgICAgICAgIHJlc3VsdF9jb3VudHNbdmFsdWVdICs9IDEKKworICAgIGVudHJvcHlf
c3VtID0gMAorCisgICAgZm9yIGNvdW50IGluIHJlc3VsdF9jb3VudHMuaXRlcnZhbHVlcygpOgor
ICAgICAgICBwcm9wID0gZmxvYXQoY291bnQpIC8gdG90YWwKKyAgICAgICAgZW50cm9weV9zdW0g
LT0gcHJvcCAqIGxvZyhwcm9wLCAyKQorCisgICAgcmV0dXJuIGVudHJvcHlfc3VtCisKKworZGVm
IHNwbGl0X3Jlc3VsdHMocHJvcCwgcmVzdWx0cyk6CisgICAgIiIiU3BsaXQgYSBkaWN0aW9uYXJ5
IG9mIHJlc3VsdHMgaW50byBhIGRpY3Rpb25hcnkgb2YgZGljdGlvbmFyaWVzIHdoZXJlCisgICAg
ZWFjaCBzdWItZGljdGlvbmFyeSBoYXMgYSBzcGVjaWZpYyB2YWx1ZSBvZiB0aGUgZ2l2ZW4gcHJv
cGVydHkiIiIKKyAgICBieV9wcm9wID0gZGVmYXVsdGRpY3QoZGljdCkKKyAgICBmb3IgcnVuX2lu
Zm8sIHZhbHVlIGluIHJlc3VsdHMuaXRlcml0ZW1zKCk6CisgICAgICAgIGJ5X3Byb3BbcnVuX2lu
Zm9bcHJvcF1dW3J1bl9pbmZvXSA9IHZhbHVlCisKKyAgICByZXR1cm4gYnlfcHJvcAorCisKK2Rl
ZiBidWlsZF90cmVlKHByb3BlcnRpZXMsIGRlcGVuZGVudF9wcm9wcywgcmVzdWx0cywgdHJlZT1O
b25lKToKKyAgICAiIiJCdWlsZCBhIGRlY2lzaW9uIHRyZWUgbWFwcGluZyBwcm9wZXJ0aWVzIHRv
IHJlc3VsdHMKKworICAgIDpwYXJhbSBwcm9wZXJ0aWVzOiAtIEEgbGlzdCBvZiBydW5faW5mbyBw
cm9wZXJ0aWVzIHRvIGNvbnNpZGVyCisgICAgICAgICAgICAgICAgICAgICAgICAgaW4gdGhlIHRy
ZWUKKyAgICA6cGFyYW0gZGVwZW5kZW50X3Byb3BzOiAtIEEgZGljdGlvbmFyeSBtYXBwaW5nIHBy
b3BlcnR5IG5hbWUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvIHByb3BlcnRpZXMg
dGhhdCBzaG91bGQgb25seSBiZSBjb25zaWRlcmVkCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBhZnRlciB0aGUgcHJvcGVydGllcyBpbiB0aGUga2V5LiBGb3IgZXhhbXBsZQorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgeyJvcyI6IFsidmVyc2lvbiJdfSBtZWFucyB0aGF0ICJ2
ZXJzaW9uIiB3b24ndAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmUgdXNlZCB1bnRp
bCBhZnRlciBvcy4KKyAgICA6cGFyYW0gcmVzdWx0czogRGljdGlvbmFyeSBtYXBwaW5nIHJ1bl9p
bmZvIHRvIHNldCBvZiByZXN1bHRzCisgICAgOnRyZWU6IEEgTm9kZSBvYmplY3QgdG8gdXNlIGFz
IHRoZSByb290IG9mIHRoZSAoc3ViKXRyZWUiIiIKKworICAgIGlmIHRyZWUgaXMgTm9uZToKKyAg
ICAgICAgdHJlZSA9IE5vZGUoTm9uZSwgTm9uZSkKKworICAgIHByb3BfaW5kZXggPSB7cHJvcDog
aSBmb3IgaSwgcHJvcCBpbiBlbnVtZXJhdGUocHJvcGVydGllcyl9CisKKyAgICBhbGxfcmVzdWx0
cyA9IGRlZmF1bHRkaWN0KGludCkKKyAgICBmb3IgcmVzdWx0X3ZhbHVlcyBpbiByZXN1bHRzLml0
ZXJ2YWx1ZXMoKToKKyAgICAgICAgZm9yIHJlc3VsdF92YWx1ZSwgY291bnQgaW4gcmVzdWx0X3Zh
bHVlcy5pdGVyaXRlbXMoKToKKyAgICAgICAgICAgIGFsbF9yZXN1bHRzW3Jlc3VsdF92YWx1ZV0g
Kz0gY291bnQKKworICAgICMgSWYgdGhlcmUgaXMgb25seSBvbmUgcmVzdWx0IHdlIGFyZSBkb25l
CisgICAgaWYgbm90IHByb3BlcnRpZXMgb3IgbGVuKGFsbF9yZXN1bHRzKSA9PSAxOgorICAgICAg
ICBmb3IgdmFsdWUsIGNvdW50IGluIGFsbF9yZXN1bHRzLml0ZXJpdGVtcygpOgorICAgICAgICAg
ICAgdHJlZS5yZXN1bHRfdmFsdWVzW3ZhbHVlXSArPSBjb3VudAorICAgICAgICB0cmVlLnJ1bl9p
bmZvIHw9IHNldChyZXN1bHRzLmtleXMoKSkKKyAgICAgICAgcmV0dXJuIHRyZWUKKworICAgIHJl
c3VsdHNfcGFydGl0aW9ucyA9IFtdCisgICAgcmVtb3ZlX3Byb3BlcnRpZXMgPSBzZXQoKQorICAg
IGZvciBwcm9wIGluIHByb3BlcnRpZXM6CisgICAgICAgIHJlc3VsdF9zZXRzID0gc3BsaXRfcmVz
dWx0cyhwcm9wLCByZXN1bHRzKQorICAgICAgICBpZiBsZW4ocmVzdWx0X3NldHMpID09IDE6Cisg
ICAgICAgICAgICAjIElmIHRoaXMgcHJvcGVydHkgZG9lc24ndCBwYXJ0aXRpb24gdGhlIHNwYWNl
IHRoZW4ganVzdCByZW1vdmUgaXQKKyAgICAgICAgICAgICMgZnJvbSB0aGUgc2V0IHRvIGNvbnNp
ZGVyCisgICAgICAgICAgICByZW1vdmVfcHJvcGVydGllcy5hZGQocHJvcCkKKyAgICAgICAgICAg
IGNvbnRpbnVlCisgICAgICAgIG5ld19lbnRyb3B5ID0gMC4KKyAgICAgICAgcmVzdWx0c19zZXRz
X2VudHJvcHkgPSBbXQorICAgICAgICBmb3IgcHJvcF92YWx1ZSwgcmVzdWx0X3NldCBpbiByZXN1
bHRfc2V0cy5pdGVyaXRlbXMoKToKKyAgICAgICAgICAgIHJlc3VsdHNfc2V0c19lbnRyb3B5LmFw
cGVuZCgoZW50cm9weShyZXN1bHRfc2V0KSwgcHJvcF92YWx1ZSwgcmVzdWx0X3NldCkpCisgICAg
ICAgICAgICBuZXdfZW50cm9weSArPSAoZmxvYXQobGVuKHJlc3VsdF9zZXQpKSAvIGxlbihyZXN1
bHRzKSkgKiByZXN1bHRzX3NldHNfZW50cm9weVstMV1bMF0KKworICAgICAgICByZXN1bHRzX3Bh
cnRpdGlvbnMuYXBwZW5kKChuZXdfZW50cm9weSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgcHJvcCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0
c19zZXRzX2VudHJvcHkpKQorCisgICAgIyBJbiB0aGUgY2FzZSB0aGF0IG5vIHByb3BlcnRpZXMg
cGFydGl0aW9uIHRoZSBzcGFjZQorICAgIGlmIG5vdCByZXN1bHRzX3BhcnRpdGlvbnM6CisgICAg
ICAgIGZvciB2YWx1ZSwgY291bnQgaW4gYWxsX3Jlc3VsdHMuaXRlcml0ZW1zKCk6CisgICAgICAg
ICAgICB0cmVlLnJlc3VsdF92YWx1ZXNbdmFsdWVdICs9IGNvdW50CisgICAgICAgIHRyZWUucnVu
X2luZm8gfD0gc2V0KHJlc3VsdHMua2V5cygpKQorICAgICAgICByZXR1cm4gdHJlZQorCisgICAg
IyBzcGxpdCBieSB0aGUgcHJvcGVydHkgd2l0aCB0aGUgaGlnaGVzdCBlbnRyb3B5CisgICAgcmVz
dWx0c19wYXJ0aXRpb25zLnNvcnQoa2V5PWxhbWJkYSB4OiAoeFswXSwgcHJvcF9pbmRleFt4WzFd
XSkpCisgICAgXywgYmVzdF9wcm9wLCBzdWJfcmVzdWx0cyA9IHJlc3VsdHNfcGFydGl0aW9uc1sw
XQorCisgICAgIyBDcmVhdGUgYSBuZXcgc2V0IG9mIHByb3BlcnRpZXMgdGhhdCBjYW4gYmUgdXNl
ZAorICAgIG5ld19wcm9wcyA9IHByb3BlcnRpZXNbOnByb3BfaW5kZXhbYmVzdF9wcm9wXV0gKyBw
cm9wZXJ0aWVzW3Byb3BfaW5kZXhbYmVzdF9wcm9wXSArIDE6XQorICAgIG5ld19wcm9wcy5leHRl
bmQoZGVwZW5kZW50X3Byb3BzLmdldChiZXN0X3Byb3AsIFtdKSkKKyAgICBpZiByZW1vdmVfcHJv
cGVydGllczoKKyAgICAgICAgbmV3X3Byb3BzID0gW2l0ZW0gZm9yIGl0ZW0gaW4gbmV3X3Byb3Bz
IGlmIGl0ZW0gbm90IGluIHJlbW92ZV9wcm9wZXJ0aWVzXQorCisgICAgZm9yIF8sIHByb3BfdmFs
dWUsIHJlc3VsdHNfc2V0cyBpbiBzdWJfcmVzdWx0czoKKyAgICAgICAgbm9kZSA9IE5vZGUoYmVz
dF9wcm9wLCBwcm9wX3ZhbHVlKQorICAgICAgICB0cmVlLmFkZChub2RlKQorICAgICAgICBidWls
ZF90cmVlKG5ld19wcm9wcywgZGVwZW5kZW50X3Byb3BzLCByZXN1bHRzX3NldHMsIG5vZGUpCisg
ICAgcmV0dXJuIHRyZWUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9mb250LnB5IGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0
cnVubmVyL2ZvbnQucHkKaW5kZXggYTM3MGY1ZjVhM2I2MWNiYjQwYzQ3YWJjNzg2YWJlMzg2Nzlj
ZDk5NC4uNjY0N2E4NTgwYmU3YWI0MDUwYmJkMzc1OTNiMmU2NTk1YmMzYWM3MiAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRy
dW5uZXIvd3B0cnVubmVyL2ZvbnQucHkKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2ZvbnQucHkKQEAgLTky
LDggKzkyLDE0IEBAIGNsYXNzIEZvbnRJbnN0YWxsZXIob2JqZWN0KToKIAogICAgICAgICBnZGkz
MiA9IGN0eXBlcy5XaW5ETEwoJ2dkaTMyJykKICAgICAgICAgaWYgZ2RpMzIuQWRkRm9udFJlc291
cmNlVyhmb250X3BhdGgpOgotICAgICAgICAgICAgcmV0dXJuIGJvb2woY3R5cGVzLndpbmRsbC51
c2VyMzIuU2VuZE1lc3NhZ2VXKGh3bmRfYnJvYWRjYXN0LAotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdtX2ZvbnRjaGFuZ2UpKQorICAg
ICAgICAgICAgZnJvbSBjdHlwZXMgaW1wb3J0IHdpbnR5cGVzCisgICAgICAgICAgICB3cGFyYW0g
PSAwCisgICAgICAgICAgICBscGFyYW0gPSAwCisgICAgICAgICAgICBTZW5kTm90aWZ5TWVzc2Fn
ZVcgPSBjdHlwZXMud2luZGxsLnVzZXIzMi5TZW5kTm90aWZ5TWVzc2FnZVcKKyAgICAgICAgICAg
IFNlbmROb3RpZnlNZXNzYWdlVy5hcmd0eXBlcyA9IFt3aW50eXBlcy5IQU5ETEUsIHdpbnR5cGVz
LlVJTlQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2ludHlw
ZXMuV1BBUkFNLCB3aW50eXBlcy5MUEFSQU1dCisgICAgICAgICAgICByZXR1cm4gYm9vbChTZW5k
Tm90aWZ5TWVzc2FnZVcoaHduZF9icm9hZGNhc3QsIHdtX2ZvbnRjaGFuZ2UsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd3BhcmFtLCBscGFyYW0pKQogCiAgICAg
ZGVmIHJlbW92ZV9saW51eF9mb250KHNlbGYsIGZvbnRfbmFtZSwgXyk6CiAgICAgICAgIGlmIHNl
bGYuY3JlYXRlZF9kaXI6CkBAIC0xMjAsNSArMTI2LDExIEBAIGNsYXNzIEZvbnRJbnN0YWxsZXIo
b2JqZWN0KToKIAogICAgICAgICBnZGkzMiA9IGN0eXBlcy5XaW5ETEwoJ2dkaTMyJykKICAgICAg
ICAgaWYgZ2RpMzIuUmVtb3ZlRm9udFJlc291cmNlVyhmb250X3BhdGgpOgotICAgICAgICAgICAg
cmV0dXJuIGJvb2woY3R5cGVzLndpbmRsbC51c2VyMzIuU2VuZE1lc3NhZ2VXKGh3bmRfYnJvYWRj
YXN0LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHdtX2ZvbnRjaGFuZ2UpKQorICAgICAgICAgICAgZnJvbSBjdHlwZXMgaW1wb3J0IHdp
bnR5cGVzCisgICAgICAgICAgICB3cGFyYW0gPSAwCisgICAgICAgICAgICBscGFyYW0gPSAwCisg
ICAgICAgICAgICBTZW5kTm90aWZ5TWVzc2FnZVcgPSBjdHlwZXMud2luZGxsLnVzZXIzMi5TZW5k
Tm90aWZ5TWVzc2FnZVcKKyAgICAgICAgICAgIFNlbmROb3RpZnlNZXNzYWdlVy5hcmd0eXBlcyA9
IFt3aW50eXBlcy5IQU5ETEUsIHdpbnR5cGVzLlVJTlQsCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgd2ludHlwZXMuV1BBUkFNLCB3aW50eXBlcy5MUEFSQU1dCisg
ICAgICAgICAgICByZXR1cm4gYm9vbChTZW5kTm90aWZ5TWVzc2FnZVcoaHduZF9icm9hZGNhc3Qs
IHdtX2ZvbnRjaGFuZ2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgd3BhcmFtLCBscGFyYW0pKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2Zvcm1hdHRlcnMu
cHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dw
dHJ1bm5lci93cHRydW5uZXIvZm9ybWF0dGVycy5weQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMWVhMDlkYmU1NTM3MTNjNzk5YjQwYzFlNDBkOThmOGVlMmQ0ZDgxYS4uMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvZm9ybWF0
dGVycy5weQorKysgL2Rldi9udWxsCkBAIC0xLDc4ICswLDAgQEAKLWltcG9ydCBqc29uCi0KLWZy
b20gbW96bG9nLnN0cnVjdHVyZWQuZm9ybWF0dGVycy5iYXNlIGltcG9ydCBCYXNlRm9ybWF0dGVy
Ci0KLQotY2xhc3MgV3B0cmVwb3J0Rm9ybWF0dGVyKEJhc2VGb3JtYXR0ZXIpOgotICAgICIiIkZv
cm1hdHRlciB0aGF0IHByb2R1Y2VzIHJlc3VsdHMgaW4gdGhlIGZvcm1hdCB0aGF0IHdwcmVwb3J0
IGV4cGVjdHMuIiIiCi0KLSAgICBkZWYgX19pbml0X18oc2VsZik6Ci0gICAgICAgIHNlbGYucmF3
X3Jlc3VsdHMgPSB7fQotICAgICAgICBzZWxmLnJlc3VsdHMgPSB7fQotCi0gICAgZGVmIHN1aXRl
X3N0YXJ0KHNlbGYsIGRhdGEpOgotICAgICAgICBpZiAncnVuX2luZm8nIGluIGRhdGE6Ci0gICAg
ICAgICAgICBzZWxmLnJlc3VsdHNbJ3J1bl9pbmZvJ10gPSBkYXRhWydydW5faW5mbyddCi0gICAg
ICAgIHNlbGYucmVzdWx0c1sndGltZV9zdGFydCddID0gZGF0YVsndGltZSddCi0KLSAgICBkZWYg
c3VpdGVfZW5kKHNlbGYsIGRhdGEpOgotICAgICAgICBzZWxmLnJlc3VsdHNbJ3RpbWVfZW5kJ10g
PSBkYXRhWyd0aW1lJ10KLSAgICAgICAgc2VsZi5yZXN1bHRzWyJyZXN1bHRzIl0gPSBbXQotICAg
ICAgICBmb3IgdGVzdF9uYW1lIGluIHNlbGYucmF3X3Jlc3VsdHM6Ci0gICAgICAgICAgICByZXN1
bHQgPSB7InRlc3QiOiB0ZXN0X25hbWV9Ci0gICAgICAgICAgICByZXN1bHQudXBkYXRlKHNlbGYu
cmF3X3Jlc3VsdHNbdGVzdF9uYW1lXSkKLSAgICAgICAgICAgIHNlbGYucmVzdWx0c1sicmVzdWx0
cyJdLmFwcGVuZChyZXN1bHQpCi0gICAgICAgIHJldHVybiBqc29uLmR1bXBzKHNlbGYucmVzdWx0
cykKLQotICAgIGRlZiBmaW5kX29yX2NyZWF0ZV90ZXN0KHNlbGYsIGRhdGEpOgotICAgICAgICB0
ZXN0X25hbWUgPSBkYXRhWyJ0ZXN0Il0KLSAgICAgICAgaWYgdGVzdF9uYW1lIG5vdCBpbiBzZWxm
LnJhd19yZXN1bHRzOgotICAgICAgICAgICAgc2VsZi5yYXdfcmVzdWx0c1t0ZXN0X25hbWVdID0g
ewotICAgICAgICAgICAgICAgICJzdWJ0ZXN0cyI6IFtdLAotICAgICAgICAgICAgICAgICJzdGF0
dXMiOiAiIiwKLSAgICAgICAgICAgICAgICAibWVzc2FnZSI6IE5vbmUKLSAgICAgICAgICAgIH0K
LSAgICAgICAgcmV0dXJuIHNlbGYucmF3X3Jlc3VsdHNbdGVzdF9uYW1lXQotCi0gICAgZGVmIHRl
c3Rfc3RhcnQoc2VsZiwgZGF0YSk6Ci0gICAgICAgIHRlc3QgPSBzZWxmLmZpbmRfb3JfY3JlYXRl
X3Rlc3QoZGF0YSkKLSAgICAgICAgdGVzdFsic3RhcnRfdGltZSJdID0gZGF0YVsidGltZSJdCi0K
LSAgICBkZWYgY3JlYXRlX3N1YnRlc3Qoc2VsZiwgZGF0YSk6Ci0gICAgICAgIHRlc3QgPSBzZWxm
LmZpbmRfb3JfY3JlYXRlX3Rlc3QoZGF0YSkKLSAgICAgICAgc3VidGVzdF9uYW1lID0gZGF0YVsi
c3VidGVzdCJdCi0KLSAgICAgICAgc3VidGVzdCA9IHsKLSAgICAgICAgICAgICJuYW1lIjogc3Vi
dGVzdF9uYW1lLAotICAgICAgICAgICAgInN0YXR1cyI6ICIiLAotICAgICAgICAgICAgIm1lc3Nh
Z2UiOiBOb25lCi0gICAgICAgIH0KLSAgICAgICAgdGVzdFsic3VidGVzdHMiXS5hcHBlbmQoc3Vi
dGVzdCkKLQotICAgICAgICByZXR1cm4gc3VidGVzdAotCi0gICAgZGVmIHRlc3Rfc3RhdHVzKHNl
bGYsIGRhdGEpOgotICAgICAgICBzdWJ0ZXN0ID0gc2VsZi5jcmVhdGVfc3VidGVzdChkYXRhKQot
ICAgICAgICBzdWJ0ZXN0WyJzdGF0dXMiXSA9IGRhdGFbInN0YXR1cyJdCi0gICAgICAgIGlmICJl
eHBlY3RlZCIgaW4gZGF0YToKLSAgICAgICAgICAgIHN1YnRlc3RbImV4cGVjdGVkIl0gPSBkYXRh
WyJleHBlY3RlZCJdCi0gICAgICAgIGlmICJtZXNzYWdlIiBpbiBkYXRhOgotICAgICAgICAgICAg
c3VidGVzdFsibWVzc2FnZSJdID0gZGF0YVsibWVzc2FnZSJdCi0KLSAgICBkZWYgdGVzdF9lbmQo
c2VsZiwgZGF0YSk6Ci0gICAgICAgIHRlc3QgPSBzZWxmLmZpbmRfb3JfY3JlYXRlX3Rlc3QoZGF0
YSkKLSAgICAgICAgc3RhcnRfdGltZSA9IHRlc3QucG9wKCJzdGFydF90aW1lIikKLSAgICAgICAg
dGVzdFsiZHVyYXRpb24iXSA9IGRhdGFbInRpbWUiXSAtIHN0YXJ0X3RpbWUKLSAgICAgICAgdGVz
dFsic3RhdHVzIl0gPSBkYXRhWyJzdGF0dXMiXQotICAgICAgICBpZiAiZXhwZWN0ZWQiIGluIGRh
dGE6Ci0gICAgICAgICAgICB0ZXN0WyJleHBlY3RlZCJdID0gZGF0YVsiZXhwZWN0ZWQiXQotICAg
ICAgICBpZiAibWVzc2FnZSIgaW4gZGF0YToKLSAgICAgICAgICAgIHRlc3RbIm1lc3NhZ2UiXSA9
IGRhdGFbIm1lc3NhZ2UiXQotCi0gICAgZGVmIGFzc2VydGlvbl9jb3VudChzZWxmLCBkYXRhKToK
LSAgICAgICAgdGVzdCA9IHNlbGYuZmluZF9vcl9jcmVhdGVfdGVzdChkYXRhKQotICAgICAgICB0
ZXN0WyJhc3NlcnRzIl0gPSB7Ci0gICAgICAgICAgICAiY291bnQiOiBkYXRhWyJjb3VudCJdLAot
ICAgICAgICAgICAgIm1pbiI6IGRhdGFbIm1pbl9leHBlY3RlZCJdLAotICAgICAgICAgICAgIm1h
eCI6IGRhdGFbIm1heF9leHBlY3RlZCJdCi0gICAgICAgIH0KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1
bm5lci9mb3JtYXR0ZXJzL19faW5pdF9fLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2Zvcm1hdHRlcnMvX19p
bml0X18ucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uZTY5ZGUyOWJiMmQxZDY0MzRiOGIyOWFlNzc1YWQ4YzJlNDhj
NTM5MQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2Zvcm1hdHRlcnMvY2hyb21pdW0ucHkgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5l
ci93cHRydW5uZXIvZm9ybWF0dGVycy9jaHJvbWl1bS5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41NjQzNWVhYmY0
YmJlYWRiZWU3YWZhMjk0ZTNlMGJiMWU3Njg1Yjk5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0
cnVubmVyL2Zvcm1hdHRlcnMvY2hyb21pdW0ucHkKQEAgLTAsMCArMSwxODcgQEAKK2ltcG9ydCBq
c29uCitpbXBvcnQgdGltZQorCitmcm9tIGNvbGxlY3Rpb25zIGltcG9ydCBkZWZhdWx0ZGljdAor
ZnJvbSBtb3psb2cuZm9ybWF0dGVycyBpbXBvcnQgYmFzZQorCisKK2NsYXNzIENocm9taXVtRm9y
bWF0dGVyKGJhc2UuQmFzZUZvcm1hdHRlcik6CisgICAgIiIiRm9ybWF0dGVyIHRvIHByb2R1Y2Ug
cmVzdWx0cyBtYXRjaGluZyB0aGUgQ2hyb21pdW0gSlNPTiBUZXN0IFJlc3VsdHMgZm9ybWF0Lgor
ICAgIGh0dHBzOi8vY2hyb21pdW0uZ29vZ2xlc291cmNlLmNvbS9jaHJvbWl1bS9zcmMvKy9tYXN0
ZXIvZG9jcy90ZXN0aW5nL2pzb25fdGVzdF9yZXN1bHRzX2Zvcm1hdC5tZAorICAgICIiIgorCisg
ICAgZGVmIF9faW5pdF9fKHNlbGYpOgorICAgICAgICAjIFdoZXRoZXIgdGhlIHJ1biB3YXMgaW50
ZXJydXB0ZWQsIGVpdGhlciBieSB0aGUgdGVzdCBydW5uZXIgb3IgdXNlci4KKyAgICAgICAgc2Vs
Zi5pbnRlcnJ1cHRlZCA9IEZhbHNlCisKKyAgICAgICAgIyBBIG1hcCBvZiB0ZXN0IHN0YXR1cyB0
byB0aGUgbnVtYmVyIG9mIHRlc3RzIHRoYXQgaGFkIHRoYXQgc3RhdHVzLgorICAgICAgICBzZWxm
Lm51bV9mYWlsdXJlc19ieV9zdGF0dXMgPSBkZWZhdWx0ZGljdChpbnQpCisKKyAgICAgICAgIyBT
dGFydCB0aW1lLCBleHByZXNzZWQgYXMgb2Zmc2V0IHNpbmNlIFVOSVggZXBvY2ggaW4gc2Vjb25k
cy4KKyAgICAgICAgc2VsZi5zdGFydF90aW1lc3RhbXBfc2Vjb25kcyA9IE5vbmUKKworICAgICAg
ICAjIFRyaWUgb2YgdGVzdCByZXN1bHRzLiBFYWNoIGRpcmVjdG9yeSBpbiB0aGUgdGVzdCBuYW1l
IGlzIGEgbm9kZSBpbgorICAgICAgICAjIHRoZSB0cmllIGFuZCB0aGUgbGVhZiBjb250YWlucyB0
aGUgZGljdCBvZiBwZXItdGVzdCBkYXRhLgorICAgICAgICBzZWxmLnRlc3RzID0ge30KKworICAg
ICAgICAjIE1lc3NhZ2UgZGljdGlvbmFyeSwga2V5ZWQgYnkgdGVzdCBuYW1lLiBWYWx1ZSBpcyBh
IGNvbmNhdGVuYXRpb24gb2YKKyAgICAgICAgIyB0aGUgc3VidGVzdCBtZXNzYWdlcyBmb3IgdGhp
cyB0ZXN0LgorICAgICAgICBzZWxmLm1lc3NhZ2VzID0gZGVmYXVsdGRpY3Qoc3RyKQorCisgICAg
ICAgICMgTGlzdCBvZiB0ZXN0cyB0aGF0IGhhdmUgZmFpbGluZyBzdWJ0ZXN0cy4KKyAgICAgICAg
c2VsZi50ZXN0c193aXRoX3N1YnRlc3RfZmFpbHMgPSBzZXQoKQorCisgICAgZGVmIF9hcHBlbmRf
dGVzdF9tZXNzYWdlKHNlbGYsIHRlc3QsIHN1YnRlc3QsIHN0YXR1cywgZXhwZWN0ZWQsIG1lc3Nh
Z2UpOgorICAgICAgICAiIiIKKyAgICAgICAgQXBwZW5kcyB0aGUgbWVzc2FnZSBkYXRhIGZvciBh
IHRlc3QuCisgICAgICAgIDpwYXJhbSBzdHIgdGVzdDogdGhlIG5hbWUgb2YgdGhlIHRlc3QKKyAg
ICAgICAgOnBhcmFtIHN0ciBzdWJ0ZXN0OiB0aGUgbmFtZSBvZiB0aGUgc3VidGVzdCB3aXRoIHRo
ZSBtZXNzYWdlCisgICAgICAgIDpwYXJhbSBzdHIgc3RhdHVzOiB0aGUgc3VidGVzdCBzdGF0dXMK
KyAgICAgICAgOnBhcmFtIHN0ciBleHBlY3RlZDogdGhlIGV4cGVjdGVkIHN1YnRlc3Qgc3RhdHVz
CisgICAgICAgIDpwYXJhbSBzdHIgbWVzc2FnZTogdGhlIHN0cmluZyB0byBhcHBlbmQgdG8gdGhl
IG1lc3NhZ2UgZm9yIHRoaXMgdGVzdAorCisgICAgICAgIEhlcmUncyBhbiBleGFtcGxlIG9mIGEg
bWVzc2FnZToKKyAgICAgICAgW1RJTUVPVVQgZXhwZWN0ZWQgRkFJTF0gVGVzdCBOYW1lIGZvbzog
YXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgMSBidXQgZ290IDIKKyAgICAgICAgIiIiCisgICAgICAg
IGlmIG5vdCBtZXNzYWdlOgorICAgICAgICAgICAgcmV0dXJuCisgICAgICAgICMgQWRkIHRoZSBw
cmVmaXgsIHdpdGggdGhlIHRlc3Qgc3RhdHVzIGFuZCBzdWJ0ZXN0IG5hbWUgKGlmIGF2YWlsYWJs
ZSkKKyAgICAgICAgcHJlZml4ID0gIlslcyIgJSBzdGF0dXMKKyAgICAgICAgaWYgZXhwZWN0ZWQg
YW5kIGV4cGVjdGVkICE9IHN0YXR1czoKKyAgICAgICAgICAgIHByZWZpeCArPSAiIGV4cGVjdGVk
ICVzXSAiICUgZXhwZWN0ZWQKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHByZWZpeCArPSAi
XSAiCisgICAgICAgIGlmIHN1YnRlc3Q6CisgICAgICAgICAgICBwcmVmaXggKz0gIiVzOiAiICUg
c3VidGVzdAorICAgICAgICBzZWxmLm1lc3NhZ2VzW3Rlc3RdICs9IHByZWZpeCArIG1lc3NhZ2Ug
KyAiXG4iCisKKyAgICBkZWYgX3N0b3JlX3Rlc3RfcmVzdWx0KHNlbGYsIG5hbWUsIGFjdHVhbCwg
ZXhwZWN0ZWQsIG1lc3NhZ2UpOgorICAgICAgICAiIiIKKyAgICAgICAgU3RvcmVzIHRoZSByZXN1
bHQgb2YgYSBzaW5nbGUgdGVzdCBpbiB8c2VsZi50ZXN0c3wKKyAgICAgICAgOnBhcmFtIHN0ciBu
YW1lOiBuYW1lIG9mIHRoZSB0ZXN0LgorICAgICAgICA6cGFyYW0gc3RyIGFjdHVhbDogYWN0dWFs
IHN0YXR1cyBvZiB0aGUgdGVzdC4KKyAgICAgICAgOnBhcmFtIHN0ciBleHBlY3RlZDogZXhwZWN0
ZWQgc3RhdHVzIG9mIHRoZSB0ZXN0LgorICAgICAgICA6cGFyYW0gc3RyIG1lc3NhZ2U6IHRlc3Qg
b3V0cHV0LCBzdWNoIGFzIHN0YXR1cywgc3VidGVzdCwgZXJyb3JzIGV0Yy4KKyAgICAgICAgIiIi
CisgICAgICAgICMgVGhlIHRlc3QgbmFtZSBjYW4gY29udGFpbiBhIGxlYWRpbmcgLyB3aGljaCB3
aWxsIHByb2R1Y2UgYW4gZW1wdHkKKyAgICAgICAgIyBzdHJpbmcgaW4gdGhlIGZpcnN0IHBvc2l0
aW9uIG9mIHRoZSBsaXN0IHJldHVybmVkIGJ5IHNwbGl0LiBXZSB1c2UKKyAgICAgICAgIyBmaWx0
ZXIoTm9uZSkgdG8gcmVtb3ZlIHN1Y2ggZW50cmllcy4KKyAgICAgICAgbmFtZV9wYXJ0cyA9IGZp
bHRlcihOb25lLCBuYW1lLnNwbGl0KCIvIikpCisgICAgICAgIGN1cl9kaWN0ID0gc2VsZi50ZXN0
cworICAgICAgICBmb3IgbmFtZV9wYXJ0IGluIG5hbWVfcGFydHM6CisgICAgICAgICAgICBjdXJf
ZGljdCA9IGN1cl9kaWN0LnNldGRlZmF1bHQobmFtZV9wYXJ0LCB7fSkKKyAgICAgICAgY3VyX2Rp
Y3RbImFjdHVhbCJdID0gYWN0dWFsCisgICAgICAgIGN1cl9kaWN0WyJleHBlY3RlZCJdID0gZXhw
ZWN0ZWQKKyAgICAgICAgaWYgbWVzc2FnZSAhPSAiIjoKKyAgICAgICAgICAgIGN1cl9kaWN0WyJh
cnRpZmFjdHMiXSA9IHsibG9nIjogbWVzc2FnZX0KKworICAgICAgICAjIEZpZ3VyZSBvdXQgaWYg
dGhlcmUgd2FzIGEgcmVncmVzc2lvbiBvciB1bmV4cGVjdGVkIHN0YXR1cy4gVGhpcyBvbmx5Cisg
ICAgICAgICMgaGFwcGVucyBmb3IgdGVzdHMgdGhhdCB3ZXJlIHJ1bgorICAgICAgICBpZiBhY3R1
YWwgIT0gIlNLSVAiOgorICAgICAgICAgICAgaWYgYWN0dWFsICE9IGV4cGVjdGVkOgorICAgICAg
ICAgICAgICAgIGN1cl9kaWN0WyJpc191bmV4cGVjdGVkIl0gPSBUcnVlCisgICAgICAgICAgICAg
ICAgaWYgYWN0dWFsICE9ICJQQVNTIjoKKyAgICAgICAgICAgICAgICAgICAgY3VyX2RpY3RbImlz
X3JlZ3Jlc3Npb24iXSA9IFRydWUKKworICAgIGRlZiBfbWFwX3N0YXR1c19uYW1lKHNlbGYsIHN0
YXR1cyk6CisgICAgICAgICIiIgorICAgICAgICBNYXBzIGEgV1BUIHN0YXR1cyB0byBhIENocm9t
aXVtIHN0YXR1cy4KKworICAgICAgICBDaHJvbWl1bSBoYXMgZml2ZSBtYWluIHN0YXR1c2VzIHRo
YXQgd2UgaGF2ZSB0byBtYXAgdG86CisgICAgICAgIENSQVNIOiB0aGUgdGVzdCBoYXJuZXNzIGNy
YXNoZWQKKyAgICAgICAgRkFJTDogdGhlIHRlc3QgZGlkIG5vdCBydW4gYXMgZXhwZWN0ZWQKKyAg
ICAgICAgUEFTUzogdGhlIHRlc3QgcmFuIGFzIGV4cGVjdGVkCisgICAgICAgIFNLSVA6IHRoZSB0
ZXN0IHdhcyBub3QgcnVuCisgICAgICAgIFRJTUVPVVQ6IHRoZSBkaWQgbm90IGZpbmlzaCBpbiB0
aW1lIGFuZCB3YXMgYWJvcnRlZAorCisgICAgICAgIDpwYXJhbSBzdHIgc3RhdHVzOiB0aGUgc3Ry
aW5nIHN0YXR1cyBvZiBhIHRlc3QgZnJvbSBXUFQKKyAgICAgICAgOnJldHVybjogYSBjb3JyZXNw
b25kaW5nIHN0cmluZyBzdGF0dXMgZm9yIENocm9taXVtCisgICAgICAgICIiIgorICAgICAgICBp
ZiBzdGF0dXMgPT0gIk9LIjoKKyAgICAgICAgICAgIHJldHVybiAiUEFTUyIKKyAgICAgICAgaWYg
c3RhdHVzID09ICJOT1RSVU4iOgorICAgICAgICAgICAgcmV0dXJuICJTS0lQIgorICAgICAgICBp
ZiBzdGF0dXMgPT0gIkVYVEVSTkFMLVRJTUVPVVQiOgorICAgICAgICAgICAgcmV0dXJuICJUSU1F
T1VUIgorICAgICAgICBpZiBzdGF0dXMgaW4gKCJFUlJPUiIsICJDUkFTSCIpOgorICAgICAgICAg
ICAgIyBDUkFTSCBpbiBXUFQgbWVhbnMgYSBicm93c2VyIGNyYXNoLCB3aGljaCBDaHJvbWl1bSB0
cmVhdHMgYXMgYQorICAgICAgICAgICAgIyB0ZXN0IGZhaWx1cmUuCisgICAgICAgICAgICByZXR1
cm4gIkZBSUwiCisgICAgICAgIGlmIHN0YXR1cyA9PSAiSU5URVJOQUwtRVJST1IiOgorICAgICAg
ICAgICAgIyBDUkFTSCBpbiBDaHJvbWl1bSByZWZlcnMgdG8gYW4gZXJyb3IgaW4gdGhlIHRlc3Qg
cnVubmVyIG5vdCB0aGUKKyAgICAgICAgICAgICMgYnJvd3Nlci4KKyAgICAgICAgICAgIHJldHVy
biAiQ1JBU0giCisgICAgICAgICMgQW55IG90aGVyIHN0YXR1cyBqdXN0IGdldHMgcmV0dXJuZWQg
YXMtaXMuCisgICAgICAgIHJldHVybiBzdGF0dXMKKworICAgIGRlZiBfZ2V0X2V4cGVjdGVkX3N0
YXR1c19mcm9tX2RhdGEoc2VsZiwgYWN0dWFsX3N0YXR1cywgZGF0YSk6CisgICAgICAgICIiIgor
ICAgICAgICBHZXRzIHRoZSBleHBlY3RlZCBzdGF0dXMgZnJvbSBhIHxkYXRhfCBkaWN0aW9uYXJ5
LgorCisgICAgICAgIElmIHRoZXJlIGlzIG5vIGV4cGVjdGVkIHN0YXR1cyBpbiBkYXRhLCB0aGUg
YWN0dWFsIHN0YXR1cyBpcyByZXR1cm5lZC4KKyAgICAgICAgVGhpcyBpcyBiZWNhdXNlIG1vemxv
ZyB3aWxsIGRlbGV0ZSAiZXhwZWN0ZWQiIGZyb20gfGRhdGF8IGlmIGl0IGlzIHRoZQorICAgICAg
ICBzYW1lIGFzICJzdGF0dXMiLiBTbyB0aGUgcHJlc2VuY2Ugb2YgImV4cGVjdGVkIiBpbXBsaWVz
IHRoYXQgInN0YXR1cyIgaXMKKyAgICAgICAgdW5leHBlY3RlZC4gQ29udmVyc2VseSwgdGhlIGFi
c2VuY2Ugb2YgImV4cGVjdGVkIiBpbXBsaWVzIHRoZSAic3RhdHVzIgorICAgICAgICBpcyBleHBl
Y3RlZC4gU28gd2UgdXNlIHRoZSAiZXhwZWN0ZWQiIHN0YXR1cyBpZiBpdCdzIHRoZXJlIG9yIGZh
bGwgYmFjaworICAgICAgICB0byB0aGUgYWN0dWFsIHN0YXR1cyBpZiBpdCdzIG5vdC4KKworICAg
ICAgICA6cGFyYW0gc3RyIGFjdHVhbF9zdGF0dXM6IHRoZSBhY3R1YWwgc3RhdHVzIG9mIHRoZSB0
ZXN0CisgICAgICAgIDpwYXJhbSBkYXRhOiBhIGRhdGEgZGljdGlvbmFyeSB0byBleHRyYWN0IGV4
cGVjdGVkIHN0YXR1cyBmcm9tCisgICAgICAgIDpyZXR1cm4gc3RyOiB0aGUgZXhwZWN0ZWQgc3Rh
dHVzCisgICAgICAgICIiIgorICAgICAgICByZXR1cm4gKHNlbGYuX21hcF9zdGF0dXNfbmFtZShk
YXRhWyJleHBlY3RlZCJdKQorICAgICAgICAgICAgICAgIGlmICJleHBlY3RlZCIgaW4gZGF0YSBl
bHNlIGFjdHVhbF9zdGF0dXMpCisKKyAgICBkZWYgc3VpdGVfc3RhcnQoc2VsZiwgZGF0YSk6Cisg
ICAgICAgIHNlbGYuc3RhcnRfdGltZXN0YW1wX3NlY29uZHMgPSAoZGF0YVsidGltZSJdIGlmICJ0
aW1lIiBpbiBkYXRhCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxz
ZSB0aW1lLnRpbWUoKSkKKworICAgIGRlZiB0ZXN0X3N0YXR1cyhzZWxmLCBkYXRhKToKKyAgICAg
ICAgdGVzdF9uYW1lID0gZGF0YVsidGVzdCJdCisgICAgICAgIGlzX3VuZXhwZWN0ZWQgPSBOb25l
CisgICAgICAgIGFjdHVhbF9zdGF0dXMgPSBzZWxmLl9tYXBfc3RhdHVzX25hbWUoZGF0YVsic3Rh
dHVzIl0pCisgICAgICAgIGV4cGVjdGVkX3N0YXR1cyA9IHNlbGYuX2dldF9leHBlY3RlZF9zdGF0
dXNfZnJvbV9kYXRhKGFjdHVhbF9zdGF0dXMsIGRhdGEpCisKKyAgICAgICAgaXNfdW5leHBlY3Rl
ZCA9IGFjdHVhbF9zdGF0dXMgIT0gZXhwZWN0ZWRfc3RhdHVzCisgICAgICAgIGlmIGlzX3VuZXhw
ZWN0ZWQgYW5kIHRlc3RfbmFtZSBub3QgaW4gc2VsZi50ZXN0c193aXRoX3N1YnRlc3RfZmFpbHM6
CisgICAgICAgICAgICBzZWxmLnRlc3RzX3dpdGhfc3VidGVzdF9mYWlscy5hZGQodGVzdF9uYW1l
KQorICAgICAgICBpZiAibWVzc2FnZSIgaW4gZGF0YToKKyAgICAgICAgICAgIHNlbGYuX2FwcGVu
ZF90ZXN0X21lc3NhZ2UodGVzdF9uYW1lLCBkYXRhWyJzdWJ0ZXN0Il0sCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGFjdHVhbF9zdGF0dXMsIGV4cGVjdGVkX3N0YXR1cywK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YVsibWVzc2FnZSJdKQor
CisgICAgZGVmIHRlc3RfZW5kKHNlbGYsIGRhdGEpOgorICAgICAgICB0ZXN0X25hbWUgPSBkYXRh
WyJ0ZXN0Il0KKyAgICAgICAgYWN0dWFsX3N0YXR1cyA9IHNlbGYuX21hcF9zdGF0dXNfbmFtZShk
YXRhWyJzdGF0dXMiXSkKKyAgICAgICAgaWYgYWN0dWFsX3N0YXR1cyA9PSAiUEFTUyIgYW5kIHRl
c3RfbmFtZSBpbiBzZWxmLnRlc3RzX3dpdGhfc3VidGVzdF9mYWlsczoKKyAgICAgICAgICAgICMg
VGhpcyB0ZXN0IHBhc3NlZCBidXQgaXQgaGFzIGZhaWxpbmcgc3VidGVzdHMsIHNvIHdlIGZsaXAg
dGhlIHN0YXR1cworICAgICAgICAgICAgIyB0byBGQUlMLgorICAgICAgICAgICAgYWN0dWFsX3N0
YXR1cyA9ICJGQUlMIgorICAgICAgICAgICAgIyBDbGVhbiB1cCB0aGUgdGVzdCBsaXN0IHRvIGF2
b2lkIGFjY3VtdWxhdGluZyB0b28gbWFueS4KKyAgICAgICAgICAgIHNlbGYudGVzdHNfd2l0aF9z
dWJ0ZXN0X2ZhaWxzLnJlbW92ZSh0ZXN0X25hbWUpCisKKyAgICAgICAgZXhwZWN0ZWRfc3RhdHVz
ID0gc2VsZi5fZ2V0X2V4cGVjdGVkX3N0YXR1c19mcm9tX2RhdGEoYWN0dWFsX3N0YXR1cywgZGF0
YSkKKyAgICAgICAgaWYgIm1lc3NhZ2UiIGluIGRhdGE6CisgICAgICAgICAgICBzZWxmLl9hcHBl
bmRfdGVzdF9tZXNzYWdlKHRlc3RfbmFtZSwgTm9uZSwgYWN0dWFsX3N0YXR1cywKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXhwZWN0ZWRfc3RhdHVzLCBkYXRhWyJtZXNz
YWdlIl0pCisgICAgICAgIHNlbGYuX3N0b3JlX3Rlc3RfcmVzdWx0KHRlc3RfbmFtZSwgYWN0dWFs
X3N0YXR1cywgZXhwZWN0ZWRfc3RhdHVzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBzZWxmLm1lc3NhZ2VzW3Rlc3RfbmFtZV0pCisKKyAgICAgICAgIyBSZW1vdmUgdGhlIHRlc3Qg
ZnJvbSBtZXNzYWdlcyBkaWN0IHRvIGF2b2lkIGFjY3VtdWxhdGluZyB0b28gbWFueS4KKyAgICAg
ICAgc2VsZi5tZXNzYWdlcy5wb3AodGVzdF9uYW1lKQorCisgICAgICAgICMgVXBkYXRlIHRoZSBj
b3VudCBvZiBob3cgbWFueSB0ZXN0cyByYW4gd2l0aCBlYWNoIHN0YXR1cy4KKyAgICAgICAgc2Vs
Zi5udW1fZmFpbHVyZXNfYnlfc3RhdHVzW2FjdHVhbF9zdGF0dXNdICs9IDEKKworICAgIGRlZiBz
dWl0ZV9lbmQoc2VsZiwgZGF0YSk6CisgICAgICAgICMgQ3JlYXRlIHRoZSBmaW5hbCByZXN1bHQg
ZGljdGlvbmFyeQorICAgICAgICBmaW5hbF9yZXN1bHQgPSB7CisgICAgICAgICAgICAjIFRoZXJl
IGFyZSBzb21lIHJlcXVpcmVkIGZpZWxkcyB0aGF0IHdlIGp1c3QgaGFyZC1jb2RlLgorICAgICAg
ICAgICAgImludGVycnVwdGVkIjogRmFsc2UsCisgICAgICAgICAgICAicGF0aF9kZWxpbWl0ZXIi
OiAiLyIsCisgICAgICAgICAgICAidmVyc2lvbiI6IDMsCisgICAgICAgICAgICAic2Vjb25kc19z
aW5jZV9lcG9jaCI6IHNlbGYuc3RhcnRfdGltZXN0YW1wX3NlY29uZHMsCisgICAgICAgICAgICAi
bnVtX2ZhaWx1cmVzX2J5X3R5cGUiOiBzZWxmLm51bV9mYWlsdXJlc19ieV9zdGF0dXMsCisgICAg
ICAgICAgICAidGVzdHMiOiBzZWxmLnRlc3RzCisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGpz
b24uZHVtcHMoZmluYWxfcmVzdWx0KQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2Zvcm1hdHRl
cnMvdGVzdHMvdGVzdF9jaHJvbWl1bS5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9mb3JtYXR0ZXJzL3Rlc3Rz
L3Rlc3RfY2hyb21pdW0ucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODNjMTI4YWM1Y2I0NmE2NTM3M2EyZmVhMDA4
YzZiYTYwMzUwZmQ4ZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9mb3JtYXR0ZXJz
L3Rlc3RzL3Rlc3RfY2hyb21pdW0ucHkKQEAgLTAsMCArMSwzNzIgQEAKK2ltcG9ydCBqc29uCitp
bXBvcnQgc3lzCitmcm9tIG9zLnBhdGggaW1wb3J0IGRpcm5hbWUsIGpvaW4KK2Zyb20gc2l4Lm1v
dmVzIGltcG9ydCBjU3RyaW5nSU8gYXMgU3RyaW5nSU8KKworZnJvbSBtb3psb2cgaW1wb3J0IGhh
bmRsZXJzLCBzdHJ1Y3R1cmVkbG9nCisKK3N5cy5wYXRoLmluc2VydCgwLCBqb2luKGRpcm5hbWUo
X19maWxlX18pLCAiLi4iLCAiLi4iKSkKK2Zyb20gZm9ybWF0dGVycy5jaHJvbWl1bSBpbXBvcnQg
Q2hyb21pdW1Gb3JtYXR0ZXIKKworCitkZWYgdGVzdF9jaHJvbWl1bV9yZXF1aXJlZF9maWVsZHMo
Y2FwZmQpOgorICAgICMgVGVzdCB0aGF0IHRoZSB0ZXN0IHJlc3VsdHMgY29udGFpbiBhIGhhbmRm
dWwgb2YgcmVxdWlyZWQgZmllbGRzLgorCisgICAgIyBTZXQgdXAgdGhlIGhhbmRsZXIuCisgICAg
b3V0cHV0ID0gU3RyaW5nSU8oKQorICAgIGxvZ2dlciA9IHN0cnVjdHVyZWRsb2cuU3RydWN0dXJl
ZExvZ2dlcigidGVzdF9hIikKKyAgICBsb2dnZXIuYWRkX2hhbmRsZXIoaGFuZGxlcnMuU3RyZWFt
SGFuZGxlcihvdXRwdXQsIENocm9taXVtRm9ybWF0dGVyKCkpKQorCisgICAgIyBvdXRwdXQgYSBi
dW5jaCBvZiBzdHVmZgorICAgIGxvZ2dlci5zdWl0ZV9zdGFydChbInRlc3QtaWQtMSJdLCBydW5f
aW5mbz17fSwgdGltZT0xMjMpCisgICAgbG9nZ2VyLnRlc3Rfc3RhcnQoInRlc3QtaWQtMSIpCisg
ICAgbG9nZ2VyLnRlc3RfZW5kKCJ0ZXN0LWlkLTEiLCBzdGF0dXM9IlBBU1MiLCBleHBlY3RlZD0i
UEFTUyIpCisgICAgbG9nZ2VyLnN1aXRlX2VuZCgpCisKKyAgICAjIGNoZWNrIG5vdGhpbmcgZ290
IG91dHB1dCB0byBzdGRvdXQvc3RkZXJyCisgICAgIyAobm90ZSB0aGF0IG1vemxvZyBvdXRwdXRz
IGV4Y2VwdGlvbnMgZHVyaW5nIGhhbmRsaW5nIHRvIHN0ZGVyciEpCisgICAgY2FwdHVyZWQgPSBj
YXBmZC5yZWFkb3V0ZXJyKCkKKyAgICBhc3NlcnQgY2FwdHVyZWQub3V0ID09ICIiCisgICAgYXNz
ZXJ0IGNhcHR1cmVkLmVyciA9PSAiIgorCisgICAgIyBjaGVjayB0aGUgYWN0dWFsIG91dHB1dCBv
ZiB0aGUgZm9ybWF0dGVyCisgICAgb3V0cHV0LnNlZWsoMCkKKyAgICBvdXRwdXRfb2JqID0ganNv
bi5sb2FkKG91dHB1dCkKKworICAgICMgQ2hlY2sgZm9yIGV4aXN0ZW5jZSBvZiByZXF1aXJlZCBm
aWVsZHMKKyAgICBhc3NlcnQgImludGVycnVwdGVkIiBpbiBvdXRwdXRfb2JqCisgICAgYXNzZXJ0
ICJwYXRoX2RlbGltaXRlciIgaW4gb3V0cHV0X29iagorICAgIGFzc2VydCAidmVyc2lvbiIgaW4g
b3V0cHV0X29iagorICAgIGFzc2VydCAibnVtX2ZhaWx1cmVzX2J5X3R5cGUiIGluIG91dHB1dF9v
YmoKKyAgICBhc3NlcnQgInRlc3RzIiBpbiBvdXRwdXRfb2JqCisKKyAgICB0ZXN0X29iaiA9IG91
dHB1dF9vYmpbInRlc3RzIl1bInRlc3QtaWQtMSJdCisgICAgYXNzZXJ0ICJhY3R1YWwiIGluIHRl
c3Rfb2JqCisgICAgYXNzZXJ0ICJleHBlY3RlZCIgaW4gdGVzdF9vYmoKKworCitkZWYgdGVzdF9j
aHJvbWl1bV90ZXN0X25hbWVfdHJpZShjYXBmZCk6CisgICAgIyBFbnN1cmUgdGVzdCBuYW1lcyBh
cmUgYnJva2VuIGludG8gZGlyZWN0b3JpZXMgYW5kIHN0b3JlZCBpbiBhIHRyaWUgd2l0aAorICAg
ICMgdGVzdCByZXN1bHRzIGF0IHRoZSBsZWF2ZXMuCisKKyAgICAjIFNldCB1cCB0aGUgaGFuZGxl
ci4KKyAgICBvdXRwdXQgPSBTdHJpbmdJTygpCisgICAgbG9nZ2VyID0gc3RydWN0dXJlZGxvZy5T
dHJ1Y3R1cmVkTG9nZ2VyKCJ0ZXN0X2EiKQorICAgIGxvZ2dlci5hZGRfaGFuZGxlcihoYW5kbGVy
cy5TdHJlYW1IYW5kbGVyKG91dHB1dCwgQ2hyb21pdW1Gb3JtYXR0ZXIoKSkpCisKKyAgICAjIG91
dHB1dCBhIGJ1bmNoIG9mIHN0dWZmCisgICAgbG9nZ2VyLnN1aXRlX3N0YXJ0KFsiL2Zvby9iYXIv
dGVzdC1pZC0xIiwgIi9mb28vdGVzdC1pZC0yIl0sIHJ1bl9pbmZvPXt9LAorICAgICAgICAgICAg
ICAgICAgICAgICB0aW1lPTEyMykKKyAgICBsb2dnZXIudGVzdF9zdGFydCgiL2Zvby9iYXIvdGVz
dC1pZC0xIikKKyAgICBsb2dnZXIudGVzdF9lbmQoIi9mb28vYmFyL3Rlc3QtaWQtMSIsIHN0YXR1
cz0iVElNRU9VVCIsIGV4cGVjdGVkPSJGQUlMIikKKyAgICBsb2dnZXIudGVzdF9zdGFydCgiL2Zv
by90ZXN0LWlkLTIiKQorICAgIGxvZ2dlci50ZXN0X2VuZCgiL2Zvby90ZXN0LWlkLTIiLCBzdGF0
dXM9IkVSUk9SIiwgZXhwZWN0ZWQ9IlRJTUVPVVQiKQorICAgIGxvZ2dlci5zdWl0ZV9lbmQoKQor
CisgICAgIyBjaGVjayBub3RoaW5nIGdvdCBvdXRwdXQgdG8gc3Rkb3V0L3N0ZGVycgorICAgICMg
KG5vdGUgdGhhdCBtb3psb2cgb3V0cHV0cyBleGNlcHRpb25zIGR1cmluZyBoYW5kbGluZyB0byBz
dGRlcnIhKQorICAgIGNhcHR1cmVkID0gY2FwZmQucmVhZG91dGVycigpCisgICAgYXNzZXJ0IGNh
cHR1cmVkLm91dCA9PSAiIgorICAgIGFzc2VydCBjYXB0dXJlZC5lcnIgPT0gIiIKKworICAgICMg
Y2hlY2sgdGhlIGFjdHVhbCBvdXRwdXQgb2YgdGhlIGZvcm1hdHRlcgorICAgIG91dHB1dC5zZWVr
KDApCisgICAgb3V0cHV0X29iaiA9IGpzb24ubG9hZChvdXRwdXQpCisKKyAgICAjIEVuc3VyZSB0
aGF0IHRoZSB0ZXN0IG5hbWVzIGFyZSBicm9rZW4gdXAgYnkgZGlyZWN0b3J5IG5hbWUgYW5kIHRo
YXQgdGhlCisgICAgIyByZXN1bHRzIGFyZSBzdG9yZWQgYXQgdGhlIGxlYXZlcy4KKyAgICB0ZXN0
X29iaiA9IG91dHB1dF9vYmpbInRlc3RzIl1bImZvbyJdWyJiYXIiXVsidGVzdC1pZC0xIl0KKyAg
ICBhc3NlcnQgdGVzdF9vYmpbImFjdHVhbCJdID09ICJUSU1FT1VUIgorICAgIGFzc2VydCB0ZXN0
X29ialsiZXhwZWN0ZWQiXSA9PSAiRkFJTCIKKworICAgIHRlc3Rfb2JqID0gb3V0cHV0X29ialsi
dGVzdHMiXVsiZm9vIl1bInRlc3QtaWQtMiJdCisgICAgIyBUaGUgRVJST1Igc3RhdHVzIGlzIG1h
cHBlZCB0byBGQUlMIGZvciBDaHJvbWl1bQorICAgIGFzc2VydCB0ZXN0X29ialsiYWN0dWFsIl0g
PT0gIkZBSUwiCisgICAgYXNzZXJ0IHRlc3Rfb2JqWyJleHBlY3RlZCJdID09ICJUSU1FT1VUIgor
CisKK2RlZiB0ZXN0X251bV9mYWlsdXJlc19ieV90eXBlKGNhcGZkKToKKyAgICAjIFRlc3QgdGhh
dCB0aGUgbnVtYmVyIG9mIGZhaWx1cmVzIGJ5IHN0YXR1cyB0eXBlIGlzIGNvcnJlY3RseSBjYWxj
dWxhdGVkLgorCisgICAgIyBTZXQgdXAgdGhlIGhhbmRsZXIuCisgICAgb3V0cHV0ID0gU3RyaW5n
SU8oKQorICAgIGxvZ2dlciA9IHN0cnVjdHVyZWRsb2cuU3RydWN0dXJlZExvZ2dlcigidGVzdF9h
IikKKyAgICBsb2dnZXIuYWRkX2hhbmRsZXIoaGFuZGxlcnMuU3RyZWFtSGFuZGxlcihvdXRwdXQs
IENocm9taXVtRm9ybWF0dGVyKCkpKQorCisgICAgIyBSdW4gc29tZSB0ZXN0cyB3aXRoIGRpZmZl
cmVudCBzdGF0dXNlczogMyBwYXNzZXMsIDEgdGltZW91dAorICAgIGxvZ2dlci5zdWl0ZV9zdGFy
dChbInQxIiwgInQyIiwgInQzIiwgInQ0Il0sIHJ1bl9pbmZvPXt9LCB0aW1lPTEyMykKKyAgICBs
b2dnZXIudGVzdF9zdGFydCgidDEiKQorICAgIGxvZ2dlci50ZXN0X2VuZCgidDEiLCBzdGF0dXM9
IlBBU1MiLCBleHBlY3RlZD0iUEFTUyIpCisgICAgbG9nZ2VyLnRlc3Rfc3RhcnQoInQyIikKKyAg
ICBsb2dnZXIudGVzdF9lbmQoInQyIiwgc3RhdHVzPSJQQVNTIiwgZXhwZWN0ZWQ9IlBBU1MiKQor
ICAgIGxvZ2dlci50ZXN0X3N0YXJ0KCJ0MyIpCisgICAgbG9nZ2VyLnRlc3RfZW5kKCJ0MyIsIHN0
YXR1cz0iUEFTUyIsIGV4cGVjdGVkPSJGQUlMIikKKyAgICBsb2dnZXIudGVzdF9zdGFydCgidDQi
KQorICAgIGxvZ2dlci50ZXN0X2VuZCgidDQiLCBzdGF0dXM9IlRJTUVPVVQiLCBleHBlY3RlZD0i
Q1JBU0giKQorICAgIGxvZ2dlci5zdWl0ZV9lbmQoKQorCisgICAgIyBjaGVjayBub3RoaW5nIGdv
dCBvdXRwdXQgdG8gc3Rkb3V0L3N0ZGVycgorICAgICMgKG5vdGUgdGhhdCBtb3psb2cgb3V0cHV0
cyBleGNlcHRpb25zIGR1cmluZyBoYW5kbGluZyB0byBzdGRlcnIhKQorICAgIGNhcHR1cmVkID0g
Y2FwZmQucmVhZG91dGVycigpCisgICAgYXNzZXJ0IGNhcHR1cmVkLm91dCA9PSAiIgorICAgIGFz
c2VydCBjYXB0dXJlZC5lcnIgPT0gIiIKKworICAgICMgY2hlY2sgdGhlIGFjdHVhbCBvdXRwdXQg
b2YgdGhlIGZvcm1hdHRlcgorICAgIG91dHB1dC5zZWVrKDApCisgICAgbnVtX2ZhaWx1cmVzX2J5
X3R5cGUgPSBqc29uLmxvYWQob3V0cHV0KVsibnVtX2ZhaWx1cmVzX2J5X3R5cGUiXQorCisgICAg
IyBXZSBleHBlY3QgMyBwYXNzZXMgYW5kIDEgdGltZW91dCwgbm90aGluZyBlbHNlLgorICAgIGFz
c2VydCBzb3J0ZWQobnVtX2ZhaWx1cmVzX2J5X3R5cGUua2V5cygpKSA9PSBbIlBBU1MiLCAiVElN
RU9VVCJdCisgICAgYXNzZXJ0IG51bV9mYWlsdXJlc19ieV90eXBlWyJQQVNTIl0gPT0gMworICAg
IGFzc2VydCBudW1fZmFpbHVyZXNfYnlfdHlwZVsiVElNRU9VVCJdID09IDEKKworCitkZWYgdGVz
dF9zdWJ0ZXN0X21lc3NhZ2VzKGNhcGZkKToKKyAgICAjIFRlc3RzIGFjY3VtdWxhdGlvbiBvZiB0
ZXN0IG91dHB1dAorCisgICAgIyBTZXQgdXAgdGhlIGhhbmRsZXIuCisgICAgb3V0cHV0ID0gU3Ry
aW5nSU8oKQorICAgIGxvZ2dlciA9IHN0cnVjdHVyZWRsb2cuU3RydWN0dXJlZExvZ2dlcigidGVz
dF9hIikKKyAgICBsb2dnZXIuYWRkX2hhbmRsZXIoaGFuZGxlcnMuU3RyZWFtSGFuZGxlcihvdXRw
dXQsIENocm9taXVtRm9ybWF0dGVyKCkpKQorCisgICAgIyBSdW4gdHdvIHRlc3RzIHdpdGggc3Vi
dGVzdCBtZXNzYWdlcy4gVGhlIHN1YnRlc3QgbmFtZSBzaG91bGQgYmUgaW5jbHVkZWQKKyAgICAj
IGluIHRoZSBvdXRwdXQuIFdlIHNob3VsZCBhbHNvIHRvbGVyYXRlIG1pc3NpbmcgbWVzc2FnZXMu
CisgICAgbG9nZ2VyLnN1aXRlX3N0YXJ0KFsidDEiLCAidDIiXSwgcnVuX2luZm89e30sIHRpbWU9
MTIzKQorICAgIGxvZ2dlci50ZXN0X3N0YXJ0KCJ0MSIpCisgICAgbG9nZ2VyLnRlc3Rfc3RhdHVz
KCJ0MSIsIHN0YXR1cz0iRkFJTCIsIHN1YnRlc3Q9InQxX2EiLAorICAgICAgICAgICAgICAgICAg
ICAgICBtZXNzYWdlPSJ0MV9hX21lc3NhZ2UiKQorICAgIGxvZ2dlci50ZXN0X3N0YXR1cygidDEi
LCBzdGF0dXM9IlBBU1MiLCBzdWJ0ZXN0PSJ0MV9iIiwKKyAgICAgICAgICAgICAgICAgICAgICAg
bWVzc2FnZT0idDFfYl9tZXNzYWdlIikKKyAgICBsb2dnZXIudGVzdF9lbmQoInQxIiwgc3RhdHVz
PSJQQVNTIiwgZXhwZWN0ZWQ9IlBBU1MiKQorICAgIGxvZ2dlci50ZXN0X3N0YXJ0KCJ0MiIpCisg
ICAgIyBDdXJyZW50bHksIHN1YnRlc3RzIHdpdGggZW1wdHkgbWVzc2FnZXMgd2lsbCBiZSBpZ25v
cmVkCisgICAgbG9nZ2VyLnRlc3Rfc3RhdHVzKCJ0MiIsIHN0YXR1cz0iUEFTUyIsIHN1YnRlc3Q9
InQyX2EiKQorICAgICMgQSB0ZXN0LWxldmVsIG1lc3NhZ2Ugd2lsbCBhbHNvIGJlIGFwcGVuZGVk
CisgICAgbG9nZ2VyLnRlc3RfZW5kKCJ0MiIsIHN0YXR1cz0iVElNRU9VVCIsIGV4cGVjdGVkPSJQ
QVNTIiwKKyAgICAgICAgICAgICAgICAgICAgbWVzc2FnZT0idDJfbWVzc2FnZSIpCisgICAgbG9n
Z2VyLnN1aXRlX2VuZCgpCisKKyAgICAjIGNoZWNrIG5vdGhpbmcgZ290IG91dHB1dCB0byBzdGRv
dXQvc3RkZXJyCisgICAgIyAobm90ZSB0aGF0IG1vemxvZyBvdXRwdXRzIGV4Y2VwdGlvbnMgZHVy
aW5nIGhhbmRsaW5nIHRvIHN0ZGVyciEpCisgICAgY2FwdHVyZWQgPSBjYXBmZC5yZWFkb3V0ZXJy
KCkKKyAgICBhc3NlcnQgY2FwdHVyZWQub3V0ID09ICIiCisgICAgYXNzZXJ0IGNhcHR1cmVkLmVy
ciA9PSAiIgorCisgICAgIyBjaGVjayB0aGUgYWN0dWFsIG91dHB1dCBvZiB0aGUgZm9ybWF0dGVy
CisgICAgb3V0cHV0LnNlZWsoMCkKKyAgICBvdXRwdXRfanNvbiA9IGpzb24ubG9hZChvdXRwdXQp
CisKKyAgICB0MV9sb2cgPSBvdXRwdXRfanNvblsidGVzdHMiXVsidDEiXVsiYXJ0aWZhY3RzIl1b
ImxvZyJdCisgICAgYXNzZXJ0IHQxX2xvZyA9PSAiW0ZBSUwgZXhwZWN0ZWQgUEFTU10gdDFfYTog
dDFfYV9tZXNzYWdlXG4iIFwKKyAgICAgICAgICAgICAgICAgICAgICJbUEFTU10gdDFfYjogdDFf
Yl9tZXNzYWdlXG4iCisKKyAgICB0Ml9sb2cgPSBvdXRwdXRfanNvblsidGVzdHMiXVsidDIiXVsi
YXJ0aWZhY3RzIl1bImxvZyJdCisgICAgYXNzZXJ0IHQyX2xvZyA9PSAiW1RJTUVPVVQgZXhwZWN0
ZWQgUEFTU10gdDJfbWVzc2FnZVxuIgorCisKK2RlZiB0ZXN0X3N1YnRlc3RfZmFpbHVyZShjYXBm
ZCk6CisgICAgIyBUZXN0cyB0aGF0IGEgdGVzdCBmYWlscyBpZiBhIHN1YnRlc3QgZmFpbHMKKwor
ICAgICMgU2V0IHVwIHRoZSBoYW5kbGVyLgorICAgIG91dHB1dCA9IFN0cmluZ0lPKCkKKyAgICBs
b2dnZXIgPSBzdHJ1Y3R1cmVkbG9nLlN0cnVjdHVyZWRMb2dnZXIoInRlc3RfYSIpCisgICAgZm9y
bWF0dGVyID0gQ2hyb21pdW1Gb3JtYXR0ZXIoKQorICAgIGxvZ2dlci5hZGRfaGFuZGxlcihoYW5k
bGVycy5TdHJlYW1IYW5kbGVyKG91dHB1dCwgZm9ybWF0dGVyKSkKKworICAgICMgUnVuIGEgdGVz
dCB3aXRoIHNvbWUgc3VidGVzdCBmYWlsdXJlcy4KKyAgICBsb2dnZXIuc3VpdGVfc3RhcnQoWyJ0
MSJdLCBydW5faW5mbz17fSwgdGltZT0xMjMpCisgICAgbG9nZ2VyLnRlc3Rfc3RhcnQoInQxIikK
KyAgICBsb2dnZXIudGVzdF9zdGF0dXMoInQxIiwgc3RhdHVzPSJGQUlMIiwgc3VidGVzdD0idDFf
YSIsCisgICAgICAgICAgICAgICAgICAgICAgIG1lc3NhZ2U9InQxX2FfbWVzc2FnZSIpCisgICAg
bG9nZ2VyLnRlc3Rfc3RhdHVzKCJ0MSIsIHN0YXR1cz0iUEFTUyIsIHN1YnRlc3Q9InQxX2IiLAor
ICAgICAgICAgICAgICAgICAgICAgICBtZXNzYWdlPSJ0MV9iX21lc3NhZ2UiKQorICAgIGxvZ2dl
ci50ZXN0X3N0YXR1cygidDEiLCBzdGF0dXM9IlRJTUVPVVQiLCBzdWJ0ZXN0PSJ0MV9jIiwKKyAg
ICAgICAgICAgICAgICAgICAgICAgbWVzc2FnZT0idDFfY19tZXNzYWdlIikKKworICAgICMgTWFr
ZSBzdXJlIHRoZSB0ZXN0IG5hbWUgd2FzIGFkZGVkIHRvIHRoZSBzZXQgb2YgdGVzdHMgd2l0aCBz
dWJ0ZXN0IGZhaWxzCisgICAgYXNzZXJ0ICJ0MSIgaW4gZm9ybWF0dGVyLnRlc3RzX3dpdGhfc3Vi
dGVzdF9mYWlscworCisgICAgIyBUaGUgdGVzdCBzdGF0dXMgaXMgcmVwb3J0ZWQgYXMgYSBwYXNz
IGhlcmUgYmVjYXVzZSB0aGUgaGFybmVzcyB3YXMgYWJsZSB0bworICAgICMgcnVuIHRoZSB0ZXN0
IHRvIGNvbXBsZXRpb24uCisgICAgbG9nZ2VyLnRlc3RfZW5kKCJ0MSIsIHN0YXR1cz0iUEFTUyIs
IGV4cGVjdGVkPSJQQVNTIikKKyAgICBsb2dnZXIuc3VpdGVfZW5kKCkKKworICAgICMgY2hlY2sg
bm90aGluZyBnb3Qgb3V0cHV0IHRvIHN0ZG91dC9zdGRlcnIKKyAgICAjIChub3RlIHRoYXQgbW96
bG9nIG91dHB1dHMgZXhjZXB0aW9ucyBkdXJpbmcgaGFuZGxpbmcgdG8gc3RkZXJyISkKKyAgICBj
YXB0dXJlZCA9IGNhcGZkLnJlYWRvdXRlcnIoKQorICAgIGFzc2VydCBjYXB0dXJlZC5vdXQgPT0g
IiIKKyAgICBhc3NlcnQgY2FwdHVyZWQuZXJyID09ICIiCisKKyAgICAjIGNoZWNrIHRoZSBhY3R1
YWwgb3V0cHV0IG9mIHRoZSBmb3JtYXR0ZXIKKyAgICBvdXRwdXQuc2VlaygwKQorICAgIG91dHB1
dF9qc29uID0ganNvbi5sb2FkKG91dHB1dCkKKworICAgIHRlc3Rfb2JqID0gb3V0cHV0X2pzb25b
InRlc3RzIl1bInQxIl0KKyAgICB0MV9sb2cgPSB0ZXN0X29ialsiYXJ0aWZhY3RzIl1bImxvZyJd
CisgICAgYXNzZXJ0IHQxX2xvZyA9PSAiW0ZBSUwgZXhwZWN0ZWQgUEFTU10gdDFfYTogdDFfYV9t
ZXNzYWdlXG4iIFwKKyAgICAgICAgICAgICAgICAgICAgICJbUEFTU10gdDFfYjogdDFfYl9tZXNz
YWdlXG4iIFwKKyAgICAgICAgICAgICAgICAgICAgICJbVElNRU9VVCBleHBlY3RlZCBQQVNTXSB0
MV9jOiB0MV9jX21lc3NhZ2VcbiIKKyAgICAjIFRoZSBzdGF0dXMgb2YgdGhlIHRlc3QgaW4gdGhl
IG91dHB1dCBpcyBhIGZhaWx1cmUgYmVjYXVzZSBzdWJ0ZXN0cyBmYWlsZWQsCisgICAgIyBkZXNw
aXRlIHRoZSBoYXJuZXNzIHJlcG9ydGluZyB0aGF0IHRoZSB0ZXN0IHBhc3NlZC4KKyAgICBhc3Nl
cnQgdGVzdF9vYmpbImFjdHVhbCJdID09ICJGQUlMIgorICAgICMgQWxzbyBlbnN1cmUgdGhhdCB0
aGUgZm9ybWF0dGVyIGNsZWFuZWQgdXAgaXRzIGludGVybmFsIHN0YXRlCisgICAgYXNzZXJ0ICJ0
MSIgbm90IGluIGZvcm1hdHRlci50ZXN0c193aXRoX3N1YnRlc3RfZmFpbHMKKworCitkZWYgdGVz
dF9leHBlY3RlZF9zdWJ0ZXN0X2ZhaWx1cmUoY2FwZmQpOgorICAgICMgVGVzdHMgdGhhdCBhbiBl
eHBlY3RlZCBzdWJ0ZXN0IGZhaWx1cmUgZG9lcyBub3QgY2F1c2UgdGhlIHRlc3QgdG8gZmFpbAor
CisgICAgIyBTZXQgdXAgdGhlIGhhbmRsZXIuCisgICAgb3V0cHV0ID0gU3RyaW5nSU8oKQorICAg
IGxvZ2dlciA9IHN0cnVjdHVyZWRsb2cuU3RydWN0dXJlZExvZ2dlcigidGVzdF9hIikKKyAgICBm
b3JtYXR0ZXIgPSBDaHJvbWl1bUZvcm1hdHRlcigpCisgICAgbG9nZ2VyLmFkZF9oYW5kbGVyKGhh
bmRsZXJzLlN0cmVhbUhhbmRsZXIob3V0cHV0LCBmb3JtYXR0ZXIpKQorCisgICAgIyBSdW4gYSB0
ZXN0IHdpdGggc29tZSBleHBlY3RlZCBzdWJ0ZXN0IGZhaWx1cmVzLgorICAgIGxvZ2dlci5zdWl0
ZV9zdGFydChbInQxIl0sIHJ1bl9pbmZvPXt9LCB0aW1lPTEyMykKKyAgICBsb2dnZXIudGVzdF9z
dGFydCgidDEiKQorICAgIGxvZ2dlci50ZXN0X3N0YXR1cygidDEiLCBzdGF0dXM9IkZBSUwiLCBl
eHBlY3RlZD0iRkFJTCIsIHN1YnRlc3Q9InQxX2EiLAorICAgICAgICAgICAgICAgICAgICAgICBt
ZXNzYWdlPSJ0MV9hX21lc3NhZ2UiKQorICAgIGxvZ2dlci50ZXN0X3N0YXR1cygidDEiLCBzdGF0
dXM9IlBBU1MiLCBzdWJ0ZXN0PSJ0MV9iIiwKKyAgICAgICAgICAgICAgICAgICAgICAgbWVzc2Fn
ZT0idDFfYl9tZXNzYWdlIikKKyAgICBsb2dnZXIudGVzdF9zdGF0dXMoInQxIiwgc3RhdHVzPSJU
SU1FT1VUIiwgZXhwZWN0ZWQ9IlRJTUVPVVQiLCBzdWJ0ZXN0PSJ0MV9jIiwKKyAgICAgICAgICAg
ICAgICAgICAgICAgbWVzc2FnZT0idDFfY19tZXNzYWdlIikKKworICAgICMgVGhlIHN1YnRlc3Qg
ZmFpbHVyZXMgYXJlIGFsbCBleHBlY3RlZCBzbyB0aGlzIHRlc3Qgc2hvdWxkIG5vdCBiZSBhZGRl
ZCB0bworICAgICMgdGhlIHNldCBvZiB0ZXN0cyB3aXRoIHN1YnRlc3QgZmFpbHVyZXMuCisgICAg
YXNzZXJ0ICJ0MSIgbm90IGluIGZvcm1hdHRlci50ZXN0c193aXRoX3N1YnRlc3RfZmFpbHMKKwor
ICAgICMgVGhlIHRlc3Qgc3RhdHVzIGlzIHJlcG9ydGVkIGFzIGEgcGFzcyBoZXJlIGJlY2F1c2Ug
dGhlIGhhcm5lc3Mgd2FzIGFibGUgdG8KKyAgICAjIHJ1biB0aGUgdGVzdCB0byBjb21wbGV0aW9u
LgorICAgIGxvZ2dlci50ZXN0X2VuZCgidDEiLCBzdGF0dXM9IlBBU1MiLCBleHBlY3RlZD0iUEFT
UyIpCisgICAgbG9nZ2VyLnN1aXRlX2VuZCgpCisKKyAgICAjIGNoZWNrIG5vdGhpbmcgZ290IG91
dHB1dCB0byBzdGRvdXQvc3RkZXJyCisgICAgIyAobm90ZSB0aGF0IG1vemxvZyBvdXRwdXRzIGV4
Y2VwdGlvbnMgZHVyaW5nIGhhbmRsaW5nIHRvIHN0ZGVyciEpCisgICAgY2FwdHVyZWQgPSBjYXBm
ZC5yZWFkb3V0ZXJyKCkKKyAgICBhc3NlcnQgY2FwdHVyZWQub3V0ID09ICIiCisgICAgYXNzZXJ0
IGNhcHR1cmVkLmVyciA9PSAiIgorCisgICAgIyBjaGVjayB0aGUgYWN0dWFsIG91dHB1dCBvZiB0
aGUgZm9ybWF0dGVyCisgICAgb3V0cHV0LnNlZWsoMCkKKyAgICBvdXRwdXRfanNvbiA9IGpzb24u
bG9hZChvdXRwdXQpCisKKyAgICB0ZXN0X29iaiA9IG91dHB1dF9qc29uWyJ0ZXN0cyJdWyJ0MSJd
CisgICAgdDFfbG9nID0gdGVzdF9vYmpbImFydGlmYWN0cyJdWyJsb2ciXQorICAgIGFzc2VydCB0
MV9sb2cgPT0gIltGQUlMXSB0MV9hOiB0MV9hX21lc3NhZ2VcbiIgXAorICAgICAgICAgICAgICAg
ICAgICAgIltQQVNTXSB0MV9iOiB0MV9iX21lc3NhZ2VcbiIgXAorICAgICAgICAgICAgICAgICAg
ICAgIltUSU1FT1VUXSB0MV9jOiB0MV9jX21lc3NhZ2VcbiIKKyAgICAjIFRoZSBzdGF0dXMgb2Yg
dGhlIHRlc3QgaW4gdGhlIG91dHB1dCBpcyBhIHBhc3MgYmVjYXVzZSB0aGUgc3VidGVzdAorICAg
ICMgZmFpbHVyZXMgd2VyZSBhbGwgZXhwZWN0ZWQuCisgICAgYXNzZXJ0IHRlc3Rfb2JqWyJhY3R1
YWwiXSA9PSAiUEFTUyIKKworCitkZWYgdGVzdF91bmV4cGVjdGVkX3N1YnRlc3RfcGFzcyhjYXBm
ZCk6CisgICAgIyBBIHN1YnRlc3QgdGhhdCB1bmV4cGVjdGVkbHkgcGFzc2VzIGlzIGNvbnNpZGVy
ZWQgYSBmYWlsdXJlIGNvbmRpdGlvbi4KKworICAgICMgU2V0IHVwIHRoZSBoYW5kbGVyLgorICAg
IG91dHB1dCA9IFN0cmluZ0lPKCkKKyAgICBsb2dnZXIgPSBzdHJ1Y3R1cmVkbG9nLlN0cnVjdHVy
ZWRMb2dnZXIoInRlc3RfYSIpCisgICAgZm9ybWF0dGVyID0gQ2hyb21pdW1Gb3JtYXR0ZXIoKQor
ICAgIGxvZ2dlci5hZGRfaGFuZGxlcihoYW5kbGVycy5TdHJlYW1IYW5kbGVyKG91dHB1dCwgZm9y
bWF0dGVyKSkKKworICAgICMgUnVuIGEgdGVzdCB3aXRoIGEgc3VidGVzdCB0aGF0IGlzIGV4cGVj
dGVkIHRvIGZhaWwgYnV0IHBhc3Nlcy4KKyAgICBsb2dnZXIuc3VpdGVfc3RhcnQoWyJ0MSJdLCBy
dW5faW5mbz17fSwgdGltZT0xMjMpCisgICAgbG9nZ2VyLnRlc3Rfc3RhcnQoInQxIikKKyAgICBs
b2dnZXIudGVzdF9zdGF0dXMoInQxIiwgc3RhdHVzPSJQQVNTIiwgZXhwZWN0ZWQ9IkZBSUwiLCBz
dWJ0ZXN0PSJ0MV9hIiwKKyAgICAgICAgICAgICAgICAgICAgICAgbWVzc2FnZT0idDFfYV9tZXNz
YWdlIikKKworICAgICMgU2luY2UgdGhlIHN1YnRlc3QgYmVoYXZpb3VyIGlzIHVuZXhwZWN0ZWQs
IGl0J3MgY29uc2lkZXJlZCBhIGZhaWx1cmUsIHNvCisgICAgIyB0aGUgdGVzdCBzaG91bGQgYmUg
YWRkZWQgdG8gdGhlIHNldCBvZiB0ZXN0cyB3aXRoIHN1YnRlc3QgZmFpbHVyZXMuCisgICAgYXNz
ZXJ0ICJ0MSIgaW4gZm9ybWF0dGVyLnRlc3RzX3dpdGhfc3VidGVzdF9mYWlscworCisgICAgIyBU
aGUgdGVzdCBzdGF0dXMgaXMgcmVwb3J0ZWQgYXMgYSBwYXNzIGhlcmUgYmVjYXVzZSB0aGUgaGFy
bmVzcyB3YXMgYWJsZSB0bworICAgICMgcnVuIHRoZSB0ZXN0IHRvIGNvbXBsZXRpb24uCisgICAg
bG9nZ2VyLnRlc3RfZW5kKCJ0MSIsIHN0YXR1cz0iUEFTUyIsIGV4cGVjdGVkPSJQQVNTIikKKyAg
ICBsb2dnZXIuc3VpdGVfZW5kKCkKKworICAgICMgY2hlY2sgbm90aGluZyBnb3Qgb3V0cHV0IHRv
IHN0ZG91dC9zdGRlcnIKKyAgICAjIChub3RlIHRoYXQgbW96bG9nIG91dHB1dHMgZXhjZXB0aW9u
cyBkdXJpbmcgaGFuZGxpbmcgdG8gc3RkZXJyISkKKyAgICBjYXB0dXJlZCA9IGNhcGZkLnJlYWRv
dXRlcnIoKQorICAgIGFzc2VydCBjYXB0dXJlZC5vdXQgPT0gIiIKKyAgICBhc3NlcnQgY2FwdHVy
ZWQuZXJyID09ICIiCisKKyAgICAjIGNoZWNrIHRoZSBhY3R1YWwgb3V0cHV0IG9mIHRoZSBmb3Jt
YXR0ZXIKKyAgICBvdXRwdXQuc2VlaygwKQorICAgIG91dHB1dF9qc29uID0ganNvbi5sb2FkKG91
dHB1dCkKKworICAgIHRlc3Rfb2JqID0gb3V0cHV0X2pzb25bInRlc3RzIl1bInQxIl0KKyAgICB0
MV9sb2cgPSB0ZXN0X29ialsiYXJ0aWZhY3RzIl1bImxvZyJdCisgICAgYXNzZXJ0IHQxX2xvZyA9
PSAiW1BBU1MgZXhwZWN0ZWQgRkFJTF0gdDFfYTogdDFfYV9tZXNzYWdlXG4iCisgICAgIyBTaW5j
ZSB0aGUgc3VidGVzdCBzdGF0dXMgaXMgdW5leHBlY3RlZCwgd2UgZmFpbCB0aGUgdGVzdC4KKyAg
ICBhc3NlcnQgdGVzdF9vYmpbImFjdHVhbCJdID09ICJGQUlMIgorICAgICMgQWxzbyBlbnN1cmUg
dGhhdCB0aGUgZm9ybWF0dGVyIGNsZWFuZWQgdXAgaXRzIGludGVybmFsIHN0YXRlCisgICAgYXNz
ZXJ0ICJ0MSIgbm90IGluIGZvcm1hdHRlci50ZXN0c193aXRoX3N1YnRlc3RfZmFpbHMKKworCitk
ZWYgdGVzdF9leHBlY3RlZF90ZXN0X2ZhaWwoY2FwZmQpOgorICAgICMgQ2hlY2sgdGhhdCBhbiBl
eHBlY3RlZCB0ZXN0LWxldmVsIGZhaWx1cmUgaXMgdHJlYXRlZCBhcyBhIFBhc3MKKworICAgICMg
U2V0IHVwIHRoZSBoYW5kbGVyLgorICAgIG91dHB1dCA9IFN0cmluZ0lPKCkKKyAgICBsb2dnZXIg
PSBzdHJ1Y3R1cmVkbG9nLlN0cnVjdHVyZWRMb2dnZXIoInRlc3RfYSIpCisgICAgbG9nZ2VyLmFk
ZF9oYW5kbGVyKGhhbmRsZXJzLlN0cmVhbUhhbmRsZXIob3V0cHV0LCBDaHJvbWl1bUZvcm1hdHRl
cigpKSkKKworICAgICMgUnVuIHNvbWUgdGVzdHMgd2l0aCBkaWZmZXJlbnQgc3RhdHVzZXM6IDMg
cGFzc2VzLCAxIHRpbWVvdXQKKyAgICBsb2dnZXIuc3VpdGVfc3RhcnQoWyJ0MSJdLCBydW5faW5m
bz17fSwgdGltZT0xMjMpCisgICAgbG9nZ2VyLnRlc3Rfc3RhcnQoInQxIikKKyAgICBsb2dnZXIu
dGVzdF9lbmQoInQxIiwgc3RhdHVzPSJFUlJPUiIsIGV4cGVjdGVkPSJFUlJPUiIpCisgICAgbG9n
Z2VyLnN1aXRlX2VuZCgpCisKKyAgICAjIGNoZWNrIG5vdGhpbmcgZ290IG91dHB1dCB0byBzdGRv
dXQvc3RkZXJyCisgICAgIyAobm90ZSB0aGF0IG1vemxvZyBvdXRwdXRzIGV4Y2VwdGlvbnMgZHVy
aW5nIGhhbmRsaW5nIHRvIHN0ZGVyciEpCisgICAgY2FwdHVyZWQgPSBjYXBmZC5yZWFkb3V0ZXJy
KCkKKyAgICBhc3NlcnQgY2FwdHVyZWQub3V0ID09ICIiCisgICAgYXNzZXJ0IGNhcHR1cmVkLmVy
ciA9PSAiIgorCisgICAgIyBjaGVjayB0aGUgYWN0dWFsIG91dHB1dCBvZiB0aGUgZm9ybWF0dGVy
CisgICAgb3V0cHV0LnNlZWsoMCkKKyAgICBvdXRwdXRfanNvbiA9IGpzb24ubG9hZChvdXRwdXQp
CisKKyAgICB0ZXN0X29iaiA9IG91dHB1dF9qc29uWyJ0ZXN0cyJdWyJ0MSJdCisgICAgIyBUaGUg
dGVzdCdzIGFjdHVhbCBhbmQgZXhwZWN0ZWQgc3RhdHVzIHNob3VsZCBtYXAgZnJvbSAiRVJST1Ii
IHRvICJGQUlMIgorICAgIGFzc2VydCB0ZXN0X29ialsiYWN0dWFsIl0gPT0gIkZBSUwiCisgICAg
YXNzZXJ0IHRlc3Rfb2JqWyJleHBlY3RlZCJdID09ICJGQUlMIgorICAgICMgLi5hbmQgdGhpcyB0
ZXN0IHNob3VsZCBub3QgYmUgYSByZWdyZXNzaW9uIG5vciB1bmV4cGVjdGVkCisgICAgYXNzZXJ0
ICJpc19yZWdyZXNzaW9uIiBub3QgaW4gdGVzdF9vYmoKKyAgICBhc3NlcnQgImlzX3VuZXhwZWN0
ZWQiIG5vdCBpbiB0ZXN0X29iagorCisKK2RlZiB0ZXN0X3VuZXhwZWN0ZWRfdGVzdF9mYWlsKGNh
cGZkKToKKyAgICAjIENoZWNrIHRoYXQgYW4gdW5leHBlY3RlZCB0ZXN0LWxldmVsIGZhaWx1cmUg
aXMgbWFya2VkIGFzIHVuZXhwZWN0ZWQgYW5kCisgICAgIyBhcyBhIHJlZ3Jlc3Npb24uCisKKyAg
ICAjIFNldCB1cCB0aGUgaGFuZGxlci4KKyAgICBvdXRwdXQgPSBTdHJpbmdJTygpCisgICAgbG9n
Z2VyID0gc3RydWN0dXJlZGxvZy5TdHJ1Y3R1cmVkTG9nZ2VyKCJ0ZXN0X2EiKQorICAgIGxvZ2dl
ci5hZGRfaGFuZGxlcihoYW5kbGVycy5TdHJlYW1IYW5kbGVyKG91dHB1dCwgQ2hyb21pdW1Gb3Jt
YXR0ZXIoKSkpCisKKyAgICAjIFJ1biBzb21lIHRlc3RzIHdpdGggZGlmZmVyZW50IHN0YXR1c2Vz
OiAzIHBhc3NlcywgMSB0aW1lb3V0CisgICAgbG9nZ2VyLnN1aXRlX3N0YXJ0KFsidDEiXSwgcnVu
X2luZm89e30sIHRpbWU9MTIzKQorICAgIGxvZ2dlci50ZXN0X3N0YXJ0KCJ0MSIpCisgICAgbG9n
Z2VyLnRlc3RfZW5kKCJ0MSIsIHN0YXR1cz0iRVJST1IiLCBleHBlY3RlZD0iT0siKQorICAgIGxv
Z2dlci5zdWl0ZV9lbmQoKQorCisgICAgIyBjaGVjayBub3RoaW5nIGdvdCBvdXRwdXQgdG8gc3Rk
b3V0L3N0ZGVycgorICAgICMgKG5vdGUgdGhhdCBtb3psb2cgb3V0cHV0cyBleGNlcHRpb25zIGR1
cmluZyBoYW5kbGluZyB0byBzdGRlcnIhKQorICAgIGNhcHR1cmVkID0gY2FwZmQucmVhZG91dGVy
cigpCisgICAgYXNzZXJ0IGNhcHR1cmVkLm91dCA9PSAiIgorICAgIGFzc2VydCBjYXB0dXJlZC5l
cnIgPT0gIiIKKworICAgICMgY2hlY2sgdGhlIGFjdHVhbCBvdXRwdXQgb2YgdGhlIGZvcm1hdHRl
cgorICAgIG91dHB1dC5zZWVrKDApCisgICAgb3V0cHV0X2pzb24gPSBqc29uLmxvYWQob3V0cHV0
KQorCisgICAgdGVzdF9vYmogPSBvdXRwdXRfanNvblsidGVzdHMiXVsidDEiXQorICAgICMgVGhl
IHRlc3QncyBhY3R1YWwgYW5kIGV4cGVjdGVkIHN0YXR1cyBzaG91bGQgYmUgbWFwcGVkLCBFUlJP
Ui0+RkFJTCBhbmQKKyAgICAjIE9LLT5QQVNTCisgICAgYXNzZXJ0IHRlc3Rfb2JqWyJhY3R1YWwi
XSA9PSAiRkFJTCIKKyAgICBhc3NlcnQgdGVzdF9vYmpbImV4cGVjdGVkIl0gPT0gIlBBU1MiCisg
ICAgIyAuLmFuZCB0aGlzIHRlc3Qgc2hvdWxkIG5vdCBiZSBhIHJlZ3Jlc3Npb24gbm9yIHVuZXhw
ZWN0ZWQKKyAgICBhc3NlcnQgdGVzdF9vYmpbImlzX3JlZ3Jlc3Npb24iXSBpcyBUcnVlCisgICAg
YXNzZXJ0IHRlc3Rfb2JqWyJpc191bmV4cGVjdGVkIl0gaXMgVHJ1ZQpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIv
d3B0cnVubmVyL2Zvcm1hdHRlcnMvd3B0cmVwb3J0LnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2Zvcm1hdHRl
cnMvd3B0cmVwb3J0LnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjZkNDQwMWFlNWFhY2Y5ZGIwMjhmOTRlODhiYmZj
YzJiZTMzNzI2YzMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvZm9ybWF0dGVycy93
cHRyZXBvcnQucHkKQEAgLTAsMCArMSwxNzAgQEAKK2ltcG9ydCBqc29uCitpbXBvcnQgcmUKK2lt
cG9ydCBzeXMKKworZnJvbSBtb3psb2cuc3RydWN0dXJlZC5mb3JtYXR0ZXJzLmJhc2UgaW1wb3J0
IEJhc2VGb3JtYXR0ZXIKK2Zyb20gLi5leGVjdXRvcnMuYmFzZSBpbXBvcnQgc3RyaXBfc2VydmVy
CisKKworTE9ORV9TVVJST0dBVEVfUkUgPSByZS5jb21waWxlKHUiW1x1RDgwMC1cdURGRkZdIikK
KworCitkZWYgc3Vycm9nYXRlX3JlcGxhY2VtZW50X3VjczQobWF0Y2gpOgorICAgIHJldHVybiAi
VSsiICsgaGV4KG9yZChtYXRjaC5ncm91cCgpKSlbMjpdCisKKworY2xhc3MgU3Vycm9nYXRlUmVw
bGFjZW1lbnRVY3MyKG9iamVjdCk6CisgICAgZGVmIF9faW5pdF9fKHNlbGYpOgorICAgICAgICBz
ZWxmLnNraXAgPSBGYWxzZQorCisgICAgZGVmIF9fY2FsbF9fKHNlbGYsIG1hdGNoKToKKyAgICAg
ICAgY2hhciA9IG1hdGNoLmdyb3VwKCkKKworICAgICAgICBpZiBzZWxmLnNraXA6CisgICAgICAg
ICAgICBzZWxmLnNraXAgPSBGYWxzZQorICAgICAgICAgICAgcmV0dXJuIGNoYXIKKworICAgICAg
ICBpc19sb3cgPSAweEQ4MDAgPD0gb3JkKGNoYXIpIDw9IDB4REJGRgorCisgICAgICAgIGVzY2Fw
ZSA9IFRydWUKKyAgICAgICAgaWYgaXNfbG93OgorICAgICAgICAgICAgbmV4dF9pZHggPSBtYXRj
aC5lbmQoKQorICAgICAgICAgICAgaWYgbmV4dF9pZHggPCBsZW4obWF0Y2guc3RyaW5nKToKKyAg
ICAgICAgICAgICAgICBuZXh0X2NoYXIgPSBtYXRjaC5zdHJpbmdbbmV4dF9pZHhdCisgICAgICAg
ICAgICAgICAgaWYgMHhEQzAwIDw9IG9yZChuZXh0X2NoYXIpIDw9IDB4REZGRjoKKyAgICAgICAg
ICAgICAgICAgICAgZXNjYXBlID0gRmFsc2UKKworICAgICAgICBpZiBub3QgZXNjYXBlOgorICAg
ICAgICAgICAgc2VsZi5za2lwID0gVHJ1ZQorICAgICAgICAgICAgcmV0dXJuIGNoYXIKKworICAg
ICAgICByZXR1cm4gIlUrIiArIGhleChvcmQobWF0Y2guZ3JvdXAoKSkpWzI6XQorCisKK2lmIHN5
cy5tYXh1bmljb2RlID09IDB4MTBGRkZGOgorICAgIHN1cnJvZ2F0ZV9yZXBsYWNlbWVudCA9IHN1
cnJvZ2F0ZV9yZXBsYWNlbWVudF91Y3M0CitlbHNlOgorICAgIHN1cnJvZ2F0ZV9yZXBsYWNlbWVu
dCA9IFN1cnJvZ2F0ZVJlcGxhY2VtZW50VWNzMigpCisKKworZGVmIHJlcGxhY2VfbG9uZV9zdXJy
b2dhdGUoZGF0YSk6CisgICAgcmV0dXJuIExPTkVfU1VSUk9HQVRFX1JFLnN1Ym4oc3Vycm9nYXRl
X3JlcGxhY2VtZW50LCBkYXRhKVswXQorCisKK2NsYXNzIFdwdHJlcG9ydEZvcm1hdHRlcihCYXNl
Rm9ybWF0dGVyKToKKyAgICAiIiJGb3JtYXR0ZXIgdGhhdCBwcm9kdWNlcyByZXN1bHRzIGluIHRo
ZSBmb3JtYXQgdGhhdCB3cHRyZXBvcnQgZXhwZWN0cy4iIiIKKworICAgIGRlZiBfX2luaXRfXyhz
ZWxmKToKKyAgICAgICAgc2VsZi5yYXdfcmVzdWx0cyA9IHt9CisgICAgICAgIHNlbGYucmVzdWx0
cyA9IHt9CisKKyAgICBkZWYgc3VpdGVfc3RhcnQoc2VsZiwgZGF0YSk6CisgICAgICAgIGlmICdy
dW5faW5mbycgaW4gZGF0YToKKyAgICAgICAgICAgIHNlbGYucmVzdWx0c1sncnVuX2luZm8nXSA9
IGRhdGFbJ3J1bl9pbmZvJ10KKyAgICAgICAgc2VsZi5yZXN1bHRzWyd0aW1lX3N0YXJ0J10gPSBk
YXRhWyd0aW1lJ10KKyAgICAgICAgc2VsZi5yZXN1bHRzWyJyZXN1bHRzIl0gPSBbXQorCisgICAg
ZGVmIHN1aXRlX2VuZChzZWxmLCBkYXRhKToKKyAgICAgICAgc2VsZi5yZXN1bHRzWyd0aW1lX2Vu
ZCddID0gZGF0YVsndGltZSddCisgICAgICAgIGZvciB0ZXN0X25hbWUgaW4gc2VsZi5yYXdfcmVz
dWx0czoKKyAgICAgICAgICAgIHJlc3VsdCA9IHsidGVzdCI6IHRlc3RfbmFtZX0KKyAgICAgICAg
ICAgIHJlc3VsdC51cGRhdGUoc2VsZi5yYXdfcmVzdWx0c1t0ZXN0X25hbWVdKQorICAgICAgICAg
ICAgc2VsZi5yZXN1bHRzWyJyZXN1bHRzIl0uYXBwZW5kKHJlc3VsdCkKKyAgICAgICAgcmV0dXJu
IGpzb24uZHVtcHMoc2VsZi5yZXN1bHRzKSArICJcbiIKKworICAgIGRlZiBmaW5kX29yX2NyZWF0
ZV90ZXN0KHNlbGYsIGRhdGEpOgorICAgICAgICB0ZXN0X25hbWUgPSBkYXRhWyJ0ZXN0Il0KKyAg
ICAgICAgaWYgdGVzdF9uYW1lIG5vdCBpbiBzZWxmLnJhd19yZXN1bHRzOgorICAgICAgICAgICAg
c2VsZi5yYXdfcmVzdWx0c1t0ZXN0X25hbWVdID0geworICAgICAgICAgICAgICAgICJzdWJ0ZXN0
cyI6IFtdLAorICAgICAgICAgICAgICAgICJzdGF0dXMiOiAiIiwKKyAgICAgICAgICAgICAgICAi
bWVzc2FnZSI6IE5vbmUKKyAgICAgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHNlbGYucmF3X3Jl
c3VsdHNbdGVzdF9uYW1lXQorCisgICAgZGVmIHRlc3Rfc3RhcnQoc2VsZiwgZGF0YSk6CisgICAg
ICAgIHRlc3QgPSBzZWxmLmZpbmRfb3JfY3JlYXRlX3Rlc3QoZGF0YSkKKyAgICAgICAgdGVzdFsi
c3RhcnRfdGltZSJdID0gZGF0YVsidGltZSJdCisKKyAgICBkZWYgY3JlYXRlX3N1YnRlc3Qoc2Vs
ZiwgZGF0YSk6CisgICAgICAgIHRlc3QgPSBzZWxmLmZpbmRfb3JfY3JlYXRlX3Rlc3QoZGF0YSkK
KyAgICAgICAgc3VidGVzdF9uYW1lID0gcmVwbGFjZV9sb25lX3N1cnJvZ2F0ZShkYXRhWyJzdWJ0
ZXN0Il0pCisKKyAgICAgICAgc3VidGVzdCA9IHsKKyAgICAgICAgICAgICJuYW1lIjogc3VidGVz
dF9uYW1lLAorICAgICAgICAgICAgInN0YXR1cyI6ICIiLAorICAgICAgICAgICAgIm1lc3NhZ2Ui
OiBOb25lCisgICAgICAgIH0KKyAgICAgICAgdGVzdFsic3VidGVzdHMiXS5hcHBlbmQoc3VidGVz
dCkKKworICAgICAgICByZXR1cm4gc3VidGVzdAorCisgICAgZGVmIHRlc3Rfc3RhdHVzKHNlbGYs
IGRhdGEpOgorICAgICAgICBzdWJ0ZXN0ID0gc2VsZi5jcmVhdGVfc3VidGVzdChkYXRhKQorICAg
ICAgICBzdWJ0ZXN0WyJzdGF0dXMiXSA9IGRhdGFbInN0YXR1cyJdCisgICAgICAgIGlmICJleHBl
Y3RlZCIgaW4gZGF0YToKKyAgICAgICAgICAgIHN1YnRlc3RbImV4cGVjdGVkIl0gPSBkYXRhWyJl
eHBlY3RlZCJdCisgICAgICAgIGlmICJrbm93bl9pbnRlcm1pdHRlbnQiIGluIGRhdGE6CisgICAg
ICAgICAgICBzdWJ0ZXN0WyJrbm93bl9pbnRlcm1pdHRlbnQiXSA9IGRhdGFbImtub3duX2ludGVy
bWl0dGVudCJdCisgICAgICAgIGlmICJtZXNzYWdlIiBpbiBkYXRhOgorICAgICAgICAgICAgc3Vi
dGVzdFsibWVzc2FnZSJdID0gcmVwbGFjZV9sb25lX3N1cnJvZ2F0ZShkYXRhWyJtZXNzYWdlIl0p
CisKKyAgICBkZWYgdGVzdF9lbmQoc2VsZiwgZGF0YSk6CisgICAgICAgIHRlc3QgPSBzZWxmLmZp
bmRfb3JfY3JlYXRlX3Rlc3QoZGF0YSkKKyAgICAgICAgc3RhcnRfdGltZSA9IHRlc3QucG9wKCJz
dGFydF90aW1lIikKKyAgICAgICAgdGVzdFsiZHVyYXRpb24iXSA9IGRhdGFbInRpbWUiXSAtIHN0
YXJ0X3RpbWUKKyAgICAgICAgdGVzdFsic3RhdHVzIl0gPSBkYXRhWyJzdGF0dXMiXQorICAgICAg
ICBpZiAiZXhwZWN0ZWQiIGluIGRhdGE6CisgICAgICAgICAgICB0ZXN0WyJleHBlY3RlZCJdID0g
ZGF0YVsiZXhwZWN0ZWQiXQorICAgICAgICBpZiAia25vd25faW50ZXJtaXR0ZW50IiBpbiBkYXRh
OgorICAgICAgICAgICAgdGVzdFsia25vd25faW50ZXJtaXR0ZW50Il0gPSBkYXRhWyJrbm93bl9p
bnRlcm1pdHRlbnQiXQorICAgICAgICBpZiAibWVzc2FnZSIgaW4gZGF0YToKKyAgICAgICAgICAg
IHRlc3RbIm1lc3NhZ2UiXSA9IHJlcGxhY2VfbG9uZV9zdXJyb2dhdGUoZGF0YVsibWVzc2FnZSJd
KQorICAgICAgICBpZiAicmVmdGVzdF9zY3JlZW5zaG90cyIgaW4gZGF0YS5nZXQoImV4dHJhIiwg
e30pOgorICAgICAgICAgICAgdGVzdFsic2NyZWVuc2hvdHMiXSA9IHsKKyAgICAgICAgICAgICAg
ICBzdHJpcF9zZXJ2ZXIoaXRlbVsidXJsIl0pOiAic2hhMToiICsgaXRlbVsiaGFzaCJdCisgICAg
ICAgICAgICAgICAgZm9yIGl0ZW0gaW4gZGF0YVsiZXh0cmEiXVsicmVmdGVzdF9zY3JlZW5zaG90
cyJdCisgICAgICAgICAgICAgICAgaWYgdHlwZShpdGVtKSA9PSBkaWN0CisgICAgICAgICAgICB9
CisgICAgICAgIHRlc3RfbmFtZSA9IGRhdGFbInRlc3QiXQorICAgICAgICByZXN1bHQgPSB7InRl
c3QiOiBkYXRhWyJ0ZXN0Il19CisgICAgICAgIHJlc3VsdC51cGRhdGUoc2VsZi5yYXdfcmVzdWx0
c1t0ZXN0X25hbWVdKQorICAgICAgICBzZWxmLnJlc3VsdHNbInJlc3VsdHMiXS5hcHBlbmQocmVz
dWx0KQorICAgICAgICBzZWxmLnJhd19yZXN1bHRzLnBvcCh0ZXN0X25hbWUpCisKKyAgICBkZWYg
YXNzZXJ0aW9uX2NvdW50KHNlbGYsIGRhdGEpOgorICAgICAgICB0ZXN0ID0gc2VsZi5maW5kX29y
X2NyZWF0ZV90ZXN0KGRhdGEpCisgICAgICAgIHRlc3RbImFzc2VydHMiXSA9IHsKKyAgICAgICAg
ICAgICJjb3VudCI6IGRhdGFbImNvdW50Il0sCisgICAgICAgICAgICAibWluIjogZGF0YVsibWlu
X2V4cGVjdGVkIl0sCisgICAgICAgICAgICAibWF4IjogZGF0YVsibWF4X2V4cGVjdGVkIl0KKyAg
ICAgICAgfQorCisgICAgZGVmIGxzYW5fbGVhayhzZWxmLCBkYXRhKToKKyAgICAgICAgaWYgImxz
YW5fbGVha3MiIG5vdCBpbiBzZWxmLnJlc3VsdHM6CisgICAgICAgICAgICBzZWxmLnJlc3VsdHNb
ImxzYW5fbGVha3MiXSA9IFtdCisgICAgICAgIGxzYW5fbGVha3MgPSBzZWxmLnJlc3VsdHNbImxz
YW5fbGVha3MiXQorICAgICAgICBsc2FuX2xlYWtzLmFwcGVuZCh7ImZyYW1lcyI6IGRhdGFbImZy
YW1lcyJdLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgInNjb3BlIjogZGF0YVsic2NvcGUi
XSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICJhbGxvd2VkX21hdGNoIjogZGF0YS5nZXQo
ImFsbG93ZWRfbWF0Y2giKX0pCisKKyAgICBkZWYgZmluZF9vcl9jcmVhdGVfbW96bGVhayhzZWxm
LCBkYXRhKToKKyAgICAgICAgaWYgIm1vemxlYWsiIG5vdCBpbiBzZWxmLnJlc3VsdHM6CisgICAg
ICAgICAgICBzZWxmLnJlc3VsdHNbIm1vemxlYWsiXSA9IHt9CisgICAgICAgIHNjb3BlID0gZGF0
YVsic2NvcGUiXQorICAgICAgICBpZiBzY29wZSBub3QgaW4gc2VsZi5yZXN1bHRzWyJtb3psZWFr
Il06CisgICAgICAgICAgICBzZWxmLnJlc3VsdHNbIm1vemxlYWsiXVtzY29wZV0gPSB7Im9iamVj
dHMiOiBbXSwgInRvdGFsIjogW119CisgICAgICAgIHJldHVybiBzZWxmLnJlc3VsdHNbIm1vemxl
YWsiXVtzY29wZV0KKworICAgIGRlZiBtb3psZWFrX29iamVjdChzZWxmLCBkYXRhKToKKyAgICAg
ICAgc2NvcGVfZGF0YSA9IHNlbGYuZmluZF9vcl9jcmVhdGVfbW96bGVhayhkYXRhKQorICAgICAg
ICBzY29wZV9kYXRhWyJvYmplY3RzIl0uYXBwZW5kKHsicHJvY2VzcyI6IGRhdGFbInByb2Nlc3Mi
XSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIm5hbWUiOiBkYXRhWyJu
YW1lIl0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJhbGxvd2VkIjog
ZGF0YS5nZXQoImFsbG93ZWQiLCBGYWxzZSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICJieXRlcyI6IGRhdGFbImJ5dGVzIl19KQorCisgICAgZGVmIG1vemxlYWtfdG90
YWwoc2VsZiwgZGF0YSk6CisgICAgICAgIHNjb3BlX2RhdGEgPSBzZWxmLmZpbmRfb3JfY3JlYXRl
X21vemxlYWsoZGF0YSkKKyAgICAgICAgc2NvcGVfZGF0YVsidG90YWwiXS5hcHBlbmQoeyJieXRl
cyI6IGRhdGFbImJ5dGVzIl0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAi
dGhyZXNob2xkIjogZGF0YS5nZXQoInRocmVzaG9sZCIsIDApLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgInByb2Nlc3MiOiBkYXRhWyJwcm9jZXNzIl19KQpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRy
dW5uZXIvd3B0cnVubmVyL2Zvcm1hdHRlcnMvd3B0c2NyZWVuc2hvdC5weSBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5l
ci9mb3JtYXR0ZXJzL3dwdHNjcmVlbnNob3QucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjg1NGQ5NWI5ZDA0Nzkw
NDEzMDQ4NTg0NTZjYTNlYWMxOTIzMjU1ZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5l
ci9mb3JtYXR0ZXJzL3dwdHNjcmVlbnNob3QucHkKQEAgLTAsMCArMSw0NyBAQAoraW1wb3J0IHJl
cXVlc3RzCitmcm9tIG1vemxvZy5zdHJ1Y3R1cmVkLmZvcm1hdHRlcnMuYmFzZSBpbXBvcnQgQmFz
ZUZvcm1hdHRlcgorCitERUZBVUxUX0FQSSA9ICJodHRwczovL3dwdC5meWkvYXBpL3NjcmVlbnNo
b3RzL2hhc2hlcyIKKworCitjbGFzcyBXcHRzY3JlZW5zaG90Rm9ybWF0dGVyKEJhc2VGb3JtYXR0
ZXIpOgorICAgICIiIkZvcm1hdHRlciB0aGF0IG91dHB1dHMgc2NyZWVuc2hvdHMgaW4gdGhlIGZv
cm1hdCBleHBlY3RlZCBieSB3cHQuZnlpLiIiIgorCisgICAgZGVmIF9faW5pdF9fKHNlbGYsIGFw
aT1Ob25lKToKKyAgICAgICAgc2VsZi5hcGkgPSBhcGkgb3IgREVGQVVMVF9BUEkKKyAgICAgICAg
c2VsZi5jYWNoZSA9IHNldCgpCisKKyAgICBkZWYgc3VpdGVfc3RhcnQoc2VsZiwgZGF0YSk6Cisg
ICAgICAgICMgVE9ETyhIZXhjbGVzKTogV2UgbWlnaHQgd2FudCB0byBtb3ZlIHRoZSByZXF1ZXN0
IGludG8gYSBkaWZmZXJlbnQKKyAgICAgICAgIyBwbGFjZSwgbWFrZSBpdCBub24tYmxvY2tpbmcs
IGFuZCBoYW5kbGUgZXJyb3JzIGJldHRlci4KKyAgICAgICAgcGFyYW1zID0ge30KKyAgICAgICAg
cnVuX2luZm8gPSBkYXRhLmdldCgicnVuX2luZm8iLCB7fSkKKyAgICAgICAgaWYgInByb2R1Y3Qi
IGluIHJ1bl9pbmZvOgorICAgICAgICAgICAgcGFyYW1zWyJicm93c2VyIl0gPSBydW5faW5mb1si
cHJvZHVjdCJdCisgICAgICAgIGlmICJicm93c2VyX3ZlcnNpb24iIGluIHJ1bl9pbmZvOgorICAg
ICAgICAgICAgcGFyYW1zWyJicm93c2VyX3ZlcnNpb24iXSA9IHJ1bl9pbmZvWyJicm93c2VyX3Zl
cnNpb24iXQorICAgICAgICBpZiAib3MiIGluIHJ1bl9pbmZvOgorICAgICAgICAgICAgcGFyYW1z
WyJvcyJdID0gcnVuX2luZm9bIm9zIl0KKyAgICAgICAgaWYgIm9zX3ZlcnNpb24iIGluIHJ1bl9p
bmZvOgorICAgICAgICAgICAgcGFyYW1zWyJvc192ZXJzaW9uIl0gPSBydW5faW5mb1sib3NfdmVy
c2lvbiJdCisgICAgICAgIHRyeToKKyAgICAgICAgICAgIHIgPSByZXF1ZXN0cy5nZXQoc2VsZi5h
cGksIHBhcmFtcz1wYXJhbXMpCisgICAgICAgICAgICByLnJhaXNlX2Zvcl9zdGF0dXMoKQorICAg
ICAgICAgICAgc2VsZi5jYWNoZSA9IHNldChyLmpzb24oKSkKKyAgICAgICAgZXhjZXB0IChyZXF1
ZXN0cy5leGNlcHRpb25zLlJlcXVlc3RFeGNlcHRpb24sIFZhbHVlRXJyb3IpOgorICAgICAgICAg
ICAgcGFzcworCisgICAgZGVmIHRlc3RfZW5kKHNlbGYsIGRhdGEpOgorICAgICAgICBpZiAicmVm
dGVzdF9zY3JlZW5zaG90cyIgbm90IGluIGRhdGEuZ2V0KCJleHRyYSIsIHt9KToKKyAgICAgICAg
ICAgIHJldHVybgorICAgICAgICBvdXRwdXQgPSAiIgorICAgICAgICBmb3IgaXRlbSBpbiBkYXRh
WyJleHRyYSJdWyJyZWZ0ZXN0X3NjcmVlbnNob3RzIl06CisgICAgICAgICAgICBpZiB0eXBlKGl0
ZW0pICE9IGRpY3Q6CisgICAgICAgICAgICAgICAgIyBTa2lwIHRoZSByZWxhdGlvbiBzdHJpbmcu
CisgICAgICAgICAgICAgICAgY29udGludWUKKyAgICAgICAgICAgIGNoZWNrc3VtID0gInNoYTE6
IiArIGl0ZW1bImhhc2giXQorICAgICAgICAgICAgaWYgY2hlY2tzdW0gaW4gc2VsZi5jYWNoZToK
KyAgICAgICAgICAgICAgICBjb250aW51ZQorICAgICAgICAgICAgc2VsZi5jYWNoZS5hZGQoY2hl
Y2tzdW0pCisgICAgICAgICAgICBvdXRwdXQgKz0gImRhdGE6aW1hZ2UvcG5nO2Jhc2U2NCx7fVxu
Ii5mb3JtYXQoaXRlbVsic2NyZWVuc2hvdCJdKQorICAgICAgICByZXR1cm4gb3V0cHV0IGlmIG91
dHB1dCBlbHNlIE5vbmUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9tYW5pZmVzdGV4cGVjdGVk
LnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93
cHRydW5uZXIvd3B0cnVubmVyL21hbmlmZXN0ZXhwZWN0ZWQucHkKaW5kZXggODMxZjUzNzhiMzY4
MjNkYjAxMzY3ZDU3ZWY0MGI2MWFhNzBjNmZjZS4uZWFlODViMWY2NjYxYTY3ZGZmNTllZjc4YTll
ZDYyN2UzZTM2MDNkOCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL21hbmlmZXN0ZXhwZWN0ZWQu
cHkKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy93cHRydW5uZXIvd3B0cnVubmVyL21hbmlmZXN0ZXhwZWN0ZWQucHkKQEAgLTEsMTAgKzEsMTEg
QEAKIGltcG9ydCBvcwotaW1wb3J0IHVybHBhcnNlCitmcm9tIHNpeC5tb3Zlcy51cmxsaWIucGFy
c2UgaW1wb3J0IHVybGpvaW4KK2Zyb20gY29sbGVjdGlvbnMgaW1wb3J0IGRlcXVlCiAKLWZyb20g
d3B0bWFuaWZlc3QuYmFja2VuZHMgaW1wb3J0IHN0YXRpYwotZnJvbSB3cHRtYW5pZmVzdC5iYWNr
ZW5kcy5zdGF0aWMgaW1wb3J0IE1hbmlmZXN0SXRlbQorZnJvbSAud3B0bWFuaWZlc3QuYmFja2Vu
ZHMgaW1wb3J0IHN0YXRpYworZnJvbSAud3B0bWFuaWZlc3QuYmFja2VuZHMuYmFzZSBpbXBvcnQg
TWFuaWZlc3RJdGVtCiAKLWltcG9ydCBleHBlY3RlZAorZnJvbSAuIGltcG9ydCBleHBlY3RlZAog
CiAiIiJNYW5pZmVzdCBzdHJ1Y3R1cmUgdXNlZCB0byBzdG9yZSBleHBlY3RlZCByZXN1bHRzIG9m
IGEgdGVzdC4KIApAQCAtNDEsNiArNDIsMTcgQEAgZGVmIGludF9wcm9wKG5hbWUsIG5vZGUpOgog
ICAgICAgICByZXR1cm4gTm9uZQogCiAKK2RlZiBsaXN0X3Byb3AobmFtZSwgbm9kZSk6CisgICAg
IiIiTGlzdCBwcm9wZXJ0eSIiIgorICAgIHRyeToKKyAgICAgICAgbGlzdF9wcm9wID0gbm9kZS5n
ZXQobmFtZSkKKyAgICAgICAgaWYgaXNpbnN0YW5jZShsaXN0X3Byb3AsIGJhc2VzdHJpbmcpOgor
ICAgICAgICAgICAgcmV0dXJuIFtsaXN0X3Byb3BdCisgICAgICAgIHJldHVybiBsaXN0KGxpc3Rf
cHJvcCkKKyAgICBleGNlcHQgS2V5RXJyb3I6CisgICAgICAgIHJldHVybiBbXQorCisKIGRlZiB0
YWdzKG5vZGUpOgogICAgICIiIlNldCBvZiB0YWdzIHRoYXQgaGF2ZSBiZWVuIGFwcGxpZWQgdG8g
dGhlIHRlc3QiIiIKICAgICB0cnk6CkBAIC01NSw4ICs2Nyw5IEBAIGRlZiB0YWdzKG5vZGUpOgog
ZGVmIHByZWZzKG5vZGUpOgogICAgIGRlZiB2YWx1ZShpbmlfdmFsdWUpOgogICAgICAgICBpZiBp
c2luc3RhbmNlKGluaV92YWx1ZSwgKHN0ciwgdW5pY29kZSkpOgotICAgICAgICAgICAgcmV0dXJu
IHR1cGxlKGluaV92YWx1ZS5zcGxpdCgiOiIsIDEpKQorICAgICAgICAgICAgcmV0dXJuIHR1cGxl
KHByZWZfcGllY2Uuc3RyaXAoKSBmb3IgcHJlZl9waWVjZSBpbiBpbmlfdmFsdWUuc3BsaXQoJzon
LCAxKSkKICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICMgdGhpcyBzaG91bGQgYmUgdGhpbmdz
IGxpa2UgQFJlc2V0LCB3aGljaCBhcmUgYXBwYXJlbnRseSB0eXBlICdvYmplY3QnCiAgICAgICAg
ICAgICByZXR1cm4gKGluaV92YWx1ZSwgTm9uZSkKIAogICAgIHRyeToKQEAgLTcwLDkgKzgzLDkg
QEAgZGVmIHByZWZzKG5vZGUpOgogICAgIHJldHVybiBydgogCiAKLWRlZiBsc2FuX2FsbG93ZWQo
bm9kZSk6CitkZWYgc2V0X3Byb3AobmFtZSwgbm9kZSk6CiAgICAgdHJ5OgotICAgICAgICBub2Rl
X2l0ZW1zID0gbm9kZS5nZXQoImxzYW4tYWxsb3dlZCIpCisgICAgICAgIG5vZGVfaXRlbXMgPSBu
b2RlLmdldChuYW1lKQogICAgICAgICBpZiBpc2luc3RhbmNlKG5vZGVfaXRlbXMsIChzdHIsIHVu
aWNvZGUpKToKICAgICAgICAgICAgIHJ2ID0ge25vZGVfaXRlbXN9CiAgICAgICAgIGVsc2U6CkBA
IC04Miw4ICs5NSwxMjEgQEAgZGVmIGxzYW5fYWxsb3dlZChub2RlKToKICAgICByZXR1cm4gcnYK
IAogCitkZWYgbGVha190aHJlc2hvbGQobm9kZSk6CisgICAgcnYgPSB7fQorICAgIHRyeToKKyAg
ICAgICAgbm9kZV9pdGVtcyA9IG5vZGUuZ2V0KCJsZWFrLXRocmVzaG9sZCIpCisgICAgICAgIGlm
IGlzaW5zdGFuY2Uobm9kZV9pdGVtcywgKHN0ciwgdW5pY29kZSkpOgorICAgICAgICAgICAgbm9k
ZV9pdGVtcyA9IFtub2RlX2l0ZW1zXQorICAgICAgICBmb3IgaXRlbSBpbiBub2RlX2l0ZW1zOgor
ICAgICAgICAgICAgcHJvY2VzcywgdmFsdWUgPSBpdGVtLnJzcGxpdCgiOiIsIDEpCisgICAgICAg
ICAgICBydltwcm9jZXNzLnN0cmlwKCldID0gaW50KHZhbHVlLnN0cmlwKCkpCisgICAgZXhjZXB0
IEtleUVycm9yOgorICAgICAgICBwYXNzCisgICAgcmV0dXJuIHJ2CisKKworZGVmIGZ1enp5X3By
b3Aobm9kZSk6CisgICAgIiIiRnV6enkgcmVmdGVzdCBtYXRjaAorCisgICAgVGhpcyBjYW4gZWl0
aGVyIGJlIGEgbGlzdCBvZiBzdHJpbmdzIG9yIGEgc2luZ2xlIHN0cmluZy4gV2hlbiBhIGxpc3Qg
aXMKKyAgICBzdXBwbGllZCwgdGhlIGZvcm1hdCBvZiBlYWNoIGl0ZW0gbWF0Y2hlcyB0aGUgZGVz
Y3JpcHRpb24gYmVsb3cuCisKKyAgICBUaGUgZ2VuZXJhbCBmb3JtYXQgaXMKKyAgICBmdXp6eSA9
IFtrZXkgIjoiXSA8cHJvcD4gIjsiIDxwcm9wPgorICAgIGtleSA9IDx0ZXN0IG5hbWU+IFtyZWZ0
eXBlIDxyZWZlcmVuY2UgbmFtZT5dCisgICAgcmVmdHlwZSA9ICI9PSIgfCAiIT0iCisgICAgcHJv
cCA9IFtwcm9wTmFtZSAiPSIgXSByYW5nZQorICAgIHByb3BOYW1lID0gIm1heERpZmZlcmVuY2Vz
IiB8ICJ0b3RhbFBpeGVscyIKKyAgICByYW5nZSA9IDxkaWdpdHM+IFsiLSIgPGRpZ2l0cz5dCisK
KyAgICBTbyBmb3IgZXhhbXBsZToKKyAgICAgIG1heERpZmZlcmVuY2VzPTEwO3RvdGFsUGl4ZWxz
PTEwLTIwCisKKyAgICAgIHNwZWNpZmllcyB0aGF0IGZvciBhbnkgdGVzdC9yZWYgcGFpciBmb3Ig
d2hpY2ggbm8gb3RoZXIgcnVsZSBpcyBzdXBwbGllZCwKKyAgICAgIHRoZXJlIG11c3QgYmUgYSBt
YXhpbXVtIHBpeGVsIGRpZmZlcmVuY2Ugb2YgZXhhY3RseSAxMCwgYW5kIGJldHdlbiAxMCBhbmQK
KyAgICAgIDIwIHRvdGFsIHBpeGVscyBkaWZmZXJlbnQuCisKKyAgICAgIHRlc3QuaHRtbD09cmVm
Lmh0bToxMDsyMAorCisgICAgICBzcGVjaWZpZXMgdGhhdCBmb3IgYSBlcXVhbGl0eSBjb21wYXJp
c29uIGJldHdlZW4gdGVzdC5odG1sIGFuZCByZWYuaHRtLAorICAgICAgcmVzb2x2ZWQgcmVsYXRp
dmUgdG8gdGhlIHRlc3QgcGF0aCwgdGhlcmUgY2FuIGJlIGEgbWF4aW11bSBkaWZmZXJlbmNlCisg
ICAgICBvZiAxMCBpbiB0aGUgcGl4ZWwgdmFsdWUgZm9yIGFueSBjaGFubmVsIGFuZCAyMCBwaXhl
bHMgdG90YWwgZGlmZmVyZW5jZS4KKworICAgICAgcmVmLmh0bWw6MTA7MjAKKworICAgICAgaXMg
anVzdCBsaWtlIHRoZSBhYm92ZSBidXQgYXBwbGllcyB0byBhbnkgY29tcGFyaXNvbiBpbnZvbHZp
bmcgcmVmLmh0bWwKKyAgICAgIG9uIHRoZSByaWdodCBoYW5kIHNpZGUuCisKKyAgICBUaGUgcmV0
dXJuIGZvcm1hdCBpcyBbKGtleSwgKG1heERpZmZlcmVuY2VSYW5nZSwgdG90YWxQaXhlbHNSYW5n
ZSkpXSwgd2hlcmUKKyAgICB0aGUga2V5IGlzIGVpdGhlciBOb25lIHdoZXJlIG5vIHNwZWNpZmlj
IHJlZmVyZW5jZSBpcyBzcGVjaWZpZWQsIHRoZSByZWZlcmVuY2UKKyAgICBuYW1lIHdoZXJlIHRo
ZXJlIGlzIG9ubHkgb25lIGNvbXBvbmVudCBvciBhIHR1cGxlICh0ZXN0LCByZWYsIHJlZnR5cGUp
IHdoZW4gdGhlCisgICAgZXhhY3QgY29tcGFyaXNvbiBpcyBzcGVjaWZpZWQuIG1heERpZmZlcmVu
Y2VSYW5nZSBhbmQgdG90YWxQaXhlbHNSYW5nZSBhcmUgdHVwbGVzCisgICAgb2YgaW50ZWdlcnMg
aW5kaWNhdGluZyB0aGUgaW5jbHVzaXZlIHJhbmdlIG9mIGFsbG93ZWQgdmFsdWVzLgorIiIiCisg
ICAgcnYgPSBbXQorICAgIGFyZ3MgPSBbIm1heERpZmZlcmVuY2UiLCAidG90YWxQaXhlbHMiXQor
ICAgIHRyeToKKyAgICAgICAgdmFsdWUgPSBub2RlLmdldCgiZnV6enkiKQorICAgIGV4Y2VwdCBL
ZXlFcnJvcjoKKyAgICAgICAgcmV0dXJuIHJ2CisgICAgaWYgbm90IGlzaW5zdGFuY2UodmFsdWUs
IGxpc3QpOgorICAgICAgICB2YWx1ZSA9IFt2YWx1ZV0KKyAgICBmb3IgaXRlbSBpbiB2YWx1ZToK
KyAgICAgICAgaWYgbm90IGlzaW5zdGFuY2UoaXRlbSwgKHN0ciwgdW5pY29kZSkpOgorICAgICAg
ICAgICAgcnYuYXBwZW5kKGl0ZW0pCisgICAgICAgICAgICBjb250aW51ZQorICAgICAgICBwYXJ0
cyA9IGl0ZW0ucnNwbGl0KCI6IiwgMSkKKyAgICAgICAgaWYgbGVuKHBhcnRzKSA9PSAxOgorICAg
ICAgICAgICAga2V5ID0gTm9uZQorICAgICAgICAgICAgZnV6enlfdmFsdWVzID0gcGFydHNbMF0K
KyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIGtleSwgZnV6enlfdmFsdWVzID0gcGFydHMKKyAg
ICAgICAgICAgIGZvciByZWZ0eXBlIGluIFsiPT0iLCAiIT0iXToKKyAgICAgICAgICAgICAgICBp
ZiByZWZ0eXBlIGluIGtleToKKyAgICAgICAgICAgICAgICAgICAga2V5ID0ga2V5LnNwbGl0KHJl
ZnR5cGUpCisgICAgICAgICAgICAgICAgICAgIGtleS5hcHBlbmQocmVmdHlwZSkKKyAgICAgICAg
ICAgICAgICAgICAga2V5ID0gdHVwbGUoa2V5KQorICAgICAgICByYW5nZXMgPSBmdXp6eV92YWx1
ZXMuc3BsaXQoIjsiKQorICAgICAgICBpZiBsZW4ocmFuZ2VzKSAhPSAyOgorICAgICAgICAgICAg
cmFpc2UgVmFsdWVFcnJvcigiTWFsZm9ybWVkIGZ1enp5IHZhbHVlICVzIiAlIGl0ZW0pCisgICAg
ICAgIGFyZ192YWx1ZXMgPSB7Tm9uZTogZGVxdWUoKX0KKyAgICAgICAgZm9yIHJhbmdlX3N0cl92
YWx1ZSBpbiByYW5nZXM6CisgICAgICAgICAgICBpZiAiPSIgaW4gcmFuZ2Vfc3RyX3ZhbHVlOgor
ICAgICAgICAgICAgICAgIG5hbWUsIHJhbmdlX3N0cl92YWx1ZSA9IFtwYXJ0LnN0cmlwKCkKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yIHBhcnQgaW4gcmFuZ2Vf
c3RyX3ZhbHVlLnNwbGl0KCI9IiwgMSldCisgICAgICAgICAgICAgICAgaWYgbmFtZSBub3QgaW4g
YXJnczoKKyAgICAgICAgICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigiJXMgaXMgbm90IGEg
dmFsaWQgZnV6enkgcHJvcGVydHkiICUgbmFtZSkKKyAgICAgICAgICAgICAgICBpZiBhcmdfdmFs
dWVzLmdldChuYW1lKToKKyAgICAgICAgICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigiR290
IG11bHRpcGxlIHZhbHVlcyBmb3IgYXJndW1lbnQgJXMiICUgbmFtZSkKKyAgICAgICAgICAgIGVs
c2U6CisgICAgICAgICAgICAgICAgbmFtZSA9IE5vbmUKKyAgICAgICAgICAgIGlmICItIiBpbiBy
YW5nZV9zdHJfdmFsdWU6CisgICAgICAgICAgICAgICAgcmFuZ2VfbWluLCByYW5nZV9tYXggPSBy
YW5nZV9zdHJfdmFsdWUuc3BsaXQoIi0iKQorICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAg
ICAgICByYW5nZV9taW4gPSByYW5nZV9zdHJfdmFsdWUKKyAgICAgICAgICAgICAgICByYW5nZV9t
YXggPSByYW5nZV9zdHJfdmFsdWUKKyAgICAgICAgICAgIHRyeToKKyAgICAgICAgICAgICAgICBy
YW5nZV92YWx1ZSA9IHR1cGxlKGludChpdGVtLnN0cmlwKCkpIGZvciBpdGVtIGluIChyYW5nZV9t
aW4sIHJhbmdlX21heCkpCisgICAgICAgICAgICBleGNlcHQgVmFsdWVFcnJvcjoKKyAgICAgICAg
ICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJGdXp6eSB2YWx1ZSAlcyBtdXN0IGJlIGEgcmFuZ2Ug
b2YgaW50ZWdlcnMiICUgcmFuZ2Vfc3RyX3ZhbHVlKQorICAgICAgICAgICAgaWYgbmFtZSBpcyBO
b25lOgorICAgICAgICAgICAgICAgIGFyZ192YWx1ZXNbTm9uZV0uYXBwZW5kKHJhbmdlX3ZhbHVl
KQorICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICBhcmdfdmFsdWVzW25hbWVdID0g
cmFuZ2VfdmFsdWUKKyAgICAgICAgcmFuZ2VfdmFsdWVzID0gW10KKyAgICAgICAgZm9yIGFyZ19u
YW1lIGluIGFyZ3M6CisgICAgICAgICAgICBpZiBhcmdfdmFsdWVzLmdldChhcmdfbmFtZSk6Cisg
ICAgICAgICAgICAgICAgdmFsdWUgPSBhcmdfdmFsdWVzLnBvcChhcmdfbmFtZSkKKyAgICAgICAg
ICAgIGVsc2U6CisgICAgICAgICAgICAgICAgdmFsdWUgPSBhcmdfdmFsdWVzW05vbmVdLnBvcGxl
ZnQoKQorICAgICAgICAgICAgcmFuZ2VfdmFsdWVzLmFwcGVuZCh2YWx1ZSkKKyAgICAgICAgcnYu
YXBwZW5kKChrZXksIHR1cGxlKHJhbmdlX3ZhbHVlcykpKQorICAgIHJldHVybiBydgorCisKIGNs
YXNzIEV4cGVjdGVkTWFuaWZlc3QoTWFuaWZlc3RJdGVtKToKLSAgICBkZWYgX19pbml0X18oc2Vs
ZiwgbmFtZSwgdGVzdF9wYXRoLCB1cmxfYmFzZSk6CisgICAgZGVmIF9faW5pdF9fKHNlbGYsIG5v
ZGUsIHRlc3RfcGF0aCwgdXJsX2Jhc2UpOgogICAgICAgICAiIiJPYmplY3QgcmVwcmVzZW50aW5n
IGFsbCB0aGUgdGVzdHMgaW4gYSBwYXJ0aWN1bGFyIG1hbmlmZXN0CiAKICAgICAgICAgOnBhcmFt
IG5hbWU6IE5hbWUgb2YgdGhlIEFTVCBOb2RlIGFzc29jaWF0ZWQgd2l0aCB0aGlzIG9iamVjdC4K
QEAgLTkyLDEzICsyMTgsMTQgQEAgY2xhc3MgRXhwZWN0ZWRNYW5pZmVzdChNYW5pZmVzdEl0ZW0p
OgogICAgICAgICA6cGFyYW0gdGVzdF9wYXRoOiBQYXRoIG9mIHRoZSB0ZXN0IGZpbGUgYXNzb2Np
YXRlZCB3aXRoIHRoaXMgbWFuaWZlc3QuCiAgICAgICAgIDpwYXJhbSB1cmxfYmFzZTogQmFzZSB1
cmwgZm9yIHNlcnZpbmcgdGhlIHRlc3RzIGluIHRoaXMgbWFuaWZlc3QKICAgICAgICAgIiIiCisg
ICAgICAgIG5hbWUgPSBub2RlLmRhdGEKICAgICAgICAgaWYgbmFtZSBpcyBub3QgTm9uZToKICAg
ICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoIkV4cGVjdGVkTWFuaWZlc3Qgc2hvdWxkIHJlcHJl
c2VudCB0aGUgcm9vdCBub2RlIikKICAgICAgICAgaWYgdGVzdF9wYXRoIGlzIE5vbmU6CiAgICAg
ICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJFeHBlY3RlZE1hbmlmZXN0IHJlcXVpcmVzIGEgdGVz
dCBwYXRoIikKICAgICAgICAgaWYgdXJsX2Jhc2UgaXMgTm9uZToKICAgICAgICAgICAgIHJhaXNl
IFZhbHVlRXJyb3IoIkV4cGVjdGVkTWFuaWZlc3QgcmVxdWlyZXMgYSBiYXNlIHVybCIpCi0gICAg
ICAgIE1hbmlmZXN0SXRlbS5fX2luaXRfXyhzZWxmLCBuYW1lKQorICAgICAgICBNYW5pZmVzdEl0
ZW0uX19pbml0X18oc2VsZiwgbm9kZSkKICAgICAgICAgc2VsZi5jaGlsZF9tYXAgPSB7fQogICAg
ICAgICBzZWxmLnRlc3RfcGF0aCA9IHRlc3RfcGF0aAogICAgICAgICBzZWxmLnVybF9iYXNlID0g
dXJsX2Jhc2UKQEAgLTEyMSw4ICsyNDgsOCBAQCBjbGFzcyBFeHBlY3RlZE1hbmlmZXN0KE1hbmlm
ZXN0SXRlbSk6CiAKICAgICBAcHJvcGVydHkKICAgICBkZWYgdXJsKHNlbGYpOgotICAgICAgICBy
ZXR1cm4gdXJscGFyc2UudXJsam9pbihzZWxmLnVybF9iYXNlLAotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAiLyIuam9pbihzZWxmLnRlc3RfcGF0aC5zcGxpdChvcy5wYXRoLnNlcCkp
KQorICAgICAgICByZXR1cm4gdXJsam9pbihzZWxmLnVybF9iYXNlLAorICAgICAgICAgICAgICAg
ICAgICAgICAiLyIuam9pbihzZWxmLnRlc3RfcGF0aC5zcGxpdChvcy5wYXRoLnNlcCkpKQogCiAg
ICAgQHByb3BlcnR5CiAgICAgZGVmIGRpc2FibGVkKHNlbGYpOgpAQCAtMTU0LDcgKzI4MSwzMSBA
QCBjbGFzcyBFeHBlY3RlZE1hbmlmZXN0KE1hbmlmZXN0SXRlbSk6CiAKICAgICBAcHJvcGVydHkK
ICAgICBkZWYgbHNhbl9hbGxvd2VkKHNlbGYpOgotICAgICAgICByZXR1cm4gbHNhbl9hbGxvd2Vk
KHNlbGYpCisgICAgICAgIHJldHVybiBzZXRfcHJvcCgibHNhbi1hbGxvd2VkIiwgc2VsZikKKwor
ICAgIEBwcm9wZXJ0eQorICAgIGRlZiBsZWFrX2FsbG93ZWQoc2VsZik6CisgICAgICAgIHJldHVy
biBzZXRfcHJvcCgibGVhay1hbGxvd2VkIiwgc2VsZikKKworICAgIEBwcm9wZXJ0eQorICAgIGRl
ZiBsZWFrX3RocmVzaG9sZChzZWxmKToKKyAgICAgICAgcmV0dXJuIGxlYWtfdGhyZXNob2xkKHNl
bGYpCisKKyAgICBAcHJvcGVydHkKKyAgICBkZWYgbHNhbl9tYXhfc3RhY2tfZGVwdGgoc2VsZik6
CisgICAgICAgIHJldHVybiBpbnRfcHJvcCgibHNhbi1tYXgtc3RhY2stZGVwdGgiLCBzZWxmKQor
CisgICAgQHByb3BlcnR5CisgICAgZGVmIGZ1enp5KHNlbGYpOgorICAgICAgICByZXR1cm4gZnV6
enlfcHJvcChzZWxmKQorCisgICAgQHByb3BlcnR5CisgICAgZGVmIGV4cGVjdGVkKHNlbGYpOgor
ICAgICAgICByZXR1cm4gbGlzdF9wcm9wKCJleHBlY3RlZCIsIHNlbGYpWzBdCisKKyAgICBAcHJv
cGVydHkKKyAgICBkZWYga25vd25faW50ZXJtaXR0ZW50KHNlbGYpOgorICAgICAgICByZXR1cm4g
bGlzdF9wcm9wKCJleHBlY3RlZCIsIHNlbGYpWzE6XQogCiAKIGNsYXNzIERpcmVjdG9yeU1hbmlm
ZXN0KE1hbmlmZXN0SXRlbSk6CkBAIC0xODgsMTYgKzMzOSwzMiBAQCBjbGFzcyBEaXJlY3RvcnlN
YW5pZmVzdChNYW5pZmVzdEl0ZW0pOgogCiAgICAgQHByb3BlcnR5CiAgICAgZGVmIGxzYW5fYWxs
b3dlZChzZWxmKToKLSAgICAgICAgcmV0dXJuIGxzYW5fYWxsb3dlZChzZWxmKQorICAgICAgICBy
ZXR1cm4gc2V0X3Byb3AoImxzYW4tYWxsb3dlZCIsIHNlbGYpCisKKyAgICBAcHJvcGVydHkKKyAg
ICBkZWYgbGVha19hbGxvd2VkKHNlbGYpOgorICAgICAgICByZXR1cm4gc2V0X3Byb3AoImxlYWst
YWxsb3dlZCIsIHNlbGYpCisKKyAgICBAcHJvcGVydHkKKyAgICBkZWYgbGVha190aHJlc2hvbGQo
c2VsZik6CisgICAgICAgIHJldHVybiBsZWFrX3RocmVzaG9sZChzZWxmKQorCisgICAgQHByb3Bl
cnR5CisgICAgZGVmIGxzYW5fbWF4X3N0YWNrX2RlcHRoKHNlbGYpOgorICAgICAgICByZXR1cm4g
aW50X3Byb3AoImxzYW4tbWF4LXN0YWNrLWRlcHRoIiwgc2VsZikKKworICAgIEBwcm9wZXJ0eQor
ICAgIGRlZiBmdXp6eShzZWxmKToKKyAgICAgICAgcmV0dXJuIGZ1enp5X3Byb3Aoc2VsZikKIAog
CiBjbGFzcyBUZXN0Tm9kZShNYW5pZmVzdEl0ZW0pOgotICAgIGRlZiBfX2luaXRfXyhzZWxmLCBu
YW1lKToKKyAgICBkZWYgX19pbml0X18oc2VsZiwgbm9kZSwgKiprd2FyZ3MpOgogICAgICAgICAi
IiJUcmVlIG5vZGUgYXNzb2NpYXRlZCB3aXRoIGEgcGFydGljdWxhciB0ZXN0IGluIGEgbWFuaWZl
c3QKIAogICAgICAgICA6cGFyYW0gbmFtZTogbmFtZSBvZiB0aGUgdGVzdCIiIgotICAgICAgICBh
c3NlcnQgbmFtZSBpcyBub3QgTm9uZQotICAgICAgICBNYW5pZmVzdEl0ZW0uX19pbml0X18oc2Vs
ZiwgbmFtZSkKKyAgICAgICAgYXNzZXJ0IG5vZGUuZGF0YSBpcyBub3QgTm9uZQorICAgICAgICBN
YW5pZmVzdEl0ZW0uX19pbml0X18oc2VsZiwgbm9kZSwgKiprd2FyZ3MpCiAgICAgICAgIHNlbGYu
dXBkYXRlZF9leHBlY3RlZCA9IFtdCiAgICAgICAgIHNlbGYubmV3X2V4cGVjdGVkID0gW10KICAg
ICAgICAgc2VsZi5zdWJ0ZXN0cyA9IHt9CkBAIC0yMDYsNyArMzczLDcgQEAgY2xhc3MgVGVzdE5v
ZGUoTWFuaWZlc3RJdGVtKToKIAogICAgIEBwcm9wZXJ0eQogICAgIGRlZiBpc19lbXB0eShzZWxm
KToKLSAgICAgICAgcmVxdWlyZWRfa2V5cyA9IHNldChbInR5cGUiXSkKKyAgICAgICAgcmVxdWly
ZWRfa2V5cyA9IHsidHlwZSJ9CiAgICAgICAgIGlmIHNldChzZWxmLl9kYXRhLmtleXMoKSkgIT0g
cmVxdWlyZWRfa2V5czoKICAgICAgICAgICAgIHJldHVybiBGYWxzZQogICAgICAgICByZXR1cm4g
YWxsKGNoaWxkLmlzX2VtcHR5IGZvciBjaGlsZCBpbiBzZWxmLmNoaWxkcmVuKQpAQCAtMjE3LDcg
KzM4NCw3IEBAIGNsYXNzIFRlc3ROb2RlKE1hbmlmZXN0SXRlbSk6CiAKICAgICBAcHJvcGVydHkK
ICAgICBkZWYgaWQoc2VsZik6Ci0gICAgICAgIHJldHVybiB1cmxwYXJzZS51cmxqb2luKHNlbGYu
cGFyZW50LnVybCwgc2VsZi5uYW1lKQorICAgICAgICByZXR1cm4gdXJsam9pbihzZWxmLnBhcmVu
dC51cmwsIHNlbGYubmFtZSkKIAogICAgIEBwcm9wZXJ0eQogICAgIGRlZiBkaXNhYmxlZChzZWxm
KToKQEAgLTI0OSw3ICs0MTYsMzEgQEAgY2xhc3MgVGVzdE5vZGUoTWFuaWZlc3RJdGVtKToKIAog
ICAgIEBwcm9wZXJ0eQogICAgIGRlZiBsc2FuX2FsbG93ZWQoc2VsZik6Ci0gICAgICAgIHJldHVy
biBsc2FuX2FsbG93ZWQoc2VsZikKKyAgICAgICAgcmV0dXJuIHNldF9wcm9wKCJsc2FuLWFsbG93
ZWQiLCBzZWxmKQorCisgICAgQHByb3BlcnR5CisgICAgZGVmIGxlYWtfYWxsb3dlZChzZWxmKToK
KyAgICAgICAgcmV0dXJuIHNldF9wcm9wKCJsZWFrLWFsbG93ZWQiLCBzZWxmKQorCisgICAgQHBy
b3BlcnR5CisgICAgZGVmIGxlYWtfdGhyZXNob2xkKHNlbGYpOgorICAgICAgICByZXR1cm4gbGVh
a190aHJlc2hvbGQoc2VsZikKKworICAgIEBwcm9wZXJ0eQorICAgIGRlZiBsc2FuX21heF9zdGFj
a19kZXB0aChzZWxmKToKKyAgICAgICAgcmV0dXJuIGludF9wcm9wKCJsc2FuLW1heC1zdGFjay1k
ZXB0aCIsIHNlbGYpCisKKyAgICBAcHJvcGVydHkKKyAgICBkZWYgZnV6enkoc2VsZik6CisgICAg
ICAgIHJldHVybiBmdXp6eV9wcm9wKHNlbGYpCisKKyAgICBAcHJvcGVydHkKKyAgICBkZWYgZXhw
ZWN0ZWQoc2VsZik6CisgICAgICAgIHJldHVybiBsaXN0X3Byb3AoImV4cGVjdGVkIiwgc2VsZilb
MF0KKworICAgIEBwcm9wZXJ0eQorICAgIGRlZiBrbm93bl9pbnRlcm1pdHRlbnQoc2VsZik6Cisg
ICAgICAgIHJldHVybiBsaXN0X3Byb3AoImV4cGVjdGVkIiwgc2VsZilbMTpdCiAKICAgICBkZWYg
YXBwZW5kKHNlbGYsIG5vZGUpOgogICAgICAgICAiIiJBZGQgYSBzdWJ0ZXN0IHRvIHRoZSBjdXJy
ZW50IHRlc3QKQEAgLTI2OCwxMiArNDU5LDYgQEAgY2xhc3MgVGVzdE5vZGUoTWFuaWZlc3RJdGVt
KToKIAogCiBjbGFzcyBTdWJ0ZXN0Tm9kZShUZXN0Tm9kZSk6Ci0gICAgZGVmIF9faW5pdF9fKHNl
bGYsIG5hbWUpOgotICAgICAgICAiIiJUcmVlIG5vZGUgYXNzb2NpYXRlZCB3aXRoIGEgcGFydGlj
dWxhciBzdWJ0ZXN0IGluIGEgbWFuaWZlc3QKLQotICAgICAgICA6cGFyYW0gbmFtZTogbmFtZSBv
ZiB0aGUgc3VidGVzdCIiIgotICAgICAgICBUZXN0Tm9kZS5fX2luaXRfXyhzZWxmLCBuYW1lKQot
CiAgICAgQHByb3BlcnR5CiAgICAgZGVmIGlzX2VtcHR5KHNlbGYpOgogICAgICAgICBpZiBzZWxm
Ll9kYXRhOgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL21hbmlmZXN0aW5jbHVkZS5weSBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVy
L3dwdHJ1bm5lci9tYW5pZmVzdGluY2x1ZGUucHkKaW5kZXggYTY4ZmRlYjM5YmM2ZjYzZDM4NzU0
NDk1MmExZWUyOGVhNmEyZjE4ZC4uZDMwMjgzMWE1N2FiYmFhZGQ3NWZlNDllMDk0NDgyZGMxNDIy
M2VhMyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL21hbmlmZXN0aW5jbHVkZS5weQorKysgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5l
ci93cHRydW5uZXIvbWFuaWZlc3RpbmNsdWRlLnB5CkBAIC02LDExICs2LDExIEBAIGJlIGluY2x1
ZGVkIG9yIGV4Y2x1ZGVkLgogIiIiCiBpbXBvcnQgZ2xvYgogaW1wb3J0IG9zCi1pbXBvcnQgdXJs
cGFyc2UKK2Zyb20gc2l4Lm1vdmVzLnVybGxpYi5wYXJzZSBpbXBvcnQgdXJscGFyc2UsIHVybHNw
bGl0CiAKLWZyb20gd3B0bWFuaWZlc3Qubm9kZSBpbXBvcnQgRGF0YU5vZGUKLWZyb20gd3B0bWFu
aWZlc3QuYmFja2VuZHMgaW1wb3J0IGNvbmRpdGlvbmFsCi1mcm9tIHdwdG1hbmlmZXN0LmJhY2tl
bmRzLmNvbmRpdGlvbmFsIGltcG9ydCBNYW5pZmVzdEl0ZW0KK2Zyb20gLndwdG1hbmlmZXN0Lm5v
ZGUgaW1wb3J0IERhdGFOb2RlCitmcm9tIC53cHRtYW5pZmVzdC5iYWNrZW5kcyBpbXBvcnQgY29u
ZGl0aW9uYWwKK2Zyb20gLndwdG1hbmlmZXN0LmJhY2tlbmRzLmNvbmRpdGlvbmFsIGltcG9ydCBN
YW5pZmVzdEl0ZW0KIAogCiBjbGFzcyBJbmNsdWRlTWFuaWZlc3QoTWFuaWZlc3RJdGVtKToKQEAg
LTY4LDcgKzY4LDcgQEAgY2xhc3MgSW5jbHVkZU1hbmlmZXN0KE1hbmlmZXN0SXRlbSk6CiAKICAg
ICBkZWYgX2dldF9jb21wb25lbnRzKHNlbGYsIHVybCk6CiAgICAgICAgIHJ2ID0gW10KLSAgICAg
ICAgdXJsX3BhcnRzID0gdXJscGFyc2UudXJsc3BsaXQodXJsKQorICAgICAgICB1cmxfcGFydHMg
PSB1cmxzcGxpdCh1cmwpCiAgICAgICAgIHZhcmlhbnQgPSAiIgogICAgICAgICBpZiB1cmxfcGFy
dHMucXVlcnk6CiAgICAgICAgICAgICB2YXJpYW50ICs9ICI/IiArIHVybF9wYXJ0cy5xdWVyeQpA
QCAtMTAzLDcgKzEwMyw3IEBAIGNsYXNzIEluY2x1ZGVNYW5pZmVzdChNYW5pZmVzdEl0ZW0pOgog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlCiAgICAgICAgICAgICAgICAgICAg
ICAgICB1cmwgPSB0ZXN0LnVybAogICAgICAgICAgICAgICAgICAgICAgICAgaWYgcXVlcnkgb3Ig
ZnJhZ21lbnQ6Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFyc2VkID0gdXJscGFyc2Uu
dXJscGFyc2UodXJsKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhcnNlZCA9IHVybHBh
cnNlKHVybCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoKHF1ZXJ5IGFuZCBxdWVy
eSAhPSBwYXJzZWQucXVlcnkpIG9yCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChm
cmFnbWVudCBhbmQgZnJhZ21lbnQgIT0gcGFyc2VkLmZyYWdtZW50KSk6CiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvbWFu
aWZlc3R1cGRhdGUucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvbWFuaWZlc3R1cGRhdGUucHkKaW5kZXggMWY4
YmE3N2U4ZjllMGRlMzJmYTQ5N2Q1NmVjYzk5OWVhNzIyZjQ1Mi4uYWY5YWYxOGQ5MDcxNWQ0M2Ji
Y2QyYWU0N2NlNzYyNzViYjBlMTU3NyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL21hbmlmZXN0
dXBkYXRlLnB5CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9tYW5pZmVzdHVwZGF0ZS5weQpAQCAtMSwxNSAr
MSwyMCBAQAotaW1wb3J0IGl0ZXJ0b29scworZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCBwcmludF9m
dW5jdGlvbgogaW1wb3J0IG9zCi1pbXBvcnQgdXJscGFyc2UKLWZyb20gY29sbGVjdGlvbnMgaW1w
b3J0IG5hbWVkdHVwbGUsIGRlZmF1bHRkaWN0Ci0KLWZyb20gd3B0bWFuaWZlc3Qubm9kZSBpbXBv
cnQgKERhdGFOb2RlLCBDb25kaXRpb25hbE5vZGUsIEJpbmFyeUV4cHJlc3Npb25Ob2RlLAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgQmluYXJ5T3BlcmF0b3JOb2RlLCBWYXJpYWJsZU5v
ZGUsIFN0cmluZ05vZGUsIE51bWJlck5vZGUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBVbmFyeUV4cHJlc3Npb25Ob2RlLCBVbmFyeU9wZXJhdG9yTm9kZSwgS2V5VmFsdWVOb2RlKQot
ZnJvbSB3cHRtYW5pZmVzdC5iYWNrZW5kcyBpbXBvcnQgY29uZGl0aW9uYWwKLWZyb20gd3B0bWFu
aWZlc3QuYmFja2VuZHMuY29uZGl0aW9uYWwgaW1wb3J0IE1hbmlmZXN0SXRlbQotCi1pbXBvcnQg
ZXhwZWN0ZWQKK2Zyb20gc2l4Lm1vdmVzLnVybGxpYi5wYXJzZSBpbXBvcnQgdXJsam9pbiwgdXJs
c3BsaXQKK2Zyb20gY29sbGVjdGlvbnMgaW1wb3J0IG5hbWVkdHVwbGUsIGRlZmF1bHRkaWN0LCBk
ZXF1ZQorZnJvbSBtYXRoIGltcG9ydCBjZWlsCitmcm9tIHNpeCBpbXBvcnQgaXRlcmtleXMsIGl0
ZXJ2YWx1ZXMsIGl0ZXJpdGVtcworCitmcm9tIC53cHRtYW5pZmVzdCBpbXBvcnQgc2VyaWFsaXpl
Citmcm9tIC53cHRtYW5pZmVzdC5ub2RlIGltcG9ydCAoRGF0YU5vZGUsIENvbmRpdGlvbmFsTm9k
ZSwgQmluYXJ5RXhwcmVzc2lvbk5vZGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBC
aW5hcnlPcGVyYXRvck5vZGUsIE51bWJlck5vZGUsIFN0cmluZ05vZGUsIFZhcmlhYmxlTm9kZSwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFZhbHVlTm9kZSwgVW5hcnlFeHByZXNzaW9u
Tm9kZSwgVW5hcnlPcGVyYXRvck5vZGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBM
aXN0Tm9kZSkKK2Zyb20gLndwdG1hbmlmZXN0LmJhY2tlbmRzIGltcG9ydCBjb25kaXRpb25hbAor
ZnJvbSAud3B0bWFuaWZlc3QuYmFja2VuZHMuY29uZGl0aW9uYWwgaW1wb3J0IE1hbmlmZXN0SXRl
bQorCitmcm9tIC4gaW1wb3J0IGV4cGVjdGVkCitmcm9tIC4gaW1wb3J0IGV4cGVjdGVkdHJlZQog
CiAiIiJNYW5pZmVzdCBzdHJ1Y3R1cmUgdXNlZCB0byB1cGRhdGUgdGhlIGV4cGVjdGVkIHJlc3Vs
dHMgb2YgYSB0ZXN0CiAKQEAgLTI1LDcgKzMwLDcgQEAgYXQgcnVudGltZS4KIFdoZW4gYSByZXN1
bHQgZm9yIGEgdGVzdCBpcyB0byBiZSB1cGRhdGVkIHNldF9yZXN1bHQgb24gdGhlCiBbU3ViXVRl
c3ROb2RlIGlzIGNhbGxlZCB0byBzdG9yZSB0aGUgbmV3IHJlc3VsdCwgYWxvbmdzaWRlIHRoZQog
ZXhpc3RpbmcgY29uZGl0aW9uYWwgdGhhdCByZXN1bHQncyBydW4gaW5mbyBtYXRjaGVkLCBpZiBh
bnkuIE9uY2UgYWxsCi1uZXcgcmVzdWx0cyBhcmUga25vd24sIGNvYWxlc2NlX2V4cGVjdGVkIGlz
IGNhbGxlZCB0byBjb21wdXRlIHRoZSBuZXcKK25ldyByZXN1bHRzIGFyZSBrbm93biwgdXBkYXRl
IGlzIGNhbGxlZCB0byBjb21wdXRlIHRoZSBuZXcKIHNldCBvZiByZXN1bHRzIGFuZCBjb25kaXRp
b25hbHMuIFRoZSBBU1Qgb2YgdGhlIHVuZGVybHlpbmcgcGFyc2VkIG1hbmlmZXN0CiBpcyB1cGRh
dGVkIHdpdGggdGhlIGNoYW5nZXMsIGFuZCB0aGUgcmVzdWx0IGlzIHNlcmlhbGlzZWQgdG8gYSBm
aWxlLgogIiIiCkBAIC01NSwxOSArNjAsNTAgQEAgZGVmIGRhdGFfY2xzX2dldHRlcihvdXRwdXRf
bm9kZSwgdmlzaXRlZF9ub2RlKToKICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcgogCiAKK2NsYXNz
IFVwZGF0ZVByb3BlcnRpZXMob2JqZWN0KToKKyAgICBkZWYgX19pbml0X18oc2VsZiwgbWFuaWZl
c3QsICoqa3dhcmdzKToKKyAgICAgICAgc2VsZi5fbWFuaWZlc3QgPSBtYW5pZmVzdAorICAgICAg
ICBzZWxmLl9jbGFzc2VzID0ga3dhcmdzCisKKyAgICBkZWYgX19nZXRhdHRyX18oc2VsZiwgbmFt
ZSk6CisgICAgICAgIGlmIG5hbWUgaW4gc2VsZi5fY2xhc3NlczoKKyAgICAgICAgICAgIHJ2ID0g
c2VsZi5fY2xhc3Nlc1tuYW1lXShzZWxmLl9tYW5pZmVzdCkKKyAgICAgICAgICAgIHNldGF0dHIo
c2VsZiwgbmFtZSwgcnYpCisgICAgICAgICAgICByZXR1cm4gcnYKKyAgICAgICAgcmFpc2UgQXR0
cmlidXRlRXJyb3IKKworICAgIGRlZiBfX2NvbnRhaW5zX18oc2VsZiwgbmFtZSk6CisgICAgICAg
IHJldHVybiBuYW1lIGluIHNlbGYuX2NsYXNzZXMKKworICAgIGRlZiBfX2l0ZXJfXyhzZWxmKToK
KyAgICAgICAgZm9yIG5hbWUgaW4gaXRlcmtleXMoc2VsZi5fY2xhc3Nlcyk6CisgICAgICAgICAg
ICB5aWVsZCBnZXRhdHRyKHNlbGYsIG5hbWUpCisKKwogY2xhc3MgRXhwZWN0ZWRNYW5pZmVzdChN
YW5pZmVzdEl0ZW0pOgotICAgIGRlZiBfX2luaXRfXyhzZWxmLCBub2RlLCB0ZXN0X3BhdGg9Tm9u
ZSwgdXJsX2Jhc2U9Tm9uZSwgcHJvcGVydHlfb3JkZXI9Tm9uZSwKLSAgICAgICAgICAgICAgICAg
Ym9vbGVhbl9wcm9wZXJ0aWVzPU5vbmUpOgorICAgIGRlZiBfX2luaXRfXyhzZWxmLCBub2RlLCB0
ZXN0X3BhdGgsIHVybF9iYXNlLCBydW5faW5mb19wcm9wZXJ0aWVzLAorICAgICAgICAgICAgICAg
ICB1cGRhdGVfaW50ZXJtaXR0ZW50PUZhbHNlLCByZW1vdmVfaW50ZXJtaXR0ZW50PUZhbHNlKToK
ICAgICAgICAgIiIiT2JqZWN0IHJlcHJlc2VudGluZyBhbGwgdGhlIHRlc3RzIGluIGEgcGFydGlj
dWxhciBtYW5pZmVzdAogCiAgICAgICAgIDpwYXJhbSBub2RlOiBBU1QgTm9kZSBhc3NvY2lhdGVk
IHdpdGggdGhpcyBvYmplY3QuIElmIHRoaXMgaXMgTm9uZSwKICAgICAgICAgICAgICAgICAgICAg
IGEgbmV3IEFTVCBpcyBjcmVhdGVkIHRvIGFzc29jaWF0ZSB3aXRoIHRoaXMgbWFuaWZlc3QuCiAg
ICAgICAgIDpwYXJhbSB0ZXN0X3BhdGg6IFBhdGggb2YgdGhlIHRlc3QgZmlsZSBhc3NvY2lhdGVk
IHdpdGggdGhpcyBtYW5pZmVzdC4KICAgICAgICAgOnBhcmFtIHVybF9iYXNlOiBCYXNlIHVybCBm
b3Igc2VydmluZyB0aGUgdGVzdHMgaW4gdGhpcyBtYW5pZmVzdC4KLSAgICAgICAgOnBhcmFtIHBy
b3BlcnR5X29yZGVyOiBMaXN0IG9mIHByb3BlcnRpZXMgdG8gdXNlIGluIGV4cGVjdGF0aW9uIG1l
dGFkYXRhCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZnJvbSBtb3N0IHRvIGxlYXN0
IHNpZ25pZmljYW50LgotICAgICAgICA6cGFyYW0gYm9vbGVhbl9wcm9wZXJ0aWVzOiBTZXQgb2Yg
cHJvcGVydGllcyBpbiBwcm9wZXJ0eV9vcmRlciB0aGF0IHNob3VsZAotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBiZSB0cmVhdGVkIGFzIGJvb2xlYW4uCisgICAgICAgIDpwYXJh
bSBydW5faW5mb19wcm9wZXJ0aWVzOiBUdXBsZSBvZiAoW3Byb3BlcnR5IG5hbWVdLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtwcm9wZXJ0eV9uYW1lOiBb
ZGVwZW5kZW50IHByb3BlcnR5XX0pCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBUaGUgZmlyc3QgcGFydCBsaXN0cyBydW5faW5mbyBwcm9wZXJ0aWVzCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICB0aGF0IGFyZSBhbHdheXMgdXNlZCBpbiB0aGUgdXBkYXRl
LCB0aGUgc2Vjb25kCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXBzIHBy
b3BlcnR5IG5hbWVzIHRvIGFkZGl0aW9uYWwgcHJvcGVydGllcyB0aGF0CisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBjYW4gYmUgY29uc2lkZXJlZCBpZiB3ZSBhbHJlYWR5IGhh
dmUgYSBjb25kaXRpb24gb24KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRo
ZSBrZXkgcHJvcGVydHkgZS5nLiB7ImZvbyI6IFsiYmFyIl19IG1lYW5zIHRoYXQKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdlIGNvbnNpZGVyIG1ha2luZyBjb25kaXRpb25z
IG9uIGJhciBvbmx5IGFmdGVyIHdlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBhbHJlYWR5IG1hZGUgb25lIG9uIGZvby4KKyAgICAgICAgOnBhcmFtIHVwZGF0ZV9pbnRlcm1p
dHRlbnQ6IFdoZW4gVHJ1ZSwgaW50ZXJtaXR0ZW50IHN0YXR1c2VzIHdpbGwgYmUgcmVjb3JkZWQK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzIGBleHBlY3RlZGAgaW4gdGhl
IHRlc3QgbWV0YWRhdGEuCisgICAgICAgIDpwYXJhbTogcmVtb3ZlX2ludGVybWl0dGVudDogV2hl
biBUcnVlLCBvbGQgaW50ZXJtaXR0ZW50IHN0YXR1c2VzIHdpbGwgYmUgcmVtb3ZlZAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgbm8gbG9uZ2VyIGludGVybWl0dGVudC4g
VGhpcyBpcyBvbmx5IHJlbGV2YW50IGlmCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBgdXBkYXRlX2ludGVybWl0dGVudGAgaXMgYWxzbyBUcnVlLCBiZWNhdXNlIGlmIEZhbHNl
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhlIG1ldGFkYXRhIHdpbGwg
c2ltcGx5IHVwZGF0ZSBvbmUgYGV4cGVjdGVkYHN0YXR1cy4KICAgICAgICAgIiIiCiAgICAgICAg
IGlmIG5vZGUgaXMgTm9uZToKICAgICAgICAgICAgIG5vZGUgPSBEYXRhTm9kZShOb25lKQpAQCAt
NzYsMTcgKzExMiwzMCBAQCBjbGFzcyBFeHBlY3RlZE1hbmlmZXN0KE1hbmlmZXN0SXRlbSk6CiAg
ICAgICAgIHNlbGYudGVzdF9wYXRoID0gdGVzdF9wYXRoCiAgICAgICAgIHNlbGYudXJsX2Jhc2Ug
PSB1cmxfYmFzZQogICAgICAgICBhc3NlcnQgc2VsZi51cmxfYmFzZSBpcyBub3QgTm9uZQotICAg
ICAgICBzZWxmLm1vZGlmaWVkID0gRmFsc2UKLSAgICAgICAgc2VsZi5ib29sZWFuX3Byb3BlcnRp
ZXMgPSBib29sZWFuX3Byb3BlcnRpZXMKLSAgICAgICAgc2VsZi5wcm9wZXJ0eV9vcmRlciA9IHBy
b3BlcnR5X29yZGVyCi0gICAgICAgIHNlbGYudXBkYXRlX3Byb3BlcnRpZXMgPSB7Ci0gICAgICAg
ICAgICAibHNhbiI6IExzYW5VcGRhdGUoc2VsZiksCi0gICAgICAgIH0KKyAgICAgICAgc2VsZi5f
bW9kaWZpZWQgPSBGYWxzZQorICAgICAgICBzZWxmLnJ1bl9pbmZvX3Byb3BlcnRpZXMgPSBydW5f
aW5mb19wcm9wZXJ0aWVzCisgICAgICAgIHNlbGYudXBkYXRlX2ludGVybWl0dGVudCA9IHVwZGF0
ZV9pbnRlcm1pdHRlbnQKKyAgICAgICAgc2VsZi5yZW1vdmVfaW50ZXJtaXR0ZW50ID0gcmVtb3Zl
X2ludGVybWl0dGVudAorICAgICAgICBzZWxmLnVwZGF0ZV9wcm9wZXJ0aWVzID0gVXBkYXRlUHJv
cGVydGllcyhzZWxmLCAqKnsKKyAgICAgICAgICAgICJsc2FuIjogTHNhblVwZGF0ZSwKKyAgICAg
ICAgICAgICJsZWFrX29iamVjdCI6IExlYWtPYmplY3RVcGRhdGUsCisgICAgICAgICAgICAibGVh
a190aHJlc2hvbGQiOiBMZWFrVGhyZXNob2xkVXBkYXRlLAorICAgICAgICB9KQorCisgICAgQHBy
b3BlcnR5CisgICAgZGVmIG1vZGlmaWVkKHNlbGYpOgorICAgICAgICBpZiBzZWxmLl9tb2RpZmll
ZDoKKyAgICAgICAgICAgIHJldHVybiBUcnVlCisgICAgICAgIHJldHVybiBhbnkoaXRlbS5tb2Rp
ZmllZCBmb3IgaXRlbSBpbiBzZWxmLmNoaWxkcmVuKQorCisgICAgQG1vZGlmaWVkLnNldHRlcgor
ICAgIGRlZiBtb2RpZmllZChzZWxmLCB2YWx1ZSk6CisgICAgICAgIHNlbGYuX21vZGlmaWVkID0g
dmFsdWUKIAogICAgIGRlZiBhcHBlbmQoc2VsZiwgY2hpbGQpOgogICAgICAgICBNYW5pZmVzdEl0
ZW0uYXBwZW5kKHNlbGYsIGNoaWxkKQogICAgICAgICBpZiBjaGlsZC5pZCBpbiBzZWxmLmNoaWxk
X21hcDoKLSAgICAgICAgICAgIHByaW50ICJXYXJuaW5nOiBEdXBsaWNhdGUgaGVhZGluZyAlcyIg
JSBjaGlsZC5pZAorICAgICAgICAgICAgcHJpbnQoIldhcm5pbmc6IER1cGxpY2F0ZSBoZWFkaW5n
ICVzIiAlIGNoaWxkLmlkKQogICAgICAgICBzZWxmLmNoaWxkX21hcFtjaGlsZC5pZF0gPSBjaGls
ZAogCiAgICAgZGVmIF9yZW1vdmVfY2hpbGQoc2VsZiwgY2hpbGQpOgpAQCAtMTEwLDggKzE1OSw4
IEBAIGNsYXNzIEV4cGVjdGVkTWFuaWZlc3QoTWFuaWZlc3RJdGVtKToKIAogICAgIEBwcm9wZXJ0
eQogICAgIGRlZiB1cmwoc2VsZik6Ci0gICAgICAgIHJldHVybiB1cmxwYXJzZS51cmxqb2luKHNl
bGYudXJsX2Jhc2UsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIvIi5qb2luKHNl
bGYudGVzdF9wYXRoLnNwbGl0KG9zLnBhdGguc2VwKSkpCisgICAgICAgIHJldHVybiB1cmxqb2lu
KHNlbGYudXJsX2Jhc2UsCisgICAgICAgICAgICAgICAgICAgICAgICIvIi5qb2luKHNlbGYudGVz
dF9wYXRoLnNwbGl0KG9zLnBhdGguc2VwKSkpCiAKICAgICBkZWYgc2V0X2xzYW4oc2VsZiwgcnVu
X2luZm8sIHJlc3VsdCk6CiAgICAgICAgICIiIlNldCB0aGUgcmVzdWx0IG9mIHRoZSB0ZXN0IGlu
IGEgcGFydGljdWxhciBydW4KQEAgLTExOSwxMiArMTY4LDI4IEBAIGNsYXNzIEV4cGVjdGVkTWFu
aWZlc3QoTWFuaWZlc3RJdGVtKToKICAgICAgICAgOnBhcmFtIHJ1bl9pbmZvOiBEaWN0aW9uYXJ5
IG9mIHJ1bl9pbmZvIHBhcmFtZXRlcnMgY29ycmVzcG9uZGluZwogICAgICAgICAgICAgICAgICAg
ICAgICAgIHRvIHRoaXMgcnVuCiAgICAgICAgIDpwYXJhbSByZXN1bHQ6IExzYW4gdmlvbGF0aW9u
cyBkZXRlY3RlZCIiIgorICAgICAgICBzZWxmLnVwZGF0ZV9wcm9wZXJ0aWVzLmxzYW4uc2V0KHJ1
bl9pbmZvLCByZXN1bHQpCisKKyAgICBkZWYgc2V0X2xlYWtfb2JqZWN0KHNlbGYsIHJ1bl9pbmZv
LCByZXN1bHQpOgorICAgICAgICAiIiJTZXQgdGhlIHJlc3VsdCBvZiB0aGUgdGVzdCBpbiBhIHBh
cnRpY3VsYXIgcnVuCisKKyAgICAgICAgOnBhcmFtIHJ1bl9pbmZvOiBEaWN0aW9uYXJ5IG9mIHJ1
bl9pbmZvIHBhcmFtZXRlcnMgY29ycmVzcG9uZGluZworICAgICAgICAgICAgICAgICAgICAgICAg
IHRvIHRoaXMgcnVuCisgICAgICAgIDpwYXJhbSByZXN1bHQ6IExlYWtlZCBvYmplY3RzIGRlbGV0
ZWMiIiIKKyAgICAgICAgc2VsZi51cGRhdGVfcHJvcGVydGllcy5sZWFrX29iamVjdC5zZXQocnVu
X2luZm8sIHJlc3VsdCkKKworICAgIGRlZiBzZXRfbGVha190aHJlc2hvbGQoc2VsZiwgcnVuX2lu
Zm8sIHJlc3VsdCk6CisgICAgICAgICIiIlNldCB0aGUgcmVzdWx0IG9mIHRoZSB0ZXN0IGluIGEg
cGFydGljdWxhciBydW4KIAotICAgICAgICBzZWxmLnVwZGF0ZV9wcm9wZXJ0aWVzWyJsc2FuIl0u
c2V0KHJ1bl9pbmZvLCByZXN1bHQpCisgICAgICAgIDpwYXJhbSBydW5faW5mbzogRGljdGlvbmFy
eSBvZiBydW5faW5mbyBwYXJhbWV0ZXJzIGNvcnJlc3BvbmRpbmcKKyAgICAgICAgICAgICAgICAg
ICAgICAgICB0byB0aGlzIHJ1bgorICAgICAgICA6cGFyYW0gcmVzdWx0OiBUb3RhbCBudW1iZXIg
b2YgYnl0ZXMgbGVha2VkIiIiCisgICAgICAgIHNlbGYudXBkYXRlX3Byb3BlcnRpZXMubGVha190
aHJlc2hvbGQuc2V0KHJ1bl9pbmZvLCByZXN1bHQpCiAKLSAgICBkZWYgY29hbGVzY2VfcHJvcGVy
dGllcyhzZWxmLCBzdGFiaWxpdHkpOgotICAgICAgICBmb3IgcHJvcF91cGRhdGUgaW4gc2VsZi51
cGRhdGVfcHJvcGVydGllcy5pdGVydmFsdWVzKCk6Ci0gICAgICAgICAgICBwcm9wX3VwZGF0ZS5j
b2FsZXNjZShzdGFiaWxpdHkpCisgICAgZGVmIHVwZGF0ZShzZWxmLCBmdWxsX3VwZGF0ZSwgZGlz
YWJsZV9pbnRlcm1pdHRlbnQpOgorICAgICAgICBmb3IgcHJvcF91cGRhdGUgaW4gc2VsZi51cGRh
dGVfcHJvcGVydGllczoKKyAgICAgICAgICAgIHByb3BfdXBkYXRlLnVwZGF0ZShmdWxsX3VwZGF0
ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNhYmxlX2ludGVybWl0dGVudCkK
IAogCiBjbGFzcyBUZXN0Tm9kZShNYW5pZmVzdEl0ZW0pOgpAQCAtMTM3LDExICsyMDIsMTQgQEAg
Y2xhc3MgVGVzdE5vZGUoTWFuaWZlc3RJdGVtKToKICAgICAgICAgc2VsZi5zdWJ0ZXN0cyA9IHt9
CiAgICAgICAgIHNlbGYuX2Zyb21fZmlsZSA9IFRydWUKICAgICAgICAgc2VsZi5uZXdfZGlzYWJs
ZWQgPSBGYWxzZQotICAgICAgICBzZWxmLnVwZGF0ZV9wcm9wZXJ0aWVzID0gewotICAgICAgICAg
ICAgImV4cGVjdGVkIjogRXhwZWN0ZWRVcGRhdGUoc2VsZiksCi0gICAgICAgICAgICAibWF4LWFz
c2VydHMiOiBNYXhBc3NlcnRzVXBkYXRlKHNlbGYpLAotICAgICAgICAgICAgIm1pbi1hc3NlcnRz
IjogTWluQXNzZXJ0c1VwZGF0ZShzZWxmKQotICAgICAgICB9CisgICAgICAgIHNlbGYuaGFzX3Jl
c3VsdCA9IEZhbHNlCisgICAgICAgIHNlbGYubW9kaWZpZWQgPSBGYWxzZQorICAgICAgICBzZWxm
LnVwZGF0ZV9wcm9wZXJ0aWVzID0gVXBkYXRlUHJvcGVydGllcygKKyAgICAgICAgICAgIHNlbGYs
CisgICAgICAgICAgICBleHBlY3RlZD1FeHBlY3RlZFVwZGF0ZSwKKyAgICAgICAgICAgIG1heF9h
c3NlcnRzPU1heEFzc2VydHNVcGRhdGUsCisgICAgICAgICAgICBtaW5fYXNzZXJ0cz1NaW5Bc3Nl
cnRzVXBkYXRlCisgICAgICAgICkKIAogICAgIEBjbGFzc21ldGhvZAogICAgIGRlZiBjcmVhdGUo
Y2xzLCB0ZXN0X2lkKToKQEAgLTE0OSw5ICsyMTcsNyBAQCBjbGFzcyBUZXN0Tm9kZShNYW5pZmVz
dEl0ZW0pOgogCiAgICAgICAgIDpwYXJhbSB0ZXN0X3R5cGU6IFRoZSB0eXBlIG9mIHRoZSB0ZXN0
CiAgICAgICAgIDpwYXJhbSB0ZXN0X2lkOiBUaGUgaWQgb2YgdGhlIHRlc3QiIiIKLQotICAgICAg
ICB1cmwgPSB0ZXN0X2lkCi0gICAgICAgIG5hbWUgPSB1cmwucnNwbGl0KCIvIiwgMSlbMV0KKyAg
ICAgICAgbmFtZSA9IHRlc3RfaWRbbGVuKHVybHNwbGl0KHRlc3RfaWQpLnBhdGgucnNwbGl0KCIv
IiwgMSlbMF0pICsgMTpdCiAgICAgICAgIG5vZGUgPSBEYXRhTm9kZShuYW1lKQogICAgICAgICBz
ZWxmID0gY2xzKG5vZGUpCiAKQEAgLTE2MCw3ICsyMjYsNyBAQCBjbGFzcyBUZXN0Tm9kZShNYW5p
ZmVzdEl0ZW0pOgogCiAgICAgQHByb3BlcnR5CiAgICAgZGVmIGlzX2VtcHR5KHNlbGYpOgotICAg
ICAgICBpZ25vcmVfa2V5cyA9IHNldChbInR5cGUiXSkKKyAgICAgICAgaWdub3JlX2tleXMgPSB7
InR5cGUifQogICAgICAgICBpZiBzZXQoc2VsZi5fZGF0YS5rZXlzKCkpIC0gaWdub3JlX2tleXM6
CiAgICAgICAgICAgICByZXR1cm4gRmFsc2UKICAgICAgICAgcmV0dXJuIGFsbChjaGlsZC5pc19l
bXB0eSBmb3IgY2hpbGQgaW4gc2VsZi5jaGlsZHJlbikKQEAgLTE3Myw3ICsyMzksNyBAQCBjbGFz
cyBUZXN0Tm9kZShNYW5pZmVzdEl0ZW0pOgogICAgIEBwcm9wZXJ0eQogICAgIGRlZiBpZChzZWxm
KToKICAgICAgICAgIiIiVGhlIGlkIG9mIHRoZSB0ZXN0IHJlcHJlc2VudGVkIGJ5IHRoaXMgVGVz
dE5vZGUiIiIKLSAgICAgICAgcmV0dXJuIHVybHBhcnNlLnVybGpvaW4oc2VsZi5wYXJlbnQudXJs
LCBzZWxmLm5hbWUpCisgICAgICAgIHJldHVybiB1cmxqb2luKHNlbGYucGFyZW50LnVybCwgc2Vs
Zi5uYW1lKQogCiAgICAgZGVmIGRpc2FibGVkKHNlbGYsIHJ1bl9pbmZvKToKICAgICAgICAgIiIi
Qm9vbGVhbiBpbmRpY2F0aW5nIHdoZXRoZXIgdGhpcyB0ZXN0IGlzIGRpc2FibGVkIHdoZW4gcnVu
IGluIGFuCkBAIC0xODksMzggKzI1NSwxNCBAQCBjbGFzcyBUZXN0Tm9kZShNYW5pZmVzdEl0ZW0p
OgogICAgICAgICA6cGFyYW0gcnVuX2luZm86IERpY3Rpb25hcnkgb2YgcnVuX2luZm8gcGFyYW1l
dGVycyBjb3JyZXNwb25kaW5nCiAgICAgICAgICAgICAgICAgICAgICAgICAgdG8gdGhpcyBydW4K
ICAgICAgICAgOnBhcmFtIHJlc3VsdDogU3RhdHVzIG9mIHRoZSB0ZXN0IGluIHRoaXMgcnVuIiIi
Ci0KLSAgICAgICAgc2VsZi51cGRhdGVfcHJvcGVydGllc1siZXhwZWN0ZWQiXS5zZXQocnVuX2lu
Zm8sIHJlc3VsdCkKKyAgICAgICAgc2VsZi51cGRhdGVfcHJvcGVydGllcy5leHBlY3RlZC5zZXQo
cnVuX2luZm8sIHJlc3VsdCkKIAogICAgIGRlZiBzZXRfYXNzZXJ0cyhzZWxmLCBydW5faW5mbywg
Y291bnQpOgogICAgICAgICAiIiJTZXQgdGhlIGFzc2VydCBjb3VudCBvZiBhIHRlc3QKIAogICAg
ICAgICAiIiIKLSAgICAgICAgc2VsZi51cGRhdGVfcHJvcGVydGllc1sibWluLWFzc2VydHMiXS5z
ZXQocnVuX2luZm8sIGNvdW50KQotICAgICAgICBzZWxmLnVwZGF0ZV9wcm9wZXJ0aWVzWyJtYXgt
YXNzZXJ0cyJdLnNldChydW5faW5mbywgY291bnQpCi0KLSAgICBkZWYgX2FkZF9rZXlfdmFsdWUo
c2VsZiwgbm9kZSwgdmFsdWVzKToKLSAgICAgICAgTWFuaWZlc3RJdGVtLl9hZGRfa2V5X3ZhbHVl
KHNlbGYsIG5vZGUsIHZhbHVlcykKLSAgICAgICAgaWYgbm9kZS5kYXRhIGluIHNlbGYudXBkYXRl
X3Byb3BlcnRpZXM6Ci0gICAgICAgICAgICBuZXdfdXBkYXRlZCA9IFtdCi0gICAgICAgICAgICBz
ZWxmLnVwZGF0ZV9wcm9wZXJ0aWVzW25vZGUuZGF0YV0udXBkYXRlZCA9IG5ld191cGRhdGVkCi0g
ICAgICAgICAgICBmb3IgdmFsdWUgaW4gdmFsdWVzOgotICAgICAgICAgICAgICAgIG5ld191cGRh
dGVkLmFwcGVuZCgodmFsdWUsIFtdKSkKLQotICAgIGRlZiBjbGVhcihzZWxmLCBrZXkpOgotICAg
ICAgICAiIiJDbGVhciBhbGwgdGhlIGV4cGVjdGVkIGRhdGEgZm9yIHRoaXMgdGVzdCBhbmQgYWxs
IG9mIGl0cyBzdWJ0ZXN0cyIiIgotCi0gICAgICAgIHNlbGYudXBkYXRlZCA9IFtdCi0gICAgICAg
IGlmIGtleSBpbiBzZWxmLl9kYXRhOgotICAgICAgICAgICAgZm9yIGNoaWxkIGluIHNlbGYubm9k
ZS5jaGlsZHJlbjoKLSAgICAgICAgICAgICAgICBpZiAoaXNpbnN0YW5jZShjaGlsZCwgS2V5VmFs
dWVOb2RlKSBhbmQKLSAgICAgICAgICAgICAgICAgICAgY2hpbGQuZGF0YSA9PSBrZXkpOgotICAg
ICAgICAgICAgICAgICAgICBjaGlsZC5yZW1vdmUoKQotICAgICAgICAgICAgICAgICAgICBkZWwg
c2VsZi5fZGF0YVtrZXldCi0gICAgICAgICAgICAgICAgICAgIGJyZWFrCi0KLSAgICAgICAgZm9y
IHN1YnRlc3QgaW4gc2VsZi5zdWJ0ZXN0cy5pdGVydmFsdWVzKCk6Ci0gICAgICAgICAgICBzdWJ0
ZXN0LmNsZWFyKGtleSkKKyAgICAgICAgc2VsZi51cGRhdGVfcHJvcGVydGllcy5taW5fYXNzZXJ0
cy5zZXQocnVuX2luZm8sIGNvdW50KQorICAgICAgICBzZWxmLnVwZGF0ZV9wcm9wZXJ0aWVzLm1h
eF9hc3NlcnRzLnNldChydW5faW5mbywgY291bnQpCiAKICAgICBkZWYgYXBwZW5kKHNlbGYsIG5v
ZGUpOgogICAgICAgICBjaGlsZCA9IE1hbmlmZXN0SXRlbS5hcHBlbmQoc2VsZiwgbm9kZSkKQEAg
LTI0MCw5ICsyODIsMTAgQEAgY2xhc3MgVGVzdE5vZGUoTWFuaWZlc3RJdGVtKToKICAgICAgICAg
ICAgIHNlbGYuYXBwZW5kKHN1YnRlc3QpCiAgICAgICAgICAgICByZXR1cm4gc3VidGVzdAogCi0g
ICAgZGVmIGNvYWxlc2NlX3Byb3BlcnRpZXMoc2VsZiwgc3RhYmlsaXR5KToKLSAgICAgICAgZm9y
IHByb3BfdXBkYXRlIGluIHNlbGYudXBkYXRlX3Byb3BlcnRpZXMuaXRlcnZhbHVlcygpOgotICAg
ICAgICAgICAgcHJvcF91cGRhdGUuY29hbGVzY2Uoc3RhYmlsaXR5KQorICAgIGRlZiB1cGRhdGUo
c2VsZiwgZnVsbF91cGRhdGUsIGRpc2FibGVfaW50ZXJtaXR0ZW50KToKKyAgICAgICAgZm9yIHBy
b3BfdXBkYXRlIGluIHNlbGYudXBkYXRlX3Byb3BlcnRpZXM6CisgICAgICAgICAgICBwcm9wX3Vw
ZGF0ZS51cGRhdGUoZnVsbF91cGRhdGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ZGlzYWJsZV9pbnRlcm1pdHRlbnQpCiAKIAogY2xhc3MgU3VidGVzdE5vZGUoVGVzdE5vZGUpOgpA
QCAtMjYzLDQxICszMDYsODYgQEAgY2xhc3MgU3VidGVzdE5vZGUoVGVzdE5vZGUpOgogICAgICAg
ICByZXR1cm4gVHJ1ZQogCiAKK2RlZiBidWlsZF9jb25kaXRpb25hbF90cmVlKF8sIHJ1bl9pbmZv
X3Byb3BlcnRpZXMsIHJlc3VsdHMpOgorICAgIHByb3BlcnRpZXMsIGRlcGVuZGVudF9wcm9wcyA9
IHJ1bl9pbmZvX3Byb3BlcnRpZXMKKyAgICByZXR1cm4gZXhwZWN0ZWR0cmVlLmJ1aWxkX3RyZWUo
cHJvcGVydGllcywgZGVwZW5kZW50X3Byb3BzLCByZXN1bHRzKQorCisKK2RlZiBidWlsZF91bmNv
bmRpdGlvbmFsX3RyZWUoXywgcnVuX2luZm9fcHJvcGVydGllcywgcmVzdWx0cyk6CisgICAgcm9v
dCA9IGV4cGVjdGVkdHJlZS5Ob2RlKE5vbmUsIE5vbmUpCisgICAgZm9yIHJ1bl9pbmZvLCB2YWx1
ZXMgaW4gaXRlcml0ZW1zKHJlc3VsdHMpOgorICAgICAgICBmb3IgdmFsdWUsIGNvdW50IGluIGl0
ZXJpdGVtcyh2YWx1ZXMpOgorICAgICAgICAgICAgcm9vdC5yZXN1bHRfdmFsdWVzW3ZhbHVlXSAr
PSBjb3VudAorICAgICAgICByb290LnJ1bl9pbmZvLmFkZChydW5faW5mbykKKyAgICByZXR1cm4g
cm9vdAorCisKIGNsYXNzIFByb3BlcnR5VXBkYXRlKG9iamVjdCk6CiAgICAgcHJvcGVydHlfbmFt
ZSA9IE5vbmUKICAgICBjbHNfZGVmYXVsdF92YWx1ZSA9IE5vbmUKICAgICB2YWx1ZV90eXBlID0g
Tm9uZQorICAgIHByb3BlcnR5X2J1aWxkZXIgPSBOb25lCiAKICAgICBkZWYgX19pbml0X18oc2Vs
Ziwgbm9kZSk6CiAgICAgICAgIHNlbGYubm9kZSA9IG5vZGUKLSAgICAgICAgc2VsZi51cGRhdGVk
ID0gW10KLSAgICAgICAgc2VsZi5uZXcgPSBbXQogICAgICAgICBzZWxmLmRlZmF1bHRfdmFsdWUg
PSBzZWxmLmNsc19kZWZhdWx0X3ZhbHVlCi0KLSAgICBkZWYgc2V0KHNlbGYsIHJ1bl9pbmZvLCBp
bl92YWx1ZSk6Ci0gICAgICAgIHNlbGYuY2hlY2tfZGVmYXVsdChpbl92YWx1ZSkKLSAgICAgICAg
dmFsdWUgPSBzZWxmLmdldF92YWx1ZShpbl92YWx1ZSkKLQotICAgICAgICAjIEFkZCB0aGlzIHJl
c3VsdCB0byB0aGUgbGlzdCBvZiByZXN1bHRzIHNhdGlzZnlpbmcKLSAgICAgICAgIyBhbnkgY29u
ZGl0aW9uIGluIHRoZSBsaXN0IG9mIHVwZGF0ZWQgcmVzdWx0cyBpdCBtYXRjaGVzCi0gICAgICAg
IGZvciAoY29uZCwgdmFsdWVzKSBpbiBzZWxmLnVwZGF0ZWQ6Ci0gICAgICAgICAgICBpZiBjb25k
KHJ1bl9pbmZvKToKLSAgICAgICAgICAgICAgICB2YWx1ZXMuYXBwZW5kKFZhbHVlKHJ1bl9pbmZv
LCB2YWx1ZSkpCi0gICAgICAgICAgICAgICAgaWYgdmFsdWUgIT0gY29uZC52YWx1ZV9hcyhzZWxm
LnZhbHVlX3R5cGUpOgotICAgICAgICAgICAgICAgICAgICBzZWxmLm5vZGUucm9vdC5tb2RpZmll
ZCA9IFRydWUKLSAgICAgICAgICAgICAgICBicmVhawotICAgICAgICBlbHNlOgotICAgICAgICAg
ICAgIyBXZSBkaWRuJ3QgZmluZCBhIHByZXZpb3VzIHZhbHVlIGZvciB0aGlzCi0gICAgICAgICAg
ICBzZWxmLm5ldy5hcHBlbmQoVmFsdWUocnVuX2luZm8sIHZhbHVlKSkKLSAgICAgICAgICAgIHNl
bGYubm9kZS5yb290Lm1vZGlmaWVkID0gVHJ1ZQorICAgICAgICBzZWxmLmhhc19yZXN1bHQgPSBG
YWxzZQorICAgICAgICBzZWxmLnJlc3VsdHMgPSBkZWZhdWx0ZGljdChsYW1iZGE6IGRlZmF1bHRk
aWN0KGludCkpCisgICAgICAgIHNlbGYudXBkYXRlX2ludGVybWl0dGVudCA9IHNlbGYubm9kZS5y
b290LnVwZGF0ZV9pbnRlcm1pdHRlbnQKKyAgICAgICAgc2VsZi5yZW1vdmVfaW50ZXJtaXR0ZW50
ID0gc2VsZi5ub2RlLnJvb3QucmVtb3ZlX2ludGVybWl0dGVudAorCisgICAgZGVmIHJ1bl9pbmZv
X2J5X2NvbmRpdGlvbihzZWxmLCBydW5faW5mb19pbmRleCwgY29uZGl0aW9ucyk6CisgICAgICAg
IHJ1bl9pbmZvX2J5X2NvbmRpdGlvbiA9IGRlZmF1bHRkaWN0KGxpc3QpCisgICAgICAgICMgQSBj
b25kaXRpb24gbWlnaHQgbWF0Y2ggMCBvciBtb3JlIHJ1bl9pbmZvIHZhbHVlcworICAgICAgICBy
dW5faW5mb3MgPSBydW5faW5mb19pbmRleC5rZXlzKCkKKyAgICAgICAgZm9yIGNvbmQgaW4gY29u
ZGl0aW9uczoKKyAgICAgICAgICAgIGZvciBydW5faW5mbyBpbiBydW5faW5mb3M6CisgICAgICAg
ICAgICAgICAgaWYgY29uZChydW5faW5mbyk6CisgICAgICAgICAgICAgICAgICAgIHJ1bl9pbmZv
X2J5X2NvbmRpdGlvbltjb25kXS5hcHBlbmQocnVuX2luZm8pCisKKyAgICAgICAgcmV0dXJuIHJ1
bl9pbmZvX2J5X2NvbmRpdGlvbgorCisgICAgZGVmIHNldChzZWxmLCBydW5faW5mbywgdmFsdWUp
OgorICAgICAgICBzZWxmLmhhc19yZXN1bHQgPSBUcnVlCisgICAgICAgIHNlbGYubm9kZS5oYXNf
cmVzdWx0ID0gVHJ1ZQorICAgICAgICBzZWxmLmNoZWNrX2RlZmF1bHQodmFsdWUpCisgICAgICAg
IHZhbHVlID0gc2VsZi5mcm9tX3Jlc3VsdF92YWx1ZSh2YWx1ZSkKKyAgICAgICAgc2VsZi5yZXN1
bHRzW3J1bl9pbmZvXVt2YWx1ZV0gKz0gMQogCiAgICAgZGVmIGNoZWNrX2RlZmF1bHQoc2VsZiwg
cmVzdWx0KToKICAgICAgICAgcmV0dXJuCiAKLSAgICBkZWYgZ2V0X3ZhbHVlKHNlbGYsIGluX3Zh
bHVlKToKLSAgICAgICAgcmV0dXJuIGluX3ZhbHVlCisgICAgZGVmIGZyb21fcmVzdWx0X3ZhbHVl
KHNlbGYsIHZhbHVlKToKKyAgICAgICAgIiIiQ29udmVydCBhIHZhbHVlIGZyb20gYSB0ZXN0IHJl
c3VsdCBpbnRvIHRoZSBpbnRlcm5hbCBmb3JtYXQiIiIKKyAgICAgICAgcmV0dXJuIHZhbHVlCiAK
LSAgICBkZWYgY29hbGVzY2Uoc2VsZiwgc3RhYmlsaXR5PU5vbmUpOgorICAgIGRlZiBmcm9tX2lu
aV92YWx1ZShzZWxmLCB2YWx1ZSk6CisgICAgICAgICIiIkNvbnZlcnQgYSB2YWx1ZSBmcm9tIGFu
IGluaSBmaWxlIGludG8gdGhlIGludGVybmFsIGZvcm1hdCIiIgorICAgICAgICBpZiBzZWxmLnZh
bHVlX3R5cGU6CisgICAgICAgICAgICByZXR1cm4gc2VsZi52YWx1ZV90eXBlKHZhbHVlKQorICAg
ICAgICByZXR1cm4gdmFsdWUKKworICAgIGRlZiB0b19pbmlfdmFsdWUoc2VsZiwgdmFsdWUpOgor
ICAgICAgICAiIiJDb252ZXJ0IGEgdmFsdWUgZnJvbSB0aGUgaW50ZXJuYWwgZm9ybWF0IHRvIHRo
ZSBpbmkgZmlsZSBmb3JtYXQiIiIKKyAgICAgICAgcmV0dXJuIHN0cih2YWx1ZSkKKworICAgIGRl
ZiB1cGRhdGVkX3ZhbHVlKHNlbGYsIGN1cnJlbnQsIG5ldyk6CisgICAgICAgICIiIkdpdmVuIGEg
c2luZ2xlIGN1cnJlbnQgdmFsdWUgYW5kIGEgc2V0IG9mIG9ic2VydmVkIG5ldyB2YWx1ZXMsCisg
ICAgICAgIGNvbXB1dGUgYW4gdXBkYXRlZCB2YWx1ZSBmb3IgdGhlIHByb3BlcnR5IiIiCisgICAg
ICAgIHJldHVybiBuZXcKKworICAgIEBwcm9wZXJ0eQorICAgIGRlZiB1bmNvbmRpdGlvbmFsX3Zh
bHVlKHNlbGYpOgorICAgICAgICB0cnk6CisgICAgICAgICAgICB1bmNvbmRpdGlvbmFsX3ZhbHVl
ID0gc2VsZi5mcm9tX2luaV92YWx1ZSgKKyAgICAgICAgICAgICAgICBzZWxmLm5vZGUuZ2V0KHNl
bGYucHJvcGVydHlfbmFtZSkpCisgICAgICAgIGV4Y2VwdCBLZXlFcnJvcjoKKyAgICAgICAgICAg
IHVuY29uZGl0aW9uYWxfdmFsdWUgPSBzZWxmLmRlZmF1bHRfdmFsdWUKKyAgICAgICAgcmV0dXJu
IHVuY29uZGl0aW9uYWxfdmFsdWUKKworICAgIGRlZiB1cGRhdGUoc2VsZiwKKyAgICAgICAgICAg
ICAgIGZ1bGxfdXBkYXRlPUZhbHNlLAorICAgICAgICAgICAgICAgZGlzYWJsZV9pbnRlcm1pdHRl
bnQ9Tm9uZSk6CiAgICAgICAgICIiIlVwZGF0ZSB0aGUgdW5kZXJseWluZyBtYW5pZmVzdCBBU1Qg
Zm9yIHRoaXMgdGVzdCBiYXNlZCBvbiBhbGwgdGhlCiAgICAgICAgIGFkZGVkIHJlc3VsdHMuCiAK
QEAgLTMwOCw5NiArMzk2LDI3MyBAQCBjbGFzcyBQcm9wZXJ0eVVwZGF0ZShvYmplY3QpOgogCiAg
ICAgICAgIENvbmRpdGlvbmFscyBub3QgbWF0Y2hlZCBieSBhbnkgYWRkZWQgcmVzdWx0IGFyZSBu
b3QgY2hhbmdlZC4KIAotICAgICAgICBXaGVuIGBzdGFiaWxpdHlgIGlzIG5vdCBOb25lLCBkaXNh
YmxlIGFueSB0ZXN0IHRoYXQgc2hvd3MgbXVsdGlwbGUKKyAgICAgICAgV2hlbiBgZGlzYWJsZV9p
bnRlcm1pdHRlbnRgIGlzIG5vdCBOb25lLCBkaXNhYmxlIGFueSB0ZXN0IHRoYXQgc2hvd3MgbXVs
dGlwbGUKICAgICAgICAgdW5leHBlY3RlZCByZXN1bHRzIGZvciB0aGUgc2FtZSBzZXQgb2YgcGFy
YW1ldGVycy4KICAgICAgICAgIiIiCisgICAgICAgIGlmIG5vdCBzZWxmLmhhc19yZXN1bHQ6Cisg
ICAgICAgICAgICByZXR1cm4KIAotICAgICAgICB0cnk6Ci0gICAgICAgICAgICB1bmNvbmRpdGlv
bmFsX3ZhbHVlID0gc2VsZi5ub2RlLmdldChzZWxmLnByb3BlcnR5X25hbWUpCi0gICAgICAgICAg
ICBpZiBzZWxmLnZhbHVlX3R5cGU6Ci0gICAgICAgICAgICAgICAgdW5jb25kaXRpb25hbF92YWx1
ZSA9IHNlbGYudmFsdWVfdHlwZSh1bmNvbmRpdGlvbmFsX3ZhbHVlKQotICAgICAgICBleGNlcHQg
S2V5RXJyb3I6Ci0gICAgICAgICAgICB1bmNvbmRpdGlvbmFsX3ZhbHVlID0gc2VsZi5kZWZhdWx0
X3ZhbHVlCisgICAgICAgIHByb3BlcnR5X3RyZWUgPSBzZWxmLnByb3BlcnR5X2J1aWxkZXIoc2Vs
Zi5ub2RlLnJvb3QucnVuX2luZm9fcHJvcGVydGllcywKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnJlc3VsdHMpCiAKLSAgICAgICAgZm9yIGNvbmRp
dGlvbmFsX3ZhbHVlLCByZXN1bHRzIGluIHNlbGYudXBkYXRlZDoKLSAgICAgICAgICAgIGlmIG5v
dCByZXN1bHRzOgotICAgICAgICAgICAgICAgICMgVGhlIGNvbmRpdGlvbmFsIGRpZG4ndCBtYXRj
aCBhbnl0aGluZyBpbiB0aGVzZSBydW5zIHNvIGxlYXZlIGl0IGFsb25lCi0gICAgICAgICAgICAg
ICAgcGFzcwotICAgICAgICAgICAgZWxpZiBhbGwocmVzdWx0c1swXS52YWx1ZSA9PSByZXN1bHQu
dmFsdWUgZm9yIHJlc3VsdCBpbiByZXN1bHRzKToKLSAgICAgICAgICAgICAgICAjIEFsbCB0aGUg
bmV3IHZhbHVlcyBmb3IgdGhpcyBjb25kaXRpb25hbCBtYXRjaGVkLCBzbyB1cGRhdGUgdGhlIG5v
ZGUKLSAgICAgICAgICAgICAgICByZXN1bHQgPSByZXN1bHRzWzBdCi0gICAgICAgICAgICAgICAg
aWYgKHJlc3VsdC52YWx1ZSA9PSB1bmNvbmRpdGlvbmFsX3ZhbHVlIGFuZAotICAgICAgICAgICAg
ICAgICAgICBjb25kaXRpb25hbF92YWx1ZS5jb25kaXRpb25fbm9kZSBpcyBub3QgTm9uZSk6Ci0g
ICAgICAgICAgICAgICAgICAgIGlmIHNlbGYucHJvcGVydHlfbmFtZSBpbiBzZWxmLm5vZGU6Ci0g
ICAgICAgICAgICAgICAgICAgICAgICBzZWxmLm5vZGUucmVtb3ZlX3ZhbHVlKHNlbGYucHJvcGVy
dHlfbmFtZSwgY29uZGl0aW9uYWxfdmFsdWUpCi0gICAgICAgICAgICAgICAgZWxzZToKLSAgICAg
ICAgICAgICAgICAgICAgY29uZGl0aW9uYWxfdmFsdWUudmFsdWUgPSBzZWxmLnVwZGF0ZV92YWx1
ZShjb25kaXRpb25hbF92YWx1ZS52YWx1ZV9hcyhzZWxmLnZhbHVlX3R5cGUpLAotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJl
c3VsdC52YWx1ZSkKLSAgICAgICAgICAgIGVsaWYgY29uZGl0aW9uYWxfdmFsdWUuY29uZGl0aW9u
X25vZGUgaXMgbm90IE5vbmU6Ci0gICAgICAgICAgICAgICAgIyBCbG93IGF3YXkgdGhlIGV4aXN0
aW5nIGNvbmRpdGlvbiBhbmQgcmVidWlsZCBmcm9tIHNjcmF0Y2gKLSAgICAgICAgICAgICAgICAj
IFRoaXMgaXNuJ3Qgc3VyZSB0byB3b3JrIGlmIHdlIGhhdmUgYSBjb25kaXRpb25hbCBsYXRlciB0
aGF0IG1hdGNoZXMKLSAgICAgICAgICAgICAgICAjIHRoZXNlIHZhbHVlcyB0b28sIGJ1dCB3ZSBj
YW4gaG9wZSwgdmVyaWZ5IHRoYXQgd2UgZ2V0IHRoZSByZXN1bHRzCi0gICAgICAgICAgICAgICAg
IyB3ZSBleHBlY3QsIGFuZCBpZiBub3QgbGV0IGEgaHVtYW4gc29ydCBpdCBvdXQKLSAgICAgICAg
ICAgICAgICBzZWxmLm5vZGUucmVtb3ZlX3ZhbHVlKHNlbGYucHJvcGVydHlfbmFtZSwgY29uZGl0
aW9uYWxfdmFsdWUpCi0gICAgICAgICAgICAgICAgc2VsZi5uZXcuZXh0ZW5kKHJlc3VsdHMpCi0g
ICAgICAgICAgICBlbGlmIGNvbmRpdGlvbmFsX3ZhbHVlLmNvbmRpdGlvbl9ub2RlIGlzIE5vbmU6
Ci0gICAgICAgICAgICAgICAgc2VsZi5uZXcuZXh0ZW5kKHJlc3VsdCBmb3IgcmVzdWx0IGluIHJl
c3VsdHMKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgcmVzdWx0LnZhbHVlICE9
IHVuY29uZGl0aW9uYWxfdmFsdWUpCi0KLSAgICAgICAgIyBJdCBpcyBhbiBpbnZhcmlhbnQgdGhh
dCBub3RoaW5nIGluIG5ldyBtYXRjaGVzIGFuIGV4aXN0aW5nCi0gICAgICAgICMgY29uZGl0aW9u
IGV4Y2VwdCBmb3IgdGhlIGRlZmF1bHQgY29uZGl0aW9uCi0gICAgICAgIGlmIHNlbGYubmV3Ogot
ICAgICAgICAgICAgdXBkYXRlX2RlZmF1bHQsIG5ld19kZWZhdWx0X3ZhbHVlID0gc2VsZi51cGRh
dGVfZGVmYXVsdCgpCi0gICAgICAgICAgICBpZiB1cGRhdGVfZGVmYXVsdDoKLSAgICAgICAgICAg
ICAgICBpZiBuZXdfZGVmYXVsdF92YWx1ZSAhPSBzZWxmLmRlZmF1bHRfdmFsdWU6Ci0gICAgICAg
ICAgICAgICAgICAgIHNlbGYubm9kZS5zZXQoc2VsZi5wcm9wZXJ0eV9uYW1lLAotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYudXBkYXRlX3ZhbHVlKHVuY29uZGl0aW9uYWxf
dmFsdWUsIG5ld19kZWZhdWx0X3ZhbHVlKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBjb25kaXRpb249Tm9uZSkKKyAgICAgICAgY29uZGl0aW9ucywgZXJyb3JzID0gc2VsZi51
cGRhdGVfY29uZGl0aW9ucyhwcm9wZXJ0eV90cmVlLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZ1bGxfdXBkYXRlKQorCisgICAgICAgIGZvciBl
IGluIGVycm9yczoKKyAgICAgICAgICAgIGlmIGRpc2FibGVfaW50ZXJtaXR0ZW50OgorICAgICAg
ICAgICAgICAgIGNvbmRpdGlvbiA9IGUuY29uZC5jaGlsZHJlblswXSBpZiBlLmNvbmQgZWxzZSBO
b25lCisgICAgICAgICAgICAgICAgbXNnID0gZGlzYWJsZV9pbnRlcm1pdHRlbnQgaWYgaXNpbnN0
YW5jZShkaXNhYmxlX2ludGVybWl0dGVudCwgKHN0ciwgdW5pY29kZSkpIGVsc2UgInVuc3RhYmxl
IgorICAgICAgICAgICAgICAgIHNlbGYubm9kZS5zZXQoImRpc2FibGVkIiwgbXNnLCBjb25kaXRp
b24pCisgICAgICAgICAgICAgICAgc2VsZi5ub2RlLm5ld19kaXNhYmxlZCA9IFRydWUKICAgICAg
ICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgbXNnID0gIkNvbmZsaWN0aW5nIG1ldGFkYXRh
IHZhbHVlcyBmb3IgJXMiICUgKAorICAgICAgICAgICAgICAgICAgICBzZWxmLm5vZGUucm9vdC50
ZXN0X3BhdGgpCisgICAgICAgICAgICAgICAgaWYgZS5jb25kOgorICAgICAgICAgICAgICAgICAg
ICBtc2cgKz0gIjogJXMiICUgc2VyaWFsaXplKGUuY29uZCkuc3RyaXAoKQorICAgICAgICAgICAg
ICAgIHByaW50KG1zZykKKworICAgICAgICAjIElmIGFsbCB0aGUgdmFsdWVzIG1hdGNoIHJlbW92
ZSBhbGwgY29uZGl0aW9uYWxzCisgICAgICAgICMgVGhpcyBoYW5kbGVzIHRoZSBjYXNlIHdoZXJl
IHdlIHVwZGF0ZSBhIG51bWJlciBvZiBleGlzdGluZyBjb25kaXRpb25zIGFuZCB0aGV5CisgICAg
ICAgICMgYWxsIGVuZCB1cCBsb29raW5nIGxpa2UgdGhlIHBvc3QtdXBkYXRlIGRlZmF1bHQuCisg
ICAgICAgIG5ld19kZWZhdWx0ID0gc2VsZi5kZWZhdWx0X3ZhbHVlCisgICAgICAgIGlmIGNvbmRp
dGlvbnMgYW5kIGNvbmRpdGlvbnNbLTFdWzBdIGlzIE5vbmU6CisgICAgICAgICAgICBuZXdfZGVm
YXVsdCA9IGNvbmRpdGlvbnNbLTFdWzFdCisgICAgICAgIGlmIGFsbChjb25kaXRpb25bMV0gPT0g
bmV3X2RlZmF1bHQgZm9yIGNvbmRpdGlvbiBpbiBjb25kaXRpb25zKToKKyAgICAgICAgICAgIGNv
bmRpdGlvbnMgPSBbKE5vbmUsIG5ld19kZWZhdWx0KV0KKworICAgICAgICAjIERvbid0IHNldCB0
aGUgZGVmYXVsdCB0byB0aGUgY2xhc3MgZGVmYXVsdAorICAgICAgICBpZiAoY29uZGl0aW9ucyBh
bmQKKyAgICAgICAgICAgIGNvbmRpdGlvbnNbLTFdWzBdIGlzIE5vbmUgYW5kCisgICAgICAgICAg
ICBjb25kaXRpb25zWy0xXVsxXSA9PSBzZWxmLmRlZmF1bHRfdmFsdWUpOgorICAgICAgICAgICAg
c2VsZi5ub2RlLm1vZGlmaWVkID0gVHJ1ZQorICAgICAgICAgICAgY29uZGl0aW9ucyA9IGNvbmRp
dGlvbnNbOi0xXQorCisgICAgICAgIGlmIHNlbGYubm9kZS5tb2RpZmllZDoKKyAgICAgICAgICAg
IHNlbGYubm9kZS5jbGVhcihzZWxmLnByb3BlcnR5X25hbWUpCisKKyAgICAgICAgICAgIGZvciBj
b25kaXRpb24sIHZhbHVlIGluIGNvbmRpdGlvbnM6CisgICAgICAgICAgICAgICAgc2VsZi5ub2Rl
LnNldChzZWxmLnByb3BlcnR5X25hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBz
ZWxmLnRvX2luaV92YWx1ZSh2YWx1ZSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBj
b25kaXRpb24pCisKKyAgICBkZWYgdXBkYXRlX2NvbmRpdGlvbnMoc2VsZiwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgcHJvcGVydHlfdHJlZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ZnVsbF91cGRhdGUpOgorICAgICAgICAjIFRoaXMgaXMgY29tcGxpY2F0ZWQgYmVjYXVzZSB0aGUg
ZXhwZWN0ZWQgYmVoYXZpb3VyIGlzIGNvbXBsZXgKKyAgICAgICAgIyBUaGUgY29tcGxleGl0eSBh
cmlzZXMgZnJvbSB0aGUgZmFjdCB0aGF0IHRoZXJlIGFyZSB0d28gd2F5cyBvZiBydW5uaW5nCisg
ICAgICAgICMgdGhlIHRvb2wsIHdpdGggYSBmdWxsIHNldCBvZiBydW5zIChmdWxsX3VwZGF0ZT1U
cnVlKSBvciB3aXRoIHBhcnRpYWwgbWV0YWRhdGEKKyAgICAgICAgIyAoZnVsbF91cGRhdGU9RmFs
c2UpLiBJbiB0aGUgY2FzZSBvZiBhIGZ1bGwgdXBkYXRlIHRoaW5ncyBhcmUgcmVsYXRpdmVseSBz
aW1wbGU6CisgICAgICAgICMgKiBBbGwgZXhpc3RpbmcgY29uZGl0aW9uYWxzIGFyZSBpZ25vcmVk
LCB3aXRoIHRoZSBleGNlcHRpb24gb2YgY29uZGl0aW9uYWxzIHRoYXQKKyAgICAgICAgIyAgIGRl
cGVuZCBvbiB2YXJpYWJsZXMgbm90IHVzZWQgYnkgdGhlIHVwZGF0ZXIsIHdoaWNoIGFyZSByZXRh
aW5lZCBhcy1pcworICAgICAgICAjICogQWxsIGNyZWF0ZWQgY29uZGl0aW9uYWxzIGFyZSBpbmRl
cGVuZGVudCBvZiBlYWNoIG90aGVyIChpLmUuIG9yZGVyIGlzbid0CisgICAgICAgICMgICBpbXBv
cnRhbnQgaW4gdGhlIGNyZWF0ZWQgY29uZGl0aW9uYWxzKQorICAgICAgICAjIEluIHRoZSBjYXNl
IHdoZXJlIHdlIGRvbid0IGhhdmUgYSBmdWxsIHNldCBvZiBydW5zLCB0aGUgZXhwZWN0ZWQgYmVo
YXZpb3VyCisgICAgICAgICMgaXMgbXVjaCBsZXNzIGNsZWFyLiBUaGlzIGlzIG9mIGNvdXJzZSB0
aGUgY29tbW9uIGNhc2UgZm9yIHdoZW4gYSBkZXZlbG9wZXIKKyAgICAgICAgIyBydW5zIHRoZSB0
ZXN0IG9uIHRoZWlyIG93biBtYWNoaW5lLiBJbiB0aGlzIGNhc2UgdGhlIGFzc3VtcHRpb25zIGFi
b3ZlIGFyZSB1bnRydWUKKyAgICAgICAgIyAqIFRoZSBleGlzdGluZyBjb25kaXRpb25zIG1heSBi
ZSByZXF1aXJlZCB0byBoYW5kbGUgb3RoZXIgcGxhdGZvcm1zCisgICAgICAgICMgKiBUaGUgb3Jk
ZXIgb2YgdGhlIGNvbmRpdGlvbnMgbWF5IGJlIGltcG9ydGFudCwgc2luY2Ugd2UgZG9uJ3Qga25v
dyBpZiB0aGV5IG92ZXJsYXAKKyAgICAgICAgIyAgIGUuZy4gYGlmIG9zID09IGxpbnV4IGFuZCB2
ZXJzaW9uID09IDE4LjA0YCBvdmVybGFwcyB3aXRoIGBpZiAob3MgIT0gd2luKWAuCisgICAgICAg
ICMgU28gaW4gdGhlIGNhc2Ugd2UgaGF2ZSBhIGZ1bGwgc2V0IG9mIHJ1bnMsIHRoZSBwcm9jZXNz
IGlzIHByZXR0eSBzaW1wbGU6CisgICAgICAgICMgKiBHZW5lcmF0ZSB0aGUgY29uZGl0aW9uYWxz
IGZvciB0aGUgcHJvcGVydHlfdHJlZQorICAgICAgICAjICogUGljayB0aGUgbW9zdCBjb21tb24g
dmFsdWUgYXMgdGhlIGRlZmF1bHQgYW5kIGFkZCBvbmx5IHRob3NlIGNvbmRpdGlvbnMKKyAgICAg
ICAgIyAgIG5vdCBtYXRjaGluZyB0aGUgZGVmYXVsdAorICAgICAgICAjIEluIHRoZSBjYXNlIHdo
ZXJlIHdlIGhhdmUgYSBwYXJ0aWFsIHNldCBvZiBydW5zLCB0aGluZ3MgYXJlIG1vcmUgY29tcGxl
eAorICAgICAgICAjIGFuZCBtb3JlIGJlc3QtZWZmb3J0CisgICAgICAgICMgKiBGb3IgZWFjaCBl
eGlzdGluZyBjb25kaXRpb25hbCwgc2VlIGlmIGl0IG1hdGNoZXMgYW55IG9mIHRoZSBydW4gaW5m
byB3ZQorICAgICAgICAjICAgaGF2ZS4gSW4gY2FzZXMgd2hlcmUgaXQgZG9lcyBtYXRjaCwgcmVj
b3JkIHRoZSBuZXcgcmVzdWx0cworICAgICAgICAjICogV2hlcmUgYWxsIHRoZSBuZXcgcmVzdWx0
cyBtYXRjaCwgdXBkYXRlIHRoZSByaWdodCBoYW5kIHNpZGUgb2YgdGhhdAorICAgICAgICAjICAg
Y29uZGl0aW9uYWwsIG90aGVyd2lzZSByZW1vdmUgaXQKKyAgICAgICAgIyAqIElmIHRoaXMgbGVh
dmVzIG5vdGhpbmcgZXhpc3RpbmcsIHRoZW4gcHJvY2VlZCBhcyB3aXRoIHRoZSBmdWxsIHVwZGF0
ZQorICAgICAgICAjICogT3RoZXJ3aXNlIGFkZCBjb25kaXRpb25hbHMgZm9yIHRoZSBydW5faW5m
byB0aGF0IGRvZXNuJ3QgbWF0Y2ggYW55CisgICAgICAgICMgICByZW1haW5pbmcgY29uZGl0aW9u
cworICAgICAgICBwcmV2X2RlZmF1bHQgPSBOb25lCisKKyAgICAgICAgY3VycmVudF9jb25kaXRp
b25zID0gc2VsZi5ub2RlLmdldF9jb25kaXRpb25zKHNlbGYucHJvcGVydHlfbmFtZSkKKworICAg
ICAgICAjIElnbm9yZSB0aGUgY3VycmVudCBkZWZhdWx0IHZhbHVlCisgICAgICAgIGlmIGN1cnJl
bnRfY29uZGl0aW9ucyBhbmQgY3VycmVudF9jb25kaXRpb25zWy0xXS5jb25kaXRpb25fbm9kZSBp
cyBOb25lOgorICAgICAgICAgICAgc2VsZi5ub2RlLm1vZGlmaWVkID0gVHJ1ZQorICAgICAgICAg
ICAgcHJldl9kZWZhdWx0ID0gY3VycmVudF9jb25kaXRpb25zWy0xXS52YWx1ZQorICAgICAgICAg
ICAgY3VycmVudF9jb25kaXRpb25zID0gY3VycmVudF9jb25kaXRpb25zWzotMV0KKworICAgICAg
ICAjIElmIHRoZXJlIGFyZW4ndCBhbnkgY3VycmVudCBjb25kaXRpb25zLCBvciB0aGVyZSBpcyBq
dXN0IGEgZGVmYXVsdAorICAgICAgICAjIHZhbHVlIGZvciBhbGwgcnVuX2luZm8sIHByb2NlZWQg
YXMgZm9yIGEgZnVsbCB1cGRhdGUKKyAgICAgICAgaWYgbm90IGN1cnJlbnRfY29uZGl0aW9uczoK
KyAgICAgICAgICAgIHJldHVybiBzZWxmLl91cGRhdGVfY29uZGl0aW9uc19mdWxsKHByb3BlcnR5
X3RyZWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBw
cmV2X2RlZmF1bHQ9cHJldl9kZWZhdWx0KQorCisgICAgICAgIGNvbmRpdGlvbnMgPSBbXQorICAg
ICAgICBlcnJvcnMgPSBbXQorCisgICAgICAgIHJ1bl9pbmZvX2luZGV4ID0ge3J1bl9pbmZvOiBu
b2RlCisgICAgICAgICAgICAgICAgICAgICAgICAgIGZvciBub2RlIGluIHByb3BlcnR5X3RyZWUK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yIHJ1bl9pbmZvIGluIG5vZGUucnVuX2luZm99
CisKKyAgICAgICAgbm9kZV9ieV9ydW5faW5mbyA9IHtydW5faW5mbzogbm9kZQorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGZvciAocnVuX2luZm8sIG5vZGUpIGluIGl0ZXJpdGVtcyhydW5f
aW5mb19pbmRleCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiBub2RlLnJlc3VsdF92
YWx1ZXN9CisKKyAgICAgICAgcnVuX2luZm9fYnlfY29uZGl0aW9uID0gc2VsZi5ydW5faW5mb19i
eV9jb25kaXRpb24ocnVuX2luZm9faW5kZXgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGN1cnJlbnRfY29uZGl0aW9ucykKKworICAg
ICAgICBydW5faW5mb193aXRoX2NvbmRpdGlvbiA9IHNldCgpCisKKyAgICAgICAgaWYgZnVsbF91
cGRhdGU6CisgICAgICAgICAgICAjIEV2ZW4gZm9yIGEgZnVsbCB1cGRhdGUgd2UgbmVlZCB0byBr
ZWVwIGhhbmQtd3JpdHRlbiBjb25kaXRpb25zIG5vdAorICAgICAgICAgICAgIyB1c2luZyB0aGUg
cHJvcGVydGllcyB3ZSd2ZSBzcGVjaWZpZWQgYW5kIG5vdCBtYXRjaGluZyBhbnkgcnVuX2luZm8K
KyAgICAgICAgICAgIHRvcF9sZXZlbF9wcm9wcywgZGVwZW5kZW50X3Byb3BzID0gc2VsZi5ub2Rl
LnJvb3QucnVuX2luZm9fcHJvcGVydGllcworICAgICAgICAgICAgdXBkYXRlX3Byb3BlcnRpZXMg
PSBzZXQodG9wX2xldmVsX3Byb3BzKQorICAgICAgICAgICAgZm9yIGl0ZW0gaW4gaXRlcnZhbHVl
cyhkZXBlbmRlbnRfcHJvcHMpOgorICAgICAgICAgICAgICAgIHVwZGF0ZV9wcm9wZXJ0aWVzIHw9
IHNldChkZXBlbmRlbnRfcHJvcHMpCisgICAgICAgICAgICBmb3IgY29uZGl0aW9uIGluIGN1cnJl
bnRfY29uZGl0aW9uczoKKyAgICAgICAgICAgICAgICBpZiAoKG5vdCBjb25kaXRpb24udmFyaWFi
bGVzLmlzc3Vic2V0KHVwZGF0ZV9wcm9wZXJ0aWVzKSBhbmQKKyAgICAgICAgICAgICAgICAgICAg
IG5vdCBydW5faW5mb19ieV9jb25kaXRpb25bY29uZGl0aW9uXSkpOgorICAgICAgICAgICAgICAg
ICAgICBjb25kaXRpb25zLmFwcGVuZCgoY29uZGl0aW9uLmNvbmRpdGlvbl9ub2RlLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5mcm9tX2luaV92YWx1ZShjb25k
aXRpb24udmFsdWUpKSkKKworICAgICAgICAgICAgbmV3X2NvbmRpdGlvbnMsIGVycm9ycyA9IHNl
bGYuX3VwZGF0ZV9jb25kaXRpb25zX2Z1bGwocHJvcGVydHlfdHJlZSwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByZXZf
ZGVmYXVsdD1wcmV2X2RlZmF1bHQpCisgICAgICAgICAgICBjb25kaXRpb25zLmV4dGVuZChuZXdf
Y29uZGl0aW9ucykKKyAgICAgICAgICAgIHJldHVybiBjb25kaXRpb25zLCBlcnJvcnMKKworICAg
ICAgICAjIFJldGFpbiBleGlzdGluZyBjb25kaXRpb25zIGlmIHRoZXkgbWF0Y2ggdGhlIHVwZGF0
ZWQgdmFsdWVzCisgICAgICAgIGZvciBjb25kaXRpb24gaW4gY3VycmVudF9jb25kaXRpb25zOgor
ICAgICAgICAgICAgIyBBbGwgcnVuX2luZm8gdGhhdCBpc24ndCBoYW5kbGVkIGJ5IHNvbWUgcHJl
dmlvdXMgY29uZGl0aW9uCisgICAgICAgICAgICBhbGxfcnVuX2luZm9zX2NvbmRpdGlvbiA9IHJ1
bl9pbmZvX2J5X2NvbmRpdGlvbltjb25kaXRpb25dCisgICAgICAgICAgICBydW5faW5mb3MgPSB7
aXRlbSBmb3IgaXRlbSBpbiBhbGxfcnVuX2luZm9zX2NvbmRpdGlvbgorICAgICAgICAgICAgICAg
ICAgICAgICAgIGlmIGl0ZW0gbm90IGluIHJ1bl9pbmZvX3dpdGhfY29uZGl0aW9ufQorCisgICAg
ICAgICAgICBpZiBub3QgcnVuX2luZm9zOgorICAgICAgICAgICAgICAgICMgUmV0YWluIGV4aXN0
aW5nIGNvbmRpdGlvbnMgdGhhdCBkb24ndCBtYXRjaCBhbnl0aGluZyBpbiB0aGUgdXBkYXRlCisg
ICAgICAgICAgICAgICAgY29uZGl0aW9ucy5hcHBlbmQoKGNvbmRpdGlvbi5jb25kaXRpb25fbm9k
ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5mcm9tX2luaV92YWx1
ZShjb25kaXRpb24udmFsdWUpKSkKKyAgICAgICAgICAgICAgICBjb250aW51ZQorCisgICAgICAg
ICAgICAjIFNldCBvZiBub2RlcyBpbiB0aGUgdXBkYXRlZCB0cmVlIHRoYXQgbWF0Y2ggdGhlIHNh
bWUgcnVuX2luZm8gdmFsdWVzIGFzIHRoZQorICAgICAgICAgICAgIyBjdXJyZW50IGV4aXN0aW5n
IG5vZGUKKyAgICAgICAgICAgIG5vZGVzID0gW25vZGVfYnlfcnVuX2luZm9bcnVuX2luZm9dIGZv
ciBydW5faW5mbyBpbiBydW5faW5mb3MKKyAgICAgICAgICAgICAgICAgICAgIGlmIHJ1bl9pbmZv
IGluIG5vZGVfYnlfcnVuX2luZm9dCisgICAgICAgICAgICAjIElmIGFsbCB0aGUgdmFsdWVzIGFy
ZSB0aGUgc2FtZSwgdXBkYXRlIHRoZSB2YWx1ZQorICAgICAgICAgICAgaWYgbm9kZXMgYW5kIGFs
bChzZXQobm9kZS5yZXN1bHRfdmFsdWVzLmtleXMoKSkgPT0gc2V0KG5vZGVzWzBdLnJlc3VsdF92
YWx1ZXMua2V5cygpKSBmb3Igbm9kZSBpbiBub2Rlcyk6CisgICAgICAgICAgICAgICAgY3VycmVu
dF92YWx1ZSA9IHNlbGYuZnJvbV9pbmlfdmFsdWUoY29uZGl0aW9uLnZhbHVlKQogICAgICAgICAg
ICAgICAgIHRyeToKLSAgICAgICAgICAgICAgICAgICAgc2VsZi5hZGRfbmV3KHVuY29uZGl0aW9u
YWxfdmFsdWUsIHN0YWJpbGl0eSkKLSAgICAgICAgICAgICAgICBleGNlcHQgVXBkYXRlRXJyb3Ig
YXMgZToKLSAgICAgICAgICAgICAgICAgICAgcHJpbnQoIiVzIGZvciAlcywgY2Fubm90IHVwZGF0
ZSAlcyIgJSAoZSwgc2VsZi5ub2RlLnJvb3QudGVzdF9wYXRoLAotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnByb3BlcnR5X25h
bWUpKQotCi0gICAgICAgICMgUmVtb3ZlIGNhc2VzIHdoZXJlIHRoZSB2YWx1ZSBtYXRjaGVzIHRo
ZSBkZWZhdWx0Ci0gICAgICAgIGlmIChzZWxmLnByb3BlcnR5X25hbWUgaW4gc2VsZi5ub2RlLl9k
YXRhIGFuZAotICAgICAgICAgICAgbGVuKHNlbGYubm9kZS5fZGF0YVtzZWxmLnByb3BlcnR5X25h
bWVdKSA+IDAgYW5kCi0gICAgICAgICAgICBzZWxmLm5vZGUuX2RhdGFbc2VsZi5wcm9wZXJ0eV9u
YW1lXVstMV0uY29uZGl0aW9uX25vZGUgaXMgTm9uZSBhbmQKLSAgICAgICAgICAgIHNlbGYubm9k
ZS5fZGF0YVtzZWxmLnByb3BlcnR5X25hbWVdWy0xXS52YWx1ZV9hcyhzZWxmLnZhbHVlX3R5cGUp
ID09IHNlbGYuZGVmYXVsdF92YWx1ZSk6Ci0KLSAgICAgICAgICAgIHNlbGYubm9kZS5yZW1vdmVf
dmFsdWUoc2VsZi5wcm9wZXJ0eV9uYW1lLCBzZWxmLm5vZGUuX2RhdGFbc2VsZi5wcm9wZXJ0eV9u
YW1lXVstMV0pCi0KLSAgICAgICAgIyBSZW1vdmUgZW1wdHkgcHJvcGVydGllcwotICAgICAgICBp
ZiAoc2VsZi5wcm9wZXJ0eV9uYW1lIGluIHNlbGYubm9kZS5fZGF0YSBhbmQgbGVuKHNlbGYubm9k
ZS5fZGF0YVtzZWxmLnByb3BlcnR5X25hbWVdKSA9PSAwKToKLSAgICAgICAgICAgIGZvciBjaGls
ZCBpbiBzZWxmLm5vZGUuY2hpbGRyZW46Ci0gICAgICAgICAgICAgICAgaWYgKGlzaW5zdGFuY2Uo
Y2hpbGQsIEtleVZhbHVlTm9kZSkgYW5kIGNoaWxkLmRhdGEgPT0gc2VsZi5wcm9wZXJ0eV9uYW1l
KToKLSAgICAgICAgICAgICAgICAgICAgY2hpbGQucmVtb3ZlKCkKLSAgICAgICAgICAgICAgICAg
ICAgYnJlYWsKLQotICAgIGRlZiB1cGRhdGVfZGVmYXVsdChzZWxmKToKLSAgICAgICAgIiIiR2V0
IHRoZSB1cGRhdGVkIGRlZmF1bHQgdmFsdWUgZm9yIHRoZSBwcm9wZXJ0eSAoaS5lLiB0aGUgb25l
IGNob3NlbiB3aGVuIG5vIGNvbmRpdGlvbnMgbWF0Y2gpLgotCi0gICAgICAgIDpyZXR1cm5zOiAo
dXBkYXRlLCBuZXdfZGVmYXVsdF92YWx1ZSkgd2hlcmUgdXBkYXRlZCBpcyBhIGJvb2wgaW5kaWNh
dGluZyB3aGV0aGVyIHRoZSBwcm9wZXJ0eQotICAgICAgICAgICAgICAgICAgc2hvdWxkIGJlIHVw
ZGF0ZWQsIGFuZCBuZXdfZGVmYXVsdF92YWx1ZSBpcyB0aGUgdmFsdWUgdG8gc2V0IGlmIGl0IHNo
b3VsZC4iIiIKLSAgICAgICAgcmFpc2UgTm90SW1wbGVtZW50ZWRFcnJvcgorICAgICAgICAgICAg
ICAgICAgICBuZXdfdmFsdWUgPSBzZWxmLnVwZGF0ZWRfdmFsdWUoY3VycmVudF92YWx1ZSwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vZGVzWzBd
LnJlc3VsdF92YWx1ZXMpCisgICAgICAgICAgICAgICAgZXhjZXB0IENvbmRpdGlvbkVycm9yIGFz
IGU6CisgICAgICAgICAgICAgICAgICAgIGVycm9ycy5hcHBlbmQoZSkKKyAgICAgICAgICAgICAg
ICAgICAgY29udGludWUKKyAgICAgICAgICAgICAgICBpZiBuZXdfdmFsdWUgIT0gY3VycmVudF92
YWx1ZToKKyAgICAgICAgICAgICAgICAgICAgc2VsZi5ub2RlLm1vZGlmaWVkID0gVHJ1ZQorICAg
ICAgICAgICAgICAgIGNvbmRpdGlvbnMuYXBwZW5kKChjb25kaXRpb24uY29uZGl0aW9uX25vZGUs
IG5ld192YWx1ZSkpCisgICAgICAgICAgICAgICAgcnVuX2luZm9fd2l0aF9jb25kaXRpb24gfD0g
c2V0KHJ1bl9pbmZvcykKKyAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgIyBEb24n
dCBhcHBlbmQgdGhpcyBjb25kaXRpb24KKyAgICAgICAgICAgICAgICBzZWxmLm5vZGUubW9kaWZp
ZWQgPSBUcnVlCisKKyAgICAgICAgbmV3X2NvbmRpdGlvbnMsIG5ld19lcnJvcnMgPSBzZWxmLmJ1
aWxkX3RyZWVfY29uZGl0aW9ucyhwcm9wZXJ0eV90cmVlLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJ1bl9pbmZvX3dpdGhf
Y29uZGl0aW9uLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHByZXZfZGVmYXVsdCkKKyAgICAgICAgaWYgbmV3X2NvbmRpdGlv
bnM6CisgICAgICAgICAgICBzZWxmLm5vZGUubW9kaWZpZWQgPSBUcnVlCisKKyAgICAgICAgY29u
ZGl0aW9ucy5leHRlbmQobmV3X2NvbmRpdGlvbnMpCisgICAgICAgIGVycm9ycy5leHRlbmQobmV3
X2Vycm9ycykKKworICAgICAgICByZXR1cm4gY29uZGl0aW9ucywgZXJyb3JzCisKKyAgICBkZWYg
X3VwZGF0ZV9jb25kaXRpb25zX2Z1bGwoc2VsZiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgcHJvcGVydHlfdHJlZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJl
dl9kZWZhdWx0PU5vbmUpOgorICAgICAgICBzZWxmLm5vZGUubW9kaWZpZWQgPSBUcnVlCisgICAg
ICAgIGNvbmRpdGlvbnMsIGVycm9ycyA9IHNlbGYuYnVpbGRfdHJlZV9jb25kaXRpb25zKHByb3Bl
cnR5X3RyZWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHNldCgpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBwcmV2X2RlZmF1bHQpCisKKyAgICAgICAgcmV0dXJuIGNvbmRpdGlv
bnMsIGVycm9ycworCisgICAgZGVmIGJ1aWxkX3RyZWVfY29uZGl0aW9ucyhzZWxmLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgcHJvcGVydHlfdHJlZSwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHJ1bl9pbmZvX3dpdGhfY29uZGl0aW9uLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgcHJldl9kZWZhdWx0PU5vbmUpOgorICAgICAgICBjb25kaXRpb25zID0gW10K
KyAgICAgICAgZXJyb3JzID0gW10KKworICAgICAgICB2YWx1ZV9jb3VudCA9IGRlZmF1bHRkaWN0
KGludCkKKworICAgICAgICBkZWYgdG9fY291bnRfdmFsdWUodik6CisgICAgICAgICAgICBpZiB2
IGlzIE5vbmU6CisgICAgICAgICAgICAgICAgcmV0dXJuIHYKKyAgICAgICAgICAgICMgTmVlZCB0
byBjb3VudCB0aGUgdmFsdWVzIGluIGEgaGFzaGFibGUgdHlwZQorICAgICAgICAgICAgY291bnRf
dmFsdWUgPSBzZWxmLnRvX2luaV92YWx1ZSh2KQorICAgICAgICAgICAgaWYgaXNpbnN0YW5jZShj
b3VudF92YWx1ZSwgbGlzdCk6CisgICAgICAgICAgICAgICAgY291bnRfdmFsdWUgPSB0dXBsZShj
b3VudF92YWx1ZSkKKyAgICAgICAgICAgIHJldHVybiBjb3VudF92YWx1ZQorCisKKyAgICAgICAg
cXVldWUgPSBkZXF1ZShbKHByb3BlcnR5X3RyZWUsIFtdKV0pCisgICAgICAgIHdoaWxlIHF1ZXVl
OgorICAgICAgICAgICAgbm9kZSwgcGFyZW50cyA9IHF1ZXVlLnBvcGxlZnQoKQorICAgICAgICAg
ICAgcGFyZW50c19hbmRfc2VsZiA9IHBhcmVudHMgKyBbbm9kZV0KKyAgICAgICAgICAgIGlmIG5v
ZGUucmVzdWx0X3ZhbHVlcyBhbmQgYW55KHJ1bl9pbmZvIG5vdCBpbiBydW5faW5mb193aXRoX2Nv
bmRpdGlvbgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yIHJ1
bl9pbmZvIGluIG5vZGUucnVuX2luZm8pOgorICAgICAgICAgICAgICAgIHByb3Bfc2V0ID0gWyhp
dGVtLnByb3AsIGl0ZW0udmFsdWUpIGZvciBpdGVtIGluIHBhcmVudHNfYW5kX3NlbGYgaWYgaXRl
bS5wcm9wXQorICAgICAgICAgICAgICAgIHZhbHVlID0gbm9kZS5yZXN1bHRfdmFsdWVzCisgICAg
ICAgICAgICAgICAgZXJyb3IgPSBOb25lCisgICAgICAgICAgICAgICAgaWYgcGFyZW50czoKKyAg
ICAgICAgICAgICAgICAgICAgdHJ5OgorICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSBz
ZWxmLnVwZGF0ZWRfdmFsdWUoTm9uZSwgdmFsdWUpCisgICAgICAgICAgICAgICAgICAgIGV4Y2Vw
dCBDb25kaXRpb25FcnJvcjoKKyAgICAgICAgICAgICAgICAgICAgICAgIGV4cHIgPSBtYWtlX2V4
cHIocHJvcF9zZXQsIHZhbHVlKQorICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3IgPSBDb25k
aXRpb25FcnJvcihleHByKQorICAgICAgICAgICAgICAgICAgICBleHByID0gbWFrZV9leHByKHBy
b3Bfc2V0LCB2YWx1ZSkKKyAgICAgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgICAg
ICAjIFRoZSByb290IG5vZGUgbmVlZHMgc3BlY2lhbCBoYW5kbGluZworICAgICAgICAgICAgICAg
ICAgICBleHByID0gTm9uZQorICAgICAgICAgICAgICAgICAgICB0cnk6CisgICAgICAgICAgICAg
ICAgICAgICAgICB2YWx1ZSA9IHNlbGYudXBkYXRlZF92YWx1ZShzZWxmLnVuY29uZGl0aW9uYWxf
dmFsdWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICB2YWx1ZSkKKyAgICAgICAgICAgICAgICAgICAgZXhjZXB0IENvbmRpdGlvbkVycm9yOgorICAg
ICAgICAgICAgICAgICAgICAgICAgZXJyb3IgPSBDb25kaXRpb25FcnJvcihleHByKQorICAgICAg
ICAgICAgICAgICAgICAgICAgIyBJZiB3ZSBnb3QgYW4gZXJyb3IgZm9yIHRoZSByb290IG5vZGUs
IHJlLWFkZCB0aGUgcHJldmlvdXMKKyAgICAgICAgICAgICAgICAgICAgICAgICMgZGVmYXVsdCB2
YWx1ZQorICAgICAgICAgICAgICAgICAgICAgICAgaWYgcHJldl9kZWZhdWx0OgorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGNvbmRpdGlvbnMuYXBwZW5kKChOb25lLCBwcmV2X2RlZmF1bHQp
KQorICAgICAgICAgICAgICAgIGlmIGVycm9yIGlzIE5vbmU6CisgICAgICAgICAgICAgICAgICAg
IGNvdW50X3ZhbHVlID0gdG9fY291bnRfdmFsdWUodmFsdWUpCisgICAgICAgICAgICAgICAgICAg
IHZhbHVlX2NvdW50W2NvdW50X3ZhbHVlXSArPSBsZW4obm9kZS5ydW5faW5mbykKKworICAgICAg
ICAgICAgICAgIGlmIGVycm9yIGlzIE5vbmU6CisgICAgICAgICAgICAgICAgICAgIGNvbmRpdGlv
bnMuYXBwZW5kKChleHByLCB2YWx1ZSkpCisgICAgICAgICAgICAgICAgZWxzZToKKyAgICAgICAg
ICAgICAgICAgICAgZXJyb3JzLmFwcGVuZChlcnJvcikKIAotICAgIGRlZiBhZGRfbmV3KHNlbGYs
IHVuY29uZGl0aW9uYWxfdmFsdWUsIHN0YWJpbGl0eSk6Ci0gICAgICAgICIiIkFkZCBuZXcgY29u
ZGl0aW9uYWwgdmFsdWVzIGZvciB0aGUgcHJvcGVydHkuCisgICAgICAgICAgICBmb3IgY2hpbGQg
aW4gbm9kZS5jaGlsZHJlbjoKKyAgICAgICAgICAgICAgICBxdWV1ZS5hcHBlbmQoKGNoaWxkLCBw
YXJlbnRzX2FuZF9zZWxmKSkKIAotICAgICAgICBTdWJjbGFzc2VzIG5lZWQgbm90IGltcGxlbWVu
dCB0aGlzIGlmIHRoZXkgb25seSBldmVyIHVwZGF0ZSB0aGUgZGVmYXVsdCB2YWx1ZS4iIiIKLSAg
ICAgICAgcmFpc2UgTm90SW1wbGVtZW50ZWRFcnJvcgorICAgICAgICBjb25kaXRpb25zID0gY29u
ZGl0aW9uc1s6Oi0xXQogCi0gICAgZGVmIHVwZGF0ZV92YWx1ZShzZWxmLCBvbGRfdmFsdWUsIG5l
d192YWx1ZSk6Ci0gICAgICAgICIiIkdldCBhIHZhbHVlIHRvIHNldCBvbiB0aGUgcHJvcGVydHks
IGdpdmVuIGl0cyBwcmV2aW91cyB2YWx1ZSBhbmQgdGhlIG5ldyB2YWx1ZSBmcm9tIGxvZ3MuCisg
ICAgICAgICMgSWYgd2UgaGF2ZW4ndCBzZXQgYSBkZWZhdWx0IGNvbmRpdGlvbiwgYWRkIG9uZSBh
bmQgcmVtb3ZlIGFsbCB0aGUgY29uZGl0aW9ucworICAgICAgICAjIHdpdGggdGhlIHNhbWUgdmFs
dWUKKyAgICAgICAgaWYgdmFsdWVfY291bnQgYW5kIChub3QgY29uZGl0aW9ucyBvciBjb25kaXRp
b25zWy0xXVswXSBpcyBub3QgTm9uZSk6CisgICAgICAgICAgICAjIFNvcnQgaW4gb3JkZXIgb2Yg
b2NjdXJlbmNlLCBwcmlvcml0aXNpbmcgdmFsdWVzIHRoYXQgbWF0Y2ggdGhlIGNsYXNzIGRlZmF1
bHQKKyAgICAgICAgICAgICMgb3IgdGhlIHByZXZpb3VzIGRlZmF1bHQKKyAgICAgICAgICAgIGNs
c19kZWZhdWx0ID0gdG9fY291bnRfdmFsdWUoc2VsZi5kZWZhdWx0X3ZhbHVlKQorICAgICAgICAg
ICAgcHJldl9kZWZhdWx0ID0gdG9fY291bnRfdmFsdWUocHJldl9kZWZhdWx0KQorICAgICAgICAg
ICAgY29tbW9uZXN0X3ZhbHVlID0gbWF4KHZhbHVlX2NvdW50LCBrZXk9bGFtYmRhIHg6KHZhbHVl
X2NvdW50LmdldCh4KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICB4ID09IGNsc19kZWZhdWx0LAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHggPT0gcHJldl9kZWZh
dWx0KSkKKyAgICAgICAgICAgIGlmIGlzaW5zdGFuY2UoY29tbW9uZXN0X3ZhbHVlLCB0dXBsZSk6
CisgICAgICAgICAgICAgICAgY29tbW9uZXN0X3ZhbHVlID0gbGlzdChjb21tb25lc3RfdmFsdWUp
CisgICAgICAgICAgICBjb21tb25lc3RfdmFsdWUgPSBzZWxmLmZyb21faW5pX3ZhbHVlKGNvbW1v
bmVzdF92YWx1ZSkKKyAgICAgICAgICAgIGNvbmRpdGlvbnMgPSBbaXRlbSBmb3IgaXRlbSBpbiBj
b25kaXRpb25zIGlmIGl0ZW1bMV0gIT0gY29tbW9uZXN0X3ZhbHVlXQorICAgICAgICAgICAgY29u
ZGl0aW9ucy5hcHBlbmQoKE5vbmUsIGNvbW1vbmVzdF92YWx1ZSkpCiAKLSAgICAgICAgQnkgZGVm
YXVsdCB0aGlzIGp1c3QgcmV0dXJucyB0aGUgbmV3IHZhbHVlLCBidXQgb3ZlcnJpZGluZyBpcyB1
c2VmdWwgaW4gY2FzZXMKLSAgICAgICAgd2hlcmUgd2Ugd2FudCB0aGUgbmV3IHZhbHVlIHRvIGJl
IHNvbWUgZnVuY3Rpb24gb2YgYm90aCBvbGQgYW5kIG5ldyBlLmcuIG1heChvbGRfdmFsdWUsIG5l
d192YWx1ZSkiIiIKLSAgICAgICAgcmV0dXJuIG5ld192YWx1ZQorICAgICAgICByZXR1cm4gY29u
ZGl0aW9ucywgZXJyb3JzCiAKIAogY2xhc3MgRXhwZWN0ZWRVcGRhdGUoUHJvcGVydHlVcGRhdGUp
OgogICAgIHByb3BlcnR5X25hbWUgPSAiZXhwZWN0ZWQiCisgICAgcHJvcGVydHlfYnVpbGRlciA9
IGJ1aWxkX2NvbmRpdGlvbmFsX3RyZWUKIAogICAgIGRlZiBjaGVja19kZWZhdWx0KHNlbGYsIHJl
c3VsdCk6CiAgICAgICAgIGlmIHNlbGYuZGVmYXVsdF92YWx1ZSBpcyBub3QgTm9uZToKQEAgLTQw
NSwxMDcgKzY3MCwxMjMgQEAgY2xhc3MgRXhwZWN0ZWRVcGRhdGUoUHJvcGVydHlVcGRhdGUpOgog
ICAgICAgICBlbHNlOgogICAgICAgICAgICAgc2VsZi5kZWZhdWx0X3ZhbHVlID0gcmVzdWx0LmRl
ZmF1bHRfZXhwZWN0ZWQKIAotICAgIGRlZiBnZXRfdmFsdWUoc2VsZiwgaW5fdmFsdWUpOgotICAg
ICAgICByZXR1cm4gaW5fdmFsdWUuc3RhdHVzCi0KLSAgICBkZWYgdXBkYXRlX2RlZmF1bHQoc2Vs
Zik6Ci0gICAgICAgIHVwZGF0ZV9kZWZhdWx0ID0gYWxsKHNlbGYubmV3WzBdLnZhbHVlID09IHJl
c3VsdC52YWx1ZQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3IgcmVzdWx0IGluIHNl
bGYubmV3KSBhbmQgbm90IHNlbGYudXBkYXRlZAotICAgICAgICBuZXdfdmFsdWUgPSBzZWxmLm5l
d1swXS52YWx1ZQotICAgICAgICByZXR1cm4gdXBkYXRlX2RlZmF1bHQsIG5ld192YWx1ZQorICAg
IGRlZiBmcm9tX3Jlc3VsdF92YWx1ZShzZWxmLCByZXN1bHQpOgorICAgICAgICAjIFdoZW4gd2Ug
YXJlIHVwZGF0aW5nIGludGVybWl0dGVudHMsIHdlIG5lZWQgdG8ga2VlcCBhIHJlY29yZCBvZiBh
bnkgZXhpc3RpbmcKKyAgICAgICAgIyBpbnRlcm1pdHRlbnRzIHRvIHBhc3Mgb24gd2hlbiBidWls
ZGluZyB0aGUgcHJvcGVydHkgdHJlZSBhbmQgbWF0Y2hpbmcgc3RhdHVzZXMgYW5kCisgICAgICAg
ICMgaW50ZXJtaXR0ZW50cyB0byB0aGUgY29ycmVjdCBydW4gaW5mbyAtICB0aGlzIGlzIHNvIHdl
IGNhbiBhZGQgdGhlbSBiYWNrIGludG8gdGhlCisgICAgICAgICMgbWV0YWRhdGEgYWxpZ25lZCB3
aXRoIHRoZSByaWdodCBjb25kaXRpb25zLCB1bmxlc3Mgc3BlY2lmaWVkIG5vdCB0byB3aXRoCisg
ICAgICAgICMgc2VsZi5yZW1vdmVfaW50ZXJtaXR0ZW50LgorICAgICAgICAjIFRoZSAoc3RhdHVz
LCBrbm93bl9pbnRlcm1pdHRlbnQpIHR1cGxlIGlzIGNvdW50ZWQgd2hlbiB0aGUgcHJvcGVydHkg
dHJlZSBpcyBidWlsdCwgYnV0CisgICAgICAgICMgdGhlIGNvdW50IHZhbHVlIG9ubHkgYXBwbGll
cyB0byB0aGUgZmlyc3QgaXRlbSBpbiB0aGUgdHVwbGUsIHRoZSBzdGF0dXMgZnJvbSB0aGF0IHJ1
biwKKyAgICAgICAgIyB3aGVuIHBhc3NlZCB0byBgdXBkYXRlZF92YWx1ZWAuCisgICAgICAgIGlm
IChub3Qgc2VsZi51cGRhdGVfaW50ZXJtaXR0ZW50IG9yCisgICAgICAgICAgICBzZWxmLnJlbW92
ZV9pbnRlcm1pdHRlbnQgb3IKKyAgICAgICAgICAgIG5vdCByZXN1bHQua25vd25faW50ZXJtaXR0
ZW50KToKKyAgICAgICAgICAgIHJldHVybiByZXN1bHQuc3RhdHVzCisgICAgICAgIHJldHVybiBy
ZXN1bHQuc3RhdHVzICsgcmVzdWx0Lmtub3duX2ludGVybWl0dGVudAorCisgICAgZGVmIHRvX2lu
aV92YWx1ZShzZWxmLCB2YWx1ZSk6CisgICAgICAgIGlmIGlzaW5zdGFuY2UodmFsdWUsIChsaXN0
LCB0dXBsZSkpOgorICAgICAgICAgICAgcmV0dXJuIFtzdHIoaXRlbSkgZm9yIGl0ZW0gaW4gdmFs
dWVdCisgICAgICAgIHJldHVybiBzdHIodmFsdWUpCisKKyAgICBkZWYgdXBkYXRlZF92YWx1ZShz
ZWxmLCBjdXJyZW50LCBuZXcpOgorICAgICAgICBpZiBsZW4obmV3KSA+IDEgYW5kIG5vdCBzZWxm
LnVwZGF0ZV9pbnRlcm1pdHRlbnQgYW5kIG5vdCBpc2luc3RhbmNlKGN1cnJlbnQsIGxpc3QpOgor
ICAgICAgICAgICAgcmFpc2UgQ29uZGl0aW9uRXJyb3IKIAotICAgIGRlZiBhZGRfbmV3KHNlbGYs
IHVuY29uZGl0aW9uYWxfdmFsdWUsIHN0YWJpbGl0eSk6Ci0gICAgICAgIHRyeToKLSAgICAgICAg
ICAgIGNvbmRpdGlvbmFscyA9IGdyb3VwX2NvbmRpdGlvbmFscygKLSAgICAgICAgICAgICAgICBz
ZWxmLm5ldywKLSAgICAgICAgICAgICAgICBwcm9wZXJ0eV9vcmRlcj1zZWxmLm5vZGUucm9vdC5w
cm9wZXJ0eV9vcmRlciwKLSAgICAgICAgICAgICAgICBib29sZWFuX3Byb3BlcnRpZXM9c2VsZi5u
b2RlLnJvb3QuYm9vbGVhbl9wcm9wZXJ0aWVzKQotICAgICAgICBleGNlcHQgQ29uZGl0aW9uRXJy
b3IgYXMgZToKLSAgICAgICAgICAgIGlmIHN0YWJpbGl0eSBpcyBub3QgTm9uZToKLSAgICAgICAg
ICAgICAgICBzZWxmLm5vZGUuc2V0KCJkaXNhYmxlZCIsIHN0YWJpbGl0eSBvciAidW5zdGFibGUi
LCBlLmNvbmQuY2hpbGRyZW5bMF0pCi0gICAgICAgICAgICAgICAgc2VsZi5ub2RlLm5ld19kaXNh
YmxlZCA9IFRydWUKKyAgICAgICAgY291bnRzID0ge30KKyAgICAgICAgZm9yIHN0YXR1cywgY291
bnQgaW4gaXRlcml0ZW1zKG5ldyk6CisgICAgICAgICAgICBpZiBpc2luc3RhbmNlKHN0YXR1cywg
dHVwbGUpOgorICAgICAgICAgICAgICAgIGNvdW50c1tzdGF0dXNbMF1dID0gY291bnQKKyAgICAg
ICAgICAgICAgICBjb3VudHMudXBkYXRlKHtpbnRlcm1pdHRlbnQ6IDAgZm9yIGludGVybWl0dGVu
dCBpbiBzdGF0dXNbMTpdIGlmIGludGVybWl0dGVudCBub3QgaW4gY291bnRzfSkKICAgICAgICAg
ICAgIGVsc2U6Ci0gICAgICAgICAgICAgICAgcmFpc2UgVXBkYXRlRXJyb3IoIkNvbmZsaWN0aW5n
IG1ldGFkYXRhIHZhbHVlcyIpCi0gICAgICAgIGZvciBjb25kaXRpb25hbF9ub2RlLCB2YWx1ZSBp
biBjb25kaXRpb25hbHM6Ci0gICAgICAgICAgICBpZiB2YWx1ZSAhPSB1bmNvbmRpdGlvbmFsX3Zh
bHVlOgotICAgICAgICAgICAgICAgIHNlbGYubm9kZS5zZXQoc2VsZi5wcm9wZXJ0eV9uYW1lLCB2
YWx1ZSwgY29uZGl0aW9uPWNvbmRpdGlvbmFsX25vZGUuY2hpbGRyZW5bMF0pCisgICAgICAgICAg
ICAgICAgY291bnRzW3N0YXR1c10gPSBjb3VudAorCisgICAgICAgIGlmIG5vdCAoc2VsZi51cGRh
dGVfaW50ZXJtaXR0ZW50IG9yIGlzaW5zdGFuY2UoY3VycmVudCwgbGlzdCkpOgorICAgICAgICAg
ICAgcmV0dXJuIGxpc3QoY291bnRzKVswXQorCisgICAgICAgICMgUmVvcmRlciBzdGF0dXNlcyBm
aXJzdCBiYXNlZCBvbiBjb3VudHMsIHRoZW4gYmFzZWQgb24gc3RhdHVzIHByaW9yaXR5IGlmIHRo
ZXJlIGFyZSB0aWVzLgorICAgICAgICAjIENvdW50cyB3aXRoIDAgYXJlIGNvbnNpZGVyZWQgaW50
ZXJtaXR0ZW50LgorICAgICAgICBzdGF0dXNlcyA9IFsiT0siLCAiUEFTUyIsICJGQUlMIiwgIkVS
Uk9SIiwgIlRJTUVPVVQiLCAiQ1JBU0giXQorICAgICAgICBzdGF0dXNfcHJpb3JpdHkgPSB7dmFs
dWU6IGkgZm9yIGksIHZhbHVlIGluIGVudW1lcmF0ZShzdGF0dXNlcyl9CisgICAgICAgIHNvcnRl
ZF9uZXcgPSBzb3J0ZWQoaXRlcml0ZW1zKGNvdW50cyksIGtleT1sYW1iZGEgeDooLTEgKiB4WzFd
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBzdGF0dXNfcHJpb3JpdHkuZ2V0KHhbMF0sCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxlbihzdGF0dXNfcHJpb3JpdHkpKSkp
CisgICAgICAgIGV4cGVjdGVkID0gW10KKyAgICAgICAgZm9yIHN0YXR1cywgY291bnQgaW4gc29y
dGVkX25ldzoKKyAgICAgICAgICAgICMgSWYgd2UgYXJlIG5vdCByZW1vdmluZyBleGlzdGluZyBy
ZWNvcmRlZCBpbnRlcm1pdHRlbnRzLCB3aXRoIGEgY291bnQgb2YgMCwKKyAgICAgICAgICAgICMg
YWRkIHRoZW0gaW4gdG8gZXhwZWN0ZWQuCisgICAgICAgICAgICBpZiBjb3VudCA+IDAgb3Igbm90
IHNlbGYucmVtb3ZlX2ludGVybWl0dGVudDoKKyAgICAgICAgICAgICAgICBleHBlY3RlZC5hcHBl
bmQoc3RhdHVzKQorICAgICAgICBpZiBzZWxmLnVwZGF0ZV9pbnRlcm1pdHRlbnQ6CisgICAgICAg
ICAgICBpZiBsZW4oZXhwZWN0ZWQpID09IDE6CisgICAgICAgICAgICAgICAgcmV0dXJuIGV4cGVj
dGVkWzBdCisgICAgICAgICAgICByZXR1cm4gZXhwZWN0ZWQKKworICAgICAgICAjIElmIG5vdGhp
bmcgaGFzIGNoYW5nZWQgYW5kIG5vdCBzZWxmLnVwZGF0ZV9pbnRlcm1pdHRlbnQsIHByZXNlcnZl
IGV4aXN0aW5nCisgICAgICAgICMgaW50ZXJtaXR0ZW50LgorICAgICAgICBpZiBzZXQoZXhwZWN0
ZWQpLmlzc3Vic2V0KHNldChjdXJyZW50KSk6CisgICAgICAgICAgICByZXR1cm4gY3VycmVudAor
ICAgICAgICAjIElmIHdlIGFyZSBub3QgdXBkYXRpbmcgaW50ZXJtaXR0ZW50cywgcmV0dXJuIHRo
ZSBzdGF0dXMgd2l0aCB0aGUgaGlnaGVzdCBvY2N1cmVuY2UuCisgICAgICAgIHJldHVybiBleHBl
Y3RlZFswXQogCiAKIGNsYXNzIE1heEFzc2VydHNVcGRhdGUoUHJvcGVydHlVcGRhdGUpOgorICAg
ICIiIkZvciBhc3NlcnRzIHdlIGFsd2F5cyB1cGRhdGUgdGhlIGRlZmF1bHQgdmFsdWUgYW5kIG5l
dmVyIGFkZCBuZXcgY29uZGl0aW9uYWxzLgorICAgIFRoZSB2YWx1ZSB3ZSBzZXQgYXMgdGhlIGRl
ZmF1bHQgaXMgdGhlIG1heGltdW0gdGhlIGN1cnJlbnQgZGVmYXVsdCBvciBvbmUgbW9yZSB0aGFu
IHRoZQorICAgIG51bWJlciBvZiBhc3NlcnRzIHdlIHNhdyBpbiBhbnkgY29uZmlndXJhdGlvbi4i
IiIKKwogICAgIHByb3BlcnR5X25hbWUgPSAibWF4LWFzc2VydHMiCiAgICAgY2xzX2RlZmF1bHRf
dmFsdWUgPSAwCiAgICAgdmFsdWVfdHlwZSA9IGludAorICAgIHByb3BlcnR5X2J1aWxkZXIgPSBi
dWlsZF91bmNvbmRpdGlvbmFsX3RyZWUKIAotICAgIGRlZiB1cGRhdGVfdmFsdWUoc2VsZiwgb2xk
X3ZhbHVlLCBuZXdfdmFsdWUpOgotICAgICAgICBuZXdfdmFsdWUgPSBzZWxmLnZhbHVlX3R5cGUo
bmV3X3ZhbHVlKQotICAgICAgICBpZiBvbGRfdmFsdWUgaXMgbm90IE5vbmU6Ci0gICAgICAgICAg
ICBvbGRfdmFsdWUgPSBzZWxmLnZhbHVlX3R5cGUob2xkX3ZhbHVlKQotICAgICAgICBpZiBvbGRf
dmFsdWUgaXMgbm90IE5vbmUgYW5kIG9sZF92YWx1ZSA8IG5ld192YWx1ZToKLSAgICAgICAgICAg
IHJldHVybiBuZXdfdmFsdWUgKyAxCi0gICAgICAgIGlmIG9sZF92YWx1ZSBpcyBOb25lOgotICAg
ICAgICAgICAgcmV0dXJuIG5ld192YWx1ZSArIDEKLSAgICAgICAgcmV0dXJuIG9sZF92YWx1ZQot
Ci0gICAgZGVmIHVwZGF0ZV9kZWZhdWx0KHNlbGYpOgotICAgICAgICAiIiJGb3IgYXNzZXJ0cyB3
ZSBhbHdheXMgdXBkYXRlIHRoZSBkZWZhdWx0IHZhbHVlIGFuZCBuZXZlciBhZGQgbmV3IGNvbmRp
dGlvbmFscy4KLSAgICAgICAgVGhlIHZhbHVlIHdlIHNldCBhcyB0aGUgZGVmYXVsdCBpcyB0aGUg
bWF4aW11bSB0aGUgY3VycmVudCBkZWZhdWx0IG9yIG9uZSBtb3JlIHRoYW4gdGhlCi0gICAgICAg
IG51bWJlciBvZiBhc3NlcnRzIHdlIHNhdyBpbiBhbnkgY29uZmlndXJhdGlvbi4iIiIKLSAgICAg
ICAgIyBDdXJyZW50IHZhbHVlcwotICAgICAgICB2YWx1ZXMgPSBbXQotICAgICAgICBjdXJyZW50
X2RlZmF1bHQgPSBOb25lCi0gICAgICAgIGlmIHNlbGYucHJvcGVydHlfbmFtZSBpbiBzZWxmLm5v
ZGUuX2RhdGE6Ci0gICAgICAgICAgICBjdXJyZW50X2RlZmF1bHQgPSBbaXRlbSBmb3IgaXRlbSBp
bgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYubm9kZS5fZGF0YVtzZWxmLnBy
b3BlcnR5X25hbWVdCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgaXRlbS5jb25k
aXRpb25fbm9kZSBpcyBOb25lXQotICAgICAgICAgICAgaWYgY3VycmVudF9kZWZhdWx0OgotICAg
ICAgICAgICAgICAgIHZhbHVlcy5hcHBlbmQoaW50KGN1cnJlbnRfZGVmYXVsdFswXS52YWx1ZSkp
Ci0gICAgICAgIHZhbHVlcy5leHRlbmQoaXRlbS52YWx1ZSBmb3IgaXRlbSBpbiBzZWxmLm5ldykK
LSAgICAgICAgdmFsdWVzLmV4dGVuZChpdGVtLnZhbHVlIGZvciBpdGVtIGluCi0gICAgICAgICAg
ICAgICAgICAgICAgaXRlcnRvb2xzLmNoYWluLmZyb21faXRlcmFibGUocmVzdWx0cyBmb3IgXywg
cmVzdWx0cyBpbiBzZWxmLnVwZGF0ZWQpKQotICAgICAgICBuZXdfdmFsdWUgPSBtYXgodmFsdWVz
KQotICAgICAgICByZXR1cm4gVHJ1ZSwgbmV3X3ZhbHVlCisgICAgZGVmIHVwZGF0ZWRfdmFsdWUo
c2VsZiwgY3VycmVudCwgbmV3KToKKyAgICAgICAgaWYgYW55KGl0ZW0gPiBjdXJyZW50IGZvciBp
dGVtIGluIG5ldyk6CisgICAgICAgICAgICByZXR1cm4gbWF4KG5ldykgKyAxCisgICAgICAgIHJl
dHVybiBjdXJyZW50CiAKIAogY2xhc3MgTWluQXNzZXJ0c1VwZGF0ZShQcm9wZXJ0eVVwZGF0ZSk6
CiAgICAgcHJvcGVydHlfbmFtZSA9ICJtaW4tYXNzZXJ0cyIKICAgICBjbHNfZGVmYXVsdF92YWx1
ZSA9IDAKICAgICB2YWx1ZV90eXBlID0gaW50CisgICAgcHJvcGVydHlfYnVpbGRlciA9IGJ1aWxk
X3VuY29uZGl0aW9uYWxfdHJlZQorCisgICAgZGVmIHVwZGF0ZWRfdmFsdWUoc2VsZiwgY3VycmVu
dCwgbmV3KToKKyAgICAgICAgaWYgYW55KGl0ZW0gPCBjdXJyZW50IGZvciBpdGVtIGluIG5ldyk6
CisgICAgICAgICAgICBydiA9IG1pbihuZXcpIC0gMQorICAgICAgICBlbHNlOgorICAgICAgICAg
ICAgcnYgPSBjdXJyZW50CisgICAgICAgIHJldHVybiBtYXgocnYsIDApCisKIAotICAgIGRlZiB1
cGRhdGVfdmFsdWUoc2VsZiwgb2xkX3ZhbHVlLCBuZXdfdmFsdWUpOgotICAgICAgICBuZXdfdmFs
dWUgPSBzZWxmLnZhbHVlX3R5cGUobmV3X3ZhbHVlKQotICAgICAgICBpZiBvbGRfdmFsdWUgaXMg
bm90IE5vbmU6Ci0gICAgICAgICAgICBvbGRfdmFsdWUgPSBzZWxmLnZhbHVlX3R5cGUob2xkX3Zh
bHVlKQotICAgICAgICBpZiBvbGRfdmFsdWUgaXMgbm90IE5vbmUgYW5kIG5ld192YWx1ZSA8IG9s
ZF92YWx1ZToKLSAgICAgICAgICAgIHJldHVybiAwCi0gICAgICAgIGlmIG9sZF92YWx1ZSBpcyBO
b25lOgotICAgICAgICAgICAgIyBJZiB3ZSBhcmUgZ2V0dGluZyBzb21lIGFzc2VydHMgZm9yIHRo
ZSBmaXJzdCB0aW1lLCBzZXQgdGhlIG1pbmltdW0gdG8gMAotICAgICAgICAgICAgcmV0dXJuIG5l
d192YWx1ZQotICAgICAgICByZXR1cm4gb2xkX3ZhbHVlCi0KLSAgICBkZWYgdXBkYXRlX2RlZmF1
bHQoc2VsZik6Ci0gICAgICAgICIiIkZvciBhc3NlcnRzIHdlIGFsd2F5cyB1cGRhdGUgdGhlIGRl
ZmF1bHQgdmFsdWUgYW5kIG5ldmVyIGFkZCBuZXcgY29uZGl0aW9uYWxzLgotICAgICAgICBUaGlz
IGlzIGVpdGhlciBzZXQgdG8gdGhlIGN1cnJlbnQgdmFsdWUgb3Igb25lIGxlc3MgdGhhbiB0aGUg
bnVtYmVyIG9mIGFzc2VydHMKLSAgICAgICAgd2Ugc2F3LCB3aGljaGV2ZXIgaXMgbG93ZXIuIiIi
Ci0gICAgICAgIHZhbHVlcyA9IFtdCi0gICAgICAgIGN1cnJlbnRfZGVmYXVsdCA9IE5vbmUKLSAg
ICAgICAgaWYgc2VsZi5wcm9wZXJ0eV9uYW1lIGluIHNlbGYubm9kZS5fZGF0YToKLSAgICAgICAg
ICAgIGN1cnJlbnRfZGVmYXVsdCA9IFtpdGVtIGZvciBpdGVtIGluCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgc2VsZi5ub2RlLl9kYXRhW3NlbGYucHJvcGVydHlfbmFtZV0KLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBpZiBpdGVtLmNvbmRpdGlvbl9ub2RlIGlzIE5vbmVd
Ci0gICAgICAgIGlmIGN1cnJlbnRfZGVmYXVsdDoKLSAgICAgICAgICAgIHZhbHVlcy5hcHBlbmQo
Y3VycmVudF9kZWZhdWx0WzBdLnZhbHVlX2FzKHNlbGYudmFsdWVfdHlwZSkpCi0gICAgICAgIHZh
bHVlcy5leHRlbmQobWF4KDAsIGl0ZW0udmFsdWUpIGZvciBpdGVtIGluIHNlbGYubmV3KQotICAg
ICAgICB2YWx1ZXMuZXh0ZW5kKG1heCgwLCBpdGVtLnZhbHVlKSBmb3IgaXRlbSBpbgotICAgICAg
ICAgICAgICAgICAgICAgIGl0ZXJ0b29scy5jaGFpbi5mcm9tX2l0ZXJhYmxlKHJlc3VsdHMgZm9y
IF8sIHJlc3VsdHMgaW4gc2VsZi51cGRhdGVkKSkKLSAgICAgICAgbmV3X3ZhbHVlID0gbWluKHZh
bHVlcykKLSAgICAgICAgcmV0dXJuIFRydWUsIG5ld192YWx1ZQotCi0KLWNsYXNzIExzYW5VcGRh
dGUoUHJvcGVydHlVcGRhdGUpOgorY2xhc3MgQXBwZW5kT25seUxpc3RVcGRhdGUoUHJvcGVydHlV
cGRhdGUpOgorICAgIGNsc19kZWZhdWx0X3ZhbHVlID0gW10KKyAgICBwcm9wZXJ0eV9idWlsZGVy
ID0gYnVpbGRfdW5jb25kaXRpb25hbF90cmVlCisKKyAgICBkZWYgdXBkYXRlZF92YWx1ZShzZWxm
LCBjdXJyZW50LCBuZXcpOgorICAgICAgICBpZiBjdXJyZW50IGlzIE5vbmU6CisgICAgICAgICAg
ICBydiA9IHNldCgpCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBydiA9IHNldChjdXJyZW50
KQorCisgICAgICAgIGZvciBpdGVtIGluIG5ldzoKKyAgICAgICAgICAgIGlmIGl0ZW0gaXMgTm9u
ZToKKyAgICAgICAgICAgICAgICBjb250aW51ZQorICAgICAgICAgICAgZWxpZiBpc2luc3RhbmNl
KGl0ZW0sIChzdHIsIHVuaWNvZGUpKToKKyAgICAgICAgICAgICAgICBydi5hZGQoaXRlbSkKKyAg
ICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgcnYgfD0gaXRlbQorCisgICAgICAgIHJl
dHVybiBzb3J0ZWQocnYpCisKKworY2xhc3MgTHNhblVwZGF0ZShBcHBlbmRPbmx5TGlzdFVwZGF0
ZSk6CiAgICAgcHJvcGVydHlfbmFtZSA9ICJsc2FuLWFsbG93ZWQiCi0gICAgY2xzX2RlZmF1bHRf
dmFsdWUgPSBOb25lCisgICAgcHJvcGVydHlfYnVpbGRlciA9IGJ1aWxkX3VuY29uZGl0aW9uYWxf
dHJlZQogCi0gICAgZGVmIGdldF92YWx1ZShzZWxmLCByZXN1bHQpOgorICAgIGRlZiBmcm9tX3Jl
c3VsdF92YWx1ZShzZWxmLCByZXN1bHQpOgogICAgICAgICAjIElmIHdlIGhhdmUgYW4gYWxsb3dl
ZF9tYXRjaCB0aGF0IG1hdGNoZWQsIHJldHVybiBOb25lCiAgICAgICAgICMgVGhpcyB2YWx1ZSBp
cyBpZ25vcmVkIGxhdGVyIChiZWNhdXNlIGl0IG1hdGNoZXMgdGhlIGRlZmF1bHQpCiAgICAgICAg
ICMgV2UgZG8gdGhhdCBiZWNhdXNlIHRoZW4gaWYgd2UgYWxsb3cgYSBmYWlsdXJlIGluIGZvby9f
X2Rpcl9fLmluaQpAQCAtNTE2LDk0ICs3OTcsNjUgQEAgY2xhc3MgTHNhblVwZGF0ZShQcm9wZXJ0
eVVwZGF0ZSk6CiAgICAgICAgICMgVE9ETzogdGhlcmUgaXMgcHJvYmFibHkgc29tZSBpbXByb3Zl
bWVudCB0byBiZSBtYWRlIGJ5IGxvb2tpbmcgZm9yIGEgImJldHRlciIgc3RhY2sgZnJhbWUKICAg
ICAgICAgcmV0dXJuIHJlc3VsdFswXVswXQogCi0gICAgZGVmIHVwZGF0ZV92YWx1ZShzZWxmLCBv
bGRfdmFsdWUsIG5ld192YWx1ZSk6Ci0gICAgICAgIGlmIGlzaW5zdGFuY2UobmV3X3ZhbHVlLCAo
c3RyLCB1bmljb2RlKSk6Ci0gICAgICAgICAgICBuZXdfdmFsdWUgPSB7bmV3X3ZhbHVlfQotICAg
ICAgICBlbHNlOgotICAgICAgICAgICAgbmV3X3ZhbHVlID0gc2V0KG5ld192YWx1ZSkKLSAgICAg
ICAgaWYgb2xkX3ZhbHVlIGlzIE5vbmU6Ci0gICAgICAgICAgICBvbGRfdmFsdWUgPSBzZXQoKQot
ICAgICAgICBvbGRfdmFsdWUgPSBzZXQob2xkX3ZhbHVlKQotICAgICAgICByZXR1cm4gc29ydGVk
KChvbGRfdmFsdWUgfCBuZXdfdmFsdWUpIC0ge05vbmV9KQotCi0gICAgZGVmIHVwZGF0ZV9kZWZh
dWx0KHNlbGYpOgotICAgICAgICBjdXJyZW50X2RlZmF1bHQgPSBOb25lCi0gICAgICAgIGlmIHNl
bGYucHJvcGVydHlfbmFtZSBpbiBzZWxmLm5vZGUuX2RhdGE6Ci0gICAgICAgICAgICBjdXJyZW50
X2RlZmF1bHQgPSBbaXRlbSBmb3IgaXRlbSBpbgotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHNlbGYubm9kZS5fZGF0YVtzZWxmLnByb3BlcnR5X25hbWVdCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgaWYgaXRlbS5jb25kaXRpb25fbm9kZSBpcyBOb25lXQotICAgICAgICBp
ZiBjdXJyZW50X2RlZmF1bHQ6Ci0gICAgICAgICAgICBjdXJyZW50X2RlZmF1bHQgPSBjdXJyZW50
X2RlZmF1bHRbMF0udmFsdWUKLSAgICAgICAgbmV3X3ZhbHVlcyA9IFtpdGVtLnZhbHVlIGZvciBp
dGVtIGluIHNlbGYubmV3XQotICAgICAgICBuZXdfdmFsdWUgPSBzZWxmLnVwZGF0ZV92YWx1ZShj
dXJyZW50X2RlZmF1bHQsIG5ld192YWx1ZXMpCi0gICAgICAgIHJldHVybiBUcnVlLCBuZXdfdmFs
dWUgaWYgbmV3X3ZhbHVlIGVsc2UgTm9uZQotCi0KLWRlZiBncm91cF9jb25kaXRpb25hbHModmFs
dWVzLCBwcm9wZXJ0eV9vcmRlcj1Ob25lLCBib29sZWFuX3Byb3BlcnRpZXM9Tm9uZSk6Ci0gICAg
IiIiR2l2ZW4gYSBsaXN0IG9mIFZhbHVlIG9iamVjdHMsIHJldHVybiBhIGxpc3Qgb2YKLSAgICAo
Y29uZGl0aW9uYWxfbm9kZSwgc3RhdHVzKSBwYWlycyByZXByZXNlbnRpbmcgdGhlIGNvbmRpdGlv
bmFsCi0gICAgZXhwcmVzc2lvbnMgdGhhdCBhcmUgcmVxdWlyZWQgdG8gbWF0Y2ggZWFjaCBzdGF0
dXMKLQotICAgIDpwYXJhbSB2YWx1ZXM6IExpc3Qgb2YgVmFsdWVzCi0gICAgOnBhcmFtIHByb3Bl
cnR5X29yZGVyOiBMaXN0IG9mIHByb3BlcnRpZXMgdG8gdXNlIGluIGV4cGVjdGF0aW9uIG1ldGFk
YXRhCi0gICAgICAgICAgICAgICAgICAgICAgICAgICBmcm9tIG1vc3QgdG8gbGVhc3Qgc2lnbmlm
aWNhbnQuCi0gICAgOnBhcmFtIGJvb2xlYW5fcHJvcGVydGllczogU2V0IG9mIHByb3BlcnRpZXMg
aW4gcHJvcGVydHlfb3JkZXIgdGhhdCBzaG91bGQKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBiZSB0cmVhdGVkIGFzIGJvb2xlYW4uIiIiCi0KLSAgICBieV9wcm9wZXJ0eSA9IGRlZmF1
bHRkaWN0KHNldCkKLSAgICBmb3IgcnVuX2luZm8sIHZhbHVlIGluIHZhbHVlczoKLSAgICAgICAg
Zm9yIHByb3BfbmFtZSwgcHJvcF92YWx1ZSBpbiBydW5faW5mby5pdGVyaXRlbXMoKToKLSAgICAg
ICAgICAgIGJ5X3Byb3BlcnR5Wyhwcm9wX25hbWUsIHByb3BfdmFsdWUpXS5hZGQodmFsdWUpCi0K
LSAgICBpZiBwcm9wZXJ0eV9vcmRlciBpcyBOb25lOgotICAgICAgICBwcm9wZXJ0eV9vcmRlciA9
IFsiZGVidWciLCAib3MiLCAidmVyc2lvbiIsICJwcm9jZXNzb3IiLCAiYml0cyJdCi0KLSAgICBp
ZiBib29sZWFuX3Byb3BlcnRpZXMgaXMgTm9uZToKLSAgICAgICAgYm9vbGVhbl9wcm9wZXJ0aWVz
ID0gc2V0KFsiZGVidWciXSkKLSAgICBlbHNlOgotICAgICAgICBib29sZWFuX3Byb3BlcnRpZXMg
PSBzZXQoYm9vbGVhbl9wcm9wZXJ0aWVzKQotCi0gICAgIyBJZiB3ZSBoYXZlIG1vcmUgdGhhbiBv
bmUgdmFsdWUsIHJlbW92ZSBhbnkgcHJvcGVydGllcyB0aGF0IGFyZSBjb21tb24KLSAgICAjIGZv
ciBhbGwgdGhlIHZhbHVlcwotICAgIGlmIGxlbih2YWx1ZXMpID4gMToKLSAgICAgICAgZm9yIGtl
eSwgc3RhdHVzZXMgaW4gYnlfcHJvcGVydHkuY29weSgpLml0ZXJpdGVtcygpOgotICAgICAgICAg
ICAgaWYgbGVuKHN0YXR1c2VzKSA9PSBsZW4odmFsdWVzKToKLSAgICAgICAgICAgICAgICBkZWwg
YnlfcHJvcGVydHlba2V5XQotICAgICAgICBpZiBub3QgYnlfcHJvcGVydHk6Ci0gICAgICAgICAg
ICByYWlzZSBDb25kaXRpb25FcnJvcgorICAgIGRlZiB0b19pbmlfdmFsdWUoc2VsZiwgdmFsdWUp
OgorICAgICAgICByZXR1cm4gdmFsdWUKKwogCi0gICAgcHJvcGVydGllcyA9IHNldChpdGVtWzBd
IGZvciBpdGVtIGluIGJ5X3Byb3BlcnR5Lml0ZXJrZXlzKCkpCi0gICAgaW5jbHVkZV9wcm9wcyA9
IFtdCitjbGFzcyBMZWFrT2JqZWN0VXBkYXRlKEFwcGVuZE9ubHlMaXN0VXBkYXRlKToKKyAgICBw
cm9wZXJ0eV9uYW1lID0gImxlYWstYWxsb3dlZCIKKyAgICBwcm9wZXJ0eV9idWlsZGVyID0gYnVp
bGRfdW5jb25kaXRpb25hbF90cmVlCiAKLSAgICBmb3IgcHJvcCBpbiBwcm9wZXJ0eV9vcmRlcjoK
LSAgICAgICAgaWYgcHJvcCBpbiBwcm9wZXJ0aWVzOgotICAgICAgICAgICAgaW5jbHVkZV9wcm9w
cy5hcHBlbmQocHJvcCkKKyAgICBkZWYgZnJvbV9yZXN1bHRfdmFsdWUoc2VsZiwgcmVzdWx0KToK
KyAgICAgICAgIyBJZiB3ZSBoYXZlIGFuIGFsbG93ZWRfbWF0Y2ggdGhhdCBtYXRjaGVkLCByZXR1
cm4gTm9uZQorICAgICAgICBpZiByZXN1bHRbMV06CisgICAgICAgICAgICByZXR1cm4gTm9uZQor
ICAgICAgICAjIE90aGVyd2lzZSByZXR1cm4gdGhlIHByb2Nlc3Mvb2JqZWN0IG5hbWUKKyAgICAg
ICAgcmV0dXJuIHJlc3VsdFswXQogCi0gICAgY29uZGl0aW9ucyA9IHt9CiAKLSAgICBmb3IgcnVu
X2luZm8sIHZhbHVlIGluIHZhbHVlczoKLSAgICAgICAgcHJvcF9zZXQgPSB0dXBsZSgocHJvcCwg
cnVuX2luZm9bcHJvcF0pIGZvciBwcm9wIGluIGluY2x1ZGVfcHJvcHMpCi0gICAgICAgIGlmIHBy
b3Bfc2V0IGluIGNvbmRpdGlvbnM6Ci0gICAgICAgICAgICBpZiBjb25kaXRpb25zW3Byb3Bfc2V0
XVsxXSAhPSB2YWx1ZToKLSAgICAgICAgICAgICAgICAjIEEgcHJvcF9zZXQgY29udGFpbnMgY29u
dHJhZGljdG9yeSByZXN1bHRzCi0gICAgICAgICAgICAgICAgcmFpc2UgQ29uZGl0aW9uRXJyb3Io
bWFrZV9leHByKHByb3Bfc2V0LCB2YWx1ZSwgYm9vbGVhbl9wcm9wZXJ0aWVzKSkKLSAgICAgICAg
ICAgIGNvbnRpbnVlCitjbGFzcyBMZWFrVGhyZXNob2xkVXBkYXRlKFByb3BlcnR5VXBkYXRlKToK
KyAgICBwcm9wZXJ0eV9uYW1lID0gImxlYWstdGhyZXNob2xkIgorICAgIGNsc19kZWZhdWx0X3Zh
bHVlID0ge30KKyAgICBwcm9wZXJ0eV9idWlsZGVyID0gYnVpbGRfdW5jb25kaXRpb25hbF90cmVl
CiAKLSAgICAgICAgZXhwciA9IG1ha2VfZXhwcihwcm9wX3NldCwgdmFsdWUsIGJvb2xlYW5fcHJv
cGVydGllcz1ib29sZWFuX3Byb3BlcnRpZXMpCi0gICAgICAgIGNvbmRpdGlvbnNbcHJvcF9zZXRd
ID0gKGV4cHIsIHZhbHVlKQorICAgIGRlZiBmcm9tX3Jlc3VsdF92YWx1ZShzZWxmLCByZXN1bHQp
OgorICAgICAgICByZXR1cm4gcmVzdWx0CiAKLSAgICByZXR1cm4gY29uZGl0aW9ucy52YWx1ZXMo
KQorICAgIGRlZiB0b19pbmlfdmFsdWUoc2VsZiwgZGF0YSk6CisgICAgICAgIHJldHVybiBbIiVz
OiVzIiAlIGl0ZW0gZm9yIGl0ZW0gaW4gc29ydGVkKGl0ZXJpdGVtcyhkYXRhKSldCiAKKyAgICBk
ZWYgZnJvbV9pbmlfdmFsdWUoc2VsZiwgZGF0YSk6CisgICAgICAgIHJ2ID0ge30KKyAgICAgICAg
Zm9yIGl0ZW0gaW4gZGF0YToKKyAgICAgICAgICAgIGtleSwgdmFsdWUgPSBpdGVtLnNwbGl0KCI6
IiwgMSkKKyAgICAgICAgICAgIHJ2W2tleV0gPSBpbnQoZmxvYXQodmFsdWUpKQorICAgICAgICBy
ZXR1cm4gcnYKIAotZGVmIG1ha2VfZXhwcihwcm9wX3NldCwgcmhzLCBib29sZWFuX3Byb3BlcnRp
ZXM9Tm9uZSk6CisgICAgZGVmIHVwZGF0ZWRfdmFsdWUoc2VsZiwgY3VycmVudCwgbmV3KToKKyAg
ICAgICAgaWYgY3VycmVudDoKKyAgICAgICAgICAgIHJ2ID0gY3VycmVudC5jb3B5KCkKKyAgICAg
ICAgZWxzZToKKyAgICAgICAgICAgIHJ2ID0ge30KKyAgICAgICAgZm9yIHByb2Nlc3MsIGxlYWtl
ZF9ieXRlcywgdGhyZXNob2xkIGluIG5ldzoKKyAgICAgICAgICAgICMgSWYgdGhlIHZhbHVlIGlz
IGxlc3MgdGhhbiB0aGUgdGhyZXNob2xkIGJ1dCB0aGVyZSBpc24ndAorICAgICAgICAgICAgIyBh
biBvbGQgdmFsdWUgd2UgbXVzdCBoYXZlIGluaGVyaXRlZCB0aGUgdGhyZXNob2xkIGZyb20KKyAg
ICAgICAgICAgICMgYSBwYXJlbnQgaW5pIGZpbGUgc28gZG9uJ3QgYW55IGFueXRoaW5nIHRvIHRo
aXMgb25lCisgICAgICAgICAgICBpZiBwcm9jZXNzIG5vdCBpbiBydiBhbmQgbGVha2VkX2J5dGVz
IDwgdGhyZXNob2xkOgorICAgICAgICAgICAgICAgIGNvbnRpbnVlCisgICAgICAgICAgICBpZiBs
ZWFrZWRfYnl0ZXMgPiBydi5nZXQocHJvY2VzcywgMCk6CisgICAgICAgICAgICAgICAgIyBSb3Vu
ZCB1cCB0byBuZWFyZXN0IDUwIGtiCisgICAgICAgICAgICAgICAgYm91bmRhcnkgPSA1MCAqIDEw
MjQKKyAgICAgICAgICAgICAgICBydltwcm9jZXNzXSA9IGludChib3VuZGFyeSAqIGNlaWwoZmxv
YXQobGVha2VkX2J5dGVzKSAvIGJvdW5kYXJ5KSkKKyAgICAgICAgcmV0dXJuIHJ2CisKKworZGVm
IG1ha2VfZXhwcihwcm9wX3NldCwgcmhzKToKICAgICAiIiJDcmVhdGUgYW4gQVNUIHRoYXQgcmV0
dXJucyB0aGUgdmFsdWUgYGBzdGF0dXNgYCBnaXZlbiBhbGwgdGhlCiAgICAgcHJvcGVydGllcyBp
biBwcm9wX3NldCBtYXRjaC4KIAogICAgIDpwYXJhbSBwcm9wX3NldDogdHVwbGUgb2YgKHByb3Bl
cnR5IG5hbWUsIHZhbHVlKSBwYWlycyBmb3IgZWFjaAogICAgICAgICAgICAgICAgICAgICAgcHJv
cGVydHkgaW4gdGhpcyBleHByZXNzaW9uIGFuZCB0aGUgdmFsdWUgaXQgbXVzdCBtYXRjaAogICAg
IDpwYXJhbSBzdGF0dXM6IFN0YXR1cyBvbiBSSFMgd2hlbiBhbGwgdGhlIGdpdmVuIHByb3BlcnRp
ZXMgbWF0Y2gKLSAgICA6cGFyYW0gYm9vbGVhbl9wcm9wZXJ0aWVzOiBTZXQgb2YgcHJvcGVydGll
cyBpbiBwcm9wZXJ0eV9vcmRlciB0aGF0IHNob3VsZAotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGJlIHRyZWF0ZWQgYXMgYm9vbGVhbi4KICAgICAiIiIKICAgICByb290ID0gQ29uZGl0
aW9uYWxOb2RlKCkKIApAQCAtNjExLDE3ICs4NjMsMTIgQEAgZGVmIG1ha2VfZXhwcihwcm9wX3Nl
dCwgcmhzLCBib29sZWFuX3Byb3BlcnRpZXM9Tm9uZSk6CiAKICAgICBleHByZXNzaW9ucyA9IFtd
CiAgICAgZm9yIHByb3AsIHZhbHVlIGluIHByb3Bfc2V0OgotICAgICAgICBudW1iZXJfdHlwZXMg
PSAoaW50LCBmbG9hdCwgbG9uZykKLSAgICAgICAgdmFsdWVfY2xzID0gKE51bWJlck5vZGUKLSAg
ICAgICAgICAgICAgICAgICAgIGlmIHR5cGUodmFsdWUpIGluIG51bWJlcl90eXBlcwotICAgICAg
ICAgICAgICAgICAgICAgZWxzZSBTdHJpbmdOb2RlKQotICAgICAgICBpZiBwcm9wIG5vdCBpbiBi
b29sZWFuX3Byb3BlcnRpZXM6CisgICAgICAgIGlmIHZhbHVlIG5vdCBpbiAoVHJ1ZSwgRmFsc2Up
OgogICAgICAgICAgICAgZXhwcmVzc2lvbnMuYXBwZW5kKAogICAgICAgICAgICAgICAgIEJpbmFy
eUV4cHJlc3Npb25Ob2RlKAogICAgICAgICAgICAgICAgICAgICBCaW5hcnlPcGVyYXRvck5vZGUo
Ij09IiksCiAgICAgICAgICAgICAgICAgICAgIFZhcmlhYmxlTm9kZShwcm9wKSwKLSAgICAgICAg
ICAgICAgICAgICAgdmFsdWVfY2xzKHVuaWNvZGUodmFsdWUpKQotICAgICAgICAgICAgICAgICkp
CisgICAgICAgICAgICAgICAgICAgIG1ha2Vfbm9kZSh2YWx1ZSkpKQogICAgICAgICBlbHNlOgog
ICAgICAgICAgICAgaWYgdmFsdWU6CiAgICAgICAgICAgICAgICAgZXhwcmVzc2lvbnMuYXBwZW5k
KFZhcmlhYmxlTm9kZShwcm9wKSkKQEAgLTY0Myw0MSArODkwLDYwIEBAIGRlZiBtYWtlX2V4cHIo
cHJvcF9zZXQsIHJocywgYm9vbGVhbl9wcm9wZXJ0aWVzPU5vbmUpOgogICAgICAgICBub2RlID0g
ZXhwcmVzc2lvbnNbMF0KIAogICAgIHJvb3QuYXBwZW5kKG5vZGUpCi0gICAgaWYgdHlwZShyaHMp
IGluIG51bWJlcl90eXBlczoKLSAgICAgICAgcmhzX25vZGUgPSBOdW1iZXJOb2RlKHJocykKLSAg
ICBlbHNlOgotICAgICAgICByaHNfbm9kZSA9IFN0cmluZ05vZGUocmhzKQorICAgIHJoc19ub2Rl
ID0gbWFrZV92YWx1ZV9ub2RlKHJocykKICAgICByb290LmFwcGVuZChyaHNfbm9kZSkKIAogICAg
IHJldHVybiByb290CiAKIAotZGVmIGdldF9tYW5pZmVzdChtZXRhZGF0YV9yb290LCB0ZXN0X3Bh
dGgsIHVybF9iYXNlLCBwcm9wZXJ0eV9vcmRlcj1Ob25lLAotICAgICAgICAgICAgICAgICBib29s
ZWFuX3Byb3BlcnRpZXM9Tm9uZSk6CitkZWYgbWFrZV9ub2RlKHZhbHVlKToKKyAgICBpZiB0eXBl
KHZhbHVlKSBpbiAoaW50LCBmbG9hdCwgbG9uZyk6CisgICAgICAgIG5vZGUgPSBOdW1iZXJOb2Rl
KHZhbHVlKQorICAgIGVsaWYgdHlwZSh2YWx1ZSkgaW4gKHN0ciwgdW5pY29kZSk6CisgICAgICAg
IG5vZGUgPSBTdHJpbmdOb2RlKHVuaWNvZGUodmFsdWUpKQorICAgIGVsaWYgaGFzYXR0cih2YWx1
ZSwgIl9faXRlcl9fIik6CisgICAgICAgIG5vZGUgPSBMaXN0Tm9kZSgpCisgICAgICAgIGZvciBp
dGVtIGluIHZhbHVlOgorICAgICAgICAgICAgbm9kZS5hcHBlbmQobWFrZV9ub2RlKGl0ZW0pKQor
ICAgIHJldHVybiBub2RlCisKKworZGVmIG1ha2VfdmFsdWVfbm9kZSh2YWx1ZSk6CisgICAgaWYg
dHlwZSh2YWx1ZSkgaW4gKGludCwgZmxvYXQsIGxvbmcpOgorICAgICAgICBub2RlID0gVmFsdWVO
b2RlKHZhbHVlKQorICAgIGVsaWYgdHlwZSh2YWx1ZSkgaW4gKHN0ciwgdW5pY29kZSk6CisgICAg
ICAgIG5vZGUgPSBWYWx1ZU5vZGUodW5pY29kZSh2YWx1ZSkpCisgICAgZWxpZiBoYXNhdHRyKHZh
bHVlLCAiX19pdGVyX18iKToKKyAgICAgICAgbm9kZSA9IExpc3ROb2RlKCkKKyAgICAgICAgZm9y
IGl0ZW0gaW4gdmFsdWU6CisgICAgICAgICAgICBub2RlLmFwcGVuZChtYWtlX25vZGUoaXRlbSkp
CisgICAgZWxzZToKKyAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigiRG9uJ3Qga25vdyBob3cgdG8g
Y29udmVydCAlcyBpbnRvIG5vZGUiICUgdHlwZSh2YWx1ZSkpCisgICAgcmV0dXJuIG5vZGUKKwor
CitkZWYgZ2V0X21hbmlmZXN0KG1ldGFkYXRhX3Jvb3QsIHRlc3RfcGF0aCwgdXJsX2Jhc2UsIHJ1
bl9pbmZvX3Byb3BlcnRpZXMsIHVwZGF0ZV9pbnRlcm1pdHRlbnQsIHJlbW92ZV9pbnRlcm1pdHRl
bnQpOgogICAgICIiIkdldCB0aGUgRXhwZWN0ZWRNYW5pZmVzdCBmb3IgYSBwYXJ0aWN1bGFyIHRl
c3QgcGF0aCwgb3IgTm9uZSBpZiB0aGVyZSBpcyBubwogICAgIG1ldGFkYXRhIHN0b3JlZCBmb3Ig
dGhhdCB0ZXN0IHBhdGguCiAKICAgICA6cGFyYW0gbWV0YWRhdGFfcm9vdDogQWJzb2x1dGUgcGF0
aCB0byB0aGUgcm9vdCBvZiB0aGUgbWV0YWRhdGEgZGlyZWN0b3J5CiAgICAgOnBhcmFtIHRlc3Rf
cGF0aDogUGF0aCB0byB0aGUgdGVzdChzKSByZWxhdGl2ZSB0byB0aGUgdGVzdCByb290Ci0gICAg
OnBhcmFtIHVybF9iYXNlOiBCYXNlIHVybCBmb3Igc2VydmluZyB0aGUgdGVzdHMgaW4gdGhpcyBt
YW5pZmVzdAotICAgIDpwYXJhbSBwcm9wZXJ0eV9vcmRlcjogTGlzdCBvZiBwcm9wZXJ0aWVzIHRv
IHVzZSBpbiBleHBlY3RhdGlvbiBtZXRhZGF0YQotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ZnJvbSBtb3N0IHRvIGxlYXN0IHNpZ25pZmljYW50LgotICAgIDpwYXJhbSBib29sZWFuX3Byb3Bl
cnRpZXM6IFNldCBvZiBwcm9wZXJ0aWVzIGluIHByb3BlcnR5X29yZGVyIHRoYXQgc2hvdWxkCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmUgdHJlYXRlZCBhcyBib29sZWFuLiIiIgor
ICAgIDpwYXJhbSB1cmxfYmFzZTogQmFzZSB1cmwgZm9yIHNlcnZpbmcgdGhlIHRlc3RzIGluIHRo
aXMgbWFuaWZlc3QiIiIKICAgICBtYW5pZmVzdF9wYXRoID0gZXhwZWN0ZWQuZXhwZWN0ZWRfcGF0
aChtZXRhZGF0YV9yb290LCB0ZXN0X3BhdGgpCiAgICAgdHJ5OgogICAgICAgICB3aXRoIG9wZW4o
bWFuaWZlc3RfcGF0aCkgYXMgZjoKLSAgICAgICAgICAgIHJldHVybiBjb21waWxlKGYsIHRlc3Rf
cGF0aCwgdXJsX2Jhc2UsIHByb3BlcnR5X29yZGVyPXByb3BlcnR5X29yZGVyLAotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgYm9vbGVhbl9wcm9wZXJ0aWVzPWJvb2xlYW5fcHJvcGVydGllcykK
KyAgICAgICAgICAgIHJ2ID0gY29tcGlsZShmLCB0ZXN0X3BhdGgsIHVybF9iYXNlLAorICAgICAg
ICAgICAgICAgICAgICAgICAgIHJ1bl9pbmZvX3Byb3BlcnRpZXMsIHVwZGF0ZV9pbnRlcm1pdHRl
bnQsIHJlbW92ZV9pbnRlcm1pdHRlbnQpCiAgICAgZXhjZXB0IElPRXJyb3I6CiAgICAgICAgIHJl
dHVybiBOb25lCisgICAgcmV0dXJuIHJ2CiAKIAotZGVmIGNvbXBpbGUobWFuaWZlc3RfZmlsZSwg
dGVzdF9wYXRoLCB1cmxfYmFzZSwgcHJvcGVydHlfb3JkZXI9Tm9uZSwKLSAgICAgICAgICAgIGJv
b2xlYW5fcHJvcGVydGllcz1Ob25lKToKK2RlZiBjb21waWxlKG1hbmlmZXN0X2ZpbGUsIHRlc3Rf
cGF0aCwgdXJsX2Jhc2UsIHJ1bl9pbmZvX3Byb3BlcnRpZXMsIHVwZGF0ZV9pbnRlcm1pdHRlbnQs
IHJlbW92ZV9pbnRlcm1pdHRlbnQpOgogICAgIHJldHVybiBjb25kaXRpb25hbC5jb21waWxlKG1h
bmlmZXN0X2ZpbGUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YV9jbHNfZ2V0
dGVyPWRhdGFfY2xzX2dldHRlciwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0
X3BhdGg9dGVzdF9wYXRoLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVybF9iYXNl
PXVybF9iYXNlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByb3BlcnR5X29yZGVy
PXByb3BlcnR5X29yZGVyLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2xlYW5f
cHJvcGVydGllcz1ib29sZWFuX3Byb3BlcnRpZXMpCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgcnVuX2luZm9fcHJvcGVydGllcz1ydW5faW5mb19wcm9wZXJ0aWVzLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHVwZGF0ZV9pbnRlcm1pdHRlbnQ9dXBkYXRlX2ludGVybWl0
dGVudCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZW1vdmVfaW50ZXJtaXR0ZW50
PXJlbW92ZV9pbnRlcm1pdHRlbnQpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvbWV0YWRhdGEu
cHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dw
dHJ1bm5lci93cHRydW5uZXIvbWV0YWRhdGEucHkKaW5kZXggOTQ1NjBjZDkzZmYxNDgxOGNlM2Rl
NjBmMzg2NjcxNDA0M2MyNDIzNi4uYzMyOGRjZWZhNzI1M2RkZWE5NTI1NDljNzAyNzIzZTk4YjRj
YWRjNCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL21ldGFkYXRhLnB5CisrKyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1
bm5lci9tZXRhZGF0YS5weQpAQCAtMSwxOCArMSwxNyBAQAorZnJvbSBfX2Z1dHVyZV9fIGltcG9y
dCBwcmludF9mdW5jdGlvbgogaW1wb3J0IGFycmF5CiBpbXBvcnQgb3MKLWltcG9ydCBzaHV0aWwK
LWltcG9ydCB0ZW1wZmlsZQotaW1wb3J0IHV1aWQKIGZyb20gY29sbGVjdGlvbnMgaW1wb3J0IGRl
ZmF1bHRkaWN0LCBuYW1lZHR1cGxlCiAKIGZyb20gbW96bG9nIGltcG9ydCBzdHJ1Y3R1cmVkbG9n
Ci0KLWltcG9ydCBtYW5pZmVzdHVwZGF0ZQotaW1wb3J0IHRlc3Rsb2FkZXIKLWltcG9ydCB3cHRt
YW5pZmVzdAotaW1wb3J0IHdwdHRlc3QKLWZyb20gZXhwZWN0ZWQgaW1wb3J0IGV4cGVjdGVkX3Bh
dGgKLWZyb20gdmNzIGltcG9ydCBnaXQKK2Zyb20gc2l4Lm1vdmVzIGltcG9ydCBpbnRlcm4KKwor
ZnJvbSAuIGltcG9ydCBtYW5pZmVzdHVwZGF0ZQorZnJvbSAuIGltcG9ydCB0ZXN0bG9hZGVyCitm
cm9tIC4gaW1wb3J0IHdwdG1hbmlmZXN0Citmcm9tIC4gaW1wb3J0IHdwdHRlc3QKK2Zyb20gLmV4
cGVjdGVkIGltcG9ydCBleHBlY3RlZF9wYXRoCitmcm9tIC52Y3MgaW1wb3J0IGdpdAogbWFuaWZl
c3QgPSBOb25lICAjIE1vZHVsZSB0aGF0IHdpbGwgYmUgaW1wb3J0ZWQgcmVsYXRpdmUgdG8gdGVz
dF9yb290CiBtYW5pZmVzdGl0ZW0gPSBOb25lCiAKQEAgLTI0LDM3ICsyMyw3MyBAQCBleGNlcHQg
SW1wb3J0RXJyb3I6CiAgICAgaW1wb3J0IGpzb24KIAogCitjbGFzcyBSdW5JbmZvKG9iamVjdCk6
CisgICAgIiIiQSB3cmFwcGVyIGFyb3VuZCBSdW5JbmZvIGRpY3RzIHNvIHRoYXQgdGhleSBjYW4g
YmUgaGFzaGVkIGJ5IGlkZW50aXR5IiIiCisKKyAgICBkZWYgX19pbml0X18oc2VsZiwgZGljdF92
YWx1ZSk6CisgICAgICAgIHNlbGYuZGF0YSA9IGRpY3RfdmFsdWUKKyAgICAgICAgc2VsZi5jYW5v
bmljYWxfcmVwciA9IHR1cGxlKHR1cGxlKGl0ZW0pIGZvciBpdGVtIGluIHNvcnRlZChkaWN0X3Zh
bHVlLml0ZW1zKCkpKQorCisgICAgZGVmIF9fZ2V0aXRlbV9fKHNlbGYsIGtleSk6CisgICAgICAg
IHJldHVybiBzZWxmLmRhdGFba2V5XQorCisgICAgZGVmIF9fc2V0aXRlbV9fKHNlbGYsIGtleSwg
dmFsdWUpOgorICAgICAgICByYWlzZSBUeXBlRXJyb3IKKworICAgIGRlZiBfX2hhc2hfXyhzZWxm
KToKKyAgICAgICAgcmV0dXJuIGhhc2goc2VsZi5jYW5vbmljYWxfcmVwcikKKworICAgIGRlZiBf
X2VxX18oc2VsZiwgb3RoZXIpOgorICAgICAgICByZXR1cm4gc2VsZi5jYW5vbmljYWxfcmVwciA9
PSBvdGhlci5jYW5vbmljYWxfcmVwcgorCisgICAgZGVmIGl0ZXJpdGVtcyhzZWxmKToKKyAgICAg
ICAgZm9yIGtleSwgdmFsdWUgaW4gc2VsZi5kYXRhLml0ZXJpdGVtcygpOgorICAgICAgICAgICAg
eWllbGQga2V5LCB2YWx1ZQorCisgICAgZGVmIGl0ZW1zKHNlbGYpOgorICAgICAgICByZXR1cm4g
bGlzdChzZWxmLml0ZXJpdGVtcygpKQorCisKIGRlZiB1cGRhdGVfZXhwZWN0ZWQodGVzdF9wYXRo
cywgc2VydmVfcm9vdCwgbG9nX2ZpbGVfbmFtZXMsCi0gICAgICAgICAgICAgICAgICAgIHJldl9v
bGQ9Tm9uZSwgcmV2X25ldz0iSEVBRCIsIGlnbm9yZV9leGlzdGluZz1GYWxzZSwKLSAgICAgICAg
ICAgICAgICAgICAgc3luY19yb290PU5vbmUsIHByb3BlcnR5X29yZGVyPU5vbmUsIGJvb2xlYW5f
cHJvcGVydGllcz1Ob25lLAotICAgICAgICAgICAgICAgICAgICBzdGFiaWxpdHk9Tm9uZSk6Cisg
ICAgICAgICAgICAgICAgICAgIHVwZGF0ZV9wcm9wZXJ0aWVzLCByZXZfb2xkPU5vbmUsIHJldl9u
ZXc9IkhFQUQiLAorICAgICAgICAgICAgICAgICAgICBmdWxsX3VwZGF0ZT1GYWxzZSwgc3luY19y
b290PU5vbmUsIGRpc2FibGVfaW50ZXJtaXR0ZW50PU5vbmUsCisgICAgICAgICAgICAgICAgICAg
IHVwZGF0ZV9pbnRlcm1pdHRlbnQ9RmFsc2UsIHJlbW92ZV9pbnRlcm1pdHRlbnQ9RmFsc2UpOgog
ICAgICIiIlVwZGF0ZSB0aGUgbWV0YWRhdGEgZmlsZXMgZm9yIHdlYi1wbGF0Zm9ybS10ZXN0cyBi
YXNlZCBvbgogICAgIHRoZSByZXN1bHRzIG9idGFpbmVkIGluIGEgcHJldmlvdXMgcnVuIG9yIHJ1
bnMKIAotICAgIElmIHN0YWJpbGl0eSBpcyBub3QgTm9uZSwgYXNzdW1lIGxvZ19maWxlX25hbWVz
IHJlZmVycyB0byBsb2dzIGZyb20gcmVwZWF0ZWQKLSAgICB0ZXN0IGpvYnMsIGRpc2FibGUgdGVz
dHMgdGhhdCBkb24ndCBiZWhhdmUgYXMgZXhwZWN0ZWQgb24gYWxsIHJ1bnMiIiIKKyAgICBJZiBg
ZGlzYWJsZV9pbnRlcm1pdHRlbnRgIGlzIG5vdCBOb25lLCBhc3N1bWUgbG9nX2ZpbGVfbmFtZXMg
cmVmZXJzIHRvIGxvZ3MgZnJvbSByZXBlYXRlZAorICAgIHRlc3Qgam9icywgZGlzYWJsZSB0ZXN0
cyB0aGF0IGRvbid0IGJlaGF2ZSBhcyBleHBlY3RlZCBvbiBhbGwgcnVucworCisgICAgSWYgYHVw
ZGF0ZV9pbnRlcm1pdHRlbnRgIGlzIFRydWUsIGludGVybWl0dGVudCBzdGF0dXNlcyB3aWxsIGJl
IHJlY29yZGVkIGFzIGBleHBlY3RlZGAgaW4KKyAgICB0aGUgbWV0YWRhdGEuCisKKyAgICBJZiBg
cmVtb3ZlX2ludGVybWl0dGVudGAgaXMgVHJ1ZSBhbmQgdXNlZCBpbiBjb25qdW5jdGlvbiB3aXRo
IGB1cGRhdGVfaW50ZXJtaXR0ZW50YCwgYW55CisgICAgaW50ZXJtaXR0ZW50IHN0YXR1c2VzIHdo
aWNoIGFyZSBub3QgcHJlc2VudCBpbiB0aGUgY3VycmVudCBydW4gd2lsbCBiZSByZW1vdmVkIGZy
b20gdGhlCisgICAgbWV0YWRhdGEsIGVsc2UgdGhleSBhcmUgbGVmdCBpbi4iIiIKKwogICAgIGRv
X2RlbGF5ZWRfaW1wb3J0cyhzZXJ2ZV9yb290KQogCiAgICAgaWRfdGVzdF9tYXAgPSBsb2FkX3Rl
c3RfZGF0YSh0ZXN0X3BhdGhzKQogCiAgICAgZm9yIG1ldGFkYXRhX3BhdGgsIHVwZGF0ZWRfaW5p
IGluIHVwZGF0ZV9mcm9tX2xvZ3MoaWRfdGVzdF9tYXAsCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKmxvZ19maWxlX25hbWVzLAotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlnbm9yZV9l
eGlzdGluZz1pZ25vcmVfZXhpc3RpbmcsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgcHJvcGVydHlfb3JkZXI9cHJvcGVydHlfb3JkZXIsCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9v
bGVhbl9wcm9wZXJ0aWVzPWJvb2xlYW5fcHJvcGVydGllcywKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFiaWxpdHk9c3RhYmlsaXR5KToK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1
cGRhdGVfcHJvcGVydGllcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBkaXNhYmxlX2ludGVybWl0dGVudCwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1cGRhdGVfaW50ZXJtaXR0ZW50
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHJlbW92ZV9pbnRlcm1pdHRlbnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgZnVsbF91cGRhdGUsCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKmxvZ19maWxlX25hbWVzKToKIAogICAg
ICAgICB3cml0ZV9uZXdfZXhwZWN0ZWQobWV0YWRhdGFfcGF0aCwgdXBkYXRlZF9pbmkpCi0gICAg
ICAgIGlmIHN0YWJpbGl0eToKKyAgICAgICAgaWYgZGlzYWJsZV9pbnRlcm1pdHRlbnQ6CiAgICAg
ICAgICAgICBmb3IgdGVzdCBpbiB1cGRhdGVkX2luaS5pdGVyY2hpbGRyZW4oKToKICAgICAgICAg
ICAgICAgICBmb3Igc3VidGVzdCBpbiB0ZXN0Lml0ZXJjaGlsZHJlbigpOgogICAgICAgICAgICAg
ICAgICAgICBpZiBzdWJ0ZXN0Lm5ld19kaXNhYmxlZDoKLSAgICAgICAgICAgICAgICAgICAgICAg
IHByaW50ICJkaXNhYmxlZDogJXMiICUgb3MucGF0aC5kaXJuYW1lKHN1YnRlc3Qucm9vdC50ZXN0
X3BhdGgpICsgIi8iICsgc3VidGVzdC5uYW1lCisgICAgICAgICAgICAgICAgICAgICAgICBwcmlu
dCgiZGlzYWJsZWQ6ICVzIiAlIG9zLnBhdGguZGlybmFtZShzdWJ0ZXN0LnJvb3QudGVzdF9wYXRo
KSArICIvIiArIHN1YnRlc3QubmFtZSkKICAgICAgICAgICAgICAgICAgICAgaWYgdGVzdC5uZXdf
ZGlzYWJsZWQ6Ci0gICAgICAgICAgICAgICAgICAgICAgICBwcmludCAiZGlzYWJsZWQ6ICVzIiAl
IHRlc3Qucm9vdC50ZXN0X3BhdGgKKyAgICAgICAgICAgICAgICAgICAgICAgIHByaW50KCJkaXNh
YmxlZDogJXMiICUgdGVzdC5yb290LnRlc3RfcGF0aCkKIAogCi1kZWYgZG9fZGVsYXllZF9pbXBv
cnRzKHNlcnZlX3Jvb3QpOgorZGVmIGRvX2RlbGF5ZWRfaW1wb3J0cyhzZXJ2ZV9yb290PU5vbmUp
OgogICAgIGdsb2JhbCBtYW5pZmVzdCwgbWFuaWZlc3RpdGVtCiAgICAgZnJvbSBtYW5pZmVzdCBp
bXBvcnQgbWFuaWZlc3QsIGl0ZW0gYXMgbWFuaWZlc3RpdGVtCiAKQEAgLTExMiw3ICsxNDcsNyBA
QCBkZWYgdW5leHBlY3RlZF9jaGFuZ2VzKG1hbmlmZXN0cywgY2hhbmdlX2RhdGEsIGZpbGVzX2No
YW5nZWQpOgogIyAgIGZvciBlYWNoIGNvbmRpdGlvbmFsOgogIyAgICAgIElmIGFsbCB0aGUgbmV3
IHZhbHVlcyBtYXRjaCAob3IgdGhlcmUgYXJlbid0IGFueSkgcmV0YWluIHRoYXQgY29uZGl0aW9u
YWwKICMgICAgICBJZiBhbnkgbmV3IHZhbHVlcyBtaXNtYXRjaDoKLSMgICAgICAgICAgIElmIHN0
YWJpbGl0eSBhbmQgYW55IHJlcGVhdGVkIHZhbHVlcyBkb24ndCBtYXRjaCwgZGlzYWJsZSB0aGUg
dGVzdAorIyAgICAgICAgICAgSWYgZGlzYWJsZV9pbnRlcm1pdHRlbnQgYW5kIGFueSByZXBlYXRl
ZCB2YWx1ZXMgZG9uJ3QgbWF0Y2gsIGRpc2FibGUgdGhlIHRlc3QKICMgICAgICAgICAgIGVsc2Ug
bWFyayB0aGUgdGVzdCBhcyBuZWVkaW5nIGh1bWFuIGF0dGVudGlvbgogIyAgIENoZWNrIGlmIGFs
bCB0aGUgUkhTIHZhbHVlcyBhcmUgdGhlIHNhbWU7IGlmIHNvIGNvbGxhcHNlIHRoZSBjb25kaXRp
b25hbHMKIApAQCAtMTM4LDYgKzE3Myw5IEBAIGNsYXNzIEludGVybmVkRGF0YShvYmplY3QpOgog
ICAgICAgICAjIFJlc2VydmUgMCBhcyBhIHNlbnRpbmFsCiAgICAgICAgIHNlbGYuX2RhdGEgPSBb
Tm9uZV0sIHt9CiAKKyAgICBkZWYgY2xlYXIoc2VsZik6CisgICAgICAgIHNlbGYuX19pbml0X18o
KQorCiAgICAgZGVmIHN0b3JlKHNlbGYsIG9iaik6CiAgICAgICAgIGlmIHNlbGYudHlwZV9jb252
IGlzIG5vdCBOb25lOgogICAgICAgICAgICAgb2JqID0gc2VsZi50eXBlX2NvbnYob2JqKQpAQCAt
MTU5LDYgKzE5NywxMCBAQCBjbGFzcyBJbnRlcm5lZERhdGEob2JqZWN0KToKICAgICAgICAgICAg
IG9iaiA9IHNlbGYucmV2X3R5cGVfY29udihvYmopCiAgICAgICAgIHJldHVybiBvYmoKIAorICAg
IGRlZiBfX2l0ZXJfXyhzZWxmKToKKyAgICAgICAgZm9yIGkgaW4geHJhbmdlKDEsIGxlbihzZWxm
Ll9kYXRhWzBdKSk6CisgICAgICAgICAgICB5aWVsZCBzZWxmLmdldChpKQorCiAKIGNsYXNzIFJ1
bkluZm9JbnRlcm5lZChJbnRlcm5lZERhdGEpOgogICAgIGRlZiB0eXBlX2NvbnYoc2VsZiwgdmFs
dWUpOgpAQCAtMTY5LDEwICsyMTEsNDcgQEAgY2xhc3MgUnVuSW5mb0ludGVybmVkKEludGVybmVk
RGF0YSk6CiAKIAogcHJvcF9pbnRlcm4gPSBJbnRlcm5lZERhdGEoNCkKLXJ1bl9pbmZvX2ludGVy
biA9IFJ1bkluZm9JbnRlcm5lZCgpCitydW5faW5mb19pbnRlcm4gPSBJbnRlcm5lZERhdGEoOCkK
IHN0YXR1c19pbnRlcm4gPSBJbnRlcm5lZERhdGEoNCkKIAogCitkZWYgcGFja19yZXN1bHQoZGF0
YSk6CisgICAgIyBBcyBgc3RhdHVzX2ludGVybmAgbm9ybWFsbHkgaGFuZGxlcyBvbmUgc3RhdHVz
LCBpZiBga25vd25faW50ZXJtaXR0ZW50YCBpcyBwcmVzZW50IGluCisgICAgIyB0aGUgdGVzdCBs
b2dzLCBpbnRlcm4gYW5kIHN0b3JlIHRoaXMgd2l0aCB0aGUgYHN0YXR1c2AgaW4gYW4gYXJyYXkg
dW50aWwgbmVlZGVkLgorICAgIGlmIG5vdCBkYXRhLmdldCgia25vd25faW50ZXJtaXR0ZW50Iik6
CisgICAgICAgIHJldHVybiBzdGF0dXNfaW50ZXJuLnN0b3JlKGRhdGEuZ2V0KCJzdGF0dXMiKSkK
KyAgICByZXN1bHQgPSBhcnJheS5hcnJheSgiQiIpCisgICAgZXhwZWN0ZWQgPSBkYXRhLmdldCgi
ZXhwZWN0ZWQiKQorICAgIGlmIGV4cGVjdGVkIGlzIE5vbmU6CisgICAgICAgIGV4cGVjdGVkID0g
ZGF0YVsic3RhdHVzIl0KKyAgICByZXN1bHRfcGFydHMgPSBbZGF0YVsic3RhdHVzIl0sIGV4cGVj
dGVkXSArIGRhdGFbImtub3duX2ludGVybWl0dGVudCJdCisgICAgZm9yIGksIHBhcnQgaW4gZW51
bWVyYXRlKHJlc3VsdF9wYXJ0cyk6CisgICAgICAgIHZhbHVlID0gc3RhdHVzX2ludGVybi5zdG9y
ZShwYXJ0KQorICAgICAgICBpZiBpICUgMiA9PSAwOgorICAgICAgICAgICAgYXNzZXJ0IHZhbHVl
IDwgMTYKKyAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQodmFsdWUgPDwgNCkKKyAgICAgICAgZWxz
ZToKKyAgICAgICAgICAgIHJlc3VsdFstMV0gKz0gdmFsdWUKKyAgICByZXR1cm4gcmVzdWx0CisK
KworZGVmIHVucGFja19yZXN1bHQoZGF0YSk6CisgICAgaWYgaXNpbnN0YW5jZShkYXRhLCBpbnQp
OgorICAgICAgICByZXR1cm4gKHN0YXR1c19pbnRlcm4uZ2V0KGRhdGEpLCBOb25lKQorICAgIGlm
IGlzaW5zdGFuY2UoZGF0YSwgdW5pY29kZSk6CisgICAgICAgIHJldHVybiAoZGF0YSwgTm9uZSkK
KyAgICAjIFVucGFjayBtdWx0aXBsZSBzdGF0dXNlcyBpbnRvIGEgdHVwbGUgdG8gYmUgdXNlZCBp
biB0aGUgUmVzdWx0cyBuYW1lZCB0dXBsZSBiZWxvdywKKyAgICAjIHNlcGFyYXRpbmcgYHN0YXR1
c2AgYW5kIGBrbm93bl9pbnRlcm1pdHRlbnRgLgorICAgIHJlc3VsdHMgPSBbXQorICAgIGZvciBw
YWNrZWRfdmFsdWUgaW4gZGF0YToKKyAgICAgICAgZmlyc3QgPSBzdGF0dXNfaW50ZXJuLmdldChw
YWNrZWRfdmFsdWUgPj4gNCkKKyAgICAgICAgc2Vjb25kID0gc3RhdHVzX2ludGVybi5nZXQocGFj
a2VkX3ZhbHVlICYgMHgwRikKKyAgICAgICAgcmVzdWx0cy5hcHBlbmQoZmlyc3QpCisgICAgICAg
IGlmIHNlY29uZDoKKyAgICAgICAgICAgIHJlc3VsdHMuYXBwZW5kKHNlY29uZCkKKyAgICByZXR1
cm4gKChyZXN1bHRzWzBdLCksIHR1cGxlKHJlc3VsdHNbMTpdKSkKKworCiBkZWYgbG9hZF90ZXN0
X2RhdGEodGVzdF9wYXRocyk6CiAgICAgbWFuaWZlc3RfbG9hZGVyID0gdGVzdGxvYWRlci5NYW5p
ZmVzdExvYWRlcih0ZXN0X3BhdGhzLCBGYWxzZSkKICAgICBtYW5pZmVzdHMgPSBtYW5pZmVzdF9s
b2FkZXIubG9hZCgpCkBAIC0xODQsMjUgKzI2MywyOCBAQCBkZWYgbG9hZF90ZXN0X2RhdGEodGVz
dF9wYXRocyk6CiAgICAgcmV0dXJuIGlkX3Rlc3RfbWFwCiAKIAotZGVmIHVwZGF0ZV9mcm9tX2xv
Z3MoaWRfdGVzdF9tYXAsICpsb2dfZmlsZW5hbWVzLCAqKmt3YXJncyk6Ci0gICAgaWdub3JlX2V4
aXN0aW5nID0ga3dhcmdzLmdldCgiaWdub3JlX2V4aXN0aW5nIiwgRmFsc2UpCi0gICAgcHJvcGVy
dHlfb3JkZXIgPSBrd2FyZ3MuZ2V0KCJwcm9wZXJ0eV9vcmRlciIpCi0gICAgYm9vbGVhbl9wcm9w
ZXJ0aWVzID0ga3dhcmdzLmdldCgiYm9vbGVhbl9wcm9wZXJ0aWVzIikKLSAgICBzdGFiaWxpdHkg
PSBrd2FyZ3MuZ2V0KCJzdGFiaWxpdHkiKQorZGVmIHVwZGF0ZV9mcm9tX2xvZ3MoaWRfdGVzdF9t
YXAsIHVwZGF0ZV9wcm9wZXJ0aWVzLCBkaXNhYmxlX2ludGVybWl0dGVudCwgdXBkYXRlX2ludGVy
bWl0dGVudCwKKyAgICAgICAgICAgICAgICAgICAgIHJlbW92ZV9pbnRlcm1pdHRlbnQsIGZ1bGxf
dXBkYXRlLCAqbG9nX2ZpbGVuYW1lcyk6CiAKLSAgICB1cGRhdGVyID0gRXhwZWN0ZWRVcGRhdGVy
KGlkX3Rlc3RfbWFwLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWdub3JlX2V4aXN0
aW5nPWlnbm9yZV9leGlzdGluZykKKyAgICB1cGRhdGVyID0gRXhwZWN0ZWRVcGRhdGVyKGlkX3Rl
c3RfbWFwKQogCiAgICAgZm9yIGksIGxvZ19maWxlbmFtZSBpbiBlbnVtZXJhdGUobG9nX2ZpbGVu
YW1lcyk6CiAgICAgICAgIHByaW50KCJQcm9jZXNzaW5nIGxvZyAlZC8lZCIgJSAoaSArIDEsIGxl
bihsb2dfZmlsZW5hbWVzKSkpCiAgICAgICAgIHdpdGggb3Blbihsb2dfZmlsZW5hbWUpIGFzIGY6
CiAgICAgICAgICAgICB1cGRhdGVyLnVwZGF0ZV9mcm9tX2xvZyhmKQogCi0gICAgZm9yIGl0ZW0g
aW4gdXBkYXRlX3Jlc3VsdHMoaWRfdGVzdF9tYXAsIHByb3BlcnR5X29yZGVyLCBib29sZWFuX3By
b3BlcnRpZXMsIHN0YWJpbGl0eSk6CisgICAgZm9yIGl0ZW0gaW4gdXBkYXRlX3Jlc3VsdHMoaWRf
dGVzdF9tYXAsIHVwZGF0ZV9wcm9wZXJ0aWVzLCBmdWxsX3VwZGF0ZSwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBkaXNhYmxlX2ludGVybWl0dGVudCwgdXBkYXRlX2ludGVybWl0dGVu
dD11cGRhdGVfaW50ZXJtaXR0ZW50LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJl
bW92ZV9pbnRlcm1pdHRlbnQ9cmVtb3ZlX2ludGVybWl0dGVudCk6CiAgICAgICAgIHlpZWxkIGl0
ZW0KIAogCi1kZWYgdXBkYXRlX3Jlc3VsdHMoaWRfdGVzdF9tYXAsIHByb3BlcnR5X29yZGVyLCBi
b29sZWFuX3Byb3BlcnRpZXMsIHN0YWJpbGl0eSk6CitkZWYgdXBkYXRlX3Jlc3VsdHMoaWRfdGVz
dF9tYXAsCisgICAgICAgICAgICAgICAgICAgdXBkYXRlX3Byb3BlcnRpZXMsCisgICAgICAgICAg
ICAgICAgICAgZnVsbF91cGRhdGUsCisgICAgICAgICAgICAgICAgICAgZGlzYWJsZV9pbnRlcm1p
dHRlbnQsCisgICAgICAgICAgICAgICAgICAgdXBkYXRlX2ludGVybWl0dGVudCwKKyAgICAgICAg
ICAgICAgICAgICByZW1vdmVfaW50ZXJtaXR0ZW50KToKICAgICB0ZXN0X2ZpbGVfaXRlbXMgPSBz
ZXQoaWRfdGVzdF9tYXAuaXRlcnZhbHVlcygpKQogCiAgICAgZGVmYXVsdF9leHBlY3RlZF9ieV90
eXBlID0ge30KQEAgLTIxMyw4ICsyOTUsOSBAQCBkZWYgdXBkYXRlX3Jlc3VsdHMoaWRfdGVzdF9t
YXAsIHByb3BlcnR5X29yZGVyLCBib29sZWFuX3Byb3BlcnRpZXMsIHN0YWJpbGl0eSk6CiAgICAg
ICAgICAgICBkZWZhdWx0X2V4cGVjdGVkX2J5X3R5cGVbKHRlc3RfdHlwZSwgVHJ1ZSldID0gdGVz
dF9jbHMuc3VidGVzdF9yZXN1bHRfY2xzLmRlZmF1bHRfZXhwZWN0ZWQKIAogICAgIGZvciB0ZXN0
X2ZpbGUgaW4gdGVzdF9maWxlX2l0ZW1zOgotICAgICAgICB1cGRhdGVkX2V4cGVjdGVkID0gdGVz
dF9maWxlLnVwZGF0ZShwcm9wZXJ0eV9vcmRlciwgYm9vbGVhbl9wcm9wZXJ0aWVzLCBzdGFiaWxp
dHksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHRf
ZXhwZWN0ZWRfYnlfdHlwZSkKKyAgICAgICAgdXBkYXRlZF9leHBlY3RlZCA9IHRlc3RfZmlsZS51
cGRhdGUoZGVmYXVsdF9leHBlY3RlZF9ieV90eXBlLCB1cGRhdGVfcHJvcGVydGllcywKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZnVsbF91cGRhdGUsIGRpc2Fi
bGVfaW50ZXJtaXR0ZW50LCB1cGRhdGVfaW50ZXJtaXR0ZW50LAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICByZW1vdmVfaW50ZXJtaXR0ZW50KQogICAgICAgICBp
ZiB1cGRhdGVkX2V4cGVjdGVkIGlzIG5vdCBOb25lIGFuZCB1cGRhdGVkX2V4cGVjdGVkLm1vZGlm
aWVkOgogICAgICAgICAgICAgeWllbGQgdGVzdF9maWxlLm1ldGFkYXRhX3BhdGgsIHVwZGF0ZWRf
ZXhwZWN0ZWQKIApAQCAtMjI4LDM2ICszMTEsMTIgQEAgZGVmIGRpcmVjdG9yeV9tYW5pZmVzdHMo
bWV0YWRhdGFfcGF0aCk6CiAgICAgcmV0dXJuIHJ2CiAKIAotZGVmIHdyaXRlX2NoYW5nZXMobWV0
YWRhdGFfcGF0aCwgZXhwZWN0ZWQpOgotICAgICMgRmlyc3Qgd3JpdGUgdGhlIG5ldyBtYW5pZmVz
dCBmaWxlcyB0byBhIHRlbXBvcmFyeSBkaXJlY3RvcnkKLSAgICB0ZW1wX3BhdGggPSB0ZW1wZmls
ZS5ta2R0ZW1wKGRpcj1vcy5wYXRoLnNwbGl0KG1ldGFkYXRhX3BhdGgpWzBdKQotICAgIHdyaXRl
X25ld19leHBlY3RlZCh0ZW1wX3BhdGgsIGV4cGVjdGVkKQotCi0gICAgIyBDb3B5IGFsbCBmaWxl
cyBpbiB0aGUgcm9vdCB0byB0aGUgdGVtcG9yYXJ5IGxvY2F0aW9uIHNpbmNlCi0gICAgIyB0aGVz
ZSBjYW5ub3QgYmUgaW5pIGZpbGVzCi0gICAga2VlcF9maWxlcyA9IFtpdGVtIGZvciBpdGVtIGlu
IG9zLmxpc3RkaXIobWV0YWRhdGFfcGF0aCkgaWYKLSAgICAgICAgICAgICAgICAgIG5vdCBvcy5w
YXRoLmlzZGlyKG9zLnBhdGguam9pbihtZXRhZGF0YV9wYXRoLCBpdGVtKSldCi0KLSAgICBmb3Ig
aXRlbSBpbiBrZWVwX2ZpbGVzOgotICAgICAgICBkZXN0X2RpciA9IG9zLnBhdGguZGlybmFtZShv
cy5wYXRoLmpvaW4odGVtcF9wYXRoLCBpdGVtKSkKLSAgICAgICAgaWYgbm90IG9zLnBhdGguZXhp
c3RzKGRlc3RfZGlyKToKLSAgICAgICAgICAgIG9zLm1ha2VkaXJzKGRlc3RfZGlyKQotICAgICAg
ICBzaHV0aWwuY29weWZpbGUob3MucGF0aC5qb2luKG1ldGFkYXRhX3BhdGgsIGl0ZW0pLAotICAg
ICAgICAgICAgICAgICAgICAgICAgb3MucGF0aC5qb2luKHRlbXBfcGF0aCwgaXRlbSkpCi0KLSAg
ICAjIFRoZW4gbW92ZSB0aGUgb2xkIG1hbmlmZXN0IGZpbGVzIHRvIGEgbmV3IGxvY2F0aW9uCi0g
ICAgdGVtcF9wYXRoXzIgPSBtZXRhZGF0YV9wYXRoICsgc3RyKHV1aWQudXVpZDQoKSkKLSAgICBv
cy5yZW5hbWUobWV0YWRhdGFfcGF0aCwgdGVtcF9wYXRoXzIpCi0gICAgIyBNb3ZlIHRoZSBuZXcg
ZmlsZXMgdG8gdGhlIGRlc3RpbmF0aW9uIGxvY2F0aW9uIGFuZCByZW1vdmUgdGhlIG9sZCBmaWxl
cwotICAgIG9zLnJlbmFtZSh0ZW1wX3BhdGgsIG1ldGFkYXRhX3BhdGgpCi0gICAgc2h1dGlsLnJt
dHJlZSh0ZW1wX3BhdGhfMikKLQotCiBkZWYgd3JpdGVfbmV3X2V4cGVjdGVkKG1ldGFkYXRhX3Bh
dGgsIGV4cGVjdGVkKToKICAgICAjIFNlcmlhbGl6ZSB0aGUgZGF0YSBiYWNrIHRvIGEgZmlsZQog
ICAgIHBhdGggPSBleHBlY3RlZF9wYXRoKG1ldGFkYXRhX3BhdGgsIGV4cGVjdGVkLnRlc3RfcGF0
aCkKICAgICBpZiBub3QgZXhwZWN0ZWQuaXNfZW1wdHk6Ci0gICAgICAgIG1hbmlmZXN0X3N0ciA9
IHdwdG1hbmlmZXN0LnNlcmlhbGl6ZShleHBlY3RlZC5ub2RlLCBza2lwX2VtcHR5X2RhdGE9VHJ1
ZSkKKyAgICAgICAgbWFuaWZlc3Rfc3RyID0gd3B0bWFuaWZlc3Quc2VyaWFsaXplKGV4cGVjdGVk
Lm5vZGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBza2lw
X2VtcHR5X2RhdGE9VHJ1ZSkKICAgICAgICAgYXNzZXJ0IG1hbmlmZXN0X3N0ciAhPSAiIgogICAg
ICAgICBkaXIgPSBvcy5wYXRoLnNwbGl0KHBhdGgpWzBdCiAgICAgICAgIGlmIG5vdCBvcy5wYXRo
LmV4aXN0cyhkaXIpOgpAQCAtMjgwLDMxICszMzksNTUgQEAgZGVmIHdyaXRlX25ld19leHBlY3Rl
ZChtZXRhZGF0YV9wYXRoLCBleHBlY3RlZCk6CiAKIAogY2xhc3MgRXhwZWN0ZWRVcGRhdGVyKG9i
amVjdCk6Ci0gICAgZGVmIF9faW5pdF9fKHNlbGYsIGlkX3Rlc3RfbWFwLCBpZ25vcmVfZXhpc3Rp
bmc9RmFsc2UpOgorICAgIGRlZiBfX2luaXRfXyhzZWxmLCBpZF90ZXN0X21hcCk6CiAgICAgICAg
IHNlbGYuaWRfdGVzdF9tYXAgPSBpZF90ZXN0X21hcAotICAgICAgICBzZWxmLmlnbm9yZV9leGlz
dGluZyA9IGlnbm9yZV9leGlzdGluZwogICAgICAgICBzZWxmLnJ1bl9pbmZvID0gTm9uZQogICAg
ICAgICBzZWxmLmFjdGlvbl9tYXAgPSB7InN1aXRlX3N0YXJ0Ijogc2VsZi5zdWl0ZV9zdGFydCwK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ0ZXN0X3N0YXJ0Ijogc2VsZi50ZXN0X3N0YXJ0
LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgInRlc3Rfc3RhdHVzIjogc2VsZi50ZXN0X3N0
YXR1cywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ0ZXN0X2VuZCI6IHNlbGYudGVzdF9l
bmQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAiYXNzZXJ0aW9uX2NvdW50Ijogc2VsZi5h
c3NlcnRpb25fY291bnQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAibHNhbl9sZWFrIjog
c2VsZi5sc2FuX2xlYWt9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAibHNhbl9sZWFrIjog
c2VsZi5sc2FuX2xlYWssCisgICAgICAgICAgICAgICAgICAgICAgICAgICAibW96bGVha19vYmpl
Y3QiOiBzZWxmLm1vemxlYWtfb2JqZWN0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIm1v
emxlYWtfdG90YWwiOiBzZWxmLm1vemxlYWtfdG90YWx9CiAgICAgICAgIHNlbGYudGVzdHNfdmlz
aXRlZCA9IHt9CiAKICAgICBkZWYgdXBkYXRlX2Zyb21fbG9nKHNlbGYsIGxvZ19maWxlKToKKyAg
ICAgICAgIyBXZSBzdXBwb3J0IHRocmVlIHBvc3NpYmxlIGZvcm1hdHM6CisgICAgICAgICMgKiB3
cHRyZXBvcnQgZm9ybWF0OyBvbmUganNvbiBvYmplY3QgaW4gdGhlIGZpbGUsIHBvc3NpYmx5IHBy
ZXR0eS1wcmludGVkCisgICAgICAgICMgKiB3cHRyZXBvcnQgZm9ybWF0OyBvbmUgcnVuIHBlciBs
aW5lCisgICAgICAgICMgKiByYXcgbG9nIGZvcm1hdAorCisgICAgICAgICMgVHJ5IHJlYWRpbmcg
YSBzaW5nbGUganNvbiBvYmplY3QgaW4gd3B0cmVwb3J0IGZvcm1hdAogICAgICAgICBzZWxmLnJ1
bl9pbmZvID0gTm9uZQorICAgICAgICBzdWNjZXNzID0gc2VsZi5nZXRfd3B0cmVwb3J0X2RhdGEo
bG9nX2ZpbGUucmVhZCgpKQorCisgICAgICAgIGlmIHN1Y2Nlc3M6CisgICAgICAgICAgICByZXR1
cm4KKworICAgICAgICAjIFRyeSBsaW5lLXNlcGFyYXRlZCBqc29uIG9iamVjdHMgaW4gd3B0cmVw
b3J0IGZvcm1hdAorICAgICAgICBsb2dfZmlsZS5zZWVrKDApCisgICAgICAgIGZvciBsaW5lIGlu
IGxvZ19maWxlOgorICAgICAgICAgICAgc3VjY2VzcyA9IHNlbGYuZ2V0X3dwdHJlcG9ydF9kYXRh
KGxpbmUpCisgICAgICAgICAgICBpZiBub3Qgc3VjY2VzczoKKyAgICAgICAgICAgICAgICBicmVh
aworICAgICAgICBlbHNlOgorICAgICAgICAgICAgcmV0dXJuCisKKyAgICAgICAgIyBBc3N1bWUg
dGhlIGZpbGUgaXMgYSByYXcgbG9nCisgICAgICAgIGxvZ19maWxlLnNlZWsoMCkKKyAgICAgICAg
c2VsZi51cGRhdGVfZnJvbV9yYXdfbG9nKGxvZ19maWxlKQorCisgICAgZGVmIGdldF93cHRyZXBv
cnRfZGF0YShzZWxmLCBpbnB1dF9zdHIpOgogICAgICAgICB0cnk6Ci0gICAgICAgICAgICBkYXRh
ID0ganNvbi5sb2FkKGxvZ19maWxlKQorICAgICAgICAgICAgZGF0YSA9IGpzb24ubG9hZHMoaW5w
dXRfc3RyKQogICAgICAgICBleGNlcHQgRXhjZXB0aW9uOgogICAgICAgICAgICAgcGFzcwogICAg
ICAgICBlbHNlOgogICAgICAgICAgICAgaWYgImFjdGlvbiIgbm90IGluIGRhdGEgYW5kICJyZXN1
bHRzIiBpbiBkYXRhOgogICAgICAgICAgICAgICAgIHNlbGYudXBkYXRlX2Zyb21fd3B0cmVwb3J0
X2xvZyhkYXRhKQotICAgICAgICAgICAgICAgIHJldHVybgotCi0gICAgICAgIGxvZ19maWxlLnNl
ZWsoMCkKLSAgICAgICAgc2VsZi51cGRhdGVfZnJvbV9yYXdfbG9nKGxvZ19maWxlKQorICAgICAg
ICAgICAgICAgIHJldHVybiBUcnVlCisgICAgICAgIHJldHVybiBGYWxzZQogCiAgICAgZGVmIHVw
ZGF0ZV9mcm9tX3Jhd19sb2coc2VsZiwgbG9nX2ZpbGUpOgogICAgICAgICBhY3Rpb25fbWFwID0g
c2VsZi5hY3Rpb25fbWFwCkBAIC0zMjcsMTAgKzQxMCwxMiBAQCBjbGFzcyBFeHBlY3RlZFVwZGF0
ZXIob2JqZWN0KToKICAgICAgICAgICAgICAgICBhY3Rpb25fbWFwWyJ0ZXN0X3N0YXR1cyJdKHsi
dGVzdCI6IHRlc3RbInRlc3QiXSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAic3VidGVzdCI6IHN1YnRlc3RbIm5hbWUiXSwKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAic3RhdHVzIjogc3VidGVzdFsic3RhdHVzIl0sCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImV4cGVjdGVkIjogc3VidGVz
dC5nZXQoImV4cGVjdGVkIil9KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICJleHBlY3RlZCI6IHN1YnRlc3QuZ2V0KCJleHBlY3RlZCIpLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJrbm93bl9pbnRlcm1pdHRlbnQiOiBzdWJ0
ZXN0LmdldCgia25vd25faW50ZXJtaXR0ZW50IiwgW10pfSkKICAgICAgICAgICAgIGFjdGlvbl9t
YXBbInRlc3RfZW5kIl0oeyJ0ZXN0IjogdGVzdFsidGVzdCJdLAogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgInN0YXR1cyI6IHRlc3RbInN0YXR1cyJdLAotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgImV4cGVjdGVkIjogdGVzdC5nZXQoImV4cGVjdGVkIil9
KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImV4cGVjdGVkIjogdGVzdC5n
ZXQoImV4cGVjdGVkIiksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAia25v
d25faW50ZXJtaXR0ZW50IjogdGVzdC5nZXQoImtub3duX2ludGVybWl0dGVudCIsIFtdKX0pCiAg
ICAgICAgICAgICBpZiAiYXNzZXJ0cyIgaW4gdGVzdDoKICAgICAgICAgICAgICAgICBhc3NlcnRz
ID0gdGVzdFsiYXNzZXJ0cyJdCiAgICAgICAgICAgICAgICAgYWN0aW9uX21hcFsiYXNzZXJ0aW9u
X2NvdW50Il0oeyJ0ZXN0IjogdGVzdFsidGVzdCJdLApAQCAtMzQwLDIwICs0MjUsMjYgQEAgY2xh
c3MgRXhwZWN0ZWRVcGRhdGVyKG9iamVjdCk6CiAgICAgICAgIGZvciBpdGVtIGluIGRhdGEuZ2V0
KCJsc2FuX2xlYWtzIiwgW10pOgogICAgICAgICAgICAgYWN0aW9uX21hcFsibHNhbl9sZWFrIl0o
aXRlbSkKIAorICAgICAgICBtb3psZWFrX2RhdGEgPSBkYXRhLmdldCgibW96bGVhayIsIHt9KQor
ICAgICAgICBmb3Igc2NvcGUsIHNjb3BlX2RhdGEgaW4gbW96bGVha19kYXRhLml0ZXJpdGVtcygp
OgorICAgICAgICAgICAgZm9yIGtleSwgYWN0aW9uIGluIFsoIm9iamVjdHMiLCAibW96bGVha19v
YmplY3QiKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCJ0b3RhbCIsICJtb3ps
ZWFrX3RvdGFsIildOgorICAgICAgICAgICAgICAgIGZvciBpdGVtIGluIHNjb3BlX2RhdGEuZ2V0
KGtleSwgW10pOgorICAgICAgICAgICAgICAgICAgICBpdGVtX2RhdGEgPSB7InNjb3BlIjogc2Nv
cGV9CisgICAgICAgICAgICAgICAgICAgIGl0ZW1fZGF0YS51cGRhdGUoaXRlbSkKKyAgICAgICAg
ICAgICAgICAgICAgYWN0aW9uX21hcFthY3Rpb25dKGl0ZW1fZGF0YSkKKwogICAgIGRlZiBzdWl0
ZV9zdGFydChzZWxmLCBkYXRhKToKLSAgICAgICAgc2VsZi5ydW5faW5mbyA9IHJ1bl9pbmZvX2lu
dGVybi5zdG9yZShkYXRhWyJydW5faW5mbyJdKQorICAgICAgICBzZWxmLnJ1bl9pbmZvID0gcnVu
X2luZm9faW50ZXJuLnN0b3JlKFJ1bkluZm8oZGF0YVsicnVuX2luZm8iXSkpCiAKICAgICBkZWYg
dGVzdF9zdGFydChzZWxmLCBkYXRhKToKICAgICAgICAgdGVzdF9pZCA9IGludGVybihkYXRhWyJ0
ZXN0Il0uZW5jb2RlKCJ1dGY4IikpCiAgICAgICAgIHRyeToKLSAgICAgICAgICAgIHRlc3RfZGF0
YSA9IHNlbGYuaWRfdGVzdF9tYXBbdGVzdF9pZF0KKyAgICAgICAgICAgIHNlbGYuaWRfdGVzdF9t
YXBbdGVzdF9pZF0KICAgICAgICAgZXhjZXB0IEtleUVycm9yOgotICAgICAgICAgICAgcHJpbnQg
IlRlc3Qgbm90IGZvdW5kICVzLCBza2lwcGluZyIgJSB0ZXN0X2lkCisgICAgICAgICAgICBwcmlu
dCgiVGVzdCBub3QgZm91bmQgJXMsIHNraXBwaW5nIiAlIHRlc3RfaWQpCiAgICAgICAgICAgICBy
ZXR1cm4KIAotICAgICAgICBpZiBzZWxmLmlnbm9yZV9leGlzdGluZzoKLSAgICAgICAgICAgIHRl
c3RfZGF0YS5zZXRfcmVxdWlyZXNfdXBkYXRlKCkKLSAgICAgICAgICAgIHRlc3RfZGF0YS5jbGVh
ci5hcHBlbmQoImV4cGVjdGVkIikKICAgICAgICAgc2VsZi50ZXN0c192aXNpdGVkW3Rlc3RfaWRd
ID0gc2V0KCkKIAogICAgIGRlZiB0ZXN0X3N0YXR1cyhzZWxmLCBkYXRhKToKQEAgLTM2NSw3ICs0
NTYsNyBAQCBjbGFzcyBFeHBlY3RlZFVwZGF0ZXIob2JqZWN0KToKIAogICAgICAgICBzZWxmLnRl
c3RzX3Zpc2l0ZWRbdGVzdF9pZF0uYWRkKHN1YnRlc3QpCiAKLSAgICAgICAgcmVzdWx0ID0gc3Rh
dHVzX2ludGVybi5zdG9yZShkYXRhWyJzdGF0dXMiXSkKKyAgICAgICAgcmVzdWx0ID0gcGFja19y
ZXN1bHQoZGF0YSkKIAogICAgICAgICB0ZXN0X2RhdGEuc2V0KHRlc3RfaWQsIHN1YnRlc3QsICJz
dGF0dXMiLCBzZWxmLnJ1bl9pbmZvLCByZXN1bHQpCiAgICAgICAgIGlmIGRhdGEuZ2V0KCJleHBl
Y3RlZCIpIGFuZCBkYXRhWyJleHBlY3RlZCJdICE9IGRhdGFbInN0YXR1cyJdOgpAQCAtMzgwLDEw
ICs0NzEsMTAgQEAgY2xhc3MgRXhwZWN0ZWRVcGRhdGVyKG9iamVjdCk6CiAgICAgICAgIGlmIHRl
c3RfZGF0YSBpcyBOb25lOgogICAgICAgICAgICAgcmV0dXJuCiAKLSAgICAgICAgcmVzdWx0ID0g
c3RhdHVzX2ludGVybi5zdG9yZShkYXRhWyJzdGF0dXMiXSkKKyAgICAgICAgcmVzdWx0ID0gcGFj
a19yZXN1bHQoZGF0YSkKIAogICAgICAgICB0ZXN0X2RhdGEuc2V0KHRlc3RfaWQsIE5vbmUsICJz
dGF0dXMiLCBzZWxmLnJ1bl9pbmZvLCByZXN1bHQpCi0gICAgICAgIGlmIGRhdGEuZ2V0KCJleHBl
Y3RlZCIpIGFuZCBkYXRhWyJzdGF0dXMiXSAhPSBkYXRhWyJleHBlY3RlZCJdOgorICAgICAgICBp
ZiBkYXRhLmdldCgiZXhwZWN0ZWQiKSBhbmQgZGF0YVsiZXhwZWN0ZWQiXSAhPSBkYXRhWyJzdGF0
dXMiXToKICAgICAgICAgICAgIHRlc3RfZGF0YS5zZXRfcmVxdWlyZXNfdXBkYXRlKCkKICAgICAg
ICAgZGVsIHNlbGYudGVzdHNfdmlzaXRlZFt0ZXN0X2lkXQogCkBAIC0zOTcsMjUgKzQ4OCw0NiBA
QCBjbGFzcyBFeHBlY3RlZFVwZGF0ZXIob2JqZWN0KToKICAgICAgICAgaWYgZGF0YVsiY291bnQi
XSA8IGRhdGFbIm1pbl9leHBlY3RlZCJdIG9yIGRhdGFbImNvdW50Il0gPiBkYXRhWyJtYXhfZXhw
ZWN0ZWQiXToKICAgICAgICAgICAgIHRlc3RfZGF0YS5zZXRfcmVxdWlyZXNfdXBkYXRlKCkKIAot
ICAgIGRlZiBsc2FuX2xlYWsoc2VsZiwgZGF0YSk6CisgICAgZGVmIHRlc3RfZm9yX3Njb3BlKHNl
bGYsIGRhdGEpOgogICAgICAgICBkaXJfcGF0aCA9IGRhdGEuZ2V0KCJzY29wZSIsICIvIikKICAg
ICAgICAgZGlyX2lkID0gaW50ZXJuKG9zLnBhdGguam9pbihkaXJfcGF0aCwgIl9fZGlyX18iKS5y
ZXBsYWNlKG9zLnBhdGguc2VwLCAiLyIpLmVuY29kZSgidXRmOCIpKQogICAgICAgICBpZiBkaXJf
aWQuc3RhcnRzd2l0aCgiLyIpOgogICAgICAgICAgICAgZGlyX2lkID0gZGlyX2lkWzE6XQotICAg
ICAgICB0ZXN0X2RhdGEgPSBzZWxmLmlkX3Rlc3RfbWFwW2Rpcl9pZF0KKyAgICAgICAgcmV0dXJu
IGRpcl9pZCwgc2VsZi5pZF90ZXN0X21hcFtkaXJfaWRdCisKKyAgICBkZWYgbHNhbl9sZWFrKHNl
bGYsIGRhdGEpOgorICAgICAgICBkaXJfaWQsIHRlc3RfZGF0YSA9IHNlbGYudGVzdF9mb3Jfc2Nv
cGUoZGF0YSkKICAgICAgICAgdGVzdF9kYXRhLnNldChkaXJfaWQsIE5vbmUsICJsc2FuIiwKICAg
ICAgICAgICAgICAgICAgICAgICBzZWxmLnJ1bl9pbmZvLCAoZGF0YVsiZnJhbWVzIl0sIGRhdGEu
Z2V0KCJhbGxvd2VkX21hdGNoIikpKQogICAgICAgICBpZiBub3QgZGF0YS5nZXQoImFsbG93ZWRf
bWF0Y2giKToKICAgICAgICAgICAgIHRlc3RfZGF0YS5zZXRfcmVxdWlyZXNfdXBkYXRlKCkKIAor
ICAgIGRlZiBtb3psZWFrX29iamVjdChzZWxmLCBkYXRhKToKKyAgICAgICAgZGlyX2lkLCB0ZXN0
X2RhdGEgPSBzZWxmLnRlc3RfZm9yX3Njb3BlKGRhdGEpCisgICAgICAgIHRlc3RfZGF0YS5zZXQo
ZGlyX2lkLCBOb25lLCAibGVhay1vYmplY3QiLAorICAgICAgICAgICAgICAgICAgICAgIHNlbGYu
cnVuX2luZm8sICgiJXM6JXMiLCAoZGF0YVsicHJvY2VzcyJdLCBkYXRhWyJuYW1lIl0pLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhLmdldCgiYWxsb3dlZCIpKSkK
KyAgICAgICAgaWYgbm90IGRhdGEuZ2V0KCJhbGxvd2VkIik6CisgICAgICAgICAgICB0ZXN0X2Rh
dGEuc2V0X3JlcXVpcmVzX3VwZGF0ZSgpCisKKyAgICBkZWYgbW96bGVha190b3RhbChzZWxmLCBk
YXRhKToKKyAgICAgICAgaWYgZGF0YVsiYnl0ZXMiXToKKyAgICAgICAgICAgIGRpcl9pZCwgdGVz
dF9kYXRhID0gc2VsZi50ZXN0X2Zvcl9zY29wZShkYXRhKQorICAgICAgICAgICAgdGVzdF9kYXRh
LnNldChkaXJfaWQsIE5vbmUsICJsZWFrLXRocmVzaG9sZCIsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgIHNlbGYucnVuX2luZm8sIChkYXRhWyJwcm9jZXNzIl0sIGRhdGFbImJ5dGVzIl0sIGRh
dGFbInRocmVzaG9sZCJdKSkKKyAgICAgICAgICAgIGlmIGRhdGFbImJ5dGVzIl0gPiBkYXRhWyJ0
aHJlc2hvbGQiXSBvciBkYXRhWyJieXRlcyJdIDwgMDoKKyAgICAgICAgICAgICAgICB0ZXN0X2Rh
dGEuc2V0X3JlcXVpcmVzX3VwZGF0ZSgpCisKIAogZGVmIGNyZWF0ZV90ZXN0X3RyZWUobWV0YWRh
dGFfcGF0aCwgdGVzdF9tYW5pZmVzdCk6CiAgICAgIiIiQ3JlYXRlIGEgbWFwIG9mIHRlc3RfaWQg
dG8gVGVzdEZpbGVEYXRhIGZvciB0aGF0IHRlc3QuCiAgICAgIiIiCisgICAgZG9fZGVsYXllZF9p
bXBvcnRzKCkKICAgICBpZF90ZXN0X21hcCA9IHt9Ci0gICAgZXhjbHVkZV90eXBlcyA9IGZyb3pl
bnNldChbInN0dWIiLCAiaGVscGVyIiwgIm1hbnVhbCIsICJzdXBwb3J0IiwgImNvbmZvcm1hbmNl
Y2hlY2tlciJdKQotICAgIGFsbF90eXBlcyA9IG1hbmlmZXN0aXRlbS5pdGVtX3R5cGVzLmtleXMo
KQotICAgIGluY2x1ZGVfdHlwZXMgPSBzZXQoYWxsX3R5cGVzKSAtIGV4Y2x1ZGVfdHlwZXMKKyAg
ICBleGNsdWRlX3R5cGVzID0gZnJvemVuc2V0KFsibWFudWFsIiwgInN1cHBvcnQiLCAiY29uZm9y
bWFuY2VjaGVja2VyIl0pCisgICAgYWxsX3R5cGVzID0gc2V0KG1hbmlmZXN0aXRlbS5pdGVtX3R5
cGVzLmtleXMoKSkKKyAgICBhc3NlcnQgYWxsX3R5cGVzID4gZXhjbHVkZV90eXBlcworICAgIGlu
Y2x1ZGVfdHlwZXMgPSBhbGxfdHlwZXMgLSBleGNsdWRlX3R5cGVzCiAgICAgZm9yIGl0ZW1fdHlw
ZSwgdGVzdF9wYXRoLCB0ZXN0cyBpbiB0ZXN0X21hbmlmZXN0Lml0ZXJ0eXBlcygqaW5jbHVkZV90
eXBlcyk6CiAgICAgICAgIHRlc3RfZmlsZV9kYXRhID0gVGVzdEZpbGVEYXRhKGludGVybih0ZXN0
X21hbmlmZXN0LnVybF9iYXNlLmVuY29kZSgidXRmOCIpKSwKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgaW50ZXJuKGl0ZW1fdHlwZS5lbmNvZGUoInV0ZjgiKSksCkBAIC00
NjcsNyArNTc5LDcgQEAgY2xhc3MgUGFja2VkUmVzdWx0TGlzdChvYmplY3QpOgogCiAgICAgZGVm
IGFwcGVuZChzZWxmLCBwcm9wLCBydW5faW5mbywgdmFsdWUpOgogICAgICAgICBvdXRfdmFsID0g
KHByb3AgPDwgMTIpICsgcnVuX2luZm8KLSAgICAgICAgaWYgcHJvcCA9PSBwcm9wX2ludGVybi5z
dG9yZSgic3RhdHVzIik6CisgICAgICAgIGlmIHByb3AgPT0gcHJvcF9pbnRlcm4uc3RvcmUoInN0
YXR1cyIpIGFuZCBpc2luc3RhbmNlKHZhbHVlLCBpbnQpOgogICAgICAgICAgICAgb3V0X3ZhbCAr
PSB2YWx1ZSA8PCA4CiAgICAgICAgIGVsc2U6CiAgICAgICAgICAgICBpZiBub3QgaGFzYXR0cihz
ZWxmLCAicmF3X2RhdGEiKToKQEAgLTQ3OSwxMiArNTkxLDEyIEBAIGNsYXNzIFBhY2tlZFJlc3Vs
dExpc3Qob2JqZWN0KToKICAgICAgICAgcHJvcCA9IHByb3BfaW50ZXJuLmdldCgocGFja2VkICYg
MHhGMDAwKSA+PiAxMikKIAogICAgICAgICB2YWx1ZV9pZHggPSAocGFja2VkICYgMHgwRjAwKSA+
PiA4Ci0gICAgICAgIGlmIHZhbHVlX2lkeCBpcyAwOgorICAgICAgICBpZiB2YWx1ZV9pZHggPT0g
MDoKICAgICAgICAgICAgIHZhbHVlID0gc2VsZi5yYXdfZGF0YVtpZHhdCiAgICAgICAgIGVsc2U6
CiAgICAgICAgICAgICB2YWx1ZSA9IHN0YXR1c19pbnRlcm4uZ2V0KHZhbHVlX2lkeCkKIAotICAg
ICAgICBydW5faW5mbyA9IHJ1bl9pbmZvX2ludGVybi5nZXQoKHBhY2tlZCAmIDB4MDBGRikpCisg
ICAgICAgIHJ1bl9pbmZvID0gcnVuX2luZm9faW50ZXJuLmdldChwYWNrZWQgJiAweDAwRkYpCiAK
ICAgICAgICAgcmV0dXJuIHByb3AsIHJ1bl9pbmZvLCB2YWx1ZQogCkBAIC00OTUsNyArNjA3LDcg
QEAgY2xhc3MgUGFja2VkUmVzdWx0TGlzdChvYmplY3QpOgogCiBjbGFzcyBUZXN0RmlsZURhdGEo
b2JqZWN0KToKICAgICBfX3Nsb3RzX18gPSAoInVybF9iYXNlIiwgIml0ZW1fdHlwZSIsICJ0ZXN0
X3BhdGgiLCAibWV0YWRhdGFfcGF0aCIsICJ0ZXN0cyIsCi0gICAgICAgICAgICAgICAgICJfcmVx
dWlyZXNfdXBkYXRlIiwgImNsZWFyIiwgImRhdGEiKQorICAgICAgICAgICAgICAgICAiX3JlcXVp
cmVzX3VwZGF0ZSIsICJkYXRhIikKIAogICAgIGRlZiBfX2luaXRfXyhzZWxmLCB1cmxfYmFzZSwg
aXRlbV90eXBlLCBtZXRhZGF0YV9wYXRoLCB0ZXN0X3BhdGgsIHRlc3RzKToKICAgICAgICAgc2Vs
Zi51cmxfYmFzZSA9IHVybF9iYXNlCkBAIC01MDQsMzcgKzYxNiw4NiBAQCBjbGFzcyBUZXN0Rmls
ZURhdGEob2JqZWN0KToKICAgICAgICAgc2VsZi5tZXRhZGF0YV9wYXRoID0gbWV0YWRhdGFfcGF0
aAogICAgICAgICBzZWxmLnRlc3RzID0ge2ludGVybihpdGVtLmlkLmVuY29kZSgidXRmOCIpKSBm
b3IgaXRlbSBpbiB0ZXN0c30KICAgICAgICAgc2VsZi5fcmVxdWlyZXNfdXBkYXRlID0gRmFsc2UK
LSAgICAgICAgc2VsZi5jbGVhciA9IHNldCgpCiAgICAgICAgIHNlbGYuZGF0YSA9IGRlZmF1bHRk
aWN0KGxhbWJkYTogZGVmYXVsdGRpY3QoUGFja2VkUmVzdWx0TGlzdCkpCiAKICAgICBkZWYgc2V0
X3JlcXVpcmVzX3VwZGF0ZShzZWxmKToKICAgICAgICAgc2VsZi5fcmVxdWlyZXNfdXBkYXRlID0g
VHJ1ZQogCisgICAgQHByb3BlcnR5CisgICAgZGVmIHJlcXVpcmVzX3VwZGF0ZShzZWxmKToKKyAg
ICAgICAgcmV0dXJuIHNlbGYuX3JlcXVpcmVzX3VwZGF0ZQorCiAgICAgZGVmIHNldChzZWxmLCB0
ZXN0X2lkLCBzdWJ0ZXN0X2lkLCBwcm9wLCBydW5faW5mbywgdmFsdWUpOgogICAgICAgICBzZWxm
LmRhdGFbdGVzdF9pZF1bc3VidGVzdF9pZF0uYXBwZW5kKHByb3BfaW50ZXJuLnN0b3JlKHByb3Ap
LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJ1bl9pbmZv
LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlKQog
Ci0gICAgZGVmIGV4cGVjdGVkKHNlbGYsIHByb3BlcnR5X29yZGVyLCBib29sZWFuX3Byb3BlcnRp
ZXMpOgorICAgIGRlZiBleHBlY3RlZChzZWxmLCB1cGRhdGVfcHJvcGVydGllcywgdXBkYXRlX2lu
dGVybWl0dGVudCwgcmVtb3ZlX2ludGVybWl0dGVudCk6CiAgICAgICAgIGV4cGVjdGVkX2RhdGEg
PSBsb2FkX2V4cGVjdGVkKHNlbGYudXJsX2Jhc2UsCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHNlbGYubWV0YWRhdGFfcGF0aCwKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgc2VsZi50ZXN0X3BhdGgsCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHNlbGYudGVzdHMsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHByb3BlcnR5X29yZGVyLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBib29sZWFuX3Byb3BlcnRpZXMpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHVwZGF0ZV9wcm9wZXJ0aWVzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICB1cGRhdGVfaW50ZXJtaXR0ZW50LAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICByZW1vdmVfaW50ZXJtaXR0ZW50KQogICAgICAgICBpZiBleHBlY3RlZF9kYXRh
IGlzIE5vbmU6CiAgICAgICAgICAgICBleHBlY3RlZF9kYXRhID0gY3JlYXRlX2V4cGVjdGVkKHNl
bGYudXJsX2Jhc2UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHNlbGYudGVzdF9wYXRoLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBwcm9wZXJ0eV9vcmRlciwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgYm9vbGVhbl9wcm9wZXJ0aWVzKQorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICB1cGRhdGVfcHJvcGVydGllcywKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgdXBkYXRlX2ludGVybWl0dGVudCwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVtb3ZlX2ludGVybWl0dGVudCkKICAg
ICAgICAgcmV0dXJuIGV4cGVjdGVkX2RhdGEKIAotICAgIGRlZiB1cGRhdGUoc2VsZiwgcHJvcGVy
dHlfb3JkZXIsIGJvb2xlYW5fcHJvcGVydGllcywgc3RhYmlsaXR5LAotICAgICAgICAgICAgICAg
ZGVmYXVsdF9leHBlY3RlZF9ieV90eXBlKToKLSAgICAgICAgaWYgbm90IHNlbGYuX3JlcXVpcmVz
X3VwZGF0ZToKKyAgICBkZWYgaXNfZGlzYWJsZWQoc2VsZiwgdGVzdCk6CisgICAgICAgICMgVGhp
cyBjb25zZXJ2YXRpdmVseSBhc3N1bWVzIHRoYXQgYW55dGhpbmcgdGhhdCB3YXMgZGlzYWJsZWQg
cmVtYWlucyBkaXNhYmxlZAorICAgICAgICAjIHdlIGNvdWxkIHByb2JhYmx5IGRvIGJldHRlciBi
eSBjaGVja2luZyBpZiBpdCdzIGluIHRoZSBmdWxsIHNldCBvZiBydW4gaW5mb3MKKyAgICAgICAg
cmV0dXJuIHRlc3QuaGFzX2tleSgiZGlzYWJsZWQiKQorCisgICAgZGVmIG9ycGhhbl9zdWJ0ZXN0
cyhzZWxmLCBleHBlY3RlZCk6CisgICAgICAgICMgUmV0dXJuIHN1YnRlc3Qgbm9kZXMgcHJlc2Vu
dCBpbiB0aGUgZXhwZWN0ZWQgZmlsZSwgYnV0IG1pc3NpbmcgZnJvbSB0aGUgZGF0YQorICAgICAg
ICBydiA9IFtdCisKKyAgICAgICAgZm9yIHRlc3RfaWQsIHN1YnRlc3RzIGluIHNlbGYuZGF0YS5p
dGVyaXRlbXMoKToKKyAgICAgICAgICAgIHRlc3QgPSBleHBlY3RlZC5nZXRfdGVzdCh0ZXN0X2lk
LmRlY29kZSgidXRmOCIpKQorICAgICAgICAgICAgaWYgbm90IHRlc3Q6CisgICAgICAgICAgICAg
ICAgY29udGludWUKKyAgICAgICAgICAgIHNlZW5fc3VidGVzdHMgPSBzZXQoaXRlbS5kZWNvZGUo
InV0ZjgiKSBmb3IgaXRlbSBpbiBzdWJ0ZXN0cy5pdGVya2V5cygpIGlmIGl0ZW0gaXMgbm90IE5v
bmUpCisgICAgICAgICAgICBtaXNzaW5nX3N1YnRlc3RzID0gc2V0KHRlc3Quc3VidGVzdHMua2V5
cygpKSAtIHNlZW5fc3VidGVzdHMKKyAgICAgICAgICAgIGZvciBpdGVtIGluIG1pc3Npbmdfc3Vi
dGVzdHM6CisgICAgICAgICAgICAgICAgZXhwZWN0ZWRfc3VidGVzdCA9IHRlc3QuZ2V0X3N1YnRl
c3QoaXRlbSkKKyAgICAgICAgICAgICAgICBpZiBub3Qgc2VsZi5pc19kaXNhYmxlZChleHBlY3Rl
ZF9zdWJ0ZXN0KToKKyAgICAgICAgICAgICAgICAgICAgcnYuYXBwZW5kKGV4cGVjdGVkX3N1YnRl
c3QpCisgICAgICAgICAgICBmb3IgbmFtZSBpbiBzZWVuX3N1YnRlc3RzOgorICAgICAgICAgICAg
ICAgIHN1YnRlc3QgPSB0ZXN0LmdldF9zdWJ0ZXN0KG5hbWUpCisgICAgICAgICAgICAgICAgIyBJ
ZiBhbnkgb2YgdGhlIGl0ZW1zIGhhdmUgY2hpbGRyZW4gKGllIHN1YnN1YnRlc3RzKSB3ZSB3YW50
IHRvIHBydW5lIHRoZXMKKyAgICAgICAgICAgICAgICBpZiBzdWJ0ZXN0LmNoaWxkcmVuOgorICAg
ICAgICAgICAgICAgICAgICBydi5leHRlbmQoc3VidGVzdC5jaGlsZHJlbikKKworICAgICAgICBy
ZXR1cm4gcnYKKworICAgIGRlZiB1cGRhdGUoc2VsZiwgZGVmYXVsdF9leHBlY3RlZF9ieV90eXBl
LCB1cGRhdGVfcHJvcGVydGllcywKKyAgICAgICAgICAgICAgIGZ1bGxfdXBkYXRlPUZhbHNlLCBk
aXNhYmxlX2ludGVybWl0dGVudD1Ob25lLCB1cGRhdGVfaW50ZXJtaXR0ZW50PUZhbHNlLAorICAg
ICAgICAgICAgICAgcmVtb3ZlX2ludGVybWl0dGVudD1GYWxzZSk6CisgICAgICAgICMgSWYgd2Ug
YXJlIGRvaW5nIGEgZnVsbCB1cGRhdGUsIHdlIG1heSBuZWVkIHRvIHBydW5lIG1pc3Npbmcgbm9k
ZXMKKyAgICAgICAgIyBldmVuIGlmIHRoZSBleHBlY3RhdGlvbnMgZGlkbid0IGNoYW5nZQorICAg
ICAgICBpZiBub3Qgc2VsZi5yZXF1aXJlc191cGRhdGUgYW5kIG5vdCBmdWxsX3VwZGF0ZToKICAg
ICAgICAgICAgIHJldHVybgogCi0gICAgICAgIGV4cGVjdGVkID0gc2VsZi5leHBlY3RlZChwcm9w
ZXJ0eV9vcmRlciwgYm9vbGVhbl9wcm9wZXJ0aWVzKQorICAgICAgICBleHBlY3RlZCA9IHNlbGYu
ZXhwZWN0ZWQodXBkYXRlX3Byb3BlcnRpZXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICB1cGRhdGVfaW50ZXJtaXR0ZW50PXVwZGF0ZV9pbnRlcm1pdHRlbnQsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICByZW1vdmVfaW50ZXJtaXR0ZW50PXJlbW92ZV9pbnRlcm1p
dHRlbnQpCisKKyAgICAgICAgaWYgZnVsbF91cGRhdGU6CisgICAgICAgICAgICBvcnBoYW5zID0g
c2VsZi5vcnBoYW5fc3VidGVzdHMoZXhwZWN0ZWQpCisKKyAgICAgICAgICAgIGlmIG5vdCBzZWxm
LnJlcXVpcmVzX3VwZGF0ZSBhbmQgbm90IG9ycGhhbnM6CisgICAgICAgICAgICAgICAgcmV0dXJu
CisKKyAgICAgICAgICAgIGlmIG9ycGhhbnM6CisgICAgICAgICAgICAgICAgZXhwZWN0ZWQubW9k
aWZpZWQgPSBUcnVlCisgICAgICAgICAgICAgICAgZm9yIGl0ZW0gaW4gb3JwaGFuczoKKyAgICAg
ICAgICAgICAgICAgICAgaXRlbS5yZW1vdmUoKQorCiAgICAgICAgIGV4cGVjdGVkX2J5X3Rlc3Qg
PSB7fQogCiAgICAgICAgIGZvciB0ZXN0X2lkIGluIHNlbGYudGVzdHM6CkBAIC01NDIsNjcgKzcw
Myw2OSBAQCBjbGFzcyBUZXN0RmlsZURhdGEob2JqZWN0KToKICAgICAgICAgICAgICAgICBleHBl
Y3RlZC5hcHBlbmQobWFuaWZlc3R1cGRhdGUuVGVzdE5vZGUuY3JlYXRlKHRlc3RfaWQpKQogICAg
ICAgICAgICAgdGVzdF9leHBlY3RlZCA9IGV4cGVjdGVkLmdldF90ZXN0KHRlc3RfaWQpCiAgICAg
ICAgICAgICBleHBlY3RlZF9ieV90ZXN0W3Rlc3RfaWRdID0gdGVzdF9leHBlY3RlZAotICAgICAg
ICAgICAgZm9yIHByb3AgaW4gc2VsZi5jbGVhcjoKLSAgICAgICAgICAgICAgICB0ZXN0X2V4cGVj
dGVkLmNsZWFyKHByb3ApCiAKICAgICAgICAgZm9yIHRlc3RfaWQsIHRlc3RfZGF0YSBpbiBzZWxm
LmRhdGEuaXRlcml0ZW1zKCk6CisgICAgICAgICAgICB0ZXN0X2lkID0gdGVzdF9pZC5kZWNvZGUo
InV0ZjgiKQogICAgICAgICAgICAgZm9yIHN1YnRlc3RfaWQsIHJlc3VsdHNfbGlzdCBpbiB0ZXN0
X2RhdGEuaXRlcml0ZW1zKCk6CiAgICAgICAgICAgICAgICAgZm9yIHByb3AsIHJ1bl9pbmZvLCB2
YWx1ZSBpbiByZXN1bHRzX2xpc3Q6CiAgICAgICAgICAgICAgICAgICAgICMgU3BlY2lhbCBjYXNl
IGRpcmVjdG9yeSBtZXRhZGF0YQogICAgICAgICAgICAgICAgICAgICBpZiBzdWJ0ZXN0X2lkIGlz
IE5vbmUgYW5kIHRlc3RfaWQuZW5kc3dpdGgoIl9fZGlyX18iKToKICAgICAgICAgICAgICAgICAg
ICAgICAgIGlmIHByb3AgPT0gImxzYW4iOgogICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4
cGVjdGVkLnNldF9sc2FuKHJ1bl9pbmZvLCB2YWx1ZSkKKyAgICAgICAgICAgICAgICAgICAgICAg
IGVsaWYgcHJvcCA9PSAibGVhay1vYmplY3QiOgorICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGV4cGVjdGVkLnNldF9sZWFrX29iamVjdChydW5faW5mbywgdmFsdWUpCisgICAgICAgICAgICAg
ICAgICAgICAgICBlbGlmIHByb3AgPT0gImxlYWstdGhyZXNob2xkIjoKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBleHBlY3RlZC5zZXRfbGVha190aHJlc2hvbGQocnVuX2luZm8sIHZhbHVl
KQogICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWUKIAotICAgICAgICAgICAgICAgICAg
ICBpZiBwcm9wID09ICJzdGF0dXMiOgotICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSBS
ZXN1bHQodmFsdWUsIGRlZmF1bHRfZXhwZWN0ZWRfYnlfdHlwZVtzZWxmLml0ZW1fdHlwZSwKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgc3VidGVzdF9pZCBpcyBub3QgTm9uZV0pCi0KICAgICAgICAgICAgICAgICAg
ICAgdGVzdF9leHBlY3RlZCA9IGV4cGVjdGVkX2J5X3Rlc3RbdGVzdF9pZF0KICAgICAgICAgICAg
ICAgICAgICAgaWYgc3VidGVzdF9pZCBpcyBOb25lOgogICAgICAgICAgICAgICAgICAgICAgICAg
aXRlbV9leHBlY3RlZCA9IHRlc3RfZXhwZWN0ZWQKICAgICAgICAgICAgICAgICAgICAgZWxzZToK
KyAgICAgICAgICAgICAgICAgICAgICAgIGlmIGlzaW5zdGFuY2Uoc3VidGVzdF9pZCwgc3RyKToK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdWJ0ZXN0X2lkID0gc3VidGVzdF9pZC5kZWNv
ZGUoInV0ZjgiKQogICAgICAgICAgICAgICAgICAgICAgICAgaXRlbV9leHBlY3RlZCA9IHRlc3Rf
ZXhwZWN0ZWQuZ2V0X3N1YnRlc3Qoc3VidGVzdF9pZCkKKwogICAgICAgICAgICAgICAgICAgICBp
ZiBwcm9wID09ICJzdGF0dXMiOgorICAgICAgICAgICAgICAgICAgICAgICAgc3RhdHVzLCBrbm93
bl9pbnRlcm1pdHRlbnQgPSB1bnBhY2tfcmVzdWx0KHZhbHVlKQorICAgICAgICAgICAgICAgICAg
ICAgICAgdmFsdWUgPSBSZXN1bHQoc3RhdHVzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAga25vd25faW50ZXJtaXR0ZW50LAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgZGVmYXVsdF9leHBlY3RlZF9ieV90eXBlW3NlbGYuaXRlbV90eXBlLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHN1YnRlc3RfaWQgaXMgbm90IE5vbmVdKQogICAgICAgICAgICAgICAgICAgICAgICAg
aXRlbV9leHBlY3RlZC5zZXRfcmVzdWx0KHJ1bl9pbmZvLCB2YWx1ZSkKICAgICAgICAgICAgICAg
ICAgICAgZWxpZiBwcm9wID09ICJhc3NlcnRzIjoKICAgICAgICAgICAgICAgICAgICAgICAgIGl0
ZW1fZXhwZWN0ZWQuc2V0X2Fzc2VydHMocnVuX2luZm8sIHZhbHVlKQogCi0gICAgICAgIGV4cGVj
dGVkLmNvYWxlc2NlX3Byb3BlcnRpZXMoc3RhYmlsaXR5PXN0YWJpbGl0eSkKKyAgICAgICAgZXhw
ZWN0ZWQudXBkYXRlKGZ1bGxfdXBkYXRlPWZ1bGxfdXBkYXRlLAorICAgICAgICAgICAgICAgICAg
ICAgICAgZGlzYWJsZV9pbnRlcm1pdHRlbnQ9ZGlzYWJsZV9pbnRlcm1pdHRlbnQpCiAgICAgICAg
IGZvciB0ZXN0IGluIGV4cGVjdGVkLml0ZXJjaGlsZHJlbigpOgogICAgICAgICAgICAgZm9yIHN1
YnRlc3QgaW4gdGVzdC5pdGVyY2hpbGRyZW4oKToKLSAgICAgICAgICAgICAgICBzdWJ0ZXN0LmNv
YWxlc2NlX3Byb3BlcnRpZXMoc3RhYmlsaXR5PXN0YWJpbGl0eSkKLSAgICAgICAgICAgIHRlc3Qu
Y29hbGVzY2VfcHJvcGVydGllcyhzdGFiaWxpdHk9c3RhYmlsaXR5KQorICAgICAgICAgICAgICAg
IHN1YnRlc3QudXBkYXRlKGZ1bGxfdXBkYXRlPWZ1bGxfdXBkYXRlLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGRpc2FibGVfaW50ZXJtaXR0ZW50PWRpc2FibGVfaW50ZXJtaXR0ZW50
KQorICAgICAgICAgICAgdGVzdC51cGRhdGUoZnVsbF91cGRhdGU9ZnVsbF91cGRhdGUsCisgICAg
ICAgICAgICAgICAgICAgICAgICBkaXNhYmxlX2ludGVybWl0dGVudD1kaXNhYmxlX2ludGVybWl0
dGVudCkKIAogICAgICAgICByZXR1cm4gZXhwZWN0ZWQKIAogCi1SZXN1bHQgPSBuYW1lZHR1cGxl
KCJSZXN1bHQiLCBbInN0YXR1cyIsICJkZWZhdWx0X2V4cGVjdGVkIl0pCitSZXN1bHQgPSBuYW1l
ZHR1cGxlKCJSZXN1bHQiLCBbInN0YXR1cyIsICJrbm93bl9pbnRlcm1pdHRlbnQiLCAiZGVmYXVs
dF9leHBlY3RlZCJdKQogCiAKLWRlZiBjcmVhdGVfZXhwZWN0ZWQodXJsX2Jhc2UsIHRlc3RfcGF0
aCwgcHJvcGVydHlfb3JkZXI9Tm9uZSwKLSAgICAgICAgICAgICAgICAgICAgYm9vbGVhbl9wcm9w
ZXJ0aWVzPU5vbmUpOgorZGVmIGNyZWF0ZV9leHBlY3RlZCh1cmxfYmFzZSwgdGVzdF9wYXRoLCBy
dW5faW5mb19wcm9wZXJ0aWVzLCB1cGRhdGVfaW50ZXJtaXR0ZW50LCByZW1vdmVfaW50ZXJtaXR0
ZW50KToKICAgICBleHBlY3RlZCA9IG1hbmlmZXN0dXBkYXRlLkV4cGVjdGVkTWFuaWZlc3QoTm9u
ZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGVzdF9w
YXRoLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1cmxf
YmFzZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJv
cGVydHlfb3JkZXI9cHJvcGVydHlfb3JkZXIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGJvb2xlYW5fcHJvcGVydGllcz1ib29sZWFuX3Byb3BlcnRpZXMp
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJ1bl9pbmZv
X3Byb3BlcnRpZXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHVwZGF0ZV9pbnRlcm1pdHRlbnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHJlbW92ZV9pbnRlcm1pdHRlbnQpCiAgICAgcmV0dXJuIGV4cGVjdGVk
CiAKIAotZGVmIGxvYWRfZXhwZWN0ZWQodXJsX2Jhc2UsIG1ldGFkYXRhX3BhdGgsIHRlc3RfcGF0
aCwgdGVzdHMsIHByb3BlcnR5X29yZGVyPU5vbmUsCi0gICAgICAgICAgICAgICAgICBib29sZWFu
X3Byb3BlcnRpZXM9Tm9uZSk6CitkZWYgbG9hZF9leHBlY3RlZCh1cmxfYmFzZSwgbWV0YWRhdGFf
cGF0aCwgdGVzdF9wYXRoLCB0ZXN0cywgcnVuX2luZm9fcHJvcGVydGllcywgdXBkYXRlX2ludGVy
bWl0dGVudCwgcmVtb3ZlX2ludGVybWl0dGVudCk6CiAgICAgZXhwZWN0ZWRfbWFuaWZlc3QgPSBt
YW5pZmVzdHVwZGF0ZS5nZXRfbWFuaWZlc3QobWV0YWRhdGFfcGF0aCwKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0X3BhdGgsCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXJsX2Jhc2UsCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvcGVy
dHlfb3JkZXI9cHJvcGVydHlfb3JkZXIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgYm9vbGVhbl9wcm9wZXJ0aWVzPWJvb2xlYW5fcHJvcGVydGll
cykKLSAgICBpZiBleHBlY3RlZF9tYW5pZmVzdCBpcyBOb25lOgotICAgICAgICByZXR1cm4KLQot
ICAgICMgUmVtb3ZlIGV4cGVjdGVkIGRhdGEgZm9yIHRlc3RzIHRoYXQgbm8gbG9uZ2VyIGV4aXN0
Ci0gICAgZm9yIHRlc3QgaW4gZXhwZWN0ZWRfbWFuaWZlc3QuaXRlcmNoaWxkcmVuKCk6Ci0gICAg
ICAgIGlmIHRlc3QuaWQgbm90IGluIHRlc3RzOgotICAgICAgICAgICAgdGVzdC5yZW1vdmUoKQot
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcnVu
X2luZm9fcHJvcGVydGllcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICB1cGRhdGVfaW50ZXJtaXR0ZW50LAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlbW92ZV9pbnRlcm1pdHRlbnQpCiAgICAg
cmV0dXJuIGV4cGVjdGVkX21hbmlmZXN0CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvcHJvZHVj
dHMucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3dwdHJ1bm5lci93cHRydW5uZXIvcHJvZHVjdHMucHkKaW5kZXggMGMxZjg2ZmYwNmFlZTczOWFi
MmY2Y2EzZjFhM2QyZDA4NjhlOTY3Mi4uZTMxMTcwNDI3MDlmOTlmNGUwNDQzZGMwZGZhZjU2MWFk
MGI1NDhiMCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3Byb2R1Y3RzLnB5CisrKyBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dw
dHJ1bm5lci9wcm9kdWN0cy5weQpAQCAtMyw2ICszLDcgQEAgaW1wb3J0IGltcAogCiBmcm9tIC5i
cm93c2VycyBpbXBvcnQgcHJvZHVjdF9saXN0CiAKKwogZGVmIHByb2R1Y3RzX2VuYWJsZWQoY29u
ZmlnKToKICAgICBuYW1lcyA9IGNvbmZpZy5nZXQoInByb2R1Y3RzIiwge30pLmtleXMoKQogICAg
IGlmIG5vdCBuYW1lczoKQEAgLTEwLDYgKzExLDcgQEAgZGVmIHByb2R1Y3RzX2VuYWJsZWQoY29u
ZmlnKToKICAgICBlbHNlOgogICAgICAgICByZXR1cm4gbmFtZXMKIAorCiBkZWYgcHJvZHVjdF9t
b2R1bGUoY29uZmlnLCBwcm9kdWN0KToKICAgICBpZiBwcm9kdWN0IG5vdCBpbiBwcm9kdWN0c19l
bmFibGVkKGNvbmZpZyk6CiAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoIlVua25vd24gcHJvZHVj
dCAlcyIgJSBwcm9kdWN0KQpAQCAtMjYsMjggKzI4LDM5IEBAIGRlZiBwcm9kdWN0X21vZHVsZShj
b25maWcsIHByb2R1Y3QpOgogICAgIHJldHVybiBtb2R1bGUKIAogCi1kZWYgbG9hZF9wcm9kdWN0
KGNvbmZpZywgcHJvZHVjdCk6Ci0gICAgbW9kdWxlID0gcHJvZHVjdF9tb2R1bGUoY29uZmlnLCBw
cm9kdWN0KQotICAgIGRhdGEgPSBtb2R1bGUuX193cHRydW5uZXJfXwotCi0gICAgY2hlY2tfYXJn
cyA9IGdldGF0dHIobW9kdWxlLCBkYXRhWyJjaGVja19hcmdzIl0pCi0gICAgYnJvd3Nlcl9jbHMg
PSBnZXRhdHRyKG1vZHVsZSwgZGF0YVsiYnJvd3NlciJdKQotICAgIGJyb3dzZXJfa3dhcmdzID0g
Z2V0YXR0cihtb2R1bGUsIGRhdGFbImJyb3dzZXJfa3dhcmdzIl0pCi0gICAgZXhlY3V0b3Jfa3dh
cmdzID0gZ2V0YXR0cihtb2R1bGUsIGRhdGFbImV4ZWN1dG9yX2t3YXJncyJdKQotICAgIGVudl9v
cHRpb25zID0gZ2V0YXR0cihtb2R1bGUsIGRhdGFbImVudl9vcHRpb25zIl0pKCkKLSAgICBlbnZf
ZXh0cmFzID0gZ2V0YXR0cihtb2R1bGUsIGRhdGFbImVudl9leHRyYXMiXSkKLSAgICBydW5faW5m
b19leHRyYXMgPSAoZ2V0YXR0cihtb2R1bGUsIGRhdGFbInJ1bl9pbmZvX2V4dHJhcyJdKQotICAg
ICAgICAgICAgICAgICAgICAgICBpZiAicnVuX2luZm9fZXh0cmFzIiBpbiBkYXRhIGVsc2UgbGFt
YmRhICoqa3dhcmdzOnt9KQotCi0gICAgZXhlY3V0b3JfY2xhc3NlcyA9IHt9Ci0gICAgZm9yIHRl
c3RfdHlwZSwgY2xzX25hbWUgaW4gZGF0YVsiZXhlY3V0b3IiXS5pdGVyaXRlbXMoKToKLSAgICAg
ICAgY2xzID0gZ2V0YXR0cihtb2R1bGUsIGNsc19uYW1lKQotICAgICAgICBleGVjdXRvcl9jbGFz
c2VzW3Rlc3RfdHlwZV0gPSBjbHMKLQotICAgIHJldHVybiAoY2hlY2tfYXJncywKLSAgICAgICAg
ICAgIGJyb3dzZXJfY2xzLCBicm93c2VyX2t3YXJncywKLSAgICAgICAgICAgIGV4ZWN1dG9yX2Ns
YXNzZXMsIGV4ZWN1dG9yX2t3YXJncywKLSAgICAgICAgICAgIGVudl9vcHRpb25zLCBlbnZfZXh0
cmFzLCBydW5faW5mb19leHRyYXMpCitjbGFzcyBQcm9kdWN0KG9iamVjdCk6CisgICAgZGVmIF9f
aW5pdF9fKHNlbGYsIGNvbmZpZywgcHJvZHVjdCk6CisgICAgICAgIG1vZHVsZSA9IHByb2R1Y3Rf
bW9kdWxlKGNvbmZpZywgcHJvZHVjdCkKKyAgICAgICAgZGF0YSA9IG1vZHVsZS5fX3dwdHJ1bm5l
cl9fCisgICAgICAgIHNlbGYubmFtZSA9IHByb2R1Y3QKKyAgICAgICAgc2VsZi5jaGVja19hcmdz
ID0gZ2V0YXR0cihtb2R1bGUsIGRhdGFbImNoZWNrX2FyZ3MiXSkKKyAgICAgICAgc2VsZi5icm93
c2VyX2NscyA9IGdldGF0dHIobW9kdWxlLCBkYXRhWyJicm93c2VyIl0pCisgICAgICAgIHNlbGYu
Z2V0X2Jyb3dzZXJfa3dhcmdzID0gZ2V0YXR0cihtb2R1bGUsIGRhdGFbImJyb3dzZXJfa3dhcmdz
Il0pCisgICAgICAgIHNlbGYuZ2V0X2V4ZWN1dG9yX2t3YXJncyA9IGdldGF0dHIobW9kdWxlLCBk
YXRhWyJleGVjdXRvcl9rd2FyZ3MiXSkKKyAgICAgICAgc2VsZi5lbnZfb3B0aW9ucyA9IGdldGF0
dHIobW9kdWxlLCBkYXRhWyJlbnZfb3B0aW9ucyJdKSgpCisgICAgICAgIHNlbGYuZ2V0X2Vudl9l
eHRyYXMgPSBnZXRhdHRyKG1vZHVsZSwgZGF0YVsiZW52X2V4dHJhcyJdKQorICAgICAgICBzZWxm
LnJ1bl9pbmZvX2V4dHJhcyA9IChnZXRhdHRyKG1vZHVsZSwgZGF0YVsicnVuX2luZm9fZXh0cmFz
Il0pCisgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAicnVuX2luZm9fZXh0cmFzIiBpbiBk
YXRhIGVsc2UgbGFtYmRhICoqa3dhcmdzOnt9KQorICAgICAgICBzZWxmLmdldF90aW1lb3V0X211
bHRpcGxpZXIgPSBnZXRhdHRyKG1vZHVsZSwgZGF0YVsidGltZW91dF9tdWx0aXBsaWVyIl0pCisK
KyAgICAgICAgc2VsZi5leGVjdXRvcl9jbGFzc2VzID0ge30KKyAgICAgICAgZm9yIHRlc3RfdHlw
ZSwgY2xzX25hbWUgaW4gZGF0YVsiZXhlY3V0b3IiXS5pdGVyaXRlbXMoKToKKyAgICAgICAgICAg
IGNscyA9IGdldGF0dHIobW9kdWxlLCBjbHNfbmFtZSkKKyAgICAgICAgICAgIHNlbGYuZXhlY3V0
b3JfY2xhc3Nlc1t0ZXN0X3R5cGVdID0gY2xzCisKKworZGVmIGxvYWRfcHJvZHVjdChjb25maWcs
IHByb2R1Y3QsIGxvYWRfY2xzPUZhbHNlKToKKyAgICBydiA9IFByb2R1Y3QoY29uZmlnLCBwcm9k
dWN0KQorICAgIGlmIG5vdCBsb2FkX2NsczoKKyAgICAgICAgcmV0dXJuIChydi5jaGVja19hcmdz
LAorICAgICAgICAgICAgICAgIHJ2LmJyb3dzZXJfY2xzLAorICAgICAgICAgICAgICAgIHJ2Lmdl
dF9icm93c2VyX2t3YXJncywKKyAgICAgICAgICAgICAgICBydi5leGVjdXRvcl9jbGFzc2VzLAor
ICAgICAgICAgICAgICAgIHJ2LmdldF9leGVjdXRvcl9rd2FyZ3MsCisgICAgICAgICAgICAgICAg
cnYuZW52X29wdGlvbnMsCisgICAgICAgICAgICAgICAgcnYuZ2V0X2Vudl9leHRyYXMsCisgICAg
ICAgICAgICAgICAgcnYucnVuX2luZm9fZXh0cmFzKQorICAgIHJldHVybiBydgogCiAKIGRlZiBs
b2FkX3Byb2R1Y3RfdXBkYXRlKGNvbmZpZywgcHJvZHVjdCk6CkBAIC02MCw2ICs3Myw2IEBAIGRl
ZiBsb2FkX3Byb2R1Y3RfdXBkYXRlKGNvbmZpZywgcHJvZHVjdCk6CiAgICAgZGF0YSA9IG1vZHVs
ZS5fX3dwdHJ1bm5lcl9fCiAKICAgICB1cGRhdGVfcHJvcGVydGllcyA9IChnZXRhdHRyKG1vZHVs
ZSwgZGF0YVsidXBkYXRlX3Byb3BlcnRpZXMiXSkoKQotICAgICAgICAgICAgICAgICAgICAgICAg
IGlmICJ1cGRhdGVfcHJvcGVydGllcyIgaW4gZGF0YSBlbHNlIChOb25lLCBOb25lKSkKKyAgICAg
ICAgICAgICAgICAgICAgICAgICBpZiAidXBkYXRlX3Byb3BlcnRpZXMiIGluIGRhdGEgZWxzZSB7
fSkKIAogICAgIHJldHVybiB1cGRhdGVfcHJvcGVydGllcwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVu
bmVyL3N0YWJpbGl0eS5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9zdGFiaWxpdHkucHkKaW5kZXggODU5ZjAx
NDQ0ZDM0YWNkZWRiY2MzMzlkODc4MzEyMmE3ZjVhZDlkMi4uYzA2ZjdlNWU5ZDZiMTBiNGU2MTlj
OTVhNjI0MTdlNTJhNTk2YmU1MyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3N0YWJpbGl0eS5w
eQorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3dwdHJ1bm5lci93cHRydW5uZXIvc3RhYmlsaXR5LnB5CkBAIC0xNSw2ICsxNSwxMSBAQCBsb2Nh
bHBhdGhzID0gaW1wLmxvYWRfc291cmNlKCJsb2NhbHBhdGhzIiwgb3MucGF0aC5hYnNwYXRoKG9z
LnBhdGguam9pbihoZXJlLCBvcwogZnJvbSB3cHQubWFya2Rvd24gaW1wb3J0IG1hcmtkb3duX2Fk
anVzdCwgdGFibGUKIAogCisjIElmIGEgdGVzdCB0YWtlcyBtb3JlIHRoYW4gKEZMQUtZX1RIUkVT
SE9MRCp0aW1lb3V0KSBhbmQgZG9lcyBub3QgY29uc2lzdGVudGx5CisjIHRpbWUgb3V0LCBpdCBp
cyBjb25zaWRlcmVkIHNsb3cgKHBvdGVudGlhbGx5IGZsYWt5KS4KK0ZMQUtZX1RIUkVTSE9MRCA9
IDAuOAorCisKIGNsYXNzIExvZ0FjdGlvbkZpbHRlcihCYXNlSGFuZGxlcik6CiAKICAgICAiIiJI
YW5kbGVyIHRoYXQgZmlsdGVycyBvdXQgbWVzc2FnZXMgbm90IG9mIGEgZ2l2ZW4gc2V0IG9mIGFj
dGlvbnMuCkBAIC01Myw3ICs1OCw4IEBAIGNsYXNzIExvZ0hhbmRsZXIocmVhZGVyLkxvZ0hhbmRs
ZXIpOgogCiAgICAgICAgIHRlc3QgPSB7CiAgICAgICAgICAgICAic3VidGVzdHMiOiBPcmRlcmVk
RGljdCgpLAotICAgICAgICAgICAgInN0YXR1cyI6IGRlZmF1bHRkaWN0KGludCkKKyAgICAgICAg
ICAgICJzdGF0dXMiOiBkZWZhdWx0ZGljdChpbnQpLAorICAgICAgICAgICAgImxvbmdlc3RfZHVy
YXRpb24iOiBkZWZhdWx0ZGljdChmbG9hdCksCiAgICAgICAgIH0KICAgICAgICAgc2VsZi5yZXN1
bHRzW3Rlc3RfbmFtZV0gPSB0ZXN0CiAgICAgICAgIHJldHVybiB0ZXN0CkBAIC03Myw2ICs3OSwx
MCBAQCBjbGFzcyBMb2dIYW5kbGVyKHJlYWRlci5Mb2dIYW5kbGVyKToKIAogICAgICAgICByZXR1
cm4gc3VidGVzdAogCisgICAgZGVmIHRlc3Rfc3RhcnQoc2VsZiwgZGF0YSk6CisgICAgICAgIHRl
c3QgPSBzZWxmLmZpbmRfb3JfY3JlYXRlX3Rlc3QoZGF0YSkKKyAgICAgICAgdGVzdFsic3RhcnRf
dGltZSJdID0gZGF0YVsidGltZSJdCisKICAgICBkZWYgdGVzdF9zdGF0dXMoc2VsZiwgZGF0YSk6
CiAgICAgICAgIHN1YnRlc3QgPSBzZWxmLmZpbmRfb3JfY3JlYXRlX3N1YnRlc3QoZGF0YSkKICAg
ICAgICAgc3VidGVzdFsic3RhdHVzIl1bZGF0YVsic3RhdHVzIl1dICs9IDEKQEAgLTgyLDYgKzky
LDE2IEBAIGNsYXNzIExvZ0hhbmRsZXIocmVhZGVyLkxvZ0hhbmRsZXIpOgogICAgIGRlZiB0ZXN0
X2VuZChzZWxmLCBkYXRhKToKICAgICAgICAgdGVzdCA9IHNlbGYuZmluZF9vcl9jcmVhdGVfdGVz
dChkYXRhKQogICAgICAgICB0ZXN0WyJzdGF0dXMiXVtkYXRhWyJzdGF0dXMiXV0gKz0gMQorICAg
ICAgICAjIFRpbWVzdGFtcHMgYXJlIGluIG1zIHNpbmNlIGVwb2NoLgorICAgICAgICBkdXJhdGlv
biA9IGRhdGFbInRpbWUiXSAtIHRlc3QucG9wKCJzdGFydF90aW1lIikKKyAgICAgICAgdGVzdFsi
bG9uZ2VzdF9kdXJhdGlvbiJdW2RhdGFbInN0YXR1cyJdXSA9IG1heCgKKyAgICAgICAgICAgIGR1
cmF0aW9uLCB0ZXN0WyJsb25nZXN0X2R1cmF0aW9uIl1bZGF0YVsic3RhdHVzIl1dKQorICAgICAg
ICB0cnk6CisgICAgICAgICAgICAjIHRlc3RfdGltZW91dCBpcyBpbiBzZWNvbmRzOyBjb252ZXJ0
IGl0IHRvIG1zLgorICAgICAgICAgICAgdGVzdFsidGltZW91dCJdID0gZGF0YVsiZXh0cmEiXVsi
dGVzdF90aW1lb3V0Il0gKiAxMDAwCisgICAgICAgIGV4Y2VwdCBLZXlFcnJvcjoKKyAgICAgICAg
ICAgICMgSWYgYSB0ZXN0IGlzIHNraXBwZWQsIGl0IHdvbid0IGhhdmUgZXh0cmEgaW5mby4KKyAg
ICAgICAgICAgIHBhc3MKIAogCiBkZWYgaXNfaW5jb25zaXN0ZW50KHJlc3VsdHNfZGljdCwgaXRl
cmF0aW9ucyk6CkBAIC05MSw5ICsxMTEsMzIgQEAgZGVmIGlzX2luY29uc2lzdGVudChyZXN1bHRz
X2RpY3QsIGl0ZXJhdGlvbnMpOgogICAgIHJldHVybiBsZW4ocmVzdWx0c19kaWN0KSA+IDEgb3Ig
c3VtKHJlc3VsdHNfZGljdC52YWx1ZXMoKSkgIT0gaXRlcmF0aW9ucwogCiAKK2RlZiBmaW5kX3Ns
b3dfc3RhdHVzKHRlc3QpOgorICAgICIiIkNoZWNrIGlmIGEgc2luZ2xlIHRlc3QgYWxtb3N0IHRp
bWVzIG91dC4KKworICAgIFdlIGFyZSBpbnRlcmVzdGVkIGluIHRlc3RzIHRoYXQgYWxtb3N0IHRp
bWUgb3V0IChpLmUuIGxpa2VseSB0byBiZSBmbGFreSkuCisgICAgVGhlcmVmb3JlLCB0aW1lb3V0
IHN0YXR1c2VzIGFyZSBpZ25vcmVkLCBpbmNsdWRpbmcgKEVYVEVSTkFMLSlUSU1FT1VULgorICAg
IENSQVNIICYgRVJST1IgYXJlIGFsc28gaWdub3JlZCBiZWNhdXNlIHRoZSB0aGV5IG92ZXJyaWRl
IFRJTUVPVVQ7IGEgdGVzdAorICAgIHRoYXQgYm90aCBjcmFzaGVzIGFuZCB0aW1lcyBvdXQgaXMg
bWFya2VkIGFzIENSQVNILCBzbyBpdCB3b24ndCBiZSBmbGFreS4KKworICAgIFJldHVybnM6Cisg
ICAgICAgIEEgcmVzdWx0IHN0YXR1cyBwcm9kdWNlZCBieSBhIHJ1biB0aGF0IGFsbW9zdCB0aW1l
cyBvdXQ7IE5vbmUsIGlmIG5vCisgICAgICAgIHJ1bnMgYWxtb3N0IHRpbWUgb3V0LgorICAgICIi
IgorICAgIGlmICJ0aW1lb3V0IiBub3QgaW4gdGVzdDoKKyAgICAgICAgcmV0dXJuIE5vbmUKKyAg
ICB0aHJlc2hvbGQgPSB0ZXN0WyJ0aW1lb3V0Il0gKiBGTEFLWV9USFJFU0hPTEQKKyAgICBmb3Ig
c3RhdHVzIGluIFsnUEFTUycsICdGQUlMJywgJ09LJ106CisgICAgICAgIGlmIChzdGF0dXMgaW4g
dGVzdFsibG9uZ2VzdF9kdXJhdGlvbiJdIGFuZAorICAgICAgICAgICAgdGVzdFsibG9uZ2VzdF9k
dXJhdGlvbiJdW3N0YXR1c10gPiB0aHJlc2hvbGQpOgorICAgICAgICAgICAgcmV0dXJuIHN0YXR1
cworICAgIHJldHVybiBOb25lCisKKwogZGVmIHByb2Nlc3NfcmVzdWx0cyhsb2csIGl0ZXJhdGlv
bnMpOgogICAgICIiIlByb2Nlc3MgdGVzdCBsb2cgYW5kIHJldHVybiBvdmVyYWxsIHJlc3VsdHMg
YW5kIGxpc3Qgb2YgaW5jb25zaXN0ZW50IHRlc3RzLiIiIgogICAgIGluY29uc2lzdGVudCA9IFtd
CisgICAgc2xvdyA9IFtdCiAgICAgaGFuZGxlciA9IExvZ0hhbmRsZXIoKQogICAgIHJlYWRlci5o
YW5kbGVfbG9nKHJlYWRlci5yZWFkKGxvZyksIGhhbmRsZXIpCiAgICAgcmVzdWx0cyA9IGhhbmRs
ZXIucmVzdWx0cwpAQCAtMTAzLDE2ICsxNDYsMjkgQEAgZGVmIHByb2Nlc3NfcmVzdWx0cyhsb2cs
IGl0ZXJhdGlvbnMpOgogICAgICAgICBmb3Igc3VidGVzdF9uYW1lLCBzdWJ0ZXN0IGluIHRlc3Rb
InN1YnRlc3RzIl0uaXRlcml0ZW1zKCk6CiAgICAgICAgICAgICBpZiBpc19pbmNvbnNpc3RlbnQo
c3VidGVzdFsic3RhdHVzIl0sIGl0ZXJhdGlvbnMpOgogICAgICAgICAgICAgICAgIGluY29uc2lz
dGVudC5hcHBlbmQoKHRlc3RfbmFtZSwgc3VidGVzdF9uYW1lLCBzdWJ0ZXN0WyJzdGF0dXMiXSwg
c3VidGVzdFsibWVzc2FnZXMiXSkpCi0gICAgcmV0dXJuIHJlc3VsdHMsIGluY29uc2lzdGVudAor
CisgICAgICAgIHNsb3dfc3RhdHVzID0gZmluZF9zbG93X3N0YXR1cyh0ZXN0KQorICAgICAgICBp
ZiBzbG93X3N0YXR1cyBpcyBub3QgTm9uZToKKyAgICAgICAgICAgIHNsb3cuYXBwZW5kKCgKKyAg
ICAgICAgICAgICAgICB0ZXN0X25hbWUsCisgICAgICAgICAgICAgICAgc2xvd19zdGF0dXMsCisg
ICAgICAgICAgICAgICAgdGVzdFsibG9uZ2VzdF9kdXJhdGlvbiJdW3Nsb3dfc3RhdHVzXSwKKyAg
ICAgICAgICAgICAgICB0ZXN0WyJ0aW1lb3V0Il0KKyAgICAgICAgICAgICkpCisKKyAgICByZXR1
cm4gcmVzdWx0cywgaW5jb25zaXN0ZW50LCBzbG93CiAKIAogZGVmIGVycl9zdHJpbmcocmVzdWx0
c19kaWN0LCBpdGVyYXRpb25zKToKICAgICAiIiJDcmVhdGUgYW5kIHJldHVybiBzdHJpbmcgd2l0
aCBlcnJvcnMgZnJvbSB0ZXN0IHJ1bi4iIiIKICAgICBydiA9IFtdCiAgICAgdG90YWxfcmVzdWx0
cyA9IHN1bShyZXN1bHRzX2RpY3QudmFsdWVzKCkpCi0gICAgZm9yIGtleSwgdmFsdWUgaW4gc29y
dGVkKHJlc3VsdHNfZGljdC5pdGVtcygpKToKLSAgICAgICAgcnYuYXBwZW5kKCIlcyVzIiAlCi0g
ICAgICAgICAgICAgICAgICAoa2V5LCAiOiAlcy8lcyIgJSAodmFsdWUsIGl0ZXJhdGlvbnMpIGlm
IHZhbHVlICE9IGl0ZXJhdGlvbnMgZWxzZSAiIikpCisgICAgaWYgdG90YWxfcmVzdWx0cyA+IGl0
ZXJhdGlvbnM6CisgICAgICAgIHJ2LmFwcGVuZCgiRHVwbGljYXRlIHN1YnRlc3QgbmFtZSIpCisg
ICAgZWxzZToKKyAgICAgICAgZm9yIGtleSwgdmFsdWUgaW4gc29ydGVkKHJlc3VsdHNfZGljdC5p
dGVtcygpKToKKyAgICAgICAgICAgIHJ2LmFwcGVuZCgiJXMlcyIgJQorICAgICAgICAgICAgICAg
ICAgICAgIChrZXksICI6ICVzLyVzIiAlICh2YWx1ZSwgaXRlcmF0aW9ucykgaWYgdmFsdWUgIT0g
aXRlcmF0aW9ucyBlbHNlICIiKSkKICAgICBpZiB0b3RhbF9yZXN1bHRzIDwgaXRlcmF0aW9uczoK
ICAgICAgICAgcnYuYXBwZW5kKCJNSVNTSU5HOiAlcy8lcyIgJSAoaXRlcmF0aW9ucyAtIHRvdGFs
X3Jlc3VsdHMsIGl0ZXJhdGlvbnMpKQogICAgIHJ2ID0gIiwgIi5qb2luKHJ2KQpAQCAtMTMzLDYg
KzE4OSwxNyBAQCBkZWYgd3JpdGVfaW5jb25zaXN0ZW50KGxvZywgaW5jb25zaXN0ZW50LCBpdGVy
YXRpb25zKToKICAgICB0YWJsZShbIlRlc3QiLCAiU3VidGVzdCIsICJSZXN1bHRzIiwgIk1lc3Nh
Z2VzIl0sIHN0cmluZ3MsIGxvZykKIAogCitkZWYgd3JpdGVfc2xvd190ZXN0cyhsb2csIHNsb3cp
OgorICAgIGxvZygiIyMgU2xvdyB0ZXN0cyAjI1xuIikKKyAgICBzdHJpbmdzID0gWygKKyAgICAg
ICAgImAlc2AiICUgbWFya2Rvd25fYWRqdXN0KHRlc3QpLAorICAgICAgICAiYCVzYCIgJSBzdGF0
dXMsCisgICAgICAgICJgJS4wZmAiICUgZHVyYXRpb24sCisgICAgICAgICJgJS4wZmAiICUgdGlt
ZW91dCkKKyAgICAgICAgZm9yIHRlc3QsIHN0YXR1cywgZHVyYXRpb24sIHRpbWVvdXQgaW4gc2xv
d10KKyAgICB0YWJsZShbIlRlc3QiLCAiUmVzdWx0IiwgIkxvbmdlc3QgZHVyYXRpb24gKG1zKSIs
ICJUaW1lb3V0IChtcykiXSwgc3RyaW5ncywgbG9nKQorCisKIGRlZiB3cml0ZV9yZXN1bHRzKGxv
ZywgcmVzdWx0cywgaXRlcmF0aW9ucywgcHJfbnVtYmVyPU5vbmUsIHVzZV9kZXRhaWxzPUZhbHNl
KToKICAgICBsb2coIiMjIEFsbCByZXN1bHRzICMjXG4iKQogICAgIGlmIHVzZV9kZXRhaWxzOgpA
QCAtMjAyLDggKzI2OSw4IEBAIGRlZiBydW5fc3RlcChsb2dnZXIsIGl0ZXJhdGlvbnMsIHJlc3Rh
cnRfYWZ0ZXJfaXRlcmF0aW9uLCBrd2FyZ3NfZXh0cmFzLCAqKmt3YXJnCiAgICAgbG9nZ2VyLl9z
dGF0ZS5zdWl0ZV9zdGFydGVkID0gRmFsc2UKIAogICAgIGxvZy5zZWVrKDApCi0gICAgcmVzdWx0
cywgaW5jb25zaXN0ZW50ID0gcHJvY2Vzc19yZXN1bHRzKGxvZywgaXRlcmF0aW9ucykKLSAgICBy
ZXR1cm4gcmVzdWx0cywgaW5jb25zaXN0ZW50LCBpdGVyYXRpb25zCisgICAgcmVzdWx0cywgaW5j
b25zaXN0ZW50LCBzbG93ID0gcHJvY2Vzc19yZXN1bHRzKGxvZywgaXRlcmF0aW9ucykKKyAgICBy
ZXR1cm4gcmVzdWx0cywgaW5jb25zaXN0ZW50LCBzbG93LCBpdGVyYXRpb25zCiAKIAogZGVmIGdl
dF9zdGVwcyhsb2dnZXIsIHJlcGVhdF9sb29wLCByZXBlYXRfcmVzdGFydCwga3dhcmdzX2V4dHJh
cyk6CkBAIC0yNDIsNyArMzA5LDYgQEAgZGVmIHdyaXRlX3N1bW1hcnkobG9nZ2VyLCBzdGVwX3Jl
c3VsdHMsIGZpbmFsX3Jlc3VsdCk6CiAKICAgICBsb2dnZXIuaW5mbygnOjo6JykKIAotCiBkZWYg
Y2hlY2tfc3RhYmlsaXR5KGxvZ2dlciwgcmVwZWF0X2xvb3A9MTAsIHJlcGVhdF9yZXN0YXJ0PTUs
IGNoYW9zX21vZGU9VHJ1ZSwgbWF4X3RpbWU9Tm9uZSwKICAgICAgICAgICAgICAgICAgICAgb3V0
cHV0X3Jlc3VsdHM9VHJ1ZSwgKiprd2FyZ3MpOgogICAgIGt3YXJnc19leHRyYXMgPSBbe31dCkBA
IC0yNjQsNyArMzMwLDcgQEAgZGVmIGNoZWNrX3N0YWJpbGl0eShsb2dnZXIsIHJlcGVhdF9sb29w
PTEwLCByZXBlYXRfcmVzdGFydD01LCBjaGFvc19tb2RlPVRydWUsIG0KICAgICAgICAgbG9nZ2Vy
LmluZm8oJzo6OicpCiAgICAgICAgIGxvZ2dlci5pbmZvKCc6OjogUnVubmluZyB0ZXN0IHZlcmlm
aWNhdGlvbiBzdGVwICIlcyIuLi4nICUgZGVzYykKICAgICAgICAgbG9nZ2VyLmluZm8oJzo6Oicp
Ci0gICAgICAgIHJlc3VsdHMsIGluY29uc2lzdGVudCwgaXRlcmF0aW9ucyA9IHN0ZXBfZnVuYygq
Kmt3YXJncykKKyAgICAgICAgcmVzdWx0cywgaW5jb25zaXN0ZW50LCBzbG93LCBpdGVyYXRpb25z
ID0gc3RlcF9mdW5jKCoqa3dhcmdzKQogICAgICAgICBpZiBvdXRwdXRfcmVzdWx0czoKICAgICAg
ICAgICAgIHdyaXRlX3Jlc3VsdHMobG9nZ2VyLmluZm8sIHJlc3VsdHMsIGl0ZXJhdGlvbnMpCiAK
QEAgLTI3NCw2ICszNDAsMTIgQEAgZGVmIGNoZWNrX3N0YWJpbGl0eShsb2dnZXIsIHJlcGVhdF9s
b29wPTEwLCByZXBlYXRfcmVzdGFydD01LCBjaGFvc19tb2RlPVRydWUsIG0KICAgICAgICAgICAg
IHdyaXRlX3N1bW1hcnkobG9nZ2VyLCBzdGVwX3Jlc3VsdHMsICJGQUlMIikKICAgICAgICAgICAg
IHJldHVybiAxCiAKKyAgICAgICAgaWYgc2xvdzoKKyAgICAgICAgICAgIHN0ZXBfcmVzdWx0cy5h
cHBlbmQoKGRlc2MsICJGQUlMIikpCisgICAgICAgICAgICB3cml0ZV9zbG93X3Rlc3RzKGxvZ2dl
ci5pbmZvLCBzbG93KQorICAgICAgICAgICAgd3JpdGVfc3VtbWFyeShsb2dnZXIsIHN0ZXBfcmVz
dWx0cywgIkZBSUwiKQorICAgICAgICAgICAgcmV0dXJuIDEKKwogICAgICAgICBzdGVwX3Jlc3Vs
dHMuYXBwZW5kKChkZXNjLCAiUEFTUyIpKQogCiAgICAgd3JpdGVfc3VtbWFyeShsb2dnZXIsIHN0
ZXBfcmVzdWx0cywgIlBBU1MiKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3Rlc3Rkcml2ZXIt
ZXh0cmEuanMgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3dwdHJ1bm5lci93cHRydW5uZXIvdGVzdGRyaXZlci1leHRyYS5qcwppbmRleCBlZjk2MmQz
NWYyMmI5MTVhNzQzNjNjYTUzYjEwYjNhMDVmNjMwOTUyLi4yNzhmMjI2ZGJkMmNlZmMyODRlYmYz
NDdjMzIwODllYTFmYTVhMjJkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvdGVzdGRyaXZlci1l
eHRyYS5qcworKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvdGVzdGRyaXZlci1leHRyYS5qcwpAQCAtMyw2ICsz
LDcgQEAKIChmdW5jdGlvbigpewogICAgIGxldCBwZW5kaW5nX3Jlc29sdmUgPSBudWxsOwogICAg
IGxldCBwZW5kaW5nX3JlamVjdCA9IG51bGw7CisgICAgbGV0IHJlc3VsdCA9IG51bGw7CiAgICAg
d2luZG93LmFkZEV2ZW50TGlzdGVuZXIoIm1lc3NhZ2UiLCBmdW5jdGlvbihldmVudCkgewogICAg
ICAgICBjb25zdCBkYXRhID0gZXZlbnQuZGF0YTsKIApAQCAtMTUsMTYgKzE2LDMzIEBACiAgICAg
ICAgIH0KIAogICAgICAgICBpZiAoZGF0YS5zdGF0dXMgPT09ICJzdWNjZXNzIikgewotICAgICAg
ICAgICAgcGVuZGluZ19yZXNvbHZlKCk7CisgICAgICAgICAgICByZXN1bHQgPSBKU09OLnBhcnNl
KGRhdGEubWVzc2FnZSkucmVzdWx0CisgICAgICAgICAgICBwZW5kaW5nX3Jlc29sdmUocmVzdWx0
KTsKICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgIHBlbmRpbmdfcmVqZWN0KCk7CiAgICAg
ICAgIH0KICAgICB9KTsKIAorICAgIGNvbnN0IGdldF9mcmFtZSA9IGZ1bmN0aW9uKGVsZW1lbnQs
IGZyYW1lKSB7CisgICAgICAgIGxldCBmb3VuZEZyYW1lID0gZnJhbWU7CisgICAgICAgIGxldCBm
cmFtZURvY3VtZW50ID0gZnJhbWUgPT0gd2luZG93ID8gd2luZG93LmRvY3VtZW50IDogZnJhbWUu
Y29udGVudERvY3VtZW50OworICAgICAgICBpZiAoIWZyYW1lRG9jdW1lbnQuY29udGFpbnMoZWxl
bWVudCkpIHsKKyAgICAgICAgICBmb3VuZEZyYW1lID0gbnVsbDsKKyAgICAgICAgICBsZXQgZnJh
bWVzID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoImlmcmFtZSIpOworICAgICAgICAg
IGZvciAobGV0IGkgPSAwOyBpIDwgZnJhbWVzLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICBp
ZiAoZ2V0X2ZyYW1lKGVsZW1lbnQsIGZyYW1lc1tpXSkpIHsKKyAgICAgICAgICAgICAgZm91bmRG
cmFtZSA9IGZyYW1lc1tpXTsKKyAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9Cisg
ICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybiBmb3VuZEZyYW1lOworICAgIH07
CisKICAgICBjb25zdCBnZXRfc2VsZWN0b3IgPSBmdW5jdGlvbihlbGVtZW50KSB7CiAgICAgICAg
IGxldCBzZWxlY3RvcjsKIAotICAgICAgICBpZiAoZWxlbWVudC5pZCAmJiBkb2N1bWVudC5nZXRF
bGVtZW50QnlJZChlbGVtZW50LmlkKSA9PT0gZWxlbWVudCkgeworICAgICAgICBpZiAoZWxlbWVu
dC5pZCkgewogICAgICAgICAgICAgY29uc3QgaWQgPSBlbGVtZW50LmlkOwogCiAgICAgICAgICAg
ICBzZWxlY3RvciA9ICIjIjsKQEAgLTUxLDEzICs2OSwxNSBAQAogICAgICAgICByZXR1cm4gc2Vs
ZWN0b3I7CiAgICAgfTsKIAorICAgIHdpbmRvdy50ZXN0X2RyaXZlcl9pbnRlcm5hbC5pbl9hdXRv
bWF0aW9uID0gdHJ1ZTsKKwogICAgIHdpbmRvdy50ZXN0X2RyaXZlcl9pbnRlcm5hbC5jbGljayA9
IGZ1bmN0aW9uKGVsZW1lbnQpIHsKICAgICAgICAgY29uc3Qgc2VsZWN0b3IgPSBnZXRfc2VsZWN0
b3IoZWxlbWVudCk7CiAgICAgICAgIGNvbnN0IHBlbmRpbmdfcHJvbWlzZSA9IG5ldyBQcm9taXNl
KGZ1bmN0aW9uKHJlc29sdmUsIHJlamVjdCkgewogICAgICAgICAgICAgcGVuZGluZ19yZXNvbHZl
ID0gcmVzb2x2ZTsKICAgICAgICAgICAgIHBlbmRpbmdfcmVqZWN0ID0gcmVqZWN0OwogICAgICAg
ICB9KTsKLSAgICAgICAgd2luZG93Lm9wZW5lci5wb3N0TWVzc2FnZSh7InR5cGUiOiAiYWN0aW9u
IiwgImFjdGlvbiI6ICJjbGljayIsICJzZWxlY3RvciI6IHNlbGVjdG9yfSwgIioiKTsKKyAgICAg
ICAgd2luZG93Ll9fd3B0cnVubmVyX21lc3NhZ2VfcXVldWUucHVzaCh7InR5cGUiOiAiYWN0aW9u
IiwgImFjdGlvbiI6ICJjbGljayIsICJzZWxlY3RvciI6IHNlbGVjdG9yfSk7CiAgICAgICAgIHJl
dHVybiBwZW5kaW5nX3Byb21pc2U7CiAgICAgfTsKIApAQCAtNjcsNyArODcsMTA1IEBACiAgICAg
ICAgICAgICBwZW5kaW5nX3Jlc29sdmUgPSByZXNvbHZlOwogICAgICAgICAgICAgcGVuZGluZ19y
ZWplY3QgPSByZWplY3Q7CiAgICAgICAgIH0pOwotICAgICAgICB3aW5kb3cub3BlbmVyLnBvc3RN
ZXNzYWdlKHsidHlwZSI6ICJhY3Rpb24iLCAiYWN0aW9uIjogInNlbmRfa2V5cyIsICJzZWxlY3Rv
ciI6IHNlbGVjdG9yLCAia2V5cyI6IGtleXN9LCAiKiIpOworICAgICAgICB3aW5kb3cuX193cHRy
dW5uZXJfbWVzc2FnZV9xdWV1ZS5wdXNoKHsidHlwZSI6ICJhY3Rpb24iLCAiYWN0aW9uIjogInNl
bmRfa2V5cyIsICJzZWxlY3RvciI6IHNlbGVjdG9yLCAia2V5cyI6IGtleXN9KTsKKyAgICAgICAg
cmV0dXJuIHBlbmRpbmdfcHJvbWlzZTsKKyAgICB9OworCisgICAgd2luZG93LnRlc3RfZHJpdmVy
X2ludGVybmFsLmFjdGlvbl9zZXF1ZW5jZSA9IGZ1bmN0aW9uKGFjdGlvbnMpIHsKKyAgICAgICAg
Y29uc3QgcGVuZGluZ19wcm9taXNlID0gbmV3IFByb21pc2UoZnVuY3Rpb24ocmVzb2x2ZSwgcmVq
ZWN0KSB7CisgICAgICAgICAgICBwZW5kaW5nX3Jlc29sdmUgPSByZXNvbHZlOworICAgICAgICAg
ICAgcGVuZGluZ19yZWplY3QgPSByZWplY3Q7CisgICAgICAgIH0pOworICAgICAgICBmb3IgKGxl
dCBhY3Rpb25TZXF1ZW5jZSBvZiBhY3Rpb25zKSB7CisgICAgICAgICAgICBpZiAoYWN0aW9uU2Vx
dWVuY2UudHlwZSA9PSAicG9pbnRlciIpIHsKKyAgICAgICAgICAgICAgICBmb3IgKGxldCBhY3Rp
b24gb2YgYWN0aW9uU2VxdWVuY2UuYWN0aW9ucykgeworICAgICAgICAgICAgICAgICAgICAvLyBU
aGUgb3JpZ2luIG9mIGVhY2ggYWN0aW9uIGNhbiBvbmx5IGJlIGFuIGVsZW1lbnQgb3IgYSBzdHJp
bmcgb2YgYSB2YWx1ZSAidmlld3BvcnQiIG9yICJwb2ludGVyIi4KKyAgICAgICAgICAgICAgICAg
ICAgaWYgKGFjdGlvbi50eXBlID09ICJwb2ludGVyTW92ZSIgJiYgdHlwZW9mKGFjdGlvbi5vcmln
aW4pICE9ICdzdHJpbmcnKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBsZXQgZnJhbWUgPSBn
ZXRfZnJhbWUoYWN0aW9uLm9yaWdpbiwgd2luZG93KTsKKyAgICAgICAgICAgICAgICAgICAgICAg
IGlmIChmcmFtZSAhPSBudWxsKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGZy
YW1lID09IHdpbmRvdykKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWN0aW9uLmZy
YW1lID0ge2ZyYW1lOiAid2luZG93In07CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxz
ZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhY3Rpb24uZnJhbWUgPSB7ZnJhbWU6
IGZyYW1lfTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBhY3Rpb24ub3JpZ2luID0ge3Nl
bGVjdG9yOiBnZXRfc2VsZWN0b3IoYWN0aW9uLm9yaWdpbil9OworICAgICAgICAgICAgICAgICAg
ICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAg
ICAgICAgfQorICAgICAgICB9CisgICAgICAgIHdpbmRvdy5fX3dwdHJ1bm5lcl9tZXNzYWdlX3F1
ZXVlLnB1c2goeyJ0eXBlIjogImFjdGlvbiIsICJhY3Rpb24iOiAiYWN0aW9uX3NlcXVlbmNlIiwg
ImFjdGlvbnMiOiBhY3Rpb25zfSk7CisgICAgICAgIHJldHVybiBwZW5kaW5nX3Byb21pc2U7Cisg
ICAgfTsKKworICAgIHdpbmRvdy50ZXN0X2RyaXZlcl9pbnRlcm5hbC5nZW5lcmF0ZV90ZXN0X3Jl
cG9ydCA9IGZ1bmN0aW9uKG1lc3NhZ2UpIHsKKyAgICAgICAgY29uc3QgcGVuZGluZ19wcm9taXNl
ID0gbmV3IFByb21pc2UoZnVuY3Rpb24ocmVzb2x2ZSwgcmVqZWN0KSB7CisgICAgICAgICAgICBw
ZW5kaW5nX3Jlc29sdmUgPSByZXNvbHZlOworICAgICAgICAgICAgcGVuZGluZ19yZWplY3QgPSBy
ZWplY3Q7CisgICAgICAgIH0pOworICAgICAgICB3aW5kb3cuX193cHRydW5uZXJfbWVzc2FnZV9x
dWV1ZS5wdXNoKHsidHlwZSI6ICJhY3Rpb24iLCAiYWN0aW9uIjogImdlbmVyYXRlX3Rlc3RfcmVw
b3J0IiwgIm1lc3NhZ2UiOiBtZXNzYWdlfSk7CisgICAgICAgIHJldHVybiBwZW5kaW5nX3Byb21p
c2U7CisgICAgfTsKKworICAgIHdpbmRvdy50ZXN0X2RyaXZlcl9pbnRlcm5hbC5hZGRfdmlydHVh
bF9hdXRoZW50aWNhdG9yID0gZnVuY3Rpb24oY29uZmlnKSB7CisgICAgICAgIGNvbnN0IHBlbmRp
bmdfcHJvbWlzZSA9IG5ldyBQcm9taXNlKGZ1bmN0aW9uKHJlc29sdmUsIHJlamVjdCkgeworICAg
ICAgICAgICAgcGVuZGluZ19yZXNvbHZlID0gcmVzb2x2ZTsKKyAgICAgICAgICAgIHBlbmRpbmdf
cmVqZWN0ID0gcmVqZWN0OworICAgICAgICB9KTsKKyAgICAgICAgd2luZG93Ll9fd3B0cnVubmVy
X21lc3NhZ2VfcXVldWUucHVzaCh7InR5cGUiOiAiYWN0aW9uIiwgImFjdGlvbiI6ICJhZGRfdmly
dHVhbF9hdXRoZW50aWNhdG9yIiwgY29uZmlnfSk7CisgICAgICAgIHJldHVybiBwZW5kaW5nX3By
b21pc2U7CisgICAgfTsKKworICAgIHdpbmRvdy50ZXN0X2RyaXZlcl9pbnRlcm5hbC5yZW1vdmVf
dmlydHVhbF9hdXRoZW50aWNhdG9yID0gZnVuY3Rpb24oYXV0aGVudGljYXRvcl9pZCkgeworICAg
ICAgICBjb25zdCBwZW5kaW5nX3Byb21pc2UgPSBuZXcgUHJvbWlzZShmdW5jdGlvbihyZXNvbHZl
LCByZWplY3QpIHsKKyAgICAgICAgICAgIHBlbmRpbmdfcmVzb2x2ZSA9IHJlc29sdmU7CisgICAg
ICAgICAgICBwZW5kaW5nX3JlamVjdCA9IHJlamVjdDsKKyAgICAgICAgfSk7CisgICAgICAgIHdp
bmRvdy5fX3dwdHJ1bm5lcl9tZXNzYWdlX3F1ZXVlLnB1c2goeyJ0eXBlIjogImFjdGlvbiIsICJh
Y3Rpb24iOiAicmVtb3ZlX3ZpcnR1YWxfYXV0aGVudGljYXRvciIsIGF1dGhlbnRpY2F0b3JfaWR9
KTsKKyAgICAgICAgcmV0dXJuIHBlbmRpbmdfcHJvbWlzZTsKKyAgICB9OworCisgICAgd2luZG93
LnRlc3RfZHJpdmVyX2ludGVybmFsLmFkZF9jcmVkZW50aWFsID0gZnVuY3Rpb24oYXV0aGVudGlj
YXRvcl9pZCwgY3JlZGVudGlhbCkgeworICAgICAgICBjb25zdCBwZW5kaW5nX3Byb21pc2UgPSBu
ZXcgUHJvbWlzZShmdW5jdGlvbihyZXNvbHZlLCByZWplY3QpIHsKKyAgICAgICAgICAgIHBlbmRp
bmdfcmVzb2x2ZSA9IHJlc29sdmU7CisgICAgICAgICAgICBwZW5kaW5nX3JlamVjdCA9IHJlamVj
dDsKKyAgICAgICAgfSk7CisgICAgICAgIHdpbmRvdy5fX3dwdHJ1bm5lcl9tZXNzYWdlX3F1ZXVl
LnB1c2goeyJ0eXBlIjogImFjdGlvbiIsICJhY3Rpb24iOiAiYWRkX2NyZWRlbnRpYWwiLCBhdXRo
ZW50aWNhdG9yX2lkLCBjcmVkZW50aWFsfSk7CisgICAgICAgIHJldHVybiBwZW5kaW5nX3Byb21p
c2U7CisgICAgfTsKKworICAgIHdpbmRvdy50ZXN0X2RyaXZlcl9pbnRlcm5hbC5nZXRfY3JlZGVu
dGlhbHMgPSBmdW5jdGlvbihhdXRoZW50aWNhdG9yX2lkKSB7CisgICAgICAgIGNvbnN0IHBlbmRp
bmdfcHJvbWlzZSA9IG5ldyBQcm9taXNlKGZ1bmN0aW9uKHJlc29sdmUsIHJlamVjdCkgeworICAg
ICAgICAgICAgcGVuZGluZ19yZXNvbHZlID0gcmVzb2x2ZTsKKyAgICAgICAgICAgIHBlbmRpbmdf
cmVqZWN0ID0gcmVqZWN0OworICAgICAgICB9KTsKKyAgICAgICAgd2luZG93Ll9fd3B0cnVubmVy
X21lc3NhZ2VfcXVldWUucHVzaCh7InR5cGUiOiAiYWN0aW9uIiwgImFjdGlvbiI6ICJnZXRfY3Jl
ZGVudGlhbHMiLCBhdXRoZW50aWNhdG9yX2lkfSk7CisgICAgICAgIHJldHVybiBwZW5kaW5nX3By
b21pc2U7CisgICAgfTsKKworICAgIHdpbmRvdy50ZXN0X2RyaXZlcl9pbnRlcm5hbC5yZW1vdmVf
Y3JlZGVudGlhbCA9IGZ1bmN0aW9uKGF1dGhlbnRpY2F0b3JfaWQsIGNyZWRlbnRpYWxfaWQpIHsK
KyAgICAgICAgY29uc3QgcGVuZGluZ19wcm9taXNlID0gbmV3IFByb21pc2UoZnVuY3Rpb24ocmVz
b2x2ZSwgcmVqZWN0KSB7CisgICAgICAgICAgICBwZW5kaW5nX3Jlc29sdmUgPSByZXNvbHZlOwor
ICAgICAgICAgICAgcGVuZGluZ19yZWplY3QgPSByZWplY3Q7CisgICAgICAgIH0pOworICAgICAg
ICB3aW5kb3cuX193cHRydW5uZXJfbWVzc2FnZV9xdWV1ZS5wdXNoKHsidHlwZSI6ICJhY3Rpb24i
LCAiYWN0aW9uIjogInJlbW92ZV9jcmVkZW50aWFsIiwgYXV0aGVudGljYXRvcl9pZCwgY3JlZGVu
dGlhbF9pZH0pOworICAgICAgICByZXR1cm4gcGVuZGluZ19wcm9taXNlOworICAgIH07CisKKyAg
ICB3aW5kb3cudGVzdF9kcml2ZXJfaW50ZXJuYWwucmVtb3ZlX2FsbF9jcmVkZW50aWFscyA9IGZ1
bmN0aW9uKGF1dGhlbnRpY2F0b3JfaWQpIHsKKyAgICAgICAgY29uc3QgcGVuZGluZ19wcm9taXNl
ID0gbmV3IFByb21pc2UoZnVuY3Rpb24ocmVzb2x2ZSwgcmVqZWN0KSB7CisgICAgICAgICAgICBw
ZW5kaW5nX3Jlc29sdmUgPSByZXNvbHZlOworICAgICAgICAgICAgcGVuZGluZ19yZWplY3QgPSBy
ZWplY3Q7CisgICAgICAgIH0pOworICAgICAgICB3aW5kb3cuX193cHRydW5uZXJfbWVzc2FnZV9x
dWV1ZS5wdXNoKHsidHlwZSI6ICJhY3Rpb24iLCAiYWN0aW9uIjogInJlbW92ZV9hbGxfY3JlZGVu
dGlhbHMiLCBhdXRoZW50aWNhdG9yX2lkfSk7CisgICAgICAgIHJldHVybiBwZW5kaW5nX3Byb21p
c2U7CisgICAgfTsKKworICAgIHdpbmRvdy50ZXN0X2RyaXZlcl9pbnRlcm5hbC5zZXRfdXNlcl92
ZXJpZmllZCA9IGZ1bmN0aW9uKGF1dGhlbnRpY2F0b3JfaWQsIHV2KSB7CisgICAgICAgIGNvbnN0
IHBlbmRpbmdfcHJvbWlzZSA9IG5ldyBQcm9taXNlKGZ1bmN0aW9uKHJlc29sdmUsIHJlamVjdCkg
eworICAgICAgICAgICAgcGVuZGluZ19yZXNvbHZlID0gcmVzb2x2ZTsKKyAgICAgICAgICAgIHBl
bmRpbmdfcmVqZWN0ID0gcmVqZWN0OworICAgICAgICB9KTsKKyAgICAgICAgd2luZG93Ll9fd3B0
cnVubmVyX21lc3NhZ2VfcXVldWUucHVzaCh7InR5cGUiOiAiYWN0aW9uIiwgImFjdGlvbiI6ICJz
ZXRfdXNlcl92ZXJpZmllZCIsIGF1dGhlbnRpY2F0b3JfaWQsIHV2fSk7CiAgICAgICAgIHJldHVy
biBwZW5kaW5nX3Byb21pc2U7CiAgICAgfTsKIH0pKCk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5u
ZXIvdGVzdGhhcm5lc3NyZXBvcnQtc2Vydm8uanMgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvdGVzdGhhcm5lc3Ny
ZXBvcnQtc2Vydm8uanMKaW5kZXggYjY3MmFlYTlhMjU0MGJmMTQ0NmEyM2RkYjI4OGM5MzAwOWJi
MjZiYS4uYTEwYjY5ZGY1NTA0ZmFiODc1MTQ3YWYyNmQ5MjVlYmNjZTUxZWMwMCAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRy
dW5uZXIvd3B0cnVubmVyL3Rlc3RoYXJuZXNzcmVwb3J0LXNlcnZvLmpzCisrKyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1
bm5lci90ZXN0aGFybmVzc3JlcG9ydC1zZXJ2by5qcwpAQCAtNCw3ICs0LDcgQEAgc3RhcnRfbG9j
LmhyZWYgPSBsb2NhdGlvbi5ocmVmOwogc2V0dXAocHJvcHMpOwogCiBhZGRfY29tcGxldGlvbl9j
YWxsYmFjayhmdW5jdGlvbiAodGVzdHMsIGhhcm5lc3Nfc3RhdHVzKSB7Ci0gICAgdmFyIGlkID0g
c3RhcnRfbG9jLnBhdGhuYW1lICsgc3RhcnRfbG9jLnNlYXJjaCArIHN0YXJ0X2xvYy5oYXNoOwor
ICAgIHZhciBpZCA9IGRlY29kZVVSSUNvbXBvbmVudChzdGFydF9sb2MucGF0aG5hbWUpICsgZGVj
b2RlVVJJQ29tcG9uZW50KHN0YXJ0X2xvYy5zZWFyY2gpICsgZGVjb2RlVVJJQ29tcG9uZW50KHN0
YXJ0X2xvYy5oYXNoKTsKICAgICBjb25zb2xlLmxvZygiQUxFUlQ6IFJFU1VMVDogIiArIEpTT04u
c3RyaW5naWZ5KFsKICAgICAgICAgaWQsCiAgICAgICAgIGhhcm5lc3Nfc3RhdHVzLnN0YXR1cywK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci90ZXN0aGFybmVzc3JlcG9ydC5qcyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1
bm5lci90ZXN0aGFybmVzc3JlcG9ydC5qcwppbmRleCA2MmRkYWZmYjQ0M2M5NDUwNTM4MzA4Mzky
M2RjMTNmY2IxY2Y1NjYwLi4yOWZjMGU5ODczMTg4MjIzYWMzNzgzYThjNjIyYmJiZTIxZWM1YWY1
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvdGVzdGhhcm5lc3NyZXBvcnQuanMKKysrIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIv
d3B0cnVubmVyL3Rlc3RoYXJuZXNzcmVwb3J0LmpzCkBAIC0xLDEzICsxLDgzIEBACi12YXIgcHJv
cHMgPSB7b3V0cHV0OiUob3V0cHV0KWQsCi0gICAgICAgICAgICAgZXhwbGljaXRfdGltZW91dDog
dHJ1ZSwKLSAgICAgICAgICAgICBtZXNzYWdlX2V2ZW50czogWyJjb21wbGV0aW9uIl19OworY2xh
c3MgTWVzc2FnZVF1ZXVlIHsKKyAgY29uc3RydWN0b3IoKSB7CisgICAgdGhpcy5fcXVldWUgPSBb
XTsKKyAgfQogCi1pZiAod2luZG93Lm9wZW5lciAmJiAidGltZW91dF9tdWx0aXBsaWVyIiBpbiB3
aW5kb3cub3BlbmVyKSB7Ci0gICAgcHJvcHNbInRpbWVvdXRfbXVsdGlwbGllciJdID0gd2luZG93
Lm9wZW5lci50aW1lb3V0X211bHRpcGxpZXI7Ci19CisgIHB1c2goaXRlbSkgeworICAgIHRoaXMu
X3F1ZXVlLnB1c2goaXRlbSk7CisgICAgX193cHRydW5uZXJfcHJvY2Vzc19uZXh0X2V2ZW50KCk7
CisgIH0KIAotaWYgKHdpbmRvdy5vcGVuZXIgJiYgd2luZG93Lm9wZW5lci5leHBsaWNpdF90aW1l
b3V0KSB7Ci0gICAgcHJvcHNbImV4cGxpY2l0X3RpbWVvdXQiXSA9IHdpbmRvdy5vcGVuZXIuZXhw
bGljaXRfdGltZW91dDsKKyAgc2hpZnQoKSB7CisgICAgcmV0dXJuIHRoaXMuX3F1ZXVlLnNoaWZ0
KCk7CisgIH0KIH0KIAotc2V0dXAocHJvcHMpOword2luZG93Ll9fd3B0cnVubmVyX3Rlc3Rkcml2
ZXJfY2FsbGJhY2sgPSBudWxsOword2luZG93Ll9fd3B0cnVubmVyX21lc3NhZ2VfcXVldWUgPSBu
ZXcgTWVzc2FnZVF1ZXVlKCk7Cit3aW5kb3cuX193cHRydW5uZXJfdXJsID0gbnVsbDsKKword2lu
ZG93Ll9fd3B0cnVubmVyX3Byb2Nlc3NfbmV4dF9ldmVudCA9IGZ1bmN0aW9uKCkgeworICAvKiBU
aGlzIGZ1bmN0aW9uIGhhbmRsZXMgdGhlIG5leHQgdGVzdGRyaXZlciBldmVudC4gVGhlIHByZXNl
bmNlIG9mCisgICAgIHdpbmRvdy50ZXN0ZHJpdmVyX2NhbGxiYWNrIGlzIHVzZWQgYXMgYSBzd2l0
Y2g7IHdoZW4gdGhhdCBmdW5jdGlvbgorICAgICBpcyBwcmVzZW50IHdlIGFyZSBhYmxlIHRvIGhh
bmRsZSB0aGUgbmV4dCBldmVudCBhbmQgd2hlbiBpcyBpcyBub3QKKyAgICAgcHJlc2VudCB3ZSBt
dXN0IHdhaXQuIFRoZXJlZm9yZSB0byBkcml2ZSB0aGUgZXZlbnQgcHJvY2Vzc2luZywgdGhpcwor
ICAgICBmdW5jdGlvbiBtdXN0IGJlIGNhbGxlZCBpbiB0d28gY2lyY3Vtc3RhbmNlczoKKyAgICAg
ICAqIEV2ZXJ5IHRpbWUgdGhlcmUgaXMgYSBuZXcgZXZlbnQgdGhhdCB3ZSBtYXkgYmUgYWJsZSB0
byBoYW5kbGUKKyAgICAgICAqIEV2ZXJ5IHRpbWUgd2Ugc2V0IHRoZSBjYWxsYmFjayBmdW5jdGlv
bgorICAgICBUaGlzIGZ1bmN0aW9uIHVuc2V0cyB0aGUgY2FsbGJhY2ssIHNvIG5vIGZ1cnRoZXIg
dGVzdGRyaXZlciBhY3Rpb25zCisgICAgIHdpbGwgYmUgcnVuIHVudGlsIGl0IGlzIHJlc2V0LCB3
aGljaCB3cHRydW5uZXIgZG9lcyBhZnRlciBpdCBoYXMKKyAgICAgY29tcGxldGVkIGhhbmRsaW5n
IHRoZSBjdXJyZW50IGFjdGlvbi4KKyAgICovCisKKyAgaWYgKCF3aW5kb3cuX193cHRydW5uZXJf
dGVzdGRyaXZlcl9jYWxsYmFjaykgeworICAgIHJldHVybjsKKyAgfQorICB2YXIgZGF0YSA9IHdp
bmRvdy5fX3dwdHJ1bm5lcl9tZXNzYWdlX3F1ZXVlLnNoaWZ0KCk7CisgIGlmICghZGF0YSkgewor
ICAgIHJldHVybjsKKyAgfQorCisgIHZhciBwYXlsb2FkID0gdW5kZWZpbmVkOworCisgIHN3aXRj
aChkYXRhLnR5cGUpIHsKKyAgY2FzZSAiY29tcGxldGUiOgorICAgIHZhciB0ZXN0cyA9IGRhdGEu
dGVzdHM7CisgICAgdmFyIHN0YXR1cyA9IGRhdGEuc3RhdHVzOworCisgICAgdmFyIHN1YnRlc3Rf
cmVzdWx0cyA9IHRlc3RzLm1hcChmdW5jdGlvbih4KSB7CisgICAgICByZXR1cm4gW3gubmFtZSwg
eC5zdGF0dXMsIHgubWVzc2FnZSwgeC5zdGFja107CisgICAgfSk7CisgICAgcGF5bG9hZCA9IFtz
dGF0dXMuc3RhdHVzLAorICAgICAgICAgICAgICAgc3RhdHVzLm1lc3NhZ2UsCisgICAgICAgICAg
ICAgICBzdGF0dXMuc3RhY2ssCisgICAgICAgICAgICAgICBzdWJ0ZXN0X3Jlc3VsdHNdOworICAg
IGNsZWFyVGltZW91dCh3aW5kb3cuX193cHRydW5uZXJfdGltZXIpOworICAgIGJyZWFrOworICBj
YXNlICJhY3Rpb24iOgorICAgIHBheWxvYWQgPSBkYXRhOworICAgIGJyZWFrOworICBkZWZhdWx0
OgorICAgIHJldHVybjsKKyAgfQorICB2YXIgY2FsbGJhY2sgPSB3aW5kb3cuX193cHRydW5uZXJf
dGVzdGRyaXZlcl9jYWxsYmFjazsKKyAgd2luZG93Ll9fd3B0cnVubmVyX3Rlc3Rkcml2ZXJfY2Fs
bGJhY2sgPSBudWxsOworICBjYWxsYmFjayhbX193cHRydW5uZXJfdXJsLCBkYXRhLnR5cGUsIHBh
eWxvYWRdKTsKK307CisKKyhmdW5jdGlvbigpIHsKKyAgdmFyIHByb3BzID0ge291dHB1dDogJShv
dXRwdXQpZCwKKyAgICAgICAgICAgICAgIHRpbWVvdXRfbXVsdGlwbGllcjogJSh0aW1lb3V0X211
bHRpcGxpZXIpcywKKyAgICAgICAgICAgICAgIGV4cGxpY2l0X3RpbWVvdXQ6ICUoZXhwbGljaXRf
dGltZW91dClzLAorICAgICAgICAgICAgICAgbWVzc2FnZV9ldmVudHM6IFsiY29tcGxldGlvbiJd
fTsKKworICBhZGRfY29tcGxldGlvbl9jYWxsYmFjayhmdW5jdGlvbih0ZXN0cywgaGFybmVzc19z
dGF0dXMpIHsKKyAgICBfX3dwdHJ1bm5lcl9tZXNzYWdlX3F1ZXVlLnB1c2goeworICAgICAgInR5
cGUiOiAiY29tcGxldGUiLAorICAgICAgInRlc3RzIjogdGVzdHMsCisgICAgICAic3RhdHVzIjog
aGFybmVzc19zdGF0dXN9KTsKKyAgICBfX3dwdHJ1bm5lcl9wcm9jZXNzX25leHRfZXZlbnQoKTsK
KyAgfSk7CisgIHNldHVwKHByb3BzKTsKK30pKCk7CisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5l
ci90ZXN0bG9hZGVyLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3Rlc3Rsb2FkZXIucHkKaW5kZXggMDE4ZGMx
MDM5ODNkZmVmMjIyZWQ3Y2M2YTRmOGZlNTI4OGFkZDI1Ni4uZmE1NGNhMzYxNTc2MzE4Y2IzNWVj
NzE2YTFhMTU5YmRiNTMyZTZjOCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3Rlc3Rsb2FkZXIu
cHkKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy93cHRydW5uZXIvd3B0cnVubmVyL3Rlc3Rsb2FkZXIucHkKQEAgLTEsMjkgKzEsMjYgQEAKIGlt
cG9ydCBoYXNobGliCi1pbXBvcnQganNvbgogaW1wb3J0IG9zCi1pbXBvcnQgdXJscGFyc2UKK2Zy
b20gc2l4Lm1vdmVzLnVybGxpYi5wYXJzZSBpbXBvcnQgdXJsc3BsaXQKIGZyb20gYWJjIGltcG9y
dCBBQkNNZXRhLCBhYnN0cmFjdG1ldGhvZAotZnJvbSBRdWV1ZSBpbXBvcnQgRW1wdHkKLWZyb20g
Y29sbGVjdGlvbnMgaW1wb3J0IGRlZmF1bHRkaWN0LCBPcmRlcmVkRGljdCwgZGVxdWUKK2Zyb20g
c2l4Lm1vdmVzLnF1ZXVlIGltcG9ydCBFbXB0eQorZnJvbSBjb2xsZWN0aW9ucyBpbXBvcnQgZGVm
YXVsdGRpY3QsIGRlcXVlCiBmcm9tIG11bHRpcHJvY2Vzc2luZyBpbXBvcnQgUXVldWUKIAotaW1w
b3J0IG1hbmlmZXN0aW5jbHVkZQotaW1wb3J0IG1hbmlmZXN0ZXhwZWN0ZWQKLWltcG9ydCB3cHR0
ZXN0Citmcm9tIC4gaW1wb3J0IG1hbmlmZXN0aW5jbHVkZQorZnJvbSAuIGltcG9ydCBtYW5pZmVz
dGV4cGVjdGVkCitmcm9tIC4gaW1wb3J0IHdwdHRlc3QKIGZyb20gbW96bG9nIGltcG9ydCBzdHJ1
Y3R1cmVkCiAKIG1hbmlmZXN0ID0gTm9uZQogbWFuaWZlc3RfdXBkYXRlID0gTm9uZQogZG93bmxv
YWRfZnJvbV9naXRodWIgPSBOb25lCi1tYW5pZmVzdF9sb2cgPSBOb25lCiAKIGRlZiBkb19kZWxh
eWVkX2ltcG9ydHMoKToKICAgICAjIFRoaXMgcmVsaWVzIG9uIGFuIGFscmVhZHkgbG9hZGVkIG1v
ZHVsZSBoYXZpbmcgc2V0IHRoZSBzeXMucGF0aCBjb3JyZWN0bHkgOigKLSAgICBnbG9iYWwgbWFu
aWZlc3QsIG1hbmlmZXN0X3VwZGF0ZSwgZG93bmxvYWRfZnJvbV9naXRodWIsIG1hbmlmZXN0X2xv
ZworICAgIGdsb2JhbCBtYW5pZmVzdCwgbWFuaWZlc3RfdXBkYXRlLCBkb3dubG9hZF9mcm9tX2dp
dGh1YgogICAgIGZyb20gbWFuaWZlc3QgaW1wb3J0IG1hbmlmZXN0CiAgICAgZnJvbSBtYW5pZmVz
dCBpbXBvcnQgdXBkYXRlIGFzIG1hbmlmZXN0X3VwZGF0ZQogICAgIGZyb20gbWFuaWZlc3QuZG93
bmxvYWQgaW1wb3J0IGRvd25sb2FkX2Zyb21fZ2l0aHViCi0gICAgZnJvbSBtYW5pZmVzdCBpbXBv
cnQgbG9nIGFzIG1hbmlmZXN0X2xvZwogCiAKIGNsYXNzIFRlc3RDaHVua2VyKG9iamVjdCk6CkBA
IC03MSwyODUgKzY4LDIwIEBAIGNsYXNzIERpcmVjdG9yeUhhc2hDaHVua2VyKFRlc3RDaHVua2Vy
KToKICAgICAgICAgICAgICAgICB5aWVsZCB0ZXN0X3R5cGUsIHRlc3RfcGF0aCwgdGVzdHMKIAog
Ci1jbGFzcyBFcXVhbFRpbWVDaHVua2VyKFRlc3RDaHVua2VyKToKLSAgICBkZWYgX2dyb3VwX2J5
X2RpcmVjdG9yeShzZWxmLCBtYW5pZmVzdF9pdGVtcyk6Ci0gICAgICAgICIiIlNwbGl0IHRoZSBs
aXN0IG9mIG1hbmlmZXN0IGl0ZW1zIGludG8gYSBvcmRlcmVkIGRpY3QgdGhhdCBncm91cHMgdGVz
dHMgaW4KLSAgICAgICAgc28gdGhhdCBhbnl0aGluZyBpbiB0aGUgc2FtZSBzdWJkaXJlY3Rvcnkg
YmV5b25kIGEgZGVwdGggb2YgMyBpcyBpbiB0aGUgc2FtZQotICAgICAgICBncm91cC4gU28gYWxs
IHRlc3RzIGluIGEvYi9jLCBhL2IvYy9kIGFuZCBhL2IvYy9lIHdpbGwgYmUgZ3JvdXBlZCB0b2dl
dGhlcgotICAgICAgICBhbmQgc2VwYXJhdGUgdG8gdGVzdHMgaW4gYS9iL2YKLQotICAgICAgICBS
ZXR1cm5zOiB0dXBsZSAob3JkZXJlZCBkaWN0IG9mIHt0ZXN0X2RpcjogUGF0aERhdGF9LCB0b3Rh
bCBlc3RpbWF0ZWQgcnVudGltZSkKLSAgICAgICAgIiIiCi0KLSAgICAgICAgY2xhc3MgUGF0aERh
dGEob2JqZWN0KToKLSAgICAgICAgICAgIGRlZiBfX2luaXRfXyhzZWxmLCBwYXRoKToKLSAgICAg
ICAgICAgICAgICBzZWxmLnBhdGggPSBwYXRoCi0gICAgICAgICAgICAgICAgc2VsZi50aW1lID0g
MAotICAgICAgICAgICAgICAgIHNlbGYudGVzdHMgPSBbXQotCi0gICAgICAgIGJ5X2RpciA9IE9y
ZGVyZWREaWN0KCkKLSAgICAgICAgdG90YWxfdGltZSA9IDAKLQotICAgICAgICBmb3IgaSwgKHRl
c3RfdHlwZSwgdGVzdF9wYXRoLCB0ZXN0cykgaW4gZW51bWVyYXRlKG1hbmlmZXN0X2l0ZW1zKToK
LSAgICAgICAgICAgIHRlc3RfZGlyID0gdHVwbGUob3MucGF0aC5zcGxpdCh0ZXN0X3BhdGgpWzBd
LnNwbGl0KG9zLnBhdGguc2VwKVs6M10pCi0KLSAgICAgICAgICAgIGlmIHRlc3RfZGlyIG5vdCBp
biBieV9kaXI6Ci0gICAgICAgICAgICAgICAgYnlfZGlyW3Rlc3RfZGlyXSA9IFBhdGhEYXRhKHRl
c3RfZGlyKQotCi0gICAgICAgICAgICBkYXRhID0gYnlfZGlyW3Rlc3RfZGlyXQotICAgICAgICAg
ICAgdGltZSA9IHN1bSh0ZXN0LmRlZmF1bHRfdGltZW91dCBpZiB0ZXN0LnRpbWVvdXQgIT0KLSAg
ICAgICAgICAgICAgICAgICAgICAgImxvbmciIGVsc2UgdGVzdC5sb25nX3RpbWVvdXQgZm9yIHRl
c3QgaW4gdGVzdHMpCi0gICAgICAgICAgICBkYXRhLnRpbWUgKz0gdGltZQotICAgICAgICAgICAg
dG90YWxfdGltZSArPSB0aW1lCi0gICAgICAgICAgICBkYXRhLnRlc3RzLmFwcGVuZCgodGVzdF90
eXBlLCB0ZXN0X3BhdGgsIHRlc3RzKSkKLQotICAgICAgICByZXR1cm4gYnlfZGlyLCB0b3RhbF90
aW1lCi0KLSAgICBkZWYgX21heWJlX3JlbW92ZShzZWxmLCBjaHVua3MsIGksIGRpcmVjdGlvbik6
Ci0gICAgICAgICIiIlRyaWFsIHJlbW92aW5nIGEgY2h1bmsgZnJvbSBvbmUgY2h1bmsgdG8gYW4g
YWRqYWNlbnQgb25lLgotCi0gICAgICAgIDpwYXJhbSBjaHVua3M6IC0gdGhlIGxpc3Qgb2YgYWxs
IGNodW5rcwotICAgICAgICA6cGFyYW0gaTogLSB0aGUgY2h1bmsgaW5kZXggaW4gdGhlIGxpc3Qg
b2YgY2h1bmtzIHRvIHRyeSByZW1vdmluZyBmcm9tCi0gICAgICAgIDpwYXJhbSBkaXJlY3Rpb246
IGVpdGhlciAibmV4dCIgaWYgd2UgYXJlIGdvaW5nIHRvIG1vdmUgZnJvbSB0aGUgZW5kIHRvCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgIHRoZSBzdWJzZXF1ZW50IGNodW5rLCBvciAicHJldiIg
aWYgd2UgYXJlIGdvaW5nIHRvIG1vdmUKLSAgICAgICAgICAgICAgICAgICAgICAgICAgZnJvbSB0
aGUgc3RhcnQgaW50byB0aGUgcHJldmlvdXMgY2h1bmsuCi0KLSAgICAgICAgOnJldHVybnMgYm9v
bDogRGlkIGEgY2h1bmsgZ2V0IG1vdmVkPyIiIgotICAgICAgICBzb3VyY2VfY2h1bmsgPSBjaHVu
a3NbaV0KLSAgICAgICAgaWYgZGlyZWN0aW9uID09ICJuZXh0IjoKLSAgICAgICAgICAgIHRhcmdl
dF9jaHVuayA9IGNodW5rc1tpKzFdCi0gICAgICAgICAgICBwYXRoX2luZGV4ID0gLTEKLSAgICAg
ICAgICAgIG1vdmVfZnVuYyA9IGxhbWJkYTogdGFyZ2V0X2NodW5rLmFwcGVuZGxlZnQoc291cmNl
X2NodW5rLnBvcCgpKQotICAgICAgICBlbGlmIGRpcmVjdGlvbiA9PSAicHJldiI6Ci0gICAgICAg
ICAgICB0YXJnZXRfY2h1bmsgPSBjaHVua3NbaS0xXQotICAgICAgICAgICAgcGF0aF9pbmRleCA9
IDAKLSAgICAgICAgICAgIG1vdmVfZnVuYyA9IGxhbWJkYTogdGFyZ2V0X2NodW5rLmFwcGVuZChz
b3VyY2VfY2h1bmsucG9wbGVmdCgpKQotICAgICAgICBlbHNlOgotICAgICAgICAgICAgcmFpc2Ug
VmFsdWVFcnJvcigiVW5leHBlY3RlZCBtb3ZlIGRpcmVjdGlvbiAlcyIgJSBkaXJlY3Rpb24pCi0K
LSAgICAgICAgcmV0dXJuIHNlbGYuX21heWJlX21vdmUoc291cmNlX2NodW5rLCB0YXJnZXRfY2h1
bmssIHBhdGhfaW5kZXgsIG1vdmVfZnVuYykKLQotICAgIGRlZiBfbWF5YmVfYWRkKHNlbGYsIGNo
dW5rcywgaSwgZGlyZWN0aW9uKToKLSAgICAgICAgIiIiVHJpYWwgYWRkaW5nIGEgY2h1bmsgZnJv
bSBvbmUgY2h1bmsgdG8gYW4gYWRqYWNlbnQgb25lLgotCi0gICAgICAgIDpwYXJhbSBjaHVua3M6
IC0gdGhlIGxpc3Qgb2YgYWxsIGNodW5rcwotICAgICAgICA6cGFyYW0gaTogLSB0aGUgY2h1bmsg
aW5kZXggaW4gdGhlIGxpc3Qgb2YgY2h1bmtzIHRvIHRyeSBhZGRpbmcgdG8KLSAgICAgICAgOnBh
cmFtIGRpcmVjdGlvbjogZWl0aGVyICJuZXh0IiBpZiB3ZSBhcmUgZ29pbmcgdG8gcmVtb3ZlIGZy
b20gdGhlCi0gICAgICAgICAgICAgICAgICAgICAgICAgIHRoZSBzdWJzZXF1ZW50IGNodW5rLCBv
ciAicHJldiIgaWYgd2UgYXJlIGdvaW5nIHRvIHJlbW92ZQotICAgICAgICAgICAgICAgICAgICAg
ICAgICBmcm9tIHRoZSB0aGUgcHJldmlvdXMgY2h1bmsuCi0KLSAgICAgICAgOnJldHVybnMgYm9v
bDogRGlkIGEgY2h1bmsgZ2V0IG1vdmVkPyIiIgotICAgICAgICB0YXJnZXRfY2h1bmsgPSBjaHVu
a3NbaV0KLSAgICAgICAgaWYgZGlyZWN0aW9uID09ICJuZXh0IjoKLSAgICAgICAgICAgIHNvdXJj
ZV9jaHVuayA9IGNodW5rc1tpKzFdCi0gICAgICAgICAgICBwYXRoX2luZGV4ID0gMAotICAgICAg
ICAgICAgbW92ZV9mdW5jID0gbGFtYmRhOiB0YXJnZXRfY2h1bmsuYXBwZW5kKHNvdXJjZV9jaHVu
ay5wb3BsZWZ0KCkpCi0gICAgICAgIGVsaWYgZGlyZWN0aW9uID09ICJwcmV2IjoKLSAgICAgICAg
ICAgIHNvdXJjZV9jaHVuayA9IGNodW5rc1tpLTFdCi0gICAgICAgICAgICBwYXRoX2luZGV4ID0g
LTEKLSAgICAgICAgICAgIG1vdmVfZnVuYyA9IGxhbWJkYTogdGFyZ2V0X2NodW5rLmFwcGVuZGxl
ZnQoc291cmNlX2NodW5rLnBvcCgpKQotICAgICAgICBlbHNlOgotICAgICAgICAgICAgcmFpc2Ug
VmFsdWVFcnJvcigiVW5leHBlY3RlZCBtb3ZlIGRpcmVjdGlvbiAlcyIgJSBkaXJlY3Rpb24pCi0K
LSAgICAgICAgcmV0dXJuIHNlbGYuX21heWJlX21vdmUoc291cmNlX2NodW5rLCB0YXJnZXRfY2h1
bmssIHBhdGhfaW5kZXgsIG1vdmVfZnVuYykKLQotICAgIGRlZiBfbWF5YmVfbW92ZShzZWxmLCBz
b3VyY2VfY2h1bmssIHRhcmdldF9jaHVuaywgcGF0aF9pbmRleCwgbW92ZV9mdW5jKToKLSAgICAg
ICAgIiIiTW92ZSBmcm9tIG9uZSBjaHVuayB0byBhbm90aGVyLCBhc3Nlc3MgdGhlIGNoYW5nZSBp
biBiYWRuZXNzLAotICAgICAgICBhbmQga2VlcCB0aGUgbW92ZSBpZmYgaXQgZGVjcmVhc2VzIHRo
ZSBiYWRuZXNzIHNjb3JlLgotCi0gICAgICAgIDpwYXJhbSBzb3VyY2VfY2h1bms6IGNodW5rIHRv
IG1vdmUgZnJvbQotICAgICAgICA6cGFyYW0gdGFyZ2V0X2NodW5rOiBjaHVuayB0byBtb3ZlIHRv
Ci0gICAgICAgIDpwYXJhbSBwYXRoX2luZGV4OiAwIGlmIHdlIGFyZSBtb3ZpbmcgZnJvbSB0aGUg
c3RhcnQgb3IgLTEgaWYgd2UgYXJlIG1vdmluZyBmcm9tIHRoZQotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgZW5kCi0gICAgICAgIDpwYXJhbSBtb3ZlX2Z1bmM6IEZ1bmN0aW9uIHRoYXQgYWN0
dWFsbHkgbW92ZXMgYmV0d2VlbiBjaHVua3MiIiIKLSAgICAgICAgaWYgbGVuKHNvdXJjZV9jaHVu
ay5wYXRocykgPD0gMToKLSAgICAgICAgICAgIHJldHVybiBGYWxzZQotCi0gICAgICAgIG1vdmVf
dGltZSA9IHNvdXJjZV9jaHVuay5wYXRoc1twYXRoX2luZGV4XS50aW1lCi0KLSAgICAgICAgbmV3
X3NvdXJjZV9iYWRuZXNzID0gc2VsZi5fYmFkbmVzcyhzb3VyY2VfY2h1bmsudGltZSAtIG1vdmVf
dGltZSkKLSAgICAgICAgbmV3X3RhcmdldF9iYWRuZXNzID0gc2VsZi5fYmFkbmVzcyh0YXJnZXRf
Y2h1bmsudGltZSArIG1vdmVfdGltZSkKLQotICAgICAgICBkZWx0YV9iYWRuZXNzID0gKChuZXdf
c291cmNlX2JhZG5lc3MgKyBuZXdfdGFyZ2V0X2JhZG5lc3MpIC0KLSAgICAgICAgICAgICAgICAg
ICAgICAgICAoc291cmNlX2NodW5rLmJhZG5lc3MgKyB0YXJnZXRfY2h1bmsuYmFkbmVzcykpCi0g
ICAgICAgIGlmIGRlbHRhX2JhZG5lc3MgPCAwOgotICAgICAgICAgICAgbW92ZV9mdW5jKCkKLSAg
ICAgICAgICAgIHJldHVybiBUcnVlCi0KLSAgICAgICAgcmV0dXJuIEZhbHNlCi0KLSAgICBkZWYg
X2JhZG5lc3Moc2VsZiwgdGltZSk6Ci0gICAgICAgICIiIk1ldHJpYyBvZiBiYWRuZXNzIGZvciBh
IHNwZWNpZmljIGNodW5rCi0KLSAgICAgICAgOnBhcmFtIHRpbWU6IHRoZSB0aW1lIGZvciBhIHNw
ZWNpZmljIGNodW5rIiIiCi0gICAgICAgIHJldHVybiAodGltZSAtIHNlbGYuZXhwZWN0ZWRfdGlt
ZSkqKjIKLQotICAgIGRlZiBfZ2V0X2NodW5rKHNlbGYsIG1hbmlmZXN0X2l0ZW1zKToKLSAgICAg
ICAgYnlfZGlyLCB0b3RhbF90aW1lID0gc2VsZi5fZ3JvdXBfYnlfZGlyZWN0b3J5KG1hbmlmZXN0
X2l0ZW1zKQotCi0gICAgICAgIGlmIGxlbihieV9kaXIpIDwgc2VsZi50b3RhbF9jaHVua3M6Ci0g
ICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJUcmllZCB0byBzcGxpdCBpbnRvICVpIGNodW5r
cywgYnV0IG9ubHkgJWkgc3ViZGlyZWN0b3JpZXMgaW5jbHVkZWQiICUgKAotICAgICAgICAgICAg
ICAgIHNlbGYudG90YWxfY2h1bmtzLCBsZW4oYnlfZGlyKSkpCi0KLSAgICAgICAgc2VsZi5leHBl
Y3RlZF90aW1lID0gZmxvYXQodG90YWxfdGltZSkgLyBzZWxmLnRvdGFsX2NodW5rcwotCi0gICAg
ICAgIGNodW5rcyA9IHNlbGYuX2NyZWF0ZV9pbml0aWFsX2NodW5rcyhieV9kaXIpCi0KLSAgICAg
ICAgd2hpbGUgVHJ1ZToKLSAgICAgICAgICAgICMgTW92ZSBhIHRlc3QgZnJvbSBvbmUgY2h1bmsg
dG8gdGhlIG5leHQgdW50aWwgZG9pbmcgc28gbm8gbG9uZ2VyCi0gICAgICAgICAgICAjIHJlZHVj
ZXMgdGhlIGJhZG5lc3MKLSAgICAgICAgICAgIGdvdF9pbXByb3ZlbWVudCA9IHNlbGYuX3VwZGF0
ZV9jaHVua3MoY2h1bmtzKQotICAgICAgICAgICAgaWYgbm90IGdvdF9pbXByb3ZlbWVudDoKLSAg
ICAgICAgICAgICAgICBicmVhawotCi0gICAgICAgIHNlbGYubG9nZ2VyLmRlYnVnKHNlbGYuZXhw
ZWN0ZWRfdGltZSkKLSAgICAgICAgZm9yIGksIGNodW5rIGluIGNodW5rcy5pdGVyaXRlbXMoKToK
LSAgICAgICAgICAgIHNlbGYubG9nZ2VyLmRlYnVnKCIlaTogJWksICVpIiAlIChpICsgMSwgY2h1
bmsudGltZSwgY2h1bmsuYmFkbmVzcykpCi0KLSAgICAgICAgYXNzZXJ0IHNlbGYuX2FsbF90ZXN0
cyhieV9kaXIpID09IHNlbGYuX2NodW5rZWRfdGVzdHMoY2h1bmtzKQotCi0gICAgICAgIHJldHVy
biBzZWxmLl9nZXRfdGVzdHMoY2h1bmtzKQotCi0gICAgQHN0YXRpY21ldGhvZAotICAgIGRlZiBf
YWxsX3Rlc3RzKGJ5X2Rpcik6Ci0gICAgICAgICIiIlJldHVybiBhIHNldCBvZiBhbGwgdGVzdHMg
aW4gdGhlIG1hbmlmZXN0IGZyb20gYSBncm91cGluZyBieSBkaXJlY3RvcnkiIiIKLSAgICAgICAg
cmV0dXJuIHNldCh4WzBdIGZvciBpdGVtIGluIGJ5X2Rpci5pdGVydmFsdWVzKCkKLSAgICAgICAg
ICAgICAgICAgICBmb3IgeCBpbiBpdGVtLnRlc3RzKQotCi0gICAgQHN0YXRpY21ldGhvZAotICAg
IGRlZiBfY2h1bmtlZF90ZXN0cyhjaHVua3MpOgotICAgICAgICAiIiJSZXR1cm4gYSBzZXQgb2Yg
YWxsIHRlc3RzIGluIHRoZSBtYW5pZmVzdCBmcm9tIHRoZSBjaHVuayBsaXN0IiIiCi0gICAgICAg
IHJldHVybiBzZXQoeFswXSBmb3IgY2h1bmsgaW4gY2h1bmtzLml0ZXJ2YWx1ZXMoKQotICAgICAg
ICAgICAgICAgICAgIGZvciBwYXRoIGluIGNodW5rLnBhdGhzCi0gICAgICAgICAgICAgICAgICAg
Zm9yIHggaW4gcGF0aC50ZXN0cykKLQotCi0gICAgZGVmIF9jcmVhdGVfaW5pdGlhbF9jaHVua3Mo
c2VsZiwgYnlfZGlyKToKLSAgICAgICAgIiIiQ3JlYXRlIGFuIGluaXRpYWwgdW5iYWxhbmNlZCBs
aXN0IG9mIGNodW5rcy4KLQotICAgICAgICA6cGFyYW0gYnlfZGlyOiBBbGwgdGVzdHMgaW4gdGhl
IG1hbmlmZXN0IGdyb3VwZWQgYnkgc3ViZGlyZWN0b3J5Ci0gICAgICAgIDpyZXR1cm5zIGxpc3Q6
IEEgbGlzdCBvZiBDaHVuayBvYmplY3RzIiIiCi0KLSAgICAgICAgY2xhc3MgQ2h1bmsob2JqZWN0
KToKLSAgICAgICAgICAgIGRlZiBfX2luaXRfXyhzZWxmLCBwYXRocywgaW5kZXgpOgotICAgICAg
ICAgICAgICAgICIiIkxpc3Qgb2YgUGF0aERhdGEgb2JqZWN0cyB0aGF0IHRvZ2V0aGVyIGZvcm0g
YSBzaW5nbGUgY2h1bmsgb2YKLSAgICAgICAgICAgICAgICB0ZXN0cyIiIgotICAgICAgICAgICAg
ICAgIHNlbGYucGF0aHMgPSBkZXF1ZShwYXRocykKLSAgICAgICAgICAgICAgICBzZWxmLnRpbWUg
PSBzdW0oaXRlbS50aW1lIGZvciBpdGVtIGluIHBhdGhzKQotICAgICAgICAgICAgICAgIHNlbGYu
aW5kZXggPSBpbmRleAotCi0gICAgICAgICAgICBkZWYgYXBwZW5kbGVmdChzZWxmLCBwYXRoKToK
LSAgICAgICAgICAgICAgICAiIiJBZGQgYSBQYXRoRGF0YSBvYmplY3QgdG8gdGhlIHN0YXJ0IG9m
IHRoZSBjaHVuayIiIgotICAgICAgICAgICAgICAgIHNlbGYucGF0aHMuYXBwZW5kbGVmdChwYXRo
KQotICAgICAgICAgICAgICAgIHNlbGYudGltZSArPSBwYXRoLnRpbWUKLQotICAgICAgICAgICAg
ZGVmIGFwcGVuZChzZWxmLCBwYXRoKToKLSAgICAgICAgICAgICAgICAiIiJBZGQgYSBQYXRoRGF0
YSBvYmplY3QgdG8gdGhlIGVuZCBvZiB0aGUgY2h1bmsiIiIKLSAgICAgICAgICAgICAgICBzZWxm
LnBhdGhzLmFwcGVuZChwYXRoKQotICAgICAgICAgICAgICAgIHNlbGYudGltZSArPSBwYXRoLnRp
bWUKLQotICAgICAgICAgICAgZGVmIHBvcChzZWxmKToKLSAgICAgICAgICAgICAgICAiIiJSZW1v
dmUgUGF0aERhdGEgb2JqZWN0IGZyb20gdGhlIGVuZCBvZiB0aGUgY2h1bmsiIiIKLSAgICAgICAg
ICAgICAgICBhc3NlcnQgbGVuKHNlbGYucGF0aHMpID4gMQotICAgICAgICAgICAgICAgIHNlbGYu
dGltZSAtPSBzZWxmLnBhdGhzWy0xXS50aW1lCi0gICAgICAgICAgICAgICAgcmV0dXJuIHNlbGYu
cGF0aHMucG9wKCkKLQotICAgICAgICAgICAgZGVmIHBvcGxlZnQoc2VsZik6Ci0gICAgICAgICAg
ICAgICAgIiIiUmVtb3ZlIFBhdGhEYXRhIG9iamVjdCBmcm9tIHRoZSBzdGFydCBvZiB0aGUgY2h1
bmsiIiIKLSAgICAgICAgICAgICAgICBhc3NlcnQgbGVuKHNlbGYucGF0aHMpID4gMQotICAgICAg
ICAgICAgICAgIHNlbGYudGltZSAtPSBzZWxmLnBhdGhzWzBdLnRpbWUKLSAgICAgICAgICAgICAg
ICByZXR1cm4gc2VsZi5wYXRocy5wb3BsZWZ0KCkKLQotICAgICAgICAgICAgQHByb3BlcnR5Ci0g
ICAgICAgICAgICBkZWYgYmFkbmVzcyhzZWxmXyk6ICAjIG5vcWE6IE44MDUKLSAgICAgICAgICAg
ICAgICAiIiJCYWRuZXNzIG1ldHJpYyBmb3IgdGhpcyBjaHVuayIiIgotICAgICAgICAgICAgICAg
IHJldHVybiBzZWxmLl9iYWRuZXNzKHNlbGZfLnRpbWUpCi0KLSAgICAgICAgaW5pdGlhbF9zaXpl
ID0gbGVuKGJ5X2RpcikgLyBzZWxmLnRvdGFsX2NodW5rcwotICAgICAgICBjaHVua19ib3VuZGFy
aWVzID0gW2luaXRpYWxfc2l6ZSAqIGkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3Ig
aSBpbiB4cmFuZ2Uoc2VsZi50b3RhbF9jaHVua3MpXSArIFtsZW4oYnlfZGlyKV0KLQotICAgICAg
ICBjaHVua3MgPSBPcmRlcmVkRGljdCgpCi0gICAgICAgIGZvciBpLCBsb3dlciBpbiBlbnVtZXJh
dGUoY2h1bmtfYm91bmRhcmllc1s6LTFdKToKLSAgICAgICAgICAgIHVwcGVyID0gY2h1bmtfYm91
bmRhcmllc1tpICsgMV0KLSAgICAgICAgICAgIHBhdGhzID0gYnlfZGlyLnZhbHVlcygpW2xvd2Vy
OnVwcGVyXQotICAgICAgICAgICAgY2h1bmtzW2ldID0gQ2h1bmsocGF0aHMsIGkpCi0KLSAgICAg
ICAgYXNzZXJ0IHNlbGYuX2FsbF90ZXN0cyhieV9kaXIpID09IHNlbGYuX2NodW5rZWRfdGVzdHMo
Y2h1bmtzKQotCi0gICAgICAgIHJldHVybiBjaHVua3MKLQotICAgIGRlZiBfdXBkYXRlX2NodW5r
cyhzZWxmLCBjaHVua3MpOgotICAgICAgICAiIiJSdW4gYSBzaW5nbGUgaXRlcmF0aW9uIG9mIHRo
ZSBjaHVuayB1cGRhdGUgYWxnb3JpdGhtLgotCi0gICAgICAgIDpwYXJhbSBjaHVua3M6IC0gTGlz
dCBvZiBjaHVua3MKLSAgICAgICAgIiIiCi0gICAgICAgICNUT0RPOiBjb25zaWRlciByZXBsYWNp
bmcgdGhpcyB3aXRoIGEgaGVhcAotICAgICAgICBzb3J0ZWRfY2h1bmtzID0gc29ydGVkKGNodW5r
cy52YWx1ZXMoKSwga2V5PWxhbWJkYSB4Oi14LmJhZG5lc3MpCi0gICAgICAgIGdvdF9pbXByb3Zl
bWVudCA9IEZhbHNlCi0gICAgICAgIGZvciBjaHVuayBpbiBzb3J0ZWRfY2h1bmtzOgotICAgICAg
ICAgICAgaWYgY2h1bmsudGltZSA8IHNlbGYuZXhwZWN0ZWRfdGltZToKLSAgICAgICAgICAgICAg
ICBmID0gc2VsZi5fbWF5YmVfYWRkCi0gICAgICAgICAgICBlbHNlOgotICAgICAgICAgICAgICAg
IGYgPSBzZWxmLl9tYXliZV9yZW1vdmUKLQotICAgICAgICAgICAgaWYgY2h1bmsuaW5kZXggPT0g
MDoKLSAgICAgICAgICAgICAgICBvcmRlciA9IFsibmV4dCJdCi0gICAgICAgICAgICBlbGlmIGNo
dW5rLmluZGV4ID09IHNlbGYudG90YWxfY2h1bmtzIC0gMToKLSAgICAgICAgICAgICAgICBvcmRl
ciA9IFsicHJldiJdCi0gICAgICAgICAgICBlbHNlOgotICAgICAgICAgICAgICAgIGlmIGNodW5r
LnRpbWUgPCBzZWxmLmV4cGVjdGVkX3RpbWU6Ci0gICAgICAgICAgICAgICAgICAgICMgRmlyc3Qg
dHJ5IHRvIGFkZCBhIHRlc3QgZnJvbSB0aGUgbmVpZ2hib3JpbmcgY2h1bmsgd2l0aCB0aGUKLSAg
ICAgICAgICAgICAgICAgICAgIyBncmVhdGVzdCB0b3RhbCB0aW1lCi0gICAgICAgICAgICAgICAg
ICAgIGlmIGNodW5rc1tjaHVuay5pbmRleCArIDFdLnRpbWUgPiBjaHVua3NbY2h1bmsuaW5kZXgg
LSAxXS50aW1lOgotICAgICAgICAgICAgICAgICAgICAgICAgb3JkZXIgPSBbIm5leHQiLCAicHJl
diJdCi0gICAgICAgICAgICAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAgICAgICAgICAgICBv
cmRlciA9IFsicHJldiIsICJuZXh0Il0KLSAgICAgICAgICAgICAgICBlbHNlOgotICAgICAgICAg
ICAgICAgICAgICAjIEZpcnN0IHRyeSB0byByZW1vdmUgYSB0ZXN0IGFuZCBhZGQgdG8gdGhlIG5l
aWdoYm9yaW5nIGNodW5rIHdpdGggdGhlCi0gICAgICAgICAgICAgICAgICAgICMgbG93ZXN0IHRv
dGFsIHRpbWUKLSAgICAgICAgICAgICAgICAgICAgaWYgY2h1bmtzW2NodW5rLmluZGV4ICsgMV0u
dGltZSA+IGNodW5rc1tjaHVuay5pbmRleCAtIDFdLnRpbWU6Ci0gICAgICAgICAgICAgICAgICAg
ICAgICBvcmRlciA9IFsicHJldiIsICJuZXh0Il0KLSAgICAgICAgICAgICAgICAgICAgZWxzZToK
LSAgICAgICAgICAgICAgICAgICAgICAgIG9yZGVyID0gWyJuZXh0IiwgInByZXYiXQotCi0gICAg
ICAgICAgICBmb3IgZGlyZWN0aW9uIGluIG9yZGVyOgotICAgICAgICAgICAgICAgIGlmIGYoY2h1
bmtzLCBjaHVuay5pbmRleCwgZGlyZWN0aW9uKToKLSAgICAgICAgICAgICAgICAgICAgZ290X2lt
cHJvdmVtZW50ID0gVHJ1ZQotICAgICAgICAgICAgICAgICAgICBicmVhawotCi0gICAgICAgICAg
ICBpZiBnb3RfaW1wcm92ZW1lbnQ6Ci0gICAgICAgICAgICAgICAgYnJlYWsKLQotICAgICAgICBy
ZXR1cm4gZ290X2ltcHJvdmVtZW50Ci0KLSAgICBkZWYgX2dldF90ZXN0cyhzZWxmLCBjaHVua3Mp
OgotICAgICAgICAiIiJSZXR1cm4gdGhlIGxpc3Qgb2YgdGVzdHMgY29ycmVzcG9uZGluZyB0byB0
aGUgY2h1bmsgbnVtYmVyIHdlIGFyZSBydW5uaW5nLgotCi0gICAgICAgIDpwYXJhbSBjaHVua3M6
IExpc3Qgb2YgY2h1bmtzIiIiCi0gICAgICAgIHRlc3RzID0gW10KLSAgICAgICAgZm9yIHBhdGgg
aW4gY2h1bmtzW3NlbGYuY2h1bmtfbnVtYmVyIC0gMV0ucGF0aHM6Ci0gICAgICAgICAgICB0ZXN0
cy5leHRlbmQocGF0aC50ZXN0cykKLQotICAgICAgICByZXR1cm4gdGVzdHMKLQotICAgIGRlZiBf
X2NhbGxfXyhzZWxmLCBtYW5pZmVzdF9pdGVyKToKLSAgICAgICAgbWFuaWZlc3QgPSBsaXN0KG1h
bmlmZXN0X2l0ZXIpCi0gICAgICAgIHRlc3RzID0gc2VsZi5fZ2V0X2NodW5rKG1hbmlmZXN0KQot
ICAgICAgICBmb3IgaXRlbSBpbiB0ZXN0czoKLSAgICAgICAgICAgIHlpZWxkIGl0ZW0KLQotCiBj
bGFzcyBUZXN0RmlsdGVyKG9iamVjdCk6Ci0gICAgZGVmIF9faW5pdF9fKHNlbGYsIHRlc3RfbWFu
aWZlc3RzLCBpbmNsdWRlPU5vbmUsIGV4Y2x1ZGU9Tm9uZSwgbWFuaWZlc3RfcGF0aD1Ob25lKToK
LSAgICAgICAgaWYgbWFuaWZlc3RfcGF0aCBpcyBub3QgTm9uZSBhbmQgaW5jbHVkZSBpcyBOb25l
OgotICAgICAgICAgICAgc2VsZi5tYW5pZmVzdCA9IG1hbmlmZXN0aW5jbHVkZS5nZXRfbWFuaWZl
c3QobWFuaWZlc3RfcGF0aCkKLSAgICAgICAgZWxzZToKKyAgICAiIiJDYWxsYWJsZSB0aGF0IHJl
c3RyaWN0cyB0aGUgc2V0IG9mIHRlc3RzIGluIGEgZ2l2ZW4gbWFuaWZlc3QgYWNjb3JkaW5nCisg
ICAgdG8gaW5pdGlhbCBjcml0ZXJpYSIiIgorICAgIGRlZiBfX2luaXRfXyhzZWxmLCB0ZXN0X21h
bmlmZXN0cywgaW5jbHVkZT1Ob25lLCBleGNsdWRlPU5vbmUsIG1hbmlmZXN0X3BhdGg9Tm9uZSwg
ZXhwbGljaXQ9RmFsc2UpOgorICAgICAgICBpZiBtYW5pZmVzdF9wYXRoIGlzIE5vbmUgb3IgaW5j
bHVkZSBvciBleHBsaWNpdDoKICAgICAgICAgICAgIHNlbGYubWFuaWZlc3QgPSBtYW5pZmVzdGlu
Y2x1ZGUuSW5jbHVkZU1hbmlmZXN0LmNyZWF0ZSgpCiAgICAgICAgICAgICBzZWxmLm1hbmlmZXN0
LnNldF9kZWZhdWx0cygpCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBzZWxmLm1hbmlmZXN0
ID0gbWFuaWZlc3RpbmNsdWRlLmdldF9tYW5pZmVzdChtYW5pZmVzdF9wYXRoKQogCi0gICAgICAg
IGlmIGluY2x1ZGU6CisgICAgICAgIGlmIGluY2x1ZGUgb3IgZXhwbGljaXQ6CiAgICAgICAgICAg
ICBzZWxmLm1hbmlmZXN0LnNldCgic2tpcCIsICJ0cnVlIikKKworICAgICAgICBpZiBpbmNsdWRl
OgogICAgICAgICAgICAgZm9yIGl0ZW0gaW4gaW5jbHVkZToKICAgICAgICAgICAgICAgICBzZWxm
Lm1hbmlmZXN0LmFkZF9pbmNsdWRlKHRlc3RfbWFuaWZlc3RzLCBpdGVtKQogCkBAIC0zNjcsNiAr
OTksNyBAQCBjbGFzcyBUZXN0RmlsdGVyKG9iamVjdCk6CiAgICAgICAgICAgICBpZiBpbmNsdWRl
X3Rlc3RzOgogICAgICAgICAgICAgICAgIHlpZWxkIHRlc3RfdHlwZSwgdGVzdF9wYXRoLCBpbmNs
dWRlX3Rlc3RzCiAKKwogY2xhc3MgVGFnRmlsdGVyKG9iamVjdCk6CiAgICAgZGVmIF9faW5pdF9f
KHNlbGYsIHRhZ3MpOgogICAgICAgICBzZWxmLnRhZ3MgPSBzZXQodGFncykKQEAgLTM3OCwxMyAr
MTExLDEzIEBAIGNsYXNzIFRhZ0ZpbHRlcihvYmplY3QpOgogCiAKIGNsYXNzIE1hbmlmZXN0TG9h
ZGVyKG9iamVjdCk6Ci0gICAgZGVmIF9faW5pdF9fKHNlbGYsIHRlc3RfcGF0aHMsIGZvcmNlX21h
bmlmZXN0X3VwZGF0ZT1GYWxzZSwgbWFuaWZlc3RfZG93bmxvYWQ9RmFsc2UsIHR5cGVzPU5vbmUs
IG1ldGFfZmlsdGVycz1Ob25lKToKKyAgICBkZWYgX19pbml0X18oc2VsZiwgdGVzdF9wYXRocywg
Zm9yY2VfbWFuaWZlc3RfdXBkYXRlPUZhbHNlLCBtYW5pZmVzdF9kb3dubG9hZD1GYWxzZSwKKyAg
ICAgICAgICAgICAgICAgdHlwZXM9Tm9uZSk6CiAgICAgICAgIGRvX2RlbGF5ZWRfaW1wb3J0cygp
CiAgICAgICAgIHNlbGYudGVzdF9wYXRocyA9IHRlc3RfcGF0aHMKICAgICAgICAgc2VsZi5mb3Jj
ZV9tYW5pZmVzdF91cGRhdGUgPSBmb3JjZV9tYW5pZmVzdF91cGRhdGUKICAgICAgICAgc2VsZi5t
YW5pZmVzdF9kb3dubG9hZCA9IG1hbmlmZXN0X2Rvd25sb2FkCiAgICAgICAgIHNlbGYudHlwZXMg
PSB0eXBlcwotICAgICAgICBzZWxmLm1ldGFfZmlsdGVycyA9IG1ldGFfZmlsdGVycyBvciBbXQog
ICAgICAgICBzZWxmLmxvZ2dlciA9IHN0cnVjdHVyZWQuZ2V0X2RlZmF1bHRfbG9nZ2VyKCkKICAg
ICAgICAgaWYgc2VsZi5sb2dnZXIgaXMgTm9uZToKICAgICAgICAgICAgIHNlbGYubG9nZ2VyID0g
c3RydWN0dXJlZC5zdHJ1Y3R1cmVkbG9nLlN0cnVjdHVyZWRMb2dnZXIoIk1hbmlmZXN0TG9hZGVy
IikKQEAgLTM5OSw1NCArMTMyLDEzIEBAIGNsYXNzIE1hbmlmZXN0TG9hZGVyKG9iamVjdCk6CiAg
ICAgICAgICAgICBydlttYW5pZmVzdF9maWxlXSA9IHBhdGhfZGF0YQogICAgICAgICByZXR1cm4g
cnYKIAotICAgIGRlZiBjcmVhdGVfbWFuaWZlc3Qoc2VsZiwgbWFuaWZlc3RfcGF0aCwgdGVzdHNf
cGF0aCwgdXJsX2Jhc2U9Ii8iKToKLSAgICAgICAgc2VsZi51cGRhdGVfbWFuaWZlc3QobWFuaWZl
c3RfcGF0aCwgdGVzdHNfcGF0aCwgdXJsX2Jhc2UsIHJlY3JlYXRlPVRydWUsCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGRvd25sb2FkPXNlbGYubWFuaWZlc3RfZG93bmxvYWQpCi0KLSAg
ICBkZWYgdXBkYXRlX21hbmlmZXN0KHNlbGYsIG1hbmlmZXN0X3BhdGgsIHRlc3RzX3BhdGgsIHVy
bF9iYXNlPSIvIiwKLSAgICAgICAgICAgICAgICAgICAgICAgIHJlY3JlYXRlPUZhbHNlLCBkb3du
bG9hZD1GYWxzZSk6Ci0gICAgICAgIHNlbGYubG9nZ2VyLmluZm8oIlVwZGF0aW5nIHRlc3QgbWFu
aWZlc3QgJXMiICUgbWFuaWZlc3RfcGF0aCkKLSAgICAgICAgbWFuaWZlc3RfbG9nLnNldHVwKCkK
LQotICAgICAgICBqc29uX2RhdGEgPSBOb25lCi0gICAgICAgIGlmIGRvd25sb2FkOgotICAgICAg
ICAgICAgIyBUT0RPOiBtYWtlIHRoaXMgbm90IGdpdGh1Yi1zcGVjaWZpYworICAgIGRlZiBsb2Fk
X21hbmlmZXN0KHNlbGYsIHRlc3RzX3BhdGgsIG1hbmlmZXN0X3BhdGgsIG1ldGFkYXRhX3BhdGgs
IHVybF9iYXNlPSIvIiwgKiprd2FyZ3MpOgorICAgICAgICBjYWNoZV9yb290ID0gb3MucGF0aC5q
b2luKG1ldGFkYXRhX3BhdGgsICIuY2FjaGUiKQorICAgICAgICBpZiBzZWxmLm1hbmlmZXN0X2Rv
d25sb2FkOgogICAgICAgICAgICAgZG93bmxvYWRfZnJvbV9naXRodWIobWFuaWZlc3RfcGF0aCwg
dGVzdHNfcGF0aCkKLQotICAgICAgICBpZiBub3QgcmVjcmVhdGU6Ci0gICAgICAgICAgICB0cnk6
Ci0gICAgICAgICAgICAgICAgd2l0aCBvcGVuKG1hbmlmZXN0X3BhdGgpIGFzIGY6Ci0gICAgICAg
ICAgICAgICAgICAgIGpzb25fZGF0YSA9IGpzb24ubG9hZChmKQotICAgICAgICAgICAgZXhjZXB0
IElPRXJyb3I6Ci0gICAgICAgICAgICAgICAgc2VsZi5sb2dnZXIuaW5mbygiVW5hYmxlIHRvIGZp
bmQgdGVzdCBtYW5pZmVzdCIpCi0gICAgICAgICAgICBleGNlcHQgVmFsdWVFcnJvcjoKLSAgICAg
ICAgICAgICAgICBzZWxmLmxvZ2dlci5pbmZvKCJVbmFibGUgdG8gcGFyc2UgdGVzdCBtYW5pZmVz
dCIpCi0KLSAgICAgICAgaWYgbm90IGpzb25fZGF0YToKLSAgICAgICAgICAgIHNlbGYubG9nZ2Vy
LmluZm8oIkNyZWF0aW5nIHRlc3QgbWFuaWZlc3QiKQotICAgICAgICAgICAgbWFuaWZlc3RfZmls
ZSA9IG1hbmlmZXN0Lk1hbmlmZXN0KHVybF9iYXNlKQotICAgICAgICBlbHNlOgotICAgICAgICAg
ICAgdHJ5OgotICAgICAgICAgICAgICAgIG1hbmlmZXN0X2ZpbGUgPSBtYW5pZmVzdC5NYW5pZmVz
dC5mcm9tX2pzb24odGVzdHNfcGF0aCwganNvbl9kYXRhKQotICAgICAgICAgICAgZXhjZXB0IG1h
bmlmZXN0Lk1hbmlmZXN0VmVyc2lvbk1pc21hdGNoOgotICAgICAgICAgICAgICAgIG1hbmlmZXN0
X2ZpbGUgPSBtYW5pZmVzdC5NYW5pZmVzdCh1cmxfYmFzZSkKLQotICAgICAgICBtYW5pZmVzdF91
cGRhdGUudXBkYXRlKHRlc3RzX3BhdGgsIG1hbmlmZXN0X2ZpbGUsIFRydWUpCi0KLSAgICAgICAg
bWFuaWZlc3Qud3JpdGUobWFuaWZlc3RfZmlsZSwgbWFuaWZlc3RfcGF0aCkKLQotICAgIGRlZiBs
b2FkX21hbmlmZXN0KHNlbGYsIHRlc3RzX3BhdGgsIG1hbmlmZXN0X3BhdGgsIHVybF9iYXNlPSIv
IiwgKiprd2FyZ3MpOgotICAgICAgICBpZiAobm90IG9zLnBhdGguZXhpc3RzKG1hbmlmZXN0X3Bh
dGgpIG9yCi0gICAgICAgICAgICBzZWxmLmZvcmNlX21hbmlmZXN0X3VwZGF0ZSk6Ci0gICAgICAg
ICAgICBzZWxmLnVwZGF0ZV9tYW5pZmVzdChtYW5pZmVzdF9wYXRoLCB0ZXN0c19wYXRoLCB1cmxf
YmFzZSwgZG93bmxvYWQ9c2VsZi5tYW5pZmVzdF9kb3dubG9hZCkKLSAgICAgICAgbWFuaWZlc3Rf
ZmlsZSA9IG1hbmlmZXN0LmxvYWQodGVzdHNfcGF0aCwgbWFuaWZlc3RfcGF0aCwgdHlwZXM9c2Vs
Zi50eXBlcywgbWV0YV9maWx0ZXJzPXNlbGYubWV0YV9maWx0ZXJzKQotICAgICAgICBpZiBtYW5p
ZmVzdF9maWxlLnVybF9iYXNlICE9IHVybF9iYXNlOgotICAgICAgICAgICAgc2VsZi5sb2dnZXIu
aW5mbygiVXBkYXRpbmcgdXJsX2Jhc2UgaW4gbWFuaWZlc3QgZnJvbSAlcyB0byAlcyIgJSAobWFu
aWZlc3RfZmlsZS51cmxfYmFzZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVybF9iYXNlKSkKLSAg
ICAgICAgICAgIG1hbmlmZXN0X2ZpbGUudXJsX2Jhc2UgPSB1cmxfYmFzZQotICAgICAgICAgICAg
bWFuaWZlc3Qud3JpdGUobWFuaWZlc3RfZmlsZSwgbWFuaWZlc3RfcGF0aCkKLQotICAgICAgICBy
ZXR1cm4gbWFuaWZlc3RfZmlsZQorICAgICAgICByZXR1cm4gbWFuaWZlc3QubG9hZF9hbmRfdXBk
YXRlKHRlc3RzX3BhdGgsIG1hbmlmZXN0X3BhdGgsIHVybF9iYXNlLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGNhY2hlX3Jvb3Q9Y2FjaGVfcm9vdCwgdXBkYXRlPXNl
bGYuZm9yY2VfbWFuaWZlc3RfdXBkYXRlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHR5cGVzPXNlbGYudHlwZXMpCiAKIAogZGVmIGl0ZXJmaWx0ZXIoZmlsdGVycywg
aXRlcik6CkBAIC00NTcsMTIgKzE0OSwxMiBAQCBkZWYgaXRlcmZpbHRlcihmaWx0ZXJzLCBpdGVy
KToKIAogCiBjbGFzcyBUZXN0TG9hZGVyKG9iamVjdCk6CisgICAgIiIiTG9hZHMgdGVzdHMgYWNj
b3JkaW5nIHRvIGEgV1BUIG1hbmlmZXN0IGFuZCBhbnkgYXNzb2NpYXRlZCBleHBlY3RhdGlvbiBm
aWxlcyIiIgogICAgIGRlZiBfX2luaXRfXyhzZWxmLAogICAgICAgICAgICAgICAgICB0ZXN0X21h
bmlmZXN0cywKICAgICAgICAgICAgICAgICAgdGVzdF90eXBlcywKICAgICAgICAgICAgICAgICAg
cnVuX2luZm8sCiAgICAgICAgICAgICAgICAgIG1hbmlmZXN0X2ZpbHRlcnM9Tm9uZSwKLSAgICAg
ICAgICAgICAgICAgbWV0YV9maWx0ZXJzPU5vbmUsCiAgICAgICAgICAgICAgICAgIGNodW5rX3R5
cGU9Im5vbmUiLAogICAgICAgICAgICAgICAgICB0b3RhbF9jaHVua3M9MSwKICAgICAgICAgICAg
ICAgICAgY2h1bmtfbnVtYmVyPTEsCkBAIC00NzMsNyArMTY1LDYgQEAgY2xhc3MgVGVzdExvYWRl
cihvYmplY3QpOgogICAgICAgICBzZWxmLnJ1bl9pbmZvID0gcnVuX2luZm8KIAogICAgICAgICBz
ZWxmLm1hbmlmZXN0X2ZpbHRlcnMgPSBtYW5pZmVzdF9maWx0ZXJzIGlmIG1hbmlmZXN0X2ZpbHRl
cnMgaXMgbm90IE5vbmUgZWxzZSBbXQotICAgICAgICBzZWxmLm1ldGFfZmlsdGVycyA9IG1ldGFf
ZmlsdGVycyBpZiBtZXRhX2ZpbHRlcnMgaXMgbm90IE5vbmUgZWxzZSBbXQogCiAgICAgICAgIHNl
bGYubWFuaWZlc3RzID0gdGVzdF9tYW5pZmVzdHMKICAgICAgICAgc2VsZi50ZXN0cyA9IE5vbmUK
QEAgLTQ4Nyw5ICsxNzgsOCBAQCBjbGFzcyBUZXN0TG9hZGVyKG9iamVjdCk6CiAKICAgICAgICAg
c2VsZi5jaHVua2VyID0geyJub25lIjogVW5jaHVua2VkLAogICAgICAgICAgICAgICAgICAgICAg
ICAgImhhc2giOiBIYXNoQ2h1bmtlciwKLSAgICAgICAgICAgICAgICAgICAgICAgICJkaXJfaGFz
aCI6IERpcmVjdG9yeUhhc2hDaHVua2VyLAotICAgICAgICAgICAgICAgICAgICAgICAgImVxdWFs
X3RpbWUiOiBFcXVhbFRpbWVDaHVua2VyfVtjaHVua190eXBlXSh0b3RhbF9jaHVua3MsCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGNodW5rX251bWJlcikKKyAgICAgICAgICAgICAgICAgICAgICAgICJkaXJfaGFzaCI6
IERpcmVjdG9yeUhhc2hDaHVua2VyfVtjaHVua190eXBlXSh0b3RhbF9jaHVua3MsCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgY2h1bmtfbnVtYmVyKQogCiAgICAgICAgIHNlbGYuX3Rlc3RfaWRzID0gTm9uZQogCkBA
IC01MDYsMTIgKzE5NiwxMiBAQCBjbGFzcyBUZXN0TG9hZGVyKG9iamVjdCk6CiAgICAgICAgICAg
ICAgICAgICAgIHNlbGYuX3Rlc3RfaWRzICs9IFtpdGVtLmlkIGZvciBpdGVtIGluIHRlc3RfZGlj
dFt0ZXN0X3R5cGVdXQogICAgICAgICByZXR1cm4gc2VsZi5fdGVzdF9pZHMKIAotICAgIGRlZiBn
ZXRfdGVzdChzZWxmLCBtYW5pZmVzdF90ZXN0LCBpbmhlcml0X21ldGFkYXRhLCB0ZXN0X21ldGFk
YXRhKToKKyAgICBkZWYgZ2V0X3Rlc3Qoc2VsZiwgbWFuaWZlc3RfZmlsZSwgbWFuaWZlc3RfdGVz
dCwgaW5oZXJpdF9tZXRhZGF0YSwgdGVzdF9tZXRhZGF0YSk6CiAgICAgICAgIGlmIHRlc3RfbWV0
YWRhdGEgaXMgbm90IE5vbmU6CiAgICAgICAgICAgICBpbmhlcml0X21ldGFkYXRhLmFwcGVuZCh0
ZXN0X21ldGFkYXRhKQogICAgICAgICAgICAgdGVzdF9tZXRhZGF0YSA9IHRlc3RfbWV0YWRhdGEu
Z2V0X3Rlc3QobWFuaWZlc3RfdGVzdC5pZCkKIAotICAgICAgICByZXR1cm4gd3B0dGVzdC5mcm9t
X21hbmlmZXN0KG1hbmlmZXN0X3Rlc3QsIGluaGVyaXRfbWV0YWRhdGEsIHRlc3RfbWV0YWRhdGEp
CisgICAgICAgIHJldHVybiB3cHR0ZXN0LmZyb21fbWFuaWZlc3QobWFuaWZlc3RfZmlsZSwgbWFu
aWZlc3RfdGVzdCwgaW5oZXJpdF9tZXRhZGF0YSwgdGVzdF9tZXRhZGF0YSkKIAogICAgIGRlZiBs
b2FkX2Rpcl9tZXRhZGF0YShzZWxmLCB0ZXN0X21hbmlmZXN0LCBtZXRhZGF0YV9wYXRoLCB0ZXN0
X3BhdGgpOgogICAgICAgICBydiA9IFtdCkBAIC01MzQsMjcgKzIyNCwyNCBAQCBjbGFzcyBUZXN0
TG9hZGVyKG9iamVjdCk6CiAKICAgICBkZWYgaXRlcl90ZXN0cyhzZWxmKToKICAgICAgICAgbWFu
aWZlc3RfaXRlbXMgPSBbXQorICAgICAgICBtYW5pZmVzdHNfYnlfdXJsX2Jhc2UgPSB7fQogCiAg
ICAgICAgIGZvciBtYW5pZmVzdCBpbiBzb3J0ZWQoc2VsZi5tYW5pZmVzdHMua2V5cygpLCBrZXk9
bGFtYmRhIHg6eC51cmxfYmFzZSk6CiAgICAgICAgICAgICBtYW5pZmVzdF9pdGVyID0gaXRlcmZp
bHRlcihzZWxmLm1hbmlmZXN0X2ZpbHRlcnMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBtYW5pZmVzdC5pdGVydHlwZXMoKnNlbGYudGVzdF90eXBlcykpCiAgICAgICAg
ICAgICBtYW5pZmVzdF9pdGVtcy5leHRlbmQobWFuaWZlc3RfaXRlcikKKyAgICAgICAgICAgIG1h
bmlmZXN0c19ieV91cmxfYmFzZVttYW5pZmVzdC51cmxfYmFzZV0gPSBtYW5pZmVzdAogCiAgICAg
ICAgIGlmIHNlbGYuY2h1bmtlciBpcyBub3QgTm9uZToKICAgICAgICAgICAgIG1hbmlmZXN0X2l0
ZW1zID0gc2VsZi5jaHVua2VyKG1hbmlmZXN0X2l0ZW1zKQogCiAgICAgICAgIGZvciB0ZXN0X3R5
cGUsIHRlc3RfcGF0aCwgdGVzdHMgaW4gbWFuaWZlc3RfaXRlbXM6Ci0gICAgICAgICAgICBtYW5p
ZmVzdF9maWxlID0gaXRlcih0ZXN0cykubmV4dCgpLm1hbmlmZXN0CisgICAgICAgICAgICBtYW5p
ZmVzdF9maWxlID0gbWFuaWZlc3RzX2J5X3VybF9iYXNlW2l0ZXIodGVzdHMpLm5leHQoKS51cmxf
YmFzZV0KICAgICAgICAgICAgIG1ldGFkYXRhX3BhdGggPSBzZWxmLm1hbmlmZXN0c1ttYW5pZmVz
dF9maWxlXVsibWV0YWRhdGFfcGF0aCJdCi0gICAgICAgICAgICBpbmhlcml0X21ldGFkYXRhLCB0
ZXN0X21ldGFkYXRhID0gc2VsZi5sb2FkX21ldGFkYXRhKG1hbmlmZXN0X2ZpbGUsIG1ldGFkYXRh
X3BhdGgsIHRlc3RfcGF0aCkKLQotICAgICAgICAgICAgZm9yIHRlc3QgaW4gaXRlcmZpbHRlcihz
ZWxmLm1ldGFfZmlsdGVycywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2Vs
Zi5pdGVyX3dwdHRlc3QoaW5oZXJpdF9tZXRhZGF0YSwgdGVzdF9tZXRhZGF0YSwgdGVzdHMpKToK
LSAgICAgICAgICAgICAgICB5aWVsZCB0ZXN0X3BhdGgsIHRlc3RfdHlwZSwgdGVzdAogCi0gICAg
ZGVmIGl0ZXJfd3B0dGVzdChzZWxmLCBpbmhlcml0X21ldGFkYXRhLCB0ZXN0X21ldGFkYXRhLCB0
ZXN0cyk6Ci0gICAgICAgIGZvciBtYW5pZmVzdF90ZXN0IGluIHRlc3RzOgotICAgICAgICAgICAg
eWllbGQgc2VsZi5nZXRfdGVzdChtYW5pZmVzdF90ZXN0LCBpbmhlcml0X21ldGFkYXRhLCB0ZXN0
X21ldGFkYXRhKQorICAgICAgICAgICAgaW5oZXJpdF9tZXRhZGF0YSwgdGVzdF9tZXRhZGF0YSA9
IHNlbGYubG9hZF9tZXRhZGF0YShtYW5pZmVzdF9maWxlLCBtZXRhZGF0YV9wYXRoLCB0ZXN0X3Bh
dGgpCisgICAgICAgICAgICBmb3IgdGVzdCBpbiB0ZXN0czoKKyAgICAgICAgICAgICAgICB5aWVs
ZCB0ZXN0X3BhdGgsIHRlc3RfdHlwZSwgc2VsZi5nZXRfdGVzdChtYW5pZmVzdF9maWxlLCB0ZXN0
LCBpbmhlcml0X21ldGFkYXRhLCB0ZXN0X21ldGFkYXRhKQogCiAgICAgZGVmIF9sb2FkX3Rlc3Rz
KHNlbGYpOgogICAgICAgICAiIiJSZWFkIGluIHRoZSB0ZXN0cyBmcm9tIHRoZSBtYW5pZmVzdCBm
aWxlIGFuZCBhZGQgdGhlbSB0byBhIHF1ZXVlIiIiCkBAIC01OTMsOSArMjgwLDggQEAgY2xhc3Mg
VGVzdFNvdXJjZShvYmplY3QpOgogICAgICAgICBzZWxmLmN1cnJlbnRfbWV0YWRhdGEgPSBOb25l
CiAKICAgICBAYWJzdHJhY3RtZXRob2QKLSAgICAjIG5vcWE6IE44MDUKLSAgICAjQGNsYXNzbWV0
aG9kIChkb2Vzbid0IGNvbXBvc2Ugd2l0aCBAYWJzdHJhY3RtZXRob2QpCi0gICAgZGVmIG1ha2Vf
cXVldWUoY2xzLCB0ZXN0cywgKiprd2FyZ3MpOgorICAgICNAY2xhc3NtZXRob2QgKGRvZXNuJ3Qg
Y29tcG9zZSB3aXRoIEBhYnN0cmFjdG1ldGhvZCBpbiA8IDMuMykKKyAgICBkZWYgbWFrZV9xdWV1
ZShjbHMsIHRlc3RzLCAqKmt3YXJncyk6ICAjIG5vcWE6IE44MDUKICAgICAgICAgcGFzcwogCiAg
ICAgQGNsYXNzbWV0aG9kCkBAIC02NjMsNyArMzQ5LDcgQEAgY2xhc3MgUGF0aEdyb3VwZWRTb3Vy
Y2UoR3JvdXBlZFNvdXJjZSk6CiAgICAgICAgIGRlcHRoID0ga3dhcmdzLmdldCgiZGVwdGgiKQog
ICAgICAgICBpZiBkZXB0aCBpcyBUcnVlIG9yIGRlcHRoID09IDA6CiAgICAgICAgICAgICBkZXB0
aCA9IE5vbmUKLSAgICAgICAgcGF0aCA9IHVybHBhcnNlLnVybHNwbGl0KHRlc3QudXJsKS5wYXRo
LnNwbGl0KCIvIilbMTotMV1bOmRlcHRoXQorICAgICAgICBwYXRoID0gdXJsc3BsaXQodGVzdC51
cmwpLnBhdGguc3BsaXQoIi8iKVsxOi0xXVs6ZGVwdGhdCiAgICAgICAgIHJ2ID0gcGF0aCAhPSBz
dGF0ZS5nZXQoInByZXZfcGF0aCIpCiAgICAgICAgIHN0YXRlWyJwcmV2X3BhdGgiXSA9IHBhdGgK
ICAgICAgICAgcmV0dXJuIHJ2CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvdGVzdHJ1bm5lci5w
eSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0
cnVubmVyL3dwdHJ1bm5lci90ZXN0cnVubmVyLnB5CmluZGV4IDQ2ZDY3ZTNjOTgyM2IxNDQ1ZWU0
NzJhYTYyYmE5M2RjYWRmNjIxYTcuLjhkZWNlMjBhOGU5M2UyNzkyMDRjY2ZlZTcwZjA3Y2U4YThk
ZWJhYjMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci90ZXN0cnVubmVyLnB5CisrKyBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dw
dHJ1bm5lci90ZXN0cnVubmVyLnB5CkBAIC0zLDE2ICszLDI3IEBAIGZyb20gX19mdXR1cmVfXyBp
bXBvcnQgdW5pY29kZV9saXRlcmFscwogaW1wb3J0IG11bHRpcHJvY2Vzc2luZwogaW1wb3J0IHRo
cmVhZGluZwogaW1wb3J0IHRyYWNlYmFjawotZnJvbSBRdWV1ZSBpbXBvcnQgRW1wdHkKK2Zyb20g
c2l4Lm1vdmVzLnF1ZXVlIGltcG9ydCBFbXB0eQogZnJvbSBjb2xsZWN0aW9ucyBpbXBvcnQgbmFt
ZWR0dXBsZQogZnJvbSBtdWx0aXByb2Nlc3NpbmcgaW1wb3J0IFByb2Nlc3MsIGN1cnJlbnRfcHJv
Y2VzcywgUXVldWUKIAotZnJvbSBtb3psb2cgaW1wb3J0IHN0cnVjdHVyZWRsb2cKK2Zyb20gbW96
bG9nIGltcG9ydCBzdHJ1Y3R1cmVkbG9nLCBjYXB0dXJlCiAKICMgU3BlY2lhbCB2YWx1ZSB1c2Vk
IGFzIGEgc2VudGluYWwgaW4gdmFyaW91cyBjb21tYW5kcwogU3RvcCA9IG9iamVjdCgpCiAKIAor
ZGVmIHJlbGVhc2VfbW96bG9nX2xvY2soKToKKyAgICB0cnk6CisgICAgICAgIGZyb20gbW96bG9n
LnN0cnVjdHVyZWRsb2cgaW1wb3J0IFN0cnVjdHVyZWRMb2dnZXIKKyAgICAgICAgdHJ5OgorICAg
ICAgICAgICAgU3RydWN0dXJlZExvZ2dlci5fbG9jay5yZWxlYXNlKCkKKyAgICAgICAgZXhjZXB0
IHRocmVhZGluZy5UaHJlYWRFcnJvcjoKKyAgICAgICAgICAgIHBhc3MKKyAgICBleGNlcHQgSW1w
b3J0RXJyb3I6CisgICAgICAgIHBhc3MKKworCiBjbGFzcyBNZXNzYWdlTG9nZ2VyKG9iamVjdCk6
CiAgICAgZGVmIF9faW5pdF9fKHNlbGYsIG1lc3NhZ2VfZnVuYyk6CiAgICAgICAgIHNlbGYuc2Vu
ZF9tZXNzYWdlID0gbWVzc2FnZV9mdW5jCkBAIC00MCwyNCArNTEsMjUgQEAgZm9yIGxldmVsX25h
bWUgaW4gc3RydWN0dXJlZGxvZy5sb2dfbGV2ZWxzOgogCiAKIGNsYXNzIFRlc3RSdW5uZXIob2Jq
ZWN0KToKLSAgICBkZWYgX19pbml0X18oc2VsZiwgY29tbWFuZF9xdWV1ZSwgcmVzdWx0X3F1ZXVl
LCBleGVjdXRvcik6Ci0gICAgICAgICIiIkNsYXNzIGltcGxlbWVudGluZyB0aGUgbWFpbiBsb29w
IGZvciBydW5uaW5nIHRlc3RzLgotCi0gICAgICAgIFRoaXMgY2xhc3MgZGVsZWdhdGVzIHRoZSBq
b2Igb2YgYWN0dWFsbHkgcnVubmluZyBhIHRlc3QgdG8gdGhlIGV4ZWN1dG9yCi0gICAgICAgIHRo
YXQgaXMgcGFzc2VkIGluLgotCi0gICAgICAgIDpwYXJhbSBjb21tYW5kX3F1ZXVlOiBzdWJwcm9j
ZXNzLlF1ZXVlIHVzZWQgdG8gc2VuZCBjb21tYW5kcyB0byB0aGUKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHByb2Nlc3MKLSAgICAgICAgOnBhcmFtIHJlc3VsdF9xdWV1ZTogc3VicHJv
Y2Vzcy5RdWV1ZSB1c2VkIHRvIHNlbmQgcmVzdWx0cyB0byB0aGUKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgcGFyZW50IFRlc3RNYW5hZ2VyIHByb2Nlc3MKLSAgICAgICAgOnBhcmFtIGV4
ZWN1dG9yOiBUZXN0RXhlY3V0b3Igb2JqZWN0IHRoYXQgd2lsbCBhY3R1YWxseSBydW4gYSB0ZXN0
LgotICAgICAgICAiIiIKKyAgICAiIiJDbGFzcyBpbXBsZW1lbnRpbmcgdGhlIG1haW4gbG9vcCBm
b3IgcnVubmluZyB0ZXN0cy4KKworICAgIFRoaXMgY2xhc3MgZGVsZWdhdGVzIHRoZSBqb2Igb2Yg
YWN0dWFsbHkgcnVubmluZyBhIHRlc3QgdG8gdGhlIGV4ZWN1dG9yCisgICAgdGhhdCBpcyBwYXNz
ZWQgaW4uCisKKyAgICA6cGFyYW0gbG9nZ2VyOiBTdHJ1Y3R1cmVkIGxvZ2dlcgorICAgIDpwYXJh
bSBjb21tYW5kX3F1ZXVlOiBzdWJwcm9jZXNzLlF1ZXVlIHVzZWQgdG8gc2VuZCBjb21tYW5kcyB0
byB0aGUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvY2VzcworICAgIDpwYXJhbSByZXN1
bHRfcXVldWU6IHN1YnByb2Nlc3MuUXVldWUgdXNlZCB0byBzZW5kIHJlc3VsdHMgdG8gdGhlCisg
ICAgICAgICAgICAgICAgICAgICAgICAgcGFyZW50IFRlc3RSdW5uZXJNYW5hZ2VyIHByb2Nlc3MK
KyAgICA6cGFyYW0gZXhlY3V0b3I6IFRlc3RFeGVjdXRvciBvYmplY3QgdGhhdCB3aWxsIGFjdHVh
bGx5IHJ1biBhIHRlc3QuCisgICAgIiIiCisgICAgZGVmIF9faW5pdF9fKHNlbGYsIGxvZ2dlciwg
Y29tbWFuZF9xdWV1ZSwgcmVzdWx0X3F1ZXVlLCBleGVjdXRvcik6CiAgICAgICAgIHNlbGYuY29t
bWFuZF9xdWV1ZSA9IGNvbW1hbmRfcXVldWUKICAgICAgICAgc2VsZi5yZXN1bHRfcXVldWUgPSBy
ZXN1bHRfcXVldWUKIAogICAgICAgICBzZWxmLmV4ZWN1dG9yID0gZXhlY3V0b3IKICAgICAgICAg
c2VsZi5uYW1lID0gY3VycmVudF9wcm9jZXNzKCkubmFtZQotICAgICAgICBzZWxmLmxvZ2dlciA9
IE1lc3NhZ2VMb2dnZXIoc2VsZi5zZW5kX21lc3NhZ2UpCisgICAgICAgIHNlbGYubG9nZ2VyID0g
bG9nZ2VyCiAKICAgICBkZWYgX19lbnRlcl9fKHNlbGYpOgogICAgICAgICByZXR1cm4gc2VsZgpA
QCAtNjcsNyArNzksMTMgQEAgY2xhc3MgVGVzdFJ1bm5lcihvYmplY3QpOgogCiAgICAgZGVmIHNl
dHVwKHNlbGYpOgogICAgICAgICBzZWxmLmxvZ2dlci5kZWJ1ZygiRXhlY3V0b3Igc2V0dXAiKQot
ICAgICAgICBzZWxmLmV4ZWN1dG9yLnNldHVwKHNlbGYpCisgICAgICAgIHRyeToKKyAgICAgICAg
ICAgIHNlbGYuZXhlY3V0b3Iuc2V0dXAoc2VsZikKKyAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbjoK
KyAgICAgICAgICAgICMgVGhlIGNhbGxlciBpcyByZXNwb25zaWJsZSBmb3IgbG9nZ2luZyB0aGUg
ZXhjZXB0aW9uIGlmIHJlcXVpcmVkCisgICAgICAgICAgICBzZWxmLnNlbmRfbWVzc2FnZSgiaW5p
dF9mYWlsZWQiKQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgc2VsZi5zZW5kX21lc3NhZ2Uo
ImluaXRfc3VjY2VlZGVkIikKICAgICAgICAgc2VsZi5sb2dnZXIuZGVidWcoIkV4ZWN1dG9yIHNl
dHVwIGRvbmUiKQogCiAgICAgZGVmIHRlYXJkb3duKHNlbGYpOgpAQCAtODIsNiArMTAwLDcgQEAg
Y2xhc3MgVGVzdFJ1bm5lcihvYmplY3QpOgogICAgICAgICB0aGUgYXNzb2NpYXRlZCBtZXRob2Rz
IiIiCiAgICAgICAgIHNlbGYuc2V0dXAoKQogICAgICAgICBjb21tYW5kcyA9IHsicnVuX3Rlc3Qi
OiBzZWxmLnJ1bl90ZXN0LAorICAgICAgICAgICAgICAgICAgICAicmVzZXQiOiBzZWxmLnJlc2V0
LAogICAgICAgICAgICAgICAgICAgICAic3RvcCI6IHNlbGYuc3RvcCwKICAgICAgICAgICAgICAg
ICAgICAgIndhaXQiOiBzZWxmLndhaXR9CiAgICAgICAgIHdoaWxlIFRydWU6CkBAIC05OSw2ICsx
MTgsOSBAQCBjbGFzcyBUZXN0UnVubmVyKG9iamVjdCk6CiAgICAgZGVmIHN0b3Aoc2VsZik6CiAg
ICAgICAgIHJldHVybiBTdG9wCiAKKyAgICBkZWYgcmVzZXQoc2VsZik6CisgICAgICAgIHNlbGYu
ZXhlY3V0b3IucmVzZXQoKQorCiAgICAgZGVmIHJ1bl90ZXN0KHNlbGYsIHRlc3QpOgogICAgICAg
ICB0cnk6CiAgICAgICAgICAgICByZXR1cm4gc2VsZi5leGVjdXRvci5ydW5fdGVzdCh0ZXN0KQpA
QCAtMTE3LDMwICsxMzksMzUgQEAgY2xhc3MgVGVzdFJ1bm5lcihvYmplY3QpOgogZGVmIHN0YXJ0
X3J1bm5lcihydW5uZXJfY29tbWFuZF9xdWV1ZSwgcnVubmVyX3Jlc3VsdF9xdWV1ZSwKICAgICAg
ICAgICAgICAgICAgZXhlY3V0b3JfY2xzLCBleGVjdXRvcl9rd2FyZ3MsCiAgICAgICAgICAgICAg
ICAgIGV4ZWN1dG9yX2Jyb3dzZXJfY2xzLCBleGVjdXRvcl9icm93c2VyX2t3YXJncywKLSAgICAg
ICAgICAgICAgICAgc3RvcF9mbGFnKToKKyAgICAgICAgICAgICAgICAgY2FwdHVyZV9zdGRpbywg
c3RvcF9mbGFnKToKICAgICAiIiJMYXVuY2ggYSBUZXN0UnVubmVyIGluIGEgbmV3IHByb2Nlc3Mi
IiIKLSAgICBkZWYgbG9nKGxldmVsLCBtc2cpOgotICAgICAgICBydW5uZXJfcmVzdWx0X3F1ZXVl
LnB1dCgoImxvZyIsIChsZXZlbCwgeyJtZXNzYWdlIjogbXNnfSkpKQorCisgICAgZGVmIHNlbmRf
bWVzc2FnZShjb21tYW5kLCAqYXJncyk6CisgICAgICAgIHJ1bm5lcl9yZXN1bHRfcXVldWUucHV0
KChjb21tYW5kLCBhcmdzKSkKIAogICAgIGRlZiBoYW5kbGVfZXJyb3IoZSk6Ci0gICAgICAgIGxv
ZygiY3JpdGljYWwiLCB0cmFjZWJhY2suZm9ybWF0X2V4YygpKQorICAgICAgICBsb2dnZXIuY3Jp
dGljYWwodHJhY2ViYWNrLmZvcm1hdF9leGMoKSkKICAgICAgICAgc3RvcF9mbGFnLnNldCgpCiAK
LSAgICB0cnk6Ci0gICAgICAgIGJyb3dzZXIgPSBleGVjdXRvcl9icm93c2VyX2NscygqKmV4ZWN1
dG9yX2Jyb3dzZXJfa3dhcmdzKQotICAgICAgICBleGVjdXRvciA9IGV4ZWN1dG9yX2Nscyhicm93
c2VyLCAqKmV4ZWN1dG9yX2t3YXJncykKLSAgICAgICAgd2l0aCBUZXN0UnVubmVyKHJ1bm5lcl9j
b21tYW5kX3F1ZXVlLCBydW5uZXJfcmVzdWx0X3F1ZXVlLCBleGVjdXRvcikgYXMgcnVubmVyOgot
ICAgICAgICAgICAgdHJ5OgotICAgICAgICAgICAgICAgIHJ1bm5lci5ydW4oKQotICAgICAgICAg
ICAgZXhjZXB0IEtleWJvYXJkSW50ZXJydXB0OgotICAgICAgICAgICAgICAgIHN0b3BfZmxhZy5z
ZXQoKQotICAgICAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBlOgotICAgICAgICAgICAgICAg
IGhhbmRsZV9lcnJvcihlKQotICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZToKLSAgICAgICAgaGFu
ZGxlX2Vycm9yKGUpCi0gICAgZmluYWxseToKLSAgICAgICAgcnVubmVyX2NvbW1hbmRfcXVldWUg
PSBOb25lCi0gICAgICAgIHJ1bm5lcl9yZXN1bHRfcXVldWUgPSBOb25lCisgICAgIyBFbnN1cmUg
dGhhdCB3aGVuIHdlIHN0YXJ0IHRoaXMgaW4gYSBuZXcgcHJvY2VzcyB3ZSBoYXZlIHRoZSBnbG9i
YWwgbG9jaworICAgICMgaW4gdGhlIGxvZ2dpbmcgbW9kdWxlIHVubG9ja2VkCisgICAgcmVsZWFz
ZV9tb3psb2dfbG9jaygpCisKKyAgICBsb2dnZXIgPSBNZXNzYWdlTG9nZ2VyKHNlbmRfbWVzc2Fn
ZSkKKworICAgIHdpdGggY2FwdHVyZS5DYXB0dXJlSU8obG9nZ2VyLCBjYXB0dXJlX3N0ZGlvKToK
KyAgICAgICAgdHJ5OgorICAgICAgICAgICAgYnJvd3NlciA9IGV4ZWN1dG9yX2Jyb3dzZXJfY2xz
KCoqZXhlY3V0b3JfYnJvd3Nlcl9rd2FyZ3MpCisgICAgICAgICAgICBleGVjdXRvciA9IGV4ZWN1
dG9yX2Nscyhicm93c2VyLCAqKmV4ZWN1dG9yX2t3YXJncykKKyAgICAgICAgICAgIHdpdGggVGVz
dFJ1bm5lcihsb2dnZXIsIHJ1bm5lcl9jb21tYW5kX3F1ZXVlLCBydW5uZXJfcmVzdWx0X3F1ZXVl
LCBleGVjdXRvcikgYXMgcnVubmVyOgorICAgICAgICAgICAgICAgIHRyeToKKyAgICAgICAgICAg
ICAgICAgICAgcnVubmVyLnJ1bigpCisgICAgICAgICAgICAgICAgZXhjZXB0IEtleWJvYXJkSW50
ZXJydXB0OgorICAgICAgICAgICAgICAgICAgICBzdG9wX2ZsYWcuc2V0KCkKKyAgICAgICAgICAg
ICAgICBleGNlcHQgRXhjZXB0aW9uIGFzIGU6CisgICAgICAgICAgICAgICAgICAgIGhhbmRsZV9l
cnJvcihlKQorICAgICAgICBleGNlcHQgRXhjZXB0aW9uIGFzIGU6CisgICAgICAgICAgICBoYW5k
bGVfZXJyb3IoZSkKIAogCiBtYW5hZ2VyX2NvdW50ID0gMApAQCAtMjEwLDcgKzIzNyw3IEBAIGNs
YXNzIEJyb3dzZXJNYW5hZ2VyKG9iamVjdCk6CiAgICAgICAgIHNlbGYuY29tbWFuZF9xdWV1ZS5w
dXQoKGNvbW1hbmQsIGFyZ3MpKQogCiAgICAgZGVmIGluaXRfdGltZW91dChzZWxmKToKLSAgICAg
ICAgIyBUaGlzIGlzIGNhbGxlZCBmcm9tIGEgc2VwZXJhdGUgdGhyZWFkLCBzbyB3ZSBzZW5kIGEg
bWVzc2FnZSB0byB0aGUKKyAgICAgICAgIyBUaGlzIGlzIGNhbGxlZCBmcm9tIGEgc2VwYXJhdGUg
dGhyZWFkLCBzbyB3ZSBzZW5kIGEgbWVzc2FnZSB0byB0aGUKICAgICAgICAgIyBtYWluIGxvb3Ag
c28gd2UgZ2V0IGJhY2sgb250byB0aGUgbWFuYWdlciB0aHJlYWQKICAgICAgICAgc2VsZi5sb2dn
ZXIuZGVidWcoImluaXRfZmFpbGVkIGNhbGxlZCBmcm9tIHRpbWVyIikKICAgICAgICAgc2VsZi5z
ZW5kX21lc3NhZ2UoImluaXRfZmFpbGVkIikKQEAgLTIyOSwxMSArMjU2LDggQEAgY2xhc3MgQnJv
d3Nlck1hbmFnZXIob2JqZWN0KToKICAgICAgICAgaWYgc2VsZi5pbml0X3RpbWVyIGlzIG5vdCBO
b25lOgogICAgICAgICAgICAgc2VsZi5pbml0X3RpbWVyLmNhbmNlbCgpCiAKLSAgICBkZWYgY2hl
Y2tfZm9yX2NyYXNoZXMoc2VsZik6Ci0gICAgICAgIHNlbGYuYnJvd3Nlci5jaGVja19mb3JfY3Jh
c2hlcygpCi0KLSAgICBkZWYgbG9nX2NyYXNoKHNlbGYsIHRlc3RfaWQpOgotICAgICAgICBzZWxm
LmJyb3dzZXIubG9nX2NyYXNoKHByb2Nlc3M9c2VsZi5icm93c2VyX3BpZCwgdGVzdD10ZXN0X2lk
KQorICAgIGRlZiBjaGVja19jcmFzaChzZWxmLCB0ZXN0X2lkKToKKyAgICAgICAgcmV0dXJuIHNl
bGYuYnJvd3Nlci5jaGVja19jcmFzaChwcm9jZXNzPXNlbGYuYnJvd3Nlcl9waWQsIHRlc3Q9dGVz
dF9pZCkKIAogICAgIGRlZiBpc19hbGl2ZShzZWxmKToKICAgICAgICAgcmV0dXJuIHNlbGYuYnJv
d3Nlci5pc19hbGl2ZSgpCkBAIC0yNTUsNyArMjc5LDggQEAgUnVubmVyTWFuYWdlclN0YXRlID0g
X1J1bm5lck1hbmFnZXJTdGF0ZSgpCiBjbGFzcyBUZXN0UnVubmVyTWFuYWdlcih0aHJlYWRpbmcu
VGhyZWFkKToKICAgICBkZWYgX19pbml0X18oc2VsZiwgc3VpdGVfbmFtZSwgdGVzdF9xdWV1ZSwg
dGVzdF9zb3VyY2VfY2xzLCBicm93c2VyX2NscywgYnJvd3Nlcl9rd2FyZ3MsCiAgICAgICAgICAg
ICAgICAgIGV4ZWN1dG9yX2NscywgZXhlY3V0b3Jfa3dhcmdzLCBzdG9wX2ZsYWcsIHJlcnVuPTEs
IHBhdXNlX2FmdGVyX3Rlc3Q9RmFsc2UsCi0gICAgICAgICAgICAgICAgIHBhdXNlX29uX3VuZXhw
ZWN0ZWQ9RmFsc2UsIHJlc3RhcnRfb25fdW5leHBlY3RlZD1UcnVlLCBkZWJ1Z19pbmZvPU5vbmUp
OgorICAgICAgICAgICAgICAgICBwYXVzZV9vbl91bmV4cGVjdGVkPUZhbHNlLCByZXN0YXJ0X29u
X3VuZXhwZWN0ZWQ9VHJ1ZSwgZGVidWdfaW5mbz1Ob25lLAorICAgICAgICAgICAgICAgICBjYXB0
dXJlX3N0ZGlvPVRydWUpOgogICAgICAgICAiIiJUaHJlYWQgdGhhdCBvd25zIGEgc2luZ2xlIFRl
c3RSdW5uZXIgcHJvY2VzcyBhbmQgYW55IHByb2Nlc3NlcyByZXF1aXJlZAogICAgICAgICBieSB0
aGUgVGVzdFJ1bm5lciAoZS5nLiB0aGUgRmlyZWZveCBiaW5hcnkpLgogCkBAIC0yOTksNyArMzI0
LDcgQEAgY2xhc3MgVGVzdFJ1bm5lck1hbmFnZXIodGhyZWFkaW5nLlRocmVhZCk6CiAKICAgICAg
ICAgc2VsZi50ZXN0X3J1bm5lcl9wcm9jID0gTm9uZQogCi0gICAgICAgIHRocmVhZGluZy5UaHJl
YWQuX19pbml0X18oc2VsZiwgbmFtZT0iVGhyZWFkLVRlc3RydW5uZXJNYW5hZ2VyLSVpIiAlIHNl
bGYubWFuYWdlcl9udW1iZXIpCisgICAgICAgIHRocmVhZGluZy5UaHJlYWQuX19pbml0X18oc2Vs
ZiwgbmFtZT0iVGVzdFJ1bm5lck1hbmFnZXItJWkiICUgc2VsZi5tYW5hZ2VyX251bWJlcikKICAg
ICAgICAgIyBUaGlzIGlzIHN0YXJ0ZWQgaW4gdGhlIGFjdHVhbCBuZXcgdGhyZWFkCiAgICAgICAg
IHNlbGYubG9nZ2VyID0gTm9uZQogCkBAIC0zMDksMTQgKzMzNCwxOCBAQCBjbGFzcyBUZXN0UnVu
bmVyTWFuYWdlcih0aHJlYWRpbmcuVGhyZWFkKToKICAgICAgICAgIyBUaGlzIG1heSBub3QgcmVh
bGx5IGJlIHdoYXQgd2Ugd2FudAogICAgICAgICBzZWxmLmRhZW1vbiA9IFRydWUKIAorICAgICAg
ICBzZWxmLnRpbWVyID0gTm9uZQorCiAgICAgICAgIHNlbGYubWF4X3Jlc3RhcnRzID0gNQogCiAg
ICAgICAgIHNlbGYuYnJvd3NlciA9IE5vbmUKIAorICAgICAgICBzZWxmLmNhcHR1cmVfc3RkaW8g
PSBjYXB0dXJlX3N0ZGlvCisKICAgICBkZWYgcnVuKHNlbGYpOgotICAgICAgICAiIiJNYWluIGxv
b3AgZm9yIHRoZSBUZXN0TWFuYWdlci4KKyAgICAgICAgIiIiTWFpbiBsb29wIGZvciB0aGUgVGVz
dFJ1bm5lck1hbmFnZXIuCiAKLSAgICAgICAgVGVzdE1hbmFnZXJzIGdlbmVyYWxseSByZWNlaXZl
IGNvbW1hbmRzIGZyb20gdGhlaXIKKyAgICAgICAgVGVzdFJ1bm5lck1hbmFnZXJzIGdlbmVyYWxs
eSByZWNlaXZlIGNvbW1hbmRzIGZyb20gdGhlaXIKICAgICAgICAgVGVzdFJ1bm5lciB1cGRhdGlu
ZyB0aGVtIG9uIHRoZSBzdGF0dXMgb2YgYSB0ZXN0LiBUaGV5CiAgICAgICAgIG1heSBhbHNvIGhh
dmUgYSBzdG9wIGZsYWcgc2V0IGJ5IHRoZSBtYWluIHRocmVhZCBpbmRpY2F0aW5nCiAgICAgICAg
IHRoYXQgdGhlIG1hbmFnZXIgc2hvdWxkIHNodXQgZG93biB0aGUgbmV4dCB0aW1lIHRoZSBldmVu
dCBsb29wCkBAIC00NDYsNyArNDc1LDcgQEAgY2xhc3MgVGVzdFJ1bm5lck1hbmFnZXIodGhyZWFk
aW5nLlRocmVhZCk6CiAgICAgZGVmIGluaXQoc2VsZik6CiAgICAgICAgIGFzc2VydCBpc2luc3Rh
bmNlKHNlbGYuc3RhdGUsIFJ1bm5lck1hbmFnZXJTdGF0ZS5pbml0aWFsaXppbmcpCiAgICAgICAg
IGlmIHNlbGYuc3RhdGUuZmFpbHVyZV9jb3VudCA+IHNlbGYubWF4X3Jlc3RhcnRzOgotICAgICAg
ICAgICAgc2VsZi5sb2dnZXIuZXJyb3IoIk1heCByZXN0YXJ0cyBleGNlZWRlZCIpCisgICAgICAg
ICAgICBzZWxmLmxvZ2dlci5jcml0aWNhbCgiTWF4IHJlc3RhcnRzIGV4Y2VlZGVkIikKICAgICAg
ICAgICAgIHJldHVybiBSdW5uZXJNYW5hZ2VyU3RhdGUuZXJyb3IoKQogCiAgICAgICAgIHNlbGYu
YnJvd3Nlci51cGRhdGVfc2V0dGluZ3Moc2VsZi5zdGF0ZS50ZXN0KQpAQCAtNDc5LDEwICs1MDgs
MTEgQEAgY2xhc3MgVGVzdFJ1bm5lck1hbmFnZXIodGhyZWFkaW5nLlRocmVhZCk6CiAgICAgICAg
ICAgICAgICAgc2VsZi5leGVjdXRvcl9rd2FyZ3MsCiAgICAgICAgICAgICAgICAgZXhlY3V0b3Jf
YnJvd3Nlcl9jbHMsCiAgICAgICAgICAgICAgICAgZXhlY3V0b3JfYnJvd3Nlcl9rd2FyZ3MsCisg
ICAgICAgICAgICAgICAgc2VsZi5jYXB0dXJlX3N0ZGlvLAogICAgICAgICAgICAgICAgIHNlbGYu
Y2hpbGRfc3RvcF9mbGFnKQogICAgICAgICBzZWxmLnRlc3RfcnVubmVyX3Byb2MgPSBQcm9jZXNz
KHRhcmdldD1zdGFydF9ydW5uZXIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgYXJncz1hcmdzLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IG5hbWU9IlRocmVhZC1UZXN0UnVubmVyLSVpIiAlIHNlbGYubWFuYWdlcl9udW1iZXIpCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT0iVGVzdFJ1bm5lci0laSIg
JSBzZWxmLm1hbmFnZXJfbnVtYmVyKQogICAgICAgICBzZWxmLnRlc3RfcnVubmVyX3Byb2Muc3Rh
cnQoKQogICAgICAgICBzZWxmLmxvZ2dlci5kZWJ1ZygiVGVzdCBydW5uZXIgc3RhcnRlZCIpCiAg
ICAgICAgICMgTm93IHdlIHdhaXQgZm9yIGVpdGhlciBhbiBpbml0X3N1Y2NlZWRlZCBldmVudCBv
ciBhbiBpbml0X2ZhaWxlZCBldmVudApAQCAtNDk2LDYgKzUyNiw3IEBAIGNsYXNzIFRlc3RSdW5u
ZXJNYW5hZ2VyKHRocmVhZGluZy5UaHJlYWQpOgogCiAgICAgZGVmIGluaXRfZmFpbGVkKHNlbGYp
OgogICAgICAgICBhc3NlcnQgaXNpbnN0YW5jZShzZWxmLnN0YXRlLCBSdW5uZXJNYW5hZ2VyU3Rh
dGUuaW5pdGlhbGl6aW5nKQorICAgICAgICBzZWxmLmJyb3dzZXIuY2hlY2tfY3Jhc2goTm9uZSkK
ICAgICAgICAgc2VsZi5icm93c2VyLmFmdGVyX2luaXQoKQogICAgICAgICBzZWxmLnN0b3BfcnVu
bmVyKGZvcmNlPVRydWUpCiAgICAgICAgIHJldHVybiBSdW5uZXJNYW5hZ2VyU3RhdGUuaW5pdGlh
bGl6aW5nKHNlbGYuc3RhdGUudGVzdCwKQEAgLTUyOCw4ICs1NTksMjQgQEAgY2xhc3MgVGVzdFJ1
bm5lck1hbmFnZXIodGhyZWFkaW5nLlRocmVhZCk6CiAgICAgICAgIHNlbGYubG9nZ2VyLnRlc3Rf
c3RhcnQoc2VsZi5zdGF0ZS50ZXN0LmlkKQogICAgICAgICBpZiBzZWxmLnJlcnVuID4gMToKICAg
ICAgICAgICAgIHNlbGYubG9nZ2VyLmluZm8oIlJ1biAlZC8lZCIgJSAoc2VsZi5ydW5fY291bnQs
IHNlbGYucmVydW4pKQorICAgICAgICAgICAgc2VsZi5zZW5kX21lc3NhZ2UoInJlc2V0IikKICAg
ICAgICAgc2VsZi5ydW5fY291bnQgKz0gMQorICAgICAgICAjIEZhY3RvciBvZiAzIG9uIHRoZSBl
eHRyYSB0aW1lb3V0IGhlcmUgaXMgYmFzZWQgb24gYWxsb3dpbmcgdGhlIGV4ZWN1dG9yCisgICAg
ICAgICMgYXQgbGVhc3QgdGVzdC50aW1lb3V0ICsgMiAqIGV4dHJhX3RpbWVvdXQgdG8gY29tcGxl
dGUsCisgICAgICAgICMgd2hpY2ggaW4gdHVybiBpcyBiYXNlZCBvbiBoYXZpbmcgc2V2ZXJhbCBs
YXllcnMgb2YgdGltZW91dCBpbnNpZGUgdGhlIGV4ZWN1dG9yCisgICAgICAgIHdhaXRfdGltZW91
dCA9IChzZWxmLnN0YXRlLnRlc3QudGltZW91dCAqIHNlbGYuZXhlY3V0b3Jfa3dhcmdzWyd0aW1l
b3V0X211bHRpcGxpZXInXSArCisgICAgICAgICAgICAgICAgICAgICAgICAzICogc2VsZi5leGVj
dXRvcl9jbHMuZXh0cmFfdGltZW91dCkKKyAgICAgICAgc2VsZi50aW1lciA9IHRocmVhZGluZy5U
aW1lcih3YWl0X3RpbWVvdXQsIHNlbGYuX3RpbWVvdXQpCiAgICAgICAgIHNlbGYuc2VuZF9tZXNz
YWdlKCJydW5fdGVzdCIsIHNlbGYuc3RhdGUudGVzdCkKKyAgICAgICAgc2VsZi50aW1lci5zdGFy
dCgpCisKKyAgICBkZWYgX3RpbWVvdXQoc2VsZik6CisgICAgICAgIHNlbGYubG9nZ2VyLmluZm8o
IkdvdCB0aW1lb3V0IGluIGhhcm5lc3MiKQorICAgICAgICB0ZXN0ID0gc2VsZi5zdGF0ZS50ZXN0
CisgICAgICAgIHNlbGYudGVzdF9lbmRlZCh0ZXN0LAorICAgICAgICAgICAgICAgICAgICAgICAg
KHRlc3QucmVzdWx0X2NscygiRVhURVJOQUwtVElNRU9VVCIsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICJUZXN0UnVubmVyIGhpdCBleHRlcm5hbCB0aW1lb3V0ICIK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIih0aGlzIG1heSBpbmRp
Y2F0ZSBhIGhhbmcpIiksIFtdKSkKIAogICAgIGRlZiB0ZXN0X2VuZGVkKHNlbGYsIHRlc3QsIHJl
c3VsdHMpOgogICAgICAgICAiIiJIYW5kbGUgdGhlIGVuZCBvZiBhIHRlc3QuCkBAIC01MzksMTQg
KzU4NiwyMiBAQCBjbGFzcyBUZXN0UnVubmVyTWFuYWdlcih0aHJlYWRpbmcuVGhyZWFkKToKICAg
ICAgICAgIiIiCiAgICAgICAgIGFzc2VydCBpc2luc3RhbmNlKHNlbGYuc3RhdGUsIFJ1bm5lck1h
bmFnZXJTdGF0ZS5ydW5uaW5nKQogICAgICAgICBhc3NlcnQgdGVzdCA9PSBzZWxmLnN0YXRlLnRl
c3QKKyAgICAgICAgc2VsZi50aW1lci5jYW5jZWwoKQogICAgICAgICAjIFdyaXRlIHRoZSByZXN1
bHQgb2YgZWFjaCBzdWJ0ZXN0CiAgICAgICAgIGZpbGVfcmVzdWx0LCB0ZXN0X3Jlc3VsdHMgPSBy
ZXN1bHRzCiAgICAgICAgIHN1YnRlc3RfdW5leHBlY3RlZCA9IEZhbHNlCisgICAgICAgIGV4cGVj
dF9hbnlfc3VidGVzdF9zdGF0dXMgPSB0ZXN0LmV4cGVjdF9hbnlfc3VidGVzdF9zdGF0dXMoKQor
ICAgICAgICBpZiBleHBlY3RfYW55X3N1YnRlc3Rfc3RhdHVzOgorICAgICAgICAgICAgc2VsZi5s
b2dnZXIuZGVidWcoIklnbm9yaW5nIHN1YnRlc3Qgc3RhdHVzZXMgZm9yIHRlc3QgJXMiICUgdGVz
dC5pZCkKICAgICAgICAgZm9yIHJlc3VsdCBpbiB0ZXN0X3Jlc3VsdHM6CiAgICAgICAgICAgICBp
ZiB0ZXN0LmRpc2FibGVkKHJlc3VsdC5uYW1lKToKICAgICAgICAgICAgICAgICBjb250aW51ZQot
ICAgICAgICAgICAgZXhwZWN0ZWQgPSB0ZXN0LmV4cGVjdGVkKHJlc3VsdC5uYW1lKQotICAgICAg
ICAgICAgaXNfdW5leHBlY3RlZCA9IGV4cGVjdGVkICE9IHJlc3VsdC5zdGF0dXMKKyAgICAgICAg
ICAgIGlmIGV4cGVjdF9hbnlfc3VidGVzdF9zdGF0dXM6CisgICAgICAgICAgICAgICAgZXhwZWN0
ZWQgPSByZXN1bHQuc3RhdHVzCisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgIGV4
cGVjdGVkID0gdGVzdC5leHBlY3RlZChyZXN1bHQubmFtZSkKKyAgICAgICAgICAgIGtub3duX2lu
dGVybWl0dGVudCA9IHRlc3Qua25vd25faW50ZXJtaXR0ZW50KHJlc3VsdC5uYW1lKQorICAgICAg
ICAgICAgaXNfdW5leHBlY3RlZCA9IGV4cGVjdGVkICE9IHJlc3VsdC5zdGF0dXMgYW5kIHJlc3Vs
dC5zdGF0dXMgbm90IGluIGtub3duX2ludGVybWl0dGVudAogCiAgICAgICAgICAgICBpZiBpc191
bmV4cGVjdGVkOgogICAgICAgICAgICAgICAgIHNlbGYudW5leHBlY3RlZF9jb3VudCArPSAxCkBA
IC01NTcsNiArNjEyLDcgQEAgY2xhc3MgVGVzdFJ1bm5lck1hbmFnZXIodGhyZWFkaW5nLlRocmVh
ZCk6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQuc3RhdHVzLAog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWVzc2FnZT1yZXN1bHQubWVzc2Fn
ZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4cGVjdGVkPWV4cGVjdGVk
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga25vd25faW50ZXJtaXR0ZW50
PWtub3duX2ludGVybWl0dGVudCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHN0YWNrPXJlc3VsdC5zdGFjaykKIAogICAgICAgICAjIFdlIGhhdmUgYSBjb3VwbGUgb2Ygc3Rh
dHVzIGNvZGVzIHRoYXQgYXJlIHVzZWQgaW50ZXJuYWxseSwgYnV0IG5vdCBleHBvc2VkIHRvIHRo
ZQpAQCAtNTY4LDE5ICs2MjQsMTcgQEAgY2xhc3MgVGVzdFJ1bm5lck1hbmFnZXIodGhyZWFkaW5n
LlRocmVhZCk6CiAgICAgICAgIHN0YXR1c19zdWJucyA9IHsiSU5URVJOQUwtRVJST1IiOiAiRVJS
T1IiLAogICAgICAgICAgICAgICAgICAgICAgICAgIkVYVEVSTkFMLVRJTUVPVVQiOiAiVElNRU9V
VCJ9CiAgICAgICAgIGV4cGVjdGVkID0gdGVzdC5leHBlY3RlZCgpCisgICAgICAgIGtub3duX2lu
dGVybWl0dGVudCA9IHRlc3Qua25vd25faW50ZXJtaXR0ZW50KCkKICAgICAgICAgc3RhdHVzID0g
c3RhdHVzX3N1Ym5zLmdldChmaWxlX3Jlc3VsdC5zdGF0dXMsIGZpbGVfcmVzdWx0LnN0YXR1cykK
IAotICAgICAgICBpZiBmaWxlX3Jlc3VsdC5zdGF0dXMgaW4gKCJUSU1FT1VUIiwgIkVYVEVSTkFM
LVRJTUVPVVQiLCAiSU5URVJOQUwtRVJST1IiKToKLSAgICAgICAgICAgIGlmIHNlbGYuYnJvd3Nl
ci5jaGVja19mb3JfY3Jhc2hlcygpOgotICAgICAgICAgICAgICAgIHN0YXR1cyA9ICJDUkFTSCIK
KyAgICAgICAgaWYgc2VsZi5icm93c2VyLmNoZWNrX2NyYXNoKHRlc3QuaWQpOgorICAgICAgICAg
ICAgc3RhdHVzID0gIkNSQVNIIgogCiAgICAgICAgIHNlbGYudGVzdF9jb3VudCArPSAxCi0gICAg
ICAgIGlzX3VuZXhwZWN0ZWQgPSBleHBlY3RlZCAhPSBzdGF0dXMKKyAgICAgICAgaXNfdW5leHBl
Y3RlZCA9IGV4cGVjdGVkICE9IHN0YXR1cyBhbmQgc3RhdHVzIG5vdCBpbiBrbm93bl9pbnRlcm1p
dHRlbnQKICAgICAgICAgaWYgaXNfdW5leHBlY3RlZDoKICAgICAgICAgICAgIHNlbGYudW5leHBl
Y3RlZF9jb3VudCArPSAxCiAgICAgICAgICAgICBzZWxmLmxvZ2dlci5kZWJ1ZygiVW5leHBlY3Rl
ZCBjb3VudCBpbiB0aGlzIHRocmVhZCAlaSIgJSBzZWxmLnVuZXhwZWN0ZWRfY291bnQpCi0gICAg
ICAgIGlmIHN0YXR1cyA9PSAiQ1JBU0giOgotICAgICAgICAgICAgc2VsZi5icm93c2VyLmxvZ19j
cmFzaCh0ZXN0LmlkKQogCiAgICAgICAgIGlmICJhc3NlcnRpb25fY291bnQiIGluIGZpbGVfcmVz
dWx0LmV4dHJhOgogICAgICAgICAgICAgYXNzZXJ0aW9uX2NvdW50ID0gZmlsZV9yZXN1bHQuZXh0
cmEucG9wKCJhc3NlcnRpb25fY291bnQiKQpAQCAtNTkwLDEwICs2NDQsMTMgQEAgY2xhc3MgVGVz
dFJ1bm5lck1hbmFnZXIodGhyZWFkaW5nLlRocmVhZCk6CiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHRlc3QubWluX2Fzc2VydGlvbl9jb3VudCwKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGVzdC5tYXhfYXNzZXJ0aW9uX2Nv
dW50KQogCisgICAgICAgIGZpbGVfcmVzdWx0LmV4dHJhWyJ0ZXN0X3RpbWVvdXQiXSA9IHRlc3Qu
dGltZW91dCAqIHNlbGYuZXhlY3V0b3Jfa3dhcmdzWyd0aW1lb3V0X211bHRpcGxpZXInXQorCiAg
ICAgICAgIHNlbGYubG9nZ2VyLnRlc3RfZW5kKHRlc3QuaWQsCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHN0YXR1cywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWVzc2FnZT1m
aWxlX3Jlc3VsdC5tZXNzYWdlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBleHBlY3Rl
ZD1leHBlY3RlZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAga25vd25faW50ZXJtaXR0
ZW50PWtub3duX2ludGVybWl0dGVudCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXh0
cmE9ZmlsZV9yZXN1bHQuZXh0cmEsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YWNr
PWZpbGVfcmVzdWx0LnN0YWNrKQogCkBAIC02MTIsMTAgKzY2OSwxMCBAQCBjbGFzcyBUZXN0UnVu
bmVyTWFuYWdlcih0aHJlYWRpbmcuVGhyZWFkKToKIAogICAgIGRlZiB3YWl0X2ZpbmlzaGVkKHNl
bGYpOgogICAgICAgICBhc3NlcnQgaXNpbnN0YW5jZShzZWxmLnN0YXRlLCBSdW5uZXJNYW5hZ2Vy
U3RhdGUucnVubmluZykKLSAgICAgICAgIyBUaGUgYnJvd3NlciBzaG91bGQgYmUgc3RvcHBlZCBh
bHJlYWR5LCBidXQgdGhpcyBlbnN1cmVzIHdlIGRvIGFueSBwb3N0LXN0b3AKLSAgICAgICAgIyBw
cm9jZXNzaW5nCiAgICAgICAgIHNlbGYubG9nZ2VyLmRlYnVnKCJXYWl0IGZpbmlzaGVkIikKIAor
ICAgICAgICAjIFRoZSBicm93c2VyIHNob3VsZCBiZSBzdG9wcGVkIGFscmVhZHksIGJ1dCB0aGlz
IGVuc3VyZXMgd2UgZG8gYW55CisgICAgICAgICMgcG9zdC1zdG9wIHByb2Nlc3NpbmcKICAgICAg
ICAgcmV0dXJuIHNlbGYuYWZ0ZXJfdGVzdF9lbmQoc2VsZi5zdGF0ZS50ZXN0LCBUcnVlKQogCiAg
ICAgZGVmIGFmdGVyX3Rlc3RfZW5kKHNlbGYsIHRlc3QsIHJlc3RhcnQpOgpAQCAtNjI4LDcgKzY4
NSw2IEBAIGNsYXNzIFRlc3RSdW5uZXJNYW5hZ2VyKHRocmVhZGluZy5UaHJlYWQpOgogICAgICAg
ICAgICAgICAgICMgV2UgYXJlIHN0YXJ0aW5nIGEgbmV3IGdyb3VwIG9mIHRlc3RzLCBzbyBmb3Jj
ZSBhIHJlc3RhcnQKICAgICAgICAgICAgICAgICByZXN0YXJ0ID0gVHJ1ZQogICAgICAgICBlbHNl
OgotICAgICAgICAgICAgdGVzdCA9IHRlc3QKICAgICAgICAgICAgIHRlc3RfZ3JvdXAgPSBzZWxm
LnN0YXRlLnRlc3RfZ3JvdXAKICAgICAgICAgICAgIGdyb3VwX21ldGFkYXRhID0gc2VsZi5zdGF0
ZS5ncm91cF9tZXRhZGF0YQogICAgICAgICBpZiByZXN0YXJ0OgpAQCAtNjYzLDcgKzcxOSw3IEBA
IGNsYXNzIFRlc3RSdW5uZXJNYW5hZ2VyKHRocmVhZGluZy5UaHJlYWQpOgogICAgICAgICAgICAg
c2VsZi5jbGVhbnVwKCkKIAogICAgIGRlZiB0ZWFyZG93bihzZWxmKToKLSAgICAgICAgc2VsZi5s
b2dnZXIuZGVidWcoInRlYXJkb3duIGluIHRlc3RydW5uZXJtYW5hZ2VyIikKKyAgICAgICAgc2Vs
Zi5sb2dnZXIuZGVidWcoIlRlc3RSdW5uZXJNYW5hZ2VyIHRlYXJkb3duIikKICAgICAgICAgc2Vs
Zi50ZXN0X3J1bm5lcl9wcm9jID0gTm9uZQogICAgICAgICBzZWxmLmNvbW1hbmRfcXVldWUuY2xv
c2UoKQogICAgICAgICBzZWxmLnJlbW90ZV9xdWV1ZS5jbG9zZSgpCkBAIC02NzUsNiArNzMxLDcg
QEAgY2xhc3MgVGVzdFJ1bm5lck1hbmFnZXIodGhyZWFkaW5nLlRocmVhZCk6CiAgICAgICAgIGlm
IHNlbGYudGVzdF9ydW5uZXJfcHJvYyBpcyBOb25lOgogICAgICAgICAgICAgcmV0dXJuCiAKKyAg
ICAgICAgc2VsZi5icm93c2VyLnN0b3AoZm9yY2U9VHJ1ZSkKICAgICAgICAgc2VsZi5sb2dnZXIu
ZGVidWcoIndhaXRpbmcgZm9yIHJ1bm5lciBwcm9jZXNzIHRvIGVuZCIpCiAgICAgICAgIHNlbGYu
dGVzdF9ydW5uZXJfcHJvYy5qb2luKDEwKQogICAgICAgICBzZWxmLmxvZ2dlci5kZWJ1ZygiQWZ0
ZXIgam9pbiIpCkBAIC02ODIsOSArNzM5LDE4IEBAIGNsYXNzIFRlc3RSdW5uZXJNYW5hZ2VyKHRo
cmVhZGluZy5UaHJlYWQpOgogICAgICAgICAgICAgIyBUaGlzIG1pZ2h0IGxlYWsgYSBmaWxlIGhh
bmRsZSBmcm9tIHRoZSBxdWV1ZQogICAgICAgICAgICAgc2VsZi5sb2dnZXIud2FybmluZygiRm9y
Y2libHkgdGVybWluYXRpbmcgcnVubmVyIHByb2Nlc3MiKQogICAgICAgICAgICAgc2VsZi50ZXN0
X3J1bm5lcl9wcm9jLnRlcm1pbmF0ZSgpCi0gICAgICAgICAgICBzZWxmLnRlc3RfcnVubmVyX3By
b2Muam9pbigxMCkKKworICAgICAgICAgICAgIyBNdWx0aXByb2Nlc3NpbmcgcXVldWVzIGFyZSBi
YWNrZWQgYnkgb3BlcmF0aW5nIHN5c3RlbSBwaXBlcy4gSWYKKyAgICAgICAgICAgICMgdGhlIHBp
cGUgaW4gdGhlIGNoaWxkIHByb2Nlc3MgaGFkIGJ1ZmZlcmVkIGRhdGEgYXQgdGhlIHRpbWUgb2YK
KyAgICAgICAgICAgICMgZm9yY2VkIHRlcm1pbmF0aW9uLCB0aGUgcXVldWUgaXMgbm8gbG9uZ2Vy
IGluIGEgdXNhYmxlIHN0YXRlCisgICAgICAgICAgICAjIChzdWJzZXF1ZW50IGF0dGVtcHRzIHRv
IHJldHJpZXZlIGl0ZW1zIG1heSBibG9jayBpbmRlZmluaXRlbHkpLgorICAgICAgICAgICAgIyBE
aXNjYXJkIHRoZSBwb3RlbnRpYWxseS1jb3JydXB0ZWQgcXVldWUgYW5kIGNyZWF0ZSBhIG5ldyBv
bmUuCisgICAgICAgICAgICBzZWxmLmNvbW1hbmRfcXVldWUuY2xvc2UoKQorICAgICAgICAgICAg
c2VsZi5jb21tYW5kX3F1ZXVlID0gUXVldWUoKQorICAgICAgICAgICAgc2VsZi5yZW1vdGVfcXVl
dWUuY2xvc2UoKQorICAgICAgICAgICAgc2VsZi5yZW1vdGVfcXVldWUgPSBRdWV1ZSgpCiAgICAg
ICAgIGVsc2U6Ci0gICAgICAgICAgICBzZWxmLmxvZ2dlci5kZWJ1ZygiVGVzdHJ1bm5lciBleGl0
ZWQgd2l0aCBjb2RlICVpIiAlIHNlbGYudGVzdF9ydW5uZXJfcHJvYy5leGl0Y29kZSkKKyAgICAg
ICAgICAgIHNlbGYubG9nZ2VyLmRlYnVnKCJSdW5uZXIgcHJvY2VzcyBleGl0ZWQgd2l0aCBjb2Rl
ICVpIiAlIHNlbGYudGVzdF9ydW5uZXJfcHJvYy5leGl0Y29kZSkKIAogICAgIGRlZiBydW5uZXJf
dGVhcmRvd24oc2VsZik6CiAgICAgICAgIHNlbGYuZW5zdXJlX3J1bm5lcl9zdG9wcGVkKCkKQEAg
LTY5NCw3ICs3NjAsNyBAQCBjbGFzcyBUZXN0UnVubmVyTWFuYWdlcih0aHJlYWRpbmcuVGhyZWFk
KToKICAgICAgICAgc2VsZi5yZW1vdGVfcXVldWUucHV0KChjb21tYW5kLCBhcmdzKSkKIAogICAg
IGRlZiBjbGVhbnVwKHNlbGYpOgotICAgICAgICBzZWxmLmxvZ2dlci5kZWJ1ZygiVGVzdE1hbmFn
ZXIgY2xlYW51cCIpCisgICAgICAgIHNlbGYubG9nZ2VyLmRlYnVnKCJUZXN0UnVubmVyTWFuYWdl
ciBjbGVhbnVwIikKICAgICAgICAgaWYgc2VsZi5icm93c2VyOgogICAgICAgICAgICAgc2VsZi5i
cm93c2VyLmNsZWFudXAoKQogICAgICAgICB3aGlsZSBUcnVlOgpAQCAtNzA1LDEyICs3NzEsMTcg
QEAgY2xhc3MgVGVzdFJ1bm5lck1hbmFnZXIodGhyZWFkaW5nLlRocmVhZCk6CiAgICAgICAgICAg
ICBlbHNlOgogICAgICAgICAgICAgICAgIGlmIGNtZCA9PSAibG9nIjoKICAgICAgICAgICAgICAg
ICAgICAgc2VsZi5sb2coKmRhdGEpCisgICAgICAgICAgICAgICAgZWxpZiBjbWQgPT0gInJ1bm5l
cl90ZWFyZG93biI6CisgICAgICAgICAgICAgICAgICAgICMgSXQncyBPSyBmb3IgdGhlICJydW5u
ZXJfdGVhcmRvd24iIG1lc3NhZ2UgdG8gYmUgbGVmdCBpbgorICAgICAgICAgICAgICAgICAgICAj
IHRoZSBxdWV1ZSBkdXJpbmcgY2xlYW51cCwgYXMgd2Ugd2lsbCBhbHJlYWR5IGhhdmUgdHJpZWQK
KyAgICAgICAgICAgICAgICAgICAgIyB0byBzdG9wIHRoZSBUZXN0UnVubmVyIGluIGBzdG9wX3J1
bm5lcmAuCisgICAgICAgICAgICAgICAgICAgIHBhc3MKICAgICAgICAgICAgICAgICBlbHNlOgot
ICAgICAgICAgICAgICAgICAgICBzZWxmLmxvZ2dlci53YXJuaW5nKCIlcjogJXIiICUgKGNtZCwg
ZGF0YSkpCisgICAgICAgICAgICAgICAgICAgIHNlbGYubG9nZ2VyLndhcm5pbmcoIkNvbW1hbmQg
bGVmdCBpbiBjb21tYW5kX3F1ZXVlIGR1cmluZyBjbGVhbnVwOiAlciwgJXIiICUgKGNtZCwgZGF0
YSkpCiAgICAgICAgIHdoaWxlIFRydWU6CiAgICAgICAgICAgICB0cnk6CiAgICAgICAgICAgICAg
ICAgY21kLCBkYXRhID0gc2VsZi5yZW1vdGVfcXVldWUuZ2V0X25vd2FpdCgpCi0gICAgICAgICAg
ICAgICAgc2VsZi5sb2dnZXIud2FybmluZygiJXI6ICVyIiAlIChjbWQsIGRhdGEpKQorICAgICAg
ICAgICAgICAgIHNlbGYubG9nZ2VyLndhcm5pbmcoIkNvbW1hbmQgbGVmdCBpbiByZW1vdGVfcXVl
dWUgZHVyaW5nIGNsZWFudXA6ICVyLCAlciIgJSAoY21kLCBkYXRhKSkKICAgICAgICAgICAgIGV4
Y2VwdCBFbXB0eToKICAgICAgICAgICAgICAgICBicmVhawogCkBAIC03MjcsNiArNzk4LDcgQEAg
ZGVmIG1ha2VfdGVzdF9xdWV1ZSh0ZXN0cywgdGVzdF9zb3VyY2VfY2xzLCAqKnRlc3Rfc291cmNl
X2t3YXJncyk6CiAKIAogY2xhc3MgTWFuYWdlckdyb3VwKG9iamVjdCk6CisgICAgIiIiTWFpbiB0
aHJlYWQgb2JqZWN0IHRoYXQgb3ducyBhbGwgdGhlIFRlc3RSdW5uZXJNYW5hZ2VyIHRocmVhZHMu
IiIiCiAgICAgZGVmIF9faW5pdF9fKHNlbGYsIHN1aXRlX25hbWUsIHNpemUsIHRlc3Rfc291cmNl
X2NscywgdGVzdF9zb3VyY2Vfa3dhcmdzLAogICAgICAgICAgICAgICAgICBicm93c2VyX2Nscywg
YnJvd3Nlcl9rd2FyZ3MsCiAgICAgICAgICAgICAgICAgIGV4ZWN1dG9yX2NscywgZXhlY3V0b3Jf
a3dhcmdzLApAQCAtNzM0LDggKzgwNiw4IEBAIGNsYXNzIE1hbmFnZXJHcm91cChvYmplY3QpOgog
ICAgICAgICAgICAgICAgICBwYXVzZV9hZnRlcl90ZXN0PUZhbHNlLAogICAgICAgICAgICAgICAg
ICBwYXVzZV9vbl91bmV4cGVjdGVkPUZhbHNlLAogICAgICAgICAgICAgICAgICByZXN0YXJ0X29u
X3VuZXhwZWN0ZWQ9VHJ1ZSwKLSAgICAgICAgICAgICAgICAgZGVidWdfaW5mbz1Ob25lKToKLSAg
ICAgICAgIiIiTWFpbiB0aHJlYWQgb2JqZWN0IHRoYXQgb3ducyBhbGwgdGhlIFRlc3RNYW5hZ2Vy
IHRocmVhZHMuIiIiCisgICAgICAgICAgICAgICAgIGRlYnVnX2luZm89Tm9uZSwKKyAgICAgICAg
ICAgICAgICAgY2FwdHVyZV9zdGRpbz1UcnVlKToKICAgICAgICAgc2VsZi5zdWl0ZV9uYW1lID0g
c3VpdGVfbmFtZQogICAgICAgICBzZWxmLnNpemUgPSBzaXplCiAgICAgICAgIHNlbGYudGVzdF9z
b3VyY2VfY2xzID0gdGVzdF9zb3VyY2VfY2xzCkBAIC03NDksNiArODIxLDcgQEAgY2xhc3MgTWFu
YWdlckdyb3VwKG9iamVjdCk6CiAgICAgICAgIHNlbGYucmVzdGFydF9vbl91bmV4cGVjdGVkID0g
cmVzdGFydF9vbl91bmV4cGVjdGVkCiAgICAgICAgIHNlbGYuZGVidWdfaW5mbyA9IGRlYnVnX2lu
Zm8KICAgICAgICAgc2VsZi5yZXJ1biA9IHJlcnVuCisgICAgICAgIHNlbGYuY2FwdHVyZV9zdGRp
byA9IGNhcHR1cmVfc3RkaW8KIAogICAgICAgICBzZWxmLnBvb2wgPSBzZXQoKQogICAgICAgICAj
IEV2ZW50IHRoYXQgaXMgcG9sbGVkIGJ5IHRocmVhZHMgc28gdGhhdCB0aGV5IGNhbiBncmFjZWZ1
bGx5IGV4aXQgaW4gdGhlIGZhY2UKQEAgLTc4NSwxOSArODU4LDE2IEBAIGNsYXNzIE1hbmFnZXJH
cm91cChvYmplY3QpOgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNl
bGYucGF1c2VfYWZ0ZXJfdGVzdCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBzZWxmLnBhdXNlX29uX3VuZXhwZWN0ZWQsCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgc2VsZi5yZXN0YXJ0X29uX3VuZXhwZWN0ZWQsCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5kZWJ1Z19pbmZvKQorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuZGVidWdfaW5mbywKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmNhcHR1cmVfc3RkaW8pCiAgICAgICAg
ICAgICBtYW5hZ2VyLnN0YXJ0KCkKICAgICAgICAgICAgIHNlbGYucG9vbC5hZGQobWFuYWdlcikK
ICAgICAgICAgc2VsZi53YWl0KCkKIAotICAgIGRlZiBpc19hbGl2ZShzZWxmKToKLSAgICAgICAg
IiIiQm9vbGVhbiBpbmRpY2F0aW5nIHdoZXRoZXIgYW55IG1hbmFnZXIgaW4gdGhlIGdyb3VwIGlz
IHN0aWxsIGFsaXZlIiIiCi0gICAgICAgIHJldHVybiBhbnkobWFuYWdlci5pc19hbGl2ZSgpIGZv
ciBtYW5hZ2VyIGluIHNlbGYucG9vbCkKLQogICAgIGRlZiB3YWl0KHNlbGYpOgogICAgICAgICAi
IiJXYWl0IGZvciBhbGwgdGhlIG1hbmFnZXJzIGluIHRoZSBncm91cCB0byBmaW5pc2giIiIKLSAg
ICAgICAgZm9yIGl0ZW0gaW4gc2VsZi5wb29sOgotICAgICAgICAgICAgaXRlbS5qb2luKCkKKyAg
ICAgICAgZm9yIG1hbmFnZXIgaW4gc2VsZi5wb29sOgorICAgICAgICAgICAgbWFuYWdlci5qb2lu
KCkKIAogICAgIGRlZiBzdG9wKHNlbGYpOgogICAgICAgICAiIiJTZXQgdGhlIHN0b3AgZmxhZyBz
byB0aGF0IGFsbCBtYW5hZ2VycyBpbiB0aGUgZ3JvdXAgc3RvcCBhcyBzb29uCkBAIC04MDYsNyAr
ODc2LDcgQEAgY2xhc3MgTWFuYWdlckdyb3VwKG9iamVjdCk6CiAgICAgICAgIHNlbGYubG9nZ2Vy
LmRlYnVnKCJTdG9wIGZsYWcgc2V0IGluIE1hbmFnZXJHcm91cCIpCiAKICAgICBkZWYgdGVzdF9j
b3VudChzZWxmKToKLSAgICAgICAgcmV0dXJuIHN1bShpdGVtLnRlc3RfY291bnQgZm9yIGl0ZW0g
aW4gc2VsZi5wb29sKQorICAgICAgICByZXR1cm4gc3VtKG1hbmFnZXIudGVzdF9jb3VudCBmb3Ig
bWFuYWdlciBpbiBzZWxmLnBvb2wpCiAKICAgICBkZWYgdW5leHBlY3RlZF9jb3VudChzZWxmKToK
LSAgICAgICAgcmV0dXJuIHN1bShpdGVtLnVuZXhwZWN0ZWRfY291bnQgZm9yIGl0ZW0gaW4gc2Vs
Zi5wb29sKQorICAgICAgICByZXR1cm4gc3VtKG1hbmFnZXIudW5leHBlY3RlZF9jb3VudCBmb3Ig
bWFuYWdlciBpbiBzZWxmLnBvb2wpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvdGVzdHMvX19p
bml0X18ucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3dwdHJ1bm5lci93cHRydW5uZXIvdGVzdHMvX19pbml0X18ucHkKaW5kZXggYTY4MzRiODI4
NWE1NmJlZjBlMTU0M2ZkOTAxYzdlNmYyZjhiYzIwMi4uZTY5ZGUyOWJiMmQxZDY0MzRiOGIyOWFl
Nzc1YWQ4YzJlNDhjNTM5MSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3Rlc3RzL19faW5pdF9f
LnB5CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvd3B0cnVubmVyL3dwdHJ1bm5lci90ZXN0cy9fX2luaXRfXy5weQpAQCAtMSArMCwwIEBACi0j
IFRoaXMgZmlsZSBpcyByZXF1aXJlZCBmb3IgUHl0aG9uIHRvIHNlYXJjaCB0aGlzIGRpcmVjdG9y
eSBmb3IgbW9kdWxlcy4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5l
ci93cHRydW5uZXIvdGVzdHMvYmFzZS5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci90ZXN0cy9iYXNlLnB5Cmlu
ZGV4IGI1MTczZjNiNTEzZWE0ZjBhMzdkYjJjY2RjMGE5NDg4OTNjNGZlNDUuLjM1YzQ1ODJlN2Ni
ZDIxZWJmMzNkODQyNGY5NGY5ZDNmMzE0MjYzMTYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci90
ZXN0cy9iYXNlLnB5CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci90ZXN0cy9iYXNlLnB5CkBAIC03LDcgKzcs
NyBAQCBpbXBvcnQgcHl0ZXN0CiAKIHN5cy5wYXRoLmluc2VydCgwLCBqb2luKGRpcm5hbWUoX19m
aWxlX18pLCAiLi4iLCAiLi4iKSkKIAotZnJvbSB3cHRydW5uZXIgaW1wb3J0IGJyb3dzZXJzCitm
cm9tIC4uIGltcG9ydCBicm93c2VycwogCiAKIF9wcm9kdWN0cyA9IGJyb3dzZXJzLnByb2R1Y3Rf
bGlzdApAQCAtMTgsNiArMTgsNyBAQCBpZiAiQ1VSUkVOVF9UT1hfRU5WIiBpbiBvcy5lbnZpcm9u
OgogCiAgICAgdG94X2Vudl9leHRyYV9icm93c2VycyA9IHsKICAgICAgICAgImNocm9tZSI6IHsi
Y2hyb21lX2FuZHJvaWQifSwKKyAgICAgICAgImVkZ2UiOiB7ImVkZ2Vfd2ViZHJpdmVyIn0sCiAg
ICAgICAgICJzZXJ2byI6IHsic2Vydm9kcml2ZXIifSwKICAgICB9CiAKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVy
L3dwdHJ1bm5lci90ZXN0cy9icm93c2Vycy9fX2luaXRfXy5weSBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci90ZXN0
cy9icm93c2Vycy9fX2luaXRfXy5weQppbmRleCBhNjgzNGI4Mjg1YTU2YmVmMGUxNTQzZmQ5MDFj
N2U2ZjJmOGJjMjAyLi5lNjlkZTI5YmIyZDFkNjQzNGI4YjI5YWU3NzVhZDhjMmU0OGM1MzkxIDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3dwdHJ1bm5lci93cHRydW5uZXIvdGVzdHMvYnJvd3NlcnMvX19pbml0X18ucHkKKysrIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5u
ZXIvd3B0cnVubmVyL3Rlc3RzL2Jyb3dzZXJzL19faW5pdF9fLnB5CkBAIC0xICswLDAgQEAKLSMg
VGhpcyBmaWxlIGlzIHJlcXVpcmVkIGZvciBQeXRob24gdG8gc2VhcmNoIHRoaXMgZGlyZWN0b3J5
IGZvciBtb2R1bGVzLgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVy
L3dwdHJ1bm5lci90ZXN0cy9icm93c2Vycy90ZXN0X3NhdWNlLnB5IGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3Rl
c3RzL2Jyb3dzZXJzL3Rlc3Rfc2F1Y2UucHkKaW5kZXggZTg1NDI5NTlhYTJlZmJjZGM1MTkwYWZj
MWM5MDZmMGE2NzE3ZTJjMS4uMDZhNTY0MWQ1MGZiYmFlZDRkZTlkZjUxMWM1Njc3NTNlZjFhMzI2
ZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3Rlc3RzL2Jyb3dzZXJzL3Rlc3Rfc2F1Y2UucHkK
KysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93
cHRydW5uZXIvd3B0cnVubmVyL3Rlc3RzL2Jyb3dzZXJzL3Rlc3Rfc2F1Y2UucHkKQEAgLTI1LDcg
KzI1LDggQEAgZGVmIHRlc3Rfc2F1Y2Vjb25uZWN0X3N1Y2Nlc3MoKToKICAgICAgICAgICAgIHNh
dWNlX3VzZXI9ImFhYSIsCiAgICAgICAgICAgICBzYXVjZV9rZXk9ImJiYiIsCiAgICAgICAgICAg
ICBzYXVjZV90dW5uZWxfaWQ9ImNjYyIsCi0gICAgICAgICAgICBzYXVjZV9jb25uZWN0X2JpbmFy
eT0iZGRkIikKKyAgICAgICAgICAgIHNhdWNlX2Nvbm5lY3RfYmluYXJ5PSJkZGQiLAorICAgICAg
ICAgICAgc2F1Y2VfY29ubmVjdF9hcmdzPVtdKQogCiAgICAgICAgIHdpdGggQ29uZmlnQnVpbGRl
cihicm93c2VyX2hvc3Q9ImV4YW1wbGUubmV0IikgYXMgZW52X2NvbmZpZzoKICAgICAgICAgICAg
IHNhdWNlX2Nvbm5lY3QoTm9uZSwgZW52X2NvbmZpZykKQEAgLTU0LDcgKzU1LDggQEAgZGVmIHRl
c3Rfc2F1Y2Vjb25uZWN0X2ZhaWx1cmVfZXhpdChyZWFkeWZpbGUsIHJldHVybmNvZGUpOgogICAg
ICAgICAgICAgc2F1Y2VfdXNlcj0iYWFhIiwKICAgICAgICAgICAgIHNhdWNlX2tleT0iYmJiIiwK
ICAgICAgICAgICAgIHNhdWNlX3R1bm5lbF9pZD0iY2NjIiwKLSAgICAgICAgICAgIHNhdWNlX2Nv
bm5lY3RfYmluYXJ5PSJkZGQiKQorICAgICAgICAgICAgc2F1Y2VfY29ubmVjdF9iaW5hcnk9ImRk
ZCIsCisgICAgICAgICAgICBzYXVjZV9jb25uZWN0X2FyZ3M9W10pCiAKICAgICAgICAgd2l0aCBD
b25maWdCdWlsZGVyKGJyb3dzZXJfaG9zdD0iZXhhbXBsZS5uZXQiKSBhcyBlbnZfY29uZmlnOgog
ICAgICAgICAgICAgc2F1Y2VfY29ubmVjdChOb25lLCBlbnZfY29uZmlnKQpAQCAtODIsNyArODQs
OCBAQCBkZWYgdGVzdF9zYXVjZWNvbm5lY3RfY2xlYW51cCgpOgogICAgICAgICAgICAgc2F1Y2Vf
dXNlcj0iYWFhIiwKICAgICAgICAgICAgIHNhdWNlX2tleT0iYmJiIiwKICAgICAgICAgICAgIHNh
dWNlX3R1bm5lbF9pZD0iY2NjIiwKLSAgICAgICAgICAgIHNhdWNlX2Nvbm5lY3RfYmluYXJ5PSJk
ZGQiKQorICAgICAgICAgICAgc2F1Y2VfY29ubmVjdF9iaW5hcnk9ImRkZCIsCisgICAgICAgICAg
ICBzYXVjZV9jb25uZWN0X2FyZ3M9W10pCiAKICAgICAgICAgd2l0aCBDb25maWdCdWlsZGVyKGJy
b3dzZXJfaG9zdD0iZXhhbXBsZS5uZXQiKSBhcyBlbnZfY29uZmlnOgogICAgICAgICAgICAgc2F1
Y2VfY29ubmVjdChOb25lLCBlbnZfY29uZmlnKQpAQCAtMTA2LDcgKzEwOSw4IEBAIGRlZiB0ZXN0
X3NhdWNlY29ubmVjdF9mYWlsdXJlX25ldmVyX3JlYWR5KCk6CiAgICAgICAgICAgICBzYXVjZV91
c2VyPSJhYWEiLAogICAgICAgICAgICAgc2F1Y2Vfa2V5PSJiYmIiLAogICAgICAgICAgICAgc2F1
Y2VfdHVubmVsX2lkPSJjY2MiLAotICAgICAgICAgICAgc2F1Y2VfY29ubmVjdF9iaW5hcnk9ImRk
ZCIpCisgICAgICAgICAgICBzYXVjZV9jb25uZWN0X2JpbmFyeT0iZGRkIiwKKyAgICAgICAgICAg
IHNhdWNlX2Nvbm5lY3RfYXJncz1bXSkKIAogICAgICAgICB3aXRoIENvbmZpZ0J1aWxkZXIoYnJv
d3Nlcl9ob3N0PSJleGFtcGxlLm5ldCIpIGFzIGVudl9jb25maWc6CiAgICAgICAgICAgICBzYXVj
ZV9jb25uZWN0KE5vbmUsIGVudl9jb25maWcpCkBAIC0xMzQsNyArMTM4LDggQEAgZGVmIHRlc3Rf
c2F1Y2Vjb25uZWN0X3R1bm5lbF9kb21haW5zKCk6CiAgICAgICAgICAgICBzYXVjZV91c2VyPSJh
YWEiLAogICAgICAgICAgICAgc2F1Y2Vfa2V5PSJiYmIiLAogICAgICAgICAgICAgc2F1Y2VfdHVu
bmVsX2lkPSJjY2MiLAotICAgICAgICAgICAgc2F1Y2VfY29ubmVjdF9iaW5hcnk9ImRkZCIpCisg
ICAgICAgICAgICBzYXVjZV9jb25uZWN0X2JpbmFyeT0iZGRkIiwKKyAgICAgICAgICAgIHNhdWNl
X2Nvbm5lY3RfYXJncz1bXSkKIAogICAgICAgICB3aXRoIENvbmZpZ0J1aWxkZXIoYnJvd3Nlcl9o
b3N0PSJleGFtcGxlLm5ldCIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbHRlcm5hdGVf
aG9zdHM9eyJhbHQiOiAiZXhhbXBsZS5vcmcifSwKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci90
ZXN0cy9icm93c2Vycy90ZXN0X3dlYmtpdGd0ay5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci90ZXN0cy9icm93
c2Vycy90ZXN0X3dlYmtpdGd0ay5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iZTAwZGM0YTZiNzc5ZjQ5ZWVjMjc4
MTU4ZjliYzM1YzI4YWFkZGQ2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3Rlc3Rz
L2Jyb3dzZXJzL3Rlc3Rfd2Via2l0Z3RrLnB5CkBAIC0wLDAgKzEsNTcgQEAKK2Zyb20gb3MucGF0
aCBpbXBvcnQgam9pbiwgZGlybmFtZQorCitpbXBvcnQgcHl0ZXN0CisKK2Zyb20gd3B0c2VydmUu
Y29uZmlnIGltcG9ydCBDb25maWdCdWlsZGVyCitmcm9tIC4uYmFzZSBpbXBvcnQgYWN0aXZlX3By
b2R1Y3RzCitmcm9tIHdwdHJ1bm5lciBpbXBvcnQgZW52aXJvbm1lbnQsIHByb2R1Y3RzCisKK3Rl
c3RfcGF0aHMgPSB7Ii8iOiB7InRlc3RzX3BhdGgiOiBqb2luKGRpcm5hbWUoX19maWxlX18pLCAi
Li4iLCAiLi4iLCAiLi4iLCAiLi4iLCAiLi4iKX19ICAjIHJlcG8gcm9vdAorZW52aXJvbm1lbnQu
ZG9fZGVsYXllZF9pbXBvcnRzKE5vbmUsIHRlc3RfcGF0aHMpCisKKworQGFjdGl2ZV9wcm9kdWN0
cygicHJvZHVjdCIpCitkZWYgdGVzdF93ZWJraXRndGtfY2VydGlmaWNhdGVfZG9tYWluX2xpc3Qo
cHJvZHVjdCk6CisKKyAgICBkZWYgZG9tYWluX2lzX2luc2lkZV9jZXJ0aWZpY2F0ZV9saXN0X2Nl
cnQoZG9tYWluX3RvX2ZpbmQsIHdlYmtpdGd0a19jZXJ0aWZpY2F0ZV9saXN0LCBjZXJ0X2ZpbGUp
OgorICAgICAgICBmb3IgZG9tYWluIGluIHdlYmtpdGd0a19jZXJ0aWZpY2F0ZV9saXN0OgorICAg
ICAgICAgICAgaWYgZG9tYWluWyJob3N0Il0gPT0gZG9tYWluX3RvX2ZpbmQgYW5kIGRvbWFpblsi
Y2VydGlmaWNhdGVGaWxlIl0gPT0gY2VydF9maWxlOgorICAgICAgICAgICAgICAgIHJldHVybiBU
cnVlCisgICAgICAgIHJldHVybiBGYWxzZQorCisgICAgaWYgcHJvZHVjdCBub3QgaW4gWyJlcGlw
aGFueSIsICJ3ZWJraXQiLCAid2Via2l0Z3RrX21pbmlicm93c2VyIl06CisgICAgICAgIHB5dGVz
dC5za2lwKCIlcyBkb2Vzbid0IHN1cHBvcnQgY2VydGlmaWNhdGVfZG9tYWluX2xpc3QiICUgcHJv
ZHVjdCkKKworICAgIChjaGVja19hcmdzLAorICAgICB0YXJnZXRfYnJvd3Nlcl9jbHMsIGdldF9i
cm93c2VyX2t3YXJncywKKyAgICAgZXhlY3V0b3JfY2xhc3NlcywgZ2V0X2V4ZWN1dG9yX2t3YXJn
cywKKyAgICAgZW52X29wdGlvbnMsIGdldF9lbnZfZXh0cmFzLCBydW5faW5mb19leHRyYXMpID0g
cHJvZHVjdHMubG9hZF9wcm9kdWN0KHt9LCBwcm9kdWN0KQorCisgICAgY2VydF9maWxlID0gIi9o
b21lL3VzZXIvd3B0L3Rvb2xzL2NlcnRzL2NhY2VydC5wZW0iCisgICAgdmFsaWRfZG9tYWluc190
ZXN0ID0gWyJhLmV4YW1wbGUub3JnIiwgImIuZXhhbXBsZS5vcmciLCAiZXhhbXBsZS5vcmciLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAiYS5leGFtcGxlLm5ldCIsICJiLmV4YW1wbGUubmV0
IiwgImV4YW1wbGUubmV0Il0KKyAgICBpbnZhbGlkX2RvbWFpbnNfdGVzdCA9IFsieC5leGFtcGxl
Lm9yZyIsICJ5LmV4YW1wbGUub3JnIiwgImV4YW1wbGUuaXQiLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICJ4LmV4YW1wbGUubmV0IiwgInkuZXhhbXBsZS5uZXQiLCAiei5leGFtcGxlLm5l
dCJdCisgICAga3dhcmdzID0ge30KKyAgICBrd2FyZ3NbInRpbWVvdXRfbXVsdGlwbGllciJdID0g
MQorICAgIGt3YXJnc1siZGVidWdfaW5mbyJdID0gTm9uZQorICAgIGt3YXJnc1siaG9zdF9jZXJ0
X3BhdGgiXSA9IGNlcnRfZmlsZQorICAgIGt3YXJnc1sid2Via2l0X3BvcnQiXSA9ICJndGsiCisg
ICAga3dhcmdzWyJiaW5hcnkiXSA9IE5vbmUKKyAgICBrd2FyZ3NbIndlYmRyaXZlcl9iaW5hcnki
XSA9IE5vbmUKKyAgICB3aXRoIENvbmZpZ0J1aWxkZXIoYnJvd3Nlcl9ob3N0PSJleGFtcGxlLm5l
dCIsCisgICAgICAgICAgICAgICAgICAgICAgIGFsdGVybmF0ZV9ob3N0cz17ImFsdCI6ICJleGFt
cGxlLm9yZyJ9LAorICAgICAgICAgICAgICAgICAgICAgICBzdWJkb21haW5zPXsiYSIsICJiIn0s
CisgICAgICAgICAgICAgICAgICAgICAgIG5vdF9zdWJkb21haW5zPXsieCIsICJ5In0pIGFzIGVu
dl9jb25maWc6CisKKyAgICAgICAgZXhlY3V0b3JfYXJncyA9IGdldF9leGVjdXRvcl9rd2FyZ3Mo
Tm9uZSwgZW52X2NvbmZpZywgTm9uZSwgTm9uZSwgKiprd2FyZ3MpCisgICAgICAgIGFzc2VydCgn
Y2FwYWJpbGl0aWVzJyBpbiBleGVjdXRvcl9hcmdzKQorICAgICAgICBhc3NlcnQoJ3dlYmtpdGd0
azpicm93c2VyT3B0aW9ucycgaW4gZXhlY3V0b3JfYXJnc1snY2FwYWJpbGl0aWVzJ10pCisgICAg
ICAgIGFzc2VydCgnY2VydGlmaWNhdGVzJyBpbiBleGVjdXRvcl9hcmdzWydjYXBhYmlsaXRpZXMn
XVsnd2Via2l0Z3RrOmJyb3dzZXJPcHRpb25zJ10pCisgICAgICAgIGNlcnRfbGlzdCA9IGV4ZWN1
dG9yX2FyZ3NbJ2NhcGFiaWxpdGllcyddWyd3ZWJraXRndGs6YnJvd3Nlck9wdGlvbnMnXVsnY2Vy
dGlmaWNhdGVzJ10KKyAgICAgICAgZm9yIHZhbGlkX2RvbWFpbiBpbiB2YWxpZF9kb21haW5zX3Rl
c3Q6CisgICAgICAgICAgICBhc3NlcnQoZG9tYWluX2lzX2luc2lkZV9jZXJ0aWZpY2F0ZV9saXN0
X2NlcnQodmFsaWRfZG9tYWluLCBjZXJ0X2xpc3QsIGNlcnRfZmlsZSkpCisgICAgICAgICAgICBh
c3NlcnQobm90IGRvbWFpbl9pc19pbnNpZGVfY2VydGlmaWNhdGVfbGlzdF9jZXJ0KHZhbGlkX2Rv
bWFpbiwgY2VydF9saXN0LCBjZXJ0X2ZpbGUgKyAiLmJhY2t1cF9ub25fZXhpc3RlbnQiKSkKKyAg
ICAgICAgZm9yIGludmFsaWRfZG9tYWluIGluIGludmFsaWRfZG9tYWluc190ZXN0OgorICAgICAg
ICAgICAgYXNzZXJ0KG5vdCBkb21haW5faXNfaW5zaWRlX2NlcnRpZmljYXRlX2xpc3RfY2VydChp
bnZhbGlkX2RvbWFpbiwgY2VydF9saXN0LCBjZXJ0X2ZpbGUpKQorICAgICAgICAgICAgYXNzZXJ0
KG5vdCBkb21haW5faXNfaW5zaWRlX2NlcnRpZmljYXRlX2xpc3RfY2VydChpbnZhbGlkX2RvbWFp
biwgY2VydF9saXN0LCBjZXJ0X2ZpbGUgKyAiLmJhY2t1cF9ub25fZXhpc3RlbnQiKSkKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
d3B0cnVubmVyL3dwdHJ1bm5lci90ZXN0cy9icm93c2Vycy93M2MtaW1wb3J0LmxvZyBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dw
dHJ1bm5lci90ZXN0cy9icm93c2Vycy93M2MtaW1wb3J0LmxvZwpkZWxldGVkIGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMmViNjdiYWE2MzBjNzBiZjkzOTk2YzlmNzAyN2FlYmRlYzNhNjA4OC4uMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIv
dGVzdHMvYnJvd3NlcnMvdzNjLWltcG9ydC5sb2cKKysrIC9kZXYvbnVsbApAQCAtMSwxOCArMCww
IEBACi1UaGUgdGVzdHMgaW4gdGhpcyBkaXJlY3Rvcnkgd2VyZSBpbXBvcnRlZCBmcm9tIHRoZSBX
M0MgcmVwb3NpdG9yeS4KLURvIE5PVCBtb2RpZnkgdGhlc2UgdGVzdHMgZGlyZWN0bHkgaW4gV2Vi
S2l0LgotSW5zdGVhZCwgY3JlYXRlIGEgcHVsbCByZXF1ZXN0IG9uIHRoZSBXUFQgZ2l0aHViOgot
CWh0dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxhdGZvcm0tdGVzdHMvd3B0Ci0KLVRoZW4gcnVuIHRo
ZSBUb29scy9TY3JpcHRzL2ltcG9ydC13M2MtdGVzdHMgaW4gV2ViS2l0IHRvIHJlaW1wb3J0Ci0K
LURvIE5PVCBtb2RpZnkgb3IgcmVtb3ZlIHRoaXMgZmlsZS4KLQotLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1Q
cm9wZXJ0aWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi1Qcm9wZXJ0eSB2YWx1
ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotTGlz
dCBvZiBmaWxlczoKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvdGVzdHMvYnJvd3NlcnMvX19pbml0X18ucHkKLS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5l
ci93cHRydW5uZXIvdGVzdHMvYnJvd3NlcnMvdGVzdF9zYXVjZS5weQpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIv
d3B0cnVubmVyL3Rlc3RzL3Rlc3RfY2h1bmtlci5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci90ZXN0cy90ZXN0
X2NodW5rZXIucHkKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGJkNjQ5ZDY5ZTM5YTBm
NzQwOGU4NDAyMDY5NzgxNzdkNWU0OTgzYmYuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3Rlc3RzL3Rlc3RfY2h1bmtlci5weQorKysg
L2Rldi9udWxsCkBAIC0xLDk4ICswLDAgQEAKLWltcG9ydCB1bml0dGVzdAotaW1wb3J0IHN5cwot
ZnJvbSBvcy5wYXRoIGltcG9ydCBqb2luLCBkaXJuYW1lCi1mcm9tIG1vemxvZyBpbXBvcnQgc3Ry
dWN0dXJlZAotCi1zeXMucGF0aC5pbnNlcnQoMCwgam9pbihkaXJuYW1lKF9fZmlsZV9fKSwgIi4u
IiwgIi4uIiwgIi4uIikpCi0KLWZyb20gd3B0cnVubmVyLnRlc3Rsb2FkZXIgaW1wb3J0IEVxdWFs
VGltZUNodW5rZXIKLWZyb20gbWFuaWZlc3Quc291cmNlZmlsZSBpbXBvcnQgU291cmNlRmlsZQot
Ci1zdHJ1Y3R1cmVkLnNldF9kZWZhdWx0X2xvZ2dlcihzdHJ1Y3R1cmVkLnN0cnVjdHVyZWRsb2cu
U3RydWN0dXJlZExvZ2dlcigiVGVzdENodW5rZXIiKSkKLQotCi10ZXN0aGFybmVzc190ZXN0ID0g
IiIiPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgotPHNj
cmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PiIiIgot
Ci0KLWNsYXNzIE1vY2tUZXN0KG9iamVjdCk6Ci0gICAgZGVmYXVsdF90aW1lb3V0ID0gMTAKLQot
ICAgIGRlZiBfX2luaXRfXyhzZWxmLCBpZCwgcGF0aCwgdGltZW91dD0xMCwgY29udGVudHM9dGVz
dGhhcm5lc3NfdGVzdCk6Ci0gICAgICAgIHNlbGYuaWQgPSBpZAotICAgICAgICBzZWxmLnVybCA9
ICIvIiArIHBhdGgKLSAgICAgICAgc2VsZi5pdGVtX3R5cGUgPSAidGVzdGhhcm5lc3MiCi0gICAg
ICAgIHNlbGYudGltZW91dCA9IHRpbWVvdXQKLSAgICAgICAgc2VsZi5zb3VyY2VfZmlsZSA9IFNv
dXJjZUZpbGUoIi8iLCBwYXRoLCAiLyIsIGNvbnRlbnRzPWNvbnRlbnRzKQotCi0KLWRlZiBtYWtl
X21vY2tfbWFuaWZlc3QoKml0ZW1zKToKLSAgICBydiA9IFtdCi0gICAgZm9yIHRlc3RfdHlwZSwg
ZGlyX3BhdGgsIG51bV90ZXN0cyBpbiBpdGVtczoKLSAgICAgICAgZm9yIGkgaW4gcmFuZ2UobnVt
X3Rlc3RzKToKLSAgICAgICAgICAgIGZpbGVuYW1lID0gIi8laS5odG1sIiAlIGkKLSAgICAgICAg
ICAgIHJ2LmFwcGVuZCgodGVzdF90eXBlLAotICAgICAgICAgICAgICAgICAgICAgICBkaXJfcGF0
aCArIGZpbGVuYW1lLAotICAgICAgICAgICAgICAgICAgICAgICBzZXQoW01vY2tUZXN0KCIlaS5o
dG1sIiAlIGksIGRpcl9wYXRoICsgZmlsZW5hbWUpXSkpKQotICAgIHJldHVybiBydgotCi0KLWNs
YXNzIFRlc3RFcXVhbFRpbWVDaHVua2VyKHVuaXR0ZXN0LlRlc3RDYXNlKToKLQotICAgIGRlZiB0
ZXN0X2luY2x1ZGVfYWxsKHNlbGYpOgotICAgICAgICB0ZXN0cyA9IG1ha2VfbW9ja19tYW5pZmVz
dCgoInRlc3QiLCAiYSIsIDEwKSwgKCJ0ZXN0IiwgImEvYiIsIDEwKSwKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgKCJ0ZXN0IiwgImMiLCAxMCkpCi0KLSAgICAgICAgY2h1bmtf
MSA9IGxpc3QoRXF1YWxUaW1lQ2h1bmtlcigzLCAxKSh0ZXN0cykpCi0gICAgICAgIGNodW5rXzIg
PSBsaXN0KEVxdWFsVGltZUNodW5rZXIoMywgMikodGVzdHMpKQotICAgICAgICBjaHVua18zID0g
bGlzdChFcXVhbFRpbWVDaHVua2VyKDMsIDMpKHRlc3RzKSkKLQotICAgICAgICBzZWxmLmFzc2Vy
dEVxdWFscyh0ZXN0c1s6MTBdLCBjaHVua18xKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFscyh0
ZXN0c1sxMDoyMF0sIGNodW5rXzIpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKHRlc3RzWzIw
Ol0sIGNodW5rXzMpCi0KLSAgICBkZWYgdGVzdF9pbmNsdWRlX2FsbF8xKHNlbGYpOgotICAgICAg
ICB0ZXN0cyA9IG1ha2VfbW9ja19tYW5pZmVzdCgoInRlc3QiLCAiYSIsIDUpLCAoInRlc3QiLCAi
YS9iIiwgNSksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgidGVzdCIsICJj
IiwgMTApLCAoInRlc3QiLCAiZCIsIDEwKSkKLQotICAgICAgICBjaHVua18xID0gbGlzdChFcXVh
bFRpbWVDaHVua2VyKDMsIDEpKHRlc3RzKSkKLSAgICAgICAgY2h1bmtfMiA9IGxpc3QoRXF1YWxU
aW1lQ2h1bmtlcigzLCAyKSh0ZXN0cykpCi0gICAgICAgIGNodW5rXzMgPSBsaXN0KEVxdWFsVGlt
ZUNodW5rZXIoMywgMykodGVzdHMpKQotCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKHRlc3Rz
WzoxMF0sIGNodW5rXzEpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKHRlc3RzWzEwOjIwXSwg
Y2h1bmtfMikKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHModGVzdHNbMjA6XSwgY2h1bmtfMykK
LQotICAgIGRlZiB0ZXN0X2xvbmcoc2VsZik6Ci0gICAgICAgIHRlc3RzID0gbWFrZV9tb2NrX21h
bmlmZXN0KCgidGVzdCIsICJhIiwgMTAwKSwgKCJ0ZXN0IiwgImEvYiIsIDEpLAotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAoInRlc3QiLCAiYyIsIDEpKQotCi0gICAgICAgIGNo
dW5rXzEgPSBsaXN0KEVxdWFsVGltZUNodW5rZXIoMywgMSkodGVzdHMpKQotICAgICAgICBjaHVu
a18yID0gbGlzdChFcXVhbFRpbWVDaHVua2VyKDMsIDIpKHRlc3RzKSkKLSAgICAgICAgY2h1bmtf
MyA9IGxpc3QoRXF1YWxUaW1lQ2h1bmtlcigzLCAzKSh0ZXN0cykpCi0KLSAgICAgICAgc2VsZi5h
c3NlcnRFcXVhbHModGVzdHNbOjEwMF0sIGNodW5rXzEpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1
YWxzKHRlc3RzWzEwMDoxMDFdLCBjaHVua18yKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFscyh0
ZXN0c1sxMDE6MTAyXSwgY2h1bmtfMykKLQotICAgIGRlZiB0ZXN0X2xvbmdfMShzZWxmKToKLSAg
ICAgICAgdGVzdHMgPSBtYWtlX21vY2tfbWFuaWZlc3QoKCJ0ZXN0IiwgImEiLCAxKSwgKCJ0ZXN0
IiwgImEvYiIsIDEwMCksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgidGVz
dCIsICJjIiwgMSkpCi0KLSAgICAgICAgY2h1bmtfMSA9IGxpc3QoRXF1YWxUaW1lQ2h1bmtlcigz
LCAxKSh0ZXN0cykpCi0gICAgICAgIGNodW5rXzIgPSBsaXN0KEVxdWFsVGltZUNodW5rZXIoMywg
MikodGVzdHMpKQotICAgICAgICBjaHVua18zID0gbGlzdChFcXVhbFRpbWVDaHVua2VyKDMsIDMp
KHRlc3RzKSkKLQotICAgICAgICBzZWxmLmFzc2VydEVxdWFscyh0ZXN0c1s6MV0sIGNodW5rXzEp
Ci0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKHRlc3RzWzE6MTAxXSwgY2h1bmtfMikKLSAgICAg
ICAgc2VsZi5hc3NlcnRFcXVhbHModGVzdHNbMTAxOjEwMl0sIGNodW5rXzMpCi0KLSAgICBkZWYg
dGVzdF90b29fZmV3X2RpcnMoc2VsZik6Ci0gICAgICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXMo
VmFsdWVFcnJvcik6Ci0gICAgICAgICAgICB0ZXN0cyA9IG1ha2VfbW9ja19tYW5pZmVzdCgoInRl
c3QiLCAiYSIsIDEpLCAoInRlc3QiLCAiYS9iIiwgMTAwKSwKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICgidGVzdCIsICJjIiwgMSkpCi0gICAgICAgICAgICBsaXN0KEVx
dWFsVGltZUNodW5rZXIoNCwgMSkodGVzdHMpKQotCi0KLWlmIF9fbmFtZV9fID09ICJfX21haW5f
XyI6Ci0gICAgdW5pdHRlc3QubWFpbigpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvdGVzdHMv
dGVzdF9leHBlY3RlZHRyZWUucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvdGVzdHMvdGVzdF9leHBlY3RlZHRy
ZWUucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uMjMwOGJlOTU5MGU5MDA0ZjQxYTQ5MjY4MmQxODdhN2I0ZmM1NzIz
MQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci90ZXN0cy90ZXN0X2V4cGVjdGVkdHJl
ZS5weQpAQCAtMCwwICsxLDEzMiBAQAoraW1wb3J0IHN5cworCitpbXBvcnQgcHl0ZXN0CisKK2Zy
b20gLi4gaW1wb3J0IGV4cGVjdGVkdHJlZSwgbWV0YWRhdGEKK2Zyb20gY29sbGVjdGlvbnMgaW1w
b3J0IGRlZmF1bHRkaWN0CisKKworZGVmIGR1bXBfdHJlZSh0cmVlKToKKyAgICBydiA9IFtdCisK
KyAgICBkZWYgZHVtcF9ub2RlKG5vZGUsIGluZGVudD0wKToKKyAgICAgICAgcHJlZml4ID0gIiAi
ICogaW5kZW50CisgICAgICAgIGlmIG5vdCBub2RlLnByb3A6CisgICAgICAgICAgICBkYXRhID0g
InJvb3QiCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBkYXRhID0gIiVzOiVzIiAlIChub2Rl
LnByb3AsIG5vZGUudmFsdWUpCisgICAgICAgIGlmIG5vZGUucmVzdWx0X3ZhbHVlczoKKyAgICAg
ICAgICAgIGRhdGEgKz0gIiByZXN1bHRfdmFsdWVzOiVzIiAlICgiLCIuam9pbihzb3J0ZWQobm9k
ZS5yZXN1bHRfdmFsdWVzKSkpCisgICAgICAgIHJ2LmFwcGVuZCgiJXM8JXM+IiAlIChwcmVmaXgs
IGRhdGEpKQorICAgICAgICBmb3IgY2hpbGQgaW4gc29ydGVkKG5vZGUuY2hpbGRyZW4sIGtleT1s
YW1iZGEgeDp4LnZhbHVlKToKKyAgICAgICAgICAgIGR1bXBfbm9kZShjaGlsZCwgaW5kZW50ICsg
MikKKyAgICBkdW1wX25vZGUodHJlZSkKKyAgICByZXR1cm4gIlxuIi5qb2luKHJ2KQorCisKK2Rl
ZiByZXN1bHRzX29iamVjdChyZXN1bHRzKToKKyAgICByZXN1bHRzX29iaiA9IGRlZmF1bHRkaWN0
KGxhbWJkYTogZGVmYXVsdGRpY3QoaW50KSkKKyAgICBmb3IgcnVuX2luZm8sIHN0YXR1cyBpbiBy
ZXN1bHRzOgorICAgICAgICBydW5faW5mbyA9IG1ldGFkYXRhLlJ1bkluZm8ocnVuX2luZm8pCisg
ICAgICAgIHJlc3VsdHNfb2JqW3J1bl9pbmZvXVtzdGF0dXNdICs9IDEKKyAgICByZXR1cm4gcmVz
dWx0c19vYmoKKworCitAcHl0ZXN0Lm1hcmsueGZhaWwoc3lzLnZlcnNpb25bMF0gPT0gIjMiLAor
ICAgICAgICAgICAgICAgICAgIHJlYXNvbj0ibWV0YWRhdGEgZG9lc24ndCBzdXBwb3J0IHB5MyIp
CitkZWYgdGVzdF9idWlsZF90cmVlXzAoKToKKyAgICAjIFBhc3MgaWYgZGVidWcKKyAgICByZXN1
bHRzID0gWyh7Im9zIjogImxpbnV4IiwgInZlcnNpb24iOiAiMTguMDQiLCAiZGVidWciOiBUcnVl
fSwgIkZBSUwiKSwKKyAgICAgICAgICAgICAgICh7Im9zIjogImxpbnV4IiwgInZlcnNpb24iOiAi
MTguMDQiLCAiZGVidWciOiBGYWxzZX0sICJQQVNTIiksCisgICAgICAgICAgICAgICAoeyJvcyI6
ICJsaW51eCIsICJ2ZXJzaW9uIjogIjE2LjA0IiwgImRlYnVnIjogRmFsc2V9LCAiUEFTUyIpLAor
ICAgICAgICAgICAgICAgKHsib3MiOiAibWFjIiwgInZlcnNpb24iOiAiMTAuMTIiLCAiZGVidWci
OiBUcnVlfSwgIkZBSUwiKSwKKyAgICAgICAgICAgICAgICh7Im9zIjogIm1hYyIsICJ2ZXJzaW9u
IjogIjEwLjEyIiwgImRlYnVnIjogRmFsc2V9LCAiUEFTUyIpLAorICAgICAgICAgICAgICAgKHsi
b3MiOiAid2luIiwgInZlcnNpb24iOiAiNyIsICJkZWJ1ZyI6IEZhbHNlfSwgIlBBU1MiKSwKKyAg
ICAgICAgICAgICAgICh7Im9zIjogIndpbiIsICJ2ZXJzaW9uIjogIjEwIiwgImRlYnVnIjogRmFs
c2V9LCAiUEFTUyIpXQorICAgIHJlc3VsdHNfb2JqID0gcmVzdWx0c19vYmplY3QocmVzdWx0cykK
KyAgICB0cmVlID0gZXhwZWN0ZWR0cmVlLmJ1aWxkX3RyZWUoWyJvcyIsICJ2ZXJzaW9uIiwgImRl
YnVnIl0sIHt9LCByZXN1bHRzX29iaikKKworICAgIGV4cGVjdGVkID0gIiIiPHJvb3Q+CisgIDxk
ZWJ1ZzpGYWxzZSByZXN1bHRfdmFsdWVzOlBBU1M+CisgIDxkZWJ1ZzpUcnVlIHJlc3VsdF92YWx1
ZXM6RkFJTD4iIiIKKworICAgIGFzc2VydCBkdW1wX3RyZWUodHJlZSkgPT0gZXhwZWN0ZWQKKwor
CitAcHl0ZXN0Lm1hcmsueGZhaWwoc3lzLnZlcnNpb25bMF0gPT0gIjMiLAorICAgICAgICAgICAg
ICAgICAgIHJlYXNvbj0ibWV0YWRhdGEgZG9lc24ndCBzdXBwb3J0IHB5MyIpCitkZWYgdGVzdF9i
dWlsZF90cmVlXzEoKToKKyAgICAjIFBhc3MgaWYgbGludXggb3Igd2luZG93cyAxMAorICAgIHJl
c3VsdHMgPSBbKHsib3MiOiAibGludXgiLCAidmVyc2lvbiI6ICIxOC4wNCIsICJkZWJ1ZyI6IFRy
dWV9LCAiUEFTUyIpLAorICAgICAgICAgICAgICAgKHsib3MiOiAibGludXgiLCAidmVyc2lvbiI6
ICIxOC4wNCIsICJkZWJ1ZyI6IEZhbHNlfSwgIlBBU1MiKSwKKyAgICAgICAgICAgICAgICh7Im9z
IjogImxpbnV4IiwgInZlcnNpb24iOiAiMTYuMDQiLCAiZGVidWciOiBGYWxzZX0sICJQQVNTIiks
CisgICAgICAgICAgICAgICAoeyJvcyI6ICJtYWMiLCAidmVyc2lvbiI6ICIxMC4xMiIsICJkZWJ1
ZyI6IFRydWV9LCAiRkFJTCIpLAorICAgICAgICAgICAgICAgKHsib3MiOiAibWFjIiwgInZlcnNp
b24iOiAiMTAuMTIiLCAiZGVidWciOiBGYWxzZX0sICJGQUlMIiksCisgICAgICAgICAgICAgICAo
eyJvcyI6ICJ3aW4iLCAidmVyc2lvbiI6ICI3IiwgImRlYnVnIjogRmFsc2V9LCAiRkFJTCIpLAor
ICAgICAgICAgICAgICAgKHsib3MiOiAid2luIiwgInZlcnNpb24iOiAiMTAiLCAiZGVidWciOiBG
YWxzZX0sICJQQVNTIildCisgICAgcmVzdWx0c19vYmogPSByZXN1bHRzX29iamVjdChyZXN1bHRz
KQorICAgIHRyZWUgPSBleHBlY3RlZHRyZWUuYnVpbGRfdHJlZShbIm9zIiwgImRlYnVnIl0sIHsi
b3MiOiBbInZlcnNpb24iXX0sIHJlc3VsdHNfb2JqKQorCisgICAgZXhwZWN0ZWQgPSAiIiI8cm9v
dD4KKyAgPG9zOmxpbnV4IHJlc3VsdF92YWx1ZXM6UEFTUz4KKyAgPG9zOm1hYyByZXN1bHRfdmFs
dWVzOkZBSUw+CisgIDxvczp3aW4+CisgICAgPHZlcnNpb246MTAgcmVzdWx0X3ZhbHVlczpQQVNT
PgorICAgIDx2ZXJzaW9uOjcgcmVzdWx0X3ZhbHVlczpGQUlMPiIiIgorCisgICAgYXNzZXJ0IGR1
bXBfdHJlZSh0cmVlKSA9PSBleHBlY3RlZAorCisKK0BweXRlc3QubWFyay54ZmFpbChzeXMudmVy
c2lvblswXSA9PSAiMyIsCisgICAgICAgICAgICAgICAgICAgcmVhc29uPSJtZXRhZGF0YSBkb2Vz
bid0IHN1cHBvcnQgcHkzIikKK2RlZiB0ZXN0X2J1aWxkX3RyZWVfMigpOgorICAgICMgRmFpbHMg
aW4gYSBzcGVjaWZpYyBjb25maWd1cmF0aW9uCisgICAgcmVzdWx0cyA9IFsoeyJvcyI6ICJsaW51
eCIsICJ2ZXJzaW9uIjogIjE4LjA0IiwgImRlYnVnIjogVHJ1ZX0sICJQQVNTIiksCisgICAgICAg
ICAgICAgICAoeyJvcyI6ICJsaW51eCIsICJ2ZXJzaW9uIjogIjE4LjA0IiwgImRlYnVnIjogRmFs
c2V9LCAiRkFJTCIpLAorICAgICAgICAgICAgICAgKHsib3MiOiAibGludXgiLCAidmVyc2lvbiI6
ICIxNi4wNCIsICJkZWJ1ZyI6IEZhbHNlfSwgIlBBU1MiKSwKKyAgICAgICAgICAgICAgICh7Im9z
IjogImxpbnV4IiwgInZlcnNpb24iOiAiMTYuMDQiLCAiZGVidWciOiBUcnVlfSwgIlBBU1MiKSwK
KyAgICAgICAgICAgICAgICh7Im9zIjogIm1hYyIsICJ2ZXJzaW9uIjogIjEwLjEyIiwgImRlYnVn
IjogVHJ1ZX0sICJQQVNTIiksCisgICAgICAgICAgICAgICAoeyJvcyI6ICJtYWMiLCAidmVyc2lv
biI6ICIxMC4xMiIsICJkZWJ1ZyI6IEZhbHNlfSwgIlBBU1MiKSwKKyAgICAgICAgICAgICAgICh7
Im9zIjogIndpbiIsICJ2ZXJzaW9uIjogIjciLCAiZGVidWciOiBGYWxzZX0sICJQQVNTIiksCisg
ICAgICAgICAgICAgICAoeyJvcyI6ICJ3aW4iLCAidmVyc2lvbiI6ICIxMCIsICJkZWJ1ZyI6IEZh
bHNlfSwgIlBBU1MiKV0KKyAgICByZXN1bHRzX29iaiA9IHJlc3VsdHNfb2JqZWN0KHJlc3VsdHMp
CisgICAgdHJlZSA9IGV4cGVjdGVkdHJlZS5idWlsZF90cmVlKFsib3MiLCAiZGVidWciXSwgeyJv
cyI6IFsidmVyc2lvbiJdfSwgcmVzdWx0c19vYmopCisKKyAgICBleHBlY3RlZCA9ICIiIjxyb290
PgorICA8b3M6bGludXg+CisgICAgPGRlYnVnOkZhbHNlPgorICAgICAgPHZlcnNpb246MTYuMDQg
cmVzdWx0X3ZhbHVlczpQQVNTPgorICAgICAgPHZlcnNpb246MTguMDQgcmVzdWx0X3ZhbHVlczpG
QUlMPgorICAgIDxkZWJ1ZzpUcnVlIHJlc3VsdF92YWx1ZXM6UEFTUz4KKyAgPG9zOm1hYyByZXN1
bHRfdmFsdWVzOlBBU1M+CisgIDxvczp3aW4gcmVzdWx0X3ZhbHVlczpQQVNTPiIiIgorCisgICAg
YXNzZXJ0IGR1bXBfdHJlZSh0cmVlKSA9PSBleHBlY3RlZAorCisKK0BweXRlc3QubWFyay54ZmFp
bChzeXMudmVyc2lvblswXSA9PSAiMyIsCisgICAgICAgICAgICAgICAgICAgcmVhc29uPSJtZXRh
ZGF0YSBkb2Vzbid0IHN1cHBvcnQgcHkzIikKK2RlZiB0ZXN0X2J1aWxkX3RyZWVfMygpOgorCisg
ICAgcmVzdWx0cyA9IFsoeyJvcyI6ICJsaW51eCIsICJ2ZXJzaW9uIjogIjE4LjA0IiwgImRlYnVn
IjogVHJ1ZSwgInVudXNlZCI6IEZhbHNlfSwgIlBBU1MiKSwKKyAgICAgICAgICAgICAgICh7Im9z
IjogImxpbnV4IiwgInZlcnNpb24iOiAiMTguMDQiLCAiZGVidWciOiBUcnVlLCAidW51c2VkIjog
VHJ1ZX0sICJGQUlMIildCisgICAgcmVzdWx0c19vYmogPSByZXN1bHRzX29iamVjdChyZXN1bHRz
KQorICAgIHRyZWUgPSBleHBlY3RlZHRyZWUuYnVpbGRfdHJlZShbIm9zIiwgImRlYnVnIl0sIHsi
b3MiOiBbInZlcnNpb24iXX0sIHJlc3VsdHNfb2JqKQorCisgICAgZXhwZWN0ZWQgPSAiIiI8cm9v
dCByZXN1bHRfdmFsdWVzOkZBSUwsUEFTUz4iIiIKKworICAgIGFzc2VydCBkdW1wX3RyZWUodHJl
ZSkgPT0gZXhwZWN0ZWQKKworCitAcHl0ZXN0Lm1hcmsueGZhaWwoc3lzLnZlcnNpb25bMF0gPT0g
IjMiLAorICAgICAgICAgICAgICAgICAgIHJlYXNvbj0ibWV0YWRhdGEgZG9lc24ndCBzdXBwb3J0
IHB5MyIpCitkZWYgdGVzdF9idWlsZF90cmVlXzQoKToKKyAgICAjIENoZWNrIGNvdW50cyBmb3Ig
bXVsdGlwbGUgc3RhdHVzZXMKKyAgICByZXN1bHRzID0gWyh7Im9zIjogImxpbnV4IiwgInZlcnNp
b24iOiAiMTguMDQiLCAiZGVidWciOiBGYWxzZX0sICJGQUlMIiksCisgICAgICAgICAgICAgICAo
eyJvcyI6ICJsaW51eCIsICJ2ZXJzaW9uIjogIjE4LjA0IiwgImRlYnVnIjogRmFsc2V9LCAiUEFT
UyIpLAorICAgICAgICAgICAgICAgKHsib3MiOiAibGludXgiLCAidmVyc2lvbiI6ICIxOC4wNCIs
ICJkZWJ1ZyI6IEZhbHNlfSwgIlBBU1MiKV0KKyAgICByZXN1bHRzX29iaiA9IHJlc3VsdHNfb2Jq
ZWN0KHJlc3VsdHMpCisgICAgdHJlZSA9IGV4cGVjdGVkdHJlZS5idWlsZF90cmVlKFsib3MiLCAi
dmVyc2lvbiIsICJkZWJ1ZyJdLCB7fSwgcmVzdWx0c19vYmopCisKKyAgICBhc3NlcnQgdHJlZS5y
ZXN1bHRfdmFsdWVzWyJQQVNTIl0gPT0gMgorICAgIGFzc2VydCB0cmVlLnJlc3VsdF92YWx1ZXNb
IkZBSUwiXSA9PSAxCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvdGVzdHMvdGVzdF9mb3JtYXR0
ZXJzLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy93cHRydW5uZXIvd3B0cnVubmVyL3Rlc3RzL3Rlc3RfZm9ybWF0dGVycy5weQppbmRleCBmYzJj
ZTViYzExMTYxMDU3YTBmYTExMGU2YWE2NGEyMWNjMGU4YWFkLi43MmYzYTU5MWFkN2Y5MDUzMjY3
MWNjYjg5N2RmY2IxNjFiYzhmNDVkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvdGVzdHMvdGVz
dF9mb3JtYXR0ZXJzLnB5CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci90ZXN0cy90ZXN0X2Zvcm1hdHRlcnMu
cHkKQEAgLTEsMTQgKzEsMTMgQEAKIGltcG9ydCBqc29uCi1pbXBvcnQgc3lzCiBpbXBvcnQgdGlt
ZQotZnJvbSBvcy5wYXRoIGltcG9ydCBkaXJuYW1lLCBqb2luCi1mcm9tIFN0cmluZ0lPIGltcG9y
dCBTdHJpbmdJTworZnJvbSBzaXgubW92ZXMgaW1wb3J0IGNTdHJpbmdJTyBhcyBTdHJpbmdJTwog
Ci1mcm9tIG1vemxvZyBpbXBvcnQgaGFuZGxlcnMsIHN0cnVjdHVyZWRsb2cKK2ltcG9ydCBtb2Nr
CiAKLXN5cy5wYXRoLmluc2VydCgwLCBqb2luKGRpcm5hbWUoX19maWxlX18pLCAiLi4iLCAiLi4i
KSkKK2Zyb20gbW96bG9nIGltcG9ydCBoYW5kbGVycywgc3RydWN0dXJlZGxvZwogCi1mcm9tIHdw
dHJ1bm5lci5mb3JtYXR0ZXJzIGltcG9ydCBXcHRyZXBvcnRGb3JtYXR0ZXIKK2Zyb20gLi5mb3Jt
YXR0ZXJzIGltcG9ydCB3cHRyZXBvcnQKK2Zyb20gLi5mb3JtYXR0ZXJzLndwdHJlcG9ydCBpbXBv
cnQgV3B0cmVwb3J0Rm9ybWF0dGVyCiAKIAogZGVmIHRlc3Rfd3B0cmVwb3J0X3J1bnRpbWUoY2Fw
ZmQpOgpAQCAtNjIsMyArNjEsMTA4IEBAIGRlZiB0ZXN0X3dwdHJlcG9ydF9ydW5faW5mb19vcHRp
b25hbChjYXBmZCk6CiAgICAgb3V0cHV0LnNlZWsoMCkKICAgICBvdXRwdXRfb2JqID0ganNvbi5s
b2FkKG91dHB1dCkKICAgICBhc3NlcnQgInJ1bl9pbmZvIiBub3QgaW4gb3V0cHV0X29iaiBvciBv
dXRwdXRfb2JqWyJydW5faW5mbyJdID09IHt9CisKKworZGVmIHRlc3Rfd3B0cmVwb3J0X2xvbmVf
c3Vycm9nYXRlKGNhcGZkKToKKyAgICBvdXRwdXQgPSBTdHJpbmdJTygpCisgICAgbG9nZ2VyID0g
c3RydWN0dXJlZGxvZy5TdHJ1Y3R1cmVkTG9nZ2VyKCJ0ZXN0X2EiKQorICAgIGxvZ2dlci5hZGRf
aGFuZGxlcihoYW5kbGVycy5TdHJlYW1IYW5kbGVyKG91dHB1dCwgV3B0cmVwb3J0Rm9ybWF0dGVy
KCkpKQorCisgICAgIyBvdXRwdXQgYSBidW5jaCBvZiBzdHVmZgorICAgIGxvZ2dlci5zdWl0ZV9z
dGFydChbInRlc3QtaWQtMSJdKSAgIyBubyBydW5faW5mbyBhcmchCisgICAgbG9nZ2VyLnRlc3Rf
c3RhcnQoInRlc3QtaWQtMSIpCisgICAgbG9nZ2VyLnRlc3Rfc3RhdHVzKCJ0ZXN0LWlkLTEiLAor
ICAgICAgICAgICAgICAgICAgICAgICBzdWJ0ZXN0PXUiTmFtZSB3aXRoIHN1cnJvZ2F0ZVx1RDgw
MCIsCisgICAgICAgICAgICAgICAgICAgICAgIHN0YXR1cz0iRkFJTCIsCisgICAgICAgICAgICAg
ICAgICAgICAgIG1lc3NhZ2U9dSJcVTAwMDFGNjAxIFx1REUwQVx1RDgzRCIpCisgICAgbG9nZ2Vy
LnRlc3RfZW5kKCJ0ZXN0LWlkLTEiLAorICAgICAgICAgICAgICAgICAgICBzdGF0dXM9IlBBU1Mi
LAorICAgICAgICAgICAgICAgICAgICBtZXNzYWdlPXUiXHVERTBBXHVEODNEIFxVMDAwMUY2MDEi
KQorICAgIGxvZ2dlci5zdWl0ZV9lbmQoKQorCisgICAgIyBjaGVjayBub3RoaW5nIGdvdCBvdXRw
dXQgdG8gc3Rkb3V0L3N0ZGVycgorICAgICMgKG5vdGUgdGhhdCBtb3psb2cgb3V0cHV0cyBleGNl
cHRpb25zIGR1cmluZyBoYW5kbGluZyB0byBzdGRlcnIhKQorICAgIGNhcHR1cmVkID0gY2FwZmQu
cmVhZG91dGVycigpCisgICAgYXNzZXJ0IGNhcHR1cmVkLm91dCA9PSAiIgorICAgIGFzc2VydCBj
YXB0dXJlZC5lcnIgPT0gIiIKKworICAgICMgY2hlY2sgdGhlIGFjdHVhbCBvdXRwdXQgb2YgdGhl
IGZvcm1hdHRlcgorICAgIG91dHB1dC5zZWVrKDApCisgICAgb3V0cHV0X29iaiA9IGpzb24ubG9h
ZChvdXRwdXQpCisgICAgdGVzdCA9IG91dHB1dF9vYmpbInJlc3VsdHMiXVswXQorICAgIGFzc2Vy
dCB0ZXN0WyJtZXNzYWdlIl0gPT0gdSJVK2RlMGFVK2Q4M2QgXFUwMDAxRjYwMSIKKyAgICBzdWJ0
ZXN0ID0gdGVzdFsic3VidGVzdHMiXVswXQorICAgIGFzc2VydCBzdWJ0ZXN0WyJuYW1lIl0gPT0g
dSJOYW1lIHdpdGggc3Vycm9nYXRlVStkODAwIgorICAgIGFzc2VydCBzdWJ0ZXN0WyJtZXNzYWdl
Il0gPT0gdSJcVTAwMDFGNjAxIFUrZGUwYVUrZDgzZCIKKworCitkZWYgdGVzdF93cHRyZXBvcnRf
bG9uZV9zdXJyb2dhdGVfdWNzMihjYXBmZCk6CisgICAgIyBTaW5jZSBVQ1M0IGlzIGEgc3VwZXJz
ZXQgb2YgVUNTMiB3ZSBjYW4gbWVhbmluZ2Z1bGx5IHRlc3QgdGhlIFVDUzIgY29kZSBvbiBhCisg
ICAgIyBVQ1M0IGJ1aWxkLCBidXQgbm90IHRoZSByZXZlcnNlLiBIb3dldmVyIFVDUzIgaXMgaGFy
ZGVyIHRvIGhhbmRsZSBhbmQgVUNTNCBpcworICAgICMgdGhlIGNvbW1vbmVzdCAoYW5kIHNlbnNp
YmxlKSBjb25maWd1cmF0aW9uLCBzbyB0aGF0J3MgT0suCisgICAgb3V0cHV0ID0gU3RyaW5nSU8o
KQorICAgIGxvZ2dlciA9IHN0cnVjdHVyZWRsb2cuU3RydWN0dXJlZExvZ2dlcigidGVzdF9hIikK
KyAgICBsb2dnZXIuYWRkX2hhbmRsZXIoaGFuZGxlcnMuU3RyZWFtSGFuZGxlcihvdXRwdXQsIFdw
dHJlcG9ydEZvcm1hdHRlcigpKSkKKworICAgIHdpdGggbW9jay5wYXRjaC5vYmplY3Qod3B0cmVw
b3J0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3N1cnJvZ2F0ZV9yZXBsYWNlbWVudCcs
CisgICAgICAgICAgICAgICAgICAgICAgICAgICB3cHRyZXBvcnQuU3Vycm9nYXRlUmVwbGFjZW1l
bnRVY3MyKCkpOgorICAgICAgICAjIG91dHB1dCBhIGJ1bmNoIG9mIHN0dWZmCisgICAgICAgIGxv
Z2dlci5zdWl0ZV9zdGFydChbInRlc3QtaWQtMSJdKSAgIyBubyBydW5faW5mbyBhcmchCisgICAg
ICAgIGxvZ2dlci50ZXN0X3N0YXJ0KCJ0ZXN0LWlkLTEiKQorICAgICAgICBsb2dnZXIudGVzdF9z
dGF0dXMoInRlc3QtaWQtMSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICBzdWJ0ZXN0PXUi
TmFtZSB3aXRoIHN1cnJvZ2F0ZVx1RDgwMCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICBz
dGF0dXM9IkZBSUwiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgbWVzc2FnZT11IlxVMDAw
MUY2MDEgXHVERTBBXHVEODNEIFx1RDgzRFx1REUwQSIpCisgICAgICAgIGxvZ2dlci50ZXN0X2Vu
ZCgidGVzdC1pZC0xIiwKKyAgICAgICAgICAgICAgICAgICAgICAgIHN0YXR1cz0iUEFTUyIsCisg
ICAgICAgICAgICAgICAgICAgICAgICBtZXNzYWdlPXUiXHVERTBBXHVEODNEIFx1RDgzRFx1REUw
QSBcVTAwMDFGNjAxIikKKyAgICAgICAgbG9nZ2VyLnN1aXRlX2VuZCgpCisKKyAgICAjIGNoZWNr
IG5vdGhpbmcgZ290IG91dHB1dCB0byBzdGRvdXQvc3RkZXJyCisgICAgIyAobm90ZSB0aGF0IG1v
emxvZyBvdXRwdXRzIGV4Y2VwdGlvbnMgZHVyaW5nIGhhbmRsaW5nIHRvIHN0ZGVyciEpCisgICAg
Y2FwdHVyZWQgPSBjYXBmZC5yZWFkb3V0ZXJyKCkKKyAgICBhc3NlcnQgY2FwdHVyZWQub3V0ID09
ICIiCisgICAgYXNzZXJ0IGNhcHR1cmVkLmVyciA9PSAiIgorCisgICAgIyBjaGVjayB0aGUgYWN0
dWFsIG91dHB1dCBvZiB0aGUgZm9ybWF0dGVyCisgICAgb3V0cHV0LnNlZWsoMCkKKyAgICBvdXRw
dXRfb2JqID0ganNvbi5sb2FkKG91dHB1dCkKKyAgICB0ZXN0ID0gb3V0cHV0X29ialsicmVzdWx0
cyJdWzBdCisgICAgYXNzZXJ0IHRlc3RbIm1lc3NhZ2UiXSA9PSB1IlUrZGUwYVUrZDgzZCBcVTAw
MDFmNjBhIFxVMDAwMUY2MDEiCisgICAgc3VidGVzdCA9IHRlc3RbInN1YnRlc3RzIl1bMF0KKyAg
ICBhc3NlcnQgc3VidGVzdFsibmFtZSJdID09IHUiTmFtZSB3aXRoIHN1cnJvZ2F0ZVUrZDgwMCIK
KyAgICBhc3NlcnQgc3VidGVzdFsibWVzc2FnZSJdID09IHUiXFUwMDAxRjYwMSBVK2RlMGFVK2Q4
M2QgXFUwMDAxZjYwYSIKKworCitkZWYgdGVzdF93cHRyZXBvcnRfa25vd25faW50ZXJtaXR0ZW50
KGNhcGZkKToKKyAgICBvdXRwdXQgPSBTdHJpbmdJTygpCisgICAgbG9nZ2VyID0gc3RydWN0dXJl
ZGxvZy5TdHJ1Y3R1cmVkTG9nZ2VyKCJ0ZXN0X2EiKQorICAgIGxvZ2dlci5hZGRfaGFuZGxlciho
YW5kbGVycy5TdHJlYW1IYW5kbGVyKG91dHB1dCwgV3B0cmVwb3J0Rm9ybWF0dGVyKCkpKQorCisg
ICAgIyBvdXRwdXQgYSBidW5jaCBvZiBzdHVmZgorICAgIGxvZ2dlci5zdWl0ZV9zdGFydChbInRl
c3QtaWQtMSJdKSAgIyBubyBydW5faW5mbyBhcmchCisgICAgbG9nZ2VyLnRlc3Rfc3RhcnQoInRl
c3QtaWQtMSIpCisgICAgbG9nZ2VyLnRlc3Rfc3RhdHVzKCJ0ZXN0LWlkLTEiLAorICAgICAgICAg
ICAgICAgICAgICAgICAiYS1zdWJ0ZXN0IiwKKyAgICAgICAgICAgICAgICAgICAgICAgc3RhdHVz
PSJGQUlMIiwKKyAgICAgICAgICAgICAgICAgICAgICAgZXhwZWN0ZWQ9IlBBU1MiLAorICAgICAg
ICAgICAgICAgICAgICAgICBrbm93bl9pbnRlcm1pdHRlbnQ9WyJGQUlMIl0pCisgICAgbG9nZ2Vy
LnRlc3RfZW5kKCJ0ZXN0LWlkLTEiLAorICAgICAgICAgICAgICAgICAgICBzdGF0dXM9Ik9LIiwp
CisgICAgbG9nZ2VyLnN1aXRlX2VuZCgpCisKKyAgICAjIGNoZWNrIG5vdGhpbmcgZ290IG91dHB1
dCB0byBzdGRvdXQvc3RkZXJyCisgICAgIyAobm90ZSB0aGF0IG1vemxvZyBvdXRwdXRzIGV4Y2Vw
dGlvbnMgZHVyaW5nIGhhbmRsaW5nIHRvIHN0ZGVyciEpCisgICAgY2FwdHVyZWQgPSBjYXBmZC5y
ZWFkb3V0ZXJyKCkKKyAgICBhc3NlcnQgY2FwdHVyZWQub3V0ID09ICIiCisgICAgYXNzZXJ0IGNh
cHR1cmVkLmVyciA9PSAiIgorCisgICAgIyBjaGVjayB0aGUgYWN0dWFsIG91dHB1dCBvZiB0aGUg
Zm9ybWF0dGVyCisgICAgb3V0cHV0LnNlZWsoMCkKKyAgICBvdXRwdXRfb2JqID0ganNvbi5sb2Fk
KG91dHB1dCkKKyAgICB0ZXN0ID0gb3V0cHV0X29ialsicmVzdWx0cyJdWzBdCisgICAgYXNzZXJ0
IHRlc3RbInN0YXR1cyJdID09IHUiT0siCisgICAgc3VidGVzdCA9IHRlc3RbInN1YnRlc3RzIl1b
MF0KKyAgICBhc3NlcnQgc3VidGVzdFsiZXhwZWN0ZWQiXSA9PSB1IlBBU1MiCisgICAgYXNzZXJ0
IHN1YnRlc3RbImtub3duX2ludGVybWl0dGVudCJdID09IFt1J0ZBSUwnXQpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5u
ZXIvd3B0cnVubmVyL3Rlc3RzL3Rlc3RfbWFuaWZlc3RleHBlY3RlZC5weSBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5l
ci90ZXN0cy90ZXN0X21hbmlmZXN0ZXhwZWN0ZWQucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNTI1OTE1ZDE4MzJh
YzhhZjE5NTdhNzk5NjE1OTY5ZTA1OGVlZmNhNQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1
bm5lci90ZXN0cy90ZXN0X21hbmlmZXN0ZXhwZWN0ZWQucHkKQEAgLTAsMCArMSwzNyBAQAoraW1w
b3J0IHN5cworZnJvbSBpbyBpbXBvcnQgQnl0ZXNJTworCitpbXBvcnQgcHl0ZXN0CisKK2Zyb20g
Li4gaW1wb3J0IG1hbmlmZXN0ZXhwZWN0ZWQKKworCitAcHl0ZXN0Lm1hcmsueGZhaWwoc3lzLnZl
cnNpb25bMF0gPT0gIjMiLAorICAgICAgICAgICAgICAgICAgIHJlYXNvbj0iYnl0ZXMvdGV4dCBj
b25mdXNpb24gaW4gcHkzIikKK0BweXRlc3QubWFyay5wYXJhbWV0cml6ZSgiZnV6enksIGV4cGVj
dGVkIiwgWworICAgIChiInJlZi5odG1sOjE7MjAwIiwgWygicmVmLmh0bWwiLCAoKDEsIDEpLCAo
MjAwLCAyMDApKSldKSwKKyAgICAoYiJyZWYuaHRtbDowLTE7MTAwLTIwMCIsIFsoInJlZi5odG1s
IiwgKCgwLCAxKSwgKDEwMCwgMjAwKSkpXSksCisgICAgKGIiMC0xOzEwMC0yMDAiLCBbKE5vbmUs
ICgoMCwgMSksICgxMDAsIDIwMCkpKV0pLAorICAgIChiIm1heERpZmZlcmVuY2U9MTt0b3RhbFBp
eGVscz0yMDAiLCBbKE5vbmUsICgoMSwgMSksICgyMDAsIDIwMCkpKV0pLAorICAgIChiInRvdGFs
UGl4ZWxzPTIwMDttYXhEaWZmZXJlbmNlPTEiLCBbKE5vbmUsICgoMSwgMSksICgyMDAsIDIwMCkp
KV0pLAorICAgIChiInRvdGFsUGl4ZWxzPTIwMDsxIiwgWyhOb25lLCAoKDEsIDEpLCAoMjAwLCAy
MDApKSldKSwKKyAgICAoYiJtYXhEaWZmZXJlbmNlPTE7MjAwIiwgWyhOb25lLCAoKDEsIDEpLCAo
MjAwLCAyMDApKSldKSwKKyAgICAoYiJ0ZXN0Lmh0bWw9PXJlZi5odG1sOm1heERpZmZlcmVuY2U9
MTt0b3RhbFBpeGVscz0yMDAiLAorICAgICBbKCh1InRlc3QuaHRtbCIsIHUicmVmLmh0bWwiLCAi
PT0iKSwgKCgxLCAxKSwgKDIwMCwgMjAwKSkpXSksCisgICAgKGIidGVzdC5odG1sIT1yZWYuaHRt
bDptYXhEaWZmZXJlbmNlPTE7dG90YWxQaXhlbHM9MjAwIiwKKyAgICAgWygodSJ0ZXN0Lmh0bWwi
LCB1InJlZi5odG1sIiwgIiE9IiksICgoMSwgMSksICgyMDAsIDIwMCkpKV0pLAorICAgIChiIlt0
ZXN0Lmh0bWwhPXJlZi5odG1sOm1heERpZmZlcmVuY2U9MTt0b3RhbFBpeGVscz0yMDAsIHRlc3Qu
aHRtbD09cmVmMS5odG1sOm1heERpZmZlcmVuY2U9NS0xMDsxMDBdIiwKKyAgICAgWygodSJ0ZXN0
Lmh0bWwiLCB1InJlZi5odG1sIiwgIiE9IiksICgoMSwgMSksICgyMDAsIDIwMCkpKSwKKyAgICAg
ICgodSJ0ZXN0Lmh0bWwiLCB1InJlZjEuaHRtbCIsICI9PSIpLCAoKDUsMTApLCAoMTAwLCAxMDAp
KSldKSwKK10pCitkZWYgdGVzdF9mdXp6eShmdXp6eSwgZXhwZWN0ZWQpOgorICAgIGRhdGEgPSAi
IiIKK1t0ZXN0Lmh0bWxdCisgIGZ1enp5OiAlcyIiIiAlIGZ1enp5CisgICAgZiA9IEJ5dGVzSU8o
ZGF0YSkKKyAgICBtYW5pZmVzdCA9IG1hbmlmZXN0ZXhwZWN0ZWQuc3RhdGljLmNvbXBpbGUoZiwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge30sCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGFfY2xzX2dldHRl
cj1tYW5pZmVzdGV4cGVjdGVkLmRhdGFfY2xzX2dldHRlciwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgdGVzdF9wYXRoPSJ0ZXN0L3Rlc3QuaHRtbCIsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVybF9iYXNlPSIv
IikKKyAgICBhc3NlcnQgbWFuaWZlc3QuZ2V0X3Rlc3QoIi90ZXN0L3Rlc3QuaHRtbCIpLmZ1enp5
ID09IGV4cGVjdGVkCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvdGVzdHMvdGVzdF9wcm9kdWN0
cy5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
d3B0cnVubmVyL3dwdHJ1bm5lci90ZXN0cy90ZXN0X3Byb2R1Y3RzLnB5CmluZGV4IDQ0MWM4M2Y3
MzVlZGNhNmFkYWMwMmFhMjU0YmU2ZTQ4MzBjMGFlN2UuLjVkMmJjZjA3NWQwZjU3MmU4OTcyZWJh
NWZkYjRhNWJkMzZiNWRiNzUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci90ZXN0cy90ZXN0X3By
b2R1Y3RzLnB5CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci90ZXN0cy90ZXN0X3Byb2R1Y3RzLnB5CkBAIC0x
LDE3ICsxLDExIEBACi1pbXBvcnQgc3lzCi0KIGZyb20gb3MucGF0aCBpbXBvcnQgam9pbiwgZGly
bmFtZQogCiBpbXBvcnQgbW9jawogaW1wb3J0IHB5dGVzdAogCiBmcm9tIC5iYXNlIGltcG9ydCBh
bGxfcHJvZHVjdHMsIGFjdGl2ZV9wcm9kdWN0cwotCi1zeXMucGF0aC5pbnNlcnQoMCwgam9pbihk
aXJuYW1lKF9fZmlsZV9fKSwgIi4uIiwgIi4uIiwgIi4uIiwgIi4uIikpICAjIHJlcG8gcm9vdAot
ZnJvbSB0b29scyBpbXBvcnQgbG9jYWxwYXRocyAgIyBub3FhOiBmbGFrZTgKLQotZnJvbSB3cHRy
dW5uZXIgaW1wb3J0IGVudmlyb25tZW50Ci1mcm9tIHdwdHJ1bm5lciBpbXBvcnQgcHJvZHVjdHMK
K2Zyb20gLi4gaW1wb3J0IGVudmlyb25tZW50Citmcm9tIC4uIGltcG9ydCBwcm9kdWN0cwogCiB0
ZXN0X3BhdGhzID0geyIvIjogeyJ0ZXN0c19wYXRoIjogam9pbihkaXJuYW1lKF9fZmlsZV9fKSwg
Ii4uIiwgIi4uIiwgIi4uIiwgIi4uIil9fSAgIyByZXBvIHJvb3QKIGVudmlyb25tZW50LmRvX2Rl
bGF5ZWRfaW1wb3J0cyhOb25lLCB0ZXN0X3BhdGhzKQpAQCAtNDYsNiArNDAsNyBAQCBkZWYgdGVz
dF9zZXJ2ZXJfc3RhcnRfY29uZmlnKHByb2R1Y3QpOgogCiAgICAgd2l0aCBtb2NrLnBhdGNoLm9i
amVjdChlbnZpcm9ubWVudC5zZXJ2ZSwgInN0YXJ0IikgYXMgc3RhcnQ6CiAgICAgICAgIHdpdGgg
ZW52aXJvbm1lbnQuVGVzdEVudmlyb25tZW50KHRlc3RfcGF0aHMsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIDEsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIEZhbHNlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBOb25lLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbnZf
b3B0aW9ucywKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci90ZXN0cy90ZXN0X3N0YWJpbGl0eS5w
eSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0
cnVubmVyL3dwdHJ1bm5lci90ZXN0cy90ZXN0X3N0YWJpbGl0eS5weQppbmRleCA3MmNmZjIxMDE2
YThlNTEwMzZiYjk5ZTQ2YjI3Y2I3MGJiZjA0NGI5Li40NzQwNTZkZGU2YzY3YmIwYWFkMjEwMDYx
M2U2Y2EzMzE5NjIzOTYyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvdGVzdHMvdGVzdF9zdGFi
aWxpdHkucHkKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3Rlc3RzL3Rlc3Rfc3RhYmlsaXR5LnB5CkBAIC0x
LDEyICsxLDMxIEBACi1pbXBvcnQgc3lzCi1mcm9tIG9zLnBhdGggaW1wb3J0IGRpcm5hbWUsIGpv
aW4KK2Zyb20gLi4gaW1wb3J0IHN0YWJpbGl0eQogCi1zeXMucGF0aC5pbnNlcnQoMCwgam9pbihk
aXJuYW1lKF9fZmlsZV9fKSwgIi4uIiwgIi4uIikpCi0KLWZyb20gd3B0cnVubmVyIGltcG9ydCBz
dGFiaWxpdHkKIAogZGVmIHRlc3RfaXNfaW5jb25zaXN0ZW50KCk6CiAgICAgYXNzZXJ0IHN0YWJp
bGl0eS5pc19pbmNvbnNpc3RlbnQoeyJQQVNTIjogMTB9LCAxMCkgaXMgRmFsc2UKICAgICBhc3Nl
cnQgc3RhYmlsaXR5LmlzX2luY29uc2lzdGVudCh7IlBBU1MiOiA5fSwgMTApIGlzIFRydWUKICAg
ICBhc3NlcnQgc3RhYmlsaXR5LmlzX2luY29uc2lzdGVudCh7IlBBU1MiOiA5LCAiRkFJTCI6IDF9
LCAxMCkgaXMgVHJ1ZQogICAgIGFzc2VydCBzdGFiaWxpdHkuaXNfaW5jb25zaXN0ZW50KHsiUEFT
UyI6IDgsICJGQUlMIjogMX0sIDEwKSBpcyBUcnVlCisKKworZGVmIHRlc3RfZmluZF9zbG93X3N0
YXR1cygpOgorICAgIGFzc2VydCBzdGFiaWxpdHkuZmluZF9zbG93X3N0YXR1cyh7CisgICAgICAg
ICJsb25nZXN0X2R1cmF0aW9uIjogeyJUSU1FT1VUIjogMTB9LAorICAgICAgICAidGltZW91dCI6
IDEwfSkgaXMgTm9uZQorICAgIGFzc2VydCBzdGFiaWxpdHkuZmluZF9zbG93X3N0YXR1cyh7Cisg
ICAgICAgICJsb25nZXN0X2R1cmF0aW9uIjogeyJDUkFTSCI6IDEwfSwKKyAgICAgICAgInRpbWVv
dXQiOiAxMH0pIGlzIE5vbmUKKyAgICBhc3NlcnQgc3RhYmlsaXR5LmZpbmRfc2xvd19zdGF0dXMo
eworICAgICAgICAibG9uZ2VzdF9kdXJhdGlvbiI6IHsiRVJST1IiOiAxMH0sCisgICAgICAgICJ0
aW1lb3V0IjogMTB9KSBpcyBOb25lCisgICAgYXNzZXJ0IHN0YWJpbGl0eS5maW5kX3Nsb3dfc3Rh
dHVzKHsKKyAgICAgICAgImxvbmdlc3RfZHVyYXRpb24iOiB7IlBBU1MiOiAxfSwKKyAgICAgICAg
InRpbWVvdXQiOiAxMH0pIGlzIE5vbmUKKyAgICBhc3NlcnQgc3RhYmlsaXR5LmZpbmRfc2xvd19z
dGF0dXMoeworICAgICAgICAibG9uZ2VzdF9kdXJhdGlvbiI6IHsiUEFTUyI6IDgxfSwKKyAgICAg
ICAgInRpbWVvdXQiOiAxMDB9KSA9PSAiUEFTUyIKKyAgICBhc3NlcnQgc3RhYmlsaXR5LmZpbmRf
c2xvd19zdGF0dXMoeworICAgICAgICAibG9uZ2VzdF9kdXJhdGlvbiI6IHsiVElNRU9VVCI6IDEw
LCAiRkFJTCI6IDgxfSwKKyAgICAgICAgInRpbWVvdXQiOiAxMDB9KSA9PSAiRkFJTCIKKyAgICBh
c3NlcnQgc3RhYmlsaXR5LmZpbmRfc2xvd19zdGF0dXMoeworICAgICAgICAibG9uZ2VzdF9kdXJh
dGlvbiI6IHsiU0tJUCI6IDB9fSkgaXMgTm9uZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3Rl
c3RzL3Rlc3RfdGVzdGxvYWRlci5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci90ZXN0cy90ZXN0X3Rlc3Rsb2Fk
ZXIucHkKaW5kZXggNTU2YjJiN2YzZmE0ODIxMmZiZjljMmIwMjc5NzkzZjJlYzQ4YmFjYi4uZTg1
N2NkNDNkYjZkMjgxZjk1NDE0MjMwZjUyYzk4NGFhZDkxNTExOCAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0
cnVubmVyL3Rlc3RzL3Rlc3RfdGVzdGxvYWRlci5weQorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvdGVzdHMv
dGVzdF90ZXN0bG9hZGVyLnB5CkBAIC0xLDE0ICsxLDEzIEBACiBmcm9tIF9fZnV0dXJlX18gaW1w
b3J0IHVuaWNvZGVfbGl0ZXJhbHMKIAotaW1wb3J0IG9zCiBpbXBvcnQgc3lzCiBpbXBvcnQgdGVt
cGZpbGUKIAotc3lzLnBhdGguaW5zZXJ0KDAsIG9zLnBhdGguam9pbihvcy5wYXRoLmRpcm5hbWUo
X19maWxlX18pLCAiLi4iLCAiLi4iKSkKK2ltcG9ydCBweXRlc3QKIAogZnJvbSBtb3psb2cgaW1w
b3J0IHN0cnVjdHVyZWQKLWZyb20gd3B0cnVubmVyLnRlc3Rsb2FkZXIgaW1wb3J0IFRlc3RGaWx0
ZXIgYXMgRmlsdGVyCi1mcm9tIC50ZXN0X2NodW5rZXIgaW1wb3J0IG1ha2VfbW9ja19tYW5pZmVz
dAorZnJvbSAuLnRlc3Rsb2FkZXIgaW1wb3J0IFRlc3RGaWx0ZXIgYXMgRmlsdGVyCitmcm9tIC50
ZXN0X3dwdHRlc3QgaW1wb3J0IG1ha2VfbW9ja19tYW5pZmVzdAogCiBzdHJ1Y3R1cmVkLnNldF9k
ZWZhdWx0X2xvZ2dlcihzdHJ1Y3R1cmVkLnN0cnVjdHVyZWRsb2cuU3RydWN0dXJlZExvZ2dlcigi
VGVzdExvYWRlciIpKQogCkBAIC0xOSw2ICsxOCwxMCBAQCBza2lwOiB0cnVlCiAiIiIKIAogCitA
cHl0ZXN0Lm1hcmsueGZhaWwoc3lzLnBsYXRmb3JtID09ICJ3aW4zMiIsCisgICAgICAgICAgICAg
ICAgICAgcmVhc29uPSJOYW1lZFRlbXBvcmFyeUZpbGUgY2Fubm90IGJlIHJlb3BlbmVkIG9uIFdp
bjMyIikKK0BweXRlc3QubWFyay54ZmFpbChzeXMudmVyc2lvblswXSA9PSAiMyIsCisgICAgICAg
ICAgICAgICAgICAgcmVhc29uPSJ3cHRtYW5pZmVzdC5wYXJzZXIgZG9lc24ndCBzdXBwb3J0IHB5
MyIpCiBkZWYgdGVzdF9maWx0ZXJfdW5pY29kZSgpOgogICAgIHRlc3RzID0gbWFrZV9tb2NrX21h
bmlmZXN0KCgidGVzdCIsICJhIiwgMTApLCAoInRlc3QiLCAiYS9iIiwgMTApLAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICgidGVzdCIsICJjIiwgMTApKQpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIv
d3B0cnVubmVyL3Rlc3RzL3Rlc3RfdXBkYXRlLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3Rlc3RzL3Rlc3Rf
dXBkYXRlLnB5CmluZGV4IDVjNjU0Yzk5YTQ4MWM4NzA5MTc2ZWE5MjEwNTA4YmMyMzg4ZDJiMmMu
LjVkOTAwYTNkNmM5Y2QyMzY5NmZlMGQyYjdjMjBkOGZmNTE0MmI5ZTUgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVy
L3dwdHJ1bm5lci90ZXN0cy90ZXN0X3VwZGF0ZS5weQorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvdGVzdHMv
dGVzdF91cGRhdGUucHkKQEAgLTEsMjggKzEsMjggQEAKIGltcG9ydCBqc29uCiBpbXBvcnQgbW9j
awogaW1wb3J0IG9zCitpbXBvcnQgcHl0ZXN0CiBpbXBvcnQgc3lzCiBmcm9tIGlvIGltcG9ydCBC
eXRlc0lPCiAKIGZyb20gLi4gaW1wb3J0IG1ldGFkYXRhLCBtYW5pZmVzdHVwZGF0ZQorZnJvbSAu
LnVwZGF0ZS51cGRhdGUgaW1wb3J0IFdQVFVwZGF0ZQorZnJvbSAuLnVwZGF0ZS5iYXNlIGltcG9y
dCBTdGVwUnVubmVyLCBTdGVwCiBmcm9tIG1vemxvZyBpbXBvcnQgc3RydWN0dXJlZGxvZywgaGFu
ZGxlcnMsIGZvcm1hdHRlcnMKIAotc3lzLnBhdGguaW5zZXJ0KDAsIG9zLnBhdGguam9pbihvcy5w
YXRoLmRpcm5hbWUoX19maWxlX18pLCBvcy5wYXJkaXIsIG9zLnBhcmRpciwgb3MucGFyZGlyKSkK
K2hlcmUgPSBvcy5wYXRoLmRpcm5hbWUoX19maWxlX18pCitzeXMucGF0aC5pbnNlcnQoMCwgb3Mu
cGF0aC5qb2luKGhlcmUsIG9zLnBhcmRpciwgb3MucGFyZGlyLCBvcy5wYXJkaXIpKQogZnJvbSBt
YW5pZmVzdCBpbXBvcnQgbWFuaWZlc3QsIGl0ZW0gYXMgbWFuaWZlc3RfaXRlbQogCiAKLWRlZiBy
ZWxfcGF0aF90b191cmwocmVsX3BhdGgsIHVybF9iYXNlPSIvIik6CitkZWYgcmVsX3BhdGhfdG9f
dGVzdF91cmwocmVsX3BhdGgpOgogICAgIGFzc2VydCBub3Qgb3MucGF0aC5pc2FicyhyZWxfcGF0
aCkKLSAgICBpZiB1cmxfYmFzZVswXSAhPSAiLyI6Ci0gICAgICAgIHVybF9iYXNlID0gIi8iICsg
dXJsX2Jhc2UKLSAgICBpZiB1cmxfYmFzZVstMV0gIT0gIi8iOgotICAgICAgICB1cmxfYmFzZSAr
PSAiLyIKLSAgICByZXR1cm4gdXJsX2Jhc2UgKyByZWxfcGF0aC5yZXBsYWNlKG9zLnNlcCwgIi8i
KQorICAgIHJldHVybiByZWxfcGF0aC5yZXBsYWNlKG9zLnNlcCwgIi8iKQogCiAKIGRlZiBTb3Vy
Y2VGaWxlV2l0aFRlc3QocGF0aCwgaGFzaCwgY2xzLCAqYXJncyk6CiAgICAgcyA9IG1vY2suTW9j
ayhyZWxfcGF0aD1wYXRoLCBoYXNoPWhhc2gpCi0gICAgdGVzdCA9IGNscyhzLCByZWxfcGF0aF90
b191cmwocGF0aCksICphcmdzKQorICAgIHRlc3QgPSBjbHMoIi9mb29iYXIiLCBwYXRoLCAiLyIs
IHJlbF9wYXRoX3RvX3Rlc3RfdXJsKHBhdGgpLCAqYXJncykKICAgICBzLm1hbmlmZXN0X2l0ZW1z
ID0gbW9jay5Nb2NrKHJldHVybl92YWx1ZT0oY2xzLml0ZW1fdHlwZSwgW3Rlc3RdKSkKICAgICBy
ZXR1cm4gcwogCkBAIC0zMSw0MiArMzEsNjggQEAgaXRlbV9jbGFzc2VzID0geyJ0ZXN0aGFybmVz
cyI6IG1hbmlmZXN0X2l0ZW0uVGVzdGhhcm5lc3NUZXN0LAogICAgICAgICAgICAgICAgICJyZWZ0
ZXN0IjogbWFuaWZlc3RfaXRlbS5SZWZUZXN0LAogICAgICAgICAgICAgICAgICJyZWZ0ZXN0X25v
ZGUiOiBtYW5pZmVzdF9pdGVtLlJlZlRlc3ROb2RlLAogICAgICAgICAgICAgICAgICJtYW51YWwi
OiBtYW5pZmVzdF9pdGVtLk1hbnVhbFRlc3QsCi0gICAgICAgICAgICAgICAgInN0dWIiOiBtYW5p
ZmVzdF9pdGVtLlN0dWIsCi0gICAgICAgICAgICAgICAgIndkc3BlYyI6IG1hbmlmZXN0X2l0ZW0u
V2ViZHJpdmVyU3BlY1Rlc3QsCisgICAgICAgICAgICAgICAgIndkc3BlYyI6IG1hbmlmZXN0X2l0
ZW0uV2ViRHJpdmVyU3BlY1Rlc3QsCiAgICAgICAgICAgICAgICAgImNvbmZvcm1hbmNlY2hlY2tl
ciI6IG1hbmlmZXN0X2l0ZW0uQ29uZm9ybWFuY2VDaGVja2VyVGVzdCwKICAgICAgICAgICAgICAg
ICAidmlzdWFsIjogbWFuaWZlc3RfaXRlbS5WaXN1YWxUZXN0LAogICAgICAgICAgICAgICAgICJz
dXBwb3J0IjogbWFuaWZlc3RfaXRlbS5TdXBwb3J0RmlsZX0KIAogCi1kZWYgdXBkYXRlKHRlc3Rz
LCAqbG9ncyk6CitkZWZhdWx0X3J1bl9pbmZvID0geyJkZWJ1ZyI6IEZhbHNlLCAib3MiOiAibGlu
dXgiLCAidmVyc2lvbiI6ICIxOC4wNCIsICJwcm9jZXNzb3IiOiAieDg2XzY0IiwgImJpdHMiOiA2
NH0KK3Rlc3RfaWQgPSAiL3BhdGgvdG8vdGVzdC5odG0iCitkaXJfaWQgPSAicGF0aC90by9fX2Rp
cl9fIgorCisKK2RlZiByZXNldF9nbG9iYWxzKCk6CisgICAgbWV0YWRhdGEucHJvcF9pbnRlcm4u
Y2xlYXIoKQorICAgIG1ldGFkYXRhLnJ1bl9pbmZvX2ludGVybi5jbGVhcigpCisgICAgbWV0YWRh
dGEuc3RhdHVzX2ludGVybi5jbGVhcigpCisKKworZGVmIGdldF9ydW5faW5mbyhvdmVycmlkZXMp
OgorICAgIHJ1bl9pbmZvID0gZGVmYXVsdF9ydW5faW5mby5jb3B5KCkKKyAgICBydW5faW5mby51
cGRhdGUob3ZlcnJpZGVzKQorICAgIHJldHVybiBydW5faW5mbworCisKK2RlZiB1cGRhdGUodGVz
dHMsICpsb2dzLCAqKmt3YXJncyk6CisgICAgZnVsbF91cGRhdGUgPSBrd2FyZ3MucG9wKCJmdWxs
X3VwZGF0ZSIsIEZhbHNlKQorICAgIGRpc2FibGVfaW50ZXJtaXR0ZW50ID0ga3dhcmdzLnBvcCgi
ZGlzYWJsZV9pbnRlcm1pdHRlbnQiLCBGYWxzZSkKKyAgICB1cGRhdGVfaW50ZXJtaXR0ZW50ID0g
a3dhcmdzLnBvcCgidXBkYXRlX2ludGVybWl0dGVudCIsIEZhbHNlKQorICAgIHJlbW92ZV9pbnRl
cm1pdHRlbnQgPSBrd2FyZ3MucG9wKCJyZW1vdmVfaW50ZXJtaXR0ZW50IiwgRmFsc2UpCisgICAg
YXNzZXJ0IG5vdCBrd2FyZ3MKICAgICBpZF90ZXN0X21hcCwgdXBkYXRlciA9IGNyZWF0ZV91cGRh
dGVyKHRlc3RzKQorCiAgICAgZm9yIGxvZyBpbiBsb2dzOgogICAgICAgICBsb2cgPSBjcmVhdGVf
bG9nKGxvZykKICAgICAgICAgdXBkYXRlci51cGRhdGVfZnJvbV9sb2cobG9nKQogCisgICAgdXBk
YXRlX3Byb3BlcnRpZXMgPSAoWyJkZWJ1ZyIsICJvcyIsICJ2ZXJzaW9uIiwgInByb2Nlc3NvciJd
LAorICAgICAgICAgICAgICAgICAgICAgICAgIHsib3MiOiBbInZlcnNpb24iXSwgInByb2Nlc3Nv
ciI6ICJiaXRzIn0pCisKKyAgICBleHBlY3RlZF9kYXRhID0ge30KKyAgICBtZXRhZGF0YS5sb2Fk
X2V4cGVjdGVkID0gbGFtYmRhIF8sIF9fLCB0ZXN0X3BhdGgsICphcmdzOiBleHBlY3RlZF9kYXRh
LmdldCh0ZXN0X3BhdGgpCisgICAgZm9yIHRlc3RfcGF0aCwgdGVzdF9pZHMsIHRlc3RfdHlwZSwg
bWFuaWZlc3Rfc3RyIGluIHRlc3RzOgorICAgICAgICBleHBlY3RlZF9kYXRhW3Rlc3RfcGF0aF0g
PSBtYW5pZmVzdHVwZGF0ZS5jb21waWxlKEJ5dGVzSU8obWFuaWZlc3Rfc3RyKSwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0X3Bh
dGgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIi8iLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHVwZGF0ZV9wcm9wZXJ0aWVzLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVwZGF0ZV9pbnRlcm1pdHRlbnQsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
cmVtb3ZlX2ludGVybWl0dGVudCkKKwogICAgIHJldHVybiBsaXN0KG1ldGFkYXRhLnVwZGF0ZV9y
ZXN1bHRzKGlkX3Rlc3RfbWFwLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIFsiZGVidWciLCAib3MiLCAidmVyc2lvbiIsICJwcm9jZXNzb3IiLCAiYml0cyJdLAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsiZGVidWciXSwKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBGYWxzZSkpCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgdXBkYXRlX3Byb3BlcnRpZXMsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgZnVsbF91cGRhdGUsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgZGlzYWJsZV9pbnRlcm1pdHRlbnQsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXBkYXRlX2ludGVybWl0dGVudCwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZW1vdmVfaW50ZXJtaXR0ZW50KSkK
IAogCiBkZWYgY3JlYXRlX3VwZGF0ZXIodGVzdHMsIHVybF9iYXNlPSIvIiwgKiprd2FyZ3MpOgog
ICAgIGlkX3Rlc3RfbWFwID0ge30KICAgICBtID0gY3JlYXRlX3Rlc3RfbWFuaWZlc3QodGVzdHMs
IHVybF9iYXNlKQotICAgIGV4cGVjdGVkX2RhdGEgPSB7fQotICAgIG1ldGFkYXRhLmxvYWRfZXhw
ZWN0ZWQgPSBsYW1iZGEgXywgX18sIHRlc3RfcGF0aCwgKmFyZ3M6IGV4cGVjdGVkX2RhdGFbdGVz
dF9wYXRoXQotCi0gICAgZm9yIHRlc3RfcGF0aCwgdGVzdF9pZHMsIHRlc3RfdHlwZSwgbWFuaWZl
c3Rfc3RyIGluIHRlc3RzOgotICAgICAgICB0ZXN0cyA9IGxpc3QobS5pdGVycGF0aCh0ZXN0X3Bh
dGgpKQotICAgICAgICBpZiBpc2luc3RhbmNlKHRlc3RfaWRzLCAoc3RyLCB1bmljb2RlKSk6Ci0g
ICAgICAgICAgICB0ZXN0X2lkcyA9IFt0ZXN0X2lkc10KLSAgICAgICAgdGVzdF9kYXRhID0gbWV0
YWRhdGEuVGVzdEZpbGVEYXRhKCIvIiwgInRlc3RoYXJuZXNzIiwgTm9uZSwgdGVzdF9wYXRoLCB0
ZXN0cykKLSAgICAgICAgZXhwZWN0ZWRfZGF0YVt0ZXN0X3BhdGhdID0gbWFuaWZlc3R1cGRhdGUu
Y29tcGlsZShCeXRlc0lPKG1hbmlmZXN0X3N0ciksCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGVzdF9wYXRoLAotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVybF9iYXNlKQog
Ci0gICAgICAgIGZvciB0ZXN0X2lkIGluIHRlc3RfaWRzOgotICAgICAgICAgICAgaWRfdGVzdF9t
YXBbdGVzdF9pZF0gPSB0ZXN0X2RhdGEKKyAgICByZXNldF9nbG9iYWxzKCkKKyAgICBpZF90ZXN0
X21hcCA9IG1ldGFkYXRhLmNyZWF0ZV90ZXN0X3RyZWUoTm9uZSwgbSkKIAogICAgIHJldHVybiBp
ZF90ZXN0X21hcCwgbWV0YWRhdGEuRXhwZWN0ZWRVcGRhdGVyKGlkX3Rlc3RfbWFwLCAqKmt3YXJn
cykKIApAQCAtODksNyArMTE1LDEwIEBAIGRlZiBjcmVhdGVfbG9nKGVudHJpZXMpOgogCiAKIGRl
ZiBzdWl0ZV9sb2coZW50cmllcywgcnVuX2luZm89Tm9uZSk6Ci0gICAgcmV0dXJuIChbKCJzdWl0
ZV9zdGFydCIsIHsidGVzdHMiOiBbXSwgInJ1bl9pbmZvIjogcnVuX2luZm8gb3Ige319KV0gKwor
ICAgIF9ydW5faW5mbyA9IGRlZmF1bHRfcnVuX2luZm8uY29weSgpCisgICAgaWYgcnVuX2luZm86
CisgICAgICAgIF9ydW5faW5mby51cGRhdGUocnVuX2luZm8pCisgICAgcmV0dXJuIChbKCJzdWl0
ZV9zdGFydCIsIHsidGVzdHMiOiBbXSwgInJ1bl9pbmZvIjogX3J1bl9pbmZvfSldICsKICAgICAg
ICAgICAgIGVudHJpZXMgKwogICAgICAgICAgICAgWygic3VpdGVfZW5kIiwge30pXSkKIApAQCAt
OTgsMTQgKzEyNywxNiBAQCBkZWYgY3JlYXRlX3Rlc3RfbWFuaWZlc3QodGVzdHMsIHVybF9iYXNl
PSIvIik6CiAgICAgc291cmNlX2ZpbGVzID0gW10KICAgICBmb3IgaSwgKHRlc3QsIF8sIHRlc3Rf
dHlwZSwgXykgaW4gZW51bWVyYXRlKHRlc3RzKToKICAgICAgICAgaWYgdGVzdF90eXBlOgotICAg
ICAgICAgICAgc291cmNlX2ZpbGVzLmFwcGVuZChTb3VyY2VGaWxlV2l0aFRlc3QodGVzdCwgc3Ry
KGkpICogNDAsIGl0ZW1fY2xhc3Nlc1t0ZXN0X3R5cGVdKSkKKyAgICAgICAgICAgIHNvdXJjZV9m
aWxlcy5hcHBlbmQoKFNvdXJjZUZpbGVXaXRoVGVzdCh0ZXN0LCBzdHIoaSkgKiA0MCwgaXRlbV9j
bGFzc2VzW3Rlc3RfdHlwZV0pLCBUcnVlKSkKICAgICBtID0gbWFuaWZlc3QuTWFuaWZlc3QoKQog
ICAgIG0udXBkYXRlKHNvdXJjZV9maWxlcykKICAgICByZXR1cm4gbQogCiAKK0BweXRlc3QubWFy
ay54ZmFpbChzeXMudmVyc2lvblswXSA9PSAiMyIsCisgICAgICAgICAgICAgICAgICAgcmVhc29u
PSJtZXRhZGF0YSBkb2Vzbid0IHN1cHBvcnQgcHkzIikKIGRlZiB0ZXN0X3VwZGF0ZV8wKCk6Ci0g
ICAgdGVzdHMgPSBbKCJwYXRoL3RvL3Rlc3QuaHRtIiwgWyIvcGF0aC90by90ZXN0Lmh0bSJdLCAi
dGVzdGhhcm5lc3MiLAorICAgIHRlc3RzID0gWygicGF0aC90by90ZXN0Lmh0bSIsIFt0ZXN0X2lk
XSwgInRlc3RoYXJuZXNzIiwKICAgICAgICAgICAgICAgIiIiW3Rlc3QuaHRtXQogICBbdGVzdDFd
CiAgICAgZXhwZWN0ZWQ6IEZBSUwiIiIpXQpAQCAtMTE1LDM5ICsxNDYsNjcyIEBAIGRlZiB0ZXN0
X3VwZGF0ZV8wKCk6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJzdWJ0
ZXN0IjogInRlc3QxIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInN0
YXR1cyI6ICJQQVNTIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImV4
cGVjdGVkIjogIkZBSUwifSksCi0gICAgICAgICAgICAgICAgICAgICAoInRlc3RfZW5kIiwgeyJ0
ZXN0IjogIi9wYXRoL3RvL3Rlc3QuaHRtIiwKKyAgICAgICAgICAgICAgICAgICAgICgidGVzdF9l
bmQiLCB7InRlc3QiOiAiL3BhdGgvdG8vdGVzdC5odG0iLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAic3RhdHVzIjogIk9LIn0pXSkKKworICAgIHVwZGF0ZWQgPSB1cGRhdGUo
dGVzdHMsIGxvZykKKworICAgIGFzc2VydCBsZW4odXBkYXRlZCkgPT0gMQorICAgIGFzc2VydCB1
cGRhdGVkWzBdWzFdLmlzX2VtcHR5CisKKworQHB5dGVzdC5tYXJrLnhmYWlsKHN5cy52ZXJzaW9u
WzBdID09ICIzIiwKKyAgICAgICAgICAgICAgICAgICByZWFzb249Im1ldGFkYXRhIGRvZXNuJ3Qg
c3VwcG9ydCBweTMiKQorZGVmIHRlc3RfdXBkYXRlXzEoKToKKyAgICB0ZXN0cyA9IFsoInBhdGgv
dG8vdGVzdC5odG0iLCBbdGVzdF9pZF0sICJ0ZXN0aGFybmVzcyIsCisgICAgICAgICAgICAgICIi
Ilt0ZXN0Lmh0bV0KKyAgW3Rlc3QxXQorICAgIGV4cGVjdGVkOiBFUlJPUiIiIildCisKKyAgICBs
b2cgPSBzdWl0ZV9sb2coWygidGVzdF9zdGFydCIsIHsidGVzdCI6IHRlc3RfaWR9KSwKKyAgICAg
ICAgICAgICAgICAgICAgICgidGVzdF9zdGF0dXMiLCB7InRlc3QiOiB0ZXN0X2lkLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAic3VidGVzdCI6ICJ0ZXN0MSIsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJzdGF0dXMiOiAiRkFJTCIsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJleHBlY3RlZCI6ICJFUlJPUiJ9KSwK
KyAgICAgICAgICAgICAgICAgICAgICgidGVzdF9lbmQiLCB7InRlc3QiOiB0ZXN0X2lkLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAic3RhdHVzIjogIk9LIn0pXSkKKworICAg
IHVwZGF0ZWQgPSB1cGRhdGUodGVzdHMsIGxvZykKKworICAgIG5ld19tYW5pZmVzdCA9IHVwZGF0
ZWRbMF1bMV0KKyAgICBhc3NlcnQgbm90IG5ld19tYW5pZmVzdC5pc19lbXB0eQorICAgIGFzc2Vy
dCBuZXdfbWFuaWZlc3QuZ2V0X3Rlc3QodGVzdF9pZCkuY2hpbGRyZW5bMF0uZ2V0KCJleHBlY3Rl
ZCIsIGRlZmF1bHRfcnVuX2luZm8pID09ICJGQUlMIgorCisKK0BweXRlc3QubWFyay54ZmFpbChz
eXMudmVyc2lvblswXSA9PSAiMyIsCisgICAgICAgICAgICAgICAgICAgcmVhc29uPSJtZXRhZGF0
YSBkb2Vzbid0IHN1cHBvcnQgcHkzIikKK2RlZiB0ZXN0X3VwZGF0ZV9rbm93bl9pbnRlcm1pdHRl
bnRfMSgpOgorICAgIHRlc3RzID0gWygicGF0aC90by90ZXN0Lmh0bSIsIFt0ZXN0X2lkXSwgInRl
c3RoYXJuZXNzIiwKKyAgICAgICAgICAgICAgIiIiW3Rlc3QuaHRtXQorICBbdGVzdDFdCisgICAg
ZXhwZWN0ZWQ6IFBBU1MiIiIpXQorCisgICAgbG9nXzAgPSBzdWl0ZV9sb2coWygidGVzdF9zdGFy
dCIsIHsidGVzdCI6IHRlc3RfaWR9KSwKKyAgICAgICAgICAgICAgICAgICAgICgidGVzdF9zdGF0
dXMiLCB7InRlc3QiOiB0ZXN0X2lkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAic3VidGVzdCI6ICJ0ZXN0MSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICJzdGF0dXMiOiAiRkFJTCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICJleHBlY3RlZCI6ICJQQVNTIn0pLAorICAgICAgICAgICAgICAgICAgICAgKCJ0ZXN0
X2VuZCIsIHsidGVzdCI6IHRlc3RfaWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICJzdGF0dXMiOiAiT0sifSldKQorCisgICAgbG9nXzEgPSBzdWl0ZV9sb2coWygidGVzdF9z
dGFydCIsIHsidGVzdCI6IHRlc3RfaWR9KSwKKyAgICAgICAgICAgICAgICAgICAgICgidGVzdF9z
dGF0dXMiLCB7InRlc3QiOiB0ZXN0X2lkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAic3VidGVzdCI6ICJ0ZXN0MSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICJzdGF0dXMiOiAiUEFTUyIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICJleHBlY3RlZCI6ICJQQVNTIn0pLAorICAgICAgICAgICAgICAgICAgICAgKCJ0
ZXN0X2VuZCIsIHsidGVzdCI6IHRlc3RfaWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICJzdGF0dXMiOiAiT0sifSldKQorCisgICAgbG9nXzIgPSBzdWl0ZV9sb2coWygidGVz
dF9zdGFydCIsIHsidGVzdCI6IHRlc3RfaWR9KSwKKyAgICAgICAgICAgICAgICAgICAgICgidGVz
dF9zdGF0dXMiLCB7InRlc3QiOiB0ZXN0X2lkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAic3VidGVzdCI6ICJ0ZXN0MSIsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICJzdGF0dXMiOiAiUEFTUyIsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICJleHBlY3RlZCI6ICJQQVNTIn0pLAorICAgICAgICAgICAgICAgICAgICAg
KCJ0ZXN0X2VuZCIsIHsidGVzdCI6IHRlc3RfaWQsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICJzdGF0dXMiOiAiT0sifSldKQorCisgICAgdXBkYXRlZCA9IHVwZGF0ZSh0ZXN0
cywgbG9nXzAsIGxvZ18xLCBsb2dfMiwgdXBkYXRlX2ludGVybWl0dGVudD1UcnVlKQorCisgICAg
bmV3X21hbmlmZXN0ID0gdXBkYXRlZFswXVsxXQorCisgICAgYXNzZXJ0IG5vdCBuZXdfbWFuaWZl
c3QuaXNfZW1wdHkKKyAgICBhc3NlcnQgbmV3X21hbmlmZXN0LmdldF90ZXN0KHRlc3RfaWQpLmNo
aWxkcmVuWzBdLmdldCgKKyAgICAgICAgImV4cGVjdGVkIiwgZGVmYXVsdF9ydW5faW5mbykgPT0g
WyJQQVNTIiwgIkZBSUwiXQorCisKK0BweXRlc3QubWFyay54ZmFpbChzeXMudmVyc2lvblswXSA9
PSAiMyIsCisgICAgICAgICAgICAgICAgICAgcmVhc29uPSJtZXRhZGF0YSBkb2Vzbid0IHN1cHBv
cnQgcHkzIikKK2RlZiB0ZXN0X3VwZGF0ZV9rbm93bl9pbnRlcm1pdHRlbnRfMigpOgorICAgIHRl
c3RzID0gWygicGF0aC90by90ZXN0Lmh0bSIsIFt0ZXN0X2lkXSwgInRlc3RoYXJuZXNzIiwKKyAg
ICAgICAgICAgICAgIiIiW3Rlc3QuaHRtXQorICBbdGVzdDFdCisgICAgZXhwZWN0ZWQ6IFBBU1Mi
IiIpXQorCisgICAgbG9nXzAgPSBzdWl0ZV9sb2coWygidGVzdF9zdGFydCIsIHsidGVzdCI6IHRl
c3RfaWR9KSwKKyAgICAgICAgICAgICAgICAgICAgICgidGVzdF9zdGF0dXMiLCB7InRlc3QiOiB0
ZXN0X2lkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAic3VidGVzdCI6
ICJ0ZXN0MSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJzdGF0dXMi
OiAiRkFJTCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJleHBlY3Rl
ZCI6ICJQQVNTIn0pLAorICAgICAgICAgICAgICAgICAgICAgKCJ0ZXN0X2VuZCIsIHsidGVzdCI6
IHRlc3RfaWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJzdGF0dXMiOiAi
T0sifSldKQorCisgICAgdXBkYXRlZCA9IHVwZGF0ZSh0ZXN0cywgbG9nXzAsIHVwZGF0ZV9pbnRl
cm1pdHRlbnQ9VHJ1ZSkKKworICAgIG5ld19tYW5pZmVzdCA9IHVwZGF0ZWRbMF1bMV0KKworICAg
IGFzc2VydCBub3QgbmV3X21hbmlmZXN0LmlzX2VtcHR5CisgICAgYXNzZXJ0IG5ld19tYW5pZmVz
dC5nZXRfdGVzdCh0ZXN0X2lkKS5jaGlsZHJlblswXS5nZXQoCisgICAgICAgICJleHBlY3RlZCIs
IGRlZmF1bHRfcnVuX2luZm8pID09ICJGQUlMIgorCisKK0BweXRlc3QubWFyay54ZmFpbChzeXMu
dmVyc2lvblswXSA9PSAiMyIsCisgICAgICAgICAgICAgICAgICAgcmVhc29uPSJtZXRhZGF0YSBk
b2Vzbid0IHN1cHBvcnQgcHkzIikKK2RlZiB0ZXN0X3VwZGF0ZV9leGlzdGluZ19rbm93bl9pbnRl
cm1pdHRlbnQoKToKKyAgICB0ZXN0cyA9IFsoInBhdGgvdG8vdGVzdC5odG0iLCBbdGVzdF9pZF0s
ICJ0ZXN0aGFybmVzcyIsCisgICAgICAgICAgICAgICIiIlt0ZXN0Lmh0bV0KKyAgW3Rlc3QxXQor
ICAgIGV4cGVjdGVkOiBbUEFTUywgRkFJTF0iIiIpXQorCisgICAgbG9nXzAgPSBzdWl0ZV9sb2co
WygidGVzdF9zdGFydCIsIHsidGVzdCI6IHRlc3RfaWR9KSwKKyAgICAgICAgICAgICAgICAgICAg
ICgidGVzdF9zdGF0dXMiLCB7InRlc3QiOiB0ZXN0X2lkLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAic3VidGVzdCI6ICJ0ZXN0MSIsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICJzdGF0dXMiOiAiRVJST1IiLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAiZXhwZWN0ZWQiOiAiUEFTUyIsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICJrbm93bl9pbnRlcm1pdHRlbnQiOiBbIkZBSUwiXX0pLAor
ICAgICAgICAgICAgICAgICAgICAgKCJ0ZXN0X2VuZCIsIHsidGVzdCI6IHRlc3RfaWQsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJzdGF0dXMiOiAiT0sifSldKQorCisgICAg
bG9nXzEgPSBzdWl0ZV9sb2coWygidGVzdF9zdGFydCIsIHsidGVzdCI6IHRlc3RfaWR9KSwKKyAg
ICAgICAgICAgICAgICAgICAgICgidGVzdF9zdGF0dXMiLCB7InRlc3QiOiB0ZXN0X2lkLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAic3VidGVzdCI6ICJ0ZXN0MSIsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJzdGF0dXMiOiAiUEFTUyIsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJleHBlY3RlZCI6ICJQQVNTIiwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImtub3duX2ludGVybWl0dGVu
dCI6IFsiRkFJTCJdfSksCisgICAgICAgICAgICAgICAgICAgICAoInRlc3RfZW5kIiwgeyJ0ZXN0
IjogdGVzdF9pZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInN0YXR1cyI6
ICJPSyJ9KV0pCisKKyAgICBsb2dfMiA9IHN1aXRlX2xvZyhbKCJ0ZXN0X3N0YXJ0IiwgeyJ0ZXN0
IjogdGVzdF9pZH0pLAorICAgICAgICAgICAgICAgICAgICAgKCJ0ZXN0X3N0YXR1cyIsIHsidGVz
dCI6IHRlc3RfaWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJzdWJ0
ZXN0IjogInRlc3QxIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInN0
YXR1cyI6ICJQQVNTIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImV4
cGVjdGVkIjogIlBBU1MiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAi
a25vd25faW50ZXJtaXR0ZW50IjogWyJGQUlMIl19KSwKKyAgICAgICAgICAgICAgICAgICAgICgi
dGVzdF9lbmQiLCB7InRlc3QiOiB0ZXN0X2lkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAic3RhdHVzIjogIk9LIn0pXSkKKworICAgIHVwZGF0ZWQgPSB1cGRhdGUodGVzdHMs
IGxvZ18wLCBsb2dfMSwgbG9nXzIsIHVwZGF0ZV9pbnRlcm1pdHRlbnQ9VHJ1ZSkKKworICAgIG5l
d19tYW5pZmVzdCA9IHVwZGF0ZWRbMF1bMV0KKyAgICBhc3NlcnQgbm90IG5ld19tYW5pZmVzdC5p
c19lbXB0eQorICAgIGFzc2VydCBuZXdfbWFuaWZlc3QuZ2V0X3Rlc3QodGVzdF9pZCkuY2hpbGRy
ZW5bMF0uZ2V0KAorICAgICAgICAiZXhwZWN0ZWQiLCBkZWZhdWx0X3J1bl9pbmZvKSA9PSBbIlBB
U1MiLCAiRVJST1IiLCAiRkFJTCJdCisKKworQHB5dGVzdC5tYXJrLnhmYWlsKHN5cy52ZXJzaW9u
WzBdID09ICIzIiwKKyAgICAgICAgICAgICAgICAgICByZWFzb249Im1ldGFkYXRhIGRvZXNuJ3Qg
c3VwcG9ydCBweTMiKQorZGVmIHRlc3RfdXBkYXRlX3JlbW92ZV9wcmV2aW91c19pbnRlcm1pdHRl
bnQoKToKKyAgICB0ZXN0cyA9IFsoInBhdGgvdG8vdGVzdC5odG0iLCBbdGVzdF9pZF0sICJ0ZXN0
aGFybmVzcyIsCisgICAgICAgICAgICAgICIiIlt0ZXN0Lmh0bV0KKyAgW3Rlc3QxXQorICAgIGV4
cGVjdGVkOiBbUEFTUywgRkFJTF0iIiIpXQorCisgICAgbG9nXzAgPSBzdWl0ZV9sb2coWygidGVz
dF9zdGFydCIsIHsidGVzdCI6IHRlc3RfaWR9KSwKKyAgICAgICAgICAgICAgICAgICAgICgidGVz
dF9zdGF0dXMiLCB7InRlc3QiOiB0ZXN0X2lkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAic3VidGVzdCI6ICJ0ZXN0MSIsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICJzdGF0dXMiOiAiRVJST1IiLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAiZXhwZWN0ZWQiOiAiUEFTUyIsCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICJrbm93bl9pbnRlcm1pdHRlbnQiOiBbIkZBSUwiXX0pLAorICAgICAg
ICAgICAgICAgICAgICAgKCJ0ZXN0X2VuZCIsIHsidGVzdCI6IHRlc3RfaWQsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICJzdGF0dXMiOiAiT0sifSldKQorCisgICAgbG9nXzEg
PSBzdWl0ZV9sb2coWygidGVzdF9zdGFydCIsIHsidGVzdCI6IHRlc3RfaWR9KSwKKyAgICAgICAg
ICAgICAgICAgICAgICgidGVzdF9zdGF0dXMiLCB7InRlc3QiOiB0ZXN0X2lkLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAic3VidGVzdCI6ICJ0ZXN0MSIsCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJzdGF0dXMiOiAiUEFTUyIsCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJleHBlY3RlZCI6ICJQQVNTIiwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImtub3duX2ludGVybWl0dGVudCI6IFsi
RkFJTCJdfSksCisgICAgICAgICAgICAgICAgICAgICAoInRlc3RfZW5kIiwgeyJ0ZXN0IjogdGVz
dF9pZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInN0YXR1cyI6ICJPSyJ9
KV0pCisKKyAgICBsb2dfMiA9IHN1aXRlX2xvZyhbKCJ0ZXN0X3N0YXJ0IiwgeyJ0ZXN0IjogdGVz
dF9pZH0pLAorICAgICAgICAgICAgICAgICAgICAgKCJ0ZXN0X3N0YXR1cyIsIHsidGVzdCI6IHRl
c3RfaWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJzdWJ0ZXN0Ijog
InRlc3QxIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInN0YXR1cyI6
ICJQQVNTIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImV4cGVjdGVk
IjogIlBBU1MiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAia25vd25f
aW50ZXJtaXR0ZW50IjogWyJGQUlMIl19KSwKKyAgICAgICAgICAgICAgICAgICAgICgidGVzdF9l
bmQiLCB7InRlc3QiOiB0ZXN0X2lkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAic3RhdHVzIjogIk9LIn0pXSkKKworICAgIHVwZGF0ZWQgPSB1cGRhdGUodGVzdHMsCisgICAg
ICAgICAgICAgICAgICAgICBsb2dfMCwKKyAgICAgICAgICAgICAgICAgICAgIGxvZ18xLAorICAg
ICAgICAgICAgICAgICAgICAgbG9nXzIsCisgICAgICAgICAgICAgICAgICAgICB1cGRhdGVfaW50
ZXJtaXR0ZW50PVRydWUsCisgICAgICAgICAgICAgICAgICAgICByZW1vdmVfaW50ZXJtaXR0ZW50
PVRydWUpCisKKyAgICBuZXdfbWFuaWZlc3QgPSB1cGRhdGVkWzBdWzFdCisgICAgYXNzZXJ0IG5v
dCBuZXdfbWFuaWZlc3QuaXNfZW1wdHkKKyAgICBhc3NlcnQgbmV3X21hbmlmZXN0LmdldF90ZXN0
KHRlc3RfaWQpLmNoaWxkcmVuWzBdLmdldCgKKyAgICAgICAgImV4cGVjdGVkIiwgZGVmYXVsdF9y
dW5faW5mbykgPT0gWyJQQVNTIiwgIkVSUk9SIl0KKworCitAcHl0ZXN0Lm1hcmsueGZhaWwoc3lz
LnZlcnNpb25bMF0gPT0gIjMiLAorICAgICAgICAgICAgICAgICAgIHJlYXNvbj0ibWV0YWRhdGEg
ZG9lc24ndCBzdXBwb3J0IHB5MyIpCitkZWYgdGVzdF91cGRhdGVfbmV3X3Rlc3Rfd2l0aF9pbnRl
cm1pdHRlbnQoKToKKyAgICB0ZXN0cyA9IFsoInBhdGgvdG8vdGVzdC5odG0iLCBbdGVzdF9pZF0s
ICJ0ZXN0aGFybmVzcyIsIE5vbmUpXQorCisgICAgbG9nXzAgPSBzdWl0ZV9sb2coWygidGVzdF9z
dGFydCIsIHsidGVzdCI6IHRlc3RfaWR9KSwKKyAgICAgICAgICAgICAgICAgICAgICAgKCJ0ZXN0
X3N0YXR1cyIsIHsidGVzdCI6IHRlc3RfaWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgInN1YnRlc3QiOiAidGVzdDEiLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICJzdGF0dXMiOiAiUEFTUyIsCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgImV4cGVjdGVkIjogIlBBU1MifSksCisgICAgICAgICAgICAgICAg
ICAgICAgICgidGVzdF9lbmQiLCB7InRlc3QiOiB0ZXN0X2lkLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICJzdGF0dXMiOiAiT0sifSldKQorCisgICAgbG9nXzEgPSBzdWl0
ZV9sb2coWygidGVzdF9zdGFydCIsIHsidGVzdCI6IHRlc3RfaWR9KSwKKyAgICAgICAgICAgICAg
ICAgICAgICAgKCJ0ZXN0X3N0YXR1cyIsIHsidGVzdCI6IHRlc3RfaWQsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgInN1YnRlc3QiOiAidGVzdDEiLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJzdGF0dXMiOiAiUEFTUyIsCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImV4cGVjdGVkIjogIlBBU1MifSksCisg
ICAgICAgICAgICAgICAgICAgICAgICgidGVzdF9lbmQiLCB7InRlc3QiOiB0ZXN0X2lkLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJzdGF0dXMiOiAiT0sifSldKQorCisg
ICAgbG9nXzIgPSBzdWl0ZV9sb2coWygidGVzdF9zdGFydCIsIHsidGVzdCI6IHRlc3RfaWR9KSwK
KyAgICAgICAgICAgICAgICAgICAgICAgKCJ0ZXN0X3N0YXR1cyIsIHsidGVzdCI6IHRlc3RfaWQs
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInN1YnRlc3QiOiAidGVz
dDEiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJzdGF0dXMiOiAi
RkFJTCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImV4cGVjdGVk
IjogIlBBU1MifSksCisgICAgICAgICAgICAgICAgICAgICAgICgidGVzdF9lbmQiLCB7InRlc3Qi
OiB0ZXN0X2lkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJzdGF0dXMi
OiAiT0sifSldKQorCisgICAgdXBkYXRlZCA9IHVwZGF0ZSh0ZXN0cywgbG9nXzAsIGxvZ18xLCBs
b2dfMiwgdXBkYXRlX2ludGVybWl0dGVudD1UcnVlKQorICAgIG5ld19tYW5pZmVzdCA9IHVwZGF0
ZWRbMF1bMV0KKworICAgIGFzc2VydCBub3QgbmV3X21hbmlmZXN0LmlzX2VtcHR5CisgICAgYXNz
ZXJ0IG5ld19tYW5pZmVzdC5nZXRfdGVzdCgidGVzdC5odG0iKSBpcyBOb25lCisgICAgYXNzZXJ0
IGxlbihuZXdfbWFuaWZlc3QuZ2V0X3Rlc3QodGVzdF9pZCkuY2hpbGRyZW4pID09IDEKKyAgICBh
c3NlcnQgbmV3X21hbmlmZXN0LmdldF90ZXN0KHRlc3RfaWQpLmNoaWxkcmVuWzBdLmdldCgKKyAg
ICAgICAgImV4cGVjdGVkIiwgZGVmYXVsdF9ydW5faW5mbykgPT0gWyJQQVNTIiwgIkZBSUwiXQor
CisKK0BweXRlc3QubWFyay54ZmFpbChzeXMudmVyc2lvblswXSA9PSAiMyIsCisgICAgICAgICAg
ICAgICAgICAgcmVhc29uPSJtZXRhZGF0YSBkb2Vzbid0IHN1cHBvcnQgcHkzIikKK2RlZiB0ZXN0
X3VwZGF0ZV9leHBlY3RlZF90aWVfcmVzb2x1dGlvbigpOgorICAgIHRlc3RzID0gWygicGF0aC90
by90ZXN0Lmh0bSIsIFt0ZXN0X2lkXSwgInRlc3RoYXJuZXNzIiwgTm9uZSldCisKKyAgICBsb2df
MCA9IHN1aXRlX2xvZyhbKCJ0ZXN0X3N0YXJ0IiwgeyJ0ZXN0IjogdGVzdF9pZH0pLAorICAgICAg
ICAgICAgICAgICAgICAgICAoInRlc3Rfc3RhdHVzIiwgeyJ0ZXN0IjogdGVzdF9pZCwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAic3VidGVzdCI6ICJ0ZXN0MSIsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInN0YXR1cyI6ICJQQVNTIiwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiZXhwZWN0ZWQiOiAiUEFT
UyJ9KSwKKyAgICAgICAgICAgICAgICAgICAgICAgKCJ0ZXN0X2VuZCIsIHsidGVzdCI6IHRlc3Rf
aWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInN0YXR1cyI6ICJPSyJ9
KV0pCisKKyAgICBsb2dfMSA9IHN1aXRlX2xvZyhbKCJ0ZXN0X3N0YXJ0IiwgeyJ0ZXN0IjogdGVz
dF9pZH0pLAorICAgICAgICAgICAgICAgICAgICAgICAoInRlc3Rfc3RhdHVzIiwgeyJ0ZXN0Ijog
dGVzdF9pZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAic3VidGVz
dCI6ICJ0ZXN0MSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInN0
YXR1cyI6ICJGQUlMIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAi
ZXhwZWN0ZWQiOiAiUEFTUyJ9KSwKKyAgICAgICAgICAgICAgICAgICAgICAgKCJ0ZXN0X2VuZCIs
IHsidGVzdCI6IHRlc3RfaWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
InN0YXR1cyI6ICJPSyJ9KV0pCisKKyAgICB1cGRhdGVkID0gdXBkYXRlKHRlc3RzLCBsb2dfMCwg
bG9nXzEsIHVwZGF0ZV9pbnRlcm1pdHRlbnQ9VHJ1ZSkKKyAgICBuZXdfbWFuaWZlc3QgPSB1cGRh
dGVkWzBdWzFdCisKKyAgICBhc3NlcnQgbm90IG5ld19tYW5pZmVzdC5pc19lbXB0eQorICAgIGFz
c2VydCBuZXdfbWFuaWZlc3QuZ2V0X3Rlc3QodGVzdF9pZCkuY2hpbGRyZW5bMF0uZ2V0KAorICAg
ICAgICAiZXhwZWN0ZWQiLCBkZWZhdWx0X3J1bl9pbmZvKSA9PSBbIlBBU1MiLCAiRkFJTCJdCisK
KworQHB5dGVzdC5tYXJrLnhmYWlsKHN5cy52ZXJzaW9uWzBdID09ICIzIiwKKyAgICAgICAgICAg
ICAgICAgICByZWFzb249Im1ldGFkYXRhIGRvZXNuJ3Qgc3VwcG9ydCBweTMiKQorZGVmIHRlc3Rf
dXBkYXRlX3Jlb3JkZXJfZXhwZWN0ZWQoKToKKyAgICB0ZXN0cyA9IFsoInBhdGgvdG8vdGVzdC5o
dG0iLCBbdGVzdF9pZF0sICJ0ZXN0aGFybmVzcyIsCisgICAgICAgICAgICAgICIiIlt0ZXN0Lmh0
bV0KKyAgW3Rlc3QxXQorICAgIGV4cGVjdGVkOiBbUEFTUywgRkFJTF0iIiIpXQorCisgICAgbG9n
XzAgPSBzdWl0ZV9sb2coWygidGVzdF9zdGFydCIsIHsidGVzdCI6IHRlc3RfaWR9KSwKKyAgICAg
ICAgICAgICAgICAgICAgICAgKCJ0ZXN0X3N0YXR1cyIsIHsidGVzdCI6IHRlc3RfaWQsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInN1YnRlc3QiOiAidGVzdDEiLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJzdGF0dXMiOiAiRkFJTCIs
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImV4cGVjdGVkIjogIlBB
U1MiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJrbm93bl9pbnRl
cm1pdHRlbnQiOiBbIkZBSUwiXX0pLAorICAgICAgICAgICAgICAgICAgICAgICAoInRlc3RfZW5k
IiwgeyJ0ZXN0IjogdGVzdF9pZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAic3RhdHVzIjogIk9LIn0pXSkKKworICAgIGxvZ18xID0gc3VpdGVfbG9nKFsoInRlc3Rfc3Rh
cnQiLCB7InRlc3QiOiB0ZXN0X2lkfSksCisgICAgICAgICAgICAgICAgICAgICAgICgidGVzdF9z
dGF0dXMiLCB7InRlc3QiOiB0ZXN0X2lkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICJzdWJ0ZXN0IjogInRlc3QxIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAic3RhdHVzIjogIkZBSUwiLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICJleHBlY3RlZCI6ICJQQVNTIiwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAia25vd25faW50ZXJtaXR0ZW50IjogWyJGQUlMIl19KSwKKyAg
ICAgICAgICAgICAgICAgICAgICAgKCJ0ZXN0X2VuZCIsIHsidGVzdCI6IHRlc3RfaWQsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInN0YXR1cyI6ICJPSyJ9KV0pCisKKyAg
ICBsb2dfMiA9IHN1aXRlX2xvZyhbKCJ0ZXN0X3N0YXJ0IiwgeyJ0ZXN0IjogdGVzdF9pZH0pLAor
ICAgICAgICAgICAgICAgICAgICAgICAoInRlc3Rfc3RhdHVzIiwgeyJ0ZXN0IjogdGVzdF9pZCwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAic3VidGVzdCI6ICJ0ZXN0
MSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInN0YXR1cyI6ICJQ
QVNTIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiZXhwZWN0ZWQi
OiAiUEFTUyIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImtub3du
X2ludGVybWl0dGVudCI6IFsiRkFJTCJdfSksCisgICAgICAgICAgICAgICAgICAgICAgICgidGVz
dF9lbmQiLCB7InRlc3QiOiB0ZXN0X2lkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICJzdGF0dXMiOiAiT0sifSldKQorCisgICAgdXBkYXRlZCA9IHVwZGF0ZSh0ZXN0cywg
bG9nXzAsIGxvZ18xLCBsb2dfMiwgdXBkYXRlX2ludGVybWl0dGVudD1UcnVlKQorICAgIG5ld19t
YW5pZmVzdCA9IHVwZGF0ZWRbMF1bMV0KKworICAgIGFzc2VydCBub3QgbmV3X21hbmlmZXN0Lmlz
X2VtcHR5CisgICAgYXNzZXJ0IG5ld19tYW5pZmVzdC5nZXRfdGVzdCh0ZXN0X2lkKS5jaGlsZHJl
blswXS5nZXQoCisgICAgICAgICJleHBlY3RlZCIsIGRlZmF1bHRfcnVuX2luZm8pID09IFsiRkFJ
TCIsICJQQVNTIl0KKworCitAcHl0ZXN0Lm1hcmsueGZhaWwoc3lzLnZlcnNpb25bMF0gPT0gIjMi
LAorICAgICAgICAgICAgICAgICAgIHJlYXNvbj0ibWV0YWRhdGEgZG9lc24ndCBzdXBwb3J0IHB5
MyIpCitkZWYgdGVzdF91cGRhdGVfYW5kX3ByZXNlcnZlX3VuY2hhbmdlZF9leHBlY3RlZF9pbnRl
cm1pdHRlbnQoKToKKyAgICB0ZXN0cyA9IFsoInBhdGgvdG8vdGVzdC5odG0iLCBbdGVzdF9pZF0s
ICJ0ZXN0aGFybmVzcyIsICIiIgorW3Rlc3QuaHRtXQorICBleHBlY3RlZDoKKyAgICBpZiBvcyA9
PSAiYW5kcm9pZCI6IFtQQVNTLCBGQUlMXQorICAgIEZBSUwiIiIpXQorCisgICAgbG9nXzAgPSBz
dWl0ZV9sb2coWygidGVzdF9zdGFydCIsIHsidGVzdCI6IHRlc3RfaWR9KSwKKyAgICAgICAgICAg
ICAgICAgICAgICAgKCJ0ZXN0X2VuZCIsIHsidGVzdCI6IHRlc3RfaWQsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgInN0YXR1cyI6ICJGQUlMIiwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAiZXhwZWN0ZWQiOiAiUEFTUyIsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgImtub3duX2ludGVybWl0dGVudCI6IFsiRkFJTCJdfSld
LAorICAgICAgICAgICAgICAgICAgICAgIHJ1bl9pbmZvPXsib3MiOiAiYW5kcm9pZCJ9KQorCisg
ICAgbG9nXzEgPSBzdWl0ZV9sb2coWygidGVzdF9zdGFydCIsIHsidGVzdCI6IHRlc3RfaWR9KSwK
KyAgICAgICAgICAgICAgICAgICAgICAgKCJ0ZXN0X2VuZCIsIHsidGVzdCI6IHRlc3RfaWQsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInN0YXR1cyI6ICJQQVNTIiwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiZXhwZWN0ZWQiOiAiUEFTUyIsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImtub3duX2ludGVybWl0dGVudCI6
IFsiRkFJTCJdfSldLAorICAgICAgICAgICAgICAgICAgICAgIHJ1bl9pbmZvPXsib3MiOiAiYW5k
cm9pZCJ9KQorCisgICAgbG9nXzIgPSBzdWl0ZV9sb2coWygidGVzdF9zdGFydCIsIHsidGVzdCI6
IHRlc3RfaWR9KSwKKyAgICAgICAgICAgICAgICAgICAgICAgKCJ0ZXN0X2VuZCIsIHsidGVzdCI6
IHRlc3RfaWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInN0YXR1cyI6
ICJQQVNTIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiZXhwZWN0ZWQi
OiAiRkFJTCJ9KV0pCisKKyAgICB1cGRhdGVkID0gdXBkYXRlKHRlc3RzLCBsb2dfMCwgbG9nXzEs
IGxvZ18yKQorICAgIG5ld19tYW5pZmVzdCA9IHVwZGF0ZWRbMF1bMV0KKworICAgIGFzc2VydCBu
b3QgbmV3X21hbmlmZXN0LmlzX2VtcHR5CisKKyAgICBydW5faW5mb18xID0gZGVmYXVsdF9ydW5f
aW5mby5jb3B5KCkKKyAgICBydW5faW5mb18xLnVwZGF0ZSh7Im9zIjogImFuZHJvaWQifSkKKwor
ICAgIGFzc2VydCBub3QgbmV3X21hbmlmZXN0LmlzX2VtcHR5CisgICAgYXNzZXJ0IG5ld19tYW5p
ZmVzdC5nZXRfdGVzdCh0ZXN0X2lkKS5nZXQoCisgICAgICAgICJleHBlY3RlZCIsIHJ1bl9pbmZv
XzEpID09IFsiUEFTUyIsICJGQUlMIl0KKyAgICBhc3NlcnQgbmV3X21hbmlmZXN0LmdldF90ZXN0
KHRlc3RfaWQpLmdldCgKKyAgICAgICAgImV4cGVjdGVkIiwgZGVmYXVsdF9ydW5faW5mbykgPT0g
IlBBU1MiCisKKworQHB5dGVzdC5tYXJrLnhmYWlsKHN5cy52ZXJzaW9uWzBdID09ICIzIiwKKyAg
ICAgICAgICAgICAgICAgICByZWFzb249Im1ldGFkYXRhIGRvZXNuJ3Qgc3VwcG9ydCBweTMiKQor
ZGVmIHRlc3RfdXBkYXRlX3Rlc3Rfd2l0aF9pbnRlcm1pdHRlbnRfdG9fb25lX2V4cGVjdGVkX3N0
YXR1cygpOgorICAgIHRlc3RzID0gWygicGF0aC90by90ZXN0Lmh0bSIsIFt0ZXN0X2lkXSwgInRl
c3RoYXJuZXNzIiwKKyAgICAgICAgICAgICAgIiIiW3Rlc3QuaHRtXQorICBbdGVzdDFdCisgICAg
ZXhwZWN0ZWQ6IFtQQVNTLCBGQUlMXSIiIildCisKKyAgICBsb2dfMCA9IHN1aXRlX2xvZyhbKCJ0
ZXN0X3N0YXJ0IiwgeyJ0ZXN0IjogdGVzdF9pZH0pLAorICAgICAgICAgICAgICAgICAgICAgKCJ0
ZXN0X3N0YXR1cyIsIHsidGVzdCI6IHRlc3RfaWQsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICJzdWJ0ZXN0IjogInRlc3QxIiwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgInN0YXR1cyI6ICJFUlJPUiIsCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICJleHBlY3RlZCI6ICJQQVNTIiwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgImtub3duX2ludGVybWl0dGVudCI6IFsiRkFJTCJdfSksCisgICAg
ICAgICAgICAgICAgICAgICAoInRlc3RfZW5kIiwgeyJ0ZXN0IjogdGVzdF9pZCwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgInN0YXR1cyI6ICJPSyJ9KV0pCisKKyAgICB1cGRh
dGVkID0gdXBkYXRlKHRlc3RzLCBsb2dfMCkKKworICAgIG5ld19tYW5pZmVzdCA9IHVwZGF0ZWRb
MF1bMV0KKyAgICBhc3NlcnQgbm90IG5ld19tYW5pZmVzdC5pc19lbXB0eQorICAgIGFzc2VydCBu
ZXdfbWFuaWZlc3QuZ2V0X3Rlc3QodGVzdF9pZCkuY2hpbGRyZW5bMF0uZ2V0KAorICAgICAgICAi
ZXhwZWN0ZWQiLCBkZWZhdWx0X3J1bl9pbmZvKSA9PSAiRVJST1IiCisKKworQHB5dGVzdC5tYXJr
LnhmYWlsKHN5cy52ZXJzaW9uWzBdID09ICIzIiwKKyAgICAgICAgICAgICAgICAgICByZWFzb249
Im1ldGFkYXRhIGRvZXNuJ3Qgc3VwcG9ydCBweTMiKQorZGVmIHRlc3RfdXBkYXRlX2ludGVybWl0
dGVudF93aXRoX2NvbmRpdGlvbnMoKToKKyAgICB0ZXN0cyA9IFsoInBhdGgvdG8vdGVzdC5odG0i
LCBbdGVzdF9pZF0sICJ0ZXN0aGFybmVzcyIsICIiIgorW3Rlc3QuaHRtXQorICBleHBlY3RlZDoK
KyAgICBpZiBvcyA9PSAiYW5kcm9pZCI6IFtQQVNTLCBGQUlMXSIiIildCisKKyAgICBsb2dfMCA9
IHN1aXRlX2xvZyhbKCJ0ZXN0X3N0YXJ0IiwgeyJ0ZXN0IjogdGVzdF9pZH0pLAorICAgICAgICAg
ICAgICAgICAgICAgICAoInRlc3RfZW5kIiwgeyJ0ZXN0IjogdGVzdF9pZCwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAic3RhdHVzIjogIlRJTUVPVVQiLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICJleHBlY3RlZCI6ICJQQVNTIiwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAia25vd25faW50ZXJtaXR0ZW50IjogWyJGQUlM
Il19KV0sCisgICAgICAgICAgICAgICAgICAgICAgcnVuX2luZm89eyJvcyI6ICJhbmRyb2lkIn0p
CisKKyAgICBsb2dfMSA9IHN1aXRlX2xvZyhbKCJ0ZXN0X3N0YXJ0IiwgeyJ0ZXN0IjogdGVzdF9p
ZH0pLAorICAgICAgICAgICAgICAgICAgICAgICAoInRlc3RfZW5kIiwgeyJ0ZXN0IjogdGVzdF9p
ZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAic3RhdHVzIjogIlBBU1Mi
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJleHBlY3RlZCI6ICJQQVNT
IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAia25vd25faW50ZXJtaXR0
ZW50IjogWyJGQUlMIl19KV0sCisgICAgICAgICAgICAgICAgICAgICAgcnVuX2luZm89eyJvcyI6
ICJhbmRyb2lkIn0pCisKKyAgICB1cGRhdGVkID0gdXBkYXRlKHRlc3RzLCBsb2dfMCwgbG9nXzEs
IHVwZGF0ZV9pbnRlcm1pdHRlbnQ9VHJ1ZSkKKyAgICBuZXdfbWFuaWZlc3QgPSB1cGRhdGVkWzBd
WzFdCisKKyAgICBhc3NlcnQgbm90IG5ld19tYW5pZmVzdC5pc19lbXB0eQorCisgICAgcnVuX2lu
Zm9fMSA9IGRlZmF1bHRfcnVuX2luZm8uY29weSgpCisgICAgcnVuX2luZm9fMS51cGRhdGUoeyJv
cyI6ICJhbmRyb2lkIn0pCisKKyAgICBhc3NlcnQgbm90IG5ld19tYW5pZmVzdC5pc19lbXB0eQor
ICAgIGFzc2VydCBuZXdfbWFuaWZlc3QuZ2V0X3Rlc3QodGVzdF9pZCkuZ2V0KAorICAgICAgICAi
ZXhwZWN0ZWQiLCBydW5faW5mb18xKSA9PSBbIlBBU1MiLCAiVElNRU9VVCIsICJGQUlMIl0KKwor
CitAcHl0ZXN0Lm1hcmsueGZhaWwoc3lzLnZlcnNpb25bMF0gPT0gIjMiLAorICAgICAgICAgICAg
ICAgICAgIHJlYXNvbj0ibWV0YWRhdGEgZG9lc24ndCBzdXBwb3J0IHB5MyIpCitkZWYgdGVzdF91
cGRhdGVfYW5kX3JlbW92ZV9pbnRlcm1pdHRlbnRfd2l0aF9jb25kaXRpb25zKCk6CisgICAgdGVz
dHMgPSBbKCJwYXRoL3RvL3Rlc3QuaHRtIiwgW3Rlc3RfaWRdLCAidGVzdGhhcm5lc3MiLCAiIiIK
K1t0ZXN0Lmh0bV0KKyAgZXhwZWN0ZWQ6CisgICAgaWYgb3MgPT0gImFuZHJvaWQiOiBbUEFTUywg
RkFJTF0iIiIpXQorCisgICAgbG9nXzAgPSBzdWl0ZV9sb2coWygidGVzdF9zdGFydCIsIHsidGVz
dCI6IHRlc3RfaWR9KSwKKyAgICAgICAgICAgICAgICAgICAgICAgKCJ0ZXN0X2VuZCIsIHsidGVz
dCI6IHRlc3RfaWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInN0YXR1
cyI6ICJUSU1FT1VUIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiZXhw
ZWN0ZWQiOiAiUEFTUyIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImtu
b3duX2ludGVybWl0dGVudCI6IFsiRkFJTCJdfSldLAorICAgICAgICAgICAgICAgICAgICAgIHJ1
bl9pbmZvPXsib3MiOiAiYW5kcm9pZCJ9KQorCisgICAgbG9nXzEgPSBzdWl0ZV9sb2coWygidGVz
dF9zdGFydCIsIHsidGVzdCI6IHRlc3RfaWR9KSwKKyAgICAgICAgICAgICAgICAgICAgICAgKCJ0
ZXN0X2VuZCIsIHsidGVzdCI6IHRlc3RfaWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgInN0YXR1cyI6ICJQQVNTIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAiZXhwZWN0ZWQiOiAiUEFTUyIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgImtub3duX2ludGVybWl0dGVudCI6IFsiRkFJTCJdfSldLAorICAgICAgICAgICAg
ICAgICAgICAgIHJ1bl9pbmZvPXsib3MiOiAiYW5kcm9pZCJ9KQorCisgICAgdXBkYXRlZCA9IHVw
ZGF0ZSh0ZXN0cywgbG9nXzAsIGxvZ18xLCB1cGRhdGVfaW50ZXJtaXR0ZW50PVRydWUsIHJlbW92
ZV9pbnRlcm1pdHRlbnQ9VHJ1ZSkKKyAgICBuZXdfbWFuaWZlc3QgPSB1cGRhdGVkWzBdWzFdCisK
KyAgICBhc3NlcnQgbm90IG5ld19tYW5pZmVzdC5pc19lbXB0eQorCisgICAgcnVuX2luZm9fMSA9
IGRlZmF1bHRfcnVuX2luZm8uY29weSgpCisgICAgcnVuX2luZm9fMS51cGRhdGUoeyJvcyI6ICJh
bmRyb2lkIn0pCisKKyAgICBhc3NlcnQgbm90IG5ld19tYW5pZmVzdC5pc19lbXB0eQorICAgIGFz
c2VydCBuZXdfbWFuaWZlc3QuZ2V0X3Rlc3QodGVzdF9pZCkuZ2V0KAorICAgICAgICAiZXhwZWN0
ZWQiLCBydW5faW5mb18xKSA9PSBbIlBBU1MiLCAiVElNRU9VVCJdCisKKworQHB5dGVzdC5tYXJr
LnhmYWlsKHN5cy52ZXJzaW9uWzBdID09ICIzIiwKKyAgICAgICAgICAgICAgICAgICByZWFzb249
Im1ldGFkYXRhIGRvZXNuJ3Qgc3VwcG9ydCBweTMiKQorZGVmIHRlc3RfdXBkYXRlX2ludGVybWl0
dGVudF9mdWxsKCk6CisgICAgdGVzdHMgPSBbKCJwYXRoL3RvL3Rlc3QuaHRtIiwgW3Rlc3RfaWRd
LCAidGVzdGhhcm5lc3MiLAorICAgICAgICAgICAgICAiIiJbdGVzdC5odG1dCisgIFt0ZXN0MV0K
KyAgICBleHBlY3RlZDoKKyAgICAgIGlmIG9zID09ICJtYWMiOiBbRkFJTCwgVElNRU9VVF0KKyAg
ICAgIEZBSUwiIiIpXQorCisgICAgbG9nXzAgPSBzdWl0ZV9sb2coWygidGVzdF9zdGFydCIsIHsi
dGVzdCI6IHRlc3RfaWR9KSwKKyAgICAgICAgICAgICAgICAgICAgICgidGVzdF9zdGF0dXMiLCB7
InRlc3QiOiB0ZXN0X2lkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAi
c3VidGVzdCI6ICJ0ZXN0MSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICJzdGF0dXMiOiAiRkFJTCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICJleHBlY3RlZCI6ICJGQUlMIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgImtub3duX2ludGVybWl0dGVudCI6IFsiVElNRU9VVCJdfSksCisgICAgICAgICAgICAgICAg
ICAgICAoInRlc3RfZW5kIiwgeyJ0ZXN0IjogdGVzdF9pZCwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgInN0YXR1cyI6ICJPSyJ9KV0sCisgICAgICAgICAgICAgICAgICAgICBy
dW5faW5mbz17Im9zIjogIm1hYyJ9KQorCisgICAgbG9nXzEgPSBzdWl0ZV9sb2coWygidGVzdF9z
dGFydCIsIHsidGVzdCI6IHRlc3RfaWR9KSwKKyAgICAgICAgICAgICAgICAgICAgICgidGVzdF9z
dGF0dXMiLCB7InRlc3QiOiB0ZXN0X2lkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAic3VidGVzdCI6ICJ0ZXN0MSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICJzdGF0dXMiOiAiRkFJTCJ9KSwKKyAgICAgICAgICAgICAgICAgICAgICgidGVz
dF9lbmQiLCB7InRlc3QiOiB0ZXN0X2lkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAic3RhdHVzIjogIk9LIn0pXSkKKworICAgIHVwZGF0ZWQgPSB1cGRhdGUodGVzdHMsIGxv
Z18wLCBsb2dfMSwgdXBkYXRlX2ludGVybWl0dGVudD1UcnVlLCBmdWxsX3VwZGF0ZT1UcnVlKQor
CisgICAgbmV3X21hbmlmZXN0ID0gdXBkYXRlZFswXVsxXQorCisgICAgYXNzZXJ0IG5vdCBuZXdf
bWFuaWZlc3QuaXNfZW1wdHkKKyAgICBydW5faW5mb18xID0gZGVmYXVsdF9ydW5faW5mby5jb3B5
KCkKKyAgICBydW5faW5mb18xLnVwZGF0ZSh7Im9zIjogIm1hYyJ9KQorICAgIGFzc2VydCBuZXdf
bWFuaWZlc3QuZ2V0X3Rlc3QodGVzdF9pZCkuY2hpbGRyZW5bMF0uZ2V0KAorICAgICAgICAiZXhw
ZWN0ZWQiLCBydW5faW5mb18xKSA9PSBbIkZBSUwiLCAiVElNRU9VVCJdCisgICAgYXNzZXJ0IG5l
d19tYW5pZmVzdC5nZXRfdGVzdCh0ZXN0X2lkKS5jaGlsZHJlblswXS5nZXQoCisgICAgICAgICJl
eHBlY3RlZCIsIGRlZmF1bHRfcnVuX2luZm8pID09ICJGQUlMIgorCisKK0BweXRlc3QubWFyay54
ZmFpbChzeXMudmVyc2lvblswXSA9PSAiMyIsCisgICAgICAgICAgICAgICAgICAgcmVhc29uPSJt
ZXRhZGF0YSBkb2Vzbid0IHN1cHBvcnQgcHkzIikKK2RlZiB0ZXN0X3VwZGF0ZV9pbnRlcm1pdHRl
bnRfZnVsbF9yZW1vdmUoKToKKyAgICB0ZXN0cyA9IFsoInBhdGgvdG8vdGVzdC5odG0iLCBbdGVz
dF9pZF0sICJ0ZXN0aGFybmVzcyIsCisgICAgICAgICAgICAgICIiIlt0ZXN0Lmh0bV0KKyAgW3Rl
c3QxXQorICAgIGV4cGVjdGVkOgorICAgICAgaWYgb3MgPT0gIm1hYyI6IFtGQUlMLCBUSU1FT1VU
LCBQQVNTXQorICAgICAgRkFJTCIiIildCisKKyAgICBsb2dfMCA9IHN1aXRlX2xvZyhbKCJ0ZXN0
X3N0YXJ0IiwgeyJ0ZXN0IjogdGVzdF9pZH0pLAorICAgICAgICAgICAgICAgICAgICAgKCJ0ZXN0
X3N0YXR1cyIsIHsidGVzdCI6IHRlc3RfaWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICJzdWJ0ZXN0IjogInRlc3QxIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgInN0YXR1cyI6ICJGQUlMIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgImV4cGVjdGVkIjogIkZBSUwiLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAia25vd25faW50ZXJtaXR0ZW50IjogWyJUSU1FT1VUIiwgIlBBU1MiXX0p
LAorICAgICAgICAgICAgICAgICAgICAgKCJ0ZXN0X2VuZCIsIHsidGVzdCI6IHRlc3RfaWQsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJzdGF0dXMiOiAiT0sifSldLAorICAg
ICAgICAgICAgICAgICAgICAgcnVuX2luZm89eyJvcyI6ICJtYWMifSkKKworICAgIGxvZ18xID0g
c3VpdGVfbG9nKFsoInRlc3Rfc3RhcnQiLCB7InRlc3QiOiB0ZXN0X2lkfSksCisgICAgICAgICAg
ICAgICAgICAgICAoInRlc3Rfc3RhdHVzIiwgeyJ0ZXN0IjogdGVzdF9pZCwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgInN1YnRlc3QiOiAidGVzdDEiLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAic3RhdHVzIjogIlRJTUVPVVQiLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiZXhwZWN0ZWQiOiAiRkFJTCIsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJrbm93bl9pbnRlcm1pdHRlbnQiOiBb
IlRJTUVPVVQiLCAiUEFTUyJdfSksCisgICAgICAgICAgICAgICAgICAgICAoInRlc3RfZW5kIiwg
eyJ0ZXN0IjogdGVzdF9pZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInN0
YXR1cyI6ICJPSyJ9KV0sCisgICAgICAgICAgICAgICAgICAgICBydW5faW5mbz17Im9zIjogIm1h
YyJ9KQorCisgICAgbG9nXzIgPSBzdWl0ZV9sb2coWygidGVzdF9zdGFydCIsIHsidGVzdCI6IHRl
c3RfaWR9KSwKKyAgICAgICAgICAgICAgICAgICAgICgidGVzdF9zdGF0dXMiLCB7InRlc3QiOiB0
ZXN0X2lkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAic3VidGVzdCI6
ICJ0ZXN0MSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJzdGF0dXMi
OiAiRkFJTCJ9KSwKKyAgICAgICAgICAgICAgICAgICAgICgidGVzdF9lbmQiLCB7InRlc3QiOiB0
ZXN0X2lkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAic3RhdHVzIjogIk9L
In0pXSkKKworICAgIHVwZGF0ZWQgPSB1cGRhdGUodGVzdHMsIGxvZ18wLCBsb2dfMSwgbG9nXzIs
IHVwZGF0ZV9pbnRlcm1pdHRlbnQ9VHJ1ZSwKKyAgICAgICAgICAgICAgICAgICAgIGZ1bGxfdXBk
YXRlPVRydWUsIHJlbW92ZV9pbnRlcm1pdHRlbnQ9VHJ1ZSkKKworICAgIG5ld19tYW5pZmVzdCA9
IHVwZGF0ZWRbMF1bMV0KKworICAgIGFzc2VydCBub3QgbmV3X21hbmlmZXN0LmlzX2VtcHR5Cisg
ICAgcnVuX2luZm9fMSA9IGRlZmF1bHRfcnVuX2luZm8uY29weSgpCisgICAgcnVuX2luZm9fMS51
cGRhdGUoeyJvcyI6ICJtYWMifSkKKyAgICBhc3NlcnQgbmV3X21hbmlmZXN0LmdldF90ZXN0KHRl
c3RfaWQpLmNoaWxkcmVuWzBdLmdldCgKKyAgICAgICAgImV4cGVjdGVkIiwgcnVuX2luZm9fMSkg
PT0gWyJGQUlMIiwgIlRJTUVPVVQiXQorICAgIGFzc2VydCBuZXdfbWFuaWZlc3QuZ2V0X3Rlc3Qo
dGVzdF9pZCkuY2hpbGRyZW5bMF0uZ2V0KAorICAgICAgICAiZXhwZWN0ZWQiLCBkZWZhdWx0X3J1
bl9pbmZvKSA9PSAiRkFJTCIKKworCitAcHl0ZXN0Lm1hcmsueGZhaWwoc3lzLnZlcnNpb25bMF0g
PT0gIjMiLAorICAgICAgICAgICAgICAgICAgIHJlYXNvbj0ibWV0YWRhdGEgZG9lc24ndCBzdXBw
b3J0IHB5MyIpCitkZWYgdGVzdF9mdWxsX3VwZGF0ZSgpOgorICAgIHRlc3RzID0gWygicGF0aC90
by90ZXN0Lmh0bSIsIFt0ZXN0X2lkXSwgInRlc3RoYXJuZXNzIiwKKyAgICAgICAgICAgICAgIiIi
W3Rlc3QuaHRtXQorICBbdGVzdDFdCisgICAgZXhwZWN0ZWQ6CisgICAgICBpZiBvcyA9PSAibWFj
IjogW0ZBSUwsIFRJTUVPVVRdCisgICAgICBGQUlMIiIiKV0KKworICAgIGxvZ18wID0gc3VpdGVf
bG9nKFsoInRlc3Rfc3RhcnQiLCB7InRlc3QiOiB0ZXN0X2lkfSksCisgICAgICAgICAgICAgICAg
ICAgICAoInRlc3Rfc3RhdHVzIiwgeyJ0ZXN0IjogdGVzdF9pZCwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgInN1YnRlc3QiOiAidGVzdDEiLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAic3RhdHVzIjogIkZBSUwiLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAiZXhwZWN0ZWQiOiAiRkFJTCIsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICJrbm93bl9pbnRlcm1pdHRlbnQiOiBbIlRJTUVPVVQi
XX0pLAorICAgICAgICAgICAgICAgICAgICAgKCJ0ZXN0X2VuZCIsIHsidGVzdCI6IHRlc3RfaWQs
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJzdGF0dXMiOiAiT0sifSldLAor
ICAgICAgICAgICAgICAgICAgICAgcnVuX2luZm89eyJvcyI6ICJtYWMifSkKKworICAgIGxvZ18x
ID0gc3VpdGVfbG9nKFsoInRlc3Rfc3RhcnQiLCB7InRlc3QiOiB0ZXN0X2lkfSksCisgICAgICAg
ICAgICAgICAgICAgICAoInRlc3Rfc3RhdHVzIiwgeyJ0ZXN0IjogdGVzdF9pZCwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInN1YnRlc3QiOiAidGVzdDEiLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAic3RhdHVzIjogIkZBSUwifSksCisgICAg
ICAgICAgICAgICAgICAgICAoInRlc3RfZW5kIiwgeyJ0ZXN0IjogdGVzdF9pZCwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgInN0YXR1cyI6ICJPSyJ9KV0pCisKKyAgICB1cGRh
dGVkID0gdXBkYXRlKHRlc3RzLCBsb2dfMCwgbG9nXzEsIGZ1bGxfdXBkYXRlPVRydWUpCisKKyAg
ICBuZXdfbWFuaWZlc3QgPSB1cGRhdGVkWzBdWzFdCisKKyAgICBhc3NlcnQgbm90IG5ld19tYW5p
ZmVzdC5pc19lbXB0eQorICAgIHJ1bl9pbmZvXzEgPSBkZWZhdWx0X3J1bl9pbmZvLmNvcHkoKQor
ICAgIHJ1bl9pbmZvXzEudXBkYXRlKHsib3MiOiAibWFjIn0pCisgICAgYXNzZXJ0IG5ld19tYW5p
ZmVzdC5nZXRfdGVzdCh0ZXN0X2lkKS5jaGlsZHJlblswXS5nZXQoCisgICAgICAgICJleHBlY3Rl
ZCIsIHJ1bl9pbmZvXzEpID09ICJGQUlMIgorICAgIGFzc2VydCBuZXdfbWFuaWZlc3QuZ2V0X3Rl
c3QodGVzdF9pZCkuY2hpbGRyZW5bMF0uZ2V0KAorICAgICAgICAiZXhwZWN0ZWQiLCBkZWZhdWx0
X3J1bl9pbmZvKSA9PSAiRkFJTCIKKworCitAcHl0ZXN0Lm1hcmsueGZhaWwoc3lzLnZlcnNpb25b
MF0gPT0gIjMiLAorICAgICAgICAgICAgICAgICAgIHJlYXNvbj0ibWV0YWRhdGEgZG9lc24ndCBz
dXBwb3J0IHB5MyIpCitkZWYgdGVzdF9mdWxsX29ycGhhbigpOgorICAgIHRlc3RzID0gWygicGF0
aC90by90ZXN0Lmh0bSIsIFt0ZXN0X2lkXSwgInRlc3RoYXJuZXNzIiwKKyAgICAgICAgICAgICAg
IiIiW3Rlc3QuaHRtXQorICBbdGVzdDFdCisgICAgZXhwZWN0ZWQ6IEZBSUwKKyAgICBbc3Vic3Vi
IHRlc3RdCisgICAgICBleHBlY3RlZDogVElNRU9VVAorICBbdGVzdDJdCisgICAgZXhwZWN0ZWQ6
IEVSUk9SCisiIiIpXQorCisgICAgbG9nXzAgPSBzdWl0ZV9sb2coWygidGVzdF9zdGFydCIsIHsi
dGVzdCI6IHRlc3RfaWR9KSwKKyAgICAgICAgICAgICAgICAgICAgICgidGVzdF9zdGF0dXMiLCB7
InRlc3QiOiB0ZXN0X2lkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAi
c3VidGVzdCI6ICJ0ZXN0MSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICJzdGF0dXMiOiAiRkFJTCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICJleHBlY3RlZCI6ICJGQUlMIn0pLAorICAgICAgICAgICAgICAgICAgICAgKCJ0ZXN0X2VuZCIs
IHsidGVzdCI6IHRlc3RfaWQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJz
dGF0dXMiOiAiT0sifSldKQogCi0gICAgdXBkYXRlZCA9IHVwZGF0ZSh0ZXN0cywgbG9nKQogCi0g
ICAgYXNzZXJ0IGxlbih1cGRhdGVkKSA9PSAxCi0gICAgYXNzZXJ0IHVwZGF0ZWRbMF1bMV0uaXNf
ZW1wdHkKKyAgICB1cGRhdGVkID0gdXBkYXRlKHRlc3RzLCBsb2dfMCwgZnVsbF91cGRhdGU9VHJ1
ZSkKIAorICAgIG5ld19tYW5pZmVzdCA9IHVwZGF0ZWRbMF1bMV0KIAotZGVmIHRlc3RfdXBkYXRl
XzEoKToKLSAgICB0ZXN0X2lkID0gIi9wYXRoL3RvL3Rlc3QuaHRtIgorICAgIGFzc2VydCBub3Qg
bmV3X21hbmlmZXN0LmlzX2VtcHR5CisgICAgYXNzZXJ0IGxlbihuZXdfbWFuaWZlc3QuZ2V0X3Rl
c3QodGVzdF9pZCkuY2hpbGRyZW5bMF0uY2hpbGRyZW4pID09IDAKKyAgICBhc3NlcnQgbmV3X21h
bmlmZXN0LmdldF90ZXN0KHRlc3RfaWQpLmNoaWxkcmVuWzBdLmdldCgKKyAgICAgICAgImV4cGVj
dGVkIiwgZGVmYXVsdF9ydW5faW5mbykgPT0gIkZBSUwiCisgICAgYXNzZXJ0IGxlbihuZXdfbWFu
aWZlc3QuZ2V0X3Rlc3QodGVzdF9pZCkuY2hpbGRyZW4pID09IDEKKworCitAcHl0ZXN0Lm1hcmsu
eGZhaWwoc3lzLnZlcnNpb25bMF0gPT0gIjMiLAorICAgICAgICAgICAgICAgICAgIHJlYXNvbj0i
bWV0YWRhdGEgZG9lc24ndCBzdXBwb3J0IHB5MyIpCitkZWYgdGVzdF91cGRhdGVfcmVvcmRlcl9l
eHBlY3RlZF9mdWxsX2NvbmRpdGlvbnMoKToKICAgICB0ZXN0cyA9IFsoInBhdGgvdG8vdGVzdC5o
dG0iLCBbdGVzdF9pZF0sICJ0ZXN0aGFybmVzcyIsCiAgICAgICAgICAgICAgICIiIlt0ZXN0Lmh0
bV0KICAgW3Rlc3QxXQotICAgIGV4cGVjdGVkOiBFUlJPUiIiIildCisgICAgZXhwZWN0ZWQ6Cisg
ICAgICBpZiBvcyA9PSAibWFjIjogW0ZBSUwsIFRJTUVPVVRdCisgICAgICBbRkFJTCwgUEFTU10i
IiIpXQogCi0gICAgbG9nID0gc3VpdGVfbG9nKFsoInRlc3Rfc3RhcnQiLCB7InRlc3QiOiB0ZXN0
X2lkfSksCisgICAgbG9nXzAgPSBzdWl0ZV9sb2coWygidGVzdF9zdGFydCIsIHsidGVzdCI6IHRl
c3RfaWR9KSwKICAgICAgICAgICAgICAgICAgICAgICgidGVzdF9zdGF0dXMiLCB7InRlc3QiOiB0
ZXN0X2lkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAic3VidGVzdCI6
ICJ0ZXN0MSIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJzdGF0dXMi
OiAiRkFJTCIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJleHBlY3Rl
ZCI6ICJFUlJPUiJ9KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInN0
YXR1cyI6ICJUSU1FT1VUIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ImV4cGVjdGVkIjogIkZBSUwiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAia25vd25faW50ZXJtaXR0ZW50IjogWyJUSU1FT1VUIl19KSwKKyAgICAgICAgICAgICAgICAg
ICAgICgidGVzdF9lbmQiLCB7InRlc3QiOiB0ZXN0X2lkLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAic3RhdHVzIjogIk9LIn0pXSwKKyAgICAgICAgICAgICAgICAgICAgIHJ1
bl9pbmZvPXsib3MiOiAibWFjIn0pCisKKyAgICBsb2dfMSA9IHN1aXRlX2xvZyhbKCJ0ZXN0X3N0
YXJ0IiwgeyJ0ZXN0IjogdGVzdF9pZH0pLAorICAgICAgICAgICAgICAgICAgICAgKCJ0ZXN0X3N0
YXR1cyIsIHsidGVzdCI6IHRlc3RfaWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICJzdWJ0ZXN0IjogInRlc3QxIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgInN0YXR1cyI6ICJUSU1FT1VUIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgImV4cGVjdGVkIjogIkZBSUwiLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAia25vd25faW50ZXJtaXR0ZW50IjogWyJUSU1FT1VUIl19KSwKKyAgICAg
ICAgICAgICAgICAgICAgICgidGVzdF9lbmQiLCB7InRlc3QiOiB0ZXN0X2lkLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAic3RhdHVzIjogIk9LIn0pXSwKKyAgICAgICAgICAg
ICAgICAgICAgIHJ1bl9pbmZvPXsib3MiOiAibWFjIn0pCisKKyAgICBsb2dfMiA9IHN1aXRlX2xv
ZyhbKCJ0ZXN0X3N0YXJ0IiwgeyJ0ZXN0IjogdGVzdF9pZH0pLAorICAgICAgICAgICAgICAgICAg
ICAgKCJ0ZXN0X3N0YXR1cyIsIHsidGVzdCI6IHRlc3RfaWQsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICJzdWJ0ZXN0IjogInRlc3QxIiwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgInN0YXR1cyI6ICJQQVNTIiwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgImV4cGVjdGVkIjogIkZBSUwiLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAia25vd25faW50ZXJtaXR0ZW50IjogWyJQQVNTIl19KSwK
ICAgICAgICAgICAgICAgICAgICAgICgidGVzdF9lbmQiLCB7InRlc3QiOiB0ZXN0X2lkLAogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAic3RhdHVzIjogIk9LIn0pXSkKIAotICAg
IHVwZGF0ZWQgPSB1cGRhdGUodGVzdHMsIGxvZykKKyAgICBsb2dfMyA9IHN1aXRlX2xvZyhbKCJ0
ZXN0X3N0YXJ0IiwgeyJ0ZXN0IjogdGVzdF9pZH0pLAorICAgICAgICAgICAgICAgICAgICAgKCJ0
ZXN0X3N0YXR1cyIsIHsidGVzdCI6IHRlc3RfaWQsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICJzdWJ0ZXN0IjogInRlc3QxIiwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgInN0YXR1cyI6ICJQQVNTIiwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgImV4cGVjdGVkIjogIkZBSUwiLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAia25vd25faW50ZXJtaXR0ZW50IjogWyJQQVNTIl19KSwKKyAgICAg
ICAgICAgICAgICAgICAgICgidGVzdF9lbmQiLCB7InRlc3QiOiB0ZXN0X2lkLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAic3RhdHVzIjogIk9LIn0pXSkKKworICAgIHVwZGF0
ZWQgPSB1cGRhdGUodGVzdHMsIGxvZ18wLCBsb2dfMSwgbG9nXzIsIGxvZ18zLCB1cGRhdGVfaW50
ZXJtaXR0ZW50PVRydWUsIGZ1bGxfdXBkYXRlPVRydWUpCiAKICAgICBuZXdfbWFuaWZlc3QgPSB1
cGRhdGVkWzBdWzFdCisKICAgICBhc3NlcnQgbm90IG5ld19tYW5pZmVzdC5pc19lbXB0eQotICAg
IGFzc2VydCBuZXdfbWFuaWZlc3QuZ2V0X3Rlc3QodGVzdF9pZCkuY2hpbGRyZW5bMF0uZ2V0KCJl
eHBlY3RlZCIpID09ICJGQUlMIgorICAgIHJ1bl9pbmZvXzEgPSBkZWZhdWx0X3J1bl9pbmZvLmNv
cHkoKQorICAgIHJ1bl9pbmZvXzEudXBkYXRlKHsib3MiOiAibWFjIn0pCisgICAgYXNzZXJ0IG5l
d19tYW5pZmVzdC5nZXRfdGVzdCh0ZXN0X2lkKS5jaGlsZHJlblswXS5nZXQoCisgICAgICAgICJl
eHBlY3RlZCIsIHJ1bl9pbmZvXzEpID09IFsiVElNRU9VVCIsICJGQUlMIl0KKyAgICBhc3NlcnQg
bmV3X21hbmlmZXN0LmdldF90ZXN0KHRlc3RfaWQpLmNoaWxkcmVuWzBdLmdldCgKKyAgICAgICAg
ImV4cGVjdGVkIiwgZGVmYXVsdF9ydW5faW5mbykgPT0gWyJQQVNTIiwgIkZBSUwiXQogCiAKK0Bw
eXRlc3QubWFyay54ZmFpbChzeXMudmVyc2lvblswXSA9PSAiMyIsCisgICAgICAgICAgICAgICAg
ICAgcmVhc29uPSJtZXRhZGF0YSBkb2Vzbid0IHN1cHBvcnQgcHkzIikKIGRlZiB0ZXN0X3NraXBf
MCgpOgotICAgIHRlc3RfaWQgPSAiL3BhdGgvdG8vdGVzdC5odG0iCiAgICAgdGVzdHMgPSBbKCJw
YXRoL3RvL3Rlc3QuaHRtIiwgW3Rlc3RfaWRdLCAidGVzdGhhcm5lc3MiLAogICAgICAgICAgICAg
ICAiIiJbdGVzdC5odG1dCiAgIFt0ZXN0MV0KQEAgLTE2NSw4ICs4MjksOSBAQCBkZWYgdGVzdF9z
a2lwXzAoKToKICAgICBhc3NlcnQgbm90IHVwZGF0ZWQKIAogCitAcHl0ZXN0Lm1hcmsueGZhaWwo
c3lzLnZlcnNpb25bMF0gPT0gIjMiLAorICAgICAgICAgICAgICAgICAgIHJlYXNvbj0ibWV0YWRh
dGEgZG9lc24ndCBzdXBwb3J0IHB5MyIpCiBkZWYgdGVzdF9uZXdfc3VidGVzdCgpOgotICAgIHRl
c3RfaWQgPSAiL3BhdGgvdG8vdGVzdC5odG0iCiAgICAgdGVzdHMgPSBbKCJwYXRoL3RvL3Rlc3Qu
aHRtIiwgW3Rlc3RfaWRdLCAidGVzdGhhcm5lc3MiLCAiIiJbdGVzdC5odG1dCiAgIFt0ZXN0MV0K
ICAgICBleHBlY3RlZDogRkFJTCIiIildCkBAIC0xODUsMTIgKzg1MCwxMyBAQCBkZWYgdGVzdF9u
ZXdfc3VidGVzdCgpOgogICAgIHVwZGF0ZWQgPSB1cGRhdGUodGVzdHMsIGxvZykKICAgICBuZXdf
bWFuaWZlc3QgPSB1cGRhdGVkWzBdWzFdCiAgICAgYXNzZXJ0IG5vdCBuZXdfbWFuaWZlc3QuaXNf
ZW1wdHkKLSAgICBhc3NlcnQgbmV3X21hbmlmZXN0LmdldF90ZXN0KHRlc3RfaWQpLmNoaWxkcmVu
WzBdLmdldCgiZXhwZWN0ZWQiKSA9PSAiRkFJTCIKLSAgICBhc3NlcnQgbmV3X21hbmlmZXN0Lmdl
dF90ZXN0KHRlc3RfaWQpLmNoaWxkcmVuWzFdLmdldCgiZXhwZWN0ZWQiKSA9PSAiRkFJTCIKKyAg
ICBhc3NlcnQgbmV3X21hbmlmZXN0LmdldF90ZXN0KHRlc3RfaWQpLmNoaWxkcmVuWzBdLmdldCgi
ZXhwZWN0ZWQiLCBkZWZhdWx0X3J1bl9pbmZvKSA9PSAiRkFJTCIKKyAgICBhc3NlcnQgbmV3X21h
bmlmZXN0LmdldF90ZXN0KHRlc3RfaWQpLmNoaWxkcmVuWzFdLmdldCgiZXhwZWN0ZWQiLCBkZWZh
dWx0X3J1bl9pbmZvKSA9PSAiRkFJTCIKIAogCitAcHl0ZXN0Lm1hcmsueGZhaWwoc3lzLnZlcnNp
b25bMF0gPT0gIjMiLAorICAgICAgICAgICAgICAgICAgIHJlYXNvbj0ibWV0YWRhdGEgZG9lc24n
dCBzdXBwb3J0IHB5MyIpCiBkZWYgdGVzdF91cGRhdGVfbXVsdGlwbGVfMCgpOgotICAgIHRlc3Rf
aWQgPSAiL3BhdGgvdG8vdGVzdC5odG0iCiAgICAgdGVzdHMgPSBbKCJwYXRoL3RvL3Rlc3QuaHRt
IiwgW3Rlc3RfaWRdLCAidGVzdGhhcm5lc3MiLCAiIiJbdGVzdC5odG1dCiAgIFt0ZXN0MV0KICAg
ICBleHBlY3RlZDogRkFJTCIiIildCkBAIC0yMTcsMTQgKzg4MywxOSBAQCBkZWYgdGVzdF91cGRh
dGVfbXVsdGlwbGVfMCgpOgogICAgIG5ld19tYW5pZmVzdCA9IHVwZGF0ZWRbMF1bMV0KIAogICAg
IGFzc2VydCBub3QgbmV3X21hbmlmZXN0LmlzX2VtcHR5CisgICAgcnVuX2luZm9fMSA9IGRlZmF1
bHRfcnVuX2luZm8uY29weSgpCisgICAgcnVuX2luZm9fMS51cGRhdGUoeyJkZWJ1ZyI6IEZhbHNl
LCAib3MiOiAib3N4In0pCisgICAgcnVuX2luZm9fMiA9IGRlZmF1bHRfcnVuX2luZm8uY29weSgp
CisgICAgcnVuX2luZm9fMi51cGRhdGUoeyJkZWJ1ZyI6IEZhbHNlLCAib3MiOiAibGludXgifSkK
ICAgICBhc3NlcnQgbmV3X21hbmlmZXN0LmdldF90ZXN0KHRlc3RfaWQpLmNoaWxkcmVuWzBdLmdl
dCgKLSAgICAgICAgImV4cGVjdGVkIiwgeyJkZWJ1ZyI6IEZhbHNlLCAib3MiOiAib3N4In0pID09
ICJGQUlMIgorICAgICAgICAiZXhwZWN0ZWQiLCBydW5faW5mb18xKSA9PSAiRkFJTCIKICAgICBh
c3NlcnQgbmV3X21hbmlmZXN0LmdldF90ZXN0KHRlc3RfaWQpLmNoaWxkcmVuWzBdLmdldCgKICAg
ICAgICAgImV4cGVjdGVkIiwgeyJkZWJ1ZyI6IEZhbHNlLCAib3MiOiAibGludXgifSkgPT0gIlRJ
TUVPVVQiCiAKIAorQHB5dGVzdC5tYXJrLnhmYWlsKHN5cy52ZXJzaW9uWzBdID09ICIzIiwKKyAg
ICAgICAgICAgICAgICAgICByZWFzb249Im1ldGFkYXRhIGRvZXNuJ3Qgc3VwcG9ydCBweTMiKQog
ZGVmIHRlc3RfdXBkYXRlX211bHRpcGxlXzEoKToKLSAgICB0ZXN0X2lkID0gIi9wYXRoL3RvL3Rl
c3QuaHRtIgogICAgIHRlc3RzID0gWygicGF0aC90by90ZXN0Lmh0bSIsIFt0ZXN0X2lkXSwgInRl
c3RoYXJuZXNzIiwgIiIiW3Rlc3QuaHRtXQogICBbdGVzdDFdCiAgICAgZXhwZWN0ZWQ6IEZBSUwi
IiIpXQpAQCAtMjM2LDcgKzkwNyw3IEBAIGRlZiB0ZXN0X3VwZGF0ZV9tdWx0aXBsZV8xKCk6CiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImV4cGVjdGVkIjogIkZBSUwi
fSksCiAgICAgICAgICAgICAgICAgICAgICAgICgidGVzdF9lbmQiLCB7InRlc3QiOiB0ZXN0X2lk
LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJzdGF0dXMiOiAiT0sifSld
LAotICAgICAgICAgICAgICAgICAgICAgIHJ1bl9pbmZvPXsiZGVidWciOiBGYWxzZSwgIm9zIjog
Im9zeCJ9KQorICAgICAgICAgICAgICAgICAgICAgIHJ1bl9pbmZvPXsib3MiOiAib3N4In0pCiAK
ICAgICBsb2dfMSA9IHN1aXRlX2xvZyhbKCJ0ZXN0X3N0YXJ0IiwgeyJ0ZXN0IjogdGVzdF9pZH0p
LAogICAgICAgICAgICAgICAgICAgICAgICAoInRlc3Rfc3RhdHVzIiwgeyJ0ZXN0IjogdGVzdF9p
ZCwKQEAgLTI0NSwyMiArOTE2LDMwIEBAIGRlZiB0ZXN0X3VwZGF0ZV9tdWx0aXBsZV8xKCk6CiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImV4cGVjdGVkIjogIkZBSUwi
fSksCiAgICAgICAgICAgICAgICAgICAgICAgICgidGVzdF9lbmQiLCB7InRlc3QiOiB0ZXN0X2lk
LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJzdGF0dXMiOiAiT0sifSld
LAotICAgICAgICAgICAgICAgICAgICAgIHJ1bl9pbmZvPXsiZGVidWciOiBGYWxzZSwgIm9zIjog
ImxpbnV4In0pCisgICAgICAgICAgICAgICAgICAgICAgcnVuX2luZm89eyJvcyI6ICJsaW51eCJ9
KQogCiAgICAgdXBkYXRlZCA9IHVwZGF0ZSh0ZXN0cywgbG9nXzAsIGxvZ18xKQogICAgIG5ld19t
YW5pZmVzdCA9IHVwZGF0ZWRbMF1bMV0KIAogICAgIGFzc2VydCBub3QgbmV3X21hbmlmZXN0Lmlz
X2VtcHR5CisgICAgcnVuX2luZm9fMSA9IGRlZmF1bHRfcnVuX2luZm8uY29weSgpCisgICAgcnVu
X2luZm9fMS51cGRhdGUoeyJvcyI6ICJvc3gifSkKKyAgICBydW5faW5mb18yID0gZGVmYXVsdF9y
dW5faW5mby5jb3B5KCkKKyAgICBydW5faW5mb18yLnVwZGF0ZSh7Im9zIjogImxpbnV4In0pCisg
ICAgcnVuX2luZm9fMyA9IGRlZmF1bHRfcnVuX2luZm8uY29weSgpCisgICAgcnVuX2luZm9fMy51
cGRhdGUoeyJvcyI6ICJ3aW4ifSkKKwogICAgIGFzc2VydCBuZXdfbWFuaWZlc3QuZ2V0X3Rlc3Qo
dGVzdF9pZCkuY2hpbGRyZW5bMF0uZ2V0KAotICAgICAgICAiZXhwZWN0ZWQiLCB7ImRlYnVnIjog
RmFsc2UsICJvcyI6ICJvc3gifSkgPT0gIkZBSUwiCisgICAgICAgICJleHBlY3RlZCIsIHJ1bl9p
bmZvXzEpID09ICJGQUlMIgogICAgIGFzc2VydCBuZXdfbWFuaWZlc3QuZ2V0X3Rlc3QodGVzdF9p
ZCkuY2hpbGRyZW5bMF0uZ2V0KAotICAgICAgICAiZXhwZWN0ZWQiLCB7ImRlYnVnIjogRmFsc2Us
ICJvcyI6ICJsaW51eCJ9KSA9PSAiVElNRU9VVCIKKyAgICAgICAgImV4cGVjdGVkIiwgcnVuX2lu
Zm9fMikgPT0gIlRJTUVPVVQiCiAgICAgYXNzZXJ0IG5ld19tYW5pZmVzdC5nZXRfdGVzdCh0ZXN0
X2lkKS5jaGlsZHJlblswXS5nZXQoCi0gICAgICAgICJleHBlY3RlZCIsIHsiZGVidWciOiBGYWxz
ZSwgIm9zIjogIndpbmRvd3MifSkgPT0gIkZBSUwiCisgICAgICAgICJleHBlY3RlZCIsIHJ1bl9p
bmZvXzMpID09ICJGQUlMIgogCiAKK0BweXRlc3QubWFyay54ZmFpbChzeXMudmVyc2lvblswXSA9
PSAiMyIsCisgICAgICAgICAgICAgICAgICAgcmVhc29uPSJtZXRhZGF0YSBkb2Vzbid0IHN1cHBv
cnQgcHkzIikKIGRlZiB0ZXN0X3VwZGF0ZV9tdWx0aXBsZV8yKCk6Ci0gICAgdGVzdF9pZCA9ICIv
cGF0aC90by90ZXN0Lmh0bSIKICAgICB0ZXN0cyA9IFsoInBhdGgvdG8vdGVzdC5odG0iLCBbdGVz
dF9pZF0sICJ0ZXN0aGFybmVzcyIsICIiIlt0ZXN0Lmh0bV0KICAgW3Rlc3QxXQogICAgIGV4cGVj
dGVkOiBGQUlMIiIiKV0KQEAgLTI4NiwxNSArOTY1LDIxIEBAIGRlZiB0ZXN0X3VwZGF0ZV9tdWx0
aXBsZV8yKCk6CiAgICAgdXBkYXRlZCA9IHVwZGF0ZSh0ZXN0cywgbG9nXzAsIGxvZ18xKQogICAg
IG5ld19tYW5pZmVzdCA9IHVwZGF0ZWRbMF1bMV0KIAorICAgIHJ1bl9pbmZvXzEgPSBkZWZhdWx0
X3J1bl9pbmZvLmNvcHkoKQorICAgIHJ1bl9pbmZvXzEudXBkYXRlKHsiZGVidWciOiBGYWxzZSwg
Im9zIjogIm9zeCJ9KQorICAgIHJ1bl9pbmZvXzIgPSBkZWZhdWx0X3J1bl9pbmZvLmNvcHkoKQor
ICAgIHJ1bl9pbmZvXzIudXBkYXRlKHsiZGVidWciOiBUcnVlLCAib3MiOiAib3N4In0pCisKICAg
ICBhc3NlcnQgbm90IG5ld19tYW5pZmVzdC5pc19lbXB0eQogICAgIGFzc2VydCBuZXdfbWFuaWZl
c3QuZ2V0X3Rlc3QodGVzdF9pZCkuY2hpbGRyZW5bMF0uZ2V0KAotICAgICAgICAiZXhwZWN0ZWQi
LCB7ImRlYnVnIjogRmFsc2UsICJvcyI6ICJvc3gifSkgPT0gIkZBSUwiCisgICAgICAgICJleHBl
Y3RlZCIsIHJ1bl9pbmZvXzEpID09ICJGQUlMIgogICAgIGFzc2VydCBuZXdfbWFuaWZlc3QuZ2V0
X3Rlc3QodGVzdF9pZCkuY2hpbGRyZW5bMF0uZ2V0KAotICAgICAgICAiZXhwZWN0ZWQiLCB7ImRl
YnVnIjogVHJ1ZSwgIm9zIjogIm9zeCJ9KSA9PSAiVElNRU9VVCIKKyAgICAgICAgImV4cGVjdGVk
IiwgcnVuX2luZm9fMikgPT0gIlRJTUVPVVQiCiAKIAorQHB5dGVzdC5tYXJrLnhmYWlsKHN5cy52
ZXJzaW9uWzBdID09ICIzIiwKKyAgICAgICAgICAgICAgICAgICByZWFzb249Im1ldGFkYXRhIGRv
ZXNuJ3Qgc3VwcG9ydCBweTMiKQogZGVmIHRlc3RfdXBkYXRlX211bHRpcGxlXzMoKToKLSAgICB0
ZXN0X2lkID0gIi9wYXRoL3RvL3Rlc3QuaHRtIgogICAgIHRlc3RzID0gWygicGF0aC90by90ZXN0
Lmh0bSIsIFt0ZXN0X2lkXSwgInRlc3RoYXJuZXNzIiwgIiIiW3Rlc3QuaHRtXQogICBbdGVzdDFd
CiAgICAgZXhwZWN0ZWQ6CkBAIC0zMjIsMTUgKzEwMDcsMjEgQEAgZGVmIHRlc3RfdXBkYXRlX211
bHRpcGxlXzMoKToKICAgICB1cGRhdGVkID0gdXBkYXRlKHRlc3RzLCBsb2dfMCwgbG9nXzEpCiAg
ICAgbmV3X21hbmlmZXN0ID0gdXBkYXRlZFswXVsxXQogCisgICAgcnVuX2luZm9fMSA9IGRlZmF1
bHRfcnVuX2luZm8uY29weSgpCisgICAgcnVuX2luZm9fMS51cGRhdGUoeyJkZWJ1ZyI6IEZhbHNl
LCAib3MiOiAib3N4In0pCisgICAgcnVuX2luZm9fMiA9IGRlZmF1bHRfcnVuX2luZm8uY29weSgp
CisgICAgcnVuX2luZm9fMi51cGRhdGUoeyJkZWJ1ZyI6IFRydWUsICJvcyI6ICJvc3gifSkKKwog
ICAgIGFzc2VydCBub3QgbmV3X21hbmlmZXN0LmlzX2VtcHR5CiAgICAgYXNzZXJ0IG5ld19tYW5p
ZmVzdC5nZXRfdGVzdCh0ZXN0X2lkKS5jaGlsZHJlblswXS5nZXQoCi0gICAgICAgICJleHBlY3Rl
ZCIsIHsiZGVidWciOiBGYWxzZSwgIm9zIjogIm9zeCJ9KSA9PSAiRkFJTCIKKyAgICAgICAgImV4
cGVjdGVkIiwgcnVuX2luZm9fMSkgPT0gIkZBSUwiCiAgICAgYXNzZXJ0IG5ld19tYW5pZmVzdC5n
ZXRfdGVzdCh0ZXN0X2lkKS5jaGlsZHJlblswXS5nZXQoCi0gICAgICAgICJleHBlY3RlZCIsIHsi
ZGVidWciOiBUcnVlLCAib3MiOiAib3N4In0pID09ICJUSU1FT1VUIgorICAgICAgICAiZXhwZWN0
ZWQiLCBydW5faW5mb18yKSA9PSAiVElNRU9VVCIKIAogCitAcHl0ZXN0Lm1hcmsueGZhaWwoc3lz
LnZlcnNpb25bMF0gPT0gIjMiLAorICAgICAgICAgICAgICAgICAgIHJlYXNvbj0ibWV0YWRhdGEg
ZG9lc24ndCBzdXBwb3J0IHB5MyIpCiBkZWYgdGVzdF91cGRhdGVfaWdub3JlX2V4aXN0aW5nKCk6
Ci0gICAgdGVzdF9pZCA9ICIvcGF0aC90by90ZXN0Lmh0bSIKICAgICB0ZXN0cyA9IFsoInBhdGgv
dG8vdGVzdC5odG0iLCBbdGVzdF9pZF0sICJ0ZXN0aGFybmVzcyIsICIiIlt0ZXN0Lmh0bV0KICAg
W3Rlc3QxXQogICAgIGV4cGVjdGVkOgpAQCAtMzU4LDE1ICsxMDQ5LDMxOCBAQCBkZWYgdGVzdF91
cGRhdGVfaWdub3JlX2V4aXN0aW5nKCk6CiAgICAgdXBkYXRlZCA9IHVwZGF0ZSh0ZXN0cywgbG9n
XzAsIGxvZ18xKQogICAgIG5ld19tYW5pZmVzdCA9IHVwZGF0ZWRbMF1bMV0KIAorICAgIHJ1bl9p
bmZvXzEgPSBkZWZhdWx0X3J1bl9pbmZvLmNvcHkoKQorICAgIHJ1bl9pbmZvXzEudXBkYXRlKHsi
ZGVidWciOiBGYWxzZSwgIm9zIjogImxpbnV4In0pCisgICAgcnVuX2luZm9fMiA9IGRlZmF1bHRf
cnVuX2luZm8uY29weSgpCisgICAgcnVuX2luZm9fMi51cGRhdGUoeyJkZWJ1ZyI6IEZhbHNlLCAi
b3MiOiAib3N4In0pCisKKyAgICBhc3NlcnQgbm90IG5ld19tYW5pZmVzdC5pc19lbXB0eQorICAg
IGFzc2VydCBuZXdfbWFuaWZlc3QuZ2V0X3Rlc3QodGVzdF9pZCkuY2hpbGRyZW5bMF0uZ2V0KAor
ICAgICAgICAiZXhwZWN0ZWQiLCBydW5faW5mb18xKSA9PSAiRkFJTCIKKyAgICBhc3NlcnQgbmV3
X21hbmlmZXN0LmdldF90ZXN0KHRlc3RfaWQpLmNoaWxkcmVuWzBdLmdldCgKKyAgICAgICAgImV4
cGVjdGVkIiwgcnVuX2luZm9fMikgPT0gIk5PVFJVTiIKKworCitAcHl0ZXN0Lm1hcmsueGZhaWwo
c3lzLnZlcnNpb25bMF0gPT0gIjMiLAorICAgICAgICAgICAgICAgICAgIHJlYXNvbj0ibWV0YWRh
dGEgZG9lc24ndCBzdXBwb3J0IHB5MyIpCitkZWYgdGVzdF91cGRhdGVfbmV3X3Rlc3QoKToKKyAg
ICB0ZXN0cyA9IFsoInBhdGgvdG8vdGVzdC5odG0iLCBbdGVzdF9pZF0sICJ0ZXN0aGFybmVzcyIs
IE5vbmUpXQorCisgICAgbG9nXzAgPSBzdWl0ZV9sb2coWygidGVzdF9zdGFydCIsIHsidGVzdCI6
IHRlc3RfaWR9KSwKKyAgICAgICAgICAgICAgICAgICAgICAgKCJ0ZXN0X3N0YXR1cyIsIHsidGVz
dCI6IHRlc3RfaWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInN1
YnRlc3QiOiAidGVzdDEiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICJzdGF0dXMiOiAiRkFJTCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgImV4cGVjdGVkIjogIlBBU1MifSksCisgICAgICAgICAgICAgICAgICAgICAgICgidGVzdF9l
bmQiLCB7InRlc3QiOiB0ZXN0X2lkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICJzdGF0dXMiOiAiT0sifSldKQorICAgIHVwZGF0ZWQgPSB1cGRhdGUodGVzdHMsIGxvZ18w
KQorICAgIG5ld19tYW5pZmVzdCA9IHVwZGF0ZWRbMF1bMV0KKworICAgIHJ1bl9pbmZvXzEgPSBk
ZWZhdWx0X3J1bl9pbmZvLmNvcHkoKQorCisgICAgYXNzZXJ0IG5vdCBuZXdfbWFuaWZlc3QuaXNf
ZW1wdHkKKyAgICBhc3NlcnQgbmV3X21hbmlmZXN0LmdldF90ZXN0KCJ0ZXN0Lmh0bSIpIGlzIE5v
bmUKKyAgICBhc3NlcnQgbGVuKG5ld19tYW5pZmVzdC5nZXRfdGVzdCh0ZXN0X2lkKS5jaGlsZHJl
bikgPT0gMQorICAgIGFzc2VydCBuZXdfbWFuaWZlc3QuZ2V0X3Rlc3QodGVzdF9pZCkuY2hpbGRy
ZW5bMF0uZ2V0KAorICAgICAgICAiZXhwZWN0ZWQiLCBydW5faW5mb18xKSA9PSAiRkFJTCIKKwor
CitAcHl0ZXN0Lm1hcmsueGZhaWwoc3lzLnZlcnNpb25bMF0gPT0gIjMiLAorICAgICAgICAgICAg
ICAgICAgIHJlYXNvbj0ibWV0YWRhdGEgZG9lc24ndCBzdXBwb3J0IHB5MyIpCitkZWYgdGVzdF91
cGRhdGVfZHVwbGljYXRlKCk6CisgICAgdGVzdHMgPSBbKCJwYXRoL3RvL3Rlc3QuaHRtIiwgW3Rl
c3RfaWRdLCAidGVzdGhhcm5lc3MiLCAiIiIKK1t0ZXN0Lmh0bV0KKyAgZXhwZWN0ZWQ6IEVSUk9S
IiIiKV0KKworICAgIGxvZ18wID0gc3VpdGVfbG9nKFsoInRlc3Rfc3RhcnQiLCB7InRlc3QiOiB0
ZXN0X2lkfSksCisgICAgICAgICAgICAgICAgICAgICAgICgidGVzdF9lbmQiLCB7InRlc3QiOiB0
ZXN0X2lkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJzdGF0dXMiOiAi
UEFTUyJ9KV0pCisgICAgbG9nXzEgPSBzdWl0ZV9sb2coWygidGVzdF9zdGFydCIsIHsidGVzdCI6
IHRlc3RfaWR9KSwKKyAgICAgICAgICAgICAgICAgICAgICAgKCJ0ZXN0X2VuZCIsIHsidGVzdCI6
IHRlc3RfaWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInN0YXR1cyI6
ICJGQUlMIn0pXSkKKworICAgIHVwZGF0ZWQgPSB1cGRhdGUodGVzdHMsIGxvZ18wLCBsb2dfMSkK
KyAgICBuZXdfbWFuaWZlc3QgPSB1cGRhdGVkWzBdWzFdCisgICAgcnVuX2luZm9fMSA9IGRlZmF1
bHRfcnVuX2luZm8uY29weSgpCisKKyAgICBhc3NlcnQgbmV3X21hbmlmZXN0LmdldF90ZXN0KHRl
c3RfaWQpLmdldCgKKyAgICAgICAgImV4cGVjdGVkIiwgcnVuX2luZm9fMSkgPT0gIkVSUk9SIgor
CisKK0BweXRlc3QubWFyay54ZmFpbChzeXMudmVyc2lvblswXSA9PSAiMyIsCisgICAgICAgICAg
ICAgICAgICAgcmVhc29uPSJtZXRhZGF0YSBkb2Vzbid0IHN1cHBvcnQgcHkzIikKK2RlZiB0ZXN0
X3VwZGF0ZV9kaXNhYmxlX2ludGVybWl0dGVudCgpOgorICAgIHRlc3RzID0gWygicGF0aC90by90
ZXN0Lmh0bSIsIFt0ZXN0X2lkXSwgInRlc3RoYXJuZXNzIiwgIiIiCitbdGVzdC5odG1dCisgIGV4
cGVjdGVkOiBFUlJPUiIiIildCisKKyAgICBsb2dfMCA9IHN1aXRlX2xvZyhbKCJ0ZXN0X3N0YXJ0
IiwgeyJ0ZXN0IjogdGVzdF9pZH0pLAorICAgICAgICAgICAgICAgICAgICAgICAoInRlc3RfZW5k
IiwgeyJ0ZXN0IjogdGVzdF9pZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAic3RhdHVzIjogIlBBU1MifSldKQorICAgIGxvZ18xID0gc3VpdGVfbG9nKFsoInRlc3Rfc3Rh
cnQiLCB7InRlc3QiOiB0ZXN0X2lkfSksCisgICAgICAgICAgICAgICAgICAgICAgICgidGVzdF9l
bmQiLCB7InRlc3QiOiB0ZXN0X2lkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICJzdGF0dXMiOiAiRkFJTCJ9KV0pCisKKyAgICB1cGRhdGVkID0gdXBkYXRlKHRlc3RzLCBs
b2dfMCwgbG9nXzEsIGRpc2FibGVfaW50ZXJtaXR0ZW50PSJTb21lIG1lc3NhZ2UiKQorICAgIG5l
d19tYW5pZmVzdCA9IHVwZGF0ZWRbMF1bMV0KKyAgICBydW5faW5mb18xID0gZGVmYXVsdF9ydW5f
aW5mby5jb3B5KCkKKworICAgIGFzc2VydCBuZXdfbWFuaWZlc3QuZ2V0X3Rlc3QodGVzdF9pZCku
Z2V0KAorICAgICAgICAiZGlzYWJsZWQiLCBydW5faW5mb18xKSA9PSAiU29tZSBtZXNzYWdlIgor
CisKK0BweXRlc3QubWFyay54ZmFpbChzeXMudmVyc2lvblswXSA9PSAiMyIsCisgICAgICAgICAg
ICAgICAgICAgcmVhc29uPSJtZXRhZGF0YSBkb2Vzbid0IHN1cHBvcnQgcHkzIikKK2RlZiB0ZXN0
X3VwZGF0ZV9zdGFiaWxpdHlfY29uZGl0aW9uYWxfaW5zdGFiaWxpdHkoKToKKyAgICB0ZXN0cyA9
IFsoInBhdGgvdG8vdGVzdC5odG0iLCBbdGVzdF9pZF0sICJ0ZXN0aGFybmVzcyIsICIiIgorW3Rl
c3QuaHRtXQorICBleHBlY3RlZDogRVJST1IiIiIpXQorCisgICAgbG9nXzAgPSBzdWl0ZV9sb2co
WygidGVzdF9zdGFydCIsIHsidGVzdCI6IHRlc3RfaWR9KSwKKyAgICAgICAgICAgICAgICAgICAg
ICAgKCJ0ZXN0X2VuZCIsIHsidGVzdCI6IHRlc3RfaWQsCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgInN0YXR1cyI6ICJQQVNTIn0pXSwKKyAgICAgICAgICAgICAgICAgICAg
ICBydW5faW5mbz17Im9zIjogImxpbnV4In0pCisgICAgbG9nXzEgPSBzdWl0ZV9sb2coWygidGVz
dF9zdGFydCIsIHsidGVzdCI6IHRlc3RfaWR9KSwKKyAgICAgICAgICAgICAgICAgICAgICAgKCJ0
ZXN0X2VuZCIsIHsidGVzdCI6IHRlc3RfaWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgInN0YXR1cyI6ICJGQUlMIn0pXSwKKyAgICAgICAgICAgICAgICAgICAgICBydW5f
aW5mbz17Im9zIjogImxpbnV4In0pCisgICAgbG9nXzIgPSBzdWl0ZV9sb2coWygidGVzdF9zdGFy
dCIsIHsidGVzdCI6IHRlc3RfaWR9KSwKKyAgICAgICAgICAgICAgICAgICAgICAgKCJ0ZXN0X2Vu
ZCIsIHsidGVzdCI6IHRlc3RfaWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgInN0YXR1cyI6ICJGQUlMIn0pXSwKKyAgICAgICAgICAgICAgICAgICAgICBydW5faW5mbz17
Im9zIjogIm1hYyJ9KQorCisgICAgdXBkYXRlZCA9IHVwZGF0ZSh0ZXN0cywgbG9nXzAsIGxvZ18x
LCBsb2dfMiwgZGlzYWJsZV9pbnRlcm1pdHRlbnQ9IlNvbWUgbWVzc2FnZSIpCisgICAgbmV3X21h
bmlmZXN0ID0gdXBkYXRlZFswXVsxXQorICAgIHJ1bl9pbmZvXzEgPSBkZWZhdWx0X3J1bl9pbmZv
LmNvcHkoKQorICAgIHJ1bl9pbmZvXzEudXBkYXRlKHsib3MiOiAibGludXgifSkKKyAgICBydW5f
aW5mb18yID0gZGVmYXVsdF9ydW5faW5mby5jb3B5KCkKKyAgICBydW5faW5mb18yLnVwZGF0ZSh7
Im9zIjogIm1hYyJ9KQorCisgICAgYXNzZXJ0IG5ld19tYW5pZmVzdC5nZXRfdGVzdCh0ZXN0X2lk
KS5nZXQoCisgICAgICAgICJkaXNhYmxlZCIsIHJ1bl9pbmZvXzEpID09ICJTb21lIG1lc3NhZ2Ui
CisgICAgd2l0aCBweXRlc3QucmFpc2VzKEtleUVycm9yKToKKyAgICAgICAgYXNzZXJ0IG5ld19t
YW5pZmVzdC5nZXRfdGVzdCh0ZXN0X2lkKS5nZXQoCisgICAgICAgICAgICAiZGlzYWJsZWQiLCBy
dW5faW5mb18yKQorICAgIGFzc2VydCBuZXdfbWFuaWZlc3QuZ2V0X3Rlc3QodGVzdF9pZCkuZ2V0
KAorICAgICAgICAiZXhwZWN0ZWQiLCBydW5faW5mb18yKSA9PSAiRkFJTCIKKworCitAcHl0ZXN0
Lm1hcmsueGZhaWwoc3lzLnZlcnNpb25bMF0gPT0gIjMiLAorICAgICAgICAgICAgICAgICAgIHJl
YXNvbj0ibWV0YWRhdGEgZG9lc24ndCBzdXBwb3J0IHB5MyIpCitkZWYgdGVzdF91cGRhdGVfZnVs
bCgpOgorICAgIHRlc3RzID0gWygicGF0aC90by90ZXN0Lmh0bSIsIFt0ZXN0X2lkXSwgInRlc3Ro
YXJuZXNzIiwgIiIiW3Rlc3QuaHRtXQorICBbdGVzdDFdCisgICAgZXhwZWN0ZWQ6CisgICAgICBp
ZiBkZWJ1ZzogVElNRU9VVAorICAgICAgaWYgbm90IGRlYnVnIGFuZCBvcyA9PSAib3N4IjogTk9U
UlVOCisKKyAgW3Rlc3QyXQorICAgIGV4cGVjdGVkOiBGQUlMCisKK1t0ZXN0LmpzXQorICBbdGVz
dDFdCisgICAgZXhwZWN0ZWQ6IEZBSUwKKyIiIildCisKKyAgICBsb2dfMCA9IHN1aXRlX2xvZyhb
KCJ0ZXN0X3N0YXJ0IiwgeyJ0ZXN0IjogdGVzdF9pZH0pLAorICAgICAgICAgICAgICAgICAgICAg
ICAoInRlc3Rfc3RhdHVzIiwgeyJ0ZXN0IjogdGVzdF9pZCwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAic3VidGVzdCI6ICJ0ZXN0MSIsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgInN0YXR1cyI6ICJGQUlMIiwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAiZXhwZWN0ZWQiOiAiUEFTUyJ9KSwKKyAgICAgICAg
ICAgICAgICAgICAgICAgKCJ0ZXN0X2VuZCIsIHsidGVzdCI6IHRlc3RfaWQsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgInN0YXR1cyI6ICJPSyJ9KV0sCisgICAgICAgICAg
ICAgICAgICAgICAgcnVuX2luZm89eyJkZWJ1ZyI6IEZhbHNlfSkKKworICAgIGxvZ18xID0gc3Vp
dGVfbG9nKFsoInRlc3Rfc3RhcnQiLCB7InRlc3QiOiB0ZXN0X2lkfSksCisgICAgICAgICAgICAg
ICAgICAgICAgICgidGVzdF9zdGF0dXMiLCB7InRlc3QiOiB0ZXN0X2lkLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICJzdWJ0ZXN0IjogInRlc3QxIiwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAic3RhdHVzIjogIkVSUk9SIiwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiZXhwZWN0ZWQiOiAiUEFTUyJ9KSwK
KyAgICAgICAgICAgICAgICAgICAgICAgKCJ0ZXN0X2VuZCIsIHsidGVzdCI6IHRlc3RfaWQsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInN0YXR1cyI6ICJPSyJ9KV0sCisg
ICAgICAgICAgICAgICAgICAgICAgcnVuX2luZm89eyJkZWJ1ZyI6IFRydWV9KQorCisgICAgdXBk
YXRlZCA9IHVwZGF0ZSh0ZXN0cywgbG9nXzAsIGxvZ18xLCBmdWxsX3VwZGF0ZT1UcnVlKQorICAg
IG5ld19tYW5pZmVzdCA9IHVwZGF0ZWRbMF1bMV0KKworICAgIHJ1bl9pbmZvXzEgPSBkZWZhdWx0
X3J1bl9pbmZvLmNvcHkoKQorICAgIHJ1bl9pbmZvXzEudXBkYXRlKHsiZGVidWciOiBGYWxzZSwg
Im9zIjogIndpbiJ9KQorICAgIHJ1bl9pbmZvXzIgPSBkZWZhdWx0X3J1bl9pbmZvLmNvcHkoKQor
ICAgIHJ1bl9pbmZvXzIudXBkYXRlKHsiZGVidWciOiBUcnVlLCAib3MiOiAib3N4In0pCisKKyAg
ICBhc3NlcnQgbm90IG5ld19tYW5pZmVzdC5pc19lbXB0eQorICAgIGFzc2VydCBuZXdfbWFuaWZl
c3QuZ2V0X3Rlc3QoInRlc3QuanMiKSBpcyBOb25lCisgICAgYXNzZXJ0IGxlbihuZXdfbWFuaWZl
c3QuZ2V0X3Rlc3QodGVzdF9pZCkuY2hpbGRyZW4pID09IDEKKyAgICBhc3NlcnQgbmV3X21hbmlm
ZXN0LmdldF90ZXN0KHRlc3RfaWQpLmNoaWxkcmVuWzBdLmdldCgKKyAgICAgICAgImV4cGVjdGVk
IiwgcnVuX2luZm9fMSkgPT0gIkZBSUwiCisgICAgYXNzZXJ0IG5ld19tYW5pZmVzdC5nZXRfdGVz
dCh0ZXN0X2lkKS5jaGlsZHJlblswXS5nZXQoCisgICAgICAgICJleHBlY3RlZCIsIHJ1bl9pbmZv
XzIpID09ICJFUlJPUiIKKworCitAcHl0ZXN0Lm1hcmsueGZhaWwoc3lzLnZlcnNpb25bMF0gPT0g
IjMiLAorICAgICAgICAgICAgICAgICAgIHJlYXNvbj0ibWV0YWRhdGEgZG9lc24ndCBzdXBwb3J0
IHB5MyIpCitkZWYgdGVzdF91cGRhdGVfZnVsbF91bmtub3duKCk6CisgICAgdGVzdHMgPSBbKCJw
YXRoL3RvL3Rlc3QuaHRtIiwgW3Rlc3RfaWRdLCAidGVzdGhhcm5lc3MiLCAiIiJbdGVzdC5odG1d
CisgIFt0ZXN0MV0KKyAgICBleHBlY3RlZDoKKyAgICAgIGlmIHJlbGVhc2Vfb3JfYmV0YTogRVJS
T1IKKyAgICAgIGlmIG5vdCBkZWJ1ZyBhbmQgb3MgPT0gIm9zeCI6IE5PVFJVTgorIiIiKV0KKwor
ICAgIGxvZ18wID0gc3VpdGVfbG9nKFsoInRlc3Rfc3RhcnQiLCB7InRlc3QiOiB0ZXN0X2lkfSks
CisgICAgICAgICAgICAgICAgICAgICAgICgidGVzdF9zdGF0dXMiLCB7InRlc3QiOiB0ZXN0X2lk
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJzdWJ0ZXN0IjogInRl
c3QxIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAic3RhdHVzIjog
IkZBSUwiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJleHBlY3Rl
ZCI6ICJQQVNTIn0pLAorICAgICAgICAgICAgICAgICAgICAgICAoInRlc3RfZW5kIiwgeyJ0ZXN0
IjogdGVzdF9pZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAic3RhdHVz
IjogIk9LIn0pXSwKKyAgICAgICAgICAgICAgICAgICAgICBydW5faW5mbz17ImRlYnVnIjogRmFs
c2UsICJyZWxlYXNlX29yX2JldGEiOiBGYWxzZX0pCisKKyAgICBsb2dfMSA9IHN1aXRlX2xvZyhb
KCJ0ZXN0X3N0YXJ0IiwgeyJ0ZXN0IjogdGVzdF9pZH0pLAorICAgICAgICAgICAgICAgICAgICAg
ICAoInRlc3Rfc3RhdHVzIiwgeyJ0ZXN0IjogdGVzdF9pZCwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAic3VidGVzdCI6ICJ0ZXN0MSIsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgInN0YXR1cyI6ICJGQUlMIiwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAiZXhwZWN0ZWQiOiAiUEFTUyJ9KSwKKyAgICAgICAg
ICAgICAgICAgICAgICAgKCJ0ZXN0X2VuZCIsIHsidGVzdCI6IHRlc3RfaWQsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgInN0YXR1cyI6ICJPSyJ9KV0sCisgICAgICAgICAg
ICAgICAgICAgICAgcnVuX2luZm89eyJkZWJ1ZyI6IFRydWUsICJyZWxlYXNlX29yX2JldGEiOiBG
YWxzZX0pCisKKyAgICB1cGRhdGVkID0gdXBkYXRlKHRlc3RzLCBsb2dfMCwgbG9nXzEsIGZ1bGxf
dXBkYXRlPVRydWUpCisgICAgbmV3X21hbmlmZXN0ID0gdXBkYXRlZFswXVsxXQorCisgICAgcnVu
X2luZm9fMSA9IGRlZmF1bHRfcnVuX2luZm8uY29weSgpCisgICAgcnVuX2luZm9fMS51cGRhdGUo
eyJyZWxlYXNlX29yX2JldGEiOiBGYWxzZX0pCisgICAgcnVuX2luZm9fMiA9IGRlZmF1bHRfcnVu
X2luZm8uY29weSgpCisgICAgcnVuX2luZm9fMi51cGRhdGUoeyJyZWxlYXNlX29yX2JldGEiOiBU
cnVlfSkKKwogICAgIGFzc2VydCBub3QgbmV3X21hbmlmZXN0LmlzX2VtcHR5CiAgICAgYXNzZXJ0
IG5ld19tYW5pZmVzdC5nZXRfdGVzdCh0ZXN0X2lkKS5jaGlsZHJlblswXS5nZXQoCi0gICAgICAg
ICJleHBlY3RlZCIsIHsiZGVidWciOiBUcnVlLCAib3MiOiAib3N4In0pID09ICJGQUlMIgorICAg
ICAgICAiZXhwZWN0ZWQiLCBydW5faW5mb18xKSA9PSAiRkFJTCIKICAgICBhc3NlcnQgbmV3X21h
bmlmZXN0LmdldF90ZXN0KHRlc3RfaWQpLmNoaWxkcmVuWzBdLmdldCgKLSAgICAgICAgImV4cGVj
dGVkIiwgeyJkZWJ1ZyI6IEZhbHNlLCAib3MiOiAib3N4In0pID09ICJOT1RSVU4iCisgICAgICAg
ICJleHBlY3RlZCIsIHJ1bl9pbmZvXzIpID09ICJFUlJPUiIKKworCisKK0BweXRlc3QubWFyay54
ZmFpbChzeXMudmVyc2lvblswXSA9PSAiMyIsCisgICAgICAgICAgICAgICAgICAgcmVhc29uPSJt
ZXRhZGF0YSBkb2Vzbid0IHN1cHBvcnQgcHkzIikKK2RlZiB0ZXN0X3VwZGF0ZV9kZWZhdWx0KCk6
CisgICAgdGVzdHMgPSBbKCJwYXRoL3RvL3Rlc3QuaHRtIiwgW3Rlc3RfaWRdLCAidGVzdGhhcm5l
c3MiLCAiIiJbdGVzdC5odG1dCisgIFt0ZXN0MV0KKyAgICBleHBlY3RlZDoKKyAgICAgIGlmIG9z
ID09ICJtYWMiOiBGQUlMCisgICAgICBFUlJPUiIiIildCisKKyAgICBsb2dfMCA9IHN1aXRlX2xv
ZyhbKCJ0ZXN0X3N0YXJ0IiwgeyJ0ZXN0IjogdGVzdF9pZH0pLAorICAgICAgICAgICAgICAgICAg
ICAgICAoInRlc3Rfc3RhdHVzIiwgeyJ0ZXN0IjogdGVzdF9pZCwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAic3VidGVzdCI6ICJ0ZXN0MSIsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgInN0YXR1cyI6ICJQQVNTIiwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiZXhwZWN0ZWQiOiAiRkFJTCJ9KSwKKyAgICAg
ICAgICAgICAgICAgICAgICAgKCJ0ZXN0X2VuZCIsIHsidGVzdCI6IHRlc3RfaWQsCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInN0YXR1cyI6ICJPSyJ9KV0sCisgICAgICAg
ICAgICAgICAgICAgICAgcnVuX2luZm89eyJvcyI6ICJtYWMifSkKKworICAgIGxvZ18xID0gc3Vp
dGVfbG9nKFsoInRlc3Rfc3RhcnQiLCB7InRlc3QiOiB0ZXN0X2lkfSksCisgICAgICAgICAgICAg
ICAgICAgICAgICgidGVzdF9zdGF0dXMiLCB7InRlc3QiOiB0ZXN0X2lkLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICJzdWJ0ZXN0IjogInRlc3QxIiwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAic3RhdHVzIjogIlBBU1MiLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJleHBlY3RlZCI6ICJFUlJPUiJ9KSwK
KyAgICAgICAgICAgICAgICAgICAgICAgKCJ0ZXN0X2VuZCIsIHsidGVzdCI6IHRlc3RfaWQsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInN0YXR1cyI6ICJPSyJ9KV0sCisg
ICAgICAgICAgICAgICAgICAgICAgcnVuX2luZm89eyJvcyI6ICJsaW51eCJ9KQorCisgICAgdXBk
YXRlZCA9IHVwZGF0ZSh0ZXN0cywgbG9nXzAsIGxvZ18xKQorICAgIG5ld19tYW5pZmVzdCA9IHVw
ZGF0ZWRbMF1bMV0KKworICAgIGFzc2VydCBuZXdfbWFuaWZlc3QuaXNfZW1wdHkKKworCitAcHl0
ZXN0Lm1hcmsueGZhaWwoc3lzLnZlcnNpb25bMF0gPT0gIjMiLAorICAgICAgICAgICAgICAgICAg
IHJlYXNvbj0ibWV0YWRhdGEgZG9lc24ndCBzdXBwb3J0IHB5MyIpCitkZWYgdGVzdF91cGRhdGVf
ZGVmYXVsdF8xKCk6CisgICAgdGVzdHMgPSBbKCJwYXRoL3RvL3Rlc3QuaHRtIiwgW3Rlc3RfaWRd
LCAidGVzdGhhcm5lc3MiLCAiIiIKK1t0ZXN0Lmh0bV0KKyAgZXhwZWN0ZWQ6CisgICAgaWYgb3Mg
PT0gIm1hYyI6IFRJTUVPVVQKKyAgICBFUlJPUiIiIildCisKKyAgICBsb2dfMCA9IHN1aXRlX2xv
ZyhbKCJ0ZXN0X3N0YXJ0IiwgeyJ0ZXN0IjogdGVzdF9pZH0pLAorICAgICAgICAgICAgICAgICAg
ICAgICAoInRlc3RfZW5kIiwgeyJ0ZXN0IjogdGVzdF9pZCwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAiZXhwZWN0ZWQiOiAiRVJST1IiLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICJzdGF0dXMiOiAiRkFJTCJ9KV0sCisgICAgICAgICAgICAgICAg
ICAgICAgcnVuX2luZm89eyJvcyI6ICJsaW51eCJ9KQorCisgICAgdXBkYXRlZCA9IHVwZGF0ZSh0
ZXN0cywgbG9nXzApCisgICAgbmV3X21hbmlmZXN0ID0gdXBkYXRlZFswXVsxXQorCisgICAgYXNz
ZXJ0IG5vdCBuZXdfbWFuaWZlc3QuaXNfZW1wdHkKKworICAgIHJ1bl9pbmZvXzEgPSBkZWZhdWx0
X3J1bl9pbmZvLmNvcHkoKQorICAgIHJ1bl9pbmZvXzEudXBkYXRlKHsib3MiOiAibWFjIn0pCisg
ICAgcnVuX2luZm9fMiA9IGRlZmF1bHRfcnVuX2luZm8uY29weSgpCisgICAgcnVuX2luZm9fMi51
cGRhdGUoeyJvcyI6ICJ3aW4ifSkKKworICAgIGFzc2VydCBub3QgbmV3X21hbmlmZXN0LmlzX2Vt
cHR5CisgICAgYXNzZXJ0IG5ld19tYW5pZmVzdC5nZXRfdGVzdCh0ZXN0X2lkKS5nZXQoCisgICAg
ICAgICJleHBlY3RlZCIsIHJ1bl9pbmZvXzEpID09ICJUSU1FT1VUIgorICAgIGFzc2VydCBuZXdf
bWFuaWZlc3QuZ2V0X3Rlc3QodGVzdF9pZCkuZ2V0KAorICAgICAgICAiZXhwZWN0ZWQiLCBydW5f
aW5mb18yKSA9PSAiRkFJTCIKIAogCitAcHl0ZXN0Lm1hcmsueGZhaWwoc3lzLnZlcnNpb25bMF0g
PT0gIjMiLAorICAgICAgICAgICAgICAgICAgIHJlYXNvbj0ibWV0YWRhdGEgZG9lc24ndCBzdXBw
b3J0IHB5MyIpCitkZWYgdGVzdF91cGRhdGVfZGVmYXVsdF8yKCk6CisgICAgdGVzdHMgPSBbKCJw
YXRoL3RvL3Rlc3QuaHRtIiwgW3Rlc3RfaWRdLCAidGVzdGhhcm5lc3MiLCAiIiIKK1t0ZXN0Lmh0
bV0KKyAgZXhwZWN0ZWQ6CisgICAgaWYgb3MgPT0gIm1hYyI6IFRJTUVPVVQKKyAgICBFUlJPUiIi
IildCisKKyAgICBsb2dfMCA9IHN1aXRlX2xvZyhbKCJ0ZXN0X3N0YXJ0IiwgeyJ0ZXN0IjogdGVz
dF9pZH0pLAorICAgICAgICAgICAgICAgICAgICAgICAoInRlc3RfZW5kIiwgeyJ0ZXN0IjogdGVz
dF9pZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiZXhwZWN0ZWQiOiAi
RVJST1IiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJzdGF0dXMiOiAi
VElNRU9VVCJ9KV0sCisgICAgICAgICAgICAgICAgICAgICAgcnVuX2luZm89eyJvcyI6ICJsaW51
eCJ9KQorCisgICAgdXBkYXRlZCA9IHVwZGF0ZSh0ZXN0cywgbG9nXzApCisgICAgbmV3X21hbmlm
ZXN0ID0gdXBkYXRlZFswXVsxXQorCisgICAgYXNzZXJ0IG5vdCBuZXdfbWFuaWZlc3QuaXNfZW1w
dHkKKworICAgIHJ1bl9pbmZvXzEgPSBkZWZhdWx0X3J1bl9pbmZvLmNvcHkoKQorICAgIHJ1bl9p
bmZvXzEudXBkYXRlKHsib3MiOiAibWFjIn0pCisgICAgcnVuX2luZm9fMiA9IGRlZmF1bHRfcnVu
X2luZm8uY29weSgpCisgICAgcnVuX2luZm9fMi51cGRhdGUoeyJvcyI6ICJ3aW4ifSkKKworICAg
IGFzc2VydCBub3QgbmV3X21hbmlmZXN0LmlzX2VtcHR5CisgICAgYXNzZXJ0IG5ld19tYW5pZmVz
dC5nZXRfdGVzdCh0ZXN0X2lkKS5nZXQoCisgICAgICAgICJleHBlY3RlZCIsIHJ1bl9pbmZvXzEp
ID09ICJUSU1FT1VUIgorICAgIGFzc2VydCBuZXdfbWFuaWZlc3QuZ2V0X3Rlc3QodGVzdF9pZCku
Z2V0KAorICAgICAgICAiZXhwZWN0ZWQiLCBydW5faW5mb18yKSA9PSAiVElNRU9VVCIKKworCitA
cHl0ZXN0Lm1hcmsueGZhaWwoc3lzLnZlcnNpb25bMF0gPT0gIjMiLAorICAgICAgICAgICAgICAg
ICAgIHJlYXNvbj0ibWV0YWRhdGEgZG9lc24ndCBzdXBwb3J0IHB5MyIpCiBkZWYgdGVzdF91cGRh
dGVfYXNzZXJ0aW9uX2NvdW50XzAoKToKLSAgICB0ZXN0X2lkID0gIi9wYXRoL3RvL3Rlc3QuaHRt
IgogICAgIHRlc3RzID0gWygicGF0aC90by90ZXN0Lmh0bSIsIFt0ZXN0X2lkXSwgInRlc3RoYXJu
ZXNzIiwgIiIiW3Rlc3QuaHRtXQogICBtYXgtYXNzZXJ0czogNAogICBtaW4tYXNzZXJ0czogMgpA
QCAtMzg0LDEyICsxMzc4LDEzIEBAIGRlZiB0ZXN0X3VwZGF0ZV9hc3NlcnRpb25fY291bnRfMCgp
OgogICAgIG5ld19tYW5pZmVzdCA9IHVwZGF0ZWRbMF1bMV0KIAogICAgIGFzc2VydCBub3QgbmV3
X21hbmlmZXN0LmlzX2VtcHR5Ci0gICAgYXNzZXJ0IG5ld19tYW5pZmVzdC5nZXRfdGVzdCh0ZXN0
X2lkKS5nZXQoIm1heC1hc3NlcnRzIikgPT0gNwotICAgIGFzc2VydCBuZXdfbWFuaWZlc3QuZ2V0
X3Rlc3QodGVzdF9pZCkuZ2V0KCJtaW4tYXNzZXJ0cyIpID09IDIKKyAgICBhc3NlcnQgbmV3X21h
bmlmZXN0LmdldF90ZXN0KHRlc3RfaWQpLmdldCgibWF4LWFzc2VydHMiKSA9PSAiNyIKKyAgICBh
c3NlcnQgbmV3X21hbmlmZXN0LmdldF90ZXN0KHRlc3RfaWQpLmdldCgibWluLWFzc2VydHMiKSA9
PSAiMiIKIAogCitAcHl0ZXN0Lm1hcmsueGZhaWwoc3lzLnZlcnNpb25bMF0gPT0gIjMiLAorICAg
ICAgICAgICAgICAgICAgIHJlYXNvbj0ibWV0YWRhdGEgZG9lc24ndCBzdXBwb3J0IHB5MyIpCiBk
ZWYgdGVzdF91cGRhdGVfYXNzZXJ0aW9uX2NvdW50XzEoKToKLSAgICB0ZXN0X2lkID0gIi9wYXRo
L3RvL3Rlc3QuaHRtIgogICAgIHRlc3RzID0gWygicGF0aC90by90ZXN0Lmh0bSIsIFt0ZXN0X2lk
XSwgInRlc3RoYXJuZXNzIiwgIiIiW3Rlc3QuaHRtXQogICBtYXgtYXNzZXJ0czogNAogICBtaW4t
YXNzZXJ0czogMgpAQCAtNDA3LDEyICsxNDAyLDEzIEBAIGRlZiB0ZXN0X3VwZGF0ZV9hc3NlcnRp
b25fY291bnRfMSgpOgogICAgIG5ld19tYW5pZmVzdCA9IHVwZGF0ZWRbMF1bMV0KIAogICAgIGFz
c2VydCBub3QgbmV3X21hbmlmZXN0LmlzX2VtcHR5Ci0gICAgYXNzZXJ0IG5ld19tYW5pZmVzdC5n
ZXRfdGVzdCh0ZXN0X2lkKS5nZXQoIm1heC1hc3NlcnRzIikgPT0gNAorICAgIGFzc2VydCBuZXdf
bWFuaWZlc3QuZ2V0X3Rlc3QodGVzdF9pZCkuZ2V0KCJtYXgtYXNzZXJ0cyIpID09ICI0IgogICAg
IGFzc2VydCBuZXdfbWFuaWZlc3QuZ2V0X3Rlc3QodGVzdF9pZCkuaGFzX2tleSgibWluLWFzc2Vy
dHMiKSBpcyBGYWxzZQogCiAKK0BweXRlc3QubWFyay54ZmFpbChzeXMudmVyc2lvblswXSA9PSAi
MyIsCisgICAgICAgICAgICAgICAgICAgcmVhc29uPSJtZXRhZGF0YSBkb2Vzbid0IHN1cHBvcnQg
cHkzIikKIGRlZiB0ZXN0X3VwZGF0ZV9hc3NlcnRpb25fY291bnRfMigpOgotICAgIHRlc3RfaWQg
PSAiL3BhdGgvdG8vdGVzdC5odG0iCiAgICAgdGVzdHMgPSBbKCJwYXRoL3RvL3Rlc3QuaHRtIiwg
W3Rlc3RfaWRdLCAidGVzdGhhcm5lc3MiLCAiIiJbdGVzdC5odG1dCiAgIG1heC1hc3NlcnRzOiA0
CiAgIG1pbi1hc3NlcnRzOiAyCkBAIC00MzAsOCArMTQyNiw5IEBAIGRlZiB0ZXN0X3VwZGF0ZV9h
c3NlcnRpb25fY291bnRfMigpOgogICAgIGFzc2VydCBub3QgdXBkYXRlZAogCiAKK0BweXRlc3Qu
bWFyay54ZmFpbChzeXMudmVyc2lvblswXSA9PSAiMyIsCisgICAgICAgICAgICAgICAgICAgcmVh
c29uPSJtZXRhZGF0YSBkb2Vzbid0IHN1cHBvcnQgcHkzIikKIGRlZiB0ZXN0X3VwZGF0ZV9hc3Nl
cnRpb25fY291bnRfMygpOgotICAgIHRlc3RfaWQgPSAiL3BhdGgvdG8vdGVzdC5odG0iCiAgICAg
dGVzdHMgPSBbKCJwYXRoL3RvL3Rlc3QuaHRtIiwgW3Rlc3RfaWRdLCAidGVzdGhhcm5lc3MiLCAi
IiJbdGVzdC5odG1dCiAgIG1heC1hc3NlcnRzOiA0CiAgIG1pbi1hc3NlcnRzOiAyCkBAIC00NTks
MTIgKzE0NTYsMTMgQEAgZGVmIHRlc3RfdXBkYXRlX2Fzc2VydGlvbl9jb3VudF8zKCk6CiAgICAg
bmV3X21hbmlmZXN0ID0gdXBkYXRlZFswXVsxXQogCiAgICAgYXNzZXJ0IG5vdCBuZXdfbWFuaWZl
c3QuaXNfZW1wdHkKLSAgICBhc3NlcnQgbmV3X21hbmlmZXN0LmdldF90ZXN0KHRlc3RfaWQpLmdl
dCgibWF4LWFzc2VydHMiKSA9PSA4Ci0gICAgYXNzZXJ0IG5ld19tYW5pZmVzdC5nZXRfdGVzdCh0
ZXN0X2lkKS5nZXQoIm1pbi1hc3NlcnRzIikgPT0gMgorICAgIGFzc2VydCBuZXdfbWFuaWZlc3Qu
Z2V0X3Rlc3QodGVzdF9pZCkuZ2V0KCJtYXgtYXNzZXJ0cyIpID09ICI4IgorICAgIGFzc2VydCBu
ZXdfbWFuaWZlc3QuZ2V0X3Rlc3QodGVzdF9pZCkuZ2V0KCJtaW4tYXNzZXJ0cyIpID09ICIyIgog
CiAKK0BweXRlc3QubWFyay54ZmFpbChzeXMudmVyc2lvblswXSA9PSAiMyIsCisgICAgICAgICAg
ICAgICAgICAgcmVhc29uPSJtZXRhZGF0YSBkb2Vzbid0IHN1cHBvcnQgcHkzIikKIGRlZiB0ZXN0
X3VwZGF0ZV9hc3NlcnRpb25fY291bnRfNCgpOgotICAgIHRlc3RfaWQgPSAiL3BhdGgvdG8vdGVz
dC5odG0iCiAgICAgdGVzdHMgPSBbKCJwYXRoL3RvL3Rlc3QuaHRtIiwgW3Rlc3RfaWRdLCAidGVz
dGhhcm5lc3MiLCAiIiJbdGVzdC5odG1dIiIiKV0KIAogICAgIGxvZ18wID0gc3VpdGVfbG9nKFso
InRlc3Rfc3RhcnQiLCB7InRlc3QiOiB0ZXN0X2lkfSksCkBAIC00OTMsOSArMTQ5MSw5IEBAIGRl
ZiB0ZXN0X3VwZGF0ZV9hc3NlcnRpb25fY291bnRfNCgpOgogICAgIGFzc2VydCBuZXdfbWFuaWZl
c3QuZ2V0X3Rlc3QodGVzdF9pZCkuaGFzX2tleSgibWluLWFzc2VydHMiKSBpcyBGYWxzZQogCiAK
K0BweXRlc3QubWFyay54ZmFpbChzeXMudmVyc2lvblswXSA9PSAiMyIsCisgICAgICAgICAgICAg
ICAgICAgcmVhc29uPSJtZXRhZGF0YSBkb2Vzbid0IHN1cHBvcnQgcHkzIikKIGRlZiB0ZXN0X3Vw
ZGF0ZV9sc2FuXzAoKToKLSAgICB0ZXN0X2lkID0gIi9wYXRoL3RvL3Rlc3QuaHRtIgotICAgIGRp
cl9pZCA9ICJwYXRoL3RvL19fZGlyX18iCiAgICAgdGVzdHMgPSBbKCJwYXRoL3RvL3Rlc3QuaHRt
IiwgW3Rlc3RfaWRdLCAidGVzdGhhcm5lc3MiLCAiIiksCiAgICAgICAgICAgICAgKCJwYXRoL3Rv
L19fZGlyX18iLCBbZGlyX2lkXSwgTm9uZSwgIiIpXQogCkBAIC01MTAsOSArMTUwOCw5IEBAIGRl
ZiB0ZXN0X3VwZGF0ZV9sc2FuXzAoKToKICAgICBhc3NlcnQgbmV3X21hbmlmZXN0LmdldCgibHNh
bi1hbGxvd2VkIikgPT0gWyJmb28iXQogCiAKK0BweXRlc3QubWFyay54ZmFpbChzeXMudmVyc2lv
blswXSA9PSAiMyIsCisgICAgICAgICAgICAgICAgICAgcmVhc29uPSJtZXRhZGF0YSBkb2Vzbid0
IHN1cHBvcnQgcHkzIikKIGRlZiB0ZXN0X3VwZGF0ZV9sc2FuXzEoKToKLSAgICB0ZXN0X2lkID0g
Ii9wYXRoL3RvL3Rlc3QuaHRtIgotICAgIGRpcl9pZCA9ICJwYXRoL3RvL19fZGlyX18iCiAgICAg
dGVzdHMgPSBbKCJwYXRoL3RvL3Rlc3QuaHRtIiwgW3Rlc3RfaWRdLCAidGVzdGhhcm5lc3MiLCAi
IiksCiAgICAgICAgICAgICAgKCJwYXRoL3RvL19fZGlyX18iLCBbZGlyX2lkXSwgTm9uZSwgIiIi
CiBsc2FuLWFsbG93ZWQ6IFtmb29dIiIiKV0KQEAgLTUzMCw5ICsxNTI4LDkgQEAgbHNhbi1hbGxv
d2VkOiBbZm9vXSIiIildCiAgICAgYXNzZXJ0IG5ld19tYW5pZmVzdC5nZXQoImxzYW4tYWxsb3dl
ZCIpID09IFsiYmF6IiwgImZvbyJdCiAKIAorQHB5dGVzdC5tYXJrLnhmYWlsKHN5cy52ZXJzaW9u
WzBdID09ICIzIiwKKyAgICAgICAgICAgICAgICAgICByZWFzb249Im1ldGFkYXRhIGRvZXNuJ3Qg
c3VwcG9ydCBweTMiKQogZGVmIHRlc3RfdXBkYXRlX2xzYW5fMigpOgotICAgIHRlc3RfaWQgPSAi
L3BhdGgvdG8vdGVzdC5odG0iCi0gICAgZGlyX2lkID0gInBhdGgvdG8vX19kaXJfXyIKICAgICB0
ZXN0cyA9IFsoInBhdGgvdG8vdGVzdC5odG0iLCBbdGVzdF9pZF0sICJ0ZXN0aGFybmVzcyIsICIi
KSwKICAgICAgICAgICAgICAoInBhdGgvX19kaXJfXyIsIFsicGF0aC9fX2Rpcl9fIl0sIE5vbmUs
ICIiIgogbHNhbi1hbGxvd2VkOiBbZm9vXSIiIiksCkBAIC01NTIsOSArMTU1MCw5IEBAIGxzYW4t
YWxsb3dlZDogW2Zvb10iIiIpLAogICAgIGFzc2VydCBuZXdfbWFuaWZlc3QuZ2V0KCJsc2FuLWFs
bG93ZWQiKSA9PSBbImJheiJdCiAKIAorQHB5dGVzdC5tYXJrLnhmYWlsKHN5cy52ZXJzaW9uWzBd
ID09ICIzIiwKKyAgICAgICAgICAgICAgICAgICByZWFzb249Im1ldGFkYXRhIGRvZXNuJ3Qgc3Vw
cG9ydCBweTMiKQogZGVmIHRlc3RfdXBkYXRlX2xzYW5fMygpOgotICAgIHRlc3RfaWQgPSAiL3Bh
dGgvdG8vdGVzdC5odG0iCi0gICAgZGlyX2lkID0gInBhdGgvdG8vX19kaXJfXyIKICAgICB0ZXN0
cyA9IFsoInBhdGgvdG8vdGVzdC5odG0iLCBbdGVzdF9pZF0sICJ0ZXN0aGFybmVzcyIsICIiKSwK
ICAgICAgICAgICAgICAoInBhdGgvdG8vX19kaXJfXyIsIFtkaXJfaWRdLCBOb25lLCAiIildCiAK
QEAgLTU3NCwxMyArMTU3MiwxNSBAQCBkZWYgdGVzdF91cGRhdGVfbHNhbl8zKCk6CiAgICAgYXNz
ZXJ0IG5ld19tYW5pZmVzdC5nZXQoImxzYW4tYWxsb3dlZCIpID09IFsiYmF6IiwgImZvbyJdCiAK
IAorQHB5dGVzdC5tYXJrLnhmYWlsKHN5cy52ZXJzaW9uWzBdID09ICIzIiwKKyAgICAgICAgICAg
ICAgICAgICByZWFzb249Im1ldGFkYXRhIGRvZXNuJ3Qgc3VwcG9ydCBweTMiKQogZGVmIHRlc3Rf
dXBkYXRlX3dwdHJlcG9ydF8wKCk6Ci0gICAgdGVzdHMgPSBbKCJwYXRoL3RvL3Rlc3QuaHRtIiwg
WyIvcGF0aC90by90ZXN0Lmh0bSJdLCAidGVzdGhhcm5lc3MiLAorICAgIHRlc3RzID0gWygicGF0
aC90by90ZXN0Lmh0bSIsIFt0ZXN0X2lkXSwgInRlc3RoYXJuZXNzIiwKICAgICAgICAgICAgICAg
IiIiW3Rlc3QuaHRtXQogICBbdGVzdDFdCiAgICAgZXhwZWN0ZWQ6IEZBSUwiIiIpXQogCi0gICAg
bG9nID0geyJydW5faW5mbyI6IHt9LAorICAgIGxvZyA9IHsicnVuX2luZm8iOiBkZWZhdWx0X3J1
bl9pbmZvLmNvcHkoKSwKICAgICAgICAgICAgInJlc3VsdHMiOiBbCiAgICAgICAgICAgICAgICB7
InRlc3QiOiAiL3BhdGgvdG8vdGVzdC5odG0iLAogICAgICAgICAgICAgICAgICJzdWJ0ZXN0cyI6
IFt7Im5hbWUiOiAidGVzdDEiLApAQCAtNTk0LDEwICsxNTk0LDEzIEBAIGRlZiB0ZXN0X3VwZGF0
ZV93cHRyZXBvcnRfMCgpOgogICAgIGFzc2VydCB1cGRhdGVkWzBdWzFdLmlzX2VtcHR5CiAKIAor
QHB5dGVzdC5tYXJrLnhmYWlsKHN5cy52ZXJzaW9uWzBdID09ICIzIiwKKyAgICAgICAgICAgICAg
ICAgICByZWFzb249Im1ldGFkYXRhIGRvZXNuJ3Qgc3VwcG9ydCBweTMiKQogZGVmIHRlc3RfdXBk
YXRlX3dwdHJlcG9ydF8xKCk6Ci0gICAgdGVzdHMgPSBbKCJwYXRoL3RvL19fZGlyX18iLCBbInBh
dGgvdG8vX19kaXJfXyJdLCBOb25lLCAiIildCisgICAgdGVzdHMgPSBbKCJwYXRoL3RvL3Rlc3Qu
aHRtIiwgW3Rlc3RfaWRdLCAidGVzdGhhcm5lc3MiLCAiIiksCisgICAgICAgICAgICAgKCJwYXRo
L3RvL19fZGlyX18iLCBbZGlyX2lkXSwgTm9uZSwgIiIpXQogCi0gICAgbG9nID0geyJydW5faW5m
byI6IHt9LAorICAgIGxvZyA9IHsicnVuX2luZm8iOiBkZWZhdWx0X3J1bl9pbmZvLmNvcHkoKSwK
ICAgICAgICAgICAgInJlc3VsdHMiOiBbXSwKICAgICAgICAgICAgImxzYW5fbGVha3MiOiBbeyJz
Y29wZSI6ICJwYXRoL3RvLyIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAiZnJhbWVzIjog
WyJiYXoiLCAiZm9vYmFyIl19XX0KQEAgLTYwNiwzICsxNjA5LDEzMSBAQCBkZWYgdGVzdF91cGRh
dGVfd3B0cmVwb3J0XzEoKToKIAogICAgIGFzc2VydCBsZW4odXBkYXRlZCkgPT0gMQogICAgIGFz
c2VydCB1cGRhdGVkWzBdWzFdLmdldCgibHNhbi1hbGxvd2VkIikgPT0gWyJiYXoiXQorCisKK0Bw
eXRlc3QubWFyay54ZmFpbChzeXMudmVyc2lvblswXSA9PSAiMyIsCisgICAgICAgICAgICAgICAg
ICAgcmVhc29uPSJtZXRhZGF0YSBkb2Vzbid0IHN1cHBvcnQgcHkzIikKK2RlZiB0ZXN0X3VwZGF0
ZV9sZWFrX3RvdGFsXzAoKToKKyAgICB0ZXN0cyA9IFsoInBhdGgvdG8vdGVzdC5odG0iLCBbdGVz
dF9pZF0sICJ0ZXN0aGFybmVzcyIsICIiKSwKKyAgICAgICAgICAgICAoInBhdGgvdG8vX19kaXJf
XyIsIFtkaXJfaWRdLCBOb25lLCAiIildCisKKyAgICBsb2dfMCA9IHN1aXRlX2xvZyhbKCJtb3ps
ZWFrX3RvdGFsIiwgeyJzY29wZSI6ICJwYXRoL3RvLyIsCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAicHJvY2VzcyI6ICJkZWZhdWx0IiwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICJieXRlcyI6IDEwMCwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ0aHJlc2hvbGQiOiAwLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIm9iamVjdHMiOiBbXX0pXSkKKworICAgIHVw
ZGF0ZWQgPSB1cGRhdGUodGVzdHMsIGxvZ18wKQorICAgIG5ld19tYW5pZmVzdCA9IHVwZGF0ZWRb
MF1bMV0KKworICAgIGFzc2VydCBub3QgbmV3X21hbmlmZXN0LmlzX2VtcHR5CisgICAgYXNzZXJ0
IG5ld19tYW5pZmVzdC5nZXQoImxlYWstdGhyZXNob2xkIikgPT0gWydkZWZhdWx0OjUxMjAwJ10K
KworCitAcHl0ZXN0Lm1hcmsueGZhaWwoc3lzLnZlcnNpb25bMF0gPT0gIjMiLAorICAgICAgICAg
ICAgICAgICAgIHJlYXNvbj0ibWV0YWRhdGEgZG9lc24ndCBzdXBwb3J0IHB5MyIpCitkZWYgdGVz
dF91cGRhdGVfbGVha190b3RhbF8xKCk6CisgICAgdGVzdHMgPSBbKCJwYXRoL3RvL3Rlc3QuaHRt
IiwgW3Rlc3RfaWRdLCAidGVzdGhhcm5lc3MiLCAiIiksCisgICAgICAgICAgICAgKCJwYXRoL3Rv
L19fZGlyX18iLCBbZGlyX2lkXSwgTm9uZSwgIiIpXQorCisgICAgbG9nXzAgPSBzdWl0ZV9sb2co
WygibW96bGVha190b3RhbCIsIHsic2NvcGUiOiAicGF0aC90by8iLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgInByb2Nlc3MiOiAiZGVmYXVsdCIsCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiYnl0ZXMiOiAxMDAsCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAidGhyZXNob2xkIjogMTAwMCwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJvYmplY3RzIjogW119KV0p
CisKKyAgICB1cGRhdGVkID0gdXBkYXRlKHRlc3RzLCBsb2dfMCkKKyAgICBhc3NlcnQgbm90IHVw
ZGF0ZWQKKworCitAcHl0ZXN0Lm1hcmsueGZhaWwoc3lzLnZlcnNpb25bMF0gPT0gIjMiLAorICAg
ICAgICAgICAgICAgICAgIHJlYXNvbj0ibWV0YWRhdGEgZG9lc24ndCBzdXBwb3J0IHB5MyIpCitk
ZWYgdGVzdF91cGRhdGVfbGVha190b3RhbF8yKCk6CisgICAgdGVzdHMgPSBbKCJwYXRoL3RvL3Rl
c3QuaHRtIiwgW3Rlc3RfaWRdLCAidGVzdGhhcm5lc3MiLCAiIiksCisgICAgICAgICAgICAgKCJw
YXRoL3RvL19fZGlyX18iLCBbZGlyX2lkXSwgTm9uZSwgIiIiCitsZWFrLXRvdGFsOiAxMTAiIiIp
XQorCisgICAgbG9nXzAgPSBzdWl0ZV9sb2coWygibW96bGVha190b3RhbCIsIHsic2NvcGUiOiAi
cGF0aC90by8iLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInBy
b2Nlc3MiOiAiZGVmYXVsdCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAiYnl0ZXMiOiAxMDAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAidGhyZXNob2xkIjogMTEwLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIm9iamVjdHMiOiBbXX0pXSkKKworICAgIHVwZGF0ZWQgPSB1cGRhdGUodGVzdHMs
IGxvZ18wKQorICAgIGFzc2VydCBub3QgdXBkYXRlZAorCisKK0BweXRlc3QubWFyay54ZmFpbChz
eXMudmVyc2lvblswXSA9PSAiMyIsCisgICAgICAgICAgICAgICAgICAgcmVhc29uPSJtZXRhZGF0
YSBkb2Vzbid0IHN1cHBvcnQgcHkzIikKK2RlZiB0ZXN0X3VwZGF0ZV9sZWFrX3RvdGFsXzMoKToK
KyAgICB0ZXN0cyA9IFsoInBhdGgvdG8vdGVzdC5odG0iLCBbdGVzdF9pZF0sICJ0ZXN0aGFybmVz
cyIsICIiKSwKKyAgICAgICAgICAgICAoInBhdGgvdG8vX19kaXJfXyIsIFtkaXJfaWRdLCBOb25l
LCAiIiIKK2xlYWstdG90YWw6IDEwMCIiIildCisKKyAgICBsb2dfMCA9IHN1aXRlX2xvZyhbKCJt
b3psZWFrX3RvdGFsIiwgeyJzY29wZSI6ICJwYXRoL3RvLyIsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAicHJvY2VzcyI6ICJkZWZhdWx0IiwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJieXRlcyI6IDEwMDAsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAidGhyZXNob2xkIjogMTAwLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIm9iamVjdHMiOiBbXX0pXSkKKwor
ICAgIHVwZGF0ZWQgPSB1cGRhdGUodGVzdHMsIGxvZ18wKQorICAgIG5ld19tYW5pZmVzdCA9IHVw
ZGF0ZWRbMF1bMV0KKworICAgIGFzc2VydCBub3QgbmV3X21hbmlmZXN0LmlzX2VtcHR5CisgICAg
YXNzZXJ0IG5ld19tYW5pZmVzdC5nZXQoImxlYWstdGhyZXNob2xkIikgPT0gWydkZWZhdWx0OjUx
MjAwJ10KKworCitAcHl0ZXN0Lm1hcmsueGZhaWwoc3lzLnZlcnNpb25bMF0gPT0gIjMiLAorICAg
ICAgICAgICAgICAgICAgIHJlYXNvbj0ibWV0YWRhdGEgZG9lc24ndCBzdXBwb3J0IHB5MyIpCitk
ZWYgdGVzdF91cGRhdGVfbGVha190b3RhbF80KCk6CisgICAgdGVzdHMgPSBbKCJwYXRoL3RvL3Rl
c3QuaHRtIiwgW3Rlc3RfaWRdLCAidGVzdGhhcm5lc3MiLCAiIiksCisgICAgICAgICAgICAgKCJw
YXRoL3RvL19fZGlyX18iLCBbZGlyX2lkXSwgTm9uZSwgIiIiCitsZWFrLXRvdGFsOiAxMTAiIiIp
XQorCisgICAgbG9nXzAgPSBzdWl0ZV9sb2coWworICAgICAgICAoImxzYW5fbGVhayIsIHsic2Nv
cGUiOiAicGF0aC90by8iLAorICAgICAgICAgICAgICAgICAgICAgICAiZnJhbWVzIjogWyJmb28i
LCAiYmFyIl19KSwKKyAgICAgICAgKCJtb3psZWFrX3RvdGFsIiwgeyJzY29wZSI6ICJwYXRoL3Rv
LyIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAicHJvY2VzcyI6ICJkZWZhdWx0IiwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICJieXRlcyI6IDEwMCwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICJ0aHJlc2hvbGQiOiAxMTAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAi
b2JqZWN0cyI6IFtdfSldKQorCisgICAgdXBkYXRlZCA9IHVwZGF0ZSh0ZXN0cywgbG9nXzApCisg
ICAgbmV3X21hbmlmZXN0ID0gdXBkYXRlZFswXVsxXQorCisgICAgYXNzZXJ0IG5vdCBuZXdfbWFu
aWZlc3QuaXNfZW1wdHkKKyAgICBhc3NlcnQgbmV3X21hbmlmZXN0Lmhhc19rZXkoImxlYWstdGhy
ZXNob2xkIikgaXMgRmFsc2UKKworCitjbGFzcyBUZXN0U3RlcChTdGVwKToKKyAgICBkZWYgY3Jl
YXRlKHNlbGYsIHN0YXRlKToKKyAgICAgICAgdGVzdHMgPSBbKCJwYXRoL3RvL3Rlc3QuaHRtIiwg
W3Rlc3RfaWRdLCAidGVzdGhhcm5lc3MiLCAiIildCisgICAgICAgIHN0YXRlLmZvbyA9IGNyZWF0
ZV90ZXN0X21hbmlmZXN0KHRlc3RzKQorCisKK2NsYXNzIFVwZGF0ZVJ1bm5lcihTdGVwUnVubmVy
KToKKyAgICBzdGVwcyA9IFtUZXN0U3RlcF0KKworCitAcHl0ZXN0Lm1hcmsueGZhaWwoc3lzLnZl
cnNpb25bMF0gPT0gIjMiLAorICAgICAgICAgICAgICAgICAgIHJlYXNvbj0idXBkYXRlLnN0YXRl
IGRvZXNuJ3Qgc3VwcG9ydCBweTMiKQorZGVmIHRlc3RfdXBkYXRlX3BpY2tsZSgpOgorICAgIGxv
Z2dlciA9IHN0cnVjdHVyZWRsb2cuU3RydWN0dXJlZExvZ2dlcigiZXhwZWN0ZWRfdGVzdCIpCisg
ICAgYXJncyA9IHsKKyAgICAgICAgInRlc3RfcGF0aHMiOiB7CisgICAgICAgICAgICAiLyI6IHsi
dGVzdHNfcGF0aCI6IG9zLnBhdGguYWJzcGF0aChvcy5wYXRoLmpvaW4oaGVyZSwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcy5w
YXJkaXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgb3MucGFyZGlyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9zLnBhcmRpciwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcy5wYXJkaXIpKX0s
CisgICAgICAgIH0sCisgICAgICAgICJhYm9ydCI6IEZhbHNlLAorICAgICAgICAiY29udGludWUi
OiBGYWxzZSwKKyAgICAgICAgInN5bmMiOiBGYWxzZSwKKyAgICB9CisgICAgYXJnczIgPSBhcmdz
LmNvcHkoKQorICAgIGFyZ3MyWyJhYm9ydCJdID0gVHJ1ZQorICAgIHdwdHVwZGF0ZSA9IFdQVFVw
ZGF0ZShsb2dnZXIsICoqYXJnczIpCisgICAgd3B0dXBkYXRlID0gV1BUVXBkYXRlKGxvZ2dlciwg
cnVubmVyX2Nscz1VcGRhdGVSdW5uZXIsICoqYXJncykKKyAgICB3cHR1cGRhdGUucnVuKCkKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvd3B0cnVubmVyL3dwdHJ1bm5lci90ZXN0cy90ZXN0X3dwdHRlc3QucHkgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5u
ZXIvdGVzdHMvdGVzdF93cHR0ZXN0LnB5CmluZGV4IDUyODBlNDZhNmIyNDMzMjZlMjMwM2JiNTU0
YWRhNGE3MjZiZDcyMDMuLjY5ZjIyZWJjYjY4YjYyYjZjNTRmNzg3NGY1NTE0NmI0NmY5NGQ4Mzgg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci90ZXN0cy90ZXN0X3dwdHRlc3QucHkKKysrIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIv
d3B0cnVubmVyL3Rlc3RzL3Rlc3Rfd3B0dGVzdC5weQpAQCAtMSwxMSArMSwxMSBAQAotaW1wb3J0
IG9zCitpbXBvcnQgcHl0ZXN0CiBpbXBvcnQgc3lzCiBmcm9tIGlvIGltcG9ydCBCeXRlc0lPCitm
cm9tIG1vY2sgaW1wb3J0IE1vY2sKIAotc3lzLnBhdGguaW5zZXJ0KDAsIG9zLnBhdGguam9pbihv
cy5wYXRoLmRpcm5hbWUoX19maWxlX18pLCAiLi4iLCAiLi4iKSkKLQotZnJvbSB3cHRydW5uZXIg
aW1wb3J0IG1hbmlmZXN0ZXhwZWN0ZWQsIHdwdHRlc3QKLWZyb20gLnRlc3RfY2h1bmtlciBpbXBv
cnQgbWFrZV9tb2NrX21hbmlmZXN0Citmcm9tIG1hbmlmZXN0IGltcG9ydCBtYW5pZmVzdCBhcyB3
cHRtYW5pZmVzdAorZnJvbSBtYW5pZmVzdC5pdGVtIGltcG9ydCBUZXN0aGFybmVzc1Rlc3QKK2Zy
b20gLi4gaW1wb3J0IG1hbmlmZXN0ZXhwZWN0ZWQsIHdwdHRlc3QKIAogZGlyX2luaV8wID0gIiIi
XAogcHJlZnM6IFthOmJdCkBAIC0xOCw2ICsxOCwxMCBAQCBtaW4tYXNzZXJ0czogMQogdGFnczog
W2IsIGNdCiAiIiIKIAorZGlyX2luaV8yID0gIiIiXAorbHNhbi1tYXgtc3RhY2stZGVwdGg6IDQy
CisiIiIKKwogdGVzdF8wID0gIiIiXAogWzAuaHRtbF0KICAgcHJlZnM6IFtjOmRdCkBAIC0zMyw0
MiArMzcsMjA1IEBAIHRlc3RfMSA9ICIiIlwKICAgICBpZiBvcyA9PSAnd2luJzogRkFJTAogIiIi
CiAKK3Rlc3RfMiA9ICIiIlwKK1syLmh0bWxdCisgIGxzYW4tbWF4LXN0YWNrLWRlcHRoOiA0Mgor
IiIiCisKK3Rlc3RfMyA9ICIiIlwKK1szLmh0bWxdCisgIFtzdWJ0ZXN0MV0KKyAgICBleHBlY3Rl
ZDogW1BBU1MsIEZBSUxdCiAKLWRlZiB0ZXN0X21ldGFkYXRhX2luaGVyaXQoKToKLSAgICB0ZXN0
cyA9IG1ha2VfbW9ja19tYW5pZmVzdCgoInRlc3QiLCAiYSIsIDEwKSwgKCJ0ZXN0IiwgImEvYiIs
IDEwKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoInRlc3QiLCAiYyIsIDEwKSkK
KyAgW3N1YnRlc3QyXQorICAgIGRpc2FibGVkOiByZWFzb24KKworICBbc3VidGVzdDNdCisgICAg
ZXhwZWN0ZWQ6IEZBSUwKKyIiIgorCit0ZXN0XzQgPSAiIiJcCitbNC5odG1sXQorICBleHBlY3Rl
ZDogRkFJTAorIiIiCisKK3Rlc3RfNSA9ICIiIlwKK1s1Lmh0bWxdCisiIiIKKwordGVzdF82ID0g
IiIiXAorWzYuaHRtbF0KKyAgZXhwZWN0ZWQ6IFtPSywgRkFJTF0KKyIiIgorCit0ZXN0XzcgPSAi
IiJcCitbNy5odG1sXQorICBibGlua19leHBlY3RfYW55X3N1YnRlc3Rfc3RhdHVzOiB5ZXAKKyIi
IgogCit0ZXN0X2Z1enp5ID0gIiIiXAorW2Z1enp5Lmh0bWxdCisgIGZ1enp5OiBmdXp6eS1yZWYu
aHRtbDoxOzIwMAorIiIiCisKKwordGVzdGhhcm5lc3NfdGVzdCA9ICIiIjxzY3JpcHQgc3JjPSIv
cmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIvcmVzb3Vy
Y2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4iIiIKKworCitkZWYgbWFrZV9tb2Nr
X21hbmlmZXN0KCppdGVtcyk6CisgICAgcnYgPSBNb2NrKHRlc3RzX3Jvb3Q9Ii9mb29iYXIiKQor
ICAgIHRlc3RzID0gW10KKyAgICBydi5fX2l0ZXJfXyA9IGxhbWJkYSBzZWxmOiBpdGVyKHRlc3Rz
KQorICAgIHJ2Ll9fZ2V0aXRlbV9fID0gbGFtYmRhIHNlbGYsIGs6IHRlc3RzW2tdCisgICAgZm9y
IHRlc3RfdHlwZSwgZGlyX3BhdGgsIG51bV90ZXN0cyBpbiBpdGVtczoKKyAgICAgICAgZm9yIGkg
aW4gcmFuZ2UobnVtX3Rlc3RzKToKKyAgICAgICAgICAgIGZpbGVuYW1lID0gZGlyX3BhdGggKyAi
LyVpLmh0bWwiICUgaQorICAgICAgICAgICAgdGVzdHMuYXBwZW5kKCh0ZXN0X3R5cGUsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgIGZpbGVuYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICB7VGVzdGhhcm5lc3NUZXN0KCIvZm9vLmJhciIsIGZpbGVuYW1lLCAiLyIsIGZpbGVuYW1lKX0p
KQorICAgIHJldHVybiBydgorCitkZWYgbWFrZV90ZXN0X29iamVjdCh0ZXN0X25hbWUsCisgICAg
ICAgICAgICAgICAgICAgICB0ZXN0X3BhdGgsCisgICAgICAgICAgICAgICAgICAgICBpbmRleCwK
KyAgICAgICAgICAgICAgICAgICAgIGl0ZW1zLAorICAgICAgICAgICAgICAgICAgICAgaW5oZXJp
dF9tZXRhZGF0YT1Ob25lLAorICAgICAgICAgICAgICAgICAgICAgaXRlcmF0ZT1GYWxzZSwKKyAg
ICAgICAgICAgICAgICAgICAgIGNvbmRpdGlvbj1Ob25lKToKKyAgICBpbmhlcml0X21ldGFkYXRh
ID0gaW5oZXJpdF9tZXRhZGF0YSBpZiBpbmhlcml0X21ldGFkYXRhIGlzIG5vdCBOb25lIGVsc2Ug
W10KKyAgICBjb25kaXRpb24gPSBjb25kaXRpb24gaWYgY29uZGl0aW9uIGlzIG5vdCBOb25lIGVs
c2Uge30KKyAgICB0ZXN0cyA9IG1ha2VfbW9ja19tYW5pZmVzdCgqaXRlbXMpIGlmIGlzaW5zdGFu
Y2UoaXRlbXMsIGxpc3QpIGVsc2UgbWFrZV9tb2NrX21hbmlmZXN0KGl0ZW1zKQorCisgICAgdGVz
dF9tZXRhZGF0YSA9IG1hbmlmZXN0ZXhwZWN0ZWQuc3RhdGljLmNvbXBpbGUoQnl0ZXNJTyh0ZXN0
X25hbWUpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGNvbmRpdGlvbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBkYXRhX2Nsc19nZXR0ZXI9bWFuaWZlc3RleHBlY3RlZC5kYXRhX2Nsc19nZXR0
ZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
dGVzdF9wYXRoPXRlc3RfcGF0aCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICB1cmxfYmFzZT0iLyIpCisKKyAgICB0ZXN0ID0gbmV4dChpdGVyKHRl
c3RzW2luZGV4XVsyXSkpIGlmIGl0ZXJhdGUgZWxzZSB0ZXN0c1tpbmRleF1bMl0ucG9wKCkKKyAg
ICByZXR1cm4gd3B0dGVzdC5mcm9tX21hbmlmZXN0KHRlc3RzLCB0ZXN0LCBpbmhlcml0X21ldGFk
YXRhLCB0ZXN0X21ldGFkYXRhLmdldF90ZXN0KHRlc3QuaWQpKQorCisKK0BweXRlc3QubWFyay54
ZmFpbChzeXMudmVyc2lvblswXSA9PSAiMyIsCisgICAgICAgICAgICAgICAgICAgcmVhc29uPSJi
eXRlcy90ZXh0IGNvbmZ1c2lvbiBpbiBweTMiKQorZGVmIHRlc3RfbWV0YWRhdGFfaW5oZXJpdCgp
OgorICAgIGl0ZW1zID0gWygidGVzdCIsICJhIiwgMTApLCAoInRlc3QiLCAiYS9iIiwgMTApLCAo
InRlc3QiLCAiYyIsIDEwKV0KICAgICBpbmhlcml0X21ldGFkYXRhID0gWwogICAgICAgICBtYW5p
ZmVzdGV4cGVjdGVkLnN0YXRpYy5jb21waWxlKAogICAgICAgICAgICAgQnl0ZXNJTyhpdGVtKSwK
ICAgICAgICAgICAgIHt9LAogICAgICAgICAgICAgZGF0YV9jbHNfZ2V0dGVyPWxhbWJkYSB4LHk6
IG1hbmlmZXN0ZXhwZWN0ZWQuRGlyZWN0b3J5TWFuaWZlc3QpCiAgICAgICAgIGZvciBpdGVtIGlu
IFtkaXJfaW5pXzAsIGRpcl9pbmlfMV1dCi0gICAgdGVzdF9tZXRhZGF0YSA9IG1hbmlmZXN0ZXhw
ZWN0ZWQuc3RhdGljLmNvbXBpbGUoQnl0ZXNJTyh0ZXN0XzApLAotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt9LAotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGFfY2xzX2dldHRlcj1tYW5pZmVz
dGV4cGVjdGVkLmRhdGFfY2xzX2dldHRlciwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICB0ZXN0X3BhdGg9ImEiLAotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVybF9iYXNlPSIiKQogCi0gICAgdGVz
dCA9IHRlc3RzWzBdWzJdLnBvcCgpCi0gICAgdGVzdF9vYmogPSB3cHR0ZXN0LmZyb21fbWFuaWZl
c3QodGVzdCwgaW5oZXJpdF9tZXRhZGF0YSwgdGVzdF9tZXRhZGF0YS5nZXRfdGVzdCh0ZXN0Lmlk
KSkKKyAgICB0ZXN0X29iaiA9IG1ha2VfdGVzdF9vYmplY3QodGVzdF8wLCAiYS8wLmh0bWwiLCAw
LCBpdGVtcywgaW5oZXJpdF9tZXRhZGF0YSwgVHJ1ZSkKKwogICAgIGFzc2VydCB0ZXN0X29iai5t
YXhfYXNzZXJ0aW9uX2NvdW50ID09IDMKICAgICBhc3NlcnQgdGVzdF9vYmoubWluX2Fzc2VydGlv
bl9jb3VudCA9PSAxCiAgICAgYXNzZXJ0IHRlc3Rfb2JqLnByZWZzID09IHsiYiI6ICJjIiwgImMi
OiAiZCJ9CiAgICAgYXNzZXJ0IHRlc3Rfb2JqLnRhZ3MgPT0geyJhIiwgImRpcjphIn0KIAogCitA
cHl0ZXN0Lm1hcmsueGZhaWwoc3lzLnZlcnNpb25bMF0gPT0gIjMiLAorICAgICAgICAgICAgICAg
ICAgIHJlYXNvbj0iYnl0ZXMvdGV4dCBjb25mdXNpb24gaW4gcHkzIikKIGRlZiB0ZXN0X2NvbmRp
dGlvbmFsKCk6Ci0gICAgdGVzdHMgPSBtYWtlX21vY2tfbWFuaWZlc3QoKCJ0ZXN0IiwgImEiLCAx
MCksICgidGVzdCIsICJhL2IiLCAxMCksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
KCJ0ZXN0IiwgImMiLCAxMCkpCisgICAgaXRlbXMgPSBbKCJ0ZXN0IiwgImEiLCAxMCksICgidGVz
dCIsICJhL2IiLCAxMCksICgidGVzdCIsICJjIiwgMTApXQogCi0gICAgdGVzdF9tZXRhZGF0YSA9
IG1hbmlmZXN0ZXhwZWN0ZWQuc3RhdGljLmNvbXBpbGUoQnl0ZXNJTyh0ZXN0XzEpLAotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsib3MiOiAid2lu
In0sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ZGF0YV9jbHNfZ2V0dGVyPW1hbmlmZXN0ZXhwZWN0ZWQuZGF0YV9jbHNfZ2V0dGVyLAotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RfcGF0aD0i
YSIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
dXJsX2Jhc2U9IiIpCisgICAgdGVzdF9vYmogPSBtYWtlX3Rlc3Rfb2JqZWN0KHRlc3RfMSwgImEv
MS5odG1sIiwgMSwgaXRlbXMsIE5vbmUsIFRydWUsIHsib3MiOiAid2luIn0pCiAKLSAgICB0ZXN0
ID0gdGVzdHNbMV1bMl0ucG9wKCkKLSAgICB0ZXN0X29iaiA9IHdwdHRlc3QuZnJvbV9tYW5pZmVz
dCh0ZXN0LCBbXSwgdGVzdF9tZXRhZGF0YS5nZXRfdGVzdCh0ZXN0LmlkKSkKICAgICBhc3NlcnQg
dGVzdF9vYmoucHJlZnMgPT0geyJhIjogImIiLCAiYyI6ICJkIn0KICAgICBhc3NlcnQgdGVzdF9v
YmouZXhwZWN0ZWQoKSA9PSAiRkFJTCIKKworCitAcHl0ZXN0Lm1hcmsueGZhaWwoc3lzLnZlcnNp
b25bMF0gPT0gIjMiLAorICAgICAgICAgICAgICAgICAgIHJlYXNvbj0iYnl0ZXMvdGV4dCBjb25m
dXNpb24gaW4gcHkzIikKK2RlZiB0ZXN0X21ldGFkYXRhX2xzYW5fc3RhY2tfZGVwdGgoKToKKyAg
ICBpdGVtcyA9IFsoInRlc3QiLCAiYSIsIDEwKSwgKCJ0ZXN0IiwgImEvYiIsIDEwKV0KKworICAg
IHRlc3Rfb2JqID0gbWFrZV90ZXN0X29iamVjdCh0ZXN0XzIsICJhLzIuaHRtbCIsIDIsIGl0ZW1z
LCBOb25lLCBUcnVlKQorCisgICAgYXNzZXJ0IHRlc3Rfb2JqLmxzYW5fbWF4X3N0YWNrX2RlcHRo
ID09IDQyCisKKyAgICB0ZXN0X29iaiA9IG1ha2VfdGVzdF9vYmplY3QodGVzdF8yLCAiYS8yLmh0
bWwiLCAxLCBpdGVtcywgTm9uZSwgVHJ1ZSkKKworICAgIGFzc2VydCB0ZXN0X29iai5sc2FuX21h
eF9zdGFja19kZXB0aCBpcyBOb25lCisKKyAgICBpbmhlcml0X21ldGFkYXRhID0gWworICAgICAg
ICBtYW5pZmVzdGV4cGVjdGVkLnN0YXRpYy5jb21waWxlKAorICAgICAgICAgICAgQnl0ZXNJTyhk
aXJfaW5pXzIpLAorICAgICAgICAgICAge30sCisgICAgICAgICAgICBkYXRhX2Nsc19nZXR0ZXI9
bGFtYmRhIHgseTogbWFuaWZlc3RleHBlY3RlZC5EaXJlY3RvcnlNYW5pZmVzdCkKKyAgICBdCisK
KyAgICB0ZXN0X29iaiA9IG1ha2VfdGVzdF9vYmplY3QodGVzdF8wLCAiYS8wL2h0bWwiLCAwLCBp
dGVtcywgaW5oZXJpdF9tZXRhZGF0YSwgRmFsc2UpCisKKyAgICBhc3NlcnQgdGVzdF9vYmoubHNh
bl9tYXhfc3RhY2tfZGVwdGggPT0gNDIKKworCitAcHl0ZXN0Lm1hcmsueGZhaWwoc3lzLnZlcnNp
b25bMF0gPT0gIjMiLAorICAgICAgICAgICAgICAgICAgIHJlYXNvbj0iYnl0ZXMvdGV4dCBjb25m
dXNpb24gaW4gcHkzIikKK2RlZiB0ZXN0X3N1YnRlc3RzKCk6CisgICAgdGVzdF9vYmogPSBtYWtl
X3Rlc3Rfb2JqZWN0KHRlc3RfMywgImEvMy5odG1sIiwgMywgKCJ0ZXN0IiwgImEiLCA0KSwgTm9u
ZSwgRmFsc2UpCisgICAgYXNzZXJ0IHRlc3Rfb2JqLmV4cGVjdGVkKCJzdWJ0ZXN0MSIpID09ICJQ
QVNTIgorICAgIGFzc2VydCB0ZXN0X29iai5rbm93bl9pbnRlcm1pdHRlbnQoInN1YnRlc3QxIikg
PT0gWyJGQUlMIl0KKyAgICBhc3NlcnQgdGVzdF9vYmouZXhwZWN0ZWQoInN1YnRlc3QyIikgPT0g
IlBBU1MiCisgICAgYXNzZXJ0IHRlc3Rfb2JqLmtub3duX2ludGVybWl0dGVudCgic3VidGVzdDIi
KSA9PSBbXQorICAgIGFzc2VydCB0ZXN0X29iai5leHBlY3RlZCgic3VidGVzdDMiKSA9PSAiRkFJ
TCIKKyAgICBhc3NlcnQgdGVzdF9vYmoua25vd25faW50ZXJtaXR0ZW50KCJzdWJ0ZXN0MyIpID09
IFtdCisKKworQHB5dGVzdC5tYXJrLnhmYWlsKHN5cy52ZXJzaW9uWzBdID09ICIzIiwKKyAgICAg
ICAgICAgICAgICAgICByZWFzb249ImJ5dGVzL3RleHQgY29uZnVzaW9uIGluIHB5MyIpCitkZWYg
dGVzdF9leHBlY3RlZF9mYWlsKCk6CisgICAgdGVzdF9vYmogPSBtYWtlX3Rlc3Rfb2JqZWN0KHRl
c3RfNCwgImEvNC5odG1sIiwgNCwgKCJ0ZXN0IiwgImEiLCA1KSwgTm9uZSwgRmFsc2UpCisgICAg
YXNzZXJ0IHRlc3Rfb2JqLmV4cGVjdGVkKCkgPT0gIkZBSUwiCisgICAgYXNzZXJ0IHRlc3Rfb2Jq
Lmtub3duX2ludGVybWl0dGVudCgpID09IFtdCisKKworQHB5dGVzdC5tYXJrLnhmYWlsKHN5cy52
ZXJzaW9uWzBdID09ICIzIiwKKyAgICAgICAgICAgICAgICAgICByZWFzb249ImJ5dGVzL3RleHQg
Y29uZnVzaW9uIGluIHB5MyIpCitkZWYgdGVzdF9ub19leHBlY3RlZCgpOgorICAgIHRlc3Rfb2Jq
ID0gbWFrZV90ZXN0X29iamVjdCh0ZXN0XzUsICJhLzUuaHRtbCIsIDUsICgidGVzdCIsICJhIiwg
NiksIE5vbmUsIEZhbHNlKQorICAgIGFzc2VydCB0ZXN0X29iai5leHBlY3RlZCgpID09ICJPSyIK
KyAgICBhc3NlcnQgdGVzdF9vYmoua25vd25faW50ZXJtaXR0ZW50KCkgPT0gW10KKworCitAcHl0
ZXN0Lm1hcmsueGZhaWwoc3lzLnZlcnNpb25bMF0gPT0gIjMiLAorICAgICAgICAgICAgICAgICAg
IHJlYXNvbj0iYnl0ZXMvdGV4dCBjb25mdXNpb24gaW4gcHkzIikKK2RlZiB0ZXN0X2tub3duX2lu
dGVybWl0dGVudCgpOgorICAgIHRlc3Rfb2JqID0gbWFrZV90ZXN0X29iamVjdCh0ZXN0XzYsICJh
LzYuaHRtbCIsIDYsICgidGVzdCIsICJhIiwgNyksIE5vbmUsIEZhbHNlKQorICAgIGFzc2VydCB0
ZXN0X29iai5leHBlY3RlZCgpID09ICJPSyIKKyAgICBhc3NlcnQgdGVzdF9vYmoua25vd25faW50
ZXJtaXR0ZW50KCkgPT0gWyJGQUlMIl0KKworCitAcHl0ZXN0Lm1hcmsueGZhaWwoc3lzLnZlcnNp
b25bMF0gPT0gIjMiLAorICAgICAgICAgICAgICAgICAgIHJlYXNvbj0iYnl0ZXMvdGV4dCBjb25m
dXNpb24gaW4gcHkzIikKK2RlZiB0ZXN0X2V4cGVjdF9hbnlfc3VidGVzdF9zdGF0dXMoKToKKyAg
ICB0ZXN0X29iaiA9IG1ha2VfdGVzdF9vYmplY3QodGVzdF83LCAiYS83Lmh0bWwiLCA3LCAoInRl
c3QiLCAiYSIsIDgpLCBOb25lLCBGYWxzZSkKKyAgICBhc3NlcnQgdGVzdF9vYmouZXhwZWN0ZWQo
KSA9PSAiT0siCisgICAgYXNzZXJ0IHRlc3Rfb2JqLmV4cGVjdF9hbnlfc3VidGVzdF9zdGF0dXMo
KSBpcyBUcnVlCisKKworQHB5dGVzdC5tYXJrLnhmYWlsKHN5cy52ZXJzaW9uWzBdID09ICIzIiwK
KyAgICAgICAgICAgICAgICAgICByZWFzb249ImJ5dGVzL3RleHQgY29uZnVzaW9uIGluIHB5MyIp
CitkZWYgdGVzdF9tZXRhZGF0YV9mdXp6eSgpOgorICAgIG1hbmlmZXN0X2RhdGEgPSB7CisgICAg
ICAgICJpdGVtcyI6IHsicmVmdGVzdCI6IHsiYS9mdXp6eS5odG1sIjogW1siYS9mdXp6eS5odG1s
IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtbIi9h
L2Z1enp5LXJlZi5odG1sIiwgIj09Il1dLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgeyJmdXp6eSI6IFtbWyIvYS9mdXp6eS5odG1sIiwgJy9hL2Z1enp5
LXJlZi5odG1sJywgJz09J10sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBbWzIsIDNdLCBbMTAsIDE1XV1dXX1dXX19LAorICAgICAg
ICAicGF0aHMiOiB7ImEvZnV6enkuaHRtbCI6IFsiMCIqNDAsICJyZWZ0ZXN0Il19LAorICAgICAg
ICAidmVyc2lvbiI6IDYsCisgICAgICAgICJ1cmxfYmFzZSI6ICIvIn0KKyAgICBtYW5pZmVzdCA9
IHdwdG1hbmlmZXN0Lk1hbmlmZXN0LmZyb21fanNvbigiLiIsIG1hbmlmZXN0X2RhdGEpCisgICAg
dGVzdF9tZXRhZGF0YSA9IG1hbmlmZXN0ZXhwZWN0ZWQuc3RhdGljLmNvbXBpbGUoQnl0ZXNJTyh0
ZXN0X2Z1enp5KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICB7fSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBkYXRhX2Nsc19nZXR0ZXI9bWFuaWZlc3RleHBlY3RlZC5kYXRhX2Nsc19nZXR0ZXIs
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGVz
dF9wYXRoPSJhL2Z1enp5Lmh0bWwiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHVybF9iYXNlPSIvIikKKworICAgIHRlc3QgPSBtYW5pZmVzdC5p
dGVycGF0aCgiYS9mdXp6eS5odG1sIikubmV4dCgpCisgICAgdGVzdF9vYmogPSB3cHR0ZXN0LmZy
b21fbWFuaWZlc3QobWFuaWZlc3QsIHRlc3QsIFtdLCB0ZXN0X21ldGFkYXRhLmdldF90ZXN0KHRl
c3QuaWQpKQorCisgICAgYXNzZXJ0IHRlc3Rfb2JqLmZ1enp5ID09IHsoJy9hL2Z1enp5Lmh0bWwn
LCAnL2EvZnV6enktcmVmLmh0bWwnLCAnPT0nKTogW1syLCAzXSwgWzEwLCAxNV1dfQorICAgIGFz
c2VydCB0ZXN0X29iai5mdXp6eV9vdmVycmlkZSA9PSB7Jy9hL2Z1enp5LXJlZi5odG1sJzogKCgx
LCAxKSwgKDIwMCwgMjAwKSl9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvdGVzdHMvdzNjLWlt
cG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3dwdHJ1bm5lci93cHRydW5uZXIvdGVzdHMvdzNjLWltcG9ydC5sb2cKZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDBlMjc3OGFhYmZiMzNjNTg1ZTc3ZGFkMWU3MWY0MDE0OWU3NDRh
YjMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0
cnVubmVyL3Rlc3RzL3czYy1pbXBvcnQubG9nCisrKyAvZGV2L251bGwKQEAgLTEsMjUgKzAsMCBA
QAotVGhlIHRlc3RzIGluIHRoaXMgZGlyZWN0b3J5IHdlcmUgaW1wb3J0ZWQgZnJvbSB0aGUgVzND
IHJlcG9zaXRvcnkuCi1EbyBOT1QgbW9kaWZ5IHRoZXNlIHRlc3RzIGRpcmVjdGx5IGluIFdlYktp
dC4KLUluc3RlYWQsIGNyZWF0ZSBhIHB1bGwgcmVxdWVzdCBvbiB0aGUgV1BUIGdpdGh1YjoKLQlo
dHRwczovL2dpdGh1Yi5jb20vd2ViLXBsYXRmb3JtLXRlc3RzL3dwdAotCi1UaGVuIHJ1biB0aGUg
VG9vbHMvU2NyaXB0cy9pbXBvcnQtdzNjLXRlc3RzIGluIFdlYktpdCB0byByZWltcG9ydAotCi1E
byBOT1QgbW9kaWZ5IG9yIHJlbW92ZSB0aGlzIGZpbGUuCi0KLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotUHJv
cGVydGllcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotUHJvcGVydHkgdmFsdWVz
IHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLUxpc3Qg
b2YgZmlsZXM6Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy93cHRydW5uZXIvd3B0cnVubmVyL3Rlc3RzL19faW5pdF9fLnB5Ci0vTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVy
L3Rlc3RzL2Jhc2UucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvdGVzdHMvdGVzdF9jaHVua2VyLnB5Ci0vTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIv
d3B0cnVubmVyL3Rlc3RzL3Rlc3RfZm9ybWF0dGVycy5weQotL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci90ZXN0cy90
ZXN0X3Byb2R1Y3RzLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3Rlc3RzL3Rlc3Rfc3RhYmlsaXR5LnB5Ci0v
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5u
ZXIvd3B0cnVubmVyL3Rlc3RzL3Rlc3RfdGVzdGxvYWRlci5weQotL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci90ZXN0
cy90ZXN0X3VwZGF0ZS5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci90ZXN0cy90ZXN0X3dwdHRlc3QucHkKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvd3B0cnVubmVyL3dwdHJ1bm5lci91cGRhdGUvX19pbml0X18ucHkgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIv
dXBkYXRlL19faW5pdF9fLnB5CmluZGV4IDlmZjNlNjlmOTRlZmJmM2U4MDNhOGE2NWM0NmQwOWMw
MjY5Y2EwNjMuLjI2MjYxODNmYzgwZGJjNzVkM2QyODVkZTc5YTdkMzg2ZjUzY2U2ZTMgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
d3B0cnVubmVyL3dwdHJ1bm5lci91cGRhdGUvX19pbml0X18ucHkKKysrIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVy
L3VwZGF0ZS9fX2luaXRfXy5weQpAQCAtNCw3ICs0LDcgQEAgZnJvbSBtb3psb2cuc3RydWN0dXJl
ZCBpbXBvcnQgc3RydWN0dXJlZGxvZywgY29tbWFuZGxpbmUKIAogZnJvbSAuLiBpbXBvcnQgd3B0
Y29tbWFuZGxpbmUKIAotZnJvbSB1cGRhdGUgaW1wb3J0IFdQVFVwZGF0ZQorZnJvbSAudXBkYXRl
IGltcG9ydCBXUFRVcGRhdGUKIAogZGVmIHJlbW92ZV9sb2dnaW5nX2FyZ3MoYXJncyk6CiAgICAg
IiIiVGFrZSBsb2dnaW5nIGFyZ3Mgb3V0IG9mIHRoZSBkaWN0aW9uYXJ5IG9mIGNvbW1hbmQgbGlu
ZSBhcmd1bWVudHMgc28KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci91cGRhdGUvbWV0YWRhdGEu
cHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dw
dHJ1bm5lci93cHRydW5uZXIvdXBkYXRlL21ldGFkYXRhLnB5CmluZGV4IDVjNDJmYTMyNjcxMTVk
MjgyMGViNjcwMjViODk4ODRmNzJmN2YzNDUuLjRiYzcwZDMxMTA0MGQzMzk3ZTFkMDEyMGFkODJk
NDAxMjQ3MDUxOTAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci91cGRhdGUvbWV0YWRhdGEucHkK
KysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93
cHRydW5uZXIvd3B0cnVubmVyL3VwZGF0ZS9tZXRhZGF0YS5weQpAQCAtMiwxNyArMiwxNCBAQCBp
bXBvcnQgb3MKIAogZnJvbSAuLiBpbXBvcnQgbWV0YWRhdGEsIHByb2R1Y3RzCiAKLWZyb20gYmFz
ZSBpbXBvcnQgU3RlcCwgU3RlcFJ1bm5lcgorZnJvbSAuYmFzZSBpbXBvcnQgU3RlcCwgU3RlcFJ1
bm5lcgogCiAKIGNsYXNzIEdldFVwZGF0ZVByb3BlcnR5TGlzdChTdGVwKToKLSAgICBwcm92aWRl
cyA9IFsicHJvcGVydHlfb3JkZXIiLCAiYm9vbGVhbl9wcm9wZXJ0aWVzIl0KKyAgICBwcm92aWRl
cyA9IFsidXBkYXRlX3Byb3BlcnRpZXMiXQogCiAgICAgZGVmIGNyZWF0ZShzZWxmLCBzdGF0ZSk6
Ci0gICAgICAgIHByb3BlcnR5X29yZGVyLCBib29sZWFuX3Byb3BlcnRpZXMgPSBwcm9kdWN0cy5s
b2FkX3Byb2R1Y3RfdXBkYXRlKAotICAgICAgICAgICAgc3RhdGUuY29uZmlnLCBzdGF0ZS5wcm9k
dWN0KQotICAgICAgICBzdGF0ZS5wcm9wZXJ0eV9vcmRlciA9IHByb3BlcnR5X29yZGVyICsgc3Rh
dGUuZXh0cmFfcHJvcGVydGllcwotICAgICAgICBzdGF0ZS5ib29sZWFuX3Byb3BlcnRpZXMgPSBi
b29sZWFuX3Byb3BlcnRpZXMKKyAgICAgICAgc3RhdGUudXBkYXRlX3Byb3BlcnRpZXMgPSBwcm9k
dWN0cy5sb2FkX3Byb2R1Y3RfdXBkYXRlKHN0YXRlLmNvbmZpZywgc3RhdGUucHJvZHVjdCkKIAog
CiBjbGFzcyBVcGRhdGVFeHBlY3RlZChTdGVwKToKQEAgLTI3LDEyICsyNCwxMyBAQCBjbGFzcyBV
cGRhdGVFeHBlY3RlZChTdGVwKToKICAgICAgICAgbWV0YWRhdGEudXBkYXRlX2V4cGVjdGVkKHN0
YXRlLnBhdGhzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGUuc2VydmVf
cm9vdCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRlLnJ1bl9sb2csCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1cGRhdGVfcHJvcGVydGllcz1zdGF0ZS51
cGRhdGVfcHJvcGVydGllcywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldl9v
bGQ9Tm9uZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlnbm9yZV9leGlzdGlu
Zz1zdGF0ZS5pZ25vcmVfZXhpc3RpbmcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBmdWxsX3VwZGF0ZT1zdGF0ZS5mdWxsX3VwZGF0ZSwKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHN5bmNfcm9vdD1zeW5jX3Jvb3QsCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBwcm9wZXJ0eV9vcmRlcj1zdGF0ZS5wcm9wZXJ0eV9vcmRlciwKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGJvb2xlYW5fcHJvcGVydGllcz1zdGF0ZS5ib29sZWFuX3By
b3BlcnRpZXMsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFiaWxpdHk9c3Rh
dGUuc3RhYmlsaXR5KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzYWJsZV9p
bnRlcm1pdHRlbnQ9c3RhdGUuZGlzYWJsZV9pbnRlcm1pdHRlbnQsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICB1cGRhdGVfaW50ZXJtaXR0ZW50PXN0YXRlLnVwZGF0ZV9pbnRlcm1p
dHRlbnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZW1vdmVfaW50ZXJtaXR0
ZW50PXN0YXRlLnJlbW92ZV9pbnRlcm1pdHRlbnQpCiAKIAogY2xhc3MgQ3JlYXRlTWV0YWRhdGFQ
YXRjaChTdGVwKToKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci91cGRhdGUvc3RhdGUucHkgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5l
ci93cHRydW5uZXIvdXBkYXRlL3N0YXRlLnB5CmluZGV4IGRjNDU5ZGE3ZTJlNWE2YjVkZmQwODhi
NzExZTRmYTljN2Q2OTNhZjkuLjY0ZGJmMTE4MDYwNGNkOGRmN2E0NjhlMDM2NDQ3Zjk1YjgwMzcx
YjAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci91cGRhdGUvc3RhdGUucHkKKysrIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0
cnVubmVyL3VwZGF0ZS9zdGF0ZS5weQpAQCAtMSwxMSArMSw5IEBACiBpbXBvcnQgb3MKLWltcG9y
dCBjUGlja2xlIGFzIHBpY2tsZQorZnJvbSBzaXgubW92ZXMgaW1wb3J0IGNQaWNrbGUgYXMgcGlj
a2xlICAjIG5vcWE6IE44MTMKIAogaGVyZSA9IG9zLnBhdGguYWJzcGF0aChvcy5wYXRoLnNwbGl0
KF9fZmlsZV9fKVswXSkKIAotY2xhc3MgU3RhdGUob2JqZWN0KToKLSAgICBmaWxlbmFtZSA9IG9z
LnBhdGguam9pbihoZXJlLCAiLndwdC11cGRhdGUubG9jayIpCi0KK2NsYXNzIEJhc2VTdGF0ZShv
YmplY3QpOgogICAgIGRlZiBfX25ld19fKGNscywgbG9nZ2VyKToKICAgICAgICAgcnYgPSBjbHMu
bG9hZChsb2dnZXIpCiAgICAgICAgIGlmIHJ2IGlzIG5vdCBOb25lOgpAQCAtMTgsMTEgKzE2LDYg
QEAgY2xhc3MgU3RhdGUob2JqZWN0KToKICAgICBkZWYgX19pbml0X18oc2VsZiwgbG9nZ2VyKToK
ICAgICAgICAgIiIiT2JqZWN0IGNvbnRhaW5pbmcgc3RhdGUgdmFyaWFibGVzIGNyZWF0ZWQgd2hl
biBydW5uaW5nIFN0ZXBzLgogCi0gICAgICAgIE9uIHdyaXRlIHRoZSBzdGF0ZSBpcyBzZXJpYWxp
emVkIHRvIGRpc2ssIHN1Y2ggdGhhdCBpdCBjYW4gYmUgcmVzdG9yZWQgaW4KLSAgICAgICAgdGhl
IGV2ZW50IHRoYXQgdGhlIHByb2dyYW0gaXMgaW50ZXJydXB0ZWQgYmVmb3JlIGFsbCBzdGVwcyBh
cmUgY29tcGxldGUuCi0gICAgICAgIE5vdGUgdGhhdCB0aGlzIG9ubHkgd29ya3Mgd2VsbCBpZiB0
aGUgdmFsdWVzIGFyZSBpbW11dGFibGU7IG11dGF0aW5nIGFuCi0gICAgICAgIGV4aXN0aW5nIHZh
bHVlIHdpbGwgbm90IGNhdXNlIHRoZSBkYXRhIHRvIGJlIHNlcmlhbGl6ZWQuCi0KICAgICAgICAg
VmFyaWFibGVzIGFyZSBzZXQgYW5kIGdldCBhcyBhdHRyaWJ1dGVzIGUuZy4gc3RhdGVfb2JqLnNw
YW0gPSAiZWdncyIuCiAKICAgICAgICAgOnBhcmFtIHBhcmVudDogUGFyZW50IFN0YXRlIG9iamVj
dCBvciBOb25lIGlmIHRoaXMgaXMgdGhlIHJvb3Qgb2JqZWN0LgpAQCAtNDAsMjMgKzMzLDYgQEAg
Y2xhc3MgU3RhdGUob2JqZWN0KToKICAgICAgICAgZGVsIHJ2WyJfbG9nZ2VyIl0KICAgICAgICAg
cmV0dXJuIHJ2CiAKLSAgICBAY2xhc3NtZXRob2QKLSAgICBkZWYgbG9hZChjbHMsIGxvZ2dlcik6
Ci0gICAgICAgICIiIkxvYWQgc2F2ZWQgc3RhdGUgZnJvbSBhIGZpbGUiIiIKLSAgICAgICAgdHJ5
OgotICAgICAgICAgICAgaWYgbm90IG9zLnBhdGguaXNmaWxlKGNscy5maWxlbmFtZSk6Ci0gICAg
ICAgICAgICAgICAgcmV0dXJuIE5vbmUKLSAgICAgICAgICAgIHdpdGggb3BlbihjbHMuZmlsZW5h
bWUpIGFzIGY6Ci0gICAgICAgICAgICAgICAgdHJ5OgotICAgICAgICAgICAgICAgICAgICBydiA9
IHBpY2tsZS5sb2FkKGYpCi0gICAgICAgICAgICAgICAgICAgIGxvZ2dlci5kZWJ1ZygiTG9hZGlu
ZyBkYXRhICVyIiAlIChydi5fZGF0YSwpKQotICAgICAgICAgICAgICAgICAgICBydi5fbG9nZ2Vy
ID0gbG9nZ2VyCi0gICAgICAgICAgICAgICAgICAgIHJ2Ll9pbmRleCA9IDAKLSAgICAgICAgICAg
ICAgICAgICAgcmV0dXJuIHJ2Ci0gICAgICAgICAgICAgICAgZXhjZXB0IEVPRkVycm9yOgotICAg
ICAgICAgICAgICAgICAgICBsb2dnZXIud2FybmluZygiRm91bmQgZW1wdHkgc3RhdGUgZmlsZSIp
Ci0gICAgICAgIGV4Y2VwdCBJT0Vycm9yOgotICAgICAgICAgICAgbG9nZ2VyLmRlYnVnKCJJT0Vy
cm9yIGxvYWRpbmcgc3RvcmVkIHN0YXRlIikKIAogICAgIGRlZiBwdXNoKHNlbGYsIGluaXRfdmFs
dWVzKToKICAgICAgICAgIiIiUHVzaCBhIG5ldyBjbGVhbiBzdGF0ZSBkaWN0aW9uYXJ5CkBAIC02
NiwyMyArNDIsMTMgQEAgY2xhc3MgU3RhdGUob2JqZWN0KToKIAogICAgICAgICByZXR1cm4gU3Rh
dGVDb250ZXh0KHNlbGYsIGluaXRfdmFsdWVzKQogCi0gICAgZGVmIHNhdmUoc2VsZik6Ci0gICAg
ICAgICIiIldyaXRlIHRoZSBzdGF0ZSB0byBkaXNrIiIiCi0gICAgICAgIHdpdGggb3BlbihzZWxm
LmZpbGVuYW1lLCAidyIpIGFzIGY6Ci0gICAgICAgICAgICBwaWNrbGUuZHVtcChzZWxmLCBmKQot
CiAgICAgZGVmIGlzX2VtcHR5KHNlbGYpOgogICAgICAgICByZXR1cm4gbGVuKHNlbGYuX2RhdGEp
ID09IDEgYW5kIHNlbGYuX2RhdGFbMF0gPT0ge30KIAogICAgIGRlZiBjbGVhcihzZWxmKToKICAg
ICAgICAgIiIiUmVtb3ZlIGFsbCBzdGF0ZSBhbmQgZGVsZXRlIHRoZSBzdG9yZWQgY29weS4iIiIK
LSAgICAgICAgdHJ5OgotICAgICAgICAgICAgb3MudW5saW5rKHNlbGYuZmlsZW5hbWUpCi0gICAg
ICAgIGV4Y2VwdCBPU0Vycm9yOgotICAgICAgICAgICAgcGFzcwogICAgICAgICBzZWxmLl9kYXRh
ID0gW3t9XQogCi0KICAgICBkZWYgX19zZXRhdHRyX18oc2VsZiwga2V5LCB2YWx1ZSk6CiAgICAg
ICAgIGlmIGtleS5zdGFydHN3aXRoKCJfIik6CiAgICAgICAgICAgICBvYmplY3QuX19zZXRhdHRy
X18oc2VsZiwga2V5LCB2YWx1ZSkKQEAgLTEwOSw2ICs3NSw2MiBAQCBjbGFzcyBTdGF0ZShvYmpl
Y3QpOgogICAgIGRlZiBrZXlzKHNlbGYpOgogICAgICAgICByZXR1cm4gc2VsZi5fZGF0YVtzZWxm
Ll9pbmRleF0ua2V5cygpCiAKKworICAgIEBjbGFzc21ldGhvZAorICAgIGRlZiBsb2FkKGNscyk6
CisgICAgICAgIHJhaXNlIE5vdEltcGxlbWVudGVkRXJyb3IKKworICAgIGRlZiBzYXZlKHNlbGYp
OgorICAgICAgICByYWlzZSBOb3RJbXBsZW1lbnRlZEVycm9yCisKKworY2xhc3MgU2F2ZWRTdGF0
ZShCYXNlU3RhdGUpOgorICAgICIiIk9uIHdyaXRlIHRoZSBzdGF0ZSBpcyBzZXJpYWxpemVkIHRv
IGRpc2ssIHN1Y2ggdGhhdCBpdCBjYW4gYmUgcmVzdG9yZWQgaW4KKyAgICAgICB0aGUgZXZlbnQg
dGhhdCB0aGUgcHJvZ3JhbSBpcyBpbnRlcnJ1cHRlZCBiZWZvcmUgYWxsIHN0ZXBzIGFyZSBjb21w
bGV0ZS4KKyAgICAgICBOb3RlIHRoYXQgdGhpcyBvbmx5IHdvcmtzIHdlbGwgaWYgdGhlIHZhbHVl
cyBhcmUgaW1tdXRhYmxlOyBtdXRhdGluZyBhbgorICAgICAgIGV4aXN0aW5nIHZhbHVlIHdpbGwg
bm90IGNhdXNlIHRoZSBkYXRhIHRvIGJlIHNlcmlhbGl6ZWQuIiIiCisgICAgZmlsZW5hbWUgPSBv
cy5wYXRoLmpvaW4oaGVyZSwgIi53cHQtdXBkYXRlLmxvY2siKQorCisgICAgQGNsYXNzbWV0aG9k
CisgICAgZGVmIGxvYWQoY2xzLCBsb2dnZXIpOgorICAgICAgICAiIiJMb2FkIHNhdmVkIHN0YXRl
IGZyb20gYSBmaWxlIiIiCisgICAgICAgIHRyeToKKyAgICAgICAgICAgIGlmIG5vdCBvcy5wYXRo
LmlzZmlsZShjbHMuZmlsZW5hbWUpOgorICAgICAgICAgICAgICAgIHJldHVybiBOb25lCisgICAg
ICAgICAgICB3aXRoIG9wZW4oY2xzLmZpbGVuYW1lKSBhcyBmOgorICAgICAgICAgICAgICAgIHRy
eToKKyAgICAgICAgICAgICAgICAgICAgcnYgPSBwaWNrbGUubG9hZChmKQorICAgICAgICAgICAg
ICAgICAgICBsb2dnZXIuZGVidWcoIkxvYWRpbmcgZGF0YSAlciIgJSAocnYuX2RhdGEsKSkKKyAg
ICAgICAgICAgICAgICAgICAgcnYuX2xvZ2dlciA9IGxvZ2dlcgorICAgICAgICAgICAgICAgICAg
ICBydi5faW5kZXggPSAwCisgICAgICAgICAgICAgICAgICAgIHJldHVybiBydgorICAgICAgICAg
ICAgICAgIGV4Y2VwdCBFT0ZFcnJvcjoKKyAgICAgICAgICAgICAgICAgICAgbG9nZ2VyLndhcm5p
bmcoIkZvdW5kIGVtcHR5IHN0YXRlIGZpbGUiKQorICAgICAgICBleGNlcHQgSU9FcnJvcjoKKyAg
ICAgICAgICAgIGxvZ2dlci5kZWJ1ZygiSU9FcnJvciBsb2FkaW5nIHN0b3JlZCBzdGF0ZSIpCisK
KyAgICBkZWYgc2F2ZShzZWxmKToKKyAgICAgICAgIiIiV3JpdGUgdGhlIHN0YXRlIHRvIGRpc2si
IiIKKyAgICAgICAgd2l0aCBvcGVuKHNlbGYuZmlsZW5hbWUsICJ3IikgYXMgZjoKKyAgICAgICAg
ICAgIHBpY2tsZS5kdW1wKHNlbGYsIGYpCisKKyAgICBkZWYgY2xlYXIoc2VsZik6CisgICAgICAg
IHN1cGVyKFNhdmVkU3RhdGUsIHNlbGYpLmNsZWFyKCkKKyAgICAgICAgdHJ5OgorICAgICAgICAg
ICAgb3MudW5saW5rKHNlbGYuZmlsZW5hbWUpCisgICAgICAgIGV4Y2VwdCBPU0Vycm9yOgorICAg
ICAgICAgICAgcGFzcworCisKK2NsYXNzIFVuc2F2ZWRTdGF0ZShCYXNlU3RhdGUpOgorICAgIEBj
bGFzc21ldGhvZAorICAgIGRlZiBsb2FkKGNscywgbG9nZ2VyKToKKyAgICAgICAgcmV0dXJuIE5v
bmUKKworICAgIGRlZiBzYXZlKHNlbGYpOgorICAgICAgICByZXR1cm4KKworCiBjbGFzcyBTdGF0
ZUNvbnRleHQob2JqZWN0KToKICAgICBkZWYgX19pbml0X18oc2VsZiwgc3RhdGUsIGluaXRfdmFs
dWVzKToKICAgICAgICAgc2VsZi5zdGF0ZSA9IHN0YXRlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5u
ZXIvdXBkYXRlL3N5bmMucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvdXBkYXRlL3N5bmMucHkKaW5kZXggYzJk
MGJmYTdmMGQ2OWYzNWRlZGU4N2UzMjU1YWNiMDQxMmQ4OGRiNy4uMGQ3NWExMjMyZmMwY2JhOWZi
ZDZlOGEzMzYzYWRlYTA0NzVkZDQzNiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3VwZGF0ZS9z
eW5jLnB5CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci91cGRhdGUvc3luYy5weQpAQCAtNSw4ICs1LDggQEAg
aW1wb3J0IHNodXRpbAogaW1wb3J0IHN5cwogaW1wb3J0IHV1aWQKIAotZnJvbSBiYXNlIGltcG9y
dCBTdGVwLCBTdGVwUnVubmVyCi1mcm9tIHRyZWUgaW1wb3J0IENvbW1pdAorZnJvbSAuYmFzZSBp
bXBvcnQgU3RlcCwgU3RlcFJ1bm5lcgorZnJvbSAudHJlZSBpbXBvcnQgQ29tbWl0CiAKIGhlcmUg
PSBvcy5wYXRoLmFic3BhdGgob3MucGF0aC5zcGxpdChfX2ZpbGVfXylbMF0pCiAKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0
cnVubmVyL3dwdHJ1bm5lci91cGRhdGUvdXBkYXRlLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3VwZGF0ZS91
cGRhdGUucHkKaW5kZXggNTY4NWY4NDA2NzBjZGI4MmQwNGU1YzRhOTc5ODVhYzMzZmM4N2FhOS4u
OTYzMDJlZTI2N2U5MDVhYThhNDhhZjEyYjY1OTc4ZTAyNWViZDQ5MiAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIv
d3B0cnVubmVyL3VwZGF0ZS91cGRhdGUucHkKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3VwZGF0ZS91cGRh
dGUucHkKQEAgLTEsMTYgKzEsMTYgQEAKIGltcG9ydCBvcwogaW1wb3J0IHN5cwogCi1mcm9tIG1l
dGFkYXRhIGltcG9ydCBNZXRhZGF0YVVwZGF0ZVJ1bm5lcgotZnJvbSBzeW5jIGltcG9ydCBTeW5j
RnJvbVVwc3RyZWFtUnVubmVyCi1mcm9tIHRyZWUgaW1wb3J0IEdpdFRyZWUsIEhnVHJlZSwgTm9W
Q1NUcmVlCitmcm9tIC5tZXRhZGF0YSBpbXBvcnQgTWV0YWRhdGFVcGRhdGVSdW5uZXIKK2Zyb20g
LnN5bmMgaW1wb3J0IFN5bmNGcm9tVXBzdHJlYW1SdW5uZXIKK2Zyb20gLnRyZWUgaW1wb3J0IEdp
dFRyZWUsIEhnVHJlZSwgTm9WQ1NUcmVlCiAKLWZyb20gYmFzZSBpbXBvcnQgU3RlcCwgU3RlcFJ1
bm5lciwgZXhpdF9jbGVhbiwgZXhpdF91bmNsZWFuCi1mcm9tIHN0YXRlIGltcG9ydCBTdGF0ZQor
ZnJvbSAuYmFzZSBpbXBvcnQgU3RlcCwgU3RlcFJ1bm5lciwgZXhpdF9jbGVhbiwgZXhpdF91bmNs
ZWFuCitmcm9tIC5zdGF0ZSBpbXBvcnQgU2F2ZWRTdGF0ZSwgVW5zYXZlZFN0YXRlCiAKIGRlZiBz
ZXR1cF9wYXRocyhzeW5jX3BhdGgpOgogICAgIHN5cy5wYXRoLmluc2VydCgwLCBvcy5wYXRoLmFi
c3BhdGgoc3luY19wYXRoKSkKLSAgICBmcm9tIHRvb2xzIGltcG9ydCBsb2NhbHBhdGhzICAjIG5v
cWE6IGZsYWtlOAorICAgIGZyb20gdG9vbHMgaW1wb3J0IGxvY2FscGF0aHMgICMgbm9xYTogRjQw
MQogCiBjbGFzcyBMb2FkQ29uZmlnKFN0ZXApOgogICAgICIiIlN0ZXAgZm9yIGxvYWRpbmcgY29u
ZmlndXJhdGlvbiBmcm9tIHRoZSBpbmkgZmlsZSBhbmQga3dhcmdzLiIiIgpAQCAtODUsMjIgKzg1
LDUxIEBAIGNsYXNzIFVwZGF0ZU1ldGFkYXRhKFN0ZXApOgogICAgICAgICBrd2FyZ3MgPSBzdGF0
ZS5rd2FyZ3MKICAgICAgICAgd2l0aCBzdGF0ZS5wdXNoKFsibG9jYWxfdHJlZSIsICJzeW5jX3Ry
ZWUiLCAicGF0aHMiLCAic2VydmVfcm9vdCJdKToKICAgICAgICAgICAgIHN0YXRlLnJ1bl9sb2cg
PSBrd2FyZ3NbInJ1bl9sb2ciXQotICAgICAgICAgICAgc3RhdGUuaWdub3JlX2V4aXN0aW5nID0g
a3dhcmdzWyJpZ25vcmVfZXhpc3RpbmciXQotICAgICAgICAgICAgc3RhdGUuc3RhYmlsaXR5ID0g
a3dhcmdzWyJzdGFiaWxpdHkiXQorICAgICAgICAgICAgc3RhdGUuZGlzYWJsZV9pbnRlcm1pdHRl
bnQgPSBrd2FyZ3NbImRpc2FibGVfaW50ZXJtaXR0ZW50Il0KKyAgICAgICAgICAgIHN0YXRlLnVw
ZGF0ZV9pbnRlcm1pdHRlbnQgPSBrd2FyZ3NbInVwZGF0ZV9pbnRlcm1pdHRlbnQiXQorICAgICAg
ICAgICAgc3RhdGUucmVtb3ZlX2ludGVybWl0dGVudCA9IGt3YXJnc1sicmVtb3ZlX2ludGVybWl0
dGVudCJdCiAgICAgICAgICAgICBzdGF0ZS5wYXRjaCA9IGt3YXJnc1sicGF0Y2giXQogICAgICAg
ICAgICAgc3RhdGUuc3VpdGVfbmFtZSA9IGt3YXJnc1sic3VpdGVfbmFtZSJdCiAgICAgICAgICAg
ICBzdGF0ZS5wcm9kdWN0ID0ga3dhcmdzWyJwcm9kdWN0Il0KICAgICAgICAgICAgIHN0YXRlLmNv
bmZpZyA9IGt3YXJnc1siY29uZmlnIl0KKyAgICAgICAgICAgIHN0YXRlLmZ1bGxfdXBkYXRlID0g
a3dhcmdzWyJmdWxsIl0KICAgICAgICAgICAgIHN0YXRlLmV4dHJhX3Byb3BlcnRpZXMgPSBrd2Fy
Z3NbImV4dHJhX3Byb3BlcnR5Il0KICAgICAgICAgICAgIHJ1bm5lciA9IE1ldGFkYXRhVXBkYXRl
UnVubmVyKHNlbGYubG9nZ2VyLCBzdGF0ZSkKICAgICAgICAgICAgIHJ1bm5lci5ydW4oKQogCiAK
K2NsYXNzIFJlbW92ZU9ic29sZXRlKFN0ZXApOgorICAgICIiIlJlbW92ZSBtZXRhZGF0YSBmaWxl
cyB0aGF0IGRvbid0IGNvcmVzcG9uZCB0byBhbiBleGlzdGluZyB0ZXN0IGZpbGUiIiIKKworICAg
IGRlZiBjcmVhdGUoc2VsZiwgc3RhdGUpOgorICAgICAgICBpZiBub3Qgc3RhdGUua3dhcmdzWyJy
ZW1vdmVfb2Jzb2xldGUiXToKKyAgICAgICAgICAgIHJldHVybgorCisgICAgICAgIHBhdGhzID0g
c3RhdGUua3dhcmdzWyJ0ZXN0X3BhdGhzIl0KKyAgICAgICAgc3RhdGUudGVzdHNfcGF0aCA9IHN0
YXRlLnBhdGhzWyIvIl1bInRlc3RzX3BhdGgiXQorICAgICAgICBzdGF0ZS5tZXRhZGF0YV9wYXRo
ID0gc3RhdGUucGF0aHNbIi8iXVsibWV0YWRhdGFfcGF0aCJdCisKKyAgICAgICAgZm9yIHVybF9w
YXRocyBpbiBwYXRocy5pdGVydmFsdWVzKCk6CisgICAgICAgICAgICB0ZXN0c19wYXRoID0gdXJs
X3BhdGhzWyJ0ZXN0c19wYXRoIl0KKyAgICAgICAgICAgIG1ldGFkYXRhX3BhdGggPSB1cmxfcGF0
aHNbIm1ldGFkYXRhX3BhdGgiXQorICAgICAgICAgICAgZm9yIGRpcnBhdGgsIGRpcm5hbWVzLCBm
aWxlbmFtZXMgaW4gb3Mud2FsayhtZXRhZGF0YV9wYXRoKToKKyAgICAgICAgICAgICAgICBmb3Ig
ZmlsZW5hbWUgaW4gZmlsZW5hbWVzOgorICAgICAgICAgICAgICAgICAgICBpZiBmaWxlbmFtZSA9
PSAiX19kaXJfXy5pbmkiOgorICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWUKKyAgICAg
ICAgICAgICAgICAgICAgaWYgZmlsZW5hbWUuZW5kc3dpdGgoIi5pbmkiKToKKyAgICAgICAgICAg
ICAgICAgICAgICAgIGZ1bGxfcGF0aCA9IG9zLnBhdGguam9pbihkaXJwYXRoLCBmaWxlbmFtZSkK
KyAgICAgICAgICAgICAgICAgICAgICAgIHJlbF9wYXRoID0gb3MucGF0aC5yZWxwYXRoKGZ1bGxf
cGF0aCwgbWV0YWRhdGFfcGF0aCkKKyAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RfcGF0aCA9
IG9zLnBhdGguam9pbih0ZXN0c19wYXRoLCByZWxfcGF0aFs6LTRdKQorICAgICAgICAgICAgICAg
ICAgICAgICAgaWYgbm90IG9zLnBhdGguZXhpc3RzKHRlc3RfcGF0aCk6CisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgb3MudW5saW5rKGZ1bGxfcGF0aCkKKworCiBjbGFzcyBVcGRhdGVSdW5u
ZXIoU3RlcFJ1bm5lcik6CiAgICAgIiIiUnVubmVyIGZvciBkb2luZyBhbiBvdmVyYWxsIHVwZGF0
ZS4iIiIKICAgICBzdGVwcyA9IFtMb2FkQ29uZmlnLAogICAgICAgICAgICAgIExvYWRUcmVlcywK
ICAgICAgICAgICAgICBTeW5jRnJvbVVwc3RyZWFtLAorICAgICAgICAgICAgIFJlbW92ZU9ic29s
ZXRlLAogICAgICAgICAgICAgIFVwZGF0ZU1ldGFkYXRhXQogCiAKQEAgLTEyMiw3ICsxNTEsMTAg
QEAgY2xhc3MgV1BUVXBkYXRlKG9iamVjdCk6CiAgICAgICAgICAgICAgICAgIyBJZiB0aGUgc3lu
YyBwYXRoIGRvZXNuJ3QgZXhpc3Qgd2UgZGVmZXIgdGhpcyB1bnRpbCBpdCBkb2VzCiAgICAgICAg
ICAgICAgICAgc2V0dXBfcGF0aHMoa3dhcmdzWyJzeW5jX3BhdGgiXSkKIAotICAgICAgICBzZWxm
LnN0YXRlID0gU3RhdGUobG9nZ2VyKQorICAgICAgICBpZiBrd2FyZ3MuZ2V0KCJzdG9yZV9zdGF0
ZSIsIEZhbHNlKToKKyAgICAgICAgICAgIHNlbGYuc3RhdGUgPSBTYXZlZFN0YXRlKGxvZ2dlcikK
KyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHNlbGYuc3RhdGUgPSBVbnNhdmVkU3RhdGUobG9n
Z2VyKQogICAgICAgICBzZWxmLmt3YXJncyA9IGt3YXJncwogICAgICAgICBzZWxmLmxvZ2dlciA9
IGxvZ2dlcgogCkBAIC0xMzIsNyArMTY0LDcgQEAgY2xhc3MgV1BUVXBkYXRlKG9iamVjdCk6CiAg
ICAgICAgICAgICByZXR1cm4gZXhpdF9jbGVhbgogCiAgICAgICAgIGlmIG5vdCBzZWxmLmt3YXJn
c1siY29udGludWUiXSBhbmQgbm90IHNlbGYuc3RhdGUuaXNfZW1wdHkoKToKLSAgICAgICAgICAg
IHNlbGYubG9nZ2VyLmVycm9yKCJGb3VuZCBleGlzdGluZyBzdGF0ZS4gUnVuIHdpdGggLS1jb250
aW51ZSB0byByZXN1bWUgb3IgLS1hYm9ydCB0byBjbGVhciBzdGF0ZSIpCisgICAgICAgICAgICBz
ZWxmLmxvZ2dlci5jcml0aWNhbCgiRm91bmQgZXhpc3Rpbmcgc3RhdGUuIFJ1biB3aXRoIC0tY29u
dGludWUgdG8gcmVzdW1lIG9yIC0tYWJvcnQgdG8gY2xlYXIgc3RhdGUiKQogICAgICAgICAgICAg
cmV0dXJuIGV4aXRfdW5jbGVhbgogCiAgICAgICAgIGlmIHNlbGYua3dhcmdzWyJjb250aW51ZSJd
OgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3VwZGF0ZS93M2MtaW1wb3J0LmxvZyBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dw
dHJ1bm5lci91cGRhdGUvdzNjLWltcG9ydC5sb2cKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IGIwOWEzOWFhMDlhZjU5OTc1MDQ2OGVlM2Q0YzcyOTgwMTkyOWI1MjYuLjAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3VwZGF0ZS93
M2MtaW1wb3J0LmxvZworKysgL2Rldi9udWxsCkBAIC0xLDIzICswLDAgQEAKLVRoZSB0ZXN0cyBp
biB0aGlzIGRpcmVjdG9yeSB3ZXJlIGltcG9ydGVkIGZyb20gdGhlIFczQyByZXBvc2l0b3J5Lgot
RG8gTk9UIG1vZGlmeSB0aGVzZSB0ZXN0cyBkaXJlY3RseSBpbiBXZWJLaXQuCi1JbnN0ZWFkLCBj
cmVhdGUgYSBwdWxsIHJlcXVlc3Qgb24gdGhlIFdQVCBnaXRodWI6Ci0JaHR0cHM6Ly9naXRodWIu
Y29tL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQKLQotVGhlbiBydW4gdGhlIFRvb2xzL1NjcmlwdHMv
aW1wb3J0LXczYy10ZXN0cyBpbiBXZWJLaXQgdG8gcmVpbXBvcnQKLQotRG8gTk9UIG1vZGlmeSBv
ciByZW1vdmUgdGhpcyBmaWxlLgotCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLVByb3BlcnRpZXMgcmVxdWly
aW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLVByb3BlcnR5IHZhbHVlcyByZXF1aXJpbmcgdmVu
ZG9yIHByZWZpeGVzOgotTm9uZQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1MaXN0IG9mIGZpbGVzOgotL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVy
L3dwdHJ1bm5lci91cGRhdGUvX19pbml0X18ucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvdXBkYXRlL2Jhc2Uu
cHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dw
dHJ1bm5lci93cHRydW5uZXIvdXBkYXRlL21ldGFkYXRhLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3VwZGF0
ZS9zdGF0ZS5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci91cGRhdGUvc3luYy5weQotL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci91
cGRhdGUvdHJlZS5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci91cGRhdGUvdXBkYXRlLnB5CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1
bm5lci93cHRydW5uZXIvdzNjLWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvdzNjLWltcG9ydC5s
b2cKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGU0YzM2ZmUzMWZjNjNjMWE3ZjhjZTMx
OGNhYjJiZDcwOWM0M2QyYTIuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy93cHRydW5uZXIvd3B0cnVubmVyL3czYy1pbXBvcnQubG9nCisrKyAvZGV2L251bGwKQEAgLTEs
NDIgKzAsMCBAQAotVGhlIHRlc3RzIGluIHRoaXMgZGlyZWN0b3J5IHdlcmUgaW1wb3J0ZWQgZnJv
bSB0aGUgVzNDIHJlcG9zaXRvcnkuCi1EbyBOT1QgbW9kaWZ5IHRoZXNlIHRlc3RzIGRpcmVjdGx5
IGluIFdlYktpdC4KLUluc3RlYWQsIGNyZWF0ZSBhIHB1bGwgcmVxdWVzdCBvbiB0aGUgV1BUIGdp
dGh1YjoKLQlodHRwczovL2dpdGh1Yi5jb20vd2ViLXBsYXRmb3JtLXRlc3RzL3dwdAotCi1UaGVu
IHJ1biB0aGUgVG9vbHMvU2NyaXB0cy9pbXBvcnQtdzNjLXRlc3RzIGluIFdlYktpdCB0byByZWlt
cG9ydAotCi1EbyBOT1QgbW9kaWZ5IG9yIHJlbW92ZSB0aGlzIGZpbGUuCi0KLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLQotUHJvcGVydGllcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotUHJvcGVy
dHkgdmFsdWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0KLUxpc3Qgb2YgZmlsZXM6Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL19faW5pdF9fLnB5Ci0vTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVu
bmVyL2NvbmZpZy5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9lbnZpcm9ubWVudC5weQotL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5l
ci9leHBlY3RlZC5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9mb250LnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2Zvcm1h
dHRlcnMucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3dwdHJ1bm5lci93cHRydW5uZXIvbWFuaWZlc3RleHBlY3RlZC5weQotL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5l
ci9tYW5pZmVzdGluY2x1ZGUucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvbWFuaWZlc3R1cGRhdGUucHkKLS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5l
ci93cHRydW5uZXIvbWV0YWRhdGEucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvcHJvZHVjdHMucHkKLS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93
cHRydW5uZXIvc3RhYmlsaXR5LnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3Rlc3Rkcml2ZXItZXh0cmEuanMK
LS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1
bm5lci93cHRydW5uZXIvdGVzdGRyaXZlci12ZW5kb3IuanMKLS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvdGVzdGhh
cm5lc3NfcnVubmVyLmh0bWwKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvdGVzdGhhcm5lc3NyZXBvcnQtc2Vydm8u
anMKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dw
dHJ1bm5lci93cHRydW5uZXIvdGVzdGhhcm5lc3NyZXBvcnQtc2Vydm9kcml2ZXIuanMKLS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93
cHRydW5uZXIvdGVzdGhhcm5lc3NyZXBvcnQuanMKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvdGVzdGxvYWRlci5w
eQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0
cnVubmVyL3dwdHJ1bm5lci90ZXN0cnVubmVyLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3Zjcy5weQotL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVy
L3dwdHJ1bm5lci93ZWJkcml2ZXJfc2VydmVyLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3dwdGNvbW1hbmRs
aW5lLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy93cHRydW5uZXIvd3B0cnVubmVyL3dwdGxvZ2dpbmcucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvd3B0cnVu
bmVyLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy93cHRydW5uZXIvd3B0cnVubmVyL3dwdHRlc3QucHkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5l
ci93ZWJkcml2ZXJfc2VydmVyLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3dlYmRyaXZlcl9zZXJ2ZXIucHkK
aW5kZXggOWVjZDAwOWE3ZDgxMjdlZDc5M2Q0ZWYwYWZmMTlmNjE2MWJiZDFlYy4uMTYyZmZhZTNm
YzkzYWVlYjI5YTI1MzVlODI5YWY0NWI5ZTE1YzFmMyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVy
L3dlYmRyaXZlcl9zZXJ2ZXIucHkKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3dlYmRyaXZlcl9zZXJ2ZXIu
cHkKQEAgLTksOCArOSw5IEBAIGltcG9ydCB0cmFjZWJhY2sKIGltcG9ydCBtb3pwcm9jZXNzCiAK
IAotX19hbGxfXyA9IFsiU2VsZW5pdW1TZXJ2ZXIiLCAiQ2hyb21lRHJpdmVyU2VydmVyIiwgIk9w
ZXJhRHJpdmVyU2VydmVyIiwKLSAgICAgICAgICAgIkdlY2tvRHJpdmVyU2VydmVyIiwgIkludGVy
bmV0RXhwbG9yZXJEcml2ZXJTZXJ2ZXIiLCAiRWRnZURyaXZlclNlcnZlciIsCitfX2FsbF9fID0g
WyJTZWxlbml1bVNlcnZlciIsICJDaHJvbWVEcml2ZXJTZXJ2ZXIiLCAiQ1dUQ2hyb21lRHJpdmVy
U2VydmVyIiwKKyAgICAgICAgICAgIkVkZ2VDaHJvbWl1bURyaXZlclNlcnZlciIsICJPcGVyYURy
aXZlclNlcnZlciIsICJHZWNrb0RyaXZlclNlcnZlciIsCisgICAgICAgICAgICJJbnRlcm5ldEV4
cGxvcmVyRHJpdmVyU2VydmVyIiwgIkVkZ2VEcml2ZXJTZXJ2ZXIiLAogICAgICAgICAgICAiU2Vy
dm9Ecml2ZXJTZXJ2ZXIiLCAiV2ViS2l0RHJpdmVyU2VydmVyIiwgIldlYkRyaXZlclNlcnZlciJd
CiAKIApAQCAtMTgsNyArMTksNiBAQCBjbGFzcyBXZWJEcml2ZXJTZXJ2ZXIob2JqZWN0KToKICAg
ICBfX21ldGFjbGFzc19fID0gYWJjLkFCQ01ldGEKIAogICAgIGRlZmF1bHRfYmFzZV9wYXRoID0g
Ii8iCi0gICAgX3VzZWRfcG9ydHMgPSBzZXQoKQogCiAgICAgZGVmIF9faW5pdF9fKHNlbGYsIGxv
Z2dlciwgYmluYXJ5LCBob3N0PSIxMjcuMC4wLjEiLCBwb3J0PU5vbmUsCiAgICAgICAgICAgICAg
ICAgIGJhc2VfcGF0aD0iIiwgZW52PU5vbmUsIGFyZ3M9Tm9uZSk6CkBAIC04MSw4ICs4MSwxMiBA
QCBjbGFzcyBXZWJEcml2ZXJTZXJ2ZXIob2JqZWN0KToKICAgICAgICAgICAgIHNlbGYuX3Byb2Mu
d2FpdCgpCiAKICAgICBkZWYgc3RvcChzZWxmLCBmb3JjZT1GYWxzZSk6CisgICAgICAgIHNlbGYu
bG9nZ2VyLmRlYnVnKCJTdG9wcGluZyBXZWJEcml2ZXIiKQogICAgICAgICBpZiBzZWxmLmlzX2Fs
aXZlOgotICAgICAgICAgICAgcmV0dXJuIHNlbGYuX3Byb2Mua2lsbCgpCisgICAgICAgICAgICBr
aWxsX3Jlc3VsdCA9IHNlbGYuX3Byb2Mua2lsbCgpCisgICAgICAgICAgICBpZiBmb3JjZSBhbmQg
a2lsbF9yZXN1bHQgIT0gMDoKKyAgICAgICAgICAgICAgICByZXR1cm4gc2VsZi5fcHJvYy5raWxs
KDkpCisgICAgICAgICAgICByZXR1cm4ga2lsbF9yZXN1bHQKICAgICAgICAgcmV0dXJuIG5vdCBz
ZWxmLmlzX2FsaXZlCiAKICAgICBAcHJvcGVydHkKQEAgLTEwNiwxNSArMTEwLDkgQEAgY2xhc3Mg
V2ViRHJpdmVyU2VydmVyKG9iamVjdCk6CiAgICAgQHByb3BlcnR5CiAgICAgZGVmIHBvcnQoc2Vs
Zik6CiAgICAgICAgIGlmIHNlbGYuX3BvcnQgaXMgTm9uZToKLSAgICAgICAgICAgIHNlbGYuX3Bv
cnQgPSBzZWxmLl9maW5kX25leHRfZnJlZV9wb3J0KCkKKyAgICAgICAgICAgIHNlbGYuX3BvcnQg
PSBnZXRfZnJlZV9wb3J0KCkKICAgICAgICAgcmV0dXJuIHNlbGYuX3BvcnQKIAotICAgIEBzdGF0
aWNtZXRob2QKLSAgICBkZWYgX2ZpbmRfbmV4dF9mcmVlX3BvcnQoKToKLSAgICAgICAgcG9ydCA9
IGdldF9mcmVlX3BvcnQoNDQ0NCwgZXhjbHVkZT1XZWJEcml2ZXJTZXJ2ZXIuX3VzZWRfcG9ydHMp
Ci0gICAgICAgIFdlYkRyaXZlclNlcnZlci5fdXNlZF9wb3J0cy5hZGQocG9ydCkKLSAgICAgICAg
cmV0dXJuIHBvcnQKLQogCiBjbGFzcyBTZWxlbml1bVNlcnZlcihXZWJEcml2ZXJTZXJ2ZXIpOgog
ICAgIGRlZmF1bHRfYmFzZV9wYXRoID0gIi93ZC9odWIiCkBAIC0xMzQsNiArMTMyLDI1IEBAIGNs
YXNzIENocm9tZURyaXZlclNlcnZlcihXZWJEcml2ZXJTZXJ2ZXIpOgogICAgICAgICAgICAgICAg
IGNtZF9hcmcoInBvcnQiLCBzdHIoc2VsZi5wb3J0KSksCiAgICAgICAgICAgICAgICAgY21kX2Fy
ZygidXJsLWJhc2UiLCBzZWxmLmJhc2VfcGF0aCkgaWYgc2VsZi5iYXNlX3BhdGggZWxzZSAiIl0g
KyBzZWxmLl9hcmdzCiAKK2NsYXNzIENXVENocm9tZURyaXZlclNlcnZlcihXZWJEcml2ZXJTZXJ2
ZXIpOgorICAgIGRlZiBfX2luaXRfXyhzZWxmLCBsb2dnZXIsIGJpbmFyeSwgcG9ydD1Ob25lLCBh
cmdzPU5vbmUpOgorICAgICAgICBXZWJEcml2ZXJTZXJ2ZXIuX19pbml0X18oc2VsZiwgbG9nZ2Vy
LCBiaW5hcnksIHBvcnQ9cG9ydCwgYXJncz1hcmdzKQorCisgICAgZGVmIG1ha2VfY29tbWFuZChz
ZWxmKToKKyAgICAgICAgcmV0dXJuIFtzZWxmLmJpbmFyeSwKKyAgICAgICAgICAgICAgICAiLS1w
b3J0PSVzIiAlIHN0cihzZWxmLnBvcnQpXSArIHNlbGYuX2FyZ3MKKworY2xhc3MgRWRnZUNocm9t
aXVtRHJpdmVyU2VydmVyKFdlYkRyaXZlclNlcnZlcik6CisgICAgZGVmIF9faW5pdF9fKHNlbGYs
IGxvZ2dlciwgYmluYXJ5PSJtc2VkZ2Vkcml2ZXIiLCBwb3J0PU5vbmUsCisgICAgICAgICAgICAg
ICAgIGJhc2VfcGF0aD0iIiwgYXJncz1Ob25lKToKKyAgICAgICAgV2ViRHJpdmVyU2VydmVyLl9f
aW5pdF9fKAorICAgICAgICAgICAgc2VsZiwgbG9nZ2VyLCBiaW5hcnksIHBvcnQ9cG9ydCwgYmFz
ZV9wYXRoPWJhc2VfcGF0aCwgYXJncz1hcmdzKQorCisgICAgZGVmIG1ha2VfY29tbWFuZChzZWxm
KToKKyAgICAgICAgcmV0dXJuIFtzZWxmLmJpbmFyeSwKKyAgICAgICAgICAgICAgICBjbWRfYXJn
KCJwb3J0Iiwgc3RyKHNlbGYucG9ydCkpLAorICAgICAgICAgICAgICAgIGNtZF9hcmcoInVybC1i
YXNlIiwgc2VsZi5iYXNlX3BhdGgpIGlmIHNlbGYuYmFzZV9wYXRoIGVsc2UgIiJdICsgc2VsZi5f
YXJncworCiBjbGFzcyBFZGdlRHJpdmVyU2VydmVyKFdlYkRyaXZlclNlcnZlcik6CiAgICAgZGVm
IF9faW5pdF9fKHNlbGYsIGxvZ2dlciwgYmluYXJ5PSJtaWNyb3NvZnR3ZWJkcml2ZXIuZXhlIiwg
cG9ydD1Ob25lLAogICAgICAgICAgICAgICAgICBiYXNlX3BhdGg9IiIsIGhvc3Q9ImxvY2FsaG9z
dCIsIGFyZ3M9Tm9uZSk6CkBAIC0xOTcsNyArMjE0LDcgQEAgY2xhc3MgU2Vydm9Ecml2ZXJTZXJ2
ZXIoV2ViRHJpdmVyU2VydmVyKToKIAogICAgIGRlZiBtYWtlX2NvbW1hbmQoc2VsZik6CiAgICAg
ICAgIGNvbW1hbmQgPSBbc2VsZi5iaW5hcnksCi0gICAgICAgICAgICAgICAgICAgIi0td2ViZHJp
dmVyIiwgc3RyKHNlbGYucG9ydCksCisgICAgICAgICAgICAgICAgICAgIi0td2ViZHJpdmVyPSVz
IiAlIHNlbGYucG9ydCwKICAgICAgICAgICAgICAgICAgICAiLS1oYXJkLWZhaWwiLAogICAgICAg
ICAgICAgICAgICAgICItLWhlYWRsZXNzIl0gKyBzZWxmLl9hcmdzCiAgICAgICAgIGlmIHNlbGYu
YmluYXJ5X2FyZ3M6CkBAIC0yMjEsMjkgKzIzOCwyMSBAQCBkZWYgY21kX2FyZyhuYW1lLCB2YWx1
ZT1Ob25lKToKICAgICByZXR1cm4gcnYKIAogCi1kZWYgZ2V0X2ZyZWVfcG9ydChzdGFydF9wb3J0
LCBleGNsdWRlPU5vbmUpOgotICAgICIiIkdldCB0aGUgZmlyc3QgcG9ydCBudW1iZXIgYWZ0ZXIg
c3RhcnRfcG9ydCAoaW5jbHVzaXZlKSB0aGF0IGlzCi0gICAgbm90IGN1cnJlbnRseSBib3VuZC4K
LQotICAgIDpwYXJhbSBzdGFydF9wb3J0OiBJbnRlZ2VyIHBvcnQgbnVtYmVyIGF0IHdoaWNoIHRv
IHN0YXJ0IHRlc3RpbmcuCi0gICAgOnBhcmFtIGV4Y2x1ZGU6IFNldCBvZiBwb3J0IG51bWJlcnMg
dG8gc2tpcCIiIgotICAgIHBvcnQgPSBzdGFydF9wb3J0CitkZWYgZ2V0X2ZyZWVfcG9ydCgpOgor
ICAgICIiIkdldCBhIHJhbmRvbSB1bmJvdW5kIHBvcnQiIiIKICAgICB3aGlsZSBUcnVlOgotICAg
ICAgICBpZiBleGNsdWRlIGFuZCBwb3J0IGluIGV4Y2x1ZGU6Ci0gICAgICAgICAgICBwb3J0ICs9
IDEKLSAgICAgICAgICAgIGNvbnRpbnVlCiAgICAgICAgIHMgPSBzb2NrZXQuc29ja2V0KCkKICAg
ICAgICAgdHJ5OgotICAgICAgICAgICAgcy5iaW5kKCgiMTI3LjAuMC4xIiwgcG9ydCkpCisgICAg
ICAgICAgICBzLmJpbmQoKCIxMjcuMC4wLjEiLCAwKSkKICAgICAgICAgZXhjZXB0IHNvY2tldC5l
cnJvcjoKLSAgICAgICAgICAgIHBvcnQgKz0gMQorICAgICAgICAgICAgY29udGludWUKICAgICAg
ICAgZWxzZToKLSAgICAgICAgICAgIHJldHVybiBwb3J0CisgICAgICAgICAgICByZXR1cm4gcy5n
ZXRzb2NrbmFtZSgpWzFdCiAgICAgICAgIGZpbmFsbHk6CiAgICAgICAgICAgICBzLmNsb3NlKCkK
IAogCi1kZWYgd2FpdF9mb3Jfc2VydmljZShhZGRyLCB0aW1lb3V0PTE1KToKK2RlZiB3YWl0X2Zv
cl9zZXJ2aWNlKGFkZHIsIHRpbWVvdXQ9NjApOgogICAgICIiIldhaXRzIHVudGlsIG5ldHdvcmsg
c2VydmljZSBnaXZlbiBhcyBhIHR1cGxlIG9mIChob3N0LCBwb3J0KSBiZWNvbWVzCiAgICAgYXZh
aWxhYmxlIG9yIHRoZSBgdGltZW91dGAgZHVyYXRpb24gaXMgcmVhY2hlZCwgYXQgd2hpY2ggcG9p
bnQKICAgICBgYHNvY2tldC5lcnJvcmBgIGlzIHJhaXNlZC4iIiIKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dw
dHJ1bm5lci93cHRjb21tYW5kbGluZS5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci93cHRjb21tYW5kbGluZS5w
eQppbmRleCA3ZTE4YThiNDM3OWIzMzhlN2I2ZGI2NWIxN2NhMzYzYTgzY2IxYzg5Li45MjNiZGFh
NTU4NTdlNzkzZThkNmU4YzU4NzE2NzM2MGFlZDRhZTk0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5u
ZXIvd3B0Y29tbWFuZGxpbmUucHkKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3dwdGNvbW1hbmRsaW5lLnB5
CkBAIC0xLDE0ICsxLDE1IEBACitmcm9tIF9fZnV0dXJlX18gaW1wb3J0IHByaW50X2Z1bmN0aW9u
CiBpbXBvcnQgYXJncGFyc2UKIGltcG9ydCBvcwogaW1wb3J0IHN5cwogZnJvbSBjb2xsZWN0aW9u
cyBpbXBvcnQgT3JkZXJlZERpY3QKIGZyb20gZGlzdHV0aWxzLnNwYXduIGltcG9ydCBmaW5kX2V4
ZWN1dGFibGUKIGZyb20gZGF0ZXRpbWUgaW1wb3J0IHRpbWVkZWx0YQorZnJvbSBzaXggaW1wb3J0
IGl0ZXJrZXlzLCBpdGVydmFsdWVzLCBpdGVyaXRlbXMKIAotaW1wb3J0IGNvbmZpZwotaW1wb3J0
IHdwdHRlc3QKLWltcG9ydCBmb3JtYXR0ZXJzCi0KK2Zyb20gLiBpbXBvcnQgY29uZmlnCitmcm9t
IC4gaW1wb3J0IHdwdHRlc3QKK2Zyb20gLmZvcm1hdHRlcnMgaW1wb3J0IGNocm9taXVtLCB3cHRy
ZXBvcnQsIHdwdHNjcmVlbnNob3QKIAogZGVmIGFic19wYXRoKHBhdGgpOgogICAgIHJldHVybiBv
cy5wYXRoLmFic3BhdGgob3MucGF0aC5leHBhbmR1c2VyKHBhdGgpKQpAQCAtMjksNyArMzAsNyBA
QCBkZWYgcmVxdWlyZV9hcmcoa3dhcmdzLCBuYW1lLCB2YWx1ZV9mdW5jPU5vbmUpOgogICAgICAg
ICB2YWx1ZV9mdW5jID0gbGFtYmRhIHg6IHggaXMgbm90IE5vbmUKIAogICAgIGlmIG5hbWUgbm90
IGluIGt3YXJncyBvciBub3QgdmFsdWVfZnVuYyhrd2FyZ3NbbmFtZV0pOgotICAgICAgICBwcmlu
dCA+PiBzeXMuc3RkZXJyLCAiTWlzc2luZyByZXF1aXJlZCBhcmd1bWVudCAlcyIgJSBuYW1lCisg
ICAgICAgIHByaW50KCJNaXNzaW5nIHJlcXVpcmVkIGFyZ3VtZW50ICVzIiAlIG5hbWUsIGZpbGU9
c3lzLnN0ZGVycikKICAgICAgICAgc3lzLmV4aXQoMSkKIAogCkBAIC01Myw2ICs1NCw4IEBAIHNj
aGVtZSBob3N0IGFuZCBwb3J0LiIiIikKICAgICAgICAgICAgICAgICAgICAgICAgIGhlbHA9IlBy
ZXZlbnQgcmVnZW5lcmF0aW9uIG9mIHRoZSB0ZXN0IG1hbmlmZXN0LiIpCiAgICAgcGFyc2VyLmFk
ZF9hcmd1bWVudCgiLS1tYW5pZmVzdC1kb3dubG9hZCIsIGFjdGlvbj0ic3RvcmVfdHJ1ZSIsIGRl
ZmF1bHQ9Tm9uZSwKICAgICAgICAgICAgICAgICAgICAgICAgIGhlbHA9IkF0dGVtcHQgdG8gZG93
bmxvYWQgYSBwcmVleGlzdGluZyBtYW5pZmVzdCB3aGVuIHVwZGF0aW5nLiIpCisgICAgcGFyc2Vy
LmFkZF9hcmd1bWVudCgiLS1uby1tYW5pZmVzdC1kb3dubG9hZCIsIGFjdGlvbj0ic3RvcmVfZmFs
c2UiLCBkZXN0PSJtYW5pZmVzdF9kb3dubG9hZCIsCisgICAgICAgICAgICAgICAgICAgICAgICBo
ZWxwPSJQcmV2ZW50IGRvd25sb2FkIG9mIHRoZSB0ZXN0IG1hbmlmZXN0LiIpCiAKICAgICBwYXJz
ZXIuYWRkX2FyZ3VtZW50KCItLXRpbWVvdXQtbXVsdGlwbGllciIsIGFjdGlvbj0ic3RvcmUiLCB0
eXBlPWZsb2F0LCBkZWZhdWx0PU5vbmUsCiAgICAgICAgICAgICAgICAgICAgICAgICBoZWxwPSJN
dWx0aXBsaWVyIHJlbGF0aXZlIHRvIHN0YW5kYXJkIHRlc3QgdGltZW91dCB0byB1c2UiKQpAQCAt
MTM3LDYgKzE0MCwxMSBAQCBzY2hlbWUgaG9zdCBhbmQgcG9ydC4iIiIpCiAgICAgdGVzdF9zZWxl
Y3Rpb25fZ3JvdXAuYWRkX2FyZ3VtZW50KCItLXRhZyIsIGFjdGlvbj0iYXBwZW5kIiwgZGVzdD0i
dGFncyIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlbHA9IkxhYmVs
cyBhcHBsaWVkIHRvIHRlc3RzIHRvIGluY2x1ZGUgaW4gdGhlIHJ1bi4gIgogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJMYWJlbHMgc3RhcnRpbmcgZGlyOiBhcmUg
ZXF1aXZhbGVudCB0byB0b3AtbGV2ZWwgZGlyZWN0b3JpZXMuIikKKyAgICB0ZXN0X3NlbGVjdGlv
bl9ncm91cC5hZGRfYXJndW1lbnQoIi0tZGVmYXVsdC1leGNsdWRlIiwgYWN0aW9uPSJzdG9yZV90
cnVlIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdD1GYWxz
ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVscD0iT25seSBydW4g
dGhlIHRlc3RzIGV4cGxpY2l0bHkgZ2l2ZW4gaW4gYXJndW1lbnRzLiAiCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIk5vIHRlc3RzIHdpbGwgcnVuIGlmIHRoZSBs
aXN0IGlzIGVtcHR5LCBhbmQgdGhlICIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAicHJvZ3JhbSB3aWxsIGV4aXQgd2l0aCBzdGF0dXMgY29kZSAwLiIpCiAKICAg
ICBkZWJ1Z2dpbmdfZ3JvdXAgPSBwYXJzZXIuYWRkX2FyZ3VtZW50X2dyb3VwKCJEZWJ1Z2dpbmci
KQogICAgIGRlYnVnZ2luZ19ncm91cC5hZGRfYXJndW1lbnQoJy0tZGVidWdnZXInLCBjb25zdD0i
X19kZWZhdWx0X18iLCBuYXJncz0iPyIsCkBAIC0xOTIsNiArMjAwLDEyIEBAIHNjaGVtZSBob3N0
IGFuZCBwb3J0LiIiIikKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlbHA9IlBhdGgg
dG8gZGlyZWN0b3J5IGNvbnRhaW5pbmcgZXh0cmEganNvbiBmaWxlcyB0byBhZGQgdG8gcnVuIGlu
Zm8iKQogICAgIGNvbmZpZ19ncm91cC5hZGRfYXJndW1lbnQoIi0tcHJvZHVjdCIsIGFjdGlvbj0i
c3RvcmUiLCBjaG9pY2VzPXByb2R1Y3RfY2hvaWNlcywKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGRlZmF1bHQ9Tm9uZSwgaGVscD0iQnJvd3NlciBhZ2FpbnN0IHdoaWNoIHRvIHJ1biB0
ZXN0cyIpCisgICAgY29uZmlnX2dyb3VwLmFkZF9hcmd1bWVudCgiLS1icm93c2VyLXZlcnNpb24i
LCBhY3Rpb249InN0b3JlIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ9
Tm9uZSwgaGVscD0iSW5mb3JtYXRpdmUgc3RyaW5nIGRldGFpbGluZyB0aGUgYnJvd3NlciAiCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAicmVsZWFzZSB2ZXJzaW9uLiBUaGlzIGlzIGlu
Y2x1ZGVkIGluIHRoZSBydW5faW5mbyBkYXRhLiIpCisgICAgY29uZmlnX2dyb3VwLmFkZF9hcmd1
bWVudCgiLS1icm93c2VyLWNoYW5uZWwiLCBhY3Rpb249InN0b3JlIiwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGRlZmF1bHQ9Tm9uZSwgaGVscD0iSW5mb3JtYXRpdmUgc3RyaW5nIGRl
dGFpbGluZyB0aGUgYnJvd3NlciAiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAicmVs
ZWFzZSBjaGFubmVsLiBUaGlzIGlzIGluY2x1ZGVkIGluIHRoZSBydW5faW5mbyBkYXRhLiIpCiAg
ICAgY29uZmlnX2dyb3VwLmFkZF9hcmd1bWVudCgiLS1jb25maWciLCBhY3Rpb249InN0b3JlIiwg
dHlwZT1hYnNfcGF0aCwgZGVzdD0iY29uZmlnIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGhlbHA9IlBhdGggdG8gY29uZmlnIGZpbGUiKQogICAgIGNvbmZpZ19ncm91cC5hZGRfYXJn
dW1lbnQoIi0taW5zdGFsbC1mb250cyIsIGFjdGlvbj0ic3RvcmVfdHJ1ZSIsCkBAIC0xOTksNiAr
MjEzLDEwIEBAIHNjaGVtZSBob3N0IGFuZCBwb3J0LiIiIikKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGhlbHA9IkFsbG93IHRoZSB3cHRydW5uZXIgdG8gaW5zdGFsbCBmb250cyBvbiB5
b3VyIHN5c3RlbSIpCiAgICAgY29uZmlnX2dyb3VwLmFkZF9hcmd1bWVudCgiLS1mb250LWRpciIs
IGFjdGlvbj0ic3RvcmUiLCB0eXBlPWFic19wYXRoLCBkZXN0PSJmb250X2RpciIsCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBoZWxwPSJQYXRoIHRvIGxvY2FsIGZvbnQgaW5zdGFsbGF0
aW9uIGRpcmVjdG9yeSIsIGRlZmF1bHQ9Tm9uZSkKKyAgICBjb25maWdfZ3JvdXAuYWRkX2FyZ3Vt
ZW50KCItLWhlYWRsZXNzIiwgYWN0aW9uPSJzdG9yZV90cnVlIiwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGhlbHA9IlJ1biBicm93c2VyIGluIGhlYWRsZXNzIG1vZGUiLCBkZWZhdWx0
PU5vbmUpCisgICAgY29uZmlnX2dyb3VwLmFkZF9hcmd1bWVudCgiLS1uby1oZWFkbGVzcyIsIGFj
dGlvbj0ic3RvcmVfZmFsc2UiLCBkZXN0PSJoZWFkbGVzcyIsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBoZWxwPSJEb24ndCBydW4gYnJvd3NlciBpbiBoZWFkbGVzcyBtb2RlIikKIAog
ICAgIGJ1aWxkX3R5cGUgPSBwYXJzZXIuYWRkX211dHVhbGx5X2V4Y2x1c2l2ZV9ncm91cCgpCiAg
ICAgYnVpbGRfdHlwZS5hZGRfYXJndW1lbnQoIi0tZGVidWctYnVpbGQiLCBkZXN0PSJkZWJ1ZyIs
IGFjdGlvbj0ic3RvcmVfdHJ1ZSIsCkBAIC0yMTQsNyArMjMyLDcgQEAgc2NoZW1lIGhvc3QgYW5k
IHBvcnQuIiIiKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWxwPSJUb3RhbCBu
dW1iZXIgb2YgY2h1bmtzIHRvIHVzZSIpCiAgICAgY2h1bmtpbmdfZ3JvdXAuYWRkX2FyZ3VtZW50
KCItLXRoaXMtY2h1bmsiLCBhY3Rpb249InN0b3JlIiwgdHlwZT1pbnQsIGRlZmF1bHQ9MSwKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVscD0iQ2h1bmsgbnVtYmVyIHRvIHJ1biIp
Ci0gICAgY2h1bmtpbmdfZ3JvdXAuYWRkX2FyZ3VtZW50KCItLWNodW5rLXR5cGUiLCBhY3Rpb249
InN0b3JlIiwgY2hvaWNlcz1bIm5vbmUiLCAiZXF1YWxfdGltZSIsICJoYXNoIiwgImRpcl9oYXNo
Il0sCisgICAgY2h1bmtpbmdfZ3JvdXAuYWRkX2FyZ3VtZW50KCItLWNodW5rLXR5cGUiLCBhY3Rp
b249InN0b3JlIiwgY2hvaWNlcz1bIm5vbmUiLCAiaGFzaCIsICJkaXJfaGFzaCJdLAogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZhdWx0PU5vbmUsIGhlbHA9IkNodW5raW5nIHR5
cGUgdG8gdXNlIikKIAogICAgIHNzbF9ncm91cCA9IHBhcnNlci5hZGRfYXJndW1lbnRfZ3JvdXAo
IlNTTC9UTFMiKQpAQCAtMjM5LDEzICsyNTcsMjAgQEAgc2NoZW1lIGhvc3QgYW5kIHBvcnQuIiIi
KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWxwPSJQYXRoIHRvIHRoZSBmb2xkZXIg
Y29udGFpbmluZyBicm93c2VyIHByZWZzIikKICAgICBnZWNrb19ncm91cC5hZGRfYXJndW1lbnQo
Ii0tZGlzYWJsZS1lMTBzIiwgZGVzdD0iZ2Vja29fZTEwcyIsIGFjdGlvbj0ic3RvcmVfZmFsc2Ui
LCBkZWZhdWx0PVRydWUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlbHA9IlJ1biB0
ZXN0cyB3aXRob3V0IGVsZWN0cm9seXNpcyBwcmVmZXJlbmNlcyIpCisgICAgZ2Vja29fZ3JvdXAu
YWRkX2FyZ3VtZW50KCItLWVuYWJsZS13ZWJyZW5kZXIiLCBkZXN0PSJlbmFibGVfd2VicmVuZGVy
IiwgYWN0aW9uPSJzdG9yZV90cnVlIiwgZGVmYXVsdD1Ob25lLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBoZWxwPSJFbmFibGUgdGhlIFdlYlJlbmRlciBjb21wb3NpdG9yIGluIEdlY2tv
IChkZWZhdWx0cyB0byBkaXNhYmxlZCkuIikKKyAgICBnZWNrb19ncm91cC5hZGRfYXJndW1lbnQo
Ii0tbm8tZW5hYmxlLXdlYnJlbmRlciIsIGRlc3Q9ImVuYWJsZV93ZWJyZW5kZXIiLCBhY3Rpb249
InN0b3JlX2ZhbHNlIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVscD0iRGlzYWJs
ZSB0aGUgV2ViUmVuZGVyIGNvbXBvc2l0b3IgaW4gR2Vja28uIikKICAgICBnZWNrb19ncm91cC5h
ZGRfYXJndW1lbnQoIi0tc3RhY2tmaXgtZGlyIiwgZGVzdD0ic3RhY2tmaXhfZGlyIiwgYWN0aW9u
PSJzdG9yZSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlbHA9IlBhdGggdG8gZGly
ZWN0b3J5IGNvbnRhaW5pbmcgYXNzZXJ0aW9uIHN0YWNrIGZpeGluZyBzY3JpcHRzIikKICAgICBn
ZWNrb19ncm91cC5hZGRfYXJndW1lbnQoIi0tc2V0cHJlZiIsIGRlc3Q9ImV4dHJhX3ByZWZzIiwg
YWN0aW9uPSdhcHBlbmQnLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZhdWx0PVtd
LCBtZXRhdmFyPSJQUkVGPVZBTFVFIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVs
cD0iRGVmaW5lcyBhbiBleHRyYSB1c2VyIHByZWZlcmVuY2UgKG92ZXJyaWRlcyB0aG9zZSBpbiBw
cmVmc19yb290KSIpCi0gICAgZ2Vja29fZ3JvdXAuYWRkX2FyZ3VtZW50KCItLWxlYWstY2hlY2si
LCBkZXN0PSJsZWFrX2NoZWNrIiwgYWN0aW9uPSJzdG9yZV90cnVlIiwKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgaGVscD0iRW5hYmxlIGxlYWsgY2hlY2tpbmciKQorICAgIGdlY2tvX2dy
b3VwLmFkZF9hcmd1bWVudCgiLS1sZWFrLWNoZWNrIiwgZGVzdD0ibGVha19jaGVjayIsIGFjdGlv
bj0ic3RvcmVfdHJ1ZSIsIGRlZmF1bHQ9Tm9uZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgaGVscD0iRW5hYmxlIGxlYWsgY2hlY2tpbmcgKGVuYWJsZWQgYnkgZGVmYXVsdCBmb3IgZGVi
dWcgYnVpbGRzLCAiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJzaWxlbnRseSBpZ25v
cmVkIGZvciBvcHQsIG1vYmlsZSkiKQorICAgIGdlY2tvX2dyb3VwLmFkZF9hcmd1bWVudCgiLS1u
by1sZWFrLWNoZWNrIiwgZGVzdD0ibGVha19jaGVjayIsIGFjdGlvbj0ic3RvcmVfZmFsc2UiLCBk
ZWZhdWx0PU5vbmUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlbHA9IkRpc2FibGUg
bGVhayBjaGVja2luZyIpCiAgICAgZ2Vja29fZ3JvdXAuYWRkX2FyZ3VtZW50KCItLXN0eWxvLXRo
cmVhZHMiLCBhY3Rpb249InN0b3JlIiwgdHlwZT1pbnQsIGRlZmF1bHQ9MSwKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgaGVscD0iTnVtYmVyIG9mIHBhcmFsbGVsIHRocmVhZHMgdG8gdXNl
IGZvciBzdHlsbyIpCiAgICAgZ2Vja29fZ3JvdXAuYWRkX2FyZ3VtZW50KCItLXJlZnRlc3QtaW50
ZXJuYWwiLCBkZXN0PSJyZWZ0ZXN0X2ludGVybmFsIiwgYWN0aW9uPSJzdG9yZV90cnVlIiwKQEAg
LTI1Myw3ICsyNzgsNyBAQCBzY2hlbWUgaG9zdCBhbmQgcG9ydC4iIiIpCiAgICAgZ2Vja29fZ3Jv
dXAuYWRkX2FyZ3VtZW50KCItLXJlZnRlc3QtZXh0ZXJuYWwiLCBkZXN0PSJyZWZ0ZXN0X2ludGVy
bmFsIiwgYWN0aW9uPSJzdG9yZV9mYWxzZSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGhlbHA9IkRpc2FibGUgcmVmdGVzdCBydW5uZXIgaW1wbGVtZW50ZWQgaW5zaWRlIE1hcmlvbmV0
dGUiKQogICAgIGdlY2tvX2dyb3VwLmFkZF9hcmd1bWVudCgiLS1yZWZ0ZXN0LXNjcmVlbnNob3Qi
LCBkZXN0PSJyZWZ0ZXN0X3NjcmVlbnNob3QiLCBhY3Rpb249InN0b3JlIiwKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgY2hvaWNlcz1bImFsd2F5cyIsICJmYWlsIiwgInVuZXhwZWN0ZWQi
XSwgZGVmYXVsdD0idW5leHBlY3RlZCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNo
b2ljZXM9WyJhbHdheXMiLCAiZmFpbCIsICJ1bmV4cGVjdGVkIl0sIGRlZmF1bHQ9Tm9uZSwKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVscD0iV2l0aCAtLXJlZnRlc3QtaW50ZXJuYWws
IHdoZW4gdG8gdGFrZSBhIHNjcmVlbnNob3QiKQogICAgIGdlY2tvX2dyb3VwLmFkZF9hcmd1bWVu
dCgiLS1jaGFvcyIsIGRlc3Q9ImNoYW9zX21vZGVfZmxhZ3MiLCBhY3Rpb249InN0b3JlIiwKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFyZ3M9Ij8iLCBjb25zdD0weEZGRkZGRkZGLCB0
eXBlPWludCwKQEAgLTI4Nyw2ICszMTIsMTUgQEAgc2NoZW1lIGhvc3QgYW5kIHBvcnQuIiIiKQog
ICAgIHNhdWNlX2dyb3VwLmFkZF9hcmd1bWVudCgiLS1zYXVjZS1jb25uZWN0LWJpbmFyeSIsCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlc3Q9InNhdWNlX2Nvbm5lY3RfYmluYXJ5IiwK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVscD0iUGF0aCB0byBTYXVjZSBDb25uZWN0
IGJpbmFyeSIpCisgICAgc2F1Y2VfZ3JvdXAuYWRkX2FyZ3VtZW50KCItLXNhdWNlLWluaXQtdGlt
ZW91dCIsIGFjdGlvbj0ic3RvcmUiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBl
PWludCwgZGVmYXVsdD0zMCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVscD0iTnVt
YmVyIG9mIHNlY29uZHMgdG8gd2FpdCBmb3IgU2F1Y2UgIgorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICJDb25uZWN0IHR1bm5lbCB0byBiZSBhdmFpbGFibGUgYmVmb3JlICIKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiYWJvcnRpbmciKQorICAgIHNhdWNlX2dy
b3VwLmFkZF9hcmd1bWVudCgiLS1zYXVjZS1jb25uZWN0LWFyZyIsIGFjdGlvbj0iYXBwZW5kIiwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdD1bXSwgZGVzdD0ic2F1Y2VfY29u
bmVjdF9hcmdzIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVscD0iQ29tbWFuZC1s
aW5lIGFyZ3VtZW50IHRvIGZvcndhcmQgdG8gdGhlICIKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAiU2F1Y2UgQ29ubmVjdCBiaW5hcnkgKHJlcGVhdGFibGUpIikKIAogICAgIHdl
YmtpdF9ncm91cCA9IHBhcnNlci5hZGRfYXJndW1lbnRfZ3JvdXAoIldlYktpdC1zcGVjaWZpYyIp
CiAgICAgd2Via2l0X2dyb3VwLmFkZF9hcmd1bWVudCgiLS13ZWJraXQtcG9ydCIsIGRlc3Q9Indl
YmtpdF9wb3J0IiwKQEAgLTI5Niw3ICszMzAsMTcgQEAgc2NoZW1lIGhvc3QgYW5kIHBvcnQuIiIi
KQogICAgICAgICAgICAgICAgICAgICAgICAgaGVscD0iTGlzdCBvZiBVUkxzIGZvciB0ZXN0cyB0
byBydW4sIG9yIHBhdGhzIGluY2x1ZGluZyB0ZXN0cyB0byBydW4uICIKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIihlcXVpdmFsZW50IHRvIC0taW5jbHVkZSkiKQogCi0gICAgY29tbWFu
ZGxpbmUubG9nX2Zvcm1hdHRlcnNbIndwdHJlcG9ydCJdID0gKGZvcm1hdHRlcnMuV3B0cmVwb3J0
Rm9ybWF0dGVyLCAid3B0cmVwb3J0IGZvcm1hdCIpCisgICAgZGVmIHNjcmVlbnNob3RfYXBpX3dy
YXBwZXIoZm9ybWF0dGVyLCBhcGkpOgorICAgICAgICBmb3JtYXR0ZXIuYXBpID0gYXBpCisgICAg
ICAgIHJldHVybiBmb3JtYXR0ZXIKKworICAgIGNvbW1hbmRsaW5lLmZtdF9vcHRpb25zWyJhcGki
XSA9IChzY3JlZW5zaG90X2FwaV93cmFwcGVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAiQ2FjaGUgQVBJIChkZWZhdWx0OiAlcykiICUgd3B0c2NyZWVuc2hvdC5ERUZB
VUxUX0FQSSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyJ3cHRzY3Jl
ZW5zaG90In0sICJzdG9yZSIpCisKKyAgICBjb21tYW5kbGluZS5sb2dfZm9ybWF0dGVyc1siY2hy
b21pdW0iXSA9IChjaHJvbWl1bS5DaHJvbWl1bUZvcm1hdHRlciwgIkNocm9taXVtIExheW91dCBU
ZXN0cyBmb3JtYXQiKQorICAgIGNvbW1hbmRsaW5lLmxvZ19mb3JtYXR0ZXJzWyJ3cHRyZXBvcnQi
XSA9ICh3cHRyZXBvcnQuV3B0cmVwb3J0Rm9ybWF0dGVyLCAid3B0cmVwb3J0IGZvcm1hdCIpCisg
ICAgY29tbWFuZGxpbmUubG9nX2Zvcm1hdHRlcnNbIndwdHNjcmVlbnNob3QiXSA9ICh3cHRzY3Jl
ZW5zaG90LldwdHNjcmVlbnNob3RGb3JtYXR0ZXIsICJ3cHQuZnlpIHNjcmVlbnNob3RzIikKIAog
ICAgIGNvbW1hbmRsaW5lLmFkZF9sb2dnaW5nX2dyb3VwKHBhcnNlcikKICAgICByZXR1cm4gcGFy
c2VyCkBAIC0zMjMsNyArMzY3LDcgQEAgZGVmIHNldF9mcm9tX2NvbmZpZyhrd2FyZ3MpOgogICAg
ICAgICAgICAgICAgICAgICAoImhvc3RfY2VydF9wYXRoIiwgImhvc3RfY2VydF9wYXRoIiwgVHJ1
ZSksCiAgICAgICAgICAgICAgICAgICAgICgiaG9zdF9rZXlfcGF0aCIsICJob3N0X2tleV9wYXRo
IiwgVHJ1ZSldfQogCi0gICAgZm9yIHNlY3Rpb24sIHZhbHVlcyBpbiBrZXlzLml0ZXJpdGVtcygp
OgorICAgIGZvciBzZWN0aW9uLCB2YWx1ZXMgaW4gaXRlcml0ZW1zKGtleXMpOgogICAgICAgICBm
b3IgY29uZmlnX3ZhbHVlLCBrd192YWx1ZSwgaXNfcGF0aCBpbiB2YWx1ZXM6CiAgICAgICAgICAg
ICBpZiBrd192YWx1ZSBpbiBrd2FyZ3MgYW5kIGt3YXJnc1trd192YWx1ZV0gaXMgTm9uZToKICAg
ICAgICAgICAgICAgICBpZiBub3QgaXNfcGF0aDoKQEAgLTM1NCwxMSArMzk4LDEyIEBAIGRlZiBz
ZXRfZnJvbV9jb25maWcoa3dhcmdzKToKIAogICAgIGNoZWNrX3BhdGhzKGt3YXJncykKIAorCiBk
ZWYgZ2V0X3Rlc3RfcGF0aHMoY29uZmlnKToKICAgICAjIFNldCB1cCB0ZXN0X3BhdGhzCiAgICAg
dGVzdF9wYXRocyA9IE9yZGVyZWREaWN0KCkKIAotICAgIGZvciBzZWN0aW9uIGluIGNvbmZpZy5p
dGVya2V5cygpOgorICAgIGZvciBzZWN0aW9uIGluIGl0ZXJrZXlzKGNvbmZpZyk6CiAgICAgICAg
IGlmIHNlY3Rpb24uc3RhcnRzd2l0aCgibWFuaWZlc3Q6Iik6CiAgICAgICAgICAgICBtYW5pZmVz
dF9vcHRzID0gY29uZmlnLmdldChzZWN0aW9uKQogICAgICAgICAgICAgdXJsX2Jhc2UgPSBtYW5p
ZmVzdF9vcHRzLmdldCgidXJsX2Jhc2UiLCAiLyIpCkBAIC0zODQsMTUgKzQyOSwxNSBAQCBkZWYg
ZXhlX3BhdGgobmFtZSk6CiAKIAogZGVmIGNoZWNrX3BhdGhzKGt3YXJncyk6Ci0gICAgZm9yIHRl
c3RfcGF0aHMgaW4ga3dhcmdzWyJ0ZXN0X3BhdGhzIl0uaXRlcnZhbHVlcygpOgorICAgIGZvciB0
ZXN0X3BhdGhzIGluIGl0ZXJ2YWx1ZXMoa3dhcmdzWyJ0ZXN0X3BhdGhzIl0pOgogICAgICAgICBp
ZiBub3QgKCJ0ZXN0c19wYXRoIiBpbiB0ZXN0X3BhdGhzIGFuZAogICAgICAgICAgICAgICAgICJt
ZXRhZGF0YV9wYXRoIiBpbiB0ZXN0X3BhdGhzKToKLSAgICAgICAgICAgIHByaW50ICJGYXRhbDog
bXVzdCBzcGVjaWZ5IGJvdGggYSB0ZXN0IHBhdGggYW5kIG1ldGFkYXRhIHBhdGgiCisgICAgICAg
ICAgICBwcmludCgiRmF0YWw6IG11c3Qgc3BlY2lmeSBib3RoIGEgdGVzdCBwYXRoIGFuZCBtZXRh
ZGF0YSBwYXRoIikKICAgICAgICAgICAgIHN5cy5leGl0KDEpCiAgICAgICAgIGlmICJtYW5pZmVz
dF9wYXRoIiBub3QgaW4gdGVzdF9wYXRoczoKICAgICAgICAgICAgIHRlc3RfcGF0aHNbIm1hbmlm
ZXN0X3BhdGgiXSA9IG9zLnBhdGguam9pbih0ZXN0X3BhdGhzWyJtZXRhZGF0YV9wYXRoIl0sCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIk1B
TklGRVNULmpzb24iKQotICAgICAgICBmb3Iga2V5LCBwYXRoIGluIHRlc3RfcGF0aHMuaXRlcml0
ZW1zKCk6CisgICAgICAgIGZvciBrZXksIHBhdGggaW4gaXRlcml0ZW1zKHRlc3RfcGF0aHMpOgog
ICAgICAgICAgICAgbmFtZSA9IGtleS5zcGxpdCgiXyIsIDEpWzBdCiAKICAgICAgICAgICAgIGlm
IG5hbWUgPT0gIm1hbmlmZXN0IjoKQEAgLTQwMSwxMSArNDQ2LDExIEBAIGRlZiBjaGVja19wYXRo
cyhrd2FyZ3MpOgogICAgICAgICAgICAgICAgIHBhdGggPSBvcy5wYXRoLmRpcm5hbWUocGF0aCkK
IAogICAgICAgICAgICAgaWYgbm90IG9zLnBhdGguZXhpc3RzKHBhdGgpOgotICAgICAgICAgICAg
ICAgIHByaW50ICJGYXRhbDogJXMgcGF0aCAlcyBkb2VzIG5vdCBleGlzdCIgJSAobmFtZSwgcGF0
aCkKKyAgICAgICAgICAgICAgICBwcmludCgiRmF0YWw6ICVzIHBhdGggJXMgZG9lcyBub3QgZXhp
c3QiICUgKG5hbWUsIHBhdGgpKQogICAgICAgICAgICAgICAgIHN5cy5leGl0KDEpCiAKICAgICAg
ICAgICAgIGlmIG5vdCBvcy5wYXRoLmlzZGlyKHBhdGgpOgotICAgICAgICAgICAgICAgIHByaW50
ICJGYXRhbDogJXMgcGF0aCAlcyBpcyBub3QgYSBkaXJlY3RvcnkiICUgKG5hbWUsIHBhdGgpCisg
ICAgICAgICAgICAgICAgcHJpbnQoIkZhdGFsOiAlcyBwYXRoICVzIGlzIG5vdCBhIGRpcmVjdG9y
eSIgJSAobmFtZSwgcGF0aCkpCiAgICAgICAgICAgICAgICAgc3lzLmV4aXQoMSkKIAogCkBAIC00
MTUsNiArNDYwLDkgQEAgZGVmIGNoZWNrX2FyZ3Moa3dhcmdzKToKICAgICBpZiBrd2FyZ3NbInBy
b2R1Y3QiXSBpcyBOb25lOgogICAgICAgICBrd2FyZ3NbInByb2R1Y3QiXSA9ICJmaXJlZm94Igog
CisgICAgaWYga3dhcmdzWyJtYW5pZmVzdF91cGRhdGUiXSBpcyBOb25lOgorICAgICAgICBrd2Fy
Z3NbIm1hbmlmZXN0X3VwZGF0ZSJdID0gVHJ1ZQorCiAgICAgaWYgInNhdWNlIiBpbiBrd2FyZ3Nb
InByb2R1Y3QiXToKICAgICAgICAga3dhcmdzWyJwYXVzZV9hZnRlcl90ZXN0Il0gPSBGYWxzZQog
CkBAIC00NTUsNyArNTAzLDcgQEAgZGVmIGNoZWNrX2FyZ3Moa3dhcmdzKToKIAogICAgIGlmIGt3
YXJnc1siYmluYXJ5Il0gaXMgbm90IE5vbmU6CiAgICAgICAgIGlmIG5vdCBvcy5wYXRoLmV4aXN0
cyhrd2FyZ3NbImJpbmFyeSJdKToKLSAgICAgICAgICAgIHByaW50ID4+IHN5cy5zdGRlcnIsICJC
aW5hcnkgcGF0aCAlcyBkb2VzIG5vdCBleGlzdCIgJSBrd2FyZ3NbImJpbmFyeSJdCisgICAgICAg
ICAgICBwcmludCgiQmluYXJ5IHBhdGggJXMgZG9lcyBub3QgZXhpc3QiICUga3dhcmdzWyJiaW5h
cnkiXSwgZmlsZT1zeXMuc3RkZXJyKQogICAgICAgICAgICAgc3lzLmV4aXQoMSkKIAogICAgIGlm
IGt3YXJnc1sic3NsX3R5cGUiXSBpcyBOb25lOgpAQCAtNDc0LDI4ICs1MjIsMzYgQEAgZGVmIGNo
ZWNrX2FyZ3Moa3dhcmdzKToKICAgICBlbGlmIGt3YXJnc1sic3NsX3R5cGUiXSA9PSAib3BlbnNz
bCI6CiAgICAgICAgIHBhdGggPSBleGVfcGF0aChrd2FyZ3NbIm9wZW5zc2xfYmluYXJ5Il0pCiAg
ICAgICAgIGlmIHBhdGggaXMgTm9uZToKLSAgICAgICAgICAgIHByaW50ID4+IHN5cy5zdGRlcnIs
ICJvcGVuc3NsLWJpbmFyeSBhcmd1bWVudCBtaXNzaW5nIG9yIG5vdCBhIHZhbGlkIGV4ZWN1dGFi
bGUiCisgICAgICAgICAgICBwcmludCgib3BlbnNzbC1iaW5hcnkgYXJndW1lbnQgbWlzc2luZyBv
ciBub3QgYSB2YWxpZCBleGVjdXRhYmxlIiwgZmlsZT1zeXMuc3RkZXJyKQogICAgICAgICAgICAg
c3lzLmV4aXQoMSkKICAgICAgICAga3dhcmdzWyJvcGVuc3NsX2JpbmFyeSJdID0gcGF0aAogCiAg
ICAgaWYga3dhcmdzWyJzc2xfdHlwZSJdICE9ICJub25lIiBhbmQga3dhcmdzWyJwcm9kdWN0Il0g
PT0gImZpcmVmb3giIGFuZCBrd2FyZ3NbImNlcnR1dGlsX2JpbmFyeSJdOgogICAgICAgICBwYXRo
ID0gZXhlX3BhdGgoa3dhcmdzWyJjZXJ0dXRpbF9iaW5hcnkiXSkKICAgICAgICAgaWYgcGF0aCBp
cyBOb25lOgotICAgICAgICAgICAgcHJpbnQgPj4gc3lzLnN0ZGVyciwgImNlcnR1dGlsLWJpbmFy
eSBhcmd1bWVudCBtaXNzaW5nIG9yIG5vdCBhIHZhbGlkIGV4ZWN1dGFibGUiCisgICAgICAgICAg
ICBwcmludCgiY2VydHV0aWwtYmluYXJ5IGFyZ3VtZW50IG1pc3Npbmcgb3Igbm90IGEgdmFsaWQg
ZXhlY3V0YWJsZSIsIGZpbGU9c3lzLnN0ZGVycikKICAgICAgICAgICAgIHN5cy5leGl0KDEpCiAg
ICAgICAgIGt3YXJnc1siY2VydHV0aWxfYmluYXJ5Il0gPSBwYXRoCiAKICAgICBpZiBrd2FyZ3Nb
J2V4dHJhX3ByZWZzJ106CisgICAgICAgICMgSWYgYSBzaW5nbGUgcHJlZiBpcyBwYXNzZWQgaW4g
YXMgYSBzdHJpbmcsIG1ha2UgaXQgYSBsaXN0CisgICAgICAgIGlmIHR5cGUoa3dhcmdzWydleHRy
YV9wcmVmcyddKSBpbiAoc3RyLCB1bmljb2RlKToKKyAgICAgICAgICAgIGt3YXJnc1snZXh0cmFf
cHJlZnMnXSA9IFtrd2FyZ3NbJ2V4dHJhX3ByZWZzJ11dCiAgICAgICAgIG1pc3NpbmcgPSBhbnko
Jz0nIG5vdCBpbiBwcmVmYXJnIGZvciBwcmVmYXJnIGluIGt3YXJnc1snZXh0cmFfcHJlZnMnXSkK
ICAgICAgICAgaWYgbWlzc2luZzoKLSAgICAgICAgICAgIHByaW50ID4+IHN5cy5zdGRlcnIsICJQ
cmVmZXJlbmNlcyB2aWEgLS1zZXRwcmVmIG11c3QgYmUgaW4ga2V5PXZhbHVlIGZvcm1hdCIKKyAg
ICAgICAgICAgIHByaW50KCJQcmVmZXJlbmNlcyB2aWEgLS1zZXRwcmVmIG11c3QgYmUgaW4ga2V5
PXZhbHVlIGZvcm1hdCIsIGZpbGU9c3lzLnN0ZGVycikKICAgICAgICAgICAgIHN5cy5leGl0KDEp
CiAgICAgICAgIGt3YXJnc1snZXh0cmFfcHJlZnMnXSA9IFt0dXBsZShwcmVmYXJnLnNwbGl0KCc9
JywgMSkpIGZvciBwcmVmYXJnIGluCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBr
d2FyZ3NbJ2V4dHJhX3ByZWZzJ11dCiAKICAgICBpZiBrd2FyZ3NbInJlZnRlc3RfaW50ZXJuYWwi
XSBpcyBOb25lOgotICAgICAgICAjIERlZmF1bHQgdG8gdGhlIGludGVybmFsIHJlZnRlc3QgaW1w
bGVtZW50YXRpb24gb24gTGludXggYW5kIE9TWAotICAgICAgICBrd2FyZ3NbInJlZnRlc3RfaW50
ZXJuYWwiXSA9IHN5cy5wbGF0Zm9ybS5zdGFydHN3aXRoKCJsaW51eCIpIG9yIHN5cy5wbGF0Zm9y
bS5zdGFydHN3aXRoKCJkYXJ3aW4iKQorICAgICAgICBrd2FyZ3NbInJlZnRlc3RfaW50ZXJuYWwi
XSA9IFRydWUKKworICAgIGlmIGt3YXJnc1sicmVmdGVzdF9zY3JlZW5zaG90Il0gaXMgTm9uZToK
KyAgICAgICAga3dhcmdzWyJyZWZ0ZXN0X3NjcmVlbnNob3QiXSA9ICJ1bmV4cGVjdGVkIgorCisg
ICAgaWYga3dhcmdzWyJlbmFibGVfd2VicmVuZGVyIl0gaXMgTm9uZToKKyAgICAgICAga3dhcmdz
WyJlbmFibGVfd2VicmVuZGVyIl0gPSBGYWxzZQogCiAgICAgcmV0dXJuIGt3YXJncwogCkBAIC01
MTAsNyArNTY2LDcgQEAgZGVmIGNoZWNrX2FyZ3NfdXBkYXRlKGt3YXJncyk6CiAKICAgICBmb3Ig
aXRlbSBpbiBrd2FyZ3NbInJ1bl9sb2ciXToKICAgICAgICAgaWYgb3MucGF0aC5pc2RpcihpdGVt
KToKLSAgICAgICAgICAgIHByaW50ID4+IHN5cy5zdGRlcnIsICJMb2cgZmlsZSAlcyBpcyBhIGRp
cmVjdG9yeSIgJSBpdGVtCisgICAgICAgICAgICBwcmludCgiTG9nIGZpbGUgJXMgaXMgYSBkaXJl
Y3RvcnkiICUgaXRlbSwgZmlsZT1zeXMuc3RkZXJyKQogICAgICAgICAgICAgc3lzLmV4aXQoMSkK
IAogICAgIHJldHVybiBrd2FyZ3MKQEAgLTUxOSw3ICs1NzUsNyBAQCBkZWYgY2hlY2tfYXJnc191
cGRhdGUoa3dhcmdzKToKIGRlZiBjcmVhdGVfcGFyc2VyX3VwZGF0ZShwcm9kdWN0X2Nob2ljZXM9
Tm9uZSk6CiAgICAgZnJvbSBtb3psb2cuc3RydWN0dXJlZCBpbXBvcnQgY29tbWFuZGxpbmUKIAot
ICAgIGltcG9ydCBwcm9kdWN0cworICAgIGZyb20gLiBpbXBvcnQgcHJvZHVjdHMKIAogICAgIGlm
IHByb2R1Y3RfY2hvaWNlcyBpcyBOb25lOgogICAgICAgICBjb25maWdfZGF0YSA9IGNvbmZpZy5s
b2FkKCkKQEAgLTU0OSwxMyArNjA1LDIzIEBAIGRlZiBjcmVhdGVfcGFyc2VyX3VwZGF0ZShwcm9k
dWN0X2Nob2ljZXM9Tm9uZSk6CiAgICAgICAgICAgICAgICAgICAgICAgICBoZWxwPSJEb24ndCBj
cmVhdGUgYSBWQ1MgY29tbWl0IGNvbnRhaW5pbmcgdGhlIGNoYW5nZXMuIikKICAgICBwYXJzZXIu
YWRkX2FyZ3VtZW50KCItLXN5bmMiLCBkZXN0PSJzeW5jIiwgYWN0aW9uPSJzdG9yZV90cnVlIiwg
ZGVmYXVsdD1GYWxzZSwKICAgICAgICAgICAgICAgICAgICAgICAgIGhlbHA9IlN5bmMgdGhlIHRl
c3RzIHdpdGggdGhlIGxhdGVzdCBmcm9tIHVwc3RyZWFtIChpbXBsaWVzIC0tcGF0Y2gpIikKLSAg
ICBwYXJzZXIuYWRkX2FyZ3VtZW50KCItLWlnbm9yZS1leGlzdGluZyIsIGFjdGlvbj0ic3RvcmVf
dHJ1ZSIsCi0gICAgICAgICAgICAgICAgICAgICAgICBoZWxwPSJXaGVuIHVwZGF0aW5nIHRlc3Qg
cmVzdWx0cyBvbmx5IGNvbnNpZGVyIHJlc3VsdHMgZnJvbSB0aGUgbG9nZmlsZXMgcHJvdmlkZWQs
IG5vdCBleGlzdGluZyBleHBlY3RhdGlvbnMuIikKLSAgICBwYXJzZXIuYWRkX2FyZ3VtZW50KCIt
LXN0YWJpbGl0eSIsIG5hcmdzPSI/IiwgYWN0aW9uPSJzdG9yZSIsIGNvbnN0PSJ1bnN0YWJsZSIs
IGRlZmF1bHQ9Tm9uZSwKKyAgICBwYXJzZXIuYWRkX2FyZ3VtZW50KCItLWZ1bGwiLCBhY3Rpb249
InN0b3JlX3RydWUiLCBkZWZhdWx0PUZhbHNlLAorICAgICAgICAgICAgICAgICAgICAgICAgaGVs
cD0oIkZvciBhbGwgdGVzdHMgdGhhdCBhcmUgdXBkYXRlZCwgcmVtb3ZlIGFueSBleGlzdGluZyBj
b25kaXRpb25zIGFuZCBtaXNzaW5nIHN1YnRlc3RzIikpCisgICAgcGFyc2VyLmFkZF9hcmd1bWVu
dCgiLS1kaXNhYmxlLWludGVybWl0dGVudCIsIG5hcmdzPSI/IiwgYWN0aW9uPSJzdG9yZSIsIGNv
bnN0PSJ1bnN0YWJsZSIsIGRlZmF1bHQ9Tm9uZSwKICAgICAgICAgaGVscD0oIlJlYXNvbiBmb3Ig
ZGlzYWJsaW5nIHRlc3RzLiBXaGVuIHVwZGF0aW5nIHRlc3QgcmVzdWx0cywgZGlzYWJsZSB0ZXN0
cyB0aGF0IGhhdmUgIgogICAgICAgICAgICAgICAiaW5jb25zaXN0ZW50IHJlc3VsdHMgYWNyb3Nz
IG1hbnkgcnVucyB3aXRoIHRoZSBnaXZlbiByZWFzb24uIikpCi0gICAgcGFyc2VyLmFkZF9hcmd1
bWVudCgiLS1jb250aW51ZSIsIGFjdGlvbj0ic3RvcmVfdHJ1ZSIsIGhlbHA9IkNvbnRpbnVlIGEg
cHJldmlvdXNseSBzdGFydGVkIHJ1biBvZiB0aGUgdXBkYXRlIHNjcmlwdCIpCi0gICAgcGFyc2Vy
LmFkZF9hcmd1bWVudCgiLS1hYm9ydCIsIGFjdGlvbj0ic3RvcmVfdHJ1ZSIsIGhlbHA9IkNsZWFy
IHN0YXRlIGZyb20gYSBwcmV2aW91cyBpbmNvbXBsZXRlIHJ1biBvZiB0aGUgdXBkYXRlIHNjcmlw
dCIpCisgICAgcGFyc2VyLmFkZF9hcmd1bWVudCgiLS11cGRhdGUtaW50ZXJtaXR0ZW50IiwgYWN0
aW9uPSJzdG9yZV90cnVlIiwgZGVmYXVsdD1GYWxzZSwKKyAgICAgICAgICAgICAgICAgICAgICAg
IGhlbHA9KCJVcGRhdGUgdGVzdCBtZXRhZGF0YSB3aXRoIGV4cGVjdGVkIGludGVybWl0dGVudCBz
dGF0dXNlcy4iKSkKKyAgICBwYXJzZXIuYWRkX2FyZ3VtZW50KCItLXJlbW92ZS1pbnRlcm1pdHRl
bnQiLCBhY3Rpb249InN0b3JlX3RydWUiLCBkZWZhdWx0PUZhbHNlLAorICAgICAgICAgICAgICAg
ICAgICAgICAgaGVscD0oIlJlbW92ZSBvYnNvbGV0ZSBpbnRlcm1pdHRlbnQgc3RhdHVzZXMgZnJv
bSBleHBlY3RlZCBzdGF0dXNlcy4iKSkKKyAgICBwYXJzZXIuYWRkX2FyZ3VtZW50KCItLW5vLXJl
bW92ZS1vYnNvbGV0ZSIsIGFjdGlvbj0ic3RvcmVfZmFsc2UiLCBkZXN0PSJyZW1vdmVfb2Jzb2xl
dGUiLCBkZWZhdWx0PVRydWUsCisgICAgICAgICAgICAgICAgICAgICAgICBoZWxwPSgiRG9uJ3Qg
cmVtb3ZlIG1ldGFkYXRhIGZpbGVzIHRoYXQgbm8gbG9uZ2VyIGNvcnJlc3BvbmQgdG8gYSB0ZXN0
IGZpbGUiKSkKKyAgICBwYXJzZXIuYWRkX2FyZ3VtZW50KCItLW5vLXN0b3JlLXN0YXRlIiwgYWN0
aW9uPSJzdG9yZV9mYWxzZSIsIGRlc3Q9InN0b3JlX3N0YXRlIiwKKyAgICAgICAgICAgICAgICAg
ICAgICAgIGhlbHA9IlN0b3JlIHN0YXRlIHNvIHRoYXQgc3RlcHMgY2FuIGJlIHJlc3VtZWQgYWZ0
ZXIgZmFpbHVyZSIpCisgICAgcGFyc2VyLmFkZF9hcmd1bWVudCgiLS1jb250aW51ZSIsIGFjdGlv
bj0ic3RvcmVfdHJ1ZSIsCisgICAgICAgICAgICAgICAgICAgICAgICBoZWxwPSJDb250aW51ZSBh
IHByZXZpb3VzbHkgc3RhcnRlZCBydW4gb2YgdGhlIHVwZGF0ZSBzY3JpcHQiKQorICAgIHBhcnNl
ci5hZGRfYXJndW1lbnQoIi0tYWJvcnQiLCBhY3Rpb249InN0b3JlX3RydWUiLAorICAgICAgICAg
ICAgICAgICAgICAgICAgaGVscD0iQ2xlYXIgc3RhdGUgZnJvbSBhIHByZXZpb3VzIGluY29tcGxl
dGUgcnVuIG9mIHRoZSB1cGRhdGUgc2NyaXB0IikKICAgICBwYXJzZXIuYWRkX2FyZ3VtZW50KCIt
LWV4Y2x1ZGUiLCBhY3Rpb249InN0b3JlIiwgbmFyZ3M9IioiLAogICAgICAgICAgICAgICAgICAg
ICAgICAgaGVscD0iTGlzdCBvZiBnbG9iLXN0eWxlIHBhdGhzIHRvIGV4Y2x1ZGUgd2hlbiBzeW5j
aW5nIHRlc3RzIikKICAgICBwYXJzZXIuYWRkX2FyZ3VtZW50KCItLWluY2x1ZGUiLCBhY3Rpb249
InN0b3JlIiwgbmFyZ3M9IioiLApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3dwdGxvZ2dpbmcu
cHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dw
dHJ1bm5lci93cHRydW5uZXIvd3B0bG9nZ2luZy5weQppbmRleCBhYzMxMTgxNmMxOGI3Zjg5OGU0
NDIxNDEwZjk3ZDkzNTdkMmVkZDJkLi42OWNlZTc0NDg3OWViNjc4MGNiOTllYzkzMTIzOTIyZTE2
NmQ5ZTE2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvd3B0bG9nZ2luZy5weQorKysgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93
cHRydW5uZXIvd3B0bG9nZ2luZy5weQpAQCAtMSwxOSArMSwxNyBAQAogaW1wb3J0IGxvZ2dpbmcK
LWltcG9ydCBzeXMKLWltcG9ydCB0aHJlYWRpbmcKLWZyb20gU3RyaW5nSU8gaW1wb3J0IFN0cmlu
Z0lPCi1mcm9tIG11bHRpcHJvY2Vzc2luZyBpbXBvcnQgUXVldWUKIAogZnJvbSBtb3psb2cgaW1w
b3J0IGNvbW1hbmRsaW5lLCBzdGRhZGFwdGVyLCBzZXRfZGVmYXVsdF9sb2dnZXIKLWZyb20gbW96
bG9nLnN0cnVjdHVyZWRsb2cgaW1wb3J0IFN0cnVjdHVyZWRMb2dnZXIKK2Zyb20gbW96bG9nLnN0
cnVjdHVyZWRsb2cgaW1wb3J0IFN0cnVjdHVyZWRMb2dnZXIsIGxvZ19sZXZlbHMKIAotZGVmIHNl
dHVwKGFyZ3MsIGRlZmF1bHRzKToKKworZGVmIHNldHVwKGFyZ3MsIGRlZmF1bHRzLCBmb3JtYXR0
ZXJfZGVmYXVsdHM9Tm9uZSk6CiAgICAgbG9nZ2VyID0gYXJncy5wb3AoJ2xvZycsIE5vbmUpCiAg
ICAgaWYgbG9nZ2VyOgogICAgICAgICBzZXRfZGVmYXVsdF9sb2dnZXIobG9nZ2VyKQogICAgICAg
ICBTdHJ1Y3R1cmVkTG9nZ2VyLl9sb2dnZXJfc3RhdGVzWyJ3ZWItcGxhdGZvcm0tdGVzdHMiXSA9
IGxvZ2dlci5fc3RhdGUKICAgICBlbHNlOgotICAgICAgICBsb2dnZXIgPSBjb21tYW5kbGluZS5z
ZXR1cF9sb2dnaW5nKCJ3ZWItcGxhdGZvcm0tdGVzdHMiLCBhcmdzLCBkZWZhdWx0cykKKyAgICAg
ICAgbG9nZ2VyID0gY29tbWFuZGxpbmUuc2V0dXBfbG9nZ2luZygid2ViLXBsYXRmb3JtLXRlc3Rz
IiwgYXJncywgZGVmYXVsdHMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgZm9ybWF0dGVyX2RlZmF1bHRzPWZvcm1hdHRlcl9kZWZhdWx0cykKICAgICBzZXR1cF9z
dGRsaWJfbG9nZ2VyKCkKIAogICAgIGZvciBuYW1lIGluIGFyZ3Mua2V5cygpOgpAQCAtNTEsODQg
KzQ5LDE5IEBAIGNsYXNzIExvZ0xldmVsUmV3cml0ZXIob2JqZWN0KToKICAgICAgICAgcmV0dXJu
IHNlbGYuaW5uZXIoZGF0YSkKIAogCi1jbGFzcyBMb2dUaHJlYWQodGhyZWFkaW5nLlRocmVhZCk6
Ci0gICAgZGVmIF9faW5pdF9fKHNlbGYsIHF1ZXVlLCBsb2dnZXIsIGxldmVsKToKLSAgICAgICAg
c2VsZi5xdWV1ZSA9IHF1ZXVlCi0gICAgICAgIHNlbGYubG9nX2Z1bmMgPSBnZXRhdHRyKGxvZ2dl
ciwgbGV2ZWwpCi0gICAgICAgIHRocmVhZGluZy5UaHJlYWQuX19pbml0X18oc2VsZiwgbmFtZT0i
VGhyZWFkLUxvZyIpCi0gICAgICAgIHNlbGYuZGFlbW9uID0gVHJ1ZQotCi0gICAgZGVmIHJ1bihz
ZWxmKToKLSAgICAgICAgd2hpbGUgVHJ1ZToKLSAgICAgICAgICAgIHRyeToKLSAgICAgICAgICAg
ICAgICBtc2cgPSBzZWxmLnF1ZXVlLmdldCgpCi0gICAgICAgICAgICBleGNlcHQgKEVPRkVycm9y
LCBJT0Vycm9yKToKLSAgICAgICAgICAgICAgICBicmVhawotICAgICAgICAgICAgaWYgbXNnIGlz
IE5vbmU6Ci0gICAgICAgICAgICAgICAgYnJlYWsKLSAgICAgICAgICAgIGVsc2U6Ci0gICAgICAg
ICAgICAgICAgc2VsZi5sb2dfZnVuYyhtc2cpCi0KLQotY2xhc3MgTG9nZ2luZ1dyYXBwZXIoU3Ry
aW5nSU8pOgotICAgICIiIldyYXBwZXIgZm9yIGZpbGUgbGlrZSBvYmplY3RzIHRvIHJlZGlyZWN0
IG91dHB1dCB0byBsb2dnZXIKLSAgICBpbnN0ZWFkIiIiCi0KLSAgICBkZWYgX19pbml0X18oc2Vs
ZiwgcXVldWUsIHByZWZpeD1Ob25lKToKLSAgICAgICAgU3RyaW5nSU8uX19pbml0X18oc2VsZikK
LSAgICAgICAgc2VsZi5xdWV1ZSA9IHF1ZXVlCi0gICAgICAgIHNlbGYucHJlZml4ID0gcHJlZml4
Ci0KLSAgICBkZWYgd3JpdGUoc2VsZiwgZGF0YSk6Ci0gICAgICAgIGlmIGlzaW5zdGFuY2UoZGF0
YSwgc3RyKToKLSAgICAgICAgICAgIHRyeToKLSAgICAgICAgICAgICAgICBkYXRhID0gZGF0YS5k
ZWNvZGUoInV0ZjgiKQotICAgICAgICAgICAgZXhjZXB0IFVuaWNvZGVEZWNvZGVFcnJvcjoKLSAg
ICAgICAgICAgICAgICBkYXRhID0gZGF0YS5lbmNvZGUoInN0cmluZ19lc2NhcGUiKS5kZWNvZGUo
ImFzY2lpIikKLQotICAgICAgICBpZiBkYXRhLmVuZHN3aXRoKCJcbiIpOgotICAgICAgICAgICAg
ZGF0YSA9IGRhdGFbOi0xXQotICAgICAgICBpZiBkYXRhLmVuZHN3aXRoKCJcciIpOgotICAgICAg
ICAgICAgZGF0YSA9IGRhdGFbOi0xXQotICAgICAgICBpZiBub3QgZGF0YToKLSAgICAgICAgICAg
IHJldHVybgotICAgICAgICBpZiBzZWxmLnByZWZpeCBpcyBub3QgTm9uZToKLSAgICAgICAgICAg
IGRhdGEgPSAiJXM6ICVzIiAlIChzZWxmLnByZWZpeCwgZGF0YSkKLSAgICAgICAgc2VsZi5xdWV1
ZS5wdXQoZGF0YSkKLQotICAgIGRlZiBmbHVzaChzZWxmKToKLSAgICAgICAgcGFzcwotCi0KLWNs
YXNzIENhcHR1cmVJTyhvYmplY3QpOgotICAgIGRlZiBfX2luaXRfXyhzZWxmLCBsb2dnZXIsIGRv
X2NhcHR1cmUpOgotICAgICAgICBzZWxmLmxvZ2dlciA9IGxvZ2dlcgotICAgICAgICBzZWxmLmRv
X2NhcHR1cmUgPSBkb19jYXB0dXJlCi0gICAgICAgIHNlbGYubG9nZ2luZ19xdWV1ZSA9IE5vbmUK
LSAgICAgICAgc2VsZi5sb2dnaW5nX3RocmVhZCA9IE5vbmUKLSAgICAgICAgc2VsZi5vcmlnaW5h
bF9zdGRpbyA9IE5vbmUKLQotICAgIGRlZiBfX2VudGVyX18oc2VsZik6Ci0gICAgICAgIGlmIHNl
bGYuZG9fY2FwdHVyZToKLSAgICAgICAgICAgIHNlbGYub3JpZ2luYWxfc3RkaW8gPSAoc3lzLnN0
ZG91dCwgc3lzLnN0ZGVycikKLSAgICAgICAgICAgIHNlbGYubG9nZ2luZ19xdWV1ZSA9IFF1ZXVl
KCkKLSAgICAgICAgICAgIHNlbGYubG9nZ2luZ190aHJlYWQgPSBMb2dUaHJlYWQoc2VsZi5sb2dn
aW5nX3F1ZXVlLCBzZWxmLmxvZ2dlciwgImluZm8iKQotICAgICAgICAgICAgc3lzLnN0ZG91dCA9
IExvZ2dpbmdXcmFwcGVyKHNlbGYubG9nZ2luZ19xdWV1ZSwgcHJlZml4PSJTVERPVVQiKQotICAg
ICAgICAgICAgc3lzLnN0ZGVyciA9IExvZ2dpbmdXcmFwcGVyKHNlbGYubG9nZ2luZ19xdWV1ZSwg
cHJlZml4PSJTVERFUlIiKQotICAgICAgICAgICAgc2VsZi5sb2dnaW5nX3RocmVhZC5zdGFydCgp
Ci0KLSAgICBkZWYgX19leGl0X18oc2VsZiwgKmFyZ3MsICoqa3dhcmdzKToKLSAgICAgICAgaWYg
c2VsZi5kb19jYXB0dXJlOgotICAgICAgICAgICAgc3lzLnN0ZG91dCwgc3lzLnN0ZGVyciA9IHNl
bGYub3JpZ2luYWxfc3RkaW8KLSAgICAgICAgICAgIGlmIHNlbGYubG9nZ2luZ19xdWV1ZSBpcyBu
b3QgTm9uZToKLSAgICAgICAgICAgICAgICBzZWxmLmxvZ2dlci5pbmZvKCJDbG9zaW5nIGxvZ2dp
bmcgcXVldWUiKQotICAgICAgICAgICAgICAgIHNlbGYubG9nZ2luZ19xdWV1ZS5wdXQoTm9uZSkK
LSAgICAgICAgICAgICAgICBpZiBzZWxmLmxvZ2dpbmdfdGhyZWFkIGlzIG5vdCBOb25lOgotICAg
ICAgICAgICAgICAgICAgICBzZWxmLmxvZ2dpbmdfdGhyZWFkLmpvaW4oMTApCi0gICAgICAgICAg
ICAgICAgd2hpbGUgbm90IHNlbGYubG9nZ2luZ19xdWV1ZS5lbXB0eSgpOgotICAgICAgICAgICAg
ICAgICAgICB0cnk6Ci0gICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmxvZ2dlci53YXJuaW5n
KCJEcm9wcGluZyBsb2cgbWVzc2FnZTogJXIiLCBzZWxmLmxvZ2dpbmdfcXVldWUuZ2V0KCkpCi0g
ICAgICAgICAgICAgICAgICAgIGV4Y2VwdCBFeGNlcHRpb246Ci0gICAgICAgICAgICAgICAgICAg
ICAgICBwYXNzCi0gICAgICAgICAgICAgICAgc2VsZi5sb2dnaW5nX3F1ZXVlLmNsb3NlKCkKLSAg
ICAgICAgICAgICAgICBzZWxmLmxvZ2dlci5pbmZvKCJxdWV1ZSBjbG9zZWQiKQorY2xhc3MgTG9n
Z2VkQWJvdmVMZXZlbEhhbmRsZXIob2JqZWN0KToKKyAgICAiIiJGaWx0ZXIgdGhhdCByZWNvcmRz
IHdoZXRoZXIgYW55IGxvZyBtZXNzYWdlIGFib3ZlIGEgY2VydGFpbiBsZXZlbCBoYXMgYmVlbgor
ICAgIHNlZW4uCisKKyAgICA6cGFyYW0gbWluX2xldmVsOiBNaW5pbXVtIGxldmVsIHRvIHJlY29y
ZCBhcyBhIHN0ciAoZS5nLiwgIkNSSVRJQ0FMIikKKworICAgICIiIgorICAgIGRlZiBfX2luaXRf
XyhzZWxmLCBtaW5fbGV2ZWwpOgorICAgICAgICBzZWxmLm1pbl9sZXZlbCA9IGxvZ19sZXZlbHNb
bWluX2xldmVsLnVwcGVyKCldCisgICAgICAgIHNlbGYuaGFzX2xvZyA9IEZhbHNlCisKKyAgICBk
ZWYgX19jYWxsX18oc2VsZiwgZGF0YSk6CisgICAgICAgIGlmIChkYXRhWyJhY3Rpb24iXSA9PSAi
bG9nIiBhbmQKKyAgICAgICAgICAgIG5vdCBzZWxmLmhhc19sb2cgYW5kCisgICAgICAgICAgICBs
b2dfbGV2ZWxzW2RhdGFbImxldmVsIl1dIDw9IHNlbGYubWluX2xldmVsKToKKyAgICAgICAgICAg
IHNlbGYuaGFzX2xvZyA9IFRydWUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci93cHRtYW5pZmVz
dC9fX2luaXRfXy5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci93cHRtYW5pZmVzdC9fX2luaXRfXy5weQppbmRl
eCA4OTg1YjVhZTM1MDY3YTI0ZmJjODdmZGQyZTYxZDcyNzk0MTIzODkyLi5lMzU0ZDVmZjRmODI5
ZDc5MzBjMGRlNjFhNWVmZTcxMDgxMzc0NjIxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvd3B0
bWFuaWZlc3QvX19pbml0X18ucHkKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3dwdG1hbmlmZXN0L19faW5p
dF9fLnB5CkBAIC0xLDUgKzEsNSBAQAogIyBmbGFrZTg6IG5vcWEgKG5vdCBpZGVhbCwgYnV0IG5p
Y2VyIHRoYW4gYWRkaW5nIG5vcWE6IEY0MDEgdG8gZXZlcnkgbGluZSEpCi1mcm9tIHNlcmlhbGl6
ZXIgaW1wb3J0IHNlcmlhbGl6ZQotZnJvbSBwYXJzZXIgaW1wb3J0IHBhcnNlCi1mcm9tIGJhY2tl
bmRzLnN0YXRpYyBpbXBvcnQgY29tcGlsZSBhcyBjb21waWxlX3N0YXRpYwotZnJvbSBiYWNrZW5k
cy5jb25kaXRpb25hbCBpbXBvcnQgY29tcGlsZSBhcyBjb21waWxlX2NvbmRpdGlvbgorZnJvbSAu
c2VyaWFsaXplciBpbXBvcnQgc2VyaWFsaXplCitmcm9tIC5wYXJzZXIgaW1wb3J0IHBhcnNlCitm
cm9tIC5iYWNrZW5kcy5zdGF0aWMgaW1wb3J0IGNvbXBpbGUgYXMgY29tcGlsZV9zdGF0aWMKK2Zy
b20gLmJhY2tlbmRzLmNvbmRpdGlvbmFsIGltcG9ydCBjb21waWxlIGFzIGNvbXBpbGVfY29uZGl0
aW9uCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvd3B0bWFuaWZlc3QvYmFja2VuZHMvX19pbml0
X18ucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3dwdHJ1bm5lci93cHRydW5uZXIvd3B0bWFuaWZlc3QvYmFja2VuZHMvX19pbml0X18ucHkKaW5k
ZXggYTY4MzRiODI4NWE1NmJlZjBlMTU0M2ZkOTAxYzdlNmYyZjhiYzIwMi4uZTY5ZGUyOWJiMmQx
ZDY0MzRiOGIyOWFlNzc1YWQ4YzJlNDhjNTM5MSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3dw
dG1hbmlmZXN0L2JhY2tlbmRzL19faW5pdF9fLnB5CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci93cHRtYW5p
ZmVzdC9iYWNrZW5kcy9fX2luaXRfXy5weQpAQCAtMSArMCwwIEBACi0jIFRoaXMgZmlsZSBpcyBy
ZXF1aXJlZCBmb3IgUHl0aG9uIHRvIHNlYXJjaCB0aGlzIGRpcmVjdG9yeSBmb3IgbW9kdWxlcy4K
XCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvd3B0
bWFuaWZlc3QvYmFja2VuZHMvYmFzZS5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci93cHRtYW5pZmVzdC9iYWNr
ZW5kcy9iYXNlLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQ1ZTIxNDdmYzRjYTUwOWE5ZGUyOGZjZGNiYjcwN2Q4
MjM0NTk3MTEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvd3B0bWFuaWZlc3QvYmFj
a2VuZHMvYmFzZS5weQpAQCAtMCwwICsxLDIyMiBAQAoraW1wb3J0IGFiYworCitmcm9tIC4ubm9k
ZSBpbXBvcnQgTm9kZVZpc2l0b3IKK2Zyb20gLi5wYXJzZXIgaW1wb3J0IHBhcnNlCisKKworY2xh
c3MgQ29tcGlsZXIoTm9kZVZpc2l0b3IpOgorICAgIF9fbWV0YWNsYXNzX18gPSBhYmMuQUJDTWV0
YQorCisgICAgZGVmIGNvbXBpbGUoc2VsZiwgdHJlZSwgZGF0YV9jbHNfZ2V0dGVyPU5vbmUsICoq
a3dhcmdzKToKKyAgICAgICAgc2VsZi5fa3dhcmdzID0ga3dhcmdzCisgICAgICAgIHJldHVybiBz
ZWxmLl9jb21waWxlKHRyZWUsIGRhdGFfY2xzX2dldHRlciwgKiprd2FyZ3MpCisKKyAgICBkZWYg
X2NvbXBpbGUoc2VsZiwgdHJlZSwgZGF0YV9jbHNfZ2V0dGVyPU5vbmUsICoqa3dhcmdzKToKKyAg
ICAgICAgIiIiQ29tcGlsZSBhIHJhdyBBU1QgaW50byBhIGZvcm0gd2hlcmUgY29uZGl0aW9uYWwg
ZXhwcmVzc2lvbnMKKyAgICAgICAgYXJlIHJlcHJlc2VudGVkIGJ5IENvbmRpdGlvbmFsVmFsdWUg
b2JqZWN0cyB0aGF0IGNhbiBiZSBldmFsdWF0ZWQKKyAgICAgICAgYXQgcnVudGltZS4KKworICAg
ICAgICB0cmVlIC0gVGhlIHJvb3Qgbm9kZSBvZiB0aGUgd3B0bWFuaWZlc3QgQVNUIHRvIGNvbXBp
bGUKKworICAgICAgICBkYXRhX2Nsc19nZXR0ZXIgLSBBIGZ1bmN0aW9uIHRha2luZyB0d28gcGFy
YW1ldGVyczsgdGhlIHByZXZpb3VzCisgICAgICAgICAgICAgICAgICAgICAgICAgIG91dHB1dCBu
b2RlIGFuZCB0aGUgY3VycmVudCBhc3Qgbm9kZSBhbmQgcmV0dXJuaW5nCisgICAgICAgICAgICAg
ICAgICAgICAgICAgIHRoZSBjbGFzcyBvZiB0aGUgb3V0cHV0IG5vZGUgdG8gdXNlIGZvciB0aGUg
Y3VycmVudAorICAgICAgICAgICAgICAgICAgICAgICAgICBhc3Qgbm9kZQorICAgICAgICAiIiIK
KyAgICAgICAgaWYgZGF0YV9jbHNfZ2V0dGVyIGlzIE5vbmU6CisgICAgICAgICAgICBzZWxmLmRh
dGFfY2xzX2dldHRlciA9IGxhbWJkYSB4LCB5OiBNYW5pZmVzdEl0ZW0KKyAgICAgICAgZWxzZToK
KyAgICAgICAgICAgIHNlbGYuZGF0YV9jbHNfZ2V0dGVyID0gZGF0YV9jbHNfZ2V0dGVyCisKKyAg
ICAgICAgc2VsZi50cmVlID0gdHJlZQorICAgICAgICBzZWxmLm91dHB1dF9ub2RlID0gc2VsZi5f
aW5pdGlhbF9vdXRwdXRfbm9kZSh0cmVlLCAqKmt3YXJncykKKyAgICAgICAgc2VsZi52aXNpdCh0
cmVlKQorICAgICAgICBpZiBoYXNhdHRyKHNlbGYub3V0cHV0X25vZGUsICJzZXRfZGVmYXVsdHMi
KToKKyAgICAgICAgICAgIHNlbGYub3V0cHV0X25vZGUuc2V0X2RlZmF1bHRzKCkKKyAgICAgICAg
YXNzZXJ0IHNlbGYub3V0cHV0X25vZGUgaXMgbm90IE5vbmUKKyAgICAgICAgcmV0dXJuIHNlbGYu
b3V0cHV0X25vZGUKKworICAgIGRlZiBfaW5pdGlhbF9vdXRwdXRfbm9kZShzZWxmLCBub2RlLCAq
Kmt3YXJncyk6CisgICAgICAgIHJldHVybiBzZWxmLmRhdGFfY2xzX2dldHRlcihOb25lLCBOb25l
KShub2RlLCAqKmt3YXJncykKKworICAgIGRlZiB2aXNpdF9EYXRhTm9kZShzZWxmLCBub2RlKToK
KyAgICAgICAgaWYgbm9kZSAhPSBzZWxmLnRyZWU6CisgICAgICAgICAgICBvdXRwdXRfcGFyZW50
ID0gc2VsZi5vdXRwdXRfbm9kZQorICAgICAgICAgICAgc2VsZi5vdXRwdXRfbm9kZSA9IHNlbGYu
ZGF0YV9jbHNfZ2V0dGVyKHNlbGYub3V0cHV0X25vZGUsIG5vZGUpKG5vZGUsICoqc2VsZi5fa3dh
cmdzKQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgb3V0cHV0X3BhcmVudCA9IE5vbmUKKwor
ICAgICAgICBhc3NlcnQgc2VsZi5vdXRwdXRfbm9kZSBpcyBub3QgTm9uZQorCisgICAgICAgIGZv
ciBjaGlsZCBpbiBub2RlLmNoaWxkcmVuOgorICAgICAgICAgICAgc2VsZi52aXNpdChjaGlsZCkK
KworICAgICAgICBpZiBvdXRwdXRfcGFyZW50IGlzIG5vdCBOb25lOgorICAgICAgICAgICAgIyBB
cHBlbmQgdG8gdGhlIHBhcmVudCAqYWZ0ZXIqIHByb2Nlc3NpbmcgYWxsIHRoZSBub2RlIGRhdGEK
KyAgICAgICAgICAgIG91dHB1dF9wYXJlbnQuYXBwZW5kKHNlbGYub3V0cHV0X25vZGUpCisgICAg
ICAgICAgICBzZWxmLm91dHB1dF9ub2RlID0gc2VsZi5vdXRwdXRfbm9kZS5wYXJlbnQKKworICAg
ICAgICBhc3NlcnQgc2VsZi5vdXRwdXRfbm9kZSBpcyBub3QgTm9uZQorCisgICAgQGFiYy5hYnN0
cmFjdG1ldGhvZAorICAgIGRlZiB2aXNpdF9LZXlWYWx1ZU5vZGUoc2VsZiwgbm9kZSk6CisgICAg
ICAgIHBhc3MKKworICAgIGRlZiB2aXNpdF9MaXN0Tm9kZShzZWxmLCBub2RlKToKKyAgICAgICAg
cmV0dXJuIFtzZWxmLnZpc2l0KGNoaWxkKSBmb3IgY2hpbGQgaW4gbm9kZS5jaGlsZHJlbl0KKwor
ICAgIGRlZiB2aXNpdF9WYWx1ZU5vZGUoc2VsZiwgbm9kZSk6CisgICAgICAgIHJldHVybiBub2Rl
LmRhdGEKKworICAgIGRlZiB2aXNpdF9BdG9tTm9kZShzZWxmLCBub2RlKToKKyAgICAgICAgcmV0
dXJuIG5vZGUuZGF0YQorCisgICAgQGFiYy5hYnN0cmFjdG1ldGhvZAorICAgIGRlZiB2aXNpdF9D
b25kaXRpb25hbE5vZGUoc2VsZiwgbm9kZSk6CisgICAgICAgIHBhc3MKKworICAgIGRlZiB2aXNp
dF9TdHJpbmdOb2RlKHNlbGYsIG5vZGUpOgorICAgICAgICBpbmRleGVzID0gW3NlbGYudmlzaXQo
Y2hpbGQpIGZvciBjaGlsZCBpbiBub2RlLmNoaWxkcmVuXQorCisgICAgICAgIGRlZiB2YWx1ZSh4
KToKKyAgICAgICAgICAgIHJ2ID0gbm9kZS5kYXRhCisgICAgICAgICAgICBmb3IgaW5kZXggaW4g
aW5kZXhlczoKKyAgICAgICAgICAgICAgICBydiA9IHJ2W2luZGV4KHgpXQorICAgICAgICAgICAg
cmV0dXJuIHJ2CisgICAgICAgIHJldHVybiB2YWx1ZQorCisgICAgZGVmIHZpc2l0X051bWJlck5v
ZGUoc2VsZiwgbm9kZSk6CisgICAgICAgIGlmICIuIiBpbiBub2RlLmRhdGE6CisgICAgICAgICAg
ICByZXR1cm4gZmxvYXQobm9kZS5kYXRhKQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgcmV0
dXJuIGludChub2RlLmRhdGEpCisKKyAgICBkZWYgdmlzaXRfVmFyaWFibGVOb2RlKHNlbGYsIG5v
ZGUpOgorICAgICAgICBpbmRleGVzID0gW3NlbGYudmlzaXQoY2hpbGQpIGZvciBjaGlsZCBpbiBu
b2RlLmNoaWxkcmVuXQorCisgICAgICAgIGRlZiB2YWx1ZSh4KToKKyAgICAgICAgICAgIGRhdGEg
PSB4W25vZGUuZGF0YV0KKyAgICAgICAgICAgIGZvciBpbmRleCBpbiBpbmRleGVzOgorICAgICAg
ICAgICAgICAgIGRhdGEgPSBkYXRhW2luZGV4KHgpXQorICAgICAgICAgICAgcmV0dXJuIGRhdGEK
KyAgICAgICAgcmV0dXJuIHZhbHVlCisKKyAgICBkZWYgdmlzaXRfSW5kZXhOb2RlKHNlbGYsIG5v
ZGUpOgorICAgICAgICBhc3NlcnQgbGVuKG5vZGUuY2hpbGRyZW4pID09IDEKKyAgICAgICAgcmV0
dXJuIHNlbGYudmlzaXQobm9kZS5jaGlsZHJlblswXSkKKworICAgIEBhYmMuYWJzdHJhY3RtZXRo
b2QKKyAgICBkZWYgdmlzaXRfVW5hcnlFeHByZXNzaW9uTm9kZShzZWxmLCBub2RlKToKKyAgICAg
ICAgcGFzcworCisgICAgQGFiYy5hYnN0cmFjdG1ldGhvZAorICAgIGRlZiB2aXNpdF9CaW5hcnlF
eHByZXNzaW9uTm9kZShzZWxmLCBub2RlKToKKyAgICAgICAgcGFzcworCisgICAgQGFiYy5hYnN0
cmFjdG1ldGhvZAorICAgIGRlZiB2aXNpdF9VbmFyeU9wZXJhdG9yTm9kZShzZWxmLCBub2RlKToK
KyAgICAgICAgcGFzcworCisgICAgQGFiYy5hYnN0cmFjdG1ldGhvZAorICAgIGRlZiB2aXNpdF9C
aW5hcnlPcGVyYXRvck5vZGUoc2VsZiwgbm9kZSk6CisgICAgICAgIHBhc3MKKworCitjbGFzcyBN
YW5pZmVzdEl0ZW0ob2JqZWN0KToKKyAgICBkZWYgX19pbml0X18oc2VsZiwgbm9kZSwgKiprd2Fy
Z3MpOgorICAgICAgICBzZWxmLnBhcmVudCA9IE5vbmUKKyAgICAgICAgc2VsZi5ub2RlID0gbm9k
ZQorICAgICAgICBzZWxmLmNoaWxkcmVuID0gW10KKyAgICAgICAgc2VsZi5fZGF0YSA9IHt9CisK
KyAgICBkZWYgX19yZXByX18oc2VsZik6CisgICAgICAgIHJldHVybiAiPCVzICVzPiIgJSAoc2Vs
Zi5fX2NsYXNzX18sIHNlbGYubm9kZS5kYXRhKQorCisgICAgZGVmIF9fc3RyX18oc2VsZik6Cisg
ICAgICAgIHJ2ID0gW3JlcHIoc2VsZildCisgICAgICAgIGZvciBpdGVtIGluIHNlbGYuY2hpbGRy
ZW46CisgICAgICAgICAgICBydi5leHRlbmQoIiAgJXMiICUgbGluZSBmb3IgbGluZSBpbiBzdHIo
aXRlbSkuc3BsaXQoIlxuIikpCisgICAgICAgIHJldHVybiAiXG4iLmpvaW4ocnYpCisKKyAgICBk
ZWYgc2V0X2RlZmF1bHRzKHNlbGYpOgorICAgICAgICBwYXNzCisKKyAgICBAcHJvcGVydHkKKyAg
ICBkZWYgaXNfZW1wdHkoc2VsZik6CisgICAgICAgIGlmIHNlbGYuX2RhdGE6CisgICAgICAgICAg
ICByZXR1cm4gRmFsc2UKKyAgICAgICAgcmV0dXJuIGFsbChjaGlsZC5pc19lbXB0eSBmb3IgY2hp
bGQgaW4gc2VsZi5jaGlsZHJlbikKKworICAgIEBwcm9wZXJ0eQorICAgIGRlZiByb290KHNlbGYp
OgorICAgICAgICBub2RlID0gc2VsZgorICAgICAgICB3aGlsZSBub2RlLnBhcmVudCBpcyBub3Qg
Tm9uZToKKyAgICAgICAgICAgIG5vZGUgPSBub2RlLnBhcmVudAorICAgICAgICByZXR1cm4gbm9k
ZQorCisgICAgQHByb3BlcnR5CisgICAgZGVmIG5hbWUoc2VsZik6CisgICAgICAgIHJldHVybiBz
ZWxmLm5vZGUuZGF0YQorCisgICAgZGVmIGdldChzZWxmLCBrZXkpOgorICAgICAgICBmb3Igbm9k
ZSBpbiBbc2VsZiwgc2VsZi5yb290XToKKyAgICAgICAgICAgIGlmIGtleSBpbiBub2RlLl9kYXRh
OgorICAgICAgICAgICAgICAgIHJldHVybiBub2RlLl9kYXRhW2tleV0KKyAgICAgICAgcmFpc2Ug
S2V5RXJyb3IKKworICAgIGRlZiBzZXQoc2VsZiwgbmFtZSwgdmFsdWUpOgorICAgICAgICBzZWxm
Ll9kYXRhW25hbWVdID0gdmFsdWUKKworICAgIGRlZiByZW1vdmUoc2VsZik6CisgICAgICAgIGlm
IHNlbGYucGFyZW50OgorICAgICAgICAgICAgc2VsZi5wYXJlbnQuY2hpbGRyZW4ucmVtb3ZlKHNl
bGYpCisgICAgICAgICAgICBzZWxmLnBhcmVudCA9IE5vbmUKKworICAgIGRlZiBpdGVyY2hpbGRy
ZW4oc2VsZiwgbmFtZT1Ob25lKToKKyAgICAgICAgZm9yIGl0ZW0gaW4gc2VsZi5jaGlsZHJlbjoK
KyAgICAgICAgICAgIGlmIGl0ZW0ubmFtZSA9PSBuYW1lIG9yIG5hbWUgaXMgTm9uZToKKyAgICAg
ICAgICAgICAgICB5aWVsZCBpdGVtCisKKyAgICBkZWYgaGFzX2tleShzZWxmLCBrZXkpOgorICAg
ICAgICBmb3Igbm9kZSBpbiBbc2VsZiwgc2VsZi5yb290XToKKyAgICAgICAgICAgIGlmIGtleSBp
biBub2RlLl9kYXRhOgorICAgICAgICAgICAgICAgIHJldHVybiBUcnVlCisgICAgICAgIHJldHVy
biBGYWxzZQorCisgICAgZGVmIF9mbGF0dGVuKHNlbGYpOgorICAgICAgICBydiA9IHt9CisgICAg
ICAgIGZvciBub2RlIGluIFtzZWxmLCBzZWxmLnJvb3RdOgorICAgICAgICAgICAgZm9yIG5hbWUs
IHZhbHVlIGluIG5vZGUuX2RhdGEuaXRlcml0ZW1zKCk6CisgICAgICAgICAgICAgICAgaWYgbmFt
ZSBub3QgaW4gcnY6CisgICAgICAgICAgICAgICAgICAgIHJ2W25hbWVdID0gdmFsdWUKKyAgICAg
ICAgcmV0dXJuIHJ2CisKKyAgICBkZWYgaXRlcml0ZW1zKHNlbGYpOgorICAgICAgICBmb3IgaXRl
bSBpbiBzZWxmLl9mbGF0dGVuKCkuaXRlcml0ZW1zKCk6CisgICAgICAgICAgICB5aWVsZCBpdGVt
CisKKyAgICBkZWYgaXRlcmtleXMoc2VsZik6CisgICAgICAgIGZvciBpdGVtIGluIHNlbGYuX2Zs
YXR0ZW4oKS5pdGVya2V5cygpOgorICAgICAgICAgICAgeWllbGQgaXRlbQorCisgICAgZGVmIGl0
ZXJ2YWx1ZXMoc2VsZik6CisgICAgICAgIGZvciBpdGVtIGluIHNlbGYuX2ZsYXR0ZW4oKS5pdGVy
dmFsdWVzKCk6CisgICAgICAgICAgICB5aWVsZCBpdGVtCisKKyAgICBkZWYgYXBwZW5kKHNlbGYs
IGNoaWxkKToKKyAgICAgICAgY2hpbGQucGFyZW50ID0gc2VsZgorICAgICAgICBzZWxmLmNoaWxk
cmVuLmFwcGVuZChjaGlsZCkKKyAgICAgICAgcmV0dXJuIGNoaWxkCisKKworZGVmIGNvbXBpbGVf
YXN0KGNvbXBpbGVyLCBhc3QsIGRhdGFfY2xzX2dldHRlcj1Ob25lLCAqKmt3YXJncyk6CisgICAg
cmV0dXJuIGNvbXBpbGVyKCkuY29tcGlsZShhc3QsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBkYXRhX2Nsc19nZXR0ZXI9ZGF0YV9jbHNfZ2V0dGVyLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgKiprd2FyZ3MpCisKKworZGVmIGNvbXBpbGUoY29tcGlsZXIsIHN0cmVhbSwg
ZGF0YV9jbHNfZ2V0dGVyPU5vbmUsICoqa3dhcmdzKToKKyAgICByZXR1cm4gY29tcGlsZV9hc3Qo
Y29tcGlsZXIsCisgICAgICAgICAgICAgICAgICAgICAgIHBhcnNlKHN0cmVhbSksCisgICAgICAg
ICAgICAgICAgICAgICAgIGRhdGFfY2xzX2dldHRlcj1kYXRhX2Nsc19nZXR0ZXIsCisgICAgICAg
ICAgICAgICAgICAgICAgICoqa3dhcmdzKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3dwdG1h
bmlmZXN0L2JhY2tlbmRzL2NvbmRpdGlvbmFsLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3dwdG1hbmlmZXN0
L2JhY2tlbmRzL2NvbmRpdGlvbmFsLnB5CmluZGV4IDRlYjI5MmVmYjc1MDhhMGFhYzcyZjM5MmMx
YWYwZTg4ZTA3ZmU1ZmMuLmFhY2Q3ODU3MDcyZjQyMGEyMDlhZWVmZjU1OWVjMmFlMjk0MTcwYmEg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci93cHRtYW5pZmVzdC9iYWNrZW5kcy9jb25kaXRpb25h
bC5weQorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3dwdHJ1bm5lci93cHRydW5uZXIvd3B0bWFuaWZlc3QvYmFja2VuZHMvY29uZGl0aW9uYWwu
cHkKQEAgLTEsMTYgKzEsMTggQEAKIGltcG9ydCBvcGVyYXRvcgogCi1mcm9tIC4ubm9kZSBpbXBv
cnQgTm9kZVZpc2l0b3IsIERhdGFOb2RlLCBDb25kaXRpb25hbE5vZGUsIEtleVZhbHVlTm9kZSwg
TGlzdE5vZGUsIFZhbHVlTm9kZQorZnJvbSAuLm5vZGUgaW1wb3J0IE5vZGVWaXNpdG9yLCBEYXRh
Tm9kZSwgQ29uZGl0aW9uYWxOb2RlLCBLZXlWYWx1ZU5vZGUsIExpc3ROb2RlLCBWYWx1ZU5vZGUs
IEJpbmFyeUV4cHJlc3Npb25Ob2RlLCBWYXJpYWJsZU5vZGUKIGZyb20gLi5wYXJzZXIgaW1wb3J0
IHBhcnNlCiAKIAogY2xhc3MgQ29uZGl0aW9uYWxWYWx1ZShvYmplY3QpOgogICAgIGRlZiBfX2lu
aXRfXyhzZWxmLCBub2RlLCBjb25kaXRpb25fZnVuYyk6CiAgICAgICAgIHNlbGYubm9kZSA9IG5v
ZGUKKyAgICAgICAgYXNzZXJ0IGNhbGxhYmxlKGNvbmRpdGlvbl9mdW5jKQogICAgICAgICBzZWxm
LmNvbmRpdGlvbl9mdW5jID0gY29uZGl0aW9uX2Z1bmMKICAgICAgICAgaWYgaXNpbnN0YW5jZShu
b2RlLCBDb25kaXRpb25hbE5vZGUpOgogICAgICAgICAgICAgYXNzZXJ0IGxlbihub2RlLmNoaWxk
cmVuKSA9PSAyCiAgICAgICAgICAgICBzZWxmLmNvbmRpdGlvbl9ub2RlID0gc2VsZi5ub2RlLmNo
aWxkcmVuWzBdCisgICAgICAgICAgICBhc3NlcnQgaXNpbnN0YW5jZShub2RlLmNoaWxkcmVuWzFd
LCAoVmFsdWVOb2RlLCBMaXN0Tm9kZSkpCiAgICAgICAgICAgICBzZWxmLnZhbHVlX25vZGUgPSBz
ZWxmLm5vZGUuY2hpbGRyZW5bMV0KICAgICAgICAgZWxzZToKICAgICAgICAgICAgIGFzc2VydCBp
c2luc3RhbmNlKG5vZGUsIChWYWx1ZU5vZGUsIExpc3ROb2RlKSkKQEAgLTU5LDYgKzYxLDIwIEBA
IGNsYXNzIENvbmRpdGlvbmFsVmFsdWUob2JqZWN0KToKICAgICAgICAgICAgIHNlbGYubm9kZS5w
YXJlbnQucmVtb3ZlKCkKICAgICAgICAgc2VsZi5ub2RlLnJlbW92ZSgpCiAKKyAgICBAcHJvcGVy
dHkKKyAgICBkZWYgdmFyaWFibGVzKHNlbGYpOgorICAgICAgICBydiA9IHNldCgpCisgICAgICAg
IGlmIHNlbGYuY29uZGl0aW9uX25vZGUgaXMgTm9uZToKKyAgICAgICAgICAgIHJldHVybiBydgor
ICAgICAgICBzdGFjayA9IFtzZWxmLmNvbmRpdGlvbl9ub2RlXQorICAgICAgICB3aGlsZSBzdGFj
azoKKyAgICAgICAgICAgIG5vZGUgPSBzdGFjay5wb3AoKQorICAgICAgICAgICAgaWYgaXNpbnN0
YW5jZShub2RlLCBWYXJpYWJsZU5vZGUpOgorICAgICAgICAgICAgICAgIHJ2LmFkZChub2RlLmRh
dGEpCisgICAgICAgICAgICBmb3IgY2hpbGQgaW4gcmV2ZXJzZWQobm9kZS5jaGlsZHJlbik6Cisg
ICAgICAgICAgICAgICAgc3RhY2suYXBwZW5kKGNoaWxkKQorICAgICAgICByZXR1cm4gcnYKKwog
CiBjbGFzcyBDb21waWxlcihOb2RlVmlzaXRvcik6CiAgICAgZGVmIGNvbXBpbGUoc2VsZiwgdHJl
ZSwgZGF0YV9jbHNfZ2V0dGVyPU5vbmUsICoqa3dhcmdzKToKQEAgLTE5MSw2ICsyMDcsNyBAQCBj
bGFzcyBDb21waWxlcihOb2RlVmlzaXRvcik6CiAgICAgICAgIHJldHVybiB7Im5vdCI6IG9wZXJh
dG9yLm5vdF99W25vZGUuZGF0YV0KIAogICAgIGRlZiB2aXNpdF9CaW5hcnlPcGVyYXRvck5vZGUo
c2VsZiwgbm9kZSk6CisgICAgICAgIGFzc2VydCBpc2luc3RhbmNlKG5vZGUucGFyZW50LCBCaW5h
cnlFeHByZXNzaW9uTm9kZSkKICAgICAgICAgcmV0dXJuIHsiYW5kIjogb3BlcmF0b3IuYW5kXywK
ICAgICAgICAgICAgICAgICAib3IiOiBvcGVyYXRvci5vcl8sCiAgICAgICAgICAgICAgICAgIj09
Ijogb3BlcmF0b3IuZXEsCkBAIC0yMDUsNyArMjIyLDcgQEAgY2xhc3MgTWFuaWZlc3RJdGVtKG9i
amVjdCk6CiAgICAgICAgIHNlbGYuX2RhdGEgPSB7fQogCiAgICAgZGVmIF9fcmVwcl9fKHNlbGYp
OgotICAgICAgICByZXR1cm4gIjxNYW5pZmVzdEl0ZW0gJXM+IiAlIChzZWxmLm5vZGUuZGF0YSkK
KyAgICAgICAgcmV0dXJuICI8Y29uZGl0aW9uYWwuTWFuaWZlc3RJdGVtICVzPiIgJSAoc2VsZi5u
b2RlLmRhdGEpCiAKICAgICBkZWYgX19zdHJfXyhzZWxmKToKICAgICAgICAgcnYgPSBbcmVwcihz
ZWxmKV0KQEAgLTIxNiw2ICsyMzMsMTIgQEAgY2xhc3MgTWFuaWZlc3RJdGVtKG9iamVjdCk6CiAg
ICAgZGVmIF9fY29udGFpbnNfXyhzZWxmLCBrZXkpOgogICAgICAgICByZXR1cm4ga2V5IGluIHNl
bGYuX2RhdGEKIAorICAgIGRlZiBfX2l0ZXJfXyhzZWxmKToKKyAgICAgICAgeWllbGQgc2VsZgor
ICAgICAgICBmb3IgY2hpbGQgaW4gc2VsZi5jaGlsZHJlbjoKKyAgICAgICAgICAgIGZvciBub2Rl
IGluIGNoaWxkOgorICAgICAgICAgICAgICAgIHlpZWxkIG5vZGUKKwogICAgIEBwcm9wZXJ0eQog
ICAgIGRlZiBpc19lbXB0eShzZWxmKToKICAgICAgICAgaWYgc2VsZi5fZGF0YToKQEAgLTI4Miw5
ICszMDUsMTIgQEAgY2xhc3MgTWFuaWZlc3RJdGVtKG9iamVjdCk6CiAgICAgICAgIGVsc2U6CiAg
ICAgICAgICAgICB2YWx1ZV9ub2RlID0gVmFsdWVOb2RlKHVuaWNvZGUodmFsdWUpKQogICAgICAg
ICBpZiBjb25kaXRpb24gaXMgbm90IE5vbmU6Ci0gICAgICAgICAgICBjb25kaXRpb25hbF9ub2Rl
ID0gQ29uZGl0aW9uYWxOb2RlKCkKLSAgICAgICAgICAgIGNvbmRpdGlvbmFsX25vZGUuYXBwZW5k
KGNvbmRpdGlvbikKLSAgICAgICAgICAgIGNvbmRpdGlvbmFsX25vZGUuYXBwZW5kKHZhbHVlX25v
ZGUpCisgICAgICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShjb25kaXRpb24sIENvbmRpdGlvbmFs
Tm9kZSk6CisgICAgICAgICAgICAgICAgY29uZGl0aW9uYWxfbm9kZSA9IENvbmRpdGlvbmFsTm9k
ZSgpCisgICAgICAgICAgICAgICAgY29uZGl0aW9uYWxfbm9kZS5hcHBlbmQoY29uZGl0aW9uKQor
ICAgICAgICAgICAgICAgIGNvbmRpdGlvbmFsX25vZGUuYXBwZW5kKHZhbHVlX25vZGUpCisgICAg
ICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgIGNvbmRpdGlvbmFsX25vZGUgPSBjb25kaXRp
b24KICAgICAgICAgICAgIG5vZGUuYXBwZW5kKGNvbmRpdGlvbmFsX25vZGUpCiAgICAgICAgICAg
ICBjb25kX3ZhbHVlID0gQ29tcGlsZXIoKS5jb21waWxlX2NvbmRpdGlvbihjb25kaXRpb25hbF9u
b2RlKQogICAgICAgICBlbHNlOgpAQCAtMzAwLDYgKzMyNiwyMSBAQCBjbGFzcyBNYW5pZmVzdEl0
ZW0ob2JqZWN0KToKICAgICAgICAgZWxzZToKICAgICAgICAgICAgIHNlbGYuX2RhdGFba2V5XS5h
cHBlbmQoY29uZF92YWx1ZSkKIAorICAgIGRlZiBjbGVhcihzZWxmLCBrZXkpOgorICAgICAgICAi
IiJDbGVhciBhbGwgdGhlIGV4cGVjdGVkIGRhdGEgZm9yIHRoaXMgbm9kZSIiIgorICAgICAgICBp
ZiBrZXkgaW4gc2VsZi5fZGF0YToKKyAgICAgICAgICAgIGZvciBjaGlsZCBpbiBzZWxmLm5vZGUu
Y2hpbGRyZW46CisgICAgICAgICAgICAgICAgaWYgKGlzaW5zdGFuY2UoY2hpbGQsIEtleVZhbHVl
Tm9kZSkgYW5kCisgICAgICAgICAgICAgICAgICAgIGNoaWxkLmRhdGEgPT0ga2V5KToKKyAgICAg
ICAgICAgICAgICAgICAgY2hpbGQucmVtb3ZlKCkKKyAgICAgICAgICAgICAgICAgICAgZGVsIHNl
bGYuX2RhdGFba2V5XQorICAgICAgICAgICAgICAgICAgICBicmVhaworCisgICAgZGVmIGdldF9j
b25kaXRpb25zKHNlbGYsIHByb3BlcnR5X25hbWUpOgorICAgICAgICBpZiBwcm9wZXJ0eV9uYW1l
IGluIHNlbGYuX2RhdGE6CisgICAgICAgICAgICByZXR1cm4gc2VsZi5fZGF0YVtwcm9wZXJ0eV9u
YW1lXQorICAgICAgICByZXR1cm4gW10KKwogICAgIGRlZiBfYWRkX2tleV92YWx1ZShzZWxmLCBu
b2RlLCB2YWx1ZXMpOgogICAgICAgICAiIiJDYWxsZWQgZHVyaW5nIGNvbnN0cnVjdGlvbiB0byBz
ZXQgYSBrZXktdmFsdWUgbm9kZSIiIgogICAgICAgICBzZWxmLl9kYXRhW25vZGUuZGF0YV0gPSB2
YWx1ZXMKQEAgLTMxOCw2ICszNTksNyBAQCBjbGFzcyBNYW5pZmVzdEl0ZW0ob2JqZWN0KToKICAg
ICBkZWYgX3JlbW92ZV9jaGlsZChzZWxmLCBjaGlsZCk6CiAgICAgICAgIHNlbGYuY2hpbGRyZW4u
cmVtb3ZlKGNoaWxkKQogICAgICAgICBjaGlsZC5wYXJlbnQgPSBOb25lCisgICAgICAgIGNoaWxk
Lm5vZGUucmVtb3ZlKCkKIAogICAgIGRlZiBpdGVyY2hpbGRyZW4oc2VsZiwgbmFtZT1Ob25lKToK
ICAgICAgICAgZm9yIGl0ZW0gaW4gc2VsZi5jaGlsZHJlbjoKQEAgLTM0MSw2ICszODMsOCBAQCBj
bGFzcyBNYW5pZmVzdEl0ZW0ob2JqZWN0KToKICAgICAgICAgICAgIHlpZWxkIGl0ZW0KIAogICAg
IGRlZiByZW1vdmVfdmFsdWUoc2VsZiwga2V5LCB2YWx1ZSk6CisgICAgICAgIGlmIGtleSBub3Qg
aW4gc2VsZi5fZGF0YToKKyAgICAgICAgICAgIHJldHVybgogICAgICAgICB0cnk6CiAgICAgICAg
ICAgICBzZWxmLl9kYXRhW2tleV0ucmVtb3ZlKHZhbHVlKQogICAgICAgICBleGNlcHQgVmFsdWVF
cnJvcjoKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci93cHRtYW5pZmVzdC9iYWNrZW5kcy9zdGF0
aWMucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3dwdHJ1bm5lci93cHRydW5uZXIvd3B0bWFuaWZlc3QvYmFja2VuZHMvc3RhdGljLnB5CmluZGV4
IGIzY2JlZGMzODE4ZWU4ZjA0ZmI2OWQ5MDlmMmQ4ZDE5YzNhNWY1OTQuLjZlZmFkMWMwZTQ3YjEx
NGI1MTI1OWJiMzY5YTRhZDE1OTcxMjY4ZDcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci93cHRt
YW5pZmVzdC9iYWNrZW5kcy9zdGF0aWMucHkKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3dwdG1hbmlmZXN0
L2JhY2tlbmRzL3N0YXRpYy5weQpAQCAtMSwxMCArMSwxMCBAQAogaW1wb3J0IG9wZXJhdG9yCiAK
LWZyb20gLi5ub2RlIGltcG9ydCBOb2RlVmlzaXRvcgorZnJvbSAuIGltcG9ydCBiYXNlCiBmcm9t
IC4ucGFyc2VyIGltcG9ydCBwYXJzZQogCiAKLWNsYXNzIENvbXBpbGVyKE5vZGVWaXNpdG9yKToK
K2NsYXNzIENvbXBpbGVyKGJhc2UuQ29tcGlsZXIpOgogICAgICIiIkNvbXBpbGVyIGJhY2tlbmQg
dGhhdCBldmFsdWF0ZXMgY29uZGl0aW9uYWwgZXhwcmVzc2lvbnMKICAgICB0byBnaXZlIHN0YXRp
YyBvdXRwdXQiIiIKIApAQCAtMjYsMjkgKzI2LDcgQEAgY2xhc3MgQ29tcGlsZXIoTm9kZVZpc2l0
b3IpOgogICAgICAgICBzZWxmLl9rd2FyZ3MgPSBrd2FyZ3MKICAgICAgICAgc2VsZi5leHByX2Rh
dGEgPSBleHByX2RhdGEKIAotICAgICAgICBpZiBkYXRhX2Nsc19nZXR0ZXIgaXMgTm9uZToKLSAg
ICAgICAgICAgIHNlbGYuZGF0YV9jbHNfZ2V0dGVyID0gbGFtYmRhIHgsIHk6IE1hbmlmZXN0SXRl
bQotICAgICAgICBlbHNlOgotICAgICAgICAgICAgc2VsZi5kYXRhX2Nsc19nZXR0ZXIgPSBkYXRh
X2Nsc19nZXR0ZXIKLQotICAgICAgICBzZWxmLm91dHB1dF9ub2RlID0gTm9uZQotICAgICAgICBz
ZWxmLnZpc2l0KHRyZWUpCi0gICAgICAgIHJldHVybiBzZWxmLm91dHB1dF9ub2RlCi0KLSAgICBk
ZWYgdmlzaXRfRGF0YU5vZGUoc2VsZiwgbm9kZSk6Ci0gICAgICAgIG91dHB1dF9wYXJlbnQgPSBz
ZWxmLm91dHB1dF9ub2RlCi0gICAgICAgIGlmIHNlbGYub3V0cHV0X25vZGUgaXMgTm9uZToKLSAg
ICAgICAgICAgIGFzc2VydCBub2RlLnBhcmVudCBpcyBOb25lCi0gICAgICAgICAgICBzZWxmLm91
dHB1dF9ub2RlID0gc2VsZi5kYXRhX2Nsc19nZXR0ZXIoTm9uZSwgTm9uZSkoTm9uZSwgKipzZWxm
Ll9rd2FyZ3MpCi0gICAgICAgIGVsc2U6Ci0gICAgICAgICAgICBzZWxmLm91dHB1dF9ub2RlID0g
c2VsZi5kYXRhX2Nsc19nZXR0ZXIoc2VsZi5vdXRwdXRfbm9kZSwgbm9kZSkobm9kZS5kYXRhKQot
Ci0gICAgICAgIGZvciBjaGlsZCBpbiBub2RlLmNoaWxkcmVuOgotICAgICAgICAgICAgc2VsZi52
aXNpdChjaGlsZCkKLQotICAgICAgICBpZiBvdXRwdXRfcGFyZW50IGlzIG5vdCBOb25lOgotICAg
ICAgICAgICAgb3V0cHV0X3BhcmVudC5hcHBlbmQoc2VsZi5vdXRwdXRfbm9kZSkKLSAgICAgICAg
ICAgIHNlbGYub3V0cHV0X25vZGUgPSBzZWxmLm91dHB1dF9ub2RlLnBhcmVudAorICAgICAgICBy
ZXR1cm4gc2VsZi5fY29tcGlsZSh0cmVlLCBkYXRhX2Nsc19nZXR0ZXIsICoqa3dhcmdzKQogCiAg
ICAgZGVmIHZpc2l0X0tleVZhbHVlTm9kZShzZWxmLCBub2RlKToKICAgICAgICAga2V5X25hbWUg
PSBub2RlLmRhdGEKQEAgLTYxLDE1ICszOSw2IEBAIGNsYXNzIENvbXBpbGVyKE5vZGVWaXNpdG9y
KToKICAgICAgICAgaWYga2V5X3ZhbHVlIGlzIG5vdCBOb25lOgogICAgICAgICAgICAgc2VsZi5v
dXRwdXRfbm9kZS5zZXQoa2V5X25hbWUsIGtleV92YWx1ZSkKIAotICAgIGRlZiB2aXNpdF9WYWx1
ZU5vZGUoc2VsZiwgbm9kZSk6Ci0gICAgICAgIHJldHVybiBub2RlLmRhdGEKLQotICAgIGRlZiB2
aXNpdF9BdG9tTm9kZShzZWxmLCBub2RlKToKLSAgICAgICAgcmV0dXJuIG5vZGUuZGF0YQotCi0g
ICAgZGVmIHZpc2l0X0xpc3ROb2RlKHNlbGYsIG5vZGUpOgotICAgICAgICByZXR1cm4gW3NlbGYu
dmlzaXQoY2hpbGQpIGZvciBjaGlsZCBpbiBub2RlLmNoaWxkcmVuXQotCiAgICAgZGVmIHZpc2l0
X0NvbmRpdGlvbmFsTm9kZShzZWxmLCBub2RlKToKICAgICAgICAgYXNzZXJ0IGxlbihub2RlLmNo
aWxkcmVuKSA9PSAyCiAgICAgICAgIGlmIHNlbGYudmlzaXQobm9kZS5jaGlsZHJlblswXSk6CkBA
IC04MSwxMiArNTAsNiBAQCBjbGFzcyBDb21waWxlcihOb2RlVmlzaXRvcik6CiAgICAgICAgICAg
ICB2YWx1ZSA9IHNlbGYudmlzaXQoY2hpbGQpKHZhbHVlKQogICAgICAgICByZXR1cm4gdmFsdWUK
IAotICAgIGRlZiB2aXNpdF9OdW1iZXJOb2RlKHNlbGYsIG5vZGUpOgotICAgICAgICBpZiAiLiIg
aW4gbm9kZS5kYXRhOgotICAgICAgICAgICAgcmV0dXJuIGZsb2F0KG5vZGUuZGF0YSkKLSAgICAg
ICAgZWxzZToKLSAgICAgICAgICAgIHJldHVybiBpbnQobm9kZS5kYXRhKQotCiAgICAgZGVmIHZp
c2l0X1ZhcmlhYmxlTm9kZShzZWxmLCBub2RlKToKICAgICAgICAgdmFsdWUgPSBzZWxmLmV4cHJf
ZGF0YVtub2RlLmRhdGFdCiAgICAgICAgIGZvciBjaGlsZCBpbiBub2RlLmNoaWxkcmVuOgpAQCAt
MTIzLDkyICs4Niw2IEBAIGNsYXNzIENvbXBpbGVyKE5vZGVWaXNpdG9yKToKICAgICAgICAgICAg
ICAgICAiIT0iOiBvcGVyYXRvci5uZX1bbm9kZS5kYXRhXQogCiAKLWNsYXNzIE1hbmlmZXN0SXRl
bShvYmplY3QpOgotICAgIGRlZiBfX2luaXRfXyhzZWxmLCBuYW1lLCAqKmt3YXJncyk6Ci0gICAg
ICAgIHNlbGYucGFyZW50ID0gTm9uZQotICAgICAgICBzZWxmLm5hbWUgPSBuYW1lCi0gICAgICAg
IHNlbGYuY2hpbGRyZW4gPSBbXQotICAgICAgICBzZWxmLl9kYXRhID0ge30KLQotICAgIGRlZiBf
X3JlcHJfXyhzZWxmKToKLSAgICAgICAgcmV0dXJuICI8TWFuaWZlc3RJdGVtICVzPiIgJSAoc2Vs
Zi5uYW1lKQotCi0gICAgZGVmIF9fc3RyX18oc2VsZik6Ci0gICAgICAgIHJ2ID0gW3JlcHIoc2Vs
ZildCi0gICAgICAgIGZvciBpdGVtIGluIHNlbGYuY2hpbGRyZW46Ci0gICAgICAgICAgICBydi5l
eHRlbmQoIiAgJXMiICUgbGluZSBmb3IgbGluZSBpbiBzdHIoaXRlbSkuc3BsaXQoIlxuIikpCi0g
ICAgICAgIHJldHVybiAiXG4iLmpvaW4ocnYpCi0KLSAgICBkZWYgc2V0X2RlZmF1bHRzKHNlbGYp
OgotICAgICAgICBwYXNzCi0KLSAgICBAcHJvcGVydHkKLSAgICBkZWYgaXNfZW1wdHkoc2VsZik6
Ci0gICAgICAgIGlmIHNlbGYuX2RhdGE6Ci0gICAgICAgICAgICByZXR1cm4gRmFsc2UKLSAgICAg
ICAgcmV0dXJuIGFsbChjaGlsZC5pc19lbXB0eSBmb3IgY2hpbGQgaW4gc2VsZi5jaGlsZHJlbikK
LQotICAgIEBwcm9wZXJ0eQotICAgIGRlZiByb290KHNlbGYpOgotICAgICAgICBub2RlID0gc2Vs
ZgotICAgICAgICB3aGlsZSBub2RlLnBhcmVudCBpcyBub3QgTm9uZToKLSAgICAgICAgICAgIG5v
ZGUgPSBub2RlLnBhcmVudAotICAgICAgICByZXR1cm4gbm9kZQotCi0gICAgZGVmIGhhc19rZXko
c2VsZiwga2V5KToKLSAgICAgICAgZm9yIG5vZGUgaW4gW3NlbGYsIHNlbGYucm9vdF06Ci0gICAg
ICAgICAgICBpZiBrZXkgaW4gbm9kZS5fZGF0YToKLSAgICAgICAgICAgICAgICByZXR1cm4gVHJ1
ZQotICAgICAgICByZXR1cm4gRmFsc2UKLQotICAgIGRlZiBnZXQoc2VsZiwga2V5KToKLSAgICAg
ICAgZm9yIG5vZGUgaW4gW3NlbGYsIHNlbGYucm9vdF06Ci0gICAgICAgICAgICBpZiBrZXkgaW4g
bm9kZS5fZGF0YToKLSAgICAgICAgICAgICAgICByZXR1cm4gbm9kZS5fZGF0YVtrZXldCi0gICAg
ICAgIHJhaXNlIEtleUVycm9yCi0KLSAgICBkZWYgc2V0KHNlbGYsIG5hbWUsIHZhbHVlKToKLSAg
ICAgICAgc2VsZi5fZGF0YVtuYW1lXSA9IHZhbHVlCi0KLSAgICBkZWYgcmVtb3ZlKHNlbGYpOgot
ICAgICAgICBpZiBzZWxmLnBhcmVudDoKLSAgICAgICAgICAgIHNlbGYucGFyZW50Ll9yZW1vdmVf
Y2hpbGQoc2VsZikKLQotICAgIGRlZiBfcmVtb3ZlX2NoaWxkKHNlbGYsIGNoaWxkKToKLSAgICAg
ICAgc2VsZi5jaGlsZHJlbi5yZW1vdmUoY2hpbGQpCi0gICAgICAgIGNoaWxkLnBhcmVudCA9IE5v
bmUKLQotICAgIGRlZiBpdGVyY2hpbGRyZW4oc2VsZiwgbmFtZT1Ob25lKToKLSAgICAgICAgZm9y
IGl0ZW0gaW4gc2VsZi5jaGlsZHJlbjoKLSAgICAgICAgICAgIGlmIGl0ZW0ubmFtZSA9PSBuYW1l
IG9yIG5hbWUgaXMgTm9uZToKLSAgICAgICAgICAgICAgICB5aWVsZCBpdGVtCi0KLSAgICBkZWYg
X2ZsYXR0ZW4oc2VsZik6Ci0gICAgICAgIHJ2ID0ge30KLSAgICAgICAgZm9yIG5vZGUgaW4gW3Nl
bGYsIHNlbGYucm9vdF06Ci0gICAgICAgICAgICBmb3IgbmFtZSwgdmFsdWUgaW4gbm9kZS5fZGF0
YS5pdGVyaXRlbXMoKToKLSAgICAgICAgICAgICAgICBpZiBuYW1lIG5vdCBpbiBydjoKLSAgICAg
ICAgICAgICAgICAgICAgcnZbbmFtZV0gPSB2YWx1ZQotICAgICAgICByZXR1cm4gcnYKLQotICAg
IGRlZiBpdGVyaXRlbXMoc2VsZik6Ci0gICAgICAgIGZvciBpdGVtIGluIHNlbGYuX2ZsYXR0ZW4o
KS5pdGVyaXRlbXMoKToKLSAgICAgICAgICAgIHlpZWxkIGl0ZW0KLQotICAgIGRlZiBpdGVya2V5
cyhzZWxmKToKLSAgICAgICAgZm9yIGl0ZW0gaW4gc2VsZi5fZmxhdHRlbigpLml0ZXJrZXlzKCk6
Ci0gICAgICAgICAgICB5aWVsZCBpdGVtCi0KLSAgICBkZWYgaXRlcnZhbHVlcyhzZWxmKToKLSAg
ICAgICAgZm9yIGl0ZW0gaW4gc2VsZi5fZmxhdHRlbigpLml0ZXJ2YWx1ZXMoKToKLSAgICAgICAg
ICAgIHlpZWxkIGl0ZW0KLQotICAgIGRlZiBhcHBlbmQoc2VsZiwgY2hpbGQpOgotICAgICAgICBj
aGlsZC5wYXJlbnQgPSBzZWxmCi0gICAgICAgIHNlbGYuY2hpbGRyZW4uYXBwZW5kKGNoaWxkKQot
ICAgICAgICByZXR1cm4gY2hpbGQKLQotCiBkZWYgY29tcGlsZV9hc3QoYXN0LCBleHByX2RhdGEs
IGRhdGFfY2xzX2dldHRlcj1Ob25lLCAqKmt3YXJncyk6CiAgICAgcmV0dXJuIENvbXBpbGVyKCku
Y29tcGlsZShhc3QsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBleHByX2RhdGEsCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3dwdHJ1bm5lci93cHRydW5uZXIvd3B0bWFuaWZlc3QvYmFja2VuZHMvdzNjLWltcG9ydC5s
b2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dw
dHJ1bm5lci93cHRydW5uZXIvd3B0bWFuaWZlc3QvYmFja2VuZHMvdzNjLWltcG9ydC5sb2cKZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDdmNGUxZGEzZTNhMGZhYmVhOGQyMzJkOTk5NmI1
MjRjYTI2OTU4ZDUuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0t
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRy
dW5uZXIvd3B0cnVubmVyL3dwdG1hbmlmZXN0L2JhY2tlbmRzL3czYy1pbXBvcnQubG9nCisrKyAv
ZGV2L251bGwKQEAgLTEsMTkgKzAsMCBAQAotVGhlIHRlc3RzIGluIHRoaXMgZGlyZWN0b3J5IHdl
cmUgaW1wb3J0ZWQgZnJvbSB0aGUgVzNDIHJlcG9zaXRvcnkuCi1EbyBOT1QgbW9kaWZ5IHRoZXNl
IHRlc3RzIGRpcmVjdGx5IGluIFdlYktpdC4KLUluc3RlYWQsIGNyZWF0ZSBhIHB1bGwgcmVxdWVz
dCBvbiB0aGUgV1BUIGdpdGh1YjoKLQlodHRwczovL2dpdGh1Yi5jb20vd2ViLXBsYXRmb3JtLXRl
c3RzL3dwdAotCi1UaGVuIHJ1biB0aGUgVG9vbHMvU2NyaXB0cy9pbXBvcnQtdzNjLXRlc3RzIGlu
IFdlYktpdCB0byByZWltcG9ydAotCi1EbyBOT1QgbW9kaWZ5IG9yIHJlbW92ZSB0aGlzIGZpbGUu
Ci0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLQotUHJvcGVydGllcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVz
OgotTm9uZQotUHJvcGVydHkgdmFsdWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25l
Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0KLUxpc3Qgb2YgZmlsZXM6Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3dwdG1hbmlm
ZXN0L2JhY2tlbmRzL19faW5pdF9fLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3dwdG1hbmlmZXN0L2JhY2tl
bmRzL2NvbmRpdGlvbmFsLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3dwdG1hbmlmZXN0L2JhY2tlbmRzL3N0
YXRpYy5weQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3dwdG1hbmlmZXN0L25vZGUucHkgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5l
ci93cHRydW5uZXIvd3B0bWFuaWZlc3Qvbm9kZS5weQppbmRleCAzM2U5Nzk2YzQzMGMzM2FhMDMy
ODU1OWYxMjA3OWYyMjExODBkNjc5Li4yMDA2MDVjMDVhYTRhYjNhNzdkYzlkYjE5YjE2OGQ3YWRl
NzM5OGJlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvd3B0bWFuaWZlc3Qvbm9kZS5weQorKysg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1
bm5lci93cHRydW5uZXIvd3B0bWFuaWZlc3Qvbm9kZS5weQpAQCAtNTgsNyArNTgsOCBAQCBjbGFz
cyBEYXRhTm9kZShOb2RlKToKICAgICAgICAgICAgIHdoaWxlIGluZGV4ID4gMCBhbmQgaXNpbnN0
YW5jZShzZWxmLmNoaWxkcmVuW2luZGV4IC0gMV0sIERhdGFOb2RlKToKICAgICAgICAgICAgICAg
ICBpbmRleCAtPSAxCiAgICAgICAgICAgICBmb3IgaSBpbiB4cmFuZ2UoaW5kZXgpOgotICAgICAg
ICAgICAgICAgIGFzc2VydCBvdGhlci5kYXRhICE9IHNlbGYuY2hpbGRyZW5baV0uZGF0YQorICAg
ICAgICAgICAgICAgIGlmIG90aGVyLmRhdGEgPT0gc2VsZi5jaGlsZHJlbltpXS5kYXRhOgorICAg
ICAgICAgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJEdXBsaWNhdGUga2V5ICVzIiAlIHNl
bGYuY2hpbGRyZW5baV0uZGF0YSkKICAgICAgICAgICAgIHNlbGYuY2hpbGRyZW4uaW5zZXJ0KGlu
ZGV4LCBvdGhlcikKIAogCkBAIC02Nyw5ICs2OCwxMSBAQCBjbGFzcyBLZXlWYWx1ZU5vZGUoTm9k
ZSk6CiAgICAgICAgICMgQXBwZW5kIHRoYXQgcmV0YWlucyB0aGUgaW52YXJpYW50IHRoYXQgY29u
ZGl0aW9uYWwgbm9kZXMKICAgICAgICAgIyBjb21lIGJlZm9yZSB1bmNvbmRpdGlvbmFsIG5vZGVz
CiAgICAgICAgIG90aGVyLnBhcmVudCA9IHNlbGYKLSAgICAgICAgaWYgaXNpbnN0YW5jZShvdGhl
ciwgVmFsdWVOb2RlKToKKyAgICAgICAgaWYgbm90IGlzaW5zdGFuY2Uob3RoZXIsIChMaXN0Tm9k
ZSwgVmFsdWVOb2RlLCBDb25kaXRpb25hbE5vZGUpKToKKyAgICAgICAgICAgIHJhaXNlIFR5cGVF
cnJvcgorICAgICAgICBpZiBpc2luc3RhbmNlKG90aGVyLCAoTGlzdE5vZGUsIFZhbHVlTm9kZSkp
OgogICAgICAgICAgICAgaWYgc2VsZi5jaGlsZHJlbjoKLSAgICAgICAgICAgICAgICBhc3NlcnQg
bm90IGlzaW5zdGFuY2Uoc2VsZi5jaGlsZHJlblstMV0sIFZhbHVlTm9kZSkKKyAgICAgICAgICAg
ICAgICBhc3NlcnQgbm90IGlzaW5zdGFuY2Uoc2VsZi5jaGlsZHJlblstMV0sIChMaXN0Tm9kZSwg
VmFsdWVOb2RlKSkKICAgICAgICAgICAgIHNlbGYuY2hpbGRyZW4uYXBwZW5kKG90aGVyKQogICAg
ICAgICBlbHNlOgogICAgICAgICAgICAgaWYgc2VsZi5jaGlsZHJlbiBhbmQgaXNpbnN0YW5jZShz
ZWxmLmNoaWxkcmVuWy0xXSwgVmFsdWVOb2RlKToKQEAgLTk0LDcgKzk3LDE3IEBAIGNsYXNzIEF0
b21Ob2RlKFZhbHVlTm9kZSk6CiAKIAogY2xhc3MgQ29uZGl0aW9uYWxOb2RlKE5vZGUpOgotICAg
IHBhc3MKKyAgICBkZWYgYXBwZW5kKHNlbGYsIG90aGVyKToKKyAgICAgICAgaWYgbm90IGxlbihz
ZWxmLmNoaWxkcmVuKToKKyAgICAgICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKG90aGVyLCAoQmlu
YXJ5RXhwcmVzc2lvbk5vZGUsIFVuYXJ5RXhwcmVzc2lvbk5vZGUsIFZhcmlhYmxlTm9kZSkpOgor
ICAgICAgICAgICAgICAgIHJhaXNlIFR5cGVFcnJvcgorICAgICAgICBlbHNlOgorICAgICAgICAg
ICAgaWYgbGVuKHNlbGYuY2hpbGRyZW4pID4gMToKKyAgICAgICAgICAgICAgICByYWlzZSBWYWx1
ZUVycm9yCisgICAgICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShvdGhlciwgKExpc3ROb2RlLCBW
YWx1ZU5vZGUpKToKKyAgICAgICAgICAgICAgICByYWlzZSBUeXBlRXJyb3IKKyAgICAgICAgb3Ro
ZXIucGFyZW50ID0gc2VsZgorICAgICAgICBzZWxmLmNoaWxkcmVuLmFwcGVuZChvdGhlcikKIAog
CiBjbGFzcyBVbmFyeUV4cHJlc3Npb25Ob2RlKE5vZGUpOgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVu
bmVyL3dwdG1hbmlmZXN0L3BhcnNlci5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci93cHRtYW5pZmVzdC9wYXJz
ZXIucHkKaW5kZXggODJhYWQ1ZjYxMzUwNzk1ZWI5ZTgwN2NhMzMwMTU3NjJlMWE5ZjU4MS4uODMz
ZTBiOGVkMWE2YjYzZTU5NTRjODBkNzdiMTAyYjhiMjIwY2ZhOCAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0
cnVubmVyL3dwdG1hbmlmZXN0L3BhcnNlci5weQorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvd3B0bWFuaWZl
c3QvcGFyc2VyLnB5CkBAIC0xNCwxMiArMTQsMTIgQEAKIAogZnJvbSBfX2Z1dHVyZV9fIGltcG9y
dCB1bmljb2RlX2xpdGVyYWxzCiAKLWZyb20gY1N0cmluZ0lPIGltcG9ydCBTdHJpbmdJTworZnJv
bSBzaXggaW1wb3J0IGJpbmFyeV90eXBlLCB0ZXh0X3R5cGUsIEJ5dGVzSU8KIAotZnJvbSBub2Rl
IGltcG9ydCAoQXRvbU5vZGUsIEJpbmFyeUV4cHJlc3Npb25Ob2RlLCBCaW5hcnlPcGVyYXRvck5v
ZGUsCi0gICAgICAgICAgICAgICAgICBDb25kaXRpb25hbE5vZGUsIERhdGFOb2RlLCBJbmRleE5v
ZGUsIEtleVZhbHVlTm9kZSwgTGlzdE5vZGUsCi0gICAgICAgICAgICAgICAgICBOdW1iZXJOb2Rl
LCBTdHJpbmdOb2RlLCBVbmFyeUV4cHJlc3Npb25Ob2RlLAotICAgICAgICAgICAgICAgICAgVW5h
cnlPcGVyYXRvck5vZGUsIFZhbHVlTm9kZSwgVmFyaWFibGVOb2RlKQorZnJvbSAubm9kZSBpbXBv
cnQgKE5vZGUsIEF0b21Ob2RlLCBCaW5hcnlFeHByZXNzaW9uTm9kZSwgQmluYXJ5T3BlcmF0b3JO
b2RlLAorICAgICAgICAgICAgICAgICAgIENvbmRpdGlvbmFsTm9kZSwgRGF0YU5vZGUsIEluZGV4
Tm9kZSwgS2V5VmFsdWVOb2RlLCBMaXN0Tm9kZSwKKyAgICAgICAgICAgICAgICAgICBOdW1iZXJO
b2RlLCBTdHJpbmdOb2RlLCBVbmFyeUV4cHJlc3Npb25Ob2RlLAorICAgICAgICAgICAgICAgICAg
IFVuYXJ5T3BlcmF0b3JOb2RlLCBWYWx1ZU5vZGUsIFZhcmlhYmxlTm9kZSkKIAogCiBjbGFzcyBQ
YXJzZUVycm9yKEV4Y2VwdGlvbik6CkBAIC00OSw3ICs0OSw3IEBAIGF0b21zID0geyJUcnVlIjog
VHJ1ZSwKICAgICAgICAgICJSZXNldCI6IG9iamVjdCgpfQogCiBkZWYgZGVjb2RlKHMpOgotICAg
IGFzc2VydCBpc2luc3RhbmNlKHMsIHVuaWNvZGUpCisgICAgYXNzZXJ0IGlzaW5zdGFuY2Uocywg
dGV4dF90eXBlKQogICAgIHJldHVybiBzCiAKIApAQCAtNzcsOSArNzcsOSBAQCBjbGFzcyBUb2tl
bml6ZXIob2JqZWN0KToKIAogICAgIGRlZiB0b2tlbml6ZShzZWxmLCBzdHJlYW0pOgogICAgICAg
ICBzZWxmLnJlc2V0KCkKLSAgICAgICAgYXNzZXJ0IG5vdCBpc2luc3RhbmNlKHN0cmVhbSwgdW5p
Y29kZSkKLSAgICAgICAgaWYgaXNpbnN0YW5jZShzdHJlYW0sIHN0cik6Ci0gICAgICAgICAgICBz
dHJlYW0gPSBTdHJpbmdJTyhzdHJlYW0pCisgICAgICAgIGFzc2VydCBub3QgaXNpbnN0YW5jZShz
dHJlYW0sIHRleHRfdHlwZSkKKyAgICAgICAgaWYgaXNpbnN0YW5jZShzdHJlYW0sIGJ5dGVzKToK
KyAgICAgICAgICAgIHN0cmVhbSA9IEJ5dGVzSU8oc3RyZWFtKQogICAgICAgICBpZiBub3QgaGFz
YXR0cihzdHJlYW0sICJuYW1lIik6CiAgICAgICAgICAgICBzZWxmLmZpbGVuYW1lID0gIiIKICAg
ICAgICAgZWxzZToKQEAgLTg3LDcgKzg3LDcgQEAgY2xhc3MgVG9rZW5pemVyKG9iamVjdCk6CiAK
ICAgICAgICAgc2VsZi5uZXh0X2xpbmVfc3RhdGUgPSBzZWxmLmxpbmVfc3RhcnRfc3RhdGUKICAg
ICAgICAgZm9yIGksIGxpbmUgaW4gZW51bWVyYXRlKHN0cmVhbSk6Ci0gICAgICAgICAgICBhc3Nl
cnQgaXNpbnN0YW5jZShsaW5lLCBzdHIpCisgICAgICAgICAgICBhc3NlcnQgaXNpbnN0YW5jZShs
aW5lLCBiaW5hcnlfdHlwZSkKICAgICAgICAgICAgIHNlbGYuc3RhdGUgPSBzZWxmLm5leHRfbGlu
ZV9zdGF0ZQogICAgICAgICAgICAgYXNzZXJ0IHNlbGYuc3RhdGUgaXMgbm90IE5vbmUKICAgICAg
ICAgICAgIHN0YXRlcyA9IFtdCkBAIC05NSw3ICs5NSw3IEBAIGNsYXNzIFRva2VuaXplcihvYmpl
Y3QpOgogICAgICAgICAgICAgc2VsZi5saW5lX251bWJlciA9IGkgKyAxCiAgICAgICAgICAgICBz
ZWxmLmluZGV4ID0gMAogICAgICAgICAgICAgc2VsZi5saW5lID0gbGluZS5kZWNvZGUoJ3V0Zi04
JykucnN0cmlwKCkKLSAgICAgICAgICAgIGFzc2VydCBpc2luc3RhbmNlKHNlbGYubGluZSwgdW5p
Y29kZSkKKyAgICAgICAgICAgIGFzc2VydCBpc2luc3RhbmNlKHNlbGYubGluZSwgdGV4dF90eXBl
KQogICAgICAgICAgICAgd2hpbGUgc2VsZi5zdGF0ZSAhPSBzZWxmLmVvbF9zdGF0ZToKICAgICAg
ICAgICAgICAgICBzdGF0ZXMuYXBwZW5kKHNlbGYuc3RhdGUpCiAgICAgICAgICAgICAgICAgdG9r
ZW5zID0gc2VsZi5zdGF0ZSgpCkBAIC0zMzksNyArMzM5LDE0IEBAIGNsYXNzIFRva2VuaXplcihv
YmplY3QpOgogICAgICAgICAgICAgICAgIHNwYWNlcyA9IDAKICAgICAgICAgICAgICAgICBydiAr
PSBjCiAgICAgICAgICAgICAgICAgc2VsZi5jb25zdW1lKCkKLSAgICAgICAgeWllbGQgKHRva2Vu
X3R5cGVzLnN0cmluZywgZGVjb2RlKHJ2KSkKKyAgICAgICAgcnYgPSBkZWNvZGUocnYpCisgICAg
ICAgIGlmIHJ2LnN0YXJ0c3dpdGgoImlmICIpOgorICAgICAgICAgICAgIyBIYWNrIHRvIGF2b2lk
IGEgcHJvYmxlbSB3aGVyZSBwZW9wbGUgd3JpdGUKKyAgICAgICAgICAgICMgZGlzYWJsZWQ6IGlm
IGZvbworICAgICAgICAgICAgIyBhbmQgZXhwZWN0IHRoYXQgdG8gZGlzYWJsZSBjb25kaXRpb25h
bGx5CisgICAgICAgICAgICByYWlzZSBQYXJzZUVycm9yKHNlbGYuZmlsZW5hbWUsIHNlbGYubGlu
ZV9udW1iZXIsICJTdHJpbmdzIHN0YXJ0aW5nICdpZiAnIG11c3QgYmUgcXVvdGVkICIKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIihleHByZXNzaW9ucyBtdXN0IHN0YXJ0IG9uIGEgbmV3
bGluZSBhbmQgYmUgaW5kZW50ZWQpIikKKyAgICAgICAgeWllbGQgKHRva2VuX3R5cGVzLnN0cmlu
ZywgcnYpCiAKICAgICBkZWYgY29tbWVudF9zdGF0ZShzZWxmKToKICAgICAgICAgd2hpbGUgc2Vs
Zi5jaGFyKCkgaXMgbm90IGVvbDoKQEAgLTQ3OCw3ICs0ODUsNyBAQCBjbGFzcyBUb2tlbml6ZXIo
b2JqZWN0KToKICAgICAgICAgZWxpZiBjID09ICJVIjoKICAgICAgICAgICAgIHJldHVybiBzZWxm
LmRlY29kZV9lc2NhcGUoNikKICAgICAgICAgZWxpZiBjIGluIFsiYSIsICJiIiwgImYiLCAibiIs
ICJyIiwgInQiLCAidiJdOgotICAgICAgICAgICAgcmV0dXJuIGV2YWwoIidcJXMnIiAlIGMpCisg
ICAgICAgICAgICByZXR1cm4gZXZhbChyIidcJXMnIiAlIGMpCiAgICAgICAgIGVsaWYgYyBpcyBl
b2w6CiAgICAgICAgICAgICByYWlzZSBQYXJzZUVycm9yKHNlbGYuZmlsZW5hbWUsIHNlbGYubGlu
ZV9udW1iZXIsICJFT0wgaW4gZXNjYXBlIikKICAgICAgICAgZWxzZToKQEAgLTUyMCwyMSArNTI3
LDMwIEBAIGNsYXNzIFBhcnNlcihvYmplY3QpOgogICAgICAgICBzZWxmLmV4cHJfYnVpbGRlcnMg
PSBbXQogCiAgICAgZGVmIHBhcnNlKHNlbGYsIGlucHV0KToKLSAgICAgICAgc2VsZi5yZXNldCgp
Ci0gICAgICAgIHNlbGYudG9rZW5fZ2VuZXJhdG9yID0gc2VsZi50b2tlbml6ZXIudG9rZW5pemUo
aW5wdXQpCi0gICAgICAgIHNlbGYuY29uc3VtZSgpCi0gICAgICAgIHNlbGYubWFuaWZlc3QoKQot
ICAgICAgICByZXR1cm4gc2VsZi50cmVlLm5vZGUKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAg
c2VsZi5yZXNldCgpCisgICAgICAgICAgICBzZWxmLnRva2VuX2dlbmVyYXRvciA9IHNlbGYudG9r
ZW5pemVyLnRva2VuaXplKGlucHV0KQorICAgICAgICAgICAgc2VsZi5jb25zdW1lKCkKKyAgICAg
ICAgICAgIHNlbGYubWFuaWZlc3QoKQorICAgICAgICAgICAgcmV0dXJuIHNlbGYudHJlZS5ub2Rl
CisgICAgICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZToKKyAgICAgICAgICAgIGlmIG5vdCBpc2lu
c3RhbmNlKGUsIFBhcnNlRXJyb3IpOgorICAgICAgICAgICAgICAgIHJhaXNlIFBhcnNlRXJyb3Io
c2VsZi50b2tlbml6ZXIuZmlsZW5hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBzZWxmLnRva2VuaXplci5saW5lX251bWJlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHN0cihlKSkKKyAgICAgICAgICAgIHJhaXNlCiAKICAgICBkZWYgY29uc3VtZShzZWxm
KToKICAgICAgICAgc2VsZi50b2tlbiA9IHNlbGYudG9rZW5fZ2VuZXJhdG9yLm5leHQoKQogCiAg
ICAgZGVmIGV4cGVjdChzZWxmLCB0eXBlLCB2YWx1ZT1Ob25lKToKICAgICAgICAgaWYgc2VsZi50
b2tlblswXSAhPSB0eXBlOgotICAgICAgICAgICAgcmFpc2UgUGFyc2VFcnJvcgorICAgICAgICAg
ICAgcmFpc2UgUGFyc2VFcnJvcihzZWxmLnRva2VuaXplci5maWxlbmFtZSwgc2VsZi50b2tlbml6
ZXIubGluZV9udW1iZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJUb2tlbiAne30n
IGRvZXNuJ3QgZXF1YWwgZXhwZWN0ZWQgdHlwZSAne30nIi5mb3JtYXQoc2VsZi50b2tlblswXSwg
dHlwZSkpCiAgICAgICAgIGlmIHZhbHVlIGlzIG5vdCBOb25lOgogICAgICAgICAgICAgaWYgc2Vs
Zi50b2tlblsxXSAhPSB2YWx1ZToKLSAgICAgICAgICAgICAgICByYWlzZSBQYXJzZUVycm9yCisg
ICAgICAgICAgICAgICAgcmFpc2UgUGFyc2VFcnJvcihzZWxmLnRva2VuaXplci5maWxlbmFtZSwg
c2VsZi50b2tlbml6ZXIubGluZV9udW1iZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAiVG9rZW4gJ3t9JyBkb2Vzbid0IGVxdWFsIGV4cGVjdGVkIHZhbHVlICd7fSciLmZvcm1h
dChzZWxmLnRva2VuWzFdLCB2YWx1ZSkpCiAKICAgICAgICAgc2VsZi5jb25zdW1lKCkKIApAQCAt
NTUzLDcgKzU2OSw4IEBAIGNsYXNzIFBhcnNlcihvYmplY3QpOgogICAgICAgICB3aGlsZSBzZWxm
LnRva2VuID09ICh0b2tlbl90eXBlcy5wYXJlbiwgIlsiKToKICAgICAgICAgICAgIHNlbGYuY29u
c3VtZSgpCiAgICAgICAgICAgICBpZiBzZWxmLnRva2VuWzBdICE9IHRva2VuX3R5cGVzLnN0cmlu
ZzoKLSAgICAgICAgICAgICAgICByYWlzZSBQYXJzZUVycm9yCisgICAgICAgICAgICAgICAgcmFp
c2UgUGFyc2VFcnJvcihzZWxmLnRva2VuaXplci5maWxlbmFtZSwgc2VsZi50b2tlbml6ZXIubGlu
ZV9udW1iZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiVG9rZW4gJ3t9JyBp
cyBub3QgYSBzdHJpbmciLmZvcm1hdChzZWxmLnRva2VuWzBdKSkKICAgICAgICAgICAgIHNlbGYu
dHJlZS5hcHBlbmQoRGF0YU5vZGUoc2VsZi50b2tlblsxXSkpCiAgICAgICAgICAgICBzZWxmLmNv
bnN1bWUoKQogICAgICAgICAgICAgc2VsZi5leHBlY3QodG9rZW5fdHlwZXMucGFyZW4sICJdIikK
QEAgLTU4Miw3ICs1OTksOCBAQCBjbGFzcyBQYXJzZXIob2JqZWN0KToKICAgICAgICAgZWxpZiBz
ZWxmLnRva2VuWzBdID09IHRva2VuX3R5cGVzLmF0b206CiAgICAgICAgICAgICBzZWxmLmF0b20o
KQogICAgICAgICBlbHNlOgotICAgICAgICAgICAgcmFpc2UgUGFyc2VFcnJvcgorICAgICAgICAg
ICAgcmFpc2UgUGFyc2VFcnJvcihzZWxmLnRva2VuaXplci5maWxlbmFtZSwgc2VsZi50b2tlbml6
ZXIubGluZV9udW1iZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJUb2tlbiAne30n
IGlzIG5vdCBhIGtub3duIHR5cGUiLmZvcm1hdChzZWxmLnRva2VuWzBdKSkKIAogICAgIGRlZiBs
aXN0X3ZhbHVlKHNlbGYpOgogICAgICAgICBzZWxmLnRyZWUuYXBwZW5kKExpc3ROb2RlKCkpCkBA
IC02ODcsMTMgKzcwNSwxNiBAQCBjbGFzcyBUcmVlYnVpbGRlcihvYmplY3QpOgogICAgICAgICBz
ZWxmLm5vZGUgPSByb290CiAKICAgICBkZWYgYXBwZW5kKHNlbGYsIG5vZGUpOgorICAgICAgICBh
c3NlcnQgaXNpbnN0YW5jZShub2RlLCBOb2RlKQogICAgICAgICBzZWxmLm5vZGUuYXBwZW5kKG5v
ZGUpCiAgICAgICAgIHNlbGYubm9kZSA9IG5vZGUKKyAgICAgICAgYXNzZXJ0IHNlbGYubm9kZSBp
cyBub3QgTm9uZQogICAgICAgICByZXR1cm4gbm9kZQogCiAgICAgZGVmIHBvcChzZWxmKToKICAg
ICAgICAgbm9kZSA9IHNlbGYubm9kZQogICAgICAgICBzZWxmLm5vZGUgPSBzZWxmLm5vZGUucGFy
ZW50CisgICAgICAgIGFzc2VydCBzZWxmLm5vZGUgaXMgbm90IE5vbmUKICAgICAgICAgcmV0dXJu
IG5vZGUKIAogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvd3B0bWFuaWZlc3Qvc2VyaWFsaXpl
ci5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
d3B0cnVubmVyL3dwdHJ1bm5lci93cHRtYW5pZmVzdC9zZXJpYWxpemVyLnB5CmluZGV4IGE3ZTAx
MzEzYWU1NDA3YzYwODZjNjBjNDVkNGFiNzA1OWNjYjJiYTIuLjNiMjljOTllZGU3Y2FjNThlZGU1
ZDQ4MjM3Njk2ZTMwYzlkODU2YzcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci93cHRtYW5pZmVz
dC9zZXJpYWxpemVyLnB5CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci93cHRtYW5pZmVzdC9zZXJpYWxpemVy
LnB5CkBAIC0xLDkgKzEsOSBAQAotZnJvbSBub2RlIGltcG9ydCBOb2RlVmlzaXRvciwgVmFsdWVO
b2RlLCBMaXN0Tm9kZSwgQmluYXJ5RXhwcmVzc2lvbk5vZGUKLWZyb20gcGFyc2VyIGltcG9ydCBh
dG9tcywgcHJlY2VkZW5jZQorZnJvbSAubm9kZSBpbXBvcnQgTm9kZVZpc2l0b3IsIFZhbHVlTm9k
ZSwgTGlzdE5vZGUsIEJpbmFyeUV4cHJlc3Npb25Ob2RlCitmcm9tIC5wYXJzZXIgaW1wb3J0IGF0
b21zLCBwcmVjZWRlbmNlCiAKLWF0b21fbmFtZXMgPSB7djoiQCVzIiAlIGsgZm9yIChrLHYpIGlu
IGF0b21zLml0ZXJpdGVtcygpfQorYXRvbV9uYW1lcyA9IHt2OiJAJXMiICUgayBmb3IgKGssdikg
aW4gYXRvbXMuaXRlbXMoKX0KIAotbmFtZWRfZXNjYXBlcyA9IHNldChbIlxhIiwgIlxiIiwgIlxm
IiwgIlxuIiwgIlxyIiwgIlx0IiwgIlx2Il0pCituYW1lZF9lc2NhcGVzID0geyJcYSIsICJcYiIs
ICJcZiIsICJcbiIsICJcciIsICJcdCIsICJcdiJ9CiAKIGRlZiBlc2NhcGUoc3RyaW5nLCBleHRy
YXM9IiIpOgogICAgICMgQXNzdW1lcyBpbnB1dCBieXRlcyBhcmUgZWl0aGVyIFVURjggYnl0ZXMg
b3IgdW5pY29kZS4KQEAgLTc4LDggKzc4LDEwIEBAIGNsYXNzIE1hbmlmZXN0U2VyaWFsaXplcihO
b2RlVmlzaXRvcik6CiAgICAgICAgICAgICBkYXRhID0gdW5pY29kZShub2RlLmRhdGEpCiAgICAg
ICAgIGVsc2U6CiAgICAgICAgICAgICBkYXRhID0gbm9kZS5kYXRhCi0gICAgICAgIGlmICIjIiBp
biBkYXRhIG9yIChpc2luc3RhbmNlKG5vZGUucGFyZW50LCBMaXN0Tm9kZSkgYW5kCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAoIiwiIGluIGRhdGEgb3IgIl0iIGluIGRhdGEpKToKKyAgICAg
ICAgaWYgKCIjIiBpbiBkYXRhIG9yCisgICAgICAgICAgICBkYXRhLnN0YXJ0c3dpdGgoImlmICIp
IG9yCisgICAgICAgICAgICAoaXNpbnN0YW5jZShub2RlLnBhcmVudCwgTGlzdE5vZGUpIGFuZAor
ICAgICAgICAgICAgICgiLCIgaW4gZGF0YSBvciAiXSIgaW4gZGF0YSkpKToKICAgICAgICAgICAg
IGlmICJcIiIgaW4gZGF0YToKICAgICAgICAgICAgICAgICBxdW90ZSA9ICInIgogICAgICAgICAg
ICAgZWxzZToKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci93cHRtYW5pZmVzdC90ZXN0cy9fX2lu
aXRfXy5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvd3B0cnVubmVyL3dwdHJ1bm5lci93cHRtYW5pZmVzdC90ZXN0cy9fX2luaXRfXy5weQppbmRl
eCBhNjgzNGI4Mjg1YTU2YmVmMGUxNTQzZmQ5MDFjN2U2ZjJmOGJjMjAyLi5lNjlkZTI5YmIyZDFk
NjQzNGI4YjI5YWU3NzVhZDhjMmU0OGM1MzkxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvd3B0
bWFuaWZlc3QvdGVzdHMvX19pbml0X18ucHkKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3dwdG1hbmlmZXN0
L3Rlc3RzL19faW5pdF9fLnB5CkBAIC0xICswLDAgQEAKLSMgVGhpcyBmaWxlIGlzIHJlcXVpcmVk
IGZvciBQeXRob24gdG8gc2VhcmNoIHRoaXMgZGlyZWN0b3J5IGZvciBtb2R1bGVzLgpcIE5vIG5l
d2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci93cHRtYW5pZmVz
dC90ZXN0cy90ZXN0X2NvbmRpdGlvbmFsLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3dwdG1hbmlmZXN0L3Rl
c3RzL3Rlc3RfY29uZGl0aW9uYWwucHkKaW5kZXggOWRhMWEwZjE4MGNhMjNlOGNhZGIyYzliNDMw
ZTk4M2JhNzVkYmNhMC4uZmJjNzVlYzgzOTBmYTM0YWI3ZTNjYWEzOTFjM2U2ZTc4MzdhNTU0ZCAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy93cHRydW5uZXIvd3B0cnVubmVyL3dwdG1hbmlmZXN0L3Rlc3RzL3Rlc3RfY29uZGl0aW9u
YWwucHkKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy93cHRydW5uZXIvd3B0cnVubmVyL3dwdG1hbmlmZXN0L3Rlc3RzL3Rlc3RfY29uZGl0aW9u
YWwucHkKQEAgLTEsOSArMSwxMyBAQAoraW1wb3J0IHB5dGVzdAoraW1wb3J0IHN5cwogaW1wb3J0
IHVuaXR0ZXN0CiAKIGZyb20gLi5iYWNrZW5kcyBpbXBvcnQgY29uZGl0aW9uYWwKIGZyb20gLi5u
b2RlIGltcG9ydCBCaW5hcnlFeHByZXNzaW9uTm9kZSwgQmluYXJ5T3BlcmF0b3JOb2RlLCBWYXJp
YWJsZU5vZGUsIE51bWJlck5vZGUKIAogCitAcHl0ZXN0Lm1hcmsueGZhaWwoc3lzLnZlcnNpb25b
MF0gPT0gIjMiLAorICAgICAgICAgICAgICAgICAgIHJlYXNvbj0id3B0bWFuaWZlc3QucGFyc2Vy
IGRvZXNuJ3Qgc3VwcG9ydCBweTMiKQogY2xhc3MgVGVzdENvbmRpdGlvbmFsKHVuaXR0ZXN0LlRl
c3RDYXNlKToKICAgICBkZWYgY29tcGlsZShzZWxmLCBpbnB1dF90ZXh0KToKICAgICAgICAgcmV0
dXJuIGNvbmRpdGlvbmFsLmNvbXBpbGUoaW5wdXRfdGV4dCkKQEAgLTEzOCw0ICsxNDIsNCBAQCBr
ZXlfMTogb3RoZXJfdmFsdWUKICAgICAgICAgc2VsZi5hc3NlcnRUcnVlKG1hbmlmZXN0Lmhhc19r
ZXkoImtleV8xIikpCiAgICAgICAgIHNlbGYuYXNzZXJ0RmFsc2UobWFuaWZlc3QuaGFzX2tleSgi
a2V5XzIiKSkKIAotICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhzZXQobWFuaWZlc3QuaXRlcmtl
eXMoKSksIHNldChbImtleSIsICJrZXlfMSJdKSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMo
c2V0KG1hbmlmZXN0Lml0ZXJrZXlzKCkpLCB7ImtleSIsICJrZXlfMSJ9KQpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5u
ZXIvd3B0cnVubmVyL3dwdG1hbmlmZXN0L3Rlc3RzL3Rlc3RfcGFyc2VyLnB5IGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVu
bmVyL3dwdG1hbmlmZXN0L3Rlc3RzL3Rlc3RfcGFyc2VyLnB5CmluZGV4IDk4YjU0ZGMxMWVhOGEw
MzNiOGVlNjI2YjVmOGJiOTI0NzU5OTU5Y2MuLmFkNTMyZGQ5MmVhMjA3ZmZlZmVjOWZjMmJlNWY3
NDU3YjhjODYxZGMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci93cHRtYW5pZmVzdC90ZXN0cy90
ZXN0X3BhcnNlci5weQorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvd3B0bWFuaWZlc3QvdGVzdHMvdGVzdF9w
YXJzZXIucHkKQEAgLTEsNiArMSw4IEBACitpbXBvcnQgcHl0ZXN0CitpbXBvcnQgc3lzCiBpbXBv
cnQgdW5pdHRlc3QKIAotZnJvbSBjU3RyaW5nSU8gaW1wb3J0IFN0cmluZ0lPCitmcm9tIHNpeC5t
b3ZlcyBpbXBvcnQgY1N0cmluZ0lPIGFzIFN0cmluZ0lPCiAKIGZyb20gLi4gaW1wb3J0IHBhcnNl
cgogCkBAIC04LDYgKzEwLDggQEAgZnJvbSAuLiBpbXBvcnQgcGFyc2VyCiAjIHVzZSB0ZXN0X3Nl
cmlhbGl6ZXIgZm9yIHRoZSBtYWpvcml0eSBvZiBjYXNlcwogCiAKK0BweXRlc3QubWFyay54ZmFp
bChzeXMudmVyc2lvblswXSA9PSAiMyIsCisgICAgICAgICAgICAgICAgICAgcmVhc29uPSJ3cHRt
YW5pZmVzdC5wYXJzZXIgZG9lc24ndCBzdXBwb3J0IHB5MyIpCiBjbGFzcyBUZXN0RXhwcmVzc2lv
bih1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAgZGVmIHNldFVwKHNlbGYpOgogICAgICAgICBzZWxm
LnBhcnNlciA9IHBhcnNlci5QYXJzZXIoKQpAQCAtODYsNyArOTAsNyBAQCBrZXk6CiAgICAgICAg
IHNlbGYuY29tcGFyZSgKICAgICAgICAgICAgICIiIgoga2V5OgotICBpZiB4ID09IDE6IGlmIGI6
IHZhbHVlIiIiLAorICBpZiB4ID09IDE6ICdpZiBiOiB2YWx1ZSciIiIsCiAgICAgICAgICAgICBb
IkRhdGFOb2RlIiwgTm9uZSwKICAgICAgICAgICAgICBbWyJLZXlWYWx1ZU5vZGUiLCAia2V5IiwK
ICAgICAgICAgICAgICAgIFtbIkNvbmRpdGlvbmFsTm9kZSIsIE5vbmUsCkBAIC0xMDcsNiArMTEx
LDEwIEBAIGtleToKICAgICAgICAgd2l0aCBzZWxmLmFzc2VydFJhaXNlcyhwYXJzZXIuUGFyc2VF
cnJvcik6CiAgICAgICAgICAgICBzZWxmLnBhcnNlKCJrZXk6IEB0cnVlIikKIAorICAgIGRlZiB0
ZXN0X2lmXzEoc2VsZik6CisgICAgICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXMocGFyc2VyLlBh
cnNlRXJyb3IpOgorICAgICAgICAgICAgc2VsZi5wYXJzZSgia2V5OiBpZiBmb28iKQorCiAKIGlm
IF9fbmFtZV9fID09ICJfX21haW5fXyI6CiAgICAgdW5pdHRlc3QubWFpbigpCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1
bm5lci93cHRydW5uZXIvd3B0bWFuaWZlc3QvdGVzdHMvdGVzdF9zZXJpYWxpemVyLnB5IGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIv
d3B0cnVubmVyL3dwdG1hbmlmZXN0L3Rlc3RzL3Rlc3Rfc2VyaWFsaXplci5weQppbmRleCAwMjI4
MGU1MWY4NDVjODE0NGI5NmJkZThiNTg4YjliN2MzNzZhMzQ1Li43ZmU3YWM4NWNiOGExNGYwNTEx
M2NiZmQ0ODNiOGQwNDJhMDdiOTg5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvd3B0bWFuaWZl
c3QvdGVzdHMvdGVzdF9zZXJpYWxpemVyLnB5CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci93cHRtYW5pZmVz
dC90ZXN0cy90ZXN0X3NlcmlhbGl6ZXIucHkKQEAgLTYsNiArNiw4IEBAIGltcG9ydCBweXRlc3QK
IGZyb20gLi4gaW1wb3J0IHBhcnNlciwgc2VyaWFsaXplcgogCiAKK0BweXRlc3QubWFyay54ZmFp
bChzeXMudmVyc2lvblswXSA9PSAiMyIsCisgICAgICAgICAgICAgICAgICAgcmVhc29uPSJ3cHRt
YW5pZmVzdC5wYXJzZXIgZG9lc24ndCBzdXBwb3J0IHB5MyIpCiBjbGFzcyBUb2tlbml6ZXJUZXN0
KHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICBkZWYgc2V0VXAoc2VsZik6CiAgICAgICAgIHNlbGYu
c2VyaWFsaXplciA9IHNlcmlhbGl6ZXIuTWFuaWZlc3RTZXJpYWxpemVyKCkKQEAgLTE0NCw3ICsx
NDYsNyBAQCBjbGFzcyBUb2tlbml6ZXJUZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKICIiIikKIAog
ICAgIGRlZiB0ZXN0XzE4KHNlbGYpOgotICAgICAgICBzZWxmLmNvbXBhcmUoIiIia2V5OiBcXQor
ICAgICAgICBzZWxmLmNvbXBhcmUociIiImtleTogXF0KICAgICAgICAgIiIiLCAiIiJrZXk6IF0K
ICIiIikKIApAQCAtMjI4LDMgKzIzMCw3IEBAIGNsYXNzIFRva2VuaXplclRlc3QodW5pdHRlc3Qu
VGVzdENhc2UpOgogICAgICAgICBzZWxmLmNvbXBhcmUoIiIiZm9vOgogICBpZiBhIG9yIGI6IFsx
LCAyXQogIiIiKQorCisgICAgZGVmIHRlc3RfaWZfc3RyaW5nXzAoc2VsZik6CisgICAgICAgIHNl
bGYuY29tcGFyZSgiIiJmb286ICJpZiBiYXIiCisiIiIpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5u
ZXIvd3B0bWFuaWZlc3QvdGVzdHMvdGVzdF9zdGF0aWMucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvd3B0bWFu
aWZlc3QvdGVzdHMvdGVzdF9zdGF0aWMucHkKaW5kZXggZjYzODY5NjM2ZGE3OWNkY2RjOTYxZTEz
N2Q0ZjA0NDA1NWQ3NGRlNC4uYWFmODQ2NTkxNTI0NmFhYzU4YTA2OGRjZmMwNjk3YjhjOWFmNDE4
MSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3dwdG1hbmlmZXN0L3Rlc3RzL3Rlc3Rfc3RhdGlj
LnB5CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvd3B0cnVubmVyL3dwdHJ1bm5lci93cHRtYW5pZmVzdC90ZXN0cy90ZXN0X3N0YXRpYy5weQpA
QCAtMSwzICsxLDUgQEAKK2ltcG9ydCBweXRlc3QKK2ltcG9ydCBzeXMKIGltcG9ydCB1bml0dGVz
dAogCiBmcm9tIC4uYmFja2VuZHMgaW1wb3J0IHN0YXRpYwpAQCAtNiw2ICs4LDggQEAgZnJvbSAu
LmJhY2tlbmRzIGltcG9ydCBzdGF0aWMKICMgdXNlIHRlc3Rfc2VyaWFsaXplciBmb3IgdGhlIG1h
am9yaXR5IG9mIGNhc2VzCiAKIAorQHB5dGVzdC5tYXJrLnhmYWlsKHN5cy52ZXJzaW9uWzBdID09
ICIzIiwKKyAgICAgICAgICAgICAgICAgICByZWFzb249IndwdG1hbmlmZXN0LnBhcnNlciBkb2Vz
bid0IHN1cHBvcnQgcHkzIikKIGNsYXNzIFRlc3RTdGF0aWModW5pdHRlc3QuVGVzdENhc2UpOgog
ICAgIGRlZiBjb21waWxlKHNlbGYsIGlucHV0X3RleHQsIGlucHV0X2RhdGEpOgogICAgICAgICBy
ZXR1cm4gc3RhdGljLmNvbXBpbGUoaW5wdXRfdGV4dCwgaW5wdXRfZGF0YSkKQEAgLTgzLDggKzg3
LDggQEAga2V5XzE6IG90aGVyX3ZhbHVlCiAgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShtYW5pZmVz
dC5oYXNfa2V5KCJrZXlfMSIpKQogICAgICAgICBzZWxmLmFzc2VydEZhbHNlKG1hbmlmZXN0Lmhh
c19rZXkoImtleV8yIikpCiAKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMoc2V0KG1hbmlmZXN0
Lml0ZXJrZXlzKCkpLCBzZXQoWyJrZXkiLCAia2V5XzEiXSkpCi0gICAgICAgIHNlbGYuYXNzZXJ0
RXF1YWxzKHNldChtYW5pZmVzdC5pdGVydmFsdWVzKCkpLCBzZXQoWyJ2YWx1ZV8xIiwgIm90aGVy
X3ZhbHVlIl0pKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhzZXQobWFuaWZlc3QuaXRlcmtl
eXMoKSksIHsia2V5IiwgImtleV8xIn0pCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKHNldCht
YW5pZmVzdC5pdGVydmFsdWVzKCkpLCB7InZhbHVlXzEiLCAib3RoZXJfdmFsdWUifSkKIAogICAg
IGRlZiB0ZXN0X2lzX2VtcHR5XzEoc2VsZik6CiAgICAgICAgIGRhdGEgPSAiIiIKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0
cnVubmVyL3dwdHJ1bm5lci93cHRtYW5pZmVzdC90ZXN0cy90ZXN0X3Rva2VuaXplci5weSBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVy
L3dwdHJ1bm5lci93cHRtYW5pZmVzdC90ZXN0cy90ZXN0X3Rva2VuaXplci5weQppbmRleCBhNjRj
ZTBjN2JiN2Q4ZDA4OWE4Y2IxMzY1YzA0NzdhMDg2NTJlYWNjLi42NmI1ODA1NTQyYjNhYmU2MDA4
NWRjN2ZlMDQ4MWExYjJmOGNiMmY1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvd3B0bWFuaWZl
c3QvdGVzdHMvdGVzdF90b2tlbml6ZXIucHkKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3dwdG1hbmlmZXN0
L3Rlc3RzL3Rlc3RfdG9rZW5pemVyLnB5CkBAIC0xLDIxICsxLDE1IEBACi1pbXBvcnQgc3lzCi1p
bXBvcnQgb3MKIGltcG9ydCB1bml0dGVzdAogCi1zeXMucGF0aC5pbnNlcnQoMCwgb3MucGF0aC5h
YnNwYXRoKCIuLiIpKQotZnJvbSBjU3RyaW5nSU8gaW1wb3J0IFN0cmluZ0lPCi0KIGZyb20gLi4g
aW1wb3J0IHBhcnNlcgogZnJvbSAuLnBhcnNlciBpbXBvcnQgdG9rZW5fdHlwZXMKIAotCiBjbGFz
cyBUb2tlbml6ZXJUZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICBkZWYgc2V0VXAoc2VsZik6
CiAgICAgICAgIHNlbGYudG9rZW5pemVyID0gcGFyc2VyLlRva2VuaXplcigpCiAKICAgICBkZWYg
dG9rZW5pemUoc2VsZiwgaW5wdXRfc3RyKToKICAgICAgICAgcnYgPSBbXQotICAgICAgICBmb3Ig
aXRlbSBpbiBzZWxmLnRva2VuaXplci50b2tlbml6ZShTdHJpbmdJTyhpbnB1dF9zdHIpKToKKyAg
ICAgICAgZm9yIGl0ZW0gaW4gc2VsZi50b2tlbml6ZXIudG9rZW5pemUoaW5wdXRfc3RyKToKICAg
ICAgICAgICAgIHJ2LmFwcGVuZChpdGVtKQogICAgICAgICAgICAgaWYgaXRlbVswXSA9PSB0b2tl
bl90eXBlcy5lb2Y6CiAgICAgICAgICAgICAgICAgYnJlYWsKQEAgLTI0LDEyOCArMTgsMTI4IEBA
IGNsYXNzIFRva2VuaXplclRlc3QodW5pdHRlc3QuVGVzdENhc2UpOgogICAgIGRlZiBjb21wYXJl
KHNlbGYsIGlucHV0X3RleHQsIGV4cGVjdGVkKToKICAgICAgICAgZXhwZWN0ZWQgPSBleHBlY3Rl
ZCArIFsodG9rZW5fdHlwZXMuZW9mLCBOb25lKV0KICAgICAgICAgYWN0dWFsID0gc2VsZi50b2tl
bml6ZShpbnB1dF90ZXh0KQotICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhhY3R1YWwsIGV4cGVj
dGVkKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGFjdHVhbCwgZXhwZWN0ZWQpCiAKICAgICBk
ZWYgdGVzdF9oZWFkaW5nXzAoc2VsZik6Ci0gICAgICAgIHNlbGYuY29tcGFyZSgiIiJbSGVhZGlu
ZyB0ZXh0XSIiIiwKKyAgICAgICAgc2VsZi5jb21wYXJlKGIiIiJbSGVhZGluZyB0ZXh0XSIiIiwK
ICAgICAgICAgICAgICAgICAgICAgIFsodG9rZW5fdHlwZXMucGFyZW4sICJbIiksCiAgICAgICAg
ICAgICAgICAgICAgICAgKHRva2VuX3R5cGVzLnN0cmluZywgIkhlYWRpbmcgdGV4dCIpLAogICAg
ICAgICAgICAgICAgICAgICAgICh0b2tlbl90eXBlcy5wYXJlbiwgIl0iKV0pCiAKICAgICBkZWYg
dGVzdF9oZWFkaW5nXzEoc2VsZik6Ci0gICAgICAgIHNlbGYuY29tcGFyZSgiIiJbSGVhZGluZyBb
dGV4dFxdXSIiIiwKKyAgICAgICAgc2VsZi5jb21wYXJlKGJyIiIiW0hlYWRpbmcgW3RleHRcXV0i
IiIsCiAgICAgICAgICAgICAgICAgICAgICBbKHRva2VuX3R5cGVzLnBhcmVuLCAiWyIpLAogICAg
ICAgICAgICAgICAgICAgICAgICh0b2tlbl90eXBlcy5zdHJpbmcsICJIZWFkaW5nIFt0ZXh0XSIp
LAogICAgICAgICAgICAgICAgICAgICAgICh0b2tlbl90eXBlcy5wYXJlbiwgIl0iKV0pCiAKICAg
ICBkZWYgdGVzdF9oZWFkaW5nXzIoc2VsZik6Ci0gICAgICAgIHNlbGYuY29tcGFyZSgiIiJbSGVh
ZGluZyAjdGV4dF0iIiIsCisgICAgICAgIHNlbGYuY29tcGFyZShiIiIiW0hlYWRpbmcgI3RleHRd
IiIiLAogICAgICAgICAgICAgICAgICAgICAgWyh0b2tlbl90eXBlcy5wYXJlbiwgIlsiKSwKICAg
ICAgICAgICAgICAgICAgICAgICAodG9rZW5fdHlwZXMuc3RyaW5nLCAiSGVhZGluZyAjdGV4dCIp
LAogICAgICAgICAgICAgICAgICAgICAgICh0b2tlbl90eXBlcy5wYXJlbiwgIl0iKV0pCiAKICAg
ICBkZWYgdGVzdF9oZWFkaW5nXzMoc2VsZik6Ci0gICAgICAgIHNlbGYuY29tcGFyZSgiIiJbSGVh
ZGluZyBbXF10ZXh0XSIiIiwKKyAgICAgICAgc2VsZi5jb21wYXJlKGJyIiIiW0hlYWRpbmcgW1xd
dGV4dF0iIiIsCiAgICAgICAgICAgICAgICAgICAgICBbKHRva2VuX3R5cGVzLnBhcmVuLCAiWyIp
LAogICAgICAgICAgICAgICAgICAgICAgICh0b2tlbl90eXBlcy5zdHJpbmcsICJIZWFkaW5nIFtd
dGV4dCIpLAogICAgICAgICAgICAgICAgICAgICAgICh0b2tlbl90eXBlcy5wYXJlbiwgIl0iKV0p
CiAKICAgICBkZWYgdGVzdF9oZWFkaW5nXzQoc2VsZik6CiAgICAgICAgIHdpdGggc2VsZi5hc3Nl
cnRSYWlzZXMocGFyc2VyLlBhcnNlRXJyb3IpOgotICAgICAgICAgICAgc2VsZi50b2tlbml6ZSgi
W0hlYWRpbmciKQorICAgICAgICAgICAgc2VsZi50b2tlbml6ZShiIltIZWFkaW5nIikKIAogICAg
IGRlZiB0ZXN0X2hlYWRpbmdfNShzZWxmKToKLSAgICAgICAgc2VsZi5jb21wYXJlKCIiIltIZWFk
aW5nIFtcXXRleHRdICNjb21tZW50IiIiLAorICAgICAgICBzZWxmLmNvbXBhcmUoYnIiIiJbSGVh
ZGluZyBbXF10ZXh0XSAjY29tbWVudCIiIiwKICAgICAgICAgICAgICAgICAgICAgIFsodG9rZW5f
dHlwZXMucGFyZW4sICJbIiksCiAgICAgICAgICAgICAgICAgICAgICAgKHRva2VuX3R5cGVzLnN0
cmluZywgIkhlYWRpbmcgW110ZXh0IiksCiAgICAgICAgICAgICAgICAgICAgICAgKHRva2VuX3R5
cGVzLnBhcmVuLCAiXSIpXSkKIAogICAgIGRlZiB0ZXN0X2hlYWRpbmdfNihzZWxmKToKLSAgICAg
ICAgc2VsZi5jb21wYXJlKHIiIiJbSGVhZGluZyBcdHRleHRdIiIiLAorICAgICAgICBzZWxmLmNv
bXBhcmUoYnIiIiJbSGVhZGluZyBcdHRleHRdIiIiLAogICAgICAgICAgICAgICAgICAgICAgWyh0
b2tlbl90eXBlcy5wYXJlbiwgIlsiKSwKICAgICAgICAgICAgICAgICAgICAgICAodG9rZW5fdHlw
ZXMuc3RyaW5nLCAiSGVhZGluZyBcdHRleHQiKSwKICAgICAgICAgICAgICAgICAgICAgICAodG9r
ZW5fdHlwZXMucGFyZW4sICJdIildKQogCiAgICAgZGVmIHRlc3Rfa2V5XzAoc2VsZik6Ci0gICAg
ICAgIHNlbGYuY29tcGFyZSgiIiJrZXk6dmFsdWUiIiIsCisgICAgICAgIHNlbGYuY29tcGFyZShi
IiIia2V5OnZhbHVlIiIiLAogICAgICAgICAgICAgICAgICAgICAgWyh0b2tlbl90eXBlcy5zdHJp
bmcsICJrZXkiKSwKICAgICAgICAgICAgICAgICAgICAgICAodG9rZW5fdHlwZXMuc2VwYXJhdG9y
LCAiOiIpLAogICAgICAgICAgICAgICAgICAgICAgICh0b2tlbl90eXBlcy5zdHJpbmcsICJ2YWx1
ZSIpXSkKIAogICAgIGRlZiB0ZXN0X2tleV8xKHNlbGYpOgotICAgICAgICBzZWxmLmNvbXBhcmUo
IiIia2V5ICA6ICB2YWx1ZSIiIiwKKyAgICAgICAgc2VsZi5jb21wYXJlKGIiIiJrZXkgIDogIHZh
bHVlIiIiLAogICAgICAgICAgICAgICAgICAgICAgWyh0b2tlbl90eXBlcy5zdHJpbmcsICJrZXki
KSwKICAgICAgICAgICAgICAgICAgICAgICAodG9rZW5fdHlwZXMuc2VwYXJhdG9yLCAiOiIpLAog
ICAgICAgICAgICAgICAgICAgICAgICh0b2tlbl90eXBlcy5zdHJpbmcsICJ2YWx1ZSIpXSkKIAog
ICAgIGRlZiB0ZXN0X2tleV8yKHNlbGYpOgotICAgICAgICBzZWxmLmNvbXBhcmUoIiIia2V5ICA6
ICB2YWwgdWUiIiIsCisgICAgICAgIHNlbGYuY29tcGFyZShiIiIia2V5ICA6ICB2YWwgdWUiIiIs
CiAgICAgICAgICAgICAgICAgICAgICBbKHRva2VuX3R5cGVzLnN0cmluZywgImtleSIpLAogICAg
ICAgICAgICAgICAgICAgICAgICh0b2tlbl90eXBlcy5zZXBhcmF0b3IsICI6IiksCiAgICAgICAg
ICAgICAgICAgICAgICAgKHRva2VuX3R5cGVzLnN0cmluZywgInZhbCB1ZSIpXSkKIAogICAgIGRl
ZiB0ZXN0X2tleV8zKHNlbGYpOgotICAgICAgICBzZWxmLmNvbXBhcmUoIiIia2V5OiB2YWx1ZSNj
b21tZW50IiIiLAorICAgICAgICBzZWxmLmNvbXBhcmUoYiIiImtleTogdmFsdWUjY29tbWVudCIi
IiwKICAgICAgICAgICAgICAgICAgICAgIFsodG9rZW5fdHlwZXMuc3RyaW5nLCAia2V5IiksCiAg
ICAgICAgICAgICAgICAgICAgICAgKHRva2VuX3R5cGVzLnNlcGFyYXRvciwgIjoiKSwKICAgICAg
ICAgICAgICAgICAgICAgICAodG9rZW5fdHlwZXMuc3RyaW5nLCAidmFsdWUiKV0pCiAKICAgICBk
ZWYgdGVzdF9rZXlfNChzZWxmKToKICAgICAgICAgd2l0aCBzZWxmLmFzc2VydFJhaXNlcyhwYXJz
ZXIuUGFyc2VFcnJvcik6Ci0gICAgICAgICAgICBzZWxmLnRva2VuaXplKCIiImtlIHk6IHZhbHVl
IiIiKQorICAgICAgICAgICAgc2VsZi50b2tlbml6ZShiIiIia2UgeTogdmFsdWUiIiIpCiAKICAg
ICBkZWYgdGVzdF9rZXlfNShzZWxmKToKICAgICAgICAgd2l0aCBzZWxmLmFzc2VydFJhaXNlcyhw
YXJzZXIuUGFyc2VFcnJvcik6Ci0gICAgICAgICAgICBzZWxmLnRva2VuaXplKCIiImtleSIiIikK
KyAgICAgICAgICAgIHNlbGYudG9rZW5pemUoYiIiImtleSIiIikKIAogICAgIGRlZiB0ZXN0X2tl
eV82KHNlbGYpOgotICAgICAgICBzZWxmLmNvbXBhcmUoIiIia2V5OiAidmFsdWVcIiIiIiwKKyAg
ICAgICAgc2VsZi5jb21wYXJlKGIiIiJrZXk6ICJ2YWx1ZVwiIiIiLAogICAgICAgICAgICAgICAg
ICAgICAgWyh0b2tlbl90eXBlcy5zdHJpbmcsICJrZXkiKSwKICAgICAgICAgICAgICAgICAgICAg
ICAodG9rZW5fdHlwZXMuc2VwYXJhdG9yLCAiOiIpLAogICAgICAgICAgICAgICAgICAgICAgICh0
b2tlbl90eXBlcy5zdHJpbmcsICJ2YWx1ZSIpXSkKIAogICAgIGRlZiB0ZXN0X2tleV83KHNlbGYp
OgotICAgICAgICBzZWxmLmNvbXBhcmUoIiIia2V5OiAndmFsdWUnIiIiLAorICAgICAgICBzZWxm
LmNvbXBhcmUoYiIiImtleTogJ3ZhbHVlJyIiIiwKICAgICAgICAgICAgICAgICAgICAgIFsodG9r
ZW5fdHlwZXMuc3RyaW5nLCAia2V5IiksCiAgICAgICAgICAgICAgICAgICAgICAgKHRva2VuX3R5
cGVzLnNlcGFyYXRvciwgIjoiKSwKICAgICAgICAgICAgICAgICAgICAgICAodG9rZW5fdHlwZXMu
c3RyaW5nLCAidmFsdWUiKV0pCiAKICAgICBkZWYgdGVzdF9rZXlfOChzZWxmKToKLSAgICAgICAg
c2VsZi5jb21wYXJlKCIiImtleTogIiN2YWx1ZVwiIiIiLAorICAgICAgICBzZWxmLmNvbXBhcmUo
YiIiImtleTogIiN2YWx1ZVwiIiIiLAogICAgICAgICAgICAgICAgICAgICAgWyh0b2tlbl90eXBl
cy5zdHJpbmcsICJrZXkiKSwKICAgICAgICAgICAgICAgICAgICAgICAodG9rZW5fdHlwZXMuc2Vw
YXJhdG9yLCAiOiIpLAogICAgICAgICAgICAgICAgICAgICAgICh0b2tlbl90eXBlcy5zdHJpbmcs
ICIjdmFsdWUiKV0pCiAKICAgICBkZWYgdGVzdF9rZXlfOShzZWxmKToKLSAgICAgICAgc2VsZi5j
b21wYXJlKCIiImtleTogJyN2YWx1ZVwnIiIiLAorICAgICAgICBzZWxmLmNvbXBhcmUoYiIiImtl
eTogJyN2YWx1ZVwnIiIiLAogICAgICAgICAgICAgICAgICAgICAgWyh0b2tlbl90eXBlcy5zdHJp
bmcsICJrZXkiKSwKICAgICAgICAgICAgICAgICAgICAgICAodG9rZW5fdHlwZXMuc2VwYXJhdG9y
LCAiOiIpLAogICAgICAgICAgICAgICAgICAgICAgICh0b2tlbl90eXBlcy5zdHJpbmcsICIjdmFs
dWUiKV0pCiAKICAgICBkZWYgdGVzdF9rZXlfMTAoc2VsZik6CiAgICAgICAgIHdpdGggc2VsZi5h
c3NlcnRSYWlzZXMocGFyc2VyLlBhcnNlRXJyb3IpOgotICAgICAgICAgICAgc2VsZi50b2tlbml6
ZSgiIiJrZXk6ICJ2YWx1ZSIiIikKKyAgICAgICAgICAgIHNlbGYudG9rZW5pemUoYiIiImtleTog
InZhbHVlIiIiKQogCiAgICAgZGVmIHRlc3Rfa2V5XzExKHNlbGYpOgogICAgICAgICB3aXRoIHNl
bGYuYXNzZXJ0UmFpc2VzKHBhcnNlci5QYXJzZUVycm9yKToKLSAgICAgICAgICAgIHNlbGYudG9r
ZW5pemUoIiIia2V5OiAndmFsdWUiIiIpCisgICAgICAgICAgICBzZWxmLnRva2VuaXplKGIiIiJr
ZXk6ICd2YWx1ZSIiIikKIAogICAgIGRlZiB0ZXN0X2tleV8xMihzZWxmKToKICAgICAgICAgd2l0
aCBzZWxmLmFzc2VydFJhaXNlcyhwYXJzZXIuUGFyc2VFcnJvcik6Ci0gICAgICAgICAgICBzZWxm
LnRva2VuaXplKCIiImtleTogJ3ZhbHVlIiIiKQorICAgICAgICAgICAgc2VsZi50b2tlbml6ZShi
IiIia2V5OiAndmFsdWUiIiIpCiAKICAgICBkZWYgdGVzdF9rZXlfMTMoc2VsZik6CiAgICAgICAg
IHdpdGggc2VsZi5hc3NlcnRSYWlzZXMocGFyc2VyLlBhcnNlRXJyb3IpOgotICAgICAgICAgICAg
c2VsZi50b2tlbml6ZSgiIiJrZXk6ICd2YWx1ZScgYWJjIiIiKQorICAgICAgICAgICAgc2VsZi50
b2tlbml6ZShiIiIia2V5OiAndmFsdWUnIGFiYyIiIikKIAogICAgIGRlZiB0ZXN0X2tleV8xNChz
ZWxmKToKLSAgICAgICAgc2VsZi5jb21wYXJlKHIiIiJrZXk6IFxcbmIiIiIsCisgICAgICAgIHNl
bGYuY29tcGFyZShiciIiImtleTogXFxuYiIiIiwKICAgICAgICAgICAgICAgICAgICAgIFsodG9r
ZW5fdHlwZXMuc3RyaW5nLCAia2V5IiksCiAgICAgICAgICAgICAgICAgICAgICAgKHRva2VuX3R5
cGVzLnNlcGFyYXRvciwgIjoiKSwKICAgICAgICAgICAgICAgICAgICAgICAodG9rZW5fdHlwZXMu
c3RyaW5nLCByIlxuYiIpXSkKIAogICAgIGRlZiB0ZXN0X2xpc3RfMChzZWxmKToKLSAgICAgICAg
c2VsZi5jb21wYXJlKCIiIgorICAgICAgICBzZWxmLmNvbXBhcmUoYiIiIgoga2V5OiBbXSIiIiwK
ICAgICAgICAgICAgIFsodG9rZW5fdHlwZXMuc3RyaW5nLCAia2V5IiksCiAgICAgICAgICAgICAg
KHRva2VuX3R5cGVzLnNlcGFyYXRvciwgIjoiKSwKQEAgLTE1Myw3ICsxNDcsNyBAQCBrZXk6IFtd
IiIiLAogICAgICAgICAgICAgICh0b2tlbl90eXBlcy5saXN0X2VuZCwgIl0iKV0pCiAKICAgICBk
ZWYgdGVzdF9saXN0XzEoc2VsZik6Ci0gICAgICAgIHNlbGYuY29tcGFyZSgiIiIKKyAgICAgICAg
c2VsZi5jb21wYXJlKGIiIiIKIGtleTogW2EsICJiIl0iIiIsCiAgICAgICAgICAgICBbKHRva2Vu
X3R5cGVzLnN0cmluZywgImtleSIpLAogICAgICAgICAgICAgICh0b2tlbl90eXBlcy5zZXBhcmF0
b3IsICI6IiksCkBAIC0xNjMsNyArMTU3LDcgQEAga2V5OiBbYSwgImIiXSIiIiwKICAgICAgICAg
ICAgICAodG9rZW5fdHlwZXMubGlzdF9lbmQsICJdIildKQogCiAgICAgZGVmIHRlc3RfbGlzdF8y
KHNlbGYpOgotICAgICAgICBzZWxmLmNvbXBhcmUoIiIiCisgICAgICAgIHNlbGYuY29tcGFyZShi
IiIiCiBrZXk6IFthLAogICAgICAgYl0iIiIsCiAgICAgICAgICAgICBbKHRva2VuX3R5cGVzLnN0
cmluZywgImtleSIpLApAQCAtMTc0LDcgKzE2OCw3IEBAIGtleTogW2EsCiAgICAgICAgICAgICAg
KHRva2VuX3R5cGVzLmxpc3RfZW5kLCAiXSIpXSkKIAogICAgIGRlZiB0ZXN0X2xpc3RfMyhzZWxm
KToKLSAgICAgICAgc2VsZi5jb21wYXJlKCIiIgorICAgICAgICBzZWxmLmNvbXBhcmUoYiIiIgog
a2V5OiBbYSwgI2JdCiAgICAgICBjXSIiIiwKICAgICAgICAgICAgIFsodG9rZW5fdHlwZXMuc3Ry
aW5nLCAia2V5IiksCkBAIC0xODYsMTYgKzE4MCwxNiBAQCBrZXk6IFthLCAjYl0KIAogICAgIGRl
ZiB0ZXN0X2xpc3RfNChzZWxmKToKICAgICAgICAgd2l0aCBzZWxmLmFzc2VydFJhaXNlcyhwYXJz
ZXIuUGFyc2VFcnJvcik6Ci0gICAgICAgICAgICBzZWxmLnRva2VuaXplKCIiImtleTogW2EgI2Jd
CisgICAgICAgICAgICBzZWxmLnRva2VuaXplKGIiIiJrZXk6IFthICNiXQogICAgICAgICAgICAg
Y10iIiIpCiAKICAgICBkZWYgdGVzdF9saXN0XzUoc2VsZik6CiAgICAgICAgIHdpdGggc2VsZi5h
c3NlcnRSYWlzZXMocGFyc2VyLlBhcnNlRXJyb3IpOgotICAgICAgICAgICAgc2VsZi50b2tlbml6
ZSgiIiJrZXk6IFthIFxcCisgICAgICAgICAgICBzZWxmLnRva2VuaXplKGIiIiJrZXk6IFthIFxc
CiAgICAgICAgICAgICBjXSIiIikKIAogICAgIGRlZiB0ZXN0X2xpc3RfNihzZWxmKToKLSAgICAg
ICAgc2VsZi5jb21wYXJlKCIiImtleTogW2EgLCBiXSIiIiwKKyAgICAgICAgc2VsZi5jb21wYXJl
KGIiIiJrZXk6IFthICwgYl0iIiIsCiAgICAgICAgICAgICBbKHRva2VuX3R5cGVzLnN0cmluZywg
ImtleSIpLAogICAgICAgICAgICAgICh0b2tlbl90eXBlcy5zZXBhcmF0b3IsICI6IiksCiAgICAg
ICAgICAgICAgKHRva2VuX3R5cGVzLmxpc3Rfc3RhcnQsICJbIiksCkBAIC0yMDQsNyArMTk4LDcg
QEAga2V5OiBbYSwgI2JdCiAgICAgICAgICAgICAgKHRva2VuX3R5cGVzLmxpc3RfZW5kLCAiXSIp
XSkKIAogICAgIGRlZiB0ZXN0X2V4cHJfMChzZWxmKToKLSAgICAgICAgc2VsZi5jb21wYXJlKCIi
IgorICAgICAgICBzZWxmLmNvbXBhcmUoYiIiIgoga2V5OgogICBpZiBjb25kID09IDE6IHZhbHVl
IiIiLAogICAgICAgICAgICAgWyh0b2tlbl90eXBlcy5zdHJpbmcsICJrZXkiKSwKQEAgLTIxOCw3
ICsyMTIsNyBAQCBrZXk6CiAgICAgICAgICAgICAgKHRva2VuX3R5cGVzLnN0cmluZywgInZhbHVl
IildKQogCiAgICAgZGVmIHRlc3RfZXhwcl8xKHNlbGYpOgotICAgICAgICBzZWxmLmNvbXBhcmUo
IiIiCisgICAgICAgIHNlbGYuY29tcGFyZShiIiIiCiBrZXk6CiAgIGlmIGNvbmQgPT0gMTogdmFs
dWUxCiAgIHZhbHVlMiIiIiwKQEAgLTIzNCw3ICsyMjgsNyBAQCBrZXk6CiAgICAgICAgICAgICAg
KHRva2VuX3R5cGVzLnN0cmluZywgInZhbHVlMiIpXSkKIAogICAgIGRlZiB0ZXN0X2V4cHJfMihz
ZWxmKToKLSAgICAgICAgc2VsZi5jb21wYXJlKCIiIgorICAgICAgICBzZWxmLmNvbXBhcmUoYiIi
Igoga2V5OgogICBpZiBjb25kPT0iMSI6IHZhbHVlIiIiLAogICAgICAgICAgICAgWyh0b2tlbl90
eXBlcy5zdHJpbmcsICJrZXkiKSwKQEAgLTI0OCw3ICsyNDIsNyBAQCBrZXk6CiAgICAgICAgICAg
ICAgKHRva2VuX3R5cGVzLnN0cmluZywgInZhbHVlIildKQogCiAgICAgZGVmIHRlc3RfZXhwcl8z
KHNlbGYpOgotICAgICAgICBzZWxmLmNvbXBhcmUoIiIiCisgICAgICAgIHNlbGYuY29tcGFyZShi
IiIiCiBrZXk6CiAgIGlmIGNvbmQ9PTEuMTogdmFsdWUiIiIsCiAgICAgICAgICAgICBbKHRva2Vu
X3R5cGVzLnN0cmluZywgImtleSIpLApAQCAtMjYyLDcgKzI1Niw3IEBAIGtleToKICAgICAgICAg
ICAgICAodG9rZW5fdHlwZXMuc3RyaW5nLCAidmFsdWUiKV0pCiAKICAgICBkZWYgdGVzdF9leHBy
XzQoc2VsZik6Ci0gICAgICAgIHNlbGYuY29tcGFyZSgiIiIKKyAgICAgICAgc2VsZi5jb21wYXJl
KGIiIiIKIGtleToKICAgaWYgY29uZD09MS4xIGFuZCBjb25kMiA9PSAiYSI6IHZhbHVlIiIiLAog
ICAgICAgICAgICAgWyh0b2tlbl90eXBlcy5zdHJpbmcsICJrZXkiKSwKQEAgLTI4MCw3ICsyNzQs
NyBAQCBrZXk6CiAgICAgICAgICAgICAgKHRva2VuX3R5cGVzLnN0cmluZywgInZhbHVlIildKQog
CiAgICAgZGVmIHRlc3RfZXhwcl81KHNlbGYpOgotICAgICAgICBzZWxmLmNvbXBhcmUoIiIiCisg
ICAgICAgIHNlbGYuY29tcGFyZShiIiIiCiBrZXk6CiAgIGlmIChjb25kPT0xLjEgKTogdmFsdWUi
IiIsCiAgICAgICAgICAgICBbKHRva2VuX3R5cGVzLnN0cmluZywgImtleSIpLApAQCAtMjk2LDcg
KzI5MCw3IEBAIGtleToKICAgICAgICAgICAgICAodG9rZW5fdHlwZXMuc3RyaW5nLCAidmFsdWUi
KV0pCiAKICAgICBkZWYgdGVzdF9leHByXzYoc2VsZik6Ci0gICAgICAgIHNlbGYuY29tcGFyZSgi
IiIKKyAgICAgICAgc2VsZi5jb21wYXJlKGIiIiIKIGtleToKICAgaWYgIlxcdHRlc3QiOiB2YWx1
ZSIiIiwKICAgICAgICAgICAgIFsodG9rZW5fdHlwZXMuc3RyaW5nLCAia2V5IiksCkBAIC0zMDks
MjcgKzMwMywyNCBAQCBrZXk6CiAKICAgICBkZWYgdGVzdF9leHByXzcoc2VsZik6CiAgICAgICAg
IHdpdGggc2VsZi5hc3NlcnRSYWlzZXMocGFyc2VyLlBhcnNlRXJyb3IpOgotICAgICAgICAgICAg
c2VsZi50b2tlbml6ZSgKLSAgICAgICAgICAgICAgICAiIiIKKyAgICAgICAgICAgIHNlbGYudG9r
ZW5pemUoYiIiIgoga2V5OgogICBpZiAxQTogdmFsdWUiIiIpCiAKICAgICBkZWYgdGVzdF9leHBy
Xzgoc2VsZik6CiAgICAgICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXMocGFyc2VyLlBhcnNlRXJy
b3IpOgotICAgICAgICAgICAgc2VsZi50b2tlbml6ZSgKLSAgICAgICAgICAgICAgICAiIiIKKyAg
ICAgICAgICAgIHNlbGYudG9rZW5pemUoYiIiIgoga2V5OgogICBpZiAxYTogdmFsdWUiIiIpCiAK
ICAgICBkZWYgdGVzdF9leHByXzkoc2VsZik6CiAgICAgICAgIHdpdGggc2VsZi5hc3NlcnRSYWlz
ZXMocGFyc2VyLlBhcnNlRXJyb3IpOgotICAgICAgICAgICAgc2VsZi50b2tlbml6ZSgKLSAgICAg
ICAgICAgICAgICAiIiIKKyAgICAgICAgICAgIHNlbGYudG9rZW5pemUoYiIiIgoga2V5OgogICBp
ZiAxLjEuMTogdmFsdWUiIiIpCiAKICAgICBkZWYgdGVzdF9leHByXzEwKHNlbGYpOgotICAgICAg
ICBzZWxmLmNvbXBhcmUoIiIiCisgICAgICAgIHNlbGYuY29tcGFyZShiIiIiCiBrZXk6CiAgIGlm
IDEuOiB2YWx1ZSIiIiwKICAgICAgICAgICAgIFsodG9rZW5fdHlwZXMuc3RyaW5nLCAia2V5Iiks
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvd3B0bWFuaWZlc3QvdGVzdHMvdzNjLWltcG9ydC5s
b2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dw
dHJ1bm5lci93cHRydW5uZXIvd3B0bWFuaWZlc3QvdGVzdHMvdzNjLWltcG9ydC5sb2cKZGVsZXRl
ZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDFkYzdmMmZmMGExMjJiZmExYjc3NzAzMzE5ZGZjZTNl
ZjUzYjQxMzkuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5u
ZXIvd3B0cnVubmVyL3dwdG1hbmlmZXN0L3Rlc3RzL3czYy1pbXBvcnQubG9nCisrKyAvZGV2L251
bGwKQEAgLTEsMjIgKzAsMCBAQAotVGhlIHRlc3RzIGluIHRoaXMgZGlyZWN0b3J5IHdlcmUgaW1w
b3J0ZWQgZnJvbSB0aGUgVzNDIHJlcG9zaXRvcnkuCi1EbyBOT1QgbW9kaWZ5IHRoZXNlIHRlc3Rz
IGRpcmVjdGx5IGluIFdlYktpdC4KLUluc3RlYWQsIGNyZWF0ZSBhIHB1bGwgcmVxdWVzdCBvbiB0
aGUgV1BUIGdpdGh1YjoKLQlodHRwczovL2dpdGh1Yi5jb20vd2ViLXBsYXRmb3JtLXRlc3RzL3dw
dAotCi1UaGVuIHJ1biB0aGUgVG9vbHMvU2NyaXB0cy9pbXBvcnQtdzNjLXRlc3RzIGluIFdlYktp
dCB0byByZWltcG9ydAotCi1EbyBOT1QgbW9kaWZ5IG9yIHJlbW92ZSB0aGlzIGZpbGUuCi0KLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLQotUHJvcGVydGllcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9u
ZQotUHJvcGVydHkgdmFsdWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0KLUxpc3Qgb2YgZmlsZXM6Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3dwdG1hbmlmZXN0L3Rl
c3RzL19faW5pdF9fLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3dwdG1hbmlmZXN0L3Rlc3RzL3Rlc3RfY29u
ZGl0aW9uYWwucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvd3B0bWFuaWZlc3QvdGVzdHMvdGVzdF9wYXJzZXIu
cHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dw
dHJ1bm5lci93cHRydW5uZXIvd3B0bWFuaWZlc3QvdGVzdHMvdGVzdF9zZXJpYWxpemVyLnB5Ci0v
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5u
ZXIvd3B0cnVubmVyL3dwdG1hbmlmZXN0L3Rlc3RzL3Rlc3Rfc3RhdGljLnB5Ci0vTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVu
bmVyL3dwdG1hbmlmZXN0L3Rlc3RzL3Rlc3RfdG9rZW5pemVyLnB5CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93
cHRydW5uZXIvd3B0bWFuaWZlc3QvdzNjLWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvd3B0bWFu
aWZlc3QvdzNjLWltcG9ydC5sb2cKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDM1M2Uz
ZGQ1ZDA5YzQwYjYyYzNjMTQwNWIwNTk4NWI0N2RmMGMwNzIuLjAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3dwdG1hbmlmZXN0L3czYy1p
bXBvcnQubG9nCisrKyAvZGV2L251bGwKQEAgLTEsMjAgKzAsMCBAQAotVGhlIHRlc3RzIGluIHRo
aXMgZGlyZWN0b3J5IHdlcmUgaW1wb3J0ZWQgZnJvbSB0aGUgVzNDIHJlcG9zaXRvcnkuCi1EbyBO
T1QgbW9kaWZ5IHRoZXNlIHRlc3RzIGRpcmVjdGx5IGluIFdlYktpdC4KLUluc3RlYWQsIGNyZWF0
ZSBhIHB1bGwgcmVxdWVzdCBvbiB0aGUgV1BUIGdpdGh1YjoKLQlodHRwczovL2dpdGh1Yi5jb20v
d2ViLXBsYXRmb3JtLXRlc3RzL3dwdAotCi1UaGVuIHJ1biB0aGUgVG9vbHMvU2NyaXB0cy9pbXBv
cnQtdzNjLXRlc3RzIGluIFdlYktpdCB0byByZWltcG9ydAotCi1EbyBOT1QgbW9kaWZ5IG9yIHJl
bW92ZSB0aGlzIGZpbGUuCi0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotUHJvcGVydGllcyByZXF1aXJpbmcg
dmVuZG9yIHByZWZpeGVzOgotTm9uZQotUHJvcGVydHkgdmFsdWVzIHJlcXVpcmluZyB2ZW5kb3Ig
cHJlZml4ZXM6Ci1Ob25lCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLUxpc3Qgb2YgZmlsZXM6Ci0vTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0
cnVubmVyL3dwdG1hbmlmZXN0L19faW5pdF9fLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3dwdG1hbmlmZXN0
L25vZGUucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3dwdHJ1bm5lci93cHRydW5uZXIvd3B0bWFuaWZlc3QvcGFyc2VyLnB5Ci0vTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVu
bmVyL3dwdG1hbmlmZXN0L3NlcmlhbGl6ZXIucHkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci93
cHRydW5uZXIucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvd3B0cnVubmVyLnB5CmluZGV4IGFhYjU5OTZhZmQ5
NGU3ODY4NmEwMjdmZDg1NDZjYTgzZTc3NzY2ZjQuLmNhYzE3MmE1OTQwZWM2OTZlM2EzYjI3OTE3
MGY5NzEyYWFmNDY2OGQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci93cHRydW5uZXIucHkKKysr
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRy
dW5uZXIvd3B0cnVubmVyL3dwdHJ1bm5lci5weQpAQCAtMSw0ICsxLDQgQEAKLWZyb20gX19mdXR1
cmVfXyBpbXBvcnQgdW5pY29kZV9saXRlcmFscworZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCBwcmlu
dF9mdW5jdGlvbiwgdW5pY29kZV9saXRlcmFscwogCiBpbXBvcnQganNvbgogaW1wb3J0IG9zCkBA
IC0xMiw2ICsxMiw3IEBAIGltcG9ydCB0ZXN0bG9hZGVyCiBpbXBvcnQgd3B0Y29tbWFuZGxpbmUK
IGltcG9ydCB3cHRsb2dnaW5nCiBpbXBvcnQgd3B0dGVzdAorZnJvbSBtb3psb2cgaW1wb3J0IGNh
cHR1cmUsIGhhbmRsZXJzCiBmcm9tIGZvbnQgaW1wb3J0IEZvbnRJbnN0YWxsZXIKIGZyb20gdGVz
dHJ1bm5lciBpbXBvcnQgTWFuYWdlckdyb3VwCiBmcm9tIGJyb3dzZXJzLmJhc2UgaW1wb3J0IE51
bGxCcm93c2VyCkBAIC0zOSw2ICs0MCw3IEBAIG1ldGFkYXRhIGZpbGVzIGFyZSB1c2VkIHRvIHN0
b3JlIHRoZSBleHBlY3RlZCB0ZXN0IHJlc3VsdHMuCiBkZWYgc2V0dXBfbG9nZ2luZygqYXJncywg
Kiprd2FyZ3MpOgogICAgIGdsb2JhbCBsb2dnZXIKICAgICBsb2dnZXIgPSB3cHRsb2dnaW5nLnNl
dHVwKCphcmdzLCAqKmt3YXJncykKKyAgICByZXR1cm4gbG9nZ2VyCiAKIAogZGVmIGdldF9sb2Fk
ZXIodGVzdF9wYXRocywgcHJvZHVjdCwgZGVidWc9Tm9uZSwgcnVuX2luZm9fZXh0cmFzPU5vbmUs
ICoqa3dhcmdzKToKQEAgLTQ3LDI5ICs0OSwyOSBAQCBkZWYgZ2V0X2xvYWRlcih0ZXN0X3BhdGhz
LCBwcm9kdWN0LCBkZWJ1Zz1Ob25lLCBydW5faW5mb19leHRyYXM9Tm9uZSwgKiprd2FyZ3MpOgog
CiAgICAgcnVuX2luZm8gPSB3cHR0ZXN0LmdldF9ydW5faW5mbyhrd2FyZ3NbInJ1bl9pbmZvIl0s
IHByb2R1Y3QsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicm93c2VyX3Zl
cnNpb249a3dhcmdzLmdldCgiYnJvd3Nlcl92ZXJzaW9uIiksCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBicm93c2VyX2NoYW5uZWw9a3dhcmdzLmdldCgiYnJvd3Nlcl9jaGFu
bmVsIiksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZXJpZnk9a3dhcmdz
LmdldCgidmVyaWZ5IiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWJ1
Zz1kZWJ1ZywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4dHJhcz1ydW5f
aW5mb19leHRyYXMpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBleHRyYXM9
cnVuX2luZm9fZXh0cmFzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5h
YmxlX3dlYnJlbmRlcj1rd2FyZ3MuZ2V0KCJlbmFibGVfd2VicmVuZGVyIikpCiAKICAgICB0ZXN0
X21hbmlmZXN0cyA9IHRlc3Rsb2FkZXIuTWFuaWZlc3RMb2FkZXIodGVzdF9wYXRocywgZm9yY2Vf
bWFuaWZlc3RfdXBkYXRlPWt3YXJnc1sibWFuaWZlc3RfdXBkYXRlIl0sCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hbmlmZXN0X2Rvd25sb2FkPWt3YXJn
c1sibWFuaWZlc3RfZG93bmxvYWQiXSkubG9hZCgpCiAKICAgICBtYW5pZmVzdF9maWx0ZXJzID0g
W10KLSAgICBtZXRhX2ZpbHRlcnMgPSBbXQogCi0gICAgaWYga3dhcmdzWyJpbmNsdWRlIl0gb3Ig
a3dhcmdzWyJleGNsdWRlIl0gb3Iga3dhcmdzWyJpbmNsdWRlX21hbmlmZXN0Il06CisgICAgaWYg
a3dhcmdzWyJpbmNsdWRlIl0gb3Iga3dhcmdzWyJleGNsdWRlIl0gb3Iga3dhcmdzWyJpbmNsdWRl
X21hbmlmZXN0Il0gb3Iga3dhcmdzWyJkZWZhdWx0X2V4Y2x1ZGUiXToKICAgICAgICAgbWFuaWZl
c3RfZmlsdGVycy5hcHBlbmQodGVzdGxvYWRlci5UZXN0RmlsdGVyKGluY2x1ZGU9a3dhcmdzWyJp
bmNsdWRlIl0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBleGNsdWRlPWt3YXJnc1siZXhjbHVkZSJdLAogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFuaWZlc3RfcGF0aD1rd2FyZ3NbImlu
Y2x1ZGVfbWFuaWZlc3QiXSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHRlc3RfbWFuaWZlc3RzPXRlc3RfbWFuaWZlc3RzKSkKLSAgICBpZiBr
d2FyZ3NbInRhZ3MiXToKLSAgICAgICAgbWV0YV9maWx0ZXJzLmFwcGVuZCh0ZXN0bG9hZGVyLlRh
Z0ZpbHRlcih0YWdzPWt3YXJnc1sidGFncyJdKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RfbWFuaWZlc3RzPXRlc3RfbWFuaWZlc3Rz
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ZXhwbGljaXQ9a3dhcmdzWyJkZWZhdWx0X2V4Y2x1ZGUiXSkpCiAKICAgICBzc2xfZW5hYmxlZCA9
IHNzbHV0aWxzLmdldF9jbHMoa3dhcmdzWyJzc2xfdHlwZSJdKS5zc2xfZW5hYmxlZAogICAgIHRl
c3RfbG9hZGVyID0gdGVzdGxvYWRlci5UZXN0TG9hZGVyKHRlc3RfbWFuaWZlc3RzLAogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGt3YXJnc1sidGVzdF90eXBlcyJdLAog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJ1bl9pbmZvLAogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hbmlmZXN0X2ZpbHRlcnM9bWFuaWZl
c3RfZmlsdGVycywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZXRh
X2ZpbHRlcnM9bWV0YV9maWx0ZXJzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGNodW5rX3R5cGU9a3dhcmdzWyJjaHVua190eXBlIl0sCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgdG90YWxfY2h1bmtzPWt3YXJnc1sidG90YWxfY2h1bmtz
Il0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2h1bmtfbnVtYmVy
PWt3YXJnc1sidGhpc19jaHVuayJdLApAQCAtODcsNyArODksNyBAQCBkZWYgbGlzdF90ZXN0X2dy
b3Vwcyh0ZXN0X3BhdGhzLCBwcm9kdWN0LCAqKmt3YXJncyk6CiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBydW5faW5mb19leHRyYXM9cnVuX2luZm9fZXh0cmFzLCAqKmt3
YXJncykKIAogICAgIGZvciBpdGVtIGluIHNvcnRlZCh0ZXN0X2xvYWRlci5ncm91cHMoa3dhcmdz
WyJ0ZXN0X3R5cGVzIl0pKToKLSAgICAgICAgcHJpbnQgaXRlbQorICAgICAgICBwcmludChpdGVt
KQogCiAKIGRlZiBsaXN0X2Rpc2FibGVkKHRlc3RfcGF0aHMsIHByb2R1Y3QsICoqa3dhcmdzKToK
QEAgLTEwMyw3ICsxMDUsNyBAQCBkZWYgbGlzdF9kaXNhYmxlZCh0ZXN0X3BhdGhzLCBwcm9kdWN0
LCAqKmt3YXJncyk6CiAgICAgZm9yIHRlc3RfdHlwZSwgdGVzdHMgaW4gdGVzdF9sb2FkZXIuZGlz
YWJsZWRfdGVzdHMuaXRlcml0ZW1zKCk6CiAgICAgICAgIGZvciB0ZXN0IGluIHRlc3RzOgogICAg
ICAgICAgICAgcnYuYXBwZW5kKHsidGVzdCI6IHRlc3QuaWQsICJyZWFzb24iOiB0ZXN0LmRpc2Fi
bGVkKCl9KQotICAgIHByaW50IGpzb24uZHVtcHMocnYsIGluZGVudD0yKQorICAgIHByaW50KGpz
b24uZHVtcHMocnYsIGluZGVudD0yKSkKIAogCiBkZWYgbGlzdF90ZXN0cyh0ZXN0X3BhdGhzLCBw
cm9kdWN0LCAqKmt3YXJncyk6CkBAIC0xMTUsNDIgKzExNyw0NSBAQCBkZWYgbGlzdF90ZXN0cyh0
ZXN0X3BhdGhzLCBwcm9kdWN0LCAqKmt3YXJncyk6CiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBydW5faW5mb19leHRyYXM9cnVuX2luZm9fZXh0cmFzLCAqKmt3YXJncykK
IAogICAgIGZvciB0ZXN0IGluIHRlc3RfbG9hZGVyLnRlc3RfaWRzOgotICAgICAgICBwcmludCB0
ZXN0CisgICAgICAgIHByaW50KHRlc3QpCiAKIAogZGVmIGdldF9wYXVzZV9hZnRlcl90ZXN0KHRl
c3RfbG9hZGVyLCAqKmt3YXJncyk6Ci0gICAgdG90YWxfdGVzdHMgPSBzdW0obGVuKGl0ZW0pIGZv
ciBpdGVtIGluIHRlc3RfbG9hZGVyLnRlc3RzLml0ZXJ2YWx1ZXMoKSkKICAgICBpZiBrd2FyZ3Nb
InBhdXNlX2FmdGVyX3Rlc3QiXSBpcyBOb25lOgogICAgICAgICBpZiBrd2FyZ3NbInJlcGVhdF91
bnRpbF91bmV4cGVjdGVkIl06CiAgICAgICAgICAgICByZXR1cm4gRmFsc2UKLSAgICAgICAgaWYg
a3dhcmdzWyJyZXBlYXQiXSA9PSAxIGFuZCBrd2FyZ3NbInJlcnVuIl0gPT0gMSBhbmQgdG90YWxf
dGVzdHMgPT0gMToKKyAgICAgICAgaWYga3dhcmdzWyJoZWFkbGVzcyJdOgorICAgICAgICAgICAg
cmV0dXJuIEZhbHNlCisgICAgICAgIHRlc3RzID0gdGVzdF9sb2FkZXIudGVzdHMKKyAgICAgICAg
aXNfc2luZ2xlX3Rlc3RoYXJuZXNzID0gKHN1bShsZW4oaXRlbSkgZm9yIGl0ZW0gaW4gdGVzdHMu
aXRlcnZhbHVlcygpKSA9PSAxIGFuZAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
bGVuKHRlc3RzLmdldCgidGVzdGhhcm5lc3MiLCBbXSkpID09IDEpCisgICAgICAgIGlmIGt3YXJn
c1sicmVwZWF0Il0gPT0gMSBhbmQga3dhcmdzWyJyZXJ1biJdID09IDEgYW5kIGlzX3NpbmdsZV90
ZXN0aGFybmVzczoKICAgICAgICAgICAgIHJldHVybiBUcnVlCiAgICAgICAgIHJldHVybiBGYWxz
ZQogICAgIHJldHVybiBrd2FyZ3NbInBhdXNlX2FmdGVyX3Rlc3QiXQogCiAKIGRlZiBydW5fdGVz
dHMoY29uZmlnLCB0ZXN0X3BhdGhzLCBwcm9kdWN0LCAqKmt3YXJncyk6Ci0gICAgd2l0aCB3cHRs
b2dnaW5nLkNhcHR1cmVJTyhsb2dnZXIsIG5vdCBrd2FyZ3NbIm5vX2NhcHR1cmVfc3RkaW8iXSk6
CisgICAgIiIiU2V0IHVwIHRoZSB0ZXN0IGVudmlyb25tZW50LCBsb2FkIHRoZSBsaXN0IG9mIHRl
c3RzIHRvIGJlIGV4ZWN1dGVkLCBhbmQKKyAgICBpbnZva2UgdGhlIHJlbWFpbmRlciBvZiB0aGUg
Y29kZSB0byBleGVjdXRlIHRlc3RzIiIiCisgICAgd2l0aCBjYXB0dXJlLkNhcHR1cmVJTyhsb2dn
ZXIsIG5vdCBrd2FyZ3NbIm5vX2NhcHR1cmVfc3RkaW8iXSk6CiAgICAgICAgIGVudi5kb19kZWxh
eWVkX2ltcG9ydHMobG9nZ2VyLCB0ZXN0X3BhdGhzKQogCi0gICAgICAgIChjaGVja19hcmdzLAot
ICAgICAgICAgdGFyZ2V0X2Jyb3dzZXJfY2xzLCBnZXRfYnJvd3Nlcl9rd2FyZ3MsCi0gICAgICAg
ICBleGVjdXRvcl9jbGFzc2VzLCBnZXRfZXhlY3V0b3Jfa3dhcmdzLAotICAgICAgICAgZW52X29w
dGlvbnMsIGdldF9lbnZfZXh0cmFzLCBydW5faW5mb19leHRyYXMpID0gcHJvZHVjdHMubG9hZF9w
cm9kdWN0KGNvbmZpZywgcHJvZHVjdCkKKyAgICAgICAgcHJvZHVjdCA9IHByb2R1Y3RzLmxvYWRf
cHJvZHVjdChjb25maWcsIHByb2R1Y3QsIGxvYWRfY2xzPVRydWUpCiAKLSAgICAgICAgZW52X2V4
dHJhcyA9IGdldF9lbnZfZXh0cmFzKCoqa3dhcmdzKQorICAgICAgICBlbnZfZXh0cmFzID0gcHJv
ZHVjdC5nZXRfZW52X2V4dHJhcygqKmt3YXJncykKIAotICAgICAgICBjaGVja19hcmdzKCoqa3dh
cmdzKQorICAgICAgICBwcm9kdWN0LmNoZWNrX2FyZ3MoKiprd2FyZ3MpCiAKICAgICAgICAgaWYg
a3dhcmdzWyJpbnN0YWxsX2ZvbnRzIl06CiAgICAgICAgICAgICBlbnZfZXh0cmFzLmFwcGVuZChG
b250SW5zdGFsbGVyKAogICAgICAgICAgICAgICAgIGZvbnRfZGlyPWt3YXJnc1siZm9udF9kaXIi
XSwKLSAgICAgICAgICAgICAgICBhaGVtPW9zLnBhdGguam9pbihrd2FyZ3NbInRlc3RzX3Jvb3Qi
XSwgImZvbnRzL0FoZW0udHRmIikKKyAgICAgICAgICAgICAgICBhaGVtPW9zLnBhdGguam9pbih0
ZXN0X3BhdGhzWyIvIl1bInRlc3RzX3BhdGgiXSwgImZvbnRzL0FoZW0udHRmIikKICAgICAgICAg
ICAgICkpCiAKICAgICAgICAgcnVuX2luZm8sIHRlc3RfbG9hZGVyID0gZ2V0X2xvYWRlcih0ZXN0
X3BhdGhzLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByb2R1
Y3QsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcnVuX2luZm9f
ZXh0cmFzPXJ1bl9pbmZvX2V4dHJhcygqKmt3YXJncyksCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgcHJvZHVjdC5uYW1lLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHJ1bl9pbmZvX2V4dHJhcz1wcm9kdWN0LnJ1bl9pbmZvX2V4
dHJhcygqKmt3YXJncyksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgKiprd2FyZ3MpCiAKICAgICAgICAgdGVzdF9zb3VyY2Vfa3dhcmdzID0geyJwcm9jZXNzZXMi
OiBrd2FyZ3NbInByb2Nlc3NlcyJdfQpAQCAtMTYzLDkgKzE2OCwxNiBAQCBkZWYgcnVuX3Rlc3Rz
KGNvbmZpZywgdGVzdF9wYXRocywgcHJvZHVjdCwgKiprd2FyZ3MpOgogCiAgICAgICAgIGxvZ2dl
ci5pbmZvKCJVc2luZyAlaSBjbGllbnQgcHJvY2Vzc2VzIiAlIGt3YXJnc1sicHJvY2Vzc2VzIl0p
CiAKKyAgICAgICAgc2tpcHBlZF90ZXN0cyA9IDAKICAgICAgICAgdGVzdF90b3RhbCA9IDAKICAg
ICAgICAgdW5leHBlY3RlZF90b3RhbCA9IDAKIAorICAgICAgICBpZiBsZW4odGVzdF9sb2FkZXIu
dGVzdF9pZHMpID09IDAgYW5kIGt3YXJnc1sidGVzdF9saXN0Il06CisgICAgICAgICAgICBsb2dn
ZXIuY3JpdGljYWwoIlVuYWJsZSB0byBmaW5kIGFueSB0ZXN0cyBhdCB0aGUgcGF0aChzKToiKQor
ICAgICAgICAgICAgZm9yIHBhdGggaW4ga3dhcmdzWyJ0ZXN0X2xpc3QiXToKKyAgICAgICAgICAg
ICAgICBsb2dnZXIuY3JpdGljYWwoIiAgJXMiICUgcGF0aCkKKyAgICAgICAgICAgIGxvZ2dlci5j
cml0aWNhbCgiUGxlYXNlIGNoZWNrIHNwZWxsaW5nIGFuZCBtYWtlIHN1cmUgdGhlcmUgYXJlIHRl
c3RzIGluIHRoZSBzcGVjaWZpZWQgcGF0aChzKS4iKQorICAgICAgICAgICAgcmV0dXJuIEZhbHNl
CiAgICAgICAgIGt3YXJnc1sicGF1c2VfYWZ0ZXJfdGVzdCJdID0gZ2V0X3BhdXNlX2FmdGVyX3Rl
c3QodGVzdF9sb2FkZXIsICoqa3dhcmdzKQogCiAgICAgICAgIHNzbF9jb25maWcgPSB7InR5cGUi
OiBrd2FyZ3NbInNzbF90eXBlIl0sCkBAIC0xNzQsMTAgKzE4NiwxMyBAQCBkZWYgcnVuX3Rlc3Rz
KGNvbmZpZywgdGVzdF9wYXRocywgcHJvZHVjdCwgKiprd2FyZ3MpOgogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgImhvc3RfY2VydF9wYXRoIjoga3dhcmdzWyJob3N0X2Nl
cnRfcGF0aCJdLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImNhX2Nl
cnRfcGF0aCI6IGt3YXJnc1siY2FfY2VydF9wYXRoIl19fQogCisgICAgICAgIHRlc3RoYXJuZXNz
X3RpbWVvdXRfbXVsdGlwbGVyID0gcHJvZHVjdC5nZXRfdGltZW91dF9tdWx0aXBsaWVyKCJ0ZXN0
aGFybmVzcyIsIHJ1bl9pbmZvLCAqKmt3YXJncykKKwogICAgICAgICB3aXRoIGVudi5UZXN0RW52
aXJvbm1lbnQodGVzdF9wYXRocywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRl
c3RoYXJuZXNzX3RpbWVvdXRfbXVsdGlwbGVyLAogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAga3dhcmdzWyJwYXVzZV9hZnRlcl90ZXN0Il0sCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBrd2FyZ3NbImRlYnVnX2luZm8iXSwKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGVudl9vcHRpb25zLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
cHJvZHVjdC5lbnZfb3B0aW9ucywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNz
bF9jb25maWcsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbnZfZXh0cmFzKSBh
cyB0ZXN0X2Vudmlyb25tZW50OgogICAgICAgICAgICAgdHJ5OgpAQCAtMTk5LDcgKzIxNCw5IEBA
IGRlZiBydW5fdGVzdHMoY29uZmlnLCB0ZXN0X3BhdGhzLCBwcm9kdWN0LCAqKmt3YXJncyk6CiAK
ICAgICAgICAgICAgICAgICB0ZXN0X2NvdW50ID0gMAogICAgICAgICAgICAgICAgIHVuZXhwZWN0
ZWRfY291bnQgPSAwCi0gICAgICAgICAgICAgICAgbG9nZ2VyLnN1aXRlX3N0YXJ0KHRlc3RfbG9h
ZGVyLnRlc3RfaWRzLCBuYW1lPSd3ZWItcGxhdGZvcm0tdGVzdCcsIHJ1bl9pbmZvPXJ1bl9pbmZv
LAorICAgICAgICAgICAgICAgIGxvZ2dlci5zdWl0ZV9zdGFydCh0ZXN0X2xvYWRlci50ZXN0X2lk
cywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT0nd2ViLXBsYXRmb3Jt
LXRlc3QnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBydW5faW5mbz1ydW5f
aW5mbywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXh0cmE9eyJydW5fYnlf
ZGlyIjoga3dhcmdzWyJydW5fYnlfZGlyIl19KQogICAgICAgICAgICAgICAgIGZvciB0ZXN0X3R5
cGUgaW4ga3dhcmdzWyJ0ZXN0X3R5cGVzIl06CiAgICAgICAgICAgICAgICAgICAgIGxvZ2dlci5p
bmZvKCJSdW5uaW5nICVzIHRlc3RzIiAlIHRlc3RfdHlwZSkKQEAgLTIxMiwzNiArMjI5LDM4IEBA
IGRlZiBydW5fdGVzdHMoY29uZmlnLCB0ZXN0X3BhdGhzLCBwcm9kdWN0LCAqKmt3YXJncyk6CiAg
ICAgICAgICAgICAgICAgICAgIGlmIHRlc3RfdHlwZSA9PSAid2RzcGVjIjoKICAgICAgICAgICAg
ICAgICAgICAgICAgIGJyb3dzZXJfY2xzID0gTnVsbEJyb3dzZXIKICAgICAgICAgICAgICAgICAg
ICAgZWxzZToKLSAgICAgICAgICAgICAgICAgICAgICAgIGJyb3dzZXJfY2xzID0gdGFyZ2V0X2Jy
b3dzZXJfY2xzCisgICAgICAgICAgICAgICAgICAgICAgICBicm93c2VyX2NscyA9IHByb2R1Y3Qu
YnJvd3Nlcl9jbHMKIAotICAgICAgICAgICAgICAgICAgICBicm93c2VyX2t3YXJncyA9IGdldF9i
cm93c2VyX2t3YXJncyh0ZXN0X3R5cGUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHJ1bl9pbmZvLAotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25maWc9dGVzdF9lbnZpcm9ubWVu
dC5jb25maWcsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICoqa3dhcmdzKQorICAgICAgICAgICAgICAgICAgICBicm93c2VyX2t3YXJncyA9
IHByb2R1Y3QuZ2V0X2Jyb3dzZXJfa3dhcmdzKHRlc3RfdHlwZSwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBydW5faW5mbywK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBjb25maWc9dGVzdF9lbnZpcm9ubWVudC5jb25maWcsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiprd2FyZ3Mp
CiAKLSAgICAgICAgICAgICAgICAgICAgZXhlY3V0b3JfY2xzID0gZXhlY3V0b3JfY2xhc3Nlcy5n
ZXQodGVzdF90eXBlKQotICAgICAgICAgICAgICAgICAgICBleGVjdXRvcl9rd2FyZ3MgPSBnZXRf
ZXhlY3V0b3Jfa3dhcmdzKHRlc3RfdHlwZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0X2Vudmlyb25tZW50LmNvbmZpZywKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0
ZXN0X2Vudmlyb25tZW50LmNhY2hlX21hbmFnZXIsCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcnVuX2luZm8sCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiprd2FyZ3MpCisg
ICAgICAgICAgICAgICAgICAgIGV4ZWN1dG9yX2NscyA9IHByb2R1Y3QuZXhlY3V0b3JfY2xhc3Nl
cy5nZXQodGVzdF90eXBlKQorICAgICAgICAgICAgICAgICAgICBleGVjdXRvcl9rd2FyZ3MgPSBw
cm9kdWN0LmdldF9leGVjdXRvcl9rd2FyZ3ModGVzdF90eXBlLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGVzdF9lbnZp
cm9ubWVudC5jb25maWcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0X2Vudmlyb25tZW50LmNhY2hlX21hbmFnZXIs
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBydW5faW5mbywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoqa3dhcmdzKQogCiAgICAgICAgICAgICAg
ICAgICAgIGlmIGV4ZWN1dG9yX2NscyBpcyBOb25lOgogICAgICAgICAgICAgICAgICAgICAgICAg
bG9nZ2VyLmVycm9yKCJVbnN1cHBvcnRlZCB0ZXN0IHR5cGUgJXMgZm9yIHByb2R1Y3QgJXMiICUK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodGVzdF90eXBlLCBwcm9kdWN0
KSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodGVzdF90eXBlLCBwcm9k
dWN0Lm5hbWUpKQogICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWUKIAogICAgICAgICAg
ICAgICAgICAgICBmb3IgdGVzdCBpbiB0ZXN0X2xvYWRlci5kaXNhYmxlZF90ZXN0c1t0ZXN0X3R5
cGVdOgogICAgICAgICAgICAgICAgICAgICAgICAgbG9nZ2VyLnRlc3Rfc3RhcnQodGVzdC5pZCkK
ICAgICAgICAgICAgICAgICAgICAgICAgIGxvZ2dlci50ZXN0X2VuZCh0ZXN0LmlkLCBzdGF0dXM9
IlNLSVAiKQorICAgICAgICAgICAgICAgICAgICAgICAgc2tpcHBlZF90ZXN0cyArPSAxCiAKICAg
ICAgICAgICAgICAgICAgICAgaWYgdGVzdF90eXBlID09ICJ0ZXN0aGFybmVzcyI6CiAgICAgICAg
ICAgICAgICAgICAgICAgICBydW5fdGVzdHMgPSB7InRlc3RoYXJuZXNzIjogW119CiAgICAgICAg
ICAgICAgICAgICAgICAgICBmb3IgdGVzdCBpbiB0ZXN0X2xvYWRlci50ZXN0c1sidGVzdGhhcm5l
c3MiXToKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAodGVzdC50ZXN0ZHJpdmVyIGFu
ZCBub3QgZXhlY3V0b3JfY2xzLnN1cHBvcnRzX3Rlc3Rkcml2ZXIpIG9yICgKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHRlc3QuanNzaGVsbCBhbmQgbm90IGV4ZWN1dG9yX2Ns
cy5zdXBwb3J0c19qc3NoZWxsKToKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoKHRl
c3QudGVzdGRyaXZlciBhbmQgbm90IGV4ZWN1dG9yX2Nscy5zdXBwb3J0c190ZXN0ZHJpdmVyKSBv
cgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAodGVzdC5qc3NoZWxsIGFuZCBub3Qg
ZXhlY3V0b3JfY2xzLnN1cHBvcnRzX2pzc2hlbGwpKToKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgbG9nZ2VyLnRlc3Rfc3RhcnQodGVzdC5pZCkKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgbG9nZ2VyLnRlc3RfZW5kKHRlc3QuaWQsIHN0YXR1cz0iU0tJUCIpCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNraXBwZWRfdGVzdHMgKz0gMQogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGVsc2U6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHJ1bl90ZXN0c1sidGVzdGhhcm5lc3MiXS5hcHBlbmQodGVzdCkKICAgICAgICAgICAgICAgICAg
ICAgZWxzZToKQEAgLTI1OSwyNiArMjc4LDM2IEBAIGRlZiBydW5fdGVzdHMoY29uZmlnLCB0ZXN0
X3BhdGhzLCBwcm9kdWN0LCAqKmt3YXJncyk6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGt3YXJnc1sicGF1c2VfYWZ0ZXJfdGVzdCJdLAogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBrd2FyZ3NbInBhdXNlX29uX3VuZXhwZWN0ZWQiXSwKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga3dhcmdzWyJyZXN0YXJ0X29uX3VuZXhw
ZWN0ZWQiXSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga3dhcmdzWyJk
ZWJ1Z19pbmZvIl0pIGFzIG1hbmFnZXJfZ3JvdXA6CisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGt3YXJnc1siZGVidWdfaW5mbyJdLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBub3Qga3dhcmdzWyJub19jYXB0dXJlX3N0ZGlvIl0pIGFzIG1hbmFn
ZXJfZ3JvdXA6CiAgICAgICAgICAgICAgICAgICAgICAgICB0cnk6CiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgbWFuYWdlcl9ncm91cC5ydW4odGVzdF90eXBlLCBydW5fdGVzdHMpCiAgICAg
ICAgICAgICAgICAgICAgICAgICBleGNlcHQgS2V5Ym9hcmRJbnRlcnJ1cHQ6CiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgbG9nZ2VyLmNyaXRpY2FsKCJNYWluIHRocmVhZCBnb3Qgc2lnbmFs
IikKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYW5hZ2VyX2dyb3VwLnN0b3AoKQogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHJhaXNlCi0gICAgICAgICAgICAgICAgICAgIHRlc3Rf
Y291bnQgKz0gbWFuYWdlcl9ncm91cC50ZXN0X2NvdW50KCkKLSAgICAgICAgICAgICAgICAgICAg
dW5leHBlY3RlZF9jb3VudCArPSBtYW5hZ2VyX2dyb3VwLnVuZXhwZWN0ZWRfY291bnQoKQorICAg
ICAgICAgICAgICAgICAgICAgICAgdGVzdF9jb3VudCArPSBtYW5hZ2VyX2dyb3VwLnRlc3RfY291
bnQoKQorICAgICAgICAgICAgICAgICAgICAgICAgdW5leHBlY3RlZF9jb3VudCArPSBtYW5hZ2Vy
X2dyb3VwLnVuZXhwZWN0ZWRfY291bnQoKQogCiAgICAgICAgICAgICAgICAgdGVzdF90b3RhbCAr
PSB0ZXN0X2NvdW50CiAgICAgICAgICAgICAgICAgdW5leHBlY3RlZF90b3RhbCArPSB1bmV4cGVj
dGVkX2NvdW50CiAgICAgICAgICAgICAgICAgbG9nZ2VyLmluZm8oIkdvdCAlaSB1bmV4cGVjdGVk
IHJlc3VsdHMiICUgdW5leHBlY3RlZF9jb3VudCkKKyAgICAgICAgICAgICAgICBsb2dnZXIuc3Vp
dGVfZW5kKCkKICAgICAgICAgICAgICAgICBpZiByZXBlYXRfdW50aWxfdW5leHBlY3RlZCBhbmQg
dW5leHBlY3RlZF90b3RhbCA+IDA6CiAgICAgICAgICAgICAgICAgICAgIGJyZWFrCi0gICAgICAg
ICAgICAgICAgbG9nZ2VyLnN1aXRlX2VuZCgpCisgICAgICAgICAgICAgICAgaWYgcmVwZWF0X2Nv
dW50ID09IDEgYW5kIGxlbih0ZXN0X2xvYWRlci50ZXN0X2lkcykgPT0gc2tpcHBlZF90ZXN0czoK
KyAgICAgICAgICAgICAgICAgICAgYnJlYWsKIAogICAgIGlmIHRlc3RfdG90YWwgPT0gMDoKLSAg
ICAgICAgbG9nZ2VyLmVycm9yKCJObyB0ZXN0cyByYW4iKQotICAgICAgICByZXR1cm4gRmFsc2UK
KyAgICAgICAgaWYgc2tpcHBlZF90ZXN0cyA+IDA6CisgICAgICAgICAgICBsb2dnZXIud2Fybmlu
ZygiQWxsIHJlcXVlc3RlZCB0ZXN0cyB3ZXJlIHNraXBwZWQiKQorICAgICAgICBlbHNlOgorICAg
ICAgICAgICAgaWYga3dhcmdzWyJkZWZhdWx0X2V4Y2x1ZGUiXToKKyAgICAgICAgICAgICAgICBs
b2dnZXIuaW5mbygiTm8gdGVzdHMgcmFuIikKKyAgICAgICAgICAgICAgICByZXR1cm4gVHJ1ZQor
ICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICBsb2dnZXIuY3JpdGljYWwoIk5vIHRl
c3RzIHJhbiIpCisgICAgICAgICAgICAgICAgcmV0dXJuIEZhbHNlCiAKICAgICBpZiB1bmV4cGVj
dGVkX3RvdGFsIGFuZCBub3Qga3dhcmdzWyJmYWlsX29uX3VuZXhwZWN0ZWQiXToKICAgICAgICAg
bG9nZ2VyLmluZm8oIlRvbGVyYXRpbmcgJXMgdW5leHBlY3RlZCByZXN1bHRzIiAlIHVuZXhwZWN0
ZWRfdG90YWwpCkBAIC0zMDcsMTYgKzMzNiwyNyBAQCBkZWYgY2hlY2tfc3RhYmlsaXR5KCoqa3dh
cmdzKToKIAogCiBkZWYgc3RhcnQoKiprd2FyZ3MpOgotICAgIGlmIGt3YXJnc1sibGlzdF90ZXN0
X2dyb3VwcyJdOgotICAgICAgICBsaXN0X3Rlc3RfZ3JvdXBzKCoqa3dhcmdzKQotICAgIGVsaWYg
a3dhcmdzWyJsaXN0X2Rpc2FibGVkIl06Ci0gICAgICAgIGxpc3RfZGlzYWJsZWQoKiprd2FyZ3Mp
Ci0gICAgZWxpZiBrd2FyZ3NbImxpc3RfdGVzdHMiXToKLSAgICAgICAgbGlzdF90ZXN0cygqKmt3
YXJncykKLSAgICBlbGlmIGt3YXJnc1sidmVyaWZ5Il0gb3Iga3dhcmdzWyJzdGFiaWxpdHkiXToK
LSAgICAgICAgY2hlY2tfc3RhYmlsaXR5KCoqa3dhcmdzKQotICAgIGVsc2U6Ci0gICAgICAgIHJl
dHVybiBub3QgcnVuX3Rlc3RzKCoqa3dhcmdzKQorICAgIGFzc2VydCBsb2dnZXIgaXMgbm90IE5v
bmUKKworICAgIGxvZ2dlZF9jcml0aWNhbCA9IHdwdGxvZ2dpbmcuTG9nZ2VkQWJvdmVMZXZlbEhh
bmRsZXIoIkNSSVRJQ0FMIikKKyAgICBoYW5kbGVyID0gaGFuZGxlcnMuTG9nTGV2ZWxGaWx0ZXIo
bG9nZ2VkX2NyaXRpY2FsLCAiQ1JJVElDQUwiKQorICAgIGxvZ2dlci5hZGRfaGFuZGxlcihoYW5k
bGVyKQorCisgICAgcnYgPSBGYWxzZQorICAgIHRyeToKKyAgICAgICAgaWYga3dhcmdzWyJsaXN0
X3Rlc3RfZ3JvdXBzIl06CisgICAgICAgICAgICBsaXN0X3Rlc3RfZ3JvdXBzKCoqa3dhcmdzKQor
ICAgICAgICBlbGlmIGt3YXJnc1sibGlzdF9kaXNhYmxlZCJdOgorICAgICAgICAgICAgbGlzdF9k
aXNhYmxlZCgqKmt3YXJncykKKyAgICAgICAgZWxpZiBrd2FyZ3NbImxpc3RfdGVzdHMiXToKKyAg
ICAgICAgICAgIGxpc3RfdGVzdHMoKiprd2FyZ3MpCisgICAgICAgIGVsaWYga3dhcmdzWyJ2ZXJp
ZnkiXSBvciBrd2FyZ3NbInN0YWJpbGl0eSJdOgorICAgICAgICAgICAgcnYgPSBjaGVja19zdGFi
aWxpdHkoKiprd2FyZ3MpIG9yIGxvZ2dlZF9jcml0aWNhbC5oYXNfbG9nCisgICAgICAgIGVsc2U6
CisgICAgICAgICAgICBydiA9IG5vdCBydW5fdGVzdHMoKiprd2FyZ3MpIG9yIGxvZ2dlZF9jcml0
aWNhbC5oYXNfbG9nCisgICAgZmluYWxseToKKyAgICAgICAgbG9nZ2VyLnJlbW92ZV9oYW5kbGVy
KGhhbmRsZXIpCisgICAgcmV0dXJuIHJ2CiAKIAogZGVmIG1haW4oKToKQEAgLTMzNCw3ICszNzQs
NyBAQCBkZWYgbWFpbigpOgogICAgICAgICBpZiBrd2FyZ3NbInBkYiJdOgogICAgICAgICAgICAg
aW1wb3J0IHBkYgogICAgICAgICAgICAgaW1wb3J0IHRyYWNlYmFjawotICAgICAgICAgICAgcHJp
bnQgdHJhY2ViYWNrLmZvcm1hdF9leGMoKQorICAgICAgICAgICAgcHJpbnQodHJhY2ViYWNrLmZv
cm1hdF9leGMoKSkKICAgICAgICAgICAgIHBkYi5wb3N0X21vcnRlbSgpCiAgICAgICAgIGVsc2U6
CiAgICAgICAgICAgICByYWlzZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3dwdHRlc3QucHkg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1
bm5lci93cHRydW5uZXIvd3B0dGVzdC5weQppbmRleCBjMjliYTk3NGE5OTc4NmY2ODdmMmFlYWQx
YmExNDA0NWMxMmZiNjQzLi4xOWU4MzlkMjFiY2M4ZmM0MDBiYmYyYWQ5Mjg5ZjAzNTliZmEyZjFk
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvd3B0dGVzdC5weQorKysgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIv
d3B0dGVzdC5weQpAQCAtMSwyMCArMSwyOCBAQAogaW1wb3J0IG9zCiBpbXBvcnQgc3VicHJvY2Vz
cworZnJvbSBzaXgubW92ZXMudXJsbGliLnBhcnNlIGltcG9ydCB1cmxqb2luCiBmcm9tIGNvbGxl
Y3Rpb25zIGltcG9ydCBkZWZhdWx0ZGljdAogCi1mcm9tIHdwdG1hbmlmZXN0LnBhcnNlciBpbXBv
cnQgYXRvbXMKK2Zyb20gLndwdG1hbmlmZXN0LnBhcnNlciBpbXBvcnQgYXRvbXMKIAogYXRvbV9y
ZXNldCA9IGF0b21zWyJSZXNldCJdCi1lbmFibGVkX3Rlc3RzID0gc2V0KFsidGVzdGhhcm5lc3Mi
LCAicmVmdGVzdCIsICJ3ZHNwZWMiXSkKK2VuYWJsZWRfdGVzdHMgPSB7InRlc3RoYXJuZXNzIiwg
InJlZnRlc3QiLCAid2RzcGVjIn0KIAogCiBjbGFzcyBSZXN1bHQob2JqZWN0KToKLSAgICBkZWYg
X19pbml0X18oc2VsZiwgc3RhdHVzLCBtZXNzYWdlLCBleHBlY3RlZD1Ob25lLCBleHRyYT1Ob25l
LCBzdGFjaz1Ob25lKToKKyAgICBkZWYgX19pbml0X18oc2VsZiwKKyAgICAgICAgICAgICAgICAg
c3RhdHVzLAorICAgICAgICAgICAgICAgICBtZXNzYWdlLAorICAgICAgICAgICAgICAgICBleHBl
Y3RlZD1Ob25lLAorICAgICAgICAgICAgICAgICBleHRyYT1Ob25lLAorICAgICAgICAgICAgICAg
ICBzdGFjaz1Ob25lLAorICAgICAgICAgICAgICAgICBrbm93bl9pbnRlcm1pdHRlbnQ9Tm9uZSk6
CiAgICAgICAgIGlmIHN0YXR1cyBub3QgaW4gc2VsZi5zdGF0dXNlczoKICAgICAgICAgICAgIHJh
aXNlIFZhbHVlRXJyb3IoIlVucmVjb2duaXNlZCBzdGF0dXMgJXMiICUgc3RhdHVzKQogICAgICAg
ICBzZWxmLnN0YXR1cyA9IHN0YXR1cwogICAgICAgICBzZWxmLm1lc3NhZ2UgPSBtZXNzYWdlCiAg
ICAgICAgIHNlbGYuZXhwZWN0ZWQgPSBleHBlY3RlZAorICAgICAgICBzZWxmLmtub3duX2ludGVy
bWl0dGVudCA9IGtub3duX2ludGVybWl0dGVudCBpZiBrbm93bl9pbnRlcm1pdHRlbnQgaXMgbm90
IE5vbmUgZWxzZSBbXQogICAgICAgICBzZWxmLmV4dHJhID0gZXh0cmEgaWYgZXh0cmEgaXMgbm90
IE5vbmUgZWxzZSB7fQogICAgICAgICBzZWxmLnN0YWNrID0gc3RhY2sKIApAQCAtMjMsNyArMzEs
NyBAQCBjbGFzcyBSZXN1bHQob2JqZWN0KToKIAogCiBjbGFzcyBTdWJ0ZXN0UmVzdWx0KG9iamVj
dCk6Ci0gICAgZGVmIF9faW5pdF9fKHNlbGYsIG5hbWUsIHN0YXR1cywgbWVzc2FnZSwgc3RhY2s9
Tm9uZSwgZXhwZWN0ZWQ9Tm9uZSk6CisgICAgZGVmIF9faW5pdF9fKHNlbGYsIG5hbWUsIHN0YXR1
cywgbWVzc2FnZSwgc3RhY2s9Tm9uZSwgZXhwZWN0ZWQ9Tm9uZSwga25vd25faW50ZXJtaXR0ZW50
PU5vbmUpOgogICAgICAgICBzZWxmLm5hbWUgPSBuYW1lCiAgICAgICAgIGlmIHN0YXR1cyBub3Qg
aW4gc2VsZi5zdGF0dXNlczoKICAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoIlVucmVjb2du
aXNlZCBzdGF0dXMgJXMiICUgc3RhdHVzKQpAQCAtMzEsNiArMzksNyBAQCBjbGFzcyBTdWJ0ZXN0
UmVzdWx0KG9iamVjdCk6CiAgICAgICAgIHNlbGYubWVzc2FnZSA9IG1lc3NhZ2UKICAgICAgICAg
c2VsZi5zdGFjayA9IHN0YWNrCiAgICAgICAgIHNlbGYuZXhwZWN0ZWQgPSBleHBlY3RlZAorICAg
ICAgICBzZWxmLmtub3duX2ludGVybWl0dGVudCA9IGtub3duX2ludGVybWl0dGVudCBpZiBrbm93
bl9pbnRlcm1pdHRlbnQgaXMgbm90IE5vbmUgZWxzZSBbXQogCiAgICAgZGVmIF9fcmVwcl9fKHNl
bGYpOgogICAgICAgICByZXR1cm4gIjwlcy4lcyAlcyAlcz4iICUgKHNlbGYuX19tb2R1bGVfXywg
c2VsZi5fX2NsYXNzX18uX19uYW1lX18sIHNlbGYubmFtZSwgc2VsZi5zdGF0dXMpCkBAIC0zOCwy
OCArNDcsMjggQEAgY2xhc3MgU3VidGVzdFJlc3VsdChvYmplY3QpOgogCiBjbGFzcyBUZXN0aGFy
bmVzc1Jlc3VsdChSZXN1bHQpOgogICAgIGRlZmF1bHRfZXhwZWN0ZWQgPSAiT0siCi0gICAgc3Rh
dHVzZXMgPSBzZXQoWyJPSyIsICJFUlJPUiIsICJJTlRFUk5BTC1FUlJPUiIsICJUSU1FT1VUIiwg
IkVYVEVSTkFMLVRJTUVPVVQiLCAiQ1JBU0giXSkKKyAgICBzdGF0dXNlcyA9IHsiT0siLCAiRVJS
T1IiLCAiSU5URVJOQUwtRVJST1IiLCAiVElNRU9VVCIsICJFWFRFUk5BTC1USU1FT1VUIiwgIkNS
QVNIIiwgIlBSRUNPTkRJVElPTl9GQUlMRUQifQogCiAKIGNsYXNzIFRlc3RoYXJuZXNzU3VidGVz
dFJlc3VsdChTdWJ0ZXN0UmVzdWx0KToKICAgICBkZWZhdWx0X2V4cGVjdGVkID0gIlBBU1MiCi0g
ICAgc3RhdHVzZXMgPSBzZXQoWyJQQVNTIiwgIkZBSUwiLCAiVElNRU9VVCIsICJOT1RSVU4iXSkK
KyAgICBzdGF0dXNlcyA9IHsiUEFTUyIsICJGQUlMIiwgIlRJTUVPVVQiLCAiTk9UUlVOIiwgIlBS
RUNPTkRJVElPTl9GQUlMRUQifQogCiAKIGNsYXNzIFJlZnRlc3RSZXN1bHQoUmVzdWx0KToKICAg
ICBkZWZhdWx0X2V4cGVjdGVkID0gIlBBU1MiCi0gICAgc3RhdHVzZXMgPSBzZXQoWyJQQVNTIiwg
IkZBSUwiLCAiRVJST1IiLCAiSU5URVJOQUwtRVJST1IiLCAiVElNRU9VVCIsICJFWFRFUk5BTC1U
SU1FT1VUIiwKLSAgICAgICAgICAgICAgICAgICAgIkNSQVNIIl0pCisgICAgc3RhdHVzZXMgPSB7
IlBBU1MiLCAiRkFJTCIsICJFUlJPUiIsICJJTlRFUk5BTC1FUlJPUiIsICJUSU1FT1VUIiwgIkVY
VEVSTkFMLVRJTUVPVVQiLAorICAgICAgICAgICAgICAgICJDUkFTSCJ9CiAKIAogY2xhc3MgV2Rz
cGVjUmVzdWx0KFJlc3VsdCk6CiAgICAgZGVmYXVsdF9leHBlY3RlZCA9ICJPSyIKLSAgICBzdGF0
dXNlcyA9IHNldChbIk9LIiwgIkVSUk9SIiwgIklOVEVSTkFMLUVSUk9SIiwgIlRJTUVPVVQiLCAi
RVhURVJOQUwtVElNRU9VVCIsICJDUkFTSCJdKQorICAgIHN0YXR1c2VzID0geyJPSyIsICJFUlJP
UiIsICJJTlRFUk5BTC1FUlJPUiIsICJUSU1FT1VUIiwgIkVYVEVSTkFMLVRJTUVPVVQiLCAiQ1JB
U0gifQogCiAKIGNsYXNzIFdkc3BlY1N1YnRlc3RSZXN1bHQoU3VidGVzdFJlc3VsdCk6CiAgICAg
ZGVmYXVsdF9leHBlY3RlZCA9ICJQQVNTIgotICAgIHN0YXR1c2VzID0gc2V0KFsiUEFTUyIsICJG
QUlMIiwgIkVSUk9SIl0pCisgICAgc3RhdHVzZXMgPSB7IlBBU1MiLCAiRkFJTCIsICJFUlJPUiJ9
CiAKIAogZGVmIGdldF9ydW5faW5mbyhtZXRhZGF0YV9yb290LCBwcm9kdWN0LCAqKmt3YXJncyk6
CkBAIC02Nyw3ICs3NiwxMiBAQCBkZWYgZ2V0X3J1bl9pbmZvKG1ldGFkYXRhX3Jvb3QsIHByb2R1
Y3QsICoqa3dhcmdzKToKIAogCiBjbGFzcyBSdW5JbmZvKGRpY3QpOgotICAgIGRlZiBfX2luaXRf
XyhzZWxmLCBtZXRhZGF0YV9yb290LCBwcm9kdWN0LCBkZWJ1ZywgYnJvd3Nlcl92ZXJzaW9uPU5v
bmUsIGV4dHJhcz1Ob25lKToKKyAgICBkZWYgX19pbml0X18oc2VsZiwgbWV0YWRhdGFfcm9vdCwg
cHJvZHVjdCwgZGVidWcsCisgICAgICAgICAgICAgICAgIGJyb3dzZXJfdmVyc2lvbj1Ob25lLAor
ICAgICAgICAgICAgICAgICBicm93c2VyX2NoYW5uZWw9Tm9uZSwKKyAgICAgICAgICAgICAgICAg
dmVyaWZ5PU5vbmUsCisgICAgICAgICAgICAgICAgIGV4dHJhcz1Ob25lLAorICAgICAgICAgICAg
ICAgICBlbmFibGVfd2VicmVuZGVyPUZhbHNlKToKICAgICAgICAgaW1wb3J0IG1vemluZm8KICAg
ICAgICAgc2VsZi5fdXBkYXRlX21vemluZm8obWV0YWRhdGFfcm9vdCkKICAgICAgICAgc2VsZi51
cGRhdGUobW96aW5mby5pbmZvKQpAQCAtODksOSArMTAzLDMxIEBAIGNsYXNzIFJ1bkluZm8oZGlj
dCk6CiAgICAgICAgICAgICBzZWxmWyJkZWJ1ZyJdID0gRmFsc2UKICAgICAgICAgaWYgYnJvd3Nl
cl92ZXJzaW9uOgogICAgICAgICAgICAgc2VsZlsiYnJvd3Nlcl92ZXJzaW9uIl0gPSBicm93c2Vy
X3ZlcnNpb24KKyAgICAgICAgaWYgYnJvd3Nlcl9jaGFubmVsOgorICAgICAgICAgICAgc2VsZlsi
YnJvd3Nlcl9jaGFubmVsIl0gPSBicm93c2VyX2NoYW5uZWwKKworICAgICAgICBzZWxmWyJ2ZXJp
ZnkiXSA9IHZlcmlmeQorICAgICAgICBpZiAid2FzbSIgbm90IGluIHNlbGY6CisgICAgICAgICAg
ICBzZWxmWyJ3YXNtIl0gPSBGYWxzZQogICAgICAgICBpZiBleHRyYXMgaXMgbm90IE5vbmU6CiAg
ICAgICAgICAgICBzZWxmLnVwZGF0ZShleHRyYXMpCiAKKyAgICAgICAgIyBVbnRpbCB0aGUgdGVz
dCBoYXJuZXNzIGNhbiB1bmRlcnN0YW5kIGRlZmF1bHQgcHJlZiB2YWx1ZXMsCisgICAgICAgICMg
KGh0dHBzOi8vYnVnemlsbGEubW96aWxsYS5vcmcvc2hvd19idWcuY2dpP2lkPTE1Nzc5MTIpIHRo
aXMgdmFsdWUKKyAgICAgICAgIyBzaG91bGQgYnkgc3luY2hyb25pemVkIHdpdGggdGhlIGRlZmF1
bHQgcHJlZiB2YWx1ZSBpbmRpY2F0ZWQgaW4KKyAgICAgICAgIyBTdGF0aWNQcmVmTGlzdC55YW1s
LgorICAgICAgICAjCisgICAgICAgICMgQ3VycmVudGx5IGZvciBhdXRvbWF0aW9uLCB0aGUgcHJl
ZiAoYW5kIGBzdy1lMTBzYCkgZGVmYXVsdHMgdG8gdHJ1ZSBpbgorICAgICAgICAjIG5pZ2h0bHkg
YnVpbGRzIGFuZCBmYWxzZSBvdGhlcndpc2UgYnV0IGNhbiBiZSBvdmVycmlkZGVuIHdpdGgKKyAg
ICAgICAgIyBgLS1zZXRwcmVmYC4gSWYgb3ZlcnJpZGRlbiwgdGhlIHZhbHVlIHdvdWxkIGJlIGlu
aXRpYWxpemVkIGluCisgICAgICAgICMgYHJ1bl9pbmZvX2V4dHJhc2AgYW5kIGJlIHN1cHBsaWVk
IGluIHRoZSBgZXh0cmFzYCBwYXJhbWV0ZXIuCisgICAgICAgIGlmICJzdy1lMTBzIiBub3QgaW4g
c2VsZjoKKyAgICAgICAgICAgIHNlbGZbInN3LWUxMHMiXSA9IHNlbGYuZ2V0KCJuaWdodGx5X2J1
aWxkIiwgRmFsc2UpCisKKyAgICAgICAgc2VsZlsiaGVhZGxlc3MiXSA9IGV4dHJhcy5nZXQoImhl
YWRsZXNzIiwgRmFsc2UpCisgICAgICAgIHNlbGZbIndlYnJlbmRlciJdID0gZW5hYmxlX3dlYnJl
bmRlcgorCisKICAgICBkZWYgX3VwZGF0ZV9tb3ppbmZvKHNlbGYsIG1ldGFkYXRhX3Jvb3QpOgog
ICAgICAgICAiIiJBZGQgZXh0cmEgYnVpbGQgaW5mb3JtYXRpb24gZnJvbSBhIG1vemluZm8uanNv
biBmaWxlIGluIGEgcGFyZW50CiAgICAgICAgIGRpcmVjdG9yeSIiIgpAQCAtMTM2LDE1ICsxNzIs
MTUgQEAgY2xhc3MgVGVzdChvYmplY3QpOgogICAgICAgICByZXR1cm4gbWV0YWRhdGEKIAogICAg
IEBjbGFzc21ldGhvZAotICAgIGRlZiBmcm9tX21hbmlmZXN0KGNscywgbWFuaWZlc3RfaXRlbSwg
aW5oZXJpdF9tZXRhZGF0YSwgdGVzdF9tZXRhZGF0YSk6CisgICAgZGVmIGZyb21fbWFuaWZlc3Qo
Y2xzLCBtYW5pZmVzdF9maWxlLCBtYW5pZmVzdF9pdGVtLCBpbmhlcml0X21ldGFkYXRhLCB0ZXN0
X21ldGFkYXRhKToKICAgICAgICAgdGltZW91dCA9IGNscy5sb25nX3RpbWVvdXQgaWYgbWFuaWZl
c3RfaXRlbS50aW1lb3V0ID09ICJsb25nIiBlbHNlIGNscy5kZWZhdWx0X3RpbWVvdXQKICAgICAg
ICAgcHJvdG9jb2wgPSAiaHR0cHMiIGlmIGhhc2F0dHIobWFuaWZlc3RfaXRlbSwgImh0dHBzIikg
YW5kIG1hbmlmZXN0X2l0ZW0uaHR0cHMgZWxzZSAiaHR0cCIKLSAgICAgICAgcmV0dXJuIGNscyht
YW5pZmVzdF9pdGVtLnNvdXJjZV9maWxlLnRlc3RzX3Jvb3QsCisgICAgICAgIHJldHVybiBjbHMo
bWFuaWZlc3RfZmlsZS50ZXN0c19yb290LAogICAgICAgICAgICAgICAgICAgIG1hbmlmZXN0X2l0
ZW0udXJsLAogICAgICAgICAgICAgICAgICAgIGluaGVyaXRfbWV0YWRhdGEsCiAgICAgICAgICAg
ICAgICAgICAgdGVzdF9tZXRhZGF0YSwKICAgICAgICAgICAgICAgICAgICB0aW1lb3V0PXRpbWVv
dXQsCi0gICAgICAgICAgICAgICAgICAgcGF0aD1tYW5pZmVzdF9pdGVtLnNvdXJjZV9maWxlLnBh
dGgsCisgICAgICAgICAgICAgICAgICAgcGF0aD1vcy5wYXRoLmpvaW4obWFuaWZlc3RfZmlsZS50
ZXN0c19yb290LCBtYW5pZmVzdF9pdGVtLnBhdGgpLAogICAgICAgICAgICAgICAgICAgIHByb3Rv
Y29sPXByb3RvY29sKQogCiAgICAgQHByb3BlcnR5CkBAIC0yMjQsNiArMjYwLDM0IEBAIGNsYXNz
IFRlc3Qob2JqZWN0KToKICAgICAgICAgICAgICAgICBicmVhawogICAgICAgICByZXR1cm4gbHNh
bl9hbGxvd2VkCiAKKyAgICBAcHJvcGVydHkKKyAgICBkZWYgbHNhbl9tYXhfc3RhY2tfZGVwdGgo
c2VsZik6CisgICAgICAgIGZvciBtZXRhIGluIHNlbGYuaXRlcm1ldGEoTm9uZSk6CisgICAgICAg
ICAgICBkZXB0aCA9IG1ldGEubHNhbl9tYXhfc3RhY2tfZGVwdGgKKyAgICAgICAgICAgIGlmIGRl
cHRoIGlzIG5vdCBOb25lOgorICAgICAgICAgICAgICAgIHJldHVybiBkZXB0aAorICAgICAgICBy
ZXR1cm4gTm9uZQorCisgICAgQHByb3BlcnR5CisgICAgZGVmIG1vemxlYWtfYWxsb3dlZChzZWxm
KToKKyAgICAgICAgbW96bGVha19hbGxvd2VkID0gc2V0KCkKKyAgICAgICAgZm9yIG1ldGEgaW4g
c2VsZi5pdGVybWV0YSgpOgorICAgICAgICAgICAgbW96bGVha19hbGxvd2VkIHw9IG1ldGEubGVh
a19hbGxvd2VkCisgICAgICAgICAgICBpZiBhdG9tX3Jlc2V0IGluIG1vemxlYWtfYWxsb3dlZDoK
KyAgICAgICAgICAgICAgICBtb3psZWFrX2FsbG93ZWQucmVtb3ZlKGF0b21fcmVzZXQpCisgICAg
ICAgICAgICAgICAgYnJlYWsKKyAgICAgICAgcmV0dXJuIG1vemxlYWtfYWxsb3dlZAorCisgICAg
QHByb3BlcnR5CisgICAgZGVmIG1vemxlYWtfdGhyZXNob2xkKHNlbGYpOgorICAgICAgICBydiA9
IHt9CisgICAgICAgIGZvciBtZXRhIGluIHNlbGYuaXRlcm1ldGEoTm9uZSk6CisgICAgICAgICAg
ICB0aHJlc2hvbGQgPSBtZXRhLmxlYWtfdGhyZXNob2xkCisgICAgICAgICAgICBmb3Iga2V5LCB2
YWx1ZSBpbiB0aHJlc2hvbGQuaXRlcml0ZW1zKCk6CisgICAgICAgICAgICAgICAgaWYga2V5IG5v
dCBpbiBydjoKKyAgICAgICAgICAgICAgICAgICAgcnZba2V5XSA9IHZhbHVlCisgICAgICAgIHJl
dHVybiBydgorCiAgICAgQHByb3BlcnR5CiAgICAgZGVmIHRhZ3Moc2VsZik6CiAgICAgICAgIHRh
Z3MgPSBzZXQoKQpAQCAtMjQxLDEyICszMDUsMTIgQEAgY2xhc3MgVGVzdChvYmplY3QpOgogICAg
IEBwcm9wZXJ0eQogICAgIGRlZiBwcmVmcyhzZWxmKToKICAgICAgICAgcHJlZnMgPSB7fQotICAg
ICAgICBmb3IgbWV0YSBpbiBzZWxmLml0ZXJtZXRhKCk6CisgICAgICAgIGZvciBtZXRhIGluIHJl
dmVyc2VkKGxpc3Qoc2VsZi5pdGVybWV0YSgpKSk6CiAgICAgICAgICAgICBtZXRhX3ByZWZzID0g
bWV0YS5wcmVmcwotICAgICAgICAgICAgcHJlZnMudXBkYXRlKG1ldGFfcHJlZnMpCiAgICAgICAg
ICAgICBpZiBhdG9tX3Jlc2V0IGluIG1ldGFfcHJlZnM6Ci0gICAgICAgICAgICAgICAgZGVsIHBy
ZWZzW2F0b21fcmVzZXRdCi0gICAgICAgICAgICAgICAgYnJlYWsKKyAgICAgICAgICAgICAgICBk
ZWwgbWV0YV9wcmVmc1thdG9tX3Jlc2V0XQorICAgICAgICAgICAgICAgIHByZWZzID0ge30KKyAg
ICAgICAgICAgIHByZWZzLnVwZGF0ZShtZXRhX3ByZWZzKQogICAgICAgICByZXR1cm4gcHJlZnMK
IAogICAgIGRlZiBleHBlY3RlZChzZWxmLCBzdWJ0ZXN0PU5vbmUpOgpAQCAtMjYwLDEwICszMjQs
NDAgQEAgY2xhc3MgVGVzdChvYmplY3QpOgogICAgICAgICAgICAgcmV0dXJuIGRlZmF1bHQKIAog
ICAgICAgICB0cnk6Ci0gICAgICAgICAgICByZXR1cm4gbWV0YWRhdGEuZ2V0KCJleHBlY3RlZCIp
CisgICAgICAgICAgICBleHBlY3RlZCA9IG1ldGFkYXRhLmdldCgiZXhwZWN0ZWQiKQorICAgICAg
ICAgICAgaWYgaXNpbnN0YW5jZShleHBlY3RlZCwgKGJhc2VzdHJpbmcpKToKKyAgICAgICAgICAg
ICAgICByZXR1cm4gZXhwZWN0ZWQKKyAgICAgICAgICAgIGVsaWYgaXNpbnN0YW5jZShleHBlY3Rl
ZCwgbGlzdCk6CisgICAgICAgICAgICAgICAgcmV0dXJuIGV4cGVjdGVkWzBdCisgICAgICAgICAg
ICBlbGlmIGV4cGVjdGVkIGlzIE5vbmU6CisgICAgICAgICAgICAgICAgcmV0dXJuIGRlZmF1bHQK
ICAgICAgICAgZXhjZXB0IEtleUVycm9yOgogICAgICAgICAgICAgcmV0dXJuIGRlZmF1bHQKIAor
ICAgIGRlZiBrbm93bl9pbnRlcm1pdHRlbnQoc2VsZiwgc3VidGVzdD1Ob25lKToKKyAgICAgICAg
bWV0YWRhdGEgPSBzZWxmLl9nZXRfbWV0YWRhdGEoc3VidGVzdCkKKyAgICAgICAgaWYgbWV0YWRh
dGEgaXMgTm9uZToKKyAgICAgICAgICAgIHJldHVybiBbXQorCisgICAgICAgIHRyeToKKyAgICAg
ICAgICAgIGV4cGVjdGVkID0gbWV0YWRhdGEuZ2V0KCJleHBlY3RlZCIpCisgICAgICAgICAgICBp
ZiBpc2luc3RhbmNlKGV4cGVjdGVkLCBsaXN0KToKKyAgICAgICAgICAgICAgICByZXR1cm4gZXhw
ZWN0ZWRbMTpdCisgICAgICAgICAgICByZXR1cm4gW10KKyAgICAgICAgZXhjZXB0IEtleUVycm9y
OgorICAgICAgICAgICAgcmV0dXJuIFtdCisKKyAgICBkZWYgZXhwZWN0X2FueV9zdWJ0ZXN0X3N0
YXR1cyhzZWxmKToKKyAgICAgICAgbWV0YWRhdGEgPSBzZWxmLl9nZXRfbWV0YWRhdGEoKQorICAg
ICAgICBpZiBtZXRhZGF0YSBpcyBOb25lOgorICAgICAgICAgICAgcmV0dXJuIEZhbHNlCisgICAg
ICAgIHRyeToKKyAgICAgICAgICAgICMgVGhpcyBrZXkgaXMgdXNlZCBieSB0aGUgQmxpbmsgQ0kg
dG8gaWdub3JlIHN1YnRlc3Qgc3RhdHVzZXMKKyAgICAgICAgICAgIG1ldGFkYXRhLmdldCgiYmxp
bmtfZXhwZWN0X2FueV9zdWJ0ZXN0X3N0YXR1cyIpCisgICAgICAgICAgICByZXR1cm4gVHJ1ZQor
ICAgICAgICBleGNlcHQgS2V5RXJyb3I6CisgICAgICAgICAgICByZXR1cm4gRmFsc2UKKwogICAg
IGRlZiBfX3JlcHJfXyhzZWxmKToKICAgICAgICAgcmV0dXJuICI8JXMuJXMgJXM+IiAlIChzZWxm
Ll9fbW9kdWxlX18sIHNlbGYuX19jbGFzc19fLl9fbmFtZV9fLCBzZWxmLmlkKQogCkBAIC0yODQs
MjMgKzM3OCwyNCBAQCBjbGFzcyBUZXN0aGFybmVzc1Rlc3QoVGVzdCk6CiAgICAgICAgIHNlbGYu
c2NyaXB0cyA9IHNjcmlwdHMgb3IgW10KIAogICAgIEBjbGFzc21ldGhvZAotICAgIGRlZiBmcm9t
X21hbmlmZXN0KGNscywgbWFuaWZlc3RfaXRlbSwgaW5oZXJpdF9tZXRhZGF0YSwgdGVzdF9tZXRh
ZGF0YSk6CisgICAgZGVmIGZyb21fbWFuaWZlc3QoY2xzLCBtYW5pZmVzdF9maWxlLCBtYW5pZmVz
dF9pdGVtLCBpbmhlcml0X21ldGFkYXRhLCB0ZXN0X21ldGFkYXRhKToKICAgICAgICAgdGltZW91
dCA9IGNscy5sb25nX3RpbWVvdXQgaWYgbWFuaWZlc3RfaXRlbS50aW1lb3V0ID09ICJsb25nIiBl
bHNlIGNscy5kZWZhdWx0X3RpbWVvdXQKICAgICAgICAgcHJvdG9jb2wgPSAiaHR0cHMiIGlmIGhh
c2F0dHIobWFuaWZlc3RfaXRlbSwgImh0dHBzIikgYW5kIG1hbmlmZXN0X2l0ZW0uaHR0cHMgZWxz
ZSAiaHR0cCIKICAgICAgICAgdGVzdGRyaXZlciA9IG1hbmlmZXN0X2l0ZW0udGVzdGRyaXZlciBp
ZiBoYXNhdHRyKG1hbmlmZXN0X2l0ZW0sICJ0ZXN0ZHJpdmVyIikgZWxzZSBGYWxzZQogICAgICAg
ICBqc3NoZWxsID0gbWFuaWZlc3RfaXRlbS5qc3NoZWxsIGlmIGhhc2F0dHIobWFuaWZlc3RfaXRl
bSwgImpzc2hlbGwiKSBlbHNlIEZhbHNlCi0gICAgICAgIHNjcmlwdF9tZXRhZGF0YSA9IG1hbmlm
ZXN0X2l0ZW0uc291cmNlX2ZpbGUuc2NyaXB0X21ldGFkYXRhIG9yIFtdCisgICAgICAgIHNjcmlw
dF9tZXRhZGF0YSA9IG1hbmlmZXN0X2l0ZW0uc2NyaXB0X21ldGFkYXRhIG9yIFtdCiAgICAgICAg
IHNjcmlwdHMgPSBbdiBmb3IgKGssIHYpIGluIHNjcmlwdF9tZXRhZGF0YSBpZiBrID09IGIic2Ny
aXB0Il0KLSAgICAgICAgcmV0dXJuIGNscyhtYW5pZmVzdF9pdGVtLnNvdXJjZV9maWxlLnRlc3Rz
X3Jvb3QsCisgICAgICAgIHJldHVybiBjbHMobWFuaWZlc3RfZmlsZS50ZXN0c19yb290LAogICAg
ICAgICAgICAgICAgICAgIG1hbmlmZXN0X2l0ZW0udXJsLAogICAgICAgICAgICAgICAgICAgIGlu
aGVyaXRfbWV0YWRhdGEsCiAgICAgICAgICAgICAgICAgICAgdGVzdF9tZXRhZGF0YSwKICAgICAg
ICAgICAgICAgICAgICB0aW1lb3V0PXRpbWVvdXQsCi0gICAgICAgICAgICAgICAgICAgcGF0aD1t
YW5pZmVzdF9pdGVtLnNvdXJjZV9maWxlLnBhdGgsCisgICAgICAgICAgICAgICAgICAgcGF0aD1v
cy5wYXRoLmpvaW4obWFuaWZlc3RfZmlsZS50ZXN0c19yb290LCBtYW5pZmVzdF9pdGVtLnBhdGgp
LAogICAgICAgICAgICAgICAgICAgIHByb3RvY29sPXByb3RvY29sLAogICAgICAgICAgICAgICAg
ICAgIHRlc3Rkcml2ZXI9dGVzdGRyaXZlciwKICAgICAgICAgICAgICAgICAgICBqc3NoZWxsPWpz
c2hlbGwsCi0gICAgICAgICAgICAgICAgICAgc2NyaXB0cz1zY3JpcHRzKQorICAgICAgICAgICAg
ICAgICAgIHNjcmlwdHM9c2NyaXB0cworICAgICAgICAgICAgICAgICAgICkKIAogICAgIEBwcm9w
ZXJ0eQogICAgIGRlZiBpZChzZWxmKToKQEAgLTMyMCw3ICs0MTUsNyBAQCBjbGFzcyBSZWZ0ZXN0
VGVzdChUZXN0KToKICAgICB0ZXN0X3R5cGUgPSAicmVmdGVzdCIKIAogICAgIGRlZiBfX2luaXRf
XyhzZWxmLCB0ZXN0c19yb290LCB1cmwsIGluaGVyaXRfbWV0YWRhdGEsIHRlc3RfbWV0YWRhdGEs
IHJlZmVyZW5jZXMsCi0gICAgICAgICAgICAgICAgIHRpbWVvdXQ9Tm9uZSwgcGF0aD1Ob25lLCB2
aWV3cG9ydF9zaXplPU5vbmUsIGRwaT1Ob25lLCBwcm90b2NvbD0iaHR0cCIpOgorICAgICAgICAg
ICAgICAgICB0aW1lb3V0PU5vbmUsIHBhdGg9Tm9uZSwgdmlld3BvcnRfc2l6ZT1Ob25lLCBkcGk9
Tm9uZSwgZnV6enk9Tm9uZSwgcHJvdG9jb2w9Imh0dHAiKToKICAgICAgICAgVGVzdC5fX2luaXRf
XyhzZWxmLCB0ZXN0c19yb290LCB1cmwsIGluaGVyaXRfbWV0YWRhdGEsIHRlc3RfbWV0YWRhdGEs
IHRpbWVvdXQsCiAgICAgICAgICAgICAgICAgICAgICAgcGF0aCwgcHJvdG9jb2wpCiAKQEAgLTMz
MSw5ICs0MjYsMTEgQEAgY2xhc3MgUmVmdGVzdFRlc3QoVGVzdCk6CiAgICAgICAgIHNlbGYucmVm
ZXJlbmNlcyA9IHJlZmVyZW5jZXMKICAgICAgICAgc2VsZi52aWV3cG9ydF9zaXplID0gdmlld3Bv
cnRfc2l6ZQogICAgICAgICBzZWxmLmRwaSA9IGRwaQorICAgICAgICBzZWxmLl9mdXp6eSA9IGZ1
enp5IG9yIHt9CiAKICAgICBAY2xhc3NtZXRob2QKICAgICBkZWYgZnJvbV9tYW5pZmVzdChjbHMs
CisgICAgICAgICAgICAgICAgICAgICAgbWFuaWZlc3RfZmlsZSwKICAgICAgICAgICAgICAgICAg
ICAgICBtYW5pZmVzdF90ZXN0LAogICAgICAgICAgICAgICAgICAgICAgIGluaGVyaXRfbWV0YWRh
dGEsCiAgICAgICAgICAgICAgICAgICAgICAgdGVzdF9tZXRhZGF0YSwKQEAgLTM0OSw3ICs0NDYs
NyBAQCBjbGFzcyBSZWZ0ZXN0VGVzdChUZXN0KToKIAogICAgICAgICB1cmwgPSBtYW5pZmVzdF90
ZXN0LnVybAogCi0gICAgICAgIG5vZGUgPSBjbHMobWFuaWZlc3RfdGVzdC5zb3VyY2VfZmlsZS50
ZXN0c19yb290LAorICAgICAgICBub2RlID0gY2xzKG1hbmlmZXN0X2ZpbGUudGVzdHNfcm9vdCwK
ICAgICAgICAgICAgICAgICAgICBtYW5pZmVzdF90ZXN0LnVybCwKICAgICAgICAgICAgICAgICAg
ICBpbmhlcml0X21ldGFkYXRhLAogICAgICAgICAgICAgICAgICAgIHRlc3RfbWV0YWRhdGEsCkBA
IC0zNTgsNyArNDU1LDggQEAgY2xhc3MgUmVmdGVzdFRlc3QoVGVzdCk6CiAgICAgICAgICAgICAg
ICAgICAgcGF0aD1tYW5pZmVzdF90ZXN0LnBhdGgsCiAgICAgICAgICAgICAgICAgICAgdmlld3Bv
cnRfc2l6ZT1tYW5pZmVzdF90ZXN0LnZpZXdwb3J0X3NpemUsCiAgICAgICAgICAgICAgICAgICAg
ZHBpPW1hbmlmZXN0X3Rlc3QuZHBpLAotICAgICAgICAgICAgICAgICAgIHByb3RvY29sPSJodHRw
cyIgaWYgaGFzYXR0cihtYW5pZmVzdF90ZXN0LCAiaHR0cHMiKSBhbmQgbWFuaWZlc3RfdGVzdC5o
dHRwcyBlbHNlICJodHRwIikKKyAgICAgICAgICAgICAgICAgICBwcm90b2NvbD0iaHR0cHMiIGlm
IGhhc2F0dHIobWFuaWZlc3RfdGVzdCwgImh0dHBzIikgYW5kIG1hbmlmZXN0X3Rlc3QuaHR0cHMg
ZWxzZSAiaHR0cCIsCisgICAgICAgICAgICAgICAgICAgZnV6enk9bWFuaWZlc3RfdGVzdC5mdXp6
eSkKIAogICAgICAgICBub2Rlc1t1cmxdID0gbm9kZQogCkBAIC0zNzYsMTUgKzQ3NCwxNiBAQCBj
bGFzcyBSZWZ0ZXN0VGVzdChUZXN0KToKIAogICAgICAgICAgICAgcmVmZXJlbmNlc19zZWVuLmFk
ZChjb21wYXJpc29uX2tleSkKIAotICAgICAgICAgICAgbWFuaWZlc3Rfbm9kZSA9IG1hbmlmZXN0
X3Rlc3QubWFuaWZlc3QuZ2V0X3JlZmVyZW5jZShyZWZfdXJsKQorICAgICAgICAgICAgbWFuaWZl
c3Rfbm9kZSA9IG1hbmlmZXN0X2ZpbGUuZ2V0X3JlZmVyZW5jZShyZWZfdXJsKQogICAgICAgICAg
ICAgaWYgbWFuaWZlc3Rfbm9kZToKLSAgICAgICAgICAgICAgICByZWZlcmVuY2UgPSBSZWZ0ZXN0
VGVzdC5mcm9tX21hbmlmZXN0KG1hbmlmZXN0X25vZGUsCisgICAgICAgICAgICAgICAgcmVmZXJl
bmNlID0gUmVmdGVzdFRlc3QuZnJvbV9tYW5pZmVzdChtYW5pZmVzdF9maWxlLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFuaWZlc3Rfbm9k
ZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IFtdLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgTm9uZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIG5vZGVzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgcmVmZXJlbmNlc19zZWVuKQogICAgICAgICAgICAgZWxzZToKLSAgICAgICAg
ICAgICAgICByZWZlcmVuY2UgPSBSZWZ0ZXN0VGVzdChtYW5pZmVzdF90ZXN0LnNvdXJjZV9maWxl
LnRlc3RzX3Jvb3QsCisgICAgICAgICAgICAgICAgcmVmZXJlbmNlID0gUmVmdGVzdFRlc3QobWFu
aWZlc3RfZmlsZS50ZXN0c19yb290LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHJlZl91cmwsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
W10sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTm9uZSwKQEAgLTQx
Myw2ICs1MTIsMzIgQEAgY2xhc3MgUmVmdGVzdFRlc3QoVGVzdCk6CiAgICAgZGVmIGtleXMoc2Vs
Zik6CiAgICAgICAgIHJldHVybiAoInJlZnR5cGUiLCAicmVmdXJsIikKIAorICAgIEBwcm9wZXJ0
eQorICAgIGRlZiBmdXp6eShzZWxmKToKKyAgICAgICAgcmV0dXJuIHNlbGYuX2Z1enp5CisKKyAg
ICBAcHJvcGVydHkKKyAgICBkZWYgZnV6enlfb3ZlcnJpZGUoc2VsZik6CisgICAgICAgIHZhbHVl
cyA9IHt9CisgICAgICAgIGZvciBtZXRhIGluIHJldmVyc2VkKGxpc3Qoc2VsZi5pdGVybWV0YShO
b25lKSkpOgorICAgICAgICAgICAgdmFsdWUgPSBtZXRhLmZ1enp5CisgICAgICAgICAgICBpZiBu
b3QgdmFsdWU6CisgICAgICAgICAgICAgICAgY29udGludWUKKyAgICAgICAgICAgIGlmIGF0b21f
cmVzZXQgaW4gdmFsdWU6CisgICAgICAgICAgICAgICAgdmFsdWUucmVtb3ZlKGF0b21fcmVzZXQp
CisgICAgICAgICAgICAgICAgdmFsdWVzID0ge30KKyAgICAgICAgICAgIGZvciBrZXksIGRhdGEg
aW4gdmFsdWU6CisgICAgICAgICAgICAgICAgaWYgaXNpbnN0YW5jZShrZXksICh0dXBsZSwgbGlz
dCkpOgorICAgICAgICAgICAgICAgICAgICBrZXkgPSBsaXN0KGtleSkKKyAgICAgICAgICAgICAg
ICAgICAga2V5WzBdID0gdXJsam9pbihzZWxmLnVybCwga2V5WzBdKQorICAgICAgICAgICAgICAg
ICAgICBrZXlbMV0gPSB1cmxqb2luKHNlbGYudXJsLCBrZXlbMV0pCisgICAgICAgICAgICAgICAg
ICAgIGtleSA9IHR1cGxlKGtleSkKKyAgICAgICAgICAgICAgICBlbGlmIGtleToKKyAgICAgICAg
ICAgICAgICAgICAgIyBLZXkgaXMganVzdCBhIHJlbGF0aXZlIHVybCB0byBhIHJlZgorICAgICAg
ICAgICAgICAgICAgICBrZXkgPSB1cmxqb2luKHNlbGYudXJsLCBrZXkpCisgICAgICAgICAgICAg
ICAgdmFsdWVzW2tleV0gPSBkYXRhCisgICAgICAgIHJldHVybiB2YWx1ZXMKKwogCiBjbGFzcyBX
ZHNwZWNUZXN0KFRlc3QpOgogCkBAIC00MzAsNiArNTU1LDYgQEAgbWFuaWZlc3RfdGVzdF9jbHMg
PSB7InJlZnRlc3QiOiBSZWZ0ZXN0VGVzdCwKICAgICAgICAgICAgICAgICAgICAgICJ3ZHNwZWMi
OiBXZHNwZWNUZXN0fQogCiAKLWRlZiBmcm9tX21hbmlmZXN0KG1hbmlmZXN0X3Rlc3QsIGluaGVy
aXRfbWV0YWRhdGEsIHRlc3RfbWV0YWRhdGEpOgorZGVmIGZyb21fbWFuaWZlc3QobWFuaWZlc3Rf
ZmlsZSwgbWFuaWZlc3RfdGVzdCwgaW5oZXJpdF9tZXRhZGF0YSwgdGVzdF9tZXRhZGF0YSk6CiAg
ICAgdGVzdF9jbHMgPSBtYW5pZmVzdF90ZXN0X2Nsc1ttYW5pZmVzdF90ZXN0Lml0ZW1fdHlwZV0K
LSAgICByZXR1cm4gdGVzdF9jbHMuZnJvbV9tYW5pZmVzdChtYW5pZmVzdF90ZXN0LCBpbmhlcml0
X21ldGFkYXRhLCB0ZXN0X21ldGFkYXRhKQorICAgIHJldHVybiB0ZXN0X2Nscy5mcm9tX21hbmlm
ZXN0KG1hbmlmZXN0X2ZpbGUsIG1hbmlmZXN0X3Rlc3QsIGluaGVyaXRfbWV0YWRhdGEsIHRlc3Rf
bWV0YWRhdGEpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3dwdHNlcnZlLy5jb3ZlcmFnZXJjIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRzZXJ2ZS8uY292ZXJhZ2VyYwpuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi4wZTAwYzA3OWY2NGNiZDllMzJlMDE4ZDAxYTEyMGEwODI3Yjc5MDI2Ci0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy93cHRzZXJ2ZS8uY292ZXJhZ2VyYwpAQCAtMCwwICsxLDExIEBACitbcnVuXQorYnJhbmNo
ID0gVHJ1ZQorcGFyYWxsZWwgPSBUcnVlCitvbWl0ID0KKyAgKi9zaXRlLXBhY2thZ2VzLyoKKyAg
Ki9saWJfcHlweS8qCisKK1twYXRoc10KK3dwdHNlcnZlID0KKyAgd3B0c2VydmUKKyAgLnRveC8q
Ki9zaXRlLXBhY2thZ2VzL3dwdHNlcnZlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHNlcnZlLy5naXRpZ25vcmUgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHNlcnZlLy5n
aXRpZ25vcmUKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uOGU4N2QzODg0ODhiYmMyMWM2NjQyMDlmZWNkMmYzZTAzMDQx
MWIwZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvd3B0c2VydmUvLmdpdGlnbm9yZQpAQCAtMCwwICsxLDQwIEBACisq
LnB5W2NvZF0KKyp+CitcIyoKKworZG9jcy9fYnVpbGQvCisKKyMgQyBleHRlbnNpb25zCisqLnNv
CisKKyMgUGFja2FnZXMKKyouZWdnCisqLmVnZy1pbmZvCitkaXN0CitidWlsZAorZWdncworcGFy
dHMKK2JpbgordmFyCitzZGlzdAorZGV2ZWxvcC1lZ2dzCisuaW5zdGFsbGVkLmNmZworbGliCits
aWI2NAorCisjIEluc3RhbGxlciBsb2dzCitwaXAtbG9nLnR4dAorCisjIFVuaXQgdGVzdCAvIGNv
dmVyYWdlIHJlcG9ydHMKKy5jb3ZlcmFnZQorLnRveAorbm9zZXRlc3RzLnhtbAordGVzdHMvZnVu
Y3Rpb25hbC9odG1sLyoKKworIyBUcmFuc2xhdGlvbnMKKyoubW8KKworIyBNciBEZXZlbG9wZXIK
Ky5tci5kZXZlbG9wZXIuY2ZnCisucHJvamVjdAorLnB5ZGV2cHJvamVjdApkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRzZXJ2
ZS9SRUFETUUubWQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3dwdHNlcnZlL1JFQURNRS5tZAppbmRleCAzMGE3ZGNjYzkzZWYxOTdkNTFlM2NlOTll
Yjc4YzJlMTE0ZDE2NTNlLi42ODIxZGVlMzhhNDk4YTQ3MmNmNzE4NjFhYzI1YThjZGExMmUxN2Fh
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3dwdHNlcnZlL1JFQURNRS5tZAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHNlcnZlL1JFQURNRS5tZApAQCAtMyw0ICszLDQg
QEAgd3B0c2VydmUKIAogV2ViIHNlcnZlciBkZXNpZ25lZCBmb3IgdXNlIHdpdGggd2ViLXBsYXRm
b3JtLXRlc3RzLgogCi1bd3B0c2VydmUucmVhZHRoZWRvY3MuaW9dKGh0dHA6Ly93cHRzZXJ2ZS5y
ZWFkdGhlZG9jcy5pby9lbi9sYXRlc3QvaW5kZXguaHRtbCkKK1NlZSB0aGUgZG9jcyBvbiBbd2Vi
LXBsYXRmb3JtLXRlc3RzLm9yZ10oaHR0cHM6Ly93ZWItcGxhdGZvcm0tdGVzdHMub3JnL3Rvb2xz
L3dwdHNlcnZlL2RvY3MvaW5kZXguaHRtbCkuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHNlcnZlL2RvY3MvaGFuZGxlcnMu
cnN0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93
cHRzZXJ2ZS9kb2NzL2hhbmRsZXJzLnJzdAppbmRleCBjMTVhYWI2MzVkOTY5NzZhZjU5YzYwNmQ4
NGQwYTU3NTA3NDM1NDRiLi44ZWNjOTMzMjg4YjYzNjliODU1YjZlNzMzYmFlYmMwZTVhMTgxYTg1
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3dwdHNlcnZlL2RvY3MvaGFuZGxlcnMucnN0CisrKyBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0c2VydmUvZG9jcy9oYW5kbGVycy5y
c3QKQEAgLTIyLDIyICsyMiwyMiBAQCBQeXRob24gSGFuZGxlcnMKIAogUHl0aG9uIGhhbmRsZXJz
IGFyZSBmdW5jdGlvbnMgd2hpY2ggcHJvdmlkZSBhIGhpZ2hlci1sZXZlbCBBUEkgb3ZlcgogbWFu
dWFsbHkgdXBkYXRpbmcgdGhlIHJlc3BvbnNlIG9iamVjdCwgYnkgY2F1c2luZyB0aGUgcmV0dXJu
IHZhbHVlIG9mCi10aGUgZnVuY3Rpb24gdG8gcHJvdmlkZSAocGFydCBvZikgdGhlIHJlc3BvbnNl
LiBUaGVyZSBhcmUgdGhyZWUKK3RoZSBmdW5jdGlvbiB0byBwcm92aWRlIChwYXJ0IG9mKSB0aGUg
cmVzcG9uc2UuIFRoZXJlIGFyZSBmb3VyCiBwb3NzaWJsZSBzZXRzIG9mIHZhbHVlcyB0aGF0IG1h
eSBiZSByZXR1cm5lZDo6CiAKIAotICAoc3RhdHVzLCBoZWFkZXJzLCBjb250ZW50KQorICAoKHN0
YXR1c19jb2RlLCByZWFzb24pLCBoZWFkZXJzLCBjb250ZW50KQorICAoc3RhdHVzX2NvZGUsIGhl
YWRlcnMsIGNvbnRlbnQpCiAgIChoZWFkZXJzLCBjb250ZW50KQogICBjb250ZW50CiAKLUhlcmUg
YHN0YXR1c2AgaXMgZWl0aGVyIGEgdHVwbGUgKHN0YXR1cyBjb2RlLCBtZXNzYWdlKSBvciBzaW1w
bHkgYQotaW50ZWdlciBzdGF0dXMgY29kZSwgYGhlYWRlcnNgIGlzIGEgbGlzdCBvZiAoZmllbGQg
bmFtZSwgdmFsdWUpIHBhaXJzLAotYW5kIGBjb250ZW50YCBpcyBhIHN0cmluZyBvciBhbiBpdGVy
YWJsZSByZXR1cm5pbmcgc3RyaW5ncy4gU3VjaCBhCi1mdW5jdGlvbiBtYXkgYWxzbyB1cGRhdGUg
dGhlIHJlc3BvbnNlIG1hbnVhbGx5LiBGb3IgZXhhbXBsZSBvbmUgbWF5Ci11c2UgYHJlc3BvbnNl
LmhlYWRlcnMuc2V0YCB0byBzZXQgYSByZXNwb25zZSBoZWFkZXIsIGFuZCBvbmx5IHJldHVybgot
dGhlIGNvbnRlbnQuIE9uZSBtYXkgZXZlbiB1c2UgdGhpcyBraW5kIG9mIGhhbmRsZXIsIGJ1dCBt
YW5pcHVsYXRlCi10aGUgb3V0cHV0IHNvY2tldCBkaXJlY3RseSwgaW4gd2hpY2ggY2FzZSB0aGUg
cmV0dXJuIHZhbHVlIG9mIHRoZQotZnVuY3Rpb24sIGFuZCB0aGUgcHJvcGVydGllcyBvZiB0aGUg
cmVzcG9uc2Ugb2JqZWN0LCB3aWxsIGJlIGlnbm9yZWQuCitIZXJlIGBzdGF0dXNfY29kZWAgaXMg
YW4gaW50ZWdlciBzdGF0dXMgY29kZSwgYGhlYWRlcnNgIGlzIGEgbGlzdCBvZiAoZmllbGQKK25h
bWUsIHZhbHVlKSBwYWlycywgYW5kIGBjb250ZW50YCBpcyBhIHN0cmluZyBvciBhbiBpdGVyYWJs
ZSByZXR1cm5pbmcgc3RyaW5ncy4KK1N1Y2ggYSBmdW5jdGlvbiBtYXkgYWxzbyB1cGRhdGUgdGhl
IHJlc3BvbnNlIG1hbnVhbGx5LiBGb3IgZXhhbXBsZSBvbmUgbWF5IHVzZQorYHJlc3BvbnNlLmhl
YWRlcnMuc2V0YCB0byBzZXQgYSByZXNwb25zZSBoZWFkZXIsIGFuZCBvbmx5IHJldHVybiB0aGUg
Y29udGVudC4KK09uZSBtYXkgZXZlbiB1c2UgdGhpcyBraW5kIG9mIGhhbmRsZXIsIGJ1dCBtYW5p
cHVsYXRlIHRoZSBvdXRwdXQgc29ja2V0CitkaXJlY3RseSwgaW4gd2hpY2ggY2FzZSB0aGUgcmV0
dXJuIHZhbHVlIG9mIHRoZSBmdW5jdGlvbiwgYW5kIHRoZSBwcm9wZXJ0aWVzIG9mCit0aGUgcmVz
cG9uc2Ugb2JqZWN0LCB3aWxsIGJlIGlnbm9yZWQuCiAKIFRoZSBtb3N0IGNvbW1vbiB3YXkgdG8g
bWFrZSBhIHVzZXIgZnVuY3Rpb24gaW50byBhIHB5dGhvbiBoYW5kbGVyIGlzCiB0byB1c2UgdGhl
IHByb3ZpZGVkIGB3cHRzZXJ2ZS5oYW5kbGVycy5oYW5kbGVyYCBkZWNvcmF0b3I6OgpAQCAtNzEs
MTYgKzcxLDEzIEBAIGRlY29yYXRvcjo6CiBQeXRob24gRmlsZSBIYW5kbGVycwogLS0tLS0tLS0t
LS0tLS0tLS0tLS0KIAotUHl0aG9uIGZpbGUgaGFuZGxlcnMgYXJlIGRlc2lnbmVkIHRvIHByb3Zp
ZGUgYSB2YWd1ZWx5IFBIUC1saWtlIGludGVyZmFjZQotd2hlcmUgZWFjaCByZXNvdXJjZSBjb3Jy
ZXNwb25kcyB0byBhIHBhcnRpY3VsYXIgcHl0aG9uIGZpbGUgb24gdGhlCi1maWxlc3lzdGVtLiBU
eXBpY2FsbHkgdGhpcyBpcyBob29rZWQgdXAgdG8gYSByb3V0ZSBsaWtlIGBgKCIqIiwKLSIqLnB5
IiwgcHl0aG9uX2ZpbGVfaGFuZGxlcilgYCwgbWVhbmluZyB0aGF0IGFueSAucHkgZmlsZSB3aWxs
IGJlCi10cmVhdGVkIGFzIGEgaGFuZGxlciBmaWxlIChub3RlIHRoYXQgdGhpcyBtYWtlcyBweXRo
b24gZmlsZXMgdW5zYWZlIGluCi1tdWNoIHRoZSBzYW1lIHdheSB0aGF0IC5waHAgZmlsZXMgYXJl
IHdoZW4gdXNpbmcgUEhQKS4KK1B5dGhvbiBmaWxlIGhhbmRsZXJzIGFyZSBQeXRob24gZmlsZXMg
d2hpY2ggdGhlIHNlcnZlciBleGVjdXRlcyBpbiByZXNwb25zZSB0bworcmVxdWVzdHMgbWFkZSB0
byB0aGUgY29ycmVzcG9uZGluZyBVUkwuIFRoaXMgaXMgaG9va2VkIHVwIHRvIGEgcm91dGUgbGlr
ZQorYGAoIioiLCAiKi5weSIsIHB5dGhvbl9maWxlX2hhbmRsZXIpYGAsIG1lYW5pbmcgdGhhdCBh
bnkgLnB5IGZpbGUgd2lsbCBiZQordHJlYXRlZCBhcyBhIGhhbmRsZXIgZmlsZSAobm90ZSB0aGF0
IHRoaXMgbWFrZXMgaXQgZWFzeSB0byB3cml0ZSB1bnNhZmUKK2hhbmRsZXJzLCBwYXJ0aWN1bGFy
bHkgd2hlbiBydW5uaW5nIHRoZSBzZXJ2ZXIgaW4gYSB3ZWItZXhwb3NlZCBzZXR0aW5nKS4KIAot
VW5saWtlIFBIUCwgdGhlIHB5dGhvbiBmaWxlcyBkb24ndCB3b3JrIGJ5IG91dHB1dHRpbmcgdGV4
dCB0byBzdGRvdXQKLWZyb20gdGhlIGdsb2JhbCBzY29wZS4gSW5zdGVhZCB0aGV5IG11c3QgZGVm
aW5lIGEgc2luZ2xlIGZ1bmN0aW9uCi1gbWFpbmAgd2l0aCB0aGUgc2lnbmF0dXJlOjoKK1RoZSBQ
eXRob24gZmlsZXMgbXVzdCBkZWZpbmUgYSBzaW5nbGUgZnVuY3Rpb24gYG1haW5gIHdpdGggdGhl
IHNpZ25hdHVyZTo6CiAKICAgbWFpbihyZXF1ZXN0LCByZXNwb25zZSkKIApkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRzZXJ2
ZS9kb2NzL3BpcGVzLnJzdCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvd3B0c2VydmUvZG9jcy9waXBlcy5yc3QKaW5kZXggOGZhZWVlNDg5YzlmYWI3
MTM4NzU0MGY5OTYwMjNlMDFhNDY5NTVkNy4uMWVkYmQ0NDg2NzI1OWFhMzM3Y2E3MTc1MTNjODZk
NWFhZjUxYmNhZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy93cHRzZXJ2ZS9kb2NzL3BpcGVzLnJzdAorKysgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHNlcnZlL2RvY3MvcGlw
ZXMucnN0CkBAIC0xLDE2MSArMSw4IEBACiBQaXBlcwogPT09PT09CiAKLVBpcGVzIGFyZSBmdW5j
dGlvbnMgdGhhdCBtYXkgYmUgdXNlZCB3aGVuIHNlcnZpbmcgZmlsZXMgdG8gYWx0ZXIgcGFydHMK
LW9mIHRoZSByZXNwb25zZS4gVGhlc2UgYXJlIGludm9rZWQgYnkgYWRkaW5nIGEgcGlwZT0gcXVl
cnkgcGFyYW1ldGVyCi10YWtpbmcgYSB8IHNlcGFyYXRlZCBsaXN0IG9mIHBpcGUgZnVuY3Rpb25z
IGFuZCBwYXJhbWV0ZXJzLiBUaGUgcGlwZQotZnVuY3Rpb25zIGFyZSBhcHBsaWVkIHRvIHRoZSBy
ZXNwb25zZSBmcm9tIGxlZnQgdG8gcmlnaHQuIEZvciBleGFtcGxlOjoKLQotICBHRVQgL3NhbXBs
ZS50eHQ/cGlwZT1zbGljZSgxLDIwMCl8c3RhdHVzKDQwNCkuCi0KLVRoaXMgd291bGQgc2VydmUg
Ynl0ZXMgMSB0byAxOTksIGluY2x1c2l2ZSwgb2YgZm9vLnR4dCB3aXRoIHRoZSBIVFRQIHN0YXR1
cwotY29kZSA0MDQuCi0KLS4uIG5vdGU6OgotICAgSWYgeW91IHdyaXRlIGRpcmVjdGx5IHRvIHRo
ZSByZXNwb25zZSBzb2NrZXQgdXNpbmcgUmVzcG9uc2VXcml0ZXIsCi0gICBvciB3aGVuIHVzaW5n
IHRoZSBhc2lzIGhhbmRsZXIsIG9ubHkgdGhlIHRyaWNrbGUgcGlwZSB3aWxsIGFmZmVjdCB0aGUg
cmVzcG9uc2UuCi0KLVRoZXJlIGFyZSBzZXZlcmFsIGJ1aWx0LWluIHBpcGUgZnVuY3Rpb25zLCBh
bmQgaXQgaXMgcG9zc2libGUgdG8gYWRkCi1tb3JlIHVzaW5nIHRoZSBgQHBpcGVgIGRlY29yYXRv
ciBvbiBhIGZ1bmN0aW9uLCBpZiByZXF1aXJlZC4KLQotLi4gbm90ZTo6Ci0gICBCZWNhdXNlIG9m
IHRoZSB3YXkgcGlwZXMgY29tcG9zZSwgdXNpbmcgc29tZSBwaXBlIGZ1bmN0aW9ucyBwcmV2ZW50
cyB0aGUKLSAgIGNvbnRlbnQtbGVuZ3RoIG9mIHRoZSByZXNwb25zZSBmcm9tIGJlaW5nIGtub3du
IGluIGFkdmFuY2UuIEluIHRoZXNlIGNhc2VzCi0gICB0aGUgc2VydmVyIHdpbGwgY2xvc2UgdGhl
IGNvbm5lY3Rpb24gdG8gaW5kaWNhdGUgdGhlIGVuZCBvZiB0aGUgcmVzcG9uc2UsCi0gICBwcmV2
ZW50aW5nIHRoZSB1c2Ugb2YgSFRUUCAxLjEga2VlcGFsaXZlLgotCi1CdWlsdC1JbiBQaXBlcwot
LS0tLS0tLS0tLS0tLS0KLQotc3ViCi1+fn4KLQotVXNlZCB0byBzdWJzdGl0dXRlIHZhcmlhYmxl
cyBmcm9tIHRoZSBzZXJ2ZXIgZW52aXJvbm1lbnQsIG9yIGZyb20gdGhlCi1yZXF1ZXN0IGludG8g
dGhlIHJlc3BvbnNlLgotCi1TdWJzdGl0dXRpb25zIGFyZSBtYXJrZWQgaW4gYSBmaWxlIHVzaW5n
IGEgYmxvY2sgZGVsaW1pdGVkIGJ5IGB7e2AKLWFuZCBgfX1gLiBJbnNpZGUgdGhlIGJsb2NrIHRo
ZSBmb2xsb3dpbmcgdmFyaWFibGVzIGFyZSBhdmFpbGFibGU6Ci0KLSAgYHt7aG9zdH19YAotICAg
IFRoZSBob3N0IG5hbWUgb2YgdGhlIHNlcnZlciBleGNsdWRpbmcgYW55IHN1YmRvbWFpbiBwYXJ0
LgotCi0gIGB7e2RvbWFpbnNbXX19YAotICAgIFRoZSBkb21haW4gbmFtZSBvZiBhIHBhcnRpY3Vs
YXIgc3ViZG9tYWluCi0gICAgICBlLmcuIGB7e2RvbWFpbnNbd3d3XX19YCBmb3IgdGhlIGB3d3dg
IHN1YmRvbWFpbi4KLQotICBge3twb3J0c1tdW119fWAKLSAgICBUaGUgcG9ydCBudW1iZXIgb2Yg
c2VydmVycywgYnkgcHJvdG9jb2wKLSAgICAgIGUuZy4gYHt7cG9ydHNbaHR0cF1bMF19fWAgZm9y
IHRoZSBmaXJzdCAoYW5kLCBkZXBlbmRpbmcgb24gc2V0dXAsCi0gICAgICBwb3NzaWJseSBvbmx5
KSBodHRwIHNlcnZlcgotCi0gIGB7e2hlYWRlcnNbXX19YAotICAgIFRoZSBIVFRQIGhlYWRlcnMg
aW4gdGhlIHJlcXVlc3QKLSAgICAgIGUuZy4gYHt7aGVhZGVyc1tYLVRlc3RdfX1gIGZvciBhIGh5
cG90aGV0aWNhbCBgWC1UZXN0YCBoZWFkZXIuCi0KLSAgYHt7R0VUW119fWAKLSAgICBUaGUgcXVl
cnkgcGFyYW1ldGVycyBmb3IgdGhlIHJlcXVlc3QKLSAgICAgIGUuZy4gYHt7R0VUW2lkXX19YCBm
b3IgYW4gaWQgcGFyYW1ldGVyIHNlbnQgd2l0aCB0aGUgcmVxdWVzdC4KLQotU28sIGZvciBleGFt
cGxlLCB0byB3cml0ZSBhIGphdmFzY3JpcHQgZmlsZSBjYWxsZWQgYHhoci5qc2AgdGhhdAotZGVw
ZW5kcyBvbiB0aGUgaG9zdCBuYW1lIG9mIHRoZSBzZXJ2ZXIsIHdpdGhvdXQgaGFyZGNvZGluZywg
b25lIG1pZ2h0Ci13cml0ZTo6Ci0KLSAgICB2YXIgc2VydmVyX3VybCA9IGh0dHA6Ly97e2hvc3R9
fTp7e3BvcnRzW2h0dHBdWzBdfX0vcGF0aC90by9yZXNvdXJjZTsKLSAgICAvL0NyZWF0ZSB0aGUg
YWN0dWFsIFhIUiBhbmQgc28gb24KLQotVGhlIGZpbGUgd291bGQgdGhlbiBiZSBpbmNsdWRlZCBh
czoKLQotICAgIDxzY3JpcHQgc3JjPSJ4aHIuanM/cGlwZT1zdWIiPjwvc2NyaXB0PgotCi1UaGlz
IHBpcGUgY2FuIGFsc28gYmUgZW5hYmxlZCBieSB1c2luZyBhIGZpbGVuYW1lIGAqLnN1Yi5leHRg
LCBlLmcuIHRoZSBmaWxlIGFib3ZlIGNvdWxkIGJlIGNhbGxlZCBgeGhyLnN1Yi5qc2AuCi0KLXN0
YXR1cwotfn5+fn5+Ci0KLVVzZWQgdG8gc2V0IHRoZSBIVFRQIHN0YXR1cyBvZiB0aGUgcmVzcG9u
c2UsIGZvciBleGFtcGxlOjoKLQotICAgIGV4YW1wbGUuanM/cGlwZT1zdGF0dXMoNDEwKQotCi1o
ZWFkZXJzCi1+fn5+fn5+Ci0KLVVzZWQgdG8gYWRkIG9yIHJlcGxhY2UgaHR0cCBoZWFkZXJzIGlu
IHRoZSByZXNwb25zZS4gVGFrZXMgdHdvIG9yCi10aHJlZSBhcmd1bWVudHM7IHRoZSBoZWFkZXIg
bmFtZSwgdGhlIGhlYWRlciB2YWx1ZSBhbmQgd2hldGhlciB0bwotYXBwZW5kIHRoZSBoZWFkZXIg
cmF0aGVyIHRoYW4gcmVwbGFjZSBhbiBleGlzdGluZyBoZWFkZXIgKGRlZmF1bHQ6Ci1GYWxzZSku
IFNvLCBmb3IgZXhhbXBsZSwgYSByZXF1ZXN0IGZvcjo6Ci0KLSAgICBleGFtcGxlLmh0bWw/cGlw
ZT1oZWFkZXIoQ29udGVudC1UeXBlLHRleHQvcGxhaW4pCi0KLWNhdXNlcyBleGFtcGxlLmh0bWwg
dG8gYmUgcmV0dXJuZWQgd2l0aCBhIHRleHQvcGxhaW4gY29udGVudCB0eXBlCi13aGVyZWFzOjoK
LQotICAgIGV4YW1wbGUuaHRtbD9waXBlPWhlYWRlcihDb250ZW50LVR5cGUsdGV4dC9wbGFpbixU
cnVlKQotCi1XaWxsIGNhdXNlIGV4YW1wbGUuaHRtbCB0byBiZSByZXR1cm5lZCB3aXRoIGJvdGgg
dGV4dC9odG1sIGFuZAotdGV4dC9wbGFpbiBjb250ZW50LXR5cGUgaGVhZGVycy4KLQotc2xpY2UK
LX5+fn5+Ci0KLVVzZWQgdG8gc2VuZCBvbmx5IHBhcnQgb2YgYSByZXNwb25zZSBib2R5LiBUYWtl
cyB0aGUgc3RhcnQgYW5kLAotb3B0aW9uYWxseSwgZW5kIGJ5dGVzIGFzIGFyZ3VtZW50cywgYWx0
aG91Z2ggZWl0aGVyIGNhbiBiZSBudWxsIHRvCi1pbmRpY2F0ZSB0aGUgc3RhcnQgb3IgZW5kIG9m
IHRoZSBmaWxlLCByZXNwZWN0aXZlbHkuIFNvIGZvciBleGFtcGxlOjoKLQotICAgIGV4YW1wbGUu
dHh0P3BpcGU9c2xpY2UoMTAsMjApCi0KLVdvdWxkIHJlc3VsdCBpbiBhIHJlc3BvbnNlIHdpdGgg
YSBib2R5IGNvbnRhaW5pbmcgMTAgYnl0ZXMgb2YKLWV4YW1wbGUudHh0IGluY2x1ZGluZyBieXRl
IDEwIGJ1dCBleGNsdWRpbmcgYnl0ZSAyMC4KLQotOjoKLQotICAgIGV4YW1wbGUudHh0P3BpcGU9
c2xpY2UoMTApCi0KLVdvdWxkIGNhdXNlIGFsbCBieXRlcyBmcm9tIGJ5dGUgMTAgb2YgZXhhbXBs
ZS50eHQgdG8gYmUgc2VudCwgYnV0OjoKLQotICAgIGV4YW1wbGUudHh0P3BpcGU9c2xpY2UobnVs
bCwyMCkKLQotV291bGQgc2VuZCB0aGUgZmlyc3QgMjAgYnl0ZXMgb2YgZXhhbXBsZS50eHQuCi0K
LXRyaWNrbGUKLX5+fn5+fn4KLQotLi4gbm90ZTo6Ci0gICBVc2luZyB0aGlzIGZ1bmN0aW9uIHdp
bGwgZm9yY2UgYSBjb25uZWN0aW9uIGNsb3NlLgotCi1Vc2VkIHRvIHNlbmQgdGhlIGJvZHkgb2Yg
YSByZXNwb25zZSBpbiBjaHVua3Mgd2l0aCBkZWxheXMuIFRha2VzIGEKLXNpbmdsZSBhcmd1bWVu
dCB0aGF0IGlzIGEgbWljcm9zeW50YXggY29uc2lzdGluZyBvZiBjb2xvbi1zZXBhcmF0ZWQKLWNv
bW1hbmRzLiBUaGVyZSBhcmUgdGhyZWUgdHlwZXMgb2YgY29tbWFuZHM6Ci0KLSogQmFyZSBudW1i
ZXJzIHJlcHJlc2VudCBhIG51bWJlciBvZiBieXRlcyB0byBzZW5kCi0KLSogTnVtYmVycyBwcmVm
aXhlZCBgZGAgaW5kaWNhdGUgYSBkZWxheSBpbiBzZWNvbmRzCi0KLSogTnVtYmVycyBwcmVmaXhl
ZCBgcmAgbXVzdCBvbmx5IGFwcGVhciBhdCB0aGUgZW5kIG9mIHRoZSBjb21tYW5kLCBhbmQKLSAg
aW5kaWNhdGUgdGhhdCB0aGUgcHJlY2VkaW5nIE4gaXRlbXMgbXVzdCBiZSByZXBlYXRlZCB1bnRp
bCB0aGVyZSBpcwotICBubyBtb3JlIGNvbnRlbnQgdG8gc2VuZC4gVGhlIG51bWJlciBvZiBpdGVt
cyB0byByZXBlYXQgbXVzdCBiZSBldmVuLgotCi1JbiB0aGUgYWJzZW5jZSBvZiBhIHJlcGV0aXRp
b24gY29tbWFuZCwgdGhlIGVudGlyZSByZW1haW5kZXIgb2YgdGhlIGNvbnRlbnQgaXMKLXNlbnQg
YXQgb25jZSB3aGVuIHRoZSBjb21tYW5kIGxpc3QgaXMgZXhoYXVzdGVkLiBTbyBmb3IgZXhhbXBs
ZTo6Ci0KLSAgICBleGFtcGxlLnR4dD9waXBlPXRyaWNrbGUoZDEpCi0KLWNhdXNlcyBhIDFzIGRl
bGF5IGJlZm9yZSBzZW5kaW5nIHRoZSBlbnRpcmV0eSBvZiBleGFtcGxlLnR4dC4KLQotOjoKLQot
ICAgIGV4YW1wbGUudHh0P3BpcGU9dHJpY2tsZSgxMDA6ZDEpCi0KLWNhdXNlcyAxMDAgYnl0ZXMg
b2YgZXhhbXBsZS50eHQgdG8gYmUgc2VudCwgZm9sbG93ZWQgYnkgYSAxcyBkZWxheSwKLWFuZCB0
aGVuIHRoZSByZW1haW5kZXIgb2YgdGhlIGZpbGUgdG8gYmUgc2VudC4gT24gdGhlIG90aGVyIGhh
bmQ6OgotCi0gICAgZXhhbXBsZS50eHQ/cGlwZT10cmlja2xlKDEwMDpkMTpyMikKLQotV2lsbCBj
YXVzZSB0aGUgZmlsZSB0byBiZSBzZW50IGluIDEwMCBieXRlIGNodW5rcyBzZXBhcmF0ZWQgYnkg
YSAxcwotZGVsYXkgdW50aWwgdGhlIHdob2xlIGNvbnRlbnQgaGFzIGJlZW4gc2VudC4KLQotCi06
bW9kOmBJbnRlcmZhY2UgPHBpcGVzPmAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorOm1vZDpg
SW50ZXJmYWNlIDx3cHRzZXJ2ZS5waXBlcz5gCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0KIAogLi4gYXV0b21vZHVsZTo6IHdwdHNlcnZlLnBpcGVzCiAgICA6bWVtYmVyczoKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvd3B0c2VydmUvZG9jcy9yZXF1ZXN0LnJzdCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0c2VydmUvZG9jcy9yZXF1ZXN0LnJzdAppbmRleCA3
OTBlNGYwYmIwMjM5N2MwMDZjYjU0ODIzYjkwZTgwOGEwZGJkNTUyLi5lZjViOGEwYzA4ZTc3MzZh
MjMzNTk2ZDZmZjBkNGIzNzJiMjBiMzBmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHNlcnZlL2RvY3MvcmVxdWVzdC5yc3QK
KysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93
cHRzZXJ2ZS9kb2NzL3JlcXVlc3QucnN0CkBAIC0zLDggKzMsOCBAQCBSZXF1ZXN0CiAKIFJlcXVl
c3Qgb2JqZWN0LgogCi06bW9kOmBJbnRlcmZhY2UgPHJlcXVlc3Q+YAotLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0KKzptb2Q6YEludGVyZmFjZSA8d3B0c2VydmUucmVxdWVzdD5gCistLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogCiAuLiBhdXRvbW9kdWxlOjogd3B0c2VydmUu
cmVxdWVzdAogICAgOm1lbWJlcnM6CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHNlcnZlL2RvY3MvcmVzcG9uc2UucnN0IGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRzZXJ2
ZS9kb2NzL3Jlc3BvbnNlLnJzdAppbmRleCAyMzA3NWRmYjNkOTllZTEwNDVlN2IxZDhkNDEwNzI5
NzYyYzZjNTExLi4wYzJmNDVjZTI2NGRiYzZiMTNlYzkzZTkwNTkyMGFhMGQ1NmEyY2UyIDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3dwdHNlcnZlL2RvY3MvcmVzcG9uc2UucnN0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0c2VydmUvZG9jcy9yZXNwb25zZS5yc3QKQEAg
LTM0LDggKzM0LDggQEAgY29udGludWUgdG8gbG9hZCBpbmRlZmluaXRlbHkuCiAKIC4uIF9yZXNw
b25zZS5JbnRlcmZhY2U6CiAKLTptb2Q6YEludGVyZmFjZSA8cmVzcG9uc2U+YAotLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tCis6bW9kOmBJbnRlcmZhY2UgPHdwdHNlcnZlLnJlc3BvbnNlPmAK
Ky0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogCiAuLiBhdXRvbW9kdWxlOjog
d3B0c2VydmUucmVzcG9uc2UKICAgIDptZW1iZXJzOgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRzZXJ2ZS9kb2NzL3JvdXRl
ci5yc3QgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3dwdHNlcnZlL2RvY3Mvcm91dGVyLnJzdAppbmRleCAyMWQ2N2QyMjI2ODljMjFhOGFlZTFmOGI5
OTU5MmNmNmRlODYwMDhhLi45ODZmNTgxOTIyOGViNDZhYTE3YWU4MDI1YmYyZjgzYTE0NTkyYTZm
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3dwdHNlcnZlL2RvY3Mvcm91dGVyLnJzdAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHNlcnZlL2RvY3Mvcm91dGVyLnJzdApA
QCAtNzEsOCArNzEsOCBAQCByZXNwb25zaWJsZSBmb3IgY29uc3RydWN0aW5nIHRoZSByZXNwb25z
ZSB0byB0aGUgSFRUUCByZXF1ZXN0LiBTZWUKIAogLi4gX3JvdXRlci5JbnRlcmZhY2U6CiAKLTpt
b2Q6YEludGVyZmFjZSA8d3B0c2VydmU+YAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCis6
bW9kOmBJbnRlcmZhY2UgPHdwdHNlcnZlLnJvdXRlcj5gCistLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tCiAKIC4uIGF1dG9tb2R1bGU6OiB3cHRzZXJ2ZS5yb3V0ZXIKICAgIDptZW1i
ZXJzOgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy93cHRzZXJ2ZS9kb2NzL3NlcnZlci5yc3QgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHNlcnZlL2RvY3Mvc2VydmVyLnJzdApp
bmRleCA3MzJmOWZkYzc4YWY1YjY1ZWM4ZGFhNzA3ZTJiZTU2Zjk5NTExODc1Li41Njg4YTBhM2Jj
ZmQ3OWM5ZTBlNmE1N2MzZmM4MmY1NTRkMTdlYTNkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHNlcnZlL2RvY3Mvc2VydmVy
LnJzdAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3dwdHNlcnZlL2RvY3Mvc2VydmVyLnJzdApAQCAtMTMsOCArMTMsOCBAQCBydW4gb24gcG9y
dCA4MDgwIHVudGlsIGl0IGlzIGtpbGxlZDo6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICByb3V0ZXM9WygiR0VUIiwgIioiLCBoYW5kbGVycy5maWxlX2hhbmRsZXIpXSkKICAgaHR0cGQu
c3RhcnQoYmxvY2s9VHJ1ZSkKIAotOm1vZDpgSW50ZXJmYWNlIDx3cHRzZXJ2ZT5gCi0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0KKzptb2Q6YEludGVyZmFjZSA8d3B0c2VydmUuc2VydmVyPmAK
Ky0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIAogLi4gYXV0b21vZHVsZTo6IHdw
dHNlcnZlLnNlcnZlcgogICAgOm1lbWJlcnM6CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHNlcnZlL2RvY3Mvc3Rhc2gucnN0
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRz
ZXJ2ZS9kb2NzL3N0YXNoLnJzdAppbmRleCA0OTg0NmYyMTA2MWIzMGI0ZDRhNTRlN2U3Y2ZmYzlk
ZDEyMmE3YTY3Li44YmE1ZWQ3NGE0YWZmN2Q0YzIyZWI5YjZjOTEzMmE4ZWZmYTQ0MDVhIDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3dwdHNlcnZlL2RvY3Mvc3Rhc2gucnN0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0c2VydmUvZG9jcy9zdGFzaC5yc3QKQEAgLTI0LDgg
KzI0LDggQEAgQSB0eXBpY2FsIGV4YW1wbGUgb2YgdXNpbmcgYSBzdGFzaCB0byBzdG9yZSBzdGF0
ZSBtaWdodCBiZTo6CiAgICAgICAgICAgYXNzZXJ0IHJlcXVlc3Quc2VydmVyLnN0YXNoLnRha2Uo
a2V5KSBpcyBOb25lCiAgICAgICAgICAgcmV0dXJuIGtleQogCi06bW9kOmBJbnRlcmZhY2UgPHN0
YXNoPmAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorOm1vZDpgSW50ZXJmYWNlIDx3cHRzZXJ2
ZS5zdGFzaD5gCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIAogLi4gYXV0b21v
ZHVsZTo6IHdwdHNlcnZlLnN0YXNoCiAgICA6bWVtYmVyczoKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0c2VydmUvZG9jcy93
M2MtaW1wb3J0LmxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvd3B0c2VydmUvZG9jcy93M2MtaW1wb3J0LmxvZwpkZWxldGVkIGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggN2QxNmM3MzJjYWJmOWI3ZWZhMDRjZmIyODZkM2UzZTViM2NkZGEyMS4uMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHNlcnZlL2RvY3MvdzNjLWlt
cG9ydC5sb2cKKysrIC9kZXYvbnVsbApAQCAtMSwyOCArMCwwIEBACi1UaGUgdGVzdHMgaW4gdGhp
cyBkaXJlY3Rvcnkgd2VyZSBpbXBvcnRlZCBmcm9tIHRoZSBXM0MgcmVwb3NpdG9yeS4KLURvIE5P
VCBtb2RpZnkgdGhlc2UgdGVzdHMgZGlyZWN0bHkgaW4gV2ViS2l0LgotSW5zdGVhZCwgY3JlYXRl
IGEgcHVsbCByZXF1ZXN0IG9uIHRoZSBXUFQgZ2l0aHViOgotCWh0dHBzOi8vZ2l0aHViLmNvbS93
ZWItcGxhdGZvcm0tdGVzdHMvd3B0Ci0KLVRoZW4gcnVuIHRoZSBUb29scy9TY3JpcHRzL2ltcG9y
dC13M2MtdGVzdHMgaW4gV2ViS2l0IHRvIHJlaW1wb3J0Ci0KLURvIE5PVCBtb2RpZnkgb3IgcmVt
b3ZlIHRoaXMgZmlsZS4KLQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1Qcm9wZXJ0aWVzIHJlcXVpcmluZyB2
ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi1Qcm9wZXJ0eSB2YWx1ZXMgcmVxdWlyaW5nIHZlbmRvciBw
cmVmaXhlczoKLU5vbmUKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotTGlzdCBvZiBmaWxlczoKLS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHNlcnZlL2RvY3Mv
TWFrZWZpbGUKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3dwdHNlcnZlL2RvY3MvY29uZi5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0c2VydmUvZG9jcy9oYW5kbGVycy5yc3QKLS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHNlcnZlL2RvY3Mv
aW5kZXgucnN0Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy93cHRzZXJ2ZS9kb2NzL2ludHJvZHVjdGlvbi5yc3QKLS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHNlcnZlL2RvY3MvbWFrZS5iYXQKLS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHNlcnZl
L2RvY3MvcGlwZXMucnN0Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy93cHRzZXJ2ZS9kb2NzL3JlcXVlc3QucnN0Ci0vTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRzZXJ2ZS9kb2NzL3Jlc3BvbnNlLnJz
dAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0
c2VydmUvZG9jcy9yb3V0ZXIucnN0Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy93cHRzZXJ2ZS9kb2NzL3NlcnZlci5yc3QKLS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHNlcnZlL2RvY3Mvc3Rhc2gu
cnN0CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3dwdHNlcnZlL3Rlc3RzL2Z1bmN0aW9uYWwvX19pbml0X18ucHkgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHNlcnZlL3Rlc3Rz
L2Z1bmN0aW9uYWwvX19pbml0X18ucHkKaW5kZXggYTY4MzRiODI4NWE1NmJlZjBlMTU0M2ZkOTAx
YzdlNmYyZjhiYzIwMi4uZTY5ZGUyOWJiMmQxZDY0MzRiOGIyOWFlNzc1YWQ4YzJlNDhjNTM5MSAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy93cHRzZXJ2ZS90ZXN0cy9mdW5jdGlvbmFsL19faW5pdF9fLnB5CisrKyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0c2VydmUvdGVzdHMv
ZnVuY3Rpb25hbC9fX2luaXRfXy5weQpAQCAtMSArMCwwIEBACi0jIFRoaXMgZmlsZSBpcyByZXF1
aXJlZCBmb3IgUHl0aG9uIHRvIHNlYXJjaCB0aGlzIGRpcmVjdG9yeSBmb3IgbW9kdWxlcy4KXCBO
byBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHNlcnZlL3Rlc3RzL2Z1bmN0aW9uYWwv
YmFzZS5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvd3B0c2VydmUvdGVzdHMvZnVuY3Rpb25hbC9iYXNlLnB5CmluZGV4IGU0OWM4Mjg3YzU5ODVh
YTVlYmJlZDA0ZWYzMDcwYmM3ODU4MzE3MzMuLjBhZWNlYjYxNTg5NjgxNWQwNWVlMjk3MTM0MWVm
YzIwNGNjZjMxOWMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvd3B0c2VydmUvdGVzdHMvZnVuY3Rpb25hbC9iYXNlLnB5CisrKyBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0c2Vy
dmUvdGVzdHMvZnVuY3Rpb25hbC9iYXNlLnB5CkBAIC05LDcgKzksNyBAQCBpbXBvcnQgdW5pdHRl
c3QKIGZyb20gc2l4Lm1vdmVzLnVybGxpYi5wYXJzZSBpbXBvcnQgdXJsZW5jb2RlLCB1cmx1bnNw
bGl0CiBmcm9tIHNpeC5tb3Zlcy51cmxsaWIucmVxdWVzdCBpbXBvcnQgUmVxdWVzdCBhcyBCYXNl
UmVxdWVzdAogZnJvbSBzaXgubW92ZXMudXJsbGliLnJlcXVlc3QgaW1wb3J0IHVybG9wZW4KLWZy
b20gc2l4IGltcG9ydCBiaW5hcnlfdHlwZSwgaXRlcml0ZW1zCitmcm9tIHNpeCBpbXBvcnQgYmlu
YXJ5X3R5cGUsIGl0ZXJpdGVtcywgUFkzCiAKIGZyb20gaHlwZXIgaW1wb3J0IEhUVFAyMENvbm5l
Y3Rpb24sIHRscwogaW1wb3J0IHNzbApAQCAtNzUsMTAgKzc1LDE1IEBAIGNsYXNzIFRlc3RVc2lu
Z1NlcnZlcih1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAgICAgICAgICByZXEuYWRkX2RhdGEoYm9k
eSkKIAogICAgICAgICBpZiBhdXRoIGlzIG5vdCBOb25lOgotICAgICAgICAgICAgcmVxLmFkZF9o
ZWFkZXIoIkF1dGhvcml6YXRpb24iLCAiQmFzaWMgJXMiICUgYmFzZTY0LmI2NGVuY29kZSgnJXM6
JXMnICUgYXV0aCkpCisgICAgICAgICAgICByZXEuYWRkX2hlYWRlcigiQXV0aG9yaXphdGlvbiIs
IGIiQmFzaWMgJXMiICUgYmFzZTY0LmI2NGVuY29kZShiIiVzOiVzIiAlIGF1dGgpKQogCiAgICAg
ICAgIHJldHVybiB1cmxvcGVuKHJlcSkKIAorICAgIGRlZiBhc3NlcnRfbXVsdGlwbGVfaGVhZGVy
cyhzZWxmLCByZXNwLCBuYW1lLCB2YWx1ZXMpOgorICAgICAgICBpZiBQWTM6CisgICAgICAgICAg
ICBhc3NlcnQgcmVzcC5pbmZvKCkuZ2V0X2FsbChuYW1lKSA9PSB2YWx1ZXMKKyAgICAgICAgZWxz
ZToKKyAgICAgICAgICAgIGFzc2VydCByZXNwLmluZm8oKVtuYW1lXSA9PSAiLCAiLmpvaW4odmFs
dWVzKQogCiBAcHl0ZXN0Lm1hcmsuc2tpcGlmKG5vdCB3cHRzZXJ2ZS51dGlscy5odHRwMl9jb21w
YXRpYmxlKCksIHJlYXNvbj0iaDIgc2VydmVyIG9ubHkgd29ya3MgaW4gcHl0aG9uIDIuNy4xNSIp
CiBjbGFzcyBUZXN0VXNpbmdIMlNlcnZlcjoKQEAgLTEwMSw1ICsxMDYsNTEgQEAgY2xhc3MgVGVz
dFVzaW5nSDJTZXJ2ZXI6CiAgICAgICAgIHNlbGYuY29ubi5jb25uZWN0KCkKIAogICAgIGRlZiB0
ZWFyZG93bl9tZXRob2Qoc2VsZiwgdGVzdF9tZXRob2QpOgotICAgICAgICBzZWxmLmNvbm4uY2xv
c2UoKQogICAgICAgICBzZWxmLnNlcnZlci5zdG9wKCkKKworCitjbGFzcyBUZXN0V3JhcHBlckhh
bmRsZXJVc2luZ1NlcnZlcihUZXN0VXNpbmdTZXJ2ZXIpOgorICAgICcnJ0ZvciBhIHdyYXBwZXIg
aGFuZGxlciwgYSAuanMgZHVtbXkgdGVzdGluZyBmaWxlIGlzIHJlcXVyaWVkIHRvIHJlbmRlcgor
ICAgIHRoZSBodG1sIGZpbGUuIFRoaXMgY2xhc3MgZXh0ZW5kcyB0aGUgVGVzdFVzaW5nU2VydmVy
IGFuZCBkbyBzb21lIHNvbWUKKyAgICBleHRyYSB3b3JrOiBpdCB0cmllcyB0byBnZW5lcmF0ZSB0
aGUgZHVtbXkgLmpzIGZpbGUgaW4gc2V0VXAgYW5kCisgICAgcmVtb3ZlIGl0IGluIHRlYXJEb3du
LicnJworICAgIGR1bW15X2pzX2ZpbGVzID0ge30KKworICAgIGRlZiBnZW5fanNfZmlsZShzZWxm
LCBmaWxlbmFtZSwgZW1wdHk9VHJ1ZSwgY29udGVudD1iJycpOgorICAgICAgICBzZWxmLnJlbW92
ZV9qc19maWxlKGZpbGVuYW1lKQorCisgICAgICAgIHdpdGggb3BlbihmaWxlbmFtZSwgJ3diJykg
YXMgZnA6CisgICAgICAgICAgICBpZiBub3QgZW1wdHk6CisgICAgICAgICAgICAgICAgZnAud3Jp
dGUoY29udGVudCkKKworICAgIGRlZiByZW1vdmVfanNfZmlsZShzZWxmLCBmaWxlbmFtZSk6Cisg
ICAgICAgIGlmIG9zLnBhdGguZXhpc3RzKGZpbGVuYW1lKToKKyAgICAgICAgICAgIG9zLnJlbW92
ZShmaWxlbmFtZSkKKworICAgIGRlZiBzZXRVcChzZWxmKToKKyAgICAgICAgc3VwZXIoVGVzdFdy
YXBwZXJIYW5kbGVyVXNpbmdTZXJ2ZXIsIHNlbGYpLnNldFVwKCkKKworICAgICAgICBmb3IgZmls
ZW5hbWUsIGNvbnRlbnQgaW4gc2VsZi5kdW1teV9qc19maWxlcy5pdGVtcygpOgorICAgICAgICAg
ICAgZmlsZXBhdGggPSBvcy5wYXRoLmpvaW4oZG9jX3Jvb3QsIGZpbGVuYW1lKQorICAgICAgICAg
ICAgaWYgY29udGVudCA9PSAnJzoKKyAgICAgICAgICAgICAgICBzZWxmLmdlbl9qc19maWxlKGZp
bGVwYXRoKQorICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICBzZWxmLmdlbl9qc19m
aWxlKGZpbGVwYXRoLCBGYWxzZSwgY29udGVudCkKKworICAgIGRlZiBydW5fd3JhcHBlcl90ZXN0
KHNlbGYsIHJlcV9maWxlLCBoZWFkZXJfZGF0YSwgd3JhcHBlcl9oYW5kbGVyKToKKyAgICAgICAg
cm91dGUgPSAoJ0dFVCcsIHJlcV9maWxlLCB3cmFwcGVyX2hhbmRsZXIoKSkKKyAgICAgICAgc2Vs
Zi5zZXJ2ZXIucm91dGVyLnJlZ2lzdGVyKCpyb3V0ZSkKKworICAgICAgICByZXNwID0gc2VsZi5y
ZXF1ZXN0KHJvdXRlWzFdKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKDIwMCwgcmVzcC5nZXRj
b2RlKCkpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoaGVhZGVyX2RhdGEsIHJlc3AuaW5mbygp
WydDb250ZW50LVR5cGUnXSkKKworICAgICAgICB3aXRoIG9wZW4ob3MucGF0aC5qb2luKGRvY19y
b290LCByZXFfZmlsZSksICdyYicpIGFzIGZwOgorICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVh
bChmcC5yZWFkKCksIHJlc3AucmVhZCgpKQorCisgICAgZGVmIHRlYXJEb3duKHNlbGYpOgorICAg
ICAgICBzdXBlcihUZXN0V3JhcHBlckhhbmRsZXJVc2luZ1NlcnZlciwgc2VsZikudGVhckRvd24o
KQorCisgICAgICAgIGZvciBmaWxlbmFtZSwgXyBpbiBzZWxmLmR1bW15X2pzX2ZpbGVzLml0ZW1z
KCk6CisgICAgICAgICAgICBmaWxlcGF0aCA9IG9zLnBhdGguam9pbihkb2Nfcm9vdCwgZmlsZW5h
bWUpCisgICAgICAgICAgICBzZWxmLnJlbW92ZV9qc19maWxlKGZpbGVwYXRoKQpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRz
ZXJ2ZS90ZXN0cy9mdW5jdGlvbmFsL2RvY3Jvb3QvYmFyLmFueS53b3JrZXIuanMgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHNlcnZlL3Rlc3Rz
L2Z1bmN0aW9uYWwvZG9jcm9vdC9iYXIuYW55Lndvcmtlci5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42NmI3YmUz
OTA0OWVlZGExZGM1ZDgzZDJlMDBhYmE0ZmJmODhkZWUzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRzZXJ2ZS90
ZXN0cy9mdW5jdGlvbmFsL2RvY3Jvb3QvYmFyLmFueS53b3JrZXIuanMKQEAgLTAsMCArMSw5IEBA
CisKK3NlbGYuR0xPQkFMID0geworICBpc1dpbmRvdzogZnVuY3Rpb24oKSB7IHJldHVybiBmYWxz
ZTsgfSwKKyAgaXNXb3JrZXI6IGZ1bmN0aW9uKCkgeyByZXR1cm4gdHJ1ZTsgfSwKK307CitpbXBv
cnRTY3JpcHRzKCIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIik7CisKK2ltcG9ydFNjcmlwdHMo
Ii9iYXIuYW55LmpzIik7Citkb25lKCk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHNlcnZlL3Rlc3RzL2Z1bmN0aW9uYWwv
ZG9jcm9vdC9mb28uYW55Lmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3dwdHNlcnZlL3Rlc3RzL2Z1bmN0aW9uYWwvZG9jcm9vdC9mb28uYW55
Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uODhlMjY2NWM2NjkwNDIxMWQwZDg0MTdhMDU3ZGYyOTk3YWY4ZTgw
MgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvd3B0c2VydmUvdGVzdHMvZnVuY3Rpb25hbC9kb2Nyb290L2Zvby5hbnku
aHRtbApAQCAtMCwwICsxLDE0IEBACis8IWRvY3R5cGUgaHRtbD4KKzxtZXRhIGNoYXJzZXQ9dXRm
LTg+CisKKzxzY3JpcHQ+CitzZWxmLkdMT0JBTCA9IHsKKyAgaXNXaW5kb3c6IGZ1bmN0aW9uKCkg
eyByZXR1cm4gdHJ1ZTsgfSwKKyAgaXNXb3JrZXI6IGZ1bmN0aW9uKCkgeyByZXR1cm4gZmFsc2U7
IH0sCit9OworPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzcy5q
cyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5q
cyI+PC9zY3JpcHQ+CisKKzxkaXYgaWQ9bG9nPjwvZGl2PgorPHNjcmlwdCBzcmM9Ii9mb28uYW55
LmpzIj48L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0c2VydmUvdGVzdHMvZnVuY3Rpb25hbC9kb2Nyb290L2Zv
by5hbnkuc2VydmljZXdvcmtlci5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy93cHRzZXJ2ZS90ZXN0cy9mdW5jdGlvbmFsL2RvY3Jvb3QvZm9v
LmFueS5zZXJ2aWNld29ya2VyLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOGRjYjExYTM3Njg3ZmY3NmQ4NGEz
ZGJhNTEzMDlkYzAzMzllNmIxOAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0c2VydmUvdGVzdHMvZnVuY3Rpb25h
bC9kb2Nyb290L2Zvby5hbnkuc2VydmljZXdvcmtlci5odG1sCkBAIC0wLDAgKzEsMTUgQEAKKzwh
ZG9jdHlwZSBodG1sPgorPG1ldGEgY2hhcnNldD11dGYtOD4KKworPHNjcmlwdCBzcmM9Ii9yZXNv
dXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMv
dGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPGRpdiBpZD1sb2c+PC9kaXY+Cis8c2Ny
aXB0PgorKGFzeW5jIGZ1bmN0aW9uKCkgeworICBjb25zdCBzY29wZSA9ICdkb2VzL25vdC9leGlz
dCc7CisgIGxldCByZWcgPSBhd2FpdCBuYXZpZ2F0b3Iuc2VydmljZVdvcmtlci5nZXRSZWdpc3Ry
YXRpb24oc2NvcGUpOworICBpZiAocmVnKSBhd2FpdCByZWcudW5yZWdpc3RlcigpOworICByZWcg
PSBhd2FpdCBuYXZpZ2F0b3Iuc2VydmljZVdvcmtlci5yZWdpc3RlcigiL2Zvby5hbnkud29ya2Vy
LmpzIiwge3Njb3BlfSk7CisgIGZldGNoX3Rlc3RzX2Zyb21fd29ya2VyKHJlZy5pbnN0YWxsaW5n
KTsKK30pKCk7Cis8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0c2VydmUvdGVzdHMvZnVuY3Rpb25hbC9kb2Ny
b290L2Zvby5hbnkuc2hhcmVkd29ya2VyLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHNlcnZlL3Rlc3RzL2Z1bmN0aW9uYWwvZG9jcm9v
dC9mb28uYW55LnNoYXJlZHdvcmtlci5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjI3NzEwMTY5N2ZmOGNiZTc2
YWYxMDc4MjZhZDBmYTI0M2I3NWIwNDgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHNlcnZlL3Rlc3RzL2Z1bmN0
aW9uYWwvZG9jcm9vdC9mb28uYW55LnNoYXJlZHdvcmtlci5odG1sCkBAIC0wLDAgKzEsOSBAQAor
PCFkb2N0eXBlIGh0bWw+Cis8bWV0YSBjaGFyc2V0PXV0Zi04PgorCis8c2NyaXB0IHNyYz0iL3Jl
c291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iL3Jlc291cmNl
cy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8ZGl2IGlkPWxvZz48L2Rpdj4KKzxz
Y3JpcHQ+CitmZXRjaF90ZXN0c19mcm9tX3dvcmtlcihuZXcgU2hhcmVkV29ya2VyKCIvZm9vLmFu
eS53b3JrZXIuanMiKSk7Cis8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0c2VydmUvdGVzdHMvZnVuY3Rpb25h
bC9kb2Nyb290L2Zvby5hbnkud29ya2VyLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHNlcnZlL3Rlc3RzL2Z1bmN0aW9uYWwvZG9jcm9v
dC9mb28uYW55Lndvcmtlci5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmY3N2VkZDk3MWE0ZWMwYzVkZmQ0ODc4
OWE4ODlmN2QzYzNiMTBhMDkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHNlcnZlL3Rlc3RzL2Z1bmN0aW9uYWwv
ZG9jcm9vdC9mb28uYW55Lndvcmtlci5odG1sCkBAIC0wLDAgKzEsOSBAQAorPCFkb2N0eXBlIGh0
bWw+Cis8bWV0YSBjaGFyc2V0PXV0Zi04PgorCis8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0
aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVz
c3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8ZGl2IGlkPWxvZz48L2Rpdj4KKzxzY3JpcHQ+CitmZXRj
aF90ZXN0c19mcm9tX3dvcmtlcihuZXcgV29ya2VyKCIvZm9vLmFueS53b3JrZXIuanMiKSk7Cis8
L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvd3B0c2VydmUvdGVzdHMvZnVuY3Rpb25hbC9kb2Nyb290L2Zvby53aW5k
b3cuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvd3B0c2VydmUvdGVzdHMvZnVuY3Rpb25hbC9kb2Nyb290L2Zvby53aW5kb3cuaHRtbApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi4wNGM2OTRkZGYyYWJhMjBlYzRiYWNlODcxYTdkM2I0NTFkNWIyNTVkCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy93cHRzZXJ2ZS90ZXN0cy9mdW5jdGlvbmFsL2RvY3Jvb3QvZm9vLndpbmRvdy5odG1sCkBA
IC0wLDAgKzEsOCBAQAorPCFkb2N0eXBlIGh0bWw+Cis8bWV0YSBjaGFyc2V0PXV0Zi04PgorCis8
c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0
IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+CisKKzxkaXYg
aWQ9bG9nPjwvZGl2PgorPHNjcmlwdCBzcmM9Ii9mb28ud2luZG93LmpzIj48L3NjcmlwdD4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvd3B0c2VydmUvdGVzdHMvZnVuY3Rpb25hbC9kb2Nyb290L2Zvby53b3JrZXIuaHRtbCBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0c2VydmUv
dGVzdHMvZnVuY3Rpb25hbC9kb2Nyb290L2Zvby53b3JrZXIuaHRtbApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zZWRk
ZjM2ZjFjM2E5MTE5NzNiNmFlMzFmYTBjNjE2MmJjYjU2ZWNiCi0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRzZXJ2
ZS90ZXN0cy9mdW5jdGlvbmFsL2RvY3Jvb3QvZm9vLndvcmtlci5odG1sCkBAIC0wLDAgKzEsOSBA
QAorPCFkb2N0eXBlIGh0bWw+Cis8bWV0YSBjaGFyc2V0PXV0Zi04PgorCis8c2NyaXB0IHNyYz0i
L3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iL3Jlc291
cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8ZGl2IGlkPWxvZz48L2Rpdj4K
KzxzY3JpcHQ+CitmZXRjaF90ZXN0c19mcm9tX3dvcmtlcihuZXcgV29ya2VyKCIvZm9vLndvcmtl
ci5qcyIpKTsKKzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRzZXJ2ZS90ZXN0cy9mdW5jdGlvbmFsL2RvY3Jv
b3QvaW52YWxpZC5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvd3B0c2VydmUvdGVzdHMvZnVuY3Rpb25hbC9kb2Nyb290L2ludmFsaWQucHkKaW5k
ZXggMDE3ZDRkOWQ2OTdiOWU0MTE3YzdjMDNhZjdiMWY4ZWFjMjE5NzEwNS4uOTlmN2I3MmNlZWZk
YjYzZjQwZmExZmQzN2NjZmZlNDk3ZDNlZTI5NiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRzZXJ2ZS90ZXN0cy9mdW5jdGlv
bmFsL2RvY3Jvb3QvaW52YWxpZC5weQorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHNlcnZlL3Rlc3RzL2Z1bmN0aW9uYWwvZG9jcm9vdC9p
bnZhbGlkLnB5CkBAIC0xLDMgKzEsMyBAQAotIyBPb3BzLi4uCi1kZWYgbWFpbihyZXF1ZXN0LCBy
ZXNwb25zZQorIyBJbnRlbnRpb25hbCBzeW50YXggZXJyb3IgaW4gdGhpcyBmaWxlCitkZWYgbWFp
bihyZXF1ZXN0LCByZXNwb25zZToKICAgICByZXR1cm4gIkZBSUwiCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHNlcnZlL3Rl
c3RzL2Z1bmN0aW9uYWwvZG9jcm9vdC9zdWJfaGVhZGVyX29yX2RlZmF1bHQuc3ViLnR4dCBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0c2VydmUv
dGVzdHMvZnVuY3Rpb25hbC9kb2Nyb290L3N1Yl9oZWFkZXJfb3JfZGVmYXVsdC5zdWIudHh0Cm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLmYxZjk0MWFhMTYwZDkzYmMwMDg1MTZjMTRjZmY4ZmY5ZTE2NTdlYTgKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3dwdHNlcnZlL3Rlc3RzL2Z1bmN0aW9uYWwvZG9jcm9vdC9zdWJfaGVhZGVyX29yX2Rl
ZmF1bHQuc3ViLnR4dApAQCAtMCwwICsxLDIgQEAKK3t7aGVhZGVyX29yX2RlZmF1bHQoWC1QcmVz
ZW50LCBwcmVzZW50LWRlZmF1bHQpfX0KK3t7aGVhZGVyX29yX2RlZmF1bHQoWC1BYnNlbnQsIGFi
c2VudC1kZWZhdWx0KX19CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHNlcnZlL3Rlc3RzL2Z1bmN0aW9uYWwvZG9jcm9vdC9z
dWJkaXIvc3ViX3BhdGguc3ViLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvd3B0c2VydmUvdGVzdHMvZnVuY3Rpb25hbC9kb2Nyb290L3N1YmRp
ci9zdWJfcGF0aC5zdWIudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQ0MDI3ZjI4NTVlYjZiOTVkYWY3ZTM0YzQy
Njk0NDRkODgxNjYyNDUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHNlcnZlL3Rlc3RzL2Z1bmN0aW9uYWwvZG9j
cm9vdC9zdWJkaXIvc3ViX3BhdGguc3ViLnR4dApAQCAtMCwwICsxLDMgQEAKK3t7ZnNfcGF0aChz
dWJfcGF0aC5zdWIudHh0KX19Cit7e2ZzX3BhdGgoLi4vc3ViX3BhdGguc3ViLnR4dCl9fQore3tm
c19wYXRoKC9zdWJfcGF0aC5zdWIudHh0KX19CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHNlcnZlL3Rlc3RzL2Z1bmN0aW9u
YWwvZG9jcm9vdC9zdWJkaXIvdzNjLWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHNlcnZlL3Rlc3RzL2Z1bmN0aW9uYWwvZG9j
cm9vdC9zdWJkaXIvdzNjLWltcG9ydC5sb2cKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDFhODAzZjRmZmQ1NzEzMzBlNTNhMDgyYmMwZTI5NDFlM2Y0OWNjZTMuLjAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRzZXJ2ZS90ZXN0cy9mdW5jdGlvbmFsL2RvY3Jv
b3Qvc3ViZGlyL3czYy1pbXBvcnQubG9nCisrKyAvZGV2L251bGwKQEAgLTEsMTkgKzAsMCBAQAot
VGhlIHRlc3RzIGluIHRoaXMgZGlyZWN0b3J5IHdlcmUgaW1wb3J0ZWQgZnJvbSB0aGUgVzNDIHJl
cG9zaXRvcnkuCi1EbyBOT1QgbW9kaWZ5IHRoZXNlIHRlc3RzIGRpcmVjdGx5IGluIFdlYktpdC4K
LUluc3RlYWQsIGNyZWF0ZSBhIHB1bGwgcmVxdWVzdCBvbiB0aGUgV1BUIGdpdGh1YjoKLQlodHRw
czovL2dpdGh1Yi5jb20vd2ViLXBsYXRmb3JtLXRlc3RzL3dwdAotCi1UaGVuIHJ1biB0aGUgVG9v
bHMvU2NyaXB0cy9pbXBvcnQtdzNjLXRlc3RzIGluIFdlYktpdCB0byByZWltcG9ydAotCi1EbyBO
T1QgbW9kaWZ5IG9yIHJlbW92ZSB0aGlzIGZpbGUuCi0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotUHJvcGVy
dGllcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotUHJvcGVydHkgdmFsdWVzIHJl
cXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLUxpc3Qgb2Yg
ZmlsZXM6Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy93cHRzZXJ2ZS90ZXN0cy9mdW5jdGlvbmFsL2RvY3Jvb3Qvc3ViZGlyL2V4YW1wbGVfbW9kdWxl
LnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93
cHRzZXJ2ZS90ZXN0cy9mdW5jdGlvbmFsL2RvY3Jvb3Qvc3ViZGlyL2ZpbGUudHh0Ci0vTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRzZXJ2ZS90ZXN0
cy9mdW5jdGlvbmFsL2RvY3Jvb3Qvc3ViZGlyL2ltcG9ydF9oYW5kbGVyLnB5CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHNl
cnZlL3Rlc3RzL2Z1bmN0aW9uYWwvZG9jcm9vdC93M2MtaW1wb3J0LmxvZyBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0c2VydmUvdGVzdHMvZnVu
Y3Rpb25hbC9kb2Nyb290L3czYy1pbXBvcnQubG9nCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCBkM2ZlNjI3MDBmNWUyMDRlZjc3MmQzZmFjYTIyNWVkODI4N2Y2ZmI5Li4wMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0c2VydmUvdGVzdHMvZnVuY3Rpb25hbC9k
b2Nyb290L3czYy1pbXBvcnQubG9nCisrKyAvZGV2L251bGwKQEAgLTEsNDEgKzAsMCBAQAotVGhl
IHRlc3RzIGluIHRoaXMgZGlyZWN0b3J5IHdlcmUgaW1wb3J0ZWQgZnJvbSB0aGUgVzNDIHJlcG9z
aXRvcnkuCi1EbyBOT1QgbW9kaWZ5IHRoZXNlIHRlc3RzIGRpcmVjdGx5IGluIFdlYktpdC4KLUlu
c3RlYWQsIGNyZWF0ZSBhIHB1bGwgcmVxdWVzdCBvbiB0aGUgV1BUIGdpdGh1YjoKLQlodHRwczov
L2dpdGh1Yi5jb20vd2ViLXBsYXRmb3JtLXRlc3RzL3dwdAotCi1UaGVuIHJ1biB0aGUgVG9vbHMv
U2NyaXB0cy9pbXBvcnQtdzNjLXRlc3RzIGluIFdlYktpdCB0byByZWltcG9ydAotCi1EbyBOT1Qg
bW9kaWZ5IG9yIHJlbW92ZSB0aGlzIGZpbGUuCi0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotUHJvcGVydGll
cyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotUHJvcGVydHkgdmFsdWVzIHJlcXVp
cmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLUxpc3Qgb2YgZmls
ZXM6Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93
cHRzZXJ2ZS90ZXN0cy9mdW5jdGlvbmFsL2RvY3Jvb3QvZG9jdW1lbnQudHh0Ci0vTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRzZXJ2ZS90ZXN0cy9m
dW5jdGlvbmFsL2RvY3Jvb3QvaW52YWxpZC5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0c2VydmUvdGVzdHMvZnVuY3Rpb25hbC9kb2Nyb290
L25vX21haW4ucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3dwdHNlcnZlL3Rlc3RzL2Z1bmN0aW9uYWwvZG9jcm9vdC9zdWIuc3ViLnR4dAotL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0c2VydmUv
dGVzdHMvZnVuY3Rpb25hbC9kb2Nyb290L3N1Yi50eHQKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHNlcnZlL3Rlc3RzL2Z1bmN0aW9uYWwvZG9j
cm9vdC9zdWJfZmlsZV9oYXNoLnN1Yi50eHQKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHNlcnZlL3Rlc3RzL2Z1bmN0aW9uYWwvZG9jcm9vdC9z
dWJfZmlsZV9oYXNoX3N1YmplY3QudHh0Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy93cHRzZXJ2ZS90ZXN0cy9mdW5jdGlvbmFsL2RvY3Jvb3Qvc3Vi
X2ZpbGVfaGFzaF91bnJlY29nbml6ZWQuc3ViLnR4dAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0c2VydmUvdGVzdHMvZnVuY3Rpb25hbC9kb2Ny
b290L3N1Yl9oZWFkZXJzLnN1Yi50eHQKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHNlcnZlL3Rlc3RzL2Z1bmN0aW9uYWwvZG9jcm9vdC9zdWJf
aGVhZGVycy50eHQKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3dwdHNlcnZlL3Rlc3RzL2Z1bmN0aW9uYWwvZG9jcm9vdC9zdWJfbG9jYXRpb24uc3Vi
LnR4dAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
d3B0c2VydmUvdGVzdHMvZnVuY3Rpb25hbC9kb2Nyb290L3N1Yl9wYXJhbXMuc3ViLnR4dAotL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0c2VydmUv
dGVzdHMvZnVuY3Rpb25hbC9kb2Nyb290L3N1Yl9wYXJhbXMudHh0Ci0vTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRzZXJ2ZS90ZXN0cy9mdW5jdGlv
bmFsL2RvY3Jvb3Qvc3ViX3VybF9iYXNlLnN1Yi50eHQKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHNlcnZlL3Rlc3RzL2Z1bmN0aW9uYWwvZG9j
cm9vdC9zdWJfdXVpZC5zdWIudHh0Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy93cHRzZXJ2ZS90ZXN0cy9mdW5jdGlvbmFsL2RvY3Jvb3Qvc3ViX3Zh
ci5zdWIudHh0Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy93cHRzZXJ2ZS90ZXN0cy9mdW5jdGlvbmFsL2RvY3Jvb3QvdGVzdC5hc2lzCi0vTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRzZXJ2ZS90ZXN0
cy9mdW5jdGlvbmFsL2RvY3Jvb3QvdGVzdF9oMl9kYXRhLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRzZXJ2ZS90ZXN0cy9mdW5jdGlvbmFs
L2RvY3Jvb3QvdGVzdF9oMl9oZWFkZXJzLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRzZXJ2ZS90ZXN0cy9mdW5jdGlvbmFsL2RvY3Jvb3Qv
dGVzdF9oMl9oZWFkZXJzX2RhdGEucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHNlcnZlL3Rlc3RzL2Z1bmN0aW9uYWwvZG9jcm9vdC90ZXN0
X3N0cmluZy5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvd3B0c2VydmUvdGVzdHMvZnVuY3Rpb25hbC9kb2Nyb290L3Rlc3RfdHVwbGVfMi5weQot
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0c2Vy
dmUvdGVzdHMvZnVuY3Rpb25hbC9kb2Nyb290L3Rlc3RfdHVwbGVfMy5weQotL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0c2VydmUvdGVzdHMvZnVu
Y3Rpb25hbC9kb2Nyb290L3dpdGhfaGVhZGVycy50eHQKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHNlcnZlL3Rlc3RzL2Z1bmN0aW9uYWwvZG9j
cm9vdC93aXRoX2hlYWRlcnMudHh0LnN1Yi5oZWFkZXJzCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHNlcnZlL3Rlc3RzL2Z1
bmN0aW9uYWwvdGVzdF9jb29raWVzLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy93cHRzZXJ2ZS90ZXN0cy9mdW5jdGlvbmFsL3Rlc3RfY29va2ll
cy5weQppbmRleCA2YmNiODQyZTYyNTYxYjVmZTBmN2M5NWIzZmFmNWViOGE1Mjc2NzJiLi4yZTJk
MGQ2NzcxYmEyNmExZmJlN2U4ZmM4YmIyZTI1OThiYzM0MjIzIDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHNlcnZlL3Rlc3Rz
L2Z1bmN0aW9uYWwvdGVzdF9jb29raWVzLnB5CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0c2VydmUvdGVzdHMvZnVuY3Rpb25hbC90ZXN0
X2Nvb2tpZXMucHkKQEAgLTEsNCArMSwzIEBACi1pbXBvcnQgc3lzCiBpbXBvcnQgdW5pdHRlc3QK
IAogaW1wb3J0IHB5dGVzdApAQCAtNTEsNyArNTAsNiBAQCBjbGFzcyBUZXN0UmVzcG9uc2VTZXRD
b29raWUoVGVzdFVzaW5nU2VydmVyKToKICAgICAgICAgI1Nob3VsZCBhbHNvIGNoZWNrIHRoYXQg
ZXhwaXJlcyBpcyBpbiB0aGUgcGFzdAogCiBjbGFzcyBUZXN0UmVxdWVzdENvb2tpZXMoVGVzdFVz
aW5nU2VydmVyKToKLSAgICBAcHl0ZXN0Lm1hcmsueGZhaWwoc3lzLnZlcnNpb25faW5mbyA+PSAo
MywpLCByZWFzb249IndwdHNlcnZlIG9ubHkgd29ya3Mgb24gUHkyIikKICAgICBkZWYgdGVzdF9z
ZXRfY29va2llKHNlbGYpOgogICAgICAgICBAd3B0c2VydmUuaGFuZGxlcnMuaGFuZGxlcgogICAg
ICAgICBkZWYgaGFuZGxlcihyZXF1ZXN0LCByZXNwb25zZSk6CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHNlcnZlL3Rlc3Rz
L2Z1bmN0aW9uYWwvdGVzdF9oYW5kbGVycy5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0c2VydmUvdGVzdHMvZnVuY3Rpb25hbC90ZXN0X2hh
bmRsZXJzLnB5CmluZGV4IDE1YzdjYjdlODAzZDc3MWJiMzgxNGRlMmIwZTg1YWM2MDZmMjc1OWYu
LjgxNjNkMzY1YzkxOWMyZjBkODY3ZjVkNjAyNmQyZjhiNmYxYzIwYjkgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0c2VydmUv
dGVzdHMvZnVuY3Rpb25hbC90ZXN0X2hhbmRsZXJzLnB5CisrKyBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0c2VydmUvdGVzdHMvZnVuY3Rpb25h
bC90ZXN0X2hhbmRsZXJzLnB5CkBAIC05LDcgKzksOSBAQCBmcm9tIHNpeC5tb3Zlcy51cmxsaWIu
ZXJyb3IgaW1wb3J0IEhUVFBFcnJvcgogCiB3cHRzZXJ2ZSA9IHB5dGVzdC5pbXBvcnRvcnNraXAo
IndwdHNlcnZlIikKIGZyb20gLmJhc2UgaW1wb3J0IFRlc3RVc2luZ1NlcnZlciwgVGVzdFVzaW5n
SDJTZXJ2ZXIsIGRvY19yb290Citmcm9tIC5iYXNlIGltcG9ydCBUZXN0V3JhcHBlckhhbmRsZXJV
c2luZ1NlcnZlcgogCitmcm9tIHNlcnZlIGltcG9ydCBzZXJ2ZQogCiBjbGFzcyBUZXN0RmlsZUhh
bmRsZXIoVGVzdFVzaW5nU2VydmVyKToKICAgICBkZWYgdGVzdF9HRVQoc2VsZik6CkBAIC0xOCw3
ICsyMCw2IEBAIGNsYXNzIFRlc3RGaWxlSGFuZGxlcihUZXN0VXNpbmdTZXJ2ZXIpOgogICAgICAg
ICBzZWxmLmFzc2VydEVxdWFsKCJ0ZXh0L3BsYWluIiwgcmVzcC5pbmZvKClbIkNvbnRlbnQtVHlw
ZSJdKQogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKG9wZW4ob3MucGF0aC5qb2luKGRvY19yb290
LCAiZG9jdW1lbnQudHh0IiksICdyYicpLnJlYWQoKSwgcmVzcC5yZWFkKCkpCiAKLSAgICBAcHl0
ZXN0Lm1hcmsueGZhaWwoc3lzLnZlcnNpb25faW5mbyA+PSAoMywpLCByZWFzb249IndwdHNlcnZl
IG9ubHkgd29ya3Mgb24gUHkyIikKICAgICBkZWYgdGVzdF9oZWFkZXJzKHNlbGYpOgogICAgICAg
ICByZXNwID0gc2VsZi5yZXF1ZXN0KCIvd2l0aF9oZWFkZXJzLnR4dCIpCiAgICAgICAgIHNlbGYu
YXNzZXJ0RXF1YWwoMjAwLCByZXNwLmdldGNvZGUoKSkKQEAgLTI3LDcgKzI4LDcgQEAgY2xhc3Mg
VGVzdEZpbGVIYW5kbGVyKFRlc3RVc2luZ1NlcnZlcik6CiAgICAgICAgICMgVGhpcyB3aWxsIGZh
aWwgaWYgaXQgaXNuJ3QgYSB2YWxpZCB1dWlkCiAgICAgICAgIHV1aWQuVVVJRChyZXNwLmluZm8o
KVsiQW5vdGhlci1IZWFkZXIiXSkKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChyZXNwLmluZm8o
KVsiU2FtZS1WYWx1ZS1IZWFkZXIiXSwgcmVzcC5pbmZvKClbIkFub3RoZXItSGVhZGVyIl0pCi0g
ICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocmVzcC5pbmZvKClbIkRvdWJsZS1IZWFkZXIiXSwgIlBB
LCBTUyIpCisgICAgICAgIHNlbGYuYXNzZXJ0X211bHRpcGxlX2hlYWRlcnMocmVzcCwgIkRvdWJs
ZS1IZWFkZXIiLCBbIlBBIiwgIlNTIl0pCiAKIAogICAgIGRlZiB0ZXN0X3JhbmdlKHNlbGYpOgpA
QCAtNTksNyArNjAsNiBAQCBjbGFzcyBUZXN0RmlsZUhhbmRsZXIoVGVzdFVzaW5nU2VydmVyKToK
ICAgICAgICAgICAgICAgICAgICAgICAgICByZXNwLmluZm8oKVsnQ29udGVudC1SYW5nZSddKQog
ICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGV4cGVjdGVkWy0xMDpdLCBkYXRhKQogCi0gICAgQHB5
dGVzdC5tYXJrLnhmYWlsKHN5cy52ZXJzaW9uX2luZm8gPj0gKDMsKSwgcmVhc29uPSJ3cHRzZXJ2
ZSBvbmx5IHdvcmtzIG9uIFB5MiIpCiAgICAgZGVmIHRlc3RfbXVsdGlwbGVfcmFuZ2VzKHNlbGYp
OgogICAgICAgICByZXNwID0gc2VsZi5yZXF1ZXN0KCIvZG9jdW1lbnQudHh0IiwgaGVhZGVycz17
IlJhbmdlIjoiYnl0ZXM9MS0yLDUtNyw2LTEwIn0pCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwo
MjA2LCByZXNwLmdldGNvZGUoKSkKQEAgLTY3LDE2ICs2NywxNiBAQCBjbGFzcyBUZXN0RmlsZUhh
bmRsZXIoVGVzdFVzaW5nU2VydmVyKToKICAgICAgICAgZXhwZWN0ZWQgPSBvcGVuKG9zLnBhdGgu
am9pbihkb2Nfcm9vdCwgImRvY3VtZW50LnR4dCIpLCAncmInKS5yZWFkKCkKICAgICAgICAgc2Vs
Zi5hc3NlcnRUcnVlKHJlc3AuaW5mbygpWyJDb250ZW50LVR5cGUiXS5zdGFydHN3aXRoKCJtdWx0
aXBhcnQvYnl0ZXJhbmdlczsgYm91bmRhcnk9IikpCiAgICAgICAgIGJvdW5kYXJ5ID0gcmVzcC5p
bmZvKClbIkNvbnRlbnQtVHlwZSJdLnNwbGl0KCJib3VuZGFyeT0iKVsxXQotICAgICAgICBwYXJ0
cyA9IGRhdGEuc3BsaXQoIi0tIiArIGJvdW5kYXJ5KQotICAgICAgICBzZWxmLmFzc2VydEVxdWFs
KCJcclxuIiwgcGFydHNbMF0pCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoIi0tIiwgcGFydHNb
LTFdKQotICAgICAgICBleHBlY3RlZF9wYXJ0cyA9IFsoIjEtMiIsIGV4cGVjdGVkWzE6M10pLCAo
IjUtMTAiLCBleHBlY3RlZFs1OjExXSldCisgICAgICAgIHBhcnRzID0gZGF0YS5zcGxpdChiIi0t
IiArIGJvdW5kYXJ5LmVuY29kZSgiYXNjaWkiKSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChi
IlxyXG4iLCBwYXJ0c1swXSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChiIi0tIiwgcGFydHNb
LTFdKQorICAgICAgICBleHBlY3RlZF9wYXJ0cyA9IFsoYiIxLTIiLCBleHBlY3RlZFsxOjNdKSwg
KGIiNS0xMCIsIGV4cGVjdGVkWzU6MTFdKV0KICAgICAgICAgZm9yIGV4cGVjdGVkX3BhcnQsIHBh
cnQgaW4gemlwKGV4cGVjdGVkX3BhcnRzLCBwYXJ0c1sxOi0xXSk6Ci0gICAgICAgICAgICBoZWFk
ZXJfc3RyaW5nLCBib2R5ID0gcGFydC5zcGxpdCgiXHJcblxyXG4iKQotICAgICAgICAgICAgaGVh
ZGVycyA9IGRpY3QoaXRlbS5zcGxpdCgiOiAiLCAxKSBmb3IgaXRlbSBpbiBoZWFkZXJfc3RyaW5n
LnNwbGl0KCJcclxuIikgaWYgaXRlbS5zdHJpcCgpKQotICAgICAgICAgICAgc2VsZi5hc3NlcnRF
cXVhbChoZWFkZXJzWyJDb250ZW50LVR5cGUiXSwgInRleHQvcGxhaW4iKQotICAgICAgICAgICAg
c2VsZi5hc3NlcnRFcXVhbChoZWFkZXJzWyJDb250ZW50LVJhbmdlIl0sICJieXRlcyAlcy8laSIg
JSAoZXhwZWN0ZWRfcGFydFswXSwgbGVuKGV4cGVjdGVkKSkpCi0gICAgICAgICAgICBzZWxmLmFz
c2VydEVxdWFsKGV4cGVjdGVkX3BhcnRbMV0gKyAiXHJcbiIsIGJvZHkpCisgICAgICAgICAgICBo
ZWFkZXJfc3RyaW5nLCBib2R5ID0gcGFydC5zcGxpdChiIlxyXG5cclxuIikKKyAgICAgICAgICAg
IGhlYWRlcnMgPSBkaWN0KGl0ZW0uc3BsaXQoYiI6ICIsIDEpIGZvciBpdGVtIGluIGhlYWRlcl9z
dHJpbmcuc3BsaXQoYiJcclxuIikgaWYgaXRlbS5zdHJpcCgpKQorICAgICAgICAgICAgc2VsZi5h
c3NlcnRFcXVhbChoZWFkZXJzW2IiQ29udGVudC1UeXBlIl0sIGIidGV4dC9wbGFpbiIpCisgICAg
ICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGhlYWRlcnNbYiJDb250ZW50LVJhbmdlIl0sIGIiYnl0
ZXMgJXMvJWkiICUgKGV4cGVjdGVkX3BhcnRbMF0sIGxlbihleHBlY3RlZCkpKQorICAgICAgICAg
ICAgc2VsZi5hc3NlcnRFcXVhbChleHBlY3RlZF9wYXJ0WzFdICsgYiJcclxuIiwgYm9keSkKIAog
ICAgIGRlZiB0ZXN0X3JhbmdlX2ludmFsaWQoc2VsZik6CiAgICAgICAgIHdpdGggc2VsZi5hc3Nl
cnRSYWlzZXMoSFRUUEVycm9yKSBhcyBjbToKQEAgLTg4LDE5ICs4OCwxNiBAQCBjbGFzcyBUZXN0
RmlsZUhhbmRsZXIoVGVzdFVzaW5nU2VydmVyKToKICAgICAgICAgICAgIHNlbGYucmVxdWVzdCgi
L2RvY3VtZW50LnR4dCIsIGhlYWRlcnM9eyJSYW5nZSI6ImJ5dGVzPSVpLSVpIiAlIChsZW4oZXhw
ZWN0ZWQpLCBsZW4oZXhwZWN0ZWQpICsgMTApfSkKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChj
bS5leGNlcHRpb24uY29kZSwgNDE2KQogCi0gICAgQHB5dGVzdC5tYXJrLnhmYWlsKHN5cy52ZXJz
aW9uX2luZm8gPj0gKDMsKSwgcmVhc29uPSJ3cHRzZXJ2ZSBvbmx5IHdvcmtzIG9uIFB5MiIpCiAg
ICAgZGVmIHRlc3Rfc3ViX2NvbmZpZyhzZWxmKToKICAgICAgICAgcmVzcCA9IHNlbGYucmVxdWVz
dCgiL3N1Yi5zdWIudHh0IikKICAgICAgICAgZXhwZWN0ZWQgPSBiImxvY2FsaG9zdCBsb2NhbGhv
c3QgJWkiICUgc2VsZi5zZXJ2ZXIucG9ydAogICAgICAgICBhc3NlcnQgcmVzcC5yZWFkKCkucnN0
cmlwKCkgPT0gZXhwZWN0ZWQKIAotICAgIEBweXRlc3QubWFyay54ZmFpbChzeXMudmVyc2lvbl9p
bmZvID49ICgzLCksIHJlYXNvbj0id3B0c2VydmUgb25seSB3b3JrcyBvbiBQeTIiKQogICAgIGRl
ZiB0ZXN0X3N1Yl9oZWFkZXJzKHNlbGYpOgogICAgICAgICByZXNwID0gc2VsZi5yZXF1ZXN0KCIv
c3ViX2hlYWRlcnMuc3ViLnR4dCIsIGhlYWRlcnM9eyJYLVRlc3QiOiAiUEFTUyJ9KQogICAgICAg
ICBleHBlY3RlZCA9IGIiUEFTUyIKICAgICAgICAgYXNzZXJ0IHJlc3AucmVhZCgpLnJzdHJpcCgp
ID09IGV4cGVjdGVkCiAKLSAgICBAcHl0ZXN0Lm1hcmsueGZhaWwoc3lzLnZlcnNpb25faW5mbyA+
PSAoMywpLCByZWFzb249IndwdHNlcnZlIG9ubHkgd29ya3Mgb24gUHkyIikKICAgICBkZWYgdGVz
dF9zdWJfcGFyYW1zKHNlbGYpOgogICAgICAgICByZXNwID0gc2VsZi5yZXF1ZXN0KCIvc3ViX3Bh
cmFtcy5zdWIudHh0IiwgcXVlcnk9InRlc3Q9UEFTUyIpCiAgICAgICAgIGV4cGVjdGVkID0gYiJQ
QVNTIgpAQCAtMTA4LDcgKzEwNSw2IEBAIGNsYXNzIFRlc3RGaWxlSGFuZGxlcihUZXN0VXNpbmdT
ZXJ2ZXIpOgogCiAKIGNsYXNzIFRlc3RGdW5jdGlvbkhhbmRsZXIoVGVzdFVzaW5nU2VydmVyKToK
LSAgICBAcHl0ZXN0Lm1hcmsueGZhaWwoc3lzLnZlcnNpb25faW5mbyA+PSAoMywpLCByZWFzb249
IndwdHNlcnZlIG9ubHkgd29ya3Mgb24gUHkyIikKICAgICBkZWYgdGVzdF9zdHJpbmdfcnYoc2Vs
Zik6CiAgICAgICAgIEB3cHRzZXJ2ZS5oYW5kbGVycy5oYW5kbGVyCiAgICAgICAgIGRlZiBoYW5k
bGVyKHJlcXVlc3QsIHJlc3BvbnNlKToKQEAgLTExOSw3ICsxMTUsNyBAQCBjbGFzcyBUZXN0RnVu
Y3Rpb25IYW5kbGVyKFRlc3RVc2luZ1NlcnZlcik6CiAgICAgICAgIHJlc3AgPSBzZWxmLnJlcXVl
c3Qocm91dGVbMV0pCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoMjAwLCByZXNwLmdldGNvZGUo
KSkKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgiOSIsIHJlc3AuaW5mbygpWyJDb250ZW50LUxl
bmd0aCJdKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCJ0ZXN0IGRhdGEiLCByZXNwLnJlYWQo
KSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChiInRlc3QgZGF0YSIsIHJlc3AucmVhZCgpKQog
CiAgICAgZGVmIHRlc3RfdHVwbGVfMV9ydihzZWxmKToKICAgICAgICAgQHdwdHNlcnZlLmhhbmRs
ZXJzLmhhbmRsZXIKQEAgLTEzNCw3ICsxMzAsNiBAQCBjbGFzcyBUZXN0RnVuY3Rpb25IYW5kbGVy
KFRlc3RVc2luZ1NlcnZlcik6CiAKICAgICAgICAgYXNzZXJ0IGNtLnZhbHVlLmNvZGUgPT0gNTAw
CiAKLSAgICBAcHl0ZXN0Lm1hcmsueGZhaWwoc3lzLnZlcnNpb25faW5mbyA+PSAoMywpLCByZWFz
b249IndwdHNlcnZlIG9ubHkgd29ya3Mgb24gUHkyIikKICAgICBkZWYgdGVzdF90dXBsZV8yX3J2
KHNlbGYpOgogICAgICAgICBAd3B0c2VydmUuaGFuZGxlcnMuaGFuZGxlcgogICAgICAgICBkZWYg
aGFuZGxlcihyZXF1ZXN0LCByZXNwb25zZSk6CkBAIC0xNDYsOSArMTQxLDggQEAgY2xhc3MgVGVz
dEZ1bmN0aW9uSGFuZGxlcihUZXN0VXNpbmdTZXJ2ZXIpOgogICAgICAgICBzZWxmLmFzc2VydEVx
dWFsKDIwMCwgcmVzcC5nZXRjb2RlKCkpCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoIjQiLCBy
ZXNwLmluZm8oKVsiQ29udGVudC1MZW5ndGgiXSkKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgi
dGVzdC12YWx1ZSIsIHJlc3AuaW5mbygpWyJ0ZXN0LWhlYWRlciJdKQotICAgICAgICBzZWxmLmFz
c2VydEVxdWFsKCJ0ZXN0IiwgcmVzcC5yZWFkKCkpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwo
YiJ0ZXN0IiwgcmVzcC5yZWFkKCkpCiAKLSAgICBAcHl0ZXN0Lm1hcmsueGZhaWwoc3lzLnZlcnNp
b25faW5mbyA+PSAoMywpLCByZWFzb249IndwdHNlcnZlIG9ubHkgd29ya3Mgb24gUHkyIikKICAg
ICBkZWYgdGVzdF90dXBsZV8zX3J2KHNlbGYpOgogICAgICAgICBAd3B0c2VydmUuaGFuZGxlcnMu
aGFuZGxlcgogICAgICAgICBkZWYgaGFuZGxlcihyZXF1ZXN0LCByZXNwb25zZSk6CkBAIC0xNTks
OSArMTUzLDggQEAgY2xhc3MgVGVzdEZ1bmN0aW9uSGFuZGxlcihUZXN0VXNpbmdTZXJ2ZXIpOgog
ICAgICAgICByZXNwID0gc2VsZi5yZXF1ZXN0KHJvdXRlWzFdKQogICAgICAgICBzZWxmLmFzc2Vy
dEVxdWFsKDIwMiwgcmVzcC5nZXRjb2RlKCkpCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoInRl
c3QtdmFsdWUiLCByZXNwLmluZm8oKVsidGVzdC1oZWFkZXIiXSkKLSAgICAgICAgc2VsZi5hc3Nl
cnRFcXVhbCgidGVzdCBkYXRhIiwgcmVzcC5yZWFkKCkpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1
YWwoYiJ0ZXN0IGRhdGEiLCByZXNwLnJlYWQoKSkKIAotICAgIEBweXRlc3QubWFyay54ZmFpbChz
eXMudmVyc2lvbl9pbmZvID49ICgzLCksIHJlYXNvbj0id3B0c2VydmUgb25seSB3b3JrcyBvbiBQ
eTIiKQogICAgIGRlZiB0ZXN0X3R1cGxlXzNfcnZfMShzZWxmKToKICAgICAgICAgQHdwdHNlcnZl
LmhhbmRsZXJzLmhhbmRsZXIKICAgICAgICAgZGVmIGhhbmRsZXIocmVxdWVzdCwgcmVzcG9uc2Up
OgpAQCAtMTczLDcgKzE2Niw3IEBAIGNsYXNzIFRlc3RGdW5jdGlvbkhhbmRsZXIoVGVzdFVzaW5n
U2VydmVyKToKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgyMDIsIHJlc3AuZ2V0Y29kZSgpKQog
ICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCJTb21lIFN0YXR1cyIsIHJlc3AubXNnKQogICAgICAg
ICBzZWxmLmFzc2VydEVxdWFsKCJ0ZXN0LXZhbHVlIiwgcmVzcC5pbmZvKClbInRlc3QtaGVhZGVy
Il0pCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoInRlc3QgZGF0YSIsIHJlc3AucmVhZCgpKQor
ICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGIidGVzdCBkYXRhIiwgcmVzcC5yZWFkKCkpCiAKICAg
ICBkZWYgdGVzdF90dXBsZV80X3J2KHNlbGYpOgogICAgICAgICBAd3B0c2VydmUuaGFuZGxlcnMu
aGFuZGxlcgpAQCAtMjQxLDEyICsyMzQsMTEgQEAgY2xhc3MgVGVzdEpTT05IYW5kbGVyKFRlc3RV
c2luZ1NlcnZlcik6CiAKIAogY2xhc3MgVGVzdFB5dGhvbkhhbmRsZXIoVGVzdFVzaW5nU2VydmVy
KToKLSAgICBAcHl0ZXN0Lm1hcmsueGZhaWwoc3lzLnZlcnNpb25faW5mbyA+PSAoMywpLCByZWFz
b249IndwdHNlcnZlIG9ubHkgd29ya3Mgb24gUHkyIikKICAgICBkZWYgdGVzdF9zdHJpbmcoc2Vs
Zik6CiAgICAgICAgIHJlc3AgPSBzZWxmLnJlcXVlc3QoIi90ZXN0X3N0cmluZy5weSIpCiAgICAg
ICAgIHNlbGYuYXNzZXJ0RXF1YWwoMjAwLCByZXNwLmdldGNvZGUoKSkKICAgICAgICAgc2VsZi5h
c3NlcnRFcXVhbCgidGV4dC9wbGFpbiIsIHJlc3AuaW5mbygpWyJDb250ZW50LVR5cGUiXSkKLSAg
ICAgICAgc2VsZi5hc3NlcnRFcXVhbCgiUEFTUyIsIHJlc3AucmVhZCgpKQorICAgICAgICBzZWxm
LmFzc2VydEVxdWFsKGIiUEFTUyIsIHJlc3AucmVhZCgpKQogCiAgICAgZGVmIHRlc3RfdHVwbGVf
MihzZWxmKToKICAgICAgICAgcmVzcCA9IHNlbGYucmVxdWVzdCgiL3Rlc3RfdHVwbGVfMi5weSIp
CkBAIC0yNjMsNyArMjU1LDYgQEAgY2xhc3MgVGVzdFB5dGhvbkhhbmRsZXIoVGVzdFVzaW5nU2Vy
dmVyKToKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgiUEFTUyIsIHJlc3AuaW5mbygpWyJYLVRl
c3QiXSkKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChiIlBBU1MiLCByZXNwLnJlYWQoKSkKIAot
ICAgIEBweXRlc3QubWFyay54ZmFpbChzeXMudmVyc2lvbl9pbmZvID49ICgzLCksIHJlYXNvbj0i
d3B0c2VydmUgb25seSB3b3JrcyBvbiBQeTIiKQogICAgIGRlZiB0ZXN0X2ltcG9ydChzZWxmKToK
ICAgICAgICAgZGlyX25hbWUgPSBvcy5wYXRoLmpvaW4oZG9jX3Jvb3QsICJzdWJkaXIiKQogICAg
ICAgICBhc3NlcnQgZGlyX25hbWUgbm90IGluIHN5cy5wYXRoCkBAIC0yNzMsNyArMjY0LDcgQEAg
Y2xhc3MgVGVzdFB5dGhvbkhhbmRsZXIoVGVzdFVzaW5nU2VydmVyKToKICAgICAgICAgYXNzZXJ0
ICJ0ZXN0X21vZHVsZSIgbm90IGluIHN5cy5tb2R1bGVzCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1
YWwoMjAwLCByZXNwLmdldGNvZGUoKSkKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgidGV4dC9w
bGFpbiIsIHJlc3AuaW5mbygpWyJDb250ZW50LVR5cGUiXSkKLSAgICAgICAgc2VsZi5hc3NlcnRF
cXVhbCgiUEFTUyIsIHJlc3AucmVhZCgpKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGIiUEFT
UyIsIHJlc3AucmVhZCgpKQogCiAgICAgZGVmIHRlc3Rfbm9fbWFpbihzZWxmKToKICAgICAgICAg
d2l0aCBweXRlc3QucmFpc2VzKEhUVFBFcnJvcikgYXMgY206CkBAIC0zMTQsMTMgKzMwNSwxMiBA
QCBjbGFzcyBUZXN0RGlyZWN0b3J5SGFuZGxlcihUZXN0VXNpbmdTZXJ2ZXIpOgogCiAKIGNsYXNz
IFRlc3RBc0lzSGFuZGxlcihUZXN0VXNpbmdTZXJ2ZXIpOgotICAgIEBweXRlc3QubWFyay54ZmFp
bChzeXMudmVyc2lvbl9pbmZvID49ICgzLCksIHJlYXNvbj0id3B0c2VydmUgb25seSB3b3JrcyBv
biBQeTIiKQogICAgIGRlZiB0ZXN0X2FzX2lzKHNlbGYpOgogICAgICAgICByZXNwID0gc2VsZi5y
ZXF1ZXN0KCIvdGVzdC5hc2lzIikKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgyMDIsIHJlc3Au
Z2V0Y29kZSgpKQogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCJHaXJhZmZlIiwgcmVzcC5tc2cp
CiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoIlBBU1MiLCByZXNwLmluZm8oKVsiWC1UZXN0Il0p
Ci0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoIkNvbnRlbnQiLCByZXNwLnJlYWQoKSkKKyAgICAg
ICAgc2VsZi5hc3NlcnRFcXVhbChiIkNvbnRlbnQiLCByZXNwLnJlYWQoKSkKICAgICAgICAgI0Fk
ZCBhIGNoZWNrIHRoYXQgdGhlIHJlc3BvbnNlIGlzIGFjdHVhbGx5IHNhbmUKIAogCkBAIC0zOTcs
NSArMzg3LDU4IEBAIGNsYXNzIFRlc3RIMkhhbmRsZXIoVGVzdFVzaW5nSDJTZXJ2ZXIpOgogICAg
ICAgICBhc3NlcnQgcmVzcC5yZWFkKCkgPT0gJycKIAogCitjbGFzcyBUZXN0V29ya2Vyc0hhbmRs
ZXIoVGVzdFdyYXBwZXJIYW5kbGVyVXNpbmdTZXJ2ZXIpOgorICAgIGR1bW15X2pzX2ZpbGVzID0g
eydmb28ud29ya2VyLmpzJzogYicnLAorICAgICAgICAgICAgICAgICAgICAgICdmb28uYW55Lmpz
JzogYicnfQorCisgICAgZGVmIHRlc3RfYW55X3dvcmtlcl9odG1sKHNlbGYpOgorICAgICAgICBz
ZWxmLnJ1bl93cmFwcGVyX3Rlc3QoJ2Zvby5hbnkud29ya2VyLmh0bWwnLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgJ3RleHQvaHRtbCcsIHNlcnZlLldvcmtlcnNIYW5kbGVyKQorCisg
ICAgZGVmIHRlc3Rfd29ya2VyX2h0bWwoc2VsZik6CisgICAgICAgIHNlbGYucnVuX3dyYXBwZXJf
dGVzdCgnZm9vLndvcmtlci5odG1sJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICd0
ZXh0L2h0bWwnLCBzZXJ2ZS5Xb3JrZXJzSGFuZGxlcikKKworCitjbGFzcyBUZXN0V2luZG93SGFu
ZGxlcihUZXN0V3JhcHBlckhhbmRsZXJVc2luZ1NlcnZlcik6CisgICAgZHVtbXlfanNfZmlsZXMg
PSB7J2Zvby53aW5kb3cuanMnOiBiJyd9CisKKyAgICBkZWYgdGVzdF93aW5kb3dfaHRtbChzZWxm
KToKKyAgICAgICAgc2VsZi5ydW5fd3JhcHBlcl90ZXN0KCdmb28ud2luZG93Lmh0bWwnLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3RleHQvaHRtbCcsIHNlcnZlLldpbmRvd0hhbmRs
ZXIpCisKKworY2xhc3MgVGVzdEFueUh0bWxIYW5kbGVyKFRlc3RXcmFwcGVySGFuZGxlclVzaW5n
U2VydmVyKToKKyAgICBkdW1teV9qc19maWxlcyA9IHsnZm9vLmFueS5qcyc6IGInJ30KKworICAg
IGRlZiB0ZXN0X2FueV9odG1sKHNlbGYpOgorICAgICAgICBzZWxmLnJ1bl93cmFwcGVyX3Rlc3Qo
J2Zvby5hbnkuaHRtbCcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAndGV4dC9odG1s
Jywgc2VydmUuQW55SHRtbEhhbmRsZXIpCisKKworY2xhc3MgVGVzdFNoYXJlZFdvcmtlcnNIYW5k
bGVyKFRlc3RXcmFwcGVySGFuZGxlclVzaW5nU2VydmVyKToKKyAgICBkdW1teV9qc19maWxlcyA9
IHsnZm9vLmFueS5qcyc6IGInLy8gTUVUQTogZ2xvYmFsPXNoYXJlZHdvcmtlclxuJ30KKworICAg
IGRlZiB0ZXN0X2FueV9zaGFyZWR3b3JrZXJzX2h0bWwoc2VsZik6CisgICAgICAgIHNlbGYucnVu
X3dyYXBwZXJfdGVzdCgnZm9vLmFueS5zaGFyZWR3b3JrZXIuaHRtbCcsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAndGV4dC9odG1sJywgc2VydmUuU2hhcmVkV29ya2Vyc0hhbmRsZXIp
CisKKworY2xhc3MgVGVzdFNlcnZpY2VXb3JrZXJzSGFuZGxlcihUZXN0V3JhcHBlckhhbmRsZXJV
c2luZ1NlcnZlcik6CisgICAgZHVtbXlfanNfZmlsZXMgPSB7J2Zvby5hbnkuanMnOiBiJy8vIE1F
VEE6IGdsb2JhbD1zZXJ2aWNld29ya2VyXG4nfQorCisgICAgZGVmIHRlc3Rfc2VydmljZXdvcmtl
cl9odG1sKHNlbGYpOgorICAgICAgICBzZWxmLnJ1bl93cmFwcGVyX3Rlc3QoJ2Zvby5hbnkuc2Vy
dmljZXdvcmtlci5odG1sJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICd0ZXh0L2h0
bWwnLCBzZXJ2ZS5TZXJ2aWNlV29ya2Vyc0hhbmRsZXIpCisKKworY2xhc3MgVGVzdEFueVdvcmtl
ckhhbmRsZXIoVGVzdFdyYXBwZXJIYW5kbGVyVXNpbmdTZXJ2ZXIpOgorICAgIGR1bW15X2pzX2Zp
bGVzID0geydiYXIuYW55LmpzJzogYicnfQorCisgICAgZGVmIHRlc3RfYW55X3dvcmtfanMoc2Vs
Zik6CisgICAgICAgIHNlbGYucnVuX3dyYXBwZXJfdGVzdCgnYmFyLmFueS53b3JrZXIuanMnLCAn
dGV4dC9qYXZhc2NyaXB0JywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlcnZlLkFu
eVdvcmtlckhhbmRsZXIpCisKKwogaWYgX19uYW1lX18gPT0gJ19fbWFpbl9fJzoKICAgICB1bml0
dGVzdC5tYWluKCkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvd3B0c2VydmUvdGVzdHMvZnVuY3Rpb25hbC90ZXN0X2lucHV0X2Zp
bGUucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3dwdHNlcnZlL3Rlc3RzL2Z1bmN0aW9uYWwvdGVzdF9pbnB1dF9maWxlLnB5CmluZGV4IDAxNDM4
NmUxNzJmYmI3OWRlNDU1NDI4NGU0YzUxZGNhYWJhZjcwYjQuLjk4MTc2ZTU4Mzg2Mjg0MWRmOWRl
Mjc3NzlkY2ZlNWZmOGY3YTYxNGIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0c2VydmUvdGVzdHMvZnVuY3Rpb25hbC90ZXN0
X2lucHV0X2ZpbGUucHkKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy93cHRzZXJ2ZS90ZXN0cy9mdW5jdGlvbmFsL3Rlc3RfaW5wdXRfZmlsZS5w
eQpAQCAtMSw4ICsxLDExIEBACi1mcm9tIHdwdHNlcnZlLnJlcXVlc3QgaW1wb3J0IElucHV0Rmls
ZQoraW1wb3J0IHN5cwogZnJvbSBpbyBpbXBvcnQgQnl0ZXNJTworCiBpbXBvcnQgcHl0ZXN0Citm
cm9tIHNpeCBpbXBvcnQgUFkyCisKK2Zyb20gd3B0c2VydmUucmVxdWVzdCBpbXBvcnQgSW5wdXRG
aWxlCiAKLXdwdHNlcnZlID0gcHl0ZXN0LmltcG9ydG9yc2tpcCgid3B0c2VydmUiKQogYnN0ciA9
IGInVGhpcyBpcyBhIHRlc3QgZG9jdW1lbnRcbldpdGggbmV3IGxpbmVzXG5TZXZlcmFsIGluIGZh
Y3QuLi4nCiByZmlsZSA9ICcnCiB0ZXN0X2ZpbGUgPSAnJyAgIyBUaGlzIHdpbGwgYmUgdXNlZCB0
byB0ZXN0IHRoZSBJbnB1dEZpbGUgZnVuY3Rpb25zIGFnYWluc3QKQEAgLTExOCw2ICsxMjEsOCBA
QCBkZWYgdGVzdF9yZWFkbGluZXMoKToKICAgICBhc3NlcnQgaW5wdXRfZmlsZS5yZWFkbGluZXMo
KSA9PSB0ZXN0X2ZpbGUucmVhZGxpbmVzKCkKIAogCitAcHl0ZXN0Lm1hcmsueGZhaWwoc3lzLnBs
YXRmb3JtID09ICJ3aW4zMiIgYW5kIFBZMiwKKyAgICAgICAgICAgICAgICAgICByZWFzb249Imh0
dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxhdGZvcm0tdGVzdHMvd3B0L2lzc3Vlcy8xMjk0OSIpCiBk
ZWYgdGVzdF9yZWFkbGluZXNfZmlsZV9iaWdnZXJfdGhhbl9idWZmZXIoKToKICAgICBvbGRfbWF4
X2J1ZiA9IElucHV0RmlsZS5tYXhfYnVmZmVyX3NpemUKICAgICBJbnB1dEZpbGUubWF4X2J1ZmZl
cl9zaXplID0gMTAKQEAgLTEzNSw2ICsxNDAsOCBAQCBkZWYgdGVzdF9pdGVyKCk6CiAgICAgICAg
IGFzc2VydCBhID09IGIKIAogCitAcHl0ZXN0Lm1hcmsueGZhaWwoc3lzLnBsYXRmb3JtID09ICJ3
aW4zMiIgYW5kIFBZMiwKKyAgICAgICAgICAgICAgICAgICByZWFzb249Imh0dHBzOi8vZ2l0aHVi
LmNvbS93ZWItcGxhdGZvcm0tdGVzdHMvd3B0L2lzc3Vlcy8xMjk0OSIpCiBkZWYgdGVzdF9pdGVy
X2ZpbGVfYmlnZ2VyX3RoYW5fYnVmZmVyKCk6CiAgICAgb2xkX21heF9idWYgPSBJbnB1dEZpbGUu
bWF4X2J1ZmZlcl9zaXplCiAgICAgSW5wdXRGaWxlLm1heF9idWZmZXJfc2l6ZSA9IDEwCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3dwdHNlcnZlL3Rlc3RzL2Z1bmN0aW9uYWwvdGVzdF9waXBlcy5weSBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0c2VydmUvdGVzdHMvZnVuY3Rp
b25hbC90ZXN0X3BpcGVzLnB5CmluZGV4IGViZGJjM2VlNTdkZGZhNTAzMzg5MzhhYTJlMjI2MDI4
ZDdiYjY1NTUuLmE2YTcwM2UzMDQ5MDJkYWZhZjQzOTc1YWIxYWMwNTgwZTE2MGZkYzMgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
d3B0c2VydmUvdGVzdHMvZnVuY3Rpb25hbC90ZXN0X3BpcGVzLnB5CisrKyBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0c2VydmUvdGVzdHMvZnVu
Y3Rpb25hbC90ZXN0X3BpcGVzLnB5CkBAIC0yLDcgKzIsNiBAQCBpbXBvcnQgb3MKIGltcG9ydCB1
bml0dGVzdAogaW1wb3J0IHRpbWUKIGltcG9ydCBqc29uCi1pbXBvcnQgc3lzCiAKIGZyb20gc2l4
Lm1vdmVzIGltcG9ydCB1cmxsaWIKIApAQCAtMzUsMTAgKzM0LDkgQEAgY2xhc3MgVGVzdEhlYWRl
cihUZXN0VXNpbmdTZXJ2ZXIpOgogICAgICAgICByZXNwID0gc2VsZi5yZXF1ZXN0KCIvZG9jdW1l
bnQudHh0IiwgcXVlcnk9InBpcGU9aGVhZGVyKENvbnRlbnQtVHlwZSxGQUlMKXxoZWFkZXIoQ29u
dGVudC1UeXBlLHRleHQvaHRtbCkiKQogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHJlc3AuaW5m
bygpWyJDb250ZW50LVR5cGUiXSwgInRleHQvaHRtbCIpCiAKLSAgICBAcHl0ZXN0Lm1hcmsueGZh
aWwoc3lzLnZlcnNpb25faW5mbyA+PSAoMywpLCByZWFzb249IndwdHNlcnZlIG9ubHkgd29ya3Mg
b24gUHkyIikKICAgICBkZWYgdGVzdF9tdWx0aXBsZV9hcHBlbmQoc2VsZik6CiAgICAgICAgIHJl
c3AgPSBzZWxmLnJlcXVlc3QoIi9kb2N1bWVudC50eHQiLCBxdWVyeT0icGlwZT1oZWFkZXIoWC1U
ZXN0LDEpfGhlYWRlcihYLVRlc3QsMixUcnVlKSIpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwo
cmVzcC5pbmZvKClbIlgtVGVzdCJdLCAiMSwgMiIpCisgICAgICAgIHNlbGYuYXNzZXJ0X211bHRp
cGxlX2hlYWRlcnMocmVzcCwgIlgtVGVzdCIsIFsiMSIsICIyIl0pCiAKIGNsYXNzIFRlc3RTbGlj
ZShUZXN0VXNpbmdTZXJ2ZXIpOgogICAgIGRlZiB0ZXN0X2JvdGhfYm91bmRzKHNlbGYpOgpAQCAt
NTcsMzYgKzU1LDMxIEBAIGNsYXNzIFRlc3RTbGljZShUZXN0VXNpbmdTZXJ2ZXIpOgogICAgICAg
ICBzZWxmLmFzc2VydEVxdWFsKHJlc3AucmVhZCgpLCBleHBlY3RlZFs6MTBdKQogCiBjbGFzcyBU
ZXN0U3ViKFRlc3RVc2luZ1NlcnZlcik6Ci0gICAgQHB5dGVzdC5tYXJrLnhmYWlsKHN5cy52ZXJz
aW9uX2luZm8gPj0gKDMsKSwgcmVhc29uPSJ3cHRzZXJ2ZSBvbmx5IHdvcmtzIG9uIFB5MiIpCiAg
ICAgZGVmIHRlc3Rfc3ViX2NvbmZpZyhzZWxmKToKICAgICAgICAgcmVzcCA9IHNlbGYucmVxdWVz
dCgiL3N1Yi50eHQiLCBxdWVyeT0icGlwZT1zdWIiKQotICAgICAgICBleHBlY3RlZCA9ICJsb2Nh
bGhvc3QgbG9jYWxob3N0ICVpIiAlIHNlbGYuc2VydmVyLnBvcnQKKyAgICAgICAgZXhwZWN0ZWQg
PSBiImxvY2FsaG9zdCBsb2NhbGhvc3QgJWkiICUgc2VsZi5zZXJ2ZXIucG9ydAogICAgICAgICBz
ZWxmLmFzc2VydEVxdWFsKHJlc3AucmVhZCgpLnJzdHJpcCgpLCBleHBlY3RlZCkKIAotICAgIEBw
eXRlc3QubWFyay54ZmFpbChzeXMudmVyc2lvbl9pbmZvID49ICgzLCksIHJlYXNvbj0id3B0c2Vy
dmUgb25seSB3b3JrcyBvbiBQeTIiKQogICAgIGRlZiB0ZXN0X3N1Yl9maWxlX2hhc2goc2VsZik6
CiAgICAgICAgIHJlc3AgPSBzZWxmLnJlcXVlc3QoIi9zdWJfZmlsZV9oYXNoLnN1Yi50eHQiKQot
ICAgICAgICBleHBlY3RlZCA9ICIiIgorICAgICAgICBleHBlY3RlZCA9IGIiIiIKIG1kNTogSm1J
MVc4Zk1IZlNmQ2FyWU9TeEpjdz09CiBzaGExOiBucXBXcUV3NElXOE5qRDZSMzc1Z3RyUXZ0VG89
CiBzaGEyMjQ6IFJxUTZmTW10YTZuOVR1QS92Z1RaSzJFcW1pZHFucndCQW1RTFJRPT0KIHNoYTI1
NjogRzZMamcxdVBlalF4cUZtdkZPY1YvbG9xbmpQVFc1R1NPZVBPZk0vdTBqdz0KIHNoYTM4NDog
bGtYSENoaDFCWEhONW5UNUJZaGkxeDY3RTFDeVliUEtSS29GMkxUbTVHaXZ1RUZwVlZZdHZFQkh0
UHI3NE45RQotc2hhNTEyOiByOGVMR1JUYzdaem5aa0ZqZVZMeW82L0Z5UWRyYTlxbWxZQ3dLS3ht
M2tmUUFzd1JTOSszSHNZazN0aExVaGNGbW1XaEs0ZFhhSUN6Ci1Kd0dGb25mWHdnPT0iIiIKK3No
YTUxMjogcjhlTEdSVGM3WnpuWmtGamVWTHlvNi9GeVFkcmE5cW1sWUN3S0t4bTNrZlFBc3dSUzkr
M0hzWWszdGhMVWhjRm1tV2hLNGRYYUlDekp3R0ZvbmZYd2c9PSIiIgogICAgICAgICBzZWxmLmFz
c2VydEVxdWFsKHJlc3AucmVhZCgpLnJzdHJpcCgpLCBleHBlY3RlZC5zdHJpcCgpKQogCiAgICAg
ZGVmIHRlc3Rfc3ViX2ZpbGVfaGFzaF91bnJlY29nbml6ZWQoc2VsZik6CiAgICAgICAgIHdpdGgg
c2VsZi5hc3NlcnRSYWlzZXModXJsbGliLmVycm9yLkhUVFBFcnJvcik6CiAgICAgICAgICAgICBz
ZWxmLnJlcXVlc3QoIi9zdWJfZmlsZV9oYXNoX3VucmVjb2duaXplZC5zdWIudHh0IikKIAotICAg
IEBweXRlc3QubWFyay54ZmFpbChzeXMudmVyc2lvbl9pbmZvID49ICgzLCksIHJlYXNvbj0id3B0
c2VydmUgb25seSB3b3JrcyBvbiBQeTIiKQogICAgIGRlZiB0ZXN0X3N1Yl9oZWFkZXJzKHNlbGYp
OgogICAgICAgICByZXNwID0gc2VsZi5yZXF1ZXN0KCIvc3ViX2hlYWRlcnMudHh0IiwgcXVlcnk9
InBpcGU9c3ViIiwgaGVhZGVycz17IlgtVGVzdCI6ICJQQVNTIn0pCi0gICAgICAgIGV4cGVjdGVk
ID0gIlBBU1MiCisgICAgICAgIGV4cGVjdGVkID0gYiJQQVNTIgogICAgICAgICBzZWxmLmFzc2Vy
dEVxdWFsKHJlc3AucmVhZCgpLnJzdHJpcCgpLCBleHBlY3RlZCkKIAotICAgIEBweXRlc3QubWFy
ay54ZmFpbChzeXMudmVyc2lvbl9pbmZvID49ICgzLCksIHJlYXNvbj0id3B0c2VydmUgb25seSB3
b3JrcyBvbiBQeTIiKQogICAgIGRlZiB0ZXN0X3N1Yl9sb2NhdGlvbihzZWxmKToKICAgICAgICAg
cmVzcCA9IHNlbGYucmVxdWVzdCgiL3N1Yl9sb2NhdGlvbi5zdWIudHh0P3F1ZXJ5X3N0cmluZyIp
CiAgICAgICAgIGV4cGVjdGVkID0gIiIiCkBAIC05NywzMCArOTAsNDQgQEAgcGF0aG5hbWU6IC9z
dWJfbG9jYXRpb24uc3ViLnR4dAogcG9ydDogezB9CiBxdWVyeTogP3F1ZXJ5X3N0cmluZwogc2No
ZW1lOiBodHRwCi1zZXJ2ZXI6IGh0dHA6Ly9sb2NhbGhvc3Q6ezB9IiIiLmZvcm1hdChzZWxmLnNl
cnZlci5wb3J0KQorc2VydmVyOiBodHRwOi8vbG9jYWxob3N0OnswfSIiIi5mb3JtYXQoc2VsZi5z
ZXJ2ZXIucG9ydCkuZW5jb2RlKCJhc2NpaSIpCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocmVz
cC5yZWFkKCkucnN0cmlwKCksIGV4cGVjdGVkLnN0cmlwKCkpCiAKLSAgICBAcHl0ZXN0Lm1hcmsu
eGZhaWwoc3lzLnZlcnNpb25faW5mbyA+PSAoMywpLCByZWFzb249IndwdHNlcnZlIG9ubHkgd29y
a3Mgb24gUHkyIikKICAgICBkZWYgdGVzdF9zdWJfcGFyYW1zKHNlbGYpOgogICAgICAgICByZXNw
ID0gc2VsZi5yZXF1ZXN0KCIvc3ViX3BhcmFtcy50eHQiLCBxdWVyeT0idGVzdD1QQVNTJnBpcGU9
c3ViIikKLSAgICAgICAgZXhwZWN0ZWQgPSAiUEFTUyIKKyAgICAgICAgZXhwZWN0ZWQgPSBiIlBB
U1MiCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocmVzcC5yZWFkKCkucnN0cmlwKCksIGV4cGVj
dGVkKQogCi0gICAgQHB5dGVzdC5tYXJrLnhmYWlsKHN5cy52ZXJzaW9uX2luZm8gPj0gKDMsKSwg
cmVhc29uPSJ3cHRzZXJ2ZSBvbmx5IHdvcmtzIG9uIFB5MiIpCiAgICAgZGVmIHRlc3Rfc3ViX3Vy
bF9iYXNlKHNlbGYpOgogICAgICAgICByZXNwID0gc2VsZi5yZXF1ZXN0KCIvc3ViX3VybF9iYXNl
LnN1Yi50eHQiKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHJlc3AucmVhZCgpLnJzdHJpcCgp
LCAiQmVmb3JlIC8gQWZ0ZXIiKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHJlc3AucmVhZCgp
LnJzdHJpcCgpLCBiIkJlZm9yZSAvIEFmdGVyIikKKworICAgIGRlZiB0ZXN0X3N1Yl91cmxfYmFz
ZV92aWFfZmlsZW5hbWVfd2l0aF9xdWVyeShzZWxmKToKKyAgICAgICAgcmVzcCA9IHNlbGYucmVx
dWVzdCgiL3N1Yl91cmxfYmFzZS5zdWIudHh0P3BpcGU9c2xpY2UoNSwxMCkiKQorICAgICAgICBz
ZWxmLmFzc2VydEVxdWFsKHJlc3AucmVhZCgpLnJzdHJpcCgpLCBiImUgLyBBIikKIAotICAgIEBw
eXRlc3QubWFyay54ZmFpbChzeXMudmVyc2lvbl9pbmZvID49ICgzLCksIHJlYXNvbj0id3B0c2Vy
dmUgb25seSB3b3JrcyBvbiBQeTIiKQogICAgIGRlZiB0ZXN0X3N1Yl91dWlkKHNlbGYpOgogICAg
ICAgICByZXNwID0gc2VsZi5yZXF1ZXN0KCIvc3ViX3V1aWQuc3ViLnR4dCIpCi0gICAgICAgIHNl
bGYuYXNzZXJ0UmVnZXhwTWF0Y2hlcyhyZXNwLnJlYWQoKS5yc3RyaXAoKSwgciJCZWZvcmUgW2Et
ZjAtOS1dKyBBZnRlciIpCisgICAgICAgIHNlbGYuYXNzZXJ0UmVnZXhwTWF0Y2hlcyhyZXNwLnJl
YWQoKS5yc3RyaXAoKSwgYiJCZWZvcmUgW2EtZjAtOS1dKyBBZnRlciIpCiAKLSAgICBAcHl0ZXN0
Lm1hcmsueGZhaWwoc3lzLnZlcnNpb25faW5mbyA+PSAoMywpLCByZWFzb249IndwdHNlcnZlIG9u
bHkgd29ya3Mgb24gUHkyIikKICAgICBkZWYgdGVzdF9zdWJfdmFyKHNlbGYpOgogICAgICAgICBy
ZXNwID0gc2VsZi5yZXF1ZXN0KCIvc3ViX3Zhci5zdWIudHh0IikKICAgICAgICAgcG9ydCA9IHNl
bGYuc2VydmVyLnBvcnQKLSAgICAgICAgZXhwZWN0ZWQgPSAibG9jYWxob3N0ICVzIEEgJXMgQiBs
b2NhbGhvc3QgQyIgJSAocG9ydCwgcG9ydCkKKyAgICAgICAgZXhwZWN0ZWQgPSBiImxvY2FsaG9z
dCAlZCBBICVkIEIgbG9jYWxob3N0IEMiICUgKHBvcnQsIHBvcnQpCisgICAgICAgIHNlbGYuYXNz
ZXJ0RXF1YWwocmVzcC5yZWFkKCkucnN0cmlwKCksIGV4cGVjdGVkKQorCisgICAgZGVmIHRlc3Rf
c3ViX2ZzX3BhdGgoc2VsZik6CisgICAgICAgIHJlc3AgPSBzZWxmLnJlcXVlc3QoIi9zdWJkaXIv
c3ViX3BhdGguc3ViLnR4dCIpCisgICAgICAgIHJvb3QgPSBvcy5wYXRoLmFic3BhdGgoZG9jX3Jv
b3QpCisgICAgICAgIGV4cGVjdGVkID0gIiIiJShyb290KXMlKHNlcClzc3ViZGlyJShzZXApc3N1
Yl9wYXRoLnN1Yi50eHQKKyUocm9vdClzJShzZXApc3N1Yl9wYXRoLnN1Yi50eHQKKyUocm9vdClz
JShzZXApc3N1Yl9wYXRoLnN1Yi50eHQKKyIiIiAlIHsicm9vdCI6IHJvb3QsICJzZXAiOiBvcy5w
YXRoLnNlcH0KKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChyZXNwLnJlYWQoKSwgZXhwZWN0ZWQu
ZW5jb2RlKCJ1dGY4IikpCisKKyAgICBkZWYgdGVzdF9zdWJfaGVhZGVyX29yX2RlZmF1bHQoc2Vs
Zik6CisgICAgICAgIHJlc3AgPSBzZWxmLnJlcXVlc3QoIi9zdWJfaGVhZGVyX29yX2RlZmF1bHQu
c3ViLnR4dCIsIGhlYWRlcnM9eyJYLVByZXNlbnQiOiAiT0sifSkKKyAgICAgICAgZXhwZWN0ZWQg
PSBiIk9LXG5hYnNlbnQtZGVmYXVsdCIKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChyZXNwLnJl
YWQoKS5yc3RyaXAoKSwgZXhwZWN0ZWQpCiAKIGNsYXNzIFRlc3RUcmlja2xlKFRlc3RVc2luZ1Nl
cnZlcik6CkBAIC0xNDAsMTIgKzE0NywxMCBAQCBjbGFzcyBUZXN0VHJpY2tsZShUZXN0VXNpbmdT
ZXJ2ZXIpOgogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHJlc3AuaW5mbygpWyJFeHBpcmVzIl0s
ICIwIikKIAogY2xhc3MgVGVzdFBpcGVzV2l0aFZhcmlvdXNIYW5kbGVycyhUZXN0VXNpbmdTZXJ2
ZXIpOgotICAgIEBweXRlc3QubWFyay54ZmFpbChzeXMudmVyc2lvbl9pbmZvID49ICgzLCksIHJl
YXNvbj0id3B0c2VydmUgb25seSB3b3JrcyBvbiBQeTIiKQogICAgIGRlZiB0ZXN0X3dpdGhfcHl0
aG9uX2ZpbGVfaGFuZGxlcihzZWxmKToKICAgICAgICAgcmVzcCA9IHNlbGYucmVxdWVzdCgiL3Rl
c3Rfc3RyaW5nLnB5IiwgcXVlcnk9InBpcGU9c2xpY2UobnVsbCwyKSIpCi0gICAgICAgIHNlbGYu
YXNzZXJ0RXF1YWwocmVzcC5yZWFkKCksICJQQSIpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwo
cmVzcC5yZWFkKCksIGIiUEEiKQogCi0gICAgQHB5dGVzdC5tYXJrLnhmYWlsKHN5cy52ZXJzaW9u
X2luZm8gPj0gKDMsKSwgcmVhc29uPSJ3cHRzZXJ2ZSBvbmx5IHdvcmtzIG9uIFB5MiIpCiAgICAg
ZGVmIHRlc3Rfd2l0aF9weXRob25fZnVuY19oYW5kbGVyKHNlbGYpOgogICAgICAgICBAd3B0c2Vy
dmUuaGFuZGxlcnMuaGFuZGxlcgogICAgICAgICBkZWYgaGFuZGxlcihyZXF1ZXN0LCByZXNwb25z
ZSk6CkBAIC0xNTMsOSArMTU4LDggQEAgY2xhc3MgVGVzdFBpcGVzV2l0aFZhcmlvdXNIYW5kbGVy
cyhUZXN0VXNpbmdTZXJ2ZXIpOgogICAgICAgICByb3V0ZSA9ICgiR0VUIiwgIi90ZXN0L3Rlc3Rf
cGlwZXNfMS8iLCBoYW5kbGVyKQogICAgICAgICBzZWxmLnNlcnZlci5yb3V0ZXIucmVnaXN0ZXIo
KnJvdXRlKQogICAgICAgICByZXNwID0gc2VsZi5yZXF1ZXN0KHJvdXRlWzFdLCBxdWVyeT0icGlw
ZT1zbGljZShudWxsLDIpIikKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChyZXNwLnJlYWQoKSwg
IlBBIikKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChyZXNwLnJlYWQoKSwgYiJQQSIpCiAKLSAg
ICBAcHl0ZXN0Lm1hcmsueGZhaWwoc3lzLnZlcnNpb25faW5mbyA+PSAoMywpLCByZWFzb249Indw
dHNlcnZlIG9ubHkgd29ya3Mgb24gUHkyIikKICAgICBkZWYgdGVzdF93aXRoX3B5dGhvbl9mdW5j
X2hhbmRsZXJfdXNpbmdfcmVzcG9uc2Vfd3JpdGVyKHNlbGYpOgogICAgICAgICBAd3B0c2VydmUu
aGFuZGxlcnMuaGFuZGxlcgogICAgICAgICBkZWYgaGFuZGxlcihyZXF1ZXN0LCByZXNwb25zZSk6
CkBAIC0xNjQsOSArMTY4LDggQEAgY2xhc3MgVGVzdFBpcGVzV2l0aFZhcmlvdXNIYW5kbGVycyhU
ZXN0VXNpbmdTZXJ2ZXIpOgogICAgICAgICBzZWxmLnNlcnZlci5yb3V0ZXIucmVnaXN0ZXIoKnJv
dXRlKQogICAgICAgICByZXNwID0gc2VsZi5yZXF1ZXN0KHJvdXRlWzFdLCBxdWVyeT0icGlwZT1z
bGljZShudWxsLDIpIikKICAgICAgICAgIyBzbGljZSBoYXMgbm90IGJlZW4gYXBwbGllZCB0byB0
aGUgcmVzcG9uc2UsIGJlY2F1c2UgcmVzcG9uc2Uud3JpdGVyIHdhcyB1c2VkLgotICAgICAgICBz
ZWxmLmFzc2VydEVxdWFsKHJlc3AucmVhZCgpLCAiUEFTUyIpCisgICAgICAgIHNlbGYuYXNzZXJ0
RXF1YWwocmVzcC5yZWFkKCksIGIiUEFTUyIpCiAKLSAgICBAcHl0ZXN0Lm1hcmsueGZhaWwoc3lz
LnZlcnNpb25faW5mbyA+PSAoMywpLCByZWFzb249IndwdHNlcnZlIG9ubHkgd29ya3Mgb24gUHky
IikKICAgICBkZWYgdGVzdF9oZWFkZXJfcGlwZV93aXRoX3B5dGhvbl9mdW5jX3VzaW5nX3Jlc3Bv
bnNlX3dyaXRlcihzZWxmKToKICAgICAgICAgQHdwdHNlcnZlLmhhbmRsZXJzLmhhbmRsZXIKICAg
ICAgICAgZGVmIGhhbmRsZXIocmVxdWVzdCwgcmVzcG9uc2UpOgpAQCAtMTc2LDkgKzE3OSw4IEBA
IGNsYXNzIFRlc3RQaXBlc1dpdGhWYXJpb3VzSGFuZGxlcnMoVGVzdFVzaW5nU2VydmVyKToKICAg
ICAgICAgcmVzcCA9IHNlbGYucmVxdWVzdChyb3V0ZVsxXSwgcXVlcnk9InBpcGU9aGVhZGVyKFgt
VEVTVCxGQUlMKSIpCiAgICAgICAgICMgaGVhZGVyIHBpcGUgd2FzIGlnbm9yZWQsIGJlY2F1c2Ug
cmVzcG9uc2Uud3JpdGVyIHdhcyB1c2VkLgogICAgICAgICBzZWxmLmFzc2VydEZhbHNlKHJlc3Au
aW5mbygpLmdldCgiWC1URVNUIikpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocmVzcC5yZWFk
KCksICJDT05URU5UIikKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChyZXNwLnJlYWQoKSwgYiJD
T05URU5UIikKIAotICAgIEBweXRlc3QubWFyay54ZmFpbChzeXMudmVyc2lvbl9pbmZvID49ICgz
LCksIHJlYXNvbj0id3B0c2VydmUgb25seSB3b3JrcyBvbiBQeTIiKQogICAgIGRlZiB0ZXN0X3dp
dGhfanNvbl9oYW5kbGVyKHNlbGYpOgogICAgICAgICBAd3B0c2VydmUuaGFuZGxlcnMuanNvbl9o
YW5kbGVyCiAgICAgICAgIGRlZiBoYW5kbGVyKHJlcXVlc3QsIHJlc3BvbnNlKToKQEAgLTE4Niwz
MiArMTg4LDI5IEBAIGNsYXNzIFRlc3RQaXBlc1dpdGhWYXJpb3VzSGFuZGxlcnMoVGVzdFVzaW5n
U2VydmVyKToKICAgICAgICAgcm91dGUgPSAoIkdFVCIsICIvdGVzdC90ZXN0X3BpcGVzXzIvIiwg
aGFuZGxlcikKICAgICAgICAgc2VsZi5zZXJ2ZXIucm91dGVyLnJlZ2lzdGVyKCpyb3V0ZSkKICAg
ICAgICAgcmVzcCA9IHNlbGYucmVxdWVzdChyb3V0ZVsxXSwgcXVlcnk9InBpcGU9c2xpY2UobnVs
bCwyKSIpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocmVzcC5yZWFkKCksICcieycpCisgICAg
ICAgIHNlbGYuYXNzZXJ0RXF1YWwocmVzcC5yZWFkKCksIGInInsnKQogCi0gICAgQHB5dGVzdC5t
YXJrLnhmYWlsKHN5cy52ZXJzaW9uX2luZm8gPj0gKDMsKSwgcmVhc29uPSJ3cHRzZXJ2ZSBvbmx5
IHdvcmtzIG9uIFB5MiIpCiAgICAgZGVmIHRlc3Rfc2xpY2Vfd2l0aF9hc19pc19oYW5kbGVyKHNl
bGYpOgogICAgICAgICByZXNwID0gc2VsZi5yZXF1ZXN0KCIvdGVzdC5hc2lzIiwgcXVlcnk9InBp
cGU9c2xpY2UobnVsbCwyKSIpCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoMjAyLCByZXNwLmdl
dGNvZGUoKSkKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgiR2lyYWZmZSIsIHJlc3AubXNnKQog
ICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCJQQVNTIiwgcmVzcC5pbmZvKClbIlgtVGVzdCJdKQog
ICAgICAgICAjIHNsaWNlIGhhcyBub3QgYmVlbiBhcHBsaWVkIHRvIHRoZSByZXNwb25zZSwgYmVj
YXVzZSByZXNwb25zZS53cml0ZXIgd2FzIHVzZWQuCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwo
IkNvbnRlbnQiLCByZXNwLnJlYWQoKSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChiIkNvbnRl
bnQiLCByZXNwLnJlYWQoKSkKIAotICAgIEBweXRlc3QubWFyay54ZmFpbChzeXMudmVyc2lvbl9p
bmZvID49ICgzLCksIHJlYXNvbj0id3B0c2VydmUgb25seSB3b3JrcyBvbiBQeTIiKQogICAgIGRl
ZiB0ZXN0X2hlYWRlcnNfd2l0aF9hc19pc19oYW5kbGVyKHNlbGYpOgogICAgICAgICByZXNwID0g
c2VsZi5yZXF1ZXN0KCIvdGVzdC5hc2lzIiwgcXVlcnk9InBpcGU9aGVhZGVyKFgtVEVTVCxGQUlM
KSIpCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoMjAyLCByZXNwLmdldGNvZGUoKSkKICAgICAg
ICAgc2VsZi5hc3NlcnRFcXVhbCgiR2lyYWZmZSIsIHJlc3AubXNnKQogICAgICAgICAjIGhlYWRl
ciBwaXBlIHdhcyBpZ25vcmVkLgogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCJQQVNTIiwgcmVz
cC5pbmZvKClbIlgtVEVTVCJdKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCJDb250ZW50Iiwg
cmVzcC5yZWFkKCkpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYiJDb250ZW50IiwgcmVzcC5y
ZWFkKCkpCiAKLSAgICBAcHl0ZXN0Lm1hcmsueGZhaWwoc3lzLnZlcnNpb25faW5mbyA+PSAoMywp
LCByZWFzb249IndwdHNlcnZlIG9ubHkgd29ya3Mgb24gUHkyIikKICAgICBkZWYgdGVzdF90cmlj
a2xlX3dpdGhfYXNfaXNfaGFuZGxlcihzZWxmKToKICAgICAgICAgdDAgPSB0aW1lLnRpbWUoKQog
ICAgICAgICByZXNwID0gc2VsZi5yZXF1ZXN0KCIvdGVzdC5hc2lzIiwgcXVlcnk9InBpcGU9dHJp
Y2tsZSgxOmQyOjU6ZDE6cjIpIikKICAgICAgICAgdDEgPSB0aW1lLnRpbWUoKQotICAgICAgICBz
ZWxmLmFzc2VydFRydWUoJ0NvbnRlbnQnIGluIHJlc3AucmVhZCgpKQorICAgICAgICBzZWxmLmFz
c2VydFRydWUoYidDb250ZW50JyBpbiByZXNwLnJlYWQoKSkKICAgICAgICAgc2VsZi5hc3NlcnRH
cmVhdGVyKDYsIHQxLXQwKQogCiBpZiBfX25hbWVfXyA9PSAnX19tYWluX18nOgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRz
ZXJ2ZS90ZXN0cy9mdW5jdGlvbmFsL3Rlc3RfcmVxdWVzdC5weSBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0c2VydmUvdGVzdHMvZnVuY3Rpb25h
bC90ZXN0X3JlcXVlc3QucHkKaW5kZXggOTdkNzVlYjcxMjg5YWRmNjQzYWIwNzNkZGM3NDBmMWYy
NGNmZmM3Ni4uZDk0NTgwMTQwZTIxZDViOGI5MDFkODRlMzU4OTVlNmEyYTZhNWVkZiAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93
cHRzZXJ2ZS90ZXN0cy9mdW5jdGlvbmFsL3Rlc3RfcmVxdWVzdC5weQorKysgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHNlcnZlL3Rlc3RzL2Z1
bmN0aW9uYWwvdGVzdF9yZXF1ZXN0LnB5CkBAIC0xLDUgKzEsNCBAQAotaW1wb3J0IHN5cwotCisj
IC0qLSBjb2Rpbmc6IHV0Zi04IC0qLQogaW1wb3J0IHB5dGVzdAogCiB3cHRzZXJ2ZSA9IHB5dGVz
dC5pbXBvcnRvcnNraXAoIndwdHNlcnZlIikKQEAgLTgsNyArNyw2IEBAIGZyb20gd3B0c2VydmUu
cmVxdWVzdCBpbXBvcnQgSW5wdXRGaWxlCiAKIAogY2xhc3MgVGVzdElucHV0RmlsZShUZXN0VXNp
bmdTZXJ2ZXIpOgotICAgIEBweXRlc3QubWFyay54ZmFpbChzeXMudmVyc2lvbl9pbmZvID49ICgz
LCksIHJlYXNvbj0id3B0c2VydmUgb25seSB3b3JrcyBvbiBQeTIiKQogICAgIGRlZiB0ZXN0X3Nl
ZWsoc2VsZik6CiAgICAgICAgIEB3cHRzZXJ2ZS5oYW5kbGVycy5oYW5kbGVyCiAgICAgICAgIGRl
ZiBoYW5kbGVyKHJlcXVlc3QsIHJlc3BvbnNlKToKQEAgLTE2LDI4ICsxNCwyNyBAQCBjbGFzcyBU
ZXN0SW5wdXRGaWxlKFRlc3RVc2luZ1NlcnZlcik6CiAgICAgICAgICAgICBmID0gcmVxdWVzdC5y
YXdfaW5wdXQKICAgICAgICAgICAgIGYuc2Vlayg1KQogICAgICAgICAgICAgcnYuYXBwZW5kKGYu
cmVhZCgyKSkKLSAgICAgICAgICAgIHJ2LmFwcGVuZChmLnRlbGwoKSkKKyAgICAgICAgICAgIHJ2
LmFwcGVuZChiIiVkIiAlIGYudGVsbCgpKQogICAgICAgICAgICAgZi5zZWVrKDApCiAgICAgICAg
ICAgICBydi5hcHBlbmQoZi5yZWFkbGluZSgpKQotICAgICAgICAgICAgcnYuYXBwZW5kKGYudGVs
bCgpKQorICAgICAgICAgICAgcnYuYXBwZW5kKGIiJWQiICUgZi50ZWxsKCkpCiAgICAgICAgICAg
ICBydi5hcHBlbmQoZi5yZWFkKC0xKSkKLSAgICAgICAgICAgIHJ2LmFwcGVuZChmLnRlbGwoKSkK
KyAgICAgICAgICAgIHJ2LmFwcGVuZChiIiVkIiAlIGYudGVsbCgpKQogICAgICAgICAgICAgZi5z
ZWVrKDApCiAgICAgICAgICAgICBydi5hcHBlbmQoZi5yZWFkKCkpCiAgICAgICAgICAgICBmLnNl
ZWsoMCkKICAgICAgICAgICAgIHJ2LmV4dGVuZChmLnJlYWRsaW5lcygpKQogCi0gICAgICAgICAg
ICByZXR1cm4gIiAiLmpvaW4oc3RyKGl0ZW0pIGZvciBpdGVtIGluIHJ2KQorICAgICAgICAgICAg
cmV0dXJuIGIiICIuam9pbihydikKIAogICAgICAgICByb3V0ZSA9ICgiUE9TVCIsICIvdGVzdC90
ZXN0X3NlZWsiLCBoYW5kbGVyKQogICAgICAgICBzZWxmLnNlcnZlci5yb3V0ZXIucmVnaXN0ZXIo
KnJvdXRlKQotICAgICAgICByZXNwID0gc2VsZi5yZXF1ZXN0KHJvdXRlWzFdLCBtZXRob2Q9IlBP
U1QiLCBib2R5PSIxMjM0NWFiXG5jZGVmIikKKyAgICAgICAgcmVzcCA9IHNlbGYucmVxdWVzdChy
b3V0ZVsxXSwgbWV0aG9kPSJQT1NUIiwgYm9keT1iIjEyMzQ1YWJcbmNkZWYiKQogICAgICAgICBz
ZWxmLmFzc2VydEVxdWFsKDIwMCwgcmVzcC5nZXRjb2RlKCkpCi0gICAgICAgIHNlbGYuYXNzZXJ0
RXF1YWwoWyJhYiIsICI3IiwgIjEyMzQ1YWJcbiIsICI4IiwgImNkZWYiLCAiMTIiLAotICAgICAg
ICAgICAgICAgICAgICAgICAgICAiMTIzNDVhYlxuY2RlZiIsICIxMjM0NWFiXG4iLCAiY2RlZiJd
LAotICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3AucmVhZCgpLnNwbGl0KCIgIikpCisgICAg
ICAgIHNlbGYuYXNzZXJ0RXF1YWwoW2IiYWIiLCBiIjciLCBiIjEyMzQ1YWJcbiIsIGIiOCIsIGIi
Y2RlZiIsIGIiMTIiLAorICAgICAgICAgICAgICAgICAgICAgICAgICBiIjEyMzQ1YWJcbmNkZWYi
LCBiIjEyMzQ1YWJcbiIsIGIiY2RlZiJdLAorICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3Au
cmVhZCgpLnNwbGl0KGIiICIpKQogCi0gICAgQHB5dGVzdC5tYXJrLnhmYWlsKHN5cy52ZXJzaW9u
X2luZm8gPj0gKDMsKSwgcmVhc29uPSJ3cHRzZXJ2ZSBvbmx5IHdvcmtzIG9uIFB5MiIpCiAgICAg
ZGVmIHRlc3Rfc2Vla19pbnB1dF9sb25nZXJfdGhhbl9idWZmZXIoc2VsZik6CiAgICAgICAgIEB3
cHRzZXJ2ZS5oYW5kbGVycy5oYW5kbGVyCiAgICAgICAgIGRlZiBoYW5kbGVyKHJlcXVlc3QsIHJl
c3BvbnNlKToKQEAgLTQ1LDExICs0MiwxMSBAQCBjbGFzcyBUZXN0SW5wdXRGaWxlKFRlc3RVc2lu
Z1NlcnZlcik6CiAgICAgICAgICAgICBmID0gcmVxdWVzdC5yYXdfaW5wdXQKICAgICAgICAgICAg
IGYuc2Vlayg1KQogICAgICAgICAgICAgcnYuYXBwZW5kKGYucmVhZCgyKSkKLSAgICAgICAgICAg
IHJ2LmFwcGVuZChmLnRlbGwoKSkKKyAgICAgICAgICAgIHJ2LmFwcGVuZChiIiVkIiAlIGYudGVs
bCgpKQogICAgICAgICAgICAgZi5zZWVrKDApCi0gICAgICAgICAgICBydi5hcHBlbmQoZi50ZWxs
KCkpCi0gICAgICAgICAgICBydi5hcHBlbmQoZi50ZWxsKCkpCi0gICAgICAgICAgICByZXR1cm4g
IiAiLmpvaW4oc3RyKGl0ZW0pIGZvciBpdGVtIGluIHJ2KQorICAgICAgICAgICAgcnYuYXBwZW5k
KGIiJWQiICUgZi50ZWxsKCkpCisgICAgICAgICAgICBydi5hcHBlbmQoYiIlZCIgJSBmLnRlbGwo
KSkKKyAgICAgICAgICAgIHJldHVybiBiIiAiLmpvaW4ocnYpCiAKICAgICAgICAgcm91dGUgPSAo
IlBPU1QiLCAiL3Rlc3QvdGVzdF9zZWVrIiwgaGFuZGxlcikKICAgICAgICAgc2VsZi5zZXJ2ZXIu
cm91dGVyLnJlZ2lzdGVyKCpyb3V0ZSkKQEAgLTU3LDEwICs1NCwxMCBAQCBjbGFzcyBUZXN0SW5w
dXRGaWxlKFRlc3RVc2luZ1NlcnZlcik6CiAgICAgICAgIG9sZF9tYXhfYnVmID0gSW5wdXRGaWxl
Lm1heF9idWZmZXJfc2l6ZQogICAgICAgICBJbnB1dEZpbGUubWF4X2J1ZmZlcl9zaXplID0gMTAK
ICAgICAgICAgdHJ5OgotICAgICAgICAgICAgcmVzcCA9IHNlbGYucmVxdWVzdChyb3V0ZVsxXSwg
bWV0aG9kPSJQT1NUIiwgYm9keT0iMSIqMjApCisgICAgICAgICAgICByZXNwID0gc2VsZi5yZXF1
ZXN0KHJvdXRlWzFdLCBtZXRob2Q9IlBPU1QiLCBib2R5PWIiMSIqMjApCiAgICAgICAgICAgICBz
ZWxmLmFzc2VydEVxdWFsKDIwMCwgcmVzcC5nZXRjb2RlKCkpCi0gICAgICAgICAgICBzZWxmLmFz
c2VydEVxdWFsKFsiMTEiLCAiNyIsICIwIiwgIjAiXSwKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICByZXNwLnJlYWQoKS5zcGxpdCgiICIpKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVh
bChbYiIxMSIsIGIiNyIsIGIiMCIsIGIiMCJdLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICByZXNwLnJlYWQoKS5zcGxpdChiIiAiKSkKICAgICAgICAgZmluYWxseToKICAgICAgICAgICAg
IElucHV0RmlsZS5tYXhfYnVmZmVyX3NpemUgPSBvbGRfbWF4X2J1ZgogCkBAIC0xMTcsMTYgKzEx
NCw0MCBAQCBjbGFzcyBUZXN0UmVxdWVzdChUZXN0VXNpbmdTZXJ2ZXIpOgogICAgICAgICByZXNw
ID0gc2VsZi5yZXF1ZXN0KCIvdGVzdC9zb21lX3JvdXRlIikKICAgICAgICAgc2VsZi5hc3NlcnRF
cXVhbChiInNvbWUgcm91dGUiLCByZXNwLnJlYWQoKSkKIAorICAgIGRlZiB0ZXN0X25vbl9hc2Np
aV9pbl9oZWFkZXJzKHNlbGYpOgorICAgICAgICBAd3B0c2VydmUuaGFuZGxlcnMuaGFuZGxlcgor
ICAgICAgICBkZWYgaGFuZGxlcihyZXF1ZXN0LCByZXNwb25zZSk6CisgICAgICAgICAgICByZXR1
cm4gcmVxdWVzdC5oZWFkZXJzWyJmb28iXQorCisgICAgICAgIHJvdXRlID0gKCJHRVQiLCAiL3Rl
c3QvdGVzdF91bmljb2RlX2luX2hlYWRlcnMiLCBoYW5kbGVyKQorICAgICAgICBzZWxmLnNlcnZl
ci5yb3V0ZXIucmVnaXN0ZXIoKnJvdXRlKQorCisgICAgICAgICMgVHJ5IHNvbWUgbm9uLUFTQ0lJ
IGNoYXJhY3RlcnMgYW5kIHRoZSBzZXJ2ZXIgc2hvdWxkbid0IGNyYXNoLgorICAgICAgICBlbmNv
ZGVkX3RleHQgPSB1IuS9oOWlvSIuZW5jb2RlKCJ1dGYtOCIpCisgICAgICAgIHJlc3AgPSBzZWxm
LnJlcXVlc3Qocm91dGVbMV0sIGhlYWRlcnM9eyJmb28iOiBlbmNvZGVkX3RleHR9KQorICAgICAg
ICBzZWxmLmFzc2VydEVxdWFsKGVuY29kZWRfdGV4dCwgcmVzcC5yZWFkKCkpCisKKyAgICAgICAg
IyBUcnkgYSBkaWZmZXJlbnQgZW5jb2RpbmcgZnJvbSB1dGYtOCB0byBtYWtlIHN1cmUgdGhlIGJp
bmFyeSB2YWx1ZSBpcworICAgICAgICAjIHJldHVybmVkIGluIHZlcmJhdGltLgorICAgICAgICBl
bmNvZGVkX3RleHQgPSB1IuOBqeOBhuOCgiIuZW5jb2RlKCJzaGlmdC1qaXMiKQorICAgICAgICBy
ZXNwID0gc2VsZi5yZXF1ZXN0KHJvdXRlWzFdLCBoZWFkZXJzPXsiZm9vIjogZW5jb2RlZF90ZXh0
fSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChlbmNvZGVkX3RleHQsIHJlc3AucmVhZCgpKQor
CiAKIGNsYXNzIFRlc3RBdXRoKFRlc3RVc2luZ1NlcnZlcik6Ci0gICAgQHB5dGVzdC5tYXJrLnhm
YWlsKHN5cy52ZXJzaW9uX2luZm8gPj0gKDMsKSwgcmVhc29uPSJ3cHRzZXJ2ZSBvbmx5IHdvcmtz
IG9uIFB5MiIpCiAgICAgZGVmIHRlc3RfYXV0aChzZWxmKToKICAgICAgICAgQHdwdHNlcnZlLmhh
bmRsZXJzLmhhbmRsZXIKICAgICAgICAgZGVmIGhhbmRsZXIocmVxdWVzdCwgcmVzcG9uc2UpOgot
ICAgICAgICAgICAgcmV0dXJuICIgIi5qb2luKChyZXF1ZXN0LmF1dGgudXNlcm5hbWUsIHJlcXVl
c3QuYXV0aC5wYXNzd29yZCkpCisgICAgICAgICAgICByZXR1cm4gYiIgIi5qb2luKChyZXF1ZXN0
LmF1dGgudXNlcm5hbWUsIHJlcXVlc3QuYXV0aC5wYXNzd29yZCkpCiAKICAgICAgICAgcm91dGUg
PSAoIkdFVCIsICIvdGVzdC90ZXN0X2F1dGgiLCBoYW5kbGVyKQogICAgICAgICBzZWxmLnNlcnZl
ci5yb3V0ZXIucmVnaXN0ZXIoKnJvdXRlKQotICAgICAgICByZXNwID0gc2VsZi5yZXF1ZXN0KHJv
dXRlWzFdLCBhdXRoPSgidGVzdCIsICJQQVNTIikpCisKKyAgICAgICAgcmVzcCA9IHNlbGYucmVx
dWVzdChyb3V0ZVsxXSwgYXV0aD0oYiJ0ZXN0IiwgYiJQQVNTIikpCisgICAgICAgIHNlbGYuYXNz
ZXJ0RXF1YWwoMjAwLCByZXNwLmdldGNvZGUoKSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChb
YiJ0ZXN0IiwgYiJQQVNTIl0sIHJlc3AucmVhZCgpLnNwbGl0KGIiICIpKQorCisgICAgICAgIGVu
Y29kZWRfdGV4dCA9IHUi44Gp44GG44KCIi5lbmNvZGUoInNoaWZ0LWppcyIpCisgICAgICAgIHJl
c3AgPSBzZWxmLnJlcXVlc3Qocm91dGVbMV0sIGF1dGg9KGVuY29kZWRfdGV4dCwgZW5jb2RlZF90
ZXh0KSkKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgyMDAsIHJlc3AuZ2V0Y29kZSgpKQotICAg
ICAgICBzZWxmLmFzc2VydEVxdWFsKFsidGVzdCIsICJQQVNTIl0sIHJlc3AucmVhZCgpLnNwbGl0
KCIgIikpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoW2VuY29kZWRfdGV4dCwgZW5jb2RlZF90
ZXh0XSwgcmVzcC5yZWFkKCkuc3BsaXQoYiIgIikpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHNlcnZlL3Rlc3RzL2Z1bmN0
aW9uYWwvdGVzdF9yZXNwb25zZS5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvd3B0c2VydmUvdGVzdHMvZnVuY3Rpb25hbC90ZXN0X3Jlc3BvbnNl
LnB5CmluZGV4IGRhZjhlNmVkMDAyODUwMmYwODc2MTU5Y2JkYTM3ZTlhYzZiNmM5OWMuLmQ4ZDY0
ZDU0Y2NjNzhhM2M2ZGViYTIxYjczNDI4ZTcxYWViMWJlNjAgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0c2VydmUvdGVzdHMv
ZnVuY3Rpb25hbC90ZXN0X3Jlc3BvbnNlLnB5CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0c2VydmUvdGVzdHMvZnVuY3Rpb25hbC90ZXN0
X3Jlc3BvbnNlLnB5CkBAIC0yLDE0ICsyLDE0IEBAIGltcG9ydCBzeXMKIGltcG9ydCBvcwogaW1w
b3J0IHVuaXR0ZXN0CiBpbXBvcnQganNvbgotZnJvbSB0eXBlcyBpbXBvcnQgTWV0aG9kVHlwZQog
ZnJvbSBpbyBpbXBvcnQgQnl0ZXNJTwogCiBpbXBvcnQgcHl0ZXN0Citmcm9tIHNpeCBpbXBvcnQg
Y3JlYXRlX2JvdW5kX21ldGhvZAogCiB3cHRzZXJ2ZSA9IHB5dGVzdC5pbXBvcnRvcnNraXAoIndw
dHNlcnZlIikKIGZyb20gLmJhc2UgaW1wb3J0IFRlc3RVc2luZ1NlcnZlciwgVGVzdFVzaW5nSDJT
ZXJ2ZXIsIGRvY19yb290Ci1mcm9tIGh5cGVyLmgyLmV4Y2VwdGlvbnMgaW1wb3J0IFByb3RvY29s
RXJyb3IKK2Zyb20gaDIuZXhjZXB0aW9ucyBpbXBvcnQgUHJvdG9jb2xFcnJvcgogCiBkZWYgc2Vu
ZF9ib2R5X2FzX2hlYWRlcihzZWxmKToKICAgICBpZiBzZWxmLl9yZXNwb25zZS5hZGRfcmVxdWly
ZWRfaGVhZGVyczoKQEAgLTE5LDEzICsxOSwxMSBAQCBkZWYgc2VuZF9ib2R5X2FzX2hlYWRlcihz
ZWxmKToKICAgICBzZWxmLl9oZWFkZXJzX2NvbXBsZXRlID0gVHJ1ZQogCiBjbGFzcyBUZXN0UmVz
cG9uc2UoVGVzdFVzaW5nU2VydmVyKToKLSAgICBAcHl0ZXN0Lm1hcmsueGZhaWwoc3lzLnZlcnNp
b25faW5mbyA+PSAoMywpLCByZWFzb249IndwdHNlcnZlIG9ubHkgd29ya3Mgb24gUHkyIikKICAg
ICBkZWYgdGVzdF9oZWFkX3dpdGhvdXRfYm9keShzZWxmKToKICAgICAgICAgQHdwdHNlcnZlLmhh
bmRsZXJzLmhhbmRsZXIKICAgICAgICAgZGVmIGhhbmRsZXIocmVxdWVzdCwgcmVzcG9uc2UpOgot
ICAgICAgICAgICAgcmVzcG9uc2Uud3JpdGVyLmVuZF9oZWFkZXJzID0gTWV0aG9kVHlwZShzZW5k
X2JvZHlfYXNfaGVhZGVyLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICByZXNwb25zZS53cml0ZXIsCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdwdHNlcnZlLnJlc3BvbnNlLlJlc3BvbnNlV3Jp
dGVyKQorICAgICAgICAgICAgcmVzcG9uc2Uud3JpdGVyLmVuZF9oZWFkZXJzID0gY3JlYXRlX2Jv
dW5kX21ldGhvZChzZW5kX2JvZHlfYXNfaGVhZGVyLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXNwb25zZS53cml0ZXIpCiAg
ICAgICAgICAgICByZXR1cm4gWygiWC1UZXN0IiwgIlRFU1QiKV0sICJib2R5XHJcbiIKIAogICAg
ICAgICByb3V0ZSA9ICgiR0VUIiwgIi90ZXN0L3Rlc3RfaGVhZF93aXRob3V0X2JvZHkiLCBoYW5k
bGVyKQpAQCAtMzUsMTQgKzMzLDEyIEBAIGNsYXNzIFRlc3RSZXNwb25zZShUZXN0VXNpbmdTZXJ2
ZXIpOgogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCJURVNUIiwgcmVzcC5pbmZvKClbJ3gtVGVz
dCddKQogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCIiLCByZXNwLmluZm8oKVsneC1ib2R5J10p
CiAKLSAgICBAcHl0ZXN0Lm1hcmsueGZhaWwoc3lzLnZlcnNpb25faW5mbyA+PSAoMywpLCByZWFz
b249IndwdHNlcnZlIG9ubHkgd29ya3Mgb24gUHkyIikKICAgICBkZWYgdGVzdF9oZWFkX3dpdGhf
Ym9keShzZWxmKToKICAgICAgICAgQHdwdHNlcnZlLmhhbmRsZXJzLmhhbmRsZXIKICAgICAgICAg
ZGVmIGhhbmRsZXIocmVxdWVzdCwgcmVzcG9uc2UpOgogICAgICAgICAgICAgcmVzcG9uc2Uuc2Vu
ZF9ib2R5X2Zvcl9oZWFkX3JlcXVlc3QgPSBUcnVlCi0gICAgICAgICAgICByZXNwb25zZS53cml0
ZXIuZW5kX2hlYWRlcnMgPSBNZXRob2RUeXBlKHNlbmRfYm9keV9hc19oZWFkZXIsCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3BvbnNlLndy
aXRlciwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgd3B0c2VydmUucmVzcG9uc2UuUmVzcG9uc2VXcml0ZXIpCisgICAgICAgICAgICByZXNwb25z
ZS53cml0ZXIuZW5kX2hlYWRlcnMgPSBjcmVhdGVfYm91bmRfbWV0aG9kKHNlbmRfYm9keV9hc19o
ZWFkZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHJlc3BvbnNlLndyaXRlcikKICAgICAgICAgICAgIHJldHVybiBbKCJYLVRl
c3QiLCAiVEVTVCIpXSwgImJvZHlcclxuIgogCiAgICAgICAgIHJvdXRlID0gKCJHRVQiLCAiL3Rl
c3QvdGVzdF9oZWFkX3dpdGhfYm9keSIsIGhhbmRsZXIpCkBAIC0xNjQsNyArMTYwLDcgQEAgY2xh
c3MgVGVzdFJlc3BvbnNlKFRlc3RVc2luZ1NlcnZlcik6CiAgICAgZGVmIHRlc3Rfd3JpdGVfcmF3
X25vbmUoc2VsZik6CiAgICAgICAgIEB3cHRzZXJ2ZS5oYW5kbGVycy5oYW5kbGVyCiAgICAgICAg
IGRlZiBoYW5kbGVyKHJlcXVlc3QsIHJlc3BvbnNlKToKLSAgICAgICAgICAgIHdpdGggcHl0ZXN0
LnJhaXNlcyhWYWx1ZUVycm9yLCBtZXNzYWdlPSJkYXRhIGNhbm5vdCBiZSBOb25lIik6CisgICAg
ICAgICAgICB3aXRoIHB5dGVzdC5yYWlzZXMoVmFsdWVFcnJvcik6CiAgICAgICAgICAgICAgICAg
cmVzcG9uc2Uud3JpdGVyLndyaXRlX3Jhd19jb250ZW50KE5vbmUpCiAKICAgICAgICAgcm91dGUg
PSAoIkdFVCIsICIvdGVzdC90ZXN0X3dyaXRlX3Jhd19jb250ZW50IiwgaGFuZGxlcikKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
d3B0c2VydmUvdGVzdHMvZnVuY3Rpb25hbC90ZXN0X3NlcnZlci5weSBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0c2VydmUvdGVzdHMvZnVuY3Rp
b25hbC90ZXN0X3NlcnZlci5weQppbmRleCA1MTFjODZmMzJjNTRhYjcwNGU5ZGNhMmJhMTE0NTJm
MjQxNjFlMDVmLi41MTMzMWE2N2VmYTg4ZDc4ZWE1NjEzMGYwMGU1NDIwNjMzYjZhYWM2IDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3dwdHNlcnZlL3Rlc3RzL2Z1bmN0aW9uYWwvdGVzdF9zZXJ2ZXIucHkKKysrIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRzZXJ2ZS90ZXN0cy9m
dW5jdGlvbmFsL3Rlc3Rfc2VydmVyLnB5CkBAIC00LDcgKzQsNyBAQCBpbXBvcnQgcHl0ZXN0CiBm
cm9tIHNpeC5tb3Zlcy51cmxsaWIuZXJyb3IgaW1wb3J0IEhUVFBFcnJvcgogCiB3cHRzZXJ2ZSA9
IHB5dGVzdC5pbXBvcnRvcnNraXAoIndwdHNlcnZlIikKLWZyb20gLmJhc2UgaW1wb3J0IFRlc3RV
c2luZ1NlcnZlcgorZnJvbSAuYmFzZSBpbXBvcnQgVGVzdFVzaW5nU2VydmVyLCBUZXN0VXNpbmdI
MlNlcnZlcgogCiAKIGNsYXNzIFRlc3RGaWxlSGFuZGxlcihUZXN0VXNpbmdTZXJ2ZXIpOgpAQCAt
NDAsNSArNDAsNTEgQEAgY2xhc3MgVGVzdFJlcXVlc3RIYW5kbGVyKFRlc3RVc2luZ1NlcnZlcik6
CiAKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjbS5leGNlcHRpb24uY29kZSwgNTAwKQogCitj
bGFzcyBUZXN0RmlsZUhhbmRsZXJIMihUZXN0VXNpbmdIMlNlcnZlcik6CisgICAgZGVmIHRlc3Rf
bm90X2hhbmRsZWQoc2VsZik6CisgICAgICAgIHNlbGYuY29ubi5yZXF1ZXN0KCJHRVQiLCAiL25v
dF9leGlzdGluZyIpCisgICAgICAgIHJlc3AgPSBzZWxmLmNvbm4uZ2V0X3Jlc3BvbnNlKCkKKwor
ICAgICAgICBhc3NlcnQgcmVzcC5zdGF0dXMgPT0gNDA0CisKK2NsYXNzIFRlc3RSZXdyaXRlckgy
KFRlc3RVc2luZ0gyU2VydmVyKToKKyAgICBkZWYgdGVzdF9yZXdyaXRlKHNlbGYpOgorICAgICAg
ICBAd3B0c2VydmUuaGFuZGxlcnMuaGFuZGxlcgorICAgICAgICBkZWYgaGFuZGxlcihyZXF1ZXN0
LCByZXNwb25zZSk6CisgICAgICAgICAgICByZXR1cm4gcmVxdWVzdC5yZXF1ZXN0X3BhdGgKKwor
ICAgICAgICByb3V0ZSA9ICgiR0VUIiwgIi90ZXN0L3Jld3JpdHRlbiIsIGhhbmRsZXIpCisgICAg
ICAgIHNlbGYuc2VydmVyLnJld3JpdGVyLnJlZ2lzdGVyKCJHRVQiLCAiL3Rlc3Qvb3JpZ2luYWwi
LCByb3V0ZVsxXSkKKyAgICAgICAgc2VsZi5zZXJ2ZXIucm91dGVyLnJlZ2lzdGVyKCpyb3V0ZSkK
KyAgICAgICAgc2VsZi5jb25uLnJlcXVlc3QoIkdFVCIsICIvdGVzdC9vcmlnaW5hbCIpCisgICAg
ICAgIHJlc3AgPSBzZWxmLmNvbm4uZ2V0X3Jlc3BvbnNlKCkKKyAgICAgICAgYXNzZXJ0IHJlc3Au
c3RhdHVzID09IDIwMAorICAgICAgICBhc3NlcnQgcmVzcC5yZWFkKCkgPT0gYiIvdGVzdC9yZXdy
aXR0ZW4iCisKK2NsYXNzIFRlc3RSZXF1ZXN0SGFuZGxlckgyKFRlc3RVc2luZ0gyU2VydmVyKToK
KyAgICBkZWYgdGVzdF9leGNlcHRpb24oc2VsZik6CisgICAgICAgIEB3cHRzZXJ2ZS5oYW5kbGVy
cy5oYW5kbGVyCisgICAgICAgIGRlZiBoYW5kbGVyKHJlcXVlc3QsIHJlc3BvbnNlKToKKyAgICAg
ICAgICAgIHJhaXNlIEV4Y2VwdGlvbgorCisgICAgICAgIHJvdXRlID0gKCJHRVQiLCAiL3Rlc3Qv
cmFpc2VzIiwgaGFuZGxlcikKKyAgICAgICAgc2VsZi5zZXJ2ZXIucm91dGVyLnJlZ2lzdGVyKCpy
b3V0ZSkKKyAgICAgICAgc2VsZi5jb25uLnJlcXVlc3QoIkdFVCIsICIvdGVzdC9yYWlzZXMiKQor
ICAgICAgICByZXNwID0gc2VsZi5jb25uLmdldF9yZXNwb25zZSgpCisKKyAgICAgICAgYXNzZXJ0
IHJlc3Auc3RhdHVzID09IDUwMAorCisgICAgZGVmIHRlc3RfZnJhbWVfaGFuZGxlcl9leGNlcHRp
b24oc2VsZik6CisgICAgICAgIGNsYXNzIGhhbmRsZXJfY2xzOgorICAgICAgICAgICAgZGVmIGZy
YW1lX2hhbmRsZXIoc2VsZiwgcmVxdWVzdCk6CisgICAgICAgICAgICAgICAgcmFpc2UgRXhjZXB0
aW9uCisKKyAgICAgICAgcm91dGUgPSAoIkdFVCIsICIvdGVzdC9yYWlzZXMiLCBoYW5kbGVyX2Ns
cygpKQorICAgICAgICBzZWxmLnNlcnZlci5yb3V0ZXIucmVnaXN0ZXIoKnJvdXRlKQorICAgICAg
ICBzZWxmLmNvbm4ucmVxdWVzdCgiR0VUIiwgIi90ZXN0L3JhaXNlcyIpCisgICAgICAgIHJlc3Ag
PSBzZWxmLmNvbm4uZ2V0X3Jlc3BvbnNlKCkKKworICAgICAgICBhc3NlcnQgcmVzcC5zdGF0dXMg
PT0gNTAwCisKIGlmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CiAgICAgdW5pdHRlc3QubWFpbigp
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3dwdHNlcnZlL3Rlc3RzL2Z1bmN0aW9uYWwvdzNjLWltcG9ydC5sb2cgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHNlcnZlL3Rlc3Rz
L2Z1bmN0aW9uYWwvdzNjLWltcG9ydC5sb2cKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDM4MDY1MjA1N2U5ZTMzZjRiMDNkZmIyMjYwYzNkMzk0ZGQ3ZTMyZjcuLjAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRzZXJ2ZS90ZXN0cy9mdW5jdGlvbmFsL3czYy1p
bXBvcnQubG9nCisrKyAvZGV2L251bGwKQEAgLTEsMjYgKzAsMCBAQAotVGhlIHRlc3RzIGluIHRo
aXMgZGlyZWN0b3J5IHdlcmUgaW1wb3J0ZWQgZnJvbSB0aGUgVzNDIHJlcG9zaXRvcnkuCi1EbyBO
T1QgbW9kaWZ5IHRoZXNlIHRlc3RzIGRpcmVjdGx5IGluIFdlYktpdC4KLUluc3RlYWQsIGNyZWF0
ZSBhIHB1bGwgcmVxdWVzdCBvbiB0aGUgV1BUIGdpdGh1YjoKLQlodHRwczovL2dpdGh1Yi5jb20v
d2ViLXBsYXRmb3JtLXRlc3RzL3dwdAotCi1UaGVuIHJ1biB0aGUgVG9vbHMvU2NyaXB0cy9pbXBv
cnQtdzNjLXRlc3RzIGluIFdlYktpdCB0byByZWltcG9ydAotCi1EbyBOT1QgbW9kaWZ5IG9yIHJl
bW92ZSB0aGlzIGZpbGUuCi0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotUHJvcGVydGllcyByZXF1aXJpbmcg
dmVuZG9yIHByZWZpeGVzOgotTm9uZQotUHJvcGVydHkgdmFsdWVzIHJlcXVpcmluZyB2ZW5kb3Ig
cHJlZml4ZXM6Ci1Ob25lCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLUxpc3Qgb2YgZmlsZXM6Ci0vTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRzZXJ2ZS90ZXN0
cy9mdW5jdGlvbmFsL19faW5pdF9fLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy93cHRzZXJ2ZS90ZXN0cy9mdW5jdGlvbmFsL2Jhc2UucHkKLS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHNlcnZl
L3Rlc3RzL2Z1bmN0aW9uYWwvdGVzdF9jb29raWVzLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRzZXJ2ZS90ZXN0cy9mdW5jdGlvbmFsL3Rl
c3RfaGFuZGxlcnMucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3dwdHNlcnZlL3Rlc3RzL2Z1bmN0aW9uYWwvdGVzdF9pbnB1dF9maWxlLnB5Ci0v
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRzZXJ2
ZS90ZXN0cy9mdW5jdGlvbmFsL3Rlc3RfcGlwZXMucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHNlcnZlL3Rlc3RzL2Z1bmN0aW9uYWwvdGVz
dF9yZXF1ZXN0LnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy93cHRzZXJ2ZS90ZXN0cy9mdW5jdGlvbmFsL3Rlc3RfcmVzcG9uc2UucHkKLS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHNlcnZlL3Rl
c3RzL2Z1bmN0aW9uYWwvdGVzdF9zZXJ2ZXIucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHNlcnZlL3Rlc3RzL2Z1bmN0aW9uYWwvdGVzdF9z
dGFzaC5weQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy93cHRzZXJ2ZS90ZXN0cy90ZXN0X2NvbmZpZy5weSBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0c2VydmUvdGVzdHMvdGVz
dF9jb25maWcucHkKaW5kZXggOTcxMDM0MjY2NGY5NGVhMGFjNzgxNTliMGQ4NTc4ZGZiYTU1Mjgy
MC4uODUyNzFjM2E0YjMyNDcwNTY4OGY1MDViNTM0OTliYWI4M2UxMzNiNCAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRzZXJ2
ZS90ZXN0cy90ZXN0X2NvbmZpZy5weQorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHNlcnZlL3Rlc3RzL3Rlc3RfY29uZmlnLnB5CkBAIC0x
LDUgKzEsOCBAQAoraW1wb3J0IGpzb24KIGltcG9ydCBsb2dnaW5nCiBpbXBvcnQgcGlja2xlCisK
K2Zyb20gZGlzdHV0aWxzLnNwYXduIGltcG9ydCBmaW5kX2V4ZWN1dGFibGUKIGZyb20gbG9nZ2lu
ZyBpbXBvcnQgaGFuZGxlcnMKIAogaW1wb3J0IHB5dGVzdApAQCAtNDEsNiArNDQsMTYgQEAgZGVm
IHRlc3RfbG9nZ2VyX3ByZXNlcnZlZCgpOgogICAgICAgICBhc3NlcnQgYy5sb2dnZXIgaXMgbG9n
Z2VyCiAKIAorZGVmIHRlc3RfYXNfZGljdCgpOgorICAgIHdpdGggY29uZmlnLkNvbmZpZ0J1aWxk
ZXIoKSBhcyBjOgorICAgICAgICBhc3NlcnQgYy5hc19kaWN0KCkgaXMgbm90IE5vbmUKKworCitk
ZWYgdGVzdF9hc19kaWN0X2lzX2pzb24oKToKKyAgICB3aXRoIGNvbmZpZy5Db25maWdCdWlsZGVy
KCkgYXMgYzoKKyAgICAgICAgYXNzZXJ0IGpzb24uZHVtcHMoYy5hc19kaWN0KCkpIGlzIG5vdCBO
b25lCisKKwogZGVmIHRlc3RfaW5pdF9iYXNpY19wcm9wKCk6CiAgICAgd2l0aCBjb25maWcuQ29u
ZmlnQnVpbGRlcihicm93c2VyX2hvc3Q9ImZvby5iYXIiKSBhcyBjOgogICAgICAgICBhc3NlcnQg
Yy5icm93c2VyX2hvc3QgPT0gImZvby5iYXIiCkBAIC0xNzYsNiArMTg5LDggQEAgZGVmIHRlc3Rf
cG9ydHNfbm9fc3NsKCk6CiAgICAgICAgIGFzc2VydCBwb3J0c1sid3MiXSA9PSBbMTAwM10KIAog
CitAcHl0ZXN0Lm1hcmsuc2tpcGlmKGZpbmRfZXhlY3V0YWJsZSgib3BlbnNzbCIpIGlzIE5vbmUs
CisgICAgICAgICAgICAgICAgICAgIHJlYXNvbj0icmVxdWlyZXMgT3BlblNTTCIpCiBkZWYgdGVz
dF9wb3J0c19vcGVuc3NsKCk6CiAgICAgd2l0aCBjb25maWcuQ29uZmlnQnVpbGRlcihwb3J0cz17
Imh0dHAiOiBbMTAwMV0sICJodHRwcyI6IFsxMDAyXSwgIndzIjogWzEwMDNdLCAid3NzIjogWzEw
MDRdfSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNzbD17InR5cGUiOiAib3BlbnNz
bCJ9KSBhcyBjOgpAQCAtMzU5LDkgKzM3NCw5IEBAIGRlZiB0ZXN0X3NzbF9lbnZfb3BlbnNzbCgp
OgogCiAKIGRlZiB0ZXN0X3NzbF9lbnZfYm9ndXMoKToKLSAgICAgICAgd2l0aCBweXRlc3QucmFp
c2VzKFZhbHVlRXJyb3IpOgotICAgICAgICAgICAgd2l0aCBjb25maWcuQ29uZmlnQnVpbGRlcihz
c2w9eyJ0eXBlIjogImZvb2JhciJ9KToKLSAgICAgICAgICAgICAgICBwYXNzCisgICAgd2l0aCBw
eXRlc3QucmFpc2VzKFZhbHVlRXJyb3IpOgorICAgICAgICB3aXRoIGNvbmZpZy5Db25maWdCdWls
ZGVyKHNzbD17InR5cGUiOiAiZm9vYmFyIn0pOgorICAgICAgICAgICAgcGFzcwogCiAKIGRlZiB0
ZXN0X3BpY2tsZSgpOgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy93cHRzZXJ2ZS90ZXN0cy90ZXN0X3N0YXNoLnB5IGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRzZXJ2ZS90ZXN0
cy90ZXN0X3N0YXNoLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjFlYTk5YzA2MDlmNWJlZDg1OTY1MTI4NGViM2Rh
ODBhNGNkZGY3MzcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHNlcnZlL3Rlc3RzL3Rlc3Rfc3Rhc2gucHkKQEAg
LTAsMCArMSwxMzYgQEAKK2ltcG9ydCBtdWx0aXByb2Nlc3NpbmcKK2ltcG9ydCBzeXMKK2ltcG9y
dCB0aHJlYWRpbmcKK2Zyb20gbXVsdGlwcm9jZXNzaW5nLm1hbmFnZXJzIGltcG9ydCBCYXNlTWFu
YWdlcgorCitpbXBvcnQgcHl0ZXN0CisKK1N0YXNoID0gcHl0ZXN0LmltcG9ydG9yc2tpcCgid3B0
c2VydmUuc3Rhc2giKS5TdGFzaAorCitAcHl0ZXN0LmZpeHR1cmUoKQorZGVmIGFkZF9jbGVhbnVw
KCk6CisgICAgZm5zID0gW10KKworICAgIGRlZiBhZGQoZm4pOgorICAgICAgICBmbnMuYXBwZW5k
KGZuKQorCisgICAgeWllbGQgYWRkCisKKyAgICBmb3IgZm4gaW4gZm5zOgorICAgICAgICBmbigp
CisKK2RlZiBydW4ocHJvY2Vzc19xdWV1ZSwgcmVxdWVzdF9sb2NrLCByZXNwb25zZV9sb2NrKToK
KyAgICAiIiJDcmVhdGUgdHdvIFN0YXNoIGluc3RhbmNlcyBpbiBwYXJhbGxlbCB0aHJlYWRzLiBV
c2UgdGhlIHByb3ZpZGVkIGxvY2tzCisgICAgdG8gZW5zdXJlIHRoZSBmaXJzdCB0aHJlYWQgaXMg
YWN0aXZlbHkgZXN0YWJsaXNoaW5nIGFuIGludGVycHJvY2VzcworICAgIGNvbW11bmljYXRpb24g
Y2hhbm5lbCBhdCB0aGUgbW9tZW50IHRoZSBzZWNvbmQgdGhyZWFkIGV4ZWN1dGVzLiIiIgorCisg
ICAgZGVmIHRhcmdldCh0aHJlYWRfcXVldWUpOgorICAgICAgICBzdGFzaCA9IFN0YXNoKCIvIiwg
KCJsb2NhbGhvc3QiLCA0NTQzKSwgYiJzb21lIGtleSIpCisKKyAgICAgICAgIyBUaGUgYGxvY2tg
IHByb3BlcnR5IG9mIHRoZSBTdGFzaCBpbnN0YW5jZSBzaG91bGQgYWx3YXlzIGJlIHNldAorICAg
ICAgICAjIGltbWVkaWF0ZWx5IGZvbGxvd2luZyBpbml0aWFsaXphdGlvbi4gVGhlc2UgdmFsdWVz
IGFyZSBhc3NlcnRlZCBpbgorICAgICAgICAjIHRoZSBhY3RpdmUgdGVzdC4KKyAgICAgICAgdGhy
ZWFkX3F1ZXVlLnB1dChzdGFzaC5sb2NrIGlzIE5vbmUpCisKKyAgICB0aHJlYWRfcXVldWUgPSBt
dWx0aXByb2Nlc3NpbmcuUXVldWUoKQorICAgIGZpcnN0ID0gdGhyZWFkaW5nLlRocmVhZCh0YXJn
ZXQ9dGFyZ2V0LCBhcmdzPSh0aHJlYWRfcXVldWUsKSkKKyAgICBzZWNvbmQgPSB0aHJlYWRpbmcu
VGhyZWFkKHRhcmdldD10YXJnZXQsIGFyZ3M9KHRocmVhZF9xdWV1ZSwpKQorCisgICAgcmVxdWVz
dF9sb2NrLmFjcXVpcmUoKQorICAgIHJlc3BvbnNlX2xvY2suYWNxdWlyZSgpCisgICAgZmlyc3Qu
c3RhcnQoKQorCisgICAgcmVxdWVzdF9sb2NrLmFjcXVpcmUoKQorCisgICAgIyBBdCB0aGlzIG1v
bWVudCwgdGhlIGBmaXJzdGAgdGhyZWFkIGlzIHdhaXRpbmcgZm9yIGEgcHJveGllZCBvYmplY3Qu
CisgICAgIyBDcmVhdGUgYSBzZWNvbmQgdGhyZWFkIGluIG9yZGVyIHRvIGluc3BlY3QgdGhlIGJl
aGF2aW9yIG9mIHRoZSBTdGFzaAorICAgICMgY29uc3RydWN0b3IgYXQgdGhpcyBtb21lbnQuCisK
KyAgICBzZWNvbmQuc3RhcnQoKQorCisgICAgIyBBbGxvdyB0aGUgYGZpcnN0YCB0aHJlYWQgdG8g
cHJvY2VlZAorCisgICAgcmVzcG9uc2VfbG9jay5yZWxlYXNlKCkKKworICAgICMgV2FpdCBmb3Ig
Ym90aCB0aHJlYWRzIHRvIGNvbXBsZXRlIGFuZCByZXBvcnQgdGhlaXIgc3RhdGV0byB0aGUgdGVz
dAorICAgIHByb2Nlc3NfcXVldWUucHV0KHRocmVhZF9xdWV1ZS5nZXQoKSkKKyAgICBwcm9jZXNz
X3F1ZXVlLnB1dCh0aHJlYWRfcXVldWUuZ2V0KCkpCisKKworQHB5dGVzdC5tYXJrLnhmYWlsKHN5
cy5wbGF0Zm9ybSA9PSAid2luMzIiLAorICAgICAgICAgICAgICAgICAgIHJlYXNvbj0iaHR0cHM6
Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQvaXNzdWVzLzE2OTM4IikKK2RlZiB0
ZXN0X2RlbGF5ZWRfbG9jayhhZGRfY2xlYW51cCk6CisgICAgIiIiRW5zdXJlIHRoYXQgZGVsYXlz
IGluIHByb3hpZWQgTG9jayByZXRyaWV2YWwgZG8gbm90IGludGVyZmVyZSB3aXRoCisgICAgaW5p
dGlhbGl6YXRpb24gaW4gcGFyYWxsZWwgdGhyZWFkcy4iIiIKKworICAgIGNsYXNzIFNsb3dMb2Nr
KEJhc2VNYW5hZ2VyKToKKyAgICAgICAgcGFzcworCisgICAgcmVxdWVzdF9sb2NrID0gbXVsdGlw
cm9jZXNzaW5nLkxvY2soKQorICAgIHJlc3BvbnNlX2xvY2sgPSBtdWx0aXByb2Nlc3NpbmcuTG9j
aygpCisKKyAgICBxdWV1ZSA9IG11bHRpcHJvY2Vzc2luZy5RdWV1ZSgpCisKKyAgICBkZWYgbXV0
ZXhfbG9ja19yZXF1ZXN0KCk6CisgICAgICAgICIiIlRoaXMgcmVxdWVzdCBoYW5kbGVyIGFsbG93
cyB0aGUgY2FsbGVyIHRvIGRlbGF5IGV4ZWN1dGlvbiBvZiBhCisgICAgICAgIHRocmVhZCB3aGlj
aCBoYXMgcmVxdWVzdGVkIGEgcHJveGllZCByZXByZXNlbnRhdGlvbiBvZiB0aGUgYGxvY2tgCisg
ICAgICAgIHByb3BlcnR5LCBzaW11bGF0aW5nIGEgInNsb3ciIGludGVycHJvY2VzcyBjb21tdW5p
Y2F0aW9uIGNoYW5uZWwuIiIiCisKKyAgICAgICAgcmVxdWVzdF9sb2NrLnJlbGVhc2UoKQorICAg
ICAgICByZXNwb25zZV9sb2NrLmFjcXVpcmUoKQorICAgICAgICByZXR1cm4gdGhyZWFkaW5nLkxv
Y2soKQorCisgICAgU2xvd0xvY2sucmVnaXN0ZXIoImdldF9kaWN0IiwgY2FsbGFibGU9bGFtYmRh
OiB7fSkKKyAgICBTbG93TG9jay5yZWdpc3RlcigiTG9jayIsIGNhbGxhYmxlPW11dGV4X2xvY2tf
cmVxdWVzdCkKKworICAgIHNsb3dsb2NrID0gU2xvd0xvY2soKCJsb2NhbGhvc3QiLCA0NTQzKSwg
YiJzb21lIGtleSIpCisgICAgc2xvd2xvY2suc3RhcnQoKQorICAgIGFkZF9jbGVhbnVwKGxhbWJk
YTogc2xvd2xvY2suc2h1dGRvd24oKSkKKworICAgIHBhcmFsbGVsID0gbXVsdGlwcm9jZXNzaW5n
LlByb2Nlc3ModGFyZ2V0PXJ1biwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGFyZ3M9KHF1ZXVlLCByZXF1ZXN0X2xvY2ssIHJlc3BvbnNlX2xvY2spKQorICAgIHBhcmFs
bGVsLnN0YXJ0KCkKKyAgICBhZGRfY2xlYW51cChsYW1iZGE6IHBhcmFsbGVsLnRlcm1pbmF0ZSgp
KQorCisgICAgYXNzZXJ0IFtxdWV1ZS5nZXQoKSwgcXVldWUuZ2V0KCldID09IFtGYWxzZSwgRmFs
c2VdLCAoCisgICAgICAgICJib3RoIGluc3RhbmNlcyBoYWQgdmFsaWQgbG9ja3MiKQorCisKK0Bw
eXRlc3QubWFyay54ZmFpbChzeXMucGxhdGZvcm0gPT0gIndpbjMyIiwKKyAgICAgICAgICAgICAg
ICAgICByZWFzb249Imh0dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxhdGZvcm0tdGVzdHMvd3B0L2lz
c3Vlcy8xNjkzOCIpCitkZWYgdGVzdF9kZWxheWVkX2RpY3QoYWRkX2NsZWFudXApOgorICAgICIi
IkVuc3VyZSB0aGF0IGRlbGF5cyBpbiBwcm94aWVkIGBkaWN0YCByZXRyaWV2YWwgZG8gbm90IGlu
dGVyZmVyZSB3aXRoCisgICAgaW5pdGlhbGl6YXRpb24gaW4gcGFyYWxsZWwgdGhyZWFkcy4iIiIK
KworICAgIGNsYXNzIFNsb3dEaWN0KEJhc2VNYW5hZ2VyKToKKyAgICAgICAgcGFzcworCisgICAg
cmVxdWVzdF9sb2NrID0gbXVsdGlwcm9jZXNzaW5nLkxvY2soKQorICAgIHJlc3BvbnNlX2xvY2sg
PSBtdWx0aXByb2Nlc3NpbmcuTG9jaygpCisKKyAgICBxdWV1ZSA9IG11bHRpcHJvY2Vzc2luZy5R
dWV1ZSgpCisKKyAgICAjIFRoaXMgcmVxdWVzdCBoYW5kbGVyIGFsbG93cyB0aGUgY2FsbGVyIHRv
IGRlbGF5IGV4ZWN1dGlvbiBvZiBhIHRocmVhZAorICAgICMgd2hpY2ggaGFzIHJlcXVlc3RlZCBh
IHByb3hpZWQgcmVwcmVzZW50YXRpb24gb2YgdGhlICJnZXRfZGljdCIgcHJvcGVydHkuCisgICAg
ZGVmIG11dGV4X2RpY3RfcmVxdWVzdCgpOgorICAgICAgICAiIiJUaGlzIHJlcXVlc3QgaGFuZGxl
ciBhbGxvd3MgdGhlIGNhbGxlciB0byBkZWxheSBleGVjdXRpb24gb2YgYQorICAgICAgICB0aHJl
YWQgd2hpY2ggaGFzIHJlcXVlc3RlZCBhIHByb3hpZWQgcmVwcmVzZW50YXRpb24gb2YgdGhlIGBn
ZXRfZGljdGAKKyAgICAgICAgcHJvcGVydHksIHNpbXVsYXRpbmcgYSAic2xvdyIgaW50ZXJwcm9j
ZXNzIGNvbW11bmljYXRpb24gY2hhbm5lbC4iIiIKKyAgICAgICAgcmVxdWVzdF9sb2NrLnJlbGVh
c2UoKQorICAgICAgICByZXNwb25zZV9sb2NrLmFjcXVpcmUoKQorICAgICAgICByZXR1cm4ge30K
KworICAgIFNsb3dEaWN0LnJlZ2lzdGVyKCJnZXRfZGljdCIsIGNhbGxhYmxlPW11dGV4X2RpY3Rf
cmVxdWVzdCkKKyAgICBTbG93RGljdC5yZWdpc3RlcigiTG9jayIsIGNhbGxhYmxlPWxhbWJkYTog
dGhyZWFkaW5nLkxvY2soKSkKKworICAgIHNsb3dkaWN0ID0gU2xvd0RpY3QoKCJsb2NhbGhvc3Qi
LCA0NTQzKSwgYiJzb21lIGtleSIpCisgICAgc2xvd2RpY3Quc3RhcnQoKQorICAgIGFkZF9jbGVh
bnVwKGxhbWJkYTogc2xvd2RpY3Quc2h1dGRvd24oKSkKKworICAgIHBhcmFsbGVsID0gbXVsdGlw
cm9jZXNzaW5nLlByb2Nlc3ModGFyZ2V0PXJ1biwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGFyZ3M9KHF1ZXVlLCByZXF1ZXN0X2xvY2ssIHJlc3BvbnNlX2xvY2spKQor
ICAgIHBhcmFsbGVsLnN0YXJ0KCkKKyAgICBhZGRfY2xlYW51cChsYW1iZGE6IHBhcmFsbGVsLnRl
cm1pbmF0ZSgpKQorCisgICAgYXNzZXJ0IFtxdWV1ZS5nZXQoKSwgcXVldWUuZ2V0KCldID09IFtG
YWxzZSwgRmFsc2VdLCAoCisgICAgICAgICJib3RoIGluc3RhbmNlcyBoYWQgdmFsaWQgbG9ja3Mi
KQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy93cHRzZXJ2ZS90ZXN0cy93M2MtaW1wb3J0LmxvZyBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0c2VydmUvdGVzdHMvdzNjLWltcG9y
dC5sb2cKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDcyOGE5Y2E5NzcxNmQwNGUwNWYy
YjUwMGViZWYzOWZmOTE4YzFlNDguLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy93cHRzZXJ2ZS90ZXN0cy93M2MtaW1wb3J0LmxvZworKysgL2Rldi9udWxsCkBAIC0xLDE4
ICswLDAgQEAKLVRoZSB0ZXN0cyBpbiB0aGlzIGRpcmVjdG9yeSB3ZXJlIGltcG9ydGVkIGZyb20g
dGhlIFczQyByZXBvc2l0b3J5LgotRG8gTk9UIG1vZGlmeSB0aGVzZSB0ZXN0cyBkaXJlY3RseSBp
biBXZWJLaXQuCi1JbnN0ZWFkLCBjcmVhdGUgYSBwdWxsIHJlcXVlc3Qgb24gdGhlIFdQVCBnaXRo
dWI6Ci0JaHR0cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQKLQotVGhlbiBy
dW4gdGhlIFRvb2xzL1NjcmlwdHMvaW1wb3J0LXczYy10ZXN0cyBpbiBXZWJLaXQgdG8gcmVpbXBv
cnQKLQotRG8gTk9UIG1vZGlmeSBvciByZW1vdmUgdGhpcyBmaWxlLgotCi0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0KLVByb3BlcnRpZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLVByb3BlcnR5
IHZhbHVlcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
Ci1MaXN0IG9mIGZpbGVzOgotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvd3B0c2VydmUvdGVzdHMvdGVzdF9jb25maWcucHkKLS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHNlcnZlL3Rlc3RzL3Rlc3Rf
cmVwbGFjZW1lbnRfdG9rZW5pemVyLnB5CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHNlcnZlL3czYy1pbXBvcnQubG9nIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRzZXJ2
ZS93M2MtaW1wb3J0LmxvZwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNTk3YjMyNjA0
ZGMyMGUwZTNhMjc2MTlkOTA2ZTQ1ZDhkNzkwMzNjMS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3dwdHNlcnZlL3czYy1pbXBvcnQubG9nCisrKyAvZGV2L251bGwKQEAg
LTEsMjAgKzAsMCBAQAotVGhlIHRlc3RzIGluIHRoaXMgZGlyZWN0b3J5IHdlcmUgaW1wb3J0ZWQg
ZnJvbSB0aGUgVzNDIHJlcG9zaXRvcnkuCi1EbyBOT1QgbW9kaWZ5IHRoZXNlIHRlc3RzIGRpcmVj
dGx5IGluIFdlYktpdC4KLUluc3RlYWQsIGNyZWF0ZSBhIHB1bGwgcmVxdWVzdCBvbiB0aGUgV1BU
IGdpdGh1YjoKLQlodHRwczovL2dpdGh1Yi5jb20vd2ViLXBsYXRmb3JtLXRlc3RzL3dwdAotCi1U
aGVuIHJ1biB0aGUgVG9vbHMvU2NyaXB0cy9pbXBvcnQtdzNjLXRlc3RzIGluIFdlYktpdCB0byBy
ZWltcG9ydAotCi1EbyBOT1QgbW9kaWZ5IG9yIHJlbW92ZSB0aGlzIGZpbGUuCi0KLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLQotUHJvcGVydGllcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotUHJv
cGVydHkgdmFsdWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0KLUxpc3Qgb2YgZmlsZXM6Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy93cHRzZXJ2ZS9MSUNFTlNFCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRzZXJ2ZS9NQU5JRkVTVC5pbgotL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0c2VydmUvUkVB
RE1FLm1kCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy93cHRzZXJ2ZS9zZXR1cC5weQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRzZXJ2ZS93cHRzZXJ2ZS9jb25maWcucHkgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHNlcnZl
L3dwdHNlcnZlL2NvbmZpZy5weQppbmRleCBjYjU0MzVmZGVmNGMyMGM2NTk4OWYzMzAzOTJiOTE4
ZDE3MWZhZDFhLi5lMTFjYWUxMzdiOWM1MWQ4Njc3NDAwMWVhZDcxOTM4ZmQ1NWMwNTU1IDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3dwdHNlcnZlL3dwdHNlcnZlL2NvbmZpZy5weQorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHNlcnZlL3dwdHNlcnZlL2NvbmZpZy5weQpA
QCAtNzUsNyArNzUsOSBAQCBkZWYganNvbl90eXBlcyhvYmopOgogICAgICAgICByZXR1cm4ge2tl
eToganNvbl90eXBlcyh2YWx1ZSkgZm9yIGtleSwgdmFsdWUgaW4gaXRlcml0ZW1zKG9iail9CiAg
ICAgaWYgKGlzaW5zdGFuY2Uob2JqLCBzdHJpbmdfdHlwZXMpIG9yCiAgICAgICAgIGlzaW5zdGFu
Y2Uob2JqLCBpbnRlZ2VyX3R5cGVzKSBvcgotICAgICAgICBpc2luc3RhbmNlKG9iaiwgZmxvYXQp
KToKKyAgICAgICAgaXNpbnN0YW5jZShvYmosIGZsb2F0KSBvcgorICAgICAgICBpc2luc3RhbmNl
KG9iaiwgYm9vbCkgb3IKKyAgICAgICAgb2JqIGlzIE5vbmUpOgogICAgICAgICByZXR1cm4gb2Jq
CiAgICAgaWYgaXNpbnN0YW5jZShvYmosIGxpc3QpIG9yIGhhc2F0dHIob2JqLCAiX19pdGVyX18i
KToKICAgICAgICAgcmV0dXJuIFtqc29uX3R5cGVzKHZhbHVlKSBmb3IgdmFsdWUgaW4gb2JqXQpA
QCAtMTAxLDcgKzEwMyw3IEBAIGNsYXNzIENvbmZpZ0J1aWxkZXIob2JqZWN0KToKIAogICAgIFRo
ZSBwcm9wZXJ0aWVzIG9uIHRoZSBmaW5hbCBjb25maWd1cmF0aW9uIGluY2x1ZGUgdGhvc2UgZXhw
bGljaXRseQogICAgIHN1cHBsaWVkIGFuZCBjb21wdXRlZCBwcm9wZXJ0aWVzLiBUaGUgY29tcHV0
ZWQgcHJvcGVydGllcyBhcmUKLSAgICBkZWZpbmVkIGJ5dCB0aGUgY29tcHV0ZWRfcHJvcGVyaXRl
cyBhdHRyaWJ1dGUgb24gdGhlIGNsYXNzLiBUaGlzCisgICAgZGVmaW5lZCBieSB0aGUgY29tcHV0
ZWRfcHJvcGVydGllcyBhdHRyaWJ1dGUgb24gdGhlIGNsYXNzLiBUaGlzCiAgICAgaXMgYSBsaXN0
IG9mIHByb3BlcnR5IG5hbWVzLCBlYWNoIGNvcnJlc3BvbmRpbmcgdG8gYSBfZ2V0XzxuYW1lPgog
ICAgIG1ldGhvZCBvbiB0aGUgY2xhc3MuIFRoZXNlIG1ldGhvZHMgYXJlIGNhbGxlZCBpbiB0aGUg
b3JkZXIgZGVmaW5lZAogICAgIGluIGNvbXB1dGVkX3Byb3BlcnRpZXMgYW5kIGFyZSBwYXNzZWQg
YSBzaW5nbGUgYXJndW1lbnQsIGEKQEAgLTEyNiw3ICsxMjgsOSBAQCBjbGFzcyBDb25maWdCdWls
ZGVyKG9iamVjdCk6CiAgICAgICAgICAgICAib3BlbnNzbCI6IHsKICAgICAgICAgICAgICAgICAi
b3BlbnNzbF9iaW5hcnkiOiAib3BlbnNzbCIsCiAgICAgICAgICAgICAgICAgImJhc2VfcGF0aCI6
ICJfY2VydHMiLAorICAgICAgICAgICAgICAgICJwYXNzd29yZCI6ICJ3ZWItcGxhdGZvcm0tdGVz
dHMiLAogICAgICAgICAgICAgICAgICJmb3JjZV9yZWdlbmVyYXRlIjogRmFsc2UsCisgICAgICAg
ICAgICAgICAgImR1cmF0aW9uIjogMzAsCiAgICAgICAgICAgICAgICAgImJhc2VfY29uZl9wYXRo
IjogTm9uZQogICAgICAgICAgICAgfSwKICAgICAgICAgICAgICJwcmVnZW5lcmF0ZWQiOiB7CkBA
IC0zMTYsNyArMzIwLDcgQEAgY2xhc3MgQ29uZmlnQnVpbGRlcihvYmplY3QpOgogICAgICAgICBz
ZWxmLl9zc2xfZW52Ll9fZW50ZXJfXygpCiAgICAgICAgIGlmIHNlbGYuX3NzbF9lbnYuc3NsX2Vu
YWJsZWQ6CiAgICAgICAgICAgICBrZXlfcGF0aCwgY2VydF9wYXRoID0gc2VsZi5fc3NsX2Vudi5o
b3N0X2NlcnRfcGF0aChkYXRhWyJkb21haW5zX3NldCJdKQotICAgICAgICAgICAgY2FfY2VydF9w
YXRoID0gc2VsZi5fc3NsX2Vudi5jYV9jZXJ0X3BhdGgoKQorICAgICAgICAgICAgY2FfY2VydF9w
YXRoID0gc2VsZi5fc3NsX2Vudi5jYV9jZXJ0X3BhdGgoZGF0YVsiZG9tYWluc19zZXQiXSkKICAg
ICAgICAgICAgIHJldHVybiB7ImtleV9wYXRoIjoga2V5X3BhdGgsCiAgICAgICAgICAgICAgICAg
ICAgICJjYV9jZXJ0X3BhdGgiOiBjYV9jZXJ0X3BhdGgsCiAgICAgICAgICAgICAgICAgICAgICJj
ZXJ0X3BhdGgiOiBjZXJ0X3BhdGgsCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHNlcnZlL3dwdHNlcnZlL2NvbnN0YW50cy5w
eSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0
c2VydmUvd3B0c2VydmUvY29uc3RhbnRzLnB5CmluZGV4IGVjMTUwYmE1YzhmN2EzYjg5YTYzOTAz
YjdkYzc1N2M5NmRmZmYxYTkuLjM1N2EyZTZkMzQ4ZjkwMzQxYWJlYTc4ZjlkZjAyNWY3MDM0YTJl
NDAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvd3B0c2VydmUvd3B0c2VydmUvY29uc3RhbnRzLnB5CisrKyBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0c2VydmUvd3B0c2VydmUv
Y29uc3RhbnRzLnB5CkBAIC0xLDI5ICsxLDMyIEBACiBmcm9tIC4gaW1wb3J0IHV0aWxzCiAKLWNv
bnRlbnRfdHlwZXMgPSB1dGlscy5pbnZlcnRfZGljdCh7InRleHQvaHRtbCI6IFsiaHRtIiwgImh0
bWwiXSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImFwcGxpY2F0aW9uL2pz
b24iOiBbImpzb24iXSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImFwcGxp
Y2F0aW9uL3hodG1sK3htbCI6IFsieGh0IiwgInhodG0iLCAieGh0bWwiXSwKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgImFwcGxpY2F0aW9uL3htbCI6IFsieG1sIl0sCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJhcHBsaWNhdGlvbi94LXhwaW5zdGFsbCI6
IFsieHBpIl0sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ0ZXh0L2phdmFz
Y3JpcHQiOiBbImpzIl0sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ0ZXh0
L2NzcyI6IFsiY3NzIl0sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ0ZXh0
L3BsYWluIjogWyJ0eHQiLCAibWQiXSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgImltYWdlL3N2Zyt4bWwiOiBbInN2ZyJdLAotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAiaW1hZ2UvZ2lmIjogWyJnaWYiXSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgImltYWdlL2pwZWciOiBbImpwZyIsICJqcGVnIl0sCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICJpbWFnZS9wbmciOiBbInBuZyJdLAotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAiaW1hZ2UvYm1wIjogWyJibXAiXSwKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgInRleHQvZXZlbnQtc3RyZWFtIjogWyJldmVudF9zdHJlYW0i
XSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInRleHQvY2FjaGUtbWFuaWZl
c3QiOiBbIm1hbmlmZXN0Il0sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ2
aWRlby9tcDQiOiBbIm1wNCIsICJtNHYiXSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgImF1ZGlvL21wNCI6IFsibTRhIl0sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICJhdWRpby9tcGVnIjogWyJtcDMiXSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgInZpZGVvL3dlYm0iOiBbIndlYm0iXSwKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgImF1ZGlvL3dlYm0iOiBbIndlYmEiXSwKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgInZpZGVvL29nZyI6IFsib2dnIiwgIm9ndiJdLAotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAiYXVkaW8vb2dnIjogWyJvZ2EiXSwKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgImF1ZGlvL3gtd2F2IjogWyJ3YXYiXSwKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgInRleHQvdnR0IjogWyJ2dHQiXSx9KQorY29udGVu
dF90eXBlcyA9IHV0aWxzLmludmVydF9kaWN0KHsKKyAgICAiYXBwbGljYXRpb24vanNvbiI6IFsi
anNvbiJdLAorICAgICJhcHBsaWNhdGlvbi93YXNtIjogWyJ3YXNtIl0sCisgICAgImFwcGxpY2F0
aW9uL3hodG1sK3htbCI6IFsieGh0IiwgInhodG0iLCAieGh0bWwiXSwKKyAgICAiYXBwbGljYXRp
b24veG1sIjogWyJ4bWwiXSwKKyAgICAiYXBwbGljYXRpb24veC14cGluc3RhbGwiOiBbInhwaSJd
LAorICAgICJhdWRpby9tcDQiOiBbIm00YSJdLAorICAgICJhdWRpby9tcGVnIjogWyJtcDMiXSwK
KyAgICAiYXVkaW8vb2dnIjogWyJvZ2EiXSwKKyAgICAiYXVkaW8vd2VibSI6IFsid2ViYSJdLAor
ICAgICJhdWRpby94LXdhdiI6IFsid2F2Il0sCisgICAgImltYWdlL2JtcCI6IFsiYm1wIl0sCisg
ICAgImltYWdlL2dpZiI6IFsiZ2lmIl0sCisgICAgImltYWdlL2pwZWciOiBbImpwZyIsICJqcGVn
Il0sCisgICAgImltYWdlL3BuZyI6IFsicG5nIl0sCisgICAgImltYWdlL3N2Zyt4bWwiOiBbInN2
ZyJdLAorICAgICJ0ZXh0L2NhY2hlLW1hbmlmZXN0IjogWyJtYW5pZmVzdCJdLAorICAgICJ0ZXh0
L2NzcyI6IFsiY3NzIl0sCisgICAgInRleHQvZXZlbnQtc3RyZWFtIjogWyJldmVudF9zdHJlYW0i
XSwKKyAgICAidGV4dC9odG1sIjogWyJodG0iLCAiaHRtbCJdLAorICAgICJ0ZXh0L2phdmFzY3Jp
cHQiOiBbImpzIiwgIm1qcyJdLAorICAgICJ0ZXh0L3BsYWluIjogWyJ0eHQiLCAibWQiXSwKKyAg
ICAidGV4dC92dHQiOiBbInZ0dCJdLAorICAgICJ2aWRlby9tcDQiOiBbIm1wNCIsICJtNHYiXSwK
KyAgICAidmlkZW8vb2dnIjogWyJvZ2ciLCAib2d2Il0sCisgICAgInZpZGVvL3dlYm0iOiBbIndl
Ym0iXSwKK30pCiAKIHJlc3BvbnNlX2NvZGVzID0gewogICAgIDEwMDogKCdDb250aW51ZScsICdS
ZXF1ZXN0IHJlY2VpdmVkLCBwbGVhc2UgY29udGludWUnKSwKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0c2VydmUvd3B0c2Vy
dmUvaGFuZGxlcnMucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3dwdHNlcnZlL3dwdHNlcnZlL2hhbmRsZXJzLnB5CmluZGV4IDdmYmU0MjM0ZWEw
YTI1MmFhZWQwNzE4MmZkM2JlZDc0MWMxNDcyODUuLmNhNTExODAwOWNmYzljNDc2M2Y5OWUyYTYy
OTZkNzg0YTY1MzkyMTYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0c2VydmUvd3B0c2VydmUvaGFuZGxlcnMucHkKKysrIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRzZXJ2
ZS93cHRzZXJ2ZS9oYW5kbGVycy5weQpAQCAtNyw4ICs3LDYgQEAgaW1wb3J0IHRyYWNlYmFjawog
ZnJvbSBzaXgubW92ZXMudXJsbGliLnBhcnNlIGltcG9ydCBwYXJzZV9xcywgcXVvdGUsIHVucXVv
dGUsIHVybGpvaW4KIGZyb20gc2l4IGltcG9ydCBpdGVyaXRlbXMKIAotZnJvbSBoMi5ldmVudHMg
aW1wb3J0IFJlcXVlc3RSZWNlaXZlZCwgRGF0YVJlY2VpdmVkCi0KIGZyb20gLmNvbnN0YW50cyBp
bXBvcnQgY29udGVudF90eXBlcwogZnJvbSAucGlwZXMgaW1wb3J0IFBpcGVsaW5lLCB0ZW1wbGF0
ZQogZnJvbSAucmFuZ2VzIGltcG9ydCBSYW5nZVBhcnNlcgpAQCAtNzksNyArNzcsNyBAQCBjbGFz
cyBEaXJlY3RvcnlIYW5kbGVyKG9iamVjdCk6CiAlKGl0ZW1zKXMKIDwvdWw+CiAiIiIgJSB7InBh
dGgiOiBjZ2kuZXNjYXBlKHVybF9wYXRoKSwKLSAgICAgICAiaXRlbXMiOiAiXG4iLmpvaW4oc2Vs
Zi5saXN0X2l0ZW1zKHVybF9wYXRoLCBwYXRoKSl9ICAjIGZsYWtlODogbm9xYQorICAgICAgICJp
dGVtcyI6ICJcbiIuam9pbihzZWxmLmxpc3RfaXRlbXModXJsX3BhdGgsIHBhdGgpKX0gICMgbm9x
YTogRTEyMgogCiAgICAgZGVmIGxpc3RfaXRlbXMoc2VsZiwgYmFzZV9wYXRoLCBwYXRoKToKICAg
ICAgICAgYXNzZXJ0IGJhc2VfcGF0aC5lbmRzd2l0aCgiLyIpCkBAIC0xMDcsMTcgKzEwNSwyMSBA
QCBjbGFzcyBEaXJlY3RvcnlIYW5kbGVyKG9iamVjdCk6CiAKIGRlZiB3cmFwX3BpcGVsaW5lKHBh
dGgsIHJlcXVlc3QsIHJlc3BvbnNlKToKICAgICBxdWVyeSA9IHBhcnNlX3FzKHJlcXVlc3QudXJs
X3BhcnRzLnF1ZXJ5KQorICAgIHBpcGVfc3RyaW5nID0gIiIKIAotICAgIHBpcGVsaW5lID0gTm9u
ZQotICAgIGlmICJwaXBlIiBpbiBxdWVyeToKLSAgICAgICAgcGlwZWxpbmUgPSBQaXBlbGluZShx
dWVyeVsicGlwZSJdWy0xXSkKLSAgICBlbGlmICIuc3ViLiIgaW4gcGF0aDoKKyAgICBpZiAiLnN1
Yi4iIGluIHBhdGg6CiAgICAgICAgIG1sX2V4dGVuc2lvbnMgPSB7Ii5odG1sIiwgIi5odG0iLCAi
LnhodCIsICIueGh0bWwiLCAiLnhtbCIsICIuc3ZnIn0KICAgICAgICAgZXNjYXBlX3R5cGUgPSAi
aHRtbCIgaWYgb3MucGF0aC5zcGxpdGV4dChwYXRoKVsxXSBpbiBtbF9leHRlbnNpb25zIGVsc2Ug
Im5vbmUiCi0gICAgICAgIHBpcGVsaW5lID0gUGlwZWxpbmUoInN1YiglcykiICUgZXNjYXBlX3R5
cGUpCisgICAgICAgIHBpcGVfc3RyaW5nID0gInN1YiglcykiICUgZXNjYXBlX3R5cGUKKworICAg
IGlmICJwaXBlIiBpbiBxdWVyeToKKyAgICAgICAgaWYgcGlwZV9zdHJpbmc6CisgICAgICAgICAg
ICBwaXBlX3N0cmluZyArPSAifCIKKworICAgICAgICBwaXBlX3N0cmluZyArPSBxdWVyeVsicGlw
ZSJdWy0xXQogCi0gICAgaWYgcGlwZWxpbmUgaXMgbm90IE5vbmU6Ci0gICAgICAgIHJlc3BvbnNl
ID0gcGlwZWxpbmUocmVxdWVzdCwgcmVzcG9uc2UpCisgICAgaWYgcGlwZV9zdHJpbmc6CisgICAg
ICAgIHJlc3BvbnNlID0gUGlwZWxpbmUocGlwZV9zdHJpbmcpKHJlcXVlc3QsIHJlc3BvbnNlKQog
CiAgICAgcmV0dXJuIHJlc3BvbnNlCiAKQEAgLTE2MSw4ICsxNjMsOCBAQCBjbGFzcyBGaWxlSGFu
ZGxlcihvYmplY3QpOgogICAgICAgICBydiA9IChzZWxmLmxvYWRfaGVhZGVycyhyZXF1ZXN0LCBv
cy5wYXRoLmpvaW4ob3MucGF0aC5zcGxpdChwYXRoKVswXSwgIl9fZGlyX18iKSkgKwogICAgICAg
ICAgICAgICBzZWxmLmxvYWRfaGVhZGVycyhyZXF1ZXN0LCBwYXRoKSkKIAotICAgICAgICBpZiBu
b3QgYW55KGtleS5sb3dlcigpID09ICJjb250ZW50LXR5cGUiIGZvciAoa2V5LCBfKSBpbiBydik6
Ci0gICAgICAgICAgICBydi5pbnNlcnQoMCwgKCJDb250ZW50LVR5cGUiLCBndWVzc19jb250ZW50
X3R5cGUocGF0aCkpKQorICAgICAgICBpZiBub3QgYW55KGtleS5sb3dlcigpID09IGIiY29udGVu
dC10eXBlIiBmb3IgKGtleSwgXykgaW4gcnYpOgorICAgICAgICAgICAgcnYuaW5zZXJ0KDAsIChi
IkNvbnRlbnQtVHlwZSIsIGd1ZXNzX2NvbnRlbnRfdHlwZShwYXRoKS5lbmNvZGUoImFzY2lpIikp
KQogCiAgICAgICAgIHJldHVybiBydgogCkBAIC0xNzUsMTQgKzE3NywxNCBAQCBjbGFzcyBGaWxl
SGFuZGxlcihvYmplY3QpOgogICAgICAgICAgICAgdXNlX3N1YiA9IEZhbHNlCiAKICAgICAgICAg
dHJ5OgotICAgICAgICAgICAgd2l0aCBvcGVuKGhlYWRlcnNfcGF0aCkgYXMgaGVhZGVyc19maWxl
OgorICAgICAgICAgICAgd2l0aCBvcGVuKGhlYWRlcnNfcGF0aCwgInJiIikgYXMgaGVhZGVyc19m
aWxlOgogICAgICAgICAgICAgICAgIGRhdGEgPSBoZWFkZXJzX2ZpbGUucmVhZCgpCiAgICAgICAg
IGV4Y2VwdCBJT0Vycm9yOgogICAgICAgICAgICAgcmV0dXJuIFtdCiAgICAgICAgIGVsc2U6CiAg
ICAgICAgICAgICBpZiB1c2Vfc3ViOgogICAgICAgICAgICAgICAgIGRhdGEgPSB0ZW1wbGF0ZShy
ZXF1ZXN0LCBkYXRhLCBlc2NhcGVfdHlwZT0ibm9uZSIpCi0gICAgICAgICAgICByZXR1cm4gW3R1
cGxlKGl0ZW0uc3RyaXAoKSBmb3IgaXRlbSBpbiBsaW5lLnNwbGl0KCI6IiwgMSkpCisgICAgICAg
ICAgICByZXR1cm4gW3R1cGxlKGl0ZW0uc3RyaXAoKSBmb3IgaXRlbSBpbiBsaW5lLnNwbGl0KGIi
OiIsIDEpKQogICAgICAgICAgICAgICAgICAgICBmb3IgbGluZSBpbiBkYXRhLnNwbGl0bGluZXMo
KSBpZiBsaW5lXQogCiAgICAgZGVmIGdldF9kYXRhKHNlbGYsIHJlc3BvbnNlLCBwYXRoLCBieXRl
X3Jhbmdlcyk6CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3dwdHNlcnZlL3dwdHNlcnZlL3BpcGVzLnB5IGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRzZXJ2ZS93cHRzZXJ2ZS9w
aXBlcy5weQppbmRleCBhZDk2ZjU5MWEzYThjOGI3ZThkMTNhNGFkOTVhMWFhZTUwMGY2NmRhLi5j
ZWIzNGNjM2Y0Zjk5NGVkMDQ5OTE1Yzc3ODRmN2M2OWM3MTJhYmNhIDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHNlcnZlL3dw
dHNlcnZlL3BpcGVzLnB5CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvd3B0c2VydmUvd3B0c2VydmUvcGlwZXMucHkKQEAgLTEsNSArMSw2IEBA
CiBmcm9tIGNnaSBpbXBvcnQgZXNjYXBlCiBmcm9tIGNvbGxlY3Rpb25zIGltcG9ydCBkZXF1ZQor
aW1wb3J0IGJhc2U2NAogaW1wb3J0IGd6aXAgYXMgZ3ppcF9tb2R1bGUKIGltcG9ydCBoYXNobGli
CiBpbXBvcnQgb3MKQEAgLTI3Myw4ICsyNzQsOSBAQCBkZWYgc2xpY2UocmVxdWVzdCwgcmVzcG9u
c2UsIHN0YXJ0LCBlbmQ9Tm9uZSk6CiAgICAgICAgICAgICAgICAgKHNwZWxsZWQgIm51bGwiIGlu
IGEgcXVlcnkgc3RyaW5nKSB0byBpbmRpY2F0ZSB0aGUgZW5kIG9mCiAgICAgICAgICAgICAgICAg
dGhlIGZpbGUuCiAgICAgIiIiCi0gICAgY29udGVudCA9IHJlc29sdmVfY29udGVudChyZXNwb25z
ZSkKLSAgICByZXNwb25zZS5jb250ZW50ID0gY29udGVudFtzdGFydDplbmRdCisgICAgY29udGVu
dCA9IHJlc29sdmVfY29udGVudChyZXNwb25zZSlbc3RhcnQ6ZW5kXQorICAgIHJlc3BvbnNlLmNv
bnRlbnQgPSBjb250ZW50CisgICAgcmVzcG9uc2UuaGVhZGVycy5zZXQoIkNvbnRlbnQtTGVuZ3Ro
IiwgbGVuKGNvbnRlbnQpKQogICAgIHJldHVybiByZXNwb25zZQogCiAKQEAgLTMyNyw3ICszMjks
NyBAQCBkZWYgc3ViKHJlcXVlc3QsIHJlc3BvbnNlLCBlc2NhcGVfdHlwZT0iaHRtbCIpOgogICAg
ICAgICAgICAgICAgICAgICAgICAgImh0bWwiIGFuZCAibm9uZSIsIHdpdGggImh0bWwiIHRoZSBk
ZWZhdWx0IGZvciBoaXN0b3JpYyByZWFzb25zLgogCiAgICAgVGhlIGZvcm1hdCBpcyBhIHZlcnkg
bGltaXRlZCB0ZW1wbGF0ZSBsYW5ndWFnZS4gU3Vic3RpdHV0aW9ucyBhcmUKLSAgICBlbmNsb3Nl
ZCBieSB7eyBhbmQgfX0uIFRoZXJlIGFyZSBzZXZlcmFsIGF2YWxpYWJsZSBzdWJzdGl0dXRpb25z
OgorICAgIGVuY2xvc2VkIGJ5IHt7IGFuZCB9fS4gVGhlcmUgYXJlIHNldmVyYWwgYXZhaWxhYmxl
IHN1YnN0aXR1dGlvbnM6CiAKICAgICBob3N0CiAgICAgICBBIHNpbXBsZSBzdHJpbmcgdmFsdWUg
YW5kIHJlcHJlc2VudHMgdGhlIHByaW1hcnkgaG9zdCBmcm9tIHdoaWNoIHRoZQpAQCAtMzQwLDE5
ICszNDIsMjggQEAgZGVmIHN1YihyZXF1ZXN0LCByZXNwb25zZSwgZXNjYXBlX3R5cGU9Imh0bWwi
KToKICAgICAgIEEgZGljdGlvbmFyeSBvZiBwYXJ0cyBvZiB0aGUgcmVxdWVzdCBVUkwuIFZhbGlk
IGtleXMgYXJlCiAgICAgICAnc2VydmVyLCAnc2NoZW1lJywgJ2hvc3QnLCAnaG9zdG5hbWUnLCAn
cG9ydCcsICdwYXRoJyBhbmQgJ3F1ZXJ5Jy4KICAgICAgICdzZXJ2ZXInIGlzIHNjaGVtZTovL2hv
c3Q6cG9ydCwgJ2hvc3QnIGlzIGhvc3RuYW1lOnBvcnQsIGFuZCBxdWVyeQotICAgICAgIGluY2x1
ZGVzIHRoZSBsZWFkaW5nICc/JywgYnV0IG90aGVyIGRlbGltaXRlcnMgYXJlIG9taXR0ZWQuCisg
ICAgICBpbmNsdWRlcyB0aGUgbGVhZGluZyAnPycsIGJ1dCBvdGhlciBkZWxpbWl0ZXJzIGFyZSBv
bWl0dGVkLgogICAgIGhlYWRlcnMKICAgICAgIEEgZGljdGlvbmFyeSBvZiBIVFRQIGhlYWRlcnMg
aW4gdGhlIHJlcXVlc3QuCisgICAgaGVhZGVyX29yX2RlZmF1bHQoaGVhZGVyLCBkZWZhdWx0KQor
ICAgICAgVGhlIHZhbHVlIG9mIGFuIEhUVFAgaGVhZGVyLCBvciBhIGRlZmF1bHQgdmFsdWUgaWYg
aXQgaXMgYWJzZW50LgorICAgICAgRm9yIGV4YW1wbGU6OgorCisgICAgICAgIHt7aGVhZGVyX29y
X2RlZmF1bHQoWC1UZXN0LCB0ZXN0LWhlYWRlci1hYnNlbnQpfX0KKwogICAgIEdFVAogICAgICAg
QSBkaWN0aW9uYXJ5IG9mIHF1ZXJ5IHBhcmFtZXRlcnMgc3VwcGxpZWQgd2l0aCB0aGUgcmVxdWVz
dC4KICAgICB1dWlkKCkKICAgICAgIEEgcGVzdWRvLXJhbmRvbSBVVUlEIHN1aXRhYmxlIGZvciB1
c2FnZSB3aXRoIHN0YXNoCiAgICAgZmlsZV9oYXNoKGFsZ29yaXRobSwgZmlsZXBhdGgpCiAgICAg
ICBUaGUgY3J5cHRvZ3JhcGhpYyBoYXNoIG9mIGEgZmlsZS4gU3VwcG9ydGVkIGFsZ29yaXRobXM6
IG1kNSwgc2hhMSwKLSAgICAgIHNoYTIyNCwgc2hhMjU2LCBzaGEzODQsIGFuZCBzaGE1MTIuIEZv
ciBleGFtcGxlOgorICAgICAgc2hhMjI0LCBzaGEyNTYsIHNoYTM4NCwgYW5kIHNoYTUxMi4gRm9y
IGV4YW1wbGU6OgogCiAgICAgICAgIHt7ZmlsZV9oYXNoKG1kNSwgZG9tL2ludGVyZmFjZXMuaHRt
bCl9fQogCisgICAgZnNfcGF0aChmaWxlcGF0aCkKKyAgICAgIFRoZSBhYnNvbHV0ZSBwYXRoIHRv
IGEgZmlsZSBpbnNpZGUgdGhlIHdwdCBkb2N1bWVudCByb290CisKICAgICBTbyBmb3IgZXhhbXBs
ZSBpbiBhIHNldHVwIHJ1bm5pbmcgb24gbG9jYWxob3N0IHdpdGggYSB3d3cKICAgICBzdWJkb21h
aW4gYW5kIGEgaHR0cCBzZXJ2ZXIgb24gcG9ydHMgODAgYW5kIDgxOjoKIApAQCAtMzYwLDE2ICsz
NzEsMTUgQEAgZGVmIHN1YihyZXF1ZXN0LCByZXNwb25zZSwgZXNjYXBlX3R5cGU9Imh0bWwiKToK
ICAgICAgIHt7ZG9tYWluc1t3d3ddfX0gPT4gd3d3LmxvY2FsaG9zdAogICAgICAge3twb3J0c1to
dHRwXVsxXX19ID0+IDgxCiAKKyAgICBJdCBpcyBhbHNvIHBvc3NpYmxlIHRvIGFzc2lnbiBhIHZh
bHVlIHRvIGEgdmFyaWFibGUgbmFtZSwgd2hpY2ggbXVzdCBzdGFydAorICAgIHdpdGggdGhlICQg
Y2hhcmFjdGVyLCB1c2luZyB0aGUgIjoiIHN5bnRheCBlLmcuOjoKIAotICAgIEl0IGlzIGFsc28g
cG9zc2libGUgdG8gYXNzaWduIGEgdmFsdWUgdG8gYSB2YXJpYWJsZSBuYW1lLCB3aGljaCBtdXN0
IHN0YXJ0IHdpdGgKLSAgICB0aGUgJCBjaGFyYWN0ZXIsIHVzaW5nIHRoZSAiOiIgc3ludGF4IGUu
Zy4KLQotICAgIHt7JGlkOnV1aWQoKX19CisgICAgICB7eyRpZDp1dWlkKCl9fQogCiAgICAgTGF0
ZXIgc3Vic3RpdHV0aW9ucyBpbiB0aGUgc2FtZSBmaWxlIG1heSB0aGVuIHJlZmVyIHRvIHRoZSB2
YXJpYWJsZQotICAgIGJ5IG5hbWUgZS5nLgorICAgIGJ5IG5hbWUgZS5nLjo6CiAKLSAgICB7eyRp
ZH19CisgICAgICB7eyRpZH19CiAgICAgIiIiCiAgICAgY29udGVudCA9IHJlc29sdmVfY29udGVu
dChyZXNwb25zZSkKIApAQCAtMzkyLDcgKzQwMiw3IEBAIGNsYXNzIFN1YkZ1bmN0aW9ucyhvYmpl
Y3QpOgogCiAgICAgQHN0YXRpY21ldGhvZAogICAgIGRlZiBmaWxlX2hhc2gocmVxdWVzdCwgYWxn
b3JpdGhtLCBwYXRoKToKLSAgICAgICAgYWxnb3JpdGhtID0gYWxnb3JpdGhtLmRlY29kZSgiYXNj
aWkiKQorICAgICAgICBhc3NlcnQgaXNpbnN0YW5jZShhbGdvcml0aG0sIHRleHRfdHlwZSkKICAg
ICAgICAgaWYgYWxnb3JpdGhtIG5vdCBpbiBTdWJGdW5jdGlvbnMuc3VwcG9ydGVkX2FsZ29yaXRo
bXM6CiAgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJVbnN1cHBvcnRlZCBlbmNyeXB0aW9u
IGFsZ29yaXRobTogJyVzJyIgJSBhbGdvcml0aG0pCiAKQEAgLTQwMCw3ICs0MTAsNyBAQCBjbGFz
cyBTdWJGdW5jdGlvbnMob2JqZWN0KToKICAgICAgICAgYWJzb2x1dGVfcGF0aCA9IG9zLnBhdGgu
am9pbihyZXF1ZXN0LmRvY19yb290LCBwYXRoKQogCiAgICAgICAgIHRyeToKLSAgICAgICAgICAg
IHdpdGggb3BlbihhYnNvbHV0ZV9wYXRoKSBhcyBmOgorICAgICAgICAgICAgd2l0aCBvcGVuKGFi
c29sdXRlX3BhdGgsICJyYiIpIGFzIGY6CiAgICAgICAgICAgICAgICAgaGFzaF9vYmoudXBkYXRl
KGYucmVhZCgpKQogICAgICAgICBleGNlcHQgSU9FcnJvcjoKICAgICAgICAgICAgICMgSW4gdGhp
cyBjb250ZXh0LCBhbiB1bmhhbmRsZWQgSU9FcnJvciB3aWxsIGJlIGludGVycHJldGVkIGJ5IHRo
ZQpAQCAtNDEwLDcgKzQyMCwyNiBAQCBjbGFzcyBTdWJGdW5jdGlvbnMob2JqZWN0KToKICAgICAg
ICAgICAgICMgdGhlIHBhdGggdG8gdGhlIGZpbGUgdG8gYmUgaGFzaGVkIGlzIGludmFsaWQuCiAg
ICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oJ0Nhbm5vdCBvcGVuIGZpbGUgZm9yIGhhc2ggY29t
cHV0YXRpb246ICIlcyInICUgYWJzb2x1dGVfcGF0aCkKIAotICAgICAgICByZXR1cm4gaGFzaF9v
YmouZGlnZXN0KCkuZW5jb2RlKCdiYXNlNjQnKS5zdHJpcCgpCisgICAgICAgIHJldHVybiBiYXNl
NjQuYjY0ZW5jb2RlKGhhc2hfb2JqLmRpZ2VzdCgpKS5zdHJpcCgpCisKKyAgICBAc3RhdGljbWV0
aG9kCisgICAgZGVmIGZzX3BhdGgocmVxdWVzdCwgcGF0aCk6CisgICAgICAgIGlmIG5vdCBwYXRo
LnN0YXJ0c3dpdGgoIi8iKToKKyAgICAgICAgICAgIHN1YmRpciA9IHJlcXVlc3QucmVxdWVzdF9w
YXRoW2xlbihyZXF1ZXN0LnVybF9iYXNlKTpdCisgICAgICAgICAgICBpZiAiLyIgaW4gc3ViZGly
OgorICAgICAgICAgICAgICAgIHN1YmRpciA9IHN1YmRpci5yc3BsaXQoIi8iLCAxKVswXQorICAg
ICAgICAgICAgcm9vdF9yZWxfcGF0aCA9IHN1YmRpciArICIvIiArIHBhdGgKKyAgICAgICAgZWxz
ZToKKyAgICAgICAgICAgIHJvb3RfcmVsX3BhdGggPSBwYXRoWzE6XQorICAgICAgICByb290X3Jl
bF9wYXRoID0gcm9vdF9yZWxfcGF0aC5yZXBsYWNlKCIvIiwgb3MucGF0aC5zZXApCisgICAgICAg
IGFic29sdXRlX3BhdGggPSBvcy5wYXRoLmFic3BhdGgob3MucGF0aC5qb2luKHJlcXVlc3QuZG9j
X3Jvb3QsIHJvb3RfcmVsX3BhdGgpKQorICAgICAgICBpZiAiLi4iIGluIG9zLnBhdGgucmVscGF0
aChhYnNvbHV0ZV9wYXRoLCByZXF1ZXN0LmRvY19yb290KToKKyAgICAgICAgICAgIHJhaXNlIFZh
bHVlRXJyb3IoIlBhdGggb3V0c2lkZSB3cHQgcm9vdCIpCisgICAgICAgIHJldHVybiBhYnNvbHV0
ZV9wYXRoCisKKyAgICBAc3RhdGljbWV0aG9kCisgICAgZGVmIGhlYWRlcl9vcl9kZWZhdWx0KHJl
cXVlc3QsIG5hbWUsIGRlZmF1bHQpOgorICAgICAgICByZXR1cm4gcmVxdWVzdC5oZWFkZXJzLmdl
dChuYW1lLCBkZWZhdWx0KQogCiBkZWYgdGVtcGxhdGUocmVxdWVzdCwgY29udGVudCwgZXNjYXBl
X3R5cGU9Imh0bWwiKToKICAgICAjVE9ETzogVGhlcmUgYmFzaWNhbGx5IGlzbid0IGFueSBlcnJv
ciBoYW5kbGluZyBoZXJlCkBAIC00MjUsMTEgKzQ1NCwxMiBAQCBkZWYgdGVtcGxhdGUocmVxdWVz
dCwgY29udGVudCwgZXNjYXBlX3R5cGU9Imh0bWwiKToKICAgICAgICAgdG9rZW5zID0gZGVxdWUo
dG9rZW5zKQogCiAgICAgICAgIHRva2VuX3R5cGUsIGZpZWxkID0gdG9rZW5zLnBvcGxlZnQoKQot
ICAgICAgICBmaWVsZCA9IGZpZWxkLmRlY29kZSgiYXNjaWkiKQorICAgICAgICBhc3NlcnQgaXNp
bnN0YW5jZShmaWVsZCwgdGV4dF90eXBlKQogCiAgICAgICAgIGlmIHRva2VuX3R5cGUgPT0gInZh
ciI6CiAgICAgICAgICAgICB2YXJpYWJsZSA9IGZpZWxkCiAgICAgICAgICAgICB0b2tlbl90eXBl
LCBmaWVsZCA9IHRva2Vucy5wb3BsZWZ0KCkKKyAgICAgICAgICAgIGFzc2VydCBpc2luc3RhbmNl
KGZpZWxkLCB0ZXh0X3R5cGUpCiAgICAgICAgIGVsc2U6CiAgICAgICAgICAgICB2YXJpYWJsZSA9
IE5vbmUKIApAQCAtNDg4LDkgKzUxOCwxNCBAQCBkZWYgdGVtcGxhdGUocmVxdWVzdCwgY29udGVu
dCwgZXNjYXBlX3R5cGU9Imh0bWwiKToKICAgICAgICAgZXNjYXBlX2Z1bmMgPSB7Imh0bWwiOiBs
YW1iZGEgeDplc2NhcGUoeCwgcXVvdGU9VHJ1ZSksCiAgICAgICAgICAgICAgICAgICAgICAgICJu
b25lIjogbGFtYmRhIHg6eH1bZXNjYXBlX3R5cGVdCiAKLSAgICAgICAgI1Nob3VsZCBwb3NzaWJs
eSBzdXBwb3J0IGVzY2FwaW5nIGZvciBvdGhlciBjb250ZXh0cyBlLmcuIHNjcmlwdAotICAgICAg
ICAjVE9ETzogcmVhZCB0aGUgZW5jb2Rpbmcgb2YgdGhlIHJlc3BvbnNlCi0gICAgICAgIHJldHVy
biBlc2NhcGVfZnVuYyh0ZXh0X3R5cGUodmFsdWUpKS5lbmNvZGUoInV0Zi04IikKKyAgICAgICAg
IyBTaG91bGQgcG9zc2libHkgc3VwcG9ydCBlc2NhcGluZyBmb3Igb3RoZXIgY29udGV4dHMgZS5n
LiBzY3JpcHQKKyAgICAgICAgIyBUT0RPOiByZWFkIHRoZSBlbmNvZGluZyBvZiB0aGUgcmVzcG9u
c2UKKyAgICAgICAgIyBjZ2kuZXNjYXBlKCkgb25seSB0YWtlcyB0ZXh0IHN0cmluZ3MgaW4gUHl0
aG9uIDMuCisgICAgICAgIGlmIGlzaW5zdGFuY2UodmFsdWUsIGJpbmFyeV90eXBlKToKKyAgICAg
ICAgICAgIHZhbHVlID0gdmFsdWUuZGVjb2RlKCJ1dGYtOCIpCisgICAgICAgIGVsaWYgaXNpbnN0
YW5jZSh2YWx1ZSwgaW50KToKKyAgICAgICAgICAgIHZhbHVlID0gdGV4dF90eXBlKHZhbHVlKQor
ICAgICAgICByZXR1cm4gZXNjYXBlX2Z1bmModmFsdWUpLmVuY29kZSgidXRmLTgiKQogCiAgICAg
dGVtcGxhdGVfcmVnZXhwID0gcmUuY29tcGlsZShiciJ7eyhbXn1dKil9fSIpCiAgICAgbmV3X2Nv
bnRlbnQgPSB0ZW1wbGF0ZV9yZWdleHAuc3ViKGNvbmZpZ19yZXBsYWNlbWVudCwgY29udGVudCkK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvd3B0c2VydmUvd3B0c2VydmUvcmFuZ2VzLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRzZXJ2ZS93cHRzZXJ2ZS9yYW5nZXMucHkK
aW5kZXggOTc2Y2IxNzgxYTBkZmU2MTgwMzhkOTRlYTI5MTY5ZTZiODZiM2Y5OC4uMTA0ZGNhMmVm
NmY4MzRhZjhkZjM0MWU1MDhkOGExMDFlNDI0Mzk1NyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRzZXJ2ZS93cHRzZXJ2ZS9y
YW5nZXMucHkKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy93cHRzZXJ2ZS93cHRzZXJ2ZS9yYW5nZXMucHkKQEAgLTMsNiArMywxMCBAQCBmcm9t
IC51dGlscyBpbXBvcnQgSFRUUEV4Y2VwdGlvbgogCiBjbGFzcyBSYW5nZVBhcnNlcihvYmplY3Qp
OgogICAgIGRlZiBfX2NhbGxfXyhzZWxmLCBoZWFkZXIsIGZpbGVfc2l6ZSk6CisgICAgICAgIHRy
eToKKyAgICAgICAgICAgIGhlYWRlciA9IGhlYWRlci5kZWNvZGUoImFzY2lpIikKKyAgICAgICAg
ZXhjZXB0IFVuaWNvZGVEZWNvZGVFcnJvcjoKKyAgICAgICAgICAgIHJhaXNlIEhUVFBFeGNlcHRp
b24oNDAwLCAiTm9uLUFTQ0lJIHJhbmdlIGhlYWRlciB2YWx1ZSIpCiAgICAgICAgIHByZWZpeCA9
ICJieXRlcz0iCiAgICAgICAgIGlmIG5vdCBoZWFkZXIuc3RhcnRzd2l0aChwcmVmaXgpOgogICAg
ICAgICAgICAgcmFpc2UgSFRUUEV4Y2VwdGlvbig0MTYsIG1lc3NhZ2U9IlVucmVjb2duaXNlZCBy
YW5nZSB0eXBlICVzIiAlIChoZWFkZXIsKSkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0c2VydmUvd3B0c2VydmUvcmVxdWVz
dC5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
d3B0c2VydmUvd3B0c2VydmUvcmVxdWVzdC5weQppbmRleCBjYjU3NWNjZGJhNDUxNGE0NTZjMGNi
ZjczOTA0YmI2M2MxMmZkN2ZmLi5hODBiYzBjODMwMGFjZmNmNzY2NTEyYjg5ZWNmZWUzMzhiYWMy
Mjk1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3dwdHNlcnZlL3dwdHNlcnZlL3JlcXVlc3QucHkKKysrIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRzZXJ2ZS93cHRzZXJ2ZS9y
ZXF1ZXN0LnB5CkBAIC0xLDcgKzEsNyBAQAogaW1wb3J0IGJhc2U2NAogaW1wb3J0IGNnaQogZnJv
bSBzaXgubW92ZXMuaHR0cF9jb29raWVzIGltcG9ydCBCYXNlQ29va2llCi1mcm9tIHNpeCBpbXBv
cnQgQnl0ZXNJTworZnJvbSBzaXggaW1wb3J0IEJ5dGVzSU8sIGJpbmFyeV90eXBlLCB0ZXh0X3R5
cGUsIGl0ZXJpdGVtcywgUFkzCiBpbXBvcnQgdGVtcGZpbGUKIAogZnJvbSBzaXgubW92ZXMudXJs
bGliLnBhcnNlIGltcG9ydCBwYXJzZV9xc2wsIHVybHNwbGl0CkBAIC0zMDgsNyArMzA4LDcgQEAg
Y2xhc3MgUmVxdWVzdChvYmplY3QpOgogICAgICAgICAgICAgc2VsZi5yYXdfaW5wdXQuc2Vlaygw
KQogICAgICAgICAgICAgZnMgPSBjZ2kuRmllbGRTdG9yYWdlKGZwPXNlbGYucmF3X2lucHV0LAog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVudmlyb249eyJSRVFVRVNUX01FVEhP
RCI6IHNlbGYubWV0aG9kfSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWFk
ZXJzPXNlbGYuaGVhZGVycywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWFk
ZXJzPXNlbGYucmF3X2hlYWRlcnMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
a2VlcF9ibGFua192YWx1ZXM9VHJ1ZSkKICAgICAgICAgICAgIHNlbGYuX1BPU1QgPSBNdWx0aURp
Y3QuZnJvbV9maWVsZF9zdG9yYWdlKGZzKQogICAgICAgICAgICAgc2VsZi5yYXdfaW5wdXQuc2Vl
ayhwb3MpCkBAIC0zMTgsMTAgKzMxOCwxMiBAQCBjbGFzcyBSZXF1ZXN0KG9iamVjdCk6CiAgICAg
ZGVmIGNvb2tpZXMoc2VsZik6CiAgICAgICAgIGlmIHNlbGYuX2Nvb2tpZXMgaXMgTm9uZToKICAg
ICAgICAgICAgIHBhcnNlciA9IEJhc2VDb29raWUoKQotICAgICAgICAgICAgY29va2llX2hlYWRl
cnMgPSBzZWxmLmhlYWRlcnMuZ2V0KCJjb29raWUiLCAiIikKKyAgICAgICAgICAgIGNvb2tpZV9o
ZWFkZXJzID0gc2VsZi5oZWFkZXJzLmdldCgiY29va2llIiwgYiIiKQorICAgICAgICAgICAgaWYg
UFkzOgorICAgICAgICAgICAgICAgIGNvb2tpZV9oZWFkZXJzID0gY29va2llX2hlYWRlcnMuZGVj
b2RlKCJpc28tODg1OS0xIikKICAgICAgICAgICAgIHBhcnNlci5sb2FkKGNvb2tpZV9oZWFkZXJz
KQogICAgICAgICAgICAgY29va2llcyA9IENvb2tpZXMoKQotICAgICAgICAgICAgZm9yIGtleSwg
dmFsdWUgaW4gcGFyc2VyLml0ZXJpdGVtcygpOgorICAgICAgICAgICAgZm9yIGtleSwgdmFsdWUg
aW4gaXRlcml0ZW1zKHBhcnNlcik6CiAgICAgICAgICAgICAgICAgY29va2llc1trZXldID0gQ29v
a2llVmFsdWUodmFsdWUpCiAgICAgICAgICAgICBzZWxmLl9jb29raWVzID0gY29va2llcwogICAg
ICAgICByZXR1cm4gc2VsZi5fY29va2llcwpAQCAtMzU1LDExICszNTcsMzQgQEAgY2xhc3MgSDJS
ZXF1ZXN0KFJlcXVlc3QpOgogICAgICAgICBzdXBlcihIMlJlcXVlc3QsIHNlbGYpLl9faW5pdF9f
KHJlcXVlc3RfaGFuZGxlcikKIAogCitkZWYgX21heWJlX2VuY29kZShzKToKKyAgICAiIiJFbmNv
ZGVzIGEgdGV4dC10eXBlIHN0cmluZyBpbnRvIGJpbmFyeSBkYXRhIHVzaW5nIGlzby04ODU5LTEu
CisKKyAgICBSZXR1cm5zIGBzdHJgIGluIFB5dGhvbiAyIGFuZCBgYnl0ZXNgIGluIFB5dGhvbiAz
LiBUaGUgZnVuY3Rpb24gaXMgYSBuby1vcAorICAgIGlmIHRoZSBhcmd1bWVudCBhbHJlYWR5IGhh
cyBhIGJpbmFyeSB0eXBlLgorICAgICIiIgorICAgIGlmIGlzaW5zdGFuY2UocywgYmluYXJ5X3R5
cGUpOgorICAgICAgICByZXR1cm4gcworCisgICAgIyBQeXRob24gMyBhc3N1bWVzIGlzby04ODU5
LTEgd2hlbiBwYXJzaW5nIGhlYWRlcnMsIHdoaWNoIHdpbGwgZ2FyYmxlIHRleHQKKyAgICAjIHdp
dGggbm9uIEFTQ0lJIGNoYXJhY3RlcnMuIFdlIHRyeSB0byBlbmNvZGUgdGhlIHRleHQgYmFjayB0
byBiaW5hcnkuCisgICAgIyBodHRwczovL2dpdGh1Yi5jb20vcHl0aG9uL2NweXRob24vYmxvYi8y
NzNmYzIyMGIyNTkzM2U0NDNjODJhZjY4ODhlYjE4NzFkMDMyZmI4L0xpYi9odHRwL2NsaWVudC5w
eSNMMjEzCisgICAgaWYgaXNpbnN0YW5jZShzLCB0ZXh0X3R5cGUpOgorICAgICAgICByZXR1cm4g
cy5lbmNvZGUoImlzby04ODU5LTEiKQorCisgICAgcmFpc2UgVHlwZUVycm9yKCJVbmV4cGVjdGVk
IHZhbHVlIGluIFJlcXVlc3RIZWFkZXJzOiAlciIgJSBzKQorCisKIGNsYXNzIFJlcXVlc3RIZWFk
ZXJzKGRpY3QpOgotICAgICIiIkRpY3Rpb25hcnktbGlrZSBBUEkgZm9yIGFjY2Vzc2luZyByZXF1
ZXN0IGhlYWRlcnMuIiIiCisgICAgIiIiUmVhZC1vbmx5IGRpY3Rpb25hcnktbGlrZSBBUEkgZm9y
IGFjY2Vzc2luZyByZXF1ZXN0IGhlYWRlcnMuCisKKyAgICBVbmxpa2UgQmFzZUhUVFBSZXF1ZXN0
SGFuZGxlci5oZWFkZXJzLCB0aGlzIGNsYXNzIGFsd2F5cyByZXR1cm5zIGFsbAorICAgIGhlYWRl
cnMgd2l0aCB0aGUgc2FtZSBuYW1lIChzZXBhcmF0ZWQgYnkgY29tbWFzKS4gQW5kIGl0IGVuc3Vy
ZXMgYWxsIGtleXMKKyAgICAoaS5lLiBuYW1lcyBvZiBoZWFkZXJzKSBhbmQgdmFsdWVzIGhhdmUg
YmluYXJ5IHR5cGUuCisgICAgIiIiCiAgICAgZGVmIF9faW5pdF9fKHNlbGYsIGl0ZW1zKToKICAg
ICAgICAgZm9yIGhlYWRlciBpbiBpdGVtcy5rZXlzKCk6Ci0gICAgICAgICAgICBrZXkgPSBoZWFk
ZXIubG93ZXIoKQorICAgICAgICAgICAga2V5ID0gX21heWJlX2VuY29kZShoZWFkZXIpLmxvd2Vy
KCkKICAgICAgICAgICAgICMgZ2V0IGFsbCBoZWFkZXJzIHdpdGggdGhlIHNhbWUgbmFtZQogICAg
ICAgICAgICAgdmFsdWVzID0gaXRlbXMuZ2V0YWxsbWF0Y2hpbmdoZWFkZXJzKGhlYWRlcikKICAg
ICAgICAgICAgIGlmIGxlbih2YWx1ZXMpID4gMToKQEAgLTM2OSwxNSArMzk0LDE3IEBAIGNsYXNz
IFJlcXVlc3RIZWFkZXJzKGRpY3QpOgogICAgICAgICAgICAgICAgIGZvciB2YWx1ZSBpbiB2YWx1
ZXM6CiAgICAgICAgICAgICAgICAgICAgICMgZ2V0YWxsbWF0Y2hpbmdoZWFkZXJzIHJldHVybnMg
cmF3IGhlYWRlciBsaW5lcywgc28KICAgICAgICAgICAgICAgICAgICAgIyBzcGxpdCB0byBnZXQg
bmFtZSwgdmFsdWUKLSAgICAgICAgICAgICAgICAgICAgbXVsdGlwbGVzLmFwcGVuZCh2YWx1ZS5z
cGxpdCgnOicsIDEpWzFdLnN0cmlwKCkpCi0gICAgICAgICAgICAgICAgZGljdC5fX3NldGl0ZW1f
XyhzZWxmLCBrZXksIG11bHRpcGxlcykKKyAgICAgICAgICAgICAgICAgICAgbXVsdGlwbGVzLmFw
cGVuZChfbWF5YmVfZW5jb2RlKHZhbHVlKS5zcGxpdChiJzonLCAxKVsxXS5zdHJpcCgpKQorICAg
ICAgICAgICAgICAgIGhlYWRlcnMgPSBtdWx0aXBsZXMKICAgICAgICAgICAgIGVsc2U6Ci0gICAg
ICAgICAgICAgICAgZGljdC5fX3NldGl0ZW1fXyhzZWxmLCBrZXksIFtpdGVtc1toZWFkZXJdXSkK
KyAgICAgICAgICAgICAgICBoZWFkZXJzID0gW19tYXliZV9lbmNvZGUoaXRlbXNbaGVhZGVyXSld
CisgICAgICAgICAgICBkaWN0Ll9fc2V0aXRlbV9fKHNlbGYsIGtleSwgaGVhZGVycykKIAogCiAg
ICAgZGVmIF9fZ2V0aXRlbV9fKHNlbGYsIGtleSk6CiAgICAgICAgICIiIkdldCBhbGwgaGVhZGVy
cyBvZiBhIGNlcnRhaW4gKGNhc2UtaW5zZW5zaXRpdmUpIG5hbWUuIElmIHRoZXJlIGlzCiAgICAg
ICAgIG1vcmUgdGhhbiBvbmUsIHRoZSB2YWx1ZXMgYXJlIHJldHVybmVkIGNvbW1hIHNlcGFyYXRl
ZCIiIgorICAgICAgICBrZXkgPSBfbWF5YmVfZW5jb2RlKGtleSkKICAgICAgICAgdmFsdWVzID0g
ZGljdC5fX2dldGl0ZW1fXyhzZWxmLCBrZXkubG93ZXIoKSkKICAgICAgICAgaWYgbGVuKHZhbHVl
cykgPT0gMToKICAgICAgICAgICAgIHJldHVybiB2YWx1ZXNbMF0KQEAgLTQwMyw2ICs0MzAsNyBA
QCBjbGFzcyBSZXF1ZXN0SGVhZGVycyhkaWN0KToKICAgICBkZWYgZ2V0X2xpc3Qoc2VsZiwga2V5
LCBkZWZhdWx0PW1pc3NpbmcpOgogICAgICAgICAiIiJHZXQgYWxsIHRoZSBoZWFkZXIgdmFsdWVz
IGZvciBhIHBhcnRpY3VsYXIgZmllbGQgbmFtZSBhcwogICAgICAgICBhIGxpc3QiIiIKKyAgICAg
ICAga2V5ID0gX21heWJlX2VuY29kZShrZXkpCiAgICAgICAgIHRyeToKICAgICAgICAgICAgIHJl
dHVybiBkaWN0Ll9fZ2V0aXRlbV9fKHNlbGYsIGtleS5sb3dlcigpKQogICAgICAgICBleGNlcHQg
S2V5RXJyb3I6CkBAIC00MTIsNiArNDQwLDcgQEAgY2xhc3MgUmVxdWVzdEhlYWRlcnMoZGljdCk6
CiAgICAgICAgICAgICAgICAgcmFpc2UKIAogICAgIGRlZiBfX2NvbnRhaW5zX18oc2VsZiwga2V5
KToKKyAgICAgICAga2V5ID0gX21heWJlX2VuY29kZShrZXkpCiAgICAgICAgIHJldHVybiBkaWN0
Ll9fY29udGFpbnNfXyhzZWxmLCBrZXkubG93ZXIoKSkKIAogICAgIGRlZiBpdGVyaXRlbXMoc2Vs
Zik6CkBAIC01MjcsNyArNTU2LDcgQEAgY2xhc3MgTXVsdGlEaWN0KGRpY3QpOgogICAgICAgICAg
ICAgcmV0dXJuIGRpY3QuX19nZXRpdGVtX18oc2VsZiwga2V5KVswXQogICAgICAgICBlbGlmIGRl
ZmF1bHQgaXMgbm90IG1pc3Npbmc6CiAgICAgICAgICAgICByZXR1cm4gZGVmYXVsdAotICAgICAg
ICByYWlzZSBLZXlFcnJvcgorICAgICAgICByYWlzZSBLZXlFcnJvcihrZXkpCiAKICAgICBkZWYg
bGFzdChzZWxmLCBrZXksIGRlZmF1bHQ9bWlzc2luZyk6CiAgICAgICAgICIiIkdldCB0aGUgbGFz
dCB2YWx1ZSB3aXRoIGEgZ2l2ZW4ga2V5CkBAIC01NDEsMTQgKzU3MCwxNyBAQCBjbGFzcyBNdWx0
aURpY3QoZGljdCk6CiAgICAgICAgICAgICByZXR1cm4gZGljdC5fX2dldGl0ZW1fXyhzZWxmLCBr
ZXkpWy0xXQogICAgICAgICBlbGlmIGRlZmF1bHQgaXMgbm90IG1pc3Npbmc6CiAgICAgICAgICAg
ICByZXR1cm4gZGVmYXVsdAotICAgICAgICByYWlzZSBLZXlFcnJvcgorICAgICAgICByYWlzZSBL
ZXlFcnJvcihrZXkpCiAKICAgICBkZWYgZ2V0X2xpc3Qoc2VsZiwga2V5KToKICAgICAgICAgIiIi
R2V0IGFsbCB2YWx1ZXMgd2l0aCBhIGdpdmVuIGtleSBhcyBhIGxpc3QKIAogICAgICAgICA6cGFy
YW0ga2V5OiBUaGUga2V5IHRvIGxvb2t1cAogICAgICAgICAiIiIKLSAgICAgICAgcmV0dXJuIGRp
Y3QuX19nZXRpdGVtX18oc2VsZiwga2V5KQorICAgICAgICBpZiBrZXkgaW4gc2VsZjoKKyAgICAg
ICAgICAgIHJldHVybiBkaWN0Ll9fZ2V0aXRlbV9fKHNlbGYsIGtleSkKKyAgICAgICAgZWxzZToK
KyAgICAgICAgICAgIHJldHVybiBbXQogCiAgICAgQGNsYXNzbWV0aG9kCiAgICAgZGVmIGZyb21f
ZmllbGRfc3RvcmFnZShjbHMsIGZzKToKQEAgLTU2MSw5ICs1OTMsNyBAQCBjbGFzcyBNdWx0aURp
Y3QoZGljdCk6CiAgICAgICAgICAgICAgICAgdmFsdWVzID0gW3ZhbHVlc10KIAogICAgICAgICAg
ICAgZm9yIHZhbHVlIGluIHZhbHVlczoKLSAgICAgICAgICAgICAgICBpZiB2YWx1ZS5maWxlbmFt
ZToKLSAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSB2YWx1ZQotICAgICAgICAgICAgICAgIGVs
c2U6CisgICAgICAgICAgICAgICAgaWYgbm90IHZhbHVlLmZpbGVuYW1lOgogICAgICAgICAgICAg
ICAgICAgICB2YWx1ZSA9IHZhbHVlLnZhbHVlCiAgICAgICAgICAgICAgICAgc2VsZi5hZGQoa2V5
LCB2YWx1ZSkKICAgICAgICAgcmV0dXJuIHNlbGYKQEAgLTU5MCwyMSArNjIwLDI4IEBAIGNsYXNz
IEF1dGhlbnRpY2F0aW9uKG9iamVjdCk6CiAKICAgICBUaGUgcGFzc3dvcmQgc3VwcGxpZWQgaW4g
dGhlIEhUVFAgQXV0aG9yaXphdGlvbgogICAgIGhlYWRlciwgb3IgTm9uZQorCisgICAgQm90aCBh
dHRyaWJ1dGVzIGFyZSBiaW5hcnkgc3RyaW5ncyAoYHN0cmAgaW4gUHkyLCBgYnl0ZXNgIGluIFB5
MyksIHNpbmNlCisgICAgUkZDNzYxNyBTZWN0aW9uIDIuMSBkb2VzIG5vdCBzcGVjaWZ5IHRoZSBl
bmNvZGluZyBmb3IgdXNlcm5hbWUgJiBwYXNzd29yZAorICAgIChhcyBsb25nIGl0J3MgY29tcGF0
aWJsZSB3aXRoIEFTQ0lJKS4gVVRGLTggc2hvdWxkIGJlIGEgcmVsYXRpdmVseSBzYWZlCisgICAg
Y2hvaWNlIGlmIGNhbGxlcnMgbmVlZCB0byBkZWNvZGUgdGhlbSBhcyBtb3N0IGJyb3dzZXJzIHVz
ZSBpdC4KICAgICAiIiIKICAgICBkZWYgX19pbml0X18oc2VsZiwgaGVhZGVycyk6CiAgICAgICAg
IHNlbGYudXNlcm5hbWUgPSBOb25lCiAgICAgICAgIHNlbGYucGFzc3dvcmQgPSBOb25lCiAKLSAg
ICAgICAgYXV0aF9zY2hlbWVzID0geyJCYXNpYyI6IHNlbGYuZGVjb2RlX2Jhc2ljfQorICAgICAg
ICBhdXRoX3NjaGVtZXMgPSB7YiJCYXNpYyI6IHNlbGYuZGVjb2RlX2Jhc2ljfQogCiAgICAgICAg
IGlmICJhdXRob3JpemF0aW9uIiBpbiBoZWFkZXJzOgogICAgICAgICAgICAgaGVhZGVyID0gaGVh
ZGVycy5nZXQoImF1dGhvcml6YXRpb24iKQotICAgICAgICAgICAgYXV0aF90eXBlLCBkYXRhID0g
aGVhZGVyLnNwbGl0KCIgIiwgMSkKKyAgICAgICAgICAgIGFzc2VydCBpc2luc3RhbmNlKGhlYWRl
ciwgYmluYXJ5X3R5cGUpCisgICAgICAgICAgICBhdXRoX3R5cGUsIGRhdGEgPSBoZWFkZXIuc3Bs
aXQoYiIgIiwgMSkKICAgICAgICAgICAgIGlmIGF1dGhfdHlwZSBpbiBhdXRoX3NjaGVtZXM6CiAg
ICAgICAgICAgICAgICAgc2VsZi51c2VybmFtZSwgc2VsZi5wYXNzd29yZCA9IGF1dGhfc2NoZW1l
c1thdXRoX3R5cGVdKGRhdGEpCiAgICAgICAgICAgICBlbHNlOgogICAgICAgICAgICAgICAgIHJh
aXNlIEhUVFBFeGNlcHRpb24oNDAwLCAiVW5zdXBwb3J0ZWQgYXV0aGVudGljYXRpb24gc2NoZW1l
ICVzIiAlIGF1dGhfdHlwZSkKIAogICAgIGRlZiBkZWNvZGVfYmFzaWMoc2VsZiwgZGF0YSk6Ci0g
ICAgICAgIGRlY29kZWRfZGF0YSA9IGJhc2U2NC5kZWNvZGVzdHJpbmcoZGF0YSkKLSAgICAgICAg
cmV0dXJuIGRlY29kZWRfZGF0YS5zcGxpdCgiOiIsIDEpCisgICAgICAgIGFzc2VydCBpc2luc3Rh
bmNlKGRhdGEsIGJpbmFyeV90eXBlKQorICAgICAgICBkZWNvZGVkX2RhdGEgPSBiYXNlNjQuYjY0
ZGVjb2RlKGRhdGEpCisgICAgICAgIHJldHVybiBkZWNvZGVkX2RhdGEuc3BsaXQoYiI6IiwgMSkK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvd3B0c2VydmUvd3B0c2VydmUvcmVzcG9uc2UucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHNlcnZlL3dwdHNlcnZlL3Jlc3BvbnNl
LnB5CmluZGV4IGJjMjE0NTJlZWZmY2U3M2JjNjM5NWZhMWExNWYzNWY5ZjU1YjkzYzcuLjNhNjBj
MmJhYmIzOWQ4ZDc3OTk5MDIyYTdmYjRkMTg0Y2IwMTlhYTggMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0c2VydmUvd3B0c2Vy
dmUvcmVzcG9uc2UucHkKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy93cHRzZXJ2ZS93cHRzZXJ2ZS9yZXNwb25zZS5weQpAQCAtOCw3ICs4LDcg
QEAgZnJvbSAuY29uc3RhbnRzIGltcG9ydCByZXNwb25zZV9jb2RlcywgaDJfaGVhZGVycwogZnJv
bSAubG9nZ2VyIGltcG9ydCBnZXRfbG9nZ2VyCiBmcm9tIGlvIGltcG9ydCBCeXRlc0lPCiAKLWZy
b20gc2l4IGltcG9ydCBiaW5hcnlfdHlwZSwgdGV4dF90eXBlLCBpdGVydmFsdWVzCitmcm9tIHNp
eCBpbXBvcnQgYmluYXJ5X3R5cGUsIHRleHRfdHlwZSwgaW50ZWdlcl90eXBlcywgaXRlcnZhbHVl
cywgUFkzCiBmcm9tIGh5cGVyZnJhbWUuZnJhbWUgaW1wb3J0IEhlYWRlcnNGcmFtZSwgRGF0YUZy
YW1lLCBDb250aW51YXRpb25GcmFtZQogZnJvbSBocGFjay5zdHJ1Y3QgaW1wb3J0IEhlYWRlclR1
cGxlCiAKQEAgLTExMywxMCArMTEzLDEwIEBAIGNsYXNzIFJlc3BvbnNlKG9iamVjdCk6CiAgICAg
ICAgICAgICAgICAgICAgICAgICB0aW1lIG9yIGludGVydmFsIGZyb20gbm93IHdoZW4gdGhlIGNv
b2tpZSBleHBpcmVzCiAKICAgICAgICAgIiIiCi0gICAgICAgIGRheXMgPSBkaWN0KChpKzEsIG5h
bWUpIGZvciBpLCBuYW1lIGluIGVudW1lcmF0ZShbImphbiIsICJmZWIiLCAibWFyIiwKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiYXBy
IiwgIm1heSIsICJqdW4iLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICJqdWwiLCAiYXVnIiwgInNlcCIsCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIm9jdCIsICJub3YiLCAi
ZGVjIl0pKQorICAgICAgICBkYXlzID0ge2krMTogbmFtZSBmb3IgaSwgbmFtZSBpbiBlbnVtZXJh
dGUoWyJqYW4iLCAiZmViIiwgIm1hciIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgImFwciIsICJtYXkiLCAianVuIiwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAianVsIiwgImF1ZyIsICJzZXAi
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJv
Y3QiLCAibm92IiwgImRlYyJdKX0KICAgICAgICAgaWYgdmFsdWUgaXMgTm9uZToKICAgICAgICAg
ICAgIHZhbHVlID0gJycKICAgICAgICAgICAgIG1heF9hZ2UgPSAwCkBAIC0xNTcsNiArMTU3LDgg
QEAgY2xhc3MgUmVzcG9uc2Uob2JqZWN0KToKICAgICAgICAgY29va2llcyA9IHNlbGYuaGVhZGVy
cy5nZXQoIlNldC1Db29raWUiKQogICAgICAgICBwYXJzZXIgPSBCYXNlQ29va2llKCkKICAgICAg
ICAgZm9yIGNvb2tpZSBpbiBjb29raWVzOgorICAgICAgICAgICAgaWYgUFkzOgorICAgICAgICAg
ICAgICAgIGNvb2tpZSA9IGNvb2tpZS5kZWNvZGUoImlzby04ODU5LTEiKQogICAgICAgICAgICAg
cGFyc2VyLmxvYWQoY29va2llKQogCiAgICAgICAgIGlmIG5hbWUgaW4gcGFyc2VyLmtleXMoKToK
QEAgLTE3NywxNCArMTc5LDE4IEBAIGNsYXNzIFJlc3BvbnNlKG9iamVjdCk6CiAgICAgICAgIElm
IGFueSBwYXJ0IG9mIHRoZSBjb250ZW50IGlzIGEgZnVuY3Rpb24sIHRoaXMgd2lsbCBiZSBjYWxs
ZWQKICAgICAgICAgYW5kIHRoZSByZXN1bHRpbmcgdmFsdWUgKGlmIGFueSkgcmV0dXJuZWQuCiAK
LSAgICAgICAgOnBhcmFtIHJlYWRfZmlsZTogLSBib29sZWFuIGNvbnRyb2xsaW5nIHRoZSBiZWhh
dmlvdXIgd2hlbiBjb250ZW50Ci0gICAgICAgIGlzIGEgZmlsZSBoYW5kbGUuIFdoZW4gc2V0IHRv
IEZhbHNlIHRoZSBoYW5kbGUgd2lsbCBiZSByZXR1cm5lZCBkaXJlY3RseQotICAgICAgICBhbGxv
d2luZyB0aGUgZmlsZSB0byBiZSBwYXNzZWQgdG8gdGhlIG91dHB1dCBpbiBzbWFsbCBjaHVua3Mu
IFdoZW4gc2V0IHRvCi0gICAgICAgIFRydWUsIHRoZSBlbnRpcmUgY29udGVudCBvZiB0aGUgZmls
ZSB3aWxsIGJlIHJldHVybmVkIGFzIGEgc3RyaW5nIGZhY2lsaXRhdGluZwotICAgICAgICBub24t
c3RyZWFtaW5nIG9wZXJhdGlvbnMgbGlrZSB0ZW1wbGF0ZSBzdWJzdGl0dXRpb24uCisgICAgICAg
IDpwYXJhbSByZWFkX2ZpbGU6IGJvb2xlYW4gY29udHJvbGxpbmcgdGhlIGJlaGF2aW91ciB3aGVu
IGNvbnRlbnQgaXMgYQorICAgICAgICAgICAgICAgICAgICAgICAgICBmaWxlIGhhbmRsZS4gV2hl
biBzZXQgdG8gRmFsc2UgdGhlIGhhbmRsZSB3aWxsIGJlCisgICAgICAgICAgICAgICAgICAgICAg
ICAgIHJldHVybmVkIGRpcmVjdGx5IGFsbG93aW5nIHRoZSBmaWxlIHRvIGJlIHBhc3NlZCB0bwor
ICAgICAgICAgICAgICAgICAgICAgICAgICB0aGUgb3V0cHV0IGluIHNtYWxsIGNodW5rcy4gV2hl
biBzZXQgdG8gVHJ1ZSwgdGhlCisgICAgICAgICAgICAgICAgICAgICAgICAgIGVudGlyZSBjb250
ZW50IG9mIHRoZSBmaWxlIHdpbGwgYmUgcmV0dXJuZWQgYXMgYQorICAgICAgICAgICAgICAgICAg
ICAgICAgICBzdHJpbmcgZmFjaWxpdGF0aW5nIG5vbi1zdHJlYW1pbmcgb3BlcmF0aW9ucyBsaWtl
CisgICAgICAgICAgICAgICAgICAgICAgICAgIHRlbXBsYXRlIHN1YnN0aXR1dGlvbi4KICAgICAg
ICAgIiIiCi0gICAgICAgIGlmIGlzaW5zdGFuY2Uoc2VsZi5jb250ZW50LCAoYmluYXJ5X3R5cGUs
IHRleHRfdHlwZSkpOgorICAgICAgICBpZiBpc2luc3RhbmNlKHNlbGYuY29udGVudCwgYmluYXJ5
X3R5cGUpOgogICAgICAgICAgICAgeWllbGQgc2VsZi5jb250ZW50CisgICAgICAgIGVsaWYgaXNp
bnN0YW5jZShzZWxmLmNvbnRlbnQsIHRleHRfdHlwZSk6CisgICAgICAgICAgICB5aWVsZCBzZWxm
LmNvbnRlbnQuZW5jb2RlKHNlbGYuZW5jb2RpbmcpCiAgICAgICAgIGVsaWYgaGFzYXR0cihzZWxm
LmNvbnRlbnQsICJyZWFkIik6CiAgICAgICAgICAgICBpZiByZWFkX2ZpbGU6CiAgICAgICAgICAg
ICAgICAgeWllbGQgc2VsZi5jb250ZW50LnJlYWQoKQpAQCAtMjM1LDE4ICsyNDEsMTggQEAgY2xh
c3MgTXVsdGlwYXJ0Q29udGVudChvYmplY3QpOgogICAgIGRlZiBfX2luaXRfXyhzZWxmLCBib3Vu
ZGFyeT1Ob25lLCBkZWZhdWx0X2NvbnRlbnRfdHlwZT1Ob25lKToKICAgICAgICAgc2VsZi5pdGVt
cyA9IFtdCiAgICAgICAgIGlmIGJvdW5kYXJ5IGlzIE5vbmU6Ci0gICAgICAgICAgICBib3VuZGFy
eSA9IHN0cih1dWlkLnV1aWQ0KCkpCisgICAgICAgICAgICBib3VuZGFyeSA9IHRleHRfdHlwZSh1
dWlkLnV1aWQ0KCkpCiAgICAgICAgIHNlbGYuYm91bmRhcnkgPSBib3VuZGFyeQogICAgICAgICBz
ZWxmLmRlZmF1bHRfY29udGVudF90eXBlID0gZGVmYXVsdF9jb250ZW50X3R5cGUKIAogICAgIGRl
ZiBfX2NhbGxfXyhzZWxmKToKLSAgICAgICAgYm91bmRhcnkgPSAiLS0iICsgc2VsZi5ib3VuZGFy
eQotICAgICAgICBydiA9IFsiIiwgYm91bmRhcnldCisgICAgICAgIGJvdW5kYXJ5ID0gYiItLSIg
KyBzZWxmLmJvdW5kYXJ5LmVuY29kZSgiYXNjaWkiKQorICAgICAgICBydiA9IFtiIiIsIGJvdW5k
YXJ5XQogICAgICAgICBmb3IgaXRlbSBpbiBzZWxmLml0ZW1zOgotICAgICAgICAgICAgcnYuYXBw
ZW5kKHN0cihpdGVtKSkKKyAgICAgICAgICAgIHJ2LmFwcGVuZChpdGVtLnRvX2J5dGVzKCkpCiAg
ICAgICAgICAgICBydi5hcHBlbmQoYm91bmRhcnkpCi0gICAgICAgIHJ2Wy0xXSArPSAiLS0iCi0g
ICAgICAgIHJldHVybiAiXHJcbiIuam9pbihydikKKyAgICAgICAgcnZbLTFdICs9IGIiLS0iCisg
ICAgICAgIHJldHVybiBiIlxyXG4iLmpvaW4ocnYpCiAKICAgICBkZWYgYXBwZW5kX3BhcnQoc2Vs
ZiwgZGF0YSwgY29udGVudF90eXBlPU5vbmUsIGhlYWRlcnM9Tm9uZSk6CiAgICAgICAgIGlmIGNv
bnRlbnRfdHlwZSBpcyBOb25lOgpAQCAtMjYzLDYgKzI2OSw3IEBAIGNsYXNzIE11bHRpcGFydENv
bnRlbnQob2JqZWN0KToKIAogY2xhc3MgTXVsdGlwYXJ0UGFydChvYmplY3QpOgogICAgIGRlZiBf
X2luaXRfXyhzZWxmLCBkYXRhLCBjb250ZW50X3R5cGU9Tm9uZSwgaGVhZGVycz1Ob25lKToKKyAg
ICAgICAgYXNzZXJ0IGlzaW5zdGFuY2UoZGF0YSwgYmluYXJ5X3R5cGUpLCBkYXRhCiAgICAgICAg
IHNlbGYuaGVhZGVycyA9IFJlc3BvbnNlSGVhZGVycygpCiAKICAgICAgICAgaWYgY29udGVudF90
eXBlIGlzIG5vdCBOb25lOgpAQCAtMjcwLDcgKzI3Nyw3IEBAIGNsYXNzIE11bHRpcGFydFBhcnQo
b2JqZWN0KToKIAogICAgICAgICBpZiBoZWFkZXJzIGlzIG5vdCBOb25lOgogICAgICAgICAgICAg
Zm9yIG5hbWUsIHZhbHVlIGluIGhlYWRlcnM6Ci0gICAgICAgICAgICAgICAgaWYgbmFtZS5sb3dl
cigpID09ICJjb250ZW50LXR5cGUiOgorICAgICAgICAgICAgICAgIGlmIG5hbWUubG93ZXIoKSA9
PSBiImNvbnRlbnQtdHlwZSI6CiAgICAgICAgICAgICAgICAgICAgIGZ1bmMgPSBzZWxmLmhlYWRl
cnMuc2V0CiAgICAgICAgICAgICAgICAgZWxzZToKICAgICAgICAgICAgICAgICAgICAgZnVuYyA9
IHNlbGYuaGVhZGVycy5hcHBlbmQKQEAgLTI3OCwxMyArMjg1LDM2IEBAIGNsYXNzIE11bHRpcGFy
dFBhcnQob2JqZWN0KToKIAogICAgICAgICBzZWxmLmRhdGEgPSBkYXRhCiAKLSAgICBkZWYgX19z
dHJfXyhzZWxmKToKKyAgICBkZWYgdG9fYnl0ZXMoc2VsZik6CiAgICAgICAgIHJ2ID0gW10KLSAg
ICAgICAgZm9yIGl0ZW0gaW4gc2VsZi5oZWFkZXJzOgotICAgICAgICAgICAgcnYuYXBwZW5kKCIl
czogJXMiICUgaXRlbSkKLSAgICAgICAgcnYuYXBwZW5kKCIiKQorICAgICAgICBmb3Iga2V5LCB2
YWx1ZSBpbiBzZWxmLmhlYWRlcnM6CisgICAgICAgICAgICBhc3NlcnQgaXNpbnN0YW5jZShrZXks
IGJpbmFyeV90eXBlKQorICAgICAgICAgICAgYXNzZXJ0IGlzaW5zdGFuY2UodmFsdWUsIGJpbmFy
eV90eXBlKQorICAgICAgICAgICAgcnYuYXBwZW5kKGIiJXM6ICVzIiAlIChrZXksIHZhbHVlKSkK
KyAgICAgICAgcnYuYXBwZW5kKGIiIikKICAgICAgICAgcnYuYXBwZW5kKHNlbGYuZGF0YSkKLSAg
ICAgICAgcmV0dXJuICJcclxuIi5qb2luKHJ2KQorICAgICAgICByZXR1cm4gYiJcclxuIi5qb2lu
KHJ2KQorCisKK2RlZiBfbWF5YmVfZW5jb2RlKHMpOgorICAgICIiIkVuY29kZXMgYSB0ZXh0LXR5
cGUgc3RyaW5nIGludG8gYmluYXJ5IGRhdGEgdXNpbmcgaXNvLTg4NTktMS4KKworICAgIFJldHVy
bnMgYHN0cmAgaW4gUHl0aG9uIDIgYW5kIGBieXRlc2AgaW4gUHl0aG9uIDMuIFRoZSBmdW5jdGlv
biBpcyBhIG5vLW9wCisgICAgaWYgdGhlIGFyZ3VtZW50IGFscmVhZHkgaGFzIGEgYmluYXJ5IHR5
cGUuCisgICAgIiIiCisgICAgaWYgaXNpbnN0YW5jZShzLCBiaW5hcnlfdHlwZSk6CisgICAgICAg
IHJldHVybiBzCisKKyAgICAjIFB5dGhvbiAzIGFzc3VtZXMgaXNvLTg4NTktMSB3aGVuIHBhcnNp
bmcgaGVhZGVycywgd2hpY2ggd2lsbCBnYXJibGUgdGV4dAorICAgICMgd2l0aCBub24gQVNDSUkg
Y2hhcmFjdGVycy4gV2UgdHJ5IHRvIGVuY29kZSB0aGUgdGV4dCBiYWNrIHRvIGJpbmFyeS4KKyAg
ICAjIGh0dHBzOi8vZ2l0aHViLmNvbS9weXRob24vY3B5dGhvbi9ibG9iLzI3M2ZjMjIwYjI1OTMz
ZTQ0M2M4MmFmNjg4OGViMTg3MWQwMzJmYjgvTGliL2h0dHAvY2xpZW50LnB5I0wyMTMKKyAgICBp
ZiBpc2luc3RhbmNlKHMsIHRleHRfdHlwZSk6CisgICAgICAgIHJldHVybiBzLmVuY29kZSgiaXNv
LTg4NTktMSIpCisKKyAgICBpZiBpc2luc3RhbmNlKHMsIGludGVnZXJfdHlwZXMpOgorICAgICAg
ICByZXR1cm4gYiIlaSIgJSAocywpCisKKyAgICByYWlzZSBUeXBlRXJyb3IoIlVuZXhwZWN0ZWQg
dmFsdWUgaW4gUmVzcG9uc2VIZWFkZXJzOiAlciIgJSBzKQogCiAKIGNsYXNzIFJlc3BvbnNlSGVh
ZGVycyhvYmplY3QpOgpAQCAtMjk5LDYgKzMyOSw4IEBAIGNsYXNzIFJlc3BvbnNlSGVhZGVycyhv
YmplY3QpOgogICAgICAgICA6cGFyYW0ga2V5OiBOYW1lIG9mIHRoZSBoZWFkZXIgdG8gc2V0CiAg
ICAgICAgIDpwYXJhbSB2YWx1ZTogVmFsdWUgdG8gc2V0IHRoZSBoZWFkZXIgdG8KICAgICAgICAg
IiIiCisgICAgICAgIGtleSA9IF9tYXliZV9lbmNvZGUoa2V5KQorICAgICAgICB2YWx1ZSA9IF9t
YXliZV9lbmNvZGUodmFsdWUpCiAgICAgICAgIHNlbGYuZGF0YVtrZXkubG93ZXIoKV0gPSAoa2V5
LCBbdmFsdWVdKQogCiAgICAgZGVmIGFwcGVuZChzZWxmLCBrZXksIHZhbHVlKToKQEAgLTMwOCw2
ICszNDAsOCBAQCBjbGFzcyBSZXNwb25zZUhlYWRlcnMob2JqZWN0KToKICAgICAgICAgOnBhcmFt
IGtleTogTmFtZSBvZiB0aGUgaGVhZGVyIHRvIGFkZAogICAgICAgICA6cGFyYW0gdmFsdWU6IFZh
bHVlIHRvIHNldCBmb3IgdGhlIGhlYWRlcgogICAgICAgICAiIiIKKyAgICAgICAga2V5ID0gX21h
eWJlX2VuY29kZShrZXkpCisgICAgICAgIHZhbHVlID0gX21heWJlX2VuY29kZSh2YWx1ZSkKICAg
ICAgICAgaWYga2V5Lmxvd2VyKCkgaW4gc2VsZi5kYXRhOgogICAgICAgICAgICAgc2VsZi5kYXRh
W2tleS5sb3dlcigpXVsxXS5hcHBlbmQodmFsdWUpCiAgICAgICAgIGVsc2U6CkBAIC0zMTUsNiAr
MzQ5LDcgQEAgY2xhc3MgUmVzcG9uc2VIZWFkZXJzKG9iamVjdCk6CiAKICAgICBkZWYgZ2V0KHNl
bGYsIGtleSwgZGVmYXVsdD1taXNzaW5nKToKICAgICAgICAgIiIiR2V0IHRoZSBzZXQgdmFsdWVz
IGZvciBhIHBhcnRpY3VsYXIgaGVhZGVyLiIiIgorICAgICAgICBrZXkgPSBfbWF5YmVfZW5jb2Rl
KGtleSkKICAgICAgICAgdHJ5OgogICAgICAgICAgICAgcmV0dXJuIHNlbGZba2V5XQogICAgICAg
ICBleGNlcHQgS2V5RXJyb3I6CkBAIC0zMjYsMTIgKzM2MSwxNSBAQCBjbGFzcyBSZXNwb25zZUhl
YWRlcnMob2JqZWN0KToKICAgICAgICAgIiIiR2V0IGEgbGlzdCBvZiB2YWx1ZXMgZm9yIGEgcGFy
dGljdWxhciBoZWFkZXIKIAogICAgICAgICAiIiIKKyAgICAgICAga2V5ID0gX21heWJlX2VuY29k
ZShrZXkpCiAgICAgICAgIHJldHVybiBzZWxmLmRhdGFba2V5Lmxvd2VyKCldWzFdCiAKICAgICBk
ZWYgX19kZWxpdGVtX18oc2VsZiwga2V5KToKKyAgICAgICAga2V5ID0gX21heWJlX2VuY29kZShr
ZXkpCiAgICAgICAgIGRlbCBzZWxmLmRhdGFba2V5Lmxvd2VyKCldCiAKICAgICBkZWYgX19jb250
YWluc19fKHNlbGYsIGtleSk6CisgICAgICAgIGtleSA9IF9tYXliZV9lbmNvZGUoa2V5KQogICAg
ICAgICByZXR1cm4ga2V5Lmxvd2VyKCkgaW4gc2VsZi5kYXRhCiAKICAgICBkZWYgX19zZXRpdGVt
X18oc2VsZiwga2V5LCB2YWx1ZSk6CkBAIC0zOTEsNiArNDI5LDE3IEBAIGNsYXNzIEgyUmVzcG9u
c2VXcml0ZXIob2JqZWN0KToKICAgICAgICAgc2VsZi5sb2dnZXIgPSByZXNwb25zZS5sb2dnZXIK
IAogICAgIGRlZiB3cml0ZV9oZWFkZXJzKHNlbGYsIGhlYWRlcnMsIHN0YXR1c19jb2RlLCBzdGF0
dXNfbWVzc2FnZT1Ob25lLCBzdHJlYW1faWQ9Tm9uZSwgbGFzdD1GYWxzZSk6CisgICAgICAgICIi
IgorICAgICAgICBTZW5kIGEgSEVBREVSIGZyYW1lIHRoYXQgaXMgdHJhY2tlZCBieSB0aGUgbG9j
YWwgc3RhdGUgbWFjaGluZS4KKworICAgICAgICBXcml0ZSBhIEhFQURFUiBmcmFtZSB1c2luZyB0
aGUgSDIgQ29ubmVjdGlvbiBvYmplY3QsIHdpbGwgb25seSB3b3JrIGlmIHRoZSBzdHJlYW0gaXMg
aW4gYSBzdGF0ZSB0byBzZW5kCisgICAgICAgIEhFQURFUiBmcmFtZXMuCisKKyAgICAgICAgOnBh
cmFtIGhlYWRlcnM6IExpc3Qgb2YgKGhlYWRlciwgdmFsdWUpIHR1cGxlcworICAgICAgICA6cGFy
YW0gc3RhdHVzX2NvZGU6IFRoZSBIVFRQIHN0YXR1cyBjb2RlIG9mIHRoZSByZXNwb25zZQorICAg
ICAgICA6cGFyYW0gc3RyZWFtX2lkOiBJZCBvZiBzdHJlYW0gdG8gc2VuZCBmcmFtZSBvbi4gV2ls
bCB1c2UgdGhlIHJlcXVlc3Qgc3RyZWFtIElEIGlmIE5vbmUKKyAgICAgICAgOnBhcmFtIGxhc3Q6
IEZsYWcgdG8gc2lnbmFsIGlmIHRoaXMgaXMgdGhlIGxhc3QgZnJhbWUgaW4gc3RyZWFtLgorICAg
ICAgICAiIiIKICAgICAgICAgZm9ybWF0dGVkX2hlYWRlcnMgPSBbXQogICAgICAgICBzZWNvbmRh
cnlfaGVhZGVycyA9IFtdICAjIE5vbiAnOicgcHJlZml4ZWQgaGVhZGVycyBhcmUgdG8gYmUgYWRk
ZWQgYWZ0ZXJ3YXJkcwogCkBAIC00MTQsNiArNDYzLDE3IEBAIGNsYXNzIEgyUmVzcG9uc2VXcml0
ZXIob2JqZWN0KToKICAgICAgICAgICAgIHNlbGYud3JpdGUoY29ubmVjdGlvbikKIAogICAgIGRl
ZiB3cml0ZV9kYXRhKHNlbGYsIGl0ZW0sIGxhc3Q9RmFsc2UsIHN0cmVhbV9pZD1Ob25lKToKKyAg
ICAgICAgIiIiCisgICAgICAgIFNlbmQgYSBEQVRBIGZyYW1lIHRoYXQgaXMgdHJhY2tlZCBieSB0
aGUgbG9jYWwgc3RhdGUgbWFjaGluZS4KKworICAgICAgICBXcml0ZSBhIERBVEEgZnJhbWUgdXNp
bmcgdGhlIEgyIENvbm5lY3Rpb24gb2JqZWN0LCB3aWxsIG9ubHkgd29yayBpZiB0aGUgc3RyZWFt
IGlzIGluIGEgc3RhdGUgdG8gc2VuZAorICAgICAgICBEQVRBIGZyYW1lcy4gVXNlcyBmbG93IGNv
bnRyb2wgdG8gc3BsaXQgZGF0YSBpbnRvIG11bHRpcGxlIGRhdGEgZnJhbWVzIGlmIGl0IGV4Y2Vl
ZHMgdGhlIHNpemUgdGhhdCBjYW4KKyAgICAgICAgYmUgaW4gYSBzaW5nbGUgZnJhbWUuCisKKyAg
ICAgICAgOnBhcmFtIGl0ZW06IFRoZSBjb250ZW50IG9mIHRoZSBEQVRBIGZyYW1lCisgICAgICAg
IDpwYXJhbSBsYXN0OiBGbGFnIHRvIHNpZ25hbCBpZiB0aGlzIGlzIHRoZSBsYXN0IGZyYW1lIGlu
IHN0cmVhbS4KKyAgICAgICAgOnBhcmFtIHN0cmVhbV9pZDogSWQgb2Ygc3RyZWFtIHRvIHNlbmQg
ZnJhbWUgb24uIFdpbGwgdXNlIHRoZSByZXF1ZXN0IHN0cmVhbSBJRCBpZiBOb25lCisgICAgICAg
ICIiIgogICAgICAgICBpZiBpc2luc3RhbmNlKGl0ZW0sICh0ZXh0X3R5cGUsIGJpbmFyeV90eXBl
KSk6CiAgICAgICAgICAgICBkYXRhID0gQnl0ZXNJTyhzZWxmLmVuY29kZShpdGVtKSkKICAgICAg
ICAgZWxzZToKQEAgLTQ3NCwxMyArNTM0LDI1IEBAIGNsYXNzIEgyUmVzcG9uc2VXcml0ZXIob2Jq
ZWN0KToKICAgICAgICAgcmV0dXJuIHB1c2hfc3RyZWFtX2lkCiAKICAgICBkZWYgZW5kX3N0cmVh
bShzZWxmLCBzdHJlYW1faWQ9Tm9uZSk6CisgICAgICAgICIiIkVuZHMgdGhlIHN0cmVhbSB3aXRo
IHRoZSBnaXZlbiBJRCwgb3IgdGhlIG9uZSB0aGF0IHJlcXVlc3Qgd2FzIG1hZGUgb24gaWYgbm8g
SUQgZ2l2ZW4uIiIiCiAgICAgICAgIHdpdGggc2VsZi5oMmNvbm4gYXMgY29ubmVjdGlvbjoKICAg
ICAgICAgICAgIGNvbm5lY3Rpb24uZW5kX3N0cmVhbShzdHJlYW1faWQgaWYgc3RyZWFtX2lkIGlz
IG5vdCBOb25lIGVsc2Ugc2VsZi5yZXF1ZXN0LmgyX3N0cmVhbV9pZCkKICAgICAgICAgICAgIHNl
bGYud3JpdGUoY29ubmVjdGlvbikKICAgICAgICAgc2VsZi5zdHJlYW1fZW5kZWQgPSBUcnVlCiAK
ICAgICBkZWYgd3JpdGVfcmF3X2hlYWRlcl9mcmFtZShzZWxmLCBoZWFkZXJzLCBzdHJlYW1faWQ9
Tm9uZSwgZW5kX3N0cmVhbT1GYWxzZSwgZW5kX2hlYWRlcnM9RmFsc2UsIGZyYW1lX2Nscz1IZWFk
ZXJzRnJhbWUpOgotICAgICAgICAiIiJUaGlzIGJ5cGFzc2VzIHN0YXRlIGNoZWNraW5nIGFuZCBz
dWNoLCBhbmQgc2VuZHMgYSBoZWFkZXIgcmVnYXJkbGVzcyIiIgorICAgICAgICAiIiIKKyAgICAg
ICAgSWdub3JlcyB0aGUgc3RhdGVtYWNoaW5lIG9mIHRoZSBzdHJlYW0gYW5kIHNlbmRzIGEgSEVB
REVSIGZyYW1lIHJlZ2FyZGxlc3MuCisKKyAgICAgICAgVW5saWtlIGB3cml0ZV9oZWFkZXJzYCwg
dGhpcyBkb2VzIG5vdCBjaGVjayB0byBzZWUgaWYgYSBzdHJlYW0gaXMgaW4gdGhlIGNvcnJlY3Qg
c3RhdGUgdG8gaGF2ZSBIRUFERVIgZnJhbWVzCisgICAgICAgIHNlbnQgdGhyb3VnaCB0byBpdC4g
SXQgd2lsbCBidWlsZCBhIEhFQURFUiBmcmFtZSBhbmQgc2VuZCBpdCB3aXRob3V0IHVzaW5nIHRo
ZSBIMiBDb25uZWN0aW9uIG9iamVjdCBvdGhlciB0aGFuCisgICAgICAgIHRvIEhQQUNLIGVuY29k
ZSB0aGUgaGVhZGVycy4KKworICAgICAgICA6cGFyYW0gaGVhZGVyczogTGlzdCBvZiAoaGVhZGVy
LCB2YWx1ZSkgdHVwbGVzCisgICAgICAgIDpwYXJhbSBzdHJlYW1faWQ6IElkIG9mIHN0cmVhbSB0
byBzZW5kIGZyYW1lIG9uLiBXaWxsIHVzZSB0aGUgcmVxdWVzdCBzdHJlYW0gSUQgaWYgTm9uZQor
ICAgICAgICA6cGFyYW0gZW5kX3N0cmVhbTogU2V0IHRvIFRydWUgdG8gYWRkIEVORF9TVFJFQU0g
ZmxhZyB0byBmcmFtZQorICAgICAgICA6cGFyYW0gZW5kX2hlYWRlcnM6IFNldCB0byBUcnVlIHRv
IGFkZCBFTkRfSEVBREVSUyBmbGFnIHRvIGZyYW1lCisgICAgICAgICIiIgogICAgICAgICBpZiBu
b3Qgc3RyZWFtX2lkOgogICAgICAgICAgICAgc3RyZWFtX2lkID0gc2VsZi5yZXF1ZXN0LmgyX3N0
cmVhbV9pZAogCkBAIC01MDEsNyArNTczLDE3IEBAIGNsYXNzIEgyUmVzcG9uc2VXcml0ZXIob2Jq
ZWN0KToKICAgICAgICAgICAgIHNlbGYud3JpdGVfcmF3KGRhdGEpCiAKICAgICBkZWYgd3JpdGVf
cmF3X2RhdGFfZnJhbWUoc2VsZiwgZGF0YSwgc3RyZWFtX2lkPU5vbmUsIGVuZF9zdHJlYW09RmFs
c2UpOgotICAgICAgICAiIiJUaGlzIGJ5cGFzc2VzIHN0YXRlIGNoZWNraW5nIGFuZCBzdWNoLCBh
bmQgc2VuZHMgYSBkYXRhIGZyYW1lIHJlZ2FyZGxlc3MiIiIKKyAgICAgICAgIiIiCisgICAgICAg
IElnbm9yZXMgdGhlIHN0YXRlbWFjaGluZSBvZiB0aGUgc3RyZWFtIGFuZCBzZW5kcyBhIERBVEEg
ZnJhbWUgcmVnYXJkbGVzcy4KKworICAgICAgICBVbmxpa2UgYHdyaXRlX2RhdGFgLCB0aGlzIGRv
ZXMgbm90IGNoZWNrIHRvIHNlZSBpZiBhIHN0cmVhbSBpcyBpbiB0aGUgY29ycmVjdCBzdGF0ZSB0
byBoYXZlIERBVEEgZnJhbWVzCisgICAgICAgIHNlbnQgdGhyb3VnaCB0byBpdC4gSXQgd2lsbCBi
dWlsZCBhIERBVEEgZnJhbWUgYW5kIHNlbmQgaXQgd2l0aG91dCB1c2luZyB0aGUgSDIgQ29ubmVj
dGlvbiBvYmplY3QuIEl0IHdpbGwKKyAgICAgICAgbm90IHBlcmZvcm0gYW55IGZsb3cgY29udHJv
bCBjaGVja3MuCisKKyAgICAgICAgOnBhcmFtIGRhdGE6IFRoZSBkYXRhIHRvIGJlIHNlbnQgaW4g
dGhlIGZyYW1lCisgICAgICAgIDpwYXJhbSBzdHJlYW1faWQ6IElkIG9mIHN0cmVhbSB0byBzZW5k
IGZyYW1lIG9uLiBXaWxsIHVzZSB0aGUgcmVxdWVzdCBzdHJlYW0gSUQgaWYgTm9uZQorICAgICAg
ICA6cGFyYW0gZW5kX3N0cmVhbTogU2V0IHRvIFRydWUgdG8gYWRkIEVORF9TVFJFQU0gZmxhZyB0
byBmcmFtZQorICAgICAgICAiIiIKICAgICAgICAgaWYgbm90IHN0cmVhbV9pZDoKICAgICAgICAg
ICAgIHN0cmVhbV9pZCA9IHNlbGYucmVxdWVzdC5oMl9zdHJlYW1faWQKIApAQCAtNTE1LDEzICs1
OTcsMjUgQEAgY2xhc3MgSDJSZXNwb25zZVdyaXRlcihvYmplY3QpOgogICAgICAgICBzZWxmLndy
aXRlX3JhdyhkYXRhKQogCiAgICAgZGVmIHdyaXRlX3Jhd19jb250aW51YXRpb25fZnJhbWUoc2Vs
ZiwgaGVhZGVycywgc3RyZWFtX2lkPU5vbmUsIGVuZF9oZWFkZXJzPUZhbHNlKToKLSAgICAgICAg
IiIiVGhpcyBieXBhc3NlcyBzdGF0ZSBjaGVja2luZyBhbmQgc3VjaCwgYW5kIHNlbmRzIGEgY29u
dGludWF0aW9uIGZyYW1lIHJlZ2FyZGxlc3MiIiIKKyAgICAgICAgIiIiCisgICAgICAgIElnbm9y
ZXMgdGhlIHN0YXRlbWFjaGluZSBvZiB0aGUgc3RyZWFtIGFuZCBzZW5kcyBhIENPTlRJTlVBVElP
TiBmcmFtZSByZWdhcmRsZXNzLgorCisgICAgICAgIFRoaXMgcHJvdmlkZXMgdGhlIGFiaWxpdHkg
dG8gY3JlYXRlIGFuZCB3cml0ZSBhIENPTlRJTlVBVElPTiBmcmFtZSB0byB0aGUgc3RyZWFtLCB3
aGljaCBpcyBub3QgZXhwb3NlZCBieQorICAgICAgICBgd3JpdGVfaGVhZGVyc2AgYXMgdGhlIGgy
IGxpYnJhcnkgaGFuZGxlcyB0aGUgc3BsaXQgYmV0d2VlbiBIRUFERVIgYW5kIENPTlRJTlVBVElP
TiBpbnRlcm5hbGx5LiBXaWxsIHBlcmZvcm0KKyAgICAgICAgSFBBQ0sgZW5jb2Rpbmcgb24gdGhl
IGhlYWRlcnMuCisKKyAgICAgICAgOnBhcmFtIGhlYWRlcnM6IExpc3Qgb2YgKGhlYWRlciwgdmFs
dWUpIHR1cGxlcworICAgICAgICA6cGFyYW0gc3RyZWFtX2lkOiBJZCBvZiBzdHJlYW0gdG8gc2Vu
ZCBmcmFtZSBvbi4gV2lsbCB1c2UgdGhlIHJlcXVlc3Qgc3RyZWFtIElEIGlmIE5vbmUKKyAgICAg
ICAgOnBhcmFtIGVuZF9oZWFkZXJzOiBTZXQgdG8gVHJ1ZSB0byBhZGQgRU5EX0hFQURFUlMgZmxh
ZyB0byBmcmFtZQorICAgICAgICAiIiIKICAgICAgICAgc2VsZi53cml0ZV9yYXdfaGVhZGVyX2Zy
YW1lKGhlYWRlcnMsIHN0cmVhbV9pZD1zdHJlYW1faWQsIGVuZF9oZWFkZXJzPWVuZF9oZWFkZXJz
LCBmcmFtZV9jbHM9Q29udGludWF0aW9uRnJhbWUpCiAKIAotICAgIGRlZiBnZXRfbWF4X3BheWxv
YWRfc2l6ZShzZWxmKToKKyAgICBkZWYgZ2V0X21heF9wYXlsb2FkX3NpemUoc2VsZiwgc3RyZWFt
X2lkPU5vbmUpOgorICAgICAgICAiIiJSZXR1cm5zIHRoZSBtYXhpbXVtIHNpemUgb2YgYSBwYXls
b2FkIGZvciB0aGUgZ2l2ZW4gc3RyZWFtLiIiIgorICAgICAgICBzdHJlYW1faWQgPSBzdHJlYW1f
aWQgaWYgc3RyZWFtX2lkIGlzIG5vdCBOb25lIGVsc2Ugc2VsZi5yZXF1ZXN0LmgyX3N0cmVhbV9p
ZAogICAgICAgICB3aXRoIHNlbGYuaDJjb25uIGFzIGNvbm5lY3Rpb246Ci0gICAgICAgICAgICBy
ZXR1cm4gbWluKGNvbm5lY3Rpb24ucmVtb3RlX3NldHRpbmdzLm1heF9mcmFtZV9zaXplLCBjb25u
ZWN0aW9uLmxvY2FsX2Zsb3dfY29udHJvbF93aW5kb3coc2VsZi5yZXF1ZXN0LmgyX3N0cmVhbV9p
ZCkpIC0gOQorICAgICAgICAgICAgcmV0dXJuIG1pbihjb25uZWN0aW9uLnJlbW90ZV9zZXR0aW5n
cy5tYXhfZnJhbWVfc2l6ZSwgY29ubmVjdGlvbi5sb2NhbF9mbG93X2NvbnRyb2xfd2luZG93KHN0
cmVhbV9pZCkpIC0gOQogCiAgICAgZGVmIHdyaXRlKHNlbGYsIGNvbm5lY3Rpb24pOgogICAgICAg
ICBzZWxmLmNvbnRlbnRfd3JpdHRlbiA9IFRydWUKQEAgLTU2NSw2ICs2NTksOSBAQCBjbGFzcyBS
ZXNwb25zZVdyaXRlcihvYmplY3QpOgogICAgICAgICBzZWxmLmZpbGVfY2h1bmtfc2l6ZSA9IDMy
ICogMTAyNAogICAgICAgICBzZWxmLmRlZmF1bHRfc3RhdHVzID0gMjAwCiAKKyAgICBkZWYgX3Nl
ZW5faGVhZGVyKHNlbGYsIG5hbWUpOgorICAgICAgICByZXR1cm4gc2VsZi5lbmNvZGUobmFtZS5s
b3dlcigpKSBpbiBzZWxmLl9oZWFkZXJzX3NlZW4KKwogICAgIGRlZiB3cml0ZV9zdGF0dXMoc2Vs
ZiwgY29kZSwgbWVzc2FnZT1Ob25lKToKICAgICAgICAgIiIiV3JpdGUgb3V0IHRoZSBzdGF0dXMg
bGluZSBvZiBhIHJlc3BvbnNlLgogCkBAIC01OTAsMTkgKzY4NywyNSBAQCBjbGFzcyBSZXNwb25z
ZVdyaXRlcihvYmplY3QpOgogICAgICAgICAiIiIKICAgICAgICAgaWYgbm90IHNlbGYuX3N0YXR1
c193cml0dGVuOgogICAgICAgICAgICAgc2VsZi53cml0ZV9zdGF0dXMoc2VsZi5kZWZhdWx0X3N0
YXR1cykKLSAgICAgICAgc2VsZi5faGVhZGVyc19zZWVuLmFkZChuYW1lLmxvd2VyKCkpCi0gICAg
ICAgIHNlbGYud3JpdGUoIiVzOiAlc1xyXG4iICUgKG5hbWUsIHZhbHVlKSkKKyAgICAgICAgc2Vs
Zi5faGVhZGVyc19zZWVuLmFkZChzZWxmLmVuY29kZShuYW1lLmxvd2VyKCkpKQorICAgICAgICBz
ZWxmLndyaXRlKG5hbWUpCisgICAgICAgIHNlbGYud3JpdGUoYiI6ICIpCisgICAgICAgIGlmIGlz
aW5zdGFuY2UodmFsdWUsIGludCk6CisgICAgICAgICAgICBzZWxmLndyaXRlKHRleHRfdHlwZSh2
YWx1ZSkpCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBzZWxmLndyaXRlKHZhbHVlKQorICAg
ICAgICBzZWxmLndyaXRlKGIiXHJcbiIpCiAgICAgICAgIGlmIG5vdCBzZWxmLl9yZXNwb25zZS5l
eHBsaWNpdF9mbHVzaDoKICAgICAgICAgICAgIHNlbGYuZmx1c2goKQogCiAgICAgZGVmIHdyaXRl
X2RlZmF1bHRfaGVhZGVycyhzZWxmKToKICAgICAgICAgZm9yIG5hbWUsIGYgaW4gWygiU2VydmVy
Iiwgc2VsZi5faGFuZGxlci52ZXJzaW9uX3N0cmluZyksCiAgICAgICAgICAgICAgICAgICAgICAg
ICAoIkRhdGUiLCBzZWxmLl9oYW5kbGVyLmRhdGVfdGltZV9zdHJpbmcpXToKLSAgICAgICAgICAg
IGlmIG5hbWUubG93ZXIoKSBub3QgaW4gc2VsZi5faGVhZGVyc19zZWVuOgorICAgICAgICAgICAg
aWYgbm90IHNlbGYuX3NlZW5faGVhZGVyKG5hbWUpOgogICAgICAgICAgICAgICAgIHNlbGYud3Jp
dGVfaGVhZGVyKG5hbWUsIGYoKSkKIAogICAgICAgICBpZiAoaXNpbnN0YW5jZShzZWxmLl9yZXNw
b25zZS5jb250ZW50LCAoYmluYXJ5X3R5cGUsIHRleHRfdHlwZSkpIGFuZAotICAgICAgICAgICAg
ImNvbnRlbnQtbGVuZ3RoIiBub3QgaW4gc2VsZi5faGVhZGVyc19zZWVuKToKKyAgICAgICAgICAg
IG5vdCBzZWxmLl9zZWVuX2hlYWRlcigiY29udGVudC1sZW5ndGgiKSk6CiAgICAgICAgICAgICAj
V291bGQgYmUgbmljZSB0byBhdm9pZCBkb3VibGUtZW5jb2RpbmcgaGVyZQogICAgICAgICAgICAg
c2VsZi53cml0ZV9oZWFkZXIoIkNvbnRlbnQtTGVuZ3RoIiwgbGVuKHNlbGYuZW5jb2RlKHNlbGYu
X3Jlc3BvbnNlLmNvbnRlbnQpKSkKIApAQCAtNjE3LDcgKzcyMCw3IEBAIGNsYXNzIFJlc3BvbnNl
V3JpdGVyKG9iamVjdCk6CiAgICAgICAgICAgICBzZWxmLndyaXRlX2RlZmF1bHRfaGVhZGVycygp
CiAKICAgICAgICAgc2VsZi53cml0ZSgiXHJcbiIpCi0gICAgICAgIGlmICJjb250ZW50LWxlbmd0
aCIgbm90IGluIHNlbGYuX2hlYWRlcnNfc2VlbjoKKyAgICAgICAgaWYgbm90IHNlbGYuX3NlZW5f
aGVhZGVyKCJjb250ZW50LWxlbmd0aCIpOgogICAgICAgICAgICAgc2VsZi5fcmVzcG9uc2UuY2xv
c2VfY29ubmVjdGlvbiA9IFRydWUKICAgICAgICAgaWYgbm90IHNlbGYuX3Jlc3BvbnNlLmV4cGxp
Y2l0X2ZsdXNoOgogICAgICAgICAgICAgc2VsZi5mbHVzaCgpCkBAIC02NzcsNyArNzgwLDcgQEAg
Y2xhc3MgUmVzcG9uc2VXcml0ZXIob2JqZWN0KToKICAgICAgICAgZWxpZiBpc2luc3RhbmNlKGRh
dGEsIHRleHRfdHlwZSk6CiAgICAgICAgICAgICByZXR1cm4gZGF0YS5lbmNvZGUoc2VsZi5fcmVz
cG9uc2UuZW5jb2RpbmcpCiAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICByYWlzZSBWYWx1ZUVy
cm9yCisgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJkYXRhICVyIHNob3VsZCBiZSB0ZXh0
IG9yIGJpbmFyeSwgYnV0IGlzICVzIiAlIChkYXRhLCB0eXBlKGRhdGEpKSkKIAogICAgIGRlZiBm
bHVzaChzZWxmKToKICAgICAgICAgIiIiRmx1c2ggdGhlIG91dHB1dC4gUmV0dXJucyBGYWxzZSBp
ZiB0aGUgZmx1c2ggZmFpbGVkIGR1ZSB0bwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRzZXJ2ZS93cHRzZXJ2ZS9yb3V0ZXIu
cHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dw
dHNlcnZlL3dwdHNlcnZlL3JvdXRlci5weQppbmRleCA1MTE4YzAzYjcyODMxM2Y3MDNmNmU5MDAy
YzQwMDNmYzBkNmUxZDk4Li41Yjg2MGI1OTQyNTQ4YmM1YWFiODFjZTYzZGJiZGFkZGE3OTJkZTkw
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3dwdHNlcnZlL3dwdHNlcnZlL3JvdXRlci5weQorKysgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHNlcnZlL3dwdHNlcnZlL3JvdXRl
ci5weQpAQCAtMTAyLDcgKzEwMiw3IEBAIGNsYXNzIFJvdXRlcihvYmplY3QpOgogICAgICAgICAg
ICAgc2VsZi5yZWdpc3Rlcigqcm91dGUpCiAKICAgICBkZWYgcmVnaXN0ZXIoc2VsZiwgbWV0aG9k
cywgcGF0aCwgaGFuZGxlcik6Ci0gICAgICAgICIiIlJlZ2lzdGVyIGEgaGFuZGxlciBmb3IgYSBz
ZXQgb2YgcGF0aHMuCisgICAgICAgIHIiIiJSZWdpc3RlciBhIGhhbmRsZXIgZm9yIGEgc2V0IG9m
IHBhdGhzLgogCiAgICAgICAgIDpwYXJhbSBtZXRob2RzOiBTZXQgb2YgbWV0aG9kcyB0aGlzIHNo
b3VsZCBtYXRjaC4gIioiIGlzIGEKICAgICAgICAgICAgICAgICAgICAgICAgIHNwZWNpYWwgdmFs
dWUgaW5kaWNhdGluZyB0aGF0IGFsbCBtZXRob2RzIHNob3VsZApkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRzZXJ2ZS93cHRz
ZXJ2ZS9zZXJ2ZXIucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3dwdHNlcnZlL3dwdHNlcnZlL3NlcnZlci5weQppbmRleCA4MzcwY2NhMGQzODcy
ZjVlOWYwZmU2NWE0MDA0OWI1YzQwNjVjYjkxLi5jMDM3NzMyYTZiYWVmMzFkNThiM2RmZjkyN2Iw
NzRkZmNmYWJiNGZmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHNlcnZlL3dwdHNlcnZlL3NlcnZlci5weQorKysgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHNlcnZlL3dw
dHNlcnZlL3NlcnZlci5weQpAQCAtMjksNyArMjksOCBAQCBmcm9tIC5yb3V0ZXIgaW1wb3J0IFJv
dXRlcgogZnJvbSAudXRpbHMgaW1wb3J0IEhUVFBFeGNlcHRpb24KIGZyb20gLmNvbnN0YW50cyBp
bXBvcnQgaDJfaGVhZGVycwogCi0iIiJIVFRQIHNlcnZlciBkZXNpZ25lZCBmb3IgdGVzdGluZyBw
dXJwb3Nlcy4KKyIiIgorSFRUUCBzZXJ2ZXIgZGVzaWduZWQgZm9yIHRlc3RpbmcgcHVycG9zZXMu
CiAKIFRoZSBzZXJ2ZXIgaXMgZGVzaWduZWQgdG8gcHJvdmlkZSBmbGV4aWJpbGl0eSBpbiB0aGUg
d2F5IHRoYXQKIHJlcXVlc3RzIGFyZSBoYW5kbGVkLCBhbmQgdG8gcHJvdmlkZSBjb250cm9sIGJv
dGggb2YgZXhhY3RseQpAQCAtNDQsNyArNDUsNyBAQCBmb3IgcGFyc2luZyB0aGUgaW5jb21pbmcg
cmVxdWVzdC4gQSBSZXF1ZXN0UmV3cml0ZXIgaXMgdGhlbgogYXBwbGllZCBhbmQgbWF5IGNoYW5n
ZSB0aGUgcmVxdWVzdCBkYXRhIGlmIGl0IG1hdGNoZXMgYQogc3VwcGxpZWQgcnVsZS4KIAotT25j
ZSB0aGUgcmVxdWVzdCBkYXRhIGhhZCBiZWVuIGZpbmFsaXNlZCwgUmVxdWVzdCBhbmQgUmVwb25z
ZQorT25jZSB0aGUgcmVxdWVzdCBkYXRhIGhhZCBiZWVuIGZpbmFsaXNlZCwgUmVxdWVzdCBhbmQg
UmVzcG9uc2UKIG9iamVjdHMgYXJlIGNvbnN0cnVjdGVkLiBUaGVzZSBhcmUgdXNlZCBieSB0aGUg
b3RoZXIgcGFydHMgb2YgdGhlCiBzeXN0ZW0gdG8gcmVhZCBpbmZvcm1hdGlvbiBhYm91dCB0aGUg
cmVxdWVzdCBhbmQgbWFuaXB1bGF0ZSB0aGUKIHJlc3BvbnNlLgpAQCAtNjMsNiArNjQsMTIgQEAg
aGFuZGxlciByZXR1cm5zLCBvciBmb3IgZGlyZWN0bHkgd3JpdGluZyB0byB0aGUgb3V0cHV0IHN0
cmVhbS4KICIiIgogCiAKK0VESVRfSE9TVFNfSEVMUCA9ICgiUGxlYXNlIGVuc3VyZSBhbGwgdGhl
IG5lY2Vzc2FyeSBXUFQgc3ViZG9tYWlucyAiCisgICAgICAgICAgICAgICAgICAiYXJlIG1hcHBl
ZCB0byBhIGxvb3BiYWNrIGRldmljZSBpbiAvZXRjL2hvc3RzLiAiCisgICAgICAgICAgICAgICAg
ICAiU2VlIGh0dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxhdGZvcm0tdGVzdHMvd3B0I3J1bm5pbmct
dGhlLXRlc3RzICIKKyAgICAgICAgICAgICAgICAgICJmb3IgaW5zdHJ1Y3Rpb25zLiIpCisKKwog
Y2xhc3MgUmVxdWVzdFJld3JpdGVyKG9iamVjdCk6CiAgICAgZGVmIF9faW5pdF9fKHNlbGYsIHJ1
bGVzKToKICAgICAgICAgIiIiT2JqZWN0IGZvciByZXdyaXRpbmcgdGhlIHJlcXVlc3QgcGF0aC4K
QEAgLTE1NCw3ICsxNjEsNyBAQCBjbGFzcyBXZWJUZXN0U2VydmVyKFRocmVhZGluZ01peEluLCBC
YXNlSFRUUFNlcnZlci5IVFRQU2VydmVyKToKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBw
b3J0IHNwZWNpZmllZCBpbiB0aGUgc2VydmVyX2FkZHJlc3MgcGFyYW1ldGVyLgogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIEZhbHNlIHRvIGJpbmQgdGhlIHNlcnZlciBvbmx5IHRvIHRoZSBw
b3J0IGluIHRoZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlcnZlcl9hZGRyZXNzIHBh
cmFtZXRlciwgYnV0IG5vdCB0byB0aGUgYWRkcmVzcy4KLSAgICAgICAgOnBhcmFtIGxhdGVuY3k6
IERlbGF5IGluIG1zIHRvIHdhaXQgYmVmb3JlIHNldmluZyBlYWNoIHJlc3BvbnNlLCBvcgorICAg
ICAgICA6cGFyYW0gbGF0ZW5jeTogRGVsYXkgaW4gbXMgdG8gd2FpdCBiZWZvcmUgc2VydmluZyBl
YWNoIHJlc3BvbnNlLCBvcgogICAgICAgICAgICAgICAgICAgICAgICAgY2FsbGFibGUgdGhhdCBy
ZXR1cm5zIGEgZGVsYXkgaW4gbXMKICAgICAgICAgIiIiCiAgICAgICAgIHNlbGYucm91dGVyID0g
cm91dGVyCkBAIC0zMjEsOCArMzI4LDE0IEBAIGNsYXNzIEh0dHAyV2ViVGVzdFJlcXVlc3RIYW5k
bGVyKEJhc2VXZWJUZXN0UmVxdWVzdEhhbmRsZXIpOgogCiAgICAgZGVmIGhhbmRsZV9vbmVfcmVx
dWVzdChzZWxmKToKICAgICAgICAgIiIiCi0gICAgICAgIFRoaXMgaXMgdGhlIG1haW4gSFRUUC8y
LjAgSGFuZGxlci4gV2hlbiBhIGJyb3dzZXIgb3BlbnMgYSBjb25uZWN0aW9uIHRvIHRoZSBzZXJ2
ZXIKLSAgICAgICAgb24gdGhlIEhUVFAvMi4wIHBvcnQsIEJlY2F1c2UgdGhlcmUgY2FuIGJlIG11
bHRpcGxlIEgyIGNvbm5lY3Rpb25zIGFjdGl2ZSBhdCB0aGUgc2FtZQorICAgICAgICBUaGlzIGlz
IHRoZSBtYWluIEhUVFAvMi4wIEhhbmRsZXIuCisKKyAgICAgICAgV2hlbiBhIGJyb3dzZXIgb3Bl
bnMgYSBjb25uZWN0aW9uIHRvIHRoZSBzZXJ2ZXIKKyAgICAgICAgb24gdGhlIEhUVFAvMi4wIHBv
cnQsIHRoZSBzZXJ2ZXIgZW50ZXJzIHRoaXMgd2hpY2ggd2lsbCBpbml0aWF0ZSB0aGUgaDIgY29u
bmVjdGlvbgorICAgICAgICBhbmQga2VlcCBydW5uaW5nIHRocm91Z2hvdXQgdGhlIGR1cmF0aW9u
IG9mIHRoZSBpbnRlcmFjdGlvbiwgYW5kIHdpbGwgcmVhZC93cml0ZSBkaXJlY3RseQorICAgICAg
ICBmcm9tIHRoZSBzb2NrZXQuCisKKyAgICAgICAgQmVjYXVzZSB0aGVyZSBjYW4gYmUgbXVsdGlw
bGUgSDIgY29ubmVjdGlvbnMgYWN0aXZlIGF0IHRoZSBzYW1lCiAgICAgICAgIHRpbWUsIGEgVVVJ
RCBpcyBjcmVhdGVkIGZvciBlYWNoIHNvIHRoYXQgaXQgaXMgZWFzaWVyIHRvIHRlbGwgdGhlbSBh
cGFydCBpbiB0aGUgbG9ncy4KICAgICAgICAgIiIiCiAKQEAgLTMzOCw2ICszNTEsNyBAQCBjbGFz
cyBIdHRwMldlYlRlc3RSZXF1ZXN0SGFuZGxlcihCYXNlV2ViVGVzdFJlcXVlc3RIYW5kbGVyKToK
ICAgICAgICAgd2l0aCBzZWxmLmNvbm4gYXMgY29ubmVjdGlvbjoKICAgICAgICAgICAgIGNvbm5l
Y3Rpb24uaW5pdGlhdGVfY29ubmVjdGlvbigpCiAgICAgICAgICAgICBkYXRhID0gY29ubmVjdGlv
bi5kYXRhX3RvX3NlbmQoKQorICAgICAgICAgICAgd2luZG93X3NpemUgPSBjb25uZWN0aW9uLnJl
bW90ZV9zZXR0aW5ncy5pbml0aWFsX3dpbmRvd19zaXplCiAKICAgICAgICAgc2VsZi5yZXF1ZXN0
LnNlbmRhbGwoZGF0YSkKIApAQCAtMzQ2LDExICszNjAsMTUgQEAgY2xhc3MgSHR0cDJXZWJUZXN0
UmVxdWVzdEhhbmRsZXIoQmFzZVdlYlRlc3RSZXF1ZXN0SGFuZGxlcik6CiAKICAgICAgICAgdHJ5
OgogICAgICAgICAgICAgd2hpbGUgbm90IHNlbGYuY2xvc2VfY29ubmVjdGlvbjoKLSAgICAgICAg
ICAgICAgICAjIFRoaXMgc2l6ZSBtYXkgbmVlZCB0byBiZSBtYWRlIHZhcmlhYmxlIGJhc2VkIG9u
IHJlbW90ZSBzZXR0aW5ncz8KLSAgICAgICAgICAgICAgICBkYXRhID0gc2VsZi5yZXF1ZXN0LnJl
Y3YoNjU1MzUpCisgICAgICAgICAgICAgICAgZGF0YSA9IHNlbGYucmVxdWVzdC5yZWN2KHdpbmRv
d19zaXplKQorICAgICAgICAgICAgICAgIGlmIGRhdGEgPT0gJyc6CisgICAgICAgICAgICAgICAg
ICAgIHNlbGYubG9nZ2VyLmRlYnVnKCcoJXMpIFNvY2tldCBDbG9zZWQnICUgc2VsZi51aWQpCisg
ICAgICAgICAgICAgICAgICAgIHNlbGYuY2xvc2VfY29ubmVjdGlvbiA9IFRydWUKKyAgICAgICAg
ICAgICAgICAgICAgY29udGludWUKIAogICAgICAgICAgICAgICAgIHdpdGggc2VsZi5jb25uIGFz
IGNvbm5lY3Rpb246CiAgICAgICAgICAgICAgICAgICAgIGZyYW1lcyA9IGNvbm5lY3Rpb24ucmVj
ZWl2ZV9kYXRhKGRhdGEpCisgICAgICAgICAgICAgICAgICAgIHdpbmRvd19zaXplID0gY29ubmVj
dGlvbi5yZW1vdGVfc2V0dGluZ3MuaW5pdGlhbF93aW5kb3dfc2l6ZQogCiAgICAgICAgICAgICAg
ICAgc2VsZi5sb2dnZXIuZGVidWcoJyglcykgRnJhbWVzIFJlY2VpdmVkOiAnICUgc2VsZi51aWQg
KyBzdHIoZnJhbWVzKSkKIApAQCAtMzg1LDYgKzQwMywxMiBAQCBjbGFzcyBIdHRwMldlYlRlc3RS
ZXF1ZXN0SGFuZGxlcihCYXNlV2ViVGVzdFJlcXVlc3RIYW5kbGVyKToKICAgICAgICAgICAgICAg
ICB0aHJlYWQuam9pbigpCiAKICAgICBkZWYgc3RhcnRfc3RyZWFtX3RocmVhZChzZWxmLCBmcmFt
ZSwgcXVldWUpOgorICAgICAgICAiIiIKKyAgICAgICAgVGhpcyBzdGFydHMgYSBuZXcgdGhyZWFk
IHRvIGhhbmRsZSBmcmFtZXMgZm9yIGEgc3BlY2lmaWMgc3RyZWFtLgorICAgICAgICA6cGFyYW0g
ZnJhbWU6IFRoZSBmaXJzdCBmcmFtZSBvbiB0aGUgc3RyZWFtCisgICAgICAgIDpwYXJhbSBxdWV1
ZTogQSBxdWV1ZSBvYmplY3QgdGhhdCB0aGUgdGhyZWFkIHdpbGwgdXNlIHRvIGNoZWNrIGZvciBu
ZXcgZnJhbWVzCisgICAgICAgIDpyZXR1cm46IFRoZSB0aHJlYWQgb2JqZWN0IHRoYXQgaGFzIGFs
cmVhZHkgYmVlbiBzdGFydGVkCisgICAgICAgICIiIgogICAgICAgICB0ID0gdGhyZWFkaW5nLlRo
cmVhZCgKICAgICAgICAgICAgIHRhcmdldD1IdHRwMldlYlRlc3RSZXF1ZXN0SGFuZGxlci5fc3Ry
ZWFtX3RocmVhZCwKICAgICAgICAgICAgIGFyZ3M9KHNlbGYsIGZyYW1lLnN0cmVhbV9pZCwgcXVl
dWUpCkBAIC00OTMsNyArNTE3LDYgQEAgY2xhc3MgSDJIZWFkZXJzKGRpY3QpOgogCiAKIGNsYXNz
IEgySGFuZGxlckNvcHkob2JqZWN0KToKLQogICAgIGRlZiBfX2luaXRfXyhzZWxmLCBoYW5kbGVy
LCByZXFfZnJhbWUsIHJmaWxlKToKICAgICAgICAgc2VsZi5oZWFkZXJzID0gSDJIZWFkZXJzKHJl
cV9mcmFtZS5oZWFkZXJzKQogICAgICAgICBzZWxmLmNvbW1hbmQgPSBzZWxmLmhlYWRlcnNbJ21l
dGhvZCddCkBAIC01MzIsNyArNTU1LDcgQEAgY2xhc3MgSHR0cDFXZWJUZXN0UmVxdWVzdEhhbmRs
ZXIoQmFzZVdlYlRlc3RSZXF1ZXN0SGFuZGxlcik6CiAgICAgICAgICAgICBzZWxmLmNsb3NlX2Nv
bm5lY3Rpb24gPSBUcnVlCiAgICAgICAgICAgICByZXR1cm4KIAotICAgICAgICBleGNlcHQgRXhj
ZXB0aW9uIGFzIGU6CisgICAgICAgIGV4Y2VwdCBFeGNlcHRpb246CiAgICAgICAgICAgICBlcnIg
PSB0cmFjZWJhY2suZm9ybWF0X2V4YygpCiAgICAgICAgICAgICBpZiByZXNwb25zZToKICAgICAg
ICAgICAgICAgICByZXNwb25zZS5zZXRfZXJyb3IoNTAwLCBlcnIpCkBAIC01NzUsNyArNTk4LDcg
QEAgY2xhc3MgV2ViVGVzdEh0dHBkKG9iamVjdCk6CiAgICAgOnBhcmFtIGNvbmZpZzogRGljdGlv
bmFyeSBob2xkaW5nIGVudmlyb25tZW50IGNvbmZpZ3VyYXRpb24gc2V0dGluZ3MgZm9yCiAgICAg
ICAgICAgICAgICAgICAgaGFuZGxlcnMgdG8gcmVhZCwgb3IgTm9uZSB0byB1c2UgdGhlIGRlZmF1
bHQgdmFsdWVzLgogICAgIDpwYXJhbSBiaW5kX2FkZHJlc3M6IEJvb2xlYW4gaW5kaWNhdGluZyB3
aGV0aGVyIHRvIGJpbmQgc2VydmVyIHRvIElQIGFkZHJlc3MuCi0gICAgOnBhcmFtIGxhdGVuY3k6
IERlbGF5IGluIG1zIHRvIHdhaXQgYmVmb3JlIHNldmluZyBlYWNoIHJlc3BvbnNlLCBvcgorICAg
IDpwYXJhbSBsYXRlbmN5OiBEZWxheSBpbiBtcyB0byB3YWl0IGJlZm9yZSBzZXJ2aW5nIGVhY2gg
cmVzcG9uc2UsIG9yCiAgICAgICAgICAgICAgICAgICAgIGNhbGxhYmxlIHRoYXQgcmV0dXJucyBh
IGRlbGF5IGluIG1zCiAKICAgICBIVFRQIHNlcnZlciBkZXNpZ25lZCBmb3IgdGVzdGluZyBzY2Vu
YXJpb3MuCkBAIC02MDUsNyArNjI4LDcgQEAgY2xhc3MgV2ViVGVzdEh0dHBkKG9iamVjdCk6CiAK
ICAgICAuLiBhdHRyaWJ1dGU6OiBzdGFydGVkCiAKLSAgICAgIEJvb2xlYW4gaW5kaWN0YWluZyB3
aGV0aGVyIHRoZSBzZXJ2ZXIgaXMgcnVubmluZworICAgICAgQm9vbGVhbiBpbmRpY2F0aW5nIHdo
ZXRoZXIgdGhlIHNlcnZlciBpcyBydW5uaW5nCiAKICAgICAiIiIKICAgICBkZWYgX19pbml0X18o
c2VsZiwgaG9zdD0iMTI3LjAuMC4xIiwgcG9ydD04MDAwLApAQCAtNjUzLDggKzY3Niw3IEBAIGNs
YXNzIFdlYlRlc3RIdHRwZChvYmplY3QpOgogCiAgICAgICAgICAgICBfaG9zdCwgc2VsZi5wb3J0
ID0gc2VsZi5odHRwZC5zb2NrZXQuZ2V0c29ja25hbWUoKQogICAgICAgICBleGNlcHQgRXhjZXB0
aW9uOgotICAgICAgICAgICAgc2VsZi5sb2dnZXIuZXJyb3IoIkZhaWxlZCB0byBzdGFydCBIVFRQ
IHNlcnZlci4gIgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIllvdSBtYXkgbmVlZCB0
byBlZGl0IC9ldGMvaG9zdHMgb3Igc2ltaWxhciwgc2VlIFJFQURNRS5tZC4iKQorICAgICAgICAg
ICAgc2VsZi5sb2dnZXIuY3JpdGljYWwoIkZhaWxlZCB0byBzdGFydCBIVFRQIHNlcnZlci4ge30i
LmZvcm1hdChFRElUX0hPU1RTX0hFTFApKQogICAgICAgICAgICAgcmFpc2UKIAogICAgIGRlZiBz
dGFydChzZWxmLCBibG9jaz1GYWxzZSk6CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHNlcnZlL3dwdHNlcnZlL3NzbHV0aWxz
L19faW5pdF9fLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy93cHRzZXJ2ZS93cHRzZXJ2ZS9zc2x1dGlscy9fX2luaXRfXy5weQppbmRleCA2Njk5
ZWRiNTk2NDUzMGU3ZTM1MjQ5N2RlNDNmZjFlMTU0YjUyYTFkLi5lODliYjk2ZjgyZmJjYzA5YTBh
Yzc5MmJlZGFlOGM2NGU4MzhkOGFhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHNlcnZlL3dwdHNlcnZlL3NzbHV0aWxzL19f
aW5pdF9fLnB5CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvd3B0c2VydmUvd3B0c2VydmUvc3NsdXRpbHMvX19pbml0X18ucHkKQEAgLTExLDQg
KzExLDQgQEAgZGVmIGdldF9jbHMobmFtZSk6CiAgICAgdHJ5OgogICAgICAgICByZXR1cm4gZW52
aXJvbm1lbnRzW25hbWVdCiAgICAgZXhjZXB0IEtleUVycm9yOgotICAgICAgICByYWlzZSBWYWx1
ZUVycm9yKCIlcyBpcyBub3QgYSB2YWlkIHNzbCB0eXBlLiIgJSBuYW1lKQorICAgICAgICByYWlz
ZSBWYWx1ZUVycm9yKCIlcyBpcyBub3QgYSB2YWxpZCBTU0wgdHlwZS4iICUgbmFtZSkKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
d3B0c2VydmUvd3B0c2VydmUvc3NsdXRpbHMvYmFzZS5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0c2VydmUvd3B0c2VydmUvc3NsdXRpbHMv
YmFzZS5weQppbmRleCBjOTViNjkzZjM3MTIzMTc4YzMzZjkzMTI1ZTdkOGRmNDY4OTlkYjNjLi42
M2VmNDVjYzg2OWFjZTMwNmUwODMxZDEyNDgzYTllYWZlMjU2NTM5IDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHNlcnZlL3dw
dHNlcnZlL3NzbHV0aWxzL2Jhc2UucHkKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRzZXJ2ZS93cHRzZXJ2ZS9zc2x1dGlscy9iYXNlLnB5
CkBAIC0xMyw1ICsxMyw1IEBAIGNsYXNzIE5vU1NMRW52aXJvbm1lbnQob2JqZWN0KToKICAgICBk
ZWYgaG9zdF9jZXJ0X3BhdGgoc2VsZiwgaG9zdHMpOgogICAgICAgICByZXR1cm4gTm9uZSwgTm9u
ZQogCi0gICAgZGVmIGNhX2NlcnRfcGF0aChzZWxmKToKKyAgICBkZWYgY2FfY2VydF9wYXRoKHNl
bGYsIGhvc3RzKToKICAgICAgICAgcmV0dXJuIE5vbmUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0c2VydmUvd3B0c2VydmUv
c3NsdXRpbHMvb3BlbnNzbC5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvd3B0c2VydmUvd3B0c2VydmUvc3NsdXRpbHMvb3BlbnNzbC5weQppbmRl
eCBlYmJjZjY4ZDcxNmQxZGE3NTIyMTU3ZmQ5ZTMwYmIxZmJkMTg1YTE1Li5hZWExYzczODBiMTc5
Y2VkMTM2NmI2NjE3MDU3NTc4YjM1ZDllMTRiIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHNlcnZlL3dwdHNlcnZlL3NzbHV0
aWxzL29wZW5zc2wucHkKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy93cHRzZXJ2ZS93cHRzZXJ2ZS9zc2x1dGlscy9vcGVuc3NsLnB5CkBAIC02
LDcgKzYsNyBAQCBpbXBvcnQgc3VicHJvY2VzcwogaW1wb3J0IHRlbXBmaWxlCiBmcm9tIGRhdGV0
aW1lIGltcG9ydCBkYXRldGltZSwgdGltZWRlbHRhCiAKLWZyb20gc2l4IGltcG9ydCBpdGVyaXRl
bXMKK2Zyb20gc2l4IGltcG9ydCBpdGVyaXRlbXMsIFBZMgogCiAjIEFtb3VudCBvZiB0aW1lIGJl
eW9uZCB0aGUgcHJlc2VudCB0byBjb25zaWRlciBjZXJ0aWZpY2F0ZXMgImV4cGlyZWQuIiBUaGlz
CiAjIGFsbG93cyBjZXJ0aWZpY2F0ZXMgdG8gYmUgcHJvYWN0aXZlbHkgcmUtZ2VuZXJhdGVkIGlu
IHRoZSAiYnVmZmVyIiBwZXJpb2QKQEAgLTE0LDYgKzE0LDE3IEBAIGZyb20gc2l4IGltcG9ydCBp
dGVyaXRlbXMKIENFUlRfRVhQSVJZX0JVRkZFUiA9IGRpY3QoaG91cnM9NikKIAogCitkZWYgX2Vu
c3VyZV9zdHIocywgZW5jb2RpbmcpOgorICAgICIiIm1ha2VzIHN1cmUgcyBpcyBhbiBpbnN0YW5j
ZSBvZiBzdHIsIGNvbnZlcnRpbmcgd2l0aCBlbmNvZGluZyBpZiBuZWVkZWQiIiIKKyAgICBpZiBp
c2luc3RhbmNlKHMsIHN0cik6CisgICAgICAgIHJldHVybiBzCisKKyAgICBpZiBQWTI6CisgICAg
ICAgIHJldHVybiBzLmVuY29kZShlbmNvZGluZykKKyAgICBlbHNlOgorICAgICAgICByZXR1cm4g
cy5kZWNvZGUoZW5jb2RpbmcpCisKKwogY2xhc3MgT3BlblNTTChvYmplY3QpOgogICAgIGRlZiBf
X2luaXRfXyhzZWxmLCBsb2dnZXIsIGJpbmFyeSwgYmFzZV9wYXRoLCBjb25mX3BhdGgsIGhvc3Rz
LCBkdXJhdGlvbiwKICAgICAgICAgICAgICAgICAgYmFzZV9jb25mX3BhdGg9Tm9uZSk6CkBAIC02
NSwxOCArNzYsMTQgQEAgY2xhc3MgT3BlblNTTChvYmplY3QpOgogICAgICAgICAgICAgc2VsZi5j
bWQgKz0gWyItY29uZmlnIiwgc2VsZi5jb25mX3BhdGhdCiAgICAgICAgIHNlbGYuY21kICs9IGxp
c3QoYXJncykKIAotICAgICAgICAjIENvcHkgdGhlIGVudmlyb25tZW50LCBjb252ZXJ0aW5nIHRv
IHBsYWluIHN0cmluZ3MuIFdpbmRvd3MKLSAgICAgICAgIyBTdGFydFByb2Nlc3MgaXMgcGlja3kg
YWJvdXQgYWxsIHRoZSBrZXlzL3ZhbHVlcyBiZWluZyBwbGFpbiBzdHJpbmdzLAotICAgICAgICAj
IGJ1dCBhdCBsZWFzdCBpbiBNU1lTIHNoZWxscywgdGhlIG9zLmVudmlyb24gZGljdGlvbmFyeSBj
YW4gYmUgbWl4ZWQuCisgICAgICAgICMgQ29weSB0aGUgZW52aXJvbm1lbnQsIGNvbnZlcnRpbmcg
dG8gcGxhaW4gc3RyaW5ncy4gV2luMzIgU3RhcnRQcm9jZXNzCisgICAgICAgICMgaXMgcGlja3kg
YWJvdXQgYWxsIHRoZSBrZXlzL3ZhbHVlcyBiZWluZyBzdHIgKG9uIGJvdGggUHkyLzMpLgogICAg
ICAgICBlbnYgPSB7fQogICAgICAgICBmb3IgaywgdiBpbiBpdGVyaXRlbXMob3MuZW52aXJvbik6
Ci0gICAgICAgICAgICB0cnk6Ci0gICAgICAgICAgICAgICAgZW52W2suZW5jb2RlKCJ1dGY4Iild
ID0gdi5lbmNvZGUoInV0ZjgiKQotICAgICAgICAgICAgZXhjZXB0IFVuaWNvZGVEZWNvZGVFcnJv
cjoKLSAgICAgICAgICAgICAgICBwYXNzCisgICAgICAgICAgICBlbnZbX2Vuc3VyZV9zdHIoaywg
InV0ZjgiKV0gPSBfZW5zdXJlX3N0cih2LCAidXRmOCIpCiAKICAgICAgICAgaWYgc2VsZi5iYXNl
X2NvbmZfcGF0aCBpcyBub3QgTm9uZToKLSAgICAgICAgICAgIGVudlsiT1BFTlNTTF9DT05GIl0g
PSBzZWxmLmJhc2VfY29uZl9wYXRoLmVuY29kZSgidXRmOCIpCisgICAgICAgICAgICBlbnZbIk9Q
RU5TU0xfQ09ORiJdID0gX2Vuc3VyZV9zdHIoc2VsZi5iYXNlX2NvbmZfcGF0aCwgInV0Zi04IikK
IAogICAgICAgICBzZWxmLnByb2MgPSBzdWJwcm9jZXNzLlBvcGVuKHNlbGYuY21kLCBzdGRvdXQ9
c3VicHJvY2Vzcy5QSVBFLCBzdGRlcnI9c3VicHJvY2Vzcy5TVERPVVQsCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgZW52PWVudikKQEAgLTExNCwxNiArMTIxLDE4IEBAIGRl
ZiBtYWtlX3N1YmplY3QoY29tbW9uX25hbWUsCiAgICAgcmV0dXJuICIiLmpvaW4ocnYpCiAKIGRl
ZiBtYWtlX2FsdF9uYW1lcyhob3N0cyk6Ci0gICAgcnYgPSBbXQotICAgIGZvciBuYW1lIGluIGhv
c3RzOgotICAgICAgICBydi5hcHBlbmQoIkROUzolcyIgJSBuYW1lKQotICAgIHJldHVybiAiLCIu
am9pbihydikKKyAgICByZXR1cm4gIiwiLmpvaW4oIkROUzolcyIgJSBob3N0IGZvciBob3N0IGlu
IGhvc3RzKQorCitkZWYgbWFrZV9uYW1lX2NvbnN0cmFpbnRzKGhvc3RzKToKKyAgICByZXR1cm4g
IiwiLmpvaW4oInBlcm1pdHRlZDtETlM6JXMiICUgaG9zdCBmb3IgaG9zdCBpbiBob3N0cykKIAog
ZGVmIGdldF9jb25maWcocm9vdF9kaXIsIGhvc3RzLCBkdXJhdGlvbj0zMCk6CiAgICAgaWYgaG9z
dHMgaXMgTm9uZToKICAgICAgICAgc2FuX2xpbmUgPSAiIgorICAgICAgICBjb25zdHJhaW50c19s
aW5lID0gIiIKICAgICBlbHNlOgogICAgICAgICBzYW5fbGluZSA9ICJzdWJqZWN0QWx0TmFtZSA9
ICVzIiAlIG1ha2VfYWx0X25hbWVzKGhvc3RzKQorICAgICAgICBjb25zdHJhaW50c19saW5lID0g
Im5hbWVDb25zdHJhaW50cyA9ICIgKyBtYWtlX25hbWVfY29uc3RyYWludHMoaG9zdHMpCiAKICAg
ICBpZiBvcy5wYXRoLnNlcCA9PSAiXFwiOgogICAgICAgICAjIFRoaXMgc2VlbXMgdG8gYmUgbmVl
ZGVkIGZvciB0aGUgU2hpbmluZyBMaWdodCBPcGVuU1NMIG9uCkBAIC0yMTMsOSArMjIyLDExIEBA
IGJhc2ljQ29uc3RyYWludHMgPSBDQTp0cnVlCiBzdWJqZWN0S2V5SWRlbnRpZmllcj1oYXNoCiBh
dXRob3JpdHlLZXlJZGVudGlmaWVyPWtleWlkOmFsd2F5cyxpc3N1ZXI6YWx3YXlzCiBrZXlVc2Fn
ZSA9IGtleUNlcnRTaWduCislKGNvbnN0cmFpbnRzX2xpbmUpcwogIiIiICUgeyJyb290X2RpciI6
IHJvb3RfZGlyLAogICAgICAgICJzYW5fbGluZSI6IHNhbl9saW5lLAogICAgICAgICJkdXJhdGlv
biI6IGR1cmF0aW9uLAorICAgICAgICJjb25zdHJhaW50c19saW5lIjogY29uc3RyYWludHNfbGlu
ZSwKICAgICAgICAic2VwIjogb3MucGF0aC5zZXAucmVwbGFjZSgiXFwiLCAiXFxcXCIpfQogCiAg
ICAgcmV0dXJuIHJ2CkBAIC0yODcsMTMgKzI5OCwxMyBAQCBjbGFzcyBPcGVuU1NMRW52aXJvbm1l
bnQob2JqZWN0KToKICAgICAgICAgcmV0dXJuIE9wZW5TU0woc2VsZi5sb2dnZXIsIHNlbGYuYmlu
YXJ5LCBzZWxmLmJhc2VfcGF0aCwgY29uZl9wYXRoLCBob3N0cywKICAgICAgICAgICAgICAgICAg
ICAgICAgc2VsZi5kdXJhdGlvbiwgc2VsZi5iYXNlX2NvbmZfcGF0aCkKIAotICAgIGRlZiBjYV9j
ZXJ0X3BhdGgoc2VsZik6CisgICAgZGVmIGNhX2NlcnRfcGF0aChzZWxmLCBob3N0cyk6CiAgICAg
ICAgICIiIkdldCB0aGUgcGF0aCB0byB0aGUgQ0EgY2VydGlmaWNhdGUgZmlsZSwgZ2VuZXJhdGlu
ZyBhCiAgICAgICAgIG5ldyBvbmUgaWYgbmVlZGVkIiIiCiAgICAgICAgIGlmIHNlbGYuX2NhX2Nl
cnRfcGF0aCBpcyBOb25lIGFuZCBub3Qgc2VsZi5mb3JjZV9yZWdlbmVyYXRlOgogICAgICAgICAg
ICAgc2VsZi5fbG9hZF9jYV9jZXJ0KCkKICAgICAgICAgaWYgc2VsZi5fY2FfY2VydF9wYXRoIGlz
IE5vbmU6Ci0gICAgICAgICAgICBzZWxmLl9nZW5lcmF0ZV9jYSgpCisgICAgICAgICAgICBzZWxm
Ll9nZW5lcmF0ZV9jYShob3N0cykKICAgICAgICAgcmV0dXJuIHNlbGYuX2NhX2NlcnRfcGF0aAog
CiAgICAgZGVmIF9sb2FkX2NhX2NlcnQoc2VsZik6CkBAIC0zMjYsNyArMzM3LDcgQEAgY2xhc3Mg
T3BlblNTTEVudmlyb25tZW50KG9iamVjdCk6CiAgICAgICAgICNUT0RPOiBjaGVjayB0aGUga2V5
IGFjdHVhbGx5IHNpZ25lZCB0aGUgY2VydC4KICAgICAgICAgcmV0dXJuIFRydWUKIAotICAgIGRl
ZiBfZ2VuZXJhdGVfY2Eoc2VsZik6CisgICAgZGVmIF9nZW5lcmF0ZV9jYShzZWxmLCBob3N0cyk6
CiAgICAgICAgIHBhdGggPSBzZWxmLnBhdGgKICAgICAgICAgc2VsZi5sb2dnZXIuaW5mbygiR2Vu
ZXJhdGluZyBuZXcgQ0EgaW4gJXMiICUgc2VsZi5iYXNlX3BhdGgpCiAKQEAgLTMzNCw3ICszNDUs
NyBAQCBjbGFzcyBPcGVuU1NMRW52aXJvbm1lbnQob2JqZWN0KToKICAgICAgICAgcmVxX3BhdGgg
PSBwYXRoKCJjYXJlcS5wZW0iKQogICAgICAgICBjZXJ0X3BhdGggPSBwYXRoKCJjYWNlcnQucGVt
IikKIAotICAgICAgICB3aXRoIHNlbGYuX2NvbmZpZ19vcGVuc3NsKE5vbmUpIGFzIG9wZW5zc2w6
CisgICAgICAgIHdpdGggc2VsZi5fY29uZmlnX29wZW5zc2woaG9zdHMpIGFzIG9wZW5zc2w6CiAg
ICAgICAgICAgICBvcGVuc3NsKCJyZXEiLAogICAgICAgICAgICAgICAgICAgICAiLWJhdGNoIiwK
ICAgICAgICAgICAgICAgICAgICAgIi1uZXciLApAQCAtMzUxLDYgKzM2Miw3IEBAIGNsYXNzIE9w
ZW5TU0xFbnZpcm9ubWVudChvYmplY3QpOgogICAgICAgICAgICAgICAgICAgICAiLXBhc3NpbiIs
ICJwYXNzOiVzIiAlIHNlbGYucGFzc3dvcmQsCiAgICAgICAgICAgICAgICAgICAgICItc2VsZnNp
Z24iLAogICAgICAgICAgICAgICAgICAgICAiLWV4dGVuc2lvbnMiLCAidjNfY2EiLAorICAgICAg
ICAgICAgICAgICAgICAiLW5vdGV4dCIsCiAgICAgICAgICAgICAgICAgICAgICItaW4iLCByZXFf
cGF0aCwKICAgICAgICAgICAgICAgICAgICAgIi1vdXQiLCBjZXJ0X3BhdGgpCiAKQEAgLTM5MSw3
ICs0MDMsNyBAQCBjbGFzcyBPcGVuU1NMRW52aXJvbm1lbnQob2JqZWN0KToKICAgICBkZWYgX2dl
bmVyYXRlX2hvc3RfY2VydChzZWxmLCBob3N0cyk6CiAgICAgICAgIGhvc3QgPSBob3N0c1swXQog
ICAgICAgICBpZiBzZWxmLl9jYV9rZXlfcGF0aCBpcyBOb25lOgotICAgICAgICAgICAgc2VsZi5f
Z2VuZXJhdGVfY2EoKQorICAgICAgICAgICAgc2VsZi5fZ2VuZXJhdGVfY2EoaG9zdHMpCiAgICAg
ICAgIGNhX2tleV9wYXRoID0gc2VsZi5fY2Ffa2V5X3BhdGgKIAogICAgICAgICBhc3NlcnQgb3Mu
cGF0aC5leGlzdHMoY2Ffa2V5X3BhdGgpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHNlcnZlL3dwdHNlcnZlL3NzbHV0aWxz
L3ByZWdlbmVyYXRlZC5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvd3B0c2VydmUvd3B0c2VydmUvc3NsdXRpbHMvcHJlZ2VuZXJhdGVkLnB5Cmlu
ZGV4IGZjNDg3ZGYzYWRkMDM5MWMzZWY3MWI2OWVkOWYzNzczNGYxNDI4OTEuLjY3MmExMDYzNWVk
MGI4ZjIxMDY1ODk1NDgyZjdiNzk2NTY5MGUwZDYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0c2VydmUvd3B0c2VydmUvc3Ns
dXRpbHMvcHJlZ2VuZXJhdGVkLnB5CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0c2VydmUvd3B0c2VydmUvc3NsdXRpbHMvcHJlZ2VuZXJh
dGVkLnB5CkBAIC0yMCw3ICsyMCw3IEBAIGNsYXNzIFByZWdlbmVyYXRlZFNTTEVudmlyb25tZW50
KG9iamVjdCk6CiAgICAgICAgICIiIlJldHVybiB0aGUga2V5IGFuZCBjZXJ0aWZpY2F0ZSBwYXRo
cyBmb3IgdGhlIGhvc3QiIiIKICAgICAgICAgcmV0dXJuIHNlbGYuX2hvc3Rfa2V5X3BhdGgsIHNl
bGYuX2hvc3RfY2VydF9wYXRoCiAKLSAgICBkZWYgY2FfY2VydF9wYXRoKHNlbGYpOgorICAgIGRl
ZiBjYV9jZXJ0X3BhdGgoc2VsZiwgaG9zdHMpOgogICAgICAgICAiIiJSZXR1cm4gdGhlIGNlcnRp
ZmljYXRlIHBhdGggb2YgdGhlIENBIHRoYXQgc2lnbmVkIHRoZQogICAgICAgICBob3N0IGNlcnRp
ZmljYXRlcywgb3IgTm9uZSBpZiB0aGF0IGlzbid0IGtub3duIiIiCiAgICAgICAgIHJldHVybiBz
ZWxmLl9jYV9jZXJ0X3BhdGgKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0c2VydmUvd3B0c2VydmUvc3NsdXRpbHMvdzNjLWlt
cG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3dwdHNlcnZlL3dwdHNlcnZlL3NzbHV0aWxzL3czYy1pbXBvcnQubG9nCmRlbGV0ZWQgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCA4Nzc1YmJiNjAyMzYxYWE0NDMzZTBkZTFiNjQxNmVjNmFjMzA1
NDY2Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0c2VydmUvd3B0
c2VydmUvc3NsdXRpbHMvdzNjLWltcG9ydC5sb2cKKysrIC9kZXYvbnVsbApAQCAtMSwyMCArMCww
IEBACi1UaGUgdGVzdHMgaW4gdGhpcyBkaXJlY3Rvcnkgd2VyZSBpbXBvcnRlZCBmcm9tIHRoZSBX
M0MgcmVwb3NpdG9yeS4KLURvIE5PVCBtb2RpZnkgdGhlc2UgdGVzdHMgZGlyZWN0bHkgaW4gV2Vi
S2l0LgotSW5zdGVhZCwgY3JlYXRlIGEgcHVsbCByZXF1ZXN0IG9uIHRoZSBXUFQgZ2l0aHViOgot
CWh0dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxhdGZvcm0tdGVzdHMvd3B0Ci0KLVRoZW4gcnVuIHRo
ZSBUb29scy9TY3JpcHRzL2ltcG9ydC13M2MtdGVzdHMgaW4gV2ViS2l0IHRvIHJlaW1wb3J0Ci0K
LURvIE5PVCBtb2RpZnkgb3IgcmVtb3ZlIHRoaXMgZmlsZS4KLQotLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1Q
cm9wZXJ0aWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi1Qcm9wZXJ0eSB2YWx1
ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKLU5vbmUKLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotTGlz
dCBvZiBmaWxlczoKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3dwdHNlcnZlL3dwdHNlcnZlL3NzbHV0aWxzL19faW5pdF9fLnB5Ci0vTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRzZXJ2ZS93cHRzZXJ2
ZS9zc2x1dGlscy9iYXNlLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy93cHRzZXJ2ZS93cHRzZXJ2ZS9zc2x1dGlscy9vcGVuc3NsLnB5Ci0vTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRzZXJ2ZS93
cHRzZXJ2ZS9zc2x1dGlscy9wcmVnZW5lcmF0ZWQucHkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0c2VydmUvd3B0c2VydmUv
c3Rhc2gucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3dwdHNlcnZlL3dwdHNlcnZlL3N0YXNoLnB5CmluZGV4IGFlNDhhODYxMTIzMzNiYjVmZmNk
Zjc2YzEwMGQ5MjlkZTJiNmZkOTEuLjhiNmZkMzRmMDJjMGU5YjcwNzNkMGM5NDAxMTcwN2VhYTRl
NWExZjEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvd3B0c2VydmUvd3B0c2VydmUvc3Rhc2gucHkKKysrIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRzZXJ2ZS93cHRzZXJ2ZS9z
dGFzaC5weQpAQCAtNiwyMyArNiwyOSBAQCBpbXBvcnQgdGhyZWFkaW5nCiBmcm9tIG11bHRpcHJv
Y2Vzc2luZy5tYW5hZ2VycyBpbXBvcnQgQWNxdWlyZXJQcm94eSwgQmFzZU1hbmFnZXIsIERpY3RQ
cm94eQogZnJvbSBzaXggaW1wb3J0IHRleHRfdHlwZQogCisKIGNsYXNzIFNlcnZlckRpY3RNYW5h
Z2VyKEJhc2VNYW5hZ2VyKToKICAgICBzaGFyZWRfZGF0YSA9IHt9CiAKKwogZGVmIF9nZXRfc2hh
cmVkKCk6CiAgICAgcmV0dXJuIFNlcnZlckRpY3RNYW5hZ2VyLnNoYXJlZF9kYXRhCiAKKwogU2Vy
dmVyRGljdE1hbmFnZXIucmVnaXN0ZXIoImdldF9kaWN0IiwKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGNhbGxhYmxlPV9nZXRfc2hhcmVkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAg
cHJveHl0eXBlPURpY3RQcm94eSkKIFNlcnZlckRpY3RNYW5hZ2VyLnJlZ2lzdGVyKCdMb2NrJywg
dGhyZWFkaW5nLkxvY2ssIEFjcXVpcmVyUHJveHkpCiAKKwogY2xhc3MgQ2xpZW50RGljdE1hbmFn
ZXIoQmFzZU1hbmFnZXIpOgogICAgIHBhc3MKIAorCiBDbGllbnREaWN0TWFuYWdlci5yZWdpc3Rl
cigiZ2V0X2RpY3QiKQogQ2xpZW50RGljdE1hbmFnZXIucmVnaXN0ZXIoIkxvY2siKQogCisKIGNs
YXNzIFN0YXNoU2VydmVyKG9iamVjdCk6CiAgICAgZGVmIF9faW5pdF9fKHNlbGYsIGFkZHJlc3M9
Tm9uZSwgYXV0aGtleT1Ob25lKToKICAgICAgICAgc2VsZi5hZGRyZXNzID0gYWRkcmVzcwpAQCAt
MzcsNiArNDMsNyBAQCBjbGFzcyBTdGFzaFNlcnZlcihvYmplY3QpOgogICAgICAgICBpZiBzZWxm
Lm1hbmFnZXIgaXMgbm90IE5vbmU6CiAgICAgICAgICAgICBzZWxmLm1hbmFnZXIuc2h1dGRvd24o
KQogCisKIGRlZiBsb2FkX2Vudl9jb25maWcoKToKICAgICBhZGRyZXNzLCBhdXRoa2V5ID0ganNv
bi5sb2Fkcyhvcy5lbnZpcm9uWyJXUFRfU1RBU0hfQ09ORklHIl0pCiAgICAgaWYgaXNpbnN0YW5j
ZShhZGRyZXNzLCBsaXN0KToKQEAgLTQ2LDEwICs1MywxMiBAQCBkZWYgbG9hZF9lbnZfY29uZmln
KCk6CiAgICAgYXV0aGtleSA9IGJhc2U2NC5iNjRkZWNvZGUoYXV0aGtleSkKICAgICByZXR1cm4g
YWRkcmVzcywgYXV0aGtleQogCisKIGRlZiBzdG9yZV9lbnZfY29uZmlnKGFkZHJlc3MsIGF1dGhr
ZXkpOgogICAgIGF1dGhrZXkgPSBiYXNlNjQuYjY0ZW5jb2RlKGF1dGhrZXkpCiAgICAgb3MuZW52
aXJvblsiV1BUX1NUQVNIX0NPTkZJRyJdID0ganNvbi5kdW1wcygoYWRkcmVzcywgYXV0aGtleS5k
ZWNvZGUoImFzY2lpIikpKQogCisKIGRlZiBzdGFydF9zZXJ2ZXIoYWRkcmVzcz1Ob25lLCBhdXRo
a2V5PU5vbmUpOgogICAgIGlmIGlzaW5zdGFuY2UoYXV0aGtleSwgdGV4dF90eXBlKToKICAgICAg
ICAgYXV0aGtleSA9IGF1dGhrZXkuZW5jb2RlKCJhc2NpaSIpCkBAIC03NSw2ICs4NCw3IEBAIGNs
YXNzIExvY2tXcmFwcGVyKG9iamVjdCk6CiAgICAgZGVmIF9fZXhpdF9fKHNlbGYsICphcmdzLCAq
Kmt3YXJncyk6CiAgICAgICAgIHNlbGYucmVsZWFzZSgpCiAKKwogI1RPRE86IENvbnNpZGVyIGV4
cGlyaW5nIHZhbHVlcyBhZnRlciBzb21lIGZpeGVkIHRpbWUgZm9yIGxvbmctcnVubmluZwogI3Nl
cnZlcnMKIApAQCAtMTA0LDYgKzExNCw3IEBAIGNsYXNzIFN0YXNoKG9iamVjdCk6CiAKICAgICBf
cHJveHkgPSBOb25lCiAgICAgbG9jayA9IE5vbmUKKyAgICBfaW5pdGlhbGl6aW5nID0gdGhyZWFk
aW5nLkxvY2soKQogCiAgICAgZGVmIF9faW5pdF9fKHNlbGYsIGRlZmF1bHRfcGF0aCwgYWRkcmVz
cz1Ob25lLCBhdXRoa2V5PU5vbmUpOgogICAgICAgICBzZWxmLmRlZmF1bHRfcGF0aCA9IGRlZmF1
bHRfcGF0aApAQCAtMTE1LDcgKzEyNiwxNiBAQCBjbGFzcyBTdGFzaChvYmplY3QpOgogICAgICAg
ICAgICAgU3Rhc2guX3Byb3h5ID0ge30KICAgICAgICAgICAgIFN0YXNoLmxvY2sgPSB0aHJlYWRp
bmcuTG9jaygpCiAKLSAgICAgICAgaWYgU3Rhc2guX3Byb3h5IGlzIE5vbmU6CisgICAgICAgICMg
SW5pdGlhbGl6aW5nIHRoZSBwcm94eSBpbnZvbHZlcyBjb25uZWN0aW5nIHRvIHRoZSByZW1vdGUg
cHJvY2VzcyBhbmQKKyAgICAgICAgIyByZXRyaWV2aW5nIHR3byBwcm94aWVkIG9iamVjdHMuIFRo
aXMgcHJvY2VzcyBpcyBub3QgaW5oZXJlbnRseQorICAgICAgICAjIGF0b21pYywgc28gYSBsb2Nr
IG11c3QgYmUgdXNlZCB0byBtYWtlIGl0IHNvLiBBdG9taWNpdHkgZW5zdXJlcyB0aGF0CisgICAg
ICAgICMgb25seSBvbmUgdGhyZWFkIGF0dGVtcHRzIHRvIGluaXRpYWxpemUgdGhlIGNvbm5lY3Rp
b24gYW5kIHRoYXQgYW55CisgICAgICAgICMgdGhyZWFkcyBydW5uaW5nIGluIHBhcmFsbGVsIGNv
cnJlY3RseSB3YWl0IGZvciBpbml0aWFsaXphdGlvbiB0byBiZQorICAgICAgICAjIGZ1bGx5IGNv
bXBsZXRlLgorICAgICAgICB3aXRoIFN0YXNoLl9pbml0aWFsaXppbmc6CisgICAgICAgICAgICBp
ZiBTdGFzaC5sb2NrOgorICAgICAgICAgICAgICAgIHJldHVybgorCiAgICAgICAgICAgICBtYW5h
Z2VyID0gQ2xpZW50RGljdE1hbmFnZXIoYWRkcmVzcywgYXV0aGtleSkKICAgICAgICAgICAgIG1h
bmFnZXIuY29ubmVjdCgpCiAgICAgICAgICAgICBTdGFzaC5fcHJveHkgPSBtYW5hZ2VyLmdldF9k
aWN0KCkKQEAgLTE2Myw1ICsxODMsNiBAQCBjbGFzcyBTdGFzaChvYmplY3QpOgogCiAgICAgICAg
IHJldHVybiB2YWx1ZQogCisKIGNsYXNzIFN0YXNoRXJyb3IoRXhjZXB0aW9uKToKICAgICBwYXNz
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3dwdHNlcnZlL3dwdHNlcnZlL3V0aWxzLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRzZXJ2ZS93cHRzZXJ2ZS91dGlscy5weQpp
bmRleCBkMGY4N2ZlYTYwZjhlMzA0ZDU0ZmU3NGQ1ZjczYzcyY2Y2MTY0ZmIyLi42NGIwOGEyN2Fh
OGIzM2Q0Y2VhODY3N2IzMGQzMzA5NmNhZTIxMmQ1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHNlcnZlL3dwdHNlcnZlL3V0
aWxzLnB5CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvd3B0c2VydmUvd3B0c2VydmUvdXRpbHMucHkKQEAgLTEwMCw2ICsxMDAsNyBAQCBkZWYg
aXNfYmFkX3BvcnQocG9ydCk6CiAgICAgXQogCiBkZWYgZ2V0X3BvcnQoaG9zdD0nJyk6CisgICAg
aG9zdCA9IGhvc3Qgb3IgJzEyNy4wLjAuMScKICAgICBwb3J0ID0gMAogICAgIHdoaWxlIFRydWU6
CiAgICAgICAgIGZyZWVfc29ja2V0ID0gX29wZW5fc29ja2V0KGhvc3QsIDApCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHNl
cnZlL3dwdHNlcnZlL3czYy1pbXBvcnQubG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRzZXJ2ZS93cHRzZXJ2ZS93M2MtaW1wb3J0LmxvZwpk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNjIzNDJmOTJjMWY4MmZhZTMxOWIzMzM0MWUz
N2I0NjI0NDNhMmI5MC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAot
LS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dw
dHNlcnZlL3dwdHNlcnZlL3czYy1pbXBvcnQubG9nCisrKyAvZGV2L251bGwKQEAgLTEsMzEgKzAs
MCBAQAotVGhlIHRlc3RzIGluIHRoaXMgZGlyZWN0b3J5IHdlcmUgaW1wb3J0ZWQgZnJvbSB0aGUg
VzNDIHJlcG9zaXRvcnkuCi1EbyBOT1QgbW9kaWZ5IHRoZXNlIHRlc3RzIGRpcmVjdGx5IGluIFdl
YktpdC4KLUluc3RlYWQsIGNyZWF0ZSBhIHB1bGwgcmVxdWVzdCBvbiB0aGUgV1BUIGdpdGh1YjoK
LQlodHRwczovL2dpdGh1Yi5jb20vd2ViLXBsYXRmb3JtLXRlc3RzL3dwdAotCi1UaGVuIHJ1biB0
aGUgVG9vbHMvU2NyaXB0cy9pbXBvcnQtdzNjLXRlc3RzIGluIFdlYktpdCB0byByZWltcG9ydAot
Ci1EbyBOT1QgbW9kaWZ5IG9yIHJlbW92ZSB0aGlzIGZpbGUuCi0KLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQot
UHJvcGVydGllcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgotTm9uZQotUHJvcGVydHkgdmFs
dWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6Ci1Ob25lCi0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLUxp
c3Qgb2YgZmlsZXM6Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy93cHRzZXJ2ZS93cHRzZXJ2ZS9fX2luaXRfXy5weQotL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0c2VydmUvd3B0c2VydmUvY29uZmln
LnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93
cHRzZXJ2ZS93cHRzZXJ2ZS9jb25zdGFudHMucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHNlcnZlL3dwdHNlcnZlL2hhbmRsZXJzLnB5Ci0v
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRzZXJ2
ZS93cHRzZXJ2ZS9sb2dnZXIucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3dwdHNlcnZlL3dwdHNlcnZlL3BpcGVzLnB5Ci0vTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRzZXJ2ZS93cHRzZXJ2ZS9y
YW5nZXMucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3dwdHNlcnZlL3dwdHNlcnZlL3JlcXVlc3QucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHNlcnZlL3dwdHNlcnZlL3Jlc3BvbnNlLnB5
Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRz
ZXJ2ZS93cHRzZXJ2ZS9yb3V0ZXIucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHNlcnZlL3dwdHNlcnZlL3JvdXRlcy5weQotL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0c2VydmUvd3B0c2Vy
dmUvc2VydmVyLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy93cHRzZXJ2ZS93cHRzZXJ2ZS9zdGFzaC5weQotL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0c2VydmUvd3B0c2VydmUvdXRpbHMucHkK
LS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHNl
cnZlL3dwdHNlcnZlL3dwdHNlcnZlLnB5CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHNlcnZlL3dwdHNlcnZlL3dwdHNlcnZl
LnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93
cHRzZXJ2ZS93cHRzZXJ2ZS93cHRzZXJ2ZS5weQpvbGQgbW9kZSAxMDA2NDQKbmV3IG1vZGUgMTAw
NzU1Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>384712</attachid>
            <date>2019-12-03 06:20:04 -0800</date>
            <delta_ts>2019-12-04 05:44:33 -0800</delta_ts>
            <desc>Patch using importer</desc>
            <filename>0001-fix-204728.patch</filename>
            <type>text/plain</type>
            <size>1817784</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">RnJvbSAxOTdiOTE0OTcxMTM5ZDRlMmNiMWZhY2NkZWI1Mjk4YWNlODY3Mzg5IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBZb3Vlbm4gRmFibGV0IDx5b3Vlbm5AYXBwbGUuY29tPgpEYXRl
OiBUdWUsIDMgRGVjIDIwMTkgMTU6MTg6MDIgKzAxMDAKU3ViamVjdDogW1BBVENIXSBmaXgtMjA0
NzI4CgotLS0KIExheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cgICAgICAgICAgICB8
ICAgIDkgKwogLi4uL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvTUVUQS55bWwgICAgIHwg
ICAgMSArCiAuLi4vdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9hcHB2ZXlvci55bWwgfCAg
IDMyIC0KIC4uLi93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvY2VydHMvUkVBRE1FLm1kICB8ICAg
ODIgKy0KIC4uLi93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvY2VydHMvY2FjZXJ0LmtleSB8ICAg
NTYgKy0KIC4uLi93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvY2VydHMvY2FjZXJ0LnBlbSB8ICAy
MDIgKystCiAuLi4vdG9vbHMvY2VydHMvY29uZmlnLmpzb24gICAgICAgICAgICAgICAgICAgfCAg
IDE3ICsKIC4uLi90b29scy9jZXJ0cy93M2MtaW1wb3J0LmxvZyAgICAgICAgICAgICAgICB8ICAg
IDEgKwogLi4uL3Rvb2xzL2NlcnRzL3dlYi1wbGF0Zm9ybS50ZXN0LmtleSAgICAgICAgIHwgICA1
MiArLQogLi4uL3Rvb2xzL2NlcnRzL3dlYi1wbGF0Zm9ybS50ZXN0LnBlbSAgICAgICAgIHwgIDE2
NSArKy0KIC4uLi90b29scy9jaS9henVyZS9SRUFETUUubWQgICAgICAgICAgICAgICAgICB8ICAg
IDIgKwogLi4uL3Rvb2xzL2NpL2F6dXJlL2FmZmVjdGVkX3Rlc3RzLnltbCAgICAgICAgIHwgICAy
NSArCiAuLi4vdG9vbHMvY2kvYXp1cmUvY2hlY2tvdXQueW1sICAgICAgICAgICAgICAgfCAgICA0
ICsKIC4uLi90b29scy9jaS9henVyZS9jbGVhbnVwX3dpbjEwLnltbCAgICAgICAgICB8ICAxMTkg
KysKIC4uLi90b29scy9jaS9henVyZS9jb20uYXBwbGUuU2FmYXJpLnBsaXN0ICAgICB8ICAgIDgg
KwogLi4uL3Rvb2xzL2NpL2F6dXJlL2Z5aV9ob29rLnltbCAgICAgICAgICAgICAgIHwgICAxOSAr
CiAuLi4vdG9vbHMvY2kvYXp1cmUvaW5zdGFsbF9jZXJ0cy55bWwgICAgICAgICAgfCAgICA5ICsK
IC4uLi90b29scy9jaS9henVyZS9pbnN0YWxsX2Nocm9tZS55bWwgICAgICAgICB8ICAgIDYgKwog
Li4uL3Rvb2xzL2NpL2F6dXJlL2luc3RhbGxfZWRnZS55bWwgICAgICAgICAgIHwgICA0MSArCiAu
Li4vdG9vbHMvY2kvYXp1cmUvaW5zdGFsbF9maXJlZm94LnltbCAgICAgICAgfCAgICA2ICsKIC4u
Li90b29scy9jaS9henVyZS9pbnN0YWxsX2ZvbnRzLnltbCAgICAgICAgICB8ICAgIDUgKwogLi4u
L3Rvb2xzL2NpL2F6dXJlL2luc3RhbGxfcHl0aG9uLnltbCAgICAgICAgIHwgICAxNSArCiAuLi4v
dG9vbHMvY2kvYXp1cmUvaW5zdGFsbF9zYWZhcmkueW1sICAgICAgICAgfCAgIDIwICsKIC4uLi90
b29scy9jaS9henVyZS9waXBfaW5zdGFsbC55bWwgICAgICAgICAgICB8ICAgMTUgKwogLi4uL2Np
L2F6dXJlL3NhZmFyaS10ZWNobm9sb2d5LXByZXZpZXcucmIgICAgIHwgICAzMyArCiAuLi4vdG9v
bHMvY2kvYXp1cmUvc3lzdGVtX2luZm8ueW1sICAgICAgICAgICAgfCAgICA0ICsKIC4uLi90b29s
cy9jaS9henVyZS90b3hfcHl0ZXN0LnltbCAgICAgICAgICAgICB8ICAgMTggKwogLi4uL3Rvb2xz
L2NpL2F6dXJlL3VwZGF0ZV9ob3N0cy55bWwgICAgICAgICAgIHwgICAxMCArCiAuLi4vdG9vbHMv
Y2kvYXp1cmUvdXBkYXRlX21hbmlmZXN0LnltbCAgICAgICAgfCAgICA0ICsKIC4uLi90b29scy9j
aS9henVyZS93M2MtaW1wb3J0LmxvZyAgICAgICAgICAgICB8ICAgMzUgKwogLi4uL3Rvb2xzL2Np
L2JlZm9yZV9pbnN0YWxsLnNoICAgICAgICAgICAgICAgIHwgICAxNSAtCiAuLi4vdG9vbHMvY2kv
Y2hlY2tfc3RhYmlsaXR5LnB5ICAgICAgICAgICAgICAgfCAgMzEzIC0tLS0KIC4uLi90b29scy9j
aS9jaV9idWlsdF9kaWZmLnNoICAgICAgICAgICAgICAgICB8ICAgIDUgKy0KIC4uLi93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvY2kvY2lfbGludC5zaCAgICB8ICAgIDkgLQogLi4uL3Rvb2xzL2Np
L2NpX21hbmlmZXN0LnNoICAgICAgICAgICAgICAgICAgIHwgICAxMyAtCiAuLi4vdG9vbHMvY2kv
Y2lfcmVzb3VyY2VzX3VuaXR0ZXN0LnNoICAgICAgICAgfCAgIDEyICstCiAuLi4vdG9vbHMvY2kv
Y2lfc3RhYmlsaXR5LnNoICAgICAgICAgICAgICAgICAgfCAgIDMwIC0KIC4uLi90b29scy9jaS9j
aV90YXNrY2x1c3Rlci5zaCAgICAgICAgICAgICAgICB8ICAgMTAgLQogLi4uL3Rvb2xzL2NpL2Np
X3Rvb2xzX3VuaXR0ZXN0LnNoICAgICAgICAgICAgIHwgICAxNSArLQogLi4uL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvY2kvY2lfd3B0LnNoIHwgICAxMCArLQogLi4uL3Rvb2xzL2NpL2Np
X3dwdHJ1bm5lcl9pbmZyYXN0cnVjdHVyZS5zaCAgIHwgICAyMiArLQogLi4uL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy9jaS9jb21tYW5kcy5qc29uIHwgICA1MyArLQogLi4uL3Rvb2xzL2NpL2Vw
b2Noc191cGRhdGUuc2ggICAgICAgICAgICAgICAgIHwgICA0NiArCiAuLi4vd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL2NpL2luc3RhbGwuc2ggICAgfCAgIDExIC0KIC4uLi93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL2NpL2pvYnMucHkgICB8ICAgNTkgKy0KIC4uLi93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL2NpL2xpYi5zaCAgICB8ICAgMzcgLQogLi4uL3Rvb2xzL2NpL21hbmlm
ZXN0X2J1aWxkLnB5ICAgICAgICAgICAgICAgIHwgIDE5NyArKysKIC4uLi93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvY2kvcHJfcHJldmlldy5weSB8ICA0MDggKysrKysKIC4uLi93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL2NpL3J1bi5zaCAgICB8ICAgMTAgLQogLi4uL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvY2kvcnVuX3RjLnB5IHwgIDM3MiArKysrKwogLi4uL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy9jaS90YWdfbWFzdGVyLnB5IHwgIDEwMSAtLQogLi4uL3Rvb2xzL2Np
L3Rhc2tjbHVzdGVyLXJ1bi5weSAgICAgICAgICAgICAgIHwgICA5NSArKwogLi4uL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy9jaS90Yy9SRUFETUUubWQgIHwgIDIzNSArKysKIC4uLi90b29scy9j
aS90Yy9fX2luaXRfXy5weSAgICAgICAgICAgICAgICAgICB8ICAgIDEgKwogLi4uL3Rvb2xzL2Np
L3RjL2RlY2lzaW9uLnB5ICAgICAgICAgICAgICAgICAgIHwgIDMyNCArKysrCiAuLi4vdG9vbHMv
Y2kvdGMvZG93bmxvYWQucHkgICAgICAgICAgICAgICAgICAgfCAgMTA5ICsrCiAuLi4vdG9vbHMv
Y2kvdGMvdGFza2dyYXBoLnB5ICAgICAgICAgICAgICAgICAgfCAgMTcwICsrKwogLi4uL3Rvb2xz
L2NpL3RjL3Rhc2tzL3Rlc3QueW1sICAgICAgICAgICAgICAgIHwgIDM3MCArKysrKwogLi4uL3Rv
b2xzL2NpL3RjL3Rhc2tzL3czYy1pbXBvcnQubG9nICAgICAgICAgIHwgICAxNyArCiAuLi4vdGMv
dGVzdGRhdGEvZXBvY2hzX2RhaWx5X3B1c2hfZXZlbnQuanNvbiAgfCAgNDYwICsrKysrKwogLi4u
L2NpL3RjL3Rlc3RkYXRhL21hc3Rlcl9wdXNoX2V2ZW50Lmpzb24gICAgIHwgIDIxNCArKysKIC4u
Li90b29scy9jaS90Yy90ZXN0ZGF0YS9wcl9ldmVudC5qc29uICAgICAgICB8ICA1NzcgKysrKysr
KysKIC4uLi90Yy90ZXN0ZGF0YS9wcl9ldmVudF90ZXN0c19hZmZlY3RlZC5qc29uICB8ICA1MDUg
KysrKysrKwogLi4uL3Rvb2xzL2NpL3RjL3Rlc3RkYXRhL3czYy1pbXBvcnQubG9nICAgICAgIHwg
ICAyMCArCiAuLi4vdG9vbHMvY2kvdGMvdGVzdHMvdGVzdF9kZWNpc2lvbi5weSAgICAgICAgfCAg
IDU0ICsKIC4uLi90b29scy9jaS90Yy90ZXN0cy90ZXN0X3Rhc2tncmFwaC5weSAgICAgICB8ICAx
NDYgKysKIC4uLi90b29scy9jaS90Yy90ZXN0cy90ZXN0X3ZhbGlkLnB5ICAgICAgICAgICB8ICAy
MjEgKysrCiAuLi4vdG9vbHMvY2kvdGMvdGVzdHMvdzNjLWltcG9ydC5sb2cgICAgICAgICAgfCAg
IDE5ICsKIC4uLi90b29scy9jaS90Yy93M2MtaW1wb3J0LmxvZyAgICAgICAgICAgICAgICB8ICAg
MjEgKwogLi4uL3Rvb2xzL2NpL3Rlc3RzL3Rlc3Rfam9icy5weSAgICAgICAgICAgICAgIHwgICA5
MiArLQogLi4uL3Rvb2xzL2NpL3Rlc3RzL3Rlc3RfcHJfcHJldmlldy5weSAgICAgICAgIHwgIDcy
MCArKysrKysrKysKIC4uLi90b29scy9jaS90ZXN0cy93M2MtaW1wb3J0LmxvZyAgICAgICAgICAg
ICB8ICAgIDEgKwogLi4uL3Rvb2xzL2NpL3czYy1pbXBvcnQubG9nICAgICAgICAgICAgICAgICAg
IHwgICAxNiArLQogLi4uL3Rvb2xzL2NpL3dlYnNpdGVfYnVpbGQuc2ggICAgICAgICAgICAgICAg
IHwgICA4MSArCiAuLi4vdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9jb25mdGVzdC5weSAg
fCAgICA0ICstCiAuLi4vdG9vbHMvZG9ja2VyL0RvY2tlcmZpbGUgICAgICAgICAgICAgICAgICAg
fCAgIDIzICstCiAuLi4vd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2RvY2tlci9SRUFETUUubWQg
fCAgIDEwICsKIC4uLi90b29scy9kb2NrZXIvX19pbml0X18ucHkgICAgICAgICAgICAgICAgICB8
ICAgIDEgKwogLi4uL3Rvb2xzL2RvY2tlci9jb21tYW5kcy5qc29uICAgICAgICAgICAgICAgIHwg
ICAgNiArCiAuLi4vdG9vbHMvZG9ja2VyL2RvY3VtZW50YXRpb24vRG9ja2VyZmlsZSAgICAgfCAg
ICAzICsKIC4uLi90b29scy9kb2NrZXIvZG9jdW1lbnRhdGlvbi93M2MtaW1wb3J0LmxvZyB8ICAg
MTcgKwogLi4uL3Rvb2xzL2RvY2tlci9mcm9udGVuZC5weSAgICAgICAgICAgICAgICAgIHwgICA0
NSArCiAuLi4vd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2RvY2tlci9yZXRyeS5weSAgfCAgIDU4
ICsKIC4uLi90b29scy9kb2NrZXIvc2VjY29tcC5qc29uICAgICAgICAgICAgICAgICB8ICA3OTgg
KysrKysrKysrKwogLi4uL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9kb2NrZXIvc3RhcnQuc2gg
IHwgICA0OSArLQogLi4uL3Rvb2xzL2RvY2tlci93M2MtaW1wb3J0LmxvZyAgICAgICAgICAgICAg
IHwgICAgNiArCiAuLi4vdG9vbHMvZ2l0aWdub3JlL2dpdGlnbm9yZS5weSAgICAgICAgICAgICAg
fCAgMjQyICsrLQogLi4uL3Rvb2xzL2dpdGlnbm9yZS90ZXN0cy90ZXN0X2dpdGlnbm9yZS5weSAg
IHwgIDEyNyArLQogLi4uL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9saW50L2ZubWF0Y2gucHkg
IHwgICAxMCArCiAuLi4vdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9saW50L2xpbnQucHkg
fCAgNTA2ICsrKystLS0KIC4uLi93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvbGludC9ydWxlcy5w
eSAgICB8ICA0NTIgKysrKysrCiAuLi4vYWJvdXRfYmxhbmstcmVmLmh0bWwgPT4gYWJvdXRfYmxh
bmsuaHRtbH0gfCAgICAwCiAuLi4vdG9vbHMvbGludC90ZXN0cy9kdW1teS9yZWYvdzNjLWltcG9y
dC5sb2cgfCAgICAxIC0KIC4uLi90b29scy9saW50L3Rlc3RzL2R1bW15L3czYy1pbXBvcnQubG9n
ICAgICB8ICAgIDEgKwogLi4uL3Rvb2xzL2xpbnQvdGVzdHMvdGVzdF9maWxlX2xpbnRzLnB5ICAg
ICAgIHwgIDM0NyArKysrLQogLi4uL3Rvb2xzL2xpbnQvdGVzdHMvdGVzdF9saW50LnB5ICAgICAg
ICAgICAgIHwgICA2NiArLQogLi4uL3Rvb2xzL2xpbnQvdGVzdHMvdGVzdF9wYXRoX2xpbnRzLnB5
ICAgICAgIHwgICA3OCArLQogLi4uL3Rvb2xzL2xpbnQvdzNjLWltcG9ydC5sb2cgICAgICAgICAg
ICAgICAgIHwgICAgMiArCiAuLi4vdG9vbHMvbWFuaWZlc3QvWE1MUGFyc2VyLnB5ICAgICAgICAg
ICAgICAgfCAgIDQ5ICstCiAuLi4vdG9vbHMvbWFuaWZlc3QvY29tbWFuZHMuanNvbiAgICAgICAg
ICAgICAgfCAgIDI5ICstCiAuLi4vdG9vbHMvbWFuaWZlc3QvZG93bmxvYWQucHkgICAgICAgICAg
ICAgICAgfCAgMTkxICsrLQogLi4uL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9tYW5pZmVzdC9p
dGVtLnB5IHwgIDM1NyArKystLQogLi4uL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9tYW5pZmVz
dC9sb2cucHkgIHwgICAgMiArCiAuLi4vdG9vbHMvbWFuaWZlc3QvbWFuaWZlc3QucHkgICAgICAg
ICAgICAgICAgfCAgNTgwICsrKysrKy0tCiAuLi4vdG9vbHMvbWFuaWZlc3Qvc291cmNlZmlsZS5w
eSAgICAgICAgICAgICAgfCAgNDIzICsrKysrLQogLi4uL3Rvb2xzL21hbmlmZXN0L3Rlc3RwYXRo
cy5weSAgICAgICAgICAgICAgIHwgICA5MiArKwogLi4uL3Rvb2xzL21hbmlmZXN0L3Rlc3RzL3Rl
c3RfaXRlbS5weSAgICAgICAgIHwgIDExMCArLQogLi4uL3Rvb2xzL21hbmlmZXN0L3Rlc3RzL3Rl
c3RfbWFuaWZlc3QucHkgICAgIHwgIDMxOSArKy0tCiAuLi4vdG9vbHMvbWFuaWZlc3QvdGVzdHMv
dGVzdF9zb3VyY2VmaWxlLnB5ICAgfCAgIDcwICstCiAuLi4vdG9vbHMvbWFuaWZlc3QvdGVzdHMv
dGVzdF91dGlscy5weSAgICAgICAgfCAgIDE0ICsKIC4uLi90b29scy9tYW5pZmVzdC90ZXN0cy93
M2MtaW1wb3J0LmxvZyAgICAgICB8ICAgIDEgKwogLi4uL3Rvb2xzL21hbmlmZXN0L3VwZGF0ZS5w
eSAgICAgICAgICAgICAgICAgIHwgICA3NyArLQogLi4uL3Rvb2xzL21hbmlmZXN0L3V0aWxzLnB5
ICAgICAgICAgICAgICAgICAgIHwgICA3NyArLQogLi4uL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy9tYW5pZmVzdC92Y3MucHkgIHwgIDM3MCArKysrLQogLi4uL3Rvb2xzL21hbmlmZXN0L3czYy1p
bXBvcnQubG9nICAgICAgICAgICAgIHwgICAgMSArCiAuLi4vdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy9teXB5LmluaSAgICAgfCAgIDM0ICsKIC4uLi93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvcHkyNy1mbGFrZTguaW5pICB8ICAgMjggKwogLi4uL3Rvb2xzL3tmbGFrZTguaW5pID0+IHB5
MzYtZmxha2U4LmluaX0gICAgIHwgICAxNiArLQogLi4uL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvcHl0ZXN0LmluaSAgIHwgICAgNiArLQogLi4uL3Rvb2xzL3B5d2Vic29ja2V0L2V4YW1w
bGUvZWNob19jbGllbnQucHkgIHwgICAyMSArLQogLi4uL21vZF9weXdlYnNvY2tldC9oYW5kc2hh
a2UvdzNjLWltcG9ydC5sb2cgIHwgICAgNCArCiAuLi4vbW9kX3B5d2Vic29ja2V0L2hlYWRlcnBh
cnNlcmhhbmRsZXIucHkgICAgfCAgIDEwICstCiAuLi4vbW9kX3B5d2Vic29ja2V0L21lbW9yaXpp
bmdmaWxlLnB5ICAgICAgICAgfCAgICA0ICstCiAuLi4vcHl3ZWJzb2NrZXQvbW9kX3B5d2Vic29j
a2V0L3N0YW5kYWxvbmUucHkgfCAgICAyICstCiAuLi4vbW9kX3B5d2Vic29ja2V0L3czYy1pbXBv
cnQubG9nICAgICAgICAgICAgfCAgIDE1ICsKIC4uLi9weXdlYnNvY2tldC90ZXN0L2NsaWVudF9m
b3JfdGVzdGluZy5weSAgICB8ICAgIDggKy0KIC4uLi90ZXN0L211eF9jbGllbnRfZm9yX3Rlc3Rp
bmcucHkgICAgICAgICAgICB8ICAgIDYgKy0KIC4uLi90b29scy9weXdlYnNvY2tldC90ZXN0L3Rl
c3RfZGlzcGF0Y2gucHkgICB8ICAgIDggKy0KIC4uLi90b29scy9weXdlYnNvY2tldC90ZXN0L3Rl
c3RfZW5kdG9lbmQucHkgICB8ICAgIDQgKy0KIC4uLi9weXdlYnNvY2tldC90ZXN0L3Rlc3RfaGFu
ZHNoYWtlX2h5YmkucHkgICB8ICAgIDQgKy0KIC4uLi90b29scy9weXdlYnNvY2tldC90ZXN0L3Rl
c3RfbXNndXRpbC5weSAgICB8ICAgIDkgKy0KIC4uLi90b29scy9weXdlYnNvY2tldC90ZXN0L3Rl
c3RfbXV4LnB5ICAgICAgICB8ICAgIDQgKy0KIC4uLi90b29scy9weXdlYnNvY2tldC90ZXN0L3Rl
c3RfdXRpbC5weSAgICAgICB8ICAgIDMgKy0KIC4uLi90b29scy9yZXF1aXJlbWVudHNfZmxha2U4
LnR4dCAgICAgICAgICAgICB8ICAgIDQgKwogLi4uL3Rvb2xzL3JlcXVpcmVtZW50c19teXB5LnR4
dCAgICAgICAgICAgICAgIHwgICAgMyArCiAuLi4vdG9vbHMvcnVubmVyL2luZGV4Lmh0bWwgICAg
ICAgICAgICAgICAgICAgfCAgIDIyICstCiAuLi4vd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3J1
bm5lci9sb2dvLnN2ZyAgfCAgICA4IC0KIC4uLi93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcnVu
bmVyL3JlcG9ydC5weSB8ICAgMTAgKy0KIC4uLi90b29scy9ydW5uZXIvcnVubmVyLmNzcyAgICAg
ICAgICAgICAgICAgICB8ICAgIDEgLQogLi4uL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9ydW5u
ZXIvcnVubmVyLmpzIHwgICAxNiArLQogLi4uL3Rvb2xzL3J1bm5lci93M2MtaW1wb3J0LmxvZyAg
ICAgICAgICAgICAgIHwgICAgMSAtCiAuLi4vdG9vbHMvc2NyaXB0cy9tYW5pZmVzdC5qcyAgICAg
ICAgICAgICAgICAgfCAgMTk2ICstLQogLi4uL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9zY3Jp
cHRzL3RvYy5qcyAgIHwgIDIwMCArLS0KIC4uLi93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvc2Vy
dmUvc2VydmUucHkgICB8ICAxNDUgKy0KIC4uLi90b29scy9zZXJ2ZS90ZXN0X2Z1bmN0aW9uYWwu
cHkgICAgICAgICAgICB8ICAgNzkgKwogLi4uL3Rvb2xzL3NlcnZlL3Rlc3Rfc2VydmUucHkgICAg
ICAgICAgICAgICAgIHwgICAzMiArLQogLi4uL3Rvb2xzL3NlcnZlL3czYy1pbXBvcnQubG9nICAg
ICAgICAgICAgICAgIHwgICAgMyArCiAuLi4vdGhpcmRfcGFydHkvZW51bS9lbnVtL3czYy1pbXBv
cnQubG9nICAgICAgfCAgICAxICsKIC4uLi90b29scy90aGlyZF9wYXJ0eS9oMi9oMi93M2MtaW1w
b3J0LmxvZyAgICB8ICAgMTEgKwogLi4uL3RoaXJkX3BhcnR5L2hwYWNrL2hwYWNrL3czYy1pbXBv
cnQubG9nICAgIHwgICAgOSArCiAuLi4vaHlwZXIvaHlwZXIvaHR0cDIwL2Nvbm5lY3Rpb24ucHkg
ICAgICAgICAgfCAgIDI2ICstCiAuLi4vaHlwZXJmcmFtZS9oeXBlcmZyYW1lL3czYy1pbXBvcnQu
bG9nICAgICAgfCAgICA0ICsKIC4uLi90b29scy90aGlyZF9wYXJ0eS90b29sdG9vbC90b29sdG9v
bC5weSAgICB8IDEzMTYgKysrKysrKysrKysrKysrKysKIC4uLi90b29scy90aGlyZF9wYXJ0eS90
b29sdG9vbC93M2MtaW1wb3J0LmxvZyB8ICAgMTcgKwogLi4uL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvdG94LmluaSAgICAgIHwgICA1NCArLQogLi4uL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy93M2MtaW1wb3J0LmxvZyAgIHwgICAgNyArLQogLi4uL3Rvb2xzL3dlYmRyaXZlci9SRUFE
TUUubWQgICAgICAgICAgICAgICAgIHwgICAgNiArLQogLi4uL3Rvb2xzL3dlYmRyaXZlci93ZWJk
cml2ZXIvX19pbml0X18ucHkgICAgIHwgICAgNCArLQogLi4uL3Rvb2xzL3dlYmRyaXZlci93ZWJk
cml2ZXIvY2xpZW50LnB5ICAgICAgIHwgICA1OCArLQogLi4uL3Rvb2xzL3dlYmRyaXZlci93ZWJk
cml2ZXIvZXJyb3IucHkgICAgICAgIHwgICAxNyArLQogLi4uL3Rvb2xzL3dlYmRyaXZlci93ZWJk
cml2ZXIvdHJhbnNwb3J0LnB5ICAgIHwgICA3MCArLQogLi4uL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy93cHQvYW5kcm9pZC5weSAgIHwgIDE4MyArKysKIC4uLi93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvd3B0L2Jyb3dzZXIucHkgICB8ICA5NjkgKysrKysrKysrLS0tCiAuLi4vdG9vbHMvd3B0
L2NvbW1hbmRzLmpzb24gICAgICAgICAgICAgICAgICAgfCAgMTA0ICstCiAuLi4vd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3dwdC9jcmVhdGUucHkgICAgfCAgMTMxICsrCiAuLi4vd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3dwdC9pbnN0YWxsLnB5ICAgfCAgIDczICstCiAuLi4vdG9vbHMvd3B0
L21hY2gtZW11bGF0b3IubWFuaWZlc3QgICAgICAgICAgfCAgIDEwICsKIC4uLi93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvd3B0L21hcmtkb3duLnB5ICB8ICAgIDIgKwogLi4uL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvd3B0L3BhdGhzICAgIHwgICAgMSArCiAuLi4vdG9vbHMvd3B0L3Jl
cXVpcmVtZW50cy50eHQgICAgICAgICAgICAgICAgfCAgICAyICstCiAuLi4vd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3dwdC9yZXZsaXN0LnB5ICAgfCAgMTE5ICsrCiAuLi4vdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy93cHQvcnVuLnB5ICAgfCAgNDMwICsrKysrLQogLi4uL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy93cHQvdGVzdGZpbGVzLnB5IHwgIDE4OSArKy0KIC4uLi90b29scy93
cHQvdGVzdHMvdGVzdF9icm93c2VyLnB5ICAgICAgICAgICB8ICAxMDMgKysKIC4uLi90b29scy93
cHQvdGVzdHMvdGVzdF9yZXZsaXN0LnB5ICAgICAgICAgICB8ICAxNjMgKysKIC4uLi90b29scy93
cHQvdGVzdHMvdGVzdF9ydW4ucHkgICAgICAgICAgICAgICB8ICAgNzMgKwogLi4uL3Rvb2xzL3dw
dC90ZXN0cy90ZXN0X3Rlc3RmaWxlcy5weSAgICAgICAgIHwgICAxMyArCiAuLi4vdG9vbHMvd3B0
L3Rlc3RzL3Rlc3Rfd3B0LnB5ICAgICAgICAgICAgICAgfCAgMjIxICstLQogLi4uL3Rvb2xzL3dw
dC90ZXN0cy93M2MtaW1wb3J0LmxvZyAgICAgICAgICAgIHwgICAgNCArCiAuLi4vdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy93cHQvdG94LmluaSAgfCAgIDE3ICstCiAuLi4vdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy93cHQvdXRpbHMucHkgfCAgIDQyICstCiAuLi4vdG9vbHMvd3B0
L3ZpcnR1YWxlbnYucHkgICAgICAgICAgICAgICAgICAgfCAgIDg5ICstCiAuLi4vdG9vbHMvd3B0
L3czYy1pbXBvcnQubG9nICAgICAgICAgICAgICAgICAgfCAgICA0ICsKIC4uLi93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3dwdC93cHQucHkgICB8ICAgNTYgKy0KIC4uLi90b29scy93cHRy
dW5uZXIvUkVBRE1FLnJzdCAgICAgICAgICAgICAgICB8ICAyMzQgKy0tCiAuLi4vdG9vbHMvd3B0
cnVubmVyL2RvY3MvTWFrZWZpbGUgICAgICAgICAgICAgfCAgMTc3IC0tLQogLi4uL3Rvb2xzL3dw
dHJ1bm5lci9kb2NzL2NvbmYucHkgICAgICAgICAgICAgIHwgIDI2NyAtLS0tCiAuLi4vdG9vbHMv
d3B0cnVubmVyL2RvY3MvZGVzaWduLnJzdCAgICAgICAgICAgfCAgIDQ2ICstCiAuLi4vdG9vbHMv
d3B0cnVubmVyL2RvY3MvZXhwZWN0YXRpb24ucnN0ICAgICAgfCAgIDgwICstCiAuLi4vdG9vbHMv
d3B0cnVubmVyL2RvY3MvaW5kZXgucnN0ICAgICAgICAgICAgfCAgIDI0IC0KIC4uLi90b29scy93
cHRydW5uZXIvZG9jcy9pbnRlcm5hbHMucnN0ICAgICAgICB8ICAgMjMgKwogLi4uL3Rvb2xzL3dw
dHJ1bm5lci9kb2NzL21ha2UuYmF0ICAgICAgICAgICAgIHwgIDI0MiAtLS0KIC4uLi90b29scy93
cHRydW5uZXIvZG9jcy91c2FnZS5yc3QgICAgICAgICAgICB8ICAgMjYgKy0KIC4uLi90b29scy93
cHRydW5uZXIvZG9jcy93M2MtaW1wb3J0LmxvZyAgICAgICB8ICAgIDUgKy0KIC4uLi90b29scy93
cHRydW5uZXIvcmVxdWlyZW1lbnRzLnR4dCAgICAgICAgICB8ICAgMTMgKy0KIC4uLi9yZXF1aXJl
bWVudHNfYW5kcm9pZF93ZWJ2aWV3LnR4dCAgICAgICAgICB8ICAgIDEgKwogLi4uL3Rvb2xzL3dw
dHJ1bm5lci9yZXF1aXJlbWVudHNfY2hyb21lLnR4dCAgIHwgICAgMyArLQogLi4uL3dwdHJ1bm5l
ci9yZXF1aXJlbWVudHNfY2hyb21lX2FuZHJvaWQudHh0IHwgICAgMyArLQogLi4uL3dwdHJ1bm5l
ci9yZXF1aXJlbWVudHNfY2hyb21lX2lvcy50eHQgICAgIHwgICAgMSArCiAuLi4vdG9vbHMvd3B0
cnVubmVyL3JlcXVpcmVtZW50c19lZGdlLnR4dCAgICAgfCAgICA0ICstCiAuLi4vd3B0cnVubmVy
L3JlcXVpcmVtZW50c19lZGdlX2Nocm9taXVtLnR4dCAgfCAgICAxICsKIC4uLi90b29scy93cHRy
dW5uZXIvcmVxdWlyZW1lbnRzX2VwaXBoYW55LnR4dCB8ICAgIDEgKwogLi4uL3Rvb2xzL3dwdHJ1
bm5lci9yZXF1aXJlbWVudHNfZmlyZWZveC50eHQgIHwgICAyMCArLQogLi4uL3Rvb2xzL3dwdHJ1
bm5lci9yZXF1aXJlbWVudHNfaWUudHh0ICAgICAgIHwgICAgNCArLQogLi4uL3Rvb2xzL3dwdHJ1
bm5lci9yZXF1aXJlbWVudHNfb3BlcmEudHh0ICAgIHwgICAgNCArLQogLi4uL3Rvb2xzL3dwdHJ1
bm5lci9yZXF1aXJlbWVudHNfc2FmYXJpLnR4dCAgIHwgICAgMyArLQogLi4uL3Rvb2xzL3dwdHJ1
bm5lci9yZXF1aXJlbWVudHNfc2F1Y2UudHh0ICAgIHwgICAgNiArLQogLi4uL3Rvb2xzL3dwdHJ1
bm5lci9yZXF1aXJlbWVudHNfc2Vydm8udHh0ICAgIHwgICAgMiArLQogLi4uL3Rvb2xzL3dwdHJ1
bm5lci9yZXF1aXJlbWVudHNfd2Via2l0LnR4dCAgIHwgICAgMyArLQogLi4uL3Rvb2xzL3dwdHJ1
bm5lci9zZXR1cC5weSAgICAgICAgICAgICAgICAgIHwgICAxMSArLQogLi4uL3Rvb2xzL3dwdHJ1
bm5lci90ZXN0L3Rlc3QucHkgICAgICAgICAgICAgIHwgICAgMyArLQogLi4uL3Rvb2xzL3dwdHJ1
bm5lci90b3guaW5pICAgICAgICAgICAgICAgICAgIHwgICAyMCArLQogLi4uL3Rvb2xzL3dwdHJ1
bm5lci93M2MtaW1wb3J0LmxvZyAgICAgICAgICAgIHwgICAgNCArCiAuLi4vd3B0cnVubmVyL3dw
dHJ1bm5lci9icm93c2Vycy9fX2luaXRfXy5weSAgfCAgIDE0ICstCiAuLi4vd3B0cnVubmVyL2Jy
b3dzZXJzL2FuZHJvaWRfd2Vidmlldy5weSAgICAgfCAgMTM0ICsrCiAuLi4vd3B0cnVubmVyL3dw
dHJ1bm5lci9icm93c2Vycy9iYXNlLnB5ICAgICAgfCAgMTA5ICstCiAuLi4vd3B0cnVubmVyL3dw
dHJ1bm5lci9icm93c2Vycy9jaHJvbWUucHkgICAgfCAgIDc1ICstCiAuLi4vd3B0cnVubmVyL2Jy
b3dzZXJzL2Nocm9tZV9hbmRyb2lkLnB5ICAgICAgfCAgIDgxICstCiAuLi4vd3B0cnVubmVyL2Jy
b3dzZXJzL2Nocm9tZV9pb3MucHkgICAgICAgICAgfCAgIDgwICsKIC4uLi93cHRydW5uZXIvd3B0
cnVubmVyL2Jyb3dzZXJzL2VkZ2UucHkgICAgICB8ICAgNDkgKy0KIC4uLi93cHRydW5uZXIvYnJv
d3NlcnMvZWRnZV93ZWJkcml2ZXIucHkgICAgICB8ICAgMTIgKwogLi4uL3dwdHJ1bm5lci9icm93
c2Vycy9lZGdlY2hyb21pdW0ucHkgICAgICAgIHwgIDExNiArKwogLi4uL3dwdHJ1bm5lci93cHRy
dW5uZXIvYnJvd3NlcnMvZXBpcGhhbnkucHkgIHwgICA3NSArCiAuLi4vd3B0cnVubmVyL3dwdHJ1
bm5lci9icm93c2Vycy9mZW5uZWMucHkgICAgfCAgMjU0IC0tLS0KIC4uLi93cHRydW5uZXIvd3B0
cnVubmVyL2Jyb3dzZXJzL2ZpcmVmb3gucHkgICB8ICAxNzkgKystCiAuLi4vd3B0cnVubmVyL2Jy
b3dzZXJzL2ZpcmVmb3hfYW5kcm9pZC5weSAgICAgfCAgMjAyICsrKwogLi4uL3Rvb2xzL3dwdHJ1
bm5lci93cHRydW5uZXIvYnJvd3NlcnMvaWUucHkgIHwgICAxMiArLQogLi4uL3dwdHJ1bm5lci93
cHRydW5uZXIvYnJvd3NlcnMvb3BlcmEucHkgICAgIHwgICAgNiArLQogLi4uL3dwdHJ1bm5lci93
cHRydW5uZXIvYnJvd3NlcnMvc2FmYXJpLnB5ICAgIHwgICAxNiArLQogLi4uL3dwdHJ1bm5lci93
cHRydW5uZXIvYnJvd3NlcnMvc2F1Y2UucHkgICAgIHwgICAxMyArLQogLi4uL3dwdHJ1bm5lci93
cHRydW5uZXIvYnJvd3NlcnMvc2Vydm8ucHkgICAgIHwgICAgNCArLQogLi4uL3dwdHJ1bm5lci9i
cm93c2Vycy9zZXJ2b2RyaXZlci5weSAgICAgICAgIHwgICAyOCArLQogLi4uL3dwdHJ1bm5lci9i
cm93c2Vycy93M2MtaW1wb3J0LmxvZyAgICAgICAgIHwgICAgOCArLQogLi4uL3dwdHJ1bm5lci93
cHRydW5uZXIvYnJvd3NlcnMvd2Via2l0LnB5ICAgIHwgICA0NiArLQogLi4uL2Jyb3dzZXJzL3dl
YmtpdGd0a19taW5pYnJvd3Nlci5weSAgICAgICAgIHwgICA3OSArCiAuLi4vdG9vbHMvd3B0cnVu
bmVyL3dwdHJ1bm5lci9jb25maWcucHkgICAgICAgfCAgICA2ICstCiAuLi4vdG9vbHMvd3B0cnVu
bmVyL3dwdHJ1bm5lci9lbnZpcm9ubWVudC5weSAgfCAgIDI4ICstCiAuLi4vd3B0cnVubmVyL3dw
dHJ1bm5lci9leGVjdXRvcnMvX19pbml0X18ucHkgfCAgICA4ICstCiAuLi4vd3B0cnVubmVyL3dw
dHJ1bm5lci9leGVjdXRvcnMvYmFzZS5weSAgICAgfCAgMzkxICsrKystCiAuLi4vZXhlY3V0b3Jz
L2V4ZWN1dG9yZWRnZWNocm9taXVtLnB5ICAgICAgICAgfCAgIDEwICsKIC4uLi93cHRydW5uZXIv
ZXhlY3V0b3JzL2V4ZWN1dG9ybWFyaW9uZXR0ZS5weSB8ICAzMzEgKysrLS0KIC4uLi93cHRydW5u
ZXIvZXhlY3V0b3JzL2V4ZWN1dG9yc2VsZW5pdW0ucHkgICB8ICAxNjYgKystCiAuLi4vd3B0cnVu
bmVyL2V4ZWN1dG9ycy9leGVjdXRvcnNlcnZvLnB5ICAgICAgfCAgIDEzICstCiAuLi4vZXhlY3V0
b3JzL2V4ZWN1dG9yc2Vydm9kcml2ZXIucHkgICAgICAgICAgfCAgIDY2ICstCiAuLi4vd3B0cnVu
bmVyL2V4ZWN1dG9ycy9leGVjdXRvcndlYmRyaXZlci5weSAgfCAgNDgwICsrKysrKwogLi4uL3dw
dHJ1bm5lci93cHRydW5uZXIvZXhlY3V0b3JzL3Byb3RvY29sLnB5IHwgIDExOCArLQogLi4uL2V4
ZWN1dG9ycy9yZWZ0ZXN0LXdhaXRfbWFyaW9uZXR0ZS5qcyAgICAgIHwgICAxOSAtCiAuLi4vZXhl
Y3V0b3JzL3JlZnRlc3Qtd2FpdF93ZWJkcml2ZXIuanMgICAgICAgfCAgIDQ4ICstCiAuLi4vd3B0
cnVubmVyL3dwdHJ1bm5lci9leGVjdXRvcnMvcmVmdGVzdC5qcyAgfCAgICAyICstCiAuLi4vd3B0
cnVubmVyL3dwdHJ1bm5lci9leGVjdXRvcnMvcnVubmVyLmpzICAgfCAgICAxICsKIC4uLi9leGVj
dXRvcnMvdGVzdGhhcm5lc3Nfd2ViZHJpdmVyLmpzICAgICAgICB8ICAgMjUgLQogLi4uL2V4ZWN1
dG9ycy90ZXN0aGFybmVzc193ZWJkcml2ZXJfcmVzdW1lLmpzIHwgICA1MSArLQogLi4uL3dwdHJ1
bm5lci9leGVjdXRvcnMvdzNjLWltcG9ydC5sb2cgICAgICAgIHwgICAgNSArLQogLi4uL3Rvb2xz
L3dwdHJ1bm5lci93cHRydW5uZXIvZXhwZWN0ZWR0cmVlLnB5IHwgIDEzMSArKwogLi4uL3Rvb2xz
L3dwdHJ1bm5lci93cHRydW5uZXIvZm9udC5weSAgICAgICAgIHwgICAyMCArLQogLi4uL3Rvb2xz
L3dwdHJ1bm5lci93cHRydW5uZXIvZm9ybWF0dGVycy5weSAgIHwgICA3OCAtCiAuLi4vd3B0cnVu
bmVyL2Zvcm1hdHRlcnMvX19pbml0X18ucHkgICAgICAgICAgfCAgICAxICsKIC4uLi93cHRydW5u
ZXIvZm9ybWF0dGVycy9jaHJvbWl1bS5weSAgICAgICAgICB8ICAxODcgKysrCiAuLi4vZm9ybWF0
dGVycy90ZXN0cy90ZXN0X2Nocm9taXVtLnB5ICAgICAgICAgfCAgMzcyICsrKysrCiAuLi4vd3B0
cnVubmVyL2Zvcm1hdHRlcnMvdGVzdHMvdzNjLWltcG9ydC5sb2cgfCAgIDE3ICsKIC4uLi93cHRy
dW5uZXIvZm9ybWF0dGVycy93M2MtaW1wb3J0LmxvZyAgICAgICB8ICAgMjAgKwogLi4uL3dwdHJ1
bm5lci9mb3JtYXR0ZXJzL3dwdHJlcG9ydC5weSAgICAgICAgIHwgIDE3MCArKysKIC4uLi93cHRy
dW5uZXIvZm9ybWF0dGVycy93cHRzY3JlZW5zaG90LnB5ICAgICB8ICAgNDcgKwogLi4uL3dwdHJ1
bm5lci93cHRydW5uZXIvbWFuaWZlc3RleHBlY3RlZC5weSAgIHwgIDIzNSArKy0KIC4uLi93cHRy
dW5uZXIvd3B0cnVubmVyL21hbmlmZXN0aW5jbHVkZS5weSAgICB8ICAgMTIgKy0KIC4uLi93cHRy
dW5uZXIvd3B0cnVubmVyL21hbmlmZXN0dXBkYXRlLnB5ICAgICB8ICA5NjYgKysrKysrKy0tLS0t
CiAuLi4vdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9tZXRhZGF0YS5weSAgICAgfCAgNDE3ICsr
KystLQogLi4uL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvcHJvZHVjdHMucHkgICAgIHwgICA1
OSArLQogLi4uL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvc3RhYmlsaXR5LnB5ICAgIHwgICA5
MCArLQogLi4uL3dwdHJ1bm5lci93cHRydW5uZXIvdGVzdGRyaXZlci1leHRyYS5qcyAgIHwgIDEy
NiArLQogLi4uL3dwdHJ1bm5lci90ZXN0aGFybmVzc3JlcG9ydC1zZXJ2by5qcyAgICAgIHwgICAg
MiArLQogLi4uL3dwdHJ1bm5lci93cHRydW5uZXIvdGVzdGhhcm5lc3NyZXBvcnQuanMgIHwgICA4
OCArLQogLi4uL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvdGVzdGxvYWRlci5weSAgIHwgIDM5
MiArLS0tLQogLi4uL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvdGVzdHJ1bm5lci5weSAgIHwg
IDIyMCArKy0KIC4uLi90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3Rlc3RzL2Jhc2UucHkgICB8
ICAgIDMgKy0KIC4uLi93cHRydW5uZXIvdGVzdHMvYnJvd3NlcnMvdGVzdF9zYXVjZS5weSAgICB8
ICAgMTUgKy0KIC4uLi90ZXN0cy9icm93c2Vycy90ZXN0X3dlYmtpdGd0ay5weSAgICAgICAgICB8
ICAgNTcgKwogLi4uL3dwdHJ1bm5lci90ZXN0cy9icm93c2Vycy93M2MtaW1wb3J0LmxvZyAgIHwg
ICAgMSArCiAuLi4vd3B0cnVubmVyL3dwdHJ1bm5lci90ZXN0cy90ZXN0X2NodW5rZXIucHkgfCAg
IDk4IC0tCiAuLi4vd3B0cnVubmVyL3Rlc3RzL3Rlc3RfZXhwZWN0ZWR0cmVlLnB5ICAgICAgfCAg
MTMyICsrCiAuLi4vd3B0cnVubmVyL3Rlc3RzL3Rlc3RfZm9ybWF0dGVycy5weSAgICAgICAgfCAg
MTE2ICstCiAuLi4vd3B0cnVubmVyL3Rlc3RzL3Rlc3RfbWFuaWZlc3RleHBlY3RlZC5weSAgfCAg
IDM3ICsKIC4uLi93cHRydW5uZXIvdGVzdHMvdGVzdF9wcm9kdWN0cy5weSAgICAgICAgICB8ICAg
MTEgKy0KIC4uLi93cHRydW5uZXIvdGVzdHMvdGVzdF9zdGFiaWxpdHkucHkgICAgICAgICB8ICAg
MjkgKy0KIC4uLi93cHRydW5uZXIvdGVzdHMvdGVzdF90ZXN0bG9hZGVyLnB5ICAgICAgICB8ICAg
MTEgKy0KIC4uLi93cHRydW5uZXIvd3B0cnVubmVyL3Rlc3RzL3Rlc3RfdXBkYXRlLnB5ICB8IDEz
MDEgKysrKysrKysrKysrKystLQogLi4uL3dwdHJ1bm5lci93cHRydW5uZXIvdGVzdHMvdGVzdF93
cHR0ZXN0LnB5IHwgIDIxNSArKy0KIC4uLi93cHRydW5uZXIvd3B0cnVubmVyL3Rlc3RzL3czYy1p
bXBvcnQubG9nICB8ICAgIDMgKy0KIC4uLi93cHRydW5uZXIvd3B0cnVubmVyL3VwZGF0ZS9fX2lu
aXRfXy5weSAgICB8ICAgIDIgKy0KIC4uLi93cHRydW5uZXIvd3B0cnVubmVyL3VwZGF0ZS9tZXRh
ZGF0YS5weSAgICB8ICAgMTggKy0KIC4uLi90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3VwZGF0
ZS9zdGF0ZS5weSB8ICAgOTQgKy0KIC4uLi90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3VwZGF0
ZS9zeW5jLnB5ICB8ICAgIDQgKy0KIC4uLi93cHRydW5uZXIvd3B0cnVubmVyL3VwZGF0ZS91cGRh
dGUucHkgICAgICB8ICAgNTIgKy0KIC4uLi90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3czYy1p
bXBvcnQubG9nICB8ICAgIDIgKy0KIC4uLi93cHRydW5uZXIvd3B0cnVubmVyL3dlYmRyaXZlcl9z
ZXJ2ZXIucHkgICB8ICAgNjEgKy0KIC4uLi93cHRydW5uZXIvd3B0cnVubmVyL3dwdGNvbW1hbmRs
aW5lLnB5ICAgICB8ICAxMjYgKy0KIC4uLi90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3dwdGxv
Z2dpbmcucHkgICB8ICAxMDkgKy0KIC4uLi93cHRydW5uZXIvd3B0bWFuaWZlc3QvX19pbml0X18u
cHkgICAgICAgICB8ICAgIDggKy0KIC4uLi93cHRydW5uZXIvd3B0bWFuaWZlc3QvYmFja2VuZHMv
YmFzZS5weSAgICB8ICAyMjIgKysrCiAuLi4vd3B0bWFuaWZlc3QvYmFja2VuZHMvY29uZGl0aW9u
YWwucHkgICAgICAgfCAgIDU0ICstCiAuLi4vd3B0cnVubmVyL3dwdG1hbmlmZXN0L2JhY2tlbmRz
L3N0YXRpYy5weSAgfCAgMTI5ICstCiAuLi4vd3B0bWFuaWZlc3QvYmFja2VuZHMvdzNjLWltcG9y
dC5sb2cgICAgICAgfCAgICAxICsKIC4uLi93cHRydW5uZXIvd3B0cnVubmVyL3dwdG1hbmlmZXN0
L25vZGUucHkgICB8ICAgMjEgKy0KIC4uLi93cHRydW5uZXIvd3B0cnVubmVyL3dwdG1hbmlmZXN0
L3BhcnNlci5weSB8ICAgNjUgKy0KIC4uLi93cHRydW5uZXIvd3B0bWFuaWZlc3Qvc2VyaWFsaXpl
ci5weSAgICAgICB8ICAgMTQgKy0KIC4uLi93cHRtYW5pZmVzdC90ZXN0cy90ZXN0X2NvbmRpdGlv
bmFsLnB5ICAgICB8ICAgIDYgKy0KIC4uLi93cHRtYW5pZmVzdC90ZXN0cy90ZXN0X3BhcnNlci5w
eSAgICAgICAgICB8ICAgMTIgKy0KIC4uLi93cHRtYW5pZmVzdC90ZXN0cy90ZXN0X3NlcmlhbGl6
ZXIucHkgICAgICB8ICAgIDggKy0KIC4uLi93cHRtYW5pZmVzdC90ZXN0cy90ZXN0X3N0YXRpYy5w
eSAgICAgICAgICB8ICAgIDggKy0KIC4uLi93cHRtYW5pZmVzdC90ZXN0cy90ZXN0X3Rva2VuaXpl
ci5weSAgICAgICB8ICAgOTMgKy0KIC4uLi90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3dwdHJ1
bm5lci5weSAgICB8ICAxNTIgKy0KIC4uLi90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3dwdHRl
c3QucHkgICAgICB8ICAxODkgKystCiAuLi4vdG9vbHMvd3B0c2VydmUvUkVBRE1FLm1kICAgICAg
ICAgICAgICAgICAgfCAgICAyICstCiAuLi4vdG9vbHMvd3B0c2VydmUvZG9jcy9oYW5kbGVycy5y
c3QgICAgICAgICAgfCAgIDM1ICstCiAuLi4vdG9vbHMvd3B0c2VydmUvZG9jcy9waXBlcy5yc3Qg
ICAgICAgICAgICAgfCAgMTU3ICstCiAuLi4vdG9vbHMvd3B0c2VydmUvZG9jcy9yZXF1ZXN0LnJz
dCAgICAgICAgICAgfCAgICA0ICstCiAuLi4vdG9vbHMvd3B0c2VydmUvZG9jcy9yZXNwb25zZS5y
c3QgICAgICAgICAgfCAgICA0ICstCiAuLi4vdG9vbHMvd3B0c2VydmUvZG9jcy9yb3V0ZXIucnN0
ICAgICAgICAgICAgfCAgICA0ICstCiAuLi4vdG9vbHMvd3B0c2VydmUvZG9jcy9zZXJ2ZXIucnN0
ICAgICAgICAgICAgfCAgICA0ICstCiAuLi4vdG9vbHMvd3B0c2VydmUvZG9jcy9zdGFzaC5yc3Qg
ICAgICAgICAgICAgfCAgICA0ICstCiAuLi4vdG9vbHMvd3B0c2VydmUvdGVzdHMvZnVuY3Rpb25h
bC9iYXNlLnB5ICAgfCAgIDU3ICstCiAuLi4vZnVuY3Rpb25hbC9kb2Nyb290L2Jhci5hbnkud29y
a2VyLmh0bWwgICAgfCAgICAxICsKIC4uLi9mdW5jdGlvbmFsL2RvY3Jvb3QvYmFyLmFueS53b3Jr
ZXIuanMgICAgICB8ICAgIDkgKwogLi4uL3Rlc3RzL2Z1bmN0aW9uYWwvZG9jcm9vdC9mb28uYW55
Lmh0bWwgICAgIHwgICAxNCArCiAuLi4vZG9jcm9vdC9mb28uYW55LnNlcnZpY2V3b3JrZXIuaHRt
bCAgICAgICAgfCAgIDE1ICsKIC4uLi9kb2Nyb290L2Zvby5hbnkuc2hhcmVkd29ya2VyLmh0bWwg
ICAgICAgICB8ICAgIDkgKwogLi4uL2Z1bmN0aW9uYWwvZG9jcm9vdC9mb28uYW55Lndvcmtlci5o
dG1sICAgIHwgICAgOSArCiAuLi4vdGVzdHMvZnVuY3Rpb25hbC9kb2Nyb290L2Zvby53aW5kb3cu
aHRtbCAgfCAgICA4ICsKIC4uLi90ZXN0cy9mdW5jdGlvbmFsL2RvY3Jvb3QvZm9vLndvcmtlci5o
dG1sICB8ICAgIDkgKwogLi4uL3Rlc3RzL2Z1bmN0aW9uYWwvZG9jcm9vdC9pbnZhbGlkLnB5ICAg
ICAgIHwgICAgNCArLQogLi4uL2RvY3Jvb3Qvc3ViX2hlYWRlcl9vcl9kZWZhdWx0LnN1Yi50eHQg
ICAgIHwgICAgMiArCiAuLi4vZG9jcm9vdC9zdWJkaXIvc3ViX3BhdGguc3ViLnR4dCAgICAgICAg
ICAgfCAgICAzICsKIC4uLi9mdW5jdGlvbmFsL2RvY3Jvb3Qvc3ViZGlyL3czYy1pbXBvcnQubG9n
ICB8ICAgIDEgKwogLi4uL3Rlc3RzL2Z1bmN0aW9uYWwvZG9jcm9vdC93M2MtaW1wb3J0LmxvZyAg
IHwgICAgOCArCiAuLi4vd3B0c2VydmUvdGVzdHMvZnVuY3Rpb25hbC90ZXN0X2Nvb2tpZXMucHkg
fCAgICAyIC0KIC4uLi90ZXN0cy9mdW5jdGlvbmFsL3Rlc3RfaGFuZGxlcnMucHkgICAgICAgICB8
ICAxMDEgKy0KIC4uLi90ZXN0cy9mdW5jdGlvbmFsL3Rlc3RfaW5wdXRfZmlsZS5weSAgICAgICB8
ICAgMTEgKy0KIC4uLi93cHRzZXJ2ZS90ZXN0cy9mdW5jdGlvbmFsL3Rlc3RfcGlwZXMucHkgICB8
ICAgNzMgKy0KIC4uLi93cHRzZXJ2ZS90ZXN0cy9mdW5jdGlvbmFsL3Rlc3RfcmVxdWVzdC5weSB8
ICAgNjcgKy0KIC4uLi90ZXN0cy9mdW5jdGlvbmFsL3Rlc3RfcmVzcG9uc2UucHkgICAgICAgICB8
ICAgMTggKy0KIC4uLi93cHRzZXJ2ZS90ZXN0cy9mdW5jdGlvbmFsL3Rlc3Rfc2VydmVyLnB5ICB8
ICAgNDggKy0KIC4uLi90b29scy93cHRzZXJ2ZS90ZXN0cy90ZXN0X2NvbmZpZy5weSAgICAgICB8
ICAgMjEgKy0KIC4uLi90b29scy93cHRzZXJ2ZS90ZXN0cy90ZXN0X3N0YXNoLnB5ICAgICAgICB8
ICAxMzYgKysKIC4uLi90b29scy93cHRzZXJ2ZS90ZXN0cy93M2MtaW1wb3J0LmxvZyAgICAgICB8
ICAgIDEgKwogLi4uL3Rvb2xzL3dwdHNlcnZlL3dwdHNlcnZlL2NvbmZpZy5weSAgICAgICAgIHwg
ICAxMCArLQogLi4uL3Rvb2xzL3dwdHNlcnZlL3dwdHNlcnZlL2NvbnN0YW50cy5weSAgICAgIHwg
ICA1MSArLQogLi4uL3Rvb2xzL3dwdHNlcnZlL3dwdHNlcnZlL2hhbmRsZXJzLnB5ICAgICAgIHwg
ICAzMCArLQogLi4uL3Rvb2xzL3dwdHNlcnZlL3dwdHNlcnZlL3BpcGVzLnB5ICAgICAgICAgIHwg
ICA3MSArLQogLi4uL3Rvb2xzL3dwdHNlcnZlL3dwdHNlcnZlL3Jhbmdlcy5weSAgICAgICAgIHwg
ICAgNCArCiAuLi4vdG9vbHMvd3B0c2VydmUvd3B0c2VydmUvcmVxdWVzdC5weSAgICAgICAgfCAg
IDc1ICstCiAuLi4vdG9vbHMvd3B0c2VydmUvd3B0c2VydmUvcmVzcG9uc2UucHkgICAgICAgfCAg
MTcxICsrLQogLi4uL3Rvb2xzL3dwdHNlcnZlL3dwdHNlcnZlL3JvdXRlci5weSAgICAgICAgIHwg
ICAgMiArLQogLi4uL3Rvb2xzL3dwdHNlcnZlL3dwdHNlcnZlL3NlcnZlci5weSAgICAgICAgIHwg
ICA0OCArLQogLi4uL3dwdHNlcnZlL3dwdHNlcnZlL3NzbHV0aWxzL19faW5pdF9fLnB5ICAgIHwg
ICAgMiArLQogLi4uL3Rvb2xzL3dwdHNlcnZlL3dwdHNlcnZlL3NzbHV0aWxzL2Jhc2UucHkgIHwg
ICAgMiArLQogLi4uL3dwdHNlcnZlL3dwdHNlcnZlL3NzbHV0aWxzL29wZW5zc2wucHkgICAgIHwg
ICA0OCArLQogLi4uL3dwdHNlcnZlL3NzbHV0aWxzL3ByZWdlbmVyYXRlZC5weSAgICAgICAgIHwg
ICAgMiArLQogLi4uL3dwdHNlcnZlL3dwdHNlcnZlL3NzbHV0aWxzL3czYy1pbXBvcnQubG9nIHwg
ICAgNCArCiAuLi4vdG9vbHMvd3B0c2VydmUvd3B0c2VydmUvc3Rhc2gucHkgICAgICAgICAgfCAg
IDIzICstCiAuLi4vdG9vbHMvd3B0c2VydmUvd3B0c2VydmUvdXRpbHMucHkgICAgICAgICAgfCAg
ICAxICsKIC4uLi90b29scy93cHRzZXJ2ZS93cHRzZXJ2ZS93M2MtaW1wb3J0LmxvZyAgICB8ICAg
MTQgKwogMzYxIGZpbGVzIGNoYW5nZWQsIDI0NDEyIGluc2VydGlvbnMoKyksIDcwNTYgZGVsZXRp
b25zKC0pCiBkZWxldGUgbW9kZSAxMDA2NDQgTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy9hcHB2ZXlvci55bWwKIGNyZWF0ZSBtb2RlIDEwMDY0NCBMYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2NlcnRzL2NvbmZp
Zy5qc29uCiBjcmVhdGUgbW9kZSAxMDA2NDQgTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy9jaS9henVyZS9SRUFETUUubWQKIGNyZWF0ZSBtb2RlIDEwMDY0
NCBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2NpL2F6
dXJlL2FmZmVjdGVkX3Rlc3RzLnltbAogY3JlYXRlIG1vZGUgMTAwNjQ0IExheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvY2kvYXp1cmUvY2hlY2tvdXQueW1s
CiBjcmVhdGUgbW9kZSAxMDA2NDQgTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy9jaS9henVyZS9jbGVhbnVwX3dpbjEwLnltbAogY3JlYXRlIG1vZGUgMTAw
NjQ0IExheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvY2kv
YXp1cmUvY29tLmFwcGxlLlNhZmFyaS5wbGlzdAogY3JlYXRlIG1vZGUgMTAwNjQ0IExheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvY2kvYXp1cmUvZnlpX2hv
b2sueW1sCiBjcmVhdGUgbW9kZSAxMDA2NDQgTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy9jaS9henVyZS9pbnN0YWxsX2NlcnRzLnltbAogY3JlYXRlIG1v
ZGUgMTAwNjQ0IExheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvY2kvYXp1cmUvaW5zdGFsbF9jaHJvbWUueW1sCiBjcmVhdGUgbW9kZSAxMDA2NDQgTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9jaS9henVyZS9pbnN0
YWxsX2VkZ2UueW1sCiBjcmVhdGUgbW9kZSAxMDA2NDQgTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9jaS9henVyZS9pbnN0YWxsX2ZpcmVmb3gueW1sCiBj
cmVhdGUgbW9kZSAxMDA2NDQgTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy9jaS9henVyZS9pbnN0YWxsX2ZvbnRzLnltbAogY3JlYXRlIG1vZGUgMTAwNjQ0
IExheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvY2kvYXp1
cmUvaW5zdGFsbF9weXRob24ueW1sCiBjcmVhdGUgbW9kZSAxMDA2NDQgTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9jaS9henVyZS9pbnN0YWxsX3NhZmFy
aS55bWwKIGNyZWF0ZSBtb2RlIDEwMDY0NCBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL2NpL2F6dXJlL3BpcF9pbnN0YWxsLnltbAogY3JlYXRlIG1vZGUg
MTAwNjQ0IExheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
Y2kvYXp1cmUvc2FmYXJpLXRlY2hub2xvZ3ktcHJldmlldy5yYgogY3JlYXRlIG1vZGUgMTAwNjQ0
IExheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvY2kvYXp1
cmUvc3lzdGVtX2luZm8ueW1sCiBjcmVhdGUgbW9kZSAxMDA2NDQgTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9jaS9henVyZS90b3hfcHl0ZXN0LnltbAog
Y3JlYXRlIG1vZGUgMTAwNjQ0IExheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvY2kvYXp1cmUvdXBkYXRlX2hvc3RzLnltbAogY3JlYXRlIG1vZGUgMTAwNjQ0
IExheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvY2kvYXp1
cmUvdXBkYXRlX21hbmlmZXN0LnltbAogY3JlYXRlIG1vZGUgMTAwNjQ0IExheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvY2kvYXp1cmUvdzNjLWltcG9ydC5s
b2cKIGRlbGV0ZSBtb2RlIDEwMDY0NCBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL2NpL2JlZm9yZV9pbnN0YWxsLnNoCiBkZWxldGUgbW9kZSAxMDA2NDQg
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9jaS9jaGVj
a19zdGFiaWxpdHkucHkKIGRlbGV0ZSBtb2RlIDEwMDY0NCBMYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2NpL2NpX2xpbnQuc2gKIGRlbGV0ZSBtb2RlIDEw
MDY0NCBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2Np
L2NpX21hbmlmZXN0LnNoCiBkZWxldGUgbW9kZSAxMDA2NDQgTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9jaS9jaV9zdGFiaWxpdHkuc2gKIGRlbGV0ZSBt
b2RlIDEwMDY0NCBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL2NpL2NpX3Rhc2tjbHVzdGVyLnNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9jaS9lcG9jaHNfdXBkYXRlLnNo
CiBkZWxldGUgbW9kZSAxMDA2NDQgTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy9jaS9pbnN0YWxsLnNoCiBkZWxldGUgbW9kZSAxMDA2NDQgTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9jaS9saWIuc2gKIGNyZWF0
ZSBtb2RlIDEwMDY0NCBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL2NpL21hbmlmZXN0X2J1aWxkLnB5CiBjcmVhdGUgbW9kZSAxMDA2NDQgTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9jaS9wcl9wcmV2aWV3LnB5
CiBkZWxldGUgbW9kZSAxMDA2NDQgTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy9jaS9ydW4uc2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBMYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2NpL3J1bl90Yy5weQogZGVsZXRl
IG1vZGUgMTAwNjQ0IExheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvY2kvdGFnX21hc3Rlci5weQogY3JlYXRlIG1vZGUgMTAwNjQ0IExheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvY2kvdGFza2NsdXN0ZXItcnVuLnB5
CiBjcmVhdGUgbW9kZSAxMDA2NDQgTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy9jaS90Yy9SRUFETUUubWQKIGNyZWF0ZSBtb2RlIDEwMDY0NCBMYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2NpL3RjL19faW5pdF9f
LnB5CiBjcmVhdGUgbW9kZSAxMDA2NDQgTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy9jaS90Yy9kZWNpc2lvbi5weQogY3JlYXRlIG1vZGUgMTAwNjQ0IExh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvY2kvdGMvZG93
bmxvYWQucHkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2NpL3RjL3Rhc2tncmFwaC5weQogY3JlYXRlIG1vZGUgMTAw
NjQ0IExheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvY2kv
dGMvdGFza3MvdGVzdC55bWwKIGNyZWF0ZSBtb2RlIDEwMDY0NCBMYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2NpL3RjL3Rhc2tzL3czYy1pbXBvcnQubG9n
CiBjcmVhdGUgbW9kZSAxMDA2NDQgTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy9jaS90Yy90ZXN0ZGF0YS9lcG9jaHNfZGFpbHlfcHVzaF9ldmVudC5qc29u
CiBjcmVhdGUgbW9kZSAxMDA2NDQgTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy9jaS90Yy90ZXN0ZGF0YS9tYXN0ZXJfcHVzaF9ldmVudC5qc29uCiBjcmVh
dGUgbW9kZSAxMDA2NDQgTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy9jaS90Yy90ZXN0ZGF0YS9wcl9ldmVudC5qc29uCiBjcmVhdGUgbW9kZSAxMDA2NDQg
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9jaS90Yy90
ZXN0ZGF0YS9wcl9ldmVudF90ZXN0c19hZmZlY3RlZC5qc29uCiBjcmVhdGUgbW9kZSAxMDA2NDQg
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9jaS90Yy90
ZXN0ZGF0YS93M2MtaW1wb3J0LmxvZwogY3JlYXRlIG1vZGUgMTAwNjQ0IExheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvY2kvdGMvdGVzdHMvdGVzdF9kZWNp
c2lvbi5weQogY3JlYXRlIG1vZGUgMTAwNjQ0IExheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvY2kvdGMvdGVzdHMvdGVzdF90YXNrZ3JhcGgucHkKIGNyZWF0
ZSBtb2RlIDEwMDY0NCBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL2NpL3RjL3Rlc3RzL3Rlc3RfdmFsaWQucHkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBMYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2NpL3RjL3Rlc3Rz
L3czYy1pbXBvcnQubG9nCiBjcmVhdGUgbW9kZSAxMDA2NDQgTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9jaS90Yy93M2MtaW1wb3J0LmxvZwogY3JlYXRl
IG1vZGUgMTAwNjQ0IExheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvY2kvdGVzdHMvdGVzdF9wcl9wcmV2aWV3LnB5CiBjcmVhdGUgbW9kZSAxMDA2NDQgTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9jaS93ZWJzaXRl
X2J1aWxkLnNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy9kb2NrZXIvUkVBRE1FLm1kCiBjcmVhdGUgbW9kZSAxMDA2
NDQgTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9kb2Nr
ZXIvX19pbml0X18ucHkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBMYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2RvY2tlci9jb21tYW5kcy5qc29uCiBjcmVhdGUg
bW9kZSAxMDA2NDQgTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy9kb2NrZXIvZG9jdW1lbnRhdGlvbi9Eb2NrZXJmaWxlCiBjcmVhdGUgbW9kZSAxMDA2NDQg
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9kb2NrZXIv
ZG9jdW1lbnRhdGlvbi93M2MtaW1wb3J0LmxvZwogY3JlYXRlIG1vZGUgMTAwNjQ0IExheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvZG9ja2VyL2Zyb250ZW5k
LnB5CiBjcmVhdGUgbW9kZSAxMDA2NDQgTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy9kb2NrZXIvcmV0cnkucHkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBMYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2RvY2tlci9zZWNj
b21wLmpzb24KIGNyZWF0ZSBtb2RlIDEwMDY0NCBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2xpbnQvcnVsZXMucHkKIHJlbmFtZSBMYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2xpbnQvdGVzdHMvZHVtbXkve3Jl
Zi9hYm91dF9ibGFuay1yZWYuaHRtbCA9PiBhYm91dF9ibGFuay5odG1sfSAoMTAwJSkKIGNyZWF0
ZSBtb2RlIDEwMDY0NCBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL21hbmlmZXN0L3Rlc3RwYXRocy5weQogY3JlYXRlIG1vZGUgMTAwNjQ0IExheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvbWFuaWZlc3QvdGVzdHMv
dGVzdF91dGlscy5weQogY3JlYXRlIG1vZGUgMTAwNjQ0IExheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvbXlweS5pbmkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBM
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5MjctZmxh
a2U4LmluaQogcmVuYW1lIExheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMve2ZsYWtlOC5pbmkgPT4gcHkzNi1mbGFrZTguaW5pfSAoNjclKQogY3JlYXRlIG1v
ZGUgMTAwNjQ0IExheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvcmVxdWlyZW1lbnRzX2ZsYWtlOC50eHQKIGNyZWF0ZSBtb2RlIDEwMDY0NCBMYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3JlcXVpcmVtZW50c19teXB5
LnR4dAogZGVsZXRlIG1vZGUgMTAwNjQ0IExheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvcnVubmVyL2xvZ28uc3ZnCiBjcmVhdGUgbW9kZSAxMDA2NDQgTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9zZXJ2ZS90ZXN0
X2Z1bmN0aW9uYWwucHkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBMYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3Rvb2x0b29sL3Rvb2x0b29s
LnB5CiBjcmVhdGUgbW9kZSAxMDA2NDQgTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS90b29sdG9vbC93M2MtaW1wb3J0LmxvZwogY3Jl
YXRlIG1vZGUgMTAwNjQ0IExheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvd3B0L2FuZHJvaWQucHkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBMYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdC9jcmVhdGUucHkKIGNyZWF0
ZSBtb2RlIDEwMDY0NCBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3dwdC9tYWNoLWVtdWxhdG9yLm1hbmlmZXN0CiBjcmVhdGUgbW9kZSAxMDA2NDQgTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHQvcmV2bGlz
dC5weQogY3JlYXRlIG1vZGUgMTAwNjQ0IExheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvd3B0L3Rlc3RzL3Rlc3RfYnJvd3Nlci5weQogY3JlYXRlIG1vZGUg
MTAwNjQ0IExheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
d3B0L3Rlc3RzL3Rlc3RfcmV2bGlzdC5weQogY3JlYXRlIG1vZGUgMTAwNjQ0IExheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0L3Rlc3RzL3Rlc3RfcnVu
LnB5CiBjcmVhdGUgbW9kZSAxMDA2NDQgTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy93cHQvdGVzdHMvdGVzdF90ZXN0ZmlsZXMucHkKIGRlbGV0ZSBtb2Rl
IDEwMDY0NCBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3dwdHJ1bm5lci9kb2NzL01ha2VmaWxlCiBkZWxldGUgbW9kZSAxMDA2NDQgTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvZG9jcy9jb25m
LnB5CiBkZWxldGUgbW9kZSAxMDA2NDQgTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvZG9jcy9pbmRleC5yc3QKIGNyZWF0ZSBtb2RlIDEw
MDY0NCBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dw
dHJ1bm5lci9kb2NzL2ludGVybmFscy5yc3QKIGRlbGV0ZSBtb2RlIDEwMDY0NCBMYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci9kb2NzL21h
a2UuYmF0CiBjcmVhdGUgbW9kZSAxMDA2NDQgTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvcmVxdWlyZW1lbnRzX2FuZHJvaWRfd2Vidmll
dy50eHQKIGNyZWF0ZSBtb2RlIDEwMDY0NCBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci9yZXF1aXJlbWVudHNfY2hyb21lX2lvcy50eHQK
IGNyZWF0ZSBtb2RlIDEwMDY0NCBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci9yZXF1aXJlbWVudHNfZWRnZV9jaHJvbWl1bS50eHQKIGNy
ZWF0ZSBtb2RlIDEwMDY0NCBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3dwdHJ1bm5lci9yZXF1aXJlbWVudHNfZXBpcGhhbnkudHh0CiBjcmVhdGUgbW9k
ZSAxMDA2NDQgTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy93cHRydW5uZXIvd3B0cnVubmVyL2Jyb3dzZXJzL2FuZHJvaWRfd2Vidmlldy5weQogY3JlYXRl
IG1vZGUgMTAwNjQ0IExheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9icm93c2Vycy9jaHJvbWVfaW9zLnB5CiBjcmVhdGUg
bW9kZSAxMDA2NDQgTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy93cHRydW5uZXIvd3B0cnVubmVyL2Jyb3dzZXJzL2VkZ2Vfd2ViZHJpdmVyLnB5CiBjcmVh
dGUgbW9kZSAxMDA2NDQgTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2Jyb3dzZXJzL2VkZ2VjaHJvbWl1bS5weQogY3Jl
YXRlIG1vZGUgMTAwNjQ0IExheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9icm93c2Vycy9lcGlwaGFueS5weQogZGVsZXRl
IG1vZGUgMTAwNjQ0IExheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9icm93c2Vycy9mZW5uZWMucHkKIGNyZWF0ZSBtb2Rl
IDEwMDY0NCBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3dwdHJ1bm5lci93cHRydW5uZXIvYnJvd3NlcnMvZmlyZWZveF9hbmRyb2lkLnB5CiBjcmVhdGUg
bW9kZSAxMDA2NDQgTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy93cHRydW5uZXIvd3B0cnVubmVyL2Jyb3dzZXJzL3dlYmtpdGd0a19taW5pYnJvd3Nlci5w
eQogY3JlYXRlIG1vZGUgMTAwNjQ0IExheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9leGVjdXRvcnMvZXhlY3V0b3JlZGdl
Y2hyb21pdW0ucHkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvZXhlY3V0b3JzL2V4
ZWN1dG9yd2ViZHJpdmVyLnB5CiBkZWxldGUgbW9kZSAxMDA2NDQgTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2V4ZWN1
dG9ycy9yZWZ0ZXN0LXdhaXRfbWFyaW9uZXR0ZS5qcwogY3JlYXRlIG1vZGUgMTAwNjQ0IExheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dw
dHJ1bm5lci9leGVjdXRvcnMvcnVubmVyLmpzCiBkZWxldGUgbW9kZSAxMDA2NDQgTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVu
bmVyL2V4ZWN1dG9ycy90ZXN0aGFybmVzc193ZWJkcml2ZXIuanMKIGNyZWF0ZSBtb2RlIDEwMDY0
NCBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1
bm5lci93cHRydW5uZXIvZXhwZWN0ZWR0cmVlLnB5CiBkZWxldGUgbW9kZSAxMDA2NDQgTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0
cnVubmVyL2Zvcm1hdHRlcnMucHkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBMYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvZm9y
bWF0dGVycy9fX2luaXRfXy5weQogY3JlYXRlIG1vZGUgMTAwNjQ0IExheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9mb3Jt
YXR0ZXJzL2Nocm9taXVtLnB5CiBjcmVhdGUgbW9kZSAxMDA2NDQgTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2Zvcm1h
dHRlcnMvdGVzdHMvdGVzdF9jaHJvbWl1bS5weQogY3JlYXRlIG1vZGUgMTAwNjQ0IExheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1
bm5lci9mb3JtYXR0ZXJzL3Rlc3RzL3czYy1pbXBvcnQubG9nCiBjcmVhdGUgbW9kZSAxMDA2NDQg
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5u
ZXIvd3B0cnVubmVyL2Zvcm1hdHRlcnMvdzNjLWltcG9ydC5sb2cKIGNyZWF0ZSBtb2RlIDEwMDY0
NCBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1
bm5lci93cHRydW5uZXIvZm9ybWF0dGVycy93cHRyZXBvcnQucHkKIGNyZWF0ZSBtb2RlIDEwMDY0
NCBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1
bm5lci93cHRydW5uZXIvZm9ybWF0dGVycy93cHRzY3JlZW5zaG90LnB5CiBjcmVhdGUgbW9kZSAx
MDA2NDQgTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93
cHRydW5uZXIvd3B0cnVubmVyL3Rlc3RzL2Jyb3dzZXJzL3Rlc3Rfd2Via2l0Z3RrLnB5CiBkZWxl
dGUgbW9kZSAxMDA2NDQgTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3Rlc3RzL3Rlc3RfY2h1bmtlci5weQogY3JlYXRl
IG1vZGUgMTAwNjQ0IExheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci90ZXN0cy90ZXN0X2V4cGVjdGVkdHJlZS5weQogY3Jl
YXRlIG1vZGUgMTAwNjQ0IExheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci90ZXN0cy90ZXN0X21hbmlmZXN0ZXhwZWN0ZWQu
cHkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvd3B0bWFuaWZlc3QvYmFja2VuZHMv
YmFzZS5weQogY3JlYXRlIG1vZGUgMTAwNjQ0IExheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0c2VydmUvdGVzdHMvZnVuY3Rpb25hbC9kb2Nyb290L2Jh
ci5hbnkud29ya2VyLmh0bWwKIGNyZWF0ZSBtb2RlIDEwMDY0NCBMYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHNlcnZlL3Rlc3RzL2Z1bmN0aW9uYWwv
ZG9jcm9vdC9iYXIuYW55Lndvcmtlci5qcwogY3JlYXRlIG1vZGUgMTAwNjQ0IExheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0c2VydmUvdGVzdHMvZnVu
Y3Rpb25hbC9kb2Nyb290L2Zvby5hbnkuaHRtbAogY3JlYXRlIG1vZGUgMTAwNjQ0IExheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0c2VydmUvdGVzdHMv
ZnVuY3Rpb25hbC9kb2Nyb290L2Zvby5hbnkuc2VydmljZXdvcmtlci5odG1sCiBjcmVhdGUgbW9k
ZSAxMDA2NDQgTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy93cHRzZXJ2ZS90ZXN0cy9mdW5jdGlvbmFsL2RvY3Jvb3QvZm9vLmFueS5zaGFyZWR3b3JrZXIu
aHRtbAogY3JlYXRlIG1vZGUgMTAwNjQ0IExheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvd3B0c2VydmUvdGVzdHMvZnVuY3Rpb25hbC9kb2Nyb290L2Zvby5h
bnkud29ya2VyLmh0bWwKIGNyZWF0ZSBtb2RlIDEwMDY0NCBMYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHNlcnZlL3Rlc3RzL2Z1bmN0aW9uYWwvZG9j
cm9vdC9mb28ud2luZG93Lmh0bWwKIGNyZWF0ZSBtb2RlIDEwMDY0NCBMYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHNlcnZlL3Rlc3RzL2Z1bmN0aW9u
YWwvZG9jcm9vdC9mb28ud29ya2VyLmh0bWwKIGNyZWF0ZSBtb2RlIDEwMDY0NCBMYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHNlcnZlL3Rlc3RzL2Z1
bmN0aW9uYWwvZG9jcm9vdC9zdWJfaGVhZGVyX29yX2RlZmF1bHQuc3ViLnR4dAogY3JlYXRlIG1v
ZGUgMTAwNjQ0IExheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvd3B0c2VydmUvdGVzdHMvZnVuY3Rpb25hbC9kb2Nyb290L3N1YmRpci9zdWJfcGF0aC5zdWIu
dHh0CiBjcmVhdGUgbW9kZSAxMDA2NDQgTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy93cHRzZXJ2ZS90ZXN0cy90ZXN0X3N0YXNoLnB5CgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy9DaGFuZ2VMb2cKaW5kZXggNWMzNTVkOWEyMTkuLmYyOWEwN2IxYTkzIDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMiBAQAorMjAxOS0xMi0wMyAgWW91
ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CisKKyAgICAgICAgVXBkYXRlIFdQVCB0b29s
cyBkaXJlY3RvcnkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTIwNDcyOAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzOiBSZWZyZXNoZWQKKwogMjAxOS0xMi0wMiAg
QWxleCBDaHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJraXQub3JnPgogCiAgICAgICAgIElu
Y29ycmVjdCBhc3NvY2lhdGlvbiBvZiB0aGUgVVJMIG9iamVjdCB3aXRoIHRoZSB2YWx1ZSBwb3J0
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL01FVEEueW1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy9NRVRBLnltbAppbmRleCA4Zjk4OGY5OWE4Mi4uN2NjMjJhMjhjMjAgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
TUVUQS55bWwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy9NRVRBLnltbApAQCAtMSwzICsxLDQgQEAKIHN1Z2dlc3RlZF9yZXZpZXdlcnM6CiAg
IC0gamdyYWhhbQogICAtIGdzbmVkZGVycworICAtIGp1Z2dsaW5taWtlCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2FwcHZleW9y
LnltbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
YXBwdmV5b3IueW1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiMGNlZGQ1Yzc4Zi4u
MDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy9hcHB2ZXlvci55bWwKKysrIC9kZXYvbnVsbApAQCAtMSwzMiArMCwwIEBACi1l
bnZpcm9ubWVudDoKLSAgZ2xvYmFsOgotICAgIEhZUE9USEVTSVNfUFJPRklMRTogY2kKLSAgbWF0
cml4OgotICAgIC0gUFlUSE9OOiAnQzpcXFB5dGhvbjI3JwotICAgIC0gUFlUSE9OOiAnQzpcXFB5
dGhvbjM1JwotICAgIC0gUFlUSE9OOiAnQzpcXFB5dGhvbjM2JwotCi0jIE5lZWRlZCB0byBtYWtl
IHB5LnRlc3QgYmVsaWV2ZSBvdXIgdG9wIGxldmVsIGNhbiBiZSBpbXBvcnRlZCAod2UKLSMgb3Ro
ZXJ3aXNlIGVuZCB1cCBpbiBhIHdwdC10b29scyBkaXJlY3RvcnksIGFuZCBvZiBjb3Vyc2UgeW91
IGNhbm5vdAotIyBpbXBvcnQgYSBuYW1lIGluY2x1ZGluZyBhIGh5cGhlbiBpbiBQeXRob24sIHNv
IGl0IGlnbm9yZXMgdGhlIGZhY3QKLSMgd2UgaGF2ZSBhIF9faW5pdF9fLnB5IGF0IHRoZSB0b3Ag
bGV2ZWwpLgotY2xvbmVfZm9sZGVyOiAnQzpccHJvamVjdHNcd3B0dG9vbHMnCi0KLWluaXQ6Ci0g
IC0gJ2dpdCBjb25maWcgLS1nbG9iYWwgY29yZS5hdXRvY3JsZiB0cnVlJwotCi1pbnN0YWxsOgot
ICAtICdybSAuZ2l0XGluZGV4JwotICAtICdnaXQgcmVzZXQgLS1oYXJkJwotICAtICdTRVQgUEFU
SD0lUFlUSE9OJTslUFlUSE9OJVxcU2NyaXB0czslUEFUSCUnCi0gIC0gJ2dpdCBzdWJtb2R1bGUg
dXBkYXRlIC0taW5pdCAtLXJlY3Vyc2l2ZScKLSAgLSAncHl0aG9uLmV4ZSAtbSBwaXAgaW5zdGFs
bCB0b3ggY29kZWNvdicKLQotYnVpbGQ6IG9mZgotCi10ZXN0X3NjcmlwdDoKLSAgLSAndG94IC1l
IHB5JwotCi1vbl9zdWNjZXNzOgotICAtICdjb3ZlcmFnZSBjb21iaW5lJwotICAtICdjb2RlY292
JwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy9jZXJ0cy9SRUFETUUubWQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL2NlcnRzL1JFQURNRS5tZAppbmRleCBmNWFlNzQxM2FmZS4uZmQ3
NWMyMmRkZmYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvY2VydHMvUkVBRE1FLm1kCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvY2VydHMvUkVBRE1FLm1kCkBAIC0xLDcgKzEs
ODEgQEAKLVRvIGVuYWJsZSBodHRwczovL3dlYi1wbGF0Zm9ybS50ZXN0Ojg0NDMvLCBhZGQgY2Fj
ZXJ0LnBlbSB0byB5b3VyIGJyb3dzZXIgYXMgQ2VydGlmaWNhdGUgQXV0aG9yaXR5LgorIyBXUFQg
VGVzdCBDZXJ0aWZpY2F0ZXMKKworVGhlIHdlYi1wbGF0Zm9ybS10ZXN0cyBwcm9qZWN0IG1haW50
YWlucyBhIHNldCBvZiBTU0wgY2VydGlmaWNhdGVzIHRvIGFsbG93Citjb250cmlidXRvcnMgdG8g
ZXhlY3V0ZSB0ZXN0cyByZXF1aXJpbmcgSFRUUFMgbG9jYWxseS4KKworIyMgVHJ1c3RpbmcgUm9v
dCBDQQorCitUbyBwcmV2ZW50IGJyb3dzZXIgU1NMIHdhcm5pbmdzIHdoZW4gcnVubmluZyBIVFRQ
UyB0ZXN0cyBsb2NhbGx5LCB0aGUKK3dlYi1wbGF0Zm9ybS10ZXN0cyBSb290IENBIGZpbGUgYGNh
Y2VydC5wZW1gIGluIHRoZSBgdG9vbHMvY2VydHMvYCBkaXJlY3RvcnkKK211c3QgYmUgYWRkZWQg
YXMgYSB0cnVzdGVkIGNlcnRpZmljYXRlIGluIHlvdXIgT1MvYnJvd3Nlci4KIAogRm9yIEZpcmVm
b3gsIGdvIHRvIGFib3V0OnByZWZlcmVuY2VzIGFuZCBzZWFyY2ggZm9yICJjZXJ0aWZpY2F0ZXMi
LgogCi1Gb3IgYnJvd3NlcnMgdGhhdCB1c2UgdGhlIENlcnRpZmljYXRlIEF1dGhvcml0aWVzIG9m
IHRoZSB1bmRlcmx5aW5nIE9TLCBzdWNoIGFzIENocm9tZSBhbmQgU2FmYXJpLAoteW91IG5lZWQg
dG8gYWRqdXN0IHRoZSBPUy4gRm9yIG1hY09TLCBnbyB0byBLZXljaGFpbiBBY2Nlc3MgYW5kIGFk
ZCB0aGUgY2VydGlmaWNhdGUgdW5kZXIKLSoqbG9naW4qKi4KK0ZvciBicm93c2VycyB0aGF0IHVz
ZSB0aGUgQ2VydGlmaWNhdGUgQXV0aG9yaXRpZXMgb2YgdGhlIHVuZGVybHlpbmcgT1MsIHN1Y2gg
YXMKK0Nocm9tZSBhbmQgU2FmYXJpLCB5b3UgbmVlZCB0byBhZGp1c3QgdGhlIE9TLiBGb3IgbWFj
T1MsIGdvIHRvIEtleWNoYWluIEFjY2VzcworYW5kIGFkZCB0aGUgY2VydGlmaWNhdGUgdW5kZXIg
Kipsb2dpbioqLgorCisqKk5PVEUqKjogVGhlIENBIHNob3VsZCBub3QgYmUgaW5zdGFsbGVkIGlu
IGFueSBicm93c2VyIHByb2ZpbGUgdXNlZAorb3V0c2lkZSBvZiB0ZXN0cywgc2luY2UgaXQgbWF5
IGJlIHVzZWQgdG8gZ2VuZXJhdGUgZmFrZQorY2VydGlmaWNhdGVzLiBGb3IgYnJvd3NlcnMgdGhh
dCB1c2UgdGhlIE9TIGNlcnRpZmljYXRlIHN0b3JlLCB0ZXN0cworc2hvdWxkIHRoZXJlZm9yZSBu
b3QgYmUgcnVuIG1hbnVhbGx5IG91dHNpZGUgYSBkZWRpY2F0ZWQgT1MgaW5zdGFuY2UKKyhlLmcu
IGEgVk0pLiBUbyBhdm9pZCB0aGlzIHByb2JsZW0gd2hlbiBydW5uaW5nIHRlc3RzIGluIENocm9t
ZSBvcgorRmlyZWZveCwgdXNlIGB3cHQgcnVuYCwgd2hpY2ggZGlzYWJsZXMgY2VydGlmaWNhdGUg
Y2hlY2tzIGFuZCB0aGVyZWZvcmUKK2RvZXNuJ3QgcmVxdWlyZSB0aGUgcm9vdCBDQSB0byBiZSB0
cnVzdGVkLgorCisjIyBSZWdlbmVyYXRpbmcgY2VydGlmaWNhdGVzCisKK0lmIHlvdSB3aXNoIHRv
IGdlbmVyYXRlIG5ldyBjZXJ0aWZpY2F0ZXMgZm9yIGFueSByZWFzb24sIGl0J3MgcG9zc2libGUg
dG8gdXNlCitPcGVuU1NMIHdoZW4gc3RhcnRpbmcgdGhlIHNlcnZlciwgb3Igc3RhcnRpbmcgYSB0
ZXN0IHJ1biwgYnkgcHJvdmlkaW5nIHRoZQorYC0tc3NsLXR5cGU9b3BlbnNzbGAgYXJndW1lbnQg
dG8gdGhlIGB3cHQgc2VydmVgIG9yIGB3cHQgcnVuYCBjb21tYW5kcy4KKworSWYgeW91IGluc3Rh
bGxlZCBPcGVuU1NMIGluIHN1Y2ggYSB3YXkgdGhhdCBydW5uaW5nIGBvcGVuc3NsYCBhdCBhCitj
b21tYW5kIGxpbmUgZG9lc24ndCB3b3JrLCB5b3UgYWxzbyBuZWVkIHRvIGFkanVzdCB0aGUgcGF0
aCB0byB0aGUKK09wZW5TU0wgYmluYXJ5LiBUaGlzIGNhbiBiZSBkb25lIGJ5IGFkZGluZyBhIHNl
Y3Rpb24gdG8gYGNvbmZpZy5qc29uYAorbGlrZToKKworYGBgCisic3NsIjogeyJvcGVuc3NsIjog
eyJiaW5hcnkiOiAiL3BhdGgvdG8vb3BlbnNzbCJ9fQorYGBgCisKK09uIFdpbmRvd3MgdXNpbmcg
T3BlblNTTCB0eXBpY2FsbHkgcmVxdWlyZXMgaW5zdGFsbGluZyBhbiBPcGVuU1NMIGRpc3RyaWJ1
dGlvbi4KK1tTaGluaW5nIExpZ2h0XShodHRwczovL3NscHJvd2ViLmNvbS9wcm9kdWN0cy9XaW4z
Mk9wZW5TU0wuaHRtbCkKK3Byb3ZpZGUgYSBjb252ZW5pZW50IGluc3RhbGxlciB0aGF0IGlzIGtu
b3duIHRvIHdvcmssIGJ1dCByZXF1aXJlcyBhCitsaXR0bGUgZXh0cmEgc2V0dXAsIGkuZS46CisK
K1J1biB0aGUgaW5zdGFsbGVyIGZvciBXaW4zMl9PcGVuU1NMX3YxLjEuMGIgKDMwTUIpLiBEdXJp
bmcgaW5zdGFsbGF0aW9uLAorY2hhbmdlIHRoZSBkZWZhdWx0IGxvY2F0aW9uIGZvciB3aGVyZSB0
byBDb3B5IE9wZW5TU0wgRGxscyBmcm9tIHRoZQorU3lzdGVtIGRpcmVjdG9yeSB0byB0aGUgL2Jp
biBkaXJlY3RvcnkuCisKK0FmdGVyIGluc3RhbGxhdGlvbiwgZW5zdXJlIHRoYXQgdGhlIHBhdGgg
dG8gT3BlblNTTCAodHlwaWNhbGx5LAordGhpcyB3aWxsIGJlIGBDOlxPcGVuU1NMLVdpbjMyXGJp
bmApIGlzIGluIHlvdXIgYCVQYXRoJWAKK1tFbnZpcm9ubWVudCBWYXJpYWJsZV0oaHR0cDovL3d3
dy5jb21wdXRlcmhvcGUuY29tL2lzc3Vlcy9jaDAwMDU0OS5odG0pLgorSWYgeW91IGZvcmdldCB0
byBkbyB0aGlzIHBhcnQsIHlvdSB3aWxsIG1vc3QgbGlrZWx5IHNlZSBhICdGaWxlIE5vdCBGb3Vu
ZCcKK2Vycm9yIHdoZW4geW91IHN0YXJ0IHdwdHNlcnZlLgorCitGaW5hbGx5LCBzZXQgdGhlIHBh
dGggdmFsdWUgaW4gdGhlIHNlcnZlciBjb25maWd1cmF0aW9uIGZpbGUgdG8gdGhlCitkZWZhdWx0
IE9wZW5TU0wgY29uZmlndXJhdGlvbiBmaWxlIGxvY2F0aW9uLiBUbyBkbyB0aGlzLCBjcmVhdGUg
YSBmaWxlCitjYWxsZWQgYGNvbmZpZy5qc29uYC4gIFRoZW4gYWRkIHRoZSBPcGVuU1NMIGNvbmZp
Z3VyYXRpb24gYmVsb3csCitlbnN1cmluZyB0aGF0IHRoZSBrZXkgYHNzbC9vcGVuc3NsL2Jhc2Vf
Y29uZl9wYXRoYCBoYXMgYSB2YWx1ZSB0aGF0IGlzCit0aGUgcGF0aCB0byB0aGUgT3BlblNTTCBj
b25maWcgZmlsZSAodHlwaWNhbGx5IHRoaXMgd2lsbCBiZQorYEM6XFxPcGVuU1NMLVdpbjMyXFxi
aW5cXG9wZW5zc2wuY2ZnYCk6CisKK2BgYAoreworICAic3NsIjogeworICAgICJ0eXBlIjogIm9w
ZW5zc2wiLAorICAgICJlbmNyeXB0X2FmdGVyX2Nvbm5lY3QiOiBmYWxzZSwKKyAgICAib3BlbnNz
bCI6IHsKKyAgICAgICJvcGVuc3NsX2JpbmFyeSI6ICJvcGVuc3NsIiwKKyAgICAgICJiYXNlX3Bh
dGg6ICJfY2VydHMiLAorICAgICAgImZvcmNlX3JlZ2VuZXJhdGUiOiBmYWxzZSwKKyAgICAgICJi
YXNlX2NvbmZfcGF0aCI6ICJDOlxcT3BlblNTTC1XaW4zMlxcYmluXFxvcGVuc3NsLmNmZyIKKyAg
ICB9LAorICB9LAorfQorYGBgCisKKyMjIyBSZWdlbmVyYXRpbmcgdGhlIHByZWdlbmVyYXRlZCBj
ZXJ0aWZpY2F0ZXMKKworRnJvbSB0aGUgcm9vdCwgcnVuIGAuL3dwdCBzZXJ2ZSAtLWNvbmZpZyB0
b29scy9jZXJ0cy9jb25maWcuanNvbmAgYW5kIHRlcm1pbmF0ZQoraXQgYWZ0ZXIgaXQgaGFzIHN0
YXJ0ZWQgdXAuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL2NlcnRzL2NhY2VydC5rZXkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2NlcnRzL2NhY2VydC5rZXkKaW5kZXggNThiNWZm
NzU2ODQuLjFhMTIxZGZhYzk1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2NlcnRzL2NhY2VydC5rZXkKKysrIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9jZXJ0cy9jYWNlcnQua2V5
CkBAIC0xLDMwICsxLDMwIEBACiAtLS0tLUJFR0lOIEVOQ1JZUFRFRCBQUklWQVRFIEtFWS0tLS0t
Ci1NSUlGRGpCQUJna3Foa2lHOXcwQkJRMHdNekFiQmdrcWhraUc5dzBCQlF3d0RnUUliOUVTN2g2
WUdCY0NBZ2dBCi1NQlFHQ0NxR1NJYjNEUU1IQkFpMlpWTGdxMVh2YWdTQ0JNakFtR0VWdmp3WHZG
MDB2ZXVRbUpzbWNqVkhCL3FQCi1WcVNYakNROTRvclpiODlVZkZuUE85elhkdkxXeHJ3YjVXUDZi
YlF2K1NoNGh0RXhYQ0Q1WFppMUF6V05DeWJlCi1kYTB2dlFHZ2pkelVoMmZDckc0SzdKMHcyMGxy
WWd3M0hWU2ovV3RtZGJkWkZkb1grQmdYcnhjcWtFM001b3BaCi0zVUQzeUlRZVhTeFVraDNpdjZ6
elphV3VqeGpESTJKcHd4Um1NVmJycjhPZUJyS0pzcUIyRG5LbXErZW1tdkVGCi1pWFROM1d3L0Fq
NkdJcWZQWjhqcFZkd2NWTjVRcGVIQWg3YjJsc3p0N0dFT0djQmh1dFBxNEFxeThQSWlEUjgwCi1z
VVlJN1Y4T1htK1k0NURuZmt2c29nWkVpZk9pVXJRMlUrYUdEdStadDg4NjYxd1Z6anErdm9KbHo4
RWFJUENFCi1CL05TMlNnTnFJMi9EcmpFRWVjbjZoamdIV0lVQndPZmVOb1NpMVRyaTZLWkZ5eEcy
NkxFL1Y4Q2Q1MHlvZHg5Ci1wQmdGeGRDYm1ZTGVSY1ZlWFcyYnUwWk1qUGRkUmxSNU1IZnJrTTVa
QXplN25SeG9peVduQi9VOHBQZitiUXZ4Ci1LNFA5S2N3Q09lSGlna2FDWVpLcTdubVp5RXk0a204
OXpJdWdUL1lXaE1XeVZ3eWxUcGFnYWlpSndZTGp1ZzhuCi1DYkZaV0FrT1JCSWwyZy9ZQ3VUQlVK
dEMySVdYOGt3K25ZVndxQnN6cFp5QzZuYmhhMlVtaFFEZk1Bb3dRQTV2Ci1uMUxuVjhJNmY3dTZI
aWRiQjhXWDJVWm9oMDNBNGJlQ0J6K2RxMlZhVXF1TFRMNEtRVEl6KzZydzduRXlzcm5ICi1USWI4
U2x3c1lBbHp6d3l5TTlkU1d0N2lRZU5qbUg3ekwwTW96TXMzTEtISXJzV2k3WlpoOEJVWW5UMnZL
ZE5WCi0yWkxPTWNSMHRZVm1WWjh1WWtSOWtueS9mYlpjS041NHhTY29oQTJVWDI2MVcrc1dpRWdO
K1JhQnNRNzlwRmdpCi12WWxkZmphR05TdmZ0WGE1OTB4bjJ0bFM2L3N1QjVNeGlXNWczUHVCZzVY
dFZaOTVsMGYxbjM3NlhoNDFzSnY4Ci1ZSHJDdEZIT2xTcERKVUxHaVhWaC93WEJtUzdxSjhEaG5V
VUc2OTlFZGxzRmY2UWcyMldCM0FaUnZFSmRZQzR6Ci1QOFcraloxNU5URGJIZzNIdjcvQ0ZZVnpi
WHYydzBqa2lxUWdERi93YzZ0L0VkTEQrMmh6Y04rbkpHanR4WmJuCi14amJYY2c5OENVTVUrZGMv
YUQ0TjQ1SzllOXJQZzMraVpMd3ZzUnZ3eCtNc3ptZ3h4UHYwNXBOeVJPN1JWazhyCi1na3l5cDkv
Q0pGbWUrNG5GS1VjMGRVeTJ5TlhadGtsVFgwWEttL1lOS2luNnVVTWxJQXJJYTU0Q2Z2dDlRc2xW
Ci1pRCtTeFUxWkhtendLVDgyKzVaZUlSTE5XdkZWLzlFNG5EK0JUYWdLMkZkd25zdTFTMms3SXRE
OWxLL2NCUEdTCi0wdHoxSFd2NEF1ajN3TVBaa2xwM1NRbHVPbDZlQUlWcXFJOUdhWC9kNDJEY3RC
UVdMVGEyN1lpYld5TkljdzdvCi0zTjhHRFJFTWF3VEJkRFJ3bFozb1QreWlHTFgxYzhkczJvMC80
SWNKbE9rRG94WEVybWRsWm85b1ZlNno0UjdnCi02MnlSNTNhdFZUTG9VbkFqeEhYeDBiSml5YXl2
OVkzd2pPRXZ1aHVxZGQ5RitIT2hUdEFIci9CSlFOaEVrK3o4Ci01MzFDWlRKamIxcDExUGJPdEhH
VjJJZUIwUzgybXhra1hSeWtFWE9iODlacERITlJpTWluVGhSa29DbXVSSTlyCi1kVGlFUzlCMDJ5
TVB4SjNzTFF5RHhDb1M1bXdmY0FxS1RlSyt5Q3ZUdkJ5K3Q1dHc2M0RiV2xNcC83QWh5NjVLCi1y
V01IZHdxd2ZvQitaWXc1c1laZFB2dUJWQVQwMUkySmJPcVgzNlJhY1F1bHRGbnMyT2lueE9KSGEx
SGp0WHlTCi1jUFZFa01hN2NpM1ltOWo1UlFOTFZzZ0plN1lLOUhpeFg1SGpRRkFvd0FIMnBYWjVw
S0pJSll4UElVS3RabHN6Ci1xYk09CitNSUlGSHpCSkJna3Foa2lHOXcwQkJRMHdQREFiQmdrcWhr
aUc5dzBCQlF3d0RnUUltaW5IVHprWGhyc0NBZ2dBCitNQjBHQ1dDR1NBRmxBd1FCS2dRUVhWd0pj
cVd6ZTZBM1ZZdUFTMEJQZ3dTQ0JOQ1J0dnJvQjZxcm9RbEY1OEhFCis1U0pIRi9qUVJKUnhmMDUx
bHJxK2pmVXhNN2tadWNOTitteVYyemlMb2dhNk9RTTU3OUQ4dnk4dHFrckxwbnNUCitjWGtnSHV3
dEJKRjQ3dzFZQVBHR0FSZTNLc3YvMkM5c1VWY1B2bW5WcnpTTVg4NkVzZXJmZnFNM3pmd1oySDNT
CitqeFREU3lJdkpVVSs0WGZ4cldlZ1RpUVFQTnFEeUxmTzVkQmZhdFQyenRYQ211M0JGaXB1aEdG
cHd3Q0ppcktyCisxeGI2WFBFdVQwUEN6VE5wZVNVUnBYRktITURNa2NqT2tOQVV5Z0lFdytMZzdl
dFZmTGNzZ0J1ekVBM1JXd2YzCitPTVkxbVRCSmx2eDZ6WnhkWDdhMFFteGVyVURrRFM5WVlBRUdT
RmErRng2Y0dXNVB5ZWVmOXh0bEh4WkhpK3BtCitUeEN3Y3ZKeVhxZUQ0Z1dtM3MxZ3dPamk1V21Y
dm8yRWlyY3hmU0trOFRVd2FweGZDWVFiT2pRSVBhSG5FR29hCitDUWhTRWdEWDV1ZndzWEo5L3BT
UDZralcreStmMGduaEhWdUtKS3NPQm1qZzZpcXducUVodyt1TkZXS0tsL01vCitURlQ3Q3JheUpU
dm8rOVVkUVRKVjlNQkFzTVVRUzdkK0hIOWtOT0FuL2hmbUV6ekdVS1ZUWjB6SWQwZktIMTNwCitU
bm9ZZ01ZYm0yVXJuME5YQkZPOFJ2elkzS3BLeVJoTWNPTEt4a1BWVWpLVUE1QnVBdjZyY3ZNZmxJ
NkhuNXdVCitxUE0rdUVDU2dkT25OZUltaTFGZitjVzhkVEdHUmIraWhhK0VuQUJvWDN3UjVPdnpn
Q1lIZUVOSmIzMkZVb1ZzCitJRDJUNU1adFFOQXJraXMveFdaN0p5UGJtc1FvMnd5aUZMYXNYOFdn
aCs4TWdGeG9scHZqbFgzL1FkVFRKcUVjCityb2ZWR09QT21mb0hvM2VZTkpPbExiYUpUREllOE9y
SzQ5UElldTFnbTh6cUIyV1lxbUYvM0FZeTRJQUl3VVl1CityYlB3VUM5SHljZVJQU1llUE05V2Yx
eE0ycHJvSzNubXA2YXBkSENSTmpiZDQ2ODlFTG1COTBiMmF3Nk5GaWFtCiszdGFLUG1GTGIvdnQy
WXhncU90YWdQclRsYzFRTEhCS3JzbnBnL0JoY0JqdXBxUktHRm1YQ0p6aVBJYURLdkFzCitqdGc0
S0RvOGpOSXhtd1FBd0VWNCthSDBoaE11bXhhOHlhWG9DLzNHNkp4RDJzZG9yYU9wK3ZyVHpqVU1r
SW9jCit4THFXbDhHSFZMRjA5ZlpKNFN0SmZJV0lPbW1waWNTeFcxdkRJQ2FadVUraVB3bE5PekY3
c2VQUmtpeGJhckhyCitpcVRsTEcvLytIdXEvbjlJUnhoem1TT3VyNjNXTVhGUnkwc0tXNVcrdVE5
eHNuVjhTZGp3Um1BR0x0blpIcTRZCitOT0NRLyt5T1JsNHl4a1B2VjAxSHlrQWw0Q1J0UEJHUis0
WkM1TktocHloSmJ1NldjcXdpWHlBZWhVL2NQZ0wrCitoOE53RW95UCtPSHJ2RVlkeTRvY0JuSnEv
NDM2V3d6ZldpczhuSUc0YlNsRDNEU0VnSkYvUVVtcTRpL0VVcS9BCitENlNmemJGcFBHdFRqM0ta
NkQ4RFByd1dHNjhPQ0ZzcVJXOVlFdlVJSzhKVDI2NUJOM016STVpMC8razRDZEFnCithU2FpQzk3
cWc3cUphVk05YjlFSHNjVVhSL2ZlRnh2TzVRa2trWTVDVFUzQnhiMHMxSTRSdzJNWW9BZE1HdGJB
Cis2bWR6bVJWWW9SdjlOTWR6TDZ6T1RvUFU2b09nNm1iakhnWlFnTmQ3dzhHdFRGVytzZnNsTE9Y
WEM4ZXJ6YkhsCitCeVFKR2NGR3RLVEJVRCs3VkhaaHB3TTdiUE9idHp5QTJyMFViUzFReDBJem52
dWJkRlZjWHlFN2RJalc3Y0FnCitJYkJ6S2VpRVJ3cHUzck1xMmJZVlczREEzM1ZsclRmcGpYdWpo
SHYxaVgxNWk2cXNXZDdPdFp3Nng3VGNjSDFaCitqZG1oOVhCOXhEeWRuc3MzdTlEd0dSRU1ZQzlU
ZFBaWS9udWk2bGdDampPaGFUYXVuTXVpZ0ZCTVdVQmtEbEliCit1anUrQXR2K1BTQlQ5RG1UeVRR
R2hQWlJJdz09CiAtLS0tLUVORCBFTkNSWVBURUQgUFJJVkFURSBLRVktLS0tLQpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9jZXJ0
cy9jYWNlcnQucGVtIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy9jZXJ0cy9jYWNlcnQucGVtCmluZGV4IDE1NmRlOTcxMDU0Li5lMWI1YWRkNTRlNyAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy9jZXJ0cy9jYWNlcnQucGVtCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvY2VydHMvY2FjZXJ0LnBlbQpAQCAtMSw4MyArMSwxMjUgQEAK
LUNlcnRpZmljYXRlOgotICAgIERhdGE6Ci0gICAgICAgIFZlcnNpb246IDMgKDB4MikKLSAgICAg
ICAgU2VyaWFsIE51bWJlcjogNzUzNTYwICgweGI3Zjk4KQotICAgIFNpZ25hdHVyZSBBbGdvcml0
aG06IHNoYTI1NldpdGhSU0FFbmNyeXB0aW9uCi0gICAgICAgIElzc3VlcjogQ049d2ViLXBsYXRm
b3JtLXRlc3RzCi0gICAgICAgIFZhbGlkaXR5Ci0gICAgICAgICAgICBOb3QgQmVmb3JlOiBKdWwg
MTMgMTI6NTk6MTIgMjAxOCBHTVQKLSAgICAgICAgICAgIE5vdCBBZnRlciA6IEp1bCAxMCAxMjo1
OToxMiAyMDI4IEdNVAotICAgICAgICBTdWJqZWN0OiBDTj13ZWItcGxhdGZvcm0tdGVzdHMKLSAg
ICAgICAgU3ViamVjdCBQdWJsaWMgS2V5IEluZm86Ci0gICAgICAgICAgICBQdWJsaWMgS2V5IEFs
Z29yaXRobTogcnNhRW5jcnlwdGlvbgotICAgICAgICAgICAgICAgIFB1YmxpYy1LZXk6ICgyMDQ4
IGJpdCkKLSAgICAgICAgICAgICAgICBNb2R1bHVzOgotICAgICAgICAgICAgICAgICAgICAwMDpk
Mzo5NDoxMDpiNzo3MDpjZjoxYjoyYjoxZTo3Zjo2YzoyMjo0ZjoxNToKLSAgICAgICAgICAgICAg
ICAgICAgYmU6Yzk6OTU6MDM6NDU6ZTI6N2M6MjY6Nzg6ZDI6NWI6M2M6YjU6M2M6ODY6Ci0gICAg
ICAgICAgICAgICAgICAgIGFjOmFiOmJhOmU5OmMxOjI4OjkxOjgzOmE3OjI4OjkyOjI2Ojc5OjAw
OmMyOgotICAgICAgICAgICAgICAgICAgICBiZDplNjplZjpiYjo2YjpkNzpmYToyZTozOTpmYTox
NjpjODplNToyNDo4ZToKLSAgICAgICAgICAgICAgICAgICAgNmU6ZTk6YjE6MTU6ODM6YWI6OTg6
NTY6OTk6NDI6NDk6NGQ6NWQ6MTY6M2E6Ci0gICAgICAgICAgICAgICAgICAgIDI4OmZlOjRkOjJl
OjI5OjFhOjNjOjc4Ojc4OjA5OmFhOjczOjI2OjYyOmMyOgotICAgICAgICAgICAgICAgICAgICBh
NToyYzo0ODo5Mjo2NToxMjo3MDo3ZTozZjo3ZTpjNzpjNDplYTowYTpjODoKLSAgICAgICAgICAg
ICAgICAgICAgNjA6ZWY6NmE6YjA6NjU6ZGM6ZGE6MTA6MzE6Yzk6ODg6M2E6NTY6MzU6ZmQ6Ci0g
ICAgICAgICAgICAgICAgICAgIDg1OmJkOjExOmE0OjUxOjdkOjdmOjcxOjVmOjE2OjM4OjY0OjA2
Ojc4OjI1OgotICAgICAgICAgICAgICAgICAgICAzYjoxNTplMTphNjoxOToyZjo3YjpmZjo5Mjox
MTphZDowZTo2MDoxYTpkNDoKLSAgICAgICAgICAgICAgICAgICAgNjE6OGU6NDY6NDU6MDA6OWI6
N2I6YzY6MWY6NWI6MGU6YmI6OWQ6NmM6ZmQ6Ci0gICAgICAgICAgICAgICAgICAgIDdhOjI5Ojk2
OjgyOjI1OjNkOmQ1OjE5OjgwOmI3OjMwOjZlOjYxOjJhOjFmOgotICAgICAgICAgICAgICAgICAg
ICBjYjo1MDpkYzphYzpmNDpmZjo0YjowMjo2Nzo2MDo1ODowNDoxNzpiNjo2OToKLSAgICAgICAg
ICAgICAgICAgICAgOTM6OTM6Yzg6OTI6Zjg6YTA6NWU6ZjE6NTY6ZmQ6ZTg6MjQ6MjE6YmQ6ZjQ6
Ci0gICAgICAgICAgICAgICAgICAgIGJlOmQ0OmVlOjFmOmRmOjZlOmQzOjRkOjU1OjFiOjU4OmM0
OjY2OjliOjkzOgotICAgICAgICAgICAgICAgICAgICBiNjpiMjoxMDplODowZTpmYjo2Yjo5MDo0
ZjpmOTo1Zjo5OTo1ODowYTphYToKLSAgICAgICAgICAgICAgICAgICAgOGQ6NWY6Mzk6MzM6NzU6
ODM6NDE6NDU6NzE6NTM6MGI6ZjA6ODE6NzU6ZGM6Ci0gICAgICAgICAgICAgICAgICAgIDczOjZk
Ci0gICAgICAgICAgICAgICAgRXhwb25lbnQ6IDY1NTM3ICgweDEwMDAxKQotICAgICAgICBYNTA5
djMgZXh0ZW5zaW9uczoKLSAgICAgICAgICAgIFg1MDl2MyBCYXNpYyBDb25zdHJhaW50czogCi0g
ICAgICAgICAgICAgICAgQ0E6VFJVRQotICAgICAgICAgICAgWDUwOXYzIFN1YmplY3QgS2V5IElk
ZW50aWZpZXI6IAotICAgICAgICAgICAgICAgIDVCOkRBOkM4OkMxOjA5OkYzOjREOjkyOjMwOkJD
OkVGOjQzOkZCOjI2OjkzOjFFOkFFOjBEOjlBOjBGCi0gICAgICAgICAgICBYNTA5djMgQXV0aG9y
aXR5IEtleSBJZGVudGlmaWVyOiAKLSAgICAgICAgICAgICAgICBrZXlpZDo1QjpEQTpDODpDMTow
OTpGMzo0RDo5MjozMDpCQzpFRjo0MzpGQjoyNjo5MzoxRTpBRTowRDo5QTowRgotICAgICAgICAg
ICAgICAgIERpck5hbWU6L0NOPXdlYi1wbGF0Zm9ybS10ZXN0cwotICAgICAgICAgICAgICAgIHNl
cmlhbDowQjo3Rjo5OAotCi0gICAgICAgICAgICBYNTA5djMgS2V5IFVzYWdlOiAKLSAgICAgICAg
ICAgICAgICBDZXJ0aWZpY2F0ZSBTaWduCi0gICAgICAgICAgICBYNTA5djMgRXh0ZW5kZWQgS2V5
IFVzYWdlOiAKLSAgICAgICAgICAgICAgICBUTFMgV2ViIFNlcnZlciBBdXRoZW50aWNhdGlvbgot
ICAgIFNpZ25hdHVyZSBBbGdvcml0aG06IHNoYTI1NldpdGhSU0FFbmNyeXB0aW9uCi0gICAgICAg
ICA5NzplMzpmMDpiOTo2MzowNzplNTpkZTpkOToxZjo3ZjpkZTpiZTpmODplNDo5ODpkNjoyNToK
LSAgICAgICAgIDk3OmU5OmQzOmFkOjdjOjZkOjMwOjdkOjBkOjhlOmM1OjliOmVmOmViOmE4OmM1
OjU5OmIyOgotICAgICAgICAgMmM6NzM6MDg6NDY6MjI6YWI6Zjc6NjE6MDE6MTk6OWU6MDA6MGM6
NzI6YmM6MmE6YmQ6ODY6Ci0gICAgICAgICAxMToxZjozZDo4MDphYToxOTo1ODo2ZjpjZDowNTpi
Njo1YToyNzpmZjoyZTozOToxYTo0NDoKLSAgICAgICAgIDA4OmEyOmU4OmE2OmUyOjJjOjAzOjUy
OjJmOjYzOjZiOjNhOjNiOjkzOmM2OmI4OjUzOmNkOgotICAgICAgICAgZjQ6ZWM6NjM6NWM6MjQ6
NWE6NjU6YTQ6ZTM6OTM6OWU6OTY6ZjA6MDA6Y2Y6ODI6ZmM6ZGM6Ci0gICAgICAgICAyODoxODo4
NjpmMTphMjo3ZTo3ODo4MDo5ZjpmNDoxMTpiMTo4ZTpjODoxMDpiNToxODo5ZDoKLSAgICAgICAg
IGZkOjllOjhhOmNiOjZkOjhlOjE1OjIyOjNiOjFmOjBkOjc5OjUzOmJkOjJiOmY3OmQwOjA5Ogot
ICAgICAgICAgMmE6YTY6YTk6ZjE6M2U6NGM6ZDA6YWE6ODE6YWU6MmI6MzQ6YjA6NTI6MTY6ZDA6
Nzg6ZTI6Ci0gICAgICAgICAyNTpjMTplMjo5Mjo0NzoxYjoyZjphNjphMjoyOTo2Zjo4Nzo5YToz
Yzo1ZDo0NDpiMDo4ZjoKLSAgICAgICAgIDk1OjNjOmU3OmFkOmQxOjgzOjFjOjM4OmI3OjNkOjg1
OjJiOmI4OmRjOjQ1OjgxOmJhOjcxOgotICAgICAgICAgYTc6MWM6OTY6OWI6YzE6Mzg6M2U6YTk6
YTY6Yzc6Mzg6NzE6NGQ6Mzc6NmU6Y2E6Yjg6ZTg6Ci0gICAgICAgICBhYjpjYzowNzo0ZToyMTo0
Mzo4ODoyMTpjMDo0OToxMTo5ZTpkNjpjNDoxMzoyYzo1Nzo3NToKLSAgICAgICAgIDFkOjhlOjU0
OjFmOjYzOjlhOjQ2OjE5OjUyOjQwOmM1OjFlOjJjOjM4OmQyOmI4OjYyOjQzOgotICAgICAgICAg
YTU6ODQ6Yzg6ZTQKIC0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQotTUlJRFV6Q0NBanVnQXdJ
QkFnSURDMytZTUEwR0NTcUdTSWIzRFFFQkN3VUFNQjB4R3pBWkJnTlZCQU1NRW5kbAotWWkxd2JH
RjBabTl5YlMxMFpYTjBjekFlRncweE9EQTNNVE14TWpVNU1USmFGdzB5T0RBM01UQXhNalU1TVRK
YQorTUlJVzV6Q0NGYytnQXdJQkFnSURCYkZITUEwR0NTcUdTSWIzRFFFQkN3VUFNQjB4R3pBWkJn
TlZCQU1NRW5kbAorWWkxd2JHRjBabTl5YlMxMFpYTjBjekFlRncweE9URXdNVFF4TXpRNU1qbGFG
dzB5T1RFd01URXhNelE1TWpsYQogTUIweEd6QVpCZ05WQkFNTUVuZGxZaTF3YkdGMFptOXliUzEw
WlhOMGN6Q0NBU0l3RFFZSktvWklodmNOQVFFQgotQlFBRGdnRVBBRENDQVFvQ2dnRUJBTk9VRUxk
d3p4c3JIbjlzSWs4VnZzbVZBMFhpZkNaNDBsczh0VHlHckt1NgotNmNFb2tZT25LSkltZVFEQ3Zl
YnZ1MnZYK2k0NStoYkk1U1NPYnVteEZZT3JtRmFaUWtsTlhSWTZLUDVOTGlrYQotUEhoNENhcHpK
bUxDcFN4SWttVVNjSDQvZnNmRTZncklZTzlxc0dYYzJoQXh5WWc2VmpYOWhiMFJwRkY5ZjNGZgot
Rmpoa0JuZ2xPeFhocGhrdmUvK1NFYTBPWUJyVVlZNUdSUUNiZThZZld3NjduV3o5ZWltV2dpVTkx
Um1BdHpCdQotWVNvZnkxRGNyUFQvU3dKbllGZ0VGN1pwazVQSWt2aWdYdkZXL2Vna0liMzB2dFR1
SDk5dTAwMVZHMWpFWnB1VAotdHJJUTZBNzdhNUJQK1YrWldBcXFqVjg1TTNXRFFVVnhVd3Z3Z1hY
Y2MyMENBd0VBQWFPQm16Q0JtREFNQmdOVgotSFJNRUJUQURBUUgvTUIwR0ExVWREZ1FXQkJSYjJz
akJDZk5Oa2pDODcwUDdKcE1lcmcyYUR6QkhCZ05WSFNNRQotUURBK2dCUmIyc2pCQ2ZOTmtqQzg3
MFA3SnBNZXJnMmFENkVocEI4d0hURWJNQmtHQTFVRUF3d1NkMlZpTFhCcwotWVhSbWIzSnRMWFJs
YzNSemdnTUxmNWd3Q3dZRFZSMFBCQVFEQWdJRU1CTUdBMVVkSlFRTU1Bb0dDQ3NHQVFVRgotQndN
Qk1BMEdDU3FHU0liM0RRRUJDd1VBQTRJQkFRQ1g0L0M1WXdmbDN0a2ZmOTYrK09TWTFpV1g2ZE90
ZkcwdwotZlEyT3hadnY2NmpGV2JJc2N3aEdJcXYzWVFFWm5nQU1jcndxdllZUkh6MkFxaGxZYjgw
RnRsb24veTQ1R2tRSQotb3VpbTRpd0RVaTlqYXpvN2s4YTRVODMwN0dOY0pGcGxwT09UbnBid0FN
K0MvTndvR0lieG9uNTRnSi8wRWJHTwoteUJDMUdKMzlub3JMYlk0Vklqc2ZEWGxUdlN2MzBBa3Fw
cW54UGt6UXFvR3VLelN3VWhiUWVPSWx3ZUtTUnhzdgotcHFJcGI0ZWFQRjFFc0krVlBPZXQwWU1j
T0xjOWhTdTQzRVdCdW5HbkhKYWJ3VGcrcWFiSE9IRk5OMjdLdU9pcgotekFkT0lVT0lJY0JKRVo3
V3hCTXNWM1VkamxRZlk1cEdHVkpBeFI0c09OSzRZa09saE1qaworQlFBRGdnRVBBRENDQVFvQ2dn
RUJBTlFJMTB2eXRQTjVHOG02Y1dlUFpMSFlnQklKc1dmangyTldrL1dGRUxvYworRG5VdjJ6UnA1
RTI3QWh4RUpKNmM2Skd1KzNXalQ3bCtmR3lrb0sxUndPbjRPaS9LTkpuREUyWGVTalFIL2F3UAor
TWkyajBoQWl2VHZDWG5vbVRYbjNjcWNUa3JhcGNEWFYxK1dVU2FlYkp3Kzh3SExvSlVXSWJlVTdL
TFZnWHNjZgoraExHQlFCNnAvdVFld3ptbWIxYlViaXpGM0duYkZ4U2JGZ2tLM1R0ZjlOcEhxcVJ0
Z1VBYVp0UDllZGEva1JQNworajBpSVFuY0N5aHdVTWNFZy85WXNLZUxPU1VHekxqVVNDSnFPSXZV
TG5Rd1JCWWpJRXd1aTAwcWRDaHFWOGNoegorS2JrMzJkajZ2TEZzM3Q3UCt4b2ovSmpaWFppV1FG
VHpGU1ZqcFM1QTdNRUNBd0VBQWFPQ0ZDNHdnaFFxTUF3RworQTFVZEV3UUZNQU1CQWY4d0hRWURW
UjBPQkJZRUZFRkovNHhtVUYrSG9RYW91NnVLM1hNTkRqY2FNRWNHQTFVZAorSXdSQU1ENkFGRUZK
LzR4bVVGK0hvUWFvdTZ1SzNYTU5EamNhb1NHa0h6QWRNUnN3R1FZRFZRUUREQkozWldJdAorY0d4
aGRHWnZjbTB0ZEdWemRIT0NBd1d4UnpBTEJnTlZIUThFQkFNQ0FnUXdnZ29GQmdOVkhSNEVnZ244
TUlJSgorK0tDQ0NmUXdFNElSZDJWaUxYQnNZWFJtYjNKdExuUmxjM1F3RjRJVmJtOTBMWGRsWWkx
d2JHRjBabTl5YlM1MAorWlhOME1CZUNGWGQzZHk1M1pXSXRjR3hoZEdadmNtMHVkR1Z6ZERBWWdo
WjNkM2N4TG5kbFlpMXdiR0YwWm05eQorYlM1MFpYTjBNQmlDRm5kM2R6SXVkMlZpTFhCc1lYUm1i
M0p0TG5SbGMzUXdHNElaZDNkM0xtNXZkQzEzWldJdAorY0d4aGRHWnZjbTB1ZEdWemREQWJnaGwz
ZDNjdWQzZDNMbmRsWWkxd2JHRjBabTl5YlM1MFpYTjBNQnlDR25kMworZHpJdWJtOTBMWGRsWWkx
d2JHRjBabTl5YlM1MFpYTjBNQnlDR25kM2R6RXVibTkwTFhkbFlpMXdiR0YwWm05eQorYlM1MFpY
TjBNQnlDR25kM2R5NTNkM2N5TG5kbFlpMXdiR0YwWm05eWJTNTBaWE4wTUJ5Q0duZDNkekl1ZDNk
MworTG5kbFlpMXdiR0YwWm05eWJTNTBaWE4wTUJ5Q0duZDNkekV1ZDNkM0xuZGxZaTF3YkdGMFpt
OXliUzUwWlhOMAorTUJ5Q0duZDNkeTUzZDNjeExuZGxZaTF3YkdGMFptOXliUzUwWlhOME1CMkNH
M2QzZHpFdWQzZDNNUzUzWldJdAorY0d4aGRHWnZjbTB1ZEdWemREQWRnaHQzZDNjeExuZDNkekl1
ZDJWaUxYQnNZWFJtYjNKdExuUmxjM1F3SFlJYgorZDNkM01pNTNkM2N5TG5kbFlpMXdiR0YwWm05
eWJTNTBaWE4wTUIyQ0czZDNkekl1ZDNkM01TNTNaV0l0Y0d4aAorZEdadmNtMHVkR1Z6ZERBZmdo
MTNkM2N1ZDNkM0xtNXZkQzEzWldJdGNHeGhkR1p2Y20wdWRHVnpkREFnZ2g1MworZDNjdWQzZDNN
aTV1YjNRdGQyVmlMWEJzWVhSbWIzSnRMblJsYzNRd0lJSWVkM2QzTVM1M2QzY3VibTkwTFhkbAor
WWkxd2JHRjBabTl5YlM1MFpYTjBNQ0NDSG5odUxTMXNkbVV0Tm14aFpDNTNaV0l0Y0d4aGRHWnZj
bTB1ZEdWegorZERBZ2doNTNkM2N1ZDNkM01TNXViM1F0ZDJWaUxYQnNZWFJtYjNKdExuUmxjM1F3
SUlJZWQzZDNNaTUzZDNjdQorYm05MExYZGxZaTF3YkdGMFptOXliUzUwWlhOME1DR0NIM2QzZHpJ
dWQzZDNNaTV1YjNRdGQyVmlMWEJzWVhSbQorYjNKdExuUmxjM1F3SVlJZmQzZDNNaTUzZDNjeExt
NXZkQzEzWldJdGNHeGhkR1p2Y20wdWRHVnpkREFoZ2g5MworZDNjeExuZDNkekV1Ym05MExYZGxZ
aTF3YkdGMFptOXliUzUwWlhOME1DR0NIM2QzZHpFdWQzZDNNaTV1YjNRdAorZDJWaUxYQnNZWFJt
YjNKdExuUmxjM1F3SklJaWVHNHRMV3gyWlMwMmJHRmtMbmQzZHk1M1pXSXRjR3hoZEdadgorY20w
dWRHVnpkREFrZ2lKM2QzY3VlRzR0TFd4MlpTMDJiR0ZrTG5kbFlpMXdiR0YwWm05eWJTNTBaWE4w
TUNTQworSW5odUxTMXNkbVV0Tm14aFpDNXViM1F0ZDJWaUxYQnNZWFJtYjNKdExuUmxjM1F3SllJ
amVHNHRMV3gyWlMwMgorYkdGa0xuZDNkekV1ZDJWaUxYQnNZWFJtYjNKdExuUmxjM1F3SllJamQz
ZDNNaTU0YmkwdGJIWmxMVFpzWVdRdQorZDJWaUxYQnNZWFJtYjNKdExuUmxjM1F3SllJamQzZDNN
UzU0YmkwdGJIWmxMVFpzWVdRdWQyVmlMWEJzWVhSbQorYjNKdExuUmxjM1F3SllJamVHNHRMV3gy
WlMwMmJHRmtMbmQzZHpJdWQyVmlMWEJzWVhSbWIzSnRMblJsYzNRdworS0lJbWVHNHRMV3gyWlMw
MmJHRmtMbmQzZHk1dWIzUXRkMlZpTFhCc1lYUm1iM0p0TG5SbGMzUXdLSUltZDNkMworTG5odUxT
MXNkbVV0Tm14aFpDNXViM1F0ZDJWaUxYQnNZWFJtYjNKdExuUmxjM1F3S1lJbmVHNHRMV3gyWlMw
MgorYkdGa0xuZDNkekV1Ym05MExYZGxZaTF3YkdGMFptOXliUzUwWlhOME1DbUNKM2QzZHpJdWVH
NHRMV3gyWlMwMgorYkdGa0xtNXZkQzEzWldJdGNHeGhkR1p2Y20wdWRHVnpkREFwZ2lkM2QzY3hM
bmh1TFMxc2RtVXRObXhoWkM1dQorYjNRdGQyVmlMWEJzWVhSbWIzSnRMblJsYzNRd0tZSW5lRzR0
TFd4MlpTMDJiR0ZrTG5kM2R6SXVibTkwTFhkbAorWWkxd2JHRjBabTl5YlM1MFpYTjBNQ3VDS1ho
dUxTMXVPR28yWkhNMU0yeDNkMnR5Y1doMk1qaGhMbmRsWWkxdworYkdGMFptOXliUzUwWlhOME1D
MkNLM2h1TFMxc2RtVXRObXhoWkM1NGJpMHRiSFpsTFRac1lXUXVkMlZpTFhCcworWVhSbWIzSnRM
blJsYzNRd0w0SXRlRzR0TFc0NGFqWmtjelV6YkhkM2EzSnhhSFl5T0dFdWJtOTBMWGRsWWkxdwor
YkdGMFptOXliUzUwWlhOME1DK0NMWGh1TFMxdU9HbzJaSE0xTTJ4M2QydHljV2gyTWpoaExuZDNk
eTUzWldJdAorY0d4aGRHWnZjbTB1ZEdWemREQXZnaTEzZDNjdWVHNHRMVzQ0YWpaa2N6VXpiSGQz
YTNKeGFIWXlPR0V1ZDJWaQorTFhCc1lYUm1iM0p0TG5SbGMzUXdNSUl1ZDNkM01TNTRiaTB0Ympo
cU5tUnpOVE5zZDNkcmNuRm9kakk0WVM1MworWldJdGNHeGhkR1p2Y20wdWRHVnpkREF3Z2k1NGJp
MHRiamhxTm1Sek5UTnNkM2RyY25Gb2RqSTRZUzUzZDNjeAorTG5kbFlpMXdiR0YwWm05eWJTNTBa
WE4wTURDQ0xuZDNkekl1ZUc0dExXNDRhalprY3pVemJIZDNhM0p4YUhZeQorT0dFdWQyVmlMWEJz
WVhSbWIzSnRMblJsYzNRd01JSXVlRzR0TFc0NGFqWmtjelV6YkhkM2EzSnhhSFl5T0dFdQorZDNk
M01pNTNaV0l0Y0d4aGRHWnZjbTB1ZEdWemREQXhnaTk0YmkwdGJIWmxMVFpzWVdRdWVHNHRMV3gy
WlMwMgorYkdGa0xtNXZkQzEzWldJdGNHeGhkR1p2Y20wdWRHVnpkREF6Z2pGNGJpMHRiamhxTm1S
ek5UTnNkM2RyY25GbworZGpJNFlTNTNkM2N1Ym05MExYZGxZaTF3YkdGMFptOXliUzUwWlhOME1E
T0NNWGQzZHk1NGJpMHRiamhxTm1SegorTlROc2QzZHJjbkZvZGpJNFlTNXViM1F0ZDJWaUxYQnNZ
WFJtYjNKdExuUmxjM1F3TklJeWQzZDNNUzU0YmkwdAorYmpocU5tUnpOVE5zZDNkcmNuRm9kakk0
WVM1dWIzUXRkMlZpTFhCc1lYUm1iM0p0TG5SbGMzUXdOSUl5ZUc0dAorTFc0NGFqWmtjelV6Ykhk
M2EzSnhhSFl5T0dFdWQzZDNNaTV1YjNRdGQyVmlMWEJzWVhSbWIzSnRMblJsYzNRdworTklJeWVH
NHRMVzQ0YWpaa2N6VXpiSGQzYTNKeGFIWXlPR0V1ZDNkM01TNXViM1F0ZDJWaUxYQnNZWFJtYjNK
dAorTG5SbGMzUXdOSUl5ZDNkM01pNTRiaTB0YmpocU5tUnpOVE5zZDNkcmNuRm9kakk0WVM1dWIz
UXRkMlZpTFhCcworWVhSbWIzSnRMblJsYzNRd09JSTJlRzR0TFc0NGFqWmtjelV6YkhkM2EzSnhh
SFl5T0dFdWVHNHRMV3gyWlMwMgorYkdGa0xuZGxZaTF3YkdGMFptOXliUzUwWlhOME1EaUNObmh1
TFMxc2RtVXRObXhoWkM1NGJpMHRiamhxTm1SegorTlROc2QzZHJjbkZvZGpJNFlTNTNaV0l0Y0d4
aGRHWnZjbTB1ZEdWemREQThnanA0YmkwdGJIWmxMVFpzWVdRdQorZUc0dExXNDRhalprY3pVemJI
ZDNhM0p4YUhZeU9HRXVibTkwTFhkbFlpMXdiR0YwWm05eWJTNTBaWE4wTUR5QworT25odUxTMXVP
R28yWkhNMU0yeDNkMnR5Y1doMk1qaGhMbmh1TFMxc2RtVXRObXhoWkM1dWIzUXRkMlZpTFhCcwor
WVhSbWIzSnRMblJsYzNRd1E0SkJlRzR0TFc0NGFqWmtjelV6YkhkM2EzSnhhSFl5T0dFdWVHNHRM
VzQ0YWpaaworY3pVemJIZDNhM0p4YUhZeU9HRXVkMlZpTFhCc1lYUm1iM0p0TG5SbGMzUXdSNEpG
ZUc0dExXNDRhalprY3pVegorYkhkM2EzSnhhSFl5T0dFdWVHNHRMVzQ0YWpaa2N6VXpiSGQzYTNK
eGFIWXlPR0V1Ym05MExYZGxZaTF3YkdGMAorWm05eWJTNTBaWE4wTUJNR0ExVWRKUVFNTUFvR0ND
c0dBUVVGQndNQk1JSUpoUVlEVlIwUkJJSUpmRENDQ1hpQworRVhkbFlpMXdiR0YwWm05eWJTNTBa
WE4wZ2hWdWIzUXRkMlZpTFhCc1lYUm1iM0p0TG5SbGMzU0NGWGQzZHk1MworWldJdGNHeGhkR1p2
Y20wdWRHVnpkSUlXZDNkM01TNTNaV0l0Y0d4aGRHWnZjbTB1ZEdWemRJSVdkM2QzTWk1MworWldJ
dGNHeGhkR1p2Y20wdWRHVnpkSUlaZDNkM0xtNXZkQzEzWldJdGNHeGhkR1p2Y20wdWRHVnpkSUla
ZDNkMworTG5kM2R5NTNaV0l0Y0d4aGRHWnZjbTB1ZEdWemRJSWFkM2QzTWk1dWIzUXRkMlZpTFhC
c1lYUm1iM0p0TG5SbAorYzNTQ0duZDNkekV1Ym05MExYZGxZaTF3YkdGMFptOXliUzUwWlhOMGdo
cDNkM2N1ZDNkM01pNTNaV0l0Y0d4aAorZEdadmNtMHVkR1Z6ZElJYWQzZDNNaTUzZDNjdWQyVmlM
WEJzWVhSbWIzSnRMblJsYzNTQ0duZDNkekV1ZDNkMworTG5kbFlpMXdiR0YwWm05eWJTNTBaWE4w
Z2hwM2QzY3VkM2QzTVM1M1pXSXRjR3hoZEdadmNtMHVkR1Z6ZElJYgorZDNkM01TNTNkM2N4TG5k
bFlpMXdiR0YwWm05eWJTNTBaWE4wZ2h0M2QzY3hMbmQzZHpJdWQyVmlMWEJzWVhSbQorYjNKdExu
UmxjM1NDRzNkM2R6SXVkM2QzTWk1M1pXSXRjR3hoZEdadmNtMHVkR1Z6ZElJYmQzZDNNaTUzZDNj
eAorTG5kbFlpMXdiR0YwWm05eWJTNTBaWE4wZ2gxM2QzY3VkM2QzTG01dmRDMTNaV0l0Y0d4aGRH
WnZjbTB1ZEdWegorZElJZWQzZDNMbmQzZHpJdWJtOTBMWGRsWWkxd2JHRjBabTl5YlM1MFpYTjBn
aDUzZDNjeExuZDNkeTV1YjNRdAorZDJWaUxYQnNZWFJtYjNKdExuUmxjM1NDSG5odUxTMXNkbVV0
Tm14aFpDNTNaV0l0Y0d4aGRHWnZjbTB1ZEdWegorZElJZWQzZDNMbmQzZHpFdWJtOTBMWGRsWWkx
d2JHRjBabTl5YlM1MFpYTjBnaDUzZDNjeUxuZDNkeTV1YjNRdAorZDJWaUxYQnNZWFJtYjNKdExu
UmxjM1NDSDNkM2R6SXVkM2QzTWk1dWIzUXRkMlZpTFhCc1lYUm1iM0p0TG5SbAorYzNTQ0gzZDNk
ekl1ZDNkM01TNXViM1F0ZDJWaUxYQnNZWFJtYjNKdExuUmxjM1NDSDNkM2R6RXVkM2QzTVM1dQor
YjNRdGQyVmlMWEJzWVhSbWIzSnRMblJsYzNTQ0gzZDNkekV1ZDNkM01pNXViM1F0ZDJWaUxYQnNZ
WFJtYjNKdAorTG5SbGMzU0NJbmh1TFMxc2RtVXRObXhoWkM1M2QzY3VkMlZpTFhCc1lYUm1iM0p0
TG5SbGMzU0NJbmQzZHk1NAorYmkwdGJIWmxMVFpzWVdRdWQyVmlMWEJzWVhSbWIzSnRMblJsYzNT
Q0luaHVMUzFzZG1VdE5teGhaQzV1YjNRdAorZDJWaUxYQnNZWFJtYjNKdExuUmxjM1NDSTNodUxT
MXNkbVV0Tm14aFpDNTNkM2N4TG5kbFlpMXdiR0YwWm05eQorYlM1MFpYTjBnaU4zZDNjeUxuaHVM
UzFzZG1VdE5teGhaQzUzWldJdGNHeGhkR1p2Y20wdWRHVnpkSUlqZDNkMworTVM1NGJpMHRiSFps
TFRac1lXUXVkMlZpTFhCc1lYUm1iM0p0TG5SbGMzU0NJM2h1TFMxc2RtVXRObXhoWkM1MworZDNj
eUxuZGxZaTF3YkdGMFptOXliUzUwWlhOMGdpWjRiaTB0YkhabExUWnNZV1F1ZDNkM0xtNXZkQzEz
WldJdAorY0d4aGRHWnZjbTB1ZEdWemRJSW1kM2QzTG5odUxTMXNkbVV0Tm14aFpDNXViM1F0ZDJW
aUxYQnNZWFJtYjNKdAorTG5SbGMzU0NKM2h1TFMxc2RtVXRObXhoWkM1M2QzY3hMbTV2ZEMxM1pX
SXRjR3hoZEdadmNtMHVkR1Z6ZElJbgorZDNkM01pNTRiaTB0YkhabExUWnNZV1F1Ym05MExYZGxZ
aTF3YkdGMFptOXliUzUwWlhOMGdpZDNkM2N4TG5odQorTFMxc2RtVXRObXhoWkM1dWIzUXRkMlZp
TFhCc1lYUm1iM0p0TG5SbGMzU0NKM2h1TFMxc2RtVXRObXhoWkM1MworZDNjeUxtNXZkQzEzWldJ
dGNHeGhkR1p2Y20wdWRHVnpkSUlwZUc0dExXNDRhalprY3pVemJIZDNhM0p4YUhZeQorT0dFdWQy
VmlMWEJzWVhSbWIzSnRMblJsYzNTQ0szaHVMUzFzZG1VdE5teGhaQzU0YmkwdGJIWmxMVFpzWVdR
dQorZDJWaUxYQnNZWFJtYjNKdExuUmxjM1NDTFhodUxTMXVPR28yWkhNMU0yeDNkMnR5Y1doMk1q
aGhMbTV2ZEMxMworWldJdGNHeGhkR1p2Y20wdWRHVnpkSUl0ZUc0dExXNDRhalprY3pVemJIZDNh
M0p4YUhZeU9HRXVkM2QzTG5kbAorWWkxd2JHRjBabTl5YlM1MFpYTjBnaTEzZDNjdWVHNHRMVzQ0
YWpaa2N6VXpiSGQzYTNKeGFIWXlPR0V1ZDJWaQorTFhCc1lYUm1iM0p0TG5SbGMzU0NMbmQzZHpF
dWVHNHRMVzQ0YWpaa2N6VXpiSGQzYTNKeGFIWXlPR0V1ZDJWaQorTFhCc1lYUm1iM0p0TG5SbGMz
U0NMbmh1TFMxdU9HbzJaSE0xTTJ4M2QydHljV2gyTWpoaExuZDNkekV1ZDJWaQorTFhCc1lYUm1i
M0p0TG5SbGMzU0NMbmQzZHpJdWVHNHRMVzQ0YWpaa2N6VXpiSGQzYTNKeGFIWXlPR0V1ZDJWaQor
TFhCc1lYUm1iM0p0TG5SbGMzU0NMbmh1TFMxdU9HbzJaSE0xTTJ4M2QydHljV2gyTWpoaExuZDNk
ekl1ZDJWaQorTFhCc1lYUm1iM0p0TG5SbGMzU0NMM2h1TFMxc2RtVXRObXhoWkM1NGJpMHRiSFps
TFRac1lXUXVibTkwTFhkbAorWWkxd2JHRjBabTl5YlM1MFpYTjBnakY0YmkwdGJqaHFObVJ6TlRO
c2QzZHJjbkZvZGpJNFlTNTNkM2N1Ym05MAorTFhkbFlpMXdiR0YwWm05eWJTNTBaWE4wZ2pGM2Qz
Y3VlRzR0TFc0NGFqWmtjelV6YkhkM2EzSnhhSFl5T0dFdQorYm05MExYZGxZaTF3YkdGMFptOXli
UzUwWlhOMGdqSjNkM2N4TG5odUxTMXVPR28yWkhNMU0yeDNkMnR5Y1doMgorTWpoaExtNXZkQzEz
WldJdGNHeGhkR1p2Y20wdWRHVnpkSUl5ZUc0dExXNDRhalprY3pVemJIZDNhM0p4YUhZeQorT0dF
dWQzZDNNaTV1YjNRdGQyVmlMWEJzWVhSbWIzSnRMblJsYzNTQ01uaHVMUzF1T0dvMlpITTFNMngz
ZDJ0eQorY1doMk1qaGhMbmQzZHpFdWJtOTBMWGRsWWkxd2JHRjBabTl5YlM1MFpYTjBnakozZDNj
eUxuaHVMUzF1T0dvMgorWkhNMU0yeDNkMnR5Y1doMk1qaGhMbTV2ZEMxM1pXSXRjR3hoZEdadmNt
MHVkR1Z6ZElJMmVHNHRMVzQ0YWpaaworY3pVemJIZDNhM0p4YUhZeU9HRXVlRzR0TFd4MlpTMDJi
R0ZrTG5kbFlpMXdiR0YwWm05eWJTNTBaWE4wZ2paNAorYmkwdGJIWmxMVFpzWVdRdWVHNHRMVzQ0
YWpaa2N6VXpiSGQzYTNKeGFIWXlPR0V1ZDJWaUxYQnNZWFJtYjNKdAorTG5SbGMzU0NPbmh1TFMx
c2RtVXRObXhoWkM1NGJpMHRiamhxTm1Sek5UTnNkM2RyY25Gb2RqSTRZUzV1YjNRdAorZDJWaUxY
QnNZWFJtYjNKdExuUmxjM1NDT25odUxTMXVPR28yWkhNMU0yeDNkMnR5Y1doMk1qaGhMbmh1TFMx
cworZG1VdE5teGhaQzV1YjNRdGQyVmlMWEJzWVhSbWIzSnRMblJsYzNTQ1FYaHVMUzF1T0dvMlpI
TTFNMngzZDJ0eQorY1doMk1qaGhMbmh1TFMxdU9HbzJaSE0xTTJ4M2QydHljV2gyTWpoaExuZGxZ
aTF3YkdGMFptOXliUzUwWlhOMAorZ2tWNGJpMHRiamhxTm1Sek5UTnNkM2RyY25Gb2RqSTRZUzU0
YmkwdGJqaHFObVJ6TlROc2QzZHJjbkZvZGpJNAorWVM1dWIzUXRkMlZpTFhCc1lYUm1iM0p0TG5S
bGMzUXdEUVlKS29aSWh2Y05BUUVMQlFBRGdnRUJBSFhpcTF2QQoreGpjOGlqMzRpNGIrOGluVkJW
d1RXeUh0Y3psWm5JUVRDeHFKQ0RrODNwejhRRkhHeUhZeitkYjM2VTZZd0hhaworSTNIWWhpcFBN
QjFWbmxIa01BNnhGdVpML2FGV3l3TE5VOW5UbWFBVjBmUC9SNWs5dnQ4QUVtMFptRVdrTll0TAor
b3BjeTBycWpBYVhUSVdlczkxT1pmbmlURlFESE1pdXJLOFZxK2ZxL096dytZUWJSYlUxS2xIQ05h
eWlzdlFhNAorVExPK0RqTVIwaHpEVDNESEV3UEpMUFlhYTZSbkl3bzh6dkNxazBaUlBBeGV1bGRB
ZS91MVB6dGVYUnpFSFRBRQorRE1WTE13TTc1MmJMRnVmdjFHUkNaTkhFTFpLeWhVb0ZyUDMwQXFF
N3IzcG53UVJXOEtkaWQzOElNbzd1OURlbQordTUvdEhlZlBLRDdibS9ZPQogLS0tLS1FTkQgQ0VS
VElGSUNBVEUtLS0tLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy9jZXJ0cy9jb25maWcuanNvbiBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvY2VydHMvY29uZmlnLmpzb24KbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjRhMzdjMTNjMTJmCi0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy9jZXJ0cy9jb25maWcuanNvbgpAQCAtMCwwICsxLDE3IEBACit7CisgICAgInBvcnRzIjogewor
ICAgICAgICAiaHR0cCI6IFtdLAorICAgICAgICAiaHR0cHMiOiBbImF1dG8iXSwKKyAgICAgICAg
IndzIjogW10sCisgICAgICAgICJ3c3MiOiBbXQorICAgIH0sCisgICAgImNoZWNrX3N1YmRvbWFp
bnMiOiBmYWxzZSwKKyAgICAic3NsIjogeworICAgICAgICAidHlwZSI6ICJvcGVuc3NsIiwKKyAg
ICAgICAgIm9wZW5zc2wiOiB7CisgICAgICAgICAgICAiZHVyYXRpb24iOiAzNjUwLAorICAgICAg
ICAgICAgImZvcmNlX3JlZ2VuZXJhdGUiOiB0cnVlLAorICAgICAgICAgICAgImJhc2VfcGF0aCI6
ICJ0b29scy9jZXJ0cyIKKyAgICAgICAgfQorICAgIH0KK30KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvY2VydHMvdzNjLWltcG9y
dC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L2NlcnRzL3czYy1pbXBvcnQubG9nCmluZGV4IGIwMjA2Y2E5Nzk1Li5kODcxOTExNGYxZiAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy9jZXJ0cy93M2MtaW1wb3J0LmxvZworKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2NlcnRzL3czYy1pbXBvcnQubG9nCkBAIC0xNyw1ICsxNyw2
IEBAIExpc3Qgb2YgZmlsZXM6CiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy9jZXJ0cy9SRUFETUUubWQKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2NlcnRzL2NhY2VydC5rZXkKIC9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2NlcnRzL2NhY2VydC5wZW0KKy9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2NlcnRzL2Nv
bmZpZy5qc29uCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy9jZXJ0cy93ZWItcGxhdGZvcm0udGVzdC5rZXkKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2NlcnRzL3dlYi1wbGF0Zm9ybS50ZXN0LnBlbQpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy9jZXJ0cy93ZWItcGxhdGZvcm0udGVzdC5rZXkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2NlcnRzL3dlYi1wbGF0Zm9ybS50ZXN0LmtleQpp
bmRleCBmMDc0NWFkYmFlOS4uYjYyYWYyMDhjMzQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvY2VydHMvd2ViLXBsYXRmb3JtLnRl
c3Qua2V5CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvY2VydHMvd2ViLXBsYXRmb3JtLnRlc3Qua2V5CkBAIC0xLDI4ICsxLDI4IEBACiAtLS0t
LUJFR0lOIFBSSVZBVEUgS0VZLS0tLS0KLU1JSUV2UUlCQURBTkJna3Foa2lHOXcwQkFRRUZBQVND
Qktjd2dnU2pBZ0VBQW9JQkFRRFlVMmc3VmRLT1ZUeFAKLXVJQjB1QjFKakR6U3RiVVZJamVCSlVM
bldLcTJxcjRPTUk2Z2wwLzNnTm5wb2ZUcldEK2psaWk0MmxxcURVSGYKLWJCMVNyczNJRmdLd0Nu
Q1JWMzZsMnhDay9UdjNCdFcxaVdxU05zWm14YWJTYkhiMVQwckxic09UTGI3U1A3MFUKLXAwbzVX
dkFZM0VFYmNJQmxnWVZGbzZvWjhQNVY3UkRaVm15TlZHbEwza1VCRDFDaGg5Y01ReUtkRzA2eTdH
NTIKLTQ2ejJ3ZG13YWVnd0dyczkwNTNqakhCQmR5SUNYTEV6SzRMZTJyZ1k5TktZR21yd29DUldx
QXJwRENMUE9HeEQKLW1pYjJoZG0xSDIza3orMDVJMVBibzQ1K0p1dGhHMDVkckxCQ3ZoNWNUaGlB
WTJ3TkNXZ0lCcUgwQkF2RE41TG8KLXFnN0YwVXZCQWdNQkFBRUNnZ0VCQUpXc0g5SHQ3MkRMV0k5
UCtKREpVbm93cldTY2xFMnEvdnc3NjY1bGlyZ1kKLUtxZG1zVWdyYVFpMS9nL0lIczAyb2RGdGMz
OXlsSWhUNDkvUnpmZ0hPaG5XSU1Yc2N6WWNjMlFOemRaWjM4TnEKLTF6SmpnWGpvclIwdVk5M3pi
ZHNNb1pOZmI3SEZWT0hqZDg5eWI4aC9RdC93aEp1WG16NmYvclhRSjBFTG5PMlYKLWNzQmEwV1dS
ZEtOWVN1RFhYQVhyVG1KczRQcDdOTldBb1lCYU1vSFFjSEU5d3NOM1huSmRZWXlBQmJwajZ3SVAK
LTdMWHhVTjNPWmo0Q1k5K2FoQ2dyRUE4TkV2Q1UvU1VhZ0VYMFlHNHorc1YrRGZqbnVzN3ZNWVNx
WnYyc2RQTjIKLXplMDkyK0FaQkRwZGpOZEx5ckI2Y01GUmgvMjNNYUNMR0hQR2pKa0NkZ0VDZ1lF
QTliSytOUnFQVXFjUkovQmQKLTdQQVBpMVBMamtnUDY2djBvWHNXNnlsN0JueGdqclV2b1dVSTkv
NDBrRXZRRHp0SXJVRmJMb3h3bkx0QUtqUUcKLUYrMnZrRC9EV3Q0NTJaOGJRWGJ4dGVHTFhrTnR3
bzlEd1RCcno0T29ubW5yeGNPand0SUVycUV5aE1QUkNlMHcKLUtGdFJMZ0s1eFh4K0psUU56UnhZ
NFRVR2pnMENnWUVBNFdWaml4ZmhUZjF2RnBtZmhYNGV3TGFCcldjaDRoNngKLXdRM2o5TVY5MHdO
Ym5ueVQxR3JLaVIxWERKMXZOOGVtRnJOUXZocjBlT0V1RFkwWlhKSk04UHZQVzYrS3Ftc08KLXJ3
cmV5UXpwL2IxQWRzL3FMN00wNVJFdTV5NVJRMnpOV2pPYlR2ZHNVaC9MbXRVdkdSUW05MkUrdDRh
RnowSmcKLWpaNUE2b3ErdTRVQ2dZQXRYOGdldUh2MWNLTUxkQ2wwWTFVTGp2c05tS05RQzU2TzM5
TjR0RjFpOGo5R3U1RkQKLVJneGsrQTR2QThFMXZ1WUtFUUxNMHVUTkhRdVpmNmdNYlRtNTh2eVo0
R1pnbVRDSVkzWDU5K0FzRlZuRXozNWMKLXhCdDA1RVNVbE0wVTVhOXRnQ21iTW12STl2eTR6NVBR
TUNVSzBUZ0xqNVVnY085bmpLK2hUNUNaVlFLQmdHWmwKLVZqU2hjNlNucHVrQWYzejR6K1hDdytU
UC9vK29YQjZWUGVNOE9TNDh6MG1QMU9UaVl3S3BocHRmaG1BejNodGYKLStTVjBQMjRPOW9vSGVP
Y2FPOFFhMFpnWWhvbG5PM09BSDdmOG11ekFKbUlUa0pOOCtXRzdUYkNPMVRJcFlwMUEKLTVxU1lP
T2lTTTBBeTYwT2NhUnRuWFVPbzVHOUUrM0k2MjhqeG9UYTFBb0dBUUszTWpOL0J6RzVnWEczUFg1
VFYKLXRGWStLMlNnSUQzM2QrU1RSTFV6QWdPYis3YXFVT2R3WWZDZGlRc3BFRDlIUmtnL0RDTHA3
Z05wMDJwMWtzY0IKLXcvUFdDTVVPMDFpbklsalI0Zi9ZTytrSUQ4WnJvdmNoOGQ4SkxHdk5zWUZ6
VkFQL2NlWVc2L09NTFFMTkdmQkMKLXhIcGRqMEltMGU5L1dNeEM0WkVZZm9jPQorTUlJRXZnSUJB
REFOQmdrcWhraUc5dzBCQVFFRkFBU0NCS2d3Z2dTa0FnRUFBb0lCQVFDclpYVlhtT1BscW8vKwor
MnhqMTVQZ2NaR0hHby9ib2ZpUVEzZ2w2SkwxVlgxR3B0WUlOaFRxMnNVaGZOOHRDYitjSHl6YXBP
OW9VbXdxdworcDVVcDd0SjRJcDd1RTEvd3dTeFZjdkNhd0c1L1BONWlEN0gyd3NtRXBwSFhPYzNM
bDA4NS9nemVzKzErTm4rcQorQVJtcDFiRi92anBsRDZWZEgyckJXM3NKM0RBb0Jhb1hsQU1mZVJB
RkRwYXFhKzlseE1yTTVXa1VIbmRRK3VFTQorNmtaeWV2aHlwMDJYRFAwdkx3TkN0UExHQjBlbUFB
ZkM3eHB3UkdWR1N0RXNVaGYvbWM5eU5OYUtncUJLSTBubworb1ZudVUzUkdkS0hQMTh2Y2p0QlNW
MGxZZ2pmZzlhMDdPQnUxaGdRZmZob2ZpMkJ5ZGZhQ3BCQU16RmhsdTF1eQorczZhaFZrSnBBZ01C
QUFFQ2dnRUFmbXZ6eFkwTWJGY0dwMkZNWS9OajN1MWNBWHpubmsyTXBMUmlJU29BVFh4bAorYTl4
cDlUY1VPN1ZBUUp1UzNZcFV5cmJsdHFaakVWZmE1cnAxbDl5RWVnQnZZZ1FBZkVEQVJyYmxLZ0JP
Z0tPUgorRkp1bkZQQlFXL3ZSRHdPZi9FKzdMSGRyWHNrd29DdnF0cWJoR3hoNE9GVkVGVThaRmpz
YUwwMGUwQU1Oc2pabAorME9zRU9ObElING5DYTdFNkRUYXNIeGMxVmtIUXIzdXZCbDUvNEhmT2Mw
NXRyK1pLbE1ZWHpBUFdrTDBzQzIxNgorRHF5NEF4SjBNMGF4OEJZRVp1bzBncVFtTUFvbkpUa0Vu
cHlvRDR6ODlTODc3dkZwOHcxVlBiR1lrVjQ4eWpWLworSTdmUTZZanQzeWcrYXMrczRhckdFc1VC
MGwrWEFwQllZWS9KK3FjWVVRS0JnUURlZDdET01KVWMza1BURkVjTgorcC9FYlNoOVRYeFMvNzRj
SXlHaWQ5SUVpUkVKWXhZdjhrejBLcGxHdUpvbElRMy9JazlSYWM2QjNUdTRXa1cwZworVFBiTnVu
WUVzeWRaQkFuYVE0ZUFWZE9mdlJRNlYzZUJaMnZFcnNISlJGYWo1Y09jZXNVWHhCWkk2bTJ0UUVT
eAorZEJXRkRORzlrenRyMEhtYUw2UHV6NHpaSXdLQmdRREZPeGZSN0ZjcEdkdzYxemlTc1ptdHZr
ZjZlcGtHMytvdQordWhZNTBKMFVyVGJLN1R1aW1rb1J3L1hIZUJlNGRiK2VqT091TEQ5UUUveVh2
bXRFV3V5VVRUWU9WdlorSHVOagorUnAza2RpMUd1V1huNmdSdmRsa2Y5WHdXN2pIbWdrcGJBNUEr
dURYczNFWVlhMThMeFBOZk1Tdmh5SGRrRm5VRworYVR6eVlOcGRBd0tCZ0d2L1FOYW40UXQxbnds
dVU1ditobDZRR2lyNEFuTzJ6Ui9uWWxvajR6aUdXSXNOdzRwbQorMUFCQ2cyNStpTENMREJLTUtV
K0x5RCtERXJQai8wenA3L29wWmJlY1hTS3Fnam55QkdxNXY1VlJUZXVRb0pReQorWjYvQWdwUzVW
eklUaldWK2VBVzBqSGp6VFRFSS9SQUVZWm9JZ2gxOHh5RHN3TXVvQ3ZZWXpiQnZBb0dCQU1NMgor
SS9Odyt5d0JIb3RXcmZYenR1blNwaWR5NUxkN05LeWZIcFNHdUpMWWhwei9oY0VBK1VMd00vb0VF
V1pQbFNOMgoreTN0KzdBTjBaTlJFY3FNclkzRzlvajA3TWFuUEpMMEVEZzhzTU5BSmZLVzRhRDl5
WWZCUjUwcEM1RDBFeEZlbAorQlVZdXlhRHd2S2c2emM0MlY3UG1WVXFhUWlGY1lPUEJrY05NdlpU
RkFvR0JBTEJ0ZHQwaUl2dEJvcHArSVFhVgorelpNQTVaUUlRNW41djA3MUxLYTFzN2FyMytoSW9E
UnNaYk03WGtVSUE4elFscndGUmhiVTVZRk5jYnBvb1FTbQorN2o0K2ZJdWRjcHhqOXRBTUdBYjV5
Zzg5azFEalR5N0ZVV0w5ZWxHSWd2Sk1xZ0Y2SVE1Myt2Ujh4d0dEeVFMQgorc1A1bWl6RjF3aTQ3
RFlQSlFjRFJDelUrCiAtLS0tLUVORCBQUklWQVRFIEtFWS0tLS0tCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2NlcnRzL3dlYi1w
bGF0Zm9ybS50ZXN0LnBlbSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvY2VydHMvd2ViLXBsYXRmb3JtLnRlc3QucGVtCmluZGV4IGEzYTAyMmU2YWM0
Li41OTU5MzE2YmI1YiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy9jZXJ0cy93ZWItcGxhdGZvcm0udGVzdC5wZW0KKysrIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9jZXJ0cy93ZWIt
cGxhdGZvcm0udGVzdC5wZW0KQEAgLTEsOTAgKzEsMTMzIEBACiBDZXJ0aWZpY2F0ZToKICAgICBE
YXRhOgogICAgICAgICBWZXJzaW9uOiAzICgweDIpCi0gICAgICAgIFNlcmlhbCBOdW1iZXI6IDc1
MzU2MSAoMHhiN2Y5OSkKKyAgICAgICAgU2VyaWFsIE51bWJlcjogMzczMDY0ICgweDViMTQ4KQog
ICAgIFNpZ25hdHVyZSBBbGdvcml0aG06IHNoYTI1NldpdGhSU0FFbmNyeXB0aW9uCiAgICAgICAg
IElzc3VlcjogQ049d2ViLXBsYXRmb3JtLXRlc3RzCiAgICAgICAgIFZhbGlkaXR5Ci0gICAgICAg
ICAgICBOb3QgQmVmb3JlOiBKdWwgMTMgMTI6NTk6MTIgMjAxOCBHTVQKLSAgICAgICAgICAgIE5v
dCBBZnRlciA6IEp1bCAxMCAxMjo1OToxMiAyMDI4IEdNVAorICAgICAgICAgICAgTm90IEJlZm9y
ZTogT2N0IDE0IDEzOjQ5OjI5IDIwMTkgR01UCisgICAgICAgICAgICBOb3QgQWZ0ZXIgOiBPY3Qg
MTEgMTM6NDk6MjkgMjAyOSBHTVQKICAgICAgICAgU3ViamVjdDogQ049d2ViLXBsYXRmb3JtLnRl
c3QKICAgICAgICAgU3ViamVjdCBQdWJsaWMgS2V5IEluZm86CiAgICAgICAgICAgICBQdWJsaWMg
S2V5IEFsZ29yaXRobTogcnNhRW5jcnlwdGlvbgogICAgICAgICAgICAgICAgIFB1YmxpYy1LZXk6
ICgyMDQ4IGJpdCkKICAgICAgICAgICAgICAgICBNb2R1bHVzOgotICAgICAgICAgICAgICAgICAg
ICAwMDpkODo1Mzo2ODozYjo1NTpkMjo4ZTo1NTozYzo0ZjpiODo4MDo3NDpiODoKLSAgICAgICAg
ICAgICAgICAgICAgMWQ6NDk6OGM6M2M6ZDI6YjU6YjU6MTU6MjI6Mzc6ODE6MjU6NDI6ZTc6NTg6
Ci0gICAgICAgICAgICAgICAgICAgIGFhOmI2OmFhOmJlOjBlOjMwOjhlOmEwOjk3OjRmOmY3Ojgw
OmQ5OmU5OmExOgotICAgICAgICAgICAgICAgICAgICBmNDplYjo1ODozZjphMzo5NjoyODpiODpk
YTo1YTphYTowZDo0MTpkZjo2YzoKLSAgICAgICAgICAgICAgICAgICAgMWQ6NTI6YWU6Y2Q6Yzg6
MTY6MDI6YjA6MGE6NzA6OTE6NTc6N2U6YTU6ZGI6Ci0gICAgICAgICAgICAgICAgICAgIDEwOmE0
OmZkOjNiOmY3OjA2OmQ1OmI1Ojg5OjZhOjkyOjM2OmM2OjY2OmM1OgotICAgICAgICAgICAgICAg
ICAgICBhNjpkMjo2Yzo3NjpmNTo0Zjo0YTpjYjo2ZTpjMzo5MzoyZDpiZTpkMjozZjoKLSAgICAg
ICAgICAgICAgICAgICAgYmQ6MTQ6YTc6NGE6Mzk6NWE6ZjA6MTg6ZGM6NDE6MWI6NzA6ODA6NjU6
ODE6Ci0gICAgICAgICAgICAgICAgICAgIDg1OjQ1OmEzOmFhOjE5OmYwOmZlOjU1OmVkOjEwOmQ5
OjU2OjZjOjhkOjU0OgotICAgICAgICAgICAgICAgICAgICA2OTo0YjpkZTo0NTowMTowZjo1MDph
MTo4NzpkNzowYzo0MzoyMjo5ZDoxYjoKLSAgICAgICAgICAgICAgICAgICAgNGU6YjI6ZWM6NmU6
NzY6ZTM6YWM6ZjY6YzE6ZDk6YjA6Njk6ZTg6MzA6MWE6Ci0gICAgICAgICAgICAgICAgICAgIGJi
OjNkOmQzOjlkOmUzOjhjOjcwOjQxOjc3OjIyOjAyOjVjOmIxOjMzOjJiOgotICAgICAgICAgICAg
ICAgICAgICA4MjpkZTpkYTpiODoxODpmNDpkMjo5ODoxYTo2YTpmMDphMDoyNDo1NjphODoKLSAg
ICAgICAgICAgICAgICAgICAgMGE6ZTk6MGM6MjI6Y2Y6Mzg6NmM6NDM6OWE6MjY6ZjY6ODU6ZDk6
YjU6MWY6Ci0gICAgICAgICAgICAgICAgICAgIDZkOmU0OmNmOmVkOjM5OjIzOjUzOmRiOmEzOjhl
OjdlOjI2OmViOjYxOjFiOgotICAgICAgICAgICAgICAgICAgICA0ZTo1ZDphYzpiMDo0MjpiZTox
ZTo1Yzo0ZToxODo4MDo2Mzo2YzowZDowOToKLSAgICAgICAgICAgICAgICAgICAgNjg6MDg6MDY6
YTE6ZjQ6MDQ6MGI6YzM6Mzc6OTI6ZTg6YWE6MGU6YzU6ZDE6Ci0gICAgICAgICAgICAgICAgICAg
IDRiOmMxCisgICAgICAgICAgICAgICAgICAgIDAwOmFiOjY1Ojc1OjU3Ojk4OmUzOmU1OmFhOjhm
OmZlOmRiOjE4OmY1OmU0OgorICAgICAgICAgICAgICAgICAgICBmODoxYzo2NDo2MTpjNjphMzpm
NjplODo3ZToyNDoxMDpkZTowOTo3YToyNDoKKyAgICAgICAgICAgICAgICAgICAgYmQ6NTU6NWY6
NTE6YTk6YjU6ODI6MGQ6ODU6M2E6YjY6YjE6NDg6NWY6Mzc6CisgICAgICAgICAgICAgICAgICAg
IGNiOjQyOjZmOmU3OjA3OmNiOjM2OmE5OjNiOmRhOjE0OjliOjBhOmIwOmE3OgorICAgICAgICAg
ICAgICAgICAgICA5NToyOTplZTpkMjo3ODoyMjo5ZTplZToxMzo1ZjpmMDpjMToyYzo1NTo3MjoK
KyAgICAgICAgICAgICAgICAgICAgZjA6OWE6YzA6NmU6N2Y6M2M6ZGU6NjI6MGY6YjE6ZjY6YzI6
Yzk6ODQ6YTY6CisgICAgICAgICAgICAgICAgICAgIDkxOmQ3OjM5OmNkOmNiOjk3OjRmOjM5OmZl
OjBjOmRlOmIzOmVkOjdlOjM2OgorICAgICAgICAgICAgICAgICAgICA3ZjphYTowMToxOTphOTpk
NTpiMTo3ZjpiZTozYTo2NTowZjphNTo1ZDoxZjoKKyAgICAgICAgICAgICAgICAgICAgNmE6YzE6
NWI6N2I6MDk6ZGM6MzA6Mjg6MDU6YWE6MTc6OTQ6MDM6MWY6Nzk6CisgICAgICAgICAgICAgICAg
ICAgIDEwOjA1OjBlOjk2OmFhOjZiOmVmOjY1OmM0OmNhOmNjOmU1OjY5OjE0OjFlOgorICAgICAg
ICAgICAgICAgICAgICA3Nzo1MDpmYTplMTowYzplYTo0Njo3Mjo3YTpmODo3MjphNzo0ZDo5Nzow
YzoKKyAgICAgICAgICAgICAgICAgICAgZmQ6MmY6MmY6MDM6NDI6YjQ6ZjI6YzY6MDc6NDc6YTY6
MDA6MDc6YzI6ZWY6CisgICAgICAgICAgICAgICAgICAgIDFhOjcwOjQ0OjY1OjQ2OjRhOmQxOjJj
OjUyOjE3OmZmOjk5OmNmOjcyOjM0OgorICAgICAgICAgICAgICAgICAgICBkNjo4YTo4MjphMDo0
YToyMzo0OTplODphMTo1OTplZTo1Mzo3NDo0Njo3NDoKKyAgICAgICAgICAgICAgICAgICAgYTE6
Y2Y6ZDc6Y2I6ZGM6OGU6ZDA6NTI6NTc6NDk6NTg6ODI6Mzc6ZTA6ZjU6CisgICAgICAgICAgICAg
ICAgICAgIGFkOjNiOjM4OjFiOmI1Ojg2OjA0OjFmOjdlOjFhOjFmOjhiOjYwOjcyOjc1OgorICAg
ICAgICAgICAgICAgICAgICBmNjo4MjphNDoxMDowYzpjYzo1ODo2NTpiYjo1YjpiMjpiMzphNjph
MTo1NjoKKyAgICAgICAgICAgICAgICAgICAgNDI6NjkKICAgICAgICAgICAgICAgICBFeHBvbmVu
dDogNjU1MzcgKDB4MTAwMDEpCiAgICAgICAgIFg1MDl2MyBleHRlbnNpb25zOgogICAgICAgICAg
ICAgWDUwOXYzIEJhc2ljIENvbnN0cmFpbnRzOiAKICAgICAgICAgICAgICAgICBDQTpGQUxTRQog
ICAgICAgICAgICAgWDUwOXYzIFN1YmplY3QgS2V5IElkZW50aWZpZXI6IAotICAgICAgICAgICAg
ICAgIERDOjI3OjZDOjc0OkU2OjQ3OjMxOjk1OkQ4OkNDOjk2OjVCOkU0Ojk0OjZFOjhDOjIyOjJG
OjJCOkVBCisgICAgICAgICAgICAgICAgMkE6MTg6MEI6MDk6MjI6NkU6Mjg6RDI6REI6RkQ6QzI6
MkQ6NDA6QTY6RjM6Mzg6NjI6NkU6Qzc6QzUKICAgICAgICAgICAgIFg1MDl2MyBBdXRob3JpdHkg
S2V5IElkZW50aWZpZXI6IAotICAgICAgICAgICAgICAgIGtleWlkOjVCOkRBOkM4OkMxOjA5OkYz
OjREOjkyOjMwOkJDOkVGOjQzOkZCOjI2OjkzOjFFOkFFOjBEOjlBOjBGCisgICAgICAgICAgICAg
ICAga2V5aWQ6NDE6NDk6RkY6OEM6NjY6NTA6NUY6ODc6QTE6MDY6QTg6QkI6QUI6OEE6REQ6NzM6
MEQ6MEU6Mzc6MUEKIAogICAgICAgICAgICAgWDUwOXYzIEtleSBVc2FnZTogCiAgICAgICAgICAg
ICAgICAgRGlnaXRhbCBTaWduYXR1cmUsIE5vbiBSZXB1ZGlhdGlvbiwgS2V5IEVuY2lwaGVybWVu
dAogICAgICAgICAgICAgWDUwOXYzIEV4dGVuZGVkIEtleSBVc2FnZTogCiAgICAgICAgICAgICAg
ICAgVExTIFdlYiBTZXJ2ZXIgQXV0aGVudGljYXRpb24KICAgICAgICAgICAgIFg1MDl2MyBTdWJq
ZWN0IEFsdGVybmF0aXZlIE5hbWU6IAotICAgICAgICAgICAgICAgIEROUzp3ZWItcGxhdGZvcm0u
dGVzdCwgRE5TOm5vdC13ZWItcGxhdGZvcm0udGVzdCwgRE5TOnd3dy53ZWItcGxhdGZvcm0udGVz
dCwgRE5TOnd3dzEud2ViLXBsYXRmb3JtLnRlc3QsIEROUzp3d3cyLndlYi1wbGF0Zm9ybS50ZXN0
LCBETlM6d3d3Lm5vdC13ZWItcGxhdGZvcm0udGVzdCwgRE5TOnd3dzIubm90LXdlYi1wbGF0Zm9y
bS50ZXN0LCBETlM6d3d3MS5ub3Qtd2ViLXBsYXRmb3JtLnRlc3QsIEROUzp4bi0tbHZlLTZsYWQu
d2ViLXBsYXRmb3JtLnRlc3QsIEROUzp4bi0tbHZlLTZsYWQubm90LXdlYi1wbGF0Zm9ybS50ZXN0
LCBETlM6eG4tLW44ajZkczUzbHd3a3JxaHYyOGEud2ViLXBsYXRmb3JtLnRlc3QsIEROUzp4bi0t
bjhqNmRzNTNsd3drcnFodjI4YS5ub3Qtd2ViLXBsYXRmb3JtLnRlc3QKKyAgICAgICAgICAgICAg
ICBETlM6d2ViLXBsYXRmb3JtLnRlc3QsIEROUzpub3Qtd2ViLXBsYXRmb3JtLnRlc3QsIEROUzp3
d3cud2ViLXBsYXRmb3JtLnRlc3QsIEROUzp3d3cxLndlYi1wbGF0Zm9ybS50ZXN0LCBETlM6d3d3
Mi53ZWItcGxhdGZvcm0udGVzdCwgRE5TOnd3dy5ub3Qtd2ViLXBsYXRmb3JtLnRlc3QsIEROUzp3
d3cud3d3LndlYi1wbGF0Zm9ybS50ZXN0LCBETlM6d3d3Mi5ub3Qtd2ViLXBsYXRmb3JtLnRlc3Qs
IEROUzp3d3cxLm5vdC13ZWItcGxhdGZvcm0udGVzdCwgRE5TOnd3dy53d3cyLndlYi1wbGF0Zm9y
bS50ZXN0LCBETlM6d3d3Mi53d3cud2ViLXBsYXRmb3JtLnRlc3QsIEROUzp3d3cxLnd3dy53ZWIt
cGxhdGZvcm0udGVzdCwgRE5TOnd3dy53d3cxLndlYi1wbGF0Zm9ybS50ZXN0LCBETlM6d3d3MS53
d3cxLndlYi1wbGF0Zm9ybS50ZXN0LCBETlM6d3d3MS53d3cyLndlYi1wbGF0Zm9ybS50ZXN0LCBE
TlM6d3d3Mi53d3cyLndlYi1wbGF0Zm9ybS50ZXN0LCBETlM6d3d3Mi53d3cxLndlYi1wbGF0Zm9y
bS50ZXN0LCBETlM6d3d3Lnd3dy5ub3Qtd2ViLXBsYXRmb3JtLnRlc3QsIEROUzp3d3cud3d3Mi5u
b3Qtd2ViLXBsYXRmb3JtLnRlc3QsIEROUzp3d3cxLnd3dy5ub3Qtd2ViLXBsYXRmb3JtLnRlc3Qs
IEROUzp4bi0tbHZlLTZsYWQud2ViLXBsYXRmb3JtLnRlc3QsIEROUzp3d3cud3d3MS5ub3Qtd2Vi
LXBsYXRmb3JtLnRlc3QsIEROUzp3d3cyLnd3dy5ub3Qtd2ViLXBsYXRmb3JtLnRlc3QsIEROUzp3
d3cyLnd3dzIubm90LXdlYi1wbGF0Zm9ybS50ZXN0LCBETlM6d3d3Mi53d3cxLm5vdC13ZWItcGxh
dGZvcm0udGVzdCwgRE5TOnd3dzEud3d3MS5ub3Qtd2ViLXBsYXRmb3JtLnRlc3QsIEROUzp3d3cx
Lnd3dzIubm90LXdlYi1wbGF0Zm9ybS50ZXN0LCBETlM6eG4tLWx2ZS02bGFkLnd3dy53ZWItcGxh
dGZvcm0udGVzdCwgRE5TOnd3dy54bi0tbHZlLTZsYWQud2ViLXBsYXRmb3JtLnRlc3QsIEROUzp4
bi0tbHZlLTZsYWQubm90LXdlYi1wbGF0Zm9ybS50ZXN0LCBETlM6eG4tLWx2ZS02bGFkLnd3dzEu
d2ViLXBsYXRmb3JtLnRlc3QsIEROUzp3d3cyLnhuLS1sdmUtNmxhZC53ZWItcGxhdGZvcm0udGVz
dCwgRE5TOnd3dzEueG4tLWx2ZS02bGFkLndlYi1wbGF0Zm9ybS50ZXN0LCBETlM6eG4tLWx2ZS02
bGFkLnd3dzIud2ViLXBsYXRmb3JtLnRlc3QsIEROUzp4bi0tbHZlLTZsYWQud3d3Lm5vdC13ZWIt
cGxhdGZvcm0udGVzdCwgRE5TOnd3dy54bi0tbHZlLTZsYWQubm90LXdlYi1wbGF0Zm9ybS50ZXN0
LCBETlM6eG4tLWx2ZS02bGFkLnd3dzEubm90LXdlYi1wbGF0Zm9ybS50ZXN0LCBETlM6d3d3Mi54
bi0tbHZlLTZsYWQubm90LXdlYi1wbGF0Zm9ybS50ZXN0LCBETlM6d3d3MS54bi0tbHZlLTZsYWQu
bm90LXdlYi1wbGF0Zm9ybS50ZXN0LCBETlM6eG4tLWx2ZS02bGFkLnd3dzIubm90LXdlYi1wbGF0
Zm9ybS50ZXN0LCBETlM6eG4tLW44ajZkczUzbHd3a3JxaHYyOGEud2ViLXBsYXRmb3JtLnRlc3Qs
IEROUzp4bi0tbHZlLTZsYWQueG4tLWx2ZS02bGFkLndlYi1wbGF0Zm9ybS50ZXN0LCBETlM6eG4t
LW44ajZkczUzbHd3a3JxaHYyOGEubm90LXdlYi1wbGF0Zm9ybS50ZXN0LCBETlM6eG4tLW44ajZk
czUzbHd3a3JxaHYyOGEud3d3LndlYi1wbGF0Zm9ybS50ZXN0LCBETlM6d3d3LnhuLS1uOGo2ZHM1
M2x3d2tycWh2MjhhLndlYi1wbGF0Zm9ybS50ZXN0LCBETlM6d3d3MS54bi0tbjhqNmRzNTNsd3dr
cnFodjI4YS53ZWItcGxhdGZvcm0udGVzdCwgRE5TOnhuLS1uOGo2ZHM1M2x3d2tycWh2MjhhLnd3
dzEud2ViLXBsYXRmb3JtLnRlc3QsIEROUzp3d3cyLnhuLS1uOGo2ZHM1M2x3d2tycWh2MjhhLndl
Yi1wbGF0Zm9ybS50ZXN0LCBETlM6eG4tLW44ajZkczUzbHd3a3JxaHYyOGEud3d3Mi53ZWItcGxh
dGZvcm0udGVzdCwgRE5TOnhuLS1sdmUtNmxhZC54bi0tbHZlLTZsYWQubm90LXdlYi1wbGF0Zm9y
bS50ZXN0LCBETlM6eG4tLW44ajZkczUzbHd3a3JxaHYyOGEud3d3Lm5vdC13ZWItcGxhdGZvcm0u
dGVzdCwgRE5TOnd3dy54bi0tbjhqNmRzNTNsd3drcnFodjI4YS5ub3Qtd2ViLXBsYXRmb3JtLnRl
c3QsIEROUzp3d3cxLnhuLS1uOGo2ZHM1M2x3d2tycWh2MjhhLm5vdC13ZWItcGxhdGZvcm0udGVz
dCwgRE5TOnhuLS1uOGo2ZHM1M2x3d2tycWh2MjhhLnd3dzIubm90LXdlYi1wbGF0Zm9ybS50ZXN0
LCBETlM6eG4tLW44ajZkczUzbHd3a3JxaHYyOGEud3d3MS5ub3Qtd2ViLXBsYXRmb3JtLnRlc3Qs
IEROUzp3d3cyLnhuLS1uOGo2ZHM1M2x3d2tycWh2MjhhLm5vdC13ZWItcGxhdGZvcm0udGVzdCwg
RE5TOnhuLS1uOGo2ZHM1M2x3d2tycWh2MjhhLnhuLS1sdmUtNmxhZC53ZWItcGxhdGZvcm0udGVz
dCwgRE5TOnhuLS1sdmUtNmxhZC54bi0tbjhqNmRzNTNsd3drcnFodjI4YS53ZWItcGxhdGZvcm0u
dGVzdCwgRE5TOnhuLS1sdmUtNmxhZC54bi0tbjhqNmRzNTNsd3drcnFodjI4YS5ub3Qtd2ViLXBs
YXRmb3JtLnRlc3QsIEROUzp4bi0tbjhqNmRzNTNsd3drcnFodjI4YS54bi0tbHZlLTZsYWQubm90
LXdlYi1wbGF0Zm9ybS50ZXN0LCBETlM6eG4tLW44ajZkczUzbHd3a3JxaHYyOGEueG4tLW44ajZk
czUzbHd3a3JxaHYyOGEud2ViLXBsYXRmb3JtLnRlc3QsIEROUzp4bi0tbjhqNmRzNTNsd3drcnFo
djI4YS54bi0tbjhqNmRzNTNsd3drcnFodjI4YS5ub3Qtd2ViLXBsYXRmb3JtLnRlc3QKICAgICBT
aWduYXR1cmUgQWxnb3JpdGhtOiBzaGEyNTZXaXRoUlNBRW5jcnlwdGlvbgotICAgICAgICAgMTU6
OTg6Njg6Njk6MjU6ZjY6Zjc6ZDY6MDk6MGI6NWI6ZDY6YWM6ZDY6NDk6MDY6MGU6MjQ6Ci0gICAg
ICAgICBlMTplZTpiOTo0NDo5ZTpkMTowMzowMzplZDozYTpiMzpmOToyMzpjNDoxNDplODpmZTo1
MzoKLSAgICAgICAgIDcwOjcwOjIxOmE2OmQ0OmUzOmVlOjhkOmJhOjg0OjM4OmNkOjcxOjMyOmM3
OjRhOmMwOmYxOgotICAgICAgICAgMzM6ZWI6YmQ6YmM6ZWQ6ZjI6ZDg6ZGM6YzM6YTc6YTc6YTY6
NDc6NmE6Njk6NmM6MTY6ZWE6Ci0gICAgICAgICBlNjo0ZDo3Yzo3NzoxODowZDozZTo4NjoyOTo5
MToyYjo0OTpkNTpjOToxOToxYTo1MzoxNjoKLSAgICAgICAgIGE3OmYwOjAyOmY0OjcwOmEyOmU1
OjhiOmJjOmFhOmE2OjZmOjRmOjViOjQwOjI0OjA0OjY4OgotICAgICAgICAgMTE6OWQ6OWU6MjY6
MjA6ZjI6ZTM6Njg6MzY6OWE6ZmE6OGY6N2M6YjA6Mjk6MDg6Mzc6YzQ6Ci0gICAgICAgICAwNjow
ODpmYzplNDo0NTpiYjo0Yzo3ODphZToyYzpmMTpjMTpiZjpkOToyMzoxNzplNTo0MzoKLSAgICAg
ICAgIDE4OjBlOjA2OmQ4OjRjOmI0OjJhOmVmOmY5OjdjOmJmOjAyOmQyOjYyOjUxOjgyOmVkOjlk
OgotICAgICAgICAgNjQ6ODM6M2Q6MDM6Y2Q6NjE6Mzg6YzA6NTc6YzY6NWU6NWI6M2E6NDE6OTE6
ZGI6M2U6ODM6Ci0gICAgICAgICAwNTo0Yjo4ODo4NDplMzphZTpiZTo0ZDo1ZDpmOTo1OTowNzow
YzoyMToxNjpmYTo3ZTphZjoKLSAgICAgICAgIDIzOjk3OjA1OjI1OjRjOmJiOjAyOmQzOjExOjRh
Ojg1OjY4OmMzOmEzOmNmOmQwOjBjOjE1OgotICAgICAgICAgNDk6ZjY6MzI6MGI6ZjY6MmE6MDE6
OTE6M2M6YWQ6Yzc6MzE6ZGE6ZGE6NDM6ZTI6MmM6ZGI6Ci0gICAgICAgICA1MjpjNTozNzphMDpj
MzpjYzozYTo1YjoyYjo3NjplNTo3NDo3NDoyMDoxYjpjMzpmNzowYzoKLSAgICAgICAgIGZlOjZk
OmJmOmJiCisgICAgICAgICBhZjpjMjplYTpjYzo2YTo1ZTo0OTplMDpkYjo3MjoxNDowNTozYzoy
MTphMDo4YjpmZjpiNjoKKyAgICAgICAgIGE5OjcxOjgyOmY3OjYxOmNkOjIzOjJhOjAwOjY2Ojkx
OmFjOjAxOjk5OjYzOjM4OjExOjIxOgorICAgICAgICAgODU6YjI6NTc6OTI6MGI6M2Y6Nzk6Njg6
ZjU6ZDg6NTk6OGI6YTc6NzQ6MTk6ZWI6MGI6ZTc6CisgICAgICAgICAzZDo4Njo0ZTo2NjpkNDpl
NjoyZjpmZjplZDo2Yzo3ZDo5YTo1ZToxMjo0ZTpiZjozOTpmZjoKKyAgICAgICAgIGY3OmQwOmZi
OjUyOjUzOmEwOmZiOmIxOjVjOjlhOjkxOjkyOjM2OjAwOmQ4OmE0OjZmOmY5OgorICAgICAgICAg
OWM6MzY6MjE6YjI6YzI6NWU6MTQ6MTE6Y2E6NTU6ZTc6ODg6MzA6NjA6OGQ6ODY6ZGE6NjU6Cisg
ICAgICAgICAyNjpmZjplMjo0NTozNjoyYTowOTozZDphNDpiYjozODo2MTo0ZDo1NzplNDpjOTpi
Njo1MDoKKyAgICAgICAgIDNjOjA2OjJmOjZiOmJmOjA0OjM0OjQyOjU0OmRjOjUzOmI2OjYxOmM1
OjRlOjQwOjAwOmQ2OgorICAgICAgICAgNWU6MTk6MTc6M2E6NTQ6MmM6YzU6MTY6N2E6NmQ6NGE6
NzA6NTY6NDU6Y2Q6OTk6NWE6MmE6CisgICAgICAgICBkMTphNzo0ZTozNTo5NzozZDpkODpjOTo5
NTo4MDphYjoxNTo0Mjo4NjpmNjphMDphNjpjMzoKKyAgICAgICAgIDIxOmMxOjlhOjA3OjM0OjQ5
OmFkOjYxOjNjOmJjOjk0OmIyOjJkOjkyOmY3OjQ0OjgwOjAxOgorICAgICAgICAgNWY6Mjc6YmQ6
ODM6ZjU6NTE6MjI6Mzk6Y2Q6OTg6YjE6Mzk6MjM6Yjg6ZjQ6NWM6MDg6MjA6CisgICAgICAgICA5
ZTpmZTpmMToyZDo5YTplOTo5YjpjNzo1ZTpiODozMzo4YjoxNjo3Nzo1MjozZDpjOTo3YToKKyAg
ICAgICAgIDQzOjllOjI1OmQwOmM3OjVhOjk2OjA4OjUzOjFhOmRjOjc1OjUzOjc1OjQ0OjYyOjE4
OjdjOgorICAgICAgICAgZWY6ZmI6NzM6NTIKIC0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLQot
TUlJRW5EQ0NBNFNnQXdJQkFnSURDMytaTUEwR0NTcUdTSWIzRFFFQkN3VUFNQjB4R3pBWkJnTlZC
QU1NRW5kbAotWWkxd2JHRjBabTl5YlMxMFpYTjBjekFlRncweE9EQTNNVE14TWpVNU1USmFGdzB5
T0RBM01UQXhNalU1TVRKYQorTUlJTXNqQ0NDNXFnQXdJQkFnSURCYkZJTUEwR0NTcUdTSWIzRFFF
QkN3VUFNQjB4R3pBWkJnTlZCQU1NRW5kbAorWWkxd2JHRjBabTl5YlMxMFpYTjBjekFlRncweE9U
RXdNVFF4TXpRNU1qbGFGdzB5T1RFd01URXhNelE1TWpsYQogTUJ3eEdqQVlCZ05WQkFNTUVYZGxZ
aTF3YkdGMFptOXliUzUwWlhOME1JSUJJakFOQmdrcWhraUc5dzBCQVFFRgotQUFPQ0FROEFNSUlC
Q2dLQ0FRRUEyRk5vTzFYU2psVThUN2lBZExnZFNZdzgwclcxRlNJM2dTVkM1MWlxdHFxKwotRGpD
T29KZFA5NERaNmFIMDYxZy9vNVlvdU5wYXFnMUIzMndkVXE3TnlCWUNzQXB3a1ZkK3Bkc1FwUDA3
OXdiVgotdFlscWtqYkdac1dtMG14MjlVOUt5MjdEa3kyKzBqKzlGS2RLT1Zyd0dOeEJHM0NBWllH
RlJhT3FHZkQrVmUwUQotMlZac2pWUnBTOTVGQVE5UW9ZZlhERU1pblJ0T3N1eHVkdU9zOXNIWnNH
bm9NQnE3UGRPZDQ0eHdRWGNpQWx5eAotTXl1QzN0cTRHUFRTbUJwcThLQWtWcWdLNlF3aXp6aHNR
NW9tOW9YWnRSOXQ1TS90T1NOVDI2T09maWJyWVJ0TwotWGF5d1FyNGVYRTRZZ0dOc0RRbG9DQWFo
OUFRTHd6ZVM2S29PeGRGTHdRSURBUUFCbzRJQjVEQ0NBZUF3Q1FZRAotVlIwVEJBSXdBREFkQmdO
VkhRNEVGZ1FVM0Nkc2RPWkhNWlhZekpaYjVKUnVqQ0l2Sytvd0h3WURWUjBqQkJndwotRm9BVVc5
ckl3UW56VFpJd3ZPOUQreWFUSHE0Tm1nOHdDd1lEVlIwUEJBUURBZ1hnTUJNR0ExVWRKUVFNTUFv
RwotQ0NzR0FRVUZCd01CTUlJQmJ3WURWUjBSQklJQlpqQ0NBV0tDRVhkbFlpMXdiR0YwWm05eWJT
NTBaWE4wZ2hWdQorQUFPQ0FROEFNSUlCQ2dLQ0FRRUFxMlYxVjVqajVhcVAvdHNZOWVUNEhHUmh4
cVAyNkg0a0VONEplaVM5VlY5UgorcWJXQ0RZVTZ0ckZJWHpmTFFtL25COHMycVR2YUZKc0tzS2VW
S2U3U2VDS2U3aE5mOE1Fc1ZYTHdtc0J1Znp6ZQorWWcreDlzTEpoS2FSMXpuTnk1ZFBPZjRNM3JQ
dGZqWi9xZ0VacWRXeGY3NDZaUStsWFI5cXdWdDdDZHd3S0FXcQorRjVRREgza1FCUTZXcW12dlpj
VEt6T1ZwRkI1M1VQcmhET3BHY25yNGNxZE5sd3o5THk4RFFyVHl4Z2RIcGdBSAord3U4YWNFUmxS
a3JSTEZJWC81blBjalRXaW9LZ1NpTko2S0ZaN2xOMFJuU2h6OWZMM0k3UVVsZEpXSUkzNFBXdAor
T3pnYnRZWUVIMzRhSDR0Z2NuWDJncVFRRE14WVpidGJzck9tb1ZaQ2FRSURBUUFCbzRJSitqQ0ND
Zll3Q1FZRAorVlIwVEJBSXdBREFkQmdOVkhRNEVGZ1FVS2hnTENTSnVLTkxiL2NJdFFLYnpPR0p1
eDhVd0h3WURWUjBqQkJndworRm9BVVFVbi9qR1pRWDRlaEJxaTdxNHJkY3cwT054b3dDd1lEVlIw
UEJBUURBZ1hnTUJNR0ExVWRKUVFNTUFvRworQ0NzR0FRVUZCd01CTUlJSmhRWURWUjBSQklJSmZE
Q0NDWGlDRVhkbFlpMXdiR0YwWm05eWJTNTBaWE4wZ2hWdQogYjNRdGQyVmlMWEJzWVhSbWIzSnRM
blJsYzNTQ0ZYZDNkeTUzWldJdGNHeGhkR1p2Y20wdWRHVnpkSUlXZDNkMwogTVM1M1pXSXRjR3ho
ZEdadmNtMHVkR1Z6ZElJV2QzZDNNaTUzWldJdGNHeGhkR1p2Y20wdWRHVnpkSUlaZDNkMwotTG01
dmRDMTNaV0l0Y0d4aGRHWnZjbTB1ZEdWemRJSWFkM2QzTWk1dWIzUXRkMlZpTFhCc1lYUm1iM0p0
TG5SbAotYzNTQ0duZDNkekV1Ym05MExYZGxZaTF3YkdGMFptOXliUzUwWlhOMGdoNTRiaTB0Ykha
bExUWnNZV1F1ZDJWaQotTFhCc1lYUm1iM0p0TG5SbGMzU0NJbmh1TFMxc2RtVXRObXhoWkM1dWIz
UXRkMlZpTFhCc1lYUm1iM0p0TG5SbAotYzNTQ0tYaHVMUzF1T0dvMlpITTFNMngzZDJ0eWNXaDJN
amhoTG5kbFlpMXdiR0YwWm05eWJTNTBaWE4wZ2kxNAotYmkwdGJqaHFObVJ6TlROc2QzZHJjbkZv
ZGpJNFlTNXViM1F0ZDJWaUxYQnNZWFJtYjNKdExuUmxjM1F3RFFZSgotS29aSWh2Y05BUUVMQlFB
RGdnRUJBQldZYUdrbDl2ZldDUXRiMXF6V1NRWU9KT0h1dVVTZTBRTUQ3VHF6K1NQRQotRk9qK1Uz
QndJYWJVNCs2TnVvUTR6WEV5eDByQThUUHJ2Ynp0OHRqY3c2ZW5wa2RxYVd3VzZ1Wk5mSGNZRFQ2
RwotS1pFclNkWEpHUnBURnFmd0F2UndvdVdMdktxbWIwOWJRQ1FFYUJHZG5pWWc4dU5vTnByNmoz
eXdLUWczeEFZSQotL09SRnUweDRyaXp4d2IvWkl4ZmxReGdPQnRoTXRDcnYrWHkvQXRKaVVZTHRu
V1NEUFFQTllUakFWOFplV3pwQgota2RzK2d3VkxpSVRqcnI1TlhmbFpCd3doRnZwK3J5T1hCU1ZN
dXdMVEVVcUZhTU9qejlBTUZVbjJNZ3YyS2dHUgotUEszSE1kcmFRK0lzMjFMRk42RER6RHBiSzNi
bGRIUWdHOFAzRFA1dHY3cz0KK0xtNXZkQzEzWldJdGNHeGhkR1p2Y20wdWRHVnpkSUlaZDNkM0xu
ZDNkeTUzWldJdGNHeGhkR1p2Y20wdWRHVnoKK2RJSWFkM2QzTWk1dWIzUXRkMlZpTFhCc1lYUm1i
M0p0TG5SbGMzU0NHbmQzZHpFdWJtOTBMWGRsWWkxd2JHRjAKK1ptOXliUzUwWlhOMGdocDNkM2N1
ZDNkM01pNTNaV0l0Y0d4aGRHWnZjbTB1ZEdWemRJSWFkM2QzTWk1M2QzY3UKK2QyVmlMWEJzWVhS
bWIzSnRMblJsYzNTQ0duZDNkekV1ZDNkM0xuZGxZaTF3YkdGMFptOXliUzUwWlhOMGdocDMKK2Qz
Y3VkM2QzTVM1M1pXSXRjR3hoZEdadmNtMHVkR1Z6ZElJYmQzZDNNUzUzZDNjeExuZGxZaTF3YkdG
MFptOXkKK2JTNTBaWE4wZ2h0M2QzY3hMbmQzZHpJdWQyVmlMWEJzWVhSbWIzSnRMblJsYzNTQ0cz
ZDNkekl1ZDNkM01pNTMKK1pXSXRjR3hoZEdadmNtMHVkR1Z6ZElJYmQzZDNNaTUzZDNjeExuZGxZ
aTF3YkdGMFptOXliUzUwWlhOMGdoMTMKK2QzY3VkM2QzTG01dmRDMTNaV0l0Y0d4aGRHWnZjbTB1
ZEdWemRJSWVkM2QzTG5kM2R6SXVibTkwTFhkbFlpMXcKK2JHRjBabTl5YlM1MFpYTjBnaDUzZDNj
eExuZDNkeTV1YjNRdGQyVmlMWEJzWVhSbWIzSnRMblJsYzNTQ0huaHUKK0xTMXNkbVV0Tm14aFpD
NTNaV0l0Y0d4aGRHWnZjbTB1ZEdWemRJSWVkM2QzTG5kM2R6RXVibTkwTFhkbFlpMXcKK2JHRjBa
bTl5YlM1MFpYTjBnaDUzZDNjeUxuZDNkeTV1YjNRdGQyVmlMWEJzWVhSbWIzSnRMblJsYzNTQ0gz
ZDMKK2R6SXVkM2QzTWk1dWIzUXRkMlZpTFhCc1lYUm1iM0p0TG5SbGMzU0NIM2QzZHpJdWQzZDNN
UzV1YjNRdGQyVmkKK0xYQnNZWFJtYjNKdExuUmxjM1NDSDNkM2R6RXVkM2QzTVM1dWIzUXRkMlZp
TFhCc1lYUm1iM0p0TG5SbGMzU0MKK0gzZDNkekV1ZDNkM01pNXViM1F0ZDJWaUxYQnNZWFJtYjNK
dExuUmxjM1NDSW5odUxTMXNkbVV0Tm14aFpDNTMKK2QzY3VkMlZpTFhCc1lYUm1iM0p0TG5SbGMz
U0NJbmQzZHk1NGJpMHRiSFpsTFRac1lXUXVkMlZpTFhCc1lYUm0KK2IzSnRMblJsYzNTQ0luaHVM
UzFzZG1VdE5teGhaQzV1YjNRdGQyVmlMWEJzWVhSbWIzSnRMblJsYzNTQ0kzaHUKK0xTMXNkbVV0
Tm14aFpDNTNkM2N4TG5kbFlpMXdiR0YwWm05eWJTNTBaWE4wZ2lOM2QzY3lMbmh1TFMxc2RtVXQK
K05teGhaQzUzWldJdGNHeGhkR1p2Y20wdWRHVnpkSUlqZDNkM01TNTRiaTB0YkhabExUWnNZV1F1
ZDJWaUxYQnMKK1lYUm1iM0p0TG5SbGMzU0NJM2h1TFMxc2RtVXRObXhoWkM1M2QzY3lMbmRsWWkx
d2JHRjBabTl5YlM1MFpYTjAKK2dpWjRiaTB0YkhabExUWnNZV1F1ZDNkM0xtNXZkQzEzWldJdGNH
eGhkR1p2Y20wdWRHVnpkSUltZDNkM0xuaHUKK0xTMXNkbVV0Tm14aFpDNXViM1F0ZDJWaUxYQnNZ
WFJtYjNKdExuUmxjM1NDSjNodUxTMXNkbVV0Tm14aFpDNTMKK2QzY3hMbTV2ZEMxM1pXSXRjR3ho
ZEdadmNtMHVkR1Z6ZElJbmQzZDNNaTU0YmkwdGJIWmxMVFpzWVdRdWJtOTAKK0xYZGxZaTF3YkdG
MFptOXliUzUwWlhOMGdpZDNkM2N4TG5odUxTMXNkbVV0Tm14aFpDNXViM1F0ZDJWaUxYQnMKK1lY
Um1iM0p0TG5SbGMzU0NKM2h1TFMxc2RtVXRObXhoWkM1M2QzY3lMbTV2ZEMxM1pXSXRjR3hoZEda
dmNtMHUKK2RHVnpkSUlwZUc0dExXNDRhalprY3pVemJIZDNhM0p4YUhZeU9HRXVkMlZpTFhCc1lY
Um1iM0p0TG5SbGMzU0MKK0szaHVMUzFzZG1VdE5teGhaQzU0YmkwdGJIWmxMVFpzWVdRdWQyVmlM
WEJzWVhSbWIzSnRMblJsYzNTQ0xYaHUKK0xTMXVPR28yWkhNMU0yeDNkMnR5Y1doMk1qaGhMbTV2
ZEMxM1pXSXRjR3hoZEdadmNtMHVkR1Z6ZElJdGVHNHQKK0xXNDRhalprY3pVemJIZDNhM0p4YUhZ
eU9HRXVkM2QzTG5kbFlpMXdiR0YwWm05eWJTNTBaWE4wZ2kxM2QzY3UKK2VHNHRMVzQ0YWpaa2N6
VXpiSGQzYTNKeGFIWXlPR0V1ZDJWaUxYQnNZWFJtYjNKdExuUmxjM1NDTG5kM2R6RXUKK2VHNHRM
VzQ0YWpaa2N6VXpiSGQzYTNKeGFIWXlPR0V1ZDJWaUxYQnNZWFJtYjNKdExuUmxjM1NDTG5odUxT
MXUKK09HbzJaSE0xTTJ4M2QydHljV2gyTWpoaExuZDNkekV1ZDJWaUxYQnNZWFJtYjNKdExuUmxj
M1NDTG5kM2R6SXUKK2VHNHRMVzQ0YWpaa2N6VXpiSGQzYTNKeGFIWXlPR0V1ZDJWaUxYQnNZWFJt
YjNKdExuUmxjM1NDTG5odUxTMXUKK09HbzJaSE0xTTJ4M2QydHljV2gyTWpoaExuZDNkekl1ZDJW
aUxYQnNZWFJtYjNKdExuUmxjM1NDTDNodUxTMXMKK2RtVXRObXhoWkM1NGJpMHRiSFpsTFRac1lX
UXVibTkwTFhkbFlpMXdiR0YwWm05eWJTNTBaWE4wZ2pGNGJpMHQKK2JqaHFObVJ6TlROc2QzZHJj
bkZvZGpJNFlTNTNkM2N1Ym05MExYZGxZaTF3YkdGMFptOXliUzUwWlhOMGdqRjMKK2QzY3VlRzR0
TFc0NGFqWmtjelV6YkhkM2EzSnhhSFl5T0dFdWJtOTBMWGRsWWkxd2JHRjBabTl5YlM1MFpYTjAK
K2dqSjNkM2N4TG5odUxTMXVPR28yWkhNMU0yeDNkMnR5Y1doMk1qaGhMbTV2ZEMxM1pXSXRjR3ho
ZEdadmNtMHUKK2RHVnpkSUl5ZUc0dExXNDRhalprY3pVemJIZDNhM0p4YUhZeU9HRXVkM2QzTWk1
dWIzUXRkMlZpTFhCc1lYUm0KK2IzSnRMblJsYzNTQ01uaHVMUzF1T0dvMlpITTFNMngzZDJ0eWNX
aDJNamhoTG5kM2R6RXVibTkwTFhkbFlpMXcKK2JHRjBabTl5YlM1MFpYTjBnakozZDNjeUxuaHVM
UzF1T0dvMlpITTFNMngzZDJ0eWNXaDJNamhoTG01dmRDMTMKK1pXSXRjR3hoZEdadmNtMHVkR1Z6
ZElJMmVHNHRMVzQ0YWpaa2N6VXpiSGQzYTNKeGFIWXlPR0V1ZUc0dExXeDIKK1pTMDJiR0ZrTG5k
bFlpMXdiR0YwWm05eWJTNTBaWE4wZ2paNGJpMHRiSFpsTFRac1lXUXVlRzR0TFc0NGFqWmsKK2N6
VXpiSGQzYTNKeGFIWXlPR0V1ZDJWaUxYQnNZWFJtYjNKdExuUmxjM1NDT25odUxTMXNkbVV0Tm14
aFpDNTQKK2JpMHRiamhxTm1Sek5UTnNkM2RyY25Gb2RqSTRZUzV1YjNRdGQyVmlMWEJzWVhSbWIz
SnRMblJsYzNTQ09uaHUKK0xTMXVPR28yWkhNMU0yeDNkMnR5Y1doMk1qaGhMbmh1TFMxc2RtVXRO
bXhoWkM1dWIzUXRkMlZpTFhCc1lYUm0KK2IzSnRMblJsYzNTQ1FYaHVMUzF1T0dvMlpITTFNMngz
ZDJ0eWNXaDJNamhoTG5odUxTMXVPR28yWkhNMU0yeDMKK2QydHljV2gyTWpoaExuZGxZaTF3YkdG
MFptOXliUzUwWlhOMGdrVjRiaTB0YmpocU5tUnpOVE5zZDNkcmNuRm8KK2RqSTRZUzU0YmkwdGJq
aHFObVJ6TlROc2QzZHJjbkZvZGpJNFlTNXViM1F0ZDJWaUxYQnNZWFJtYjNKdExuUmwKK2MzUXdE
UVlKS29aSWh2Y05BUUVMQlFBRGdnRUJBSy9DNnN4cVhrbmcyM0lVQlR3aG9Jdi90cWx4Z3ZkaHpT
TXEKK0FHYVJyQUdaWXpnUklZV3lWNUlMUDNsbzlkaFppNmQwR2VzTDV6MkdUbWJVNWkvLzdXeDlt
bDRTVHI4NS8vZlEKKysxSlRvUHV4WEpxUmtqWUEyS1J2K1p3MkliTENYaFFSeWxYbmlEQmdqWWJh
WlNiLzRrVTJLZ2s5cExzNFlVMVgKKzVNbTJVRHdHTDJ1L0JEUkNWTnhUdG1IRlRrQUExbDRaRnpw
VUxNVVdlbTFLY0ZaRnpabGFLdEduVGpXWFBkakoKK2xZQ3JGVUtHOXFDbXd5SEJtZ2MwU2ExaFBM
eVVzaTJTOTBTQUFWOG52WVAxVVNJNXpaaXhPU080OUZ3SUlKNysKKzhTMmE2WnZIWHJneml4WjNV
ajNKZWtPZUpkREhXcFlJVXhyY2RWTjFSR0lZZk8vN2MxST0KIC0tLS0tRU5EIENFUlRJRklDQVRF
LS0tLS0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvY2kvYXp1cmUvUkVBRE1FLm1kIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9jaS9henVyZS9SRUFETUUubWQKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmFmZTUwMjFlZmNhCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9jaS9h
enVyZS9SRUFETUUubWQKQEAgLTAsMCArMSwyIEBACitUaGVzZSBhcmUgc3RlcCB0ZW1wbGF0ZXMg
Zm9yIEF6dXJlIFBpcGVsaW5lcywgdXNlZCBpbiBgLmF6dXJlLXBpcGVsaW5lcy55bWxgCitpbiB0
aGUgcm9vdCBvZiB0aGUgcmVwb3NpdG9yeS4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvY2kvYXp1cmUvYWZmZWN0ZWRfdGVzdHMu
eW1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9j
aS9henVyZS9hZmZlY3RlZF90ZXN0cy55bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAuLjgwNzZiYzM4Njk4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9jaS9henVyZS9hZmZlY3RlZF90ZXN0
cy55bWwKQEAgLTAsMCArMSwyNSBAQAorcGFyYW1ldGVyczoKKyAgY2hlY2tvdXRDb21taXQ6ICcn
CisgIGFmZmVjdGVkUmFuZ2U6ICdIRUFEXjEnCisgIGFydGlmYWN0TmFtZTogJycKKworc3RlcHM6
CistIHRlbXBsYXRlOiBjaGVja291dC55bWwKKy0gJHt7IGlmIG5lKHBhcmFtZXRlcnMuY2hlY2tv
dXRDb21taXQsICcnKSB9fToKKyAgLSBzY3JpcHQ6IGdpdCBjaGVja291dCAke3sgcGFyYW1ldGVy
cy5jaGVja291dENvbW1pdCB9fQorICAgIGRpc3BsYXlOYW1lOiAnQ2hlY2tvdXQgJHt7IHBhcmFt
ZXRlcnMuY2hlY2tvdXRDb21taXQgfX0nCistIHRlbXBsYXRlOiBwaXBfaW5zdGFsbC55bWwKKyAg
cGFyYW1ldGVyczoKKyAgICBwYWNrYWdlczogdmlydHVhbGVudgorLSB0ZW1wbGF0ZTogaW5zdGFs
bF9mb250cy55bWwKKy0gdGVtcGxhdGU6IGluc3RhbGxfY2VydHMueW1sCistIHRlbXBsYXRlOiBp
bnN0YWxsX3NhZmFyaS55bWwKKy0gdGVtcGxhdGU6IHVwZGF0ZV9ob3N0cy55bWwKKy0gdGVtcGxh
dGU6IHVwZGF0ZV9tYW5pZmVzdC55bWwKKy0gc2NyaXB0OiBub19wcm94eT0nKicgLi93cHQgcnVu
IC0teWVzIC0tbm8tcGF1c2UgLS1uby1mYWlsLW9uLXVuZXhwZWN0ZWQgLS1uby1yZXN0YXJ0LW9u
LXVuZXhwZWN0ZWQgLS1hZmZlY3RlZCAke3sgcGFyYW1ldGVycy5hZmZlY3RlZFJhbmdlIH19IC0t
bG9nLXdwdHJlcG9ydCAkKEJ1aWxkLkFydGlmYWN0U3RhZ2luZ0RpcmVjdG9yeSkvd3B0X3JlcG9y
dC5qc29uIC0tbG9nLXdwdHNjcmVlbnNob3QgJChCdWlsZC5BcnRpZmFjdFN0YWdpbmdEaXJlY3Rv
cnkpL3dwdF9zY3JlZW5zaG90LnR4dCAtLWNoYW5uZWwgcHJldmlldyBzYWZhcmkKKyAgZGlzcGxh
eU5hbWU6ICdSdW4gdGVzdHMnCistIHRhc2s6IFB1Ymxpc2hCdWlsZEFydGlmYWN0c0AxCisgIGRp
c3BsYXlOYW1lOiAnUHVibGlzaCByZXN1bHRzJworICBpbnB1dHM6CisgICAgYXJ0aWZhY3ROYW1l
OiAnJHt7IHBhcmFtZXRlcnMuYXJ0aWZhY3ROYW1lIH19JworICBjb25kaXRpb246IHN1Y2NlZWRl
ZE9yRmFpbGVkKCkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvY2kvYXp1cmUvY2hlY2tvdXQueW1sIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9jaS9henVyZS9jaGVja291dC55bWwK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjYxOGM1NzE0NjU5Ci0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy9jaS9henVyZS9jaGVja291dC55bWwKQEAgLTAsMCArMSw0IEBACitzdGVwczoKKy0g
Y2hlY2tvdXQ6IHNlbGYKKyAgZmV0Y2hEZXB0aDogNTAKKyAgc3VibW9kdWxlczogZmFsc2UKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvY2kvYXp1cmUvY2xlYW51cF93aW4xMC55bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2NpL2F6dXJlL2NsZWFudXBfd2luMTAueW1sCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5mNDk1YTBjNTU0NQotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvY2kvYXp1cmUvY2xlYW51cF93aW4xMC55bWwKQEAgLTAsMCArMSwxMTkgQEAKKyMgVGhpcyBp
cyBjbGVhbnVwIGZvciB1cGRhdGVfaG9zdHMueW1sIGFuZCBraWxsaW5nIGFsbCBFZGdlIGFuZCBX
ZWJEcml2ZXIKKyMgcHJvY2Vzc2VzIHRvIGxlYXZlIHRoZSBhZ2VudCBpbiBhIGNsZWFuIHN0YXRl
IGZvciB0aGUgbmV4dCBqb2IuIFRoaXMgaXMKKyMgbmVjZXNzYXJ5IGJlY2F1c2UgdGhlIFdpbmRv
d3MgMTAgYWdlbnRzIGFyZW4ndCByZXNldCBiZXR3ZWVuIGVhY2ggam9iLgorc3RlcHM6CistIHBv
d2Vyc2hlbGw6IHwKKyAgICBmdW5jdGlvbiBVbmluc3RhbGxFZGdlKCRlZGdlUGF0aCwgJHVuaW5z
dGFsbEFyZ3MpIHsKKyAgICAgICRleGl0Q29kZSA9IDAKKyAgICAgIHRyeSB7CisgICAgICAgIGNt
ZCAvYyB0YXNra2lsbCAvZiAvaW0gbXNlZGdlKiBgPiBudWwgMmA+IG51bAorICAgICAgICBjbWQg
L2MgdGFza2tpbGwgL2YgL2ltIHNldHVwLmV4ZSBgPiBudWwgMmA+IG51bAorICAgICAgICBpZiAo
VGVzdC1QYXRoICRlZGdlUGF0aCkgeworICAgICAgICAgICRpbnN0YWxsZXJQYXRoID0gR2V0LUNo
aWxkSXRlbSAtUEFUSCAkZWRnZVBhdGggLUZpbHRlciAic2V0dXAuZXhlIiAtUmVjdXJzZSB8IFNl
bGVjdCAtRmlyc3QgMSBGdWxsTmFtZQorICAgICAgICAgIGlmKC1ub3QoJGluc3RhbGxlclBhdGgg
LWVxICRudWwpIC1hbmQgKFRlc3QtUGF0aCAkaW5zdGFsbGVyUGF0aC5GdWxsTmFtZSkpIHsKKyAg
ICAgICAgICAgIFdyaXRlLUhvc3QgIlVuaW5zdGFsbDogJCgkaW5zdGFsbGVyUGF0aC5GdWxsTmFt
ZSkgJHVuaW5zdGFsbEFyZ3MiCisgICAgICAgICAgICAkc2V0dXAgPSBTdGFydC1Qcm9jZXNzICIk
KCRpbnN0YWxsZXJQYXRoLkZ1bGxOYW1lKSIgLUFyZ3VtZW50TGlzdCAkdW5pbnN0YWxsQXJncyAt
UGFzc1RocnUgLVdhaXQKKyAgICAgICAgICAgICRleGl0Q29kZSA9ICRzZXR1cC5FeGl0Q29kZQor
ICAgICAgICAgICAgaWYgKCRleGl0Q29kZSAtbmUgJGV4aXRDb2RlU3VjY2VzcykgeworICAgICAg
ICAgICAgICBXcml0ZS1Ib3N0ICJVbmluc3RhbGwgZmFpbGVkIHdpdGggRXhpdENvZGU9JGV4aXRD
b2RlIgorICAgICAgICAgICAgfQorICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBXcml0
ZS1Ib3N0ICJGYWlsZWQgdG8gZmluZCBzZXR1cC5leGUgdW5kZXIgJGVkZ2VQYXRoIgorICAgICAg
ICAgIH0KKyAgICAgICAgfQorICAgICAgfSBjYXRjaCBbRXhjZXB0aW9uXSB7CisgICAgICAgIFdy
aXRlLUhvc3QgIkZhaWxlZCB0byB1bmluc3RhbGwgRWRnZSBmcm9tICRlZGdlUGF0aC4gRVJST1I9
ICQoJF8uRXhjZXB0aW9uLk1lc3NhZ2UpIiAtRm9yZWdyb3VuZENvbG9yIFJlZAorICAgICAgfQor
ICAgICAgcmV0dXJuICRleGl0Q29kZQorICAgIH0KKworICAgIGZ1bmN0aW9uIElzRWRnZVJ1bm5p
bmcoKSB7CisgICAgICByZXR1cm4gKEdldC1Qcm9jZXNzIHwgV2hlcmUtT2JqZWN0IHsgJF8uTmFt
ZSAtZXEgIm1zZWRnZSIgfSkuTGVuZ3RoIC1ndCAwCisgICAgfQorCisgICAgIyBVbmluc3RhbGwg
ZXhpdCBjb2RlIHN1Y2Nlc3MgZm9yIEVkZ2UKKyAgICAkZXhpdENvZGVTdWNjZXNzID0gMTkKKyAg
ICAjIHJlc3RvcmUgaG9zdHMgZmlsZQorICAgICRob3N0RmlsZSA9ICIkZW52OnN5c3RlbXJvb3Rc
U3lzdGVtMzJcZHJpdmVyc1xldGNcaG9zdHMiCisgICAgQ29weS1JdGVtIC1QYXRoICIkaG9zdEZp
bGUuYmFjayIgLURlc3RpbmF0aW9uICRob3N0RmlsZSAtRm9yY2UKKworICAgICMgdW5pbnN0YWxs
IEVkZ2UKKyAgICAkc3RhYmxlRXhpdENvZGUgPSBVbmluc3RhbGxFZGdlICIkZW52OmxvY2FsYXBw
ZGF0YVxNaWNyb3NvZnRcRWRnZSIgIi0tdW5pbnN0YWxsIC0tZm9yY2UtdW5pbnN0YWxsIC0tdmVy
Ym9zZS1sb2dnaW5nIgorICAgICMgdW5pbnN0YWxsIEVkZ2UgQmV0YSBjaGFubmVsCisgICAgJGJl
dGFFeGl0Q29kZSA9IFVuaW5zdGFsbEVkZ2UgIiRlbnY6c3lzdGVtZHJpdmVcUHJvZ3JhbSBGaWxl
cyAoeDg2KVxNaWNyb3NvZnRcRWRnZSBCZXRhIiAiLS11bmluc3RhbGwgLS1tc2VkZ2UtYmV0YSAt
LWZvcmNlLXVuaW5zdGFsbCAtLXZlcmJvc2UtbG9nZ2luZyIKKyAgICAjIHVuaW5zdGFsbCBFZGdl
IERldiBjaGFubmVsCisgICAgJGRldkV4aXRDb2RlID0gVW5pbnN0YWxsRWRnZSAiJGVudjpzeXN0
ZW1kcml2ZVxQcm9ncmFtIEZpbGVzICh4ODYpXE1pY3Jvc29mdFxFZGdlIERldiIgIi0tdW5pbnN0
YWxsIC0tbXNlZGdlLWRldiAtLWZvcmNlLXVuaW5zdGFsbCAtLXZlcmJvc2UtbG9nZ2luZyIKKyAg
ICAjIHVuaW5zdGFsbCBFZGdlIENhbmFyeSBjaGFubmVsCisgICAgJGNhbmFyeUV4aXRDb2RlID0g
VW5pbnN0YWxsRWRnZSAiJGVudjpsb2NhbGFwcGRhdGFcTWljcm9zb2Z0XEVkZ2UgU3hTIiAiLS11
bmluc3RhbGwgLS1tc2VkZ2Utc3hzIC0tZm9yY2UtdW5pbnN0YWxsIC0tdmVyYm9zZS1sb2dnaW5n
IgorCisgICAgIyBDaGVjayBpZiBFZGdlIGlzIHN0aWxsIHJ1bm5pbmcgYW5kIHRyeSB0byBjbG9z
ZSBpdC4KKyAgICAjIElmIHdlIGZhaWwgdG8gY2xvc2UgaXQsIHRoZW4gcmVib290IHRoZSBzeXN0
ZW0KKyAgICAjIGFzIHRoaXMgbGluZ2VyaW5nIHByb2Nlc3MgY2FuIGxlYWQgdG8gcnVuIGluc3Rh
YmlsaXR5LgorICAgIGlmIChJc0VkZ2VSdW5uaW5nKSB7CisgICAgICBXcml0ZS1Ib3N0ICJGb3Vu
ZCBFZGdlIHByb2Nlc3MgcnVubmluZywgdHJ5IHRvIGNsb3NlIGl0LiIKKyAgICAgIFN0b3AtUHJv
Y2VzcyAtTmFtZSAibXNlZGdlIiAtRm9yY2UKKyAgICAgIGlmIChJc0VkZ2VSdW5uaW5nKSB7Cisg
ICAgICAgIFdyaXRlLUhvc3QgIkZhaWxlZCB0byBjbG9zZSBydW5uaW5nIEVkZ2UgcHJvY2Vzcywg
cmVib290IHRoZSBzeXN0ZW0uIiAtRm9yZWdyb3VuZENvbG9yIFJlZAorICAgICAgICBSZXN0YXJ0
LUNvbXB1dGVyIC1Gb3JjZQorICAgICAgfQorICAgIH0KKyAgICBpZiAoKCRzdGFibGVFeGl0Q29k
ZSAtbmUgJGV4aXRDb2RlU3VjY2VzcykgLWFuZAorICAgICAgICAoJGJldGFFeGl0Q29kZSAtbmUg
JGV4aXRDb2RlU3VjY2VzcykgLWFuZAorICAgICAgICAoJGRldkV4aXRDb2RlIC1uZSAkZXhpdENv
ZGVTdWNjZXNzKSAtYW5kCisgICAgICAgICgkY2FuYXJ5RXhpdENvZGUgLW5lICRleGl0Q29kZVN1
Y2Nlc3MpKSB7CisgICAgICBDb3B5LUl0ZW0gLVBhdGggIiRlbnY6dGVtcFwqZWRnZSoubG9nIiAt
RGVzdGluYXRpb24gJChCdWlsZC5BcnRpZmFjdFN0YWdpbmdEaXJlY3RvcnkpIC1Gb3JjZQorICAg
ICAgVGhyb3cgIkZhaWxlZCB0byB1bmluc3RhbGwgRWRnZS4iCisgICAgfSBlbHNlIHsKKyAgICAg
IFdyaXRlLUhvc3QgIlN1Y2Nlc3NmdWxseSB1bmluc3RhbGxlZCBhbGwgRWRnZSBjaGFubmVscyIK
KyAgICB9CisgIGRpc3BsYXlOYW1lOiAnUmVzdG9yZSBob3N0cyBmaWxlIGFuZCBjbGVhbnVwIHRl
c3QgbWFjaGluZScKKyAgY29uZGl0aW9uOiBhbHdheXMoKQorICBlcnJvckFjdGlvblByZWZlcmVu
Y2U6IHNpbGVudGx5Q29udGludWUKKyAgaWdub3JlTEFTVEVYSVRDT0RFOiB0cnVlCisKKy0gcG93
ZXJzaGVsbDogfAorICAgICRjaGFubmVscyA9IEAoJ0VkZ2UnLCAnRWRnZSBCZXRhJywgJ0VkZ2Ug
RGV2JywgJ0VkZ2UgU3hTJykKKyAgICBmb3JlYWNoICgkY2hhbm5lbCBpbiAkY2hhbm5lbHMpIHsK
KyAgICAgIFdyaXRlLUhvc3QgIkRlbGV0aW5nIHJlZ2tleXMgZm9yICRjaGFubmVsIGZvbGRlciIK
KyAgICAgIFJlbW92ZS1JdGVtIC1QYXRoICJIS0xNOlxTT0ZUV0FSRVxXT1c2NDMyTm9kZVxNaWNy
b3NvZnRcV2luZG93c1xDdXJyZW50VmVyc2lvblxVbmluc3RhbGxcTWljcm9zb2Z0ICRjaGFubmVs
IiAtUmVjdXJzZSAtRm9yY2UgLUVycm9yQWN0aW9uIFNpbGVudGx5Q29udGludWUKKyAgICAgIFJl
bW92ZS1JdGVtIC1QYXRoICJIS0NVOlxTT0ZUV0FSRVxNaWNyb3NvZnRcV2luZG93c1xDdXJyZW50
VmVyc2lvblxVbmluc3RhbGxcTWljcm9zb2Z0ICRjaGFubmVsIiAtUmVjdXJzZSAtRm9yY2UgLUVy
cm9yQWN0aW9uIFNpbGVudGx5Q29udGludWUKKyAgICAgIFJlbW92ZS1JdGVtIC1QYXRoICJIS0xN
OlNPRlRXQVJFXFdPVzY0MzJOb2RlXE1pY3Jvc29mdFxFZGdlVXBkYXRlIiAtUmVjdXJzZSAtRm9y
Y2UgLUVycm9yQWN0aW9uIFNpbGVudGx5Q29udGludWUKKyAgICAgIFJlbW92ZS1JdGVtIC1QYXRo
ICJIS0xNOlNPRlRXQVJFXFdPVzY0MzJOb2RlXE1pY3Jvc29mdFwkY2hhbm5lbCIgLVJlY3Vyc2Ug
LUZvcmNlIC1FcnJvckFjdGlvbiBTaWxlbnRseUNvbnRpbnVlCisgICAgICBSZW1vdmUtSXRlbSAt
UGF0aCAiSEtMTTpTT0ZUV0FSRVxNaWNyb3NvZnRcRWRnZVVwZGF0ZSIgLVJlY3Vyc2UgLUZvcmNl
IC1FcnJvckFjdGlvbiBTaWxlbnRseUNvbnRpbnVlCisgICAgICBSZW1vdmUtSXRlbSAtUGF0aCAi
SEtMTTpTT0ZUV0FSRVxNaWNyb3NvZnRcJGNoYW5uZWwiIC1SZWN1cnNlIC1Gb3JjZSAtRXJyb3JB
Y3Rpb24gU2lsZW50bHlDb250aW51ZQorICAgICAgUmVtb3ZlLUl0ZW0gLVBhdGggIkhLQ1U6U09G
VFdBUkVcTWljcm9zb2Z0XEVkZ2VVcGRhdGUiIC1SZWN1cnNlIC1Gb3JjZSAtRXJyb3JBY3Rpb24g
U2lsZW50bHlDb250aW51ZQorICAgICAgUmVtb3ZlLUl0ZW0gLVBhdGggIkhLQ1U6U09GVFdBUkVc
TWljcm9zb2Z0XCRjaGFubmVsIiAtUmVjdXJzZSAtRm9yY2UgLUVycm9yQWN0aW9uIFNpbGVudGx5
Q29udGludWUKKworICAgICAgV3JpdGUtSG9zdCAiRGVsZXRpbmcgYWxsIHJlbWFpbmluZyBFZGdl
IGZvbGRlcnMiCisgICAgICBSZW1vdmUtSXRlbSAtUGF0aCAiJGVudjpsb2NhbGFwcGRhdGFcTWlj
cm9zb2Z0XEVkZ2VVcGRhdGUiIC1SZWN1cnNlIC1Gb3JjZSAtRXJyb3JBY3Rpb24gU2lsZW50bHlD
b250aW51ZQorICAgICAgJGVkZ2VQYXRoID0gIiRlbnY6bG9jYWxhcHBkYXRhXE1pY3Jvc29mdFwk
Y2hhbm5lbCIKKyAgICAgIFJlbW92ZS1JdGVtIC1QYXRoICRlZGdlUGF0aCAtUmVjdXJzZSAtRm9y
Y2UgLUVycm9yQWN0aW9uIFNpbGVudGx5Q29udGludWUKKyAgICAgICRlZGdlUGF0aCA9ICIkZW52
OnN5c3RlbWRyaXZlXFByb2dyYW0gRmlsZXMgKHg4NilcTWljcm9zb2Z0XCRjaGFubmVsIgorICAg
ICAgUmVtb3ZlLUl0ZW0gLVBhdGggJGVkZ2VQYXRoIC1SZWN1cnNlIC1Gb3JjZSAtRXJyb3JBY3Rp
b24gU2lsZW50bHlDb250aW51ZQorICAgIH0KKyAgZGlzcGxheU5hbWU6ICdDbGVhbnVwIEVkZ2Ug
cmVnaXN0cnknCisgIGNvbmRpdGlvbjogYWx3YXlzKCkKKyAgZXJyb3JBY3Rpb25QcmVmZXJlbmNl
OiBzaWxlbnRseUNvbnRpbnVlCisgIGlnbm9yZUxBU1RFWElUQ09ERTogdHJ1ZQorCistIHBvd2Vy
c2hlbGw6IHwKKyAgICAoJHdlYmRyaXZlckZpbGVzID0gR2V0LUNoaWxkSXRlbSAtUEFUSCAiJGVu
djpzeXN0ZW1kcml2ZVwqbXNlZGdlZHJpdmVyLmV4ZSIgLVJlY3Vyc2UpID4kbnVsbCAyPiRudWxs
CisgICAgV3JpdGUtSG9zdCAiRm91bmQgJCgkd2ViZHJpdmVyRmlsZXMuQ291bnQpIG1zZWRnZWRy
aXZlciBiaW5hcmllcyIKKyAgICBmb3JlYWNoICgkZmlsZSBpbiAkd2ViZHJpdmVyRmlsZXMpIHsK
KyAgICAgIFdyaXRlLUhvc3QgIkRlbGV0aW5nICRmaWxlIgorICAgICAgUmVtb3ZlLUl0ZW0gLVBh
dGggJGZpbGUuRnVsbE5hbWUgLUZvcmNlIC1FcnJvckFjdGlvbiBTaWxlbnRseUNvbnRpbnVlCisg
ICAgfQorICAgICgkZHJpdmVyTm90ZXNGb2xkZXIgPSBHZXQtQ2hpbGRJdGVtIC1QQVRIICIkZW52
OnN5c3RlbWRyaXZlXCpEcml2ZXJfTm90ZXMiIC1SZWN1cnNlKSA+JG51bGwgMj4kbnVsbAorICAg
IGZvcmVhY2ggKCRmaWxlIGluICRkcml2ZXJOb3Rlc0ZvbGRlcikgeworICAgICAgV3JpdGUtSG9z
dCAiRGVsZXRpbmcgJGZpbGUgZm9sZGVyIgorICAgICAgUmVtb3ZlLUl0ZW0gLVBhdGggJGZpbGUu
RnVsbE5hbWUgLVJlY3Vyc2UgLUZvcmNlIC1FcnJvckFjdGlvbiBTaWxlbnRseUNvbnRpbnVlCisg
ICAgfQorICAgICgkemlwRmlsZSA9IEdldC1DaGlsZEl0ZW0gLVBBVEggIiRlbnY6c3lzdGVtZHJp
dmVcKmVkZ2Vkcml2ZXJfKi56aXAiIC1SZWN1cnNlKSA+JG51bGwgMj4kbnVsbAorICAgIGZvcmVh
Y2ggKCRmaWxlIGluICR6aXBGaWxlKSB7CisgICAgICBXcml0ZS1Ib3N0ICJEZWxldGluZyAkZmls
ZSBmaWxlIgorICAgICAgUmVtb3ZlLUl0ZW0gLVBhdGggJGZpbGUuRnVsbE5hbWUgLUZvcmNlIC1F
cnJvckFjdGlvbiBTaWxlbnRseUNvbnRpbnVlCisgICAgfQorICBkaXNwbGF5TmFtZTogJ0NsZWFu
dXAgRWRnZSBkcml2ZXIgYmluYXJpZXMnCisgIGNvbmRpdGlvbjogYWx3YXlzKCkKKyAgZXJyb3JB
Y3Rpb25QcmVmZXJlbmNlOiBzaWxlbnRseUNvbnRpbnVlCisgIGlnbm9yZUxBU1RFWElUQ09ERTog
dHJ1ZQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvY2kvYXp1cmUvY29tLmFwcGxl
LlNhZmFyaS5wbGlzdCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvY2kvYXp1cmUvY29tLmFwcGxlLlNhZmFyaS5wbGlzdApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMC4uMTIyMDgwOTcyYzkKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2NpL2F6dXJl
L2NvbS5hcHBsZS5TYWZhcmkucGxpc3QKQEAgLTAsMCArMSw4IEBACis8P3htbCB2ZXJzaW9uPSIx
LjAiIGVuY29kaW5nPSJVVEYtOCI/PgorPCFET0NUWVBFIHBsaXN0IFBVQkxJQyAiLS8vQXBwbGUv
L0RURCBQTElTVCAxLjAvL0VOIiAiaHR0cDovL3d3dy5hcHBsZS5jb20vRFREcy9Qcm9wZXJ0eUxp
c3QtMS4wLmR0ZCI+Cis8cGxpc3QgdmVyc2lvbj0iMS4wIj4KKzxkaWN0PgorCTxrZXk+QWxsb3dS
ZW1vdGVBdXRvbWF0aW9uPC9rZXk+CisJPHRydWUvPgorPC9kaWN0PgorPC9wbGlzdD4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
Y2kvYXp1cmUvZnlpX2hvb2sueW1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy9jaS9henVyZS9meWlfaG9vay55bWwKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAuLmYwMmYzY2Q4MjI0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9jaS9henVyZS9m
eWlfaG9vay55bWwKQEAgLTAsMCArMSwxOSBAQAorIyBUaGlzIGpvYiBpcyB1c2VkIHRvIGdldCBh
IHJ1biBpbnRvIHdwdC5meWkgYW5kIHN0YWdpbmcud3B0LmZ5aSwgYnkgbm90aWZ5aW5nCisjIHRo
ZW0gd2l0aCB0aGUgYnVpbGQgbnVtYmVyIGFuZCBhcnRpZmFjdCB0byB1c2UuCisKK3BhcmFtZXRl
cnM6CisgIGRlcGVuZHNPbjogJycKKyAgYXJ0aWZhY3ROYW1lOiAnJworCitqb2JzOgorLSBqb2I6
ICR7eyBwYXJhbWV0ZXJzLmRlcGVuZHNPbiB9fV9ob29rCisgIGRpc3BsYXlOYW1lOiAnd3B0LmZ5
aSBob29rOiAke3sgcGFyYW1ldGVycy5hcnRpZmFjdE5hbWUgfX0nCisgIGRlcGVuZHNPbjogJHt7
IHBhcmFtZXRlcnMuZGVwZW5kc09uIH19CisgIHBvb2w6CisgICAgdm1JbWFnZTogJ3VidW50dS0x
OC4wNCcKKyAgc3RlcHM6CisgIC0gY2hlY2tvdXQ6IG5vbmUKKyAgLSBzY3JpcHQ6IGN1cmwgLWYg
LXMgLVMgLWQgImFydGlmYWN0PSR7eyBwYXJhbWV0ZXJzLmFydGlmYWN0TmFtZSB9fSIgLVggUE9T
VCBodHRwczovL3dwdC5meWkvYXBpL2NoZWNrcy9henVyZS8kKEJ1aWxkLkJ1aWxkSWQpCisgICAg
ZGlzcGxheU5hbWU6ICdJbnZva2Ugd3B0LmZ5aSBob29rJworICAtIHNjcmlwdDogY3VybCAtZiAt
cyAtUyAtZCAiYXJ0aWZhY3Q9JHt7IHBhcmFtZXRlcnMuYXJ0aWZhY3ROYW1lIH19IiAtWCBQT1NU
IGh0dHBzOi8vc3RhZ2luZy53cHQuZnlpL2FwaS9jaGVja3MvYXp1cmUvJChCdWlsZC5CdWlsZElk
KQorICAgIGRpc3BsYXlOYW1lOiAnSW52b2tlIHN0YWdpbmcud3B0LmZ5aSBob29rJwpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9j
aS9henVyZS9pbnN0YWxsX2NlcnRzLnltbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvY2kvYXp1cmUvaW5zdGFsbF9jZXJ0cy55bWwKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjU2ODIxOTliMzg3Ci0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9j
aS9henVyZS9pbnN0YWxsX2NlcnRzLnltbApAQCAtMCwwICsxLDkgQEAKK3N0ZXBzOgorLSBzY3Jp
cHQ6IHwKKyAgICAjIGh0dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxhdGZvcm0tdGVzdHMvcmVzdWx0
cy1jb2xsZWN0aW9uL2Jsb2IvbWFzdGVyL3NyYy9zY3JpcHRzL3RydXN0LXJvb3QtY2Euc2gKKyAg
ICBzdWRvIHNlY3VyaXR5IGFkZC10cnVzdGVkLWNlcnQgLWQgLXIgdHJ1c3RSb290IC1rIC9MaWJy
YXJ5L0tleWNoYWlucy9TeXN0ZW0ua2V5Y2hhaW4gdG9vbHMvY2VydHMvY2FjZXJ0LnBlbQorICBk
aXNwbGF5TmFtZTogJ0luc3RhbGwgd2ViLXBsYXRmb3JtLnRlc3QgY2VydGlmaWNhdGUgKG1hY09T
KScKKyAgY29uZGl0aW9uOiBhbmQoc3VjY2VlZGVkKCksIGVxKHZhcmlhYmxlc1snQWdlbnQuT1Mn
XSwgJ0RhcndpbicpKQorLSBzY3JpcHQ6IGNlcnR1dGlsIOKAk2FkZHN0b3JlIC1lbnRlcnByaXNl
IOKAk2YgIlJvb3QiIHRvb2xzXGNlcnRzXGNhY2VydC5wZW0KKyAgZGlzcGxheU5hbWU6ICdJbnN0
YWxsIHdlYi1wbGF0Zm9ybS50ZXN0IGNlcnRpZmljYXRlIChXaW5kb3dzKScKKyAgY29uZGl0aW9u
OiBhbmQoc3VjY2VlZGVkKCksIGVxKHZhcmlhYmxlc1snQWdlbnQuT1MnXSwgJ1dpbmRvd3NfTlQn
KSkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvY2kvYXp1cmUvaW5zdGFsbF9jaHJvbWUueW1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9jaS9henVyZS9pbnN0YWxsX2Nocm9tZS55
bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjZiZDVjMjMzNGFkCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy9jaS9henVyZS9pbnN0YWxsX2Nocm9tZS55bWwKQEAgLTAsMCArMSw2IEBACitz
dGVwczoKKyMgVGhpcyBpcyBlcXVpdmFsZW50IHRvIGBIb21lYnJldy9ob21lYnJldy1jYXNrLXZl
cnNpb25zL2dvb2dsZS1jaHJvbWUtZGV2YCwKKyMgYnV0IHRoZSByYXcgVVJMIGlzIHVzZWQgdG8g
YnlwYXNzIGNhY2hpbmcuCistIHNjcmlwdDogSE9NRUJSRVdfTk9fQVVUT19VUERBVEU9MSBicmV3
IGNhc2sgaW5zdGFsbCBodHRwczovL3Jhdy5naXRodWJ1c2VyY29udGVudC5jb20vSG9tZWJyZXcv
aG9tZWJyZXctY2Fzay12ZXJzaW9ucy9tYXN0ZXIvQ2Fza3MvZ29vZ2xlLWNocm9tZS1kZXYucmIK
KyAgZGlzcGxheU5hbWU6ICdJbnN0YWxsIENocm9tZSBEZXYnCisgIGNvbmRpdGlvbjogYW5kKHN1
Y2NlZWRlZCgpLCBlcSh2YXJpYWJsZXNbJ0FnZW50Lk9TJ10sICdEYXJ3aW4nKSkKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvY2kv
YXp1cmUvaW5zdGFsbF9lZGdlLnltbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvY2kvYXp1cmUvaW5zdGFsbF9lZGdlLnltbApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uZTRjNDI1YWI3YTAKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2NpL2F6
dXJlL2luc3RhbGxfZWRnZS55bWwKQEAgLTAsMCArMSw0MSBAQAorcGFyYW1ldGVyczoKKyAgY2hh
bm5lbDogZGV2CisKKyMgU2hvdWxkIG1hdGNoIGh0dHBzOi8vd2ViLXBsYXRmb3JtLXRlc3RzLm9y
Zy9ydW5uaW5nLXRlc3RzL2Nocm9tZS5odG1sCisjIEp1c3QgcmVwbGFjZSBjaHJvbWUgd2l0aCBl
ZGdlY2hyb21pdW0KK3N0ZXBzOgorLSAke3sgaWYgZXEocGFyYW1ldGVycy5jaGFubmVsLCAnY2Fu
YXJ5JykgfX06CisgIC0gcG93ZXJzaGVsbDogfAorICAgICAgJGVkZ2VJbnN0YWxsZXJOYW1lID0g
J01pY3Jvc29mdEVkZ2VTZXR1cC5leGUnCisgICAgICAjIExpbmsgdG8gQ2FuYXJ5IGNoYW5uZWwg
aW5zdGFsbGVyCisgICAgICBTdGFydC1CaXRzVHJhbnNmZXIgLVNvdXJjZSAnaHR0cHM6Ly9nby5t
aWNyb3NvZnQuY29tL2Z3bGluay8/bGlua2lkPTIwODQ2NDkmQ2hhbm5lbD1DYW5hcnkmbGFuZ3Vh
Z2U9ZW4tdXMnIC1EZXN0aW5hdGlvbiBNaWNyb3NvZnRFZGdlU2V0dXAuZXhlCisgICAgICBpZiAo
LW5vdCAoVGVzdC1QYXRoICRlZGdlSW5zdGFsbGVyTmFtZSkpIHsKKyAgICAgICAgVGhyb3cgIkZh
aWxlZCB0byBkb3dubG9hZCBFZGdlIGluc3RhbGxlciB0byAkZWRnZUluc3RhbGxlck5hbWUuIgor
ICAgICAgfQorICAgICAgY21kIC9jIFNUQVJUIC9XQUlUICRlZGdlSW5zdGFsbGVyTmFtZSAvc2ls
ZW50IC9pbnN0YWxsCisgICAgICAkZWRnZVBhdGggPSAiJGVudjpsb2NhbGFwcGRhdGFcTWljcm9z
b2Z0XEVkZ2UgU3hTXEFwcGxpY2F0aW9uIgorICAgICAgaWYgKFRlc3QtUGF0aCAkZWRnZVBhdGgp
IHsKKyAgICAgICAgV3JpdGUtSG9zdCAiIyN2c29bdGFzay5wcmVwZW5kcGF0aF0kZWRnZVBhdGgi
CisgICAgICAgIFdyaXRlLUhvc3QgIkVkZ2UgQ2FuYXJ5IGluc3RhbGxlZCBhdCAkZWRnZVBhdGgu
IgorICAgICAgICAoR2V0LUl0ZW0gLVBhdGggIiRlZGdlUGF0aFxtc2VkZ2UuZXhlIikuVmVyc2lv
bkluZm8gfCBGb3JtYXQtTGlzdAorICAgICAgfSBlbHNlIHsKKyAgICAgICAgQ29weS1JdGVtIC1Q
YXRoICIkZW52OnRlbXBcKmVkZ2UqLmxvZyIgLURlc3RpbmF0aW9uICQoQnVpbGQuQXJ0aWZhY3RT
dGFnaW5nRGlyZWN0b3J5KSAgLUZvcmNlCisgICAgICAgIFRocm93ICJGYWlsZWQgdG8gaW5zdGFs
bCBFZGdlIENhbmFyeSBhdCAkZWRnZVBhdGgiCisgICAgICB9CisgICAgZGlzcGxheU5hbWU6ICdJ
bnN0YWxsIEVkZ2UgQ2FuYXJ5JworLSAke3sgaWYgZXEocGFyYW1ldGVycy5jaGFubmVsLCAnZGV2
JykgfX06CisgIC0gcG93ZXJzaGVsbDogfAorICAgICAgJGVkZ2VJbnN0YWxsZXJOYW1lID0gJ01p
Y3Jvc29mdEVkZ2VTZXR1cC5leGUnCisgICAgICAjIExpbmsgdG8gRGV2IGNoYW5uZWwgaW5zdGFs
bGVyCisgICAgICBTdGFydC1CaXRzVHJhbnNmZXIgLVNvdXJjZSAnaHR0cHM6Ly9nby5taWNyb3Nv
ZnQuY29tL2Z3bGluay8/bGlua2lkPTIwNjkzMjQmQ2hhbm5lbD1EZXYmbGFuZ3VhZ2U9ZW4tdXMn
IC1EZXN0aW5hdGlvbiBNaWNyb3NvZnRFZGdlU2V0dXAuZXhlCisgICAgICBjbWQgL2MgU1RBUlQg
L1dBSVQgJGVkZ2VJbnN0YWxsZXJOYW1lIC9zaWxlbnQgL2luc3RhbGwKKyAgICAgICRlZGdlUGF0
aCA9ICIkZW52OnN5c3RlbWRyaXZlXFByb2dyYW0gRmlsZXMgKHg4NilcTWljcm9zb2Z0XEVkZ2Ug
RGV2XEFwcGxpY2F0aW9uIgorICAgICAgaWYgKFRlc3QtUGF0aCAkZWRnZVBhdGgpIHsKKyAgICAg
ICAgV3JpdGUtSG9zdCAiIyN2c29bdGFzay5wcmVwZW5kcGF0aF0kZWRnZVBhdGgiCisgICAgICAg
IFdyaXRlLUhvc3QgIkVkZ2UgQ2FuYXJ5IGluc3RhbGxlZCBhdCAkZWRnZVBhdGguIgorICAgICAg
ICAoR2V0LUl0ZW0gLVBhdGggIiRlZGdlUGF0aFxtc2VkZ2UuZXhlIikuVmVyc2lvbkluZm8gfCBG
b3JtYXQtTGlzdAorICAgICAgfSBlbHNlIHsKKyAgICAgICAgQ29weS1JdGVtIC1QYXRoICIkZW52
OnRlbXBcKmVkZ2UqLmxvZyIgLURlc3RpbmF0aW9uICQoQnVpbGQuQXJ0aWZhY3RTdGFnaW5nRGly
ZWN0b3J5KSAtRm9yY2UKKyAgICAgICAgVGhyb3cgIkZhaWxlZCB0byBpbnN0YWxsIEVkZ2UgRGV2
IGF0ICRlZGdlUGF0aCIKKyAgICAgIH0KKyAgICBkaXNwbGF5TmFtZTogJ0luc3RhbGwgRWRnZSBE
ZXYnCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL2NpL2F6dXJlL2luc3RhbGxfZmlyZWZveC55bWwgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2NpL2F6dXJlL2luc3RhbGxfZmlyZWZv
eC55bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmRlNmQwMzM1ZjIy
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy9jaS9henVyZS9pbnN0YWxsX2ZpcmVmb3gueW1sCkBAIC0wLDAgKzEsNiBA
QAorc3RlcHM6CisjIFRoaXMgaXMgZXF1aXZhbGVudCB0byBgSG9tZWJyZXcvaG9tZWJyZXctY2Fz
ay12ZXJzaW9ucy9maXJlZm94LW5pZ2h0bHlgLAorIyBidXQgdGhlIHJhdyBVUkwgaXMgdXNlZCB0
byBieXBhc3MgY2FjaGluZy4KKy0gc2NyaXB0OiBIT01FQlJFV19OT19BVVRPX1VQREFURT0xIGJy
ZXcgY2FzayBpbnN0YWxsIGh0dHBzOi8vcmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbS9Ib21lYnJl
dy9ob21lYnJldy1jYXNrLXZlcnNpb25zL21hc3Rlci9DYXNrcy9maXJlZm94LW5pZ2h0bHkucmIK
KyAgZGlzcGxheU5hbWU6ICdJbnN0YWxsIEZpcmVmb3ggTmlnaHRseScKKyAgY29uZGl0aW9uOiBh
bmQoc3VjY2VlZGVkKCksIGVxKHZhcmlhYmxlc1snQWdlbnQuT1MnXSwgJ0RhcndpbicpKQpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy9jaS9henVyZS9pbnN0YWxsX2ZvbnRzLnltbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvY2kvYXp1cmUvaW5zdGFsbF9mb250cy55bWwKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjM0OGViNzQ1NGUwCi0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy9jaS9henVyZS9pbnN0YWxsX2ZvbnRzLnltbApAQCAtMCwwICsxLDUgQEAKK3N0ZXBzOgorIyBJ
bnN0YWxsaWcgQWhlbSBpbiAvTGlicmFyeS9Gb250cyBpbnN0ZWFkIG9mIHVzaW5nIC0taW5zdGFs
bC1mb250cyBpcyBhCisjIHdvcmthcm91bmQgZm9yIGh0dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxh
dGZvcm0tdGVzdHMvd3B0L2lzc3Vlcy8xMzgwMy4KKy0gc2NyaXB0OiBzdWRvIGNwIGZvbnRzL0Fo
ZW0udHRmIC9MaWJyYXJ5L0ZvbnRzCisgIGRpc3BsYXlOYW1lOiAnSW5zdGFsbCBBaGVtIGZvbnQn
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL2NpL2F6dXJlL2luc3RhbGxfcHl0aG9uLnltbCBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvY2kvYXp1cmUvaW5zdGFsbF9weXRob24ueW1s
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi42NTg1MjM5YmM4YwotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvY2kvYXp1cmUvaW5zdGFsbF9weXRob24ueW1sCkBAIC0wLDAgKzEsMTUgQEAKK3N0
ZXBzOgorLSBwb3dlcnNoZWxsOiB8CisgICAgU3RhcnQtQml0c1RyYW5zZmVyIC1Tb3VyY2UgaHR0
cHM6Ly93d3cucHl0aG9uLm9yZy9mdHAvcHl0aG9uLzIuNy4xNS9weXRob24tMi43LjE1LmFtZDY0
Lm1zaSAtRGVzdGluYXRpb24gcHl0aG9uLm1zaQorICAgICRoYXNoID0gKEdldC1GaWxlSGFzaCBw
eXRob24ubXNpKS5IYXNoLlRvTG93ZXIoKQorICAgICRleHBlY3RlZEhhc2ggPSAiNWU4NWYzYzRj
MjA5ZGU5ODQ4MGFjYmYyYmEyZTcxYTkwN2ZkNTU2N2E4MzhhZDRiNjc0OGM3NmRlYjI4NmFkNyIK
KyAgICBpZiAoJGhhc2guRXF1YWxzKCRleHBlY3RlZEhhc2gpKSB7CisgICAgICBXcml0ZS1Ib3N0
ICJweXRob24ubXNpIGhhc2ggdmVyaWZpZWQiCisgICAgfSBlbHNlIHsKKyAgICAgIFRocm93ICJw
eXRob24ubXNpIGhhc2ggbWlzbWF0Y2gsIGdvdCAkaGFzaCwgZXhwZWN0ZWQgJGV4cGVjdGVkSGFz
aCIKKyAgICB9CisgICAgbXNpZXhlYyAvaSBweXRob24ubXNpIFRBUkdFVERJUj1DOlxQeXRob24y
NyAvcQorICAgIFdyaXRlLUhvc3QgIiMjdnNvW3Rhc2sucHJlcGVuZHBhdGhdQzpcUHl0aG9uMjci
CisgICAgV3JpdGUtSG9zdCAiIyN2c29bdGFzay5wcmVwZW5kcGF0aF1DOlxQeXRob24yN1xTY3Jp
cHRzIgorICBkaXNwbGF5TmFtZTogJ0luc3RhbGwgUHl0aG9uIChXaW5kb3dzKScKKyAgY29uZGl0
aW9uOiBhbmQoc3VjY2VlZGVkKCksIGVxKHZhcmlhYmxlc1snQWdlbnQuT1MnXSwgJ1dpbmRvd3Nf
TlQnKSkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvY2kvYXp1cmUvaW5zdGFsbF9zYWZhcmkueW1sIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9jaS9henVyZS9pbnN0YWxsX3NhZmFy
aS55bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmE4NjQxNDY1YWM4
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy9jaS9henVyZS9pbnN0YWxsX3NhZmFyaS55bWwKQEAgLTAsMCArMSwyMCBA
QAorcGFyYW1ldGVyczoKKyAgY2hhbm5lbDogcHJldmlldworCisjIFNob3VsZCBtYXRjaCBodHRw
czovL3dlYi1wbGF0Zm9ybS10ZXN0cy5vcmcvcnVubmluZy10ZXN0cy9zYWZhcmkuaHRtbAorc3Rl
cHM6CistICR7eyBpZiBlcShwYXJhbWV0ZXJzLmNoYW5uZWwsICdwcmV2aWV3JykgfX06CisgIC0g
c2NyaXB0OiB8CisgICAgICBIT01FQlJFV19OT19BVVRPX1VQREFURT0xIGJyZXcgY2FzayBpbnN0
YWxsIHRvb2xzL2NpL2F6dXJlL3NhZmFyaS10ZWNobm9sb2d5LXByZXZpZXcucmIKKyAgICAgIHN1
ZG8gIi9BcHBsaWNhdGlvbnMvU2FmYXJpIFRlY2hub2xvZ3kgUHJldmlldy5hcHAvQ29udGVudHMv
TWFjT1Mvc2FmYXJpZHJpdmVyIiAtLWVuYWJsZQorICAgICAgZGVmYXVsdHMgd3JpdGUgY29tLmFw
cGxlLlNhZmFyaVRlY2hub2xvZ3lQcmV2aWV3IFdlYktpdEphdmFTY3JpcHRDYW5PcGVuV2luZG93
c0F1dG9tYXRpY2FsbHkgMQorICAgICAgZGVmYXVsdHMgd3JpdGUgY29tLmFwcGxlLlNhZmFyaVRl
Y2hub2xvZ3lQcmV2aWV3IEV4cGVyaW1lbnRhbFNlcnZlclRpbWluZ0VuYWJsZWQgMQorICAgIGRp
c3BsYXlOYW1lOiAnSW5zdGFsbCBTYWZhcmkgVGVjaG5vbG9neSBQcmV2aWV3JworLSAke3sgaWYg
ZXEocGFyYW1ldGVycy5jaGFubmVsLCAnc3RhYmxlJykgfX06CisgIC0gc2NyaXB0OiB8CisgICAg
ICAjIFdvcmthcm91bmQgZm9yIGBzdWRvIHNhZmFyZHJpdmVyIC0tZW5hYmxlYCBub3Qgd29ya2lu
ZzoKKyAgICAgICMgaHR0cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQvaXNz
dWVzLzE5ODQ1CisgICAgICBta2RpciAtcCB+L0xpYnJhcnkvV2ViRHJpdmVyLworICAgICAgY3Ag
dG9vbHMvY2kvYXp1cmUvY29tLmFwcGxlLlNhZmFyaS5wbGlzdCB+L0xpYnJhcnkvV2ViRHJpdmVy
LworICAgICAgZGVmYXVsdHMgd3JpdGUgY29tLmFwcGxlLlNhZmFyaSBXZWJLaXRKYXZhU2NyaXB0
Q2FuT3BlbldpbmRvd3NBdXRvbWF0aWNhbGx5IDEKKyAgICBkaXNwbGF5TmFtZTogJ0NvbmZpZ3Vy
ZSBTYWZhcmknCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL2NpL2F6dXJlL3BpcF9pbnN0YWxsLnltbCBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvY2kvYXp1cmUvcGlwX2luc3RhbGwu
eW1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5jODc5NTM0NWY2Ygot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvY2kvYXp1cmUvcGlwX2luc3RhbGwueW1sCkBAIC0wLDAgKzEsMTUgQEAKK3Bh
cmFtZXRlcnM6CisgIHBhY2thZ2VzOiAnJworCitzdGVwczoKKy0gc2NyaXB0OiB8CisgICAgIyBg
c3VkbyBwaXAgaW5zdGFsbGAgaXMgbm90IHVzZWQgYmVjYXVzZSBzb21lIHBhY2thZ2VzIChlLmcu
IHRveCkgZGVwZW5kIG9uCisgICAgIyBzeXN0ZW0gcGFja2FnZXMgKGUuZy4gc2V0dXB0b29scykg
d2hpY2ggY2Fubm90IGJlIHVwZ3JhZGVkIGR1ZSB0byBTeXN0ZW0KKyAgICAjIEludGVncml0eSBQ
cm90ZWN0aW9uLCBzZWUgaHR0cHM6Ly9zdGFja292ZXJmbG93LmNvbS9hLzMzMDA0OTIwLgorICAg
IHBpcCBpbnN0YWxsIC0tdXNlciAke3sgcGFyYW1ldGVycy5wYWNrYWdlcyB9fQorICAgIGVjaG8g
IiMjdnNvW3Rhc2sucHJlcGVuZHBhdGhdJEhPTUUvTGlicmFyeS9QeXRob24vMi43L2JpbiIKKyAg
ZGlzcGxheU5hbWU6ICdJbnN0YWxsIFB5dGhvbiBwYWNrYWdlcyAobWFjT1MpJworICBjb25kaXRp
b246IGFuZChzdWNjZWVkZWQoKSwgZXEodmFyaWFibGVzWydBZ2VudC5PUyddLCAnRGFyd2luJykp
CistIHNjcmlwdDogcGlwIC0tZGlzYWJsZS1waXAtdmVyc2lvbi1jaGVjayBpbnN0YWxsIC0tdXBn
cmFkZSAke3sgcGFyYW1ldGVycy5wYWNrYWdlcyB9fQorICBkaXNwbGF5TmFtZTogJ0luc3RhbGwg
UHl0aG9uIHBhY2thZ2VzIChXaW5kb3dzKScKKyAgY29uZGl0aW9uOiBhbmQoc3VjY2VlZGVkKCks
IGVxKHZhcmlhYmxlc1snQWdlbnQuT1MnXSwgJ1dpbmRvd3NfTlQnKSkKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvY2kvYXp1cmUv
c2FmYXJpLXRlY2hub2xvZ3ktcHJldmlldy5yYiBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvY2kvYXp1cmUvc2FmYXJpLXRlY2hub2xvZ3ktcHJldmll
dy5yYgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uYjMyNzM5YmU1OGEK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL2NpL2F6dXJlL3NhZmFyaS10ZWNobm9sb2d5LXByZXZpZXcucmIKQEAgLTAs
MCArMSwzMyBAQAorY2FzayAnc2FmYXJpLXRlY2hub2xvZ3ktcHJldmlldycgZG8KKyAgaWYgTWFj
T1MudmVyc2lvbiA8PSA6bW9qYXZlCisgICAgdmVyc2lvbiAnOTYsMDYxLTQ0MDU2LTIwMTkxMTIw
LWFjN2JiMTk2LTI3MjQtNDg0MC1iY2U5LTZjODNlY2RiZmIyYycKKyAgICBzaGEyNTYgJ2U4MGNl
YWNkZmY3ZTc1MjE4MzY1OTkzZTVhZjFjODFjOWJjYzQ3ODUyOTFhZTAwYWJiYTNkMTRhYzU2MTQz
MTcnCisgIGVsc2UKKyAgICB2ZXJzaW9uICc5NiwwNjEtNDc3MTgtMjAxOTExMjAtMDJiYzc1Njkt
ZWU2Yi00YzI4LTllYzQtMGNlZWRhM2MzYzNhJworICAgIHNoYTI1NiAnYmJmY2RjMzZiZjliNTVh
ZWM1ODM4ZDY2ZTM0YzQxZGQzZjZhNjQwOTE0MDZiYzM4ZjQ1Yzg4ODM2MGYxOTFmZScKKyAgZW5k
CisKKyAgdXJsICJodHRwczovL3NlY3VyZS1hcHBsZG5sZC5hcHBsZS5jb20vU1RQLyN7dmVyc2lv
bi5hZnRlcl9jb21tYX0vU2FmYXJpVGVjaG5vbG9neVByZXZpZXcuZG1nIgorICBhcHBjYXN0ICdo
dHRwczovL2RldmVsb3Blci5hcHBsZS5jb20vc2FmYXJpL2Rvd25sb2FkLycKKyAgbmFtZSAnU2Fm
YXJpIFRlY2hub2xvZ3kgUHJldmlldycKKyAgaG9tZXBhZ2UgJ2h0dHBzOi8vZGV2ZWxvcGVyLmFw
cGxlLmNvbS9zYWZhcmkvZG93bmxvYWQvJworCisgIGF1dG9fdXBkYXRlcyB0cnVlCisgIGRlcGVu
ZHNfb24gbWFjb3M6ICc+PSA6bW9qYXZlJworCisgIHBrZyAnU2FmYXJpIFRlY2hub2xvZ3kgUHJl
dmlldy5wa2cnCisKKyAgdW5pbnN0YWxsIGRlbGV0ZTogJy9BcHBsaWNhdGlvbnMvU2FmYXJpIFRl
Y2hub2xvZ3kgUHJldmlldy5hcHAnCisKKyAgemFwIHRyYXNoOiBbCisgICAgICAgICAgICAgICAn
fi9MaWJyYXJ5L0FwcGxpY2F0aW9uIFN1cHBvcnQvY29tLmFwcGxlLnNoYXJlZGZpbGVsaXN0L2Nv
bS5hcHBsZS5MU1NoYXJlZEZpbGVMaXN0LkFwcGxpY2F0aW9uUmVjZW50RG9jdW1lbnRzL2NvbS5h
cHBsZS5zYWZhcml0ZWNobm9sb2d5cHJldmlldy5zZmwqJywKKyAgICAgICAgICAgICAgICd+L0xp
YnJhcnkvQ2FjaGVzL2NvbS5hcHBsZS5TYWZhcmlUZWNobm9sb2d5UHJldmlldycsCisgICAgICAg
ICAgICAgICAnfi9MaWJyYXJ5L1ByZWZlcmVuY2VzL2NvbS5hcHBsZS5TYWZhcmlUZWNobm9sb2d5
UHJldmlldy5wbGlzdCcsCisgICAgICAgICAgICAgICAnfi9MaWJyYXJ5L1NhZmFyaVRlY2hub2xv
Z3lQcmV2aWV3JywKKyAgICAgICAgICAgICAgICd+L0xpYnJhcnkvU2F2ZWQgQXBwbGljYXRpb24g
U3RhdGUvY29tLmFwcGxlLlNhZmFyaVRlY2hub2xvZ3lQcmV2aWV3LnNhdmVkU3RhdGUnLAorICAg
ICAgICAgICAgICAgJ34vTGlicmFyeS9TeW5jZWRQcmVmZXJlbmNlcy9jb20uYXBwbGUuU2FmYXJp
VGVjaG5vbG9neVByZXZpZXctY29tLmFwcGxlLlNhZmFyaS5Vc2VyUmVxdWVzdHMucGxpc3QnLAor
ICAgICAgICAgICAgICAgJ34vTGlicmFyeS9TeW5jZWRQcmVmZXJlbmNlcy9jb20uYXBwbGUuU2Fm
YXJpVGVjaG5vbG9neVByZXZpZXctY29tLmFwcGxlLlNhZmFyaS5XZWJGZWVkU3Vic2NyaXB0aW9u
cy5wbGlzdCcsCisgICAgICAgICAgICAgICAnfi9MaWJyYXJ5L1N5bmNlZFByZWZlcmVuY2VzL2Nv
bS5hcHBsZS5TYWZhcmlUZWNobm9sb2d5UHJldmlldy5wbGlzdCcsCisgICAgICAgICAgICAgICAn
fi9MaWJyYXJ5L1dlYktpdC9jb20uYXBwbGUuU2FmYXJpVGVjaG5vbG9neVByZXZpZXcnLAorICAg
ICAgICAgICAgIF0KK2VuZApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy9jaS9henVyZS9zeXN0ZW1faW5mby55bWwgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2NpL2F6dXJlL3N5c3Rl
bV9pbmZvLnltbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uY2MzN2Iz
NWI4NTMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL2NpL2F6dXJlL3N5c3RlbV9pbmZvLnltbApAQCAtMCwwICsxLDQg
QEAKK3N0ZXBzOgorLSBzY3JpcHQ6IHN5c3RlbWluZm8KKyAgZGlzcGxheU5hbWU6ICdTaG93IHN5
c3RlbSBpbmZvIChXaW5kb3dzKScKKyAgY29uZGl0aW9uOiBhbmQoc3VjY2VlZGVkKCksIGVxKHZh
cmlhYmxlc1snQWdlbnQuT1MnXSwgJ1dpbmRvd3NfTlQnKSkKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvY2kvYXp1cmUvdG94X3B5
dGVzdC55bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL2NpL2F6dXJlL3RveF9weXRlc3QueW1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwLi5iYzkzMDgzNmQzZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvY2kvYXp1cmUvdG94X3B5dGVzdC55
bWwKQEAgLTAsMCArMSwxOCBAQAorcGFyYW1ldGVyczoKKyAgZGlyZWN0b3J5OiAnJworICB0b3hl
bnY6ICdBTEwnCisKK3N0ZXBzOgorLSB0ZW1wbGF0ZTogcGlwX2luc3RhbGwueW1sCisgIHBhcmFt
ZXRlcnM6CisgICAgcGFja2FnZXM6IHRveAorCistIHNjcmlwdDogdG94IC1jICR7eyBwYXJhbWV0
ZXJzLmRpcmVjdG9yeSB9fSAtZSAke3sgcGFyYW1ldGVycy50b3hlbnYgfX0gLS0gLS1qdW5pdHht
bD1yZXN1bHRzLnhtbAorICBkaXNwbGF5TmFtZTogJ1J1biB0ZXN0cycKKworLSB0YXNrOiBQdWJs
aXNoVGVzdFJlc3VsdHNAMgorICBpbnB1dHM6CisgICAgdGVzdFJlc3VsdHNGaWxlczogJyR7eyBw
YXJhbWV0ZXJzLmRpcmVjdG9yeSB9fS9yZXN1bHRzLnhtbCcKKyAgICB0ZXN0UnVuVGl0bGU6ICck
e3sgcGFyYW1ldGVycy5kaXJlY3RvcnkgfX0nCisgIGRpc3BsYXlOYW1lOiAnUHVibGlzaCByZXN1
bHRzJworICBjb25kaXRpb246IHN1Y2NlZWRlZE9yRmFpbGVkKCkKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvY2kvYXp1cmUvdXBk
YXRlX2hvc3RzLnltbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvY2kvYXp1cmUvdXBkYXRlX2hvc3RzLnltbApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMC4uNjNjN2U0NTgxMTIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2NpL2F6dXJlL3VwZGF0
ZV9ob3N0cy55bWwKQEAgLTAsMCArMSwxMCBAQAorc3RlcHM6CistIHNjcmlwdDogLi93cHQgbWFr
ZS1ob3N0cy1maWxlIHwgc3VkbyB0ZWUgLWEgL2V0Yy9ob3N0cworICBkaXNwbGF5TmFtZTogJ1Vw
ZGF0ZSBob3N0cyAobWFjT1MpJworICBjb25kaXRpb246IGFuZChzdWNjZWVkZWQoKSwgZXEodmFy
aWFibGVzWydBZ2VudC5PUyddLCAnRGFyd2luJykpCistIHBvd2Vyc2hlbGw6IHwKKyAgICAkaG9z
dEZpbGUgPSAiJGVudjpzeXN0ZW1yb290XFN5c3RlbTMyXGRyaXZlcnNcZXRjXGhvc3RzIgorICAg
IENvcHktSXRlbSAtUGF0aCAkaG9zdEZpbGUgLURlc3RpbmF0aW9uICIkaG9zdEZpbGUuYmFjayIg
LUZvcmNlCisgICAgcHl0aG9uIHdwdCBtYWtlLWhvc3RzLWZpbGUgfCBPdXQtRmlsZSAkZW52OnN5
c3RlbXJvb3RcU3lzdGVtMzJcZHJpdmVyc1xldGNcaG9zdHMgLUVuY29kaW5nIGFzY2lpIC1BcHBl
bmQKKyAgZGlzcGxheU5hbWU6ICdVcGRhdGUgaG9zdHMgKFdpbmRvd3MpJworICBjb25kaXRpb246
IGFuZChzdWNjZWVkZWQoKSwgZXEodmFyaWFibGVzWydBZ2VudC5PUyddLCAnV2luZG93c19OVCcp
KQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy9jaS9henVyZS91cGRhdGVfbWFuaWZlc3QueW1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9jaS9henVyZS91cGRhdGVfbWFuaWZlc3Qu
eW1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi40NTNhYzJhYzNjMAot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvY2kvYXp1cmUvdXBkYXRlX21hbmlmZXN0LnltbApAQCAtMCwwICsxLDQgQEAK
K3N0ZXBzOgorIyBgcHl0aG9uIHdwdGAgaW5zdGVhZCBvZiBgLi93cHRgIGlzIHRvIG1ha2UgdGhp
cyB3b3JrIG9uIFdpbmRvd3M6CistIHNjcmlwdDogcHl0aG9uIHdwdCBtYW5pZmVzdAorICBkaXNw
bGF5TmFtZTogJ1VwZGF0ZSBtYW5pZmVzdCcKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvY2kvYXp1cmUvdzNjLWltcG9ydC5sb2cg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2NpL2F6
dXJlL3czYy1pbXBvcnQubG9nCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
Li40NGY1NDMxOWMyYgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvY2kvYXp1cmUvdzNjLWltcG9ydC5sb2cKQEAgLTAs
MCArMSwzNSBAQAorVGhlIHRlc3RzIGluIHRoaXMgZGlyZWN0b3J5IHdlcmUgaW1wb3J0ZWQgZnJv
bSB0aGUgVzNDIHJlcG9zaXRvcnkuCitEbyBOT1QgbW9kaWZ5IHRoZXNlIHRlc3RzIGRpcmVjdGx5
IGluIFdlYktpdC4KK0luc3RlYWQsIGNyZWF0ZSBhIHB1bGwgcmVxdWVzdCBvbiB0aGUgV1BUIGdp
dGh1YjoKKwlodHRwczovL2dpdGh1Yi5jb20vd2ViLXBsYXRmb3JtLXRlc3RzL3dwdAorCitUaGVu
IHJ1biB0aGUgVG9vbHMvU2NyaXB0cy9pbXBvcnQtdzNjLXRlc3RzIGluIFdlYktpdCB0byByZWlt
cG9ydAorCitEbyBOT1QgbW9kaWZ5IG9yIHJlbW92ZSB0aGlzIGZpbGUuCisKKy0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLQorUHJvcGVydGllcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgorTm9uZQorUHJvcGVy
dHkgdmFsdWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6CitOb25lCistLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0KK0xpc3Qgb2YgZmlsZXM6CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy9jaS9henVyZS9SRUFETUUubWQKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2NpL2F6dXJlL2FmZmVjdGVkX3Rlc3RzLnltbAor
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvY2kvYXp1
cmUvY2hlY2tvdXQueW1sCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy9jaS9henVyZS9jbGVhbnVwX3dpbjEwLnltbAorL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvY2kvYXp1cmUvY29tLmFwcGxlLlNhZmFy
aS5wbGlzdAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvY2kvYXp1cmUvZnlpX2hvb2sueW1sCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy9jaS9henVyZS9pbnN0YWxsX2NlcnRzLnltbAorL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvY2kvYXp1cmUvaW5zdGFs
bF9jaHJvbWUueW1sCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy9jaS9henVyZS9pbnN0YWxsX2VkZ2UueW1sCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9jaS9henVyZS9pbnN0YWxsX2ZpcmVmb3gueW1s
CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9jaS9h
enVyZS9pbnN0YWxsX2ZvbnRzLnltbAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvY2kvYXp1cmUvaW5zdGFsbF9weXRob24ueW1sCisvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9jaS9henVyZS9pbnN0YWxs
X3NhZmFyaS55bWwKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL2NpL2F6dXJlL3BpcF9pbnN0YWxsLnltbAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvY2kvYXp1cmUvc2FmYXJpLXRlY2hub2xvZ3ktcHJl
dmlldy5yYgorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvY2kvYXp1cmUvc3lzdGVtX2luZm8ueW1sCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy9jaS9henVyZS90b3hfcHl0ZXN0LnltbAorL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvY2kvYXp1cmUvdXBkYXRl
X2hvc3RzLnltbAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvY2kvYXp1cmUvdXBkYXRlX21hbmlmZXN0LnltbApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9jaS9iZWZvcmVfaW5zdGFs
bC5zaCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
Y2kvYmVmb3JlX2luc3RhbGwuc2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGY2ZWY4
NGYwMDI2Li4wMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL2NpL2JlZm9yZV9pbnN0YWxsLnNoCisrKyAvZGV2L251bGwKQEAg
LTEsMTUgKzAsMCBAQAotIyEvYmluL2Jhc2gKLXNldCAtZQotCi1SRUxFVkFOVF9KT0JTPSQoLi93
cHQgdGVzdC1qb2JzKQotUkVMRVZBTlRfQ0hBTkdFUz0kKGVjaG8gIiRSRUxFVkFOVF9KT0JTIiB8
IGdyZXAgJEpPQiB8fCB0cnVlKQotaWYgW1sgLXogJHtSVU5fSk9CK3h9ICYmICEgLXogJFJFTEVW
QU5UX0NIQU5HRVMgXV0gfHwgW1sgJFJVTl9KT0IgLWVxIDEgXV07IHRoZW4KLSAgICBleHBvcnQg
UlVOX0pPQj0xCi0gICAgZ2l0IHN1Ym1vZHVsZSB1cGRhdGUgLS1pbml0IC0tcmVjdXJzaXZlIDE+
JjIKLSAgICBleHBvcnQgRElTUExBWT06OTkuMAotICAgIHNoIC1lIC9ldGMvaW5pdC5kL3h2ZmIg
c3RhcnQgMT4mMgotICAgICMgRm9yIHVwbG9hZGluZyB0aGUgbWFuaWZlc3QKLSAgICBleHBvcnQg
V1BUX01BTklGRVNUX0ZJTEU9JEhPTUUvbWV0YS9NQU5JRkVTVC0kKGdpdCByZXYtcGFyc2UgSEVB
RCkuanNvbgotZWxpZiBbWyAteiAke1JVTl9KT0IreH0gXV07IHRoZW4KLSAgICBleHBvcnQgUlVO
X0pPQj0wCi1maQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy9jaS9jaGVja19zdGFiaWxpdHkucHkgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2NpL2NoZWNrX3N0YWJpbGl0eS5weQpk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMzIzNWNlZTVhYzYuLjAwMDAwMDAwMDAwCi0t
LSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvY2kv
Y2hlY2tfc3RhYmlsaXR5LnB5CisrKyAvZGV2L251bGwKQEAgLTEsMzEzICswLDAgQEAKLWZyb20g
X19mdXR1cmVfXyBpbXBvcnQgcHJpbnRfZnVuY3Rpb24KLQotaW1wb3J0IGFyZ3BhcnNlCi1pbXBv
cnQgbG9nZ2luZwotaW1wb3J0IG9zCi1pbXBvcnQgc3VicHJvY2VzcwotaW1wb3J0IHN5cwotZnJv
bSBDb25maWdQYXJzZXIgaW1wb3J0IFNhZmVDb25maWdQYXJzZXIKLQotaGVyZSA9IG9zLnBhdGgu
ZGlybmFtZShfX2ZpbGVfXykKLXdwdF9yb290ID0gb3MucGF0aC5hYnNwYXRoKG9zLnBhdGguam9p
bihoZXJlLCBvcy5wYXJkaXIsIG9zLnBhcmRpcikpCi1zeXMucGF0aC5pbnNlcnQoMCwgd3B0X3Jv
b3QpCi0KLWZyb20gdG9vbHMud3B0IGltcG9ydCB0ZXN0ZmlsZXMKLWZyb20gdG9vbHMud3B0LnRl
c3RmaWxlcyBpbXBvcnQgZ2V0X2dpdF9jbWQKLWZyb20gdG9vbHMud3B0LnZpcnR1YWxlbnYgaW1w
b3J0IFZpcnR1YWxlbnYKLWZyb20gdG9vbHMud3B0LnV0aWxzIGltcG9ydCBLd2FyZ3MKLWZyb20g
dG9vbHMud3B0LnJ1biBpbXBvcnQgY3JlYXRlX3BhcnNlciwgc2V0dXBfd3B0cnVubmVyCi1mcm9t
IHRvb2xzLndwdCBpbXBvcnQgbWFya2Rvd24KLWZyb20gdG9vbHMgaW1wb3J0IGxvY2FscGF0aHMg
ICMgbm9xYTogRjQwMQotCi1sb2dnZXIgPSBOb25lCi1ydW5fc3RlcCwgd3JpdGVfaW5jb25zaXN0
ZW50LCB3cml0ZV9yZXN1bHRzID0gTm9uZSwgTm9uZSwgTm9uZQotd3B0cnVubmVyID0gTm9uZQot
Ci1kZWYgc2V0dXBfbG9nZ2luZygpOgotICAgICIiIlNldCB1cCBiYXNpYyBkZWJ1ZyBsb2dnZXIu
IiIiCi0gICAgZ2xvYmFsIGxvZ2dlcgotICAgIGxvZ2dlciA9IGxvZ2dpbmcuZ2V0TG9nZ2VyKGhl
cmUpCi0gICAgaGFuZGxlciA9IGxvZ2dpbmcuU3RyZWFtSGFuZGxlcihzeXMuc3Rkb3V0KQotICAg
IGZvcm1hdHRlciA9IGxvZ2dpbmcuRm9ybWF0dGVyKGxvZ2dpbmcuQkFTSUNfRk9STUFULCBOb25l
KQotICAgIGhhbmRsZXIuc2V0Rm9ybWF0dGVyKGZvcm1hdHRlcikKLSAgICBsb2dnZXIuYWRkSGFu
ZGxlcihoYW5kbGVyKQotICAgIGxvZ2dlci5zZXRMZXZlbChsb2dnaW5nLkRFQlVHKQotCi0KLWRl
ZiBkb19kZWxheWVkX2ltcG9ydHMoKToKLSAgICBnbG9iYWwgd3B0cnVubmVyLCBydW5fc3RlcCwg
d3JpdGVfaW5jb25zaXN0ZW50LCB3cml0ZV9yZXN1bHRzCi0gICAgZnJvbSB3cHRydW5uZXIgaW1w
b3J0IHdwdHJ1bm5lcgotICAgIGZyb20gd3B0cnVubmVyLnN0YWJpbGl0eSBpbXBvcnQgcnVuX3N0
ZXAsIHdyaXRlX2luY29uc2lzdGVudCwgd3JpdGVfcmVzdWx0cwotCi0KLWNsYXNzIFRyYXZpc0Zv
bGQob2JqZWN0KToKLSAgICAiIiJDb250ZXh0IGZvciBUcmF2aXNDSSBmb2xkaW5nIG1lY2hhbmlz
bS4gU3ViY2xhc3NlcyBvYmplY3QuCi0KLSAgICBTZWU6IGh0dHBzOi8vYmxvZy50cmF2aXMtY2ku
Y29tLzIwMTMtMDUtMjItaW1wcm92aW5nLWJ1aWxkLXZpc2liaWxpdHktbG9nLWZvbGRzLwotICAg
ICIiIgotCi0gICAgZGVmIF9faW5pdF9fKHNlbGYsIG5hbWUpOgotICAgICAgICAiIiJSZWdpc3Rl
ciBUcmF2aXNDSSBmb2xkaW5nIHNlY3Rpb24gbmFtZS4iIiIKLSAgICAgICAgc2VsZi5uYW1lID0g
bmFtZQotCi0gICAgZGVmIF9fZW50ZXJfXyhzZWxmKToKLSAgICAgICAgIiIiRW1pdCBmb2xkIHN0
YXJ0IHN5bnRheC4iIiIKLSAgICAgICAgcHJpbnQoInRyYXZpc19mb2xkOnN0YXJ0OiVzIiAlIHNl
bGYubmFtZSwgZmlsZT1zeXMuc3RkZXJyKQotCi0gICAgZGVmIF9fZXhpdF9fKHNlbGYsIHR5cGUs
IHZhbHVlLCB0cmFjZWJhY2spOgotICAgICAgICAiIiJFbWl0IGZvbGQgZW5kIHN5bnRheC4iIiIK
LSAgICAgICAgcHJpbnQoInRyYXZpc19mb2xkOmVuZDolcyIgJSBzZWxmLm5hbWUsIGZpbGU9c3lz
LnN0ZGVycikKLQotCi1jbGFzcyBGaWx0ZXJlZElPKG9iamVjdCk6Ci0gICAgIiIiV3JhcCBhIGZp
bGUgb2JqZWN0LCBpbnZva2luZyB0aGUgcHJvdmlkZWQgY2FsbGJhY2sgZm9yIGV2ZXJ5IGNhbGwg
dG8KLSAgICBgd3JpdGVgIGFuZCBvbmx5IHByb2NlZWRpbmcgd2l0aCB0aGUgb3BlcmF0aW9uIHdo
ZW4gdGhhdCBjYWxsYmFjayByZXR1cm5zCi0gICAgVHJ1ZS4iIiIKLSAgICBkZWYgX19pbml0X18o
c2VsZiwgb3JpZ2luYWwsIG9uX3dyaXRlKToKLSAgICAgICAgc2VsZi5vcmlnaW5hbCA9IG9yaWdp
bmFsCi0gICAgICAgIHNlbGYub25fd3JpdGUgPSBvbl93cml0ZQotCi0gICAgZGVmIF9fZ2V0YXR0
cl9fKHNlbGYsIG5hbWUpOgotICAgICAgICByZXR1cm4gZ2V0YXR0cihzZWxmLm9yaWdpbmFsLCBu
YW1lKQotCi0gICAgZGVmIGRpc2FibGUoc2VsZik6Ci0gICAgICAgIHNlbGYud3JpdGUgPSBsYW1i
ZGEgbXNnOiBOb25lCi0KLSAgICBkZWYgd3JpdGUoc2VsZiwgbXNnKToKLSAgICAgICAgZW5jb2Rl
ZCA9IG1zZy5lbmNvZGUoInV0ZjgiLCAiYmFja3NsYXNocmVwbGFjZSIpLmRlY29kZSgidXRmOCIp
Ci0gICAgICAgIGlmIHNlbGYub25fd3JpdGUoc2VsZi5vcmlnaW5hbCwgZW5jb2RlZCkgaXMgVHJ1
ZToKLSAgICAgICAgICAgIHNlbGYub3JpZ2luYWwud3JpdGUoZW5jb2RlZCkKLQotCi1kZWYgcmVw
bGFjZV9zdHJlYW1zKGNhcGFjaXR5LCB3YXJuaW5nX21zZyk6Ci0gICAgIyBWYWx1ZSBtdXN0IGJl
IGJveGVkIHRvIHN1cHBvcnQgbW9kaWZpY2F0aW9uIGZyb20gaW5uZXIgZnVuY3Rpb24gc2NvcGUK
LSAgICBjb3VudCA9IFswXQotICAgIGNhcGFjaXR5IC09IDIgKyBsZW4od2FybmluZ19tc2cpCi0g
ICAgc3RkZXJyID0gc3lzLnN0ZGVycgotCi0gICAgZGVmIG9uX3dyaXRlKGhhbmRsZSwgbXNnKToK
LSAgICAgICAgbGVuZ3RoID0gbGVuKG1zZykKLSAgICAgICAgY291bnRbMF0gKz0gbGVuZ3RoCi0K
LSAgICAgICAgaWYgY291bnRbMF0gPiBjYXBhY2l0eToKLSAgICAgICAgICAgIHdyYXBwZWRfc3Rk
b3V0LmRpc2FibGUoKQotICAgICAgICAgICAgd3JhcHBlZF9zdGRlcnIuZGlzYWJsZSgpCi0gICAg
ICAgICAgICBoYW5kbGUud3JpdGUobXNnWzA6Y2FwYWNpdHkgLSBjb3VudFswXV0pCi0gICAgICAg
ICAgICBoYW5kbGUuZmx1c2goKQotICAgICAgICAgICAgc3RkZXJyLndyaXRlKCJcbiVzXG4iICUg
d2FybmluZ19tc2cpCi0gICAgICAgICAgICByZXR1cm4gRmFsc2UKLQotICAgICAgICByZXR1cm4g
VHJ1ZQotCi0gICAgIyBTdG9yZSBsb2NhbCByZWZlcmVuY2VzIHRvIHRoZSByZXBsYWNlZCBzdHJl
YW1zIHRvIGd1YXJkIGFnYWluc3QgdGhlIGNhc2UKLSAgICAjIHdoZXJlIG90aGVyIGNvZGUgcmVw
bGFjZSB0aGUgZ2xvYmFsIHJlZmVyZW5jZXMuCi0gICAgc3lzLnN0ZG91dCA9IHdyYXBwZWRfc3Rk
b3V0ID0gRmlsdGVyZWRJTyhzeXMuc3Rkb3V0LCBvbl93cml0ZSkKLSAgICBzeXMuc3RkZXJyID0g
d3JhcHBlZF9zdGRlcnIgPSBGaWx0ZXJlZElPKHN5cy5zdGRlcnIsIG9uX3dyaXRlKQotCi0KLWRl
ZiBjYWxsKCphcmdzKToKLSAgICAiIiJMb2cgdGVybWluYWwgY29tbWFuZCwgaW52b2tlIGl0IGFz
IGEgc3VicHJvY2Vzcy4KLQotICAgIFJldHVybnMgYSBieXRlc3RyaW5nIG9mIHRoZSBzdWJwcm9j
ZXNzIG91dHB1dCBpZiBubyBlcnJvci4KLSAgICAiIiIKLSAgICBsb2dnZXIuZGVidWcoIiVzIiAl
ICIgIi5qb2luKGFyZ3MpKQotICAgIHRyeToKLSAgICAgICAgcmV0dXJuIHN1YnByb2Nlc3MuY2hl
Y2tfb3V0cHV0KGFyZ3MpCi0gICAgZXhjZXB0IHN1YnByb2Nlc3MuQ2FsbGVkUHJvY2Vzc0Vycm9y
IGFzIGU6Ci0gICAgICAgIGxvZ2dlci5jcml0aWNhbCgiJXMgZXhpdGVkIHdpdGggcmV0dXJuIGNv
ZGUgJWkiICUKLSAgICAgICAgICAgICAgICAgICAgICAgIChlLmNtZCwgZS5yZXR1cm5jb2RlKSkK
LSAgICAgICAgbG9nZ2VyLmNyaXRpY2FsKGUub3V0cHV0KQotICAgICAgICByYWlzZQotCi1kZWYg
ZmV0Y2hfd3B0KHVzZXIsICphcmdzKToKLSAgICBnaXQgPSBnZXRfZ2l0X2NtZCh3cHRfcm9vdCkK
LSAgICBnaXQoImZldGNoIiwgImh0dHBzOi8vZ2l0aHViLmNvbS8lcy93ZWItcGxhdGZvcm0tdGVz
dHMuZ2l0IiAlIHVzZXIsICphcmdzKQotCi0KLWRlZiBnZXRfc2hhMSgpOgotICAgICIiIiBHZXQg
YW5kIHJldHVybiBzaGExIG9mIGN1cnJlbnQgZ2l0IGJyYW5jaCBIRUFEIGNvbW1pdC4iIiIKLSAg
ICBnaXQgPSBnZXRfZ2l0X2NtZCh3cHRfcm9vdCkKLSAgICByZXR1cm4gZ2l0KCJyZXYtcGFyc2Ui
LCAiSEVBRCIpLnN0cmlwKCkKLQotCi1kZWYgZGVlcGVuX2NoZWNrb3V0KHVzZXIpOgotICAgICIi
IkNvbnZlcnQgZnJvbSBhIHNoYWxsb3cgY2hlY2tvdXQgdG8gYSBmdWxsIG9uZSIiIgotICAgIGZl
dGNoX2FyZ3MgPSBbdXNlciwgIityZWZzL2hlYWRzLyo6cmVmcy9yZW1vdGVzL29yaWdpbi8qIl0K
LSAgICBpZiBvcy5wYXRoLmV4aXN0cyhvcy5wYXRoLmpvaW4od3B0X3Jvb3QsICIuZ2l0IiwgInNo
YWxsb3ciKSk6Ci0gICAgICAgIGZldGNoX2FyZ3MuaW5zZXJ0KDEsICItLXVuc2hhbGxvdyIpCi0g
ICAgZmV0Y2hfd3B0KCpmZXRjaF9hcmdzKQotCi0KLWRlZiBnZXRfcGFyc2VyKCk6Ci0gICAgIiIi
Q3JlYXRlIGFuZCByZXR1cm4gc2NyaXB0LXNwZWNpZmljIGFyZ3VtZW50IHBhcnNlci4iIiIKLSAg
ICBkZXNjcmlwdGlvbiA9ICIiIkRldGVjdCBpbnN0YWJpbGl0aWVzIGluIG5ldyB0ZXN0cyBieSBl
eGVjdXRpbmcgdGVzdHMKLSAgICByZXBlYXRlZGx5IGFuZCBjb21wYXJpbmcgcmVzdWx0cyBiZXR3
ZWVuIGV4ZWN1dGlvbnMuIiIiCi0gICAgcGFyc2VyID0gYXJncGFyc2UuQXJndW1lbnRQYXJzZXIo
ZGVzY3JpcHRpb249ZGVzY3JpcHRpb24pCi0gICAgcGFyc2VyLmFkZF9hcmd1bWVudCgiLS11c2Vy
IiwKLSAgICAgICAgICAgICAgICAgICAgICAgIGFjdGlvbj0ic3RvcmUiLAotICAgICAgICAgICAg
ICAgICAgICAgICAgIyBUcmF2aXMgZG9jcyBzYXkgZG8gbm90IGRlcGVuZCBvbiBVU0VSIGVudiB2
YXJpYWJsZS4KLSAgICAgICAgICAgICAgICAgICAgICAgICMgVGhpcyBpcyBhIHdvcmthcm91bmQg
dG8gZ2V0IHdoYXQgc2hvdWxkIGJlIHRoZSBzYW1lIHZhbHVlCi0gICAgICAgICAgICAgICAgICAg
ICAgICBkZWZhdWx0PW9zLmVudmlyb24uZ2V0KCJUUkFWSVNfUkVQT19TTFVHIiwgInczYyIpLnNw
bGl0KCcvJylbMF0sCi0gICAgICAgICAgICAgICAgICAgICAgICBoZWxwPSJUcmF2aXMgdXNlciBu
YW1lIikKLSAgICBwYXJzZXIuYWRkX2FyZ3VtZW50KCItLW91dHB1dC1ieXRlcyIsCi0gICAgICAg
ICAgICAgICAgICAgICAgICBhY3Rpb249InN0b3JlIiwKLSAgICAgICAgICAgICAgICAgICAgICAg
IHR5cGU9aW50LAotICAgICAgICAgICAgICAgICAgICAgICAgaGVscD0iTWF4aW11bSBudW1iZXIg
b2YgYnl0ZXMgdG8gd3JpdGUgdG8gc3RhbmRhcmQgb3V0cHV0L2Vycm9yIikKLSAgICBwYXJzZXIu
YWRkX2FyZ3VtZW50KCItLW1ldGFkYXRhIiwKLSAgICAgICAgICAgICAgICAgICAgICAgIGRlc3Q9
Im1ldGFkYXRhX3Jvb3QiLAotICAgICAgICAgICAgICAgICAgICAgICAgYWN0aW9uPSJzdG9yZSIs
Ci0gICAgICAgICAgICAgICAgICAgICAgICBkZWZhdWx0PXdwdF9yb290LAotICAgICAgICAgICAg
ICAgICAgICAgICAgaGVscD0iRGlyZWN0b3J5IHRoYXQgd2lsbCBjb250YWluIE1BTklGRVNULmpz
b24iKQotICAgIHBhcnNlci5hZGRfYXJndW1lbnQoIi0tY29uZmlnLWZpbGUiLAotICAgICAgICAg
ICAgICAgICAgICAgICAgYWN0aW9uPSJzdG9yZSIsCi0gICAgICAgICAgICAgICAgICAgICAgICB0
eXBlPXN0ciwKLSAgICAgICAgICAgICAgICAgICAgICAgIGhlbHA9IkxvY2F0aW9uIG9mIGluaS1m
b3JtYXR0ZWQgY29uZmlndXJhdGlvbiBmaWxlIiwKLSAgICAgICAgICAgICAgICAgICAgICAgIGRl
ZmF1bHQ9ImNoZWNrX3N0YWJpbGl0eS5pbmkiKQotICAgIHBhcnNlci5hZGRfYXJndW1lbnQoIi0t
cmV2IiwKLSAgICAgICAgICAgICAgICAgICAgICAgIGFjdGlvbj0ic3RvcmUiLAotICAgICAgICAg
ICAgICAgICAgICAgICAgZGVmYXVsdD1Ob25lLAotICAgICAgICAgICAgICAgICAgICAgICAgaGVs
cD0iQ29tbWl0IHJhbmdlIHRvIHVzZSIpCi0gICAgcmV0dXJuIHBhcnNlcgotCi0KLWRlZiBwcigp
OgotICAgIHByID0gb3MuZW52aXJvbi5nZXQoIlRSQVZJU19QVUxMX1JFUVVFU1QiLCAiZmFsc2Ui
KQotICAgIHJldHVybiBwciBpZiBwciAhPSAiZmFsc2UiIGVsc2UgTm9uZQotCi0KLWRlZiBnZXRf
Y2hhbmdlZF9maWxlcyhtYW5pZmVzdF9wYXRoLCByZXYsIGlnbm9yZV9jaGFuZ2VzLCBza2lwX3Rl
c3RzKToKLSAgICBpZiBub3QgcmV2OgotICAgICAgICBicmFuY2hfcG9pbnQgPSB0ZXN0ZmlsZXMu
YnJhbmNoX3BvaW50KCkKLSAgICAgICAgcmV2aXNoID0gIiVzLi5IRUFEIiAlIGJyYW5jaF9wb2lu
dAotICAgIGVsc2U6Ci0gICAgICAgIHJldmlzaCA9IHJldgotCi0gICAgZmlsZXNfY2hhbmdlZCwg
ZmlsZXNfaWdub3JlZCA9IHRlc3RmaWxlcy5maWxlc19jaGFuZ2VkKHJldmlzaCwgaWdub3JlX2No
YW5nZXMpCi0KLSAgICBpZiBmaWxlc19pZ25vcmVkOgotICAgICAgICBsb2dnZXIuaW5mbygiSWdu
b3JpbmcgJXMgY2hhbmdlZCBmaWxlczpcbiVzIiAlCi0gICAgICAgICAgICAgICAgICAgIChsZW4o
ZmlsZXNfaWdub3JlZCksICIiLmpvaW4oIiAqICVzXG4iICUgaXRlbSBmb3IgaXRlbSBpbiBmaWxl
c19pZ25vcmVkKSkpCi0KLSAgICB0ZXN0c19jaGFuZ2VkLCBmaWxlc19hZmZlY3RlZCA9IHRlc3Rm
aWxlcy5hZmZlY3RlZF90ZXN0ZmlsZXMoZmlsZXNfY2hhbmdlZCwgc2tpcF90ZXN0cywKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgbWFuaWZlc3RfcGF0aD1tYW5pZmVzdF9wYXRoKQotCi0gICAgcmV0dXJuIHRlc3RzX2NoYW5n
ZWQsIGZpbGVzX2FmZmVjdGVkCi0KLQotZGVmIG1haW4oKToKLSAgICAiIiJQZXJmb3JtIGNoZWNr
X3N0YWJpbGl0eSBmdW5jdGlvbmFsaXR5IGFuZCByZXR1cm4gZXhpdCBjb2RlLiIiIgotCi0gICAg
dmVudiA9IFZpcnR1YWxlbnYob3MuZW52aXJvbi5nZXQoIlZJUlRVQUxfRU5WIiwgb3MucGF0aC5q
b2luKHdwdF9yb290LCAiX3ZlbnYiKSkpCi0gICAgdmVudi5pbnN0YWxsX3JlcXVpcmVtZW50cyhv
cy5wYXRoLmpvaW4od3B0X3Jvb3QsICJ0b29scyIsICJ3cHRydW5uZXIiLCAicmVxdWlyZW1lbnRz
LnR4dCIpKQotCi0gICAgYXJncywgd3B0X2FyZ3MgPSBnZXRfcGFyc2VyKCkucGFyc2Vfa25vd25f
YXJncygpCi0gICAgcmV0dXJuIHJ1bih2ZW52LCB3cHRfYXJncywgKip2YXJzKGFyZ3MpKQotCi0K
LWRlZiBydW4odmVudiwgd3B0X2FyZ3MsICoqa3dhcmdzKToKLSAgICBkb19kZWxheWVkX2ltcG9y
dHMoKQotCi0gICAgcmV0Y29kZSA9IDAKLQotICAgIHdwdF9hcmdzID0gY3JlYXRlX3BhcnNlcigp
LnBhcnNlX2FyZ3Mod3B0X2FyZ3MpCi0KLSAgICB3aXRoIG9wZW4oa3dhcmdzWyJjb25maWdfZmls
ZSJdLCAncicpIGFzIGNvbmZpZ19mcDoKLSAgICAgICAgY29uZmlnID0gU2FmZUNvbmZpZ1BhcnNl
cigpCi0gICAgICAgIGNvbmZpZy5yZWFkZnAoY29uZmlnX2ZwKQotICAgICAgICBza2lwX3Rlc3Rz
ID0gY29uZmlnLmdldCgiZmlsZSBkZXRlY3Rpb24iLCAic2tpcF90ZXN0cyIpLnNwbGl0KCkKLSAg
ICAgICAgaWdub3JlX2NoYW5nZXMgPSBzZXQoY29uZmlnLmdldCgiZmlsZSBkZXRlY3Rpb24iLCAi
aWdub3JlX2NoYW5nZXMiKS5zcGxpdCgpKQotCi0gICAgaWYga3dhcmdzWyJvdXRwdXRfYnl0ZXMi
XSBpcyBub3QgTm9uZToKLSAgICAgICAgcmVwbGFjZV9zdHJlYW1zKGt3YXJnc1sib3V0cHV0X2J5
dGVzIl0sCi0gICAgICAgICAgICAgICAgICAgICAgICAiTG9nIHJlYWNoZWQgY2FwYWNpdHkgKCVz
IGJ5dGVzKTsgb3V0cHV0IGRpc2FibGVkLiIgJSBrd2FyZ3NbIm91dHB1dF9ieXRlcyJdKQotCi0K
LSAgICB3cHRfYXJncy5tZXRhZGF0YV9yb290ID0ga3dhcmdzWyJtZXRhZGF0YV9yb290Il0KLSAg
ICB0cnk6Ci0gICAgICAgIG9zLm1ha2VkaXJzKHdwdF9hcmdzLm1ldGFkYXRhX3Jvb3QpCi0gICAg
ZXhjZXB0IE9TRXJyb3I6Ci0gICAgICAgIHBhc3MKLQotICAgIHNldHVwX2xvZ2dpbmcoKQotCi0g
ICAgcHJfbnVtYmVyID0gcHIoKQotCi0gICAgd2l0aCBUcmF2aXNGb2xkKCJicm93c2VyX3NldHVw
Iik6Ci0gICAgICAgIGxvZ2dlci5pbmZvKG1hcmtkb3duLmZvcm1hdF9jb21tZW50X3RpdGxlKHdw
dF9hcmdzLnByb2R1Y3QpKQotCi0gICAgICAgIGlmIHByIGlzIG5vdCBOb25lOgotICAgICAgICAg
ICAgZGVlcGVuX2NoZWNrb3V0KGt3YXJnc1sidXNlciJdKQotCi0gICAgICAgICMgRW5zdXJlIHdl
IGhhdmUgYSBicmFuY2ggY2FsbGVkICJtYXN0ZXIiCi0gICAgICAgIGZldGNoX3dwdChrd2FyZ3Nb
InVzZXIiXSwgIm1hc3RlcjptYXN0ZXIiKQotCi0gICAgICAgIGhlYWRfc2hhMSA9IGdldF9zaGEx
KCkKLSAgICAgICAgbG9nZ2VyLmluZm8oIlRlc3Rpbmcgd2ViLXBsYXRmb3JtLXRlc3RzIGF0IHJl
dmlzaW9uICVzIiAlIGhlYWRfc2hhMSkKLQotICAgICAgICB3cHRfa3dhcmdzID0gS3dhcmdzKHZh
cnMod3B0X2FyZ3MpKQotCi0gICAgICAgIGlmIG5vdCB3cHRfa3dhcmdzWyJ0ZXN0X2xpc3QiXToK
LSAgICAgICAgICAgIG1hbmlmZXN0X3BhdGggPSBvcy5wYXRoLmpvaW4od3B0X2t3YXJnc1sibWV0
YWRhdGFfcm9vdCJdLCAiTUFOSUZFU1QuanNvbiIpCi0gICAgICAgICAgICB0ZXN0c19jaGFuZ2Vk
LCBmaWxlc19hZmZlY3RlZCA9IGdldF9jaGFuZ2VkX2ZpbGVzKG1hbmlmZXN0X3BhdGgsIGt3YXJn
c1sicmV2Il0sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGlnbm9yZV9jaGFuZ2VzLCBza2lwX3Rlc3RzKQotCi0gICAgICAgICAg
ICBpZiBub3QgKHRlc3RzX2NoYW5nZWQgb3IgZmlsZXNfYWZmZWN0ZWQpOgotICAgICAgICAgICAg
ICAgIGxvZ2dlci5pbmZvKCJObyB0ZXN0cyBjaGFuZ2VkIikKLSAgICAgICAgICAgICAgICByZXR1
cm4gMAotCi0gICAgICAgICAgICBpZiB0ZXN0c19jaGFuZ2VkOgotICAgICAgICAgICAgICAgIGxv
Z2dlci5kZWJ1ZygiVGVzdHMgY2hhbmdlZDpcbiVzIiAlICIiLmpvaW4oIiAqICVzXG4iICUgaXRl
bSBmb3IgaXRlbSBpbiB0ZXN0c19jaGFuZ2VkKSkKLQotICAgICAgICAgICAgaWYgZmlsZXNfYWZm
ZWN0ZWQ6Ci0gICAgICAgICAgICAgICAgbG9nZ2VyLmRlYnVnKCJBZmZlY3RlZCB0ZXN0czpcbiVz
IiAlICIiLmpvaW4oIiAqICVzXG4iICUgaXRlbSBmb3IgaXRlbSBpbiBmaWxlc19hZmZlY3RlZCkp
Ci0KLSAgICAgICAgICAgIHdwdF9rd2FyZ3NbInRlc3RfbGlzdCJdID0gbGlzdCh0ZXN0c19jaGFu
Z2VkIHwgZmlsZXNfYWZmZWN0ZWQpCi0KLSAgICAgICAgZG9fZGVsYXllZF9pbXBvcnRzKCkKLQot
ICAgICAgICB3cHRfa3dhcmdzWyJwcm9tcHQiXSA9IEZhbHNlCi0gICAgICAgIHdwdF9rd2FyZ3Nb
Imluc3RhbGxfYnJvd3NlciJdID0gVHJ1ZQotICAgICAgICB3cHRfa3dhcmdzWyJpbnN0YWxsIl0g
PSB3cHRfa3dhcmdzWyJwcm9kdWN0Il0uc3BsaXQoIjoiKVswXSA9PSAiZmlyZWZveCIKLQotICAg
ICAgICB3cHRfa3dhcmdzWyJwYXVzZV9hZnRlcl90ZXN0Il0gPSBGYWxzZQotICAgICAgICB3cHRf
a3dhcmdzWyJ2ZXJpZnlfbG9nX2Z1bGwiXSA9IEZhbHNlCi0gICAgICAgIGlmIHdwdF9rd2FyZ3Nb
InJlcGVhdCJdID09IDE6Ci0gICAgICAgICAgICB3cHRfa3dhcmdzWyJyZXBlYXQiXSA9IDEwCi0K
LSAgICAgICAgd3B0X2t3YXJncyA9IHNldHVwX3dwdHJ1bm5lcih2ZW52LCAqKndwdF9rd2FyZ3Mp
Ci0KLSAgICAgICAgbG9nZ2VyLmluZm8oIlVzaW5nIGJpbmFyeSAlcyIgJSB3cHRfa3dhcmdzWyJi
aW5hcnkiXSkKLQotCi0gICAgd2l0aCBUcmF2aXNGb2xkKCJydW5uaW5nX3Rlc3RzIik6Ci0gICAg
ICAgIGxvZ2dlci5pbmZvKCJTdGFydGluZyB0ZXN0cyIpCi0KLSAgICAgICAgd3B0X2xvZ2dlciA9
IHdwdHJ1bm5lci5sb2dnZXIKLSAgICAgICAgcmVzdWx0cywgaW5jb25zaXN0ZW50LCBpdGVyYXRp
b25zID0gcnVuX3N0ZXAod3B0X2xvZ2dlciwgd3B0X2t3YXJnc1sicmVwZWF0Il0sIFRydWUsIHt9
LCAqKndwdF9rd2FyZ3MpCi0KLSAgICBpZiByZXN1bHRzOgotICAgICAgICBpZiBpbmNvbnNpc3Rl
bnQ6Ci0gICAgICAgICAgICB3cml0ZV9pbmNvbnNpc3RlbnQobG9nZ2VyLmVycm9yLCBpbmNvbnNp
c3RlbnQsIGl0ZXJhdGlvbnMpCi0gICAgICAgICAgICByZXRjb2RlID0gMgotICAgICAgICBlbHNl
OgotICAgICAgICAgICAgbG9nZ2VyLmluZm8oIkFsbCByZXN1bHRzIHdlcmUgc3RhYmxlXG4iKQot
ICAgICAgICB3aXRoIFRyYXZpc0ZvbGQoImZ1bGxfcmVzdWx0cyIpOgotICAgICAgICAgICAgd3Jp
dGVfcmVzdWx0cyhsb2dnZXIuaW5mbywgcmVzdWx0cywgaXRlcmF0aW9ucywKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgcHJfbnVtYmVyPXByX251bWJlciwKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgdXNlX2RldGFpbHM9VHJ1ZSkKLSAgICBlbHNlOgotICAgICAgICBsb2dnZXIuaW5mbygi
Tm8gdGVzdHMgcnVuLiIpCi0gICAgICAgICMgQmUgY29uc2VydmF0aXZlIGFuZCBvbmx5IHJldHVy
biBlcnJvcnMgd2hlbiB3ZSBrbm93IGZvciBzdXJlIHRlc3RzIGFyZSBjaGFuZ2VkLgotICAgICAg
ICBpZiB0ZXN0c19jaGFuZ2VkOgotICAgICAgICAgICAgcmV0Y29kZSA9IDMKLQotICAgIHJldHVy
biByZXRjb2RlCi0KLQotaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKLSAgICB0cnk6Ci0gICAg
ICAgIHN5cy5leGl0KG1haW4oKSkKLSAgICBleGNlcHQgRXhjZXB0aW9uOgotICAgICAgICBpbXBv
cnQgdHJhY2ViYWNrCi0gICAgICAgIHRyYWNlYmFjay5wcmludF9leGMoKQotICAgICAgICBzeXMu
ZXhpdCgxKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy9jaS9jaV9idWlsdF9kaWZmLnNoIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9jaS9jaV9idWlsdF9kaWZmLnNoCmluZGV4IDM0
ZjI0YTc0MjViLi43MDljYzJhYTdlNiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9jaS9jaV9idWlsdF9kaWZmLnNoCisrKyBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvY2kvY2lfYnVp
bHRfZGlmZi5zaApAQCAtMSw3ICsxLDggQEAKKyMhL2Jpbi9iYXNoCiBzZXQgLWV4CiAKLVNDUklQ
VF9ESVI9JChkaXJuYW1lICQocmVhZGxpbmsgLWYgIiQwIikpCi1XUFRfUk9PVD0kKHJlYWRsaW5r
IC1mICRTQ1JJUFRfRElSLy4uLy4uKQorU0NSSVBUX0RJUj0kKGNkICQoZGlybmFtZSAiJDAiKSAm
JiBwd2QgLVApCitXUFRfUk9PVD0kU0NSSVBUX0RJUi8uLi8uLgogY2QgJFdQVF9ST09UCiAKIG1h
aW4oKSB7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL2NpL2NpX2xpbnQuc2ggYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2NpL2NpX2xpbnQuc2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDQ2YjMxN2UxYTE5Li4wMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2NpL2NpX2xpbnQuc2gKKysrIC9kZXYv
bnVsbApAQCAtMSw5ICswLDAgQEAKLXNldCAtZXgKLQotU0NSSVBUX0RJUj0kKGRpcm5hbWUgJChy
ZWFkbGluayAtZiAiJDAiKSkKLVdQVF9ST09UPSQocmVhZGxpbmsgLWYgJFNDUklQVF9ESVIvLi4v
Li4pCi1jZCAkV1BUX1JPT1QKLQotbWtkaXIgLXAgfi9tZXRhCi0uL3dwdCBtYW5pZmVzdCAtcCB+
L21ldGEvTUFOSUZFU1QuanNvbgotLi93cHQgbGludApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9jaS9jaV9tYW5pZmVzdC5zaCBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvY2kvY2lf
bWFuaWZlc3Quc2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGYxM2E3MGY5MzU0Li4w
MDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL2NpL2NpX21hbmlmZXN0LnNoCisrKyAvZGV2L251bGwKQEAgLTEsMTMgKzAsMCBA
QAotc2V0IC1leAotCi1TQ1JJUFRfRElSPSQoZGlybmFtZSAkKHJlYWRsaW5rIC1mICIkMCIpKQot
V1BUX1JPT1Q9JChyZWFkbGluayAtZiAkU0NSSVBUX0RJUi8uLi8uLikKLWNkICRXUFRfUk9PVAot
Ci1ta2RpciAtcCB+L21ldGEKLQotcHl0aG9uIHRvb2xzL2NpL3RhZ19tYXN0ZXIucHkKLS4vd3B0
IG1hbmlmZXN0IC1wIH4vbWV0YS9NQU5JRkVTVC5qc29uCi1jcCB+L21ldGEvTUFOSUZFU1QuanNv
biAkV1BUX01BTklGRVNUX0ZJTEUKLSMgRm9yY2Ugb3ZlcndyaXRlIG9mIGFueSBleGlzdGluZyBm
aWxlCi1nemlwIC1mICRXUFRfTUFOSUZFU1RfRklMRQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9jaS9jaV9yZXNvdXJjZXNfdW5p
dHRlc3Quc2ggYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL2NpL2NpX3Jlc291cmNlc191bml0dGVzdC5zaAppbmRleCA3ODg2OGI5MzQzMy4uMTExOTBm
YzU4ZDYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvY2kvY2lfcmVzb3VyY2VzX3VuaXR0ZXN0LnNoCisrKyBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvY2kvY2lfcmVzb3VyY2VzX3Vu
aXR0ZXN0LnNoCkBAIC0xLDIzICsxLDE5IEBACiAjIS9iaW4vYmFzaAogc2V0IC1leAogCi1TQ1JJ
UFRfRElSPSQoZGlybmFtZSAkKHJlYWRsaW5rIC1mICIkMCIpKQotV1BUX1JPT1Q9JChyZWFkbGlu
ayAtZiAkU0NSSVBUX0RJUi8uLi8uLikKK1NDUklQVF9ESVI9JChjZCAkKGRpcm5hbWUgIiQwIikg
JiYgcHdkIC1QKQorV1BUX1JPT1Q9JFNDUklQVF9ESVIvLi4vLi4KIGNkICRXUFRfUk9PVAogCi1z
b3VyY2UgdG9vbHMvY2kvbGliLnNoCi0KIG1haW4oKSB7Ci0gICAgaG9zdHNfZml4dXAKLQogICAg
IGNkICRXUFRfUk9PVAotICAgIHBpcCBpbnN0YWxsIC1VIHRveAorICAgIHBpcCBpbnN0YWxsIC0t
dXNlciAtVSB0b3gKICAgICAuL3dwdCBpbnN0YWxsIGZpcmVmb3ggYnJvd3NlciAtLWRlc3RpbmF0
aW9uICRIT01FCiAgICAgLi93cHQgaW5zdGFsbCBmaXJlZm94IHdlYmRyaXZlciAtLWRlc3RpbmF0
aW9uICRIT01FL2ZpcmVmb3gKICAgICBleHBvcnQgUEFUSD0kSE9NRS9maXJlZm94OiRQQVRICiAK
ICAgICBjZCAkV1BUX1JPT1QvcmVzb3VyY2VzL3Rlc3QKLSAgICB0b3ggLS0gLS1iaW5hcnk9JEhP
TUUvYnJvd3NlcnMvZmlyZWZveC9maXJlZm94CisgICAgdG94IC0tIC0tYmluYXJ5PSRIT01FL2Jy
b3dzZXJzL25pZ2h0bHkvZmlyZWZveC9maXJlZm94CiB9CiAKIG1haW4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvY2kvY2lfc3Rh
YmlsaXR5LnNoIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy9jaS9jaV9zdGFiaWxpdHkuc2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGEy
M2IwNTczODUzLi4wMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2NpL2NpX3N0YWJpbGl0eS5zaAorKysgL2Rldi9udWxsCkBA
IC0xLDMwICswLDAgQEAKLSMhL2Jpbi9iYXNoCi1zZXQgLWV4Ci0KLVNDUklQVF9ESVI9JChkaXJu
YW1lICQocmVhZGxpbmsgLWYgIiQwIikpCi1XUFRfUk9PVD0kKHJlYWRsaW5rIC1mICRTQ1JJUFRf
RElSLy4uLy4uKQotY2QgJFdQVF9ST09UCi0KLXNvdXJjZSB0b29scy9jaS9saWIuc2gKLQotdGVz
dF9zdGFiaWxpdHkoKSB7Ci0gICAgbG9jYWwgZXh0cmFfYXJnPSQxCi0gICAgLi93cHQgY2hlY2st
c3RhYmlsaXR5ICRQUk9EVUNUICRleHRyYV9hcmcgLS1vdXRwdXQtYnl0ZXMgJCgoMTAyNCAqIDEw
MjQgKiAzKSkgLS1tZXRhZGF0YSB+L21ldGEvIC0taW5zdGFsbC1mb250cwotfQotCi1tYWluKCkg
ewotICAgIGhvc3RzX2ZpeHVwCi0gICAgbG9jYWwgZXh0cmFfYXJnPSIiCi0gICAgaWYgWyAkKGVj
aG8gJFBST0RVQ1QgfCBncmVwICdeY2hyb21lOicpIF07IHRoZW4KLSAgICAgICAgbG9jYWwgY2hh
bm5lbD0kKGVjaG8gJFBST0RVQ1QgfCBncmVwIC0tb25seS1tYXRjaGluZyAnXHdcKyQnKQotICAg
ICAgICBpZiBbWyAkY2hhbm5lbCA9PSAiZGV2IiBdXTsgdGhlbgotICAgICAgICAgICAgIyBUaGUg
cGFja2FnZSBuYW1lIGZvciBHb29nbGUgQ2hyb21lIERldiB1c2VzICJ1bnN0YWJsZSIsIG5vdCAi
ZGV2Ii4KLSAgICAgICAgICAgIGNoYW5uZWw9InVuc3RhYmxlIgotICAgICAgICBmaQotICAgICAg
ICBpbnN0YWxsX2Nocm9tZSAkY2hhbm5lbAotICAgICAgICBleHRyYV9hcmc9Ii0tYmluYXJ5PSQo
d2hpY2ggZ29vZ2xlLWNocm9tZS0kY2hhbm5lbCkiCi0gICAgZmkKLSAgICB0ZXN0X3N0YWJpbGl0
eSAkZXh0cmFfYXJnCi19Ci0KLW1haW4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvY2kvY2lfdGFza2NsdXN0ZXIuc2ggYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2NpL2NpX3Rhc2tj
bHVzdGVyLnNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxMTgyNDM4ODFhOS4uMDAw
MDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy9jaS9jaV90YXNrY2x1c3Rlci5zaAorKysgL2Rldi9udWxsCkBAIC0xLDEwICswLDAg
QEAKLSMhL2Jpbi9iYXNoCi0KLS4vd3B0IG1hbmlmZXN0LWRvd25sb2FkCi0KLWlmIFsgJDEgPT0g
ImZpcmVmb3giIF07IHRoZW4KLSAgICAuL3dwdCBydW4gZmlyZWZveCAtLWxvZy10YnBsPS4uL2Fy
dGlmYWN0cy9sb2dfdGJwbC5sb2cgLS1sb2ctdGJwbC1sZXZlbD1pbmZvIC0tbG9nLXdwdHJlcG9y
dD0uLi9hcnRpZmFjdHMvd3B0X3JlcG9ydC5qc29uIC0tbG9nLW1hY2g9LSAtLXRoaXMtY2h1bms9
JDMgLS10b3RhbC1jaHVua3M9JDQgLS10ZXN0LXR5cGU9JDIgLXkgLS1pbnN0YWxsLWJyb3dzZXIg
LS1uby1wYXVzZSAtLW5vLXJlc3RhcnQtb24tdW5leHBlY3RlZCAtLXJlZnRlc3QtaW50ZXJuYWwg
LS1pbnN0YWxsLWZvbnRzIC0tbm8tZmFpbC1vbi11bmV4cGVjdGVkCi1lbGlmIFsgJDEgPT0gImNo
cm9tZSIgXTsgdGhlbgotICAgIC4vd3B0IHJ1biBjaHJvbWUgLS1sb2ctdGJwbD0uLi9hcnRpZmFj
dHMvbG9nX3RicGwubG9nIC0tbG9nLXRicGwtbGV2ZWw9aW5mbyAtLWxvZy13cHRyZXBvcnQ9Li4v
YXJ0aWZhY3RzL3dwdF9yZXBvcnQuanNvbiAtLWxvZy1tYWNoPS0gLS10aGlzLWNodW5rPSQzIC0t
dG90YWwtY2h1bmtzPSQ0IC0tdGVzdC10eXBlPSQyIC15ICAtLW5vLXBhdXNlIC0tbm8tcmVzdGFy
dC1vbi11bmV4cGVjdGVkIC0taW5zdGFsbC1mb250cyAtLW5vLWZhaWwtb24tdW5leHBlY3RlZAot
ZmkKLWd6aXAgLi4vYXJ0aWZhY3RzL3dwdF9yZXBvcnQuanNvbgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9jaS9jaV90b29sc191
bml0dGVzdC5zaCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvY2kvY2lfdG9vbHNfdW5pdHRlc3Quc2gKaW5kZXggZWVhNjU5MGYzN2EuLjM2NmRjZjY2
ZGU4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL2NpL2NpX3Rvb2xzX3VuaXR0ZXN0LnNoCisrKyBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvY2kvY2lfdG9vbHNfdW5pdHRlc3Quc2gK
QEAgLTEsOCArMSw4IEBACiAjIS9iaW4vYmFzaAogc2V0IC1leAogCi1TQ1JJUFRfRElSPSQoZGly
bmFtZSAkKHJlYWRsaW5rIC1mICIkMCIpKQotV1BUX1JPT1Q9JChyZWFkbGluayAtZiAkU0NSSVBU
X0RJUi8uLi8uLikKK1NDUklQVF9ESVI9JChjZCAkKGRpcm5hbWUgIiQwIikgJiYgcHdkIC1QKQor
V1BUX1JPT1Q9JFNDUklQVF9ESVIvLi4vLi4KIGNkICRXUFRfUk9PVAogCiBydW5fYXBwbGljYWJs
ZV90b3ggKCkgewpAQCAtMTgsMTEgKzE4LDggQEAgcnVuX2FwcGxpY2FibGVfdG94ICgpIHsKICAg
ICBleHBvcnQgVE9YRU5WPSIkT0xEX1RPWEVOViIKIH0KIAotUkVMRVZBTlRfSk9CUz0kKC4vd3B0
IHRlc3Qtam9icykKLQotUkVMRVZBTlRfQ0hBTkdFU19UT09MUz0kKGVjaG8gIiRSRUxFVkFOVF9K
T0JTIiB8IGdyZXAgInRvb2xzX3VuaXR0ZXN0IiB8fCB0cnVlKQotaWYgW1sgISAteiAkUkVMRVZB
TlRfQ0hBTkdFU19UT09MUyBdXTsgdGhlbgotICAgIHBpcCBpbnN0YWxsIC1VIHRveCBjb2RlY292
CitpZiAuL3dwdCB0ZXN0LWpvYnMgLS1pbmNsdWRlcyB0b29sc191bml0dGVzdDsgdGhlbgorICAg
IHBpcCBpbnN0YWxsIC0tdXNlciAtVSB0b3ggY29kZWNvdgogICAgIGNkIHRvb2xzCiAgICAgcnVu
X2FwcGxpY2FibGVfdG94CiAgICAgY2QgJFdQVF9ST09UCkBAIC0zMCwxMiArMjcsMTAgQEAgZWxz
ZQogICAgIGVjaG8gIlNraXBwaW5nIHRvb2xzIHVuaXR0ZXN0IgogZmkKIAotUkVMRVZBTlRfQ0hB
TkdFU19XUFRSVU5ORVI9JChlY2hvICIkUkVMRVZBTlRfSk9CUyIgfCBncmVwICJ3cHRydW5uZXJf
dW5pdHRlc3QiIHx8IHRydWUpCi1pZiBbWyAhIC16ICRSRUxFVkFOVF9DSEFOR0VTX1dQVFJVTk5F
UiBdXTsgdGhlbgoraWYgLi93cHQgdGVzdC1qb2JzIC0taW5jbHVkZXMgd3B0cnVubmVyX3VuaXR0
ZXN0OyB0aGVuCiAgICAgY2QgdG9vbHMvd3B0cnVubmVyCiAgICAgcnVuX2FwcGxpY2FibGVfdG94
CiAgICAgY2QgJFdQVF9ST09UCiBlbHNlCiAgICAgZWNobyAiU2tpcHBpbmcgd3B0cnVubmVyIHVu
aXR0ZXN0IgogZmkKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy9jaS9jaV93cHQuc2ggYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2NpL2NpX3dwdC5zaAppbmRleCA5YTE2NTZmMzNk
YS4uN2MzN2U3ODYzZTAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvY2kvY2lfd3B0LnNoCisrKyBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvY2kvY2lfd3B0LnNoCkBAIC0xLDE3ICsx
LDEzIEBACiAjIS9iaW4vYmFzaAogc2V0IC1lCiAKLVNDUklQVF9ESVI9JChkaXJuYW1lICQocmVh
ZGxpbmsgLWYgIiQwIikpCi1XUFRfUk9PVD0kKHJlYWRsaW5rIC1mICRTQ1JJUFRfRElSLy4uLy4u
KQorU0NSSVBUX0RJUj0kKGNkICQoZGlybmFtZSAiJDAiKSAmJiBwd2QgLVApCitXUFRfUk9PVD0k
U0NSSVBUX0RJUi8uLi8uLgogY2QgJFdQVF9ST09UCiAKLXNvdXJjZSB0b29scy9jaS9saWIuc2gK
LQogbWFpbigpIHsKICAgICBnaXQgZmV0Y2ggLS1xdWlldCAtLXVuc2hhbGxvdyBodHRwczovL2dp
dGh1Yi5jb20vd2ViLXBsYXRmb3JtLXRlc3RzL3dwdC5naXQgK3JlZnMvaGVhZHMvKjpyZWZzL3Jl
bW90ZXMvb3JpZ2luLyoKLSAgICBob3N0c19maXh1cAotICAgIGluc3RhbGxfY2hyb21lIHVuc3Rh
YmxlCi0gICAgcGlwIGluc3RhbGwgLVUgdG94IGNvZGVjb3YKKyAgICBwaXAgaW5zdGFsbCAtLXVz
ZXIgLVUgdG94IGNvZGVjb3YKICAgICBjZCB0b29scy93cHQKICAgICB0b3gKIH0KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvY2kv
Y2lfd3B0cnVubmVyX2luZnJhc3RydWN0dXJlLnNoIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9jaS9jaV93cHRydW5uZXJfaW5mcmFzdHJ1Y3R1cmUu
c2gKaW5kZXggZDZkNjgwMzk3NGYuLjhkYjA4Nzk0YWRlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2NpL2NpX3dwdHJ1bm5lcl9p
bmZyYXN0cnVjdHVyZS5zaAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL2NpL2NpX3dwdHJ1bm5lcl9pbmZyYXN0cnVjdHVyZS5zaApAQCAtMSwx
MSArMSwxMyBAQAogIyEvYmluL2Jhc2gKIHNldCAtZXgKIAotU0NSSVBUX0RJUj0kKGRpcm5hbWUg
JChyZWFkbGluayAtZiAiJDAiKSkKLVdQVF9ST09UPSQocmVhZGxpbmsgLWYgJFNDUklQVF9ESVIv
Li4vLi4pCitTQ1JJUFRfRElSPSQoY2QgJChkaXJuYW1lICIkMCIpICYmIHB3ZCAtUCkKK1dQVF9S
T09UPSRTQ1JJUFRfRElSLy4uLy4uCiBjZCAkV1BUX1JPT1QKIAotc291cmNlIHRvb2xzL2NpL2xp
Yi5zaAorYWRkX3dwdF9ob3N0cygpIHsKKyAgICAuL3dwdCBtYWtlLWhvc3RzLWZpbGUgfCBzdWRv
IHRlZSAtYSAvZXRjL2hvc3RzCit9CiAKIHRlc3RfaW5mcmFzdHJ1Y3R1cmUoKSB7CiAgICAgbG9j
YWwgQVJHUz0iIjsKQEAgLTE0LDIwICsxNiwxNiBAQCB0ZXN0X2luZnJhc3RydWN0dXJlKCkgewog
ICAgIGVsc2UKICAgICAgICAgQVJHUz0kMQogICAgIGZpCi0gICAgLi93cHQgcnVuIC0teWVzIC0t
bWFuaWZlc3Qgfi9tZXRhL01BTklGRVNULmpzb24gLS1tZXRhZGF0YSBpbmZyYXN0cnVjdHVyZS9t
ZXRhZGF0YS8gLS1pbnN0YWxsLWZvbnRzICRBUkdTICRQUk9EVUNUIGluZnJhc3RydWN0dXJlLwor
ICAgIFRFUk09ZHVtYiAuL3dwdCBydW4gLS1sb2ctbWFjaCAtIC0teWVzIC0tbWFuaWZlc3Qgfi9t
ZXRhL01BTklGRVNULmpzb24gLS1tZXRhZGF0YSBpbmZyYXN0cnVjdHVyZS9tZXRhZGF0YS8gLS1p
bnN0YWxsLWZvbnRzICRBUkdTICRQUk9EVUNUIGluZnJhc3RydWN0dXJlLwogfQogCiBtYWluKCkg
ewogICAgIFBST0RVQ1RTPSggImZpcmVmb3giICJjaHJvbWUiICkKKyAgICAuL3dwdCBtYW5pZmVz
dCAtLXJlYnVpbGQgLXAgfi9tZXRhL01BTklGRVNULmpzb24KICAgICBmb3IgUFJPRFVDVCBpbiAi
JHtQUk9EVUNUU1tAXX0iOyBkbwotICAgICAgICBpZiBbICIkUFJPRFVDVCIgIT0gImZpcmVmb3gi
IF07IHRoZW4KLSAgICAgICAgICAgICMgRmlyZWZveCBpcyBleHBlY3RlZCB0byB3b3JrIHVzaW5n
IHByZWYgc2V0dGluZ3MgZm9yIEROUwotICAgICAgICAgICAgIyBEb24ndCBhZGp1c3QgdGhlIGhv
c3RuYW1lcyBpbiB0aGF0IGNhc2UgdG8gZW5zdXJlIHRoaXMga2VlcHMgd29ya2luZwotICAgICAg
ICAgICAgaG9zdHNfZml4dXAKLSAgICAgICAgZmkKLSAgICAgICAgaWYgWyAiJFBST0RVQ1QiID09
ICJjaHJvbWUiIF07IHRoZW4KLSAgICAgICAgICAgIGluc3RhbGxfY2hyb21lIHVuc3RhYmxlCi0g
ICAgICAgICAgICB0ZXN0X2luZnJhc3RydWN0dXJlICItLWJpbmFyeT0kKHdoaWNoIGdvb2dsZS1j
aHJvbWUtdW5zdGFibGUpIgorICAgICAgICBpZiBbWyAiJFBST0RVQ1QiID09ICJjaHJvbWUiIF1d
OyB0aGVuCisgICAgICAgICAgICBhZGRfd3B0X2hvc3RzCisgICAgICAgICAgICB0ZXN0X2luZnJh
c3RydWN0dXJlICItLWJpbmFyeT0kKHdoaWNoIGdvb2dsZS1jaHJvbWUtdW5zdGFibGUpIC0tY2hh
bm5lbCBkZXYiCiAgICAgICAgIGVsc2UKICAgICAgICAgICAgIHRlc3RfaW5mcmFzdHJ1Y3R1cmUK
ICAgICAgICAgZmkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvY2kvY29tbWFuZHMuanNvbiBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvY2kvY29tbWFuZHMuanNvbgppbmRleCAwZjhm
NTgyMzY5OS4uYzljZDdjNDU4OTggMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvY2kvY29tbWFuZHMuanNvbgorKysgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2NpL2NvbW1hbmRzLmpz
b24KQEAgLTEsNyArMSw1MCBAQAogewotICAgICJ0ZXN0LWpvYnMiOiB7InBhdGgiOiAiam9icy5w
eSIsICJzY3JpcHQiOiAicnVuIiwgInBhcnNlciI6ICJjcmVhdGVfcGFyc2VyIiwgImhlbHAiOiAi
TGlzdCB0ZXN0IGpvYnMgdGhhdCBzaG91bGQgcnVuIGZvciBhIHNldCBvZiBjb21taXRzIiwKLSAg
ICAgICAgICAgICAgICAgICJ2aXJ0dWFsZW52IjogZmFsc2V9LAotICAgICJjaGVjay1zdGFiaWxp
dHkiOiB7InBhdGgiOiAiY2hlY2tfc3RhYmlsaXR5LnB5IiwgInNjcmlwdCI6ICJydW4iLCAicGFy
c2VyIjogImdldF9wYXJzZXIiLCAicGFyc2Vfa25vd24iOiB0cnVlLCAiaGVscCI6ICJDaGVjayB0
ZXN0IHN0YWJpbGl0eSIsCi0gICAgICAgICAgICAgICAgICAgICAgICAidmlydHVhbGVudiI6IHRy
dWUsICJpbnN0YWxsIjogWyJyZXF1ZXN0cyJdLCAicmVxdWlyZW1lbnRzIjogWyIuLi93cHRydW5u
ZXIvcmVxdWlyZW1lbnRzLnR4dCJdfSwKLSAgICAibWFrZS1ob3N0cy1maWxlIjogeyJwYXRoIjog
Im1ha2VfaG9zdHNfZmlsZS5weSIsICJzY3JpcHQiOiAicnVuIiwgInBhcnNlciI6ICJjcmVhdGVf
cGFyc2VyIiwgImhlbHAiOiAiT3V0cHV0IGEgaG9zdHMgZmlsZSB0byBzdGRvdXQiLCAidmlydHVh
bGVudiI6IGZhbHNlfQorICAidGVzdC1qb2JzIjogeworICAgICJwYXRoIjogImpvYnMucHkiLAor
ICAgICJzY3JpcHQiOiAicnVuIiwKKyAgICAicGFyc2VyIjogImNyZWF0ZV9wYXJzZXIiLAorICAg
ICJoZWxwIjogIkxpc3QgdGVzdCBqb2JzIHRoYXQgc2hvdWxkIHJ1biBmb3IgYSBzZXQgb2YgY29t
bWl0cyIsCisgICAgInZpcnR1YWxlbnYiOiBmYWxzZQorICB9LAorICAibWFrZS1ob3N0cy1maWxl
IjogeworICAgICJwYXRoIjogIm1ha2VfaG9zdHNfZmlsZS5weSIsCisgICAgInNjcmlwdCI6ICJy
dW4iLAorICAgICJwYXJzZXIiOiAiY3JlYXRlX3BhcnNlciIsCisgICAgImhlbHAiOiAiT3V0cHV0
IGEgaG9zdHMgZmlsZSB0byBzdGRvdXQiLAorICAgICJ2aXJ0dWFsZW52IjogZmFsc2UKKyAgfSwK
KyAgInRjLWRvd25sb2FkIjogeworICAgICJwYXRoIjogInRjL2Rvd25sb2FkLnB5IiwKKyAgICAi
c2NyaXB0IjogInJ1biIsCisgICAgInBhcnNlciI6ICJnZXRfcGFyc2VyIiwKKyAgICAicGFyc2Vf
a25vd24iOiB0cnVlLAorICAgICJoZWxwIjogIkRvd25sb2FkIGxvZ3MgZnJvbSB0YXNrY2x1c3Rl
ciIsCisgICAgInZpcnR1YWxlbnYiOiB0cnVlLAorICAgICJpbnN0YWxsIjogWworICAgICAgInJl
cXVlc3RzIiwKKyAgICAgICJweWdpdGh1YiIKKyAgICBdCisgIH0sCisgICJ0Yy10YXNrZ3JhcGgi
OiB7CisgICAgInBhdGgiOiAidGMvdGFza2dyYXBoLnB5IiwKKyAgICAic2NyaXB0IjogInJ1biIs
CisgICAgImhlbHAiOiAiQnVpbGQgdGhlIHRhc2tncmFwaCIsCisgICAgInZpcnR1YWxlbnYiOiB0
cnVlLAorICAgICJpbnN0YWxsIjogWworICAgICAgInJlcXVlc3RzIiwKKyAgICAgICJweXlhbWwi
CisgICAgXQorICB9LAorICAidGMtZGVjaXNpb24iOiB7CisgICAgInBhdGgiOiAidGMvZGVjaXNp
b24ucHkiLAorICAgICJwYXJzZXIiOiAiZ2V0X3BhcnNlciIsCisgICAgInNjcmlwdCI6ICJydW4i
LAorICAgICJoZWxwIjogIlJ1biB0aGUgZGVjaXNpb24gdGFzayIsCisgICAgInZpcnR1YWxlbnYi
OiB0cnVlLAorICAgICJpbnN0YWxsIjogWworICAgICAgICAicmVxdWVzdHMiLAorICAgICAgICAi
cHl5YW1sIiwKKyAgICAgICAgInRhc2tjbHVzdGVyIgorICAgIF0KKyAgfQogfQpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9jaS9l
cG9jaHNfdXBkYXRlLnNoIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy9jaS9lcG9jaHNfdXBkYXRlLnNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwLi40YjM5M2ZhNmRiNQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvY2kvZXBvY2hzX3VwZGF0ZS5z
aApAQCAtMCwwICsxLDQ2IEBACisjIS9iaW4vYmFzaAorc2V0IC1leAorCitTQ1JJUFRfRElSPSQo
Y2QgJChkaXJuYW1lICIkMCIpICYmIHB3ZCAtUCkKK1dQVF9ST09UPSRTQ1JJUFRfRElSLy4uLy4u
CisKK0VQT0NIUz0oCitlcG9jaHMvdGhyZWVfaG91cmx5OjozaAorZXBvY2hzL3NpeF9ob3VybHk6
OjZoCitlcG9jaHMvdHdlbHZlX2hvdXJseTo6MTJoCitlcG9jaHMvZGFpbHk6OjFkCitlcG9jaHMv
d2Vla2x5OjoxdworKQorCitmdW5jdGlvbiBnZXRfZXBvY2hfYnJhbmNoX25hbWUgKCkgeworICAg
IGVjaG8gJHsxfSB8IGF3ayAtRiAnOjonICd7cHJpbnQgJDF9JworfQorCitmdW5jdGlvbiBnZXRf
ZXBvY2hfdGltZXZhbCAoKSB7CisgICAgZWNobyAkezF9IHwgYXdrIC1GICc6OicgJ3twcmludCAk
Mn0nCit9CisKK21haW4gKCkgeworICAgIEFMTF9CUkFOQ0hFU19OQU1FUz0iIgorICAgIGZvciBl
IGluICIke0VQT0NIU1tAXX0iOworICAgIGRvCisgICAgICAgIEVQT0NIPSQoZ2V0X2Vwb2NoX3Rp
bWV2YWwgJHtlfSkKKyAgICAgICAgRVBPQ0hfQlJBTkNIX05BTUU9JChnZXRfZXBvY2hfYnJhbmNo
X25hbWUgJHtlfSkKKyAgICAgICAgZ2l0IGJyYW5jaCAke0VQT0NIX0JSQU5DSF9OQU1FfSAkKC4v
d3B0IHJldi1saXN0IC0tZXBvY2ggJHtFUE9DSH0pCisgICAgICAgIEFMTF9CUkFOQ0hFU19OQU1F
Uz0iJHtBTExfQlJBTkNIRVNfTkFNRVN9ICR7RVBPQ0hfQlJBTkNIX05BTUV9IgorICAgIGRvbmUK
KyAgICAjIFRoaXMgaXMgc2FmZSBiZWNhdXNlIGBnaXQgcHVzaGAgd2lsbCBieSBkZWZhdWx0IGZh
aWwgZm9yIGEgbm9uLWZhc3QtZm9yd2FyZAorICAgICMgcHVzaCwgZm9yIGV4YW1wbGUgaWYgdGhl
IHJlbW90ZSBicmFuY2ggaXMgYWhlYWQgb2YgdGhlIGxvY2FsIGJyYW5jaC4KKyAgICBnaXQgcHVz
aCAke1JFTU9URX0gJHtBTExfQlJBTkNIRVNfTkFNRVN9Cit9CisKK2NkICRXUFRfUk9PVAorCitp
ZiBbIC16ICIkR0lUSFVCX1RPS0VOIiBdOyB0aGVuCisgICAgZWNobyAiR0lUSFVCX1RPS0VOIG11
c3QgYmUgc2V0IGFzIGFuIGVudmlyb25tZW50IHZhcmlhYmxlIgorICAgIGV4aXQgMQorZmkKKwor
UkVNT1RFPWh0dHBzOi8veC1hY2Nlc3MtdG9rZW46JEdJVEhVQl9UT0tFTkBnaXRodWIuY29tL3dl
Yi1wbGF0Zm9ybS10ZXN0cy93cHQuZ2l0CisKK21haW4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvY2kvaW5zdGFsbC5zaCBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvY2kvaW5zdGFs
bC5zaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZDFkNDM2OGQ0ZmYuLjAwMDAwMDAw
MDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvY2kvaW5zdGFsbC5zaAorKysgL2Rldi9udWxsCkBAIC0xLDExICswLDAgQEAKLSMhL2Jpbi9i
YXNoCi1zZXQgLWV4Ci0KLVNDUklQVF9ESVI9JChkaXJuYW1lICQocmVhZGxpbmsgLWYgIiQwIikp
Ci1XUFRfUk9PVD0kKHJlYWRsaW5rIC1mICRTQ1JJUFRfRElSLy4uLy4uKQotY2QgJFdQVF9ST09U
Ci0KLWlmIFtbICRSVU5fSk9CIC1lcSAxIF1dOyB0aGVuCi0gICAgcGlwIGluc3RhbGwgLVUgc2V0
dXB0b29scwotICAgIHBpcCBpbnN0YWxsIC1VIHJlcXVlc3RzCi1maQpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9jaS9qb2JzLnB5
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9jaS9q
b2JzLnB5CmluZGV4IDZmM2Y2NDU2MDE2Li4zZDgwOWVmYTM3YyAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9jaS9qb2JzLnB5Cisr
KyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvY2kv
am9icy5weQpAQCAtOCwzOCArOCw1OCBAQCBmcm9tIHNpeCBpbXBvcnQgaXRlcml0ZW1zCiAKIHdw
dF9yb290ID0gb3MucGF0aC5hYnNwYXRoKG9zLnBhdGguam9pbihvcy5wYXRoLmRpcm5hbWUoX19m
aWxlX18pLCBvcy5wYXJkaXIsIG9zLnBhcmRpcikpCiAKKyMgQ29tbW9uIGV4Y2x1c2lvbnMgYmV0
d2VlbiBhZmZlY3RlZF90ZXN0cyBhbmQgc3RhYmlsaXR5IGpvYnMuCisjIEZpbGVzIGluIHRoZXNl
IGRpcnMgd291bGQgdHJpZ2dlciB0aGUgZXhlY3V0aW9uIG9mIHRvbyBtYW55IHRlc3RzLgorRVhD
TFVERVMgPSBbCisgICAgIiF0b29scy8iLAorICAgICIhZG9jcy8iLAorICAgICIhY29uZm9ybWFu
Y2UtY2hlY2tlcnMvIiwKKyAgICAiIS4qL09XTkVSUyIsCisgICAgIiEuKi9NRVRBLnltbCIsCisg
ICAgIiEuKi90b29scy8iLAorICAgICIhLiovUkVBRE1FIiwKKyAgICAiIWNzcy9bXi9dKiQiCitd
CisKICMgUnVsZXMgYXJlIGp1c3QgcmVnZXggb24gdGhlIHBhdGgsIHdpdGggYSBsZWFkaW5nICEg
aW5kaWNhdGluZyBhIHJlZ2V4IHRoYXQgbXVzdCBub3QKICMgbWF0Y2ggZm9yIHRoZSBqb2IKIGpv
Yl9wYXRoX21hcCA9IHsKLSAgICAic3RhYmlsaXR5IjogWyIuKi8uKiIsCi0gICAgICAgICAgICAg
ICAgICAiIXRvb2xzLyIsCi0gICAgICAgICAgICAgICAgICAiIWRvY3MvIiwKLSAgICAgICAgICAg
ICAgICAgICIhcmVzb3VyY2VzLyoiLAotICAgICAgICAgICAgICAgICAgIiFjb25mb3JtYW5jZS1j
aGVja2Vycy8iLAotICAgICAgICAgICAgICAgICAgIiEuKi9PV05FUlMiLAotICAgICAgICAgICAg
ICAgICAgIiEuKi9NRVRBLnltbCIsCi0gICAgICAgICAgICAgICAgICAiIS4qL3Rvb2xzLyIsCi0g
ICAgICAgICAgICAgICAgICAiIS4qL1JFQURNRSIsCi0gICAgICAgICAgICAgICAgICAiIWNzcy9b
Xi9dKiQiXSwKKyAgICAiYWZmZWN0ZWRfdGVzdHMiOiBbIi4qLy4qIiwgIiFyZXNvdXJjZXMvKD8h
aWRsaGFybmVzcy5qcykiXSArIEVYQ0xVREVTLAorICAgICJzdGFiaWxpdHkiOiBbIi4qLy4qIiwg
IiFyZXNvdXJjZXMvLioiXSArIEVYQ0xVREVTLAogICAgICJsaW50IjogWyIuKiJdLAogICAgICJt
YW5pZmVzdF91cGxvYWQiOiBbIi4qIl0sCiAgICAgInJlc291cmNlc191bml0dGVzdCI6IFsicmVz
b3VyY2VzLyIsICJ0b29scy8iXSwKICAgICAidG9vbHNfdW5pdHRlc3QiOiBbInRvb2xzLyJdLAot
ICAgICJ3cHRydW5uZXJfdW5pdHRlc3QiOiBbInRvb2xzL3dwdHJ1bm5lci8qIl0sCisgICAgIndw
dHJ1bm5lcl91bml0dGVzdCI6IFsidG9vbHMvIl0sCiAgICAgImJ1aWxkX2NzcyI6IFsiY3NzLyJd
LAotICAgICJ1cGRhdGVfYnVpbHQiOiBbIjJkY29udGV4dC8iLAorICAgICJ1cGRhdGVfYnVpbHQi
OiBbInVwZGF0ZS1idWlsdC10ZXN0c1xcLnNoIiwKKyAgICAgICAgICAgICAgICAgICAgICIyZGNv
bnRleHQvIiwKKyAgICAgICAgICAgICAgICAgICAgICJpbmZyYXN0cnVjdHVyZS8iLAogICAgICAg
ICAgICAgICAgICAgICAgImh0bWwvIiwKLSAgICAgICAgICAgICAgICAgICAgICJvZmZzY3JlZW4t
Y2FudmFzLyJdLAorICAgICAgICAgICAgICAgICAgICAgIm9mZnNjcmVlbi1jYW52YXMvIiwKKyAg
ICAgICAgICAgICAgICAgICAgICJtaW1lc25pZmYvIiwKKyAgICAgICAgICAgICAgICAgICAgICJj
c3MvY3NzLXVpLyIsCisgICAgICAgICAgICAgICAgICAgICAiV2ViSURMIl0sCiAgICAgIndwdF9p
bnRlZ3JhdGlvbiI6IFsidG9vbHMvIl0sCi0gICAgIndwdHJ1bm5lcl9pbmZyYXN0cnVjdHVyZSI6
IFsiaW5mcmFzdHJ1Y3R1cmUvIiwgInRvb2xzLyJdLAorICAgICJ3cHRydW5uZXJfaW5mcmFzdHJ1
Y3R1cmUiOiBbImluZnJhc3RydWN0dXJlLyIsICJ0b29scy8iLCAicmVzb3VyY2VzLyJdLAogfQog
CiAKK2RlZiBfcGF0aF9ub3JtKHBhdGgpOgorICAgICIiIm5vcm1hbGl6ZSBhIHBhdGggZm9yIGJv
dGggY2FzZSBhbmQgc2xhc2hlcyAodG8gLykiIiIKKyAgICBwYXRoID0gb3MucGF0aC5ub3JtY2Fz
ZShwYXRoKQorICAgIGlmIG9zLnBhdGguc2VwICE9ICIvIjoKKyAgICAgICAgIyB0aGlzIG11c3Qg
YmUgYWZ0ZXIgdGhlIG5vcm1jYXNlIGNhbGwgYXMgdGhhdCBkb2VzIHNsYXNoIG5vcm1hbGl6YXRp
b24KKyAgICAgICAgcGF0aCA9IHBhdGgucmVwbGFjZShvcy5wYXRoLnNlcCwgIi8iKQorICAgIHJl
dHVybiBwYXRoCisKKwogY2xhc3MgUnVsZXNldChvYmplY3QpOgogICAgIGRlZiBfX2luaXRfXyhz
ZWxmLCBydWxlcyk6CiAgICAgICAgIHNlbGYuaW5jbHVkZSA9IFtdCiAgICAgICAgIHNlbGYuZXhj
bHVkZSA9IFtdCiAgICAgICAgIGZvciBydWxlIGluIHJ1bGVzOgorICAgICAgICAgICAgcnVsZSA9
IF9wYXRoX25vcm0ocnVsZSkKICAgICAgICAgICAgIHNlbGYuYWRkX3J1bGUocnVsZSkKIAogICAg
IGRlZiBhZGRfcnVsZShzZWxmLCBydWxlKToKQEAgLTUyLDkgKzcyLDcgQEAgY2xhc3MgUnVsZXNl
dChvYmplY3QpOgogICAgICAgICB0YXJnZXQuYXBwZW5kKHJlLmNvbXBpbGUoIl4lcyIgJSBydWxl
KSkKIAogICAgIGRlZiBfX2NhbGxfXyhzZWxmLCBwYXRoKToKLSAgICAgICAgaWYgb3MucGF0aC5z
ZXAgIT0gIi8iOgotICAgICAgICAgICAgcGF0aCA9IHBhdGgucmVwbGFjZShvcy5wYXRoLnNlcCwg
Ii8iKQotICAgICAgICBwYXRoID0gb3MucGF0aC5ub3JtY2FzZShwYXRoKQorICAgICAgICBwYXRo
ID0gX3BhdGhfbm9ybShwYXRoKQogICAgICAgICBmb3IgaXRlbSBpbiBzZWxmLmV4Y2x1ZGU6CiAg
ICAgICAgICAgICBpZiBpdGVtLm1hdGNoKHBhdGgpOgogICAgICAgICAgICAgICAgIHJldHVybiBG
YWxzZQpAQCAtNzYsMTIgKzk0LDE0IEBAIGRlZiBnZXRfcGF0aHMoKiprd2FyZ3MpOgogICAgICAg
ICByZXZpc2ggPSBrd2FyZ3NbInJldmlzaCJdCiAKICAgICBjaGFuZ2VkLCBfID0gZmlsZXNfY2hh
bmdlZChyZXZpc2gpCi0gICAgYWxsX2NoYW5nZWQgPSBzZXQob3MucGF0aC5yZWxwYXRoKGl0ZW0s
IHdwdF9yb290KQotICAgICAgICAgICAgICAgICAgICAgIGZvciBpdGVtIGluIHNldChjaGFuZ2Vk
KSkKKyAgICBhbGxfY2hhbmdlZCA9IHtvcy5wYXRoLnJlbHBhdGgoaXRlbSwgd3B0X3Jvb3QpIGZv
ciBpdGVtIGluIHNldChjaGFuZ2VkKX0KICAgICByZXR1cm4gYWxsX2NoYW5nZWQKIAogCiBkZWYg
Z2V0X2pvYnMocGF0aHMsICoqa3dhcmdzKToKKyAgICBpZiBrd2FyZ3MuZ2V0KCJhbGwiKToKKyAg
ICAgICAgcmV0dXJuIHNldChqb2JfcGF0aF9tYXAua2V5cygpKQorCiAgICAgam9icyA9IHNldCgp
CiAKICAgICBydWxlcyA9IHt9CkBAIC0xMTMsNiArMTMzLDcgQEAgZGVmIGdldF9qb2JzKHBhdGhz
LCAqKmt3YXJncyk6CiBkZWYgY3JlYXRlX3BhcnNlcigpOgogICAgIHBhcnNlciA9IGFyZ3BhcnNl
LkFyZ3VtZW50UGFyc2VyKCkKICAgICBwYXJzZXIuYWRkX2FyZ3VtZW50KCJyZXZpc2giLCBkZWZh
dWx0PU5vbmUsIGhlbHA9IkNvbW1pdHMgdG8gY29uc2lkZXIuIERlZmF1bHRzIHRvIHRoZSBjb21t
aXRzIG9uIHRoZSBjdXJyZW50IGJyYW5jaCIsIG5hcmdzPSI/IikKKyAgICBwYXJzZXIuYWRkX2Fy
Z3VtZW50KCItLWFsbCIsIGhlbHA9Ikxpc3QgYWxsIGpvYnMgdW5jb25kaXRpb25hbGx5LiIsIGFj
dGlvbj0ic3RvcmVfdHJ1ZSIpCiAgICAgcGFyc2VyLmFkZF9hcmd1bWVudCgiLS1pbmNsdWRlcyIs
IGRlZmF1bHQ9Tm9uZSwgaGVscD0iSm9icyB0byBjaGVjayBmb3IuIFJldHVybiBjb2RlIGlzIDAg
aWYgYWxsIGpvYnMgYXJlIGZvdW5kLCBvdGhlcndpc2UgMSIsIG5hcmdzPSIqIikKICAgICByZXR1
cm4gcGFyc2VyCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvY2kvbGliLnNoIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy9jaS9saWIuc2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDdjMGI4MjUzYTkwLi4wMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2NpL2xpYi5zaAorKysgL2Rldi9udWxsCkBA
IC0xLDM3ICswLDAgQEAKLSMhL2Jpbi9iYXNoCi0KLWhvc3RzX2ZpeHVwKCkgewotICAgIGVjaG8g
InRyYXZpc19mb2xkOnN0YXJ0Omhvc3RzX2ZpeHVwIgotICAgIGVjaG8gIlJld3JpdGluZyBob3N0
cyBmaWxlIgotICAgIGVjaG8gIiMjIC9ldGMvaG9zdHMgIyMiCi0gICAgY2F0IC9ldGMvaG9zdHMK
LSAgICBzdWRvIHNlZCAtaSAncy9eOjoxXHMqbG9jYWxob3N0Lzo6MS8nIC9ldGMvaG9zdHMKLSAg
ICAuL3dwdCBtYWtlLWhvc3RzLWZpbGUgfCBzdWRvIHRlZSAtYSAvZXRjL2hvc3RzCi0gICAgZWNo
byAiPT0gL2V0Yy9ob3N0cyA9PSIKLSAgICBjYXQgL2V0Yy9ob3N0cwotICAgIGVjaG8gIi0tLS0t
LS0tLS0tLS0tLS0iCi0gICAgZWNobyAidHJhdmlzX2ZvbGQ6ZW5kOmhvc3RzX2ZpeHVwIgotfQot
Ci1pbnN0YWxsX2Nocm9tZSgpIHsKLSAgICBjaGFubmVsPSQxCi0gICAgZGViX2FyY2hpdmU9Z29v
Z2xlLWNocm9tZS0ke2NoYW5uZWx9X2N1cnJlbnRfYW1kNjQuZGViCi0gICAgd2dldCAtcSBodHRw
czovL2RsLmdvb2dsZS5jb20vbGludXgvZGlyZWN0LyRkZWJfYXJjaGl2ZQotCi0gICAgIyBJZiB0
aGUgZW52aXJvbm1lbnQgcHJvdmlkZXMgYW4gaW5zdGFsbGF0aW9uIG9mIEdvb2dsZSBDaHJvbWUs
IHRoZQotICAgICMgZXhpc3RpbmcgYmluYXJ5IG1heSB0YWtlIHByZWNlZGVuY2Ugb3ZlciB0aGUg
b25lIGludHJvZHVjZWQgaW4gdGhpcwotICAgICMgc2NyaXB0LiBSZW1vdmUgYW55IHByZXZpb3Vz
bHktZXhpc3RpbmcgImFsdGVybmF0aXZlcyIgcHJpb3IgdG8KLSAgICAjIGluc3RhbGxhdGlvbiBp
biBvcmRlciB0byBlbnN1cmUgdGhhdCB0aGUgbmV3IGJpbmFyeSBpcyBpbnN0YWxsZWQgYXMKLSAg
ICAjIGludGVuZGVkLgotICAgIGlmIHN1ZG8gdXBkYXRlLWFsdGVybmF0aXZlcyAtLWxpc3QgZ29v
Z2xlLWNocm9tZTsgdGhlbgotICAgICAgICBzdWRvIHVwZGF0ZS1hbHRlcm5hdGl2ZXMgLS1yZW1v
dmUtYWxsIGdvb2dsZS1jaHJvbWUKLSAgICBmaQotCi0gICAgIyBJbnN0YWxsYXRpb24gd2lsbCBm
YWlsIGluIGNhc2VzIHdoZXJlIHRoZSBwYWNrYWdlIGhhcyB1bm1ldCBkZXBlbmRlbmNpZXMuCi0g
ICAgIyBXaGVuIHRoaXMgb2NjdXJzLCBhdHRlbXB0IHRvIHVzZSB0aGUgc3lzdGVtIHBhY2thZ2Ug
bWFuYWdlciB0byBmZXRjaCB0aGUKLSAgICAjIHJlcXVpcmVkIHBhY2thZ2VzIGFuZCByZXRyeS4K
LSAgICBpZiAhIHN1ZG8gZHBrZyAtLWluc3RhbGwgJGRlYl9hcmNoaXZlOyB0aGVuCi0gICAgICBz
dWRvIGFwdC1nZXQgaW5zdGFsbCAtLWZpeC1icm9rZW4KLSAgICAgIHN1ZG8gZHBrZyAtLWluc3Rh
bGwgJGRlYl9hcmNoaXZlCi0gICAgZmkKLX0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvY2kvbWFuaWZlc3RfYnVpbGQucHkgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2NpL21hbmlm
ZXN0X2J1aWxkLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi4xZTM4
OGRmYTc0MQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvY2kvbWFuaWZlc3RfYnVpbGQucHkKQEAgLTAsMCArMSwxOTcg
QEAKK2ltcG9ydCBqc29uCitpbXBvcnQgbG9nZ2luZworaW1wb3J0IG9zCitpbXBvcnQgc3VicHJv
Y2VzcworaW1wb3J0IHN5cworaW1wb3J0IHRlbXBmaWxlCisKK2ltcG9ydCByZXF1ZXN0cworCito
ZXJlID0gb3MucGF0aC5hYnNwYXRoKG9zLnBhdGguZGlybmFtZShfX2ZpbGVfXykpCit3cHRfcm9v
dCA9IG9zLnBhdGguYWJzcGF0aChvcy5wYXRoLmpvaW4oaGVyZSwgb3MucGFyZGlyLCBvcy5wYXJk
aXIpKQorCitpZiBub3Qod3B0X3Jvb3QgaW4gc3lzLnBhdGgpOgorICAgIHN5cy5wYXRoLmFwcGVu
ZCh3cHRfcm9vdCkKKworZnJvbSB0b29scy53cHQudGVzdGZpbGVzIGltcG9ydCBnZXRfZ2l0X2Nt
ZAorCitsb2dnaW5nLmJhc2ljQ29uZmlnKGxldmVsPWxvZ2dpbmcuSU5GTykKK2xvZ2dlciA9IGxv
Z2dpbmcuZ2V0TG9nZ2VyKF9fbmFtZV9fKQorCisKK2NsYXNzIFN0YXR1cyhvYmplY3QpOgorICAg
IFNVQ0NFU1MgPSAwCisgICAgRkFJTCA9IDEKKworCitkZWYgcnVuKGNtZCwgcmV0dXJuX3N0ZG91
dD1GYWxzZSwgKiprd2FyZ3MpOgorICAgIGxvZ2dlci5pbmZvKCIgIi5qb2luKGNtZCkpCisgICAg
aWYgcmV0dXJuX3N0ZG91dDoKKyAgICAgICAgZiA9IHN1YnByb2Nlc3MuY2hlY2tfb3V0cHV0Cisg
ICAgZWxzZToKKyAgICAgICAgZiA9IHN1YnByb2Nlc3MuY2hlY2tfY2FsbAorICAgIHJldHVybiBm
KGNtZCwgKiprd2FyZ3MpCisKKworZGVmIGNyZWF0ZV9tYW5pZmVzdChwYXRoKToKKyAgICBydW4o
WyIuL3dwdCIsICJtYW5pZmVzdCIsICItcCIsIHBhdGhdKQorCisKK2RlZiBjb21wcmVzc19tYW5p
ZmVzdChwYXRoKToKKyAgICBmb3IgYXJncyBpbiBbWyJnemlwIiwgIi1rIiwgIi1mIiwgIi0tYmVz
dCJdLAorICAgICAgICAgICAgICAgICBbImJ6aXAyIiwgIi1rIiwgIi1mIiwgIi0tYmVzdCJdLAor
ICAgICAgICAgICAgICAgICBbInpzdGQiLCAiLWsiLCAiLWYiLCAiLS11bHRyYSIsICItMjIiLCAi
LXEiXV06CisgICAgICAgIHJ1bihhcmdzICsgW3BhdGhdKQorCisKK2RlZiByZXF1ZXN0KHVybCwg
ZGVzYywgbWV0aG9kPU5vbmUsIGRhdGE9Tm9uZSwganNvbl9kYXRhPU5vbmUsIHBhcmFtcz1Ob25l
LCBoZWFkZXJzPU5vbmUpOgorICAgIGdpdGh1Yl90b2tlbiA9IG9zLmVudmlyb24uZ2V0KCJHSVRI
VUJfVE9LRU4iKQorICAgIGRlZmF1bHRfaGVhZGVycyA9IHsKKyAgICAgICAgIkF1dGhvcml6YXRp
b24iOiAidG9rZW4gJXMiICUgZ2l0aHViX3Rva2VuLAorICAgICAgICAiQWNjZXB0IjogImFwcGxp
Y2F0aW9uL3ZuZC5naXRodWIubWFjaGluZS1tYW4tcHJldmlldytqc29uIgorICAgIH0KKworICAg
IF9oZWFkZXJzID0gZGVmYXVsdF9oZWFkZXJzCisgICAgaWYgaGVhZGVycyBpcyBub3QgTm9uZToK
KyAgICAgICAgX2hlYWRlcnMudXBkYXRlKGhlYWRlcnMpCisKKyAgICBrd2FyZ3MgPSB7InBhcmFt
cyI6IHBhcmFtcywKKyAgICAgICAgICAgICAgImhlYWRlcnMiOiBfaGVhZGVyc30KKyAgICB0cnk6
CisgICAgICAgIGxvZ2dlci5pbmZvKCJSZXF1ZXN0aW5nIFVSTCAlcyIgJSB1cmwpCisgICAgICAg
IGlmIGpzb25fZGF0YSBpcyBub3QgTm9uZSBvciBkYXRhIGlzIG5vdCBOb25lOgorICAgICAgICAg
ICAgaWYgbWV0aG9kIGlzIE5vbmU6CisgICAgICAgICAgICAgICAgbWV0aG9kID0gcmVxdWVzdHMu
cG9zdAorICAgICAgICAgICAga3dhcmdzWyJqc29uIl0gPSBqc29uX2RhdGEKKyAgICAgICAgICAg
IGt3YXJnc1siZGF0YSJdID0gZGF0YQorICAgICAgICBlbGlmIG1ldGhvZCBpcyBOb25lOgorICAg
ICAgICAgICAgbWV0aG9kID0gcmVxdWVzdHMuZ2V0CisKKyAgICAgICAgcmVzcCA9IG1ldGhvZCh1
cmwsICoqa3dhcmdzKQorCisgICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBlOgorICAgICAgICBsb2dn
ZXIuZXJyb3IoIiVzIGZhaWxlZDpcbiVzIiAlIChkZXNjLCBlKSkKKyAgICAgICAgcmV0dXJuIE5v
bmUKKworICAgIHRyeToKKyAgICAgICAgcmVzcC5yYWlzZV9mb3Jfc3RhdHVzKCkKKyAgICBleGNl
cHQgcmVxdWVzdHMuSFRUUEVycm9yOgorICAgICAgICBsb2dnZXIuZXJyb3IoIiVzIGZhaWxlZDog
R290IEhUVFAgc3RhdHVzICVzLiBSZXNwb25zZToiICUKKyAgICAgICAgICAgICAgICAgICAgIChk
ZXNjLCByZXNwLnN0YXR1c19jb2RlKSkKKyAgICAgICAgbG9nZ2VyLmVycm9yKHJlc3AudGV4dCkK
KyAgICAgICAgcmV0dXJuIE5vbmUKKworICAgIHRyeToKKyAgICAgICAgcmV0dXJuIHJlc3AuanNv
bigpCisgICAgZXhjZXB0IFZhbHVlRXJyb3I6CisgICAgICAgIGxvZ2dlci5lcnJvcigiJXMgZmFp
bGVkOiBSZXR1cm5lZCBkYXRhIHdhcyBub3QgSlNPTiBSZXNwb25zZToiICUKKyAgICAgICAgICAg
ICAgICAgICAgIChkZXNjLCByZXNwLnN0YXR1c19jb2RlKSkKKyAgICAgICAgbG9nZ2VyLmVycm9y
KHJlc3AudGV4dCkKKworCitkZWYgZ2V0X3ByKG93bmVyLCByZXBvLCBzaGEpOgorICAgIGRhdGEg
PSByZXF1ZXN0KCJodHRwczovL2FwaS5naXRodWIuY29tL3NlYXJjaC9pc3N1ZXM/cT10eXBlOnBy
K2lzOm1lcmdlZCtyZXBvOiVzLyVzK3NoYTolcyIgJQorICAgICAgICAgICAgICAgICAgIChvd25l
ciwgcmVwbywgc2hhKSwgIkdldHRpbmcgUFIiKQorICAgIGlmIGRhdGEgaXMgTm9uZToKKyAgICAg
ICAgcmV0dXJuIE5vbmUKKworICAgIGl0ZW1zID0gZGF0YVsiaXRlbXMiXQorICAgIGlmIGxlbihp
dGVtcykgPT0gMDoKKyAgICAgICAgbG9nZ2VyLmVycm9yKCJObyBQUiBmb3VuZCBmb3IgJXMiICUg
c2hhKQorICAgICAgICByZXR1cm4gTm9uZQorICAgIGlmIGxlbihpdGVtcykgPiAxOgorICAgICAg
ICBsb2dnZXIud2FybmluZygiRm91bmQgbXVsdGlwbGUgUFJzIGZvciAlcyIgJSBzaGEpCisKKyAg
ICBwciA9IGl0ZW1zWzBdCisKKyAgICByZXR1cm4gcHJbIm51bWJlciJdCisKKworZGVmIGNyZWF0
ZV9yZWxlYXNlKG1hbmlmZXN0X3BhdGgsIG93bmVyLCByZXBvLCBzaGEsIHRhZywgYm9keSk6Cisg
ICAgY3JlYXRlX3VybCA9ICJodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zLyVzLyVzL3JlbGVh
c2VzIiAlIChvd25lciwgcmVwbykKKyAgICBjcmVhdGVfZGF0YSA9IHsidGFnX25hbWUiOiB0YWcs
CisgICAgICAgICAgICAgICAgICAgInRhcmdldF9jb21taXRpc2giOiBzaGEsCisgICAgICAgICAg
ICAgICAgICAgIm5hbWUiOiB0YWcsCisgICAgICAgICAgICAgICAgICAgImJvZHkiOiBib2R5LAor
ICAgICAgICAgICAgICAgICAgICJkcmFmdCI6IFRydWV9CisgICAgY3JlYXRlX3Jlc3AgPSByZXF1
ZXN0KGNyZWF0ZV91cmwsICJSZWxlYXNlIGNyZWF0aW9uIiwganNvbl9kYXRhPWNyZWF0ZV9kYXRh
KQorICAgIGlmIG5vdCBjcmVhdGVfcmVzcDoKKyAgICAgICAgcmV0dXJuIEZhbHNlCisKKyAgICAj
IFVwbG9hZCBVUkwgY29udGFpbnMgJ3s/bmFtZSxsYWJlbH0nIGF0IHRoZSBlbmQgd2hpY2ggd2Ug
d2FudCB0byByZW1vdmUKKyAgICB1cGxvYWRfdXJsID0gY3JlYXRlX3Jlc3BbInVwbG9hZF91cmwi
XS5zcGxpdCgieyIsIDEpWzBdCisKKyAgICB1cGxvYWRfZXh0cyA9IFsiLmd6IiwgIi5iejIiLCAi
LnpzdCJdCisgICAgZm9yIHVwbG9hZF9leHQgaW4gdXBsb2FkX2V4dHM6CisgICAgICAgIHVwbG9h
ZF9maWxlbmFtZSA9ICJNQU5JRkVTVC0lcy5qc29uJXMiICUgKHNoYSwgdXBsb2FkX2V4dCkKKyAg
ICAgICAgcGFyYW1zID0geyJuYW1lIjogdXBsb2FkX2ZpbGVuYW1lLAorICAgICAgICAgICAgICAg
ICAgImxhYmVsIjogIk1BTklGRVNULmpzb24lcyIgJSB1cGxvYWRfZXh0fQorCisgICAgICAgIHdp
dGggb3BlbigiJXMlcyIgJSAobWFuaWZlc3RfcGF0aCwgdXBsb2FkX2V4dCksICJyYiIpIGFzIGY6
CisgICAgICAgICAgICB1cGxvYWRfZGF0YSA9IGYucmVhZCgpCisKKyAgICAgICAgbG9nZ2VyLmlu
Zm8oIlVwbG9hZGluZyAlcyBieXRlcyIgJSBsZW4odXBsb2FkX2RhdGEpKQorCisgICAgICAgIHVw
bG9hZF9yZXNwID0gcmVxdWVzdCh1cGxvYWRfdXJsLCAiTWFuaWZlc3QgdXBsb2FkIiwgZGF0YT11
cGxvYWRfZGF0YSwgcGFyYW1zPXBhcmFtcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGhlYWRlcnM9eydDb250ZW50LVR5cGUnOiAnYXBwbGljYXRpb24vb2N0ZXQtc3RyZWFtJ30pCisg
ICAgICAgIGlmIG5vdCB1cGxvYWRfcmVzcDoKKyAgICAgICAgICAgIHJldHVybiBGYWxzZQorCisg
ICAgcmVsZWFzZV9pZCA9IGNyZWF0ZV9yZXNwWyJpZCJdCisgICAgZWRpdF91cmwgPSAiaHR0cHM6
Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy8lcy8lcy9yZWxlYXNlcy8lcyIgJSAob3duZXIsIHJlcG8s
IHJlbGVhc2VfaWQpCisgICAgZWRpdF9kYXRhID0geyJkcmFmdCI6IEZhbHNlfQorICAgIGVkaXRf
cmVzcCA9IHJlcXVlc3QoZWRpdF91cmwsICJSZWxlYXNlIHB1Ymxpc2hpbmciLCBtZXRob2Q9cmVx
dWVzdHMucGF0Y2gsIGpzb25fZGF0YT1lZGl0X2RhdGEpCisgICAgaWYgbm90IGVkaXRfcmVzcDoK
KyAgICAgICAgcmV0dXJuIEZhbHNlCisKKyAgICBsb2dnZXIuaW5mbygiUmVsZWFzZWQgJXMiICUg
ZWRpdF9yZXNwWyJodG1sX3VybCJdKQorICAgIHJldHVybiBUcnVlCisKKworZGVmIHNob3VsZF9k
cnlfcnVuKCk6CisgICAgd2l0aCBvcGVuKG9zLmVudmlyb25bIkdJVEhVQl9FVkVOVF9QQVRIIl0p
IGFzIGY6CisgICAgICAgIGV2ZW50ID0ganNvbi5sb2FkKGYpCisgICAgICAgIGxvZ2dlci5pbmZv
KGpzb24uZHVtcHMoZXZlbnQsIGluZGVudD0yKSkKKworICAgIGlmICJwdWxsX3JlcXVlc3QiIGlu
IGV2ZW50OgorICAgICAgICBsb2dnZXIuaW5mbygiRHJ5IHJ1biBmb3IgUFIiKQorICAgICAgICBy
ZXR1cm4gVHJ1ZQorICAgIGlmIGV2ZW50LmdldCgicmVmIikgIT0gInJlZnMvaGVhZHMvbWFzdGVy
IjoKKyAgICAgICAgbG9nZ2VyLmluZm8oIkRyeSBydW4gZm9yIHJlZiAlcyIgJSBldmVudC5nZXQo
InJlZiIpKQorICAgICAgICByZXR1cm4gVHJ1ZQorICAgIHJldHVybiBGYWxzZQorCisKK2RlZiBt
YWluKCk6CisgICAgZHJ5X3J1biA9IHNob3VsZF9kcnlfcnVuKCkKKworICAgIG1hbmlmZXN0X3Bh
dGggPSBvcy5wYXRoLmpvaW4odGVtcGZpbGUubWtkdGVtcCgpLCAiTUFOSUZFU1QuanNvbiIpCisK
KyAgICBjcmVhdGVfbWFuaWZlc3QobWFuaWZlc3RfcGF0aCkKKworICAgIGNvbXByZXNzX21hbmlm
ZXN0KG1hbmlmZXN0X3BhdGgpCisKKyAgICBvd25lciwgcmVwbyA9IG9zLmVudmlyb25bIkdJVEhV
Ql9SRVBPU0lUT1JZIl0uc3BsaXQoIi8iLCAxKQorCisgICAgZ2l0ID0gZ2V0X2dpdF9jbWQod3B0
X3Jvb3QpCisgICAgaGVhZF9yZXYgPSBnaXQoInJldi1wYXJzZSIsICJIRUFEIikKKyAgICBib2R5
ID0gZ2l0KCJzaG93IiwgIi0tbm8tcGF0Y2giLCAiLS1mb3JtYXQ9JUIiLCAiSEVBRCIpCisKKyAg
ICBpZiBkcnlfcnVuOgorICAgICAgICByZXR1cm4gU3RhdHVzLlNVQ0NFU1MKKworICAgIHByID0g
Z2V0X3ByKG93bmVyLCByZXBvLCBoZWFkX3JldikKKyAgICBpZiBwciBpcyBOb25lOgorICAgICAg
ICByZXR1cm4gU3RhdHVzLkZBSUwKKyAgICB0YWdfbmFtZSA9ICJtZXJnZV9wcl8lcyIgJSBwcgor
CisgICAgaWYgbm90IGNyZWF0ZV9yZWxlYXNlKG1hbmlmZXN0X3BhdGgsIG93bmVyLCByZXBvLCBo
ZWFkX3JldiwgdGFnX25hbWUsIGJvZHkpOgorICAgICAgICByZXR1cm4gU3RhdHVzLkZBSUwKKwor
ICAgIHJldHVybiBTdGF0dXMuU1VDQ0VTUworCisKK2lmIF9fbmFtZV9fID09ICJfX21haW5fXyI6
CisgICAgY29kZSA9IG1haW4oKQorICAgIGFzc2VydCBpc2luc3RhbmNlKGNvZGUsIGludCkKKyAg
ICBzeXMuZXhpdChjb2RlKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy9jaS9wcl9wcmV2aWV3LnB5IGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9jaS9wcl9wcmV2aWV3LnB5Cm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5iYTc3NzQ0NDZlMAotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvY2kvcHJfcHJldmlldy5weQpAQCAtMCwwICsxLDQwOCBAQAorIyEvdXNyL2Jpbi9lbnYgcHl0
aG9uCisKKyMgVGhlIHNlcnZpY2UgcHJvdmlkZWQgYnkgdGhpcyBzY3JpcHQgaXMgbm90IGNyaXRp
Y2FsLCBidXQgaXQgc2hhcmVzIGEgR2l0SHViCisjIEFQSSByZXF1ZXN0IHF1b3RhIHdpdGggY3Jp
dGljYWwgc2VydmljZXMuIEZvciB0aGlzIHJlYXNvbiwgYWxsIHJlcXVlc3RzIHRvCisjIHRoZSBH
aXRIdWIgQVBJIGFyZSBwcmVjZWRlZCBieSBhICJndWFyZCIgd2hpY2ggdmVyaWZpZXMgdGhhdCB0
aGUgc3Vic2VxdWVudAorIyByZXF1ZXN0IHdpbGwgbm90IGRlcGxldGUgdGhlIHNoYXJlZCBxdW90
YS4KKyMKKyMgSW4gZWZmZWN0LCB0aGlzIHNjcmlwdCB3aWxsIGZhaWwgcmF0aGVyIHRoYW4gaW50
ZXJmZXJlIHdpdGggdGhlIG9wZXJhdGlvbiBvZgorIyBjcml0aWNhbCBzZXJ2aWNlcy4KKworaW1w
b3J0IGFyZ3BhcnNlCitpbXBvcnQganNvbgoraW1wb3J0IGxvZ2dpbmcKK2ltcG9ydCBvcworaW1w
b3J0IHN1YnByb2Nlc3MKK2ltcG9ydCB0aW1lCisKK2ltcG9ydCByZXF1ZXN0cworCisjIFRoZSBy
YXRpbyBvZiAicmVxdWVzdHMgcmVtYWluaW5nIiB0byAidG90YWwgcmVxdWVzdCBxdW90YSIgYmVs
b3cgd2hpY2ggdGhpcworIyBzY3JpcHQgc2hvdWxkIHJlZnVzZSB0byBpbnRlcmFjdCB3aXRoIHRo
ZSBHaXRIdWIuY29tIEFQSQorQVBJX1JBVEVfTElNSVRfVEhSRVNIT0xEID0gMC4yCisjIFRoZSBH
aXRIdWIgUHVsbCBSZXF1ZXN0IGxhYmVsIHdoaWNoIGluZGljYXRlcyB0aGF0IGEgUHVsbCBSZXF1
ZXN0IGlzIGV4cGVjdGVkCisjIHRvIGJlIGFjdGl2ZWx5IG1pcnJvcmVkIGJ5IHRoZSBwcmV2aWV3
IHNlcnZlcgorTEFCRUwgPSAnc2FmZSBmb3IgcHJldmlldycKKyMgVGhlIG51bWJlciBvZiBzZWNv
bmRzIHRvIHdhaXQgYmV0d2VlbiBhdHRlbXB0cyB0byB2ZXJpZnkgdGhhdCBhIHN1Ym1pc3Npb24K
KyMgcHJldmlldyBpcyBhdmFpbGFibGUgb24gdGhlIFB1bGwgUmVxdWVzdCBwcmV2aWV3IHNlcnZl
cgorUE9MTElOR19QRVJJT0QgPSA1CisjIFB1bGwgUmVxdWVzdHMgZnJvbSBhdXRob3JzIHdpdGgg
dGhlIGZvbGxvd2luZyBhc3NvY2lhdGlvbnMgdG8gdGhlIHByb2plY3QKKyMgc2hvdWxkIGF1dG9t
YXRpY2FsbHkgcmVjZWl2ZSBwcmV2aWV3cworIworIyBodHRwczovL2RldmVsb3Blci5naXRodWIu
Y29tL3Y0L2VudW0vY29tbWVudGF1dGhvcmFzc29jaWF0aW9uLyAoZXF1aXZhbGVudAorIyBkb2N1
bWVudGF0aW9uIGZvciB0aGUgUkVTVCBBUEkgd2FzIG5vdCBhdmFpbGFibGUgYXQgdGhlIHRpbWUg
b2Ygd3JpdGluZykKK1RSVVNURURfQVVUSE9SX0FTU09DSUFUSU9OUyA9ICgnQ09MTEFCT1JBVE9S
JywgJ01FTUJFUicsICdPV05FUicpCisjIFRoZXNlIEdpdEh1YiBhY2NvdW50cyBhcmUgbm90IGFz
c29jaWF0ZWQgd2l0aCBpbmRpdmlkdWFscywgYW5kIHRoZSBQdWxsCisjIFJlcXVlc3RzIHRoZXkg
c3VibWl0IHJhcmVseSByZXF1aXJlIGEgcHJldmlldy4KK0FVVE9NQVRJT05fR0lUSFVCX1VTRVJT
ID0gKAorICAgICdhdXRvZm9vbGlwJywgJ2Nocm9taXVtLXdwdC1leHBvcnQtYm90JywgJ21vei13
cHRzeW5jLWJvdCcsCisgICAgJ3NlcnZvLXdwdC1zeW5jJworKQorREVQTE9ZTUVOVF9QUkVGSVgg
PSAnd3B0LXByZXZpZXctJworCitsb2dnaW5nLmJhc2ljQ29uZmlnKGxldmVsPWxvZ2dpbmcuSU5G
TykKK2xvZ2dlciA9IGxvZ2dpbmcuZ2V0TG9nZ2VyKF9fbmFtZV9fKQorCitkZWYgZ2hfcmVxdWVz
dChtZXRob2RfbmFtZSwgdXJsLCBib2R5PU5vbmUsIG1lZGlhX3R5cGU9Tm9uZSk6CisgICAgZ2l0
aHViX3Rva2VuID0gb3MuZW52aXJvblsnREVQTE9ZX1RPS0VOJ10KKworICAgIGt3YXJncyA9IHsK
KyAgICAgICAgJ2hlYWRlcnMnOiB7CisgICAgICAgICAgICAnQXV0aG9yaXphdGlvbic6ICd0b2tl
biB7fScuZm9ybWF0KGdpdGh1Yl90b2tlbiksCisgICAgICAgICAgICAnQWNjZXB0JzogbWVkaWFf
dHlwZSBvciAnYXBwbGljYXRpb24vdm5kLmdpdGh1Yi52Mytqc29uJworICAgICAgICB9CisgICAg
fQorICAgIG1ldGhvZCA9IGdldGF0dHIocmVxdWVzdHMsIG1ldGhvZF9uYW1lLmxvd2VyKCkpCisK
KyAgICBpZiBib2R5IGlzIG5vdCBOb25lOgorICAgICAgICBrd2FyZ3NbJ2pzb24nXSA9IGJvZHkK
KworICAgIGxvZ2dlci5pbmZvKCdJc3N1aW5nIHJlcXVlc3Q6ICVzICVzJywgbWV0aG9kX25hbWUu
dXBwZXIoKSwgdXJsKQorCisgICAgcmVzcCA9IG1ldGhvZCh1cmwsICoqa3dhcmdzKQorCisgICAg
bG9nZ2VyLmluZm8oJ1Jlc3BvbnNlIHN0YXR1cyBjb2RlOiAlcycsIHJlc3Auc3RhdHVzX2NvZGUp
CisKKyAgICByZXNwLnJhaXNlX2Zvcl9zdGF0dXMoKQorCisgICAgcmV0dXJuIHJlc3AuanNvbigp
CisKK2RlZiBndWFyZChyZXNvdXJjZSk6CisgICAgJycnRGVjb3JhdGUgYSBgUHJvamVjdGAgaW5z
dGFuY2UgbWV0aG9kIHdoaWNoIGludGVyYWN0cyB3aXRoIHRoZSBHaXRIdWIKKyAgICBBUEksIGVu
c3VyaW5nIHRoYXQgdGhlIHN1YnNlcXVlbnQgcmVxdWVzdCB3aWxsIG5vdCBkZXBsZXRlIHRoZSBy
ZWxldmFudAorICAgIGFsbG93YW5jZS4gVGhpcyB2ZXJpZmljYXRpb24gZG9lcyBub3QgaXRzZWxm
IGluZmx1ZW5jZSByYXRlIGxpbWl0aW5nOgorCisgICAgPiBBY2Nlc3NpbmcgdGhpcyBlbmRwb2lu
dCBkb2VzIG5vdCBjb3VudCBhZ2FpbnN0IHlvdXIgUkVTVCBBUEkgcmF0ZSBsaW1pdC4KKworICAg
IGh0dHBzOi8vZGV2ZWxvcGVyLmdpdGh1Yi5jb20vdjMvcmF0ZV9saW1pdC8KKyAgICAnJycKKyAg
ICBkZWYgZ3VhcmRfZGVjb3JhdG9yKGZ1bmMpOgorICAgICAgICBkZWYgd3JhcHBlZChzZWxmLCAq
YXJncywgKiprd2FyZ3MpOgorICAgICAgICAgICAgbGltaXRzID0gZ2hfcmVxdWVzdCgnR0VUJywg
J3t9L3JhdGVfbGltaXQnLmZvcm1hdChzZWxmLl9ob3N0KSkKKworICAgICAgICAgICAgdmFsdWVz
ID0gbGltaXRzWydyZXNvdXJjZXMnXS5nZXQocmVzb3VyY2UpCisKKyAgICAgICAgICAgIHJlbWFp
bmluZyA9IHZhbHVlc1sncmVtYWluaW5nJ10KKyAgICAgICAgICAgIGxpbWl0ID0gdmFsdWVzWyds
aW1pdCddCisKKyAgICAgICAgICAgIGxvZ2dlci5pbmZvKAorICAgICAgICAgICAgICAgICdMaW1p
dCBmb3IgIiVzIiByZXNvdXJjZTogJXMvJXMnLCByZXNvdXJjZSwgcmVtYWluaW5nLCBsaW1pdAor
ICAgICAgICAgICAgKQorCisgICAgICAgICAgICBpZiBsaW1pdCBhbmQgZmxvYXQocmVtYWluaW5n
KSAvIGxpbWl0IDwgQVBJX1JBVEVfTElNSVRfVEhSRVNIT0xEOgorICAgICAgICAgICAgICAgIHJh
aXNlIEV4Y2VwdGlvbigKKyAgICAgICAgICAgICAgICAgICAgJ0V4aXRpbmcgdG8gYXZvaWQgR2l0
SHViLmNvbSBBUEkgcmVxdWVzdCB0aHJvdHRsaW5nLicKKyAgICAgICAgICAgICAgICApCisKKyAg
ICAgICAgICAgIHJldHVybiBmdW5jKHNlbGYsICphcmdzLCAqKmt3YXJncykKKyAgICAgICAgcmV0
dXJuIHdyYXBwZWQKKyAgICByZXR1cm4gZ3VhcmRfZGVjb3JhdG9yCisKK2NsYXNzIFByb2plY3Qo
b2JqZWN0KToKKyAgICBkZWYgX19pbml0X18oc2VsZiwgaG9zdCwgZ2l0aHViX3Byb2plY3QpOgor
ICAgICAgICBzZWxmLl9ob3N0ID0gaG9zdAorICAgICAgICBzZWxmLl9naXRodWJfcHJvamVjdCA9
IGdpdGh1Yl9wcm9qZWN0CisKKyAgICBAZ3VhcmQoJ3NlYXJjaCcpCisgICAgZGVmIGdldF9wdWxs
X3JlcXVlc3RzKHNlbGYsIHVwZGF0ZWRfc2luY2UpOgorICAgICAgICB3aW5kb3dfc3RhcnQgPSB0
aW1lLnN0cmZ0aW1lKCclWS0lbS0lZFQlSDolTTolU1onLCB1cGRhdGVkX3NpbmNlKQorICAgICAg
ICB1cmwgPSAne30vc2VhcmNoL2lzc3Vlcz9xPXJlcG86e30raXM6cHIrdXBkYXRlZDo+e30nLmZv
cm1hdCgKKyAgICAgICAgICAgIHNlbGYuX2hvc3QsIHNlbGYuX2dpdGh1Yl9wcm9qZWN0LCB3aW5k
b3dfc3RhcnQKKyAgICAgICAgKQorCisgICAgICAgIGxvZ2dlci5pbmZvKAorICAgICAgICAgICAg
J1NlYXJjaGluZyBmb3IgUHVsbCBSZXF1ZXN0cyB1cGRhdGVkIHNpbmNlICVzJywgd2luZG93X3N0
YXJ0CisgICAgICAgICkKKworICAgICAgICBkYXRhID0gZ2hfcmVxdWVzdCgnR0VUJywgdXJsKQor
CisgICAgICAgIGxvZ2dlci5pbmZvKCdGb3VuZCAlZCBQdWxsIFJlcXVlc3RzJywgbGVuKGRhdGFb
J2l0ZW1zJ10pKQorCisgICAgICAgIGlmIGRhdGFbJ2luY29tcGxldGVfcmVzdWx0cyddOgorICAg
ICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCdJbmNvbXBsZXRlIHJlc3VsdHMnKQorCisgICAgICAg
IHJldHVybiBkYXRhWydpdGVtcyddCisKKyAgICBAZ3VhcmQoJ2NvcmUnKQorICAgIGRlZiBjcmVh
dGVfcmVmKHNlbGYsIHJlZnNwZWMsIHJldmlzaW9uKToKKyAgICAgICAgdXJsID0gJ3t9L3JlcG9z
L3t9L2dpdC9yZWZzJy5mb3JtYXQoc2VsZi5faG9zdCwgc2VsZi5fZ2l0aHViX3Byb2plY3QpCisK
KyAgICAgICAgbG9nZ2VyLmluZm8oJ0NyZWF0aW5nIHJlZiAiJXMiICglcyknLCByZWZzcGVjLCBy
ZXZpc2lvbikKKworICAgICAgICBnaF9yZXF1ZXN0KCdQT1NUJywgdXJsLCB7CisgICAgICAgICAg
ICAncmVmJzogJ3JlZnMve30nLmZvcm1hdChyZWZzcGVjKSwKKyAgICAgICAgICAgICdzaGEnOiBy
ZXZpc2lvbgorICAgICAgICB9KQorCisgICAgQGd1YXJkKCdjb3JlJykKKyAgICBkZWYgdXBkYXRl
X3JlZihzZWxmLCByZWZzcGVjLCByZXZpc2lvbik6CisgICAgICAgIHVybCA9ICd7fS9yZXBvcy97
fS9naXQvcmVmcy97fScuZm9ybWF0KAorICAgICAgICAgICAgc2VsZi5faG9zdCwgc2VsZi5fZ2l0
aHViX3Byb2plY3QsIHJlZnNwZWMKKyAgICAgICAgKQorCisgICAgICAgIGxvZ2dlci5pbmZvKCdV
cGRhdGluZyByZWYgIiVzIiAoJXMpJywgcmVmc3BlYywgcmV2aXNpb24pCisKKyAgICAgICAgZ2hf
cmVxdWVzdCgnUEFUQ0gnLCB1cmwsIHsnc2hhJzogcmV2aXNpb259KQorCisgICAgQGd1YXJkKCdj
b3JlJykKKyAgICBkZWYgY3JlYXRlX2RlcGxveW1lbnQoc2VsZiwgcHVsbF9yZXF1ZXN0LCByZXZp
c2lvbik6CisgICAgICAgIHVybCA9ICd7fS9yZXBvcy97fS9kZXBsb3ltZW50cycuZm9ybWF0KAor
ICAgICAgICAgICAgc2VsZi5faG9zdCwgc2VsZi5fZ2l0aHViX3Byb2plY3QKKyAgICAgICAgKQor
ICAgICAgICAjIFRoZSBQdWxsIFJlcXVlc3QgcHJldmlldyBzeXN0ZW0gb25seSBleHBvc2VzIG9u
ZSBEZXBsb3ltZW50IGZvciBhCisgICAgICAgICMgZ2l2ZW4gUHVsbCBSZXF1ZXN0LiBJZGVudGlm
eWluZyB0aGUgRGVwbG95bWVudCBieSB0aGUgUHVsbCBSZXF1ZXN0CisgICAgICAgICMgbnVtYmVy
IGVuc3VyZXMgdGhhdCBHaXRIdWIuY29tIGF1dG9tYXRpY2FsbHkgcmVzcG9uZHMgdG8gbmV3Cisg
ICAgICAgICMgRGVwbG95bWVudHMgYnkgZGVzaWduYXRpbmcgcHJpb3IgRGVwbG95bWVudHMgYXMg
ImluYWN0aXZlIgorICAgICAgICBlbnZpcm9ubWVudCA9IERFUExPWU1FTlRfUFJFRklYICsgc3Ry
KHB1bGxfcmVxdWVzdFsnbnVtYmVyJ10pCisKKyAgICAgICAgbG9nZ2VyLmluZm8oJ0NyZWF0aW5n
IERlcGxveW1lbnQgIiVzIiBmb3IgIiVzIicsIGVudmlyb25tZW50LCByZXZpc2lvbikKKworICAg
ICAgICByZXR1cm4gZ2hfcmVxdWVzdCgnUE9TVCcsIHVybCwgeworICAgICAgICAgICAgJ3JlZic6
IHJldmlzaW9uLAorICAgICAgICAgICAgJ2Vudmlyb25tZW50JzogZW52aXJvbm1lbnQsCisgICAg
ICAgICAgICAnYXV0b19tZXJnZSc6IEZhbHNlLAorICAgICAgICAgICAgIyBQdWxsIFJlcXVlc3Qg
cHJldmlld3MgYXJlIGNyZWF0ZWQgcmVnYXJkbGVzcyBvZiBHaXRIdWIgQ29tbWl0CisgICAgICAg
ICAgICAjIFN0YXR1cyBDaGVja3MsIHNvIFN0YXR1cyBDaGVja3Mgc2hvdWxkIGJlIGlnbm9yZWQg
d2hlbiBjcmVhdGluZworICAgICAgICAgICAgIyBHaXRIdWIgRGVwbG95bWVudHMuCisgICAgICAg
ICAgICAncmVxdWlyZWRfY29udGV4dHMnOiBbXQorICAgICAgICB9LCAnYXBwbGljYXRpb24vdm5k
LmdpdGh1Yi5hbnQtbWFuLXByZXZpZXcranNvbicpCisKKyAgICBAZ3VhcmQoJ2NvcmUnKQorICAg
IGRlZiBnZXRfZGVwbG95bWVudChzZWxmLCByZXZpc2lvbik6CisgICAgICAgIHVybCA9ICd7fS9y
ZXBvcy97fS9kZXBsb3ltZW50cz9zaGE9e30nLmZvcm1hdCgKKyAgICAgICAgICAgIHNlbGYuX2hv
c3QsIHNlbGYuX2dpdGh1Yl9wcm9qZWN0LCByZXZpc2lvbgorICAgICAgICApCisKKyAgICAgICAg
ZGVwbG95bWVudHMgPSBnaF9yZXF1ZXN0KCdHRVQnLCB1cmwpCisKKyAgICAgICAgcmV0dXJuIGRl
cGxveW1lbnRzLnBvcCgpIGlmIGxlbihkZXBsb3ltZW50cykgZWxzZSBOb25lCisKKyAgICBAZ3Vh
cmQoJ2NvcmUnKQorICAgIGRlZiB1cGRhdGVfZGVwbG95bWVudChzZWxmLCB0YXJnZXQsIGRlcGxv
eW1lbnQsIHN0YXRlLCBkZXNjcmlwdGlvbj0nJyk6CisgICAgICAgIGlmIHN0YXRlIGluICgncGVu
ZGluZycsICdzdWNjZXNzJyk6CisgICAgICAgICAgICBlbnZpcm9ubWVudF91cmwgPSAne30vc3Vi
bWlzc2lvbnMve30nLmZvcm1hdCgKKyAgICAgICAgICAgICAgICB0YXJnZXQsIGRlcGxveW1lbnRb
J2Vudmlyb25tZW50J10KKyAgICAgICAgICAgICkKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAg
IGVudmlyb25tZW50X3VybCA9IE5vbmUKKyAgICAgICAgdXJsID0gJ3t9L3JlcG9zL3t9L2RlcGxv
eW1lbnRzL3t9L3N0YXR1c2VzJy5mb3JtYXQoCisgICAgICAgICAgICBzZWxmLl9ob3N0LCBzZWxm
Ll9naXRodWJfcHJvamVjdCwgZGVwbG95bWVudFsnaWQnXQorICAgICAgICApCisKKyAgICAgICAg
Z2hfcmVxdWVzdCgnUE9TVCcsIHVybCwgeworICAgICAgICAgICAgJ3N0YXRlJzogc3RhdGUsCisg
ICAgICAgICAgICAnZGVzY3JpcHRpb24nOiBkZXNjcmlwdGlvbiwKKyAgICAgICAgICAgICdlbnZp
cm9ubWVudF91cmwnOiBlbnZpcm9ubWVudF91cmwKKyAgICAgICAgfSwgJ2FwcGxpY2F0aW9uL3Zu
ZC5naXRodWIuYW50LW1hbi1wcmV2aWV3K2pzb24nKQorCitjbGFzcyBSZW1vdGUob2JqZWN0KToK
KyAgICBkZWYgX19pbml0X18oc2VsZiwgZ2l0aHViX3Byb2plY3QpOgorICAgICAgICAjIFRoZSBy
ZXBvc2l0b3J5IGluIHRoZSBHaXRIdWIgQWN0aW9ucyBlbnZpcm9ubWVudCBpcyBjb25maWd1cmVk
IHdpdGgKKyAgICAgICAgIyBhIHJlbW90ZSB3aG9zZSBVUkwgdXNlcyB1bmF1dGhlbnRpY2F0ZWQg
SFRUUFMsIG1ha2luZyBpdCB1bnN1aXRhYmxlCisgICAgICAgICMgZm9yIHB1c2hpbmcgY2hhbmdl
cy4KKyAgICAgICAgc2VsZi5fdG9rZW4gPSBvcy5lbnZpcm9uWydERVBMT1lfVE9LRU4nXQorCisg
ICAgZGVmIGdldF9yZXZpc2lvbihzZWxmLCByZWZzcGVjKToKKyAgICAgICAgb3V0cHV0ID0gc3Vi
cHJvY2Vzcy5jaGVja19vdXRwdXQoWworICAgICAgICAgICAgJ2dpdCcsCisgICAgICAgICAgICAn
LWMnLAorICAgICAgICAgICAgJ2NyZWRlbnRpYWwudXNlcm5hbWU9e30nLmZvcm1hdChzZWxmLl90
b2tlbiksCisgICAgICAgICAgICAnLWMnLAorICAgICAgICAgICAgJ2NvcmUuYXNrUGFzcz10cnVl
JywKKyAgICAgICAgICAgICdscy1yZW1vdGUnLAorICAgICAgICAgICAgJ29yaWdpbicsCisgICAg
ICAgICAgICAncmVmcy97fScuZm9ybWF0KHJlZnNwZWMpCisgICAgICAgIF0pCisKKyAgICAgICAg
aWYgbm90IG91dHB1dDoKKyAgICAgICAgICAgIHJldHVybiBOb25lCisKKyAgICAgICAgcmV0dXJu
IG91dHB1dC5kZWNvZGUoJ3V0Zi04Jykuc3BsaXQoKVswXQorCisgICAgZGVmIGRlbGV0ZV9yZWYo
c2VsZiwgcmVmc3BlYyk6CisgICAgICAgIGZ1bGxfcmVmID0gJ3JlZnMve30nLmZvcm1hdChyZWZz
cGVjKQorCisgICAgICAgIGxvZ2dlci5pbmZvKCdEZWxldGluZyByZWYgIiVzIicsIHJlZnNwZWMp
CisKKyAgICAgICAgc3VicHJvY2Vzcy5jaGVja19jYWxsKFsKKyAgICAgICAgICAgICdnaXQnLAor
ICAgICAgICAgICAgJy1jJywKKyAgICAgICAgICAgICdjcmVkZW50aWFsLnVzZXJuYW1lPXt9Jy5m
b3JtYXQoc2VsZi5fdG9rZW4pLAorICAgICAgICAgICAgJy1jJywKKyAgICAgICAgICAgICdjb3Jl
LmFza1Bhc3M9dHJ1ZScsCisgICAgICAgICAgICAncHVzaCcsCisgICAgICAgICAgICAnb3JpZ2lu
JywKKyAgICAgICAgICAgICctLWRlbGV0ZScsCisgICAgICAgICAgICBmdWxsX3JlZgorICAgICAg
ICBdKQorCitkZWYgaXNfb3BlbihwdWxsX3JlcXVlc3QpOgorICAgIHJldHVybiBub3QgcHVsbF9y
ZXF1ZXN0WydjbG9zZWRfYXQnXQorCitkZWYgaGFzX21pcnJvcmluZ19sYWJlbChwdWxsX3JlcXVl
c3QpOgorICAgIGZvciBsYWJlbCBpbiBwdWxsX3JlcXVlc3RbJ2xhYmVscyddOgorICAgICAgICBp
ZiBsYWJlbFsnbmFtZSddID09IExBQkVMOgorICAgICAgICAgICAgcmV0dXJuIFRydWUKKworICAg
IHJldHVybiBGYWxzZQorCitkZWYgc2hvdWxkX2JlX21pcnJvcmVkKHB1bGxfcmVxdWVzdCk6Cisg
ICAgcmV0dXJuICgKKyAgICAgICAgaXNfb3BlbihwdWxsX3JlcXVlc3QpIGFuZAorICAgICAgICBw
dWxsX3JlcXVlc3RbJ3VzZXInXVsnbG9naW4nXSBub3QgaW4gQVVUT01BVElPTl9HSVRIVUJfVVNF
UlMgYW5kICgKKyAgICAgICAgICAgIHB1bGxfcmVxdWVzdFsnYXV0aG9yX2Fzc29jaWF0aW9uJ10g
aW4gVFJVU1RFRF9BVVRIT1JfQVNTT0NJQVRJT05TIG9yCisgICAgICAgICAgICBoYXNfbWlycm9y
aW5nX2xhYmVsKHB1bGxfcmVxdWVzdCkKKyAgICAgICAgKQorICAgICkKKworZGVmIGlzX2RlcGxv
eWVkKGhvc3QsIGRlcGxveW1lbnQpOgorICAgIHdvcmt0cmVlX25hbWUgPSBkZXBsb3ltZW50Wydl
bnZpcm9ubWVudCddW2xlbihERVBMT1lNRU5UX1BSRUZJWCk6XQorICAgIHJlc3BvbnNlID0gcmVx
dWVzdHMuZ2V0KAorICAgICAgICAne30vLmdpdC93b3JrdHJlZXMve30vSEVBRCcuZm9ybWF0KGhv
c3QsIHdvcmt0cmVlX25hbWUpCisgICAgKQorCisgICAgaWYgcmVzcG9uc2Uuc3RhdHVzX2NvZGUg
IT0gMjAwOgorICAgICAgICByZXR1cm4gRmFsc2UKKworICAgIHJldHVybiByZXNwb25zZS50ZXh0
LnN0cmlwKCkgPT0gZGVwbG95bWVudFsnc2hhJ10KKworZGVmIHN5bmNocm9uaXplKGhvc3QsIGdp
dGh1Yl9wcm9qZWN0LCB3aW5kb3cpOgorICAgICcnJ0luc3BlY3QgYWxsIFB1bGwgUmVxdWVzdHMg
d2hpY2ggaGF2ZSBiZWVuIG1vZGlmaWVkIGluIGEgZ2l2ZW4gd2luZG93IG9mCisgICAgdGltZS4g
QWRkIG9yIHJlbW92ZSB0aGUgInByZXZpZXciIGxhYmVsIGFuZCB1cGRhdGUgb3IgZGVsZXRlIHRo
ZSByZWxldmFudAorICAgIGdpdCByZWZzIGFjY29yZGluZyB0byB0aGUgc3RhdHVzIG9mIGVhY2gg
UHVsbCBSZXF1ZXN0LicnJworCisgICAgcHJvamVjdCA9IFByb2plY3QoaG9zdCwgZ2l0aHViX3By
b2plY3QpCisgICAgcmVtb3RlID0gUmVtb3RlKGdpdGh1Yl9wcm9qZWN0KQorCisgICAgcHVsbF9y
ZXF1ZXN0cyA9IHByb2plY3QuZ2V0X3B1bGxfcmVxdWVzdHMoCisgICAgICAgIHRpbWUuZ210aW1l
KHRpbWUudGltZSgpIC0gd2luZG93KQorICAgICkKKworICAgIGZvciBwdWxsX3JlcXVlc3QgaW4g
cHVsbF9yZXF1ZXN0czoKKyAgICAgICAgbG9nZ2VyLmluZm8oJ1Byb2Nlc3NpbmcgUHVsbCBSZXF1
ZXN0ICMlKG51bWJlcilkJywgcHVsbF9yZXF1ZXN0KQorCisgICAgICAgIHJlZnNwZWNfdHJ1c3Rl
ZCA9ICdwcnMtdHJ1c3RlZC1mb3ItcHJldmlldy97bnVtYmVyfScuZm9ybWF0KAorICAgICAgICAg
ICAgKipwdWxsX3JlcXVlc3QKKyAgICAgICAgKQorICAgICAgICByZWZzcGVjX29wZW4gPSAncHJz
LW9wZW4ve251bWJlcn0nLmZvcm1hdCgqKnB1bGxfcmVxdWVzdCkKKyAgICAgICAgcmV2aXNpb25f
bGF0ZXN0ID0gcmVtb3RlLmdldF9yZXZpc2lvbigKKyAgICAgICAgICAgICdwdWxsL3tudW1iZXJ9
L2hlYWQnLmZvcm1hdCgqKnB1bGxfcmVxdWVzdCkKKyAgICAgICAgKQorICAgICAgICByZXZpc2lv
bl90cnVzdGVkID0gcmVtb3RlLmdldF9yZXZpc2lvbihyZWZzcGVjX3RydXN0ZWQpCisgICAgICAg
IHJldmlzaW9uX29wZW4gPSByZW1vdGUuZ2V0X3JldmlzaW9uKHJlZnNwZWNfb3BlbikKKworICAg
ICAgICBpZiBzaG91bGRfYmVfbWlycm9yZWQocHVsbF9yZXF1ZXN0KToKKyAgICAgICAgICAgIGxv
Z2dlci5pbmZvKCdQdWxsIFJlcXVlc3Qgc2hvdWxkIGJlIG1pcnJvcmVkJykKKworICAgICAgICAg
ICAgaWYgcmV2aXNpb25fdHJ1c3RlZCBpcyBOb25lOgorICAgICAgICAgICAgICAgIHByb2plY3Qu
Y3JlYXRlX3JlZihyZWZzcGVjX3RydXN0ZWQsIHJldmlzaW9uX2xhdGVzdCkKKyAgICAgICAgICAg
IGVsaWYgcmV2aXNpb25fdHJ1c3RlZCAhPSByZXZpc2lvbl9sYXRlc3Q6CisgICAgICAgICAgICAg
ICAgcHJvamVjdC51cGRhdGVfcmVmKHJlZnNwZWNfdHJ1c3RlZCwgcmV2aXNpb25fbGF0ZXN0KQor
CisgICAgICAgICAgICBpZiByZXZpc2lvbl9vcGVuIGlzIE5vbmU6CisgICAgICAgICAgICAgICAg
cHJvamVjdC5jcmVhdGVfcmVmKHJlZnNwZWNfb3BlbiwgcmV2aXNpb25fbGF0ZXN0KQorICAgICAg
ICAgICAgZWxpZiByZXZpc2lvbl9vcGVuICE9IHJldmlzaW9uX2xhdGVzdDoKKyAgICAgICAgICAg
ICAgICBwcm9qZWN0LnVwZGF0ZV9yZWYocmVmc3BlY19vcGVuLCByZXZpc2lvbl9sYXRlc3QpCisK
KyAgICAgICAgICAgIGlmIHByb2plY3QuZ2V0X2RlcGxveW1lbnQocmV2aXNpb25fbGF0ZXN0KSBp
cyBOb25lOgorICAgICAgICAgICAgICAgIHByb2plY3QuY3JlYXRlX2RlcGxveW1lbnQoCisgICAg
ICAgICAgICAgICAgICAgIHB1bGxfcmVxdWVzdCwgcmV2aXNpb25fbGF0ZXN0CisgICAgICAgICAg
ICAgICAgKQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgbG9nZ2VyLmluZm8oJ1B1bGwgUmVx
dWVzdCBzaG91bGQgbm90IGJlIG1pcnJvcmVkJykKKworICAgICAgICAgICAgaWYgbm90IGhhc19t
aXJyb3JpbmdfbGFiZWwocHVsbF9yZXF1ZXN0KSBhbmQgcmV2aXNpb25fdHJ1c3RlZCBpcyBub3Qg
Tm9uZToKKyAgICAgICAgICAgICAgICByZW1vdGUuZGVsZXRlX3JlZihyZWZzcGVjX3RydXN0ZWQp
CisKKyAgICAgICAgICAgIGlmIHJldmlzaW9uX29wZW4gaXMgbm90IE5vbmUgYW5kIG5vdCBpc19v
cGVuKHB1bGxfcmVxdWVzdCk6CisgICAgICAgICAgICAgICAgcmVtb3RlLmRlbGV0ZV9yZWYocmVm
c3BlY19vcGVuKQorCitkZWYgZGV0ZWN0KGhvc3QsIGdpdGh1Yl9wcm9qZWN0LCB0YXJnZXQsIHRp
bWVvdXQpOgorICAgICcnJ01hbmFnZSB0aGUgc3RhdHVzIG9mIGEgR2l0SHViIERlcGxveW1lbnQg
YnkgcG9sbGluZyB0aGUgUHVsbCBSZXF1ZXN0CisgICAgcHJldmlldyB3ZWJzaXRlIHVudGlsIHRo
ZSBEZXBsb3ltZW50IGlzIGNvbXBsZXRlIG9yIGEgdGltZW91dCBpcworICAgIHJlYWNoZWQuJycn
CisKKyAgICBwcm9qZWN0ID0gUHJvamVjdChob3N0LCBnaXRodWJfcHJvamVjdCkKKworICAgIHdp
dGggb3Blbihvcy5lbnZpcm9uWydHSVRIVUJfRVZFTlRfUEFUSCddKSBhcyBoYW5kbGU6CisgICAg
ICAgIGRhdGEgPSBqc29uLmxvYWRzKGhhbmRsZS5yZWFkKCkpCisKKyAgICBsb2dnZXIuaW5mbygn
RXZlbnQgZGF0YTogJXMnLCBqc29uLmR1bXBzKGRhdGEsIGluZGVudD0yKSkKKworICAgIGRlcGxv
eW1lbnQgPSBkYXRhWydkZXBsb3ltZW50J10KKworICAgIGlmIG5vdCBkZXBsb3ltZW50WydlbnZp
cm9ubWVudCddLnN0YXJ0c3dpdGgoREVQTE9ZTUVOVF9QUkVGSVgpOgorICAgICAgICBsb2dnZXIu
aW5mbygKKyAgICAgICAgICAgICdEZXBsb3ltZW50IGVudmlyb25tZW50ICIlcyIgaXMgdW5yZWNv
Z25pemVkLiBFeGl0aW5nLicsCisgICAgICAgICAgICBkZXBsb3ltZW50WydlbnZpcm9ubWVudCdd
CisgICAgICAgICkKKyAgICAgICAgcmV0dXJuCisKKyAgICBtZXNzYWdlID0gJ1dhaXRpbmcgdXAg
dG8ge30gc2Vjb25kcyBmb3IgRGVwbG95bWVudCB7fSB0byBiZSBhdmFpbGFibGUgb24ge30nLmZv
cm1hdCgKKyAgICAgICAgdGltZW91dCwgZGVwbG95bWVudFsnZW52aXJvbm1lbnQnXSwgdGFyZ2V0
CisgICAgKQorICAgIGxvZ2dlci5pbmZvKG1lc3NhZ2UpCisgICAgcHJvamVjdC51cGRhdGVfZGVw
bG95bWVudCh0YXJnZXQsIGRlcGxveW1lbnQsICdwZW5kaW5nJywgbWVzc2FnZSkKKworICAgIHN0
YXJ0ID0gdGltZS50aW1lKCkKKworICAgIHdoaWxlIG5vdCBpc19kZXBsb3llZCh0YXJnZXQsIGRl
cGxveW1lbnQpOgorICAgICAgICBpZiB0aW1lLnRpbWUoKSAtIHN0YXJ0ID4gdGltZW91dDoKKyAg
ICAgICAgICAgIG1lc3NhZ2UgPSAnRGVwbG95bWVudCBkaWQgbm90IGJlY29tZSBhdmFpbGFibGUg
YWZ0ZXIge30gc2Vjb25kcycuZm9ybWF0KHRpbWVvdXQpCisgICAgICAgICAgICBwcm9qZWN0LnVw
ZGF0ZV9kZXBsb3ltZW50KHRhcmdldCwgZGVwbG95bWVudCwgJ2Vycm9yJywgbWVzc2FnZSkKKyAg
ICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbihtZXNzYWdlKQorCisgICAgICAgIHRpbWUuc2xlZXAo
UE9MTElOR19QRVJJT0QpCisKKyAgICByZXN1bHQgPSBwcm9qZWN0LnVwZGF0ZV9kZXBsb3ltZW50
KHRhcmdldCwgZGVwbG95bWVudCwgJ3N1Y2Nlc3MnKQorICAgIGxvZ2dlci5pbmZvKGpzb24uZHVt
cHMocmVzdWx0LCBpbmRlbnQ9MikpCisKK2lmIF9fbmFtZV9fID09ICdfX21haW5fXyc6CisgICAg
cGFyc2VyID0gYXJncGFyc2UuQXJndW1lbnRQYXJzZXIoCisgICAgICAgIGRlc2NyaXB0aW9uPScn
J1N5bmNocm9uaXplIHRoZSBzdGF0ZSBvZiBhIEdpdEh1Yi5jb20gcHJvamVjdCB3aXRoIHRoZQor
ICAgICAgICAgICAgdW5kZXJseWluZyBnaXQgcmVwb3NpdG9yeSBpbiBvcmRlciB0byBzdXBwb3J0
IGEgZXh0ZXJuYWxseS1ob3N0ZWQKKyAgICAgICAgICAgIFB1bGwgUmVxdWVzdCBwcmV2aWV3IHN5
c3RlbS4gQ29tbXVuaWNhdGUgdGhlIHN0YXRlIG9mIHRoYXQgc3lzdGVtCisgICAgICAgICAgICB2
aWEgR2l0SHViIERlcGxveW1lbnRzIGFzc29jaWF0ZWQgd2l0aCBlYWNoIFB1bGwgUmVxdWVzdC4n
JycKKyAgICApCisgICAgcGFyc2VyLmFkZF9hcmd1bWVudCgKKyAgICAgICAgJy0taG9zdCcsIHJl
cXVpcmVkPVRydWUsIGhlbHA9J3RoZSBsb2NhdGlvbiBvZiB0aGUgR2l0SHViIEFQSSBzZXJ2ZXIn
CisgICAgKQorICAgIHBhcnNlci5hZGRfYXJndW1lbnQoCisgICAgICAgICctLWdpdGh1Yi1wcm9q
ZWN0JywKKyAgICAgICAgcmVxdWlyZWQ9VHJ1ZSwKKyAgICAgICAgaGVscD0nJyd0aGUgR2l0SHVi
IG9yZ2FuaXphdGlvbiBhbmQgR2l0SHViIHByb2plY3QgbmFtZSwgc2VwYXJhdGVkIGJ5CisgICAg
ICAgICAgICBhIGZvcndhcmQgc2xhc2ggKGUuZy4gIndlYi1wbGF0Zm9ybS10ZXN0cy93cHQiKScn
JworICAgICkKKyAgICBzdWJwYXJzZXJzID0gcGFyc2VyLmFkZF9zdWJwYXJzZXJzKHRpdGxlPSdz
dWJjb21tYW5kcycpCisKKyAgICBwYXJzZXJfc3luYyA9IHN1YnBhcnNlcnMuYWRkX3BhcnNlcigK
KyAgICAgICAgJ3N5bmNocm9uaXplJywgaGVscD1zeW5jaHJvbml6ZS5fX2RvY19fCisgICAgKQor
ICAgIHBhcnNlcl9zeW5jLmFkZF9hcmd1bWVudCgKKyAgICAgICAgJy0td2luZG93JywKKyAgICAg
ICAgdHlwZT1pbnQsCisgICAgICAgIHJlcXVpcmVkPVRydWUsCisgICAgICAgIGhlbHA9JycndGhl
IG51bWJlciBvZiBzZWNvbmRzIHByaW9yIHRvIHRoZSBjdXJyZW50IG1vbWVudCB3aXRoaW4gd2hp
Y2gKKyAgICAgICAgICAgIHRvIHNlYXJjaCBmb3IgR2l0SHViIFB1bGwgUmVxdWVzdHMuIEFueSBQ
dWxsIFJlcXVlc3RzIHVwZGF0ZWQgaW4KKyAgICAgICAgICAgIHRoaXMgdGltZSBmcmFtZSB3aWxs
IGJlIGNvbnNpZGVyZWQgZm9yIHN5bmNocm9uaXphdGlvbi4nJycKKyAgICApCisgICAgcGFyc2Vy
X3N5bmMuc2V0X2RlZmF1bHRzKGZ1bmM9c3luY2hyb25pemUpCisKKyAgICBwYXJzZXJfZGV0ZWN0
ID0gc3VicGFyc2Vycy5hZGRfcGFyc2VyKCdkZXRlY3QnLCBoZWxwPWRldGVjdC5fX2RvY19fKQor
ICAgIHBhcnNlcl9kZXRlY3QuYWRkX2FyZ3VtZW50KAorICAgICAgICAnLS10YXJnZXQnLAorICAg
ICAgICByZXF1aXJlZD1UcnVlLAorICAgICAgICBoZWxwPScnJ3RoZSBVUkwgb2YgdGhlIHdlYnNp
dGUgdG8gd2hpY2ggc3VibWlzc2lvbiBwcmV2aWV3cyBhcmUKKyAgICAgICAgICAgIGV4cGVjdGVk
IHRvIGJlY29tZSBhdmFpbGFibGUnJycKKyAgICApCisgICAgcGFyc2VyX2RldGVjdC5hZGRfYXJn
dW1lbnQoCisgICAgICAgICctLXRpbWVvdXQnLAorICAgICAgICB0eXBlPWludCwKKyAgICAgICAg
cmVxdWlyZWQ9VHJ1ZSwKKyAgICAgICAgaGVscD0nJyd0aGUgbnVtYmVyIG9mIHNlY29uZHMgdG8g
d2FpdCBmb3IgYSBzdWJtaXNzaW9uIHByZXZpZXcgdG8KKyAgICAgICAgICAgIGJlY29tZSBhdmFp
bGFibGUgYmVmb3JlIHJlcG9ydGluZyBhIEdpdEh1YiBEZXBsb3ltZW50IGZhaWx1cmUnJycKKyAg
ICApCisgICAgcGFyc2VyX2RldGVjdC5zZXRfZGVmYXVsdHMoZnVuYz1kZXRlY3QpCisKKyAgICB2
YWx1ZXMgPSBkaWN0KHZhcnMocGFyc2VyLnBhcnNlX2FyZ3MoKSkpCisgICAgdmFsdWVzLnBvcCgn
ZnVuYycpKCoqdmFsdWVzKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy9jaS9ydW4uc2ggYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2NpL3J1bi5zaApkZWxldGVkIGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggYWU1OGY1OGMzMzYuLjAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvY2kvcnVuLnNoCisrKyAvZGV2L251
bGwKQEAgLTEsMTAgKzAsMCBAQAotIyEvYmluL2Jhc2gKLXNldCAtZXgKLQotU0NSSVBUX0RJUj0k
KGRpcm5hbWUgJChyZWFkbGluayAtZiAiJDAiKSkKLVdQVF9ST09UPSQocmVhZGxpbmsgLWYgJFND
UklQVF9ESVIvLi4vLi4pCi1jZCAkV1BUX1JPT1QKLQotaWYgW1sgJFJVTl9KT0IgLWVxIDEgXV07
IHRoZW4KLSAgICAkU0NSSVBUCi1maQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9jaS9ydW5fdGMucHkgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2NpL3J1bl90Yy5weQpuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uYjRjYjJiMDFiOTcKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L2NpL3J1bl90Yy5weQpAQCAtMCwwICsxLDM3MiBAQAorIyEvdXNyL2Jpbi9lbnYgcHl0aG9uCisK
KyIiIldyYXBwZXIgc2NyaXB0IGZvciBydW5uaW5nIGpvYnMgaW4gVGFza2NsdXN0ZXIKKworVGhp
cyBpcyBpbnRlbmRlZCBmb3IgcnVubmluZyB0ZXN0IGpvYnMgaW4gVGFza2NsdXN0ZXIuIFRoZSBz
Y3JpcHQKK3Rha2VzIGEgdHdvIHBvc2l0aW9uYWwgYXJndW1lbnRzIHdoaWNoIGFyZSB0aGUgbmFt
ZSBvZiB0aGUgdGVzdCBqb2IKK2FuZCB0aGUgc2NyaXB0IHRvIGFjdHVhbGx5IHJ1bi4KKworVGhl
IG5hbWUgb2YgdGhlIHRlc3Qgam9iIGlzIHVzZWQgdG8gZGV0ZXJtaW5lIHdoZXRoZXIgdGhlIHNj
cmlwdCBzaG91bGQgYmUgcnVuCitmb3IgdGhpcyBwdXNoICh0aGlzIGlzIGluIGxpZXUgb2YgaGF2
aW5nIGEgcHJvcGVyIGRlY2lzaW9uIHRhc2spLiBUaGVyZSBhcmUKK3NldmVyYWwgd2F5cyB0aGF0
IHRoZSBzY3JpcHQgY2FuIGJlIHNjaGVkdWxlZCB0byBydW4KKworMS4gVGhlIG91dHB1dCBvZiB3
cHQgdGVzdC1qb2JzIGluY2x1ZGVzIHRoZSBqb2IgbmFtZQorMi4gVGhlIGpvYiBuYW1lIGlzIGlu
Y2x1ZGVkIGluIGEgam9iIGRlY2xhcmF0aW9uIChzZWUgYmVsb3cpCiszLiBUaGUgc3RyaW5nICJh
bGwiIGlzIGluY2x1ZGVkIGluIHRoZSBqb2IgZGVjbGFyYXRpb24KKzQuIFRoZSBqb2IgbmFtZSBp
cyBzZXQgdG8gImFsbCIKKworQSBqb2IgZGVjbGFyYXRpb24gaXMgYSBsaW5lIGFwcGVhcmluZyBp
biB0aGUgcHVsbCByZXF1ZXN0IGJvZHkgKGZvcgorcHVsbCByZXF1ZXN0cykgb3IgZmlyc3QgY29t
bWl0IG1lc3NhZ2UgKGZvciBwdXNoZXMpIG9mIHRoZSBmb3JtOgorCit0Yy1qb2JzOiBqb2IxLGpv
YjIsWy4uLl0KKworSW4gYWRkaXRpb24sIHRoZXJlIGFyZSBhIG51bWJlciBvZiBrZXl3b3JkIGFy
Z3VtZW50cyB1c2VkIHRvIHNldCBvcHRpb25zIGZvciB0aGUKK2Vudmlyb25tZW50IGluIHdoaWNo
IHRoZSBqb2JzIHJ1bi4gRG9jdW1lbnRhdGlvbiBmb3IgdGhlc2UgaXMgaW4gdGhlIGNvbW1hbmQg
aGVscC4KKworQXMgd2VsbCBhcyBydW5uaW5nIHRoZSBzY3JpcHQsIHRoZSBzY3JpcHQgc2V0cyB0
d28gZW52aXJvbm1lbnQgdmFyaWFibGVzOworR0lUSFVCX0JSQU5DSCB3aGljaCBpcyB0aGUgYnJh
bmNoIHRoYXQgdGhlIGNvbW1pdHMgd2lsbCBtZXJnZSBpbnRvIChpZiBpdCdzIGEgUFIpCitvciB0
aGUgYnJhbmNoIHRoYXQgdGhlIGNvbW1pdHMgYXJlIG9uIChpZiBpdCdzIGEgcHVzaCksIGFuZCBH
SVRIVUJfUFVMTF9SRVFVRVNUCit3aGljaCBpcyB0aGUgc3RyaW5nICJmYWxzZSIgaWYgdGhlIGV2
ZW50IHRyaWdnZXJpbmcgdGhpcyBqb2Igd2Fzbid0IGEgcHVsbCByZXF1ZXN0CitvciB0aGUgcHVs
bCByZXF1ZXN0IG51bWJlciBpZiBpdCB3YXMuIFRoZSBzZW1hbnRpY3Mgb2YgdGhlc2UgdmFyaWFi
bGVzIGFyZSBjaG9zZW4KK3RvIG1hdGNoIHRoZSBjb3JyZXNwb25kaW5nIFRSQVZJU18qIHZhcmlh
Ymxlcy4KKworTm90ZTogZm9yIGxvY2FsIHRlc3RpbmcgaW4gdGhlIERvY2tlciBpbWFnZSB0aGUg
c2NyaXB0IG91Z2h0IHRvIHN0aWxsIHdvcmssIGJ1dAorZnVsbCBmdW5jdGlvbmFsaXR5IHJlcXVp
cmVzIHRoYXQgdGhlIFRBU0tfRVZFTlQgZW52aXJvbm1lbnQgdmFyaWFibGUgaXMgc2V0IHRvCit0
aGUgc2VyaWFsaXphdGlvbiBvZiBhIEdpdEh1YiBldmVudCBwYXlsb2FkLgorIiIiCisKK2ltcG9y
dCBhcmdwYXJzZQoraW1wb3J0IGpzb24KK2ltcG9ydCBvcworaW1wb3J0IHN1YnByb2Nlc3MKK2lt
cG9ydCBzeXMKK2ltcG9ydCB0ZW1wZmlsZQorZnJvbSBzb2NrZXQgaW1wb3J0IGVycm9yIGFzIFNv
Y2tldEVycm9yICAjIE5PUUE6IE44MTIKK2ltcG9ydCBlcnJubwordHJ5OgorICAgIGZyb20gdXJs
bGliMiBpbXBvcnQgdXJsb3BlbgorZXhjZXB0IEltcG9ydEVycm9yOgorICAgICMgUHl0aG9uIDMg
Y2FzZQorICAgIGZyb20gdXJsbGliLnJlcXVlc3QgaW1wb3J0IHVybG9wZW4KKworCityb290ID0g
b3MucGF0aC5hYnNwYXRoKAorICAgIG9zLnBhdGguam9pbihvcy5wYXRoLmRpcm5hbWUoX19maWxl
X18pLAorICAgICAgICAgICAgICAgICBvcy5wYXJkaXIsCisgICAgICAgICAgICAgICAgIG9zLnBh
cmRpcikpCisKKworZGVmIHJ1bihjbWQsIHJldHVybl9zdGRvdXQ9RmFsc2UsICoqa3dhcmdzKToK
KyAgICBwcmludCgiICIuam9pbihjbWQpKQorICAgIGlmIHJldHVybl9zdGRvdXQ6CisgICAgICAg
IGYgPSBzdWJwcm9jZXNzLmNoZWNrX291dHB1dAorICAgIGVsc2U6CisgICAgICAgIGYgPSBzdWJw
cm9jZXNzLmNoZWNrX2NhbGwKKyAgICByZXR1cm4gZihjbWQsICoqa3dhcmdzKQorCisKK2RlZiBz
dGFydChjbWQpOgorICAgIHByaW50KCIgIi5qb2luKGNtZCkpCisgICAgc3VicHJvY2Vzcy5Qb3Bl
bihjbWQpCisKKworZGVmIGdldF9wYXJzZXIoKToKKyAgICBwID0gYXJncGFyc2UuQXJndW1lbnRQ
YXJzZXIoKQorICAgIHAuYWRkX2FyZ3VtZW50KCItLW9vbS1raWxsZXIiLAorICAgICAgICAgICAg
ICAgICAgIGFjdGlvbj0ic3RvcmVfdHJ1ZSIsCisgICAgICAgICAgICAgICAgICAgZGVmYXVsdD1G
YWxzZSwKKyAgICAgICAgICAgICAgICAgICBoZWxwPSJSdW4gdXNlcnNwYWNlIE9PTSBraWxsZXIi
KQorICAgIHAuYWRkX2FyZ3VtZW50KCItLWhvc3RzIiwKKyAgICAgICAgICAgICAgICAgICBkZXN0
PSJob3N0c19maWxlIiwKKyAgICAgICAgICAgICAgICAgICBhY3Rpb249InN0b3JlX3RydWUiLAor
ICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ9VHJ1ZSwKKyAgICAgICAgICAgICAgICAgICBoZWxw
PSJTZXR1cCB3cHQgZW50cmllcyBpbiBob3N0cyBmaWxlIikKKyAgICBwLmFkZF9hcmd1bWVudCgi
LS1uby1ob3N0cyIsCisgICAgICAgICAgICAgICAgICAgZGVzdD0iaG9zdHNfZmlsZSIsCisgICAg
ICAgICAgICAgICAgICAgYWN0aW9uPSJzdG9yZV9mYWxzZSIsCisgICAgICAgICAgICAgICAgICAg
aGVscD0iRG9uJ3Qgc2V0dXAgd3B0IGVudHJpZXMgaW4gaG9zdHMgZmlsZSIpCisgICAgcC5hZGRf
YXJndW1lbnQoIi0tYnJvd3NlciIsCisgICAgICAgICAgICAgICAgICAgYWN0aW9uPSJhcHBlbmQi
LAorICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ9W10sCisgICAgICAgICAgICAgICAgICAgaGVs
cD0iQnJvd3NlcnMgdGhhdCB3aWxsIGJlIHVzZWQgaW4gdGhlIGpvYiIpCisgICAgcC5hZGRfYXJn
dW1lbnQoIi0tY2hhbm5lbCIsCisgICAgICAgICAgICAgICAgICAgZGVmYXVsdD1Ob25lLAorICAg
ICAgICAgICAgICAgICAgIGNob2ljZXM9WyJleHBlcmltZW50YWwiLCAiZGV2IiwgIm5pZ2h0bHki
LCAiYmV0YSIsICJzdGFibGUiXSwKKyAgICAgICAgICAgICAgICAgICBoZWxwPSJDaHJvbWUgYnJv
d3NlciBjaGFubmVsIikKKyAgICBwLmFkZF9hcmd1bWVudCgiLS14dmZiIiwKKyAgICAgICAgICAg
ICAgICAgICBhY3Rpb249InN0b3JlX3RydWUiLAorICAgICAgICAgICAgICAgICAgIGhlbHA9IlN0
YXJ0IHh2ZmIiKQorICAgIHAuYWRkX2FyZ3VtZW50KCItLWNoZWNrb3V0IiwKKyAgICAgICAgICAg
ICAgICAgICBoZWxwPSJSZXZpc2lvbiB0byBjaGVja291dCBiZWZvcmUgc3RhcnRpbmcgam9iIikK
KyAgICBwLmFkZF9hcmd1bWVudCgiLS1pbnN0YWxsLWNlcnRpZmljYXRlcyIsIGFjdGlvbj0ic3Rv
cmVfdHJ1ZSIsIGRlZmF1bHQ9Tm9uZSwKKyAgICAgICAgICAgICAgICAgICBoZWxwPSJJbnN0YWxs
IHdlYi1wbGF0Zm9ybS50ZXN0IGNlcnRpZmljYXRlcyB0byBVQSBzdG9yZSIpCisgICAgcC5hZGRf
YXJndW1lbnQoIi0tbm8taW5zdGFsbC1jZXJ0aWZpY2F0ZXMiLCBhY3Rpb249InN0b3JlX2ZhbHNl
IiwgZGVmYXVsdD1Ob25lLAorICAgICAgICAgICAgICAgICAgIGhlbHA9IkRvbid0IGluc3RhbGwg
d2ViLXBsYXRmb3JtLnRlc3QgY2VydGlmaWNhdGVzIHRvIFVBIHN0b3JlIikKKyAgICBwLmFkZF9h
cmd1bWVudCgiLS1yZXYiLAorICAgICAgICAgICAgICAgICAgIGhlbHA9IlJldmlzaW9uIHRoYXQg
dGhlIHRhc2tfaGVhZCByZWYgaXMgZXhwZWN0ZWQgdG8gcG9pbnQgdG8iKQorICAgIHAuYWRkX2Fy
Z3VtZW50KCJzY3JpcHQiLAorICAgICAgICAgICAgICAgICAgIGhlbHA9IlNjcmlwdCB0byBydW4g
Zm9yIHRoZSBqb2IiKQorICAgIHAuYWRkX2FyZ3VtZW50KCJzY3JpcHRfYXJncyIsCisgICAgICAg
ICAgICAgICAgICAgbmFyZ3M9YXJncGFyc2UuUkVNQUlOREVSLAorICAgICAgICAgICAgICAgICAg
IGhlbHA9IkFkZGl0aW9uYWwgYXJndW1lbnRzIHRvIHBhc3MgdG8gdGhlIHNjcmlwdCIpCisgICAg
cmV0dXJuIHAKKworCitkZWYgc3RhcnRfdXNlcnNwYWNlX29vbV9raWxsZXIoKToKKyAgICAjIFN0
YXJ0IHVzZXJzcGFjZSBPT00ga2lsbGVyOiBodHRwczovL2dpdGh1Yi5jb20vcmZqYWtvYi9lYXJs
eW9vbQorICAgICMgSXQgd2lsbCByZXBvcnQgbWVtb3J5IHVzYWdlIGV2ZXJ5IG1pbnV0ZSBhbmQg
cHJlZmVyIHRvIGtpbGwgYnJvd3NlcnMuCisgICAgc3RhcnQoWyJzdWRvIiwgImVhcmx5b29tIiwg
Ii1wIiwgIi1yIiwgIjYwIiwgIi0tcHJlZmVyPShjaHJvbWV8ZmlyZWZveCkiLCAiLS1hdm9pZD1w
eXRob24iXSkKKworCitkZWYgbWFrZV9ob3N0c19maWxlKCk6CisgICAgcnVuKFsic3VkbyIsICJz
aCIsICItYyIsICIuL3dwdCBtYWtlLWhvc3RzLWZpbGUgPj4gL2V0Yy9ob3N0cyJdKQorCisKK2Rl
ZiBjaGVja291dF9yZXZpc2lvbihyZXYpOgorICAgIHJ1bihbImdpdCIsICJjaGVja291dCIsICIt
LXF1aWV0IiwgcmV2XSkKKworCitkZWYgaW5zdGFsbF9jZXJ0aWZpY2F0ZXMoKToKKyAgICBydW4o
WyJzdWRvIiwgImNwIiwgInRvb2xzL2NlcnRzL2NhY2VydC5wZW0iLAorICAgICAgICAgIi91c3Iv
bG9jYWwvc2hhcmUvY2EtY2VydGlmaWNhdGVzL2NhY2VydC5jcnQiXSkKKyAgICBydW4oWyJzdWRv
IiwgInVwZGF0ZS1jYS1jZXJ0aWZpY2F0ZXMiXSkKKworCitkZWYgaW5zdGFsbF9jaHJvbWUoY2hh
bm5lbCk6CisgICAgaWYgY2hhbm5lbCBpbiAoImV4cGVyaW1lbnRhbCIsICJkZXYiLCAibmlnaHRs
eSIpOgorICAgICAgICBkZWJfYXJjaGl2ZSA9ICJnb29nbGUtY2hyb21lLXVuc3RhYmxlX2N1cnJl
bnRfYW1kNjQuZGViIgorICAgIGVsaWYgY2hhbm5lbCA9PSAiYmV0YSI6CisgICAgICAgIGRlYl9h
cmNoaXZlID0gImdvb2dsZS1jaHJvbWUtYmV0YV9jdXJyZW50X2FtZDY0LmRlYiIKKyAgICBlbGlm
IGNoYW5uZWwgPT0gInN0YWJsZSI6CisgICAgICAgIGRlYl9hcmNoaXZlID0gImdvb2dsZS1jaHJv
bWUtc3RhYmxlX2N1cnJlbnRfYW1kNjQuZGViIgorICAgIGVsc2U6CisgICAgICAgIHJhaXNlIFZh
bHVlRXJyb3IoIlVucmVjb2duaXplZCByZWxlYXNlIGNoYW5uZWw6ICVzIiAlIGNoYW5uZWwpCisK
KyAgICBkZXN0ID0gb3MucGF0aC5qb2luKCIvdG1wIiwgZGViX2FyY2hpdmUpCisgICAgcmVzcCA9
IHVybG9wZW4oImh0dHBzOi8vZGwuZ29vZ2xlLmNvbS9saW51eC9kaXJlY3QvJXMiICUgZGViX2Fy
Y2hpdmUpCisgICAgd2l0aCBvcGVuKGRlc3QsICJ3IikgYXMgZjoKKyAgICAgICAgZi53cml0ZShy
ZXNwLnJlYWQoKSkKKworICAgIHJ1bihbInN1ZG8iLCAiYXB0LWdldCIsICItcXF5IiwgInVwZGF0
ZSJdKQorICAgIHJ1bihbInN1ZG8iLCAiZ2RlYmkiLCAiLXFuIiwgIi90bXAvJXMiICUgZGViX2Fy
Y2hpdmVdKQorCitkZWYgaW5zdGFsbF93ZWJraXRndGtfZnJvbV9hcHRfcmVwb3NpdG9yeShjaGFu
bmVsKToKKyAgICAjIENvbmZpZ3VyZSB3ZWJraXRndGsub3JnL2RlYmlhbiByZXBvc2l0b3J5IGZv
ciAkY2hhbm5lbCBhbmQgcGluIGl0IHdpdGggbWF4aW11bSBwcmlvcml0eQorICAgIHJ1bihbInN1
ZG8iLCAiYXB0LWtleSIsICJhZHYiLCAiLS1mZXRjaC1rZXlzIiwgImh0dHBzOi8vd2Via2l0Z3Rr
Lm9yZy9kZWJpYW4vYXB0LmtleSJdKQorICAgIHdpdGggb3BlbigiL3RtcC93ZWJraXRndGsubGlz
dCIsICJ3IikgYXMgZjoKKyAgICAgICAgZi53cml0ZSgiZGViIFthcmNoPWFtZDY0XSBodHRwczov
L3dlYmtpdGd0ay5vcmcvYXB0IGJpb25pYy13cHQtd2Via2l0LXVwZGF0ZXMgJXNcbiIgJSBjaGFu
bmVsKQorICAgIHJ1bihbInN1ZG8iLCAibXYiLCAiL3RtcC93ZWJraXRndGsubGlzdCIsICIvZXRj
L2FwdC9zb3VyY2VzLmxpc3QuZC8iXSkKKyAgICB3aXRoIG9wZW4oIi90bXAvOTl3ZWJraXRndGsi
LCAidyIpIGFzIGY6CisgICAgICAgIGYud3JpdGUoIlBhY2thZ2U6ICpcblBpbjogb3JpZ2luIHdl
YmtpdGd0ay5vcmdcblBpbi1Qcmlvcml0eTogMTk5OVxuIikKKyAgICBydW4oWyJzdWRvIiwgIm12
IiwgIi90bXAvOTl3ZWJraXRndGsiLCAiL2V0Yy9hcHQvcHJlZmVyZW5jZXMuZC8iXSkKKyAgICAj
IEluc3RhbGwgd2Via2l0Mmd0ayBmcm9tIHRoZSB3ZWJraXRndGsub3JnL2FwdCByZXBvc2l0b3J5
IGZvciAkY2hhbm5lbAorICAgIHJ1bihbInN1ZG8iLCAiYXB0LWdldCIsICItcXF5IiwgInVwZGF0
ZSJdKQorICAgIHJ1bihbInN1ZG8iLCAiYXB0LWdldCIsICItcXF5IiwgInVwZ3JhZGUiXSkKKyAg
ICBydW4oWyJzdWRvIiwgImFwdC1nZXQiLCAiLXFxeSIsICItdCIsICJiaW9uaWMtd3B0LXdlYmtp
dC11cGRhdGVzIiwgImluc3RhbGwiLCAid2Via2l0Mmd0ay1kcml2ZXIiXSkKKworCisjIERvd25s
b2FkIGFuIFVSTCBpbiBjaHVua3MgYW5kIHNhdmVzIGl0IHRvIGEgZmlsZSBkZXNjcmlwdG9yICh0
cnVuY2F0aW5nIGl0KQorIyBJdCBkb2Vzbid0IGNsb3NlIHRoZSBkZXNjcmlwdG9yLCBidXQgZmx1
c2hlcyBpdCBvbiBzdWNjZXNzLgorIyBJdCByZXRyaWVzIHRoZSBkb3dubG9hZCBpbiBjYXNlIG9m
IEVDT05OUkVTRVQgdXAgdG8gbWF4X3JldHJpZXMuCitkZWYgZG93bmxvYWRfdXJsX3RvX2Rlc2Ny
aXB0b3IoZmQsIHVybCwgbWF4X3JldHJpZXM9Myk6CisgICAgZG93bmxvYWRfc3VjY2VlZCA9IEZh
bHNlCisgICAgaWYgbWF4X3JldHJpZXMgPCAwOgorICAgICAgICBtYXhfcmV0cmllcyA9IDAKKyAg
ICBmb3IgY3VycmVudF9yZXRyeSBpbiByYW5nZShtYXhfcmV0cmllcysxKToKKyAgICAgICAgdHJ5
OgorICAgICAgICAgICAgcmVzcCA9IHVybG9wZW4odXJsKQorICAgICAgICAgICAgIyBXZSBtYXkg
Y29tZSBoZXJlIGluIGEgcmV0cnksIGVuc3VyZSB0byB0cnVuY2F0ZSBmZCBiZWZvcmUgc3RhcnQg
d3JpdGluZy4KKyAgICAgICAgICAgIGZkLnNlZWsoMCkKKyAgICAgICAgICAgIGZkLnRydW5jYXRl
KDApCisgICAgICAgICAgICB3aGlsZSBUcnVlOgorICAgICAgICAgICAgICAgIGNodW5rID0gcmVz
cC5yZWFkKDE2KjEwMjQpCisgICAgICAgICAgICAgICAgaWYgbm90IGNodW5rOgorICAgICAgICAg
ICAgICAgICAgICBicmVhayAgIyBEb3dubG9hZCBmaW5pc2hlZAorICAgICAgICAgICAgICAgIGZk
LndyaXRlKGNodW5rKQorICAgICAgICAgICAgZmQuZmx1c2goKQorICAgICAgICAgICAgZG93bmxv
YWRfc3VjY2VlZCA9IFRydWUKKyAgICAgICAgICAgIGJyZWFrICAjIFN1Y2VzcworICAgICAgICBl
eGNlcHQgU29ja2V0RXJyb3IgYXMgZToKKyAgICAgICAgICAgIGlmIGUuZXJybm8gIT0gZXJybm8u
RUNPTk5SRVNFVDoKKyAgICAgICAgICAgICAgICByYWlzZSAgIyBVbmtub3duIGVycm9yCisgICAg
ICAgICAgICBpZiBjdXJyZW50X3JldHJ5IDwgbWF4X3JldHJpZXM6CisgICAgICAgICAgICAgICAg
cHJpbnQoIkVSUk9SOiBDb25uZWN0aW9uIHJlc2V0IGJ5IHBlZXIuIFJldHJ5aW5nIC4uLiIpCisg
ICAgICAgICAgICAgICAgY29udGludWUgICMgUmV0cnkKKyAgICByZXR1cm4gZG93bmxvYWRfc3Vj
Y2VlZAorCisKK2RlZiBpbnN0YWxsX3dlYmtpdGd0a19mcm9tX3RhcmJhbGxfYnVuZGxlKGNoYW5u
ZWwpOgorICAgIHdpdGggdGVtcGZpbGUuTmFtZWRUZW1wb3JhcnlGaWxlKHN1ZmZpeD0iLnRhci54
eiIpIGFzIHRlbXBfdGFyYmFsbDoKKyAgICAgICAgZG93bmxvYWRfdXJsID0gImh0dHBzOi8vd2Vi
a2l0Z3RrLm9yZy9idWlsdC1wcm9kdWN0cy9uaWdodGx5L3dlYmtpdGd0ay1uaWdodGx5LWJ1aWxk
LWxhc3QudGFyLnh6IgorICAgICAgICBpZiBub3QgZG93bmxvYWRfdXJsX3RvX2Rlc2NyaXB0b3Io
dGVtcF90YXJiYWxsLCBkb3dubG9hZF91cmwpOgorICAgICAgICAgICAgcmFpc2UgUnVudGltZUVy
cm9yKCJDYW4ndCBkb3dubG9hZCAlcy4gQWJvcnRpbmciICUgZG93bmxvYWRfdXJsKQorICAgICAg
ICBydW4oWyJzdWRvIiwgInRhciIsICJ4ZmEiLCB0ZW1wX3RhcmJhbGwubmFtZSwgIi1DIiwgIi8i
XSkKKyAgICAjIEluc3RhbGwgZGVwZW5kZW5jaWVzCisgICAgcnVuKFsic3VkbyIsICJhcHQtZ2V0
IiwgIi1xcXkiLCAidXBkYXRlIl0pCisgICAgcnVuKFsic3VkbyIsICIvb3B0L3dlYmtpdGd0ay9u
aWdodGx5L2luc3RhbGwtZGVwZW5kZW5jaWVzIl0pCisKKworZGVmIGluc3RhbGxfd2Via2l0Z3Rr
KGNoYW5uZWwpOgorICAgIGlmIGNoYW5uZWwgaW4gKCJleHBlcmltZW50YWwiLCAiZGV2IiwgIm5p
Z2h0bHkiKToKKyAgICAgICAgaW5zdGFsbF93ZWJraXRndGtfZnJvbV90YXJiYWxsX2J1bmRsZShj
aGFubmVsKQorICAgIGVsaWYgY2hhbm5lbCBpbiAoImJldGEiLCAic3RhYmxlIik6CisgICAgICAg
IGluc3RhbGxfd2Via2l0Z3RrX2Zyb21fYXB0X3JlcG9zaXRvcnkoY2hhbm5lbCkKKyAgICBlbHNl
OgorICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJVbnJlY29nbml6ZWQgcmVsZWFzZSBjaGFubmVs
OiAlcyIgJSBjaGFubmVsKQorCitkZWYgc3RhcnRfeHZmYigpOgorICAgIHN0YXJ0KFsic3VkbyIs
ICJYdmZiIiwgb3MuZW52aXJvblsiRElTUExBWSJdLCAiLXNjcmVlbiIsICIwIiwKKyAgICAgICAg
ICAgIiVzeCVzeCVzIiAlIChvcy5lbnZpcm9uWyJTQ1JFRU5fV0lEVEgiXSwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICBvcy5lbnZpcm9uWyJTQ1JFRU5fSEVJR0hUIl0sCisgICAgICAgICAgICAg
ICAgICAgICAgICAgb3MuZW52aXJvblsiU0NSRUVOX0RFUFRIIl0pXSkKKyAgICBzdGFydChbInN1
ZG8iLCAiZmx1eGJveCIsICItZGlzcGxheSIsIG9zLmVudmlyb25bIkRJU1BMQVkiXV0pCisKKwor
ZGVmIHNldF92YXJpYWJsZXMoZXZlbnQpOgorICAgICMgU2V0IHNvbWUgdmFyaWFibGVzIHRoYXQg
d2UgdXNlIHRvIGdldCB0aGUgY29tbWl0cyBvbiB0aGUgY3VycmVudCBicmFuY2gKKyAgICByZWZf
cHJlZml4ID0gInJlZnMvaGVhZHMvIgorICAgIHB1bGxfcmVxdWVzdCA9ICJmYWxzZSIKKyAgICBi
cmFuY2ggPSBOb25lCisgICAgaWYgInB1bGxfcmVxdWVzdCIgaW4gZXZlbnQ6CisgICAgICAgIHB1
bGxfcmVxdWVzdCA9IHN0cihldmVudFsicHVsbF9yZXF1ZXN0Il1bIm51bWJlciJdKQorICAgICAg
ICAjIE5vdGUgdGhhdCB0aGlzIGlzIHRoZSBicmFuY2ggdGhhdCBhIFBSIHdpbGwgbWVyZ2UgdG8s
CisgICAgICAgICMgbm90IHRoZSBicmFuY2ggbmFtZSBmb3IgdGhlIFBSCisgICAgICAgIGJyYW5j
aCA9IGV2ZW50WyJwdWxsX3JlcXVlc3QiXVsiYmFzZSJdWyJyZWYiXQorICAgIGVsaWYgInJlZiIg
aW4gZXZlbnQ6CisgICAgICAgIGJyYW5jaCA9IGV2ZW50WyJyZWYiXQorICAgICAgICBpZiBicmFu
Y2guc3RhcnRzd2l0aChyZWZfcHJlZml4KToKKyAgICAgICAgICAgIGJyYW5jaCA9IGJyYW5jaFts
ZW4ocmVmX3ByZWZpeCk6XQorCisgICAgb3MuZW52aXJvblsiR0lUSFVCX1BVTExfUkVRVUVTVCJd
ID0gcHVsbF9yZXF1ZXN0CisgICAgaWYgYnJhbmNoOgorICAgICAgICBvcy5lbnZpcm9uWyJHSVRI
VUJfQlJBTkNIIl0gPSBicmFuY2gKKworCitkZWYgc2V0dXBfZW52aXJvbm1lbnQoYXJncyk6Cisg
ICAgaWYgYXJncy5ob3N0c19maWxlOgorICAgICAgICBtYWtlX2hvc3RzX2ZpbGUoKQorCisgICAg
aWYgYXJncy5pbnN0YWxsX2NlcnRpZmljYXRlczoKKyAgICAgICAgaW5zdGFsbF9jZXJ0aWZpY2F0
ZXMoKQorCisgICAgaWYgImNocm9tZSIgaW4gYXJncy5icm93c2VyOgorICAgICAgICBhc3NlcnQg
YXJncy5jaGFubmVsIGlzIG5vdCBOb25lCisgICAgICAgIGluc3RhbGxfY2hyb21lKGFyZ3MuY2hh
bm5lbCkKKyAgICBlbGlmICJ3ZWJraXRndGtfbWluaWJyb3dzZXIiIGluIGFyZ3MuYnJvd3NlcjoK
KyAgICAgICAgYXNzZXJ0IGFyZ3MuY2hhbm5lbCBpcyBub3QgTm9uZQorICAgICAgICBpbnN0YWxs
X3dlYmtpdGd0ayhhcmdzLmNoYW5uZWwpCisKKyAgICBpZiBhcmdzLnh2ZmI6CisgICAgICAgIHN0
YXJ0X3h2ZmIoKQorCisgICAgaWYgYXJncy5vb21fa2lsbGVyOgorICAgICAgICBzdGFydF91c2Vy
c3BhY2Vfb29tX2tpbGxlcigpCisKKyAgICBpZiBhcmdzLmNoZWNrb3V0OgorICAgICAgICBjaGVj
a291dF9yZXZpc2lvbihhcmdzLmNoZWNrb3V0KQorCisKK2RlZiBzZXR1cF9yZXBvc2l0b3J5KCk6
CisgICAgaWYgb3MuZW52aXJvbi5nZXQoIkdJVEhVQl9QVUxMX1JFUVVFU1QiLCAiZmFsc2UiKSAh
PSAiZmFsc2UiOgorICAgICAgICBwYXJlbnRzID0gcnVuKFsiZ2l0IiwgInNob3ciLCAiLS1uby1w
YXRjaCIsICItLWZvcm1hdD0lUCIsICJ0YXNrX2hlYWQiXSwgcmV0dXJuX3N0ZG91dD1UcnVlKS5z
dHJpcCgpLnNwbGl0KCkKKyAgICAgICAgaWYgbGVuKHBhcmVudHMpID09IDI6CisgICAgICAgICAg
ICBiYXNlX2hlYWQgPSBwYXJlbnRzWzBdCisgICAgICAgICAgICBwcl9oZWFkID0gcGFyZW50c1sx
XQorCisgICAgICAgICAgICBydW4oWyJnaXQiLCAiYnJhbmNoIiwgImJhc2VfaGVhZCIsIGJhc2Vf
aGVhZF0pCisgICAgICAgICAgICBydW4oWyJnaXQiLCAiYnJhbmNoIiwgInByX2hlYWQiLCBwcl9o
ZWFkXSkKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHByaW50KCJFUlJPUjogUHVsbCByZXF1
ZXN0IEhFQUQgd2Fzbid0IGEgMi1wYXJlbnQgbWVyZ2UgY29tbWl0OyAiCisgICAgICAgICAgICAg
ICAgICAiZXhwZWN0ZWQgdG8gdGVzdCB0aGUgbWVyZ2Ugb2YgUFIgaW50byB0aGUgYmFzZSIpCisg
ICAgICAgICAgICBjb21taXQgPSBydW4oWyJnaXQiLCAic2hvdyIsICItLW5vLXBhdGNoIiwgIi0t
Zm9ybWF0PSVIIiwgInRhc2tfaGVhZCJdLCByZXR1cm5fc3Rkb3V0PVRydWUpLnN0cmlwKCkKKyAg
ICAgICAgICAgIHByaW50KCJIRUFEOiAlcyIgJSBjb21taXQpCisgICAgICAgICAgICBwcmludCgi
UGFyZW50czogJXMiICUgIiwgIi5qb2luKHBhcmVudHMpKQorICAgICAgICAgICAgc3lzLmV4aXQo
MSkKKworICAgIGJyYW5jaCA9IG9zLmVudmlyb24uZ2V0KCJHSVRIVUJfQlJBTkNIIikKKyAgICBp
ZiBicmFuY2g6CisgICAgICAgICMgRW5zdXJlIHRoYXQgdGhlIHJlbW90ZSBiYXNlIGJyYW5jaCBl
eGlzdHMKKyAgICAgICAgIyBUT0RPOiBtb3ZlIHRoaXMgc29tZXdoZXJlIGVhcmxpZXIgaW4gdGhl
IHRhc2sKKyAgICAgICAgcnVuKFsiZ2l0IiwgImZldGNoIiwgIi0tcXVpZXQiLCAib3JpZ2luIiwg
IiVzOiVzIiAlIChicmFuY2gsIGJyYW5jaCldKQorCisKK2RlZiBmZXRjaF9ldmVudF9kYXRhKCk6
CisgICAgdHJ5OgorICAgICAgICB0YXNrX2lkID0gb3MuZW52aXJvblsiVEFTS19JRCJdCisgICAg
ZXhjZXB0IEtleUVycm9yOgorICAgICAgICBwcmludCgiV0FSTklORzogTWlzc2luZyBUQVNLX0lE
IGVudmlyb25tZW50IHZhcmlhYmxlIikKKyAgICAgICAgIyBGb3IgZXhhbXBsZSB1bmRlciBsb2Nh
bCB0ZXN0aW5nCisgICAgICAgIHJldHVybiBOb25lCisKKyAgICByb290X3VybCA9IG9zLmVudmly
b25bJ1RBU0tDTFVTVEVSX1JPT1RfVVJMJ10KKyAgICBpZiByb290X3VybCA9PSAnaHR0cHM6Ly90
YXNrY2x1c3Rlci5uZXQnOgorICAgICAgICBxdWV1ZV9iYXNlID0gImh0dHBzOi8vcXVldWUudGFz
a2NsdXN0ZXIubmV0L3YxL3Rhc2siCisgICAgZWxzZToKKyAgICAgICAgcXVldWVfYmFzZSA9IHJv
b3RfdXJsICsgIi9hcGkvcXVldWUvdjEvdGFzayIKKworCisgICAgcmVzcCA9IHVybG9wZW4oIiVz
LyVzIiAlIChxdWV1ZV9iYXNlLCB0YXNrX2lkKSkKKworICAgIHRhc2tfZGF0YSA9IGpzb24ubG9h
ZChyZXNwKQorICAgIGV2ZW50X2RhdGEgPSB0YXNrX2RhdGEuZ2V0KCJleHRyYSIsIHt9KS5nZXQo
ImdpdGh1Yl9ldmVudCIpCisgICAgaWYgZXZlbnRfZGF0YSBpcyBub3QgTm9uZToKKyAgICAgICAg
cmV0dXJuIGpzb24ubG9hZHMoZXZlbnRfZGF0YSkKKworCitkZWYgaW5jbHVkZV9qb2Ioam9iKToK
KyAgICAjIE9ubHkgZm9yIHN1cHBvcnRpbmcgcHJlIGRlY2lzaW9uLXRhc2sgUFJzCisgICAgIyBT
cGVjaWFsIGNhc2UgdGhpbmdzIHRoYXQgdW5jb25kaXRpb25hbGx5IHJ1biBvbiBwdXNoZXMsCisg
ICAgIyBhc3N1bWluZyBhIGhpZ2hlciBsYXllciBpcyBmaWx0ZXJpbmcgdGhlIHJlcXVpcmVkIGxp
c3Qgb2YgYnJhbmNoZXMKKyAgICBpZiAiR0lUSFVCX1BVTExfUkVRVUVTVCIgbm90IGluIG9zLmVu
dmlyb246CisgICAgICAgIHJldHVybiBUcnVlCisKKyAgICBpZiAob3MuZW52aXJvblsiR0lUSFVC
X1BVTExfUkVRVUVTVCJdID09ICJmYWxzZSIgYW5kCisgICAgICAgIGpvYiA9PSAicnVuLWFsbCIp
OgorICAgICAgICByZXR1cm4gVHJ1ZQorCisgICAgam9ic19zdHIgPSBydW4oW29zLnBhdGguam9p
bihyb290LCAid3B0IiksCisgICAgICAgICAgICAgICAgICAgICJ0ZXN0LWpvYnMiXSwgcmV0dXJu
X3N0ZG91dD1UcnVlKQorICAgIHByaW50KGpvYnNfc3RyKQorICAgIHJldHVybiBqb2IgaW4gc2V0
KGpvYnNfc3RyLnNwbGl0bGluZXMoKSkKKworCitkZWYgbWFpbigpOgorICAgIGFyZ3MgPSBnZXRf
cGFyc2VyKCkucGFyc2VfYXJncygpCisKKyAgICBpZiBhcmdzLnJldiBpcyBub3QgTm9uZToKKyAg
ICAgICAgdGFza19oZWFkID0gcnVuKFsiZ2l0IiwgInJldi1wYXJzZSIsICJ0YXNrX2hlYWQiXSwg
cmV0dXJuX3N0ZG91dD1UcnVlKS5zdHJpcCgpCisgICAgICAgIGlmIHRhc2tfaGVhZCAhPSBhcmdz
LnJldjoKKyAgICAgICAgICAgIHByaW50KCJDUklUSUNBTDogdGFza19oZWFkIHBvaW50cyBhdCAl
cywgZXhwZWN0ZWQgJXMuICIKKyAgICAgICAgICAgICAgICAgICJUaGlzIG1heSBiZSBiZWNhdXNl
IHRoZSBicmFuY2ggd2FzIHVwZGF0ZWQiICUgKHRhc2tfaGVhZCwgYXJncy5yZXYpKQorICAgICAg
ICAgICAgc3lzLmV4aXQoMSkKKworICAgIGlmICJUQVNLX0VWRU5UIiBpbiBvcy5lbnZpcm9uOgor
ICAgICAgICBldmVudCA9IGpzb24ubG9hZHMob3MuZW52aXJvblsiVEFTS19FVkVOVCJdKQorICAg
IGVsc2U6CisgICAgICAgIGV2ZW50ID0gZmV0Y2hfZXZlbnRfZGF0YSgpCisKKyAgICBpZiBldmVu
dDoKKyAgICAgICAgc2V0X3ZhcmlhYmxlcyhldmVudCkKKworICAgIHNldHVwX3JlcG9zaXRvcnko
KQorCisgICAgIyBIYWNrIGZvciBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eQorICAgIGlmIGFyZ3Mu
c2NyaXB0IGluIFsicnVuLWFsbCIsICJsaW50IiwgInVwZGF0ZV9idWlsdCIsICJ0b29sc191bml0
dGVzdCIsCisgICAgICAgICAgICAgICAgICAgICAgICJ3cHRfaW50ZWdyYXRpb24iLCAicmVzb3Vy
Y2VzX3VuaXR0ZXN0IiwKKyAgICAgICAgICAgICAgICAgICAgICAgIndwdHJ1bm5lcl9pbmZyYXN0
cnVjdHVyZSIsICJzdGFiaWxpdHkiLCAiYWZmZWN0ZWRfdGVzdHMiXToKKyAgICAgICAgam9iID0g
YXJncy5zY3JpcHQKKyAgICAgICAgaWYgbm90IGluY2x1ZGVfam9iKGpvYik6CisgICAgICAgICAg
ICByZXR1cm4KKyAgICAgICAgYXJncy5zY3JpcHQgPSBhcmdzLnNjcmlwdF9hcmdzWzBdCisgICAg
ICAgIGFyZ3Muc2NyaXB0X2FyZ3MgPSBhcmdzLnNjcmlwdF9hcmdzWzE6XQorCisgICAgIyBSdW4g
dGhlIGpvYgorICAgIHNldHVwX2Vudmlyb25tZW50KGFyZ3MpCisgICAgb3MuY2hkaXIocm9vdCkK
KyAgICBjbWQgPSBbYXJncy5zY3JpcHRdICsgYXJncy5zY3JpcHRfYXJncworICAgIHByaW50KCIg
Ii5qb2luKGNtZCkpCisgICAgc3lzLmV4aXQoc3VicHJvY2Vzcy5jYWxsKGNtZCkpCisKKworaWYg
X19uYW1lX18gPT0gIl9fbWFpbl9fIjoKKyAgICBtYWluKCkKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvY2kvdGFnX21hc3Rlci5w
eSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvY2kv
dGFnX21hc3Rlci5weQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZjA0OTY3MWMzMTMu
LjAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvY2kvdGFnX21hc3Rlci5weQorKysgL2Rldi9udWxsCkBAIC0xLDEwMSArMCww
IEBACi1pbXBvcnQgYmFzZTY0Ci1pbXBvcnQganNvbgotaW1wb3J0IGxvZ2dpbmcKLWltcG9ydCBv
cwotaW1wb3J0IHN5cwotaW1wb3J0IHVybGxpYjIKLQotaGVyZSA9IG9zLnBhdGguYWJzcGF0aChv
cy5wYXRoLmRpcm5hbWUoX19maWxlX18pKQotd3B0X3Jvb3QgPSBvcy5wYXRoLmFic3BhdGgob3Mu
cGF0aC5qb2luKGhlcmUsIG9zLnBhcmRpciwgb3MucGFyZGlyKSkKLQotaWYgbm90KHdwdF9yb290
IGluIHN5cy5wYXRoKToKLSAgICBzeXMucGF0aC5hcHBlbmQod3B0X3Jvb3QpCi0KLWZyb20gdG9v
bHMud3B0LnRlc3RmaWxlcyBpbXBvcnQgZ2V0X2dpdF9jbWQKLQotbG9nZ2luZy5iYXNpY0NvbmZp
ZyhsZXZlbD1sb2dnaW5nLklORk8pCi1sb2dnZXIgPSBsb2dnaW5nLmdldExvZ2dlcihfX25hbWVf
XykKLQotCi1kZWYgZ2V0X3ByKHJlcG8sIG93bmVyLCBzaGEpOgotICAgIHVybCA9ICgiaHR0cHM6
Ly9hcGkuZ2l0aHViLmNvbS9zZWFyY2gvaXNzdWVzP3E9dHlwZTpwcitpczptZXJnZWQrcmVwbzol
cy8lcytzaGE6JXMiICUKLSAgICAgICAgICAgKHJlcG8sIG93bmVyLCBzaGEpKQotICAgIHRyeToK
LSAgICAgICAgcmVzcCA9IHVybGxpYjIudXJsb3Blbih1cmwpCi0gICAgICAgIGJvZHkgPSByZXNw
LnJlYWQoKQotICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZToKLSAgICAgICAgbG9nZ2VyLmVycm9y
KGUpCi0gICAgICAgIHJldHVybiBOb25lCi0KLSAgICBpZiByZXNwLmNvZGUgIT0gMjAwOgotICAg
ICAgICBsb2dnZXIuZXJyb3IoIkdvdCBIVFRQIHN0YXR1cyAlcy4gUmVzcG9uc2U6IiAlIHJlc3Au
Y29kZSkKLSAgICAgICAgbG9nZ2VyLmVycm9yKGJvZHkpCi0gICAgICAgIHJldHVybiBOb25lCi0K
LSAgICB0cnk6Ci0gICAgICAgIGRhdGEgPSBqc29uLmxvYWRzKGJvZHkpCi0gICAgZXhjZXB0IFZh
bHVlRXJyb3I6Ci0gICAgICAgIGxvZ2dlci5lcnJvcigiRmFpbGVkIHRvIHJlYWQgcmVzcG9uc2Ug
YXMgSlNPTjoiKQotICAgICAgICBsb2dnZXIuZXJyb3IoYm9keSkKLSAgICAgICAgcmV0dXJuIE5v
bmUKLQotICAgIGl0ZW1zID0gZGF0YVsiaXRlbXMiXQotICAgIGlmIGxlbihpdGVtcykgPT0gMDoK
LSAgICAgICAgbG9nZ2VyLmVycm9yKCJObyBQUiBmb3VuZCBmb3IgJXMiICUgc2hhKQotICAgICAg
ICByZXR1cm4gTm9uZQotICAgIGlmIGxlbihpdGVtcykgPiAxOgotICAgICAgICBsb2dnZXIud2Fy
bmluZygiRm91bmQgbXVsdGlwbGUgUFJzIGZvciAlcyIgJSBzaGEpCi0KLSAgICBwciA9IGl0ZW1z
WzBdCi0KLSAgICByZXR1cm4gcHJbIm51bWJlciJdCi0KLQotZGVmIHRhZyhyZXBvLCBvd25lciwg
c2hhLCB0YWcpOgotICAgIGRhdGEgPSBqc29uLmR1bXBzKHsicmVmIjogInJlZnMvdGFncy8lcyIg
JSB0YWcsCi0gICAgICAgICAgICAgICAgICAgICAgICJzaGEiOiBzaGF9KQotICAgIHRyeToKLSAg
ICAgICAgdXJsID0gImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3MvJXMvJXMvZ2l0L3JlZnMi
ICUgKHJlcG8sIG93bmVyKQotICAgICAgICByZXEgPSB1cmxsaWIyLlJlcXVlc3QodXJsLCBkYXRh
PWRhdGEpCi0KLSAgICAgICAgYmFzZTY0c3RyaW5nID0gYmFzZTY0LmI2NGVuY29kZSgnJXMnICUg
KG9zLmVudmlyb25bIkdIX1RPS0VOIl0pKQotICAgICAgICByZXEuYWRkX2hlYWRlcigiQXV0aG9y
aXphdGlvbiIsICJCYXNpYyAlcyIgJSBiYXNlNjRzdHJpbmcpCi0KLSAgICAgICAgb3BlbmVyID0g
dXJsbGliMi5idWlsZF9vcGVuZXIodXJsbGliMi5IVFRQU0hhbmRsZXIoKSkKLQotICAgICAgICBy
ZXNwID0gb3BlbmVyLm9wZW4ocmVxKQotICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZToKLSAgICAg
ICAgbG9nZ2VyLmVycm9yKCJUYWcgY3JlYXRpb24gZmFpbGVkOlxuJXMiICUgZSkKLSAgICAgICAg
cmV0dXJuIEZhbHNlCi0KLSAgICBpZiByZXNwLmNvZGUgIT0gMjAxOgotICAgICAgICBsb2dnZXIu
ZXJyb3IoIkdvdCBIVFRQIHN0YXR1cyAlcy4gUmVzcG9uc2U6IiAlIHJlc3AuY29kZSkKLSAgICAg
ICAgbG9nZ2VyLmVycm9yKHJlc3AucmVhZCgpKQotICAgICAgICByZXR1cm4gRmFsc2UKLQotICAg
IGxvZ2dlci5pbmZvKCJUYWdnZWQgJXMgYXMgJXMiICUgKHNoYSwgdGFnKSkKLSAgICByZXR1cm4g
VHJ1ZQotCi0KLWRlZiBtYWluKCk6Ci0gICAgb3duZXIsIHJlcG8gPSBvcy5lbnZpcm9uWyJUUkFW
SVNfUkVQT19TTFVHIl0uc3BsaXQoIi8iLCAxKQotICAgIGlmIG9zLmVudmlyb25bIlRSQVZJU19Q
VUxMX1JFUVVFU1QiXSAhPSAiZmFsc2UiOgotICAgICAgICBsb2dnZXIuaW5mbygiTm90IHRhZ2dp
bmcgZm9yIFBSIikKLSAgICAgICAgcmV0dXJuCi0gICAgaWYgb3MuZW52aXJvblsiVFJBVklTX0JS
QU5DSCJdICE9ICJtYXN0ZXIiOgotICAgICAgICBsb2dnZXIuaW5mbygiTm90IHRhZ2dpbmcgZm9y
IG5vbi1tYXN0ZXIgYnJhbmNoIikKLSAgICAgICAgcmV0dXJuCi0KLSAgICBnaXQgPSBnZXRfZ2l0
X2NtZCh3cHRfcm9vdCkKLSAgICBoZWFkX3JldiA9IGdpdCgicmV2LXBhcnNlIiwgIkhFQUQiKQot
Ci0gICAgcHIgPSBnZXRfcHIob3duZXIsIHJlcG8sIGhlYWRfcmV2KQotICAgIGlmIHByIGlzIE5v
bmU6Ci0gICAgICAgIHN5cy5leGl0KDEpCi0gICAgdGFnZ2VkID0gdGFnKG93bmVyLCByZXBvLCBo
ZWFkX3JldiwgIm1lcmdlX3ByXyVzIiAlIHByKQotICAgIGlmIG5vdCB0YWdnZWQ6Ci0gICAgICAg
IHN5cy5leGl0KDEpCi0KLQotaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKLSAgICBtYWluKCkK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvY2kvdGFza2NsdXN0ZXItcnVuLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy9jaS90YXNrY2x1c3Rlci1ydW4ucHkKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjhhNjAwMTJkMDliCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9jaS90
YXNrY2x1c3Rlci1ydW4ucHkKQEAgLTAsMCArMSw5NSBAQAorIyEvdXNyL2Jpbi9lbnYgcHl0aG9u
CisKK2ltcG9ydCBhcmdwYXJzZQoraW1wb3J0IGd6aXAKK2ltcG9ydCBsb2dnaW5nCitpbXBvcnQg
b3MKK2ltcG9ydCBzaHV0aWwKK2ltcG9ydCBzdWJwcm9jZXNzCitpbXBvcnQgc3lzCisKK2Jyb3dz
ZXJfc3BlY2lmaWNfYXJncyA9IHsKKyAgICAiZmlyZWZveCI6IFsiLS1pbnN0YWxsLWJyb3dzZXIi
XQorfQorCisKK2RlZiBmaW5kX3dwdHJlcG9ydChhcmdzKToKKyAgICBwYXJzZXIgPSBhcmdwYXJz
ZS5Bcmd1bWVudFBhcnNlcigpCisgICAgcGFyc2VyLmFkZF9hcmd1bWVudCgnLS1sb2ctd3B0cmVw
b3J0JywgYWN0aW9uPSdzdG9yZScpCisgICAgcmV0dXJuIHBhcnNlci5wYXJzZV9rbm93bl9hcmdz
KGFyZ3MpWzBdLmxvZ193cHRyZXBvcnQKKworCitkZWYgZmluZF93cHRzY3JlZW5zaG90KGFyZ3Mp
OgorICAgIHBhcnNlciA9IGFyZ3BhcnNlLkFyZ3VtZW50UGFyc2VyKCkKKyAgICBwYXJzZXIuYWRk
X2FyZ3VtZW50KCctLWxvZy13cHRzY3JlZW5zaG90JywgYWN0aW9uPSdzdG9yZScpCisgICAgcmV0
dXJuIHBhcnNlci5wYXJzZV9rbm93bl9hcmdzKGFyZ3MpWzBdLmxvZ193cHRzY3JlZW5zaG90CisK
KworZGVmIGd6aXBfZmlsZShmaWxlbmFtZSwgZGVsZXRlX29yaWdpbmFsPVRydWUpOgorICAgIHdp
dGggb3BlbihmaWxlbmFtZSwgJ3JiJykgYXMgZl9pbjoKKyAgICAgICAgd2l0aCBnemlwLm9wZW4o
JyVzLmd6JyAlIGZpbGVuYW1lLCAnd2InKSBhcyBmX291dDoKKyAgICAgICAgICAgIHNodXRpbC5j
b3B5ZmlsZW9iaihmX2luLCBmX291dCkKKyAgICBpZiBkZWxldGVfb3JpZ2luYWw6CisgICAgICAg
IG9zLnVubGluayhmaWxlbmFtZSkKKworCitkZWYgbWFpbihwcm9kdWN0LCBjb21taXRfcmFuZ2Us
IHdwdF9hcmdzKToKKyAgICAiIiJJbnZva2UgdGhlIGB3cHQgcnVuYCBjb21tYW5kIGFjY29yZGlu
ZyB0byB0aGUgbmVlZHMgb2YgdGhlIFRhc2tjbHVzdGVyCisgICAgY29udGludW91cyBpbnRlZ3Jh
dGlvbiBzZXJ2aWNlLiIiIgorCisgICAgbG9nZ2VyID0gbG9nZ2luZy5nZXRMb2dnZXIoInRjLXJ1
biIpCisgICAgbG9nZ2VyLnNldExldmVsKGxvZ2dpbmcuSU5GTykKKyAgICBoYW5kbGVyID0gbG9n
Z2luZy5TdHJlYW1IYW5kbGVyKCkKKyAgICBoYW5kbGVyLnNldEZvcm1hdHRlcigKKyAgICAgICAg
bG9nZ2luZy5Gb3JtYXR0ZXIoIiUoYXNjdGltZSlzIC0gJShuYW1lKXMgLSAlKGxldmVsbmFtZSlz
IC0gJShtZXNzYWdlKXMiKQorICAgICkKKyAgICBsb2dnZXIuYWRkSGFuZGxlcihoYW5kbGVyKQor
CisgICAgc3VicHJvY2Vzcy5jYWxsKFsncHl0aG9uJywgJy4vd3B0JywgJ21hbmlmZXN0LWRvd25s
b2FkJ10pCisKKyAgICBpZiBjb21taXRfcmFuZ2U6CisgICAgICAgIGxvZ2dlci5pbmZvKAorICAg
ICAgICAgICAgIlJ1bm5pbmcgdGVzdHMgYWZmZWN0ZWQgaW4gcmFuZ2UgJyVzJy4uLiIgJSBjb21t
aXRfcmFuZ2UKKyAgICAgICAgKQorICAgICAgICB3cHRfYXJncyArPSBbJy0tYWZmZWN0ZWQnLCBj
b21taXRfcmFuZ2VdCisgICAgZWxzZToKKyAgICAgICAgbG9nZ2VyLmluZm8oIlJ1bm5pbmcgYWxs
IHRlc3RzIikKKworICAgIHdwdF9hcmdzICs9IFsKKyAgICAgICAgIi0tbG9nLW1hY2gtbGV2ZWw9
aW5mbyIsCisgICAgICAgICItLWxvZy1tYWNoPS0iLAorICAgICAgICAiLXkiLAorICAgICAgICAi
LS1uby1wYXVzZSIsCisgICAgICAgICItLW5vLXJlc3RhcnQtb24tdW5leHBlY3RlZCIsCisgICAg
ICAgICItLWluc3RhbGwtZm9udHMiLAorICAgICAgICAiLS1uby1oZWFkbGVzcyIsCisgICAgICAg
ICItLXZlcmlmeS1sb2ctZnVsbCIKKyAgICBdCisgICAgd3B0X2FyZ3MgKz0gYnJvd3Nlcl9zcGVj
aWZpY19hcmdzLmdldChwcm9kdWN0LCBbXSkKKworICAgIGNvbW1hbmQgPSBbInB5dGhvbiIsICIu
L3dwdCIsICJydW4iXSArIHdwdF9hcmdzICsgW3Byb2R1Y3RdCisKKyAgICBsb2dnZXIuaW5mbygi
RXhlY3V0aW5nIGNvbW1hbmQ6ICVzIiAlICIgIi5qb2luKGNvbW1hbmQpKQorICAgIHJldGNvZGUg
PSBzdWJwcm9jZXNzLmNhbGwoY29tbWFuZCwgZW52PWRpY3Qob3MuZW52aXJvbiwgVEVSTT0iZHVt
YiIpKQorICAgIGlmIHJldGNvZGUgIT0gMDoKKyAgICAgICAgc3lzLmV4aXQocmV0Y29kZSkKKwor
ICAgIHdwdHJlcG9ydCA9IGZpbmRfd3B0cmVwb3J0KHdwdF9hcmdzKQorICAgIGlmIHdwdHJlcG9y
dDoKKyAgICAgICAgZ3ppcF9maWxlKHdwdHJlcG9ydCkKKyAgICB3cHRzY3JlZW5zaG90ID0gZmlu
ZF93cHRzY3JlZW5zaG90KHdwdF9hcmdzKQorICAgIGlmIHdwdHNjcmVlbnNob3Q6CisgICAgICAg
IGd6aXBfZmlsZSh3cHRzY3JlZW5zaG90KQorCisKK2lmIF9fbmFtZV9fID09ICJfX21haW5fXyI6
CisgICAgcGFyc2VyID0gYXJncGFyc2UuQXJndW1lbnRQYXJzZXIoZGVzY3JpcHRpb249bWFpbi5f
X2RvY19fKQorICAgIHBhcnNlci5hZGRfYXJndW1lbnQoIi0tY29tbWl0LXJhbmdlIiwgYWN0aW9u
PSJzdG9yZSIsCisgICAgICAgICAgICAgICAgICAgICAgICBoZWxwPSIiIkdpdCBjb21taXQgcmFu
Z2UuIElmIHNwZWNpZmllZCwgdGhpcyB3aWxsIGJlCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHN1cHBsaWVkIHRvIHRoZSBgd3B0IHRlc3RzLWFmZmVjdGVkYCBjb21tYW5kIHRvCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGRldGVybWluZSB0aGUgbGlzdCBvZiB0ZXN0IHRvIGV4
ZWN1dGUiIiIpCisgICAgcGFyc2VyLmFkZF9hcmd1bWVudCgicHJvZHVjdCIsIGFjdGlvbj0ic3Rv
cmUiLAorICAgICAgICAgICAgICAgICAgICAgICAgaGVscD0iQnJvd3NlciB0byBydW4gdGVzdHMg
aW4iKQorICAgIHBhcnNlci5hZGRfYXJndW1lbnQoIndwdF9hcmdzIiwgbmFyZ3M9IioiLAorICAg
ICAgICAgICAgICAgICAgICAgICAgaGVscD0iQXJndW1lbnRzIHRvIGZvcndhcmQgdG8gYHdwdCBy
dW5gIGNvbW1hbmQiKQorICAgIG1haW4oKip2YXJzKHBhcnNlci5wYXJzZV9hcmdzKCkpKQpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy9jaS90Yy9SRUFETUUubWQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL2NpL3RjL1JFQURNRS5tZApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMC4uMTFmMzY3Zjk4NmYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2NpL3RjL1JFQURNRS5tZApAQCAt
MCwwICsxLDIzNSBAQAorIyBUYXNrZ3JhcGggU2V0dXAKKworVGhlIHRhc2tncmFwaCBpcyBidWls
dCBmcm9tIGEgWUFNTCBmaWxlLiBUaGlzIGZpbGUgaGFzIHR3byB0b3AtbGV2ZWwKK3Byb3BlcnRp
ZXM6IGBjb21wb25lbnRzYCBhbmQgYHRhc2tzYC4gVGhlIGZ1bGwgbGlzdCBvZiB0YXNrcyBpcwor
ZGVmaW5lZCBieSB0aGUgYHRhc2tzYCBvYmplY3Q7IGVhY2ggdGFzayBpcyBhbiBvYmplY3Qgd2l0
aCBhIHNpbmdsZQorcHJvcGVydHkgcmVwcmVzZW50aW5nIHRoZSB0YXNrIHdpdGggdGhlIGNvcnJl
c3BvbmRpbmcgdmFsdWUgYW4gb2JqZWN0CityZXByZXNlbnRpbmcgdGhlIHRhc2sgcHJvcGVydGll
cy4gRWFjaCB0YXNrIHJlcXVpcmVzIHRoZSBmb2xsb3dpbmcKK3RvcC1sZXZlbCBwcm9wZXJ0aWVz
OgorCisqIGBwcm92aXNpb25lcklkYDogU3RyaW5nLiBOYW1lIG9mIFRhc2tjbHVzdGVyIHByb3Zp
c2lvbmVyCisqIGBzY2hlZHVsZXJJZGA6IFN0cmluZy4gTmFtZSBvZiBUYXNrY2x1c3RlciBzY2hl
ZHVsZXIKKyogYGRlYWRsaW5lYDogU3RyaW5nLiBUaW1lIHVudGlsIHRoZSB0YXNrIGV4cGlyZXMK
KyogYGltYWdlYDogU3RyaW5nLiBOYW1lIG9mIGRvY2tlciBpbWFnZSB0byB1c2UgZm9yIHRhc2sK
KyogYG1heFJ1blRpbWVgOiBOdW1iZXIuIE1heGltdW0gdGltZSBpbiBzZWNvbmRzIGZvciB3aGlj
aCB0aGUgdGFzayBjYW4KKyAgcnVuLgorKiBgYXJ0aWZhY3RzYDogT2JqZWN0LiBMaXN0IG9mIGFy
dGlmYWN0cyBhbmQgZGlyZWN0b3JpZXMgdG8gdXBsb2FkOyBzZWUKKyAgVGFza2NsdXN0ZXIgZG9j
dW1lbnRhdGlvbi4KKyogYGNvbW1hbmRgOiBTdHJpbmcuIENvbW1hbmQgdG8gcnVuLiBUaGlzIGlz
IGF1dG9tYXRpY2FsbHkgd3JhcHBlZCBpbiBhCisgIHJ1bl90YyBjb21tYW5kCisqIGBvcHRpb25z
YDogT3B0aW9uYWwgT2JqZWN0LiBPcHRpb25zIHRvIHBhc3MgaW50byBydW5fdGMKKyAgLSB4dmZi
OiBCb29sZWFuLiBFbmFibGUgWHZmYiBmb3IgcnVuCisgIC0gb29tLWtpbGxlcjogQm9vbGVhbi4g
RW5hYmxlIHh2ZmIgZm9yIHJ1bgorICAtIGhvc3RzOiBCb29sZWFuLiBVcGRhdGUgaG9zdHMgZmls
ZSB3aXRoIHdwdCBob3N0cyBiZWZvcmUgcnVuCisgIC0gaW5zdGFsbC1jZXJ0aWZpY2F0ZXM6IEJv
b2xlYW4uIEluc3RhbGwgd3B0IGNlcnRzIGludG8gT1MKKyAgICBjZXJ0aWZpY2F0ZSBzdG9yZSBm
b3IgcnVuCisgIC0gYnJvd3NlcjogTGlzdC4gTGlzdCBvZiBicm93c2VyIG5hbWVzIGZvciBydW4K
KyAgLSBjaGFubmVsOiBTdHJpbmcuIEJyb3dzZXIgY2hhbm5lbCBmb3IgcnVuCisqIGB0cmlnZ2Vy
YDogT2JqZWN0LiBDb25kaXRpb25zIG9uIHdoaWNoIHRvIGNvbnNpZGVyIHRhc2suIE9uZSBvciBt
b3JlCisgIG9mIGZvbGxvd2luZyBwcm9wZXJ0aWVzOgorICAtIGJyYW5jaDogTGlzdC4gTGlzdCBv
ZiBicmFuY2ggbmFtZXMgb24gd2hpY2ggdG8gdHJpZ2dlci4KKyAgLSBwdWxsLXJlcXVlc3Q6IE5v
IHZhbHVlLiBUcmlnZ2VyIGZvciBwdWxsIHJlcXVlc3QgYWN0aW9ucworKiBgc2NoZWR1bGUtaWZg
OiBPcHRpb25hbCBPYmplY3QuIENvbmRpdGlvbnMgb24gd2hpY2ggdGFzayBzaG91bGQgYmUKKyAg
c2NoZWR1bGVkIGdpdmVuIGl0IG1lZXRzIHRoZSB0cmlnZ2VyIGNvbmRpdGlvbnMuCisgIC0gYHJ1
bi1qb2JgOiBMaXN0LiBKb2IgbmFtZXMgZm9yIHdoaWNoIHRoaXMgdGFzayBzaG91bGQgYmUgY29u
c2lkZXJlZCwKKyAgICBtYXRjaGluZyB0aGUgb3V0cHV0IGZyb20gYC4vd3B0IHRlc3Qtam9ic2AK
KyogYGVudmA6IE9wdGlvbmFsIE9iamVjdC4gRW52aXJvbm1lbnQgdmFyaWFibGVzIHRvIHNldCB3
aGVuIHJ1bm5pbmcgdGFzay4KKyogYGRlcGVuZHMtb25gOiBPcHRpb25hbCBsaXN0LiBMaXN0IG9m
IHRhc2sgbmFtZXMgdGhhdCBtdXN0IGJlIGNvbXBsZXRlCisgIGJlZm9yZSB0aGUgY3VycmVudCB0
YXNrIGlzIHNjaGVkdWxlZC4KKyogYGRlc2NyaXB0aW9uYDogU3RyaW5nLiBUYXNrIGRlc2NyaXB0
aW9uLgorKiBgbmFtZWA6IE9wdGlvbmFsIFN0cmluZy4gTmFtZSB0byB1c2UgZm9yIHRoZSB0YXNr
IG92ZXJyaWRpbmcgdGhlCisgIHByb3BlcnR5IG5hbWUuIFRoaXMgaXMgdXNlZnVsIGluIGNvbWJp
bmF0aW9uIHdpdGggc3Vic3RpdHV0aW9ucworICBkZXNjcmliZWQgYmVsb3cuCisKKyMjIFRhc2sg
RXhwYW5zaW9ucworCitVc2luZyB0aGUgYWJvdmUgc3ludGF4IGl0J3MgcG9zc2JsZSB0byBkZXNj
cmliZSBlYWNoIHRhc2sKK2RpcmVjdGx5LiBCdXQgdHlwaWNhbGx5IGluIGEgdGFza2dyYXBoIHRo
ZXJlIGFyZSBtYW55IGNvbW1vbgorcHJvcGVydGllcyBiZXR3ZWVuIHRhc2tzIHNvIGl0J3MgdGVk
aW91cyBhbmQgZXJyb3IgcHJvbmUgdG8gcmVwZWF0CitpbmZvcm1hdGlvbiB0aGF0J3MgY29tbW9u
IHRvIG11bHRpcGxlIHRhc2tzLiBUaGVyZWZvcmUgdGhlIHRhc2tncmFwaAorZm9ybWF0IHByb3Zp
ZGVzIHNldmVyYWwgbWVjaGFuaXNtcyB0byByZXVzZSBwYXJ0aWFsIHRhc2sgZGVmaW5pdGlvbnMK
K2Fjcm9zcyBtdWx0aXBsZSB0YXNrcy4KKworIyMjIENvbXBvbmVudHMKKworVGhlIG90aGVyIHRv
cC1sZXZlbCBwcm9wZXJ0eSBpbiB0aGUgdGFza2dyYXBoIGZvcm1hdCBpcworYGNvbXBvbmVudHNg
LiBUaGUgdmFsdWUgb2YgdGhpcyBwcm9wZXJ0eSBpcyBhbiBvYmplY3QgY29udGFpbmluZyBuYW1l
ZAorcGFydGlhbCB0YXNrIGRlZmluaXRpb25zLiBFYWNoIHRhc2sgZGVmaW5pdGlvbiBtYXkgY29u
dGFpbiBhIHByb3BlcnR5IGNhbGxlZAorYHVzZWAgd2hpY2ggaXMgYSBsaXN0IG9mIGNvbXBvbmVu
dHMgdG8gdXNlIGFzIHRoZSBiYXNpcyBmb3IgdGhlIHRhc2sKK2RlZmluaXRpb24uIFRoZSBjb21w
b25lbnRzIGxpc3QgaXMgZXZhbHVhdGVkIGluIG9yZGVyLiBJZiBhIHByb3BlcnR5CitpcyBub3Qg
cHJldmlvdXNseSBkZWZpbmVkIGluIHRoZSBvdXRwdXQgaXQgaXMgYWRkZWQgdG8gdGhlIG91dHB1
dC4gSWYKK2l0IHdhcyBwcmV2aW91c2x5IGRlZmluZWQsIHRoZSB2YWx1ZSBpcyB1cGRhdGVkIGFj
Y29yZGluZyB0byB0aGUgdHlwZToKKyAqIFN0cmluZ3MgYW5kIG51bWJlcnMgYXJlIHJlcGxhY2Vk
IHdpdGggYSBuZXcgdmFsdWUKKyAqIExpc3RzIGFyZSBleHRlbmRlZCB3aXRoIHRoZSBhZGRpdGlv
bmFsIHZhbHVlcworICogT2JqZWN0cyBhcmUgdXBkYXRlZCByZWN1cnNpdmVseSBmb2xsb3dpbmcg
dGhlIGFib3ZlIHJ1bGVzCitUaGlzIG1lYW5zIHRoYXQgdHlwZXMgbXVzdCBhbHdheXMgbWF0Y2gg
YmV0d2VlbiBjb21wb25lbnRzIGFuZCB0aGUKK2ZpbmFsIHZhbHVlLgorCitGb3IgZXhhbXBsZQor
YGBgCitjb21wb25lbnRzOgorICBleGFtcGxlLTE6CisgICAgbGlzdF9wcm9wOgorICAgICAgLSBm
aXJzdAorICAgICAgLSBzZWNvbmQKKyAgICBvYmplY3RfcHJvcDoKKyAgICAgIGtleTE6IHZhbHVl
MQorICAgICAga2V5MjogYmFzZV92YWx1ZQorICBleGFtcGxlLTI6CisgICAgbGlzdF9wcm9wOgor
ICAgICAgLSB0aGlyZAorICAgICAgLSBmb3VydGgKKyAgICBvYmplY3RfcHJvcDoKKyAgICAgIGtl
eTM6CisgICAgICAgIC0gdmFsdWUzLTEKKwordGFza3M6CisgIC0gZXhhbXBsZS10YXNrOgorICAg
ICAgdXNlOgorICAgICAgICAtIGV4YW1wbGUtMQorICAgICAgICAtIGV4YW1wbGUtMgorICAgICAg
b2JqZWN0X3Byb3A6CisgICAgICAgIGtleTI6IHZhbHVlMgorICAgICAgICBrZXkzOgorICAgICAg
ICAgIC0gdmFsdWUzLTIKK2BgYAorCit3aWxsIGV2YWx1YXRlIHRvIHRoZSBmb2xsb3dpbmcgdGFz
azoKKworYGBgCitleGFtcGxlLXRhc2s6CisgIGxpc3RfcHJvcDoKKyAgICAtIGZpcnN0CisgICAg
LSBzZWNvbmQKKyAgICAtIHRoaXJkCisgICAgLSBmb3VydGgKKyAgb2JqZWN0X3Byb3A6CisgICAg
a2V5MTogdmFsdWUxCisgICAga2V5MjogdmFsdWUyCisgICAga2V5MzoKKyAgICAgIC0gdmFsdWUz
LTEKKyAgICAgIC0gdmFsdWUzLTIKK2BgYAorCitOb3RlIHRoYXQgY29tcG9uZW50cyBjYW5ub3Qg
Y3VycmVudGx5IGRlZmluZSBgdXNlYCBwcm9wZXJ0aWVzIG9mIHRoZWlyIG93bi4KKworIyMgU3Vi
c3RpdHV0aW9ucworCitDb21wb25lbnRzIGFuZCB0YXNrcyBjYW4gZGVmaW5lIGEgcHJvcGVydHkg
YHZhcnNgIHRoYXQgaG9sZHMgdmFyaWFibGVzCit3aGljaCBhcmUgbGF0ZXIgc3Vic3RpdHV0ZWQg
aW50byB0aGUgdGFzayBkZWZpbml0aW9uIHVzaW5nIHRoZSBzeW50YXgKK2Ake3ZhcnMucHJvcGVy
dHktbmFtZX1gLiBGb3IgZXhhbXBsZToKKworYGBgCitjb21wb25lbnRzOgorICBnZW5lcmljLWNv
bXBvbmVudDoKKyAgICBwcm9wOiAke3ZhcnMudmFsdWV9CisKK3Rhc2tzOgorICAtIGZpcnN0Ogor
ICAgICAgdXNlOgorICAgICAgICAtIGdlbmVyaWMtY29tcG9uZW50CisgICAgICB2YXJzOgorICAg
ICAgICB2YWx1ZTogdmFsdWUxCisgIC0gc2Vjb25kOgorICAgICAgdXNlOgorICAgICAgICAtIGdl
bmVyaWMtY29tcG9uZW50CisgICAgICB2YXJzOgorICAgICAgICB2YWx1ZTogdmFsdWUyCitgYGAK
KworUmVzdWx0cyBpbiB0aGUgZm9sbG93aW5nIHRhc2tzOgorCitgYGAKK2ZpcnN0OgorICBwcm9w
OiB2YWx1ZTEKK3NlY29uZDoKKyAgcHJvcDogdmFsdWUyCitgYGAKKworIyMgTWFwcworCitJbnN0
ZWFkIG9mIGRlZmluaW5nIGEgdGFzayBkaXJlY3RseSwgYW4gaXRlbSBpbiB0aGUgdGFza3MgcHJv
cGVydHkgbWF5CitiZSBhbiBvYmplY3Qgd2l0aCBhIHNpbmdsZSBwcm9wZXJ0eSBgJG1hcGAuIFRo
aXMgb2JqZWN0IGl0c2VsZiBoYXMgdHdvCitjaGlsZCBwcm9wZXJ0aWVzOyBgZm9yYCBhbmQgYGRv
YC4gVGhlIHZhbHVlIG9mIGBmb3JgIGlzIGEgbGlzdCBvZgorb2JqZWN0cywgYW5kIHRoZSB2YWx1
ZSBvZiBgZG9gIGlzIGVpdGhlciBhbiBvYmplY3Qgb3IgYSBsaXN0IG9mCitvYmplY3RzLiBGb3Ig
ZWFjaCBvYmplY3QgaW4gdGhlIGBmb3JgIHByb3BlcnR5LCBhIHNldCBvZiB0YXNrcyBpcworY3Jl
YXRlZCBieSB0YWtpbmcgYSBjb3B5IG9mIHRoYXQgb2JqZWN0IGZvciBlYWNoIHRhc2sgaW4gdGhl
IGBkb2AKK3Byb3BlcnR5LCB1cGRhdGluZyB0aGUgb2JqZWN0IHdpdGggdGhlIHByb3BlcnRpZXMg
ZnJvbSB0aGUKK2NvcnJlc3BvbmRpbmcgYGRvYCBvYmplY3QsIHVzaW5nIHRoZSBzYW1lIHJ1bGVz
IGFzIGZvciBjb21wb25lbnRzCithYm92ZSwgYW5kIHRoZW4gcHJvY2Vzc2luZyBhcyBmb3IgYSBu
b3JtYWwgdGFzay4gYCRtYXBgIHJ1bGVzIGNhbiBhbHNvCitiZSBuZXN0ZWQuCisKK05vdGU6IEFs
dGhvdWdoIGAkbWFwYCBzaGFyZXMgYSBuYW1lIHdpdGggdGhlIGAkbWFwYCB1c2VkIGluIGpzb24t
ZQorKHVzZWQuIGluIGAudGFza2NsdXN0ZXIueW1sYCksIHRoZSBzZW1hbnRpY3MgYXJlIGRpZmZl
cmVudC4KKworRm9yIGV4YW1wbGUKKworYGBgCitjb21wb25lbnRzOiB7fQordGFza3M6CisgICRt
YXA6CisgICAgZm9yOgorICAgICAgLSB2YXJzOgorICAgICAgICAgIGV4YW1wbGU6IHZhbHVlMQor
ICAgICAgLSB2YXJzOgorICAgICAgICAgIGV4YW1wbGU6IHZhbHVlMgorICAgIGRvOgorICAgICAg
ZXhhbXBsZS0ke3ZhcnMuZXhhbXBsZX0KKyAgICAgICAgcHJvcDogJHt2YXJzLmV4YW1wbGV9Citg
YGAKKworUmVzdWx0cyBpbiB0aGUgdGFza3MKKworYGBgCitleGFtcGxlLXZhbHVlMToKKyAgcHJv
cDogdmFsdWUxCitleGFtcGxlLXZhbHVlMjoKKyAgcHJvcDogdmFsdWUyCitgYGAKKworTm90ZSB0
aGF0IGluIGNvbWJpbmF0aW9uIHdpdGggYCRtYXBgLCB2YXJpYWJsZSBzdWJzdGl0dXRpb25zIGFy
ZQorYXBwbGllZCAqdHdpY2UqOyBvbmNlIGFmdGVyIHRoZSBgJG1hcGAgaXMgZXZhbHVhdGVkIGFu
ZCBvbmNlIGFmdGVyIHRoZQorYHVzZWAgc3RhdGVtZW50cyBhcmUgZXZhbHVhdGVkLgorCisjIyBD
aHVua3MKKworQSBjb21tb24gcmVxdWlyZW1lbnRzIGZvciB0YXNrcyBpcyB0aGF0IHRoZXkgYXJl
ICJjaHVua2VkIiBpbnRvIE4KK3BhcnRpYWwgdGFza3MuIFRoaXMgaXMgaGFuZGxlZCBzcGVjaWFs
bHkgaW4gdGhlIHN5bnRheC4gQSB0b3AgbGV2ZWwKK3Byb3BlcnR5IGBjaHVua3NgIGNhbiBiZSB1
c2VkIHRvIGRlZmluZSB0aGUgbnVtYmVyIG9mIGluZGl2aWR1YWwKK2NodW5rcyB0byBjcmVhdGUg
Zm9yIGEgc3BlY2lmaWMgdGFzay4gRWFjaCBjaHVua2VkIHRhc2sgaXMgY3JlYXRlZAord2l0aCBh
IGBjaHVua3NgIHByb3BlcnR5IHNldCB0byBhbiBvYmplY3QgY29udGFpbmluZyBhbiBgaWRgIHBy
b3BlcnR5Citjb250YWluaW5nIHRoZSBvbmUtYmFzZWQgaW5kZXggb2YgdGhlIGNodW5rIGFuIGEg
YHRvdGFsYCBwcm9wZXJ0eQorY29udGFpbmluZyB0aGUgdG90YWwgbnVtYmVyIG9mIGNodW5rcy4g
VGhlc2UgY2FuIGJlIHN1YnN0aXR1dGVkIGludG8KK3RoZSB0YXNrIGRlZmluaXRpb24gdXNpbmcg
dGhlIHNhbWUgc3ludGF4IGFzIGZvciBgdmFyc2AgYWJvdmUKK2UuZy4gYCR7Y2h1bmtzLmlkfWAu
IE5vdGUgdGhhdCBiZWNhdXNlIHRhc2sgbmFtZXMgbXVzdCBiZSB1bmlxdWUsIGl0J3MKK2NvbW1v
biB0byBzcGVjaWZ5IGEgYG5hbWVgIHByb3BlcnR5IG9uIHRoZSB0YXNrIHRoYXQgd2lsbCBvdmVy
cmlkZSB0aGUKK3Byb3BlcnR5IG5hbWUgZS5nLgorCitgYGAKK2NvbXBvbmVudHM6IHt9Cit0YXNr
czoKKyAgLSBjaHVua2VkLXRhc2s6CisgICAgICBjaHVua3M6MgorICAgICAgY29tbWFuZDogInRh
c2stcnVuIC0tY2h1bms9JHtjaHVua3MuaWR9IC0tdG90YWxDaHVua3M9JHtjaHVua3MudG90YWx9
IgorICAgICAgbmFtZTogdGFzay1jaHVuay0ke2NodW5rcy5pZH0KK2BgYAorCitjcmVhdGVzIHRh
c2tzOgorCitgYGAKK3Rhc2stY2h1bmstMToKKyAgY29tbWFuZDogInRhc2stcnVuIC0tY2h1bms9
MSAtLXRvdGFsQ2h1bmtzPTIiCit0YXNrLWNodW5rLTI6CisgIGNvbW1hbmQ6ICJ0YXNrLXJ1biAt
LWNodW5rPTIgLS10b3RhbENodW5rcz0yIgorYGBgCisKKyMgT3ZlcmFsbCBwcm9jZXNzaW5nIG1v
ZGVsCisKK1RoZSBvdmVyYWxsIHByb2Nlc3NpbmcgbW9kZWwgZm9yIHRhc2tzIGlzIGFzIGZvbGxv
d3M6CisgKiBFdmFsdWF0ZSBtYXBzCisgKiBQZXJmb3JtIHN1YnNpdHV0aW9ucworICogRXZhbHVh
dGUgdXNlIHN0YXRlbWVudHMKKyAqIEV4cGFuZCBjaHVua3MKKyAqIFBlcmZvcm0gc3Vic2l0dXRp
b25zCisKK0F0IGVhY2ggcG9pbnQgYWZ0ZXIgbWFwcyBhcmUgZXZhbHVhdGVkIHRhc2tzIG11c3Qg
aGF2ZSBhIHVuaXF1ZSBuYW1lLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9jaS90Yy9fX2luaXRfXy5weSBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvY2kvdGMvX19pbml0X18ucHkK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmE2ODM0YjgyODVhCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy9jaS90Yy9fX2luaXRfXy5weQpAQCAtMCwwICsxIEBACisjIFRoaXMgZmlsZSBpcyBy
ZXF1aXJlZCBmb3IgUHl0aG9uIHRvIHNlYXJjaCB0aGlzIGRpcmVjdG9yeSBmb3IgbW9kdWxlcy4K
XCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2NpL3RjL2RlY2lzaW9uLnB5IGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9jaS90Yy9kZWNp
c2lvbi5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uOTJhMjdlZjc5
YWIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL2NpL3RjL2RlY2lzaW9uLnB5CkBAIC0wLDAgKzEsMzI0IEBACitpbXBv
cnQgYXJncGFyc2UKK2ltcG9ydCBqc29uCitpbXBvcnQgbG9nZ2luZworaW1wb3J0IG9zCitpbXBv
cnQgcmUKK2ltcG9ydCBzdWJwcm9jZXNzCitmcm9tIGNvbGxlY3Rpb25zIGltcG9ydCBPcmRlcmVk
RGljdAorCitpbXBvcnQgdGFza2NsdXN0ZXIKK2Zyb20gc2l4IGltcG9ydCBpdGVyaXRlbXMsIGl0
ZXJ2YWx1ZXMKKworZnJvbSAuIGltcG9ydCB0YXNrZ3JhcGgKKworCitoZXJlID0gb3MucGF0aC5h
YnNwYXRoKG9zLnBhdGguZGlybmFtZShfX2ZpbGVfXykpCisKKworbG9nZ2luZy5iYXNpY0NvbmZp
ZygpCitsb2dnZXIgPSBsb2dnaW5nLmdldExvZ2dlcigpCisKKworZGVmIGdldF90cmlnZ2Vycyhl
dmVudCk6CisgICAgIyBTZXQgc29tZSB2YXJpYWJsZXMgdGhhdCB3ZSB1c2UgdG8gZ2V0IHRoZSBj
b21taXRzIG9uIHRoZSBjdXJyZW50IGJyYW5jaAorICAgIHJlZl9wcmVmaXggPSAicmVmcy9oZWFk
cy8iCisgICAgaXNfcHIgPSAicHVsbF9yZXF1ZXN0IiBpbiBldmVudAorICAgIGJyYW5jaCA9IE5v
bmUKKyAgICBpZiBub3QgaXNfcHIgYW5kICJyZWYiIGluIGV2ZW50OgorICAgICAgICBicmFuY2gg
PSBldmVudFsicmVmIl0KKyAgICAgICAgaWYgYnJhbmNoLnN0YXJ0c3dpdGgocmVmX3ByZWZpeCk6
CisgICAgICAgICAgICBicmFuY2ggPSBicmFuY2hbbGVuKHJlZl9wcmVmaXgpOl0KKworICAgIHJl
dHVybiBpc19wciwgYnJhbmNoCisKKworZGVmIGZldGNoX2V2ZW50X2RhdGEocXVldWUpOgorICAg
IHRyeToKKyAgICAgICAgdGFza19pZCA9IG9zLmVudmlyb25bIlRBU0tfSUQiXQorICAgIGV4Y2Vw
dCBLZXlFcnJvcjoKKyAgICAgICAgbG9nZ2VyLndhcm5pbmcoIk1pc3NpbmcgVEFTS19JRCBlbnZp
cm9ubWVudCB2YXJpYWJsZSIpCisgICAgICAgICMgRm9yIGV4YW1wbGUgdW5kZXIgbG9jYWwgdGVz
dGluZworICAgICAgICByZXR1cm4gTm9uZQorCisgICAgdGFza19kYXRhID0gcXVldWUudGFzayh0
YXNrX2lkKQorCisgICAgcmV0dXJuIHRhc2tfZGF0YS5nZXQoImV4dHJhIiwge30pLmdldCgiZ2l0
aHViX2V2ZW50IikKKworCitkZWYgZmlsdGVyX3RyaWdnZXJzKGV2ZW50LCBhbGxfdGFza3MpOgor
ICAgIGlzX3ByLCBicmFuY2ggPSBnZXRfdHJpZ2dlcnMoZXZlbnQpCisgICAgdHJpZ2dlcmVkID0g
e30KKyAgICBmb3IgbmFtZSwgdGFzayBpbiBpdGVyaXRlbXMoYWxsX3Rhc2tzKToKKyAgICAgICAg
aWYgInRyaWdnZXIiIGluIHRhc2s6CisgICAgICAgICAgICBpZiBpc19wciBhbmQgInB1bGwtcmVx
dWVzdCIgaW4gdGFza1sidHJpZ2dlciJdOgorICAgICAgICAgICAgICAgIHRyaWdnZXJlZFtuYW1l
XSA9IHRhc2sKKyAgICAgICAgICAgIGVsaWYgYnJhbmNoIGlzIG5vdCBOb25lIGFuZCAiYnJhbmNo
IiBpbiB0YXNrWyJ0cmlnZ2VyIl06CisgICAgICAgICAgICAgICAgZm9yIHRyaWdnZXJfYnJhbmNo
IGluIHRhc2tbInRyaWdnZXIiXVsiYnJhbmNoIl06CisgICAgICAgICAgICAgICAgICAgIGlmICh0
cmlnZ2VyX2JyYW5jaCA9PSBicmFuY2ggb3IKKyAgICAgICAgICAgICAgICAgICAgICAgIHRyaWdn
ZXJfYnJhbmNoLmVuZHN3aXRoKCIqIikgYW5kIGJyYW5jaC5zdGFydHN3aXRoKHRyaWdnZXJfYnJh
bmNoWzotMV0pKToKKyAgICAgICAgICAgICAgICAgICAgICAgIHRyaWdnZXJlZFtuYW1lXSA9IHRh
c2sKKyAgICBsb2dnZXIuaW5mbygiVHJpZ2dlcnMgbWF0Y2ggdGFza3M6XG4gKiAlcyIgJSAiXG4g
KiAiLmpvaW4odHJpZ2dlcmVkLmtleXMoKSkpCisgICAgcmV0dXJuIHRyaWdnZXJlZAorCisKK2Rl
ZiBnZXRfcnVuX2pvYnMoZXZlbnQpOgorICAgIGZyb20gdG9vbHMuY2kgaW1wb3J0IGpvYnMKKyAg
ICByZXZpc2ggPSAiJXMuLiVzIiAlIChldmVudFsicHVsbF9yZXF1ZXN0Il1bImJhc2UiXVsic2hh
Il0KKyAgICAgICAgICAgICAgICAgICAgICAgICBpZiAicHVsbF9yZXF1ZXN0IiBpbiBldmVudAor
ICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgZXZlbnRbImJlZm9yZSJdLAorICAgICAgICAg
ICAgICAgICAgICAgICAgIGV2ZW50WyJwdWxsX3JlcXVlc3QiXVsiaGVhZCJdWyJzaGEiXQorICAg
ICAgICAgICAgICAgICAgICAgICAgIGlmICJwdWxsX3JlcXVlc3QiIGluIGV2ZW50CisgICAgICAg
ICAgICAgICAgICAgICAgICAgZWxzZSBldmVudFsiYWZ0ZXIiXSkKKyAgICBsb2dnZXIuaW5mbygi
TG9va2luZyBmb3IgY2hhbmdlcyBpbiByYW5nZSAlcyIgJSByZXZpc2gpCisgICAgcGF0aHMgPSBq
b2JzLmdldF9wYXRocyhyZXZpc2g9cmV2aXNoKQorICAgIGxvZ2dlci5pbmZvKCJGb3VuZCBjaGFu
Z2VzIGluIHBhdGhzOiVzIiAlICJcbiIuam9pbihwYXRocykpCisgICAgcGF0aF9qb2JzID0gam9i
cy5nZXRfam9icyhwYXRocykKKyAgICBhbGxfam9icyA9IHBhdGhfam9icyB8IGdldF9leHRyYV9q
b2JzKGV2ZW50KQorICAgIGxvZ2dlci5pbmZvKCJJbmNsdWRpbmcgam9iczpcbiAqICVzIiAlICJc
biAqICIuam9pbihhbGxfam9icykpCisgICAgcmV0dXJuIGFsbF9qb2JzCisKKworZGVmIGdldF9l
eHRyYV9qb2JzKGV2ZW50KToKKyAgICBib2R5ID0gTm9uZQorICAgIGpvYnMgPSBzZXQoKQorICAg
IGlmICJjb21taXRzIiBpbiBldmVudCBhbmQgZXZlbnRbImNvbW1pdHMiXToKKyAgICAgICAgYm9k
eSA9IGV2ZW50WyJjb21taXRzIl1bMF1bIm1lc3NhZ2UiXQorICAgIGVsaWYgInB1bGxfcmVxdWVz
dCIgaW4gZXZlbnQ6CisgICAgICAgIGJvZHkgPSBldmVudFsicHVsbF9yZXF1ZXN0Il1bImJvZHki
XQorCisgICAgaWYgbm90IGJvZHk6CisgICAgICAgIHJldHVybiBqb2JzCisKKyAgICByZWdleHAg
PSByZS5jb21waWxlKHIiXHMqdGMtam9iczooLiopJCIpCisKKyAgICBmb3IgbGluZSBpbiBib2R5
LnNwbGl0bGluZXMoKToKKyAgICAgICAgbSA9IHJlZ2V4cC5tYXRjaChsaW5lKQorICAgICAgICBp
ZiBtOgorICAgICAgICAgICAgaXRlbXMgPSBtLmdyb3VwKDEpCisgICAgICAgICAgICBmb3IgaXRl
bSBpbiBpdGVtcy5zcGxpdCgiLCIpOgorICAgICAgICAgICAgICAgIGpvYnMuYWRkKGl0ZW0uc3Ry
aXAoKSkKKyAgICAgICAgICAgIGJyZWFrCisgICAgcmV0dXJuIGpvYnMKKworCitkZWYgZmlsdGVy
X3NjaGVkdWxlX2lmKGV2ZW50LCB0YXNrcyk6CisgICAgc2NoZWR1bGVkID0ge30KKyAgICBydW5f
am9icyA9IE5vbmUKKyAgICBmb3IgbmFtZSwgdGFzayBpbiBpdGVyaXRlbXModGFza3MpOgorICAg
ICAgICBpZiAic2NoZWR1bGUtaWYiIGluIHRhc2s6CisgICAgICAgICAgICBpZiAicnVuLWpvYiIg
aW4gdGFza1sic2NoZWR1bGUtaWYiXToKKyAgICAgICAgICAgICAgICBpZiBydW5fam9icyBpcyBO
b25lOgorICAgICAgICAgICAgICAgICAgICBydW5fam9icyA9IGdldF9ydW5fam9icyhldmVudCkK
KyAgICAgICAgICAgICAgICBpZiAiYWxsIiBpbiBydW5fam9icyBvciBhbnkoaXRlbSBpbiBydW5f
am9icyBmb3IgaXRlbSBpbiB0YXNrWyJzY2hlZHVsZS1pZiJdWyJydW4tam9iIl0pOgorICAgICAg
ICAgICAgICAgICAgICBzY2hlZHVsZWRbbmFtZV0gPSB0YXNrCisgICAgICAgIGVsc2U6CisgICAg
ICAgICAgICBzY2hlZHVsZWRbbmFtZV0gPSB0YXNrCisgICAgbG9nZ2VyLmluZm8oIlNjaGVkdWxp
bmcgcnVsZXMgbWF0Y2ggdGFza3M6XG4gKiAlcyIgJSAiXG4gKiAiLmpvaW4oc2NoZWR1bGVkLmtl
eXMoKSkpCisgICAgcmV0dXJuIHNjaGVkdWxlZAorCisKK2RlZiBnZXRfZmV0Y2hfcmV2KGV2ZW50
KToKKyAgICBpc19wciwgXyA9IGdldF90cmlnZ2VycyhldmVudCkKKyAgICBpZiBpc19wcjoKKyAg
ICAgICAgIyBUcnkgdG8gZ2V0IHRoZSBhY3R1YWwgcmV2IHNvIHRoYXQgYWxsIG5vbi1kZWNpc2lv
biB0YXNrcyBhcmUgcGlubmVkIHRvIHRoYXQKKyAgICAgICAgcmVmID0gInJlZnMvcHVsbC8lcy9t
ZXJnZSIgJSBldmVudFsicHVsbF9yZXF1ZXN0Il1bIm51bWJlciJdCisgICAgICAgIHRyeToKKyAg
ICAgICAgICAgIG91dHB1dCA9IHN1YnByb2Nlc3MuY2hlY2tfb3V0cHV0KFsiZ2l0IiwgImxzLXJl
bW90ZSIsICJvcmlnaW4iLCByZWZdKQorICAgICAgICBleGNlcHQgc3VicHJvY2Vzcy5DYWxsZWRQ
cm9jZXNzRXJyb3I6CisgICAgICAgICAgICBpbXBvcnQgdHJhY2ViYWNrCisgICAgICAgICAgICBs
b2dnZXIuZXJyb3IodHJhY2ViYWNrLmZvcm1hdF9leGMoKSkKKyAgICAgICAgICAgIGxvZ2dlci5l
cnJvcigiRmFpbGVkIHRvIGdldCBtZXJnZSBjb21taXQgc2hhMSIpCisgICAgICAgICAgICByZXR1
cm4gcmVmLCBOb25lCisgICAgICAgIGlmIG5vdCBvdXRwdXQ6CisgICAgICAgICAgICBsb2dnZXIu
ZXJyb3IoIkZhaWxlZCB0byBnZXQgbWVyZ2UgY29tbWl0IikKKyAgICAgICAgICAgIHJldHVybiBy
ZWYsIE5vbmUKKyAgICAgICAgcmV0dXJuIHJlZiwgb3V0cHV0LnNwbGl0KClbMF0KKyAgICBlbHNl
OgorICAgICAgICByZXR1cm4gZXZlbnRbInJlZiJdLCBldmVudFsiYWZ0ZXIiXQorCisKK2RlZiBi
dWlsZF9mdWxsX2NvbW1hbmQoZXZlbnQsIHRhc2spOgorICAgIGZldGNoX3JlZiwgZmV0Y2hfc2hh
ID0gZ2V0X2ZldGNoX3JldihldmVudCkKKyAgICBjbWRfYXJncyA9IHsKKyAgICAgICAgInRhc2tf
bmFtZSI6IHRhc2tbIm5hbWUiXSwKKyAgICAgICAgInJlcG9fdXJsIjogZXZlbnRbInJlcG9zaXRv
cnkiXVsiY2xvbmVfdXJsIl0sCisgICAgICAgICJmZXRjaF9yZWYiOiBmZXRjaF9yZWYsCisgICAg
ICAgICJ0YXNrX2NtZCI6IHRhc2tbImNvbW1hbmQiXSwKKyAgICAgICAgImluc3RhbGxfc3RyIjog
IiIsCisgICAgfQorCisgICAgb3B0aW9ucyA9IHRhc2suZ2V0KCJvcHRpb25zIiwge30pCisgICAg
b3B0aW9uc19hcmdzID0gW10KKyAgICBpZiBmZXRjaF9zaGEgaXMgbm90IE5vbmU6CisgICAgICAg
IG9wdGlvbnNfYXJncy5hcHBlbmQoIi0tcmV2PSVzIiAlIGZldGNoX3NoYSkKKyAgICBpZiBvcHRp
b25zLmdldCgib29tLWtpbGxlciIpOgorICAgICAgICBvcHRpb25zX2FyZ3MuYXBwZW5kKCItLW9v
bS1raWxsZXIiKQorICAgIGlmIG9wdGlvbnMuZ2V0KCJ4dmZiIik6CisgICAgICAgIG9wdGlvbnNf
YXJncy5hcHBlbmQoIi0teHZmYiIpCisgICAgaWYgbm90IG9wdGlvbnMuZ2V0KCJob3N0cyIpOgor
ICAgICAgICBvcHRpb25zX2FyZ3MuYXBwZW5kKCItLW5vLWhvc3RzIikKKyAgICBlbHNlOgorICAg
ICAgICBvcHRpb25zX2FyZ3MuYXBwZW5kKCItLWhvc3RzIikKKyAgICAjIENoZWNrIG91dCB0aGUg
ZXhwZWN0ZWQgU0hBIHVubGVzcyBpdCBpcyBvdmVycmlkZGVuIChlLmcuIHRvIGJhc2VfaGVhZCku
CisgICAgaWYgb3B0aW9ucy5nZXQoImNoZWNrb3V0Iik6CisgICAgICAgIG9wdGlvbnNfYXJncy5h
cHBlbmQoIi0tY2hlY2tvdXQ9JXMiICUgb3B0aW9uc1siY2hlY2tvdXQiXSkKKyAgICBlbHNlOgor
ICAgICAgICBvcHRpb25zX2FyZ3MuYXBwZW5kKCItLWNoZWNrb3V0PSVzIiAlIGZldGNoX3NoYSkK
KyAgICBmb3IgYnJvd3NlciBpbiBvcHRpb25zLmdldCgiYnJvd3NlciIsIFtdKToKKyAgICAgICAg
b3B0aW9uc19hcmdzLmFwcGVuZCgiLS1icm93c2VyPSVzIiAlIGJyb3dzZXIpCisgICAgaWYgb3B0
aW9ucy5nZXQoImNoYW5uZWwiKToKKyAgICAgICAgb3B0aW9uc19hcmdzLmFwcGVuZCgiLS1jaGFu
bmVsPSVzIiAlIG9wdGlvbnNbImNoYW5uZWwiXSkKKyAgICBpZiBvcHRpb25zLmdldCgiaW5zdGFs
bC1jZXJ0aWZpY2F0ZXMiKToKKyAgICAgICAgb3B0aW9uc19hcmdzLmFwcGVuZCgiLS1pbnN0YWxs
LWNlcnRpZmljYXRlcyIpCisKKyAgICBjbWRfYXJnc1sib3B0aW9uc19zdHIiXSA9ICIgIi5qb2lu
KHN0cihpdGVtKSBmb3IgaXRlbSBpbiBvcHRpb25zX2FyZ3MpCisKKyAgICBpbnN0YWxsX3BhY2th
Z2VzID0gdGFzay5nZXQoImluc3RhbGwiKQorICAgIGlmIGluc3RhbGxfcGFja2FnZXM6CisgICAg
ICAgIGluc3RhbGxfaXRlbXMgPSBbImFwdCB1cGRhdGUgLXFxeSJdCisgICAgICAgIGluc3RhbGxf
aXRlbXMuZXh0ZW5kKCJhcHQgaW5zdGFsbCAtcXF5ICVzIiAlIGl0ZW0KKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgZm9yIGl0ZW0gaW4gaW5zdGFsbF9wYWNrYWdlcykKKyAgICAgICAgY21k
X2FyZ3NbImluc3RhbGxfc3RyIl0gPSAiXG4iLmpvaW4oInN1ZG8gJXM7IiAlIGl0ZW0gZm9yIGl0
ZW0gaW4gaW5zdGFsbF9pdGVtcykKKworICAgIHJldHVybiBbIi9iaW4vYmFzaCIsCisgICAgICAg
ICAgICAiLS1sb2dpbiIsCisgICAgICAgICAgICAiLWMiLAorICAgICAgICAgICAgIiIiCit+L3N0
YXJ0LnNoIFwKKyAgJShyZXBvX3VybClzIFwKKyAgJShmZXRjaF9yZWYpczsKKyUoaW5zdGFsbF9z
dHIpcworY2Qgd2ViLXBsYXRmb3JtLXRlc3RzOworLi90b29scy9jaS9ydW5fdGMucHkgJShvcHRp
b25zX3N0cilzIC0tICUodGFza19jbWQpczsKKyIiIiAlIGNtZF9hcmdzXQorCisKK2RlZiBnZXRf
b3duZXIoZXZlbnQpOgorICAgIGlmICJwdXNoZXIiIGluIGV2ZW50OgorICAgICAgICBwdXNoZXIg
PSBldmVudC5nZXQoInB1c2hlciIsIHt9KS5nZXQoImVtYWlsIiwgIiIpCisgICAgICAgIGlmIHB1
c2hlciBhbmQgIkAiIGluIHB1c2hlcjoKKyAgICAgICAgICAgIHJldHVybiBwdXNoZXIKKyAgICBy
ZXR1cm4gIndlYi1wbGF0Zm9ybS10ZXN0c0B1c2Vycy5ub3JlcGx5LmdpdGh1Yi5jb20iCisKKwor
ZGVmIGNyZWF0ZV90Y190YXNrKGV2ZW50LCB0YXNrLCB0YXNrZ3JvdXBfaWQsIGRlcGVuZHNfb25f
aWRzKToKKyAgICBjb21tYW5kID0gYnVpbGRfZnVsbF9jb21tYW5kKGV2ZW50LCB0YXNrKQorICAg
IHRhc2tfaWQgPSB0YXNrY2x1c3Rlci5zbHVnSWQoKQorICAgIHRhc2tfZGF0YSA9IHsKKyAgICAg
ICAgInRhc2tHcm91cElkIjogdGFza2dyb3VwX2lkLAorICAgICAgICAiY3JlYXRlZCI6IHRhc2tj
bHVzdGVyLmZyb21Ob3dKU09OKCIiKSwKKyAgICAgICAgImRlYWRsaW5lIjogdGFza2NsdXN0ZXIu
ZnJvbU5vd0pTT04odGFza1siZGVhZGxpbmUiXSksCisgICAgICAgICJwcm92aXNpb25lcklkIjog
dGFza1sicHJvdmlzaW9uZXJJZCJdLAorICAgICAgICAic2NoZWR1bGVySWQiOiB0YXNrWyJzY2hl
ZHVsZXJJZCJdLAorICAgICAgICAid29ya2VyVHlwZSI6IHRhc2tbIndvcmtlclR5cGUiXSwKKyAg
ICAgICAgIm1ldGFkYXRhIjogeworICAgICAgICAgICAgIm5hbWUiOiB0YXNrWyJuYW1lIl0sCisg
ICAgICAgICAgICAiZGVzY3JpcHRpb24iOiB0YXNrLmdldCgiZGVzY3JpcHRpb24iLCAiIiksCisg
ICAgICAgICAgICAib3duZXIiOiBnZXRfb3duZXIoZXZlbnQpLAorICAgICAgICAgICAgInNvdXJj
ZSI6IGV2ZW50WyJyZXBvc2l0b3J5Il1bImNsb25lX3VybCJdCisgICAgICAgIH0sCisgICAgICAg
ICJwYXlsb2FkIjogeworICAgICAgICAgICAgImFydGlmYWN0cyI6IHRhc2suZ2V0KCJhcnRpZmFj
dHMiKSwKKyAgICAgICAgICAgICJjb21tYW5kIjogY29tbWFuZCwKKyAgICAgICAgICAgICJpbWFn
ZSI6IHRhc2suZ2V0KCJpbWFnZSIpLAorICAgICAgICAgICAgIm1heFJ1blRpbWUiOiB0YXNrLmdl
dCgibWF4UnVuVGltZSIpLAorICAgICAgICAgICAgImVudiI6IHRhc2suZ2V0KCJlbnYiLCB7fSks
CisgICAgICAgIH0sCisgICAgICAgICJleHRyYSI6IHsKKyAgICAgICAgICAgICJnaXRodWJfZXZl
bnQiOiBqc29uLmR1bXBzKGV2ZW50KQorICAgICAgICB9CisgICAgfQorICAgIGlmIGRlcGVuZHNf
b25faWRzOgorICAgICAgICB0YXNrX2RhdGFbImRlcGVuZGVuY2llcyJdID0gZGVwZW5kc19vbl9p
ZHMKKyAgICAgICAgdGFza19kYXRhWyJyZXF1aXJlcyJdID0gImFsbC1jb21wbGV0ZWQiCisgICAg
cmV0dXJuIHRhc2tfaWQsIHRhc2tfZGF0YQorCisKK2RlZiBidWlsZF90YXNrX2dyYXBoKGV2ZW50
LCBhbGxfdGFza3MsIHRhc2tzKToKKyAgICB0YXNrX2lkX21hcCA9IE9yZGVyZWREaWN0KCkKKyAg
ICB0YXNrZ3JvdXBfaWQgPSBvcy5lbnZpcm9uLmdldCgiVEFTS19JRCIsIHRhc2tjbHVzdGVyLnNs
dWdJZCgpKQorCisgICAgZGVmIGFkZF90YXNrKHRhc2tfbmFtZSwgdGFzayk6CisgICAgICAgIGRl
cGVuZHNfb25faWRzID0gW10KKyAgICAgICAgaWYgImRlcGVuZHMtb24iIGluIHRhc2s6CisgICAg
ICAgICAgICBmb3IgZGVwZW5kc19uYW1lIGluIHRhc2tbImRlcGVuZHMtb24iXToKKyAgICAgICAg
ICAgICAgICBpZiBkZXBlbmRzX25hbWUgbm90IGluIHRhc2tfaWRfbWFwOgorICAgICAgICAgICAg
ICAgICAgICBhZGRfdGFzayhkZXBlbmRzX25hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGFsbF90YXNrc1tkZXBlbmRzX25hbWVdKQorICAgICAgICAgICAgICAgIGRlcGVuZHNfb25f
aWRzLmFwcGVuZCh0YXNrX2lkX21hcFtkZXBlbmRzX25hbWVdWzBdKQorICAgICAgICB0YXNrX2lk
LCB0YXNrX2RhdGEgPSBjcmVhdGVfdGNfdGFzayhldmVudCwgdGFzaywgdGFza2dyb3VwX2lkLCBk
ZXBlbmRzX29uX2lkcykKKyAgICAgICAgdGFza19pZF9tYXBbdGFza19uYW1lXSA9ICh0YXNrX2lk
LCB0YXNrX2RhdGEpCisKKyAgICBmb3IgdGFza19uYW1lLCB0YXNrIGluIGl0ZXJpdGVtcyh0YXNr
cyk6CisgICAgICAgIGFkZF90YXNrKHRhc2tfbmFtZSwgdGFzaykKKworICAgIHJldHVybiB0YXNr
X2lkX21hcAorCisKK2RlZiBjcmVhdGVfdGFza3MocXVldWUsIHRhc2tfaWRfbWFwKToKKyAgICBm
b3IgKHRhc2tfaWQsIHRhc2tfZGF0YSkgaW4gaXRlcnZhbHVlcyh0YXNrX2lkX21hcCk6CisgICAg
ICAgIHF1ZXVlLmNyZWF0ZVRhc2sodGFza19pZCwgdGFza19kYXRhKQorCisKK2RlZiBnZXRfZXZl
bnQocXVldWUsIGV2ZW50X3BhdGgpOgorICAgIGlmIGV2ZW50X3BhdGggaXMgbm90IE5vbmU6Cisg
ICAgICAgIHRyeToKKyAgICAgICAgICAgIHdpdGggb3BlbihldmVudF9wYXRoKSBhcyBmOgorICAg
ICAgICAgICAgICAgIGV2ZW50X3N0ciA9IGYucmVhZCgpCisgICAgICAgIGV4Y2VwdCBJT0Vycm9y
OgorICAgICAgICAgICAgbG9nZ2VyLmVycm9yKCJNaXNzaW5nIGV2ZW50IGZpbGUgYXQgcGF0aCAl
cyIgJSBldmVudF9wYXRoKQorICAgICAgICAgICAgcmFpc2UKKyAgICBlbGlmICJUQVNLX0VWRU5U
IiBpbiBvcy5lbnZpcm9uOgorICAgICAgICBldmVudF9zdHIgPSBvcy5lbnZpcm9uWyJUQVNLX0VW
RU5UIl0KKyAgICBlbHNlOgorICAgICAgICBldmVudF9zdHIgPSBmZXRjaF9ldmVudF9kYXRhKHF1
ZXVlKQorICAgIGlmIG5vdCBldmVudF9zdHI6CisgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoIkNh
bid0IGZpbmQgR2l0SHViIGV2ZW50IGRlZmluaXRpb247IGZvciBsb2NhbCB0ZXN0aW5nIHBhc3Mg
LS1ldmVudC1wYXRoIikKKyAgICB0cnk6CisgICAgICAgIHJldHVybiBqc29uLmxvYWRzKGV2ZW50
X3N0cikKKyAgICBleGNlcHQgVmFsdWVFcnJvcjoKKyAgICAgICAgbG9nZ2VyLmVycm9yKCJFdmVu
dCB3YXMgbm90IHZhbGlkIEpTT04iKQorICAgICAgICByYWlzZQorCisKK2RlZiBkZWNpZGUoZXZl
bnQpOgorICAgIGFsbF90YXNrcyA9IHRhc2tncmFwaC5sb2FkX3Rhc2tzX2Zyb21fcGF0aChvcy5w
YXRoLmpvaW4oaGVyZSwgInRhc2tzIiwgInRlc3QueW1sIikpCisKKyAgICB0cmlnZ2VyZWRfdGFz
a3MgPSBmaWx0ZXJfdHJpZ2dlcnMoZXZlbnQsIGFsbF90YXNrcykKKyAgICBzY2hlZHVsZWRfdGFz
a3MgPSBmaWx0ZXJfc2NoZWR1bGVfaWYoZXZlbnQsIHRyaWdnZXJlZF90YXNrcykKKworICAgIGxv
Z2dlci5pbmZvKCJVTlNDSEVEVUxFRCBUQVNLUzpcbiAgJXMiICUgIlxuICAiLmpvaW4oc29ydGVk
KHNldChhbGxfdGFza3Mua2V5cygpKSAtCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXQoc2NoZWR1bGVkX3Rhc2tzLmtleXMoKSkp
KSkKKyAgICBsb2dnZXIuaW5mbygiU0NIRURVTEVEIFRBU0tTOlxuICAlcyIgJSAiXG4gICIuam9p
bihzb3J0ZWQoc2NoZWR1bGVkX3Rhc2tzLmtleXMoKSkpKQorCisgICAgdGFza19pZF9tYXAgPSBi
dWlsZF90YXNrX2dyYXBoKGV2ZW50LCBhbGxfdGFza3MsIHNjaGVkdWxlZF90YXNrcykKKyAgICBy
ZXR1cm4gdGFza19pZF9tYXAKKworCitkZWYgZ2V0X3BhcnNlcigpOgorICAgIHBhcnNlciA9IGFy
Z3BhcnNlLkFyZ3VtZW50UGFyc2VyKCkKKyAgICBwYXJzZXIuYWRkX2FyZ3VtZW50KCItLWV2ZW50
LXBhdGgiLAorICAgICAgICAgICAgICAgICAgICAgICAgaGVscD0iUGF0aCB0byBmaWxlIGNvbnRh
aW5pbmcgc2VyaWFsaXplZCBHaXRIdWIgZXZlbnQiKQorICAgIHBhcnNlci5hZGRfYXJndW1lbnQo
Ii0tZHJ5LXJ1biIsIGFjdGlvbj0ic3RvcmVfdHJ1ZSIsCisgICAgICAgICAgICAgICAgICAgICAg
ICBoZWxwPSJEb24ndCBhY3R1YWxseSBjcmVhdGUgdGhlIHRhc2tzLCBqdXN0IG91dHB1dCB0aGUg
dGFza3MgdGhhdCAiCisgICAgICAgICAgICAgICAgICAgICAgICAid291bGQgYmUgY3JlYXRlZCIp
CisgICAgcGFyc2VyLmFkZF9hcmd1bWVudCgiLS10YXNrcy1wYXRoIiwKKyAgICAgICAgICAgICAg
ICAgICAgICAgIGhlbHA9IlBhdGggdG8gZmlsZSBpbiB3aGljaCB0byB3cml0ZSBwYXlsb2FkIGZv
ciBhbGwgc2NoZWR1bGVkIHRhc2tzIikKKyAgICByZXR1cm4gcGFyc2VyCisKKworZGVmIHJ1bih2
ZW52LCAqKmt3YXJncyk6CisgICAgcXVldWUgPSB0YXNrY2x1c3Rlci5RdWV1ZSh7J3Jvb3RVcmwn
OiBvcy5lbnZpcm9uWydUQVNLQ0xVU1RFUl9QUk9YWV9VUkwnXX0pCisgICAgZXZlbnQgPSBnZXRf
ZXZlbnQocXVldWUsIGV2ZW50X3BhdGg9a3dhcmdzWyJldmVudF9wYXRoIl0pCisKKyAgICB0YXNr
X2lkX21hcCA9IGRlY2lkZShldmVudCkKKworICAgIHRyeToKKyAgICAgICAgaWYgbm90IGt3YXJn
c1siZHJ5X3J1biJdOgorICAgICAgICAgICAgY3JlYXRlX3Rhc2tzKHF1ZXVlLCB0YXNrX2lkX21h
cCkKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHByaW50KGpzb24uZHVtcHModGFza19pZF9t
YXAsIGluZGVudD0yKSkKKyAgICBmaW5hbGx5OgorICAgICAgICBpZiBrd2FyZ3NbInRhc2tzX3Bh
dGgiXToKKyAgICAgICAgICAgIHdpdGggb3Blbihrd2FyZ3NbInRhc2tzX3BhdGgiXSwgInciKSBh
cyBmOgorICAgICAgICAgICAgICAgIGpzb24uZHVtcCh0YXNrX2lkX21hcCwgZiwgaW5kZW50PTIp
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL2NpL3RjL2Rvd25sb2FkLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy9jaS90Yy9kb3dubG9hZC5weQpuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMC4uMzU5ZWMzMzQwNTAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2NpL3RjL2Rvd25s
b2FkLnB5CkBAIC0wLDAgKzEsMTA5IEBACitpbXBvcnQgYXJncGFyc2UKK2ltcG9ydCBvcworaW1w
b3J0IGxvZ2dpbmcKKworaW1wb3J0IHJlcXVlc3RzCisKK2ltcG9ydCBnaXRodWIKKworCitsb2dn
aW5nLmJhc2ljQ29uZmlnKCkKK2xvZ2dlciA9IGxvZ2dpbmcuZ2V0TG9nZ2VyKCJ0Yy1kb3dubG9h
ZCIpCisKKyMgVGhlIHJvb3QgVVJMIG9mIHRoZSBUYXNrY2x1c3RlciBkZXBsb3ltZW50IGZyb20g
d2hpY2ggdG8gZG93bmxvYWQgd3B0IHJlcG9ydHMKKyMgKGFmdGVyIGh0dHBzOi8vYnVnemlsbGEu
bW96aWxsYS5vcmcvc2hvd19idWcuY2dpP2lkPTE1NzQ2NjggbGFuZHMsIHRoaXMgd2lsbAorIyBi
ZSBodHRwczovL2NvbW11bml0eS10Yy5zZXJ2aWNlcy5tb3ppbGxhLmNvbSkKK1RBU0tDTFVTVEVS
X1JPT1RfVVJMID0gJ2h0dHBzOi8vdGFza2NsdXN0ZXIubmV0JworCisKK2RlZiBnZXRfcGFyc2Vy
KCk6CisgICAgcGFyc2VyID0gYXJncGFyc2UuQXJndW1lbnRQYXJzZXIoKQorICAgIHBhcnNlci5h
ZGRfYXJndW1lbnQoIi0tcmVmIiwgYWN0aW9uPSJzdG9yZSIsIGRlZmF1bHQ9Im1hc3RlciIsCisg
ICAgICAgICAgICAgICAgICAgICAgICBoZWxwPSJCcmFuY2ggKGluIHRoZSBHaXRIdWIgcmVwb3Np
dG9yeSkgb3IgY29tbWl0IHRvIGZldGNoIGxvZ3MgZm9yIikKKyAgICBwYXJzZXIuYWRkX2FyZ3Vt
ZW50KCItLWFydGlmYWN0LW5hbWUiLCBhY3Rpb249InN0b3JlIiwgZGVmYXVsdD0id3B0X3JlcG9y
dC5qc29uLmd6IiwKKyAgICAgICAgICAgICAgICAgICAgICAgIGhlbHA9IkxvZyB0eXBlIHRvIGZl
dGNoIikKKyAgICBwYXJzZXIuYWRkX2FyZ3VtZW50KCItLXJlcG8tbmFtZSIsIGFjdGlvbj0ic3Rv
cmUiLCBkZWZhdWx0PSJ3ZWItcGxhdGZvcm0tdGVzdHMvd3B0IiwKKyAgICAgICAgICAgICAgICAg
ICAgICAgIGhlbHA9IkdpdEh1YiByZXBvIG5hbWUgaW4gdGhlIGZvcm1hdCBvd25lci9yZXBvLiAi
CisgICAgICAgICAgICAgICAgICAgICAgICAiVGhpcyBtdXN0IGJlIHRoZSByZXBvIGZyb20gd2hp
Y2ggdGhlIFRhc2tjbHVzdGVyIHJ1biB3YXMgc2NoZWR1bGVkICIKKyAgICAgICAgICAgICAgICAg
ICAgICAgICIoZm9yIFBScyB0aGlzIGlzIHRoZSByZXBvIGludG8gd2hpY2ggdGhlIFBSIHdvdWxk
IG1lcmdlKSIpCisgICAgcGFyc2VyLmFkZF9hcmd1bWVudCgiLS10b2tlbi1maWxlIiwgYWN0aW9u
PSJzdG9yZSIsCisgICAgICAgICAgICAgICAgICAgICAgICBoZWxwPSJGaWxlIGNvbnRhaW5pbmcg
R2l0SHViIHRva2VuIikKKyAgICBwYXJzZXIuYWRkX2FyZ3VtZW50KCItLW91dC1kaXIiLCBhY3Rp
b249InN0b3JlIiwgZGVmYXVsdD0iLiIsCisgICAgICAgICAgICAgICAgICAgICAgICBoZWxwPSJQ
YXRoIHRvIHNhdmUgdGhlIGxvZ2ZpbGVzIikKKyAgICByZXR1cm4gcGFyc2VyCisKKworZGVmIGdl
dF9qc29uKHVybCwga2V5PU5vbmUpOgorICAgIHJlc3AgPSByZXF1ZXN0cy5nZXQodXJsKQorICAg
IHJlc3AucmFpc2VfZm9yX3N0YXR1cygpCisgICAgZGF0YSA9IHJlc3AuanNvbigpCisgICAgaWYg
a2V5OgorICAgICAgICBkYXRhID0gZGF0YVtrZXldCisgICAgcmV0dXJuIGRhdGEKKworCitkZWYg
Z2V0KHVybCwgZGVzdCwgbmFtZSk6CisgICAgcmVzcCA9IHJlcXVlc3RzLmdldCh1cmwpCisgICAg
cmVzcC5yYWlzZV9mb3Jfc3RhdHVzKCkKKyAgICBwYXRoID0gb3MucGF0aC5qb2luKGRlc3QsIG5h
bWUpCisgICAgd2l0aCBvcGVuKHBhdGgsICJ3IikgYXMgZjoKKyAgICAgICAgZi53cml0ZShyZXNw
LmNvbnRlbnQpCisgICAgcmV0dXJuIHBhdGgKKworCitkZWYgcnVuKCphcmdzLCAqKmt3YXJncyk6
CisgICAgaWYgbm90IG9zLnBhdGguZXhpc3RzKGt3YXJnc1sib3V0X2RpciJdKToKKyAgICAgICAg
b3MubWtkaXIoa3dhcmdzWyJvdXRfZGlyIl0pCisKKyAgICBpZiBrd2FyZ3NbInRva2VuX2ZpbGUi
XToKKyAgICAgICAgd2l0aCBvcGVuKGt3YXJnc1sidG9rZW5fZmlsZSJdKSBhcyBmOgorICAgICAg
ICAgICAgZ2ggPSBnaXRodWIuR2l0aHViKGYucmVhZCgpLnN0cmlwKCkpCisgICAgZWxzZToKKyAg
ICAgICAgZ2ggPSBnaXRodWIuR2l0aHViKCkKKworICAgIHJlcG8gPSBnaC5nZXRfcmVwbyhrd2Fy
Z3NbInJlcG9fbmFtZSJdKQorICAgIGNvbW1pdCA9IHJlcG8uZ2V0X2NvbW1pdChrd2FyZ3NbInJl
ZiJdKQorICAgIHN0YXR1c2VzID0gY29tbWl0LmdldF9zdGF0dXNlcygpCisgICAgdGFza2dyb3Vw
cyA9IHNldCgpCisKKyAgICBmb3Igc3RhdHVzIGluIHN0YXR1c2VzOgorICAgICAgICBpZiBub3Qg
c3RhdHVzLmNvbnRleHQuc3RhcnRzd2l0aCgiVGFza2NsdXN0ZXIgIik6CisgICAgICAgICAgICBj
b250aW51ZQorICAgICAgICBpZiBzdGF0dXMuc3RhdGUgPT0gInBlbmRpbmciOgorICAgICAgICAg
ICAgY29udGludWUKKyAgICAgICAgdGFza2dyb3VwX2lkID0gc3RhdHVzLnRhcmdldF91cmwucnNw
bGl0KCIvIiwgMSlbMV0KKyAgICAgICAgdGFza2dyb3Vwcy5hZGQodGFza2dyb3VwX2lkKQorCisg
ICAgaWYgbm90IHRhc2tncm91cHM6CisgICAgICAgIGxvZ2dlci5lcnJvcigiTm8gY29tcGxldGUg
VGFza2NsdXN0ZXIgcnVucyBmb3VuZCBmb3IgcmVmICVzIiAlIGt3YXJnc1sicmVmIl0pCisgICAg
ICAgIHJldHVybiAxCisKKyAgICBmb3IgdGFza2dyb3VwIGluIHRhc2tncm91cHM6CisgICAgICAg
IGlmIFRBU0tDTFVTVEVSX1JPT1RfVVJMID09ICdodHRwczovL3Rhc2tjbHVzdGVyLm5ldCc6Cisg
ICAgICAgICAgICAjIE5PVEU6IHRoaXMgY29uZGl0aW9uIGNhbiBiZSByZW1vdmVkIGFmdGVyIE5v
dmVtYmVyIDksIDIwMTkKKyAgICAgICAgICAgIHRhc2tncm91cF91cmwgPSAiaHR0cHM6Ly9xdWV1
ZS50YXNrY2x1c3Rlci5uZXQvdjEvdGFzay1ncm91cC8lcy9saXN0IgorICAgICAgICAgICAgYXJ0
aWZhY3RzX2xpc3RfdXJsID0gImh0dHBzOi8vcXVldWUudGFza2NsdXN0ZXIubmV0L3YxL3Rhc2sv
JXMvYXJ0aWZhY3RzIgorICAgICAgICBlbHNlOgorICAgICAgICAgICAgdGFza2dyb3VwX3VybCA9
IFRBU0tDTFVTVEVSX1JPT1RfVVJMICsgIi9hcGkvcXVldWUvdjEvdGFzay1ncm91cC8lcy9saXN0
IgorICAgICAgICAgICAgYXJ0aWZhY3RzX2xpc3RfdXJsID0gVEFTS0NMVVNURVJfUk9PVF9VUkwg
KyAiL2FwaS9xdWV1ZS92MS90YXNrLyVzL2FydGlmYWN0cyIKKyAgICAgICAgdGFza3MgPSBnZXRf
anNvbih0YXNrZ3JvdXBfdXJsICUgdGFza2dyb3VwLCAidGFza3MiKQorICAgICAgICBmb3IgdGFz
ayBpbiB0YXNrczoKKyAgICAgICAgICAgIHRhc2tfaWQgPSB0YXNrWyJzdGF0dXMiXVsidGFza0lk
Il0KKyAgICAgICAgICAgIHVybCA9IGFydGlmYWN0c19saXN0X3VybCAlICh0YXNrX2lkLCkKKyAg
ICAgICAgICAgIGZvciBhcnRpZmFjdCBpbiBnZXRfanNvbih1cmwsICJhcnRpZmFjdHMiKToKKyAg
ICAgICAgICAgICAgICBpZiBhcnRpZmFjdFsibmFtZSJdLmVuZHN3aXRoKGt3YXJnc1siYXJ0aWZh
Y3RfbmFtZSJdKToKKyAgICAgICAgICAgICAgICAgICAgZmlsZW5hbWUgPSAiJXMtJXMtJXMiICUg
KHRhc2tbInRhc2siXVsibWV0YWRhdGEiXVsibmFtZSJdLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgdGFza19pZCwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGt3YXJnc1siYXJ0aWZhY3RfbmFtZSJdKQorICAgICAgICAg
ICAgICAgICAgICBwYXRoID0gZ2V0KCIlcy8lcyIgJSAodXJsLCBhcnRpZmFjdFsibmFtZSJdKSwg
a3dhcmdzWyJvdXRfZGlyIl0sIGZpbGVuYW1lKQorICAgICAgICAgICAgICAgICAgICBsb2dnZXIu
aW5mbyhwYXRoKQorCisKK2RlZiBtYWluKCk6CisgICAga3dhcmdzID0gZ2V0X3BhcnNlcigpLnBh
cnNlX2FyZ3MoKQorCisgICAgcnVuKE5vbmUsIHZhcnMoa3dhcmdzKSkKKworCitpZiBfX25hbWVf
XyA9PSAiX19tYWluX18iOgorICAgIG1haW4oKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9jaS90Yy90YXNrZ3JhcGgucHkgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2NpL3RjL3Rh
c2tncmFwaC5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uNmE2Y2I0
OTdmMmQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL2NpL3RjL3Rhc2tncmFwaC5weQpAQCAtMCwwICsxLDE3MCBAQAor
aW1wb3J0IGpzb24KK2ltcG9ydCBvcworaW1wb3J0IHJlCitmcm9tIGNvcHkgaW1wb3J0IGRlZXBj
b3B5CisKK2ltcG9ydCBzaXgKK2ltcG9ydCB5YW1sCitmcm9tIHNpeCBpbXBvcnQgaXRlcml0ZW1z
CisKK2hlcmUgPSBvcy5wYXRoLmRpcm5hbWUoX19maWxlX18pCisKKworZGVmIGZpcnN0KGl0ZXJh
YmxlKToKKyAgICAjIEZpcnN0IGl0ZW0gZnJvbSBhIGxpc3Qgb3IgaXRlcmF0b3IKKyAgICBpZiBu
b3QgaGFzYXR0cihpdGVyYWJsZSwgIm5leHQiKToKKyAgICAgICAgaWYgaGFzYXR0cihpdGVyYWJs
ZSwgIl9faXRlcl9fIik6CisgICAgICAgICAgICBpdGVyYWJsZSA9IGl0ZXIoaXRlcmFibGUpCisg
ICAgICAgIGVsc2U6CisgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJPYmplY3QgaXNuJ3Qg
aXRlcmFibGUiKQorICAgIHJldHVybiBuZXh0KGl0ZXJhYmxlKQorCisKK2RlZiBsb2FkX3Rhc2tf
ZmlsZShwYXRoKToKKyAgICB3aXRoIG9wZW4ocGF0aCkgYXMgZjoKKyAgICAgICAgcmV0dXJuIHlh
bWwuc2FmZV9sb2FkKGYpCisKKworZGVmIHVwZGF0ZV9yZWN1cnNpdmUoZGF0YSwgdXBkYXRlX2Rh
dGEpOgorICAgIGZvciBrZXksIHZhbHVlIGluIGl0ZXJpdGVtcyh1cGRhdGVfZGF0YSk6CisgICAg
ICAgIGlmIGtleSBub3QgaW4gZGF0YToKKyAgICAgICAgICAgIGRhdGFba2V5XSA9IHZhbHVlCisg
ICAgICAgIGVsc2U6CisgICAgICAgICAgICBpbml0aWFsX3ZhbHVlID0gZGF0YVtrZXldCisgICAg
ICAgICAgICBpZiBpc2luc3RhbmNlKHZhbHVlLCBkaWN0KToKKyAgICAgICAgICAgICAgICBpZiBu
b3QgaXNpbnN0YW5jZShpbml0aWFsX3ZhbHVlLCBkaWN0KToKKyAgICAgICAgICAgICAgICAgICAg
cmFpc2UgVmFsdWVFcnJvcigiVmFyaWFibGUgJXMgaGFzIGluY29uc2lzdGVudCB0eXBlcyAiCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIihleHBlY3RlZCBvYmplY3QpIiAl
IGtleSkKKyAgICAgICAgICAgICAgICB1cGRhdGVfcmVjdXJzaXZlKGluaXRpYWxfdmFsdWUsIHZh
bHVlKQorICAgICAgICAgICAgZWxpZiBpc2luc3RhbmNlKHZhbHVlLCBsaXN0KToKKyAgICAgICAg
ICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShpbml0aWFsX3ZhbHVlLCBsaXN0KToKKyAgICAgICAg
ICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigiVmFyaWFibGUgJXMgaGFzIGluY29uc2lzdGVu
dCB0eXBlcyAiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIihleHBlY3Rl
ZCBsaXN0KSIgJSBrZXkpCisgICAgICAgICAgICAgICAgaW5pdGlhbF92YWx1ZS5leHRlbmQodmFs
dWUpCisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgIGRhdGFba2V5XSA9IHZhbHVl
CisKKworZGVmIHJlc29sdmVfdXNlKHRhc2tfZGF0YSwgdGVtcGxhdGVzKToKKyAgICBydiA9IHt9
CisgICAgaWYgInVzZSIgaW4gdGFza19kYXRhOgorICAgICAgICBmb3IgdGVtcGxhdGVfbmFtZSBp
biB0YXNrX2RhdGFbInVzZSJdOgorICAgICAgICAgICAgdXBkYXRlX3JlY3Vyc2l2ZShydiwgZGVl
cGNvcHkodGVtcGxhdGVzW3RlbXBsYXRlX25hbWVdKSkKKyAgICB1cGRhdGVfcmVjdXJzaXZlKHJ2
LCB0YXNrX2RhdGEpCisgICAgcnYucG9wKCJ1c2UiLCBOb25lKQorICAgIHJldHVybiBydgorCisK
K2RlZiByZXNvbHZlX25hbWUodGFza19kYXRhLCBkZWZhdWx0X25hbWUpOgorICAgIGlmICJuYW1l
IiBub3QgaW4gdGFza19kYXRhOgorICAgICAgICB0YXNrX2RhdGFbIm5hbWUiXSA9IGRlZmF1bHRf
bmFtZQorICAgIHJldHVybiB0YXNrX2RhdGEKKworCitkZWYgcmVzb2x2ZV9jaHVua3ModGFza19k
YXRhKToKKyAgICBpZiAiY2h1bmtzIiBub3QgaW4gdGFza19kYXRhOgorICAgICAgICByZXR1cm4g
W3Rhc2tfZGF0YV0KKyAgICBydiA9IFtdCisgICAgdG90YWxfY2h1bmtzID0gdGFza19kYXRhWyJj
aHVua3MiXQorICAgIGZvciBpIGluIHJhbmdlKDEsIHRvdGFsX2NodW5rcyArIDEpOgorICAgICAg
ICBjaHVua19kYXRhID0gZGVlcGNvcHkodGFza19kYXRhKQorICAgICAgICBjaHVua19kYXRhWyJj
aHVua3MiXSA9IHsiaWQiOiBpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAidG90
YWwiOiB0b3RhbF9jaHVua3N9CisgICAgICAgIHJ2LmFwcGVuZChjaHVua19kYXRhKQorICAgIHJl
dHVybiBydgorCisKK2RlZiByZXBsYWNlX3ZhcnMoaW5wdXRfc3RyaW5nLCB2YXJpYWJsZXMpOgor
ICAgICMgVE9ETzogc3VwcG9ydCByZXBsYWNpbmcgYXMgYSBub24tc3RyaW5nIHR5cGU/CisgICAg
dmFyaWFibGVfcmUgPSByZS5jb21waWxlKHIiKD88IVxcKVwkeyhbXn1dKyl9IikKKworICAgIGRl
ZiByZXBsYWNlcihtKToKKyAgICAgICAgdmFyID0gbS5ncm91cCgxKS5zcGxpdCgiLiIpCisgICAg
ICAgIHJlcGwgPSB2YXJpYWJsZXMKKyAgICAgICAgZm9yIHBhcnQgaW4gdmFyOgorICAgICAgICAg
ICAgdHJ5OgorICAgICAgICAgICAgICAgIHJlcGwgPSByZXBsW3BhcnRdCisgICAgICAgICAgICBl
eGNlcHQgRXhjZXB0aW9uOgorICAgICAgICAgICAgICAgICMgRG9uJ3Qgc3Vic3RpdHV0ZQorICAg
ICAgICAgICAgICAgIHJldHVybiBtLmdyb3VwKDApCisgICAgICAgIHJldHVybiBzdHIocmVwbCkK
KworICAgIHJldHVybiB2YXJpYWJsZV9yZS5zdWIocmVwbGFjZXIsIGlucHV0X3N0cmluZykKKwor
CitkZWYgc3ViX3ZhcmlhYmxlcyhkYXRhLCB2YXJpYWJsZXMpOgorICAgIGlmIGlzaW5zdGFuY2Uo
ZGF0YSwgc2l4LnN0cmluZ190eXBlcyk6CisgICAgICAgIHJldHVybiByZXBsYWNlX3ZhcnMoZGF0
YSwgdmFyaWFibGVzKQorICAgIGlmIGlzaW5zdGFuY2UoZGF0YSwgbGlzdCk6CisgICAgICAgIHJl
dHVybiBbc3ViX3ZhcmlhYmxlcyhpdGVtLCB2YXJpYWJsZXMpIGZvciBpdGVtIGluIGRhdGFdCisg
ICAgaWYgaXNpbnN0YW5jZShkYXRhLCBkaWN0KToKKyAgICAgICAgcmV0dXJuIHtrZXk6IHN1Yl92
YXJpYWJsZXModmFsdWUsIHZhcmlhYmxlcykKKyAgICAgICAgICAgICAgICBmb3Iga2V5LCB2YWx1
ZSBpbiBpdGVyaXRlbXMoZGF0YSl9CisgICAgcmV0dXJuIGRhdGEKKworCitkZWYgc3Vic3RpdHV0
ZV92YXJpYWJsZXModGFzayk6CisgICAgdmFyaWFibGVzID0geyJ2YXJzIjogdGFzay5nZXQoInZh
cnMiLCB7fSksCisgICAgICAgICAgICAgICAgICJjaHVua3MiOiB0YXNrLmdldCgiY2h1bmtzIiwg
e30pfQorCisgICAgcmV0dXJuIHN1Yl92YXJpYWJsZXModGFzaywgdmFyaWFibGVzKQorCisKK2Rl
ZiBleHBhbmRfbWFwcyh0YXNrKToKKyAgICBuYW1lID0gZmlyc3QodGFzay5rZXlzKCkpCisgICAg
aWYgbmFtZSAhPSAiJG1hcCI6CisgICAgICAgIHJldHVybiBbdGFza10KKworICAgIG1hcF9kYXRh
ID0gdGFza1siJG1hcCJdCisgICAgaWYgc2V0KG1hcF9kYXRhLmtleXMoKSkgIT0gc2V0KFsiZm9y
IiwgImRvIl0pOgorICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCIkbWFwIG9iamVjdHMgbXVzdCBo
YXZlIGV4YWN0bHkgdHdvIHByb3BlcnRpZXMgbmFtZWQgJ2ZvcicgIgorICAgICAgICAgICAgICAg
ICAgICAgICAgICJhbmQgJ2RvJyAoZ290ICVzKSIgJSAoIm5vIHByb3BlcnRpZXMiIGlmIG5vdCBt
YXBfZGF0YS5rZXlzKCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGVsc2UgIiwgIi4gam9pbihtYXBfZGF0YS5rZXlzKCkpKSkKKyAgICBydiA9IFtdCisg
ICAgZm9yIGZvcl9kYXRhIGluIG1hcF9kYXRhWyJmb3IiXToKKyAgICAgICAgZG9faXRlbXMgPSBt
YXBfZGF0YVsiZG8iXQorICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShkb19pdGVtcywgbGlzdCk6
CisgICAgICAgICAgICBkb19pdGVtcyA9IGV4cGFuZF9tYXBzKGRvX2l0ZW1zKQorICAgICAgICBm
b3IgZG9fZGF0YSBpbiBkb19pdGVtczoKKyAgICAgICAgICAgIHRhc2tfZGF0YSA9IGRlZXBjb3B5
KGZvcl9kYXRhKQorICAgICAgICAgICAgaWYgbGVuKGRvX2RhdGEua2V5cygpKSAhPSAxOgorICAg
ICAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoIkVhY2ggaXRlbSBpbiB0aGUgJ2RvJyBsaXN0
IG11c3QgYmUgYW4gb2JqZWN0ICIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ3
aXRoIGEgc2luZ2xlIHByb3BlcnR5IikKKyAgICAgICAgICAgIG5hbWUgPSBmaXJzdChkb19kYXRh
LmtleXMoKSkKKyAgICAgICAgICAgIHVwZGF0ZV9yZWN1cnNpdmUodGFza19kYXRhLCBkZWVwY29w
eShkb19kYXRhW25hbWVdKSkKKyAgICAgICAgICAgIHJ2LmFwcGVuZCh7bmFtZTogdGFza19kYXRh
fSkKKyAgICByZXR1cm4gcnYKKworCitkZWYgbG9hZF90YXNrcyh0YXNrc19kYXRhKToKKyAgICBt
YXBfcmVzb2x2ZWRfdGFza3MgPSB7fQorICAgIHRhc2tzID0gW10KKworICAgIGZvciB0YXNrIGlu
IHRhc2tzX2RhdGFbInRhc2tzIl06CisgICAgICAgIGlmIGxlbih0YXNrLmtleXMoKSkgIT0gMToK
KyAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoIkVhY2ggdGFzayBtdXN0IGJlIGFuIG9iamVj
dCB3aXRoIGEgc2luZ2xlIHByb3BlcnR5IikKKyAgICAgICAgZm9yIHRhc2sgaW4gZXhwYW5kX21h
cHModGFzayk6CisgICAgICAgICAgICBpZiBsZW4odGFzay5rZXlzKCkpICE9IDE6CisgICAgICAg
ICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigiRWFjaCB0YXNrIG11c3QgYmUgYW4gb2JqZWN0IHdp
dGggYSBzaW5nbGUgcHJvcGVydHkiKQorICAgICAgICAgICAgbmFtZSA9IGZpcnN0KHRhc2sua2V5
cygpKQorICAgICAgICAgICAgZGF0YSA9IHRhc2tbbmFtZV0KKyAgICAgICAgICAgIG5ld19uYW1l
ID0gc3ViX3ZhcmlhYmxlcyhuYW1lLCB7InZhcnMiOiBkYXRhLmdldCgidmFycyIsIHt9KX0pCisg
ICAgICAgICAgICBpZiBuZXdfbmFtZSBpbiBtYXBfcmVzb2x2ZWRfdGFza3M6CisgICAgICAgICAg
ICAgICAgcmFpc2UgVmFsdWVFcnJvcigiR290IGR1cGxpY2F0ZSB0YXNrIG5hbWUgJXMiICUgbmV3
X25hbWUpCisgICAgICAgICAgICBtYXBfcmVzb2x2ZWRfdGFza3NbbmV3X25hbWVdID0gc3Vic3Rp
dHV0ZV92YXJpYWJsZXMoZGF0YSkKKworICAgIGZvciB0YXNrX2RlZmF1bHRfbmFtZSwgZGF0YSBp
biBpdGVyaXRlbXMobWFwX3Jlc29sdmVkX3Rhc2tzKToKKyAgICAgICAgdGFzayA9IHJlc29sdmVf
dXNlKGRhdGEsIHRhc2tzX2RhdGFbImNvbXBvbmVudHMiXSkKKyAgICAgICAgdGFzayA9IHJlc29s
dmVfbmFtZSh0YXNrLCB0YXNrX2RlZmF1bHRfbmFtZSkKKyAgICAgICAgdGFza3MuZXh0ZW5kKHJl
c29sdmVfY2h1bmtzKHRhc2spKQorCisgICAgdGFza3MgPSBbc3Vic3RpdHV0ZV92YXJpYWJsZXMo
dGFza19kYXRhKSBmb3IgdGFza19kYXRhIGluIHRhc2tzXQorICAgIHJldHVybiB7dGFza1sibmFt
ZSJdOiB0YXNrIGZvciB0YXNrIGluIHRhc2tzfQorCisKK2RlZiBsb2FkX3Rhc2tzX2Zyb21fcGF0
aChwYXRoKToKKyAgICByZXR1cm4gbG9hZF90YXNrcyhsb2FkX3Rhc2tfZmlsZShwYXRoKSkKKwor
CitkZWYgcnVuKHZlbnYsICoqa3dhcmdzKToKKyAgICBwcmludChqc29uLmR1bXBzKGxvYWRfdGFz
a3NfZnJvbV9wYXRoKG9zLnBhdGguam9pbihoZXJlLCAidGFza3MiLCAidGVzdC55bWwiKSksIGlu
ZGVudD0yKSkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvY2kvdGMvdGFza3MvdGVzdC55bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2NpL3RjL3Rhc2tzL3Rlc3QueW1sCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5hNjRlZjM3NDkyMQotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvY2kvdGMvdGFza3MvdGVzdC55bWwKQEAgLTAsMCArMSwzNzAgQEAKK2NvbXBvbmVudHM6Cisg
IHdwdC1iYXNlOgorICAgIHByb3Zpc2lvbmVySWQ6IHByb2otd3B0CisgICAgd29ya2VyVHlwZTog
Y2kKKyAgICBzY2hlZHVsZXJJZDogdGFza2NsdXN0ZXItZ2l0aHViCisgICAgZGVhZGxpbmU6ICIy
NCBob3VycyIKKyAgICBpbWFnZTogaGFyamdhbS93ZWItcGxhdGZvcm0tdGVzdHM6MC4zMworICAg
IG1heFJ1blRpbWU6IDcyMDAKKyAgICBhcnRpZmFjdHM6CisgICAgICBwdWJsaWMvcmVzdWx0czoK
KyAgICAgICAgcGF0aDogL2hvbWUvdGVzdC9hcnRpZmFjdHMKKyAgICAgICAgdHlwZTogZGlyZWN0
b3J5CisKKyAgd3B0LXRlc3RoYXJuZXNzOgorICAgIGNodW5rczogMTYKKyAgICB2YXJzOgorICAg
ICAgdGVzdC10eXBlOiB0ZXN0aGFybmVzcworCisgIHdwdC1yZWZ0ZXN0OgorICAgIGNodW5rczog
NQorICAgIHZhcnM6CisgICAgICB0ZXN0LXR5cGU6IHJlZnRlc3QKKworICB3cHQtd2RzcGVjOgor
ICAgIGNodW5rczogMQorICAgIHZhcnM6CisgICAgICB0ZXN0LXR5cGU6IHdkc3BlYworCisgIHJ1
bi1vcHRpb25zOgorICAgIG9wdGlvbnM6CisgICAgICB4dmZiOiB0cnVlCisgICAgICBvb20ta2ls
bGVyOiB0cnVlCisgICAgICBob3N0czogdHJ1ZQorICAgICAgaW5zdGFsbC1jZXJ0aWZpY2F0ZXM6
IHRydWUKKworICB3cHQtcnVuOgorICAgIG5hbWU6IHdwdC0ke3ZhcnMuYnJvd3Nlcn0tJHt2YXJz
LmNoYW5uZWx9LSR7dmFycy5zdWl0ZX0tJHtjaHVua3MuaWR9CisgICAgb3B0aW9uczoKKyAgICAg
IGJyb3dzZXI6CisgICAgICAgIC0gJHt2YXJzLmJyb3dzZXJ9CisgICAgICBjaGFubmVsOiAke3Zh
cnMuY2hhbm5lbH0KKyAgICBjb21tYW5kOiA+LQorICAgICAgLi90b29scy9jaS90YXNrY2x1c3Rl
ci1ydW4ucHkKKyAgICAgICR7dmFycy5icm93c2VyfQorICAgICAgLS0KKyAgICAgIC0tY2hhbm5l
bD0ke3ZhcnMuY2hhbm5lbH0KKyAgICAgIC0tbG9nLXdwdHJlcG9ydD0uLi9hcnRpZmFjdHMvd3B0
X3JlcG9ydC5qc29uCisgICAgICAtLWxvZy13cHRzY3JlZW5zaG90PS4uL2FydGlmYWN0cy93cHRf
c2NyZWVuc2hvdC50eHQKKyAgICAgIC0tbm8tZmFpbC1vbi11bmV4cGVjdGVkCisgICAgICAtLXRo
aXMtY2h1bms9JHtjaHVua3MuaWR9CisgICAgICAtLXRvdGFsLWNodW5rcz0ke2NodW5rcy50b3Rh
bH0KKyAgICAgIC0tdGVzdC10eXBlPSR7dmFycy5zdWl0ZX0KKyAgdHJpZ2dlci1tYXN0ZXI6Cisg
ICAgdHJpZ2dlcjoKKyAgICAgIGJyYW5jaDoKKyAgICAgICAgLSBtYXN0ZXIKKworICB0cmlnZ2Vy
LXB1c2g6CisgICAgdHJpZ2dlcjoKKyAgICAgIGJyYW5jaDoKKyAgICAgICAgLSB0cmlnZ2Vycy8k
e3ZhcnMuYnJvd3Nlcn1fJHt2YXJzLmNoYW5uZWx9CisKKyAgdHJpZ2dlci1kYWlseToKKyAgICB0
cmlnZ2VyOgorICAgICAgYnJhbmNoOgorICAgICAgICAtIGVwb2Nocy9kYWlseQorCisgIHRyaWdn
ZXItd2Vla2x5OgorICAgIHRyaWdnZXI6CisgICAgICBicmFuY2g6CisgICAgICAgIC0gZXBvY2hz
L3dlZWtseQorCisgIHRyaWdnZXItcHI6CisgICAgdHJpZ2dlcjoKKyAgICAgIHB1bGwtcmVxdWVz
dDoKKworICBicm93c2VyLWZpcmVmb3g6CisgICAgZGVwZW5kcy1vbjoKKyAgICAgIC0gZG93bmxv
YWQtZmlyZWZveC0ke3ZhcnMuY2hhbm5lbH0KKworICBicm93c2VyLXdlYmtpdGd0a19taW5pYnJv
d3Nlcjoge30KKworICBicm93c2VyLWNocm9tZToge30KKworICB0b3gtcHl0aG9uMjoKKyAgICBl
bnY6CisgICAgICBUT1hFTlY6IHB5MjcKKyAgICAgIFBZX0NPTE9SUzogMAorCisgIHRveC1weXRo
b24zOgorICAgIGVudjoKKyAgICAgIFRPWEVOVjogcHkzNgorICAgICAgUFlfQ09MT1JTOiAwCisg
ICAgaW5zdGFsbDoKKyAgICAgIC0gcHl0aG9uMy1waXAKKworICB0ZXN0cy1hZmZlY3RlZDoKKyAg
ICBvcHRpb25zOgorICAgICAgYnJvd3NlcjoKKyAgICAgICAgLSAke3ZhcnMuYnJvd3Nlcn0KKyAg
ICAgIGNoYW5uZWw6ICR7dmFycy5jaGFubmVsfQorICAgIHNjaGVkdWxlLWlmOgorICAgICAgcnVu
LWpvYjoKKyAgICAgICAgLSBhZmZlY3RlZF90ZXN0cworCit0YXNrczoKKyAgIyBSdW4gZnVsbCBz
dWl0ZXMgb24gcHVzaAorICAtICRtYXA6CisgICAgICBmb3I6CisgICAgICAgIC0gdmFyczoKKyAg
ICAgICAgICAgIHN1aXRlOiB0ZXN0aGFybmVzcworICAgICAgICAtIHZhcnM6CisgICAgICAgICAg
ICBzdWl0ZTogcmVmdGVzdAorICAgICAgICAtIHZhcnM6CisgICAgICAgICAgICBzdWl0ZTogd2Rz
cGVjCisgICAgICBkbzoKKyAgICAgICAgJG1hcDoKKyAgICAgICAgICBmb3I6CisgICAgICAgICAg
ICAtIHZhcnM6CisgICAgICAgICAgICAgICAgYnJvd3NlcjogZmlyZWZveAorICAgICAgICAgICAg
ICAgIGNoYW5uZWw6IG5pZ2h0bHkKKyAgICAgICAgICAgICAgdXNlOgorICAgICAgICAgICAgICAg
IC0gdHJpZ2dlci1tYXN0ZXIKKyAgICAgICAgICAgICAgICAtIHRyaWdnZXItcHVzaAorICAgICAg
ICAgICAgLSB2YXJzOgorICAgICAgICAgICAgICAgIGJyb3dzZXI6IGZpcmVmb3gKKyAgICAgICAg
ICAgICAgICBjaGFubmVsOiBiZXRhCisgICAgICAgICAgICAgIHVzZToKKyAgICAgICAgICAgICAg
ICAtIHRyaWdnZXItd2Vla2x5CisgICAgICAgICAgICAgICAgLSB0cmlnZ2VyLXB1c2gKKyAgICAg
ICAgICAgIC0gdmFyczoKKyAgICAgICAgICAgICAgICBicm93c2VyOiBmaXJlZm94CisgICAgICAg
ICAgICAgICAgY2hhbm5lbDogc3RhYmxlCisgICAgICAgICAgICAgIHVzZToKKyAgICAgICAgICAg
ICAgICAtIHRyaWdnZXItZGFpbHkKKyAgICAgICAgICAgICAgICAtIHRyaWdnZXItcHVzaAorICAg
ICAgICAgICAgLSB2YXJzOgorICAgICAgICAgICAgICAgIGJyb3dzZXI6IGNocm9tZQorICAgICAg
ICAgICAgICAgIGNoYW5uZWw6IGRldgorICAgICAgICAgICAgICB1c2U6CisgICAgICAgICAgICAg
ICAgLSB0cmlnZ2VyLW1hc3RlcgorICAgICAgICAgICAgICAgIC0gdHJpZ2dlci1wdXNoCisgICAg
ICAgICAgICAtIHZhcnM6CisgICAgICAgICAgICAgICAgYnJvd3NlcjogY2hyb21lCisgICAgICAg
ICAgICAgICAgY2hhbm5lbDogYmV0YQorICAgICAgICAgICAgICB1c2U6CisgICAgICAgICAgICAg
ICAgLSB0cmlnZ2VyLXdlZWtseQorICAgICAgICAgICAgICAgIC0gdHJpZ2dlci1wdXNoCisgICAg
ICAgICAgICAtIHZhcnM6CisgICAgICAgICAgICAgICAgYnJvd3NlcjogY2hyb21lCisgICAgICAg
ICAgICAgICAgY2hhbm5lbDogc3RhYmxlCisgICAgICAgICAgICAgIHVzZToKKyAgICAgICAgICAg
ICAgICAtIHRyaWdnZXItZGFpbHkKKyAgICAgICAgICAgICAgICAtIHRyaWdnZXItcHVzaAorICAg
ICAgICAgICAgLSB2YXJzOgorICAgICAgICAgICAgICAgIGJyb3dzZXI6IHdlYmtpdGd0a19taW5p
YnJvd3NlcgorICAgICAgICAgICAgICAgIGNoYW5uZWw6IG5pZ2h0bHkKKyAgICAgICAgICAgICAg
dXNlOgorICAgICAgICAgICAgICAgIC0gdHJpZ2dlci1kYWlseQorICAgICAgICAgICAgICAgIC0g
dHJpZ2dlci1wdXNoCisgICAgICAgICAgICAtIHZhcnM6CisgICAgICAgICAgICAgICAgYnJvd3Nl
cjogd2Via2l0Z3RrX21pbmlicm93c2VyCisgICAgICAgICAgICAgICAgY2hhbm5lbDogc3RhYmxl
CisgICAgICAgICAgICAgIHVzZToKKyAgICAgICAgICAgICAgICAtIHRyaWdnZXItd2Vla2x5Cisg
ICAgICAgICAgICAgICAgLSB0cmlnZ2VyLXB1c2gKKworICAgICAgICAgIGRvOgorICAgICAgICAg
ICAgLSAke3ZhcnMuYnJvd3Nlcn0tJHt2YXJzLmNoYW5uZWx9LSR7dmFycy5zdWl0ZX06CisgICAg
ICAgICAgICAgICAgdXNlOgorICAgICAgICAgICAgICAgICAgLSB3cHQtYmFzZQorICAgICAgICAg
ICAgICAgICAgLSBydW4tb3B0aW9ucworICAgICAgICAgICAgICAgICAgLSB3cHQtcnVuCisgICAg
ICAgICAgICAgICAgICAtIGJyb3dzZXItJHt2YXJzLmJyb3dzZXJ9CisgICAgICAgICAgICAgICAg
ICAtIHdwdC0ke3ZhcnMuc3VpdGV9CisgICAgICAgICAgICAgICAgZGVzY3JpcHRpb246ID4tCisg
ICAgICAgICAgICAgICAgICBBIHN1YnNldCBvZiBXUFQncyAiJHt2YXJzLnN1aXRlfSIgdGVzdHMg
KGNodW5rIG51bWJlciAke2NodW5rcy5pZH0KKyAgICAgICAgICAgICAgICAgIG9mICR7Y2h1bmtz
LnRvdGFsfSksIHJ1biBpbiB0aGUgJHt2YXJzLmNoYW5uZWx9IHJlbGVhc2Ugb2YKKyAgICAgICAg
ICAgICAgICAgICR7dmFycy5icm93c2VyfS4KKworICAtICRtYXA6CisgICAgICBmb3I6CisgICAg
ICAgIC0gdmFyczoKKyAgICAgICAgICAgIGJyb3dzZXI6IGZpcmVmb3gKKyAgICAgICAgICAgIGNo
YW5uZWw6IG5pZ2h0bHkKKyAgICAgICAgLSB2YXJzOgorICAgICAgICAgICAgYnJvd3NlcjogY2hy
b21lCisgICAgICAgICAgICBjaGFubmVsOiBkZXYKKyAgICAgIGRvOgorICAgICAgICAtIHdwdC0k
e3ZhcnMuYnJvd3Nlcn0tJHt2YXJzLmNoYW5uZWx9LXN0YWJpbGl0eToKKyAgICAgICAgICAgIHVz
ZToKKyAgICAgICAgICAgICAgLSB3cHQtYmFzZQorICAgICAgICAgICAgICAtIHJ1bi1vcHRpb25z
CisgICAgICAgICAgICAgIC0gYnJvd3Nlci0ke3ZhcnMuYnJvd3Nlcn0KKyAgICAgICAgICAgICAg
LSB0cmlnZ2VyLXByCisgICAgICAgICAgICAgIC0gdGVzdHMtYWZmZWN0ZWQKKyAgICAgICAgICAg
IGRlc2NyaXB0aW9uOiA+LQorICAgICAgICAgICAgICBWZXJpZnkgdGhhdCBhbGwgdGVzdHMgYWZm
ZWN0ZWQgYnkgYSBwdWxsIHJlcXVlc3QgYXJlIHN0YWJsZQorICAgICAgICAgICAgICB3aGVuIGV4
ZWN1dGVkIGluICR7dmFycy5icm93c2VyfS4KKyAgICAgICAgICAgIGNvbW1hbmQ6ID4tCisgICAg
ICAgICAgICAgIC4vdG9vbHMvY2kvdGFza2NsdXN0ZXItcnVuLnB5CisgICAgICAgICAgICAgIC0t
Y29tbWl0LXJhbmdlIGJhc2VfaGVhZAorICAgICAgICAgICAgICAke3ZhcnMuYnJvd3Nlcn0KKyAg
ICAgICAgICAgICAgLS0KKyAgICAgICAgICAgICAgLS1jaGFubmVsPSR7dmFycy5jaGFubmVsfQor
ICAgICAgICAgICAgICAtLXZlcmlmeQorCisgICAgICAgIC0gd3B0LSR7dmFycy5icm93c2VyfS0k
e3ZhcnMuY2hhbm5lbH0tcmVzdWx0czoKKyAgICAgICAgICAgIHVzZToKKyAgICAgICAgICAgICAg
LSB3cHQtYmFzZQorICAgICAgICAgICAgICAtIHJ1bi1vcHRpb25zCisgICAgICAgICAgICAgIC0g
YnJvd3Nlci0ke3ZhcnMuYnJvd3Nlcn0KKyAgICAgICAgICAgICAgLSB0cmlnZ2VyLXByCisgICAg
ICAgICAgICAgIC0gdGVzdHMtYWZmZWN0ZWQKKyAgICAgICAgICAgIGRlc2NyaXB0aW9uOiA+LQor
ICAgICAgICAgICAgICBDb2xsZWN0IHJlc3VsdHMgZm9yIGFsbCB0ZXN0cyBhZmZlY3RlZCBieSBh
IHB1bGwgcmVxdWVzdCBpbgorICAgICAgICAgICAgICAke3ZhcnMuYnJvd3Nlcn0uCisgICAgICAg
ICAgICBjb21tYW5kOiA+LQorICAgICAgICAgICAgICAuL3Rvb2xzL2NpL3Rhc2tjbHVzdGVyLXJ1
bi5weQorICAgICAgICAgICAgICAtLWNvbW1pdC1yYW5nZSBiYXNlX2hlYWQKKyAgICAgICAgICAg
ICAgJHt2YXJzLmJyb3dzZXJ9CisgICAgICAgICAgICAgIC0tCisgICAgICAgICAgICAgIC0tY2hh
bm5lbD0ke3ZhcnMuY2hhbm5lbH0KKyAgICAgICAgICAgICAgLS1uby1mYWlsLW9uLXVuZXhwZWN0
ZWQKKyAgICAgICAgICAgICAgLS1sb2ctd3B0cmVwb3J0PS4uL2FydGlmYWN0cy93cHRfcmVwb3J0
Lmpzb24KKyAgICAgICAgICAgICAgLS1sb2ctd3B0c2NyZWVuc2hvdD0uLi9hcnRpZmFjdHMvd3B0
X3NjcmVlbnNob3QudHh0CisKKyAgICAgICAgLSB3cHQtJHt2YXJzLmJyb3dzZXJ9LSR7dmFycy5j
aGFubmVsfS1yZXN1bHRzLXdpdGhvdXQtY2hhbmdlczoKKyAgICAgICAgICAgIHVzZToKKyAgICAg
ICAgICAgICAgLSB3cHQtYmFzZQorICAgICAgICAgICAgICAtIHJ1bi1vcHRpb25zCisgICAgICAg
ICAgICAgIC0gYnJvd3Nlci0ke3ZhcnMuYnJvd3Nlcn0KKyAgICAgICAgICAgICAgLSB0cmlnZ2Vy
LXByCisgICAgICAgICAgICAgIC0gdGVzdHMtYWZmZWN0ZWQKKyAgICAgICAgICAgIG9wdGlvbnM6
CisgICAgICAgICAgICAgIGNoZWNrb3V0OiBiYXNlX2hlYWQKKyAgICAgICAgICAgIGRlc2NyaXB0
aW9uOiA+LQorICAgICAgICAgICAgICBDb2xsZWN0IHJlc3VsdHMgZm9yIGFsbCB0ZXN0cyBhZmZl
Y3RlZCBieSBhIHB1bGwgcmVxdWVzdCBpbgorICAgICAgICAgICAgICAke3ZhcnMuYnJvd3Nlcn0g
YnV0IHdpdGhvdXQgdGhlIGNoYW5nZXMgaW4gdGhlIFBSLgorICAgICAgICAgICAgY29tbWFuZDog
Pi0KKyAgICAgICAgICAgICAgLi90b29scy9jaS90YXNrY2x1c3Rlci1ydW4ucHkKKyAgICAgICAg
ICAgICAgLS1jb21taXQtcmFuZ2UgdGFza19oZWFkCisgICAgICAgICAgICAgICR7dmFycy5icm93
c2VyfQorICAgICAgICAgICAgICAtLQorICAgICAgICAgICAgICAtLWNoYW5uZWw9JHt2YXJzLmNo
YW5uZWx9CisgICAgICAgICAgICAgIC0tbm8tZmFpbC1vbi11bmV4cGVjdGVkCisgICAgICAgICAg
ICAgIC0tbG9nLXdwdHJlcG9ydD0uLi9hcnRpZmFjdHMvd3B0X3JlcG9ydC5qc29uCisgICAgICAg
ICAgICAgIC0tbG9nLXdwdHNjcmVlbnNob3Q9Li4vYXJ0aWZhY3RzL3dwdF9zY3JlZW5zaG90LnR4
dAorICAtICRtYXA6CisgICAgICBmb3I6CisgICAgICAgIC0gdmFyczoKKyAgICAgICAgICAgIGNo
YW5uZWw6IG5pZ2h0bHkKKyAgICAgICAgLSB2YXJzOgorICAgICAgICAgICAgY2hhbm5lbDogYmV0
YQorICAgICAgICAtIHZhcnM6CisgICAgICAgICAgICBjaGFubmVsOiBzdGFibGUKKyAgICAgIGRv
OgorICAgICAgICBkb3dubG9hZC1maXJlZm94LSR7dmFycy5jaGFubmVsfToKKyAgICAgICAgICB1
c2U6CisgICAgICAgICAgICAtIHdwdC1iYXNlCisgICAgICAgICAgY29tbWFuZDogIi4vd3B0IGlu
c3RhbGwgLS1kb3dubG9hZC1vbmx5IC0tZGVzdGluYXRpb24gL2hvbWUvdGVzdC9hcnRpZmFjdHMv
IC0tY2hhbm5lbD0ke3ZhcnMuY2hhbm5lbH0gZmlyZWZveCBicm93c2VyIgorCisgIC0gbGludDoK
KyAgICAgIHVzZToKKyAgICAgICAgLSB3cHQtYmFzZQorICAgICAgICAtIHRyaWdnZXItbWFzdGVy
CisgICAgICAgIC0gdHJpZ2dlci1wcgorICAgICAgZGVzY3JpcHRpb246ID4tCisgICAgICAgIExp
bnQgZm9yIHdwdC1zcGVjaWZpYyByZXF1aXJlbWVudHMKKyAgICAgIGNvbW1hbmQ6ICIuL3dwdCBs
aW50IC0tYWxsIgorCisgIC0gdXBkYXRlLWJ1aWx0OgorICAgICAgdXNlOgorICAgICAgICAtIHdw
dC1iYXNlCisgICAgICAgIC0gdHJpZ2dlci1wcgorICAgICAgc2NoZWR1bGUtaWY6CisgICAgICAg
IHJ1bi1qb2I6CisgICAgICAgICAgLSB1cGRhdGVfYnVpbHQKKyAgICAgIGNvbW1hbmQ6ICIuL3Rv
b2xzL2NpL2NpX2J1aWx0X2RpZmYuc2giCisKKyAgLSB0b29scy8gdW5pdHRlc3RzIChQeXRob24g
Mik6CisgICAgICB1c2U6CisgICAgICAgIC0gd3B0LWJhc2UKKyAgICAgICAgLSB0cmlnZ2VyLXBy
CisgICAgICAgIC0gdG94LXB5dGhvbjIKKyAgICAgIGRlc2NyaXB0aW9uOiA+LQorICAgICAgICBV
bml0IHRlc3RzIGZvciB0b29scyBydW5uaW5nIHVuZGVyIFB5dGhvbiAyLjcsIGV4Y2x1ZGluZyB3
cHRydW5uZXIKKyAgICAgIGNvbW1hbmQ6IC4vdG9vbHMvY2kvY2lfdG9vbHNfdW5pdHRlc3Quc2gK
KyAgICAgIGVudjoKKyAgICAgICAgSFlQT1RIRVNJU19QUk9GSUxFOiBjaQorICAgICAgc2NoZWR1
bGUtaWY6CisgICAgICAgIHJ1bi1qb2I6CisgICAgICAgICAgLSB0b29sc191bml0dGVzdAorCisg
IC0gdG9vbHMvIHVuaXR0ZXN0cyAoUHl0aG9uIDMpOgorICAgICAgZGVzY3JpcHRpb246ID4tCisg
ICAgICAgIFVuaXQgdGVzdHMgZm9yIHRvb2xzIHJ1bm5pbmcgdW5kZXIgUHl0aG9uIDMsIGV4Y2x1
ZGluZyB3cHRydW5uZXIKKyAgICAgIHVzZToKKyAgICAgICAgLSB3cHQtYmFzZQorICAgICAgICAt
IHRyaWdnZXItcHIKKyAgICAgICAgLSB0b3gtcHl0aG9uMworICAgICAgY29tbWFuZDogLi90b29s
cy9jaS9jaV90b29sc191bml0dGVzdC5zaAorICAgICAgZW52OgorICAgICAgICBIWVBPVEhFU0lT
X1BST0ZJTEU6IGNpCisgICAgICBzY2hlZHVsZS1pZjoKKyAgICAgICAgcnVuLWpvYjoKKyAgICAg
ICAgICAtIHRvb2xzX3VuaXR0ZXN0CisKKyAgLSB0b29scy93cHQvIHRlc3RzOgorICAgICAgZGVz
Y3JpcHRpb246ID4tCisgICAgICAgIEludGVncmF0aW9uIHRlc3RzIGZvciB3cHQgY29tbWFuZHMK
KyAgICAgIHVzZToKKyAgICAgICAgLSB3cHQtYmFzZQorICAgICAgICAtIHRyaWdnZXItcHIKKyAg
ICAgICAgLSB0b3gtcHl0aG9uMgorICAgICAgY29tbWFuZDogLi90b29scy9jaS9jaV93cHQuc2gK
KyAgICAgIGluc3RhbGw6CisgICAgICAgIC0gbGlibnNzMy10b29scworICAgICAgb3B0aW9uczoK
KyAgICAgICAgb29tLWtpbGxlcjogdHJ1ZQorICAgICAgICBicm93c2VyOgorICAgICAgICAgIC0g
ZmlyZWZveAorICAgICAgICAgIC0gY2hyb21lCisgICAgICAgIGNoYW5uZWw6IGV4cGVyaW1lbnRh
bAorICAgICAgICB4dmZiOiB0cnVlCisgICAgICAgIGhvc3RzOiB0cnVlCisgICAgICBzY2hlZHVs
ZS1pZjoKKyAgICAgICAgcnVuLWpvYjoKKyAgICAgICAgICAtIHdwdF9pbnRlZ3JhdGlvbgorCisg
IC0gcmVzb3VyY2VzLyB0ZXN0czoKKyAgICAgIGRlc2NyaXB0aW9uOiA+LQorICAgICAgICBUZXN0
cyBmb3IgdGVzdGhhcm5lc3MuanMgYW5kIG90aGVyIGZpbGVzIGluIHJlc291cmNlcy8KKyAgICAg
IHVzZToKKyAgICAgICAgLSB3cHQtYmFzZQorICAgICAgICAtIHRyaWdnZXItcHIKKyAgICAgICAg
LSB0b3gtcHl0aG9uMgorICAgICAgY29tbWFuZDogLi90b29scy9jaS9jaV9yZXNvdXJjZXNfdW5p
dHRlc3Quc2gKKyAgICAgIG9wdGlvbnM6CisgICAgICAgIGJyb3dzZXI6CisgICAgICAgICAgLSBm
aXJlZm94CisgICAgICAgIHh2ZmI6IHRydWUKKyAgICAgICAgaG9zdHM6IHRydWUKKyAgICAgIHNj
aGVkdWxlLWlmOgorICAgICAgICBydW4tam9iOgorICAgICAgICAgIC0gcmVzb3VyY2VzX3VuaXR0
ZXN0CisKKyAgLSBpbmZyYXN0cnVjdHVyZS8gdGVzdHM6CisgICAgICBkZXNjcmlwdGlvbjogPi0K
KyAgICAgICAgU21va2V0ZXN0cyBmb3Igd3B0cnVubmVyCisgICAgICB1c2U6CisgICAgICAgIC0g
d3B0LWJhc2UKKyAgICAgICAgLSB0cmlnZ2VyLXByCisgICAgICAgIC0gdG94LXB5dGhvbjIKKyAg
ICAgIGNvbW1hbmQ6IC4vdG9vbHMvY2kvY2lfd3B0cnVubmVyX2luZnJhc3RydWN0dXJlLnNoCisg
ICAgICBpbnN0YWxsOgorICAgICAgICAtIGxpYm5zczMtdG9vbHMKKyAgICAgICAgLSBsaWJhcHBp
bmRpY2F0b3IxCisgICAgICAgIC0gZm9udHMtbGliZXJhdGlvbgorICAgICAgb3B0aW9uczoKKyAg
ICAgICAgb29tLWtpbGxlcjogdHJ1ZQorICAgICAgICBicm93c2VyOgorICAgICAgICAgIC0gZmly
ZWZveAorICAgICAgICAgIC0gY2hyb21lCisgICAgICAgIGNoYW5uZWw6IGV4cGVyaW1lbnRhbAor
ICAgICAgICB4dmZiOiB0cnVlCisgICAgICAgIGhvc3RzOiBmYWxzZQorICAgICAgc2NoZWR1bGUt
aWY6CisgICAgICAgIHJ1bi1qb2I6CisgICAgICAgICAgLSB3cHRydW5uZXJfaW5mcmFzdHJ1Y3R1
cmUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvY2kvdGMvdGFza3MvdzNjLWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2NpL3RjL3Rhc2tzL3czYy1pbXBvcnQubG9n
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi43ZDIzYzI1MWI2OQotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvY2kvdGMvdGFza3MvdzNjLWltcG9ydC5sb2cKQEAgLTAsMCArMSwxNyBAQAorVGhl
IHRlc3RzIGluIHRoaXMgZGlyZWN0b3J5IHdlcmUgaW1wb3J0ZWQgZnJvbSB0aGUgVzNDIHJlcG9z
aXRvcnkuCitEbyBOT1QgbW9kaWZ5IHRoZXNlIHRlc3RzIGRpcmVjdGx5IGluIFdlYktpdC4KK0lu
c3RlYWQsIGNyZWF0ZSBhIHB1bGwgcmVxdWVzdCBvbiB0aGUgV1BUIGdpdGh1YjoKKwlodHRwczov
L2dpdGh1Yi5jb20vd2ViLXBsYXRmb3JtLXRlc3RzL3dwdAorCitUaGVuIHJ1biB0aGUgVG9vbHMv
U2NyaXB0cy9pbXBvcnQtdzNjLXRlc3RzIGluIFdlYktpdCB0byByZWltcG9ydAorCitEbyBOT1Qg
bW9kaWZ5IG9yIHJlbW92ZSB0aGlzIGZpbGUuCisKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorUHJvcGVydGll
cyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgorTm9uZQorUHJvcGVydHkgdmFsdWVzIHJlcXVp
cmluZyB2ZW5kb3IgcHJlZml4ZXM6CitOb25lCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK0xpc3Qgb2YgZmls
ZXM6CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9j
aS90Yy90YXNrcy90ZXN0LnltbApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9jaS90Yy90ZXN0ZGF0YS9lcG9jaHNfZGFpbHlfcHVz
aF9ldmVudC5qc29uIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy9jaS90Yy90ZXN0ZGF0YS9lcG9jaHNfZGFpbHlfcHVzaF9ldmVudC5qc29uCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi4wZjc0YzMxNWQyMwotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvY2kvdGMvdGVzdGRhdGEvZXBvY2hzX2RhaWx5X3B1c2hfZXZlbnQuanNvbgpAQCAtMCwwICsx
LDQ2MCBAQAoreworICAicmVmIjogInJlZnMvaGVhZHMvZXBvY2hzL2RhaWx5IiwKKyAgImJlZm9y
ZSI6ICIyMGJiMWNhNWRiNTE5ZWU1ZDM3ZWNlNjQ5Mjg2OGY4YTZiNjVhMmU3IiwKKyAgImFmdGVy
IjogIjVkZjU2YjI1ZTFjYjgxZjgxZmUxNmM4OGJlODM5ZjlmZDUzOGI0MWUiLAorICAicmVwb3Np
dG9yeSI6IHsKKyAgICAiaWQiOiAzNjE4MTMzLAorICAgICJub2RlX2lkIjogIk1ERXdPbEpsY0c5
emFYUnZjbmt6TmpFNE1UTXoiLAorICAgICJuYW1lIjogIndwdCIsCisgICAgImZ1bGxfbmFtZSI6
ICJ3ZWItcGxhdGZvcm0tdGVzdHMvd3B0IiwKKyAgICAicHJpdmF0ZSI6IGZhbHNlLAorICAgICJv
d25lciI6IHsKKyAgICAgICJuYW1lIjogIndlYi1wbGF0Zm9ybS10ZXN0cyIsCisgICAgICAiZW1h
aWwiOiBudWxsLAorICAgICAgImxvZ2luIjogIndlYi1wbGF0Zm9ybS10ZXN0cyIsCisgICAgICAi
aWQiOiAzNzIyNjIzMywKKyAgICAgICJub2RlX2lkIjogIk1ERXlPazl5WjJGdWFYcGhkR2x2YmpN
M01qSTJNak16IiwKKyAgICAgICJhdmF0YXJfdXJsIjogImh0dHBzOi8vYXZhdGFyczAuZ2l0aHVi
dXNlcmNvbnRlbnQuY29tL3UvMzcyMjYyMzM/dj00IiwKKyAgICAgICJncmF2YXRhcl9pZCI6ICIi
LAorICAgICAgInVybCI6ICJodHRwczovL2FwaS5naXRodWIuY29tL3VzZXJzL3dlYi1wbGF0Zm9y
bS10ZXN0cyIsCisgICAgICAiaHRtbF91cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0
Zm9ybS10ZXN0cyIsCisgICAgICAiZm9sbG93ZXJzX3VybCI6ICJodHRwczovL2FwaS5naXRodWIu
Y29tL3VzZXJzL3dlYi1wbGF0Zm9ybS10ZXN0cy9mb2xsb3dlcnMiLAorICAgICAgImZvbGxvd2lu
Z191cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS91c2Vycy93ZWItcGxhdGZvcm0tdGVzdHMv
Zm9sbG93aW5ney9vdGhlcl91c2VyfSIsCisgICAgICAiZ2lzdHNfdXJsIjogImh0dHBzOi8vYXBp
LmdpdGh1Yi5jb20vdXNlcnMvd2ViLXBsYXRmb3JtLXRlc3RzL2dpc3Rzey9naXN0X2lkfSIsCisg
ICAgICAic3RhcnJlZF91cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS91c2Vycy93ZWItcGxh
dGZvcm0tdGVzdHMvc3RhcnJlZHsvb3duZXJ9ey9yZXBvfSIsCisgICAgICAic3Vic2NyaXB0aW9u
c191cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS91c2Vycy93ZWItcGxhdGZvcm0tdGVzdHMv
c3Vic2NyaXB0aW9ucyIsCisgICAgICAib3JnYW5pemF0aW9uc191cmwiOiAiaHR0cHM6Ly9hcGku
Z2l0aHViLmNvbS91c2Vycy93ZWItcGxhdGZvcm0tdGVzdHMvb3JncyIsCisgICAgICAicmVwb3Nf
dXJsIjogImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vdXNlcnMvd2ViLXBsYXRmb3JtLXRlc3RzL3Jl
cG9zIiwKKyAgICAgICJldmVudHNfdXJsIjogImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vdXNlcnMv
d2ViLXBsYXRmb3JtLXRlc3RzL2V2ZW50c3svcHJpdmFjeX0iLAorICAgICAgInJlY2VpdmVkX2V2
ZW50c191cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS91c2Vycy93ZWItcGxhdGZvcm0tdGVz
dHMvcmVjZWl2ZWRfZXZlbnRzIiwKKyAgICAgICJ0eXBlIjogIk9yZ2FuaXphdGlvbiIsCisgICAg
ICAic2l0ZV9hZG1pbiI6IGZhbHNlCisgICAgfSwKKyAgICAiaHRtbF91cmwiOiAiaHR0cHM6Ly9n
aXRodWIuY29tL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQiLAorICAgICJkZXNjcmlwdGlvbiI6ICJU
ZXN0IHN1aXRlcyBmb3IgV2ViIHBsYXRmb3JtIHNwZWNzIOKAlCBpbmNsdWRpbmcgV0hBVFdHLCBX
M0MsIGFuZCBvdGhlcnMiLAorICAgICJmb3JrIjogZmFsc2UsCisgICAgInVybCI6ICJodHRwczov
L2dpdGh1Yi5jb20vd2ViLXBsYXRmb3JtLXRlc3RzL3dwdCIsCisgICAgImZvcmtzX3VybCI6ICJo
dHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQvZm9ya3Mi
LAorICAgICJrZXlzX3VybCI6ICJodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zL3dlYi1wbGF0
Zm9ybS10ZXN0cy93cHQva2V5c3sva2V5X2lkfSIsCisgICAgImNvbGxhYm9yYXRvcnNfdXJsIjog
Imh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dwdC9jb2xs
YWJvcmF0b3Jzey9jb2xsYWJvcmF0b3J9IiwKKyAgICAidGVhbXNfdXJsIjogImh0dHBzOi8vYXBp
LmdpdGh1Yi5jb20vcmVwb3Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dwdC90ZWFtcyIsCisgICAgImhv
b2tzX3VybCI6ICJodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zL3dlYi1wbGF0Zm9ybS10ZXN0
cy93cHQvaG9va3MiLAorICAgICJpc3N1ZV9ldmVudHNfdXJsIjogImh0dHBzOi8vYXBpLmdpdGh1
Yi5jb20vcmVwb3Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dwdC9pc3N1ZXMvZXZlbnRzey9udW1iZXJ9
IiwKKyAgICAiZXZlbnRzX3VybCI6ICJodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zL3dlYi1w
bGF0Zm9ybS10ZXN0cy93cHQvZXZlbnRzIiwKKyAgICAiYXNzaWduZWVzX3VybCI6ICJodHRwczov
L2FwaS5naXRodWIuY29tL3JlcG9zL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQvYXNzaWduZWVzey91
c2VyfSIsCisgICAgImJyYW5jaGVzX3VybCI6ICJodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9z
L3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQvYnJhbmNoZXN7L2JyYW5jaH0iLAorICAgICJ0YWdzX3Vy
bCI6ICJodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQv
dGFncyIsCisgICAgImJsb2JzX3VybCI6ICJodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zL3dl
Yi1wbGF0Zm9ybS10ZXN0cy93cHQvZ2l0L2Jsb2Jzey9zaGF9IiwKKyAgICAiZ2l0X3RhZ3NfdXJs
IjogImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dwdC9n
aXQvdGFnc3svc2hhfSIsCisgICAgImdpdF9yZWZzX3VybCI6ICJodHRwczovL2FwaS5naXRodWIu
Y29tL3JlcG9zL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQvZ2l0L3JlZnN7L3NoYX0iLAorICAgICJ0
cmVlc191cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy93ZWItcGxhdGZvcm0tdGVz
dHMvd3B0L2dpdC90cmVlc3svc2hhfSIsCisgICAgInN0YXR1c2VzX3VybCI6ICJodHRwczovL2Fw
aS5naXRodWIuY29tL3JlcG9zL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQvc3RhdHVzZXMve3NoYX0i
LAorICAgICJsYW5ndWFnZXNfdXJsIjogImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3dwdC9sYW5ndWFnZXMiLAorICAgICJzdGFyZ2F6ZXJzX3VybCI6ICJo
dHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQvc3Rhcmdh
emVycyIsCisgICAgImNvbnRyaWJ1dG9yc191cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9y
ZXBvcy93ZWItcGxhdGZvcm0tdGVzdHMvd3B0L2NvbnRyaWJ1dG9ycyIsCisgICAgInN1YnNjcmli
ZXJzX3VybCI6ICJodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zL3dlYi1wbGF0Zm9ybS10ZXN0
cy93cHQvc3Vic2NyaWJlcnMiLAorICAgICJzdWJzY3JpcHRpb25fdXJsIjogImh0dHBzOi8vYXBp
LmdpdGh1Yi5jb20vcmVwb3Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dwdC9zdWJzY3JpcHRpb24iLAor
ICAgICJjb21taXRzX3VybCI6ICJodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zL3dlYi1wbGF0
Zm9ybS10ZXN0cy93cHQvY29tbWl0c3svc2hhfSIsCisgICAgImdpdF9jb21taXRzX3VybCI6ICJo
dHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQvZ2l0L2Nv
bW1pdHN7L3NoYX0iLAorICAgICJjb21tZW50c191cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNv
bS9yZXBvcy93ZWItcGxhdGZvcm0tdGVzdHMvd3B0L2NvbW1lbnRzey9udW1iZXJ9IiwKKyAgICAi
aXNzdWVfY29tbWVudF91cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy93ZWItcGxh
dGZvcm0tdGVzdHMvd3B0L2lzc3Vlcy9jb21tZW50c3svbnVtYmVyfSIsCisgICAgImNvbnRlbnRz
X3VybCI6ICJodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zL3dlYi1wbGF0Zm9ybS10ZXN0cy93
cHQvY29udGVudHMveytwYXRofSIsCisgICAgImNvbXBhcmVfdXJsIjogImh0dHBzOi8vYXBpLmdp
dGh1Yi5jb20vcmVwb3Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dwdC9jb21wYXJlL3tiYXNlfS4uLnto
ZWFkfSIsCisgICAgIm1lcmdlc191cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy93
ZWItcGxhdGZvcm0tdGVzdHMvd3B0L21lcmdlcyIsCisgICAgImFyY2hpdmVfdXJsIjogImh0dHBz
Oi8vYXBpLmdpdGh1Yi5jb20vcmVwb3Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dwdC97YXJjaGl2ZV9m
b3JtYXR9ey9yZWZ9IiwKKyAgICAiZG93bmxvYWRzX3VybCI6ICJodHRwczovL2FwaS5naXRodWIu
Y29tL3JlcG9zL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQvZG93bmxvYWRzIiwKKyAgICAiaXNzdWVz
X3VybCI6ICJodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zL3dlYi1wbGF0Zm9ybS10ZXN0cy93
cHQvaXNzdWVzey9udW1iZXJ9IiwKKyAgICAicHVsbHNfdXJsIjogImh0dHBzOi8vYXBpLmdpdGh1
Yi5jb20vcmVwb3Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dwdC9wdWxsc3svbnVtYmVyfSIsCisgICAg
Im1pbGVzdG9uZXNfdXJsIjogImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3dwdC9taWxlc3RvbmVzey9udW1iZXJ9IiwKKyAgICAibm90aWZpY2F0aW9uc191
cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy93ZWItcGxhdGZvcm0tdGVzdHMvd3B0
L25vdGlmaWNhdGlvbnN7P3NpbmNlLGFsbCxwYXJ0aWNpcGF0aW5nfSIsCisgICAgImxhYmVsc191
cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy93ZWItcGxhdGZvcm0tdGVzdHMvd3B0
L2xhYmVsc3svbmFtZX0iLAorICAgICJyZWxlYXNlc191cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHVi
LmNvbS9yZXBvcy93ZWItcGxhdGZvcm0tdGVzdHMvd3B0L3JlbGVhc2Vzey9pZH0iLAorICAgICJk
ZXBsb3ltZW50c191cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy93ZWItcGxhdGZv
cm0tdGVzdHMvd3B0L2RlcGxveW1lbnRzIiwKKyAgICAiY3JlYXRlZF9hdCI6IDEzMzA4NjU4OTEs
CisgICAgInVwZGF0ZWRfYXQiOiAiMjAxOS0xMS0zMFQyMTozNDozMFoiLAorICAgICJwdXNoZWRf
YXQiOiAxNTc1MTYwNjEwLAorICAgICJnaXRfdXJsIjogImdpdDovL2dpdGh1Yi5jb20vd2ViLXBs
YXRmb3JtLXRlc3RzL3dwdC5naXQiLAorICAgICJzc2hfdXJsIjogImdpdEBnaXRodWIuY29tOndl
Yi1wbGF0Zm9ybS10ZXN0cy93cHQuZ2l0IiwKKyAgICAiY2xvbmVfdXJsIjogImh0dHBzOi8vZ2l0
aHViLmNvbS93ZWItcGxhdGZvcm0tdGVzdHMvd3B0LmdpdCIsCisgICAgInN2bl91cmwiOiAiaHR0
cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQiLAorICAgICJob21lcGFnZSI6
ICJodHRwczovL3dlYi1wbGF0Zm9ybS10ZXN0cy5vcmcvIiwKKyAgICAic2l6ZSI6IDMyOTQ2NSwK
KyAgICAic3RhcmdhemVyc19jb3VudCI6IDI1NDMsCisgICAgIndhdGNoZXJzX2NvdW50IjogMjU0
MywKKyAgICAibGFuZ3VhZ2UiOiAiSFRNTCIsCisgICAgImhhc19pc3N1ZXMiOiB0cnVlLAorICAg
ICJoYXNfcHJvamVjdHMiOiB0cnVlLAorICAgICJoYXNfZG93bmxvYWRzIjogdHJ1ZSwKKyAgICAi
aGFzX3dpa2kiOiB0cnVlLAorICAgICJoYXNfcGFnZXMiOiB0cnVlLAorICAgICJmb3Jrc19jb3Vu
dCI6IDE4MzgsCisgICAgIm1pcnJvcl91cmwiOiBudWxsLAorICAgICJhcmNoaXZlZCI6IGZhbHNl
LAorICAgICJkaXNhYmxlZCI6IGZhbHNlLAorICAgICJvcGVuX2lzc3Vlc19jb3VudCI6IDE1OTAs
CisgICAgImxpY2Vuc2UiOiB7CisgICAgICAia2V5IjogIm90aGVyIiwKKyAgICAgICJuYW1lIjog
Ik90aGVyIiwKKyAgICAgICJzcGR4X2lkIjogIk5PQVNTRVJUSU9OIiwKKyAgICAgICJ1cmwiOiBu
dWxsLAorICAgICAgIm5vZGVfaWQiOiAiTURjNlRHbGpaVzV6WlRBPSIKKyAgICB9LAorICAgICJm
b3JrcyI6IDE4MzgsCisgICAgIm9wZW5faXNzdWVzIjogMTU5MCwKKyAgICAid2F0Y2hlcnMiOiAy
NTQzLAorICAgICJkZWZhdWx0X2JyYW5jaCI6ICJtYXN0ZXIiLAorICAgICJzdGFyZ2F6ZXJzIjog
MjU0MywKKyAgICAibWFzdGVyX2JyYW5jaCI6ICJtYXN0ZXIiLAorICAgICJvcmdhbml6YXRpb24i
OiAid2ViLXBsYXRmb3JtLXRlc3RzIgorICB9LAorICAicHVzaGVyIjogeworICAgICJuYW1lIjog
ImdpdGh1Yi1hY3Rpb25zW2JvdF0iLAorICAgICJlbWFpbCI6IG51bGwKKyAgfSwKKyAgIm9yZ2Fu
aXphdGlvbiI6IHsKKyAgICAibG9naW4iOiAid2ViLXBsYXRmb3JtLXRlc3RzIiwKKyAgICAiaWQi
OiAzNzIyNjIzMywKKyAgICAibm9kZV9pZCI6ICJNREV5T2s5eVoyRnVhWHBoZEdsdmJqTTNNakky
TWpNeiIsCisgICAgInVybCI6ICJodHRwczovL2FwaS5naXRodWIuY29tL29yZ3Mvd2ViLXBsYXRm
b3JtLXRlc3RzIiwKKyAgICAicmVwb3NfdXJsIjogImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vb3Jn
cy93ZWItcGxhdGZvcm0tdGVzdHMvcmVwb3MiLAorICAgICJldmVudHNfdXJsIjogImh0dHBzOi8v
YXBpLmdpdGh1Yi5jb20vb3Jncy93ZWItcGxhdGZvcm0tdGVzdHMvZXZlbnRzIiwKKyAgICAiaG9v
a3NfdXJsIjogImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vb3Jncy93ZWItcGxhdGZvcm0tdGVzdHMv
aG9va3MiLAorICAgICJpc3N1ZXNfdXJsIjogImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vb3Jncy93
ZWItcGxhdGZvcm0tdGVzdHMvaXNzdWVzIiwKKyAgICAibWVtYmVyc191cmwiOiAiaHR0cHM6Ly9h
cGkuZ2l0aHViLmNvbS9vcmdzL3dlYi1wbGF0Zm9ybS10ZXN0cy9tZW1iZXJzey9tZW1iZXJ9IiwK
KyAgICAicHVibGljX21lbWJlcnNfdXJsIjogImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vb3Jncy93
ZWItcGxhdGZvcm0tdGVzdHMvcHVibGljX21lbWJlcnN7L21lbWJlcn0iLAorICAgICJhdmF0YXJf
dXJsIjogImh0dHBzOi8vYXZhdGFyczAuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMzcyMjYyMzM/
dj00IiwKKyAgICAiZGVzY3JpcHRpb24iOiAiIgorICB9LAorICAic2VuZGVyIjogeworICAgICJs
b2dpbiI6ICJnaXRodWItYWN0aW9uc1tib3RdIiwKKyAgICAiaWQiOiA0MTg5ODI4MiwKKyAgICAi
bm9kZV9pZCI6ICJNRE02UW05ME5ERTRPVGd5T0RJPSIsCisgICAgImF2YXRhcl91cmwiOiAiaHR0
cHM6Ly9hdmF0YXJzMi5naXRodWJ1c2VyY29udGVudC5jb20vaW4vMTUzNjg/dj00IiwKKyAgICAi
Z3JhdmF0YXJfaWQiOiAiIiwKKyAgICAidXJsIjogImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vdXNl
cnMvZ2l0aHViLWFjdGlvbnMlNUJib3QlNUQiLAorICAgICJodG1sX3VybCI6ICJodHRwczovL2dp
dGh1Yi5jb20vYXBwcy9naXRodWItYWN0aW9ucyIsCisgICAgImZvbGxvd2Vyc191cmwiOiAiaHR0
cHM6Ly9hcGkuZ2l0aHViLmNvbS91c2Vycy9naXRodWItYWN0aW9ucyU1QmJvdCU1RC9mb2xsb3dl
cnMiLAorICAgICJmb2xsb3dpbmdfdXJsIjogImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vdXNlcnMv
Z2l0aHViLWFjdGlvbnMlNUJib3QlNUQvZm9sbG93aW5ney9vdGhlcl91c2VyfSIsCisgICAgImdp
c3RzX3VybCI6ICJodHRwczovL2FwaS5naXRodWIuY29tL3VzZXJzL2dpdGh1Yi1hY3Rpb25zJTVC
Ym90JTVEL2dpc3Rzey9naXN0X2lkfSIsCisgICAgInN0YXJyZWRfdXJsIjogImh0dHBzOi8vYXBp
LmdpdGh1Yi5jb20vdXNlcnMvZ2l0aHViLWFjdGlvbnMlNUJib3QlNUQvc3RhcnJlZHsvb3duZXJ9
ey9yZXBvfSIsCisgICAgInN1YnNjcmlwdGlvbnNfdXJsIjogImh0dHBzOi8vYXBpLmdpdGh1Yi5j
b20vdXNlcnMvZ2l0aHViLWFjdGlvbnMlNUJib3QlNUQvc3Vic2NyaXB0aW9ucyIsCisgICAgIm9y
Z2FuaXphdGlvbnNfdXJsIjogImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vdXNlcnMvZ2l0aHViLWFj
dGlvbnMlNUJib3QlNUQvb3JncyIsCisgICAgInJlcG9zX3VybCI6ICJodHRwczovL2FwaS5naXRo
dWIuY29tL3VzZXJzL2dpdGh1Yi1hY3Rpb25zJTVCYm90JTVEL3JlcG9zIiwKKyAgICAiZXZlbnRz
X3VybCI6ICJodHRwczovL2FwaS5naXRodWIuY29tL3VzZXJzL2dpdGh1Yi1hY3Rpb25zJTVCYm90
JTVEL2V2ZW50c3svcHJpdmFjeX0iLAorICAgICJyZWNlaXZlZF9ldmVudHNfdXJsIjogImh0dHBz
Oi8vYXBpLmdpdGh1Yi5jb20vdXNlcnMvZ2l0aHViLWFjdGlvbnMlNUJib3QlNUQvcmVjZWl2ZWRf
ZXZlbnRzIiwKKyAgICAidHlwZSI6ICJCb3QiLAorICAgICJzaXRlX2FkbWluIjogZmFsc2UKKyAg
fSwKKyAgImNyZWF0ZWQiOiBmYWxzZSwKKyAgImRlbGV0ZWQiOiBmYWxzZSwKKyAgImZvcmNlZCI6
IGZhbHNlLAorICAiYmFzZV9yZWYiOiAicmVmcy9oZWFkcy9lcG9jaHMvc2l4X2hvdXJseSIsCisg
ICJjb21wYXJlIjogImh0dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxhdGZvcm0tdGVzdHMvd3B0L2Nv
bXBhcmUvMjBiYjFjYTVkYjUxLi4uNWRmNTZiMjVlMWNiIiwKKyAgImNvbW1pdHMiOiBbCisgICAg
eworICAgICAgImlkIjogIjM1MDNjNTBhNjQ1MmUxNTNiZGU5MDZhOWM2NjQ0Y2I2MjM3MjI0ZmMi
LAorICAgICAgInRyZWVfaWQiOiAiYjczNWZhMGFlODhlYmUwYWJkNjc2NGExYWZkNjNhZWE4MTVh
YzE4ZSIsCisgICAgICAiZGlzdGluY3QiOiBmYWxzZSwKKyAgICAgICJtZXNzYWdlIjogIltMYXlv
dXROR10gUGl4ZWwtc25hcCBjb2x1bW4gcnVsZXMuXG5cbkJ1ZzogODI5MDI4XG5DaGFuZ2UtSWQ6
IEkyNTI5MDExMDk1MDIyNTZmMTRiYzY4ZTY0ZDQzMDMwMDZkYjUwYTEzXG5SZXZpZXdlZC1vbjog
aHR0cHM6Ly9jaHJvbWl1bS1yZXZpZXcuZ29vZ2xlc291cmNlLmNvbS9jL2Nocm9taXVtL3NyYy8r
LzE5NDQzNTBcbkNvbW1pdC1RdWV1ZTogWGlhbnpodSBXYW5nIDx3YW5neGlhbnpodUBjaHJvbWl1
bS5vcmc+XG5SZXZpZXdlZC1ieTogWGlhbnpodSBXYW5nIDx3YW5neGlhbnpodUBjaHJvbWl1bS5v
cmc+XG5Dci1Db21taXQtUG9zaXRpb246IHJlZnMvaGVhZHMvbWFzdGVyQHsjNzIwMzAyfSIsCisg
ICAgICAidGltZXN0YW1wIjogIjIwMTktMTEtMjlUMTY6MjU6NDQtMDg6MDAiLAorICAgICAgInVy
bCI6ICJodHRwczovL2dpdGh1Yi5jb20vd2ViLXBsYXRmb3JtLXRlc3RzL3dwdC9jb21taXQvMzUw
M2M1MGE2NDUyZTE1M2JkZTkwNmE5YzY2NDRjYjYyMzcyMjRmYyIsCisgICAgICAiYXV0aG9yIjog
eworICAgICAgICAibmFtZSI6ICJNb3J0ZW4gU3RlbnNob3JuZSIsCisgICAgICAgICJlbWFpbCI6
ICJtc3RlbnNob0BjaHJvbWl1bS5vcmciLAorICAgICAgICAidXNlcm5hbWUiOiAibXN0ZW5zaG8i
CisgICAgICB9LAorICAgICAgImNvbW1pdHRlciI6IHsKKyAgICAgICAgIm5hbWUiOiAiQmxpbmsg
V1BUIEJvdCIsCisgICAgICAgICJlbWFpbCI6ICJibGluay13M2MtdGVzdC1hdXRvcm9sbGVyQGNo
cm9taXVtLm9yZyIsCisgICAgICAgICJ1c2VybmFtZSI6ICJjaHJvbWl1bS13cHQtZXhwb3J0LWJv
dCIKKyAgICAgIH0sCisgICAgICAiYWRkZWQiOiBbCisgICAgICAgICJjc3MvY3NzLW11bHRpY29s
L2VxdWFsLWdhcC1hbmQtcnVsZS5odG1sIgorICAgICAgXSwKKyAgICAgICJyZW1vdmVkIjogWwor
CisgICAgICBdLAorICAgICAgIm1vZGlmaWVkIjogWworCisgICAgICBdCisgICAgfSwKKyAgICB7
CisgICAgICAiaWQiOiAiNTYxYjc2NTMwOGU2ZDE4ODYxOGYzYmE3MzA5MWJiNTk4ZDgzNTdjZSIs
CisgICAgICAidHJlZV9pZCI6ICI3NzVhYzQ0ODFjMDNlMDIwODE5OTEwZDAzMDE5ZjBlYzkzZGVm
ODY4IiwKKyAgICAgICJkaXN0aW5jdCI6IGZhbHNlLAorICAgICAgIm1lc3NhZ2UiOiAiRml4IHBh
cnNlciBtWFNTIHNhbml0aXplciBieXBhc3MgZm9yIDxwPiBhbmQgPGJyPiB3aXRoaW4gZm9yZWln
biBjb250ZXh0XG5cblByaW9yIHRvIHRoaXMgQ0wsIHRoZSBmb2xsb3dpbmcgY29kZTpcbiA8c3Zn
PjwvcD48L3N2Zz5cbnBhcnNlZCB0byB0aGlzIGlubmVySFRNTDogPHN2Zz48cD48L3A+PC9zdmc+
XG5cblRoaXMgaXMgaW4gY29udHJhc3QgdG8gdGhpcyBjb2RlOlxuIDxzdmc+PHA+PC9zdmc+XG53
aGljaCBwYXJzZXMgdG8gPHN2Zz48L3N2Zz48cD48L3A+XG5cblRoZSBmYWN0IHRoYXQgdGhlIDwv
cD4gaXMgbGVmdCBpbnNpZGUgdGhlIDxzdmc+IGFsbG93ZWQgc2FuaXRpemVyXG5ieXBhc3NlcyBh
cyBkZXRhaWxlZCBpbiBbMV0uIFBsZWFzZSBhbHNvIHNlZSBbMl0gZm9yIHRoZSBzcGVjXG5kaXNj
dXNzaW9uLlxuXG5XaXRoIHRoaXMgQ0wsIDwvcD4gYW5kIDwvYnI+IHdpdGhpbiBhIGZvcmVpZ24g
Y29udGV4dCBub3cgY2F1c2VcbnRoZSBjbG9zaW5nIG9mIHRoZSBmb3JlaWduIGNvbnRleHQuXG5c
blsxXSBodHRwczovL3Jlc2VhcmNoLnNlY3VyaXR1bS5jb20vZG9tcHVyaWZ5LWJ5cGFzcy11c2lu
Zy1teHNzL1xuWzJdIGh0dHBzOi8vZ2l0aHViLmNvbS93aGF0d2cvaHRtbC9pc3N1ZXMvNTExM1xu
XG5CdWc6IDEwMDU3MTNcbkNoYW5nZS1JZDogSWMwN2VlNTBkZTRlYjFlZjE5YjczYTA3NWJkODM3
ODVjOTlmNGY4OTFcblJldmlld2VkLW9uOiBodHRwczovL2Nocm9taXVtLXJldmlldy5nb29nbGVz
b3VyY2UuY29tL2MvY2hyb21pdW0vc3JjLysvMTk0MDcyMlxuUmV2aWV3ZWQtYnk6IEtvdWhlaSBV
ZW5vIDxrb3VoZWlAY2hyb21pdW0ub3JnPlxuQ29tbWl0LVF1ZXVlOiBNYXNvbiBGcmVlZCA8bWFz
b25mcmVlZEBjaHJvbWl1bS5vcmc+XG5Dci1Db21taXQtUG9zaXRpb246IHJlZnMvaGVhZHMvbWFz
dGVyQHsjNzIwMzE1fSIsCisgICAgICAidGltZXN0YW1wIjogIjIwMTktMTEtMzBUMDA6MjI6Mjkt
MDg6MDAiLAorICAgICAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vd2ViLXBsYXRmb3JtLXRl
c3RzL3dwdC9jb21taXQvNTYxYjc2NTMwOGU2ZDE4ODYxOGYzYmE3MzA5MWJiNTk4ZDgzNTdjZSIs
CisgICAgICAiYXV0aG9yIjogeworICAgICAgICAibmFtZSI6ICJNYXNvbiBGcmVlZCIsCisgICAg
ICAgICJlbWFpbCI6ICJtYXNvbmZyZWVkQGNocm9taXVtLm9yZyIsCisgICAgICAgICJ1c2VybmFt
ZSI6ICJtZnJlZWQ3IgorICAgICAgfSwKKyAgICAgICJjb21taXR0ZXIiOiB7CisgICAgICAgICJu
YW1lIjogIkJsaW5rIFdQVCBCb3QiLAorICAgICAgICAiZW1haWwiOiAiYmxpbmstdzNjLXRlc3Qt
YXV0b3JvbGxlckBjaHJvbWl1bS5vcmciLAorICAgICAgICAidXNlcm5hbWUiOiAiY2hyb21pdW0t
d3B0LWV4cG9ydC1ib3QiCisgICAgICB9LAorICAgICAgImFkZGVkIjogWworICAgICAgICAiaHRt
bC9zeW50YXgvcGFyc2luZy9odG1sX2NvbnRlbnRfaW5fZm9yZWlnbl9jb250ZXh0Lmh0bWwiCisg
ICAgICBdLAorICAgICAgInJlbW92ZWQiOiBbCisKKyAgICAgIF0sCisgICAgICAibW9kaWZpZWQi
OiBbCisKKyAgICAgIF0KKyAgICB9LAorICAgIHsKKyAgICAgICJpZCI6ICJkMzE4MDAxODVkYWI4
ZTE5NDI5NDYyMGM4YWQ2YmY0MGYyNWJmNzUyIiwKKyAgICAgICJ0cmVlX2lkIjogImM3MThhOTEz
ZTlhNTE5N2UxODk2ZjViMmVlMDQzNGY4OTZkNjcyNWIiLAorICAgICAgImRpc3RpbmN0IjogZmFs
c2UsCisgICAgICAibWVzc2FnZSI6ICJbY3NzLXRleHQtNF0gdGVzdHMgZm9yIHdvcmQtYm91bmRh
cnktZXhwYW5zaW9uXG5cbmh0dHBzOi8vZHJhZnRzLmNzc3dnLm9yZy9jc3MtdGV4dC00LyN3b3Jk
LWJvdW5kYXJ5LWV4cGFuc2lvbiIsCisgICAgICAidGltZXN0YW1wIjogIjIwMTktMTEtMzBUMTg6
MDk6NDkrMDk6MDAiLAorICAgICAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vd2ViLXBsYXRm
b3JtLXRlc3RzL3dwdC9jb21taXQvZDMxODAwMTg1ZGFiOGUxOTQyOTQ2MjBjOGFkNmJmNDBmMjVi
Zjc1MiIsCisgICAgICAiYXV0aG9yIjogeworICAgICAgICAibmFtZSI6ICJGbG9yaWFuIFJpdm9h
bCIsCisgICAgICAgICJlbWFpbCI6ICJnaXRAZmxvcmlhbi5yaXZvYWwubmV0IiwKKyAgICAgICAg
InVzZXJuYW1lIjogImZyaXZvYWwiCisgICAgICB9LAorICAgICAgImNvbW1pdHRlciI6IHsKKyAg
ICAgICAgIm5hbWUiOiAiRmxvcmlhbiBSaXZvYWwiLAorICAgICAgICAiZW1haWwiOiAiZ2l0QGZs
b3JpYW4ucml2b2FsLm5ldCIsCisgICAgICAgICJ1c2VybmFtZSI6ICJmcml2b2FsIgorICAgICAg
fSwKKyAgICAgICJhZGRlZCI6IFsKKyAgICAgICAgImNzcy9jc3MtdGV4dC9wYXJzaW5nL3dvcmQt
Ym91bmRhcnktZXhwYW5zaW9uLWNvbXB1dGVkLmh0bWwiLAorICAgICAgICAiY3NzL2Nzcy10ZXh0
L3BhcnNpbmcvd29yZC1ib3VuZGFyeS1leHBhbnNpb24taW52YWxpZC5odG1sIiwKKyAgICAgICAg
ImNzcy9jc3MtdGV4dC9wYXJzaW5nL3dvcmQtYm91bmRhcnktZXhwYW5zaW9uLXZhbGlkLmh0bWwi
LAorICAgICAgICAiY3NzL2Nzcy10ZXh0L3dvcmQtYm91bmRhcnkvcmVmZXJlbmNlL3dvcmQtYm91
bmRhcnktMDAxLXJlZi5odG1sIiwKKyAgICAgICAgImNzcy9jc3MtdGV4dC93b3JkLWJvdW5kYXJ5
L3JlZmVyZW5jZS93b3JkLWJvdW5kYXJ5LTAwMi1yZWYuaHRtbCIsCisgICAgICAgICJjc3MvY3Nz
LXRleHQvd29yZC1ib3VuZGFyeS9yZWZlcmVuY2Uvd29yZC1ib3VuZGFyeS0wMDQtcmVmLmh0bWwi
LAorICAgICAgICAiY3NzL2Nzcy10ZXh0L3dvcmQtYm91bmRhcnkvcmVmZXJlbmNlL3dvcmQtYm91
bmRhcnktMDA3LXJlZi5odG1sIiwKKyAgICAgICAgImNzcy9jc3MtdGV4dC93b3JkLWJvdW5kYXJ5
L3JlZmVyZW5jZS93b3JkLWJvdW5kYXJ5LTAwOC1yZWYuaHRtbCIsCisgICAgICAgICJjc3MvY3Nz
LXRleHQvd29yZC1ib3VuZGFyeS9yZWZlcmVuY2Uvd29yZC1ib3VuZGFyeS0wMDktcmVmLmh0bWwi
LAorICAgICAgICAiY3NzL2Nzcy10ZXh0L3dvcmQtYm91bmRhcnkvcmVmZXJlbmNlL3dvcmQtYm91
bmRhcnktMDEwLXJlZi5odG1sIiwKKyAgICAgICAgImNzcy9jc3MtdGV4dC93b3JkLWJvdW5kYXJ5
L3JlZmVyZW5jZS93b3JkLWJvdW5kYXJ5LTAxMS1yZWYuaHRtbCIsCisgICAgICAgICJjc3MvY3Nz
LXRleHQvd29yZC1ib3VuZGFyeS9yZWZlcmVuY2Uvd29yZC1ib3VuZGFyeS0wMTItcmVmLmh0bWwi
LAorICAgICAgICAiY3NzL2Nzcy10ZXh0L3dvcmQtYm91bmRhcnkvcmVmZXJlbmNlL3dvcmQtYm91
bmRhcnktMDEzLXJlZi5odG1sIiwKKyAgICAgICAgImNzcy9jc3MtdGV4dC93b3JkLWJvdW5kYXJ5
L3JlZmVyZW5jZS93b3JkLWJvdW5kYXJ5LTAxNC1yZWYuaHRtbCIsCisgICAgICAgICJjc3MvY3Nz
LXRleHQvd29yZC1ib3VuZGFyeS93b3JkLWJvdW5kYXJ5LTAwMS5odG1sIiwKKyAgICAgICAgImNz
cy9jc3MtdGV4dC93b3JkLWJvdW5kYXJ5L3dvcmQtYm91bmRhcnktMDAyLmh0bWwiLAorICAgICAg
ICAiY3NzL2Nzcy10ZXh0L3dvcmQtYm91bmRhcnkvd29yZC1ib3VuZGFyeS0wMDMuaHRtbCIsCisg
ICAgICAgICJjc3MvY3NzLXRleHQvd29yZC1ib3VuZGFyeS93b3JkLWJvdW5kYXJ5LTAwNC5odG1s
IiwKKyAgICAgICAgImNzcy9jc3MtdGV4dC93b3JkLWJvdW5kYXJ5L3dvcmQtYm91bmRhcnktMDA1
Lmh0bWwiLAorICAgICAgICAiY3NzL2Nzcy10ZXh0L3dvcmQtYm91bmRhcnkvd29yZC1ib3VuZGFy
eS0wMDYuaHRtbCIsCisgICAgICAgICJjc3MvY3NzLXRleHQvd29yZC1ib3VuZGFyeS93b3JkLWJv
dW5kYXJ5LTAwNy5odG1sIiwKKyAgICAgICAgImNzcy9jc3MtdGV4dC93b3JkLWJvdW5kYXJ5L3dv
cmQtYm91bmRhcnktMDA4Lmh0bWwiLAorICAgICAgICAiY3NzL2Nzcy10ZXh0L3dvcmQtYm91bmRh
cnkvd29yZC1ib3VuZGFyeS0wMDkuaHRtbCIsCisgICAgICAgICJjc3MvY3NzLXRleHQvd29yZC1i
b3VuZGFyeS93b3JkLWJvdW5kYXJ5LTAxMC5odG1sIiwKKyAgICAgICAgImNzcy9jc3MtdGV4dC93
b3JkLWJvdW5kYXJ5L3dvcmQtYm91bmRhcnktMDExLmh0bWwiLAorICAgICAgICAiY3NzL2Nzcy10
ZXh0L3dvcmQtYm91bmRhcnkvd29yZC1ib3VuZGFyeS0wMTIuaHRtbCIsCisgICAgICAgICJjc3Mv
Y3NzLXRleHQvd29yZC1ib3VuZGFyeS93b3JkLWJvdW5kYXJ5LTAxMy5odG1sIiwKKyAgICAgICAg
ImNzcy9jc3MtdGV4dC93b3JkLWJvdW5kYXJ5L3dvcmQtYm91bmRhcnktMDE0Lmh0bWwiLAorICAg
ICAgICAiY3NzL2Nzcy10ZXh0L3dvcmQtYm91bmRhcnkvd29yZC1ib3VuZGFyeS0wMTUtbWFudWFs
Lmh0bWwiCisgICAgICBdLAorICAgICAgInJlbW92ZWQiOiBbCisKKyAgICAgIF0sCisgICAgICAi
bW9kaWZpZWQiOiBbCisKKyAgICAgIF0KKyAgICB9LAorICAgIHsKKyAgICAgICJpZCI6ICIzN2Rk
YWIwNTI4ZDhhYjQ5ZGIxMzcxMTg4ZTM2ZjY4MTMzZmY1YzFjIiwKKyAgICAgICJ0cmVlX2lkIjog
IjgzMjY0NGE2OTdhMWNkY2FmOTMxMjZkNGY5NWM4OWY3MWI0ZjVkNDciLAorICAgICAgImRpc3Rp
bmN0IjogZmFsc2UsCisgICAgICAibWVzc2FnZSI6ICJbY3NzLXRleHQtNF0gdGVzdHMgZm9yIHdv
cmQtYm91bmRhcnktZGV0ZWN0aW9uXG5cbmh0dHBzOi8vZHJhZnRzLmNzc3dnLm9yZy9jc3MtdGV4
dC00LyN3b3JkLWJvdW5kYXJ5LWRldGVjdGlvbiIsCisgICAgICAidGltZXN0YW1wIjogIjIwMTkt
MTEtMzBUMTg6MDk6NDkrMDk6MDAiLAorICAgICAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20v
d2ViLXBsYXRmb3JtLXRlc3RzL3dwdC9jb21taXQvMzdkZGFiMDUyOGQ4YWI0OWRiMTM3MTE4OGUz
NmY2ODEzM2ZmNWMxYyIsCisgICAgICAiYXV0aG9yIjogeworICAgICAgICAibmFtZSI6ICJGbG9y
aWFuIFJpdm9hbCIsCisgICAgICAgICJlbWFpbCI6ICJnaXRAZmxvcmlhbi5yaXZvYWwubmV0IiwK
KyAgICAgICAgInVzZXJuYW1lIjogImZyaXZvYWwiCisgICAgICB9LAorICAgICAgImNvbW1pdHRl
ciI6IHsKKyAgICAgICAgIm5hbWUiOiAiRmxvcmlhbiBSaXZvYWwiLAorICAgICAgICAiZW1haWwi
OiAiZ2l0QGZsb3JpYW4ucml2b2FsLm5ldCIsCisgICAgICAgICJ1c2VybmFtZSI6ICJmcml2b2Fs
IgorICAgICAgfSwKKyAgICAgICJhZGRlZCI6IFsKKyAgICAgICAgImNzcy9jc3MtdGV4dC93b3Jk
LWJvdW5kYXJ5L3JlZmVyZW5jZS93b3JkLWJvdW5kYXJ5LTEwMS1yZWYuaHRtbCIsCisgICAgICAg
ICJjc3MvY3NzLXRleHQvd29yZC1ib3VuZGFyeS9yZWZlcmVuY2Uvd29yZC1ib3VuZGFyeS0xMDIt
cmVmLmh0bWwiLAorICAgICAgICAiY3NzL2Nzcy10ZXh0L3dvcmQtYm91bmRhcnkvcmVmZXJlbmNl
L3dvcmQtYm91bmRhcnktMTAzLXJlZi5odG1sIiwKKyAgICAgICAgImNzcy9jc3MtdGV4dC93b3Jk
LWJvdW5kYXJ5L3JlZmVyZW5jZS93b3JkLWJvdW5kYXJ5LTEwNC1yZWYuaHRtbCIsCisgICAgICAg
ICJjc3MvY3NzLXRleHQvd29yZC1ib3VuZGFyeS9yZWZlcmVuY2Uvd29yZC1ib3VuZGFyeS0xMDUt
cmVmLmh0bWwiLAorICAgICAgICAiY3NzL2Nzcy10ZXh0L3dvcmQtYm91bmRhcnkvcmVmZXJlbmNl
L3dvcmQtYm91bmRhcnktMTA2LXJlZi5odG1sIiwKKyAgICAgICAgImNzcy9jc3MtdGV4dC93b3Jk
LWJvdW5kYXJ5L3JlZmVyZW5jZS93b3JkLWJvdW5kYXJ5LTEwNy1yZWYuaHRtbCIsCisgICAgICAg
ICJjc3MvY3NzLXRleHQvd29yZC1ib3VuZGFyeS9yZWZlcmVuY2Uvd29yZC1ib3VuZGFyeS0xMDgt
cmVmLmh0bWwiLAorICAgICAgICAiY3NzL2Nzcy10ZXh0L3dvcmQtYm91bmRhcnkvcmVmZXJlbmNl
L3dvcmQtYm91bmRhcnktMTA5LWEtcmVmLmh0bWwiLAorICAgICAgICAiY3NzL2Nzcy10ZXh0L3dv
cmQtYm91bmRhcnkvcmVmZXJlbmNlL3dvcmQtYm91bmRhcnktMTA5LWItcmVmLmh0bWwiLAorICAg
ICAgICAiY3NzL2Nzcy10ZXh0L3dvcmQtYm91bmRhcnkvcmVmZXJlbmNlL3dvcmQtYm91bmRhcnkt
MTEwLWEtcmVmLmh0bWwiLAorICAgICAgICAiY3NzL2Nzcy10ZXh0L3dvcmQtYm91bmRhcnkvcmVm
ZXJlbmNlL3dvcmQtYm91bmRhcnktMTEwLWItcmVmLmh0bWwiLAorICAgICAgICAiY3NzL2Nzcy10
ZXh0L3dvcmQtYm91bmRhcnkvcmVmZXJlbmNlL3dvcmQtYm91bmRhcnktMTExLXJlZi5odG1sIiwK
KyAgICAgICAgImNzcy9jc3MtdGV4dC93b3JkLWJvdW5kYXJ5L3JlZmVyZW5jZS93b3JkLWJvdW5k
YXJ5LTExMi1yZWYuaHRtbCIsCisgICAgICAgICJjc3MvY3NzLXRleHQvd29yZC1ib3VuZGFyeS9y
ZWZlcmVuY2Uvd29yZC1ib3VuZGFyeS0xMTMtcmVmLmh0bWwiLAorICAgICAgICAiY3NzL2Nzcy10
ZXh0L3dvcmQtYm91bmRhcnkvcmVmZXJlbmNlL3dvcmQtYm91bmRhcnktMTE0LWEtcmVmLmh0bWwi
LAorICAgICAgICAiY3NzL2Nzcy10ZXh0L3dvcmQtYm91bmRhcnkvcmVmZXJlbmNlL3dvcmQtYm91
bmRhcnktMTE0LWItcmVmLmh0bWwiLAorICAgICAgICAiY3NzL2Nzcy10ZXh0L3dvcmQtYm91bmRh
cnkvcmVmZXJlbmNlL3dvcmQtYm91bmRhcnktMTE1LXJlZi5odG1sIiwKKyAgICAgICAgImNzcy9j
c3MtdGV4dC93b3JkLWJvdW5kYXJ5L3JlZmVyZW5jZS93b3JkLWJvdW5kYXJ5LTExNi1yZWYuaHRt
bCIsCisgICAgICAgICJjc3MvY3NzLXRleHQvd29yZC1ib3VuZGFyeS9yZWZlcmVuY2Uvd29yZC1i
b3VuZGFyeS0xMTctcmVmLmh0bWwiLAorICAgICAgICAiY3NzL2Nzcy10ZXh0L3dvcmQtYm91bmRh
cnkvcmVmZXJlbmNlL3dvcmQtYm91bmRhcnktMTE5LXJlZi5odG1sIiwKKyAgICAgICAgImNzcy9j
c3MtdGV4dC93b3JkLWJvdW5kYXJ5L3JlZmVyZW5jZS93b3JkLWJvdW5kYXJ5LTEyMC1yZWYuaHRt
bCIsCisgICAgICAgICJjc3MvY3NzLXRleHQvd29yZC1ib3VuZGFyeS9yZWZlcmVuY2Uvd29yZC1i
b3VuZGFyeS0xMjEtcmVmLmh0bWwiLAorICAgICAgICAiY3NzL2Nzcy10ZXh0L3dvcmQtYm91bmRh
cnkvcmVmZXJlbmNlL3dvcmQtYm91bmRhcnktMTIyLXJlZi5odG1sIiwKKyAgICAgICAgImNzcy9j
c3MtdGV4dC93b3JkLWJvdW5kYXJ5L3JlZmVyZW5jZS93b3JkLWJvdW5kYXJ5LTEyMy1yZWYuaHRt
bCIsCisgICAgICAgICJjc3MvY3NzLXRleHQvd29yZC1ib3VuZGFyeS9yZWZlcmVuY2Uvd29yZC1i
b3VuZGFyeS0xMjQtcmVmLmh0bWwiLAorICAgICAgICAiY3NzL2Nzcy10ZXh0L3dvcmQtYm91bmRh
cnkvcmVmZXJlbmNlL3dvcmQtYm91bmRhcnktMTI1LXJlZi5odG1sIiwKKyAgICAgICAgImNzcy9j
c3MtdGV4dC93b3JkLWJvdW5kYXJ5L3JlZmVyZW5jZS93b3JkLWJvdW5kYXJ5LTEyNi1yZWYuaHRt
bCIsCisgICAgICAgICJjc3MvY3NzLXRleHQvd29yZC1ib3VuZGFyeS9yZWZlcmVuY2Uvd29yZC1i
b3VuZGFyeS0xMjctcmVmLmh0bWwiLAorICAgICAgICAiY3NzL2Nzcy10ZXh0L3dvcmQtYm91bmRh
cnkvcmVmZXJlbmNlL3dvcmQtYm91bmRhcnktMTI4LXJlZi5odG1sIiwKKyAgICAgICAgImNzcy9j
c3MtdGV4dC93b3JkLWJvdW5kYXJ5L3JlZmVyZW5jZS93b3JkLWJvdW5kYXJ5LTEyOS1yZWYuaHRt
bCIsCisgICAgICAgICJjc3MvY3NzLXRleHQvd29yZC1ib3VuZGFyeS93b3JkLWJvdW5kYXJ5LTEw
MS5odG1sIiwKKyAgICAgICAgImNzcy9jc3MtdGV4dC93b3JkLWJvdW5kYXJ5L3dvcmQtYm91bmRh
cnktMTAyLmh0bWwiLAorICAgICAgICAiY3NzL2Nzcy10ZXh0L3dvcmQtYm91bmRhcnkvd29yZC1i
b3VuZGFyeS0xMDMuaHRtbCIsCisgICAgICAgICJjc3MvY3NzLXRleHQvd29yZC1ib3VuZGFyeS93
b3JkLWJvdW5kYXJ5LTEwNC5odG1sIiwKKyAgICAgICAgImNzcy9jc3MtdGV4dC93b3JkLWJvdW5k
YXJ5L3dvcmQtYm91bmRhcnktMTA1Lmh0bWwiLAorICAgICAgICAiY3NzL2Nzcy10ZXh0L3dvcmQt
Ym91bmRhcnkvd29yZC1ib3VuZGFyeS0xMDYuaHRtbCIsCisgICAgICAgICJjc3MvY3NzLXRleHQv
d29yZC1ib3VuZGFyeS93b3JkLWJvdW5kYXJ5LTEwNy5odG1sIiwKKyAgICAgICAgImNzcy9jc3Mt
dGV4dC93b3JkLWJvdW5kYXJ5L3dvcmQtYm91bmRhcnktMTA4Lmh0bWwiLAorICAgICAgICAiY3Nz
L2Nzcy10ZXh0L3dvcmQtYm91bmRhcnkvd29yZC1ib3VuZGFyeS0xMDkuaHRtbCIsCisgICAgICAg
ICJjc3MvY3NzLXRleHQvd29yZC1ib3VuZGFyeS93b3JkLWJvdW5kYXJ5LTExMC5odG1sIiwKKyAg
ICAgICAgImNzcy9jc3MtdGV4dC93b3JkLWJvdW5kYXJ5L3dvcmQtYm91bmRhcnktMTExLmh0bWwi
LAorICAgICAgICAiY3NzL2Nzcy10ZXh0L3dvcmQtYm91bmRhcnkvd29yZC1ib3VuZGFyeS0xMTIu
aHRtbCIsCisgICAgICAgICJjc3MvY3NzLXRleHQvd29yZC1ib3VuZGFyeS93b3JkLWJvdW5kYXJ5
LTExMy5odG1sIiwKKyAgICAgICAgImNzcy9jc3MtdGV4dC93b3JkLWJvdW5kYXJ5L3dvcmQtYm91
bmRhcnktMTE0Lmh0bWwiLAorICAgICAgICAiY3NzL2Nzcy10ZXh0L3dvcmQtYm91bmRhcnkvd29y
ZC1ib3VuZGFyeS0xMTUuaHRtbCIsCisgICAgICAgICJjc3MvY3NzLXRleHQvd29yZC1ib3VuZGFy
eS93b3JkLWJvdW5kYXJ5LTExNi5odG1sIiwKKyAgICAgICAgImNzcy9jc3MtdGV4dC93b3JkLWJv
dW5kYXJ5L3dvcmQtYm91bmRhcnktMTE3Lmh0bWwiLAorICAgICAgICAiY3NzL2Nzcy10ZXh0L3dv
cmQtYm91bmRhcnkvd29yZC1ib3VuZGFyeS0xMTguaHRtbCIsCisgICAgICAgICJjc3MvY3NzLXRl
eHQvd29yZC1ib3VuZGFyeS93b3JkLWJvdW5kYXJ5LTExOS5odG1sIiwKKyAgICAgICAgImNzcy9j
c3MtdGV4dC93b3JkLWJvdW5kYXJ5L3dvcmQtYm91bmRhcnktMTIwLmh0bWwiLAorICAgICAgICAi
Y3NzL2Nzcy10ZXh0L3dvcmQtYm91bmRhcnkvd29yZC1ib3VuZGFyeS0xMjEuaHRtbCIsCisgICAg
ICAgICJjc3MvY3NzLXRleHQvd29yZC1ib3VuZGFyeS93b3JkLWJvdW5kYXJ5LTEyMi5odG1sIiwK
KyAgICAgICAgImNzcy9jc3MtdGV4dC93b3JkLWJvdW5kYXJ5L3dvcmQtYm91bmRhcnktMTIzLmh0
bWwiLAorICAgICAgICAiY3NzL2Nzcy10ZXh0L3dvcmQtYm91bmRhcnkvd29yZC1ib3VuZGFyeS0x
MjQuaHRtbCIsCisgICAgICAgICJjc3MvY3NzLXRleHQvd29yZC1ib3VuZGFyeS93b3JkLWJvdW5k
YXJ5LTEyNS5odG1sIiwKKyAgICAgICAgImNzcy9jc3MtdGV4dC93b3JkLWJvdW5kYXJ5L3dvcmQt
Ym91bmRhcnktMTI2Lmh0bWwiLAorICAgICAgICAiY3NzL2Nzcy10ZXh0L3dvcmQtYm91bmRhcnkv
d29yZC1ib3VuZGFyeS0xMjcuaHRtbCIsCisgICAgICAgICJjc3MvY3NzLXRleHQvd29yZC1ib3Vu
ZGFyeS93b3JkLWJvdW5kYXJ5LTEyOC5odG1sIiwKKyAgICAgICAgImNzcy9jc3MtdGV4dC93b3Jk
LWJvdW5kYXJ5L3dvcmQtYm91bmRhcnktMTI5Lmh0bWwiCisgICAgICBdLAorICAgICAgInJlbW92
ZWQiOiBbCisKKyAgICAgIF0sCisgICAgICAibW9kaWZpZWQiOiBbCisKKyAgICAgIF0KKyAgICB9
LAorICAgIHsKKyAgICAgICJpZCI6ICIwNTRlZGNjMjNhYTFlMGViZWU1MGQ3ZGRmMWNlNjExNWRk
OTQwZWNlIiwKKyAgICAgICJ0cmVlX2lkIjogImI1OGNhMzZiYjdlOTI4ZDQ0MGJlZDczNGUzMjM1
ODA0NjdkZDMyYzciLAorICAgICAgImRpc3RpbmN0IjogZmFsc2UsCisgICAgICAibWVzc2FnZSI6
ICJbY3NzLXRleHRdIEZpeCB0eXBvIiwKKyAgICAgICJ0aW1lc3RhbXAiOiAiMjAxOS0xMS0zMFQx
OTowODoxMiswOTowMCIsCisgICAgICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxh
dGZvcm0tdGVzdHMvd3B0L2NvbW1pdC8wNTRlZGNjMjNhYTFlMGViZWU1MGQ3ZGRmMWNlNjExNWRk
OTQwZWNlIiwKKyAgICAgICJhdXRob3IiOiB7CisgICAgICAgICJuYW1lIjogIkZsb3JpYW4gUml2
b2FsIiwKKyAgICAgICAgImVtYWlsIjogImdpdEBmbG9yaWFuLnJpdm9hbC5uZXQiLAorICAgICAg
ICAidXNlcm5hbWUiOiAiZnJpdm9hbCIKKyAgICAgIH0sCisgICAgICAiY29tbWl0dGVyIjogewor
ICAgICAgICAibmFtZSI6ICJGbG9yaWFuIFJpdm9hbCIsCisgICAgICAgICJlbWFpbCI6ICJnaXRA
Zmxvcmlhbi5yaXZvYWwubmV0IiwKKyAgICAgICAgInVzZXJuYW1lIjogImZyaXZvYWwiCisgICAg
ICB9LAorICAgICAgImFkZGVkIjogWworCisgICAgICBdLAorICAgICAgInJlbW92ZWQiOiBbCisK
KyAgICAgIF0sCisgICAgICAibW9kaWZpZWQiOiBbCisgICAgICAgICJjc3MvY3NzLXRleHQvcGFy
c2luZy93b3JkLWJvdW5kYXJ5LWV4cGFuc2lvbi1jb21wdXRlZC5odG1sIgorICAgICAgXQorICAg
IH0sCisgICAgeworICAgICAgImlkIjogImQxNWQ2ZDkxODM0MTA4YTM4MDcwNzcxMDI1YjU0ODEy
NGQ0NDAyNmIiLAorICAgICAgInRyZWVfaWQiOiAiYTE0NzZkMzQ3YjA0YWNiNTllZDI1NjJmMGQ0
Zjg0NWU4MjUyZTZkMCIsCisgICAgICAiZGlzdGluY3QiOiBmYWxzZSwKKyAgICAgICJtZXNzYWdl
IjogIltjc3MtdGV4dCBhZGQgcGFyc2luZyB0ZXN0cyBmb3Igd29yZC1ib3VuZGFyeS1kZXRlY3Rp
b24iLAorICAgICAgInRpbWVzdGFtcCI6ICIyMDE5LTExLTMwVDE5OjA4OjEyKzA5OjAwIiwKKyAg
ICAgICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQvY29t
bWl0L2QxNWQ2ZDkxODM0MTA4YTM4MDcwNzcxMDI1YjU0ODEyNGQ0NDAyNmIiLAorICAgICAgImF1
dGhvciI6IHsKKyAgICAgICAgIm5hbWUiOiAiRmxvcmlhbiBSaXZvYWwiLAorICAgICAgICAiZW1h
aWwiOiAiZ2l0QGZsb3JpYW4ucml2b2FsLm5ldCIsCisgICAgICAgICJ1c2VybmFtZSI6ICJmcml2
b2FsIgorICAgICAgfSwKKyAgICAgICJjb21taXR0ZXIiOiB7CisgICAgICAgICJuYW1lIjogIkZs
b3JpYW4gUml2b2FsIiwKKyAgICAgICAgImVtYWlsIjogImdpdEBmbG9yaWFuLnJpdm9hbC5uZXQi
LAorICAgICAgICAidXNlcm5hbWUiOiAiZnJpdm9hbCIKKyAgICAgIH0sCisgICAgICAiYWRkZWQi
OiBbCisgICAgICAgICJjc3MvY3NzLXRleHQvcGFyc2luZy93b3JkLWJvdW5kYXJ5LWRldGVjdGlv
bi1jb21wdXRlZC5odG1sIiwKKyAgICAgICAgImNzcy9jc3MtdGV4dC9wYXJzaW5nL3dvcmQtYm91
bmRhcnktZGV0ZWN0aW9uLWludmFsaWQuaHRtbCIsCisgICAgICAgICJjc3MvY3NzLXRleHQvcGFy
c2luZy93b3JkLWJvdW5kYXJ5LWRldGVjdGlvbi12YWxpZC5odG1sIgorICAgICAgXSwKKyAgICAg
ICJyZW1vdmVkIjogWworCisgICAgICBdLAorICAgICAgIm1vZGlmaWVkIjogWworCisgICAgICBd
CisgICAgfSwKKyAgICB7CisgICAgICAiaWQiOiAiNWRmNTZiMjVlMWNiODFmODFmZTE2Yzg4YmU4
MzlmOWZkNTM4YjQxZSIsCisgICAgICAidHJlZV9pZCI6ICIxOGRhODdlNzcwMWJkNjIxOGY0NDM3
YjRkMmQ0OWNlZmUxZjU2YWY5IiwKKyAgICAgICJkaXN0aW5jdCI6IGZhbHNlLAorICAgICAgIm1l
c3NhZ2UiOiAiRGVsZXRlIGludmFsaWQgdGVzdC4gKCMyMDU0NylcblxuSXQgc2VlbXMgaXQgZXhw
ZWN0cyBgdHJhbnNmb3JtOiByb3RhdGUoMWRlZywgMjBweCwgMjBweClgIHRvIHNvbWVob3cgYmUg
dmFsaWQuXHJcblxyXG5JdCB3YXMgaW50cm9kdWNlZCBpbiBjZGMzMDMyZjU2Yzg2Y2M2ODEyMWU1
NGUxNjk0ODU0NDFkOWNkYjFhLCBwb2ludGluZyB0byBodHRwczovL3d3dy53My5vcmcvVFIvY3Nz
LXRyYW5zZm9ybXMtMS8jc3ZnLXRyYW5zZm9ybS1mdW5jdGlvbnMsIHdoaWNoIGRvZXNuJ3Qgc2F5
IGFueXRoaW5nIGxpa2UgdGhhdC5cclxuXHJcbkRvZXNuJ3QgcGFzcyBpbiBhbnkgYnJvd3Nlci4i
LAorICAgICAgInRpbWVzdGFtcCI6ICIyMDE5LTExLTMwVDEzOjM0OjI0LTA4OjAwIiwKKyAgICAg
ICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQvY29tbWl0
LzVkZjU2YjI1ZTFjYjgxZjgxZmUxNmM4OGJlODM5ZjlmZDUzOGI0MWUiLAorICAgICAgImF1dGhv
ciI6IHsKKyAgICAgICAgIm5hbWUiOiAiRW1pbGlvIENvYm9zIMOBbHZhcmV6IiwKKyAgICAgICAg
ImVtYWlsIjogImVtaWxpb0BjcmlzYWwuaW8iLAorICAgICAgICAidXNlcm5hbWUiOiAiZW1pbGlv
IgorICAgICAgfSwKKyAgICAgICJjb21taXR0ZXIiOiB7CisgICAgICAgICJuYW1lIjogIkwuIERh
dmlkIEJhcm9uIiwKKyAgICAgICAgImVtYWlsIjogImRiYXJvbkBkYmFyb24ub3JnIiwKKyAgICAg
ICAgInVzZXJuYW1lIjogImRiYXJvbiIKKyAgICAgIH0sCisgICAgICAiYWRkZWQiOiBbCisKKyAg
ICAgIF0sCisgICAgICAicmVtb3ZlZCI6IFsKKyAgICAgICAgImNzcy9jc3MtdHJhbnNmb3Jtcy9l
eHRlcm5hbC1zdHlsZXMvc3ZnLWV4dGVybmFsLXN0eWxlcy0wMTIuaHRtbCIKKyAgICAgIF0sCisg
ICAgICAibW9kaWZpZWQiOiBbCisgICAgICAgICJjc3MvY3NzLXRyYW5zZm9ybXMvZXh0ZXJuYWwt
c3R5bGVzL3N1cHBvcnQvc3ZnLWV4dGVybmFsLXN0eWxlcy5jc3MiCisgICAgICBdCisgICAgfQor
ICBdLAorICAiaGVhZF9jb21taXQiOiB7CisgICAgImlkIjogIjVkZjU2YjI1ZTFjYjgxZjgxZmUx
NmM4OGJlODM5ZjlmZDUzOGI0MWUiLAorICAgICJ0cmVlX2lkIjogIjE4ZGE4N2U3NzAxYmQ2MjE4
ZjQ0MzdiNGQyZDQ5Y2VmZTFmNTZhZjkiLAorICAgICJkaXN0aW5jdCI6IGZhbHNlLAorICAgICJt
ZXNzYWdlIjogIkRlbGV0ZSBpbnZhbGlkIHRlc3QuICgjMjA1NDcpXG5cbkl0IHNlZW1zIGl0IGV4
cGVjdHMgYHRyYW5zZm9ybTogcm90YXRlKDFkZWcsIDIwcHgsIDIwcHgpYCB0byBzb21laG93IGJl
IHZhbGlkLlxyXG5cclxuSXQgd2FzIGludHJvZHVjZWQgaW4gY2RjMzAzMmY1NmM4NmNjNjgxMjFl
NTRlMTY5NDg1NDQxZDljZGIxYSwgcG9pbnRpbmcgdG8gaHR0cHM6Ly93d3cudzMub3JnL1RSL2Nz
cy10cmFuc2Zvcm1zLTEvI3N2Zy10cmFuc2Zvcm0tZnVuY3Rpb25zLCB3aGljaCBkb2Vzbid0IHNh
eSBhbnl0aGluZyBsaWtlIHRoYXQuXHJcblxyXG5Eb2Vzbid0IHBhc3MgaW4gYW55IGJyb3dzZXIu
IiwKKyAgICAidGltZXN0YW1wIjogIjIwMTktMTEtMzBUMTM6MzQ6MjQtMDg6MDAiLAorICAgICJ1
cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQvY29tbWl0LzVk
ZjU2YjI1ZTFjYjgxZjgxZmUxNmM4OGJlODM5ZjlmZDUzOGI0MWUiLAorICAgICJhdXRob3IiOiB7
CisgICAgICAibmFtZSI6ICJFbWlsaW8gQ29ib3Mgw4FsdmFyZXoiLAorICAgICAgImVtYWlsIjog
ImVtaWxpb0BjcmlzYWwuaW8iLAorICAgICAgInVzZXJuYW1lIjogImVtaWxpbyIKKyAgICB9LAor
ICAgICJjb21taXR0ZXIiOiB7CisgICAgICAibmFtZSI6ICJMLiBEYXZpZCBCYXJvbiIsCisgICAg
ICAiZW1haWwiOiAiZGJhcm9uQGRiYXJvbi5vcmciLAorICAgICAgInVzZXJuYW1lIjogImRiYXJv
biIKKyAgICB9LAorICAgICJhZGRlZCI6IFsKKworICAgIF0sCisgICAgInJlbW92ZWQiOiBbCisg
ICAgICAiY3NzL2Nzcy10cmFuc2Zvcm1zL2V4dGVybmFsLXN0eWxlcy9zdmctZXh0ZXJuYWwtc3R5
bGVzLTAxMi5odG1sIgorICAgIF0sCisgICAgIm1vZGlmaWVkIjogWworICAgICAgImNzcy9jc3Mt
dHJhbnNmb3Jtcy9leHRlcm5hbC1zdHlsZXMvc3VwcG9ydC9zdmctZXh0ZXJuYWwtc3R5bGVzLmNz
cyIKKyAgICBdCisgIH0KK30KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvY2kvdGMvdGVzdGRhdGEvbWFzdGVyX3B1c2hfZXZlbnQu
anNvbiBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
Y2kvdGMvdGVzdGRhdGEvbWFzdGVyX3B1c2hfZXZlbnQuanNvbgpuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMC4uOGU3OWY3NTM3MzQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2NpL3RjL3Rlc3Rk
YXRhL21hc3Rlcl9wdXNoX2V2ZW50Lmpzb24KQEAgLTAsMCArMSwyMTQgQEAKK3sKKyAgInJlZiI6
ICJyZWZzL2hlYWRzL21hc3RlciIsCisgICJiZWZvcmUiOiAiYTRiZmEyNWJmYzM1ZTZkZDhhYWJm
OWJjNWFmNzE0YmYzZDcwZDcxMiIsCisgICJhZnRlciI6ICI1YmFlZjcwMmMyNmI4NTgwZjVhNGU1
ZTFhMzRhYzc1YmI5ZDQ5NmFlIiwKKyAgImNyZWF0ZWQiOiBmYWxzZSwKKyAgImRlbGV0ZWQiOiBm
YWxzZSwKKyAgImZvcmNlZCI6IGZhbHNlLAorICAiYmFzZV9yZWYiOiBudWxsLAorICAiY29tcGFy
ZSI6ICJodHRwczovL2dpdGh1Yi5jb20vd2ViLXBsYXRmb3JtLXRlc3RzL3dwdC9jb21wYXJlL2E0
YmZhMjViZmMzNS4uLjViYWVmNzAyYzI2YiIsCisgICJjb21taXRzIjogWworICAgIHsKKyAgICAg
ICJpZCI6ICI1YmFlZjcwMmMyNmI4NTgwZjVhNGU1ZTFhMzRhYzc1YmI5ZDQ5NmFlIiwKKyAgICAg
ICJ0cmVlX2lkIjogIjA0NTk0OWNkMDQ1OThiMTlmNWVkMWJlYmYyZDVjYmVkNjQ3ZjNjODYiLAor
ICAgICAgImRpc3RpbmN0IjogdHJ1ZSwKKyAgICAgICJtZXNzYWdlIjogIkFkZCBzdXBwb3J0IGZv
ciB2ZXJpZnlpbmcgdGFza2NsdXN0ZXIgY29uZmlnICgjMTU1OTMpXG5cbkFkZHMgYXMgd3B0IHRj
LXZlcmlmeSBjb21tYW5kIHRoYXQgdmVyaWZpZXMgdGhhdCB0aGUgVGFza0NsdXN0ZXJcclxuY29u
ZmlnIGlzIGEgdmFsaWQgeWFtbCBmaWxlIGFuZCBjb21wdXRlcyB0aGUgdGFza3MgdGhhdCB3aWxs
IHJ1biBvbiBhXHJcblBSIHN5bmNocm9uaXplIGV2ZW50LiBUaGlzIGNhbiBiZSBleHBhbmRlZCB0
byBtb3JlIGV2ZW50cyBhbmQgcHVzaGVzXHJcbmluIHRoZSBmdXR1cmUuIiwKKyAgICAgICJ0aW1l
c3RhbXAiOiAiMjAxOS0wMy0wMVQxNDo0MzowN1oiLAorICAgICAgInVybCI6ICJodHRwczovL2dp
dGh1Yi5jb20vd2ViLXBsYXRmb3JtLXRlc3RzL3dwdC9jb21taXQvNWJhZWY3MDJjMjZiODU4MGY1
YTRlNWUxYTM0YWM3NWJiOWQ0OTZhZSIsCisgICAgICAiYXV0aG9yIjogeworICAgICAgICAibmFt
ZSI6ICJqZ3JhaGFtIiwKKyAgICAgICAgImVtYWlsIjogImphbWVzQGhvcHBpcG9sbGEuY28udWsi
LAorICAgICAgICAidXNlcm5hbWUiOiAiamdyYWhhbSIKKyAgICAgIH0sCisgICAgICAiY29tbWl0
dGVyIjogeworICAgICAgICAibmFtZSI6ICJHaXRIdWIiLAorICAgICAgICAiZW1haWwiOiAibm9y
ZXBseUBnaXRodWIuY29tIiwKKyAgICAgICAgInVzZXJuYW1lIjogIndlYi1mbG93IgorICAgICAg
fSwKKyAgICAgICJhZGRlZCI6IFsKKyAgICAgICAgInRvb2xzL3Rhc2tjbHVzdGVyL19faW5pdF9f
LnB5IiwKKyAgICAgICAgInRvb2xzL3Rhc2tjbHVzdGVyL2NvbW1hbmRzLmpzb24iLAorICAgICAg
ICAidG9vbHMvdGFza2NsdXN0ZXIvdGVzdGRhdGEvcHJfZXZlbnQuanNvbiIsCisgICAgICAgICJ0
b29scy90YXNrY2x1c3Rlci92ZXJpZnkucHkiCisgICAgICBdLAorICAgICAgInJlbW92ZWQiOiBb
CisKKyAgICAgIF0sCisgICAgICAibW9kaWZpZWQiOiBbCisgICAgICAgICJ0b29scy93cHQvcGF0
aHMiCisgICAgICBdCisgICAgfQorICBdLAorICAiaGVhZF9jb21taXQiOiB7CisgICAgImlkIjog
IjViYWVmNzAyYzI2Yjg1ODBmNWE0ZTVlMWEzNGFjNzViYjlkNDk2YWUiLAorICAgICJ0cmVlX2lk
IjogIjA0NTk0OWNkMDQ1OThiMTlmNWVkMWJlYmYyZDVjYmVkNjQ3ZjNjODYiLAorICAgICJkaXN0
aW5jdCI6IHRydWUsCisgICAgIm1lc3NhZ2UiOiAiQWRkIHN1cHBvcnQgZm9yIHZlcmlmeWluZyB0
YXNrY2x1c3RlciBjb25maWcgKCMxNTU5MylcblxuQWRkcyBhcyB3cHQgdGMtdmVyaWZ5IGNvbW1h
bmQgdGhhdCB2ZXJpZmllcyB0aGF0IHRoZSBUYXNrQ2x1c3RlclxyXG5jb25maWcgaXMgYSB2YWxp
ZCB5YW1sIGZpbGUgYW5kIGNvbXB1dGVzIHRoZSB0YXNrcyB0aGF0IHdpbGwgcnVuIG9uIGFcclxu
UFIgc3luY2hyb25pemUgZXZlbnQuIFRoaXMgY2FuIGJlIGV4cGFuZGVkIHRvIG1vcmUgZXZlbnRz
IGFuZCBwdXNoZXNcclxuaW4gdGhlIGZ1dHVyZS4iLAorICAgICJ0aW1lc3RhbXAiOiAiMjAxOS0w
My0wMVQxNDo0MzowN1oiLAorICAgICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0
Zm9ybS10ZXN0cy93cHQvY29tbWl0LzViYWVmNzAyYzI2Yjg1ODBmNWE0ZTVlMWEzNGFjNzViYjlk
NDk2YWUiLAorICAgICJhdXRob3IiOiB7CisgICAgICAibmFtZSI6ICJqZ3JhaGFtIiwKKyAgICAg
ICJlbWFpbCI6ICJqYW1lc0Bob3BwaXBvbGxhLmNvLnVrIiwKKyAgICAgICJ1c2VybmFtZSI6ICJq
Z3JhaGFtIgorICAgIH0sCisgICAgImNvbW1pdHRlciI6IHsKKyAgICAgICJuYW1lIjogIkdpdEh1
YiIsCisgICAgICAiZW1haWwiOiAibm9yZXBseUBnaXRodWIuY29tIiwKKyAgICAgICJ1c2VybmFt
ZSI6ICJ3ZWItZmxvdyIKKyAgICB9LAorICAgICJhZGRlZCI6IFsKKyAgICAgICJ0b29scy90YXNr
Y2x1c3Rlci9fX2luaXRfXy5weSIsCisgICAgICAidG9vbHMvdGFza2NsdXN0ZXIvY29tbWFuZHMu
anNvbiIsCisgICAgICAidG9vbHMvdGFza2NsdXN0ZXIvdGVzdGRhdGEvcHJfZXZlbnQuanNvbiIs
CisgICAgICAidG9vbHMvdGFza2NsdXN0ZXIvdmVyaWZ5LnB5IgorICAgIF0sCisgICAgInJlbW92
ZWQiOiBbCisKKyAgICBdLAorICAgICJtb2RpZmllZCI6IFsKKyAgICAgICJ0b29scy93cHQvcGF0
aHMiCisgICAgXQorICB9LAorICAicmVwb3NpdG9yeSI6IHsKKyAgICAiaWQiOiAzNjE4MTMzLAor
ICAgICJub2RlX2lkIjogIk1ERXdPbEpsY0c5emFYUnZjbmt6TmpFNE1UTXoiLAorICAgICJuYW1l
IjogIndwdCIsCisgICAgImZ1bGxfbmFtZSI6ICJ3ZWItcGxhdGZvcm0tdGVzdHMvd3B0IiwKKyAg
ICAicHJpdmF0ZSI6IGZhbHNlLAorICAgICJvd25lciI6IHsKKyAgICAgICJuYW1lIjogIndlYi1w
bGF0Zm9ybS10ZXN0cyIsCisgICAgICAiZW1haWwiOiAiIiwKKyAgICAgICJsb2dpbiI6ICJ3ZWIt
cGxhdGZvcm0tdGVzdHMiLAorICAgICAgImlkIjogMzcyMjYyMzMsCisgICAgICAibm9kZV9pZCI6
ICJNREV5T2s5eVoyRnVhWHBoZEdsdmJqTTNNakkyTWpNeiIsCisgICAgICAiYXZhdGFyX3VybCI6
ICJodHRwczovL2F2YXRhcnMwLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzM3MjI2MjMzP3Y9NCIs
CisgICAgICAiZ3JhdmF0YXJfaWQiOiAiIiwKKyAgICAgICJ1cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0
aHViLmNvbS91c2Vycy93ZWItcGxhdGZvcm0tdGVzdHMiLAorICAgICAgImh0bWxfdXJsIjogImh0
dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxhdGZvcm0tdGVzdHMiLAorICAgICAgImZvbGxvd2Vyc191
cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS91c2Vycy93ZWItcGxhdGZvcm0tdGVzdHMvZm9s
bG93ZXJzIiwKKyAgICAgICJmb2xsb3dpbmdfdXJsIjogImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20v
dXNlcnMvd2ViLXBsYXRmb3JtLXRlc3RzL2ZvbGxvd2luZ3svb3RoZXJfdXNlcn0iLAorICAgICAg
Imdpc3RzX3VybCI6ICJodHRwczovL2FwaS5naXRodWIuY29tL3VzZXJzL3dlYi1wbGF0Zm9ybS10
ZXN0cy9naXN0c3svZ2lzdF9pZH0iLAorICAgICAgInN0YXJyZWRfdXJsIjogImh0dHBzOi8vYXBp
LmdpdGh1Yi5jb20vdXNlcnMvd2ViLXBsYXRmb3JtLXRlc3RzL3N0YXJyZWR7L293bmVyfXsvcmVw
b30iLAorICAgICAgInN1YnNjcmlwdGlvbnNfdXJsIjogImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20v
dXNlcnMvd2ViLXBsYXRmb3JtLXRlc3RzL3N1YnNjcmlwdGlvbnMiLAorICAgICAgIm9yZ2FuaXph
dGlvbnNfdXJsIjogImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vdXNlcnMvd2ViLXBsYXRmb3JtLXRl
c3RzL29yZ3MiLAorICAgICAgInJlcG9zX3VybCI6ICJodHRwczovL2FwaS5naXRodWIuY29tL3Vz
ZXJzL3dlYi1wbGF0Zm9ybS10ZXN0cy9yZXBvcyIsCisgICAgICAiZXZlbnRzX3VybCI6ICJodHRw
czovL2FwaS5naXRodWIuY29tL3VzZXJzL3dlYi1wbGF0Zm9ybS10ZXN0cy9ldmVudHN7L3ByaXZh
Y3l9IiwKKyAgICAgICJyZWNlaXZlZF9ldmVudHNfdXJsIjogImh0dHBzOi8vYXBpLmdpdGh1Yi5j
b20vdXNlcnMvd2ViLXBsYXRmb3JtLXRlc3RzL3JlY2VpdmVkX2V2ZW50cyIsCisgICAgICAidHlw
ZSI6ICJPcmdhbml6YXRpb24iLAorICAgICAgInNpdGVfYWRtaW4iOiBmYWxzZQorICAgIH0sCisg
ICAgImh0bWxfdXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxhdGZvcm0tdGVzdHMvd3B0
IiwKKyAgICAiZGVzY3JpcHRpb24iOiAiVGVzdCBzdWl0ZXMgZm9yIFdlYiBwbGF0Zm9ybSBzcGVj
cyDigJQgaW5jbHVkaW5nIFdIQVRXRywgVzNDLCBhbmQgb3RoZXJzIiwKKyAgICAiZm9yayI6IGZh
bHNlLAorICAgICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9ybS10ZXN0cy93
cHQiLAorICAgICJmb3Jrc191cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy93ZWIt
cGxhdGZvcm0tdGVzdHMvd3B0L2ZvcmtzIiwKKyAgICAia2V5c191cmwiOiAiaHR0cHM6Ly9hcGku
Z2l0aHViLmNvbS9yZXBvcy93ZWItcGxhdGZvcm0tdGVzdHMvd3B0L2tleXN7L2tleV9pZH0iLAor
ICAgICJjb2xsYWJvcmF0b3JzX3VybCI6ICJodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zL3dl
Yi1wbGF0Zm9ybS10ZXN0cy93cHQvY29sbGFib3JhdG9yc3svY29sbGFib3JhdG9yfSIsCisgICAg
InRlYW1zX3VybCI6ICJodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zL3dlYi1wbGF0Zm9ybS10
ZXN0cy93cHQvdGVhbXMiLAorICAgICJob29rc191cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNv
bS9yZXBvcy93ZWItcGxhdGZvcm0tdGVzdHMvd3B0L2hvb2tzIiwKKyAgICAiaXNzdWVfZXZlbnRz
X3VybCI6ICJodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zL3dlYi1wbGF0Zm9ybS10ZXN0cy93
cHQvaXNzdWVzL2V2ZW50c3svbnVtYmVyfSIsCisgICAgImV2ZW50c191cmwiOiAiaHR0cHM6Ly9h
cGkuZ2l0aHViLmNvbS9yZXBvcy93ZWItcGxhdGZvcm0tdGVzdHMvd3B0L2V2ZW50cyIsCisgICAg
ImFzc2lnbmVlc191cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy93ZWItcGxhdGZv
cm0tdGVzdHMvd3B0L2Fzc2lnbmVlc3svdXNlcn0iLAorICAgICJicmFuY2hlc191cmwiOiAiaHR0
cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy93ZWItcGxhdGZvcm0tdGVzdHMvd3B0L2JyYW5jaGVz
ey9icmFuY2h9IiwKKyAgICAidGFnc191cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBv
cy93ZWItcGxhdGZvcm0tdGVzdHMvd3B0L3RhZ3MiLAorICAgICJibG9ic191cmwiOiAiaHR0cHM6
Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy93ZWItcGxhdGZvcm0tdGVzdHMvd3B0L2dpdC9ibG9ic3sv
c2hhfSIsCisgICAgImdpdF90YWdzX3VybCI6ICJodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9z
L3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQvZ2l0L3RhZ3N7L3NoYX0iLAorICAgICJnaXRfcmVmc191
cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy93ZWItcGxhdGZvcm0tdGVzdHMvd3B0
L2dpdC9yZWZzey9zaGF9IiwKKyAgICAidHJlZXNfdXJsIjogImh0dHBzOi8vYXBpLmdpdGh1Yi5j
b20vcmVwb3Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dwdC9naXQvdHJlZXN7L3NoYX0iLAorICAgICJz
dGF0dXNlc191cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy93ZWItcGxhdGZvcm0t
dGVzdHMvd3B0L3N0YXR1c2VzL3tzaGF9IiwKKyAgICAibGFuZ3VhZ2VzX3VybCI6ICJodHRwczov
L2FwaS5naXRodWIuY29tL3JlcG9zL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQvbGFuZ3VhZ2VzIiwK
KyAgICAic3RhcmdhemVyc191cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy93ZWIt
cGxhdGZvcm0tdGVzdHMvd3B0L3N0YXJnYXplcnMiLAorICAgICJjb250cmlidXRvcnNfdXJsIjog
Imh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dwdC9jb250
cmlidXRvcnMiLAorICAgICJzdWJzY3JpYmVyc191cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNv
bS9yZXBvcy93ZWItcGxhdGZvcm0tdGVzdHMvd3B0L3N1YnNjcmliZXJzIiwKKyAgICAic3Vic2Ny
aXB0aW9uX3VybCI6ICJodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zL3dlYi1wbGF0Zm9ybS10
ZXN0cy93cHQvc3Vic2NyaXB0aW9uIiwKKyAgICAiY29tbWl0c191cmwiOiAiaHR0cHM6Ly9hcGku
Z2l0aHViLmNvbS9yZXBvcy93ZWItcGxhdGZvcm0tdGVzdHMvd3B0L2NvbW1pdHN7L3NoYX0iLAor
ICAgICJnaXRfY29tbWl0c191cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy93ZWIt
cGxhdGZvcm0tdGVzdHMvd3B0L2dpdC9jb21taXRzey9zaGF9IiwKKyAgICAiY29tbWVudHNfdXJs
IjogImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dwdC9j
b21tZW50c3svbnVtYmVyfSIsCisgICAgImlzc3VlX2NvbW1lbnRfdXJsIjogImh0dHBzOi8vYXBp
LmdpdGh1Yi5jb20vcmVwb3Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dwdC9pc3N1ZXMvY29tbWVudHN7
L251bWJlcn0iLAorICAgICJjb250ZW50c191cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9y
ZXBvcy93ZWItcGxhdGZvcm0tdGVzdHMvd3B0L2NvbnRlbnRzL3srcGF0aH0iLAorICAgICJjb21w
YXJlX3VybCI6ICJodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zL3dlYi1wbGF0Zm9ybS10ZXN0
cy93cHQvY29tcGFyZS97YmFzZX0uLi57aGVhZH0iLAorICAgICJtZXJnZXNfdXJsIjogImh0dHBz
Oi8vYXBpLmdpdGh1Yi5jb20vcmVwb3Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dwdC9tZXJnZXMiLAor
ICAgICJhcmNoaXZlX3VybCI6ICJodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zL3dlYi1wbGF0
Zm9ybS10ZXN0cy93cHQve2FyY2hpdmVfZm9ybWF0fXsvcmVmfSIsCisgICAgImRvd25sb2Fkc191
cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy93ZWItcGxhdGZvcm0tdGVzdHMvd3B0
L2Rvd25sb2FkcyIsCisgICAgImlzc3Vlc191cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9y
ZXBvcy93ZWItcGxhdGZvcm0tdGVzdHMvd3B0L2lzc3Vlc3svbnVtYmVyfSIsCisgICAgInB1bGxz
X3VybCI6ICJodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zL3dlYi1wbGF0Zm9ybS10ZXN0cy93
cHQvcHVsbHN7L251bWJlcn0iLAorICAgICJtaWxlc3RvbmVzX3VybCI6ICJodHRwczovL2FwaS5n
aXRodWIuY29tL3JlcG9zL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQvbWlsZXN0b25lc3svbnVtYmVy
fSIsCisgICAgIm5vdGlmaWNhdGlvbnNfdXJsIjogImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVw
b3Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dwdC9ub3RpZmljYXRpb25zez9zaW5jZSxhbGwscGFydGlj
aXBhdGluZ30iLAorICAgICJsYWJlbHNfdXJsIjogImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVw
b3Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dwdC9sYWJlbHN7L25hbWV9IiwKKyAgICAicmVsZWFzZXNf
dXJsIjogImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dw
dC9yZWxlYXNlc3svaWR9IiwKKyAgICAiZGVwbG95bWVudHNfdXJsIjogImh0dHBzOi8vYXBpLmdp
dGh1Yi5jb20vcmVwb3Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dwdC9kZXBsb3ltZW50cyIsCisgICAg
ImNyZWF0ZWRfYXQiOiAxMzMwODY1ODkxLAorICAgICJ1cGRhdGVkX2F0IjogIjIwMTktMDMtMDFU
MTQ6MTY6NTJaIiwKKyAgICAicHVzaGVkX2F0IjogMTU1MTQ1MTM4OSwKKyAgICAiZ2l0X3VybCI6
ICJnaXQ6Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQuZ2l0IiwKKyAgICAic3No
X3VybCI6ICJnaXRAZ2l0aHViLmNvbTp3ZWItcGxhdGZvcm0tdGVzdHMvd3B0LmdpdCIsCisgICAg
ImNsb25lX3VybCI6ICJodHRwczovL2dpdGh1Yi5jb20vd2ViLXBsYXRmb3JtLXRlc3RzL3dwdC5n
aXQiLAorICAgICJzdm5fdXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxhdGZvcm0tdGVz
dHMvd3B0IiwKKyAgICAiaG9tZXBhZ2UiOiAiaHR0cDovL2lyYy53My5vcmcvP2NoYW5uZWxzPXRl
c3RpbmciLAorICAgICJzaXplIjogMzI0NzIyLAorICAgICJzdGFyZ2F6ZXJzX2NvdW50IjogMjA2
MCwKKyAgICAid2F0Y2hlcnNfY291bnQiOiAyMDYwLAorICAgICJsYW5ndWFnZSI6ICJIVE1MIiwK
KyAgICAiaGFzX2lzc3VlcyI6IHRydWUsCisgICAgImhhc19wcm9qZWN0cyI6IHRydWUsCisgICAg
Imhhc19kb3dubG9hZHMiOiB0cnVlLAorICAgICJoYXNfd2lraSI6IHRydWUsCisgICAgImhhc19w
YWdlcyI6IHRydWUsCisgICAgImZvcmtzX2NvdW50IjogMTYwNSwKKyAgICAibWlycm9yX3VybCI6
IG51bGwsCisgICAgImFyY2hpdmVkIjogZmFsc2UsCisgICAgIm9wZW5faXNzdWVzX2NvdW50Ijog
MTM1NSwKKyAgICAibGljZW5zZSI6IHsKKyAgICAgICJrZXkiOiAib3RoZXIiLAorICAgICAgIm5h
bWUiOiAiT3RoZXIiLAorICAgICAgInNwZHhfaWQiOiAiTk9BU1NFUlRJT04iLAorICAgICAgInVy
bCI6IG51bGwsCisgICAgICAibm9kZV9pZCI6ICJNRGM2VEdsalpXNXpaVEE9IgorICAgIH0sCisg
ICAgImZvcmtzIjogMTYwNSwKKyAgICAib3Blbl9pc3N1ZXMiOiAxMzY2LAorICAgICJ3YXRjaGVy
cyI6IDIwNjAsCisgICAgImRlZmF1bHRfYnJhbmNoIjogIm1hc3RlciIsCisgICAgInN0YXJnYXpl
cnMiOiAyMDYwLAorICAgICJtYXN0ZXJfYnJhbmNoIjogIm1hc3RlciIsCisgICAgIm9yZ2FuaXph
dGlvbiI6ICJ3ZWItcGxhdGZvcm0tdGVzdHMiCisgIH0sCisgICJwdXNoZXIiOiB7CisgICAgIm5h
bWUiOiAiamdyYWhhbSIsCisgICAgImVtYWlsIjogImphbWVzQGhvcHBpcG9sbGEuY28udWsiCisg
IH0sCisgICJvcmdhbml6YXRpb24iOiB7CisgICAgImxvZ2luIjogIndlYi1wbGF0Zm9ybS10ZXN0
cyIsCisgICAgImlkIjogMzcyMjYyMzMsCisgICAgIm5vZGVfaWQiOiAiTURFeU9rOXlaMkZ1YVhw
aGRHbHZiak0zTWpJMk1qTXoiLAorICAgICJ1cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9v
cmdzL3dlYi1wbGF0Zm9ybS10ZXN0cyIsCisgICAgInJlcG9zX3VybCI6ICJodHRwczovL2FwaS5n
aXRodWIuY29tL29yZ3Mvd2ViLXBsYXRmb3JtLXRlc3RzL3JlcG9zIiwKKyAgICAiZXZlbnRzX3Vy
bCI6ICJodHRwczovL2FwaS5naXRodWIuY29tL29yZ3Mvd2ViLXBsYXRmb3JtLXRlc3RzL2V2ZW50
cyIsCisgICAgImhvb2tzX3VybCI6ICJodHRwczovL2FwaS5naXRodWIuY29tL29yZ3Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2hvb2tzIiwKKyAgICAiaXNzdWVzX3VybCI6ICJodHRwczovL2FwaS5naXRo
dWIuY29tL29yZ3Mvd2ViLXBsYXRmb3JtLXRlc3RzL2lzc3VlcyIsCisgICAgIm1lbWJlcnNfdXJs
IjogImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vb3Jncy93ZWItcGxhdGZvcm0tdGVzdHMvbWVtYmVy
c3svbWVtYmVyfSIsCisgICAgInB1YmxpY19tZW1iZXJzX3VybCI6ICJodHRwczovL2FwaS5naXRo
dWIuY29tL29yZ3Mvd2ViLXBsYXRmb3JtLXRlc3RzL3B1YmxpY19tZW1iZXJzey9tZW1iZXJ9IiwK
KyAgICAiYXZhdGFyX3VybCI6ICJodHRwczovL2F2YXRhcnMwLmdpdGh1YnVzZXJjb250ZW50LmNv
bS91LzM3MjI2MjMzP3Y9NCIsCisgICAgImRlc2NyaXB0aW9uIjogIiIKKyAgfSwKKyAgInNlbmRl
ciI6IHsKKyAgICAibG9naW4iOiAiamdyYWhhbSIsCisgICAgImlkIjogMjk0ODY0LAorICAgICJu
b2RlX2lkIjogIk1EUTZWWE5sY2pJNU5EZzJOQT09IiwKKyAgICAiYXZhdGFyX3VybCI6ICJodHRw
czovL2F2YXRhcnMxLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzI5NDg2ND92PTQiLAorICAgICJn
cmF2YXRhcl9pZCI6ICIiLAorICAgICJ1cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS91c2Vy
cy9qZ3JhaGFtIiwKKyAgICAiaHRtbF91cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2pncmFoYW0i
LAorICAgICJmb2xsb3dlcnNfdXJsIjogImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vdXNlcnMvamdy
YWhhbS9mb2xsb3dlcnMiLAorICAgICJmb2xsb3dpbmdfdXJsIjogImh0dHBzOi8vYXBpLmdpdGh1
Yi5jb20vdXNlcnMvamdyYWhhbS9mb2xsb3dpbmd7L290aGVyX3VzZXJ9IiwKKyAgICAiZ2lzdHNf
dXJsIjogImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vdXNlcnMvamdyYWhhbS9naXN0c3svZ2lzdF9p
ZH0iLAorICAgICJzdGFycmVkX3VybCI6ICJodHRwczovL2FwaS5naXRodWIuY29tL3VzZXJzL2pn
cmFoYW0vc3RhcnJlZHsvb3duZXJ9ey9yZXBvfSIsCisgICAgInN1YnNjcmlwdGlvbnNfdXJsIjog
Imh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vdXNlcnMvamdyYWhhbS9zdWJzY3JpcHRpb25zIiwKKyAg
ICAib3JnYW5pemF0aW9uc191cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS91c2Vycy9qZ3Jh
aGFtL29yZ3MiLAorICAgICJyZXBvc191cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS91c2Vy
cy9qZ3JhaGFtL3JlcG9zIiwKKyAgICAiZXZlbnRzX3VybCI6ICJodHRwczovL2FwaS5naXRodWIu
Y29tL3VzZXJzL2pncmFoYW0vZXZlbnRzey9wcml2YWN5fSIsCisgICAgInJlY2VpdmVkX2V2ZW50
c191cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS91c2Vycy9qZ3JhaGFtL3JlY2VpdmVkX2V2
ZW50cyIsCisgICAgInR5cGUiOiAiVXNlciIsCisgICAgInNpdGVfYWRtaW4iOiBmYWxzZQorICB9
Cit9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL2NpL3RjL3Rlc3RkYXRhL3ByX2V2ZW50Lmpzb24gYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2NpL3RjL3Rlc3RkYXRhL3ByX2V2ZW50
Lmpzb24KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjVhY2MxYTYwMTAy
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy9jaS90Yy90ZXN0ZGF0YS9wcl9ldmVudC5qc29uCkBAIC0wLDAgKzEsNTc3
IEBACit7CisgICJhY3Rpb24iOiAic3luY2hyb25pemUiLAorICAibnVtYmVyIjogMTU1NzQsCisg
ICJwdWxsX3JlcXVlc3QiOiB7CisgICAgInVybCI6ICJodHRwczovL2FwaS5naXRodWIuY29tL3Jl
cG9zL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQvcHVsbHMvMTU1NzQiLAorICAgICJpZCI6IDI1NjY1
MzA2NSwKKyAgICAibm9kZV9pZCI6ICJNREV4T2xCMWJHeFNaWEYxWlhOME1qVTJOalV6TURZMSIs
CisgICAgImh0bWxfdXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxhdGZvcm0tdGVzdHMv
d3B0L3B1bGwvMTU1NzQiLAorICAgICJkaWZmX3VybCI6ICJodHRwczovL2dpdGh1Yi5jb20vd2Vi
LXBsYXRmb3JtLXRlc3RzL3dwdC9wdWxsLzE1NTc0LmRpZmYiLAorICAgICJwYXRjaF91cmwiOiAi
aHR0cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQvcHVsbC8xNTU3NC5wYXRj
aCIsCisgICAgImlzc3VlX3VybCI6ICJodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zL3dlYi1w
bGF0Zm9ybS10ZXN0cy93cHQvaXNzdWVzLzE1NTc0IiwKKyAgICAibnVtYmVyIjogMTU1NzQsCisg
ICAgInN0YXRlIjogIm9wZW4iLAorICAgICJsb2NrZWQiOiBmYWxzZSwKKyAgICAidGl0bGUiOiAi
TW92ZSB0aGUgbGludCBmcm9tIFRyYXZpcyB0byBUYXNrQ2x1c3RlciIsCisgICAgInVzZXIiOiB7
CisgICAgICAibG9naW4iOiAiamdyYWhhbSIsCisgICAgICAiaWQiOiAyOTQ4NjQsCisgICAgICAi
bm9kZV9pZCI6ICJNRFE2VlhObGNqSTVORGcyTkE9PSIsCisgICAgICAiYXZhdGFyX3VybCI6ICJo
dHRwczovL2F2YXRhcnMxLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzI5NDg2ND92PTQiLAorICAg
ICAgImdyYXZhdGFyX2lkIjogIiIsCisgICAgICAidXJsIjogImh0dHBzOi8vYXBpLmdpdGh1Yi5j
b20vdXNlcnMvamdyYWhhbSIsCisgICAgICAiaHRtbF91cmwiOiAiaHR0cHM6Ly9naXRodWIuY29t
L2pncmFoYW0iLAorICAgICAgImZvbGxvd2Vyc191cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNv
bS91c2Vycy9qZ3JhaGFtL2ZvbGxvd2VycyIsCisgICAgICAiZm9sbG93aW5nX3VybCI6ICJodHRw
czovL2FwaS5naXRodWIuY29tL3VzZXJzL2pncmFoYW0vZm9sbG93aW5ney9vdGhlcl91c2VyfSIs
CisgICAgICAiZ2lzdHNfdXJsIjogImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vdXNlcnMvamdyYWhh
bS9naXN0c3svZ2lzdF9pZH0iLAorICAgICAgInN0YXJyZWRfdXJsIjogImh0dHBzOi8vYXBpLmdp
dGh1Yi5jb20vdXNlcnMvamdyYWhhbS9zdGFycmVkey9vd25lcn17L3JlcG99IiwKKyAgICAgICJz
dWJzY3JpcHRpb25zX3VybCI6ICJodHRwczovL2FwaS5naXRodWIuY29tL3VzZXJzL2pncmFoYW0v
c3Vic2NyaXB0aW9ucyIsCisgICAgICAib3JnYW5pemF0aW9uc191cmwiOiAiaHR0cHM6Ly9hcGku
Z2l0aHViLmNvbS91c2Vycy9qZ3JhaGFtL29yZ3MiLAorICAgICAgInJlcG9zX3VybCI6ICJodHRw
czovL2FwaS5naXRodWIuY29tL3VzZXJzL2pncmFoYW0vcmVwb3MiLAorICAgICAgImV2ZW50c191
cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS91c2Vycy9qZ3JhaGFtL2V2ZW50c3svcHJpdmFj
eX0iLAorICAgICAgInJlY2VpdmVkX2V2ZW50c191cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNv
bS91c2Vycy9qZ3JhaGFtL3JlY2VpdmVkX2V2ZW50cyIsCisgICAgICAidHlwZSI6ICJVc2VyIiwK
KyAgICAgICJzaXRlX2FkbWluIjogZmFsc2UKKyAgICB9LAorICAgICJib2R5IjogIiIsCisgICAg
ImNyZWF0ZWRfYXQiOiAiMjAxOS0wMi0yN1QxMjowMzozOFoiLAorICAgICJ1cGRhdGVkX2F0Ijog
IjIwMTktMDItMjhUMTM6NDM6MTdaIiwKKyAgICAiY2xvc2VkX2F0IjogbnVsbCwKKyAgICAibWVy
Z2VkX2F0IjogbnVsbCwKKyAgICAibWVyZ2VfY29tbWl0X3NoYSI6ICI3MGEyNzIyOTZkYWQwZGI0
ZjBiZTExMzNhNTlhYTk3ZjBhNzJkOWFjIiwKKyAgICAiYXNzaWduZWUiOiB7CisgICAgICAibG9n
aW4iOiAiZ3NuZWRkZXJzIiwKKyAgICAgICJpZCI6IDE3NjIxOCwKKyAgICAgICJub2RlX2lkIjog
Ik1EUTZWWE5sY2pFM05qSXhPQT09IiwKKyAgICAgICJhdmF0YXJfdXJsIjogImh0dHBzOi8vYXZh
dGFyczIuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTc2MjE4P3Y9NCIsCisgICAgICAiZ3JhdmF0
YXJfaWQiOiAiIiwKKyAgICAgICJ1cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS91c2Vycy9n
c25lZGRlcnMiLAorICAgICAgImh0bWxfdXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9nc25lZGRl
cnMiLAorICAgICAgImZvbGxvd2Vyc191cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS91c2Vy
cy9nc25lZGRlcnMvZm9sbG93ZXJzIiwKKyAgICAgICJmb2xsb3dpbmdfdXJsIjogImh0dHBzOi8v
YXBpLmdpdGh1Yi5jb20vdXNlcnMvZ3NuZWRkZXJzL2ZvbGxvd2luZ3svb3RoZXJfdXNlcn0iLAor
ICAgICAgImdpc3RzX3VybCI6ICJodHRwczovL2FwaS5naXRodWIuY29tL3VzZXJzL2dzbmVkZGVy
cy9naXN0c3svZ2lzdF9pZH0iLAorICAgICAgInN0YXJyZWRfdXJsIjogImh0dHBzOi8vYXBpLmdp
dGh1Yi5jb20vdXNlcnMvZ3NuZWRkZXJzL3N0YXJyZWR7L293bmVyfXsvcmVwb30iLAorICAgICAg
InN1YnNjcmlwdGlvbnNfdXJsIjogImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vdXNlcnMvZ3NuZWRk
ZXJzL3N1YnNjcmlwdGlvbnMiLAorICAgICAgIm9yZ2FuaXphdGlvbnNfdXJsIjogImh0dHBzOi8v
YXBpLmdpdGh1Yi5jb20vdXNlcnMvZ3NuZWRkZXJzL29yZ3MiLAorICAgICAgInJlcG9zX3VybCI6
ICJodHRwczovL2FwaS5naXRodWIuY29tL3VzZXJzL2dzbmVkZGVycy9yZXBvcyIsCisgICAgICAi
ZXZlbnRzX3VybCI6ICJodHRwczovL2FwaS5naXRodWIuY29tL3VzZXJzL2dzbmVkZGVycy9ldmVu
dHN7L3ByaXZhY3l9IiwKKyAgICAgICJyZWNlaXZlZF9ldmVudHNfdXJsIjogImh0dHBzOi8vYXBp
LmdpdGh1Yi5jb20vdXNlcnMvZ3NuZWRkZXJzL3JlY2VpdmVkX2V2ZW50cyIsCisgICAgICAidHlw
ZSI6ICJVc2VyIiwKKyAgICAgICJzaXRlX2FkbWluIjogZmFsc2UKKyAgICB9LAorICAgICJhc3Np
Z25lZXMiOiBbCisgICAgICB7CisgICAgICAgICJsb2dpbiI6ICJnc25lZGRlcnMiLAorICAgICAg
ICAiaWQiOiAxNzYyMTgsCisgICAgICAgICJub2RlX2lkIjogIk1EUTZWWE5sY2pFM05qSXhPQT09
IiwKKyAgICAgICAgImF2YXRhcl91cmwiOiAiaHR0cHM6Ly9hdmF0YXJzMi5naXRodWJ1c2VyY29u
dGVudC5jb20vdS8xNzYyMTg/dj00IiwKKyAgICAgICAgImdyYXZhdGFyX2lkIjogIiIsCisgICAg
ICAgICJ1cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS91c2Vycy9nc25lZGRlcnMiLAorICAg
ICAgICAiaHRtbF91cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2dzbmVkZGVycyIsCisgICAgICAg
ICJmb2xsb3dlcnNfdXJsIjogImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vdXNlcnMvZ3NuZWRkZXJz
L2ZvbGxvd2VycyIsCisgICAgICAgICJmb2xsb3dpbmdfdXJsIjogImh0dHBzOi8vYXBpLmdpdGh1
Yi5jb20vdXNlcnMvZ3NuZWRkZXJzL2ZvbGxvd2luZ3svb3RoZXJfdXNlcn0iLAorICAgICAgICAi
Z2lzdHNfdXJsIjogImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vdXNlcnMvZ3NuZWRkZXJzL2dpc3Rz
ey9naXN0X2lkfSIsCisgICAgICAgICJzdGFycmVkX3VybCI6ICJodHRwczovL2FwaS5naXRodWIu
Y29tL3VzZXJzL2dzbmVkZGVycy9zdGFycmVkey9vd25lcn17L3JlcG99IiwKKyAgICAgICAgInN1
YnNjcmlwdGlvbnNfdXJsIjogImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vdXNlcnMvZ3NuZWRkZXJz
L3N1YnNjcmlwdGlvbnMiLAorICAgICAgICAib3JnYW5pemF0aW9uc191cmwiOiAiaHR0cHM6Ly9h
cGkuZ2l0aHViLmNvbS91c2Vycy9nc25lZGRlcnMvb3JncyIsCisgICAgICAgICJyZXBvc191cmwi
OiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS91c2Vycy9nc25lZGRlcnMvcmVwb3MiLAorICAgICAg
ICAiZXZlbnRzX3VybCI6ICJodHRwczovL2FwaS5naXRodWIuY29tL3VzZXJzL2dzbmVkZGVycy9l
dmVudHN7L3ByaXZhY3l9IiwKKyAgICAgICAgInJlY2VpdmVkX2V2ZW50c191cmwiOiAiaHR0cHM6
Ly9hcGkuZ2l0aHViLmNvbS91c2Vycy9nc25lZGRlcnMvcmVjZWl2ZWRfZXZlbnRzIiwKKyAgICAg
ICAgInR5cGUiOiAiVXNlciIsCisgICAgICAgICJzaXRlX2FkbWluIjogZmFsc2UKKyAgICAgIH0K
KyAgICBdLAorICAgICJyZXF1ZXN0ZWRfcmV2aWV3ZXJzIjogWworICAgICAgeworICAgICAgICAi
bG9naW4iOiAiZ3NuZWRkZXJzIiwKKyAgICAgICAgImlkIjogMTc2MjE4LAorICAgICAgICAibm9k
ZV9pZCI6ICJNRFE2VlhObGNqRTNOakl4T0E9PSIsCisgICAgICAgICJhdmF0YXJfdXJsIjogImh0
dHBzOi8vYXZhdGFyczIuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMTc2MjE4P3Y9NCIsCisgICAg
ICAgICJncmF2YXRhcl9pZCI6ICIiLAorICAgICAgICAidXJsIjogImh0dHBzOi8vYXBpLmdpdGh1
Yi5jb20vdXNlcnMvZ3NuZWRkZXJzIiwKKyAgICAgICAgImh0bWxfdXJsIjogImh0dHBzOi8vZ2l0
aHViLmNvbS9nc25lZGRlcnMiLAorICAgICAgICAiZm9sbG93ZXJzX3VybCI6ICJodHRwczovL2Fw
aS5naXRodWIuY29tL3VzZXJzL2dzbmVkZGVycy9mb2xsb3dlcnMiLAorICAgICAgICAiZm9sbG93
aW5nX3VybCI6ICJodHRwczovL2FwaS5naXRodWIuY29tL3VzZXJzL2dzbmVkZGVycy9mb2xsb3dp
bmd7L290aGVyX3VzZXJ9IiwKKyAgICAgICAgImdpc3RzX3VybCI6ICJodHRwczovL2FwaS5naXRo
dWIuY29tL3VzZXJzL2dzbmVkZGVycy9naXN0c3svZ2lzdF9pZH0iLAorICAgICAgICAic3RhcnJl
ZF91cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS91c2Vycy9nc25lZGRlcnMvc3RhcnJlZHsv
b3duZXJ9ey9yZXBvfSIsCisgICAgICAgICJzdWJzY3JpcHRpb25zX3VybCI6ICJodHRwczovL2Fw
aS5naXRodWIuY29tL3VzZXJzL2dzbmVkZGVycy9zdWJzY3JpcHRpb25zIiwKKyAgICAgICAgIm9y
Z2FuaXphdGlvbnNfdXJsIjogImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vdXNlcnMvZ3NuZWRkZXJz
L29yZ3MiLAorICAgICAgICAicmVwb3NfdXJsIjogImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vdXNl
cnMvZ3NuZWRkZXJzL3JlcG9zIiwKKyAgICAgICAgImV2ZW50c191cmwiOiAiaHR0cHM6Ly9hcGku
Z2l0aHViLmNvbS91c2Vycy9nc25lZGRlcnMvZXZlbnRzey9wcml2YWN5fSIsCisgICAgICAgICJy
ZWNlaXZlZF9ldmVudHNfdXJsIjogImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vdXNlcnMvZ3NuZWRk
ZXJzL3JlY2VpdmVkX2V2ZW50cyIsCisgICAgICAgICJ0eXBlIjogIlVzZXIiLAorICAgICAgICAi
c2l0ZV9hZG1pbiI6IGZhbHNlCisgICAgICB9LAorICAgICAgeworICAgICAgICAibG9naW4iOiAi
anVnZ2xpbm1pa2UiLAorICAgICAgICAiaWQiOiA2NzcyNTIsCisgICAgICAgICJub2RlX2lkIjog
Ik1EUTZWWE5sY2pZM056STFNZz09IiwKKyAgICAgICAgImF2YXRhcl91cmwiOiAiaHR0cHM6Ly9h
dmF0YXJzMi5naXRodWJ1c2VyY29udGVudC5jb20vdS82NzcyNTI/dj00IiwKKyAgICAgICAgImdy
YXZhdGFyX2lkIjogIiIsCisgICAgICAgICJ1cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS91
c2Vycy9qdWdnbGlubWlrZSIsCisgICAgICAgICJodG1sX3VybCI6ICJodHRwczovL2dpdGh1Yi5j
b20vanVnZ2xpbm1pa2UiLAorICAgICAgICAiZm9sbG93ZXJzX3VybCI6ICJodHRwczovL2FwaS5n
aXRodWIuY29tL3VzZXJzL2p1Z2dsaW5taWtlL2ZvbGxvd2VycyIsCisgICAgICAgICJmb2xsb3dp
bmdfdXJsIjogImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vdXNlcnMvanVnZ2xpbm1pa2UvZm9sbG93
aW5ney9vdGhlcl91c2VyfSIsCisgICAgICAgICJnaXN0c191cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0
aHViLmNvbS91c2Vycy9qdWdnbGlubWlrZS9naXN0c3svZ2lzdF9pZH0iLAorICAgICAgICAic3Rh
cnJlZF91cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS91c2Vycy9qdWdnbGlubWlrZS9zdGFy
cmVkey9vd25lcn17L3JlcG99IiwKKyAgICAgICAgInN1YnNjcmlwdGlvbnNfdXJsIjogImh0dHBz
Oi8vYXBpLmdpdGh1Yi5jb20vdXNlcnMvanVnZ2xpbm1pa2Uvc3Vic2NyaXB0aW9ucyIsCisgICAg
ICAgICJvcmdhbml6YXRpb25zX3VybCI6ICJodHRwczovL2FwaS5naXRodWIuY29tL3VzZXJzL2p1
Z2dsaW5taWtlL29yZ3MiLAorICAgICAgICAicmVwb3NfdXJsIjogImh0dHBzOi8vYXBpLmdpdGh1
Yi5jb20vdXNlcnMvanVnZ2xpbm1pa2UvcmVwb3MiLAorICAgICAgICAiZXZlbnRzX3VybCI6ICJo
dHRwczovL2FwaS5naXRodWIuY29tL3VzZXJzL2p1Z2dsaW5taWtlL2V2ZW50c3svcHJpdmFjeX0i
LAorICAgICAgICAicmVjZWl2ZWRfZXZlbnRzX3VybCI6ICJodHRwczovL2FwaS5naXRodWIuY29t
L3VzZXJzL2p1Z2dsaW5taWtlL3JlY2VpdmVkX2V2ZW50cyIsCisgICAgICAgICJ0eXBlIjogIlVz
ZXIiLAorICAgICAgICAic2l0ZV9hZG1pbiI6IGZhbHNlCisgICAgICB9CisgICAgXSwKKyAgICAi
cmVxdWVzdGVkX3RlYW1zIjogWworCisgICAgXSwKKyAgICAibGFiZWxzIjogWworICAgICAgewor
ICAgICAgICAiaWQiOiAxMDEyOTk5NjAzLAorICAgICAgICAibm9kZV9pZCI6ICJNRFU2VEdGaVpX
d3hNREV5T1RrNU5qQXoiLAorICAgICAgICAidXJsIjogImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20v
cmVwb3Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dwdC9sYWJlbHMvY2kiLAorICAgICAgICAibmFtZSI6
ICJjaSIsCisgICAgICAgICJjb2xvciI6ICJmZWYyYzAiLAorICAgICAgICAiZGVmYXVsdCI6IGZh
bHNlCisgICAgICB9LAorICAgICAgeworICAgICAgICAiaWQiOiA0NTIzMDc5MCwKKyAgICAgICAg
Im5vZGVfaWQiOiAiTURVNlRHRmlaV3cwTlRJek1EYzVNQT09IiwKKyAgICAgICAgInVybCI6ICJo
dHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQvbGFiZWxz
L2luZnJhIiwKKyAgICAgICAgIm5hbWUiOiAiaW5mcmEiLAorICAgICAgICAiY29sb3IiOiAiZmJj
YTA0IiwKKyAgICAgICAgImRlZmF1bHQiOiBmYWxzZQorICAgICAgfQorICAgIF0sCisgICAgIm1p
bGVzdG9uZSI6IG51bGwsCisgICAgImNvbW1pdHNfdXJsIjogImh0dHBzOi8vYXBpLmdpdGh1Yi5j
b20vcmVwb3Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dwdC9wdWxscy8xNTU3NC9jb21taXRzIiwKKyAg
ICAicmV2aWV3X2NvbW1lbnRzX3VybCI6ICJodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zL3dl
Yi1wbGF0Zm9ybS10ZXN0cy93cHQvcHVsbHMvMTU1NzQvY29tbWVudHMiLAorICAgICJyZXZpZXdf
Y29tbWVudF91cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy93ZWItcGxhdGZvcm0t
dGVzdHMvd3B0L3B1bGxzL2NvbW1lbnRzey9udW1iZXJ9IiwKKyAgICAiY29tbWVudHNfdXJsIjog
Imh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dwdC9pc3N1
ZXMvMTU1NzQvY29tbWVudHMiLAorICAgICJzdGF0dXNlc191cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0
aHViLmNvbS9yZXBvcy93ZWItcGxhdGZvcm0tdGVzdHMvd3B0L3N0YXR1c2VzL2ZlZjY5YzVkNDcx
OTY0MzMyMzRkNmMzN2EwZmY5ODc0OTFiZDJkZmMiLAorICAgICJoZWFkIjogeworICAgICAgImxh
YmVsIjogIndlYi1wbGF0Zm9ybS10ZXN0czp0YXNrY2x1c3Rlcl9saW50IiwKKyAgICAgICJyZWYi
OiAidGFza2NsdXN0ZXJfbGludCIsCisgICAgICAic2hhIjogImZlZjY5YzVkNDcxOTY0MzMyMzRk
NmMzN2EwZmY5ODc0OTFiZDJkZmMiLAorICAgICAgInVzZXIiOiB7CisgICAgICAgICJsb2dpbiI6
ICJ3ZWItcGxhdGZvcm0tdGVzdHMiLAorICAgICAgICAiaWQiOiAzNzIyNjIzMywKKyAgICAgICAg
Im5vZGVfaWQiOiAiTURFeU9rOXlaMkZ1YVhwaGRHbHZiak0zTWpJMk1qTXoiLAorICAgICAgICAi
YXZhdGFyX3VybCI6ICJodHRwczovL2F2YXRhcnMwLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzM3
MjI2MjMzP3Y9NCIsCisgICAgICAgICJncmF2YXRhcl9pZCI6ICIiLAorICAgICAgICAidXJsIjog
Imh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vdXNlcnMvd2ViLXBsYXRmb3JtLXRlc3RzIiwKKyAgICAg
ICAgImh0bWxfdXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxhdGZvcm0tdGVzdHMiLAor
ICAgICAgICAiZm9sbG93ZXJzX3VybCI6ICJodHRwczovL2FwaS5naXRodWIuY29tL3VzZXJzL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9mb2xsb3dlcnMiLAorICAgICAgICAiZm9sbG93aW5nX3VybCI6ICJo
dHRwczovL2FwaS5naXRodWIuY29tL3VzZXJzL3dlYi1wbGF0Zm9ybS10ZXN0cy9mb2xsb3dpbmd7
L290aGVyX3VzZXJ9IiwKKyAgICAgICAgImdpc3RzX3VybCI6ICJodHRwczovL2FwaS5naXRodWIu
Y29tL3VzZXJzL3dlYi1wbGF0Zm9ybS10ZXN0cy9naXN0c3svZ2lzdF9pZH0iLAorICAgICAgICAi
c3RhcnJlZF91cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS91c2Vycy93ZWItcGxhdGZvcm0t
dGVzdHMvc3RhcnJlZHsvb3duZXJ9ey9yZXBvfSIsCisgICAgICAgICJzdWJzY3JpcHRpb25zX3Vy
bCI6ICJodHRwczovL2FwaS5naXRodWIuY29tL3VzZXJzL3dlYi1wbGF0Zm9ybS10ZXN0cy9zdWJz
Y3JpcHRpb25zIiwKKyAgICAgICAgIm9yZ2FuaXphdGlvbnNfdXJsIjogImh0dHBzOi8vYXBpLmdp
dGh1Yi5jb20vdXNlcnMvd2ViLXBsYXRmb3JtLXRlc3RzL29yZ3MiLAorICAgICAgICAicmVwb3Nf
dXJsIjogImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vdXNlcnMvd2ViLXBsYXRmb3JtLXRlc3RzL3Jl
cG9zIiwKKyAgICAgICAgImV2ZW50c191cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS91c2Vy
cy93ZWItcGxhdGZvcm0tdGVzdHMvZXZlbnRzey9wcml2YWN5fSIsCisgICAgICAgICJyZWNlaXZl
ZF9ldmVudHNfdXJsIjogImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vdXNlcnMvd2ViLXBsYXRmb3Jt
LXRlc3RzL3JlY2VpdmVkX2V2ZW50cyIsCisgICAgICAgICJ0eXBlIjogIk9yZ2FuaXphdGlvbiIs
CisgICAgICAgICJzaXRlX2FkbWluIjogZmFsc2UKKyAgICAgIH0sCisgICAgICAicmVwbyI6IHsK
KyAgICAgICAgImlkIjogMzYxODEzMywKKyAgICAgICAgIm5vZGVfaWQiOiAiTURFd09sSmxjRzl6
YVhSdmNua3pOakU0TVRNeiIsCisgICAgICAgICJuYW1lIjogIndwdCIsCisgICAgICAgICJmdWxs
X25hbWUiOiAid2ViLXBsYXRmb3JtLXRlc3RzL3dwdCIsCisgICAgICAgICJwcml2YXRlIjogZmFs
c2UsCisgICAgICAgICJvd25lciI6IHsKKyAgICAgICAgICAibG9naW4iOiAid2ViLXBsYXRmb3Jt
LXRlc3RzIiwKKyAgICAgICAgICAiaWQiOiAzNzIyNjIzMywKKyAgICAgICAgICAibm9kZV9pZCI6
ICJNREV5T2s5eVoyRnVhWHBoZEdsdmJqTTNNakkyTWpNeiIsCisgICAgICAgICAgImF2YXRhcl91
cmwiOiAiaHR0cHM6Ly9hdmF0YXJzMC5naXRodWJ1c2VyY29udGVudC5jb20vdS8zNzIyNjIzMz92
PTQiLAorICAgICAgICAgICJncmF2YXRhcl9pZCI6ICIiLAorICAgICAgICAgICJ1cmwiOiAiaHR0
cHM6Ly9hcGkuZ2l0aHViLmNvbS91c2Vycy93ZWItcGxhdGZvcm0tdGVzdHMiLAorICAgICAgICAg
ICJodG1sX3VybCI6ICJodHRwczovL2dpdGh1Yi5jb20vd2ViLXBsYXRmb3JtLXRlc3RzIiwKKyAg
ICAgICAgICAiZm9sbG93ZXJzX3VybCI6ICJodHRwczovL2FwaS5naXRodWIuY29tL3VzZXJzL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9mb2xsb3dlcnMiLAorICAgICAgICAgICJmb2xsb3dpbmdfdXJsIjog
Imh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vdXNlcnMvd2ViLXBsYXRmb3JtLXRlc3RzL2ZvbGxvd2lu
Z3svb3RoZXJfdXNlcn0iLAorICAgICAgICAgICJnaXN0c191cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0
aHViLmNvbS91c2Vycy93ZWItcGxhdGZvcm0tdGVzdHMvZ2lzdHN7L2dpc3RfaWR9IiwKKyAgICAg
ICAgICAic3RhcnJlZF91cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS91c2Vycy93ZWItcGxh
dGZvcm0tdGVzdHMvc3RhcnJlZHsvb3duZXJ9ey9yZXBvfSIsCisgICAgICAgICAgInN1YnNjcmlw
dGlvbnNfdXJsIjogImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vdXNlcnMvd2ViLXBsYXRmb3JtLXRl
c3RzL3N1YnNjcmlwdGlvbnMiLAorICAgICAgICAgICJvcmdhbml6YXRpb25zX3VybCI6ICJodHRw
czovL2FwaS5naXRodWIuY29tL3VzZXJzL3dlYi1wbGF0Zm9ybS10ZXN0cy9vcmdzIiwKKyAgICAg
ICAgICAicmVwb3NfdXJsIjogImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vdXNlcnMvd2ViLXBsYXRm
b3JtLXRlc3RzL3JlcG9zIiwKKyAgICAgICAgICAiZXZlbnRzX3VybCI6ICJodHRwczovL2FwaS5n
aXRodWIuY29tL3VzZXJzL3dlYi1wbGF0Zm9ybS10ZXN0cy9ldmVudHN7L3ByaXZhY3l9IiwKKyAg
ICAgICAgICAicmVjZWl2ZWRfZXZlbnRzX3VybCI6ICJodHRwczovL2FwaS5naXRodWIuY29tL3Vz
ZXJzL3dlYi1wbGF0Zm9ybS10ZXN0cy9yZWNlaXZlZF9ldmVudHMiLAorICAgICAgICAgICJ0eXBl
IjogIk9yZ2FuaXphdGlvbiIsCisgICAgICAgICAgInNpdGVfYWRtaW4iOiBmYWxzZQorICAgICAg
ICB9LAorICAgICAgICAiaHRtbF91cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9y
bS10ZXN0cy93cHQiLAorICAgICAgICAiZGVzY3JpcHRpb24iOiAiVGVzdCBzdWl0ZXMgZm9yIFdl
YiBwbGF0Zm9ybSBzcGVjcyDigJQgaW5jbHVkaW5nIFdIQVRXRywgVzNDLCBhbmQgb3RoZXJzIiwK
KyAgICAgICAgImZvcmsiOiBmYWxzZSwKKyAgICAgICAgInVybCI6ICJodHRwczovL2FwaS5naXRo
dWIuY29tL3JlcG9zL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQiLAorICAgICAgICAiZm9ya3NfdXJs
IjogImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dwdC9m
b3JrcyIsCisgICAgICAgICJrZXlzX3VybCI6ICJodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9z
L3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQva2V5c3sva2V5X2lkfSIsCisgICAgICAgICJjb2xsYWJv
cmF0b3JzX3VybCI6ICJodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zL3dlYi1wbGF0Zm9ybS10
ZXN0cy93cHQvY29sbGFib3JhdG9yc3svY29sbGFib3JhdG9yfSIsCisgICAgICAgICJ0ZWFtc191
cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy93ZWItcGxhdGZvcm0tdGVzdHMvd3B0
L3RlYW1zIiwKKyAgICAgICAgImhvb2tzX3VybCI6ICJodHRwczovL2FwaS5naXRodWIuY29tL3Jl
cG9zL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQvaG9va3MiLAorICAgICAgICAiaXNzdWVfZXZlbnRz
X3VybCI6ICJodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zL3dlYi1wbGF0Zm9ybS10ZXN0cy93
cHQvaXNzdWVzL2V2ZW50c3svbnVtYmVyfSIsCisgICAgICAgICJldmVudHNfdXJsIjogImh0dHBz
Oi8vYXBpLmdpdGh1Yi5jb20vcmVwb3Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dwdC9ldmVudHMiLAor
ICAgICAgICAiYXNzaWduZWVzX3VybCI6ICJodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zL3dl
Yi1wbGF0Zm9ybS10ZXN0cy93cHQvYXNzaWduZWVzey91c2VyfSIsCisgICAgICAgICJicmFuY2hl
c191cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy93ZWItcGxhdGZvcm0tdGVzdHMv
d3B0L2JyYW5jaGVzey9icmFuY2h9IiwKKyAgICAgICAgInRhZ3NfdXJsIjogImh0dHBzOi8vYXBp
LmdpdGh1Yi5jb20vcmVwb3Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dwdC90YWdzIiwKKyAgICAgICAg
ImJsb2JzX3VybCI6ICJodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zL3dlYi1wbGF0Zm9ybS10
ZXN0cy93cHQvZ2l0L2Jsb2Jzey9zaGF9IiwKKyAgICAgICAgImdpdF90YWdzX3VybCI6ICJodHRw
czovL2FwaS5naXRodWIuY29tL3JlcG9zL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQvZ2l0L3RhZ3N7
L3NoYX0iLAorICAgICAgICAiZ2l0X3JlZnNfdXJsIjogImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20v
cmVwb3Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dwdC9naXQvcmVmc3svc2hhfSIsCisgICAgICAgICJ0
cmVlc191cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy93ZWItcGxhdGZvcm0tdGVz
dHMvd3B0L2dpdC90cmVlc3svc2hhfSIsCisgICAgICAgICJzdGF0dXNlc191cmwiOiAiaHR0cHM6
Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy93ZWItcGxhdGZvcm0tdGVzdHMvd3B0L3N0YXR1c2VzL3tz
aGF9IiwKKyAgICAgICAgImxhbmd1YWdlc191cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9y
ZXBvcy93ZWItcGxhdGZvcm0tdGVzdHMvd3B0L2xhbmd1YWdlcyIsCisgICAgICAgICJzdGFyZ2F6
ZXJzX3VybCI6ICJodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zL3dlYi1wbGF0Zm9ybS10ZXN0
cy93cHQvc3RhcmdhemVycyIsCisgICAgICAgICJjb250cmlidXRvcnNfdXJsIjogImh0dHBzOi8v
YXBpLmdpdGh1Yi5jb20vcmVwb3Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dwdC9jb250cmlidXRvcnMi
LAorICAgICAgICAic3Vic2NyaWJlcnNfdXJsIjogImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVw
b3Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dwdC9zdWJzY3JpYmVycyIsCisgICAgICAgICJzdWJzY3Jp
cHRpb25fdXJsIjogImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3dwdC9zdWJzY3JpcHRpb24iLAorICAgICAgICAiY29tbWl0c191cmwiOiAiaHR0cHM6Ly9h
cGkuZ2l0aHViLmNvbS9yZXBvcy93ZWItcGxhdGZvcm0tdGVzdHMvd3B0L2NvbW1pdHN7L3NoYX0i
LAorICAgICAgICAiZ2l0X2NvbW1pdHNfdXJsIjogImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVw
b3Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dwdC9naXQvY29tbWl0c3svc2hhfSIsCisgICAgICAgICJj
b21tZW50c191cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy93ZWItcGxhdGZvcm0t
dGVzdHMvd3B0L2NvbW1lbnRzey9udW1iZXJ9IiwKKyAgICAgICAgImlzc3VlX2NvbW1lbnRfdXJs
IjogImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dwdC9p
c3N1ZXMvY29tbWVudHN7L251bWJlcn0iLAorICAgICAgICAiY29udGVudHNfdXJsIjogImh0dHBz
Oi8vYXBpLmdpdGh1Yi5jb20vcmVwb3Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dwdC9jb250ZW50cy97
K3BhdGh9IiwKKyAgICAgICAgImNvbXBhcmVfdXJsIjogImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20v
cmVwb3Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dwdC9jb21wYXJlL3tiYXNlfS4uLntoZWFkfSIsCisg
ICAgICAgICJtZXJnZXNfdXJsIjogImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3dwdC9tZXJnZXMiLAorICAgICAgICAiYXJjaGl2ZV91cmwiOiAiaHR0cHM6
Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy93ZWItcGxhdGZvcm0tdGVzdHMvd3B0L3thcmNoaXZlX2Zv
cm1hdH17L3JlZn0iLAorICAgICAgICAiZG93bmxvYWRzX3VybCI6ICJodHRwczovL2FwaS5naXRo
dWIuY29tL3JlcG9zL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQvZG93bmxvYWRzIiwKKyAgICAgICAg
Imlzc3Vlc191cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy93ZWItcGxhdGZvcm0t
dGVzdHMvd3B0L2lzc3Vlc3svbnVtYmVyfSIsCisgICAgICAgICJwdWxsc191cmwiOiAiaHR0cHM6
Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy93ZWItcGxhdGZvcm0tdGVzdHMvd3B0L3B1bGxzey9udW1i
ZXJ9IiwKKyAgICAgICAgIm1pbGVzdG9uZXNfdXJsIjogImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20v
cmVwb3Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dwdC9taWxlc3RvbmVzey9udW1iZXJ9IiwKKyAgICAg
ICAgIm5vdGlmaWNhdGlvbnNfdXJsIjogImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3dwdC9ub3RpZmljYXRpb25zez9zaW5jZSxhbGwscGFydGljaXBhdGlu
Z30iLAorICAgICAgICAibGFiZWxzX3VybCI6ICJodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9z
L3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQvbGFiZWxzey9uYW1lfSIsCisgICAgICAgICJyZWxlYXNl
c191cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy93ZWItcGxhdGZvcm0tdGVzdHMv
d3B0L3JlbGVhc2Vzey9pZH0iLAorICAgICAgICAiZGVwbG95bWVudHNfdXJsIjogImh0dHBzOi8v
YXBpLmdpdGh1Yi5jb20vcmVwb3Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dwdC9kZXBsb3ltZW50cyIs
CisgICAgICAgICJjcmVhdGVkX2F0IjogIjIwMTItMDMtMDRUMTI6NTg6MTFaIiwKKyAgICAgICAg
InVwZGF0ZWRfYXQiOiAiMjAxOS0wMi0yOFQxMjo0MTozM1oiLAorICAgICAgICAicHVzaGVkX2F0
IjogIjIwMTktMDItMjhUMTM6NDM6MTZaIiwKKyAgICAgICAgImdpdF91cmwiOiAiZ2l0Oi8vZ2l0
aHViLmNvbS93ZWItcGxhdGZvcm0tdGVzdHMvd3B0LmdpdCIsCisgICAgICAgICJzc2hfdXJsIjog
ImdpdEBnaXRodWIuY29tOndlYi1wbGF0Zm9ybS10ZXN0cy93cHQuZ2l0IiwKKyAgICAgICAgImNs
b25lX3VybCI6ICJodHRwczovL2dpdGh1Yi5jb20vd2ViLXBsYXRmb3JtLXRlc3RzL3dwdC5naXQi
LAorICAgICAgICAic3ZuX3VybCI6ICJodHRwczovL2dpdGh1Yi5jb20vd2ViLXBsYXRmb3JtLXRl
c3RzL3dwdCIsCisgICAgICAgICJob21lcGFnZSI6ICJodHRwOi8vaXJjLnczLm9yZy8/Y2hhbm5l
bHM9dGVzdGluZyIsCisgICAgICAgICJzaXplIjogMzI0NjQxLAorICAgICAgICAic3RhcmdhemVy
c19jb3VudCI6IDIwNTgsCisgICAgICAgICJ3YXRjaGVyc19jb3VudCI6IDIwNTgsCisgICAgICAg
ICJsYW5ndWFnZSI6ICJIVE1MIiwKKyAgICAgICAgImhhc19pc3N1ZXMiOiB0cnVlLAorICAgICAg
ICAiaGFzX3Byb2plY3RzIjogdHJ1ZSwKKyAgICAgICAgImhhc19kb3dubG9hZHMiOiB0cnVlLAor
ICAgICAgICAiaGFzX3dpa2kiOiB0cnVlLAorICAgICAgICAiaGFzX3BhZ2VzIjogdHJ1ZSwKKyAg
ICAgICAgImZvcmtzX2NvdW50IjogMTYwNCwKKyAgICAgICAgIm1pcnJvcl91cmwiOiBudWxsLAor
ICAgICAgICAiYXJjaGl2ZWQiOiBmYWxzZSwKKyAgICAgICAgIm9wZW5faXNzdWVzX2NvdW50Ijog
MTM1NCwKKyAgICAgICAgImxpY2Vuc2UiOiB7CisgICAgICAgICAgImtleSI6ICJvdGhlciIsCisg
ICAgICAgICAgIm5hbWUiOiAiT3RoZXIiLAorICAgICAgICAgICJzcGR4X2lkIjogIk5PQVNTRVJU
SU9OIiwKKyAgICAgICAgICAidXJsIjogbnVsbCwKKyAgICAgICAgICAibm9kZV9pZCI6ICJNRGM2
VEdsalpXNXpaVEE9IgorICAgICAgICB9LAorICAgICAgICAiZm9ya3MiOiAxNjA0LAorICAgICAg
ICAib3Blbl9pc3N1ZXMiOiAxMzU0LAorICAgICAgICAid2F0Y2hlcnMiOiAyMDU4LAorICAgICAg
ICAiZGVmYXVsdF9icmFuY2giOiAibWFzdGVyIgorICAgICAgfQorICAgIH0sCisgICAgImJhc2Ui
OiB7CisgICAgICAibGFiZWwiOiAid2ViLXBsYXRmb3JtLXRlc3RzOm1hc3RlciIsCisgICAgICAi
cmVmIjogIm1hc3RlciIsCisgICAgICAic2hhIjogImJiNjU3YzRiZDBjYzQ3MjlkYWEyN2MxZjNh
MWUxZjg2ZWY1YTFkYzAiLAorICAgICAgInVzZXIiOiB7CisgICAgICAgICJsb2dpbiI6ICJ3ZWIt
cGxhdGZvcm0tdGVzdHMiLAorICAgICAgICAiaWQiOiAzNzIyNjIzMywKKyAgICAgICAgIm5vZGVf
aWQiOiAiTURFeU9rOXlaMkZ1YVhwaGRHbHZiak0zTWpJMk1qTXoiLAorICAgICAgICAiYXZhdGFy
X3VybCI6ICJodHRwczovL2F2YXRhcnMwLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzM3MjI2MjMz
P3Y9NCIsCisgICAgICAgICJncmF2YXRhcl9pZCI6ICIiLAorICAgICAgICAidXJsIjogImh0dHBz
Oi8vYXBpLmdpdGh1Yi5jb20vdXNlcnMvd2ViLXBsYXRmb3JtLXRlc3RzIiwKKyAgICAgICAgImh0
bWxfdXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxhdGZvcm0tdGVzdHMiLAorICAgICAg
ICAiZm9sbG93ZXJzX3VybCI6ICJodHRwczovL2FwaS5naXRodWIuY29tL3VzZXJzL3dlYi1wbGF0
Zm9ybS10ZXN0cy9mb2xsb3dlcnMiLAorICAgICAgICAiZm9sbG93aW5nX3VybCI6ICJodHRwczov
L2FwaS5naXRodWIuY29tL3VzZXJzL3dlYi1wbGF0Zm9ybS10ZXN0cy9mb2xsb3dpbmd7L290aGVy
X3VzZXJ9IiwKKyAgICAgICAgImdpc3RzX3VybCI6ICJodHRwczovL2FwaS5naXRodWIuY29tL3Vz
ZXJzL3dlYi1wbGF0Zm9ybS10ZXN0cy9naXN0c3svZ2lzdF9pZH0iLAorICAgICAgICAic3RhcnJl
ZF91cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS91c2Vycy93ZWItcGxhdGZvcm0tdGVzdHMv
c3RhcnJlZHsvb3duZXJ9ey9yZXBvfSIsCisgICAgICAgICJzdWJzY3JpcHRpb25zX3VybCI6ICJo
dHRwczovL2FwaS5naXRodWIuY29tL3VzZXJzL3dlYi1wbGF0Zm9ybS10ZXN0cy9zdWJzY3JpcHRp
b25zIiwKKyAgICAgICAgIm9yZ2FuaXphdGlvbnNfdXJsIjogImh0dHBzOi8vYXBpLmdpdGh1Yi5j
b20vdXNlcnMvd2ViLXBsYXRmb3JtLXRlc3RzL29yZ3MiLAorICAgICAgICAicmVwb3NfdXJsIjog
Imh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vdXNlcnMvd2ViLXBsYXRmb3JtLXRlc3RzL3JlcG9zIiwK
KyAgICAgICAgImV2ZW50c191cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS91c2Vycy93ZWIt
cGxhdGZvcm0tdGVzdHMvZXZlbnRzey9wcml2YWN5fSIsCisgICAgICAgICJyZWNlaXZlZF9ldmVu
dHNfdXJsIjogImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vdXNlcnMvd2ViLXBsYXRmb3JtLXRlc3Rz
L3JlY2VpdmVkX2V2ZW50cyIsCisgICAgICAgICJ0eXBlIjogIk9yZ2FuaXphdGlvbiIsCisgICAg
ICAgICJzaXRlX2FkbWluIjogZmFsc2UKKyAgICAgIH0sCisgICAgICAicmVwbyI6IHsKKyAgICAg
ICAgImlkIjogMzYxODEzMywKKyAgICAgICAgIm5vZGVfaWQiOiAiTURFd09sSmxjRzl6YVhSdmNu
a3pOakU0TVRNeiIsCisgICAgICAgICJuYW1lIjogIndwdCIsCisgICAgICAgICJmdWxsX25hbWUi
OiAid2ViLXBsYXRmb3JtLXRlc3RzL3dwdCIsCisgICAgICAgICJwcml2YXRlIjogZmFsc2UsCisg
ICAgICAgICJvd25lciI6IHsKKyAgICAgICAgICAibG9naW4iOiAid2ViLXBsYXRmb3JtLXRlc3Rz
IiwKKyAgICAgICAgICAiaWQiOiAzNzIyNjIzMywKKyAgICAgICAgICAibm9kZV9pZCI6ICJNREV5
T2s5eVoyRnVhWHBoZEdsdmJqTTNNakkyTWpNeiIsCisgICAgICAgICAgImF2YXRhcl91cmwiOiAi
aHR0cHM6Ly9hdmF0YXJzMC5naXRodWJ1c2VyY29udGVudC5jb20vdS8zNzIyNjIzMz92PTQiLAor
ICAgICAgICAgICJncmF2YXRhcl9pZCI6ICIiLAorICAgICAgICAgICJ1cmwiOiAiaHR0cHM6Ly9h
cGkuZ2l0aHViLmNvbS91c2Vycy93ZWItcGxhdGZvcm0tdGVzdHMiLAorICAgICAgICAgICJodG1s
X3VybCI6ICJodHRwczovL2dpdGh1Yi5jb20vd2ViLXBsYXRmb3JtLXRlc3RzIiwKKyAgICAgICAg
ICAiZm9sbG93ZXJzX3VybCI6ICJodHRwczovL2FwaS5naXRodWIuY29tL3VzZXJzL3dlYi1wbGF0
Zm9ybS10ZXN0cy9mb2xsb3dlcnMiLAorICAgICAgICAgICJmb2xsb3dpbmdfdXJsIjogImh0dHBz
Oi8vYXBpLmdpdGh1Yi5jb20vdXNlcnMvd2ViLXBsYXRmb3JtLXRlc3RzL2ZvbGxvd2luZ3svb3Ro
ZXJfdXNlcn0iLAorICAgICAgICAgICJnaXN0c191cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNv
bS91c2Vycy93ZWItcGxhdGZvcm0tdGVzdHMvZ2lzdHN7L2dpc3RfaWR9IiwKKyAgICAgICAgICAi
c3RhcnJlZF91cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS91c2Vycy93ZWItcGxhdGZvcm0t
dGVzdHMvc3RhcnJlZHsvb3duZXJ9ey9yZXBvfSIsCisgICAgICAgICAgInN1YnNjcmlwdGlvbnNf
dXJsIjogImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vdXNlcnMvd2ViLXBsYXRmb3JtLXRlc3RzL3N1
YnNjcmlwdGlvbnMiLAorICAgICAgICAgICJvcmdhbml6YXRpb25zX3VybCI6ICJodHRwczovL2Fw
aS5naXRodWIuY29tL3VzZXJzL3dlYi1wbGF0Zm9ybS10ZXN0cy9vcmdzIiwKKyAgICAgICAgICAi
cmVwb3NfdXJsIjogImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vdXNlcnMvd2ViLXBsYXRmb3JtLXRl
c3RzL3JlcG9zIiwKKyAgICAgICAgICAiZXZlbnRzX3VybCI6ICJodHRwczovL2FwaS5naXRodWIu
Y29tL3VzZXJzL3dlYi1wbGF0Zm9ybS10ZXN0cy9ldmVudHN7L3ByaXZhY3l9IiwKKyAgICAgICAg
ICAicmVjZWl2ZWRfZXZlbnRzX3VybCI6ICJodHRwczovL2FwaS5naXRodWIuY29tL3VzZXJzL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9yZWNlaXZlZF9ldmVudHMiLAorICAgICAgICAgICJ0eXBlIjogIk9y
Z2FuaXphdGlvbiIsCisgICAgICAgICAgInNpdGVfYWRtaW4iOiBmYWxzZQorICAgICAgICB9LAor
ICAgICAgICAiaHRtbF91cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9ybS10ZXN0
cy93cHQiLAorICAgICAgICAiZGVzY3JpcHRpb24iOiAiVGVzdCBzdWl0ZXMgZm9yIFdlYiBwbGF0
Zm9ybSBzcGVjcyDigJQgaW5jbHVkaW5nIFdIQVRXRywgVzNDLCBhbmQgb3RoZXJzIiwKKyAgICAg
ICAgImZvcmsiOiBmYWxzZSwKKyAgICAgICAgInVybCI6ICJodHRwczovL2FwaS5naXRodWIuY29t
L3JlcG9zL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQiLAorICAgICAgICAiZm9ya3NfdXJsIjogImh0
dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dwdC9mb3JrcyIs
CisgICAgICAgICJrZXlzX3VybCI6ICJodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zL3dlYi1w
bGF0Zm9ybS10ZXN0cy93cHQva2V5c3sva2V5X2lkfSIsCisgICAgICAgICJjb2xsYWJvcmF0b3Jz
X3VybCI6ICJodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zL3dlYi1wbGF0Zm9ybS10ZXN0cy93
cHQvY29sbGFib3JhdG9yc3svY29sbGFib3JhdG9yfSIsCisgICAgICAgICJ0ZWFtc191cmwiOiAi
aHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy93ZWItcGxhdGZvcm0tdGVzdHMvd3B0L3RlYW1z
IiwKKyAgICAgICAgImhvb2tzX3VybCI6ICJodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zL3dl
Yi1wbGF0Zm9ybS10ZXN0cy93cHQvaG9va3MiLAorICAgICAgICAiaXNzdWVfZXZlbnRzX3VybCI6
ICJodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQvaXNz
dWVzL2V2ZW50c3svbnVtYmVyfSIsCisgICAgICAgICJldmVudHNfdXJsIjogImh0dHBzOi8vYXBp
LmdpdGh1Yi5jb20vcmVwb3Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dwdC9ldmVudHMiLAorICAgICAg
ICAiYXNzaWduZWVzX3VybCI6ICJodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zL3dlYi1wbGF0
Zm9ybS10ZXN0cy93cHQvYXNzaWduZWVzey91c2VyfSIsCisgICAgICAgICJicmFuY2hlc191cmwi
OiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy93ZWItcGxhdGZvcm0tdGVzdHMvd3B0L2Jy
YW5jaGVzey9icmFuY2h9IiwKKyAgICAgICAgInRhZ3NfdXJsIjogImh0dHBzOi8vYXBpLmdpdGh1
Yi5jb20vcmVwb3Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dwdC90YWdzIiwKKyAgICAgICAgImJsb2Jz
X3VybCI6ICJodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zL3dlYi1wbGF0Zm9ybS10ZXN0cy93
cHQvZ2l0L2Jsb2Jzey9zaGF9IiwKKyAgICAgICAgImdpdF90YWdzX3VybCI6ICJodHRwczovL2Fw
aS5naXRodWIuY29tL3JlcG9zL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQvZ2l0L3RhZ3N7L3NoYX0i
LAorICAgICAgICAiZ2l0X3JlZnNfdXJsIjogImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3dwdC9naXQvcmVmc3svc2hhfSIsCisgICAgICAgICJ0cmVlc191
cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy93ZWItcGxhdGZvcm0tdGVzdHMvd3B0
L2dpdC90cmVlc3svc2hhfSIsCisgICAgICAgICJzdGF0dXNlc191cmwiOiAiaHR0cHM6Ly9hcGku
Z2l0aHViLmNvbS9yZXBvcy93ZWItcGxhdGZvcm0tdGVzdHMvd3B0L3N0YXR1c2VzL3tzaGF9IiwK
KyAgICAgICAgImxhbmd1YWdlc191cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy93
ZWItcGxhdGZvcm0tdGVzdHMvd3B0L2xhbmd1YWdlcyIsCisgICAgICAgICJzdGFyZ2F6ZXJzX3Vy
bCI6ICJodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQv
c3RhcmdhemVycyIsCisgICAgICAgICJjb250cmlidXRvcnNfdXJsIjogImh0dHBzOi8vYXBpLmdp
dGh1Yi5jb20vcmVwb3Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dwdC9jb250cmlidXRvcnMiLAorICAg
ICAgICAic3Vic2NyaWJlcnNfdXJsIjogImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3dwdC9zdWJzY3JpYmVycyIsCisgICAgICAgICJzdWJzY3JpcHRpb25f
dXJsIjogImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dw
dC9zdWJzY3JpcHRpb24iLAorICAgICAgICAiY29tbWl0c191cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0
aHViLmNvbS9yZXBvcy93ZWItcGxhdGZvcm0tdGVzdHMvd3B0L2NvbW1pdHN7L3NoYX0iLAorICAg
ICAgICAiZ2l0X2NvbW1pdHNfdXJsIjogImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3dwdC9naXQvY29tbWl0c3svc2hhfSIsCisgICAgICAgICJjb21tZW50
c191cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy93ZWItcGxhdGZvcm0tdGVzdHMv
d3B0L2NvbW1lbnRzey9udW1iZXJ9IiwKKyAgICAgICAgImlzc3VlX2NvbW1lbnRfdXJsIjogImh0
dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dwdC9pc3N1ZXMv
Y29tbWVudHN7L251bWJlcn0iLAorICAgICAgICAiY29udGVudHNfdXJsIjogImh0dHBzOi8vYXBp
LmdpdGh1Yi5jb20vcmVwb3Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dwdC9jb250ZW50cy97K3BhdGh9
IiwKKyAgICAgICAgImNvbXBhcmVfdXJsIjogImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3dwdC9jb21wYXJlL3tiYXNlfS4uLntoZWFkfSIsCisgICAgICAg
ICJtZXJnZXNfdXJsIjogImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3dwdC9tZXJnZXMiLAorICAgICAgICAiYXJjaGl2ZV91cmwiOiAiaHR0cHM6Ly9hcGku
Z2l0aHViLmNvbS9yZXBvcy93ZWItcGxhdGZvcm0tdGVzdHMvd3B0L3thcmNoaXZlX2Zvcm1hdH17
L3JlZn0iLAorICAgICAgICAiZG93bmxvYWRzX3VybCI6ICJodHRwczovL2FwaS5naXRodWIuY29t
L3JlcG9zL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQvZG93bmxvYWRzIiwKKyAgICAgICAgImlzc3Vl
c191cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy93ZWItcGxhdGZvcm0tdGVzdHMv
d3B0L2lzc3Vlc3svbnVtYmVyfSIsCisgICAgICAgICJwdWxsc191cmwiOiAiaHR0cHM6Ly9hcGku
Z2l0aHViLmNvbS9yZXBvcy93ZWItcGxhdGZvcm0tdGVzdHMvd3B0L3B1bGxzey9udW1iZXJ9IiwK
KyAgICAgICAgIm1pbGVzdG9uZXNfdXJsIjogImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3dwdC9taWxlc3RvbmVzey9udW1iZXJ9IiwKKyAgICAgICAgIm5v
dGlmaWNhdGlvbnNfdXJsIjogImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3dwdC9ub3RpZmljYXRpb25zez9zaW5jZSxhbGwscGFydGljaXBhdGluZ30iLAor
ICAgICAgICAibGFiZWxzX3VybCI6ICJodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zL3dlYi1w
bGF0Zm9ybS10ZXN0cy93cHQvbGFiZWxzey9uYW1lfSIsCisgICAgICAgICJyZWxlYXNlc191cmwi
OiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy93ZWItcGxhdGZvcm0tdGVzdHMvd3B0L3Jl
bGVhc2Vzey9pZH0iLAorICAgICAgICAiZGVwbG95bWVudHNfdXJsIjogImh0dHBzOi8vYXBpLmdp
dGh1Yi5jb20vcmVwb3Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dwdC9kZXBsb3ltZW50cyIsCisgICAg
ICAgICJjcmVhdGVkX2F0IjogIjIwMTItMDMtMDRUMTI6NTg6MTFaIiwKKyAgICAgICAgInVwZGF0
ZWRfYXQiOiAiMjAxOS0wMi0yOFQxMjo0MTozM1oiLAorICAgICAgICAicHVzaGVkX2F0IjogIjIw
MTktMDItMjhUMTM6NDM6MTZaIiwKKyAgICAgICAgImdpdF91cmwiOiAiZ2l0Oi8vZ2l0aHViLmNv
bS93ZWItcGxhdGZvcm0tdGVzdHMvd3B0LmdpdCIsCisgICAgICAgICJzc2hfdXJsIjogImdpdEBn
aXRodWIuY29tOndlYi1wbGF0Zm9ybS10ZXN0cy93cHQuZ2l0IiwKKyAgICAgICAgImNsb25lX3Vy
bCI6ICJodHRwczovL2dpdGh1Yi5jb20vd2ViLXBsYXRmb3JtLXRlc3RzL3dwdC5naXQiLAorICAg
ICAgICAic3ZuX3VybCI6ICJodHRwczovL2dpdGh1Yi5jb20vd2ViLXBsYXRmb3JtLXRlc3RzL3dw
dCIsCisgICAgICAgICJob21lcGFnZSI6ICJodHRwOi8vaXJjLnczLm9yZy8/Y2hhbm5lbHM9dGVz
dGluZyIsCisgICAgICAgICJzaXplIjogMzI0NjQxLAorICAgICAgICAic3RhcmdhemVyc19jb3Vu
dCI6IDIwNTgsCisgICAgICAgICJ3YXRjaGVyc19jb3VudCI6IDIwNTgsCisgICAgICAgICJsYW5n
dWFnZSI6ICJIVE1MIiwKKyAgICAgICAgImhhc19pc3N1ZXMiOiB0cnVlLAorICAgICAgICAiaGFz
X3Byb2plY3RzIjogdHJ1ZSwKKyAgICAgICAgImhhc19kb3dubG9hZHMiOiB0cnVlLAorICAgICAg
ICAiaGFzX3dpa2kiOiB0cnVlLAorICAgICAgICAiaGFzX3BhZ2VzIjogdHJ1ZSwKKyAgICAgICAg
ImZvcmtzX2NvdW50IjogMTYwNCwKKyAgICAgICAgIm1pcnJvcl91cmwiOiBudWxsLAorICAgICAg
ICAiYXJjaGl2ZWQiOiBmYWxzZSwKKyAgICAgICAgIm9wZW5faXNzdWVzX2NvdW50IjogMTM1NCwK
KyAgICAgICAgImxpY2Vuc2UiOiB7CisgICAgICAgICAgImtleSI6ICJvdGhlciIsCisgICAgICAg
ICAgIm5hbWUiOiAiT3RoZXIiLAorICAgICAgICAgICJzcGR4X2lkIjogIk5PQVNTRVJUSU9OIiwK
KyAgICAgICAgICAidXJsIjogbnVsbCwKKyAgICAgICAgICAibm9kZV9pZCI6ICJNRGM2VEdsalpX
NXpaVEE9IgorICAgICAgICB9LAorICAgICAgICAiZm9ya3MiOiAxNjA0LAorICAgICAgICAib3Bl
bl9pc3N1ZXMiOiAxMzU0LAorICAgICAgICAid2F0Y2hlcnMiOiAyMDU4LAorICAgICAgICAiZGVm
YXVsdF9icmFuY2giOiAibWFzdGVyIgorICAgICAgfQorICAgIH0sCisgICAgIl9saW5rcyI6IHsK
KyAgICAgICJzZWxmIjogeworICAgICAgICAiaHJlZiI6ICJodHRwczovL2FwaS5naXRodWIuY29t
L3JlcG9zL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQvcHVsbHMvMTU1NzQiCisgICAgICB9LAorICAg
ICAgImh0bWwiOiB7CisgICAgICAgICJocmVmIjogImh0dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxh
dGZvcm0tdGVzdHMvd3B0L3B1bGwvMTU1NzQiCisgICAgICB9LAorICAgICAgImlzc3VlIjogewor
ICAgICAgICAiaHJlZiI6ICJodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zL3dlYi1wbGF0Zm9y
bS10ZXN0cy93cHQvaXNzdWVzLzE1NTc0IgorICAgICAgfSwKKyAgICAgICJjb21tZW50cyI6IHsK
KyAgICAgICAgImhyZWYiOiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy93ZWItcGxhdGZv
cm0tdGVzdHMvd3B0L2lzc3Vlcy8xNTU3NC9jb21tZW50cyIKKyAgICAgIH0sCisgICAgICAicmV2
aWV3X2NvbW1lbnRzIjogeworICAgICAgICAiaHJlZiI6ICJodHRwczovL2FwaS5naXRodWIuY29t
L3JlcG9zL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQvcHVsbHMvMTU1NzQvY29tbWVudHMiCisgICAg
ICB9LAorICAgICAgInJldmlld19jb21tZW50IjogeworICAgICAgICAiaHJlZiI6ICJodHRwczov
L2FwaS5naXRodWIuY29tL3JlcG9zL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQvcHVsbHMvY29tbWVu
dHN7L251bWJlcn0iCisgICAgICB9LAorICAgICAgImNvbW1pdHMiOiB7CisgICAgICAgICJocmVm
IjogImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dwdC9w
dWxscy8xNTU3NC9jb21taXRzIgorICAgICAgfSwKKyAgICAgICJzdGF0dXNlcyI6IHsKKyAgICAg
ICAgImhyZWYiOiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy93ZWItcGxhdGZvcm0tdGVz
dHMvd3B0L3N0YXR1c2VzL2ZlZjY5YzVkNDcxOTY0MzMyMzRkNmMzN2EwZmY5ODc0OTFiZDJkZmMi
CisgICAgICB9CisgICAgfSwKKyAgICAiYXV0aG9yX2Fzc29jaWF0aW9uIjogIkNPTlRSSUJVVE9S
IiwKKyAgICAiZHJhZnQiOiBmYWxzZSwKKyAgICAibWVyZ2VkIjogZmFsc2UsCisgICAgIm1lcmdl
YWJsZSI6IG51bGwsCisgICAgInJlYmFzZWFibGUiOiBudWxsLAorICAgICJtZXJnZWFibGVfc3Rh
dGUiOiAidW5rbm93biIsCisgICAgIm1lcmdlZF9ieSI6IG51bGwsCisgICAgImNvbW1lbnRzIjog
MiwKKyAgICAicmV2aWV3X2NvbW1lbnRzIjogMywKKyAgICAibWFpbnRhaW5lcl9jYW5fbW9kaWZ5
IjogZmFsc2UsCisgICAgImNvbW1pdHMiOiAyLAorICAgICJhZGRpdGlvbnMiOiA1NSwKKyAgICAi
ZGVsZXRpb25zIjogNywKKyAgICAiY2hhbmdlZF9maWxlcyI6IDMKKyAgfSwKKyAgImJlZm9yZSI6
ICI0NmQyZjMxNmFlMTBiODM3MjZkZmI0MzE1MGIzMjE1MzNiYzk1MzlmIiwKKyAgImFmdGVyIjog
ImZlZjY5YzVkNDcxOTY0MzMyMzRkNmMzN2EwZmY5ODc0OTFiZDJkZmMiLAorICAicmVwb3NpdG9y
eSI6IHsKKyAgICAiaWQiOiAzNjE4MTMzLAorICAgICJub2RlX2lkIjogIk1ERXdPbEpsY0c5emFY
UnZjbmt6TmpFNE1UTXoiLAorICAgICJuYW1lIjogIndwdCIsCisgICAgImZ1bGxfbmFtZSI6ICJ3
ZWItcGxhdGZvcm0tdGVzdHMvd3B0IiwKKyAgICAicHJpdmF0ZSI6IGZhbHNlLAorICAgICJvd25l
ciI6IHsKKyAgICAgICJsb2dpbiI6ICJ3ZWItcGxhdGZvcm0tdGVzdHMiLAorICAgICAgImlkIjog
MzcyMjYyMzMsCisgICAgICAibm9kZV9pZCI6ICJNREV5T2s5eVoyRnVhWHBoZEdsdmJqTTNNakky
TWpNeiIsCisgICAgICAiYXZhdGFyX3VybCI6ICJodHRwczovL2F2YXRhcnMwLmdpdGh1YnVzZXJj
b250ZW50LmNvbS91LzM3MjI2MjMzP3Y9NCIsCisgICAgICAiZ3JhdmF0YXJfaWQiOiAiIiwKKyAg
ICAgICJ1cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS91c2Vycy93ZWItcGxhdGZvcm0tdGVz
dHMiLAorICAgICAgImh0bWxfdXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxhdGZvcm0t
dGVzdHMiLAorICAgICAgImZvbGxvd2Vyc191cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS91
c2Vycy93ZWItcGxhdGZvcm0tdGVzdHMvZm9sbG93ZXJzIiwKKyAgICAgICJmb2xsb3dpbmdfdXJs
IjogImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vdXNlcnMvd2ViLXBsYXRmb3JtLXRlc3RzL2ZvbGxv
d2luZ3svb3RoZXJfdXNlcn0iLAorICAgICAgImdpc3RzX3VybCI6ICJodHRwczovL2FwaS5naXRo
dWIuY29tL3VzZXJzL3dlYi1wbGF0Zm9ybS10ZXN0cy9naXN0c3svZ2lzdF9pZH0iLAorICAgICAg
InN0YXJyZWRfdXJsIjogImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vdXNlcnMvd2ViLXBsYXRmb3Jt
LXRlc3RzL3N0YXJyZWR7L293bmVyfXsvcmVwb30iLAorICAgICAgInN1YnNjcmlwdGlvbnNfdXJs
IjogImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vdXNlcnMvd2ViLXBsYXRmb3JtLXRlc3RzL3N1YnNj
cmlwdGlvbnMiLAorICAgICAgIm9yZ2FuaXphdGlvbnNfdXJsIjogImh0dHBzOi8vYXBpLmdpdGh1
Yi5jb20vdXNlcnMvd2ViLXBsYXRmb3JtLXRlc3RzL29yZ3MiLAorICAgICAgInJlcG9zX3VybCI6
ICJodHRwczovL2FwaS5naXRodWIuY29tL3VzZXJzL3dlYi1wbGF0Zm9ybS10ZXN0cy9yZXBvcyIs
CisgICAgICAiZXZlbnRzX3VybCI6ICJodHRwczovL2FwaS5naXRodWIuY29tL3VzZXJzL3dlYi1w
bGF0Zm9ybS10ZXN0cy9ldmVudHN7L3ByaXZhY3l9IiwKKyAgICAgICJyZWNlaXZlZF9ldmVudHNf
dXJsIjogImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vdXNlcnMvd2ViLXBsYXRmb3JtLXRlc3RzL3Jl
Y2VpdmVkX2V2ZW50cyIsCisgICAgICAidHlwZSI6ICJPcmdhbml6YXRpb24iLAorICAgICAgInNp
dGVfYWRtaW4iOiBmYWxzZQorICAgIH0sCisgICAgImh0bWxfdXJsIjogImh0dHBzOi8vZ2l0aHVi
LmNvbS93ZWItcGxhdGZvcm0tdGVzdHMvd3B0IiwKKyAgICAiZGVzY3JpcHRpb24iOiAiVGVzdCBz
dWl0ZXMgZm9yIFdlYiBwbGF0Zm9ybSBzcGVjcyDigJQgaW5jbHVkaW5nIFdIQVRXRywgVzNDLCBh
bmQgb3RoZXJzIiwKKyAgICAiZm9yayI6IGZhbHNlLAorICAgICJ1cmwiOiAiaHR0cHM6Ly9hcGku
Z2l0aHViLmNvbS9yZXBvcy93ZWItcGxhdGZvcm0tdGVzdHMvd3B0IiwKKyAgICAiZm9ya3NfdXJs
IjogImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dwdC9m
b3JrcyIsCisgICAgImtleXNfdXJsIjogImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3dwdC9rZXlzey9rZXlfaWR9IiwKKyAgICAiY29sbGFib3JhdG9yc191
cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy93ZWItcGxhdGZvcm0tdGVzdHMvd3B0
L2NvbGxhYm9yYXRvcnN7L2NvbGxhYm9yYXRvcn0iLAorICAgICJ0ZWFtc191cmwiOiAiaHR0cHM6
Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy93ZWItcGxhdGZvcm0tdGVzdHMvd3B0L3RlYW1zIiwKKyAg
ICAiaG9va3NfdXJsIjogImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3dwdC9ob29rcyIsCisgICAgImlzc3VlX2V2ZW50c191cmwiOiAiaHR0cHM6Ly9hcGku
Z2l0aHViLmNvbS9yZXBvcy93ZWItcGxhdGZvcm0tdGVzdHMvd3B0L2lzc3Vlcy9ldmVudHN7L251
bWJlcn0iLAorICAgICJldmVudHNfdXJsIjogImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3dwdC9ldmVudHMiLAorICAgICJhc3NpZ25lZXNfdXJsIjogImh0
dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dwdC9hc3NpZ25l
ZXN7L3VzZXJ9IiwKKyAgICAiYnJhbmNoZXNfdXJsIjogImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20v
cmVwb3Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dwdC9icmFuY2hlc3svYnJhbmNofSIsCisgICAgInRh
Z3NfdXJsIjogImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3dwdC90YWdzIiwKKyAgICAiYmxvYnNfdXJsIjogImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVw
b3Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dwdC9naXQvYmxvYnN7L3NoYX0iLAorICAgICJnaXRfdGFn
c191cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy93ZWItcGxhdGZvcm0tdGVzdHMv
d3B0L2dpdC90YWdzey9zaGF9IiwKKyAgICAiZ2l0X3JlZnNfdXJsIjogImh0dHBzOi8vYXBpLmdp
dGh1Yi5jb20vcmVwb3Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dwdC9naXQvcmVmc3svc2hhfSIsCisg
ICAgInRyZWVzX3VybCI6ICJodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zL3dlYi1wbGF0Zm9y
bS10ZXN0cy93cHQvZ2l0L3RyZWVzey9zaGF9IiwKKyAgICAic3RhdHVzZXNfdXJsIjogImh0dHBz
Oi8vYXBpLmdpdGh1Yi5jb20vcmVwb3Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dwdC9zdGF0dXNlcy97
c2hhfSIsCisgICAgImxhbmd1YWdlc191cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBv
cy93ZWItcGxhdGZvcm0tdGVzdHMvd3B0L2xhbmd1YWdlcyIsCisgICAgInN0YXJnYXplcnNfdXJs
IjogImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dwdC9z
dGFyZ2F6ZXJzIiwKKyAgICAiY29udHJpYnV0b3JzX3VybCI6ICJodHRwczovL2FwaS5naXRodWIu
Y29tL3JlcG9zL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQvY29udHJpYnV0b3JzIiwKKyAgICAic3Vi
c2NyaWJlcnNfdXJsIjogImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3dwdC9zdWJzY3JpYmVycyIsCisgICAgInN1YnNjcmlwdGlvbl91cmwiOiAiaHR0cHM6
Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy93ZWItcGxhdGZvcm0tdGVzdHMvd3B0L3N1YnNjcmlwdGlv
biIsCisgICAgImNvbW1pdHNfdXJsIjogImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3dwdC9jb21taXRzey9zaGF9IiwKKyAgICAiZ2l0X2NvbW1pdHNfdXJs
IjogImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dwdC9n
aXQvY29tbWl0c3svc2hhfSIsCisgICAgImNvbW1lbnRzX3VybCI6ICJodHRwczovL2FwaS5naXRo
dWIuY29tL3JlcG9zL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQvY29tbWVudHN7L251bWJlcn0iLAor
ICAgICJpc3N1ZV9jb21tZW50X3VybCI6ICJodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zL3dl
Yi1wbGF0Zm9ybS10ZXN0cy93cHQvaXNzdWVzL2NvbW1lbnRzey9udW1iZXJ9IiwKKyAgICAiY29u
dGVudHNfdXJsIjogImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3dwdC9jb250ZW50cy97K3BhdGh9IiwKKyAgICAiY29tcGFyZV91cmwiOiAiaHR0cHM6Ly9h
cGkuZ2l0aHViLmNvbS9yZXBvcy93ZWItcGxhdGZvcm0tdGVzdHMvd3B0L2NvbXBhcmUve2Jhc2V9
Li4ue2hlYWR9IiwKKyAgICAibWVyZ2VzX3VybCI6ICJodHRwczovL2FwaS5naXRodWIuY29tL3Jl
cG9zL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQvbWVyZ2VzIiwKKyAgICAiYXJjaGl2ZV91cmwiOiAi
aHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy93ZWItcGxhdGZvcm0tdGVzdHMvd3B0L3thcmNo
aXZlX2Zvcm1hdH17L3JlZn0iLAorICAgICJkb3dubG9hZHNfdXJsIjogImh0dHBzOi8vYXBpLmdp
dGh1Yi5jb20vcmVwb3Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dwdC9kb3dubG9hZHMiLAorICAgICJp
c3N1ZXNfdXJsIjogImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3dwdC9pc3N1ZXN7L251bWJlcn0iLAorICAgICJwdWxsc191cmwiOiAiaHR0cHM6Ly9hcGku
Z2l0aHViLmNvbS9yZXBvcy93ZWItcGxhdGZvcm0tdGVzdHMvd3B0L3B1bGxzey9udW1iZXJ9IiwK
KyAgICAibWlsZXN0b25lc191cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy93ZWIt
cGxhdGZvcm0tdGVzdHMvd3B0L21pbGVzdG9uZXN7L251bWJlcn0iLAorICAgICJub3RpZmljYXRp
b25zX3VybCI6ICJodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zL3dlYi1wbGF0Zm9ybS10ZXN0
cy93cHQvbm90aWZpY2F0aW9uc3s/c2luY2UsYWxsLHBhcnRpY2lwYXRpbmd9IiwKKyAgICAibGFi
ZWxzX3VybCI6ICJodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zL3dlYi1wbGF0Zm9ybS10ZXN0
cy93cHQvbGFiZWxzey9uYW1lfSIsCisgICAgInJlbGVhc2VzX3VybCI6ICJodHRwczovL2FwaS5n
aXRodWIuY29tL3JlcG9zL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQvcmVsZWFzZXN7L2lkfSIsCisg
ICAgImRlcGxveW1lbnRzX3VybCI6ICJodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zL3dlYi1w
bGF0Zm9ybS10ZXN0cy93cHQvZGVwbG95bWVudHMiLAorICAgICJjcmVhdGVkX2F0IjogIjIwMTIt
MDMtMDRUMTI6NTg6MTFaIiwKKyAgICAidXBkYXRlZF9hdCI6ICIyMDE5LTAyLTI4VDEyOjQxOjMz
WiIsCisgICAgInB1c2hlZF9hdCI6ICIyMDE5LTAyLTI4VDEzOjQzOjE2WiIsCisgICAgImdpdF91
cmwiOiAiZ2l0Oi8vZ2l0aHViLmNvbS93ZWItcGxhdGZvcm0tdGVzdHMvd3B0LmdpdCIsCisgICAg
InNzaF91cmwiOiAiZ2l0QGdpdGh1Yi5jb206d2ViLXBsYXRmb3JtLXRlc3RzL3dwdC5naXQiLAor
ICAgICJjbG9uZV91cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9ybS10ZXN0cy93
cHQuZ2l0IiwKKyAgICAic3ZuX3VybCI6ICJodHRwczovL2dpdGh1Yi5jb20vd2ViLXBsYXRmb3Jt
LXRlc3RzL3dwdCIsCisgICAgImhvbWVwYWdlIjogImh0dHA6Ly9pcmMudzMub3JnLz9jaGFubmVs
cz10ZXN0aW5nIiwKKyAgICAic2l6ZSI6IDMyNDY0MSwKKyAgICAic3RhcmdhemVyc19jb3VudCI6
IDIwNTgsCisgICAgIndhdGNoZXJzX2NvdW50IjogMjA1OCwKKyAgICAibGFuZ3VhZ2UiOiAiSFRN
TCIsCisgICAgImhhc19pc3N1ZXMiOiB0cnVlLAorICAgICJoYXNfcHJvamVjdHMiOiB0cnVlLAor
ICAgICJoYXNfZG93bmxvYWRzIjogdHJ1ZSwKKyAgICAiaGFzX3dpa2kiOiB0cnVlLAorICAgICJo
YXNfcGFnZXMiOiB0cnVlLAorICAgICJmb3Jrc19jb3VudCI6IDE2MDQsCisgICAgIm1pcnJvcl91
cmwiOiBudWxsLAorICAgICJhcmNoaXZlZCI6IGZhbHNlLAorICAgICJvcGVuX2lzc3Vlc19jb3Vu
dCI6IDEzNTQsCisgICAgImxpY2Vuc2UiOiB7CisgICAgICAia2V5IjogIm90aGVyIiwKKyAgICAg
ICJuYW1lIjogIk90aGVyIiwKKyAgICAgICJzcGR4X2lkIjogIk5PQVNTRVJUSU9OIiwKKyAgICAg
ICJ1cmwiOiBudWxsLAorICAgICAgIm5vZGVfaWQiOiAiTURjNlRHbGpaVzV6WlRBPSIKKyAgICB9
LAorICAgICJmb3JrcyI6IDE2MDQsCisgICAgIm9wZW5faXNzdWVzIjogMTM1NCwKKyAgICAid2F0
Y2hlcnMiOiAyMDU4LAorICAgICJkZWZhdWx0X2JyYW5jaCI6ICJtYXN0ZXIiCisgIH0sCisgICJv
cmdhbml6YXRpb24iOiB7CisgICAgImxvZ2luIjogIndlYi1wbGF0Zm9ybS10ZXN0cyIsCisgICAg
ImlkIjogMzcyMjYyMzMsCisgICAgIm5vZGVfaWQiOiAiTURFeU9rOXlaMkZ1YVhwaGRHbHZiak0z
TWpJMk1qTXoiLAorICAgICJ1cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9vcmdzL3dlYi1w
bGF0Zm9ybS10ZXN0cyIsCisgICAgInJlcG9zX3VybCI6ICJodHRwczovL2FwaS5naXRodWIuY29t
L29yZ3Mvd2ViLXBsYXRmb3JtLXRlc3RzL3JlcG9zIiwKKyAgICAiZXZlbnRzX3VybCI6ICJodHRw
czovL2FwaS5naXRodWIuY29tL29yZ3Mvd2ViLXBsYXRmb3JtLXRlc3RzL2V2ZW50cyIsCisgICAg
Imhvb2tzX3VybCI6ICJodHRwczovL2FwaS5naXRodWIuY29tL29yZ3Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2hvb2tzIiwKKyAgICAiaXNzdWVzX3VybCI6ICJodHRwczovL2FwaS5naXRodWIuY29tL29y
Z3Mvd2ViLXBsYXRmb3JtLXRlc3RzL2lzc3VlcyIsCisgICAgIm1lbWJlcnNfdXJsIjogImh0dHBz
Oi8vYXBpLmdpdGh1Yi5jb20vb3Jncy93ZWItcGxhdGZvcm0tdGVzdHMvbWVtYmVyc3svbWVtYmVy
fSIsCisgICAgInB1YmxpY19tZW1iZXJzX3VybCI6ICJodHRwczovL2FwaS5naXRodWIuY29tL29y
Z3Mvd2ViLXBsYXRmb3JtLXRlc3RzL3B1YmxpY19tZW1iZXJzey9tZW1iZXJ9IiwKKyAgICAiYXZh
dGFyX3VybCI6ICJodHRwczovL2F2YXRhcnMwLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzM3MjI2
MjMzP3Y9NCIsCisgICAgImRlc2NyaXB0aW9uIjogIiIKKyAgfSwKKyAgInNlbmRlciI6IHsKKyAg
ICAibG9naW4iOiAiamdyYWhhbSIsCisgICAgImlkIjogMjk0ODY0LAorICAgICJub2RlX2lkIjog
Ik1EUTZWWE5sY2pJNU5EZzJOQT09IiwKKyAgICAiYXZhdGFyX3VybCI6ICJodHRwczovL2F2YXRh
cnMxLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzI5NDg2ND92PTQiLAorICAgICJncmF2YXRhcl9p
ZCI6ICIiLAorICAgICJ1cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS91c2Vycy9qZ3JhaGFt
IiwKKyAgICAiaHRtbF91cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2pncmFoYW0iLAorICAgICJm
b2xsb3dlcnNfdXJsIjogImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vdXNlcnMvamdyYWhhbS9mb2xs
b3dlcnMiLAorICAgICJmb2xsb3dpbmdfdXJsIjogImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vdXNl
cnMvamdyYWhhbS9mb2xsb3dpbmd7L290aGVyX3VzZXJ9IiwKKyAgICAiZ2lzdHNfdXJsIjogImh0
dHBzOi8vYXBpLmdpdGh1Yi5jb20vdXNlcnMvamdyYWhhbS9naXN0c3svZ2lzdF9pZH0iLAorICAg
ICJzdGFycmVkX3VybCI6ICJodHRwczovL2FwaS5naXRodWIuY29tL3VzZXJzL2pncmFoYW0vc3Rh
cnJlZHsvb3duZXJ9ey9yZXBvfSIsCisgICAgInN1YnNjcmlwdGlvbnNfdXJsIjogImh0dHBzOi8v
YXBpLmdpdGh1Yi5jb20vdXNlcnMvamdyYWhhbS9zdWJzY3JpcHRpb25zIiwKKyAgICAib3JnYW5p
emF0aW9uc191cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS91c2Vycy9qZ3JhaGFtL29yZ3Mi
LAorICAgICJyZXBvc191cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS91c2Vycy9qZ3JhaGFt
L3JlcG9zIiwKKyAgICAiZXZlbnRzX3VybCI6ICJodHRwczovL2FwaS5naXRodWIuY29tL3VzZXJz
L2pncmFoYW0vZXZlbnRzey9wcml2YWN5fSIsCisgICAgInJlY2VpdmVkX2V2ZW50c191cmwiOiAi
aHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS91c2Vycy9qZ3JhaGFtL3JlY2VpdmVkX2V2ZW50cyIsCisg
ICAgInR5cGUiOiAiVXNlciIsCisgICAgInNpdGVfYWRtaW4iOiBmYWxzZQorICB9Cit9CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L2NpL3RjL3Rlc3RkYXRhL3ByX2V2ZW50X3Rlc3RzX2FmZmVjdGVkLmpzb24gYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2NpL3RjL3Rlc3RkYXRhL3By
X2V2ZW50X3Rlc3RzX2FmZmVjdGVkLmpzb24KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAuLjc5MmVhMWJjY2NlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9jaS90Yy90ZXN0ZGF0YS9wcl9ldmVu
dF90ZXN0c19hZmZlY3RlZC5qc29uCkBAIC0wLDAgKzEsNTA1IEBACit7CisgICJhY3Rpb24iOiAi
c3luY2hyb25pemUiLAorICAibnVtYmVyIjogMjAzNzgsCisgICJwdWxsX3JlcXVlc3QiOiB7Cisg
ICAgInVybCI6ICJodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zL3dlYi1wbGF0Zm9ybS10ZXN0
cy93cHQvcHVsbHMvMjAzNzgiLAorICAgICJpZCI6IDM0NDI4NzkyMCwKKyAgICAibm9kZV9pZCI6
ICJNREV4T2xCMWJHeFNaWEYxWlhOME16UTBNamczT1RJdyIsCisgICAgImh0bWxfdXJsIjogImh0
dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxhdGZvcm0tdGVzdHMvd3B0L3B1bGwvMjAzNzgiLAorICAg
ICJkaWZmX3VybCI6ICJodHRwczovL2dpdGh1Yi5jb20vd2ViLXBsYXRmb3JtLXRlc3RzL3dwdC9w
dWxsLzIwMzc4LmRpZmYiLAorICAgICJwYXRjaF91cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3dl
Yi1wbGF0Zm9ybS10ZXN0cy93cHQvcHVsbC8yMDM3OC5wYXRjaCIsCisgICAgImlzc3VlX3VybCI6
ICJodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQvaXNz
dWVzLzIwMzc4IiwKKyAgICAibnVtYmVyIjogMjAzNzgsCisgICAgInN0YXRlIjogIm9wZW4iLAor
ICAgICJsb2NrZWQiOiBmYWxzZSwKKyAgICAidGl0bGUiOiAiTWlncmF0ZSBtb3JlIGxheW91dCBp
bnN0YWJpbGl0eSB0ZXN0cyB0byBXUFQuIiwKKyAgICAidXNlciI6IHsKKyAgICAgICJsb2dpbiI6
ICJjaHJvbWl1bS13cHQtZXhwb3J0LWJvdCIsCisgICAgICAiaWQiOiAyNTc1Mjg5MiwKKyAgICAg
ICJub2RlX2lkIjogIk1EUTZWWE5sY2pJMU56VXlPRGt5IiwKKyAgICAgICJhdmF0YXJfdXJsIjog
Imh0dHBzOi8vYXZhdGFyczEuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMjU3NTI4OTI/dj00IiwK
KyAgICAgICJncmF2YXRhcl9pZCI6ICIiLAorICAgICAgInVybCI6ICJodHRwczovL2FwaS5naXRo
dWIuY29tL3VzZXJzL2Nocm9taXVtLXdwdC1leHBvcnQtYm90IiwKKyAgICAgICJodG1sX3VybCI6
ICJodHRwczovL2dpdGh1Yi5jb20vY2hyb21pdW0td3B0LWV4cG9ydC1ib3QiLAorICAgICAgImZv
bGxvd2Vyc191cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS91c2Vycy9jaHJvbWl1bS13cHQt
ZXhwb3J0LWJvdC9mb2xsb3dlcnMiLAorICAgICAgImZvbGxvd2luZ191cmwiOiAiaHR0cHM6Ly9h
cGkuZ2l0aHViLmNvbS91c2Vycy9jaHJvbWl1bS13cHQtZXhwb3J0LWJvdC9mb2xsb3dpbmd7L290
aGVyX3VzZXJ9IiwKKyAgICAgICJnaXN0c191cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS91
c2Vycy9jaHJvbWl1bS13cHQtZXhwb3J0LWJvdC9naXN0c3svZ2lzdF9pZH0iLAorICAgICAgInN0
YXJyZWRfdXJsIjogImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vdXNlcnMvY2hyb21pdW0td3B0LWV4
cG9ydC1ib3Qvc3RhcnJlZHsvb3duZXJ9ey9yZXBvfSIsCisgICAgICAic3Vic2NyaXB0aW9uc191
cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS91c2Vycy9jaHJvbWl1bS13cHQtZXhwb3J0LWJv
dC9zdWJzY3JpcHRpb25zIiwKKyAgICAgICJvcmdhbml6YXRpb25zX3VybCI6ICJodHRwczovL2Fw
aS5naXRodWIuY29tL3VzZXJzL2Nocm9taXVtLXdwdC1leHBvcnQtYm90L29yZ3MiLAorICAgICAg
InJlcG9zX3VybCI6ICJodHRwczovL2FwaS5naXRodWIuY29tL3VzZXJzL2Nocm9taXVtLXdwdC1l
eHBvcnQtYm90L3JlcG9zIiwKKyAgICAgICJldmVudHNfdXJsIjogImh0dHBzOi8vYXBpLmdpdGh1
Yi5jb20vdXNlcnMvY2hyb21pdW0td3B0LWV4cG9ydC1ib3QvZXZlbnRzey9wcml2YWN5fSIsCisg
ICAgICAicmVjZWl2ZWRfZXZlbnRzX3VybCI6ICJodHRwczovL2FwaS5naXRodWIuY29tL3VzZXJz
L2Nocm9taXVtLXdwdC1leHBvcnQtYm90L3JlY2VpdmVkX2V2ZW50cyIsCisgICAgICAidHlwZSI6
ICJVc2VyIiwKKyAgICAgICJzaXRlX2FkbWluIjogZmFsc2UKKyAgICB9LAorICAgICJib2R5Ijog
IkJ1ZzogOTg0MTA5XG5DaGFuZ2UtSWQ6IEllMzFjNjM5OTVmNjNmOGFjYmZhMjZkOTc5NjZmZmUz
MDAxNmVkZDNjXG5SZXZpZXdlZC1vbjogaHR0cHM6Ly9jaHJvbWl1bS1yZXZpZXcuZ29vZ2xlc291
cmNlLmNvbS9jL2Nocm9taXVtL3NyYy8rLzE5MjU0NDdcbkNvbW1pdC1RdWV1ZTogU3RldmUgS29i
ZXMgXFw8c2tvYmVzQGNocm9taXVtLm9yZz5cblJldmlld2VkLWJ5OiBOaWNvbMOhcyBQZcOxYSBN
b3Jlbm8gXFw8bnBtQGNocm9taXVtLm9yZz5cbkNyLUNvbW1pdC1Qb3NpdGlvbjogcmVmcy9oZWFk
cy9tYXN0ZXJAeyM3MTg2NDh9XG5cbiIsCisgICAgImNyZWF0ZWRfYXQiOiAiMjAxOS0xMS0yMVQy
Mzo1Mzo1OFoiLAorICAgICJ1cGRhdGVkX2F0IjogIjIwMTktMTEtMjVUMTU6NTQ6MTlaIiwKKyAg
ICAiY2xvc2VkX2F0IjogbnVsbCwKKyAgICAibWVyZ2VkX2F0IjogbnVsbCwKKyAgICAibWVyZ2Vf
Y29tbWl0X3NoYSI6ICIzNjcyNmUzZTk5MmE4M2U4MDYwOGFjZjQ3Yzg4NmZjNDQwMzkwNjkxIiwK
KyAgICAiYXNzaWduZWUiOiBudWxsLAorICAgICJhc3NpZ25lZXMiOiBbCisKKyAgICBdLAorICAg
ICJyZXF1ZXN0ZWRfcmV2aWV3ZXJzIjogWworCisgICAgXSwKKyAgICAicmVxdWVzdGVkX3RlYW1z
IjogWworCisgICAgXSwKKyAgICAibGFiZWxzIjogWworICAgICAgeworICAgICAgICAiaWQiOiA0
OTA4OTE1MDIsCisgICAgICAgICJub2RlX2lkIjogIk1EVTZUR0ZpWld3ME9UQTRPVEUxTURJPSIs
CisgICAgICAgICJ1cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy93ZWItcGxhdGZv
cm0tdGVzdHMvd3B0L2xhYmVscy9jaHJvbWl1bS1leHBvcnQiLAorICAgICAgICAibmFtZSI6ICJj
aHJvbWl1bS1leHBvcnQiLAorICAgICAgICAiY29sb3IiOiAiNDc4OGY0IiwKKyAgICAgICAgImRl
ZmF1bHQiOiBmYWxzZSwKKyAgICAgICAgImRlc2NyaXB0aW9uIjogbnVsbAorICAgICAgfSwKKyAg
ICAgIHsKKyAgICAgICAgImlkIjogMTM2MzE5OTY1MSwKKyAgICAgICAgIm5vZGVfaWQiOiAiTURV
NlRHRmlaV3d4TXpZek1UazVOalV4IiwKKyAgICAgICAgInVybCI6ICJodHRwczovL2FwaS5naXRo
dWIuY29tL3JlcG9zL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQvbGFiZWxzL2xheW91dC1pbnN0YWJp
bGl0eSIsCisgICAgICAgICJuYW1lIjogImxheW91dC1pbnN0YWJpbGl0eSIsCisgICAgICAgICJj
b2xvciI6ICJlZGVkZWQiLAorICAgICAgICAiZGVmYXVsdCI6IGZhbHNlLAorICAgICAgICAiZGVz
Y3JpcHRpb24iOiBudWxsCisgICAgICB9CisgICAgXSwKKyAgICAibWlsZXN0b25lIjogbnVsbCwK
KyAgICAiY29tbWl0c191cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy93ZWItcGxh
dGZvcm0tdGVzdHMvd3B0L3B1bGxzLzIwMzc4L2NvbW1pdHMiLAorICAgICJyZXZpZXdfY29tbWVu
dHNfdXJsIjogImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3dwdC9wdWxscy8yMDM3OC9jb21tZW50cyIsCisgICAgInJldmlld19jb21tZW50X3VybCI6ICJo
dHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQvcHVsbHMv
Y29tbWVudHN7L251bWJlcn0iLAorICAgICJjb21tZW50c191cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0
aHViLmNvbS9yZXBvcy93ZWItcGxhdGZvcm0tdGVzdHMvd3B0L2lzc3Vlcy8yMDM3OC9jb21tZW50
cyIsCisgICAgInN0YXR1c2VzX3VybCI6ICJodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zL3dl
Yi1wbGF0Zm9ybS10ZXN0cy93cHQvc3RhdHVzZXMvN2RmODRlM2Y4N2YwNTg2MGEyYjg2ZDBiODBk
YzNlYjA2ZDhlNzEwMyIsCisgICAgImhlYWQiOiB7CisgICAgICAibGFiZWwiOiAid2ViLXBsYXRm
b3JtLXRlc3RzOmNocm9taXVtLWV4cG9ydC1jbC0xOTI1NDQ3IiwKKyAgICAgICJyZWYiOiAiY2hy
b21pdW0tZXhwb3J0LWNsLTE5MjU0NDciLAorICAgICAgInNoYSI6ICI3ZGY4NGUzZjg3ZjA1ODYw
YTJiODZkMGI4MGRjM2ViMDZkOGU3MTAzIiwKKyAgICAgICJ1c2VyIjogeworICAgICAgICAibG9n
aW4iOiAid2ViLXBsYXRmb3JtLXRlc3RzIiwKKyAgICAgICAgImlkIjogMzcyMjYyMzMsCisgICAg
ICAgICJub2RlX2lkIjogIk1ERXlPazl5WjJGdWFYcGhkR2x2YmpNM01qSTJNak16IiwKKyAgICAg
ICAgImF2YXRhcl91cmwiOiAiaHR0cHM6Ly9hdmF0YXJzMC5naXRodWJ1c2VyY29udGVudC5jb20v
dS8zNzIyNjIzMz92PTQiLAorICAgICAgICAiZ3JhdmF0YXJfaWQiOiAiIiwKKyAgICAgICAgInVy
bCI6ICJodHRwczovL2FwaS5naXRodWIuY29tL3VzZXJzL3dlYi1wbGF0Zm9ybS10ZXN0cyIsCisg
ICAgICAgICJodG1sX3VybCI6ICJodHRwczovL2dpdGh1Yi5jb20vd2ViLXBsYXRmb3JtLXRlc3Rz
IiwKKyAgICAgICAgImZvbGxvd2Vyc191cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS91c2Vy
cy93ZWItcGxhdGZvcm0tdGVzdHMvZm9sbG93ZXJzIiwKKyAgICAgICAgImZvbGxvd2luZ191cmwi
OiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS91c2Vycy93ZWItcGxhdGZvcm0tdGVzdHMvZm9sbG93
aW5ney9vdGhlcl91c2VyfSIsCisgICAgICAgICJnaXN0c191cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0
aHViLmNvbS91c2Vycy93ZWItcGxhdGZvcm0tdGVzdHMvZ2lzdHN7L2dpc3RfaWR9IiwKKyAgICAg
ICAgInN0YXJyZWRfdXJsIjogImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vdXNlcnMvd2ViLXBsYXRm
b3JtLXRlc3RzL3N0YXJyZWR7L293bmVyfXsvcmVwb30iLAorICAgICAgICAic3Vic2NyaXB0aW9u
c191cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS91c2Vycy93ZWItcGxhdGZvcm0tdGVzdHMv
c3Vic2NyaXB0aW9ucyIsCisgICAgICAgICJvcmdhbml6YXRpb25zX3VybCI6ICJodHRwczovL2Fw
aS5naXRodWIuY29tL3VzZXJzL3dlYi1wbGF0Zm9ybS10ZXN0cy9vcmdzIiwKKyAgICAgICAgInJl
cG9zX3VybCI6ICJodHRwczovL2FwaS5naXRodWIuY29tL3VzZXJzL3dlYi1wbGF0Zm9ybS10ZXN0
cy9yZXBvcyIsCisgICAgICAgICJldmVudHNfdXJsIjogImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20v
dXNlcnMvd2ViLXBsYXRmb3JtLXRlc3RzL2V2ZW50c3svcHJpdmFjeX0iLAorICAgICAgICAicmVj
ZWl2ZWRfZXZlbnRzX3VybCI6ICJodHRwczovL2FwaS5naXRodWIuY29tL3VzZXJzL3dlYi1wbGF0
Zm9ybS10ZXN0cy9yZWNlaXZlZF9ldmVudHMiLAorICAgICAgICAidHlwZSI6ICJPcmdhbml6YXRp
b24iLAorICAgICAgICAic2l0ZV9hZG1pbiI6IGZhbHNlCisgICAgICB9LAorICAgICAgInJlcG8i
OiB7CisgICAgICAgICJpZCI6IDM2MTgxMzMsCisgICAgICAgICJub2RlX2lkIjogIk1ERXdPbEps
Y0c5emFYUnZjbmt6TmpFNE1UTXoiLAorICAgICAgICAibmFtZSI6ICJ3cHQiLAorICAgICAgICAi
ZnVsbF9uYW1lIjogIndlYi1wbGF0Zm9ybS10ZXN0cy93cHQiLAorICAgICAgICAicHJpdmF0ZSI6
IGZhbHNlLAorICAgICAgICAib3duZXIiOiB7CisgICAgICAgICAgImxvZ2luIjogIndlYi1wbGF0
Zm9ybS10ZXN0cyIsCisgICAgICAgICAgImlkIjogMzcyMjYyMzMsCisgICAgICAgICAgIm5vZGVf
aWQiOiAiTURFeU9rOXlaMkZ1YVhwaGRHbHZiak0zTWpJMk1qTXoiLAorICAgICAgICAgICJhdmF0
YXJfdXJsIjogImh0dHBzOi8vYXZhdGFyczAuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMzcyMjYy
MzM/dj00IiwKKyAgICAgICAgICAiZ3JhdmF0YXJfaWQiOiAiIiwKKyAgICAgICAgICAidXJsIjog
Imh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vdXNlcnMvd2ViLXBsYXRmb3JtLXRlc3RzIiwKKyAgICAg
ICAgICAiaHRtbF91cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9ybS10ZXN0cyIs
CisgICAgICAgICAgImZvbGxvd2Vyc191cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS91c2Vy
cy93ZWItcGxhdGZvcm0tdGVzdHMvZm9sbG93ZXJzIiwKKyAgICAgICAgICAiZm9sbG93aW5nX3Vy
bCI6ICJodHRwczovL2FwaS5naXRodWIuY29tL3VzZXJzL3dlYi1wbGF0Zm9ybS10ZXN0cy9mb2xs
b3dpbmd7L290aGVyX3VzZXJ9IiwKKyAgICAgICAgICAiZ2lzdHNfdXJsIjogImh0dHBzOi8vYXBp
LmdpdGh1Yi5jb20vdXNlcnMvd2ViLXBsYXRmb3JtLXRlc3RzL2dpc3Rzey9naXN0X2lkfSIsCisg
ICAgICAgICAgInN0YXJyZWRfdXJsIjogImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vdXNlcnMvd2Vi
LXBsYXRmb3JtLXRlc3RzL3N0YXJyZWR7L293bmVyfXsvcmVwb30iLAorICAgICAgICAgICJzdWJz
Y3JpcHRpb25zX3VybCI6ICJodHRwczovL2FwaS5naXRodWIuY29tL3VzZXJzL3dlYi1wbGF0Zm9y
bS10ZXN0cy9zdWJzY3JpcHRpb25zIiwKKyAgICAgICAgICAib3JnYW5pemF0aW9uc191cmwiOiAi
aHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS91c2Vycy93ZWItcGxhdGZvcm0tdGVzdHMvb3JncyIsCisg
ICAgICAgICAgInJlcG9zX3VybCI6ICJodHRwczovL2FwaS5naXRodWIuY29tL3VzZXJzL3dlYi1w
bGF0Zm9ybS10ZXN0cy9yZXBvcyIsCisgICAgICAgICAgImV2ZW50c191cmwiOiAiaHR0cHM6Ly9h
cGkuZ2l0aHViLmNvbS91c2Vycy93ZWItcGxhdGZvcm0tdGVzdHMvZXZlbnRzey9wcml2YWN5fSIs
CisgICAgICAgICAgInJlY2VpdmVkX2V2ZW50c191cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNv
bS91c2Vycy93ZWItcGxhdGZvcm0tdGVzdHMvcmVjZWl2ZWRfZXZlbnRzIiwKKyAgICAgICAgICAi
dHlwZSI6ICJPcmdhbml6YXRpb24iLAorICAgICAgICAgICJzaXRlX2FkbWluIjogZmFsc2UKKyAg
ICAgICAgfSwKKyAgICAgICAgImh0bWxfdXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxh
dGZvcm0tdGVzdHMvd3B0IiwKKyAgICAgICAgImRlc2NyaXB0aW9uIjogIlRlc3Qgc3VpdGVzIGZv
ciBXZWIgcGxhdGZvcm0gc3BlY3Mg4oCUIGluY2x1ZGluZyBXSEFUV0csIFczQywgYW5kIG90aGVy
cyIsCisgICAgICAgICJmb3JrIjogZmFsc2UsCisgICAgICAgICJ1cmwiOiAiaHR0cHM6Ly9hcGku
Z2l0aHViLmNvbS9yZXBvcy93ZWItcGxhdGZvcm0tdGVzdHMvd3B0IiwKKyAgICAgICAgImZvcmtz
X3VybCI6ICJodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zL3dlYi1wbGF0Zm9ybS10ZXN0cy93
cHQvZm9ya3MiLAorICAgICAgICAia2V5c191cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9y
ZXBvcy93ZWItcGxhdGZvcm0tdGVzdHMvd3B0L2tleXN7L2tleV9pZH0iLAorICAgICAgICAiY29s
bGFib3JhdG9yc191cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy93ZWItcGxhdGZv
cm0tdGVzdHMvd3B0L2NvbGxhYm9yYXRvcnN7L2NvbGxhYm9yYXRvcn0iLAorICAgICAgICAidGVh
bXNfdXJsIjogImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3dwdC90ZWFtcyIsCisgICAgICAgICJob29rc191cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNv
bS9yZXBvcy93ZWItcGxhdGZvcm0tdGVzdHMvd3B0L2hvb2tzIiwKKyAgICAgICAgImlzc3VlX2V2
ZW50c191cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy93ZWItcGxhdGZvcm0tdGVz
dHMvd3B0L2lzc3Vlcy9ldmVudHN7L251bWJlcn0iLAorICAgICAgICAiZXZlbnRzX3VybCI6ICJo
dHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQvZXZlbnRz
IiwKKyAgICAgICAgImFzc2lnbmVlc191cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBv
cy93ZWItcGxhdGZvcm0tdGVzdHMvd3B0L2Fzc2lnbmVlc3svdXNlcn0iLAorICAgICAgICAiYnJh
bmNoZXNfdXJsIjogImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3dwdC9icmFuY2hlc3svYnJhbmNofSIsCisgICAgICAgICJ0YWdzX3VybCI6ICJodHRwczov
L2FwaS5naXRodWIuY29tL3JlcG9zL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQvdGFncyIsCisgICAg
ICAgICJibG9ic191cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy93ZWItcGxhdGZv
cm0tdGVzdHMvd3B0L2dpdC9ibG9ic3svc2hhfSIsCisgICAgICAgICJnaXRfdGFnc191cmwiOiAi
aHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy93ZWItcGxhdGZvcm0tdGVzdHMvd3B0L2dpdC90
YWdzey9zaGF9IiwKKyAgICAgICAgImdpdF9yZWZzX3VybCI6ICJodHRwczovL2FwaS5naXRodWIu
Y29tL3JlcG9zL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQvZ2l0L3JlZnN7L3NoYX0iLAorICAgICAg
ICAidHJlZXNfdXJsIjogImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3dwdC9naXQvdHJlZXN7L3NoYX0iLAorICAgICAgICAic3RhdHVzZXNfdXJsIjogImh0
dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dwdC9zdGF0dXNl
cy97c2hhfSIsCisgICAgICAgICJsYW5ndWFnZXNfdXJsIjogImh0dHBzOi8vYXBpLmdpdGh1Yi5j
b20vcmVwb3Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dwdC9sYW5ndWFnZXMiLAorICAgICAgICAic3Rh
cmdhemVyc191cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy93ZWItcGxhdGZvcm0t
dGVzdHMvd3B0L3N0YXJnYXplcnMiLAorICAgICAgICAiY29udHJpYnV0b3JzX3VybCI6ICJodHRw
czovL2FwaS5naXRodWIuY29tL3JlcG9zL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQvY29udHJpYnV0
b3JzIiwKKyAgICAgICAgInN1YnNjcmliZXJzX3VybCI6ICJodHRwczovL2FwaS5naXRodWIuY29t
L3JlcG9zL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQvc3Vic2NyaWJlcnMiLAorICAgICAgICAic3Vi
c2NyaXB0aW9uX3VybCI6ICJodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zL3dlYi1wbGF0Zm9y
bS10ZXN0cy93cHQvc3Vic2NyaXB0aW9uIiwKKyAgICAgICAgImNvbW1pdHNfdXJsIjogImh0dHBz
Oi8vYXBpLmdpdGh1Yi5jb20vcmVwb3Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dwdC9jb21taXRzey9z
aGF9IiwKKyAgICAgICAgImdpdF9jb21taXRzX3VybCI6ICJodHRwczovL2FwaS5naXRodWIuY29t
L3JlcG9zL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQvZ2l0L2NvbW1pdHN7L3NoYX0iLAorICAgICAg
ICAiY29tbWVudHNfdXJsIjogImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3dwdC9jb21tZW50c3svbnVtYmVyfSIsCisgICAgICAgICJpc3N1ZV9jb21tZW50
X3VybCI6ICJodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zL3dlYi1wbGF0Zm9ybS10ZXN0cy93
cHQvaXNzdWVzL2NvbW1lbnRzey9udW1iZXJ9IiwKKyAgICAgICAgImNvbnRlbnRzX3VybCI6ICJo
dHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQvY29udGVu
dHMveytwYXRofSIsCisgICAgICAgICJjb21wYXJlX3VybCI6ICJodHRwczovL2FwaS5naXRodWIu
Y29tL3JlcG9zL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQvY29tcGFyZS97YmFzZX0uLi57aGVhZH0i
LAorICAgICAgICAibWVyZ2VzX3VybCI6ICJodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zL3dl
Yi1wbGF0Zm9ybS10ZXN0cy93cHQvbWVyZ2VzIiwKKyAgICAgICAgImFyY2hpdmVfdXJsIjogImh0
dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dwdC97YXJjaGl2
ZV9mb3JtYXR9ey9yZWZ9IiwKKyAgICAgICAgImRvd25sb2Fkc191cmwiOiAiaHR0cHM6Ly9hcGku
Z2l0aHViLmNvbS9yZXBvcy93ZWItcGxhdGZvcm0tdGVzdHMvd3B0L2Rvd25sb2FkcyIsCisgICAg
ICAgICJpc3N1ZXNfdXJsIjogImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3dwdC9pc3N1ZXN7L251bWJlcn0iLAorICAgICAgICAicHVsbHNfdXJsIjogImh0
dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dwdC9wdWxsc3sv
bnVtYmVyfSIsCisgICAgICAgICJtaWxlc3RvbmVzX3VybCI6ICJodHRwczovL2FwaS5naXRodWIu
Y29tL3JlcG9zL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQvbWlsZXN0b25lc3svbnVtYmVyfSIsCisg
ICAgICAgICJub3RpZmljYXRpb25zX3VybCI6ICJodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9z
L3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQvbm90aWZpY2F0aW9uc3s/c2luY2UsYWxsLHBhcnRpY2lw
YXRpbmd9IiwKKyAgICAgICAgImxhYmVsc191cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9y
ZXBvcy93ZWItcGxhdGZvcm0tdGVzdHMvd3B0L2xhYmVsc3svbmFtZX0iLAorICAgICAgICAicmVs
ZWFzZXNfdXJsIjogImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3dwdC9yZWxlYXNlc3svaWR9IiwKKyAgICAgICAgImRlcGxveW1lbnRzX3VybCI6ICJodHRw
czovL2FwaS5naXRodWIuY29tL3JlcG9zL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQvZGVwbG95bWVu
dHMiLAorICAgICAgICAiY3JlYXRlZF9hdCI6ICIyMDEyLTAzLTA0VDEyOjU4OjExWiIsCisgICAg
ICAgICJ1cGRhdGVkX2F0IjogIjIwMTktMTEtMjVUMTU6NDA6NTlaIiwKKyAgICAgICAgInB1c2hl
ZF9hdCI6ICIyMDE5LTExLTI1VDE1OjU0OjE4WiIsCisgICAgICAgICJnaXRfdXJsIjogImdpdDov
L2dpdGh1Yi5jb20vd2ViLXBsYXRmb3JtLXRlc3RzL3dwdC5naXQiLAorICAgICAgICAic3NoX3Vy
bCI6ICJnaXRAZ2l0aHViLmNvbTp3ZWItcGxhdGZvcm0tdGVzdHMvd3B0LmdpdCIsCisgICAgICAg
ICJjbG9uZV91cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQu
Z2l0IiwKKyAgICAgICAgInN2bl91cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9y
bS10ZXN0cy93cHQiLAorICAgICAgICAiaG9tZXBhZ2UiOiAiaHR0cHM6Ly93ZWItcGxhdGZvcm0t
dGVzdHMub3JnLyIsCisgICAgICAgICJzaXplIjogMzI5Mjc4LAorICAgICAgICAic3RhcmdhemVy
c19jb3VudCI6IDI1MzYsCisgICAgICAgICJ3YXRjaGVyc19jb3VudCI6IDI1MzYsCisgICAgICAg
ICJsYW5ndWFnZSI6ICJIVE1MIiwKKyAgICAgICAgImhhc19pc3N1ZXMiOiB0cnVlLAorICAgICAg
ICAiaGFzX3Byb2plY3RzIjogdHJ1ZSwKKyAgICAgICAgImhhc19kb3dubG9hZHMiOiB0cnVlLAor
ICAgICAgICAiaGFzX3dpa2kiOiB0cnVlLAorICAgICAgICAiaGFzX3BhZ2VzIjogdHJ1ZSwKKyAg
ICAgICAgImZvcmtzX2NvdW50IjogMTgzNywKKyAgICAgICAgIm1pcnJvcl91cmwiOiBudWxsLAor
ICAgICAgICAiYXJjaGl2ZWQiOiBmYWxzZSwKKyAgICAgICAgImRpc2FibGVkIjogZmFsc2UsCisg
ICAgICAgICJvcGVuX2lzc3Vlc19jb3VudCI6IDE1NzYsCisgICAgICAgICJsaWNlbnNlIjogewor
ICAgICAgICAgICJrZXkiOiAib3RoZXIiLAorICAgICAgICAgICJuYW1lIjogIk90aGVyIiwKKyAg
ICAgICAgICAic3BkeF9pZCI6ICJOT0FTU0VSVElPTiIsCisgICAgICAgICAgInVybCI6IG51bGws
CisgICAgICAgICAgIm5vZGVfaWQiOiAiTURjNlRHbGpaVzV6WlRBPSIKKyAgICAgICAgfSwKKyAg
ICAgICAgImZvcmtzIjogMTgzNywKKyAgICAgICAgIm9wZW5faXNzdWVzIjogMTU3NiwKKyAgICAg
ICAgIndhdGNoZXJzIjogMjUzNiwKKyAgICAgICAgImRlZmF1bHRfYnJhbmNoIjogIm1hc3RlciIK
KyAgICAgIH0KKyAgICB9LAorICAgICJiYXNlIjogeworICAgICAgImxhYmVsIjogIndlYi1wbGF0
Zm9ybS10ZXN0czptYXN0ZXIiLAorICAgICAgInJlZiI6ICJtYXN0ZXIiLAorICAgICAgInNoYSI6
ICI5MGViZTVjMzNjNDQwOTAyNzE3NTlmOGU5ZGM0M2QwYjViZDBmOGY3IiwKKyAgICAgICJ1c2Vy
IjogeworICAgICAgICAibG9naW4iOiAid2ViLXBsYXRmb3JtLXRlc3RzIiwKKyAgICAgICAgImlk
IjogMzcyMjYyMzMsCisgICAgICAgICJub2RlX2lkIjogIk1ERXlPazl5WjJGdWFYcGhkR2x2YmpN
M01qSTJNak16IiwKKyAgICAgICAgImF2YXRhcl91cmwiOiAiaHR0cHM6Ly9hdmF0YXJzMC5naXRo
dWJ1c2VyY29udGVudC5jb20vdS8zNzIyNjIzMz92PTQiLAorICAgICAgICAiZ3JhdmF0YXJfaWQi
OiAiIiwKKyAgICAgICAgInVybCI6ICJodHRwczovL2FwaS5naXRodWIuY29tL3VzZXJzL3dlYi1w
bGF0Zm9ybS10ZXN0cyIsCisgICAgICAgICJodG1sX3VybCI6ICJodHRwczovL2dpdGh1Yi5jb20v
d2ViLXBsYXRmb3JtLXRlc3RzIiwKKyAgICAgICAgImZvbGxvd2Vyc191cmwiOiAiaHR0cHM6Ly9h
cGkuZ2l0aHViLmNvbS91c2Vycy93ZWItcGxhdGZvcm0tdGVzdHMvZm9sbG93ZXJzIiwKKyAgICAg
ICAgImZvbGxvd2luZ191cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS91c2Vycy93ZWItcGxh
dGZvcm0tdGVzdHMvZm9sbG93aW5ney9vdGhlcl91c2VyfSIsCisgICAgICAgICJnaXN0c191cmwi
OiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS91c2Vycy93ZWItcGxhdGZvcm0tdGVzdHMvZ2lzdHN7
L2dpc3RfaWR9IiwKKyAgICAgICAgInN0YXJyZWRfdXJsIjogImh0dHBzOi8vYXBpLmdpdGh1Yi5j
b20vdXNlcnMvd2ViLXBsYXRmb3JtLXRlc3RzL3N0YXJyZWR7L293bmVyfXsvcmVwb30iLAorICAg
ICAgICAic3Vic2NyaXB0aW9uc191cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS91c2Vycy93
ZWItcGxhdGZvcm0tdGVzdHMvc3Vic2NyaXB0aW9ucyIsCisgICAgICAgICJvcmdhbml6YXRpb25z
X3VybCI6ICJodHRwczovL2FwaS5naXRodWIuY29tL3VzZXJzL3dlYi1wbGF0Zm9ybS10ZXN0cy9v
cmdzIiwKKyAgICAgICAgInJlcG9zX3VybCI6ICJodHRwczovL2FwaS5naXRodWIuY29tL3VzZXJz
L3dlYi1wbGF0Zm9ybS10ZXN0cy9yZXBvcyIsCisgICAgICAgICJldmVudHNfdXJsIjogImh0dHBz
Oi8vYXBpLmdpdGh1Yi5jb20vdXNlcnMvd2ViLXBsYXRmb3JtLXRlc3RzL2V2ZW50c3svcHJpdmFj
eX0iLAorICAgICAgICAicmVjZWl2ZWRfZXZlbnRzX3VybCI6ICJodHRwczovL2FwaS5naXRodWIu
Y29tL3VzZXJzL3dlYi1wbGF0Zm9ybS10ZXN0cy9yZWNlaXZlZF9ldmVudHMiLAorICAgICAgICAi
dHlwZSI6ICJPcmdhbml6YXRpb24iLAorICAgICAgICAic2l0ZV9hZG1pbiI6IGZhbHNlCisgICAg
ICB9LAorICAgICAgInJlcG8iOiB7CisgICAgICAgICJpZCI6IDM2MTgxMzMsCisgICAgICAgICJu
b2RlX2lkIjogIk1ERXdPbEpsY0c5emFYUnZjbmt6TmpFNE1UTXoiLAorICAgICAgICAibmFtZSI6
ICJ3cHQiLAorICAgICAgICAiZnVsbF9uYW1lIjogIndlYi1wbGF0Zm9ybS10ZXN0cy93cHQiLAor
ICAgICAgICAicHJpdmF0ZSI6IGZhbHNlLAorICAgICAgICAib3duZXIiOiB7CisgICAgICAgICAg
ImxvZ2luIjogIndlYi1wbGF0Zm9ybS10ZXN0cyIsCisgICAgICAgICAgImlkIjogMzcyMjYyMzMs
CisgICAgICAgICAgIm5vZGVfaWQiOiAiTURFeU9rOXlaMkZ1YVhwaGRHbHZiak0zTWpJMk1qTXoi
LAorICAgICAgICAgICJhdmF0YXJfdXJsIjogImh0dHBzOi8vYXZhdGFyczAuZ2l0aHVidXNlcmNv
bnRlbnQuY29tL3UvMzcyMjYyMzM/dj00IiwKKyAgICAgICAgICAiZ3JhdmF0YXJfaWQiOiAiIiwK
KyAgICAgICAgICAidXJsIjogImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vdXNlcnMvd2ViLXBsYXRm
b3JtLXRlc3RzIiwKKyAgICAgICAgICAiaHRtbF91cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3dl
Yi1wbGF0Zm9ybS10ZXN0cyIsCisgICAgICAgICAgImZvbGxvd2Vyc191cmwiOiAiaHR0cHM6Ly9h
cGkuZ2l0aHViLmNvbS91c2Vycy93ZWItcGxhdGZvcm0tdGVzdHMvZm9sbG93ZXJzIiwKKyAgICAg
ICAgICAiZm9sbG93aW5nX3VybCI6ICJodHRwczovL2FwaS5naXRodWIuY29tL3VzZXJzL3dlYi1w
bGF0Zm9ybS10ZXN0cy9mb2xsb3dpbmd7L290aGVyX3VzZXJ9IiwKKyAgICAgICAgICAiZ2lzdHNf
dXJsIjogImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vdXNlcnMvd2ViLXBsYXRmb3JtLXRlc3RzL2dp
c3Rzey9naXN0X2lkfSIsCisgICAgICAgICAgInN0YXJyZWRfdXJsIjogImh0dHBzOi8vYXBpLmdp
dGh1Yi5jb20vdXNlcnMvd2ViLXBsYXRmb3JtLXRlc3RzL3N0YXJyZWR7L293bmVyfXsvcmVwb30i
LAorICAgICAgICAgICJzdWJzY3JpcHRpb25zX3VybCI6ICJodHRwczovL2FwaS5naXRodWIuY29t
L3VzZXJzL3dlYi1wbGF0Zm9ybS10ZXN0cy9zdWJzY3JpcHRpb25zIiwKKyAgICAgICAgICAib3Jn
YW5pemF0aW9uc191cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS91c2Vycy93ZWItcGxhdGZv
cm0tdGVzdHMvb3JncyIsCisgICAgICAgICAgInJlcG9zX3VybCI6ICJodHRwczovL2FwaS5naXRo
dWIuY29tL3VzZXJzL3dlYi1wbGF0Zm9ybS10ZXN0cy9yZXBvcyIsCisgICAgICAgICAgImV2ZW50
c191cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS91c2Vycy93ZWItcGxhdGZvcm0tdGVzdHMv
ZXZlbnRzey9wcml2YWN5fSIsCisgICAgICAgICAgInJlY2VpdmVkX2V2ZW50c191cmwiOiAiaHR0
cHM6Ly9hcGkuZ2l0aHViLmNvbS91c2Vycy93ZWItcGxhdGZvcm0tdGVzdHMvcmVjZWl2ZWRfZXZl
bnRzIiwKKyAgICAgICAgICAidHlwZSI6ICJPcmdhbml6YXRpb24iLAorICAgICAgICAgICJzaXRl
X2FkbWluIjogZmFsc2UKKyAgICAgICAgfSwKKyAgICAgICAgImh0bWxfdXJsIjogImh0dHBzOi8v
Z2l0aHViLmNvbS93ZWItcGxhdGZvcm0tdGVzdHMvd3B0IiwKKyAgICAgICAgImRlc2NyaXB0aW9u
IjogIlRlc3Qgc3VpdGVzIGZvciBXZWIgcGxhdGZvcm0gc3BlY3Mg4oCUIGluY2x1ZGluZyBXSEFU
V0csIFczQywgYW5kIG90aGVycyIsCisgICAgICAgICJmb3JrIjogZmFsc2UsCisgICAgICAgICJ1
cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy93ZWItcGxhdGZvcm0tdGVzdHMvd3B0
IiwKKyAgICAgICAgImZvcmtzX3VybCI6ICJodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zL3dl
Yi1wbGF0Zm9ybS10ZXN0cy93cHQvZm9ya3MiLAorICAgICAgICAia2V5c191cmwiOiAiaHR0cHM6
Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy93ZWItcGxhdGZvcm0tdGVzdHMvd3B0L2tleXN7L2tleV9p
ZH0iLAorICAgICAgICAiY29sbGFib3JhdG9yc191cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNv
bS9yZXBvcy93ZWItcGxhdGZvcm0tdGVzdHMvd3B0L2NvbGxhYm9yYXRvcnN7L2NvbGxhYm9yYXRv
cn0iLAorICAgICAgICAidGVhbXNfdXJsIjogImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3dwdC90ZWFtcyIsCisgICAgICAgICJob29rc191cmwiOiAiaHR0
cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy93ZWItcGxhdGZvcm0tdGVzdHMvd3B0L2hvb2tzIiwK
KyAgICAgICAgImlzc3VlX2V2ZW50c191cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBv
cy93ZWItcGxhdGZvcm0tdGVzdHMvd3B0L2lzc3Vlcy9ldmVudHN7L251bWJlcn0iLAorICAgICAg
ICAiZXZlbnRzX3VybCI6ICJodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zL3dlYi1wbGF0Zm9y
bS10ZXN0cy93cHQvZXZlbnRzIiwKKyAgICAgICAgImFzc2lnbmVlc191cmwiOiAiaHR0cHM6Ly9h
cGkuZ2l0aHViLmNvbS9yZXBvcy93ZWItcGxhdGZvcm0tdGVzdHMvd3B0L2Fzc2lnbmVlc3svdXNl
cn0iLAorICAgICAgICAiYnJhbmNoZXNfdXJsIjogImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVw
b3Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dwdC9icmFuY2hlc3svYnJhbmNofSIsCisgICAgICAgICJ0
YWdzX3VybCI6ICJodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zL3dlYi1wbGF0Zm9ybS10ZXN0
cy93cHQvdGFncyIsCisgICAgICAgICJibG9ic191cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNv
bS9yZXBvcy93ZWItcGxhdGZvcm0tdGVzdHMvd3B0L2dpdC9ibG9ic3svc2hhfSIsCisgICAgICAg
ICJnaXRfdGFnc191cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy93ZWItcGxhdGZv
cm0tdGVzdHMvd3B0L2dpdC90YWdzey9zaGF9IiwKKyAgICAgICAgImdpdF9yZWZzX3VybCI6ICJo
dHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQvZ2l0L3Jl
ZnN7L3NoYX0iLAorICAgICAgICAidHJlZXNfdXJsIjogImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20v
cmVwb3Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dwdC9naXQvdHJlZXN7L3NoYX0iLAorICAgICAgICAi
c3RhdHVzZXNfdXJsIjogImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3dwdC9zdGF0dXNlcy97c2hhfSIsCisgICAgICAgICJsYW5ndWFnZXNfdXJsIjogImh0
dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dwdC9sYW5ndWFn
ZXMiLAorICAgICAgICAic3RhcmdhemVyc191cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9y
ZXBvcy93ZWItcGxhdGZvcm0tdGVzdHMvd3B0L3N0YXJnYXplcnMiLAorICAgICAgICAiY29udHJp
YnV0b3JzX3VybCI6ICJodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zL3dlYi1wbGF0Zm9ybS10
ZXN0cy93cHQvY29udHJpYnV0b3JzIiwKKyAgICAgICAgInN1YnNjcmliZXJzX3VybCI6ICJodHRw
czovL2FwaS5naXRodWIuY29tL3JlcG9zL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQvc3Vic2NyaWJl
cnMiLAorICAgICAgICAic3Vic2NyaXB0aW9uX3VybCI6ICJodHRwczovL2FwaS5naXRodWIuY29t
L3JlcG9zL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQvc3Vic2NyaXB0aW9uIiwKKyAgICAgICAgImNv
bW1pdHNfdXJsIjogImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3dwdC9jb21taXRzey9zaGF9IiwKKyAgICAgICAgImdpdF9jb21taXRzX3VybCI6ICJodHRw
czovL2FwaS5naXRodWIuY29tL3JlcG9zL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQvZ2l0L2NvbW1p
dHN7L3NoYX0iLAorICAgICAgICAiY29tbWVudHNfdXJsIjogImh0dHBzOi8vYXBpLmdpdGh1Yi5j
b20vcmVwb3Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dwdC9jb21tZW50c3svbnVtYmVyfSIsCisgICAg
ICAgICJpc3N1ZV9jb21tZW50X3VybCI6ICJodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zL3dl
Yi1wbGF0Zm9ybS10ZXN0cy93cHQvaXNzdWVzL2NvbW1lbnRzey9udW1iZXJ9IiwKKyAgICAgICAg
ImNvbnRlbnRzX3VybCI6ICJodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zL3dlYi1wbGF0Zm9y
bS10ZXN0cy93cHQvY29udGVudHMveytwYXRofSIsCisgICAgICAgICJjb21wYXJlX3VybCI6ICJo
dHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQvY29tcGFy
ZS97YmFzZX0uLi57aGVhZH0iLAorICAgICAgICAibWVyZ2VzX3VybCI6ICJodHRwczovL2FwaS5n
aXRodWIuY29tL3JlcG9zL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQvbWVyZ2VzIiwKKyAgICAgICAg
ImFyY2hpdmVfdXJsIjogImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3dwdC97YXJjaGl2ZV9mb3JtYXR9ey9yZWZ9IiwKKyAgICAgICAgImRvd25sb2Fkc191
cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy93ZWItcGxhdGZvcm0tdGVzdHMvd3B0
L2Rvd25sb2FkcyIsCisgICAgICAgICJpc3N1ZXNfdXJsIjogImh0dHBzOi8vYXBpLmdpdGh1Yi5j
b20vcmVwb3Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dwdC9pc3N1ZXN7L251bWJlcn0iLAorICAgICAg
ICAicHVsbHNfdXJsIjogImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3dwdC9wdWxsc3svbnVtYmVyfSIsCisgICAgICAgICJtaWxlc3RvbmVzX3VybCI6ICJo
dHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQvbWlsZXN0
b25lc3svbnVtYmVyfSIsCisgICAgICAgICJub3RpZmljYXRpb25zX3VybCI6ICJodHRwczovL2Fw
aS5naXRodWIuY29tL3JlcG9zL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQvbm90aWZpY2F0aW9uc3s/
c2luY2UsYWxsLHBhcnRpY2lwYXRpbmd9IiwKKyAgICAgICAgImxhYmVsc191cmwiOiAiaHR0cHM6
Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy93ZWItcGxhdGZvcm0tdGVzdHMvd3B0L2xhYmVsc3svbmFt
ZX0iLAorICAgICAgICAicmVsZWFzZXNfdXJsIjogImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVw
b3Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dwdC9yZWxlYXNlc3svaWR9IiwKKyAgICAgICAgImRlcGxv
eW1lbnRzX3VybCI6ICJodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zL3dlYi1wbGF0Zm9ybS10
ZXN0cy93cHQvZGVwbG95bWVudHMiLAorICAgICAgICAiY3JlYXRlZF9hdCI6ICIyMDEyLTAzLTA0
VDEyOjU4OjExWiIsCisgICAgICAgICJ1cGRhdGVkX2F0IjogIjIwMTktMTEtMjVUMTU6NDA6NTla
IiwKKyAgICAgICAgInB1c2hlZF9hdCI6ICIyMDE5LTExLTI1VDE1OjU0OjE4WiIsCisgICAgICAg
ICJnaXRfdXJsIjogImdpdDovL2dpdGh1Yi5jb20vd2ViLXBsYXRmb3JtLXRlc3RzL3dwdC5naXQi
LAorICAgICAgICAic3NoX3VybCI6ICJnaXRAZ2l0aHViLmNvbTp3ZWItcGxhdGZvcm0tdGVzdHMv
d3B0LmdpdCIsCisgICAgICAgICJjbG9uZV91cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3dlYi1w
bGF0Zm9ybS10ZXN0cy93cHQuZ2l0IiwKKyAgICAgICAgInN2bl91cmwiOiAiaHR0cHM6Ly9naXRo
dWIuY29tL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQiLAorICAgICAgICAiaG9tZXBhZ2UiOiAiaHR0
cHM6Ly93ZWItcGxhdGZvcm0tdGVzdHMub3JnLyIsCisgICAgICAgICJzaXplIjogMzI5Mjc4LAor
ICAgICAgICAic3RhcmdhemVyc19jb3VudCI6IDI1MzYsCisgICAgICAgICJ3YXRjaGVyc19jb3Vu
dCI6IDI1MzYsCisgICAgICAgICJsYW5ndWFnZSI6ICJIVE1MIiwKKyAgICAgICAgImhhc19pc3N1
ZXMiOiB0cnVlLAorICAgICAgICAiaGFzX3Byb2plY3RzIjogdHJ1ZSwKKyAgICAgICAgImhhc19k
b3dubG9hZHMiOiB0cnVlLAorICAgICAgICAiaGFzX3dpa2kiOiB0cnVlLAorICAgICAgICAiaGFz
X3BhZ2VzIjogdHJ1ZSwKKyAgICAgICAgImZvcmtzX2NvdW50IjogMTgzNywKKyAgICAgICAgIm1p
cnJvcl91cmwiOiBudWxsLAorICAgICAgICAiYXJjaGl2ZWQiOiBmYWxzZSwKKyAgICAgICAgImRp
c2FibGVkIjogZmFsc2UsCisgICAgICAgICJvcGVuX2lzc3Vlc19jb3VudCI6IDE1NzYsCisgICAg
ICAgICJsaWNlbnNlIjogeworICAgICAgICAgICJrZXkiOiAib3RoZXIiLAorICAgICAgICAgICJu
YW1lIjogIk90aGVyIiwKKyAgICAgICAgICAic3BkeF9pZCI6ICJOT0FTU0VSVElPTiIsCisgICAg
ICAgICAgInVybCI6IG51bGwsCisgICAgICAgICAgIm5vZGVfaWQiOiAiTURjNlRHbGpaVzV6WlRB
PSIKKyAgICAgICAgfSwKKyAgICAgICAgImZvcmtzIjogMTgzNywKKyAgICAgICAgIm9wZW5faXNz
dWVzIjogMTU3NiwKKyAgICAgICAgIndhdGNoZXJzIjogMjUzNiwKKyAgICAgICAgImRlZmF1bHRf
YnJhbmNoIjogIm1hc3RlciIKKyAgICAgIH0KKyAgICB9LAorICAgICJfbGlua3MiOiB7CisgICAg
ICAic2VsZiI6IHsKKyAgICAgICAgImhyZWYiOiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBv
cy93ZWItcGxhdGZvcm0tdGVzdHMvd3B0L3B1bGxzLzIwMzc4IgorICAgICAgfSwKKyAgICAgICJo
dG1sIjogeworICAgICAgICAiaHJlZiI6ICJodHRwczovL2dpdGh1Yi5jb20vd2ViLXBsYXRmb3Jt
LXRlc3RzL3dwdC9wdWxsLzIwMzc4IgorICAgICAgfSwKKyAgICAgICJpc3N1ZSI6IHsKKyAgICAg
ICAgImhyZWYiOiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy93ZWItcGxhdGZvcm0tdGVz
dHMvd3B0L2lzc3Vlcy8yMDM3OCIKKyAgICAgIH0sCisgICAgICAiY29tbWVudHMiOiB7CisgICAg
ICAgICJocmVmIjogImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3dwdC9pc3N1ZXMvMjAzNzgvY29tbWVudHMiCisgICAgICB9LAorICAgICAgInJldmlld19j
b21tZW50cyI6IHsKKyAgICAgICAgImhyZWYiOiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBv
cy93ZWItcGxhdGZvcm0tdGVzdHMvd3B0L3B1bGxzLzIwMzc4L2NvbW1lbnRzIgorICAgICAgfSwK
KyAgICAgICJyZXZpZXdfY29tbWVudCI6IHsKKyAgICAgICAgImhyZWYiOiAiaHR0cHM6Ly9hcGku
Z2l0aHViLmNvbS9yZXBvcy93ZWItcGxhdGZvcm0tdGVzdHMvd3B0L3B1bGxzL2NvbW1lbnRzey9u
dW1iZXJ9IgorICAgICAgfSwKKyAgICAgICJjb21taXRzIjogeworICAgICAgICAiaHJlZiI6ICJo
dHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQvcHVsbHMv
MjAzNzgvY29tbWl0cyIKKyAgICAgIH0sCisgICAgICAic3RhdHVzZXMiOiB7CisgICAgICAgICJo
cmVmIjogImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dw
dC9zdGF0dXNlcy83ZGY4NGUzZjg3ZjA1ODYwYTJiODZkMGI4MGRjM2ViMDZkOGU3MTAzIgorICAg
ICAgfQorICAgIH0sCisgICAgImF1dGhvcl9hc3NvY2lhdGlvbiI6ICJDT0xMQUJPUkFUT1IiLAor
ICAgICJkcmFmdCI6IGZhbHNlLAorICAgICJtZXJnZWQiOiBmYWxzZSwKKyAgICAibWVyZ2VhYmxl
IjogbnVsbCwKKyAgICAicmViYXNlYWJsZSI6IG51bGwsCisgICAgIm1lcmdlYWJsZV9zdGF0ZSI6
ICJ1bmtub3duIiwKKyAgICAibWVyZ2VkX2J5IjogbnVsbCwKKyAgICAiY29tbWVudHMiOiAwLAor
ICAgICJyZXZpZXdfY29tbWVudHMiOiAwLAorICAgICJtYWludGFpbmVyX2Nhbl9tb2RpZnkiOiBm
YWxzZSwKKyAgICAiY29tbWl0cyI6IDEsCisgICAgImFkZGl0aW9ucyI6IDQzMSwKKyAgICAiZGVs
ZXRpb25zIjogMCwKKyAgICAiY2hhbmdlZF9maWxlcyI6IDExCisgIH0sCisgICJiZWZvcmUiOiAi
ODY3NDI1MTFmYTM3ZTFlMmMxNjM1Yjc3NDMxYmQ0Njk1OGVjZmI5MiIsCisgICJhZnRlciI6ICI3
ZGY4NGUzZjg3ZjA1ODYwYTJiODZkMGI4MGRjM2ViMDZkOGU3MTAzIiwKKyAgInJlcG9zaXRvcnki
OiB7CisgICAgImlkIjogMzYxODEzMywKKyAgICAibm9kZV9pZCI6ICJNREV3T2xKbGNHOXphWFJ2
Y25rek5qRTRNVE16IiwKKyAgICAibmFtZSI6ICJ3cHQiLAorICAgICJmdWxsX25hbWUiOiAid2Vi
LXBsYXRmb3JtLXRlc3RzL3dwdCIsCisgICAgInByaXZhdGUiOiBmYWxzZSwKKyAgICAib3duZXIi
OiB7CisgICAgICAibG9naW4iOiAid2ViLXBsYXRmb3JtLXRlc3RzIiwKKyAgICAgICJpZCI6IDM3
MjI2MjMzLAorICAgICAgIm5vZGVfaWQiOiAiTURFeU9rOXlaMkZ1YVhwaGRHbHZiak0zTWpJMk1q
TXoiLAorICAgICAgImF2YXRhcl91cmwiOiAiaHR0cHM6Ly9hdmF0YXJzMC5naXRodWJ1c2VyY29u
dGVudC5jb20vdS8zNzIyNjIzMz92PTQiLAorICAgICAgImdyYXZhdGFyX2lkIjogIiIsCisgICAg
ICAidXJsIjogImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vdXNlcnMvd2ViLXBsYXRmb3JtLXRlc3Rz
IiwKKyAgICAgICJodG1sX3VybCI6ICJodHRwczovL2dpdGh1Yi5jb20vd2ViLXBsYXRmb3JtLXRl
c3RzIiwKKyAgICAgICJmb2xsb3dlcnNfdXJsIjogImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vdXNl
cnMvd2ViLXBsYXRmb3JtLXRlc3RzL2ZvbGxvd2VycyIsCisgICAgICAiZm9sbG93aW5nX3VybCI6
ICJodHRwczovL2FwaS5naXRodWIuY29tL3VzZXJzL3dlYi1wbGF0Zm9ybS10ZXN0cy9mb2xsb3dp
bmd7L290aGVyX3VzZXJ9IiwKKyAgICAgICJnaXN0c191cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHVi
LmNvbS91c2Vycy93ZWItcGxhdGZvcm0tdGVzdHMvZ2lzdHN7L2dpc3RfaWR9IiwKKyAgICAgICJz
dGFycmVkX3VybCI6ICJodHRwczovL2FwaS5naXRodWIuY29tL3VzZXJzL3dlYi1wbGF0Zm9ybS10
ZXN0cy9zdGFycmVkey9vd25lcn17L3JlcG99IiwKKyAgICAgICJzdWJzY3JpcHRpb25zX3VybCI6
ICJodHRwczovL2FwaS5naXRodWIuY29tL3VzZXJzL3dlYi1wbGF0Zm9ybS10ZXN0cy9zdWJzY3Jp
cHRpb25zIiwKKyAgICAgICJvcmdhbml6YXRpb25zX3VybCI6ICJodHRwczovL2FwaS5naXRodWIu
Y29tL3VzZXJzL3dlYi1wbGF0Zm9ybS10ZXN0cy9vcmdzIiwKKyAgICAgICJyZXBvc191cmwiOiAi
aHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS91c2Vycy93ZWItcGxhdGZvcm0tdGVzdHMvcmVwb3MiLAor
ICAgICAgImV2ZW50c191cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS91c2Vycy93ZWItcGxh
dGZvcm0tdGVzdHMvZXZlbnRzey9wcml2YWN5fSIsCisgICAgICAicmVjZWl2ZWRfZXZlbnRzX3Vy
bCI6ICJodHRwczovL2FwaS5naXRodWIuY29tL3VzZXJzL3dlYi1wbGF0Zm9ybS10ZXN0cy9yZWNl
aXZlZF9ldmVudHMiLAorICAgICAgInR5cGUiOiAiT3JnYW5pemF0aW9uIiwKKyAgICAgICJzaXRl
X2FkbWluIjogZmFsc2UKKyAgICB9LAorICAgICJodG1sX3VybCI6ICJodHRwczovL2dpdGh1Yi5j
b20vd2ViLXBsYXRmb3JtLXRlc3RzL3dwdCIsCisgICAgImRlc2NyaXB0aW9uIjogIlRlc3Qgc3Vp
dGVzIGZvciBXZWIgcGxhdGZvcm0gc3BlY3Mg4oCUIGluY2x1ZGluZyBXSEFUV0csIFczQywgYW5k
IG90aGVycyIsCisgICAgImZvcmsiOiBmYWxzZSwKKyAgICAidXJsIjogImh0dHBzOi8vYXBpLmdp
dGh1Yi5jb20vcmVwb3Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dwdCIsCisgICAgImZvcmtzX3VybCI6
ICJodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQvZm9y
a3MiLAorICAgICJrZXlzX3VybCI6ICJodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zL3dlYi1w
bGF0Zm9ybS10ZXN0cy93cHQva2V5c3sva2V5X2lkfSIsCisgICAgImNvbGxhYm9yYXRvcnNfdXJs
IjogImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dwdC9j
b2xsYWJvcmF0b3Jzey9jb2xsYWJvcmF0b3J9IiwKKyAgICAidGVhbXNfdXJsIjogImh0dHBzOi8v
YXBpLmdpdGh1Yi5jb20vcmVwb3Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dwdC90ZWFtcyIsCisgICAg
Imhvb2tzX3VybCI6ICJodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zL3dlYi1wbGF0Zm9ybS10
ZXN0cy93cHQvaG9va3MiLAorICAgICJpc3N1ZV9ldmVudHNfdXJsIjogImh0dHBzOi8vYXBpLmdp
dGh1Yi5jb20vcmVwb3Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dwdC9pc3N1ZXMvZXZlbnRzey9udW1i
ZXJ9IiwKKyAgICAiZXZlbnRzX3VybCI6ICJodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zL3dl
Yi1wbGF0Zm9ybS10ZXN0cy93cHQvZXZlbnRzIiwKKyAgICAiYXNzaWduZWVzX3VybCI6ICJodHRw
czovL2FwaS5naXRodWIuY29tL3JlcG9zL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQvYXNzaWduZWVz
ey91c2VyfSIsCisgICAgImJyYW5jaGVzX3VybCI6ICJodHRwczovL2FwaS5naXRodWIuY29tL3Jl
cG9zL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQvYnJhbmNoZXN7L2JyYW5jaH0iLAorICAgICJ0YWdz
X3VybCI6ICJodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zL3dlYi1wbGF0Zm9ybS10ZXN0cy93
cHQvdGFncyIsCisgICAgImJsb2JzX3VybCI6ICJodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9z
L3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQvZ2l0L2Jsb2Jzey9zaGF9IiwKKyAgICAiZ2l0X3RhZ3Nf
dXJsIjogImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dw
dC9naXQvdGFnc3svc2hhfSIsCisgICAgImdpdF9yZWZzX3VybCI6ICJodHRwczovL2FwaS5naXRo
dWIuY29tL3JlcG9zL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQvZ2l0L3JlZnN7L3NoYX0iLAorICAg
ICJ0cmVlc191cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy93ZWItcGxhdGZvcm0t
dGVzdHMvd3B0L2dpdC90cmVlc3svc2hhfSIsCisgICAgInN0YXR1c2VzX3VybCI6ICJodHRwczov
L2FwaS5naXRodWIuY29tL3JlcG9zL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQvc3RhdHVzZXMve3No
YX0iLAorICAgICJsYW5ndWFnZXNfdXJsIjogImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3dwdC9sYW5ndWFnZXMiLAorICAgICJzdGFyZ2F6ZXJzX3VybCI6
ICJodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQvc3Rh
cmdhemVycyIsCisgICAgImNvbnRyaWJ1dG9yc191cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNv
bS9yZXBvcy93ZWItcGxhdGZvcm0tdGVzdHMvd3B0L2NvbnRyaWJ1dG9ycyIsCisgICAgInN1YnNj
cmliZXJzX3VybCI6ICJodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zL3dlYi1wbGF0Zm9ybS10
ZXN0cy93cHQvc3Vic2NyaWJlcnMiLAorICAgICJzdWJzY3JpcHRpb25fdXJsIjogImh0dHBzOi8v
YXBpLmdpdGh1Yi5jb20vcmVwb3Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dwdC9zdWJzY3JpcHRpb24i
LAorICAgICJjb21taXRzX3VybCI6ICJodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zL3dlYi1w
bGF0Zm9ybS10ZXN0cy93cHQvY29tbWl0c3svc2hhfSIsCisgICAgImdpdF9jb21taXRzX3VybCI6
ICJodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQvZ2l0
L2NvbW1pdHN7L3NoYX0iLAorICAgICJjb21tZW50c191cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHVi
LmNvbS9yZXBvcy93ZWItcGxhdGZvcm0tdGVzdHMvd3B0L2NvbW1lbnRzey9udW1iZXJ9IiwKKyAg
ICAiaXNzdWVfY29tbWVudF91cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy93ZWIt
cGxhdGZvcm0tdGVzdHMvd3B0L2lzc3Vlcy9jb21tZW50c3svbnVtYmVyfSIsCisgICAgImNvbnRl
bnRzX3VybCI6ICJodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zL3dlYi1wbGF0Zm9ybS10ZXN0
cy93cHQvY29udGVudHMveytwYXRofSIsCisgICAgImNvbXBhcmVfdXJsIjogImh0dHBzOi8vYXBp
LmdpdGh1Yi5jb20vcmVwb3Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dwdC9jb21wYXJlL3tiYXNlfS4u
LntoZWFkfSIsCisgICAgIm1lcmdlc191cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBv
cy93ZWItcGxhdGZvcm0tdGVzdHMvd3B0L21lcmdlcyIsCisgICAgImFyY2hpdmVfdXJsIjogImh0
dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dwdC97YXJjaGl2
ZV9mb3JtYXR9ey9yZWZ9IiwKKyAgICAiZG93bmxvYWRzX3VybCI6ICJodHRwczovL2FwaS5naXRo
dWIuY29tL3JlcG9zL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQvZG93bmxvYWRzIiwKKyAgICAiaXNz
dWVzX3VybCI6ICJodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zL3dlYi1wbGF0Zm9ybS10ZXN0
cy93cHQvaXNzdWVzey9udW1iZXJ9IiwKKyAgICAicHVsbHNfdXJsIjogImh0dHBzOi8vYXBpLmdp
dGh1Yi5jb20vcmVwb3Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dwdC9wdWxsc3svbnVtYmVyfSIsCisg
ICAgIm1pbGVzdG9uZXNfdXJsIjogImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3dwdC9taWxlc3RvbmVzey9udW1iZXJ9IiwKKyAgICAibm90aWZpY2F0aW9u
c191cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy93ZWItcGxhdGZvcm0tdGVzdHMv
d3B0L25vdGlmaWNhdGlvbnN7P3NpbmNlLGFsbCxwYXJ0aWNpcGF0aW5nfSIsCisgICAgImxhYmVs
c191cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy93ZWItcGxhdGZvcm0tdGVzdHMv
d3B0L2xhYmVsc3svbmFtZX0iLAorICAgICJyZWxlYXNlc191cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0
aHViLmNvbS9yZXBvcy93ZWItcGxhdGZvcm0tdGVzdHMvd3B0L3JlbGVhc2Vzey9pZH0iLAorICAg
ICJkZXBsb3ltZW50c191cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy93ZWItcGxh
dGZvcm0tdGVzdHMvd3B0L2RlcGxveW1lbnRzIiwKKyAgICAiY3JlYXRlZF9hdCI6ICIyMDEyLTAz
LTA0VDEyOjU4OjExWiIsCisgICAgInVwZGF0ZWRfYXQiOiAiMjAxOS0xMS0yNVQxNTo0MDo1OVoi
LAorICAgICJwdXNoZWRfYXQiOiAiMjAxOS0xMS0yNVQxNTo1NDoxOFoiLAorICAgICJnaXRfdXJs
IjogImdpdDovL2dpdGh1Yi5jb20vd2ViLXBsYXRmb3JtLXRlc3RzL3dwdC5naXQiLAorICAgICJz
c2hfdXJsIjogImdpdEBnaXRodWIuY29tOndlYi1wbGF0Zm9ybS10ZXN0cy93cHQuZ2l0IiwKKyAg
ICAiY2xvbmVfdXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxhdGZvcm0tdGVzdHMvd3B0
LmdpdCIsCisgICAgInN2bl91cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9ybS10
ZXN0cy93cHQiLAorICAgICJob21lcGFnZSI6ICJodHRwczovL3dlYi1wbGF0Zm9ybS10ZXN0cy5v
cmcvIiwKKyAgICAic2l6ZSI6IDMyOTI3OCwKKyAgICAic3RhcmdhemVyc19jb3VudCI6IDI1MzYs
CisgICAgIndhdGNoZXJzX2NvdW50IjogMjUzNiwKKyAgICAibGFuZ3VhZ2UiOiAiSFRNTCIsCisg
ICAgImhhc19pc3N1ZXMiOiB0cnVlLAorICAgICJoYXNfcHJvamVjdHMiOiB0cnVlLAorICAgICJo
YXNfZG93bmxvYWRzIjogdHJ1ZSwKKyAgICAiaGFzX3dpa2kiOiB0cnVlLAorICAgICJoYXNfcGFn
ZXMiOiB0cnVlLAorICAgICJmb3Jrc19jb3VudCI6IDE4MzcsCisgICAgIm1pcnJvcl91cmwiOiBu
dWxsLAorICAgICJhcmNoaXZlZCI6IGZhbHNlLAorICAgICJkaXNhYmxlZCI6IGZhbHNlLAorICAg
ICJvcGVuX2lzc3Vlc19jb3VudCI6IDE1NzYsCisgICAgImxpY2Vuc2UiOiB7CisgICAgICAia2V5
IjogIm90aGVyIiwKKyAgICAgICJuYW1lIjogIk90aGVyIiwKKyAgICAgICJzcGR4X2lkIjogIk5P
QVNTRVJUSU9OIiwKKyAgICAgICJ1cmwiOiBudWxsLAorICAgICAgIm5vZGVfaWQiOiAiTURjNlRH
bGpaVzV6WlRBPSIKKyAgICB9LAorICAgICJmb3JrcyI6IDE4MzcsCisgICAgIm9wZW5faXNzdWVz
IjogMTU3NiwKKyAgICAid2F0Y2hlcnMiOiAyNTM2LAorICAgICJkZWZhdWx0X2JyYW5jaCI6ICJt
YXN0ZXIiCisgIH0sCisgICJvcmdhbml6YXRpb24iOiB7CisgICAgImxvZ2luIjogIndlYi1wbGF0
Zm9ybS10ZXN0cyIsCisgICAgImlkIjogMzcyMjYyMzMsCisgICAgIm5vZGVfaWQiOiAiTURFeU9r
OXlaMkZ1YVhwaGRHbHZiak0zTWpJMk1qTXoiLAorICAgICJ1cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0
aHViLmNvbS9vcmdzL3dlYi1wbGF0Zm9ybS10ZXN0cyIsCisgICAgInJlcG9zX3VybCI6ICJodHRw
czovL2FwaS5naXRodWIuY29tL29yZ3Mvd2ViLXBsYXRmb3JtLXRlc3RzL3JlcG9zIiwKKyAgICAi
ZXZlbnRzX3VybCI6ICJodHRwczovL2FwaS5naXRodWIuY29tL29yZ3Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2V2ZW50cyIsCisgICAgImhvb2tzX3VybCI6ICJodHRwczovL2FwaS5naXRodWIuY29tL29y
Z3Mvd2ViLXBsYXRmb3JtLXRlc3RzL2hvb2tzIiwKKyAgICAiaXNzdWVzX3VybCI6ICJodHRwczov
L2FwaS5naXRodWIuY29tL29yZ3Mvd2ViLXBsYXRmb3JtLXRlc3RzL2lzc3VlcyIsCisgICAgIm1l
bWJlcnNfdXJsIjogImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vb3Jncy93ZWItcGxhdGZvcm0tdGVz
dHMvbWVtYmVyc3svbWVtYmVyfSIsCisgICAgInB1YmxpY19tZW1iZXJzX3VybCI6ICJodHRwczov
L2FwaS5naXRodWIuY29tL29yZ3Mvd2ViLXBsYXRmb3JtLXRlc3RzL3B1YmxpY19tZW1iZXJzey9t
ZW1iZXJ9IiwKKyAgICAiYXZhdGFyX3VybCI6ICJodHRwczovL2F2YXRhcnMwLmdpdGh1YnVzZXJj
b250ZW50LmNvbS91LzM3MjI2MjMzP3Y9NCIsCisgICAgImRlc2NyaXB0aW9uIjogIiIKKyAgfSwK
KyAgInNlbmRlciI6IHsKKyAgICAibG9naW4iOiAiY2hyb21pdW0td3B0LWV4cG9ydC1ib3QiLAor
ICAgICJpZCI6IDI1NzUyODkyLAorICAgICJub2RlX2lkIjogIk1EUTZWWE5sY2pJMU56VXlPRGt5
IiwKKyAgICAiYXZhdGFyX3VybCI6ICJodHRwczovL2F2YXRhcnMxLmdpdGh1YnVzZXJjb250ZW50
LmNvbS91LzI1NzUyODkyP3Y9NCIsCisgICAgImdyYXZhdGFyX2lkIjogIiIsCisgICAgInVybCI6
ICJodHRwczovL2FwaS5naXRodWIuY29tL3VzZXJzL2Nocm9taXVtLXdwdC1leHBvcnQtYm90IiwK
KyAgICAiaHRtbF91cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2Nocm9taXVtLXdwdC1leHBvcnQt
Ym90IiwKKyAgICAiZm9sbG93ZXJzX3VybCI6ICJodHRwczovL2FwaS5naXRodWIuY29tL3VzZXJz
L2Nocm9taXVtLXdwdC1leHBvcnQtYm90L2ZvbGxvd2VycyIsCisgICAgImZvbGxvd2luZ191cmwi
OiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS91c2Vycy9jaHJvbWl1bS13cHQtZXhwb3J0LWJvdC9m
b2xsb3dpbmd7L290aGVyX3VzZXJ9IiwKKyAgICAiZ2lzdHNfdXJsIjogImh0dHBzOi8vYXBpLmdp
dGh1Yi5jb20vdXNlcnMvY2hyb21pdW0td3B0LWV4cG9ydC1ib3QvZ2lzdHN7L2dpc3RfaWR9IiwK
KyAgICAic3RhcnJlZF91cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS91c2Vycy9jaHJvbWl1
bS13cHQtZXhwb3J0LWJvdC9zdGFycmVkey9vd25lcn17L3JlcG99IiwKKyAgICAic3Vic2NyaXB0
aW9uc191cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS91c2Vycy9jaHJvbWl1bS13cHQtZXhw
b3J0LWJvdC9zdWJzY3JpcHRpb25zIiwKKyAgICAib3JnYW5pemF0aW9uc191cmwiOiAiaHR0cHM6
Ly9hcGkuZ2l0aHViLmNvbS91c2Vycy9jaHJvbWl1bS13cHQtZXhwb3J0LWJvdC9vcmdzIiwKKyAg
ICAicmVwb3NfdXJsIjogImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vdXNlcnMvY2hyb21pdW0td3B0
LWV4cG9ydC1ib3QvcmVwb3MiLAorICAgICJldmVudHNfdXJsIjogImh0dHBzOi8vYXBpLmdpdGh1
Yi5jb20vdXNlcnMvY2hyb21pdW0td3B0LWV4cG9ydC1ib3QvZXZlbnRzey9wcml2YWN5fSIsCisg
ICAgInJlY2VpdmVkX2V2ZW50c191cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS91c2Vycy9j
aHJvbWl1bS13cHQtZXhwb3J0LWJvdC9yZWNlaXZlZF9ldmVudHMiLAorICAgICJ0eXBlIjogIlVz
ZXIiLAorICAgICJzaXRlX2FkbWluIjogZmFsc2UKKyAgfQorfQpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9jaS90Yy90ZXN0ZGF0
YS93M2MtaW1wb3J0LmxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvY2kvdGMvdGVzdGRhdGEvdzNjLWltcG9ydC5sb2cKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjkxNmVmZGM5ZTFlCi0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9jaS90Yy90
ZXN0ZGF0YS93M2MtaW1wb3J0LmxvZwpAQCAtMCwwICsxLDIwIEBACitUaGUgdGVzdHMgaW4gdGhp
cyBkaXJlY3Rvcnkgd2VyZSBpbXBvcnRlZCBmcm9tIHRoZSBXM0MgcmVwb3NpdG9yeS4KK0RvIE5P
VCBtb2RpZnkgdGhlc2UgdGVzdHMgZGlyZWN0bHkgaW4gV2ViS2l0LgorSW5zdGVhZCwgY3JlYXRl
IGEgcHVsbCByZXF1ZXN0IG9uIHRoZSBXUFQgZ2l0aHViOgorCWh0dHBzOi8vZ2l0aHViLmNvbS93
ZWItcGxhdGZvcm0tdGVzdHMvd3B0CisKK1RoZW4gcnVuIHRoZSBUb29scy9TY3JpcHRzL2ltcG9y
dC13M2MtdGVzdHMgaW4gV2ViS2l0IHRvIHJlaW1wb3J0CisKK0RvIE5PVCBtb2RpZnkgb3IgcmVt
b3ZlIHRoaXMgZmlsZS4KKworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitQcm9wZXJ0aWVzIHJlcXVpcmluZyB2
ZW5kb3IgcHJlZml4ZXM6CitOb25lCitQcm9wZXJ0eSB2YWx1ZXMgcmVxdWlyaW5nIHZlbmRvciBw
cmVmaXhlczoKK05vbmUKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorTGlzdCBvZiBmaWxlczoKKy9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2NpL3RjL3Rlc3RkYXRh
L2Vwb2Noc19kYWlseV9wdXNoX2V2ZW50Lmpzb24KKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2NpL3RjL3Rlc3RkYXRhL21hc3Rlcl9wdXNoX2V2ZW50
Lmpzb24KKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L2NpL3RjL3Rlc3RkYXRhL3ByX2V2ZW50Lmpzb24KKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2NpL3RjL3Rlc3RkYXRhL3ByX2V2ZW50X3Rlc3RzX2Fm
ZmVjdGVkLmpzb24KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvY2kvdGMvdGVzdHMvdGVzdF9kZWNpc2lvbi5weSBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvY2kvdGMvdGVzdHMvdGVz
dF9kZWNpc2lvbi5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uNDI1
YjU4MjllZGQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2NpL3RjL3Rlc3RzL3Rlc3RfZGVjaXNpb24ucHkKQEAgLTAs
MCArMSw1NCBAQAoraW1wb3J0IG1vY2sKK2ltcG9ydCBweXRlc3QKKworZnJvbSB0b29scy5jaS50
YyBpbXBvcnQgZGVjaXNpb24KK2Zyb20gc2l4IGltcG9ydCBpdGVyaXRlbXMKKworCitAcHl0ZXN0
Lm1hcmsucGFyYW1ldHJpemUoInJ1bl9qb2JzLHRhc2tzLGV4cGVjdGVkIiwgWworICAgIChbXSwg
eyJ0YXNrLW5vLXNjaGVkdWxlLWlmIjoge319LCBbInRhc2stbm8tc2NoZWR1bGUtaWYiXSksCisg
ICAgKFtdLCB7InRhc2stc2NoZWR1bGUtaWYtbm8tcnVuLWpvYiI6IHsic2NoZWR1bGUtaWYiOiB7
fX19LCBbXSksCisgICAgKFsiam9iIl0sCisgICAgIHsiam9iLXByZXNlbnQiOiB7InNjaGVkdWxl
LWlmIjogeyJydW4tam9iIjogWyJvdGhlci1qb2IiLCAiam9iIl19fX0sCisgICAgIFsiam9iLXBy
ZXNlbnQiXSksCisgICAgKFsiam9iIl0sIHsiam9iLW1pc3NpbmciOiB7InNjaGVkdWxlLWlmIjog
eyJydW4tam9iIjogWyJvdGhlci1qb2IiXX19fSwgW10pLAorICAgIChbImFsbCJdLCB7ImpvYi1h
bGwiOiB7InNjaGVkdWxlLWlmIjogeyJydW4tam9iIjogWyJvdGhlci1qb2IiXX19fSwgWyJqb2It
YWxsIl0pLAorICAgIChbImpvYiJdLAorICAgICB7ImpvYi0xIjogeyJzY2hlZHVsZS1pZiI6IHsi
cnVuLWpvYiI6IFsiam9iIl19fSwKKyAgICAgICJqb2ItMiI6IHsic2NoZWR1bGUtaWYiOiB7InJ1
bi1qb2IiOiBbIm90aGVyLWpvYiJdfX19LAorICAgICBbImpvYi0xIl0pLAorXSkKK2RlZiB0ZXN0
X2ZpbHRlcl9zY2hlZHVsZV9pZihydW5fam9icywgdGFza3MsIGV4cGVjdGVkKToKKyAgICB3aXRo
IG1vY2sucGF0Y2goInRvb2xzLmNpLnRjLmRlY2lzaW9uLmdldF9ydW5fam9icyIsCisgICAgICAg
ICAgICAgICAgICAgIHJldHVybl92YWx1ZT1ydW5fam9icykgYXMgZ2V0X3J1bl9qb2JzOgorICAg
ICAgICBhc3NlcnQgKGRlY2lzaW9uLmZpbHRlcl9zY2hlZHVsZV9pZih7fSwgdGFza3MpID09Cisg
ICAgICAgICAgICAgICAge25hbWU6IHRhc2tzW25hbWVdIGZvciBuYW1lIGluIGV4cGVjdGVkfSkK
KyAgICAgICAgZ2V0X3J1bl9qb2JzLmNhbGxfY291bnQgaW4gKDAsIDEpCisKKworQHB5dGVzdC5t
YXJrLnBhcmFtZXRyaXplKCJtc2csZXhwZWN0ZWQiLCBbCisgICAgKCJTb21lIGluaXRpYWwgbGlu
ZVxuXG50Yy1qb2JzOmZvbyxiYXIiLCB7ImZvbyIsICJiYXIifSksCisgICAgKCJTb21lIGluaXRp
YWwgbGluZVxuXG50Yy1qb2JzOmZvbywgYmFyIiwgeyJmb28iLCAiYmFyIn0pLAorICAgICgidGMt
am9iczpmb28sIGJhciAgIFxuYmF6IiwgeyJmb28iLCAiYmFyIn0pLAorICAgICgidGMtam9iczph
bGwiLCB7ImFsbCJ9KSwKKyAgICAoIiIsIHNldCgpKSwKKyAgICAoInRjLWpvYnM6Zm9vXG50Yy1q
b2JzOmJhciIsIHsiZm9vIn0pXSkKK0BweXRlc3QubWFyay5wYXJhbWV0cml6ZSgiZXZlbnQiLCBb
CisgICAgeyJjb21taXRzIjogW3sibWVzc2FnZSI6ICI8bWVzc2FnZT4ifV19LAorICAgIHsicHVs
bF9yZXF1ZXN0IjogeyJib2R5IjogIjxtZXNzYWdlPiJ9fQorXSkKK2RlZiB0ZXN0X2V4dHJhX2pv
YnNfcHIobXNnLCBleHBlY3RlZCwgZXZlbnQpOgorICAgIGRlZiBzdWIob2JqKToKKyAgICAgICAg
IiIiQ29weSBvYmosIGV4Y2VwdCBpZiBpdCdzIGEgc3RyaW5nIHdpdGggdGhlIHZhbHVlIDxtZXNz
YWdlPgorICAgICAgICByZXBsYWNlIGl0IHdpdGggdGhlIHZhbHVlIG9mIHRoZSBtc2cgYXJndW1l
bnQiIiIKKyAgICAgICAgaWYgaXNpbnN0YW5jZShvYmosIGRpY3QpOgorICAgICAgICAgICAgcmV0
dXJuIHtrZXk6IHN1Yih2YWx1ZSkgZm9yIChrZXksIHZhbHVlKSBpbiBpdGVyaXRlbXMob2JqKX0K
KyAgICAgICAgZWxpZiBpc2luc3RhbmNlKG9iaiwgbGlzdCk6CisgICAgICAgICAgICByZXR1cm4g
W3N1Yih2YWx1ZSkgZm9yIHZhbHVlIGluIG9ial0KKyAgICAgICAgZWxpZiBvYmogPT0gIjxtZXNz
YWdlPiI6CisgICAgICAgICAgICByZXR1cm4gbXNnCisgICAgICAgIHJldHVybiBvYmoKKworICAg
IGV2ZW50ID0gc3ViKGV2ZW50KQorCisgICAgYXNzZXJ0IGRlY2lzaW9uLmdldF9leHRyYV9qb2Jz
KGV2ZW50KSA9PSBleHBlY3RlZApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9jaS90Yy90ZXN0cy90ZXN0X3Rhc2tncmFwaC5weSBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvY2kvdGMv
dGVzdHMvdGVzdF90YXNrZ3JhcGgucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAuLmRkODUzNWJiNjQ3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9jaS90Yy90ZXN0cy90ZXN0X3Rhc2tncmFw
aC5weQpAQCAtMCwwICsxLDE0NiBAQAoraW1wb3J0IHB5dGVzdAoraW1wb3J0IHlhbWwKKworZnJv
bSB0b29scy5jaS50YyBpbXBvcnQgdGFza2dyYXBoCisKK0BweXRlc3QubWFyay5wYXJhbWV0cml6
ZSgiZGF0YSwgdXBkYXRlX2RhdGEsIGV4cGVjdGVkIiwgWworICAgICh7ImEiOiAxfSwgeyJiIjog
Mn0sIHsiYSI6IDEsICJiIjogMn0pLAorICAgICh7ImEiOiAxfSwgeyJhIjogMn0sIHsiYSI6IDJ9
KSwKKyAgICAoeyJhIjogWzFdfSwgeyJhIjogWzJdfSwgeyJhIjogWzEsIDJdfSksCisgICAgKHsi
YSI6IHsiYiI6IDEsICJjIjogMn19LCB7ImEiOiB7ImIiOiAyLCAiZCI6IDN9fSwgeyJhIjogeyJi
IjogMiwgImMiOiAyLCAiZCI6IDN9fSksCisgICAgKHsiYSI6IHsiYiI6IFsxXX19LCB7ImEiOiB7
ImIiOiBbMl19fSwgeyJhIjogeyJiIjogWzEsIDJdfX0pLAorXQorKQorZGVmIHRlc3RfdXBkYXRl
X3JlY3Vyc2l2ZShkYXRhLCB1cGRhdGVfZGF0YSwgZXhwZWN0ZWQpOgorICAgIHRhc2tncmFwaC51
cGRhdGVfcmVjdXJzaXZlKGRhdGEsIHVwZGF0ZV9kYXRhKQorICAgIGFzc2VydCBkYXRhID09IGV4
cGVjdGVkCisKKworZGVmIHRlc3RfdXNlKCk6CisgICAgZGF0YSA9ICIiIgorY29tcG9uZW50czoK
KyAgY29tcG9uZW50MToKKyAgICBhOiAxCisgICAgYjogWzFdCisgICAgYzogImMiCisgIGNvbXBv
bmVudDI6CisgICAgYTogMgorICAgIGI6IFsyXQorICAgIGQ6ICJkIgordGFza3M6CisgIC0gdGFz
azE6CisgICAgICB1c2U6CisgICAgICAgLSBjb21wb25lbnQxCisgICAgICAgLSBjb21wb25lbnQy
CisgICAgICBiOiBbM10KKyAgICAgIGM6ICJlIgorIiIiCisgICAgdGFza3NfZGF0YSA9IHlhbWwu
c2FmZV9sb2FkKGRhdGEpCisgICAgYXNzZXJ0IHRhc2tncmFwaC5sb2FkX3Rhc2tzKHRhc2tzX2Rh
dGEpID09IHsKKyAgICAgICAgInRhc2sxIjogeworICAgICAgICAgICAgImEiOiAyLAorICAgICAg
ICAgICAgImIiOiBbMSwyLDNdLAorICAgICAgICAgICAgImMiOiAiZSIsCisgICAgICAgICAgICAi
ZCI6ICJkIiwKKyAgICAgICAgICAgICJuYW1lIjogInRhc2sxIgorICAgICAgICB9CisgICAgfQor
CisKK2RlZiB0ZXN0X3ZhcigpOgorICAgIGRhdGEgPSAiIiIKK2NvbXBvbmVudHM6CisgIGNvbXBv
bmVudDE6CisgICAgYTogJHt2YXJzLnZhbHVlfQordGFza3M6CisgIC0gdGFzazE6CisgICAgICB1
c2U6CisgICAgICAgLSBjb21wb25lbnQxCisgICAgICB2YXJzOgorICAgICAgICB2YWx1ZTogMQor
IiIiCisgICAgdGFza3NfZGF0YSA9IHlhbWwuc2FmZV9sb2FkKGRhdGEpCisgICAgYXNzZXJ0IHRh
c2tncmFwaC5sb2FkX3Rhc2tzKHRhc2tzX2RhdGEpID09IHsKKyAgICAgICAgInRhc2sxIjogewor
ICAgICAgICAgICAgImEiOiAiMSIsCisgICAgICAgICAgICAidmFycyI6IHsidmFsdWUiOiAxfSwK
KyAgICAgICAgICAgICJuYW1lIjogInRhc2sxIgorICAgICAgICB9CisgICAgfQorCisKK2RlZiB0
ZXN0X21hcCgpOgorICAgIGRhdGEgPSAiIiIKK2NvbXBvbmVudHM6IHt9Cit0YXNrczoKKyAtICRt
YXA6CisgICAgIGZvcjoKKyAgICAgICAtIHZhcnM6CisgICAgICAgICAgIGE6IDEKKyAgICAgICAg
IGI6IFsxXQorICAgICAgIC0gdmFyczoKKyAgICAgICAgICAgYTogMgorICAgICAgICAgYjogWzJd
CisgICAgIGRvOgorICAgICAgIC0gdGFzazEtJHt2YXJzLmF9OgorICAgICAgICAgICBhOiAke3Zh
cnMuYX0KKyAgICAgICAgICAgYjogWzNdCisgICAgICAgLSB0YXNrMi0ke3ZhcnMuYX06CisgICAg
ICAgICAgIGE6ICR7dmFycy5hfQorICAgICAgICAgICBiOiBbNF0KKyIiIgorICAgIHRhc2tzX2Rh
dGEgPSB5YW1sLnNhZmVfbG9hZChkYXRhKQorICAgIGFzc2VydCB0YXNrZ3JhcGgubG9hZF90YXNr
cyh0YXNrc19kYXRhKSA9PSB7CisgICAgICAgICJ0YXNrMS0xIjogeworICAgICAgICAgICAgImEi
OiAiMSIsCisgICAgICAgICAgICAiYiI6IFsxLCAzXSwKKyAgICAgICAgICAgICJ2YXJzIjogeyJh
IjogMX0sCisgICAgICAgICAgICAibmFtZSI6ICJ0YXNrMS0xIgorICAgICAgICB9LAorICAgICAg
ICAidGFzazEtMiI6IHsKKyAgICAgICAgICAgICJhIjogIjIiLAorICAgICAgICAgICAgImIiOiBb
MiwgM10sCisgICAgICAgICAgICAidmFycyI6IHsiYSI6IDJ9LAorICAgICAgICAgICAgIm5hbWUi
OiAidGFzazEtMiIKKyAgICAgICAgfSwKKyAgICAgICAgInRhc2syLTEiOiB7CisgICAgICAgICAg
ICAiYSI6ICIxIiwKKyAgICAgICAgICAgICJiIjogWzEsIDRdLAorICAgICAgICAgICAgInZhcnMi
OiB7ImEiOiAxfSwKKyAgICAgICAgICAgICJuYW1lIjogInRhc2syLTEiCisgICAgICAgIH0sCisg
ICAgICAgICJ0YXNrMi0yIjogeworICAgICAgICAgICAgImEiOiAiMiIsCisgICAgICAgICAgICAi
YiI6IFsyLCA0XSwKKyAgICAgICAgICAgICJ2YXJzIjogeyJhIjogMn0sCisgICAgICAgICAgICAi
bmFtZSI6ICJ0YXNrMi0yIgorICAgICAgICB9LAorCisgICAgfQorCisKK2RlZiB0ZXN0X2NodW5r
cygpOgorICAgIGRhdGEgPSAiIiIKK2NvbXBvbmVudHM6IHt9Cit0YXNrczoKKyAgLSB0YXNrMToK
KyAgICAgIG5hbWU6IHRhc2sxLSR7Y2h1bmtzLmlkfQorICAgICAgY2h1bmtzOiAyCisiIiIKKyAg
ICB0YXNrc19kYXRhID0geWFtbC5zYWZlX2xvYWQoZGF0YSkKKyAgICBhc3NlcnQgdGFza2dyYXBo
LmxvYWRfdGFza3ModGFza3NfZGF0YSkgPT0geworICAgICAgICAidGFzazEtMSI6IHsKKyAgICAg
ICAgICAgICJuYW1lIjogInRhc2sxLTEiLAorICAgICAgICAgICAgImNodW5rcyI6IHsKKyAgICAg
ICAgICAgICAgICAiaWQiOiAxLAorICAgICAgICAgICAgICAgICJ0b3RhbCI6IDIKKyAgICAgICAg
ICAgIH0KKyAgICAgICAgfSwKKyAgICAgICAgInRhc2sxLTIiOiB7CisgICAgICAgICAgICAibmFt
ZSI6ICJ0YXNrMS0yIiwKKyAgICAgICAgICAgICJjaHVua3MiOiB7CisgICAgICAgICAgICAgICAg
ImlkIjogMiwKKyAgICAgICAgICAgICAgICAidG90YWwiOiAyCisgICAgICAgICAgICB9CisgICAg
ICAgIH0KKyAgICB9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL2NpL3RjL3Rlc3RzL3Rlc3RfdmFsaWQucHkgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2NpL3RjL3Rlc3RzL3Rlc3Rf
dmFsaWQucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmQ2Y2JmYmE0
ZTJjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy9jaS90Yy90ZXN0cy90ZXN0X3ZhbGlkLnB5CkBAIC0wLDAgKzEsMjIx
IEBACitpbXBvcnQganNvbgoraW1wb3J0IG9zCitmcm9tIGlvIGltcG9ydCBvcGVuCisKK2ltcG9y
dCBqc29uZQoraW1wb3J0IG1vY2sKK2ltcG9ydCBweXRlc3QKK2ltcG9ydCByZXF1ZXN0cworaW1w
b3J0IHN5cworaW1wb3J0IHlhbWwKK2Zyb20ganNvbnNjaGVtYSBpbXBvcnQgdmFsaWRhdGUKKwor
ZnJvbSB0b29scy5jaS50YyBpbXBvcnQgZGVjaXNpb24KKworaGVyZSA9IG9zLnBhdGguZGlybmFt
ZShfX2ZpbGVfXykKK3Jvb3QgPSBvcy5wYXRoLmFic3BhdGgob3MucGF0aC5qb2luKGhlcmUsICIu
LiIsICIuLiIsICIuLiIsICIuLiIpKQorCisKK2RlZiBkYXRhX3BhdGgoZmlsZW5hbWUpOgorICAg
IHJldHVybiBvcy5wYXRoLmpvaW4oaGVyZSwgIi4uIiwgInRlc3RkYXRhIiwgZmlsZW5hbWUpCisK
KworQHB5dGVzdC5tYXJrLnhmYWlsKHN5cy52ZXJzaW9uX2luZm8ubWFqb3IgPT0gMiwKKyAgICAg
ICAgICAgICAgICAgICByZWFzb249InRhc2tjbHVzdGVyIGxpYnJhcnkgaGFzIGFuIGVuY29kaW5n
IGJ1ZyAiCisgICAgICAgICAgICAgICAgICAgImh0dHBzOi8vZ2l0aHViLmNvbS90YXNrY2x1c3Rl
ci9qc29uLWUvaXNzdWVzLzMzOCIpCitkZWYgdGVzdF92ZXJpZnlfdGFza2NsdXN0ZXJfeW1sKCk6
CisgICAgIiIiVmVyaWZ5IHRoYXQgdGhlIGpzb24tZSBpbiB0aGUgLnRhc2tjbHVzdGVyLnltbCBp
cyB2YWxpZCIiIgorICAgIHdpdGggb3Blbihvcy5wYXRoLmpvaW4ocm9vdCwgIi50YXNrY2x1c3Rl
ci55bWwiKSwgZW5jb2Rpbmc9InV0ZjgiKSBhcyBmOgorICAgICAgICB0ZW1wbGF0ZSA9IHlhbWwu
c2FmZV9sb2FkKGYpCisKKyAgICBldmVudHMgPSBbKCJwcl9ldmVudC5qc29uIiwgImdpdGh1Yi1w
dWxsLXJlcXVlc3QiLCAiUHVsbCBSZXF1ZXN0IiksCisgICAgICAgICAgICAgICgibWFzdGVyX3B1
c2hfZXZlbnQuanNvbiIsICJnaXRodWItcHVzaCIsICJQdXNoIHRvIG1hc3RlciIpXQorCisgICAg
Zm9yIGZpbGVuYW1lLCB0YXNrc19mb3IsIHRpdGxlIGluIGV2ZW50czoKKyAgICAgICAgd2l0aCBv
cGVuKGRhdGFfcGF0aChmaWxlbmFtZSksIGVuY29kaW5nPSJ1dGY4IikgYXMgZjoKKyAgICAgICAg
ICAgIGV2ZW50ID0ganNvbi5sb2FkKGYpCisKKyAgICAgICAgY29udGV4dCA9IHsidGFza3NfZm9y
IjogdGFza3NfZm9yLAorICAgICAgICAgICAgICAgICAgICJldmVudCI6IGV2ZW50LAorICAgICAg
ICAgICAgICAgICAgICJhc19zbHVnaWQiOiBsYW1iZGEgeDogeH0KKworICAgICAgICBqc29uZS5y
ZW5kZXIodGVtcGxhdGUsIGNvbnRleHQpCisKKworZGVmIHRlc3RfdmVyaWZ5X3BheWxvYWQoKToK
KyAgICAiIiJWZXJpZnkgdGhhdCB0aGUgZGVjaXNpb24gdGFzayBwcm9kdWNlcyB0YXNrcyB3aXRo
IGEgdmFsaWQgcGF5bG9hZCIiIgorICAgIGZyb20gdG9vbHMuY2kudGMuZGVjaXNpb24gaW1wb3J0
IGRlY2lkZQorCisgICAgY3JlYXRlX3Rhc2tfc2NoZW1hID0gcmVxdWVzdHMuZ2V0KAorICAgICAg
ICAiaHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3Rhc2tjbHVzdGVyL3Rhc2tjbHVz
dGVyL2Jsb2IvbWFzdGVyL3NlcnZpY2VzL3F1ZXVlL3NjaGVtYXMvdjEvY3JlYXRlLXRhc2stcmVx
dWVzdC55bWwiKQorICAgIGNyZWF0ZV90YXNrX3NjaGVtYSA9IHlhbWwuc2FmZV9sb2FkKGNyZWF0
ZV90YXNrX3NjaGVtYS5jb250ZW50KQorCisgICAgcGF5bG9hZF9zY2hlbWEgPSByZXF1ZXN0cy5n
ZXQoImh0dHBzOi8vcmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbS90YXNrY2x1c3Rlci9kb2NrZXIt
d29ya2VyL21hc3Rlci9zY2hlbWFzL3YxL3BheWxvYWQuanNvbiIpLmpzb24oKQorCisgICAgam9i
cyA9IFsibGludCIsCisgICAgICAgICAgICAibWFuaWZlc3RfdXBsb2FkIiwKKyAgICAgICAgICAg
ICJyZXNvdXJjZXNfdW5pdHRlc3QiLAorICAgICAgICAgICAgInRvb2xzX3VuaXR0ZXN0IiwKKyAg
ICAgICAgICAgICJ3cHRfaW50ZWdyYXRpb24iLAorICAgICAgICAgICAgIndwdHJ1bm5lcl9pbmZy
YXN0cnVjdHVyZSIsCisgICAgICAgICAgICAid3B0cnVubmVyX3VuaXR0ZXN0Il0KKworICAgIGZv
ciBmaWxlbmFtZSBpbiBbInByX2V2ZW50Lmpzb24iLCAibWFzdGVyX3B1c2hfZXZlbnQuanNvbiJd
OgorICAgICAgICB3aXRoIG9wZW4oZGF0YV9wYXRoKGZpbGVuYW1lKSwgZW5jb2Rpbmc9InV0Zjgi
KSBhcyBmOgorICAgICAgICAgICAgZXZlbnQgPSBqc29uLmxvYWQoZikKKworICAgICAgICB3aXRo
IG1vY2sucGF0Y2goInRvb2xzLmNpLnRjLmRlY2lzaW9uLmdldF9mZXRjaF9yZXYiLCByZXR1cm5f
dmFsdWU9KGV2ZW50WyJhZnRlciJdLCBOb25lKSk6CisgICAgICAgICAgICB3aXRoIG1vY2sucGF0
Y2goInRvb2xzLmNpLnRjLmRlY2lzaW9uLmdldF9ydW5fam9icyIsIHJldHVybl92YWx1ZT1zZXQo
am9icykpOgorICAgICAgICAgICAgICAgIHRhc2tfaWRfbWFwID0gZGVjaWRlKGV2ZW50KQorICAg
ICAgICBmb3IgbmFtZSwgKHRhc2tfaWQsIHRhc2tfZGF0YSkgaW4gdGFza19pZF9tYXAuaXRlbXMo
KToKKyAgICAgICAgICAgIHRyeToKKyAgICAgICAgICAgICAgICB2YWxpZGF0ZShpbnN0YW5jZT10
YXNrX2RhdGEsIHNjaGVtYT1jcmVhdGVfdGFza19zY2hlbWEpCisgICAgICAgICAgICAgICAgdmFs
aWRhdGUoaW5zdGFuY2U9dGFza19kYXRhWyJwYXlsb2FkIl0sIHNjaGVtYT1wYXlsb2FkX3NjaGVt
YSkKKyAgICAgICAgICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZToKKyAgICAgICAgICAgICAgICBw
cmludCgiVmFsaWRhdGlvbiBmYWlsZWQgZm9yIHRhc2sgJyVzJzpcbiVzIiAlIChuYW1lLCBqc29u
LmR1bXBzKHRhc2tfZGF0YSwgaW5kZW50PTIpKSkKKyAgICAgICAgICAgICAgICByYWlzZSBlCisK
KworQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKCJldmVudF9wYXRoLGlzX3ByLGZpbGVzX2NoYW5n
ZWQsZXhwZWN0ZWQiLCBbCisgICAgKCJtYXN0ZXJfcHVzaF9ldmVudC5qc29uIiwgRmFsc2UsIE5v
bmUsCisgICAgIHsnZG93bmxvYWQtZmlyZWZveC1uaWdodGx5JywKKyAgICAgICd3cHQtZmlyZWZv
eC1uaWdodGx5LXRlc3RoYXJuZXNzLTEnLAorICAgICAgJ3dwdC1maXJlZm94LW5pZ2h0bHktdGVz
dGhhcm5lc3MtMicsCisgICAgICAnd3B0LWZpcmVmb3gtbmlnaHRseS10ZXN0aGFybmVzcy0zJywK
KyAgICAgICd3cHQtZmlyZWZveC1uaWdodGx5LXRlc3RoYXJuZXNzLTQnLAorICAgICAgJ3dwdC1m
aXJlZm94LW5pZ2h0bHktdGVzdGhhcm5lc3MtNScsCisgICAgICAnd3B0LWZpcmVmb3gtbmlnaHRs
eS10ZXN0aGFybmVzcy02JywKKyAgICAgICd3cHQtZmlyZWZveC1uaWdodGx5LXRlc3RoYXJuZXNz
LTcnLAorICAgICAgJ3dwdC1maXJlZm94LW5pZ2h0bHktdGVzdGhhcm5lc3MtOCcsCisgICAgICAn
d3B0LWZpcmVmb3gtbmlnaHRseS10ZXN0aGFybmVzcy05JywKKyAgICAgICd3cHQtZmlyZWZveC1u
aWdodGx5LXRlc3RoYXJuZXNzLTEwJywKKyAgICAgICd3cHQtZmlyZWZveC1uaWdodGx5LXRlc3Ro
YXJuZXNzLTExJywKKyAgICAgICd3cHQtZmlyZWZveC1uaWdodGx5LXRlc3RoYXJuZXNzLTEyJywK
KyAgICAgICd3cHQtZmlyZWZveC1uaWdodGx5LXRlc3RoYXJuZXNzLTEzJywKKyAgICAgICd3cHQt
ZmlyZWZveC1uaWdodGx5LXRlc3RoYXJuZXNzLTE0JywKKyAgICAgICd3cHQtZmlyZWZveC1uaWdo
dGx5LXRlc3RoYXJuZXNzLTE1JywKKyAgICAgICd3cHQtZmlyZWZveC1uaWdodGx5LXRlc3RoYXJu
ZXNzLTE2JywKKyAgICAgICd3cHQtY2hyb21lLWRldi10ZXN0aGFybmVzcy0xJywKKyAgICAgICd3
cHQtY2hyb21lLWRldi10ZXN0aGFybmVzcy0yJywKKyAgICAgICd3cHQtY2hyb21lLWRldi10ZXN0
aGFybmVzcy0zJywKKyAgICAgICd3cHQtY2hyb21lLWRldi10ZXN0aGFybmVzcy00JywKKyAgICAg
ICd3cHQtY2hyb21lLWRldi10ZXN0aGFybmVzcy01JywKKyAgICAgICd3cHQtY2hyb21lLWRldi10
ZXN0aGFybmVzcy02JywKKyAgICAgICd3cHQtY2hyb21lLWRldi10ZXN0aGFybmVzcy03JywKKyAg
ICAgICd3cHQtY2hyb21lLWRldi10ZXN0aGFybmVzcy04JywKKyAgICAgICd3cHQtY2hyb21lLWRl
di10ZXN0aGFybmVzcy05JywKKyAgICAgICd3cHQtY2hyb21lLWRldi10ZXN0aGFybmVzcy0xMCcs
CisgICAgICAnd3B0LWNocm9tZS1kZXYtdGVzdGhhcm5lc3MtMTEnLAorICAgICAgJ3dwdC1jaHJv
bWUtZGV2LXRlc3RoYXJuZXNzLTEyJywKKyAgICAgICd3cHQtY2hyb21lLWRldi10ZXN0aGFybmVz
cy0xMycsCisgICAgICAnd3B0LWNocm9tZS1kZXYtdGVzdGhhcm5lc3MtMTQnLAorICAgICAgJ3dw
dC1jaHJvbWUtZGV2LXRlc3RoYXJuZXNzLTE1JywKKyAgICAgICd3cHQtY2hyb21lLWRldi10ZXN0
aGFybmVzcy0xNicsCisgICAgICAnd3B0LWZpcmVmb3gtbmlnaHRseS1yZWZ0ZXN0LTEnLAorICAg
ICAgJ3dwdC1maXJlZm94LW5pZ2h0bHktcmVmdGVzdC0yJywKKyAgICAgICd3cHQtZmlyZWZveC1u
aWdodGx5LXJlZnRlc3QtMycsCisgICAgICAnd3B0LWZpcmVmb3gtbmlnaHRseS1yZWZ0ZXN0LTQn
LAorICAgICAgJ3dwdC1maXJlZm94LW5pZ2h0bHktcmVmdGVzdC01JywKKyAgICAgICd3cHQtY2hy
b21lLWRldi1yZWZ0ZXN0LTEnLAorICAgICAgJ3dwdC1jaHJvbWUtZGV2LXJlZnRlc3QtMicsCisg
ICAgICAnd3B0LWNocm9tZS1kZXYtcmVmdGVzdC0zJywKKyAgICAgICd3cHQtY2hyb21lLWRldi1y
ZWZ0ZXN0LTQnLAorICAgICAgJ3dwdC1jaHJvbWUtZGV2LXJlZnRlc3QtNScsCisgICAgICAnd3B0
LWZpcmVmb3gtbmlnaHRseS13ZHNwZWMtMScsCisgICAgICAnd3B0LWNocm9tZS1kZXYtd2RzcGVj
LTEnLAorICAgICAgJ2xpbnQnfSksCisgICAgKCJwcl9ldmVudC5qc29uIiwgVHJ1ZSwgeyIudGFz
a2NsdXN0ZXIueW1sIiwiLnRyYXZpcy55bWwiLCJ0b29scy9jaS9zdGFydC5zaCJ9LAorICAgICB7
J2xpbnQnLAorICAgICAgJ3Rvb2xzLyB1bml0dGVzdHMgKFB5dGhvbiAyKScsCisgICAgICAndG9v
bHMvIHVuaXR0ZXN0cyAoUHl0aG9uIDMpJywKKyAgICAgICd0b29scy93cHQvIHRlc3RzJywKKyAg
ICAgICdyZXNvdXJjZXMvIHRlc3RzJywKKyAgICAgICdpbmZyYXN0cnVjdHVyZS8gdGVzdHMnfSks
CisgICAgIyBNb3JlIHRlc3RzIGFyZSBhZmZlY3RlZCBpbiB0aGUgYWN0dWFsIFBSIGJ1dCBpdCBz
aG91bGRuJ3QgYWZmZWN0IHRoZSBzY2hlZHVsZWQgdGFza3MKKyAgICAoInByX2V2ZW50X3Rlc3Rz
X2FmZmVjdGVkLmpzb24iLCBUcnVlLCB7ImxheW91dC1pbnN0YWJpbGl0eS9jbGlwLW5lZ2F0aXZl
LWJvdHRvbS1tYXJnaW4uaHRtbCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICJsYXlvdXQtaW5zdGFiaWxpdHkvY29tcG9zaXRlZC1lbGVtZW50LW1vdmVtZW50
Lmh0bWwifSwKKyAgICAgeydkb3dubG9hZC1maXJlZm94LW5pZ2h0bHknLAorICAgICAgJ3dwdC1m
aXJlZm94LW5pZ2h0bHktc3RhYmlsaXR5JywKKyAgICAgICd3cHQtZmlyZWZveC1uaWdodGx5LXJl
c3VsdHMnLAorICAgICAgJ3dwdC1maXJlZm94LW5pZ2h0bHktcmVzdWx0cy13aXRob3V0LWNoYW5n
ZXMnLAorICAgICAgJ3dwdC1jaHJvbWUtZGV2LXN0YWJpbGl0eScsCisgICAgICAnd3B0LWNocm9t
ZS1kZXYtcmVzdWx0cycsCisgICAgICAnd3B0LWNocm9tZS1kZXYtcmVzdWx0cy13aXRob3V0LWNo
YW5nZXMnLAorICAgICAgJ2xpbnQnfSksCisgICAgKCJlcG9jaHNfZGFpbHlfcHVzaF9ldmVudC5q
c29uIiwgRmFsc2UsIE5vbmUsCisgICAgIHsnZG93bmxvYWQtZmlyZWZveC1zdGFibGUnLAorICAg
ICAgJ3dwdC1jaHJvbWUtc3RhYmxlLXJlZnRlc3QtMScsCisgICAgICAnd3B0LWNocm9tZS1zdGFi
bGUtcmVmdGVzdC0yJywKKyAgICAgICd3cHQtY2hyb21lLXN0YWJsZS1yZWZ0ZXN0LTMnLAorICAg
ICAgJ3dwdC1jaHJvbWUtc3RhYmxlLXJlZnRlc3QtNCcsCisgICAgICAnd3B0LWNocm9tZS1zdGFi
bGUtcmVmdGVzdC01JywKKyAgICAgICd3cHQtY2hyb21lLXN0YWJsZS10ZXN0aGFybmVzcy0xJywK
KyAgICAgICd3cHQtY2hyb21lLXN0YWJsZS10ZXN0aGFybmVzcy0xMCcsCisgICAgICAnd3B0LWNo
cm9tZS1zdGFibGUtdGVzdGhhcm5lc3MtMTEnLAorICAgICAgJ3dwdC1jaHJvbWUtc3RhYmxlLXRl
c3RoYXJuZXNzLTEyJywKKyAgICAgICd3cHQtY2hyb21lLXN0YWJsZS10ZXN0aGFybmVzcy0xMycs
CisgICAgICAnd3B0LWNocm9tZS1zdGFibGUtdGVzdGhhcm5lc3MtMTQnLAorICAgICAgJ3dwdC1j
aHJvbWUtc3RhYmxlLXRlc3RoYXJuZXNzLTE1JywKKyAgICAgICd3cHQtY2hyb21lLXN0YWJsZS10
ZXN0aGFybmVzcy0xNicsCisgICAgICAnd3B0LWNocm9tZS1zdGFibGUtdGVzdGhhcm5lc3MtMics
CisgICAgICAnd3B0LWNocm9tZS1zdGFibGUtdGVzdGhhcm5lc3MtMycsCisgICAgICAnd3B0LWNo
cm9tZS1zdGFibGUtdGVzdGhhcm5lc3MtNCcsCisgICAgICAnd3B0LWNocm9tZS1zdGFibGUtdGVz
dGhhcm5lc3MtNScsCisgICAgICAnd3B0LWNocm9tZS1zdGFibGUtdGVzdGhhcm5lc3MtNicsCisg
ICAgICAnd3B0LWNocm9tZS1zdGFibGUtdGVzdGhhcm5lc3MtNycsCisgICAgICAnd3B0LWNocm9t
ZS1zdGFibGUtdGVzdGhhcm5lc3MtOCcsCisgICAgICAnd3B0LWNocm9tZS1zdGFibGUtdGVzdGhh
cm5lc3MtOScsCisgICAgICAnd3B0LWNocm9tZS1zdGFibGUtd2RzcGVjLTEnLAorICAgICAgJ3dw
dC1maXJlZm94LXN0YWJsZS1yZWZ0ZXN0LTEnLAorICAgICAgJ3dwdC1maXJlZm94LXN0YWJsZS1y
ZWZ0ZXN0LTInLAorICAgICAgJ3dwdC1maXJlZm94LXN0YWJsZS1yZWZ0ZXN0LTMnLAorICAgICAg
J3dwdC1maXJlZm94LXN0YWJsZS1yZWZ0ZXN0LTQnLAorICAgICAgJ3dwdC1maXJlZm94LXN0YWJs
ZS1yZWZ0ZXN0LTUnLAorICAgICAgJ3dwdC1maXJlZm94LXN0YWJsZS10ZXN0aGFybmVzcy0xJywK
KyAgICAgICd3cHQtZmlyZWZveC1zdGFibGUtdGVzdGhhcm5lc3MtMTAnLAorICAgICAgJ3dwdC1m
aXJlZm94LXN0YWJsZS10ZXN0aGFybmVzcy0xMScsCisgICAgICAnd3B0LWZpcmVmb3gtc3RhYmxl
LXRlc3RoYXJuZXNzLTEyJywKKyAgICAgICd3cHQtZmlyZWZveC1zdGFibGUtdGVzdGhhcm5lc3Mt
MTMnLAorICAgICAgJ3dwdC1maXJlZm94LXN0YWJsZS10ZXN0aGFybmVzcy0xNCcsCisgICAgICAn
d3B0LWZpcmVmb3gtc3RhYmxlLXRlc3RoYXJuZXNzLTE1JywKKyAgICAgICd3cHQtZmlyZWZveC1z
dGFibGUtdGVzdGhhcm5lc3MtMTYnLAorICAgICAgJ3dwdC1maXJlZm94LXN0YWJsZS10ZXN0aGFy
bmVzcy0yJywKKyAgICAgICd3cHQtZmlyZWZveC1zdGFibGUtdGVzdGhhcm5lc3MtMycsCisgICAg
ICAnd3B0LWZpcmVmb3gtc3RhYmxlLXRlc3RoYXJuZXNzLTQnLAorICAgICAgJ3dwdC1maXJlZm94
LXN0YWJsZS10ZXN0aGFybmVzcy01JywKKyAgICAgICd3cHQtZmlyZWZveC1zdGFibGUtdGVzdGhh
cm5lc3MtNicsCisgICAgICAnd3B0LWZpcmVmb3gtc3RhYmxlLXRlc3RoYXJuZXNzLTcnLAorICAg
ICAgJ3dwdC1maXJlZm94LXN0YWJsZS10ZXN0aGFybmVzcy04JywKKyAgICAgICd3cHQtZmlyZWZv
eC1zdGFibGUtdGVzdGhhcm5lc3MtOScsCisgICAgICAnd3B0LWZpcmVmb3gtc3RhYmxlLXdkc3Bl
Yy0xJywKKyAgICAgICd3cHQtd2Via2l0Z3RrX21pbmlicm93c2VyLW5pZ2h0bHktcmVmdGVzdC0x
JywKKyAgICAgICd3cHQtd2Via2l0Z3RrX21pbmlicm93c2VyLW5pZ2h0bHktcmVmdGVzdC0yJywK
KyAgICAgICd3cHQtd2Via2l0Z3RrX21pbmlicm93c2VyLW5pZ2h0bHktcmVmdGVzdC0zJywKKyAg
ICAgICd3cHQtd2Via2l0Z3RrX21pbmlicm93c2VyLW5pZ2h0bHktcmVmdGVzdC00JywKKyAgICAg
ICd3cHQtd2Via2l0Z3RrX21pbmlicm93c2VyLW5pZ2h0bHktcmVmdGVzdC01JywKKyAgICAgICd3
cHQtd2Via2l0Z3RrX21pbmlicm93c2VyLW5pZ2h0bHktdGVzdGhhcm5lc3MtMScsCisgICAgICAn
d3B0LXdlYmtpdGd0a19taW5pYnJvd3Nlci1uaWdodGx5LXRlc3RoYXJuZXNzLTEwJywKKyAgICAg
ICd3cHQtd2Via2l0Z3RrX21pbmlicm93c2VyLW5pZ2h0bHktdGVzdGhhcm5lc3MtMTEnLAorICAg
ICAgJ3dwdC13ZWJraXRndGtfbWluaWJyb3dzZXItbmlnaHRseS10ZXN0aGFybmVzcy0xMicsCisg
ICAgICAnd3B0LXdlYmtpdGd0a19taW5pYnJvd3Nlci1uaWdodGx5LXRlc3RoYXJuZXNzLTEzJywK
KyAgICAgICd3cHQtd2Via2l0Z3RrX21pbmlicm93c2VyLW5pZ2h0bHktdGVzdGhhcm5lc3MtMTQn
LAorICAgICAgJ3dwdC13ZWJraXRndGtfbWluaWJyb3dzZXItbmlnaHRseS10ZXN0aGFybmVzcy0x
NScsCisgICAgICAnd3B0LXdlYmtpdGd0a19taW5pYnJvd3Nlci1uaWdodGx5LXRlc3RoYXJuZXNz
LTE2JywKKyAgICAgICd3cHQtd2Via2l0Z3RrX21pbmlicm93c2VyLW5pZ2h0bHktdGVzdGhhcm5l
c3MtMicsCisgICAgICAnd3B0LXdlYmtpdGd0a19taW5pYnJvd3Nlci1uaWdodGx5LXRlc3RoYXJu
ZXNzLTMnLAorICAgICAgJ3dwdC13ZWJraXRndGtfbWluaWJyb3dzZXItbmlnaHRseS10ZXN0aGFy
bmVzcy00JywKKyAgICAgICd3cHQtd2Via2l0Z3RrX21pbmlicm93c2VyLW5pZ2h0bHktdGVzdGhh
cm5lc3MtNScsCisgICAgICAnd3B0LXdlYmtpdGd0a19taW5pYnJvd3Nlci1uaWdodGx5LXRlc3Ro
YXJuZXNzLTYnLAorICAgICAgJ3dwdC13ZWJraXRndGtfbWluaWJyb3dzZXItbmlnaHRseS10ZXN0
aGFybmVzcy03JywKKyAgICAgICd3cHQtd2Via2l0Z3RrX21pbmlicm93c2VyLW5pZ2h0bHktdGVz
dGhhcm5lc3MtOCcsCisgICAgICAnd3B0LXdlYmtpdGd0a19taW5pYnJvd3Nlci1uaWdodGx5LXRl
c3RoYXJuZXNzLTknLAorICAgICAgJ3dwdC13ZWJraXRndGtfbWluaWJyb3dzZXItbmlnaHRseS13
ZHNwZWMtMSd9KQorXSkKK2RlZiB0ZXN0X3NjaGVkdWxlX3Rhc2tzKGV2ZW50X3BhdGgsIGlzX3By
LCBmaWxlc19jaGFuZ2VkLCBleHBlY3RlZCk6CisgICAgd2l0aCBtb2NrLnBhdGNoKCJ0b29scy5j
aS50Yy5kZWNpc2lvbi5nZXRfZmV0Y2hfcmV2IiwgcmV0dXJuX3ZhbHVlPShpc19wciwgTm9uZSkp
OgorICAgICAgICB3aXRoIG1vY2sucGF0Y2goInRvb2xzLndwdC50ZXN0ZmlsZXMucmVwb19maWxl
c19jaGFuZ2VkIiwKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybl92YWx1ZT1maWxlc19j
aGFuZ2VkKToKKyAgICAgICAgICAgIHdpdGggb3BlbihkYXRhX3BhdGgoZXZlbnRfcGF0aCksIGVu
Y29kaW5nPSJ1dGY4IikgYXMgZXZlbnRfZmlsZToKKyAgICAgICAgICAgICAgICBldmVudCA9IGpz
b24ubG9hZChldmVudF9maWxlKQorICAgICAgICAgICAgICAgIHNjaGVkdWxlZCA9IGRlY2lzaW9u
LmRlY2lkZShldmVudCkKKyAgICAgICAgICAgICAgICBhc3NlcnQgc2V0KHNjaGVkdWxlZC5rZXlz
KCkpID09IGV4cGVjdGVkCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2NpL3RjL3Rlc3RzL3czYy1pbXBvcnQubG9nIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9jaS90Yy90ZXN0cy93
M2MtaW1wb3J0LmxvZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uMWIx
ODdmNmRkOTMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2NpL3RjL3Rlc3RzL3czYy1pbXBvcnQubG9nCkBAIC0wLDAg
KzEsMTkgQEAKK1RoZSB0ZXN0cyBpbiB0aGlzIGRpcmVjdG9yeSB3ZXJlIGltcG9ydGVkIGZyb20g
dGhlIFczQyByZXBvc2l0b3J5LgorRG8gTk9UIG1vZGlmeSB0aGVzZSB0ZXN0cyBkaXJlY3RseSBp
biBXZWJLaXQuCitJbnN0ZWFkLCBjcmVhdGUgYSBwdWxsIHJlcXVlc3Qgb24gdGhlIFdQVCBnaXRo
dWI6CisJaHR0cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQKKworVGhlbiBy
dW4gdGhlIFRvb2xzL1NjcmlwdHMvaW1wb3J0LXczYy10ZXN0cyBpbiBXZWJLaXQgdG8gcmVpbXBv
cnQKKworRG8gTk9UIG1vZGlmeSBvciByZW1vdmUgdGhpcyBmaWxlLgorCistLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0KK1Byb3BlcnRpZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKK05vbmUKK1Byb3BlcnR5
IHZhbHVlcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgorTm9uZQorLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
CitMaXN0IG9mIGZpbGVzOgorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvY2kvdGMvdGVzdHMvdGVzdF9kZWNpc2lvbi5weQorL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvY2kvdGMvdGVzdHMvdGVzdF90YXNr
Z3JhcGgucHkKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL2NpL3RjL3Rlc3RzL3Rlc3RfdmFsaWQucHkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvY2kvdGMvdzNjLWltcG9ydC5sb2cg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2NpL3Rj
L3czYy1pbXBvcnQubG9nCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5l
YzFlMzg2ZDJmMQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvY2kvdGMvdzNjLWltcG9ydC5sb2cKQEAgLTAsMCArMSwy
MSBAQAorVGhlIHRlc3RzIGluIHRoaXMgZGlyZWN0b3J5IHdlcmUgaW1wb3J0ZWQgZnJvbSB0aGUg
VzNDIHJlcG9zaXRvcnkuCitEbyBOT1QgbW9kaWZ5IHRoZXNlIHRlc3RzIGRpcmVjdGx5IGluIFdl
YktpdC4KK0luc3RlYWQsIGNyZWF0ZSBhIHB1bGwgcmVxdWVzdCBvbiB0aGUgV1BUIGdpdGh1YjoK
KwlodHRwczovL2dpdGh1Yi5jb20vd2ViLXBsYXRmb3JtLXRlc3RzL3dwdAorCitUaGVuIHJ1biB0
aGUgVG9vbHMvU2NyaXB0cy9pbXBvcnQtdzNjLXRlc3RzIGluIFdlYktpdCB0byByZWltcG9ydAor
CitEbyBOT1QgbW9kaWZ5IG9yIHJlbW92ZSB0aGlzIGZpbGUuCisKKy0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQor
UHJvcGVydGllcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgorTm9uZQorUHJvcGVydHkgdmFs
dWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6CitOb25lCistLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK0xp
c3Qgb2YgZmlsZXM6CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy9jaS90Yy9SRUFETUUubWQKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL2NpL3RjL19faW5pdF9fLnB5CisvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9jaS90Yy9kZWNpc2lvbi5weQorL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvY2kvdGMvZG93bmxv
YWQucHkKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L2NpL3RjL3Rhc2tncmFwaC5weQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9jaS90ZXN0cy90ZXN0X2pvYnMucHkgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2NpL3Rlc3RzL3Rlc3Rf
am9icy5weQppbmRleCBlODg4YWQ4ODRhMS4uOTRmNzk5ODc3MGMgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvY2kvdGVzdHMvdGVz
dF9qb2JzLnB5CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvY2kvdGVzdHMvdGVzdF9qb2JzLnB5CkBAIC0xLDIxICsxLDQ0IEBACiBmcm9tIHRv
b2xzLmNpIGltcG9ydCBqb2JzCiAKLWRlZmF1bHRfam9icyA9IHNldChbImxpbnQiLCAibWFuaWZl
c3RfdXBsb2FkIl0pCithbGxfam9icyA9IHsKKyAgICAiYnVpbGRfY3NzIiwKKyAgICAibGludCIs
CisgICAgIm1hbmlmZXN0X3VwbG9hZCIsCisgICAgInJlc291cmNlc191bml0dGVzdCIsCisgICAg
ImFmZmVjdGVkX3Rlc3RzIiwKKyAgICAic3RhYmlsaXR5IiwKKyAgICAidG9vbHNfdW5pdHRlc3Qi
LAorICAgICJ1cGRhdGVfYnVpbHQiLAorICAgICJ3cHRfaW50ZWdyYXRpb24iLAorICAgICJ3cHRy
dW5uZXJfaW5mcmFzdHJ1Y3R1cmUiLAorICAgICJ3cHRydW5uZXJfdW5pdHRlc3QiLAorfQorCitk
ZWZhdWx0X2pvYnMgPSB7ImxpbnQiLCAibWFuaWZlc3RfdXBsb2FkIn0KKworCitkZWYgdGVzdF9h
bGwoKToKKyAgICBhc3NlcnQgam9icy5nZXRfam9icyhbIlJFQURNRS5tZCJdLCBhbGw9VHJ1ZSkg
PT0gYWxsX2pvYnMKKworCitkZWYgdGVzdF9kZWZhdWx0KCk6CisgICAgYXNzZXJ0IGpvYnMuZ2V0
X2pvYnMoWyJSRUFETUUubWQiXSkgPT0gZGVmYXVsdF9qb2JzCiAKIAogZGVmIHRlc3RfdGVzdGhh
cm5lc3MoKToKLSAgICBhc3NlcnQgam9icy5nZXRfam9icyhbInJlc291cmNlcy90ZXN0aGFybmVz
cy5qcyJdKSA9PSBkZWZhdWx0X2pvYnMgfCBzZXQoWyJyZXNvdXJjZXNfdW5pdHRlc3QiXSkKKyAg
ICBhc3NlcnQgam9icy5nZXRfam9icyhbInJlc291cmNlcy90ZXN0aGFybmVzcy5qcyJdKSA9PSBk
ZWZhdWx0X2pvYnMgfCB7InJlc291cmNlc191bml0dGVzdCIsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ3
cHRydW5uZXJfaW5mcmFzdHJ1Y3R1cmUifQogICAgIGFzc2VydCBqb2JzLmdldF9qb2JzKFsicmVz
b3VyY2VzL3Rlc3RoYXJuZXNzLmpzIl0sCi0gICAgICAgICAgICAgICAgICAgICAgICAgaW5jbHVk
ZXM9WyJyZXNvdXJjZXNfdW5pdHRlc3QiXSkgPT0gc2V0KFsicmVzb3VyY2VzX3VuaXR0ZXN0Il0p
CisgICAgICAgICAgICAgICAgICAgICAgICAgaW5jbHVkZXM9WyJyZXNvdXJjZXNfdW5pdHRlc3Qi
XSkgPT0geyJyZXNvdXJjZXNfdW5pdHRlc3QifQogICAgIGFzc2VydCBqb2JzLmdldF9qb2JzKFsi
dG9vbHMvd3B0c2VydmUvd3B0c2VydmUvY29uZmlnLnB5Il0sCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgaW5jbHVkZXM9WyJyZXNvdXJjZXNfdW5pdHRlc3QiXSkgPT0gc2V0KFsicmVzb3VyY2Vz
X3VuaXR0ZXN0Il0pCisgICAgICAgICAgICAgICAgICAgICAgICAgaW5jbHVkZXM9WyJyZXNvdXJj
ZXNfdW5pdHRlc3QiXSkgPT0geyJyZXNvdXJjZXNfdW5pdHRlc3QifQogICAgIGFzc2VydCBqb2Jz
LmdldF9qb2JzKFsiZm9vL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyJdLAogICAgICAgICAgICAg
ICAgICAgICAgICAgIGluY2x1ZGVzPVsicmVzb3VyY2VzX3VuaXR0ZXN0Il0pID09IHNldCgpCiAK
IAogZGVmIHRlc3Rfc3RhYmlsaXR5KCk6CiAgICAgYXNzZXJ0IGpvYnMuZ2V0X2pvYnMoWyJkb20v
aGlzdG9yaWNhbC5odG1sIl0sCi0gICAgICAgICAgICAgICAgICAgICAgICAgaW5jbHVkZXM9WyJz
dGFiaWxpdHkiXSkgPT0gc2V0KFsic3RhYmlsaXR5Il0pCisgICAgICAgICAgICAgICAgICAgICAg
ICAgaW5jbHVkZXM9WyJzdGFiaWxpdHkiXSkgPT0geyJzdGFiaWxpdHkifQogICAgIGFzc2VydCBq
b2JzLmdldF9qb2JzKFsidG9vbHMvcHl0ZXN0LmluaSJdLAogICAgICAgICAgICAgICAgICAgICAg
ICAgIGluY2x1ZGVzPVsic3RhYmlsaXR5Il0pID09IHNldCgpCiAgICAgYXNzZXJ0IGpvYnMuZ2V0
X2pvYnMoWyJzZXJ2ZSJdLApAQCAtMzMsMTkgKzU2LDQxIEBAIGRlZiB0ZXN0X3N0YWJpbGl0eSgp
OgogICAgIGFzc2VydCBqb2JzLmdldF9qb2JzKFsiY3NzL2J1aWxkLWNzcy10ZXN0c3VpdGUuc2gi
XSwKICAgICAgICAgICAgICAgICAgICAgICAgICBpbmNsdWRlcz1bInN0YWJpbGl0eSJdKSA9PSBz
ZXQoKQogICAgIGFzc2VydCBqb2JzLmdldF9qb2JzKFsiY3NzL0NTUzIxL3Rlc3QtMDAxLmh0bWwi
XSwKLSAgICAgICAgICAgICAgICAgICAgICAgICBpbmNsdWRlcz1bInN0YWJpbGl0eSJdKSA9PSBz
ZXQoWyJzdGFiaWxpdHkiXSkKKyAgICAgICAgICAgICAgICAgICAgICAgICBpbmNsdWRlcz1bInN0
YWJpbGl0eSJdKSA9PSB7InN0YWJpbGl0eSJ9CiAgICAgYXNzZXJ0IGpvYnMuZ2V0X2pvYnMoWyJj
c3MvYnVpbGQtY3NzLXRlc3RzdWl0ZS5zaCIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICJj
c3MvQ1NTMjEvdGVzdC0wMDEuaHRtbCJdLAotICAgICAgICAgICAgICAgICAgICAgICAgIGluY2x1
ZGVzPVsic3RhYmlsaXR5Il0pID09IHNldChbInN0YWJpbGl0eSJdKQotCi0KLWRlZiB0ZXN0X2Rl
ZmF1bHQoKToKLSAgICBhc3NlcnQgam9icy5nZXRfam9icyhbIlJFQURNRS5tZCJdKSA9PSBkZWZh
dWx0X2pvYnMKKyAgICAgICAgICAgICAgICAgICAgICAgICBpbmNsdWRlcz1bInN0YWJpbGl0eSJd
KSA9PSB7InN0YWJpbGl0eSJ9CiAKK2RlZiB0ZXN0X2FmZmVjdGVkX3Rlc3RzKCk6CisgICAgYXNz
ZXJ0IGpvYnMuZ2V0X2pvYnMoWyJkb20vaGlzdG9yaWNhbC5odG1sIl0sCisgICAgICAgICAgICAg
ICAgICAgICAgICAgaW5jbHVkZXM9WyJhZmZlY3RlZF90ZXN0cyJdKSA9PSB7ImFmZmVjdGVkX3Rl
c3RzIn0KKyAgICBhc3NlcnQgam9icy5nZXRfam9icyhbInRvb2xzL3B5dGVzdC5pbmkiXSwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICBpbmNsdWRlcz1bImFmZmVjdGVkX3Rlc3RzIl0pID09IHNl
dCgpCisgICAgYXNzZXJ0IGpvYnMuZ2V0X2pvYnMoWyJzZXJ2ZSJdLAorICAgICAgICAgICAgICAg
ICAgICAgICAgIGluY2x1ZGVzPVsiYWZmZWN0ZWRfdGVzdHMiXSkgPT0gc2V0KCkKKyAgICBhc3Nl
cnQgam9icy5nZXRfam9icyhbInJlc291cmNlcy90ZXN0aGFybmVzcy5qcyJdLAorICAgICAgICAg
ICAgICAgICAgICAgICAgIGluY2x1ZGVzPVsiYWZmZWN0ZWRfdGVzdHMiXSkgPT0gc2V0KCkKKyAg
ICBhc3NlcnQgam9icy5nZXRfam9icyhbImRvY3MvLmdpdGlnbm9yZSJdLAorICAgICAgICAgICAg
ICAgICAgICAgICAgIGluY2x1ZGVzPVsiYWZmZWN0ZWRfdGVzdHMiXSkgPT0gc2V0KCkKKyAgICBh
c3NlcnQgam9icy5nZXRfam9icyhbImRvbS90b29scy9leGFtcGxlLnB5Il0sCisgICAgICAgICAg
ICAgICAgICAgICAgICAgaW5jbHVkZXM9WyJhZmZlY3RlZF90ZXN0cyJdKSA9PSBzZXQoKQorICAg
IGFzc2VydCBqb2JzLmdldF9qb2JzKFsiY29uZm9ybWFuY2UtY2hlY2tlcnMvdGVzdC5odG1sIl0s
CisgICAgICAgICAgICAgICAgICAgICAgICAgaW5jbHVkZXM9WyJhZmZlY3RlZF90ZXN0cyJdKSA9
PSBzZXQoKQorICAgIGFzc2VydCBqb2JzLmdldF9qb2JzKFsiZG9tL1JFQURNRS5tZCJdLAorICAg
ICAgICAgICAgICAgICAgICAgICAgIGluY2x1ZGVzPVsiYWZmZWN0ZWRfdGVzdHMiXSkgPT0gc2V0
KCkKKyAgICBhc3NlcnQgam9icy5nZXRfam9icyhbImNzcy9idWlsZC1jc3MtdGVzdHN1aXRlLnNo
Il0sCisgICAgICAgICAgICAgICAgICAgICAgICAgaW5jbHVkZXM9WyJhZmZlY3RlZF90ZXN0cyJd
KSA9PSBzZXQoKQorICAgIGFzc2VydCBqb2JzLmdldF9qb2JzKFsiY3NzL0NTUzIxL3Rlc3QtMDAx
Lmh0bWwiXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICBpbmNsdWRlcz1bImFmZmVjdGVkX3Rl
c3RzIl0pID09IHsiYWZmZWN0ZWRfdGVzdHMifQorICAgIGFzc2VydCBqb2JzLmdldF9qb2JzKFsi
Y3NzL2J1aWxkLWNzcy10ZXN0c3VpdGUuc2giLAorICAgICAgICAgICAgICAgICAgICAgICAgICAi
Y3NzL0NTUzIxL3Rlc3QtMDAxLmh0bWwiXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICBpbmNs
dWRlcz1bImFmZmVjdGVkX3Rlc3RzIl0pID09IHsiYWZmZWN0ZWRfdGVzdHMifQorICAgIGFzc2Vy
dCBqb2JzLmdldF9qb2JzKFsicmVzb3VyY2VzL2lkbGhhcm5lc3MuanMiXSwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICBpbmNsdWRlcz1bImFmZmVjdGVkX3Rlc3RzIl0pID09IHsiYWZmZWN0ZWRf
dGVzdHMifQogCiBkZWYgdGVzdF90b29sc191bml0dGVzdCgpOgogICAgIGFzc2VydCBqb2JzLmdl
dF9qb2JzKFsidG9vbHMvY2kvdGVzdC90ZXN0X2pvYnMucHkiXSwKLSAgICAgICAgICAgICAgICAg
ICAgICAgICBpbmNsdWRlcz1bInRvb2xzX3VuaXR0ZXN0Il0pID09IHNldChbInRvb2xzX3VuaXR0
ZXN0Il0pCisgICAgICAgICAgICAgICAgICAgICAgICAgaW5jbHVkZXM9WyJ0b29sc191bml0dGVz
dCJdKSA9PSB7InRvb2xzX3VuaXR0ZXN0In0KICAgICBhc3NlcnQgam9icy5nZXRfam9icyhbImRv
bS90b29scy9leGFtcGxlLnB5Il0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgaW5jbHVkZXM9
WyJ0b29sc191bml0dGVzdCJdKSA9PSBzZXQoKQogICAgIGFzc2VydCBqb2JzLmdldF9qb2JzKFsi
ZG9tL2hpc3RvcmljYWwuaHRtbCJdLApAQCAtNTQsMzcgKzk5LDM4IEBAIGRlZiB0ZXN0X3Rvb2xz
X3VuaXR0ZXN0KCk6CiAKIGRlZiB0ZXN0X3dwdHJ1bm5lcl91bml0dGVzdCgpOgogICAgIGFzc2Vy
dCBqb2JzLmdldF9qb2JzKFsidG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci93cHRydW5uZXIucHki
XSwKLSAgICAgICAgICAgICAgICAgICAgICAgICBpbmNsdWRlcz1bIndwdHJ1bm5lcl91bml0dGVz
dCJdKSA9PSBzZXQoWyJ3cHRydW5uZXJfdW5pdHRlc3QiXSkKKyAgICAgICAgICAgICAgICAgICAg
ICAgICBpbmNsdWRlcz1bIndwdHJ1bm5lcl91bml0dGVzdCJdKSA9PSB7IndwdHJ1bm5lcl91bml0
dGVzdCJ9CiAgICAgYXNzZXJ0IGpvYnMuZ2V0X2pvYnMoWyJ0b29scy9leGFtcGxlLnB5Il0sCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgaW5jbHVkZXM9WyJ3cHRydW5uZXJfdW5pdHRlc3QiXSkg
PT0gc2V0KCkKKyAgICAgICAgICAgICAgICAgICAgICAgICBpbmNsdWRlcz1bIndwdHJ1bm5lcl91
bml0dGVzdCJdKSA9PSB7IndwdHJ1bm5lcl91bml0dGVzdCJ9CiAKIAogZGVmIHRlc3RfYnVpbGRf
Y3NzKCk6CiAgICAgYXNzZXJ0IGpvYnMuZ2V0X2pvYnMoWyJjc3MvY3NzLWJ1aWxkLXRlc3RzdWl0
ZXMuc2giXSwKLSAgICAgICAgICAgICAgICAgICAgICAgICBpbmNsdWRlcz1bImJ1aWxkX2NzcyJd
KSA9PSBzZXQoWyJidWlsZF9jc3MiXSkKKyAgICAgICAgICAgICAgICAgICAgICAgICBpbmNsdWRl
cz1bImJ1aWxkX2NzcyJdKSA9PSB7ImJ1aWxkX2NzcyJ9CiAgICAgYXNzZXJ0IGpvYnMuZ2V0X2pv
YnMoWyJjc3MvQ1NTMjEvdGVzdC5odG1sIl0sCi0gICAgICAgICAgICAgICAgICAgICAgICAgaW5j
bHVkZXM9WyJidWlsZF9jc3MiXSkgPT0gc2V0KFsiYnVpbGRfY3NzIl0pCisgICAgICAgICAgICAg
ICAgICAgICAgICAgaW5jbHVkZXM9WyJidWlsZF9jc3MiXSkgPT0geyJidWlsZF9jc3MifQogICAg
IGFzc2VydCBqb2JzLmdldF9qb2JzKFsiaHRtbC9jc3MvQ1NTMjEvdGVzdC5odG1sIl0sCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgaW5jbHVkZXM9WyJidWlsZF9jc3MiXSkgPT0gc2V0KCkKIAog
CiBkZWYgdGVzdF91cGRhdGVfYnVpbHQoKToKICAgICBhc3NlcnQgam9icy5nZXRfam9icyhbIjJk
Y29udGV4dC9mb28uaHRtbCJdLAotICAgICAgICAgICAgICAgICAgICAgICAgIGluY2x1ZGVzPVsi
dXBkYXRlX2J1aWx0Il0pID09IHNldChbInVwZGF0ZV9idWlsdCJdKQorICAgICAgICAgICAgICAg
ICAgICAgICAgIGluY2x1ZGVzPVsidXBkYXRlX2J1aWx0Il0pID09IHsidXBkYXRlX2J1aWx0In0K
ICAgICBhc3NlcnQgam9icy5nZXRfam9icyhbImh0bWwvZm9vLmh0bWwiXSwKLSAgICAgICAgICAg
ICAgICAgICAgICAgICBpbmNsdWRlcz1bInVwZGF0ZV9idWlsdCJdKSA9PSBzZXQoWyJ1cGRhdGVf
YnVpbHQiXSkKKyAgICAgICAgICAgICAgICAgICAgICAgICBpbmNsdWRlcz1bInVwZGF0ZV9idWls
dCJdKSA9PSB7InVwZGF0ZV9idWlsdCJ9CiAgICAgYXNzZXJ0IGpvYnMuZ2V0X2pvYnMoWyJvZmZz
Y3JlZW4tY2FudmFzL2Zvby5odG1sIl0sCi0gICAgICAgICAgICAgICAgICAgICAgICAgaW5jbHVk
ZXM9WyJ1cGRhdGVfYnVpbHQiXSkgPT0gc2V0KFsidXBkYXRlX2J1aWx0Il0pCisgICAgICAgICAg
ICAgICAgICAgICAgICAgaW5jbHVkZXM9WyJ1cGRhdGVfYnVpbHQiXSkgPT0geyJ1cGRhdGVfYnVp
bHQifQogCiAKIGRlZiB0ZXN0X3dwdF9pbnRlZ3JhdGlvbigpOgogICAgIGFzc2VydCBqb2JzLmdl
dF9qb2JzKFsidG9vbHMvd3B0L3dwdC5weSJdLAotICAgICAgICAgICAgICAgICAgICAgICAgIGlu
Y2x1ZGVzPVsid3B0X2ludGVncmF0aW9uIl0pID09IHNldChbIndwdF9pbnRlZ3JhdGlvbiJdKQor
ICAgICAgICAgICAgICAgICAgICAgICAgIGluY2x1ZGVzPVsid3B0X2ludGVncmF0aW9uIl0pID09
IHsid3B0X2ludGVncmF0aW9uIn0KICAgICBhc3NlcnQgam9icy5nZXRfam9icyhbInRvb2xzL3dw
dHJ1bm5lci93cHRydW5uZXIvd3B0cnVubmVyLnB5Il0sCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgaW5jbHVkZXM9WyJ3cHRfaW50ZWdyYXRpb24iXSkgPT0gc2V0KFsid3B0X2ludGVncmF0aW9u
Il0pCisgICAgICAgICAgICAgICAgICAgICAgICAgaW5jbHVkZXM9WyJ3cHRfaW50ZWdyYXRpb24i
XSkgPT0geyJ3cHRfaW50ZWdyYXRpb24ifQorCiAKIGRlZiB0ZXN0X3dwdF9pbmZyYXN0cnVjdHVy
ZSgpOgogICAgIGFzc2VydCBqb2JzLmdldF9qb2JzKFsidG9vbHMvaGFtbWVyLmh0bWwiXSwKLSAg
ICAgICAgICAgICAgICAgICAgICAgICBpbmNsdWRlcz1bIndwdHJ1bm5lcl9pbmZyYXN0cnVjdHVy
ZSJdKSA9PSBzZXQoWyJ3cHRydW5uZXJfaW5mcmFzdHJ1Y3R1cmUiXSkKKyAgICAgICAgICAgICAg
ICAgICAgICAgICBpbmNsdWRlcz1bIndwdHJ1bm5lcl9pbmZyYXN0cnVjdHVyZSJdKSA9PSB7Indw
dHJ1bm5lcl9pbmZyYXN0cnVjdHVyZSJ9CiAgICAgYXNzZXJ0IGpvYnMuZ2V0X2pvYnMoWyJpbmZy
YXN0cnVjdHVyZS9hc3N1bXB0aW9ucy9haGVtLmh0bWwiXSwKLSAgICAgICAgICAgICAgICAgICAg
ICAgICBpbmNsdWRlcz1bIndwdHJ1bm5lcl9pbmZyYXN0cnVjdHVyZSJdKSA9PSBzZXQoWyJ3cHRy
dW5uZXJfaW5mcmFzdHJ1Y3R1cmUiXSkKKyAgICAgICAgICAgICAgICAgICAgICAgICBpbmNsdWRl
cz1bIndwdHJ1bm5lcl9pbmZyYXN0cnVjdHVyZSJdKSA9PSB7IndwdHJ1bm5lcl9pbmZyYXN0cnVj
dHVyZSJ9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL2NpL3Rlc3RzL3Rlc3RfcHJfcHJldmlldy5weSBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvY2kvdGVzdHMvdGVzdF9wcl9wcmV2
aWV3LnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi42MzQ4MmZiMTg0
YwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvY2kvdGVzdHMvdGVzdF9wcl9wcmV2aWV3LnB5CkBAIC0wLDAgKzEsNzIw
IEBACit0cnk6CisgICAgZnJvbSBCYXNlSFRUUFNlcnZlciBpbXBvcnQgQmFzZUhUVFBSZXF1ZXN0
SGFuZGxlciwgSFRUUFNlcnZlcgorZXhjZXB0IEltcG9ydEVycm9yOgorICAgICMgUHl0aG9uIDMg
Y2FzZQorICAgIGZyb20gaHR0cC5zZXJ2ZXIgaW1wb3J0IEJhc2VIVFRQUmVxdWVzdEhhbmRsZXIs
IEhUVFBTZXJ2ZXIKK2ltcG9ydCBjb250ZXh0bGliCitpbXBvcnQgZXJybm8KK2ltcG9ydCBqc29u
CitpbXBvcnQgb3MKK2ltcG9ydCBzaHV0aWwKK2ltcG9ydCBzdGF0CitpbXBvcnQgc3VicHJvY2Vz
cworaW1wb3J0IHRlbXBmaWxlCitpbXBvcnQgdGhyZWFkaW5nCisKK3N1YmplY3QgPSBvcy5wYXRo
LmpvaW4oCisgICAgb3MucGF0aC5kaXJuYW1lKG9zLnBhdGguYWJzcGF0aChfX2ZpbGVfXykpLCAn
Li4nLCAncHJfcHJldmlldy5weScKKykKK3Rlc3RfaG9zdCA9ICdsb2NhbGhvc3QnCisKKworZGVm
IHNhbWVfbWVtYmVycyhhLCBiKToKKyAgICBpZiBsZW4oYSkgIT0gbGVuKGIpOgorICAgICAgICBy
ZXR1cm4gRmFsc2UKKyAgICBhX2NvcHkgPSBsaXN0KGEpCisgICAgZm9yIGVsZW0gaW4gYjoKKyAg
ICAgICAgdHJ5OgorICAgICAgICAgICAgYV9jb3B5LnJlbW92ZShlbGVtKQorICAgICAgICBleGNl
cHQgVmFsdWVFcnJvcjoKKyAgICAgICAgICAgIHJldHVybiBGYWxzZQorCisgICAgcmV0dXJuIGxl
bihhX2NvcHkpID09IDAKKworCisjIFdoZW4gdGhlc2UgdGVzdHMgYXJlIGV4ZWN1dGVkIGluIFdp
bmRvd3MsIGZpbGVzIGluIHRoZSB0ZW1wb3JhcnkgZ2l0CisjIHJlcG9zaXRvcmllcyBtYXkgYmUg
bWFya2VkIGFzICJyZWFkIG9ubHkiIGF0IHRoZSBtb21lbnQgdGhleSBhcmUgaW50ZW5kZWQgdG8K
KyMgYmUgZGVsZXRlZC4gVGhlIGZvbGxvd2luZyBoYW5kbGVyIGZvciBgc2h1dGlsLnJtdHJlZWAg
YWNjb3VudHMgZm9yIHRoaXMgYnkKKyMgbWFraW5nIHRoZSBmaWxlcyB3cml0YWJsZSBhbmQgYXR0
ZW1wdGluZyB0byBkZWxldGUgdGhlbSBhIHNlY29uZCB0aW1lLgorIworIyBTb3VyY2U6CisjIGh0
dHBzOi8vc3RhY2tvdmVyZmxvdy5jb20vcXVlc3Rpb25zLzEyMTM3MDYvd2hhdC11c2VyLWRvLXB5
dGhvbi1zY3JpcHRzLXJ1bi1hcy1pbi13aW5kb3dzCitkZWYgaGFuZGxlX3JlbW92ZV9yZWFkb25s
eShmdW5jLCBwYXRoLCBleGMpOgorICAgIGV4Y3ZhbHVlID0gZXhjWzFdCisgICAgY2FuZGlkYXRl
cyA9IChvcy5ybWRpciwgb3MucmVtb3ZlLCBvcy51bmxpbmspCisgICAgaWYgZnVuYyBpbiBjYW5k
aWRhdGVzIGFuZCBleGN2YWx1ZS5lcnJubyA9PSBlcnJuby5FQUNDRVM6CisgICAgICAgIG9zLmNo
bW9kKHBhdGgsIHN0YXQuU19JUldYVSB8IHN0YXQuU19JUldYRyB8IHN0YXQuU19JUldYTykgICMg
MDc3NworICAgICAgICBmdW5jKHBhdGgpCisgICAgZWxzZToKKyAgICAgICAgcmFpc2UKKworCitj
bGFzcyBNb2NrSGFuZGxlcihCYXNlSFRUUFJlcXVlc3RIYW5kbGVyLCBvYmplY3QpOgorICAgIGRl
ZiBkb19hbGwoc2VsZik6CisgICAgICAgIHBhdGggPSBzZWxmLnBhdGguc3BsaXQoJz8nKVswXQor
ICAgICAgICByZXF1ZXN0X2JvZHkgPSBOb25lCisKKyAgICAgICAgaWYgJ0NvbnRlbnQtTGVuZ3Ro
JyBpbiBzZWxmLmhlYWRlcnM6CisgICAgICAgICAgICByZXF1ZXN0X2JvZHkgPSBzZWxmLnJmaWxl
LnJlYWQoCisgICAgICAgICAgICAgICAgaW50KHNlbGYuaGVhZGVyc1snQ29udGVudC1MZW5ndGgn
XSkKKyAgICAgICAgICAgICkuZGVjb2RlKCd1dGYtOCcpCisKKyAgICAgICAgICAgIGlmIHNlbGYu
aGVhZGVycy5nZXQoJ0NvbnRlbnQtVHlwZScpID09ICdhcHBsaWNhdGlvbi9qc29uJzoKKyAgICAg
ICAgICAgICAgICByZXF1ZXN0X2JvZHkgPSBqc29uLmxvYWRzKHJlcXVlc3RfYm9keSkKKworICAg
ICAgICBmb3IgcmVxdWVzdCwgcmVzcG9uc2UgaW4gc2VsZi5zZXJ2ZXIuZXhwZWN0ZWRfdHJhZmZp
YzoKKyAgICAgICAgICAgIGlmIHJlcXVlc3RbMF0gIT0gc2VsZi5jb21tYW5kOgorICAgICAgICAg
ICAgICAgIGNvbnRpbnVlCisgICAgICAgICAgICBpZiByZXF1ZXN0WzFdICE9IHBhdGg6CisgICAg
ICAgICAgICAgICAgY29udGludWUKKyAgICAgICAgICAgIGJvZHlfbWF0Y2hlcyA9IFRydWUKKyAg
ICAgICAgICAgIGZvciBrZXkgaW4gcmVxdWVzdFsyXToKKyAgICAgICAgICAgICAgICBib2R5X21h
dGNoZXMgJj0gcmVxdWVzdFsyXVtrZXldID09IHJlcXVlc3RfYm9keS5nZXQoa2V5KQorICAgICAg
ICAgICAgaWYgbm90IGJvZHlfbWF0Y2hlczoKKyAgICAgICAgICAgICAgICBjb250aW51ZQorICAg
ICAgICAgICAgYnJlYWsKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHJlcXVlc3QgPSAoc2Vs
Zi5jb21tYW5kLCBwYXRoLCByZXF1ZXN0X2JvZHkpCisgICAgICAgICAgICByZXNwb25zZSA9ICg0
MDAsIHt9KQorCisgICAgICAgIHNlbGYuc2VydmVyLmFjdHVhbF90cmFmZmljLmFwcGVuZCgocmVx
dWVzdCwgcmVzcG9uc2UpKQorICAgICAgICBzZWxmLnNlbmRfcmVzcG9uc2UocmVzcG9uc2VbMF0p
CisgICAgICAgIHNlbGYuZW5kX2hlYWRlcnMoKQorICAgICAgICBzZWxmLndmaWxlLndyaXRlKGpz
b24uZHVtcHMocmVzcG9uc2VbMV0pLmVuY29kZSgndXRmLTgnKSkKKworICAgIGRlZiBkb19ERUxF
VEUoc2VsZik6CisgICAgICAgIHJldHVybiBzZWxmLmRvX2FsbCgpCisKKyAgICBkZWYgZG9fR0VU
KHNlbGYpOgorICAgICAgICByZXR1cm4gc2VsZi5kb19hbGwoKQorCisgICAgZGVmIGRvX1BBVENI
KHNlbGYpOgorICAgICAgICByZXR1cm4gc2VsZi5kb19hbGwoKQorCisgICAgZGVmIGRvX1BPU1Qo
c2VsZik6CisgICAgICAgIHJldHVybiBzZWxmLmRvX2FsbCgpCisKKworY2xhc3MgTW9ja1NlcnZl
cihIVFRQU2VydmVyLCBvYmplY3QpOgorICAgICcnJ0hUVFAgc2VydmVyIHRoYXQgcmVzcG9uZHMg
dG8gYWxsIHJlcXVlc3RzIHdpdGggc3RhdHVzIGNvZGUgMjAwIGFuZCBib2R5CisgICAgJ3t9JyB1
bmxlc3MgYW4gYWx0ZXJuYXRpdmUgc3RhdHVzIGNvZGUgYW5kIGJvZHkgYXJlIHNwZWNpZmllZCBm
b3IgdGhlIGdpdmVuCisgICAgbWV0aG9kIGFuZCBwYXRoIGluIHRoZSBgcmVzcG9uc2VzYCBwYXJh
bWV0ZXIuJycnCisgICAgZGVmIF9faW5pdF9fKHNlbGYsIGFkZHJlc3MsIGV4cGVjdGVkX3RyYWZm
aWMpOgorICAgICAgICBzdXBlcihNb2NrU2VydmVyLCBzZWxmKS5fX2luaXRfXyhhZGRyZXNzLCBN
b2NrSGFuZGxlcikKKyAgICAgICAgc2VsZi5leHBlY3RlZF90cmFmZmljID0gZXhwZWN0ZWRfdHJh
ZmZpYworICAgICAgICBzZWxmLmFjdHVhbF90cmFmZmljID0gW10KKworICAgIGRlZiBfX2VudGVy
X18oc2VsZik6CisgICAgICAgIHRocmVhZGluZy5UaHJlYWQodGFyZ2V0PWxhbWJkYTogc2VsZi5z
ZXJ2ZV9mb3JldmVyKCkpLnN0YXJ0KCkKKyAgICAgICAgcmV0dXJuIHNlbGYKKworICAgIGRlZiBf
X2V4aXRfXyhzZWxmLCAqYXJncyk6CisgICAgICAgIHNlbGYuc2h1dGRvd24oKQorCisKK2NsYXNz
IFJlcXVlc3RzKG9iamVjdCk6CisgICAgZ2V0X3JhdGUgPSAoJ0dFVCcsICcvcmF0ZV9saW1pdCcs
IHt9KQorICAgIHNlYXJjaCA9ICgnR0VUJywgJy9zZWFyY2gvaXNzdWVzJywge30pCisgICAgcmVm
X2NyZWF0ZV9vcGVuID0gKAorICAgICAgICAnUE9TVCcsICcvcmVwb3MvdGVzdC1vcmcvdGVzdC1y
ZXBvL2dpdC9yZWZzJywgeydyZWYnOidyZWZzL3Bycy1vcGVuLzIzJ30KKyAgICApCisgICAgcmVm
X2NyZWF0ZV90cnVzdGVkID0gKAorICAgICAgICAnUE9TVCcsCisgICAgICAgICcvcmVwb3MvdGVz
dC1vcmcvdGVzdC1yZXBvL2dpdC9yZWZzJywKKyAgICAgICAgeydyZWYnOidyZWZzL3Bycy10cnVz
dGVkLWZvci1wcmV2aWV3LzIzJ30KKyAgICApCisgICAgcmVmX3VwZGF0ZV9vcGVuID0gKAorICAg
ICAgICAnUEFUQ0gnLCAnL3JlcG9zL3Rlc3Qtb3JnL3Rlc3QtcmVwby9naXQvcmVmcy9wcnMtb3Bl
bi8yMycsIHt9CisgICAgKQorICAgIHJlZl91cGRhdGVfdHJ1c3RlZCA9ICgKKyAgICAgICAgJ1BB
VENIJywgJy9yZXBvcy90ZXN0LW9yZy90ZXN0LXJlcG8vZ2l0L3JlZnMvcHJzLXRydXN0ZWQtZm9y
LXByZXZpZXcvMjMnLCB7fQorICAgICkKKyAgICBkZXBsb3ltZW50X2dldCA9ICgnR0VUJywgJy9y
ZXBvcy90ZXN0LW9yZy90ZXN0LXJlcG8vZGVwbG95bWVudHMnLCB7fSkKKyAgICBkZXBsb3ltZW50
X2NyZWF0ZSA9ICgnUE9TVCcsICcvcmVwb3MvdGVzdC1vcmcvdGVzdC1yZXBvL2RlcGxveW1lbnRz
Jywge30pCisgICAgZGVwbG95bWVudF9zdGF0dXNfY3JlYXRlX3BlbmRpbmcgPSAoCisgICAgICAg
ICdQT1NUJywKKyAgICAgICAgJy9yZXBvcy90ZXN0LW9yZy90ZXN0LXJlcG8vZGVwbG95bWVudHMv
MjQ2MDEvc3RhdHVzZXMnLAorICAgICAgICB7J3N0YXRlJzoncGVuZGluZyd9CisgICAgKQorICAg
IGRlcGxveW1lbnRfc3RhdHVzX2NyZWF0ZV9lcnJvciA9ICgKKyAgICAgICAgJ1BPU1QnLAorICAg
ICAgICAnL3JlcG9zL3Rlc3Qtb3JnL3Rlc3QtcmVwby9kZXBsb3ltZW50cy8yNDYwMS9zdGF0dXNl
cycsCisgICAgICAgIHsnc3RhdGUnOidlcnJvcid9CisgICAgKQorICAgIGRlcGxveW1lbnRfc3Rh
dHVzX2NyZWF0ZV9zdWNjZXNzID0gKAorICAgICAgICAnUE9TVCcsCisgICAgICAgICcvcmVwb3Mv
dGVzdC1vcmcvdGVzdC1yZXBvL2RlcGxveW1lbnRzLzI0NjAxL3N0YXR1c2VzJywKKyAgICAgICAg
eydzdGF0ZSc6J3N1Y2Nlc3MnfQorICAgICkKKyAgICBwcmV2aWV3ID0gKCdHRVQnLCAnLy5naXQv
d29ya3RyZWVzLzQ1L0hFQUQnLCB7fSkKKworCitjbGFzcyBSZXNwb25zZXMob2JqZWN0KToKKyAg
ICBub19saW1pdCA9ICgyMDAsIHsKKyAgICAgICAgJ3Jlc291cmNlcyc6IHsKKyAgICAgICAgICAg
ICdzZWFyY2gnOiB7CisgICAgICAgICAgICAgICAgJ3JlbWFpbmluZyc6IDEwMCwKKyAgICAgICAg
ICAgICAgICAnbGltaXQnOiAxMDAKKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICAnY29yZSc6
IHsKKyAgICAgICAgICAgICAgICAncmVtYWluaW5nJzogMTAwLAorICAgICAgICAgICAgICAgICds
aW1pdCc6IDEwMAorICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgfSkKKworCitAY29udGV4
dGxpYi5jb250ZXh0bWFuYWdlcgorZGVmIHRlbXBfcmVwbygpOgorICAgIGRpcmVjdG9yeSA9IHRl
bXBmaWxlLm1rZHRlbXAoKQorCisgICAgdHJ5OgorICAgICAgICBzdWJwcm9jZXNzLmNoZWNrX2Nh
bGwoWydnaXQnLCAnaW5pdCddLCBjd2Q9ZGlyZWN0b3J5KQorICAgICAgICBzdWJwcm9jZXNzLmNo
ZWNrX2NhbGwoCisgICAgICAgICAgICBbJ2dpdCcsICdjb25maWcnLCAndXNlci5uYW1lJywgJ2V4
YW1wbGUnXSwKKyAgICAgICAgICAgIGN3ZD1kaXJlY3RvcnkKKyAgICAgICAgKQorICAgICAgICBz
dWJwcm9jZXNzLmNoZWNrX2NhbGwoCisgICAgICAgICAgICBbJ2dpdCcsICdjb25maWcnLCAndXNl
ci5lbWFpbCcsICdleGFtcGxlQGV4YW1wbGUuY29tJ10sCisgICAgICAgICAgICBjd2Q9ZGlyZWN0
b3J5CisgICAgICAgICkKKyAgICAgICAgc3VicHJvY2Vzcy5jaGVja19jYWxsKAorICAgICAgICAg
ICAgWydnaXQnLCAnY29tbWl0JywgJy0tYWxsb3ctZW1wdHknLCAnLW0nLCAnZmlyc3QnXSwKKyAg
ICAgICAgICAgIGN3ZD1kaXJlY3RvcnkKKyAgICAgICAgKQorCisgICAgICAgIHlpZWxkIGRpcmVj
dG9yeQorICAgIGZpbmFsbHk6CisgICAgICAgIHNodXRpbC5ybXRyZWUoCisgICAgICAgICAgICBk
aXJlY3RvcnksIGlnbm9yZV9lcnJvcnM9RmFsc2UsIG9uZXJyb3I9aGFuZGxlX3JlbW92ZV9yZWFk
b25seQorICAgICAgICApCisKK2RlZiBzeW5jaHJvbml6ZShleHBlY3RlZF90cmFmZmljLCByZWZz
PXt9KToKKyAgICBlbnYgPSB7CisgICAgICAgICdERVBMT1lfVE9LRU4nOiAnYzBmZmVlJworICAg
IH0KKyAgICBlbnYudXBkYXRlKG9zLmVudmlyb24pCisgICAgc2VydmVyID0gTW9ja1NlcnZlcigo
dGVzdF9ob3N0LCAwKSwgZXhwZWN0ZWRfdHJhZmZpYykKKyAgICB0ZXN0X3BvcnQgPSBzZXJ2ZXIu
c2VydmVyX2FkZHJlc3NbMV0KKyAgICByZW1vdGVfcmVmcyA9IHt9CisKKyAgICB3aXRoIHRlbXBf
cmVwbygpIGFzIGxvY2FsX3JlcG8sIHRlbXBfcmVwbygpIGFzIHJlbW90ZV9yZXBvLCBzZXJ2ZXI6
CisgICAgICAgIHN1YnByb2Nlc3MuY2hlY2tfY2FsbCgKKyAgICAgICAgICAgIFsnZ2l0JywgJ2Nv
bW1pdCcsICctLWFsbG93LWVtcHR5JywgJy1tJywgJ2ZpcnN0J10sCisgICAgICAgICAgICBjd2Q9
cmVtb3RlX3JlcG8KKyAgICAgICAgKQorICAgICAgICBzdWJwcm9jZXNzLmNoZWNrX2NhbGwoCisg
ICAgICAgICAgICBbJ2dpdCcsICdjb21taXQnLCAnLS1hbGxvdy1lbXB0eScsICctbScsICdzZWNv
bmQnXSwKKyAgICAgICAgICAgIGN3ZD1yZW1vdGVfcmVwbworICAgICAgICApCisgICAgICAgIHN1
YnByb2Nlc3MuY2hlY2tfY2FsbCgKKyAgICAgICAgICAgIFsnZ2l0JywgJ3JlbW90ZScsICdhZGQn
LCAnb3JpZ2luJywgcmVtb3RlX3JlcG9dLCBjd2Q9bG9jYWxfcmVwbworICAgICAgICApCisKKyAg
ICAgICAgZm9yIG5hbWUsIHZhbHVlIGluIHJlZnMuaXRlbXMoKToKKyAgICAgICAgICAgIHN1YnBy
b2Nlc3MuY2hlY2tfY2FsbCgKKyAgICAgICAgICAgICAgICBbJ2dpdCcsICd1cGRhdGUtcmVmJywg
bmFtZSwgdmFsdWVdLAorICAgICAgICAgICAgICAgIGN3ZD1yZW1vdGVfcmVwbworICAgICAgICAg
ICAgKQorCisgICAgICAgIGNoaWxkID0gc3VicHJvY2Vzcy5Qb3BlbigKKyAgICAgICAgICAgIFsK
KyAgICAgICAgICAgICAgICAncHl0aG9uJywKKyAgICAgICAgICAgICAgICBzdWJqZWN0LAorICAg
ICAgICAgICAgICAgICctLWhvc3QnLAorICAgICAgICAgICAgICAgICdodHRwOi8ve306e30nLmZv
cm1hdCh0ZXN0X2hvc3QsIHRlc3RfcG9ydCksCisgICAgICAgICAgICAgICAgJy0tZ2l0aHViLXBy
b2plY3QnLAorICAgICAgICAgICAgICAgICd0ZXN0LW9yZy90ZXN0LXJlcG8nLAorICAgICAgICAg
ICAgICAgICdzeW5jaHJvbml6ZScsCisgICAgICAgICAgICAgICAgJy0td2luZG93JywKKyAgICAg
ICAgICAgICAgICAnMzAwMCcKKyAgICAgICAgICAgIF0sCisgICAgICAgICAgICBjd2Q9bG9jYWxf
cmVwbywKKyAgICAgICAgICAgIGVudj1lbnYKKyAgICAgICAgKQorCisgICAgICAgIGNoaWxkLmNv
bW11bmljYXRlKCkKKyAgICAgICAgbGluZXMgPSBzdWJwcm9jZXNzLmNoZWNrX291dHB1dCgKKyAg
ICAgICAgICAgIFsnZ2l0JywgJ2xzLXJlbW90ZScsICdvcmlnaW4nXSwgY3dkPWxvY2FsX3JlcG8K
KyAgICAgICAgKQorICAgICAgICBmb3IgbGluZSBpbiBsaW5lcy5kZWNvZGUoJ3V0Zi04Jykuc3Ry
aXAoKS5zcGxpdCgnXG4nKToKKyAgICAgICAgICAgIHJldmlzaW9uLCByZWYgPSBsaW5lLnNwbGl0
KCkKKworICAgICAgICAgICAgaWYgbm90IHJlZiBvciByZWYgaW4gKCdIRUFEJywgJ3JlZnMvaGVh
ZHMvbWFzdGVyJyk6CisgICAgICAgICAgICAgICAgY29udGludWUKKworICAgICAgICAgICAgcmVt
b3RlX3JlZnNbcmVmXSA9IHJldmlzaW9uCisKKyAgICByZXR1cm4gY2hpbGQucmV0dXJuY29kZSwg
c2VydmVyLmFjdHVhbF90cmFmZmljLCByZW1vdGVfcmVmcworCisKK2RlZiBkZXRlY3QoZXZlbnQs
IGV4cGVjdGVkX2dpdGh1Yl90cmFmZmljLCBleHBlY3RlZF9wcmV2aWV3X3RyYWZmaWMpOgorICAg
IGVudiA9IHsKKyAgICAgICAgJ0RFUExPWV9UT0tFTic6ICdjMGZmZWUnCisgICAgfQorICAgIGVu
di51cGRhdGUob3MuZW52aXJvbikKKyAgICBnaXRodWJfc2VydmVyID0gTW9ja1NlcnZlcigodGVz
dF9ob3N0LCAwKSwgZXhwZWN0ZWRfZ2l0aHViX3RyYWZmaWMpCisgICAgZ2l0aHViX3BvcnQgPSBn
aXRodWJfc2VydmVyLnNlcnZlcl9hZGRyZXNzWzFdCisgICAgcHJldmlld19zZXJ2ZXIgPSBNb2Nr
U2VydmVyKCh0ZXN0X2hvc3QsIDApLCBleHBlY3RlZF9wcmV2aWV3X3RyYWZmaWMpCisgICAgcHJl
dmlld19wb3J0ID0gcHJldmlld19zZXJ2ZXIuc2VydmVyX2FkZHJlc3NbMV0KKworICAgIHdpdGgg
dGVtcF9yZXBvKCkgYXMgcmVwbywgZ2l0aHViX3NlcnZlciwgcHJldmlld19zZXJ2ZXI6CisgICAg
ICAgIGVudlsnR0lUSFVCX0VWRU5UX1BBVEgnXSA9IHJlcG8gKyAnL2V2ZW50Lmpzb24nCisKKyAg
ICAgICAgd2l0aCBvcGVuKGVudlsnR0lUSFVCX0VWRU5UX1BBVEgnXSwgJ3cnKSBhcyBoYW5kbGU6
CisgICAgICAgICAgICBoYW5kbGUud3JpdGUoanNvbi5kdW1wcyhldmVudCkpCisKKyAgICAgICAg
Y2hpbGQgPSBzdWJwcm9jZXNzLlBvcGVuKAorICAgICAgICAgICAgWworICAgICAgICAgICAgICAg
ICdweXRob24nLAorICAgICAgICAgICAgICAgIHN1YmplY3QsCisgICAgICAgICAgICAgICAgJy0t
aG9zdCcsCisgICAgICAgICAgICAgICAgJ2h0dHA6Ly97fTp7fScuZm9ybWF0KHRlc3RfaG9zdCwg
Z2l0aHViX3BvcnQpLAorICAgICAgICAgICAgICAgICctLWdpdGh1Yi1wcm9qZWN0JywKKyAgICAg
ICAgICAgICAgICAndGVzdC1vcmcvdGVzdC1yZXBvJywKKyAgICAgICAgICAgICAgICAnZGV0ZWN0
JywKKyAgICAgICAgICAgICAgICAnLS10YXJnZXQnLAorICAgICAgICAgICAgICAgICdodHRwOi8v
e306e30nLmZvcm1hdCh0ZXN0X2hvc3QsIHByZXZpZXdfcG9ydCksCisgICAgICAgICAgICAgICAg
Jy0tdGltZW91dCcsCisgICAgICAgICAgICAgICAgJzEnCisgICAgICAgICAgICBdLAorICAgICAg
ICAgICAgY3dkPXJlcG8sCisgICAgICAgICAgICBlbnY9ZW52CisgICAgICAgICkKKyAgICAgICAg
Y2hpbGQuY29tbXVuaWNhdGUoKQorCisgICAgcmV0dXJuICgKKyAgICAgICAgY2hpbGQucmV0dXJu
Y29kZSwKKyAgICAgICAgZ2l0aHViX3NlcnZlci5hY3R1YWxfdHJhZmZpYywKKyAgICAgICAgcHJl
dmlld19zZXJ2ZXIuYWN0dWFsX3RyYWZmaWMKKyAgICApCisKKworZGVmIHRlc3Rfc3luY2hyb25p
emVfemVyb19yZXN1bHRzKCk6CisgICAgZXhwZWN0ZWRfdHJhZmZpYyA9IFsKKyAgICAgICAgKFJl
cXVlc3RzLmdldF9yYXRlLCBSZXNwb25zZXMubm9fbGltaXQpLAorICAgICAgICAoUmVxdWVzdHMu
c2VhcmNoLCAoCisgICAgICAgICAgICAyMDAsCisgICAgICAgICAgICB7CisgICAgICAgICAgICAg
ICAgJ2l0ZW1zJzogW10sCisgICAgICAgICAgICAgICAgJ2luY29tcGxldGVfcmVzdWx0cyc6IEZh
bHNlCisgICAgICAgICAgICB9CisgICAgICAgICkpCisgICAgXQorCisgICAgcmV0dXJuY29kZSwg
YWN0dWFsX3RyYWZmaWMsIHJlbW90ZV9yZWZzID0gc3luY2hyb25pemUoZXhwZWN0ZWRfdHJhZmZp
YykKKworICAgIGFzc2VydCByZXR1cm5jb2RlID09IDAKKyAgICBhc3NlcnQgc2FtZV9tZW1iZXJz
KGV4cGVjdGVkX3RyYWZmaWMsIGFjdHVhbF90cmFmZmljKQorCitkZWYgdGVzdF9zeW5jaHJvbml6
ZV9mYWlsX3NlYXJjaF90aHJvdHRsZWQoKToKKyAgICBleHBlY3RlZF90cmFmZmljID0gWworICAg
ICAgICAoUmVxdWVzdHMuZ2V0X3JhdGUsICgKKyAgICAgICAgICAgIDIwMCwKKyAgICAgICAgICAg
IHsKKyAgICAgICAgICAgICAgICAncmVzb3VyY2VzJzogeworICAgICAgICAgICAgICAgICAgICAn
c2VhcmNoJzogeworICAgICAgICAgICAgICAgICAgICAgICAgJ3JlbWFpbmluZyc6IDEsCisgICAg
ICAgICAgICAgICAgICAgICAgICAnbGltaXQnOiAxMAorICAgICAgICAgICAgICAgICAgICB9Cisg
ICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICApKQorICAgIF0KKworICAg
IHJldHVybmNvZGUsIGFjdHVhbF90cmFmZmljLCByZW1vdGVfcmVmcyA9IHN5bmNocm9uaXplKGV4
cGVjdGVkX3RyYWZmaWMpCisKKyAgICBhc3NlcnQgcmV0dXJuY29kZSAhPSAwCisgICAgYXNzZXJ0
IHNhbWVfbWVtYmVycyhleHBlY3RlZF90cmFmZmljLCBhY3R1YWxfdHJhZmZpYykKKworZGVmIHRl
c3Rfc3luY2hyb25pemVfZmFpbF9pbmNvbXBsZXRlX3Jlc3VsdHMoKToKKyAgICBleHBlY3RlZF90
cmFmZmljID0gWworICAgICAgICAoUmVxdWVzdHMuZ2V0X3JhdGUsIFJlc3BvbnNlcy5ub19saW1p
dCksCisgICAgICAgIChSZXF1ZXN0cy5zZWFyY2gsICgKKyAgICAgICAgICAgIDIwMCwKKyAgICAg
ICAgICAgIHsKKyAgICAgICAgICAgICAgICAnaXRlbXMnOiBbXSwKKyAgICAgICAgICAgICAgICAn
aW5jb21wbGV0ZV9yZXN1bHRzJzogVHJ1ZQorICAgICAgICAgICAgfQorICAgICAgICApKQorICAg
IF0KKworICAgIHJldHVybmNvZGUsIGFjdHVhbF90cmFmZmljLCByZW1vdmVfcmVmcyA9IHN5bmNo
cm9uaXplKGV4cGVjdGVkX3RyYWZmaWMpCisKKyAgICBhc3NlcnQgcmV0dXJuY29kZSAhPSAwCisg
ICAgYXNzZXJ0IHNhbWVfbWVtYmVycyhleHBlY3RlZF90cmFmZmljLCBhY3R1YWxfdHJhZmZpYykK
KworZGVmIHRlc3Rfc3luY2hyb25pemVfaWdub3JlX2Nsb3NlZCgpOgorICAgIGV4cGVjdGVkX3Ry
YWZmaWMgPSBbCisgICAgICAgIChSZXF1ZXN0cy5nZXRfcmF0ZSwgUmVzcG9uc2VzLm5vX2xpbWl0
KSwKKyAgICAgICAgKFJlcXVlc3RzLnNlYXJjaCwgKAorICAgICAgICAgICAgMjAwLAorICAgICAg
ICAgICAgeworICAgICAgICAgICAgICAgICdpdGVtcyc6IFsKKyAgICAgICAgICAgICAgICAgICAg
eworICAgICAgICAgICAgICAgICAgICAgICAgJ251bWJlcic6IDIzLAorICAgICAgICAgICAgICAg
ICAgICAgICAgJ2xhYmVscyc6IFtdLAorICAgICAgICAgICAgICAgICAgICAgICAgJ2Nsb3NlZF9h
dCc6ICcyMDE5LTEwLTI4JywKKyAgICAgICAgICAgICAgICAgICAgICAgICd1c2VyJzogeydsb2dp
bic6ICdncmFjZSd9LAorICAgICAgICAgICAgICAgICAgICAgICAgJ2F1dGhvcl9hc3NvY2lhdGlv
bic6ICdDT0xMQUJPUkFUT1InCisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAg
ICBdLAorICAgICAgICAgICAgICAgICdpbmNvbXBsZXRlX3Jlc3VsdHMnOiBGYWxzZQorICAgICAg
ICAgICAgfQorICAgICAgICApKQorICAgIF0KKworICAgIHJldHVybmNvZGUsIGFjdHVhbF90cmFm
ZmljLCByZW1vdGVfcmVmcyA9IHN5bmNocm9uaXplKGV4cGVjdGVkX3RyYWZmaWMpCisKKyAgICBh
c3NlcnQgcmV0dXJuY29kZSA9PSAwCisgICAgYXNzZXJ0IHNhbWVfbWVtYmVycyhleHBlY3RlZF90
cmFmZmljLCBhY3R1YWxfdHJhZmZpYykKKworZGVmIHRlc3Rfc3luY2hyb25pemVfc3luY19jb2xs
YWJvcmF0b3IoKToKKyAgICBleHBlY3RlZF90cmFmZmljID0gWworICAgICAgICAoUmVxdWVzdHMu
Z2V0X3JhdGUsIFJlc3BvbnNlcy5ub19saW1pdCksCisgICAgICAgIChSZXF1ZXN0cy5nZXRfcmF0
ZSwgUmVzcG9uc2VzLm5vX2xpbWl0KSwKKyAgICAgICAgKFJlcXVlc3RzLmdldF9yYXRlLCBSZXNw
b25zZXMubm9fbGltaXQpLAorICAgICAgICAoUmVxdWVzdHMuZ2V0X3JhdGUsIFJlc3BvbnNlcy5u
b19saW1pdCksCisgICAgICAgIChSZXF1ZXN0cy5nZXRfcmF0ZSwgUmVzcG9uc2VzLm5vX2xpbWl0
KSwKKyAgICAgICAgKFJlcXVlc3RzLnNlYXJjaCwgKAorICAgICAgICAgICAgMjAwLAorICAgICAg
ICAgICAgeworICAgICAgICAgICAgICAgICdpdGVtcyc6IFsKKyAgICAgICAgICAgICAgICAgICAg
eworICAgICAgICAgICAgICAgICAgICAgICAgJ251bWJlcic6IDIzLAorICAgICAgICAgICAgICAg
ICAgICAgICAgJ2xhYmVscyc6IFtdLAorICAgICAgICAgICAgICAgICAgICAgICAgJ2Nsb3NlZF9h
dCc6IE5vbmUsCisgICAgICAgICAgICAgICAgICAgICAgICAndXNlcic6IHsnbG9naW4nOiAnZ3Jh
Y2UnfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICdhdXRob3JfYXNzb2NpYXRpb24nOiAnQ09M
TEFCT1JBVE9SJworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgXSwKKyAg
ICAgICAgICAgICAgICAnaW5jb21wbGV0ZV9yZXN1bHRzJzogRmFsc2UKKyAgICAgICAgICAgIH0K
KyAgICAgICAgKSksCisgICAgICAgIChSZXF1ZXN0cy5yZWZfY3JlYXRlX29wZW4sICgyMDAsIHt9
KSksCisgICAgICAgIChSZXF1ZXN0cy5yZWZfY3JlYXRlX3RydXN0ZWQsICgyMDAsIHt9KSksCisg
ICAgICAgIChSZXF1ZXN0cy5kZXBsb3ltZW50X2dldCwgKDIwMCwge30pKSwKKyAgICAgICAgKFJl
cXVlc3RzLmRlcGxveW1lbnRfY3JlYXRlLCAoMjAwLCB7fSkpCisgICAgXQorCisgICAgcmV0dXJu
Y29kZSwgYWN0dWFsX3RyYWZmaWMsIHJlbW90ZV9yZWZzID0gc3luY2hyb25pemUoZXhwZWN0ZWRf
dHJhZmZpYykKKworICAgIGFzc2VydCByZXR1cm5jb2RlID09IDAKKyAgICBhc3NlcnQgc2FtZV9t
ZW1iZXJzKGV4cGVjdGVkX3RyYWZmaWMsIGFjdHVhbF90cmFmZmljKQorCitkZWYgdGVzdF9zeW5j
aHJvbml6ZV9pZ25vcmVfY29sbGFib3JhdG9yX2JvdCgpOgorICAgIGV4cGVjdGVkX3RyYWZmaWMg
PSBbCisgICAgICAgIChSZXF1ZXN0cy5nZXRfcmF0ZSwgUmVzcG9uc2VzLm5vX2xpbWl0KSwKKyAg
ICAgICAgKFJlcXVlc3RzLnNlYXJjaCwgKAorICAgICAgICAgICAgMjAwLAorICAgICAgICAgICAg
eworICAgICAgICAgICAgICAgICdpdGVtcyc6IFsKKyAgICAgICAgICAgICAgICAgICAgeworICAg
ICAgICAgICAgICAgICAgICAgICAgJ251bWJlcic6IDIzLAorICAgICAgICAgICAgICAgICAgICAg
ICAgJ2xhYmVscyc6IFtdLAorICAgICAgICAgICAgICAgICAgICAgICAgJ2Nsb3NlZF9hdCc6IE5v
bmUsCisgICAgICAgICAgICAgICAgICAgICAgICAndXNlcic6IHsnbG9naW4nOiAnY2hyb21pdW0t
d3B0LWV4cG9ydC1ib3QnfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICdhdXRob3JfYXNzb2Np
YXRpb24nOiAnQ09MTEFCT1JBVE9SJworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAg
ICAgICAgXSwKKyAgICAgICAgICAgICAgICAnaW5jb21wbGV0ZV9yZXN1bHRzJzogRmFsc2UKKyAg
ICAgICAgICAgIH0KKyAgICAgICAgKSkKKyAgICBdCisKKyAgICByZXR1cm5jb2RlLCBhY3R1YWxf
dHJhZmZpYywgcmVtb3RlX3JlZnMgPSBzeW5jaHJvbml6ZShleHBlY3RlZF90cmFmZmljKQorCisg
ICAgYXNzZXJ0IHJldHVybmNvZGUgPT0gMAorICAgIGFzc2VydCBzYW1lX21lbWJlcnMoZXhwZWN0
ZWRfdHJhZmZpYywgYWN0dWFsX3RyYWZmaWMpCisKK2RlZiB0ZXN0X3N5bmNocm9uaXplX2lnbm9y
ZV91bnRydXN0ZWRfY29udHJpYnV0b3IoKToKKyAgICBleHBlY3RlZF90cmFmZmljID0gWworICAg
ICAgICAoUmVxdWVzdHMuZ2V0X3JhdGUsIFJlc3BvbnNlcy5ub19saW1pdCksCisgICAgICAgIChS
ZXF1ZXN0cy5zZWFyY2gsICgKKyAgICAgICAgICAgIDIwMCwKKyAgICAgICAgICAgIHsKKyAgICAg
ICAgICAgICAgICAnaXRlbXMnOiBbCisgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAg
ICAgICAgICAgICAgICdudW1iZXInOiAyMywKKyAgICAgICAgICAgICAgICAgICAgICAgICdsYWJl
bHMnOiBbXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICdjbG9zZWRfYXQnOiBOb25lLAorICAg
ICAgICAgICAgICAgICAgICAgICAgJ3VzZXInOiB7J2xvZ2luJzogJ2dyYWNlJ30sCisgICAgICAg
ICAgICAgICAgICAgICAgICAnYXV0aG9yX2Fzc29jaWF0aW9uJzogJ0NPTlRSSUJVVE9SJworICAg
ICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgXSwKKyAgICAgICAgICAgICAgICAn
aW5jb21wbGV0ZV9yZXN1bHRzJzogRmFsc2UKKyAgICAgICAgICAgIH0KKyAgICAgICAgKSkKKyAg
ICBdCisKKyAgICByZXR1cm5jb2RlLCBhY3R1YWxfdHJhZmZpYywgcmVtb3RlX3JlZnMgPSBzeW5j
aHJvbml6ZShleHBlY3RlZF90cmFmZmljKQorCisgICAgYXNzZXJ0IHJldHVybmNvZGUgPT0gMAor
ICAgIGFzc2VydCBzYW1lX21lbWJlcnMoZXhwZWN0ZWRfdHJhZmZpYywgYWN0dWFsX3RyYWZmaWMp
CisKK2RlZiB0ZXN0X3N5bmNocm9uaXplX3N5bmNfdHJ1c3RlZF9jb250cmlidXRvcigpOgorICAg
IGV4cGVjdGVkX3RyYWZmaWMgPSBbCisgICAgICAgIChSZXF1ZXN0cy5nZXRfcmF0ZSwgUmVzcG9u
c2VzLm5vX2xpbWl0KSwKKyAgICAgICAgKFJlcXVlc3RzLmdldF9yYXRlLCBSZXNwb25zZXMubm9f
bGltaXQpLAorICAgICAgICAoUmVxdWVzdHMuZ2V0X3JhdGUsIFJlc3BvbnNlcy5ub19saW1pdCks
CisgICAgICAgIChSZXF1ZXN0cy5nZXRfcmF0ZSwgUmVzcG9uc2VzLm5vX2xpbWl0KSwKKyAgICAg
ICAgKFJlcXVlc3RzLmdldF9yYXRlLCBSZXNwb25zZXMubm9fbGltaXQpLAorICAgICAgICAoUmVx
dWVzdHMuc2VhcmNoLCAoCisgICAgICAgICAgICAyMDAsCisgICAgICAgICAgICB7CisgICAgICAg
ICAgICAgICAgJ2l0ZW1zJzogWworICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAg
ICAgICAgICAgICAnbnVtYmVyJzogMjMsCisgICAgICAgICAgICAgICAgICAgICAgICAnbGFiZWxz
JzogW3snbmFtZSc6ICdzYWZlIGZvciBwcmV2aWV3J31dLAorICAgICAgICAgICAgICAgICAgICAg
ICAgJ2Nsb3NlZF9hdCc6IE5vbmUsCisgICAgICAgICAgICAgICAgICAgICAgICAndXNlcic6IHsn
bG9naW4nOiAnSGV4Y2xlcyd9LAorICAgICAgICAgICAgICAgICAgICAgICAgJ2F1dGhvcl9hc3Nv
Y2lhdGlvbic6ICdDT05UUklCVVRPUicKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAg
ICAgICAgIF0sCisgICAgICAgICAgICAgICAgJ2luY29tcGxldGVfcmVzdWx0cyc6IEZhbHNlCisg
ICAgICAgICAgICB9CisgICAgICAgICkpLAorICAgICAgICAoUmVxdWVzdHMucmVmX2NyZWF0ZV9v
cGVuLCAoMjAwLCB7fSkpLAorICAgICAgICAoUmVxdWVzdHMucmVmX2NyZWF0ZV90cnVzdGVkLCAo
MjAwLCB7fSkpLAorICAgICAgICAoUmVxdWVzdHMuZGVwbG95bWVudF9nZXQsICgyMDAsIFtdKSks
CisgICAgICAgIChSZXF1ZXN0cy5kZXBsb3ltZW50X2NyZWF0ZSwgKDIwMCwge30pKQorICAgIF0K
KworICAgIHJldHVybmNvZGUsIGFjdHVhbF90cmFmZmljLCByZW1vdGVfcmVmcyA9IHN5bmNocm9u
aXplKGV4cGVjdGVkX3RyYWZmaWMpCisKKyAgICBhc3NlcnQgcmV0dXJuY29kZSA9PSAwCisgICAg
YXNzZXJ0IHNhbWVfbWVtYmVycyhleHBlY3RlZF90cmFmZmljLCBhY3R1YWxfdHJhZmZpYykKKwor
ZGVmIHRlc3Rfc3luY2hyb25pemVfdXBkYXRlX2NvbGxhYm9yYXRvcigpOgorICAgIGV4cGVjdGVk
X3RyYWZmaWMgPSBbCisgICAgICAgIChSZXF1ZXN0cy5nZXRfcmF0ZSwgUmVzcG9uc2VzLm5vX2xp
bWl0KSwKKyAgICAgICAgKFJlcXVlc3RzLmdldF9yYXRlLCBSZXNwb25zZXMubm9fbGltaXQpLAor
ICAgICAgICAoUmVxdWVzdHMuZ2V0X3JhdGUsIFJlc3BvbnNlcy5ub19saW1pdCksCisgICAgICAg
IChSZXF1ZXN0cy5nZXRfcmF0ZSwgUmVzcG9uc2VzLm5vX2xpbWl0KSwKKyAgICAgICAgKFJlcXVl
c3RzLmdldF9yYXRlLCBSZXNwb25zZXMubm9fbGltaXQpLAorICAgICAgICAoUmVxdWVzdHMuc2Vh
cmNoLCAoMjAwLAorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICdpdGVtcyc6IFsKKyAg
ICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgJ251bWJlcic6IDIz
LAorICAgICAgICAgICAgICAgICAgICAgICAgJ2xhYmVscyc6IFtdLAorICAgICAgICAgICAgICAg
ICAgICAgICAgJ2Nsb3NlZF9hdCc6IE5vbmUsCisgICAgICAgICAgICAgICAgICAgICAgICAndXNl
cic6IHsnbG9naW4nOiAnZ3JhY2UnfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICdhdXRob3Jf
YXNzb2NpYXRpb24nOiAnQ09MTEFCT1JBVE9SJworICAgICAgICAgICAgICAgICAgICB9CisgICAg
ICAgICAgICAgICAgXSwKKyAgICAgICAgICAgICAgICAnaW5jb21wbGV0ZV9yZXN1bHRzJzogRmFs
c2UKKyAgICAgICAgICAgIH0KKyAgICAgICAgKSksCisgICAgICAgIChSZXF1ZXN0cy5kZXBsb3lt
ZW50X2dldCwgKDIwMCwgW10pKSwKKyAgICAgICAgKFJlcXVlc3RzLnJlZl91cGRhdGVfb3Blbiwg
KDIwMCwge30pKSwKKyAgICAgICAgKFJlcXVlc3RzLnJlZl91cGRhdGVfdHJ1c3RlZCwgKDIwMCwg
e30pKSwKKyAgICAgICAgKFJlcXVlc3RzLmRlcGxveW1lbnRfY3JlYXRlLCAoMjAwLCB7fSkpCisg
ICAgXQorICAgIHJlZnMgPSB7CisgICAgICAgICdyZWZzL3B1bGwvMjMvaGVhZCc6ICdIRUFEJywK
KyAgICAgICAgJ3JlZnMvcHJzLW9wZW4vMjMnOiAnSEVBRH4nLAorICAgICAgICAncmVmcy9wcnMt
dHJ1c3RlZC1mb3ItcHJldmlldy8yMyc6ICdIRUFEficKKyAgICB9CisKKyAgICByZXR1cm5jb2Rl
LCBhY3R1YWxfdHJhZmZpYywgcmVtb3RlX3JlZnMgPSBzeW5jaHJvbml6ZShleHBlY3RlZF90cmFm
ZmljLCByZWZzKQorCisgICAgYXNzZXJ0IHJldHVybmNvZGUgPT0gMAorICAgIGFzc2VydCBzYW1l
X21lbWJlcnMoZXhwZWN0ZWRfdHJhZmZpYywgYWN0dWFsX3RyYWZmaWMpCisKK2RlZiB0ZXN0X3N5
bmNocm9uaXplX3VwZGF0ZV9tZW1iZXIoKToKKyAgICBleHBlY3RlZF90cmFmZmljID0gWworICAg
ICAgICAoUmVxdWVzdHMuZ2V0X3JhdGUsIFJlc3BvbnNlcy5ub19saW1pdCksCisgICAgICAgIChS
ZXF1ZXN0cy5nZXRfcmF0ZSwgUmVzcG9uc2VzLm5vX2xpbWl0KSwKKyAgICAgICAgKFJlcXVlc3Rz
LmdldF9yYXRlLCBSZXNwb25zZXMubm9fbGltaXQpLAorICAgICAgICAoUmVxdWVzdHMuZ2V0X3Jh
dGUsIFJlc3BvbnNlcy5ub19saW1pdCksCisgICAgICAgIChSZXF1ZXN0cy5zZWFyY2gsICgyMDAs
CisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgJ2l0ZW1zJzogWworICAgICAgICAgICAg
ICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICAnbnVtYmVyJzogMjMsCisgICAgICAg
ICAgICAgICAgICAgICAgICAnbGFiZWxzJzogW10sCisgICAgICAgICAgICAgICAgICAgICAgICAn
Y2xvc2VkX2F0JzogTm9uZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICd1c2VyJzogeydsb2dp
bic6ICdncmFjZSd9LAorICAgICAgICAgICAgICAgICAgICAgICAgJ2F1dGhvcl9hc3NvY2lhdGlv
bic6ICdNRU1CRVInCisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBdLAor
ICAgICAgICAgICAgICAgICdpbmNvbXBsZXRlX3Jlc3VsdHMnOiBGYWxzZQorICAgICAgICAgICAg
fQorICAgICAgICApKSwKKyAgICAgICAgKFJlcXVlc3RzLmRlcGxveW1lbnRfZ2V0LCAoMjAwLCBb
eydzb21lJzogJ2RlcGxveW1lbnQnfV0pKSwKKyAgICAgICAgKFJlcXVlc3RzLnJlZl91cGRhdGVf
b3BlbiwgKDIwMCwge30pKSwKKyAgICAgICAgKFJlcXVlc3RzLnJlZl91cGRhdGVfdHJ1c3RlZCwg
KDIwMCwge30pKQorICAgIF0KKyAgICByZWZzID0geworICAgICAgICAncmVmcy9wdWxsLzIzL2hl
YWQnOiAnSEVBRCcsCisgICAgICAgICdyZWZzL3Bycy1vcGVuLzIzJzogJ0hFQUR+JywKKyAgICAg
ICAgJ3JlZnMvcHJzLXRydXN0ZWQtZm9yLXByZXZpZXcvMjMnOiAnSEVBRH4nCisgICAgfQorCisg
ICAgcmV0dXJuY29kZSwgYWN0dWFsX3RyYWZmaWMsIHJlbW90ZV9yZWZzID0gc3luY2hyb25pemUo
ZXhwZWN0ZWRfdHJhZmZpYywgcmVmcykKKworICAgIGFzc2VydCByZXR1cm5jb2RlID09IDAKKyAg
ICBhc3NlcnQgc2FtZV9tZW1iZXJzKGV4cGVjdGVkX3RyYWZmaWMsIGFjdHVhbF90cmFmZmljKQor
CitkZWYgdGVzdF9zeW5jaHJvbml6ZV9kZWxldGVfY29sbGFib3JhdG9yKCk6CisgICAgZXhwZWN0
ZWRfdHJhZmZpYyA9IFsKKyAgICAgICAgKFJlcXVlc3RzLmdldF9yYXRlLCBSZXNwb25zZXMubm9f
bGltaXQpLAorICAgICAgICAoUmVxdWVzdHMuc2VhcmNoLCAoMjAwLAorICAgICAgICAgICAgewor
ICAgICAgICAgICAgICAgICdpdGVtcyc6IFsKKyAgICAgICAgICAgICAgICAgICAgeworICAgICAg
ICAgICAgICAgICAgICAgICAgJ251bWJlcic6IDIzLAorICAgICAgICAgICAgICAgICAgICAgICAg
J2xhYmVscyc6IFtdLAorICAgICAgICAgICAgICAgICAgICAgICAgJ2Nsb3NlZF9hdCc6ICcyMDE5
LTEwLTMwJywKKyAgICAgICAgICAgICAgICAgICAgICAgICd1c2VyJzogeydsb2dpbic6ICdncmFj
ZSd9LAorICAgICAgICAgICAgICAgICAgICAgICAgJ2F1dGhvcl9hc3NvY2lhdGlvbic6ICdDT0xM
QUJPUkFUT1InCisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBdLAorICAg
ICAgICAgICAgICAgICdpbmNvbXBsZXRlX3Jlc3VsdHMnOiBGYWxzZQorICAgICAgICAgICAgfQor
ICAgICAgICApKQorICAgIF0KKyAgICByZWZzID0geworICAgICAgICAncmVmcy9wdWxsLzIzL2hl
YWQnOiAnSEVBRCcsCisgICAgICAgICdyZWZzL3Bycy1vcGVuLzIzJzogJ0hFQUR+JywKKyAgICAg
ICAgJ3JlZnMvcHJzLXRydXN0ZWQtZm9yLXByZXZpZXcvMjMnOiAnSEVBRH4nCisgICAgfQorCisg
ICAgcmV0dXJuY29kZSwgYWN0dWFsX3RyYWZmaWMsIHJlbW90ZV9yZWZzID0gc3luY2hyb25pemUo
ZXhwZWN0ZWRfdHJhZmZpYywgcmVmcykKKworICAgIGFzc2VydCByZXR1cm5jb2RlID09IDAKKyAg
ICBhc3NlcnQgc2FtZV9tZW1iZXJzKGV4cGVjdGVkX3RyYWZmaWMsIGFjdHVhbF90cmFmZmljKQor
ICAgIGFzc2VydCBsaXN0KHJlbW90ZV9yZWZzKSA9PSBbJ3JlZnMvcHVsbC8yMy9oZWFkJ10KKwor
ZGVmIHRlc3RfZGV0ZWN0X2lnbm9yZV91bmtub3duX2VudigpOgorICAgIGV4cGVjdGVkX2dpdGh1
Yl90cmFmZmljID0gW10KKyAgICBleHBlY3RlZF9wcmV2aWV3X3RyYWZmaWMgPSBbXQorICAgIGV2
ZW50ID0geworICAgICAgICAnZGVwbG95bWVudCc6IHsKKyAgICAgICAgICAgICdpZCc6IDI0NjAx
LAorICAgICAgICAgICAgJ2Vudmlyb25tZW50JzogJ2dob3N0cycsCisgICAgICAgICAgICAnc2hh
JzogJzMyMzInCisgICAgICAgIH0KKyAgICB9CisKKyAgICByZXR1cm5jb2RlLCBhY3R1YWxfZ2l0
aHViX3RyYWZmaWMsIGFjdHVhbF9wcmV2aWV3X3RyYWZmaWMgPSBkZXRlY3QoCisgICAgICAgIGV2
ZW50LCBleHBlY3RlZF9naXRodWJfdHJhZmZpYywgZXhwZWN0ZWRfcHJldmlld190cmFmZmljCisg
ICAgKQorCisgICAgYXNzZXJ0IHJldHVybmNvZGUgPT0gMAorICAgIGFzc2VydCBsZW4oYWN0dWFs
X2dpdGh1Yl90cmFmZmljKSA9PSAwCisgICAgYXNzZXJ0IGxlbihhY3R1YWxfcHJldmlld190cmFm
ZmljKSA9PSAwCisKK2RlZiB0ZXN0X2RldGVjdF9mYWlsX3NlYXJjaF90aHJvdHRsZWQoKToKKyAg
ICBleHBlY3RlZF9naXRodWJfdHJhZmZpYyA9IFsKKyAgICAgICAgKFJlcXVlc3RzLmdldF9yYXRl
LCAoCisgICAgICAgICAgICAyMDAsCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgJ3Jl
c291cmNlcyc6IHsKKyAgICAgICAgICAgICAgICAgICAgJ2NvcmUnOiB7CisgICAgICAgICAgICAg
ICAgICAgICAgICAncmVtYWluaW5nJzogMSwKKyAgICAgICAgICAgICAgICAgICAgICAgICdsaW1p
dCc6IDEwCisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAg
ICAgICB9CisgICAgICAgICkpCisgICAgXQorICAgIGV4cGVjdGVkX3ByZXZpZXdfdHJhZmZpYyA9
IFtdCisgICAgZXZlbnQgPSB7CisgICAgICAgICdkZXBsb3ltZW50JzogeworICAgICAgICAgICAg
J2lkJzogMjQ2MDEsCisgICAgICAgICAgICAnZW52aXJvbm1lbnQnOiAnd3B0LXByZXZpZXctNDUn
LAorICAgICAgICAgICAgJ3NoYSc6ICczMjMyJworICAgICAgICB9CisgICAgfQorCisgICAgcmV0
dXJuY29kZSwgYWN0dWFsX2dpdGh1Yl90cmFmZmljLCBhY3R1YWxfcHJldmlld190cmFmZmljID0g
ZGV0ZWN0KAorICAgICAgICBldmVudCwgZXhwZWN0ZWRfZ2l0aHViX3RyYWZmaWMsIGV4cGVjdGVk
X3ByZXZpZXdfdHJhZmZpYworICAgICkKKworICAgIGFzc2VydCByZXR1cm5jb2RlID09IDEKKyAg
ICBhc3NlcnQgYWN0dWFsX2dpdGh1Yl90cmFmZmljID09IGV4cGVjdGVkX2dpdGh1Yl90cmFmZmlj
CisgICAgYXNzZXJ0IGFjdHVhbF9wcmV2aWV3X3RyYWZmaWMgPT0gZXhwZWN0ZWRfcHJldmlld190
cmFmZmljCisKK2RlZiB0ZXN0X2RldGVjdF9zdWNjZXNzKCk6CisgICAgZXhwZWN0ZWRfZ2l0aHVi
X3RyYWZmaWMgPSBbCisgICAgICAgIChSZXF1ZXN0cy5nZXRfcmF0ZSwgUmVzcG9uc2VzLm5vX2xp
bWl0KSwKKyAgICAgICAgKFJlcXVlc3RzLmRlcGxveW1lbnRfc3RhdHVzX2NyZWF0ZV9wZW5kaW5n
LCAoMjAwLCB7fSkpLAorICAgICAgICAoUmVxdWVzdHMuZ2V0X3JhdGUsIFJlc3BvbnNlcy5ub19s
aW1pdCksCisgICAgICAgIChSZXF1ZXN0cy5kZXBsb3ltZW50X3N0YXR1c19jcmVhdGVfc3VjY2Vz
cywgKDIwMCwge30pKQorICAgIF0KKyAgICBleHBlY3RlZF9wcmV2aWV3X3RyYWZmaWMgPSBbCisg
ICAgICAgIChSZXF1ZXN0cy5wcmV2aWV3LCAoMjAwLCAzMjMyKSkKKyAgICBdCisgICAgZXZlbnQg
PSB7CisgICAgICAgICdkZXBsb3ltZW50JzogeworICAgICAgICAgICAgJ2lkJzogMjQ2MDEsCisg
ICAgICAgICAgICAnZW52aXJvbm1lbnQnOiAnd3B0LXByZXZpZXctNDUnLAorICAgICAgICAgICAg
J3NoYSc6ICczMjMyJworICAgICAgICB9CisgICAgfQorCisgICAgcmV0dXJuY29kZSwgYWN0dWFs
X2dpdGh1Yl90cmFmZmljLCBhY3R1YWxfcHJldmlld190cmFmZmljID0gZGV0ZWN0KAorICAgICAg
ICBldmVudCwgZXhwZWN0ZWRfZ2l0aHViX3RyYWZmaWMsIGV4cGVjdGVkX3ByZXZpZXdfdHJhZmZp
YworICAgICkKKworICAgIGFzc2VydCByZXR1cm5jb2RlID09IDAKKyAgICBhc3NlcnQgYWN0dWFs
X2dpdGh1Yl90cmFmZmljID09IGV4cGVjdGVkX2dpdGh1Yl90cmFmZmljCisgICAgYXNzZXJ0IGFj
dHVhbF9wcmV2aWV3X3RyYWZmaWMgPT0gZXhwZWN0ZWRfcHJldmlld190cmFmZmljCisKK2RlZiB0
ZXN0X2RldGVjdF90aW1lb3V0X21pc3NpbmcoKToKKyAgICBleHBlY3RlZF9naXRodWJfdHJhZmZp
YyA9IFsKKyAgICAgICAgKFJlcXVlc3RzLmdldF9yYXRlLCBSZXNwb25zZXMubm9fbGltaXQpLAor
ICAgICAgICAoUmVxdWVzdHMuZGVwbG95bWVudF9zdGF0dXNfY3JlYXRlX3BlbmRpbmcsICgyMDAs
IHt9KSksCisgICAgICAgIChSZXF1ZXN0cy5nZXRfcmF0ZSwgUmVzcG9uc2VzLm5vX2xpbWl0KSwK
KyAgICAgICAgKFJlcXVlc3RzLmRlcGxveW1lbnRfc3RhdHVzX2NyZWF0ZV9lcnJvciwgKDIwMCwg
e30pKQorICAgIF0KKyAgICBleHBlY3RlZF9wcmV2aWV3X3RyYWZmaWMgPSBbCisgICAgICAgIChS
ZXF1ZXN0cy5wcmV2aWV3LCAoNDA0LCB7fSkpCisgICAgXQorICAgIGV2ZW50ID0geworICAgICAg
ICAnZGVwbG95bWVudCc6IHsKKyAgICAgICAgICAgICdpZCc6IDI0NjAxLAorICAgICAgICAgICAg
J2Vudmlyb25tZW50JzogJ3dwdC1wcmV2aWV3LTQ1JywKKyAgICAgICAgICAgICdzaGEnOiAnMzIz
MicKKyAgICAgICAgfQorICAgIH0KKworICAgIHJldHVybmNvZGUsIGFjdHVhbF9naXRodWJfdHJh
ZmZpYywgYWN0dWFsX3ByZXZpZXdfdHJhZmZpYyA9IGRldGVjdCgKKyAgICAgICAgZXZlbnQsIGV4
cGVjdGVkX2dpdGh1Yl90cmFmZmljLCBleHBlY3RlZF9wcmV2aWV3X3RyYWZmaWMKKyAgICApCisK
KyAgICBhc3NlcnQgcmV0dXJuY29kZSA9PSAxCisgICAgYXNzZXJ0IGV4cGVjdGVkX2dpdGh1Yl90
cmFmZmljID09IGFjdHVhbF9naXRodWJfdHJhZmZpYworICAgIHBpbmdfY291bnQgPSBsZW4oYWN0
dWFsX3ByZXZpZXdfdHJhZmZpYykKKyAgICBhc3NlcnQgcGluZ19jb3VudCA+IDAKKyAgICBhc3Nl
cnQgYWN0dWFsX3ByZXZpZXdfdHJhZmZpYyA9PSBleHBlY3RlZF9wcmV2aWV3X3RyYWZmaWMgKiBw
aW5nX2NvdW50CisKK2RlZiB0ZXN0X2RldGVjdF90aW1lb3V0X3dyb25nX3JldmlzaW9uKCk6Cisg
ICAgZXhwZWN0ZWRfZ2l0aHViX3RyYWZmaWMgPSBbCisgICAgICAgIChSZXF1ZXN0cy5nZXRfcmF0
ZSwgUmVzcG9uc2VzLm5vX2xpbWl0KSwKKyAgICAgICAgKFJlcXVlc3RzLmRlcGxveW1lbnRfc3Rh
dHVzX2NyZWF0ZV9wZW5kaW5nLCAoMjAwLCB7fSkpLAorICAgICAgICAoUmVxdWVzdHMuZ2V0X3Jh
dGUsIFJlc3BvbnNlcy5ub19saW1pdCksCisgICAgICAgIChSZXF1ZXN0cy5kZXBsb3ltZW50X3N0
YXR1c19jcmVhdGVfZXJyb3IsICgyMDAsIHt9KSkKKyAgICBdCisgICAgZXhwZWN0ZWRfcHJldmll
d190cmFmZmljID0gWworICAgICAgICAoUmVxdWVzdHMucHJldmlldywgKDIwMCwgMTIzNCkpCisg
ICAgXQorICAgIGV2ZW50ID0geworICAgICAgICAnZGVwbG95bWVudCc6IHsKKyAgICAgICAgICAg
ICdpZCc6IDI0NjAxLAorICAgICAgICAgICAgJ2Vudmlyb25tZW50JzogJ3dwdC1wcmV2aWV3LTQ1
JywKKyAgICAgICAgICAgICdzaGEnOiAnMzIzMicKKyAgICAgICAgfQorICAgIH0KKworICAgIHJl
dHVybmNvZGUsIGFjdHVhbF9naXRodWJfdHJhZmZpYywgYWN0dWFsX3ByZXZpZXdfdHJhZmZpYyA9
IGRldGVjdCgKKyAgICAgICAgZXZlbnQsIGV4cGVjdGVkX2dpdGh1Yl90cmFmZmljLCBleHBlY3Rl
ZF9wcmV2aWV3X3RyYWZmaWMKKyAgICApCisKKyAgICBhc3NlcnQgcmV0dXJuY29kZSA9PSAxCisg
ICAgYXNzZXJ0IGV4cGVjdGVkX2dpdGh1Yl90cmFmZmljID09IGFjdHVhbF9naXRodWJfdHJhZmZp
YworICAgIHBpbmdfY291bnQgPSBsZW4oYWN0dWFsX3ByZXZpZXdfdHJhZmZpYykKKyAgICBhc3Nl
cnQgcGluZ19jb3VudCA+IDAKKyAgICBhc3NlcnQgYWN0dWFsX3ByZXZpZXdfdHJhZmZpYyA9PSBl
eHBlY3RlZF9wcmV2aWV3X3RyYWZmaWMgKiBwaW5nX2NvdW50CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2NpL3Rlc3RzL3czYy1p
bXBvcnQubG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy9jaS90ZXN0cy93M2MtaW1wb3J0LmxvZwppbmRleCAyZTgwZWExZTZkYy4uOTdlOTA2OWVk
YzYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvY2kvdGVzdHMvdzNjLWltcG9ydC5sb2cKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9jaS90ZXN0cy93M2MtaW1wb3J0LmxvZwpA
QCAtMTUsMyArMTUsNCBAQCBOb25lCiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIExpc3Qgb2YgZmlsZXM6CiAv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9jaS90ZXN0
cy90ZXN0X2pvYnMucHkKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL2NpL3Rlc3RzL3Rlc3RfcHJfcHJldmlldy5weQpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9jaS93M2MtaW1wb3J0
LmxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
Y2kvdzNjLWltcG9ydC5sb2cKaW5kZXggNTQzMTk1MDMzN2MuLmM4ZmY1Y2FiMzRmIDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2Np
L3czYy1pbXBvcnQubG9nCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvY2kvdzNjLWltcG9ydC5sb2cKQEAgLTE1LDIxICsxNSwxNyBAQCBOb25l
CiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0KIExpc3Qgb2YgZmlsZXM6CiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9jaS9fX2luaXRfXy5weQotL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvY2kvYmVmb3JlX2luc3RhbGwu
c2gKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2Np
L2NoZWNrX3N0YWJpbGl0eS5weQogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvY2kvY2lfYnVpbHRfZGlmZi5zaAotL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvY2kvY2lfbGludC5zaAotL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvY2kvY2lfbWFuaWZlc3Quc2gK
IC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2NpL2Np
X3Jlc291cmNlc191bml0dGVzdC5zaAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvY2kvY2lfc3RhYmlsaXR5LnNoCi0vTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9jaS9jaV90YXNrY2x1c3Rlci5zaAogL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvY2kvY2lfdG9v
bHNfdW5pdHRlc3Quc2gKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL2NpL2NpX3dwdC5zaAogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvY2kvY2lfd3B0cnVubmVyX2luZnJhc3RydWN0dXJlLnNoCiAvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9jaS9jb21tYW5k
cy5qc29uCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy9jaS9pbnN0YWxsLnNoCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy9jaS9lcG9jaHNfdXBkYXRlLnNoCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9jaS9qb2JzLnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9jaS9saWIuc2gKIC9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2NpL21ha2VfaG9zdHNfZmlsZS5w
eQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvY2kv
cnVuLnNoCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy9jaS90YWdfbWFzdGVyLnB5CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy9jaS9tYW5pZmVzdF9idWlsZC5weQorL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvY2kvcHJfcHJldmlldy5weQorL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvY2kvcnVuX3RjLnB5Cisv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9jaS90YXNr
Y2x1c3Rlci1ydW4ucHkKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL2NpL3dlYnNpdGVfYnVpbGQuc2gKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvY2kvd2Vic2l0ZV9idWlsZC5zaCBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvY2kvd2Vi
c2l0ZV9idWlsZC5zaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uZjZi
MjYzMTBhYWIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2NpL3dlYnNpdGVfYnVpbGQuc2gKQEAgLTAsMCArMSw4MSBA
QAorIyEvYmluL2Jhc2gKKworc2V0IC1leAorCituZXV0cmFsX3N0YXR1cz0wCitzb3VyY2VfcmV2
aXNpb249JChnaXQgcmV2LXBhcnNlIEhFQUQpCisjIFRoZSB0b2tlbiBhdmFpbGFibGUgaW4gdGhl
IGBHSVRIVUJfVE9LRU5gIHZhcmlhYmxlIG1heSBiZSB1c2VkIHRvIHB1c2ggdG8gdGhlCisjIHJl
cG9zaXRvcnksIGJ1dCBHaXRIdWIgUGFnZXMgd2lsbCBub3QgcmVidWlsZCB0aGUgd2Vic2l0ZSBp
biByZXNwb25zZSB0byBzdWNoCisjIGV2ZW50cy4gVXNlIGFuIGFjY2VzcyB0b2tlbiBnZW5lcmF0
ZWQgZm9yIHRoZSBwcm9qZWN0J3MgbWFjaGluZSB1c2VyLAorIyB3cHQtcHItYm90LgorIworIyBo
dHRwczovL2hlbHAuZ2l0aHViLmNvbS9lbi9hcnRpY2xlcy9nZW5lcmljLWpla3lsbC1idWlsZC1m
YWlsdXJlcworcmVtb3RlX3VybD1odHRwczovLyR7REVQTE9ZX1RPS0VOfUBnaXRodWIuY29tL3dl
Yi1wbGF0Zm9ybS10ZXN0cy93cHQuZ2l0CisKK2Z1bmN0aW9uIGpzb25fcHJvcGVydHkgeworICBj
YXQgJHsxfSB8IFwKKyAgICBweXRob24gLWMgImltcG9ydCBqc29uLCBzeXM7IHByaW50IGpzb24u
bG9hZChzeXMuc3RkaW4pLmdldChcIiR7Mn1cIiwgXCJcIikiCit9CisKK2Z1bmN0aW9uIGlzX3B1
bGxfcmVxdWVzdCB7CisgIHRlc3QgLW4gIiQoanNvbl9wcm9wZXJ0eSAke0dJVEhVQl9FVkVOVF9Q
QVRIfSBwdWxsX3JlcXVlc3QpIgorfQorCitmdW5jdGlvbiB0YXJnZXRzX21hc3RlciB7CisgIHRl
c3QgJChqc29uX3Byb3BlcnR5ICR7R0lUSFVCX0VWRU5UX1BBVEh9IHJlZikgPT0gJ3JlZnMvaGVh
ZHMvbWFzdGVyJworfQorCitnaXQgY29uZmlnIC0tZ2xvYmFsIHVzZXIuZW1haWwgIndwdC1wci1i
b3RAdXNlcnMubm9yZXBseS5naXRodWIuY29tIgorZ2l0IGNvbmZpZyAtLWdsb2JhbCB1c2VyLm5h
bWUgIndwdC1wci1ib3QiCisKKyMgUHJlcGFyZSB0aGUgb3V0cHV0IGRpcmVjdG9yeSBzbyB0aGF0
IHRoZSBuZXcgYnVpbGQgY2FuIGJlIHB1c2hlZCB0byB0aGUKKyMgcmVwb3NpdG9yeSBhcyBhbiBp
bmNyZW1lbnRhbCBjaGFuZ2UgdG8gdGhlIHByaW9yIGJ1aWxkLgorbWtkaXIgLXAgZG9jcy9fYnVp
bGQvaHRtbAorY2QgZG9jcy9fYnVpbGQvaHRtbAorZ2l0IGluaXQKK2dpdCBmZXRjaCAtLWRlcHRo
IDEgJHtyZW1vdGVfdXJsfSBnaC1wYWdlcworZ2l0IGNoZWNrb3V0IEZFVENIX0hFQUQKK2dpdCBy
bSAtcmYgLgorCisjIEJ1aWxkIHRoZSB3ZWJzaXRlCitjZCAuLi8uLgorcGlwIGluc3RhbGwgLXIg
cmVxdWlyZW1lbnRzLnR4dAorbWFrZSBodG1sCisKK2NkIF9idWlsZC9odG1sCisjIENvbmZpZ3Vy
ZSBETlMKK2VjaG8gd2ViLXBsYXRmb3JtLXRlc3RzLm9yZyA+IENOQU1FCisjIERpc2FibGUgSmVr
eWxsCisjIGh0dHBzOi8vZ2l0aHViLmJsb2cvMjAwOS0xMi0yOS1ieXBhc3NpbmctamVreWxsLW9u
LWdpdGh1Yi1wYWdlcy8KK3RvdWNoIC5ub2pla3lsbAorCisjIFB1Ymxpc2ggdGhlIHdlYnNpdGUg
YnkgcHVzaGluZyB0aGUgYnVpbHQgY29udGVudHMgdG8gdGhlIGBnaC1wYWdlc2AgYnJhbmNoCitn
aXQgYWRkIC4KKworZWNobyBUaGlzIHN1Ym1pc3Npb24gYWx0ZXJzIHRoZSBjb21waWxlZCBmaWxl
cyBhcyBmb2xsb3dzCisKK2dpdCBkaWZmIC0tc3RhZ2VkCisKK2lmIGlzX3B1bGxfcmVxdWVzdCA7
IHRoZW4KKyAgZWNobyBTdWJtaXNzaW9uIGNvbWVzIGZyb20gYSBwdWxsIHJlcXVlc3QuIEV4aXRp
bmcgd2l0aG91dCBwdWJsaXNoaW5nLgorCisgIGV4aXQgJHtuZXV0cmFsX3N0YXR1c30KK2ZpCisK
K2lmICEgdGFyZ2V0c19tYXN0ZXIgOyB0aGVuCisgIGVjaG8gU3VibWlzc2lvbiBkb2VzIG5vdCB0
YXJnZXQgdGhlICdtYXN0ZXInIGJyYW5jaC4gRXhpdGluZyB3aXRob3V0IHB1Ymxpc2hpbmcuCisK
KyAgZXhpdCAke25ldXRyYWxfc3RhdHVzfQorZmkKKworaWYgZ2l0IGRpZmYgLS1leGl0LWNvZGUg
LS1xdWlldCAtLXN0YWdlZCA7IHRoZW4KKyAgZWNobyBObyBjaGFuZ2UgdG8gdGhlIHdlYnNpdGUg
Y29udGVudHMuIEV4aXRpbmcgd2l0aG91dCBwdWJsaXNoaW5nLgorCisgIGV4aXQgJHtuZXV0cmFs
X3N0YXR1c30KK2ZpCisKK2dpdCBjb21taXQgLS1tZXNzYWdlICJCdWlsZCBkb2N1bWVudGF0aW9u
CisKK1RoZXNlIGZpbGVzIHdlcmUgZ2VuZXJhdGVkIGZyb20gY29tbWl0ICR7c291cmNlX3Jldmlz
aW9ufSIKKworZ2l0IHB1c2ggLS1mb3JjZSAke3JlbW90ZV91cmx9IEhFQUQ6Z2gtcGFnZXMKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvY29uZnRlc3QucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL2NvbmZ0ZXN0LnB5CmluZGV4IDg5NGZlNjIyM2VhLi4wMjFhNDlmYzI5NyAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy9jb25mdGVzdC5weQorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL2NvbmZ0ZXN0LnB5CkBAIC02LDggKzYsMTAgQEAgZnJvbSBoeXBvdGhlc2lz
IGltcG9ydCBzZXR0aW5ncywgSGVhbHRoQ2hlY2sKIGltcGwgPSBwbGF0Zm9ybS5weXRob25faW1w
bGVtZW50YXRpb24oKQogCiBzZXR0aW5ncy5yZWdpc3Rlcl9wcm9maWxlKCJjaSIsIHNldHRpbmdz
KG1heF9leGFtcGxlcz0xMDAwLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBkZWFkbGluZT1Ob25lLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBzdXBwcmVzc19oZWFsdGhfY2hlY2s9W0hlYWx0aENoZWNrLnRvb19zbG93XSkpCi1zZXR0
aW5ncy5yZWdpc3Rlcl9wcm9maWxlKCJweXB5Iiwgc2V0dGluZ3Moc3VwcHJlc3NfaGVhbHRoX2No
ZWNrPVtIZWFsdGhDaGVjay50b29fc2xvd10pKQorc2V0dGluZ3MucmVnaXN0ZXJfcHJvZmlsZSgi
cHlweSIsIHNldHRpbmdzKGRlYWRsaW5lPU5vbmUsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgc3VwcHJlc3NfaGVhbHRoX2NoZWNrPVtIZWFsdGhDaGVjay50b29f
c2xvd10pKQogCiBzZXR0aW5ncy5sb2FkX3Byb2ZpbGUob3MuZ2V0ZW52KCJIWVBPVEhFU0lTX1BS
T0ZJTEUiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiZGVmYXVsdCIgaWYgaW1w
bCAhPSAiUHlQeSIgZWxzZSAicHlweSIpKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9kb2NrZXIvRG9ja2VyZmlsZSBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvZG9ja2VyL0RvY2tl
cmZpbGUKaW5kZXggYjA1NDFkYzZjOTguLjNkNDE4MzRjZmI0IDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2RvY2tlci9Eb2NrZXJm
aWxlCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvZG9ja2VyL0RvY2tlcmZpbGUKQEAgLTEsNCArMSw0IEBACi1GUk9NIHVidW50dToxNi4wNAor
RlJPTSB1YnVudHU6MTguMDQKIAogIyBObyBpbnRlcmFjdGl2ZSBmcm9udGVuZCBkdXJpbmcgZG9j
a2VyIGJ1aWxkCiBFTlYgREVCSUFOX0ZST05URU5EPW5vbmludGVyYWN0aXZlIFwKQEAgLTcsMTUg
KzcsMjIgQEAgRU5WIERFQklBTl9GUk9OVEVORD1ub25pbnRlcmFjdGl2ZSBcCiAjIEdlbmVyYWwg
cmVxdWlyZW1lbnRzIG5vdCBpbiB0aGUgYmFzZSBpbWFnZQogUlVOIGFwdC1nZXQgLXFxeSB1cGRh
dGUgXAogICAmJiBhcHQtZ2V0IC1xcXkgaW5zdGFsbCBcCisgICAgYnJpZGdlLXV0aWxzIFwKICAg
ICBiemlwMiBcCiAgICAgY2EtY2VydGlmaWNhdGVzIFwKICAgICBkYnVzLXgxMSBcCisgICAgZWFy
bHlvb20gXAorICAgIGZsdXhib3ggXAogICAgIGdkZWJpIFwKICAgICBnaXQgXAorICAgIGxpYnZp
cnQtZGFlbW9uLXN5c3RlbSBcCisgICAgbGlidmlydC1jbGllbnRzIFwKICAgICBsb2NhbGVzIFwK
KyAgICBvcGVuamRrLTgtanJlLWhlYWRsZXNzIFwKICAgICBwdWxzZWF1ZGlvIFwKICAgICBweXRo
b24gXAogICAgIHB5dGhvbi1waXAgXAorICAgIHFlbXUta3ZtIFwKICAgICB0emRhdGEgXAogICAg
IHN1ZG8gXAogICAgIHVuemlwIFwKQEAgLTM3LDYgKzQ0LDggQEAgUlVOIGFwdC1nZXQgLXFxeSBp
bnN0YWxsIFwKICAgICBsaWJpbmRpY2F0b3IzLTcgXAogICAgIGxpYmluZGljYXRvcjcKIAorUlVO
IGFwdC1nZXQgLXkgYXV0b3JlbW92ZQorCiBSVU4gcGlwIGluc3RhbGwgLS11cGdyYWRlIHBpcAog
UlVOIHBpcCBpbnN0YWxsIHZpcnR1YWxlbnYKIApAQCAtNDQsMTAgKzUzLDE4IEBAIEVOViBUWiAi
VVRDIgogUlVOIGVjaG8gIiR7VFp9IiA+IC9ldGMvdGltZXpvbmUgXAogICAmJiBkcGtnLXJlY29u
ZmlndXJlIC0tZnJvbnRlbmQgbm9uaW50ZXJhY3RpdmUgdHpkYXRhCiAKKyMgU2V0IHRoZSBsb2Nh
bGUKK1JVTiBsb2NhbGUtZ2VuIGVuX1VTLlVURi04CitFTlYgTEFORyBlbl9VUy5VVEYtOAorRU5W
IExBTkdVQUdFIGVuX1VTOmVuCitFTlYgTENfQUxMIGVuX1VTLlVURi04CisKIFJVTiB1c2VyYWRk
IHRlc3QgXAogICAgICAgICAgLS1zaGVsbCAvYmluL2Jhc2ggIFwKICAgICAgICAgIC0tY3JlYXRl
LWhvbWUgXAogICAmJiB1c2VybW9kIC1hIC1HIHN1ZG8gdGVzdCBcCisgICYmIHVzZXJtb2QgLWEg
LUcgbGlidmlydCB0ZXN0IFwKKyAgJiYgdXNlcm1vZCAtYSAtRyBsaWJ2aXJ0LXFlbXUgdGVzdCBc
CiAgICYmIGVjaG8gJ0FMTCBBTEwgPSAoQUxMKSBOT1BBU1NXRDogQUxMJyA+PiAvZXRjL3N1ZG9l
cnMgXAogICAmJiBlY2hvICd0ZXN0OnNlY3JldCcgfCBjaHBhc3N3ZAogCkBAIC02NCw5ICs4MSwx
MyBAQCBXT1JLRElSIC9ob21lL3Rlc3QKIFJVTiBzdWRvIGVjaG8gIiIKIAogUlVOIG1rZGlyIC1w
IC9ob21lL3Rlc3QvYXJ0aWZhY3RzCitSVU4gbWtkaXIgLXAgL2hvbWUvdGVzdC9iaW4KKworRU5W
IFBBVEg9Ii9ob21lL3Rlc3QvYmluOi9ob21lL3Rlc3QvLmxvY2FsL2Jpbjoke1BBVEh9IgogCiBX
T1JLRElSIC9ob21lL3Rlc3QvCiAKIENPUFkgLmJhc2hyYyAvaG9tZS90ZXN0Ly5iYXNocmMKIAog
Q09QWSBzdGFydC5zaCAvaG9tZS90ZXN0L3N0YXJ0LnNoCitDT1BZIHJldHJ5LnB5IC9ob21lL3Rl
c3QvYmluL3JldHJ5CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL2RvY2tlci9SRUFETUUubWQgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2RvY2tlci9SRUFETUUubWQKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjQ1MDk4MWY2ODZiCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9k
b2NrZXIvUkVBRE1FLm1kCkBAIC0wLDAgKzEsMTAgQEAKK1RoaXMgZG9ja2VyIGltYWdlcyBpcyB1
c2VkIGZvciB0ZXN0aW5nIENocm9tZSwgRmlyZWZveCwgV2ViS2l0R1RLIGFuZCBydW5uaW5nCitv
dGhlciB0YXNrcyBvbiBUYXNrY2x1c3Rlci4gV2hlbiBhbnkgb2YgdGhlIGZpbGVzIGluIHRoaXMg
ZGlyZWN0b3J5IGNoYW5nZSwgdGhlCitpbWFnZXMgbXVzdCBiZSB1cGRhdGVkIGFzIHdlbGwuIFRv
IGRvIHRoaXMsIGFzc3VtaW5nIHlvdSBoYXZlIGRvY2tlciBpbnN0YWxsZWQ6CisKK0luIHRoaXMg
ZGlyZWN0b3J5LCBydW4KK2BgYHNoCitkb2NrZXIgYnVpbGQgLXQgPHRhZz4gLgorZG9ja2VyIHB1
c2ggPHRhZz4KK2BgYAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2RvY2tlci9fX2luaXRfXy5weSBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvZG9ja2VyL19faW5pdF9fLnB5Cm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5hNjgzNGI4Mjg1YQotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvZG9ja2VyL19faW5pdF9fLnB5CkBAIC0wLDAgKzEgQEAKKyMgVGhpcyBmaWxlIGlzIHJl
cXVpcmVkIGZvciBQeXRob24gdG8gc2VhcmNoIHRoaXMgZGlyZWN0b3J5IGZvciBtb2R1bGVzLgpc
IE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvZG9ja2VyL2NvbW1hbmRzLmpzb24gYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2RvY2tlci9j
b21tYW5kcy5qc29uCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi4xNTE4
MmNjOWU2NQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvZG9ja2VyL2NvbW1hbmRzLmpzb24KQEAgLTAsMCArMSw2IEBA
Cit7CisgICAgImRvY2tlci1ydW4iOiB7InBhdGgiOiAiZnJvbnRlbmQucHkiLCAic2NyaXB0Ijog
InJ1biIsICJwYXJzZXIiOiAicGFyc2VyX3J1biIsICJoZWxwIjogIlJ1biB3cHQgZG9ja2VyIGlt
YWdlIiwKKyAgICAgICAgICAgICAgICAgICAidmlydHVhbGVudiI6IGZhbHNlfSwKKyAgICAiZG9j
a2VyLWJ1aWxkIjogeyJwYXRoIjogImZyb250ZW5kLnB5IiwgInNjcmlwdCI6ICJidWlsZCIsICJo
ZWxwIjogIkJ1aWxkIHdwdCBkb2NrZXIgaW1hZ2UiLAorICAgICAgICAgICAgICAgICAgICAgInZp
cnR1YWxlbnYiOiBmYWxzZX0KK30KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvZG9ja2VyL2RvY3VtZW50YXRpb24vRG9ja2VyZmls
ZSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvZG9j
a2VyL2RvY3VtZW50YXRpb24vRG9ja2VyZmlsZQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMC4uZTAxZjk4ZTRkNGQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2RvY2tlci9kb2N1bWVudGF0aW9u
L0RvY2tlcmZpbGUKQEAgLTAsMCArMSwzIEBACitGUk9NIHB5dGhvbjoyLXN0cmV0Y2gKKworUlVO
IGFwdC1nZXQgdXBkYXRlICYmIGFwdC1nZXQgaW5zdGFsbCAtLXllcyBnaXQKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvZG9ja2Vy
L2RvY3VtZW50YXRpb24vdzNjLWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2RvY2tlci9kb2N1bWVudGF0aW9uL3czYy1pbXBvcnQu
bG9nCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5jMzI0YjJmNDA5YQot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvZG9ja2VyL2RvY3VtZW50YXRpb24vdzNjLWltcG9ydC5sb2cKQEAgLTAsMCAr
MSwxNyBAQAorVGhlIHRlc3RzIGluIHRoaXMgZGlyZWN0b3J5IHdlcmUgaW1wb3J0ZWQgZnJvbSB0
aGUgVzNDIHJlcG9zaXRvcnkuCitEbyBOT1QgbW9kaWZ5IHRoZXNlIHRlc3RzIGRpcmVjdGx5IGlu
IFdlYktpdC4KK0luc3RlYWQsIGNyZWF0ZSBhIHB1bGwgcmVxdWVzdCBvbiB0aGUgV1BUIGdpdGh1
YjoKKwlodHRwczovL2dpdGh1Yi5jb20vd2ViLXBsYXRmb3JtLXRlc3RzL3dwdAorCitUaGVuIHJ1
biB0aGUgVG9vbHMvU2NyaXB0cy9pbXBvcnQtdzNjLXRlc3RzIGluIFdlYktpdCB0byByZWltcG9y
dAorCitEbyBOT1QgbW9kaWZ5IG9yIHJlbW92ZSB0aGlzIGZpbGUuCisKKy0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LQorUHJvcGVydGllcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgorTm9uZQorUHJvcGVydHkg
dmFsdWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6CitOb25lCistLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K
K0xpc3Qgb2YgZmlsZXM6CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy9kb2NrZXIvZG9jdW1lbnRhdGlvbi9Eb2NrZXJmaWxlCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2RvY2tlci9m
cm9udGVuZC5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvZG9ja2VyL2Zyb250ZW5kLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwLi45NzYxNTZjZjY1YQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvZG9ja2VyL2Zyb250ZW5kLnB5CkBAIC0w
LDAgKzEsNDUgQEAKK2ltcG9ydCBhcmdwYXJzZQoraW1wb3J0IHN1YnByb2Nlc3MKK2ltcG9ydCBv
cworCitoZXJlID0gb3MucGF0aC5hYnNwYXRoKG9zLnBhdGguZGlybmFtZShfX2ZpbGVfXykpCit3
cHRfcm9vdCA9IG9zLnBhdGguYWJzcGF0aChvcy5wYXRoLmpvaW4oaGVyZSwgb3MucGFyZGlyLCBv
cy5wYXJkaXIpKQorCitkZWYgYnVpbGQoKmFyZ3MsICoqa3dhcmdzKToKKyAgICBzdWJwcm9jZXNz
LmNoZWNrX2NhbGwoWyJkb2NrZXIiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgImJ1aWxk
IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICItLXRhZyIsICJ3cHQ6bG9jYWwiLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgaGVyZV0pCisKKworZGVmIHBhcnNlcl9ydW4oKToKKyAg
ICBwYXJzZXIgPSBhcmdwYXJzZS5Bcmd1bWVudFBhcnNlcigpCisgICAgcGFyc2VyLmFkZF9hcmd1
bWVudCgiLS1yZWJ1aWxkIiwgYWN0aW9uPSJzdG9yZV90cnVlIiwgaGVscD0iRm9yY2UgcmVidWls
ZCBvZiBpbWFnZSIpCisgICAgcGFyc2VyLmFkZF9hcmd1bWVudCgiLS1jaGVja291dCIsIGFjdGlv
bj0ic3RvcmUiLAorICAgICAgICAgICAgICAgICAgICAgICAgaGVscD0iUmV2aXNpb24gdG8gY2hl
Y2tvdXQgaW4gdGhlIGltYWdlLiAiCisgICAgICAgICAgICAgICAgICAgICAgICAiSWYgdGhpcyBp
cyBub3Qgc3VwcGxpZWQgd2UgbW91bnQgdGhlIHdwdCBjaGVja291dCBvbiB0aGUgaG9zdCBhcyAi
CisgICAgICAgICAgICAgICAgICAgICAgICAiL2hvbWUvdGVzdC93ZWItcGxhdGZvcm0tdGVzdHMv
IikKKyAgICBwYXJzZXIuYWRkX2FyZ3VtZW50KCItLXByaXZpbGVnZWQiLCBhY3Rpb249InN0b3Jl
X3RydWUiLAorICAgICAgICAgICAgICAgICAgICAgICAgaGVscD0iUnVuIHRoZSBpbWFnZSBpbiBw
cml2aWxlZGdlZCBtb2RlIChyZXF1aXJlZCBmb3IgZW11bGF0b3JzKSIpCisgICAgcmV0dXJuIHBh
cnNlcgorCisKK2RlZiBydW4oKmFyZ3MsICoqa3dhcmdzKToKKyAgICBpZiBrd2FyZ3NbInJlYnVp
bGQiXToKKyAgICAgICAgYnVpbGQoKQorCisgICAgYXJncyA9IFsiZG9ja2VyIiwgInJ1biJdCisg
ICAgYXJncy5leHRlbmQoWyItLXNlY3VyaXR5LW9wdCIsICJzZWNjb21wOiVzIiAlCisgICAgICAg
ICAgICAgICAgIG9zLnBhdGguam9pbih3cHRfcm9vdCwgInRvb2xzIiwgImRvY2tlciIsICJzZWNj
b21wLmpzb24iKV0pCisgICAgaWYga3dhcmdzWyJwcml2aWxlZ2VkIl06CisgICAgICAgIGFyZ3Mu
YXBwZW5kKCItLXByaXZpbGVnZWQiKQorICAgIGlmIGt3YXJnc1siY2hlY2tvdXQiXToKKyAgICAg
ICAgYXJncy5leHRlbmQoWyItLWVudiIsICJSRUY9PSVzIiAlIGt3YXJnc1siY2hlY2tvdXQiXV0p
CisgICAgZWxzZToKKyAgICAgICAgYXJncy5leHRlbmQoWyItLW1vdW50IiwKKyAgICAgICAgICAg
ICAgICAgICAgICJ0eXBlPWJpbmQsc291cmNlPSVzLHRhcmdldD0vaG9tZS90ZXN0L3dlYi1wbGF0
Zm9ybS10ZXN0cyIgJSB3cHRfcm9vdF0pCisgICAgYXJncy5leHRlbmQoWyItaXQiLCAid3B0Omxv
Y2FsIl0pCisKKyAgICBwcm9jID0gc3VicHJvY2Vzcy5Qb3BlbihhcmdzKQorICAgIHByb2Mud2Fp
dCgpCisgICAgcmV0dXJuIHByb2MucmV0dXJuY29kZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9kb2NrZXIvcmV0cnkucHkgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2RvY2tlci9y
ZXRyeS5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uNjEyNmI3ODFi
ZmEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL2RvY2tlci9yZXRyeS5weQpAQCAtMCwwICsxLDU4IEBACisjISAvdXNy
L2Jpbi9lbnYgcHl0aG9uCitpbXBvcnQgYXJncGFyc2UKK2ltcG9ydCBzdWJwcm9jZXNzCitpbXBv
cnQgdGltZQoraW1wb3J0IHN5cworCisKK2RlZiBnZXRfYXJncygpOgorICAgIHBhcnNlciA9IGFy
Z3BhcnNlLkFyZ3VtZW50UGFyc2VyKCkKKyAgICBwYXJzZXIuYWRkX2FyZ3VtZW50KCItLWRlbGF5
IiwgYWN0aW9uPSJzdG9yZSIsIHR5cGU9ZmxvYXQsIGRlZmF1bHQ9MywgaGVscD0iSW5pdGlhbCBk
ZWxheSBiZWZvcmUgcmV0cnksIGluIHNlY29uZHMiKQorICAgIHBhcnNlci5hZGRfYXJndW1lbnQo
Ii0tY291bnQiLCBhY3Rpb249InN0b3JlIiwgdHlwZT1pbnQsIGRlZmF1bHQ9NSwgaGVscD0iVG90
YWwgbnVtYmVyIG9mIHRyaWVzIikKKyAgICBwYXJzZXIuYWRkX2FyZ3VtZW50KCItLWZhY3RvciIs
IGFjdGlvbj0ic3RvcmUiLCB0eXBlPWZsb2F0LCBkZWZhdWx0PTIsIGhlbHA9IkV4cG9uZW50aWFs
IGJhY2tvZmYgZmFjdG9yIikKKyAgICBwYXJzZXIuYWRkX2FyZ3VtZW50KCJjbWQiLCBuYXJncz1h
cmdwYXJzZS5SRU1BSU5ERVIpCisgICAgcmV0dXJuIHBhcnNlcgorCisKK2RlZiBpdGVyX3Jhbmdl
KG4pOgorICAgIGkgPSAwCisgICAgd2hpbGUgaSA8IG46CisgICAgICAgIHlpZWxkIGkKKyAgICAg
ICAgaSArPSAxCisKKworZGVmIG1haW4oKToKKyAgICBhcmdzID0gZ2V0X2FyZ3MoKS5wYXJzZV9h
cmdzKCkKKworICAgIGlmIG5vdCBhcmdzLmNtZDoKKyAgICAgICAgcHJpbnQoIk5vIGNvbW1hbmQg
c3VwcGxpZWQiKQorICAgICAgICBzeXMuZXhpdCgxKQorCisgICAgcmV0Y29kZSA9IE5vbmUKKwor
ICAgIGZvciBuIGluIGl0ZXJfcmFuZ2UoYXJncy5jb3VudCk6CisgICAgICAgIHRyeToKKyAgICAg
ICAgICAgIHByaW50KCJSdW5uaW5nICVzIFt0cnkgJWQvJWRdIiAlICgiICIuam9pbihhcmdzLmNt
ZCksIChuKzEpLCBhcmdzLmNvdW50KSkKKyAgICAgICAgICAgIHN1YnByb2Nlc3MuY2hlY2tfY2Fs
bChhcmdzLmNtZCkKKyAgICAgICAgZXhjZXB0IHN1YnByb2Nlc3MuQ2FsbGVkUHJvY2Vzc0Vycm9y
IGFzIGU6CisgICAgICAgICAgICByZXRjb2RlID0gZS5yZXR1cm5jb2RlCisgICAgICAgIGVsc2U6
CisgICAgICAgICAgICBwcmludCgiQ29tbWFuZCBzdWNjZWVkZWQiKQorICAgICAgICAgICAgcmV0
Y29kZSA9IDAKKyAgICAgICAgICAgIGJyZWFrCisKKyAgICAgICAgaWYgYXJncy5mYWN0b3IgPT0g
MDoKKyAgICAgICAgICAgIHdhaXRfdGltZSA9IChuKzEpICogYXJncy5kZWxheQorICAgICAgICBl
bHNlOgorICAgICAgICAgICAgd2FpdF90aW1lID0gYXJncy5mYWN0b3IqKm4gKiBhcmdzLmRlbGF5
CisgICAgICAgIGlmIG4gPCBhcmdzLmNvdW50IC0gMToKKyAgICAgICAgICAgIHByaW50KCJDb21t
YW5kIGZhaWxlZCwgd2FpdGluZyAlcyBzZWNvbmRzIHRvIHJldHJ5IiAlIHdhaXRfdGltZSkKKyAg
ICAgICAgICAgIHRpbWUuc2xlZXAod2FpdF90aW1lKQorICAgICAgICBlbHNlOgorICAgICAgICAg
ICAgcHJpbnQoIkNvbW1hbmQgZmFpbGVkLCBvdXQgb2YgcmV0cmllcyIpCisKKyAgICBzeXMuZXhp
dChyZXRjb2RlKQorCisKK2lmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CisgICAgbWFpbigpCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL2RvY2tlci9zZWNjb21wLmpzb24gYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL2RvY2tlci9zZWNjb21wLmpzb24KbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAuLjhlODI3NGNlMzI4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9kb2NrZXIvc2Vj
Y29tcC5qc29uCkBAIC0wLDAgKzEsNzk4IEBACit7CisgICJkZWZhdWx0QWN0aW9uIjogIlNDTVBf
QUNUX0VSUk5PIiwKKyAgImFyY2hNYXAiOiBbCisgICAgeworICAgICAgImFyY2hpdGVjdHVyZSI6
ICJTQ01QX0FSQ0hfWDg2XzY0IiwKKyAgICAgICJzdWJBcmNoaXRlY3R1cmVzIjogWworICAgICAg
ICAiU0NNUF9BUkNIX1g4NiIsCisgICAgICAgICJTQ01QX0FSQ0hfWDMyIgorICAgICAgXQorICAg
IH0sCisgICAgeworICAgICAgImFyY2hpdGVjdHVyZSI6ICJTQ01QX0FSQ0hfQUFSQ0g2NCIsCisg
ICAgICAic3ViQXJjaGl0ZWN0dXJlcyI6IFsKKyAgICAgICAgIlNDTVBfQVJDSF9BUk0iCisgICAg
ICBdCisgICAgfSwKKyAgICB7CisgICAgICAiYXJjaGl0ZWN0dXJlIjogIlNDTVBfQVJDSF9NSVBT
NjQiLAorICAgICAgInN1YkFyY2hpdGVjdHVyZXMiOiBbCisgICAgICAgICJTQ01QX0FSQ0hfTUlQ
UyIsCisgICAgICAgICJTQ01QX0FSQ0hfTUlQUzY0TjMyIgorICAgICAgXQorICAgIH0sCisgICAg
eworICAgICAgImFyY2hpdGVjdHVyZSI6ICJTQ01QX0FSQ0hfTUlQUzY0TjMyIiwKKyAgICAgICJz
dWJBcmNoaXRlY3R1cmVzIjogWworICAgICAgICAiU0NNUF9BUkNIX01JUFMiLAorICAgICAgICAi
U0NNUF9BUkNIX01JUFM2NCIKKyAgICAgIF0KKyAgICB9LAorICAgIHsKKyAgICAgICJhcmNoaXRl
Y3R1cmUiOiAiU0NNUF9BUkNIX01JUFNFTDY0IiwKKyAgICAgICJzdWJBcmNoaXRlY3R1cmVzIjog
WworICAgICAgICAiU0NNUF9BUkNIX01JUFNFTCIsCisgICAgICAgICJTQ01QX0FSQ0hfTUlQU0VM
NjROMzIiCisgICAgICBdCisgICAgfSwKKyAgICB7CisgICAgICAiYXJjaGl0ZWN0dXJlIjogIlND
TVBfQVJDSF9NSVBTRUw2NE4zMiIsCisgICAgICAic3ViQXJjaGl0ZWN0dXJlcyI6IFsKKyAgICAg
ICAgIlNDTVBfQVJDSF9NSVBTRUwiLAorICAgICAgICAiU0NNUF9BUkNIX01JUFNFTDY0IgorICAg
ICAgXQorICAgIH0sCisgICAgeworICAgICAgImFyY2hpdGVjdHVyZSI6ICJTQ01QX0FSQ0hfUzM5
MFgiLAorICAgICAgInN1YkFyY2hpdGVjdHVyZXMiOiBbCisgICAgICAgICJTQ01QX0FSQ0hfUzM5
MCIKKyAgICAgIF0KKyAgICB9CisgIF0sCisgICJzeXNjYWxscyI6IFsKKyAgICB7CisgICAgICAi
bmFtZXMiOiBbCisgICAgICAgICJhY2NlcHQiLAorICAgICAgICAiYWNjZXB0NCIsCisgICAgICAg
ICJhY2Nlc3MiLAorICAgICAgICAiYWRqdGltZXgiLAorICAgICAgICAiYWxhcm0iLAorICAgICAg
ICAiYmluZCIsCisgICAgICAgICJicmsiLAorICAgICAgICAiY2FwZ2V0IiwKKyAgICAgICAgImNh
cHNldCIsCisgICAgICAgICJjaGRpciIsCisgICAgICAgICJjaG1vZCIsCisgICAgICAgICJjaG93
biIsCisgICAgICAgICJjaG93bjMyIiwKKyAgICAgICAgImNsb2NrX2dldHJlcyIsCisgICAgICAg
ICJjbG9ja19nZXR0aW1lIiwKKyAgICAgICAgImNsb2NrX25hbm9zbGVlcCIsCisgICAgICAgICJj
bG9uZSIsCisgICAgICAgICJjbG9zZSIsCisgICAgICAgICJjb25uZWN0IiwKKyAgICAgICAgImNv
cHlfZmlsZV9yYW5nZSIsCisgICAgICAgICJjcmVhdCIsCisgICAgICAgICJkdXAiLAorICAgICAg
ICAiZHVwMiIsCisgICAgICAgICJkdXAzIiwKKyAgICAgICAgImVwb2xsX2NyZWF0ZSIsCisgICAg
ICAgICJlcG9sbF9jcmVhdGUxIiwKKyAgICAgICAgImVwb2xsX2N0bCIsCisgICAgICAgICJlcG9s
bF9jdGxfb2xkIiwKKyAgICAgICAgImVwb2xsX3B3YWl0IiwKKyAgICAgICAgImVwb2xsX3dhaXQi
LAorICAgICAgICAiZXBvbGxfd2FpdF9vbGQiLAorICAgICAgICAiZXZlbnRmZCIsCisgICAgICAg
ICJldmVudGZkMiIsCisgICAgICAgICJleGVjdmUiLAorICAgICAgICAiZXhlY3ZlYXQiLAorICAg
ICAgICAiZXhpdCIsCisgICAgICAgICJleGl0X2dyb3VwIiwKKyAgICAgICAgImZhY2Nlc3NhdCIs
CisgICAgICAgICJmYWR2aXNlNjQiLAorICAgICAgICAiZmFkdmlzZTY0XzY0IiwKKyAgICAgICAg
ImZhbGxvY2F0ZSIsCisgICAgICAgICJmYW5vdGlmeV9tYXJrIiwKKyAgICAgICAgImZjaGRpciIs
CisgICAgICAgICJmY2htb2QiLAorICAgICAgICAiZmNobW9kYXQiLAorICAgICAgICAiZmNob3du
IiwKKyAgICAgICAgImZjaG93bjMyIiwKKyAgICAgICAgImZjaG93bmF0IiwKKyAgICAgICAgImZj
bnRsIiwKKyAgICAgICAgImZjbnRsNjQiLAorICAgICAgICAiZmRhdGFzeW5jIiwKKyAgICAgICAg
ImZnZXR4YXR0ciIsCisgICAgICAgICJmbGlzdHhhdHRyIiwKKyAgICAgICAgImZsb2NrIiwKKyAg
ICAgICAgImZvcmsiLAorICAgICAgICAiZnJlbW92ZXhhdHRyIiwKKyAgICAgICAgImZzZXR4YXR0
ciIsCisgICAgICAgICJmc3RhdCIsCisgICAgICAgICJmc3RhdDY0IiwKKyAgICAgICAgImZzdGF0
YXQ2NCIsCisgICAgICAgICJmc3RhdGZzIiwKKyAgICAgICAgImZzdGF0ZnM2NCIsCisgICAgICAg
ICJmc3luYyIsCisgICAgICAgICJmdHJ1bmNhdGUiLAorICAgICAgICAiZnRydW5jYXRlNjQiLAor
ICAgICAgICAiZnV0ZXgiLAorICAgICAgICAiZnV0aW1lc2F0IiwKKyAgICAgICAgImdldGNwdSIs
CisgICAgICAgICJnZXRjd2QiLAorICAgICAgICAiZ2V0ZGVudHMiLAorICAgICAgICAiZ2V0ZGVu
dHM2NCIsCisgICAgICAgICJnZXRlZ2lkIiwKKyAgICAgICAgImdldGVnaWQzMiIsCisgICAgICAg
ICJnZXRldWlkIiwKKyAgICAgICAgImdldGV1aWQzMiIsCisgICAgICAgICJnZXRnaWQiLAorICAg
ICAgICAiZ2V0Z2lkMzIiLAorICAgICAgICAiZ2V0Z3JvdXBzIiwKKyAgICAgICAgImdldGdyb3Vw
czMyIiwKKyAgICAgICAgImdldGl0aW1lciIsCisgICAgICAgICJnZXRwZWVybmFtZSIsCisgICAg
ICAgICJnZXRwZ2lkIiwKKyAgICAgICAgImdldHBncnAiLAorICAgICAgICAiZ2V0cGlkIiwKKyAg
ICAgICAgImdldHBwaWQiLAorICAgICAgICAiZ2V0cHJpb3JpdHkiLAorICAgICAgICAiZ2V0cmFu
ZG9tIiwKKyAgICAgICAgImdldHJlc2dpZCIsCisgICAgICAgICJnZXRyZXNnaWQzMiIsCisgICAg
ICAgICJnZXRyZXN1aWQiLAorICAgICAgICAiZ2V0cmVzdWlkMzIiLAorICAgICAgICAiZ2V0cmxp
bWl0IiwKKyAgICAgICAgImdldF9yb2J1c3RfbGlzdCIsCisgICAgICAgICJnZXRydXNhZ2UiLAor
ICAgICAgICAiZ2V0c2lkIiwKKyAgICAgICAgImdldHNvY2tuYW1lIiwKKyAgICAgICAgImdldHNv
Y2tvcHQiLAorICAgICAgICAiZ2V0X3RocmVhZF9hcmVhIiwKKyAgICAgICAgImdldHRpZCIsCisg
ICAgICAgICJnZXR0aW1lb2ZkYXkiLAorICAgICAgICAiZ2V0dWlkIiwKKyAgICAgICAgImdldHVp
ZDMyIiwKKyAgICAgICAgImdldHhhdHRyIiwKKyAgICAgICAgImlub3RpZnlfYWRkX3dhdGNoIiwK
KyAgICAgICAgImlub3RpZnlfaW5pdCIsCisgICAgICAgICJpbm90aWZ5X2luaXQxIiwKKyAgICAg
ICAgImlub3RpZnlfcm1fd2F0Y2giLAorICAgICAgICAiaW9fY2FuY2VsIiwKKyAgICAgICAgImlv
Y3RsIiwKKyAgICAgICAgImlvX2Rlc3Ryb3kiLAorICAgICAgICAiaW9fZ2V0ZXZlbnRzIiwKKyAg
ICAgICAgImlvX3BnZXRldmVudHMiLAorICAgICAgICAiaW9wcmlvX2dldCIsCisgICAgICAgICJp
b3ByaW9fc2V0IiwKKyAgICAgICAgImlvX3NldHVwIiwKKyAgICAgICAgImlvX3N1Ym1pdCIsCisg
ICAgICAgICJpb191cmluZ19lbnRlciIsCisgICAgICAgICJpb191cmluZ19yZWdpc3RlciIsCisg
ICAgICAgICJpb191cmluZ19zZXR1cCIsCisgICAgICAgICJpcGMiLAorICAgICAgICAia2lsbCIs
CisgICAgICAgICJsY2hvd24iLAorICAgICAgICAibGNob3duMzIiLAorICAgICAgICAibGdldHhh
dHRyIiwKKyAgICAgICAgImxpbmsiLAorICAgICAgICAibGlua2F0IiwKKyAgICAgICAgImxpc3Rl
biIsCisgICAgICAgICJsaXN0eGF0dHIiLAorICAgICAgICAibGxpc3R4YXR0ciIsCisgICAgICAg
ICJfbGxzZWVrIiwKKyAgICAgICAgImxyZW1vdmV4YXR0ciIsCisgICAgICAgICJsc2VlayIsCisg
ICAgICAgICJsc2V0eGF0dHIiLAorICAgICAgICAibHN0YXQiLAorICAgICAgICAibHN0YXQ2NCIs
CisgICAgICAgICJtYWR2aXNlIiwKKyAgICAgICAgIm1lbWZkX2NyZWF0ZSIsCisgICAgICAgICJt
aW5jb3JlIiwKKyAgICAgICAgIm1rZGlyIiwKKyAgICAgICAgIm1rZGlyYXQiLAorICAgICAgICAi
bWtub2QiLAorICAgICAgICAibWtub2RhdCIsCisgICAgICAgICJtbG9jayIsCisgICAgICAgICJt
bG9jazIiLAorICAgICAgICAibWxvY2thbGwiLAorICAgICAgICAibW1hcCIsCisgICAgICAgICJt
bWFwMiIsCisgICAgICAgICJtcHJvdGVjdCIsCisgICAgICAgICJtcV9nZXRzZXRhdHRyIiwKKyAg
ICAgICAgIm1xX25vdGlmeSIsCisgICAgICAgICJtcV9vcGVuIiwKKyAgICAgICAgIm1xX3RpbWVk
cmVjZWl2ZSIsCisgICAgICAgICJtcV90aW1lZHNlbmQiLAorICAgICAgICAibXFfdW5saW5rIiwK
KyAgICAgICAgIm1yZW1hcCIsCisgICAgICAgICJtc2djdGwiLAorICAgICAgICAibXNnZ2V0IiwK
KyAgICAgICAgIm1zZ3JjdiIsCisgICAgICAgICJtc2dzbmQiLAorICAgICAgICAibXN5bmMiLAor
ICAgICAgICAibXVubG9jayIsCisgICAgICAgICJtdW5sb2NrYWxsIiwKKyAgICAgICAgIm11bm1h
cCIsCisgICAgICAgICJuYW5vc2xlZXAiLAorICAgICAgICAibmV3ZnN0YXRhdCIsCisgICAgICAg
ICJfbmV3c2VsZWN0IiwKKyAgICAgICAgIm9wZW4iLAorICAgICAgICAib3BlbmF0IiwKKyAgICAg
ICAgInBhdXNlIiwKKyAgICAgICAgInBpcGUiLAorICAgICAgICAicGlwZTIiLAorICAgICAgICAi
cG9sbCIsCisgICAgICAgICJwcG9sbCIsCisgICAgICAgICJwcmN0bCIsCisgICAgICAgICJwcmVh
ZDY0IiwKKyAgICAgICAgInByZWFkdiIsCisgICAgICAgICJwcmVhZHYyIiwKKyAgICAgICAgInBy
bGltaXQ2NCIsCisgICAgICAgICJwc2VsZWN0NiIsCisgICAgICAgICJwd3JpdGU2NCIsCisgICAg
ICAgICJwd3JpdGV2IiwKKyAgICAgICAgInB3cml0ZXYyIiwKKyAgICAgICAgInJlYWQiLAorICAg
ICAgICAicmVhZGFoZWFkIiwKKyAgICAgICAgInJlYWRsaW5rIiwKKyAgICAgICAgInJlYWRsaW5r
YXQiLAorICAgICAgICAicmVhZHYiLAorICAgICAgICAicmVjdiIsCisgICAgICAgICJyZWN2ZnJv
bSIsCisgICAgICAgICJyZWN2bW1zZyIsCisgICAgICAgICJyZWN2bXNnIiwKKyAgICAgICAgInJl
bWFwX2ZpbGVfcGFnZXMiLAorICAgICAgICAicmVtb3ZleGF0dHIiLAorICAgICAgICAicmVuYW1l
IiwKKyAgICAgICAgInJlbmFtZWF0IiwKKyAgICAgICAgInJlbmFtZWF0MiIsCisgICAgICAgICJy
ZXN0YXJ0X3N5c2NhbGwiLAorICAgICAgICAicm1kaXIiLAorICAgICAgICAicnRfc2lnYWN0aW9u
IiwKKyAgICAgICAgInJ0X3NpZ3BlbmRpbmciLAorICAgICAgICAicnRfc2lncHJvY21hc2siLAor
ICAgICAgICAicnRfc2lncXVldWVpbmZvIiwKKyAgICAgICAgInJ0X3NpZ3JldHVybiIsCisgICAg
ICAgICJydF9zaWdzdXNwZW5kIiwKKyAgICAgICAgInJ0X3NpZ3RpbWVkd2FpdCIsCisgICAgICAg
ICJydF90Z3NpZ3F1ZXVlaW5mbyIsCisgICAgICAgICJzY2hlZF9nZXRhZmZpbml0eSIsCisgICAg
ICAgICJzY2hlZF9nZXRhdHRyIiwKKyAgICAgICAgInNjaGVkX2dldHBhcmFtIiwKKyAgICAgICAg
InNjaGVkX2dldF9wcmlvcml0eV9tYXgiLAorICAgICAgICAic2NoZWRfZ2V0X3ByaW9yaXR5X21p
biIsCisgICAgICAgICJzY2hlZF9nZXRzY2hlZHVsZXIiLAorICAgICAgICAic2NoZWRfcnJfZ2V0
X2ludGVydmFsIiwKKyAgICAgICAgInNjaGVkX3NldGFmZmluaXR5IiwKKyAgICAgICAgInNjaGVk
X3NldGF0dHIiLAorICAgICAgICAic2NoZWRfc2V0cGFyYW0iLAorICAgICAgICAic2NoZWRfc2V0
c2NoZWR1bGVyIiwKKyAgICAgICAgInNjaGVkX3lpZWxkIiwKKyAgICAgICAgInNlY2NvbXAiLAor
ICAgICAgICAic2VsZWN0IiwKKyAgICAgICAgInNlbWN0bCIsCisgICAgICAgICJzZW1nZXQiLAor
ICAgICAgICAic2Vtb3AiLAorICAgICAgICAic2VtdGltZWRvcCIsCisgICAgICAgICJzZW5kIiwK
KyAgICAgICAgInNlbmRmaWxlIiwKKyAgICAgICAgInNlbmRmaWxlNjQiLAorICAgICAgICAic2Vu
ZG1tc2ciLAorICAgICAgICAic2VuZG1zZyIsCisgICAgICAgICJzZW5kdG8iLAorICAgICAgICAi
c2V0ZnNnaWQiLAorICAgICAgICAic2V0ZnNnaWQzMiIsCisgICAgICAgICJzZXRmc3VpZCIsCisg
ICAgICAgICJzZXRmc3VpZDMyIiwKKyAgICAgICAgInNldGdpZCIsCisgICAgICAgICJzZXRnaWQz
MiIsCisgICAgICAgICJzZXRncm91cHMiLAorICAgICAgICAic2V0Z3JvdXBzMzIiLAorICAgICAg
ICAic2V0aXRpbWVyIiwKKyAgICAgICAgInNldHBnaWQiLAorICAgICAgICAic2V0cHJpb3JpdHki
LAorICAgICAgICAic2V0cmVnaWQiLAorICAgICAgICAic2V0cmVnaWQzMiIsCisgICAgICAgICJz
ZXRyZXNnaWQiLAorICAgICAgICAic2V0cmVzZ2lkMzIiLAorICAgICAgICAic2V0cmVzdWlkIiwK
KyAgICAgICAgInNldHJlc3VpZDMyIiwKKyAgICAgICAgInNldHJldWlkIiwKKyAgICAgICAgInNl
dHJldWlkMzIiLAorICAgICAgICAic2V0cmxpbWl0IiwKKyAgICAgICAgInNldF9yb2J1c3RfbGlz
dCIsCisgICAgICAgICJzZXRzaWQiLAorICAgICAgICAic2V0c29ja29wdCIsCisgICAgICAgICJz
ZXRfdGhyZWFkX2FyZWEiLAorICAgICAgICAic2V0X3RpZF9hZGRyZXNzIiwKKyAgICAgICAgInNl
dHVpZCIsCisgICAgICAgICJzZXR1aWQzMiIsCisgICAgICAgICJzZXR4YXR0ciIsCisgICAgICAg
ICJzaG1hdCIsCisgICAgICAgICJzaG1jdGwiLAorICAgICAgICAic2htZHQiLAorICAgICAgICAi
c2htZ2V0IiwKKyAgICAgICAgInNodXRkb3duIiwKKyAgICAgICAgInNpZ2FsdHN0YWNrIiwKKyAg
ICAgICAgInNpZ25hbGZkIiwKKyAgICAgICAgInNpZ25hbGZkNCIsCisgICAgICAgICJzaWdwcm9j
bWFzayIsCisgICAgICAgICJzaWdyZXR1cm4iLAorICAgICAgICAic29ja2V0IiwKKyAgICAgICAg
InNvY2tldGNhbGwiLAorICAgICAgICAic29ja2V0cGFpciIsCisgICAgICAgICJzcGxpY2UiLAor
ICAgICAgICAic3RhdCIsCisgICAgICAgICJzdGF0NjQiLAorICAgICAgICAic3RhdGZzIiwKKyAg
ICAgICAgInN0YXRmczY0IiwKKyAgICAgICAgInN0YXR4IiwKKyAgICAgICAgInN5bWxpbmsiLAor
ICAgICAgICAic3ltbGlua2F0IiwKKyAgICAgICAgInN5bmMiLAorICAgICAgICAic3luY19maWxl
X3JhbmdlIiwKKyAgICAgICAgInN5bmNmcyIsCisgICAgICAgICJzeXNpbmZvIiwKKyAgICAgICAg
InRlZSIsCisgICAgICAgICJ0Z2tpbGwiLAorICAgICAgICAidGltZSIsCisgICAgICAgICJ0aW1l
cl9jcmVhdGUiLAorICAgICAgICAidGltZXJfZGVsZXRlIiwKKyAgICAgICAgInRpbWVyZmRfY3Jl
YXRlIiwKKyAgICAgICAgInRpbWVyZmRfZ2V0dGltZSIsCisgICAgICAgICJ0aW1lcmZkX3NldHRp
bWUiLAorICAgICAgICAidGltZXJfZ2V0b3ZlcnJ1biIsCisgICAgICAgICJ0aW1lcl9nZXR0aW1l
IiwKKyAgICAgICAgInRpbWVyX3NldHRpbWUiLAorICAgICAgICAidGltZXMiLAorICAgICAgICAi
dGtpbGwiLAorICAgICAgICAidHJ1bmNhdGUiLAorICAgICAgICAidHJ1bmNhdGU2NCIsCisgICAg
ICAgICJ1Z2V0cmxpbWl0IiwKKyAgICAgICAgInVtYXNrIiwKKyAgICAgICAgInVuYW1lIiwKKyAg
ICAgICAgInVubGluayIsCisgICAgICAgICJ1bmxpbmthdCIsCisgICAgICAgICJ1bnNoYXJlIiwK
KyAgICAgICAgInV0aW1lIiwKKyAgICAgICAgInV0aW1lbnNhdCIsCisgICAgICAgICJ1dGltZXMi
LAorICAgICAgICAidmZvcmsiLAorICAgICAgICAidm1zcGxpY2UiLAorICAgICAgICAid2FpdDQi
LAorICAgICAgICAid2FpdGlkIiwKKyAgICAgICAgIndhaXRwaWQiLAorICAgICAgICAid3JpdGUi
LAorICAgICAgICAid3JpdGV2IgorICAgICAgXSwKKyAgICAgICJhY3Rpb24iOiAiU0NNUF9BQ1Rf
QUxMT1ciLAorICAgICAgImFyZ3MiOiBbXSwKKyAgICAgICJjb21tZW50IjogIiIsCisgICAgICAi
aW5jbHVkZXMiOiBudWxsLAorICAgICAgImV4Y2x1ZGVzIjogbnVsbAorICAgIH0sCisgICAgewor
ICAgICAgIm5hbWVzIjogWworICAgICAgICAicHRyYWNlIgorICAgICAgXSwKKyAgICAgICJhY3Rp
b24iOiAiU0NNUF9BQ1RfQUxMT1ciLAorICAgICAgImFyZ3MiOiBudWxsLAorICAgICAgImNvbW1l
bnQiOiAiIiwKKyAgICAgICJpbmNsdWRlcyI6IHsKKyAgICAgICAgIm1pbktlcm5lbCI6ICI0Ljgi
CisgICAgICB9LAorICAgICAgImV4Y2x1ZGVzIjogbnVsbAorICAgIH0sCisgICAgeworICAgICAg
Im5hbWVzIjogWworICAgICAgICAicGVyc29uYWxpdHkiCisgICAgICBdLAorICAgICAgImFjdGlv
biI6ICJTQ01QX0FDVF9BTExPVyIsCisgICAgICAiYXJncyI6IFsKKyAgICAgICAgeworICAgICAg
ICAgICJpbmRleCI6IDAsCisgICAgICAgICAgInZhbHVlIjogMCwKKyAgICAgICAgICAidmFsdWVU
d28iOiAwLAorICAgICAgICAgICJvcCI6ICJTQ01QX0NNUF9FUSIKKyAgICAgICAgfQorICAgICAg
XSwKKyAgICAgICJjb21tZW50IjogIiIsCisgICAgICAiaW5jbHVkZXMiOiBudWxsLAorICAgICAg
ImV4Y2x1ZGVzIjogbnVsbAorICAgIH0sCisgICAgeworICAgICAgIm5hbWVzIjogWworICAgICAg
ICAicGVyc29uYWxpdHkiCisgICAgICBdLAorICAgICAgImFjdGlvbiI6ICJTQ01QX0FDVF9BTExP
VyIsCisgICAgICAiYXJncyI6IFsKKyAgICAgICAgeworICAgICAgICAgICJpbmRleCI6IDAsCisg
ICAgICAgICAgInZhbHVlIjogOCwKKyAgICAgICAgICAidmFsdWVUd28iOiAwLAorICAgICAgICAg
ICJvcCI6ICJTQ01QX0NNUF9FUSIKKyAgICAgICAgfQorICAgICAgXSwKKyAgICAgICJjb21tZW50
IjogIiIsCisgICAgICAiaW5jbHVkZXMiOiBudWxsLAorICAgICAgImV4Y2x1ZGVzIjogbnVsbAor
ICAgIH0sCisgICAgeworICAgICAgIm5hbWVzIjogWworICAgICAgICAicGVyc29uYWxpdHkiCisg
ICAgICBdLAorICAgICAgImFjdGlvbiI6ICJTQ01QX0FDVF9BTExPVyIsCisgICAgICAiYXJncyI6
IFsKKyAgICAgICAgeworICAgICAgICAgICJpbmRleCI6IDAsCisgICAgICAgICAgInZhbHVlIjog
MTMxMDcyLAorICAgICAgICAgICJ2YWx1ZVR3byI6IDAsCisgICAgICAgICAgIm9wIjogIlNDTVBf
Q01QX0VRIgorICAgICAgICB9CisgICAgICBdLAorICAgICAgImNvbW1lbnQiOiAiIiwKKyAgICAg
ICJpbmNsdWRlcyI6IG51bGwsCisgICAgICAiZXhjbHVkZXMiOiBudWxsCisgICAgfSwKKyAgICB7
CisgICAgICAibmFtZXMiOiBbCisgICAgICAgICJwZXJzb25hbGl0eSIKKyAgICAgIF0sCisgICAg
ICAiYWN0aW9uIjogIlNDTVBfQUNUX0FMTE9XIiwKKyAgICAgICJhcmdzIjogWworICAgICAgICB7
CisgICAgICAgICAgImluZGV4IjogMCwKKyAgICAgICAgICAidmFsdWUiOiAxMzEwODAsCisgICAg
ICAgICAgInZhbHVlVHdvIjogMCwKKyAgICAgICAgICAib3AiOiAiU0NNUF9DTVBfRVEiCisgICAg
ICAgIH0KKyAgICAgIF0sCisgICAgICAiY29tbWVudCI6ICIiLAorICAgICAgImluY2x1ZGVzIjog
bnVsbCwKKyAgICAgICJleGNsdWRlcyI6IG51bGwKKyAgICB9LAorICAgIHsKKyAgICAgICJuYW1l
cyI6IFsKKyAgICAgICAgInBlcnNvbmFsaXR5IgorICAgICAgXSwKKyAgICAgICJhY3Rpb24iOiAi
U0NNUF9BQ1RfQUxMT1ciLAorICAgICAgImFyZ3MiOiBbCisgICAgICAgIHsKKyAgICAgICAgICAi
aW5kZXgiOiAwLAorICAgICAgICAgICJ2YWx1ZSI6IDQyOTQ5NjcyOTUsCisgICAgICAgICAgInZh
bHVlVHdvIjogMCwKKyAgICAgICAgICAib3AiOiAiU0NNUF9DTVBfRVEiCisgICAgICAgIH0KKyAg
ICAgIF0sCisgICAgICAiY29tbWVudCI6ICIiLAorICAgICAgImluY2x1ZGVzIjogbnVsbCwKKyAg
ICAgICJleGNsdWRlcyI6IG51bGwKKyAgICB9LAorICAgIHsKKyAgICAgICJuYW1lcyI6IFsKKyAg
ICAgICAgInN5bmNfZmlsZV9yYW5nZTIiCisgICAgICBdLAorICAgICAgImFjdGlvbiI6ICJTQ01Q
X0FDVF9BTExPVyIsCisgICAgICAiYXJncyI6IFtdLAorICAgICAgImNvbW1lbnQiOiAiIiwKKyAg
ICAgICJpbmNsdWRlcyI6IHsKKyAgICAgICAgImFyY2hlcyI6IFsKKyAgICAgICAgICAicHBjNjRs
ZSIKKyAgICAgICAgXQorICAgICAgfSwKKyAgICAgICJleGNsdWRlcyI6IG51bGwKKyAgICB9LAor
ICAgIHsKKyAgICAgICJuYW1lcyI6IFsKKyAgICAgICAgImFybV9mYWR2aXNlNjRfNjQiLAorICAg
ICAgICAiYXJtX3N5bmNfZmlsZV9yYW5nZSIsCisgICAgICAgICJzeW5jX2ZpbGVfcmFuZ2UyIiwK
KyAgICAgICAgImJyZWFrcG9pbnQiLAorICAgICAgICAiY2FjaGVmbHVzaCIsCisgICAgICAgICJz
ZXRfdGxzIgorICAgICAgXSwKKyAgICAgICJhY3Rpb24iOiAiU0NNUF9BQ1RfQUxMT1ciLAorICAg
ICAgImFyZ3MiOiBbXSwKKyAgICAgICJjb21tZW50IjogIiIsCisgICAgICAiaW5jbHVkZXMiOiB7
CisgICAgICAgICJhcmNoZXMiOiBbCisgICAgICAgICAgImFybSIsCisgICAgICAgICAgImFybTY0
IgorICAgICAgICBdCisgICAgICB9LAorICAgICAgImV4Y2x1ZGVzIjogbnVsbAorICAgIH0sCisg
ICAgeworICAgICAgIm5hbWVzIjogWworICAgICAgICAiYXJjaF9wcmN0bCIKKyAgICAgIF0sCisg
ICAgICAiYWN0aW9uIjogIlNDTVBfQUNUX0FMTE9XIiwKKyAgICAgICJhcmdzIjogW10sCisgICAg
ICAiY29tbWVudCI6ICIiLAorICAgICAgImluY2x1ZGVzIjogeworICAgICAgICAiYXJjaGVzIjog
WworICAgICAgICAgICJhbWQ2NCIsCisgICAgICAgICAgIngzMiIKKyAgICAgICAgXQorICAgICAg
fSwKKyAgICAgICJleGNsdWRlcyI6IG51bGwKKyAgICB9LAorICAgIHsKKyAgICAgICJuYW1lcyI6
IFsKKyAgICAgICAgIm1vZGlmeV9sZHQiCisgICAgICBdLAorICAgICAgImFjdGlvbiI6ICJTQ01Q
X0FDVF9BTExPVyIsCisgICAgICAiYXJncyI6IFtdLAorICAgICAgImNvbW1lbnQiOiAiIiwKKyAg
ICAgICJpbmNsdWRlcyI6IHsKKyAgICAgICAgImFyY2hlcyI6IFsKKyAgICAgICAgICAiYW1kNjQi
LAorICAgICAgICAgICJ4MzIiLAorICAgICAgICAgICJ4ODYiCisgICAgICAgIF0KKyAgICAgIH0s
CisgICAgICAiZXhjbHVkZXMiOiBudWxsCisgICAgfSwKKyAgICB7CisgICAgICAibmFtZXMiOiBb
CisgICAgICAgICJzMzkwX3BjaV9tbWlvX3JlYWQiLAorICAgICAgICAiczM5MF9wY2lfbW1pb193
cml0ZSIsCisgICAgICAgICJzMzkwX3J1bnRpbWVfaW5zdHIiCisgICAgICBdLAorICAgICAgImFj
dGlvbiI6ICJTQ01QX0FDVF9BTExPVyIsCisgICAgICAiYXJncyI6IFtdLAorICAgICAgImNvbW1l
bnQiOiAiIiwKKyAgICAgICJpbmNsdWRlcyI6IHsKKyAgICAgICAgImFyY2hlcyI6IFsKKyAgICAg
ICAgICAiczM5MCIsCisgICAgICAgICAgInMzOTB4IgorICAgICAgICBdCisgICAgICB9LAorICAg
ICAgImV4Y2x1ZGVzIjogbnVsbAorICAgIH0sCisgICAgeworICAgICAgIm5hbWVzIjogWworICAg
ICAgICAib3Blbl9ieV9oYW5kbGVfYXQiCisgICAgICBdLAorICAgICAgImFjdGlvbiI6ICJTQ01Q
X0FDVF9BTExPVyIsCisgICAgICAiYXJncyI6IFtdLAorICAgICAgImNvbW1lbnQiOiAiIiwKKyAg
ICAgICJpbmNsdWRlcyI6IHsKKyAgICAgICAgImNhcHMiOiBbCisgICAgICAgICAgIkNBUF9EQUNf
UkVBRF9TRUFSQ0giCisgICAgICAgIF0KKyAgICAgIH0sCisgICAgICAiZXhjbHVkZXMiOiBudWxs
CisgICAgfSwKKyAgICB7CisgICAgICAibmFtZXMiOiBbCisgICAgICAgICJicGYiLAorICAgICAg
ICAiZmFub3RpZnlfaW5pdCIsCisgICAgICAgICJsb29rdXBfZGNvb2tpZSIsCisgICAgICAgICJt
b3VudCIsCisgICAgICAgICJuYW1lX3RvX2hhbmRsZV9hdCIsCisgICAgICAgICJwZXJmX2V2ZW50
X29wZW4iLAorICAgICAgICAicXVvdGFjdGwiLAorICAgICAgICAic2V0ZG9tYWlubmFtZSIsCisg
ICAgICAgICJzZXRob3N0bmFtZSIsCisgICAgICAgICJzZXRucyIsCisgICAgICAgICJzeXNsb2ci
LAorICAgICAgICAidW1vdW50IiwKKyAgICAgICAgInVtb3VudDIiCisgICAgICBdLAorICAgICAg
ImFjdGlvbiI6ICJTQ01QX0FDVF9BTExPVyIsCisgICAgICAiYXJncyI6IFtdLAorICAgICAgImNv
bW1lbnQiOiAiIiwKKyAgICAgICJpbmNsdWRlcyI6IHsKKyAgICAgICAgImNhcHMiOiBbCisgICAg
ICAgICAgIkNBUF9TWVNfQURNSU4iCisgICAgICAgIF0KKyAgICAgIH0sCisgICAgICAiZXhjbHVk
ZXMiOiBudWxsCisgICAgfSwKKyAgICB7CisgICAgICAibmFtZXMiOiBbCisgICAgICAgICJjbG9u
ZSIKKyAgICAgIF0sCisgICAgICAiYWN0aW9uIjogIlNDTVBfQUNUX0FMTE9XIiwKKyAgICAgICJh
cmdzIjogWworICAgICAgICB7CisgICAgICAgICAgImluZGV4IjogMCwKKyAgICAgICAgICAidmFs
dWUiOiAyMTE0MDYwMjg4LAorICAgICAgICAgICJ2YWx1ZVR3byI6IDAsCisgICAgICAgICAgIm9w
IjogIlNDTVBfQ01QX01BU0tFRF9FUSIKKyAgICAgICAgfQorICAgICAgXSwKKyAgICAgICJjb21t
ZW50IjogIiIsCisgICAgICAiaW5jbHVkZXMiOiBudWxsLAorICAgICAgImV4Y2x1ZGVzIjogewor
ICAgICAgICAiY2FwcyI6IFsKKyAgICAgICAgICAiQ0FQX1NZU19BRE1JTiIKKyAgICAgICAgXSwK
KyAgICAgICAgImFyY2hlcyI6IFsKKyAgICAgICAgICAiczM5MCIsCisgICAgICAgICAgInMzOTB4
IgorICAgICAgICBdCisgICAgICB9CisgICAgfSwKKyAgICB7CisgICAgICAibmFtZXMiOiBbCisg
ICAgICAgICJjbG9uZSIKKyAgICAgIF0sCisgICAgICAiYWN0aW9uIjogIlNDTVBfQUNUX0FMTE9X
IiwKKyAgICAgICJhcmdzIjogWworICAgICAgICB7CisgICAgICAgICAgImluZGV4IjogMSwKKyAg
ICAgICAgICAidmFsdWUiOiAyMTE0MDYwMjg4LAorICAgICAgICAgICJ2YWx1ZVR3byI6IDAsCisg
ICAgICAgICAgIm9wIjogIlNDTVBfQ01QX01BU0tFRF9FUSIKKyAgICAgICAgfQorICAgICAgXSwK
KyAgICAgICJjb21tZW50IjogInMzOTAgcGFyYW1ldGVyIG9yZGVyaW5nIGZvciBjbG9uZSBpcyBk
aWZmZXJlbnQiLAorICAgICAgImluY2x1ZGVzIjogeworICAgICAgICAiYXJjaGVzIjogWworICAg
ICAgICAgICJzMzkwIiwKKyAgICAgICAgICAiczM5MHgiCisgICAgICAgIF0KKyAgICAgIH0sCisg
ICAgICAiZXhjbHVkZXMiOiB7CisgICAgICAgICJjYXBzIjogWworICAgICAgICAgICJDQVBfU1lT
X0FETUlOIgorICAgICAgICBdCisgICAgICB9CisgICAgfSwKKyAgICB7CisgICAgICAibmFtZXMi
OiBbCisgICAgICAgICJyZWJvb3QiCisgICAgICBdLAorICAgICAgImFjdGlvbiI6ICJTQ01QX0FD
VF9BTExPVyIsCisgICAgICAiYXJncyI6IFtdLAorICAgICAgImNvbW1lbnQiOiAiIiwKKyAgICAg
ICJpbmNsdWRlcyI6IHsKKyAgICAgICAgImNhcHMiOiBbCisgICAgICAgICAgIkNBUF9TWVNfQk9P
VCIKKyAgICAgICAgXQorICAgICAgfSwKKyAgICAgICJleGNsdWRlcyI6IG51bGwKKyAgICB9LAor
ICAgIHsKKyAgICAgICJuYW1lcyI6IFsKKyAgICAgICAgImNocm9vdCIKKyAgICAgIF0sCisgICAg
ICAiYWN0aW9uIjogIlNDTVBfQUNUX0FMTE9XIiwKKyAgICAgICJhcmdzIjogW10sCisgICAgICAi
Y29tbWVudCI6ICIiLAorICAgICAgImluY2x1ZGVzIjogeworICAgICAgICAiY2FwcyI6IFsKKyAg
ICAgICAgICAiQ0FQX1NZU19DSFJPT1QiCisgICAgICAgIF0KKyAgICAgIH0sCisgICAgICAiZXhj
bHVkZXMiOiBudWxsCisgICAgfSwKKyAgICB7CisgICAgICAibmFtZXMiOiBbCisgICAgICAgICJk
ZWxldGVfbW9kdWxlIiwKKyAgICAgICAgImluaXRfbW9kdWxlIiwKKyAgICAgICAgImZpbml0X21v
ZHVsZSIsCisgICAgICAgICJxdWVyeV9tb2R1bGUiCisgICAgICBdLAorICAgICAgImFjdGlvbiI6
ICJTQ01QX0FDVF9BTExPVyIsCisgICAgICAiYXJncyI6IFtdLAorICAgICAgImNvbW1lbnQiOiAi
IiwKKyAgICAgICJpbmNsdWRlcyI6IHsKKyAgICAgICAgImNhcHMiOiBbCisgICAgICAgICAgIkNB
UF9TWVNfTU9EVUxFIgorICAgICAgICBdCisgICAgICB9LAorICAgICAgImV4Y2x1ZGVzIjogbnVs
bAorICAgIH0sCisgICAgeworICAgICAgIm5hbWVzIjogWworICAgICAgICAiYWNjdCIKKyAgICAg
IF0sCisgICAgICAiYWN0aW9uIjogIlNDTVBfQUNUX0FMTE9XIiwKKyAgICAgICJhcmdzIjogW10s
CisgICAgICAiY29tbWVudCI6ICIiLAorICAgICAgImluY2x1ZGVzIjogeworICAgICAgICAiY2Fw
cyI6IFsKKyAgICAgICAgICAiQ0FQX1NZU19QQUNDVCIKKyAgICAgICAgXQorICAgICAgfSwKKyAg
ICAgICJleGNsdWRlcyI6IG51bGwKKyAgICB9LAorICAgIHsKKyAgICAgICJuYW1lcyI6IFsKKyAg
ICAgICAgImtjbXAiLAorICAgICAgICAicHJvY2Vzc192bV9yZWFkdiIsCisgICAgICAgICJwcm9j
ZXNzX3ZtX3dyaXRldiIsCisgICAgICAgICJwdHJhY2UiCisgICAgICBdLAorICAgICAgImFjdGlv
biI6ICJTQ01QX0FDVF9BTExPVyIsCisgICAgICAiYXJncyI6IFtdLAorICAgICAgImNvbW1lbnQi
OiAiIiwKKyAgICAgICJpbmNsdWRlcyI6IHsKKyAgICAgICAgImNhcHMiOiBbCisgICAgICAgICAg
IkNBUF9TWVNfUFRSQUNFIgorICAgICAgICBdCisgICAgICB9LAorICAgICAgImV4Y2x1ZGVzIjog
bnVsbAorICAgIH0sCisgICAgeworICAgICAgIm5hbWVzIjogWworICAgICAgICAiaW9wbCIsCisg
ICAgICAgICJpb3Blcm0iCisgICAgICBdLAorICAgICAgImFjdGlvbiI6ICJTQ01QX0FDVF9BTExP
VyIsCisgICAgICAiYXJncyI6IFtdLAorICAgICAgImNvbW1lbnQiOiAiIiwKKyAgICAgICJpbmNs
dWRlcyI6IHsKKyAgICAgICAgImNhcHMiOiBbCisgICAgICAgICAgIkNBUF9TWVNfUkFXSU8iCisg
ICAgICAgIF0KKyAgICAgIH0sCisgICAgICAiZXhjbHVkZXMiOiBudWxsCisgICAgfSwKKyAgICB7
CisgICAgICAibmFtZXMiOiBbCisgICAgICAgICJzZXR0aW1lb2ZkYXkiLAorICAgICAgICAic3Rp
bWUiLAorICAgICAgICAiY2xvY2tfc2V0dGltZSIKKyAgICAgIF0sCisgICAgICAiYWN0aW9uIjog
IlNDTVBfQUNUX0FMTE9XIiwKKyAgICAgICJhcmdzIjogW10sCisgICAgICAiY29tbWVudCI6ICIi
LAorICAgICAgImluY2x1ZGVzIjogeworICAgICAgICAiY2FwcyI6IFsKKyAgICAgICAgICAiQ0FQ
X1NZU19USU1FIgorICAgICAgICBdCisgICAgICB9LAorICAgICAgImV4Y2x1ZGVzIjogbnVsbAor
ICAgIH0sCisgICAgeworICAgICAgIm5hbWVzIjogWworICAgICAgICAidmhhbmd1cCIKKyAgICAg
IF0sCisgICAgICAiYWN0aW9uIjogIlNDTVBfQUNUX0FMTE9XIiwKKyAgICAgICJhcmdzIjogW10s
CisgICAgICAiY29tbWVudCI6ICIiLAorICAgICAgImluY2x1ZGVzIjogeworICAgICAgICAiY2Fw
cyI6IFsKKyAgICAgICAgICAiQ0FQX1NZU19UVFlfQ09ORklHIgorICAgICAgICBdCisgICAgICB9
LAorICAgICAgImV4Y2x1ZGVzIjogbnVsbAorICAgIH0sCisgICAgeworICAgICAgIm5hbWVzIjog
WworICAgICAgICAiZ2V0X21lbXBvbGljeSIsCisgICAgICAgICJtYmluZCIsCisgICAgICAgICJz
ZXRfbWVtcG9saWN5IgorICAgICAgXSwKKyAgICAgICJhY3Rpb24iOiAiU0NNUF9BQ1RfQUxMT1ci
LAorICAgICAgImFyZ3MiOiBbXSwKKyAgICAgICJjb21tZW50IjogIiIsCisgICAgICAiaW5jbHVk
ZXMiOiB7CisgICAgICAgICJjYXBzIjogWworICAgICAgICAgICJDQVBfU1lTX05JQ0UiCisgICAg
ICAgIF0KKyAgICAgIH0sCisgICAgICAiZXhjbHVkZXMiOiBudWxsCisgICAgfSwKKyAgICB7Cisg
ICAgICAibmFtZXMiOiBbCisgICAgICAgICJzeXNsb2ciCisgICAgICBdLAorICAgICAgImFjdGlv
biI6ICJTQ01QX0FDVF9BTExPVyIsCisgICAgICAiYXJncyI6IFtdLAorICAgICAgImNvbW1lbnQi
OiAiIiwKKyAgICAgICJpbmNsdWRlcyI6IHsKKyAgICAgICAgImNhcHMiOiBbCisgICAgICAgICAg
IkNBUF9TWVNMT0ciCisgICAgICAgIF0KKyAgICAgIH0sCisgICAgICAiZXhjbHVkZXMiOiBudWxs
CisgICAgfQorICBdCit9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2RvY2tlci9zdGFydC5zaCBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvZG9ja2VyL3N0YXJ0LnNoCmluZGV4IDMz
MjViYjI0ZjU4Li4zNDI3NjcwY2M5ZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9kb2NrZXIvc3RhcnQuc2gKKysrIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9kb2NrZXIvc3RhcnQu
c2gKQEAgLTEsNDQgKzEsMjkgQEAKLSMgVGhpcyBzY3JpcHQgaXMgZW1iZWRkZWQgaW4gdGhlIGRv
Y2tlciBpbWFnZSwgYW5kIHNvIHRoZSBpbWFnZSBtdXN0IGJlIHVwZGF0ZWQgd2hlbiBjaGFuZ2Vz
Ci0jIHRvIHRoZSBzY3JpcHQgYXJlIG1hZGUuIFRvIGRvIHRoaXMsIGFzc3VtaW5nIHlvdSBoYXZl
IGRvY2tlciBpbnN0YWxsZWQ6Ci0jIEluIHRvb2xzL2RvY2tlci8gOgotIyAgIGRvY2tlciBidWls
ZCAuCi0jICAgZG9ja2VyIHBzICMgYW5kIGxvb2sgZm9yIHRoZSBpZCBvZiB0aGUgaW1hZ2UgeW91
IGp1c3QgYnVpbHQKLSMgICBkb2NrZXIgdGFnIDxpbWFnZT4gPHRhZz4KLSMgICBkb2NrZXIgcHVz
aCA8dGFnPgotIyBVcGRhdGUgdGhlIGBpbWFnZWAgc3BlY2lmaWVkIGluIHRoZSBwcm9qZWN0J3Mg
LnRhc2tjbHVzdGVyLnltbCBmaWxlCi0KLQogIyEvYmluL2Jhc2gKKwogc2V0IC1leAogCiBSRU1P
VEU9JHsxOi1odHRwczovL2dpdGh1Yi5jb20vd2ViLXBsYXRmb3JtLXRlc3RzL3dwdH0KLUJSQU5D
SD0kezI6LW1hc3Rlcn0KLVJFVj0kezM6LUZFVENIX0hFQUR9Ci1CUk9XU0VSPSR7NDotYWxsfQor
UkVGPSR7MjotbWFzdGVyfQogCiBjZCB+CiAKLSMgSW5pdGlhbGx5IHdlIGp1c3QgZmV0Y2ggNTAg
Y29tbWl0cyBpbiBvcmRlciB0byBzYXZlIHNldmVyYWwgbWludXRlcyBvZiBmZXRjaGluZwotZ2l0
IGNsb25lICR7UkVNT1RFfSAtLXNpbmdsZS1icmFuY2ggLS1icmFuY2ggJHtCUkFOQ0h9IC0tbm8t
Y2hlY2tvdXQgLXEgLS1kZXB0aD01MCB3ZWItcGxhdGZvcm0tdGVzdHMKLWNkIHdlYi1wbGF0Zm9y
bS10ZXN0cwotaWYgW1sgISBgZ2l0IHJldi1wYXJzZSAtLXZlcmlmeSAtcSAke1JFVn1gIF1dOwot
dGhlbgotICAgICMgQnV0IGlmIGZvciBzb21lIHJlYXNvbiB0aGUgY29tbWl0IHVuZGVyIHRlc3Qg
aXNuJ3QgaW4gdGhhdCByYW5nZSwgd2UgZ2l2ZSBpbiBhbmQKLSAgICAjIGZldGNoIGV2ZXJ5dGhp
bmcKLSAgICBnaXQgZmV0Y2ggLXEgLS11bnNoYWxsb3cgJHtSRU1PVEV9Ci0gICAgZ2l0IHJldi1w
YXJzZSAtLXZlcmlmeSAke1JFVn0KK2lmIFsgLWUgL2Rldi9rdm0gXTsgdGhlbgorICAgICMgSWYg
a3ZtIGlzIHByZXNlbnQgZW5zdXJlIHRoYXQgdGhlIHRlc3QgdXNlciBjYW4gYWNjZXNzIGl0Cisg
ICAgIyBJZGVhbGx5IHRoaXMgY291bGQgYmUgZG9uZSBieSBhZGRpbmcgdGhlIHRlc3QgdXNlciB0
byB0aGUKKyAgICAjIG93bmluZyBncm91cCwgYnV0IHRoZW4gd2UgbmVlZCB0byByZS1sb2dpbiB0
byBldmFsdWF0ZSB0aGUKKyAgICAjIGdyb3VwIG1lbWJlcnNoaXAuIFRoaXMgY2htb2QgZG9lc24n
dCBhZmZlY3QgdGhlIGhvc3QuCisgICAgc3VkbyBjaG1vZCBhK3J3IC9kZXYva3ZtCiBmaQotZ2l0
IGNoZWNrb3V0IC1iIGJ1aWxkICR7UkVWfQogCi1zdWRvIHNoIC1jICcuL3dwdCBtYWtlLWhvc3Rz
LWZpbGUgPj4gL2V0Yy9ob3N0cycKK2lmIFsgISAtZCB3ZWItcGxhdGZvcm0tdGVzdHMgXTsgdGhl
bgorICAgIG1rZGlyIHdlYi1wbGF0Zm9ybS10ZXN0cworICAgIGNkIHdlYi1wbGF0Zm9ybS10ZXN0
cwogCi1pZiBbWyAkQlJPV1NFUiA9PSAiY2hyb21lIiogXV0gfHwgW1sgIiRCUk9XU0VSIiA9PSBh
bGwgXV0KLXRoZW4KLSAgICAjIEluc3RhbGwgQ2hyb21lIGRldgotICAgIGRlYl9hcmNoaXZlPWdv
b2dsZS1jaHJvbWUtdW5zdGFibGVfY3VycmVudF9hbWQ2NC5kZWIKLSAgICB3Z2V0IGh0dHBzOi8v
ZGwuZ29vZ2xlLmNvbS9saW51eC9kaXJlY3QvJGRlYl9hcmNoaXZlCisgICAgZ2l0IGluaXQKKyAg
ICBnaXQgcmVtb3RlIGFkZCBvcmlnaW4gJHtSRU1PVEV9CiAKLSAgICBzdWRvIGFwdC1nZXQgLXFx
eSB1cGRhdGUgJiYgc3VkbyBnZGViaSAtbiAkZGViX2FyY2hpdmUKLWZpCisgICAgIyBJbml0aWFs
bHkgd2UganVzdCBmZXRjaCA1MCBjb21taXRzIGluIG9yZGVyIHRvIHNhdmUgc2V2ZXJhbCBtaW51
dGVzIG9mIGZldGNoaW5nCisgICAgcmV0cnkgZ2l0IGZldGNoIC0tcXVpZXQgLS1kZXB0aD01MCAt
LXRhZ3Mgb3JpZ2luICR7UkVGfTp0YXNrX2hlYWQKIAotc3VkbyBYdmZiICRESVNQTEFZIC1zY3Jl
ZW4gMCAke1NDUkVFTl9XSURUSH14JHtTQ1JFRU5fSEVJR0hUfXgke1NDUkVFTl9ERVBUSH0gJgor
ICAgIGdpdCBjaGVja291dCAtLXF1aWV0IHRhc2tfaGVhZAorZmkKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvZG9ja2VyL3czYy1p
bXBvcnQubG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy9kb2NrZXIvdzNjLWltcG9ydC5sb2cKaW5kZXggZWIzN2QwZDQ1NDguLmUxMWNiZmJiOTBk
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL2RvY2tlci93M2MtaW1wb3J0LmxvZworKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2RvY2tlci93M2MtaW1wb3J0LmxvZwpAQCAtMTUs
NCArMTUsMTAgQEAgTm9uZQogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiBMaXN0IG9mIGZpbGVzOgogL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvZG9ja2VyL0RvY2tl
cmZpbGUKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L2RvY2tlci9SRUFETUUubWQKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL2RvY2tlci9fX2luaXRfXy5weQorL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvZG9ja2VyL2NvbW1hbmRzLmpzb24KKy9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2RvY2tlci9mcm9udGVu
ZC5weQorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
ZG9ja2VyL3JldHJ5LnB5CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy9kb2NrZXIvc2VjY29tcC5qc29uCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9kb2NrZXIvc3RhcnQuc2gKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvZ2l0aWdub3Jl
L2dpdGlnbm9yZS5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvZ2l0aWdub3JlL2dpdGlnbm9yZS5weQppbmRleCA4NzAyY2VjN2RiNS4uZDVlYTRh
NmE4ZjMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvZ2l0aWdub3JlL2dpdGlnbm9yZS5weQorKysgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2dpdGlnbm9yZS9naXRpZ25vcmUucHkK
QEAgLTEsMjEgKzEsNDcgQEAKIGltcG9ydCByZQogaW1wb3J0IG9zCitpbXBvcnQgaXRlcnRvb2xz
Citmcm9tIHNpeCBpbXBvcnQgaXRlcnZhbHVlcywgaXRlcml0ZW1zCitmcm9tIGNvbGxlY3Rpb25z
IGltcG9ydCBkZWZhdWx0ZGljdAorCitNWVBZID0gRmFsc2UKK2lmIE1ZUFk6CisgICAgIyBNWVBZ
IGlzIHNldCB0byBUcnVlIHdoZW4gcnVuIHVuZGVyIE15cHkuCisgICAgZnJvbSB0eXBpbmcgaW1w
b3J0IEFueQorICAgIGZyb20gdHlwaW5nIGltcG9ydCBEaWN0CisgICAgZnJvbSB0eXBpbmcgaW1w
b3J0IEl0ZXJhYmxlCisgICAgZnJvbSB0eXBpbmcgaW1wb3J0IExpc3QKKyAgICBmcm9tIHR5cGlu
ZyBpbXBvcnQgTXV0YWJsZU1hcHBpbmcKKyAgICBmcm9tIHR5cGluZyBpbXBvcnQgT3B0aW9uYWwK
KyAgICBmcm9tIHR5cGluZyBpbXBvcnQgUGF0dGVybgorICAgIGZyb20gdHlwaW5nIGltcG9ydCBU
dXBsZQorICAgIGZyb20gdHlwaW5nIGltcG9ydCBUeXBlVmFyCisgICAgZnJvbSB0eXBpbmcgaW1w
b3J0IFVuaW9uCisgICAgZnJvbSB0eXBpbmcgaW1wb3J0IGNhc3QKKworICAgIFQgPSBUeXBlVmFy
KCdUJykKKwogCiBlbmRfc3BhY2UgPSByZS5jb21waWxlKHIiKFteXFxdXHMpKiQiKQogCiAKLWRl
ZiBmbm1hdGNoX3RyYW5zbGF0ZShwYXQsIHBhdGhfbmFtZT1GYWxzZSk6CitkZWYgZm5tYXRjaF90
cmFuc2xhdGUocGF0KToKKyAgICAjIHR5cGU6IChzdHIpIC0+IFR1cGxlW2Jvb2wsIFBhdHRlcm5b
c3RyXV0KICAgICBwYXJ0cyA9IFtdCi0gICAgc2VxID0gRmFsc2UKKyAgICBzZXEgPSBOb25lCiAg
ICAgaSA9IDAKLSAgICBpZiBwYXRbMF0gPT0gIi8iIG9yIHBhdGhfbmFtZToKKyAgICBhbnlfY2hh
ciA9ICJbXi9dIgorICAgIGlmIHBhdFswXSA9PSAiLyI6CiAgICAgICAgIHBhcnRzLmFwcGVuZCgi
XiIpCi0gICAgICAgIGFueV9jaGFyID0gIlteL10iCi0gICAgICAgIGlmIHBhdFswXSA9PSAiLyI6
Ci0gICAgICAgICAgICBwYXQgPSBwYXRbMTpdCisgICAgICAgIHBhdCA9IHBhdFsxOl0KICAgICBl
bHNlOgotICAgICAgICBhbnlfY2hhciA9ICIuIgorICAgICAgICAjIEJ5IGRlZmF1bHQgbWF0Y2gg
dGhlIGVudGlyZSBwYXRoIHVwIHRvIGEgLworICAgICAgICAjIGJ1dCBpZiAvIGRvZXNuJ3QgYXBw
ZWFyIGluIHRoZSBwYXR0ZXJuIHdlIHdpbGwgbWFyayBpcyBhcworICAgICAgICAjIGEgbmFtZSBw
YXR0ZXJuIGFuZCBqdXN0IHByb2R1Y2UgYSBwYXR0ZXJuIHRoYXQgbWF0Y2hlcyBhZ2FpbnN0Cisg
ICAgICAgICMgdGhlIGZpbGVuYW1lCiAgICAgICAgIHBhcnRzLmFwcGVuZCgiXig/Oi4qLyk/IikK
KworICAgIG5hbWVfcGF0dGVybiA9IFRydWUKICAgICBpZiBwYXRbLTFdID09ICIvIjoKICAgICAg
ICAgIyBJZiB0aGUgbGFzdCBjaGFyYWN0ZXIgaXMgLyBtYXRjaCB0aGlzIGRpcmVjdG9yeSBvciBh
bnkgc3ViZGlyZWN0b3J5CiAgICAgICAgIHBhdCA9IHBhdFs6LTFdCkBAIC0zMSwxMSArNTcsMTAg
QEAgZGVmIGZubWF0Y2hfdHJhbnNsYXRlKHBhdCwgcGF0aF9uYW1lPUZhbHNlKToKICAgICAgICAg
ICAgICAgICBwYXJ0cy5hcHBlbmQocmUuZXNjYXBlKGMpKQogICAgICAgICAgICAgZWxzZToKICAg
ICAgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yCi0gICAgICAgIGVsaWYgc2VxOgorICAgICAg
ICBlbGlmIHNlcSBpcyBub3QgTm9uZToKKyAgICAgICAgICAgICMgVE9ETzogdGhpcyBkb2Vzbid0
IHJlYWxseSBoYW5kbGUgaW52YWxpZCBzZXF1ZW5jZXMgaW4gdGhlIHJpZ2h0IHdheQogICAgICAg
ICAgICAgaWYgYyA9PSAiXSI6Ci0gICAgICAgICAgICAgICAgc2VxID0gRmFsc2UKLSAgICAgICAg
ICAgICAgICAjIEZpcnN0IHR3byBjYXNlcyBhcmUgdG8gZGVhbCB3aXRoIHRoZSBjYXNlIHdoZXJl
IC8gaXMgdGhlIG9ubHkgY2hhcmFjdGVyCi0gICAgICAgICAgICAgICAgIyBpbiB0aGUgc2VxdWVu
Y2UgYnV0IHBhdGhfbmFtZSBpcyBUcnVlIHNvIGl0IHNob3VsZG4ndCBtYXRjaCBhbnl0aGluZwor
ICAgICAgICAgICAgICAgIHNlcSA9IE5vbmUKICAgICAgICAgICAgICAgICBpZiBwYXJ0c1stMV0g
PT0gIlsiOgogICAgICAgICAgICAgICAgICAgICBwYXJ0cyA9IHBhcnRzWzotMV0KICAgICAgICAg
ICAgICAgICBlbGlmIHBhcnRzWy0xXSA9PSAiXiIgYW5kIHBhcnRzWy0yXSA9PSAiWyI6CkBAIC00
NCw0MSArNjksNTMgQEAgZGVmIGZubWF0Y2hfdHJhbnNsYXRlKHBhdCwgcGF0aF9uYW1lPUZhbHNl
KToKICAgICAgICAgICAgICAgICAgICAgcGFydHMuYXBwZW5kKGMpCiAgICAgICAgICAgICBlbGlm
IGMgPT0gIi0iOgogICAgICAgICAgICAgICAgIHBhcnRzLmFwcGVuZChjKQotICAgICAgICAgICAg
ZWxpZiBub3QgKHBhdGhfbmFtZSBhbmQgYyA9PSAiLyIpOgorICAgICAgICAgICAgZWxzZToKICAg
ICAgICAgICAgICAgICBwYXJ0cyArPSByZS5lc2NhcGUoYykKICAgICAgICAgZWxpZiBjID09ICJb
IjoKICAgICAgICAgICAgIHBhcnRzLmFwcGVuZCgiWyIpCiAgICAgICAgICAgICBpZiBpIDwgbGVu
KHBhdCkgLSAxIGFuZCBwYXRbaSsxXSBpbiAoIiEiLCAiXiIpOgogICAgICAgICAgICAgICAgIHBh
cnRzLmFwcGVuZCgiXiIpCiAgICAgICAgICAgICAgICAgaSArPSAxCi0gICAgICAgICAgICBzZXEg
PSBUcnVlCisgICAgICAgICAgICBzZXEgPSBpCiAgICAgICAgIGVsaWYgYyA9PSAiKiI6CiAgICAg
ICAgICAgICBpZiBpIDwgbGVuKHBhdCkgLSAxIGFuZCBwYXRbaSsxXSA9PSAiKiI6Ci0gICAgICAg
ICAgICAgICAgcGFydHMuYXBwZW5kKGFueV9jaGFyICsgIioiKQorICAgICAgICAgICAgICAgIGlm
IGkgPiAwIGFuZCBwYXRbaS0xXSAhPSAiLyI6CisgICAgICAgICAgICAgICAgICAgIHJhaXNlIFZh
bHVlRXJyb3IKKyAgICAgICAgICAgICAgICBwYXJ0cy5hcHBlbmQoIi4qIikKICAgICAgICAgICAg
ICAgICBpICs9IDEKLSAgICAgICAgICAgICAgICBpZiBpIDwgbGVuKHBhdCkgLSAxIGFuZCBwYXRb
aSsxXSA9PSAiKiI6CisgICAgICAgICAgICAgICAgaWYgaSA8IGxlbihwYXQpIC0gMSBhbmQgcGF0
W2krMV0gIT0gIi8iOgogICAgICAgICAgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yCiAgICAg
ICAgICAgICBlbHNlOgogICAgICAgICAgICAgICAgIHBhcnRzLmFwcGVuZChhbnlfY2hhciArICIq
IikKICAgICAgICAgZWxpZiBjID09ICI/IjoKICAgICAgICAgICAgIHBhcnRzLmFwcGVuZChhbnlf
Y2hhcikKKyAgICAgICAgZWxpZiBjID09ICIvIiBhbmQgbm90IHNlcToKKyAgICAgICAgICAgIG5h
bWVfcGF0dGVybiA9IEZhbHNlCisgICAgICAgICAgICBwYXJ0cy5hcHBlbmQoYykKICAgICAgICAg
ZWxzZToKICAgICAgICAgICAgIHBhcnRzLmFwcGVuZChyZS5lc2NhcGUoYykpCiAgICAgICAgIGkg
Kz0gMQogCi0gICAgaWYgc2VxOgorICAgIGlmIG5hbWVfcGF0dGVybjoKKyAgICAgICAgcGFydHNb
MF0gPSAiXiIKKworICAgIGlmIHNlcSBpcyBub3QgTm9uZToKICAgICAgICAgcmFpc2UgVmFsdWVF
cnJvcgogICAgIHBhcnRzLmFwcGVuZChzdWZmaXgpCiAgICAgdHJ5OgotICAgICAgICByZXR1cm4g
cmUuY29tcGlsZSgiIi5qb2luKHBhcnRzKSkKKyAgICAgICAgcmV0dXJuIG5hbWVfcGF0dGVybiwg
cmUuY29tcGlsZSgiIi5qb2luKHBhcnRzKSkKICAgICBleGNlcHQgRXhjZXB0aW9uOgotICAgICAg
ICByYWlzZQorICAgICAgICByYWlzZSBWYWx1ZUVycm9yCisKKyMgUmVnZXhwIG1hdGNoaW5nIHJ1
bGVzIHRoYXQgaGF2ZSB0byBiZSBjb252ZXJ0ZWQgdG8gcGF0dGVybnMKK3BhdHRlcm5fcmUgPSBy
ZS5jb21waWxlKHIiLipbXCpcW1w/XSIpCiAKIAogZGVmIHBhcnNlX2xpbmUobGluZSk6CisgICAg
IyB0eXBlOiAoc3RyKSAtPiBPcHRpb25hbFtUdXBsZVtib29sLCBib29sLCBib29sLCBVbmlvbltU
dXBsZVtzdHIsIC4uLl0sIFR1cGxlW2Jvb2wsIFBhdHRlcm5bc3RyXV1dXV0KICAgICBsaW5lID0g
bGluZS5yc3RyaXAoKQogICAgIGlmIG5vdCBsaW5lIG9yIGxpbmVbMF0gPT0gIiMiOgotICAgICAg
ICByZXR1cm4KKyAgICAgICAgcmV0dXJuIE5vbmUKIAogICAgIGludmVydCA9IGxpbmVbMF0gPT0g
IiEiCiAgICAgaWYgaW52ZXJ0OgpAQCAtODksMTMgKzEyNiwyMiBAQCBkZWYgcGFyc2VfbGluZShs
aW5lKToKICAgICBpZiBkaXJfb25seToKICAgICAgICAgbGluZSA9IGxpbmVbOi0xXQogCi0gICAg
cmV0dXJuIGludmVydCwgZGlyX29ubHksIGZubWF0Y2hfdHJhbnNsYXRlKGxpbmUsIGRpcl9vbmx5
KQorICAgICMgQ291bGQgbWFrZSBhIHNwZWNpYWwgY2FzZSBmb3IgKiovZm9vLCBidXQgd2UgZG9u
J3QgaGF2ZSBhbnkgcGF0dGVybnMgbGlrZSB0aGF0CisgICAgaWYgbm90IGludmVydCBhbmQgbm90
IHBhdHRlcm5fcmUubWF0Y2gobGluZSk6CisgICAgICAgIGxpdGVyYWwgPSBUcnVlCisgICAgICAg
IHBhdHRlcm4gPSB0dXBsZShsaW5lLnJzcGxpdCgiLyIsIDEpKSAgIyB0eXBlOiBVbmlvbltUdXBs
ZVtzdHIsIC4uLl0sIFR1cGxlW2Jvb2wsIFBhdHRlcm5bc3RyXV1dCisgICAgZWxzZToKKyAgICAg
ICAgcGF0dGVybiA9IGZubWF0Y2hfdHJhbnNsYXRlKGxpbmUpCisgICAgICAgIGxpdGVyYWwgPSBG
YWxzZQorCisgICAgcmV0dXJuIGludmVydCwgZGlyX29ubHksIGxpdGVyYWwsIHBhdHRlcm4KIAog
CiBjbGFzcyBQYXRoRmlsdGVyKG9iamVjdCk6Ci0gICAgZGVmIF9faW5pdF9fKHNlbGYsIHJvb3Qs
IGV4dHJhcz1Ob25lKToKKyAgICBkZWYgX19pbml0X18oc2VsZiwgcm9vdCwgZXh0cmFzPU5vbmUs
IGNhY2hlPU5vbmUpOgorICAgICAgICAjIHR5cGU6IChzdHIsIE9wdGlvbmFsW0xpc3Rbc3RyXV0s
IE9wdGlvbmFsW011dGFibGVNYXBwaW5nW3N0ciwgYm9vbF1dKSAtPiBOb25lCiAgICAgICAgIGlm
IHJvb3Q6Ci0gICAgICAgICAgICBpZ25vcmVfcGF0aCA9IG9zLnBhdGguam9pbihyb290LCAiLmdp
dGlnbm9yZSIpCisgICAgICAgICAgICBpZ25vcmVfcGF0aCA9IG9zLnBhdGguam9pbihyb290LCAi
LmdpdGlnbm9yZSIpICAjIHR5cGU6IE9wdGlvbmFsW3N0cl0KICAgICAgICAgZWxzZToKICAgICAg
ICAgICAgIGlnbm9yZV9wYXRoID0gTm9uZQogICAgICAgICBpZiBub3QgaWdub3JlX3BhdGggYW5k
IG5vdCBleHRyYXM6CkBAIC0xMDMsNTEgKzE0OSwxMzkgQEAgY2xhc3MgUGF0aEZpbHRlcihvYmpl
Y3QpOgogICAgICAgICAgICAgcmV0dXJuCiAgICAgICAgIHNlbGYudHJpdmlhbCA9IEZhbHNlCiAK
LSAgICAgICAgc2VsZi5ydWxlc19maWxlID0gW10KLSAgICAgICAgc2VsZi5ydWxlc19kaXIgPSBb
XQorICAgICAgICBzZWxmLmxpdGVyYWxzX2ZpbGUgPSBkZWZhdWx0ZGljdChkaWN0KSAgIyB0eXBl
OiBEaWN0W09wdGlvbmFsW3N0cl0sIERpY3Rbc3RyLCBMaXN0W1R1cGxlW2Jvb2wsIFBhdHRlcm5b
c3RyXV1dXV0KKyAgICAgICAgc2VsZi5saXRlcmFsc19kaXIgPSBkZWZhdWx0ZGljdChkaWN0KSAg
IyB0eXBlOiBEaWN0W09wdGlvbmFsW3N0cl0sIERpY3Rbc3RyLCBMaXN0W1R1cGxlW2Jvb2wsIFBh
dHRlcm5bc3RyXV1dXV0KKyAgICAgICAgc2VsZi5wYXR0ZXJuc19maWxlID0gW10gICMgdHlwZTog
TGlzdFtUdXBsZVtUdXBsZVtib29sLCBQYXR0ZXJuW3N0cl1dLCBMaXN0W1R1cGxlW2Jvb2wsIFBh
dHRlcm5bc3RyXV1dXV0KKyAgICAgICAgc2VsZi5wYXR0ZXJuc19kaXIgPSBbXSAgIyB0eXBlOiBM
aXN0W1R1cGxlW1R1cGxlW2Jvb2wsIFBhdHRlcm5bc3RyXV0sIExpc3RbVHVwbGVbYm9vbCwgUGF0
dGVybltzdHJdXV1dXQorICAgICAgICBzZWxmLmNhY2hlID0gY2FjaGUgb3Ige30gICMgdHlwZTog
TXV0YWJsZU1hcHBpbmdbc3RyLCBib29sXQogCiAgICAgICAgIGlmIGV4dHJhcyBpcyBOb25lOgog
ICAgICAgICAgICAgZXh0cmFzID0gW10KIAogICAgICAgICBpZiBpZ25vcmVfcGF0aCBhbmQgb3Mu
cGF0aC5leGlzdHMoaWdub3JlX3BhdGgpOgotICAgICAgICAgICAgc2VsZi5fcmVhZF9pZ25vcmUo
aWdub3JlX3BhdGgpCi0KLSAgICAgICAgZm9yIGl0ZW0gaW4gZXh0cmFzOgotICAgICAgICAgICAg
c2VsZi5fcmVhZF9saW5lKGl0ZW0pCisgICAgICAgICAgICBhcmdzID0gaWdub3JlX3BhdGgsIGV4
dHJhcyAgIyB0eXBlOiBUdXBsZVtPcHRpb25hbFtzdHJdLCBMaXN0W3N0cl1dCisgICAgICAgIGVs
c2U6CisgICAgICAgICAgICBhcmdzID0gTm9uZSwgZXh0cmFzCisgICAgICAgIHNlbGYuX3JlYWRf
aWdub3JlKCphcmdzKQogCi0gICAgZGVmIF9yZWFkX2lnbm9yZShzZWxmLCBpZ25vcmVfcGF0aCk6
Ci0gICAgICAgIHdpdGggb3BlbihpZ25vcmVfcGF0aCkgYXMgZjoKLSAgICAgICAgICAgIGZvciBs
aW5lIGluIGY6Ci0gICAgICAgICAgICAgICAgc2VsZi5fcmVhZF9saW5lKGxpbmUpCisgICAgZGVm
IF9yZWFkX2lnbm9yZShzZWxmLCBpZ25vcmVfcGF0aCwgZXh0cmFzKToKKyAgICAgICAgIyB0eXBl
OiAoT3B0aW9uYWxbc3RyXSwgTGlzdFtzdHJdKSAtPiBOb25lCisgICAgICAgIGlmIGlnbm9yZV9w
YXRoIGlzIG5vdCBOb25lOgorICAgICAgICAgICAgd2l0aCBvcGVuKGlnbm9yZV9wYXRoKSBhcyBm
OgorICAgICAgICAgICAgICAgIGZvciBsaW5lIGluIGY6CisgICAgICAgICAgICAgICAgICAgIHNl
bGYuX3JlYWRfbGluZShsaW5lKQorICAgICAgICBmb3IgbGluZSBpbiBleHRyYXM6CisgICAgICAg
ICAgICBzZWxmLl9yZWFkX2xpbmUobGluZSkKIAogICAgIGRlZiBfcmVhZF9saW5lKHNlbGYsIGxp
bmUpOgorICAgICAgICAjIHR5cGU6IChzdHIpIC0+IE5vbmUKICAgICAgICAgcGFyc2VkID0gcGFy
c2VfbGluZShsaW5lKQogICAgICAgICBpZiBub3QgcGFyc2VkOgogICAgICAgICAgICAgcmV0dXJu
Ci0gICAgICAgIGludmVydCwgZGlyX29ubHksIHJlZ2V4cCA9IHBhcnNlZAotICAgICAgICBpZiBk
aXJfb25seToKLSAgICAgICAgICAgIHNlbGYucnVsZXNfZGlyLmFwcGVuZCgocmVnZXhwLCBpbnZl
cnQpKQorICAgICAgICBpbnZlcnQsIGRpcl9vbmx5LCBsaXRlcmFsLCBydWxlID0gcGFyc2VkCisK
KyAgICAgICAgaWYgaW52ZXJ0OgorICAgICAgICAgICAgIyBGb3IgZXhjbHVkZSBydWxlcywgd2Ug
YXR0YWNoIHRoZSBydWxlcyB0byBhbGwgcHJlY2VlZGluZyBwYXR0ZXJucywgc28KKyAgICAgICAg
ICAgICMgdGhhdCB3ZSBjYW4gbWF0Y2ggcGF0dGVybnMgb3V0IG9mIG9yZGVyIGFuZCBjaGVjayBp
ZiB0aGV5IHdlcmUgbGF0ZXIKKyAgICAgICAgICAgICMgb3ZlcnJpZGVuIGJ5IGFuIGV4Y2x1ZGUg
cnVsZQorICAgICAgICAgICAgYXNzZXJ0IG5vdCBsaXRlcmFsCisgICAgICAgICAgICBpZiBNWVBZ
OgorICAgICAgICAgICAgICAgIHJ1bGUgPSBjYXN0KFR1cGxlW2Jvb2wsIFBhdHRlcm5bc3RyXV0s
IHJ1bGUpCisgICAgICAgICAgICBpZiBub3QgZGlyX29ubHk6CisgICAgICAgICAgICAgICAgcnVs
ZXNfaXRlciA9IGl0ZXJ0b29scy5jaGFpbigKKyAgICAgICAgICAgICAgICAgICAgaXRlcnRvb2xz
LmNoYWluKCooaXRlcml0ZW1zKGl0ZW0pIGZvciBpdGVtIGluIGl0ZXJ2YWx1ZXMoc2VsZi5saXRl
cmFsc19kaXIpKSksCisgICAgICAgICAgICAgICAgICAgIGl0ZXJ0b29scy5jaGFpbigqKGl0ZXJp
dGVtcyhpdGVtKSBmb3IgaXRlbSBpbiBpdGVydmFsdWVzKHNlbGYubGl0ZXJhbHNfZmlsZSkpKSwK
KyAgICAgICAgICAgICAgICAgICAgc2VsZi5wYXR0ZXJuc19kaXIsCisgICAgICAgICAgICAgICAg
ICAgIHNlbGYucGF0dGVybnNfZmlsZSkgICMgdHlwZTogSXRlcmFibGVbVHVwbGVbQW55LCBMaXN0
W1R1cGxlW2Jvb2wsIFBhdHRlcm5bc3RyXV1dXV0KKyAgICAgICAgICAgIGVsc2U6CisgICAgICAg
ICAgICAgICAgcnVsZXNfaXRlciA9IGl0ZXJ0b29scy5jaGFpbigKKyAgICAgICAgICAgICAgICAg
ICAgaXRlcnRvb2xzLmNoYWluKCooaXRlcml0ZW1zKGl0ZW0pIGZvciBpdGVtIGluIGl0ZXJ2YWx1
ZXMoc2VsZi5saXRlcmFsc19kaXIpKSksCisgICAgICAgICAgICAgICAgICAgIHNlbGYucGF0dGVy
bnNfZGlyKQorCisgICAgICAgICAgICBmb3IgcnVsZXMgaW4gcnVsZXNfaXRlcjoKKyAgICAgICAg
ICAgICAgICBydWxlc1sxXS5hcHBlbmQocnVsZSkKICAgICAgICAgZWxzZToKLSAgICAgICAgICAg
IHNlbGYucnVsZXNfZmlsZS5hcHBlbmQoKHJlZ2V4cCwgaW52ZXJ0KSkKKyAgICAgICAgICAgIGlm
IGxpdGVyYWw6CisgICAgICAgICAgICAgICAgaWYgTVlQWToKKyAgICAgICAgICAgICAgICAgICAg
cnVsZSA9IGNhc3QoVHVwbGVbc3RyLCAuLi5dLCBydWxlKQorICAgICAgICAgICAgICAgIGlmIGxl
bihydWxlKSA9PSAxOgorICAgICAgICAgICAgICAgICAgICBkaXJfbmFtZSwgcGF0dGVybiA9IE5v
bmUsIHJ1bGVbMF0gICMgdHlwZTogVHVwbGVbT3B0aW9uYWxbc3RyXSwgc3RyXQorICAgICAgICAg
ICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgICAgIGRpcl9uYW1lLCBwYXR0ZXJuID0gcnVs
ZQorICAgICAgICAgICAgICAgIHNlbGYubGl0ZXJhbHNfZGlyW2Rpcl9uYW1lXVtwYXR0ZXJuXSA9
IFtdCisgICAgICAgICAgICAgICAgaWYgbm90IGRpcl9vbmx5OgorICAgICAgICAgICAgICAgICAg
ICBzZWxmLmxpdGVyYWxzX2ZpbGVbZGlyX25hbWVdW3BhdHRlcm5dID0gW10KKyAgICAgICAgICAg
IGVsc2U6CisgICAgICAgICAgICAgICAgaWYgTVlQWToKKyAgICAgICAgICAgICAgICAgICAgcnVs
ZSA9IGNhc3QoVHVwbGVbYm9vbCwgUGF0dGVybltzdHJdXSwgcnVsZSkKKyAgICAgICAgICAgICAg
ICBzZWxmLnBhdHRlcm5zX2Rpci5hcHBlbmQoKHJ1bGUsIFtdKSkKKyAgICAgICAgICAgICAgICBp
ZiBub3QgZGlyX29ubHk6CisgICAgICAgICAgICAgICAgICAgIHNlbGYucGF0dGVybnNfZmlsZS5h
cHBlbmQoKHJ1bGUsIFtdKSkKIAotICAgIGRlZiBfX2NhbGxfXyhzZWxmLCBwYXRoKToKLSAgICAg
ICAgaWYgb3MucGF0aC5zZXAgIT0gIi8iOgotICAgICAgICAgICAgcGF0aCA9IHBhdGgucmVwbGFj
ZShvcy5wYXRoLnNlcCwgIi8iKQorICAgIGRlZiBmaWx0ZXIoc2VsZiwKKyAgICAgICAgICAgICAg
IGl0ZXJhdG9yICAjIHR5cGU6IEl0ZXJhYmxlW1R1cGxlW3N0ciwgTGlzdFtUdXBsZVtzdHIsIFRd
XSwgTGlzdFtUdXBsZVtzdHIsIFRdXV1dCisgICAgICAgICAgICAgICApOgorICAgICAgICAjIHR5
cGU6ICguLi4pIC0+IEl0ZXJhYmxlW1R1cGxlW3N0ciwgTGlzdFtUdXBsZVtzdHIsIFRdXSwgTGlz
dFtUdXBsZVtzdHIsIFRdXV1dCisgICAgICAgIGVtcHR5ID0ge30gICMgdHlwZTogRGljdFtBbnks
IEFueV0KKyAgICAgICAgZm9yIGRpcnBhdGgsIGRpcm5hbWVzLCBmaWxlbmFtZXMgaW4gaXRlcmF0
b3I6CisgICAgICAgICAgICBvcmlnX2RpcnBhdGggPSBkaXJwYXRoCisgICAgICAgICAgICBpZiBv
cy5wYXRoLnNlcCAhPSAiLyI6CisgICAgICAgICAgICAgICAgZGlycGF0aCA9IGRpcnBhdGgucmVw
bGFjZShvcy5wYXRoLnNlcCwgIi8iKQogCisgICAgICAgICAgICBrZWVwX2RpcnMgPSBbXSAgIyB0
eXBlOiBMaXN0W1R1cGxlW3N0ciwgVF1dCisgICAgICAgICAgICBrZWVwX2ZpbGVzID0gW10gICMg
dHlwZTogTGlzdFtUdXBsZVtzdHIsIFRdXQorCisgICAgICAgICAgICBmb3IgaXRlcl9pdGVtcywg
bGl0ZXJhbHMsIHBhdHRlcm5zLCB0YXJnZXQsIHN1ZmZpeCBpbiBbCisgICAgICAgICAgICAgICAg
ICAgIChkaXJuYW1lcywgc2VsZi5saXRlcmFsc19kaXIsIHNlbGYucGF0dGVybnNfZGlyLCBrZWVw
X2RpcnMsICIvIiksCisgICAgICAgICAgICAgICAgICAgIChmaWxlbmFtZXMsIHNlbGYubGl0ZXJh
bHNfZmlsZSwgc2VsZi5wYXR0ZXJuc19maWxlLCBrZWVwX2ZpbGVzLCAiIildOgorICAgICAgICAg
ICAgICAgIGZvciBpdGVtIGluIGl0ZXJfaXRlbXM6CisgICAgICAgICAgICAgICAgICAgIG5hbWUg
PSBpdGVtWzBdCisgICAgICAgICAgICAgICAgICAgIGlmIGRpcnBhdGg6CisgICAgICAgICAgICAg
ICAgICAgICAgICBwYXRoID0gIiVzLyVzIiAlIChkaXJwYXRoLCBuYW1lKSArIHN1ZmZpeAorICAg
ICAgICAgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgICAgICAgICAgcGF0aCA9IG5h
bWUgKyBzdWZmaXgKKyAgICAgICAgICAgICAgICAgICAgaWYgcGF0aCBpbiBzZWxmLmNhY2hlOgor
ICAgICAgICAgICAgICAgICAgICAgICAgaWYgbm90IHNlbGYuY2FjaGVbcGF0aF06CisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgdGFyZ2V0LmFwcGVuZChpdGVtKQorICAgICAgICAgICAgICAg
ICAgICAgICAgY29udGludWUKKyAgICAgICAgICAgICAgICAgICAgZm9yIHJ1bGVfZGlyIGluIFtO
b25lLCBkaXJwYXRoXToKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIG5hbWUgaW4gbGl0ZXJh
bHMuZ2V0KHJ1bGVfZGlyLCBlbXB0eSk6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXhj
bHVkZSA9IGxpdGVyYWxzW3J1bGVfZGlyXVtuYW1lXQorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGlmIG5vdCBhbnkocnVsZS5tYXRjaChuYW1lIGlmIG5hbWVfb25seSBlbHNlIHBhdGgpCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3IgbmFtZV9vbmx5LCBydWxl
IGluIGV4Y2x1ZGUpOgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIFNraXAgdGhp
cyBpdGVtCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuY2FjaGVbcGF0aF0g
PSBUcnVlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrCisgICAgICAgICAg
ICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgICAgICAgICBmb3IgKGNvbXBvbmVudF9v
bmx5LCBwYXR0ZXJuKSwgZXhjbHVkZSBpbiBwYXR0ZXJuczoKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBpZiBjb21wb25lbnRfb25seToKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgbWF0Y2ggPSBwYXR0ZXJuLm1hdGNoKG5hbWUpCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgZWxzZToKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF0Y2ggPSBwYXR0ZXJu
Lm1hdGNoKHBhdGgpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgbWF0Y2g6CisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIG5vdCBhbnkocnVsZS5tYXRjaChuYW1lIGlm
IG5hbWVfb25seSBlbHNlIHBhdGgpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgZm9yIG5hbWVfb25seSwgcnVsZSBpbiBleGNsdWRlKToKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICMgU2tpcCB0aGlzIGl0ZW0KKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHNlbGYuY2FjaGVbcGF0aF0gPSBUcnVlCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBicmVhaworICAgICAgICAgICAgICAgICAgICAgICAgZWxz
ZToKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmNhY2hlW3BhdGhdID0gRmFsc2UK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YXJnZXQuYXBwZW5kKGl0ZW0pCisKKyAgICAg
ICAgICAgIGRpcm5hbWVzWzpdID0ga2VlcF9kaXJzCisgICAgICAgICAgICBhc3NlcnQgIi5naXQi
IG5vdCBpbiBkaXJuYW1lcworICAgICAgICAgICAgeWllbGQgb3JpZ19kaXJwYXRoLCBkaXJuYW1l
cywga2VlcF9maWxlcworCisgICAgZGVmIF9fY2FsbF9fKHNlbGYsCisgICAgICAgICAgICAgICAg
IGl0ZXJhdG9yICAjIHR5cGU6IEl0ZXJhYmxlW1R1cGxlW3N0ciwgTGlzdFtUdXBsZVtzdHIsIFRd
XSwgTGlzdFtUdXBsZVtzdHIsIFRdXV1dCisgICAgICAgICAgICAgICAgICk6CisgICAgICAgICMg
dHlwZTogKC4uLikgLT4gSXRlcmFibGVbVHVwbGVbc3RyLCBMaXN0W1R1cGxlW3N0ciwgVF1dLCBM
aXN0W1R1cGxlW3N0ciwgVF1dXV0KICAgICAgICAgaWYgc2VsZi50cml2aWFsOgotICAgICAgICAg
ICAgcmV0dXJuIFRydWUKKyAgICAgICAgICAgIHJldHVybiBpdGVyYXRvcgogCi0gICAgICAgIHBh
dGhfaXNfZGlyID0gcGF0aFstMV0gPT0gIi8iCi0gICAgICAgIGlmIHBhdGhfaXNfZGlyOgotICAg
ICAgICAgICAgcGF0aCA9IHBhdGhbOi0xXQotICAgICAgICAgICAgcnVsZXMgPSBzZWxmLnJ1bGVz
X2RpcgotICAgICAgICBlbHNlOgotICAgICAgICAgICAgcnVsZXMgPSBzZWxmLnJ1bGVzX2ZpbGUK
LQotICAgICAgICBpbmNsdWRlID0gVHJ1ZQotICAgICAgICBmb3IgcmVnZXhwLCBpbnZlcnQgaW4g
cnVsZXM6Ci0gICAgICAgICAgICBpZiBub3QgaW5jbHVkZSBhbmQgaW52ZXJ0IGFuZCByZWdleHAu
bWF0Y2gocGF0aCk6Ci0gICAgICAgICAgICAgICAgaW5jbHVkZSA9IFRydWUKLSAgICAgICAgICAg
IGVsaWYgaW5jbHVkZSBhbmQgbm90IGludmVydCBhbmQgcmVnZXhwLm1hdGNoKHBhdGgpOgotICAg
ICAgICAgICAgICAgIGluY2x1ZGUgPSBGYWxzZQotICAgICAgICByZXR1cm4gaW5jbHVkZQorICAg
ICAgICByZXR1cm4gc2VsZi5maWx0ZXIoaXRlcmF0b3IpCisKKworZGVmIGhhc19pZ25vcmUoZGly
cGF0aCk6CisgICAgIyB0eXBlOiAoc3RyKSAtPiBib29sCisgICAgcmV0dXJuIG9zLnBhdGguZXhp
c3RzKG9zLnBhdGguam9pbihkaXJwYXRoLCAiLmdpdGlnbm9yZSIpKQpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9naXRpZ25vcmUv
dGVzdHMvdGVzdF9naXRpZ25vcmUucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL2dpdGlnbm9yZS90ZXN0cy90ZXN0X2dpdGlnbm9yZS5weQppbmRl
eCA3NWEwZDU4YjJjNi4uODEzMWE3MTg3NWIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvZ2l0aWdub3JlL3Rlc3RzL3Rlc3RfZ2l0
aWdub3JlLnB5CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvZ2l0aWdub3JlL3Rlc3RzL3Rlc3RfZ2l0aWdub3JlLnB5CkBAIC0yLDgxICsyLDEx
MCBAQCBpbXBvcnQgcHl0ZXN0CiAKIGZyb20gLi5naXRpZ25vcmUgaW1wb3J0IGZubWF0Y2hfdHJh
bnNsYXRlLCBQYXRoRmlsdGVyCiAKK01ZUFkgPSBGYWxzZQoraWYgTVlQWToKKyAgICAjIE1ZUFkg
aXMgc2V0IHRvIFRydWUgd2hlbiBydW4gdW5kZXIgTXlweS4KKyAgICBmcm9tIHR5cGluZyBpbXBv
cnQgVHVwbGUKKyAgICBmcm9tIHR5cGluZyBpbXBvcnQgSXRlcmFibGUKKyAgICBmcm9tIHR5cGlu
ZyBpbXBvcnQgU2VxdWVuY2UKKwogbWF0Y2hfZGF0YSA9IFsKLSAgICAoImZvbyIsIEZhbHNlLCBb
ImEvZm9vIiwgImZvbyJdKSwKLSAgICAoIiouYSIsIEZhbHNlLCBbImZvby5hIiwgImEvZm9vLmEi
LCAiYS9iL2Zvby5hIiwgImEuYS9mb28uYSJdKSwKLSAgICAoIioucHlbY29dIiwgRmFsc2UsIFsi
YS5weWMiLCAiYS5weW8iLCAiYS9iL2MucHljIl0pLAotICAgICgiXFwjKiIsIEZhbHNlLCBbIiNh
IiwgImEvI2IiXSksCi0gICAgKCIqIyIsIEZhbHNlLCBbImEjIiwgImEvYiMiLCAiI2EjIl0pLAot
ICAgICgiLyouYyIsIEZhbHNlLCBbImEuYyIsICIuYyJdKSwKKyAgICAoImZvbyIsIFRydWUsIFsi
YS9mb28iLCAiZm9vIl0pLAorICAgICgiKi5hIiwgVHJ1ZSwgWyJmb28uYSIsICJhL2Zvby5hIiwg
ImEvYi9mb28uYSIsICJhLmEvZm9vLmEiXSksCisgICAgKCIqLnB5W2NvXSIsIFRydWUsIFsiYS5w
eWMiLCAiYS5weW8iLCAiYS9iL2MucHljIl0pLAorICAgICgiXFwjKiIsIFRydWUsIFsiI2EiLCAi
YS8jYiJdKSwKKyAgICAoIiojIiwgVHJ1ZSwgWyJhIyIsICJhL2IjIiwgIiNhIyJdKSwKKyAgICAo
Ii8qLmMiLCBUcnVlLCBbImEuYyIsICIuYyJdKSwKICAgICAoIioqL2IiLCBGYWxzZSwgWyJhL2Ii
LCAiYS9jL2IiXSksCiAgICAgKCIqYiIsIFRydWUsIFsiYWIiXSksCi0gICAgKCIqKi9iIiwgVHJ1
ZSwgWyJhL2IiXSksCi0gICAgKCJhLyIsIFRydWUsIFsiYSIsICJhL2IiLCAiYS9iL2MiXSkKLV0K
KyAgICAoIipiIiwgVHJ1ZSwgWyJhL2IiXSksCisgICAgKCIqKi9iIiwgRmFsc2UsIFsiYS9iIl0p
LAorICAgICgiYS8iLCBUcnVlLCBbImEiXSksCisgICAgKCJhWy9dYiIsIFRydWUsIFtdKSwKKyAg
ICAoIioqL2IiLCBGYWxzZSwgWyJhL2MvYiJdKSwKKyAgICAoImE/YyIsIFRydWUsIFsiYWJjIl0p
LAorICAgICgiYVteYl1jIiwgVHJ1ZSwgWyJhY2MiXSksCisgICAgKCJhW2ItY11jIiwgVHJ1ZSwg
WyJhYmMiLCAiYWNjIl0pLAorICAgICgiYVteXWMiLCBUcnVlLCBbImFjIl0pLCAgIyBUaGlzIGlz
IHByb2JhYmx5IHdyb25nCisgICAgKCJhW15dYyIsIFRydWUsIFsiYWMiXSksICAjIFRoaXMgaXMg
cHJvYmFibHkgd3JvbmcKK10gICMgdHlwZTogU2VxdWVuY2VbVHVwbGVbc3RyLCBib29sLCBJdGVy
YWJsZVtzdHJdXV0KIAogbWlzbWF0Y2hfZGF0YSA9IFsKLSAgICAoImZvbyIsIEZhbHNlLCBbImZv
b2IiLCAiYWZvbyJdKSwKLSAgICAoIiouYSIsIEZhbHNlLCBbImEiLCAiZm9vOmEiLCAiYS5hL2Zv
byJdKSwKLSAgICAoIioucHlbY29dIiwgRmFsc2UsIFsiYS5weWQiLCAicHlvIl0pLAotICAgICgi
LyouYyIsIEZhbHNlLCBbImEvYi5jIl0pLAotICAgICgiKmIiLCBUcnVlLCBbImEvYiJdKSwKLSAg
ICAoIioqYiIsIFRydWUsIFsiYS9iIl0pLAotICAgICgiYVsvXWIiLCBUcnVlLCBbImEvYiJdKSwK
LSAgICAoIioqL2IiLCBUcnVlLCBbImEvYy9iIl0pLAotICAgICgiYSIsIFRydWUsIFsiYWIiXSkK
LV0KKyAgICAoImZvbyIsIFRydWUsIFsiZm9vYiIsICJhZm9vIl0pLAorICAgICgiKi5hIiwgVHJ1
ZSwgWyJhIiwgImZvbzphIiwgImEuYS9mb28iXSksCisgICAgKCIqLnB5W2NvXSIsIFRydWUsIFsi
YS5weWQiLCAicHlvIiwgImEucHkiXSksCisgICAgKCJhIiwgVHJ1ZSwgWyJhYiJdKSwKKyAgICAo
ImE/YyIsIFRydWUsIFsiYWMiLCAiYWJiYyJdKSwKKyAgICAoImFbXmJdYyIsIFRydWUsIFsiYWJj
Il0pLAorICAgICgiYVtiLWNdYyIsIFRydWUsIFsiYWRjIl0pLAorXSAgIyB0eXBlOiBTZXF1ZW5j
ZVtUdXBsZVtzdHIsIGJvb2wsIEl0ZXJhYmxlW3N0cl1dXQogCiBpbnZhbGlkX2RhdGEgPSBbCiAg
ICAgIlthIiwKICAgICAiKioqL2ZvbyIsCiAgICAgImFcXCIsCisgICAgIioqYiIsCisgICAgImIq
Ki8iLAorICAgICJbW10iCiBdCiAKIGZpbHRlcl9kYXRhID0gWwotICAgICgiZm9vIiwgVHJ1ZSks
Ci0gICAgKCJhIiwgRmFsc2UpLAotICAgICgiYS9iIiwgRmFsc2UpLAotICAgICgiYS9jIiwgVHJ1
ZSksCi0gICAgKCJhL2MvIiwgRmFsc2UpLAotICAgICgiYy9iIiwgVHJ1ZSkKKyAgICAoWyJmb28i
LCAiYmFyLyIsICIvYSIsICIqLnB5Il0sCisgICAgIFsoIiIsIFsiZm9vIiwgImJhciIsICJiYXoi
XSwgWyJhIl0pLAorICAgICAgKCJiYXoiLCBbImEiXSwgWyJmb28iLCAiYmFyIl0pXSwKKyAgICAg
WyhbImJheiJdLCBbXSksCisgICAgICAoWyJhIl0sIFsiYmFyIl0pXSksCisgICAgKFsiI2ZvbyIs
ICIiLCAiYSoiLCAiIWEucHkiXSwKKyAgICAgWygiIiwgWyJmb28iXSwgWyJhIiwgImEuZm9vIiwg
ImEucHkiXSldLAorICAgICBbKFsiZm9vIl0sIFsiYS5weSJdKV0pLAorICAgIChbImEuZm9vIiwg
IiFhLnB5Il0sCisgICAgIFsoIiIsIFsiZm9vIl0sIFsiYSIsICJhLmZvbyIsICJhLnB5Il0pXSwK
KyAgICAgWyhbImZvbyJdLCBbImEiLCAiYS5weSJdKV0pLAogXQogCiAKIGRlZiBleHBhbmRfZGF0
YShjb21wYWN0X2RhdGEpOgotICAgIGZvciBwYXR0ZXJuLCBwYXRoX25hbWUsIGlucHV0cyBpbiBj
b21wYWN0X2RhdGE6CisgICAgIyB0eXBlOiAoU2VxdWVuY2VbVHVwbGVbc3RyLCBib29sLCBJdGVy
YWJsZVtzdHJdXV0pIC0+IEl0ZXJhYmxlW1R1cGxlW3N0ciwgYm9vbCwgc3RyXV0KKyAgICBmb3Ig
cGF0dGVybiwgbmFtZV9vbmx5LCBpbnB1dHMgaW4gY29tcGFjdF9kYXRhOgogICAgICAgICBmb3Ig
aW5wdXQgaW4gaW5wdXRzOgotICAgICAgICAgICAgeWllbGQgcGF0dGVybiwgaW5wdXQsIHBhdGhf
bmFtZQorICAgICAgICAgICAgeWllbGQgcGF0dGVybiwgbmFtZV9vbmx5LCBpbnB1dAogCiAKLUBw
eXRlc3QubWFyay5wYXJhbWV0cml6ZSgicGF0dGVybiwgaW5wdXQsIHBhdGhfbmFtZSIsIGV4cGFu
ZF9kYXRhKG1hdGNoX2RhdGEpKQotZGVmIHRlc3RzX21hdGNoKHBhdHRlcm4sIGlucHV0LCBwYXRo
X25hbWUpOgotICAgIHJlZ2V4cCA9IGZubWF0Y2hfdHJhbnNsYXRlKHBhdHRlcm4sIHBhdGhfbmFt
ZSkKK0BweXRlc3QubWFyay5wYXJhbWV0cml6ZSgicGF0dGVybiwgbmFtZV9vbmx5LCBpbnB1dCIs
IGV4cGFuZF9kYXRhKG1hdGNoX2RhdGEpKQorZGVmIHRlc3RzX21hdGNoKHBhdHRlcm4sIG5hbWVf
b25seSwgaW5wdXQpOgorICAgIG5hbWVfb25seV9yZXN1bHQsIHJlZ2V4cCA9IGZubWF0Y2hfdHJh
bnNsYXRlKHBhdHRlcm4pCisgICAgYXNzZXJ0IG5hbWVfb25seV9yZXN1bHQgPT0gbmFtZV9vbmx5
CisgICAgaWYgbmFtZV9vbmx5OgorICAgICAgICBpbnB1dCA9IGlucHV0LnJzcGxpdCgiLyIsIDEp
Wy0xXQogICAgIGFzc2VydCByZWdleHAubWF0Y2goaW5wdXQpIGlzIG5vdCBOb25lCiAKIAotQHB5
dGVzdC5tYXJrLnBhcmFtZXRyaXplKCJwYXR0ZXJuLCBpbnB1dCwgcGF0aF9uYW1lIiwgZXhwYW5k
X2RhdGEobWlzbWF0Y2hfZGF0YSkpCi1kZWYgdGVzdHNfbm9fbWF0Y2gocGF0dGVybiwgaW5wdXQs
IHBhdGhfbmFtZSk6Ci0gICAgcmVnZXhwID0gZm5tYXRjaF90cmFuc2xhdGUocGF0dGVybiwgcGF0
aF9uYW1lKQorQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKCJwYXR0ZXJuLCBuYW1lX29ubHksIGlu
cHV0IiwgZXhwYW5kX2RhdGEobWlzbWF0Y2hfZGF0YSkpCitkZWYgdGVzdHNfbm9fbWF0Y2gocGF0
dGVybiwgbmFtZV9vbmx5LCBpbnB1dCk6CisgICAgbmFtZV9vbmx5X3Jlc3VsdCwgcmVnZXhwID0g
Zm5tYXRjaF90cmFuc2xhdGUocGF0dGVybikKKyAgICBhc3NlcnQgbmFtZV9vbmx5X3Jlc3VsdCA9
PSBuYW1lX29ubHkKKyAgICBpZiBuYW1lX29ubHk6CisgICAgICAgIGlucHV0ID0gaW5wdXQucnNw
bGl0KCIvIiwgMSlbLTFdCiAgICAgYXNzZXJ0IHJlZ2V4cC5tYXRjaChpbnB1dCkgaXMgTm9uZQog
CiAKIEBweXRlc3QubWFyay5wYXJhbWV0cml6ZSgicGF0dGVybiIsIGludmFsaWRfZGF0YSkKIGRl
ZiB0ZXN0c19pbnZhbGlkKHBhdHRlcm4pOgogICAgIHdpdGggcHl0ZXN0LnJhaXNlcyhWYWx1ZUVy
cm9yKToKLSAgICAgICAgZm5tYXRjaF90cmFuc2xhdGUocGF0dGVybiwgRmFsc2UpCi0gICAgd2l0
aCBweXRlc3QucmFpc2VzKFZhbHVlRXJyb3IpOgotICAgICAgICBmbm1hdGNoX3RyYW5zbGF0ZShw
YXR0ZXJuLCBUcnVlKQotCi0KLUBweXRlc3QubWFyay5wYXJhbWV0cml6ZSgicGF0aCwgZXhwZWN0
ZWQiLCBmaWx0ZXJfZGF0YSkKLWRlZiB0ZXN0X3BhdGhfZmlsdGVyKHBhdGgsIGV4cGVjdGVkKToK
LSAgICBleHRyYXMgPSBbCi0gICAgICAgICIjZm9vIiwKLSAgICAgICAgImEgICIsCi0gICAgICAg
ICIqKi9iIiwKLSAgICAgICAgImEvYy8iLAotICAgICAgICAiIWMvYiIsCi0gICAgXQotICAgIGYg
PSBQYXRoRmlsdGVyKE5vbmUsIGV4dHJhcykKLSAgICBhc3NlcnQgZihwYXRoKSA9PSBleHBlY3Rl
ZAorICAgICAgICBmbm1hdGNoX3RyYW5zbGF0ZShwYXR0ZXJuKQorCisKK0BweXRlc3QubWFyay5w
YXJhbWV0cml6ZSgicnVsZXMsIGlucHV0LCBleHBlY3RlZCIsIGZpbHRlcl9kYXRhKQorZGVmIHRl
c3RfcGF0aF9maWx0ZXIocnVsZXMsIGlucHV0LCBleHBlY3RlZCk6CisgICAgZiA9IFBhdGhGaWx0
ZXIoTm9uZSwgcnVsZXMpCisgICAgIyBBZGQgc29tZSBmYWtlIHN0YXQgZGF0YQorICAgIGZvciBp
LCBpdGVtIGluIGVudW1lcmF0ZShpbnB1dCk6CisgICAgICAgIHJlcGwgPSBbaW5wdXRbaV1bMF1d
CisgICAgICAgIGZvciBqIGluIFsxLCAyXToKKyAgICAgICAgICAgIHJlcGwuYXBwZW5kKFsobmFt
ZSwgTm9uZSkgZm9yIG5hbWUgaW4gaW5wdXRbaV1bal1dKQorICAgICAgICBpbnB1dFtpXSA9IHR1
cGxlKHJlcGwpCisKKyAgICBmb3IgaSwgb3V0cHV0IGluIGVudW1lcmF0ZShmKGlucHV0KSk6Cisg
ICAgICAgIGFzc2VydCBvdXRwdXRbMF0gPT0gaW5wdXRbaV1bMF0KKyAgICAgICAgZm9yIGogaW4g
WzEsIDJdOgorICAgICAgICAgICAgYXNzZXJ0IFtpdGVtWzBdIGZvciBpdGVtIGluIG91dHB1dFtq
XV0gPT0gZXhwZWN0ZWRbaV1bai0xXQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9saW50L2ZubWF0Y2gucHkgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2xpbnQvZm5tYXRjaC5weQpp
bmRleCAyZmUzZWIwYWE5ZS4uM2Q5ZWUyM2M5N2UgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvbGludC9mbm1hdGNoLnB5CisrKyBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvbGludC9m
bm1hdGNoLnB5CkBAIC0zLDE3ICszLDI2IEBAIGZyb20gX19mdXR1cmVfXyBpbXBvcnQgYWJzb2x1
dGVfaW1wb3J0CiBpbXBvcnQgZm5tYXRjaCBhcyBfc3RkbGliX2ZubWF0Y2gKIGltcG9ydCBvcwog
CitNWVBZID0gRmFsc2UKK2lmIE1ZUFk6CisgICAgIyBNWVBZIGlzIHNldCB0byBUcnVlIHdoZW4g
cnVuIHVuZGVyIE15cHkuCisgICAgZnJvbSB0eXBpbmcgaW1wb3J0IEFueVN0cgorICAgIGZyb20g
dHlwaW5nIGltcG9ydCBJdGVyYWJsZQorICAgIGZyb20gdHlwaW5nIGltcG9ydCBMaXN0CisKIAog
X19hbGxfXyA9IFsiZm5tYXRjaCIsICJmbm1hdGNoY2FzZSIsICJmaWx0ZXIiLCAidHJhbnNsYXRl
Il0KIAogCiBkZWYgZm5tYXRjaChuYW1lLCBwYXQpOgorICAgICMgdHlwZTogKEFueVN0ciwgQW55
U3RyKSAtPiBib29sCiAgICAgbmFtZSA9IG9zLnBhdGgubm9ybWNhc2UobmFtZSkKICAgICBwYXQg
PSBvcy5wYXRoLm5vcm1jYXNlKHBhdCkKICAgICByZXR1cm4gZm5tYXRjaGNhc2UobmFtZSwgcGF0
KQogCiAKIGRlZiBmbm1hdGNoY2FzZShuYW1lLCBwYXQpOgorICAgICMgdHlwZTogKEFueVN0ciwg
QW55U3RyKSAtPiBib29sCiAgICAgaWYgJz8nIG5vdCBpbiBwYXQgYW5kICdbJyBub3QgaW4gcGF0
OgogICAgICAgICB3aWxkY2FyZHMgPSBwYXQuY291bnQoIioiKQogICAgICAgICBpZiB3aWxkY2Fy
ZHMgPT0gMDoKQEAgLTI2LDYgKzM1LDcgQEAgZGVmIGZubWF0Y2hjYXNlKG5hbWUsIHBhdCk6CiAK
IAogZGVmIGZpbHRlcihuYW1lcywgcGF0KToKKyAgICAjIHR5cGU6IChJdGVyYWJsZVtBbnlTdHJd
LCBBbnlTdHIpIC0+IExpc3RbQW55U3RyXQogICAgIHJldHVybiBbbiBmb3IgbiBpbiBuYW1lcyBp
ZiBmbm1hdGNoKG4sIHBhdCldCiAKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9saW50L2xpbnQucHkgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2xpbnQvbGludC5weQppbmRleCAz
ZjQzYjM3M2FiZS4uYzdjMDE5NzIxM2MgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvbGludC9saW50LnB5CisrKyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvbGludC9saW50LnB5CkBA
IC00LDYgKzQsNyBAQCBpbXBvcnQgYWJjCiBpbXBvcnQgYXJncGFyc2UKIGltcG9ydCBhc3QKIGlt
cG9ydCBqc29uCitpbXBvcnQgbG9nZ2luZwogaW1wb3J0IG9zCiBpbXBvcnQgcmUKIGltcG9ydCBz
dWJwcm9jZXNzCkBAIC0xMywzMiArMTQsNTQgQEAgaW1wb3J0IHRlbXBmaWxlCiBmcm9tIGNvbGxl
Y3Rpb25zIGltcG9ydCBkZWZhdWx0ZGljdAogCiBmcm9tIC4gaW1wb3J0IGZubWF0Y2gKK2Zyb20g
LiBpbXBvcnQgcnVsZXMKIGZyb20gLi4gaW1wb3J0IGxvY2FscGF0aHMKIGZyb20gLi5naXRpZ25v
cmUuZ2l0aWdub3JlIGltcG9ydCBQYXRoRmlsdGVyCiBmcm9tIC4ud3B0IGltcG9ydCB0ZXN0Zmls
ZXMKK2Zyb20gLi5tYW5pZmVzdC52Y3MgaW1wb3J0IHdhbGsKIAotZnJvbSBtYW5pZmVzdC5zb3Vy
Y2VmaWxlIGltcG9ydCBTb3VyY2VGaWxlLCBqc19tZXRhX3JlLCBweXRob25fbWV0YV9yZSwgc3Bh
Y2VfY2hhcnMsIGdldF9hbnlfdmFyaWFudHMsIGdldF9kZWZhdWx0X2FueV92YXJpYW50cwotZnJv
bSBzaXggaW1wb3J0IGJpbmFyeV90eXBlLCBpdGVyaXRlbXMsIGl0ZXJ2YWx1ZXMKK2Zyb20gLi5t
YW5pZmVzdC5zb3VyY2VmaWxlIGltcG9ydCBTb3VyY2VGaWxlLCBqc19tZXRhX3JlLCBweXRob25f
bWV0YV9yZSwgc3BhY2VfY2hhcnMsIGdldF9hbnlfdmFyaWFudHMsIGdldF9kZWZhdWx0X2FueV92
YXJpYW50cworZnJvbSBzaXggaW1wb3J0IGJpbmFyeV90eXBlLCBpdGVyaXRlbXMsIGl0ZXJ2YWx1
ZXMsIHdpdGhfbWV0YWNsYXNzCiBmcm9tIHNpeC5tb3ZlcyBpbXBvcnQgcmFuZ2UKIGZyb20gc2l4
Lm1vdmVzLnVybGxpYi5wYXJzZSBpbXBvcnQgdXJsc3BsaXQsIHVybGpvaW4KIAotaW1wb3J0IGxv
Z2dpbmcKK01ZUFkgPSBGYWxzZQoraWYgTVlQWToKKyAgICAjIE1ZUFkgaXMgc2V0IHRvIFRydWUg
d2hlbiBydW4gdW5kZXIgTXlweS4KKyAgICBmcm9tIHR5cGluZyBpbXBvcnQgQW55CisgICAgZnJv
bSB0eXBpbmcgaW1wb3J0IERpY3QKKyAgICBmcm9tIHR5cGluZyBpbXBvcnQgSU8KKyAgICBmcm9t
IHR5cGluZyBpbXBvcnQgSXRlcmFibGUKKyAgICBmcm9tIHR5cGluZyBpbXBvcnQgTGlzdAorICAg
IGZyb20gdHlwaW5nIGltcG9ydCBPcHRpb25hbAorICAgIGZyb20gdHlwaW5nIGltcG9ydCBTZXF1
ZW5jZQorICAgIGZyb20gdHlwaW5nIGltcG9ydCBTZXQKKyAgICBmcm9tIHR5cGluZyBpbXBvcnQg
VGV4dAorICAgIGZyb20gdHlwaW5nIGltcG9ydCBUdXBsZQorICAgIGZyb20gdHlwaW5nIGltcG9y
dCBUeXBlCisgICAgZnJvbSB0eXBpbmcgaW1wb3J0IFVuaW9uCisKKyAgICBXaGl0ZWxpc3QgPSBE
aWN0W1RleHQsIERpY3RbVGV4dCwgU2V0W09wdGlvbmFsW2ludF1dXV0KIAotbG9nZ2VyID0gTm9u
ZQorCitsb2dnZXIgPSBOb25lICAjIHR5cGU6IE9wdGlvbmFsW2xvZ2dpbmcuTG9nZ2VyXQogCiBk
ZWYgc2V0dXBfbG9nZ2luZyhwcmVmaXg9RmFsc2UpOgorICAgICMgdHlwZTogKGJvb2wpIC0+IE5v
bmUKICAgICBnbG9iYWwgbG9nZ2VyCiAgICAgaWYgbG9nZ2VyIGlzIE5vbmU6CiAgICAgICAgIGxv
Z2dlciA9IGxvZ2dpbmcuZ2V0TG9nZ2VyKG9zLnBhdGguYmFzZW5hbWUob3MucGF0aC5zcGxpdGV4
dChfX2ZpbGVfXylbMF0pKQotICAgICAgICBoYW5kbGVyID0gbG9nZ2luZy5TdHJlYW1IYW5kbGVy
KHN5cy5zdGRvdXQpCisgICAgICAgIGhhbmRsZXIgPSBsb2dnaW5nLlN0cmVhbUhhbmRsZXIoc3lz
LnN0ZG91dCkgICMgdHlwZTogbG9nZ2luZy5IYW5kbGVyCiAgICAgICAgICMgT25seSBhZGQgYSBo
YW5kbGVyIGlmIHRoZSBwYXJlbnQgbG9nZ2VyIGlzIG1pc3NpbmcgYSBoYW5kbGVyCi0gICAgICAg
IGlmIGxvZ2dlci5wYXJlbnQgYW5kIGxlbihsb2dnZXIucGFyZW50LmhhbmRsZXJzKSA9PSAwOgor
ICAgICAgICBwYXJlbnQgPSBsb2dnZXIucGFyZW50CisgICAgICAgIGFzc2VydCBpc2luc3RhbmNl
KHBhcmVudCwgbG9nZ2luZy5Mb2dnZXIpCisgICAgICAgIGlmIHBhcmVudCBhbmQgbGVuKHBhcmVu
dC5oYW5kbGVycykgPT0gMDoKICAgICAgICAgICAgIGhhbmRsZXIgPSBsb2dnaW5nLlN0cmVhbUhh
bmRsZXIoc3lzLnN0ZG91dCkKICAgICAgICAgICAgIGxvZ2dlci5hZGRIYW5kbGVyKGhhbmRsZXIp
CiAgICAgaWYgcHJlZml4OgogICAgICAgICBmb3JtYXQgPSBsb2dnaW5nLkJBU0lDX0ZPUk1BVAog
ICAgIGVsc2U6Ci0gICAgICAgIGZvcm1hdCA9ICIlKG1lc3NhZ2UpcyIKKyAgICAgICAgZm9ybWF0
ID0gc3RyKCIlKG1lc3NhZ2UpcyIpCiAgICAgZm9ybWF0dGVyID0gbG9nZ2luZy5Gb3JtYXR0ZXIo
Zm9ybWF0KQogICAgIGZvciBoYW5kbGVyIGluIGxvZ2dlci5oYW5kbGVyczoKICAgICAgICAgaGFu
ZGxlci5zZXRGb3JtYXR0ZXIoZm9ybWF0dGVyKQpAQCAtNjIsMjEgKzg1LDIzIEBAIHlvdSBjb3Vs
ZCBhZGQgdGhlIGZvbGxvd2luZyBsaW5lIHRvIHRoZSBsaW50LndoaXRlbGlzdCBmaWxlLgogJXM6
ICVzIiIiCiAKIGRlZiBhbGxfZmlsZXN5c3RlbV9wYXRocyhyZXBvX3Jvb3QsIHN1YmRpcj1Ob25l
KToKLSAgICBwYXRoX2ZpbHRlciA9IFBhdGhGaWx0ZXIocmVwb19yb290LCBleHRyYXM9WyIuZ2l0
LyJdKQorICAgICMgdHlwZTogKHN0ciwgT3B0aW9uYWxbc3RyXSkgLT4gSXRlcmFibGVbc3RyXQor
ICAgIHBhdGhfZmlsdGVyID0gUGF0aEZpbHRlcihyZXBvX3Jvb3QsIGV4dHJhcz1bc3RyKCIuZ2l0
LyIpXSkKICAgICBpZiBzdWJkaXI6CiAgICAgICAgIGV4cGFuZGVkX3BhdGggPSBzdWJkaXIKICAg
ICBlbHNlOgogICAgICAgICBleHBhbmRlZF9wYXRoID0gcmVwb19yb290Ci0gICAgZm9yIGRpcnBh
dGgsIGRpcm5hbWVzLCBmaWxlbmFtZXMgaW4gb3Mud2FsayhleHBhbmRlZF9wYXRoKToKLSAgICAg
ICAgZm9yIGZpbGVuYW1lIGluIGZpbGVuYW1lczoKLSAgICAgICAgICAgIHBhdGggPSBvcy5wYXRo
LnJlbHBhdGgob3MucGF0aC5qb2luKGRpcnBhdGgsIGZpbGVuYW1lKSwgcmVwb19yb290KQotICAg
ICAgICAgICAgaWYgcGF0aF9maWx0ZXIocGF0aCk6Ci0gICAgICAgICAgICAgICAgeWllbGQgcGF0
aAotICAgICAgICBkaXJuYW1lc1s6XSA9IFtpdGVtIGZvciBpdGVtIGluIGRpcm5hbWVzIGlmCi0g
ICAgICAgICAgICAgICAgICAgICAgIHBhdGhfZmlsdGVyKG9zLnBhdGgucmVscGF0aChvcy5wYXRo
LmpvaW4oZGlycGF0aCwgaXRlbSkgKyAiLyIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICByZXBvX3Jvb3QpKyIvIildCisgICAgZm9yIGRpcnBhdGgs
IGRpcm5hbWVzLCBmaWxlbmFtZXMgaW4gcGF0aF9maWx0ZXIod2FsayhleHBhbmRlZF9wYXRoKSk6
CisgICAgICAgIGZvciBmaWxlbmFtZSwgXyBpbiBmaWxlbmFtZXM6CisgICAgICAgICAgICBwYXRo
ID0gb3MucGF0aC5qb2luKGRpcnBhdGgsIGZpbGVuYW1lKQorICAgICAgICAgICAgaWYgc3ViZGly
OgorICAgICAgICAgICAgICAgIHBhdGggPSBvcy5wYXRoLmpvaW4oc3ViZGlyLCBwYXRoKQorICAg
ICAgICAgICAgYXNzZXJ0IG5vdCBvcy5wYXRoLmlzYWJzKHBhdGgpLCBwYXRoCisgICAgICAgICAg
ICB5aWVsZCBwYXRoCisKIAogZGVmIF9hbGxfZmlsZXNfZXF1YWwocGF0aHMpOgorICAgICMgdHlw
ZTogKEl0ZXJhYmxlW3N0cl0pIC0+IGJvb2wKICAgICAiIiIKICAgICBDaGVja3MgYWxsIHRoZSBw
YXRocyBhcmUgZmlsZXMgdGhhdCBhcmUgYnl0ZS1mb3ItYnl0ZSBpZGVudGljYWwKIApAQCAtMTE1
LDMyICsxNDAsNjAgQEAgZGVmIF9hbGxfZmlsZXNfZXF1YWwocGF0aHMpOgogCiAKIGRlZiBjaGVj
a19wYXRoX2xlbmd0aChyZXBvX3Jvb3QsIHBhdGgpOgorICAgICMgdHlwZTogKHN0ciwgc3RyKSAt
PiBMaXN0W3J1bGVzLkVycm9yXQogICAgIGlmIGxlbihwYXRoKSArIDEgPiAxNTA6Ci0gICAgICAg
IHJldHVybiBbKCJQQVRIIExFTkdUSCIsICIvJXMgbG9uZ2VyIHRoYW4gbWF4aW11bSBwYXRoIGxl
bmd0aCAoJWQgPiAxNTApIiAlIChwYXRoLCBsZW4ocGF0aCkgKyAxKSwgcGF0aCwgTm9uZSldCisg
ICAgICAgIHJldHVybiBbcnVsZXMuUGF0aExlbmd0aC5lcnJvcihwYXRoLCAocGF0aCwgbGVuKHBh
dGgpICsgMSkpXQorICAgIHJldHVybiBbXQorCisKK2RlZiBjaGVja19maWxlX3R5cGUocmVwb19y
b290LCBwYXRoKToKKyAgICAjIHR5cGU6IChzdHIsIHN0cikgLT4gTGlzdFtydWxlcy5FcnJvcl0K
KyAgICBpZiBvcy5wYXRoLmlzbGluayhwYXRoKToKKyAgICAgICAgcmV0dXJuIFtydWxlcy5GaWxl
VHlwZS5lcnJvcihwYXRoLCAocGF0aCwgInN5bWxpbmsiKSldCiAgICAgcmV0dXJuIFtdCiAKIAog
ZGVmIGNoZWNrX3dvcmtlcl9jb2xsaXNpb24ocmVwb19yb290LCBwYXRoKToKKyAgICAjIHR5cGU6
IChzdHIsIHN0cikgLT4gTGlzdFtydWxlcy5FcnJvcl0KICAgICBlbmRpbmdzID0gWygiLmFueS5o
dG1sIiwgIi5hbnkuanMiKSwKICAgICAgICAgICAgICAgICgiLmFueS53b3JrZXIuaHRtbCIsICIu
YW55LmpzIiksCiAgICAgICAgICAgICAgICAoIi53b3JrZXIuaHRtbCIsICIud29ya2VyLmpzIild
CiAgICAgZm9yIHBhdGhfZW5kaW5nLCBnZW5lcmF0ZWQgaW4gZW5kaW5nczoKICAgICAgICAgaWYg
cGF0aC5lbmRzd2l0aChwYXRoX2VuZGluZyk6Ci0gICAgICAgICAgICByZXR1cm4gWygiV09SS0VS
IENPTExJU0lPTiIsCi0gICAgICAgICAgICAgICAgICAgICAicGF0aCBlbmRzIHdpdGggJXMgd2hp
Y2ggY29sbGlkZXMgd2l0aCBnZW5lcmF0ZWQgdGVzdHMgZnJvbSAlcyBmaWxlcyIgJSAocGF0aF9l
bmRpbmcsIGdlbmVyYXRlZCksCi0gICAgICAgICAgICAgICAgICAgICBwYXRoLAotICAgICAgICAg
ICAgICAgICAgICAgTm9uZSldCisgICAgICAgICAgICByZXR1cm4gW3J1bGVzLldvcmtlckNvbGxp
c2lvbi5lcnJvcihwYXRoLCAocGF0aF9lbmRpbmcsIGdlbmVyYXRlZCkpXQogICAgIHJldHVybiBb
XQogCiAKK2RlZiBjaGVja19naXRpZ25vcmVfZmlsZShyZXBvX3Jvb3QsIHBhdGgpOgorICAgICMg
dHlwZTogKHN0ciwgc3RyKSAtPiBMaXN0W3J1bGVzLkVycm9yXQorICAgIGlmIG5vdCBwYXRoLmVu
ZHN3aXRoKCIuZ2l0aWdub3JlIik6CisgICAgICAgIHJldHVybiBbXQorCisgICAgcGF0aF9wYXJ0
cyA9IHBhdGguc3BsaXQob3MucGF0aC5zZXApCisgICAgaWYgbGVuKHBhdGhfcGFydHMpID09IDE6
CisgICAgICAgIHJldHVybiBbXQorCisgICAgaWYgcGF0aF9wYXJ0c1stMV0gIT0gIi5naXRpZ25v
cmUiOgorICAgICAgICByZXR1cm4gW10KKworICAgIGlmIChwYXRoX3BhcnRzWzBdIGluIFsidG9v
bHMiLCAiZG9jcyJdIG9yCisgICAgICAgIHBhdGhfcGFydHNbOjJdID09IFsicmVzb3VyY2VzIiwg
IndlYmlkbDIiXSBvcgorICAgICAgICBwYXRoX3BhcnRzWzozXSA9PSBbImNzcyIsICJ0b29scyIs
ICJhcGljbGllbnQiXSk6CisgICAgICAgIHJldHVybiBbXQorCisgICAgcmV0dXJuIFtydWxlcy5H
aXRJZ25vcmVGaWxlLmVycm9yKHBhdGgpXQorCisKIGRlZiBjaGVja19haGVtX2NvcHkocmVwb19y
b290LCBwYXRoKToKKyAgICAjIHR5cGU6IChzdHIsIHN0cikgLT4gTGlzdFtydWxlcy5FcnJvcl0K
ICAgICBscGF0aCA9IHBhdGgubG93ZXIoKQogICAgIGlmICJhaGVtIiBpbiBscGF0aCBhbmQgbHBh
dGguZW5kc3dpdGgoIi50dGYiKToKLSAgICAgICAgcmV0dXJuIFsoIkFIRU0gQ09QWSIsICJEb24n
dCBhZGQgZXh0cmEgY29waWVzIG9mIEFoZW0sIHVzZSAvZm9udHMvQWhlbS50dGYiLCBwYXRoLCBO
b25lKV0KKyAgICAgICAgcmV0dXJuIFtydWxlcy5BaGVtQ29weS5lcnJvcihwYXRoKV0KICAgICBy
ZXR1cm4gW10KIAogCiBkZWYgY2hlY2tfZ2l0X2lnbm9yZShyZXBvX3Jvb3QsIHBhdGhzKToKKyAg
ICAjIHR5cGU6IChzdHIsIExpc3Rbc3RyXSkgLT4gTGlzdFtydWxlcy5FcnJvcl0KICAgICBlcnJv
cnMgPSBbXQogICAgIHdpdGggdGVtcGZpbGUuVGVtcG9yYXJ5RmlsZSgndysnKSBhcyBmOgogICAg
ICAgICBmLndyaXRlKCdcbicuam9pbihwYXRocykpCkBAIC0xNTQsOCArMjA3LDcgQEAgZGVmIGNo
ZWNrX2dpdF9pZ25vcmUocmVwb19yb290LCBwYXRocyk6CiAgICAgICAgICAgICAgICAgIyBJZiB0
aGUgbWF0Y2hpbmcgZmlsdGVyIHJlcG9ydGVkIGJ5IGNoZWNrLWlnbm9yZSBpcyBhIHNwZWNpYWwt
Y2FzZSBleGNlcHRpb24sCiAgICAgICAgICAgICAgICAgIyB0aGF0J3MgZmluZS4gT3RoZXJ3aXNl
LCBpdCByZXF1aXJlcyBhIG5ldyBzcGVjaWFsLWNhc2UgZXhjZXB0aW9uLgogICAgICAgICAgICAg
ICAgIGlmIGZpbHRlcl9zdHJpbmdbMF0gIT0gJyEnOgotICAgICAgICAgICAgICAgICAgICBlcnJv
cnMgKz0gWygiSUdOT1JFRCBQQVRIIiwgIiVzIG1hdGNoZXMgYW4gaWdub3JlIGZpbHRlciBpbiAu
Z2l0aWdub3JlIC0gIgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAicGxlYXNlIGFk
ZCBhIC5naXRpZ25vcmUgZXhjZXB0aW9uIiAlIHBhdGgsIHBhdGgsIE5vbmUpXQorICAgICAgICAg
ICAgICAgICAgICBlcnJvcnMuYXBwZW5kKHJ1bGVzLklnbm9yZWRQYXRoLmVycm9yKHBhdGgsIChw
YXRoLCkpKQogICAgICAgICBleGNlcHQgc3VicHJvY2Vzcy5DYWxsZWRQcm9jZXNzRXJyb3I6CiAg
ICAgICAgICAgICAjIE5vbnplcm8gcmV0dXJuIGNvZGUgbWVhbnMgdGhhdCBubyBtYXRjaCBleGlz
dHMuCiAgICAgICAgICAgICBwYXNzCkBAIC0xNjgsNiArMjIwLDcgQEAgdzNjX2Rldl9yZSA9IHJl
LmNvbXBpbGUociJodHRwcz9cOlwvXC9kZXZcLnczYz9cLm9yZ1wvW14vPyNdK1wvKFteLz8jXSsp
IikKIAogCiBkZWYgY2hlY2tfY3NzX2dsb2JhbGx5X3VuaXF1ZShyZXBvX3Jvb3QsIHBhdGhzKToK
KyAgICAjIHR5cGU6IChzdHIsIExpc3Rbc3RyXSkgLT4gTGlzdFtydWxlcy5FcnJvcl0KICAgICAi
IiIKICAgICBDaGVja3MgdGhhdCBDU1MgZmlsZW5hbWVzIGFyZSBzdWZmaWNpZW50bHkgdW5pcXVl
CiAKQEAgLTE4NSwxMyArMjM4LDE2IEBAIGRlZiBjaGVja19jc3NfZ2xvYmFsbHlfdW5pcXVlKHJl
cG9fcm9vdCwgcGF0aHMpOgogICAgIDpyZXR1cm5zOiBhIGxpc3Qgb2YgZXJyb3JzIGZvdW5kIGlu
IGBgcGF0aHNgYAogCiAgICAgIiIiCi0gICAgdGVzdF9maWxlcyA9IGRlZmF1bHRkaWN0KHNldCkK
LSAgICByZWZfZmlsZXMgPSBkZWZhdWx0ZGljdChzZXQpCi0gICAgc3VwcG9ydF9maWxlcyA9IGRl
ZmF1bHRkaWN0KHNldCkKKyAgICB0ZXN0X2ZpbGVzID0gZGVmYXVsdGRpY3Qoc2V0KSAgIyB0eXBl
OiBEaWN0W1VuaW9uW2J5dGVzLCBUZXh0XSwgU2V0W3N0cl1dCisgICAgcmVmX2ZpbGVzID0gZGVm
YXVsdGRpY3Qoc2V0KSAgIyB0eXBlOiBEaWN0W1VuaW9uW2J5dGVzLCBUZXh0XSwgU2V0W3N0cl1d
CisgICAgc3VwcG9ydF9maWxlcyA9IGRlZmF1bHRkaWN0KHNldCkgICMgdHlwZTogRGljdFtVbmlv
bltieXRlcywgVGV4dF0sIFNldFtzdHJdXQogCiAgICAgZm9yIHBhdGggaW4gcGF0aHM6CiAgICAg
ICAgIGlmIG9zLm5hbWUgPT0gIm50IjoKLSAgICAgICAgICAgIHBhdGggPSBwYXRoLnJlcGxhY2Uo
IlxcIiwgIi8iKQorICAgICAgICAgICAgaWYgaXNpbnN0YW5jZShwYXRoLCBiaW5hcnlfdHlwZSk6
CisgICAgICAgICAgICAgICAgcGF0aCA9IHBhdGgucmVwbGFjZShiIlxcIiwgYiIvIikKKyAgICAg
ICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgcGF0aCA9IHBhdGgucmVwbGFjZSh1IlxcIiwg
dSIvIikKIAogICAgICAgICBpZiBub3QgcGF0aC5zdGFydHN3aXRoKCJjc3MvIik6CiAgICAgICAg
ICAgICBjb250aW51ZQpAQCAtMjExLDEyICsyNjcsMTcgQEAgZGVmIGNoZWNrX2Nzc19nbG9iYWxs
eV91bmlxdWUocmVwb19yb290LCBwYXRocyk6CiAgICAgICAgICAgICAgICAgYW55KHBhcnRzWzps
ZW4obm9uX3Rlc3RfcGF0aCldID09IGxpc3Qobm9uX3Rlc3RfcGF0aCkgZm9yIG5vbl90ZXN0X3Bh
dGggaW4gc291cmNlX2ZpbGUuZGlyX3BhdGhfbm9uX3Rlc3QpKToKICAgICAgICAgICAgICAgICBj
b250aW51ZQogCi0gICAgICAgICAgICBuYW1lID0gcGF0aFtvZmZzZXQrMTpdCi0gICAgICAgICAg
ICBzdXBwb3J0X2ZpbGVzW25hbWVdLmFkZChwYXRoKQorICAgICAgICAgICAgc3VwcG9ydF9uYW1l
ID0gcGF0aFtvZmZzZXQrMTpdCisgICAgICAgICAgICBzdXBwb3J0X2ZpbGVzW3N1cHBvcnRfbmFt
ZV0uYWRkKHBhdGgpCiAgICAgICAgIGVsaWYgc291cmNlX2ZpbGUubmFtZV9pc19yZWZlcmVuY2U6
CiAgICAgICAgICAgICByZWZfZmlsZXNbc291cmNlX2ZpbGUubmFtZV0uYWRkKHBhdGgpCiAgICAg
ICAgIGVsc2U6Ci0gICAgICAgICAgICB0ZXN0X2ZpbGVzW3NvdXJjZV9maWxlLm5hbWVdLmFkZChw
YXRoKQorICAgICAgICAgICAgdGVzdF9uYW1lID0gc291cmNlX2ZpbGUubmFtZSAgIyB0eXBlOiBV
bmlvbltieXRlcywgVGV4dF0KKyAgICAgICAgICAgIGlmIGlzaW5zdGFuY2UodGVzdF9uYW1lLCBi
eXRlcyk6CisgICAgICAgICAgICAgICAgdGVzdF9uYW1lID0gdGVzdF9uYW1lLnJlcGxhY2UoYict
bWFudWFsJywgYicnKQorICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICB0ZXN0X25h
bWUgPSB0ZXN0X25hbWUucmVwbGFjZSh1Jy1tYW51YWwnLCB1JycpCisgICAgICAgICAgICB0ZXN0
X2ZpbGVzW3Rlc3RfbmFtZV0uYWRkKHBhdGgpCiAKICAgICBlcnJvcnMgPSBbXQogCkBAIC0yMjQs
NyArMjg1LDcgQEAgZGVmIGNoZWNrX2Nzc19nbG9iYWxseV91bmlxdWUocmVwb19yb290LCBwYXRo
cyk6CiAgICAgICAgIGlmIGxlbihjb2xsaWRpbmcpID4gMToKICAgICAgICAgICAgIGlmIG5vdCBf
YWxsX2ZpbGVzX2VxdWFsKFtvcy5wYXRoLmpvaW4ocmVwb19yb290LCB4KSBmb3IgeCBpbiBjb2xs
aWRpbmddKToKICAgICAgICAgICAgICAgICAjIE9ubHkgY29tcHV0ZSBieV9zcGVjIGlmIHRoZXJl
IGFyZSBwcmltYS1mYWNpZSBjb2xsaXNpb25zIGJlY2F1c2Ugb2YgY29zdAotICAgICAgICAgICAg
ICAgIGJ5X3NwZWMgPSBkZWZhdWx0ZGljdChzZXQpCisgICAgICAgICAgICAgICAgYnlfc3BlYyA9
IGRlZmF1bHRkaWN0KHNldCkgICMgdHlwZTogRGljdFtUZXh0LCBTZXRbc3RyXV0KICAgICAgICAg
ICAgICAgICBmb3IgcGF0aCBpbiBjb2xsaWRpbmc6CiAgICAgICAgICAgICAgICAgICAgIHNvdXJj
ZV9maWxlID0gU291cmNlRmlsZShyZXBvX3Jvb3QsIHBhdGgsICIvIikKICAgICAgICAgICAgICAg
ICAgICAgZm9yIGxpbmsgaW4gc291cmNlX2ZpbGUuc3BlY19saW5rczoKQEAgLTIzNyw1MiArMjk4
LDQ5IEBAIGRlZiBjaGVja19jc3NfZ2xvYmFsbHlfdW5pcXVlKHJlcG9fcm9vdCwgcGF0aHMpOgog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlCiAgICAgICAgICAgICAgICAgICAg
ICAgICBieV9zcGVjW3NwZWNdLmFkZChwYXRoKQogCi0gICAgICAgICAgICAgICAgZm9yIHNwZWMs
IHBhdGhzIGluIGl0ZXJpdGVtcyhieV9zcGVjKToKLSAgICAgICAgICAgICAgICAgICAgaWYgbm90
IF9hbGxfZmlsZXNfZXF1YWwoW29zLnBhdGguam9pbihyZXBvX3Jvb3QsIHgpIGZvciB4IGluIHBh
dGhzXSk6Ci0gICAgICAgICAgICAgICAgICAgICAgICBmb3IgeCBpbiBwYXRoczoKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBlcnJvcnMuYXBwZW5kKCgiQ1NTLUNPTExJRElORy1URVNULU5B
TUUiLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJUaGUgZmls
ZW5hbWUgJXMgaW4gdGhlICVzIHRlc3RzdWl0ZSBpcyBzaGFyZWQgYnk6ICVzIgotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICUgKG5hbWUsCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3BlYywKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiLCAiLmpvaW4oc29ydGVkKHBhdGhzKSkpLAot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHgsCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTm9uZSkpCi0KLSAgICBmb3IgZXJyb3Jf
bmFtZSwgZCBpbiBbKCJDU1MtQ09MTElESU5HLVJFRi1OQU1FIiwgcmVmX2ZpbGVzKSwKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgKCJDU1MtQ09MTElESU5HLVNVUFBPUlQtTkFNRSIsIHN1cHBv
cnRfZmlsZXMpXToKKyAgICAgICAgICAgICAgICBmb3Igc3BlYywgc3BlY19wYXRocyBpbiBpdGVy
aXRlbXMoYnlfc3BlYyk6CisgICAgICAgICAgICAgICAgICAgIGlmIG5vdCBfYWxsX2ZpbGVzX2Vx
dWFsKFtvcy5wYXRoLmpvaW4ocmVwb19yb290LCB4KSBmb3IgeCBpbiBzcGVjX3BhdGhzXSk6Cisg
ICAgICAgICAgICAgICAgICAgICAgICBmb3IgeCBpbiBzcGVjX3BhdGhzOgorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGNvbnRleHQxID0gKG5hbWUsIHNwZWMsICIsICIuam9pbihzb3J0ZWQo
c3BlY19wYXRocykpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVycm9ycy5hcHBlbmQo
cnVsZXMuQ1NTQ29sbGlkaW5nVGVzdE5hbWUuZXJyb3IoeCwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNv
bnRleHQxKSkKKworICAgIGZvciBydWxlX2NsYXNzLCBkIGluIFsocnVsZXMuQ1NTQ29sbGlkaW5n
UmVmTmFtZSwgcmVmX2ZpbGVzKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgKHJ1bGVzLkNT
U0NvbGxpZGluZ1N1cHBvcnROYW1lLCBzdXBwb3J0X2ZpbGVzKV06CiAgICAgICAgIGZvciBuYW1l
LCBjb2xsaWRpbmcgaW4gaXRlcml0ZW1zKGQpOgogICAgICAgICAgICAgaWYgbGVuKGNvbGxpZGlu
ZykgPiAxOgogICAgICAgICAgICAgICAgIGlmIG5vdCBfYWxsX2ZpbGVzX2VxdWFsKFtvcy5wYXRo
LmpvaW4ocmVwb19yb290LCB4KSBmb3IgeCBpbiBjb2xsaWRpbmddKToKKyAgICAgICAgICAgICAg
ICAgICAgY29udGV4dDIgPSAobmFtZSwgIiwgIi5qb2luKHNvcnRlZChjb2xsaWRpbmcpKSkKKwog
ICAgICAgICAgICAgICAgICAgICBmb3IgeCBpbiBjb2xsaWRpbmc6Ci0gICAgICAgICAgICAgICAg
ICAgICAgICBlcnJvcnMuYXBwZW5kKChlcnJvcl9uYW1lLAotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIlRoZSBmaWxlbmFtZSAlcyBpcyBzaGFyZWQgYnk6ICVzIiAlIChu
YW1lLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAiLCAiLmpvaW4oc29ydGVkKGNvbGxpZGluZykpKSwK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHgsCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBOb25lKSkKKyAgICAgICAgICAgICAgICAgICAgICAg
IGVycm9ycy5hcHBlbmQocnVsZV9jbGFzcy5lcnJvcih4LCBjb250ZXh0MikpCiAKICAgICByZXR1
cm4gZXJyb3JzCiAKIAogZGVmIHBhcnNlX3doaXRlbGlzdChmKToKKyAgICAjIHR5cGU6IChJT1ti
eXRlc10pIC0+IFR1cGxlW1doaXRlbGlzdCwgU2V0W1RleHRdXQogICAgICIiIgogICAgIFBhcnNl
IHRoZSB3aGl0ZWxpc3QgZmlsZSBnaXZlbiBieSBgZmAsIGFuZCByZXR1cm4gdGhlIHBhcnNlZCBz
dHJ1Y3R1cmUuCiAgICAgIiIiCiAKLSAgICBkYXRhID0gZGVmYXVsdGRpY3QobGFtYmRhOmRlZmF1
bHRkaWN0KHNldCkpCi0gICAgaWdub3JlZF9maWxlcyA9IHNldCgpCisgICAgZGF0YSA9IGRlZmF1
bHRkaWN0KGxhbWJkYTpkZWZhdWx0ZGljdChzZXQpKSAgIyB0eXBlOiBXaGl0ZWxpc3QKKyAgICBp
Z25vcmVkX2ZpbGVzID0gc2V0KCkgICMgdHlwZTogU2V0W1RleHRdCiAKICAgICBmb3IgbGluZSBp
biBmOgogICAgICAgICBsaW5lID0gbGluZS5zdHJpcCgpCiAgICAgICAgIGlmIG5vdCBsaW5lIG9y
IGxpbmUuc3RhcnRzd2l0aCgiIyIpOgogICAgICAgICAgICAgY29udGludWUKICAgICAgICAgcGFy
dHMgPSBbaXRlbS5zdHJpcCgpIGZvciBpdGVtIGluIGxpbmUuc3BsaXQoIjoiKV0KKwogICAgICAg
ICBpZiBsZW4ocGFydHMpID09IDI6Ci0gICAgICAgICAgICBwYXJ0cy5hcHBlbmQoTm9uZSkKKyAg
ICAgICAgICAgIGVycm9yX3R5cGVzX3MsIGZpbGVfbWF0Y2ggPSBwYXJ0cworICAgICAgICAgICAg
bGluZV9udW1iZXIgPSBOb25lICAjIHR5cGU6IE9wdGlvbmFsW2ludF0KICAgICAgICAgZWxzZToK
LSAgICAgICAgICAgIHBhcnRzWy0xXSA9IGludChwYXJ0c1stMV0pCisgICAgICAgICAgICBlcnJv
cl90eXBlc19zLCBmaWxlX21hdGNoLCBsaW5lX251bWJlcl9zID0gcGFydHMKKyAgICAgICAgICAg
IGxpbmVfbnVtYmVyID0gaW50KGxpbmVfbnVtYmVyX3MpCiAKLSAgICAgICAgZXJyb3JfdHlwZXMs
IGZpbGVfbWF0Y2gsIGxpbmVfbnVtYmVyID0gcGFydHMKLSAgICAgICAgZXJyb3JfdHlwZXMgPSB7
aXRlbS5zdHJpcCgpIGZvciBpdGVtIGluIGVycm9yX3R5cGVzLnNwbGl0KCIsIil9CisgICAgICAg
IGVycm9yX3R5cGVzID0ge2l0ZW0uc3RyaXAoKSBmb3IgaXRlbSBpbiBlcnJvcl90eXBlc19zLnNw
bGl0KCIsIil9CiAgICAgICAgIGZpbGVfbWF0Y2ggPSBvcy5wYXRoLm5vcm1jYXNlKGZpbGVfbWF0
Y2gpCiAKICAgICAgICAgaWYgIioiIGluIGVycm9yX3R5cGVzOgpAQCAtMjk1LDYgKzM1Myw3IEBA
IGRlZiBwYXJzZV93aGl0ZWxpc3QoZik6CiAKIAogZGVmIGZpbHRlcl93aGl0ZWxpc3RfZXJyb3Jz
KGRhdGEsIGVycm9ycyk6CisgICAgIyB0eXBlOiAoV2hpdGVsaXN0LCBTZXF1ZW5jZVtydWxlcy5F
cnJvcl0pIC0+IExpc3RbcnVsZXMuRXJyb3JdCiAgICAgIiIiCiAgICAgRmlsdGVyIG91dCB0aG9z
ZSBlcnJvcnMgdGhhdCBhcmUgd2hpdGVsaXN0ZWQgaW4gYGRhdGFgLgogICAgICIiIgpAQCAtMzE3
LDEzMCArMzc2LDUxIEBAIGRlZiBmaWx0ZXJfd2hpdGVsaXN0X2Vycm9ycyhkYXRhLCBlcnJvcnMp
OgogCiAgICAgcmV0dXJuIFtpdGVtIGZvciBpLCBpdGVtIGluIGVudW1lcmF0ZShlcnJvcnMpIGlm
IG5vdCB3aGl0ZWxpc3RlZFtpXV0KIAotY2xhc3MgUmVnZXhwKG9iamVjdCk6Ci0gICAgcGF0dGVy
biA9IE5vbmUKLSAgICBmaWxlX2V4dGVuc2lvbnMgPSBOb25lCi0gICAgZXJyb3IgPSBOb25lCi0g
ICAgX3JlID0gTm9uZQotCi0gICAgZGVmIF9faW5pdF9fKHNlbGYpOgotICAgICAgICBzZWxmLl9y
ZSA9IHJlLmNvbXBpbGUoc2VsZi5wYXR0ZXJuKQotCi0gICAgZGVmIGFwcGxpZXMoc2VsZiwgcGF0
aCk6Ci0gICAgICAgIHJldHVybiAoc2VsZi5maWxlX2V4dGVuc2lvbnMgaXMgTm9uZSBvcgotICAg
ICAgICAgICAgICAgIG9zLnBhdGguc3BsaXRleHQocGF0aClbMV0gaW4gc2VsZi5maWxlX2V4dGVu
c2lvbnMpCi0KLSAgICBkZWYgc2VhcmNoKHNlbGYsIGxpbmUpOgotICAgICAgICByZXR1cm4gc2Vs
Zi5fcmUuc2VhcmNoKGxpbmUpCi0KLWNsYXNzIFRyYWlsaW5nV2hpdGVzcGFjZVJlZ2V4cChSZWdl
eHApOgotICAgIHBhdHRlcm4gPSBiIlsgXHRcZlx2XSQiCi0gICAgZXJyb3IgPSAiVFJBSUxJTkcg
V0hJVEVTUEFDRSIKLSAgICBkZXNjcmlwdGlvbiA9ICJXaGl0ZXNwYWNlIGF0IEVPTCIKLQotY2xh
c3MgVGFic1JlZ2V4cChSZWdleHApOgotICAgIHBhdHRlcm4gPSBiIl5cdCIKLSAgICBlcnJvciA9
ICJJTkRFTlQgVEFCUyIKLSAgICBkZXNjcmlwdGlvbiA9ICJUYWJzIHVzZWQgZm9yIGluZGVudGF0
aW9uIgotCi1jbGFzcyBDUlJlZ2V4cChSZWdleHApOgotICAgIHBhdHRlcm4gPSBiIlxyJCIKLSAg
ICBlcnJvciA9ICJDUiBBVCBFT0wiCi0gICAgZGVzY3JpcHRpb24gPSAiQ1IgY2hhcmFjdGVyIGlu
IGxpbmUgc2VwYXJhdG9yIgotCi1jbGFzcyBTZXRUaW1lb3V0UmVnZXhwKFJlZ2V4cCk6Ci0gICAg
cGF0dGVybiA9IGIic2V0VGltZW91dFxzKlwoIgotICAgIGVycm9yID0gIlNFVCBUSU1FT1VUIgot
ICAgIGZpbGVfZXh0ZW5zaW9ucyA9IFsiLmh0bWwiLCAiLmh0bSIsICIuanMiLCAiLnhodCIsICIu
eGh0bWwiLCAiLnN2ZyJdCi0gICAgZGVzY3JpcHRpb24gPSAic2V0VGltZW91dCB1c2VkOyBzdGVw
X3RpbWVvdXQgc2hvdWxkIHR5cGljYWxseSBiZSB1c2VkIGluc3RlYWQiCi0KLWNsYXNzIFczQ1Rl
c3RPcmdSZWdleHAoUmVnZXhwKToKLSAgICBwYXR0ZXJuID0gYiJ3M2NcLXRlc3RcLm9yZyIKLSAg
ICBlcnJvciA9ICJXM0MtVEVTVC5PUkciCi0gICAgZGVzY3JpcHRpb24gPSAiRXh0ZXJuYWwgdzNj
LXRlc3Qub3JnIGRvbWFpbiB1c2VkIgotCi1jbGFzcyBXZWJQbGF0Zm9ybVRlc3RSZWdleHAoUmVn
ZXhwKToKLSAgICBwYXR0ZXJuID0gYiJ3ZWJcLXBsYXRmb3JtXC50ZXN0IgotICAgIGVycm9yID0g
IldFQi1QTEFURk9STS5URVNUIgotICAgIGRlc2NyaXB0aW9uID0gIkludGVybmFsIHdlYi1wbGF0
Zm9ybS50ZXN0IGRvbWFpbiB1c2VkIgotCi1jbGFzcyBXZWJpZGwyUmVnZXhwKFJlZ2V4cCk6Ci0g
ICAgcGF0dGVybiA9IGIid2ViaWRsMlwuanMiCi0gICAgZXJyb3IgPSAiV0VCSURMMi5KUyIKLSAg
ICBkZXNjcmlwdGlvbiA9ICJMZWdhY3kgd2ViaWRsMi5qcyBzY3JpcHQgdXNlZCIKLQotY2xhc3Mg
Q29uc29sZVJlZ2V4cChSZWdleHApOgotICAgIHBhdHRlcm4gPSBiImNvbnNvbGVcLlthLXpBLVpd
K1xzKlwoIgotICAgIGVycm9yID0gIkNPTlNPTEUiCi0gICAgZmlsZV9leHRlbnNpb25zID0gWyIu
aHRtbCIsICIuaHRtIiwgIi5qcyIsICIueGh0IiwgIi54aHRtbCIsICIuc3ZnIl0KLSAgICBkZXNj
cmlwdGlvbiA9ICJDb25zb2xlIGxvZ2dpbmcgQVBJIHVzZWQiCi0KLWNsYXNzIEdlbmVyYXRlVGVz
dHNSZWdleHAoUmVnZXhwKToKLSAgICBwYXR0ZXJuID0gYiJnZW5lcmF0ZV90ZXN0c1xzKlwoIgot
ICAgIGVycm9yID0gIkdFTkVSQVRFX1RFU1RTIgotICAgIGZpbGVfZXh0ZW5zaW9ucyA9IFsiLmh0
bWwiLCAiLmh0bSIsICIuanMiLCAiLnhodCIsICIueGh0bWwiLCAiLnN2ZyJdCi0gICAgZGVzY3Jp
cHRpb24gPSAiZ2VuZXJhdGVfdGVzdHMgdXNlZCIKLQotY2xhc3MgUHJpbnRSZWdleHAoUmVnZXhw
KToKLSAgICBwYXR0ZXJuID0gYiJwcmludCg/OlxzfFxzKlwoKSIKLSAgICBlcnJvciA9ICJQUklO
VCBTVEFURU1FTlQiCi0gICAgZmlsZV9leHRlbnNpb25zID0gWyIucHkiXQotICAgIGRlc2NyaXB0
aW9uID0gIlByaW50IGZ1bmN0aW9uIHVzZWQiCi0KLWNsYXNzIExheW91dFRlc3RzUmVnZXhwKFJl
Z2V4cCk6Ci0gICAgcGF0dGVybiA9IGIiZXZlbnRTZW5kZXJ8dGVzdFJ1bm5lcnx3aW5kb3dcLmlu
dGVybmFscyIKLSAgICBlcnJvciA9ICJMQVlPVVRURVNUUyBBUElTIgotICAgIGZpbGVfZXh0ZW5z
aW9ucyA9IFsiLmh0bWwiLCAiLmh0bSIsICIuanMiLCAiLnhodCIsICIueGh0bWwiLCAiLnN2ZyJd
Ci0gICAgZGVzY3JpcHRpb24gPSAiZXZlbnRTZW5kZXIvdGVzdFJ1bm5lci93aW5kb3cuaW50ZXJu
YWxzIHVzZWQ7IHRoZXNlIGFyZSBMYXlvdXRUZXN0cy1zcGVjaWZpYyBBUElzIChXZWJLaXQvQmxp
bmspIgotCi1jbGFzcyBTcGVjaWFsUG93ZXJzUmVnZXhwKFJlZ2V4cCk6Ci0gICAgcGF0dGVybiA9
IGIiU3BlY2lhbFBvd2VycyIKLSAgICBlcnJvciA9ICJTUEVDSUFMUE9XRVJTIEFQSSIKLSAgICBm
aWxlX2V4dGVuc2lvbnMgPSBbIi5odG1sIiwgIi5odG0iLCAiLmpzIiwgIi54aHQiLCAiLnhodG1s
IiwgIi5zdmciXQotICAgIGRlc2NyaXB0aW9uID0gIlNwZWNpYWxQb3dlcnMgdXNlZDsgdGhpcyBp
cyBnZWNrby1zcGVjaWZpYyBhbmQgbm90IHN1cHBvcnRlZCBpbiB3cHQiCi0KLQotcmVnZXhwcyA9
IFtpdGVtKCkgZm9yIGl0ZW0gaW4KLSAgICAgICAgICAgW1RyYWlsaW5nV2hpdGVzcGFjZVJlZ2V4
cCwKLSAgICAgICAgICAgIFRhYnNSZWdleHAsCi0gICAgICAgICAgICBDUlJlZ2V4cCwKLSAgICAg
ICAgICAgIFNldFRpbWVvdXRSZWdleHAsCi0gICAgICAgICAgICBXM0NUZXN0T3JnUmVnZXhwLAot
ICAgICAgICAgICAgV2ViUGxhdGZvcm1UZXN0UmVnZXhwLAotICAgICAgICAgICAgV2ViaWRsMlJl
Z2V4cCwKLSAgICAgICAgICAgIENvbnNvbGVSZWdleHAsCi0gICAgICAgICAgICBHZW5lcmF0ZVRl
c3RzUmVnZXhwLAotICAgICAgICAgICAgUHJpbnRSZWdleHAsCi0gICAgICAgICAgICBMYXlvdXRU
ZXN0c1JlZ2V4cCwKLSAgICAgICAgICAgIFNwZWNpYWxQb3dlcnNSZWdleHBdXQorCityZWdleHBz
ID0gW2l0ZW0oKSBmb3IgaXRlbSBpbiAgIyB0eXBlOiBpZ25vcmUKKyAgICAgICAgICAgW3J1bGVz
LlRyYWlsaW5nV2hpdGVzcGFjZVJlZ2V4cCwKKyAgICAgICAgICAgIHJ1bGVzLlRhYnNSZWdleHAs
CisgICAgICAgICAgICBydWxlcy5DUlJlZ2V4cCwKKyAgICAgICAgICAgIHJ1bGVzLlNldFRpbWVv
dXRSZWdleHAsCisgICAgICAgICAgICBydWxlcy5XM0NUZXN0T3JnUmVnZXhwLAorICAgICAgICAg
ICAgcnVsZXMuV2ViUGxhdGZvcm1UZXN0UmVnZXhwLAorICAgICAgICAgICAgcnVsZXMuV2ViaWRs
MlJlZ2V4cCwKKyAgICAgICAgICAgIHJ1bGVzLkNvbnNvbGVSZWdleHAsCisgICAgICAgICAgICBy
dWxlcy5HZW5lcmF0ZVRlc3RzUmVnZXhwLAorICAgICAgICAgICAgcnVsZXMuUHJpbnRSZWdleHAs
CisgICAgICAgICAgICBydWxlcy5MYXlvdXRUZXN0c1JlZ2V4cCwKKyAgICAgICAgICAgIHJ1bGVz
Lk1pc3NpbmdEZXBzUmVnZXhwLAorICAgICAgICAgICAgcnVsZXMuU3BlY2lhbFBvd2Vyc1JlZ2V4
cF1dCiAKIGRlZiBjaGVja19yZWdleHBfbGluZShyZXBvX3Jvb3QsIHBhdGgsIGYpOgotICAgIGVy
cm9ycyA9IFtdCisgICAgIyB0eXBlOiAoc3RyLCBzdHIsIElPW2J5dGVzXSkgLT4gTGlzdFtydWxl
cy5FcnJvcl0KKyAgICBlcnJvcnMgPSBbXSAgIyB0eXBlOiBMaXN0W3J1bGVzLkVycm9yXQogCiAg
ICAgYXBwbGljYWJsZV9yZWdleHBzID0gW3JlZ2V4cCBmb3IgcmVnZXhwIGluIHJlZ2V4cHMgaWYg
cmVnZXhwLmFwcGxpZXMocGF0aCldCiAKICAgICBmb3IgaSwgbGluZSBpbiBlbnVtZXJhdGUoZik6
CiAgICAgICAgIGZvciByZWdleHAgaW4gYXBwbGljYWJsZV9yZWdleHBzOgogICAgICAgICAgICAg
aWYgcmVnZXhwLnNlYXJjaChsaW5lKToKLSAgICAgICAgICAgICAgICBlcnJvcnMuYXBwZW5kKChy
ZWdleHAuZXJyb3IsIHJlZ2V4cC5kZXNjcmlwdGlvbiwgcGF0aCwgaSsxKSkKKyAgICAgICAgICAg
ICAgICBlcnJvcnMuYXBwZW5kKChyZWdleHAubmFtZSwgcmVnZXhwLmRlc2NyaXB0aW9uLCBwYXRo
LCBpKzEpKQogCiAgICAgcmV0dXJuIGVycm9ycwogCiBkZWYgY2hlY2tfcGFyc2VkKHJlcG9fcm9v
dCwgcGF0aCwgZik6CisgICAgIyB0eXBlOiAoc3RyLCBzdHIsIElPW2J5dGVzXSkgLT4gTGlzdFty
dWxlcy5FcnJvcl0KICAgICBzb3VyY2VfZmlsZSA9IFNvdXJjZUZpbGUocmVwb19yb290LCBwYXRo
LCAiLyIsIGNvbnRlbnRzPWYucmVhZCgpKQogCi0gICAgZXJyb3JzID0gW10KKyAgICBlcnJvcnMg
PSBbXSAgIyB0eXBlOiBMaXN0W3J1bGVzLkVycm9yXQogCiAgICAgaWYgcGF0aC5zdGFydHN3aXRo
KCJjc3MvIik6CiAgICAgICAgIGlmIChzb3VyY2VfZmlsZS50eXBlID09ICJzdXBwb3J0IiBhbmQK
ICAgICAgICAgICAgIG5vdCBzb3VyY2VfZmlsZS5uYW1lX2lzX25vbl90ZXN0IGFuZAogICAgICAg
ICAgICAgbm90IHNvdXJjZV9maWxlLm5hbWVfaXNfcmVmZXJlbmNlKToKLSAgICAgICAgICAgIHJl
dHVybiBbKCJTVVBQT1JULVdST05HLURJUiIsICJTdXBwb3J0IGZpbGUgbm90IGluIHN1cHBvcnQg
ZGlyZWN0b3J5IiwgcGF0aCwgTm9uZSldCisgICAgICAgICAgICByZXR1cm4gW3J1bGVzLlN1cHBv
cnRXcm9uZ0Rpci5lcnJvcihwYXRoKV0KIAogICAgICAgICBpZiAoc291cmNlX2ZpbGUudHlwZSAh
PSAic3VwcG9ydCIgYW5kCiAgICAgICAgICAgICBub3Qgc291cmNlX2ZpbGUubmFtZV9pc19yZWZl
cmVuY2UgYW5kCiAgICAgICAgICAgICBub3Qgc291cmNlX2ZpbGUuc3BlY19saW5rcyk6Ci0gICAg
ICAgICAgICByZXR1cm4gWygiTUlTU0lORy1MSU5LIiwgIlRlc3RjYXNlIGZpbGUgbXVzdCBoYXZl
IGEgbGluayB0byBhIHNwZWMiLCBwYXRoLCBOb25lKV0KKyAgICAgICAgICAgIHJldHVybiBbcnVs
ZXMuTWlzc2luZ0xpbmsuZXJyb3IocGF0aCldCiAKICAgICBpZiBzb3VyY2VfZmlsZS5uYW1lX2lz
X25vbl90ZXN0OgogICAgICAgICByZXR1cm4gW10KQEAgLTQ0OSwzMCArNDI5LDMxIEBAIGRlZiBj
aGVja19wYXJzZWQocmVwb19yb290LCBwYXRoLCBmKToKICAgICAgICAgcmV0dXJuIFtdCiAKICAg
ICBpZiBzb3VyY2VfZmlsZS5yb290IGlzIE5vbmU6Ci0gICAgICAgIHJldHVybiBbKCJQQVJTRS1G
QUlMRUQiLCAiVW5hYmxlIHRvIHBhcnNlIGZpbGUiLCBwYXRoLCBOb25lKV0KKyAgICAgICAgcmV0
dXJuIFtydWxlcy5QYXJzZUZhaWxlZC5lcnJvcihwYXRoKV0KIAogICAgIGlmIHNvdXJjZV9maWxl
LnR5cGUgPT0gIm1hbnVhbCIgYW5kIG5vdCBzb3VyY2VfZmlsZS5uYW1lX2lzX21hbnVhbDoKLSAg
ICAgICAgZXJyb3JzLmFwcGVuZCgoIkNPTlRFTlQtTUFOVUFMIiwgIk1hbnVhbCB0ZXN0IHdob3Nl
IGZpbGVuYW1lIGRvZXNuJ3QgZW5kIGluICctbWFudWFsJyIsIHBhdGgsIE5vbmUpKQorICAgICAg
ICBlcnJvcnMuYXBwZW5kKHJ1bGVzLkNvbnRlbnRNYW51YWwuZXJyb3IocGF0aCkpCiAKICAgICBp
ZiBzb3VyY2VfZmlsZS50eXBlID09ICJ2aXN1YWwiIGFuZCBub3Qgc291cmNlX2ZpbGUubmFtZV9p
c192aXN1YWw6Ci0gICAgICAgIGVycm9ycy5hcHBlbmQoKCJDT05URU5ULVZJU1VBTCIsICJWaXN1
YWwgdGVzdCB3aG9zZSBmaWxlbmFtZSBkb2Vzbid0IGVuZCBpbiAnLXZpc3VhbCciLCBwYXRoLCBO
b25lKSkKKyAgICAgICAgZXJyb3JzLmFwcGVuZChydWxlcy5Db250ZW50VmlzdWFsLmVycm9yKHBh
dGgpKQogCisgICAgYWJvdXRfYmxhbmtfcGFydHMgPSB1cmxzcGxpdCgiYWJvdXQ6YmxhbmsiKQog
ICAgIGZvciByZWZ0ZXN0X25vZGUgaW4gc291cmNlX2ZpbGUucmVmdGVzdF9ub2RlczoKICAgICAg
ICAgaHJlZiA9IHJlZnRlc3Rfbm9kZS5hdHRyaWIuZ2V0KCJocmVmIiwgIiIpLnN0cmlwKHNwYWNl
X2NoYXJzKQogICAgICAgICBwYXJ0cyA9IHVybHNwbGl0KGhyZWYpCi0gICAgICAgIGlmIChwYXJ0
cy5zY2hlbWUgb3IgcGFydHMubmV0bG9jKSBhbmQgcGFydHMgIT0gdXJsc3BsaXQoImFib3V0OmJs
YW5rIik6Ci0gICAgICAgICAgICBlcnJvcnMuYXBwZW5kKCgiQUJTT0xVVEUtVVJMLVJFRiIsCi0g
ICAgICAgICAgICAgICAgICAgICAiUmVmZXJlbmNlIHRlc3Qgd2l0aCBhIHJlZmVyZW5jZSBmaWxl
IHNwZWNpZmllZCB2aWEgYW4gYWJzb2x1dGUgVVJMOiAnJXMnIiAlIGhyZWYsIHBhdGgsIE5vbmUp
KQorCisgICAgICAgIGlmIHBhcnRzID09IGFib3V0X2JsYW5rX3BhcnRzOgorICAgICAgICAgICAg
Y29udGludWUKKworICAgICAgICBpZiAocGFydHMuc2NoZW1lIG9yIHBhcnRzLm5ldGxvYyk6Cisg
ICAgICAgICAgICBlcnJvcnMuYXBwZW5kKHJ1bGVzLkFic29sdXRlVXJsUmVmLmVycm9yKHBhdGgs
IChocmVmLCkpKQogICAgICAgICAgICAgY29udGludWUKIAogICAgICAgICByZWZfdXJsID0gdXJs
am9pbihzb3VyY2VfZmlsZS51cmwsIGhyZWYpCiAgICAgICAgIHJlZl9wYXJ0cyA9IHVybHNwbGl0
KHJlZl91cmwpCiAKICAgICAgICAgaWYgc291cmNlX2ZpbGUudXJsID09IHJlZl91cmw6Ci0gICAg
ICAgICAgICBlcnJvcnMuYXBwZW5kKCgiU0FNRS1GSUxFLVJFRiIsCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAiUmVmZXJlbmNlIHRlc3Qgd2hpY2ggcG9pbnRzIGF0IGl0c2VsZiBhcyBhIHJl
ZmVyZW5jZSIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICBwYXRoLAotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgTm9uZSkpCisgICAgICAgICAgICBlcnJvcnMuYXBwZW5kKHJ1bGVzLlNh
bWVGaWxlUmVmLmVycm9yKHBhdGgpKQogICAgICAgICAgICAgY29udGludWUKIAogICAgICAgICBh
c3NlcnQgcmVmX3BhcnRzLnBhdGggIT0gIiIKQEAgLTQ4MSw0NSArNDYyLDM5IEBAIGRlZiBjaGVj
a19wYXJzZWQocmVwb19yb290LCBwYXRoLCBmKToKICAgICAgICAgcmVmZXJlbmNlX3JlbCA9IHJl
ZnRlc3Rfbm9kZS5hdHRyaWIuZ2V0KCJyZWwiLCAiIikKIAogICAgICAgICBpZiBub3Qgb3MucGF0
aC5pc2ZpbGUocmVmZXJlbmNlX2ZpbGUpOgotICAgICAgICAgICAgZXJyb3JzLmFwcGVuZCgoIk5P
Ti1FWElTVEVOVC1SRUYiLAotICAgICAgICAgICAgICAgICAgICAgIlJlZmVyZW5jZSB0ZXN0IHdp
dGggYSBub24tZXhpc3RlbnQgJyVzJyByZWxhdGlvbnNoaXAgcmVmZXJlbmNlOiAnJXMnIiAlIChy
ZWZlcmVuY2VfcmVsLCBocmVmKSwgcGF0aCwgTm9uZSkpCisgICAgICAgICAgICBlcnJvcnMuYXBw
ZW5kKHJ1bGVzLk5vbmV4aXN0ZW50UmVmLmVycm9yKHBhdGgsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChyZWZlcmVuY2VfcmVsLCBocmVmKSkp
CiAKICAgICBpZiBsZW4oc291cmNlX2ZpbGUudGltZW91dF9ub2RlcykgPiAxOgotICAgICAgICBl
cnJvcnMuYXBwZW5kKCgiTVVMVElQTEUtVElNRU9VVCIsICJNb3JlIHRoYW4gb25lIG1ldGEgbmFt
ZT0ndGltZW91dCciLCBwYXRoLCBOb25lKSkKKyAgICAgICAgZXJyb3JzLmFwcGVuZChydWxlcy5N
dWx0aXBsZVRpbWVvdXQuZXJyb3IocGF0aCkpCiAKICAgICBmb3IgdGltZW91dF9ub2RlIGluIHNv
dXJjZV9maWxlLnRpbWVvdXRfbm9kZXM6CiAgICAgICAgIHRpbWVvdXRfdmFsdWUgPSB0aW1lb3V0
X25vZGUuYXR0cmliLmdldCgiY29udGVudCIsICIiKS5sb3dlcigpCiAgICAgICAgIGlmIHRpbWVv
dXRfdmFsdWUgIT0gImxvbmciOgotICAgICAgICAgICAgZXJyb3JzLmFwcGVuZCgoIklOVkFMSUQt
VElNRU9VVCIsICJJbnZhbGlkIHRpbWVvdXQgdmFsdWUgJXMiICUgdGltZW91dF92YWx1ZSwgcGF0
aCwgTm9uZSkpCisgICAgICAgICAgICBlcnJvcnMuYXBwZW5kKHJ1bGVzLkludmFsaWRUaW1lb3V0
LmVycm9yKHBhdGgsICh0aW1lb3V0X3ZhbHVlLCkpKQogCiAgICAgaWYgc291cmNlX2ZpbGUudGVz
dGhhcm5lc3Nfbm9kZXM6CiAgICAgICAgIGlmIGxlbihzb3VyY2VfZmlsZS50ZXN0aGFybmVzc19u
b2RlcykgPiAxOgotICAgICAgICAgICAgZXJyb3JzLmFwcGVuZCgoIk1VTFRJUExFLVRFU1RIQVJO
RVNTIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICJNb3JlIHRoYW4gb25lIDxzY3JpcHQg
c3JjPScvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzJz4iLCBwYXRoLCBOb25lKSkKKyAgICAgICAg
ICAgIGVycm9ycy5hcHBlbmQocnVsZXMuTXVsdGlwbGVUZXN0aGFybmVzcy5lcnJvcihwYXRoKSkK
IAogICAgICAgICB0ZXN0aGFybmVzc3JlcG9ydF9ub2RlcyA9IHNvdXJjZV9maWxlLnJvb3QuZmlu
ZGFsbCgiLi8ve2h0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWx9c2NyaXB0W0BzcmM9Jy9yZXNv
dXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMnXSIpCiAgICAgICAgIGlmIG5vdCB0ZXN0aGFybmVz
c3JlcG9ydF9ub2RlczoKLSAgICAgICAgICAgIGVycm9ycy5hcHBlbmQoKCJNSVNTSU5HLVRFU1RI
QVJORVNTUkVQT1JUIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICJNaXNzaW5nIDxzY3Jp
cHQgc3JjPScvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzJz4iLCBwYXRoLCBOb25lKSkK
KyAgICAgICAgICAgIGVycm9ycy5hcHBlbmQocnVsZXMuTWlzc2luZ1Rlc3RoYXJuZXNzUmVwb3J0
LmVycm9yKHBhdGgpKQogICAgICAgICBlbHNlOgogICAgICAgICAgICAgaWYgbGVuKHRlc3RoYXJu
ZXNzcmVwb3J0X25vZGVzKSA+IDE6Ci0gICAgICAgICAgICAgICAgZXJyb3JzLmFwcGVuZCgoIk1V
TFRJUExFLVRFU1RIQVJORVNTUkVQT1JUIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAiTW9yZSB0aGFuIG9uZSA8c2NyaXB0IHNyYz0nL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9y
dC5qcyc+IiwgcGF0aCwgTm9uZSkpCisgICAgICAgICAgICAgICAgZXJyb3JzLmFwcGVuZChydWxl
cy5NdWx0aXBsZVRlc3RoYXJuZXNzUmVwb3J0LmVycm9yKHBhdGgpKQogCiAgICAgICAgIHRlc3Ro
YXJuZXNzY3NzX25vZGVzID0gc291cmNlX2ZpbGUucm9vdC5maW5kYWxsKCIuLy97aHR0cDovL3d3
dy53My5vcmcvMTk5OS94aHRtbH1saW5rW0BocmVmPScvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmNz
cyddIikKICAgICAgICAgaWYgdGVzdGhhcm5lc3Njc3Nfbm9kZXM6Ci0gICAgICAgICAgICBlcnJv
cnMuYXBwZW5kKCgiUFJFU0VOVC1URVNUSEFSTkVTU0NTUyIsCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAiRXhwbGljaXQgbGluayB0byB0ZXN0aGFybmVzcy5jc3MgcHJlc2VudCIsIHBhdGgs
IE5vbmUpKQorICAgICAgICAgICAgZXJyb3JzLmFwcGVuZChydWxlcy5QcmVzZW50VGVzdGhhcm5l
c3NDU1MuZXJyb3IocGF0aCkpCiAKICAgICAgICAgZm9yIGVsZW1lbnQgaW4gc291cmNlX2ZpbGUu
dmFyaWFudF9ub2RlczoKICAgICAgICAgICAgIGlmICJjb250ZW50IiBub3QgaW4gZWxlbWVudC5h
dHRyaWI6Ci0gICAgICAgICAgICAgICAgZXJyb3JzLmFwcGVuZCgoIlZBUklBTlQtTUlTU0lORyIs
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIjxtZXRhIG5hbWU9dmFyaWFudD4gbWlz
c2luZyAnY29udGVudCcgYXR0cmlidXRlIiwgcGF0aCwgTm9uZSkpCisgICAgICAgICAgICAgICAg
ZXJyb3JzLmFwcGVuZChydWxlcy5WYXJpYW50TWlzc2luZy5lcnJvcihwYXRoKSkKICAgICAgICAg
ICAgIGVsc2U6CiAgICAgICAgICAgICAgICAgdmFyaWFudCA9IGVsZW1lbnQuYXR0cmliWyJjb250
ZW50Il0KICAgICAgICAgICAgICAgICBpZiB2YXJpYW50ICE9ICIiIGFuZCB2YXJpYW50WzBdIG5v
dCBpbiAoIj8iLCAiIyIpOgotICAgICAgICAgICAgICAgICAgICBlcnJvcnMuYXBwZW5kKCgiTUFM
Rk9STUVELVZBUklBTlQiLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIlcyA8bWV0
YSBuYW1lPXZhcmlhbnQ+ICdjb250ZW50JyBhdHRyaWJ1dGUgbXVzdCBiZSB0aGUgZW1wdHkgc3Ry
aW5nIG9yIHN0YXJ0IHdpdGggJz8nIG9yICcjJyIgJSBwYXRoLCBOb25lKSkKKyAgICAgICAgICAg
ICAgICAgICAgZXJyb3JzLmFwcGVuZChydWxlcy5NYWxmb3JtZWRWYXJpYW50LmVycm9yKHBhdGgs
IChwYXRoLCkpKQogCiAgICAgICAgIHNlZW5fZWxlbWVudHMgPSB7InRpbWVvdXQiOiBGYWxzZSwK
ICAgICAgICAgICAgICAgICAgICAgICAgICAidGVzdGhhcm5lc3MiOiBGYWxzZSwKQEAgLTUzMyw4
ICs1MDgsNyBAQCBkZWYgY2hlY2tfcGFyc2VkKHJlcG9fcm9vdCwgcGF0aCwgZik6CiAgICAgICAg
ICAgICBpZiBzb3VyY2VfZmlsZS50aW1lb3V0X25vZGVzIGFuZCBlbGVtID09IHNvdXJjZV9maWxl
LnRpbWVvdXRfbm9kZXNbMF06CiAgICAgICAgICAgICAgICAgc2Vlbl9lbGVtZW50c1sidGltZW91
dCJdID0gVHJ1ZQogICAgICAgICAgICAgICAgIGlmIHNlZW5fZWxlbWVudHNbInRlc3RoYXJuZXNz
Il06Ci0gICAgICAgICAgICAgICAgICAgIGVycm9ycy5hcHBlbmQoKCJMQVRFLVRJTUVPVVQiLAot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiPG1ldGEgbmFtZT10aW1lb3V0PiBz
ZWVuIGFmdGVyIHRlc3RoYXJuZXNzLmpzIHNjcmlwdCIsIHBhdGgsIE5vbmUpKQorICAgICAgICAg
ICAgICAgICAgICBlcnJvcnMuYXBwZW5kKHJ1bGVzLkxhdGVUaW1lb3V0LmVycm9yKHBhdGgpKQog
CiAgICAgICAgICAgICBlbGlmIGVsZW0gPT0gc291cmNlX2ZpbGUudGVzdGhhcm5lc3Nfbm9kZXNb
MF06CiAgICAgICAgICAgICAgICAgc2Vlbl9lbGVtZW50c1sidGVzdGhhcm5lc3MiXSA9IFRydWUK
QEAgLTU0Miw1MiArNTE2LDY0IEBAIGRlZiBjaGVja19wYXJzZWQocmVwb19yb290LCBwYXRoLCBm
KToKICAgICAgICAgICAgIGVsaWYgdGVzdGhhcm5lc3NyZXBvcnRfbm9kZXMgYW5kIGVsZW0gPT0g
dGVzdGhhcm5lc3NyZXBvcnRfbm9kZXNbMF06CiAgICAgICAgICAgICAgICAgc2Vlbl9lbGVtZW50
c1sidGVzdGhhcm5lc3NyZXBvcnQiXSA9IFRydWUKICAgICAgICAgICAgICAgICBpZiBub3Qgc2Vl
bl9lbGVtZW50c1sidGVzdGhhcm5lc3MiXToKLSAgICAgICAgICAgICAgICAgICAgZXJyb3JzLmFw
cGVuZCgoIkVBUkxZLVRFU1RIQVJORVNTUkVQT1JUIiwKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgInRlc3RoYXJuZXNzcmVwb3J0LmpzIHNjcmlwdCBzZWVuIGJlZm9yZSB0ZXN0
aGFybmVzcy5qcyBzY3JpcHQiLCBwYXRoLCBOb25lKSkKKyAgICAgICAgICAgICAgICAgICAgZXJy
b3JzLmFwcGVuZChydWxlcy5FYXJseVRlc3RoYXJuZXNzUmVwb3J0LmVycm9yKHBhdGgpKQogCiAg
ICAgICAgICAgICBpZiBhbGwoc2Vlbl9lbGVtZW50c1tuYW1lXSBmb3IgbmFtZSBpbiByZXF1aXJl
ZF9lbGVtZW50cyk6CiAgICAgICAgICAgICAgICAgYnJlYWsKIAogICAgIGlmIHNvdXJjZV9maWxl
LnRlc3Rkcml2ZXJfbm9kZXM6CiAgICAgICAgIGlmIGxlbihzb3VyY2VfZmlsZS50ZXN0ZHJpdmVy
X25vZGVzKSA+IDE6Ci0gICAgICAgICAgICBlcnJvcnMuYXBwZW5kKCgiTVVMVElQTEUtVEVTVERS
SVZFUiIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAiTW9yZSB0aGFuIG9uZSA8c2NyaXB0
IHNyYz0nL3Jlc291cmNlcy90ZXN0ZHJpdmVyLmpzJz4iLCBwYXRoLCBOb25lKSkKKyAgICAgICAg
ICAgIGVycm9ycy5hcHBlbmQocnVsZXMuTXVsdGlwbGVUZXN0ZHJpdmVyLmVycm9yKHBhdGgpKQog
CiAgICAgICAgIHRlc3Rkcml2ZXJfdmVuZG9yX25vZGVzID0gc291cmNlX2ZpbGUucm9vdC5maW5k
YWxsKCIuLy97aHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbH1zY3JpcHRbQHNyYz0nL3Jlc291
cmNlcy90ZXN0ZHJpdmVyLXZlbmRvci5qcyddIikKICAgICAgICAgaWYgbm90IHRlc3Rkcml2ZXJf
dmVuZG9yX25vZGVzOgotICAgICAgICAgICAgZXJyb3JzLmFwcGVuZCgoIk1JU1NJTkctVEVTVERS
SVZFUi1WRU5ET1IiLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIk1pc3NpbmcgPHNjcmlw
dCBzcmM9Jy9yZXNvdXJjZXMvdGVzdGRyaXZlci12ZW5kb3IuanMnPiIsIHBhdGgsIE5vbmUpKQor
ICAgICAgICAgICAgZXJyb3JzLmFwcGVuZChydWxlcy5NaXNzaW5nVGVzdGRyaXZlclZlbmRvci5l
cnJvcihwYXRoKSkKICAgICAgICAgZWxzZToKICAgICAgICAgICAgIGlmIGxlbih0ZXN0ZHJpdmVy
X3ZlbmRvcl9ub2RlcykgPiAxOgotICAgICAgICAgICAgICAgIGVycm9ycy5hcHBlbmQoKCJNVUxU
SVBMRS1URVNURFJJVkVSLVZFTkRPUiIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
Ik1vcmUgdGhhbiBvbmUgPHNjcmlwdCBzcmM9Jy9yZXNvdXJjZXMvdGVzdGRyaXZlci12ZW5kb3Iu
anMnPiIsIHBhdGgsIE5vbmUpKQorICAgICAgICAgICAgICAgIGVycm9ycy5hcHBlbmQocnVsZXMu
TXVsdGlwbGVUZXN0ZHJpdmVyVmVuZG9yLmVycm9yKHBhdGgpKQogCiAgICAgZm9yIGVsZW1lbnQg
aW4gc291cmNlX2ZpbGUucm9vdC5maW5kYWxsKCIuLy97aHR0cDovL3d3dy53My5vcmcvMTk5OS94
aHRtbH1zY3JpcHRbQHNyY10iKToKICAgICAgICAgc3JjID0gZWxlbWVudC5hdHRyaWJbInNyYyJd
Ci0gICAgICAgIGZvciBuYW1lIGluIFsidGVzdGhhcm5lc3MiLCAidGVzdGhhcm5lc3NyZXBvcnQi
LCAidGVzdGRyaXZlciIsICJ0ZXN0ZHJpdmVyLXZlbmRvciJdOgotICAgICAgICAgICAgaWYgIiVz
LmpzIiAlIG5hbWUgPT0gc3JjIG9yICgiLyVzLmpzIiAlIG5hbWUgaW4gc3JjIGFuZCBzcmMgIT0g
Ii9yZXNvdXJjZXMvJXMuanMiICUgbmFtZSk6Ci0gICAgICAgICAgICAgICAgZXJyb3JzLmFwcGVu
ZCgoIiVzLVBBVEgiICUgbmFtZS51cHBlcigpLCAiJXMuanMgc2NyaXB0IHNlZW4gd2l0aCBpbmNv
cnJlY3QgcGF0aCIgJSBuYW1lLCBwYXRoLCBOb25lKSkKKworICAgICAgICBkZWYgaW5jb3JyZWN0
X3BhdGgoc2NyaXB0LCBzcmMpOgorICAgICAgICAgICAgIyB0eXBlOiAoVGV4dCwgVGV4dCkgLT4g
Ym9vbAorICAgICAgICAgICAgcmV0dXJuIChzY3JpcHQgPT0gc3JjIG9yCisgICAgICAgICAgICAg
ICAgKCIvJXMiICUgc2NyaXB0IGluIHNyYyBhbmQgc3JjICE9ICIvcmVzb3VyY2VzLyVzIiAlIHNj
cmlwdCkpCisKKyAgICAgICAgaWYgaW5jb3JyZWN0X3BhdGgoInRlc3RoYXJuZXNzLmpzIiwgc3Jj
KToKKyAgICAgICAgICAgIGVycm9ycy5hcHBlbmQocnVsZXMuVGVzdGhhcm5lc3NQYXRoLmVycm9y
KHBhdGgpKQorCisgICAgICAgIGlmIGluY29ycmVjdF9wYXRoKCJ0ZXN0aGFybmVzc3JlcG9ydC5q
cyIsIHNyYyk6CisgICAgICAgICAgICBlcnJvcnMuYXBwZW5kKHJ1bGVzLlRlc3RoYXJuZXNzUmVw
b3J0UGF0aC5lcnJvcihwYXRoKSkKKworICAgICAgICBpZiBpbmNvcnJlY3RfcGF0aCgidGVzdGRy
aXZlci5qcyIsIHNyYyk6CisgICAgICAgICAgICBlcnJvcnMuYXBwZW5kKHJ1bGVzLlRlc3Rkcml2
ZXJQYXRoLmVycm9yKHBhdGgpKQorCisgICAgICAgIGlmIGluY29ycmVjdF9wYXRoKCJ0ZXN0ZHJp
dmVyLXZlbmRvci5qcyIsIHNyYyk6CisgICAgICAgICAgICBlcnJvcnMuYXBwZW5kKHJ1bGVzLlRl
c3Rkcml2ZXJWZW5kb3JQYXRoLmVycm9yKHBhdGgpKQogCiAgICAgcmV0dXJuIGVycm9ycwogCi1j
bGFzcyBBU1RDaGVjayhvYmplY3QpOgotICAgIF9fbWV0YWNsYXNzX18gPSBhYmMuQUJDTWV0YQot
ICAgIGVycm9yID0gTm9uZQotICAgIGRlc2NyaXB0aW9uID0gTm9uZQorY2xhc3MgQVNUQ2hlY2so
d2l0aF9tZXRhY2xhc3MoYWJjLkFCQ01ldGEpKToKKyAgICBAYWJjLmFic3RyYWN0cHJvcGVydHkK
KyAgICBkZWYgcnVsZShzZWxmKToKKyAgICAgICAgIyB0eXBlOiAoKSAtPiBUeXBlW3J1bGVzLlJ1
bGVdCisgICAgICAgIHBhc3MKIAogICAgIEBhYmMuYWJzdHJhY3RtZXRob2QKICAgICBkZWYgY2hl
Y2soc2VsZiwgcm9vdCk6CisgICAgICAgICMgdHlwZTogKGFzdC5BU1QpIC0+IExpc3RbaW50XQog
ICAgICAgICBwYXNzCiAKIGNsYXNzIE9wZW5Nb2RlQ2hlY2soQVNUQ2hlY2spOgotICAgIGVycm9y
ID0gIk9QRU4tTk8tTU9ERSIKLSAgICBkZXNjcmlwdGlvbiA9ICJGaWxlIG9wZW5lZCB3aXRob3V0
IHByb3ZpZGluZyBhbiBleHBsaWNpdCBtb2RlIChub3RlOiBiaW5hcnkgZmlsZXMgbXVzdCBiZSBy
ZWFkIHdpdGggJ2InIGluIHRoZSBtb2RlIGZsYWdzKSIKKyAgICBydWxlID0gcnVsZXMuT3Blbk5v
TW9kZQogCiAgICAgZGVmIGNoZWNrKHNlbGYsIHJvb3QpOgorICAgICAgICAjIHR5cGU6IChhc3Qu
QVNUKSAtPiBMaXN0W2ludF0KICAgICAgICAgZXJyb3JzID0gW10KICAgICAgICAgZm9yIG5vZGUg
aW4gYXN0LndhbGsocm9vdCk6CiAgICAgICAgICAgICBpZiBpc2luc3RhbmNlKG5vZGUsIGFzdC5D
YWxsKToKLSAgICAgICAgICAgICAgICBpZiBoYXNhdHRyKG5vZGUuZnVuYywgImlkIikgYW5kIG5v
ZGUuZnVuYy5pZCBpbiAoIm9wZW4iLCAiZmlsZSIpOgorICAgICAgICAgICAgICAgIGlmIGhhc2F0
dHIobm9kZS5mdW5jLCAiaWQiKSBhbmQgbm9kZS5mdW5jLmlkIGluICgib3BlbiIsICJmaWxlIik6
ICAjIHR5cGU6IGlnbm9yZQogICAgICAgICAgICAgICAgICAgICBpZiAobGVuKG5vZGUuYXJncykg
PCAyIGFuZAogICAgICAgICAgICAgICAgICAgICAgICAgYWxsKGl0ZW0uYXJnICE9ICJtb2RlIiBm
b3IgaXRlbSBpbiBub2RlLmtleXdvcmRzKSk6CiAgICAgICAgICAgICAgICAgICAgICAgICBlcnJv
cnMuYXBwZW5kKG5vZGUubGluZW5vKQpAQCAtNTk2LDI2ICs1ODIsMjggQEAgY2xhc3MgT3Blbk1v
ZGVDaGVjayhBU1RDaGVjayk6CiBhc3RfY2hlY2tlcnMgPSBbaXRlbSgpIGZvciBpdGVtIGluIFtP
cGVuTW9kZUNoZWNrXV0KIAogZGVmIGNoZWNrX3B5dGhvbl9hc3QocmVwb19yb290LCBwYXRoLCBm
KToKKyAgICAjIHR5cGU6IChzdHIsIHN0ciwgSU9bYnl0ZXNdKSAtPiBMaXN0W3J1bGVzLkVycm9y
XQogICAgIGlmIG5vdCBwYXRoLmVuZHN3aXRoKCIucHkiKToKICAgICAgICAgcmV0dXJuIFtdCiAK
ICAgICB0cnk6CiAgICAgICAgIHJvb3QgPSBhc3QucGFyc2UoZi5yZWFkKCkpCiAgICAgZXhjZXB0
IFN5bnRheEVycm9yIGFzIGU6Ci0gICAgICAgIHJldHVybiBbKCJQQVJTRS1GQUlMRUQiLCAiVW5h
YmxlIHRvIHBhcnNlIGZpbGUiLCBwYXRoLCBlLmxpbmVubyldCisgICAgICAgIHJldHVybiBbcnVs
ZXMuUGFyc2VGYWlsZWQuZXJyb3IocGF0aCwgbGluZV9ubz1lLmxpbmVubyldCiAKICAgICBlcnJv
cnMgPSBbXQogICAgIGZvciBjaGVja2VyIGluIGFzdF9jaGVja2VyczoKICAgICAgICAgZm9yIGxp
bmVubyBpbiBjaGVja2VyLmNoZWNrKHJvb3QpOgotICAgICAgICAgICAgZXJyb3JzLmFwcGVuZCgo
Y2hlY2tlci5lcnJvciwgY2hlY2tlci5kZXNjcmlwdGlvbiwgcGF0aCwgbGluZW5vKSkKKyAgICAg
ICAgICAgIGVycm9ycy5hcHBlbmQoY2hlY2tlci5ydWxlLmVycm9yKHBhdGgsIGxpbmVfbm89bGlu
ZW5vKSkKICAgICByZXR1cm4gZXJyb3JzCiAKIAotYnJva2VuX2pzX21ldGFkYXRhID0gcmUuY29t
cGlsZShiIi8vXHMqTUVUQToiKQotYnJva2VuX3B5dGhvbl9tZXRhZGF0YSA9IHJlLmNvbXBpbGUo
YiIjXHMqTUVUQToiKQorYnJva2VuX2pzX21ldGFkYXRhID0gcmUuY29tcGlsZShiciIvL1xzKk1F
VEE6IikKK2Jyb2tlbl9weXRob25fbWV0YWRhdGEgPSByZS5jb21waWxlKGJyIiNccypNRVRBOiIp
CiAKIAogZGVmIGNoZWNrX2dsb2JhbF9tZXRhZGF0YSh2YWx1ZSk6CisgICAgIyB0eXBlOiAoc3Ry
KSAtPiBJdGVyYWJsZVtUdXBsZVtUeXBlW3J1bGVzLlJ1bGVdLCBUdXBsZVtBbnksIC4uLl1dXQog
ICAgIGdsb2JhbF92YWx1ZXMgPSB7aXRlbS5zdHJpcCgpIGZvciBpdGVtIGluIHZhbHVlLnNwbGl0
KGIiLCIpIGlmIGl0ZW0uc3RyaXAoKX0KIAogICAgIGluY2x1ZGVkX3ZhcmlhbnRzID0gc2V0LnVu
aW9uKGdldF9kZWZhdWx0X2FueV92YXJpYW50cygpLApAQCAtNjI1LDIyICs2MTMsMjUgQEAgZGVm
IGNoZWNrX2dsb2JhbF9tZXRhZGF0YSh2YWx1ZSk6CiAgICAgICAgIGlmIGdsb2JhbF92YWx1ZS5z
dGFydHN3aXRoKGIiISIpOgogICAgICAgICAgICAgZXhjbHVkZWRfdmFsdWUgPSBnbG9iYWxfdmFs
dWVbMTpdCiAgICAgICAgICAgICBpZiBub3QgZ2V0X2FueV92YXJpYW50cyhleGNsdWRlZF92YWx1
ZSk6Ci0gICAgICAgICAgICAgICAgeWllbGQgKCJVTktOT1dOLUdMT0JBTC1NRVRBREFUQSIsICJV
bmV4cGVjdGVkIHZhbHVlIGZvciBnbG9iYWwgbWV0YWRhdGEiKQorICAgICAgICAgICAgICAgIHlp
ZWxkIChydWxlcy5Vbmtub3duR2xvYmFsTWV0YWRhdGEsICgpKQogCiAgICAgICAgICAgICBlbGlm
IGV4Y2x1ZGVkX3ZhbHVlIGluIGdsb2JhbF92YWx1ZXM6Ci0gICAgICAgICAgICAgICAgeWllbGQg
KCJCUk9LRU4tR0xPQkFMLU1FVEFEQVRBIiwgIkNhbm5vdCBzcGVjaWZ5IGJvdGggJXMgYW5kICVz
IiAlIChnbG9iYWxfdmFsdWUsIGV4Y2x1ZGVkX3ZhbHVlKSkKKyAgICAgICAgICAgICAgICB5aWVs
ZCAocnVsZXMuQnJva2VuR2xvYmFsTWV0YWRhdGEsCisgICAgICAgICAgICAgICAgICAgICAgICgo
IkNhbm5vdCBzcGVjaWZ5IGJvdGggJXMgYW5kICVzIiAlIChnbG9iYWxfdmFsdWUsIGV4Y2x1ZGVk
X3ZhbHVlKSksKSkKIAogICAgICAgICAgICAgZWxzZToKICAgICAgICAgICAgICAgICBleGNsdWRl
ZF92YXJpYW50cyA9IGdldF9hbnlfdmFyaWFudHMoZXhjbHVkZWRfdmFsdWUpCiAgICAgICAgICAg
ICAgICAgaWYgbm90IChleGNsdWRlZF92YXJpYW50cyAmIGluY2x1ZGVkX3ZhcmlhbnRzKToKLSAg
ICAgICAgICAgICAgICAgICAgeWllbGQgKCJCUk9LRU4tR0xPQkFMLU1FVEFEQVRBIiwgIkNhbm5v
dCBleGNsdWRlICVzIGlmIGl0IGlzIG5vdCBpbmNsdWRlZCIgJSAoZXhjbHVkZWRfdmFsdWUsKSkK
KyAgICAgICAgICAgICAgICAgICAgeWllbGQgKHJ1bGVzLkJyb2tlbkdsb2JhbE1ldGFkYXRhLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgKCgiQ2Fubm90IGV4Y2x1ZGUgJXMgaWYgaXQgaXMg
bm90IGluY2x1ZGVkIiAlIChleGNsdWRlZF92YWx1ZSwpKSwpKQogCiAgICAgICAgIGVsc2U6CiAg
ICAgICAgICAgICBpZiBub3QgZ2V0X2FueV92YXJpYW50cyhnbG9iYWxfdmFsdWUpOgotICAgICAg
ICAgICAgICAgIHlpZWxkICgiVU5LTk9XTi1HTE9CQUwtTUVUQURBVEEiLCAiVW5leHBlY3RlZCB2
YWx1ZSBmb3IgZ2xvYmFsIG1ldGFkYXRhIikKKyAgICAgICAgICAgICAgICB5aWVsZCAocnVsZXMu
VW5rbm93bkdsb2JhbE1ldGFkYXRhLCAoKSkKIAogCiBkZWYgY2hlY2tfc2NyaXB0X21ldGFkYXRh
KHJlcG9fcm9vdCwgcGF0aCwgZik6CisgICAgIyB0eXBlOiAoc3RyLCBzdHIsIElPW2J5dGVzXSkg
LT4gTGlzdFtydWxlcy5FcnJvcl0KICAgICBpZiBwYXRoLmVuZHN3aXRoKCgiLndvcmtlci5qcyIs
ICIuYW55LmpzIikpOgogICAgICAgICBtZXRhX3JlID0ganNfbWV0YV9yZQogICAgICAgICBicm9r
ZW5fbWV0YWRhdGEgPSBicm9rZW5fanNfbWV0YWRhdGEKQEAgLTY1OSwxMCArNjUwLDEyIEBAIGRl
ZiBjaGVja19zY3JpcHRfbWV0YWRhdGEocmVwb19yb290LCBwYXRoLCBmKToKICAgICAgICAgaWYg
bToKICAgICAgICAgICAgIGtleSwgdmFsdWUgPSBtLmdyb3VwcygpCiAgICAgICAgICAgICBpZiBr
ZXkgPT0gYiJnbG9iYWwiOgotICAgICAgICAgICAgICAgIGVycm9ycy5leHRlbmQoKGtpbmQsIG1l
c3NhZ2UsIHBhdGgsIGlkeCArIDEpIGZvciAoa2luZCwgbWVzc2FnZSkgaW4gY2hlY2tfZ2xvYmFs
X21ldGFkYXRhKHZhbHVlKSkKKyAgICAgICAgICAgICAgICBmb3IgcnVsZV9jbGFzcywgY29udGV4
dCBpbiBjaGVja19nbG9iYWxfbWV0YWRhdGEodmFsdWUpOgorICAgICAgICAgICAgICAgICAgICBl
cnJvcnMuYXBwZW5kKHJ1bGVfY2xhc3MuZXJyb3IocGF0aCwgY29udGV4dCwgaWR4ICsgMSkpCiAg
ICAgICAgICAgICBlbGlmIGtleSA9PSBiInRpbWVvdXQiOgogICAgICAgICAgICAgICAgIGlmIHZh
bHVlICE9IGIibG9uZyI6Ci0gICAgICAgICAgICAgICAgICAgIGVycm9ycy5hcHBlbmQoKCJVTktO
T1dOLVRJTUVPVVQtTUVUQURBVEEiLCAiVW5leHBlY3RlZCB2YWx1ZSBmb3IgdGltZW91dCBtZXRh
ZGF0YSIsIHBhdGgsIGlkeCArIDEpKQorICAgICAgICAgICAgICAgICAgICBlcnJvcnMuYXBwZW5k
KHJ1bGVzLlVua25vd25UaW1lb3V0TWV0YWRhdGEuZXJyb3IocGF0aCwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxp
bmVfbm89aWR4ICsgMSkpCiAgICAgICAgICAgICBlbGlmIGtleSA9PSBiInRpdGxlIjoKICAgICAg
ICAgICAgICAgICBwYXNzCiAgICAgICAgICAgICBlbGlmIGtleSA9PSBiInNjcmlwdCI6CkBAIC02
NzAsMjIgKzY2Myw0MyBAQCBkZWYgY2hlY2tfc2NyaXB0X21ldGFkYXRhKHJlcG9fcm9vdCwgcGF0
aCwgZik6CiAgICAgICAgICAgICBlbGlmIGtleSA9PSBiInZhcmlhbnQiOgogICAgICAgICAgICAg
ICAgIHBhc3MKICAgICAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAgICAgZXJyb3JzLmFwcGVu
ZCgoIlVOS05PV04tTUVUQURBVEEiLCAiVW5leHBlY3RlZCBraW5kIG9mIG1ldGFkYXRhIiwgcGF0
aCwgaWR4ICsgMSkpCisgICAgICAgICAgICAgICAgZXJyb3JzLmFwcGVuZChydWxlcy5Vbmtub3du
TWV0YWRhdGEuZXJyb3IocGF0aCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBsaW5lX25vPWlkeCArIDEpKQogICAgICAgICBlbHNlOgog
ICAgICAgICAgICAgZG9uZSA9IFRydWUKIAogICAgICAgICBpZiBkb25lOgogICAgICAgICAgICAg
aWYgbWV0YV9yZS5tYXRjaChsaW5lKToKLSAgICAgICAgICAgICAgICBlcnJvcnMuYXBwZW5kKCgi
U1RSQVktTUVUQURBVEEiLCAiTWV0YWRhdGEgY29tbWVudHMgc2hvdWxkIHN0YXJ0IHRoZSBmaWxl
IiwgcGF0aCwgaWR4ICsgMSkpCisgICAgICAgICAgICAgICAgZXJyb3JzLmFwcGVuZChydWxlcy5T
dHJheU1ldGFkYXRhLmVycm9yKHBhdGgsIGxpbmVfbm89aWR4ICsgMSkpCiAgICAgICAgICAgICBl
bGlmIG1ldGFfcmUuc2VhcmNoKGxpbmUpOgotICAgICAgICAgICAgICAgIGVycm9ycy5hcHBlbmQo
KCJJTkRFTlRFRC1NRVRBREFUQSIsICJNZXRhZGF0YSBjb21tZW50cyBzaG91bGQgc3RhcnQgdGhl
IGxpbmUiLCBwYXRoLCBpZHggKyAxKSkKKyAgICAgICAgICAgICAgICBlcnJvcnMuYXBwZW5kKHJ1
bGVzLkluZGVudGVkTWV0YWRhdGEuZXJyb3IocGF0aCwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGluZV9ubz1pZHggKyAxKSkKICAg
ICAgICAgICAgIGVsaWYgYnJva2VuX21ldGFkYXRhLnNlYXJjaChsaW5lKToKLSAgICAgICAgICAg
ICAgICBlcnJvcnMuYXBwZW5kKCgiQlJPS0VOLU1FVEFEQVRBIiwgIk1ldGFkYXRhIGNvbW1lbnQg
aXMgbm90IGZvcm1hdHRlZCBjb3JyZWN0bHkiLCBwYXRoLCBpZHggKyAxKSkKKyAgICAgICAgICAg
ICAgICBlcnJvcnMuYXBwZW5kKHJ1bGVzLkJyb2tlbk1ldGFkYXRhLmVycm9yKHBhdGgsIGxpbmVf
bm89aWR4ICsgMSkpCiAKICAgICByZXR1cm4gZXJyb3JzCiAKIAorYWhlbV9mb250X3JlID0gcmUu
Y29tcGlsZShiImZvbnQuKjouKmFoZW0iLCBmbGFncz1yZS5JR05PUkVDQVNFKQorIyBBaGVtIGNh
biBhcHBlYXIgZWl0aGVyIGluIHRoZSBnbG9iYWwgbG9jYXRpb24gb3IgaW4gdGhlIHN1cHBvcnQK
KyMgZGlyZWN0b3J5IGZvciBsZWdhY3kgTW96aWxsYSBpbXBvcnRzCithaGVtX3N0eWxlc2hlZXRf
cmUgPSByZS5jb21waWxlKGIiXC9mb250c1wvYWhlbVwuY3NzfHN1cHBvcnRcL2FoZW0uY3NzIiwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmxhZ3M9cmUuSUdOT1JFQ0FTRSkKKwor
CitkZWYgY2hlY2tfYWhlbV9zeXN0ZW1fZm9udChyZXBvX3Jvb3QsIHBhdGgsIGYpOgorICAgICMg
dHlwZTogKHN0ciwgc3RyLCBJT1tieXRlc10pIC0+IExpc3RbcnVsZXMuRXJyb3JdCisgICAgaWYg
bm90IHBhdGguZW5kc3dpdGgoKCIuaHRtbCIsICIuaHRtIiwgIi54aHQiLCAiLnhodG1sIikpOgor
ICAgICAgICByZXR1cm4gW10KKyAgICBjb250ZW50cyA9IGYucmVhZCgpCisgICAgZXJyb3JzID0g
W10KKyAgICBpZiBhaGVtX2ZvbnRfcmUuc2VhcmNoKGNvbnRlbnRzKSBhbmQgbm90IGFoZW1fc3R5
bGVzaGVldF9yZS5zZWFyY2goY29udGVudHMpOgorICAgICAgICBlcnJvcnMuYXBwZW5kKHJ1bGVz
LkFoZW1TeXN0ZW1Gb250LmVycm9yKHBhdGgpKQorICAgIHJldHVybiBlcnJvcnMKKworCiBkZWYg
Y2hlY2tfcGF0aChyZXBvX3Jvb3QsIHBhdGgpOgorICAgICMgdHlwZTogKHN0ciwgc3RyKSAtPiBM
aXN0W3J1bGVzLkVycm9yXQogICAgICIiIgogICAgIFJ1bnMgbGludHMgdGhhdCBjaGVjayB0aGUg
ZmlsZSBwYXRoLgogCkBAIC03MDEsNiArNzE1LDcgQEAgZGVmIGNoZWNrX3BhdGgocmVwb19yb290
LCBwYXRoKToKIAogCiBkZWYgY2hlY2tfYWxsX3BhdGhzKHJlcG9fcm9vdCwgcGF0aHMpOgorICAg
ICMgdHlwZTogKHN0ciwgTGlzdFtzdHJdKSAtPiBMaXN0W3J1bGVzLkVycm9yXQogICAgICIiIgog
ICAgIFJ1bnMgbGludHMgdGhhdCBjaGVjayBhbGwgcGF0aHMgZ2xvYmFsbHkuCiAKQEAgLTcxNiw2
ICs3MzEsNyBAQCBkZWYgY2hlY2tfYWxsX3BhdGhzKHJlcG9fcm9vdCwgcGF0aHMpOgogCiAKIGRl
ZiBjaGVja19maWxlX2NvbnRlbnRzKHJlcG9fcm9vdCwgcGF0aCwgZik6CisgICAgIyB0eXBlOiAo
c3RyLCBzdHIsIElPW2J5dGVzXSkgLT4gTGlzdFtydWxlcy5FcnJvcl0KICAgICAiIiIKICAgICBS
dW5zIGxpbnRzIHRoYXQgY2hlY2sgdGhlIGZpbGUgY29udGVudHMuCiAKQEAgLTczMyw2ICs3NDks
OCBAQCBkZWYgY2hlY2tfZmlsZV9jb250ZW50cyhyZXBvX3Jvb3QsIHBhdGgsIGYpOgogCiAKIGRl
ZiBvdXRwdXRfZXJyb3JzX3RleHQoZXJyb3JzKToKKyAgICAjIHR5cGU6IChMaXN0W3J1bGVzLkVy
cm9yXSkgLT4gTm9uZQorICAgIGFzc2VydCBsb2dnZXIgaXMgbm90IE5vbmUKICAgICBmb3IgZXJy
b3JfdHlwZSwgZGVzY3JpcHRpb24sIHBhdGgsIGxpbmVfbnVtYmVyIGluIGVycm9yczoKICAgICAg
ICAgcG9zX3N0cmluZyA9IHBhdGgKICAgICAgICAgaWYgbGluZV9udW1iZXI6CkBAIC03NDEsOCAr
NzU5LDEwIEBAIGRlZiBvdXRwdXRfZXJyb3JzX3RleHQoZXJyb3JzKToKIAogCiBkZWYgb3V0cHV0
X2Vycm9yc19tYXJrZG93bihlcnJvcnMpOgorICAgICMgdHlwZTogKExpc3RbcnVsZXMuRXJyb3Jd
KSAtPiBOb25lCiAgICAgaWYgbm90IGVycm9yczoKICAgICAgICAgcmV0dXJuCisgICAgYXNzZXJ0
IGxvZ2dlciBpcyBub3QgTm9uZQogICAgIGhlYWRpbmcgPSAiIiJHb3QgbGludCBlcnJvcnM6CiAK
IHwgRXJyb3IgVHlwZSB8IFBvc2l0aW9uIHwgTWVzc2FnZSB8CkBAIC03NTcsMTUgKzc3NywxOCBA
QCBkZWYgb3V0cHV0X2Vycm9yc19tYXJrZG93bihlcnJvcnMpOgogCiAKIGRlZiBvdXRwdXRfZXJy
b3JzX2pzb24oZXJyb3JzKToKKyAgICAjIHR5cGU6IChMaXN0W3J1bGVzLkVycm9yXSkgLT4gTm9u
ZQogICAgIGZvciBlcnJvcl90eXBlLCBlcnJvciwgcGF0aCwgbGluZV9udW1iZXIgaW4gZXJyb3Jz
OgogICAgICAgICBwcmludChqc29uLmR1bXBzKHsicGF0aCI6IHBhdGgsICJsaW5lbm8iOiBsaW5l
X251bWJlciwKICAgICAgICAgICAgICAgICAgICAgICAgICAgInJ1bGUiOiBlcnJvcl90eXBlLCAi
bWVzc2FnZSI6IGVycm9yfSkpCiAKIAogZGVmIG91dHB1dF9lcnJvcl9jb3VudChlcnJvcl9jb3Vu
dCk6CisgICAgIyB0eXBlOiAoRGljdFtUZXh0LCBpbnRdKSAtPiBOb25lCiAgICAgaWYgbm90IGVy
cm9yX2NvdW50OgogICAgICAgICByZXR1cm4KIAorICAgIGFzc2VydCBsb2dnZXIgaXMgbm90IE5v
bmUKICAgICBieV90eXBlID0gIiAiLmpvaW4oIiVzOiAlZCIgJSBpdGVtIGZvciBpdGVtIGluIGVy
cm9yX2NvdW50Lml0ZW1zKCkpCiAgICAgY291bnQgPSBzdW0oZXJyb3JfY291bnQudmFsdWVzKCkp
CiAgICAgbG9nZ2VyLmluZm8oIiIpCkBAIC03NzYsMTUgKzc5OSwxNyBAQCBkZWYgb3V0cHV0X2Vy
cm9yX2NvdW50KGVycm9yX2NvdW50KToKIAogCiBkZWYgY2hhbmdlZF9maWxlcyh3cHRfcm9vdCk6
CisgICAgIyB0eXBlOiAoc3RyKSAtPiBMaXN0W1RleHRdCiAgICAgcmV2aXNoID0gdGVzdGZpbGVz
LmdldF9yZXZpc2gocmV2aXNoPU5vbmUpCi0gICAgY2hhbmdlZCwgXyA9IHRlc3RmaWxlcy5maWxl
c19jaGFuZ2VkKHJldmlzaCwgc2V0KCksIGluY2x1ZGVfdW5jb21taXR0ZWQ9VHJ1ZSwgaW5jbHVk
ZV9uZXc9VHJ1ZSkKKyAgICBjaGFuZ2VkLCBfID0gdGVzdGZpbGVzLmZpbGVzX2NoYW5nZWQocmV2
aXNoLCBOb25lLCBpbmNsdWRlX3VuY29tbWl0dGVkPVRydWUsIGluY2x1ZGVfbmV3PVRydWUpCiAg
ICAgcmV0dXJuIFtvcy5wYXRoLnJlbHBhdGgoaXRlbSwgd3B0X3Jvb3QpIGZvciBpdGVtIGluIGNo
YW5nZWRdCiAKIAogZGVmIGxpbnRfcGF0aHMoa3dhcmdzLCB3cHRfcm9vdCk6Ci0gICAgaWYga3dh
cmdzLmdldCgicGF0aHMiKToKKyAgICAjIHR5cGU6IChEaWN0W3N0ciwgQW55XSwgc3RyKSAtPiBM
aXN0W3N0cl0KKyAgICBpZiBrd2FyZ3MuZ2V0KHN0cigicGF0aHMiKSk6CiAgICAgICAgIHBhdGhz
ID0gW10KLSAgICAgICAgZm9yIHBhdGggaW4ga3dhcmdzLmdldCgicGF0aHMiKToKKyAgICAgICAg
Zm9yIHBhdGggaW4ga3dhcmdzLmdldChzdHIoInBhdGhzIiksIFtdKToKICAgICAgICAgICAgIGlm
IG9zLnBhdGguaXNkaXIocGF0aCk6CiAgICAgICAgICAgICAgICAgcGF0aF9kaXIgPSBsaXN0KGFs
bF9maWxlc3lzdGVtX3BhdGhzKHdwdF9yb290LCBwYXRoKSkKICAgICAgICAgICAgICAgICBwYXRo
cy5leHRlbmQocGF0aF9kaXIpCkBAIC03OTIsNyArODE3LDcgQEAgZGVmIGxpbnRfcGF0aHMoa3dh
cmdzLCB3cHRfcm9vdCk6CiAgICAgICAgICAgICAgICAgcGF0aHMuYXBwZW5kKG9zLnBhdGgucmVs
cGF0aChvcy5wYXRoLmFic3BhdGgocGF0aCksIHdwdF9yb290KSkKIAogCi0gICAgZWxpZiBrd2Fy
Z3NbImFsbCJdOgorICAgIGVsaWYga3dhcmdzW3N0cigiYWxsIildOgogICAgICAgICBwYXRocyA9
IGxpc3QoYWxsX2ZpbGVzeXN0ZW1fcGF0aHMod3B0X3Jvb3QpKQogICAgIGVsc2U6CiAgICAgICAg
IGNoYW5nZWRfcGF0aHMgPSBjaGFuZ2VkX2ZpbGVzKHdwdF9yb290KQpAQCAtODAyLDEzICs4Mjcs
MTQgQEAgZGVmIGxpbnRfcGF0aHMoa3dhcmdzLCB3cHRfcm9vdCk6CiAgICAgICAgICAgICBpZiBw
YXRoID09ICJsaW50LndoaXRlbGlzdCIgb3IgcGF0aC5zdGFydHN3aXRoKCJ0b29scy9saW50LyIp
OgogICAgICAgICAgICAgICAgIGZvcmNlX2FsbCA9IFRydWUKICAgICAgICAgICAgICAgICBicmVh
awotICAgICAgICBwYXRocyA9IChsaXN0KGNoYW5nZWRfcGF0aHMpIGlmIG5vdCBmb3JjZV9hbGwK
KyAgICAgICAgcGF0aHMgPSAobGlzdChjaGFuZ2VkX3BhdGhzKSBpZiBub3QgZm9yY2VfYWxsICAj
IHR5cGU6IGlnbm9yZQogICAgICAgICAgICAgICAgICBlbHNlIGxpc3QoYWxsX2ZpbGVzeXN0ZW1f
cGF0aHMod3B0X3Jvb3QpKSkKIAogICAgIHJldHVybiBwYXRocwogCiAKIGRlZiBjcmVhdGVfcGFy
c2VyKCk6CisgICAgIyB0eXBlOiAoKSAtPiBhcmdwYXJzZS5Bcmd1bWVudFBhcnNlcgogICAgIHBh
cnNlciA9IGFyZ3BhcnNlLkFyZ3VtZW50UGFyc2VyKCkKICAgICBwYXJzZXIuYWRkX2FyZ3VtZW50
KCJwYXRocyIsIG5hcmdzPSIqIiwKICAgICAgICAgICAgICAgICAgICAgICAgIGhlbHA9Ikxpc3Qg
b2YgcGF0aHMgdG8gbGludCIpCkBAIC04MTgsNDIgKzg0NCw1MiBAQCBkZWYgY3JlYXRlX3BhcnNl
cigpOgogICAgICAgICAgICAgICAgICAgICAgICAgaGVscD0iT3V0cHV0IG1hcmtkb3duIikKICAg
ICBwYXJzZXIuYWRkX2FyZ3VtZW50KCItLXJlcG8tcm9vdCIsIGhlbHA9IlRoZSBXUFQgZGlyZWN0
b3J5LiBVc2UgdGhpcyIKICAgICAgICAgICAgICAgICAgICAgICAgICJvcHRpb24gaWYgdGhlIGxp
bnQgc2NyaXB0IGV4aXN0cyBvdXRzaWRlIHRoZSByZXBvc2l0b3J5IikKKyAgICBwYXJzZXIuYWRk
X2FyZ3VtZW50KCItLWlnbm9yZS1nbG9iIiwgaGVscD0iQWRkaXRpb25hbCBmaWxlIGdsb2IgdG8g
aWdub3JlLiIpCiAgICAgcGFyc2VyLmFkZF9hcmd1bWVudCgiLS1hbGwiLCBhY3Rpb249InN0b3Jl
X3RydWUiLCBoZWxwPSJJZiBubyBwYXRocyBhcmUgcGFzc2VkLCB0cnkgdG8gbGludCB0aGUgd2hv
bGUgIgogICAgICAgICAgICAgICAgICAgICAgICAgIndvcmtpbmcgZGlyZWN0b3J5LCBub3QganVz
dCBmaWxlcyB0aGF0IGNoYW5nZWQiKQogICAgIHJldHVybiBwYXJzZXIKIAogCiBkZWYgbWFpbigq
Kmt3YXJncyk6Ci0gICAgaWYga3dhcmdzLmdldCgianNvbiIpIGFuZCBrd2FyZ3MuZ2V0KCJtYXJr
ZG93biIpOgorICAgICMgdHlwZTogKCoqQW55KSAtPiBpbnQKKyAgICBhc3NlcnQgbG9nZ2VyIGlz
IG5vdCBOb25lCisgICAgaWYga3dhcmdzLmdldChzdHIoImpzb24iKSkgYW5kIGt3YXJncy5nZXQo
c3RyKCJtYXJrZG93biIpKToKICAgICAgICAgbG9nZ2VyLmNyaXRpY2FsKCJDYW5ub3Qgc3BlY2lm
eSAtLWpzb24gYW5kIC0tbWFya2Rvd24iKQogICAgICAgICBzeXMuZXhpdCgyKQogCi0gICAgcmVw
b19yb290ID0ga3dhcmdzLmdldCgncmVwb19yb290Jykgb3IgbG9jYWxwYXRocy5yZXBvX3Jvb3QK
LSAgICBvdXRwdXRfZm9ybWF0ID0geyhUcnVlLCBGYWxzZSk6ICJqc29uIiwKLSAgICAgICAgICAg
ICAgICAgICAgIChGYWxzZSwgVHJ1ZSk6ICJtYXJrZG93biIsCi0gICAgICAgICAgICAgICAgICAg
ICAoRmFsc2UsIEZhbHNlKTogIm5vcm1hbCJ9Wyhrd2FyZ3MuZ2V0KCJqc29uIiwgRmFsc2UpLAot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga3dhcmdzLmdl
dCgibWFya2Rvd24iLCBGYWxzZSkpXQorICAgIHJlcG9fcm9vdCA9IGt3YXJncy5nZXQoc3RyKCdy
ZXBvX3Jvb3QnKSkgb3IgbG9jYWxwYXRocy5yZXBvX3Jvb3QKKyAgICBvdXRwdXRfZm9ybWF0ID0g
eyhUcnVlLCBGYWxzZSk6IHN0cigianNvbiIpLAorICAgICAgICAgICAgICAgICAgICAgKEZhbHNl
LCBUcnVlKTogc3RyKCJtYXJrZG93biIpLAorICAgICAgICAgICAgICAgICAgICAgKEZhbHNlLCBG
YWxzZSk6IHN0cigibm9ybWFsIil9Wyhrd2FyZ3MuZ2V0KHN0cigianNvbiIpLCBGYWxzZSksCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGt3YXJn
cy5nZXQoc3RyKCJtYXJrZG93biIpLCBGYWxzZSkpXQogCiAgICAgaWYgb3V0cHV0X2Zvcm1hdCA9
PSAibWFya2Rvd24iOgogICAgICAgICBzZXR1cF9sb2dnaW5nKFRydWUpCiAKICAgICBwYXRocyA9
IGxpbnRfcGF0aHMoa3dhcmdzLCByZXBvX3Jvb3QpCiAKLSAgICByZXR1cm4gbGludChyZXBvX3Jv
b3QsIHBhdGhzLCBvdXRwdXRfZm9ybWF0KQorICAgIGlnbm9yZV9nbG9iID0ga3dhcmdzLmdldChz
dHIoImlnbm9yZV9nbG9iIikpIG9yIHN0cigpCiAKKyAgICByZXR1cm4gbGludChyZXBvX3Jvb3Qs
IHBhdGhzLCBvdXRwdXRfZm9ybWF0LCBzdHIoaWdub3JlX2dsb2IpKQogCi1kZWYgbGludChyZXBv
X3Jvb3QsIHBhdGhzLCBvdXRwdXRfZm9ybWF0KToKLSAgICBlcnJvcl9jb3VudCA9IGRlZmF1bHRk
aWN0KGludCkKKworZGVmIGxpbnQocmVwb19yb290LCBwYXRocywgb3V0cHV0X2Zvcm1hdCwgaWdu
b3JlX2dsb2I9c3RyKCkpOgorICAgICMgdHlwZTogKHN0ciwgTGlzdFtzdHJdLCBzdHIsIHN0cikg
LT4gaW50CisgICAgZXJyb3JfY291bnQgPSBkZWZhdWx0ZGljdChpbnQpICAjIHR5cGU6IERpY3Rb
VGV4dCwgaW50XQogICAgIGxhc3QgPSBOb25lCiAKICAgICB3aXRoIG9wZW4ob3MucGF0aC5qb2lu
KHJlcG9fcm9vdCwgImxpbnQud2hpdGVsaXN0IikpIGFzIGY6CiAgICAgICAgIHdoaXRlbGlzdCwg
aWdub3JlZF9maWxlcyA9IHBhcnNlX3doaXRlbGlzdChmKQogCisgICAgaWYgaWdub3JlX2dsb2I6
CisgICAgICAgIGlnbm9yZWRfZmlsZXMuYWRkKGlnbm9yZV9nbG9iKQorCiAgICAgb3V0cHV0X2Vy
cm9ycyA9IHsianNvbiI6IG91dHB1dF9lcnJvcnNfanNvbiwKICAgICAgICAgICAgICAgICAgICAg
ICJtYXJrZG93biI6IG91dHB1dF9lcnJvcnNfbWFya2Rvd24sCiAgICAgICAgICAgICAgICAgICAg
ICAibm9ybWFsIjogb3V0cHV0X2Vycm9yc190ZXh0fVtvdXRwdXRfZm9ybWF0XQogCiAgICAgZGVm
IHByb2Nlc3NfZXJyb3JzKGVycm9ycyk6CisgICAgICAgICMgdHlwZTogKExpc3RbcnVsZXMuRXJy
b3JdKSAtPiBPcHRpb25hbFtUdXBsZVtUZXh0LCBUZXh0XV0KICAgICAgICAgIiIiCiAgICAgICAg
IEZpbHRlcnMgYW5kIHByaW50cyB0aGUgZXJyb3JzLCBhbmQgdXBkYXRlcyB0aGUgYGBlcnJvcl9j
b3VudGBgIG9iamVjdC4KIApAQCAtODk3LDEzICs5MzMsMTcgQEAgZGVmIGxpbnQocmVwb19yb290
LCBwYXRocywgb3V0cHV0X2Zvcm1hdCk6CiAgICAgaWYgb3V0cHV0X2Zvcm1hdCBpbiAoIm5vcm1h
bCIsICJtYXJrZG93biIpOgogICAgICAgICBvdXRwdXRfZXJyb3JfY291bnQoZXJyb3JfY291bnQp
CiAgICAgICAgIGlmIGVycm9yX2NvdW50OgorICAgICAgICAgICAgYXNzZXJ0IGxhc3QgaXMgbm90
IE5vbmUKKyAgICAgICAgICAgIGFzc2VydCBsb2dnZXIgaXMgbm90IE5vbmUKICAgICAgICAgICAg
IGZvciBsaW5lIGluIChFUlJPUl9NU0cgJSAobGFzdFswXSwgbGFzdFsxXSwgbGFzdFswXSwgbGFz
dFsxXSkpLnNwbGl0KCJcbiIpOgogICAgICAgICAgICAgICAgIGxvZ2dlci5pbmZvKGxpbmUpCiAg
ICAgcmV0dXJuIHN1bShpdGVydmFsdWVzKGVycm9yX2NvdW50KSkKIAotcGF0aF9saW50cyA9IFtj
aGVja19wYXRoX2xlbmd0aCwgY2hlY2tfd29ya2VyX2NvbGxpc2lvbiwgY2hlY2tfYWhlbV9jb3B5
XQorcGF0aF9saW50cyA9IFtjaGVja19maWxlX3R5cGUsIGNoZWNrX3BhdGhfbGVuZ3RoLCBjaGVj
a193b3JrZXJfY29sbGlzaW9uLCBjaGVja19haGVtX2NvcHksCisgICAgICAgICAgICAgIGNoZWNr
X2dpdGlnbm9yZV9maWxlXQogYWxsX3BhdGhzX2xpbnRzID0gW2NoZWNrX2Nzc19nbG9iYWxseV91
bmlxdWVdCi1maWxlX2xpbnRzID0gW2NoZWNrX3JlZ2V4cF9saW5lLCBjaGVja19wYXJzZWQsIGNo
ZWNrX3B5dGhvbl9hc3QsIGNoZWNrX3NjcmlwdF9tZXRhZGF0YV0KK2ZpbGVfbGludHMgPSBbY2hl
Y2tfcmVnZXhwX2xpbmUsIGNoZWNrX3BhcnNlZCwgY2hlY2tfcHl0aG9uX2FzdCwgY2hlY2tfc2Ny
aXB0X21ldGFkYXRhLAorICAgICAgICAgICAgICBjaGVja19haGVtX3N5c3RlbV9mb250XQogCiAj
IERvbid0IGJyZWFrIHVzZXJzIG9mIHRoZSBsaW50IHRoYXQgZG9uJ3QgaGF2ZSBnaXQgaW5zdGFs
bGVkLgogdHJ5OgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy9saW50L3J1bGVzLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9saW50L3J1bGVzLnB5Cm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwLi41ODcwMjhkNmM1ZgotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvbGludC9ydWxl
cy5weQpAQCAtMCwwICsxLDQ1MiBAQAorZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCB1bmljb2RlX2xp
dGVyYWxzCisKK2ltcG9ydCBhYmMKK2ltcG9ydCBpbnNwZWN0CitpbXBvcnQgb3MKK2ltcG9ydCBy
ZQorCitpbXBvcnQgc2l4CisKK01ZUFkgPSBGYWxzZQoraWYgTVlQWToKKyAgICAjIE1ZUFkgaXMg
c2V0IHRvIFRydWUgd2hlbiBydW4gdW5kZXIgTXlweS4KKyAgICBmcm9tIHR5cGluZyBpbXBvcnQg
QW55LCBMaXN0LCBNYXRjaCwgT3B0aW9uYWwsIFBhdHRlcm4sIFRleHQsIFR1cGxlLCBjYXN0Cisg
ICAgRXJyb3IgPSBUdXBsZVtUZXh0LCBUZXh0LCBUZXh0LCBPcHRpb25hbFtpbnRdXQorCisKK2Rl
ZiBjb2xsYXBzZSh0ZXh0KToKKyAgICAjIHR5cGU6IChUZXh0KSAtPiBUZXh0CisgICAgcmV0dXJu
IGluc3BlY3QuY2xlYW5kb2Moc3RyKHRleHQpKS5yZXBsYWNlKCJcbiIsICIgIikKKworCitjbGFz
cyBSdWxlKHNpeC53aXRoX21ldGFjbGFzcyhhYmMuQUJDTWV0YSkpOgorICAgIEBhYmMuYWJzdHJh
Y3Rwcm9wZXJ0eQorICAgIGRlZiBuYW1lKHNlbGYpOgorICAgICAgICAjIHR5cGU6ICgpIC0+IFRl
eHQKKyAgICAgICAgcGFzcworCisgICAgQGFiYy5hYnN0cmFjdHByb3BlcnR5CisgICAgZGVmIGRl
c2NyaXB0aW9uKHNlbGYpOgorICAgICAgICAjIHR5cGU6ICgpIC0+IFRleHQKKyAgICAgICAgcGFz
cworCisgICAgdG9fZml4ID0gTm9uZSAgIyB0eXBlOiBPcHRpb25hbFtUZXh0XQorCisgICAgQGNs
YXNzbWV0aG9kCisgICAgZGVmIGVycm9yKGNscywgcGF0aCwgY29udGV4dD0oKSwgbGluZV9ubz1O
b25lKToKKyAgICAgICAgIyB0eXBlOiAoVGV4dCwgVHVwbGVbQW55LCAuLi5dLCBPcHRpb25hbFtp
bnRdKSAtPiBFcnJvcgorICAgICAgICBpZiBNWVBZOgorICAgICAgICAgICAgbmFtZSA9IGNhc3Qo
VGV4dCwgY2xzLm5hbWUpCisgICAgICAgICAgICBkZXNjcmlwdGlvbiA9IGNhc3QoVGV4dCwgY2xz
LmRlc2NyaXB0aW9uKQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgbmFtZSA9IGNscy5uYW1l
CisgICAgICAgICAgICBkZXNjcmlwdGlvbiA9IGNscy5kZXNjcmlwdGlvbgorICAgICAgICBkZXNj
cmlwdGlvbiA9IGRlc2NyaXB0aW9uICUgY29udGV4dAorICAgICAgICByZXR1cm4gKG5hbWUsIGRl
c2NyaXB0aW9uLCBwYXRoLCBsaW5lX25vKQorCisKK2NsYXNzIE1pc3NpbmdMaW5rKFJ1bGUpOgor
ICAgIG5hbWUgPSAiTUlTU0lORy1MSU5LIgorICAgIGRlc2NyaXB0aW9uID0gIlRlc3RjYXNlIGZp
bGUgbXVzdCBoYXZlIGEgbGluayB0byBhIHNwZWMiCisgICAgdG9fZml4ID0gIiIiCisgICAgICAg
IEVuc3VyZSB0aGF0IHRoZXJlIGlzIGEgYDxsaW5rIHJlbD0iaGVscCIgaHJlZj0iW3VybF0iPmAg
Zm9yIHRoZSBzcGVjLgorICAgICAgICBgTUlTU0lORy1MSU5LYCBpcyBkZXNpZ25lZCB0byBlbnN1
cmUgdGhhdCB0aGUgQ1NTIGJ1aWxkIHRvb2wgY2FuIGZpbmQKKyAgICAgICAgdGhlIHRlc3RzLiBO
b3RlIHRoYXQgdGhlIENTUyBidWlsZCBzeXN0ZW0gaXMgcHJpbWFyaWx5IHVzZWQgYnkKKyAgICAg
ICAgW3Rlc3QuY3Nzd2cub3JnL10oaHR0cDovL3Rlc3QuY3Nzd2cub3JnLyksIHdoaWNoIGRvZXNu
J3QgdXNlCisgICAgICAgIGB3cHRzZXJ2ZWAsIHNvIGAqLmFueS5qc2AgYW5kIHNpbWlsYXIgdGVz
dHMgd29uJ3Qgd29yayB0aGVyZTsgc3RpY2sKKyAgICAgICAgd2l0aCB0aGUgYC5odG1sYCBlcXVp
dmFsZW50LgorICAgICIiIgorCisKK2NsYXNzIFBhdGhMZW5ndGgoUnVsZSk6CisgICAgbmFtZSA9
ICJQQVRIIExFTkdUSCIKKyAgICBkZXNjcmlwdGlvbiA9ICIvJXMgbG9uZ2VyIHRoYW4gbWF4aW11
bSBwYXRoIGxlbmd0aCAoJWQgPiAxNTApIgorICAgIHRvX2ZpeCA9ICJ1c2Ugc2hvcnRlciBmaWxl
bmFtZSB0byByZW5hbWUgdGhlIHRlc3QgZmlsZSIKKworCitjbGFzcyBGaWxlVHlwZShSdWxlKToK
KyAgICBuYW1lID0gIkZJTEUgVFlQRSIKKyAgICBkZXNjcmlwdGlvbiA9ICIvJXMgaXMgYW4gdW5z
dXBwb3J0ZWQgZmlsZSB0eXBlICglcykiCisKKworY2xhc3MgV29ya2VyQ29sbGlzaW9uKFJ1bGUp
OgorICAgIG5hbWUgPSAiV09SS0VSIENPTExJU0lPTiIKKyAgICBkZXNjcmlwdGlvbiA9IGNvbGxh
cHNlKCIiIgorICAgICAgICBwYXRoIGVuZHMgd2l0aCAlcyB3aGljaCBjb2xsaWRlcyB3aXRoIGdl
bmVyYXRlZCB0ZXN0cyBmcm9tICVzIGZpbGVzCisgICAgIiIiKQorCisKK2NsYXNzIEdpdElnbm9y
ZUZpbGUoUnVsZSk6CisgICAgbmFtZSA9ICJHSVRJR05PUkUiCisgICAgZGVzY3JpcHRpb24gPSAi
LmdpdGlnbm9yZSBmb3VuZCBvdXRzaWRlIHRoZSByb290IgorCisKK2NsYXNzIEFoZW1Db3B5KFJ1
bGUpOgorICAgIG5hbWUgPSAiQUhFTSBDT1BZIgorICAgIGRlc2NyaXB0aW9uID0gIkRvbid0IGFk
ZCBleHRyYSBjb3BpZXMgb2YgQWhlbSwgdXNlIC9mb250cy9BaGVtLnR0ZiIKKworCitjbGFzcyBB
aGVtU3lzdGVtRm9udChSdWxlKToKKyAgICBuYW1lID0gIkFIRU0gU1lTVEVNIEZPTlQiCisgICAg
ZGVzY3JpcHRpb24gPSAiRG9uJ3QgdXNlIEFoZW0gYXMgYSBzeXN0ZW0gZm9udCwgdXNlIC9mb250
cy9haGVtLmNzcyIKKworCisjIFRPRE86IEFkZCB0ZXN0cyBmb3IgdGhpcyBydWxlCitjbGFzcyBJ
Z25vcmVkUGF0aChSdWxlKToKKyAgICBuYW1lID0gIklHTk9SRUQgUEFUSCIKKyAgICBkZXNjcmlw
dGlvbiA9IGNvbGxhcHNlKCIiIgorICAgICAgICAlcyBtYXRjaGVzIGFuIGlnbm9yZSBmaWx0ZXIg
aW4gLmdpdGlnbm9yZSAtIHBsZWFzZSBhZGQgYSAuZ2l0aWdub3JlCisgICAgICAgIGV4Y2VwdGlv
bgorICAgICIiIikKKworCitjbGFzcyBDU1NDb2xsaWRpbmdUZXN0TmFtZShSdWxlKToKKyAgICBu
YW1lID0gIkNTUy1DT0xMSURJTkctVEVTVC1OQU1FIgorICAgIGRlc2NyaXB0aW9uID0gIlRoZSBm
aWxlbmFtZSAlcyBpbiB0aGUgJXMgdGVzdHN1aXRlIGlzIHNoYXJlZCBieTogJXMiCisKKworY2xh
c3MgQ1NTQ29sbGlkaW5nUmVmTmFtZShSdWxlKToKKyAgICBuYW1lID0gIkNTUy1DT0xMSURJTkct
UkVGLU5BTUUiCisgICAgZGVzY3JpcHRpb24gPSAiVGhlIGZpbGVuYW1lICVzIGlzIHNoYXJlZCBi
eTogJXMiCisKKworY2xhc3MgQ1NTQ29sbGlkaW5nU3VwcG9ydE5hbWUoUnVsZSk6CisgICAgbmFt
ZSA9ICJDU1MtQ09MTElESU5HLVNVUFBPUlQtTkFNRSIKKyAgICBkZXNjcmlwdGlvbiA9ICJUaGUg
ZmlsZW5hbWUgJXMgaXMgc2hhcmVkIGJ5OiAlcyIKKworCitjbGFzcyBTdXBwb3J0V3JvbmdEaXIo
UnVsZSk6CisgICAgbmFtZSA9ICJTVVBQT1JULVdST05HLURJUiIKKyAgICBkZXNjcmlwdGlvbiA9
ICJTdXBwb3J0IGZpbGUgbm90IGluIHN1cHBvcnQgZGlyZWN0b3J5IgorCisKK2NsYXNzIFBhcnNl
RmFpbGVkKFJ1bGUpOgorICAgIG5hbWUgPSAiUEFSU0UtRkFJTEVEIgorICAgIGRlc2NyaXB0aW9u
ID0gIlVuYWJsZSB0byBwYXJzZSBmaWxlIgorICAgIHRvX2ZpeCA9ICIiIgorICAgICAgICBleGFt
aW5lIHRoZSBmaWxlIHRvIGZpbmQgdGhlIGNhdXNlcyBvZiBhbnkgcGFyc2UgZXJyb3JzLCBhbmQg
Zml4IHRoZW0uCisgICAgIiIiCisKKworY2xhc3MgQ29udGVudE1hbnVhbChSdWxlKToKKyAgICBu
YW1lID0gIkNPTlRFTlQtTUFOVUFMIgorICAgIGRlc2NyaXB0aW9uID0gIk1hbnVhbCB0ZXN0IHdo
b3NlIGZpbGVuYW1lIGRvZXNuJ3QgZW5kIGluICctbWFudWFsJyIKKworCitjbGFzcyBDb250ZW50
VmlzdWFsKFJ1bGUpOgorICAgIG5hbWUgPSAiQ09OVEVOVC1WSVNVQUwiCisgICAgZGVzY3JpcHRp
b24gPSAiVmlzdWFsIHRlc3Qgd2hvc2UgZmlsZW5hbWUgZG9lc24ndCBlbmQgaW4gJy12aXN1YWwn
IgorCisKK2NsYXNzIEFic29sdXRlVXJsUmVmKFJ1bGUpOgorICAgIG5hbWUgPSAiQUJTT0xVVEUt
VVJMLVJFRiIKKyAgICBkZXNjcmlwdGlvbiA9IGNvbGxhcHNlKCIiIgorICAgICAgICBSZWZlcmVu
Y2UgdGVzdCB3aXRoIGEgcmVmZXJlbmNlIGZpbGUgc3BlY2lmaWVkIHZpYSBhbiBhYnNvbHV0ZSBV
Ukw6CisgICAgICAgICclcycKKyAgICAiIiIpCisKKworY2xhc3MgU2FtZUZpbGVSZWYoUnVsZSk6
CisgICAgbmFtZSA9ICJTQU1FLUZJTEUtUkVGIgorICAgIGRlc2NyaXB0aW9uID0gIlJlZmVyZW5j
ZSB0ZXN0IHdoaWNoIHBvaW50cyBhdCBpdHNlbGYgYXMgYSByZWZlcmVuY2UiCisKKworY2xhc3Mg
Tm9uZXhpc3RlbnRSZWYoUnVsZSk6CisgICAgbmFtZSA9ICJOT04tRVhJU1RFTlQtUkVGIgorICAg
IGRlc2NyaXB0aW9uID0gY29sbGFwc2UoIiIiCisgICAgICAgIFJlZmVyZW5jZSB0ZXN0IHdpdGgg
YSBub24tZXhpc3RlbnQgJyVzJyByZWxhdGlvbnNoaXAgcmVmZXJlbmNlOiAnJXMnCisgICAgIiIi
KQorCisKK2NsYXNzIE11bHRpcGxlVGltZW91dChSdWxlKToKKyAgICBuYW1lID0gIk1VTFRJUExF
LVRJTUVPVVQiCisgICAgZGVzY3JpcHRpb24gPSAiTW9yZSB0aGFuIG9uZSBtZXRhIG5hbWU9J3Rp
bWVvdXQnIgorICAgIHRvX2ZpeCA9ICIiIgorICAgICAgICBlbnN1cmUgZWFjaCB0ZXN0IGZpbGUg
aGFzIG9ubHkgb25lIGluc3RhbmNlIG9mIGEgYDxtZXRhCisgICAgICAgIG5hbWU9InRpbWVvdXQi
Li4uPmAgZWxlbWVudAorICAgICIiIgorCisKK2NsYXNzIEludmFsaWRUaW1lb3V0KFJ1bGUpOgor
ICAgIG5hbWUgPSAiSU5WQUxJRC1USU1FT1VUIgorICAgIGRlc2NyaXB0aW9uID0gY29sbGFwc2Uo
IiIiCisgICAgICAgIFRlc3QgZmlsZSB3aXRoIGA8bWV0YSBuYW1lPSd0aW1lb3V0Jy4uLj5gIGVs
ZW1lbnQgdGhhdCBoYXMgYSBgY29udGVudGAKKyAgICAgICAgYXR0cmlidXRlIHdob3NlIHZhbHVl
IGlzIG5vdCBgbG9uZ2A6ICVzCisgICAgIiIiKQorICAgIHRvX2ZpeCA9ICJyZXBsYWNlIHRoZSB2
YWx1ZSBvZiB0aGUgYGNvbnRlbnRgIGF0dHJpYnV0ZSB3aXRoIGBsb25nYCIKKworCitjbGFzcyBN
dWx0aXBsZVRlc3RoYXJuZXNzKFJ1bGUpOgorICAgIG5hbWUgPSAiTVVMVElQTEUtVEVTVEhBUk5F
U1MiCisgICAgZGVzY3JpcHRpb24gPSAiTW9yZSB0aGFuIG9uZSBgPHNjcmlwdCBzcmM9Jy9yZXNv
dXJjZXMvdGVzdGhhcm5lc3MuanMnPmAiCisgICAgdG9fZml4ID0gIiIiCisgICAgICAgIGVuc3Vy
ZSBlYWNoIHRlc3QgaGFzIG9ubHkgb25lIGA8c2NyaXB0CisgICAgICAgIHNyYz0nL3Jlc291cmNl
cy90ZXN0aGFybmVzc3JlcG9ydC5qcyc+YCBpbnN0YW5jZQorICAgICIiIgorCisKK2NsYXNzIE1p
c3NpbmdUZXN0aGFybmVzc1JlcG9ydChSdWxlKToKKyAgICBuYW1lID0gIk1JU1NJTkctVEVTVEhB
Uk5FU1NSRVBPUlQiCisgICAgZGVzY3JpcHRpb24gPSAiTWlzc2luZyBgPHNjcmlwdCBzcmM9Jy9y
ZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMnPmAiCisgICAgdG9fZml4ID0gIiIiCisgICAg
ICAgIGVuc3VyZSBlYWNoIHRlc3QgZmlsZSBjb250YWlucyBgPHNjcmlwdAorICAgICAgICBzcmM9
Jy9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMnPmAKKyAgICAiIiIKKworCitjbGFzcyBN
dWx0aXBsZVRlc3RoYXJuZXNzUmVwb3J0KFJ1bGUpOgorICAgIG5hbWUgPSAiTVVMVElQTEUtVEVT
VEhBUk5FU1NSRVBPUlQiCisgICAgZGVzY3JpcHRpb24gPSAiTW9yZSB0aGFuIG9uZSBgPHNjcmlw
dCBzcmM9Jy9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMnPmAiCisKKworY2xhc3MgUHJl
c2VudFRlc3RoYXJuZXNzQ1NTKFJ1bGUpOgorICAgIG5hbWUgPSAiUFJFU0VOVC1URVNUSEFSTkVT
U0NTUyIKKyAgICBkZXNjcmlwdGlvbiA9ICJFeHBsaWNpdCBsaW5rIHRvIHRlc3RoYXJuZXNzLmNz
cyBwcmVzZW50IgorCisKK2NsYXNzIFZhcmlhbnRNaXNzaW5nKFJ1bGUpOgorICAgIG5hbWUgPSAi
VkFSSUFOVC1NSVNTSU5HIgorICAgIGRlc2NyaXB0aW9uID0gY29sbGFwc2UoIiIiCisgICAgICAg
IFRlc3QgZmlsZSB3aXRoIGEgYDxtZXRhIG5hbWU9J3ZhcmlhbnQnLi4uPmAgZWxlbWVudCB0aGF0
J3MgbWlzc2luZyBhCisgICAgICAgIGBjb250ZW50YCBhdHRyaWJ1dGUKKyAgICAiIiIpCisgICAg
dG9fZml4ID0gIiIiCisgICAgICAgIGFkZCBhIGBjb250ZW50YCBhdHRyaWJ1dGUgd2l0aCBhbiBh
cHByb3ByaWF0ZSB2YWx1ZSB0byB0aGUgYDxtZXRhCisgICAgICAgIG5hbWU9J3ZhcmlhbnQnLi4u
PmAgZWxlbWVudAorICAgICIiIgorCisKK2NsYXNzIE1hbGZvcm1lZFZhcmlhbnQoUnVsZSk6Cisg
ICAgbmFtZSA9ICJNQUxGT1JNRUQtVkFSSUFOVCIKKyAgICBkZXNjcmlwdGlvbiA9IGNvbGxhcHNl
KCIiIgorICAgICAgICAlcyBgPG1ldGEgbmFtZT12YXJpYW50PmAgJ2NvbnRlbnQnIGF0dHJpYnV0
ZSBtdXN0IGJlIHRoZSBlbXB0eSBzdHJpbmcKKyAgICAgICAgb3Igc3RhcnQgd2l0aCAnPycgb3Ig
JyMnCisgICAgIiIiKQorCisKK2NsYXNzIExhdGVUaW1lb3V0KFJ1bGUpOgorICAgIG5hbWUgPSAi
TEFURS1USU1FT1VUIgorICAgIGRlc2NyaXB0aW9uID0gImA8bWV0YSBuYW1lPXRpbWVvdXQ+YCBz
ZWVuIGFmdGVyIHRlc3RoYXJuZXNzLmpzIHNjcmlwdCIKKyAgICBkZXNjcmlwdGlvbiA9IGNvbGxh
cHNlKCIiIgorICAgICAgICBUZXN0IGZpbGUgd2l0aCBgPG1ldGEgbmFtZT0ndGltZW91dCcuLi4+
YCBlbGVtZW50IGFmdGVyIGA8c2NyaXB0CisgICAgICAgIHNyYz0nL3Jlc291cmNlcy90ZXN0aGFy
bmVzc3JlcG9ydC5qcyc+YCBlbGVtZW50CisgICAgIiIiKQorICAgIHRvX2ZpeCA9ICIiIgorICAg
ICAgICBtb3ZlIHRoZSBgPG1ldGEgbmFtZT0idGltZW91dCIuLi4+YCBlbGVtZW50IHRvIHByZWNl
ZGUgdGhlIGBzY3JpcHRgCisgICAgICAgIGVsZW1lbnQuCisgICAgIiIiCisKKworY2xhc3MgRWFy
bHlUZXN0aGFybmVzc1JlcG9ydChSdWxlKToKKyAgICBuYW1lID0gIkVBUkxZLVRFU1RIQVJORVNT
UkVQT1JUIgorICAgIGRlc2NyaXB0aW9uID0gY29sbGFwc2UoIiIiCisgICAgICAgIFRlc3QgZmls
ZSBoYXMgYW4gaW5zdGFuY2Ugb2YKKyAgICAgICAgYDxzY3JpcHQgc3JjPScvcmVzb3VyY2VzL3Rl
c3RoYXJuZXNzcmVwb3J0LmpzJz5gIHByaW9yIHRvCisgICAgICAgIGA8c2NyaXB0IHNyYz0nL3Jl
c291cmNlcy90ZXN0aGFybmVzcy5qcyc+YAorICAgICIiIikKKyAgICB0b19maXggPSAiZmxpcCB0
aGUgb3JkZXIiCisKKworY2xhc3MgTXVsdGlwbGVUZXN0ZHJpdmVyKFJ1bGUpOgorICAgIG5hbWUg
PSAiTVVMVElQTEUtVEVTVERSSVZFUiIKKyAgICBkZXNjcmlwdGlvbiA9ICJNb3JlIHRoYW4gb25l
IGA8c2NyaXB0IHNyYz0nL3Jlc291cmNlcy90ZXN0ZHJpdmVyLmpzJz5gIgorCisKK2NsYXNzIE1p
c3NpbmdUZXN0ZHJpdmVyVmVuZG9yKFJ1bGUpOgorICAgIG5hbWUgPSAiTUlTU0lORy1URVNURFJJ
VkVSLVZFTkRPUiIKKyAgICBkZXNjcmlwdGlvbiA9ICJNaXNzaW5nIGA8c2NyaXB0IHNyYz0nL3Jl
c291cmNlcy90ZXN0ZHJpdmVyLXZlbmRvci5qcyc+YCIKKworCitjbGFzcyBNdWx0aXBsZVRlc3Rk
cml2ZXJWZW5kb3IoUnVsZSk6CisgICAgbmFtZSA9ICJNVUxUSVBMRS1URVNURFJJVkVSLVZFTkRP
UiIKKyAgICBkZXNjcmlwdGlvbiA9ICJNb3JlIHRoYW4gb25lIGA8c2NyaXB0IHNyYz0nL3Jlc291
cmNlcy90ZXN0ZHJpdmVyLXZlbmRvci5qcyc+YCIKKworCitjbGFzcyBUZXN0aGFybmVzc1BhdGgo
UnVsZSk6CisgICAgbmFtZSA9ICJURVNUSEFSTkVTUy1QQVRIIgorICAgIGRlc2NyaXB0aW9uID0g
InRlc3RoYXJuZXNzLmpzIHNjcmlwdCBzZWVuIHdpdGggaW5jb3JyZWN0IHBhdGgiCisKKworY2xh
c3MgVGVzdGhhcm5lc3NSZXBvcnRQYXRoKFJ1bGUpOgorICAgIG5hbWUgPSAiVEVTVEhBUk5FU1NS
RVBPUlQtUEFUSCIKKyAgICBkZXNjcmlwdGlvbiA9ICJ0ZXN0aGFybmVzc3JlcG9ydC5qcyBzY3Jp
cHQgc2VlbiB3aXRoIGluY29ycmVjdCBwYXRoIgorCisKK2NsYXNzIFRlc3Rkcml2ZXJQYXRoKFJ1
bGUpOgorICAgIG5hbWUgPSAiVEVTVERSSVZFUi1QQVRIIgorICAgIGRlc2NyaXB0aW9uID0gInRl
c3Rkcml2ZXIuanMgc2NyaXB0IHNlZW4gd2l0aCBpbmNvcnJlY3QgcGF0aCIKKworCitjbGFzcyBU
ZXN0ZHJpdmVyVmVuZG9yUGF0aChSdWxlKToKKyAgICBuYW1lID0gIlRFU1REUklWRVItVkVORE9S
LVBBVEgiCisgICAgZGVzY3JpcHRpb24gPSAidGVzdGRyaXZlci12ZW5kb3IuanMgc2NyaXB0IHNl
ZW4gd2l0aCBpbmNvcnJlY3QgcGF0aCIKKworCitjbGFzcyBPcGVuTm9Nb2RlKFJ1bGUpOgorICAg
IG5hbWUgPSAiT1BFTi1OTy1NT0RFIgorICAgIGRlc2NyaXB0aW9uID0gIkZpbGUgb3BlbmVkIHdp
dGhvdXQgcHJvdmlkaW5nIGFuIGV4cGxpY2l0IG1vZGUgKG5vdGU6IGJpbmFyeSBmaWxlcyBtdXN0
IGJlIHJlYWQgd2l0aCAnYicgaW4gdGhlIG1vZGUgZmxhZ3MpIgorCisKK2NsYXNzIFVua25vd25H
bG9iYWxNZXRhZGF0YShSdWxlKToKKyAgICBuYW1lID0gIlVOS05PV04tR0xPQkFMLU1FVEFEQVRB
IgorICAgIGRlc2NyaXB0aW9uID0gIlVuZXhwZWN0ZWQgdmFsdWUgZm9yIGdsb2JhbCBtZXRhZGF0
YSIKKworCitjbGFzcyBCcm9rZW5HbG9iYWxNZXRhZGF0YShSdWxlKToKKyAgICBuYW1lID0gIkJS
T0tFTi1HTE9CQUwtTUVUQURBVEEiCisgICAgZGVzY3JpcHRpb24gPSAiSW52YWxpZCBnbG9iYWwg
bWV0YWRhdGE6ICVzIgorCisKK2NsYXNzIFVua25vd25UaW1lb3V0TWV0YWRhdGEoUnVsZSk6Cisg
ICAgbmFtZSA9ICJVTktOT1dOLVRJTUVPVVQtTUVUQURBVEEiCisgICAgZGVzY3JpcHRpb24gPSAi
VW5leHBlY3RlZCB2YWx1ZSBmb3IgdGltZW91dCBtZXRhZGF0YSIKKworCitjbGFzcyBVbmtub3du
TWV0YWRhdGEoUnVsZSk6CisgICAgbmFtZSA9ICJVTktOT1dOLU1FVEFEQVRBIgorICAgIGRlc2Ny
aXB0aW9uID0gIlVuZXhwZWN0ZWQga2luZCBvZiBtZXRhZGF0YSIKKworCitjbGFzcyBTdHJheU1l
dGFkYXRhKFJ1bGUpOgorICAgIG5hbWUgPSAiU1RSQVktTUVUQURBVEEiCisgICAgZGVzY3JpcHRp
b24gPSAiTWV0YWRhdGEgY29tbWVudHMgc2hvdWxkIHN0YXJ0IHRoZSBmaWxlIgorCisKK2NsYXNz
IEluZGVudGVkTWV0YWRhdGEoUnVsZSk6CisgICAgbmFtZSA9ICJJTkRFTlRFRC1NRVRBREFUQSIK
KyAgICBkZXNjcmlwdGlvbiA9ICJNZXRhZGF0YSBjb21tZW50cyBzaG91bGQgc3RhcnQgdGhlIGxp
bmUiCisKKworY2xhc3MgQnJva2VuTWV0YWRhdGEoUnVsZSk6CisgICAgbmFtZSA9ICJCUk9LRU4t
TUVUQURBVEEiCisgICAgZGVzY3JpcHRpb24gPSAiTWV0YWRhdGEgY29tbWVudCBpcyBub3QgZm9y
bWF0dGVkIGNvcnJlY3RseSIKKworCitjbGFzcyBSZWdleHAoc2l4LndpdGhfbWV0YWNsYXNzKGFi
Yy5BQkNNZXRhKSk6CisgICAgQGFiYy5hYnN0cmFjdHByb3BlcnR5CisgICAgZGVmIHBhdHRlcm4o
c2VsZik6CisgICAgICAgICMgdHlwZTogKCkgLT4gYnl0ZXMKKyAgICAgICAgcGFzcworCisgICAg
QGFiYy5hYnN0cmFjdHByb3BlcnR5CisgICAgZGVmIG5hbWUoc2VsZik6CisgICAgICAgICMgdHlw
ZTogKCkgLT4gVGV4dAorICAgICAgICBwYXNzCisKKyAgICBAYWJjLmFic3RyYWN0cHJvcGVydHkK
KyAgICBkZWYgZGVzY3JpcHRpb24oc2VsZik6CisgICAgICAgICMgdHlwZTogKCkgLT4gVGV4dAor
ICAgICAgICBwYXNzCisKKyAgICBmaWxlX2V4dGVuc2lvbnMgPSBOb25lICAjIHR5cGU6IE9wdGlv
bmFsW0xpc3RbVGV4dF1dCisKKyAgICBkZWYgX19pbml0X18oc2VsZik6CisgICAgICAgICMgdHlw
ZTogKCkgLT4gTm9uZQorICAgICAgICBzZWxmLl9yZSA9IHJlLmNvbXBpbGUoc2VsZi5wYXR0ZXJu
KSAgIyB0eXBlOiBQYXR0ZXJuW2J5dGVzXQorCisgICAgZGVmIGFwcGxpZXMoc2VsZiwgcGF0aCk6
CisgICAgICAgICMgdHlwZTogKHN0cikgLT4gYm9vbAorICAgICAgICByZXR1cm4gKHNlbGYuZmls
ZV9leHRlbnNpb25zIGlzIE5vbmUgb3IKKyAgICAgICAgICAgICAgICBvcy5wYXRoLnNwbGl0ZXh0
KHBhdGgpWzFdIGluIHNlbGYuZmlsZV9leHRlbnNpb25zKQorCisgICAgZGVmIHNlYXJjaChzZWxm
LCBsaW5lKToKKyAgICAgICAgIyB0eXBlOiAoYnl0ZXMpIC0+IE9wdGlvbmFsW01hdGNoW2J5dGVz
XV0KKyAgICAgICAgcmV0dXJuIHNlbGYuX3JlLnNlYXJjaChsaW5lKQorCisKK2NsYXNzIFRhYnNS
ZWdleHAoUmVnZXhwKToKKyAgICBwYXR0ZXJuID0gYiJeXHQiCisgICAgbmFtZSA9ICJJTkRFTlQg
VEFCUyIKKyAgICBkZXNjcmlwdGlvbiA9ICJUZXN0LWZpbGUgbGluZSBzdGFydHMgd2l0aCBvbmUg
b3IgbW9yZSB0YWIgY2hhcmFjdGVycyIKKyAgICB0b19maXggPSAidXNlIHNwYWNlcyB0byByZXBs
YWNlIGFueSB0YWIgY2hhcmFjdGVycyBhdCBiZWdpbm5pbmcgb2YgbGluZXMiCisKK2NsYXNzIENS
UmVnZXhwKFJlZ2V4cCk6CisgICAgcGF0dGVybiA9IGIiXHIkIgorICAgIG5hbWUgPSAiQ1IgQVQg
RU9MIgorICAgIGRlc2NyaXB0aW9uID0gIlRlc3QtZmlsZSBsaW5lIGVuZHMgd2l0aCBDUiAoVSsw
MDBEKSBjaGFyYWN0ZXIiCisgICAgdG9fZml4ID0gIiIiCisgICAgICAgIHJlZm9ybWF0IGZpbGUg
c28gZWFjaCBsaW5lIGp1c3QgaGFzIExGIChVKzAwMEEpIGxpbmUgZW5kaW5nIChzdGFuZGFyZCwK
KyAgICAgICAgY3Jvc3MtcGxhdGZvcm0gIlVuaXgiIGxpbmUgZW5kaW5ncyBpbnN0ZWFkIG9mLCBl
LmcuLCBET1MgbGluZSBlbmRpbmdzKS4KKyAgICAiIiIKKworY2xhc3MgU2V0VGltZW91dFJlZ2V4
cChSZWdleHApOgorICAgIHBhdHRlcm4gPSBiciJzZXRUaW1lb3V0XHMqXCgiCisgICAgbmFtZSA9
ICJTRVQgVElNRU9VVCIKKyAgICBmaWxlX2V4dGVuc2lvbnMgPSBbIi5odG1sIiwgIi5odG0iLCAi
LmpzIiwgIi54aHQiLCAiLnhodG1sIiwgIi5zdmciXQorICAgIGRlc2NyaXB0aW9uID0gInNldFRp
bWVvdXQgdXNlZCIKKyAgICB0b19maXggPSAiIiIKKyAgICAgICAgcmVwbGFjZSBhbGwgYHNldFRp
bWVvdXQoLi4uKWAgY2FsbHMgd2l0aCBgc3RlcF90aW1lb3V0KC4uLilgIGNhbGxzCisgICAgIiIi
CisKK2NsYXNzIFczQ1Rlc3RPcmdSZWdleHAoUmVnZXhwKToKKyAgICBwYXR0ZXJuID0gYnIidzNj
XC10ZXN0XC5vcmciCisgICAgbmFtZSA9ICJXM0MtVEVTVC5PUkciCisgICAgZGVzY3JpcHRpb24g
PSAiVGVzdC1maWxlIGxpbmUgaGFzIHRoZSBzdHJpbmcgYHczYy10ZXN0Lm9yZ2AiCisgICAgdG9f
Zml4ID0gIiIiCisgICAgICAgIGVpdGhlciByZXBsYWNlIHRoZSBgdzNjLXRlc3Qub3JnYCBzdHJp
bmcgd2l0aCB0aGUgZXhwcmVzc2lvbgorICAgICAgICBge3tob3N0fX06e3twb3J0c1todHRwXVsw
XX19YCBvciBhIGdlbmVyaWMgaG9zdG5hbWUgbGlrZSBgZXhhbXBsZS5vcmdgCisgICAgIiIiCisK
K2NsYXNzIFdlYlBsYXRmb3JtVGVzdFJlZ2V4cChSZWdleHApOgorICAgIHBhdHRlcm4gPSBiciJ3
ZWJcLXBsYXRmb3JtXC50ZXN0IgorICAgIG5hbWUgPSAiV0VCLVBMQVRGT1JNLlRFU1QiCisgICAg
ZGVzY3JpcHRpb24gPSAiSW50ZXJuYWwgd2ViLXBsYXRmb3JtLnRlc3QgZG9tYWluIHVzZWQiCisK
K2NsYXNzIFdlYmlkbDJSZWdleHAoUmVnZXhwKToKKyAgICBwYXR0ZXJuID0gYnIid2ViaWRsMlwu
anMiCisgICAgbmFtZSA9ICJXRUJJREwyLkpTIgorICAgIGRlc2NyaXB0aW9uID0gIkxlZ2FjeSB3
ZWJpZGwyLmpzIHNjcmlwdCB1c2VkIgorCitjbGFzcyBDb25zb2xlUmVnZXhwKFJlZ2V4cCk6Cisg
ICAgcGF0dGVybiA9IGJyImNvbnNvbGVcLlthLXpBLVpdK1xzKlwoIgorICAgIG5hbWUgPSAiQ09O
U09MRSIKKyAgICBmaWxlX2V4dGVuc2lvbnMgPSBbIi5odG1sIiwgIi5odG0iLCAiLmpzIiwgIi54
aHQiLCAiLnhodG1sIiwgIi5zdmciXQorICAgIGRlc2NyaXB0aW9uID0gIlRlc3QtZmlsZSBsaW5l
IGhhcyBhIGBjb25zb2xlLiooLi4uKWAgY2FsbCIKKyAgICB0b19maXggPSAiIiIKKyAgICAgICAg
cmVtb3ZlIHRoZSBgY29uc29sZS4qKC4uLilgIGNhbGwgKGFuZCBpbiBzb21lIGNhc2VzLCBjb25z
aWRlciBhZGRpbmcgYW4KKyAgICAgICAgYGFzc2VydF8qYCBvZiBzb21lIGtpbmQgaW4gcGxhY2Ug
b2YgaXQpCisgICAgIiIiCisKK2NsYXNzIEdlbmVyYXRlVGVzdHNSZWdleHAoUmVnZXhwKToKKyAg
ICBwYXR0ZXJuID0gYnIiZ2VuZXJhdGVfdGVzdHNccypcKCIKKyAgICBuYW1lID0gIkdFTkVSQVRF
X1RFU1RTIgorICAgIGZpbGVfZXh0ZW5zaW9ucyA9IFsiLmh0bWwiLCAiLmh0bSIsICIuanMiLCAi
LnhodCIsICIueGh0bWwiLCAiLnN2ZyJdCisgICAgZGVzY3JpcHRpb24gPSAiVGVzdCBmaWxlIGxp
bmUgaGFzIGEgZ2VuZXJhdGVfdGVzdHMgY2FsbCIKKyAgICB0b19maXggPSAicmVtb3ZlIHRoZSBj
YWxsIGFuZCBjYWxsIGB0ZXN0KClgIGEgbnVtYmVyIG9mIHRpbWVzIGluc3RlYWQiCisKK2NsYXNz
IFByaW50UmVnZXhwKFJlZ2V4cCk6CisgICAgcGF0dGVybiA9IGJyInByaW50KD86XHN8XHMqXCgp
IgorICAgIG5hbWUgPSAiUFJJTlQgU1RBVEVNRU5UIgorICAgIGZpbGVfZXh0ZW5zaW9ucyA9IFsi
LnB5Il0KKyAgICBkZXNjcmlwdGlvbiA9IGNvbGxhcHNlKCIiIgorICAgICAgICBBIHNlcnZlci1z
aWRlIHB5dGhvbiBzdXBwb3J0IGZpbGUgY29udGFpbnMgYSBgcHJpbnRgIHN0YXRlbWVudAorICAg
ICIiIikKKyAgICB0b19maXggPSAiIiIKKyAgICAgICAgcmVtb3ZlIHRoZSBgcHJpbnRgIHN0YXRl
bWVudCBvciByZXBsYWNlIGl0IHdpdGggc29tZXRoaW5nIGVsc2UgdGhhdAorICAgICAgICBhY2hp
ZXZlcyB0aGUgaW50ZW5kZWQgZWZmZWN0IChlLmcuLCBhIGxvZ2dpbmcgY2FsbCkKKyAgICAiIiIK
KworY2xhc3MgTGF5b3V0VGVzdHNSZWdleHAoUmVnZXhwKToKKyAgICBwYXR0ZXJuID0gYnIiKGV2
ZW50U2VuZGVyfHRlc3RSdW5uZXJ8aW50ZXJuYWxzKVwuIgorICAgIG5hbWUgPSAiTEFZT1VUVEVT
VFMgQVBJUyIKKyAgICBmaWxlX2V4dGVuc2lvbnMgPSBbIi5odG1sIiwgIi5odG0iLCAiLmpzIiwg
Ii54aHQiLCAiLnhodG1sIiwgIi5zdmciXQorICAgIGRlc2NyaXB0aW9uID0gImV2ZW50U2VuZGVy
L3Rlc3RSdW5uZXIvaW50ZXJuYWxzIHVzZWQ7IHRoZXNlIGFyZSBMYXlvdXRUZXN0cy1zcGVjaWZp
YyBBUElzIChXZWJLaXQvQmxpbmspIgorCitjbGFzcyBNaXNzaW5nRGVwc1JlZ2V4cChSZWdleHAp
OgorICAgIHBhdHRlcm4gPSBiciJbXlx3XS9nZW4vIgorICAgIG5hbWUgPSAiTUlTU0lORyBERVBF
TkRFTkNZIgorICAgIGZpbGVfZXh0ZW5zaW9ucyA9IFsiLmh0bWwiLCAiLmh0bSIsICIuanMiLCAi
LnhodCIsICIueGh0bWwiLCAiLnN2ZyJdCisgICAgZGVzY3JpcHRpb24gPSAiQ2hyb21pdW0tc3Bl
Y2lmaWMgY29udGVudCByZWZlcmVuY2VkIgorICAgIHRvX2ZpeCA9ICJSZWltcGxlbWVudCB0aGUg
dGVzdCB0byB1c2Ugd2VsbC1kb2N1bWVudGVkIHRlc3RpbmcgaW50ZXJmYWNlcyIKKworY2xhc3Mg
U3BlY2lhbFBvd2Vyc1JlZ2V4cChSZWdleHApOgorICAgIHBhdHRlcm4gPSBiIlNwZWNpYWxQb3dl
cnMiCisgICAgbmFtZSA9ICJTUEVDSUFMUE9XRVJTIEFQSSIKKyAgICBmaWxlX2V4dGVuc2lvbnMg
PSBbIi5odG1sIiwgIi5odG0iLCAiLmpzIiwgIi54aHQiLCAiLnhodG1sIiwgIi5zdmciXQorICAg
IGRlc2NyaXB0aW9uID0gIlNwZWNpYWxQb3dlcnMgdXNlZDsgdGhpcyBpcyBnZWNrby1zcGVjaWZp
YyBhbmQgbm90IHN1cHBvcnRlZCBpbiB3cHQiCisKK2NsYXNzIFRyYWlsaW5nV2hpdGVzcGFjZVJl
Z2V4cChSZWdleHApOgorICAgIG5hbWUgPSAiVFJBSUxJTkcgV0hJVEVTUEFDRSIKKyAgICBkZXNj
cmlwdGlvbiA9ICJXaGl0ZXNwYWNlIGF0IEVPTCIKKyAgICBwYXR0ZXJuID0gYiJbIFx0XGZcdl0k
IgorICAgIHRvX2ZpeCA9ICIiIlJlbW92ZSB0cmFpbGluZyB3aGl0ZXNwYWNlIGZyb20gYWxsIGxp
bmVzIGluIHRoZSBmaWxlLiIiIgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9saW50L3Rlc3RzL2R1bW15L3JlZi9hYm91dF9ibGFu
ay1yZWYuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvbGludC90ZXN0cy9kdW1teS9hYm91dF9ibGFuay5odG1sCnNpbWlsYXJpdHkgaW5kZXgg
MTAwJQpyZW5hbWUgZnJvbSBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL2xpbnQvdGVzdHMvZHVtbXkvcmVmL2Fib3V0X2JsYW5rLXJlZi5odG1sCnJlbmFt
ZSB0byBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2xp
bnQvdGVzdHMvZHVtbXkvYWJvdXRfYmxhbmsuaHRtbApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9saW50L3Rlc3RzL2R1bW15L3Jl
Zi93M2MtaW1wb3J0LmxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvbGludC90ZXN0cy9kdW1teS9yZWYvdzNjLWltcG9ydC5sb2cKaW5kZXggMDg1
MjNlOTc5YjUuLmQ0NGRhNTlhOTJjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2xpbnQvdGVzdHMvZHVtbXkvcmVmL3czYy1pbXBv
cnQubG9nCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvbGludC90ZXN0cy9kdW1teS9yZWYvdzNjLWltcG9ydC5sb2cKQEAgLTE0LDcgKzE0LDYg
QEAgUHJvcGVydHkgdmFsdWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6CiBOb25lCiAtLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0KIExpc3Qgb2YgZmlsZXM6Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy9saW50L3Rlc3RzL2R1bW15L3JlZi9hYm91dF9ibGFuay1y
ZWYuaHRtbAogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvbGludC90ZXN0cy9kdW1teS9yZWYvYWJzb2x1dGUuaHRtbAogL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvbGludC90ZXN0cy9kdW1teS9yZWYvZXhp
c3RlbnRfcmVsYXRpdmUtZXhwZWN0ZWQuaHRtbAogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvbGludC90ZXN0cy9kdW1teS9yZWYvZXhpc3RlbnRfcmVs
YXRpdmUuaHRtbApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy9saW50L3Rlc3RzL2R1bW15L3czYy1pbXBvcnQubG9nIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9saW50L3Rlc3RzL2R1
bW15L3czYy1pbXBvcnQubG9nCmluZGV4IGVlZmUzMGU2MzJiLi40NjA1NmU2NzEzZiAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9s
aW50L3Rlc3RzL2R1bW15L3czYy1pbXBvcnQubG9nCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvbGludC90ZXN0cy9kdW1teS93M2MtaW1wb3J0
LmxvZwpAQCAtMTQsNiArMTQsNyBAQCBQcm9wZXJ0eSB2YWx1ZXMgcmVxdWlyaW5nIHZlbmRvciBw
cmVmaXhlczoKIE5vbmUKIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogTGlzdCBvZiBmaWxlczoKKy9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2xpbnQvdGVzdHMvZHVt
bXkvYWJvdXRfYmxhbmsuaHRtbAogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvbGludC90ZXN0cy9kdW1teS9icm9rZW4uaHRtbAogL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvbGludC90ZXN0cy9kdW1teS9i
cm9rZW5faWdub3JlZC5odG1sCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy9saW50L3Rlc3RzL2R1bW15L2RlcGVuZGVuY3kuaHRtbApkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9saW50
L3Rlc3RzL3Rlc3RfZmlsZV9saW50cy5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvbGludC90ZXN0cy90ZXN0X2ZpbGVfbGludHMucHkKaW5kZXgg
MjhjY2FjYzg3ODcuLjgwOTRkNmQ0MGE1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2xpbnQvdGVzdHMvdGVzdF9maWxlX2xpbnRz
LnB5CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvbGludC90ZXN0cy90ZXN0X2ZpbGVfbGludHMucHkKQEAgLTU0LDcgKzU0LDcgQEAgZGVmIHRl
c3RfaW5kZW50X3RhYnMoKToKICAgICBmb3IgKGZpbGVuYW1lLCAoZXJyb3JzLCBraW5kKSkgaW4g
ZXJyb3JfbWFwLml0ZW1zKCk6CiAgICAgICAgIGNoZWNrX2Vycm9ycyhlcnJvcnMpCiAKLSAgICAg
ICAgZXhwZWN0ZWQgPSBbKCJJTkRFTlQgVEFCUyIsICJUYWJzIHVzZWQgZm9yIGluZGVudGF0aW9u
IiwgZmlsZW5hbWUsIDIpXQorICAgICAgICBleHBlY3RlZCA9IFsoIklOREVOVCBUQUJTIiwgIlRl
c3QtZmlsZSBsaW5lIHN0YXJ0cyB3aXRoIG9uZSBvciBtb3JlIHRhYiBjaGFyYWN0ZXJzIiwgZmls
ZW5hbWUsIDIpXQogICAgICAgICBpZiBraW5kID09ICJ3ZWItc3RyaWN0IjoKICAgICAgICAgICAg
IGV4cGVjdGVkLmFwcGVuZCgoIlBBUlNFLUZBSUxFRCIsICJVbmFibGUgdG8gcGFyc2UgZmlsZSIs
IGZpbGVuYW1lLCBOb25lKSkKICAgICAgICAgYXNzZXJ0IGVycm9ycyA9PSBleHBlY3RlZApAQCAt
NjYsNyArNjYsNyBAQCBkZWYgdGVzdF9jcl9ub3RfYXRfZW9sKCk6CiAgICAgZm9yIChmaWxlbmFt
ZSwgKGVycm9ycywga2luZCkpIGluIGVycm9yX21hcC5pdGVtcygpOgogICAgICAgICBjaGVja19l
cnJvcnMoZXJyb3JzKQogCi0gICAgICAgIGV4cGVjdGVkID0gWygiQ1IgQVQgRU9MIiwgIkNSIGNo
YXJhY3RlciBpbiBsaW5lIHNlcGFyYXRvciIsIGZpbGVuYW1lLCAxKV0KKyAgICAgICAgZXhwZWN0
ZWQgPSBbKCJDUiBBVCBFT0wiLCAiVGVzdC1maWxlIGxpbmUgZW5kcyB3aXRoIENSIChVKzAwMEQp
IGNoYXJhY3RlciIsIGZpbGVuYW1lLCAxKV0KICAgICAgICAgaWYga2luZCA9PSAid2ViLXN0cmlj
dCI6CiAgICAgICAgICAgICBleHBlY3RlZC5hcHBlbmQoKCJQQVJTRS1GQUlMRUQiLCAiVW5hYmxl
IHRvIHBhcnNlIGZpbGUiLCBmaWxlbmFtZSwgTm9uZSkpCiAgICAgICAgIGFzc2VydCBlcnJvcnMg
PT0gZXhwZWN0ZWQKQEAgLTc5LDggKzc5LDggQEAgZGVmIHRlc3RfY3JfYXRfZW9sKCk6CiAgICAg
ICAgIGNoZWNrX2Vycm9ycyhlcnJvcnMpCiAKICAgICAgICAgZXhwZWN0ZWQgPSBbCi0gICAgICAg
ICAgICAoIkNSIEFUIEVPTCIsICJDUiBjaGFyYWN0ZXIgaW4gbGluZSBzZXBhcmF0b3IiLCBmaWxl
bmFtZSwgMSksCi0gICAgICAgICAgICAoIkNSIEFUIEVPTCIsICJDUiBjaGFyYWN0ZXIgaW4gbGlu
ZSBzZXBhcmF0b3IiLCBmaWxlbmFtZSwgMiksCisgICAgICAgICAgICAoIkNSIEFUIEVPTCIsICJU
ZXN0LWZpbGUgbGluZSBlbmRzIHdpdGggQ1IgKFUrMDAwRCkgY2hhcmFjdGVyIiwgZmlsZW5hbWUs
IDEpLAorICAgICAgICAgICAgKCJDUiBBVCBFT0wiLCAiVGVzdC1maWxlIGxpbmUgZW5kcyB3aXRo
IENSIChVKzAwMEQpIGNoYXJhY3RlciIsIGZpbGVuYW1lLCAyKSwKICAgICAgICAgXQogICAgICAg
ICBpZiBraW5kID09ICJ3ZWItc3RyaWN0IjoKICAgICAgICAgICAgIGV4cGVjdGVkLmFwcGVuZCgo
IlBBUlNFLUZBSUxFRCIsICJVbmFibGUgdG8gcGFyc2UgZmlsZSIsIGZpbGVuYW1lLCBOb25lKSkK
QEAgLTkzLDcgKzkzLDcgQEAgZGVmIHRlc3RfdzNjX3Rlc3Rfb3JnKCk6CiAgICAgZm9yIChmaWxl
bmFtZSwgKGVycm9ycywga2luZCkpIGluIGVycm9yX21hcC5pdGVtcygpOgogICAgICAgICBjaGVj
a19lcnJvcnMoZXJyb3JzKQogCi0gICAgICAgIGV4cGVjdGVkID0gWygiVzNDLVRFU1QuT1JHIiwg
IkV4dGVybmFsIHczYy10ZXN0Lm9yZyBkb21haW4gdXNlZCIsIGZpbGVuYW1lLCAxKV0KKyAgICAg
ICAgZXhwZWN0ZWQgPSBbKCJXM0MtVEVTVC5PUkciLCAiVGVzdC1maWxlIGxpbmUgaGFzIHRoZSBz
dHJpbmcgYHczYy10ZXN0Lm9yZ2AiLCBmaWxlbmFtZSwgMSldCiAgICAgICAgIGlmIGtpbmQgPT0g
InB5dGhvbiI6CiAgICAgICAgICAgICBleHBlY3RlZC5hcHBlbmQoKCJQQVJTRS1GQUlMRUQiLCAi
VW5hYmxlIHRvIHBhcnNlIGZpbGUiLCBmaWxlbmFtZSwgMSkpCiAgICAgICAgIGVsaWYga2luZCA9
PSAid2ViLXN0cmljdCI6CkBAIC0xMzYsOCArMTM2LDggQEAgZGVmIHRlc3RfY29uc29sZSgpOgog
CiAgICAgICAgIGlmIGtpbmQgaW4gWyJ3ZWItbGF4IiwgIndlYi1zdHJpY3QiLCAianMiXToKICAg
ICAgICAgICAgIGFzc2VydCBlcnJvcnMgPT0gWwotICAgICAgICAgICAgICAgICgiQ09OU09MRSIs
ICJDb25zb2xlIGxvZ2dpbmcgQVBJIHVzZWQiLCBmaWxlbmFtZSwgMiksCi0gICAgICAgICAgICAg
ICAgKCJDT05TT0xFIiwgIkNvbnNvbGUgbG9nZ2luZyBBUEkgdXNlZCIsIGZpbGVuYW1lLCAzKSwK
KyAgICAgICAgICAgICAgICAoIkNPTlNPTEUiLCAiVGVzdC1maWxlIGxpbmUgaGFzIGEgYGNvbnNv
bGUuKiguLi4pYCBjYWxsIiwgZmlsZW5hbWUsIDIpLAorICAgICAgICAgICAgICAgICgiQ09OU09M
RSIsICJUZXN0LWZpbGUgbGluZSBoYXMgYSBgY29uc29sZS4qKC4uLilgIGNhbGwiLCBmaWxlbmFt
ZSwgMyksCiAgICAgICAgICAgICBdCiAgICAgICAgIGVsc2U6CiAgICAgICAgICAgICBhc3NlcnQg
ZXJyb3JzID09IFsoIlBBUlNFLUZBSUxFRCIsICJVbmFibGUgdG8gcGFyc2UgZmlsZSIsIGZpbGVu
YW1lLCAxKV0KQEAgLTE1Myw3ICsxNTMsNyBAQCBkZWYgdGVzdF9zZXRUaW1lb3V0KCk6CiAgICAg
ICAgICAgICBhc3NlcnQgZXJyb3JzID09IFsoIlBBUlNFLUZBSUxFRCIsICJVbmFibGUgdG8gcGFy
c2UgZmlsZSIsIGZpbGVuYW1lLCAxKV0KICAgICAgICAgZWxzZToKICAgICAgICAgICAgIGFzc2Vy
dCBlcnJvcnMgPT0gWygnU0VUIFRJTUVPVVQnLAotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICdzZXRUaW1lb3V0IHVzZWQ7IHN0ZXBfdGltZW91dCBzaG91bGQgdHlwaWNhbGx5IGJlIHVz
ZWQgaW5zdGVhZCcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3NldFRpbWVvdXQg
dXNlZCcsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsZW5hbWUsCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgMSldCiAKQEAgLTE2OCw3ICsxNjgsNyBAQCBkZWYgdGVz
dF9ldmVudFNlbmRlcigpOgogICAgICAgICAgICAgYXNzZXJ0IGVycm9ycyA9PSBbKCJQQVJTRS1G
QUlMRUQiLCAiVW5hYmxlIHRvIHBhcnNlIGZpbGUiLCBmaWxlbmFtZSwgMSldCiAgICAgICAgIGVs
c2U6CiAgICAgICAgICAgICBhc3NlcnQgZXJyb3JzID09IFsoJ0xBWU9VVFRFU1RTIEFQSVMnLAot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdldmVudFNlbmRlci90ZXN0UnVubmVyL3dp
bmRvdy5pbnRlcm5hbHMgdXNlZDsgdGhlc2UgYXJlIExheW91dFRlc3RzLXNwZWNpZmljIEFQSXMg
KFdlYktpdC9CbGluayknLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdldmVudFNl
bmRlci90ZXN0UnVubmVyL2ludGVybmFscyB1c2VkOyB0aGVzZSBhcmUgTGF5b3V0VGVzdHMtc3Bl
Y2lmaWMgQVBJcyAoV2ViS2l0L0JsaW5rKScsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgZmlsZW5hbWUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMSldCiAKQEAgLTE4
MywxMiArMTgzLDEyIEBAIGRlZiB0ZXN0X3Rlc3RSdW5uZXIoKToKICAgICAgICAgICAgIGFzc2Vy
dCBlcnJvcnMgPT0gWygiUEFSU0UtRkFJTEVEIiwgIlVuYWJsZSB0byBwYXJzZSBmaWxlIiwgZmls
ZW5hbWUsIDEpXQogICAgICAgICBlbHNlOgogICAgICAgICAgICAgYXNzZXJ0IGVycm9ycyA9PSBb
KCdMQVlPVVRURVNUUyBBUElTJywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZXZl
bnRTZW5kZXIvdGVzdFJ1bm5lci93aW5kb3cuaW50ZXJuYWxzIHVzZWQ7IHRoZXNlIGFyZSBMYXlv
dXRUZXN0cy1zcGVjaWZpYyBBUElzIChXZWJLaXQvQmxpbmspJywKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAnZXZlbnRTZW5kZXIvdGVzdFJ1bm5lci9pbnRlcm5hbHMgdXNlZDsgdGhl
c2UgYXJlIExheW91dFRlc3RzLXNwZWNpZmljIEFQSXMgKFdlYktpdC9CbGluayknLAogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGVuYW1lLAogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIDEpXQogCiAKLWRlZiB0ZXN0X3dpbmRvd0RvdEludGVybmFscygpOgorZGVmIHRl
c3RfaW50ZXJuYWxzKCk6CiAgICAgZXJyb3JfbWFwID0gY2hlY2tfd2l0aF9maWxlcyhiIjxzY3Jp
cHQ+aWYgKHdpbmRvdy5pbnRlcm5hbHMpIHsgaW50ZXJuYWxzLmRvQVRoaW5nKCk7IH08L3Njcmlw
dD4iKQogCiAgICAgZm9yIChmaWxlbmFtZSwgKGVycm9ycywga2luZCkpIGluIGVycm9yX21hcC5p
dGVtcygpOgpAQCAtMTk4LDExICsxOTgsNDEgQEAgZGVmIHRlc3Rfd2luZG93RG90SW50ZXJuYWxz
KCk6CiAgICAgICAgICAgICBhc3NlcnQgZXJyb3JzID09IFsoIlBBUlNFLUZBSUxFRCIsICJVbmFi
bGUgdG8gcGFyc2UgZmlsZSIsIGZpbGVuYW1lLCAxKV0KICAgICAgICAgZWxzZToKICAgICAgICAg
ICAgIGFzc2VydCBlcnJvcnMgPT0gWygnTEFZT1VUVEVTVFMgQVBJUycsCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgJ2V2ZW50U2VuZGVyL3Rlc3RSdW5uZXIvd2luZG93LmludGVybmFs
cyB1c2VkOyB0aGVzZSBhcmUgTGF5b3V0VGVzdHMtc3BlY2lmaWMgQVBJcyAoV2ViS2l0L0JsaW5r
KScsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2V2ZW50U2VuZGVyL3Rlc3RSdW5u
ZXIvaW50ZXJuYWxzIHVzZWQ7IHRoZXNlIGFyZSBMYXlvdXRUZXN0cy1zcGVjaWZpYyBBUElzIChX
ZWJLaXQvQmxpbmspJywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWxlbmFtZSwK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxKV0KIAogCitkZWYgdGVzdF9taXNzaW5n
X2RlcHMoKToKKyAgICBlcnJvcl9tYXAgPSBjaGVja193aXRoX2ZpbGVzKGIiPHNjcmlwdCBzcmM9
Jy9nZW4vZm9vLmpzJz48L3NjcmlwdD4iKQorCisgICAgZm9yIChmaWxlbmFtZSwgKGVycm9ycywg
a2luZCkpIGluIGVycm9yX21hcC5pdGVtcygpOgorICAgICAgICBjaGVja19lcnJvcnMoZXJyb3Jz
KQorCisgICAgICAgIGlmIGtpbmQgPT0gInB5dGhvbiI6CisgICAgICAgICAgICBhc3NlcnQgZXJy
b3JzID09IFsoIlBBUlNFLUZBSUxFRCIsICJVbmFibGUgdG8gcGFyc2UgZmlsZSIsIGZpbGVuYW1l
LCAxKV0KKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIGFzc2VydCBlcnJvcnMgPT0gWygnTUlT
U0lORyBERVBFTkRFTkNZJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnQ2hyb21p
dW0tc3BlY2lmaWMgY29udGVudCByZWZlcmVuY2VkJywKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBmaWxlbmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxKV0KKwor
CitkZWYgdGVzdF9ub19taXNzaW5nX2RlcHMoKToKKyAgICBlcnJvcl9tYXAgPSBjaGVja193aXRo
X2ZpbGVzKGIiIiI8aGVhZD4KKzxzY3JpcHQgc3JjPScvZm9vL2dlbi9mb28uanMnPjwvc2NyaXB0
PgorPHNjcmlwdCBzcmM9Jy9nZW5zL2Zvby5qcyc+PC9zY3JpcHQ+Cis8L2hlYWQ+IiIiKQorCisg
ICAgZm9yIChmaWxlbmFtZSwgKGVycm9ycywga2luZCkpIGluIGVycm9yX21hcC5pdGVtcygpOgor
ICAgICAgICBjaGVja19lcnJvcnMoZXJyb3JzKQorCisgICAgICAgIGlmIGtpbmQgPT0gInB5dGhv
biI6CisgICAgICAgICAgICBhc3NlcnQgZXJyb3JzID09IFsoIlBBUlNFLUZBSUxFRCIsICJVbmFi
bGUgdG8gcGFyc2UgZmlsZSIsIGZpbGVuYW1lLCAxKV0KKyAgICAgICAgZWxzZToKKyAgICAgICAg
ICAgIGFzc2VydCBlcnJvcnMgPT0gW10KKworCiBkZWYgdGVzdF9tZXRhX3RpbWVvdXQoKToKICAg
ICBjb2RlID0gYiIiIgogPGh0bWwgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwi
PgpAQCAtMjE5LDggKzI0OSwxNCBAQCBkZWYgdGVzdF9tZXRhX3RpbWVvdXQoKToKICAgICAgICAg
aWYga2luZCBpbiBbIndlYi1sYXgiLCAid2ViLXN0cmljdCJdOgogICAgICAgICAgICAgYXNzZXJ0
IGVycm9ycyA9PSBbCiAgICAgICAgICAgICAgICAgKCJNVUxUSVBMRS1USU1FT1VUIiwgIk1vcmUg
dGhhbiBvbmUgbWV0YSBuYW1lPSd0aW1lb3V0JyIsIGZpbGVuYW1lLCBOb25lKSwKLSAgICAgICAg
ICAgICAgICAoIklOVkFMSUQtVElNRU9VVCIsICJJbnZhbGlkIHRpbWVvdXQgdmFsdWUgIiwgZmls
ZW5hbWUsIE5vbmUpLAotICAgICAgICAgICAgICAgICgiSU5WQUxJRC1USU1FT1VUIiwgIkludmFs
aWQgdGltZW91dCB2YWx1ZSBzaG9ydCIsIGZpbGVuYW1lLCBOb25lKSwKKyAgICAgICAgICAgICAg
ICAoIklOVkFMSUQtVElNRU9VVCIsCisgICAgICAgICAgICAgICAgICAgICJUZXN0IGZpbGUgd2l0
aCBgPG1ldGEgbmFtZT0ndGltZW91dCcuLi4+YCBlbGVtZW50IHRoYXQgaGFzIGEgYGNvbnRlbnRg
IGF0dHJpYnV0ZSB3aG9zZSB2YWx1ZSBpcyBub3QgYGxvbmdgOiAiLAorICAgICAgICAgICAgICAg
ICAgICBmaWxlbmFtZSwKKyAgICAgICAgICAgICAgICAgICAgTm9uZSksCisgICAgICAgICAgICAg
ICAgKCJJTlZBTElELVRJTUVPVVQiLAorICAgICAgICAgICAgICAgICAgICAiVGVzdCBmaWxlIHdp
dGggYDxtZXRhIG5hbWU9J3RpbWVvdXQnLi4uPmAgZWxlbWVudCB0aGF0IGhhcyBhIGBjb250ZW50
YCBhdHRyaWJ1dGUgd2hvc2UgdmFsdWUgaXMgbm90IGBsb25nYDogc2hvcnQiLAorICAgICAgICAg
ICAgICAgICAgICBmaWxlbmFtZSwKKyAgICAgICAgICAgICAgICAgICAgTm9uZSksCiAgICAgICAg
ICAgICBdCiAgICAgICAgIGVsaWYga2luZCA9PSAicHl0aG9uIjoKICAgICAgICAgICAgIGFzc2Vy
dCBlcnJvcnMgPT0gWwpAQCAtMjQyLDcgKzI3OCwxMiBAQCBkZWYgdGVzdF9lYXJseV90ZXN0aGFy
bmVzc3JlcG9ydCgpOgogCiAgICAgICAgIGlmIGtpbmQgaW4gWyJ3ZWItbGF4IiwgIndlYi1zdHJp
Y3QiXToKICAgICAgICAgICAgIGFzc2VydCBlcnJvcnMgPT0gWwotICAgICAgICAgICAgICAgICgi
RUFSTFktVEVTVEhBUk5FU1NSRVBPUlQiLCAidGVzdGhhcm5lc3NyZXBvcnQuanMgc2NyaXB0IHNl
ZW4gYmVmb3JlIHRlc3RoYXJuZXNzLmpzIHNjcmlwdCIsIGZpbGVuYW1lLCBOb25lKSwKKyAgICAg
ICAgICAgICAgICAoIkVBUkxZLVRFU1RIQVJORVNTUkVQT1JUIiwKKyAgICAgICAgICAgICAgICAg
ICAgIlRlc3QgZmlsZSBoYXMgYW4gaW5zdGFuY2Ugb2YgIgorICAgICAgICAgICAgICAgICAgICAi
YDxzY3JpcHQgc3JjPScvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzJz5gICIKKyAgICAg
ICAgICAgICAgICAgICAgInByaW9yIHRvIGA8c2NyaXB0IHNyYz0nL3Jlc291cmNlcy90ZXN0aGFy
bmVzcy5qcyc+YCIsCisgICAgICAgICAgICAgICAgICAgIGZpbGVuYW1lLAorICAgICAgICAgICAg
ICAgICAgICBOb25lKSwKICAgICAgICAgICAgIF0KICAgICAgICAgZWxpZiBraW5kID09ICJweXRo
b24iOgogICAgICAgICAgICAgYXNzZXJ0IGVycm9ycyA9PSBbCkBAIC0yNjQsOCArMzA1LDggQEAg
ZGVmIHRlc3RfbXVsdGlwbGVfdGVzdGhhcm5lc3MoKToKIAogICAgICAgICBpZiBraW5kIGluIFsi
d2ViLWxheCIsICJ3ZWItc3RyaWN0Il06CiAgICAgICAgICAgICBhc3NlcnQgZXJyb3JzID09IFsK
LSAgICAgICAgICAgICAgICAoIk1VTFRJUExFLVRFU1RIQVJORVNTIiwgIk1vcmUgdGhhbiBvbmUg
PHNjcmlwdCBzcmM9Jy9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMnPiIsIGZpbGVuYW1lLCBOb25l
KSwKLSAgICAgICAgICAgICAgICAoIk1JU1NJTkctVEVTVEhBUk5FU1NSRVBPUlQiLCAiTWlzc2lu
ZyA8c2NyaXB0IHNyYz0nL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyc+IiwgZmlsZW5h
bWUsIE5vbmUpLAorICAgICAgICAgICAgICAgICgiTVVMVElQTEUtVEVTVEhBUk5FU1MiLCAiTW9y
ZSB0aGFuIG9uZSBgPHNjcmlwdCBzcmM9Jy9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMnPmAiLCBm
aWxlbmFtZSwgTm9uZSksCisgICAgICAgICAgICAgICAgKCJNSVNTSU5HLVRFU1RIQVJORVNTUkVQ
T1JUIiwgIk1pc3NpbmcgYDxzY3JpcHQgc3JjPScvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0
LmpzJz5gIiwgZmlsZW5hbWUsIE5vbmUpLAogICAgICAgICAgICAgXQogICAgICAgICBlbGlmIGtp
bmQgPT0gInB5dGhvbiI6CiAgICAgICAgICAgICBhc3NlcnQgZXJyb3JzID09IFsKQEAgLTI4OCw3
ICszMjksODAgQEAgZGVmIHRlc3RfbXVsdGlwbGVfdGVzdGhhcm5lc3NyZXBvcnQoKToKIAogICAg
ICAgICBpZiBraW5kIGluIFsid2ViLWxheCIsICJ3ZWItc3RyaWN0Il06CiAgICAgICAgICAgICBh
c3NlcnQgZXJyb3JzID09IFsKLSAgICAgICAgICAgICAgICAoIk1VTFRJUExFLVRFU1RIQVJORVNT
UkVQT1JUIiwgIk1vcmUgdGhhbiBvbmUgPHNjcmlwdCBzcmM9Jy9yZXNvdXJjZXMvdGVzdGhhcm5l
c3NyZXBvcnQuanMnPiIsIGZpbGVuYW1lLCBOb25lKSwKKyAgICAgICAgICAgICAgICAoIk1VTFRJ
UExFLVRFU1RIQVJORVNTUkVQT1JUIiwgIk1vcmUgdGhhbiBvbmUgYDxzY3JpcHQgc3JjPScvcmVz
b3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzJz5gIiwgZmlsZW5hbWUsIE5vbmUpLAorICAgICAg
ICAgICAgXQorICAgICAgICBlbGlmIGtpbmQgPT0gInB5dGhvbiI6CisgICAgICAgICAgICBhc3Nl
cnQgZXJyb3JzID09IFsKKyAgICAgICAgICAgICAgICAoIlBBUlNFLUZBSUxFRCIsICJVbmFibGUg
dG8gcGFyc2UgZmlsZSIsIGZpbGVuYW1lLCAyKSwKKyAgICAgICAgICAgIF0KKworCitkZWYgdGVz
dF9tdWx0aXBsZV90ZXN0ZHJpdmVyKCk6CisgICAgY29kZSA9IGIiIiIKKzxodG1sIHhtbG5zPSJo
dHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIj4KKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rl
c3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJu
ZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3Rkcml2
ZXIuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGRyaXZlci5qcyI+
PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0ZHJpdmVyLXZlbmRvci5qcyI+
PC9zY3JpcHQ+Cis8L2h0bWw+CisiIiIKKyAgICBlcnJvcl9tYXAgPSBjaGVja193aXRoX2ZpbGVz
KGNvZGUpCisKKyAgICBmb3IgKGZpbGVuYW1lLCAoZXJyb3JzLCBraW5kKSkgaW4gZXJyb3JfbWFw
Lml0ZW1zKCk6CisgICAgICAgIGNoZWNrX2Vycm9ycyhlcnJvcnMpCisKKyAgICAgICAgaWYga2lu
ZCBpbiBbIndlYi1sYXgiLCAid2ViLXN0cmljdCJdOgorICAgICAgICAgICAgYXNzZXJ0IGVycm9y
cyA9PSBbCisgICAgICAgICAgICAgICAgKCJNVUxUSVBMRS1URVNURFJJVkVSIiwgIk1vcmUgdGhh
biBvbmUgYDxzY3JpcHQgc3JjPScvcmVzb3VyY2VzL3Rlc3Rkcml2ZXIuanMnPmAiLCBmaWxlbmFt
ZSwgTm9uZSksCisgICAgICAgICAgICBdCisgICAgICAgIGVsaWYga2luZCA9PSAicHl0aG9uIjoK
KyAgICAgICAgICAgIGFzc2VydCBlcnJvcnMgPT0gWworICAgICAgICAgICAgICAgICgiUEFSU0Ut
RkFJTEVEIiwgIlVuYWJsZSB0byBwYXJzZSBmaWxlIiwgZmlsZW5hbWUsIDIpLAorICAgICAgICAg
ICAgXQorCisKK2RlZiB0ZXN0X211bHRpcGxlX3Rlc3Rkcml2ZXJfdmVuZG9yKCk6CisgICAgY29k
ZSA9IGIiIiIKKzxodG1sIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIj4KKzxz
Y3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQg
c3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQg
c3JjPSIvcmVzb3VyY2VzL3Rlc3Rkcml2ZXIuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii9y
ZXNvdXJjZXMvdGVzdGRyaXZlci12ZW5kb3IuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii9y
ZXNvdXJjZXMvdGVzdGRyaXZlci12ZW5kb3IuanMiPjwvc2NyaXB0PgorPC9odG1sPgorIiIiCisg
ICAgZXJyb3JfbWFwID0gY2hlY2tfd2l0aF9maWxlcyhjb2RlKQorCisgICAgZm9yIChmaWxlbmFt
ZSwgKGVycm9ycywga2luZCkpIGluIGVycm9yX21hcC5pdGVtcygpOgorICAgICAgICBjaGVja19l
cnJvcnMoZXJyb3JzKQorCisgICAgICAgIGlmIGtpbmQgaW4gWyJ3ZWItbGF4IiwgIndlYi1zdHJp
Y3QiXToKKyAgICAgICAgICAgIGFzc2VydCBlcnJvcnMgPT0gWworICAgICAgICAgICAgICAgICgi
TVVMVElQTEUtVEVTVERSSVZFUi1WRU5ET1IiLCAiTW9yZSB0aGFuIG9uZSBgPHNjcmlwdCBzcmM9
Jy9yZXNvdXJjZXMvdGVzdGRyaXZlci12ZW5kb3IuanMnPmAiLCBmaWxlbmFtZSwgTm9uZSksCisg
ICAgICAgICAgICBdCisgICAgICAgIGVsaWYga2luZCA9PSAicHl0aG9uIjoKKyAgICAgICAgICAg
IGFzc2VydCBlcnJvcnMgPT0gWworICAgICAgICAgICAgICAgICgiUEFSU0UtRkFJTEVEIiwgIlVu
YWJsZSB0byBwYXJzZSBmaWxlIiwgZmlsZW5hbWUsIDIpLAorICAgICAgICAgICAgXQorCisKK2Rl
ZiB0ZXN0X21pc3NpbmdfdGVzdGRyaXZlcl92ZW5kb3IoKToKKyAgICBjb2RlID0gYiIiIgorPGh0
bWwgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiPgorPHNjcmlwdCBzcmM9Ii9y
ZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii9yZXNvdXJj
ZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii9yZXNvdXJj
ZXMvdGVzdGRyaXZlci5qcyI+PC9zY3JpcHQ+Cis8L2h0bWw+CisiIiIKKyAgICBlcnJvcl9tYXAg
PSBjaGVja193aXRoX2ZpbGVzKGNvZGUpCisKKyAgICBmb3IgKGZpbGVuYW1lLCAoZXJyb3JzLCBr
aW5kKSkgaW4gZXJyb3JfbWFwLml0ZW1zKCk6CisgICAgICAgIGNoZWNrX2Vycm9ycyhlcnJvcnMp
CisKKyAgICAgICAgaWYga2luZCBpbiBbIndlYi1sYXgiLCAid2ViLXN0cmljdCJdOgorICAgICAg
ICAgICAgYXNzZXJ0IGVycm9ycyA9PSBbCisgICAgICAgICAgICAgICAgKCJNSVNTSU5HLVRFU1RE
UklWRVItVkVORE9SIiwgIk1pc3NpbmcgYDxzY3JpcHQgc3JjPScvcmVzb3VyY2VzL3Rlc3Rkcml2
ZXItdmVuZG9yLmpzJz5gIiwgZmlsZW5hbWUsIE5vbmUpLAogICAgICAgICAgICAgXQogICAgICAg
ICBlbGlmIGtpbmQgPT0gInB5dGhvbiI6CiAgICAgICAgICAgICBhc3NlcnQgZXJyb3JzID09IFsK
QEAgLTMzMyw3ICs0NDcsNyBAQCBkZWYgdGVzdF90ZXN0aGFybmVzc19wYXRoKCk6CiAgICAgZm9y
IChmaWxlbmFtZSwgKGVycm9ycywga2luZCkpIGluIGVycm9yX21hcC5pdGVtcygpOgogICAgICAg
ICBjaGVja19lcnJvcnMoZXJyb3JzKQogCi0gICAgICAgIGV4cGVjdGVkID0gWygiVzNDLVRFU1Qu
T1JHIiwgIkV4dGVybmFsIHczYy10ZXN0Lm9yZyBkb21haW4gdXNlZCIsIGZpbGVuYW1lLCA1KV0K
KyAgICAgICAgZXhwZWN0ZWQgPSBbKCJXM0MtVEVTVC5PUkciLCAiVGVzdC1maWxlIGxpbmUgaGFz
IHRoZSBzdHJpbmcgYHczYy10ZXN0Lm9yZ2AiLCBmaWxlbmFtZSwgNSldCiAgICAgICAgIGlmIGtp
bmQgPT0gInB5dGhvbiI6CiAgICAgICAgICAgICBleHBlY3RlZC5hcHBlbmQoKCJQQVJTRS1GQUlM
RUQiLCAiVW5hYmxlIHRvIHBhcnNlIGZpbGUiLCBmaWxlbmFtZSwgMSkpCiAgICAgICAgIGVsaWYg
a2luZCBpbiBbIndlYi1sYXgiLCAid2ViLXN0cmljdCJdOgpAQCAtMzYwLDcgKzQ3NCw3IEBAIGRl
ZiB0ZXN0X3Rlc3RoYXJuZXNzcmVwb3J0X3BhdGgoKToKICAgICBmb3IgKGZpbGVuYW1lLCAoZXJy
b3JzLCBraW5kKSkgaW4gZXJyb3JfbWFwLml0ZW1zKCk6CiAgICAgICAgIGNoZWNrX2Vycm9ycyhl
cnJvcnMpCiAKLSAgICAgICAgZXhwZWN0ZWQgPSBbKCJXM0MtVEVTVC5PUkciLCAiRXh0ZXJuYWwg
dzNjLXRlc3Qub3JnIGRvbWFpbiB1c2VkIiwgZmlsZW5hbWUsIDUpXQorICAgICAgICBleHBlY3Rl
ZCA9IFsoIlczQy1URVNULk9SRyIsICJUZXN0LWZpbGUgbGluZSBoYXMgdGhlIHN0cmluZyBgdzNj
LXRlc3Qub3JnYCIsIGZpbGVuYW1lLCA1KV0KICAgICAgICAgaWYga2luZCA9PSAicHl0aG9uIjoK
ICAgICAgICAgICAgIGV4cGVjdGVkLmFwcGVuZCgoIlBBUlNFLUZBSUxFRCIsICJVbmFibGUgdG8g
cGFyc2UgZmlsZSIsIGZpbGVuYW1lLCAxKSkKICAgICAgICAgZWxpZiBraW5kIGluIFsid2ViLWxh
eCIsICJ3ZWItc3RyaWN0Il06CkBAIC0zNzMsMTIgKzQ4Nyw4MSBAQCBkZWYgdGVzdF90ZXN0aGFy
bmVzc3JlcG9ydF9wYXRoKCk6CiAgICAgICAgIGFzc2VydCBlcnJvcnMgPT0gZXhwZWN0ZWQKIAog
CitkZWYgdGVzdF90ZXN0ZHJpdmVyX3BhdGgoKToKKyAgICBjb2RlID0gYiIiIlwKKzxodG1sIHht
bG5zPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIj4KKzxzY3JpcHQgc3JjPSIvcmVzb3Vy
Y2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rl
c3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJ0ZXN0ZHJpdmVyLmpz
Ij48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIvZWxzZXdoZXJlL3Rlc3Rkcml2ZXIuanMiPjwvc2Ny
aXB0PgorPHNjcmlwdCBzcmM9Ii9lbHNld2hlcmUvcmVzb3VyY2VzL3Rlc3Rkcml2ZXIuanMiPjwv
c2NyaXB0PgorPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvZWxzZXdoZXJlL3Rlc3Rkcml2ZXIuanMi
Pjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy90ZXN0ZHJpdmVyLmpzIj48L3Nj
cmlwdD4KKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3Rkcml2ZXItdmVuZG9yLmpzIj48L3Nj
cmlwdD4KKzwvaHRtbD4KKyIiIgorICAgIGVycm9yX21hcCA9IGNoZWNrX3dpdGhfZmlsZXMoY29k
ZSkKKworICAgIGZvciAoZmlsZW5hbWUsIChlcnJvcnMsIGtpbmQpKSBpbiBlcnJvcl9tYXAuaXRl
bXMoKToKKyAgICAgICAgY2hlY2tfZXJyb3JzKGVycm9ycykKKworICAgICAgICBleHBlY3RlZCA9
IFtdCisgICAgICAgIGlmIGtpbmQgPT0gInB5dGhvbiI6CisgICAgICAgICAgICBleHBlY3RlZC5h
cHBlbmQoKCJQQVJTRS1GQUlMRUQiLCAiVW5hYmxlIHRvIHBhcnNlIGZpbGUiLCBmaWxlbmFtZSwg
MSkpCisgICAgICAgIGVsaWYga2luZCBpbiBbIndlYi1sYXgiLCAid2ViLXN0cmljdCJdOgorICAg
ICAgICAgICAgZXhwZWN0ZWQuZXh0ZW5kKFsKKyAgICAgICAgICAgICAgICAoIlRFU1REUklWRVIt
UEFUSCIsICJ0ZXN0ZHJpdmVyLmpzIHNjcmlwdCBzZWVuIHdpdGggaW5jb3JyZWN0IHBhdGgiLCBm
aWxlbmFtZSwgTm9uZSksCisgICAgICAgICAgICAgICAgKCJURVNURFJJVkVSLVBBVEgiLCAidGVz
dGRyaXZlci5qcyBzY3JpcHQgc2VlbiB3aXRoIGluY29ycmVjdCBwYXRoIiwgZmlsZW5hbWUsIE5v
bmUpLAorICAgICAgICAgICAgICAgICgiVEVTVERSSVZFUi1QQVRIIiwgInRlc3Rkcml2ZXIuanMg
c2NyaXB0IHNlZW4gd2l0aCBpbmNvcnJlY3QgcGF0aCIsIGZpbGVuYW1lLCBOb25lKSwKKyAgICAg
ICAgICAgICAgICAoIlRFU1REUklWRVItUEFUSCIsICJ0ZXN0ZHJpdmVyLmpzIHNjcmlwdCBzZWVu
IHdpdGggaW5jb3JyZWN0IHBhdGgiLCBmaWxlbmFtZSwgTm9uZSksCisgICAgICAgICAgICAgICAg
KCJURVNURFJJVkVSLVBBVEgiLCAidGVzdGRyaXZlci5qcyBzY3JpcHQgc2VlbiB3aXRoIGluY29y
cmVjdCBwYXRoIiwgZmlsZW5hbWUsIE5vbmUpCisgICAgICAgICAgICBdKQorICAgICAgICBhc3Nl
cnQgZXJyb3JzID09IGV4cGVjdGVkCisKKworZGVmIHRlc3RfdGVzdGRyaXZlcl92ZW5kb3JfcGF0
aCgpOgorICAgIGNvZGUgPSBiIiIiXAorPGh0bWwgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzE5
OTkveGh0bWwiPgorPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2Ny
aXB0PgorPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2Ny
aXB0PgorPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGRyaXZlci5qcyI+PC9zY3JpcHQ+Cis8
c2NyaXB0IHNyYz0idGVzdGRyaXZlci12ZW5kb3IuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9
Ii9lbHNld2hlcmUvdGVzdGRyaXZlci12ZW5kb3IuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9
Ii9lbHNld2hlcmUvcmVzb3VyY2VzL3Rlc3Rkcml2ZXItdmVuZG9yLmpzIj48L3NjcmlwdD4KKzxz
Y3JpcHQgc3JjPSIvcmVzb3VyY2VzL2Vsc2V3aGVyZS90ZXN0ZHJpdmVyLXZlbmRvci5qcyI+PC9z
Y3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL3Rlc3Rkcml2ZXItdmVuZG9yLmpzIj48
L3NjcmlwdD4KKzwvaHRtbD4KKyIiIgorICAgIGVycm9yX21hcCA9IGNoZWNrX3dpdGhfZmlsZXMo
Y29kZSkKKworICAgIGZvciAoZmlsZW5hbWUsIChlcnJvcnMsIGtpbmQpKSBpbiBlcnJvcl9tYXAu
aXRlbXMoKToKKyAgICAgICAgY2hlY2tfZXJyb3JzKGVycm9ycykKKworICAgICAgICBpZiBraW5k
ID09ICJweXRob24iOgorICAgICAgICAgICAgZXhwZWN0ZWQgPSBzZXQoWygiUEFSU0UtRkFJTEVE
IiwgIlVuYWJsZSB0byBwYXJzZSBmaWxlIiwgZmlsZW5hbWUsIDEpXSkKKyAgICAgICAgZWxpZiBr
aW5kIGluIFsid2ViLWxheCIsICJ3ZWItc3RyaWN0Il06CisgICAgICAgICAgICBleHBlY3RlZCA9
IHNldChbCisgICAgICAgICAgICAgICAgKCJNSVNTSU5HLVRFU1REUklWRVItVkVORE9SIiwgIk1p
c3NpbmcgYDxzY3JpcHQgc3JjPScvcmVzb3VyY2VzL3Rlc3Rkcml2ZXItdmVuZG9yLmpzJz5gIiwg
ZmlsZW5hbWUsIE5vbmUpLAorICAgICAgICAgICAgICAgICgiVEVTVERSSVZFUi1WRU5ET1ItUEFU
SCIsICJ0ZXN0ZHJpdmVyLXZlbmRvci5qcyBzY3JpcHQgc2VlbiB3aXRoIGluY29ycmVjdCBwYXRo
IiwgZmlsZW5hbWUsIE5vbmUpLAorICAgICAgICAgICAgICAgICgiVEVTVERSSVZFUi1WRU5ET1It
UEFUSCIsICJ0ZXN0ZHJpdmVyLXZlbmRvci5qcyBzY3JpcHQgc2VlbiB3aXRoIGluY29ycmVjdCBw
YXRoIiwgZmlsZW5hbWUsIE5vbmUpLAorICAgICAgICAgICAgICAgICgiVEVTVERSSVZFUi1WRU5E
T1ItUEFUSCIsICJ0ZXN0ZHJpdmVyLXZlbmRvci5qcyBzY3JpcHQgc2VlbiB3aXRoIGluY29ycmVj
dCBwYXRoIiwgZmlsZW5hbWUsIE5vbmUpLAorICAgICAgICAgICAgICAgICgiVEVTVERSSVZFUi1W
RU5ET1ItUEFUSCIsICJ0ZXN0ZHJpdmVyLXZlbmRvci5qcyBzY3JpcHQgc2VlbiB3aXRoIGluY29y
cmVjdCBwYXRoIiwgZmlsZW5hbWUsIE5vbmUpLAorICAgICAgICAgICAgICAgICgiVEVTVERSSVZF
Ui1WRU5ET1ItUEFUSCIsICJ0ZXN0ZHJpdmVyLXZlbmRvci5qcyBzY3JpcHQgc2VlbiB3aXRoIGlu
Y29ycmVjdCBwYXRoIiwgZmlsZW5hbWUsIE5vbmUpCisgICAgICAgICAgICBdKQorICAgICAgICBl
bHNlOgorICAgICAgICAgICAgZXhwZWN0ZWQgPSBzZXQoKQorCisgICAgICAgIGFzc2VydCBzZXQo
ZXJyb3JzKSA9PSBleHBlY3RlZAorCisKIGRlZiB0ZXN0X25vdF90ZXN0aGFybmVzc19wYXRoKCk6
CiAgICAgY29kZSA9IGIiIiJcCiA8aHRtbCB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94
aHRtbCI+CiA8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+
CiA8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+
CiA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3dlYnBlcmZ0ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+
Cis8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0ZHJpdmVyLmpzIj48L3NjcmlwdD4KKzxzY3Jp
cHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3Rkcml2ZXItdmVuZG9yLmpzIj48L3NjcmlwdD4KIDwvaHRt
bD4KICIiIgogICAgIGVycm9yX21hcCA9IGNoZWNrX3dpdGhfZmlsZXMoY29kZSkKQEAgLTM5NCw2
ICs1NzcsODUgQEAgZGVmIHRlc3Rfbm90X3Rlc3RoYXJuZXNzX3BhdGgoKToKICAgICAgICAgICAg
IGFzc2VydCBlcnJvcnMgPT0gW10KIAogCitkZWYgdGVzdF92YXJpYW50X21pc3NpbmcoKToKKyAg
ICBjb2RlID0gYiIiIlwKKzxodG1sIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1s
Ij4KKzxtZXRhIG5hbWU9InZhcmlhbnQiPgorPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhh
cm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3Ny
ZXBvcnQuanMiPjwvc2NyaXB0PgorPC9odG1sPgorIiIiCisgICAgZXJyb3JfbWFwID0gY2hlY2tf
d2l0aF9maWxlcyhjb2RlKQorCisgICAgZm9yIChmaWxlbmFtZSwgKGVycm9ycywga2luZCkpIGlu
IGVycm9yX21hcC5pdGVtcygpOgorICAgICAgICBjaGVja19lcnJvcnMoZXJyb3JzKQorCisgICAg
ICAgIGlmIGtpbmQgPT0gInB5dGhvbiI6CisgICAgICAgICAgICBhc3NlcnQgZXJyb3JzID09IFsK
KyAgICAgICAgICAgICAgICAoIlBBUlNFLUZBSUxFRCIsICJVbmFibGUgdG8gcGFyc2UgZmlsZSIs
IGZpbGVuYW1lLCAxKSwKKyAgICAgICAgICAgIF0KKyAgICAgICAgZWxpZiBraW5kID09ICJ3ZWIt
bGF4IjoKKyAgICAgICAgICAgIGFzc2VydCBlcnJvcnMgPT0gWworICAgICAgICAgICAgICAgICgi
VkFSSUFOVC1NSVNTSU5HIiwKKyAgICAgICAgICAgICAgICAgICAgIlRlc3QgZmlsZSB3aXRoIGEg
YDxtZXRhIG5hbWU9J3ZhcmlhbnQnLi4uPmAgZWxlbWVudCB0aGF0J3MgbWlzc2luZyBhIGBjb250
ZW50YCBhdHRyaWJ1dGUiLAorICAgICAgICAgICAgICAgICAgICBmaWxlbmFtZSwKKyAgICAgICAg
ICAgICAgICAgICAgTm9uZSkKKyAgICAgICAgICAgIF0KKworCisjIEEgY29ycmVzcG9uZGluZyAi
cG9zaXRpdmUiIHRlc3QgY2Fubm90IGJlIHdyaXR0ZW4gYmVjYXVzZSB0aGUgbWFuaWZlc3QKKyMg
U291cmNlRmlsZSBpbXBsZW1lbnRhdGlvbiByYWlzZXMgYSBydW50aW1lIGV4Y2VwdGlvbiBmb3Ig
dGhlIGNvbmRpdGlvbiB0aGlzCisjIGxpbnRpbmcgcnVsZSBkZXNjcmliZXMKK0BweXRlc3QubWFy
ay5wYXJhbWV0cml6ZSgiY29udGVudCIsIFsiIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAiPyIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiIyJd
KQorZGVmIHRlc3RfdmFyaWFudF9tYWxmb3JtZWRfbmVnYXRpdmUoY29udGVudCk6CisgICAgY29k
ZSA9ICIiIlwKKzxodG1sIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIj4KKzxt
ZXRhIG5hbWU9InZhcmlhbnQiIGNvbnRlbnQ9Int9Ij4KKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2Vz
L3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3Ro
YXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzwvaHRtbD4KKyIiIi5mb3JtYXQoY29udGVudCku
ZW5jb2RlKCJ1dGYtOCIpCisgICAgZXJyb3JfbWFwID0gY2hlY2tfd2l0aF9maWxlcyhjb2RlKQor
CisgICAgZm9yIChmaWxlbmFtZSwgKGVycm9ycywga2luZCkpIGluIGVycm9yX21hcC5pdGVtcygp
OgorICAgICAgICBjaGVja19lcnJvcnMoZXJyb3JzKQorCisgICAgICAgIGlmIGtpbmQgPT0gInB5
dGhvbiI6CisgICAgICAgICAgICBhc3NlcnQgZXJyb3JzID09IFsKKyAgICAgICAgICAgICAgICAo
IlBBUlNFLUZBSUxFRCIsICJVbmFibGUgdG8gcGFyc2UgZmlsZSIsIGZpbGVuYW1lLCAxKSwKKyAg
ICAgICAgICAgIF0KKyAgICAgICAgZWxpZiBraW5kID09ICJ3ZWItbGF4IjoKKyAgICAgICAgICAg
IGFzc2VydCBlcnJvcnMgPT0gW10KKworCitkZWYgdGVzdF9sYXRlX3RpbWVvdXQoKToKKyAgICBj
b2RlID0gYiIiIlwKKzxodG1sIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIj4K
KzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxtZXRh
IG5hbWU9InRpbWVvdXQiIGNvbnRlbnQ9ImxvbmciPgorPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMv
dGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPC9odG1sPgorIiIiCisgICAgZXJyb3Jf
bWFwID0gY2hlY2tfd2l0aF9maWxlcyhjb2RlKQorCisgICAgZm9yIChmaWxlbmFtZSwgKGVycm9y
cywga2luZCkpIGluIGVycm9yX21hcC5pdGVtcygpOgorICAgICAgICBjaGVja19lcnJvcnMoZXJy
b3JzKQorCisgICAgICAgIGlmIGtpbmQgPT0gInB5dGhvbiI6CisgICAgICAgICAgICBhc3NlcnQg
ZXJyb3JzID09IFsKKyAgICAgICAgICAgICAgICAoIlBBUlNFLUZBSUxFRCIsICJVbmFibGUgdG8g
cGFyc2UgZmlsZSIsIGZpbGVuYW1lLCAxKSwKKyAgICAgICAgICAgIF0KKyAgICAgICAgZWxpZiBr
aW5kID09ICJ3ZWItbGF4IjoKKyAgICAgICAgICAgIGFzc2VydCBlcnJvcnMgPT0gWworICAgICAg
ICAgICAgICAgICgiTEFURS1USU1FT1VUIiwKKyAgICAgICAgICAgICAgICAgICAgIlRlc3QgZmls
ZSB3aXRoIGA8bWV0YSBuYW1lPSd0aW1lb3V0Jy4uLj5gIGVsZW1lbnQgYWZ0ZXIgYDxzY3JpcHQg
c3JjPScvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzJz5gIGVsZW1lbnQiLAorICAgICAg
ICAgICAgICAgICAgICBmaWxlbmFtZSwKKyAgICAgICAgICAgICAgICAgICAgTm9uZSkKKyAgICAg
ICAgICAgIF0KKworCiBAcHl0ZXN0Lm1hcmsuc2tpcGlmKHNpeC5QWTMsIHJlYXNvbj0iQ2Fubm90
IHBhcnNlIHByaW50IHN0YXRlbWVudHMgZnJvbSBweXRob24gMyIpCiBkZWYgdGVzdF9wcmludF9z
dGF0ZW1lbnQoKToKICAgICBlcnJvcl9tYXAgPSBjaGVja193aXRoX2ZpbGVzKGIiZGVmIGZvbygp
OlxuICBwcmludCAnc3RhdGVtZW50J1xuICBwcmludFxuIikKQEAgLTQwMyw4ICs2NjUsOCBAQCBk
ZWYgdGVzdF9wcmludF9zdGF0ZW1lbnQoKToKIAogICAgICAgICBpZiBraW5kID09ICJweXRob24i
OgogICAgICAgICAgICAgYXNzZXJ0IGVycm9ycyA9PSBbCi0gICAgICAgICAgICAgICAgKCJQUklO
VCBTVEFURU1FTlQiLCAiUHJpbnQgZnVuY3Rpb24gdXNlZCIsIGZpbGVuYW1lLCAyKSwKLSAgICAg
ICAgICAgICAgICAoIlBSSU5UIFNUQVRFTUVOVCIsICJQcmludCBmdW5jdGlvbiB1c2VkIiwgZmls
ZW5hbWUsIDMpLAorICAgICAgICAgICAgICAgICgiUFJJTlQgU1RBVEVNRU5UIiwgIkEgc2VydmVy
LXNpZGUgcHl0aG9uIHN1cHBvcnQgZmlsZSBjb250YWlucyBhIGBwcmludGAgc3RhdGVtZW50Iiwg
ZmlsZW5hbWUsIDIpLAorICAgICAgICAgICAgICAgICgiUFJJTlQgU1RBVEVNRU5UIiwgIkEgc2Vy
dmVyLXNpZGUgcHl0aG9uIHN1cHBvcnQgZmlsZSBjb250YWlucyBhIGBwcmludGAgc3RhdGVtZW50
IiwgZmlsZW5hbWUsIDMpLAogICAgICAgICAgICAgXQogICAgICAgICBlbGlmIGtpbmQgPT0gIndl
Yi1zdHJpY3QiOgogICAgICAgICAgICAgYXNzZXJ0IGVycm9ycyA9PSBbCkBAIC00MjIsNyArNjg0
LDcgQEAgZGVmIHRlc3RfcHJpbnRfZnVuY3Rpb24oKToKIAogICAgICAgICBpZiBraW5kID09ICJw
eXRob24iOgogICAgICAgICAgICAgYXNzZXJ0IGVycm9ycyA9PSBbCi0gICAgICAgICAgICAgICAg
KCJQUklOVCBTVEFURU1FTlQiLCAiUHJpbnQgZnVuY3Rpb24gdXNlZCIsIGZpbGVuYW1lLCAyKSwK
KyAgICAgICAgICAgICAgICAoIlBSSU5UIFNUQVRFTUVOVCIsICJBIHNlcnZlci1zaWRlIHB5dGhv
biBzdXBwb3J0IGZpbGUgY29udGFpbnMgYSBgcHJpbnRgIHN0YXRlbWVudCIsIGZpbGVuYW1lLCAy
KSwKICAgICAgICAgICAgIF0KICAgICAgICAgZWxpZiBraW5kID09ICJ3ZWItc3RyaWN0IjoKICAg
ICAgICAgICAgIGFzc2VydCBlcnJvcnMgPT0gWwpAQCAtNDMyLDYgKzY5NCw0NSBAQCBkZWYgdGVz
dF9wcmludF9mdW5jdGlvbigpOgogICAgICAgICAgICAgYXNzZXJ0IGVycm9ycyA9PSBbXQogCiAK
K2RlZiB0ZXN0X2FoZW1fc3lzdGVtX2ZvbnQoKToKKyAgICBjb2RlID0gYiIiIlwKKzxodG1sPgor
PHN0eWxlPgorYm9keSB7CisgIGZvbnQtZmFtaWx5OiBhSEVtLCBzYW5zLXNlcmlmOworfQorPC9z
dHlsZT4KKzwvaHRtbD4KKyIiIgorICAgIGVycm9yX21hcCA9IGNoZWNrX3dpdGhfZmlsZXMoY29k
ZSkKKyAgICBmb3IgKGZpbGVuYW1lLCAoZXJyb3JzLCBraW5kKSkgaW4gZXJyb3JfbWFwLml0ZW1z
KCk6CisgICAgICAgIGNoZWNrX2Vycm9ycyhlcnJvcnMpCisKKyAgICAgICAgaWYgZmlsZW5hbWUu
ZW5kc3dpdGgoKCIuaHRtIiwgIi5odG1sIiwgIi54aHQiLCAiLnhodG1sIikpOgorICAgICAgICAg
ICAgYXNzZXJ0IGVycm9ycyA9PSBbCisgICAgICAgICAgICAgICAgKCJBSEVNIFNZU1RFTSBGT05U
IiwgIkRvbid0IHVzZSBBaGVtIGFzIGEgc3lzdGVtIGZvbnQsIHVzZSAvZm9udHMvYWhlbS5jc3Mi
LCBmaWxlbmFtZSwgTm9uZSkKKyAgICAgICAgICAgIF0KKworCitkZWYgdGVzdF9haGVtX3dlYl9m
b250KCk6CisgICAgY29kZSA9IGIiIiJcCis8aHRtbD4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIg
dHlwZT0idGV4dC9jc3MiIGhyZWY9Ii9mb250cy9haGVtLmNzcyIgLz4KKzxzdHlsZT4KK2JvZHkg
eworICBmb250LWZhbWlseTogYUhFbSwgc2Fucy1zZXJpZjsKK30KKzwvc3R5bGU+Cis8L2h0bWw+
CisiIiIKKyAgICBlcnJvcl9tYXAgPSBjaGVja193aXRoX2ZpbGVzKGNvZGUpCisgICAgZm9yIChm
aWxlbmFtZSwgKGVycm9ycywga2luZCkpIGluIGVycm9yX21hcC5pdGVtcygpOgorICAgICAgICBj
aGVja19lcnJvcnMoZXJyb3JzKQorCisgICAgICAgIGlmIGZpbGVuYW1lLmVuZHN3aXRoKCgiLmh0
bSIsICIuaHRtbCIsICIueGh0IiwgIi54aHRtbCIpKToKKyAgICAgICAgICAgIGFzc2VydCBlcnJv
cnMgPT0gW10KKworCiBvcGVuX21vZGVfY29kZSA9ICIiIgogZGVmIGZpcnN0KCk6CiAgICAgcmV0
dXJuIHswfSgidGVzdC5wbmciKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9saW50L3Rlc3RzL3Rlc3RfbGludC5weSBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvbGludC90ZXN0cy90
ZXN0X2xpbnQucHkKaW5kZXggMWZjMGM3YTcxNWMuLmFmMmI3ZDNkNGFhIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2xpbnQvdGVz
dHMvdGVzdF9saW50LnB5CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvbGludC90ZXN0cy90ZXN0X2xpbnQucHkKQEAgLTIxMywxMiArMjEzLDEx
IEBAIGRlZiB0ZXN0X3JlZl9hYnNvbHV0ZV91cmwoY2FwbG9nKToKIAogCiBkZWYgdGVzdF9hYm91
dF9ibGFua19hc19yZWYoY2FwbG9nKToKLSAgICB3aXRoIF9tb2NrX2xpbnQoImNoZWNrX3BhdGgi
KSBhcyBtb2NrZWRfY2hlY2tfcGF0aDoKKyAgICB3aXRoIF9tb2NrX2xpbnQoImNoZWNrX3BhdGgi
KToKICAgICAgICAgd2l0aCBfbW9ja19saW50KCJjaGVja19maWxlX2NvbnRlbnRzIikgYXMgbW9j
a2VkX2NoZWNrX2ZpbGVfY29udGVudHM6Ci0gICAgICAgICAgICBydiA9IGxpbnQoX2R1bW15X3Jl
cG8sIFsiYWJvdXRfYmxhbmstcmVmLmh0bWwiXSwgIm5vcm1hbCIpCisgICAgICAgICAgICBydiA9
IGxpbnQoX2R1bW15X3JlcG8sIFsiYWJvdXRfYmxhbmsuaHRtbCJdLCAibm9ybWFsIikKICAgICAg
ICAgICAgIGFzc2VydCBydiA9PSAwCi0gICAgICAgICAgICBhc3NlcnQgbm90IG1vY2tlZF9jaGVj
a19wYXRoLmNhbGxlZAotICAgICAgICAgICAgYXNzZXJ0IG5vdCBtb2NrZWRfY2hlY2tfZmlsZV9j
b250ZW50cy5jYWxsZWQKKyAgICAgICAgICAgIGFzc2VydCBtb2NrZWRfY2hlY2tfZmlsZV9jb250
ZW50cy5jYWxsX2NvdW50ID09IDEKICAgICBhc3NlcnQgY2FwbG9nLnRleHQgPT0gIiIKIAogCkBA
IC0zOTksMTUgKzM5OCwzOCBAQCBkZWYgdGVzdF9jaGVja19jc3NfZ2xvYmFsbHlfdW5pcXVlX2ln
bm9yZWRfZGlyKGNhcGxvZyk6CiAgICAgYXNzZXJ0IGNhcGxvZy50ZXh0ID09ICIiCiAKIAorZGVm
IHRlc3RfaWdub3JlX2dsb2IoY2FwbG9nKToKKyAgICAjIExpbnQgdHdvIGZpbGVzIGluIHRoZSBy
ZWYvIGRpcmVjdG9yeSwgYW5kIHBhc3MgaW4gaWdub3JlX2dsb2IgdG8gb21pdCBvbmUKKyAgICAj
IG9mIHRoZW0uCisgICAgIyBXaGVuIHdlIG9taXQgYWJzb2x1dGUuaHRtbCwgbm8gbGludCBlcnJv
cnMgYXBwZWFyIHNpbmNlIHRoZSBvdGhlciBmaWxlIGlzCisgICAgIyBjbGVhbi4KKyAgICB3aXRo
IF9tb2NrX2xpbnQoImNoZWNrX3BhdGgiKSBhcyBtb2NrZWRfY2hlY2tfcGF0aDoKKyAgICAgICAg
d2l0aCBfbW9ja19saW50KCJjaGVja19maWxlX2NvbnRlbnRzIikgYXMgbW9ja2VkX2NoZWNrX2Zp
bGVfY29udGVudHM6CisgICAgICAgICAgICBydiA9IGxpbnQoX2R1bW15X3JlcG8sIFsicmVmL2Fi
c29sdXRlLmh0bWwiLCAicmVmL2V4aXN0ZW50X3JlbGF0aXZlLmh0bWwiXSwgIm5vcm1hbCIsICIq
c29sdSoiKQorICAgICAgICAgICAgYXNzZXJ0IHJ2ID09IDAKKyAgICAgICAgICAgICMgQWxzbyBj
b25maXJtIHRoYXQgb25seSBvbmUgZmlsZSBpcyBjaGVja2VkCisgICAgICAgICAgICBhc3NlcnQg
bW9ja2VkX2NoZWNrX3BhdGguY2FsbF9jb3VudCA9PSAxCisgICAgICAgICAgICBhc3NlcnQgbW9j
a2VkX2NoZWNrX2ZpbGVfY29udGVudHMuY2FsbF9jb3VudCA9PSAxCisgICAgICAgICAgICBhc3Nl
cnQgY2FwbG9nLnRleHQgPT0gIiIKKyAgICAjIEhvd2V2ZXIsIGxpbnRpbmcgdGhlIHNhbWUgdHdv
IGZpbGVzIHdpdGhvdXQgaWdub3JlX2dsb2IgeWllbGRzIGxpbnQgZXJyb3JzLgorICAgIHdpdGgg
X21vY2tfbGludCgiY2hlY2tfcGF0aCIpIGFzIG1vY2tlZF9jaGVja19wYXRoOgorICAgICAgICB3
aXRoIF9tb2NrX2xpbnQoImNoZWNrX2ZpbGVfY29udGVudHMiKSBhcyBtb2NrZWRfY2hlY2tfZmls
ZV9jb250ZW50czoKKyAgICAgICAgICAgIHJ2ID0gbGludChfZHVtbXlfcmVwbywgWyJyZWYvYWJz
b2x1dGUuaHRtbCIsICJyZWYvZXhpc3RlbnRfcmVsYXRpdmUuaHRtbCJdLCAibm9ybWFsIikKKyAg
ICAgICAgICAgIGFzc2VydCBydiA9PSAxCisgICAgICAgICAgICBhc3NlcnQgbW9ja2VkX2NoZWNr
X3BhdGguY2FsbF9jb3VudCA9PSAyCisgICAgICAgICAgICBhc3NlcnQgbW9ja2VkX2NoZWNrX2Zp
bGVfY29udGVudHMuY2FsbF9jb3VudCA9PSAyCisgICAgICAgICAgICBhc3NlcnQgIkFCU09MVVRF
LVVSTC1SRUYiIGluIGNhcGxvZy50ZXh0CisKKwogZGVmIHRlc3RfYWxsX2ZpbGVzeXN0ZW1fcGF0
aHMoKToKICAgICB3aXRoIG1vY2sucGF0Y2goCi0gICAgICAgICAgICAnb3Mud2FsaycsCi0gICAg
ICAgICAgICByZXR1cm5fdmFsdWU9WygnLicsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICBb
J2Rpcl9hJywgJ2Rpcl9iJ10sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICBbJ2ZpbGVfYScs
ICdmaWxlX2InXSksCi0gICAgICAgICAgICAgICAgICAgICAgICAgIChvcy5wYXRoLmpvaW4oJy4n
LCAnZGlyX2EnKSwKKyAgICAgICAgICAgICd0b29scy5saW50LmxpbnQud2FsaycsCisgICAgICAg
ICAgICByZXR1cm5fdmFsdWU9WygnJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIFsoJ2Rp
cl9hJywgTm9uZSksICgnZGlyX2InLCBOb25lKV0sCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICBbKCdmaWxlX2EnLCBOb25lKSwgKCdmaWxlX2InLCBOb25lKV0pLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAoJ2Rpcl9hJywKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtdLAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgWydmaWxlX2MnLCAnZmlsZV9kJ10pXQorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgWygnZmlsZV9jJywgTm9uZSksICgnZmlsZV9kJywgTm9uZSldKV0K
ICAgICApOgogICAgICAgICBnb3QgPSBsaXN0KGxpbnRfbW9kLmFsbF9maWxlc3lzdGVtX3BhdGhz
KCcuJykpCiAgICAgICAgIGFzc2VydCBnb3QgPT0gWydmaWxlX2EnLApAQCAtNDE2LDYgKzQzOCwy
MyBAQCBkZWYgdGVzdF9hbGxfZmlsZXN5c3RlbV9wYXRocygpOgogICAgICAgICAgICAgICAgICAg
ICAgICBvcy5wYXRoLmpvaW4oJ2Rpcl9hJywgJ2ZpbGVfZCcpXQogCiAKK2RlZiB0ZXN0X2ZpbGVz
eXN0ZW1fcGF0aHNfc3ViZGlyKCk6CisgICAgd2l0aCBtb2NrLnBhdGNoKAorICAgICAgICAgICAg
J3Rvb2xzLmxpbnQubGludC53YWxrJywKKyAgICAgICAgICAgIHJldHVybl92YWx1ZT1bKCcnLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgWygnZGlyX2EnLCBOb25lKSwgKCdkaXJfYicsIE5v
bmUpXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIFsoJ2ZpbGVfYScsIE5vbmUpLCAoJ2Zp
bGVfYicsIE5vbmUpXSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICgnZGlyX2EnLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgW10sCisgICAgICAgICAgICAgICAgICAgICAgICAgICBb
KCdmaWxlX2MnLCBOb25lKSwgKCdmaWxlX2QnLCBOb25lKV0pXQorICAgICk6CisgICAgICAgIGdv
dCA9IGxpc3QobGludF9tb2QuYWxsX2ZpbGVzeXN0ZW1fcGF0aHMoJy4nLCAnZGlyJykpCisgICAg
ICAgIGFzc2VydCBnb3QgPT0gW29zLnBhdGguam9pbignZGlyJywgJ2ZpbGVfYScpLAorICAgICAg
ICAgICAgICAgICAgICAgICBvcy5wYXRoLmpvaW4oJ2RpcicsICdmaWxlX2InKSwKKyAgICAgICAg
ICAgICAgICAgICAgICAgb3MucGF0aC5qb2luKCdkaXInLCAnZGlyX2EnLCAnZmlsZV9jJyksCisg
ICAgICAgICAgICAgICAgICAgICAgIG9zLnBhdGguam9pbignZGlyJywgJ2Rpcl9hJywgJ2ZpbGVf
ZCcpXQorCisKIGRlZiB0ZXN0X21haW5fd2l0aF9hcmdzKCk6CiAgICAgb3JpZ19hcmd2ID0gc3lz
LmFyZ3YKICAgICB0cnk6CkBAIC00MjcsNyArNDY2LDggQEAgZGVmIHRlc3RfbWFpbl93aXRoX2Fy
Z3MoKToKICAgICAgICAgICAgICAgICBtLmFzc2VydF9jYWxsZWRfb25jZV93aXRoKHJlcG9fcm9v
dCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtvcy5wYXRoLnJl
bHBhdGgob3MucGF0aC5qb2luKG9zLmdldGN3ZCgpLCB4KSwgcmVwb19yb290KQogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvciB4IGluIFsnYScsICdiJywgJ2Mn
XV0sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAibm9ybWFsIikK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJub3JtYWwiLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RyKCkpCiAgICAgZmluYWxs
eToKICAgICAgICAgc3lzLmFyZ3YgPSBvcmlnX2FyZ3YKIApAQCAtNDM5LDcgKzQ3OSw3IEBAIGRl
ZiB0ZXN0X21haW5fbm9fYXJncygpOgogICAgICAgICB3aXRoIF9tb2NrX2xpbnQoJ2xpbnQnLCBy
ZXR1cm5fdmFsdWU9VHJ1ZSkgYXMgbToKICAgICAgICAgICAgIHdpdGggX21vY2tfbGludCgnY2hh
bmdlZF9maWxlcycsIHJldHVybl92YWx1ZT1bJ2ZvbycsICdiYXInXSk6CiAgICAgICAgICAgICAg
ICAgbGludF9tb2QubWFpbigqKnZhcnMoY3JlYXRlX3BhcnNlcigpLnBhcnNlX2FyZ3MoKSkpCi0g
ICAgICAgICAgICAgICAgbS5hc3NlcnRfY2FsbGVkX29uY2Vfd2l0aChyZXBvX3Jvb3QsIFsnZm9v
JywgJ2JhciddLCAibm9ybWFsIikKKyAgICAgICAgICAgICAgICBtLmFzc2VydF9jYWxsZWRfb25j
ZV93aXRoKHJlcG9fcm9vdCwgWydmb28nLCAnYmFyJ10sICJub3JtYWwiLCBzdHIoKSkKICAgICBm
aW5hbGx5OgogICAgICAgICBzeXMuYXJndiA9IG9yaWdfYXJndgogCkBAIC00NTEsNiArNDkxLDYg
QEAgZGVmIHRlc3RfbWFpbl9hbGwoKToKICAgICAgICAgd2l0aCBfbW9ja19saW50KCdsaW50Jywg
cmV0dXJuX3ZhbHVlPVRydWUpIGFzIG06CiAgICAgICAgICAgICB3aXRoIF9tb2NrX2xpbnQoJ2Fs
bF9maWxlc3lzdGVtX3BhdGhzJywgcmV0dXJuX3ZhbHVlPVsnZm9vJywgJ2JhciddKToKICAgICAg
ICAgICAgICAgICBsaW50X21vZC5tYWluKCoqdmFycyhjcmVhdGVfcGFyc2VyKCkucGFyc2VfYXJn
cygpKSkKLSAgICAgICAgICAgICAgICBtLmFzc2VydF9jYWxsZWRfb25jZV93aXRoKHJlcG9fcm9v
dCwgWydmb28nLCAnYmFyJ10sICJub3JtYWwiKQorICAgICAgICAgICAgICAgIG0uYXNzZXJ0X2Nh
bGxlZF9vbmNlX3dpdGgocmVwb19yb290LCBbJ2ZvbycsICdiYXInXSwgIm5vcm1hbCIsIHN0cigp
KQogICAgIGZpbmFsbHk6CiAgICAgICAgIHN5cy5hcmd2ID0gb3JpZ19hcmd2CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2xpbnQv
dGVzdHMvdGVzdF9wYXRoX2xpbnRzLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy9saW50L3Rlc3RzL3Rlc3RfcGF0aF9saW50cy5weQppbmRleCBi
Zjg0MThkNTJhMC4uNTU4YjBlZDRmNjQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvbGludC90ZXN0cy90ZXN0X3BhdGhfbGludHMu
cHkKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy9saW50L3Rlc3RzL3Rlc3RfcGF0aF9saW50cy5weQpAQCAtMSw1ICsxLDggQEAKIGZyb20gX19m
dXR1cmVfXyBpbXBvcnQgdW5pY29kZV9saXRlcmFscwogCitpbXBvcnQgbW9jaworaW1wb3J0IG9z
CisKIGZyb20gLi5saW50IGltcG9ydCBjaGVja19wYXRoCiBmcm9tIC5iYXNlIGltcG9ydCBjaGVj
a19lcnJvcnMKIGltcG9ydCBweXRlc3QKQEAgLTMwLDcgKzMzLDcgQEAgZGVmIHRlc3RfZm9yYmlk
ZGVuX3BhdGhfbGVuZ3RoKCk6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAoIi5hbnkud29ya2VyLmh0bWwiLCAiLmFueS5qcyIpLAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCIuYW55Lmh0bWwiLCAi
LmFueS5qcyIpXSkKIGRlZiB0ZXN0X2ZvcmJpZGRlbl9wYXRoX2VuZGluZ3MocGF0aF9lbmRpbmcs
IGdlbmVyYXRlZCk6Ci0gICAgcGF0aCA9ICIvdGVzdC90ZXN0IiArIHBhdGhfZW5kaW5nCisgICAg
cGF0aCA9ICJ0ZXN0L3Rlc3QiICsgcGF0aF9lbmRpbmcKIAogICAgIG1lc3NhZ2UgPSAoInBhdGgg
ZW5kcyB3aXRoICVzIHdoaWNoIGNvbGxpZGVzIHdpdGggZ2VuZXJhdGVkIHRlc3RzIGZyb20gJXMg
ZmlsZXMiICUKICAgICAgICAgICAgICAgIChwYXRoX2VuZGluZywgZ2VuZXJhdGVkKSkKQEAgLTM4
LDMgKzQxLDc2IEBAIGRlZiB0ZXN0X2ZvcmJpZGRlbl9wYXRoX2VuZGluZ3MocGF0aF9lbmRpbmcs
IGdlbmVyYXRlZCk6CiAgICAgZXJyb3JzID0gY2hlY2tfcGF0aCgiL2Zvby8iLCBwYXRoKQogICAg
IGNoZWNrX2Vycm9ycyhlcnJvcnMpCiAgICAgYXNzZXJ0IGVycm9ycyA9PSBbKCJXT1JLRVIgQ09M
TElTSU9OIiwgbWVzc2FnZSwgcGF0aCwgTm9uZSldCisKKworZGVmIHRlc3RfZmlsZV90eXBlKCk6
CisgICAgcGF0aCA9ICJ0ZXN0L3Rlc3QiCisKKyAgICBtZXNzYWdlID0gIi8lcyBpcyBhbiB1bnN1
cHBvcnRlZCBmaWxlIHR5cGUgKHN5bWxpbmspIiAlIChwYXRoLCkKKworICAgIHdpdGggbW9jay5w
YXRjaCgib3MucGF0aC5pc2xpbmsiLCByZXR1cm52YWx1ZT1UcnVlKToKKyAgICAgICAgZXJyb3Jz
ID0gY2hlY2tfcGF0aCgiL2Zvby8iLCBwYXRoKQorCisgICAgYXNzZXJ0IGVycm9ycyA9PSBbKCJG
SUxFIFRZUEUiLCBtZXNzYWdlLCBwYXRoLCBOb25lKV0KKworCitAcHl0ZXN0Lm1hcmsucGFyYW1l
dHJpemUoInBhdGgiLCBbImFoZW0udHRmIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAiQWhlbS50dGYiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJhaGVt
LnRUZiIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIm5vdC1haGVtLnR0ZiIs
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInN1cHBvcnQvYWhlbS50dGYiLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJhaGVtL290aGVyLnR0ZiJdKQorZGVm
IHRlc3RfYWhlbV9jb3B5KHBhdGgpOgorICAgIGV4cGVjdGVkX2Vycm9yID0gKCJBSEVNIENPUFki
LAorICAgICAgICAgICAgICAgICAgICAgICJEb24ndCBhZGQgZXh0cmEgY29waWVzIG9mIEFoZW0s
IHVzZSAvZm9udHMvQWhlbS50dGYiLAorICAgICAgICAgICAgICAgICAgICAgIHBhdGgsCisgICAg
ICAgICAgICAgICAgICAgICAgTm9uZSkKKworICAgIGVycm9ycyA9IGNoZWNrX3BhdGgoIi9mb28v
IiwgcGF0aCkKKworICAgIGFzc2VydCBlcnJvcnMgPT0gW2V4cGVjdGVkX2Vycm9yXQorCitAcHl0
ZXN0Lm1hcmsucGFyYW1ldHJpemUoInBhdGgiLCBbImFoZW0ud29mZiIsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgImFoZW0udHRmZiIsCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgInN1cHBvcnQvYWhlbS53b2ZmIiwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAiYWhlbS9vdGhlci53b2ZmIl0pCitkZWYgdGVzdF9haGVtX2NvcHlfbmVnYXRp
dmUocGF0aCk6CisgICAgZXJyb3JzID0gY2hlY2tfcGF0aCgiL2Zvby8iLCBwYXRoKQorCisgICAg
YXNzZXJ0IGVycm9ycyA9PSBbXQorCitAcHl0ZXN0Lm1hcmsucGFyYW1ldHJpemUoInBhdGgiLCBb
ImVsc2V3aGVyZS8uZ2l0aWdub3JlIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAiZWxzZS93aGVyZS8uZ2l0aWdub3JlIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICJlbHNld2hlcmUvdG9vbHMvLmdpdGlnbm9yZSIsCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgImVsc2V3aGVyZS9kb2NzLy5naXRpZ25vcmUiLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICJlbHNld2hlcmUvcmVzb3VyY2VzL3dlYmlkbDIvLmdpdGlnbm9y
ZSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImVsc2V3aGVyZS9jc3MvdG9v
bHMvYXBpY2xpZW50Ly5naXRpZ25vcmUiXSkKK2RlZiB0ZXN0X2dpdGlnbm9yZV9maWxlKHBhdGgp
OgorICAgIHBhdGggPSBvcy5wYXRoLmpvaW4oKnBhdGguc3BsaXQoIi8iKSkKKworICAgIGV4cGVj
dGVkX2Vycm9yID0gKCJHSVRJR05PUkUiLAorICAgICAgICAgICAgICAgICAgICAgICIuZ2l0aWdu
b3JlIGZvdW5kIG91dHNpZGUgdGhlIHJvb3QiLAorICAgICAgICAgICAgICAgICAgICAgIHBhdGgs
CisgICAgICAgICAgICAgICAgICAgICAgTm9uZSkKKworICAgIGVycm9ycyA9IGNoZWNrX3BhdGgo
Ii9mb28vIiwgcGF0aCkKKworICAgIGFzc2VydCBlcnJvcnMgPT0gW2V4cGVjdGVkX2Vycm9yXQor
CitAcHl0ZXN0Lm1hcmsucGFyYW1ldHJpemUoInBhdGgiLCBbIi5naXRpZ25vcmUiLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICJlbHNld2hlcmUvLmdpdGlnbm9yZXMiLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJlbHNld2hlcmUvbmFtZS5naXRpZ25vcmUi
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ0b29scy8uZ2l0aWdub3JlIiwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAidG9vbHMvZWxzZXdoZXJlLy5naXRp
Z25vcmUiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJkb2NzLy5naXRpZ25v
cmUiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImRvY3MvZWxzZXdoZXJlLy5n
aXRpZ25vcmUiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJyZXNvdXJjZXMv
d2ViaWRsMi8uZ2l0aWdub3JlIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAi
cmVzb3VyY2VzL3dlYmlkbDIvZWxzZXdoZXJlLy5naXRpZ25vcmUiLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICJjc3MvdG9vbHMvYXBpY2xpZW50Ly5naXRpZ25vcmUiLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJjc3MvdG9vbHMvYXBpY2xpZW50L2Vsc2V3
aGVyZS8uZ2l0aWdub3JlIl0pCitkZWYgdGVzdF9naXRpZ25vcmVfbmVnYXRpdmUocGF0aCk6Cisg
ICAgcGF0aCA9IG9zLnBhdGguam9pbigqcGF0aC5zcGxpdCgiLyIpKQorCisgICAgZXJyb3JzID0g
Y2hlY2tfcGF0aCgiL2Zvby8iLCBwYXRoKQorCisgICAgYXNzZXJ0IGVycm9ycyA9PSBbXQpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy9saW50L3czYy1pbXBvcnQubG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy9saW50L3czYy1pbXBvcnQubG9nCmluZGV4IDA0OTQzNjQyNjRlLi43
ZTMzYTg0NWE5MiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy9saW50L3czYy1pbXBvcnQubG9nCisrKyBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvbGludC93M2MtaW1wb3J0LmxvZwpA
QCAtMjEsMyArMjEsNSBAQCBMaXN0IG9mIGZpbGVzOgogL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvbGludC9mbm1hdGNoLnB5YwogL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvbGludC9saW50LnB5CiAvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9saW50L2xpbnQu
cHljCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9s
aW50L3J1bGVzLnB5CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy9saW50L3J1bGVzLnB5YwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9tYW5pZmVzdC9YTUxQYXJzZXIucHkgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL21hbmlmZXN0L1hN
TFBhcnNlci5weQppbmRleCA1MjNmNTQ0YjdjNC4uNmY1ZmY0ZDM1ZGEgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvbWFuaWZlc3Qv
WE1MUGFyc2VyLnB5CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvbWFuaWZlc3QvWE1MUGFyc2VyLnB5CkBAIC0xLDIwICsxLDMyIEBACitpbXBv
cnQgc3lzCiBmcm9tIG9zLnBhdGggaW1wb3J0IGRpcm5hbWUsIGpvaW4KIAogZnJvbSBjb2xsZWN0
aW9ucyBpbXBvcnQgT3JkZXJlZERpY3QKIAogZnJvbSB4bWwucGFyc2VycyBpbXBvcnQgZXhwYXQK
LWltcG9ydCB4bWwuZXRyZWUuRWxlbWVudFRyZWUgYXMgZXRyZWUKK2ltcG9ydCB4bWwuZXRyZWUu
RWxlbWVudFRyZWUgYXMgZXRyZWUgICMgbm9xYTogTjgxMworCitNWVBZID0gRmFsc2UKK2lmIE1Z
UFk6CisgICAgIyBNWVBZIGlzIHNldCB0byBUcnVlIHdoZW4gcnVuIHVuZGVyIE15cHkuCisgICAg
ZnJvbSB0eXBpbmcgaW1wb3J0IERpY3QKKyAgICBmcm9tIHR5cGluZyBpbXBvcnQgTGlzdAorICAg
IGZyb20gdHlwaW5nIGltcG9ydCBPcHRpb25hbAorICAgIGZyb20gdHlwaW5nIGltcG9ydCBUZXh0
CisgICAgZnJvbSB0eXBpbmcgaW1wb3J0IFVuaW9uCiAKIF9jYXRhbG9nID0gam9pbihkaXJuYW1l
KF9fZmlsZV9fKSwgImNhdGFsb2ciKQogCiBkZWYgX3dyYXBfZXJyb3IoZSk6CisgICAgIyB0eXBl
OiAoZXhwYXQuZXJyb3IpIC0+IGV0cmVlLlBhcnNlRXJyb3IKICAgICBlcnIgPSBldHJlZS5QYXJz
ZUVycm9yKGUpCiAgICAgZXJyLmNvZGUgPSBlLmNvZGUKICAgICBlcnIucG9zaXRpb24gPSBlLmxp
bmVubywgZS5vZmZzZXQKICAgICByYWlzZSBlcnIKIAotX25hbWVzID0ge30KK19uYW1lcyA9IHt9
ICAjIHR5cGU6IERpY3Rbc3RyLCBzdHJdCiBkZWYgX2ZpeG5hbWUoa2V5KToKKyAgICAjIHR5cGU6
IChzdHIpIC0+IHN0cgogICAgIHRyeToKICAgICAgICAgbmFtZSA9IF9uYW1lc1trZXldCiAgICAg
ZXhjZXB0IEtleUVycm9yOgpAQCAtMjUsNiArMzcsMTMgQEAgZGVmIF9maXhuYW1lKGtleSk6CiAg
ICAgcmV0dXJuIG5hbWUKIAogCitpZiBzeXMudmVyc2lvbl9pbmZvWzA6Ml0gPj0gKDMsIDIpOgor
ICAgIF91bmRlZmluZWRfZW50aXR5X2NvZGUgPSBleHBhdC5lcnJvcnMuY29kZXNbZXhwYXQuZXJy
b3JzLlhNTF9FUlJPUl9VTkRFRklORURfRU5USVRZXSAgIyB0eXBlOiBpbnQKK2Vsc2U6CisgICAg
X2NvZGVzID0ge2V4cGF0LkVycm9yU3RyaW5nKGkpOiBpIGZvciBpIGluIHJhbmdlKDB4MTAwKX0g
ICMgdHlwZTogRGljdFtzdHIsIGludF0KKyAgICBfdW5kZWZpbmVkX2VudGl0eV9jb2RlID0gX2Nv
ZGVzW2V4cGF0LmVycm9ycy5YTUxfRVJST1JfVU5ERUZJTkVEX0VOVElUWV0KKworCiBjbGFzcyBY
TUxQYXJzZXIob2JqZWN0KToKICAgICAiIiIKICAgICBBbiBYTUwgcGFyc2VyIHdpdGggc3VwcG9y
dCBmb3IgWEhUTUwgRFREcyBhbmQgYWxsIFB5dGhvbi1zdXBwb3J0ZWQgZW5jb2RpbmdzCkBAIC0z
NSwxMSArNTQsMTIgQEAgY2xhc3MgWE1MUGFyc2VyKG9iamVjdCk6CiAgICAgUHl0aG9uIGRvZXMs
IHJhdGhlciB0aGFuIGp1c3QgdGhvc2Ugc3VwcG9ydGVkIGJ5IGV4cGF0LgogICAgICIiIgogICAg
IGRlZiBfX2luaXRfXyhzZWxmLCBlbmNvZGluZz1Ob25lKToKKyAgICAgICAgIyB0eXBlOiAoT3B0
aW9uYWxbc3RyXSkgLT4gTm9uZQogICAgICAgICBzZWxmLl9wYXJzZXIgPSBleHBhdC5QYXJzZXJD
cmVhdGUoZW5jb2RpbmcsICJ9IikKICAgICAgICAgc2VsZi5fdGFyZ2V0ID0gZXRyZWUuVHJlZUJ1
aWxkZXIoKQogICAgICAgICAjIHBhcnNlciBzZXR0aW5ncwotICAgICAgICBzZWxmLl9wYXJzZXIu
YnVmZmVyX3RleHQgPSAxCi0gICAgICAgIHNlbGYuX3BhcnNlci5vcmRlcmVkX2F0dHJpYnV0ZXMg
PSAxCisgICAgICAgIHNlbGYuX3BhcnNlci5idWZmZXJfdGV4dCA9IFRydWUKKyAgICAgICAgc2Vs
Zi5fcGFyc2VyLm9yZGVyZWRfYXR0cmlidXRlcyA9IFRydWUKICAgICAgICAgc2VsZi5fcGFyc2Vy
LlNldFBhcmFtRW50aXR5UGFyc2luZyhleHBhdC5YTUxfUEFSQU1fRU5USVRZX1BBUlNJTkdfVU5M
RVNTX1NUQU5EQUxPTkUpCiAgICAgICAgICMgcGFyc2VyIGNhbGxiYWNrcwogICAgICAgICBzZWxm
Ll9wYXJzZXIuWG1sRGVjbEhhbmRsZXIgPSBzZWxmLl94bWxfZGVjbApAQCAtNDcsMzAgKzY3LDM1
IEBAIGNsYXNzIFhNTFBhcnNlcihvYmplY3QpOgogICAgICAgICBzZWxmLl9wYXJzZXIuRW5kRWxl
bWVudEhhbmRsZXIgPSBzZWxmLl9lbmQKICAgICAgICAgc2VsZi5fcGFyc2VyLkNoYXJhY3RlckRh
dGFIYW5kbGVyID0gc2VsZi5fZGF0YQogICAgICAgICBzZWxmLl9wYXJzZXIuRXh0ZXJuYWxFbnRp
dHlSZWZIYW5kbGVyID0gc2VsZi5fZXh0ZXJuYWwKLSAgICAgICAgc2VsZi5fcGFyc2VyLlNraXBw
ZWRFbnRpdHlIYW5kbGVyID0gc2VsZi5fc2tpcHBlZAorICAgICAgICBzZWxmLl9wYXJzZXIuU2tp
cHBlZEVudGl0eUhhbmRsZXIgPSBzZWxmLl9za2lwcGVkICAjIHR5cGU6IGlnbm9yZQogICAgICAg
ICAjIHVzZWQgZm9yIG91ciBob3JyaWJsZSByZS1lbmNvZGluZyBoYWNrCi0gICAgICAgIHNlbGYu
X2ZlZF9kYXRhID0gW10KLSAgICAgICAgc2VsZi5fcmVhZF9lbmNvZGluZyA9IE5vbmUKKyAgICAg
ICAgc2VsZi5fZmVkX2RhdGEgPSBbXSAgIyB0eXBlOiBPcHRpb25hbFtMaXN0W2J5dGVzXV0KKyAg
ICAgICAgc2VsZi5fcmVhZF9lbmNvZGluZyA9IE5vbmUgICMgdHlwZTogT3B0aW9uYWxbc3RyXQog
CiAgICAgZGVmIF94bWxfZGVjbChzZWxmLCB2ZXJzaW9uLCBlbmNvZGluZywgc3RhbmRhbG9uZSk6
CisgICAgICAgICMgdHlwZTogKHN0ciwgT3B0aW9uYWxbc3RyXSwgaW50KSAtPiBOb25lCiAgICAg
ICAgIHNlbGYuX3JlYWRfZW5jb2RpbmcgPSBlbmNvZGluZwogCiAgICAgZGVmIF9zdGFydChzZWxm
LCB0YWcsIGF0dHJpYl9pbik6CisgICAgICAgICMgdHlwZTogKHN0ciwgTGlzdFtzdHJdKSAtPiBl
dHJlZS5FbGVtZW50CiAgICAgICAgIHNlbGYuX2ZlZF9kYXRhID0gTm9uZQogICAgICAgICB0YWcg
PSBfZml4bmFtZSh0YWcpCi0gICAgICAgIGF0dHJpYiA9IE9yZGVyZWREaWN0KCkKKyAgICAgICAg
YXR0cmliID0gT3JkZXJlZERpY3QoKSAgIyB0eXBlOiBEaWN0W1VuaW9uW3N0ciwgVGV4dF0sIFVu
aW9uW3N0ciwgVGV4dF1dCiAgICAgICAgIGlmIGF0dHJpYl9pbjoKICAgICAgICAgICAgIGZvciBp
IGluIHJhbmdlKDAsIGxlbihhdHRyaWJfaW4pLCAyKToKICAgICAgICAgICAgICAgICBhdHRyaWJb
X2ZpeG5hbWUoYXR0cmliX2luW2ldKV0gPSBhdHRyaWJfaW5baSsxXQogICAgICAgICByZXR1cm4g
c2VsZi5fdGFyZ2V0LnN0YXJ0KHRhZywgYXR0cmliKQogCiAgICAgZGVmIF9kYXRhKHNlbGYsIHRl
eHQpOgotICAgICAgICByZXR1cm4gc2VsZi5fdGFyZ2V0LmRhdGEodGV4dCkKKyAgICAgICAgIyB0
eXBlOiAoc3RyKSAtPiBOb25lCisgICAgICAgIHNlbGYuX3RhcmdldC5kYXRhKHRleHQpCiAKICAg
ICBkZWYgX2VuZChzZWxmLCB0YWcpOgorICAgICAgICAjIHR5cGU6IChzdHIpIC0+IGV0cmVlLkVs
ZW1lbnQKICAgICAgICAgcmV0dXJuIHNlbGYuX3RhcmdldC5lbmQoX2ZpeG5hbWUodGFnKSkKIAog
ICAgIGRlZiBfZXh0ZXJuYWwoc2VsZiwgY29udGV4dCwgYmFzZSwgc3lzdGVtX2lkLCBwdWJsaWNf
aWQpOgorICAgICAgICAjIHR5cGU6IChzdHIsIE9wdGlvbmFsW3N0cl0sIE9wdGlvbmFsW3N0cl0s
IE9wdGlvbmFsW3N0cl0pIC0+IGJvb2wKICAgICAgICAgaWYgcHVibGljX2lkIGluIHsKICAgICAg
ICAgICAgICAgICAiLS8vVzNDLy9EVEQgWEhUTUwgMS4wIFRyYW5zaXRpb25hbC8vRU4iLAogICAg
ICAgICAgICAgICAgICItLy9XM0MvL0RURCBYSFRNTCAxLjEvL0VOIiwKQEAgLTkyLDE1ICsxMTcs
MTcgQEAgY2xhc3MgWE1MUGFyc2VyKG9iamVjdCk6CiAgICAgICAgIHJldHVybiBUcnVlCiAKICAg
ICBkZWYgX3NraXBwZWQoc2VsZiwgbmFtZSwgaXNfcGFyYW1ldGVyX2VudGl0eSk6CisgICAgICAg
ICMgdHlwZTogKHN0ciwgYm9vbCkgLT4gTm9uZQogICAgICAgICBlcnIgPSBleHBhdC5lcnJvcigi
dW5kZWZpbmVkIGVudGl0eSAlczogbGluZSAlZCwgY29sdW1uICVkIiAlCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgIChuYW1lLCBzZWxmLl9wYXJzZXIuRXJyb3JMaW5lTnVtYmVyLAogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgc2VsZi5fcGFyc2VyLkVycm9yQ29sdW1uTnVtYmVyKSkKLSAg
ICAgICAgZXJyLmNvZGUgPSBleHBhdC5lcnJvcnMuWE1MX0VSUk9SX1VOREVGSU5FRF9FTlRJVFkK
KyAgICAgICAgZXJyLmNvZGUgPSBfdW5kZWZpbmVkX2VudGl0eV9jb2RlCiAgICAgICAgIGVyci5s
aW5lbm8gPSBzZWxmLl9wYXJzZXIuRXJyb3JMaW5lTnVtYmVyCiAgICAgICAgIGVyci5vZmZzZXQg
PSBzZWxmLl9wYXJzZXIuRXJyb3JDb2x1bW5OdW1iZXIKICAgICAgICAgcmFpc2UgZXJyCiAKICAg
ICBkZWYgZmVlZChzZWxmLCBkYXRhKToKKyAgICAgICAgIyB0eXBlOiAoc3RyKSAtPiBOb25lCiAg
ICAgICAgIGlmIHNlbGYuX2ZlZF9kYXRhIGlzIG5vdCBOb25lOgogICAgICAgICAgICAgc2VsZi5f
ZmVkX2RhdGEuYXBwZW5kKGRhdGEpCiAgICAgICAgIHRyeToKQEAgLTExMCw2ICsxMzcsNyBAQCBj
bGFzcyBYTUxQYXJzZXIob2JqZWN0KToKICAgICAgICAgZXhjZXB0IFZhbHVlRXJyb3IgYXMgZToK
ICAgICAgICAgICAgIGlmIGUuYXJnc1swXSA9PSAnbXVsdGktYnl0ZSBlbmNvZGluZ3MgYXJlIG5v
dCBzdXBwb3J0ZWQnOgogICAgICAgICAgICAgICAgIGFzc2VydCBzZWxmLl9yZWFkX2VuY29kaW5n
IGlzIG5vdCBOb25lCisgICAgICAgICAgICAgICAgYXNzZXJ0IHNlbGYuX2ZlZF9kYXRhIGlzIG5v
dCBOb25lCiAgICAgICAgICAgICAgICAgeG1sID0gYiIiLmpvaW4oc2VsZi5fZmVkX2RhdGEpLmRl
Y29kZShzZWxmLl9yZWFkX2VuY29kaW5nKS5lbmNvZGUoInV0Zi04IikKICAgICAgICAgICAgICAg
ICBuZXdfcGFyc2VyID0gWE1MUGFyc2VyKCJ1dGYtOCIpCiAgICAgICAgICAgICAgICAgc2VsZi5f
cGFyc2VyID0gbmV3X3BhcnNlci5fcGFyc2VyCkBAIC0xMTgsNiArMTQ2LDcgQEAgY2xhc3MgWE1M
UGFyc2VyKG9iamVjdCk6CiAgICAgICAgICAgICAgICAgc2VsZi5mZWVkKHhtbCkKIAogICAgIGRl
ZiBjbG9zZShzZWxmKToKKyAgICAgICAgIyB0eXBlOiAoKSAtPiBldHJlZS5FbGVtZW50CiAgICAg
ICAgIHRyeToKICAgICAgICAgICAgIHNlbGYuX3BhcnNlci5QYXJzZSgiIiwgVHJ1ZSkKICAgICAg
ICAgZXhjZXB0IGV4cGF0LmVycm9yIGFzIHY6CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL21hbmlmZXN0L2NvbW1hbmRzLmpzb24g
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL21hbmlm
ZXN0L2NvbW1hbmRzLmpzb24KaW5kZXggZDZjY2Q5ODgwOWUuLjc2OTY3NWUwZWU0IDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL21h
bmlmZXN0L2NvbW1hbmRzLmpzb24KKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy9tYW5pZmVzdC9jb21tYW5kcy5qc29uCkBAIC0xLDYgKzEsMjMg
QEAKLXsibWFuaWZlc3QiOgotIHsicGF0aCI6ICJ1cGRhdGUucHkiLCAic2NyaXB0IjogInJ1biIs
ICJwYXJzZXIiOiAiY3JlYXRlX3BhcnNlciIsICJoZWxwIjogIlVwZGF0ZSB0aGUgTUFOSUZFU1Qu
anNvbiBmaWxlIiwKLSAgInZpcnR1YWxlbnYiOiBmYWxzZX0sCi0gIm1hbmlmZXN0LWRvd25sb2Fk
IjoKLSB7InBhdGgiOiAiZG93bmxvYWQucHkiLCAic2NyaXB0IjogInJ1biIsICJwYXJzZXIiOiAi
Y3JlYXRlX3BhcnNlciIsICJoZWxwIjogIkRvd25sb2FkIHJlY2VudCBwcmVnZW5lcmF0ZWQgTUFO
SUZFU1QuanNvbiBmaWxlIiwKLSAgInZpcnR1YWxlbnYiOiBmYWxzZX19Cit7CisgICJtYW5pZmVz
dCI6IHsKKyAgICAicGF0aCI6ICJ1cGRhdGUucHkiLAorICAgICJzY3JpcHQiOiAicnVuIiwKKyAg
ICAicGFyc2VyIjogImNyZWF0ZV9wYXJzZXIiLAorICAgICJoZWxwIjogIlVwZGF0ZSB0aGUgTUFO
SUZFU1QuanNvbiBmaWxlIiwKKyAgICAidmlydHVhbGVudiI6IGZhbHNlCisgIH0sCisgICJtYW5p
ZmVzdC1kb3dubG9hZCI6IHsKKyAgICAicGF0aCI6ICJkb3dubG9hZC5weSIsCisgICAgInNjcmlw
dCI6ICJydW4iLAorICAgICJwYXJzZXIiOiAiY3JlYXRlX3BhcnNlciIsCisgICAgImhlbHAiOiAi
RG93bmxvYWQgcmVjZW50IHByZWdlbmVyYXRlZCBNQU5JRkVTVC5qc29uIGZpbGUiLAorICAgICJ2
aXJ0dWFsZW52IjogZmFsc2UKKyAgfSwKKyAgInRlc3QtcGF0aHMiOiB7CisgICAgInBhdGgiOiAi
dGVzdHBhdGhzLnB5IiwKKyAgICAic2NyaXB0IjogInJ1biIsCisgICAgInBhcnNlciI6ICJjcmVh
dGVfcGFyc2VyIiwKKyAgICAiaGVscCI6ICJQcmludCB0ZXN0IHBhdGhzIGdpdmVuIGEgc2V0IG9m
IHRlc3QgaWRzIiwKKyAgICAidmlydHVhbGVudiI6IGZhbHNlCisgIH0KK30KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvbWFuaWZl
c3QvZG93bmxvYWQucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL21hbmlmZXN0L2Rvd25sb2FkLnB5CmluZGV4IDhiYjNjYjY3M2RlLi4zNzM2ZDU0
ZjE1ZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy9tYW5pZmVzdC9kb3dubG9hZC5weQorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL21hbmlmZXN0L2Rvd25sb2FkLnB5CkBAIC0x
LDYgKzEsNyBAQAogZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCBhYnNvbHV0ZV9pbXBvcnQKIAogaW1w
b3J0IGFyZ3BhcnNlCitpbXBvcnQgYnoyCiBpbXBvcnQgZ3ppcAogaW1wb3J0IGpzb24KIGltcG9y
dCBpbwpAQCAtOSwxMCArMTAsMjMgQEAgZnJvbSBkYXRldGltZSBpbXBvcnQgZGF0ZXRpbWUsIHRp
bWVkZWx0YQogCiBmcm9tIHNpeC5tb3Zlcy51cmxsaWIucmVxdWVzdCBpbXBvcnQgdXJsb3Blbgog
Ci1mcm9tIC52Y3MgaW1wb3J0IEdpdAordHJ5OgorICAgIGltcG9ydCB6c3RhbmRhcmQKK2V4Y2Vw
dCBJbXBvcnRFcnJvcjoKKyAgICB6c3RhbmRhcmQgPSBOb25lCisKK2Zyb20gLnV0aWxzIGltcG9y
dCBnaXQKIAogZnJvbSAuIGltcG9ydCBsb2cKIAorTVlQWSA9IEZhbHNlCitpZiBNWVBZOgorICAg
ICMgTVlQWSBpcyBzZXQgdG8gVHJ1ZSB3aGVuIHJ1biB1bmRlciBNeXB5LgorICAgIGZyb20gdHlw
aW5nIGltcG9ydCBBbnkKKyAgICBmcm9tIHR5cGluZyBpbXBvcnQgQ2FsbGFibGUKKyAgICBmcm9t
IHR5cGluZyBpbXBvcnQgTGlzdAorICAgIGZyb20gdHlwaW5nIGltcG9ydCBPcHRpb25hbAorCiBo
ZXJlID0gb3MucGF0aC5kaXJuYW1lKF9fZmlsZV9fKQogCiB3cHRfcm9vdCA9IG9zLnBhdGguYWJz
cGF0aChvcy5wYXRoLmpvaW4oaGVyZSwgb3MucGFyZGlyLCBvcy5wYXJkaXIpKQpAQCAtMjAsMTAg
KzM0LDEyIEBAIGxvZ2dlciA9IGxvZy5nZXRfbG9nZ2VyKCkKIAogCiBkZWYgYWJzX3BhdGgocGF0
aCk6CisgICAgIyB0eXBlOiAoc3RyKSAtPiBzdHIKICAgICByZXR1cm4gb3MucGF0aC5hYnNwYXRo
KG9zLnBhdGguZXhwYW5kdXNlcihwYXRoKSkKIAogCiBkZWYgc2hvdWxkX2Rvd25sb2FkKG1hbmlm
ZXN0X3BhdGgsIHJlYnVpbGRfdGltZT10aW1lZGVsdGEoZGF5cz01KSk6CisgICAgIyB0eXBlOiAo
c3RyLCB0aW1lZGVsdGEpIC0+IGJvb2wKICAgICBpZiBub3Qgb3MucGF0aC5leGlzdHMobWFuaWZl
c3RfcGF0aCk6CiAgICAgICAgIHJldHVybiBUcnVlCiAgICAgbXRpbWUgPSBkYXRldGltZS5mcm9t
dGltZXN0YW1wKG9zLnBhdGguZ2V0bXRpbWUobWFuaWZlc3RfcGF0aCkpCkBAIC0zMyw3MiArNDks
MTI4IEBAIGRlZiBzaG91bGRfZG93bmxvYWQobWFuaWZlc3RfcGF0aCwgcmVidWlsZF90aW1lPXRp
bWVkZWx0YShkYXlzPTUpKToKICAgICByZXR1cm4gRmFsc2UKIAogCi1kZWYgZ2l0X2NvbW1pdHMo
cmVwb19yb290KToKLSAgICBnaXQgPSBHaXQuZ2V0X2Z1bmMocmVwb19yb290KQotICAgIHJldHVy
biBbaXRlbSBmb3IgaXRlbSBpbiBnaXQoImxvZyIsICItLWZvcm1hdD0lSCIsICItbjUwIikuc3Bs
aXQoIlxuIikgaWYgaXRlbV0KLQotCi1kZWYgZ2l0aHViX3VybChjb21taXRzKToKLSAgICB0cnk6
Ci0gICAgICAgIHJlc3AgPSB1cmxvcGVuKCJodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zL3dl
Yi1wbGF0Zm9ybS10ZXN0cy93cHQvcmVsZWFzZXMiKQotICAgIGV4Y2VwdCBFeGNlcHRpb246Ci0g
ICAgICAgIHJldHVybiBOb25lCi0KLSAgICBpZiByZXNwLmNvZGUgIT0gMjAwOgotICAgICAgICBy
ZXR1cm4gTm9uZQotCi0gICAgdHJ5OgotICAgICAgICByZWxlYXNlcyA9IGpzb24ubG9hZChyZXNw
LmZwKQotICAgIGV4Y2VwdCBWYWx1ZUVycm9yOgotICAgICAgICBsb2dnZXIud2FybmluZygiUmVz
cG9uc2Ugd2FzIG5vdCB2YWxpZCBKU09OIikKLSAgICAgICAgcmV0dXJuIE5vbmUKLQotICAgIGZh
bGxiYWNrID0gTm9uZQotICAgIGZvciByZWxlYXNlIGluIHJlbGVhc2VzOgotICAgICAgICBmb3Ig
Y29tbWl0IGluIGNvbW1pdHM6Ci0gICAgICAgICAgICBmb3IgaXRlbSBpbiByZWxlYXNlWyJhc3Nl
dHMiXToKLSAgICAgICAgICAgICAgICBpZiBpdGVtWyJuYW1lIl0gPT0gIk1BTklGRVNULSVzLmpz
b24uZ3oiICUgY29tbWl0OgotICAgICAgICAgICAgICAgICAgICByZXR1cm4gaXRlbVsiYnJvd3Nl
cl9kb3dubG9hZF91cmwiXQotICAgICAgICAgICAgICAgIGVsaWYgaXRlbVsibmFtZSJdID09ICJN
QU5JRkVTVC5qc29uLmd6IiBhbmQgbm90IGZhbGxiYWNrOgotICAgICAgICAgICAgICAgICAgICBm
YWxsYmFjayA9IGl0ZW1bImJyb3dzZXJfZG93bmxvYWRfdXJsIl0KLSAgICBpZiBmYWxsYmFjazoK
LSAgICAgICAgbG9nZ2VyLmluZm8oIkNhbid0IGZpbmQgYSBjb21taXQtc3BlY2lmaWMgbWFuaWZl
c3Qgc28ganVzdCB1c2luZyB0aGUgbW9zdCByZWNlbnQgb25lIikKLSAgICAgICAgcmV0dXJuIGZh
bGxiYWNrCi0KLQotZGVmIGRvd25sb2FkX21hbmlmZXN0KG1hbmlmZXN0X3BhdGgsIGNvbW1pdHNf
ZnVuYywgdXJsX2Z1bmMsIGZvcmNlPUZhbHNlKToKK2RlZiBtZXJnZV9wcl90YWdzKHJlcG9fcm9v
dCwgbWF4X2NvdW50PTUwKToKKyAgICAjIHR5cGU6IChzdHIsIGludCkgLT4gTGlzdFtzdHJdCisg
ICAgZ2l0ZnVuYyA9IGdpdChyZXBvX3Jvb3QpCisgICAgdGFncyA9IFtdICAjIHR5cGU6IExpc3Rb
c3RyXQorICAgIGlmIGdpdGZ1bmMgaXMgTm9uZToKKyAgICAgICAgcmV0dXJuIHRhZ3MKKyAgICBm
b3IgbGluZSBpbiBnaXRmdW5jKCJsb2ciLCAiLS1mb3JtYXQ9JUQiLCAiLS1tYXgtY291bnQ9JXMi
ICUgbWF4X2NvdW50KS5zcGxpdCgiXG4iKToKKyAgICAgICAgZm9yIHJlZiBpbiBsaW5lLnNwbGl0
KCIsICIpOgorICAgICAgICAgICAgaWYgcmVmLnN0YXJ0c3dpdGgoInRhZzogbWVyZ2VfcHJfIik6
CisgICAgICAgICAgICAgICAgdGFncy5hcHBlbmQocmVmWzU6XSkKKyAgICByZXR1cm4gdGFncwor
CisKK2RlZiBzY29yZV9uYW1lKG5hbWUpOgorICAgICMgdHlwZTogKHN0cikgLT4gT3B0aW9uYWxb
aW50XQorICAgICIiIlNjb3JlIGhvdyBtdWNoIHdlIGxpa2UgZWFjaCBmaWxlbmFtZSwgbG93ZXIg
d2lucywgTm9uZSByZWplY3RzIiIiCisKKyAgICAjIEFjY2VwdCBib3RoIHdheXMgb2YgbmFtaW5n
IHRoZSBtYW5pZmVzdCBhc3NldCwgZXZlbiB0aG91Z2gKKyAgICAjIHRoZXJlJ3Mgbm8gbG9uZ2Vy
IGEgcmVhc29uIHRvIGluY2x1ZGUgdGhlIGNvbW1pdCBzaGEuCisgICAgaWYgbmFtZS5zdGFydHN3
aXRoKCJNQU5JRkVTVC0iKSBvciBuYW1lLnN0YXJ0c3dpdGgoIk1BTklGRVNULiIpOgorICAgICAg
ICBpZiB6c3RhbmRhcmQgYW5kIG5hbWUuZW5kc3dpdGgoImpzb24uenN0Iik6CisgICAgICAgICAg
ICByZXR1cm4gMQorICAgICAgICBpZiBuYW1lLmVuZHN3aXRoKCIuanNvbi5iejIiKToKKyAgICAg
ICAgICAgIHJldHVybiAyCisgICAgICAgIGlmIG5hbWUuZW5kc3dpdGgoIi5qc29uLmd6Iik6Cisg
ICAgICAgICAgICByZXR1cm4gMworICAgIHJldHVybiBOb25lCisKKworZGVmIGdpdGh1Yl91cmwo
dGFncyk6CisgICAgIyB0eXBlOiAoTGlzdFtzdHJdKSAtPiBPcHRpb25hbFtMaXN0W3N0cl1dCisg
ICAgZm9yIHRhZyBpbiB0YWdzOgorICAgICAgICB1cmwgPSAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNv
bS9yZXBvcy93ZWItcGxhdGZvcm0tdGVzdHMvd3B0L3JlbGVhc2VzL3RhZ3MvJXMiICUgdGFnCisg
ICAgICAgIHRyeToKKyAgICAgICAgICAgIHJlc3AgPSB1cmxvcGVuKHVybCkKKyAgICAgICAgZXhj
ZXB0IEV4Y2VwdGlvbjoKKyAgICAgICAgICAgIGxvZ2dlci53YXJuaW5nKCJGZXRjaGluZyAlcyBm
YWlsZWQiICUgdXJsKQorICAgICAgICAgICAgY29udGludWUKKworICAgICAgICBpZiByZXNwLmNv
ZGUgIT0gMjAwOgorICAgICAgICAgICAgbG9nZ2VyLndhcm5pbmcoIkZldGNoaW5nICVzIGZhaWxl
ZDsgZ290IEhUVFAgc3RhdHVzICVkIiAlICh1cmwsIHJlc3AuY29kZSkpCisgICAgICAgICAgICBj
b250aW51ZQorCisgICAgICAgIHRyeToKKyAgICAgICAgICAgIHJlbGVhc2UgPSBqc29uLmxvYWQo
cmVzcC5mcCkKKyAgICAgICAgZXhjZXB0IFZhbHVlRXJyb3I6CisgICAgICAgICAgICBsb2dnZXIu
d2FybmluZygiUmVzcG9uc2Ugd2FzIG5vdCB2YWxpZCBKU09OIikKKyAgICAgICAgICAgIHJldHVy
biBOb25lCisKKyAgICAgICAgY2FuZGlkYXRlcyA9IFtdCisgICAgICAgIGZvciBpdGVtIGluIHJl
bGVhc2VbImFzc2V0cyJdOgorICAgICAgICAgICAgc2NvcmUgPSBzY29yZV9uYW1lKGl0ZW1bIm5h
bWUiXSkKKyAgICAgICAgICAgIGlmIHNjb3JlIGlzIG5vdCBOb25lOgorICAgICAgICAgICAgICAg
IGNhbmRpZGF0ZXMuYXBwZW5kKChzY29yZSwgaXRlbVsiYnJvd3Nlcl9kb3dubG9hZF91cmwiXSkp
CisKKyAgICAgICAgcmV0dXJuIFtpdGVtWzFdIGZvciBpdGVtIGluIHNvcnRlZChjYW5kaWRhdGVz
KV0KKworICAgIHJldHVybiBOb25lCisKKworZGVmIGRvd25sb2FkX21hbmlmZXN0KAorICAgICAg
ICBtYW5pZmVzdF9wYXRoLCAgIyB0eXBlOiBzdHIKKyAgICAgICAgdGFnc19mdW5jLCAgIyB0eXBl
OiBDYWxsYWJsZVtbXSwgTGlzdFtzdHJdXQorICAgICAgICB1cmxfZnVuYywgICMgdHlwZTogQ2Fs
bGFibGVbW0xpc3Rbc3RyXV0sIE9wdGlvbmFsW0xpc3Rbc3RyXV1dCisgICAgICAgIGZvcmNlPUZh
bHNlICAjIHR5cGU6IGJvb2wKKyk6CisgICAgIyB0eXBlOiAoLi4uKSAtPiBib29sCiAgICAgaWYg
bm90IGZvcmNlIGFuZCBub3Qgc2hvdWxkX2Rvd25sb2FkKG1hbmlmZXN0X3BhdGgpOgogICAgICAg
ICByZXR1cm4gRmFsc2UKIAotICAgIGNvbW1pdHMgPSBjb21taXRzX2Z1bmMoKQorICAgIHRhZ3Mg
PSB0YWdzX2Z1bmMoKQogCi0gICAgdXJsID0gdXJsX2Z1bmMoY29tbWl0cykKLSAgICBpZiBub3Qg
dXJsOgorICAgIHVybHMgPSB1cmxfZnVuYyh0YWdzKQorICAgIGlmIG5vdCB1cmxzOgogICAgICAg
ICBsb2dnZXIud2FybmluZygiTm8gZ2VuZXJhdGVkIG1hbmlmZXN0IGZvdW5kIikKICAgICAgICAg
cmV0dXJuIEZhbHNlCiAKLSAgICBsb2dnZXIuaW5mbygiRG93bmxvYWRpbmcgbWFuaWZlc3QgZnJv
bSAlcyIgJSB1cmwpCi0gICAgdHJ5OgotICAgICAgICByZXNwID0gdXJsb3Blbih1cmwpCi0gICAg
ZXhjZXB0IEV4Y2VwdGlvbjoKLSAgICAgICAgbG9nZ2VyLndhcm5pbmcoIkRvd25sb2FkaW5nIHBy
ZWdlbmVyYXRlZCBtYW5pZmVzdCBmYWlsZWQiKQotICAgICAgICByZXR1cm4gRmFsc2UKLQotICAg
IGlmIHJlc3AuY29kZSAhPSAyMDA6Ci0gICAgICAgIGxvZ2dlci53YXJuaW5nKCJEb3dubG9hZGlu
ZyBwcmVnZW5lcmF0ZWQgbWFuaWZlc3QgZmFpbGVkOyBnb3QgSFRUUCBzdGF0dXMgJWQiICUKLSAg
ICAgICAgICAgICAgICAgICAgICAgcmVzcC5jb2RlKQotICAgICAgICByZXR1cm4gRmFsc2UKLQot
ICAgIGd6ZiA9IGd6aXAuR3ppcEZpbGUoZmlsZW9iaj1pby5CeXRlc0lPKHJlc3AucmVhZCgpKSkK
LQotICAgIHRyeToKLSAgICAgICAgZGVjb21wcmVzc2VkID0gZ3pmLnJlYWQoKQotICAgIGV4Y2Vw
dCBJT0Vycm9yOgotICAgICAgICBsb2dnZXIud2FybmluZygiRmFpbGVkIHRvIGRlY29tcHJlc3Mg
ZG93bmxvYWRlZCBmaWxlIikKKyAgICBmb3IgdXJsIGluIHVybHM6CisgICAgICAgIGxvZ2dlci5p
bmZvKCJEb3dubG9hZGluZyBtYW5pZmVzdCBmcm9tICVzIiAlIHVybCkKKyAgICAgICAgdHJ5Ogor
ICAgICAgICAgICAgcmVzcCA9IHVybG9wZW4odXJsKQorICAgICAgICBleGNlcHQgRXhjZXB0aW9u
OgorICAgICAgICAgICAgbG9nZ2VyLndhcm5pbmcoIkRvd25sb2FkaW5nIHByZWdlbmVyYXRlZCBt
YW5pZmVzdCBmYWlsZWQiKQorICAgICAgICAgICAgY29udGludWUKKworICAgICAgICBpZiByZXNw
LmNvZGUgIT0gMjAwOgorICAgICAgICAgICAgbG9nZ2VyLndhcm5pbmcoIkRvd25sb2FkaW5nIHBy
ZWdlbmVyYXRlZCBtYW5pZmVzdCBmYWlsZWQ7IGdvdCBIVFRQIHN0YXR1cyAlZCIgJQorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgcmVzcC5jb2RlKQorICAgICAgICAgICAgY29udGludWUKKwor
ICAgICAgICBpZiB1cmwuZW5kc3dpdGgoIi56c3QiKToKKyAgICAgICAgICAgIGlmIG5vdCB6c3Rh
bmRhcmQ6CisgICAgICAgICAgICAgICAgY29udGludWUKKyAgICAgICAgICAgIHRyeToKKyAgICAg
ICAgICAgICAgICBkY3R4ID0genN0YW5kYXJkLlpzdGREZWNvbXByZXNzb3IoKQorICAgICAgICAg
ICAgICAgIGRlY29tcHJlc3NlZCA9IGRjdHguZGVjb21wcmVzcyhyZXNwLnJlYWQoKSkKKyAgICAg
ICAgICAgIGV4Y2VwdCBJT0Vycm9yOgorICAgICAgICAgICAgICAgIGxvZ2dlci53YXJuaW5nKCJG
YWlsZWQgdG8gZGVjb21wcmVzcyBkb3dubG9hZGVkIGZpbGUiKQorICAgICAgICAgICAgICAgIGNv
bnRpbnVlCisgICAgICAgIGVsaWYgdXJsLmVuZHN3aXRoKCIuYnoyIik6CisgICAgICAgICAgICB0
cnk6CisgICAgICAgICAgICAgICAgZGVjb21wcmVzc2VkID0gYnoyLmRlY29tcHJlc3MocmVzcC5y
ZWFkKCkpCisgICAgICAgICAgICBleGNlcHQgSU9FcnJvcjoKKyAgICAgICAgICAgICAgICBsb2dn
ZXIud2FybmluZygiRmFpbGVkIHRvIGRlY29tcHJlc3MgZG93bmxvYWRlZCBmaWxlIikKKyAgICAg
ICAgICAgICAgICBjb250aW51ZQorICAgICAgICBlbGlmIHVybC5lbmRzd2l0aCgiLmd6Iik6Cisg
ICAgICAgICAgICBmaWxlb2JqID0gaW8uQnl0ZXNJTyhyZXNwLnJlYWQoKSkKKyAgICAgICAgICAg
IHRyeToKKyAgICAgICAgICAgICAgICB3aXRoIGd6aXAuR3ppcEZpbGUoZmlsZW9iaj1maWxlb2Jq
KSBhcyBnemY6CisgICAgICAgICAgICAgICAgICAgIGRlY29tcHJlc3NlZCA9IGd6Zi5yZWFkKCkg
ICMgdHlwZTogaWdub3JlCisgICAgICAgICAgICBleGNlcHQgSU9FcnJvcjoKKyAgICAgICAgICAg
ICAgICBsb2dnZXIud2FybmluZygiRmFpbGVkIHRvIGRlY29tcHJlc3MgZG93bmxvYWRlZCBmaWxl
IikKKyAgICAgICAgICAgICAgICBjb250aW51ZQorICAgICAgICBlbHNlOgorICAgICAgICAgICAg
bG9nZ2VyLndhcm5pbmcoIlVua25vd24gZmlsZSBleHRlbnNpb246ICVzIiAlIHVybCkKKyAgICAg
ICAgICAgIGNvbnRpbnVlCisgICAgICAgIGJyZWFrCisgICAgZWxzZToKICAgICAgICAgcmV0dXJu
IEZhbHNlCiAKICAgICB0cnk6Ci0gICAgICAgIHdpdGggb3BlbihtYW5pZmVzdF9wYXRoLCAidyIp
IGFzIGY6CisgICAgICAgIHdpdGggb3BlbihtYW5pZmVzdF9wYXRoLCAid2IiKSBhcyBmOgogICAg
ICAgICAgICAgZi53cml0ZShkZWNvbXByZXNzZWQpCiAgICAgZXhjZXB0IEV4Y2VwdGlvbjoKICAg
ICAgICAgbG9nZ2VyLndhcm5pbmcoIkZhaWxlZCB0byB3cml0ZSBtYW5pZmVzdCIpCkBAIC0xMDgs
NiArMTgwLDcgQEAgZGVmIGRvd25sb2FkX21hbmlmZXN0KG1hbmlmZXN0X3BhdGgsIGNvbW1pdHNf
ZnVuYywgdXJsX2Z1bmMsIGZvcmNlPUZhbHNlKToKIAogCiBkZWYgY3JlYXRlX3BhcnNlcigpOgor
ICAgICMgdHlwZTogKCkgLT4gYXJncGFyc2UuQXJndW1lbnRQYXJzZXIKICAgICBwYXJzZXIgPSBh
cmdwYXJzZS5Bcmd1bWVudFBhcnNlcigpCiAgICAgcGFyc2VyLmFkZF9hcmd1bWVudCgKICAgICAg
ICAgIi1wIiwgIi0tcGF0aCIsIHR5cGU9YWJzX3BhdGgsIGhlbHA9IlBhdGggdG8gbWFuaWZlc3Qg
ZmlsZS4iKQpAQCAtMTIwLDExICsxOTMsMTMgQEAgZGVmIGNyZWF0ZV9wYXJzZXIoKToKIAogCiBk
ZWYgZG93bmxvYWRfZnJvbV9naXRodWIocGF0aCwgdGVzdHNfcm9vdCwgZm9yY2U9RmFsc2UpOgot
ICAgIHJldHVybiBkb3dubG9hZF9tYW5pZmVzdChwYXRoLCBsYW1iZGE6IGdpdF9jb21taXRzKHRl
c3RzX3Jvb3QpLCBnaXRodWJfdXJsLAorICAgICMgdHlwZTogKHN0ciwgc3RyLCBib29sKSAtPiBi
b29sCisgICAgcmV0dXJuIGRvd25sb2FkX21hbmlmZXN0KHBhdGgsIGxhbWJkYTogbWVyZ2VfcHJf
dGFncyh0ZXN0c19yb290KSwgZ2l0aHViX3VybCwKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgZm9yY2U9Zm9yY2UpCiAKIAogZGVmIHJ1bigqKmt3YXJncyk6CisgICAgIyB0eXBlOiAoKipB
bnkpIC0+IGludAogICAgIGlmIGt3YXJnc1sicGF0aCJdIGlzIE5vbmU6CiAgICAgICAgIHBhdGgg
PSBvcy5wYXRoLmpvaW4oa3dhcmdzWyJ0ZXN0c19yb290Il0sICJNQU5JRkVTVC5qc29uIikKICAg
ICBlbHNlOgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy9tYW5pZmVzdC9pdGVtLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9tYW5pZmVzdC9pdGVtLnB5CmluZGV4IDYxOTE5ZmNj
MzFlLi4yMTdmNmNhYzI2MiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy9tYW5pZmVzdC9pdGVtLnB5CisrKyBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvbWFuaWZlc3QvaXRlbS5weQpA
QCAtMSwyMyArMSwyOCBAQAorZnJvbSBjb3B5IGltcG9ydCBjb3B5Citmcm9tIGluc3BlY3QgaW1w
b3J0IGlzYWJzdHJhY3QKK2Zyb20gc2l4IGltcG9ydCBpdGVyaXRlbXMsIHdpdGhfbWV0YWNsYXNz
CiBmcm9tIHNpeC5tb3Zlcy51cmxsaWIucGFyc2UgaW1wb3J0IHVybGpvaW4sIHVybHBhcnNlCiBm
cm9tIGFiYyBpbXBvcnQgQUJDTWV0YSwgYWJzdHJhY3Rwcm9wZXJ0eQogCitmcm9tIC51dGlscyBp
bXBvcnQgdG9fb3NfcGF0aAogCi1kZWYgZ2V0X3NvdXJjZV9maWxlKHNvdXJjZV9maWxlcywgdGVz
dHNfcm9vdCwgbWFuaWZlc3QsIHBhdGgpOgotICAgIGRlZiBtYWtlX25ldygpOgotICAgICAgICBm
cm9tIC5zb3VyY2VmaWxlIGltcG9ydCBTb3VyY2VGaWxlCitNWVBZID0gRmFsc2UKK2lmIE1ZUFk6
CisgICAgIyBNWVBZIGlzIHNldCB0byBUcnVlIHdoZW4gcnVuIHVuZGVyIE15cHkuCisgICAgZnJv
bSB0eXBpbmcgaW1wb3J0IE9wdGlvbmFsCisgICAgZnJvbSB0eXBpbmcgaW1wb3J0IFRleHQKKyAg
ICBmcm9tIHR5cGluZyBpbXBvcnQgRGljdAorICAgIGZyb20gdHlwaW5nIGltcG9ydCBUdXBsZQor
ICAgIGZyb20gdHlwaW5nIGltcG9ydCBMaXN0CisgICAgZnJvbSB0eXBpbmcgaW1wb3J0IFVuaW9u
CisgICAgZnJvbSB0eXBpbmcgaW1wb3J0IFR5cGUKKyAgICBmcm9tIHR5cGluZyBpbXBvcnQgQW55
CisgICAgZnJvbSB0eXBpbmcgaW1wb3J0IFNlcXVlbmNlCisgICAgZnJvbSB0eXBpbmcgaW1wb3J0
IEhhc2hhYmxlCisgICAgZnJvbSAubWFuaWZlc3QgaW1wb3J0IE1hbmlmZXN0CisgICAgRnV6enkg
PSBEaWN0W09wdGlvbmFsW1R1cGxlW1RleHQsIFRleHQsIFRleHRdXSwgTGlzdFtpbnRdXQogCi0g
ICAgICAgIHJldHVybiBTb3VyY2VGaWxlKHRlc3RzX3Jvb3QsIHBhdGgsIG1hbmlmZXN0LnVybF9i
YXNlKQotCi0gICAgaWYgc291cmNlX2ZpbGVzIGlzIE5vbmU6Ci0gICAgICAgIHJldHVybiBtYWtl
X25ldygpCi0KLSAgICBpZiBwYXRoIG5vdCBpbiBzb3VyY2VfZmlsZXM6Ci0gICAgICAgIHNvdXJj
ZV9maWxlc1twYXRoXSA9IG1ha2VfbmV3KCkKLQotICAgIHJldHVybiBzb3VyY2VfZmlsZXNbcGF0
aF0KLQotCi1pdGVtX3R5cGVzID0ge30KK2l0ZW1fdHlwZXMgPSB7fSAgIyB0eXBlOiBEaWN0W3N0
ciwgVHlwZVtNYW5pZmVzdEl0ZW1dXQogCiAKIGNsYXNzIE1hbmlmZXN0SXRlbU1ldGEoQUJDTWV0
YSk6CkBAIC0yNSwxNTggKzMwLDIyNSBAQCBjbGFzcyBNYW5pZmVzdEl0ZW1NZXRhKEFCQ01ldGEp
OgogICAgIGl0ZW1fdHlwZXMgZGljdGlvbmFyeSBhY2NvcmRpbmcgdG8gdGhlIHZhbHVlIG9mIHRo
ZWlyIGl0ZW1fdHlwZQogICAgIGF0dHJpYnV0ZSwgYW5kIG90aGVyd2lzZSBiZWhhdmVzIGxpa2Ug
YW4gQUJDTWV0YS4iIiIKIAotICAgIGRlZiBfX25ld19fKGNscywgbmFtZSwgYmFzZXMsIGF0dHJz
LCAqKmt3YXJncyk6Ci0gICAgICAgIHJ2ID0gQUJDTWV0YS5fX25ld19fKGNscywgbmFtZSwgYmFz
ZXMsIGF0dHJzLCAqKmt3YXJncykKLSAgICAgICAgaXRlbV90eXBlc1tydi5pdGVtX3R5cGVdID0g
cnYKLQotICAgICAgICByZXR1cm4gcnYKKyAgICBkZWYgX19uZXdfXyhjbHMsIG5hbWUsIGJhc2Vz
LCBhdHRycyk6CisgICAgICAgICMgdHlwZTogKFR5cGVbTWFuaWZlc3RJdGVtTWV0YV0sIHN0ciwg
VHVwbGVbTWFuaWZlc3RJdGVtTWV0YSwgLi4uXSwgRGljdFtzdHIsIEFueV0pIC0+IE1hbmlmZXN0
SXRlbU1ldGEKKyAgICAgICAgcnYgPSBzdXBlcihNYW5pZmVzdEl0ZW1NZXRhLCBjbHMpLl9fbmV3
X18oY2xzLCBuYW1lLCBiYXNlcywgYXR0cnMpCisgICAgICAgIGlmIG5vdCBpc2Fic3RyYWN0KHJ2
KToKKyAgICAgICAgICAgIGFzc2VydCBpc3N1YmNsYXNzKHJ2LCBNYW5pZmVzdEl0ZW0pCisgICAg
ICAgICAgICBhc3NlcnQgaXNpbnN0YW5jZShydi5pdGVtX3R5cGUsIHN0cikKKyAgICAgICAgICAg
IGl0ZW1fdHlwZXNbcnYuaXRlbV90eXBlXSA9IHJ2CiAKKyAgICAgICAgcmV0dXJuIHJ2ICAjIHR5
cGU6IGlnbm9yZQogCi1jbGFzcyBNYW5pZmVzdEl0ZW0ob2JqZWN0KToKLSAgICBfX21ldGFjbGFz
c19fID0gTWFuaWZlc3RJdGVtTWV0YQogCi0gICAgaXRlbV90eXBlID0gTm9uZQorY2xhc3MgTWFu
aWZlc3RJdGVtKHdpdGhfbWV0YWNsYXNzKE1hbmlmZXN0SXRlbU1ldGEpKToKKyAgICBfX3Nsb3Rz
X18gPSAoIl90ZXN0c19yb290IiwgInBhdGgiKQogCi0gICAgZGVmIF9faW5pdF9fKHNlbGYsIHNv
dXJjZV9maWxlLCBtYW5pZmVzdD1Ob25lKToKLSAgICAgICAgc2VsZi5tYW5pZmVzdCA9IG1hbmlm
ZXN0Ci0gICAgICAgIHNlbGYuc291cmNlX2ZpbGUgPSBzb3VyY2VfZmlsZQorICAgIGRlZiBfX2lu
aXRfXyhzZWxmLCB0ZXN0c19yb290LCBwYXRoKToKKyAgICAgICAgIyB0eXBlOiAoVGV4dCwgVGV4
dCkgLT4gTm9uZQorICAgICAgICBzZWxmLl90ZXN0c19yb290ID0gdGVzdHNfcm9vdAorICAgICAg
ICBzZWxmLnBhdGggPSBwYXRoCiAKICAgICBAYWJzdHJhY3Rwcm9wZXJ0eQogICAgIGRlZiBpZChz
ZWxmKToKKyAgICAgICAgIyB0eXBlOiAoKSAtPiBUZXh0CiAgICAgICAgICIiIlRoZSB0ZXN0J3Mg
aWQgKHVzdWFsbHkgaXRzIHVybCkiIiIKICAgICAgICAgcGFzcwogCi0gICAgQHByb3BlcnR5Ci0g
ICAgZGVmIG1ldGFfZmxhZ3Moc2VsZik6Ci0gICAgICAgIHJldHVybiBzZXQoc2VsZi5zb3VyY2Vf
ZmlsZS5tZXRhX2ZsYWdzKQotCi0gICAgQHByb3BlcnR5Ci0gICAgZGVmIHBhdGgoc2VsZik6Ci0g
ICAgICAgICIiIlRoZSB0ZXN0IHBhdGggcmVsYXRpdmUgdG8gdGhlIHRlc3Rfcm9vdCIiIgotICAg
ICAgICByZXR1cm4gc2VsZi5zb3VyY2VfZmlsZS5yZWxfcGF0aAotCi0gICAgQHByb3BlcnR5Ci0g
ICAgZGVmIGh0dHBzKHNlbGYpOgotICAgICAgICBmbGFncyA9IHNlbGYubWV0YV9mbGFncwotICAg
ICAgICByZXR1cm4gKCJodHRwcyIgaW4gZmxhZ3Mgb3IgInNlcnZpY2V3b3JrZXIiIGluIGZsYWdz
KQorICAgIEBhYnN0cmFjdHByb3BlcnR5CisgICAgZGVmIGl0ZW1fdHlwZShzZWxmKToKKyAgICAg
ICAgIyB0eXBlOiAoKSAtPiBzdHIKKyAgICAgICAgIiIiVGhlIGl0ZW0ncyB0eXBlIiIiCisgICAg
ICAgIHBhc3MKIAogICAgIGRlZiBrZXkoc2VsZik6CisgICAgICAgICMgdHlwZTogKCkgLT4gSGFz
aGFibGUKICAgICAgICAgIiIiQSB1bmlxdWUgaWRlbnRpZmllciBmb3IgdGhlIHRlc3QiIiIKICAg
ICAgICAgcmV0dXJuIChzZWxmLml0ZW1fdHlwZSwgc2VsZi5pZCkKIAotICAgIGRlZiBtZXRhX2tl
eShzZWxmKToKLSAgICAgICAgIiIiRXh0cmEgbWV0YWRhdGEgdGhhdCBkb2Vzbid0IGZvcm0gcGFy
dCBvZiB0aGUgdGVzdCBpZGVudGl0eSwgYnV0IGZvcgotICAgICAgICB3aGljaCBjaGFuZ2VzIG1l
YW4gcmVnZW5lcmF0aW5nIHRoZSBtYW5pZmVzdCAoZS5nLiB0aGUgdGVzdCB0aW1lb3V0LiIiIgot
ICAgICAgICByZXR1cm4gKCkKLQogICAgIGRlZiBfX2VxX18oc2VsZiwgb3RoZXIpOgorICAgICAg
ICAjIHR5cGU6IChBbnkpIC0+IGJvb2wKICAgICAgICAgaWYgbm90IGhhc2F0dHIob3RoZXIsICJr
ZXkiKToKICAgICAgICAgICAgIHJldHVybiBGYWxzZQotICAgICAgICByZXR1cm4gc2VsZi5rZXko
KSA9PSBvdGhlci5rZXkoKQorICAgICAgICByZXR1cm4gYm9vbChzZWxmLmtleSgpID09IG90aGVy
LmtleSgpKQogCiAgICAgZGVmIF9faGFzaF9fKHNlbGYpOgotICAgICAgICByZXR1cm4gaGFzaChz
ZWxmLmtleSgpICsgc2VsZi5tZXRhX2tleSgpKQorICAgICAgICAjIHR5cGU6ICgpIC0+IGludAor
ICAgICAgICByZXR1cm4gaGFzaChzZWxmLmtleSgpKQogCiAgICAgZGVmIF9fcmVwcl9fKHNlbGYp
OgotICAgICAgICByZXR1cm4gIjwlcy4lcyBpZD0lcywgcGF0aD0lcz4iICUgKHNlbGYuX19tb2R1
bGVfXywgc2VsZi5fX2NsYXNzX18uX19uYW1lX18sIHNlbGYuaWQsIHNlbGYucGF0aCkKKyAgICAg
ICAgIyB0eXBlOiAoKSAtPiBzdHIKKyAgICAgICAgcmV0dXJuICI8JXMuJXMgaWQ9JXIsIHBhdGg9
JXI+IiAlIChzZWxmLl9fbW9kdWxlX18sIHNlbGYuX19jbGFzc19fLl9fbmFtZV9fLCBzZWxmLmlk
LCBzZWxmLnBhdGgpCiAKICAgICBkZWYgdG9fanNvbihzZWxmKToKLSAgICAgICAgcmV0dXJuIFt7
fV0KKyAgICAgICAgIyB0eXBlOiAoKSAtPiBUdXBsZVtBbnksIC4uLl0KKyAgICAgICAgcmV0dXJu
ICgpCiAKICAgICBAY2xhc3NtZXRob2QKLSAgICBkZWYgZnJvbV9qc29uKGNscywgbWFuaWZlc3Qs
IHRlc3RzX3Jvb3QsIHBhdGgsIG9iaiwgc291cmNlX2ZpbGVzPU5vbmUpOgotICAgICAgICBzb3Vy
Y2VfZmlsZSA9IGdldF9zb3VyY2VfZmlsZShzb3VyY2VfZmlsZXMsIHRlc3RzX3Jvb3QsIG1hbmlm
ZXN0LCBwYXRoKQotICAgICAgICByZXR1cm4gY2xzKHNvdXJjZV9maWxlLAotICAgICAgICAgICAg
ICAgICAgIG1hbmlmZXN0PW1hbmlmZXN0KQorICAgIGRlZiBmcm9tX2pzb24oY2xzLAorICAgICAg
ICAgICAgICAgICAgbWFuaWZlc3QsICAjIHR5cGU6IE1hbmlmZXN0CisgICAgICAgICAgICAgICAg
ICBwYXRoLCAgIyB0eXBlOiBUZXh0CisgICAgICAgICAgICAgICAgICBvYmogICMgdHlwZTogQW55
CisgICAgICAgICAgICAgICAgICApOgorICAgICAgICAjIHR5cGU6ICguLi4pIC0+IE1hbmlmZXN0
SXRlbQorICAgICAgICBwYXRoID0gdG9fb3NfcGF0aChwYXRoKQorICAgICAgICB0ZXN0c19yb290
ID0gbWFuaWZlc3QudGVzdHNfcm9vdAorICAgICAgICBhc3NlcnQgdGVzdHNfcm9vdCBpcyBub3Qg
Tm9uZQorICAgICAgICByZXR1cm4gY2xzKHRlc3RzX3Jvb3QsIHBhdGgpCiAKIAogY2xhc3MgVVJM
TWFuaWZlc3RJdGVtKE1hbmlmZXN0SXRlbSk6Ci0gICAgZGVmIF9faW5pdF9fKHNlbGYsIHNvdXJj
ZV9maWxlLCB1cmwsIHVybF9iYXNlPSIvIiwgbWFuaWZlc3Q9Tm9uZSk6Ci0gICAgICAgIE1hbmlm
ZXN0SXRlbS5fX2luaXRfXyhzZWxmLCBzb3VyY2VfZmlsZSwgbWFuaWZlc3Q9bWFuaWZlc3QpCi0g
ICAgICAgIHNlbGYuX3VybCA9IHVybAorICAgIF9fc2xvdHNfXyA9ICgidXJsX2Jhc2UiLCAiX3Vy
bCIsICJfZXh0cmFzIikKKworICAgIGRlZiBfX2luaXRfXyhzZWxmLAorICAgICAgICAgICAgICAg
ICB0ZXN0c19yb290LCAgIyB0eXBlOiBUZXh0CisgICAgICAgICAgICAgICAgIHBhdGgsICAjIHR5
cGU6IFRleHQKKyAgICAgICAgICAgICAgICAgdXJsX2Jhc2UsICAjIHR5cGU6IFRleHQKKyAgICAg
ICAgICAgICAgICAgdXJsLCAgIyB0eXBlOiBUZXh0CisgICAgICAgICAgICAgICAgICoqZXh0cmFz
ICAjIHR5cGU6IEFueQorICAgICAgICAgICAgICAgICApOgorICAgICAgICAjIHR5cGU6ICguLi4p
IC0+IE5vbmUKKyAgICAgICAgc3VwZXIoVVJMTWFuaWZlc3RJdGVtLCBzZWxmKS5fX2luaXRfXyh0
ZXN0c19yb290LCBwYXRoKQorICAgICAgICBhc3NlcnQgdXJsX2Jhc2VbMF0gPT0gIi8iCiAgICAg
ICAgIHNlbGYudXJsX2Jhc2UgPSB1cmxfYmFzZQorICAgICAgICBhc3NlcnQgdXJsWzBdICE9ICIv
IgorICAgICAgICBzZWxmLl91cmwgPSB1cmwKKyAgICAgICAgc2VsZi5fZXh0cmFzID0gZXh0cmFz
CiAKICAgICBAcHJvcGVydHkKICAgICBkZWYgaWQoc2VsZik6CisgICAgICAgICMgdHlwZTogKCkg
LT4gVGV4dAogICAgICAgICByZXR1cm4gc2VsZi51cmwKIAotICAgIEBwcm9wZXJ0eQotICAgIGRl
ZiBtZXRhX2ZsYWdzKHNlbGYpOgotICAgICAgICByZXR1cm4gc2V0KHVybHBhcnNlKHNlbGYudXJs
KS5wYXRoLnJzcGxpdCgiLyIsIDEpWzFdLnNwbGl0KCIuIilbMTotMV0pCi0KICAgICBAcHJvcGVy
dHkKICAgICBkZWYgdXJsKHNlbGYpOgorICAgICAgICAjIHR5cGU6ICgpIC0+IFRleHQKKyAgICAg
ICAgIyB3ZSBjYW4gb3V0cGVyZm9ybSB1cmxqb2luLCBiZWNhdXNlIHdlIGtub3cgd2UganVzdCBo
YXZlIHBhdGggcmVsYXRpdmUgVVJMcworICAgICAgICBpZiBzZWxmLnVybF9iYXNlID09ICIvIjoK
KyAgICAgICAgICAgIHJldHVybiAiLyIgKyBzZWxmLl91cmwKICAgICAgICAgcmV0dXJuIHVybGpv
aW4oc2VsZi51cmxfYmFzZSwgc2VsZi5fdXJsKQogCisgICAgQHByb3BlcnR5CisgICAgZGVmIGh0
dHBzKHNlbGYpOgorICAgICAgICAjIHR5cGU6ICgpIC0+IGJvb2wKKyAgICAgICAgZmxhZ3MgPSBz
ZXQodXJscGFyc2Uoc2VsZi51cmwpLnBhdGgucnNwbGl0KCIvIiwgMSlbMV0uc3BsaXQoIi4iKVsx
Oi0xXSkKKyAgICAgICAgcmV0dXJuICgiaHR0cHMiIGluIGZsYWdzIG9yICJzZXJ2aWNld29ya2Vy
IiBpbiBmbGFncykKKwogICAgIGRlZiB0b19qc29uKHNlbGYpOgotICAgICAgICBydiA9IFtzZWxm
Ll91cmwsIHt9XQorICAgICAgICAjIHR5cGU6ICgpIC0+IFR1cGxlW1RleHQsIERpY3RbQW55LCBB
bnldXQorICAgICAgICBydiA9IChzZWxmLl91cmwsIHt9KSAgIyB0eXBlOiBUdXBsZVtUZXh0LCBE
aWN0W0FueSwgQW55XV0KICAgICAgICAgcmV0dXJuIHJ2CiAKICAgICBAY2xhc3NtZXRob2QKLSAg
ICBkZWYgZnJvbV9qc29uKGNscywgbWFuaWZlc3QsIHRlc3RzX3Jvb3QsIHBhdGgsIG9iaiwgc291
cmNlX2ZpbGVzPU5vbmUpOgotICAgICAgICBzb3VyY2VfZmlsZSA9IGdldF9zb3VyY2VfZmlsZShz
b3VyY2VfZmlsZXMsIHRlc3RzX3Jvb3QsIG1hbmlmZXN0LCBwYXRoKQorICAgIGRlZiBmcm9tX2pz
b24oY2xzLAorICAgICAgICAgICAgICAgICAgbWFuaWZlc3QsICAjIHR5cGU6IE1hbmlmZXN0Cisg
ICAgICAgICAgICAgICAgICBwYXRoLCAgIyB0eXBlOiBUZXh0CisgICAgICAgICAgICAgICAgICBv
YmogICMgdHlwZTogVHVwbGVbVGV4dCwgRGljdFtBbnksIEFueV1dCisgICAgICAgICAgICAgICAg
ICApOgorICAgICAgICAjIHR5cGU6ICguLi4pIC0+IFVSTE1hbmlmZXN0SXRlbQorICAgICAgICBw
YXRoID0gdG9fb3NfcGF0aChwYXRoKQogICAgICAgICB1cmwsIGV4dHJhcyA9IG9iagotICAgICAg
ICByZXR1cm4gY2xzKHNvdXJjZV9maWxlLAorICAgICAgICB0ZXN0c19yb290ID0gbWFuaWZlc3Qu
dGVzdHNfcm9vdAorICAgICAgICBhc3NlcnQgdGVzdHNfcm9vdCBpcyBub3QgTm9uZQorICAgICAg
ICByZXR1cm4gY2xzKHRlc3RzX3Jvb3QsCisgICAgICAgICAgICAgICAgICAgcGF0aCwKKyAgICAg
ICAgICAgICAgICAgICBtYW5pZmVzdC51cmxfYmFzZSwKICAgICAgICAgICAgICAgICAgICB1cmws
Ci0gICAgICAgICAgICAgICAgICAgdXJsX2Jhc2U9bWFuaWZlc3QudXJsX2Jhc2UsCi0gICAgICAg
ICAgICAgICAgICAgbWFuaWZlc3Q9bWFuaWZlc3QpCisgICAgICAgICAgICAgICAgICAgKipleHRy
YXMpCiAKIAogY2xhc3MgVGVzdGhhcm5lc3NUZXN0KFVSTE1hbmlmZXN0SXRlbSk6CisgICAgX19z
bG90c19fID0gKCkKKwogICAgIGl0ZW1fdHlwZSA9ICJ0ZXN0aGFybmVzcyIKIAotICAgIGRlZiBf
X2luaXRfXyhzZWxmLCBzb3VyY2VfZmlsZSwgdXJsLCB1cmxfYmFzZT0iLyIsIHRpbWVvdXQ9Tm9u
ZSwgdGVzdGRyaXZlcj1GYWxzZSwganNzaGVsbD1GYWxzZSwgbWFuaWZlc3Q9Tm9uZSk6Ci0gICAg
ICAgIFVSTE1hbmlmZXN0SXRlbS5fX2luaXRfXyhzZWxmLCBzb3VyY2VfZmlsZSwgdXJsLCB1cmxf
YmFzZT11cmxfYmFzZSwgbWFuaWZlc3Q9bWFuaWZlc3QpCi0gICAgICAgIHNlbGYudGltZW91dCA9
IHRpbWVvdXQKLSAgICAgICAgc2VsZi50ZXN0ZHJpdmVyID0gdGVzdGRyaXZlcgotICAgICAgICBz
ZWxmLmpzc2hlbGwgPSBqc3NoZWxsCisgICAgQHByb3BlcnR5CisgICAgZGVmIHRpbWVvdXQoc2Vs
Zik6CisgICAgICAgICMgdHlwZTogKCkgLT4gT3B0aW9uYWxbVGV4dF0KKyAgICAgICAgcmV0dXJu
IHNlbGYuX2V4dHJhcy5nZXQoInRpbWVvdXQiKQogCi0gICAgZGVmIG1ldGFfa2V5KHNlbGYpOgot
ICAgICAgICByZXR1cm4gKHNlbGYudGltZW91dCwgc2VsZi50ZXN0ZHJpdmVyKQorICAgIEBwcm9w
ZXJ0eQorICAgIGRlZiB0ZXN0ZHJpdmVyKHNlbGYpOgorICAgICAgICAjIHR5cGU6ICgpIC0+IE9w
dGlvbmFsW1RleHRdCisgICAgICAgIHJldHVybiBzZWxmLl9leHRyYXMuZ2V0KCJ0ZXN0ZHJpdmVy
IikKKworICAgIEBwcm9wZXJ0eQorICAgIGRlZiBqc3NoZWxsKHNlbGYpOgorICAgICAgICAjIHR5
cGU6ICgpIC0+IE9wdGlvbmFsW1RleHRdCisgICAgICAgIHJldHVybiBzZWxmLl9leHRyYXMuZ2V0
KCJqc3NoZWxsIikKKworICAgIEBwcm9wZXJ0eQorICAgIGRlZiBzY3JpcHRfbWV0YWRhdGEoc2Vs
Zik6CisgICAgICAgICMgdHlwZTogKCkgLT4gT3B0aW9uYWxbVGV4dF0KKyAgICAgICAgcmV0dXJu
IHNlbGYuX2V4dHJhcy5nZXQoInNjcmlwdF9tZXRhZGF0YSIpCiAKICAgICBkZWYgdG9fanNvbihz
ZWxmKToKLSAgICAgICAgcnYgPSBVUkxNYW5pZmVzdEl0ZW0udG9fanNvbihzZWxmKQorICAgICAg
ICAjIHR5cGU6ICgpIC0+IFR1cGxlW1RleHQsIERpY3RbVGV4dCwgQW55XV0KKyAgICAgICAgcnYg
PSBzdXBlcihUZXN0aGFybmVzc1Rlc3QsIHNlbGYpLnRvX2pzb24oKQogICAgICAgICBpZiBzZWxm
LnRpbWVvdXQgaXMgbm90IE5vbmU6CiAgICAgICAgICAgICBydlstMV1bInRpbWVvdXQiXSA9IHNl
bGYudGltZW91dAogICAgICAgICBpZiBzZWxmLnRlc3Rkcml2ZXI6CiAgICAgICAgICAgICBydlst
MV1bInRlc3Rkcml2ZXIiXSA9IHNlbGYudGVzdGRyaXZlcgogICAgICAgICBpZiBzZWxmLmpzc2hl
bGw6CiAgICAgICAgICAgICBydlstMV1bImpzc2hlbGwiXSA9IFRydWUKKyAgICAgICAgaWYgc2Vs
Zi5zY3JpcHRfbWV0YWRhdGE6CisgICAgICAgICAgICBydlstMV1bInNjcmlwdF9tZXRhZGF0YSJd
ID0gc2VsZi5zY3JpcHRfbWV0YWRhdGEKICAgICAgICAgcmV0dXJuIHJ2CiAKLSAgICBAY2xhc3Nt
ZXRob2QKLSAgICBkZWYgZnJvbV9qc29uKGNscywgbWFuaWZlc3QsIHRlc3RzX3Jvb3QsIHBhdGgs
IG9iaiwgc291cmNlX2ZpbGVzPU5vbmUpOgotICAgICAgICBzb3VyY2VfZmlsZSA9IGdldF9zb3Vy
Y2VfZmlsZShzb3VyY2VfZmlsZXMsIHRlc3RzX3Jvb3QsIG1hbmlmZXN0LCBwYXRoKQogCi0gICAg
ICAgIHVybCwgZXh0cmFzID0gb2JqCi0gICAgICAgIHJldHVybiBjbHMoc291cmNlX2ZpbGUsCi0g
ICAgICAgICAgICAgICAgICAgdXJsLAotICAgICAgICAgICAgICAgICAgIHVybF9iYXNlPW1hbmlm
ZXN0LnVybF9iYXNlLAotICAgICAgICAgICAgICAgICAgIHRpbWVvdXQ9ZXh0cmFzLmdldCgidGlt
ZW91dCIpLAotICAgICAgICAgICAgICAgICAgIHRlc3Rkcml2ZXI9Ym9vbChleHRyYXMuZ2V0KCJ0
ZXN0ZHJpdmVyIikpLAotICAgICAgICAgICAgICAgICAgIGpzc2hlbGw9Ym9vbChleHRyYXMuZ2V0
KCJqc3NoZWxsIikpLAotICAgICAgICAgICAgICAgICAgIG1hbmlmZXN0PW1hbmlmZXN0KQorY2xh
c3MgUmVmVGVzdEJhc2UoVVJMTWFuaWZlc3RJdGVtKToKKyAgICBfX3Nsb3RzX18gPSAoInJlZmVy
ZW5jZXMiLCkKIAorICAgIGRlZiBfX2luaXRfXyhzZWxmLAorICAgICAgICAgICAgICAgICB0ZXN0
c19yb290LCAgIyB0eXBlOiBUZXh0CisgICAgICAgICAgICAgICAgIHBhdGgsICAjIHR5cGU6IFRl
eHQKKyAgICAgICAgICAgICAgICAgdXJsX2Jhc2UsICAjIHR5cGU6IFRleHQKKyAgICAgICAgICAg
ICAgICAgdXJsLCAgIyB0eXBlOiBUZXh0CisgICAgICAgICAgICAgICAgIHJlZmVyZW5jZXM9Tm9u
ZSwgICMgdHlwZTogT3B0aW9uYWxbTGlzdFtUdXBsZVtUZXh0LCBUZXh0XV1dCisgICAgICAgICAg
ICAgICAgICoqZXh0cmFzICAjIHR5cGU6IEFueQorICAgICAgICAgICAgICAgICApOgorICAgICAg
ICBzdXBlcihSZWZUZXN0QmFzZSwgc2VsZikuX19pbml0X18odGVzdHNfcm9vdCwgcGF0aCwgdXJs
X2Jhc2UsIHVybCwgKipleHRyYXMpCisgICAgICAgIGlmIHJlZmVyZW5jZXMgaXMgTm9uZToKKyAg
ICAgICAgICAgIHNlbGYucmVmZXJlbmNlcyA9IFtdICAjIHR5cGU6IExpc3RbVHVwbGVbVGV4dCwg
VGV4dF1dCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBzZWxmLnJlZmVyZW5jZXMgPSByZWZl
cmVuY2VzCiAKLWNsYXNzIFJlZlRlc3ROb2RlKFVSTE1hbmlmZXN0SXRlbSk6Ci0gICAgaXRlbV90
eXBlID0gInJlZnRlc3Rfbm9kZSIKKyAgICBAcHJvcGVydHkKKyAgICBkZWYgdGltZW91dChzZWxm
KToKKyAgICAgICAgIyB0eXBlOiAoKSAtPiBPcHRpb25hbFtUZXh0XQorICAgICAgICByZXR1cm4g
c2VsZi5fZXh0cmFzLmdldCgidGltZW91dCIpCiAKLSAgICBkZWYgX19pbml0X18oc2VsZiwgc291
cmNlX2ZpbGUsIHVybCwgcmVmZXJlbmNlcywgdXJsX2Jhc2U9Ii8iLCB0aW1lb3V0PU5vbmUsCi0g
ICAgICAgICAgICAgICAgIHZpZXdwb3J0X3NpemU9Tm9uZSwgZHBpPU5vbmUsIG1hbmlmZXN0PU5v
bmUpOgotICAgICAgICBVUkxNYW5pZmVzdEl0ZW0uX19pbml0X18oc2VsZiwgc291cmNlX2ZpbGUs
IHVybCwgdXJsX2Jhc2U9dXJsX2Jhc2UsIG1hbmlmZXN0PW1hbmlmZXN0KQotICAgICAgICBmb3Ig
XywgcmVmX3R5cGUgaW4gcmVmZXJlbmNlczoKLSAgICAgICAgICAgIGlmIHJlZl90eXBlIG5vdCBp
biBbIj09IiwgIiE9Il06Ci0gICAgICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigiVW5yZWNv
Z25pc2VkIHJlZl90eXBlICVzIiAlIHJlZl90eXBlKQotICAgICAgICBzZWxmLnJlZmVyZW5jZXMg
PSB0dXBsZShyZWZlcmVuY2VzKQotICAgICAgICBzZWxmLnRpbWVvdXQgPSB0aW1lb3V0Ci0gICAg
ICAgIHNlbGYudmlld3BvcnRfc2l6ZSA9IHZpZXdwb3J0X3NpemUKLSAgICAgICAgc2VsZi5kcGkg
PSBkcGkKKyAgICBAcHJvcGVydHkKKyAgICBkZWYgdmlld3BvcnRfc2l6ZShzZWxmKToKKyAgICAg
ICAgIyB0eXBlOiAoKSAtPiBPcHRpb25hbFtUZXh0XQorICAgICAgICByZXR1cm4gc2VsZi5fZXh0
cmFzLmdldCgidmlld3BvcnRfc2l6ZSIpCiAKLSAgICBkZWYgbWV0YV9rZXkoc2VsZik6Ci0gICAg
ICAgIHJldHVybiAoc2VsZi50aW1lb3V0LCBzZWxmLnZpZXdwb3J0X3NpemUsIHNlbGYuZHBpKQor
ICAgIEBwcm9wZXJ0eQorICAgIGRlZiBkcGkoc2VsZik6CisgICAgICAgICMgdHlwZTogKCkgLT4g
T3B0aW9uYWxbVGV4dF0KKyAgICAgICAgcmV0dXJuIHNlbGYuX2V4dHJhcy5nZXQoImRwaSIpCiAK
LSAgICBkZWYgdG9fanNvbihzZWxmKToKLSAgICAgICAgcnYgPSBbc2VsZi51cmwsIHNlbGYucmVm
ZXJlbmNlcywge31dCisgICAgQHByb3BlcnR5CisgICAgZGVmIGZ1enp5KHNlbGYpOgorICAgICAg
ICAjIHR5cGU6ICgpIC0+IEZ1enp5CisgICAgICAgIGZ1enp5ID0gc2VsZi5fZXh0cmFzLmdldCgi
ZnV6enkiLCB7fSkgICMgdHlwZTogVW5pb25bRnV6enksIExpc3RbVHVwbGVbT3B0aW9uYWxbU2Vx
dWVuY2VbVGV4dF1dLCBMaXN0W2ludF1dXV0KKyAgICAgICAgaWYgbm90IGlzaW5zdGFuY2UoZnV6
enksIGxpc3QpOgorICAgICAgICAgICAgcmV0dXJuIGZ1enp5CisKKyAgICAgICAgcnYgPSB7fSAg
IyB0eXBlOiBGdXp6eQorICAgICAgICBmb3IgaywgdiBpbiBmdXp6eTogICMgdHlwZTogVHVwbGVb
T3B0aW9uYWxbU2VxdWVuY2VbVGV4dF1dLCBMaXN0W2ludF1dCisgICAgICAgICAgICBpZiBrIGlz
IE5vbmU6CisgICAgICAgICAgICAgICAga2V5ID0gTm9uZSAgIyB0eXBlOiBPcHRpb25hbFtUdXBs
ZVtUZXh0LCBUZXh0LCBUZXh0XV0KKyAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAg
IyBteXB5IHR5cGVzIHRoaXMgYXMgVHVwbGVbVGV4dCwgLi4uXQorICAgICAgICAgICAgICAgIGFz
c2VydCBsZW4oaykgPT0gMworICAgICAgICAgICAgICAgIGtleSA9IHR1cGxlKGspICAjIHR5cGU6
IGlnbm9yZQorICAgICAgICAgICAgcnZba2V5XSA9IHYKKyAgICAgICAgcmV0dXJuIHJ2CisKKyAg
ICBkZWYgdG9fanNvbihzZWxmKTogICMgdHlwZTogaWdub3JlCisgICAgICAgICMgdHlwZTogKCkg
LT4gVHVwbGVbVGV4dCwgTGlzdFtUdXBsZVtUZXh0LCBUZXh0XV0sIERpY3RbVGV4dCwgQW55XV0K
KyAgICAgICAgcnYgPSAoc2VsZi5fdXJsLCBzZWxmLnJlZmVyZW5jZXMsIHt9KSAgIyB0eXBlOiBU
dXBsZVtUZXh0LCBMaXN0W1R1cGxlW1RleHQsIFRleHRdXSwgRGljdFtUZXh0LCBBbnldXQogICAg
ICAgICBleHRyYXMgPSBydlstMV0KICAgICAgICAgaWYgc2VsZi50aW1lb3V0IGlzIG5vdCBOb25l
OgogICAgICAgICAgICAgZXh0cmFzWyJ0aW1lb3V0Il0gPSBzZWxmLnRpbWVvdXQKQEAgLTE4NCw4
NCArMjU2LDEwMyBAQCBjbGFzcyBSZWZUZXN0Tm9kZShVUkxNYW5pZmVzdEl0ZW0pOgogICAgICAg
ICAgICAgZXh0cmFzWyJ2aWV3cG9ydF9zaXplIl0gPSBzZWxmLnZpZXdwb3J0X3NpemUKICAgICAg
ICAgaWYgc2VsZi5kcGkgaXMgbm90IE5vbmU6CiAgICAgICAgICAgICBleHRyYXNbImRwaSJdID0g
c2VsZi5kcGkKKyAgICAgICAgaWYgc2VsZi5mdXp6eToKKyAgICAgICAgICAgIGV4dHJhc1siZnV6
enkiXSA9IGxpc3QoaXRlcml0ZW1zKHNlbGYuZnV6enkpKQogICAgICAgICByZXR1cm4gcnYKIAog
ICAgIEBjbGFzc21ldGhvZAotICAgIGRlZiBmcm9tX2pzb24oY2xzLCBtYW5pZmVzdCwgdGVzdHNf
cm9vdCwgcGF0aCwgb2JqLCBzb3VyY2VfZmlsZXM9Tm9uZSk6Ci0gICAgICAgIHNvdXJjZV9maWxl
ID0gZ2V0X3NvdXJjZV9maWxlKHNvdXJjZV9maWxlcywgdGVzdHNfcm9vdCwgbWFuaWZlc3QsIHBh
dGgpCisgICAgZGVmIGZyb21fanNvbihjbHMsICAjIHR5cGU6IGlnbm9yZQorICAgICAgICAgICAg
ICAgICAgbWFuaWZlc3QsICAjIHR5cGU6IE1hbmlmZXN0CisgICAgICAgICAgICAgICAgICBwYXRo
LCAgIyB0eXBlOiBUZXh0CisgICAgICAgICAgICAgICAgICBvYmogICMgdHlwZTogVHVwbGVbVGV4
dCwgTGlzdFtUdXBsZVtUZXh0LCBUZXh0XV0sIERpY3RbQW55LCBBbnldXQorICAgICAgICAgICAg
ICAgICAgKToKKyAgICAgICAgIyB0eXBlOiAoLi4uKSAtPiBSZWZUZXN0QmFzZQorICAgICAgICB0
ZXN0c19yb290ID0gbWFuaWZlc3QudGVzdHNfcm9vdAorICAgICAgICBhc3NlcnQgdGVzdHNfcm9v
dCBpcyBub3QgTm9uZQorICAgICAgICBwYXRoID0gdG9fb3NfcGF0aChwYXRoKQogICAgICAgICB1
cmwsIHJlZmVyZW5jZXMsIGV4dHJhcyA9IG9iagotICAgICAgICByZXR1cm4gY2xzKHNvdXJjZV9m
aWxlLAorICAgICAgICByZXR1cm4gY2xzKHRlc3RzX3Jvb3QsCisgICAgICAgICAgICAgICAgICAg
cGF0aCwKKyAgICAgICAgICAgICAgICAgICBtYW5pZmVzdC51cmxfYmFzZSwKICAgICAgICAgICAg
ICAgICAgICB1cmwsCiAgICAgICAgICAgICAgICAgICAgcmVmZXJlbmNlcywKLSAgICAgICAgICAg
ICAgICAgICB1cmxfYmFzZT1tYW5pZmVzdC51cmxfYmFzZSwKLSAgICAgICAgICAgICAgICAgICB0
aW1lb3V0PWV4dHJhcy5nZXQoInRpbWVvdXQiKSwKLSAgICAgICAgICAgICAgICAgICB2aWV3cG9y
dF9zaXplPWV4dHJhcy5nZXQoInZpZXdwb3J0X3NpemUiKSwKLSAgICAgICAgICAgICAgICAgICBk
cGk9ZXh0cmFzLmdldCgiZHBpIiksCi0gICAgICAgICAgICAgICAgICAgbWFuaWZlc3Q9bWFuaWZl
c3QpCisgICAgICAgICAgICAgICAgICAgKipleHRyYXMpCiAKICAgICBkZWYgdG9fUmVmVGVzdChz
ZWxmKToKKyAgICAgICAgIyB0eXBlOiAoKSAtPiBSZWZUZXN0CiAgICAgICAgIGlmIHR5cGUoc2Vs
ZikgPT0gUmVmVGVzdDoKKyAgICAgICAgICAgIGFzc2VydCBpc2luc3RhbmNlKHNlbGYsIFJlZlRl
c3QpCiAgICAgICAgICAgICByZXR1cm4gc2VsZgotICAgICAgICBydiA9IFJlZlRlc3QuX19uZXdf
XyhSZWZUZXN0KQotICAgICAgICBydi5fX2RpY3RfXy51cGRhdGUoc2VsZi5fX2RpY3RfXykKKyAg
ICAgICAgcnYgPSBjb3B5KHNlbGYpCisgICAgICAgIHJ2Ll9fY2xhc3NfXyA9IFJlZlRlc3QKKyAg
ICAgICAgYXNzZXJ0IGlzaW5zdGFuY2UocnYsIFJlZlRlc3QpCiAgICAgICAgIHJldHVybiBydgog
CiAgICAgZGVmIHRvX1JlZlRlc3ROb2RlKHNlbGYpOgorICAgICAgICAjIHR5cGU6ICgpIC0+IFJl
ZlRlc3ROb2RlCiAgICAgICAgIGlmIHR5cGUoc2VsZikgPT0gUmVmVGVzdE5vZGU6CisgICAgICAg
ICAgICBhc3NlcnQgaXNpbnN0YW5jZShzZWxmLCBSZWZUZXN0Tm9kZSkKICAgICAgICAgICAgIHJl
dHVybiBzZWxmCi0gICAgICAgIHJ2ID0gUmVmVGVzdE5vZGUuX19uZXdfXyhSZWZUZXN0Tm9kZSkK
LSAgICAgICAgcnYuX19kaWN0X18udXBkYXRlKHNlbGYuX19kaWN0X18pCisgICAgICAgIHJ2ID0g
Y29weShzZWxmKQorICAgICAgICBydi5fX2NsYXNzX18gPSBSZWZUZXN0Tm9kZQorICAgICAgICBh
c3NlcnQgaXNpbnN0YW5jZShydiwgUmVmVGVzdE5vZGUpCiAgICAgICAgIHJldHVybiBydgogCiAK
LWNsYXNzIFJlZlRlc3QoUmVmVGVzdE5vZGUpOgorY2xhc3MgUmVmVGVzdE5vZGUoUmVmVGVzdEJh
c2UpOgorICAgIF9fc2xvdHNfXyA9ICgpCisKKyAgICBpdGVtX3R5cGUgPSAicmVmdGVzdF9ub2Rl
IgorCisKK2NsYXNzIFJlZlRlc3QoUmVmVGVzdEJhc2UpOgorICAgIF9fc2xvdHNfXyA9ICgpCisK
ICAgICBpdGVtX3R5cGUgPSAicmVmdGVzdCIKIAogCiBjbGFzcyBNYW51YWxUZXN0KFVSTE1hbmlm
ZXN0SXRlbSk6CisgICAgX19zbG90c19fID0gKCkKKwogICAgIGl0ZW1fdHlwZSA9ICJtYW51YWwi
CiAKIAogY2xhc3MgQ29uZm9ybWFuY2VDaGVja2VyVGVzdChVUkxNYW5pZmVzdEl0ZW0pOgorICAg
IF9fc2xvdHNfXyA9ICgpCisKICAgICBpdGVtX3R5cGUgPSAiY29uZm9ybWFuY2VjaGVja2VyIgog
CiAKIGNsYXNzIFZpc3VhbFRlc3QoVVJMTWFuaWZlc3RJdGVtKToKLSAgICBpdGVtX3R5cGUgPSAi
dmlzdWFsIgorICAgIF9fc2xvdHNfXyA9ICgpCiAKKyAgICBpdGVtX3R5cGUgPSAidmlzdWFsIgog
Ci1jbGFzcyBTdHViKFVSTE1hbmlmZXN0SXRlbSk6Ci0gICAgaXRlbV90eXBlID0gInN0dWIiCiAK
K2NsYXNzIFdlYkRyaXZlclNwZWNUZXN0KFVSTE1hbmlmZXN0SXRlbSk6CisgICAgX19zbG90c19f
ID0gKCkKIAotY2xhc3MgV2ViZHJpdmVyU3BlY1Rlc3QoVVJMTWFuaWZlc3RJdGVtKToKICAgICBp
dGVtX3R5cGUgPSAid2RzcGVjIgogCi0gICAgZGVmIF9faW5pdF9fKHNlbGYsIHNvdXJjZV9maWxl
LCB1cmwsIHVybF9iYXNlPSIvIiwgdGltZW91dD1Ob25lLCBtYW5pZmVzdD1Ob25lKToKLSAgICAg
ICAgVVJMTWFuaWZlc3RJdGVtLl9faW5pdF9fKHNlbGYsIHNvdXJjZV9maWxlLCB1cmwsIHVybF9i
YXNlPXVybF9iYXNlLCBtYW5pZmVzdD1tYW5pZmVzdCkKLSAgICAgICAgc2VsZi50aW1lb3V0ID0g
dGltZW91dAorICAgIEBwcm9wZXJ0eQorICAgIGRlZiB0aW1lb3V0KHNlbGYpOgorICAgICAgICAj
IHR5cGU6ICgpIC0+IE9wdGlvbmFsW1RleHRdCisgICAgICAgIHJldHVybiBzZWxmLl9leHRyYXMu
Z2V0KCJ0aW1lb3V0IikKIAogICAgIGRlZiB0b19qc29uKHNlbGYpOgotICAgICAgICBydiA9IFVS
TE1hbmlmZXN0SXRlbS50b19qc29uKHNlbGYpCisgICAgICAgICMgdHlwZTogKCkgLT4gVHVwbGVb
VGV4dCwgRGljdFtUZXh0LCBBbnldXQorICAgICAgICBydiA9IHN1cGVyKFdlYkRyaXZlclNwZWNU
ZXN0LCBzZWxmKS50b19qc29uKCkKICAgICAgICAgaWYgc2VsZi50aW1lb3V0IGlzIG5vdCBOb25l
OgogICAgICAgICAgICAgcnZbLTFdWyJ0aW1lb3V0Il0gPSBzZWxmLnRpbWVvdXQKICAgICAgICAg
cmV0dXJuIHJ2CiAKLSAgICBAY2xhc3NtZXRob2QKLSAgICBkZWYgZnJvbV9qc29uKGNscywgbWFu
aWZlc3QsIHRlc3RzX3Jvb3QsIHBhdGgsIG9iaiwgc291cmNlX2ZpbGVzPU5vbmUpOgotICAgICAg
ICBzb3VyY2VfZmlsZSA9IGdldF9zb3VyY2VfZmlsZShzb3VyY2VfZmlsZXMsIHRlc3RzX3Jvb3Qs
IG1hbmlmZXN0LCBwYXRoKQotCi0gICAgICAgIHVybCwgZXh0cmFzID0gb2JqCi0gICAgICAgIHJl
dHVybiBjbHMoc291cmNlX2ZpbGUsCi0gICAgICAgICAgICAgICAgICAgdXJsLAotICAgICAgICAg
ICAgICAgICAgIHVybF9iYXNlPW1hbmlmZXN0LnVybF9iYXNlLAotICAgICAgICAgICAgICAgICAg
IHRpbWVvdXQ9ZXh0cmFzLmdldCgidGltZW91dCIpLAotICAgICAgICAgICAgICAgICAgIG1hbmlm
ZXN0PW1hbmlmZXN0KQotCiAKIGNsYXNzIFN1cHBvcnRGaWxlKE1hbmlmZXN0SXRlbSk6CisgICAg
X19zbG90c19fID0gKCkKKwogICAgIGl0ZW1fdHlwZSA9ICJzdXBwb3J0IgogCiAgICAgQHByb3Bl
cnR5CiAgICAgZGVmIGlkKHNlbGYpOgotICAgICAgICByZXR1cm4gc2VsZi5zb3VyY2VfZmlsZS5y
ZWxfcGF0aAorICAgICAgICAjIHR5cGU6ICgpIC0+IFRleHQKKyAgICAgICAgcmV0dXJuIHNlbGYu
cGF0aApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy9tYW5pZmVzdC9sb2cucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL21hbmlmZXN0L2xvZy5weQppbmRleCA1NWZmNmU4N2M5ZC4u
OWUyYWQ3NDA4MWUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvbWFuaWZlc3QvbG9nLnB5CisrKyBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvbWFuaWZlc3QvbG9nLnB5CkBAIC00LDYg
KzQsNyBAQCBpbXBvcnQgc3lzCiBsb2dnZXIgPSBsb2dnaW5nLmdldExvZ2dlcigibWFuaWZlc3Qi
KQogCiBkZWYgc2V0dXAoKToKKyAgICAjIHR5cGU6ICgpIC0+IE5vbmUKICAgICBsb2dnZXIuc2V0
TGV2ZWwobG9nZ2luZy5ERUJVRykKICAgICBoYW5kbGVyID0gbG9nZ2luZy5TdHJlYW1IYW5kbGVy
KHN5cy5zdGRvdXQpCiAgICAgZm9ybWF0dGVyID0gbG9nZ2luZy5Gb3JtYXR0ZXIobG9nZ2luZy5C
QVNJQ19GT1JNQVQsIE5vbmUpCkBAIC0xMSw0ICsxMiw1IEBAIGRlZiBzZXR1cCgpOgogICAgIGxv
Z2dlci5hZGRIYW5kbGVyKGhhbmRsZXIpCiAKIGRlZiBnZXRfbG9nZ2VyKCk6CisgICAgIyB0eXBl
OiAoKSAtPiBsb2dnaW5nLkxvZ2dlcgogICAgIHJldHVybiBsb2dnZXIKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvbWFuaWZlc3Qv
bWFuaWZlc3QucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL21hbmlmZXN0L21hbmlmZXN0LnB5CmluZGV4IDQyYThlMWNlYjIzLi42ZmI1OTFiOWMz
MSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy9tYW5pZmVzdC9tYW5pZmVzdC5weQorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL21hbmlmZXN0L21hbmlmZXN0LnB5CkBAIC0xLDE1
ICsxLDQyIEBACiBpbXBvcnQgaXRlcnRvb2xzCiBpbXBvcnQganNvbgogaW1wb3J0IG9zCi1mcm9t
IGNvbGxlY3Rpb25zIGltcG9ydCBkZWZhdWx0ZGljdAotZnJvbSBzaXggaW1wb3J0IGl0ZXJpdGVt
cywgaXRlcnZhbHVlcywgdmlld2tleXMsIHN0cmluZ190eXBlcworZnJvbSBjb2xsZWN0aW9ucyBp
bXBvcnQgTXV0YWJsZU1hcHBpbmcsIGRlZmF1bHRkaWN0Citmcm9tIHNpeCBpbXBvcnQgaXRlcml0
ZW1zLCBpdGVya2V5cywgaXRlcnZhbHVlcywgc3RyaW5nX3R5cGVzLCBiaW5hcnlfdHlwZSwgdGV4
dF90eXBlCiAKLWZyb20gLml0ZW0gaW1wb3J0IE1hbnVhbFRlc3QsIFdlYmRyaXZlclNwZWNUZXN0
LCBTdHViLCBSZWZUZXN0Tm9kZSwgUmVmVGVzdCwgVGVzdGhhcm5lc3NUZXN0LCBTdXBwb3J0Rmls
ZSwgQ29uZm9ybWFuY2VDaGVja2VyVGVzdCwgVmlzdWFsVGVzdAorZnJvbSAuIGltcG9ydCB2Y3MK
K2Zyb20gLml0ZW0gaW1wb3J0IChDb25mb3JtYW5jZUNoZWNrZXJUZXN0LCBNYW5pZmVzdEl0ZW0s
IE1hbnVhbFRlc3QsIFJlZlRlc3QsIFJlZlRlc3ROb2RlLAorICAgICAgICAgICAgICAgICAgIFN1
cHBvcnRGaWxlLCBUZXN0aGFybmVzc1Rlc3QsIFZpc3VhbFRlc3QsIFdlYkRyaXZlclNwZWNUZXN0
KQogZnJvbSAubG9nIGltcG9ydCBnZXRfbG9nZ2VyCitmcm9tIC5zb3VyY2VmaWxlIGltcG9ydCBT
b3VyY2VGaWxlCiBmcm9tIC51dGlscyBpbXBvcnQgZnJvbV9vc19wYXRoLCB0b19vc19wYXRoCiAK
LQotQ1VSUkVOVF9WRVJTSU9OID0gNQorTVlQWSA9IEZhbHNlCitpZiBNWVBZOgorICAgICMgTVlQ
WSBpcyBzZXQgdG8gVHJ1ZSB3aGVuIHJ1biB1bmRlciBNeXB5LgorICAgIGZyb20gbG9nZ2luZyBp
bXBvcnQgTG9nZ2VyCisgICAgZnJvbSB0eXBpbmcgaW1wb3J0IEFueQorICAgIGZyb20gdHlwaW5n
IGltcG9ydCBDb250YWluZXIKKyAgICBmcm9tIHR5cGluZyBpbXBvcnQgRGljdAorICAgIGZyb20g
dHlwaW5nIGltcG9ydCBJTworICAgIGZyb20gdHlwaW5nIGltcG9ydCBJdGVyYWJsZQorICAgIGZy
b20gdHlwaW5nIGltcG9ydCBJdGVyYXRvcgorICAgIGZyb20gdHlwaW5nIGltcG9ydCBMaXN0Cisg
ICAgZnJvbSB0eXBpbmcgaW1wb3J0IE9wdGlvbmFsCisgICAgZnJvbSB0eXBpbmcgaW1wb3J0IFNl
dAorICAgIGZyb20gdHlwaW5nIGltcG9ydCBUZXh0CisgICAgZnJvbSB0eXBpbmcgaW1wb3J0IFR1
cGxlCisgICAgZnJvbSB0eXBpbmcgaW1wb3J0IFR5cGUKKyAgICBmcm9tIHR5cGluZyBpbXBvcnQg
VW5pb24KKyAgICBmcm9tIHR5cGluZyBpbXBvcnQgY2FzdAorCit0cnk6CisgICAgaW1wb3J0IHVq
c29uCisgICAgZmFzdF9qc29uID0gdWpzb24KK2V4Y2VwdCBJbXBvcnRFcnJvcjoKKyAgICBmYXN0
X2pzb24gPSBqc29uICAjIHR5cGU6IGlnbm9yZQorCitDVVJSRU5UX1ZFUlNJT04gPSA2CiAKIAog
Y2xhc3MgTWFuaWZlc3RFcnJvcihFeGNlcHRpb24pOgpAQCAtMjAsMzcgKzQ3LDIzMCBAQCBjbGFz
cyBNYW5pZmVzdFZlcnNpb25NaXNtYXRjaChNYW5pZmVzdEVycm9yKToKICAgICBwYXNzCiAKIAot
ZGVmIGl0ZXJmaWx0ZXIoZmlsdGVycywgaXRlcik6Ci0gICAgZm9yIGYgaW4gZmlsdGVyczoKLSAg
ICAgICAgaXRlciA9IGYoaXRlcikKLSAgICBmb3IgaXRlbSBpbiBpdGVyOgotICAgICAgICB5aWVs
ZCBpdGVtCitpdGVtX2NsYXNzZXMgPSB7InRlc3RoYXJuZXNzIjogVGVzdGhhcm5lc3NUZXN0LAor
ICAgICAgICAgICAgICAgICJyZWZ0ZXN0IjogUmVmVGVzdCwKKyAgICAgICAgICAgICAgICAicmVm
dGVzdF9ub2RlIjogUmVmVGVzdE5vZGUsCisgICAgICAgICAgICAgICAgIm1hbnVhbCI6IE1hbnVh
bFRlc3QsCisgICAgICAgICAgICAgICAgIndkc3BlYyI6IFdlYkRyaXZlclNwZWNUZXN0LAorICAg
ICAgICAgICAgICAgICJjb25mb3JtYW5jZWNoZWNrZXIiOiBDb25mb3JtYW5jZUNoZWNrZXJUZXN0
LAorICAgICAgICAgICAgICAgICJ2aXN1YWwiOiBWaXN1YWxUZXN0LAorICAgICAgICAgICAgICAg
ICJzdXBwb3J0IjogU3VwcG9ydEZpbGV9ICAjIHR5cGU6IERpY3Rbc3RyLCBUeXBlW01hbmlmZXN0
SXRlbV1dCisKKworaWYgTVlQWToKKyAgICBUeXBlRGF0YVR5cGUgPSBNdXRhYmxlTWFwcGluZ1tU
ZXh0LCBTZXRbTWFuaWZlc3RJdGVtXV0KK2Vsc2U6CisgICAgVHlwZURhdGFUeXBlID0gTXV0YWJs
ZU1hcHBpbmcKKworY2xhc3MgVHlwZURhdGEoVHlwZURhdGFUeXBlKToKKyAgICBkZWYgX19pbml0
X18oc2VsZiwgbWFuaWZlc3QsIHR5cGVfY2xzKToKKyAgICAgICAgIyB0eXBlOiAoTWFuaWZlc3Qs
IFR5cGVbTWFuaWZlc3RJdGVtXSkgLT4gTm9uZQorICAgICAgICAiIiJEaWN0LWxpa2Ugb2JqZWN0
IGNvbnRhaW5pbmcgdGhlIFRlc3RJdGVtcyBmb3IgZWFjaCB0ZXN0IHR5cGUuCisKKyAgICAgICAg
TG9hZGluZyBhbiBhY3R1YWwgSXRlbSBjbGFzcyBmb3IgZWFjaCB0ZXN0IGlzIHVubmVjZXNzYXJp
bHkKKyAgICAgICAgc2xvdywgc28gdGhpcyBjbGFzcyBhbGxvd3MgbGF6eS1sb2FkaW5nIG9mIHRo
ZSB0ZXN0CisgICAgICAgIGl0ZW1zLiBXaGVuIHRoZSBtYW5pZmVzdCBpcyBsb2FkZWQgd2Ugc3Rv
cmUgdGhlIHJhdyBqc29uCisgICAgICAgIGNvcnJlc3BvbmRpbmcgdG8gdGhlIHRlc3QgdHlwZSwg
YW5kIG9ubHkgY3JlYXRlIGFuIEl0ZW0KKyAgICAgICAgc3ViY2xhc3Mgd2hlbiB0aGUgdGVzdCBp
cyBhY2Nlc3NlZC4gSW4gb3JkZXIgdG8gcmVtYWluCisgICAgICAgIEFQSS1jb21wYXRpYmxlIHdp
dGggY29uc3VtZXJzIHRoYXQgZGVwZW5kIG9uIGdldHRpbmcgYW4gSXRlbQorICAgICAgICBmcm9t
IGl0ZXJhdGlvbiwgd2UgZG8gZWdlcmx5IGxvYWQgYWxsIGl0ZW1zIHdoZW4gaXRlcmF0aW5nCisg
ICAgICAgIG92ZXIgdGhlIGNsYXNzLiIiIgorICAgICAgICBzZWxmLm1hbmlmZXN0ID0gbWFuaWZl
c3QKKyAgICAgICAgc2VsZi50eXBlX2NscyA9IHR5cGVfY2xzCisgICAgICAgIHNlbGYuanNvbl9k
YXRhID0ge30gICMgdHlwZTogT3B0aW9uYWxbRGljdFtUZXh0LCBMaXN0W0FueV1dXQorICAgICAg
ICBzZWxmLnRlc3RzX3Jvb3QgPSBOb25lICAjIHR5cGU6IE9wdGlvbmFsW3N0cl0KKyAgICAgICAg
c2VsZi5kYXRhID0ge30gICMgdHlwZTogRGljdFtUZXh0LCBTZXRbTWFuaWZlc3RJdGVtXV0KKwor
ICAgIGRlZiBfX2dldGl0ZW1fXyhzZWxmLCBrZXkpOgorICAgICAgICAjIHR5cGU6IChUZXh0KSAt
PiBTZXRbTWFuaWZlc3RJdGVtXQorICAgICAgICBpZiBrZXkgbm90IGluIHNlbGYuZGF0YSBhbmQg
c2VsZi5qc29uX2RhdGEgaXMgbm90IE5vbmU6CisgICAgICAgICAgICBzZWxmLmxvYWQoa2V5KQor
ICAgICAgICByZXR1cm4gc2VsZi5kYXRhW2tleV0KKworICAgIGRlZiBfX25vbnplcm9fXyhzZWxm
KToKKyAgICAgICAgIyB0eXBlOiAoKSAtPiBib29sCisgICAgICAgIHJldHVybiBib29sKHNlbGYu
ZGF0YSkgb3IgYm9vbChzZWxmLmpzb25fZGF0YSkKKworICAgIGRlZiBfX2xlbl9fKHNlbGYpOgor
ICAgICAgICAjIHR5cGU6ICgpIC0+IGludAorICAgICAgICBydiA9IGxlbihzZWxmLmRhdGEpCisg
ICAgICAgIGlmIHNlbGYuanNvbl9kYXRhIGlzIG5vdCBOb25lOgorICAgICAgICAgICAgcnYgKz0g
bGVuKHNlbGYuanNvbl9kYXRhKQorICAgICAgICByZXR1cm4gcnYKKworICAgIGRlZiBfX2RlbGl0
ZW1fXyhzZWxmLCBrZXkpOgorICAgICAgICAjIHR5cGU6IChUZXh0KSAtPiBOb25lCisgICAgICAg
IGlmIGtleSBpbiBzZWxmLmRhdGE6CisgICAgICAgICAgICBkZWwgc2VsZi5kYXRhW2tleV0KKyAg
ICAgICAgZWxpZiBzZWxmLmpzb25fZGF0YSBpcyBub3QgTm9uZToKKyAgICAgICAgICAgIGRlbCBz
ZWxmLmpzb25fZGF0YVtmcm9tX29zX3BhdGgoa2V5KV0KKyAgICAgICAgZWxzZToKKyAgICAgICAg
ICAgIHJhaXNlIEtleUVycm9yCisKKyAgICBkZWYgX19zZXRpdGVtX18oc2VsZiwga2V5LCB2YWx1
ZSk6CisgICAgICAgICMgdHlwZTogKFRleHQsIFNldFtNYW5pZmVzdEl0ZW1dKSAtPiBOb25lCisg
ICAgICAgIGlmIHNlbGYuanNvbl9kYXRhIGlzIG5vdCBOb25lOgorICAgICAgICAgICAgcGF0aCA9
IGZyb21fb3NfcGF0aChrZXkpCisgICAgICAgICAgICBpZiBwYXRoIGluIHNlbGYuanNvbl9kYXRh
OgorICAgICAgICAgICAgICAgIGRlbCBzZWxmLmpzb25fZGF0YVtwYXRoXQorICAgICAgICBzZWxm
LmRhdGFba2V5XSA9IHZhbHVlCisKKyAgICBkZWYgX19jb250YWluc19fKHNlbGYsIGtleSk6Cisg
ICAgICAgICMgdHlwZTogKEFueSkgLT4gYm9vbAorICAgICAgICBzZWxmLmxvYWRfYWxsKCkKKyAg
ICAgICAgcmV0dXJuIGtleSBpbiBzZWxmLmRhdGEKKworICAgIGRlZiBfX2l0ZXJfXyhzZWxmKToK
KyAgICAgICAgIyB0eXBlOiAoKSAtPiBJdGVyYXRvcltUZXh0XQorICAgICAgICBzZWxmLmxvYWRf
YWxsKCkKKyAgICAgICAgcmV0dXJuIHNlbGYuZGF0YS5fX2l0ZXJfXygpCisKKyAgICBkZWYgaXRl
cnZhbHVlcyhzZWxmKToKKyAgICAgICAgIyB0eXBlOiAoKSAtPiBJdGVyYXRvcltTZXRbTWFuaWZl
c3RJdGVtXV0KKyAgICAgICAgc2VsZi5sb2FkX2FsbCgpCisgICAgICAgIHJldHVybiBpdGVydmFs
dWVzKHNlbGYuZGF0YSkKKworICAgIGRlZiBpdGVyaXRlbXMoc2VsZik6CisgICAgICAgICMgdHlw
ZTogKCkgLT4gSXRlcmF0b3JbVHVwbGVbVGV4dCwgU2V0W01hbmlmZXN0SXRlbV1dXQorICAgICAg
ICBzZWxmLmxvYWRfYWxsKCkKKyAgICAgICAgcmV0dXJuIGl0ZXJpdGVtcyhzZWxmLmRhdGEpCisK
KyAgICBkZWYgdmFsdWVzKHNlbGYpOgorICAgICAgICAjIHR5cGU6ICgpIC0+IExpc3RbU2V0W01h
bmlmZXN0SXRlbV1dCisgICAgICAgIHJldHVybiBsaXN0KHNlbGYuaXRlcnZhbHVlcygpKQorCisg
ICAgZGVmIGl0ZW1zKHNlbGYpOgorICAgICAgICAjIHR5cGU6ICgpIC0+IExpc3RbVHVwbGVbVGV4
dCwgU2V0W01hbmlmZXN0SXRlbV1dXQorICAgICAgICByZXR1cm4gbGlzdChzZWxmLml0ZXJpdGVt
cygpKQorCisgICAgZGVmIGxvYWQoc2VsZiwga2V5KToKKyAgICAgICAgIyB0eXBlOiAoVGV4dCkg
LT4gTm9uZQorICAgICAgICAiIiJMb2FkIGEgc3BlY2lmaWMgSXRlbSBnaXZlbiBhIHBhdGgiIiIK
KyAgICAgICAgaWYgc2VsZi5qc29uX2RhdGEgaXMgbm90IE5vbmU6CisgICAgICAgICAgICBkYXRh
ID0gc2V0KCkKKyAgICAgICAgICAgIHBhdGggPSBmcm9tX29zX3BhdGgoa2V5KQorICAgICAgICAg
ICAgZm9yIHRlc3QgaW4gc2VsZi5qc29uX2RhdGEuZ2V0KHBhdGgsIFtdKToKKyAgICAgICAgICAg
ICAgICBtYW5pZmVzdF9pdGVtID0gc2VsZi50eXBlX2Nscy5mcm9tX2pzb24oc2VsZi5tYW5pZmVz
dCwgcGF0aCwgdGVzdCkKKyAgICAgICAgICAgICAgICBkYXRhLmFkZChtYW5pZmVzdF9pdGVtKQor
ICAgICAgICAgICAgdHJ5OgorICAgICAgICAgICAgICAgIGRlbCBzZWxmLmpzb25fZGF0YVtwYXRo
XQorICAgICAgICAgICAgZXhjZXB0IEtleUVycm9yOgorICAgICAgICAgICAgICAgIHBhc3MKKyAg
ICAgICAgICAgIHNlbGYuZGF0YVtrZXldID0gZGF0YQorICAgICAgICBlbHNlOgorICAgICAgICAg
ICAgcmFpc2UgVmFsdWVFcnJvcgorCisgICAgZGVmIGxvYWRfYWxsKHNlbGYpOgorICAgICAgICAj
IHR5cGU6ICgpIC0+IE5vbmUKKyAgICAgICAgIiIiTG9hZCBhbGwgdGVzdCBpdGVtcyBpbiB0aGlz
IGNsYXNzIiIiCisgICAgICAgIGlmIHNlbGYuanNvbl9kYXRhIGlzIG5vdCBOb25lOgorICAgICAg
ICAgICAgZm9yIHBhdGgsIHZhbHVlIGluIGl0ZXJpdGVtcyhzZWxmLmpzb25fZGF0YSk6CisgICAg
ICAgICAgICAgICAga2V5ID0gdG9fb3NfcGF0aChwYXRoKQorICAgICAgICAgICAgICAgIGlmIGtl
eSBpbiBzZWxmLmRhdGE6CisgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlCisgICAgICAgICAg
ICAgICAgZGF0YSA9IHNldCgpCisgICAgICAgICAgICAgICAgZm9yIHRlc3QgaW4gc2VsZi5qc29u
X2RhdGEuZ2V0KHBhdGgsIFtdKToKKyAgICAgICAgICAgICAgICAgICAgbWFuaWZlc3RfaXRlbSA9
IHNlbGYudHlwZV9jbHMuZnJvbV9qc29uKHNlbGYubWFuaWZlc3QsIHBhdGgsIHRlc3QpCisgICAg
ICAgICAgICAgICAgICAgIGRhdGEuYWRkKG1hbmlmZXN0X2l0ZW0pCisgICAgICAgICAgICAgICAg
c2VsZi5kYXRhW2tleV0gPSBkYXRhCisgICAgICAgICAgICBzZWxmLmpzb25fZGF0YSA9IE5vbmUK
KworICAgIGRlZiBzZXRfanNvbihzZWxmLCB0ZXN0c19yb290LCBkYXRhKToKKyAgICAgICAgIyB0
eXBlOiAoc3RyLCBEaWN0W1RleHQsIEFueV0pIC0+IE5vbmUKKyAgICAgICAgaWYgbm90IGlzaW5z
dGFuY2UoZGF0YSwgZGljdCk6CisgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJHb3QgYSAl
cyBleHBlY3RlZCBhIGRpY3QiICUgKHR5cGUoZGF0YSkpKQorICAgICAgICBzZWxmLnRlc3RzX3Jv
b3QgPSB0ZXN0c19yb290CisgICAgICAgIHNlbGYuanNvbl9kYXRhID0gZGF0YQorCisgICAgZGVm
IHRvX2pzb24oc2VsZik6CisgICAgICAgICMgdHlwZTogKCkgLT4gRGljdFtUZXh0LCBBbnldCisg
ICAgICAgIGRhdGEgPSB7CisgICAgICAgICAgICBmcm9tX29zX3BhdGgocGF0aCk6CisgICAgICAg
ICAgICBbdCBmb3IgdCBpbiBzb3J0ZWQodGVzdC50b19qc29uKCkgZm9yIHRlc3QgaW4gdGVzdHMp
XQorICAgICAgICAgICAgZm9yIHBhdGgsIHRlc3RzIGluIGl0ZXJpdGVtcyhzZWxmLmRhdGEpCisg
ICAgICAgIH0KKworICAgICAgICBpZiBzZWxmLmpzb25fZGF0YSBpcyBub3QgTm9uZToKKyAgICAg
ICAgICAgIGlmIG5vdCBkYXRhOgorICAgICAgICAgICAgICAgICMgYXZvaWQgY29weWluZyBpZiB0
aGVyZSdzIG5vdGhpbmcgaGVyZSB5ZXQKKyAgICAgICAgICAgICAgICByZXR1cm4gc2VsZi5qc29u
X2RhdGEKKyAgICAgICAgICAgIGRhdGEudXBkYXRlKHNlbGYuanNvbl9kYXRhKQorCisgICAgICAg
IHJldHVybiBkYXRhCisKKyAgICBkZWYgcGF0aHMoc2VsZik6CisgICAgICAgICMgdHlwZTogKCkg
LT4gU2V0W1RleHRdCisgICAgICAgICIiIkdldCBhIGxpc3Qgb2YgYWxsIHBhdGhzIGNvbnRhaW5p
bmcgaXRlbXMgb2YgdGhpcyB0eXBlLAorICAgICAgICB3aXRob3V0IGFjdHVhbGx5IGNvbnN0cnVj
dGluZyBhbGwgdGhlIGl0ZW1zIiIiCisgICAgICAgIHJ2ID0gc2V0KGl0ZXJrZXlzKHNlbGYuZGF0
YSkpCisgICAgICAgIGlmIHNlbGYuanNvbl9kYXRhOgorICAgICAgICAgICAgcnYgfD0ge3RvX29z
X3BhdGgoaXRlbSkgZm9yIGl0ZW0gaW4gaXRlcmtleXMoc2VsZi5qc29uX2RhdGEpfQorICAgICAg
ICByZXR1cm4gcnYKKworCitpZiBNWVBZOgorICAgIE1hbmlmZXN0RGF0YVR5cGUgPSBEaWN0W0Fu
eSwgVHlwZURhdGFdCitlbHNlOgorICAgIE1hbmlmZXN0RGF0YVR5cGUgPSBkaWN0CisKK2NsYXNz
IE1hbmlmZXN0RGF0YShNYW5pZmVzdERhdGFUeXBlKToKKyAgICBkZWYgX19pbml0X18oc2VsZiwg
bWFuaWZlc3QpOgorICAgICAgICAjIHR5cGU6IChNYW5pZmVzdCkgLT4gTm9uZQorICAgICAgICAi
IiJEaWN0aW9uYXJ5IHN1YmNsYXNzIGNvbnRhaW5pbmcgYSBUeXBlRGF0YSBpbnN0YW5jZSBmb3Ig
ZWFjaCB0ZXN0IHR5cGUsCisgICAgICAgIGtleWVkIGJ5IHR5cGUgbmFtZSIiIgorICAgICAgICBz
ZWxmLmluaXRpYWxpemVkID0gRmFsc2UgICMgdHlwZTogYm9vbAorICAgICAgICBmb3Iga2V5LCB2
YWx1ZSBpbiBpdGVyaXRlbXMoaXRlbV9jbGFzc2VzKToKKyAgICAgICAgICAgIHNlbGZba2V5XSA9
IFR5cGVEYXRhKG1hbmlmZXN0LCB2YWx1ZSkKKyAgICAgICAgc2VsZi5pbml0aWFsaXplZCA9IFRy
dWUKKyAgICAgICAgc2VsZi5qc29uX29iaiA9IE5vbmUgICMgdHlwZTogTm9uZQorCisgICAgZGVm
IF9fc2V0aXRlbV9fKHNlbGYsIGtleSwgdmFsdWUpOgorICAgICAgICAjIHR5cGU6IChzdHIsIFR5
cGVEYXRhKSAtPiBOb25lCisgICAgICAgIGlmIHNlbGYuaW5pdGlhbGl6ZWQ6CisgICAgICAgICAg
ICByYWlzZSBBdHRyaWJ1dGVFcnJvcgorICAgICAgICBkaWN0Ll9fc2V0aXRlbV9fKHNlbGYsIGtl
eSwgdmFsdWUpCisKKyAgICBkZWYgcGF0aHMoc2VsZik6CisgICAgICAgICMgdHlwZTogKCkgLT4g
U2V0W1RleHRdCisgICAgICAgICIiIkdldCBhIGxpc3Qgb2YgYWxsIHBhdGhzIGNvbnRhaW5pbmcg
dGVzdCBpdGVtcworICAgICAgICB3aXRob3V0IGFjdHVhbGx5IGNvbnN0cnVjdGluZyBhbGwgdGhl
IGl0ZW1zIiIiCisgICAgICAgIHJ2ID0gc2V0KCkgICMgdHlwZTogU2V0W1RleHRdCisgICAgICAg
IGZvciBpdGVtX2RhdGEgaW4gaXRlcnZhbHVlcyhzZWxmKToKKyAgICAgICAgICAgIHJ2IHw9IHNl
dChpdGVtX2RhdGEucGF0aHMoKSkKKyAgICAgICAgcmV0dXJuIHJ2CiAKIAogY2xhc3MgTWFuaWZl
c3Qob2JqZWN0KToKLSAgICBkZWYgX19pbml0X18oc2VsZiwgdXJsX2Jhc2U9Ii8iKToKKyAgICBk
ZWYgX19pbml0X18oc2VsZiwgdGVzdHNfcm9vdD1Ob25lLCB1cmxfYmFzZT0iLyIpOgorICAgICAg
ICAjIHR5cGU6IChPcHRpb25hbFtzdHJdLCBUZXh0KSAtPiBOb25lCiAgICAgICAgIGFzc2VydCB1
cmxfYmFzZSBpcyBub3QgTm9uZQotICAgICAgICBzZWxmLl9wYXRoX2hhc2ggPSB7fQotICAgICAg
ICBzZWxmLl9kYXRhID0gZGVmYXVsdGRpY3QoZGljdCkKLSAgICAgICAgc2VsZi5fcmVmdGVzdF9u
b2Rlc19ieV91cmwgPSBOb25lCi0gICAgICAgIHNlbGYudXJsX2Jhc2UgPSB1cmxfYmFzZQorICAg
ICAgICBzZWxmLl9wYXRoX2hhc2ggPSB7fSAgIyB0eXBlOiBEaWN0W1RleHQsIFR1cGxlW1RleHQs
IFRleHRdXQorICAgICAgICBzZWxmLl9kYXRhID0gTWFuaWZlc3REYXRhKHNlbGYpICAjIHR5cGU6
IE1hbmlmZXN0RGF0YQorICAgICAgICBzZWxmLl9yZWZ0ZXN0X25vZGVzX2J5X3VybCA9IE5vbmUg
ICMgdHlwZTogT3B0aW9uYWxbRGljdFtUZXh0LCBVbmlvbltSZWZUZXN0LCBSZWZUZXN0Tm9kZV1d
XQorICAgICAgICBzZWxmLnRlc3RzX3Jvb3QgPSB0ZXN0c19yb290ICAjIHR5cGU6IE9wdGlvbmFs
W3N0cl0KKyAgICAgICAgc2VsZi51cmxfYmFzZSA9IHVybF9iYXNlICAjIHR5cGU6IFRleHQKIAog
ICAgIGRlZiBfX2l0ZXJfXyhzZWxmKToKKyAgICAgICAgIyB0eXBlOiAoKSAtPiBJdGVyYXRvcltU
dXBsZVtzdHIsIFRleHQsIFNldFtNYW5pZmVzdEl0ZW1dXV0KICAgICAgICAgcmV0dXJuIHNlbGYu
aXRlcnR5cGVzKCkKIAogICAgIGRlZiBpdGVydHlwZXMoc2VsZiwgKnR5cGVzKToKLSAgICAgICAg
aWYgbm90IHR5cGVzOgotICAgICAgICAgICAgdHlwZXMgPSBzb3J0ZWQoc2VsZi5fZGF0YS5rZXlz
KCkpCi0gICAgICAgIGZvciBpdGVtX3R5cGUgaW4gdHlwZXM6Ci0gICAgICAgICAgICBmb3IgcGF0
aCwgdGVzdHMgaW4gc29ydGVkKGl0ZXJpdGVtcyhzZWxmLl9kYXRhW2l0ZW1fdHlwZV0pKToKKyAg
ICAgICAgIyB0eXBlOiAoKnN0cikgLT4gSXRlcmF0b3JbVHVwbGVbc3RyLCBUZXh0LCBTZXRbTWFu
aWZlc3RJdGVtXV1dCisgICAgICAgIGZvciBpdGVtX3R5cGUgaW4gKHR5cGVzIG9yIHNvcnRlZChz
ZWxmLl9kYXRhLmtleXMoKSkpOgorICAgICAgICAgICAgZm9yIHBhdGggaW4gc29ydGVkKHNlbGYu
X2RhdGFbaXRlbV90eXBlXSk6CisgICAgICAgICAgICAgICAgdGVzdHMgPSBzZWxmLl9kYXRhW2l0
ZW1fdHlwZV1bcGF0aF0KICAgICAgICAgICAgICAgICB5aWVsZCBpdGVtX3R5cGUsIHBhdGgsIHRl
c3RzCiAKICAgICBkZWYgaXRlcnBhdGgoc2VsZiwgcGF0aCk6CisgICAgICAgICMgdHlwZTogKFRl
eHQpIC0+IEl0ZXJhdG9yW01hbmlmZXN0SXRlbV0KICAgICAgICAgZm9yIHR5cGVfdGVzdHMgaW4g
c2VsZi5fZGF0YS52YWx1ZXMoKToKLSAgICAgICAgICAgIGZvciB0ZXN0IGluIHR5cGVfdGVzdHMu
Z2V0KHBhdGgsIHNldCgpKToKKyAgICAgICAgICAgIGkgPSB0eXBlX3Rlc3RzLmdldChwYXRoLCBz
ZXQoKSkKKyAgICAgICAgICAgIGFzc2VydCBpIGlzIG5vdCBOb25lCisgICAgICAgICAgICBmb3Ig
dGVzdCBpbiBpOgogICAgICAgICAgICAgICAgIHlpZWxkIHRlc3QKIAogICAgIGRlZiBpdGVyZGly
KHNlbGYsIGRpcl9uYW1lKToKKyAgICAgICAgIyB0eXBlOiAoVGV4dCkgLT4gSXRlcmF0b3JbTWFu
aWZlc3RJdGVtXQogICAgICAgICBpZiBub3QgZGlyX25hbWUuZW5kc3dpdGgob3MucGF0aC5zZXAp
OgogICAgICAgICAgICAgZGlyX25hbWUgPSBkaXJfbmFtZSArIG9zLnBhdGguc2VwCiAgICAgICAg
IGZvciB0eXBlX3Rlc3RzIGluIHNlbGYuX2RhdGEudmFsdWVzKCk6CkBAIC02MSwxOTYgKzI4MSwz
MTYgQEAgY2xhc3MgTWFuaWZlc3Qob2JqZWN0KToKIAogICAgIEBwcm9wZXJ0eQogICAgIGRlZiBy
ZWZ0ZXN0X25vZGVzX2J5X3VybChzZWxmKToKKyAgICAgICAgIyB0eXBlOiAoKSAtPiBEaWN0W1Rl
eHQsIFVuaW9uW1JlZlRlc3QsIFJlZlRlc3ROb2RlXV0KICAgICAgICAgaWYgc2VsZi5fcmVmdGVz
dF9ub2Rlc19ieV91cmwgaXMgTm9uZToKICAgICAgICAgICAgIGJ5X3VybCA9IHt9Ci0gICAgICAg
ICAgICBmb3IgcGF0aCwgbm9kZXMgaW4gaXRlcnRvb2xzLmNoYWluKGl0ZXJpdGVtcyhzZWxmLl9k
YXRhLmdldCgicmVmdGVzdCIsIHt9KSksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGl0ZXJpdGVtcyhzZWxmLl9kYXRhLmdldCgicmVmdGVzdF9ub2RlIiwg
e30pKSk6CisgICAgICAgICAgICBmb3IgcGF0aCwgbm9kZXMgaW4gaXRlcnRvb2xzLmNoYWluKGl0
ZXJpdGVtcyhzZWxmLl9kYXRhWyJyZWZ0ZXN0Il0pLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBpdGVyaXRlbXMoc2VsZi5fZGF0YVsicmVmdGVzdF9ub2Rl
Il0pKToKICAgICAgICAgICAgICAgICBmb3Igbm9kZSBpbiBub2RlczoKKyAgICAgICAgICAgICAg
ICAgICAgYXNzZXJ0IGlzaW5zdGFuY2Uobm9kZSwgKFJlZlRlc3QsIFJlZlRlc3ROb2RlKSkKICAg
ICAgICAgICAgICAgICAgICAgYnlfdXJsW25vZGUudXJsXSA9IG5vZGUKICAgICAgICAgICAgIHNl
bGYuX3JlZnRlc3Rfbm9kZXNfYnlfdXJsID0gYnlfdXJsCiAgICAgICAgIHJldHVybiBzZWxmLl9y
ZWZ0ZXN0X25vZGVzX2J5X3VybAogCiAgICAgZGVmIGdldF9yZWZlcmVuY2Uoc2VsZiwgdXJsKToK
KyAgICAgICAgIyB0eXBlOiAoVGV4dCkgLT4gT3B0aW9uYWxbTWFuaWZlc3RJdGVtXQogICAgICAg
ICByZXR1cm4gc2VsZi5yZWZ0ZXN0X25vZGVzX2J5X3VybC5nZXQodXJsKQogCiAgICAgZGVmIHVw
ZGF0ZShzZWxmLCB0cmVlKToKLSAgICAgICAgbmV3X2RhdGEgPSBkZWZhdWx0ZGljdChkaWN0KQot
ICAgICAgICBuZXdfaGFzaGVzID0ge30KKyAgICAgICAgIyB0eXBlOiAoSXRlcmFibGVbVHVwbGVb
VW5pb25bU291cmNlRmlsZSwgYnl0ZXNdLCBib29sXV0pIC0+IGJvb2wKKyAgICAgICAgIiIiVXBk
YXRlIHRoZSBtYW5pZmVzdCBnaXZlbiBhbiBpdGVyYWJsZSBvZiBpdGVtcyB0aGF0IG1ha2UgdXAg
dGhlIHVwZGF0ZWQgbWFuaWZlc3QuCiAKLSAgICAgICAgcmVmdGVzdF9ub2RlcyA9IFtdCi0gICAg
ICAgIG9sZF9maWxlcyA9IGRlZmF1bHRkaWN0KHNldCwge2s6IHNldCh2aWV3a2V5cyh2KSkgZm9y
IGssIHYgaW4gaXRlcml0ZW1zKHNlbGYuX2RhdGEpfSkKKyAgICAgICAgVGhlIGl0ZXJhYmxlIG11
c3QgZWl0aGVyIGdlbmVyYXRlIHR1cGxlcyBvZiB0aGUgZm9ybSAoU291cmNlRmlsZSwgVHJ1ZSkg
Zm9yIHBhdGhzCisgICAgICAgIHRoYXQgYXJlIHRvIGJlIHVwZGF0ZWQsIG9yIChwYXRoLCBGYWxz
ZSkgZm9yIGl0ZW1zIHRoYXQgYXJlIG5vdCB0byBiZSB1cGRhdGVkLiBUaGlzCisgICAgICAgIHVu
dXN1YWwgQVBJIGlzIGRlc2lnbmVkIGFzIGFuIG9wdGltaXN0YWlvbiBtZWFuaW5nIHRoYXQgU291
cmNlRmlsZSBpdGVtcyBuZWVkIG5vdCBiZQorICAgICAgICBjb25zdHJ1Y3RlZCBpbiB0aGUgY2Fz
ZSB3ZSBhcmUgbm90IHVwZGF0aW5nIGEgcGF0aCwgYnV0IHRoZSBhYnNlbmNlIG9mIGFuIGl0ZW0g
ZnJvbQorICAgICAgICB0aGUgaXRlcmF0b3IgbWF5IGJlIHVzZWQgdG8gcmVtb3ZlIGRlZnVuY3Qg
ZW50cmllcyBmcm9tIHRoZSBtYW5pZmVzdC4iIiIKKyAgICAgICAgYWxsX3JlZnRlc3Rfbm9kZXMg
PSBbXSAgIyB0eXBlOiBMaXN0W1R1cGxlW01hbmlmZXN0SXRlbSwgVGV4dF1dCisgICAgICAgIHNl
ZW5fZmlsZXMgPSBzZXQoKSAgIyB0eXBlOiBTZXRbVGV4dF0KIAogICAgICAgICBjaGFuZ2VkID0g
RmFsc2UKICAgICAgICAgcmVmdGVzdF9jaGFuZ2VzID0gRmFsc2UKIAotICAgICAgICBmb3Igc291
cmNlX2ZpbGUgaW4gdHJlZToKLSAgICAgICAgICAgIHJlbF9wYXRoID0gc291cmNlX2ZpbGUucmVs
X3BhdGgKLSAgICAgICAgICAgIGZpbGVfaGFzaCA9IHNvdXJjZV9maWxlLmhhc2gKLQotICAgICAg
ICAgICAgaXNfbmV3ID0gcmVsX3BhdGggbm90IGluIHNlbGYuX3BhdGhfaGFzaAotICAgICAgICAg
ICAgaGFzaF9jaGFuZ2VkID0gRmFsc2UKLQotICAgICAgICAgICAgaWYgbm90IGlzX25ldzoKLSAg
ICAgICAgICAgICAgICBvbGRfaGFzaCwgb2xkX3R5cGUgPSBzZWxmLl9wYXRoX2hhc2hbcmVsX3Bh
dGhdCi0gICAgICAgICAgICAgICAgb2xkX2ZpbGVzW29sZF90eXBlXS5yZW1vdmUocmVsX3BhdGgp
Ci0gICAgICAgICAgICAgICAgaWYgb2xkX2hhc2ggIT0gZmlsZV9oYXNoOgotICAgICAgICAgICAg
ICAgICAgICBuZXdfdHlwZSwgbWFuaWZlc3RfaXRlbXMgPSBzb3VyY2VfZmlsZS5tYW5pZmVzdF9p
dGVtcygpCi0gICAgICAgICAgICAgICAgICAgIGhhc2hfY2hhbmdlZCA9IFRydWUKLSAgICAgICAg
ICAgICAgICBlbHNlOgotICAgICAgICAgICAgICAgICAgICBuZXdfdHlwZSwgbWFuaWZlc3RfaXRl
bXMgPSBvbGRfdHlwZSwgc2VsZi5fZGF0YVtvbGRfdHlwZV1bcmVsX3BhdGhdCi0gICAgICAgICAg
ICAgICAgaWYgb2xkX3R5cGUgaW4gKCJyZWZ0ZXN0IiwgInJlZnRlc3Rfbm9kZSIpIGFuZCBuZXdf
dHlwZSAhPSBvbGRfdHlwZToKLSAgICAgICAgICAgICAgICAgICAgcmVmdGVzdF9jaGFuZ2VzID0g
VHJ1ZQorICAgICAgICAjIENyZWF0ZSBsb2NhbCB2YXJpYWJsZSByZWZlcmVuY2VzIHRvIHRoZXNl
IGRpY3RzIHNvIHdlIGF2b2lkIHRoZQorICAgICAgICAjIGF0dHJpYnV0ZSBhY2Nlc3MgaW4gdGhl
IGhvdCBsb29wIGJlbG93CisgICAgICAgIHBhdGhfaGFzaCA9IHNlbGYuX3BhdGhfaGFzaCAgIyB0
eXBlOiBEaWN0W1RleHQsIFR1cGxlW1RleHQsIFRleHRdXQorICAgICAgICBkYXRhID0gc2VsZi5f
ZGF0YQorCisgICAgICAgIHByZXZfZmlsZXMgPSBkYXRhLnBhdGhzKCkgICMgdHlwZTogU2V0W1Rl
eHRdCisKKyAgICAgICAgcmVmdGVzdF90eXBlcyA9ICgicmVmdGVzdCIsICJyZWZ0ZXN0X25vZGUi
KQorCisgICAgICAgIGZvciBzb3VyY2VfZmlsZSwgdXBkYXRlIGluIHRyZWU6CisgICAgICAgICAg
ICBpZiBub3QgdXBkYXRlOgorICAgICAgICAgICAgICAgIGFzc2VydCBpc2luc3RhbmNlKHNvdXJj
ZV9maWxlLCAoYmluYXJ5X3R5cGUsIHRleHRfdHlwZSkpCisgICAgICAgICAgICAgICAgcmVsX3Bh
dGggPSBzb3VyY2VfZmlsZSAgIyB0eXBlOiBUZXh0CisgICAgICAgICAgICAgICAgc2Vlbl9maWxl
cy5hZGQocmVsX3BhdGgpCisgICAgICAgICAgICAgICAgYXNzZXJ0IHJlbF9wYXRoIGluIHBhdGhf
aGFzaAorICAgICAgICAgICAgICAgIG9sZF9oYXNoLCBvbGRfdHlwZSA9IHBhdGhfaGFzaFtyZWxf
cGF0aF0gICMgdHlwZTogVHVwbGVbVGV4dCwgVGV4dF0KKyAgICAgICAgICAgICAgICBpZiBvbGRf
dHlwZSBpbiByZWZ0ZXN0X3R5cGVzOgorICAgICAgICAgICAgICAgICAgICBtYW5pZmVzdF9pdGVt
cyA9IGRhdGFbb2xkX3R5cGVdW3JlbF9wYXRoXSAgIyB0eXBlOiBJdGVyYWJsZVtNYW5pZmVzdEl0
ZW1dCisgICAgICAgICAgICAgICAgICAgIGFsbF9yZWZ0ZXN0X25vZGVzLmV4dGVuZCgoaXRlbSwg
b2xkX2hhc2gpIGZvciBpdGVtIGluIG1hbmlmZXN0X2l0ZW1zKQogICAgICAgICAgICAgZWxzZToK
LSAgICAgICAgICAgICAgICBuZXdfdHlwZSwgbWFuaWZlc3RfaXRlbXMgPSBzb3VyY2VfZmlsZS5t
YW5pZmVzdF9pdGVtcygpCi0KLSAgICAgICAgICAgIGlmIG5ld190eXBlIGluICgicmVmdGVzdCIs
ICJyZWZ0ZXN0X25vZGUiKToKLSAgICAgICAgICAgICAgICByZWZ0ZXN0X25vZGVzLmV4dGVuZCht
YW5pZmVzdF9pdGVtcykKLSAgICAgICAgICAgICAgICBpZiBpc19uZXcgb3IgaGFzaF9jaGFuZ2Vk
OgotICAgICAgICAgICAgICAgICAgICByZWZ0ZXN0X2NoYW5nZXMgPSBUcnVlCi0gICAgICAgICAg
ICBlbGlmIG5ld190eXBlOgotICAgICAgICAgICAgICAgIG5ld19kYXRhW25ld190eXBlXVtyZWxf
cGF0aF0gPSBzZXQobWFuaWZlc3RfaXRlbXMpCi0KLSAgICAgICAgICAgIG5ld19oYXNoZXNbcmVs
X3BhdGhdID0gKGZpbGVfaGFzaCwgbmV3X3R5cGUpCisgICAgICAgICAgICAgICAgYXNzZXJ0IG5v
dCBpc2luc3RhbmNlKHNvdXJjZV9maWxlLCBieXRlcykKKyAgICAgICAgICAgICAgICByZWxfcGF0
aCA9IHNvdXJjZV9maWxlLnJlbF9wYXRoCisgICAgICAgICAgICAgICAgc2Vlbl9maWxlcy5hZGQo
cmVsX3BhdGgpCisKKyAgICAgICAgICAgICAgICBmaWxlX2hhc2ggPSBzb3VyY2VfZmlsZS5oYXNo
ICAjIHR5cGU6IFRleHQKKworICAgICAgICAgICAgICAgIGlzX25ldyA9IHJlbF9wYXRoIG5vdCBp
biBwYXRoX2hhc2ggICMgdHlwZTogYm9vbAorICAgICAgICAgICAgICAgIGhhc2hfY2hhbmdlZCA9
IEZhbHNlICAjIHR5cGU6IGJvb2wKKworICAgICAgICAgICAgICAgIGlmIG5vdCBpc19uZXc6Cisg
ICAgICAgICAgICAgICAgICAgIG9sZF9oYXNoLCBvbGRfdHlwZSA9IHBhdGhfaGFzaFtyZWxfcGF0
aF0KKyAgICAgICAgICAgICAgICAgICAgaWYgb2xkX2hhc2ggIT0gZmlsZV9oYXNoOgorICAgICAg
ICAgICAgICAgICAgICAgICAgbmV3X3R5cGUsIG1hbmlmZXN0X2l0ZW1zID0gc291cmNlX2ZpbGUu
bWFuaWZlc3RfaXRlbXMoKQorICAgICAgICAgICAgICAgICAgICAgICAgaGFzaF9jaGFuZ2VkID0g
VHJ1ZQorICAgICAgICAgICAgICAgICAgICAgICAgaWYgbmV3X3R5cGUgIT0gb2xkX3R5cGU6Cisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVsIGRhdGFbb2xkX3R5cGVdW3JlbF9wYXRoXQor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIG9sZF90eXBlIGluIHJlZnRlc3RfdHlwZXM6
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlZnRlc3RfY2hhbmdlcyA9IFRydWUK
KyAgICAgICAgICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICAgICAgICAgIG5ld190
eXBlID0gb2xkX3R5cGUKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIG9sZF90eXBlIGluIHJl
ZnRlc3RfdHlwZXM6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFuaWZlc3RfaXRlbXMg
PSBkYXRhW29sZF90eXBlXVtyZWxfcGF0aF0KKyAgICAgICAgICAgICAgICBlbHNlOgorICAgICAg
ICAgICAgICAgICAgICBuZXdfdHlwZSwgbWFuaWZlc3RfaXRlbXMgPSBzb3VyY2VfZmlsZS5tYW5p
ZmVzdF9pdGVtcygpCiAKLSAgICAgICAgICAgIGlmIGlzX25ldyBvciBoYXNoX2NoYW5nZWQ6Ci0g
ICAgICAgICAgICAgICAgY2hhbmdlZCA9IFRydWUKKyAgICAgICAgICAgICAgICBpZiBuZXdfdHlw
ZSBpbiByZWZ0ZXN0X3R5cGVzOgorICAgICAgICAgICAgICAgICAgICBhbGxfcmVmdGVzdF9ub2Rl
cy5leHRlbmQoKGl0ZW0sIGZpbGVfaGFzaCkgZm9yIGl0ZW0gaW4gbWFuaWZlc3RfaXRlbXMpCisg
ICAgICAgICAgICAgICAgICAgIGlmIGlzX25ldyBvciBoYXNoX2NoYW5nZWQ6CisgICAgICAgICAg
ICAgICAgICAgICAgICByZWZ0ZXN0X2NoYW5nZXMgPSBUcnVlCisgICAgICAgICAgICAgICAgZWxp
ZiBpc19uZXcgb3IgaGFzaF9jaGFuZ2VkOgorICAgICAgICAgICAgICAgICAgICBkYXRhW25ld190
eXBlXVtyZWxfcGF0aF0gPSBzZXQobWFuaWZlc3RfaXRlbXMpCiAKLSAgICAgICAgaWYgcmVmdGVz
dF9jaGFuZ2VzIG9yIG9sZF9maWxlc1sicmVmdGVzdCJdIG9yIG9sZF9maWxlc1sicmVmdGVzdF9u
b2RlIl06Ci0gICAgICAgICAgICByZWZ0ZXN0cywgcmVmdGVzdF9ub2RlcywgY2hhbmdlZF9oYXNo
ZXMgPSBzZWxmLl9jb21wdXRlX3JlZnRlc3RzKHJlZnRlc3Rfbm9kZXMpCi0gICAgICAgICAgICBu
ZXdfZGF0YVsicmVmdGVzdCJdID0gcmVmdGVzdHMKLSAgICAgICAgICAgIG5ld19kYXRhWyJyZWZ0
ZXN0X25vZGUiXSA9IHJlZnRlc3Rfbm9kZXMKLSAgICAgICAgICAgIG5ld19oYXNoZXMudXBkYXRl
KGNoYW5nZWRfaGFzaGVzKQotICAgICAgICBlbHNlOgotICAgICAgICAgICAgbmV3X2RhdGFbInJl
ZnRlc3QiXSA9IHNlbGYuX2RhdGFbInJlZnRlc3QiXQotICAgICAgICAgICAgbmV3X2RhdGFbInJl
ZnRlc3Rfbm9kZSJdID0gc2VsZi5fZGF0YVsicmVmdGVzdF9ub2RlIl0KKyAgICAgICAgICAgICAg
ICBpZiBpc19uZXcgb3IgaGFzaF9jaGFuZ2VkOgorICAgICAgICAgICAgICAgICAgICBwYXRoX2hh
c2hbcmVsX3BhdGhdID0gKGZpbGVfaGFzaCwgbmV3X3R5cGUpCisgICAgICAgICAgICAgICAgICAg
IGNoYW5nZWQgPSBUcnVlCiAKLSAgICAgICAgaWYgYW55KGl0ZXJ2YWx1ZXMob2xkX2ZpbGVzKSk6
CisgICAgICAgIGRlbGV0ZWQgPSBwcmV2X2ZpbGVzIC0gc2Vlbl9maWxlcworICAgICAgICBpZiBk
ZWxldGVkOgogICAgICAgICAgICAgY2hhbmdlZCA9IFRydWUKKyAgICAgICAgICAgIGZvciByZWxf
cGF0aCBpbiBkZWxldGVkOgorICAgICAgICAgICAgICAgIGlmIHJlbF9wYXRoIGluIHBhdGhfaGFz
aDoKKyAgICAgICAgICAgICAgICAgICAgXywgb2xkX3R5cGUgPSBwYXRoX2hhc2hbcmVsX3BhdGhd
CisgICAgICAgICAgICAgICAgICAgIGlmIG9sZF90eXBlIGluIHJlZnRlc3RfdHlwZXM6CisgICAg
ICAgICAgICAgICAgICAgICAgICByZWZ0ZXN0X2NoYW5nZXMgPSBUcnVlCisgICAgICAgICAgICAg
ICAgICAgIGRlbCBwYXRoX2hhc2hbcmVsX3BhdGhdCisgICAgICAgICAgICAgICAgICAgIHRyeToK
KyAgICAgICAgICAgICAgICAgICAgICAgIGRlbCBkYXRhW29sZF90eXBlXVtyZWxfcGF0aF0KKyAg
ICAgICAgICAgICAgICAgICAgZXhjZXB0IEtleUVycm9yOgorICAgICAgICAgICAgICAgICAgICAg
ICAgcGFzcworICAgICAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgICAgIGZvciB0
ZXN0X2RhdGEgaW4gaXRlcnZhbHVlcyhkYXRhKToKKyAgICAgICAgICAgICAgICAgICAgICAgIGlm
IHJlbF9wYXRoIGluIHRlc3RfZGF0YToKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWwg
dGVzdF9kYXRhW3JlbF9wYXRoXQorCisgICAgICAgIGlmIHJlZnRlc3RfY2hhbmdlczoKKyAgICAg
ICAgICAgIHJlZnRlc3RzLCByZWZ0ZXN0X25vZGVzLCBjaGFuZ2VkX2hhc2hlcyA9IHNlbGYuX2Nv
bXB1dGVfcmVmdGVzdHMoYWxsX3JlZnRlc3Rfbm9kZXMpCisgICAgICAgICAgICByZWZ0ZXN0X2Rh
dGEgPSBkYXRhWyJyZWZ0ZXN0Il0KKyAgICAgICAgICAgIHJlZnRlc3RfZGF0YS5jbGVhcigpCisg
ICAgICAgICAgICBmb3IgcGF0aCwgaXRlbXMgaW4gaXRlcml0ZW1zKHJlZnRlc3RzKToKKyAgICAg
ICAgICAgICAgICBpZiBNWVBZOgorICAgICAgICAgICAgICAgICAgICByZWZ0ZXN0X2RhdGFbcGF0
aF0gPSBjYXN0KFNldFtNYW5pZmVzdEl0ZW1dLCBpdGVtcykKKyAgICAgICAgICAgICAgICBlbHNl
OgorICAgICAgICAgICAgICAgICAgICByZWZ0ZXN0X2RhdGFbcGF0aF0gPSBpdGVtcworCisgICAg
ICAgICAgICByZWZ0ZXN0X25vZGVfZGF0YSA9IGRhdGFbInJlZnRlc3Rfbm9kZSJdCisgICAgICAg
ICAgICByZWZ0ZXN0X25vZGVfZGF0YS5jbGVhcigpCisgICAgICAgICAgICBmb3Igbm9kZV9wYXRo
LCBub2RlX2l0ZW1zIGluIGl0ZXJpdGVtcyhyZWZ0ZXN0X25vZGVzKToKKyAgICAgICAgICAgICAg
ICBpZiBNWVBZOgorICAgICAgICAgICAgICAgICAgICByZWZ0ZXN0X25vZGVfZGF0YVtub2RlX3Bh
dGhdID0gY2FzdChTZXRbTWFuaWZlc3RJdGVtXSwgbm9kZV9pdGVtcykKKyAgICAgICAgICAgICAg
ICBlbHNlOgorICAgICAgICAgICAgICAgICAgICByZWZ0ZXN0X25vZGVfZGF0YVtub2RlX3BhdGhd
ID0gbm9kZV9pdGVtcwogCi0gICAgICAgIHNlbGYuX2RhdGEgPSBuZXdfZGF0YQotICAgICAgICBz
ZWxmLl9wYXRoX2hhc2ggPSBuZXdfaGFzaGVzCisgICAgICAgICAgICBwYXRoX2hhc2gudXBkYXRl
KGNoYW5nZWRfaGFzaGVzKQogCiAgICAgICAgIHJldHVybiBjaGFuZ2VkCiAKLSAgICBkZWYgX2Nv
bXB1dGVfcmVmdGVzdHMoc2VsZiwgcmVmdGVzdF9ub2Rlcyk6CisgICAgZGVmIF9jb21wdXRlX3Jl
ZnRlc3RzKHNlbGYsCisgICAgICAgICAgICAgICAgICAgICAgICAgIHJlZnRlc3Rfbm9kZXMgICMg
dHlwZTogTGlzdFtUdXBsZVtNYW5pZmVzdEl0ZW0sIFRleHRdXQorICAgICAgICAgICAgICAgICAg
ICAgICAgICApOgorICAgICAgICAjIHR5cGU6ICguLi4pIC0+IFR1cGxlW0RpY3RbVGV4dCwgU2V0
W1JlZlRlc3RdXSwgRGljdFtUZXh0LCBTZXRbUmVmVGVzdE5vZGVdXSwgRGljdFtUZXh0LCBUdXBs
ZVtUZXh0LCBUZXh0XV1dCiAgICAgICAgIHNlbGYuX3JlZnRlc3Rfbm9kZXNfYnlfdXJsID0ge30K
ICAgICAgICAgaGFzX2luYm91bmQgPSBzZXQoKQotICAgICAgICBmb3IgaXRlbSBpbiByZWZ0ZXN0
X25vZGVzOgorICAgICAgICBmb3IgaXRlbSwgXyBpbiByZWZ0ZXN0X25vZGVzOgorICAgICAgICAg
ICAgYXNzZXJ0IGlzaW5zdGFuY2UoaXRlbSwgKFJlZlRlc3ROb2RlLCBSZWZUZXN0KSkKICAgICAg
ICAgICAgIGZvciByZWZfdXJsLCByZWZfdHlwZSBpbiBpdGVtLnJlZmVyZW5jZXM6CiAgICAgICAg
ICAgICAgICAgaGFzX2luYm91bmQuYWRkKHJlZl91cmwpCiAKLSAgICAgICAgcmVmdGVzdHMgPSBk
ZWZhdWx0ZGljdChzZXQpCi0gICAgICAgIHJlZmVyZW5jZXMgPSBkZWZhdWx0ZGljdChzZXQpCi0g
ICAgICAgIGNoYW5nZWRfaGFzaGVzID0ge30KKyAgICAgICAgcmVmdGVzdHMgPSBkZWZhdWx0ZGlj
dChzZXQpICAjIHR5cGU6IERpY3RbVGV4dCwgU2V0W1JlZlRlc3RdXQorICAgICAgICByZWZlcmVu
Y2VzID0gZGVmYXVsdGRpY3Qoc2V0KSAgIyB0eXBlOiBEaWN0W1RleHQsIFNldFtSZWZUZXN0Tm9k
ZV1dCisgICAgICAgIGNoYW5nZWRfaGFzaGVzID0ge30gICMgdHlwZTogRGljdFtUZXh0LCBUdXBs
ZVtUZXh0LCBUZXh0XV0KIAotICAgICAgICBmb3IgaXRlbSBpbiByZWZ0ZXN0X25vZGVzOgorICAg
ICAgICBmb3IgaXRlbSwgZmlsZV9oYXNoIGluIHJlZnRlc3Rfbm9kZXM6CisgICAgICAgICAgICBh
c3NlcnQgaXNpbnN0YW5jZShpdGVtLCAoUmVmVGVzdE5vZGUsIFJlZlRlc3QpKQogICAgICAgICAg
ICAgaWYgaXRlbS51cmwgaW4gaGFzX2luYm91bmQ6CiAgICAgICAgICAgICAgICAgIyBUaGlzIGlz
IGEgcmVmZXJlbmNlCiAgICAgICAgICAgICAgICAgaWYgaXNpbnN0YW5jZShpdGVtLCBSZWZUZXN0
KToKICAgICAgICAgICAgICAgICAgICAgaXRlbSA9IGl0ZW0udG9fUmVmVGVzdE5vZGUoKQotICAg
ICAgICAgICAgICAgICAgICBjaGFuZ2VkX2hhc2hlc1tpdGVtLnNvdXJjZV9maWxlLnJlbF9wYXRo
XSA9IChpdGVtLnNvdXJjZV9maWxlLmhhc2gsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW0uaXRlbV90eXBlKQotICAg
ICAgICAgICAgICAgIHJlZmVyZW5jZXNbaXRlbS5zb3VyY2VfZmlsZS5yZWxfcGF0aF0uYWRkKGl0
ZW0pCisgICAgICAgICAgICAgICAgICAgIGNoYW5nZWRfaGFzaGVzW2l0ZW0ucGF0aF0gPSAoZmls
ZV9oYXNoLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGl0ZW0uaXRlbV90eXBlKQorICAgICAgICAgICAgICAgIGFzc2VydCBpc2luc3RhbmNlKGl0ZW0s
IFJlZlRlc3ROb2RlKQorICAgICAgICAgICAgICAgIHJlZmVyZW5jZXNbaXRlbS5wYXRoXS5hZGQo
aXRlbSkKICAgICAgICAgICAgIGVsc2U6CiAgICAgICAgICAgICAgICAgaWYgaXNpbnN0YW5jZShp
dGVtLCBSZWZUZXN0Tm9kZSk6CiAgICAgICAgICAgICAgICAgICAgIGl0ZW0gPSBpdGVtLnRvX1Jl
ZlRlc3QoKQotICAgICAgICAgICAgICAgICAgICBjaGFuZ2VkX2hhc2hlc1tpdGVtLnNvdXJjZV9m
aWxlLnJlbF9wYXRoXSA9IChpdGVtLnNvdXJjZV9maWxlLmhhc2gsCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW0uaXRl
bV90eXBlKQotICAgICAgICAgICAgICAgIHJlZnRlc3RzW2l0ZW0uc291cmNlX2ZpbGUucmVsX3Bh
dGhdLmFkZChpdGVtKQorICAgICAgICAgICAgICAgICAgICBjaGFuZ2VkX2hhc2hlc1tpdGVtLnBh
dGhdID0gKGZpbGVfaGFzaCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBpdGVtLml0ZW1fdHlwZSkKKyAgICAgICAgICAgICAgICBhc3NlcnQgaXNpbnN0
YW5jZShpdGVtLCBSZWZUZXN0KQorICAgICAgICAgICAgICAgIHJlZnRlc3RzW2l0ZW0ucGF0aF0u
YWRkKGl0ZW0pCisgICAgICAgICAgICBhc3NlcnQgaXNpbnN0YW5jZShpdGVtLCAoUmVmVGVzdE5v
ZGUsIFJlZlRlc3QpKQogICAgICAgICAgICAgc2VsZi5fcmVmdGVzdF9ub2Rlc19ieV91cmxbaXRl
bS51cmxdID0gaXRlbQogCiAgICAgICAgIHJldHVybiByZWZ0ZXN0cywgcmVmZXJlbmNlcywgY2hh
bmdlZF9oYXNoZXMKIAogICAgIGRlZiB0b19qc29uKHNlbGYpOgorICAgICAgICAjIHR5cGU6ICgp
IC0+IERpY3RbVGV4dCwgQW55XQogICAgICAgICBvdXRfaXRlbXMgPSB7Ci0gICAgICAgICAgICB0
ZXN0X3R5cGU6IHsKLSAgICAgICAgICAgICAgICBmcm9tX29zX3BhdGgocGF0aCk6Ci0gICAgICAg
ICAgICAgICAgW3QgZm9yIHQgaW4gc29ydGVkKHRlc3QudG9fanNvbigpIGZvciB0ZXN0IGluIHRl
c3RzKV0KLSAgICAgICAgICAgICAgICBmb3IgcGF0aCwgdGVzdHMgaW4gaXRlcml0ZW1zKHR5cGVf
cGF0aHMpCi0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBmb3IgdGVzdF90eXBlLCB0eXBlX3Bh
dGhzIGluIGl0ZXJpdGVtcyhzZWxmLl9kYXRhKQorICAgICAgICAgICAgdGVzdF90eXBlOiB0eXBl
X3BhdGhzLnRvX2pzb24oKQorICAgICAgICAgICAgZm9yIHRlc3RfdHlwZSwgdHlwZV9wYXRocyBp
biBpdGVyaXRlbXMoc2VsZi5fZGF0YSkgaWYgdHlwZV9wYXRocwogICAgICAgICB9CiAgICAgICAg
IHJ2ID0geyJ1cmxfYmFzZSI6IHNlbGYudXJsX2Jhc2UsCiAgICAgICAgICAgICAgICJwYXRocyI6
IHtmcm9tX29zX3BhdGgoayk6IHYgZm9yIGssIHYgaW4gaXRlcml0ZW1zKHNlbGYuX3BhdGhfaGFz
aCl9LAogICAgICAgICAgICAgICAiaXRlbXMiOiBvdXRfaXRlbXMsCi0gICAgICAgICAgICAgICJ2
ZXJzaW9uIjogQ1VSUkVOVF9WRVJTSU9OfQorICAgICAgICAgICAgICAidmVyc2lvbiI6IENVUlJF
TlRfVkVSU0lPTn0gICMgdHlwZTogRGljdFtUZXh0LCBBbnldCiAgICAgICAgIHJldHVybiBydgog
CiAgICAgQGNsYXNzbWV0aG9kCi0gICAgZGVmIGZyb21fanNvbihjbHMsIHRlc3RzX3Jvb3QsIG9i
aiwgdHlwZXM9Tm9uZSwgbWV0YV9maWx0ZXJzPU5vbmUpOgorICAgIGRlZiBmcm9tX2pzb24oY2xz
LCB0ZXN0c19yb290LCBvYmosIHR5cGVzPU5vbmUpOgorICAgICAgICAjIHR5cGU6IChzdHIsIERp
Y3RbVGV4dCwgQW55XSwgT3B0aW9uYWxbQ29udGFpbmVyW1RleHRdXSkgLT4gTWFuaWZlc3QKICAg
ICAgICAgdmVyc2lvbiA9IG9iai5nZXQoInZlcnNpb24iKQogICAgICAgICBpZiB2ZXJzaW9uICE9
IENVUlJFTlRfVkVSU0lPTjoKICAgICAgICAgICAgIHJhaXNlIE1hbmlmZXN0VmVyc2lvbk1pc21h
dGNoCiAKLSAgICAgICAgc2VsZiA9IGNscyh1cmxfYmFzZT1vYmouZ2V0KCJ1cmxfYmFzZSIsICIv
IikpCisgICAgICAgIHNlbGYgPSBjbHModGVzdHNfcm9vdCwgdXJsX2Jhc2U9b2JqLmdldCgidXJs
X2Jhc2UiLCAiLyIpKQogICAgICAgICBpZiBub3QgaGFzYXR0cihvYmosICJpdGVtcyIpIGFuZCBo
YXNhdHRyKG9iaiwgInBhdGhzIik6CiAgICAgICAgICAgICByYWlzZSBNYW5pZmVzdEVycm9yCiAK
ICAgICAgICAgc2VsZi5fcGF0aF9oYXNoID0ge3RvX29zX3BhdGgoayk6IHYgZm9yIGssIHYgaW4g
aXRlcml0ZW1zKG9ialsicGF0aHMiXSl9CiAKLSAgICAgICAgaXRlbV9jbGFzc2VzID0geyJ0ZXN0
aGFybmVzcyI6IFRlc3RoYXJuZXNzVGVzdCwKLSAgICAgICAgICAgICAgICAgICAgICAgICJyZWZ0
ZXN0IjogUmVmVGVzdCwKLSAgICAgICAgICAgICAgICAgICAgICAgICJyZWZ0ZXN0X25vZGUiOiBS
ZWZUZXN0Tm9kZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICJtYW51YWwiOiBNYW51YWxUZXN0
LAotICAgICAgICAgICAgICAgICAgICAgICAgInN0dWIiOiBTdHViLAotICAgICAgICAgICAgICAg
ICAgICAgICAgIndkc3BlYyI6IFdlYmRyaXZlclNwZWNUZXN0LAotICAgICAgICAgICAgICAgICAg
ICAgICAgImNvbmZvcm1hbmNlY2hlY2tlciI6IENvbmZvcm1hbmNlQ2hlY2tlclRlc3QsCi0gICAg
ICAgICAgICAgICAgICAgICAgICAidmlzdWFsIjogVmlzdWFsVGVzdCwKLSAgICAgICAgICAgICAg
ICAgICAgICAgICJzdXBwb3J0IjogU3VwcG9ydEZpbGV9Ci0KLSAgICAgICAgbWV0YV9maWx0ZXJz
ID0gbWV0YV9maWx0ZXJzIG9yIFtdCi0KLSAgICAgICAgc291cmNlX2ZpbGVzID0ge30KLQogICAg
ICAgICBmb3IgdGVzdF90eXBlLCB0eXBlX3BhdGhzIGluIGl0ZXJpdGVtcyhvYmpbIml0ZW1zIl0p
OgorICAgICAgICAgICAgIyBEcm9wICJzdHViIiBpdGVtcywgd2hpY2ggYXJlIG5vIGxvbmdlciBz
dXBwb3J0ZWQgYnV0IG1heSBiZQorICAgICAgICAgICAgIyBwcmVzZW50IHdoZW4gZG9pbmcgYW4g
aW5jcmVtZW50YWwgbWFuaWZlc3QgdXBkYXRlLgorICAgICAgICAgICAgIyBTZWUgaHR0cHM6Ly9n
aXRodWIuY29tL3dlYi1wbGF0Zm9ybS10ZXN0cy9yZmNzL3B1bGwvMjcgZm9yIGJhY2tncm91bmQu
CisgICAgICAgICAgICAjCisgICAgICAgICAgICAjIFRPRE8oTUFOSUZFU1R2Nyk6IHJlbW92ZSB0
aGlzIGNvbmRpdGlvbgorICAgICAgICAgICAgaWYgdGVzdF90eXBlID09ICJzdHViIjoKKyAgICAg
ICAgICAgICAgICBjb250aW51ZQorCiAgICAgICAgICAgICBpZiB0ZXN0X3R5cGUgbm90IGluIGl0
ZW1fY2xhc3NlczoKICAgICAgICAgICAgICAgICByYWlzZSBNYW5pZmVzdEVycm9yCiAKICAgICAg
ICAgICAgIGlmIHR5cGVzIGFuZCB0ZXN0X3R5cGUgbm90IGluIHR5cGVzOgogICAgICAgICAgICAg
ICAgIGNvbnRpbnVlCiAKLSAgICAgICAgICAgIHRlc3RfY2xzID0gaXRlbV9jbGFzc2VzW3Rlc3Rf
dHlwZV0KLSAgICAgICAgICAgIHRlc3RzID0gZGVmYXVsdGRpY3Qoc2V0KQotICAgICAgICAgICAg
Zm9yIHBhdGgsIG1hbmlmZXN0X3Rlc3RzIGluIGl0ZXJpdGVtcyh0eXBlX3BhdGhzKToKLSAgICAg
ICAgICAgICAgICBwYXRoID0gdG9fb3NfcGF0aChwYXRoKQotICAgICAgICAgICAgICAgIGZvciB0
ZXN0IGluIGl0ZXJmaWx0ZXIobWV0YV9maWx0ZXJzLCBtYW5pZmVzdF90ZXN0cyk6Ci0gICAgICAg
ICAgICAgICAgICAgIG1hbmlmZXN0X2l0ZW0gPSB0ZXN0X2Nscy5mcm9tX2pzb24oc2VsZiwKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0
c19yb290LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHBhdGgsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgdGVzdCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBzb3VyY2VfZmlsZXM9c291cmNlX2ZpbGVzKQotICAgICAgICAgICAg
ICAgICAgICB0ZXN0c1twYXRoXS5hZGQobWFuaWZlc3RfaXRlbSkKLSAgICAgICAgICAgIHNlbGYu
X2RhdGFbdGVzdF90eXBlXSA9IHRlc3RzCisgICAgICAgICAgICBzZWxmLl9kYXRhW3Rlc3RfdHlw
ZV0uc2V0X2pzb24odGVzdHNfcm9vdCwgdHlwZV9wYXRocykKIAogICAgICAgICByZXR1cm4gc2Vs
ZgogCiAKLWRlZiBsb2FkKHRlc3RzX3Jvb3QsIG1hbmlmZXN0LCB0eXBlcz1Ob25lLCBtZXRhX2Zp
bHRlcnM9Tm9uZSk6CitkZWYgbG9hZCh0ZXN0c19yb290LCBtYW5pZmVzdCwgdHlwZXM9Tm9uZSk6
CisgICAgIyB0eXBlOiAoc3RyLCBVbmlvbltJT1tieXRlc10sIHN0cl0sIE9wdGlvbmFsW0NvbnRh
aW5lcltUZXh0XV0pIC0+IE9wdGlvbmFsW01hbmlmZXN0XQogICAgIGxvZ2dlciA9IGdldF9sb2dn
ZXIoKQogCi0gICAgIyAibWFuaWZlc3QiIGlzIGEgcGF0aCBvciBmaWxlLWxpa2Ugb2JqZWN0Lgor
ICAgIGxvZ2dlci53YXJuaW5nKCJQcmVmZXIgbG9hZF9hbmRfdXBkYXRlIGluc3RlYWQiKQorICAg
IHJldHVybiBfbG9hZChsb2dnZXIsIHRlc3RzX3Jvb3QsIG1hbmlmZXN0LCB0eXBlcykKKworCitf
X2xvYWRfY2FjaGUgPSB7fSAgIyB0eXBlOiBEaWN0W3N0ciwgTWFuaWZlc3RdCisKKworZGVmIF9s
b2FkKGxvZ2dlciwgICMgdHlwZTogTG9nZ2VyCisgICAgICAgICAgdGVzdHNfcm9vdCwgICMgdHlw
ZTogc3RyCisgICAgICAgICAgbWFuaWZlc3QsICAjIHR5cGU6IFVuaW9uW0lPW2J5dGVzXSwgc3Ry
XQorICAgICAgICAgIHR5cGVzPU5vbmUsICAjIHR5cGU6IE9wdGlvbmFsW0NvbnRhaW5lcltUZXh0
XV0KKyAgICAgICAgICBhbGxvd19jYWNoZWQ9VHJ1ZSAgIyB0eXBlOiBib29sCisgICAgICAgICAg
KToKKyAgICAjIHR5cGU6ICguLi4pIC0+IE9wdGlvbmFsW01hbmlmZXN0XQorICAgIG1hbmlmZXN0
X3BhdGggPSAobWFuaWZlc3QgaWYgaXNpbnN0YW5jZShtYW5pZmVzdCwgc3RyaW5nX3R5cGVzKQor
ICAgICAgICAgICAgICAgICAgICAgZWxzZSBtYW5pZmVzdC5uYW1lKQorICAgIGlmIGFsbG93X2Nh
Y2hlZCBhbmQgbWFuaWZlc3RfcGF0aCBpbiBfX2xvYWRfY2FjaGU6CisgICAgICAgIHJldHVybiBf
X2xvYWRfY2FjaGVbbWFuaWZlc3RfcGF0aF0KKwogICAgIGlmIGlzaW5zdGFuY2UobWFuaWZlc3Qs
IHN0cmluZ190eXBlcyk6CiAgICAgICAgIGlmIG9zLnBhdGguZXhpc3RzKG1hbmlmZXN0KToKICAg
ICAgICAgICAgIGxvZ2dlci5kZWJ1ZygiT3BlbmluZyBtYW5pZmVzdCBhdCAlcyIgJSBtYW5pZmVz
dCkKICAgICAgICAgZWxzZToKICAgICAgICAgICAgIGxvZ2dlci5kZWJ1ZygiQ3JlYXRpbmcgbmV3
IG1hbmlmZXN0IGF0ICVzIiAlIG1hbmlmZXN0KQogICAgICAgICB0cnk6Ci0gICAgICAgICAgICB3
aXRoIG9wZW4obWFuaWZlc3QpIGFzIGY6Ci0gICAgICAgICAgICAgICAgcnYgPSBNYW5pZmVzdC5m
cm9tX2pzb24odGVzdHNfcm9vdCwganNvbi5sb2FkKGYpLCB0eXBlcz10eXBlcywgbWV0YV9maWx0
ZXJzPW1ldGFfZmlsdGVycykKKyAgICAgICAgICAgIHdpdGggb3BlbihtYW5pZmVzdCwgInJiIikg
YXMgZjoKKyAgICAgICAgICAgICAgICBydiA9IE1hbmlmZXN0LmZyb21fanNvbih0ZXN0c19yb290
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhc3RfanNvbi5sb2Fk
KGYpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGVzPXR5cGVz
KQogICAgICAgICBleGNlcHQgSU9FcnJvcjoKICAgICAgICAgICAgIHJldHVybiBOb25lCiAgICAg
ICAgIGV4Y2VwdCBWYWx1ZUVycm9yOgogICAgICAgICAgICAgbG9nZ2VyLndhcm5pbmcoIiVyIG1h
eSBiZSBjb3JydXB0ZWQiLCBtYW5pZmVzdCkKICAgICAgICAgICAgIHJldHVybiBOb25lCi0gICAg
ICAgIHJldHVybiBydgorICAgIGVsc2U6CisgICAgICAgIHJ2ID0gTWFuaWZlc3QuZnJvbV9qc29u
KHRlc3RzX3Jvb3QsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhc3RfanNvbi5s
b2FkKG1hbmlmZXN0KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZXM9dHlw
ZXMpCisKKyAgICBpZiBhbGxvd19jYWNoZWQ6CisgICAgICAgIF9fbG9hZF9jYWNoZVttYW5pZmVz
dF9wYXRoXSA9IHJ2CisgICAgcmV0dXJuIHJ2CisKKworZGVmIGxvYWRfYW5kX3VwZGF0ZSh0ZXN0
c19yb290LCAgIyB0eXBlOiBieXRlcworICAgICAgICAgICAgICAgICAgICBtYW5pZmVzdF9wYXRo
LCAgIyB0eXBlOiBieXRlcworICAgICAgICAgICAgICAgICAgICB1cmxfYmFzZSwgICMgdHlwZTog
VGV4dAorICAgICAgICAgICAgICAgICAgICB1cGRhdGU9VHJ1ZSwgICMgdHlwZTogYm9vbAorICAg
ICAgICAgICAgICAgICAgICByZWJ1aWxkPUZhbHNlLCAgIyB0eXBlOiBib29sCisgICAgICAgICAg
ICAgICAgICAgIG1ldGFkYXRhX3BhdGg9Tm9uZSwgICMgdHlwZTogT3B0aW9uYWxbYnl0ZXNdCisg
ICAgICAgICAgICAgICAgICAgIGNhY2hlX3Jvb3Q9Tm9uZSwgICMgdHlwZTogT3B0aW9uYWxbYnl0
ZXNdCisgICAgICAgICAgICAgICAgICAgIHdvcmtpbmdfY29weT1UcnVlLCAgIyB0eXBlOiBib29s
CisgICAgICAgICAgICAgICAgICAgIHR5cGVzPU5vbmUsICAjIHR5cGU6IE9wdGlvbmFsW0NvbnRh
aW5lcltUZXh0XV0KKyAgICAgICAgICAgICAgICAgICAgd3JpdGVfbWFuaWZlc3Q9VHJ1ZSwgICMg
dHlwZTogYm9vbAorICAgICAgICAgICAgICAgICAgICBhbGxvd19jYWNoZWQ9VHJ1ZSAgIyB0eXBl
OiBib29sCisgICAgICAgICAgICAgICAgICAgICk6CisgICAgIyB0eXBlOiAoLi4uKSAtPiBNYW5p
ZmVzdAorICAgIGxvZ2dlciA9IGdldF9sb2dnZXIoKQogCi0gICAgcmV0dXJuIE1hbmlmZXN0LmZy
b21fanNvbih0ZXN0c19yb290LCBqc29uLmxvYWQobWFuaWZlc3QpLCB0eXBlcz10eXBlcywgbWV0
YV9maWx0ZXJzPW1ldGFfZmlsdGVycykKKyAgICBtYW5pZmVzdCA9IE5vbmUKKyAgICBpZiBub3Qg
cmVidWlsZDoKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgbWFuaWZlc3QgPSBfbG9hZChsb2dn
ZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RzX3Jvb3QsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIG1hbmlmZXN0X3BhdGgsCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHR5cGVzPXR5cGVzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbGxvd19j
YWNoZWQ9YWxsb3dfY2FjaGVkKQorICAgICAgICBleGNlcHQgTWFuaWZlc3RWZXJzaW9uTWlzbWF0
Y2g6CisgICAgICAgICAgICBsb2dnZXIuaW5mbygiTWFuaWZlc3QgdmVyc2lvbiBjaGFuZ2VkLCBy
ZWJ1aWxkaW5nIikKKworICAgICAgICBpZiBtYW5pZmVzdCBpcyBub3QgTm9uZSBhbmQgbWFuaWZl
c3QudXJsX2Jhc2UgIT0gdXJsX2Jhc2U6CisgICAgICAgICAgICBsb2dnZXIuaW5mbygiTWFuaWZl
c3QgdXJsIGJhc2UgZGlkIG5vdCBtYXRjaCwgcmVidWlsZGluZyIpCisgICAgICAgICAgICBtYW5p
ZmVzdCA9IE5vbmUKKworICAgIGlmIG1hbmlmZXN0IGlzIE5vbmU6CisgICAgICAgIG1hbmlmZXN0
ID0gTWFuaWZlc3QodGVzdHNfcm9vdCwgdXJsX2Jhc2UpCisgICAgICAgIHJlYnVpbGQgPSBUcnVl
CisgICAgICAgIHVwZGF0ZSA9IFRydWUKKworICAgIGlmIHJlYnVpbGQgb3IgdXBkYXRlOgorICAg
ICAgICB0cmVlID0gdmNzLmdldF90cmVlKHRlc3RzX3Jvb3QsIG1hbmlmZXN0LCBtYW5pZmVzdF9w
YXRoLCBjYWNoZV9yb290LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdvcmtpbmdfY29w
eSwgcmVidWlsZCkKKyAgICAgICAgY2hhbmdlZCA9IG1hbmlmZXN0LnVwZGF0ZSh0cmVlKQorICAg
ICAgICBpZiB3cml0ZV9tYW5pZmVzdCBhbmQgY2hhbmdlZDoKKyAgICAgICAgICAgIHdyaXRlKG1h
bmlmZXN0LCBtYW5pZmVzdF9wYXRoKQorICAgICAgICB0cmVlLmR1bXBfY2FjaGVzKCkKKworICAg
IHJldHVybiBtYW5pZmVzdAogCiAKIGRlZiB3cml0ZShtYW5pZmVzdCwgbWFuaWZlc3RfcGF0aCk6
CisgICAgIyB0eXBlOiAoTWFuaWZlc3QsIGJ5dGVzKSAtPiBOb25lCiAgICAgZGlyX25hbWUgPSBv
cy5wYXRoLmRpcm5hbWUobWFuaWZlc3RfcGF0aCkKICAgICBpZiBub3Qgb3MucGF0aC5leGlzdHMo
ZGlyX25hbWUpOgogICAgICAgICBvcy5tYWtlZGlycyhkaXJfbmFtZSkKICAgICB3aXRoIG9wZW4o
bWFuaWZlc3RfcGF0aCwgIndiIikgYXMgZjoKLSAgICAgICAganNvbi5kdW1wKG1hbmlmZXN0LnRv
X2pzb24oKSwgZiwgc29ydF9rZXlzPVRydWUsIGluZGVudD0xLCBzZXBhcmF0b3JzPSgnLCcsICc6
ICcpKQorICAgICAgICAjIFVzZSAnLCcgaW5zdGVhZCBvZiB0aGUgZGVmYXVsdCAnLCAnIHNlcGFy
YXRvciB0byBwcmV2ZW50IHRyYWlsaW5nCisgICAgICAgICMgc3BhY2VzOiBodHRwczovL2RvY3Mu
cHl0aG9uLm9yZy8yL2xpYnJhcnkvanNvbi5odG1sI2pzb24uZHVtcAorICAgICAgICBqc29uLmR1
bXAobWFuaWZlc3QudG9fanNvbigpLCBmLAorICAgICAgICAgICAgICAgICAgc29ydF9rZXlzPVRy
dWUsIGluZGVudD0xLCBzZXBhcmF0b3JzPSgnLCcsICc6ICcpKQogICAgICAgICBmLndyaXRlKCJc
biIpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL21hbmlmZXN0L3NvdXJjZWZpbGUucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL21hbmlmZXN0L3NvdXJjZWZpbGUucHkKaW5kZXgg
MTMzZjhiNTk4MjguLjQ3ODhmYzliZGI2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL21hbmlmZXN0L3NvdXJjZWZpbGUucHkKKysr
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9tYW5p
ZmVzdC9zb3VyY2VmaWxlLnB5CkBAIC0xLDI5ICsxLDUyIEBACiBpbXBvcnQgaGFzaGxpYgogaW1w
b3J0IHJlCiBpbXBvcnQgb3MKLWZyb20gc2l4IGltcG9ydCBiaW5hcnlfdHlwZQorZnJvbSBjb2xs
ZWN0aW9ucyBpbXBvcnQgZGVxdWUKK2Zyb20gc2l4IGltcG9ydCBiaW5hcnlfdHlwZSwgUFkzCiBm
cm9tIHNpeC5tb3Zlcy51cmxsaWIucGFyc2UgaW1wb3J0IHVybGpvaW4KIGZyb20gZm5tYXRjaCBp
bXBvcnQgZm5tYXRjaAorCitNWVBZID0gRmFsc2UKK2lmIE1ZUFk6CisgICAgIyBNWVBZIGlzIHNl
dCB0byBUcnVlIHdoZW4gcnVuIHVuZGVyIE15cHkuCisgICAgZnJvbSB0eXBpbmcgaW1wb3J0IEFu
eQorICAgIGZyb20gdHlwaW5nIGltcG9ydCBBbnlTdHIKKyAgICBmcm9tIHR5cGluZyBpbXBvcnQg
QmluYXJ5SU8KKyAgICBmcm9tIHR5cGluZyBpbXBvcnQgQ2FsbGFibGUKKyAgICBmcm9tIHR5cGlu
ZyBpbXBvcnQgRGVxdWUKKyAgICBmcm9tIHR5cGluZyBpbXBvcnQgRGljdAorICAgIGZyb20gdHlw
aW5nIGltcG9ydCBJdGVyYWJsZQorICAgIGZyb20gdHlwaW5nIGltcG9ydCBMaXN0CisgICAgZnJv
bSB0eXBpbmcgaW1wb3J0IE9wdGlvbmFsCisgICAgZnJvbSB0eXBpbmcgaW1wb3J0IFBhdHRlcm4K
KyAgICBmcm9tIHR5cGluZyBpbXBvcnQgU2V0CisgICAgZnJvbSB0eXBpbmcgaW1wb3J0IFRleHQK
KyAgICBmcm9tIHR5cGluZyBpbXBvcnQgVHVwbGUKKyAgICBmcm9tIHR5cGluZyBpbXBvcnQgVW5p
b24KKyAgICBmcm9tIHR5cGluZyBpbXBvcnQgY2FzdAorCiB0cnk6CiAgICAgZnJvbSB4bWwuZXRy
ZWUgaW1wb3J0IGNFbGVtZW50VHJlZSBhcyBFbGVtZW50VHJlZQogZXhjZXB0IEltcG9ydEVycm9y
OgotICAgIGZyb20geG1sLmV0cmVlIGltcG9ydCBFbGVtZW50VHJlZQorICAgIGZyb20geG1sLmV0
cmVlIGltcG9ydCBFbGVtZW50VHJlZSBhcyBFbGVtZW50VHJlZSAgIyB0eXBlOiBpZ25vcmUKIAog
aW1wb3J0IGh0bWw1bGliCiAKIGZyb20gLiBpbXBvcnQgWE1MUGFyc2VyCi1mcm9tIC5pdGVtIGlt
cG9ydCBTdHViLCBNYW51YWxUZXN0LCBXZWJkcml2ZXJTcGVjVGVzdCwgUmVmVGVzdE5vZGUsIFRl
c3RoYXJuZXNzVGVzdCwgU3VwcG9ydEZpbGUsIENvbmZvcm1hbmNlQ2hlY2tlclRlc3QsIFZpc3Vh
bFRlc3QKLWZyb20gLnV0aWxzIGltcG9ydCByZWxfcGF0aF90b191cmwsIENvbnRleHRNYW5hZ2Vy
Qnl0ZXNJTywgY2FjaGVkX3Byb3BlcnR5Citmcm9tIC5pdGVtIGltcG9ydCAoTWFuaWZlc3RJdGVt
LCBNYW51YWxUZXN0LCBXZWJEcml2ZXJTcGVjVGVzdCwgUmVmVGVzdE5vZGUsIFRlc3RoYXJuZXNz
VGVzdCwKKyAgICAgICAgICAgICAgICAgICBTdXBwb3J0RmlsZSwgQ29uZm9ybWFuY2VDaGVja2Vy
VGVzdCwgVmlzdWFsVGVzdCkKK2Zyb20gLnV0aWxzIGltcG9ydCBDb250ZXh0TWFuYWdlckJ5dGVz
SU8sIGNhY2hlZF9wcm9wZXJ0eQogCiB3ZF9wYXR0ZXJuID0gIioucHkiCi1qc19tZXRhX3JlID0g
cmUuY29tcGlsZShiIi8vXHMqTUVUQTpccyooXHcqKT0oLiopJCIpCi1weXRob25fbWV0YV9yZSA9
IHJlLmNvbXBpbGUoYiIjXHMqTUVUQTpccyooXHcqKT0oLiopJCIpCitqc19tZXRhX3JlID0gcmUu
Y29tcGlsZShiciIvL1xzKk1FVEE6XHMqKFx3Kik9KC4qKSQiKQorcHl0aG9uX21ldGFfcmUgPSBy
ZS5jb21waWxlKGJyIiNccypNRVRBOlxzKihcdyopPSguKikkIikKIAogcmVmZXJlbmNlX2ZpbGVf
cmUgPSByZS5jb21waWxlKHInKF58W1wtX10pKG5vdCk/cmVmWzAtOV0qKFtcLV9dfCQpJykKIAot
c3BhY2VfY2hhcnMgPSB1IiIuam9pbihodG1sNWxpYi5jb25zdGFudHMuc3BhY2VDaGFyYWN0ZXJz
KQorc3BhY2VfY2hhcnMgPSB1IiIuam9pbihodG1sNWxpYi5jb25zdGFudHMuc3BhY2VDaGFyYWN0
ZXJzKSAgIyB0eXBlOiBUZXh0CiAKIGRlZiByZXBsYWNlX2VuZChzLCBvbGQsIG5ldyk6CisgICAg
IyB0eXBlOiAoVGV4dCwgVGV4dCwgVGV4dCkgLT4gVGV4dAogICAgICIiIgogICAgIEdpdmVuIGEg
c3RyaW5nIGBzYCB0aGF0IGVuZHMgd2l0aCBgb2xkYCwgcmVwbGFjZSB0aGF0IG9jY3VycmVuY2Ug
b2YgYG9sZGAKICAgICB3aXRoIGBuZXdgLgpAQCAtMzMsNiArNTYsNyBAQCBkZWYgcmVwbGFjZV9l
bmQocywgb2xkLCBuZXcpOgogCiAKIGRlZiByZWFkX3NjcmlwdF9tZXRhZGF0YShmLCByZWdleHAp
OgorICAgICMgdHlwZTogKEJpbmFyeUlPLCBQYXR0ZXJuW2J5dGVzXSkgLT4gSXRlcmFibGVbVHVw
bGVbYnl0ZXMsIGJ5dGVzXV0KICAgICAiIiIKICAgICBZaWVsZHMgYW55IG1ldGFkYXRhIChwYWly
cyBvZiBieXRlc3RyaW5ncykgZnJvbSB0aGUgZmlsZS1saWtlIG9iamVjdCBgZmAsCiAgICAgYXMg
c3BlY2lmaWVkIGFjY29yZGluZyB0byBhIHN1cHBsaWVkIHJlZ2V4cC4KQEAgLTU3LDEwICs4MSwx
MSBAQCBfYW55X3ZhcmlhbnRzID0gewogICAgIGIiZGVkaWNhdGVkd29ya2VyIjogeyJzdWZmaXgi
OiAiLmFueS53b3JrZXIuaHRtbCJ9LAogICAgIGIid29ya2VyIjogeyJsb25naGFuZCI6IHtiImRl
ZGljYXRlZHdvcmtlciIsIGIic2hhcmVkd29ya2VyIiwgYiJzZXJ2aWNld29ya2VyIn19LAogICAg
IGIianNzaGVsbCI6IHsic3VmZml4IjogIi5hbnkuanMifSwKLX0KK30gICMgdHlwZTogRGljdFti
eXRlcywgRGljdFtzdHIsIEFueV1dCiAKIAogZGVmIGdldF9hbnlfdmFyaWFudHMoaXRlbSk6Cisg
ICAgIyB0eXBlOiAoYnl0ZXMpIC0+IFNldFtieXRlc10KICAgICAiIiIKICAgICBSZXR1cm5zIGEg
c2V0IG9mIHZhcmlhbnRzIChieXRlc3RyaW5ncykgZGVmaW5lZCBieSB0aGUgZ2l2ZW4ga2V5d29y
ZC4KICAgICAiIiIKQEAgLTc1LDYgKzEwMCw3IEBAIGRlZiBnZXRfYW55X3ZhcmlhbnRzKGl0ZW0p
OgogCiAKIGRlZiBnZXRfZGVmYXVsdF9hbnlfdmFyaWFudHMoKToKKyAgICAjIHR5cGU6ICgpIC0+
IFNldFtieXRlc10KICAgICAiIiIKICAgICBSZXR1cm5zIGEgc2V0IG9mIHZhcmlhbnRzIChieXRl
c3RyaW5ncykgdGhhdCB3aWxsIGJlIHVzZWQgYnkgZGVmYXVsdC4KICAgICAiIiIKQEAgLTgyLDYg
KzEwOCw3IEBAIGRlZiBnZXRfZGVmYXVsdF9hbnlfdmFyaWFudHMoKToKIAogCiBkZWYgcGFyc2Vf
dmFyaWFudHModmFsdWUpOgorICAgICMgdHlwZTogKGJ5dGVzKSAtPiBTZXRbYnl0ZXNdCiAgICAg
IiIiCiAgICAgUmV0dXJucyBhIHNldCBvZiB2YXJpYW50cyAoYnl0ZXN0cmluZ3MpIGRlZmluZWQg
YnkgYSBjb21tYS1zZXBhcmF0ZWQgdmFsdWUuCiAgICAgIiIiCkBAIC0xMDAsNiArMTI3LDcgQEAg
ZGVmIHBhcnNlX3ZhcmlhbnRzKHZhbHVlKToKIAogCiBkZWYgZ2xvYmFsX3N1ZmZpeGVzKHZhbHVl
KToKKyAgICAjIHR5cGU6IChieXRlcykgLT4gU2V0W1R1cGxlW2J5dGVzLCBib29sXV0KICAgICAi
IiIKICAgICBZaWVsZHMgdHVwbGVzIG9mIHRoZSByZWxldmFudCBmaWxlbmFtZSBzdWZmaXggKGEg
c3RyaW5nKSBhbmQgd2hldGhlciB0aGUKICAgICB2YXJpYW50IGlzIGludGVuZGVkIHRvIHJ1biBp
biBhIEpTIHNoZWxsLCBmb3IgdGhlIHZhcmlhbnRzIGRlZmluZWQgYnkgdGhlCkBAIC0xMTksNiAr
MTQ3LDcgQEAgZGVmIGdsb2JhbF9zdWZmaXhlcyh2YWx1ZSk6CiAKIAogZGVmIGdsb2JhbF92YXJp
YW50X3VybCh1cmwsIHN1ZmZpeCk6CisgICAgIyB0eXBlOiAoVGV4dCwgVGV4dCkgLT4gVGV4dAog
ICAgICIiIgogICAgIFJldHVybnMgYSB1cmwgY3JlYXRlZCBmcm9tIHRoZSBnaXZlbiB1cmwgYW5k
IHN1ZmZpeCAoYWxsIHN0cmluZ3MpLgogICAgICIiIgpAQCAtMTMwLDMyICsxNTksNDEgQEAgZGVm
IGdsb2JhbF92YXJpYW50X3VybCh1cmwsIHN1ZmZpeCk6CiAgICAgcmV0dXJuIHJlcGxhY2VfZW5k
KHVybCwgIi5qcyIsIHN1ZmZpeCkKIAogCitkZWYgX3BhcnNlX2h0bWwoZik6CisgICAgIyB0eXBl
OiAoQmluYXJ5SU8pIC0+IEVsZW1lbnRUcmVlLkVsZW1lbnRUcmVlCisgICAgZG9jID0gaHRtbDVs
aWIucGFyc2UoZiwgdHJlZWJ1aWxkZXI9ImV0cmVlIiwgdXNlQ2hhcmRldD1GYWxzZSkKKyAgICBp
ZiBNWVBZOgorICAgICAgICByZXR1cm4gY2FzdChFbGVtZW50VHJlZS5FbGVtZW50VHJlZSwgZG9j
KQorICAgIHJldHVybiBkb2MKKwogZGVmIF9wYXJzZV94bWwoZik6CisgICAgIyB0eXBlOiAoQmlu
YXJ5SU8pIC0+IEVsZW1lbnRUcmVlLkVsZW1lbnRUcmVlCiAgICAgdHJ5OgogICAgICAgICAjIHJh
aXNlcyBWYWx1ZUVycm9yIHdpdGggYW4gdW5zdXBwb3J0ZWQgZW5jb2RpbmcsCiAgICAgICAgICMg
UGFyc2VFcnJvciB3aGVuIHRoZXJlJ3MgYW4gdW5kZWZpbmVkIGVudGl0eQogICAgICAgICByZXR1
cm4gRWxlbWVudFRyZWUucGFyc2UoZikKICAgICBleGNlcHQgKFZhbHVlRXJyb3IsIEVsZW1lbnRU
cmVlLlBhcnNlRXJyb3IpOgogICAgICAgICBmLnNlZWsoMCkKLSAgICAgICAgcmV0dXJuIEVsZW1l
bnRUcmVlLnBhcnNlKGYsIFhNTFBhcnNlci5YTUxQYXJzZXIoKSkKKyAgICAgICAgcmV0dXJuIEVs
ZW1lbnRUcmVlLnBhcnNlKGYsIFhNTFBhcnNlci5YTUxQYXJzZXIoKSkgICMgdHlwZTogaWdub3Jl
CiAKIAogY2xhc3MgU291cmNlRmlsZShvYmplY3QpOgotICAgIHBhcnNlcnMgPSB7Imh0bWwiOmxh
bWJkYSB4Omh0bWw1bGliLnBhcnNlKHgsIHRyZWVidWlsZGVyPSJldHJlZSIsIHVzZUNoYXJkZXQ9
RmFsc2UpLAorICAgIHBhcnNlcnMgPSB7Imh0bWwiOl9wYXJzZV9odG1sLAogICAgICAgICAgICAg
ICAgInhodG1sIjpfcGFyc2VfeG1sLAotICAgICAgICAgICAgICAgInN2ZyI6X3BhcnNlX3htbH0K
KyAgICAgICAgICAgICAgICJzdmciOl9wYXJzZV94bWx9ICAjIHR5cGU6IERpY3RbVGV4dCwgQ2Fs
bGFibGVbW0JpbmFyeUlPXSwgRWxlbWVudFRyZWUuRWxlbWVudFRyZWVdXQogCi0gICAgcm9vdF9k
aXJfbm9uX3Rlc3QgPSBzZXQoWyJjb21tb24iXSkKKyAgICByb290X2Rpcl9ub25fdGVzdCA9IHsi
Y29tbW9uIn0KIAotICAgIGRpcl9ub25fdGVzdCA9IHNldChbInJlc291cmNlcyIsCi0gICAgICAg
ICAgICAgICAgICAgICAgICAic3VwcG9ydCIsCi0gICAgICAgICAgICAgICAgICAgICAgICAidG9v
bHMiXSkKKyAgICBkaXJfbm9uX3Rlc3QgPSB7InJlc291cmNlcyIsCisgICAgICAgICAgICAgICAg
ICAgICJzdXBwb3J0IiwKKyAgICAgICAgICAgICAgICAgICAgInRvb2xzIn0KIAogICAgIGRpcl9w
YXRoX25vbl90ZXN0ID0geygiY3NzMjEiLCAiYXJjaGl2ZSIpLAogICAgICAgICAgICAgICAgICAg
ICAgICAgICgiY3NzIiwgIkNTUzIiLCAiYXJjaGl2ZSIpLAotICAgICAgICAgICAgICAgICAgICAg
ICAgICgiY3NzIiwgImNvbW1vbiIpfQorICAgICAgICAgICAgICAgICAgICAgICAgICgiY3NzIiwg
ImNvbW1vbiIpfSAgIyB0eXBlOiBTZXRbVHVwbGVbYnl0ZXMsIC4uLl1dCiAKICAgICBkZWYgX19p
bml0X18oc2VsZiwgdGVzdHNfcm9vdCwgcmVsX3BhdGgsIHVybF9iYXNlLCBoYXNoPU5vbmUsIGNv
bnRlbnRzPU5vbmUpOgorICAgICAgICAjIHR5cGU6IChBbnlTdHIsIEFueVN0ciwgVGV4dCwgT3B0
aW9uYWxbYnl0ZXNdLCBPcHRpb25hbFtieXRlc10pIC0+IE5vbmUKICAgICAgICAgIiIiT2JqZWN0
IHJlcHJlc2VudGluZyBhIGZpbGUgaW4gYSBzb3VyY2UgdHJlZS4KIAogICAgICAgICA6cGFyYW0g
dGVzdHNfcm9vdDogUGF0aCB0byB0aGUgcm9vdCBvZiB0aGUgc291cmNlIHRyZWUKQEAgLTE2NCwz
MSArMjAyLDM5IEBAIGNsYXNzIFNvdXJjZUZpbGUob2JqZWN0KToKICAgICAgICAgOnBhcmFtIGNv
bnRlbnRzOiBCeXRlIGFycmF5IG9mIHRoZSBjb250ZW50cyBvZiB0aGUgZmlsZSBvciBgYE5vbmVg
YC4KICAgICAgICAgIiIiCiAKLSAgICAgICAgc2VsZi50ZXN0c19yb290ID0gdGVzdHNfcm9vdAor
ICAgICAgICBhc3NlcnQgbm90IG9zLnBhdGguaXNhYnMocmVsX3BhdGgpLCByZWxfcGF0aAorCiAg
ICAgICAgIGlmIG9zLm5hbWUgPT0gIm50IjoKICAgICAgICAgICAgICMgZG8gc2xhc2ggbm9ybWFs
aXphdGlvbiBvbiBXaW5kb3dzCiAgICAgICAgICAgICBpZiBpc2luc3RhbmNlKHJlbF9wYXRoLCBi
aW5hcnlfdHlwZSk6Ci0gICAgICAgICAgICAgICAgc2VsZi5yZWxfcGF0aCA9IHJlbF9wYXRoLnJl
cGxhY2UoYiIvIiwgYiJcXCIpCisgICAgICAgICAgICAgICAgcmVsX3BhdGggPSByZWxfcGF0aC5y
ZXBsYWNlKGIiLyIsIGIiXFwiKQogICAgICAgICAgICAgZWxzZToKLSAgICAgICAgICAgICAgICBz
ZWxmLnJlbF9wYXRoID0gcmVsX3BhdGgucmVwbGFjZSh1Ii8iLCB1IlxcIikKLSAgICAgICAgZWxz
ZToKLSAgICAgICAgICAgIHNlbGYucmVsX3BhdGggPSByZWxfcGF0aAotICAgICAgICBzZWxmLnVy
bF9iYXNlID0gdXJsX2Jhc2UKLSAgICAgICAgc2VsZi5jb250ZW50cyA9IGNvbnRlbnRzCisgICAg
ICAgICAgICAgICAgcmVsX3BhdGggPSByZWxfcGF0aC5yZXBsYWNlKHUiLyIsIHUiXFwiKQogCi0g
ICAgICAgIHNlbGYuZGlyX3BhdGgsIHNlbGYuZmlsZW5hbWUgPSBvcy5wYXRoLnNwbGl0KHNlbGYu
cmVsX3BhdGgpCi0gICAgICAgIHNlbGYubmFtZSwgc2VsZi5leHQgPSBvcy5wYXRoLnNwbGl0ZXh0
KHNlbGYuZmlsZW5hbWUpCisgICAgICAgIGRpcl9wYXRoLCBmaWxlbmFtZSA9IG9zLnBhdGguc3Bs
aXQocmVsX3BhdGgpCisgICAgICAgIG5hbWUsIGV4dCA9IG9zLnBhdGguc3BsaXRleHQoZmlsZW5h
bWUpCiAKLSAgICAgICAgc2VsZi50eXBlX2ZsYWcgPSBOb25lCi0gICAgICAgIGlmICItIiBpbiBz
ZWxmLm5hbWU6Ci0gICAgICAgICAgICBzZWxmLnR5cGVfZmxhZyA9IHNlbGYubmFtZS5yc3BsaXQo
Ii0iLCAxKVsxXS5zcGxpdCgiLiIpWzBdCisgICAgICAgIHR5cGVfZmxhZyA9IE5vbmUKKyAgICAg
ICAgaWYgIi0iIGluIG5hbWU6CisgICAgICAgICAgICB0eXBlX2ZsYWcgPSBuYW1lLnJzcGxpdCgi
LSIsIDEpWzFdLnNwbGl0KCIuIilbMF0KIAotICAgICAgICBzZWxmLm1ldGFfZmxhZ3MgPSBzZWxm
Lm5hbWUuc3BsaXQoIi4iKVsxOl0KKyAgICAgICAgbWV0YV9mbGFncyA9IG5hbWUuc3BsaXQoIi4i
KVsxOl0KIAotICAgICAgICBzZWxmLml0ZW1zX2NhY2hlID0gTm9uZQorICAgICAgICBzZWxmLnRl
c3RzX3Jvb3QgPSB0ZXN0c19yb290ICAjIHR5cGU6IFVuaW9uW2J5dGVzLCBUZXh0XQorICAgICAg
ICBzZWxmLnJlbF9wYXRoID0gcmVsX3BhdGggICMgdHlwZTogVW5pb25bYnl0ZXMsIFRleHRdCisg
ICAgICAgIHNlbGYuZGlyX3BhdGggPSBkaXJfcGF0aCAgIyB0eXBlOiBVbmlvbltieXRlcywgVGV4
dF0KKyAgICAgICAgc2VsZi5maWxlbmFtZSA9IGZpbGVuYW1lICAjIHR5cGU6IFVuaW9uW2J5dGVz
LCBUZXh0XQorICAgICAgICBzZWxmLm5hbWUgPSBuYW1lICAjIHR5cGU6IFVuaW9uW2J5dGVzLCBU
ZXh0XQorICAgICAgICBzZWxmLmV4dCA9IGV4dCAgIyB0eXBlOiBVbmlvbltieXRlcywgVGV4dF0K
KyAgICAgICAgc2VsZi50eXBlX2ZsYWcgPSB0eXBlX2ZsYWcgICMgdHlwZTogT3B0aW9uYWxbVW5p
b25bYnl0ZXMsIFRleHRdXQorICAgICAgICBzZWxmLm1ldGFfZmxhZ3MgPSBtZXRhX2ZsYWdzICAj
IHR5cGU6IFVuaW9uW0xpc3RbYnl0ZXNdLCBMaXN0W1RleHRdXQorICAgICAgICBzZWxmLnVybF9i
YXNlID0gdXJsX2Jhc2UKKyAgICAgICAgc2VsZi5jb250ZW50cyA9IGNvbnRlbnRzCisgICAgICAg
IHNlbGYuaXRlbXNfY2FjaGUgPSBOb25lICAjIHR5cGU6IE9wdGlvbmFsW1R1cGxlW1RleHQsIExp
c3RbTWFuaWZlc3RJdGVtXV1dCiAgICAgICAgIHNlbGYuX2hhc2ggPSBoYXNoCiAKICAgICBkZWYg
X19nZXRzdGF0ZV9fKHNlbGYpOgorICAgICAgICAjIHR5cGU6ICgpIC0+IERpY3Rbc3RyLCBBbnld
CiAgICAgICAgICMgUmVtb3ZlIGNvbXB1dGVkIHByb3BlcnRpZXMgaWYgd2UgcGlja2xlIHRoaXMg
Y2xhc3MKICAgICAgICAgcnYgPSBzZWxmLl9fZGljdF9fLmNvcHkoKQogCkBAIC0yMDEsMTIgKzI0
NywxNCBAQCBjbGFzcyBTb3VyY2VGaWxlKG9iamVjdCk6CiAgICAgICAgIHJldHVybiBydgogCiAg
ICAgZGVmIG5hbWVfcHJlZml4KHNlbGYsIHByZWZpeCk6CisgICAgICAgICMgdHlwZTogKGJ5dGVz
KSAtPiBib29sCiAgICAgICAgICIiIkNoZWNrIGlmIHRoZSBmaWxlbmFtZSBzdGFydHMgd2l0aCBh
IGdpdmVuIHByZWZpeAogCiAgICAgICAgIDpwYXJhbSBwcmVmaXg6IFRoZSBwcmVmaXggdG8gY2hl
Y2siIiIKICAgICAgICAgcmV0dXJuIHNlbGYubmFtZS5zdGFydHN3aXRoKHByZWZpeCkKIAogICAg
IGRlZiBpc19kaXIoc2VsZik6CisgICAgICAgICMgdHlwZTogKCkgLT4gYm9vbAogICAgICAgICAi
IiJSZXR1cm4gd2hldGhlciB0aGlzIGZpbGUgcmVwcmVzZW50cyBhIGRpcmVjdG9yeS4iIiIKICAg
ICAgICAgaWYgc2VsZi5jb250ZW50cyBpcyBub3QgTm9uZToKICAgICAgICAgICAgIHJldHVybiBG
YWxzZQpAQCAtMjE0LDYgKzI2Miw3IEBAIGNsYXNzIFNvdXJjZUZpbGUob2JqZWN0KToKICAgICAg
ICAgcmV0dXJuIG9zLnBhdGguaXNkaXIoc2VsZi5yZWxfcGF0aCkKIAogICAgIGRlZiBvcGVuKHNl
bGYpOgorICAgICAgICAjIHR5cGU6ICgpIC0+IEJpbmFyeUlPCiAgICAgICAgICIiIgogICAgICAg
ICBSZXR1cm4gZWl0aGVyCiAgICAgICAgICogdGhlIGNvbnRlbnRzIHNwZWNpZmllZCBpbiB0aGUg
Y29uc3RydWN0b3IsIGlmIGFueTsKQEAgLTIyMSwyOSArMjcwLDQ5IEBAIGNsYXNzIFNvdXJjZUZp
bGUob2JqZWN0KToKICAgICAgICAgIiIiCiAKICAgICAgICAgaWYgc2VsZi5jb250ZW50cyBpcyBu
b3QgTm9uZToKLSAgICAgICAgICAgIGZpbGVfb2JqID0gQ29udGV4dE1hbmFnZXJCeXRlc0lPKHNl
bGYuY29udGVudHMpCisgICAgICAgICAgICB3cmFwcGVkID0gQ29udGV4dE1hbmFnZXJCeXRlc0lP
KHNlbGYuY29udGVudHMpCisgICAgICAgICAgICBpZiBNWVBZOgorICAgICAgICAgICAgICAgIGZp
bGVfb2JqID0gY2FzdChCaW5hcnlJTywgd3JhcHBlZCkKKyAgICAgICAgICAgIGVsc2U6CisgICAg
ICAgICAgICAgICAgZmlsZV9vYmogPSB3cmFwcGVkCiAgICAgICAgIGVsc2U6CiAgICAgICAgICAg
ICBmaWxlX29iaiA9IG9wZW4oc2VsZi5wYXRoLCAncmInKQogICAgICAgICByZXR1cm4gZmlsZV9v
YmoKIAogICAgIEBjYWNoZWRfcHJvcGVydHkKICAgICBkZWYgcGF0aChzZWxmKToKKyAgICAgICAg
IyB0eXBlOiAoKSAtPiBVbmlvbltieXRlcywgVGV4dF0KICAgICAgICAgcmV0dXJuIG9zLnBhdGgu
am9pbihzZWxmLnRlc3RzX3Jvb3QsIHNlbGYucmVsX3BhdGgpCiAKKyAgICBAY2FjaGVkX3Byb3Bl
cnR5CisgICAgZGVmIHJlbF91cmwoc2VsZik6CisgICAgICAgICMgdHlwZTogKCkgLT4gVGV4dAor
ICAgICAgICBhc3NlcnQgbm90IG9zLnBhdGguaXNhYnMoc2VsZi5yZWxfcGF0aCksIHNlbGYucmVs
X3BhdGgKKyAgICAgICAgcmV0dXJuIHNlbGYucmVsX3BhdGgucmVwbGFjZShvcy5zZXAsICIvIikK
KwogICAgIEBjYWNoZWRfcHJvcGVydHkKICAgICBkZWYgdXJsKHNlbGYpOgotICAgICAgICByZXR1
cm4gcmVsX3BhdGhfdG9fdXJsKHNlbGYucmVsX3BhdGgsIHNlbGYudXJsX2Jhc2UpCisgICAgICAg
ICMgdHlwZTogKCkgLT4gVGV4dAorICAgICAgICByZXR1cm4gdXJsam9pbihzZWxmLnVybF9iYXNl
LCBzZWxmLnJlbF91cmwpCiAKICAgICBAY2FjaGVkX3Byb3BlcnR5CiAgICAgZGVmIGhhc2goc2Vs
Zik6CisgICAgICAgICMgdHlwZTogKCkgLT4gYnl0ZXMKICAgICAgICAgaWYgbm90IHNlbGYuX2hh
c2g6CiAgICAgICAgICAgICB3aXRoIHNlbGYub3BlbigpIGFzIGY6CiAgICAgICAgICAgICAgICAg
Y29udGVudCA9IGYucmVhZCgpCi0gICAgICAgICAgICBkYXRhID0gIiIuam9pbigoImJsb2IgIiwg
c3RyKGxlbihjb250ZW50KSksICJcMCIsIGNvbnRlbnQpKQotICAgICAgICAgICAgc2VsZi5faGFz
aCA9IGhhc2hsaWIuc2hhMShkYXRhKS5oZXhkaWdlc3QoKQorCisgICAgICAgICAgICBkYXRhID0g
YiIiLmpvaW4oKGIiYmxvYiAiLCBiIiVkIiAlIGxlbihjb250ZW50KSwgYiJcMCIsIGNvbnRlbnQp
KQorICAgICAgICAgICAgaGFzaF9zdHIgPSBoYXNobGliLnNoYTEoZGF0YSkuaGV4ZGlnZXN0KCkg
ICMgdHlwZTogc3RyCisgICAgICAgICAgICBpZiBQWTM6CisgICAgICAgICAgICAgICAgc2VsZi5f
aGFzaCA9IGhhc2hfc3RyLmVuY29kZSgiYXNjaWkiKQorICAgICAgICAgICAgZWxzZToKKyAgICAg
ICAgICAgICAgICBzZWxmLl9oYXNoID0gaGFzaF9zdHIKKwogICAgICAgICByZXR1cm4gc2VsZi5f
aGFzaAogCiAgICAgZGVmIGluX25vbl90ZXN0X2RpcihzZWxmKToKKyAgICAgICAgIyB0eXBlOiAo
KSAtPiBib29sCiAgICAgICAgIGlmIHNlbGYuZGlyX3BhdGggPT0gIiI6CiAgICAgICAgICAgICBy
ZXR1cm4gVHJ1ZQogCkBAIC0yNTYsNjcgKzMyNSw3MSBAQCBjbGFzcyBTb3VyY2VGaWxlKG9iamVj
dCk6CiAgICAgICAgIHJldHVybiBGYWxzZQogCiAgICAgZGVmIGluX2NvbmZvcm1hbmNlX2NoZWNr
ZXJfZGlyKHNlbGYpOgorICAgICAgICAjIHR5cGU6ICgpIC0+IGJvb2wKICAgICAgICAgcmV0dXJu
IChzZWxmLmRpcl9wYXRoID09ICJjb25mb3JtYW5jZS1jaGVja2VycyIgb3IKICAgICAgICAgICAg
ICAgICBzZWxmLmRpcl9wYXRoLnN0YXJ0c3dpdGgoImNvbmZvcm1hbmNlLWNoZWNrZXJzIiArIG9z
LnBhdGguc2VwKSkKIAogICAgIEBwcm9wZXJ0eQogICAgIGRlZiBuYW1lX2lzX25vbl90ZXN0KHNl
bGYpOgorICAgICAgICAjIHR5cGU6ICgpIC0+IGJvb2wKICAgICAgICAgIiIiQ2hlY2sgaWYgdGhl
IGZpbGUgbmFtZSBtYXRjaGVzIHRoZSBjb25kaXRpb25zIGZvciB0aGUgZmlsZSB0bwogICAgICAg
ICBiZSBhIG5vbi10ZXN0IGZpbGUiIiIKICAgICAgICAgcmV0dXJuIChzZWxmLmlzX2RpcigpIG9y
CiAgICAgICAgICAgICAgICAgc2VsZi5uYW1lX3ByZWZpeCgiTUFOSUZFU1QiKSBvcgogICAgICAg
ICAgICAgICAgIHNlbGYuZmlsZW5hbWUgPT0gIk1FVEEueW1sIiBvcgogICAgICAgICAgICAgICAg
IHNlbGYuZmlsZW5hbWUuc3RhcnRzd2l0aCgiLiIpIG9yCi0gICAgICAgICAgICAgICAgc2VsZi50
eXBlX2ZsYWcgPT0gInN1cHBvcnQiIG9yCisgICAgICAgICAgICAgICAgc2VsZi5maWxlbmFtZS5l
bmRzd2l0aCgiLmhlYWRlcnMiKSBvcgogICAgICAgICAgICAgICAgIHNlbGYuaW5fbm9uX3Rlc3Rf
ZGlyKCkpCiAKICAgICBAcHJvcGVydHkKICAgICBkZWYgbmFtZV9pc19jb25mb3JtYW5jZShzZWxm
KToKKyAgICAgICAgIyB0eXBlOiAoKSAtPiBib29sCiAgICAgICAgIHJldHVybiAoc2VsZi5pbl9j
b25mb3JtYW5jZV9jaGVja2VyX2RpcigpIGFuZAogICAgICAgICAgICAgICAgIHNlbGYudHlwZV9m
bGFnIGluICgiaXMtdmFsaWQiLCAibm8tdmFsaWQiKSkKIAogICAgIEBwcm9wZXJ0eQogICAgIGRl
ZiBuYW1lX2lzX2NvbmZvcm1hbmNlX3N1cHBvcnQoc2VsZik6CisgICAgICAgICMgdHlwZTogKCkg
LT4gYm9vbAogICAgICAgICByZXR1cm4gc2VsZi5pbl9jb25mb3JtYW5jZV9jaGVja2VyX2Rpcigp
CiAKLSAgICBAcHJvcGVydHkKLSAgICBkZWYgbmFtZV9pc19zdHViKHNlbGYpOgotICAgICAgICAi
IiJDaGVjayBpZiB0aGUgZmlsZSBuYW1lIG1hdGNoZXMgdGhlIGNvbmRpdGlvbnMgZm9yIHRoZSBm
aWxlIHRvCi0gICAgICAgIGJlIGEgc3R1YiBmaWxlIiIiCi0gICAgICAgIHJldHVybiBzZWxmLm5h
bWVfcHJlZml4KCJzdHViLSIpCi0KICAgICBAcHJvcGVydHkKICAgICBkZWYgbmFtZV9pc19tYW51
YWwoc2VsZik6CisgICAgICAgICMgdHlwZTogKCkgLT4gYm9vbAogICAgICAgICAiIiJDaGVjayBp
ZiB0aGUgZmlsZSBuYW1lIG1hdGNoZXMgdGhlIGNvbmRpdGlvbnMgZm9yIHRoZSBmaWxlIHRvCiAg
ICAgICAgIGJlIGEgbWFudWFsIHRlc3QgZmlsZSIiIgogICAgICAgICByZXR1cm4gc2VsZi50eXBl
X2ZsYWcgPT0gIm1hbnVhbCIKIAogICAgIEBwcm9wZXJ0eQogICAgIGRlZiBuYW1lX2lzX3Zpc3Vh
bChzZWxmKToKKyAgICAgICAgIyB0eXBlOiAoKSAtPiBib29sCiAgICAgICAgICIiIkNoZWNrIGlm
IHRoZSBmaWxlIG5hbWUgbWF0Y2hlcyB0aGUgY29uZGl0aW9ucyBmb3IgdGhlIGZpbGUgdG8KICAg
ICAgICAgYmUgYSB2aXN1YWwgdGVzdCBmaWxlIiIiCiAgICAgICAgIHJldHVybiBzZWxmLnR5cGVf
ZmxhZyA9PSAidmlzdWFsIgogCiAgICAgQHByb3BlcnR5CiAgICAgZGVmIG5hbWVfaXNfbXVsdGlf
Z2xvYmFsKHNlbGYpOgorICAgICAgICAjIHR5cGU6ICgpIC0+IGJvb2wKICAgICAgICAgIiIiQ2hl
Y2sgaWYgdGhlIGZpbGUgbmFtZSBtYXRjaGVzIHRoZSBjb25kaXRpb25zIGZvciB0aGUgZmlsZSB0
bwogICAgICAgICBiZSBhIG11bHRpLWdsb2JhbCBqcyB0ZXN0IGZpbGUiIiIKICAgICAgICAgcmV0
dXJuICJhbnkiIGluIHNlbGYubWV0YV9mbGFncyBhbmQgc2VsZi5leHQgPT0gIi5qcyIKIAogICAg
IEBwcm9wZXJ0eQogICAgIGRlZiBuYW1lX2lzX3dvcmtlcihzZWxmKToKKyAgICAgICAgIyB0eXBl
OiAoKSAtPiBib29sCiAgICAgICAgICIiIkNoZWNrIGlmIHRoZSBmaWxlIG5hbWUgbWF0Y2hlcyB0
aGUgY29uZGl0aW9ucyBmb3IgdGhlIGZpbGUgdG8KICAgICAgICAgYmUgYSB3b3JrZXIganMgdGVz
dCBmaWxlIiIiCiAgICAgICAgIHJldHVybiAid29ya2VyIiBpbiBzZWxmLm1ldGFfZmxhZ3MgYW5k
IHNlbGYuZXh0ID09ICIuanMiCiAKICAgICBAcHJvcGVydHkKICAgICBkZWYgbmFtZV9pc193aW5k
b3coc2VsZik6CisgICAgICAgICMgdHlwZTogKCkgLT4gYm9vbAogICAgICAgICAiIiJDaGVjayBp
ZiB0aGUgZmlsZSBuYW1lIG1hdGNoZXMgdGhlIGNvbmRpdGlvbnMgZm9yIHRoZSBmaWxlIHRvCiAg
ICAgICAgIGJlIGEgd2luZG93IGpzIHRlc3QgZmlsZSIiIgogICAgICAgICByZXR1cm4gIndpbmRv
dyIgaW4gc2VsZi5tZXRhX2ZsYWdzIGFuZCBzZWxmLmV4dCA9PSAiLmpzIgogCiAgICAgQHByb3Bl
cnR5CiAgICAgZGVmIG5hbWVfaXNfd2ViZHJpdmVyKHNlbGYpOgorICAgICAgICAjIHR5cGU6ICgp
IC0+IGJvb2wKICAgICAgICAgIiIiQ2hlY2sgaWYgdGhlIGZpbGUgbmFtZSBtYXRjaGVzIHRoZSBj
b25kaXRpb25zIGZvciB0aGUgZmlsZSB0bwogICAgICAgICBiZSBhIHdlYmRyaXZlciBzcGVjIHRl
c3QgZmlsZSIiIgogICAgICAgICAjIHdkc3BlYyB0ZXN0cyBhcmUgaW4gc3ViZGlyZWN0b3JpZXMg
b2YgL3dlYmRyaXZlciBleGNsdWRpbmcgX19pbml0X18ucHkKQEAgLTMzMCwxMiArNDAzLDE0IEBA
IGNsYXNzIFNvdXJjZUZpbGUob2JqZWN0KToKIAogICAgIEBwcm9wZXJ0eQogICAgIGRlZiBuYW1l
X2lzX3JlZmVyZW5jZShzZWxmKToKKyAgICAgICAgIyB0eXBlOiAoKSAtPiBib29sCiAgICAgICAg
ICIiIkNoZWNrIGlmIHRoZSBmaWxlIG5hbWUgbWF0Y2hlcyB0aGUgY29uZGl0aW9ucyBmb3IgdGhl
IGZpbGUgdG8KICAgICAgICAgYmUgYSByZWZlcmVuY2UgZmlsZSAobm90IGEgcmVmdGVzdCkiIiIK
LSAgICAgICAgcmV0dXJuICIvcmVmZXJlbmNlLyIgaW4gc2VsZi51cmwgb3IgIi9yZWZ0ZXN0LyIg
aW4gc2VsZi51cmwgb3IgYm9vbChyZWZlcmVuY2VfZmlsZV9yZS5zZWFyY2goc2VsZi5uYW1lKSkK
KyAgICAgICAgcmV0dXJuICIvcmVmZXJlbmNlLyIgaW4gc2VsZi51cmwgb3IgYm9vbChyZWZlcmVu
Y2VfZmlsZV9yZS5zZWFyY2goc2VsZi5uYW1lKSkKIAogICAgIEBwcm9wZXJ0eQogICAgIGRlZiBt
YXJrdXBfdHlwZShzZWxmKToKKyAgICAgICAgIyB0eXBlOiAoKSAtPiBPcHRpb25hbFtUZXh0XQog
ICAgICAgICAiIiJSZXR1cm4gdGhlIHR5cGUgb2YgbWFya3VwIGNvbnRhaW5lZCBpbiBhIGZpbGUs
IGJhc2VkIG9uIGl0cyBleHRlbnNpb24sCiAgICAgICAgIG9yIE5vbmUgaWYgaXQgZG9lc24ndCBj
b250YWluIG1hcmt1cCIiIgogICAgICAgICBleHQgPSBzZWxmLmV4dApAQCAtMzU0LDYgKzQyOSw3
IEBAIGNsYXNzIFNvdXJjZUZpbGUob2JqZWN0KToKIAogICAgIEBjYWNoZWRfcHJvcGVydHkKICAg
ICBkZWYgcm9vdChzZWxmKToKKyAgICAgICAgIyB0eXBlOiAoKSAtPiBPcHRpb25hbFtVbmlvbltF
bGVtZW50VHJlZS5FbGVtZW50LCBFbGVtZW50VHJlZS5FbGVtZW50VHJlZV1dCiAgICAgICAgICIi
IlJldHVybiBhbiBFbGVtZW50VHJlZSBFbGVtZW50IGZvciB0aGUgcm9vdCBub2RlIG9mIHRoZSBm
aWxlIGlmIGl0IGNvbnRhaW5zCiAgICAgICAgIG1hcmt1cCwgb3IgTm9uZSBpZiBpdCBkb2VzIG5v
dCIiIgogICAgICAgICBpZiBub3Qgc2VsZi5tYXJrdXBfdHlwZToKQEAgLTM2OCw3ICs0NDQsNyBA
QCBjbGFzcyBTb3VyY2VGaWxlKG9iamVjdCk6CiAgICAgICAgICAgICAgICAgcmV0dXJuIE5vbmUK
IAogICAgICAgICBpZiBoYXNhdHRyKHRyZWUsICJnZXRyb290Iik6Ci0gICAgICAgICAgICByb290
ID0gdHJlZS5nZXRyb290KCkKKyAgICAgICAgICAgIHJvb3QgPSB0cmVlLmdldHJvb3QoKSAgIyB0
eXBlOiBVbmlvbltFbGVtZW50VHJlZS5FbGVtZW50LCBFbGVtZW50VHJlZS5FbGVtZW50VHJlZV0K
ICAgICAgICAgZWxzZToKICAgICAgICAgICAgIHJvb3QgPSB0cmVlCiAKQEAgLTM3NiwxMiArNDUy
LDE1IEBAIGNsYXNzIFNvdXJjZUZpbGUob2JqZWN0KToKIAogICAgIEBjYWNoZWRfcHJvcGVydHkK
ICAgICBkZWYgdGltZW91dF9ub2RlcyhzZWxmKToKKyAgICAgICAgIyB0eXBlOiAoKSAtPiBMaXN0
W0VsZW1lbnRUcmVlLkVsZW1lbnRdCiAgICAgICAgICIiIkxpc3Qgb2YgRWxlbWVudFRyZWUgRWxl
bWVudHMgY29ycmVzcG9uZGluZyB0byBub2RlcyBpbiBhIHRlc3QgdGhhdAogICAgICAgICBzcGVj
aWZ5IHRpbWVvdXRzIiIiCisgICAgICAgIGFzc2VydCBzZWxmLnJvb3QgaXMgbm90IE5vbmUKICAg
ICAgICAgcmV0dXJuIHNlbGYucm9vdC5maW5kYWxsKCIuLy97aHR0cDovL3d3dy53My5vcmcvMTk5
OS94aHRtbH1tZXRhW0BuYW1lPSd0aW1lb3V0J10iKQogCiAgICAgQGNhY2hlZF9wcm9wZXJ0eQog
ICAgIGRlZiBzY3JpcHRfbWV0YWRhdGEoc2VsZik6CisgICAgICAgICMgdHlwZTogKCkgLT4gT3B0
aW9uYWxbTGlzdFtUdXBsZVtieXRlcywgYnl0ZXNdXV0KICAgICAgICAgaWYgc2VsZi5uYW1lX2lz
X3dvcmtlciBvciBzZWxmLm5hbWVfaXNfbXVsdGlfZ2xvYmFsIG9yIHNlbGYubmFtZV9pc193aW5k
b3c6CiAgICAgICAgICAgICByZWdleHAgPSBqc19tZXRhX3JlCiAgICAgICAgIGVsaWYgc2VsZi5u
YW1lX2lzX3dlYmRyaXZlcjoKQEAgLTM5NCw2ICs0NzMsNyBAQCBjbGFzcyBTb3VyY2VGaWxlKG9i
amVjdCk6CiAKICAgICBAY2FjaGVkX3Byb3BlcnR5CiAgICAgZGVmIHRpbWVvdXQoc2VsZik6Cisg
ICAgICAgICMgdHlwZTogKCkgLT4gT3B0aW9uYWxbVGV4dF0KICAgICAgICAgIiIiVGhlIHRpbWVv
dXQgb2YgYSB0ZXN0IG9yIHJlZmVyZW5jZSBmaWxlLiAibG9uZyIgaWYgdGhlIGZpbGUgaGFzIGFu
IGV4dGVuZGVkIHRpbWVvdXQKICAgICAgICAgb3IgTm9uZSBvdGhlcndpc2UiIiIKICAgICAgICAg
aWYgc2VsZi5zY3JpcHRfbWV0YWRhdGE6CkBAIC00MDQsNyArNDg0LDcgQEAgY2xhc3MgU291cmNl
RmlsZShvYmplY3QpOgogICAgICAgICAgICAgcmV0dXJuIE5vbmUKIAogICAgICAgICBpZiBzZWxm
LnRpbWVvdXRfbm9kZXM6Ci0gICAgICAgICAgICB0aW1lb3V0X3N0ciA9IHNlbGYudGltZW91dF9u
b2Rlc1swXS5hdHRyaWIuZ2V0KCJjb250ZW50IiwgTm9uZSkKKyAgICAgICAgICAgIHRpbWVvdXRf
c3RyID0gc2VsZi50aW1lb3V0X25vZGVzWzBdLmF0dHJpYi5nZXQoImNvbnRlbnQiLCBOb25lKSAg
IyB0eXBlOiBPcHRpb25hbFtUZXh0XQogICAgICAgICAgICAgaWYgdGltZW91dF9zdHIgYW5kIHRp
bWVvdXRfc3RyLmxvd2VyKCkgPT0gImxvbmciOgogICAgICAgICAgICAgICAgIHJldHVybiAibG9u
ZyIKIApAQCAtNDEyLDEyICs0OTIsMTUgQEAgY2xhc3MgU291cmNlRmlsZShvYmplY3QpOgogCiAg
ICAgQGNhY2hlZF9wcm9wZXJ0eQogICAgIGRlZiB2aWV3cG9ydF9ub2RlcyhzZWxmKToKKyAgICAg
ICAgIyB0eXBlOiAoKSAtPiBMaXN0W0VsZW1lbnRUcmVlLkVsZW1lbnRdCiAgICAgICAgICIiIkxp
c3Qgb2YgRWxlbWVudFRyZWUgRWxlbWVudHMgY29ycmVzcG9uZGluZyB0byBub2RlcyBpbiBhIHRl
c3QgdGhhdAogICAgICAgICBzcGVjaWZ5IHZpZXdwb3J0IHNpemVzIiIiCisgICAgICAgIGFzc2Vy
dCBzZWxmLnJvb3QgaXMgbm90IE5vbmUKICAgICAgICAgcmV0dXJuIHNlbGYucm9vdC5maW5kYWxs
KCIuLy97aHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbH1tZXRhW0BuYW1lPSd2aWV3cG9ydC1z
aXplJ10iKQogCiAgICAgQGNhY2hlZF9wcm9wZXJ0eQogICAgIGRlZiB2aWV3cG9ydF9zaXplKHNl
bGYpOgorICAgICAgICAjIHR5cGU6ICgpIC0+IE9wdGlvbmFsW1RleHRdCiAgICAgICAgICIiIlRo
ZSB2aWV3cG9ydCBzaXplIG9mIGEgdGVzdCBvciByZWZlcmVuY2UgZmlsZSIiIgogICAgICAgICBp
ZiBzZWxmLnJvb3QgaXMgTm9uZToKICAgICAgICAgICAgIHJldHVybiBOb25lCkBAIC00MjksMTIg
KzUxMiwxNSBAQCBjbGFzcyBTb3VyY2VGaWxlKG9iamVjdCk6CiAKICAgICBAY2FjaGVkX3Byb3Bl
cnR5CiAgICAgZGVmIGRwaV9ub2RlcyhzZWxmKToKKyAgICAgICAgIyB0eXBlOiAoKSAtPiBMaXN0
W0VsZW1lbnRUcmVlLkVsZW1lbnRdCiAgICAgICAgICIiIkxpc3Qgb2YgRWxlbWVudFRyZWUgRWxl
bWVudHMgY29ycmVzcG9uZGluZyB0byBub2RlcyBpbiBhIHRlc3QgdGhhdAogICAgICAgICBzcGVj
aWZ5IGRldmljZSBwaXhlbCByYXRpb3MiIiIKKyAgICAgICAgYXNzZXJ0IHNlbGYucm9vdCBpcyBu
b3QgTm9uZQogICAgICAgICByZXR1cm4gc2VsZi5yb290LmZpbmRhbGwoIi4vL3todHRwOi8vd3d3
LnczLm9yZy8xOTk5L3hodG1sfW1ldGFbQG5hbWU9J2RldmljZS1waXhlbC1yYXRpbyddIikKIAog
ICAgIEBjYWNoZWRfcHJvcGVydHkKICAgICBkZWYgZHBpKHNlbGYpOgorICAgICAgICAjIHR5cGU6
ICgpIC0+IE9wdGlvbmFsW1RleHRdCiAgICAgICAgICIiIlRoZSBkZXZpY2UgcGl4ZWwgcmF0aW8g
b2YgYSB0ZXN0IG9yIHJlZmVyZW5jZSBmaWxlIiIiCiAgICAgICAgIGlmIHNlbGYucm9vdCBpcyBO
b25lOgogICAgICAgICAgICAgcmV0dXJuIE5vbmUKQEAgLTQ0NCwxNCArNTMwLDkzIEBAIGNsYXNz
IFNvdXJjZUZpbGUob2JqZWN0KToKIAogICAgICAgICByZXR1cm4gc2VsZi5kcGlfbm9kZXNbMF0u
YXR0cmliLmdldCgiY29udGVudCIsIE5vbmUpCiAKKyAgICBAY2FjaGVkX3Byb3BlcnR5CisgICAg
ZGVmIGZ1enp5X25vZGVzKHNlbGYpOgorICAgICAgICAjIHR5cGU6ICgpIC0+IExpc3RbRWxlbWVu
dFRyZWUuRWxlbWVudF0KKyAgICAgICAgIiIiTGlzdCBvZiBFbGVtZW50VHJlZSBFbGVtZW50cyBj
b3JyZXNwb25kaW5nIHRvIG5vZGVzIGluIGEgdGVzdCB0aGF0CisgICAgICAgIHNwZWNpZnkgcmVm
dGVzdCBmdXp6aW5lc3MiIiIKKyAgICAgICAgYXNzZXJ0IHNlbGYucm9vdCBpcyBub3QgTm9uZQor
ICAgICAgICByZXR1cm4gc2VsZi5yb290LmZpbmRhbGwoIi4vL3todHRwOi8vd3d3LnczLm9yZy8x
OTk5L3hodG1sfW1ldGFbQG5hbWU9J2Z1enp5J10iKQorCisgICAgQGNhY2hlZF9wcm9wZXJ0eQor
ICAgIGRlZiBmdXp6eShzZWxmKToKKyAgICAgICAgIyB0eXBlOiAoKSAtPiBEaWN0W09wdGlvbmFs
W1R1cGxlW1RleHQsIFRleHQsIFRleHRdXSwgTGlzdFtMaXN0W2ludF1dXQorICAgICAgICBydiA9
IHt9ICAjIHR5cGU6IERpY3RbT3B0aW9uYWxbVHVwbGVbVGV4dCwgVGV4dCwgVGV4dF1dLCBMaXN0
W0xpc3RbaW50XV1dCisgICAgICAgIGlmIHNlbGYucm9vdCBpcyBOb25lOgorICAgICAgICAgICAg
cmV0dXJuIHJ2CisKKyAgICAgICAgaWYgbm90IHNlbGYuZnV6enlfbm9kZXM6CisgICAgICAgICAg
ICByZXR1cm4gcnYKKworICAgICAgICBhcmdzID0gW3UibWF4RGlmZmVyZW5jZSIsIHUidG90YWxQ
aXhlbHMiXQorCisgICAgICAgIGZvciBub2RlIGluIHNlbGYuZnV6enlfbm9kZXM6CisgICAgICAg
ICAgICBpdGVtID0gbm9kZS5hdHRyaWIuZ2V0KHUiY29udGVudCIsIHUiIikgICMgdHlwZTogVGV4
dAorCisgICAgICAgICAgICBwYXJ0cyA9IGl0ZW0ucnNwbGl0KHUiOiIsIDEpCisgICAgICAgICAg
ICBpZiBsZW4ocGFydHMpID09IDE6CisgICAgICAgICAgICAgICAga2V5ID0gTm9uZSAgIyB0eXBl
OiBPcHRpb25hbFtUdXBsZVtUZXh0LCBUZXh0LCBUZXh0XV0KKyAgICAgICAgICAgICAgICB2YWx1
ZSA9IHBhcnRzWzBdCisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgIGtleV9wYXJ0
ID0gdXJsam9pbihzZWxmLnVybCwgcGFydHNbMF0pCisgICAgICAgICAgICAgICAgcmVmdHlwZSA9
IE5vbmUKKyAgICAgICAgICAgICAgICBmb3IgcmVmIGluIHNlbGYucmVmZXJlbmNlczogICMgdHlw
ZTogVHVwbGVbVGV4dCwgVGV4dF0KKyAgICAgICAgICAgICAgICAgICAgaWYgcmVmWzBdID09IGtl
eV9wYXJ0OgorICAgICAgICAgICAgICAgICAgICAgICAgcmVmdHlwZSA9IHJlZlsxXQorICAgICAg
ICAgICAgICAgICAgICAgICAgYnJlYWsKKyAgICAgICAgICAgICAgICBpZiByZWZ0eXBlIG5vdCBp
biAodSI9PSIsIHUiIT0iKToKKyAgICAgICAgICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigi
RnV6enkga2V5ICVzIGRvZXNuJ3QgY29ycmVzcG9uZCB0byBhIHJlZmVyZW5jZXMiICUga2V5X3Bh
cnQpCisgICAgICAgICAgICAgICAga2V5ID0gKHNlbGYudXJsLCBrZXlfcGFydCwgcmVmdHlwZSkK
KyAgICAgICAgICAgICAgICB2YWx1ZSA9IHBhcnRzWzFdCisgICAgICAgICAgICByYW5nZXMgPSB2
YWx1ZS5zcGxpdCh1IjsiKQorICAgICAgICAgICAgaWYgbGVuKHJhbmdlcykgIT0gMjoKKyAgICAg
ICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJNYWxmb3JtZWQgZnV6enkgdmFsdWUgJXMiICUg
aXRlbSkKKyAgICAgICAgICAgIGFyZ192YWx1ZXMgPSB7fSAgIyB0eXBlOiBEaWN0W1RleHQsIExp
c3RbaW50XV0KKyAgICAgICAgICAgIHBvc2l0aW9uYWxfYXJncyA9IGRlcXVlKCkgICMgdHlwZTog
RGVxdWVbTGlzdFtpbnRdXQorICAgICAgICAgICAgZm9yIHJhbmdlX3N0cl92YWx1ZSBpbiByYW5n
ZXM6ICAjIHR5cGU6IFRleHQKKyAgICAgICAgICAgICAgICBuYW1lID0gTm9uZSAgIyB0eXBlOiBP
cHRpb25hbFtUZXh0XQorICAgICAgICAgICAgICAgIGlmIHUiPSIgaW4gcmFuZ2Vfc3RyX3ZhbHVl
OgorICAgICAgICAgICAgICAgICAgICBuYW1lLCByYW5nZV9zdHJfdmFsdWUgPSBbcGFydC5zdHJp
cCgpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3IgcGFy
dCBpbiByYW5nZV9zdHJfdmFsdWUuc3BsaXQodSI9IiwgMSldCisgICAgICAgICAgICAgICAgICAg
IGlmIG5hbWUgbm90IGluIGFyZ3M6CisgICAgICAgICAgICAgICAgICAgICAgICByYWlzZSBWYWx1
ZUVycm9yKCIlcyBpcyBub3QgYSB2YWxpZCBmdXp6eSBwcm9wZXJ0eSIgJSBuYW1lKQorICAgICAg
ICAgICAgICAgICAgICBpZiBhcmdfdmFsdWVzLmdldChuYW1lKToKKyAgICAgICAgICAgICAgICAg
ICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoIkdvdCBtdWx0aXBsZSB2YWx1ZXMgZm9yIGFyZ3VtZW50
ICVzIiAlIG5hbWUpCisgICAgICAgICAgICAgICAgaWYgdSItIiBpbiByYW5nZV9zdHJfdmFsdWU6
CisgICAgICAgICAgICAgICAgICAgIHJhbmdlX21pbiwgcmFuZ2VfbWF4ID0gcmFuZ2Vfc3RyX3Zh
bHVlLnNwbGl0KHUiLSIpCisgICAgICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICAg
ICAgcmFuZ2VfbWluID0gcmFuZ2Vfc3RyX3ZhbHVlCisgICAgICAgICAgICAgICAgICAgIHJhbmdl
X21heCA9IHJhbmdlX3N0cl92YWx1ZQorICAgICAgICAgICAgICAgIHRyeToKKyAgICAgICAgICAg
ICAgICAgICAgcmFuZ2VfdmFsdWUgPSBbaW50KHguc3RyaXAoKSkgZm9yIHggaW4gKHJhbmdlX21p
biwgcmFuZ2VfbWF4KV0KKyAgICAgICAgICAgICAgICBleGNlcHQgVmFsdWVFcnJvcjoKKyAgICAg
ICAgICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigiRnV6enkgdmFsdWUgJXMgbXVzdCBiZSBh
IHJhbmdlIG9mIGludGVnZXJzIiAlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgcmFuZ2Vfc3RyX3ZhbHVlKQorICAgICAgICAgICAgICAgIGlmIG5hbWUgaXMgTm9uZToKKyAg
ICAgICAgICAgICAgICAgICAgcG9zaXRpb25hbF9hcmdzLmFwcGVuZChyYW5nZV92YWx1ZSkKKyAg
ICAgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgICAgICBhcmdfdmFsdWVzW25hbWVd
ID0gcmFuZ2VfdmFsdWUKKyAgICAgICAgICAgIHJ2W2tleV0gPSBbXQorICAgICAgICAgICAgZm9y
IGFyZ19uYW1lIGluIGFyZ3M6CisgICAgICAgICAgICAgICAgaWYgYXJnX3ZhbHVlcy5nZXQoYXJn
X25hbWUpOgorICAgICAgICAgICAgICAgICAgICBhcmdfdmFsdWUgPSBhcmdfdmFsdWVzLnBvcChh
cmdfbmFtZSkKKyAgICAgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgICAgICBhcmdf
dmFsdWUgPSBwb3NpdGlvbmFsX2FyZ3MucG9wbGVmdCgpCisgICAgICAgICAgICAgICAgcnZba2V5
XS5hcHBlbmQoYXJnX3ZhbHVlKQorICAgICAgICAgICAgYXNzZXJ0IGxlbihhcmdfdmFsdWVzKSA9
PSAwIGFuZCBsZW4ocG9zaXRpb25hbF9hcmdzKSA9PSAwCisgICAgICAgIHJldHVybiBydgorCiAg
ICAgQGNhY2hlZF9wcm9wZXJ0eQogICAgIGRlZiB0ZXN0aGFybmVzc19ub2RlcyhzZWxmKToKKyAg
ICAgICAgIyB0eXBlOiAoKSAtPiBMaXN0W0VsZW1lbnRUcmVlLkVsZW1lbnRdCiAgICAgICAgICIi
Ikxpc3Qgb2YgRWxlbWVudFRyZWUgRWxlbWVudHMgY29ycmVzcG9uZGluZyB0byBub2RlcyByZXBy
ZXNlbnRpbmcgYQogICAgICAgICB0ZXN0aGFybmVzcy5qcyBzY3JpcHQiIiIKKyAgICAgICAgYXNz
ZXJ0IHNlbGYucm9vdCBpcyBub3QgTm9uZQogICAgICAgICByZXR1cm4gc2VsZi5yb290LmZpbmRh
bGwoIi4vL3todHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sfXNjcmlwdFtAc3JjPScvcmVzb3Vy
Y2VzL3Rlc3RoYXJuZXNzLmpzJ10iKQogCiAgICAgQGNhY2hlZF9wcm9wZXJ0eQogICAgIGRlZiBj
b250ZW50X2lzX3Rlc3RoYXJuZXNzKHNlbGYpOgorICAgICAgICAjIHR5cGU6ICgpIC0+IE9wdGlv
bmFsW2Jvb2xdCiAgICAgICAgICIiIkJvb2xlYW4gaW5kaWNhdGluZyB3aGV0aGVyIHRoZSBmaWxl
IGNvbnRlbnQgcmVwcmVzZW50cyBhCiAgICAgICAgIHRlc3RoYXJuZXNzLmpzIHRlc3QiIiIKICAg
ICAgICAgaWYgc2VsZi5yb290IGlzIE5vbmU6CkBAIC00NjAsMjEgKzYyNSwyNiBAQCBjbGFzcyBT
b3VyY2VGaWxlKG9iamVjdCk6CiAKICAgICBAY2FjaGVkX3Byb3BlcnR5CiAgICAgZGVmIHZhcmlh
bnRfbm9kZXMoc2VsZik6CisgICAgICAgICMgdHlwZTogKCkgLT4gTGlzdFtFbGVtZW50VHJlZS5F
bGVtZW50XQogICAgICAgICAiIiJMaXN0IG9mIEVsZW1lbnRUcmVlIEVsZW1lbnRzIGNvcnJlc3Bv
bmRpbmcgdG8gbm9kZXMgcmVwcmVzZW50aW5nIGEKICAgICAgICAgdGVzdCB2YXJpYW50IiIiCisg
ICAgICAgIGFzc2VydCBzZWxmLnJvb3QgaXMgbm90IE5vbmUKICAgICAgICAgcmV0dXJuIHNlbGYu
cm9vdC5maW5kYWxsKCIuLy97aHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbH1tZXRhW0BuYW1l
PSd2YXJpYW50J10iKQogCiAgICAgQGNhY2hlZF9wcm9wZXJ0eQogICAgIGRlZiB0ZXN0X3Zhcmlh
bnRzKHNlbGYpOgotICAgICAgICBydiA9IFtdCisgICAgICAgICMgdHlwZTogKCkgLT4gTGlzdFtU
ZXh0XQorICAgICAgICBydiA9IFtdICAjIHR5cGU6IExpc3RbVGV4dF0KICAgICAgICAgaWYgc2Vs
Zi5leHQgPT0gIi5qcyI6Ci0gICAgICAgICAgICBmb3IgKGtleSwgdmFsdWUpIGluIHNlbGYuc2Ny
aXB0X21ldGFkYXRhOgorICAgICAgICAgICAgc2NyaXB0X21ldGFkYXRhID0gc2VsZi5zY3JpcHRf
bWV0YWRhdGEKKyAgICAgICAgICAgIGFzc2VydCBzY3JpcHRfbWV0YWRhdGEgaXMgbm90IE5vbmUK
KyAgICAgICAgICAgIGZvciAoa2V5LCB2YWx1ZSkgaW4gc2NyaXB0X21ldGFkYXRhOgogICAgICAg
ICAgICAgICAgIGlmIGtleSA9PSBiInZhcmlhbnQiOgogICAgICAgICAgICAgICAgICAgICBydi5h
cHBlbmQodmFsdWUuZGVjb2RlKCJ1dGYtOCIpKQogICAgICAgICBlbHNlOgogICAgICAgICAgICAg
Zm9yIGVsZW1lbnQgaW4gc2VsZi52YXJpYW50X25vZGVzOgogICAgICAgICAgICAgICAgIGlmICJj
b250ZW50IiBpbiBlbGVtZW50LmF0dHJpYjoKLSAgICAgICAgICAgICAgICAgICAgdmFyaWFudCA9
IGVsZW1lbnQuYXR0cmliWyJjb250ZW50Il0KKyAgICAgICAgICAgICAgICAgICAgdmFyaWFudCA9
IGVsZW1lbnQuYXR0cmliWyJjb250ZW50Il0gICMgdHlwZTogVGV4dAogICAgICAgICAgICAgICAg
ICAgICBydi5hcHBlbmQodmFyaWFudCkKIAogICAgICAgICBmb3IgdmFyaWFudCBpbiBydjoKQEAg
LTQ4NywxMiArNjU3LDE1IEBAIGNsYXNzIFNvdXJjZUZpbGUob2JqZWN0KToKIAogICAgIEBjYWNo
ZWRfcHJvcGVydHkKICAgICBkZWYgdGVzdGRyaXZlcl9ub2RlcyhzZWxmKToKKyAgICAgICAgIyB0
eXBlOiAoKSAtPiBMaXN0W0VsZW1lbnRUcmVlLkVsZW1lbnRdCiAgICAgICAgICIiIkxpc3Qgb2Yg
RWxlbWVudFRyZWUgRWxlbWVudHMgY29ycmVzcG9uZGluZyB0byBub2RlcyByZXByZXNlbnRpbmcg
YQogICAgICAgICB0ZXN0ZHJpdmVyLmpzIHNjcmlwdCIiIgorICAgICAgICBhc3NlcnQgc2VsZi5y
b290IGlzIG5vdCBOb25lCiAgICAgICAgIHJldHVybiBzZWxmLnJvb3QuZmluZGFsbCgiLi8ve2h0
dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWx9c2NyaXB0W0BzcmM9Jy9yZXNvdXJjZXMvdGVzdGRy
aXZlci5qcyddIikKIAogICAgIEBjYWNoZWRfcHJvcGVydHkKICAgICBkZWYgaGFzX3Rlc3Rkcml2
ZXIoc2VsZik6CisgICAgICAgICMgdHlwZTogKCkgLT4gT3B0aW9uYWxbYm9vbF0KICAgICAgICAg
IiIiQm9vbGVhbiBpbmRpY2F0aW5nIHdoZXRoZXIgdGhlIGZpbGUgY29udGVudCByZXByZXNlbnRz
IGEKICAgICAgICAgdGVzdGhhcm5lc3MuanMgdGVzdCIiIgogICAgICAgICBpZiBzZWxmLnJvb3Qg
aXMgTm9uZToKQEAgLTUwMSw2ICs2NzQsNyBAQCBjbGFzcyBTb3VyY2VGaWxlKG9iamVjdCk6CiAK
ICAgICBAY2FjaGVkX3Byb3BlcnR5CiAgICAgZGVmIHJlZnRlc3Rfbm9kZXMoc2VsZik6CisgICAg
ICAgICMgdHlwZTogKCkgLT4gTGlzdFtFbGVtZW50VHJlZS5FbGVtZW50XQogICAgICAgICAiIiJM
aXN0IG9mIEVsZW1lbnRUcmVlIEVsZW1lbnRzIGNvcnJlc3BvbmRpbmcgdG8gbm9kZXMgcmVwcmVz
ZW50aW5nIGEKICAgICAgICAgdG8gYSByZWZ0ZXN0IDxsaW5rPiIiIgogICAgICAgICBpZiBzZWxm
LnJvb3QgaXMgTm9uZToKQEAgLTUxMiw5ICs2ODYsMTAgQEAgY2xhc3MgU291cmNlRmlsZShvYmpl
Y3QpOgogCiAgICAgQGNhY2hlZF9wcm9wZXJ0eQogICAgIGRlZiByZWZlcmVuY2VzKHNlbGYpOgor
ICAgICAgICAjIHR5cGU6ICgpIC0+IExpc3RbVHVwbGVbVGV4dCwgVGV4dF1dCiAgICAgICAgICIi
Ikxpc3Qgb2YgKHJlZl91cmwsIHJlbGF0aW9uKSB0dXBsZXMgZm9yIGFueSByZWZ0ZXN0IHJlZmVy
ZW5jZXMgc3BlY2lmaWVkIGluCiAgICAgICAgIHRoZSBmaWxlIiIiCi0gICAgICAgIHJ2ID0gW10K
KyAgICAgICAgcnYgPSBbXSAgIyB0eXBlOiBMaXN0W1R1cGxlW1RleHQsIFRleHRdXQogICAgICAg
ICByZWxfbWFwID0geyJtYXRjaCI6ICI9PSIsICJtaXNtYXRjaCI6ICIhPSJ9CiAgICAgICAgIGZv
ciBpdGVtIGluIHNlbGYucmVmdGVzdF9ub2RlczoKICAgICAgICAgICAgIGlmICJocmVmIiBpbiBp
dGVtLmF0dHJpYjoKQEAgLTUyNSwxMiArNzAwLDE0IEBAIGNsYXNzIFNvdXJjZUZpbGUob2JqZWN0
KToKIAogICAgIEBjYWNoZWRfcHJvcGVydHkKICAgICBkZWYgY29udGVudF9pc19yZWZfbm9kZShz
ZWxmKToKKyAgICAgICAgIyB0eXBlOiAoKSAtPiBib29sCiAgICAgICAgICIiIkJvb2xlYW4gaW5k
aWNhdGluZyB3aGV0aGVyIHRoZSBmaWxlIGlzIGEgbm9uLWxlYWYgbm9kZSBpbiBhIHJlZnRlc3QK
ICAgICAgICAgZ3JhcGggKGkuZS4gaWYgaXQgY29udGFpbnMgYW55IDxsaW5rIHJlbD1bbWlzXW1h
dGNoPiIiIgogICAgICAgICByZXR1cm4gYm9vbChzZWxmLnJlZmVyZW5jZXMpCiAKICAgICBAY2Fj
aGVkX3Byb3BlcnR5CiAgICAgZGVmIGNzc19mbGFnX25vZGVzKHNlbGYpOgorICAgICAgICAjIHR5
cGU6ICgpIC0+IExpc3RbRWxlbWVudFRyZWUuRWxlbWVudF0KICAgICAgICAgIiIiTGlzdCBvZiBF
bGVtZW50VHJlZSBFbGVtZW50cyBjb3JyZXNwb25kaW5nIHRvIG5vZGVzIHJlcHJlc2VudGluZyBh
CiAgICAgICAgIGZsYWcgPG1ldGE+IiIiCiAgICAgICAgIGlmIHNlbGYucm9vdCBpcyBOb25lOgpA
QCAtNTM5LDggKzcxNiw5IEBAIGNsYXNzIFNvdXJjZUZpbGUob2JqZWN0KToKIAogICAgIEBjYWNo
ZWRfcHJvcGVydHkKICAgICBkZWYgY3NzX2ZsYWdzKHNlbGYpOgorICAgICAgICAjIHR5cGU6ICgp
IC0+IFNldFtUZXh0XQogICAgICAgICAiIiJTZXQgb2YgZmxhZ3Mgc3BlY2lmaWVkIGluIHRoZSBm
aWxlIiIiCi0gICAgICAgIHJ2ID0gc2V0KCkKKyAgICAgICAgcnYgPSBzZXQoKSAgIyB0eXBlOiBT
ZXRbVGV4dF0KICAgICAgICAgZm9yIGl0ZW0gaW4gc2VsZi5jc3NfZmxhZ19ub2RlczoKICAgICAg
ICAgICAgIGlmICJjb250ZW50IiBpbiBpdGVtLmF0dHJpYjoKICAgICAgICAgICAgICAgICBmb3Ig
ZmxhZyBpbiBpdGVtLmF0dHJpYlsiY29udGVudCJdLnNwbGl0KCk6CkBAIC01NDksNiArNzI3LDcg
QEAgY2xhc3MgU291cmNlRmlsZShvYmplY3QpOgogCiAgICAgQGNhY2hlZF9wcm9wZXJ0eQogICAg
IGRlZiBjb250ZW50X2lzX2Nzc19tYW51YWwoc2VsZik6CisgICAgICAgICMgdHlwZTogKCkgLT4g
T3B0aW9uYWxbYm9vbF0KICAgICAgICAgIiIiQm9vbGVhbiBpbmRpY2F0aW5nIHdoZXRoZXIgdGhl
IGZpbGUgY29udGVudCByZXByZXNlbnRzIGEKICAgICAgICAgQ1NTIFdHLXN0eWxlIG1hbnVhbCB0
ZXN0IiIiCiAgICAgICAgIGlmIHNlbGYucm9vdCBpcyBOb25lOgpAQCAtNTU4LDYgKzczNyw3IEBA
IGNsYXNzIFNvdXJjZUZpbGUob2JqZWN0KToKIAogICAgIEBjYWNoZWRfcHJvcGVydHkKICAgICBk
ZWYgc3BlY19saW5rX25vZGVzKHNlbGYpOgorICAgICAgICAjIHR5cGU6ICgpIC0+IExpc3RbRWxl
bWVudFRyZWUuRWxlbWVudF0KICAgICAgICAgIiIiTGlzdCBvZiBFbGVtZW50VHJlZSBFbGVtZW50
cyBjb3JyZXNwb25kaW5nIHRvIG5vZGVzIHJlcHJlc2VudGluZyBhCiAgICAgICAgIDxsaW5rIHJl
bD1oZWxwPiwgdXNlZCB0byBwb2ludCB0byBzcGVjcyIiIgogICAgICAgICBpZiBzZWxmLnJvb3Qg
aXMgTm9uZToKQEAgLTU2Niw4ICs3NDYsOSBAQCBjbGFzcyBTb3VyY2VGaWxlKG9iamVjdCk6CiAK
ICAgICBAY2FjaGVkX3Byb3BlcnR5CiAgICAgZGVmIHNwZWNfbGlua3Moc2VsZik6CisgICAgICAg
ICMgdHlwZTogKCkgLT4gU2V0W1RleHRdCiAgICAgICAgICIiIlNldCBvZiBzcGVjIGxpbmtzIHNw
ZWNpZmllZCBpbiB0aGUgZmlsZSIiIgotICAgICAgICBydiA9IHNldCgpCisgICAgICAgIHJ2ID0g
c2V0KCkgICMgdHlwZTogU2V0W1RleHRdCiAgICAgICAgIGZvciBpdGVtIGluIHNlbGYuc3BlY19s
aW5rX25vZGVzOgogICAgICAgICAgICAgaWYgImhyZWYiIGluIGl0ZW0uYXR0cmliOgogICAgICAg
ICAgICAgICAgIHJ2LmFkZChpdGVtLmF0dHJpYlsiaHJlZiJdLnN0cmlwKHNwYWNlX2NoYXJzKSkK
QEAgLTU3NSw2ICs3NTYsNyBAQCBjbGFzcyBTb3VyY2VGaWxlKG9iamVjdCk6CiAKICAgICBAY2Fj
aGVkX3Byb3BlcnR5CiAgICAgZGVmIGNvbnRlbnRfaXNfY3NzX3Zpc3VhbChzZWxmKToKKyAgICAg
ICAgIyB0eXBlOiAoKSAtPiBPcHRpb25hbFtib29sXQogICAgICAgICAiIiJCb29sZWFuIGluZGlj
YXRpbmcgd2hldGhlciB0aGUgZmlsZSBjb250ZW50IHJlcHJlc2VudHMgYQogICAgICAgICBDU1Mg
V0ctc3R5bGUgdmlzdWFsIHRlc3QiIiIKICAgICAgICAgaWYgc2VsZi5yb290IGlzIE5vbmU6CkBA
IC01ODQsMTAgKzc2NiwxMiBAQCBjbGFzcyBTb3VyY2VGaWxlKG9iamVjdCk6CiAKICAgICBAcHJv
cGVydHkKICAgICBkZWYgdHlwZShzZWxmKToKKyAgICAgICAgIyB0eXBlOiAoKSAtPiBUZXh0CiAg
ICAgICAgIHJ2LCBfID0gc2VsZi5tYW5pZmVzdF9pdGVtcygpCiAgICAgICAgIHJldHVybiBydgog
CiAgICAgZGVmIG1hbmlmZXN0X2l0ZW1zKHNlbGYpOgorICAgICAgICAjIHR5cGU6ICgpIC0+IFR1
cGxlW1RleHQsIExpc3RbTWFuaWZlc3RJdGVtXV0KICAgICAgICAgIiIiTGlzdCBvZiBtYW5pZmVz
dCBpdGVtcyBjb3JyZXNwb25kaW5nIHRvIHRoZSBmaWxlLiBUaGVyZSBpcyB0eXBpY2FsbHkgb25l
CiAgICAgICAgIHBlciB0ZXN0LCBidXQgaW4gdGhlIGNhc2Ugb2YgcmVmdGVzdHMgYSBub2RlIG1h
eSBoYXZlIGNvcnJlc3BvbmRpbmcgbWFuaWZlc3QKICAgICAgICAgaXRlbXMgd2l0aG91dCBiZWlu
ZyBhIHRlc3QgaXRzZWxmLiIiIgpAQCAtNTk2LDc4ICs3ODAsMTY1IEBAIGNsYXNzIFNvdXJjZUZp
bGUob2JqZWN0KToKICAgICAgICAgICAgIHJldHVybiBzZWxmLml0ZW1zX2NhY2hlCiAKICAgICAg
ICAgaWYgc2VsZi5uYW1lX2lzX25vbl90ZXN0OgotICAgICAgICAgICAgcnYgPSAic3VwcG9ydCIs
IFtTdXBwb3J0RmlsZShzZWxmKV0KLQotICAgICAgICBlbGlmIHNlbGYubmFtZV9pc19zdHViOgot
ICAgICAgICAgICAgcnYgPSBTdHViLml0ZW1fdHlwZSwgW1N0dWIoc2VsZiwgc2VsZi51cmwpXQor
ICAgICAgICAgICAgcnYgPSAic3VwcG9ydCIsIFsKKyAgICAgICAgICAgICAgICBTdXBwb3J0Rmls
ZSgKKyAgICAgICAgICAgICAgICAgICAgc2VsZi50ZXN0c19yb290LAorICAgICAgICAgICAgICAg
ICAgICBzZWxmLnJlbF9wYXRoCisgICAgICAgICAgICAgICAgKV0gICMgdHlwZTogVHVwbGVbVGV4
dCwgTGlzdFtNYW5pZmVzdEl0ZW1dXQogCiAgICAgICAgIGVsaWYgc2VsZi5uYW1lX2lzX21hbnVh
bDoKLSAgICAgICAgICAgIHJ2ID0gTWFudWFsVGVzdC5pdGVtX3R5cGUsIFtNYW51YWxUZXN0KHNl
bGYsIHNlbGYudXJsKV0KKyAgICAgICAgICAgIHJ2ID0gTWFudWFsVGVzdC5pdGVtX3R5cGUsIFsK
KyAgICAgICAgICAgICAgICBNYW51YWxUZXN0KAorICAgICAgICAgICAgICAgICAgICBzZWxmLnRl
c3RzX3Jvb3QsCisgICAgICAgICAgICAgICAgICAgIHNlbGYucmVsX3BhdGgsCisgICAgICAgICAg
ICAgICAgICAgIHNlbGYudXJsX2Jhc2UsCisgICAgICAgICAgICAgICAgICAgIHNlbGYucmVsX3Vy
bAorICAgICAgICAgICAgICAgICldCiAKICAgICAgICAgZWxpZiBzZWxmLm5hbWVfaXNfY29uZm9y
bWFuY2U6Ci0gICAgICAgICAgICBydiA9IENvbmZvcm1hbmNlQ2hlY2tlclRlc3QuaXRlbV90eXBl
LCBbQ29uZm9ybWFuY2VDaGVja2VyVGVzdChzZWxmLCBzZWxmLnVybCldCisgICAgICAgICAgICBy
diA9IENvbmZvcm1hbmNlQ2hlY2tlclRlc3QuaXRlbV90eXBlLCBbCisgICAgICAgICAgICAgICAg
Q29uZm9ybWFuY2VDaGVja2VyVGVzdCgKKyAgICAgICAgICAgICAgICAgICAgc2VsZi50ZXN0c19y
b290LAorICAgICAgICAgICAgICAgICAgICBzZWxmLnJlbF9wYXRoLAorICAgICAgICAgICAgICAg
ICAgICBzZWxmLnVybF9iYXNlLAorICAgICAgICAgICAgICAgICAgICBzZWxmLnJlbF91cmwKKyAg
ICAgICAgICAgICAgICApXQogCiAgICAgICAgIGVsaWYgc2VsZi5uYW1lX2lzX2NvbmZvcm1hbmNl
X3N1cHBvcnQ6Ci0gICAgICAgICAgICBydiA9ICJzdXBwb3J0IiwgW1N1cHBvcnRGaWxlKHNlbGYp
XQorICAgICAgICAgICAgcnYgPSAic3VwcG9ydCIsIFsKKyAgICAgICAgICAgICAgICBTdXBwb3J0
RmlsZSgKKyAgICAgICAgICAgICAgICAgICAgc2VsZi50ZXN0c19yb290LAorICAgICAgICAgICAg
ICAgICAgICBzZWxmLnJlbF9wYXRoCisgICAgICAgICAgICAgICAgKV0KIAogICAgICAgICBlbGlm
IHNlbGYubmFtZV9pc192aXN1YWw6Ci0gICAgICAgICAgICBydiA9IFZpc3VhbFRlc3QuaXRlbV90
eXBlLCBbVmlzdWFsVGVzdChzZWxmLCBzZWxmLnVybCldCisgICAgICAgICAgICBydiA9IFZpc3Vh
bFRlc3QuaXRlbV90eXBlLCBbCisgICAgICAgICAgICAgICAgVmlzdWFsVGVzdCgKKyAgICAgICAg
ICAgICAgICAgICAgc2VsZi50ZXN0c19yb290LAorICAgICAgICAgICAgICAgICAgICBzZWxmLnJl
bF9wYXRoLAorICAgICAgICAgICAgICAgICAgICBzZWxmLnVybF9iYXNlLAorICAgICAgICAgICAg
ICAgICAgICBzZWxmLnJlbF91cmwKKyAgICAgICAgICAgICAgICApXQogCiAgICAgICAgIGVsaWYg
c2VsZi5uYW1lX2lzX211bHRpX2dsb2JhbDoKICAgICAgICAgICAgIGdsb2JhbHMgPSBiIiIKLSAg
ICAgICAgICAgIGZvciAoa2V5LCB2YWx1ZSkgaW4gc2VsZi5zY3JpcHRfbWV0YWRhdGE6CisgICAg
ICAgICAgICBzY3JpcHRfbWV0YWRhdGEgPSBzZWxmLnNjcmlwdF9tZXRhZGF0YQorICAgICAgICAg
ICAgYXNzZXJ0IHNjcmlwdF9tZXRhZGF0YSBpcyBub3QgTm9uZQorICAgICAgICAgICAgZm9yIChr
ZXksIHZhbHVlKSBpbiBzY3JpcHRfbWV0YWRhdGE6CiAgICAgICAgICAgICAgICAgaWYga2V5ID09
IGIiZ2xvYmFsIjoKICAgICAgICAgICAgICAgICAgICAgZ2xvYmFscyA9IHZhbHVlCiAgICAgICAg
ICAgICAgICAgICAgIGJyZWFrCiAKICAgICAgICAgICAgIHRlc3RzID0gWwotICAgICAgICAgICAg
ICAgIFRlc3RoYXJuZXNzVGVzdChzZWxmLCBnbG9iYWxfdmFyaWFudF91cmwoc2VsZi51cmwsIHN1
ZmZpeCkgKyB2YXJpYW50LCB0aW1lb3V0PXNlbGYudGltZW91dCwKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAganNzaGVsbD1qc3NoZWxsKQorICAgICAgICAgICAgICAgIFRlc3RoYXJu
ZXNzVGVzdCgKKyAgICAgICAgICAgICAgICAgICAgc2VsZi50ZXN0c19yb290LAorICAgICAgICAg
ICAgICAgICAgICBzZWxmLnJlbF9wYXRoLAorICAgICAgICAgICAgICAgICAgICBzZWxmLnVybF9i
YXNlLAorICAgICAgICAgICAgICAgICAgICBnbG9iYWxfdmFyaWFudF91cmwoc2VsZi5yZWxfdXJs
LCBzdWZmaXgpICsgdmFyaWFudCwKKyAgICAgICAgICAgICAgICAgICAgdGltZW91dD1zZWxmLnRp
bWVvdXQsCisgICAgICAgICAgICAgICAgICAgIGpzc2hlbGw9anNzaGVsbCwKKyAgICAgICAgICAg
ICAgICAgICAgc2NyaXB0X21ldGFkYXRhPXNlbGYuc2NyaXB0X21ldGFkYXRhCisgICAgICAgICAg
ICAgICAgKQogICAgICAgICAgICAgICAgIGZvciAoc3VmZml4LCBqc3NoZWxsKSBpbiBzb3J0ZWQo
Z2xvYmFsX3N1ZmZpeGVzKGdsb2JhbHMpKQogICAgICAgICAgICAgICAgIGZvciB2YXJpYW50IGlu
IHNlbGYudGVzdF92YXJpYW50cwotICAgICAgICAgICAgXQorICAgICAgICAgICAgXSAgICMgdHlw
ZTogTGlzdFtNYW5pZmVzdEl0ZW1dCiAgICAgICAgICAgICBydiA9IFRlc3RoYXJuZXNzVGVzdC5p
dGVtX3R5cGUsIHRlc3RzCiAKICAgICAgICAgZWxpZiBzZWxmLm5hbWVfaXNfd29ya2VyOgotICAg
ICAgICAgICAgdGVzdF91cmwgPSByZXBsYWNlX2VuZChzZWxmLnVybCwgIi53b3JrZXIuanMiLCAi
Lndvcmtlci5odG1sIikKKyAgICAgICAgICAgIHRlc3RfdXJsID0gcmVwbGFjZV9lbmQoc2VsZi5y
ZWxfdXJsLCAiLndvcmtlci5qcyIsICIud29ya2VyLmh0bWwiKQogICAgICAgICAgICAgdGVzdHMg
PSBbCi0gICAgICAgICAgICAgICAgVGVzdGhhcm5lc3NUZXN0KHNlbGYsIHRlc3RfdXJsICsgdmFy
aWFudCwgdGltZW91dD1zZWxmLnRpbWVvdXQpCisgICAgICAgICAgICAgICAgVGVzdGhhcm5lc3NU
ZXN0KAorICAgICAgICAgICAgICAgICAgICBzZWxmLnRlc3RzX3Jvb3QsCisgICAgICAgICAgICAg
ICAgICAgIHNlbGYucmVsX3BhdGgsCisgICAgICAgICAgICAgICAgICAgIHNlbGYudXJsX2Jhc2Us
CisgICAgICAgICAgICAgICAgICAgIHRlc3RfdXJsICsgdmFyaWFudCwKKyAgICAgICAgICAgICAg
ICAgICAgdGltZW91dD1zZWxmLnRpbWVvdXQsCisgICAgICAgICAgICAgICAgICAgIHNjcmlwdF9t
ZXRhZGF0YT1zZWxmLnNjcmlwdF9tZXRhZGF0YQorICAgICAgICAgICAgICAgICkKICAgICAgICAg
ICAgICAgICBmb3IgdmFyaWFudCBpbiBzZWxmLnRlc3RfdmFyaWFudHMKICAgICAgICAgICAgIF0K
ICAgICAgICAgICAgIHJ2ID0gVGVzdGhhcm5lc3NUZXN0Lml0ZW1fdHlwZSwgdGVzdHMKIAogICAg
ICAgICBlbGlmIHNlbGYubmFtZV9pc193aW5kb3c6Ci0gICAgICAgICAgICB0ZXN0X3VybCA9IHJl
cGxhY2VfZW5kKHNlbGYudXJsLCAiLndpbmRvdy5qcyIsICIud2luZG93Lmh0bWwiKQorICAgICAg
ICAgICAgdGVzdF91cmwgPSByZXBsYWNlX2VuZChzZWxmLnJlbF91cmwsICIud2luZG93LmpzIiwg
Ii53aW5kb3cuaHRtbCIpCiAgICAgICAgICAgICB0ZXN0cyA9IFsKLSAgICAgICAgICAgICAgICBU
ZXN0aGFybmVzc1Rlc3Qoc2VsZiwgdGVzdF91cmwgKyB2YXJpYW50LCB0aW1lb3V0PXNlbGYudGlt
ZW91dCkKKyAgICAgICAgICAgICAgICBUZXN0aGFybmVzc1Rlc3QoCisgICAgICAgICAgICAgICAg
ICAgIHNlbGYudGVzdHNfcm9vdCwKKyAgICAgICAgICAgICAgICAgICAgc2VsZi5yZWxfcGF0aCwK
KyAgICAgICAgICAgICAgICAgICAgc2VsZi51cmxfYmFzZSwKKyAgICAgICAgICAgICAgICAgICAg
dGVzdF91cmwgKyB2YXJpYW50LAorICAgICAgICAgICAgICAgICAgICB0aW1lb3V0PXNlbGYudGlt
ZW91dCwKKyAgICAgICAgICAgICAgICAgICAgc2NyaXB0X21ldGFkYXRhPXNlbGYuc2NyaXB0X21l
dGFkYXRhCisgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgIGZvciB2YXJpYW50IGlu
IHNlbGYudGVzdF92YXJpYW50cwogICAgICAgICAgICAgXQogICAgICAgICAgICAgcnYgPSBUZXN0
aGFybmVzc1Rlc3QuaXRlbV90eXBlLCB0ZXN0cwogCiAgICAgICAgIGVsaWYgc2VsZi5uYW1lX2lz
X3dlYmRyaXZlcjoKLSAgICAgICAgICAgIHJ2ID0gV2ViZHJpdmVyU3BlY1Rlc3QuaXRlbV90eXBl
LCBbV2ViZHJpdmVyU3BlY1Rlc3Qoc2VsZiwgc2VsZi51cmwsCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpbWVvdXQ9c2Vs
Zi50aW1lb3V0KV0KKyAgICAgICAgICAgIHJ2ID0gV2ViRHJpdmVyU3BlY1Rlc3QuaXRlbV90eXBl
LCBbCisgICAgICAgICAgICAgICAgV2ViRHJpdmVyU3BlY1Rlc3QoCisgICAgICAgICAgICAgICAg
ICAgIHNlbGYudGVzdHNfcm9vdCwKKyAgICAgICAgICAgICAgICAgICAgc2VsZi5yZWxfcGF0aCwK
KyAgICAgICAgICAgICAgICAgICAgc2VsZi51cmxfYmFzZSwKKyAgICAgICAgICAgICAgICAgICAg
c2VsZi5yZWxfdXJsLAorICAgICAgICAgICAgICAgICAgICB0aW1lb3V0PXNlbGYudGltZW91dAor
ICAgICAgICAgICAgICAgICldCiAKICAgICAgICAgZWxpZiBzZWxmLmNvbnRlbnRfaXNfY3NzX21h
bnVhbCBhbmQgbm90IHNlbGYubmFtZV9pc19yZWZlcmVuY2U6Ci0gICAgICAgICAgICBydiA9IE1h
bnVhbFRlc3QuaXRlbV90eXBlLCBbTWFudWFsVGVzdChzZWxmLCBzZWxmLnVybCldCisgICAgICAg
ICAgICBydiA9IE1hbnVhbFRlc3QuaXRlbV90eXBlLCBbCisgICAgICAgICAgICAgICAgTWFudWFs
VGVzdCgKKyAgICAgICAgICAgICAgICAgICAgc2VsZi50ZXN0c19yb290LAorICAgICAgICAgICAg
ICAgICAgICBzZWxmLnJlbF9wYXRoLAorICAgICAgICAgICAgICAgICAgICBzZWxmLnVybF9iYXNl
LAorICAgICAgICAgICAgICAgICAgICBzZWxmLnJlbF91cmwKKyAgICAgICAgICAgICAgICApXQog
CiAgICAgICAgIGVsaWYgc2VsZi5jb250ZW50X2lzX3Rlc3RoYXJuZXNzOgogICAgICAgICAgICAg
cnYgPSBUZXN0aGFybmVzc1Rlc3QuaXRlbV90eXBlLCBbXQogICAgICAgICAgICAgdGVzdGRyaXZl
ciA9IHNlbGYuaGFzX3Rlc3Rkcml2ZXIKICAgICAgICAgICAgIGZvciB2YXJpYW50IGluIHNlbGYu
dGVzdF92YXJpYW50czoKLSAgICAgICAgICAgICAgICB1cmwgPSBzZWxmLnVybCArIHZhcmlhbnQK
LSAgICAgICAgICAgICAgICBydlsxXS5hcHBlbmQoVGVzdGhhcm5lc3NUZXN0KHNlbGYsIHVybCwg
dGltZW91dD1zZWxmLnRpbWVvdXQsIHRlc3Rkcml2ZXI9dGVzdGRyaXZlcikpCisgICAgICAgICAg
ICAgICAgdXJsID0gc2VsZi5yZWxfdXJsICsgdmFyaWFudAorICAgICAgICAgICAgICAgIHJ2WzFd
LmFwcGVuZChUZXN0aGFybmVzc1Rlc3QoCisgICAgICAgICAgICAgICAgICAgIHNlbGYudGVzdHNf
cm9vdCwKKyAgICAgICAgICAgICAgICAgICAgc2VsZi5yZWxfcGF0aCwKKyAgICAgICAgICAgICAg
ICAgICAgc2VsZi51cmxfYmFzZSwKKyAgICAgICAgICAgICAgICAgICAgdXJsLAorICAgICAgICAg
ICAgICAgICAgICB0aW1lb3V0PXNlbGYudGltZW91dCwKKyAgICAgICAgICAgICAgICAgICAgdGVz
dGRyaXZlcj10ZXN0ZHJpdmVyLAorICAgICAgICAgICAgICAgICAgICBzY3JpcHRfbWV0YWRhdGE9
c2VsZi5zY3JpcHRfbWV0YWRhdGEKKyAgICAgICAgICAgICAgICApKQogCiAgICAgICAgIGVsaWYg
c2VsZi5jb250ZW50X2lzX3JlZl9ub2RlOgotICAgICAgICAgICAgcnYgPSAoUmVmVGVzdE5vZGUu
aXRlbV90eXBlLAotICAgICAgICAgICAgICAgICAgW1JlZlRlc3ROb2RlKHNlbGYsIHNlbGYudXJs
LCBzZWxmLnJlZmVyZW5jZXMsIHRpbWVvdXQ9c2VsZi50aW1lb3V0LAotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHZpZXdwb3J0X3NpemU9c2VsZi52aWV3cG9ydF9zaXplLCBkcGk9c2Vs
Zi5kcGkpXSkKKyAgICAgICAgICAgIHJ2ID0gUmVmVGVzdE5vZGUuaXRlbV90eXBlLCBbCisgICAg
ICAgICAgICAgICAgUmVmVGVzdE5vZGUoCisgICAgICAgICAgICAgICAgICAgIHNlbGYudGVzdHNf
cm9vdCwKKyAgICAgICAgICAgICAgICAgICAgc2VsZi5yZWxfcGF0aCwKKyAgICAgICAgICAgICAg
ICAgICAgc2VsZi51cmxfYmFzZSwKKyAgICAgICAgICAgICAgICAgICAgc2VsZi5yZWxfdXJsLAor
ICAgICAgICAgICAgICAgICAgICByZWZlcmVuY2VzPXNlbGYucmVmZXJlbmNlcywKKyAgICAgICAg
ICAgICAgICAgICAgdGltZW91dD1zZWxmLnRpbWVvdXQsCisgICAgICAgICAgICAgICAgICAgIHZp
ZXdwb3J0X3NpemU9c2VsZi52aWV3cG9ydF9zaXplLAorICAgICAgICAgICAgICAgICAgICBkcGk9
c2VsZi5kcGksCisgICAgICAgICAgICAgICAgICAgIGZ1enp5PXNlbGYuZnV6enkKKyAgICAgICAg
ICAgICAgICApXQogCiAgICAgICAgIGVsaWYgc2VsZi5jb250ZW50X2lzX2Nzc192aXN1YWwgYW5k
IG5vdCBzZWxmLm5hbWVfaXNfcmVmZXJlbmNlOgotICAgICAgICAgICAgcnYgPSBWaXN1YWxUZXN0
Lml0ZW1fdHlwZSwgW1Zpc3VhbFRlc3Qoc2VsZiwgc2VsZi51cmwpXQorICAgICAgICAgICAgcnYg
PSBWaXN1YWxUZXN0Lml0ZW1fdHlwZSwgWworICAgICAgICAgICAgICAgIFZpc3VhbFRlc3QoCisg
ICAgICAgICAgICAgICAgICAgIHNlbGYudGVzdHNfcm9vdCwKKyAgICAgICAgICAgICAgICAgICAg
c2VsZi5yZWxfcGF0aCwKKyAgICAgICAgICAgICAgICAgICAgc2VsZi51cmxfYmFzZSwKKyAgICAg
ICAgICAgICAgICAgICAgc2VsZi5yZWxfdXJsCisgICAgICAgICAgICAgICAgKV0KIAogICAgICAg
ICBlbHNlOgotICAgICAgICAgICAgcnYgPSAic3VwcG9ydCIsIFtTdXBwb3J0RmlsZShzZWxmKV0K
KyAgICAgICAgICAgIHJ2ID0gInN1cHBvcnQiLCBbCisgICAgICAgICAgICAgICAgU3VwcG9ydEZp
bGUoCisgICAgICAgICAgICAgICAgICAgIHNlbGYudGVzdHNfcm9vdCwKKyAgICAgICAgICAgICAg
ICAgICAgc2VsZi5yZWxfcGF0aAorICAgICAgICAgICAgICAgICldCisKKyAgICAgICAgYXNzZXJ0
IGxlbihydlsxXSkgPT0gbGVuKHNldChydlsxXSkpCiAKICAgICAgICAgc2VsZi5pdGVtc19jYWNo
ZSA9IHJ2CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvbWFuaWZlc3QvdGVzdHBhdGhzLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9tYW5pZmVzdC90ZXN0cGF0aHMucHkKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjNjMWYwOWQ0MzczCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy9tYW5pZmVzdC90ZXN0cGF0aHMucHkKQEAgLTAsMCArMSw5MiBAQAoraW1wb3J0IGFyZ3Bh
cnNlCitpbXBvcnQganNvbgoraW1wb3J0IG9zCitmcm9tIGNvbGxlY3Rpb25zIGltcG9ydCBkZWZh
dWx0ZGljdAorCitmcm9tIHNpeCBpbXBvcnQgaXRlcml0ZW1zCisKK2Zyb20gLm1hbmlmZXN0IGlt
cG9ydCBsb2FkX2FuZF91cGRhdGUsIE1hbmlmZXN0Citmcm9tIC5sb2cgaW1wb3J0IGdldF9sb2dn
ZXIKKworTVlQWSA9IEZhbHNlCitpZiBNWVBZOgorICAgICMgTVlQWSBpcyBzZXQgdG8gVHJ1ZSB3
aGVuIHJ1biB1bmRlciBNeXB5LgorICAgIGZyb20gdHlwaW5nIGltcG9ydCBBbnkKKyAgICBmcm9t
IHR5cGluZyBpbXBvcnQgRGljdAorICAgIGZyb20gdHlwaW5nIGltcG9ydCBJdGVyYWJsZQorICAg
IGZyb20gdHlwaW5nIGltcG9ydCBMaXN0CisgICAgZnJvbSB0eXBpbmcgaW1wb3J0IFRleHQKKwor
d3B0X3Jvb3QgPSBvcy5wYXRoLmFic3BhdGgob3MucGF0aC5qb2luKG9zLnBhdGguZGlybmFtZShf
X2ZpbGVfXyksIG9zLnBhcmRpciwgb3MucGFyZGlyKSkKKworbG9nZ2VyID0gZ2V0X2xvZ2dlcigp
CisKKworZGVmIGFic19wYXRoKHBhdGgpOgorICAgICMgdHlwZTogKHN0cikgLT4gc3RyCisgICAg
cmV0dXJuIG9zLnBhdGguYWJzcGF0aChvcy5wYXRoLmV4cGFuZHVzZXIocGF0aCkpCisKKworZGVm
IGNyZWF0ZV9wYXJzZXIoKToKKyAgICAjIHR5cGU6ICgpIC0+IGFyZ3BhcnNlLkFyZ3VtZW50UGFy
c2VyCisgICAgcGFyc2VyID0gYXJncGFyc2UuQXJndW1lbnRQYXJzZXIoKQorICAgIHBhcnNlci5h
ZGRfYXJndW1lbnQoCisgICAgICAgICItcCIsICItLXBhdGgiLCB0eXBlPWFic19wYXRoLCBoZWxw
PSJQYXRoIHRvIG1hbmlmZXN0IGZpbGUuIikKKyAgICBwYXJzZXIuYWRkX2FyZ3VtZW50KAorICAg
ICAgICAiLS10ZXN0cy1yb290IiwgdHlwZT1hYnNfcGF0aCwgZGVmYXVsdD13cHRfcm9vdCwgaGVs
cD0iUGF0aCB0byByb290IG9mIHRlc3RzLiIpCisgICAgcGFyc2VyLmFkZF9hcmd1bWVudCgKKyAg
ICAgICAgIi0tbm8tdXBkYXRlIiwgZGVzdD0idXBkYXRlIiwgYWN0aW9uPSJzdG9yZV9mYWxzZSIs
IGRlZmF1bHQ9VHJ1ZSwKKyAgICAgICAgaGVscD0iRG9uJ3QgdXBkYXRlIG1hbmlmZXN0IGJlZm9y
ZSBjb250aW51aW5nIikKKyAgICBwYXJzZXIuYWRkX2FyZ3VtZW50KAorICAgICAgICAiLXIiLCAi
LS1yZWJ1aWxkIiwgYWN0aW9uPSJzdG9yZV90cnVlIiwgZGVmYXVsdD1GYWxzZSwKKyAgICAgICAg
aGVscD0iRm9yY2UgYSBmdWxsIHJlYnVpbGQgb2YgdGhlIG1hbmlmZXN0LiIpCisgICAgcGFyc2Vy
LmFkZF9hcmd1bWVudCgKKyAgICAgICAgIi0tdXJsLWJhc2UiLCBhY3Rpb249InN0b3JlIiwgZGVm
YXVsdD0iLyIsCisgICAgICAgIGhlbHA9IkJhc2UgdXJsIHRvIHVzZSBhcyB0aGUgbW91bnQgcG9p
bnQgZm9yIHRlc3RzIGluIHRoaXMgbWFuaWZlc3QuIikKKyAgICBwYXJzZXIuYWRkX2FyZ3VtZW50
KAorICAgICAgICAiLS1jYWNoZS1yb290IiwgYWN0aW9uPSJzdG9yZSIsIGRlZmF1bHQ9b3MucGF0
aC5qb2luKHdwdF9yb290LCAiLndwdGNhY2hlIiksCisgICAgICAgIGhlbHA9IlBhdGggaW4gd2hp
Y2ggdG8gc3RvcmUgYW55IGNhY2hlcyAoZGVmYXVsdCA8dGVzdHNfcm9vdD4vLndwdGNhY2hlLyki
KQorICAgIHBhcnNlci5hZGRfYXJndW1lbnQoCisgICAgICAgICItLWpzb24iLCBhY3Rpb249InN0
b3JlX3RydWUiLCBkZWZhdWx0PUZhbHNlLAorICAgICAgICBoZWxwPSJPdXRwdXQgYXMgSlNPTiIp
CisgICAgcGFyc2VyLmFkZF9hcmd1bWVudCgKKyAgICAgICAgInRlc3RfaWRzIiwgYWN0aW9uPSJz
dG9yZSIsIG5hcmdzPSIrIiwKKyAgICAgICAgaGVscD0iVGVzdCBpZHMgZm9yIHdoaWNoIHRvIGdl
dCBwYXRocyIpCisgICAgcmV0dXJuIHBhcnNlcgorCisKK2RlZiBnZXRfcGF0aF9pZF9tYXAobWFu
aWZlc3RfZmlsZSwgdGVzdF9pZHMpOgorICAgICMgdHlwZTogKE1hbmlmZXN0LCBJdGVyYWJsZVtU
ZXh0XSkgLT4gRGljdFtUZXh0LCBMaXN0W1RleHRdXQorICAgIHRlc3RfaWRzID0gc2V0KHRlc3Rf
aWRzKQorICAgIHBhdGhfaWRfbWFwID0gZGVmYXVsdGRpY3QobGlzdCkgICMgdHlwZTogRGljdFtU
ZXh0LCBMaXN0W1RleHRdXQorCisgICAgZm9yIGl0ZW1fdHlwZSwgcGF0aCwgdGVzdHMgaW4gbWFu
aWZlc3RfZmlsZToKKyAgICAgICAgZm9yIHRlc3QgaW4gdGVzdHM6CisgICAgICAgICAgICBpZiB0
ZXN0LmlkIGluIHRlc3RfaWRzOgorICAgICAgICAgICAgICAgIHBhdGhfaWRfbWFwW3BhdGhdLmFw
cGVuZCh0ZXN0LmlkKQorICAgIHJldHVybiBwYXRoX2lkX21hcAorCisKK2RlZiBydW4oKiprd2Fy
Z3MpOgorICAgICMgdHlwZTogKCoqQW55KSAtPiBOb25lCisgICAgdGVzdHNfcm9vdCA9IGt3YXJn
c1sidGVzdHNfcm9vdCJdCisgICAgYXNzZXJ0IHRlc3RzX3Jvb3QgaXMgbm90IE5vbmUKKyAgICBw
YXRoID0ga3dhcmdzWyJwYXRoIl0KKyAgICBpZiBwYXRoIGlzIE5vbmU6CisgICAgICAgIHBhdGgg
PSBvcy5wYXRoLmpvaW4oa3dhcmdzWyJ0ZXN0c19yb290Il0sICJNQU5JRkVTVC5qc29uIikKKwor
ICAgIG1hbmlmZXN0X2ZpbGUgPSBsb2FkX2FuZF91cGRhdGUodGVzdHNfcm9vdCwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhdGgsCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBrd2FyZ3NbInVybF9iYXNlIl0sCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICB1cGRhdGU9a3dhcmdzWyJ1cGRhdGUiXSwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHJlYnVpbGQ9a3dhcmdzWyJyZWJ1aWxkIl0sCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBjYWNoZV9yb290PWt3YXJnc1siY2FjaGVfcm9vdCJd
KQorCisgICAgcGF0aF9pZF9tYXAgPSBnZXRfcGF0aF9pZF9tYXAobWFuaWZlc3RfZmlsZSwga3dh
cmdzWyJ0ZXN0X2lkcyJdKQorICAgIGlmIGt3YXJnc1sianNvbiJdOgorICAgICAgICBwcmludChq
c29uLmR1bXBzKHBhdGhfaWRfbWFwKSkKKyAgICBlbHNlOgorICAgICAgICBmb3IgcGF0aCwgdGVz
dF9pZHMgaW4gc29ydGVkKGl0ZXJpdGVtcyhwYXRoX2lkX21hcCkpOgorICAgICAgICAgICAgcHJp
bnQocGF0aCkKKyAgICAgICAgICAgIGZvciB0ZXN0X2lkIGluIHNvcnRlZCh0ZXN0X2lkcyk6Cisg
ICAgICAgICAgICAgICAgcHJpbnQoIiAgIiArIHRlc3RfaWQpCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL21hbmlmZXN0L3Rlc3Rz
L3Rlc3RfaXRlbS5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvbWFuaWZlc3QvdGVzdHMvdGVzdF9pdGVtLnB5CmluZGV4IDlmNzk4NzQ3YmQ0Li5j
ZjUyZmU4MGFhZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy9tYW5pZmVzdC90ZXN0cy90ZXN0X2l0ZW0ucHkKKysrIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9tYW5pZmVzdC90ZXN0
cy90ZXN0X2l0ZW0ucHkKQEAgLTEsMjMgKzEsMTA1IEBACi1mcm9tIC4uaXRlbSBpbXBvcnQgU3Vw
cG9ydEZpbGUsIFVSTE1hbmlmZXN0SXRlbQotZnJvbSAuLnNvdXJjZWZpbGUgaW1wb3J0IFNvdXJj
ZUZpbGUKK2ltcG9ydCBpbnNwZWN0CitpbXBvcnQganNvbgogCitpbXBvcnQgcHl0ZXN0CiAKLWRl
ZiB0ZXN0X2Jhc2VfbWV0YV9mbGFncygpOgotICAgIHMgPSBTb3VyY2VGaWxlKCIvIiwgImEuYi5j
LmQiLCAiLyIsIGNvbnRlbnRzPSIiKQotICAgIG0gPSBTdXBwb3J0RmlsZShzKQorZnJvbSAuLm1h
bmlmZXN0IGltcG9ydCBNYW5pZmVzdAorIyBQcmV2ZW50IHB5dGVzdCBmcm9tIHRyZWF0aW5nIFRl
c3RoYXJuZXNzVGVzdCBhcyBhIHRlc3QgY2xhc3MKK2Zyb20gLi5pdGVtIGltcG9ydCBUZXN0aGFy
bmVzc1Rlc3QgYXMgSGFybmVzc1Rlc3QKK2Zyb20gLi5pdGVtIGltcG9ydCBSZWZUZXN0LCBpdGVt
X3R5cGVzCiAKLSAgICBhc3NlcnQgbS5tZXRhX2ZsYWdzID09IHsiYiIsICJjIn0KIAorQHB5dGVz
dC5tYXJrLnBhcmFtZXRyaXplKCJwYXRoIiwgWworICAgICJhLmh0dHBzLmMiLAorICAgICJhLmIu
aHR0cHMuYyIsCisgICAgImEuaHR0cHMuYi5jIiwKKyAgICAiYS5iLmh0dHBzLmMuZCIsCisgICAg
ImEuc2VydmljZXdvcmtlci5jIiwKKyAgICAiYS5iLnNlcnZpY2V3b3JrZXIuYyIsCisgICAgImEu
c2VydmljZXdvcmtlci5iLmMiLAorICAgICJhLmIuc2VydmljZXdvcmtlci5jLmQiLAorXSkKK2Rl
ZiB0ZXN0X3VybF9odHRwcyhwYXRoKToKKyAgICBtID0gSGFybmVzc1Rlc3QoIi9mb28iLCAiYmFy
LyIgKyBwYXRoLCAiLyIsICJiYXIvIiArIHBhdGgpCiAKLWRlZiB0ZXN0X3VybF9tZXRhX2ZsYWdz
KCk6Ci0gICAgcyA9IFNvdXJjZUZpbGUoIi8iLCAiYS5iLmMiLCAiLyIsIGNvbnRlbnRzPSIiKQot
ICAgIG0gPSBVUkxNYW5pZmVzdEl0ZW0ocywgIi9mb28uYmFyL2EuYi5kLmUiKQorICAgIGFzc2Vy
dCBtLmh0dHBzIGlzIFRydWUKIAotICAgIGFzc2VydCBtLm1ldGFfZmxhZ3MgPT0geyJiIiwgImQi
fQogCitAcHl0ZXN0Lm1hcmsucGFyYW1ldHJpemUoInBhdGgiLCBbCisgICAgImh0dHBzIiwKKyAg
ICAiYS5odHRwcyIsCisgICAgImEuYi5odHRwcyIsCisgICAgImh0dHBzLmEiLAorICAgICJodHRw
cy5hLmIiLAorICAgICJhLmJodHRwcy5jIiwKKyAgICAiYS5odHRwc2IuYyIsCisgICAgInNlcnZp
Y2V3b3JrZXIiLAorICAgICJhLnNlcnZpY2V3b3JrZXIiLAorICAgICJhLmIuc2VydmljZXdvcmtl
ciIsCisgICAgInNlcnZpY2V3b3JrZXIuYSIsCisgICAgInNlcnZpY2V3b3JrZXIuYS5iIiwKKyAg
ICAiYS5ic2VydmljZXdvcmtlci5jIiwKKyAgICAiYS5zZXJ2aWNld29ya2VyYi5jIiwKK10pCitk
ZWYgdGVzdF91cmxfbm90X2h0dHBzKHBhdGgpOgorICAgIG0gPSBIYXJuZXNzVGVzdCgiL2ZvbyIs
ICJiYXIvIiArIHBhdGgsICIvIiwgImJhci8iICsgcGF0aCkKIAotZGVmIHRlc3RfdXJsX2VtcHR5
X21ldGFfZmxhZ3MoKToKLSAgICBzID0gU291cmNlRmlsZSgiLyIsICJhLmIuYyIsICIvIiwgY29u
dGVudHM9IiIpCi0gICAgbSA9IFVSTE1hbmlmZXN0SXRlbShzLCAiL2Zvby5iYXIvYWJjZGUiKQor
ICAgIGFzc2VydCBtLmh0dHBzIGlzIEZhbHNlCiAKLSAgICBhc3NlcnQgbS5tZXRhX2ZsYWdzID09
IHNldCgpCisKK0BweXRlc3QubWFyay5wYXJhbWV0cml6ZSgiZnV6enkiLCBbCisgICAgeygnL2Zv
by90ZXN0Lmh0bWwnLCB1Jy9mb28vcmVmLmh0bWwnLCAnPT0nKTogW1sxLCAxXSwgWzIwMCwgMjAw
XV19LAorICAgIHsoJy9mb28vdGVzdC5odG1sJywgdScvZm9vL3JlZi5odG1sJywgJz09Jyk6IFtb
MCwgMV0sIFsxMDAsIDIwMF1dfSwKKyAgICB7Tm9uZTogW1swLCAxXSwgWzEwMCwgMjAwXV19LAor
ICAgIHtOb25lOiBbWzEsIDFdLCBbMjAwLCAyMDBdXX0sCitdKQorZGVmIHRlc3RfcmVmdGVzdF9m
dXp6eShmdXp6eSk6CisgICAgdCA9IFJlZlRlc3QoJy8nLAorICAgICAgICAgICAgICAgICdmb28v
dGVzdC5odG1sJywKKyAgICAgICAgICAgICAgICAnLycsCisgICAgICAgICAgICAgICAgJ2Zvby90
ZXN0Lmh0bWwnLAorICAgICAgICAgICAgICAgIFsoJy9mb28vcmVmLmh0bWwnLCAnPT0nKV0sCisg
ICAgICAgICAgICAgICAgZnV6enk9ZnV6enkpCisgICAgYXNzZXJ0IGZ1enp5ID09IHQuZnV6enkK
KworICAgIGpzb25fb2JqID0gdC50b19qc29uKCkKKworICAgIG0gPSBNYW5pZmVzdCgiLyIsICIv
IikKKyAgICB0MiA9IFJlZlRlc3QuZnJvbV9qc29uKG0sIHQucGF0aCwganNvbl9vYmopCisgICAg
YXNzZXJ0IGZ1enp5ID09IHQyLmZ1enp5CisKKyAgICAjIHRlc3QgdGhlIHJvdW5kdHJpcCBjYXNl
LCBnaXZlbiB0dXBsZXMgYmVjb21lIGxpc3RzCisgICAgcm91bmR0cmlwID0ganNvbi5sb2Fkcyhq
c29uLmR1bXBzKGpzb25fb2JqKSkKKyAgICB0MyA9IFJlZlRlc3QuZnJvbV9qc29uKG0sIHQucGF0
aCwgcm91bmR0cmlwKQorICAgIGFzc2VydCBmdXp6eSA9PSB0My5mdXp6eQorCisKK0BweXRlc3Qu
bWFyay5wYXJhbWV0cml6ZSgiZnV6enkiLCBbCisgICAgeygnL2Zvby90ZXN0Lmh0bWwnLCB1Jy9m
b28vcmVmLTIuaHRtbCcsICc9PScpOiBbWzAsIDFdLCBbMTAwLCAyMDBdXX0sCisgICAge05vbmU6
IFtbMSwgMV0sIFsyMDAsIDIwMF1dLCAoJy9mb28vdGVzdC5odG1sJywgdScvZm9vL3JlZi0yLmh0
bWwnLCAnPT0nKTogW1swLCAxXSwgWzEwMCwgMjAwXV19LAorXSkKK2RlZiB0ZXN0X3JlZnRlc3Rf
ZnV6enlfbXVsdGkoZnV6enkpOgorICAgIHQgPSBSZWZUZXN0KCcvJywKKyAgICAgICAgICAgICAg
ICAnZm9vL3Rlc3QuaHRtbCcsCisgICAgICAgICAgICAgICAgJy8nLAorICAgICAgICAgICAgICAg
ICdmb28vdGVzdC5odG1sJywKKyAgICAgICAgICAgICAgICBbKCcvZm9vL3JlZi0xLmh0bWwnLCAn
PT0nKSwgKCcvZm9vL3JlZi0yLmh0bWwnLCAnPT0nKV0sCisgICAgICAgICAgICAgICAgZnV6enk9
ZnV6enkpCisgICAgYXNzZXJ0IGZ1enp5ID09IHQuZnV6enkKKworICAgIGpzb25fb2JqID0gdC50
b19qc29uKCkKKworICAgIG0gPSBNYW5pZmVzdCgiLyIsICIvIikKKyAgICB0MiA9IFJlZlRlc3Qu
ZnJvbV9qc29uKG0sIHQucGF0aCwganNvbl9vYmopCisgICAgYXNzZXJ0IGZ1enp5ID09IHQyLmZ1
enp5CisKKyAgICAjIHRlc3QgdGhlIHJvdW5kdHJpcCBjYXNlLCBnaXZlbiB0dXBsZXMgYmVjb21l
IGxpc3RzCisgICAgcm91bmR0cmlwID0ganNvbi5sb2Fkcyhqc29uLmR1bXBzKGpzb25fb2JqKSkK
KyAgICB0MyA9IFJlZlRlc3QuZnJvbV9qc29uKG0sIHQucGF0aCwgcm91bmR0cmlwKQorICAgIGFz
c2VydCBmdXp6eSA9PSB0My5mdXp6eQorCisKK2RlZiB0ZXN0X2l0ZW1fdHlwZXMoKToKKyAgICBm
b3Iga2V5LCB2YWx1ZSBpbiBpdGVtX3R5cGVzLml0ZW1zKCk6CisgICAgICAgIGFzc2VydCBpc2lu
c3RhbmNlKGtleSwgc3RyKQorICAgICAgICBhc3NlcnQgbm90IGluc3BlY3QuaXNhYnN0cmFjdCh2
YWx1ZSkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvbWFuaWZlc3QvdGVzdHMvdGVzdF9tYW5pZmVzdC5weSBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvbWFuaWZlc3QvdGVzdHMvdGVz
dF9tYW5pZmVzdC5weQppbmRleCA4YmY3ZWY5NmM1Zi4uOGUwMDhiZTA5MTEgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvbWFuaWZl
c3QvdGVzdHMvdGVzdF9tYW5pZmVzdC5weQorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL21hbmlmZXN0L3Rlc3RzL3Rlc3RfbWFuaWZlc3QucHkK
QEAgLTcsMjAgKzcsMzIgQEAgaW1wb3J0IGh5cG90aGVzaXMuc3RyYXRlZ2llcyBhcyBocwogCiBp
bXBvcnQgcHl0ZXN0CiAKLWZyb20gLi4gaW1wb3J0IG1hbmlmZXN0LCBpdGVtLCB1dGlscworZnJv
bSAuLiBpbXBvcnQgbWFuaWZlc3QsIHNvdXJjZWZpbGUsIGl0ZW0sIHV0aWxzCiAKK01ZUFkgPSBG
YWxzZQoraWYgTVlQWToKKyAgICAjIE1ZUFkgaXMgc2V0IHRvIFRydWUgd2hlbiBydW4gdW5kZXIg
TXlweS4KKyAgICBmcm9tIHR5cGluZyBpbXBvcnQgQW55CisgICAgZnJvbSB0eXBpbmcgaW1wb3J0
IFR5cGUKIAotZGVmIFNvdXJjZUZpbGVXaXRoVGVzdChwYXRoLCBoYXNoLCBjbHMsICphcmdzKToK
KworZGVmIFNvdXJjZUZpbGVXaXRoVGVzdChwYXRoLCBoYXNoLCBjbHMsICoqa3dhcmdzKToKKyAg
ICAjIHR5cGU6IChzdHIsIHN0ciwgVHlwZVtpdGVtLk1hbmlmZXN0SXRlbV0sICoqQW55KSAtPiBz
b3VyY2VmaWxlLlNvdXJjZUZpbGUKICAgICBzID0gbW9jay5Nb2NrKHJlbF9wYXRoPXBhdGgsIGhh
c2g9aGFzaCkKLSAgICB0ZXN0ID0gY2xzKHMsIHV0aWxzLnJlbF9wYXRoX3RvX3VybChwYXRoKSwg
KmFyZ3MpCisgICAgaWYgY2xzID09IGl0ZW0uU3VwcG9ydEZpbGU6CisgICAgICAgIHRlc3QgPSBj
bHMoIi9mb29iYXIiLCBwYXRoKQorICAgIGVsc2U6CisgICAgICAgIGFzc2VydCBpc3N1YmNsYXNz
KGNscywgaXRlbS5VUkxNYW5pZmVzdEl0ZW0pCisgICAgICAgIHRlc3QgPSBjbHMoIi9mb29iYXIi
LCBwYXRoLCAiLyIsIHV0aWxzLmZyb21fb3NfcGF0aChwYXRoKSwgKiprd2FyZ3MpCiAgICAgcy5t
YW5pZmVzdF9pdGVtcyA9IG1vY2suTW9jayhyZXR1cm5fdmFsdWU9KGNscy5pdGVtX3R5cGUsIFt0
ZXN0XSkpCi0gICAgcmV0dXJuIHMKKyAgICByZXR1cm4gcyAgIyB0eXBlOiBpZ25vcmUKIAogZGVm
IFNvdXJjZUZpbGVXaXRoVGVzdHMocGF0aCwgaGFzaCwgY2xzLCB2YXJpYW50cyk6CisgICAgIyB0
eXBlOiAoc3RyLCBzdHIsIFR5cGVbaXRlbS5VUkxNYW5pZmVzdEl0ZW1dLCAqKkFueSkgLT4gc291
cmNlZmlsZS5Tb3VyY2VGaWxlCiAgICAgcyA9IG1vY2suTW9jayhyZWxfcGF0aD1wYXRoLCBoYXNo
PWhhc2gpCi0gICAgdGVzdHMgPSBbY2xzKHMsIGl0ZW1bMF0sICppdGVtWzE6XSkgZm9yIGl0ZW0g
aW4gdmFyaWFudHNdCisgICAgdGVzdHMgPSBbY2xzKCIvZm9vYmFyIiwgcGF0aCwgIi8iLCBpdGVt
WzBdLCAqKml0ZW1bMV0pIGZvciBpdGVtIGluIHZhcmlhbnRzXQogICAgIHMubWFuaWZlc3RfaXRl
bXMgPSBtb2NrLk1vY2socmV0dXJuX3ZhbHVlPShjbHMuaXRlbV90eXBlLCB0ZXN0cykpCi0gICAg
cmV0dXJuIHMKKyAgICByZXR1cm4gcyAgIyB0eXBlOiBpZ25vcmUKIAogCiBAaHMuY29tcG9zaXRl
CkBAIC0zMCwyMCArNDIsMTUgQEAgZGVmIHJlbF9kaXJfZmlsZV9wYXRoKGRyYXcpOgogICAgICAg
ICByZXR1cm4gImEiCiAgICAgZWxzZToKICAgICAgICAgcmVtYWluaW5nID0gbGVuZ3RoIC0gMgot
ICAgICAgICBpZiBvcy5wYXRoLnNlcCA9PSAiLyI6Ci0gICAgICAgICAgICBhbHBoYWJldCA9ICJh
LyIKLSAgICAgICAgZWxpZiBvcy5wYXRoLnNlcCA9PSAiXFwiOgotICAgICAgICAgICAgYWxwaGFi
ZXQgPSAiYS9cXCIKLSAgICAgICAgZWxzZToKLSAgICAgICAgICAgIGFzc2VydCBGYWxzZSwgInVo
aGhoLCB0aGlzIHBsYXRmb3JtIGlzIHdlaXJkIgorICAgICAgICBhbHBoYWJldCA9ICJhIiArIG9z
LnBhdGguc2VwCiAgICAgICAgIG1pZCA9IGRyYXcoaHMudGV4dChhbHBoYWJldD1hbHBoYWJldCwg
bWluX3NpemU9cmVtYWluaW5nLCBtYXhfc2l6ZT1yZW1haW5pbmcpKQogICAgICAgICByZXR1cm4g
b3MucGF0aC5ub3JtY2FzZSgiYSIgKyBtaWQgKyAiYSIpCiAKIAogQGhzLmNvbXBvc2l0ZQogZGVm
IHNvdXJjZWZpbGVfc3RyYXRlZ3koZHJhdyk6Ci0gICAgaXRlbV9jbGFzc2VzID0gW2l0ZW0uVGVz
dGhhcm5lc3NUZXN0LCBpdGVtLlJlZlRlc3QsIGl0ZW0uUmVmVGVzdE5vZGUsCi0gICAgICAgICAg
ICAgICAgICAgIGl0ZW0uTWFudWFsVGVzdCwgaXRlbS5TdHViLCBpdGVtLldlYmRyaXZlclNwZWNU
ZXN0LAorICAgIGl0ZW1fY2xhc3NlcyA9IFtpdGVtLlRlc3RoYXJuZXNzVGVzdCwgaXRlbS5SZWZU
ZXN0Tm9kZSwKKyAgICAgICAgICAgICAgICAgICAgaXRlbS5NYW51YWxUZXN0LCBpdGVtLldlYkRy
aXZlclNwZWNUZXN0LAogICAgICAgICAgICAgICAgICAgICBpdGVtLkNvbmZvcm1hbmNlQ2hlY2tl
clRlc3QsIGl0ZW0uU3VwcG9ydEZpbGVdCiAgICAgY2xzID0gZHJhdyhocy5zYW1wbGVkX2Zyb20o
aXRlbV9jbGFzc2VzKSkKIApAQCAtNTEsMjggKzU4LDI3IEBAIGRlZiBzb3VyY2VmaWxlX3N0cmF0
ZWd5KGRyYXcpOgogICAgIGhhc2ggPSBkcmF3KGhzLnRleHQoYWxwaGFiZXQ9IjAxMjM0NTY3ODlh
YmNkZWYiLCBtaW5fc2l6ZT00MCwgbWF4X3NpemU9NDApKQogICAgIHMgPSBtb2NrLk1vY2socmVs
X3BhdGg9cGF0aCwgaGFzaD1oYXNoKQogCi0gICAgaWYgY2xzIGluIChpdGVtLlJlZlRlc3QsIGl0
ZW0uUmVmVGVzdE5vZGUpOgorICAgIGlmIGNscyBpcyBpdGVtLlJlZlRlc3ROb2RlOgogICAgICAg
ICByZWZfcGF0aCA9IGRyYXcocmVsX2Rpcl9maWxlX3BhdGgoKSkKICAgICAgICAgaC5hc3N1bWUo
cGF0aCAhPSByZWZfcGF0aCkKICAgICAgICAgcmVmX2VxID0gZHJhdyhocy5zYW1wbGVkX2Zyb20o
WyI9PSIsICIhPSJdKSkKLSAgICAgICAgdGVzdCA9IGNscyhzLCB1dGlscy5yZWxfcGF0aF90b191
cmwocGF0aCksIFsodXRpbHMucmVsX3BhdGhfdG9fdXJsKHJlZl9wYXRoKSwgcmVmX2VxKV0pCisg
ICAgICAgIHRlc3QgPSBjbHMoIi9mb29iYXIiLCBwYXRoLCAiLyIsIHV0aWxzLmZyb21fb3NfcGF0
aChwYXRoKSwgcmVmZXJlbmNlcz1bKHV0aWxzLmZyb21fb3NfcGF0aChyZWZfcGF0aCksIHJlZl9l
cSldKQogICAgIGVsaWYgY2xzIGlzIGl0ZW0uU3VwcG9ydEZpbGU6Ci0gICAgICAgIHRlc3QgPSBj
bHMocykKKyAgICAgICAgdGVzdCA9IGNscygiL2Zvb2JhciIsIHBhdGgpCiAgICAgZWxzZToKLSAg
ICAgICAgdGVzdCA9IGNscyhzLCB1dGlscy5yZWxfcGF0aF90b191cmwocGF0aCkpCisgICAgICAg
IHRlc3QgPSBjbHMoIi9mb29iYXIiLCBwYXRoLCAiLyIsIHV0aWxzLmZyb21fb3NfcGF0aChwYXRo
KSkKIAogICAgIHMubWFuaWZlc3RfaXRlbXMgPSBtb2NrLk1vY2socmV0dXJuX3ZhbHVlPShjbHMu
aXRlbV90eXBlLCBbdGVzdF0pKQogICAgIHJldHVybiBzCiAKIAogQGguZ2l2ZW4oaHMubGlzdHMo
c291cmNlZmlsZV9zdHJhdGVneSgpLAotICAgICAgICAgICAgICAgICAgbWluX3NpemU9MSwgYXZl
cmFnZV9zaXplPTEwLCBtYXhfc2l6ZT0xMDAwLAotICAgICAgICAgICAgICAgICAgdW5pcXVlX2J5
PWxhbWJkYSB4OiB4LnJlbF9wYXRoKSkKKyAgICAgICAgICAgICAgICAgIG1pbl9zaXplPTEsIG1h
eF9zaXplPTEwMDAsIHVuaXF1ZV9ieT1sYW1iZGEgeDogeC5yZWxfcGF0aCkpCiBAaC5leGFtcGxl
KFtTb3VyY2VGaWxlV2l0aFRlc3QoImEiLCAiMCIqNDAsIGl0ZW0uQ29uZm9ybWFuY2VDaGVja2Vy
VGVzdCldKQogZGVmIHRlc3RfbWFuaWZlc3RfdG9fanNvbihzKToKICAgICBtID0gbWFuaWZlc3Qu
TWFuaWZlc3QoKQogCi0gICAgYXNzZXJ0IG0udXBkYXRlKHMpIGlzIFRydWUKKyAgICBhc3NlcnQg
bS51cGRhdGUoKGl0ZW0sIFRydWUpIGZvciBpdGVtIGluIHMpIGlzIFRydWUKIAogICAgIGpzb25f
c3RyID0gbS50b19qc29uKCkKICAgICBsb2FkZWQgPSBtYW5pZmVzdC5NYW5pZmVzdC5mcm9tX2pz
b24oIi8iLCBqc29uX3N0cikKQEAgLTgzLDE4ICs4OSwxNyBAQCBkZWYgdGVzdF9tYW5pZmVzdF90
b19qc29uKHMpOgogCiAKIEBoLmdpdmVuKGhzLmxpc3RzKHNvdXJjZWZpbGVfc3RyYXRlZ3koKSwK
LSAgICAgICAgICAgICAgICAgIG1pbl9zaXplPTEsIGF2ZXJhZ2Vfc2l6ZT0xMCwKLSAgICAgICAg
ICAgICAgICAgIHVuaXF1ZV9ieT1sYW1iZGEgeDogeC5yZWxfcGF0aCkpCisgICAgICAgICAgICAg
ICAgICBtaW5fc2l6ZT0xLCB1bmlxdWVfYnk9bGFtYmRhIHg6IHgucmVsX3BhdGgpKQogQGguZXhh
bXBsZShbU291cmNlRmlsZVdpdGhUZXN0KCJhIiwgIjAiKjQwLCBpdGVtLlRlc3RoYXJuZXNzVGVz
dCldKQotQGguZXhhbXBsZShbU291cmNlRmlsZVdpdGhUZXN0KCJhIiwgIjAiKjQwLCBpdGVtLlJl
ZlRlc3QsIFsoIi9hYSIsICI9PSIpXSldKQorQGguZXhhbXBsZShbU291cmNlRmlsZVdpdGhUZXN0
KCJhIiwgIjAiKjQwLCBpdGVtLlJlZlRlc3ROb2RlLCByZWZlcmVuY2VzPVsoIi9hYSIsICI9PSIp
XSldKQogZGVmIHRlc3RfbWFuaWZlc3RfaWRlbXBvdGVudChzKToKICAgICBtID0gbWFuaWZlc3Qu
TWFuaWZlc3QoKQogCi0gICAgYXNzZXJ0IG0udXBkYXRlKHMpIGlzIFRydWUKKyAgICBhc3NlcnQg
bS51cGRhdGUoKGl0ZW0sIFRydWUpIGZvciBpdGVtIGluIHMpIGlzIFRydWUKIAogICAgIG0xID0g
bGlzdChtKQogCi0gICAgYXNzZXJ0IG0udXBkYXRlKHMpIGlzIEZhbHNlCisgICAgYXNzZXJ0IG0u
dXBkYXRlKChpdGVtLCBUcnVlKSBmb3IgaXRlbSBpbiBzKSBpcyBGYWxzZQogCiAgICAgYXNzZXJ0
IGxpc3QobSkgPT0gbTEKIApAQCAtMTA0LDUyICsxMDksNDIgQEAgZGVmIHRlc3RfbWFuaWZlc3Rf
dG9fanNvbl9mb3J3YXJkc2xhc2goKToKIAogICAgIHMgPSBTb3VyY2VGaWxlV2l0aFRlc3QoImEv
YiIsICIwIio0MCwgaXRlbS5UZXN0aGFybmVzc1Rlc3QpCiAKLSAgICBhc3NlcnQgbS51cGRhdGUo
W3NdKSBpcyBUcnVlCisgICAgYXNzZXJ0IG0udXBkYXRlKFsocywgVHJ1ZSldKSBpcyBUcnVlCiAK
ICAgICBhc3NlcnQgbS50b19qc29uKCkgPT0gewogICAgICAgICAncGF0aHMnOiB7CiAgICAgICAg
ICAgICAnYS9iJzogKCcwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwJywg
J3Rlc3RoYXJuZXNzJykKICAgICAgICAgfSwKLSAgICAgICAgJ3ZlcnNpb24nOiA1LAorICAgICAg
ICAndmVyc2lvbic6IDYsCiAgICAgICAgICd1cmxfYmFzZSc6ICcvJywKICAgICAgICAgJ2l0ZW1z
JzogewotICAgICAgICAgICAgJ3JlZnRlc3QnOiB7fSwKLSAgICAgICAgICAgICdyZWZ0ZXN0X25v
ZGUnOiB7fSwKICAgICAgICAgICAgICd0ZXN0aGFybmVzcyc6IHsKLSAgICAgICAgICAgICAgICAn
YS9iJzogW1snL2EvYicsIHt9XV0KKyAgICAgICAgICAgICAgICAnYS9iJzogWygnYS9iJywge30p
XQogICAgICAgICAgICAgfQogICAgICAgICB9CiAgICAgfQogCiAKK0BweXRlc3QubWFyay5za2lw
aWYob3Muc2VwICE9ICJcXCIsIHJlYXNvbj0iYmFja3NsYXNoIHBhdGgiKQogZGVmIHRlc3RfbWFu
aWZlc3RfdG9fanNvbl9iYWNrc2xhc2goKToKICAgICBtID0gbWFuaWZlc3QuTWFuaWZlc3QoKQog
CiAgICAgcyA9IFNvdXJjZUZpbGVXaXRoVGVzdCgiYVxcYiIsICIwIio0MCwgaXRlbS5UZXN0aGFy
bmVzc1Rlc3QpCiAKLSAgICBpZiBvcy5wYXRoLnNlcCA9PSAiXFwiOgotICAgICAgICBhc3NlcnQg
bS51cGRhdGUoW3NdKSBpcyBUcnVlCi0KLSAgICAgICAgYXNzZXJ0IG0udG9fanNvbigpID09IHsK
LSAgICAgICAgICAgICdwYXRocyc6IHsKLSAgICAgICAgICAgICAgICAnYS9iJzogKCcwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwJywgJ3Rlc3RoYXJuZXNzJykKLSAgICAg
ICAgICAgIH0sCi0gICAgICAgICAgICAndmVyc2lvbic6IDUsCi0gICAgICAgICAgICAndXJsX2Jh
c2UnOiAnLycsCi0gICAgICAgICAgICAnaXRlbXMnOiB7Ci0gICAgICAgICAgICAgICAgJ3JlZnRl
c3QnOiB7fSwKLSAgICAgICAgICAgICAgICAncmVmdGVzdF9ub2RlJzoge30sCi0gICAgICAgICAg
ICAgICAgJ3Rlc3RoYXJuZXNzJzogewotICAgICAgICAgICAgICAgICAgICAnYS9iJzogW1snL2Ev
YicsIHt9XV0KLSAgICAgICAgICAgICAgICB9CisgICAgYXNzZXJ0IG0udXBkYXRlKFsocywgVHJ1
ZSldKSBpcyBUcnVlCisKKyAgICBhc3NlcnQgbS50b19qc29uKCkgPT0geworICAgICAgICAncGF0
aHMnOiB7CisgICAgICAgICAgICAnYS9iJzogKCcwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwJywgJ3Rlc3RoYXJuZXNzJykKKyAgICAgICAgfSwKKyAgICAgICAgJ3ZlcnNp
b24nOiA2LAorICAgICAgICAndXJsX2Jhc2UnOiAnLycsCisgICAgICAgICdpdGVtcyc6IHsKKyAg
ICAgICAgICAgICd0ZXN0aGFybmVzcyc6IHsKKyAgICAgICAgICAgICAgICAnYS9iJzogWygnYS9i
Jywge30pXQogICAgICAgICAgICAgfQogICAgICAgICB9Ci0gICAgZWxzZToKLSAgICAgICAgd2l0
aCBweXRlc3QucmFpc2VzKFZhbHVlRXJyb3IpOgotICAgICAgICAgICAgIyBvbmUgb2YgdGhlc2Ug
bXVzdCByYWlzZSBWYWx1ZUVycm9yCi0gICAgICAgICAgICAjIHRoZSBmaXJzdCBtdXN0IHJldHVy
biBUcnVlIGlmIGl0IGRvZXNuJ3QgcmFpc2UKLSAgICAgICAgICAgIGFzc2VydCBtLnVwZGF0ZShb
c10pIGlzIFRydWUKLSAgICAgICAgICAgIG0udG9fanNvbigpCisgICAgfQogCiAKIGRlZiB0ZXN0
X21hbmlmZXN0X2Zyb21fanNvbl9iYWNrc2xhc2goKToKQEAgLTE1NywxMyArMTUyLDExIEBAIGRl
ZiB0ZXN0X21hbmlmZXN0X2Zyb21fanNvbl9iYWNrc2xhc2goKToKICAgICAgICAgJ3BhdGhzJzog
ewogICAgICAgICAgICAgJ2FcXGInOiAoJzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAnLCAndGVzdGhhcm5lc3MnKQogICAgICAgICB9LAotICAgICAgICAndmVyc2lvbic6
IDUsCisgICAgICAgICd2ZXJzaW9uJzogNiwKICAgICAgICAgJ3VybF9iYXNlJzogJy8nLAogICAg
ICAgICAnaXRlbXMnOiB7Ci0gICAgICAgICAgICAncmVmdGVzdCc6IHt9LAotICAgICAgICAgICAg
J3JlZnRlc3Rfbm9kZSc6IHt9LAogICAgICAgICAgICAgJ3Rlc3RoYXJuZXNzJzogewotICAgICAg
ICAgICAgICAgICdhXFxiJzogW1snL2EvYicsIHt9XV0KKyAgICAgICAgICAgICAgICAnYVxcYic6
IFtbJ2EvYicsIHt9XV0KICAgICAgICAgICAgIH0KICAgICAgICAgfQogICAgIH0KQEAgLTE3NSw3
OCArMTY4LDc0IEBAIGRlZiB0ZXN0X21hbmlmZXN0X2Zyb21fanNvbl9iYWNrc2xhc2goKToKIGRl
ZiB0ZXN0X3JlZnRlc3RfY29tcHV0YXRpb25fY2hhaW4oKToKICAgICBtID0gbWFuaWZlc3QuTWFu
aWZlc3QoKQogCi0gICAgczEgPSBTb3VyY2VGaWxlV2l0aFRlc3QoInRlc3QxIiwgIjAiKjQwLCBp
dGVtLlJlZlRlc3QsIFsoIi90ZXN0MiIsICI9PSIpXSkKLSAgICBzMiA9IFNvdXJjZUZpbGVXaXRo
VGVzdCgidGVzdDIiLCAiMCIqNDAsIGl0ZW0uUmVmVGVzdCwgWygiL3Rlc3QzIiwgIj09IildKQor
ICAgIHMxID0gU291cmNlRmlsZVdpdGhUZXN0KCJ0ZXN0MSIsICIwIio0MCwgaXRlbS5SZWZUZXN0
Tm9kZSwgcmVmZXJlbmNlcz1bKCIvdGVzdDIiLCAiPT0iKV0pCisgICAgczIgPSBTb3VyY2VGaWxl
V2l0aFRlc3QoInRlc3QyIiwgIjAiKjQwLCBpdGVtLlJlZlRlc3ROb2RlLCByZWZlcmVuY2VzPVso
Ii90ZXN0MyIsICI9PSIpXSkKIAotICAgIG0udXBkYXRlKFtzMSwgczJdKQorICAgIG0udXBkYXRl
KFsoczEsIFRydWUpLCAoczIsIFRydWUpXSkKIAogICAgIHRlc3QxID0gczEubWFuaWZlc3RfaXRl
bXMoKVsxXVswXQogICAgIHRlc3QyID0gczIubWFuaWZlc3RfaXRlbXMoKVsxXVswXQotICAgIHRl
c3QyX25vZGUgPSB0ZXN0Mi50b19SZWZUZXN0Tm9kZSgpCiAKLSAgICBhc3NlcnQgbGlzdChtKSA9
PSBbKCJyZWZ0ZXN0IiwgdGVzdDEucGF0aCwge3Rlc3QxfSksCi0gICAgICAgICAgICAgICAgICAg
ICAgICgicmVmdGVzdF9ub2RlIiwgdGVzdDIucGF0aCwge3Rlc3QyX25vZGV9KV0KKyAgICBhc3Nl
cnQgbGlzdChtKSA9PSBbKCJyZWZ0ZXN0IiwgdGVzdDEucGF0aCwge3Rlc3QxLnRvX1JlZlRlc3Qo
KX0pLAorICAgICAgICAgICAgICAgICAgICAgICAoInJlZnRlc3Rfbm9kZSIsIHRlc3QyLnBhdGgs
IHt0ZXN0Mn0pXQogCiAKIGRlZiB0ZXN0X3JlZnRlc3RfY29tcHV0YXRpb25fY2hhaW5fdXBkYXRl
X2FkZCgpOgogICAgIG0gPSBtYW5pZmVzdC5NYW5pZmVzdCgpCiAKLSAgICBzMiA9IFNvdXJjZUZp
bGVXaXRoVGVzdCgidGVzdDIiLCAiMCIqNDAsIGl0ZW0uUmVmVGVzdCwgWygiL3Rlc3QzIiwgIj09
IildKQorICAgIHMyID0gU291cmNlRmlsZVdpdGhUZXN0KCJ0ZXN0MiIsICIwIio0MCwgaXRlbS5S
ZWZUZXN0Tm9kZSwgcmVmZXJlbmNlcz1bKCIvdGVzdDMiLCAiPT0iKV0pCiAgICAgdGVzdDIgPSBz
Mi5tYW5pZmVzdF9pdGVtcygpWzFdWzBdCiAKLSAgICBhc3NlcnQgbS51cGRhdGUoW3MyXSkgaXMg
VHJ1ZQorICAgIGFzc2VydCBtLnVwZGF0ZShbKHMyLCBUcnVlKV0pIGlzIFRydWUKIAotICAgIGFz
c2VydCBsaXN0KG0pID09IFsoInJlZnRlc3QiLCB0ZXN0Mi5wYXRoLCB7dGVzdDJ9KV0KKyAgICBh
c3NlcnQgbGlzdChtKSA9PSBbKCJyZWZ0ZXN0IiwgdGVzdDIucGF0aCwge3Rlc3QyLnRvX1JlZlRl
c3QoKX0pXQogCi0gICAgczEgPSBTb3VyY2VGaWxlV2l0aFRlc3QoInRlc3QxIiwgIjAiKjQwLCBp
dGVtLlJlZlRlc3QsIFsoIi90ZXN0MiIsICI9PSIpXSkKKyAgICBzMSA9IFNvdXJjZUZpbGVXaXRo
VGVzdCgidGVzdDEiLCAiMCIqNDAsIGl0ZW0uUmVmVGVzdE5vZGUsIHJlZmVyZW5jZXM9WygiL3Rl
c3QyIiwgIj09IildKQogICAgIHRlc3QxID0gczEubWFuaWZlc3RfaXRlbXMoKVsxXVswXQogCiAg
ICAgIyBzMidzIGhhc2ggaXMgdW5jaGFuZ2VkLCBidXQgaXQgaGFzIGdvbmUgZnJvbSBhIHRlc3Qg
dG8gYSBub2RlCi0gICAgYXNzZXJ0IG0udXBkYXRlKFtzMSwgczJdKSBpcyBUcnVlCisgICAgYXNz
ZXJ0IG0udXBkYXRlKFsoczEsIFRydWUpLCAoczIsIFRydWUpXSkgaXMgVHJ1ZQogCi0gICAgdGVz
dDJfbm9kZSA9IHRlc3QyLnRvX1JlZlRlc3ROb2RlKCkKLQotICAgIGFzc2VydCBsaXN0KG0pID09
IFsoInJlZnRlc3QiLCB0ZXN0MS5wYXRoLCB7dGVzdDF9KSwKLSAgICAgICAgICAgICAgICAgICAg
ICAgKCJyZWZ0ZXN0X25vZGUiLCB0ZXN0Mi5wYXRoLCB7dGVzdDJfbm9kZX0pXQorICAgIGFzc2Vy
dCBsaXN0KG0pID09IFsoInJlZnRlc3QiLCB0ZXN0MS5wYXRoLCB7dGVzdDEudG9fUmVmVGVzdCgp
fSksCisgICAgICAgICAgICAgICAgICAgICAgICgicmVmdGVzdF9ub2RlIiwgdGVzdDIucGF0aCwg
e3Rlc3QyfSldCiAKIAogZGVmIHRlc3RfcmVmdGVzdF9jb21wdXRhdGlvbl9jaGFpbl91cGRhdGVf
cmVtb3ZlKCk6CiAgICAgbSA9IG1hbmlmZXN0Lk1hbmlmZXN0KCkKIAotICAgIHMxID0gU291cmNl
RmlsZVdpdGhUZXN0KCJ0ZXN0MSIsICIwIio0MCwgaXRlbS5SZWZUZXN0LCBbKCIvdGVzdDIiLCAi
PT0iKV0pCi0gICAgczIgPSBTb3VyY2VGaWxlV2l0aFRlc3QoInRlc3QyIiwgIjAiKjQwLCBpdGVt
LlJlZlRlc3QsIFsoIi90ZXN0MyIsICI9PSIpXSkKKyAgICBzMSA9IFNvdXJjZUZpbGVXaXRoVGVz
dCgidGVzdDEiLCAiMCIqNDAsIGl0ZW0uUmVmVGVzdE5vZGUsIHJlZmVyZW5jZXM9WygiL3Rlc3Qy
IiwgIj09IildKQorICAgIHMyID0gU291cmNlRmlsZVdpdGhUZXN0KCJ0ZXN0MiIsICIwIio0MCwg
aXRlbS5SZWZUZXN0Tm9kZSwgcmVmZXJlbmNlcz1bKCIvdGVzdDMiLCAiPT0iKV0pCiAKLSAgICBh
c3NlcnQgbS51cGRhdGUoW3MxLCBzMl0pIGlzIFRydWUKKyAgICBhc3NlcnQgbS51cGRhdGUoWyhz
MSwgVHJ1ZSksIChzMiwgVHJ1ZSldKSBpcyBUcnVlCiAKICAgICB0ZXN0MSA9IHMxLm1hbmlmZXN0
X2l0ZW1zKClbMV1bMF0KICAgICB0ZXN0MiA9IHMyLm1hbmlmZXN0X2l0ZW1zKClbMV1bMF0KLSAg
ICB0ZXN0Ml9ub2RlID0gdGVzdDIudG9fUmVmVGVzdE5vZGUoKQogCi0gICAgYXNzZXJ0IGxpc3Qo
bSkgPT0gWygicmVmdGVzdCIsIHRlc3QxLnBhdGgsIHt0ZXN0MX0pLAotICAgICAgICAgICAgICAg
ICAgICAgICAoInJlZnRlc3Rfbm9kZSIsIHRlc3QyLnBhdGgsIHt0ZXN0Ml9ub2RlfSldCisgICAg
YXNzZXJ0IGxpc3QobSkgPT0gWygicmVmdGVzdCIsIHRlc3QxLnBhdGgsIHt0ZXN0MS50b19SZWZU
ZXN0KCl9KSwKKyAgICAgICAgICAgICAgICAgICAgICAgKCJyZWZ0ZXN0X25vZGUiLCB0ZXN0Mi5w
YXRoLCB7dGVzdDJ9KV0KIAogICAgICMgczIncyBoYXNoIGlzIHVuY2hhbmdlZCwgYnV0IGl0IGhh
cyBnb25lIGZyb20gYSBub2RlIHRvIGEgdGVzdAotICAgIGFzc2VydCBtLnVwZGF0ZShbczJdKSBp
cyBUcnVlCisgICAgYXNzZXJ0IG0udXBkYXRlKFsoczIsIFRydWUpXSkgaXMgVHJ1ZQogCi0gICAg
YXNzZXJ0IGxpc3QobSkgPT0gWygicmVmdGVzdCIsIHRlc3QyLnBhdGgsIHt0ZXN0Mn0pXQorICAg
IGFzc2VydCBsaXN0KG0pID09IFsoInJlZnRlc3QiLCB0ZXN0Mi5wYXRoLCB7dGVzdDIudG9fUmVm
VGVzdCgpfSldCiAKIAogZGVmIHRlc3RfcmVmdGVzdF9jb21wdXRhdGlvbl9jaGFpbl91cGRhdGVf
dGVzdF90eXBlKCk6CiAgICAgbSA9IG1hbmlmZXN0Lk1hbmlmZXN0KCkKIAotICAgIHMxID0gU291
cmNlRmlsZVdpdGhUZXN0KCJ0ZXN0IiwgIjAiKjQwLCBpdGVtLlJlZlRlc3QsIFsoIi90ZXN0LXJl
ZiIsICI9PSIpXSkKKyAgICBzMSA9IFNvdXJjZUZpbGVXaXRoVGVzdCgidGVzdCIsICIwIio0MCwg
aXRlbS5SZWZUZXN0Tm9kZSwgcmVmZXJlbmNlcz1bKCIvdGVzdC1yZWYiLCAiPT0iKV0pCiAKLSAg
ICBhc3NlcnQgbS51cGRhdGUoW3MxXSkgaXMgVHJ1ZQorICAgIGFzc2VydCBtLnVwZGF0ZShbKHMx
LCBUcnVlKV0pIGlzIFRydWUKIAogICAgIHRlc3QxID0gczEubWFuaWZlc3RfaXRlbXMoKVsxXVsw
XQogCi0gICAgYXNzZXJ0IGxpc3QobSkgPT0gWygicmVmdGVzdCIsIHRlc3QxLnBhdGgsIHt0ZXN0
MX0pXQorICAgIGFzc2VydCBsaXN0KG0pID09IFsoInJlZnRlc3QiLCB0ZXN0MS5wYXRoLCB7dGVz
dDEudG9fUmVmVGVzdCgpfSldCiAKICAgICAjIHRlc3QgYmVjb21lcyBhIHRlc3RoYXJuZXNzIHRl
c3QgKGhhc2ggY2hhbmdlIGJlY2F1c2UgdGhhdCBpcyBkZXRlcm1pbmVkCiAgICAgIyBiYXNlZCBv
biB0aGUgZmlsZSBjb250ZW50cykuIFRoZSB1cGRhdGVkIG1hbmlmZXN0IHNob3VsZCBub3QgaW5j
bHVkZXMgdGhlCiAgICAgIyBvbGQgcmVmdGVzdC4KICAgICBzMiA9IFNvdXJjZUZpbGVXaXRoVGVz
dCgidGVzdCIsICIxIio0MCwgaXRlbS5UZXN0aGFybmVzc1Rlc3QpCi0gICAgYXNzZXJ0IG0udXBk
YXRlKFtzMl0pIGlzIFRydWUKKyAgICBhc3NlcnQgbS51cGRhdGUoWyhzMiwgVHJ1ZSldKSBpcyBU
cnVlCiAKICAgICB0ZXN0MiA9IHMyLm1hbmlmZXN0X2l0ZW1zKClbMV1bMF0KIApAQCAtMjU2LDg2
ICsyNDUsMTU4IEBAIGRlZiB0ZXN0X3JlZnRlc3RfY29tcHV0YXRpb25fY2hhaW5fdXBkYXRlX3Rl
c3RfdHlwZSgpOgogZGVmIHRlc3RfcmVmdGVzdF9jb21wdXRhdGlvbl9jaGFpbl91cGRhdGVfbm9k
ZV9jaGFuZ2UoKToKICAgICBtID0gbWFuaWZlc3QuTWFuaWZlc3QoKQogCi0gICAgczEgPSBTb3Vy
Y2VGaWxlV2l0aFRlc3QoInRlc3QxIiwgIjAiKjQwLCBpdGVtLlJlZlRlc3QsIFsoIi90ZXN0MiIs
ICI9PSIpXSkKLSAgICBzMiA9IFNvdXJjZUZpbGVXaXRoVGVzdCgidGVzdDIiLCAiMCIqNDAsIGl0
ZW0uUmVmVGVzdE5vZGUsIFsoIi90ZXN0MyIsICI9PSIpXSkKKyAgICBzMSA9IFNvdXJjZUZpbGVX
aXRoVGVzdCgidGVzdDEiLCAiMCIqNDAsIGl0ZW0uUmVmVGVzdE5vZGUsIHJlZmVyZW5jZXM9Wygi
L3Rlc3QyIiwgIj09IildKQorICAgIHMyID0gU291cmNlRmlsZVdpdGhUZXN0KCJ0ZXN0MiIsICIw
Iio0MCwgaXRlbS5SZWZUZXN0Tm9kZSwgcmVmZXJlbmNlcz1bKCIvdGVzdDMiLCAiPT0iKV0pCiAK
LSAgICBhc3NlcnQgbS51cGRhdGUoW3MxLCBzMl0pIGlzIFRydWUKKyAgICBhc3NlcnQgbS51cGRh
dGUoWyhzMSwgVHJ1ZSksIChzMiwgVHJ1ZSldKSBpcyBUcnVlCiAKICAgICB0ZXN0MSA9IHMxLm1h
bmlmZXN0X2l0ZW1zKClbMV1bMF0KICAgICB0ZXN0MiA9IHMyLm1hbmlmZXN0X2l0ZW1zKClbMV1b
MF0KIAotICAgIGFzc2VydCBsaXN0KG0pID09IFsoInJlZnRlc3QiLCB0ZXN0MS5wYXRoLCB7dGVz
dDF9KSwKKyAgICBhc3NlcnQgbGlzdChtKSA9PSBbKCJyZWZ0ZXN0IiwgdGVzdDEucGF0aCwge3Rl
c3QxLnRvX1JlZlRlc3QoKX0pLAogICAgICAgICAgICAgICAgICAgICAgICAoInJlZnRlc3Rfbm9k
ZSIsIHRlc3QyLnBhdGgsIHt0ZXN0Mn0pXQogCiAgICAgI3Rlc3QyIGNoYW5nZXMgdG8gc3VwcG9y
dCB0eXBlCiAgICAgczIgPSBTb3VyY2VGaWxlV2l0aFRlc3QoInRlc3QyIiwgIjEiKjQwLCBpdGVt
LlN1cHBvcnRGaWxlKQogCi0gICAgYXNzZXJ0IG0udXBkYXRlKFtzMSxzMl0pIGlzIFRydWUKKyAg
ICBhc3NlcnQgbS51cGRhdGUoWyhzMSwgVHJ1ZSksIChzMiwgVHJ1ZSldKSBpcyBUcnVlCiAgICAg
dGVzdDMgPSBzMi5tYW5pZmVzdF9pdGVtcygpWzFdWzBdCiAKLSAgICBhc3NlcnQgbGlzdChtKSA9
PSBbKCJyZWZ0ZXN0IiwgdGVzdDEucGF0aCwge3Rlc3QxfSksCisgICAgYXNzZXJ0IGxpc3QobSkg
PT0gWygicmVmdGVzdCIsIHRlc3QxLnBhdGgsIHt0ZXN0MS50b19SZWZUZXN0KCl9KSwKICAgICAg
ICAgICAgICAgICAgICAgICAgKCJzdXBwb3J0IiwgdGVzdDMucGF0aCwge3Rlc3QzfSldCiAKIAor
ZGVmIHRlc3RfcmVmdGVzdF9jb21wdXRhdGlvbl9jaGFpbl91cGRhdGVfbm9kZV9jaGFuZ2VfcGFy
dGlhbCgpOgorICAgIG0gPSBtYW5pZmVzdC5NYW5pZmVzdCgpCisKKyAgICBzMSA9IFNvdXJjZUZp
bGVXaXRoVGVzdCgidGVzdDEiLCAiMCIqNDAsIGl0ZW0uUmVmVGVzdE5vZGUsIHJlZmVyZW5jZXM9
WygiL3Rlc3QyIiwgIj09IildKQorICAgIHMyID0gU291cmNlRmlsZVdpdGhUZXN0KCJ0ZXN0MiIs
ICIwIio0MCwgaXRlbS5SZWZUZXN0Tm9kZSwgcmVmZXJlbmNlcz1bKCIvdGVzdDMiLCAiPT0iKV0p
CisKKyAgICBhc3NlcnQgbS51cGRhdGUoWyhzMSwgVHJ1ZSksIChzMiwgVHJ1ZSldKSBpcyBUcnVl
CisKKyAgICB0ZXN0MSA9IHMxLm1hbmlmZXN0X2l0ZW1zKClbMV1bMF0KKyAgICB0ZXN0MiA9IHMy
Lm1hbmlmZXN0X2l0ZW1zKClbMV1bMF0KKworICAgIGFzc2VydCBsaXN0KG0pID09IFsoInJlZnRl
c3QiLCB0ZXN0MS5wYXRoLCB7dGVzdDEudG9fUmVmVGVzdCgpfSksCisgICAgICAgICAgICAgICAg
ICAgICAgICgicmVmdGVzdF9ub2RlIiwgdGVzdDIucGF0aCwge3Rlc3QyfSldCisKKyAgICBzMiA9
IFNvdXJjZUZpbGVXaXRoVGVzdCgidGVzdDIiLCAiMSIqNDAsIGl0ZW0uUmVmVGVzdE5vZGUsIHJl
ZmVyZW5jZXM9WygiL3Rlc3QzIiwgIj09IildKQorCisgICAgYXNzZXJ0IG0udXBkYXRlKFsoczEu
cmVsX3BhdGgsIEZhbHNlKSwgKHMyLCBUcnVlKV0pIGlzIFRydWUKKworICAgIGFzc2VydCBsaXN0
KG0pID09IFsoInJlZnRlc3QiLCB0ZXN0MS5wYXRoLCB7dGVzdDEudG9fUmVmVGVzdCgpfSksCisg
ICAgICAgICAgICAgICAgICAgICAgICgicmVmdGVzdF9ub2RlIiwgdGVzdDIucGF0aCwge3Rlc3Qy
fSldCisKKwogZGVmIHRlc3RfaXRlcnBhdGgoKToKICAgICBtID0gbWFuaWZlc3QuTWFuaWZlc3Qo
KQogCi0gICAgc291cmNlcyA9IFtTb3VyY2VGaWxlV2l0aFRlc3QoInRlc3QxIiwgIjAiKjQwLCBp
dGVtLlJlZlRlc3QsIFsoIi90ZXN0MS1yZWYiLCAiPT0iKV0pLAotICAgICAgICAgICAgICAgU291
cmNlRmlsZVdpdGhUZXN0KCJ0ZXN0MiIsICIwIio0MCwgaXRlbS5SZWZUZXN0LCBbKCIvdGVzdDIt
cmVmIiwgIj09IildKSwKLSAgICAgICAgICAgICAgIFNvdXJjZUZpbGVXaXRoVGVzdHMoInRlc3Qy
IiwgIjAiKjQwLCBpdGVtLlRlc3RoYXJuZXNzVGVzdCwgWygiL3Rlc3QyLTEuaHRtbCIsKSwKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICgiL3Rlc3QyLTIuaHRtbCIsKV0pLAorICAgIHNvdXJjZXMgPSBbU291
cmNlRmlsZVdpdGhUZXN0KCJ0ZXN0MSIsICIwIio0MCwgaXRlbS5SZWZUZXN0Tm9kZSwgcmVmZXJl
bmNlcz1bKCIvdGVzdDEtcmVmIiwgIj09IildKSwKKyAgICAgICAgICAgICAgIFNvdXJjZUZpbGVX
aXRoVGVzdHMoInRlc3QyIiwgIjEiKjQwLCBpdGVtLlRlc3RoYXJuZXNzVGVzdCwgWygidGVzdDIt
MS5odG1sIiwge30pLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCJ0ZXN0Mi0yLmh0bWwiLCB7fSldKSwK
ICAgICAgICAgICAgICAgIFNvdXJjZUZpbGVXaXRoVGVzdCgidGVzdDMiLCAiMCIqNDAsIGl0ZW0u
VGVzdGhhcm5lc3NUZXN0KV0KLSAgICBtLnVwZGF0ZShzb3VyY2VzKQorICAgIG0udXBkYXRlKFso
cywgVHJ1ZSkgZm9yIHMgaW4gc291cmNlc10pCiAKLSAgICBhc3NlcnQgc2V0KGl0ZW0udXJsIGZv
ciBpdGVtIGluIG0uaXRlcnBhdGgoInRlc3QyIikpID09IHNldChbIi90ZXN0MiIsCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICIvdGVzdDItMS5odG1sIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIi90ZXN0Mi0yLmh0bWwiXSkKKyAgICBhc3NlcnQg
e2l0ZW0udXJsIGZvciBpdGVtIGluIG0uaXRlcnBhdGgoInRlc3QyIil9ID09IHsiL3Rlc3QyLTEu
aHRtbCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIi90ZXN0Mi0yLmh0bWwifQogICAgIGFzc2VydCBzZXQobS5pdGVycGF0aCgibWlz
c2luZyIpKSA9PSBzZXQoKQogCiAKLWRlZiB0ZXN0X2ZpbHRlcigpOgorZGVmIHRlc3RfcmVmdGVz
dF9ub2RlX2J5X3VybCgpOgogICAgIG0gPSBtYW5pZmVzdC5NYW5pZmVzdCgpCiAKLSAgICBzb3Vy
Y2VzID0gW1NvdXJjZUZpbGVXaXRoVGVzdCgidGVzdDEiLCAiMCIqNDAsIGl0ZW0uUmVmVGVzdCwg
WygiL3Rlc3QxLXJlZiIsICI9PSIpXSksCi0gICAgICAgICAgICAgICBTb3VyY2VGaWxlV2l0aFRl
c3QoInRlc3QyIiwgIjAiKjQwLCBpdGVtLlJlZlRlc3QsIFsoIi90ZXN0Mi1yZWYiLCAiPT0iKV0p
LAotICAgICAgICAgICAgICAgU291cmNlRmlsZVdpdGhUZXN0cygidGVzdDIiLCAiMCIqNDAsIGl0
ZW0uVGVzdGhhcm5lc3NUZXN0LCBbKCIvdGVzdDItMS5odG1sIiwpLAotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgKCIvdGVzdDItMi5odG1sIiwpXSksCi0gICAgICAgICAgICAgICBTb3VyY2VGaWxlV2l0aFRl
c3QoInRlc3QzIiwgIjAiKjQwLCBpdGVtLlRlc3RoYXJuZXNzVGVzdCldCi0gICAgbS51cGRhdGUo
c291cmNlcykKLQotICAgIGpzb24gPSBtLnRvX2pzb24oKQorICAgIHMxID0gU291cmNlRmlsZVdp
dGhUZXN0KCJ0ZXN0MSIsICIwIio0MCwgaXRlbS5SZWZUZXN0Tm9kZSwgcmVmZXJlbmNlcz1bKCIv
dGVzdDIiLCAiPT0iKV0pCisgICAgczIgPSBTb3VyY2VGaWxlV2l0aFRlc3QoInRlc3QyIiwgIjAi
KjQwLCBpdGVtLlJlZlRlc3ROb2RlLCByZWZlcmVuY2VzPVsoIi90ZXN0MyIsICI9PSIpXSkKIAot
ICAgIGRlZiBmaWx0ZXIoaXQpOgotICAgICAgICBmb3IgdGVzdCBpbiBpdDoKLSAgICAgICAgICAg
IGlmIHRlc3RbMF0gaW4gWyIvdGVzdDItMi5odG1sIiwgIi90ZXN0MyJdOgotICAgICAgICAgICAg
ICAgIHlpZWxkIHRlc3QKKyAgICBtLnVwZGF0ZShbKHMxLCBUcnVlKSwgKHMyLCBUcnVlKV0pCiAK
LSAgICBmaWx0ZXJlZF9tYW5pZmVzdCA9IG1hbmlmZXN0Lk1hbmlmZXN0LmZyb21fanNvbigiLyIs
IGpzb24sIHR5cGVzPVsidGVzdGhhcm5lc3MiXSwgbWV0YV9maWx0ZXJzPVtmaWx0ZXJdKQorICAg
IHRlc3QxID0gczEubWFuaWZlc3RfaXRlbXMoKVsxXVswXQorICAgIHRlc3QyID0gczIubWFuaWZl
c3RfaXRlbXMoKVsxXVswXQogCi0gICAgYWN0dWFsID0gWwotICAgICAgICAodHksIHBhdGgsIFt0
ZXN0LmlkIGZvciB0ZXN0IGluIHRlc3RzXSkKLSAgICAgICAgZm9yICh0eSwgcGF0aCwgdGVzdHMp
IGluIGZpbHRlcmVkX21hbmlmZXN0Ci0gICAgXQotICAgIGFzc2VydCBhY3R1YWwgPT0gWwotICAg
ICAgICAoInRlc3RoYXJuZXNzIiwgInRlc3QyIiwgWyIvdGVzdDItMi5odG1sIl0pLAotICAgICAg
ICAoInRlc3RoYXJuZXNzIiwgInRlc3QzIiwgWyIvdGVzdDMiXSksCi0gICAgXQorICAgIGFzc2Vy
dCBtLnJlZnRlc3Rfbm9kZXNfYnlfdXJsID09IHsiL3Rlc3QxIjogdGVzdDEudG9fUmVmVGVzdCgp
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiL3Rlc3QyIjogdGVzdDJ9
CisgICAgbS5fcmVmdGVzdF9ub2Rlc19ieV91cmwgPSBOb25lCisgICAgYXNzZXJ0IG0ucmVmdGVz
dF9ub2Rlc19ieV91cmwgPT0geyIvdGVzdDEiOiB0ZXN0MS50b19SZWZUZXN0KCksCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIvdGVzdDIiOiB0ZXN0Mn0KIAogCi1kZWYg
dGVzdF9yZWZ0ZXN0X25vZGVfYnlfdXJsKCk6CitkZWYgdGVzdF9ub191cGRhdGUoKToKICAgICBt
ID0gbWFuaWZlc3QuTWFuaWZlc3QoKQogCi0gICAgczEgPSBTb3VyY2VGaWxlV2l0aFRlc3QoInRl
c3QxIiwgIjAiKjQwLCBpdGVtLlJlZlRlc3QsIFsoIi90ZXN0MiIsICI9PSIpXSkKLSAgICBzMiA9
IFNvdXJjZUZpbGVXaXRoVGVzdCgidGVzdDIiLCAiMCIqNDAsIGl0ZW0uUmVmVGVzdCwgWygiL3Rl
c3QzIiwgIj09IildKQorICAgIHMxID0gU291cmNlRmlsZVdpdGhUZXN0KCJ0ZXN0MSIsICIwIio0
MCwgaXRlbS5UZXN0aGFybmVzc1Rlc3QpCisgICAgczIgPSBTb3VyY2VGaWxlV2l0aFRlc3QoInRl
c3QyIiwgIjAiKjQwLCBpdGVtLlRlc3RoYXJuZXNzVGVzdCkKIAotICAgIG0udXBkYXRlKFtzMSwg
czJdKQorICAgIG0udXBkYXRlKFsoczEsIFRydWUpLCAoczIsIFRydWUpXSkKIAogICAgIHRlc3Qx
ID0gczEubWFuaWZlc3RfaXRlbXMoKVsxXVswXQogICAgIHRlc3QyID0gczIubWFuaWZlc3RfaXRl
bXMoKVsxXVswXQotICAgIHRlc3QyX25vZGUgPSB0ZXN0Mi50b19SZWZUZXN0Tm9kZSgpCiAKLSAg
ICBhc3NlcnQgbS5yZWZ0ZXN0X25vZGVzX2J5X3VybCA9PSB7Ii90ZXN0MSI6IHRlc3QxLAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiL3Rlc3QyIjogdGVzdDJfbm9kZX0K
LSAgICBtLl9yZWZ0ZXN0X25vZGVzX2J5X3VybCA9IE5vbmUKLSAgICBhc3NlcnQgbS5yZWZ0ZXN0
X25vZGVzX2J5X3VybCA9PSB7Ii90ZXN0MSI6IHRlc3QxLAotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAiL3Rlc3QyIjogdGVzdDJfbm9kZX0KKyAgICBhc3NlcnQgbGlzdCht
KSA9PSBbKCJ0ZXN0aGFybmVzcyIsIHRlc3QxLnBhdGgsIHt0ZXN0MX0pLAorICAgICAgICAgICAg
ICAgICAgICAgICAoInRlc3RoYXJuZXNzIiwgdGVzdDIucGF0aCwge3Rlc3QyfSldCisKKyAgICBz
MV8xID0gU291cmNlRmlsZVdpdGhUZXN0KCJ0ZXN0MSIsICIxIio0MCwgaXRlbS5NYW51YWxUZXN0
KQorCisgICAgbS51cGRhdGUoWyhzMV8xLCBUcnVlKSwgKHMyLnJlbF9wYXRoLCBGYWxzZSldKQor
CisgICAgdGVzdDFfMSA9IHMxXzEubWFuaWZlc3RfaXRlbXMoKVsxXVswXQorCisgICAgYXNzZXJ0
IGxpc3QobSkgPT0gWygibWFudWFsIiwgdGVzdDFfMS5wYXRoLCB7dGVzdDFfMX0pLAorICAgICAg
ICAgICAgICAgICAgICAgICAoInRlc3RoYXJuZXNzIiwgdGVzdDIucGF0aCwge3Rlc3QyfSldCisK
KworZGVmIHRlc3Rfbm9fdXBkYXRlX2RlbGV0ZSgpOgorICAgIG0gPSBtYW5pZmVzdC5NYW5pZmVz
dCgpCisKKyAgICBzMSA9IFNvdXJjZUZpbGVXaXRoVGVzdCgidGVzdDEiLCAiMCIqNDAsIGl0ZW0u
VGVzdGhhcm5lc3NUZXN0KQorICAgIHMyID0gU291cmNlRmlsZVdpdGhUZXN0KCJ0ZXN0MiIsICIw
Iio0MCwgaXRlbS5UZXN0aGFybmVzc1Rlc3QpCisKKyAgICBtLnVwZGF0ZShbKHMxLCBUcnVlKSwg
KHMyLCBUcnVlKV0pCisKKyAgICB0ZXN0MSA9IHMxLm1hbmlmZXN0X2l0ZW1zKClbMV1bMF0KKwor
ICAgIHMxXzEgPSBTb3VyY2VGaWxlV2l0aFRlc3QoInRlc3QxIiwgIjEiKjQwLCBpdGVtLk1hbnVh
bFRlc3QpCisKKyAgICBtLnVwZGF0ZShbKHMxXzEucmVsX3BhdGgsIEZhbHNlKV0pCisKKyAgICBh
c3NlcnQgbGlzdChtKSA9PSBbKCJ0ZXN0aGFybmVzcyIsIHRlc3QxLnBhdGgsIHt0ZXN0MX0pXQor
CisKK2RlZiB0ZXN0X3VwZGF0ZV9mcm9tX2pzb24oKToKKyAgICBtID0gbWFuaWZlc3QuTWFuaWZl
c3QoKQorCisgICAgczEgPSBTb3VyY2VGaWxlV2l0aFRlc3QoInRlc3QxIiwgIjAiKjQwLCBpdGVt
LlRlc3RoYXJuZXNzVGVzdCkKKyAgICBzMiA9IFNvdXJjZUZpbGVXaXRoVGVzdCgidGVzdDIiLCAi
MCIqNDAsIGl0ZW0uVGVzdGhhcm5lc3NUZXN0KQorCisgICAgbS51cGRhdGUoWyhzMSwgVHJ1ZSks
IChzMiwgVHJ1ZSldKQorCisgICAganNvbl9zdHIgPSBtLnRvX2pzb24oKQorICAgIG0gPSBtYW5p
ZmVzdC5NYW5pZmVzdC5mcm9tX2pzb24oIi8iLCBqc29uX3N0cikKKworICAgIG0udXBkYXRlKFso
czEsIFRydWUpXSkKKworICAgIHRlc3QxID0gczEubWFuaWZlc3RfaXRlbXMoKVsxXVswXQorCisg
ICAgYXNzZXJ0IGxpc3QobSkgPT0gWygidGVzdGhhcm5lc3MiLCB0ZXN0MS5wYXRoLCB7dGVzdDF9
KV0KKworCitkZWYgdGVzdF91cGRhdGVfZnJvbV9qc29uX21vZGlmaWVkKCk6CisgICAgIyBDcmVh
dGUgdGhlIG9yaWdpbmFsIG1hbmlmZXN0CisgICAgbSA9IG1hbmlmZXN0Lk1hbmlmZXN0KCkKKyAg
ICBzMSA9IFNvdXJjZUZpbGVXaXRoVGVzdCgidGVzdDEiLCAiMCIqNDAsIGl0ZW0uVGVzdGhhcm5l
c3NUZXN0KQorICAgIG0udXBkYXRlKFsoczEsIFRydWUpXSkKKyAgICBqc29uX3N0ciA9IG0udG9f
anNvbigpCisKKyAgICAjIFJlbG9hZCBpdCBmcm9tIEpTT04KKyAgICBtID0gbWFuaWZlc3QuTWFu
aWZlc3QuZnJvbV9qc29uKCIvIiwganNvbl9zdHIpCisKKyAgICAjIFVwZGF0ZSBpdCB3aXRoIHRp
bWVvdXQ9ImxvbmciCisgICAgczIgPSBTb3VyY2VGaWxlV2l0aFRlc3QoInRlc3QxIiwgIjEiKjQw
LCBpdGVtLlRlc3RoYXJuZXNzVGVzdCwgdGltZW91dD0ibG9uZyIpCisgICAgbS51cGRhdGUoWyhz
MiwgVHJ1ZSldKQorICAgIGpzb25fc3RyID0gbS50b19qc29uKCkKKyAgICBhc3NlcnQganNvbl9z
dHIgPT0geworICAgICAgICAnaXRlbXMnOiB7J3Rlc3RoYXJuZXNzJzogeyd0ZXN0MSc6IFsoJ3Rl
c3QxJywgeyJ0aW1lb3V0IjogImxvbmcifSldfX0sCisgICAgICAgICdwYXRocyc6IHsndGVzdDEn
OiAoJzExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTEnLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICd0ZXN0aGFybmVzcycpfSwKKyAgICAgICAgJ3VybF9iYXNlJzog
Jy8nLAorICAgICAgICAndmVyc2lvbic6IDYKKyAgICB9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL21hbmlmZXN0L3Rlc3RzL3Rl
c3Rfc291cmNlZmlsZS5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvbWFuaWZlc3QvdGVzdHMvdGVzdF9zb3VyY2VmaWxlLnB5CmluZGV4IDU3YTE3
NWNhZTkxLi4wYTdhMWNhMGI0MSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9tYW5pZmVzdC90ZXN0cy90ZXN0X3NvdXJjZWZpbGUu
cHkKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy9tYW5pZmVzdC90ZXN0cy90ZXN0X3NvdXJjZWZpbGUucHkKQEAgLTM1LDcgKzM1LDcgQEAgZGVm
IGl0ZW1zKHMpOgogICAgICJmb28vdG9vbHMvdGVzdC5odG1sIiwKICAgICAiZm9vL3Jlc291cmNl
cy90ZXN0Lmh0bWwiLAogICAgICJmb28vc3VwcG9ydC90ZXN0Lmh0bWwiLAotICAgICJmb28vdGVz
dC1zdXBwb3J0Lmh0bWwiLAorICAgICJmb28vZm9vLW1hbnVhbC5odG1sLmhlYWRlcnMiLAogICAg
ICJjc3MvY29tbW9uL3Rlc3QuaHRtbCIsCiAgICAgImNzcy9DU1MyL2FyY2hpdmUvdGVzdC5odG1s
IiwKIF0pCkBAIC01NSw2ICs1NSw3IEBAIGRlZiB0ZXN0X25hbWVfaXNfbm9uX3Rlc3QocmVsX3Bh
dGgpOgogICAgICJmb28vY3NzMjEvYXJjaGl2ZS90ZXN0Lmh0bWwiLAogICAgICJmb28vQ1NTMi9h
cmNoaXZlL3Rlc3QuaHRtbCIsCiAgICAgImNzcy9jc3MyMS9hcmNoaXZlL3Rlc3QuaHRtbCIsCisg
ICAgImZvby90ZXN0LXN1cHBvcnQuaHRtbCIsCiBdKQogZGVmIHRlc3Rfbm90X25hbWVfaXNfbm9u
X3Rlc3QocmVsX3BhdGgpOgogICAgIHMgPSBjcmVhdGUocmVsX3BhdGgpCkBAIC02NCw2ICs2NSw3
IEBAIGRlZiB0ZXN0X25vdF9uYW1lX2lzX25vbl90ZXN0KHJlbF9wYXRoKToKIAogCiBAcHl0ZXN0
Lm1hcmsucGFyYW1ldHJpemUoInJlbF9wYXRoIiwgWworICAgICJmb28vZm9vLW1hbnVhbC5odG1s
IiwKICAgICAiaHRtbC90ZXN0LW1hbnVhbC5odG1sIiwKICAgICAiaHRtbC90ZXN0LW1hbnVhbC54
aHRtbCIsCiAgICAgImh0bWwvdGVzdC1tYW51YWwuaHR0cHMuaHRtbCIsCkBAIC03NjQsMyArNzY2
LDY5IEBAIGRlZiB0ZXN0X3NwZWNfbGlua3Nfd2hpdGVzcGFjZSh1cmwpOgogICAgIGNvbnRlbnQg
PSBiIjxsaW5rIHJlbD1oZWxwIGhyZWY9JyVzJz4iICUgdXJsCiAgICAgcyA9IGNyZWF0ZSgiZm9v
L3Rlc3QuaHRtbCIsIGNvbnRlbnQpCiAgICAgYXNzZXJ0IHMuc3BlY19saW5rcyA9PSB7Imh0dHA6
Ly9leGFtcGxlLmNvbS8ifQorCisKK2RlZiB0ZXN0X3VybF9iYXNlKCk6CisgICAgY29udGVudHMg
PSBiIiIiLy8gTUVUQTogZ2xvYmFsPXdpbmRvdyx3b3JrZXIKKy8vIE1FVEE6IHZhcmlhbnQ9Cisv
LyBNRVRBOiB2YXJpYW50PT93c3MKK3Rlc3QoKSIiIgorCisgICAgcyA9IFNvdXJjZUZpbGUoIi8i
LCAiaHRtbC90ZXN0LmFueS5qcyIsICIvX2Zha2VfYmFzZS8iLCBjb250ZW50cz1jb250ZW50cykK
KyAgICBpdGVtX3R5cGUsIGl0ZW1zID0gcy5tYW5pZmVzdF9pdGVtcygpCisKKyAgICBhc3NlcnQg
aXRlbV90eXBlID09ICJ0ZXN0aGFybmVzcyIKKworICAgIGFzc2VydCBbaXRlbS51cmwgZm9yIGl0
ZW0gaW4gaXRlbXNdID09IFt1Jy9fZmFrZV9iYXNlL2h0bWwvdGVzdC5hbnkuaHRtbCcsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHUnL19mYWtlX2Jhc2UvaHRt
bC90ZXN0LmFueS5odG1sP3dzcycsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHUnL19mYWtlX2Jhc2UvaHRtbC90ZXN0LmFueS5zZXJ2aWNld29ya2VyLmh0bWwn
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1Jy9fZmFrZV9i
YXNlL2h0bWwvdGVzdC5hbnkuc2VydmljZXdvcmtlci5odG1sP3dzcycsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHUnL19mYWtlX2Jhc2UvaHRtbC90ZXN0LmFu
eS5zaGFyZWR3b3JrZXIuaHRtbCcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHUnL19mYWtlX2Jhc2UvaHRtbC90ZXN0LmFueS5zaGFyZWR3b3JrZXIuaHRtbD93
c3MnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1Jy9fZmFr
ZV9iYXNlL2h0bWwvdGVzdC5hbnkud29ya2VyLmh0bWwnLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICB1Jy9fZmFrZV9iYXNlL2h0bWwvdGVzdC5hbnkud29ya2Vy
Lmh0bWw/d3NzJ10KKworICAgIGFzc2VydCBpdGVtc1swXS51cmxfYmFzZSA9PSAiL19mYWtlX2Jh
c2UvIgorCisKK0BweXRlc3QubWFyay5wYXJhbWV0cml6ZSgiZnV6enksIGV4cGVjdGVkIiwgWwor
ICAgIChiInJlZi5odG1sOjE7MjAwIiwgeygiL2Zvby90ZXN0Lmh0bWwiLCAiL2Zvby9yZWYuaHRt
bCIsICI9PSIpOiBbWzEsIDFdLCBbMjAwLCAyMDBdXX0pLAorICAgIChiInJlZi5odG1sOjAtMTsx
MDAtMjAwIiwgeygiL2Zvby90ZXN0Lmh0bWwiLCAiL2Zvby9yZWYuaHRtbCIsICI9PSIpOiBbWzAs
IDFdLCBbMTAwLCAyMDBdXX0pLAorICAgIChiIjAtMTsxMDAtMjAwIiwge05vbmU6IFtbMCwxXSwg
WzEwMCwgMjAwXV19KSwKKyAgICAoYiJtYXhEaWZmZXJlbmNlPTE7dG90YWxQaXhlbHM9MjAwIiwg
e05vbmU6IFtbMSwgMV0sIFsyMDAsIDIwMF1dfSksCisgICAgKGIidG90YWxQaXhlbHM9MjAwO21h
eERpZmZlcmVuY2U9MSIsIHtOb25lOiBbWzEsIDFdLCBbMjAwLCAyMDBdXX0pLAorICAgIChiInRv
dGFsUGl4ZWxzPTIwMDsxIiwge05vbmU6IFtbMSwgMV0sIFsyMDAsIDIwMF1dfSksCisgICAgKGIi
bWF4RGlmZmVyZW5jZT0xOzIwMCIsIHtOb25lOiBbWzEsIDFdLCBbMjAwLCAyMDBdXX0pLF0pCitk
ZWYgdGVzdF9yZWZ0ZXN0X2Z1enp5KGZ1enp5LCBleHBlY3RlZCk6CisgICAgY29udGVudCA9IGIi
IiI8bGluayByZWw9bWF0Y2ggaHJlZj1yZWYuaHRtbD4KKzxtZXRhIG5hbWU9ZnV6enkgY29udGVu
dD0iJXMiPgorIiIiICUgZnV6enkKKworICAgIHMgPSBjcmVhdGUoImZvby90ZXN0Lmh0bWwiLCBj
b250ZW50KQorCisgICAgYXNzZXJ0IHMuY29udGVudF9pc19yZWZfbm9kZQorICAgIGFzc2VydCBz
LmZ1enp5ID09IGV4cGVjdGVkCisKKworQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKCJmdXp6eSwg
ZXhwZWN0ZWQiLCBbCisgICAgKFtiIjE7MjAwIl0sIHtOb25lOiBbWzEsIDFdLCBbMjAwLCAyMDBd
XX0pLAorICAgIChbYiJyZWYtMi5odG1sOjAtMTsxMDAtMjAwIl0sIHsoIi9mb28vdGVzdC5odG1s
IiwgIi9mb28vcmVmLTIuaHRtbCIsICI9PSIpOiBbWzAsIDFdLCBbMTAwLCAyMDBdXX0pLAorICAg
IChbYiIxOzIwMCIsIGIicmVmLTIuaHRtbDowLTE7MTAwLTIwMCJdLAorICAgICB7Tm9uZTogW1sx
LCAxXSwgWzIwMCwgMjAwXV0sCisgICAgICAoIi9mb28vdGVzdC5odG1sIiwgIi9mb28vcmVmLTIu
aHRtbCIsICI9PSIpOiBbWzAsMV0sIFsxMDAsIDIwMF1dfSldKQorZGVmIHRlc3RfcmVmdGVzdF9m
dXp6eV9tdWx0aShmdXp6eSwgZXhwZWN0ZWQpOgorICAgIGNvbnRlbnQgPSBiIiIiPGxpbmsgcmVs
PW1hdGNoIGhyZWY9cmVmLTEuaHRtbD4KKzxsaW5rIHJlbD1tYXRjaCBocmVmPXJlZi0yLmh0bWw+
CisiIiIKKyAgICBmb3IgaXRlbSBpbiBmdXp6eToKKyAgICAgICAgY29udGVudCArPSBiJ1xuPG1l
dGEgbmFtZT1mdXp6eSBjb250ZW50PSIlcyI+JyAlIGl0ZW0KKworICAgIHMgPSBjcmVhdGUoImZv
by90ZXN0Lmh0bWwiLCBjb250ZW50KQorCisgICAgYXNzZXJ0IHMuY29udGVudF9pc19yZWZfbm9k
ZQorICAgIGFzc2VydCBzLmZ1enp5ID09IGV4cGVjdGVkCisKKworZGVmIHRlc3RfaGFzaCgpOgor
ICAgIHMgPSBTb3VyY2VGaWxlKCIvIiwgImZvbyIsICIvIiwgY29udGVudHM9YiJIZWxsbywgV29y
bGQhIikKKyAgICBhc3NlcnQgYiJiNDVlZjZmZWM4OTUxOGQzMTRmNTQ2ZmQ2YzMwMjUzNjdiNzIx
Njg0IiA9PSBzLmhhc2gKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvbWFuaWZlc3QvdGVzdHMvdGVzdF91dGlscy5weSBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvbWFuaWZlc3QvdGVz
dHMvdGVzdF91dGlscy5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4u
MWJkZmZiOWIxZmUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL21hbmlmZXN0L3Rlc3RzL3Rlc3RfdXRpbHMucHkKQEAg
LTAsMCArMSwxNCBAQAoraW1wb3J0IG9zCitpbXBvcnQgc3VicHJvY2VzcworCitpbXBvcnQgbW9j
aworCitmcm9tIC4uIGltcG9ydCB1dGlscworCisKK2RlZiB0ZXN0X2dpdF9mb3JfcGF0aF9ub19n
aXQoKToKKyAgICB0aGlzX2RpciA9IG9zLnBhdGguZGlybmFtZShfX2ZpbGVfXykKKyAgICB3aXRo
IG1vY2sucGF0Y2goCisgICAgICAgICAgICAic3VicHJvY2Vzcy5jaGVja19vdXRwdXQiLAorICAg
ICAgICAgICAgc2lkZV9lZmZlY3Q9c3VicHJvY2Vzcy5DYWxsZWRQcm9jZXNzRXJyb3IoMSwgImZv
byIpKToKKyAgICAgICAgYXNzZXJ0IHV0aWxzLmdpdCh0aGlzX2RpcikgaXMgTm9uZQpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9t
YW5pZmVzdC90ZXN0cy93M2MtaW1wb3J0LmxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvbWFuaWZlc3QvdGVzdHMvdzNjLWltcG9ydC5sb2cKaW5k
ZXggMWYyMGFjODQ0NmYuLjA5ZTUzOTlmNDgyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL21hbmlmZXN0L3Rlc3RzL3czYy1pbXBv
cnQubG9nCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvbWFuaWZlc3QvdGVzdHMvdzNjLWltcG9ydC5sb2cKQEAgLTE5LDMgKzE5LDQgQEAgTGlz
dCBvZiBmaWxlczoKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL21hbmlmZXN0L3Rlc3RzL3Rlc3RfaXRlbS5weQogL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvbWFuaWZlc3QvdGVzdHMvdGVzdF9tYW5pZmVz
dC5weQogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
bWFuaWZlc3QvdGVzdHMvdGVzdF9zb3VyY2VmaWxlLnB5CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9tYW5pZmVzdC90ZXN0cy90ZXN0X3V0aWxzLnB5
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL21hbmlmZXN0L3VwZGF0ZS5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvbWFuaWZlc3QvdXBkYXRlLnB5CmluZGV4IDk5MjNjYzVmZTYy
Li5iZmJhYWY4OTcxMiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy9tYW5pZmVzdC91cGRhdGUucHkKKysrIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9tYW5pZmVzdC91cGRhdGUucHkK
QEAgLTIsNyArMiw3IEBACiBpbXBvcnQgYXJncGFyc2UKIGltcG9ydCBvcwogCi1pbXBvcnQgbWFu
aWZlc3QKK2Zyb20gLiBpbXBvcnQgbWFuaWZlc3QKIGZyb20gLiBpbXBvcnQgdmNzCiBmcm9tIC5s
b2cgaW1wb3J0IGdldF9sb2dnZXIKIGZyb20gLmRvd25sb2FkIGltcG9ydCBkb3dubG9hZF9mcm9t
X2dpdGh1YgpAQCAtMTMsNDkgKzEzLDU0IEBAIHdwdF9yb290ID0gb3MucGF0aC5hYnNwYXRoKG9z
LnBhdGguam9pbihoZXJlLCBvcy5wYXJkaXIsIG9zLnBhcmRpcikpCiAKIGxvZ2dlciA9IGdldF9s
b2dnZXIoKQogCi1kZWYgdXBkYXRlKHRlc3RzX3Jvb3QsIG1hbmlmZXN0LCB3b3JraW5nX2NvcHk9
RmFsc2UpOgorTVlQWSA9IEZhbHNlCitpZiBNWVBZOgorICAgICMgTVlQWSBpcyBzZXQgdG8gVHJ1
ZSB3aGVuIHJ1biB1bmRlciBNeXB5LgorICAgIGZyb20gdHlwaW5nIGltcG9ydCBBbnkKKyAgICBm
cm9tIHR5cGluZyBpbXBvcnQgT3B0aW9uYWwKKyAgICBmcm9tIC5tYW5pZmVzdCBpbXBvcnQgTWFu
aWZlc3QgICMgYXZvaWQgY3ljbGljIGltcG9ydAorCisKK2RlZiB1cGRhdGUodGVzdHNfcm9vdCwg
ICMgdHlwZTogc3RyCisgICAgICAgICAgIG1hbmlmZXN0LCAgIyB0eXBlOiBNYW5pZmVzdAorICAg
ICAgICAgICBtYW5pZmVzdF9wYXRoPU5vbmUsICAjIHR5cGU6IE9wdGlvbmFsW3N0cl0KKyAgICAg
ICAgICAgd29ya2luZ19jb3B5PVRydWUsICAjIHR5cGU6IGJvb2wKKyAgICAgICAgICAgY2FjaGVf
cm9vdD1Ob25lLCAgIyB0eXBlOiBPcHRpb25hbFtzdHJdCisgICAgICAgICAgIHJlYnVpbGQ9RmFs
c2UgICMgdHlwZTogYm9vbAorICAgICAgICAgICApOgorICAgICMgdHlwZTogKC4uLikgLT4gYm9v
bAorICAgIGxvZ2dlci53YXJuaW5nKCJEZXByZWNhdGVkOyB1c2UgbWFuaWZlc3QubG9hZF9hbmRf
dXBkYXRlIGluc3RlYWQiKQogICAgIGxvZ2dlci5pbmZvKCJVcGRhdGluZyBtYW5pZmVzdCIpCi0g
ICAgdHJlZSA9IE5vbmUKLSAgICBpZiBub3Qgd29ya2luZ19jb3B5OgotICAgICAgICB0cmVlID0g
dmNzLkdpdC5mb3JfcGF0aCh0ZXN0c19yb290LCBtYW5pZmVzdC51cmxfYmFzZSkKLSAgICBpZiB0
cmVlIGlzIE5vbmU6Ci0gICAgICAgIHRyZWUgPSB2Y3MuRmlsZVN5c3RlbSh0ZXN0c19yb290LCBt
YW5pZmVzdC51cmxfYmFzZSkKIAorICAgIHRyZWUgPSB2Y3MuZ2V0X3RyZWUodGVzdHNfcm9vdCwg
bWFuaWZlc3QsIG1hbmlmZXN0X3BhdGgsIGNhY2hlX3Jvb3QsCisgICAgICAgICAgICAgICAgICAg
ICAgICB3b3JraW5nX2NvcHksIHJlYnVpbGQpCiAgICAgcmV0dXJuIG1hbmlmZXN0LnVwZGF0ZSh0
cmVlKQogCiAKIGRlZiB1cGRhdGVfZnJvbV9jbGkoKiprd2FyZ3MpOgorICAgICMgdHlwZTogKCoq
QW55KSAtPiBOb25lCiAgICAgdGVzdHNfcm9vdCA9IGt3YXJnc1sidGVzdHNfcm9vdCJdCiAgICAg
cGF0aCA9IGt3YXJnc1sicGF0aCJdCiAgICAgYXNzZXJ0IHRlc3RzX3Jvb3QgaXMgbm90IE5vbmUK
IAotICAgIG0gPSBOb25lCi0KLSAgICBpZiBrd2FyZ3NbImRvd25sb2FkIl06CisgICAgaWYgbm90
IGt3YXJnc1sicmVidWlsZCJdIGFuZCBrd2FyZ3NbImRvd25sb2FkIl06CiAgICAgICAgIGRvd25s
b2FkX2Zyb21fZ2l0aHViKHBhdGgsIHRlc3RzX3Jvb3QpCiAKLSAgICBpZiBub3Qga3dhcmdzLmdl
dCgicmVidWlsZCIsIEZhbHNlKToKLSAgICAgICAgdHJ5OgotICAgICAgICAgICAgbSA9IG1hbmlm
ZXN0LmxvYWQodGVzdHNfcm9vdCwgcGF0aCkKLSAgICAgICAgZXhjZXB0IG1hbmlmZXN0Lk1hbmlm
ZXN0VmVyc2lvbk1pc21hdGNoOgotICAgICAgICAgICAgbG9nZ2VyLmluZm8oIk1hbmlmZXN0IHZl
cnNpb24gY2hhbmdlZCwgcmVidWlsZGluZyIpCi0gICAgICAgICAgICBtID0gTm9uZQotCi0gICAg
aWYgbSBpcyBOb25lOgotICAgICAgICBtID0gbWFuaWZlc3QuTWFuaWZlc3Qoa3dhcmdzWyJ1cmxf
YmFzZSJdKQotCi0gICAgY2hhbmdlZCA9IHVwZGF0ZSh0ZXN0c19yb290LAotICAgICAgICAgICAg
ICAgICAgICAgbSwKLSAgICAgICAgICAgICAgICAgICAgIHdvcmtpbmdfY29weT1rd2FyZ3NbIndv
cmsiXSkKLSAgICBpZiBjaGFuZ2VkOgotICAgICAgICBtYW5pZmVzdC53cml0ZShtLCBwYXRoKQor
ICAgIG1hbmlmZXN0LmxvYWRfYW5kX3VwZGF0ZSh0ZXN0c19yb290LAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBwYXRoLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrd2FyZ3Nb
InVybF9iYXNlIl0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVwZGF0ZT1UcnVlLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWJ1aWxkPWt3YXJnc1sicmVidWlsZCJdLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYWNoZV9yb290PWt3YXJnc1siY2FjaGVfcm9v
dCJdKQogCiAKIGRlZiBhYnNfcGF0aChwYXRoKToKKyAgICAjIHR5cGU6IChzdHIpIC0+IHN0cgog
ICAgIHJldHVybiBvcy5wYXRoLmFic3BhdGgob3MucGF0aC5leHBhbmR1c2VyKHBhdGgpKQogCiAK
IGRlZiBjcmVhdGVfcGFyc2VyKCk6CisgICAgIyB0eXBlOiAoKSAtPiBhcmdwYXJzZS5Bcmd1bWVu
dFBhcnNlcgogICAgIHBhcnNlciA9IGFyZ3BhcnNlLkFyZ3VtZW50UGFyc2VyKCkKICAgICBwYXJz
ZXIuYWRkX2FyZ3VtZW50KAogICAgICAgICAiLXAiLCAiLS1wYXRoIiwgdHlwZT1hYnNfcGF0aCwg
aGVscD0iUGF0aCB0byBtYW5pZmVzdCBmaWxlLiIpCkBAIC02NCwzNyArNjksMjcgQEAgZGVmIGNy
ZWF0ZV9wYXJzZXIoKToKICAgICBwYXJzZXIuYWRkX2FyZ3VtZW50KAogICAgICAgICAiLXIiLCAi
LS1yZWJ1aWxkIiwgYWN0aW9uPSJzdG9yZV90cnVlIiwgZGVmYXVsdD1GYWxzZSwKICAgICAgICAg
aGVscD0iRm9yY2UgYSBmdWxsIHJlYnVpbGQgb2YgdGhlIG1hbmlmZXN0LiIpCi0gICAgcGFyc2Vy
LmFkZF9hcmd1bWVudCgKLSAgICAgICAgIi0td29yayIsIGFjdGlvbj0ic3RvcmVfdHJ1ZSIsIGRl
ZmF1bHQ9RmFsc2UsCi0gICAgICAgIGhlbHA9IkJ1aWxkIGZyb20gdGhlIHdvcmtpbmcgdHJlZSBy
YXRoZXIgdGhhbiB0aGUgbGF0ZXN0IGNvbW1pdCIpCiAgICAgcGFyc2VyLmFkZF9hcmd1bWVudCgK
ICAgICAgICAgIi0tdXJsLWJhc2UiLCBhY3Rpb249InN0b3JlIiwgZGVmYXVsdD0iLyIsCiAgICAg
ICAgIGhlbHA9IkJhc2UgdXJsIHRvIHVzZSBhcyB0aGUgbW91bnQgcG9pbnQgZm9yIHRlc3RzIGlu
IHRoaXMgbWFuaWZlc3QuIikKICAgICBwYXJzZXIuYWRkX2FyZ3VtZW50KAogICAgICAgICAiLS1u
by1kb3dubG9hZCIsIGRlc3Q9ImRvd25sb2FkIiwgYWN0aW9uPSJzdG9yZV9mYWxzZSIsIGRlZmF1
bHQ9VHJ1ZSwKICAgICAgICAgaGVscD0iTmV2ZXIgYXR0ZW1wdCB0byBkb3dubG9hZCB0aGUgbWFu
aWZlc3QuIikKKyAgICBwYXJzZXIuYWRkX2FyZ3VtZW50KAorICAgICAgICAiLS1jYWNoZS1yb290
IiwgYWN0aW9uPSJzdG9yZSIsIGRlZmF1bHQ9b3MucGF0aC5qb2luKHdwdF9yb290LCAiLndwdGNh
Y2hlIiksCisgICAgICAgIGhlbHA9IlBhdGggaW4gd2hpY2ggdG8gc3RvcmUgYW55IGNhY2hlcyAo
ZGVmYXVsdCA8dGVzdHNfcm9vdD4vLndwdGNhY2hlLykiKQogICAgIHJldHVybiBwYXJzZXIKIAog
Ci1kZWYgZmluZF90b3BfcmVwbygpOgotICAgIHBhdGggPSBoZXJlCi0gICAgcnYgPSBOb25lCi0g
ICAgd2hpbGUgcGF0aCAhPSAiLyI6Ci0gICAgICAgIGlmIHZjcy5pc19naXRfcmVwbyhwYXRoKToK
LSAgICAgICAgICAgIHJ2ID0gcGF0aAotICAgICAgICBwYXRoID0gb3MucGF0aC5hYnNwYXRoKG9z
LnBhdGguam9pbihwYXRoLCBvcy5wYXJkaXIpKQotCi0gICAgcmV0dXJuIHJ2Ci0KLQotZGVmIHJ1
bigqKmt3YXJncyk6CitkZWYgcnVuKCphcmdzLCAqKmt3YXJncyk6CisgICAgIyB0eXBlOiAoKkFu
eSwgKipBbnkpIC0+IE5vbmUKICAgICBpZiBrd2FyZ3NbInBhdGgiXSBpcyBOb25lOgogICAgICAg
ICBrd2FyZ3NbInBhdGgiXSA9IG9zLnBhdGguam9pbihrd2FyZ3NbInRlc3RzX3Jvb3QiXSwgIk1B
TklGRVNULmpzb24iKQotCiAgICAgdXBkYXRlX2Zyb21fY2xpKCoqa3dhcmdzKQogCiAKIGRlZiBt
YWluKCk6CisgICAgIyB0eXBlOiAoKSAtPiBOb25lCiAgICAgb3B0cyA9IGNyZWF0ZV9wYXJzZXIo
KS5wYXJzZV9hcmdzKCkKIAogICAgIHJ1bigqKnZhcnMob3B0cykpCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL21hbmlmZXN0L3V0
aWxzLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy9tYW5pZmVzdC91dGlscy5weQppbmRleCBkOWJlNzUwZTQxNi4uMmVlZDc5ZjQyNzkgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
bWFuaWZlc3QvdXRpbHMucHkKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy9tYW5pZmVzdC91dGlscy5weQpAQCAtMSwxMCArMSwzMCBAQAotaW1w
b3J0IHBsYXRmb3JtCiBpbXBvcnQgb3MKK2ltcG9ydCBwbGF0Zm9ybQoraW1wb3J0IHN1YnByb2Nl
c3MKIAogZnJvbSBzaXggaW1wb3J0IEJ5dGVzSU8KIAorTVlQWSA9IEZhbHNlCitpZiBNWVBZOgor
ICAgICMgTVlQWSBpcyBzZXQgdG8gVHJ1ZSB3aGVuIHJ1biB1bmRlciBNeXB5LgorICAgIGZyb20g
dHlwaW5nIGltcG9ydCBUZXh0CisgICAgZnJvbSB0eXBpbmcgaW1wb3J0IENhbGxhYmxlCisgICAg
ZnJvbSB0eXBpbmcgaW1wb3J0IEFueVN0cgorICAgIGZyb20gdHlwaW5nIGltcG9ydCBBbnkKKyAg
ICBmcm9tIHR5cGluZyBpbXBvcnQgQmluYXJ5SU8KKyAgICBmcm9tIHR5cGluZyBpbXBvcnQgR2Vu
ZXJpYworICAgIGZyb20gdHlwaW5nIGltcG9ydCBUeXBlVmFyCisgICAgZnJvbSB0eXBpbmcgaW1w
b3J0IE9wdGlvbmFsCisgICAgVCA9IFR5cGVWYXIoIlQiKQorZWxzZToKKyAgICAjIGV3dywgZXd3
LCBld3d3dworICAgIEdlbmVyaWMgPSB7fQorICAgIFQgPSBvYmplY3QoKQorICAgIEdlbmVyaWNb
VF0gPSBvYmplY3QKKwogZGVmIHJlbF9wYXRoX3RvX3VybChyZWxfcGF0aCwgdXJsX2Jhc2U9Ii8i
KToKLSAgICBhc3NlcnQgbm90IG9zLnBhdGguaXNhYnMocmVsX3BhdGgpCisgICAgIyB0eXBlOiAo
Ynl0ZXMsIFRleHQpIC0+IFRleHQKKyAgICBhc3NlcnQgbm90IG9zLnBhdGguaXNhYnMocmVsX3Bh
dGgpLCByZWxfcGF0aAogICAgIGlmIHVybF9iYXNlWzBdICE9ICIvIjoKICAgICAgICAgdXJsX2Jh
c2UgPSAiLyIgKyB1cmxfYmFzZQogICAgIGlmIHVybF9iYXNlWy0xXSAhPSAiLyI6CkBAIC0xMywz
OSArMzMsNzQgQEAgZGVmIHJlbF9wYXRoX3RvX3VybChyZWxfcGF0aCwgdXJsX2Jhc2U9Ii8iKToK
IAogCiBkZWYgZnJvbV9vc19wYXRoKHBhdGgpOgorICAgICMgdHlwZTogKEFueVN0cikgLT4gQW55
U3RyCiAgICAgYXNzZXJ0IG9zLnBhdGguc2VwID09ICIvIiBvciBwbGF0Zm9ybS5zeXN0ZW0oKSA9
PSAiV2luZG93cyIKLSAgICBydiA9IHBhdGgucmVwbGFjZShvcy5wYXRoLnNlcCwgIi8iKQorICAg
IGlmICIvIiA9PSBvcy5wYXRoLnNlcDoKKyAgICAgICAgcnYgPSBwYXRoCisgICAgZWxzZToKKyAg
ICAgICAgcnYgPSBwYXRoLnJlcGxhY2Uob3MucGF0aC5zZXAsICIvIikKICAgICBpZiAiXFwiIGlu
IHJ2OgogICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJwYXRoIGNvbnRhaW5zIFxcIHdoZW4gc2Vw
YXJhdG9yIGlzICVzIiAlIG9zLnBhdGguc2VwKQogICAgIHJldHVybiBydgogCiAKIGRlZiB0b19v
c19wYXRoKHBhdGgpOgorICAgICMgdHlwZTogKEFueVN0cikgLT4gQW55U3RyCiAgICAgYXNzZXJ0
IG9zLnBhdGguc2VwID09ICIvIiBvciBwbGF0Zm9ybS5zeXN0ZW0oKSA9PSAiV2luZG93cyIKICAg
ICBpZiAiXFwiIGluIHBhdGg6CiAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoIm5vcm1hbGlzZWQg
cGF0aCBjb250YWlucyBcXCIpCisgICAgaWYgIi8iID09IG9zLnBhdGguc2VwOgorICAgICAgICBy
ZXR1cm4gcGF0aAogICAgIHJldHVybiBwYXRoLnJlcGxhY2UoIi8iLCBvcy5wYXRoLnNlcCkKIAog
Ci1jbGFzcyBDb250ZXh0TWFuYWdlckJ5dGVzSU8oQnl0ZXNJTyk6CitkZWYgZ2l0KHBhdGgpOgor
ICAgICMgdHlwZTogKGJ5dGVzKSAtPiBPcHRpb25hbFtDYWxsYWJsZVsuLi4sIGJ5dGVzXV0KKyAg
ICBkZWYgZ2l0ZnVuYyhjbWQsICphcmdzKToKKyAgICAgICAgIyB0eXBlOiAoYnl0ZXMsICpieXRl
cykgLT4gYnl0ZXMKKyAgICAgICAgZnVsbF9jbWQgPSBbImdpdCIsIGNtZF0gKyBsaXN0KGFyZ3Mp
CisgICAgICAgIHRyeToKKyAgICAgICAgICAgIHJldHVybiBzdWJwcm9jZXNzLmNoZWNrX291dHB1
dChmdWxsX2NtZCwgY3dkPXBhdGgsIHN0ZGVycj1zdWJwcm9jZXNzLlNURE9VVCkKKyAgICAgICAg
ZXhjZXB0IEV4Y2VwdGlvbiBhcyBlOgorICAgICAgICAgICAgaWYgcGxhdGZvcm0udW5hbWUoKVsw
XSA9PSAiV2luZG93cyIgYW5kIGlzaW5zdGFuY2UoZSwgV2luZG93c0Vycm9yKToKKyAgICAgICAg
ICAgICAgICBmdWxsX2NtZFswXSA9ICJnaXQuYmF0IgorICAgICAgICAgICAgICAgIHJldHVybiBz
dWJwcm9jZXNzLmNoZWNrX291dHB1dChmdWxsX2NtZCwgY3dkPXBhdGgsIHN0ZGVycj1zdWJwcm9j
ZXNzLlNURE9VVCkKKyAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgcmFpc2UKKwor
ICAgIHRyeToKKyAgICAgICAgIyB0aGlzIG5lZWRzIHRvIGJlIGEgY29tbWFuZCB0aGF0IGZhaWxz
IGlmIHdlIGFyZW4ndCBpbiBhIGdpdCByZXBvCisgICAgICAgIGdpdGZ1bmMoInJldi1wYXJzZSIs
ICItLXNob3ctdG9wbGV2ZWwiKQorICAgIGV4Y2VwdCAoc3VicHJvY2Vzcy5DYWxsZWRQcm9jZXNz
RXJyb3IsIE9TRXJyb3IpOgorICAgICAgICByZXR1cm4gTm9uZQorICAgIGVsc2U6CisgICAgICAg
IHJldHVybiBnaXRmdW5jCisKKworY2xhc3MgQ29udGV4dE1hbmFnZXJCeXRlc0lPKEJ5dGVzSU8p
OiAgIyB0eXBlOiBpZ25vcmUKICAgICBkZWYgX19lbnRlcl9fKHNlbGYpOgotICAgICAgICByZXR1
cm4gc2VsZgorICAgICAgICAjIHR5cGU6ICgpIC0+IEJpbmFyeUlPCisgICAgICAgIHJldHVybiBz
ZWxmICAjIHR5cGU6IGlnbm9yZQogCiAgICAgZGVmIF9fZXhpdF9fKHNlbGYsICphcmdzLCAqKmt3
YXJncyk6CisgICAgICAgICMgdHlwZTogKCpBbnksICoqQW55KSAtPiBib29sCiAgICAgICAgIHNl
bGYuY2xvc2UoKQorICAgICAgICByZXR1cm4gVHJ1ZQogCiAKLWNsYXNzIGNhY2hlZF9wcm9wZXJ0
eShvYmplY3QpOgorY2xhc3MgY2FjaGVkX3Byb3BlcnR5KEdlbmVyaWNbVF0pOgogICAgIGRlZiBf
X2luaXRfXyhzZWxmLCBmdW5jKToKKyAgICAgICAgIyB0eXBlOiAoQ2FsbGFibGVbW0FueV0sIFRd
KSAtPiBOb25lCiAgICAgICAgIHNlbGYuZnVuYyA9IGZ1bmMKICAgICAgICAgc2VsZi5fX2RvY19f
ID0gZ2V0YXR0cihmdW5jLCAiX19kb2NfXyIpCiAgICAgICAgIHNlbGYubmFtZSA9IGZ1bmMuX19u
YW1lX18KIAogICAgIGRlZiBfX2dldF9fKHNlbGYsIG9iaiwgY2xzPU5vbmUpOgorICAgICAgICAj
IHR5cGU6IChBbnksIE9wdGlvbmFsW3R5cGVdKSAtPiBUCiAgICAgICAgIGlmIG9iaiBpcyBOb25l
OgotICAgICAgICAgICAgcmV0dXJuIHNlbGYKKyAgICAgICAgICAgIHJldHVybiBzZWxmICAjIHR5
cGU6IGlnbm9yZQogCi0gICAgICAgIGlmIHNlbGYubmFtZSBub3QgaW4gb2JqLl9fZGljdF9fOgot
ICAgICAgICAgICAgb2JqLl9fZGljdF9fW3NlbGYubmFtZV0gPSBzZWxmLmZ1bmMob2JqKQotICAg
ICAgICAgICAgb2JqLl9fZGljdF9fLnNldGRlZmF1bHQoIl9fY2FjaGVkX3Byb3BlcnRpZXNfXyIs
IHNldCgpKS5hZGQoc2VsZi5uYW1lKQotICAgICAgICByZXR1cm4gb2JqLl9fZGljdF9fW3NlbGYu
bmFtZV0KKyAgICAgICAgIyB3ZSBjYW4gdW5jb25kaXRpb25hbGx5IGFzc2lnbiBhcyBuZXh0IHRp
bWUgdGhpcyB3b24ndCBiZSBjYWxsZWQKKyAgICAgICAgYXNzZXJ0IHNlbGYubmFtZSBub3QgaW4g
b2JqLl9fZGljdF9fCisgICAgICAgIHJ2ID0gb2JqLl9fZGljdF9fW3NlbGYubmFtZV0gPSBzZWxm
LmZ1bmMob2JqKQorICAgICAgICByZXR1cm4gcnYKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvbWFuaWZlc3QvdmNzLnB5IGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9tYW5pZmVzdC92
Y3MucHkKaW5kZXggNDJlOTg2MzcxMmYuLmQ0ZjQ3ZjZiZjBhIDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL21hbmlmZXN0L3Zjcy5w
eQorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L21hbmlmZXN0L3Zjcy5weQpAQCAtMSw5NiArMSwzMTYgQEAKK2ltcG9ydCBhYmMKK2ltcG9ydCBq
c29uCiBpbXBvcnQgb3MKLWltcG9ydCBzdWJwcm9jZXNzCitpbXBvcnQgc3RhdAorZnJvbSBjb2xs
ZWN0aW9ucyBpbXBvcnQgZGVxdWUKK2Zyb20gY29sbGVjdGlvbnMgaW1wb3J0IE11dGFibGVNYXBw
aW5nCisKK2Zyb20gc2l4IGltcG9ydCB3aXRoX21ldGFjbGFzcywgUFkyCiAKIGZyb20gLnNvdXJj
ZWZpbGUgaW1wb3J0IFNvdXJjZUZpbGUKK2Zyb20gLnV0aWxzIGltcG9ydCBnaXQKIAordHJ5Ogor
ICAgIGZyb20gLi5naXRpZ25vcmUgaW1wb3J0IGdpdGlnbm9yZQorZXhjZXB0IFZhbHVlRXJyb3I6
CisgICAgIyByZWxhdGl2ZSBpbXBvcnQgYmV5b25kIHRvcGxldmVsIHRocm93cyAqVmFsdWVFcnJv
ciohCisgICAgZnJvbSBnaXRpZ25vcmUgaW1wb3J0IGdpdGlnbm9yZSAgIyB0eXBlOiBpZ25vcmUK
IAotY2xhc3MgR2l0KG9iamVjdCk6Ci0gICAgZGVmIF9faW5pdF9fKHNlbGYsIHJlcG9fcm9vdCwg
dXJsX2Jhc2UpOgotICAgICAgICBzZWxmLnJvb3QgPSBvcy5wYXRoLmFic3BhdGgocmVwb19yb290
KQotICAgICAgICBzZWxmLmdpdCA9IEdpdC5nZXRfZnVuYyhyZXBvX3Jvb3QpCi0gICAgICAgIHNl
bGYudXJsX2Jhc2UgPSB1cmxfYmFzZQogCi0gICAgQHN0YXRpY21ldGhvZAotICAgIGRlZiBnZXRf
ZnVuYyhyZXBvX3BhdGgpOgotICAgICAgICBkZWYgZ2l0KGNtZCwgKmFyZ3MpOgotICAgICAgICAg
ICAgZnVsbF9jbWQgPSBbImdpdCIsIGNtZF0gKyBsaXN0KGFyZ3MpCi0gICAgICAgICAgICB0cnk6
Ci0gICAgICAgICAgICAgICAgcmV0dXJuIHN1YnByb2Nlc3MuY2hlY2tfb3V0cHV0KGZ1bGxfY21k
LCBjd2Q9cmVwb19wYXRoLCBzdGRlcnI9c3VicHJvY2Vzcy5TVERPVVQpCi0gICAgICAgICAgICBl
eGNlcHQgV2luZG93c0Vycm9yOgotICAgICAgICAgICAgICAgIGZ1bGxfY21kWzBdID0gImdpdC5i
YXQiCi0gICAgICAgICAgICAgICAgcmV0dXJuIHN1YnByb2Nlc3MuY2hlY2tfb3V0cHV0KGZ1bGxf
Y21kLCBjd2Q9cmVwb19wYXRoLCBzdGRlcnI9c3VicHJvY2Vzcy5TVERPVVQpCi0gICAgICAgIHJl
dHVybiBnaXQKLQotICAgIEBjbGFzc21ldGhvZAotICAgIGRlZiBmb3JfcGF0aChjbHMsIHBhdGgs
IHVybF9iYXNlKToKLSAgICAgICAgZ2l0ID0gR2l0LmdldF9mdW5jKHBhdGgpCitNWVBZID0gRmFs
c2UKK2lmIE1ZUFk6CisgICAgIyBNWVBZIGlzIHNldCB0byBUcnVlIHdoZW4gcnVuIHVuZGVyIE15
cHkuCisgICAgZnJvbSB0eXBpbmcgaW1wb3J0IERpY3QsIE9wdGlvbmFsLCBMaXN0LCBTZXQsIFRl
eHQsIEl0ZXJhYmxlLCBBbnksIFR1cGxlLCBVbmlvbiwgSXRlcmF0b3IKKyAgICBmcm9tIC5tYW5p
ZmVzdCBpbXBvcnQgTWFuaWZlc3QgICMgY3ljbGljIGltcG9ydCB1bmRlciBNWVBZIGd1YXJkCisg
ICAgaWYgUFkyOgorICAgICAgICBzdGF0X3Jlc3VsdCA9IEFueQorICAgIGVsc2U6CisgICAgICAg
IHN0YXRfcmVzdWx0ID0gb3Muc3RhdF9yZXN1bHQKKworCitkZWYgZ2V0X3RyZWUodGVzdHNfcm9v
dCwgbWFuaWZlc3QsIG1hbmlmZXN0X3BhdGgsIGNhY2hlX3Jvb3QsCisgICAgICAgICAgICAgd29y
a2luZ19jb3B5PVRydWUsIHJlYnVpbGQ9RmFsc2UpOgorICAgICMgdHlwZTogKGJ5dGVzLCBNYW5p
ZmVzdCwgT3B0aW9uYWxbYnl0ZXNdLCBPcHRpb25hbFtieXRlc10sIGJvb2wsIGJvb2wpIC0+IEZp
bGVTeXN0ZW0KKyAgICB0cmVlID0gTm9uZQorICAgIGlmIGNhY2hlX3Jvb3QgaXMgTm9uZToKKyAg
ICAgICAgY2FjaGVfcm9vdCA9IG9zLnBhdGguam9pbih0ZXN0c19yb290LCBiIi53cHRjYWNoZSIp
CisgICAgaWYgbm90IG9zLnBhdGguZXhpc3RzKGNhY2hlX3Jvb3QpOgogICAgICAgICB0cnk6Ci0g
ICAgICAgICAgICByZXR1cm4gY2xzKGdpdCgicmV2LXBhcnNlIiwgIi0tc2hvdy10b3BsZXZlbCIp
LnJzdHJpcCgpLCB1cmxfYmFzZSkKLSAgICAgICAgZXhjZXB0IHN1YnByb2Nlc3MuQ2FsbGVkUHJv
Y2Vzc0Vycm9yOgotICAgICAgICAgICAgcmV0dXJuIE5vbmUKKyAgICAgICAgICAgIG9zLm1ha2Vk
aXJzKGNhY2hlX3Jvb3QpCisgICAgICAgIGV4Y2VwdCBJT0Vycm9yOgorICAgICAgICAgICAgY2Fj
aGVfcm9vdCA9IE5vbmUKKworICAgIGlmIG5vdCB3b3JraW5nX2NvcHk6CisgICAgICAgIHJhaXNl
IFZhbHVlRXJyb3IoIndvcmtpbmdfY29weT1GYWxzZSB1bnN1cHBvcnRlZCIpCisKKyAgICBpZiB0
cmVlIGlzIE5vbmU6CisgICAgICAgIHRyZWUgPSBGaWxlU3lzdGVtKHRlc3RzX3Jvb3QsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgIG1hbmlmZXN0LnVybF9iYXNlLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICBtYW5pZmVzdF9wYXRoPW1hbmlmZXN0X3BhdGgsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgIGNhY2hlX3BhdGg9Y2FjaGVfcm9vdCwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgcmVidWlsZD1yZWJ1aWxkKQorICAgIHJldHVybiB0cmVlCisKKworY2xhc3MgR2l0SGFzaGVy
KG9iamVjdCk6CisgICAgZGVmIF9faW5pdF9fKHNlbGYsIHBhdGgpOgorICAgICAgICAjIHR5cGU6
IChieXRlcykgLT4gTm9uZQorICAgICAgICBzZWxmLmdpdCA9IGdpdChwYXRoKQogCiAgICAgZGVm
IF9sb2NhbF9jaGFuZ2VzKHNlbGYpOgotICAgICAgICBjaGFuZ2VzID0ge30KLSAgICAgICAgY21k
ID0gWyJzdGF0dXMiLCAiLXoiLCAiLS1pZ25vcmUtc3VibW9kdWxlcz1hbGwiXQorICAgICAgICAj
IHR5cGU6ICgpIC0+IFNldFtieXRlc10KKyAgICAgICAgIiIiZ2V0IGEgc2V0IG9mIGZpbGVzIHdo
aWNoIGhhdmUgY2hhbmdlZCBiZXR3ZWVuIEhFQUQgYW5kIHdvcmtpbmcgY29weSIiIgorICAgICAg
ICBhc3NlcnQgc2VsZi5naXQgaXMgbm90IE5vbmUKKyAgICAgICAgIyBub3RlIHRoYXQgZ2l0IHJ1
bnMgdGhlIGNvbW1hbmQgd2l0aCB0ZXN0c19yb290IGFzIHRoZSBjd2QsIHdoaWNoIG1heQorICAg
ICAgICAjIG5vdCBiZSB0aGUgcm9vdCBvZiB0aGUgZ2l0IHJlcG8gKGUuZy4sIHdpdGhpbiBhIGJy
b3dzZXIgcmVwbykKKyAgICAgICAgY21kID0gW2IiZGlmZi1pbmRleCIsIGIiLS1yZWxhdGl2ZSIs
IGIiLS1uby1yZW5hbWVzIiwgYiItLW5hbWUtb25seSIsIGIiLXoiLCBiIkhFQUQiXQogICAgICAg
ICBkYXRhID0gc2VsZi5naXQoKmNtZCkKKyAgICAgICAgcmV0dXJuIHNldChkYXRhLnNwbGl0KGIi
XDAiKSkKIAotICAgICAgICBpZiBkYXRhID09ICIiOgotICAgICAgICAgICAgcmV0dXJuIGNoYW5n
ZXMKKyAgICBkZWYgaGFzaF9jYWNoZShzZWxmKToKKyAgICAgICAgIyB0eXBlOiAoKSAtPiBEaWN0
W2J5dGVzLCBPcHRpb25hbFtieXRlc11dCisgICAgICAgICIiIgorICAgICAgICBBIGRpY3Qgb2Yg
cmVsX3BhdGggLT4gY3VycmVudCBnaXQgb2JqZWN0IGlkIGlmIHRoZSB3b3JraW5nIHRyZWUgbWF0
Y2hlcyBIRUFEIGVsc2UgTm9uZQorICAgICAgICAiIiIKKyAgICAgICAgaGFzaF9jYWNoZSA9IHt9
ICAjIHR5cGU6IERpY3RbYnl0ZXMsIE9wdGlvbmFsW2J5dGVzXV0KIAotICAgICAgICByZW5hbWVf
ZGF0YSA9IE5vbmUKLSAgICAgICAgZm9yIGVudHJ5IGluIGRhdGEuc3BsaXQoIlwwIilbOi0xXToK
LSAgICAgICAgICAgIGlmIHJlbmFtZV9kYXRhIGlzIG5vdCBOb25lOgotICAgICAgICAgICAgICAg
IHN0YXR1cywgcmVsX3BhdGggPSBlbnRyeS5zcGxpdCgiICIpCi0gICAgICAgICAgICAgICAgaWYg
c3RhdHVzWzBdID09ICJSIjoKLSAgICAgICAgICAgICAgICAgICAgcmVuYW1lX2RhdGEgPSAocmVs
X3BhdGgsIHN0YXR1cykKLSAgICAgICAgICAgICAgICBlbHNlOgotICAgICAgICAgICAgICAgICAg
ICBjaGFuZ2VzW3JlbF9wYXRoXSA9IChzdGF0dXMsIE5vbmUpCi0gICAgICAgICAgICBlbHNlOgot
ICAgICAgICAgICAgICAgIHJlbF9wYXRoID0gZW50cnkKLSAgICAgICAgICAgICAgICBjaGFuZ2Vz
W3JlbF9wYXRoXSA9IHJlbmFtZV9kYXRhCi0gICAgICAgICAgICAgICAgcmVuYW1lX2RhdGEgPSBO
b25lCi0gICAgICAgIHJldHVybiBjaGFuZ2VzCisgICAgICAgIGlmIHNlbGYuZ2l0IGlzIE5vbmU6
CisgICAgICAgICAgICByZXR1cm4gaGFzaF9jYWNoZQogCi0gICAgZGVmIF9zaG93X2ZpbGUoc2Vs
ZiwgcGF0aCk6Ci0gICAgICAgIHBhdGggPSBvcy5wYXRoLnJlbHBhdGgob3MucGF0aC5hYnNwYXRo
KHBhdGgpLCBzZWxmLnJvb3QpCi0gICAgICAgIHJldHVybiBzZWxmLmdpdCgic2hvdyIsICJIRUFE
OiVzIiAlIHBhdGgpCi0KLSAgICBkZWYgX19pdGVyX18oc2VsZik6CisgICAgICAgICMgbm90ZSB0
aGF0IGdpdCBydW5zIHRoZSBjb21tYW5kIHdpdGggdGVzdHNfcm9vdCBhcyB0aGUgY3dkLCB3aGlj
aCBtYXkKKyAgICAgICAgIyBub3QgYmUgdGhlIHJvb3Qgb2YgdGhlIGdpdCByZXBvIChlLmcuLCB3
aXRoaW4gYSBicm93c2VyIHJlcG8pCiAgICAgICAgIGNtZCA9IFsibHMtdHJlZSIsICItciIsICIt
eiIsICJIRUFEIl0KICAgICAgICAgbG9jYWxfY2hhbmdlcyA9IHNlbGYuX2xvY2FsX2NoYW5nZXMo
KQotICAgICAgICBmb3IgcmVzdWx0IGluIHNlbGYuZ2l0KCpjbWQpLnNwbGl0KCJcMCIpWzotMV06
Ci0gICAgICAgICAgICByZWxfcGF0aCA9IHJlc3VsdC5zcGxpdCgiXHQiKVstMV0KLSAgICAgICAg
ICAgIGhhc2ggPSByZXN1bHQuc3BsaXQoKVsyXQotICAgICAgICAgICAgaWYgbm90IG9zLnBhdGgu
aXNkaXIob3MucGF0aC5qb2luKHNlbGYucm9vdCwgcmVsX3BhdGgpKToKLSAgICAgICAgICAgICAg
ICBpZiByZWxfcGF0aCBpbiBsb2NhbF9jaGFuZ2VzOgotICAgICAgICAgICAgICAgICAgICBjb250
ZW50cyA9IHNlbGYuX3Nob3dfZmlsZShyZWxfcGF0aCkKLSAgICAgICAgICAgICAgICBlbHNlOgot
ICAgICAgICAgICAgICAgICAgICBjb250ZW50cyA9IE5vbmUKLSAgICAgICAgICAgICAgICB5aWVs
ZCBTb3VyY2VGaWxlKHNlbGYucm9vdCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHJlbF9wYXRoLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi51cmxfYmFz
ZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhc2gsCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBjb250ZW50cz1jb250ZW50cykKKyAgICAgICAgZm9yIHJlc3Vs
dCBpbiBzZWxmLmdpdCgqY21kKS5zcGxpdChiIlwwIilbOi0xXTogICMgdHlwZTogYnl0ZXMKKyAg
ICAgICAgICAgIGRhdGEsIHJlbF9wYXRoID0gcmVzdWx0LnJzcGxpdChiIlx0IiwgMSkKKyAgICAg
ICAgICAgIGhhc2hfY2FjaGVbcmVsX3BhdGhdID0gTm9uZSBpZiByZWxfcGF0aCBpbiBsb2NhbF9j
aGFuZ2VzIGVsc2UgZGF0YS5zcGxpdChiIiAiLCAzKVsyXQorCisgICAgICAgIHJldHVybiBoYXNo
X2NhY2hlCisKIAogCiBjbGFzcyBGaWxlU3lzdGVtKG9iamVjdCk6Ci0gICAgZGVmIF9faW5pdF9f
KHNlbGYsIHJvb3QsIHVybF9iYXNlKToKLSAgICAgICAgc2VsZi5yb290ID0gcm9vdAorICAgIGRl
ZiBfX2luaXRfXyhzZWxmLCByb290LCB1cmxfYmFzZSwgY2FjaGVfcGF0aCwgbWFuaWZlc3RfcGF0
aD1Ob25lLCByZWJ1aWxkPUZhbHNlKToKKyAgICAgICAgIyB0eXBlOiAoYnl0ZXMsIFRleHQsIE9w
dGlvbmFsW2J5dGVzXSwgT3B0aW9uYWxbYnl0ZXNdLCBib29sKSAtPiBOb25lCisgICAgICAgIHNl
bGYucm9vdCA9IG9zLnBhdGguYWJzcGF0aChyb290KQogICAgICAgICBzZWxmLnVybF9iYXNlID0g
dXJsX2Jhc2UKLSAgICAgICAgZnJvbSBnaXRpZ25vcmUgaW1wb3J0IGdpdGlnbm9yZQotICAgICAg
ICBzZWxmLnBhdGhfZmlsdGVyID0gZ2l0aWdub3JlLlBhdGhGaWx0ZXIoc2VsZi5yb290LCBleHRy
YXM9WyIuZ2l0LyJdKQorICAgICAgICBzZWxmLmlnbm9yZV9jYWNoZSA9IE5vbmUKKyAgICAgICAg
c2VsZi5tdGltZV9jYWNoZSA9IE5vbmUKKyAgICAgICAgaWYgY2FjaGVfcGF0aCBpcyBub3QgTm9u
ZToKKyAgICAgICAgICAgIGlmIG1hbmlmZXN0X3BhdGggaXMgbm90IE5vbmU6CisgICAgICAgICAg
ICAgICAgc2VsZi5tdGltZV9jYWNoZSA9IE10aW1lQ2FjaGUoY2FjaGVfcGF0aCwgcm9vdCwgbWFu
aWZlc3RfcGF0aCwgcmVidWlsZCkKKyAgICAgICAgICAgIGlmIGdpdGlnbm9yZS5oYXNfaWdub3Jl
KHJvb3QpOgorICAgICAgICAgICAgICAgIHNlbGYuaWdub3JlX2NhY2hlID0gR2l0SWdub3JlQ2Fj
aGUoY2FjaGVfcGF0aCwgcm9vdCwgcmVidWlsZCkKKyAgICAgICAgc2VsZi5wYXRoX2ZpbHRlciA9
IGdpdGlnbm9yZS5QYXRoRmlsdGVyKHNlbGYucm9vdCwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGV4dHJhcz1bIi5naXQvIl0sCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYWNoZT1zZWxmLmlnbm9yZV9jYWNo
ZSkKKyAgICAgICAgZ2l0ID0gR2l0SGFzaGVyKHJvb3QpCisgICAgICAgIGlmIGdpdCBpcyBub3Qg
Tm9uZToKKyAgICAgICAgICAgIHNlbGYuaGFzaF9jYWNoZSA9IGdpdC5oYXNoX2NhY2hlKCkKKyAg
ICAgICAgZWxzZToKKyAgICAgICAgICAgIHNlbGYuaGFzaF9jYWNoZSA9IHt9CiAKICAgICBkZWYg
X19pdGVyX18oc2VsZik6Ci0gICAgICAgIHBhdGhzID0gc2VsZi5nZXRfcGF0aHMoKQotICAgICAg
ICBmb3IgcGF0aCBpbiBwYXRoczoKLSAgICAgICAgICAgIHlpZWxkIFNvdXJjZUZpbGUoc2VsZi5y
b290LCBwYXRoLCBzZWxmLnVybF9iYXNlKQotCi0gICAgZGVmIGdldF9wYXRocyhzZWxmKToKLSAg
ICAgICAgZm9yIGRpcnBhdGgsIGRpcm5hbWVzLCBmaWxlbmFtZXMgaW4gb3Mud2FsayhzZWxmLnJv
b3QpOgotICAgICAgICAgICAgZm9yIGZpbGVuYW1lIGluIGZpbGVuYW1lczoKLSAgICAgICAgICAg
ICAgICBwYXRoID0gb3MucGF0aC5yZWxwYXRoKG9zLnBhdGguam9pbihkaXJwYXRoLCBmaWxlbmFt
ZSksIHNlbGYucm9vdCkKLSAgICAgICAgICAgICAgICBpZiBzZWxmLnBhdGhfZmlsdGVyKHBhdGgp
OgotICAgICAgICAgICAgICAgICAgICB5aWVsZCBwYXRoCi0KLSAgICAgICAgICAgIGRpcm5hbWVz
WzpdID0gW2l0ZW0gZm9yIGl0ZW0gaW4gZGlybmFtZXMgaWYgc2VsZi5wYXRoX2ZpbHRlcigKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgIG9zLnBhdGgucmVscGF0aChvcy5wYXRoLmpvaW4oZGly
cGF0aCwgaXRlbSksIHNlbGYucm9vdCkgKyAiLyIpXQorICAgICAgICAjIHR5cGU6ICgpIC0+IEl0
ZXJhdG9yW1R1cGxlW1VuaW9uW2J5dGVzLCBTb3VyY2VGaWxlXSwgYm9vbF1dCisgICAgICAgIG10
aW1lX2NhY2hlID0gc2VsZi5tdGltZV9jYWNoZQorICAgICAgICBmb3IgZGlycGF0aCwgZGlybmFt
ZXMsIGZpbGVuYW1lcyBpbiBzZWxmLnBhdGhfZmlsdGVyKHdhbGsoc2VsZi5yb290KSk6CisgICAg
ICAgICAgICBmb3IgZmlsZW5hbWUsIHBhdGhfc3RhdCBpbiBmaWxlbmFtZXM6CisgICAgICAgICAg
ICAgICAgcGF0aCA9IG9zLnBhdGguam9pbihkaXJwYXRoLCBmaWxlbmFtZSkKKyAgICAgICAgICAg
ICAgICBpZiBtdGltZV9jYWNoZSBpcyBOb25lIG9yIG10aW1lX2NhY2hlLnVwZGF0ZWQocGF0aCwg
cGF0aF9zdGF0KToKKyAgICAgICAgICAgICAgICAgICAgaGFzaCA9IHNlbGYuaGFzaF9jYWNoZS5n
ZXQocGF0aCwgTm9uZSkKKyAgICAgICAgICAgICAgICAgICAgeWllbGQgU291cmNlRmlsZShzZWxm
LnJvb3QsIHBhdGgsIHNlbGYudXJsX2Jhc2UsIGhhc2gpLCBUcnVlCisgICAgICAgICAgICAgICAg
ZWxzZToKKyAgICAgICAgICAgICAgICAgICAgeWllbGQgcGF0aCwgRmFsc2UKKworICAgIGRlZiBk
dW1wX2NhY2hlcyhzZWxmKToKKyAgICAgICAgIyB0eXBlOiAoKSAtPiBOb25lCisgICAgICAgIGZv
ciBjYWNoZSBpbiBbc2VsZi5tdGltZV9jYWNoZSwgc2VsZi5pZ25vcmVfY2FjaGVdOgorICAgICAg
ICAgICAgaWYgY2FjaGUgaXMgbm90IE5vbmU6CisgICAgICAgICAgICAgICAgY2FjaGUuZHVtcCgp
CisKKworY2xhc3MgQ2FjaGVGaWxlKHdpdGhfbWV0YWNsYXNzKGFiYy5BQkNNZXRhKSk6CisgICAg
ZGVmIF9faW5pdF9fKHNlbGYsIGNhY2hlX3Jvb3QsIHRlc3RzX3Jvb3QsIHJlYnVpbGQ9RmFsc2Up
OgorICAgICAgICAjIHR5cGU6IChieXRlcywgYnl0ZXMsIGJvb2wpIC0+IE5vbmUKKyAgICAgICAg
c2VsZi50ZXN0c19yb290ID0gdGVzdHNfcm9vdAorICAgICAgICBpZiBub3Qgb3MucGF0aC5leGlz
dHMoY2FjaGVfcm9vdCk6CisgICAgICAgICAgICBvcy5tYWtlZGlycyhjYWNoZV9yb290KQorICAg
ICAgICBzZWxmLnBhdGggPSBvcy5wYXRoLmpvaW4oY2FjaGVfcm9vdCwgc2VsZi5maWxlX25hbWUp
CisgICAgICAgIHNlbGYubW9kaWZpZWQgPSBGYWxzZQorICAgICAgICBzZWxmLmRhdGEgPSBzZWxm
LmxvYWQocmVidWlsZCkKKworICAgIEBhYmMuYWJzdHJhY3Rwcm9wZXJ0eQorICAgIGRlZiBmaWxl
X25hbWUoc2VsZik6CisgICAgICAgICMgdHlwZTogKCkgLT4gYnl0ZXMKKyAgICAgICAgcGFzcwor
CisgICAgZGVmIGR1bXAoc2VsZik6CisgICAgICAgICMgdHlwZTogKCkgLT4gTm9uZQorICAgICAg
ICBpZiBub3Qgc2VsZi5tb2RpZmllZDoKKyAgICAgICAgICAgIHJldHVybgorICAgICAgICB3aXRo
IG9wZW4oc2VsZi5wYXRoLCAndycpIGFzIGY6CisgICAgICAgICAgICBqc29uLmR1bXAoc2VsZi5k
YXRhLCBmLCBpbmRlbnQ9MSkKKworICAgIGRlZiBsb2FkKHNlbGYsIHJlYnVpbGQ9RmFsc2UpOgor
ICAgICAgICAjIHR5cGU6IChib29sKSAtPiBEaWN0W0FueSwgQW55XQorICAgICAgICBkYXRhID0g
e30gICMgdHlwZTogRGljdFtBbnksIEFueV0KKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgaWYg
bm90IHJlYnVpbGQ6CisgICAgICAgICAgICAgICAgd2l0aCBvcGVuKHNlbGYucGF0aCwgJ3InKSBh
cyBmOgorICAgICAgICAgICAgICAgICAgICB0cnk6CisgICAgICAgICAgICAgICAgICAgICAgICBk
YXRhID0ganNvbi5sb2FkKGYpCisgICAgICAgICAgICAgICAgICAgIGV4Y2VwdCBWYWx1ZUVycm9y
OgorICAgICAgICAgICAgICAgICAgICAgICAgcGFzcworICAgICAgICAgICAgICAgIGRhdGEgPSBz
ZWxmLmNoZWNrX3ZhbGlkKGRhdGEpCisgICAgICAgIGV4Y2VwdCBJT0Vycm9yOgorICAgICAgICAg
ICAgcGFzcworICAgICAgICByZXR1cm4gZGF0YQorCisgICAgZGVmIGNoZWNrX3ZhbGlkKHNlbGYs
IGRhdGEpOgorICAgICAgICAjIHR5cGU6IChEaWN0W0FueSwgQW55XSkgLT4gRGljdFtBbnksIEFu
eV0KKyAgICAgICAgIiIiQ2hlY2sgaWYgdGhlIGNhY2hlZCBkYXRhIGlzIHZhbGlkIGFuZCByZXR1
cm4gYW4gdXBkYXRlZCBjb3B5IG9mIHRoZQorICAgICAgICBjYWNoZSBjb250YWluaW5nIG9ubHkg
ZGF0YSB0aGF0IGNhbiBiZSB1c2VkLiIiIgorICAgICAgICByZXR1cm4gZGF0YQorCisKK2NsYXNz
IE10aW1lQ2FjaGUoQ2FjaGVGaWxlKToKKyAgICBmaWxlX25hbWUgPSBiIm10aW1lLmpzb24iCisK
KyAgICBkZWYgX19pbml0X18oc2VsZiwgY2FjaGVfcm9vdCwgdGVzdHNfcm9vdCwgbWFuaWZlc3Rf
cGF0aCwgcmVidWlsZD1GYWxzZSk6CisgICAgICAgICMgdHlwZTogKGJ5dGVzLCBieXRlcywgYnl0
ZXMsIGJvb2wpIC0+IE5vbmUKKyAgICAgICAgc2VsZi5tYW5pZmVzdF9wYXRoID0gbWFuaWZlc3Rf
cGF0aAorICAgICAgICBzdXBlcihNdGltZUNhY2hlLCBzZWxmKS5fX2luaXRfXyhjYWNoZV9yb290
LCB0ZXN0c19yb290LCByZWJ1aWxkKQorCisgICAgZGVmIHVwZGF0ZWQoc2VsZiwgcmVsX3BhdGgs
IHN0YXQpOgorICAgICAgICAjIHR5cGU6IChieXRlcywgc3RhdF9yZXN1bHQpIC0+IGJvb2wKKyAg
ICAgICAgIiIiUmV0dXJuIGEgYm9vbGVhbiBpbmRpY2F0aW5nIHdoZXRoZXIgdGhlIGZpbGUgY2hh
bmdlZCBzaW5jZSB0aGUgY2FjaGUgd2FzIGxhc3QgdXBkYXRlZC4KKworICAgICAgICBUaGlzIGlt
cGxpY2l0bHkgdXBkYXRlcyB0aGUgY2FjaGUgd2l0aCB0aGUgbmV3IG10aW1lIGRhdGEuIiIiCisg
ICAgICAgIG10aW1lID0gc3RhdC5zdF9tdGltZQorICAgICAgICBpZiBtdGltZSAhPSBzZWxmLmRh
dGEuZ2V0KHJlbF9wYXRoKToKKyAgICAgICAgICAgIHNlbGYubW9kaWZpZWQgPSBUcnVlCisgICAg
ICAgICAgICBzZWxmLmRhdGFbcmVsX3BhdGhdID0gbXRpbWUKKyAgICAgICAgICAgIHJldHVybiBU
cnVlCisgICAgICAgIHJldHVybiBGYWxzZQorCisgICAgZGVmIGNoZWNrX3ZhbGlkKHNlbGYsIGRh
dGEpOgorICAgICAgICAjIHR5cGU6IChEaWN0W0FueSwgQW55XSkgLT4gRGljdFtBbnksIEFueV0K
KyAgICAgICAgaWYgZGF0YS5nZXQoIi90ZXN0c19yb290IikgIT0gc2VsZi50ZXN0c19yb290Ogor
ICAgICAgICAgICAgc2VsZi5tb2RpZmllZCA9IFRydWUKKyAgICAgICAgZWxzZToKKyAgICAgICAg
ICAgIGlmIHNlbGYubWFuaWZlc3RfcGF0aCBpcyBub3QgTm9uZSBhbmQgb3MucGF0aC5leGlzdHMo
c2VsZi5tYW5pZmVzdF9wYXRoKToKKyAgICAgICAgICAgICAgICBtdGltZSA9IG9zLnBhdGguZ2V0
bXRpbWUoc2VsZi5tYW5pZmVzdF9wYXRoKQorICAgICAgICAgICAgICAgIGlmIGRhdGEuZ2V0KCIv
bWFuaWZlc3RfcGF0aCIpICE9IFtzZWxmLm1hbmlmZXN0X3BhdGgsIG10aW1lXToKKyAgICAgICAg
ICAgICAgICAgICAgc2VsZi5tb2RpZmllZCA9IFRydWUKKyAgICAgICAgICAgIGVsc2U6CisgICAg
ICAgICAgICAgICAgc2VsZi5tb2RpZmllZCA9IFRydWUKKyAgICAgICAgaWYgc2VsZi5tb2RpZmll
ZDoKKyAgICAgICAgICAgIGRhdGEgPSB7fQorICAgICAgICAgICAgZGF0YVsiL3Rlc3RzX3Jvb3Qi
XSA9IHNlbGYudGVzdHNfcm9vdAorICAgICAgICByZXR1cm4gZGF0YQorCisgICAgZGVmIGR1bXAo
c2VsZik6CisgICAgICAgICMgdHlwZTogKCkgLT4gTm9uZQorICAgICAgICBpZiBzZWxmLm1hbmlm
ZXN0X3BhdGggaXMgTm9uZToKKyAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IKKyAgICAgICAg
aWYgbm90IG9zLnBhdGguZXhpc3RzKHNlbGYubWFuaWZlc3RfcGF0aCk6CisgICAgICAgICAgICBy
ZXR1cm4KKyAgICAgICAgbXRpbWUgPSBvcy5wYXRoLmdldG10aW1lKHNlbGYubWFuaWZlc3RfcGF0
aCkKKyAgICAgICAgc2VsZi5kYXRhWyIvbWFuaWZlc3RfcGF0aCJdID0gW3NlbGYubWFuaWZlc3Rf
cGF0aCwgbXRpbWVdCisgICAgICAgIHNlbGYuZGF0YVsiL3Rlc3RzX3Jvb3QiXSA9IHNlbGYudGVz
dHNfcm9vdAorICAgICAgICBzdXBlcihNdGltZUNhY2hlLCBzZWxmKS5kdW1wKCkKKworCitjbGFz
cyBHaXRJZ25vcmVDYWNoZShDYWNoZUZpbGUsIE11dGFibGVNYXBwaW5nKTogICMgdHlwZTogaWdu
b3JlCisgICAgZmlsZV9uYW1lID0gYiJnaXRpZ25vcmUuanNvbiIKKworICAgIGRlZiBjaGVja192
YWxpZChzZWxmLCBkYXRhKToKKyAgICAgICAgIyB0eXBlOiAoRGljdFtBbnksIEFueV0pIC0+IERp
Y3RbQW55LCBBbnldCisgICAgICAgIGlnbm9yZV9wYXRoID0gb3MucGF0aC5qb2luKHNlbGYudGVz
dHNfcm9vdCwgYiIuZ2l0aWdub3JlIikKKyAgICAgICAgbXRpbWUgPSBvcy5wYXRoLmdldG10aW1l
KGlnbm9yZV9wYXRoKQorICAgICAgICBpZiBkYXRhLmdldChiIi9naXRpZ25vcmVfZmlsZSIpICE9
IFtpZ25vcmVfcGF0aCwgbXRpbWVdOgorICAgICAgICAgICAgc2VsZi5tb2RpZmllZCA9IFRydWUK
KyAgICAgICAgICAgIGRhdGEgPSB7fQorICAgICAgICAgICAgZGF0YVtiIi9naXRpZ25vcmVfZmls
ZSJdID0gW2lnbm9yZV9wYXRoLCBtdGltZV0KKyAgICAgICAgcmV0dXJuIGRhdGEKKworICAgIGRl
ZiBfX2NvbnRhaW5zX18oc2VsZiwga2V5KToKKyAgICAgICAgIyB0eXBlOiAoQW55KSAtPiBib29s
CisgICAgICAgIHJldHVybiBrZXkgaW4gc2VsZi5kYXRhCisKKyAgICBkZWYgX19nZXRpdGVtX18o
c2VsZiwga2V5KToKKyAgICAgICAgIyB0eXBlOiAoYnl0ZXMpIC0+IGJvb2wKKyAgICAgICAgdiA9
IHNlbGYuZGF0YVtrZXldCisgICAgICAgIGFzc2VydCBpc2luc3RhbmNlKHYsIGJvb2wpCisgICAg
ICAgIHJldHVybiB2CisKKyAgICBkZWYgX19zZXRpdGVtX18oc2VsZiwga2V5LCB2YWx1ZSk6Cisg
ICAgICAgICMgdHlwZTogKGJ5dGVzLCBib29sKSAtPiBOb25lCisgICAgICAgIGlmIHNlbGYuZGF0
YS5nZXQoa2V5KSAhPSB2YWx1ZToKKyAgICAgICAgICAgIHNlbGYubW9kaWZpZWQgPSBUcnVlCisg
ICAgICAgICAgICBzZWxmLmRhdGFba2V5XSA9IHZhbHVlCisKKyAgICBkZWYgX19kZWxpdGVtX18o
c2VsZiwga2V5KToKKyAgICAgICAgIyB0eXBlOiAoYnl0ZXMpIC0+IE5vbmUKKyAgICAgICAgZGVs
IHNlbGYuZGF0YVtrZXldCisKKyAgICBkZWYgX19pdGVyX18oc2VsZik6CisgICAgICAgICMgdHlw
ZTogKCkgLT4gSXRlcmF0b3JbYnl0ZXNdCisgICAgICAgIHJldHVybiBpdGVyKHNlbGYuZGF0YSkK
KworICAgIGRlZiBfX2xlbl9fKHNlbGYpOgorICAgICAgICAjIHR5cGU6ICgpIC0+IGludAorICAg
ICAgICByZXR1cm4gbGVuKHNlbGYuZGF0YSkKKworCitkZWYgd2Fsayhyb290KToKKyAgICAjIHR5
cGU6IChieXRlcykgLT4gSXRlcmFibGVbVHVwbGVbYnl0ZXMsIExpc3RbVHVwbGVbYnl0ZXMsIHN0
YXRfcmVzdWx0XV0sIExpc3RbVHVwbGVbYnl0ZXMsIHN0YXRfcmVzdWx0XV1dXQorICAgICIiIlJl
LWltcGxlbWVudGF0aW9uIG9mIG9zLndhbGsuIFJldHVybnMgYW4gaXRlcmF0b3Igb3ZlcgorICAg
IChkaXJwYXRoLCBkaXJuYW1lcywgZmlsZW5hbWVzKSwgd2l0aCBzb21lIHNlbWFudGljIGRpZmZl
cmVuY2VzCisgICAgdG8gb3Mud2Fsay4KKworICAgIFRoaXMgaGFzIGEgc2ltaWxhciBpbnRlcmZh
Y2UgdG8gb3Mud2Fsaywgd2l0aCB0aGUgaW1wb3J0YW50IGRpZmZlcmVuY2UKKyAgICB0aGF0IGlu
c3RlYWQgb2YgbGlzdHMgb2YgZmlsZW5hbWVzIGFuZCBkaXJlY3RvcnkgbmFtZXMsIGl0IHlpZWxk
cworICAgIGxpc3RzIG9mIHR1cGxlcyBvZiB0aGUgZm9ybSBbKG5hbWUsIHN0YXQpXSB3aGVyZSBz
dGF0IGlzIHRoZSByZXN1bHQgb2YKKyAgICBvcy5zdGF0IGZvciB0aGUgZmlsZS4gVGhhdCBhbGxv
d3MgcmV1c2luZyB0aGUgc2FtZSBzdGF0IGRhdGEgaW4gdGhlCisgICAgY2FsbGVyLiBJdCBhbHNv
IGFsd2F5cyByZXR1cm5zIHRoZSBkaXJwYXRoIHJlbGF0aXZlIHRvIHRoZSByb290LCB3aXRoCisg
ICAgdGhlIHJvb3QgaXNlbGYgYmVpbmcgcmV0dXJuZWQgYXMgdGhlIGVtcHR5IHN0cmluZy4KKwor
ICAgIFVubGlrZSBvcy53YWxrIHRoZSBpbXBsZW1lbnRhdGlvbiBpcyBub3QgcmVjdXJzaXZlLiIi
IgorCisgICAgZ2V0X3N0YXQgPSBvcy5zdGF0CisgICAgaXNfZGlyID0gc3RhdC5TX0lTRElSCisg
ICAgaXNfbGluayA9IHN0YXQuU19JU0xOSworICAgIGpvaW4gPSBvcy5wYXRoLmpvaW4KKyAgICBs
aXN0ZGlyID0gb3MubGlzdGRpcgorICAgIHJlbHBhdGggPSBvcy5wYXRoLnJlbHBhdGgKKworICAg
IHJvb3QgPSBvcy5wYXRoLmFic3BhdGgocm9vdCkKKyAgICBzdGFjayA9IGRlcXVlKFsocm9vdCwg
YiIiKV0pCisKKyAgICB3aGlsZSBzdGFjazoKKyAgICAgICAgZGlyX3BhdGgsIHJlbF9wYXRoID0g
c3RhY2sucG9wbGVmdCgpCisgICAgICAgIHRyeToKKyAgICAgICAgICAgICMgTm90ZSB0aGF0IGxp
c3RkaXIgYW5kIGVycm9yIGFyZSBnbG9iYWxzIGluIHRoaXMgbW9kdWxlIGR1ZQorICAgICAgICAg
ICAgIyB0byBlYXJsaWVyIGltcG9ydC0qLgorICAgICAgICAgICAgbmFtZXMgPSBsaXN0ZGlyKGRp
cl9wYXRoKQorICAgICAgICBleGNlcHQgT1NFcnJvcjoKKyAgICAgICAgICAgIGNvbnRpbnVlCisK
KyAgICAgICAgZGlycywgbm9uX2RpcnMgPSBbXSwgW10KKyAgICAgICAgZm9yIG5hbWUgaW4gbmFt
ZXM6CisgICAgICAgICAgICBwYXRoID0gam9pbihkaXJfcGF0aCwgbmFtZSkKKyAgICAgICAgICAg
IHRyeToKKyAgICAgICAgICAgICAgICBwYXRoX3N0YXQgPSBnZXRfc3RhdChwYXRoKQorICAgICAg
ICAgICAgZXhjZXB0IE9TRXJyb3I6CisgICAgICAgICAgICAgICAgY29udGludWUKKyAgICAgICAg
ICAgIGlmIGlzX2RpcihwYXRoX3N0YXQuc3RfbW9kZSk6CisgICAgICAgICAgICAgICAgZGlycy5h
cHBlbmQoKG5hbWUsIHBhdGhfc3RhdCkpCisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAg
ICAgIG5vbl9kaXJzLmFwcGVuZCgobmFtZSwgcGF0aF9zdGF0KSkKKworICAgICAgICB5aWVsZCBy
ZWxfcGF0aCwgZGlycywgbm9uX2RpcnMKKyAgICAgICAgZm9yIG5hbWUsIHBhdGhfc3RhdCBpbiBk
aXJzOgorICAgICAgICAgICAgbmV3X3BhdGggPSBqb2luKGRpcl9wYXRoLCBuYW1lKQorICAgICAg
ICAgICAgaWYgbm90IGlzX2xpbmsocGF0aF9zdGF0LnN0X21vZGUpOgorICAgICAgICAgICAgICAg
IHN0YWNrLmFwcGVuZCgobmV3X3BhdGgsIHJlbHBhdGgobmV3X3BhdGgsIHJvb3QpKSkKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
bWFuaWZlc3QvdzNjLWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL21hbmlmZXN0L3czYy1pbXBvcnQubG9nCmluZGV4IDVmNWYyODM0
YzAzLi45ODFiYmU2Y2QwYiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy9tYW5pZmVzdC93M2MtaW1wb3J0LmxvZworKysgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL21hbmlmZXN0L3cz
Yy1pbXBvcnQubG9nCkBAIC0yOSw2ICsyOSw3IEBAIExpc3Qgb2YgZmlsZXM6CiAvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9tYW5pZmVzdC9tYW5pZmVz
dC5weWMKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L21hbmlmZXN0L3NvdXJjZWZpbGUucHkKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL21hbmlmZXN0L3NvdXJjZWZpbGUucHljCisvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9tYW5pZmVzdC90ZXN0cGF0aHMu
cHkKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL21h
bmlmZXN0L3VwZGF0ZS5weQogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvbWFuaWZlc3QvdXBkYXRlLnB5YwogL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvbWFuaWZlc3QvdXRpbHMucHkKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvbXlweS5p
bmkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL215
cHkuaW5pCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5hYzhlZGQzN2Qz
YQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvbXlweS5pbmkKQEAgLTAsMCArMSwzNCBAQAorW215cHldCisjY2hlY2tf
dW50eXBlZF9kZWZzID0gVHJ1ZQorZGlzYWxsb3dfdW50eXBlZF9kZWZzID0gVHJ1ZQorZGlzYWxs
b3dfYW55X2dlbmVyaWNzID0gVHJ1ZQorZGlzYWxsb3dfaW5jb21wbGV0ZV9kZWZzID0gVHJ1ZQor
ZGlzYWxsb3dfc3ViY2xhc3NpbmdfYW55ID0gVHJ1ZQorZGlzYWxsb3dfdW50eXBlZF9jYWxscyA9
IFRydWUKK2Rpc2FsbG93X3VudHlwZWRfZGVjb3JhdG9ycyA9IFRydWUKK25vX2ltcGxpY2l0X29w
dGlvbmFsID0gVHJ1ZQord2Fybl9yZWR1bmRhbnRfY2FzdHMgPSBUcnVlCit3YXJuX3JldHVybl9h
bnkgPSBUcnVlCit3YXJuX3VudXNlZF9jb25maWdzID0gVHJ1ZQord2Fybl91bnVzZWRfaWdub3Jl
cyA9IFRydWUKKworW215cHktaHRtbDVsaWIuKl0KK2lnbm9yZV9taXNzaW5nX2ltcG9ydHMgPSBU
cnVlCisKK1tteXB5LWh5cG90aGVzaXMuKl0KK2lnbm9yZV9taXNzaW5nX2ltcG9ydHMgPSBUcnVl
CisKK1tteXB5LXB5dGVzdC4qXQoraWdub3JlX21pc3NpbmdfaW1wb3J0cyA9IFRydWUKKworW215
cHktenN0YW5kYXJkLipdCitpZ25vcmVfbWlzc2luZ19pbXBvcnRzID0gVHJ1ZQorCitbbXlweS10
b29scy5naXRpZ25vcmUudGVzdHMuKl0KK2lnbm9yZV9lcnJvcnMgPSBUcnVlCisKK1tteXB5LXRv
b2xzLm1hbmlmZXN0LnRlc3RzLipdCitpZ25vcmVfZXJyb3JzID0gVHJ1ZQorCitbbXlweS10b29s
cy5saW50LnRlc3RzLipdCitpZ25vcmVfZXJyb3JzID0gVHJ1ZQpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weTI3LWZsYWtlOC5p
bmkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5
MjctZmxha2U4LmluaQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uOTkz
MjRiMmFhZDEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5MjctZmxha2U4LmluaQpAQCAtMCwwICsxLDI4IEBACitb
Zmxha2U4XQorc2VsZWN0ID0gRSxXLEYsTgorIyBFMTI4OiBjb250aW51YXRpb24gbGluZSB1bmRl
ci1pbmRlbnRlZCBmb3IgdmlzdWFsIGluZGVudAorIyBFMTI5OiB2aXN1YWxseSBpbmRlbnRlZCBs
aW5lIHdpdGggc2FtZSBpbmRlbnQgYXMgbmV4dCBsb2dpY2FsIGxpbmUKKyMgRTIyNjogbWlzc2lu
ZyB3aGl0ZXNwYWNlIGFyb3VuZCBhcml0aG1ldGljIG9wZXJhdG9yCisjIEUyMzE6IG1pc3Npbmcg
d2hpdGVzcGFjZSBhZnRlciDigJgs4oCZLCDigJg74oCZLCBvciDigJg64oCZCisjIEUyNTE6IHVu
ZXhwZWN0ZWQgc3BhY2VzIGFyb3VuZCBrZXl3b3JkIC8gcGFyYW1ldGVyIGVxdWFscworIyBFMjY1
OiBibG9jayBjb21tZW50IHNob3VsZCBzdGFydCB3aXRoIOKAmCMg4oCYCisjIEUzMDI6IGV4cGVj
dGVkIDIgYmxhbmsgbGluZXMsIGZvdW5kIDAKKyMgRTMwMzogdG9vIG1hbnkgYmxhbmsgbGluZXMg
KDMpCisjIEUzMDU6IGV4cGVjdGVkIDIgYmxhbmsgbGluZXMgYWZ0ZXIgZW5kIG9mIGZ1bmN0aW9u
IG9yIGNsYXNzCisjIEU0MDI6IG1vZHVsZSBsZXZlbCBpbXBvcnQgbm90IGF0IHRvcCBvZiBmaWxl
CisjIEU3MzE6IGRvIG5vdCBhc3NpZ24gYSBsYW1iZGEgZXhwcmVzc2lvbiwgdXNlIGEgZGVmCisj
IFc1MDQ6IGxpbmUgYnJlYWsgYWZ0ZXIgYmluYXJ5IG9wZXJhdG9yCisjIFc2MDE6IC5oYXNfa2V5
KCkgaXMgZGVwcmVjYXRlZCwgdXNlIOKAmGlu4oCZCisjIFc2MDU6IGludmFsaWQgZXNjYXBlIHNl
cXVlbmNlCisjIFc2MDY6ICdhc3luYycgYW5kICdhd2FpdCcgYXJlIHJlc2VydmVkIGtleXdvcmRz
IHN0YXJ0aW5nIHdpdGggUHl0aG9uIDMuNworIyBOODAxOiBjbGFzcyBuYW1lcyBzaG91bGQgdXNl
IENhcFdvcmRzIGNvbnZlbnRpb24KKyMgTjgwMjogZnVuY3Rpb24gbmFtZSBzaG91bGQgYmUgbG93
ZXJjYXNlCisjIE44MDY6IHZhcmlhYmxlIGluIGZ1bmN0aW9uIHNob3VsZCBiZSBsb3dlcmNhc2UK
K2lnbm9yZSA9IEUxMjgsRTEyOSxFMjI2LEUyMzEsRTI1MSxFMjY1LEUzMDIsRTMwMyxFMzA1LEU0
MDIsRTczMSxXNTA0LFc2MDEsVzYwNSxXNjA2LE44MDEsTjgwMixOODA2CitleGNsdWRlID0KKyAg
ICAudG94LAorICAgIHB5d2Vic29ja2V0LAorICAgIHRoaXJkX3BhcnR5LAorICAgIHdwdHNlcnZl
L2RvY3MvY29uZi5weSwKKyAgICB3cHRzZXJ2ZS90ZXN0cy9mdW5jdGlvbmFsL2RvY3Jvb3QvaW52
YWxpZC5weQorbWF4LWxpbmUtbGVuZ3RoID0gMTQxCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2ZsYWtlOC5pbmkgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5MzYtZmxha2U4Lmlu
aQpzaW1pbGFyaXR5IGluZGV4IDY3JQpyZW5hbWUgZnJvbSBMYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2ZsYWtlOC5pbmkKcmVuYW1lIHRvIExheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHkzNi1mbGFrZTguaW5p
CmluZGV4IDg1ZTIzMDhhYWJiLi4xNGNjMWRjNmY2YSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9mbGFrZTguaW5pCisrKyBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHkzNi1mbGFr
ZTguaW5pCkBAIC0xLDkgKzEsNyBAQAogW2ZsYWtlOF0KLSMgZmxha2U4IGNvbmZpZyB1c2VkIGlu
IHRvb2xzL3RveC5pbmksIHRvb2xzL3dwdC90b3guaW5pLCBhbmQgdG9vbHMvd3B0cnVubmVyL3Rv
eC5pbmkKIHNlbGVjdCA9IEUsVyxGLE4KICMgRTEyODogY29udGludWF0aW9uIGxpbmUgdW5kZXIt
aW5kZW50ZWQgZm9yIHZpc3VhbCBpbmRlbnQKICMgRTEyOTogdmlzdWFsbHkgaW5kZW50ZWQgbGlu
ZSB3aXRoIHNhbWUgaW5kZW50IGFzIG5leHQgbG9naWNhbCBsaW5lCi0jIEUyMjE6IG11bHRpcGxl
IHNwYWNlcyBiZWZvcmUgb3BlcmF0b3IKICMgRTIyNjogbWlzc2luZyB3aGl0ZXNwYWNlIGFyb3Vu
ZCBhcml0aG1ldGljIG9wZXJhdG9yCiAjIEUyMzE6IG1pc3Npbmcgd2hpdGVzcGFjZSBhZnRlciDi
gJgs4oCZLCDigJg74oCZLCBvciDigJg64oCZCiAjIEUyNTE6IHVuZXhwZWN0ZWQgc3BhY2VzIGFy
b3VuZCBrZXl3b3JkIC8gcGFyYW1ldGVyIGVxdWFscwpAQCAtMTMsOSArMTEsMTcgQEAgc2VsZWN0
ID0gRSxXLEYsTgogIyBFMzA1OiBleHBlY3RlZCAyIGJsYW5rIGxpbmVzIGFmdGVyIGVuZCBvZiBm
dW5jdGlvbiBvciBjbGFzcwogIyBFNDAyOiBtb2R1bGUgbGV2ZWwgaW1wb3J0IG5vdCBhdCB0b3Ag
b2YgZmlsZQogIyBFNzMxOiBkbyBub3QgYXNzaWduIGEgbGFtYmRhIGV4cHJlc3Npb24sIHVzZSBh
IGRlZgotIyBFOTAxOiBTeW50YXhFcnJvciBvciBJbmRlbnRhdGlvbkVycm9yCi0jIFc2MDE6IC5o
YXNfa2V5KCkgaXMgZGVwcmVjYXRlZCwgdXNlIOKAmGlu4oCZCisjIFc1MDQ6IGxpbmUgYnJlYWsg
YWZ0ZXIgYmluYXJ5IG9wZXJhdG9yCisjIFc2MDU6IGludmFsaWQgZXNjYXBlIHNlcXVlbmNlCiAj
IE44MDE6IGNsYXNzIG5hbWVzIHNob3VsZCB1c2UgQ2FwV29yZHMgY29udmVudGlvbgogIyBOODAy
OiBmdW5jdGlvbiBuYW1lIHNob3VsZCBiZSBsb3dlcmNhc2UKLWlnbm9yZSA9IEUxMjgsRTEyOSxF
MjIxLEUyMjYsRTIzMSxFMjUxLEUyNjUsRTMwMixFMzAzLEUzMDUsRTQwMixFNzMxLEU5MDEsVzYw
MSxOODAxLE44MDIKKyMgTjgwNjogdmFyaWFibGUgaW4gZnVuY3Rpb24gc2hvdWxkIGJlIGxvd2Vy
Y2FzZQoraWdub3JlID0gRTEyOCxFMTI5LEUyMjYsRTIzMSxFMjUxLEUyNjUsRTMwMixFMzAzLEUz
MDUsRTQwMixFNzMxLFc1MDQsVzYwNSxOODAxLE44MDIsTjgwNgorZXhjbHVkZSA9CisgICAgLnRv
eCwKKyAgICBweXdlYnNvY2tldCwKKyAgICB0aGlyZF9wYXJ0eSwKKyAgICB3cHRydW5uZXIsCisg
ICAgd3B0c2VydmUvZG9jcy9jb25mLnB5LAorICAgIHdwdHNlcnZlL3Rlc3RzL2Z1bmN0aW9uYWwv
ZG9jcm9vdC9pbnZhbGlkLnB5CiBtYXgtbGluZS1sZW5ndGggPSAxNDEKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl0ZXN0Lmlu
aSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl0
ZXN0LmluaQppbmRleCBiNTJlNDY1NTk4YS4uNmJkYjRkNTYzZjYgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl0ZXN0LmluaQor
KysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5
dGVzdC5pbmkKQEAgLTEsMyArMSw3IEBACiBbcHl0ZXN0XQogbm9yZWN1cnNlZGlycyA9IC4qIHth
cmNofSAqLmVnZyBodG1sNWxpYiB0aGlyZF9wYXJ0eSBweXdlYnNvY2tldCBzaXggd3B0IHdwdHJ1
bm5lcgoteGZhaWxfc3RyaWN0PXRydWUKK3hmYWlsX3N0cmljdCA9IHRydWUKK2FkZG9wdHMgPSAt
LXN0cmljdC1tYXJrZXJzCittYXJrZXJzID0KKyAgICBzbG93OiBtYXJrcyB0ZXN0cyBhcyBzbG93
IChkZXNlbGVjdCB3aXRoICctbSAibm90IHNsb3ciJykKKyAgICByZW1vdGVfbmV0d29yawpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy9weXdlYnNvY2tldC9leGFtcGxlL2VjaG9fY2xpZW50LnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9leGFtcGxlL2VjaG9f
Y2xpZW50LnB5CmluZGV4IDk0M2NlNjRlOGI4Li44YWM3NDBlNzA1OCAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tl
dC9leGFtcGxlL2VjaG9fY2xpZW50LnB5CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvZXhhbXBsZS9lY2hvX2NsaWVudC5w
eQpAQCAtNTEsNiArNTEsNyBAQCBvcgogIyBydW4gZWNobyBjbGllbnQgdG8gdGVzdCBJRVRGIEh5
QmkgMDAgcHJvdG9jb2wKICBydW4gd2l0aCAtLXByb3RvY29sLXZlcnNpb249aHliaTAwCiAiIiIK
K2Zyb20gX19mdXR1cmVfXyBpbXBvcnQgcHJpbnRfZnVuY3Rpb24KIAogCiBpbXBvcnQgYmFzZTY0
CkBAIC00ODMsNyArNDg0LDcgQEAgY2xhc3MgQ2xpZW50SGFuZHNoYWtlUHJvY2Vzc29yKENsaWVu
dEhhbmRzaGFrZUJhc2UpOgogICAgICAgICAgICAgaWYgY2ggPT0gJ1xuJzoKICAgICAgICAgICAg
ICAgICBicmVhawogCi0gICAgICAgIG0gPSByZS5tYXRjaCgnSFRUUC9cXGQrXC5cXGQrIChcXGRc
XGRcXGQpIC4qXHJcbicsIHN0YXR1c19saW5lKQorICAgICAgICBtID0gcmUubWF0Y2goJ0hUVFAv
XFxkK1xcLlxcZCsgKFxcZFxcZFxcZCkgLipcclxuJywgc3RhdHVzX2xpbmUpCiAgICAgICAgIGlm
IG0gaXMgTm9uZToKICAgICAgICAgICAgIHJhaXNlIENsaWVudEhhbmRzaGFrZUVycm9yKAogICAg
ICAgICAgICAgICAgICdXcm9uZyBzdGF0dXMgbGluZSBmb3JtYXQ6ICVyJyAlIHN0YXR1c19saW5l
KQpAQCAtNTI2LDcgKzUyNyw3IEBAIGNsYXNzIENsaWVudEhhbmRzaGFrZVByb2Nlc3NvcihDbGll
bnRIYW5kc2hha2VCYXNlKToKICAgICAgICAgIyBWYWxpZGF0ZQogICAgICAgICB0cnk6CiAgICAg
ICAgICAgICBiaW5hcnlfYWNjZXB0ID0gYmFzZTY0LmI2NGRlY29kZShhY2NlcHQpCi0gICAgICAg
IGV4Y2VwdCBUeXBlRXJyb3IsIGU6CisgICAgICAgIGV4Y2VwdCBUeXBlRXJyb3I6CiAgICAgICAg
ICAgICByYWlzZSBIYW5kc2hha2VFcnJvcigKICAgICAgICAgICAgICAgICAnSWxsZWdhbCB2YWx1
ZSBmb3IgaGVhZGVyICVzOiAlcicgJQogICAgICAgICAgICAgICAgIChjb21tb24uU0VDX1dFQlNP
Q0tFVF9BQ0NFUFRfSEVBREVSLCBhY2NlcHQpKQpAQCAtOTQwLDE1ICs5NDEsMTUgQEAgY2xhc3Mg
RWNob0NsaWVudChvYmplY3QpOgogICAgICAgICAgICAgZm9yIGxpbmUgaW4gc2VsZi5fb3B0aW9u
cy5tZXNzYWdlLnNwbGl0KCcsJyk6CiAgICAgICAgICAgICAgICAgc2VsZi5fc3RyZWFtLnNlbmRf
bWVzc2FnZShsaW5lKQogICAgICAgICAgICAgICAgIGlmIHNlbGYuX29wdGlvbnMudmVyYm9zZToK
LSAgICAgICAgICAgICAgICAgICAgcHJpbnQgJ1NlbmQ6ICVzJyAlIGxpbmUKKyAgICAgICAgICAg
ICAgICAgICAgcHJpbnQoJ1NlbmQ6ICVzJyAlIGxpbmUpCiAgICAgICAgICAgICAgICAgdHJ5Ogog
ICAgICAgICAgICAgICAgICAgICByZWNlaXZlZCA9IHNlbGYuX3N0cmVhbS5yZWNlaXZlX21lc3Nh
Z2UoKQogCiAgICAgICAgICAgICAgICAgICAgIGlmIHNlbGYuX29wdGlvbnMudmVyYm9zZToKLSAg
ICAgICAgICAgICAgICAgICAgICAgIHByaW50ICdSZWN2OiAlcycgJSByZWNlaXZlZAotICAgICAg
ICAgICAgICAgIGV4Y2VwdCBFeGNlcHRpb24sIGU6CisgICAgICAgICAgICAgICAgICAgICAgICBw
cmludCgnUmVjdjogJXMnICUgcmVjZWl2ZWQpCisgICAgICAgICAgICAgICAgZXhjZXB0IEV4Y2Vw
dGlvbiBhcyBlOgogICAgICAgICAgICAgICAgICAgICBpZiBzZWxmLl9vcHRpb25zLnZlcmJvc2U6
Ci0gICAgICAgICAgICAgICAgICAgICAgICBwcmludCAnRXJyb3I6ICVzJyAlIGUKKyAgICAgICAg
ICAgICAgICAgICAgICAgIHByaW50KCdFcnJvcjogJXMnICUgZSkKICAgICAgICAgICAgICAgICAg
ICAgcmFpc2UKIAogICAgICAgICAgICAgc2VsZi5fZG9fY2xvc2luZ19oYW5kc2hha2UoKQpAQCAt
OTY0LDE1ICs5NjUsMTUgQEAgY2xhc3MgRWNob0NsaWVudChvYmplY3QpOgogICAgICAgICAgICAg
c2VsZi5fbG9nZ2VyLmluZm8oJ1dhaXQgZm9yIHNlcnZlci1pbml0aWF0ZWQgY2xvc2luZyBoYW5k
c2hha2UnKQogICAgICAgICAgICAgbWVzc2FnZSA9IHNlbGYuX3N0cmVhbS5yZWNlaXZlX21lc3Nh
Z2UoKQogICAgICAgICAgICAgaWYgbWVzc2FnZSBpcyBOb25lOgotICAgICAgICAgICAgICAgIHBy
aW50ICdSZWN2IGNsb3NlJwotICAgICAgICAgICAgICAgIHByaW50ICdTZW5kIGFjaycKKyAgICAg
ICAgICAgICAgICBwcmludCgnUmVjdiBjbG9zZScpCisgICAgICAgICAgICAgICAgcHJpbnQoJ1Nl
bmQgYWNrJykKICAgICAgICAgICAgICAgICBzZWxmLl9sb2dnZXIuaW5mbygKICAgICAgICAgICAg
ICAgICAgICAgJ1JlY2VpdmVkIGNsb3NpbmcgaGFuZHNoYWtlIGFuZCBzZW50IGFjaycpCiAgICAg
ICAgICAgICAgICAgcmV0dXJuCi0gICAgICAgIHByaW50ICdTZW5kIGNsb3NlJworICAgICAgICBw
cmludCgnU2VuZCBjbG9zZScpCiAgICAgICAgIHNlbGYuX3N0cmVhbS5jbG9zZV9jb25uZWN0aW9u
KCkKICAgICAgICAgc2VsZi5fbG9nZ2VyLmluZm8oJ1NlbnQgY2xvc2luZyBoYW5kc2hha2UnKQot
ICAgICAgICBwcmludCAnUmVjdiBhY2snCisgICAgICAgIHByaW50KCdSZWN2IGFjaycpCiAgICAg
ICAgIHNlbGYuX2xvZ2dlci5pbmZvKCdSZWNlaXZlZCBhY2snKQogCiAKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2Nr
ZXQvbW9kX3B5d2Vic29ja2V0L2hhbmRzaGFrZS93M2MtaW1wb3J0LmxvZyBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvbW9kX3B5
d2Vic29ja2V0L2hhbmRzaGFrZS93M2MtaW1wb3J0LmxvZwppbmRleCBmNTdhNDhjNjI3Yi4uOTE3
NjhmNDg3ZmIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvbW9kX3B5d2Vic29ja2V0L2hhbmRzaGFrZS93M2Mt
aW1wb3J0LmxvZworKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3B5d2Vic29ja2V0L21vZF9weXdlYnNvY2tldC9oYW5kc2hha2UvdzNjLWltcG9y
dC5sb2cKQEAgLTE1LDYgKzE1LDEwIEBAIE5vbmUKIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogTGlzdCBvZiBm
aWxlczoKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3B5d2Vic29ja2V0L21vZF9weXdlYnNvY2tldC9oYW5kc2hha2UvX19pbml0X18ucHkKKy9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0
L21vZF9weXdlYnNvY2tldC9oYW5kc2hha2UvX19pbml0X18ucHljCiAvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9tb2RfcHl3ZWJz
b2NrZXQvaGFuZHNoYWtlL19iYXNlLnB5CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9tb2RfcHl3ZWJzb2NrZXQvaGFuZHNoYWtl
L19iYXNlLnB5YwogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvcHl3ZWJzb2NrZXQvbW9kX3B5d2Vic29ja2V0L2hhbmRzaGFrZS9oeWJpLnB5CisvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tl
dC9tb2RfcHl3ZWJzb2NrZXQvaGFuZHNoYWtlL2h5YmkucHljCiAvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9tb2RfcHl3ZWJzb2Nr
ZXQvaGFuZHNoYWtlL2h5YmkwMC5weQorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvbW9kX3B5d2Vic29ja2V0L2hhbmRzaGFrZS9o
eWJpMDAucHljCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L21vZF9weXdlYnNvY2tldC9oZWFkZXJwYXJzZXJo
YW5kbGVyLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy9weXdlYnNvY2tldC9tb2RfcHl3ZWJzb2NrZXQvaGVhZGVycGFyc2VyaGFuZGxlci5weQpp
bmRleCBkZGE0M2M5ZDgxOS4uMDZlNzYzODU5NzkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvbW9kX3B5d2Vi
c29ja2V0L2hlYWRlcnBhcnNlcmhhbmRsZXIucHkKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9tb2RfcHl3ZWJzb2NrZXQv
aGVhZGVycGFyc2VyaGFuZGxlci5weQpAQCAtMjAxLDcgKzIwMSw3IEBAIGRlZiBoZWFkZXJwYXJz
ZXJoYW5kbGVyKHJlcXVlc3QpOgogICAgICAgICAgICAgcmVxdWVzdC5sb2dfZXJyb3IoCiAgICAg
ICAgICAgICAgICAgJ21vZF9weXdlYnNvY2tldDogRmFsbGJhY2sgdG8gQXBhY2hlJywgYXBhY2hl
LkFQTE9HX0lORk8pCiAgICAgICAgICAgICByZXR1cm4gYXBhY2hlLkRFQ0xJTkVECi0gICAgZXhj
ZXB0IGRpc3BhdGNoLkRpc3BhdGNoRXhjZXB0aW9uLCBlOgorICAgIGV4Y2VwdCBkaXNwYXRjaC5E
aXNwYXRjaEV4Y2VwdGlvbiBhcyBlOgogICAgICAgICByZXF1ZXN0LmxvZ19lcnJvcigKICAgICAg
ICAgICAgICdtb2RfcHl3ZWJzb2NrZXQ6IERpc3BhdGNoIGZhaWxlZCBmb3IgZXJyb3I6ICVzJyAl
IGUsCiAgICAgICAgICAgICBhcGFjaGUuQVBMT0dfSU5GTykKQEAgLTIxNywxNCArMjE3LDE0IEBA
IGRlZiBoZWFkZXJwYXJzZXJoYW5kbGVyKHJlcXVlc3QpOgogICAgICAgICB0cnk6CiAgICAgICAg
ICAgICBoYW5kc2hha2UuZG9faGFuZHNoYWtlKAogICAgICAgICAgICAgICAgIHJlcXVlc3QsIF9k
aXNwYXRjaGVyLCBhbGxvd0RyYWZ0NzU9YWxsb3dfZHJhZnQ3NSkKLSAgICAgICAgZXhjZXB0IGhh
bmRzaGFrZS5WZXJzaW9uRXhjZXB0aW9uLCBlOgorICAgICAgICBleGNlcHQgaGFuZHNoYWtlLlZl
cnNpb25FeGNlcHRpb24gYXMgZToKICAgICAgICAgICAgIHJlcXVlc3QubG9nX2Vycm9yKAogICAg
ICAgICAgICAgICAgICdtb2RfcHl3ZWJzb2NrZXQ6IEhhbmRzaGFrZSBmYWlsZWQgZm9yIHZlcnNp
b24gZXJyb3I6ICVzJyAlIGUsCiAgICAgICAgICAgICAgICAgYXBhY2hlLkFQTE9HX0lORk8pCiAg
ICAgICAgICAgICByZXF1ZXN0LmVycl9oZWFkZXJzX291dC5hZGQoY29tbW9uLlNFQ19XRUJTT0NL
RVRfVkVSU0lPTl9IRUFERVIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgZS5zdXBwb3J0ZWRfdmVyc2lvbnMpCiAgICAgICAgICAgICByZXR1cm4gYXBhY2hlLkhUVFBf
QkFEX1JFUVVFU1QKLSAgICAgICAgZXhjZXB0IGhhbmRzaGFrZS5IYW5kc2hha2VFeGNlcHRpb24s
IGU6CisgICAgICAgIGV4Y2VwdCBoYW5kc2hha2UuSGFuZHNoYWtlRXhjZXB0aW9uIGFzIGU6CiAg
ICAgICAgICAgICAjIEhhbmRzaGFrZSBmb3Igd3Mvd3NzIGZhaWxlZC4KICAgICAgICAgICAgICMg
U2VuZCBodHRwIHJlc3BvbnNlIHdpdGggZXJyb3Igc3RhdHVzLgogICAgICAgICAgICAgcmVxdWVz
dC5sb2dfZXJyb3IoCkBAIC0yMzUsMTAgKzIzNSwxMCBAQCBkZWYgaGVhZGVycGFyc2VyaGFuZGxl
cihyZXF1ZXN0KToKICAgICAgICAgaGFuZHNoYWtlX2lzX2RvbmUgPSBUcnVlCiAgICAgICAgIHJl
cXVlc3QuX2Rpc3BhdGNoZXIgPSBfZGlzcGF0Y2hlcgogICAgICAgICBfZGlzcGF0Y2hlci50cmFu
c2Zlcl9kYXRhKHJlcXVlc3QpCi0gICAgZXhjZXB0IGhhbmRzaGFrZS5BYm9ydGVkQnlVc2VyRXhj
ZXB0aW9uLCBlOgorICAgIGV4Y2VwdCBoYW5kc2hha2UuQWJvcnRlZEJ5VXNlckV4Y2VwdGlvbiBh
cyBlOgogICAgICAgICByZXF1ZXN0LmxvZ19lcnJvcignbW9kX3B5d2Vic29ja2V0OiBBYm9ydGVk
OiAlcycgJSBlLAogICAgICAgICAgICAgICAgICAgICAgICAgICBhcGFjaGUuQVBMT0dfSU5GTykK
LSAgICBleGNlcHQgRXhjZXB0aW9uLCBlOgorICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZToKICAg
ICAgICAgIyBEaXNwYXRjaEV4Y2VwdGlvbiBjYW4gYWxzbyBiZSB0aHJvd24gaWYgc29tZXRoaW5n
IGlzIHdyb25nIGluCiAgICAgICAgICMgcHl3ZWJzb2NrZXQgY29kZS4gSXQncyBjYXVnaHQgaGVy
ZSwgdGhlbi4KIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9tb2RfcHl3ZWJzb2NrZXQvbWVtb3JpemluZ2Zp
bGUucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3B5d2Vic29ja2V0L21vZF9weXdlYnNvY2tldC9tZW1vcml6aW5nZmlsZS5weQppbmRleCAwN2Jj
YmQ1ODc2Yy4uYzdhZmNjMTU3ZWQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvbW9kX3B5d2Vic29ja2V0L21l
bW9yaXppbmdmaWxlLnB5CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvbW9kX3B5d2Vic29ja2V0L21lbW9yaXppbmdmaWxl
LnB5CkBAIC0xLDUgKzEsMyBAQAotIyEvdXNyL2Jpbi9lbnYgcHl0aG9uCi0jCiAjIENvcHlyaWdo
dCAyMDExLCBHb29nbGUgSW5jLgogIyBBbGwgcmlnaHRzIHJlc2VydmVkLgogIwpAQCAtNjIsNyAr
NjAsNyBAQCBjbGFzcyBNZW1vcml6aW5nRmlsZShvYmplY3QpOgogCiAgICAgZGVmIF9fZ2V0YXR0
cmlidXRlX18oc2VsZiwgbmFtZSk6CiAgICAgICAgICIiIlJldHVybiBhIGZpbGUgYXR0cmlidXRl
LgotICAgICAgICAKKwogICAgICAgICBSZXR1cm5zIHRoZSB2YWx1ZSBvdmVycmlkZGVuIGJ5IHRo
aXMgY2xhc3MgZm9yIHNvbWUgYXR0cmlidXRlcywKICAgICAgICAgYW5kIGZvcndhcmRzIHRoZSBj
YWxsIHRvIF9maWxlIGZvciB0aGUgb3RoZXIgYXR0cmlidXRlcy4KICAgICAgICAgIiIiCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3B5d2Vic29ja2V0L21vZF9weXdlYnNvY2tldC9zdGFuZGFsb25lLnB5IGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9tb2RfcHl3
ZWJzb2NrZXQvc3RhbmRhbG9uZS5weQppbmRleCA4NGIyNDcwYzhmOS4uMmM4Nzg2MDY0ODggMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvcHl3ZWJzb2NrZXQvbW9kX3B5d2Vic29ja2V0L3N0YW5kYWxvbmUucHkKKysrIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9t
b2RfcHl3ZWJzb2NrZXQvc3RhbmRhbG9uZS5weQpAQCAtMzY5LDcgKzM2OSw3IEBAIGRlZiBfYWxp
YXNfaGFuZGxlcnMoZGlzcGF0Y2hlciwgd2Vic29ja19oYW5kbGVyc19tYXBfZmlsZSk6CiAgICAg
ICAgIGZvciBsaW5lIGluIGZwOgogICAgICAgICAgICAgaWYgbGluZVswXSA9PSAnIycgb3IgbGlu
ZS5pc3NwYWNlKCk6CiAgICAgICAgICAgICAgICAgY29udGludWUKLSAgICAgICAgICAgIG0gPSBy
ZS5tYXRjaCgnKFxTKylccysoXFMrKScsIGxpbmUpCisgICAgICAgICAgICBtID0gcmUubWF0Y2go
cicoXFMrKVxzKyhcUyspJywgbGluZSkKICAgICAgICAgICAgIGlmIG5vdCBtOgogICAgICAgICAg
ICAgICAgIGxvZ2dpbmcud2FybmluZygnV3JvbmcgZm9ybWF0IGluIG1hcCBmaWxlOicgKyBsaW5l
KQogICAgICAgICAgICAgICAgIGNvbnRpbnVlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L21vZF9weXdlYnNv
Y2tldC93M2MtaW1wb3J0LmxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvbW9kX3B5d2Vic29ja2V0L3czYy1pbXBvcnQubG9n
CmluZGV4IGJjMjNhNWQyOGI3Li5kMzA1ZTMyZWQxMCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9tb2RfcHl3
ZWJzb2NrZXQvdzNjLWltcG9ydC5sb2cKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9tb2RfcHl3ZWJzb2NrZXQvdzNjLWlt
cG9ydC5sb2cKQEAgLTE1LDE5ICsxNSwzNCBAQCBOb25lCiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIExpc3Qg
b2YgZmlsZXM6CiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy9weXdlYnNvY2tldC9tb2RfcHl3ZWJzb2NrZXQvX19pbml0X18ucHkKKy9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L21vZF9w
eXdlYnNvY2tldC9fX2luaXRfXy5weWMKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L21vZF9weXdlYnNvY2tldC9fc3RyZWFtX2Jh
c2UucHkKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3B5d2Vic29ja2V0L21vZF9weXdlYnNvY2tldC9fc3RyZWFtX2Jhc2UucHljCiAvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9tb2Rf
cHl3ZWJzb2NrZXQvX3N0cmVhbV9oaXhpZTc1LnB5CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9tb2RfcHl3ZWJzb2NrZXQvX3N0
cmVhbV9oaXhpZTc1LnB5YwogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvbW9kX3B5d2Vic29ja2V0L19zdHJlYW1faHliaS5weQor
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJz
b2NrZXQvbW9kX3B5d2Vic29ja2V0L19zdHJlYW1faHliaS5weWMKIC9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L21vZF9weXdlYnNv
Y2tldC9jb21tb24ucHkKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3B5d2Vic29ja2V0L21vZF9weXdlYnNvY2tldC9jb21tb24ucHljCiAvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9t
b2RfcHl3ZWJzb2NrZXQvZGlzcGF0Y2gucHkKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L21vZF9weXdlYnNvY2tldC9kaXNwYXRj
aC5weWMKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3B5d2Vic29ja2V0L21vZF9weXdlYnNvY2tldC9leHRlbnNpb25zLnB5CisvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9tb2RfcHl3
ZWJzb2NrZXQvZXh0ZW5zaW9ucy5weWMKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L21vZF9weXdlYnNvY2tldC9mYXN0X21hc2tp
bmcuaQogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
cHl3ZWJzb2NrZXQvbW9kX3B5d2Vic29ja2V0L2hlYWRlcnBhcnNlcmhhbmRsZXIucHkKIC9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0
L21vZF9weXdlYnNvY2tldC9odHRwX2hlYWRlcl91dGlsLnB5CisvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9tb2RfcHl3ZWJzb2Nr
ZXQvaHR0cF9oZWFkZXJfdXRpbC5weWMKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L21vZF9weXdlYnNvY2tldC9tZW1vcml6aW5n
ZmlsZS5weQorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvcHl3ZWJzb2NrZXQvbW9kX3B5d2Vic29ja2V0L21lbW9yaXppbmdmaWxlLnB5YwogL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQv
bW9kX3B5d2Vic29ja2V0L21zZ3V0aWwucHkKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L21vZF9weXdlYnNvY2tldC9tc2d1dGls
LnB5YwogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
cHl3ZWJzb2NrZXQvbW9kX3B5d2Vic29ja2V0L211eC5weQorL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvbW9kX3B5d2Vic29ja2V0
L211eC5weWMKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3B5d2Vic29ja2V0L21vZF9weXdlYnNvY2tldC9zdGFuZGFsb25lLnB5CisvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9tb2Rf
cHl3ZWJzb2NrZXQvc3RhbmRhbG9uZS5weWMKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L21vZF9weXdlYnNvY2tldC9zdHJlYW0u
cHkKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5
d2Vic29ja2V0L21vZF9weXdlYnNvY2tldC9zdHJlYW0ucHljCiAvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9tb2RfcHl3ZWJzb2Nr
ZXQvdXRpbC5weQorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvcHl3ZWJzb2NrZXQvbW9kX3B5d2Vic29ja2V0L3V0aWwucHljCiAvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9tb2RfcHl3
ZWJzb2NrZXQveGhyX2JlbmNobWFya19oYW5kbGVyLnB5CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9tb2RfcHl3ZWJzb2NrZXQv
eGhyX2JlbmNobWFya19oYW5kbGVyLnB5YwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC90ZXN0L2NsaWVudF9m
b3JfdGVzdGluZy5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvcHl3ZWJzb2NrZXQvdGVzdC9jbGllbnRfZm9yX3Rlc3RpbmcucHkKaW5kZXggYzdm
ODA1ZWU5NGUuLjE4ZDE4NTcxMmVlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3Rlc3QvY2xpZW50X2Zvcl90
ZXN0aW5nLnB5CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvcHl3ZWJzb2NrZXQvdGVzdC9jbGllbnRfZm9yX3Rlc3RpbmcucHkKQEAgLTMxNiw3
ICszMTYsNyBAQCBjbGFzcyBXZWJTb2NrZXRIYW5kc2hha2Uob2JqZWN0KToKICAgICAgICAgICAg
IHNlbGYuX29wdGlvbnMuc2VydmVyX3BvcnQsCiAgICAgICAgICAgICBzZWxmLl9vcHRpb25zLnVz
ZV90bHMpKQogCi0gICAgICAgIGlmIHNlbGYuX29wdGlvbnMudmVyc2lvbiBpcyA4OgorICAgICAg
ICBpZiBzZWxmLl9vcHRpb25zLnZlcnNpb24gPT0gODoKICAgICAgICAgICAgIGZpZWxkcy5hcHBl
bmQoX3NlY19vcmlnaW5faGVhZGVyKHNlbGYuX29wdGlvbnMub3JpZ2luKSkKICAgICAgICAgZWxz
ZToKICAgICAgICAgICAgIGZpZWxkcy5hcHBlbmQoX29yaWdpbl9oZWFkZXIoc2VsZi5fb3B0aW9u
cy5vcmlnaW4pKQpAQCAtMzk4LDcgKzM5OCw3IEBAIGNsYXNzIFdlYlNvY2tldEhhbmRzaGFrZShv
YmplY3QpOgogICAgICAgICAjIFZhbGlkYXRlCiAgICAgICAgIHRyeToKICAgICAgICAgICAgIGRl
Y29kZWRfYWNjZXB0ID0gYmFzZTY0LmI2NGRlY29kZShhY2NlcHQpCi0gICAgICAgIGV4Y2VwdCBU
eXBlRXJyb3IsIGU6CisgICAgICAgIGV4Y2VwdCBUeXBlRXJyb3IgYXMgZToKICAgICAgICAgICAg
IHJhaXNlIEhhbmRzaGFrZUV4Y2VwdGlvbigKICAgICAgICAgICAgICAgICAnSWxsZWdhbCB2YWx1
ZSBmb3IgaGVhZGVyIFNlYy1XZWJTb2NrZXQtQWNjZXB0OiAnICsgYWNjZXB0KQogCkBAIC05OTgs
NyArOTk4LDcgQEAgZGVmIGNvbm5lY3Rfc29ja2V0X3dpdGhfcmV0cnkoaG9zdCwgcG9ydCwgdGlt
ZW91dCwgdXNlX3RscywKICAgICAgICAgICAgIGlmIHVzZV90bHM6CiAgICAgICAgICAgICAgICAg
cmV0dXJuIF9UTFNTb2NrZXQocykKICAgICAgICAgICAgIHJldHVybiBzCi0gICAgICAgIGV4Y2Vw
dCBzb2NrZXQuZXJyb3IsIGU6CisgICAgICAgIGV4Y2VwdCBzb2NrZXQuZXJyb3IgYXMgZToKICAg
ICAgICAgICAgIGlmIGUuZXJybm8gIT0gZXJybm8uRUNPTk5SRUZVU0VEOgogICAgICAgICAgICAg
ICAgIHJhaXNlCiAgICAgICAgICAgICBlbHNlOgpAQCAtMTA2Myw3ICsxMDYzLDcgQEAgY2xhc3Mg
Q2xpZW50KG9iamVjdCk6CiAgICAgZGVmIGFzc2VydF9jb25uZWN0aW9uX2Nsb3NlZChzZWxmKToK
ICAgICAgICAgdHJ5OgogICAgICAgICAgICAgcmVhZF9kYXRhID0gcmVjZWl2ZV9ieXRlcyhzZWxm
Ll9zb2NrZXQsIDEpCi0gICAgICAgIGV4Y2VwdCBFeGNlcHRpb24sIGU6CisgICAgICAgIGV4Y2Vw
dCBFeGNlcHRpb24gYXMgZToKICAgICAgICAgICAgIGlmIHN0cihlKS5maW5kKAogICAgICAgICAg
ICAgICAgICdDb25uZWN0aW9uIGNsb3NlZCBiZWZvcmUgcmVjZWl2aW5nIHJlcXVlc3RlZCBsZW5n
dGggJykgPT0gMDoKICAgICAgICAgICAgICAgICByZXR1cm4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvdGVz
dC9tdXhfY2xpZW50X2Zvcl90ZXN0aW5nLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC90ZXN0L211eF9jbGllbnRfZm9yX3Rl
c3RpbmcucHkKaW5kZXggZGQ1NDM1YThjYzAuLjMwNGU3ZmM5NWQzIDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0
L3Rlc3QvbXV4X2NsaWVudF9mb3JfdGVzdGluZy5weQorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3Rlc3QvbXV4X2NsaWVu
dF9mb3JfdGVzdGluZy5weQpAQCAtNTE5LDcgKzUxOSw3IEBAIGNsYXNzIE11eENsaWVudChvYmpl
Y3QpOgogCiAgICAgICAgIHRyeToKICAgICAgICAgICAgIHNlbmRfcXVvdGEgPSBzZWxmLl9jaGFu
bmVsX3Nsb3RzLnBvcGxlZnQoKQotICAgICAgICBleGNlcHQgSW5kZXhFcnJvciwgZToKKyAgICAg
ICAgZXhjZXB0IEluZGV4RXJyb3IgYXMgZToKICAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbign
Tm8gY2hhbm5lbCBzbG90czogJXInICUgZSkKIAogICAgICAgICAjIENyZWF0ZSBBZGRDaGFubmVs
IHJlcXVlc3QKQEAgLTYzMiw3ICs2MzIsNyBAQCBjbGFzcyBNdXhDbGllbnQob2JqZWN0KToKICAg
ICAgICAgdHJ5OgogICAgICAgICAgICAgaW5uZXJfZnJhbWUgPSBzZWxmLl9sb2dpY2FsX2NoYW5u
ZWxzW2NoYW5uZWxfaWRdLnF1ZXVlLmdldCgKICAgICAgICAgICAgICAgICB0aW1lb3V0PXNlbGYu
X3RpbWVvdXQpCi0gICAgICAgIGV4Y2VwdCBRdWV1ZS5FbXB0eSwgZToKKyAgICAgICAgZXhjZXB0
IFF1ZXVlLkVtcHR5IGFzIGU6CiAgICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oJ0Nhbm5vdCBy
ZWNlaXZlIG1lc3NhZ2UgZnJvbSBjaGFubmVsIGlkICVkJyAlCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgY2hhbm5lbF9pZCkKIApAQCAtNjY2LDcgKzY2Niw3IEBAIGNsYXNzIE11eENsaWVu
dChvYmplY3QpOgogICAgICAgICB0cnk6CiAgICAgICAgICAgICBpbm5lcl9mcmFtZSA9IHNlbGYu
X2xvZ2ljYWxfY2hhbm5lbHNbY2hhbm5lbF9pZF0ucXVldWUuZ2V0KAogICAgICAgICAgICAgICAg
IHRpbWVvdXQ9c2VsZi5fdGltZW91dCkKLSAgICAgICAgZXhjZXB0IFF1ZXVlLkVtcHR5LCBlOgor
ICAgICAgICBleGNlcHQgUXVldWUuRW1wdHkgYXMgZToKICAgICAgICAgICAgIHJhaXNlIEV4Y2Vw
dGlvbignQ2Fubm90IHJlY2VpdmUgbWVzc2FnZSBmcm9tIGNoYW5uZWwgaWQgJWQnICUKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBjaGFubmVsX2lkKQogICAgICAgICBpZiBpbm5lcl9mcmFt
ZS5vcGNvZGUgIT0gY2xpZW50X2Zvcl90ZXN0aW5nLk9QQ09ERV9DTE9TRToKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJz
b2NrZXQvdGVzdC90ZXN0X2Rpc3BhdGNoLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC90ZXN0L3Rlc3RfZGlzcGF0Y2gucHkK
aW5kZXggOWNhM2Q0ZjNhZTEuLmUxNmQ2MDU2MDljIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3Rlc3QvdGVz
dF9kaXNwYXRjaC5weQorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3Rlc3QvdGVzdF9kaXNwYXRjaC5weQpAQCAtMTU1LDkg
KzE1NSw5IEBAIGNsYXNzIERpc3BhdGNoZXJUZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICAg
ICAgdHJ5OgogICAgICAgICAgICAgZGlzcGF0Y2hlci5kb19leHRyYV9oYW5kc2hha2UocmVxdWVz
dCkKICAgICAgICAgICAgIHNlbGYuZmFpbCgnQ291bGQgbm90IGNhdGNoIEhhbmRzaGFrZUV4Y2Vw
dGlvbiB3aXRoIDQwMyBzdGF0dXMnKQotICAgICAgICBleGNlcHQgaGFuZHNoYWtlLkhhbmRzaGFr
ZUV4Y2VwdGlvbiwgZToKKyAgICAgICAgZXhjZXB0IGhhbmRzaGFrZS5IYW5kc2hha2VFeGNlcHRp
b24gYXMgZToKICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKDQwMywgZS5zdGF0dXMpCi0g
ICAgICAgIGV4Y2VwdCBFeGNlcHRpb24sIGU6CisgICAgICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMg
ZToKICAgICAgICAgICAgIHNlbGYuZmFpbCgnVW5leHBlY3RlZCBleGNlcHRpb246ICVyJyAlIGUp
CiAKICAgICBkZWYgdGVzdF9hYm9ydF9leHRyYV9oYW5kc2hha2Uoc2VsZik6CkBAIC0yMTIsNyAr
MjEyLDcgQEAgY2xhc3MgRGlzcGF0Y2hlclRlc3QodW5pdHRlc3QuVGVzdENhc2UpOgogICAgICAg
ICAgICAgdHJ5OgogICAgICAgICAgICAgICAgIGRpc3BhdGNoZXIudHJhbnNmZXJfZGF0YShyZXF1
ZXN0KQogICAgICAgICAgICAgICAgIHNlbGYuZmFpbCgpCi0gICAgICAgICAgICBleGNlcHQgZGlz
cGF0Y2guRGlzcGF0Y2hFeGNlcHRpb24sIGU6CisgICAgICAgICAgICBleGNlcHQgZGlzcGF0Y2gu
RGlzcGF0Y2hFeGNlcHRpb24gYXMgZToKICAgICAgICAgICAgICAgICBzZWxmLmZhaWxVbmxlc3Mo
c3RyKGUpLmZpbmQoJ05vIGhhbmRsZXInKSAhPSAtMSkKICAgICAgICAgICAgIGV4Y2VwdCBFeGNl
cHRpb246CiAgICAgICAgICAgICAgICAgc2VsZi5mYWlsKCkKQEAgLTIyNSw3ICsyMjUsNyBAQCBj
bGFzcyBEaXNwYXRjaGVyVGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAgICAgIHRyeToKICAg
ICAgICAgICAgIGRpc3BhdGNoZXIudHJhbnNmZXJfZGF0YShyZXF1ZXN0KQogICAgICAgICAgICAg
c2VsZi5mYWlsKCkKLSAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbiwgZToKKyAgICAgICAgZXhjZXB0
IEV4Y2VwdGlvbiBhcyBlOgogICAgICAgICAgICAgc2VsZi5mYWlsVW5sZXNzKHN0cihlKS5maW5k
KCdJbnRlbnRpb25hbCcpICE9IC0xLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICdVbmV4
cGVjdGVkIGV4Y2VwdGlvbjogJXMnICUgZSkKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC90ZXN0L3Rlc3Rf
ZW5kdG9lbmQucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3B5d2Vic29ja2V0L3Rlc3QvdGVzdF9lbmR0b2VuZC5weQppbmRleCA1ZTVjZjYxNTcz
OS4uMzY4MGVjMmViYTYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvdGVzdC90ZXN0X2VuZHRvZW5kLnB5Cisr
KyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3
ZWJzb2NrZXQvdGVzdC90ZXN0X2VuZHRvZW5kLnB5CkBAIC0zMDQsOSArMzA0LDkgQEAgY2xhc3Mg
RW5kVG9FbmRIeUJpVGVzdChFbmRUb0VuZFRlc3RCYXNlKToKICAgICAgICAgICAgIHRyeToKICAg
ICAgICAgICAgICAgICBjbGllbnQuY29ubmVjdCgpCiAgICAgICAgICAgICAgICAgc2VsZi5mYWls
KCdDb3VsZCBub3QgY2F0Y2ggSHR0cFN0YXR1c0V4Y2VwdGlvbicpCi0gICAgICAgICAgICBleGNl
cHQgY2xpZW50X2Zvcl90ZXN0aW5nLkh0dHBTdGF0dXNFeGNlcHRpb24sIGU6CisgICAgICAgICAg
ICBleGNlcHQgY2xpZW50X2Zvcl90ZXN0aW5nLkh0dHBTdGF0dXNFeGNlcHRpb24gYXMgZToKICAg
ICAgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHN0YXR1cywgZS5zdGF0dXMpCi0gICAgICAg
ICAgICBleGNlcHQgRXhjZXB0aW9uLCBlOgorICAgICAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbiBh
cyBlOgogICAgICAgICAgICAgICAgIHNlbGYuZmFpbCgnQ2F0Y2ggdW5leHBlY3RlZCBleGNlcHRp
b24nKQogICAgICAgICAgICAgZmluYWxseToKICAgICAgICAgICAgICAgICBjbGllbnQuY2xvc2Vf
c29ja2V0KCkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvdGVzdC90ZXN0X2hhbmRzaGFrZV9oeWJpLnB5IGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNv
Y2tldC90ZXN0L3Rlc3RfaGFuZHNoYWtlX2h5YmkucHkKaW5kZXggZDEwNjY3NzQ5ZTYuLmQwYWFm
NjQwYTU4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3Rlc3QvdGVzdF9oYW5kc2hha2VfaHliaS5weQorKysg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vi
c29ja2V0L3Rlc3QvdGVzdF9oYW5kc2hha2VfaHliaS5weQpAQCAtNTA3LDEwICs1MDcsMTAgQEAg
Y2xhc3MgSGFuZHNoYWtlclRlc3QodW5pdHRlc3QuVGVzdENhc2UpOgogICAgICAgICAgICAgdHJ5
OgogICAgICAgICAgICAgICAgIGhhbmRzaGFrZXIuZG9faGFuZHNoYWtlKCkKICAgICAgICAgICAg
ICAgICBzZWxmLmZhaWwoJ05vIGV4Y2VwdGlvbiB0aHJvd24gZm9yIFwnJXNcJyBjYXNlJyAlIGNh
c2VfbmFtZSkKLSAgICAgICAgICAgIGV4Y2VwdCBIYW5kc2hha2VFeGNlcHRpb24sIGU6CisgICAg
ICAgICAgICBleGNlcHQgSGFuZHNoYWtlRXhjZXB0aW9uIGFzIGU6CiAgICAgICAgICAgICAgICAg
c2VsZi5hc3NlcnRUcnVlKGV4cGVjdF9oYW5kc2hha2VfZXhjZXB0aW9uKQogICAgICAgICAgICAg
ICAgIHNlbGYuYXNzZXJ0RXF1YWwoZXhwZWN0ZWRfc3RhdHVzLCBlLnN0YXR1cykKLSAgICAgICAg
ICAgIGV4Y2VwdCBWZXJzaW9uRXhjZXB0aW9uLCBlOgorICAgICAgICAgICAgZXhjZXB0IFZlcnNp
b25FeGNlcHRpb24gYXMgZToKICAgICAgICAgICAgICAgICBzZWxmLmFzc2VydEZhbHNlKGV4cGVj
dF9oYW5kc2hha2VfZXhjZXB0aW9uKQogCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvdGVzdC90ZXN0X21z
Z3V0aWwucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3B5d2Vic29ja2V0L3Rlc3QvdGVzdF9tc2d1dGlsLnB5CmluZGV4IDlkYmJiNWQ4ZDRiLi4y
MzQ3MzVjNjMwNCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC90ZXN0L3Rlc3RfbXNndXRpbC5weQorKysgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29j
a2V0L3Rlc3QvdGVzdF9tc2d1dGlsLnB5CkBAIC0zMSw2ICszMSw3IEBACiAKIAogIiIiVGVzdHMg
Zm9yIG1zZ3V0aWwgbW9kdWxlLiIiIgorZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCBwcmludF9mdW5j
dGlvbgogCiAKIGltcG9ydCBhcnJheQpAQCAtODg0LDcgKzg4NSw3IEBAIGNsYXNzIFBlck1lc3Nh
Z2VEZWZsYXRlVGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAgICAgIGNvbXByZXNzZWRfZW1w
dHkgPSBjb21wcmVzc2VkX2VtcHR5WzotNF0KICAgICAgICAgZXhwZWN0ZWQgKz0gJ1x4ODAlYycg
JSBsZW4oY29tcHJlc3NlZF9lbXB0eSkKICAgICAgICAgZXhwZWN0ZWQgKz0gY29tcHJlc3NlZF9l
bXB0eQotICAgICAgICBwcmludCAnJXInICUgZXhwZWN0ZWQKKyAgICAgICAgcHJpbnQoJyVyJyAl
IGV4cGVjdGVkKQogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGV4cGVjdGVkLCByZXF1ZXN0LmNv
bm5lY3Rpb24ud3JpdHRlbl9kYXRhKCkpCiAKICAgICBkZWYgdGVzdF9zZW5kX21lc3NhZ2VfZnJh
Z21lbnRlZF9lbXB0eV9sYXN0X2ZyYW1lKHNlbGYpOgpAQCAtMTA2NCw3ICsxMDY1LDcgQEAgY2xh
c3MgUGVyTWVzc2FnZURlZmxhdGVUZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKIAogICAgICAgICAg
ICAgZnJhbWVfY291bnQgKz0gMQogCi0gICAgICAgIHByaW50ICJDaHVuayBzaXplczogJXIiICUg
Y2h1bmtfc2l6ZXMKKyAgICAgICAgcHJpbnQoIkNodW5rIHNpemVzOiAlciIgJSBjaHVua19zaXpl
cykKICAgICAgICAgc2VsZi5hc3NlcnRUcnVlKGxlbihjaHVua19zaXplcykgPiAxMCkKIAogICAg
ICAgICAjIENsb3NlIGZyYW1lCkBAIC0xMTY3LDkgKzExNjgsOSBAQCBjbGFzcyBQZXJNZXNzYWdl
RGVmbGF0ZVRlc3QodW5pdHRlc3QuVGVzdENhc2UpOgogICAgICAgICAgICAgICAgICAgICBjb21w
cmVzcyA9IE5vbmUKICAgICAgICAgICAgICAgICAgICAgZmluaXNoX3VzZWQgPSBUcnVlCiAKLSAg
ICAgICAgcHJpbnQgIkNodW5rIHNpemVzOiAlciIgJSBjaHVua19zaXplcworICAgICAgICBwcmlu
dCgiQ2h1bmsgc2l6ZXM6ICVyIiAlIGNodW5rX3NpemVzKQogICAgICAgICBzZWxmLmFzc2VydFRy
dWUobGVuKGNodW5rX3NpemVzKSA+IDEwKQotICAgICAgICBwcmludCAiTWV0aG9kczogJXIiICUg
bWV0aG9kcworICAgICAgICBwcmludCgiTWV0aG9kczogJXIiICUgbWV0aG9kcykKICAgICAgICAg
c2VsZi5hc3NlcnRUcnVlKHN5bmNfdXNlZCkKICAgICAgICAgc2VsZi5hc3NlcnRUcnVlKGZpbmlz
aF91c2VkKQogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3Rlc3QvdGVzdF9tdXgucHkgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3Rlc3Qv
dGVzdF9tdXgucHkKaW5kZXggM2NlNDVjZjZiM2YuLjA3NzNkZWNiZmQ2IDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29j
a2V0L3Rlc3QvdGVzdF9tdXgucHkKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC90ZXN0L3Rlc3RfbXV4LnB5CkBAIC0yNTgs
OSArMjU4LDkgQEAgY2xhc3MgX011eE1vY2tEaXNwYXRjaGVyKG9iamVjdCk6CiAgICAgICAgICAg
ICAgICAgcmFpc2UgVmFsdWVFcnJvcignQ2Fubm90IGhhbmRsZSBwYXRoICVyJyAlIHJlcXVlc3Qu
cGF0aCkKICAgICAgICAgICAgIGlmIG5vdCByZXF1ZXN0LnNlcnZlcl90ZXJtaW5hdGVkOgogICAg
ICAgICAgICAgICAgIHJlcXVlc3Qud3Nfc3RyZWFtLmNsb3NlX2Nvbm5lY3Rpb24oKQotICAgICAg
ICBleGNlcHQgQ29ubmVjdGlvblRlcm1pbmF0ZWRFeGNlcHRpb24sIGU6CisgICAgICAgIGV4Y2Vw
dCBDb25uZWN0aW9uVGVybWluYXRlZEV4Y2VwdGlvbiBhcyBlOgogICAgICAgICAgICAgc2VsZi5j
aGFubmVsX2V2ZW50c1tyZXF1ZXN0LmNoYW5uZWxfaWRdLmV4Y2VwdGlvbiA9IGUKLSAgICAgICAg
ZXhjZXB0IEV4Y2VwdGlvbiwgZToKKyAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBlOgogICAg
ICAgICAgICAgc2VsZi5jaGFubmVsX2V2ZW50c1tyZXF1ZXN0LmNoYW5uZWxfaWRdLmV4Y2VwdGlv
biA9IGUKICAgICAgICAgICAgIHJhaXNlCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvdGVzdC90ZXN0X3V0
aWwucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3B5d2Vic29ja2V0L3Rlc3QvdGVzdF91dGlsLnB5CmluZGV4IDIwZjRhYjA1OTY1Li42NGJhM2Y0
NzczNyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy9weXdlYnNvY2tldC90ZXN0L3Rlc3RfdXRpbC5weQorKysgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3Rlc3Qv
dGVzdF91dGlsLnB5CkBAIC0zMSw2ICszMSw3IEBACiAKIAogIiIiVGVzdHMgZm9yIHV0aWwgbW9k
dWxlLiIiIgorZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCBwcmludF9mdW5jdGlvbgogCiAKIGltcG9y
dCBvcwpAQCAtMTcyLDcgKzE3Myw3IEBAIGNsYXNzIEluZmxhdGVyRGVmbGF0ZXJUZXN0KHVuaXR0
ZXN0LlRlc3RDYXNlKToKICAgICAgICAgICAgIFtjaHIocmFuZG9tLnJhbmRpbnQoMCwgMjU1KSkg
Zm9yIGkgaW4geHJhbmdlKDEwMCAqIDEwMjQpXSkKIAogICAgICAgICBjaHVua2VkX2lucHV0ID0g
Z2V0X3JhbmRvbV9zZWN0aW9uKHNvdXJjZSwgMTApCi0gICAgICAgIHByaW50ICJJbnB1dCBjaHVu
ayBzaXplczogJXIiICUgW2xlbihjKSBmb3IgYyBpbiBjaHVua2VkX2lucHV0XQorICAgICAgICBw
cmludCgiSW5wdXQgY2h1bmsgc2l6ZXM6ICVyIiAlIFtsZW4oYykgZm9yIGMgaW4gY2h1bmtlZF9p
bnB1dF0pCiAKICAgICAgICAgZGVmbGF0ZXIgPSB1dGlsLl9EZWZsYXRlcigxNSkKICAgICAgICAg
Y29tcHJlc3NlZCA9IFtdCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3JlcXVpcmVtZW50c19mbGFrZTgudHh0IGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9yZXF1aXJlbWVudHNfZmxh
a2U4LnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uMGE0NTIyNDAx
NjQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3JlcXVpcmVtZW50c19mbGFrZTgudHh0CkBAIC0wLDAgKzEsNCBAQAor
Zmxha2U4PT0zLjcuOQorcHljb2Rlc3R5bGU9PTIuNS4wCitweWZsYWtlcz09Mi4xLjEKK3BlcDgt
bmFtaW5nPT0wLjkuMQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy9yZXF1aXJlbWVudHNfbXlweS50eHQgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3JlcXVpcmVtZW50c19teXB5LnR4
dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uMTk0ZjQyODRiMjYKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3JlcXVpcmVtZW50c19teXB5LnR4dApAQCAtMCwwICsxLDMgQEAKK215cHk9PTAu
NzUwCitteXB5LWV4dGVuc2lvbnM9PTAuNC4zCit0eXBlZC1hc3Q9PTEuNC4wCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3J1bm5l
ci9pbmRleC5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy9ydW5uZXIvaW5kZXguaHRtbAppbmRleCA2YzlhOGFmZmVkNS4uNTc5NDBkMDJkMGMg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvcnVubmVyL2luZGV4Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy9ydW5uZXIvaW5kZXguaHRtbApAQCAtMSwyNiArMSw0MCBA
QAogPCFET0NUWVBFIGh0bWw+CiA8aHRtbCBsYW5nPWVuPgogPG1ldGEgY2hhcnNldD1VVEYtOD4K
LTx0aXRsZT5XZWIgdGVzdHM8L3RpdGxlPgorPHRpdGxlPndlYi1wbGF0Zm9ybS10ZXN0cyBSdW5u
ZXI8L3RpdGxlPgogPGxpbmsgcmVsPSdzdHlsZXNoZWV0JyBocmVmPSdjc3MvYm9vdHN0cmFwLm1p
bi5jc3MnPgogPGxpbmsgcmVsPSdzdHlsZXNoZWV0JyBocmVmPSdjc3MvYm9vdHN0cmFwLXRoZW1l
Lm1pbi5jc3MnPgogPGxpbmsgcmVsPSdzdHlsZXNoZWV0JyBocmVmPSdydW5uZXIuY3NzJz4KIDxz
Y3JpcHQgc3JjPScvY29tbW9uL2dldC1ob3N0LWluZm8uc3ViLmpzJz48L3NjcmlwdD4KIDxzY3Jp
cHQgc3JjPSdydW5uZXIuanMnPjwvc2NyaXB0PgogCi0KIDxoZWFkZXIgY2xhc3M9Im5hdmJhciBu
YXZiYXItaW52ZXJzZSBuYXZiYXItZml4ZWQtdG9wIj4KICAgPGRpdiBjbGFzcz0iY29udGFpbmVy
Ij4KICAgICA8ZGl2IGNsYXNzPSJuYXZiYXItaGVhZGVyIj4KICAgICAgIDxhIGNsYXNzPSJuYXZi
YXItYnJhbmQiIGhyZWY9IiMiPgotICAgICAgICA8aW1nIHNyYz0nbG9nby5zdmcnIHdpZHRoPSc1
MCcgaGVpZ2h0PSc1MCcgYWx0PSdMb2dvIGZvciB0aGUgV1BUIFJ1bm5lcic+Ci0gICAgICAgIFdl
YiBQbGF0Zm9ybSBUZXN0cyBSdW5uZXIKKyAgICAgICAgPGltZyBzcmM9Jy9pbWFnZXMvd3B0LWxv
Z28vd3B0LWxvZ28tbGlnaHRibHVlLWJnLnN2Zycgd2lkdGg9JzUwJyBoZWlnaHQ9JzUwJyBzdHls
ZT0nYm9yZGVyLXJhZGl1czogNTAlJyBhbHQ9J1dQVCBMb2dvJz4KKyAgICAgICAgd2ViLXBsYXRm
b3JtLXRlc3RzIFJ1bm5lcgogICAgICAgPC9hPgogICAgIDwvZGl2PgogICA8L2Rpdj4KIDwvaGVh
ZGVyPgogCiA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgorICA8ZGl2IGNsYXNzPSJhbGVydCBhbGVy
dC13YXJuaW5nIj4KKyAgICAgICAgVGhpcyBydW5uZXIgZG9lcyBub3QgZnVsbHkgc3VwcG9ydCBh
bGwgdGVzdCB0eXBlcyBhbmQgaGFzIGEgbnVtYmVyIG9mCisgICAgICAgIDxhIGhyZWY9Imh0dHBz
Oi8vZ2l0aHViLmNvbS93ZWItcGxhdGZvcm0tdGVzdHMvd3B0L2xhYmVscy9ydW5uZXIiPmtub3du
IGlzc3VlczwvYT4uCisgICAgICAgIDxzcGFuIGlkPSJydW5uZXItY29udGFjdC1pbmZvIj48L3Nw
YW4+CisgICAgICAgIDxjb2RlPi4vd3B0IHJ1bjwvY29kZT4gaXMgYSBtb3JlIHdlbGwtc3VwcG9y
dGVkIHJ1bm5lciwgc2VlIHRoZSBkb2N1bWVudGF0aW9uIG9uCisgICAgICAgIDxhIGhyZWY9Imh0
dHBzOi8vd2ViLXBsYXRmb3JtLXRlc3RzLm9yZy9ydW5uaW5nLXRlc3RzLyI+cnVubmluZyB0ZXN0
czwvYT4uCisgICAgICAgIDxzY3JpcHQ+CisgICAgICAgIGlmIChsb2NhdGlvbi5ob3N0ID09ICJ3
M2MtdGVzdC5vcmciKSB7CisgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicnVu
bmVyLWNvbnRhY3QtaW5mbyIpCisgICAgICAgICAgICAgICAgLmlubmVySFRNTCA9ICcgSWYgdGhp
cyBydW5uZXIgaXNu4oCZdCB3b3JraW5nLCBjb250YWN0JworICAgICAgICAgICAgICAgICAgICAr
ICcgPGEgaHJlZj0ibWFpbHRvOm1pa2VAdzMub3JnIj5taWtlQHczLm9yZzwvYT4uICcKKyAgICAg
ICAgfQorICAgICAgICA8L3NjcmlwdD4KKyAgPC9kaXY+CisKICAgPGRpdiBpZD0idGVzdENvbnRy
b2wiIGNsYXNzPSJwYW5lbCBwYW5lbC1kZWZhdWx0Ij4KICAgICA8ZGl2IGNsYXNzPSJwYW5lbC1i
b2R5Ij4KICAgICAgIDxmb3JtIGlkPSdvcHRpb25zJyBjbGFzcz0naG9yaXpvbnRhbC1mb3JtJyBv
bnN1Ym1pdD0ncmV0dXJuIGZhbHNlOyc+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3J1bm5lci9sb2dvLnN2ZyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcnVubmVyL2xvZ28uc3Zn
CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4YTI1Nzc2YjZmNC4uMDAwMDAwMDAwMDAK
LS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9y
dW5uZXIvbG9nby5zdmcKKysrIC9kZXYvbnVsbApAQCAtMSw4ICswLDAgQEAKLTxzdmcgd2lkdGg9
IjQ1M3B4IiBoZWlnaHQ9IjQ1M3B4IiB2aWV3Qm94PSIwIDAgNDUzIDQ1MyIgeG1sbnM9Imh0dHA6
Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KLSAgPGNpcmNsZSBzdHJva2U9IiNlZDU1NjUiIHN0cm9r
ZS13aWR0aD0iMjAiIGZpbGw9IiNmZmYiIGN4PSIyMjYuNSIgY3k9IjIyNi41IiByPSIyMTMuNSI+
PC9jaXJjbGU+Ci0gIDxnIHRyYW5zZm9ybT0idHJhbnNsYXRlKDE2MCAyNTApIj4KLSAgICA8ZyB0
cmFuc2Zvcm09Im1hdHJpeCgyLjI1IDAgMCAtMi4yNSAwIDApIj4KLSAgICAgIDxwYXRoIGQ9Im0w
IDBjMC4yNTItMC4zMzMgMC41MDgtMC42NTkgMC43NjYtMC45NzQtMS4yNjktMy43NjQtMi4zNjgt
Ny43NDktMy40NDctMTEuMzgzLTAuMTY2LTAuMDUzLTAuMzI5LTAuMTE2LTAuNDg2LTAuMTk0LTgu
NTcyIDguMjExLTIuMDU2IDExLjM2NCAzLjE2NyAxMi41NTFtNTkuODA5IDQ1LjU3YzIuODk5IDIw
LjExOC0xMC4wODQgMzguNjM1LTI5IDQxLjM2Mi0xOC45MTUgMi43MjYtMzYuNjAxLTExLjM3MS0z
OS41LTMxLjQ4OS0yLjQxOC0xNi43NzQgNi4yMTItMzIuNDI3IDIwLjExMi0zOC43NWwtMC4wNSAw
LjAxNC0wLjMyMy0yLjI0MmMwLjIxOS0wLjA0OSAwLjQyNy0wLjA5IDAuNjQtMC4xMzQtMC4xMjIt
MC4wMjctMC4yNDUtMC4wNTMtMC4zNjUtMC4wODZsLTAuMDA0IDAuMDEzcy0wLjA0Mi0wLjAxNy0w
LjEwNi0wLjA0MmMtMC40NjUtMC4xMzctMC45MTUtMC4zMTktMS4zNDktMC41NDQtMy41MDItMS40
MjQtMTIuMjg1LTUuMDk1LTE0LjI4Ny02Ljg2NyAwIDAgMC45MjctMS42NjUgMi4yNTQtMy43MDQt
MTcuMzM1LTIuNDIxLTYuNTIyLTE1LjYzLTMuMTc2LTE5LjI2LTAuMDE1LTAuMjk2IDAuMDA0LTAu
NTkyIDAuMDM5LTAuODg4LTIuNTYyLTEuNjc3LTUuNzcyLTQuMTk1LTcuNzcyLTcuMjkgMCAwIDAu
NTUyLTAuMTgyIDEuNDU4LTAuNTM2di0wLjAwMWwwLjAxNi0wLjAwNWMxLjE4Mi0wLjQ2MyAyLjk2
LTEuMjE5IDQuOTE0LTIuMjQ4LTMuMDA0LTEzLjU1Ny03LjU0Mi05LjY3Ny0xMC41ODktNC42ODMg
MC43NDUgMi4yMzIgMC43NDEgNC4yMy0wLjIwMiA1LjM5My0wLjY2IDAuODExLTEuNjgxIDEuMTAx
LTIuODg5IDAuOTMxLTAuMDg3IDAuMjIyLTAuMTM1IDAuMzQ5LTAuMTM1IDAuMzQ5bC0wLjEwOC0w
LjM5N2MtMC4wNTctMC4wMS0wLjExNS0wLjAyMS0wLjE3My0wLjAzNCAwLjAwNSAwLjAwMyAwLjAw
OCAwLjAwNSAwLjAxMyAwLjAwOCAwIDAtMC4wMzItMC4wMDgtMC4wNzgtMC4wMjEtMC41MDgtMC4x
MTYtMS4wNDItMC4zMDYtMS41OTMtMC41NjYtMi43NTktMS4xNTgtOC4wMjMtNC4yNDgtOC42Mzkt
MTEuMDg4LTAuMjA4LTEuMDU2LTAuMjEyLTIuMDE1IDAuMDAyLTIuODEyIDAuMDAxLTAuMDE0IDAu
MDAxLTAuMDI2IDAuMDAzLTAuMDQgMCAwIDAuNTI3LTQuNTYxIDQuMjg4LTEuODk0bC0wLjAwMiAw
LjAwM2MxLjg2MSAwLjUzNiA0LjAzNCAyLjAwMyA1Ljk4OSA0LjIyNiAwLjY2NCAwLjc1NSAxLjI1
NiAxLjU0NSAxLjc2OCAyLjM0MyA4LjUzNy0xNi43NjggMTQuOTc0IDMuNDA5IDE1LjgxIDYuMjMg
Mi4zMDktMS41MzggNC41MjgtMy40MjUgNi4wMTktNS42NCAwIDAgMS4xODIgMy40NTggMy45NDIg
Ni4zMTIgNS45ODQtOC45NTYgMTMuMzc0LTEwLjQ2NSAxMy4zNzQtMTAuNDY1bDMuODAyIDYuMTUy
YzExLjMyOC01LjU2OSA3LjM4Mi0xMC4zODUgMi43MTMtMTMuMjUzLTEuNzU3IDEuMTk4LTMuNDI4
IDEuNDg1LTQuNTM3IDAuNTUtMC43NzUtMC42NTMtMS4xNjYtMS44MDctMS4yLTMuMjQ2LTAuMTk5
LTAuMDY5LTAuMzEyLTAuMTA2LTAuMzEyLTAuMTA2bDAuMzE2LTAuMTg1YzAuMDAxLTAuMDY5IDAu
MDAyLTAuMTM5IDAuMDA0LTAuMjEtMC4wMDIgMC4wMDYtMC4wMDQgMC4wMTItMC4wMDYgMC4wMTkg
MCAwIDAuMDAzLTAuMDQ0IDAuMDA3LTAuMTEyIDAuMDI0LTAuNjA0IDAuMTA0LTEuMjQ3IDAuMjM5
LTEuOTIgMC41NjQtMy4zOTUgMi4zNzgtMTAuMDE5IDguMDEzLTExLjc0MSAwLjg1MS0wLjM5NiAx
LjY1Mi0wLjU0MiAyLjM0OS0wLjQwNyAwLjAxMiAwIDAuMDIzLTAuMDAzIDAuMDM1LTAuMDAzIDAg
MCAzLjg5MS0wLjA0OCAyLjIxIDQuNzQ1bC0wLjAwNC0wLjAwNGMtMC4xNzYgMi4yNTgtMS4wODYg
NS4wMTUtMi42NTkgNy42MjgtMC41MzUgMC44ODgtMS4xMDkgMS42OTUtMS43MDEgMi40MTMgMTYu
Mzc0IDguMDk1LTMuMTUgMTkuNTY3LTMuMTU2IDE5LjU3bDIuMDYyIDMuMzM2LTQuNTg0IDEuMDI4
Yy0wLjUxNiAwLjExNi0xLjQ0NiAwLjQ1OC0yLjYzOSAwLjk0OSAwLjYxLTAuMTE2IDEuMjE4LTAu
MjI1IDEuODIxLTAuMzIyIDAuMjIxIDAuNjE1IDAuNDMyIDEuMjQ5IDAuNjMxIDEuOTE4IDEuNzE1
IDUuNzY2IDIuMzQgMTIuNTc3IDEuODAzIDE4Ljc2bDEuNTQ0LTMuNjAxczAuNjU1IDAuNDA0IDEu
NjEyIDAuODI3bC0wLjA4OC0wLjE2N2MzLjgzMi0yNi45MDYgMTQuNjMxLTEwLjY2NiAxNy40MDct
NS45MjQgMS40NDUgMC4xMjUgMi44MTkgMS4yNyAzLjQ0OCAzLjA3NCAwLjg2NCAyLjQ3NSAwLjAw
MiA1LjI0Mi0xLjkyNiA2LjE4My0xLjkyNyAwLjk0Mi00LjE4OC0wLjMwMS01LjA1LTIuNzc0LTAu
NTMzLTEuNTI0LTAuNDA2LTMuMTU4IDAuMjE4LTQuNDEtNi42Ny0xMy4wNDQtMTAuMzYtMS4wMTYt
MTEuNjQ3IDQuODEgMC42NjkgMC4xNDMgMS4zNTUgMC4yMSAxLjk5OCAwLjEzNSAwIDAtNC4xODUg
MTEuMjM0LTExLjc0MyAxNS42MTgtMC4wOTcgMC4xMzYtMC4xOTIgMC4yNzUtMC4yOTEgMC40MDUt
MC4wNTYtMC4wMTctMC4xMTYtMC4wMjktMC4xNzQtMC4wNDRsMC4zNDUgMi44MzJjMC41NjcgMC4w
NDYgMC44NzEgMC4wOTkgMC44NzEgMC4wOTlsMC4wMjEgMC4xNDYtMC42NSAwLjE4MWMxOC41NzIt
Mi4xNTggMzUuNzQ0IDExLjc5NyAzOC41OTcgMzEuNTkzIiBmaWxsPSIjZWQ1NTY1Ii8+Ci0gICAg
PC9nPgotICA8L2c+Ci08L3N2Zz4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcnVubmVyL3JlcG9ydC5weSBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcnVubmVyL3JlcG9ydC5weQpp
bmRleCA5NTJkZjA4YjgwNS4uNWViOGQ2N2M3ZjYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcnVubmVyL3JlcG9ydC5weQorKysg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3J1bm5l
ci9yZXBvcnQucHkKQEAgLTE2MCw3ICsxNjAsNyBAQCBkZWYgYWxsX3Rlc3RzKGRhdGEpOgogICAg
IGZvciBVQSwgcmVzdWx0cyBpbiBkYXRhLml0ZXJpdGVtcygpOgogICAgICAgICBmb3IgcmVzdWx0
IGluIHJlc3VsdHNbInJlc3VsdHMiXToKICAgICAgICAgICAgIGlkID0gdGVzdF9pZChyZXN1bHRb
InRlc3QiXSkKLSAgICAgICAgICAgIHRlc3RzW2lkXSB8PSBzZXQoc3VidGVzdFsibmFtZSJdIGZv
ciBzdWJ0ZXN0IGluIHJlc3VsdFsic3VidGVzdHMiXSkKKyAgICAgICAgICAgIHRlc3RzW2lkXSB8
PSB7c3VidGVzdFsibmFtZSJdIGZvciBzdWJ0ZXN0IGluIHJlc3VsdFsic3VidGVzdHMiXX0KICAg
ICByZXR1cm4gdGVzdHMKIAogCkBAIC0xNzksNyArMTc5LDcgQEAgZGVmIGdyb3VwX3Jlc3VsdHMo
ZGF0YSk6CiAKICAgICBkZWYgcmVzdWx0KCk6CiAgICAgICAgIHJldHVybiB7Ci0gICAgICAgICAg
ICAiaGFybmVzcyI6IGRpY3QoKFVBLCAoTm9uZSwgTm9uZSkpIGZvciBVQSBpbiBVQXMpLAorICAg
ICAgICAgICAgImhhcm5lc3MiOiB7VUE6IChOb25lLCBOb25lKSBmb3IgVUEgaW4gVUFzfSwKICAg
ICAgICAgICAgICJzdWJ0ZXN0cyI6IE5vbmUgICMgaW5pdCB0aGlzIGxhdGVyCiAgICAgICAgIH0K
IApAQCAtMTkxLDkgKzE5MSw5IEBAIGRlZiBncm91cF9yZXN1bHRzKGRhdGEpOgogICAgICAgICAg
ICAgcmVzdWx0ID0gcmVzdWx0c19ieV90ZXN0W2lkXQogCiAgICAgICAgICAgICBpZiByZXN1bHRb
InN1YnRlc3RzIl0gaXMgTm9uZToKLSAgICAgICAgICAgICAgICByZXN1bHRbInN1YnRlc3RzIl0g
PSBkaWN0KAotICAgICAgICAgICAgICAgICAgICAobmFtZSwgZGljdCgoVUEsIChOb25lLCBOb25l
KSkgZm9yIFVBIGluIFVBcykpIGZvciBuYW1lIGluIHRlc3RzW2lkXQotICAgICAgICAgICAgICAg
ICkKKyAgICAgICAgICAgICAgICByZXN1bHRbInN1YnRlc3RzIl0gPSB7CisgICAgICAgICAgICAg
ICAgICAgIG5hbWU6IHtVQTogKE5vbmUsIE5vbmUpIGZvciBVQSBpbiBVQXN9IGZvciBuYW1lIGlu
IHRlc3RzW2lkXQorICAgICAgICAgICAgICAgIH0KIAogICAgICAgICAgICAgcmVzdWx0WyJoYXJu
ZXNzIl1bVUFdID0gKHRlc3RfZGF0YVsic3RhdHVzIl0sIHRlc3RfZGF0YVsibWVzc2FnZSJdKQog
ICAgICAgICAgICAgZm9yIHN1YnRlc3QgaW4gdGVzdF9kYXRhWyJzdWJ0ZXN0cyJdOgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9y
dW5uZXIvcnVubmVyLmNzcyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvcnVubmVyL3J1bm5lci5jc3MKaW5kZXggODU0NjAxNzdlYTEuLmVjNzJhY2I4
M2U3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3J1bm5lci9ydW5uZXIuY3NzCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcnVubmVyL3J1bm5lci5jc3MKQEAgLTUyLDcgKzUy
LDYgQEAgc2VjdGlvbiBvbCB7CiB9CiAKIGh0bWwuZG9uZSBzZWN0aW9uIG9sIHsKLSAgICAtbW96
LWNvbHVtbi1jb3VudDogMzsKICAgICAtd2Via2l0LWNvbHVtbi1jb3VudDogMzsKICAgICBjb2x1
bW4tY291bnQ6IDM7CiB9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3J1bm5lci9ydW5uZXIuanMgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3J1bm5lci9ydW5uZXIuanMKaW5kZXgg
ZWYwYjZhNDQ5ZDYuLmRhYWY5ZDQ1ZGE1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3J1bm5lci9ydW5uZXIuanMKKysrIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9ydW5uZXIvcnVu
bmVyLmpzCkBAIC0xNTMsMTMgKzE1MywyMiBAQCBNYW5pZmVzdEl0ZXJhdG9yLnByb3RvdHlwZSA9
IHsKICAgICB9LAogCiAgICAgbWF0Y2hlczogZnVuY3Rpb24obWFuaWZlc3RfaXRlbSkgewotICAg
ICAgICByZXR1cm4gdGhpcy5tYXRjaF9sb2NhdGlvbihtYW5pZmVzdF9pdGVtLnVybCkgIT09IG51
bGw7CisgICAgICAgIHZhciB1cmxfYmFzZSA9IHRoaXMubWFuaWZlc3QuZGF0YS51cmxfYmFzZTsK
KyAgICAgICAgaWYgKHVybF9iYXNlLmNoYXJBdCh1cmxfYmFzZS5sZW5ndGggLSAxKSAhPT0gIi8i
KSB7CisgICAgICAgICAgICB1cmxfYmFzZSA9IHVybF9iYXNlICsgIi8iOworICAgICAgICB9Cisg
ICAgICAgIHZhciB1cmwgPSB1cmxfYmFzZSArIG1hbmlmZXN0X2l0ZW0udXJsOworICAgICAgICBy
ZXR1cm4gdGhpcy5tYXRjaF9sb2NhdGlvbih1cmwpICE9PSBudWxsOwogICAgIH0sCiAKICAgICB0
b190ZXN0OiBmdW5jdGlvbihtYW5pZmVzdF9pdGVtKSB7CisgICAgICAgIHZhciB1cmxfYmFzZSA9
IHRoaXMubWFuaWZlc3QuZGF0YS51cmxfYmFzZTsKKyAgICAgICAgaWYgKHVybF9iYXNlLmNoYXJB
dCh1cmxfYmFzZS5sZW5ndGggLSAxKSAhPT0gIi8iKSB7CisgICAgICAgICAgICB1cmxfYmFzZSA9
IHVybF9iYXNlICsgIi8iOworICAgICAgICB9CiAgICAgICAgIHZhciB0ZXN0ID0gewogICAgICAg
ICAgICAgdHlwZTogdGhpcy50ZXN0X3R5cGVzW3RoaXMudGVzdF90eXBlc19pbmRleF0sCi0gICAg
ICAgICAgICB1cmw6IG1hbmlmZXN0X2l0ZW0udXJsCisgICAgICAgICAgICB1cmw6IHVybF9iYXNl
ICsgbWFuaWZlc3RfaXRlbS51cmwKICAgICAgICAgfTsKICAgICAgICAgaWYgKG1hbmlmZXN0X2l0
ZW0uaGFzT3duUHJvcGVydHkoInJlZmVyZW5jZXMiKSkgewogICAgICAgICAgICAgdGVzdC5yZWZf
bGVuZ3RoID0gbWFuaWZlc3RfaXRlbS5yZWZlcmVuY2VzLmxlbmd0aDsKQEAgLTYzOCw4ICs2NDcs
OSBAQCBSZXN1bHRzLnByb3RvdHlwZSA9IHsKICAgICB9LAogCiAgICAgdG9fanNvbjogZnVuY3Rp
b24oKSB7CisgICAgICAgIHZhciB0ZXN0X3Jlc3VsdHMgPSB0aGlzLnRlc3RfcmVzdWx0cyB8fCBb
XTsKICAgICAgICAgdmFyIGRhdGEgPSB7Ci0gICAgICAgICAgICAicmVzdWx0cyI6IHRoaXMudGVz
dF9yZXN1bHRzLm1hcChmdW5jdGlvbihyZXN1bHQpIHsKKyAgICAgICAgICAgICJyZXN1bHRzIjog
dGVzdF9yZXN1bHRzLm1hcChmdW5jdGlvbihyZXN1bHQpIHsKICAgICAgICAgICAgICAgICB2YXIg
cnYgPSB7InRlc3QiOihyZXN1bHQudGVzdC5oYXNPd25Qcm9wZXJ0eSgicmVmX3VybCIpID8KICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbcmVzdWx0LnRlc3QudXJsLCByZXN1bHQu
dGVzdC5yZWZfdHlwZSwgcmVzdWx0LnRlc3QucmVmX3VybF0gOgogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHJlc3VsdC50ZXN0LnVybCksCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3J1bm5lci93M2MtaW1wb3J0
LmxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
cnVubmVyL3czYy1pbXBvcnQubG9nCmluZGV4IDc3ZGJiNjEyN2UzLi4zNDRiMmE1NzUxYyAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy9ydW5uZXIvdzNjLWltcG9ydC5sb2cKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy9ydW5uZXIvdzNjLWltcG9ydC5sb2cKQEAgLTE1LDcgKzE1
LDYgQEAgTm9uZQogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiBMaXN0IG9mIGZpbGVzOgogL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcnVubmVyL2luZGV4Lmh0bWwK
LS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3J1bm5l
ci9sb2dvLnN2ZwogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvcnVubmVyL3JlcG9ydC5jc3MKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3J1bm5lci9yZXBvcnQucHkKIC9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3J1bm5lci9ydW5uZXIuY3NzCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3Nj
cmlwdHMvbWFuaWZlc3QuanMgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3NjcmlwdHMvbWFuaWZlc3QuanMKaW5kZXggZmJkNTU2ODI1OTAuLmE5ZTM3
MTdhYjU2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3NjcmlwdHMvbWFuaWZlc3QuanMKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9zY3JpcHRzL21hbmlmZXN0LmpzCkBAIC0y
LDExOSArMiwxMTkgQEAKIGZ1bmN0aW9uIF9fcmVzdWx0X2hhbmRsZXIoKSB7CiAKICAgICBmdW5j
dGlvbiBfX2dldF9tZXRhZGF0YSgpIHsKLQl2YXIgb2JqID0gbmV3IE9iamVjdCgpOwotCXZhciBh
dXRob3IgPSBbXTsKLQl2YXIgYXNzZXJ0ID0gW107Ci0JdmFyIGhlbHAgPSBbXTsKLQl2YXIgbWF0
Y2ggPSBbXTsKLQl2YXIgbWlzbWF0Y2ggPSBbXTsKLQl2YXIgZmxhZ3MgPSBbXTsKLQl2YXIgbm9k
ZXM7Ci0KLQlub2RlcyA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ2xpbmtbcmVsPSJhdXRo
b3IiXScpOwotCWZvciAodmFyIGkgPSAwOyBpIDwgbm9kZXMubGVuZ3RoOyBpKyspIHsKLQkgICAg
dmFyIGhyZWYgPSBub2Rlc1tpXS5nZXRBdHRyaWJ1dGUoImhyZWYiKTsKLQkgICAgdmFyIHRpdGxl
ID0gbm9kZXNbaV0uZ2V0QXR0cmlidXRlKCJ0aXRsZSIpOwotCSAgICB2YXIgcyA9IHRpdGxlOwot
CSAgICBpZiAoaHJlZiAhPSBudWxsKSB7Ci0JCXMgKz0gIiA8IiArIGhyZWYgKyAiPiI7Ci0JICAg
IH0KLQkgICAgYXV0aG9yLnB1c2gocyk7Ci0JfQotCWlmIChub2Rlcy5sZW5ndGggPiAwKSBvYmou
YXV0aG9yID0gYXV0aG9yOwotCW5vZGVzID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnbWV0
YVtuYW1lPSJhc3NlcnQiXScpOwotCWZvciAodmFyIGkgPSAwOyBpIDwgbm9kZXMubGVuZ3RoOyBp
KyspIHsKLQkgICAgYXNzZXJ0LnB1c2gobm9kZXNbaV0uZ2V0QXR0cmlidXRlKCJjb250ZW50Iikp
OwotCX0KLQlpZiAobm9kZXMubGVuZ3RoID4gMCkgb2JqLmFzc2VydCA9IGFzc2VydDsKLQlub2Rl
cyA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ2xpbmtbcmVsPSJoZWxwIl0nKTsKLQlmb3Ig
KHZhciBpID0gMDsgaSA8IG5vZGVzLmxlbmd0aDsgaSsrKSB7Ci0JICAgIGhlbHAucHVzaChub2Rl
c1tpXS5nZXRBdHRyaWJ1dGUoImhyZWYiKSk7Ci0JfQotCWlmIChub2Rlcy5sZW5ndGggPiAwKSBv
YmouaGVscCA9IGhlbHA7Ci0Jbm9kZXMgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCdsaW5r
W3JlbD0ibWF0Y2giXScpOwotCWZvciAodmFyIGkgPSAwOyBpIDwgbm9kZXMubGVuZ3RoOyBpKysp
IHsKLQkgICAgbWF0Y2gucHVzaChub2Rlc1tpXS5nZXRBdHRyaWJ1dGUoImhyZWYiKSk7Ci0JfQot
CWlmIChub2Rlcy5sZW5ndGggPiAwKSBvYmoubWF0Y2ggPSBtYXRjaDsKLQlub2RlcyA9IGRvY3Vt
ZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ2xpbmtbcmVsPSJtaXNtYXRjaCJdJyk7Ci0JZm9yICh2YXIg
aSA9IDA7IGkgPCBub2Rlcy5sZW5ndGg7IGkrKykgewotCSAgICBtaXNtYXRjaC5wdXNoKG5vZGVz
W2ldLmdldEF0dHJpYnV0ZSgiaHJlZiIpKTsKLQl9Ci0JaWYgKG5vZGVzLmxlbmd0aCA+IDApIG9i
ai5tYXRjaCA9IG1pc21hdGNoOwotCW5vZGVzID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgn
bWV0YVtuYW1lPSJmbGFncyJdJyk7Ci0JZm9yICh2YXIgaSA9IDA7IGkgPCBub2Rlcy5sZW5ndGg7
IGkrKykgewotCSAgICBmbGFncy5wdXNoKG5vZGVzW2ldLmdldEF0dHJpYnV0ZSgiY29udGVudCIp
KTsKLQl9Ci0JaWYgKG5vZGVzLmxlbmd0aCA+IDApIG9iai5mbGFncyA9IGZsYWdzOwotCi0JcmV0
dXJuIG9iajsKKyAgICAgICAgdmFyIG9iaiA9IG5ldyBPYmplY3QoKTsKKyAgICAgICAgdmFyIGF1
dGhvciA9IFtdOworICAgICAgICB2YXIgYXNzZXJ0ID0gW107CisgICAgICAgIHZhciBoZWxwID0g
W107CisgICAgICAgIHZhciBtYXRjaCA9IFtdOworICAgICAgICB2YXIgbWlzbWF0Y2ggPSBbXTsK
KyAgICAgICAgdmFyIGZsYWdzID0gW107CisgICAgICAgIHZhciBub2RlczsKKworICAgICAgICBu
b2RlcyA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ2xpbmtbcmVsPSJhdXRob3IiXScpOwor
ICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IG5vZGVzLmxlbmd0aDsgaSsrKSB7CisgICAgICAg
ICAgICB2YXIgaHJlZiA9IG5vZGVzW2ldLmdldEF0dHJpYnV0ZSgiaHJlZiIpOworICAgICAgICAg
ICAgdmFyIHRpdGxlID0gbm9kZXNbaV0uZ2V0QXR0cmlidXRlKCJ0aXRsZSIpOworICAgICAgICAg
ICAgdmFyIHMgPSB0aXRsZTsKKyAgICAgICAgICAgIGlmIChocmVmICE9IG51bGwpIHsKKyAgICAg
ICAgICAgICAgICBzICs9ICIgPCIgKyBocmVmICsgIj4iOworICAgICAgICAgICAgfQorICAgICAg
ICAgICAgYXV0aG9yLnB1c2gocyk7CisgICAgICAgIH0KKyAgICAgICAgaWYgKG5vZGVzLmxlbmd0
aCA+IDApIG9iai5hdXRob3IgPSBhdXRob3I7CisgICAgICAgIG5vZGVzID0gZG9jdW1lbnQucXVl
cnlTZWxlY3RvckFsbCgnbWV0YVtuYW1lPSJhc3NlcnQiXScpOworICAgICAgICBmb3IgKHZhciBp
ID0gMDsgaSA8IG5vZGVzLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICBhc3NlcnQucHVzaChu
b2Rlc1tpXS5nZXRBdHRyaWJ1dGUoImNvbnRlbnQiKSk7CisgICAgICAgIH0KKyAgICAgICAgaWYg
KG5vZGVzLmxlbmd0aCA+IDApIG9iai5hc3NlcnQgPSBhc3NlcnQ7CisgICAgICAgIG5vZGVzID0g
ZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnbGlua1tyZWw9ImhlbHAiXScpOworICAgICAgICBm
b3IgKHZhciBpID0gMDsgaSA8IG5vZGVzLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICBoZWxw
LnB1c2gobm9kZXNbaV0uZ2V0QXR0cmlidXRlKCJocmVmIikpOworICAgICAgICB9CisgICAgICAg
IGlmIChub2Rlcy5sZW5ndGggPiAwKSBvYmouaGVscCA9IGhlbHA7CisgICAgICAgIG5vZGVzID0g
ZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnbGlua1tyZWw9Im1hdGNoIl0nKTsKKyAgICAgICAg
Zm9yICh2YXIgaSA9IDA7IGkgPCBub2Rlcy5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgbWF0
Y2gucHVzaChub2Rlc1tpXS5nZXRBdHRyaWJ1dGUoImhyZWYiKSk7CisgICAgICAgIH0KKyAgICAg
ICAgaWYgKG5vZGVzLmxlbmd0aCA+IDApIG9iai5tYXRjaCA9IG1hdGNoOworICAgICAgICBub2Rl
cyA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ2xpbmtbcmVsPSJtaXNtYXRjaCJdJyk7Cisg
ICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbm9kZXMubGVuZ3RoOyBpKyspIHsKKyAgICAgICAg
ICAgIG1pc21hdGNoLnB1c2gobm9kZXNbaV0uZ2V0QXR0cmlidXRlKCJocmVmIikpOworICAgICAg
ICB9CisgICAgICAgIGlmIChub2Rlcy5sZW5ndGggPiAwKSBvYmoubWF0Y2ggPSBtaXNtYXRjaDsK
KyAgICAgICAgbm9kZXMgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCdtZXRhW25hbWU9ImZs
YWdzIl0nKTsKKyAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBub2Rlcy5sZW5ndGg7IGkrKykg
eworICAgICAgICAgICAgZmxhZ3MucHVzaChub2Rlc1tpXS5nZXRBdHRyaWJ1dGUoImNvbnRlbnQi
KSk7CisgICAgICAgIH0KKyAgICAgICAgaWYgKG5vZGVzLmxlbmd0aCA+IDApIG9iai5mbGFncyA9
IGZsYWdzOworCisgICAgICAgIHJldHVybiBvYmo7CiAgICAgfQogCiAgICAgdmFyIG1ldGEgPSBf
X2dldF9tZXRhZGF0YSgpOwogICAgIHZhciBub2RlczsKIAogICAgIGZ1bmN0aW9uIGNvcHkob2Jq
LCBwcm9wLCBhcnIpIHsKLQlpZiAodHlwZW9mIGFyciAhPT0gInVuZGVmaW5lZCIpIHsKLQkgICAg
dmFyIGEgPSBbXTsKLQkgICAgZm9yICh2YXIgaSA9IDA7IGk8YXJyLmxlbmd0aDtpKyspIHsKLQkJ
YVtpXSA9IGFycltpXTsKLQkgICAgfQkKLQkgICAgb2JqW3Byb3BdID0gYTsKLQl9CisgICAgICAg
IGlmICh0eXBlb2YgYXJyICE9PSAidW5kZWZpbmVkIikgeworICAgICAgICAgICAgdmFyIGEgPSBb
XTsKKyAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpPGFyci5sZW5ndGg7aSsrKSB7CisgICAg
ICAgICAgICAgICAgYVtpXSA9IGFycltpXTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIG9i
altwcm9wXSA9IGE7CisgICAgICAgIH0KICAgICB9CiAKIAogICAgIHZhciByZXQgPSBuZXcgT2Jq
ZWN0KCk7CiAgICAgcmV0LmxvY2F0aW9uID0gZG9jdW1lbnQubG9jYXRpb24uaHJlZjsKLSAgICBy
ZXQudHlwZSAgPSAibWFudWFsIjsgICAgCisgICAgcmV0LnR5cGUgID0gIm1hbnVhbCI7CiAgICAg
cmV0LnRlc3RzID0gbmV3IE9iamVjdCgpOwogCiAgICAgdmFyIG5vZGUgPSBkb2N1bWVudC5xdWVy
eVNlbGVjdG9yKCdzY3JpcHRbc3JjJD0iL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyJdJyk7CiAg
ICAgaWYgKG5vZGUgIT09IG51bGwpIHsKLQlyZXQudHlwZSA9ICJzY3JpcHQiOworICAgICAgICBy
ZXQudHlwZSA9ICJzY3JpcHQiOwogICAgIH0KIAogICAgIGlmIChyZXQudHlwZSA9PT0gInNjcmlw
dCIpIHsKLQlpZiAodHlwZW9mIG1ldGFkYXRhX2dlbmVyYXRvciA9PT0gInVuZGVmaW5lZCIKLQkg
ICAgfHwgT2JqZWN0LmtleXMobWV0YWRhdGFfZ2VuZXJhdG9yLmN1cnJlbnRNZXRhZGF0YSkubGVu
Z3RoID09PSAwKQotCSAgICByZXR1cm4gIldSQVBQRVI6VFJZX0FHQUlOIjsKLQllbHNlIHsKLQkg
ICAgZm9yICh2YXIga2V5IGluIG1ldGFkYXRhX2dlbmVyYXRvci5jdXJyZW50TWV0YWRhdGEpIHsK
LQkJdmFyIG9iaiA9IG1ldGFkYXRhX2dlbmVyYXRvci5jdXJyZW50TWV0YWRhdGFba2V5XTsKLQkJ
dmFyIG5ld3Rlc3QgPSBuZXcgT2JqZWN0KCk7Ci0JCXJldC50ZXN0c1trZXldPSBuZXd0ZXN0Owot
CQlpZiAodHlwZW9mIG9iai5oZWxwID09PSAidW5kZWZpbmVkIikgewotCQkgICAgY29weShuZXd0
ZXN0LCAiaGVscCIsIG1ldGEuaGVscCk7Ci0JCX0gZWxzZSBpZiAodHlwZW9mIG9iai5oZWxwID09
PSAic3RyaW5nIikgewotCQkgICAgbmV3dGVzdC5oZWxwID0gWyBvYmouaGVscCBdOwkgIAotCQl9
Ci0JCWlmICh0eXBlb2Ygb2JqLmF1dGhvciA9PT0gInVuZGVmaW5lZCIpIHsKLQkJICAgIGNvcHko
bmV3dGVzdCwgImF1dGhvciIsIG1ldGEuYXV0aG9yKTsKLQkJfSBlbHNlIGlmICh0eXBlb2Ygb2Jq
LmF1dGhvciA9PT0gInN0cmluZyIpIHsKLQkJICAgIG5ld3Rlc3QuYXV0aG9yID0gWyBvYmouYXV0
aG9yIF07CSAgCi0JCX0KLQkJaWYgKHR5cGVvZiBvYmouYXNzZXJ0ID09PSAidW5kZWZpbmVkIikg
ewotCQkgICAgY29weShuZXd0ZXN0LCAiYXNzZXJ0IiwgbWV0YS5hc3NlcnQpOwotCQl9IGVsc2Ug
aWYgKHR5cGVvZiBvYmouYXNzZXJ0ID09PSAic3RyaW5nIikgewotCQkgICAgbmV3dGVzdC5hc3Nl
cnQgPSBbIG9iai5hc3NlcnQgXTsJICAKLQkJfQotCQljb3B5KG5ld3Rlc3QsICJtYXRjaCIsIG1l
dGEubWF0Y2gpOwotCQljb3B5KG5ld3Rlc3QsICJtaXNtYXRjaCIsIG1ldGEubWlzbWF0Y2gpOwot
CQljb3B5KG5ld3Rlc3QsICJmbGFncyIsIG1ldGEuZmxhZ3MpOwotCSAgICB9Ci0JICAgIHJldHVy
biByZXQ7Ci0JfQorICAgICAgICBpZiAodHlwZW9mIG1ldGFkYXRhX2dlbmVyYXRvciA9PT0gInVu
ZGVmaW5lZCIKKyAgICAgICAgICAgIHx8IE9iamVjdC5rZXlzKG1ldGFkYXRhX2dlbmVyYXRvci5j
dXJyZW50TWV0YWRhdGEpLmxlbmd0aCA9PT0gMCkKKyAgICAgICAgICAgIHJldHVybiAiV1JBUFBF
UjpUUllfQUdBSU4iOworICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIGZvciAodmFyIGtleSBp
biBtZXRhZGF0YV9nZW5lcmF0b3IuY3VycmVudE1ldGFkYXRhKSB7CisgICAgICAgICAgICAgICAg
dmFyIG9iaiA9IG1ldGFkYXRhX2dlbmVyYXRvci5jdXJyZW50TWV0YWRhdGFba2V5XTsKKyAgICAg
ICAgICAgICAgICB2YXIgbmV3dGVzdCA9IG5ldyBPYmplY3QoKTsKKyAgICAgICAgICAgICAgICBy
ZXQudGVzdHNba2V5XT0gbmV3dGVzdDsKKyAgICAgICAgICAgICAgICBpZiAodHlwZW9mIG9iai5o
ZWxwID09PSAidW5kZWZpbmVkIikgeworICAgICAgICAgICAgICAgICAgICBjb3B5KG5ld3Rlc3Qs
ICJoZWxwIiwgbWV0YS5oZWxwKTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHR5cGVvZiBv
YmouaGVscCA9PT0gInN0cmluZyIpIHsKKyAgICAgICAgICAgICAgICAgICAgbmV3dGVzdC5oZWxw
ID0gWyBvYmouaGVscCBdOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpZiAo
dHlwZW9mIG9iai5hdXRob3IgPT09ICJ1bmRlZmluZWQiKSB7CisgICAgICAgICAgICAgICAgICAg
IGNvcHkobmV3dGVzdCwgImF1dGhvciIsIG1ldGEuYXV0aG9yKTsKKyAgICAgICAgICAgICAgICB9
IGVsc2UgaWYgKHR5cGVvZiBvYmouYXV0aG9yID09PSAic3RyaW5nIikgeworICAgICAgICAgICAg
ICAgICAgICBuZXd0ZXN0LmF1dGhvciA9IFsgb2JqLmF1dGhvciBdOworICAgICAgICAgICAgICAg
IH0KKyAgICAgICAgICAgICAgICBpZiAodHlwZW9mIG9iai5hc3NlcnQgPT09ICJ1bmRlZmluZWQi
KSB7CisgICAgICAgICAgICAgICAgICAgIGNvcHkobmV3dGVzdCwgImFzc2VydCIsIG1ldGEuYXNz
ZXJ0KTsKKyAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHR5cGVvZiBvYmouYXNzZXJ0ID09PSAi
c3RyaW5nIikgeworICAgICAgICAgICAgICAgICAgICBuZXd0ZXN0LmFzc2VydCA9IFsgb2JqLmFz
c2VydCBdOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBjb3B5KG5ld3Rlc3Qs
ICJtYXRjaCIsIG1ldGEubWF0Y2gpOworICAgICAgICAgICAgICAgIGNvcHkobmV3dGVzdCwgIm1p
c21hdGNoIiwgbWV0YS5taXNtYXRjaCk7CisgICAgICAgICAgICAgICAgY29weShuZXd0ZXN0LCAi
ZmxhZ3MiLCBtZXRhLmZsYWdzKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldHVybiBy
ZXQ7CisgICAgICAgIH0KICAgICB9IGVsc2UgewotCXZhciBuZXd0ZXN0ID0gbWV0YTsKLQlyZXQu
dGVzdHNbZG9jdW1lbnQudGl0bGVdPSBuZXd0ZXN0OwkKKyAgICAgICAgdmFyIG5ld3Rlc3QgPSBt
ZXRhOworICAgICAgICByZXQudGVzdHNbZG9jdW1lbnQudGl0bGVdPSBuZXd0ZXN0OwogCi0JaWYg
KHR5cGVvZiBuZXd0ZXN0Lm1hdGNoICE9PSAidW5kZWZpbmVkIgotCSAgICB8fCB0eXBlb2YgbmV3
dGVzdC5taXNtYXRjaCAhPT0gInVuZGVmaW5lZCIpIHsKLQkgICAgcmV0LnR5cGUgPSAicmVmdGVz
dCI7Ci0JfQorICAgICAgICBpZiAodHlwZW9mIG5ld3Rlc3QubWF0Y2ggIT09ICJ1bmRlZmluZWQi
CisgICAgICAgICAgICB8fCB0eXBlb2YgbmV3dGVzdC5taXNtYXRjaCAhPT0gInVuZGVmaW5lZCIp
IHsKKyAgICAgICAgICAgIHJldC50eXBlID0gInJlZnRlc3QiOworICAgICAgICB9CiAKLQlyZXR1
cm4gcmV0OworICAgICAgICByZXR1cm4gcmV0OwogICAgIH0KIAogfQpAQCAtMTIyLDE5ICsxMjIs
MTkgQEAgZnVuY3Rpb24gX19yZXN1bHRfaGFuZGxlcigpIHsKIGZ1bmN0aW9uIF9fZ2l2ZV91cCgp
IHsKICAgICB2YXIgcmV0ID0gbmV3IE9iamVjdCgpOwogICAgIHJldC5sb2NhdGlvbiA9IGRvY3Vt
ZW50LmxvY2F0aW9uLmhyZWY7Ci0gICAgcmV0LnR5cGUgID0gIm1hbnVhbCI7ICAgIAorICAgIHJl
dC50eXBlICA9ICJtYW51YWwiOwogICAgIHJldC50ZXN0cyA9IG5ldyBPYmplY3QoKTsKIAogICAg
IHZhciBub2RlID0gZG9jdW1lbnQucXVlcnlTZWxlY3Rvcignc2NyaXB0W3NyYyQ9Ii9yZXNvdXJj
ZXMvdGVzdGhhcm5lc3MuanMiXScpOwogICAgIGlmIChub2RlICE9PSBudWxsKSB7Ci0JcmV0LnR5
cGUgPSAic2NyaXB0IjsKKyAgICAgICAgcmV0LnR5cGUgPSAic2NyaXB0IjsKICAgICB9IGVsc2Ug
aWYgKHR5cGVvZiBuZXd0ZXN0Lm1hdGNoICE9PSAidW5kZWZpbmVkIgotCSAgICAgICB8fCB0eXBl
b2YgbmV3dGVzdC5taXNtYXRjaCAhPT0gInVuZGVmaW5lZCIpIHsKLQlyZXQudHlwZSA9ICJyZWZ0
ZXN0IjsKKyAgICAgICAgICAgICAgIHx8IHR5cGVvZiBuZXd0ZXN0Lm1pc21hdGNoICE9PSAidW5k
ZWZpbmVkIikgeworICAgICAgICByZXQudHlwZSA9ICJyZWZ0ZXN0IjsKICAgICB9CiAKICAgICB2
YXIgbmV3dGVzdCA9IF9fZ2V0X21ldGFkYXRhKCk7Ci0gICAgcmV0LnRlc3RzW2RvY3VtZW50LnRp
dGxlXT0gbmV3dGVzdDsJCi0gICAgCisgICAgcmV0LnRlc3RzW2RvY3VtZW50LnRpdGxlXT0gbmV3
dGVzdDsKKwogICAgIHJldHVybiByZXQ7CiB9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3NjcmlwdHMvdG9jLmpzIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9zY3JpcHRzL3RvYy5q
cwppbmRleCAxMjBkNGJlMDM5Zi4uMjk3YjcxODE0M2YgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvc2NyaXB0cy90b2MuanMKKysr
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9zY3Jp
cHRzL3RvYy5qcwpAQCAtMSwxMDYgKzEsMTA2IEBACiAvLyBncmFiIHRoZSB0YWJsZSBvZiBjb250
ZW50cyBmaWxsZWQgd2l0aCBhbGwgdGhlIGFuY2hvcnMKIGZ1bmN0aW9uIF9fcmVzdWx0X2hhbmRs
ZXIoKSB7CiAgICAgZnVuY3Rpb24gZ2V0TWFwKCkgewotCXZhciB0b2NfZWxlbWVudCA9IGRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKCJjb250ZW50cyIpLm5leHRFbGVtZW50U2libGluZzsKLQotCWZ1
bmN0aW9uIGdldFNlY3Rpb24oKSB7Ci0JICAgIGZ1bmN0aW9uIGdldElkcyhub2RlKSB7Ci0JCXZh
ciBhID0gW107Ci0JICAgIAotCQl2YXIgbm9kZXMgPSBub2RlLnF1ZXJ5U2VsZWN0b3JBbGwoJypb
aWRdJyk7Ci0JCWZvciAodmFyIGkgPSAwOyBpIDwgbm9kZXMubGVuZ3RoOyBpKyspIHsKLQkJICAg
IGEucHVzaChub2Rlc1tpXS5nZXRBdHRyaWJ1dGUoImlkIikpOwotCQl9Ci0JCXJldHVybiBhOwot
CSAgICB9Ci0JCi0JICAgIGZ1bmN0aW9uIGdldFRPQ0lkcygpIHsKLQkJdmFyIGEgPSBbXTsKLQkg
ICAgCi0JCXZhciBub2RlcyA9IHRvY19lbGVtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ2xpJyk7Ci0J
CWZvciAodmFyIGkgPSAwOyBpIDwgbm9kZXMubGVuZ3RoOyBpKyspIHsKLQkJICAgIHZhciBocmVm
ID0gbm9kZXNbaV0uZmlyc3RFbGVtZW50Q2hpbGQuZ2V0QXR0cmlidXRlKCJocmVmIik7Ci0JCSAg
ICBhLnB1c2goaHJlZi5zdWJzdHJpbmcoMSkpOwotCQl9Ci0JCXJldHVybiBhOwotCSAgICB9Ci0K
LQkgICAgdmFyIG9iaiA9IG5ldyBPYmplY3QoKTsKLQkgICAgdmFyIGlkcyA9IGdldElkcyhkb2N1
bWVudCk7Ci0JICAgIHZhciB0b2MgPSBnZXRUT0NJZHMoKTsKLSAgICAKLQkgICAgZm9yICh2YXIg
aSA9IDE7IGkgPCB0b2MubGVuZ3RoOyBpKyspIHsKLQkJdmFyIGtleTEgPSB0b2NbaS0xXTsKLQkJ
dmFyIGtleTIgPSB0b2NbaV07Ci0JCXZhciBtYXAgPSBbXTsKLQotCQl2YXIgaW5kZXgxID0gaWRz
LmluZGV4T2Yoa2V5MSk7Ci0JCXZhciBpbmRleDIgPSBpZHMuaW5kZXhPZihrZXkyKTsKLQotCQlp
ZiAoKGluZGV4Mi1pbmRleDEpID4gMSkgewotCQkgICAgZm9yICh2YXIgaiA9IGluZGV4MSsxOyBq
IDwgaW5kZXgyO2orKykgewotCQkJbWFwLnB1c2goaWRzW2pdKTsKLQkJICAgIH0KLQkJfQotCi0J
CW9ialtrZXkxXSA9IG1hcDsKLQkgICAgfQotCSAgICB7Ci0JCXZhciBrZXkgPSB0b2NbdG9jLmxl
bmd0aC0xXTsKLQkJdmFyIGluZGV4ID0gaWRzLmluZGV4T2Yoa2V5KTsKLQkJdmFyIG1hcCA9IFtd
OwotCi0JCWZvciAodmFyIGogPSBpbmRleCsxOyBqIDwgaWRzLmxlbmd0aDtqKyspIHsKLQkJICAg
IG1hcC5wdXNoKGlkc1tqXSk7Ci0JCX0KLQkJb2JqW2tleV0gPSBtYXA7Ci0JICAgIH0KLSAgICAK
LQkgICAgcmV0dXJuIG9iajsKLQl9Ci0KLQlmdW5jdGlvbiBzZWN0aW9uKGlkKSB7Ci0JICAgIHRo
aXMuaWQgPSBpZDsKLQl9Ci0JZnVuY3Rpb24gYWRkU3ViU2VjdGlvbihzZWN0aW9uLCBzdWIpIHsK
LQkgICAgaWYgKHR5cGVvZiBzZWN0aW9uLnNlY3Rpb25zID09PSAidW5kZWZpbmVkIikgewotCQlz
ZWN0aW9uLnNlY3Rpb25zID0gW107Ci0JICAgIH0KLQkgICAgc2VjdGlvbi5zZWN0aW9ucy5wdXNo
KHN1Yik7Ci0JfQotCi0JZnVuY3Rpb24gbGkoZWwsIG1hcCkgewotCSAgICB2YXIgb2JqID0gbmV3
IHNlY3Rpb24oZWwuZmlyc3RFbGVtZW50Q2hpbGQuZ2V0QXR0cmlidXRlKCJocmVmIikuc3Vic3Ry
aW5nKDEpKTsKLQkgICAgb2JqLnRpdGxlID0gZWwuZmlyc3RFbGVtZW50Q2hpbGQudGV4dENvbnRl
bnQ7Ci0JICAgIHZhciBjaGlsZCA9IGVsLmZpcnN0RWxlbWVudENoaWxkOwotCi0JICAgIHZhciBt
ID0gbWFwW29iai5pZF07Ci0JICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbS5sZW5ndGg7IGkrKykg
IHsJICAgIAotCQl2YXIgc3ViID0gbmV3IHNlY3Rpb24obVtpXSk7IAotCQlhZGRTdWJTZWN0aW9u
KG9iaiwgc3ViKTsKLQkgICAgfQotCSAgICB3aGlsZSAoY2hpbGQgIT09IG51bGwpIHsKLQkJaWYg
KGNoaWxkLm5vZGVOYW1lID09PSAiT0wiKSBvbChjaGlsZCwgb2JqLCBtYXApOwotCQljaGlsZCA9
IGNoaWxkLm5leHRFbGVtZW50U2libGluZzsKLQkgICAgfQotCSAgICByZXR1cm4gb2JqOwotCX0K
LQotCWZ1bmN0aW9uIG9sKGVsLCBzZWN0aW9uLCBtYXApIHsKLQkgICAgdmFyIGNoaWxkID0gZWwu
Zmlyc3RFbGVtZW50Q2hpbGQ7Ci0JICAgIHdoaWxlIChjaGlsZCAhPT0gbnVsbCkgewotCQlhZGRT
dWJTZWN0aW9uKHNlY3Rpb24sIGxpKGNoaWxkLCBtYXApKTsKLQkJY2hpbGQgPSBjaGlsZC5uZXh0
RWxlbWVudFNpYmxpbmc7Ci0JICAgIH0KLQl9Ci0KLQl2YXIgbWFwID0gZ2V0U2VjdGlvbigpOwot
CXZhciBtYWluID0gbmV3IHNlY3Rpb24oIl9fX21haW5fX18iKTsKLQltYWluLnRpdGxlID0gZG9j
dW1lbnQudGl0bGU7Ci0KLQlvbCh0b2NfZWxlbWVudCwgbWFpbiwgbWFwKTsKLQotCXJldHVybiBt
YWluOworICAgICAgICB2YXIgdG9jX2VsZW1lbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgi
Y29udGVudHMiKS5uZXh0RWxlbWVudFNpYmxpbmc7CisKKyAgICAgICAgZnVuY3Rpb24gZ2V0U2Vj
dGlvbigpIHsKKyAgICAgICAgICAgIGZ1bmN0aW9uIGdldElkcyhub2RlKSB7CisgICAgICAgICAg
ICAgICAgdmFyIGEgPSBbXTsKKworICAgICAgICAgICAgICAgIHZhciBub2RlcyA9IG5vZGUucXVl
cnlTZWxlY3RvckFsbCgnKltpZF0nKTsKKyAgICAgICAgICAgICAgICBmb3IgKHZhciBpID0gMDsg
aSA8IG5vZGVzLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICAgICAgICAgIGEucHVzaChub2Rl
c1tpXS5nZXRBdHRyaWJ1dGUoImlkIikpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAg
ICAgICByZXR1cm4gYTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgZnVuY3Rpb24gZ2V0
VE9DSWRzKCkgeworICAgICAgICAgICAgICAgIHZhciBhID0gW107CisKKyAgICAgICAgICAgICAg
ICB2YXIgbm9kZXMgPSB0b2NfZWxlbWVudC5xdWVyeVNlbGVjdG9yQWxsKCdsaScpOworICAgICAg
ICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbm9kZXMubGVuZ3RoOyBpKyspIHsKKyAgICAg
ICAgICAgICAgICAgICAgdmFyIGhyZWYgPSBub2Rlc1tpXS5maXJzdEVsZW1lbnRDaGlsZC5nZXRB
dHRyaWJ1dGUoImhyZWYiKTsKKyAgICAgICAgICAgICAgICAgICAgYS5wdXNoKGhyZWYuc3Vic3Ry
aW5nKDEpKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgcmV0dXJuIGE7Cisg
ICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHZhciBvYmogPSBuZXcgT2JqZWN0KCk7CisgICAg
ICAgICAgICB2YXIgaWRzID0gZ2V0SWRzKGRvY3VtZW50KTsKKyAgICAgICAgICAgIHZhciB0b2Mg
PSBnZXRUT0NJZHMoKTsKKworICAgICAgICAgICAgZm9yICh2YXIgaSA9IDE7IGkgPCB0b2MubGVu
Z3RoOyBpKyspIHsKKyAgICAgICAgICAgICAgICB2YXIga2V5MSA9IHRvY1tpLTFdOworICAgICAg
ICAgICAgICAgIHZhciBrZXkyID0gdG9jW2ldOworICAgICAgICAgICAgICAgIHZhciBtYXAgPSBb
XTsKKworICAgICAgICAgICAgICAgIHZhciBpbmRleDEgPSBpZHMuaW5kZXhPZihrZXkxKTsKKyAg
ICAgICAgICAgICAgICB2YXIgaW5kZXgyID0gaWRzLmluZGV4T2Yoa2V5Mik7CisKKyAgICAgICAg
ICAgICAgICBpZiAoKGluZGV4Mi1pbmRleDEpID4gMSkgeworICAgICAgICAgICAgICAgICAgICBm
b3IgKHZhciBqID0gaW5kZXgxKzE7IGogPCBpbmRleDI7aisrKSB7CisgICAgICAgICAgICAgICAg
ICAgICAgICBtYXAucHVzaChpZHNbal0pOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAg
ICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgb2JqW2tleTFdID0gbWFwOworICAgICAgICAg
ICAgfQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIHZhciBrZXkgPSB0b2NbdG9jLmxl
bmd0aC0xXTsKKyAgICAgICAgICAgICAgICB2YXIgaW5kZXggPSBpZHMuaW5kZXhPZihrZXkpOwor
ICAgICAgICAgICAgICAgIHZhciBtYXAgPSBbXTsKKworICAgICAgICAgICAgICAgIGZvciAodmFy
IGogPSBpbmRleCsxOyBqIDwgaWRzLmxlbmd0aDtqKyspIHsKKyAgICAgICAgICAgICAgICAgICAg
bWFwLnB1c2goaWRzW2pdKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgb2Jq
W2tleV0gPSBtYXA7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHJldHVybiBvYmo7Cisg
ICAgICAgIH0KKworICAgICAgICBmdW5jdGlvbiBzZWN0aW9uKGlkKSB7CisgICAgICAgICAgICB0
aGlzLmlkID0gaWQ7CisgICAgICAgIH0KKyAgICAgICAgZnVuY3Rpb24gYWRkU3ViU2VjdGlvbihz
ZWN0aW9uLCBzdWIpIHsKKyAgICAgICAgICAgIGlmICh0eXBlb2Ygc2VjdGlvbi5zZWN0aW9ucyA9
PT0gInVuZGVmaW5lZCIpIHsKKyAgICAgICAgICAgICAgICBzZWN0aW9uLnNlY3Rpb25zID0gW107
CisgICAgICAgICAgICB9CisgICAgICAgICAgICBzZWN0aW9uLnNlY3Rpb25zLnB1c2goc3ViKTsK
KyAgICAgICAgfQorCisgICAgICAgIGZ1bmN0aW9uIGxpKGVsLCBtYXApIHsKKyAgICAgICAgICAg
IHZhciBvYmogPSBuZXcgc2VjdGlvbihlbC5maXJzdEVsZW1lbnRDaGlsZC5nZXRBdHRyaWJ1dGUo
ImhyZWYiKS5zdWJzdHJpbmcoMSkpOworICAgICAgICAgICAgb2JqLnRpdGxlID0gZWwuZmlyc3RF
bGVtZW50Q2hpbGQudGV4dENvbnRlbnQ7CisgICAgICAgICAgICB2YXIgY2hpbGQgPSBlbC5maXJz
dEVsZW1lbnRDaGlsZDsKKworICAgICAgICAgICAgdmFyIG0gPSBtYXBbb2JqLmlkXTsKKyAgICAg
ICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbS5sZW5ndGg7IGkrKykgIHsKKyAgICAgICAgICAg
ICAgICB2YXIgc3ViID0gbmV3IHNlY3Rpb24obVtpXSk7CisgICAgICAgICAgICAgICAgYWRkU3Vi
U2VjdGlvbihvYmosIHN1Yik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICB3aGlsZSAoY2hp
bGQgIT09IG51bGwpIHsKKyAgICAgICAgICAgICAgICBpZiAoY2hpbGQubm9kZU5hbWUgPT09ICJP
TCIpIG9sKGNoaWxkLCBvYmosIG1hcCk7CisgICAgICAgICAgICAgICAgY2hpbGQgPSBjaGlsZC5u
ZXh0RWxlbWVudFNpYmxpbmc7CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1cm4gb2Jq
OworICAgICAgICB9CisKKyAgICAgICAgZnVuY3Rpb24gb2woZWwsIHNlY3Rpb24sIG1hcCkgewor
ICAgICAgICAgICAgdmFyIGNoaWxkID0gZWwuZmlyc3RFbGVtZW50Q2hpbGQ7CisgICAgICAgICAg
ICB3aGlsZSAoY2hpbGQgIT09IG51bGwpIHsKKyAgICAgICAgICAgICAgICBhZGRTdWJTZWN0aW9u
KHNlY3Rpb24sIGxpKGNoaWxkLCBtYXApKTsKKyAgICAgICAgICAgICAgICBjaGlsZCA9IGNoaWxk
Lm5leHRFbGVtZW50U2libGluZzsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAg
IHZhciBtYXAgPSBnZXRTZWN0aW9uKCk7CisgICAgICAgIHZhciBtYWluID0gbmV3IHNlY3Rpb24o
Il9fX21haW5fX18iKTsKKyAgICAgICAgbWFpbi50aXRsZSA9IGRvY3VtZW50LnRpdGxlOworCisg
ICAgICAgIG9sKHRvY19lbGVtZW50LCBtYWluLCBtYXApOworCisgICAgICAgIHJldHVybiBtYWlu
OwogICAgIH0KIAogICAgIHJldHVybiBnZXRNYXAoKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvc2VydmUvc2VydmUucHkgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3NlcnZlL3Nl
cnZlLnB5CmluZGV4IDEzOWE1NWNlNWNiLi4xODY4YjFhMzZlNSAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9zZXJ2ZS9zZXJ2ZS5w
eQorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3NlcnZlL3NlcnZlLnB5CkBAIC04LDYgKzgsNyBAQCBpbXBvcnQganNvbgogaW1wb3J0IGxvZ2dp
bmcKIGltcG9ydCBvcwogaW1wb3J0IHBsYXRmb3JtCitpbXBvcnQgc2lnbmFsCiBpbXBvcnQgc29j
a2V0CiBpbXBvcnQgc3lzCiBpbXBvcnQgdGhyZWFkaW5nCkBAIC0xNiw2ICsxNyw3IEBAIGltcG9y
dCB0cmFjZWJhY2sKIGZyb20gc2l4Lm1vdmVzIGltcG9ydCB1cmxsaWIKIGltcG9ydCB1dWlkCiBm
cm9tIGNvbGxlY3Rpb25zIGltcG9ydCBkZWZhdWx0ZGljdCwgT3JkZXJlZERpY3QKK2Zyb20gaXRl
cnRvb2xzIGltcG9ydCBjaGFpbiwgcHJvZHVjdAogZnJvbSBtdWx0aXByb2Nlc3NpbmcgaW1wb3J0
IFByb2Nlc3MsIEV2ZW50CiAKIGZyb20gbG9jYWxwYXRocyBpbXBvcnQgcmVwb19yb290CkBAIC0z
MSw2ICszMywxMiBAQCBmcm9tIHdwdHNlcnZlLnV0aWxzIGltcG9ydCBnZXRfcG9ydCwgSFRUUEV4
Y2VwdGlvbiwgaHR0cDJfY29tcGF0aWJsZQogZnJvbSBtb2RfcHl3ZWJzb2NrZXQgaW1wb3J0IHN0
YW5kYWxvbmUgYXMgcHl3ZWJzb2NrZXQKIAogCitFRElUX0hPU1RTX0hFTFAgPSAoIlBsZWFzZSBl
bnN1cmUgYWxsIHRoZSBuZWNlc3NhcnkgV1BUIHN1YmRvbWFpbnMgIgorICAgICAgICAgICAgICAg
ICAgICJhcmUgbWFwcGVkIHRvIGEgbG9vcGJhY2sgZGV2aWNlIGluIC9ldGMvaG9zdHMuICIKKyAg
ICAgICAgICAgICAgICAgICAiU2VlIGh0dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxhdGZvcm0tdGVz
dHMvd3B0I3J1bm5pbmctdGhlLXRlc3RzICIKKyAgICAgICAgICAgICAgICAgICAiZm9yIGluc3Ry
dWN0aW9ucy4iKQorCisKIGRlZiByZXBsYWNlX2VuZChzLCBvbGQsIG5ldyk6CiAgICAgIiIiCiAg
ICAgR2l2ZW4gYSBzdHJpbmcgYHNgIHRoYXQgZW5kcyB3aXRoIGBvbGRgLCByZXBsYWNlIHRoYXQg
b2NjdXJyZW5jZSBvZiBgb2xkYApAQCAtNDAsNiArNDgsMTUgQEAgZGVmIHJlcGxhY2VfZW5kKHMs
IG9sZCwgbmV3KToKICAgICByZXR1cm4gc1s6LWxlbihvbGQpXSArIG5ldwogCiAKK2RlZiBkb21h
aW5zX2FyZV9kaXN0aW5jdChhLCBiKToKKyAgICBhX3BhcnRzID0gYS5zcGxpdCgiLiIpCisgICAg
Yl9wYXJ0cyA9IGIuc3BsaXQoIi4iKQorICAgIG1pbl9sZW5ndGggPSBtaW4obGVuKGFfcGFydHMp
LCBsZW4oYl9wYXJ0cykpCisgICAgc2xpY2VfaW5kZXggPSAtMSAqIG1pbl9sZW5ndGgKKworICAg
IHJldHVybiBhX3BhcnRzW3NsaWNlX2luZGV4Ol0gIT0gYl9wYXJ0c1tzbGljZV9pbmRleDpdCisK
KwogY2xhc3MgV3JhcHBlckhhbmRsZXIob2JqZWN0KToKIAogICAgIF9fbWV0YV9fID0gYWJjLkFC
Q01ldGEKQEAgLTEwMCw5ICsxMTcsMTIgQEAgY2xhc3MgV3JhcHBlckhhbmRsZXIob2JqZWN0KToK
ICAgICAgICAgOnBhcmFtIHJlcXVlc3Q6IFRoZSBSZXF1ZXN0IGJlaW5nIHByb2Nlc3NlZC4KICAg
ICAgICAgIiIiCiAgICAgICAgIHBhdGggPSBzZWxmLl9nZXRfcGF0aChmaWxlc3lzdGVtX3BhdGgo
c2VsZi5iYXNlX3BhdGgsIHJlcXVlc3QsIHNlbGYudXJsX2Jhc2UpLCBGYWxzZSkKLSAgICAgICAg
d2l0aCBvcGVuKHBhdGgsICJyYiIpIGFzIGY6Ci0gICAgICAgICAgICBmb3Iga2V5LCB2YWx1ZSBp
biByZWFkX3NjcmlwdF9tZXRhZGF0YShmLCBqc19tZXRhX3JlKToKLSAgICAgICAgICAgICAgICB5
aWVsZCBrZXksIHZhbHVlCisgICAgICAgIHRyeToKKyAgICAgICAgICAgIHdpdGggb3BlbihwYXRo
LCAicmIiKSBhcyBmOgorICAgICAgICAgICAgICAgIGZvciBrZXksIHZhbHVlIGluIHJlYWRfc2Ny
aXB0X21ldGFkYXRhKGYsIGpzX21ldGFfcmUpOgorICAgICAgICAgICAgICAgICAgICB5aWVsZCBr
ZXksIHZhbHVlCisgICAgICAgIGV4Y2VwdCBJT0Vycm9yOgorICAgICAgICAgICAgcmFpc2UgSFRU
UEV4Y2VwdGlvbig0MDQpCiAKICAgICBkZWYgX2dldF9tZXRhKHNlbGYsIHJlcXVlc3QpOgogICAg
ICAgICAiIiJHZXQgYW4gaXRlcmF0b3Igb3ZlciBzdHJpbmdzIHRvIGluamVjdCBpbnRvIHRoZSB3
cmFwcGVyIGRvY3VtZW50CkBAIC0yOTgsNiArMzE4LDcgQEAgZG9uZSgpOwogCiByZXdyaXRlcyA9
IFsoIkdFVCIsICIvcmVzb3VyY2VzL1dlYklETFBhcnNlci5qcyIsICIvcmVzb3VyY2VzL3dlYmlk
bDIvbGliL3dlYmlkbDIuanMiKV0KIAorCiBjbGFzcyBSb3V0ZXNCdWlsZGVyKG9iamVjdCk6CiAg
ICAgZGVmIF9faW5pdF9fKHNlbGYpOgogICAgICAgICBzZWxmLmZvcmJpZGRlbl9vdmVycmlkZSA9
IFsoIkdFVCIsICIvdG9vbHMvcnVubmVyLyoiLCBoYW5kbGVycy5maWxlX2hhbmRsZXIpLApAQCAt
MzA2LDggKzMyNyw3IEBAIGNsYXNzIFJvdXRlc0J1aWxkZXIob2JqZWN0KToKIAogICAgICAgICBz
ZWxmLmZvcmJpZGRlbiA9IFsoIioiLCAiL19jZXJ0cy8qIiwgaGFuZGxlcnMuRXJyb3JIYW5kbGVy
KDQwNCkpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAoIioiLCAiL3Rvb2xzLyoiLCBoYW5k
bGVycy5FcnJvckhhbmRsZXIoNDA0KSksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICgiKiIs
ICJ7c3BlY30vdG9vbHMvKiIsIGhhbmRsZXJzLkVycm9ySGFuZGxlcig0MDQpKSwKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgKCIqIiwgIi9zZXJ2ZS5weSIsIGhhbmRsZXJzLkVycm9ySGFuZGxl
cig0MDQpKV0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgKCIqIiwgIntzcGVjfS90b29scy8q
IiwgaGFuZGxlcnMuRXJyb3JIYW5kbGVyKDQwNCkpXQogCiAgICAgICAgIHNlbGYuZXh0cmEgPSBb
XQogCkBAIC0zNzgsMTUgKzM5OCwxNyBAQCBkZWYgYnVpbGRfcm91dGVzKGFsaWFzZXMpOgogCiAK
IGNsYXNzIFNlcnZlclByb2Mob2JqZWN0KToKLSAgICBkZWYgX19pbml0X18oc2VsZik6CisgICAg
ZGVmIF9faW5pdF9fKHNlbGYsIHNjaGVtZT1Ob25lKToKICAgICAgICAgc2VsZi5wcm9jID0gTm9u
ZQogICAgICAgICBzZWxmLmRhZW1vbiA9IE5vbmUKICAgICAgICAgc2VsZi5zdG9wID0gRXZlbnQo
KQorICAgICAgICBzZWxmLnNjaGVtZSA9IHNjaGVtZQogCiAgICAgZGVmIHN0YXJ0KHNlbGYsIGlu
aXRfZnVuYywgaG9zdCwgcG9ydCwgcGF0aHMsIHJvdXRlcywgYmluZF9hZGRyZXNzLCBjb25maWcs
ICoqa3dhcmdzKToKICAgICAgICAgc2VsZi5wcm9jID0gUHJvY2Vzcyh0YXJnZXQ9c2VsZi5jcmVh
dGVfZGFlbW9uLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyZ3M9KGluaXRfZnVuYywg
aG9zdCwgcG9ydCwgcGF0aHMsIHJvdXRlcywgYmluZF9hZGRyZXNzLAogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGNvbmZpZyksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
bmFtZT0nJXMgb24gcG9ydCAlcycgJSAoc2VsZi5zY2hlbWUsIHBvcnQpLAogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGt3YXJncz1rd2FyZ3MpCiAgICAgICAgIHNlbGYucHJvYy5kYWVtb24g
PSBUcnVlCiAgICAgICAgIHNlbGYucHJvYy5zdGFydCgpCkBAIC00MzksMTggKzQ2MSwxOSBAQCBk
ZWYgY2hlY2tfc3ViZG9tYWlucyhjb25maWcpOgogICAgIHdyYXBwZXIuc3RhcnQoc3RhcnRfaHR0
cF9zZXJ2ZXIsIGhvc3QsIHBvcnQsIHBhdGhzLCBidWlsZF9yb3V0ZXMoYWxpYXNlcyksCiAgICAg
ICAgICAgICAgICAgICBiaW5kX2FkZHJlc3MsIGNvbmZpZykKIAorICAgIHVybCA9ICJodHRwOi8v
e306e30vIi5mb3JtYXQoaG9zdCwgcG9ydCkKICAgICBjb25uZWN0ZWQgPSBGYWxzZQogICAgIGZv
ciBpIGluIHJhbmdlKDEwKToKICAgICAgICAgdHJ5OgotICAgICAgICAgICAgdXJsbGliLnJlcXVl
c3QudXJsb3BlbigiaHR0cDovLyVzOiVkLyIgJSAoaG9zdCwgcG9ydCkpCisgICAgICAgICAgICB1
cmxsaWIucmVxdWVzdC51cmxvcGVuKHVybCkKICAgICAgICAgICAgIGNvbm5lY3RlZCA9IFRydWUK
ICAgICAgICAgICAgIGJyZWFrCiAgICAgICAgIGV4Y2VwdCB1cmxsaWIuZXJyb3IuVVJMRXJyb3I6
CiAgICAgICAgICAgICB0aW1lLnNsZWVwKDEpCiAKICAgICBpZiBub3QgY29ubmVjdGVkOgotICAg
ICAgICBsb2dnZXIuY3JpdGljYWwoIkZhaWxlZCB0byBjb25uZWN0IHRvIHRlc3Qgc2VydmVyIG9u
IGh0dHA6Ly8lczolcy4gIgotICAgICAgICAgICAgICAgICAgICAgICAgIllvdSBtYXkgbmVlZCB0
byBlZGl0IC9ldGMvaG9zdHMgb3Igc2ltaWxhciwgc2VlIFJFQURNRS5tZC4iICUgKGhvc3QsIHBv
cnQpKQorICAgICAgICBsb2dnZXIuY3JpdGljYWwoIkZhaWxlZCB0byBjb25uZWN0IHRvIHRlc3Qg
c2VydmVyICIKKyAgICAgICAgICAgICAgICAgICAgICAgICJvbiB7fS4ge30iLmZvcm1hdCh1cmws
IEVESVRfSE9TVFNfSEVMUCkpCiAgICAgICAgIHN5cy5leGl0KDEpCiAKICAgICBmb3IgZG9tYWlu
IGluIGNvbmZpZy5kb21haW5zX3NldDoKQEAgLTQ2MCw4ICs0ODMsNyBAQCBkZWYgY2hlY2tfc3Vi
ZG9tYWlucyhjb25maWcpOgogICAgICAgICB0cnk6CiAgICAgICAgICAgICB1cmxsaWIucmVxdWVz
dC51cmxvcGVuKCJodHRwOi8vJXM6JWQvIiAlIChkb21haW4sIHBvcnQpKQogICAgICAgICBleGNl
cHQgRXhjZXB0aW9uOgotICAgICAgICAgICAgbG9nZ2VyLmNyaXRpY2FsKCJGYWlsZWQgcHJvYmlu
ZyBkb21haW4gJXMuICIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAiWW91IG1heSBuZWVk
IHRvIGVkaXQgL2V0Yy9ob3N0cyBvciBzaW1pbGFyLCBzZWUgUkVBRE1FLm1kLiIgJSBkb21haW4p
CisgICAgICAgICAgICBsb2dnZXIuY3JpdGljYWwoIkZhaWxlZCBwcm9iaW5nIGRvbWFpbiB7fS4g
e30iLmZvcm1hdChkb21haW4sIEVESVRfSE9TVFNfSEVMUCkpCiAgICAgICAgICAgICBzeXMuZXhp
dCgxKQogCiAgICAgd3JhcHBlci53YWl0KCkKQEAgLTQ5MCwyMyArNTEyLDI0IEBAIGRlZiBtYWtl
X2hvc3RzX2ZpbGUoY29uZmlnLCBob3N0KToKIGRlZiBzdGFydF9zZXJ2ZXJzKGhvc3QsIHBvcnRz
LCBwYXRocywgcm91dGVzLCBiaW5kX2FkZHJlc3MsIGNvbmZpZywgKiprd2FyZ3MpOgogICAgIHNl
cnZlcnMgPSBkZWZhdWx0ZGljdChsaXN0KQogICAgIGZvciBzY2hlbWUsIHBvcnRzIGluIHBvcnRz
Lml0ZW1zKCk6Ci0gICAgICAgIGFzc2VydCBsZW4ocG9ydHMpID09IHsiaHR0cCI6Mn0uZ2V0KHNj
aGVtZSwgMSkKKyAgICAgICAgYXNzZXJ0IGxlbihwb3J0cykgPT0geyJodHRwIjogMn0uZ2V0KHNj
aGVtZSwgMSkKIAotICAgICAgICAjIFRPRE8gTm90IHZlcnkgaWRlYWwsIGxvb2sgaW50byByZW1v
dmluZyBpdCBpbiB0aGUgZnV0dXJlCi0gICAgICAgICMgQ2hlY2sgdGhhdCBweXRob24gMi43LjE1
IGlzIGJlaW5nIHVzZWQgZm9yIEhUVFAvMi4wCisgICAgICAgICMgSWYgdHJ5aW5nIHRvIHN0YXJ0
IEhUVFAvMi4wIHNlcnZlciwgY2hlY2sgY29tcGF0aWJpbGl0eQogICAgICAgICBpZiBzY2hlbWUg
PT0gJ2h0dHAyJyBhbmQgbm90IGh0dHAyX2NvbXBhdGlibGUoKToKKyAgICAgICAgICAgIGxvZ2dl
ci5lcnJvcignQ2Fubm90IHN0YXJ0IEhUVFAvMi4wIHNlcnZlciBhcyB0aGUgZW52aXJvbm1lbnQg
aXMgbm90IGNvbXBhdGlibGUuICcgKworICAgICAgICAgICAgICAgICAgICAgICAgICdSZXF1aXJl
cyBQeXRob24gMi43LjEwKyAoPCAzLjApIGFuZCBPcGVuU1NMIDEuMC4yKycpCiAgICAgICAgICAg
ICBjb250aW51ZQogCiAgICAgICAgIGZvciBwb3J0IGluIHBvcnRzOgogICAgICAgICAgICAgaWYg
cG9ydCBpcyBOb25lOgogICAgICAgICAgICAgICAgIGNvbnRpbnVlCi0gICAgICAgICAgICBpbml0
X2Z1bmMgPSB7Imh0dHAiOnN0YXJ0X2h0dHBfc2VydmVyLAotICAgICAgICAgICAgICAgICAgICAg
ICAgICJodHRwcyI6c3RhcnRfaHR0cHNfc2VydmVyLAotICAgICAgICAgICAgICAgICAgICAgICAg
ICJodHRwMiI6c3RhcnRfaHR0cDJfc2VydmVyLAotICAgICAgICAgICAgICAgICAgICAgICAgICJ3
cyI6c3RhcnRfd3Nfc2VydmVyLAotICAgICAgICAgICAgICAgICAgICAgICAgICJ3c3MiOnN0YXJ0
X3dzc19zZXJ2ZXJ9W3NjaGVtZV0KKyAgICAgICAgICAgIGluaXRfZnVuYyA9IHsiaHR0cCI6IHN0
YXJ0X2h0dHBfc2VydmVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICJodHRwcyI6IHN0YXJ0
X2h0dHBzX3NlcnZlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAiaHR0cDIiOiBzdGFydF9o
dHRwMl9zZXJ2ZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgIndzIjogc3RhcnRfd3Nfc2Vy
dmVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICJ3c3MiOiBzdGFydF93c3Nfc2VydmVyfVtz
Y2hlbWVdCiAKLSAgICAgICAgICAgIHNlcnZlcl9wcm9jID0gU2VydmVyUHJvYygpCisgICAgICAg
ICAgICBzZXJ2ZXJfcHJvYyA9IFNlcnZlclByb2Moc2NoZW1lPXNjaGVtZSkKICAgICAgICAgICAg
IHNlcnZlcl9wcm9jLnN0YXJ0KGluaXRfZnVuYywgaG9zdCwgcG9ydCwgcGF0aHMsIHJvdXRlcywg
YmluZF9hZGRyZXNzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uZmlnLCAqKmt3
YXJncykKICAgICAgICAgICAgIHNlcnZlcnNbc2NoZW1lXS5hcHBlbmQoKHBvcnQsIHNlcnZlcl9w
cm9jKSkKQEAgLTU1OCwxNCArNTgxLDE0IEBAIGRlZiBzdGFydF9odHRwMl9zZXJ2ZXIoaG9zdCwg
cG9ydCwgcGF0aHMsIHJvdXRlcywgYmluZF9hZGRyZXNzLCBjb25maWcsICoqa3dhcmdzCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmNyeXB0X2FmdGVyX2Nvbm5lY3Q9Y29uZmln
LnNzbF9jb25maWdbImVuY3J5cHRfYWZ0ZXJfY29ubmVjdCJdLAogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgbGF0ZW5jeT1rd2FyZ3MuZ2V0KCJsYXRlbmN5IiksCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBodHRwMj1UcnVlKQorCisKIGNsYXNzIFdlYlNvY2tldERh
ZW1vbihvYmplY3QpOgotICAgIGRlZiBfX2luaXRfXyhzZWxmLCBob3N0LCBwb3J0LCBkb2Nfcm9v
dCwgaGFuZGxlcnNfcm9vdCwgbG9nX2xldmVsLCBiaW5kX2FkZHJlc3MsCi0gICAgICAgICAgICAg
ICAgIHNzbF9jb25maWcpOgorICAgIGRlZiBfX2luaXRfXyhzZWxmLCBob3N0LCBwb3J0LCBkb2Nf
cm9vdCwgaGFuZGxlcnNfcm9vdCwgYmluZF9hZGRyZXNzLCBzc2xfY29uZmlnKToKICAgICAgICAg
c2VsZi5ob3N0ID0gaG9zdAogICAgICAgICBjbWRfYXJncyA9IFsiLXAiLCBwb3J0LAogICAgICAg
ICAgICAgICAgICAgICAiLWQiLCBkb2Nfcm9vdCwKLSAgICAgICAgICAgICAgICAgICAgIi13Iiwg
aGFuZGxlcnNfcm9vdCwKLSAgICAgICAgICAgICAgICAgICAgIi0tbG9nLWxldmVsIiwgbG9nX2xl
dmVsXQorICAgICAgICAgICAgICAgICAgICAiLXciLCBoYW5kbGVyc19yb290XQogCiAgICAgICAg
IGlmIHNzbF9jb25maWcgaXMgbm90IE5vbmU6CiAgICAgICAgICAgICAjIFRoaXMgaXMgdXN1YWxs
eSBkb25lIHRocm91Z2ggcHl3ZWJzb2NrZXQubWFpbiwgaG93ZXZlciB3ZSdyZQpAQCAtNjIzLDI4
ICs2NDYsMzkgQEAgY2xhc3MgV2ViU29ja2V0RGFlbW9uKG9iamVjdCk6CiAgICAgICAgIHNlbGYu
c2VydmVyID0gTm9uZQogCiAKK2RlZiByZWxlYXNlX21vemxvZ19sb2NrKCk6CisgICAgdHJ5Ogor
ICAgICAgICBmcm9tIG1vemxvZy5zdHJ1Y3R1cmVkbG9nIGltcG9ydCBTdHJ1Y3R1cmVkTG9nZ2Vy
CisgICAgICAgIHRyeToKKyAgICAgICAgICAgIFN0cnVjdHVyZWRMb2dnZXIuX2xvY2sucmVsZWFz
ZSgpCisgICAgICAgIGV4Y2VwdCB0aHJlYWRpbmcuVGhyZWFkRXJyb3I6CisgICAgICAgICAgICBw
YXNzCisgICAgZXhjZXB0IEltcG9ydEVycm9yOgorICAgICAgICBwYXNzCisKKwogZGVmIHN0YXJ0
X3dzX3NlcnZlcihob3N0LCBwb3J0LCBwYXRocywgcm91dGVzLCBiaW5kX2FkZHJlc3MsIGNvbmZp
ZywgKiprd2FyZ3MpOgotICAgICMgRW5zdXJlIHRoYXQgd2hlbiB3ZSBzdGFydCB0aGlzIGluIGEg
bmV3IHByb2Nlc3Mgd2UgZG9uJ3QgaW5oZXJpdCB0aGUKLSAgICAjIGdsb2JhbCBsb2NrIGluIHRo
ZSBsb2dnaW5nIG1vZHVsZQorICAgICMgRW5zdXJlIHRoYXQgd2hlbiB3ZSBzdGFydCB0aGlzIGlu
IGEgbmV3IHByb2Nlc3Mgd2UgaGF2ZSB0aGUgZ2xvYmFsIGxvY2sKKyAgICAjIGluIHRoZSBsb2dn
aW5nIG1vZHVsZSB1bmxvY2tlZAogICAgIHJlbG9hZF9tb2R1bGUobG9nZ2luZykKKyAgICByZWxl
YXNlX21vemxvZ19sb2NrKCkKICAgICByZXR1cm4gV2ViU29ja2V0RGFlbW9uKGhvc3QsCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBzdHIocG9ydCksCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICByZXBvX3Jvb3QsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25maWcucGF0aHNb
IndzX2RvY19yb290Il0sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAiZGVidWciLAogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgYmluZF9hZGRyZXNzLAotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgc3NsX2NvbmZpZyA9IE5vbmUpCisgICAgICAgICAgICAgICAgICAgICAgICAgICBz
c2xfY29uZmlnPU5vbmUpCiAKIAogZGVmIHN0YXJ0X3dzc19zZXJ2ZXIoaG9zdCwgcG9ydCwgcGF0
aHMsIHJvdXRlcywgYmluZF9hZGRyZXNzLCBjb25maWcsICoqa3dhcmdzKToKLSAgICAjIEVuc3Vy
ZSB0aGF0IHdoZW4gd2Ugc3RhcnQgdGhpcyBpbiBhIG5ldyBwcm9jZXNzIHdlIGRvbid0IGluaGVy
aXQgdGhlCi0gICAgIyBnbG9iYWwgbG9jayBpbiB0aGUgbG9nZ2luZyBtb2R1bGUKKyAgICAjIEVu
c3VyZSB0aGF0IHdoZW4gd2Ugc3RhcnQgdGhpcyBpbiBhIG5ldyBwcm9jZXNzIHdlIGhhdmUgdGhl
IGdsb2JhbCBsb2NrCisgICAgIyBpbiB0aGUgbG9nZ2luZyBtb2R1bGUgdW5sb2NrZWQKICAgICBy
ZWxvYWRfbW9kdWxlKGxvZ2dpbmcpCisgICAgcmVsZWFzZV9tb3psb2dfbG9jaygpCiAgICAgcmV0
dXJuIFdlYlNvY2tldERhZW1vbihob3N0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ry
KHBvcnQpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVwb19yb290LAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgY29uZmlnLnBhdGhzWyJ3c19kb2Nfcm9vdCJdLAotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgImRlYnVnIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJp
bmRfYWRkcmVzcywKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbmZpZy5zc2xfY29uZmln
KQogCkBAIC03MDEsNiArNzM1LDExIEBAIGRlZiBidWlsZF9jb25maWcob3ZlcnJpZGVfcGF0aD1O
b25lLCAqKmt3YXJncyk6CiAKICAgICByZXR1cm4gcnYKIAorCitkZWYgX21ha2Vfc3ViZG9tYWlu
c19wcm9kdWN0KHMsIGRlcHRoPTIpOgorICAgIHJldHVybiB7dSIuIi5qb2luKHgpIGZvciB4IGlu
IGNoYWluKCoocHJvZHVjdChzLCByZXBlYXQ9aSkgZm9yIGkgaW4gcmFuZ2UoMSwgZGVwdGgrMSkp
KX0KKworCiBfc3ViZG9tYWlucyA9IHt1Ind3dyIsCiAgICAgICAgICAgICAgICB1Ind3dzEiLAog
ICAgICAgICAgICAgICAgdSJ3d3cyIiwKQEAgLTcwOSwxMSArNzQ4LDE2IEBAIF9zdWJkb21haW5z
ID0ge3Uid3d3IiwKIAogX25vdF9zdWJkb21haW5zID0ge3Uibm9uZXhpc3RlbnQifQogCitfc3Vi
ZG9tYWlucyA9IF9tYWtlX3N1YmRvbWFpbnNfcHJvZHVjdChfc3ViZG9tYWlucykKKworX25vdF9z
dWJkb21haW5zID0gX21ha2Vfc3ViZG9tYWluc19wcm9kdWN0KF9ub3Rfc3ViZG9tYWlucykKKwog
CiBjbGFzcyBDb25maWdCdWlsZGVyKGNvbmZpZy5Db25maWdCdWlsZGVyKToKICAgICAiIiJzZXJ2
ZSBjb25maWcKIAotICAgIHRoaXMgc3ViY2xhc3NlcyB3cHRzZXJ2ZS5jb25maWcuQ29uZmlnQnVp
bGRlciB0byBhZGQgc2VydmUgY29uZmlnIG9wdGlvbnMiIiIKKyAgICBUaGlzIHN1YmNsYXNzZXMg
d3B0c2VydmUuY29uZmlnLkNvbmZpZ0J1aWxkZXIgdG8gYWRkIHNlcnZlIGNvbmZpZyBvcHRpb25z
LgorICAgICIiIgogCiAgICAgX2RlZmF1bHQgPSB7CiAgICAgICAgICJicm93c2VyX2hvc3QiOiAi
d2ViLXBsYXRmb3JtLnRlc3QiLApAQCAtNzM4LDcgKzc4Miw5IEBAIGNsYXNzIENvbmZpZ0J1aWxk
ZXIoY29uZmlnLkNvbmZpZ0J1aWxkZXIpOgogICAgICAgICAgICAgIm9wZW5zc2wiOiB7CiAgICAg
ICAgICAgICAgICAgIm9wZW5zc2xfYmluYXJ5IjogIm9wZW5zc2wiLAogICAgICAgICAgICAgICAg
ICJiYXNlX3BhdGgiOiAiX2NlcnRzIiwKKyAgICAgICAgICAgICAgICAicGFzc3dvcmQiOiAid2Vi
LXBsYXRmb3JtLXRlc3RzIiwKICAgICAgICAgICAgICAgICAiZm9yY2VfcmVnZW5lcmF0ZSI6IEZh
bHNlLAorICAgICAgICAgICAgICAgICJkdXJhdGlvbiI6IDMwLAogICAgICAgICAgICAgICAgICJi
YXNlX2NvbmZfcGF0aCI6IE5vbmUKICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAicHJlZ2Vu
ZXJhdGVkIjogewpAQCAtNzYxLDYgKzgwNywxNCBAQCBjbGFzcyBDb25maWdCdWlsZGVyKGNvbmZp
Zy5Db25maWdCdWlsZGVyKToKICAgICAgICAgICAgICphcmdzLAogICAgICAgICAgICAgKiprd2Fy
Z3MKICAgICAgICAgKQorICAgICAgICB3aXRoIHNlbGYgYXMgYzoKKyAgICAgICAgICAgIGJyb3dz
ZXJfaG9zdCA9IGMuZ2V0KCJicm93c2VyX2hvc3QiKQorICAgICAgICAgICAgYWx0ZXJuYXRlX2hv
c3QgPSBjLmdldCgiYWx0ZXJuYXRlX2hvc3RzIiwge30pLmdldCgiYWx0IikKKworICAgICAgICAg
ICAgaWYgbm90IGRvbWFpbnNfYXJlX2Rpc3RpbmN0KGJyb3dzZXJfaG9zdCwgYWx0ZXJuYXRlX2hv
c3QpOgorICAgICAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoCisgICAgICAgICAgICAgICAg
ICAgICJBbHRlcm5hdGUgaG9zdCBtdXN0IGJlIGRpc3RpbmN0IGZyb20gYnJvd3NlciBob3N0Igor
ICAgICAgICAgICAgICAgICkKIAogICAgIGRlZiBfZ2V0X3dzX2RvY19yb290KHNlbGYsIGRhdGEp
OgogICAgICAgICBpZiBkYXRhWyJ3c19kb2Nfcm9vdCJdIGlzIG5vdCBOb25lOgpAQCAtNzk4LDEx
ICs4NTIsMTkgQEAgZGVmIGdldF9wYXJzZXIoKToKIAogCiBkZWYgcnVuKCoqa3dhcmdzKToKKyAg
ICByZWNlaXZlZF9zaWduYWwgPSB0aHJlYWRpbmcuRXZlbnQoKQorCiAgICAgd2l0aCBidWlsZF9j
b25maWcob3MucGF0aC5qb2luKHJlcG9fcm9vdCwgImNvbmZpZy5qc29uIiksCiAgICAgICAgICAg
ICAgICAgICAgICAgKiprd2FyZ3MpIGFzIGNvbmZpZzoKICAgICAgICAgZ2xvYmFsIGxvZ2dlcgog
ICAgICAgICBsb2dnZXIgPSBjb25maWcubG9nZ2VyCiAgICAgICAgIHNldF9sb2dnZXIobG9nZ2Vy
KQorICAgICAgICAjIENvbmZpZ3VyZSB0aGUgcm9vdCBsb2dnZXIgdG8gY292ZXIgdGhpcmQtcGFy
dHkgbGlicmFyaWVzLgorICAgICAgICBsb2dnaW5nLmdldExvZ2dlcigpLnNldExldmVsKGNvbmZp
Zy5sb2dfbGV2ZWwpCisKKyAgICAgICAgZGVmIGhhbmRsZV9zaWduYWwoc2lnbnVtLCBmcmFtZSk6
CisgICAgICAgICAgICBsb2dnZXIuZGVidWcoIlJlY2VpdmVkIHNpZ25hbCAlcy4gU2h1dHRpbmcg
ZG93bi4iLCBzaWdudW0pCisgICAgICAgICAgICByZWNlaXZlZF9zaWduYWwuc2V0KCkKIAogICAg
ICAgICBiaW5kX2FkZHJlc3MgPSBjb25maWdbImJpbmRfYWRkcmVzcyJdCiAKQEAgLTgyNSwxMyAr
ODg3LDIwIEBAIGRlZiBydW4oKiprd2FyZ3MpOgogCiAgICAgICAgIHdpdGggc3Rhc2guU3Rhc2hT
ZXJ2ZXIoc3Rhc2hfYWRkcmVzcywgYXV0aGtleT1zdHIodXVpZC51dWlkNCgpKSk6CiAgICAgICAg
ICAgICBzZXJ2ZXJzID0gc3RhcnQoY29uZmlnLCBidWlsZF9yb3V0ZXMoY29uZmlnWyJhbGlhc2Vz
Il0pLCAqKmt3YXJncykKKyAgICAgICAgICAgIHNpZ25hbC5zaWduYWwoc2lnbmFsLlNJR1RFUk0s
IGhhbmRsZV9zaWduYWwpCisgICAgICAgICAgICBzaWduYWwuc2lnbmFsKHNpZ25hbC5TSUdJTlQs
IGhhbmRsZV9zaWduYWwpCisKKyAgICAgICAgICAgIHdoaWxlIGFsbChpdGVtLmlzX2FsaXZlKCkg
Zm9yIGl0ZW0gaW4gaXRlcl9wcm9jcyhzZXJ2ZXJzKSkgYW5kIG5vdCByZWNlaXZlZF9zaWduYWwu
aXNfc2V0KCk6CisgICAgICAgICAgICAgICAgZm9yIGl0ZW0gaW4gaXRlcl9wcm9jcyhzZXJ2ZXJz
KToKKyAgICAgICAgICAgICAgICAgICAgaXRlbS5qb2luKDEpCisgICAgICAgICAgICBleGl0ZWQg
PSBbaXRlbSBmb3IgaXRlbSBpbiBpdGVyX3Byb2NzKHNlcnZlcnMpIGlmIG5vdCBpdGVtLmlzX2Fs
aXZlKCldCisgICAgICAgICAgICBzdWJqZWN0ID0gInN1YnByb2Nlc3MiIGlmIGxlbihleGl0ZWQp
ID09IDEgZWxzZSAic3VicHJvY2Vzc2VzIgorCisgICAgICAgICAgICBsb2dnZXIuaW5mbygiJXMg
JXMgZXhpdGVkOiIgJSAobGVuKGV4aXRlZCksIHN1YmplY3QpKQorCisgICAgICAgICAgICBmb3Ig
aXRlbSBpbiBpdGVyX3Byb2NzKHNlcnZlcnMpOgorICAgICAgICAgICAgICAgIGxvZ2dlci5pbmZv
KCJTdGF0dXMgb2YgJXM6XHQlcyIgJSAoaXRlbS5uYW1lLCAicnVubmluZyIgaWYgaXRlbS5pc19h
bGl2ZSgpIGVsc2UgIm5vdCBydW5uaW5nIikpCiAKLSAgICAgICAgICAgIHRyeToKLSAgICAgICAg
ICAgICAgICB3aGlsZSBhbnkoaXRlbS5pc19hbGl2ZSgpIGZvciBpdGVtIGluIGl0ZXJfcHJvY3Mo
c2VydmVycykpOgotICAgICAgICAgICAgICAgICAgICBmb3IgaXRlbSBpbiBpdGVyX3Byb2NzKHNl
cnZlcnMpOgotICAgICAgICAgICAgICAgICAgICAgICAgaXRlbS5qb2luKDEpCi0gICAgICAgICAg
ICBleGNlcHQgS2V5Ym9hcmRJbnRlcnJ1cHQ6Ci0gICAgICAgICAgICAgICAgbG9nZ2VyLmluZm8o
IlNodXR0aW5nIGRvd24iKQogCiBkZWYgbWFpbigpOgogICAgIGt3YXJncyA9IHZhcnMoZ2V0X3Bh
cnNlcigpLnBhcnNlX2FyZ3MoKSkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvc2VydmUvdGVzdF9mdW5jdGlvbmFsLnB5IGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9zZXJ2ZS90ZXN0
X2Z1bmN0aW9uYWwucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjg5
NDQ3OWQxMTFjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy9zZXJ2ZS90ZXN0X2Z1bmN0aW9uYWwucHkKQEAgLTAsMCAr
MSw3OSBAQAordHJ5OgorICAgIGZyb20gaW1wb3J0bGliIGltcG9ydCByZWxvYWQKK2V4Y2VwdCBJ
bXBvcnRFcnJvcjoKKyAgICBwYXNzCitpbXBvcnQganNvbgoraW1wb3J0IG9zCit0cnk6CisgICAg
IyBpbXBvcnQgUXVldWUgdW5kZXIgaXRzIFB5dGhvbiAzIG5hbWUKKyAgICBpbXBvcnQgUXVldWUg
YXMgcXVldWUgICMgbm9xYTogTjgxMworZXhjZXB0IEltcG9ydEVycm9yOgorICAgIGltcG9ydCBx
dWV1ZQoraW1wb3J0IHRlbXBmaWxlCitpbXBvcnQgdGhyZWFkaW5nCisKK2ltcG9ydCBweXRlc3QK
KworZnJvbSAuIGltcG9ydCBzZXJ2ZQorZnJvbSB3cHRzZXJ2ZSBpbXBvcnQgbG9nZ2VyCisKKwor
Y2xhc3MgU2VydmVyUHJvY1NweShzZXJ2ZS5TZXJ2ZXJQcm9jKToKKyAgICBpbnN0YW5jZXMgPSBO
b25lCisKKyAgICBkZWYgc3RhcnQoc2VsZiwgKmFyZ3MsICoqa3dhcmdzKToKKyAgICAgICAgcmVz
dWx0ID0gc3VwZXIoU2VydmVyUHJvY1NweSwgc2VsZikuc3RhcnQoKmFyZ3MsICoqa3dhcmdzKQor
CisgICAgICAgIGlmIFNlcnZlclByb2NTcHkuaW5zdGFuY2VzIGlzIG5vdCBOb25lOgorICAgICAg
ICAgICAgU2VydmVyUHJvY1NweS5pbnN0YW5jZXMucHV0KHNlbGYpCisKKyAgICAgICAgcmV0dXJu
IHJlc3VsdAorCitzZXJ2ZS5TZXJ2ZXJQcm9jID0gU2VydmVyUHJvY1NweQorCitAcHl0ZXN0LmZp
eHR1cmUoKQorZGVmIHNlcnZlcl9zdWJwcm9jZXNzZXMoKToKKyAgICBTZXJ2ZXJQcm9jU3B5Lmlu
c3RhbmNlcyA9IHF1ZXVlLlF1ZXVlKCkKKyAgICB5aWVsZCBTZXJ2ZXJQcm9jU3B5Lmluc3RhbmNl
cworICAgIFNlcnZlclByb2NTcHkuaW5zdGFuY2VzID0gTm9uZQorCitAcHl0ZXN0LmZpeHR1cmUo
KQorZGVmIHRlbXBmaWxlX25hbWUoKToKKyAgICBmZCwgbmFtZSA9IHRlbXBmaWxlLm1rc3RlbXAo
KQorICAgIHlpZWxkIG5hbWUKKyAgICBvcy5jbG9zZShmZCkKKyAgICBvcy5yZW1vdmUobmFtZSkK
KworCitkZWYgdGVzdF9zdWJwcm9jZXNzX2V4aXQoc2VydmVyX3N1YnByb2Nlc3NlcywgdGVtcGZp
bGVfbmFtZSk6CisgICAgdGltZW91dCA9IDMwCisKKyAgICBkZWYgdGFyZ2V0KCk6CisgICAgICAg
ICMgQnkgZGVmYXVsdCwgdGhlIHNlcnZlciBpbml0aWFsbHkgY3JlYXRlcyBhIGNoaWxkIHByb2Nl
c3MgdG8gdmFsaWRhdGUKKyAgICAgICAgIyBsb2NhbCBzeXN0ZW0gY29uZmlndXJhdGlvbi4gVGhh
dCBwcm9jZXNzIGlzIHVucmVsYXRlZCB0byB0aGUgYmVoYXZpb3IKKyAgICAgICAgIyB1bmRlciB0
ZXN0LCBidXQgYXQgdGhlIHRpbWUgb2YgdGhpcyB3cml0aW5nLCB0aGUgcGFyZW50IHVzZXMgdGhl
IHNhbWUKKyAgICAgICAgIyBjb25zdHJ1Y3RvciB0aGF0IGlzIGFsc28gdXNlZCB0byBjcmVhdGUg
dGhlIGxvbmctcnVubmluZyBwcm9jZXNzZXMKKyAgICAgICAgIyB3aGljaCBhcmUgcmVsZXZhbnQg
dG8gdGhpcyBmdW5jdGlvbmFsaXR5LiBEaXNhYmxlIHRoZSBjaGVjayBzbyB0aGF0CisgICAgICAg
ICMgdGhlIGNvbnN0cnVjdG9yIGlzIG9ubHkgdXNlZCB0byBjcmVhdGUgcmVsZXZhbnQgcHJvY2Vz
c2VzLgorICAgICAgICB3aXRoIG9wZW4odGVtcGZpbGVfbmFtZSwgJ3cnKSBhcyBoYW5kbGU6Cisg
ICAgICAgICAgICBqc29uLmR1bXAoeyJjaGVja19zdWJkb21haW5zIjogRmFsc2UsICJiaW5kX2Fk
ZHJlc3MiOiBGYWxzZX0sIGhhbmRsZSkKKworICAgICAgICAjIFRoZSBgbG9nZ2VyYCBtb2R1bGUg
ZnJvbSB0aGUgd3B0c2VydmVyIHBhY2thZ2UgdXNlcyBhIHNpbmdsZXRvbgorICAgICAgICAjIHBh
dHRlcm4gd2hpY2ggcmVzaXN0cyB0ZXN0aW5nLiBJbiBvcmRlciB0byBhdm9pZCBjb25mbGljdGlu
ZyB3aXRoCisgICAgICAgICMgb3RoZXIgdGVzdHMgd2hpY2ggcmVseSBvbiB0aGF0IG1vZHVsZSwg
cHJlLWV4aXN0aW5nIHN0YXRlIGlzCisgICAgICAgICMgZGlzY2FyZGVkIHRocm91Z2ggYW4gZXhw
bGljaXQgInJlbG9hZCIgb3BlcmF0aW9uLgorICAgICAgICByZWxvYWQobG9nZ2VyKQorCisgICAg
ICAgIHNlcnZlLnJ1bihjb25maWdfcGF0aD10ZW1wZmlsZV9uYW1lKQorCisgICAgdGhyZWFkID0g
dGhyZWFkaW5nLlRocmVhZCh0YXJnZXQ9dGFyZ2V0KQorCisgICAgdGhyZWFkLnN0YXJ0KCkKKwor
ICAgIHNlcnZlcl9zdWJwcm9jZXNzZXMuZ2V0KFRydWUsIHRpbWVvdXQpCisgICAgc3VicHJvY2Vz
cyA9IHNlcnZlcl9zdWJwcm9jZXNzZXMuZ2V0KFRydWUsIHRpbWVvdXQpCisgICAgc3VicHJvY2Vz
cy5raWxsKCkKKworICAgIHRocmVhZC5qb2luKHRpbWVvdXQpCisKKyAgICBhc3NlcnQgbm90IHRo
cmVhZC5pc19hbGl2ZSgpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3NlcnZlL3Rlc3Rfc2VydmUucHkgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3NlcnZlL3Rlc3Rfc2VydmUucHkK
aW5kZXggMWMwODliNTA2NzMuLmQ2YzA4MmE5NzAzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3NlcnZlL3Rlc3Rfc2VydmUucHkK
KysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9z
ZXJ2ZS90ZXN0X3NlcnZlLnB5CkBAIC0xLDYgKzEsNyBAQAoraW1wb3J0IGpzb24KK2ltcG9ydCBv
cwogaW1wb3J0IHBpY2tsZQogaW1wb3J0IHBsYXRmb3JtCi1pbXBvcnQgb3MKIAogaW1wb3J0IHB5
dGVzdAogCkBAIC03NSwzICs3NiwzMiBAQCBkZWYgdGVzdF9waWNrbGUoKToKICAgICAjIEVuc3Vy
ZSB0aGF0IHRoZSBjb25maWcgb2JqZWN0IGNhbiBiZSBwaWNrbGVkCiAgICAgd2l0aCBDb25maWdC
dWlsZGVyKCkgYXMgYzoKICAgICAgICAgcGlja2xlLmR1bXBzKGMpCisKKworZGVmIHRlc3RfY29u
ZmlnX2pzb25fbGVuZ3RoKCk6CisgICAgIyB3ZSBzZXJpYWxpemUgdGhlIGNvbmZpZyBhcyBKU09O
IGZvciBweXRlc3RydW5uZXIgYW5kIHB1dCBpdCBpbiBhbiBlbnYKKyAgICAjIHZhcmlhYmxlLCB3
aGljaCBvbiBXaW5kb3dzIG11c3QgaGF2ZSBhIGxlbmd0aCA8PSAweDdGRkYgKGludDE2KQorICAg
IHdpdGggQ29uZmlnQnVpbGRlcigpIGFzIGM6CisgICAgICAgIGRhdGEgPSBqc29uLmR1bXBzKGMu
YXNfZGljdCgpKQorICAgIGFzc2VydCBsZW4oZGF0YSkgPD0gMHg3RkZGCisKK2RlZiB0ZXN0X2Fs
dGVybmF0ZV9ob3N0X3Vuc3BlY2lmaWVkKCk6CisgICAgQ29uZmlnQnVpbGRlcihicm93c2VyX2hv
c3Q9IndlYi1wbGF0Zm9ybS50ZXN0IikKKworQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKCJwcmlt
YXJ5LCBhbHRlcm5hdGUiLCBbCisgICAgKCJ3ZWItcGxhdGZvcm0udGVzdCIsICJ3ZWItcGxhdGZv
cm0udGVzdCIpLAorICAgICgiYS53ZWItcGxhdGZvcm0udGVzdCIsICJ3ZWItcGxhdGZvcm0udGVz
dCIpLAorICAgICgid2ViLXBsYXRmb3JtLnRlc3QiLCAiYS53ZWItcGxhdGZvcm0udGVzdCIpLAor
ICAgICgiYS53ZWItcGxhdGZvcm0udGVzdCIsICJhLndlYi1wbGF0Zm9ybS50ZXN0IiksCitdKQor
ZGVmIHRlc3RfYWx0ZXJuYXRlX2hvc3RfaW52YWxpZChwcmltYXJ5LCBhbHRlcm5hdGUpOgorICAg
IHdpdGggcHl0ZXN0LnJhaXNlcyhWYWx1ZUVycm9yKToKKyAgICAgICAgQ29uZmlnQnVpbGRlcihi
cm93c2VyX2hvc3Q9cHJpbWFyeSwgYWx0ZXJuYXRlX2hvc3RzPXsiYWx0IjogYWx0ZXJuYXRlfSkK
KworQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKCJwcmltYXJ5LCBhbHRlcm5hdGUiLCBbCisgICAg
KCJ3ZWItcGxhdGZvcm0udGVzdCIsICJub3Qtd2ViLXBsYXRmb3JtLnRlc3QiKSwKKyAgICAoImEu
d2ViLXBsYXRmb3JtLnRlc3QiLCAiYi53ZWItcGxhdGZvcm0udGVzdCIpLAorICAgICgid2ViLXBs
YXRmb3JtLXRlc3RzLmRldiIsICJ3ZWItcGxhdGZvcm0tdGVzdHMubGl2ZSIpLAorXSkKK2RlZiB0
ZXN0X2FsdGVybmF0ZV9ob3N0X3ZhbGlkKHByaW1hcnksIGFsdGVybmF0ZSk6CisgICAgQ29uZmln
QnVpbGRlcihicm93c2VyX2hvc3Q9cHJpbWFyeSwgYWx0ZXJuYXRlX2hvc3RzPXsiYWx0IjogYWx0
ZXJuYXRlfSkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvc2VydmUvdzNjLWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3NlcnZlL3czYy1pbXBvcnQubG9nCmluZGV4
IDlhYTU3MjI1ZGJkLi5kNDgyNmY2OGQ4YSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9zZXJ2ZS93M2MtaW1wb3J0LmxvZworKysg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3NlcnZl
L3czYy1pbXBvcnQubG9nCkBAIC0xNSw2ICsxNSw5IEBAIE5vbmUKIC0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQog
TGlzdCBvZiBmaWxlczoKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3NlcnZlL19faW5pdF9fLnB5CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy9zZXJ2ZS9fX2luaXRfXy5weWMKIC9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3NlcnZlL2NvbW1hbmRzLmpzb24K
IC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3NlcnZl
L3NlcnZlLnB5CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy9zZXJ2ZS9zZXJ2ZS5weWMKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3NlcnZlL3Rlc3RfZnVuY3Rpb25hbC5weQogL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvc2VydmUvdGVzdF9zZXJ2ZS5weQpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy90aGlyZF9wYXJ0eS9lbnVtL2VudW0vdzNjLWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2VudW0vZW51
bS93M2MtaW1wb3J0LmxvZwppbmRleCBiYWMxMjgyZjFiYi4uNmY3YzllMzAxZDYgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhp
cmRfcGFydHkvZW51bS9lbnVtL3czYy1pbXBvcnQubG9nCisrKyBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvZW51bS9lbnVtL3cz
Yy1pbXBvcnQubG9nCkBAIC0xNyw0ICsxNyw1IEBAIExpc3Qgb2YgZmlsZXM6CiAvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9lbnVt
L2VudW0vTElDRU5TRQogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvdGhpcmRfcGFydHkvZW51bS9lbnVtL1JFQURNRQogL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvZW51bS9lbnVtL19f
aW5pdF9fLnB5CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy90aGlyZF9wYXJ0eS9lbnVtL2VudW0vX19pbml0X18ucHljCiAvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9lbnVtL2VudW0v
dGVzdC5weQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9oMi9oMi93M2MtaW1wb3J0LmxvZyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaDIv
aDIvdzNjLWltcG9ydC5sb2cKaW5kZXggZjVjYTRiNzBmYmYuLmJmYThjYzJmN2U4IDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3Ro
aXJkX3BhcnR5L2gyL2gyL3czYy1pbXBvcnQubG9nCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaDIvaDIvdzNjLWltcG9y
dC5sb2cKQEAgLTE1LDEzICsxNSwyNCBAQCBOb25lCiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIExpc3Qgb2Yg
ZmlsZXM6CiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy90aGlyZF9wYXJ0eS9oMi9oMi9fX2luaXRfXy5weQorL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaDIvaDIvX19pbml0X18ucHlj
CiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS9oMi9oMi9jb25maWcucHkKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2gyL2gyL2NvbmZpZy5weWMKIC9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2gy
L2gyL2Nvbm5lY3Rpb24ucHkKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2gyL2gyL2Nvbm5lY3Rpb24ucHljCiAvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9oMi9o
Mi9lcnJvcnMucHkKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3RoaXJkX3BhcnR5L2gyL2gyL2Vycm9ycy5weWMKIC9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2gyL2gyL2V2ZW50cy5w
eQorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhp
cmRfcGFydHkvaDIvaDIvZXZlbnRzLnB5YwogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaDIvaDIvZXhjZXB0aW9ucy5weQorL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFy
dHkvaDIvaDIvZXhjZXB0aW9ucy5weWMKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2gyL2gyL2ZyYW1lX2J1ZmZlci5weQorL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFy
dHkvaDIvaDIvZnJhbWVfYnVmZmVyLnB5YwogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaDIvaDIvc2V0dGluZ3MucHkKKy9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5
L2gyL2gyL3NldHRpbmdzLnB5YwogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaDIvaDIvc3RyZWFtLnB5CisvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9oMi9oMi9z
dHJlYW0ucHljCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy90aGlyZF9wYXJ0eS9oMi9oMi91dGlsaXRpZXMucHkKKy9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2gyL2gyL3V0aWxpdGll
cy5weWMKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3RoaXJkX3BhcnR5L2gyL2gyL3dpbmRvd3MucHkKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2gyL2gyL3dpbmRvd3MucHljCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3RoaXJkX3BhcnR5L2hwYWNrL2hwYWNrL3czYy1pbXBvcnQubG9nIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9ocGFjay9o
cGFjay93M2MtaW1wb3J0LmxvZwppbmRleCAyYmMwYjRiZWQ1ZC4uOGRiMzcxMjQ4NTcgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
dGhpcmRfcGFydHkvaHBhY2svaHBhY2svdzNjLWltcG9ydC5sb2cKKysrIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9ocGFjay9o
cGFjay93M2MtaW1wb3J0LmxvZwpAQCAtMTUsMTEgKzE1LDIwIEBAIE5vbmUKIC0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLQogTGlzdCBvZiBmaWxlczoKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2hwYWNrL2hwYWNrL19faW5pdF9fLnB5CisvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0
eS9ocGFjay9ocGFjay9fX2luaXRfXy5weWMKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2hwYWNrL2hwYWNrL2NvbXBhdC5weQor
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRf
cGFydHkvaHBhY2svaHBhY2svY29tcGF0LnB5YwogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaHBhY2svaHBhY2svZXhjZXB0aW9u
cy5weQorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
dGhpcmRfcGFydHkvaHBhY2svaHBhY2svZXhjZXB0aW9ucy5weWMKIC9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2hwYWNrL2hwYWNr
L2hwYWNrLnB5CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy90aGlyZF9wYXJ0eS9ocGFjay9ocGFjay9ocGFjay5weWMKIC9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2hwYWNrL2hwYWNr
L2h1ZmZtYW4ucHkKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3RoaXJkX3BhcnR5L2hwYWNrL2hwYWNrL2h1ZmZtYW4ucHljCiAvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9ocGFjay9o
cGFjay9odWZmbWFuX2NvbnN0YW50cy5weQorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaHBhY2svaHBhY2svaHVmZm1hbl9jb25z
dGFudHMucHljCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy90aGlyZF9wYXJ0eS9ocGFjay9ocGFjay9odWZmbWFuX3RhYmxlLnB5CisvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9ocGFj
ay9ocGFjay9odWZmbWFuX3RhYmxlLnB5YwogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaHBhY2svaHBhY2svc3RydWN0LnB5Cisv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9w
YXJ0eS9ocGFjay9ocGFjay9zdHJ1Y3QucHljCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9ocGFjay9ocGFjay90YWJsZS5weQor
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRf
cGFydHkvaHBhY2svaHBhY2svdGFibGUucHljCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2h5cGVyL2h5cGVy
L2h0dHAyMC9jb25uZWN0aW9uLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9oeXBlci9oeXBlci9odHRwMjAvY29ubmVjdGlv
bi5weQppbmRleCAzYzM5Mjc2NzFmNS4uMTIwNzZjZGFmMTQgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaHlw
ZXIvaHlwZXIvaHR0cDIwL2Nvbm5lY3Rpb24ucHkKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9oeXBlci9oeXBlci9odHRw
MjAvY29ubmVjdGlvbi5weQpAQCAtNSw5ICs1LDkgQEAgaHlwZXIvaHR0cDIwL2Nvbm5lY3Rpb24K
IAogT2JqZWN0cyB0aGF0IGJ1aWxkIGh5cGVyJ3MgY29ubmVjdGlvbi1sZXZlbCBIVFRQLzIgYWJz
dHJhY3Rpb24uCiAiIiIKLWZyb20gLi5oMiBpbXBvcnQgY29ubmVjdGlvbiBhcyBoMkNvbm5lY3Rp
b24KLWZyb20gLi5oMiBpbXBvcnQgZXZlbnRzIGFzIGgyRXZlbnRzCi1mcm9tIC4uaDIgaW1wb3J0
IHNldHRpbmdzIGFzIGgyU2V0dGluZ3MKK2ltcG9ydCBoMi5jb25uZWN0aW9uCitpbXBvcnQgaDIu
ZXZlbnRzCitpbXBvcnQgaDIuc2V0dGluZ3MKIAogZnJvbSAuLmNvbXBhdCBpbXBvcnQgc3NsCiBm
cm9tIC4udGxzIGltcG9ydCB3cmFwX3NvY2tldCwgSDJfTlBOX1BST1RPQ09MUywgSDJDX1BST1RP
Q09MCkBAIC0xODUsNyArMTg1LDcgQEAgY2xhc3MgSFRUUDIwQ29ubmVjdGlvbihvYmplY3QpOgog
ICAgICAgICB1c2VycyBzaG91bGQgYmUgc3Ryb25nbHkgZGlzY291cmFnZWQgZnJvbSBtZXNzaW5n
IGFib3V0IHdpdGggY29ubmVjdGlvbgogICAgICAgICBvYmplY3RzIHRoZW1zZWx2ZXMuCiAgICAg
ICAgICIiIgotICAgICAgICBzZWxmLl9jb25uID0gX0xvY2tlZE9iamVjdChoMkNvbm5lY3Rpb24u
SDJDb25uZWN0aW9uKCkpCisgICAgICAgIHNlbGYuX2Nvbm4gPSBfTG9ja2VkT2JqZWN0KGgyLmNv
bm5lY3Rpb24uSDJDb25uZWN0aW9uKCkpCiAKICAgICAgICAgIyBTdHJlYW1zIGFyZSBzdG9yZWQg
aW4gYSBkaWN0aW9uYXJ5IGtleWVkIG9mZiB0aGVpciBzdHJlYW0gSURzLiBXZQogICAgICAgICAj
IGFsc28gc2F2ZSB0aGUgbW9zdCByZWNlbnQgb25lIGZvciBlYXN5IGFjY2VzcyB3aXRob3V0IGhh
dmluZyB0byB3YWxrCkBAIC0zODcsNyArMzg3LDcgQEAgY2xhc3MgSFRUUDIwQ29ubmVjdGlvbihv
YmplY3QpOgogICAgICAgICB3aXRoIHNlbGYuX2Nvbm4gYXMgY29ubjoKICAgICAgICAgICAgIGNv
bm4uaW5pdGlhdGVfdXBncmFkZV9jb25uZWN0aW9uKCkKICAgICAgICAgICAgIGNvbm4udXBkYXRl
X3NldHRpbmdzKAotICAgICAgICAgICAgICAgIHtoMlNldHRpbmdzLkVOQUJMRV9QVVNIOiBpbnQo
c2VsZi5fZW5hYmxlX3B1c2gpfQorICAgICAgICAgICAgICAgIHtoMi5zZXR0aW5ncy5TZXR0aW5n
Q29kZXMuRU5BQkxFX1BVU0g6IGludChzZWxmLl9lbmFibGVfcHVzaCl9CiAgICAgICAgICAgICAp
CiAgICAgICAgIHNlbGYuX3NlbmRfb3V0c3RhbmRpbmdfZGF0YSgpCiAKQEAgLTQwOCw3ICs0MDgs
NyBAQCBjbGFzcyBIVFRQMjBDb25uZWN0aW9uKG9iamVjdCk6CiAgICAgICAgIHdpdGggc2VsZi5f
Y29ubiBhcyBjb25uOgogICAgICAgICAgICAgY29ubi5pbml0aWF0ZV9jb25uZWN0aW9uKCkKICAg
ICAgICAgICAgIGNvbm4udXBkYXRlX3NldHRpbmdzKAotICAgICAgICAgICAgICAgIHtoMlNldHRp
bmdzLkVOQUJMRV9QVVNIOiBpbnQoc2VsZi5fZW5hYmxlX3B1c2gpfQorICAgICAgICAgICAgICAg
IHtoMi5zZXR0aW5ncy5TZXR0aW5nQ29kZXMuRU5BQkxFX1BVU0g6IGludChzZWxmLl9lbmFibGVf
cHVzaCl9CiAgICAgICAgICAgICApCiAgICAgICAgIHNlbGYuX3NlbmRfb3V0c3RhbmRpbmdfZGF0
YSgpCiAKQEAgLTY3MywxMCArNjczLDEwIEBAIGNsYXNzIEhUVFAyMENvbm5lY3Rpb24ob2JqZWN0
KToKICAgICAgICAgICAgIHNlbGYucmVjZW50X3JlY3Zfc3RyZWFtcyB8PSBzdHJlYW1faWRzCiAK
ICAgICAgICAgZm9yIGV2ZW50IGluIGV2ZW50czoKLSAgICAgICAgICAgIGlmIGlzaW5zdGFuY2Uo
ZXZlbnQsIGgyRXZlbnRzLkRhdGFSZWNlaXZlZCk6CisgICAgICAgICAgICBpZiBpc2luc3RhbmNl
KGV2ZW50LCBoMi5ldmVudHMuRGF0YVJlY2VpdmVkKToKICAgICAgICAgICAgICAgICBzZWxmLl9h
ZGp1c3RfcmVjZWl2ZV93aW5kb3coZXZlbnQuZmxvd19jb250cm9sbGVkX2xlbmd0aCkKICAgICAg
ICAgICAgICAgICBzZWxmLnN0cmVhbXNbZXZlbnQuc3RyZWFtX2lkXS5yZWNlaXZlX2RhdGEoZXZl
bnQpCi0gICAgICAgICAgICBlbGlmIGlzaW5zdGFuY2UoZXZlbnQsIGgyRXZlbnRzLlB1c2hlZFN0
cmVhbVJlY2VpdmVkKToKKyAgICAgICAgICAgIGVsaWYgaXNpbnN0YW5jZShldmVudCwgaDIuZXZl
bnRzLlB1c2hlZFN0cmVhbVJlY2VpdmVkKToKICAgICAgICAgICAgICAgICBpZiBzZWxmLl9lbmFi
bGVfcHVzaDoKICAgICAgICAgICAgICAgICAgICAgc2VsZi5fbmV3X3N0cmVhbShldmVudC5wdXNo
ZWRfc3RyZWFtX2lkLCBsb2NhbF9jbG9zZWQ9VHJ1ZSkKICAgICAgICAgICAgICAgICAgICAgc2Vs
Zi5zdHJlYW1zW2V2ZW50LnBhcmVudF9zdHJlYW1faWRdLnJlY2VpdmVfcHVzaChldmVudCkKQEAg
LTY4NiwxNyArNjg2LDE3IEBAIGNsYXNzIEhUVFAyMENvbm5lY3Rpb24ob2JqZWN0KToKICAgICAg
ICAgICAgICAgICAgICAgIyBjbGllbnQgYWN0aW9uIHVuZGVmaW5lZCB3aGVuIHRoZXkgZG8gaXQg
YW55d2F5LiBTbyB3ZQogICAgICAgICAgICAgICAgICAgICAjIGp1c3QgcmVmdXNlIHRoZSBzdHJl
YW0gYW5kIGdvIGFib3V0IG91ciBidXNpbmVzcy4KICAgICAgICAgICAgICAgICAgICAgc2VsZi5f
c2VuZF9yc3RfZnJhbWUoZXZlbnQucHVzaGVkX3N0cmVhbV9pZCwgNykKLSAgICAgICAgICAgIGVs
aWYgaXNpbnN0YW5jZShldmVudCwgaDJFdmVudHMuUmVzcG9uc2VSZWNlaXZlZCk6CisgICAgICAg
ICAgICBlbGlmIGlzaW5zdGFuY2UoZXZlbnQsIGgyLmV2ZW50cy5SZXNwb25zZVJlY2VpdmVkKToK
ICAgICAgICAgICAgICAgICBzZWxmLnN0cmVhbXNbZXZlbnQuc3RyZWFtX2lkXS5yZWNlaXZlX3Jl
c3BvbnNlKGV2ZW50KQotICAgICAgICAgICAgZWxpZiBpc2luc3RhbmNlKGV2ZW50LCBoMkV2ZW50
cy5UcmFpbGVyc1JlY2VpdmVkKToKKyAgICAgICAgICAgIGVsaWYgaXNpbnN0YW5jZShldmVudCwg
aDIuZXZlbnRzLlRyYWlsZXJzUmVjZWl2ZWQpOgogICAgICAgICAgICAgICAgIHNlbGYuc3RyZWFt
c1tldmVudC5zdHJlYW1faWRdLnJlY2VpdmVfdHJhaWxlcnMoZXZlbnQpCi0gICAgICAgICAgICBl
bGlmIGlzaW5zdGFuY2UoZXZlbnQsIGgyRXZlbnRzLlN0cmVhbUVuZGVkKToKKyAgICAgICAgICAg
IGVsaWYgaXNpbnN0YW5jZShldmVudCwgaDIuZXZlbnRzLlN0cmVhbUVuZGVkKToKICAgICAgICAg
ICAgICAgICBzZWxmLnN0cmVhbXNbZXZlbnQuc3RyZWFtX2lkXS5yZWNlaXZlX2VuZF9zdHJlYW0o
ZXZlbnQpCi0gICAgICAgICAgICBlbGlmIGlzaW5zdGFuY2UoZXZlbnQsIGgyRXZlbnRzLlN0cmVh
bVJlc2V0KToKKyAgICAgICAgICAgIGVsaWYgaXNpbnN0YW5jZShldmVudCwgaDIuZXZlbnRzLlN0
cmVhbVJlc2V0KToKICAgICAgICAgICAgICAgICBpZiBldmVudC5zdHJlYW1faWQgbm90IGluIHNl
bGYucmVzZXRfc3RyZWFtczoKICAgICAgICAgICAgICAgICAgICAgc2VsZi5yZXNldF9zdHJlYW1z
LmFkZChldmVudC5zdHJlYW1faWQpCiAgICAgICAgICAgICAgICAgICAgIHNlbGYuc3RyZWFtc1tl
dmVudC5zdHJlYW1faWRdLnJlY2VpdmVfcmVzZXQoZXZlbnQpCi0gICAgICAgICAgICBlbGlmIGlz
aW5zdGFuY2UoZXZlbnQsIGgyRXZlbnRzLkNvbm5lY3Rpb25UZXJtaW5hdGVkKToKKyAgICAgICAg
ICAgIGVsaWYgaXNpbnN0YW5jZShldmVudCwgaDIuZXZlbnRzLkNvbm5lY3Rpb25UZXJtaW5hdGVk
KToKICAgICAgICAgICAgICAgICAjIElmIHdlIGdldCBHb0F3YXkgd2l0aCBlcnJvciBjb2RlIHpl
cm8sIHdlIGFyZSBkb2luZyBhCiAgICAgICAgICAgICAgICAgIyBncmFjZWZ1bCBzaHV0ZG93biBh
bmQgYWxsIGlzIHdlbGwuIE90aGVyd2lzZSwgdGhyb3cgYW4KICAgICAgICAgICAgICAgICAjIGV4
Y2VwdGlvbi4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaHlwZXJmcmFtZS9oeXBlcmZyYW1lL3czYy1pbXBv
cnQubG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy90aGlyZF9wYXJ0eS9oeXBlcmZyYW1lL2h5cGVyZnJhbWUvdzNjLWltcG9ydC5sb2cKaW5kZXgg
ZWRmNWI1ZjI4NGYuLjRkYmUzOWU3YzVjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2h5cGVyZnJhbWUvaHlw
ZXJmcmFtZS93M2MtaW1wb3J0LmxvZworKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2h5cGVyZnJhbWUvaHlwZXJmcmFtZS93
M2MtaW1wb3J0LmxvZwpAQCAtMTUsNiArMTUsMTAgQEAgTm9uZQogLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiBM
aXN0IG9mIGZpbGVzOgogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvdGhpcmRfcGFydHkvaHlwZXJmcmFtZS9oeXBlcmZyYW1lL19faW5pdF9fLnB5Cisv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9w
YXJ0eS9oeXBlcmZyYW1lL2h5cGVyZnJhbWUvX19pbml0X18ucHljCiAvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9oeXBlcmZyYW1l
L2h5cGVyZnJhbWUvZXhjZXB0aW9ucy5weQorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaHlwZXJmcmFtZS9oeXBlcmZyYW1lL2V4
Y2VwdGlvbnMucHljCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy90aGlyZF9wYXJ0eS9oeXBlcmZyYW1lL2h5cGVyZnJhbWUvZmxhZ3MucHkKKy9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5
L2h5cGVyZnJhbWUvaHlwZXJmcmFtZS9mbGFncy5weWMKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2h5cGVyZnJhbWUvaHlwZXJm
cmFtZS9mcmFtZS5weQorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvdGhpcmRfcGFydHkvaHlwZXJmcmFtZS9oeXBlcmZyYW1lL2ZyYW1lLnB5YwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy90aGlyZF9wYXJ0eS90b29sdG9vbC90b29sdG9vbC5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvdG9vbHRvb2wvdG9vbHRv
b2wucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjUzOTI5ZmNlODgw
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS90b29sdG9vbC90b29sdG9vbC5weQpAQCAtMCwwICsx
LDEzMTYgQEAKKyMhL3Vzci9iaW4vZW52IHB5dGhvbgorCisjIHRvb2x0b29sIGlzIGEgbG9va2Fz
aWRlIGNhY2hlIGltcGxlbWVudGVkIGluIFB5dGhvbgorIyBDb3B5cmlnaHQgKEMpIDIwMTEgSm9o
biBILiBGb3JkIDxqb2huQGpvaG5mb3JkLmluZm8+CisjCisjIFRoaXMgcHJvZ3JhbSBpcyBmcmVl
IHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyMgbW9kaWZ5IGl0IHVu
ZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyMgYXMgcHVi
bGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24gdmVyc2lvbiAyCisjCisjIFRo
aXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNl
ZnVsLAorIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGll
ZCB3YXJyYW50eSBvZgorIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSIFBVUlBPU0UuICBTZWUgdGhlCisjIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBt
b3JlIGRldGFpbHMuCisjCisjIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhl
IEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisjIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBp
ZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCisjIEZvdW5kYXRpb24sIEluYy4sIDUx
IEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEKKyMgMDIxMTAtMTMwMSwg
VVNBLgorCisjIEEgbWFuaWZlc3QgZmlsZSBzcGVjaWZpZXMgZmlsZXMgaW4gdGhhdCBkaXJlY3Rv
cnkgdGhhdCBhcmUgc3RvcmVkCisjIGVsc2V3aGVyZS4gVGhpcyBmaWxlIHNob3VsZCBvbmx5IGxp
c3QgZmlsZXMgaW4gdGhlIHNhbWUgZGlyZWN0b3J5CisjIGluIHdoaWNoIHRoZSBtYW5pZmVzdCBm
aWxlIHJlc2lkZXMgYW5kIGl0IHNob3VsZCBiZSBjYWxsZWQKKyMgJ21hbmlmZXN0LnR0JworCitm
cm9tIF9fZnV0dXJlX18gaW1wb3J0IHByaW50X2Z1bmN0aW9uCisKK2ltcG9ydCBiYXNlNjQKK2lt
cG9ydCBjYWxlbmRhcgoraW1wb3J0IGhhc2hsaWIKK2ltcG9ydCBobWFjCitpbXBvcnQganNvbgor
aW1wb3J0IGxvZ2dpbmcKK2ltcG9ydCBtYXRoCitpbXBvcnQgb3B0cGFyc2UKK2ltcG9ydCBvcwor
aW1wb3J0IHBwcmludAoraW1wb3J0IHJlCitpbXBvcnQgc2h1dGlsCitpbXBvcnQgc3lzCitpbXBv
cnQgdGFyZmlsZQoraW1wb3J0IHRlbXBmaWxlCitpbXBvcnQgdGhyZWFkaW5nCitpbXBvcnQgdGlt
ZQoraW1wb3J0IHppcGZpbGUKKworZnJvbSBpbyBpbXBvcnQgb3BlbgorZnJvbSBpbyBpbXBvcnQg
Qnl0ZXNJTworZnJvbSBzdWJwcm9jZXNzIGltcG9ydCBQSVBFCitmcm9tIHN1YnByb2Nlc3MgaW1w
b3J0IFBvcGVuCisKK19fdmVyc2lvbl9fID0gJzEnCisKKyMgQWxsb3dlZCByZXF1ZXN0IGhlYWRl
ciBjaGFyYWN0ZXJzOgorIyAhIyQlJicoKSorLC0uLzo7PD0+P0BbXV5fYHt8fX4gYW5kIHNwYWNl
LCBhLXosIEEtWiwgMC05LCBcLCAiCitSRVFVRVNUX0hFQURFUl9BVFRSSUJVVEVfQ0hBUlMgPSBy
ZS5jb21waWxlKAorICAgIHIiXlsgYS16QS1aMC05X1whI1wkJSYnXChcKVwqXCssXC1cLi9cOjs8
XD0+XD9AXFtcXVxeYFx7XHxcfX5dKiQiKQorREVGQVVMVF9NQU5JRkVTVF9OQU1FID0gJ21hbmlm
ZXN0LnR0JworVE9PTFRPT0xfUEFDS0FHRV9TVUZGSVggPSAnLlRPT0xUT09MLVBBQ0tBR0UnCitI
QVdLX1ZFUiA9IDEKK1BZMyA9IHN5cy52ZXJzaW9uX2luZm9bMF0gPT0gMworCitpZiBQWTM6Cisg
ICAgb3Blbl9hdHRycyA9IGRpY3QobW9kZT0ndycsIGVuY29kaW5nPSd1dGYtOCcpCisgICAgc2l4
X2JpbmFyeV90eXBlID0gYnl0ZXMKKyAgICBzaXhfdGV4dF90eXBlID0gc3RyCisgICAgdW5pY29k
ZSA9IHN0ciAgIyBTaWxlbmNlIGBweWZsYWtlc2AgZnJvbSByZXBvcnRpbmcgYHVuZGVmaW5lZCBu
YW1lICd1bmljb2RlJ2AgaW4gUHl0aG9uIDMuCisgICAgaW1wb3J0IHVybGxpYi5yZXF1ZXN0IGFz
IHVybGxpYjIKKyAgICBmcm9tIGh0dHAuY2xpZW50IGltcG9ydCBIVFRQU0Nvbm5lY3Rpb24sIEhU
VFBDb25uZWN0aW9uCisgICAgZnJvbSB1cmxsaWIucGFyc2UgaW1wb3J0IHVybHBhcnNlLCB1cmxq
b2luCisgICAgZnJvbSB1cmxsaWIucmVxdWVzdCBpbXBvcnQgUmVxdWVzdAorICAgIGZyb20gdXJs
bGliLmVycm9yIGltcG9ydCBIVFRQRXJyb3IsIFVSTEVycm9yCitlbHNlOgorICAgIG9wZW5fYXR0
cnMgPSBkaWN0KG1vZGU9J3diJykKKyAgICBzaXhfYmluYXJ5X3R5cGUgPSBzdHIKKyAgICBzaXhf
dGV4dF90eXBlID0gdW5pY29kZQorICAgIGltcG9ydCB1cmxsaWIyCisgICAgZnJvbSBodHRwbGli
IGltcG9ydCBIVFRQU0Nvbm5lY3Rpb24sIEhUVFBDb25uZWN0aW9uCisgICAgZnJvbSB1cmxsaWIy
IGltcG9ydCBSZXF1ZXN0LCBIVFRQRXJyb3IsIFVSTEVycm9yCisgICAgZnJvbSB1cmxwYXJzZSBp
bXBvcnQgdXJscGFyc2UsIHVybGpvaW4KKworCitsb2cgPSBsb2dnaW5nLmdldExvZ2dlcihfX25h
bWVfXykKKworCitkZWYgcmVxdWVzdF9oYXNfZGF0YShyZXEpOgorICAgIGlmIFBZMzoKKyAgICAg
ICAgcmV0dXJuIHJlcS5kYXRhIGlzIG5vdCBOb25lCisgICAgcmV0dXJuIHJlcS5oYXNfZGF0YSgp
CisKKworZGVmIHRvX2JpbmFyeSh2YWwpOgorICAgIGlmIGlzaW5zdGFuY2UodmFsLCBzaXhfdGV4
dF90eXBlKToKKyAgICAgICAgcmV0dXJuIHZhbC5lbmNvZGUoJ3V0Zi04JykKKyAgICByZXR1cm4g
dmFsCisKKworZGVmIHRvX3RleHQodmFsKToKKyAgICBpZiBpc2luc3RhbmNlKHZhbCwgc2l4X2Jp
bmFyeV90eXBlKToKKyAgICAgICAgcmV0dXJuIHZhbC5kZWNvZGUoJ3V0Zi04JykKKyAgICByZXR1
cm4gdmFsCisKKworZGVmIGdldF9oZXhkaWdlc3QodmFsKToKKyAgICByZXR1cm4gaGFzaGxpYi5z
aGE1MTIodG9fYmluYXJ5KHZhbCkpLmhleGRpZ2VzdCgpCisKKworY2xhc3MgRmlsZVJlY29yZEpT
T05FbmNvZGVyRXhjZXB0aW9uKEV4Y2VwdGlvbik6CisgICAgcGFzcworCisKK2NsYXNzIEludmFs
aWRNYW5pZmVzdChFeGNlcHRpb24pOgorICAgIHBhc3MKKworCitjbGFzcyBFeGNlcHRpb25XaXRo
RmlsZW5hbWUoRXhjZXB0aW9uKToKKworICAgIGRlZiBfX2luaXRfXyhzZWxmLCBmaWxlbmFtZSk6
CisgICAgICAgIEV4Y2VwdGlvbi5fX2luaXRfXyhzZWxmKQorICAgICAgICBzZWxmLmZpbGVuYW1l
ID0gZmlsZW5hbWUKKworCitjbGFzcyBCYWRGaWxlbmFtZUV4Y2VwdGlvbihFeGNlcHRpb25XaXRo
RmlsZW5hbWUpOgorICAgIHBhc3MKKworCitjbGFzcyBEaWdlc3RNaXNtYXRjaEV4Y2VwdGlvbihF
eGNlcHRpb25XaXRoRmlsZW5hbWUpOgorICAgIHBhc3MKKworCitjbGFzcyBNaXNzaW5nRmlsZUV4
Y2VwdGlvbihFeGNlcHRpb25XaXRoRmlsZW5hbWUpOgorICAgIHBhc3MKKworCitjbGFzcyBJbnZh
bGlkQ3JlZGVudGlhbHMoRXhjZXB0aW9uKToKKyAgICBwYXNzCisKKworY2xhc3MgQmFkSGVhZGVy
VmFsdWUoRXhjZXB0aW9uKToKKyAgICBwYXNzCisKKworZGVmIHBhcnNlX3VybCh1cmwpOgorICAg
IHVybF9wYXJ0cyA9IHVybHBhcnNlKHVybCkKKyAgICB1cmxfZGljdCA9IHsKKyAgICAgICAgJ3Nj
aGVtZSc6IHVybF9wYXJ0cy5zY2hlbWUsCisgICAgICAgICdob3N0bmFtZSc6IHVybF9wYXJ0cy5o
b3N0bmFtZSwKKyAgICAgICAgJ3BvcnQnOiB1cmxfcGFydHMucG9ydCwKKyAgICAgICAgJ3BhdGgn
OiB1cmxfcGFydHMucGF0aCwKKyAgICAgICAgJ3Jlc291cmNlJzogdXJsX3BhcnRzLnBhdGgsCisg
ICAgICAgICdxdWVyeSc6IHVybF9wYXJ0cy5xdWVyeSwKKyAgICB9CisgICAgaWYgbGVuKHVybF9k
aWN0WydxdWVyeSddKSA+IDA6CisgICAgICAgIHVybF9kaWN0WydyZXNvdXJjZSddID0gJyVzPyVz
JyAlICh1cmxfZGljdFsncmVzb3VyY2UnXSwgICMgcHJhZ21hOiBubyBjb3ZlcgorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXJsX2RpY3RbJ3F1ZXJ5J10pCisKKyAg
ICBpZiB1cmxfcGFydHMucG9ydCBpcyBOb25lOgorICAgICAgICBpZiB1cmxfcGFydHMuc2NoZW1l
ID09ICdodHRwJzoKKyAgICAgICAgICAgIHVybF9kaWN0Wydwb3J0J10gPSA4MAorICAgICAgICBl
bGlmIHVybF9wYXJ0cy5zY2hlbWUgPT0gJ2h0dHBzJzogICMgcHJhZ21hOiBubyBjb3ZlcgorICAg
ICAgICAgICAgdXJsX2RpY3RbJ3BvcnQnXSA9IDQ0MworICAgIHJldHVybiB1cmxfZGljdAorCisK
K2RlZiB1dGNfbm93KG9mZnNldF9pbl9zZWNvbmRzPTAuMCk6CisgICAgcmV0dXJuIGludChtYXRo
LmZsb29yKGNhbGVuZGFyLnRpbWVnbSh0aW1lLmdtdGltZSgpKSArIGZsb2F0KG9mZnNldF9pbl9z
ZWNvbmRzKSkpCisKKworZGVmIHJhbmRvbV9zdHJpbmcobGVuZ3RoKToKKyAgICByZXR1cm4gYmFz
ZTY0LnVybHNhZmVfYjY0ZW5jb2RlKG9zLnVyYW5kb20obGVuZ3RoKSlbOmxlbmd0aF0KKworCitk
ZWYgcHJlcGFyZV9oZWFkZXJfdmFsKHZhbCk6CisgICAgaWYgaXNpbnN0YW5jZSh2YWwsIHNpeF9i
aW5hcnlfdHlwZSk6CisgICAgICAgIHZhbCA9IHZhbC5kZWNvZGUoJ3V0Zi04JykKKworICAgIGlm
IG5vdCBSRVFVRVNUX0hFQURFUl9BVFRSSUJVVEVfQ0hBUlMubWF0Y2godmFsKToKKyAgICAgICAg
cmFpc2UgQmFkSGVhZGVyVmFsdWUoICAjIHByYWdtYTogbm8gY292ZXIKKyAgICAgICAgICAgICdo
ZWFkZXIgdmFsdWUgdmFsdWU9e3ZhbH0gY29udGFpbmVkIGFuIGlsbGVnYWwgY2hhcmFjdGVyJy5m
b3JtYXQodmFsPXJlcHIodmFsKSkpCisKKyAgICByZXR1cm4gdmFsCisKKworZGVmIHBhcnNlX2Nv
bnRlbnRfdHlwZShjb250ZW50X3R5cGUpOiAgIyBwcmFnbWE6IG5vIGNvdmVyCisgICAgaWYgY29u
dGVudF90eXBlOgorICAgICAgICByZXR1cm4gY29udGVudF90eXBlLnNwbGl0KCc7JylbMF0uc3Ry
aXAoKS5sb3dlcigpCisgICAgZWxzZToKKyAgICAgICAgcmV0dXJuICcnCisKKworZGVmIGNhbGN1
bGF0ZV9wYXlsb2FkX2hhc2goYWxnb3JpdGhtLCBwYXlsb2FkLCBjb250ZW50X3R5cGUpOiAgIyBw
cmFnbWE6IG5vIGNvdmVyCisgICAgcGFydHMgPSBbCisgICAgICAgIHBhcnQgaWYgaXNpbnN0YW5j
ZShwYXJ0LCBzaXhfYmluYXJ5X3R5cGUpIGVsc2UgcGFydC5lbmNvZGUoJ3V0ZjgnKQorICAgICAg
ICBmb3IgcGFydCBpbiBbJ2hhd2suJyArIHN0cihIQVdLX1ZFUikgKyAnLnBheWxvYWRcbicsCisg
ICAgICAgICAgICAgICAgICAgICBwYXJzZV9jb250ZW50X3R5cGUoY29udGVudF90eXBlKSArICdc
bicsCisgICAgICAgICAgICAgICAgICAgICBwYXlsb2FkIG9yICcnLAorICAgICAgICAgICAgICAg
ICAgICAgJ1xuJywKKyAgICAgICAgICAgICAgICAgICAgIF0KKyAgICBdCisKKyAgICBwX2hhc2gg
PSBoYXNobGliLm5ldyhhbGdvcml0aG0pCisgICAgcF9oYXNoLnVwZGF0ZSgnJy5qb2luKHBhcnRz
KSkKKworICAgIGxvZy5kZWJ1ZygnY2FsY3VsYXRpbmcgcGF5bG9hZCBoYXNoIGZyb206XG57cGFy
dHN9Jy5mb3JtYXQocGFydHM9cHByaW50LnBmb3JtYXQocGFydHMpKSkKKworICAgIHJldHVybiBi
YXNlNjQuYjY0ZW5jb2RlKHBfaGFzaC5kaWdlc3QoKSkKKworCitkZWYgdmFsaWRhdGVfdGFza2Ns
dXN0ZXJfY3JlZGVudGlhbHMoY3JlZGVudGlhbHMpOgorICAgIGlmIG5vdCBoYXNhdHRyKGNyZWRl
bnRpYWxzLCAnX19nZXRpdGVtX18nKToKKyAgICAgICAgcmFpc2UgSW52YWxpZENyZWRlbnRpYWxz
KCdjcmVkZW50aWFscyBtdXN0IGJlIGEgZGljdC1saWtlIG9iamVjdCcpICAjIHByYWdtYTogbm8g
Y292ZXIKKyAgICB0cnk6CisgICAgICAgIGNyZWRlbnRpYWxzWydjbGllbnRJZCddCisgICAgICAg
IGNyZWRlbnRpYWxzWydhY2Nlc3NUb2tlbiddCisgICAgZXhjZXB0IEtleUVycm9yOiAgIyBwcmFn
bWE6IG5vIGNvdmVyCisgICAgICAgIGV0eXBlLCB2YWwsIHRiID0gc3lzLmV4Y19pbmZvKCkKKyAg
ICAgICAgcmFpc2UgSW52YWxpZENyZWRlbnRpYWxzKCd7ZXR5cGV9OiB7dmFsfScuZm9ybWF0KGV0
eXBlPWV0eXBlLCB2YWw9dmFsKSkKKworCitkZWYgbm9ybWFsaXplX2hlYWRlcl9hdHRyKHZhbCk6
CisgICAgaWYgaXNpbnN0YW5jZSh2YWwsIHNpeF9iaW5hcnlfdHlwZSk6CisgICAgICAgIHJldHVy
biB2YWwuZGVjb2RlKCd1dGYtOCcpCisgICAgcmV0dXJuIHZhbCAgIyBwcmFnbWE6IG5vIGNvdmVy
CisKKworZGVmIG5vcm1hbGl6ZV9zdHJpbmcobWFjX3R5cGUsCisgICAgICAgICAgICAgICAgICAg
ICB0aW1lc3RhbXAsCisgICAgICAgICAgICAgICAgICAgICBub25jZSwKKyAgICAgICAgICAgICAg
ICAgICAgIG1ldGhvZCwKKyAgICAgICAgICAgICAgICAgICAgIG5hbWUsCisgICAgICAgICAgICAg
ICAgICAgICBob3N0LAorICAgICAgICAgICAgICAgICAgICAgcG9ydCwKKyAgICAgICAgICAgICAg
ICAgICAgIGNvbnRlbnRfaGFzaCwKKyAgICAgICAgICAgICAgICAgICAgICk6CisgICAgcmV0dXJu
ICdcbicuam9pbihbCisgICAgICAgIG5vcm1hbGl6ZV9oZWFkZXJfYXR0cihoZWFkZXIpCisgICAg
ICAgICMgVGhlIGJsYW5rIGxpbmVzIGFyZSBpbXBvcnRhbnQuIFRoZXkgZm9sbG93IHdoYXQgdGhl
IE5vZGUgSGF3ayBsaWIgZG9lcy4KKyAgICAgICAgZm9yIGhlYWRlciBpbiBbJ2hhd2suJyArIHN0
cihIQVdLX1ZFUikgKyAnLicgKyBtYWNfdHlwZSwKKyAgICAgICAgICAgICAgICAgICAgICAgdGlt
ZXN0YW1wLAorICAgICAgICAgICAgICAgICAgICAgICBub25jZSwKKyAgICAgICAgICAgICAgICAg
ICAgICAgbWV0aG9kIG9yICcnLAorICAgICAgICAgICAgICAgICAgICAgICBuYW1lIG9yICcnLAor
ICAgICAgICAgICAgICAgICAgICAgICBob3N0LAorICAgICAgICAgICAgICAgICAgICAgICBwb3J0
LAorICAgICAgICAgICAgICAgICAgICAgICBjb250ZW50X2hhc2ggb3IgJycsCisgICAgICAgICAg
ICAgICAgICAgICAgICcnLCAgIyBmb3IgZXh0IHdoaWNoIGlzIGVtcHR5IGluIHRoaXMgY2FzZQor
ICAgICAgICAgICAgICAgICAgICAgICAnJywgICMgQWRkIHRyYWlsaW5nIG5ldyBsaW5lLgorICAg
ICAgICAgICAgICAgICAgICAgICBdCisgICAgXSkKKworCitkZWYgY2FsY3VsYXRlX21hYyhtYWNf
dHlwZSwKKyAgICAgICAgICAgICAgICAgIGFjY2Vzc190b2tlbiwKKyAgICAgICAgICAgICAgICAg
IGFsZ29yaXRobSwKKyAgICAgICAgICAgICAgICAgIHRpbWVzdGFtcCwKKyAgICAgICAgICAgICAg
ICAgIG5vbmNlLAorICAgICAgICAgICAgICAgICAgbWV0aG9kLAorICAgICAgICAgICAgICAgICAg
bmFtZSwKKyAgICAgICAgICAgICAgICAgIGhvc3QsCisgICAgICAgICAgICAgICAgICBwb3J0LAor
ICAgICAgICAgICAgICAgICAgY29udGVudF9oYXNoLAorICAgICAgICAgICAgICAgICAgKToKKyAg
ICBub3JtYWxpemVkID0gbm9ybWFsaXplX3N0cmluZyhtYWNfdHlwZSwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICB0aW1lc3RhbXAsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgbm9uY2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWV0aG9k
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWUsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgaG9zdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBwb3J0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRlbnRfaGFz
aCkKKyAgICBsb2cuZGVidWcodSdub3JtYWxpemVkIHJlc291cmNlIGZvciBtYWMgY2FsYzoge25v
cm19Jy5mb3JtYXQobm9ybT1ub3JtYWxpemVkKSkKKyAgICBkaWdlc3Rtb2QgPSBnZXRhdHRyKGhh
c2hsaWIsIGFsZ29yaXRobSkKKworICAgIGlmIG5vdCBpc2luc3RhbmNlKG5vcm1hbGl6ZWQsIHNp
eF9iaW5hcnlfdHlwZSk6CisgICAgICAgIG5vcm1hbGl6ZWQgPSBub3JtYWxpemVkLmVuY29kZSgn
dXRmOCcpCisKKyAgICBpZiBub3QgaXNpbnN0YW5jZShhY2Nlc3NfdG9rZW4sIHNpeF9iaW5hcnlf
dHlwZSk6CisgICAgICAgIGFjY2Vzc190b2tlbiA9IGFjY2Vzc190b2tlbi5lbmNvZGUoJ2FzY2lp
JykKKworICAgIHJlc3VsdCA9IGhtYWMubmV3KGFjY2Vzc190b2tlbiwgbm9ybWFsaXplZCwgZGln
ZXN0bW9kKQorICAgIHJldHVybiBiYXNlNjQuYjY0ZW5jb2RlKHJlc3VsdC5kaWdlc3QoKSkKKwor
CitkZWYgbWFrZV90YXNrY2x1c3Rlcl9oZWFkZXIoY3JlZGVudGlhbHMsIHJlcSk6CisgICAgdmFs
aWRhdGVfdGFza2NsdXN0ZXJfY3JlZGVudGlhbHMoY3JlZGVudGlhbHMpCisKKyAgICB1cmwgPSBy
ZXEuZ2V0X2Z1bGxfdXJsKCkKKyAgICBtZXRob2QgPSByZXEuZ2V0X21ldGhvZCgpCisgICAgYWxn
b3JpdGhtID0gJ3NoYTI1NicKKyAgICB0aW1lc3RhbXAgPSBzdHIodXRjX25vdygpKQorICAgIG5v
bmNlID0gcmFuZG9tX3N0cmluZyg2KQorICAgIHVybF9wYXJ0cyA9IHBhcnNlX3VybCh1cmwpCisK
KyAgICBjb250ZW50X2hhc2ggPSBOb25lCisgICAgaWYgcmVxdWVzdF9oYXNfZGF0YShyZXEpOgor
ICAgICAgICBjb250ZW50X2hhc2ggPSBjYWxjdWxhdGVfcGF5bG9hZF9oYXNoKCAgIyBwcmFnbWE6
IG5vIGNvdmVyCisgICAgICAgICAgICBhbGdvcml0aG0sCisgICAgICAgICAgICByZXEuZ2V0X2Rh
dGEoKSwKKyAgICAgICAgICAgICMgbWF5YmUgd2Ugc2hvdWxkIGRldGVjdCB0aGlzIGZyb20gcmVx
LmhlYWRlcnMgYnV0IHdlIGFueXdheSBleHBlY3QganNvbgorICAgICAgICAgICAgY29udGVudF90
eXBlPSdhcHBsaWNhdGlvbi9qc29uJywKKyAgICAgICAgKQorCisgICAgbWFjID0gY2FsY3VsYXRl
X21hYygnaGVhZGVyJywKKyAgICAgICAgICAgICAgICAgICAgICAgIGNyZWRlbnRpYWxzWydhY2Nl
c3NUb2tlbiddLAorICAgICAgICAgICAgICAgICAgICAgICAgYWxnb3JpdGhtLAorICAgICAgICAg
ICAgICAgICAgICAgICAgdGltZXN0YW1wLAorICAgICAgICAgICAgICAgICAgICAgICAgbm9uY2Us
CisgICAgICAgICAgICAgICAgICAgICAgICBtZXRob2QsCisgICAgICAgICAgICAgICAgICAgICAg
ICB1cmxfcGFydHNbJ3Jlc291cmNlJ10sCisgICAgICAgICAgICAgICAgICAgICAgICB1cmxfcGFy
dHNbJ2hvc3RuYW1lJ10sCisgICAgICAgICAgICAgICAgICAgICAgICBzdHIodXJsX3BhcnRzWydw
b3J0J10pLAorICAgICAgICAgICAgICAgICAgICAgICAgY29udGVudF9oYXNoLAorICAgICAgICAg
ICAgICAgICAgICAgICAgKQorCisgICAgaGVhZGVyID0gdSdIYXdrIG1hYz0ie30iJy5mb3JtYXQo
cHJlcGFyZV9oZWFkZXJfdmFsKG1hYykpCisKKyAgICBpZiBjb250ZW50X2hhc2g6ICAjIHByYWdt
YTogbm8gY292ZXIKKyAgICAgICAgaGVhZGVyID0gdSd7fSwgaGFzaD0ie30iJy5mb3JtYXQoaGVh
ZGVyLCBwcmVwYXJlX2hlYWRlcl92YWwoY29udGVudF9oYXNoKSkKKworICAgIGhlYWRlciA9IHUn
e2hlYWRlcn0sIGlkPSJ7aWR9IiwgdHM9Int0c30iLCBub25jZT0ie25vbmNlfSInLmZvcm1hdCgK
KyAgICAgICAgaGVhZGVyPWhlYWRlciwKKyAgICAgICAgaWQ9cHJlcGFyZV9oZWFkZXJfdmFsKGNy
ZWRlbnRpYWxzWydjbGllbnRJZCddKSwKKyAgICAgICAgdHM9cHJlcGFyZV9oZWFkZXJfdmFsKHRp
bWVzdGFtcCksCisgICAgICAgIG5vbmNlPXByZXBhcmVfaGVhZGVyX3ZhbChub25jZSksCisgICAg
KQorCisgICAgbG9nLmRlYnVnKCdIYXdrIGhlYWRlciBmb3IgVVJMPXt9IG1ldGhvZD17fToge30n
LmZvcm1hdCh1cmwsIG1ldGhvZCwgaGVhZGVyKSkKKworICAgIHJldHVybiBoZWFkZXIKKworCitj
bGFzcyBGaWxlUmVjb3JkKG9iamVjdCk6CisKKyAgICBkZWYgX19pbml0X18oc2VsZiwgZmlsZW5h
bWUsIHNpemUsIGRpZ2VzdCwgYWxnb3JpdGhtLCB1bnBhY2s9RmFsc2UsCisgICAgICAgICAgICAg
ICAgIHZlcnNpb249Tm9uZSwgdmlzaWJpbGl0eT1Ob25lKToKKyAgICAgICAgb2JqZWN0Ll9faW5p
dF9fKHNlbGYpCisgICAgICAgIGlmICcvJyBpbiBmaWxlbmFtZSBvciAnXFwnIGluIGZpbGVuYW1l
OgorICAgICAgICAgICAgbG9nLmVycm9yKAorICAgICAgICAgICAgICAgICJUaGUgZmlsZW5hbWUg
cHJvdmlkZWQgY29udGFpbnMgcGF0aCBpbmZvcm1hdGlvbiBhbmQgaXMsIHRoZXJlZm9yZSwgaW52
YWxpZC4iKQorICAgICAgICAgICAgcmFpc2UgQmFkRmlsZW5hbWVFeGNlcHRpb24oZmlsZW5hbWU9
ZmlsZW5hbWUpCisgICAgICAgIHNlbGYuZmlsZW5hbWUgPSBmaWxlbmFtZQorICAgICAgICBzZWxm
LnNpemUgPSBzaXplCisgICAgICAgIHNlbGYuZGlnZXN0ID0gZGlnZXN0CisgICAgICAgIHNlbGYu
YWxnb3JpdGhtID0gYWxnb3JpdGhtCisgICAgICAgIHNlbGYudW5wYWNrID0gdW5wYWNrCisgICAg
ICAgIHNlbGYudmVyc2lvbiA9IHZlcnNpb24KKyAgICAgICAgc2VsZi52aXNpYmlsaXR5ID0gdmlz
aWJpbGl0eQorCisgICAgZGVmIF9fZXFfXyhzZWxmLCBvdGhlcik6CisgICAgICAgIGlmIHNlbGYg
aXMgb3RoZXI6CisgICAgICAgICAgICByZXR1cm4gVHJ1ZQorICAgICAgICBpZiBzZWxmLmZpbGVu
YW1lID09IG90aGVyLmZpbGVuYW1lIGFuZCBcCisgICAgICAgICAgIHNlbGYuc2l6ZSA9PSBvdGhl
ci5zaXplIGFuZCBcCisgICAgICAgICAgIHNlbGYuZGlnZXN0ID09IG90aGVyLmRpZ2VzdCBhbmQg
XAorICAgICAgICAgICBzZWxmLmFsZ29yaXRobSA9PSBvdGhlci5hbGdvcml0aG0gYW5kIFwKKyAg
ICAgICAgICAgc2VsZi52ZXJzaW9uID09IG90aGVyLnZlcnNpb24gYW5kIFwKKyAgICAgICAgICAg
c2VsZi52aXNpYmlsaXR5ID09IG90aGVyLnZpc2liaWxpdHk6CisgICAgICAgICAgICByZXR1cm4g
VHJ1ZQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgcmV0dXJuIEZhbHNlCisKKyAgICBkZWYg
X19uZV9fKHNlbGYsIG90aGVyKToKKyAgICAgICAgcmV0dXJuIG5vdCBzZWxmLl9fZXFfXyhvdGhl
cikKKworICAgIGRlZiBfX3N0cl9fKHNlbGYpOgorICAgICAgICByZXR1cm4gcmVwcihzZWxmKQor
CisgICAgZGVmIF9fcmVwcl9fKHNlbGYpOgorICAgICAgICByZXR1cm4gIiVzLiVzKGZpbGVuYW1l
PSclcycsIHNpemU9JXMsIGRpZ2VzdD0nJXMnLCBhbGdvcml0aG09JyVzJywgdmlzaWJpbGl0eT0l
cikiICUgKAorICAgICAgICAgICAgX19uYW1lX18sIHNlbGYuX19jbGFzc19fLl9fbmFtZV9fLCBz
ZWxmLmZpbGVuYW1lLCBzZWxmLnNpemUsCisgICAgICAgICAgICBzZWxmLmRpZ2VzdCwgc2VsZi5h
bGdvcml0aG0sIHNlbGYudmlzaWJpbGl0eSkKKworICAgIGRlZiBwcmVzZW50KHNlbGYpOgorICAg
ICAgICAjIERvZXNuJ3QgY2hlY2sgdmFsaWRpdHkKKyAgICAgICAgcmV0dXJuIG9zLnBhdGguZXhp
c3RzKHNlbGYuZmlsZW5hbWUpCisKKyAgICBkZWYgdmFsaWRhdGVfc2l6ZShzZWxmKToKKyAgICAg
ICAgaWYgc2VsZi5wcmVzZW50KCk6CisgICAgICAgICAgICByZXR1cm4gc2VsZi5zaXplID09IG9z
LnBhdGguZ2V0c2l6ZShzZWxmLmZpbGVuYW1lKQorICAgICAgICBlbHNlOgorICAgICAgICAgICAg
bG9nLmRlYnVnKAorICAgICAgICAgICAgICAgICJ0cnlpbmcgdG8gdmFsaWRhdGUgc2l6ZSBvbiBh
IG1pc3NpbmcgZmlsZSwgJXMiLCBzZWxmLmZpbGVuYW1lKQorICAgICAgICAgICAgcmFpc2UgTWlz
c2luZ0ZpbGVFeGNlcHRpb24oZmlsZW5hbWU9c2VsZi5maWxlbmFtZSkKKworICAgIGRlZiB2YWxp
ZGF0ZV9kaWdlc3Qoc2VsZik6CisgICAgICAgIGlmIHNlbGYucHJlc2VudCgpOgorICAgICAgICAg
ICAgd2l0aCBvcGVuKHNlbGYuZmlsZW5hbWUsICdyYicpIGFzIGY6CisgICAgICAgICAgICAgICAg
cmV0dXJuIHNlbGYuZGlnZXN0ID09IGRpZ2VzdF9maWxlKGYsIHNlbGYuYWxnb3JpdGhtKQorICAg
ICAgICBlbHNlOgorICAgICAgICAgICAgbG9nLmRlYnVnKAorICAgICAgICAgICAgICAgICJ0cnlp
bmcgdG8gdmFsaWRhdGUgZGlnZXN0IG9uIGEgbWlzc2luZyBmaWxlLCAlcycsIHNlbGYuZmlsZW5h
bWUiKQorICAgICAgICAgICAgcmFpc2UgTWlzc2luZ0ZpbGVFeGNlcHRpb24oZmlsZW5hbWU9c2Vs
Zi5maWxlbmFtZSkKKworICAgIGRlZiB2YWxpZGF0ZShzZWxmKToKKyAgICAgICAgaWYgc2VsZi5z
aXplIGlzIE5vbmUgb3Igc2VsZi52YWxpZGF0ZV9zaXplKCk6CisgICAgICAgICAgICBpZiBzZWxm
LnZhbGlkYXRlX2RpZ2VzdCgpOgorICAgICAgICAgICAgICAgIHJldHVybiBUcnVlCisgICAgICAg
IHJldHVybiBGYWxzZQorCisgICAgZGVmIGRlc2NyaWJlKHNlbGYpOgorICAgICAgICBpZiBzZWxm
LnByZXNlbnQoKSBhbmQgc2VsZi52YWxpZGF0ZSgpOgorICAgICAgICAgICAgcmV0dXJuICInJXMn
IGlzIHByZXNlbnQgYW5kIHZhbGlkIiAlIHNlbGYuZmlsZW5hbWUKKyAgICAgICAgZWxpZiBzZWxm
LnByZXNlbnQoKToKKyAgICAgICAgICAgIHJldHVybiAiJyVzJyBpcyBwcmVzZW50IGFuZCBpbnZh
bGlkIiAlIHNlbGYuZmlsZW5hbWUKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHJldHVybiAi
JyVzJyBpcyBhYnNlbnQiICUgc2VsZi5maWxlbmFtZQorCisKK2RlZiBjcmVhdGVfZmlsZV9yZWNv
cmQoZmlsZW5hbWUsIGFsZ29yaXRobSk6CisgICAgZm8gPSBvcGVuKGZpbGVuYW1lLCAncmInKQor
ICAgIHN0b3JlZF9maWxlbmFtZSA9IG9zLnBhdGguc3BsaXQoZmlsZW5hbWUpWzFdCisgICAgZnIg
PSBGaWxlUmVjb3JkKHN0b3JlZF9maWxlbmFtZSwgb3MucGF0aC5nZXRzaXplKAorICAgICAgICBm
aWxlbmFtZSksIGRpZ2VzdF9maWxlKGZvLCBhbGdvcml0aG0pLCBhbGdvcml0aG0pCisgICAgZm8u
Y2xvc2UoKQorICAgIHJldHVybiBmcgorCisKK2NsYXNzIEZpbGVSZWNvcmRKU09ORW5jb2Rlcihq
c29uLkpTT05FbmNvZGVyKToKKworICAgIGRlZiBlbmNvZGVfZmlsZV9yZWNvcmQoc2VsZiwgb2Jq
KToKKyAgICAgICAgaWYgbm90IGlzc3ViY2xhc3ModHlwZShvYmopLCBGaWxlUmVjb3JkKToKKyAg
ICAgICAgICAgIGVyciA9ICJGaWxlUmVjb3JkSlNPTkVuY29kZXIgaXMgb25seSBmb3IgRmlsZVJl
Y29yZCBhbmQgbGlzdHMgb2YgRmlsZVJlY29yZHMsICIgXAorICAgICAgICAgICAgICAgICAgIm5v
dCAlcyIgJSBvYmouX19jbGFzc19fLl9fbmFtZV9fCisgICAgICAgICAgICBsb2cud2FybihlcnIp
CisgICAgICAgICAgICByYWlzZSBGaWxlUmVjb3JkSlNPTkVuY29kZXJFeGNlcHRpb24oZXJyKQor
ICAgICAgICBlbHNlOgorICAgICAgICAgICAgcnYgPSB7CisgICAgICAgICAgICAgICAgJ2ZpbGVu
YW1lJzogb2JqLmZpbGVuYW1lLAorICAgICAgICAgICAgICAgICdzaXplJzogb2JqLnNpemUsCisg
ICAgICAgICAgICAgICAgJ2FsZ29yaXRobSc6IG9iai5hbGdvcml0aG0sCisgICAgICAgICAgICAg
ICAgJ2RpZ2VzdCc6IG9iai5kaWdlc3QsCisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiBv
YmoudW5wYWNrOgorICAgICAgICAgICAgICAgIHJ2Wyd1bnBhY2snXSA9IFRydWUKKyAgICAgICAg
ICAgIGlmIG9iai52ZXJzaW9uOgorICAgICAgICAgICAgICAgIHJ2Wyd2ZXJzaW9uJ10gPSBvYmou
dmVyc2lvbgorICAgICAgICAgICAgaWYgb2JqLnZpc2liaWxpdHkgaXMgbm90IE5vbmU6CisgICAg
ICAgICAgICAgICAgcnZbJ3Zpc2liaWxpdHknXSA9IG9iai52aXNpYmlsaXR5CisgICAgICAgICAg
ICByZXR1cm4gcnYKKworICAgIGRlZiBkZWZhdWx0KHNlbGYsIGYpOgorICAgICAgICBpZiBpc3N1
YmNsYXNzKHR5cGUoZiksIGxpc3QpOgorICAgICAgICAgICAgcmVjb3JkX2xpc3QgPSBbXQorICAg
ICAgICAgICAgZm9yIGkgaW4gZjoKKyAgICAgICAgICAgICAgICByZWNvcmRfbGlzdC5hcHBlbmQo
c2VsZi5lbmNvZGVfZmlsZV9yZWNvcmQoaSkpCisgICAgICAgICAgICByZXR1cm4gcmVjb3JkX2xp
c3QKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHJldHVybiBzZWxmLmVuY29kZV9maWxlX3Jl
Y29yZChmKQorCisKK2NsYXNzIEZpbGVSZWNvcmRKU09ORGVjb2Rlcihqc29uLkpTT05EZWNvZGVy
KToKKworICAgICIiIkkgaGVscCB0aGUganNvbiBtb2R1bGUgbWF0ZXJpYWxpemUgYSBGaWxlUmVj
b3JkIGZyb20KKyAgICBhIEpTT04gZmlsZS4gIEkgdW5kZXJzdGFuZCBGaWxlUmVjb3JkcyBhbmQg
bGlzdHMgb2YKKyAgICBGaWxlUmVjb3Jkcy4gIEkgaWdub3JlIHRoaW5ncyB0aGF0IEkgZG9uJ3Qg
ZXhwZWN0IGZvciBub3ciIiIKKyAgICAjIFRPRE86IG1ha2UgdGhpcyBtb3JlIGV4cGxpY2l0IGlu
IHdoYXQgaXQncyBsb29raW5nIGZvcgorICAgICMgYW5kIGVycm9yIG91dCBvbiB1bmV4cGVjdGVk
IHRoaW5ncworCisgICAgZGVmIHByb2Nlc3NfZmlsZV9yZWNvcmRzKHNlbGYsIG9iaik6CisgICAg
ICAgIGlmIGlzaW5zdGFuY2Uob2JqLCBsaXN0KToKKyAgICAgICAgICAgIHJlY29yZF9saXN0ID0g
W10KKyAgICAgICAgICAgIGZvciBpIGluIG9iajoKKyAgICAgICAgICAgICAgICByZWNvcmQgPSBz
ZWxmLnByb2Nlc3NfZmlsZV9yZWNvcmRzKGkpCisgICAgICAgICAgICAgICAgaWYgaXNzdWJjbGFz
cyh0eXBlKHJlY29yZCksIEZpbGVSZWNvcmQpOgorICAgICAgICAgICAgICAgICAgICByZWNvcmRf
bGlzdC5hcHBlbmQocmVjb3JkKQorICAgICAgICAgICAgcmV0dXJuIHJlY29yZF9saXN0CisgICAg
ICAgIHJlcXVpcmVkX2ZpZWxkcyA9IFsKKyAgICAgICAgICAgICdmaWxlbmFtZScsCisgICAgICAg
ICAgICAnc2l6ZScsCisgICAgICAgICAgICAnYWxnb3JpdGhtJywKKyAgICAgICAgICAgICdkaWdl
c3QnLAorICAgICAgICBdCisgICAgICAgIGlmIGlzaW5zdGFuY2Uob2JqLCBkaWN0KToKKyAgICAg
ICAgICAgIG1pc3NpbmcgPSBGYWxzZQorICAgICAgICAgICAgZm9yIHJlcSBpbiByZXF1aXJlZF9m
aWVsZHM6CisgICAgICAgICAgICAgICAgaWYgcmVxIG5vdCBpbiBvYmo6CisgICAgICAgICAgICAg
ICAgICAgIG1pc3NpbmcgPSBUcnVlCisgICAgICAgICAgICAgICAgICAgIGJyZWFrCisKKyAgICAg
ICAgICAgIGlmIG5vdCBtaXNzaW5nOgorICAgICAgICAgICAgICAgIHVucGFjayA9IG9iai5nZXQo
J3VucGFjaycsIEZhbHNlKQorICAgICAgICAgICAgICAgIHZlcnNpb24gPSBvYmouZ2V0KCd2ZXJz
aW9uJywgTm9uZSkKKyAgICAgICAgICAgICAgICB2aXNpYmlsaXR5ID0gb2JqLmdldCgndmlzaWJp
bGl0eScsIE5vbmUpCisgICAgICAgICAgICAgICAgcnYgPSBGaWxlUmVjb3JkKAorICAgICAgICAg
ICAgICAgICAgICBvYmpbJ2ZpbGVuYW1lJ10sIG9ialsnc2l6ZSddLCBvYmpbJ2RpZ2VzdCddLCBv
YmpbJ2FsZ29yaXRobSddLAorICAgICAgICAgICAgICAgICAgICB1bnBhY2ssIHZlcnNpb24sIHZp
c2liaWxpdHkpCisgICAgICAgICAgICAgICAgbG9nLmRlYnVnKCJtYXRlcmlhbGl6ZWQgJXMiICUg
cnYpCisgICAgICAgICAgICAgICAgcmV0dXJuIHJ2CisgICAgICAgIHJldHVybiBvYmoKKworICAg
IGRlZiBkZWNvZGUoc2VsZiwgcyk6CisgICAgICAgIGRlY29kZWQgPSBqc29uLkpTT05EZWNvZGVy
LmRlY29kZShzZWxmLCBzKQorICAgICAgICBydiA9IHNlbGYucHJvY2Vzc19maWxlX3JlY29yZHMo
ZGVjb2RlZCkKKyAgICAgICAgcmV0dXJuIHJ2CisKKworY2xhc3MgTWFuaWZlc3Qob2JqZWN0KToK
KworICAgIHZhbGlkX2Zvcm1hdHMgPSAoJ2pzb24nLCkKKworICAgIGRlZiBfX2luaXRfXyhzZWxm
LCBmaWxlX3JlY29yZHM9Tm9uZSk6CisgICAgICAgIHNlbGYuZmlsZV9yZWNvcmRzID0gZmlsZV9y
ZWNvcmRzIG9yIFtdCisKKyAgICBkZWYgX19lcV9fKHNlbGYsIG90aGVyKToKKyAgICAgICAgaWYg
c2VsZiBpcyBvdGhlcjoKKyAgICAgICAgICAgIHJldHVybiBUcnVlCisgICAgICAgIGlmIGxlbihz
ZWxmLmZpbGVfcmVjb3JkcykgIT0gbGVuKG90aGVyLmZpbGVfcmVjb3Jkcyk6CisgICAgICAgICAg
ICBsb2cuZGVidWcoJ01hbmlmZXN0cyBkaWZmZXIgaW4gbnVtYmVyIG9mIGZpbGVzJykKKyAgICAg
ICAgICAgIHJldHVybiBGYWxzZQorICAgICAgICAjIHNvcnQgdGhlIGZpbGUgcmVjb3JkcyBieSBm
aWxlbmFtZSBiZWZvcmUgY29tcGFyaW5nCisgICAgICAgIG1pbmUgPSBzb3J0ZWQoKGZyLmZpbGVu
YW1lLCBmcikgZm9yIGZyIGluIHNlbGYuZmlsZV9yZWNvcmRzKQorICAgICAgICB0aGVpcnMgPSBz
b3J0ZWQoKGZyLmZpbGVuYW1lLCBmcikgZm9yIGZyIGluIG90aGVyLmZpbGVfcmVjb3JkcykKKyAg
ICAgICAgcmV0dXJuIG1pbmUgPT0gdGhlaXJzCisKKyAgICBkZWYgX19uZV9fKHNlbGYsIG90aGVy
KToKKyAgICAgICAgcmV0dXJuIG5vdCBzZWxmLl9fZXFfXyhvdGhlcikKKworICAgIGRlZiBfX2Rl
ZXBjb3B5X18oc2VsZiwgbWVtbyk6CisgICAgICAgICMgVGhpcyBpcyByZXF1aXJlZCBmb3IgYSBk
ZWVwIGNvcHkKKyAgICAgICAgcmV0dXJuIE1hbmlmZXN0KHNlbGYuZmlsZV9yZWNvcmRzWzpdKQor
CisgICAgZGVmIF9fY29weV9fKHNlbGYpOgorICAgICAgICByZXR1cm4gTWFuaWZlc3Qoc2VsZi5m
aWxlX3JlY29yZHMpCisKKyAgICBkZWYgY29weShzZWxmKToKKyAgICAgICAgcmV0dXJuIE1hbmlm
ZXN0KHNlbGYuZmlsZV9yZWNvcmRzWzpdKQorCisgICAgZGVmIHByZXNlbnQoc2VsZik6CisgICAg
ICAgIHJldHVybiBhbGwoaS5wcmVzZW50KCkgZm9yIGkgaW4gc2VsZi5maWxlX3JlY29yZHMpCisK
KyAgICBkZWYgdmFsaWRhdGVfc2l6ZXMoc2VsZik6CisgICAgICAgIHJldHVybiBhbGwoaS52YWxp
ZGF0ZV9zaXplKCkgZm9yIGkgaW4gc2VsZi5maWxlX3JlY29yZHMpCisKKyAgICBkZWYgdmFsaWRh
dGVfZGlnZXN0cyhzZWxmKToKKyAgICAgICAgcmV0dXJuIGFsbChpLnZhbGlkYXRlX2RpZ2VzdCgp
IGZvciBpIGluIHNlbGYuZmlsZV9yZWNvcmRzKQorCisgICAgZGVmIHZhbGlkYXRlKHNlbGYpOgor
ICAgICAgICByZXR1cm4gYWxsKGkudmFsaWRhdGUoKSBmb3IgaSBpbiBzZWxmLmZpbGVfcmVjb3Jk
cykKKworICAgIGRlZiBsb2FkKHNlbGYsIGRhdGFfZmlsZSwgZm10PSdqc29uJyk6CisgICAgICAg
IGFzc2VydCBmbXQgaW4gc2VsZi52YWxpZF9mb3JtYXRzCisgICAgICAgIGlmIGZtdCA9PSAnanNv
bic6CisgICAgICAgICAgICB0cnk6CisgICAgICAgICAgICAgICAgc2VsZi5maWxlX3JlY29yZHMu
ZXh0ZW5kKAorICAgICAgICAgICAgICAgICAgICBqc29uLmxvYWQoZGF0YV9maWxlLCBjbHM9Rmls
ZVJlY29yZEpTT05EZWNvZGVyKSkKKyAgICAgICAgICAgIGV4Y2VwdCBWYWx1ZUVycm9yOgorICAg
ICAgICAgICAgICAgIHJhaXNlIEludmFsaWRNYW5pZmVzdCgidHJ5aW5nIHRvIHJlYWQgaW52YWxp
ZCBtYW5pZmVzdCBmaWxlIikKKworICAgIGRlZiBsb2FkcyhzZWxmLCBkYXRhX3N0cmluZywgZm10
PSdqc29uJyk6CisgICAgICAgIGFzc2VydCBmbXQgaW4gc2VsZi52YWxpZF9mb3JtYXRzCisgICAg
ICAgIGlmIGZtdCA9PSAnanNvbic6CisgICAgICAgICAgICB0cnk6CisgICAgICAgICAgICAgICAg
c2VsZi5maWxlX3JlY29yZHMuZXh0ZW5kKAorICAgICAgICAgICAgICAgICAgICBqc29uLmxvYWRz
KGRhdGFfc3RyaW5nLCBjbHM9RmlsZVJlY29yZEpTT05EZWNvZGVyKSkKKyAgICAgICAgICAgIGV4
Y2VwdCBWYWx1ZUVycm9yOgorICAgICAgICAgICAgICAgIHJhaXNlIEludmFsaWRNYW5pZmVzdCgi
dHJ5aW5nIHRvIHJlYWQgaW52YWxpZCBtYW5pZmVzdCBmaWxlIikKKworICAgIGRlZiBkdW1wKHNl
bGYsIG91dHB1dF9maWxlLCBmbXQ9J2pzb24nKToKKyAgICAgICAgYXNzZXJ0IGZtdCBpbiBzZWxm
LnZhbGlkX2Zvcm1hdHMKKyAgICAgICAgaWYgZm10ID09ICdqc29uJzoKKyAgICAgICAgICAgIHJl
dHVybiBqc29uLmR1bXAoCisgICAgICAgICAgICAgICAgc2VsZi5maWxlX3JlY29yZHMsIG91dHB1
dF9maWxlLAorICAgICAgICAgICAgICAgIGluZGVudD0yLCBzZXBhcmF0b3JzPSgnLCcsICc6ICcp
LAorICAgICAgICAgICAgICAgIGNscz1GaWxlUmVjb3JkSlNPTkVuY29kZXIsCisgICAgICAgICAg
ICApCisKKyAgICBkZWYgZHVtcHMoc2VsZiwgZm10PSdqc29uJyk6CisgICAgICAgIGFzc2VydCBm
bXQgaW4gc2VsZi52YWxpZF9mb3JtYXRzCisgICAgICAgIGlmIGZtdCA9PSAnanNvbic6CisgICAg
ICAgICAgICByZXR1cm4ganNvbi5kdW1wcygKKyAgICAgICAgICAgICAgICBzZWxmLmZpbGVfcmVj
b3JkcywKKyAgICAgICAgICAgICAgICBpbmRlbnQ9Miwgc2VwYXJhdG9ycz0oJywnLCAnOiAnKSwK
KyAgICAgICAgICAgICAgICBjbHM9RmlsZVJlY29yZEpTT05FbmNvZGVyLAorICAgICAgICAgICAg
KQorCisKK2RlZiBkaWdlc3RfZmlsZShmLCBhKToKKyAgICAiIiJJIHRha2UgYSBmaWxlIGxpa2Ug
b2JqZWN0ICdmJyBhbmQgcmV0dXJuIGEgaGV4LXN0cmluZyBjb250YWluaW5nCisgICAgb2YgdGhl
IHJlc3VsdCBvZiB0aGUgYWxnb3JpdGhtICdhJyBhcHBsaWVkIHRvICdmJy4iIiIKKyAgICBoID0g
aGFzaGxpYi5uZXcoYSkKKyAgICBjaHVua19zaXplID0gMTAyNCAqIDEwCisgICAgZGF0YSA9IGYu
cmVhZChjaHVua19zaXplKQorICAgIHdoaWxlIGRhdGE6CisgICAgICAgIGgudXBkYXRlKGRhdGEp
CisgICAgICAgIGRhdGEgPSBmLnJlYWQoY2h1bmtfc2l6ZSkKKyAgICBuYW1lID0gcmVwcihmLm5h
bWUpIGlmIGhhc2F0dHIoZiwgJ25hbWUnKSBlbHNlICdhIGZpbGUnCisgICAgbG9nLmRlYnVnKCdo
YXNoZWQgJXMgd2l0aCAlcyB0byBiZSAlcycsIG5hbWUsIGEsIGguaGV4ZGlnZXN0KCkpCisgICAg
cmV0dXJuIGguaGV4ZGlnZXN0KCkKKworCitkZWYgZXhlY3V0ZShjbWQpOgorICAgICIiIkV4ZWN1
dGUgQ01ELCBsb2dnaW5nIGl0cyBzdGRvdXQgYXQgdGhlIGluZm8gbGV2ZWwiIiIKKyAgICBwcm9j
ZXNzID0gUG9wZW4oY21kLCBzaGVsbD1UcnVlLCBzdGRvdXQ9UElQRSkKKyAgICB3aGlsZSBUcnVl
OgorICAgICAgICBsaW5lID0gcHJvY2Vzcy5zdGRvdXQucmVhZGxpbmUoKQorICAgICAgICBpZiBu
b3QgbGluZToKKyAgICAgICAgICAgIGJyZWFrCisgICAgICAgIGxvZy5pbmZvKGxpbmUucmVwbGFj
ZSgnXG4nLCAnICcpKQorICAgIHJldHVybiBwcm9jZXNzLndhaXQoKSA9PSAwCisKKworZGVmIG9w
ZW5fbWFuaWZlc3QobWFuaWZlc3RfZmlsZSk6CisgICAgIiIiSSBrbm93IGhvdyB0byB0YWtlIGEg
ZmlsZW5hbWUgYW5kIGxvYWQgaXQgaW50byBhIE1hbmlmZXN0IG9iamVjdCIiIgorICAgIGlmIG9z
LnBhdGguZXhpc3RzKG1hbmlmZXN0X2ZpbGUpOgorICAgICAgICBtYW5pZmVzdCA9IE1hbmlmZXN0
KCkKKyAgICAgICAgd2l0aCBvcGVuKG1hbmlmZXN0X2ZpbGUsICJyYiIpIGFzIGY6CisgICAgICAg
ICAgICBtYW5pZmVzdC5sb2FkKGYpCisgICAgICAgICAgICBsb2cuZGVidWcoImxvYWRlZCBtYW5p
ZmVzdCBmcm9tIGZpbGUgJyVzJyIgJSBtYW5pZmVzdF9maWxlKQorICAgICAgICByZXR1cm4gbWFu
aWZlc3QKKyAgICBlbHNlOgorICAgICAgICBsb2cuZGVidWcoInRyaWVkIHRvIGxvYWQgYWJzZW50
IGZpbGUgJyVzJyBhcyBtYW5pZmVzdCIgJSBtYW5pZmVzdF9maWxlKQorICAgICAgICByYWlzZSBJ
bnZhbGlkTWFuaWZlc3QoCisgICAgICAgICAgICAibWFuaWZlc3QgZmlsZSAnJXMnIGRvZXMgbm90
IGV4aXN0IiAlIG1hbmlmZXN0X2ZpbGUpCisKKworZGVmIGxpc3RfbWFuaWZlc3QobWFuaWZlc3Rf
ZmlsZSk6CisgICAgIiIiSSBrbm93IGhvdyBwcmludCBhbGwgdGhlIGZpbGVzIGluIGEgbG9jYXRp
b24iIiIKKyAgICB0cnk6CisgICAgICAgIG1hbmlmZXN0ID0gb3Blbl9tYW5pZmVzdChtYW5pZmVz
dF9maWxlKQorICAgIGV4Y2VwdCBJbnZhbGlkTWFuaWZlc3QgYXMgZToKKyAgICAgICAgbG9nLmVy
cm9yKCJmYWlsZWQgdG8gbG9hZCBtYW5pZmVzdCBmaWxlIGF0ICclcyc6ICVzIiAlICgKKyAgICAg
ICAgICAgIG1hbmlmZXN0X2ZpbGUsCisgICAgICAgICAgICBzdHIoZSksCisgICAgICAgICkpCisg
ICAgICAgIHJldHVybiBGYWxzZQorICAgIGZvciBmIGluIG1hbmlmZXN0LmZpbGVfcmVjb3JkczoK
KyAgICAgICAgcHJpbnQoInt9XHR7fVx0e30iLmZvcm1hdCgiUCIgaWYgZi5wcmVzZW50KCkgZWxz
ZSAiLSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlYiIGlmIGYucHJlc2Vu
dCgpIGFuZCBmLnZhbGlkYXRlKCkgZWxzZSAiLSIsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgZi5maWxlbmFtZSkpCisgICAgcmV0dXJuIFRydWUKKworCitkZWYgdmFsaWRhdGVf
bWFuaWZlc3QobWFuaWZlc3RfZmlsZSk6CisgICAgIiIiSSB2YWxpZGF0ZSB0aGF0IGFsbCBmaWxl
cyBpbiBhIG1hbmlmZXN0IGFyZSBwcmVzZW50IGFuZCB2YWxpZCBidXQKKyAgICBkb24ndCBmZXRj
aCBvciBkZWxldGUgdGhlbSBpZiB0aGV5IGFyZW4ndCIiIgorICAgIHRyeToKKyAgICAgICAgbWFu
aWZlc3QgPSBvcGVuX21hbmlmZXN0KG1hbmlmZXN0X2ZpbGUpCisgICAgZXhjZXB0IEludmFsaWRN
YW5pZmVzdCBhcyBlOgorICAgICAgICBsb2cuZXJyb3IoImZhaWxlZCB0byBsb2FkIG1hbmlmZXN0
IGZpbGUgYXQgJyVzJzogJXMiICUgKAorICAgICAgICAgICAgbWFuaWZlc3RfZmlsZSwKKyAgICAg
ICAgICAgIHN0cihlKSwKKyAgICAgICAgKSkKKyAgICAgICAgcmV0dXJuIEZhbHNlCisgICAgaW52
YWxpZF9maWxlcyA9IFtdCisgICAgYWJzZW50X2ZpbGVzID0gW10KKyAgICBmb3IgZiBpbiBtYW5p
ZmVzdC5maWxlX3JlY29yZHM6CisgICAgICAgIGlmIG5vdCBmLnByZXNlbnQoKToKKyAgICAgICAg
ICAgIGFic2VudF9maWxlcy5hcHBlbmQoZikKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIGlm
IG5vdCBmLnZhbGlkYXRlKCk6CisgICAgICAgICAgICAgICAgaW52YWxpZF9maWxlcy5hcHBlbmQo
ZikKKyAgICBpZiBsZW4oaW52YWxpZF9maWxlcyArIGFic2VudF9maWxlcykgPT0gMDoKKyAgICAg
ICAgcmV0dXJuIFRydWUKKyAgICBlbHNlOgorICAgICAgICByZXR1cm4gRmFsc2UKKworCitkZWYg
YWRkX2ZpbGVzKG1hbmlmZXN0X2ZpbGUsIGFsZ29yaXRobSwgZmlsZW5hbWVzLCB2ZXJzaW9uLCB2
aXNpYmlsaXR5LCB1bnBhY2spOgorICAgICMgcmV0dXJucyBUcnVlIGlmIGFsbCBmaWxlcyBzdWNj
ZXNzZnVsbHkgYWRkZWQsIEZhbHNlIGlmIG5vdAorICAgICMgYW5kIGRvZXNuJ3QgY2F0Y2ggbGli
cmFyeSBFeGNlcHRpb25zLiAgSWYgYW55IGZpbGVzIGFyZSBhbHJlYWR5CisgICAgIyB0cmFja2Vk
IGluIHRoZSBtYW5pZmVzdCwgcmV0dXJuIHdpbGwgYmUgRmFsc2UgYmVjYXVzZSB0aGV5IHdlcmVu
J3QKKyAgICAjIGFkZGVkCisgICAgYWxsX2ZpbGVzX2FkZGVkID0gVHJ1ZQorICAgICMgQ3JlYXRl
IGEgb2xkX21hbmlmZXN0IG9iamVjdCB0byBhZGQgdG8KKyAgICBpZiBvcy5wYXRoLmV4aXN0cyht
YW5pZmVzdF9maWxlKToKKyAgICAgICAgb2xkX21hbmlmZXN0ID0gb3Blbl9tYW5pZmVzdChtYW5p
ZmVzdF9maWxlKQorICAgIGVsc2U6CisgICAgICAgIG9sZF9tYW5pZmVzdCA9IE1hbmlmZXN0KCkK
KyAgICAgICAgbG9nLmRlYnVnKCJjcmVhdGluZyBhIG5ldyBtYW5pZmVzdCBmaWxlIikKKyAgICBu
ZXdfbWFuaWZlc3QgPSBNYW5pZmVzdCgpICAjIHVzZSBhIGRpZmZlcmVudCBtYW5pZmVzdCBmb3Ig
dGhlIG91dHB1dAorICAgIGZvciBmaWxlbmFtZSBpbiBmaWxlbmFtZXM6CisgICAgICAgIGxvZy5k
ZWJ1ZygiYWRkaW5nICVzIiAlIGZpbGVuYW1lKQorICAgICAgICBwYXRoLCBuYW1lID0gb3MucGF0
aC5zcGxpdChmaWxlbmFtZSkKKyAgICAgICAgbmV3X2ZyID0gY3JlYXRlX2ZpbGVfcmVjb3JkKGZp
bGVuYW1lLCBhbGdvcml0aG0pCisgICAgICAgIG5ld19mci52ZXJzaW9uID0gdmVyc2lvbgorICAg
ICAgICBuZXdfZnIudmlzaWJpbGl0eSA9IHZpc2liaWxpdHkKKyAgICAgICAgbmV3X2ZyLnVucGFj
ayA9IHVucGFjaworICAgICAgICBsb2cuZGVidWcoImFwcGVuZGluZyBhIG5ldyBmaWxlIHJlY29y
ZCB0byBtYW5pZmVzdCBmaWxlIikKKyAgICAgICAgYWRkID0gVHJ1ZQorICAgICAgICBmb3IgZnIg
aW4gb2xkX21hbmlmZXN0LmZpbGVfcmVjb3JkczoKKyAgICAgICAgICAgIGxvZy5kZWJ1ZygibWFu
aWZlc3QgZmlsZSBoYXMgJyVzJyIgJSAiJywgIi5qb2luKAorICAgICAgICAgICAgICAgIFt4LmZp
bGVuYW1lIGZvciB4IGluIG9sZF9tYW5pZmVzdC5maWxlX3JlY29yZHNdKSkKKyAgICAgICAgICAg
IGlmIG5ld19mciA9PSBmcjoKKyAgICAgICAgICAgICAgICBsb2cuaW5mbygiZmlsZSBhbHJlYWR5
IGluIG9sZF9tYW5pZmVzdCIpCisgICAgICAgICAgICAgICAgYWRkID0gRmFsc2UKKyAgICAgICAg
ICAgIGVsaWYgZmlsZW5hbWUgPT0gZnIuZmlsZW5hbWU6CisgICAgICAgICAgICAgICAgbG9nLmVy
cm9yKCJtYW5pZmVzdCBhbHJlYWR5IGNvbnRhaW5zIGEgZGlmZmVyZW50IGZpbGUgbmFtZWQgJXMi
ICUgZmlsZW5hbWUpCisgICAgICAgICAgICAgICAgYWRkID0gRmFsc2UKKyAgICAgICAgaWYgYWRk
OgorICAgICAgICAgICAgbmV3X21hbmlmZXN0LmZpbGVfcmVjb3Jkcy5hcHBlbmQobmV3X2ZyKQor
ICAgICAgICAgICAgbG9nLmRlYnVnKCJhZGRlZCAnJXMnIHRvIG1hbmlmZXN0IiAlIGZpbGVuYW1l
KQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgYWxsX2ZpbGVzX2FkZGVkID0gRmFsc2UKKyAg
ICAjIGNvcHkgYW55IGZpbGVzIGluIHRoZSBvbGQgbWFuaWZlc3QgdGhhdCBhcmVuJ3QgaW4gdGhl
IG5ldyBvbmUKKyAgICBuZXdfZmlsZW5hbWVzID0gc2V0KGZyLmZpbGVuYW1lIGZvciBmciBpbiBu
ZXdfbWFuaWZlc3QuZmlsZV9yZWNvcmRzKQorICAgIGZvciBvbGRfZnIgaW4gb2xkX21hbmlmZXN0
LmZpbGVfcmVjb3JkczoKKyAgICAgICAgaWYgb2xkX2ZyLmZpbGVuYW1lIG5vdCBpbiBuZXdfZmls
ZW5hbWVzOgorICAgICAgICAgICAgbmV3X21hbmlmZXN0LmZpbGVfcmVjb3Jkcy5hcHBlbmQob2xk
X2ZyKQorICAgIHdpdGggb3BlbihtYW5pZmVzdF9maWxlLCAqKm9wZW5fYXR0cnMpIGFzIG91dHB1
dDoKKyAgICAgICAgbmV3X21hbmlmZXN0LmR1bXAob3V0cHV0LCBmbXQ9J2pzb24nKQorICAgIHJl
dHVybiBhbGxfZmlsZXNfYWRkZWQKKworCitkZWYgdG91Y2goZik6CisgICAgIiIiVXNlZCB0byBt
b2RpZnkgbXRpbWUgaW4gY2FjaGVkIGZpbGVzOworICAgIG10aW1lIGlzIHVzZWQgYnkgdGhlIHB1
cmdlIGNvbW1hbmQiIiIKKyAgICB0cnk6CisgICAgICAgIG9zLnV0aW1lKGYsIE5vbmUpCisgICAg
ZXhjZXB0IE9TRXJyb3I6CisgICAgICAgIGxvZy53YXJuKCdpbXBvc3NpYmxlIHRvIHVwZGF0ZSB1
dGltZSBvZiBmaWxlICVzJyAlIGYpCisKKworZGVmIGZldGNoX2ZpbGUoYmFzZV91cmxzLCBmaWxl
X3JlY29yZCwgZ3JhYmNodW5rPTEwMjQgKiA0LCBhdXRoX2ZpbGU9Tm9uZSwgcmVnaW9uPU5vbmUp
OgorICAgICMgQSBmaWxlIHdoaWNoIGlzIHJlcXVlc3RlZCB0byBiZSBmZXRjaGVkIHRoYXQgZXhp
c3RzIGxvY2FsbHkgd2lsbCBiZQorICAgICMgb3ZlcndyaXR0ZW4gYnkgdGhpcyBmdW5jdGlvbgor
ICAgIGZkLCB0ZW1wX3BhdGggPSB0ZW1wZmlsZS5ta3N0ZW1wKGRpcj1vcy5nZXRjd2QoKSkKKyAg
ICBvcy5jbG9zZShmZCkKKyAgICBmZXRjaGVkX3BhdGggPSBOb25lCisgICAgZm9yIGJhc2VfdXJs
IGluIGJhc2VfdXJsczoKKyAgICAgICAgIyBHZW5lcmF0ZSB0aGUgVVJMIGZvciB0aGUgZmlsZSBv
biB0aGUgc2VydmVyIHNpZGUKKyAgICAgICAgdXJsID0gdXJsam9pbihiYXNlX3VybCwKKyAgICAg
ICAgICAgICAgICAgICAgICAnJXMvJXMnICUgKGZpbGVfcmVjb3JkLmFsZ29yaXRobSwgZmlsZV9y
ZWNvcmQuZGlnZXN0KSkKKyAgICAgICAgaWYgcmVnaW9uIGlzIG5vdCBOb25lOgorICAgICAgICAg
ICAgdXJsICs9ICc/cmVnaW9uPScgKyByZWdpb24KKworICAgICAgICBsb2cuaW5mbygiQXR0ZW1w
dGluZyB0byBmZXRjaCBmcm9tICclcycuLi4iICUgYmFzZV91cmwpCisKKyAgICAgICAgIyBXZWxs
LCB0aGUgZmlsZSBkb2Vzbid0IGV4aXN0IGxvY2FsbHkuICBMZXQncyBmZXRjaCBpdC4KKyAgICAg
ICAgdHJ5OgorICAgICAgICAgICAgcmVxID0gUmVxdWVzdCh1cmwpCisgICAgICAgICAgICBfYXV0
aG9yaXplKHJlcSwgYXV0aF9maWxlKQorICAgICAgICAgICAgZiA9IHVybGxpYjIudXJsb3Blbihy
ZXEpCisgICAgICAgICAgICBsb2cuZGVidWcoIm9wZW5lZCAlcyBmb3IgcmVhZGluZyIgJSB1cmwp
CisgICAgICAgICAgICB3aXRoIG9wZW4odGVtcF9wYXRoLCAqKm9wZW5fYXR0cnMpIGFzIG91dDoK
KyAgICAgICAgICAgICAgICBrID0gVHJ1ZQorICAgICAgICAgICAgICAgIHNpemUgPSAwCisgICAg
ICAgICAgICAgICAgd2hpbGUgazoKKyAgICAgICAgICAgICAgICAgICAgIyBUT0RPOiBwcmludCBz
dGF0aXN0aWNzIGFzIGZpbGUgdHJhbnNmZXJzIGhhcHBlbiBib3RoIGZvciBpbmZvIGFuZCB0byBz
dG9wCisgICAgICAgICAgICAgICAgICAgICMgYnVpbGRib3QgdGltZW91dHMKKyAgICAgICAgICAg
ICAgICAgICAgaW5kYXRhID0gZi5yZWFkKGdyYWJjaHVuaykKKyAgICAgICAgICAgICAgICAgICAg
aWYgUFkzOgorICAgICAgICAgICAgICAgICAgICAgICAgaW5kYXRhID0gdG9fdGV4dChpbmRhdGEp
CisgICAgICAgICAgICAgICAgICAgIG91dC53cml0ZShpbmRhdGEpCisgICAgICAgICAgICAgICAg
ICAgIHNpemUgKz0gbGVuKGluZGF0YSkKKyAgICAgICAgICAgICAgICAgICAgaWYgbGVuKGluZGF0
YSkgPT0gMDoKKyAgICAgICAgICAgICAgICAgICAgICAgIGsgPSBGYWxzZQorICAgICAgICAgICAg
ICAgIGxvZy5pbmZvKCJGaWxlICVzIGZldGNoZWQgZnJvbSAlcyBhcyAlcyIgJQorICAgICAgICAg
ICAgICAgICAgICAgICAgIChmaWxlX3JlY29yZC5maWxlbmFtZSwgYmFzZV91cmwsIHRlbXBfcGF0
aCkpCisgICAgICAgICAgICAgICAgZmV0Y2hlZF9wYXRoID0gdGVtcF9wYXRoCisgICAgICAgICAg
ICAgICAgYnJlYWsKKyAgICAgICAgZXhjZXB0IChVUkxFcnJvciwgSFRUUEVycm9yLCBWYWx1ZUVy
cm9yKToKKyAgICAgICAgICAgIGxvZy5pbmZvKCIuLi5mYWlsZWQgdG8gZmV0Y2ggJyVzJyBmcm9t
ICVzIiAlCisgICAgICAgICAgICAgICAgICAgICAoZmlsZV9yZWNvcmQuZmlsZW5hbWUsIGJhc2Vf
dXJsKSwgZXhjX2luZm89VHJ1ZSkKKyAgICAgICAgZXhjZXB0IElPRXJyb3I6ICAjIHByYWdtYTog
bm8gY292ZXIKKyAgICAgICAgICAgIGxvZy5pbmZvKCJmYWlsZWQgdG8gd3JpdGUgdG8gdGVtcG9y
YXJ5IGZpbGUgZm9yICclcyciICUKKyAgICAgICAgICAgICAgICAgICAgIGZpbGVfcmVjb3JkLmZp
bGVuYW1lLCBleGNfaW5mbz1UcnVlKQorCisgICAgIyBjbGVhbnVwIHRlbXAgZmlsZSBpbiBjYXNl
IG9mIGlzc3VlcworICAgIGlmIGZldGNoZWRfcGF0aDoKKyAgICAgICAgcmV0dXJuIG9zLnBhdGgu
c3BsaXQoZmV0Y2hlZF9wYXRoKVsxXQorICAgIGVsc2U6CisgICAgICAgIHRyeToKKyAgICAgICAg
ICAgIG9zLnJlbW92ZSh0ZW1wX3BhdGgpCisgICAgICAgIGV4Y2VwdCBPU0Vycm9yOiAgIyBwcmFn
bWE6IG5vIGNvdmVyCisgICAgICAgICAgICBwYXNzCisgICAgICAgIHJldHVybiBOb25lCisKKwor
ZGVmIGNsZWFuX3BhdGgoZGlybmFtZSk6CisgICAgIiIiUmVtb3ZlIGEgc3VidHJlZSBpZiBpcyBl
eGlzdHMuIEhlbHBlciBmb3IgdW5wYWNrX2ZpbGUoKS4iIiIKKyAgICBpZiBvcy5wYXRoLmV4aXN0
cyhkaXJuYW1lKToKKyAgICAgICAgbG9nLmluZm8oJ3JtIHRyZWU6ICVzJyAlIGRpcm5hbWUpCisg
ICAgICAgIHNodXRpbC5ybXRyZWUoZGlybmFtZSkKKworCitDSEVDS1NVTV9TVUZGSVggPSAiLmNo
ZWNrc3VtIgorCisKK2RlZiB1bnBhY2tfZmlsZShmaWxlbmFtZSk6CisgICAgIiIiVW50YXIgYGZp
bGVuYW1lYCwgYXNzdW1pbmcgaXQgaXMgdW5jb21wcmVzc2VkIG9yIGNvbXByZXNzZWQgd2l0aCBi
emlwMiwKKyAgICB4eiwgZ3ppcCwgb3IgdW56aXAgYSB6aXAgZmlsZS4gVGhlIGZpbGUgaXMgYXNz
dW1lZCB0byBjb250YWluIGEgc2luZ2xlCisgICAgZGlyZWN0b3J5IHdpdGggYSBuYW1lIG1hdGNo
aW5nIHRoZSBiYXNlIG9mIHRoZSBnaXZlbiBmaWxlbmFtZS4KKyAgICBYeiBzdXBwb3J0IGlzIGhh
bmRsZWQgYnkgc2hlbGxpbmcgb3V0IHRvICd0YXInLiIiIgorICAgIGlmIG9zLnBhdGguaXNmaWxl
KGZpbGVuYW1lKSBhbmQgdGFyZmlsZS5pc190YXJmaWxlKGZpbGVuYW1lKToKKyAgICAgICAgdGFy
X2ZpbGUsIHppcF9leHQgPSBvcy5wYXRoLnNwbGl0ZXh0KGZpbGVuYW1lKQorICAgICAgICBiYXNl
X2ZpbGUsIHRhcl9leHQgPSBvcy5wYXRoLnNwbGl0ZXh0KHRhcl9maWxlKQorICAgICAgICBjbGVh
bl9wYXRoKGJhc2VfZmlsZSkKKyAgICAgICAgbG9nLmluZm8oJ3VudGFycmluZyAiJXMiJyAlIGZp
bGVuYW1lKQorICAgICAgICB0YXIgPSB0YXJmaWxlLm9wZW4oZmlsZW5hbWUpCisgICAgICAgIHRh
ci5leHRyYWN0YWxsKCkKKyAgICAgICAgdGFyLmNsb3NlKCkKKyAgICBlbGlmIG9zLnBhdGguaXNm
aWxlKGZpbGVuYW1lKSBhbmQgZmlsZW5hbWUuZW5kc3dpdGgoJy50YXIueHonKToKKyAgICAgICAg
YmFzZV9maWxlID0gZmlsZW5hbWUucmVwbGFjZSgnLnRhci54eicsICcnKQorICAgICAgICBjbGVh
bl9wYXRoKGJhc2VfZmlsZSkKKyAgICAgICAgbG9nLmluZm8oJ3VudGFycmluZyAiJXMiJyAlIGZp
bGVuYW1lKQorICAgICAgICAjIE5vdCB1c2luZyB0YXIgLUp4ZiBiZWNhdXNlIGl0IGZhaWxzIG9u
IFdpbmRvd3MgZm9yIHNvbWUgcmVhc29uLgorICAgICAgICBwcm9jZXNzID0gUG9wZW4oWyd4eics
ICctZCcsICctYycsIGZpbGVuYW1lXSwgc3Rkb3V0PVBJUEUpCisgICAgICAgIHN0ZG91dCwgc3Rk
ZXJyID0gcHJvY2Vzcy5jb21tdW5pY2F0ZSgpCisgICAgICAgIGlmIHByb2Nlc3MucmV0dXJuY29k
ZSAhPSAwOgorICAgICAgICAgICAgcmV0dXJuIEZhbHNlCisgICAgICAgIGZpbGVvYmogPSBCeXRl
c0lPKCkKKyAgICAgICAgZmlsZW9iai53cml0ZShzdGRvdXQpCisgICAgICAgIGZpbGVvYmouc2Vl
aygwKQorICAgICAgICB0YXIgPSB0YXJmaWxlLm9wZW4oZmlsZW9iaj1maWxlb2JqLCBtb2RlPSdy
fCcpCisgICAgICAgIHRhci5leHRyYWN0YWxsKCkKKyAgICAgICAgdGFyLmNsb3NlKCkKKyAgICBl
bGlmIG9zLnBhdGguaXNmaWxlKGZpbGVuYW1lKSBhbmQgemlwZmlsZS5pc196aXBmaWxlKGZpbGVu
YW1lKToKKyAgICAgICAgYmFzZV9maWxlID0gZmlsZW5hbWUucmVwbGFjZSgnLnppcCcsICcnKQor
ICAgICAgICBjbGVhbl9wYXRoKGJhc2VfZmlsZSkKKyAgICAgICAgbG9nLmluZm8oJ3VuemlwcGlu
ZyAiJXMiJyAlIGZpbGVuYW1lKQorICAgICAgICB6ID0gemlwZmlsZS5aaXBGaWxlKGZpbGVuYW1l
KQorICAgICAgICB6LmV4dHJhY3RhbGwoKQorICAgICAgICB6LmNsb3NlKCkKKyAgICBlbHNlOgor
ICAgICAgICBsb2cuZXJyb3IoIlVua25vd24gYXJjaGl2ZSBleHRlbnNpb24gZm9yIGZpbGVuYW1l
ICclcyciICUgZmlsZW5hbWUpCisgICAgICAgIHJldHVybiBGYWxzZQorICAgIHJldHVybiBUcnVl
CisKKworZGVmIGZldGNoX2ZpbGVzKG1hbmlmZXN0X2ZpbGUsIGJhc2VfdXJscywgZmlsZW5hbWVz
PVtdLCBjYWNoZV9mb2xkZXI9Tm9uZSwKKyAgICAgICAgICAgICAgICBhdXRoX2ZpbGU9Tm9uZSwg
cmVnaW9uPU5vbmUpOgorICAgICMgTGV0cyBsb2FkIHRoZSBtYW5pZmVzdCBmaWxlCisgICAgdHJ5
OgorICAgICAgICBtYW5pZmVzdCA9IG9wZW5fbWFuaWZlc3QobWFuaWZlc3RfZmlsZSkKKyAgICBl
eGNlcHQgSW52YWxpZE1hbmlmZXN0IGFzIGU6CisgICAgICAgIGxvZy5lcnJvcigiZmFpbGVkIHRv
IGxvYWQgbWFuaWZlc3QgZmlsZSBhdCAnJXMnOiAlcyIgJSAoCisgICAgICAgICAgICBtYW5pZmVz
dF9maWxlLAorICAgICAgICAgICAgc3RyKGUpLAorICAgICAgICApKQorICAgICAgICByZXR1cm4g
RmFsc2UKKworICAgICMgd2Ugd2FudCB0byB0cmFjayBmaWxlcyBhbHJlYWR5IGluIGN1cnJlbnQg
d29ya2luZyBkaXJlY3RvcnkgQU5EIHZhbGlkCisgICAgIyB3ZSB3aWxsIG5vdCBuZWVkIHRvIGZl
dGNoIHRoZXNlCisgICAgcHJlc2VudF9maWxlcyA9IFtdCisKKyAgICAjIFdlIHdhbnQgdG8gdHJh
Y2sgZmlsZXMgdGhhdCBmYWlsIHRvIGJlIGZldGNoZWQgYXMgd2VsbCBhcworICAgICMgZmlsZXMg
dGhhdCBhcmUgZmV0Y2hlZAorICAgIGZhaWxlZF9maWxlcyA9IFtdCisgICAgZmV0Y2hlZF9maWxl
cyA9IFtdCisKKyAgICAjIEZpbGVzIHRoYXQgd2Ugd2FudCB0byB1bnBhY2suCisgICAgdW5wYWNr
X2ZpbGVzID0gW10KKworICAgICMgTGV0cyBnbyB0aHJvdWdoIHRoZSBtYW5pZmVzdCBhbmQgZmV0
Y2ggdGhlIGZpbGVzIHRoYXQgd2Ugd2FudAorICAgIGZvciBmIGluIG1hbmlmZXN0LmZpbGVfcmVj
b3JkczoKKyAgICAgICAgIyBjYXNlIDE6IGZpbGVzIGFyZSBhbHJlYWR5IHByZXNlbnQKKyAgICAg
ICAgaWYgZi5wcmVzZW50KCk6CisgICAgICAgICAgICBpZiBmLnZhbGlkYXRlKCk6CisgICAgICAg
ICAgICAgICAgcHJlc2VudF9maWxlcy5hcHBlbmQoZi5maWxlbmFtZSkKKyAgICAgICAgICAgICAg
ICBpZiBmLnVucGFjazoKKyAgICAgICAgICAgICAgICAgICAgdW5wYWNrX2ZpbGVzLmFwcGVuZChm
LmZpbGVuYW1lKQorICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICAjIHdlIGhhdmUg
YW4gaW52YWxpZCBmaWxlIGhlcmUsIGJldHRlciB0byBjbGVhbnVwIQorICAgICAgICAgICAgICAg
ICMgdGhpcyBpbnZhbGlkIGZpbGUgbmVlZHMgdG8gYmUgcmVwbGFjZWQgd2l0aCBhIGdvb2Qgb25l
CisgICAgICAgICAgICAgICAgIyBmcm9tIHRoZSBsb2NhbCBjYXNoIG9yIGZldGNoZWQgZnJvbSBh
IHRvb2x0b29sIHNlcnZlcgorICAgICAgICAgICAgICAgIGxvZy5pbmZvKCJGaWxlICVzIGlzIHBy
ZXNlbnQgbG9jYWxseSBidXQgaXQgaXMgaW52YWxpZCwgc28gSSB3aWxsIHJlbW92ZSBpdCAiCisg
ICAgICAgICAgICAgICAgICAgICAgICAgImFuZCB0cnkgdG8gZmV0Y2ggaXQiICUgZi5maWxlbmFt
ZSkKKyAgICAgICAgICAgICAgICBvcy5yZW1vdmUob3MucGF0aC5qb2luKG9zLmdldGN3ZCgpLCBm
LmZpbGVuYW1lKSkKKworICAgICAgICAjIGNoZWNrIGlmIGZpbGUgaXMgYWxyZWFkeSBpbiBjYWNo
ZQorICAgICAgICBpZiBjYWNoZV9mb2xkZXIgYW5kIGYuZmlsZW5hbWUgbm90IGluIHByZXNlbnRf
ZmlsZXM6CisgICAgICAgICAgICB0cnk6CisgICAgICAgICAgICAgICAgc2h1dGlsLmNvcHkob3Mu
cGF0aC5qb2luKGNhY2hlX2ZvbGRlciwgZi5kaWdlc3QpLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIG9zLnBhdGguam9pbihvcy5nZXRjd2QoKSwgZi5maWxlbmFtZSkpCisgICAgICAgICAg
ICAgICAgbG9nLmluZm8oIkZpbGUgJXMgcmV0cmlldmVkIGZyb20gbG9jYWwgY2FjaGUgJXMiICUK
KyAgICAgICAgICAgICAgICAgICAgICAgICAoZi5maWxlbmFtZSwgY2FjaGVfZm9sZGVyKSkKKyAg
ICAgICAgICAgICAgICB0b3VjaChvcy5wYXRoLmpvaW4oY2FjaGVfZm9sZGVyLCBmLmRpZ2VzdCkp
CisKKyAgICAgICAgICAgICAgICBmaWxlcmVjb3JkX2Zvcl92YWxpZGF0aW9uID0gRmlsZVJlY29y
ZCgKKyAgICAgICAgICAgICAgICAgICAgZi5maWxlbmFtZSwgZi5zaXplLCBmLmRpZ2VzdCwgZi5h
bGdvcml0aG0pCisgICAgICAgICAgICAgICAgaWYgZmlsZXJlY29yZF9mb3JfdmFsaWRhdGlvbi52
YWxpZGF0ZSgpOgorICAgICAgICAgICAgICAgICAgICBwcmVzZW50X2ZpbGVzLmFwcGVuZChmLmZp
bGVuYW1lKQorICAgICAgICAgICAgICAgICAgICBpZiBmLnVucGFjazoKKyAgICAgICAgICAgICAg
ICAgICAgICAgIHVucGFja19maWxlcy5hcHBlbmQoZi5maWxlbmFtZSkKKyAgICAgICAgICAgICAg
ICBlbHNlOgorICAgICAgICAgICAgICAgICAgICAjIHRoZSBmaWxlIGNvcGllZCBmcm9tIHRoZSBj
YWNoZSBpcyBpbnZhbGlkLCBiZXR0ZXIgdG8KKyAgICAgICAgICAgICAgICAgICAgIyBjbGVhbiB1
cCB0aGUgY2FjaGUgdmVyc2lvbiBpdHNlbGYgYXMgd2VsbAorICAgICAgICAgICAgICAgICAgICBs
b2cud2FybigiRmlsZSAlcyByZXRyaWV2ZWQgZnJvbSBjYWNoZSBpcyBpbnZhbGlkISBJIGFtIGRl
bGV0aW5nIGl0IGZyb20gdGhlICIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImNhY2hl
IGFzIHdlbGwiICUgZi5maWxlbmFtZSkKKyAgICAgICAgICAgICAgICAgICAgb3MucmVtb3ZlKG9z
LnBhdGguam9pbihvcy5nZXRjd2QoKSwgZi5maWxlbmFtZSkpCisgICAgICAgICAgICAgICAgICAg
IG9zLnJlbW92ZShvcy5wYXRoLmpvaW4oY2FjaGVfZm9sZGVyLCBmLmRpZ2VzdCkpCisgICAgICAg
ICAgICBleGNlcHQgSU9FcnJvcjoKKyAgICAgICAgICAgICAgICBsb2cuaW5mbygiRmlsZSAlcyBu
b3QgcHJlc2VudCBpbiBsb2NhbCBjYWNoZSBmb2xkZXIgJXMiICUKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAoZi5maWxlbmFtZSwgY2FjaGVfZm9sZGVyKSkKKworICAgICAgICAjIG5vdyBJIHdp
bGwgdHJ5IHRvIGZldGNoIGFsbCBmaWxlcyB3aGljaCBhcmUgbm90IGFscmVhZHkgcHJlc2VudCBh
bmQKKyAgICAgICAgIyB2YWxpZCwgYXBwZW5kaW5nIGEgc3VmZml4IHRvIGF2b2lkIHJhY2UgY29u
ZGl0aW9ucworICAgICAgICB0ZW1wX2ZpbGVfbmFtZSA9IE5vbmUKKyAgICAgICAgIyAnZmlsZW5h
bWVzJyBpcyB0aGUgbGlzdCBvZiBmaWxlbmFtZXMgdG8gYmUgbWFuYWdlZCwgaWYgdGhpcyB2YXJp
YWJsZQorICAgICAgICAjIGlzIGEgbm9uIGVtcHR5IGxpc3QgaXQgY2FuIGJlIHVzZWQgdG8gZmls
dGVyIGlmIGZpbGVuYW1lIGlzIGluCisgICAgICAgICMgcHJlc2VudF9maWxlcywgaXQgbWVhbnMg
dGhhdCBJIGhhdmUgaXQgYWxyZWFkeSBiZWNhdXNlIGl0IHdhcyBhbHJlYWR5CisgICAgICAgICMg
ZWl0aGVyIGluIHRoZSB3b3JraW5nIGRpciBvciBpbiB0aGUgY2FjaGUKKyAgICAgICAgaWYgKGYu
ZmlsZW5hbWUgaW4gZmlsZW5hbWVzIG9yIGxlbihmaWxlbmFtZXMpID09IDApIGFuZCBmLmZpbGVu
YW1lIG5vdCBpbiBwcmVzZW50X2ZpbGVzOgorICAgICAgICAgICAgbG9nLmRlYnVnKCJmZXRjaGlu
ZyAlcyIgJSBmLmZpbGVuYW1lKQorICAgICAgICAgICAgdGVtcF9maWxlX25hbWUgPSBmZXRjaF9m
aWxlKGJhc2VfdXJscywgZiwgYXV0aF9maWxlPWF1dGhfZmlsZSwgcmVnaW9uPXJlZ2lvbikKKyAg
ICAgICAgICAgIGlmIHRlbXBfZmlsZV9uYW1lOgorICAgICAgICAgICAgICAgIGZldGNoZWRfZmls
ZXMuYXBwZW5kKChmLCB0ZW1wX2ZpbGVfbmFtZSkpCisgICAgICAgICAgICBlbHNlOgorICAgICAg
ICAgICAgICAgIGZhaWxlZF9maWxlcy5hcHBlbmQoZi5maWxlbmFtZSkKKyAgICAgICAgZWxzZToK
KyAgICAgICAgICAgIGxvZy5kZWJ1Zygic2tpcHBpbmcgJXMiICUgZi5maWxlbmFtZSkKKworICAg
ICMgbGV0cyBlbnN1cmUgdGhhdCBmZXRjaGVkIGZpbGVzIG1hdGNoIHdoYXQgdGhlIG1hbmlmZXN0
IHNwZWNpZmllZAorICAgIGZvciBsb2NhbGZpbGUsIHRlbXBfZmlsZV9uYW1lIGluIGZldGNoZWRf
ZmlsZXM6CisgICAgICAgICMgc2luY2UgSSBkb3dubG9hZGVkIHRvIGEgdGVtcCBmaWxlLCBJIG5l
ZWQgdG8gcGVyZm9ybSBhbGwgdmFsaWRhdGlvbnMgb24gdGhlIHRlbXAgZmlsZQorICAgICAgICAj
IHRoaXMgaXMgd2h5IGZpbGVyZWNvcmRfZm9yX3ZhbGlkYXRpb24gaXMgY3JlYXRlZAorCisgICAg
ICAgIGZpbGVyZWNvcmRfZm9yX3ZhbGlkYXRpb24gPSBGaWxlUmVjb3JkKAorICAgICAgICAgICAg
dGVtcF9maWxlX25hbWUsIGxvY2FsZmlsZS5zaXplLCBsb2NhbGZpbGUuZGlnZXN0LCBsb2NhbGZp
bGUuYWxnb3JpdGhtKQorCisgICAgICAgIGlmIGZpbGVyZWNvcmRfZm9yX3ZhbGlkYXRpb24udmFs
aWRhdGUoKToKKyAgICAgICAgICAgICMgZ3JlYXQhCisgICAgICAgICAgICAjIEkgY2FuIHJlbmFt
ZSB0aGUgdGVtcCBmaWxlCisgICAgICAgICAgICBsb2cuaW5mbygiRmlsZSBpbnRlZ3JpdHkgdmVy
aWZpZWQsIHJlbmFtaW5nICVzIHRvICVzIiAlCisgICAgICAgICAgICAgICAgICAgICAodGVtcF9m
aWxlX25hbWUsIGxvY2FsZmlsZS5maWxlbmFtZSkpCisgICAgICAgICAgICBvcy5yZW5hbWUob3Mu
cGF0aC5qb2luKG9zLmdldGN3ZCgpLCB0ZW1wX2ZpbGVfbmFtZSksCisgICAgICAgICAgICAgICAg
ICAgICAgb3MucGF0aC5qb2luKG9zLmdldGN3ZCgpLCBsb2NhbGZpbGUuZmlsZW5hbWUpKQorCisg
ICAgICAgICAgICBpZiBsb2NhbGZpbGUudW5wYWNrOgorICAgICAgICAgICAgICAgIHVucGFja19m
aWxlcy5hcHBlbmQobG9jYWxmaWxlLmZpbGVuYW1lKQorCisgICAgICAgICAgICAjIGlmIEkgYW0g
dXNpbmcgYSBjYWNoZSBhbmQgYSBuZXcgZmlsZSBoYXMganVzdCBiZWVuIHJldHJpZXZlZCBmcm9t
IGEKKyAgICAgICAgICAgICMgcmVtb3RlIGxvY2F0aW9uLCBJIG5lZWQgdG8gdXBkYXRlIHRoZSBj
YWNoZSBhcyB3ZWxsCisgICAgICAgICAgICBpZiBjYWNoZV9mb2xkZXI6CisgICAgICAgICAgICAg
ICAgbG9nLmluZm8oIlVwZGF0aW5nIGxvY2FsIGNhY2hlICVzLi4uIiAlIGNhY2hlX2ZvbGRlcikK
KyAgICAgICAgICAgICAgICB0cnk6CisgICAgICAgICAgICAgICAgICAgIGlmIG5vdCBvcy5wYXRo
LmV4aXN0cyhjYWNoZV9mb2xkZXIpOgorICAgICAgICAgICAgICAgICAgICAgICAgbG9nLmluZm8o
IkNyZWF0aW5nIGNhY2hlIGluICVzLi4uIiAlIGNhY2hlX2ZvbGRlcikKKyAgICAgICAgICAgICAg
ICAgICAgICAgIG9zLm1ha2VkaXJzKGNhY2hlX2ZvbGRlciwgMG8wNzAwKQorICAgICAgICAgICAg
ICAgICAgICBzaHV0aWwuY29weShvcy5wYXRoLmpvaW4ob3MuZ2V0Y3dkKCksIGxvY2FsZmlsZS5m
aWxlbmFtZSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9zLnBhdGguam9pbihj
YWNoZV9mb2xkZXIsIGxvY2FsZmlsZS5kaWdlc3QpKQorICAgICAgICAgICAgICAgICAgICBsb2cu
aW5mbygiTG9jYWwgY2FjaGUgJXMgdXBkYXRlZCB3aXRoICVzIiAlIChjYWNoZV9mb2xkZXIsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGxvY2FsZmlsZS5maWxlbmFtZSkpCisgICAgICAgICAgICAgICAgICAgIHRvdWNoKG9z
LnBhdGguam9pbihjYWNoZV9mb2xkZXIsIGxvY2FsZmlsZS5kaWdlc3QpKQorICAgICAgICAgICAg
ICAgIGV4Y2VwdCAoT1NFcnJvciwgSU9FcnJvcik6CisgICAgICAgICAgICAgICAgICAgIGxvZy53
YXJuaW5nKCdJbXBvc3NpYmxlIHRvIGFkZCBmaWxlICVzIHRvIGNhY2hlIGZvbGRlciAlcycgJQor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobG9jYWxmaWxlLmZpbGVuYW1lLCBjYWNo
ZV9mb2xkZXIpLCBleGNfaW5mbz1UcnVlKQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgZmFp
bGVkX2ZpbGVzLmFwcGVuZChsb2NhbGZpbGUuZmlsZW5hbWUpCisgICAgICAgICAgICBsb2cuZXJy
b3IoIiclcyciICUgZmlsZXJlY29yZF9mb3JfdmFsaWRhdGlvbi5kZXNjcmliZSgpKQorICAgICAg
ICAgICAgb3MucmVtb3ZlKHRlbXBfZmlsZV9uYW1lKQorCisgICAgIyBVbnBhY2sgZmlsZXMgdGhh
dCBuZWVkIHRvIGJlIHVucGFja2VkLgorICAgIGZvciBmaWxlbmFtZSBpbiB1bnBhY2tfZmlsZXM6
CisgICAgICAgIGlmIG5vdCB1bnBhY2tfZmlsZShmaWxlbmFtZSk6CisgICAgICAgICAgICBmYWls
ZWRfZmlsZXMuYXBwZW5kKGZpbGVuYW1lKQorCisgICAgIyBJZiB3ZSBmYWlsZWQgdG8gZmV0Y2gg
b3IgdmFsaWRhdGUgYSBmaWxlLCB3ZSBuZWVkIHRvIGZhaWwKKyAgICBpZiBsZW4oZmFpbGVkX2Zp
bGVzKSA+IDA6CisgICAgICAgIGxvZy5lcnJvcigiVGhlIGZvbGxvd2luZyBmaWxlcyBmYWlsZWQ6
ICclcyciICUKKyAgICAgICAgICAgICAgICAgICInLCAiLmpvaW4oZmFpbGVkX2ZpbGVzKSkKKyAg
ICAgICAgcmV0dXJuIEZhbHNlCisgICAgcmV0dXJuIFRydWUKKworCitkZWYgZnJlZXNwYWNlKHAp
OgorICAgICJSZXR1cm5zIHRoZSBudW1iZXIgb2YgYnl0ZXMgZnJlZSB1bmRlciBkaXJlY3Rvcnkg
YHBgIgorICAgIGlmIHN5cy5wbGF0Zm9ybSA9PSAnd2luMzInOiAgIyBwcmFnbWE6IG5vIGNvdmVy
CisgICAgICAgICMgb3Muc3RhdHZmcyBkb2Vzbid0IHdvcmsgb24gV2luZG93cworICAgICAgICBp
bXBvcnQgd2luMzJmaWxlCisKKyAgICAgICAgc2Vjc1BlckNsdXMsIGJ5dGVzUGVyU2VjLCBuRnJl
ZUNsdXMsIHRvdENsdXMgPSB3aW4zMmZpbGUuR2V0RGlza0ZyZWVTcGFjZSgKKyAgICAgICAgICAg
IHApCisgICAgICAgIHJldHVybiBzZWNzUGVyQ2x1cyAqIGJ5dGVzUGVyU2VjICogbkZyZWVDbHVz
CisgICAgZWxzZToKKyAgICAgICAgciA9IG9zLnN0YXR2ZnMocCkKKyAgICAgICAgcmV0dXJuIHIu
Zl9mcnNpemUgKiByLmZfYmF2YWlsCisKKworZGVmIHB1cmdlKGZvbGRlciwgZ2lncyk6CisgICAg
IiIiSWYgZ2lncyBpcyBub24gMCwgaXQgZGVsZXRlcyBmaWxlcyBpbiBgZm9sZGVyYCB1bnRpbCBg
Z2lnc2AgR0IgYXJlIGZyZWUsCisgICAgc3RhcnRpbmcgZnJvbSBvbGRlciBmaWxlcy4gIElmIGdp
Z3MgaXMgMCwgYSBmdWxsIHB1cmdlIHdpbGwgYmUgcGVyZm9ybWVkLgorICAgIE5vIHJlY3Vyc2l2
ZSBkZWxldGlvbiBvZiBmaWxlcyBpbiBzdWJmb2xkZXIgaXMgcGVyZm9ybWVkLiIiIgorCisgICAg
ZnVsbF9wdXJnZSA9IGJvb2woZ2lncyA9PSAwKQorICAgIGdpZ3MgKj0gMTAyNCAqIDEwMjQgKiAx
MDI0CisKKyAgICBpZiBub3QgZnVsbF9wdXJnZSBhbmQgZnJlZXNwYWNlKGZvbGRlcikgPj0gZ2ln
czoKKyAgICAgICAgbG9nLmluZm8oIk5vIG5lZWQgdG8gY2xlYW51cCIpCisgICAgICAgIHJldHVy
bgorCisgICAgZmlsZXMgPSBbXQorICAgIGZvciBmIGluIG9zLmxpc3RkaXIoZm9sZGVyKToKKyAg
ICAgICAgcCA9IG9zLnBhdGguam9pbihmb2xkZXIsIGYpCisgICAgICAgICMgaXQgZGVsZXRlcyBm
aWxlcyBpbiBmb2xkZXIgd2l0aG91dCBnb2luZyBpbnRvIHN1YmZvbGRlcnMsCisgICAgICAgICMg
YXNzdW1pbmcgdGhlIGNhY2hlIGhhcyBhIGZsYXQgc3RydWN0dXJlCisgICAgICAgIGlmIG5vdCBv
cy5wYXRoLmlzZmlsZShwKToKKyAgICAgICAgICAgIGNvbnRpbnVlCisgICAgICAgIG10aW1lID0g
b3MucGF0aC5nZXRtdGltZShwKQorICAgICAgICBmaWxlcy5hcHBlbmQoKG10aW1lLCBwKSkKKwor
ICAgICMgaXRlcmF0ZSBmaWxlcyBzb3J0ZWQgYnkgbXRpbWUKKyAgICBmb3IgXywgZiBpbiBzb3J0
ZWQoZmlsZXMpOgorICAgICAgICBsb2cuaW5mbygicmVtb3ZpbmcgJXMgdG8gZnJlZSB1cCBzcGFj
ZSIgJSBmKQorICAgICAgICB0cnk6CisgICAgICAgICAgICBvcy5yZW1vdmUoZikKKyAgICAgICAg
ZXhjZXB0IE9TRXJyb3I6CisgICAgICAgICAgICBsb2cuaW5mbygiSW1wb3NzaWJsZSB0byByZW1v
dmUgJXMiICUgZiwgZXhjX2luZm89VHJ1ZSkKKyAgICAgICAgaWYgbm90IGZ1bGxfcHVyZ2UgYW5k
IGZyZWVzcGFjZShmb2xkZXIpID49IGdpZ3M6CisgICAgICAgICAgICBicmVhaworCisKK2RlZiBf
bG9nX2FwaV9lcnJvcihlKToKKyAgICBpZiBoYXNhdHRyKGUsICdoZHJzJykgYW5kIGUuaGRyc1sn
Y29udGVudC10eXBlJ10gPT0gJ2FwcGxpY2F0aW9uL2pzb24nOgorICAgICAgICBqc29uX3Jlc3Ag
PSBqc29uLmxvYWQoZS5mcCkKKyAgICAgICAgbG9nLmVycm9yKCIlczogJXMiICUgKGpzb25fcmVz
cFsnZXJyb3InXVsnbmFtZSddLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAganNvbl9y
ZXNwWydlcnJvciddWydkZXNjcmlwdGlvbiddKSkKKyAgICBlbHNlOgorICAgICAgICBsb2cuZXhj
ZXB0aW9uKCJFcnJvciBtYWtpbmcgUmVsZW5nQVBJIHJlcXVlc3Q6IikKKworCitkZWYgX2F1dGhv
cml6ZShyZXEsIGF1dGhfZmlsZSk6CisgICAgaWYgbm90IGF1dGhfZmlsZToKKyAgICAgICAgcmV0
dXJuCisKKyAgICBpc190YXNrY2x1c3Rlcl9hdXRoID0gRmFsc2UKKyAgICB3aXRoIG9wZW4oYXV0
aF9maWxlKSBhcyBmOgorICAgICAgICBhdXRoX2ZpbGVfY29udGVudCA9IGYucmVhZCgpLnN0cmlw
KCkKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgYXV0aF9maWxlX2NvbnRlbnQgPSBqc29uLmxv
YWRzKGF1dGhfZmlsZV9jb250ZW50KQorICAgICAgICAgICAgaXNfdGFza2NsdXN0ZXJfYXV0aCA9
IFRydWUKKyAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbjoKKyAgICAgICAgICAgIHBhc3MKKworICAg
IGlmIGlzX3Rhc2tjbHVzdGVyX2F1dGg6CisgICAgICAgIHRhc2tjbHVzdGVyX2hlYWRlciA9IG1h
a2VfdGFza2NsdXN0ZXJfaGVhZGVyKGF1dGhfZmlsZV9jb250ZW50LCByZXEpCisgICAgICAgIGxv
Zy5kZWJ1ZygiVXNpbmcgdGFza2NsdXN0ZXIgY3JlZGVudGlhbHMgaW4gJXMiICUgYXV0aF9maWxl
KQorICAgICAgICByZXEuYWRkX3VucmVkaXJlY3RlZF9oZWFkZXIoJ0F1dGhvcml6YXRpb24nLCB0
YXNrY2x1c3Rlcl9oZWFkZXIpCisgICAgZWxzZToKKyAgICAgICAgbG9nLmRlYnVnKCJVc2luZyBC
ZWFyZXIgdG9rZW4gaW4gJXMiICUgYXV0aF9maWxlKQorICAgICAgICByZXEuYWRkX3VucmVkaXJl
Y3RlZF9oZWFkZXIoJ0F1dGhvcml6YXRpb24nLCAnQmVhcmVyICVzJyAlIGF1dGhfZmlsZV9jb250
ZW50KQorCisKK2RlZiBfc2VuZF9iYXRjaChiYXNlX3VybCwgYXV0aF9maWxlLCBiYXRjaCwgcmVn
aW9uKToKKyAgICB1cmwgPSB1cmxqb2luKGJhc2VfdXJsLCAndXBsb2FkJykKKyAgICBpZiByZWdp
b24gaXMgbm90IE5vbmU6CisgICAgICAgIHVybCArPSAiP3JlZ2lvbj0iICsgcmVnaW9uCisgICAg
aWYgUFkzOgorICAgICAgICBkYXRhID0gdG9fYmluYXJ5KGpzb24uZHVtcHMoYmF0Y2gpKQorICAg
IGVsc2U6CisgICAgICAgIGRhdGEgPSBqc29uLmR1bXBzKGJhdGNoKQorICAgIHJlcSA9IFJlcXVl
c3QodXJsLCBkYXRhLCB7J0NvbnRlbnQtVHlwZSc6ICdhcHBsaWNhdGlvbi9qc29uJ30pCisgICAg
X2F1dGhvcml6ZShyZXEsIGF1dGhfZmlsZSkKKyAgICB0cnk6CisgICAgICAgIHJlc3AgPSB1cmxs
aWIyLnVybG9wZW4ocmVxKQorICAgIGV4Y2VwdCAoVVJMRXJyb3IsIEhUVFBFcnJvcikgYXMgZToK
KyAgICAgICAgX2xvZ19hcGlfZXJyb3IoZSkKKyAgICAgICAgcmV0dXJuIE5vbmUKKyAgICByZXR1
cm4ganNvbi5sb2FkKHJlc3ApWydyZXN1bHQnXQorCisKK2RlZiBfczNfdXBsb2FkKGZpbGVuYW1l
LCBmaWxlKToKKyAgICAjIHVybGxpYjIgZG9lcyBub3Qgc3VwcG9ydCBzdHJlYW1pbmcsIHNvIHdl
IGZhbGwgYmFjayB0byBnb29kIG9sZCBodHRwbGliCisgICAgdXJsID0gdXJscGFyc2UoZmlsZVsn
cHV0X3VybCddKQorICAgIGNscyA9IEhUVFBTQ29ubmVjdGlvbiBpZiB1cmwuc2NoZW1lID09ICdo
dHRwcycgZWxzZSBIVFRQQ29ubmVjdGlvbgorICAgIGhvc3QsIHBvcnQgPSB1cmwubmV0bG9jLnNw
bGl0KCc6JykgaWYgJzonIGluIHVybC5uZXRsb2MgZWxzZSAodXJsLm5ldGxvYywgNDQzKQorICAg
IHBvcnQgPSBpbnQocG9ydCkKKyAgICBjb25uID0gY2xzKGhvc3QsIHBvcnQpCisgICAgdHJ5Ogor
ICAgICAgICByZXFfcGF0aCA9ICIlcz8lcyIgJSAodXJsLnBhdGgsIHVybC5xdWVyeSkgaWYgdXJs
LnF1ZXJ5IGVsc2UgdXJsLnBhdGgKKyAgICAgICAgd2l0aCBvcGVuKGZpbGVuYW1lLCAncmInKSBh
cyBmOgorICAgICAgICAgICAgY29udGVudCA9IGYucmVhZCgpCisgICAgICAgICAgICBjb250ZW50
X2xlbmd0aCA9IGxlbihjb250ZW50KQorICAgICAgICAgICAgZi5zZWVrKDApCisgICAgICAgICAg
ICBjb25uLnJlcXVlc3QoCisgICAgICAgICAgICAgICAgJ1BVVCcsCisgICAgICAgICAgICAgICAg
cmVxX3BhdGgsCisgICAgICAgICAgICAgICAgZiwKKyAgICAgICAgICAgICAgICB7CisgICAgICAg
ICAgICAgICAgICAgICdDb250ZW50LVR5cGUnOiAnYXBwbGljYXRpb24vb2N0ZXQtc3RyZWFtJywK
KyAgICAgICAgICAgICAgICAgICAgJ0NvbnRlbnQtTGVuZ3RoJzogc3RyKGNvbnRlbnRfbGVuZ3Ro
KSwKKyAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgKQorICAgICAgICAgICAgcmVzcCA9
IGNvbm4uZ2V0cmVzcG9uc2UoKQorICAgICAgICAgICAgcmVzcF9ib2R5ID0gcmVzcC5yZWFkKCkK
KyAgICAgICAgICAgIGNvbm4uY2xvc2UoKQorICAgICAgICBpZiByZXNwLnN0YXR1cyAhPSAyMDA6
CisgICAgICAgICAgICByYWlzZSBSdW50aW1lRXJyb3IoIk5vbi0yMDAgcmV0dXJuIGZyb20gQVdT
OiAlcyAlc1xuJXMiICUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAocmVzcC5zdGF0
dXMsIHJlc3AucmVhc29uLCByZXNwX2JvZHkpKQorICAgIGV4Y2VwdCBFeGNlcHRpb246CisgICAg
ICAgIGZpbGVbJ3VwbG9hZF9leGNlcHRpb24nXSA9IHN5cy5leGNfaW5mbygpCisgICAgICAgIGZp
bGVbJ3VwbG9hZF9vayddID0gRmFsc2UKKyAgICBlbHNlOgorICAgICAgICBmaWxlWyd1cGxvYWRf
b2snXSA9IFRydWUKKworCitkZWYgX25vdGlmeV91cGxvYWRfY29tcGxldGUoYmFzZV91cmwsIGF1
dGhfZmlsZSwgZmlsZSk6CisgICAgcmVxID0gUmVxdWVzdCgKKyAgICAgICAgdXJsam9pbigKKyAg
ICAgICAgICAgIGJhc2VfdXJsLAorICAgICAgICAgICAgJ3VwbG9hZC9jb21wbGV0ZS8lKGFsZ29y
aXRobSlzLyUoZGlnZXN0KXMnICUgZmlsZSkpCisgICAgX2F1dGhvcml6ZShyZXEsIGF1dGhfZmls
ZSkKKyAgICB0cnk6CisgICAgICAgIHVybGxpYjIudXJsb3BlbihyZXEpCisgICAgZXhjZXB0IEhU
VFBFcnJvciBhcyBlOgorICAgICAgICBpZiBlLmNvZGUgIT0gNDA5OgorICAgICAgICAgICAgX2xv
Z19hcGlfZXJyb3IoZSkKKyAgICAgICAgICAgIHJldHVybgorICAgICAgICAjIDQwOSBpbmRpY2F0
ZXMgdGhhdCB0aGUgdXBsb2FkIFVSTCBoYXNuJ3QgZXhwaXJlZCB5ZXQgYW5kIHdlCisgICAgICAg
ICMgc2hvdWxkIHJldHJ5IGFmdGVyIGEgZGVsYXkKKyAgICAgICAgdG9fd2FpdCA9IGludChlLmhl
YWRlcnMuZ2V0KCdYLVJldHJ5LUFmdGVyJywgNjApKQorICAgICAgICBsb2cud2FybmluZygiV2Fp
dGluZyAlZCBzZWNvbmRzIGZvciB1cGxvYWQgVVJMcyB0byBleHBpcmUiICUgdG9fd2FpdCkKKyAg
ICAgICAgdGltZS5zbGVlcCh0b193YWl0KQorICAgICAgICBfbm90aWZ5X3VwbG9hZF9jb21wbGV0
ZShiYXNlX3VybCwgYXV0aF9maWxlLCBmaWxlKQorICAgIGV4Y2VwdCBFeGNlcHRpb246CisgICAg
ICAgIGxvZy5leGNlcHRpb24oIldoaWxlIG5vdGlmeWluZyBzZXJ2ZXIgb2YgdXBsb2FkIGNvbXBs
ZXRpb246IikKKworCitkZWYgdXBsb2FkKG1hbmlmZXN0LCBtZXNzYWdlLCBiYXNlX3VybHMsIGF1
dGhfZmlsZSwgcmVnaW9uKToKKyAgICB0cnk6CisgICAgICAgIG1hbmlmZXN0ID0gb3Blbl9tYW5p
ZmVzdChtYW5pZmVzdCkKKyAgICBleGNlcHQgSW52YWxpZE1hbmlmZXN0OgorICAgICAgICBsb2cu
ZXhjZXB0aW9uKCJmYWlsZWQgdG8gbG9hZCBtYW5pZmVzdCBmaWxlIGF0ICclcyciKQorICAgICAg
ICByZXR1cm4gRmFsc2UKKworICAgICMgdmVyaWZ5IHRoZSBtYW5pZmVzdCwgc2luY2Ugd2UnbGwg
bmVlZCB0aGUgZmlsZXMgcHJlc2VudCB0byB1cGxvYWQKKyAgICBpZiBub3QgbWFuaWZlc3QudmFs
aWRhdGUoKToKKyAgICAgICAgbG9nLmVycm9yKCdtYW5pZmVzdCBpcyBpbnZhbGlkJykKKyAgICAg
ICAgcmV0dXJuIEZhbHNlCisKKyAgICBpZiBhbnkoZnIudmlzaWJpbGl0eSBpcyBOb25lIGZvciBm
ciBpbiBtYW5pZmVzdC5maWxlX3JlY29yZHMpOgorICAgICAgICBsb2cuZXJyb3IoJ0FsbCBmaWxl
cyBpbiBhIG1hbmlmZXN0IGZvciB1cGxvYWQgbXVzdCBoYXZlIGEgdmlzaWJpbGl0eSBzZXQnKQor
CisgICAgIyBjb252ZXJ0IHRoZSBtYW5pZmVzdCB0byBhbiB1cGxvYWQgYmF0Y2gKKyAgICBiYXRj
aCA9IHsKKyAgICAgICAgJ21lc3NhZ2UnOiBtZXNzYWdlLAorICAgICAgICAnZmlsZXMnOiB7fSwK
KyAgICB9CisgICAgZm9yIGZyIGluIG1hbmlmZXN0LmZpbGVfcmVjb3JkczoKKyAgICAgICAgYmF0
Y2hbJ2ZpbGVzJ11bZnIuZmlsZW5hbWVdID0geworICAgICAgICAgICAgJ3NpemUnOiBmci5zaXpl
LAorICAgICAgICAgICAgJ2RpZ2VzdCc6IGZyLmRpZ2VzdCwKKyAgICAgICAgICAgICdhbGdvcml0
aG0nOiBmci5hbGdvcml0aG0sCisgICAgICAgICAgICAndmlzaWJpbGl0eSc6IGZyLnZpc2liaWxp
dHksCisgICAgICAgIH0KKworICAgICMgbWFrZSB0aGUgdXBsb2FkIHJlcXVlc3QKKyAgICByZXNw
ID0gX3NlbmRfYmF0Y2goYmFzZV91cmxzWzBdLCBhdXRoX2ZpbGUsIGJhdGNoLCByZWdpb24pCisg
ICAgaWYgbm90IHJlc3A6CisgICAgICAgIHJldHVybiBOb25lCisgICAgZmlsZXMgPSByZXNwWydm
aWxlcyddCisKKyAgICAjIFVwbG9hZCB0aGUgZmlsZXMsIGVhY2ggaW4gYSB0aHJlYWQuICBUaGlz
IGFsbG93cyB1cyB0byBzdGFydCBhbGwgb2YgdGhlCisgICAgIyB1cGxvYWRzIGJlZm9yZSBhbnkg
b2YgdGhlIFVSTHMgZXhwaXJlLgorICAgIHRocmVhZHMgPSB7fQorICAgIGZvciBmaWxlbmFtZSwg
ZmlsZSBpbiBmaWxlcy5pdGVtcygpOgorICAgICAgICBpZiAncHV0X3VybCcgaW4gZmlsZToKKyAg
ICAgICAgICAgIGxvZy5pbmZvKCIlczogc3RhcnRpbmcgdXBsb2FkIiAlIChmaWxlbmFtZSwpKQor
ICAgICAgICAgICAgdGhkID0gdGhyZWFkaW5nLlRocmVhZCh0YXJnZXQ9X3MzX3VwbG9hZCwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJncz0oZmlsZW5hbWUsIGZpbGUpKQor
ICAgICAgICAgICAgdGhkLmRhZW1vbiA9IDEKKyAgICAgICAgICAgIHRoZC5zdGFydCgpCisgICAg
ICAgICAgICB0aHJlYWRzW2ZpbGVuYW1lXSA9IHRoZAorICAgICAgICBlbHNlOgorICAgICAgICAg
ICAgbG9nLmluZm8oIiVzOiBhbHJlYWR5IGV4aXN0cyBvbiBzZXJ2ZXIiICUgKGZpbGVuYW1lLCkp
CisKKyAgICAjIHJlLWpvaW4gYWxsIG9mIHRob3NlIHRocmVhZHMgYXMgdGhleSBleGl0CisgICAg
c3VjY2VzcyA9IFRydWUKKyAgICB3aGlsZSB0aHJlYWRzOgorICAgICAgICBmb3IgZmlsZW5hbWUs
IHRocmVhZCBpbiBsaXN0KHRocmVhZHMuaXRlbXMoKSk6CisgICAgICAgICAgICBpZiBub3QgdGhy
ZWFkLmlzX2FsaXZlKCk6CisgICAgICAgICAgICAgICAgIyBfczNfdXBsb2FkIGhhcyBhbm5vdGF0
ZWQgZmlsZSB3aXRoIHJlc3VsdCBpbmZvcm1hdGlvbgorICAgICAgICAgICAgICAgIGZpbGUgPSBm
aWxlc1tmaWxlbmFtZV0KKyAgICAgICAgICAgICAgICB0aHJlYWQuam9pbigpCisgICAgICAgICAg
ICAgICAgaWYgZmlsZVsndXBsb2FkX29rJ106CisgICAgICAgICAgICAgICAgICAgIGxvZy5pbmZv
KCIlczogdXBsb2FkZWQiICUgZmlsZW5hbWUpCisgICAgICAgICAgICAgICAgZWxzZToKKyAgICAg
ICAgICAgICAgICAgICAgbG9nLmVycm9yKCIlczogZmFpbGVkIiAlIGZpbGVuYW1lLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgZXhjX2luZm89ZmlsZVsndXBsb2FkX2V4Y2VwdGlvbidd
KQorICAgICAgICAgICAgICAgICAgICBzdWNjZXNzID0gRmFsc2UKKyAgICAgICAgICAgICAgICBk
ZWwgdGhyZWFkc1tmaWxlbmFtZV0KKworICAgICMgbm90aWZ5IHRoZSBzZXJ2ZXIgdGhhdCB0aGUg
dXBsb2FkcyBhcmUgY29tcGxldGVkLiAgSWYgdGhlIG5vdGlmaWNhdGlvbgorICAgICMgZmFpbHMs
IHdlIGRvbid0IGNvbnNpZGVyIHRoYXQgYW4gZXJyb3IgKHRoZSBzZXJ2ZXIgd2lsbCBub3RpY2UK
KyAgICAjIGV2ZW50dWFsbHkpCisgICAgZm9yIGZpbGVuYW1lLCBmaWxlIGluIGZpbGVzLml0ZW1z
KCk6CisgICAgICAgIGlmICdwdXRfdXJsJyBpbiBmaWxlIGFuZCBmaWxlWyd1cGxvYWRfb2snXToK
KyAgICAgICAgICAgIGxvZy5pbmZvKCJub3RpZnlpbmcgc2VydmVyIG9mIHVwbG9hZCBjb21wbGV0
aW9uIGZvciAlcyIgJSAoZmlsZW5hbWUsKSkKKyAgICAgICAgICAgIF9ub3RpZnlfdXBsb2FkX2Nv
bXBsZXRlKGJhc2VfdXJsc1swXSwgYXV0aF9maWxlLCBmaWxlKQorCisgICAgcmV0dXJuIHN1Y2Nl
c3MKKworCitkZWYgcHJvY2Vzc19jb21tYW5kKG9wdGlvbnMsIGFyZ3MpOgorICAgICIiIiBJIGtu
b3cgaG93IHRvIHRha2UgYSBsaXN0IG9mIHByb2dyYW0gYXJndW1lbnRzIGFuZAorICAgIHN0YXJ0
IGRvaW5nIHRoZSByaWdodCB0aGluZyB3aXRoIHRoZW0iIiIKKyAgICBjbWQgPSBhcmdzWzBdCisg
ICAgY21kX2FyZ3MgPSBhcmdzWzE6XQorICAgIGxvZy5kZWJ1ZygicHJvY2Vzc2luZyAnJXMnIGNv
bW1hbmQgd2l0aCBhcmdzICclcyciICUKKyAgICAgICAgICAgICAgKGNtZCwgJyIsICInLmpvaW4o
Y21kX2FyZ3MpKSkKKyAgICBsb2cuZGVidWcoInVzaW5nIG9wdGlvbnM6ICVzIiAlIG9wdGlvbnMp
CisKKyAgICBpZiBjbWQgPT0gJ2xpc3QnOgorICAgICAgICByZXR1cm4gbGlzdF9tYW5pZmVzdChv
cHRpb25zWydtYW5pZmVzdCddKQorICAgIGlmIGNtZCA9PSAndmFsaWRhdGUnOgorICAgICAgICBy
ZXR1cm4gdmFsaWRhdGVfbWFuaWZlc3Qob3B0aW9uc1snbWFuaWZlc3QnXSkKKyAgICBlbGlmIGNt
ZCA9PSAnYWRkJzoKKyAgICAgICAgcmV0dXJuIGFkZF9maWxlcyhvcHRpb25zWydtYW5pZmVzdCdd
LCBvcHRpb25zWydhbGdvcml0aG0nXSwgY21kX2FyZ3MsCisgICAgICAgICAgICAgICAgICAgICAg
ICAgb3B0aW9uc1sndmVyc2lvbiddLCBvcHRpb25zWyd2aXNpYmlsaXR5J10sCisgICAgICAgICAg
ICAgICAgICAgICAgICAgb3B0aW9uc1sndW5wYWNrJ10pCisgICAgZWxpZiBjbWQgPT0gJ3B1cmdl
JzoKKyAgICAgICAgaWYgb3B0aW9uc1snY2FjaGVfZm9sZGVyJ106CisgICAgICAgICAgICBwdXJn
ZShmb2xkZXI9b3B0aW9uc1snY2FjaGVfZm9sZGVyJ10sIGdpZ3M9b3B0aW9uc1snc2l6ZSddKQor
ICAgICAgICBlbHNlOgorICAgICAgICAgICAgbG9nLmNyaXRpY2FsKCdwbGVhc2Ugc3BlY2lmeSB0
aGUgY2FjaGUgZm9sZGVyIHRvIGJlIHB1cmdlZCcpCisgICAgICAgICAgICByZXR1cm4gRmFsc2UK
KyAgICBlbGlmIGNtZCA9PSAnZmV0Y2gnOgorICAgICAgICByZXR1cm4gZmV0Y2hfZmlsZXMoCisg
ICAgICAgICAgICBvcHRpb25zWydtYW5pZmVzdCddLAorICAgICAgICAgICAgb3B0aW9uc1snYmFz
ZV91cmwnXSwKKyAgICAgICAgICAgIGNtZF9hcmdzLAorICAgICAgICAgICAgY2FjaGVfZm9sZGVy
PW9wdGlvbnNbJ2NhY2hlX2ZvbGRlciddLAorICAgICAgICAgICAgYXV0aF9maWxlPW9wdGlvbnMu
Z2V0KCJhdXRoX2ZpbGUiKSwKKyAgICAgICAgICAgIHJlZ2lvbj1vcHRpb25zLmdldCgncmVnaW9u
JykpCisgICAgZWxpZiBjbWQgPT0gJ3VwbG9hZCc6CisgICAgICAgIGlmIG5vdCBvcHRpb25zLmdl
dCgnbWVzc2FnZScpOgorICAgICAgICAgICAgbG9nLmNyaXRpY2FsKCd1cGxvYWQgY29tbWFuZCBy
ZXF1aXJlcyBhIG1lc3NhZ2UnKQorICAgICAgICAgICAgcmV0dXJuIEZhbHNlCisgICAgICAgIHJl
dHVybiB1cGxvYWQoCisgICAgICAgICAgICBvcHRpb25zLmdldCgnbWFuaWZlc3QnKSwKKyAgICAg
ICAgICAgIG9wdGlvbnMuZ2V0KCdtZXNzYWdlJyksCisgICAgICAgICAgICBvcHRpb25zLmdldCgn
YmFzZV91cmwnKSwKKyAgICAgICAgICAgIG9wdGlvbnMuZ2V0KCdhdXRoX2ZpbGUnKSwKKyAgICAg
ICAgICAgIG9wdGlvbnMuZ2V0KCdyZWdpb24nKSkKKyAgICBlbHNlOgorICAgICAgICBsb2cuY3Jp
dGljYWwoJ2NvbW1hbmQgIiVzIiBpcyBub3QgaW1wbGVtZW50ZWQnICUgY21kKQorICAgICAgICBy
ZXR1cm4gRmFsc2UKKworCitkZWYgbWFpbihhcmd2LCBfc2tpcF9sb2dnaW5nPUZhbHNlKToKKyAg
ICAjIFNldCB1cCBvcHRpb24gcGFyc2luZworICAgIHBhcnNlciA9IG9wdHBhcnNlLk9wdGlvblBh
cnNlcigpCisgICAgcGFyc2VyLmFkZF9vcHRpb24oJy1xJywgJy0tcXVpZXQnLCBkZWZhdWx0PWxv
Z2dpbmcuSU5GTywKKyAgICAgICAgICAgICAgICAgICAgICBkZXN0PSdsb2dsZXZlbCcsIGFjdGlv
bj0nc3RvcmVfY29uc3QnLCBjb25zdD1sb2dnaW5nLkVSUk9SKQorICAgIHBhcnNlci5hZGRfb3B0
aW9uKCctdicsICctLXZlcmJvc2UnLAorICAgICAgICAgICAgICAgICAgICAgIGRlc3Q9J2xvZ2xl
dmVsJywgYWN0aW9uPSdzdG9yZV9jb25zdCcsIGNvbnN0PWxvZ2dpbmcuREVCVUcpCisgICAgcGFy
c2VyLmFkZF9vcHRpb24oJy1tJywgJy0tbWFuaWZlc3QnLCBkZWZhdWx0PURFRkFVTFRfTUFOSUZF
U1RfTkFNRSwKKyAgICAgICAgICAgICAgICAgICAgICBkZXN0PSdtYW5pZmVzdCcsIGFjdGlvbj0n
c3RvcmUnLAorICAgICAgICAgICAgICAgICAgICAgIGhlbHA9J3NwZWNpZnkgdGhlIG1hbmlmZXN0
IGZpbGUgdG8gYmUgb3BlcmF0ZWQgb24nKQorICAgIHBhcnNlci5hZGRfb3B0aW9uKCctZCcsICct
LWFsZ29yaXRobScsIGRlZmF1bHQ9J3NoYTUxMicsCisgICAgICAgICAgICAgICAgICAgICAgZGVz
dD0nYWxnb3JpdGhtJywgYWN0aW9uPSdzdG9yZScsCisgICAgICAgICAgICAgICAgICAgICAgaGVs
cD0naGFzaGluZyBhbGdvcml0aG0gdG8gdXNlIChvbmx5IHNoYTUxMiBpcyBhbGxvd2VkKScpCisg
ICAgcGFyc2VyLmFkZF9vcHRpb24oJy0tdmlzaWJpbGl0eScsIGRlZmF1bHQ9Tm9uZSwKKyAgICAg
ICAgICAgICAgICAgICAgICBkZXN0PSd2aXNpYmlsaXR5JywgY2hvaWNlcz1bJ2ludGVybmFsJywg
J3B1YmxpYyddLAorICAgICAgICAgICAgICAgICAgICAgIGhlbHA9J1Zpc2liaWxpdHkgbGV2ZWwg
b2YgdGhpcyBmaWxlOyAiaW50ZXJuYWwiIGlzIGZvciAnCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAnZmlsZXMgdGhhdCBjYW5ub3QgYmUgZGlzdHJpYnV0ZWQgb3V0IG9mIHRoZSBjb21wYW55
ICcKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICdidXQgbm90IGZvciBzZWNyZXRzOyAicHVi
bGljIiBmaWxlcyBhcmUgYXZhaWxhYmxlIHRvICcKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICdhbnlvbmUgd2l0aG91dCByZXN0cmljdGlvbicpCisgICAgcGFyc2VyLmFkZF9vcHRpb24oJy0t
dW5wYWNrJywgZGVmYXVsdD1GYWxzZSwKKyAgICAgICAgICAgICAgICAgICAgICBkZXN0PSd1bnBh
Y2snLCBhY3Rpb249J3N0b3JlX3RydWUnLAorICAgICAgICAgICAgICAgICAgICAgIGhlbHA9J1Jl
cXVlc3QgdW5wYWNraW5nIHRoaXMgZmlsZSBhZnRlciBmZXRjaC4nCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAnIFRoaXMgaXMgaGVscGZ1bCB3aXRoIHRhcmJhbGxzLicpCisgICAgcGFyc2Vy
LmFkZF9vcHRpb24oJy0tdmVyc2lvbicsIGRlZmF1bHQ9Tm9uZSwKKyAgICAgICAgICAgICAgICAg
ICAgICBkZXN0PSd2ZXJzaW9uJywgYWN0aW9uPSdzdG9yZScsCisgICAgICAgICAgICAgICAgICAg
ICAgaGVscD0nVmVyc2lvbiBzdHJpbmcgZm9yIHRoaXMgZmlsZS4gVGhpcyBhbm5vdGF0ZXMgdGhl
ICcKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICdtYW5pZmVzdCBlbnRyeSB3aXRoIGEgdmVy
c2lvbiBzdHJpbmcgdG8gaGVscCAnCisgICAgICAgICAgICAgICAgICAgICAgICAgICAnaWRlbnRp
ZnkgdGhlIGNvbnRlbnRzLicpCisgICAgcGFyc2VyLmFkZF9vcHRpb24oJy1vJywgJy0tb3Zlcndy
aXRlJywgZGVmYXVsdD1GYWxzZSwKKyAgICAgICAgICAgICAgICAgICAgICBkZXN0PSdvdmVyd3Jp
dGUnLCBhY3Rpb249J3N0b3JlX3RydWUnLAorICAgICAgICAgICAgICAgICAgICAgIGhlbHA9J1VO
VVNFRDsgcHJlc2VudCBmb3IgYmFja3dhcmQgY29tcGF0aWJpbGl0eScpCisgICAgcGFyc2VyLmFk
ZF9vcHRpb24oJy0tdXJsJywgZGVzdD0nYmFzZV91cmwnLCBhY3Rpb249J2FwcGVuZCcsCisgICAg
ICAgICAgICAgICAgICAgICAgaGVscD0nUmVsZW5nQVBJIFVSTCBlbmRpbmcgd2l0aCAvdG9vbHRv
b2wvOyBkZWZhdWx0ICcKKyAgICAgICAgICAgICAgICAgICAgICAnaXMgYXBwcm9wcmlhdGUgZm9y
IE1vemlsbGEnKQorICAgIHBhcnNlci5hZGRfb3B0aW9uKCctYycsICctLWNhY2hlLWZvbGRlcics
IGRlc3Q9J2NhY2hlX2ZvbGRlcicsCisgICAgICAgICAgICAgICAgICAgICAgaGVscD0nTG9jYWwg
Y2FjaGUgZm9sZGVyJykKKyAgICBwYXJzZXIuYWRkX29wdGlvbignLXMnLCAnLS1zaXplJywKKyAg
ICAgICAgICAgICAgICAgICAgICBoZWxwPSdmcmVlIHNwYWNlIHJlcXVpcmVkIChpbiBHQiknLCBk
ZXN0PSdzaXplJywKKyAgICAgICAgICAgICAgICAgICAgICB0eXBlPSdmbG9hdCcsIGRlZmF1bHQ9
MC4pCisgICAgcGFyc2VyLmFkZF9vcHRpb24oJy1yJywgJy0tcmVnaW9uJywgaGVscD0nUHJlZmVy
cmVkIEFXUyByZWdpb24gZm9yIHVwbG9hZCBvciBmZXRjaDsgJworICAgICAgICAgICAgICAgICAg
ICAgICdleGFtcGxlOiAtLXJlZ2lvbj11cy13ZXN0LTInKQorICAgIHBhcnNlci5hZGRfb3B0aW9u
KCctLW1lc3NhZ2UnLAorICAgICAgICAgICAgICAgICAgICAgIGhlbHA9J1RoZSAiY29tbWl0IG1l
c3NhZ2UiIGZvciBhbiB1cGxvYWQ7IGZvcm1hdCB3aXRoIGEgYnVnIG51bWJlciAnCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAnYW5kIGJyaWVmIGNvbW1lbnQnLAorICAgICAgICAgICAgICAg
ICAgICAgIGRlc3Q9J21lc3NhZ2UnKQorICAgIHBhcnNlci5hZGRfb3B0aW9uKCctLWF1dGhlbnRp
Y2F0aW9uLWZpbGUnLAorICAgICAgICAgICAgICAgICAgICAgIGhlbHA9J1VzZSB0aGUgUmVsZW5n
QVBJIHRva2VuIGZvdW5kIGluIHRoZSBnaXZlbiBmaWxlIHRvICcKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICdhdXRoZW50aWNhdGUgdG8gdGhlIFJlbGVuZ0FQSSBzZXJ2ZXIuJywKKyAgICAg
ICAgICAgICAgICAgICAgICBkZXN0PSdhdXRoX2ZpbGUnKQorCisgICAgKG9wdGlvbnNfb2JqLCBh
cmdzKSA9IHBhcnNlci5wYXJzZV9hcmdzKGFyZ3ZbMTpdKQorCisgICAgIyBkZWZhdWx0IHRoZSBv
cHRpb25zIGxpc3QgaWYgbm90IHByb3ZpZGVkCisgICAgaWYgbm90IG9wdGlvbnNfb2JqLmJhc2Vf
dXJsOgorICAgICAgICBvcHRpb25zX29iai5iYXNlX3VybCA9IFsnaHR0cHM6Ly90b29sdG9vbC5t
b3ppbGxhLXJlbGVuZy5uZXQvJ10KKworICAgICMgZW5zdXJlIGFsbCBVUkxzIGhhdmUgYSB0cmFp
bGluZyBzbGFzaAorICAgIGRlZiBhZGRfc2xhc2godXJsKToKKyAgICAgICAgcmV0dXJuIHVybCBp
ZiB1cmwuZW5kc3dpdGgoJy8nKSBlbHNlICh1cmwgKyAnLycpCisgICAgb3B0aW9uc19vYmouYmFz
ZV91cmwgPSBbYWRkX3NsYXNoKHUpIGZvciB1IGluIG9wdGlvbnNfb2JqLmJhc2VfdXJsXQorCisg
ICAgIyBleHBhbmQgfiBpbiAtLWF1dGhlbnRpY2F0aW9uLWZpbGUKKyAgICBpZiBvcHRpb25zX29i
ai5hdXRoX2ZpbGU6CisgICAgICAgIG9wdGlvbnNfb2JqLmF1dGhfZmlsZSA9IG9zLnBhdGguZXhw
YW5kdXNlcihvcHRpb25zX29iai5hdXRoX2ZpbGUpCisKKyAgICAjIERpY3Rpb25hcmllcyBhcmUg
ZWFzaWVyIHRvIHdvcmsgd2l0aAorICAgIG9wdGlvbnMgPSB2YXJzKG9wdGlvbnNfb2JqKQorCisg
ICAgbG9nLnNldExldmVsKG9wdGlvbnNbJ2xvZ2xldmVsJ10pCisKKyAgICAjIFNldCB1cCBsb2dn
aW5nLCBmb3Igbm93IGp1c3QgdG8gdGhlIGNvbnNvbGUKKyAgICBpZiBub3QgX3NraXBfbG9nZ2lu
ZzogICMgcHJhZ21hOiBubyBjb3ZlcgorICAgICAgICBjaCA9IGxvZ2dpbmcuU3RyZWFtSGFuZGxl
cigpCisgICAgICAgIGNmID0gbG9nZ2luZy5Gb3JtYXR0ZXIoIiUobGV2ZWxuYW1lKXMgLSAlKG1l
c3NhZ2UpcyIpCisgICAgICAgIGNoLnNldEZvcm1hdHRlcihjZikKKyAgICAgICAgbG9nLmFkZEhh
bmRsZXIoY2gpCisKKyAgICBpZiBvcHRpb25zWydhbGdvcml0aG0nXSAhPSAnc2hhNTEyJzoKKyAg
ICAgICAgcGFyc2VyLmVycm9yKCdvbmx5IC0tYWxnb3JpdGhtIHNoYTUxMiBpcyBzdXBwb3J0ZWQn
KQorCisgICAgaWYgbGVuKGFyZ3MpIDwgMToKKyAgICAgICAgcGFyc2VyLmVycm9yKCdZb3UgbXVz
dCBzcGVjaWZ5IGEgY29tbWFuZCcpCisKKyAgICByZXR1cm4gMCBpZiBwcm9jZXNzX2NvbW1hbmQo
b3B0aW9ucywgYXJncykgZWxzZSAxCisKKworaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjogICMg
cHJhZ21hOiBubyBjb3ZlcgorICAgIHN5cy5leGl0KG1haW4oc3lzLmFyZ3YpKQpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS90b29sdG9vbC93M2MtaW1wb3J0LmxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvdG9vbHRvb2wvdzNjLWltcG9y
dC5sb2cKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjJmNTE2OGRjYzJm
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS90b29sdG9vbC93M2MtaW1wb3J0LmxvZwpAQCAtMCww
ICsxLDE3IEBACitUaGUgdGVzdHMgaW4gdGhpcyBkaXJlY3Rvcnkgd2VyZSBpbXBvcnRlZCBmcm9t
IHRoZSBXM0MgcmVwb3NpdG9yeS4KK0RvIE5PVCBtb2RpZnkgdGhlc2UgdGVzdHMgZGlyZWN0bHkg
aW4gV2ViS2l0LgorSW5zdGVhZCwgY3JlYXRlIGEgcHVsbCByZXF1ZXN0IG9uIHRoZSBXUFQgZ2l0
aHViOgorCWh0dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxhdGZvcm0tdGVzdHMvd3B0CisKK1RoZW4g
cnVuIHRoZSBUb29scy9TY3JpcHRzL2ltcG9ydC13M2MtdGVzdHMgaW4gV2ViS2l0IHRvIHJlaW1w
b3J0CisKK0RvIE5PVCBtb2RpZnkgb3IgcmVtb3ZlIHRoaXMgZmlsZS4KKworLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tCitQcm9wZXJ0aWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6CitOb25lCitQcm9wZXJ0
eSB2YWx1ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKK05vbmUKKy0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LQorTGlzdCBvZiBmaWxlczoKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3Rvb2x0b29sL3Rvb2x0b29sLnB5CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RveC5p
bmkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3Rv
eC5pbmkKaW5kZXggM2ViMTJjMzU3YmEuLmU4NjczZGIwYTY5IDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RveC5pbmkKKysrIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90b3guaW5p
CkBAIC0xLDI2ICsxLDU2IEBACiBbdG94XQotZW52bGlzdCA9IHB5MjcscHkzNixweXB5CitlbnZs
aXN0ID0gcHkyNyxweTM1LHB5MzYscHkzNyxweXB5LHtweTI3LHB5MzUscHkzNixweTM3fS1mbGFr
ZTgse3B5MzUscHkzNixweTM3fS1teXB5CiBza2lwc2Rpc3Q9VHJ1ZQogCiBbdGVzdGVudl0KLSMg
Zmxha2U4IHZlcnNpb25zIHNob3VsZCBiZSBrZXB0IGluIHN5bmMgYWNyb3NzIHRvb2xzL3RveC5p
bmksIHRvb2xzL3dwdC90b3guaW5pLCBhbmQgdG9vbHMvd3B0cnVubmVyL3RveC5pbmkKIGRlcHMg
PQotICBmbGFrZTg9PTMuNS4wCi0gIHB5Y29kZXN0eWxlPT0yLjMuMQotICBweWZsYWtlcz09MS42
LjAKLSAgcGVwOC1uYW1pbmc9PTAuNC4xCiAgIHB5dGVzdAogICBweXRlc3QtY292CiAgIG1vY2sK
ICAgaHlwb3RoZXNpcwotICBweXRlc3QtY2F0Y2hsb2cKKyAgcmVxdWVzdHMKKyAgdGFza2NsdXN0
ZXIKKyAgcHl5YW1sCisgIGpzb24tZQorICBqc29uc2NoZW1hCiAKLWNvbW1hbmRzID0KLSAgcHl0
ZXN0IC0tY292IHtwb3NhcmdzfQotICBmbGFrZTggLS1hcHBlbmQtY29uZmlnPWZsYWtlOC5pbmkK
K2NvbW1hbmRzID0gcHl0ZXN0IHtwb3NhcmdzfQogCiBwYXNzZW52ID0KICAgSFlQT1RIRVNJU19Q
Uk9GSUxFCisgIFBZX0NPTE9SUworICBUQVNLQ0xVU1RFUl9ST09UX1VSTAorCitbdGVzdGVudjpw
eTI3LWZsYWtlOF0KK2RlcHMgPSAtcnJlcXVpcmVtZW50c19mbGFrZTgudHh0Citjb21tYW5kcyA9
IGZsYWtlOCAtLWFwcGVuZC1jb25maWc9e3RveGluaWRpcn0vcHkyNy1mbGFrZTguaW5pIHtwb3Nh
cmdzfQorCitbdGVzdGVudjpweTM1LWZsYWtlOF0KK2RlcHMgPSAtcnJlcXVpcmVtZW50c19mbGFr
ZTgudHh0Citjb21tYW5kcyA9IGZsYWtlOCAtLWFwcGVuZC1jb25maWc9e3RveGluaWRpcn0vcHkz
Ni1mbGFrZTguaW5pIHtwb3NhcmdzfQorCitbdGVzdGVudjpweTM2LWZsYWtlOF0KK2RlcHMgPSAt
cnJlcXVpcmVtZW50c19mbGFrZTgudHh0Citjb21tYW5kcyA9IGZsYWtlOCAtLWFwcGVuZC1jb25m
aWc9e3RveGluaWRpcn0vcHkzNi1mbGFrZTguaW5pIHtwb3NhcmdzfQorCitbdGVzdGVudjpweTM3
LWZsYWtlOF0KK2RlcHMgPSAtcnJlcXVpcmVtZW50c19mbGFrZTgudHh0Citjb21tYW5kcyA9IGZs
YWtlOCAtLWFwcGVuZC1jb25maWc9e3RveGluaWRpcn0vcHkzNi1mbGFrZTguaW5pIHtwb3Nhcmdz
fQogCi1bZmxha2U4XQotZXhjbHVkZSA9IC50b3gsaHRtbDVsaWIsdGhpcmRfcGFydHkscHl3ZWJz
b2NrZXQsc2l4LF92ZW52LHdlYmVuY29kaW5ncyx3cHRzZXJ2ZS9kb2NzLHdwdHNlcnZlL3Rlc3Rz
L2Z1bmN0aW9uYWwvZG9jcm9vdC8sd3B0LHdwdHJ1bm5lcgorW3Rlc3RlbnY6cHkzNS1teXB5XQor
ZGVwcyA9IC1ycmVxdWlyZW1lbnRzX215cHkudHh0CitjaGFuZ2VkaXIgPSB7dG94aW5pZGlyfS8u
LgorY29tbWFuZHMgPQorICBteXB5IC0tY29uZmlnLWZpbGU9e3RveGluaWRpcn0vbXlweS5pbmkg
LS1uby1pbmNyZW1lbnRhbCAtLXB5MiAtcCB0b29scy5tYW5pZmVzdCAtcCB0b29scy5saW50IC1w
IHRvb2xzLmdpdGlnbm9yZQorCitbdGVzdGVudjpweTM2LW15cHldCitkZXBzID0gLXJyZXF1aXJl
bWVudHNfbXlweS50eHQKK2NoYW5nZWRpciA9IHt0b3hpbmlkaXJ9Ly4uCitjb21tYW5kcyA9Cisg
IG15cHkgLS1jb25maWctZmlsZT17dG94aW5pZGlyfS9teXB5LmluaSAtLW5vLWluY3JlbWVudGFs
IC0tcHkyIC1wIHRvb2xzLm1hbmlmZXN0IC1wIHRvb2xzLmxpbnQgLXAgdG9vbHMuZ2l0aWdub3Jl
CisKK1t0ZXN0ZW52OnB5MzctbXlweV0KK2RlcHMgPSAtcnJlcXVpcmVtZW50c19teXB5LnR4dAor
Y2hhbmdlZGlyID0ge3RveGluaWRpcn0vLi4KK2NvbW1hbmRzID0KKyAgbXlweSAtLWNvbmZpZy1m
aWxlPXt0b3hpbmlkaXJ9L215cHkuaW5pIC0tbm8taW5jcmVtZW50YWwgLS1weTIgLXAgdG9vbHMu
bWFuaWZlc3QgLXAgdG9vbHMubGludCAtcCB0b29scy5naXRpZ25vcmUKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdzNjLWltcG9y
dC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3czYy1pbXBvcnQubG9nCmluZGV4IGY3YTJmMzI3NGM4Li5lNjk5ODU4YzljYyAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93M2Mt
aW1wb3J0LmxvZworKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3czYy1pbXBvcnQubG9nCkBAIC0xNywxMCArMTcsMTMgQEAgTGlzdCBvZiBmaWxl
czoKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL01F
VEEueW1sCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy9fX2luaXRfXy5weQogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvX19pbml0X18ucHljCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy9hcHB2ZXlvci55bWwKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2NvbmZ0ZXN0LnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9mbGFrZTguaW5pCiAvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9sb2NhbHBhdGhzLnB5CiAvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9sb2NhbHBhdGhz
LnB5YworL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
bXlweS5pbmkKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3B5MjctZmxha2U4LmluaQorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvcHkzNi1mbGFrZTguaW5pCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXRlc3QuaW5pCisvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9yZXF1aXJlbWVudHNfZmxha2U4LnR4dAor
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcmVxdWly
ZW1lbnRzX215cHkudHh0CiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy90b3guaW5pCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dlYmRyaXZlci9SRUFETUUubWQgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dlYmRyaXZlci9SRUFETUUu
bWQKaW5kZXggNzJkZTNiMmFlOGIuLjI3OTVmZjFmY2YzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dlYmRyaXZlci9SRUFETUUu
bWQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy93ZWJkcml2ZXIvUkVBRE1FLm1kCkBAIC05LDcgKzksNyBAQCBpbXBsZW1lbnRhdGlvbiBjb21w
bGlhbmNlIHRvIHRoZSBzcGVjaWZpY2F0aW9uIGluIG1pbmQsCiBzbyB0aGF0IGRpZmZlcmVudCBy
ZW1vdGUgZW5kIGRyaXZlcnMKIGNhbiBkZXRlcm1pbmUgd2hldGhlciB0aGV5IG1lZXQgdGhlIHJl
Y29nbmlzZWQgc3RhbmRhcmQuCiBUaGUgY2xpZW50IGlzIHVzZWQgZm9yIHRoZSBXZWJEcml2ZXIg
c3BlY2lmaWNhdGlvbiB0ZXN0cwotaW4gdGhlIFtXZWIgUGxhdGZvcm0gVGVzdHNdKGh0dHBzOi8v
Z2l0aHViLmNvbS93ZWItcGxhdGZvcm0tdGVzdHMvd3B0KS4KK2luIFt3ZWItcGxhdGZvcm0tdGVz
dHNdKGh0dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxhdGZvcm0tdGVzdHMvd3B0KS4KIAogIyMgSW5z
dGFsbGF0aW9uCiAKQEAgLTI0LDExICsyNCwxMSBAQCB3aGljaCBpcyB1c2VmdWwgaWYgeW91IHdh
bnQgdG8gY29udHJpYnV0ZSBwYXRjaGVzIGJhY2s6CiAKICAgICAlIGNkIC9wYXRoL3RvL3dkY2xp
ZW50CiAgICAgJSBweXRob24KLSAgICBQeXRob24gMi43LjEyKyAoZGVmYXVsdCwgQXVnICA0IDIw
MTYsIDIwOjA0OjM0KSAKKyAgICBQeXRob24gMi43LjEyKyAoZGVmYXVsdCwgQXVnICA0IDIwMTYs
IDIwOjA0OjM0KQogICAgIFtHQ0MgNi4xLjEgMjAxNjA3MjRdIG9uIGxpbnV4MgogICAgIFR5cGUg
ImhlbHAiLCAiY29weXJpZ2h0IiwgImNyZWRpdHMiIG9yICJsaWNlbnNlIiBmb3IgbW9yZSBpbmZv
cm1hdGlvbi4KICAgICA+Pj4gaW1wb3J0IHdlYmRyaXZlcgotICAgID4+PiAKKyAgICA+Pj4KIAog
SWYgeW91IGFyZSB3cml0aW5nIFdlYkRyaXZlciBzcGVjaWZpY2F0aW9uIHRlc3RzIGZvcgogW1dQ
VF0oaHR0cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQpLApkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93ZWJk
cml2ZXIvd2ViZHJpdmVyL19faW5pdF9fLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy93ZWJkcml2ZXIvd2ViZHJpdmVyL19faW5pdF9fLnB5Cmlu
ZGV4IDIxN2JmYzY1MjcyLi5kODYwYjllYTI1MyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93ZWJkcml2ZXIvd2ViZHJpdmVyL19f
aW5pdF9fLnB5CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvd2ViZHJpdmVyL3dlYmRyaXZlci9fX2luaXRfXy5weQpAQCAtMSw2ICsxLDYgQEAK
ICMgZmxha2U4OiBub3FhCiAKLWZyb20gY2xpZW50IGltcG9ydCAoCitmcm9tIC5jbGllbnQgaW1w
b3J0ICgKICAgICBDb29raWVzLAogICAgIEVsZW1lbnQsCiAgICAgRmluZCwKQEAgLTgsNyArOCw3
IEBAIGZyb20gY2xpZW50IGltcG9ydCAoCiAgICAgU2Vzc2lvbiwKICAgICBUaW1lb3V0cywKICAg
ICBXaW5kb3cpCi1mcm9tIGVycm9yIGltcG9ydCAoCitmcm9tIC5lcnJvciBpbXBvcnQgKAogICAg
IEVsZW1lbnROb3RTZWxlY3RhYmxlRXhjZXB0aW9uLAogICAgIEVsZW1lbnROb3RWaXNpYmxlRXhj
ZXB0aW9uLAogICAgIEludmFsaWRBcmd1bWVudEV4Y2VwdGlvbiwKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd2ViZHJpdmVyL3dl
YmRyaXZlci9jbGllbnQucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3dlYmRyaXZlci93ZWJkcml2ZXIvY2xpZW50LnB5CmluZGV4IGE4YzlhMDYx
Y2NmLi4wYzViYmZmNTYyOSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy93ZWJkcml2ZXIvd2ViZHJpdmVyL2NsaWVudC5weQorKysg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dlYmRy
aXZlci93ZWJkcml2ZXIvY2xpZW50LnB5CkBAIC0xLDEwICsxLDkgQEAKLWltcG9ydCB1cmxwYXJz
ZQotCi1pbXBvcnQgZXJyb3IKLWltcG9ydCBwcm90b2NvbAotaW1wb3J0IHRyYW5zcG9ydAorZnJv
bSAuIGltcG9ydCBlcnJvcgorZnJvbSAuIGltcG9ydCBwcm90b2NvbAorZnJvbSAuIGltcG9ydCB0
cmFuc3BvcnQKIAogZnJvbSBzaXggaW1wb3J0IHN0cmluZ190eXBlcworZnJvbSBzaXgubW92ZXMu
dXJsbGliIGltcG9ydCBwYXJzZSBhcyB1cmxwYXJzZQogCiAKIGRlZiBjb21tYW5kKGZ1bmMpOgpA
QCAtMjE4LDcgKzIxNywxMiBAQCBjbGFzcyBBY3Rpb25zKG9iamVjdCk6CiAgICAgICAgICAgICAg
ICAgICAgICAgICBgYEFjdGlvblNlcXVlbmNlLmRpY3RgYC4KICAgICAgICAgIiIiCiAgICAgICAg
IGJvZHkgPSB7ImFjdGlvbnMiOiBbXSBpZiBhY3Rpb25zIGlzIE5vbmUgZWxzZSBhY3Rpb25zfQot
ICAgICAgICByZXR1cm4gc2VsZi5zZXNzaW9uLnNlbmRfc2Vzc2lvbl9jb21tYW5kKCJQT1NUIiwg
ImFjdGlvbnMiLCBib2R5KQorICAgICAgICBhY3Rpb25zID0gc2VsZi5zZXNzaW9uLnNlbmRfc2Vz
c2lvbl9jb21tYW5kKCJQT1NUIiwgImFjdGlvbnMiLCBib2R5KQorICAgICAgICAiIiJXZWJEcml2
ZXIgd2luZG93IHNob3VsZCBiZSBzZXQgdG8gdGhlIHRvcCBsZXZlbCB3aW5kb3cgd2hlbiB3cHRy
dW5uZXIKKyAgICAgICAgcHJvY2Vzc2VzIHRoZSBuZXh0IGV2ZW50LgorICAgICAgICAiIiIKKyAg
ICAgICAgc2VsZi5zZXNzaW9uLnN3aXRjaF9mcmFtZShOb25lKQorICAgICAgICByZXR1cm4gYWN0
aW9ucwogCiAgICAgQGNvbW1hbmQKICAgICBkZWYgcmVsZWFzZShzZWxmKToKQEAgLTMwOCw4ICsz
MTIsMTEgQEAgY2xhc3MgRmluZChvYmplY3QpOgogICAgICAgICBzZWxmLnNlc3Npb24gPSBzZXNz
aW9uCiAKICAgICBAY29tbWFuZAotICAgIGRlZiBjc3Moc2VsZiwgc2VsZWN0b3IsIGFsbD1UcnVl
KToKLSAgICAgICAgcmV0dXJuIHNlbGYuX2ZpbmRfZWxlbWVudCgiY3NzIHNlbGVjdG9yIiwgc2Vs
ZWN0b3IsIGFsbCkKKyAgICBkZWYgY3NzKHNlbGYsIGVsZW1lbnRfc2VsZWN0b3IsIGFsbD1UcnVl
LCBmcmFtZT0id2luZG93Iik6CisgICAgICAgIGlmIChmcmFtZSAhPSAid2luZG93Iik6CisgICAg
ICAgICAgICBzZWxmLnNlc3Npb24uc3dpdGNoX2ZyYW1lKGZyYW1lKQorICAgICAgICBlbGVtZW50
cyA9IHNlbGYuX2ZpbmRfZWxlbWVudCgiY3NzIHNlbGVjdG9yIiwgZWxlbWVudF9zZWxlY3Rvciwg
YWxsKQorICAgICAgICByZXR1cm4gZWxlbWVudHMKIAogICAgIGRlZiBfZmluZF9lbGVtZW50KHNl
bGYsIHN0cmF0ZWd5LCBzZWxlY3RvciwgYWxsKToKICAgICAgICAgcm91dGUgPSAiZWxlbWVudHMi
IGlmIGFsbCBlbHNlICJlbGVtZW50IgpAQCAtMzU2LDcgKzM2Myw3IEBAIGNsYXNzIFVzZXJQcm9t
cHQob2JqZWN0KToKICAgICBAdGV4dC5zZXR0ZXIKICAgICBAY29tbWFuZAogICAgIGRlZiB0ZXh0
KHNlbGYsIHZhbHVlKToKLSAgICAgICAgYm9keSA9IHsidmFsdWUiOiBsaXN0KHZhbHVlKX0KKyAg
ICAgICAgYm9keSA9IHsidGV4dCI6IHZhbHVlfQogICAgICAgICBzZWxmLnNlc3Npb24uc2VuZF9z
ZXNzaW9uX2NvbW1hbmQoIlBPU1QiLCAiYWxlcnQvdGV4dCIsIGJvZHk9Ym9keSkKIAogCkBAIC0z
NzYsNyArMzgzLDYgQEAgY2xhc3MgU2Vzc2lvbihvYmplY3QpOgogICAgICAgICBzZWxmLnRpbWVv
dXRzID0gTm9uZQogICAgICAgICBzZWxmLndpbmRvdyA9IE5vbmUKICAgICAgICAgc2VsZi5maW5k
ID0gTm9uZQotICAgICAgICBzZWxmLl9lbGVtZW50X2NhY2hlID0ge30KICAgICAgICAgc2VsZi5l
eHRlbnNpb24gPSBOb25lCiAgICAgICAgIHNlbGYuZXh0ZW5zaW9uX2NscyA9IGV4dGVuc2lvbgog
CkBAIC00MDQsMTAgKzQxMCwxNyBAQCBjbGFzcyBTZXNzaW9uKG9iamVjdCk6CiAgICAgICAgIHNl
bGYuZW5kKCkKIAogICAgIGRlZiBzdGFydChzZWxmKToKKyAgICAgICAgIiIiU3RhcnQgYSBuZXcg
V2ViRHJpdmVyIHNlc3Npb24uCisKKyAgICAgICAgOnJldHVybjogRGljdGlvbmFyeSB3aXRoIGBj
YXBhYmlsaXRpZXNgIGFuZCBgc2Vzc2lvbklkYC4KKworICAgICAgICA6cmFpc2VzIGVycm9yLldl
YkRyaXZlckV4Y2VwdGlvbjogSWYgdGhlIHJlbW90ZSBlbmQgcmV0dXJucworICAgICAgICAgICAg
YW4gZXJyb3IuCisgICAgICAgICIiIgogICAgICAgICBpZiBzZWxmLnNlc3Npb25faWQgaXMgbm90
IE5vbmU6CiAgICAgICAgICAgICByZXR1cm4KIAotICAgICAgICBib2R5ID0ge30KKyAgICAgICAg
Ym9keSA9IHsiY2FwYWJpbGl0aWVzIjoge319CiAKICAgICAgICAgaWYgc2VsZi5yZXF1ZXN0ZWRf
Y2FwYWJpbGl0aWVzIGlzIG5vdCBOb25lOgogICAgICAgICAgICAgYm9keVsiY2FwYWJpbGl0aWVz
Il0gPSBzZWxmLnJlcXVlc3RlZF9jYXBhYmlsaXRpZXMKQEAgLTQyMiwxMyArNDM1LDEzIEBAIGNs
YXNzIFNlc3Npb24ob2JqZWN0KToKICAgICAgICAgcmV0dXJuIHZhbHVlCiAKICAgICBkZWYgZW5k
KHNlbGYpOgotICAgICAgICAiIiJUcmllcyB0byBjbG9zZSB0aGUgYWN0aXZlIHNlc3Npb24uIiIi
CisgICAgICAgICIiIlRyeSB0byBjbG9zZSB0aGUgYWN0aXZlIHNlc3Npb24uIiIiCiAgICAgICAg
IGlmIHNlbGYuc2Vzc2lvbl9pZCBpcyBOb25lOgogICAgICAgICAgICAgcmV0dXJuCiAKICAgICAg
ICAgdHJ5OgogICAgICAgICAgICAgc2VsZi5zZW5kX2NvbW1hbmQoIkRFTEVURSIsICJzZXNzaW9u
LyVzIiAlIHNlbGYuc2Vzc2lvbl9pZCkKLSAgICAgICAgZXhjZXB0IGVycm9yLlNlc3Npb25Ob3RD
cmVhdGVkRXhjZXB0aW9uOgorICAgICAgICBleGNlcHQgZXJyb3IuSW52YWxpZFNlc3Npb25JZEV4
Y2VwdGlvbjoKICAgICAgICAgICAgIHBhc3MKICAgICAgICAgZmluYWxseToKICAgICAgICAgICAg
IHNlbGYuc2Vzc2lvbl9pZCA9IE5vbmUKQEAgLTQ0NiwxMCArNDU5LDEwIEBAIGNsYXNzIFNlc3Np
b24ob2JqZWN0KToKICAgICAgICAgICAgIHRoZSBgdmFsdWVgIGZpZWxkIHJldHVybmVkIGFmdGVy
IHBhcnNpbmcgdGhlIHJlc3BvbnNlCiAgICAgICAgICAgICBib2R5IGFzIEpTT04uCiAKLSAgICAg
ICAgOnJhaXNlcyBWYWx1ZUVycm9yOiBJZiB0aGUgcmVzcG9uc2UgYm9keSBkb2VzIG5vdCBjb250
YWluIGEKLSAgICAgICAgICAgIGB2YWx1ZWAga2V5LgogICAgICAgICA6cmFpc2VzIGVycm9yLldl
YkRyaXZlckV4Y2VwdGlvbjogSWYgdGhlIHJlbW90ZSBlbmQgcmV0dXJucwogICAgICAgICAgICAg
YW4gZXJyb3IuCisgICAgICAgIDpyYWlzZXMgVmFsdWVFcnJvcjogSWYgdGhlIHJlc3BvbnNlIGJv
ZHkgZG9lcyBub3QgY29udGFpbiBhCisgICAgICAgICAgICBgdmFsdWVgIGtleS4KICAgICAgICAg
IiIiCiAgICAgICAgIHJlc3BvbnNlID0gc2VsZi50cmFuc3BvcnQuc2VuZCgKICAgICAgICAgICAg
IG1ldGhvZCwgdXJsLCBib2R5LApAQCAtNDU5LDcgKzQ3Miw3IEBAIGNsYXNzIFNlc3Npb24ob2Jq
ZWN0KToKICAgICAgICAgaWYgcmVzcG9uc2Uuc3RhdHVzICE9IDIwMDoKICAgICAgICAgICAgIGVy
ciA9IGVycm9yLmZyb21fcmVzcG9uc2UocmVzcG9uc2UpCiAKLSAgICAgICAgICAgIGlmIGlzaW5z
dGFuY2UoZXJyLCBlcnJvci5TZXNzaW9uTm90Q3JlYXRlZEV4Y2VwdGlvbik6CisgICAgICAgICAg
ICBpZiBpc2luc3RhbmNlKGVyciwgZXJyb3IuSW52YWxpZFNlc3Npb25JZEV4Y2VwdGlvbik6CiAg
ICAgICAgICAgICAgICAgIyBUaGUgZHJpdmVyIGNvdWxkIGhhdmUgYWxyZWFkeSBiZWVuIGRlbGV0
ZWQgdGhlIHNlc3Npb24uCiAgICAgICAgICAgICAgICAgc2VsZi5zZXNzaW9uX2lkID0gTm9uZQog
CkBAIC00OTUsMTQgKzUwOCw5IEBAIGNsYXNzIFNlc3Npb24ob2JqZWN0KToKICAgICAgICAgOnJl
dHVybjogYE5vbmVgIGlmIHRoZSBIVFRQIHJlc3BvbnNlIGJvZHkgd2FzIGVtcHR5LCBvdGhlcndp
c2UKICAgICAgICAgICAgIHRoZSByZXN1bHQgb2YgcGFyc2luZyB0aGUgYm9keSBhcyBKU09OLgog
Ci0gICAgICAgIDpyYWlzZXMgZXJyb3IuU2Vzc2lvbk5vdENyZWF0ZWRFeGNlcHRpb246IElmIHRo
ZXJlIGlzIG5vIGFjdGl2ZQotICAgICAgICAgICAgc2Vzc2lvbi4KICAgICAgICAgOnJhaXNlcyBl
cnJvci5XZWJEcml2ZXJFeGNlcHRpb246IElmIHRoZSByZW1vdGUgZW5kIHJldHVybnMKICAgICAg
ICAgICAgIGFuIGVycm9yLgogICAgICAgICAiIiIKLSAgICAgICAgaWYgc2VsZi5zZXNzaW9uX2lk
IGlzIE5vbmU6Ci0gICAgICAgICAgICByYWlzZSBlcnJvci5TZXNzaW9uTm90Q3JlYXRlZEV4Y2Vw
dGlvbigpCi0KICAgICAgICAgdXJsID0gdXJscGFyc2UudXJsam9pbigic2Vzc2lvbi8lcy8iICUg
c2VsZi5zZXNzaW9uX2lkLCB1cmkpCiAgICAgICAgIHJldHVybiBzZWxmLnNlbmRfY29tbWFuZCht
ZXRob2QsIHVybCwgYm9keSkKIApAQCAtNTY1LDcgKzU3Myw3IEBAIGNsYXNzIFNlc3Npb24ob2Jq
ZWN0KToKICAgICBAY29tbWFuZAogICAgIGRlZiBjbG9zZShzZWxmKToKICAgICAgICAgaGFuZGxl
cyA9IHNlbGYuc2VuZF9zZXNzaW9uX2NvbW1hbmQoIkRFTEVURSIsICJ3aW5kb3ciKQotICAgICAg
ICBpZiBsZW4oaGFuZGxlcykgPT0gMDoKKyAgICAgICAgaWYgaGFuZGxlcyBpcyBub3QgTm9uZSBh
bmQgbGVuKGhhbmRsZXMpID09IDA6CiAgICAgICAgICAgICAjIFdpdGggbm8gbW9yZSBvcGVuIHRv
cC1sZXZlbCBicm93c2luZyBjb250ZXh0cywgdGhlIHNlc3Npb24gaXMgY2xvc2VkLgogICAgICAg
ICAgICAgc2VsZi5zZXNzaW9uX2lkID0gTm9uZQogCkBAIC02NjcsMTAgKzY3NSw2IEBAIGNsYXNz
IEVsZW1lbnQob2JqZWN0KToKICAgICAgICAgc2VsZi5pZCA9IGlkCiAgICAgICAgIHNlbGYuc2Vz
c2lvbiA9IHNlc3Npb24KIAotICAgICAgICBpZiBpZCBpbiBzZWxmLnNlc3Npb24uX2VsZW1lbnRf
Y2FjaGU6Ci0gICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJFbGVtZW50IGFscmVhZHkgaW4g
Y2FjaGU6ICVzIiAlIGlkKQotICAgICAgICBzZWxmLnNlc3Npb24uX2VsZW1lbnRfY2FjaGVbc2Vs
Zi5pZF0gPSBzZWxmCi0KICAgICBkZWYgX19yZXByX18oc2VsZik6CiAgICAgICAgIHJldHVybiAi
PCVzICVzPiIgJSAoc2VsZi5fX2NsYXNzX18uX19uYW1lX18sIHNlbGYuaWQpCiAKQEAgLTY4MSw4
ICs2ODUsNiBAQCBjbGFzcyBFbGVtZW50KG9iamVjdCk6CiAgICAgQGNsYXNzbWV0aG9kCiAgICAg
ZGVmIGZyb21fanNvbihjbHMsIGpzb24sIHNlc3Npb24pOgogICAgICAgICB1dWlkID0ganNvbltF
bGVtZW50LmlkZW50aWZpZXJdCi0gICAgICAgIGlmIHV1aWQgaW4gc2Vzc2lvbi5fZWxlbWVudF9j
YWNoZToKLSAgICAgICAgICAgIHJldHVybiBzZXNzaW9uLl9lbGVtZW50X2NhY2hlW3V1aWRdCiAg
ICAgICAgIHJldHVybiBjbHModXVpZCwgc2Vzc2lvbikKIAogICAgIGRlZiBzZW5kX2VsZW1lbnRf
Y29tbWFuZChzZWxmLCBtZXRob2QsIHVyaSwgYm9keT1Ob25lKToKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd2ViZHJpdmVyL3dl
YmRyaXZlci9lcnJvci5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvd2ViZHJpdmVyL3dlYmRyaXZlci9lcnJvci5weQppbmRleCBiMjMzN2ZmM2Iz
OC4uMDY0N2U3ZWI2MWYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvd2ViZHJpdmVyL3dlYmRyaXZlci9lcnJvci5weQorKysgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dlYmRyaXZl
ci93ZWJkcml2ZXIvZXJyb3IucHkKQEAgLTEsMTMgKzEsMTYgQEAKIGltcG9ydCBjb2xsZWN0aW9u
cwogaW1wb3J0IGpzb24KIAorZnJvbSBzaXggaW1wb3J0IGl0ZXJ2YWx1ZXMKIAogY2xhc3MgV2Vi
RHJpdmVyRXhjZXB0aW9uKEV4Y2VwdGlvbik6CiAgICAgaHR0cF9zdGF0dXMgPSBOb25lCiAgICAg
c3RhdHVzX2NvZGUgPSBOb25lCiAKLSAgICBkZWYgX19pbml0X18oc2VsZiwgbWVzc2FnZT1Ob25l
LCBzdGFja3RyYWNlPU5vbmUpOgorICAgIGRlZiBfX2luaXRfXyhzZWxmLCBodHRwX3N0YXR1cz1O
b25lLCBzdGF0dXNfY29kZT1Ob25lLCBtZXNzYWdlPU5vbmUsIHN0YWNrdHJhY2U9Tm9uZSk6CiAg
ICAgICAgIHN1cGVyKFdlYkRyaXZlckV4Y2VwdGlvbiwgc2VsZikKKyAgICAgICAgc2VsZi5odHRw
X3N0YXR1cyA9IGh0dHBfc3RhdHVzCisgICAgICAgIHNlbGYuc3RhdHVzX2NvZGUgPSBzdGF0dXNf
Y29kZQogICAgICAgICBzZWxmLm1lc3NhZ2UgPSBtZXNzYWdlCiAgICAgICAgIHNlbGYuc3RhY2t0
cmFjZSA9IHN0YWNrdHJhY2UKIApAQCAtMTEzLDcgKzExNiw3IEBAIGNsYXNzIE5vU3VjaFdpbmRv
d0V4Y2VwdGlvbihXZWJEcml2ZXJFeGNlcHRpb24pOgogCiAKIGNsYXNzIFNjcmlwdFRpbWVvdXRF
eGNlcHRpb24oV2ViRHJpdmVyRXhjZXB0aW9uKToKLSAgICBodHRwX3N0YXR1cyA9IDQwOAorICAg
IGh0dHBfc3RhdHVzID0gNTAwCiAgICAgc3RhdHVzX2NvZGUgPSAic2NyaXB0IHRpbWVvdXQiCiAK
IApAQCAtMTI4LDcgKzEzMSw3IEBAIGNsYXNzIFN0YWxlRWxlbWVudFJlZmVyZW5jZUV4Y2VwdGlv
bihXZWJEcml2ZXJFeGNlcHRpb24pOgogCiAKIGNsYXNzIFRpbWVvdXRFeGNlcHRpb24oV2ViRHJp
dmVyRXhjZXB0aW9uKToKLSAgICBodHRwX3N0YXR1cyA9IDQwOAorICAgIGh0dHBfc3RhdHVzID0g
NTAwCiAgICAgc3RhdHVzX2NvZGUgPSAidGltZW91dCIKIAogCkBAIC0xNzEsNiArMTc0LDggQEAg
ZGVmIGZyb21fcmVzcG9uc2UocmVzcG9uc2UpOgogICAgICIiIgogICAgIGlmIHJlc3BvbnNlLnN0
YXR1cyA9PSAyMDA6CiAgICAgICAgIHJhaXNlIFVua25vd25FcnJvckV4Y2VwdGlvbigKKyAgICAg
ICAgICAgIHJlc3BvbnNlLnN0YXR1cywKKyAgICAgICAgICAgIE5vbmUsCiAgICAgICAgICAgICAi
UmVzcG9uc2UgaXMgbm90IGFuIGVycm9yOlxuIgogICAgICAgICAgICAgIiVzIiAlIGpzb24uZHVt
cHMocmVzcG9uc2UuYm9keSkpCiAKQEAgLTE3OCw2ICsxODMsOCBAQCBkZWYgZnJvbV9yZXNwb25z
ZShyZXNwb25zZSk6CiAgICAgICAgIHZhbHVlID0gcmVzcG9uc2UuYm9keVsidmFsdWUiXQogICAg
IGVsc2U6CiAgICAgICAgIHJhaXNlIFVua25vd25FcnJvckV4Y2VwdGlvbigKKyAgICAgICAgICAg
IHJlc3BvbnNlLnN0YXR1cywKKyAgICAgICAgICAgIE5vbmUsCiAgICAgICAgICAgICAiRXhwZWN0
ZWQgJ3ZhbHVlJyBrZXkgaW4gcmVzcG9uc2UgYm9keTpcbiIKICAgICAgICAgICAgICIlcyIgJSBq
c29uLmR1bXBzKHJlc3BvbnNlLmJvZHkpKQogCkBAIC0xODcsNyArMTk0LDcgQEAgZGVmIGZyb21f
cmVzcG9uc2UocmVzcG9uc2UpOgogICAgIHN0YWNrID0gdmFsdWVbInN0YWNrdHJhY2UiXSBvciBO
b25lCiAKICAgICBjbHMgPSBnZXQoY29kZSkKLSAgICByZXR1cm4gY2xzKG1lc3NhZ2UsIHN0YWNr
dHJhY2U9c3RhY2spCisgICAgcmV0dXJuIGNscyhyZXNwb25zZS5zdGF0dXMsIGNvZGUsIG1lc3Nh
Z2UsIHN0YWNrdHJhY2U9c3RhY2spCiAKIAogZGVmIGdldChlcnJvcl9jb2RlKToKQEAgLTE5OSw2
ICsyMDYsNiBAQCBkZWYgZ2V0KGVycm9yX2NvZGUpOgogCiAKIF9lcnJvcnMgPSBjb2xsZWN0aW9u
cy5kZWZhdWx0ZGljdCgpCi1mb3IgaXRlbSBpbiBsb2NhbHMoKS52YWx1ZXMoKToKK2ZvciBpdGVt
IGluIGxpc3QoaXRlcnZhbHVlcyhsb2NhbHMoKSkpOgogICAgIGlmIHR5cGUoaXRlbSkgPT0gdHlw
ZSBhbmQgaXNzdWJjbGFzcyhpdGVtLCBXZWJEcml2ZXJFeGNlcHRpb24pOgogICAgICAgICBfZXJy
b3JzW2l0ZW0uc3RhdHVzX2NvZGVdID0gaXRlbQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93ZWJkcml2ZXIvd2ViZHJpdmVyL3Ry
YW5zcG9ydC5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvd2ViZHJpdmVyL3dlYmRyaXZlci90cmFuc3BvcnQucHkKaW5kZXggNjE5YjNmYWVlNTQu
LjMyYmEzMWEyYWU5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3dlYmRyaXZlci93ZWJkcml2ZXIvdHJhbnNwb3J0LnB5CisrKyBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd2ViZHJp
dmVyL3dlYmRyaXZlci90cmFuc3BvcnQucHkKQEAgLTEsOCArMSw5IEBACi1pbXBvcnQgaHR0cGxp
YgogaW1wb3J0IGpzb24KLWltcG9ydCB1cmxwYXJzZQoraW1wb3J0IHNlbGVjdAorZnJvbSBzaXgu
bW92ZXMudXJsbGliIGltcG9ydCBwYXJzZSBhcyB1cmxwYXJzZQorZnJvbSBzaXgubW92ZXMgaW1w
b3J0IGh0dHBfY2xpZW50IGFzIGh0dHBsaWIKIAotaW1wb3J0IGVycm9yCitmcm9tIC4gaW1wb3J0
IGVycm9yCiAKIGZyb20gc2l4IGltcG9ydCB0ZXh0X3R5cGUKIApAQCAtMTUsOSArMTYsMTAgQEAg
Y2xhc3MgUmVzcG9uc2Uob2JqZWN0KToKICAgICBib2R5IGhhcyBiZWVuIHJlYWQgYW5kIHBhcnNl
ZCBhcyBhcHByb3ByaWF0ZS4KICAgICAiIiIKIAotICAgIGRlZiBfX2luaXRfXyhzZWxmLCBzdGF0
dXMsIGJvZHkpOgorICAgIGRlZiBfX2luaXRfXyhzZWxmLCBzdGF0dXMsIGJvZHksIGhlYWRlcnMp
OgogICAgICAgICBzZWxmLnN0YXR1cyA9IHN0YXR1cwogICAgICAgICBzZWxmLmJvZHkgPSBib2R5
CisgICAgICAgIHNlbGYuaGVhZGVycyA9IGhlYWRlcnMKIAogICAgIGRlZiBfX3JlcHJfXyhzZWxm
KToKICAgICAgICAgY2xzX25hbWUgPSBzZWxmLl9fY2xhc3NfXy5fX25hbWVfXwpAQCAtMzgsMTEg
KzQwLDEyIEBAIGNsYXNzIFJlc3BvbnNlKG9iamVjdCk6CiAgICAgZGVmIGZyb21faHR0cChjbHMs
IGh0dHBfcmVzcG9uc2UsIGRlY29kZXI9anNvbi5KU09ORGVjb2RlciwgKiprd2FyZ3MpOgogICAg
ICAgICB0cnk6CiAgICAgICAgICAgICBib2R5ID0ganNvbi5sb2FkKGh0dHBfcmVzcG9uc2UsIGNs
cz1kZWNvZGVyLCAqKmt3YXJncykKKyAgICAgICAgICAgIGhlYWRlcnMgPSBkaWN0KGh0dHBfcmVz
cG9uc2UuZ2V0aGVhZGVycygpKQogICAgICAgICBleGNlcHQgVmFsdWVFcnJvcjoKICAgICAgICAg
ICAgIHJhaXNlIFZhbHVlRXJyb3IoIkZhaWxlZCB0byBkZWNvZGUgcmVzcG9uc2UgYm9keSBhcyBK
U09OOlxuIiArCiAgICAgICAgICAgICAgICAgaHR0cF9yZXNwb25zZS5yZWFkKCkpCiAKLSAgICAg
ICAgcmV0dXJuIGNscyhodHRwX3Jlc3BvbnNlLnN0YXR1cywgYm9keSkKKyAgICAgICAgcmV0dXJu
IGNscyhodHRwX3Jlc3BvbnNlLnN0YXR1cywgYm9keSwgaGVhZGVycykKIAogCiBjbGFzcyBIVFRQ
V2lyZVByb3RvY29sKG9iamVjdCk6CkBAIC04Myw5ICs4NiwzNSBAQCBjbGFzcyBIVFRQV2lyZVBy
b3RvY29sKG9iamVjdCk6CiAgICAgICAgIHNlbGYucG9ydCA9IHBvcnQKICAgICAgICAgc2VsZi51
cmxfcHJlZml4ID0gdXJsX3ByZWZpeAogCisgICAgICAgIHNlbGYuX2Nvbm4gPSBOb25lCiAgICAg
ICAgIHNlbGYuX3RpbWVvdXQgPSB0aW1lb3V0CiAKKyAgICBkZWYgX19kZWxfXyhzZWxmKToKKyAg
ICAgICAgc2VsZi5jbG9zZSgpCisKKyAgICBkZWYgY2xvc2Uoc2VsZik6CisgICAgICAgICIiIkNs
b3NlcyB0aGUgY3VycmVudCBIVFRQIGNvbm5lY3Rpb24sIGlmIHRoZXJlIGlzIG9uZS4iIiIKKyAg
ICAgICAgaWYgc2VsZi5fY29ubjoKKyAgICAgICAgICAgIHNlbGYuX2Nvbm4uY2xvc2UoKQorCisg
ICAgQHByb3BlcnR5CisgICAgZGVmIGNvbm5lY3Rpb24oc2VsZik6CisgICAgICAgICIiIkdldHMg
dGhlIGN1cnJlbnQgSFRUUCBjb25uZWN0aW9uLCBvciBsYXppbHkgY3JlYXRlcyBvbmUuIiIiCisg
ICAgICAgIGlmIG5vdCBzZWxmLl9jb25uOgorICAgICAgICAgICAgY29ubl9rd2FyZ3MgPSB7fQor
ICAgICAgICAgICAgaWYgc2VsZi5fdGltZW91dCBpcyBub3QgTm9uZToKKyAgICAgICAgICAgICAg
ICBjb25uX2t3YXJnc1sidGltZW91dCJdID0gc2VsZi5fdGltZW91dAorCisgICAgICAgICAgICBz
ZWxmLl9jb25uID0gaHR0cGxpYi5IVFRQQ29ubmVjdGlvbigKKyAgICAgICAgICAgICAgICBzZWxm
Lmhvc3QsIHNlbGYucG9ydCwgc3RyaWN0PVRydWUsICoqY29ubl9rd2FyZ3MpCisKKyAgICAgICAg
cmV0dXJuIHNlbGYuX2Nvbm4KKwogICAgIGRlZiB1cmwoc2VsZiwgc3VmZml4KToKKyAgICAgICAg
IiIiCisgICAgICAgIEZyb20gdGhlIHJlbGF0aXZlIHBhdGggdG8gYSBjb21tYW5kIGVuZC1wb2lu
dCwKKyAgICAgICAgY3JhZnQgYSBmdWxsIFVSTCBzdWl0YWJsZSB0byBiZSB1c2VkIGluIGEgcmVx
dWVzdCB0byB0aGUgSFRUUEQuCisgICAgICAgICIiIgogICAgICAgICByZXR1cm4gdXJscGFyc2Uu
dXJsam9pbihzZWxmLnVybF9wcmVmaXgsIHN1ZmZpeCkKIAogICAgIGRlZiBzZW5kKHNlbGYsCkBA
IC0xMTEsNiArMTQwLDggQEAgY2xhc3MgSFRUUFdpcmVQcm90b2NvbChvYmplY3QpOgogICAgICAg
ICBlbGVtZW50IHJlZmVyZW5jZXMgdG8gYGB3ZWJkcml2ZXIuRWxlbWVudGBgIGlzIHByb3ZpZGVk
LgogICAgICAgICBVc2UgYGB3ZWJkcml2ZXIucHJvdG9jb2wuRGVjb2RlcmBgIHRvIGFjaGlldmUg
dGhpcyBiZWhhdmlvdXIuCiAKKyAgICAgICAgVGhlIGNsaWVudCB3aWxsIGF0dGVtcHQgdG8gdXNl
IHBlcnNpc3RlbnQgSFRUUCBjb25uZWN0aW9ucy4KKwogICAgICAgICA6cGFyYW0gbWV0aG9kOiBg
R0VUYCwgYFBPU1RgLCBvciBgREVMRVRFYC4KICAgICAgICAgOnBhcmFtIHVyaTogUmVsYXRpdmUg
ZW5kcG9pbnQgb2YgdGhlIHJlcXVlc3RzIFVSTCBwYXRoLgogICAgICAgICA6cGFyYW0gYm9keTog
Qm9keSBvZiB0aGUgcmVxdWVzdC4gIERlZmF1bHRzIHRvIGFuIGVtcHR5CkBAIC0xNDEsMjYgKzE3
MiwyMyBAQCBjbGFzcyBIVFRQV2lyZVByb3RvY29sKG9iamVjdCk6CiAgICAgICAgICAgICAgICAg
cmFpc2UgVmFsdWVFcnJvcigiRmFpbGVkIHRvIGVuY29kZSByZXF1ZXN0IGJvZHkgYXMgSlNPTjpc
biIKICAgICAgICAgICAgICAgICAgICAgIiVzIiAlIGpzb24uZHVtcHMoYm9keSwgaW5kZW50PTIp
KQogCi0gICAgICAgICAgICBpZiBpc2luc3RhbmNlKHBheWxvYWQsIHRleHRfdHlwZSk6Ci0gICAg
ICAgICAgICAgICAgcGF5bG9hZCA9IGJvZHkuZW5jb2RlKCJ1dGYtOCIpCisgICAgICAgIHJlc3Bv
bnNlID0gc2VsZi5fcmVxdWVzdChtZXRob2QsIHVyaSwgcGF5bG9hZCwgaGVhZGVycykKKyAgICAg
ICAgcmV0dXJuIFJlc3BvbnNlLmZyb21faHR0cChyZXNwb25zZSwgZGVjb2Rlcj1kZWNvZGVyLCAq
KmNvZGVjX2t3YXJncykKKworICAgIGRlZiBfcmVxdWVzdChzZWxmLCBtZXRob2QsIHVyaSwgcGF5
bG9hZCwgaGVhZGVycz1Ob25lKToKKyAgICAgICAgaWYgaXNpbnN0YW5jZShwYXlsb2FkLCB0ZXh0
X3R5cGUpOgorICAgICAgICAgICAgcGF5bG9hZCA9IHBheWxvYWQuZW5jb2RlKCJ1dGYtOCIpCiAK
ICAgICAgICAgaWYgaGVhZGVycyBpcyBOb25lOgogICAgICAgICAgICAgaGVhZGVycyA9IHt9Ci0g
ICAgICAgIGhlYWRlcnMudXBkYXRlKHsnQ29ubmVjdGlvbic6ICdrZWVwLWFsaXZlJ30pCisgICAg
ICAgIGhlYWRlcnMudXBkYXRlKHsiQ29ubmVjdGlvbiI6ICJrZWVwLWFsaXZlIn0pCiAKICAgICAg
ICAgdXJsID0gc2VsZi51cmwodXJpKQogCi0gICAgICAgIGNvbm5fa3dhcmdzID0ge30KLSAgICAg
ICAgaWYgc2VsZi5fdGltZW91dCBpcyBub3QgTm9uZToKLSAgICAgICAgICAgIGNvbm5fa3dhcmdz
WyJ0aW1lb3V0Il0gPSBzZWxmLl90aW1lb3V0Ci0KLSAgICAgICAgY29ubiA9IGh0dHBsaWIuSFRU
UENvbm5lY3Rpb24oCi0gICAgICAgICAgICBzZWxmLmhvc3QsIHNlbGYucG9ydCwgc3RyaWN0PVRy
dWUsICoqY29ubl9rd2FyZ3MpCi0gICAgICAgIGNvbm4ucmVxdWVzdChtZXRob2QsIHVybCwgcGF5
bG9hZCwgaGVhZGVycykKKyAgICAgICAgaWYgc2VsZi5faGFzX3VucmVhZF9kYXRhKCk6CisgICAg
ICAgICAgICBzZWxmLmNsb3NlKCkKKyAgICAgICAgc2VsZi5jb25uZWN0aW9uLnJlcXVlc3QobWV0
aG9kLCB1cmwsIHBheWxvYWQsIGhlYWRlcnMpCisgICAgICAgIHJldHVybiBzZWxmLmNvbm5lY3Rp
b24uZ2V0cmVzcG9uc2UoKQogCi0gICAgICAgIHRyeToKLSAgICAgICAgICAgIHJlc3BvbnNlID0g
Y29ubi5nZXRyZXNwb25zZSgpCi0gICAgICAgICAgICByZXR1cm4gUmVzcG9uc2UuZnJvbV9odHRw
KAotICAgICAgICAgICAgICAgIHJlc3BvbnNlLCBkZWNvZGVyPWRlY29kZXIsICoqY29kZWNfa3dh
cmdzKQotICAgICAgICBmaW5hbGx5OgotICAgICAgICAgICAgY29ubi5jbG9zZSgpCisgICAgZGVm
IF9oYXNfdW5yZWFkX2RhdGEoc2VsZik6CisgICAgICAgIHJldHVybiBzZWxmLl9jb25uIGFuZCBz
ZWxmLl9jb25uLnNvY2sgYW5kIHNlbGVjdC5zZWxlY3QoW3NlbGYuX2Nvbm4uc29ja10sIFtdLCBb
XSwgMClbMF0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvd3B0L2FuZHJvaWQucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdC9hbmRyb2lkLnB5Cm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwLi41MWRlYjcxZTMxNgotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0L2FuZHJv
aWQucHkKQEAgLTAsMCArMSwxODMgQEAKK2ltcG9ydCBhcmdwYXJzZQoraW1wb3J0IG9zCitpbXBv
cnQgcGxhdGZvcm0KK2ltcG9ydCBzaHV0aWwKK2ltcG9ydCBzdWJwcm9jZXNzCisKK2ltcG9ydCBy
ZXF1ZXN0cworCithbmRyb2lkX2RldmljZSA9IE5vbmUKKworaGVyZSA9IG9zLnBhdGguYWJzcGF0
aChvcy5wYXRoLmRpcm5hbWUoX19maWxlX18pKQord3B0X3Jvb3QgPSBvcy5wYXRoLmFic3BhdGgo
b3MucGF0aC5qb2luKGhlcmUsIG9zLnBhcmRpciwgb3MucGFyZGlyKSkKKworCitkZWYgZG9fZGVs
YXllZF9pbXBvcnRzKCk6CisgICAgZ2xvYmFsIGFuZHJvaWRfZGV2aWNlCisgICAgZnJvbSBtb3py
dW5uZXIuZGV2aWNlcyBpbXBvcnQgYW5kcm9pZF9kZXZpY2UKKyAgICBhbmRyb2lkX2RldmljZS5U
T09MVE9PTF9QQVRIID0gb3MucGF0aC5qb2luKG9zLnBhdGguZGlybmFtZShfX2ZpbGVfXyksCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcy5wYXJkaXIs
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAidGhpcmRf
cGFydHkiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
InRvb2x0b29sIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICJ0b29sdG9vbC5weSIpCisKKworZGVmIGdldF9wYXJzZXJfaW5zdGFsbCgpOgorICAgIHBh
cnNlciA9IGFyZ3BhcnNlLkFyZ3VtZW50UGFyc2VyKCkKKyAgICBwYXJzZXIuYWRkX2FyZ3VtZW50
KCItLXJlaW5zdGFsbCIsIGFjdGlvbj0ic3RvcmVfdHJ1ZSIsIGRlZmF1bHQ9RmFsc2UsCisgICAg
ICAgICAgICAgICAgICAgICAgICBoZWxwPSJGb3JjZSByZWluc3RhbGwgZXZlbiBpZiB0aGUgZW11
bGF0b3IgYWxyZWFkeSBleGlzdHMiKQorICAgIHJldHVybiBwYXJzZXIKKworCitkZWYgZ2V0X3Bh
cnNlcl9zdGFydCgpOgorICAgIHJldHVybiBnZXRfcGFyc2VyX2luc3RhbGwoKQorCisKK2RlZiBn
ZXRfc2RrX3BhdGgoZGVzdCk6CisgICAgaWYgZGVzdCBpcyBOb25lOgorICAgICAgICAjIG9zLmdl
dGN3ZCgpIGRvZXNuJ3QgaW5jbHVkZSB0aGUgdmVudiBwYXRoCisgICAgICAgIGRlc3QgPSBvcy5w
YXRoLmpvaW4od3B0X3Jvb3QsICJfdmVudiIpCisgICAgZGVzdCA9IG9zLnBhdGguam9pbihkZXN0
LCAnYW5kcm9pZC1zZGsnKQorICAgIHJldHVybiBvcy5wYXRoLmFic3BhdGgob3MuZW52aXJvbi5n
ZXQoJ0FORFJPSURfU0RLX1BBVEgnLCBkZXN0KSkKKworCitkZWYgdW5pbnN0YWxsX3NkayhkZXN0
PU5vbmUpOgorICAgIHBhdGggPSBnZXRfc2RrX3BhdGgoZGVzdCkKKyAgICBpZiBvcy5wYXRoLmV4
aXN0cyhwYXRoKSBhbmQgb3MucGF0aC5pc2RpcihwYXRoKToKKyAgICAgICAgc2h1dGlsLnJtdHJl
ZShwYXRoKQorCisKK2RlZiBpbnN0YWxsX3Nkayhsb2dnZXIsIGRlc3Q9Tm9uZSk6CisgICAgc2Rr
X3BhdGggPSBnZXRfc2RrX3BhdGgoZGVzdCkKKyAgICBpZiBvcy5wYXRoLmlzZGlyKHNka19wYXRo
KToKKyAgICAgICAgbG9nZ2VyLmluZm8oIlVzaW5nIFNESyBpbnN0YWxsZWQgYXQgJXMiICUgc2Rr
X3BhdGgpCisgICAgICAgIHJldHVybiBzZGtfcGF0aCwgRmFsc2UKKworICAgIGlmIG5vdCBvcy5w
YXRoLmV4aXN0cyhzZGtfcGF0aCk6CisgICAgICAgIG9zLm1ha2VkaXJzKHNka19wYXRoKQorCisg
ICAgb3NfbmFtZSA9IHBsYXRmb3JtLnN5c3RlbSgpLmxvd2VyKCkKKyAgICBpZiBvc19uYW1lIG5v
dCBpbiBbImRhcndpbiIsICJsaW51eCIsICJ3aW5kb3dzIl06CisgICAgICAgIGxvZ2dlci5jcml0
aWNhbCgiVW5zdXBwb3J0ZWQgcGxhdGZvcm0gJXMiICUgb3NfbmFtZSkKKyAgICAgICAgcmFpc2Ug
Tm90SW1wbGVtZW50ZWRFcnJvcgorCisgICAgb3NfbmFtZSA9ICdkYXJ3aW4nIGlmIG9zX25hbWUg
PT0gJ21hY29zeCcgZWxzZSBvc19uYW1lCisgICAgIyBUT0RPOiBlaXRoZXIgYWx3YXlzIHVzZSB0
aGUgbGF0ZXN0IHZlcnNpb24gb3IgaGF2ZSBzb21lIHdheSB0bworICAgICMgY29uZmlndXJlIGEg
cGVyLXByb2R1Y3QgdmVyc2lvbiBpZiB0aGVyZSBhcmUgc3Ryb25nIHJlcXVpcmVtZW50cworICAg
ICMgdG8gdXNlIGEgc3BlY2lmaWMgdmVyc2lvbi4KKyAgICB1cmwgPSAnaHR0cHM6Ly9kbC5nb29n
bGUuY29tL2FuZHJvaWQvcmVwb3NpdG9yeS9zZGstdG9vbHMtJXMtNDMzMzc5Ni56aXAnICUgKG9z
X25hbWUsKQorCisgICAgbG9nZ2VyLmluZm8oIkdldHRpbmcgU0RLIGZyb20gJXMiICUgdXJsKQor
ICAgIHRlbXBfcGF0aCA9IG9zLnBhdGguam9pbihzZGtfcGF0aCwgdXJsLnJzcGxpdCgiLyIsIDEp
WzFdKQorICAgIHRyeToKKyAgICAgICAgd2l0aCBvcGVuKHRlbXBfcGF0aCwgIndiIikgYXMgZjoK
KyAgICAgICAgICAgIHdpdGggcmVxdWVzdHMuZ2V0KHVybCwgc3RyZWFtPVRydWUpIGFzIHJlc3A6
CisgICAgICAgICAgICAgICAgc2h1dGlsLmNvcHlmaWxlb2JqKHJlc3AucmF3LCBmKQorCisgICAg
ICAgICMgUHl0aG9uJ3MgemlwZmlsZSBtb2R1bGUgZG9lc24ndCBzZWVtIHRvIHdvcmsgaGVyZQor
ICAgICAgICBzdWJwcm9jZXNzLmNoZWNrX2NhbGwoWyJ1bnppcCIsIHRlbXBfcGF0aF0sIGN3ZD1z
ZGtfcGF0aCkKKyAgICBmaW5hbGx5OgorICAgICAgICBvcy51bmxpbmsodGVtcF9wYXRoKQorCisg
ICAgcmV0dXJuIHNka19wYXRoLCBUcnVlCisKKworZGVmIGluc3RhbGxfYW5kcm9pZF9wYWNrYWdl
cyhsb2dnZXIsIHNka19wYXRoLCBub19wcm9tcHQ9RmFsc2UpOgorICAgIHNka19tYW5hZ2VyX3Bh
dGggPSBvcy5wYXRoLmpvaW4oc2RrX3BhdGgsICJ0b29scyIsICJiaW4iLCAic2RrbWFuYWdlciIp
CisgICAgaWYgbm90IG9zLnBhdGguZXhpc3RzKHNka19tYW5hZ2VyX3BhdGgpOgorICAgICAgICBy
YWlzZSBPU0Vycm9yKCJDYW4ndCBmaW5kIHNka21hbmFnZXIgYXQgJXMiICUgc2RrX21hbmFnZXJf
cGF0aCkKKworICAgICNUT0RPOiBOb3Qgc3VyZSB3aGF0J3MgcmVhbGx5IG5lZWRlZCBoZXJlCisg
ICAgcGFja2FnZXMgPSBbInBsYXRmb3JtLXRvb2xzIiwKKyAgICAgICAgICAgICAgICAiYnVpbGQt
dG9vbHM7MjguMC4zIiwKKyAgICAgICAgICAgICAgICAicGxhdGZvcm1zO2FuZHJvaWQtMjgiLAor
ICAgICAgICAgICAgICAgICJlbXVsYXRvciJdCisKKyAgICAjIFRPRE86IG1ha2UgdGhpcyB3b3Jr
IG5vbi1pbnRlcm5hY3RpdmVseQorICAgIGxvZ2dlci5pbmZvKCJJbnN0YWxsaW5nIFNESyBwYWNr
YWdlcyIpCisgICAgY21kID0gW3Nka19tYW5hZ2VyX3BhdGhdICsgcGFja2FnZXMKKworICAgIHBy
b2MgPSBzdWJwcm9jZXNzLlBvcGVuKGNtZCwgc3RkaW49c3VicHJvY2Vzcy5QSVBFKQorICAgIGlm
IG5vX3Byb21wdDoKKyAgICAgICAgZGF0YSA9ICJZXG4iICogMTAwIGlmIG5vX3Byb21wdCBlbHNl
IE5vbmUKKyAgICAgICAgcHJvYy5jb21tdW5pY2F0ZShkYXRhKQorICAgIGVsc2U6CisgICAgICAg
IHByb2Mud2FpdCgpCisgICAgaWYgcHJvYy5yZXR1cm5jb2RlICE9IDA6CisgICAgICAgIHJhaXNl
IHN1YnByb2Nlc3MuQ2FsbGVkUHJvY2Vzc0Vycm9yKHByb2MucmV0dXJuY29kZSwgY21kKQorCisK
K2RlZiBnZXRfZW11bGF0b3Ioc2RrX3BhdGgpOgorICAgIGlmIGFuZHJvaWRfZGV2aWNlIGlzIE5v
bmU6CisgICAgICAgIGRvX2RlbGF5ZWRfaW1wb3J0cygpCisgICAgaWYgIkFORFJPSURfU0RLX1JP
T1QiIG5vdCBpbiBvcy5lbnZpcm9uOgorICAgICAgICBvcy5lbnZpcm9uWyJBTkRST0lEX1NES19S
T09UIl0gPSBzZGtfcGF0aAorICAgIHN1YnN0cyA9IHsidG9wX3NyY2RpciI6IHdwdF9yb290LCAi
VEFSR0VUX0NQVSI6ICJ4ODYifQorICAgIGVtdWxhdG9yID0gYW5kcm9pZF9kZXZpY2UuQW5kcm9p
ZEVtdWxhdG9yKCIqIiwgc3Vic3RzPXN1YnN0cykKKyAgICBlbXVsYXRvci5lbXVsYXRvcl9wYXRo
ID0gb3MucGF0aC5qb2luKHNka19wYXRoLCAiZW11bGF0b3IiLCAiZW11bGF0b3IiKQorICAgIGVt
dWxhdG9yLmF2ZF9pbmZvLnRvb2x0b29sX21hbmlmZXN0ID0gb3MucGF0aC5qb2luKHdwdF9yb290
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICJ0b29scyIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIndwdCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIm1hY2gtZW11bGF0b3IubWFuaWZlc3QiKQorICAgIHJldHVybiBlbXVs
YXRvcgorCisKK2RlZiBpbnN0YWxsKGxvZ2dlciwgcmVpbnN0YWxsPUZhbHNlLCBub19wcm9tcHQ9
RmFsc2UpOgorICAgIGlmIHJlaW5zdGFsbDoKKyAgICAgICAgdW5pbnN0YWxsX3NkaygpCisKKyAg
ICBkZXN0LCBuZXdfaW5zdGFsbCA9IGluc3RhbGxfc2RrKGxvZ2dlcikKKyAgICBpZiBuZXdfaW5z
dGFsbDoKKyAgICAgICAgaW5zdGFsbF9hbmRyb2lkX3BhY2thZ2VzKGxvZ2dlciwgZGVzdCwgbm9f
cHJvbXB0KQorCisgICAgaWYgIkFORFJPSURfU0RLX1JPT1QiIG5vdCBpbiBvcy5lbnZpcm9uOgor
ICAgICAgICBvcy5lbnZpcm9uWyJBTkRST0lEX1NES19ST09UIl0gPSBkZXN0CisKKyAgICBlbXVs
YXRvciA9IGdldF9lbXVsYXRvcihkZXN0KQorICAgIGVtdWxhdG9yLnVwZGF0ZV9hdmQoKQorICAg
IHJldHVybiBlbXVsYXRvcgorCisKK2RlZiBzdGFydChsb2dnZXIsIGVtdWxhdG9yPU5vbmUsIHJl
aW5zdGFsbD1GYWxzZSk6CisgICAgaWYgcmVpbnN0YWxsOgorICAgICAgICBpbnN0YWxsKHJlaW5z
dGFsbD1UcnVlKQorCisgICAgc2RrX3BhdGggPSBnZXRfc2RrX3BhdGgoTm9uZSkKKworICAgIGlm
IGVtdWxhdG9yIGlzIE5vbmU6CisgICAgICAgIGVtdWxhdG9yID0gZ2V0X2VtdWxhdG9yKHNka19w
YXRoKQorCisgICAgaWYgbm90IGVtdWxhdG9yLmNoZWNrX2F2ZCgpOgorICAgICAgICBlbXVsYXRv
ci51cGRhdGVfYXZkKCkKKworICAgIGVtdWxhdG9yLnN0YXJ0KCkKKyAgICBlbXVsYXRvci53YWl0
X2Zvcl9zdGFydCgpCisgICAgcmV0dXJuIGVtdWxhdG9yCisKKworZGVmIHJ1bl9pbnN0YWxsKHZl
bnYsICoqa3dhcmdzKToKKyAgICB0cnk6CisgICAgICAgIGltcG9ydCBsb2dnaW5nCisgICAgICAg
IGxvZ2dpbmcuYmFzaWNDb25maWcoKQorICAgICAgICBsb2dnZXIgPSBsb2dnaW5nLmdldExvZ2dl
cigpCisKKyAgICAgICAgaW5zdGFsbChsb2dnZXIsICoqa3dhcmdzKQorICAgIGV4Y2VwdCBFeGNl
cHRpb246CisgICAgICAgIGltcG9ydCB0cmFjZWJhY2sKKyAgICAgICAgdHJhY2ViYWNrLnByaW50
X2V4YygpCisgICAgICAgIGltcG9ydCBwZGIKKyAgICAgICAgcGRiLnBvc3RfbW9ydGVtKCkKKwor
CitkZWYgcnVuX3N0YXJ0KHZlbnYsICoqa3dhcmdzKToKKyAgICB0cnk6CisgICAgICAgIGltcG9y
dCBsb2dnaW5nCisgICAgICAgIGxvZ2dpbmcuYmFzaWNDb25maWcoKQorICAgICAgICBsb2dnZXIg
PSBsb2dnaW5nLmdldExvZ2dlcigpCisKKyAgICAgICAgc3RhcnQobG9nZ2VyLCAqKmt3YXJncykK
KyAgICBleGNlcHQgRXhjZXB0aW9uOgorICAgICAgICBpbXBvcnQgdHJhY2ViYWNrCisgICAgICAg
IHRyYWNlYmFjay5wcmludF9leGMoKQorICAgICAgICBpbXBvcnQgcGRiCisgICAgICAgIHBkYi5w
b3N0X21vcnRlbSgpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3dwdC9icm93c2VyLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHQvYnJvd3Nlci5weQppbmRleCA5ODM0ZTVk
NTNmMy4uYTk0ZDU1MDljYzggMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0L2Jyb3dzZXIucHkKKysrIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHQvYnJvd3Nlci5weQpAQCAt
MSwzNyArMSw2OSBAQAotaW1wb3J0IGxvZ2dpbmcKIGltcG9ydCBvcwogaW1wb3J0IHBsYXRmb3Jt
CiBpbXBvcnQgcmUKIGltcG9ydCBzaHV0aWwKIGltcG9ydCBzdGF0CitpbXBvcnQgZXJybm8KIGlt
cG9ydCBzdWJwcm9jZXNzCiBpbXBvcnQgdGVtcGZpbGUKK2ltcG9ydCB1cmxwYXJzZQogZnJvbSBh
YmMgaW1wb3J0IEFCQ01ldGEsIGFic3RyYWN0bWV0aG9kCiBmcm9tIGRhdGV0aW1lIGltcG9ydCBk
YXRldGltZSwgdGltZWRlbHRhCiBmcm9tIGRpc3R1dGlscy5zcGF3biBpbXBvcnQgZmluZF9leGVj
dXRhYmxlCiAKLWZyb20gdXRpbHMgaW1wb3J0IGNhbGwsIGdldCwgdW50YXIsIHVuemlwCitpbXBv
cnQgcmVxdWVzdHMKIAotbG9nZ2VyID0gbG9nZ2luZy5nZXRMb2dnZXIoX19uYW1lX18pCitmcm9t
IHV0aWxzIGltcG9ydCBjYWxsLCBnZXQsIHVudGFyLCB1bnppcAogCiB1bmFtZSA9IHBsYXRmb3Jt
LnVuYW1lKCkKIAorIyB0aGUgcm9vdFVybCBmb3IgdGhlIGZpcmVmb3gtY2kgZGVwbG95bWVudCBv
ZiBUYXNrY2x1c3RlcgorIyAoYWZ0ZXIgTm92ZW1iZXIgOSwgaHR0cHM6Ly9maXJlZm94LWNpLXRj
LnNlcnZpY2VzLm1vemlsbGEuY29tLykKK0ZJUkVGT1hfQ0lfUk9PVF9VUkwgPSAnaHR0cHM6Ly90
YXNrY2x1c3Rlci5uZXQnCisKKworZGVmIF9nZXRfZmlsZXZlcnNpb24oYmluYXJ5LCBsb2dnZXI9
Tm9uZSk6CisgICAgY29tbWFuZCA9ICIoR2V0LUl0ZW0gJyVzJykuVmVyc2lvbkluZm8uRmlsZVZl
cnNpb24iICUgYmluYXJ5LnJlcGxhY2UoIiciLCAiJyciKQorICAgIHRyeToKKyAgICAgICAgcmV0
dXJuIGNhbGwoInBvd2Vyc2hlbGwuZXhlIiwgY29tbWFuZCkuc3RyaXAoKQorICAgIGV4Y2VwdCAo
c3VicHJvY2Vzcy5DYWxsZWRQcm9jZXNzRXJyb3IsIE9TRXJyb3IpOgorICAgICAgICBpZiBsb2dn
ZXIgaXMgbm90IE5vbmU6CisgICAgICAgICAgICBsb2dnZXIud2FybmluZygiRmFpbGVkIHRvIGNh
bGwgJXMgaW4gUG93ZXJTaGVsbCIgJSBjb21tYW5kKQorICAgICAgICByZXR1cm4gTm9uZQorCisK
K2RlZiBoYW5kbGVfcmVtb3ZlX3JlYWRvbmx5KGZ1bmMsIHBhdGgsIGV4Yyk6CisgICAgZXhjdmFs
dWUgPSBleGNbMV0KKyAgICBpZiBmdW5jIGluIChvcy5ybWRpciwgb3MucmVtb3ZlKSBhbmQgZXhj
dmFsdWUuZXJybm8gPT0gZXJybm8uRUFDQ0VTOgorICAgICAgICBvcy5jaG1vZChwYXRoLCBzdGF0
LlNfSVJXWFUgfCBzdGF0LlNfSVJXWEcgfCBzdGF0LlNfSVJXWE8pICAjIDA3NzcKKyAgICAgICAg
ZnVuYyhwYXRoKQorICAgIGVsc2U6CisgICAgICAgIHJhaXNlCisKIAogY2xhc3MgQnJvd3Nlcihv
YmplY3QpOgogICAgIF9fbWV0YWNsYXNzX18gPSBBQkNNZXRhCiAKKyAgICBkZWYgX19pbml0X18o
c2VsZiwgbG9nZ2VyKToKKyAgICAgICAgc2VsZi5sb2dnZXIgPSBsb2dnZXIKKworICAgIEBhYnN0
cmFjdG1ldGhvZAorICAgIGRlZiBkb3dubG9hZChzZWxmLCBkZXN0PU5vbmUsIGNoYW5uZWw9Tm9u
ZSk6CisgICAgICAgICIiIkRvd25sb2FkIGEgcGFja2FnZSBvciBpbnN0YWxsZXIgZm9yIHRoZSBi
cm93c2VyIiIiCisgICAgICAgIHJldHVybiBOb3RJbXBsZW1lbnRlZAorCiAgICAgQGFic3RyYWN0
bWV0aG9kCiAgICAgZGVmIGluc3RhbGwoc2VsZiwgZGVzdD1Ob25lKToKICAgICAgICAgIiIiSW5z
dGFsbCB0aGUgYnJvd3Nlci4iIiIKICAgICAgICAgcmV0dXJuIE5vdEltcGxlbWVudGVkCiAKICAg
ICBAYWJzdHJhY3RtZXRob2QKLSAgICBkZWYgaW5zdGFsbF93ZWJkcml2ZXIoc2VsZiwgZGVzdD1O
b25lKToKKyAgICBkZWYgaW5zdGFsbF93ZWJkcml2ZXIoc2VsZiwgZGVzdD1Ob25lLCBjaGFubmVs
PU5vbmUsIGJyb3dzZXJfYmluYXJ5PU5vbmUpOgogICAgICAgICAiIiJJbnN0YWxsIHRoZSBXZWJE
cml2ZXIgaW1wbGVtZW50YXRpb24gZm9yIHRoaXMgYnJvd3Nlci4iIiIKICAgICAgICAgcmV0dXJu
IE5vdEltcGxlbWVudGVkCiAKICAgICBAYWJzdHJhY3RtZXRob2QKLSAgICBkZWYgZmluZF9iaW5h
cnkoc2VsZik6CisgICAgZGVmIGZpbmRfYmluYXJ5KHNlbGYsIHZlbnZfcGF0aD1Ob25lLCBjaGFu
bmVsPU5vbmUpOgogICAgICAgICAiIiJGaW5kIHRoZSBiaW5hcnkgb2YgdGhlIGJyb3dzZXIuCiAK
ICAgICAgICAgSWYgdGhlIFdlYkRyaXZlciBmb3IgdGhlIGJyb3dzZXIgaXMgYWJsZSB0byBmaW5k
IHRoZSBiaW5hcnkgaXRzZWxmLCB0aGlzCkBAIC00MSwxMiArNzMsMTIgQEAgY2xhc3MgQnJvd3Nl
cihvYmplY3QpOgogICAgICAgICByZXR1cm4gTm90SW1wbGVtZW50ZWQKIAogICAgIEBhYnN0cmFj
dG1ldGhvZAotICAgIGRlZiBmaW5kX3dlYmRyaXZlcihzZWxmKToKKyAgICBkZWYgZmluZF93ZWJk
cml2ZXIoc2VsZiwgY2hhbm5lbD1Ob25lKToKICAgICAgICAgIiIiRmluZCB0aGUgYmluYXJ5IG9m
IHRoZSBXZWJEcml2ZXIuIiIiCiAgICAgICAgIHJldHVybiBOb3RJbXBsZW1lbnRlZAogCiAgICAg
QGFic3RyYWN0bWV0aG9kCi0gICAgZGVmIHZlcnNpb24oc2VsZiwgYmluYXJ5PU5vbmUpOgorICAg
IGRlZiB2ZXJzaW9uKHNlbGYsIGJpbmFyeT1Ob25lLCB3ZWJkcml2ZXJfYmluYXJ5PU5vbmUpOgog
ICAgICAgICAiIiJSZXRyaWV2ZSB0aGUgcmVsZWFzZSB2ZXJzaW9uIG9mIHRoZSBpbnN0YWxsZWQg
YnJvd3Nlci4iIiIKICAgICAgICAgcmV0dXJuIE5vdEltcGxlbWVudGVkCiAKQEAgLTY0LDk3ICs5
NiwxNjAgQEAgY2xhc3MgRmlyZWZveChCcm93c2VyKToKIAogICAgIHByb2R1Y3QgPSAiZmlyZWZv
eCIKICAgICBiaW5hcnkgPSAiYnJvd3NlcnMvZmlyZWZveC9maXJlZm94IgotICAgIHBsYXRmb3Jt
X2luaSA9ICJicm93c2Vycy9maXJlZm94L3BsYXRmb3JtLmluaSIKICAgICByZXF1aXJlbWVudHMg
PSAicmVxdWlyZW1lbnRzX2ZpcmVmb3gudHh0IgogCi0gICAgZGVmIHBsYXRmb3JtX3N0cmluZ19n
ZWNrb2RyaXZlcihzZWxmKToKLSAgICAgICAgcGxhdGZvcm0gPSB7Ci0gICAgICAgICAgICAiTGlu
dXgiOiAibGludXgiLAotICAgICAgICAgICAgIldpbmRvd3MiOiAid2luIiwKLSAgICAgICAgICAg
ICJEYXJ3aW4iOiAibWFjb3MiCi0gICAgICAgIH0uZ2V0KHVuYW1lWzBdKQorICAgIHBsYXRmb3Jt
ID0geworICAgICAgICAiTGludXgiOiAibGludXgiLAorICAgICAgICAiV2luZG93cyI6ICJ3aW4i
LAorICAgICAgICAiRGFyd2luIjogIm1hY29zIgorICAgIH0uZ2V0KHVuYW1lWzBdKQogCi0gICAg
ICAgIGlmIHBsYXRmb3JtIGlzIE5vbmU6CisgICAgYXBwbGljYXRpb25fbmFtZSA9IHsKKyAgICAg
ICAgInN0YWJsZSI6ICJGaXJlZm94LmFwcCIsCisgICAgICAgICJiZXRhIjogIkZpcmVmb3guYXBw
IiwKKyAgICAgICAgIm5pZ2h0bHkiOiAiRmlyZWZveCBOaWdodGx5LmFwcCIKKyAgICB9CisKKyAg
ICBkZWYgcGxhdGZvcm1fc3RyaW5nX2dlY2tvZHJpdmVyKHNlbGYpOgorICAgICAgICBpZiBzZWxm
LnBsYXRmb3JtIGlzIE5vbmU6CiAgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJVbmFibGUg
dG8gY29uc3RydWN0IGEgdmFsaWQgR2Vja29kcml2ZXIgcGFja2FnZSBuYW1lIGZvciBjdXJyZW50
IHBsYXRmb3JtIikKIAotICAgICAgICBpZiBwbGF0Zm9ybSBpbiAoImxpbnV4IiwgIndpbiIpOgor
ICAgICAgICBpZiBzZWxmLnBsYXRmb3JtIGluICgibGludXgiLCAid2luIik6CiAgICAgICAgICAg
ICBiaXRzID0gIjY0IiBpZiB1bmFtZVs0XSA9PSAieDg2XzY0IiBlbHNlICIzMiIKICAgICAgICAg
ZWxzZToKICAgICAgICAgICAgIGJpdHMgPSAiIgogCi0gICAgICAgIHJldHVybiAiJXMlcyIgJSAo
cGxhdGZvcm0sIGJpdHMpCisgICAgICAgIHJldHVybiAiJXMlcyIgJSAoc2VsZi5wbGF0Zm9ybSwg
Yml0cykKIAotICAgIGRlZiBpbnN0YWxsKHNlbGYsIGRlc3Q9Tm9uZSk6Ci0gICAgICAgICIiIklu
c3RhbGwgRmlyZWZveC4iIiIKKyAgICBkZWYgX2dldF9kZXN0KHNlbGYsIGRlc3QsIGNoYW5uZWwp
OgorICAgICAgICBpZiBkZXN0IGlzIE5vbmU6CisgICAgICAgICAgICAjIG9zLmdldGN3ZCgpIGRv
ZXNuJ3QgaW5jbHVkZSB0aGUgdmVudiBwYXRoCisgICAgICAgICAgICBkZXN0ID0gb3MucGF0aC5q
b2luKG9zLmdldGN3ZCgpLCAiX3ZlbnYiKQogCi0gICAgICAgIGZyb20gbW96ZG93bmxvYWQgaW1w
b3J0IEZhY3RvcnlTY3JhcGVyCi0gICAgICAgIGltcG9ydCBtb3ppbnN0YWxsCisgICAgICAgIGRl
c3QgPSBvcy5wYXRoLmpvaW4oZGVzdCwgImJyb3dzZXJzIiwgY2hhbm5lbCkKIAotICAgICAgICBw
bGF0Zm9ybSA9IHsKLSAgICAgICAgICAgICJMaW51eCI6ICJsaW51eCIsCi0gICAgICAgICAgICAi
V2luZG93cyI6ICJ3aW4iLAotICAgICAgICAgICAgIkRhcndpbiI6ICJtYWMiCi0gICAgICAgIH0u
Z2V0KHVuYW1lWzBdKQorICAgICAgICBpZiBub3Qgb3MucGF0aC5leGlzdHMoZGVzdCk6CisgICAg
ICAgICAgICBvcy5tYWtlZGlycyhkZXN0KQogCi0gICAgICAgIGlmIHBsYXRmb3JtIGlzIE5vbmU6
Ci0gICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJVbmFibGUgdG8gY29uc3RydWN0IGEgdmFs
aWQgRmlyZWZveCBwYWNrYWdlIG5hbWUgZm9yIGN1cnJlbnQgcGxhdGZvcm0iKQorICAgICAgICBy
ZXR1cm4gZGVzdAorCisgICAgZGVmIGRvd25sb2FkKHNlbGYsIGRlc3Q9Tm9uZSwgY2hhbm5lbD0i
bmlnaHRseSIpOgorICAgICAgICBwcm9kdWN0ID0geworICAgICAgICAgICAgIm5pZ2h0bHkiOiAi
ZmlyZWZveC1uaWdodGx5LWxhdGVzdC1zc2wiLAorICAgICAgICAgICAgImJldGEiOiAiZmlyZWZv
eC1iZXRhLWxhdGVzdC1zc2wiLAorICAgICAgICAgICAgInN0YWJsZSI6ICJmaXJlZm94LWxhdGVz
dC1zc2wiCisgICAgICAgIH0KKworICAgICAgICBvc19idWlsZHMgPSB7CisgICAgICAgICAgICAo
ImxpbnV4IiwgIng4NiIpOiAibGludXgiLAorICAgICAgICAgICAgKCJsaW51eCIsICJ4ODZfNjQi
KTogImxpbnV4NjQiLAorICAgICAgICAgICAgKCJ3aW4iLCAieDg2Iik6ICJ3aW4iLAorICAgICAg
ICAgICAgKCJ3aW4iLCAiQU1ENjQiKTogIndpbjY0IiwKKyAgICAgICAgICAgICgibWFjb3MiLCAi
eDg2XzY0Iik6ICJvc3giLAorICAgICAgICB9CisgICAgICAgIG9zX2tleSA9IChzZWxmLnBsYXRm
b3JtLCB1bmFtZVs0XSkKIAogICAgICAgICBpZiBkZXN0IGlzIE5vbmU6Ci0gICAgICAgICAgICAj
IG9zLmdldGN3ZCgpIGRvZXNuJ3QgaW5jbHVkZSB0aGUgdmVudiBwYXRoCi0gICAgICAgICAgICBk
ZXN0ID0gb3MucGF0aC5qb2luKG9zLmdldGN3ZCgpLCAiX3ZlbnYiKQorICAgICAgICAgICAgZGVz
dCA9IHNlbGYuX2dldF9kZXN0KE5vbmUsIGNoYW5uZWwpCisKKyAgICAgICAgaWYgY2hhbm5lbCBu
b3QgaW4gcHJvZHVjdDoKKyAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoIlVucmVjb2duaXNl
ZCByZWxlYXNlIGNoYW5uZWw6ICVzIiAlIGNoYW5uZWwpCisKKyAgICAgICAgaWYgb3Nfa2V5IG5v
dCBpbiBvc19idWlsZHM6CisgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJVbnN1cHBvcnRl
ZCBwbGF0Zm9ybTogJXMgJXMiICUgb3Nfa2V5KQorCisgICAgICAgIHVybCA9ICJodHRwczovL2Rv
d25sb2FkLm1vemlsbGEub3JnLz9wcm9kdWN0PSVzJm9zPSVzJmxhbmc9ZW4tVVMiICUgKHByb2R1
Y3RbY2hhbm5lbF0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9zX2J1aWxkc1tvc19rZXldKQorICAg
ICAgICBzZWxmLmxvZ2dlci5pbmZvKCJEb3dubG9hZGluZyBGaXJlZm94IGZyb20gJXMiICUgdXJs
KQorICAgICAgICByZXNwID0gcmVxdWVzdHMuZ2V0KHVybCkKKworICAgICAgICBmaWxlbmFtZSA9
IE5vbmUKKworICAgICAgICBjb250ZW50X2Rpc3Bvc2l0aW9uID0gcmVzcC5oZWFkZXJzLmdldCgn
Y29udGVudC1kaXNwb3NpdGlvbicpCisgICAgICAgIGlmIGNvbnRlbnRfZGlzcG9zaXRpb246Cisg
ICAgICAgICAgICBmaWxlbmFtZXMgPSByZS5maW5kYWxsKCJmaWxlbmFtZT0oLispIiwgY29udGVu
dF9kaXNwb3NpdGlvbikKKyAgICAgICAgICAgIGlmIGZpbGVuYW1lczoKKyAgICAgICAgICAgICAg
ICBmaWxlbmFtZSA9IGZpbGVuYW1lc1swXQorCisgICAgICAgIGlmIG5vdCBmaWxlbmFtZToKKyAg
ICAgICAgICAgIGZpbGVuYW1lID0gdXJscGFyc2UudXJsc3BsaXQocmVzcC51cmwpLnBhdGgucnNw
bGl0KCIvIiwgMSlbMV0KIAotICAgICAgICBkZXN0ID0gb3MucGF0aC5qb2luKGRlc3QsICJicm93
c2VycyIpCisgICAgICAgIGlmIG5vdCBmaWxlbmFtZToKKyAgICAgICAgICAgIGZpbGVuYW1lID0g
ImZpcmVmb3gudGFyLmJ6MiIKIAotICAgICAgICBmaWxlbmFtZSA9IEZhY3RvcnlTY3JhcGVyKCJk
YWlseSIsIGJyYW5jaD0ibW96aWxsYS1jZW50cmFsIiwgZGVzdGluYXRpb249ZGVzdCkuZG93bmxv
YWQoKQorICAgICAgICBpbnN0YWxsZXJfcGF0aCA9IG9zLnBhdGguam9pbihkZXN0LCBmaWxlbmFt
ZSkKKworICAgICAgICB3aXRoIG9wZW4oaW5zdGFsbGVyX3BhdGgsICJ3YiIpIGFzIGY6CisgICAg
ICAgICAgICBmLndyaXRlKHJlc3AuY29udGVudCkKKworICAgICAgICByZXR1cm4gaW5zdGFsbGVy
X3BhdGgKKworICAgIGRlZiBpbnN0YWxsKHNlbGYsIGRlc3Q9Tm9uZSwgY2hhbm5lbD0ibmlnaHRs
eSIpOgorICAgICAgICAiIiJJbnN0YWxsIEZpcmVmb3guIiIiCisgICAgICAgIGltcG9ydCBtb3pp
bnN0YWxsCisKKyAgICAgICAgZGVzdCA9IHNlbGYuX2dldF9kZXN0KGRlc3QsIGNoYW5uZWwpCisK
KyAgICAgICAgZmlsZW5hbWUgPSBvcy5wYXRoLmJhc2VuYW1lKGRlc3QpCisKKyAgICAgICAgaW5z
dGFsbGVyX3BhdGggPSBzZWxmLmRvd25sb2FkKGRlc3QsIGNoYW5uZWwpCiAKICAgICAgICAgdHJ5
OgotICAgICAgICAgICAgbW96aW5zdGFsbC5pbnN0YWxsKGZpbGVuYW1lLCBkZXN0KQorICAgICAg
ICAgICAgbW96aW5zdGFsbC5pbnN0YWxsKGluc3RhbGxlcl9wYXRoLCBkZXN0KQogICAgICAgICBl
eGNlcHQgbW96aW5zdGFsbC5tb3ppbnN0YWxsLkluc3RhbGxFcnJvcjoKLSAgICAgICAgICAgIGlm
IHBsYXRmb3JtID09ICJtYWMiIGFuZCBvcy5wYXRoLmV4aXN0cyhvcy5wYXRoLmpvaW4oZGVzdCwg
IkZpcmVmb3ggTmlnaHRseS5hcHAiKSk6CisgICAgICAgICAgICBpZiBzZWxmLnBsYXRmb3JtID09
ICJtYWNvcyIgYW5kIG9zLnBhdGguZXhpc3RzKG9zLnBhdGguam9pbihkZXN0LCBzZWxmLmFwcGxp
Y2F0aW9uX25hbWUuZ2V0KGNoYW5uZWwsICJGaXJlZm94IE5pZ2h0bHkuYXBwIikpKToKICAgICAg
ICAgICAgICAgICAjIG1vemluc3RhbGwgd2lsbCBmYWlsIGlmIG5pZ2h0bHkgaXMgYWxyZWFkeSBp
bnN0YWxsZWQgaW4gdGhlIHZlbnYgYmVjYXVzZQogICAgICAgICAgICAgICAgICMgbWFjIGluc3Rh
bGxhdGlvbiB1c2VzIHNodXRpbC5jb3B5X3RyZWUKLSAgICAgICAgICAgICAgICBtb3ppbnN0YWxs
LnVuaW5zdGFsbChvcy5wYXRoLmpvaW4oZGVzdCwgIkZpcmVmb3ggTmlnaHRseS5hcHAiKSkKKyAg
ICAgICAgICAgICAgICBtb3ppbnN0YWxsLnVuaW5zdGFsbChvcy5wYXRoLmpvaW4oZGVzdCwgc2Vs
Zi5hcHBsaWNhdGlvbl9uYW1lLmdldChjaGFubmVsLCAiRmlyZWZveCBOaWdodGx5LmFwcCIpKSkK
ICAgICAgICAgICAgICAgICBtb3ppbnN0YWxsLmluc3RhbGwoZmlsZW5hbWUsIGRlc3QpCiAgICAg
ICAgICAgICBlbHNlOgogICAgICAgICAgICAgICAgIHJhaXNlCiAKLSAgICAgICAgb3MucmVtb3Zl
KGZpbGVuYW1lKQorICAgICAgICBvcy5yZW1vdmUoaW5zdGFsbGVyX3BhdGgpCiAgICAgICAgIHJl
dHVybiBzZWxmLmZpbmRfYmluYXJ5X3BhdGgoZGVzdCkKIAotICAgIGRlZiBmaW5kX2JpbmFyeV9w
YXRoKHNlbGYsIHBhdGg9Tm9uZSk6CisgICAgZGVmIGZpbmRfYmluYXJ5X3BhdGgoc2VsZiwgcGF0
aD1Ob25lLCBjaGFubmVsPSJuaWdodGx5Iik6CiAgICAgICAgICIiIkxvb2tzIGZvciB0aGUgZmly
ZWZveCBiaW5hcnkgaW4gdGhlIHZpcnR1YWwgZW52aXJvbm1lbnQiIiIKIAotICAgICAgICBwbGF0
Zm9ybSA9IHsKLSAgICAgICAgICAgICJMaW51eCI6ICJsaW51eCIsCi0gICAgICAgICAgICAiV2lu
ZG93cyI6ICJ3aW4iLAotICAgICAgICAgICAgIkRhcndpbiI6ICJtYWMiCi0gICAgICAgIH0uZ2V0
KHVuYW1lWzBdKQotCiAgICAgICAgIGlmIHBhdGggaXMgTm9uZToKLSAgICAgICAgICAgICNvcy5n
ZXRjd2QoKSBkb2Vzbid0IGluY2x1ZGUgdGhlIHZlbnYgcGF0aAotICAgICAgICAgICAgcGF0aCA9
IG9zLnBhdGguam9pbihvcy5nZXRjd2QoKSwgIl92ZW52IiwgImJyb3dzZXJzIikKKyAgICAgICAg
ICAgICMgb3MuZ2V0Y3dkKCkgZG9lc24ndCBpbmNsdWRlIHRoZSB2ZW52IHBhdGgKKyAgICAgICAg
ICAgIHBhdGggPSBvcy5wYXRoLmpvaW4ob3MuZ2V0Y3dkKCksICJfdmVudiIsICJicm93c2VycyIs
IGNoYW5uZWwpCiAKICAgICAgICAgYmluYXJ5ID0gTm9uZQogCi0gICAgICAgIGlmIHBsYXRmb3Jt
ID09ICJsaW51eCI6CisgICAgICAgIGlmIHNlbGYucGxhdGZvcm0gPT0gImxpbnV4IjoKICAgICAg
ICAgICAgIGJpbmFyeSA9IGZpbmRfZXhlY3V0YWJsZSgiZmlyZWZveCIsIG9zLnBhdGguam9pbihw
YXRoLCAiZmlyZWZveCIpKQotICAgICAgICBlbGlmIHBsYXRmb3JtID09ICJ3aW4iOgorICAgICAg
ICBlbGlmIHNlbGYucGxhdGZvcm0gPT0gIndpbiI6CiAgICAgICAgICAgICBpbXBvcnQgbW96aW5z
dGFsbAotICAgICAgICAgICAgYmluYXJ5ID0gbW96aW5zdGFsbC5nZXRfYmluYXJ5KHBhdGgsICJm
aXJlZm94IikKLSAgICAgICAgZWxpZiBwbGF0Zm9ybSA9PSAibWFjIjoKLSAgICAgICAgICAgIGJp
bmFyeSA9IGZpbmRfZXhlY3V0YWJsZSgiZmlyZWZveCIsIG9zLnBhdGguam9pbihwYXRoLCAiRmly
ZWZveCBOaWdodGx5LmFwcCIsICJDb250ZW50cyIsICJNYWNPUyIpKQorICAgICAgICAgICAgdHJ5
OgorICAgICAgICAgICAgICAgIGJpbmFyeSA9IG1vemluc3RhbGwuZ2V0X2JpbmFyeShwYXRoLCAi
ZmlyZWZveCIpCisgICAgICAgICAgICBleGNlcHQgbW96aW5zdGFsbC5JbnZhbGlkQmluYXJ5Ogor
ICAgICAgICAgICAgICAgICMgaWdub3JlIHRoZSBjYXNlIHdoZXJlIHdlIGZhaWwgdG8gZ2V0IGEg
YmluYXJ5CisgICAgICAgICAgICAgICAgcGFzcworICAgICAgICBlbGlmIHNlbGYucGxhdGZvcm0g
PT0gIm1hY29zIjoKKyAgICAgICAgICAgIGJpbmFyeSA9IGZpbmRfZXhlY3V0YWJsZSgiZmlyZWZv
eCIsIG9zLnBhdGguam9pbihwYXRoLCBzZWxmLmFwcGxpY2F0aW9uX25hbWUuZ2V0KGNoYW5uZWws
ICJGaXJlZm94IE5pZ2h0bHkuYXBwIiksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkNvbnRlbnRzIiwgIk1hY09TIikpCiAKICAg
ICAgICAgcmV0dXJuIGJpbmFyeQogCi0gICAgZGVmIGZpbmRfYmluYXJ5KHNlbGYsIHZlbnZfcGF0
aD1Ob25lKToKKyAgICBkZWYgZmluZF9iaW5hcnkoc2VsZiwgdmVudl9wYXRoPU5vbmUsIGNoYW5u
ZWw9Im5pZ2h0bHkiKToKICAgICAgICAgaWYgdmVudl9wYXRoIGlzIE5vbmU6CiAgICAgICAgICAg
ICB2ZW52X3BhdGggPSBvcy5wYXRoLmpvaW4ob3MuZ2V0Y3dkKCksICJfdmVudiIpCiAKLSAgICAg
ICAgYmluYXJ5ID0gc2VsZi5maW5kX2JpbmFyeV9wYXRoKG9zLnBhdGguam9pbih2ZW52X3BhdGgs
ICJicm93c2VycyIpKQorICAgICAgICBwYXRoID0gb3MucGF0aC5qb2luKHZlbnZfcGF0aCwgImJy
b3dzZXJzIiwgY2hhbm5lbCkKKyAgICAgICAgYmluYXJ5ID0gc2VsZi5maW5kX2JpbmFyeV9wYXRo
KHBhdGgsIGNoYW5uZWwpCisKKyAgICAgICAgaWYgbm90IGJpbmFyeSBhbmQgc2VsZi5wbGF0Zm9y
bSA9PSAid2luIjoKKyAgICAgICAgICAgIHdpbnBhdGhzID0gW29zLnBhdGguZXhwYW5kdmFycygi
JFNZU1RFTURSSVZFXFxQcm9ncmFtIEZpbGVzXFxNb3ppbGxhIEZpcmVmb3giKSwKKyAgICAgICAg
ICAgICAgICAgICAgICAgIG9zLnBhdGguZXhwYW5kdmFycygiJFNZU1RFTURSSVZFXFxQcm9ncmFt
IEZpbGVzICh4ODYpXFxNb3ppbGxhIEZpcmVmb3giKV0KKyAgICAgICAgICAgIGZvciB3aW5wYXRo
IGluIHdpbnBhdGhzOgorICAgICAgICAgICAgICAgIGJpbmFyeSA9IHNlbGYuZmluZF9iaW5hcnlf
cGF0aCh3aW5wYXRoLCBjaGFubmVsKQorICAgICAgICAgICAgICAgIGlmIGJpbmFyeSBpcyBub3Qg
Tm9uZToKKyAgICAgICAgICAgICAgICAgICAgYnJlYWsKIAotICAgICAgICBpZiBub3QgYmluYXJ5
IGFuZCB1bmFtZVswXSA9PSAiRGFyd2luIjoKLSAgICAgICAgICAgIG1hY3BhdGhzID0gWyIvQXBw
bGljYXRpb25zL0ZpcmVmb3hOaWdodGx5LmFwcC9Db250ZW50cy9NYWNPUyIsCi0gICAgICAgICAg
ICAgICAgICAgICAgICBvcy5wYXRoLmV4cGFuZHVzZXIoIn4vQXBwbGljYXRpb25zL0ZpcmVmb3hO
aWdodGx5LmFwcC9Db250ZW50cy9NYWNPUyIpLAorICAgICAgICBpZiBub3QgYmluYXJ5IGFuZCBz
ZWxmLnBsYXRmb3JtID09ICJtYWNvcyI6CisgICAgICAgICAgICBtYWNwYXRocyA9IFsiL0FwcGxp
Y2F0aW9ucy9GaXJlZm94IE5pZ2h0bHkuYXBwL0NvbnRlbnRzL01hY09TIiwKKyAgICAgICAgICAg
ICAgICAgICAgICAgIG9zLnBhdGguZXhwYW5kdXNlcigifi9BcHBsaWNhdGlvbnMvRmlyZWZveCBO
aWdodGx5LmFwcC9Db250ZW50cy9NYWNPUyIpLAogICAgICAgICAgICAgICAgICAgICAgICAgIi9B
cHBsaWNhdGlvbnMvRmlyZWZveCBEZXZlbG9wZXIgRWRpdGlvbi5hcHAvQ29udGVudHMvTWFjT1Mi
LAogICAgICAgICAgICAgICAgICAgICAgICAgb3MucGF0aC5leHBhbmR1c2VyKCJ+L0FwcGxpY2F0
aW9ucy9GaXJlZm94IERldmVsb3BlciBFZGl0aW9uLmFwcC9Db250ZW50cy9NYWNPUyIpLAogICAg
ICAgICAgICAgICAgICAgICAgICAgIi9BcHBsaWNhdGlvbnMvRmlyZWZveC5hcHAvQ29udGVudHMv
TWFjT1MiLApAQCAtMTcwLDExICsyNjUsMTEgQEAgY2xhc3MgRmlyZWZveChCcm93c2VyKToKICAg
ICAgICAgcGF0aCA9IGZpbmRfZXhlY3V0YWJsZSgiY2VydHV0aWwiKQogICAgICAgICBpZiBwYXRo
IGlzIE5vbmU6CiAgICAgICAgICAgICByZXR1cm4gTm9uZQotICAgICAgICBpZiBvcy5wYXRoLnNw
bGl0ZHJpdmUocGF0aClbMV0uc3BsaXQob3MucGF0aC5zZXApID09IFsiIiwgIldpbmRvd3MiLCAi
c3lzdGVtMzIiLCAiY2VydHV0aWwuZXhlIl06CisgICAgICAgIGlmIG9zLnBhdGguc3BsaXRkcml2
ZShvcy5wYXRoLm5vcm1jYXNlKHBhdGgpKVsxXS5zcGxpdChvcy5wYXRoLnNlcCkgPT0gWyIiLCAi
d2luZG93cyIsICJzeXN0ZW0zMiIsICJjZXJ0dXRpbC5leGUiXToKICAgICAgICAgICAgIHJldHVy
biBOb25lCiAgICAgICAgIHJldHVybiBwYXRoCiAKLSAgICBkZWYgZmluZF93ZWJkcml2ZXIoc2Vs
Zik6CisgICAgZGVmIGZpbmRfd2ViZHJpdmVyKHNlbGYsIGNoYW5uZWw9Tm9uZSk6CiAgICAgICAg
IHJldHVybiBmaW5kX2V4ZWN1dGFibGUoImdlY2tvZHJpdmVyIikKIAogICAgIGRlZiBnZXRfdmVy
c2lvbl9hbmRfY2hhbm5lbChzZWxmLCBiaW5hcnkpOgpAQCAtMTkwLDI2ICsyODUsNDcgQEAgY2xh
c3MgRmlyZWZveChCcm93c2VyKToKICAgICAgICAgaWYgY2hhbm5lbCA9PSAic3RhYmxlIjoKICAg
ICAgICAgICAgIHJlcG8gPSAiaHR0cHM6Ly9oZy5tb3ppbGxhLm9yZy9yZWxlYXNlcy9tb3ppbGxh
LXJlbGVhc2UiCiAgICAgICAgICAgICB0YWcgPSAiRklSRUZPWF8lc19SRUxFQVNFIiAlIHZlcnNp
b24ucmVwbGFjZSgiLiIsICJfIikKLSAgICAgICAgZWxzZToKLSAgICAgICAgICAgIHJlcG8gPSAi
aHR0cHM6Ly9oZy5tb3ppbGxhLm9yZy9tb3ppbGxhLWNlbnRyYWwiCi0gICAgICAgICAgICBpZiBj
aGFubmVsID09ICJiZXRhIjoKLSAgICAgICAgICAgICAgICB0YWcgPSAiRklSRUZPWF8lc19CRVRB
IiAlIHZlcnNpb24uc3BsaXQoIi4iLCAxKVswXQorICAgICAgICBlbGlmIGNoYW5uZWwgPT0gImJl
dGEiOgorICAgICAgICAgICAgcmVwbyA9ICJodHRwczovL2hnLm1vemlsbGEub3JnL3JlbGVhc2Vz
L21vemlsbGEtYmV0YSIKKyAgICAgICAgICAgIG1ham9yX3ZlcnNpb24gPSB2ZXJzaW9uLnNwbGl0
KCIuIiwgMSlbMF0KKyAgICAgICAgICAgICMgRm9yIGJldGEgd2UgaGF2ZSBhIGRpZmZlcmVudCBm
b3JtYXQgZm9yIGJldGFzIHRoYXQgYXJlIG5vdyBpbiBzdGFibGUgcmVsZWFzZXMKKyAgICAgICAg
ICAgICMgdnMgdGhvc2UgdGhhdCBhcmUgbm90CisgICAgICAgICAgICB0YWdzID0gZ2V0KCJodHRw
czovL2hnLm1vemlsbGEub3JnL3JlbGVhc2VzL21vemlsbGEtYmV0YS9qc29uLXRhZ3MiKS5qc29u
KClbInRhZ3MiXQorICAgICAgICAgICAgdGFncyA9IHtpdGVtWyJ0YWciXSBmb3IgaXRlbSBpbiB0
YWdzfQorICAgICAgICAgICAgZW5kX3RhZyA9ICJGSVJFRk9YX0JFVEFfJXNfRU5EIiAlIG1ham9y
X3ZlcnNpb24KKyAgICAgICAgICAgIGlmIGVuZF90YWcgaW4gdGFnczoKKyAgICAgICAgICAgICAg
ICB0YWcgPSBlbmRfdGFnCiAgICAgICAgICAgICBlbHNlOgotICAgICAgICAgICAgICAgICMgQWx3
YXlzIHVzZSB0aXAgYXMgdGhlIHRhZyBmb3IgbmlnaHRseTsgdGhpcyBpc24ndCBxdWl0ZSByaWdo
dAotICAgICAgICAgICAgICAgICMgYnV0IHRvIGRvIGJldHRlciB3ZSBuZWVkIHRoZSBhY3R1YWwg
YnVpbGQgcmV2aXNpb24sIHdoaWNoIHdlCi0gICAgICAgICAgICAgICAgIyBjYW4gZ2V0IGlmIHdl
IGhhdmUgYW4gYXBwbGljYXRpb24uaW5pIGZpbGUKICAgICAgICAgICAgICAgICB0YWcgPSAidGlw
IgorICAgICAgICBlbHNlOgorICAgICAgICAgICAgcmVwbyA9ICJodHRwczovL2hnLm1vemlsbGEu
b3JnL21vemlsbGEtY2VudHJhbCIKKyAgICAgICAgICAgICMgQWx3YXlzIHVzZSB0aXAgYXMgdGhl
IHRhZyBmb3IgbmlnaHRseTsgdGhpcyBpc24ndCBxdWl0ZSByaWdodAorICAgICAgICAgICAgIyBi
dXQgdG8gZG8gYmV0dGVyIHdlIG5lZWQgdGhlIGFjdHVhbCBidWlsZCByZXZpc2lvbiwgd2hpY2gg
d2UKKyAgICAgICAgICAgICMgY2FuIGdldCBpZiB3ZSBoYXZlIGFuIGFwcGxpY2F0aW9uLmluaSBm
aWxlCisgICAgICAgICAgICB0YWcgPSAidGlwIgogCiAgICAgICAgIHJldHVybiAiJXMvYXJjaGl2
ZS8lcy56aXAvdGVzdGluZy9wcm9maWxlcy8iICUgKHJlcG8sIHRhZykKIAotICAgIGRlZiBpbnN0
YWxsX3ByZWZzKHNlbGYsIGJpbmFyeSwgZGVzdD1Ob25lKToKLSAgICAgICAgdmVyc2lvbiwgY2hh
bm5lbCA9IHNlbGYuZ2V0X3ZlcnNpb25fYW5kX2NoYW5uZWwoYmluYXJ5KQorICAgIGRlZiBpbnN0
YWxsX3ByZWZzKHNlbGYsIGJpbmFyeSwgZGVzdD1Ob25lLCBjaGFubmVsPU5vbmUpOgorICAgICAg
ICBpZiBiaW5hcnk6CisgICAgICAgICAgICB2ZXJzaW9uLCBjaGFubmVsXyA9IHNlbGYuZ2V0X3Zl
cnNpb25fYW5kX2NoYW5uZWwoYmluYXJ5KQorICAgICAgICAgICAgaWYgY2hhbm5lbCBpcyBub3Qg
Tm9uZSBhbmQgY2hhbm5lbCAhPSBjaGFubmVsXzoKKyAgICAgICAgICAgICAgICAjIEJldGEgZG9l
c24ndCBhbHdheXMgc2VlbSB0byBoYXZlIHRoZSBiIGluIHRoZSB2ZXJzaW9uIHN0cmluZywgc28g
YWxsb3cgdGhlCisgICAgICAgICAgICAgICAgIyBtYW51YWxseSBzdXBwbGllZCB2YWx1ZSB0byBv
dmVycmlkZSB0aGUgb25lIGZyb20gdGhlIGJpbmFyeQorICAgICAgICAgICAgICAgIHNlbGYubG9n
Z2VyLndhcm5pbmcoIlN1cHBsaWVkIGNoYW5uZWwgZG9lc24ndCBtYXRjaCBiaW5hcnksIHVzaW5n
IHN1cHBsaWVkIGNoYW5uZWwiKQorICAgICAgICAgICAgZWxpZiBjaGFubmVsIGlzIE5vbmU6Cisg
ICAgICAgICAgICAgICAgY2hhbm5lbCA9IGNoYW5uZWxfCisgICAgICAgIGVsc2U6CisgICAgICAg
ICAgICB2ZXJzaW9uID0gTm9uZQorCiAgICAgICAgIGlmIGRlc3QgaXMgTm9uZToKLSAgICAgICAg
ICAgIGRlc3QgPSBvcy5wd2QKKyAgICAgICAgICAgIGRlc3QgPSBvcy5jdXJkaXIKIAotICAgICAg
ICBkZXN0ID0gb3MucGF0aC5qb2luKGRlc3QsICJwcm9maWxlcyIsIGNoYW5uZWwsIHZlcnNpb24p
CisgICAgICAgIGRlc3QgPSBvcy5wYXRoLmpvaW4oZGVzdCwgInByb2ZpbGVzIiwgY2hhbm5lbCkK
KyAgICAgICAgaWYgdmVyc2lvbjoKKyAgICAgICAgICAgIGRlc3QgPSBvcy5wYXRoLmpvaW4oZGVz
dCwgdmVyc2lvbikKICAgICAgICAgaGF2ZV9jYWNoZSA9IEZhbHNlCi0gICAgICAgIGlmIG9zLnBh
dGguZXhpc3RzKGRlc3QpOgorICAgICAgICBpZiBvcy5wYXRoLmV4aXN0cyhkZXN0KSBhbmQgbGVu
KG9zLmxpc3RkaXIoZGVzdCkpID4gMDoKICAgICAgICAgICAgIGlmIGNoYW5uZWwgIT0gIm5pZ2h0
bHkiOgogICAgICAgICAgICAgICAgIGhhdmVfY2FjaGUgPSBUcnVlCiAgICAgICAgICAgICBlbHNl
OgpAQCAtMjI1LDcgKzM0MSw3IEBAIGNsYXNzIEZpcmVmb3goQnJvd3Nlcik6CiAKICAgICAgICAg
ICAgIHVybCA9IHNlbGYuZ2V0X3Byb2ZpbGVfYnVuZGxlX3VybCh2ZXJzaW9uLCBjaGFubmVsKQog
Ci0gICAgICAgICAgICBwcmludCgiSW5zdGFsbGluZyB0ZXN0IHByZWZzIGZyb20gJXMiICUgdXJs
KQorICAgICAgICAgICAgc2VsZi5sb2dnZXIuaW5mbygiSW5zdGFsbGluZyB0ZXN0IHByZWZzIGZy
b20gJXMiICUgdXJsKQogICAgICAgICAgICAgdHJ5OgogICAgICAgICAgICAgICAgIGV4dHJhY3Rf
ZGlyID0gdGVtcGZpbGUubWtkdGVtcCgpCiAgICAgICAgICAgICAgICAgdW56aXAoZ2V0KHVybCku
cmF3LCBkZXN0PWV4dHJhY3RfZGlyKQpAQCAtMjM3LDcgKzM1Myw3IEBAIGNsYXNzIEZpcmVmb3go
QnJvd3Nlcik6CiAgICAgICAgICAgICBmaW5hbGx5OgogICAgICAgICAgICAgICAgIHNodXRpbC5y
bXRyZWUoZXh0cmFjdF9kaXIpCiAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICBwcmludCgiVXNp
bmcgY2FjaGVkIHRlc3QgcHJlZnMgZnJvbSAlcyIgJSBkZXN0KQorICAgICAgICAgICAgc2VsZi5s
b2dnZXIuaW5mbygiVXNpbmcgY2FjaGVkIHRlc3QgcHJlZnMgZnJvbSAlcyIgJSBkZXN0KQogCiAg
ICAgICAgIHJldHVybiBkZXN0CiAKQEAgLTI0Niw3ICszNjIsNyBAQCBjbGFzcyBGaXJlZm94KEJy
b3dzZXIpOgogICAgICAgICAjIFRoaXMgaXMgdXNlZCByYXRoZXIgdGhhbiBhbiBBUEkgY2FsbCB0
byBhdm9pZCByYXRlIGxpbWl0cwogICAgICAgICB0YWdzID0gY2FsbCgiZ2l0IiwgImxzLXJlbW90
ZSIsICItLXRhZ3MiLCAiLS1yZWZzIiwKICAgICAgICAgICAgICAgICAgICAgImh0dHBzOi8vZ2l0
aHViLmNvbS9tb3ppbGxhL2dlY2tvZHJpdmVyLmdpdCIpCi0gICAgICAgIHJlbGVhc2VfcmUgPSBy
ZS5jb21waWxlKCIuKnJlZnMvdGFncy92KFxkKylcLihcZCspXC4oXGQrKSIpCisgICAgICAgIHJl
bGVhc2VfcmUgPSByZS5jb21waWxlKHIiLipyZWZzL3RhZ3MvdihcZCspXC4oXGQrKVwuKFxkKyki
KQogICAgICAgICBsYXRlc3RfcmVsZWFzZSA9IDAKICAgICAgICAgZm9yIGl0ZW0gaW4gdGFncy5z
cGxpdCgiXG4iKToKICAgICAgICAgICAgIG0gPSByZWxlYXNlX3JlLm1hdGNoKGl0ZW0pCkBAIC0y
NTcsMTQgKzM3MywyMSBAQCBjbGFzcyBGaXJlZm94KEJyb3dzZXIpOgogICAgICAgICBhc3NlcnQg
bGF0ZXN0X3JlbGVhc2UgIT0gMAogICAgICAgICByZXR1cm4gInYlcy4lcy4lcyIgJSB0dXBsZShz
dHIoaXRlbSkgZm9yIGl0ZW0gaW4gbGF0ZXN0X3JlbGVhc2UpCiAKLSAgICBkZWYgaW5zdGFsbF93
ZWJkcml2ZXIoc2VsZiwgZGVzdD1Ob25lKToKKyAgICBkZWYgaW5zdGFsbF93ZWJkcml2ZXIoc2Vs
ZiwgZGVzdD1Ob25lLCBjaGFubmVsPU5vbmUsIGJyb3dzZXJfYmluYXJ5PU5vbmUpOgogICAgICAg
ICAiIiJJbnN0YWxsIGxhdGVzdCBHZWNrb2RyaXZlci4iIiIKICAgICAgICAgaWYgZGVzdCBpcyBO
b25lOgogICAgICAgICAgICAgZGVzdCA9IG9zLmdldGN3ZCgpCiAKKyAgICAgICAgaWYgY2hhbm5l
bCA9PSAibmlnaHRseSI6CisgICAgICAgICAgICBwYXRoID0gc2VsZi5pbnN0YWxsX2dlY2tvZHJp
dmVyX25pZ2h0bHkoZGVzdCkKKyAgICAgICAgICAgIGlmIHBhdGggaXMgbm90IE5vbmU6CisgICAg
ICAgICAgICAgICAgcmV0dXJuIHBhdGgKKyAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAg
ICAgc2VsZi5sb2dnZXIud2FybmluZygiTmlnaHRseSB3ZWJkcml2ZXIgbm90IGZvdW5kOyBmYWxs
aW5nIGJhY2sgdG8gcmVsZWFzZSIpCisKICAgICAgICAgdmVyc2lvbiA9IHNlbGYuX2xhdGVzdF9n
ZWNrb2RyaXZlcl92ZXJzaW9uKCkKICAgICAgICAgZm9ybWF0ID0gInppcCIgaWYgdW5hbWVbMF0g
PT0gIldpbmRvd3MiIGVsc2UgInRhci5neiIKLSAgICAgICAgbG9nZ2VyLmRlYnVnKCJMYXRlc3Qg
Z2Vja29kcml2ZXIgcmVsZWFzZSAlcyIgJSB2ZXJzaW9uKQorICAgICAgICBzZWxmLmxvZ2dlci5k
ZWJ1ZygiTGF0ZXN0IGdlY2tvZHJpdmVyIHJlbGVhc2UgJXMiICUgdmVyc2lvbikKICAgICAgICAg
dXJsID0gKCJodHRwczovL2dpdGh1Yi5jb20vbW96aWxsYS9nZWNrb2RyaXZlci9yZWxlYXNlcy9k
b3dubG9hZC8lcy9nZWNrb2RyaXZlci0lcy0lcy4lcyIgJQogICAgICAgICAgICAgICAgKHZlcnNp
b24sIHZlcnNpb24sIHNlbGYucGxhdGZvcm1fc3RyaW5nX2dlY2tvZHJpdmVyKCksIGZvcm1hdCkp
CiAgICAgICAgIGlmIGZvcm1hdCA9PSAiemlwIjoKQEAgLTI3Myw5ICszOTYsMzggQEAgY2xhc3Mg
RmlyZWZveChCcm93c2VyKToKICAgICAgICAgICAgIHVudGFyKGdldCh1cmwpLnJhdywgZGVzdD1k
ZXN0KQogICAgICAgICByZXR1cm4gZmluZF9leGVjdXRhYmxlKG9zLnBhdGguam9pbihkZXN0LCAi
Z2Vja29kcml2ZXIiKSkKIAotICAgIGRlZiB2ZXJzaW9uKHNlbGYsIGJpbmFyeT1Ob25lKToKKyAg
ICBkZWYgaW5zdGFsbF9nZWNrb2RyaXZlcl9uaWdodGx5KHNlbGYsIGRlc3QpOgorICAgICAgICBp
bXBvcnQgdGFyZmlsZQorICAgICAgICBpbXBvcnQgbW96ZG93bmxvYWQKKyAgICAgICAgc2VsZi5s
b2dnZXIuaW5mbygiQXR0ZW1wdGluZyB0byBpbnN0YWxsIHdlYmRyaXZlciBmcm9tIG5pZ2h0bHki
KQorICAgICAgICB0cnk6CisgICAgICAgICAgICBzID0gbW96ZG93bmxvYWQuRGFpbHlTY3JhcGVy
KGJyYW5jaD0ibW96aWxsYS1jZW50cmFsIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgZXh0ZW5zaW9uPSJjb21tb24udGVzdHMudGFyLmd6IiwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVzdGluYXRpb249ZGVzdCkKKyAgICAgICAg
ICAgIHBhY2thZ2VfcGF0aCA9IHMuZG93bmxvYWQoKQorICAgICAgICBleGNlcHQgbW96ZG93bmxv
YWQuZXJyb3JzLk5vdEZvdW5kRXJyb3I6CisgICAgICAgICAgICByZXR1cm4KKworICAgICAgICB0
cnk6CisgICAgICAgICAgICBleGVfc3VmZml4ID0gIi5leGUiIGlmIHVuYW1lWzBdID09ICJXaW5k
b3dzIiBlbHNlICIiCisgICAgICAgICAgICB3aXRoIHRhcmZpbGUub3BlbihwYWNrYWdlX3BhdGgs
ICJyIikgYXMgZjoKKyAgICAgICAgICAgICAgICB0cnk6CisgICAgICAgICAgICAgICAgICAgIG1l
bWJlciA9IGYuZ2V0bWVtYmVyKCJiaW4lc2dlY2tvZHJpdmVyJXMiICUgKG9zLnBhdGguc2VwLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBleGVfc3VmZml4KSkKKyAgICAgICAgICAgICAgICBleGNlcHQgS2V5RXJyb3I6Cisg
ICAgICAgICAgICAgICAgICAgIHJldHVybgorICAgICAgICAgICAgICAgICMgUmVtb3ZlIGJpbi8g
ZnJvbSB0aGUgcGF0aC4KKyAgICAgICAgICAgICAgICBtZW1iZXIubmFtZSA9IG9zLnBhdGguYmFz
ZW5hbWUobWVtYmVyLm5hbWUpCisgICAgICAgICAgICAgICAgZi5leHRyYWN0YWxsKG1lbWJlcnM9
W21lbWJlcl0sIHBhdGg9ZGVzdCkKKyAgICAgICAgICAgICAgICBwYXRoID0gb3MucGF0aC5qb2lu
KGRlc3QsIG1lbWJlci5uYW1lKQorICAgICAgICAgICAgc2VsZi5sb2dnZXIuaW5mbygiRXh0cmFj
dGVkIGdlY2tvZHJpdmVyIHRvICVzIiAlIHBhdGgpCisgICAgICAgIGZpbmFsbHk6CisgICAgICAg
ICAgICBvcy51bmxpbmsocGFja2FnZV9wYXRoKQorCisgICAgICAgIHJldHVybiBwYXRoCisKKyAg
ICBkZWYgdmVyc2lvbihzZWxmLCBiaW5hcnk9Tm9uZSwgd2ViZHJpdmVyX2JpbmFyeT1Ob25lKToK
ICAgICAgICAgIiIiUmV0cmlldmUgdGhlIHJlbGVhc2UgdmVyc2lvbiBvZiB0aGUgaW5zdGFsbGVk
IGJyb3dzZXIuIiIiCi0gICAgICAgIGJpbmFyeSA9IGJpbmFyeSBvciBzZWxmLmZpbmRfYmluYXJ5
KCkKICAgICAgICAgdmVyc2lvbl9zdHJpbmcgPSBjYWxsKGJpbmFyeSwgIi0tdmVyc2lvbiIpLnN0
cmlwKCkKICAgICAgICAgbSA9IHJlLm1hdGNoKHIiTW96aWxsYSBGaXJlZm94ICguKikiLCB2ZXJz
aW9uX3N0cmluZykKICAgICAgICAgaWYgbm90IG06CkBAIC0yODMsMjUgKzQzNSw1OSBAQCBjbGFz
cyBGaXJlZm94KEJyb3dzZXIpOgogICAgICAgICByZXR1cm4gbS5ncm91cCgxKQogCiAKLWNsYXNz
IEZlbm5lYyhCcm93c2VyKToKLSAgICAiIiJGZW5uZWMtc3BlY2lmaWMgaW50ZXJmYWNlLiIiIgor
Y2xhc3MgRmlyZWZveEFuZHJvaWQoQnJvd3Nlcik6CisgICAgIiIiQW5kcm9pZC1zcGVjaWZpYyBG
aXJlZm94IGludGVyZmFjZS4iIiIKIAotICAgIHByb2R1Y3QgPSAiZmVubmVjIgorICAgIHByb2R1
Y3QgPSAiZmlyZWZveF9hbmRyb2lkIgogICAgIHJlcXVpcmVtZW50cyA9ICJyZXF1aXJlbWVudHNf
ZmlyZWZveC50eHQiCiAKLSAgICBkZWYgaW5zdGFsbChzZWxmLCBkZXN0PU5vbmUpOgotICAgICAg
ICByYWlzZSBOb3RJbXBsZW1lbnRlZEVycm9yCisgICAgZGVmIGRvd25sb2FkKHNlbGYsIGRlc3Q9
Tm9uZSwgY2hhbm5lbD1Ob25lKToKKyAgICAgICAgaWYgZGVzdCBpcyBOb25lOgorICAgICAgICAg
ICAgZGVzdCA9IG9zLnB3ZAorCisgICAgICAgIGlmIEZJUkVGT1hfQ0lfUk9PVF9VUkwgPT0gJ2h0
dHBzOi8vdGFza2NsdXN0ZXIubmV0JzoKKyAgICAgICAgICAgICMgTk9URTogdGhpcyBjb25kaXRp
b24gY2FuIGJlIHJlbW92ZWQgYWZ0ZXIgTm92ZW1iZXIgOSwgMjAxOQorICAgICAgICAgICAgVENf
UVVFVUVfQkFTRSA9ICJodHRwczovL3F1ZXVlLnRhc2tjbHVzdGVyLm5ldC92MS8iCisgICAgICAg
ICAgICBUQ19JTkRFWF9CQVNFID0gImh0dHBzOi8vaW5kZXgudGFza2NsdXN0ZXIubmV0L3YxLyIK
KyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIFRDX1FVRVVFX0JBU0UgPSBGSVJFRk9YX0NJX1JP
T1RfVVJMICsgIi9hcGkvcXVldWUvdjEvIgorICAgICAgICAgICAgVENfSU5ERVhfQkFTRSA9IEZJ
UkVGT1hfQ0lfUk9PVF9VUkwgKyAiL2FwaS9pbmRleC92MS8iCisKKworICAgICAgICByZXNwID0g
cmVxdWVzdHMuZ2V0KFRDX0lOREVYX0JBU0UgKworICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICJ0YXNrL2dlY2tvLnYyLm1vemlsbGEtY2VudHJhbC5sYXRlc3QubW9iaWxlLmFuZHJvaWQteDg2
XzY0LW9wdCIpCisgICAgICAgIHJlc3AucmFpc2VfZm9yX3N0YXR1cygpCisgICAgICAgIGluZGV4
ID0gcmVzcC5qc29uKCkKKyAgICAgICAgdGFza19pZCA9IGluZGV4WyJ0YXNrSWQiXQorCisgICAg
ICAgIHJlc3AgPSByZXF1ZXN0cy5nZXQoVENfUVVFVUVfQkFTRSArICJ0YXNrLyVzL2FydGlmYWN0
cy8lcyIgJQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICh0YXNrX2lkLCAicHVibGljL2J1
aWxkL2dlY2tvdmlldy1hbmRyb2lkVGVzdC5hcGsiKSkKKyAgICAgICAgcmVzcC5yYWlzZV9mb3Jf
c3RhdHVzKCkKIAotICAgIGRlZiBmaW5kX2JpbmFyeShzZWxmLCB2ZW52X3BhdGg9Tm9uZSk6Cisg
ICAgICAgIGFwa19wYXRoID0gb3MucGF0aC5qb2luKGRlc3QsICJnZWNrb3ZpZXctYW5kcm9pZFRl
c3QuYXBrIikKKworICAgICAgICB3aXRoIG9wZW4oYXBrX3BhdGgsICJ3YiIpIGFzIGY6CisgICAg
ICAgICAgICBmLndyaXRlKHJlc3AuY29udGVudCkKKworICAgICAgICByZXR1cm4gYXBrX3BhdGgK
KworICAgIGRlZiBpbnN0YWxsKHNlbGYsIGRlc3Q9Tm9uZSwgY2hhbm5lbD1Ob25lKToKKyAgICAg
ICAgcmV0dXJuIHNlbGYuZG93bmxvYWQoZGVzdCwgY2hhbm5lbCkKKworICAgIGRlZiBpbnN0YWxs
X3ByZWZzKHNlbGYsIGJpbmFyeSwgZGVzdD1Ob25lLCBjaGFubmVsPU5vbmUpOgorICAgICAgICBm
eF9icm93c2VyID0gRmlyZWZveChzZWxmLmxvZ2dlcikKKyAgICAgICAgcmV0dXJuIGZ4X2Jyb3dz
ZXIuaW5zdGFsbF9wcmVmcyhiaW5hcnksIGRlc3QsIGNoYW5uZWwpCisKKyAgICBkZWYgZmluZF9i
aW5hcnkoc2VsZiwgdmVudl9wYXRoPU5vbmUsIGNoYW5uZWw9Tm9uZSk6CiAgICAgICAgIHJhaXNl
IE5vdEltcGxlbWVudGVkRXJyb3IKIAotICAgIGRlZiBmaW5kX3dlYmRyaXZlcihzZWxmKToKKyAg
ICBkZWYgZmluZF93ZWJkcml2ZXIoc2VsZiwgY2hhbm5lbD1Ob25lKToKICAgICAgICAgcmFpc2Ug
Tm90SW1wbGVtZW50ZWRFcnJvcgogCi0gICAgZGVmIGluc3RhbGxfd2ViZHJpdmVyKHNlbGYsIGRl
c3Q9Tm9uZSk6CisgICAgZGVmIGluc3RhbGxfd2ViZHJpdmVyKHNlbGYsIGRlc3Q9Tm9uZSwgY2hh
bm5lbD1Ob25lLCBicm93c2VyX2JpbmFyeT1Ob25lKToKICAgICAgICAgcmFpc2UgTm90SW1wbGVt
ZW50ZWRFcnJvcgogCi0gICAgZGVmIHZlcnNpb24oc2VsZiwgYmluYXJ5PU5vbmUpOgorICAgIGRl
ZiB2ZXJzaW9uKHNlbGYsIGJpbmFyeT1Ob25lLCB3ZWJkcml2ZXJfYmluYXJ5PU5vbmUpOgogICAg
ICAgICByZXR1cm4gTm9uZQogCiAKQEAgLTMxNCwxNyArNTAwLDEwIEBAIGNsYXNzIENocm9tZShC
cm93c2VyKToKICAgICBwcm9kdWN0ID0gImNocm9tZSIKICAgICByZXF1aXJlbWVudHMgPSAicmVx
dWlyZW1lbnRzX2Nocm9tZS50eHQiCiAKLSAgICBAcHJvcGVydHkKLSAgICBkZWYgYmluYXJ5KHNl
bGYpOgotICAgICAgICBpZiB1bmFtZVswXSA9PSAiTGludXgiOgotICAgICAgICAgICAgcmV0dXJu
ICIvdXNyL2Jpbi9nb29nbGUtY2hyb21lIgotICAgICAgICBpZiB1bmFtZVswXSA9PSAiRGFyd2lu
IjoKLSAgICAgICAgICAgIHJldHVybiAiL0FwcGxpY2F0aW9ucy9Hb29nbGUgQ2hyb21lLmFwcC9D
b250ZW50cy9NYWNPUy9Hb29nbGUgQ2hyb21lIgotICAgICAgICAjIFRPRE8gV2luZG93cz8KLSAg
ICAgICAgbG9nZ2VyLndhcm4oIlVuYWJsZSB0byBmaW5kIHRoZSBicm93c2VyIGJpbmFyeS4iKQot
ICAgICAgICByZXR1cm4gTm9uZQorICAgIGRlZiBkb3dubG9hZChzZWxmLCBkZXN0PU5vbmUsIGNo
YW5uZWw9Tm9uZSk6CisgICAgICAgIHJhaXNlIE5vdEltcGxlbWVudGVkRXJyb3IKIAotICAgIGRl
ZiBpbnN0YWxsKHNlbGYsIGRlc3Q9Tm9uZSk6CisgICAgZGVmIGluc3RhbGwoc2VsZiwgZGVzdD1O
b25lLCBjaGFubmVsPU5vbmUpOgogICAgICAgICByYWlzZSBOb3RJbXBsZW1lbnRlZEVycm9yCiAK
ICAgICBkZWYgcGxhdGZvcm1fc3RyaW5nKHNlbGYpOgpAQCAtMzQ2LDY1ICs1MjUsMjQ5IEBAIGNs
YXNzIENocm9tZShCcm93c2VyKToKIAogICAgICAgICByZXR1cm4gIiVzJXMiICUgKHBsYXRmb3Jt
LCBiaXRzKQogCi0gICAgZGVmIGZpbmRfYmluYXJ5KHNlbGYpOgotICAgICAgICByYWlzZSBOb3RJ
bXBsZW1lbnRlZEVycm9yCisgICAgZGVmIGNocm9taXVtX3BsYXRmb3JtX3N0cmluZyhzZWxmKToK
KyAgICAgICAgcGxhdGZvcm0gPSB7CisgICAgICAgICAgICAiTGludXgiOiAiTGludXgiLAorICAg
ICAgICAgICAgIldpbmRvd3MiOiAiV2luIiwKKyAgICAgICAgICAgICJEYXJ3aW4iOiAiTWFjIgor
ICAgICAgICB9LmdldCh1bmFtZVswXSkKKworICAgICAgICBpZiBwbGF0Zm9ybSBpcyBOb25lOgor
ICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigiVW5hYmxlIHRvIGNvbnN0cnVjdCBhIHZhbGlk
IENocm9taXVtIHBhY2thZ2UgbmFtZSBmb3IgY3VycmVudCBwbGF0Zm9ybSIpCisKKyAgICAgICAg
aWYgKHBsYXRmb3JtID09ICJMaW51eCIgb3IgcGxhdGZvcm0gPT0gIldpbiIpIGFuZCB1bmFtZVs0
XSA9PSAieDg2XzY0IjoKKyAgICAgICAgICAgIHBsYXRmb3JtICs9ICJfeDY0IgorCisgICAgICAg
IHJldHVybiBwbGF0Zm9ybQogCi0gICAgZGVmIGZpbmRfd2ViZHJpdmVyKHNlbGYpOgorICAgIGRl
ZiBmaW5kX2JpbmFyeShzZWxmLCB2ZW52X3BhdGg9Tm9uZSwgY2hhbm5lbD1Ob25lKToKKyAgICAg
ICAgaWYgdW5hbWVbMF0gPT0gIkxpbnV4IjoKKyAgICAgICAgICAgIG5hbWUgPSAiZ29vZ2xlLWNo
cm9tZSIKKyAgICAgICAgICAgIGlmIGNoYW5uZWwgPT0gInN0YWJsZSI6CisgICAgICAgICAgICAg
ICAgbmFtZSArPSAiLXN0YWJsZSIKKyAgICAgICAgICAgIGVsaWYgY2hhbm5lbCA9PSAiYmV0YSI6
CisgICAgICAgICAgICAgICAgbmFtZSArPSAiLWJldGEiCisgICAgICAgICAgICBlbGlmIGNoYW5u
ZWwgPT0gImRldiI6CisgICAgICAgICAgICAgICAgbmFtZSArPSAiLXVuc3RhYmxlIgorICAgICAg
ICAgICAgIyBObyBDYW5hcnkgb24gTGludXguCisgICAgICAgICAgICByZXR1cm4gZmluZF9leGVj
dXRhYmxlKG5hbWUpCisgICAgICAgIGlmIHVuYW1lWzBdID09ICJEYXJ3aW4iOgorICAgICAgICAg
ICAgaWYgY2hhbm5lbCA9PSAiY2FuYXJ5IjoKKyAgICAgICAgICAgICAgICByZXR1cm4gIi9BcHBs
aWNhdGlvbnMvR29vZ2xlIENocm9tZSBDYW5hcnkuYXBwL0NvbnRlbnRzL01hY09TL0dvb2dsZSBD
aHJvbWUgQ2FuYXJ5IgorICAgICAgICAgICAgIyBBbGwgb3RoZXIgY2hhbm5lbHMgc2hhcmUgdGhl
IHNhbWUgcGF0aCBvbiBtYWNPUy4KKyAgICAgICAgICAgIHJldHVybiAiL0FwcGxpY2F0aW9ucy9H
b29nbGUgQ2hyb21lLmFwcC9Db250ZW50cy9NYWNPUy9Hb29nbGUgQ2hyb21lIgorICAgICAgICBp
ZiB1bmFtZVswXSA9PSAiV2luZG93cyI6CisgICAgICAgICAgICByZXR1cm4gb3MucGF0aC5leHBh
bmR2YXJzKHIiJFNZU1RFTURSSVZFXFByb2dyYW0gRmlsZXMgKHg4NilcR29vZ2xlXENocm9tZVxB
cHBsaWNhdGlvblxjaHJvbWUuZXhlIikKKyAgICAgICAgc2VsZi5sb2dnZXIud2FybmluZygiVW5h
YmxlIHRvIGZpbmQgdGhlIGJyb3dzZXIgYmluYXJ5LiIpCisgICAgICAgIHJldHVybiBOb25lCisK
KyAgICBkZWYgZmluZF93ZWJkcml2ZXIoc2VsZiwgY2hhbm5lbD1Ob25lKToKICAgICAgICAgcmV0
dXJuIGZpbmRfZXhlY3V0YWJsZSgiY2hyb21lZHJpdmVyIikKIAotICAgIGRlZiBpbnN0YWxsX3dl
YmRyaXZlcihzZWxmLCBkZXN0PU5vbmUpOgorICAgIGRlZiBfb2ZmaWNpYWxfY2hyb21lZHJpdmVy
X3VybChzZWxmLCBjaHJvbWVfdmVyc2lvbik6CisgICAgICAgICMgaHR0cDovL2Nocm9tZWRyaXZl
ci5jaHJvbWl1bS5vcmcvZG93bmxvYWRzL3ZlcnNpb24tc2VsZWN0aW9uCisgICAgICAgIHBhcnRz
ID0gY2hyb21lX3ZlcnNpb24uc3BsaXQoIi4iKQorICAgICAgICBhc3NlcnQgbGVuKHBhcnRzKSA9
PSA0CisgICAgICAgIGxhdGVzdF91cmwgPSAiaHR0cHM6Ly9jaHJvbWVkcml2ZXIuc3RvcmFnZS5n
b29nbGVhcGlzLmNvbS9MQVRFU1RfUkVMRUFTRV8lcy4lcy4lcyIgJSB0dXBsZShwYXJ0c1s6LTFd
KQorICAgICAgICB0cnk6CisgICAgICAgICAgICBsYXRlc3QgPSBnZXQobGF0ZXN0X3VybCkudGV4
dC5zdHJpcCgpCisgICAgICAgIGV4Y2VwdCByZXF1ZXN0cy5SZXF1ZXN0RXhjZXB0aW9uOgorICAg
ICAgICAgICAgbGF0ZXN0X3VybCA9ICJodHRwczovL2Nocm9tZWRyaXZlci5zdG9yYWdlLmdvb2ds
ZWFwaXMuY29tL0xBVEVTVF9SRUxFQVNFXyVzIiAlIHBhcnRzWzBdCisgICAgICAgICAgICB0cnk6
CisgICAgICAgICAgICAgICAgbGF0ZXN0ID0gZ2V0KGxhdGVzdF91cmwpLnRleHQuc3RyaXAoKQor
ICAgICAgICAgICAgZXhjZXB0IHJlcXVlc3RzLlJlcXVlc3RFeGNlcHRpb246CisgICAgICAgICAg
ICAgICAgcmV0dXJuIE5vbmUKKyAgICAgICAgcmV0dXJuICJodHRwczovL2Nocm9tZWRyaXZlci5z
dG9yYWdlLmdvb2dsZWFwaXMuY29tLyVzL2Nocm9tZWRyaXZlcl8lcy56aXAiICUgKAorICAgICAg
ICAgICAgbGF0ZXN0LCBzZWxmLnBsYXRmb3JtX3N0cmluZygpKQorCisgICAgZGVmIF9jaHJvbWl1
bV9jaHJvbWVkcml2ZXJfdXJsKHNlbGYsIGNocm9tZV92ZXJzaW9uKToKKyAgICAgICAgdHJ5Ogor
ICAgICAgICAgICAgIyBUcnkgdG8gZmluZCB0aGUgQ2hyb21pdW0gYnVpbGQgd2l0aCB0aGUgc2Ft
ZSByZXZpc2lvbi4KKyAgICAgICAgICAgIG9tYWhhID0gZ2V0KCJodHRwczovL29tYWhhcHJveHku
YXBwc3BvdC5jb20vZGVwcy5qc29uP3ZlcnNpb249IiArIGNocm9tZV92ZXJzaW9uKS5qc29uKCkK
KyAgICAgICAgICAgIHJldmlzaW9uID0gb21haGFbJ2Nocm9taXVtX2Jhc2VfcG9zaXRpb24nXQor
ICAgICAgICAgICAgdXJsID0gImh0dHBzOi8vc3RvcmFnZS5nb29nbGVhcGlzLmNvbS9jaHJvbWl1
bS1icm93c2VyLXNuYXBzaG90cy8lcy8lcy9jaHJvbWVkcml2ZXJfJXMuemlwIiAlICgKKyAgICAg
ICAgICAgICAgICBzZWxmLmNocm9taXVtX3BsYXRmb3JtX3N0cmluZygpLCByZXZpc2lvbiwgc2Vs
Zi5wbGF0Zm9ybV9zdHJpbmcoKSkKKyAgICAgICAgICAgICMgQ2hlY2sgdGhlIHN0YXR1cyB3aXRo
b3V0IGRvd25sb2FkaW5nIHRoZSBjb250ZW50ICh0aGlzIGlzIGEgc3RyZWFtaW5nIHJlcXVlc3Qp
LgorICAgICAgICAgICAgZ2V0KHVybCkKKyAgICAgICAgZXhjZXB0IHJlcXVlc3RzLlJlcXVlc3RF
eGNlcHRpb246CisgICAgICAgICAgICAjIEZhbGwgYmFjayB0byB0aGUgdGlwLW9mLXRyZWUgQ2hy
b21pdW0gYnVpbGQuCisgICAgICAgICAgICByZXZpc2lvbl91cmwgPSAiaHR0cHM6Ly9zdG9yYWdl
Lmdvb2dsZWFwaXMuY29tL2Nocm9taXVtLWJyb3dzZXItc25hcHNob3RzLyVzL0xBU1RfQ0hBTkdF
IiAlICgKKyAgICAgICAgICAgICAgICBzZWxmLmNocm9taXVtX3BsYXRmb3JtX3N0cmluZygpKQor
ICAgICAgICAgICAgcmV2aXNpb24gPSBnZXQocmV2aXNpb25fdXJsKS50ZXh0LnN0cmlwKCkKKyAg
ICAgICAgICAgIHVybCA9ICJodHRwczovL3N0b3JhZ2UuZ29vZ2xlYXBpcy5jb20vY2hyb21pdW0t
YnJvd3Nlci1zbmFwc2hvdHMvJXMvJXMvY2hyb21lZHJpdmVyXyVzLnppcCIgJSAoCisgICAgICAg
ICAgICAgICAgc2VsZi5jaHJvbWl1bV9wbGF0Zm9ybV9zdHJpbmcoKSwgcmV2aXNpb24sIHNlbGYu
cGxhdGZvcm1fc3RyaW5nKCkpCisgICAgICAgIHJldHVybiB1cmwKKworICAgIGRlZiBfbGF0ZXN0
X2Nocm9tZWRyaXZlcl91cmwoc2VsZiwgY2hyb21lX3ZlcnNpb24pOgorICAgICAgICAjIFJlbW92
ZSBjaGFubmVsIHN1ZmZpeGVzIChlLmcuICIgZGV2IikuCisgICAgICAgIGNocm9tZV92ZXJzaW9u
ID0gY2hyb21lX3ZlcnNpb24uc3BsaXQoJyAnKVswXQorICAgICAgICByZXR1cm4gKHNlbGYuX29m
ZmljaWFsX2Nocm9tZWRyaXZlcl91cmwoY2hyb21lX3ZlcnNpb24pIG9yCisgICAgICAgICAgICAg
ICAgc2VsZi5fY2hyb21pdW1fY2hyb21lZHJpdmVyX3VybChjaHJvbWVfdmVyc2lvbikpCisKKyAg
ICBkZWYgaW5zdGFsbF93ZWJkcml2ZXJfYnlfdmVyc2lvbihzZWxmLCB2ZXJzaW9uLCBkZXN0PU5v
bmUpOgorICAgICAgICBhc3NlcnQgdmVyc2lvbiwgIkNhbm5vdCBpbnN0YWxsIENocm9tZURyaXZl
ciB3aXRob3V0IENocm9tZSB2ZXJzaW9uIgogICAgICAgICBpZiBkZXN0IGlzIE5vbmU6CiAgICAg
ICAgICAgICBkZXN0ID0gb3MucHdkCi0gICAgICAgIGxhdGVzdCA9IGdldCgiaHR0cDovL2Nocm9t
ZWRyaXZlci5zdG9yYWdlLmdvb2dsZWFwaXMuY29tL0xBVEVTVF9SRUxFQVNFIikudGV4dC5zdHJp
cCgpCi0gICAgICAgIHVybCA9ICJodHRwOi8vY2hyb21lZHJpdmVyLnN0b3JhZ2UuZ29vZ2xlYXBp
cy5jb20vJXMvY2hyb21lZHJpdmVyXyVzLnppcCIgJSAobGF0ZXN0LAotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHNlbGYucGxhdGZvcm1fc3RyaW5nKCkpCisgICAgICAgIHVybCA9IHNlbGYu
X2xhdGVzdF9jaHJvbWVkcml2ZXJfdXJsKHZlcnNpb24pCisgICAgICAgIHNlbGYubG9nZ2VyLmlu
Zm8oIkRvd25sb2FkaW5nIENocm9tZURyaXZlciBmcm9tICVzIiAlIHVybCkKICAgICAgICAgdW56
aXAoZ2V0KHVybCkucmF3LCBkZXN0KQorICAgICAgICBjaHJvbWVkcml2ZXJfZGlyID0gb3MucGF0
aC5qb2luKAorICAgICAgICAgICAgZGVzdCwgJ2Nocm9tZWRyaXZlcl8lcycgJSBzZWxmLnBsYXRm
b3JtX3N0cmluZygpKQorICAgICAgICBpZiBvcy5wYXRoLmlzZmlsZShvcy5wYXRoLmpvaW4oY2hy
b21lZHJpdmVyX2RpciwgImNocm9tZWRyaXZlciIpKToKKyAgICAgICAgICAgIHNodXRpbC5tb3Zl
KG9zLnBhdGguam9pbihjaHJvbWVkcml2ZXJfZGlyLCAiY2hyb21lZHJpdmVyIiksIGRlc3QpCisg
ICAgICAgICAgICBzaHV0aWwucm10cmVlKGNocm9tZWRyaXZlcl9kaXIpCisgICAgICAgIHJldHVy
biBmaW5kX2V4ZWN1dGFibGUoImNocm9tZWRyaXZlciIsIGRlc3QpCisKKyAgICBkZWYgaW5zdGFs
bF93ZWJkcml2ZXIoc2VsZiwgZGVzdD1Ob25lLCBjaGFubmVsPU5vbmUsIGJyb3dzZXJfYmluYXJ5
PU5vbmUpOgorICAgICAgICBpZiBicm93c2VyX2JpbmFyeSBpcyBOb25lOgorICAgICAgICAgICAg
YnJvd3Nlcl9iaW5hcnkgPSBzZWxmLmZpbmRfYmluYXJ5KGNoYW5uZWwpCisgICAgICAgIHJldHVy
biBzZWxmLmluc3RhbGxfd2ViZHJpdmVyX2J5X3ZlcnNpb24oCisgICAgICAgICAgICBzZWxmLnZl
cnNpb24oYnJvd3Nlcl9iaW5hcnkpLCBkZXN0KQorCisgICAgZGVmIHZlcnNpb24oc2VsZiwgYmlu
YXJ5PU5vbmUsIHdlYmRyaXZlcl9iaW5hcnk9Tm9uZSk6CisgICAgICAgIGlmIG5vdCBiaW5hcnk6
CisgICAgICAgICAgICBzZWxmLmxvZ2dlci53YXJuaW5nKCJObyBicm93c2VyIGJpbmFyeSBwcm92
aWRlZC4iKQorICAgICAgICAgICAgcmV0dXJuIE5vbmUKIAotICAgICAgICBwYXRoID0gZmluZF9l
eGVjdXRhYmxlKCJjaHJvbWVkcml2ZXIiLCBkZXN0KQotICAgICAgICBzdCA9IG9zLnN0YXQocGF0
aCkKLSAgICAgICAgb3MuY2htb2QocGF0aCwgc3Quc3RfbW9kZSB8IHN0YXQuU19JRVhFQykKLSAg
ICAgICAgcmV0dXJuIHBhdGgKKyAgICAgICAgaWYgdW5hbWVbMF0gPT0gIldpbmRvd3MiOgorICAg
ICAgICAgICAgcmV0dXJuIF9nZXRfZmlsZXZlcnNpb24oYmluYXJ5LCBzZWxmLmxvZ2dlcikKIAot
ICAgIGRlZiB2ZXJzaW9uKHNlbGYsIGJpbmFyeT1Ob25lKToKLSAgICAgICAgYmluYXJ5ID0gYmlu
YXJ5IG9yIHNlbGYuYmluYXJ5Ci0gICAgICAgIGlmIHVuYW1lWzBdICE9ICJXaW5kb3dzIjoKLSAg
ICAgICAgICAgIHRyeToKLSAgICAgICAgICAgICAgICB2ZXJzaW9uX3N0cmluZyA9IGNhbGwoYmlu
YXJ5LCAiLS12ZXJzaW9uIikuc3RyaXAoKQotICAgICAgICAgICAgZXhjZXB0IHN1YnByb2Nlc3Mu
Q2FsbGVkUHJvY2Vzc0Vycm9yOgotICAgICAgICAgICAgICAgIGxvZ2dlci53YXJuKCJGYWlsZWQg
dG8gY2FsbCAlcyIsIGJpbmFyeSkKLSAgICAgICAgICAgICAgICByZXR1cm4gTm9uZQotICAgICAg
ICAgICAgbSA9IHJlLm1hdGNoKHIiR29vZ2xlIENocm9tZSAoLiopIiwgdmVyc2lvbl9zdHJpbmcp
Ci0gICAgICAgICAgICBpZiBub3QgbToKLSAgICAgICAgICAgICAgICBsb2dnZXIud2FybigiRmFp
bGVkIHRvIGV4dHJhY3QgdmVyc2lvbiBmcm9tOiBzJSIsIHZlcnNpb25fc3RyaW5nKQotICAgICAg
ICAgICAgICAgIHJldHVybiBOb25lCi0gICAgICAgICAgICByZXR1cm4gbS5ncm91cCgxKQotICAg
ICAgICBsb2dnZXIud2FybigiVW5hYmxlIHRvIGV4dHJhY3QgdmVyc2lvbiBmcm9tIGJpbmFyeSBv
biBXaW5kb3dzLiIpCi0gICAgICAgIHJldHVybiBOb25lCisgICAgICAgIHRyeToKKyAgICAgICAg
ICAgIHZlcnNpb25fc3RyaW5nID0gY2FsbChiaW5hcnksICItLXZlcnNpb24iKS5zdHJpcCgpCisg
ICAgICAgIGV4Y2VwdCBzdWJwcm9jZXNzLkNhbGxlZFByb2Nlc3NFcnJvcjoKKyAgICAgICAgICAg
IHNlbGYubG9nZ2VyLndhcm5pbmcoIkZhaWxlZCB0byBjYWxsICVzIiAlIGJpbmFyeSkKKyAgICAg
ICAgICAgIHJldHVybiBOb25lCisgICAgICAgIG0gPSByZS5tYXRjaChyIig/Okdvb2dsZSBDaHJv
bWV8Q2hyb21pdW0pICguKikiLCB2ZXJzaW9uX3N0cmluZykKKyAgICAgICAgaWYgbm90IG06Cisg
ICAgICAgICAgICBzZWxmLmxvZ2dlci53YXJuaW5nKCJGYWlsZWQgdG8gZXh0cmFjdCB2ZXJzaW9u
IGZyb206ICVzIiAlIHZlcnNpb25fc3RyaW5nKQorICAgICAgICAgICAgcmV0dXJuIE5vbmUKKyAg
ICAgICAgcmV0dXJuIG0uZ3JvdXAoMSkKIAogCi1jbGFzcyBDaHJvbWVBbmRyb2lkKEJyb3dzZXIp
OgotICAgICIiIkNocm9tZS1zcGVjaWZpYyBpbnRlcmZhY2UgZm9yIEFuZHJvaWQuCitjbGFzcyBD
aHJvbWVBbmRyb2lkQmFzZShCcm93c2VyKToKKyAgICAiIiJBIGJhc2UgY2xhc3MgZm9yIENocm9t
ZUFuZHJvaWQgYW5kIEFuZHJvaWRXZWJWaWV3LgogCisgICAgT24gQW5kcm9pZCwgV2ViVmlldyBp
cyBiYXNlZCBvbiBDaHJvbWl1bSBvcGVuIHNvdXJjZSBwcm9qZWN0LCBhbmQgb24gc29tZQorICAg
IHZlcnNpb25zIG9mIEFuZHJvaWQgd2Ugc2hhcmUgdGhlIGxpYnJhcnkgd2l0aCBDaHJvbWUuIFRo
ZXJlZm9yZSwgd2UgaGF2ZQorICAgIGEgdmVyeSBzaW1pbGFyIFdQVCBydW5uZXIgaW1wbGVtZW50
YXRpb24uCiAgICAgSW5jbHVkZXMgd2ViZHJpdmVyIGluc3RhbGxhdGlvbi4KICAgICAiIiIKKyAg
ICBfX21ldGFjbGFzc19fID0gQUJDTWV0YSAgIyBUaGlzIGlzIGFuIGFic3RyYWN0IGNsYXNzLgor
CisgICAgZGVmIF9faW5pdF9fKHNlbGYsIGxvZ2dlcik6CisgICAgICAgIHN1cGVyKENocm9tZUFu
ZHJvaWRCYXNlLCBzZWxmKS5fX2luaXRfXyhsb2dnZXIpCisgICAgICAgIHNlbGYuZGV2aWNlX3Nl
cmlhbCA9IE5vbmUKKworICAgIGRlZiBkb3dubG9hZChzZWxmLCBkZXN0PU5vbmUsIGNoYW5uZWw9
Tm9uZSk6CisgICAgICAgIHJhaXNlIE5vdEltcGxlbWVudGVkRXJyb3IKKworICAgIGRlZiBpbnN0
YWxsKHNlbGYsIGRlc3Q9Tm9uZSwgY2hhbm5lbD1Ob25lKToKKyAgICAgICAgcmFpc2UgTm90SW1w
bGVtZW50ZWRFcnJvcgorCisgICAgQGFic3RyYWN0bWV0aG9kCisgICAgZGVmIGZpbmRfYmluYXJ5
KHNlbGYsIHZlbnZfcGF0aD1Ob25lLCBjaGFubmVsPU5vbmUpOgorICAgICAgICByYWlzZSBOb3RJ
bXBsZW1lbnRlZEVycm9yCisKKyAgICBkZWYgZmluZF93ZWJkcml2ZXIoc2VsZiwgY2hhbm5lbD1O
b25lKToKKyAgICAgICAgcmV0dXJuIGZpbmRfZXhlY3V0YWJsZSgiY2hyb21lZHJpdmVyIikKKwor
ICAgIGRlZiBpbnN0YWxsX3dlYmRyaXZlcihzZWxmLCBkZXN0PU5vbmUsIGNoYW5uZWw9Tm9uZSwg
YnJvd3Nlcl9iaW5hcnk9Tm9uZSk6CisgICAgICAgIGlmIGJyb3dzZXJfYmluYXJ5IGlzIE5vbmU6
CisgICAgICAgICAgICBicm93c2VyX2JpbmFyeSA9IHNlbGYuZmluZF9iaW5hcnkoY2hhbm5lbCkK
KyAgICAgICAgY2hyb21lID0gQ2hyb21lKHNlbGYubG9nZ2VyKQorICAgICAgICByZXR1cm4gY2hy
b21lLmluc3RhbGxfd2ViZHJpdmVyX2J5X3ZlcnNpb24oCisgICAgICAgICAgICBzZWxmLnZlcnNp
b24oYnJvd3Nlcl9iaW5hcnkpLCBkZXN0KQorCisgICAgZGVmIHZlcnNpb24oc2VsZiwgYmluYXJ5
PU5vbmUsIHdlYmRyaXZlcl9iaW5hcnk9Tm9uZSk6CisgICAgICAgIGlmIG5vdCBiaW5hcnk6Cisg
ICAgICAgICAgICBzZWxmLmxvZ2dlci53YXJuaW5nKCJObyBwYWNrYWdlIG5hbWUgcHJvdmlkZWQu
IikKKyAgICAgICAgICAgIHJldHVybiBOb25lCisKKyAgICAgICAgY29tbWFuZCA9IFsnYWRiJ10K
KyAgICAgICAgaWYgc2VsZi5kZXZpY2Vfc2VyaWFsOgorICAgICAgICAgICAgY29tbWFuZC5leHRl
bmQoWyctcycsIHNlbGYuZGV2aWNlX3NlcmlhbF0pCisgICAgICAgIGNvbW1hbmQuZXh0ZW5kKFsn
c2hlbGwnLCAnZHVtcHN5cycsICdwYWNrYWdlJywgYmluYXJ5XSkKKyAgICAgICAgdHJ5OgorICAg
ICAgICAgICAgb3V0cHV0ID0gY2FsbCgqY29tbWFuZCkKKyAgICAgICAgZXhjZXB0IChzdWJwcm9j
ZXNzLkNhbGxlZFByb2Nlc3NFcnJvciwgT1NFcnJvcik6CisgICAgICAgICAgICBzZWxmLmxvZ2dl
ci53YXJuaW5nKCJGYWlsZWQgdG8gY2FsbCAlcyIgJSAiICIuam9pbihjb21tYW5kKSkKKyAgICAg
ICAgICAgIHJldHVybiBOb25lCisgICAgICAgIG1hdGNoID0gcmUuc2VhcmNoKHIndmVyc2lvbk5h
bWU9KC4qKScsIG91dHB1dCkKKyAgICAgICAgaWYgbm90IG1hdGNoOgorICAgICAgICAgICAgc2Vs
Zi5sb2dnZXIud2FybmluZygiRmFpbGVkIHRvIGZpbmQgdmVyc2lvbk5hbWUiKQorICAgICAgICAg
ICAgcmV0dXJuIE5vbmUKKyAgICAgICAgcmV0dXJuIG1hdGNoLmdyb3VwKDEpCisKKworY2xhc3Mg
Q2hyb21lQW5kcm9pZChDaHJvbWVBbmRyb2lkQmFzZSk6CisgICAgIiIiQ2hyb21lLXNwZWNpZmlj
IGludGVyZmFjZSBmb3IgQW5kcm9pZC4KKyAgICAiIiIKIAogICAgIHByb2R1Y3QgPSAiY2hyb21l
X2FuZHJvaWQiCiAgICAgcmVxdWlyZW1lbnRzID0gInJlcXVpcmVtZW50c19jaHJvbWVfYW5kcm9p
ZC50eHQiCiAKLSAgICBkZWYgaW5zdGFsbChzZWxmLCBkZXN0PU5vbmUpOgorICAgIGRlZiBmaW5k
X2JpbmFyeShzZWxmLCB2ZW52X3BhdGg9Tm9uZSwgY2hhbm5lbD1Ob25lKToKKyAgICAgICAgaWYg
Y2hhbm5lbCBpbiAoImJldGEiLCAiZGV2IiwgImNhbmFyeSIpOgorICAgICAgICAgICAgcmV0dXJu
ICJjb20uY2hyb21lLiIgKyBjaGFubmVsCisgICAgICAgIHJldHVybiAiY29tLmFuZHJvaWQuY2hy
b21lIgorCisKK2NsYXNzIEFuZHJvaWRXZWJ2aWV3KENocm9tZUFuZHJvaWRCYXNlKToKKyAgICAi
IiJXZWJ2aWV3LXNwZWNpZmljIGludGVyZmFjZSBmb3IgQW5kcm9pZC4KKworICAgIERlc2lnbiBk
b2M6CisgICAgaHR0cHM6Ly9kb2NzLmdvb2dsZS5jb20vZG9jdW1lbnQvZC8xOWNHejMxbHpDQmRw
YnRTQzkyc3ZYbGhsaG42OGhyc1Z3U0I3Y2ZadDU0by92aWV3CisgICAgIiIiCisKKyAgICBwcm9k
dWN0ID0gImFuZHJvaWRfd2VidmlldyIKKyAgICByZXF1aXJlbWVudHMgPSAicmVxdWlyZW1lbnRz
X2FuZHJvaWRfd2Vidmlldy50eHQiCisKKyAgICBkZWYgZmluZF9iaW5hcnkoc2VsZiwgdmVudl9w
YXRoPU5vbmUsIGNoYW5uZWw9Tm9uZSk6CisgICAgICAgICMgSnVzdCBnZXQgdGhlIGN1cnJlbnQg
cGFja2FnZSBuYW1lIG9mIHRoZSBXZWJWaWV3IHByb3ZpZGVyLgorICAgICAgICAjIEZvciBXZWJW
aWV3LCBpdCBpcyBub3QgdHJpdmlhbCB0byBjaGFuZ2UgdGhlIFdlYlZpZXcgcHJvdmlkZXIsIHNv
CisgICAgICAgICMgd2Ugd2lsbCBqdXN0IGdyYWIgd2hhdGV2ZXIgaXMgYXZhaWxhYmxlLgorICAg
ICAgICAjIGh0dHBzOi8vY2hyb21pdW0uZ29vZ2xlc291cmNlLmNvbS9jaHJvbWl1bS9zcmMvKy9I
RUFEL2FuZHJvaWRfd2Vidmlldy9kb2NzL2NoYW5uZWxzLm1kCisgICAgICAgIGNvbW1hbmQgPSBb
J2FkYiddCisgICAgICAgIGlmIHNlbGYuZGV2aWNlX3NlcmlhbDoKKyAgICAgICAgICAgIGNvbW1h
bmQuZXh0ZW5kKFsnLXMnLCBzZWxmLmRldmljZV9zZXJpYWxdKQorICAgICAgICBjb21tYW5kLmV4
dGVuZChbJ3NoZWxsJywgJ2R1bXBzeXMnLCAnd2Vidmlld3VwZGF0ZSddKQorICAgICAgICB0cnk6
CisgICAgICAgICAgICBvdXRwdXQgPSBjYWxsKCpjb21tYW5kKQorICAgICAgICBleGNlcHQgKHN1
YnByb2Nlc3MuQ2FsbGVkUHJvY2Vzc0Vycm9yLCBPU0Vycm9yKToKKyAgICAgICAgICAgIHNlbGYu
bG9nZ2VyLndhcm5pbmcoIkZhaWxlZCB0byBjYWxsICVzIiAlICIgIi5qb2luKGNvbW1hbmQpKQor
ICAgICAgICAgICAgcmV0dXJuIE5vbmUKKyAgICAgICAgbSA9IHJlLnNlYXJjaChyJ15ccypDdXJy
ZW50IFdlYlZpZXcgcGFja2FnZSBcKG5hbWUsIHZlcnNpb25cKTogXCgoLiopLCAoWzAtOS5dKilc
KSQnLAorICAgICAgICAgICAgICAgICAgICAgIG91dHB1dCwgcmUuTSkKKyAgICAgICAgaWYgbSBp
cyBOb25lOgorICAgICAgICAgICAgc2VsZi5sb2dnZXIud2FybmluZygiVW5hYmxlIHRvIGZpbmQg
Y3VycmVudCBXZWJWaWV3IHBhY2thZ2UgaW4gZHVtcHN5cyBvdXRwdXQiKQorICAgICAgICAgICAg
cmV0dXJuIE5vbmUKKyAgICAgICAgc2VsZi5sb2dnZXIud2FybmluZygiRmluYWwgcGFja2FnZSBu
YW1lOiAiICsgbS5ncm91cCgxKSkKKyAgICAgICAgcmV0dXJuIG0uZ3JvdXAoMSkKKworCitjbGFz
cyBDaHJvbWVpT1MoQnJvd3Nlcik6CisgICAgIiIiQ2hyb21lLXNwZWNpZmljIGludGVyZmFjZSBm
b3IgaU9TLgorICAgICIiIgorCisgICAgcHJvZHVjdCA9ICJjaHJvbWVfaW9zIgorICAgIHJlcXVp
cmVtZW50cyA9ICJyZXF1aXJlbWVudHNfY2hyb21lX2lvcy50eHQiCisKKyAgICBkZWYgZG93bmxv
YWQoc2VsZiwgZGVzdD1Ob25lLCBjaGFubmVsPU5vbmUpOgogICAgICAgICByYWlzZSBOb3RJbXBs
ZW1lbnRlZEVycm9yCiAKLSAgICBkZWYgZmluZF9iaW5hcnkoc2VsZik6CisgICAgZGVmIGluc3Rh
bGwoc2VsZiwgZGVzdD1Ob25lLCBjaGFubmVsPU5vbmUpOgogICAgICAgICByYWlzZSBOb3RJbXBs
ZW1lbnRlZEVycm9yCiAKLSAgICBkZWYgZmluZF93ZWJkcml2ZXIoc2VsZik6Ci0gICAgICAgIHJl
dHVybiBmaW5kX2V4ZWN1dGFibGUoImNocm9tZWRyaXZlciIpCisgICAgZGVmIGZpbmRfYmluYXJ5
KHNlbGYsIHZlbnZfcGF0aD1Ob25lLCBjaGFubmVsPU5vbmUpOgorICAgICAgICByYWlzZSBOb3RJ
bXBsZW1lbnRlZEVycm9yCiAKLSAgICBkZWYgaW5zdGFsbF93ZWJkcml2ZXIoc2VsZiwgZGVzdD1O
b25lKToKLSAgICAgICAgY2hyb21lID0gQ2hyb21lKCkKLSAgICAgICAgcmV0dXJuIGNocm9tZS5p
bnN0YWxsX3dlYmRyaXZlcihkZXN0KQorICAgIGRlZiBmaW5kX3dlYmRyaXZlcihzZWxmLCBjaGFu
bmVsPU5vbmUpOgorICAgICAgICByYWlzZSBOb3RJbXBsZW1lbnRlZEVycm9yCiAKLSAgICBkZWYg
dmVyc2lvbihzZWxmLCBiaW5hcnkpOgorICAgIGRlZiBpbnN0YWxsX3dlYmRyaXZlcihzZWxmLCBk
ZXN0PU5vbmUsIGNoYW5uZWw9Tm9uZSwgYnJvd3Nlcl9iaW5hcnk9Tm9uZSk6CisgICAgICAgIHJh
aXNlIE5vdEltcGxlbWVudGVkRXJyb3IKKworICAgIGRlZiB2ZXJzaW9uKHNlbGYsIGJpbmFyeT1O
b25lLCB3ZWJkcml2ZXJfYmluYXJ5PU5vbmUpOgogICAgICAgICByZXR1cm4gTm9uZQogCiAKQEAg
LTQyMiwxMCArNzg1LDEzIEBAIGNsYXNzIE9wZXJhKEJyb3dzZXIpOgogICAgICAgICBpZiB1bmFt
ZVswXSA9PSAiTGludXgiOgogICAgICAgICAgICAgcmV0dXJuICIvdXNyL2Jpbi9vcGVyYSIKICAg
ICAgICAgIyBUT0RPIFdpbmRvd3MsIE1hYz8KLSAgICAgICAgbG9nZ2VyLndhcm4oIlVuYWJsZSB0
byBmaW5kIHRoZSBicm93c2VyIGJpbmFyeS4iKQorICAgICAgICBzZWxmLmxvZ2dlci53YXJuaW5n
KCJVbmFibGUgdG8gZmluZCB0aGUgYnJvd3NlciBiaW5hcnkuIikKICAgICAgICAgcmV0dXJuIE5v
bmUKIAotICAgIGRlZiBpbnN0YWxsKHNlbGYsIGRlc3Q9Tm9uZSk6CisgICAgZGVmIGRvd25sb2Fk
KHNlbGYsIGRlc3Q9Tm9uZSwgY2hhbm5lbD1Ob25lKToKKyAgICAgICAgcmFpc2UgTm90SW1wbGVt
ZW50ZWRFcnJvcgorCisgICAgZGVmIGluc3RhbGwoc2VsZiwgZGVzdD1Ob25lLCBjaGFubmVsPU5v
bmUpOgogICAgICAgICByYWlzZSBOb3RJbXBsZW1lbnRlZEVycm9yCiAKICAgICBkZWYgcGxhdGZv
cm1fc3RyaW5nKHNlbGYpOgpAQCAtNDQ3LDEzICs4MTMsMTMgQEAgY2xhc3MgT3BlcmEoQnJvd3Nl
cik6CiAKICAgICAgICAgcmV0dXJuICIlcyVzIiAlIChwbGF0Zm9ybSwgYml0cykKIAotICAgIGRl
ZiBmaW5kX2JpbmFyeShzZWxmKToKKyAgICBkZWYgZmluZF9iaW5hcnkoc2VsZiwgdmVudl9wYXRo
PU5vbmUsIGNoYW5uZWw9Tm9uZSk6CiAgICAgICAgIHJhaXNlIE5vdEltcGxlbWVudGVkRXJyb3IK
IAotICAgIGRlZiBmaW5kX3dlYmRyaXZlcihzZWxmKToKKyAgICBkZWYgZmluZF93ZWJkcml2ZXIo
c2VsZiwgY2hhbm5lbD1Ob25lKToKICAgICAgICAgcmV0dXJuIGZpbmRfZXhlY3V0YWJsZSgib3Bl
cmFkcml2ZXIiKQogCi0gICAgZGVmIGluc3RhbGxfd2ViZHJpdmVyKHNlbGYsIGRlc3Q9Tm9uZSk6
CisgICAgZGVmIGluc3RhbGxfd2ViZHJpdmVyKHNlbGYsIGRlc3Q9Tm9uZSwgY2hhbm5lbD1Ob25l
LCBicm93c2VyX2JpbmFyeT1Ob25lKToKICAgICAgICAgaWYgZGVzdCBpcyBOb25lOgogICAgICAg
ICAgICAgZGVzdCA9IG9zLnB3ZAogICAgICAgICBsYXRlc3QgPSBnZXQoImh0dHBzOi8vYXBpLmdp
dGh1Yi5jb20vcmVwb3Mvb3BlcmFzb2Z0d2FyZS9vcGVyYWNocm9taXVtZHJpdmVyL3JlbGVhc2Vz
L2xhdGVzdCIpLmpzb24oKVsidGFnX25hbWUiXQpAQCAtNDcwLDE1ICs4MzYsMTIxIEBAIGNsYXNz
IE9wZXJhKEJyb3dzZXIpOgogICAgICAgICBvcy5jaG1vZChwYXRoLCBzdC5zdF9tb2RlIHwgc3Rh
dC5TX0lFWEVDKQogICAgICAgICByZXR1cm4gcGF0aAogCi0gICAgZGVmIHZlcnNpb24oc2VsZiwg
YmluYXJ5KToKKyAgICBkZWYgdmVyc2lvbihzZWxmLCBiaW5hcnk9Tm9uZSwgd2ViZHJpdmVyX2Jp
bmFyeT1Ob25lKToKICAgICAgICAgIiIiUmV0cmlldmUgdGhlIHJlbGVhc2UgdmVyc2lvbiBvZiB0
aGUgaW5zdGFsbGVkIGJyb3dzZXIuIiIiCiAgICAgICAgIGJpbmFyeSA9IGJpbmFyeSBvciBzZWxm
LmJpbmFyeQogICAgICAgICB0cnk6CiAgICAgICAgICAgICBvdXRwdXQgPSBjYWxsKGJpbmFyeSwg
Ii0tdmVyc2lvbiIpCiAgICAgICAgIGV4Y2VwdCBzdWJwcm9jZXNzLkNhbGxlZFByb2Nlc3NFcnJv
cjoKLSAgICAgICAgICAgIGxvZ2dlci53YXJuKCJGYWlsZWQgdG8gY2FsbCAlcyIsIGJpbmFyeSkK
KyAgICAgICAgICAgIHNlbGYubG9nZ2VyLndhcm5pbmcoIkZhaWxlZCB0byBjYWxsICVzIiAlIGJp
bmFyeSkKKyAgICAgICAgICAgIHJldHVybiBOb25lCisgICAgICAgIG0gPSByZS5zZWFyY2gociJb
MC05XC5dKyggW2Etel0rKT8kIiwgb3V0cHV0LnN0cmlwKCkpCisgICAgICAgIGlmIG06CisgICAg
ICAgICAgICByZXR1cm4gbS5ncm91cCgwKQorCisKK2NsYXNzIEVkZ2VDaHJvbWl1bShCcm93c2Vy
KToKKyAgICAiIiJNaWNyb3NvZnRFZGdlLXNwZWNpZmljIGludGVyZmFjZS4iIiIKKyAgICBwbGF0
Zm9ybSA9IHsKKyAgICAgICAgIkxpbnV4IjogImxpbnV4IiwKKyAgICAgICAgIldpbmRvd3MiOiAi
d2luIiwKKyAgICAgICAgIkRhcndpbiI6ICJtYWNvcyIKKyAgICB9LmdldCh1bmFtZVswXSkKKyAg
ICBwcm9kdWN0ID0gImVkZ2VjaHJvbWl1bSIKKyAgICBlZGdlZHJpdmVyX25hbWUgPSAibXNlZGdl
ZHJpdmVyIgorICAgIHJlcXVpcmVtZW50cyA9ICJyZXF1aXJlbWVudHNfZWRnZV9jaHJvbWl1bS50
eHQiCisKKyAgICBkZWYgZG93bmxvYWQoc2VsZiwgZGVzdD1Ob25lLCBjaGFubmVsPU5vbmUpOgor
ICAgICAgICByYWlzZSBOb3RJbXBsZW1lbnRlZEVycm9yCisKKyAgICBkZWYgaW5zdGFsbChzZWxm
LCBkZXN0PU5vbmUsIGNoYW5uZWw9Tm9uZSk6CisgICAgICAgIHJhaXNlIE5vdEltcGxlbWVudGVk
RXJyb3IKKworICAgIGRlZiBmaW5kX2JpbmFyeShzZWxmLCB2ZW52X3BhdGg9Tm9uZSwgY2hhbm5l
bD1Ob25lKToKKyAgICAgICAgYmluYXJ5ID0gTm9uZQorICAgICAgICBpZiBzZWxmLnBsYXRmb3Jt
ID09ICJ3aW4iOgorICAgICAgICAgICAgYmluYXJ5bmFtZSA9ICJtc2VkZ2UiCisgICAgICAgICAg
ICBiaW5hcnkgPSBmaW5kX2V4ZWN1dGFibGUoYmluYXJ5bmFtZSkKKyAgICAgICAgICAgIGlmIG5v
dCBiaW5hcnk6CisgICAgICAgICAgICAgICAgIyBVc2UgcGF0aHMgZnJvbSBkaWZmZXJlbnQgRWRn
ZSBjaGFubmVscyBzdGFydGluZyB3aXRoIFJlbGVhc2VcQmV0YVxEZXZcQ2FuYXJ5CisgICAgICAg
ICAgICAgICAgd2lucGF0aHMgPSBbb3MucGF0aC5leHBhbmR1c2VyKCJ+XFxBcHBEYXRhXFxMb2Nh
bFxcTWljcm9zb2Z0XFxFZGdlXFxBcHBsaWNhdGlvbiIpLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIG9zLnBhdGguZXhwYW5kdmFycygiJFNZU1RFTURSSVZFXFxQcm9ncmFtIEZpbGVzXFxN
aWNyb3NvZnRcXEVkZ2UgQmV0YVxcQXBwbGljYXRpb24iKSwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBvcy5wYXRoLmV4cGFuZHZhcnMoIiRTWVNURU1EUklWRVxcUHJvZ3JhbSBGaWxlc1xc
TWljcm9zb2Z0XFxFZGdlIERldlxcQXBwbGljYXRpb24iKSwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBvcy5wYXRoLmV4cGFuZHZhcnMoIiRTWVNURU1EUklWRVxcUHJvZ3JhbSBGaWxlcyAo
eDg2KVxcTWljcm9zb2Z0XFxFZGdlIEJldGFcXEFwcGxpY2F0aW9uIiksCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgb3MucGF0aC5leHBhbmR2YXJzKCIkU1lTVEVNRFJJVkVcXFByb2dyYW0g
RmlsZXMgKHg4NilcXE1pY3Jvc29mdFxcRWRnZSBEZXZcXEFwcGxpY2F0aW9uIiksCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgb3MucGF0aC5leHBhbmR1c2VyKCJ+XFxBcHBEYXRhXExvY2Fs
XFxNaWNyb3NvZnRcXEVkZ2UgU3hTXFxBcHBsaWNhdGlvbiIpXQorICAgICAgICAgICAgICAgIHJl
dHVybiBmaW5kX2V4ZWN1dGFibGUoYmluYXJ5bmFtZSwgb3MucGF0aHNlcC5qb2luKHdpbnBhdGhz
KSkKKyAgICAgICAgaWYgc2VsZi5wbGF0Zm9ybSA9PSAibWFjb3MiOgorICAgICAgICAgICAgYmlu
YXJ5bmFtZSA9ICJNaWNyb3NvZnQgRWRnZSBDYW5hcnkiCisgICAgICAgICAgICBiaW5hcnkgPSBm
aW5kX2V4ZWN1dGFibGUoYmluYXJ5bmFtZSkKKyAgICAgICAgICAgIGlmIG5vdCBiaW5hcnk6Cisg
ICAgICAgICAgICAgICAgbWFjcGF0aHMgPSBbIi9BcHBsaWNhdGlvbnMvTWljcm9zb2Z0IEVkZ2Uu
YXBwL0NvbnRlbnRzL01hY09TIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcy5wYXRo
LmV4cGFuZHVzZXIoIn4vQXBwbGljYXRpb25zL01pY3Jvc29mdCBFZGdlLmFwcC9Db250ZW50cy9N
YWNPUyIpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICIvQXBwbGljYXRpb25zL01pY3Jv
c29mdCBFZGdlIENhbmFyeS5hcHAvQ29udGVudHMvTWFjT1MiLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIG9zLnBhdGguZXhwYW5kdXNlcigifi9BcHBsaWNhdGlvbnMvTWljcm9zb2Z0IEVk
Z2UgQ2FuYXJ5LmFwcC9Db250ZW50cy9NYWNPUyIpXQorICAgICAgICAgICAgICAgIHJldHVybiBm
aW5kX2V4ZWN1dGFibGUoIk1pY3Jvc29mdCBFZGdlIENhbmFyeSIsIG9zLnBhdGhzZXAuam9pbiht
YWNwYXRocykpCisgICAgICAgIHJldHVybiBiaW5hcnkKKworICAgIGRlZiBmaW5kX3dlYmRyaXZl
cihzZWxmLCBjaGFubmVsPU5vbmUpOgorICAgICAgICByZXR1cm4gZmluZF9leGVjdXRhYmxlKCJt
c2VkZ2Vkcml2ZXIiKQorCisgICAgZGVmIGluc3RhbGxfd2ViZHJpdmVyKHNlbGYsIGRlc3Q9Tm9u
ZSwgY2hhbm5lbD1Ob25lLCBicm93c2VyX2JpbmFyeT1Ob25lKToKKyAgICAgICAgaWYgc2VsZi5w
bGF0Zm9ybSAhPSAid2luIiBhbmQgc2VsZi5wbGF0Zm9ybSAhPSAibWFjb3MiOgorICAgICAgICAg
ICAgcmFpc2UgVmFsdWVFcnJvcigiT25seSBXaW5kb3dzIGFuZCBNYWMgcGxhdGZvcm1zIGFyZSBj
dXJyZW50bHkgc3VwcG9ydGVkIikKKworICAgICAgICBpZiBkZXN0IGlzIE5vbmU6CisgICAgICAg
ICAgICBkZXN0ID0gb3MucHdkCisKKyAgICAgICAgaWYgY2hhbm5lbCBpcyBOb25lOgorICAgICAg
ICAgICAgdmVyc2lvbl91cmwgPSAiaHR0cHM6Ly9tc2VkZ2Vkcml2ZXIuYXp1cmVlZGdlLm5ldC9M
QVRFU1RfREVWIgorICAgICAgICBlbHNlOgorICAgICAgICAgICAgdmVyc2lvbl91cmwgPSAiaHR0
cHM6Ly9tc2VkZ2Vkcml2ZXIuYXp1cmVlZGdlLm5ldC9MQVRFU1RfJXMiICUgY2hhbm5lbC51cHBl
cigpCisgICAgICAgIHZlcnNpb24gPSBnZXQodmVyc2lvbl91cmwpLnRleHQuc3RyaXAoKQorCisg
ICAgICAgIGlmIHNlbGYucGxhdGZvcm0gPT0gIm1hY29zIjoKKyAgICAgICAgICAgIGJpdHMgPSAi
bWFjNjQiCisgICAgICAgICAgICBlZGdlZHJpdmVyX3BhdGggPSBvcy5wYXRoLmpvaW4oZGVzdCwg
c2VsZi5lZGdlZHJpdmVyX25hbWUpCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBiaXRzID0g
IndpbjY0IiBpZiB1bmFtZVs0XSA9PSAieDg2XzY0IiBlbHNlICJ3aW4zMiIKKyAgICAgICAgICAg
IGVkZ2Vkcml2ZXJfcGF0aCA9IG9zLnBhdGguam9pbihkZXN0LCAiJXMuZXhlIiAlIHNlbGYuZWRn
ZWRyaXZlcl9uYW1lKQorICAgICAgICB1cmwgPSAiaHR0cHM6Ly9tc2VkZ2Vkcml2ZXIuYXp1cmVl
ZGdlLm5ldC8lcy9lZGdlZHJpdmVyXyVzLnppcCIgJSAodmVyc2lvbiwgYml0cykKKworICAgICAg
ICAjIGNsZWFudXAgZXhpc3RpbmcgRWRnZSBkcml2ZXIgZmlsZXMgdG8gYXZvaWQgYWNjZXNzX2Rl
bmllZCBlcnJvcnMgd2hlbiB1bnppcHBpbmcKKyAgICAgICAgaWYgb3MucGF0aC5pc2ZpbGUoZWRn
ZWRyaXZlcl9wYXRoKToKKyAgICAgICAgICAgICMgcmVtb3ZlIHJlYWQtb25seSBhdHRyaWJ1dGUK
KyAgICAgICAgICAgIG9zLmNobW9kKGVkZ2Vkcml2ZXJfcGF0aCwgc3RhdC5TX0lSV1hVIHwgc3Rh
dC5TX0lSV1hHIHwgc3RhdC5TX0lSV1hPKSAgIyAwNzc3CisgICAgICAgICAgICBwcmludCgiRGVs
ZXRlICVzIGZpbGUiICUgZWRnZWRyaXZlcl9wYXRoKQorICAgICAgICAgICAgb3MucmVtb3ZlKGVk
Z2Vkcml2ZXJfcGF0aCkKKyAgICAgICAgZHJpdmVyX25vdGVzX3BhdGggPSBvcy5wYXRoLmpvaW4o
ZGVzdCwgIkRyaXZlcl9ub3RlcyIpCisgICAgICAgIGlmIG9zLnBhdGguaXNkaXIoZHJpdmVyX25v
dGVzX3BhdGgpOgorICAgICAgICAgICAgcHJpbnQoIkRlbGV0ZSAlcyBmb2xkZXIiICUgZHJpdmVy
X25vdGVzX3BhdGgpCisgICAgICAgICAgICBzaHV0aWwucm10cmVlKGRyaXZlcl9ub3Rlc19wYXRo
LCBpZ25vcmVfZXJyb3JzPUZhbHNlLCBvbmVycm9yPWhhbmRsZV9yZW1vdmVfcmVhZG9ubHkpCisK
KyAgICAgICAgc2VsZi5sb2dnZXIuaW5mbygiRG93bmxvYWRpbmcgTVNFZGdlRHJpdmVyIGZyb20g
JXMiICUgdXJsKQorICAgICAgICB1bnppcChnZXQodXJsKS5yYXcsIGRlc3QpCisgICAgICAgIGlm
IG9zLnBhdGguaXNmaWxlKGVkZ2Vkcml2ZXJfcGF0aCk6CisgICAgICAgICAgICBzZWxmLmxvZ2dl
ci5pbmZvKCJTdWNjZXNzZnVsbHkgZG93bmxvYWRlZCBNU0VkZ2VEcml2ZXIgdG8gJXMiICUgZWRn
ZWRyaXZlcl9wYXRoKQorICAgICAgICByZXR1cm4gZmluZF9leGVjdXRhYmxlKHNlbGYuZWRnZWRy
aXZlcl9uYW1lLCBkZXN0KQorCisgICAgZGVmIHZlcnNpb24oc2VsZiwgYmluYXJ5PU5vbmUsIHdl
YmRyaXZlcl9iaW5hcnk9Tm9uZSk6CisgICAgICAgIGlmIGJpbmFyeSBpcyBOb25lOgorICAgICAg
ICAgICAgYmluYXJ5ID0gc2VsZi5maW5kX2JpbmFyeSgpCisgICAgICAgIGlmIHNlbGYucGxhdGZv
cm0gIT0gIndpbiI6CisgICAgICAgICAgICB0cnk6CisgICAgICAgICAgICAgICAgdmVyc2lvbl9z
dHJpbmcgPSBjYWxsKGJpbmFyeSwgIi0tdmVyc2lvbiIpLnN0cmlwKCkKKyAgICAgICAgICAgIGV4
Y2VwdCBzdWJwcm9jZXNzLkNhbGxlZFByb2Nlc3NFcnJvcjoKKyAgICAgICAgICAgICAgICBzZWxm
LmxvZ2dlci53YXJuaW5nKCJGYWlsZWQgdG8gY2FsbCAlcyIgJSBiaW5hcnkpCisgICAgICAgICAg
ICAgICAgcmV0dXJuIE5vbmUKKyAgICAgICAgICAgIG0gPSByZS5tYXRjaChyIk1pY3Jvc29mdCBF
ZGdlICguKikgIiwgdmVyc2lvbl9zdHJpbmcpCisgICAgICAgICAgICBpZiBub3QgbToKKyAgICAg
ICAgICAgICAgICBzZWxmLmxvZ2dlci53YXJuaW5nKCJGYWlsZWQgdG8gZXh0cmFjdCB2ZXJzaW9u
IGZyb206ICVzIiAlIHZlcnNpb25fc3RyaW5nKQorICAgICAgICAgICAgICAgIHJldHVybiBOb25l
CisgICAgICAgICAgICByZXR1cm4gbS5ncm91cCgxKQorICAgICAgICBlbHNlOgorICAgICAgICAg
ICAgaWYgYmluYXJ5IGlzIG5vdCBOb25lOgorICAgICAgICAgICAgICAgIHJldHVybiBfZ2V0X2Zp
bGV2ZXJzaW9uKGJpbmFyeSwgc2VsZi5sb2dnZXIpCisgICAgICAgICAgICBzZWxmLmxvZ2dlci53
YXJuaW5nKCJGYWlsZWQgdG8gZmluZCBFZGdlIGJpbmFyeS4iKQogICAgICAgICAgICAgcmV0dXJu
IE5vbmUKLSAgICAgICAgcmV0dXJuIHJlLnNlYXJjaChyIlswLTlcLl0rKCBbYS16XSspPyQiLCBv
dXRwdXQuc3RyaXAoKSkuZ3JvdXAoMCkKIAogCiBjbGFzcyBFZGdlKEJyb3dzZXIpOgpAQCAtNDg3
LDIwICs5NTksMzIgQEAgY2xhc3MgRWRnZShCcm93c2VyKToKICAgICBwcm9kdWN0ID0gImVkZ2Ui
CiAgICAgcmVxdWlyZW1lbnRzID0gInJlcXVpcmVtZW50c19lZGdlLnR4dCIKIAotICAgIGRlZiBp
bnN0YWxsKHNlbGYsIGRlc3Q9Tm9uZSk6CisgICAgZGVmIGRvd25sb2FkKHNlbGYsIGRlc3Q9Tm9u
ZSwgY2hhbm5lbD1Ob25lKToKICAgICAgICAgcmFpc2UgTm90SW1wbGVtZW50ZWRFcnJvcgogCi0g
ICAgZGVmIGZpbmRfYmluYXJ5KHNlbGYpOgorICAgIGRlZiBpbnN0YWxsKHNlbGYsIGRlc3Q9Tm9u
ZSwgY2hhbm5lbD1Ob25lKToKICAgICAgICAgcmFpc2UgTm90SW1wbGVtZW50ZWRFcnJvcgogCi0g
ICAgZGVmIGZpbmRfd2ViZHJpdmVyKHNlbGYpOgorICAgIGRlZiBmaW5kX2JpbmFyeShzZWxmLCB2
ZW52X3BhdGg9Tm9uZSwgY2hhbm5lbD1Ob25lKToKKyAgICAgICAgcmFpc2UgTm90SW1wbGVtZW50
ZWRFcnJvcgorCisgICAgZGVmIGZpbmRfd2ViZHJpdmVyKHNlbGYsIGNoYW5uZWw9Tm9uZSk6CiAg
ICAgICAgIHJldHVybiBmaW5kX2V4ZWN1dGFibGUoIk1pY3Jvc29mdFdlYkRyaXZlciIpCiAKLSAg
ICBkZWYgaW5zdGFsbF93ZWJkcml2ZXIoc2VsZiwgZGVzdD1Ob25lKToKKyAgICBkZWYgaW5zdGFs
bF93ZWJkcml2ZXIoc2VsZiwgZGVzdD1Ob25lLCBjaGFubmVsPU5vbmUsIGJyb3dzZXJfYmluYXJ5
PU5vbmUpOgogICAgICAgICByYWlzZSBOb3RJbXBsZW1lbnRlZEVycm9yCiAKLSAgICBkZWYgdmVy
c2lvbihzZWxmLCBiaW5hcnkpOgotICAgICAgICByZXR1cm4gTm9uZQorICAgIGRlZiB2ZXJzaW9u
KHNlbGYsIGJpbmFyeT1Ob25lLCB3ZWJkcml2ZXJfYmluYXJ5PU5vbmUpOgorICAgICAgICBjb21t
YW5kID0gIihHZXQtQXBweFBhY2thZ2UgTWljcm9zb2Z0Lk1pY3Jvc29mdEVkZ2UpLlZlcnNpb24i
CisgICAgICAgIHRyeToKKyAgICAgICAgICAgIHJldHVybiBjYWxsKCJwb3dlcnNoZWxsLmV4ZSIs
IGNvbW1hbmQpLnN0cmlwKCkKKyAgICAgICAgZXhjZXB0IChzdWJwcm9jZXNzLkNhbGxlZFByb2Nl
c3NFcnJvciwgT1NFcnJvcik6CisgICAgICAgICAgICBzZWxmLmxvZ2dlci53YXJuaW5nKCJGYWls
ZWQgdG8gY2FsbCAlcyBpbiBQb3dlclNoZWxsIiAlIGNvbW1hbmQpCisgICAgICAgICAgICByZXR1
cm4gTm9uZQorCisKK2NsYXNzIEVkZ2VXZWJEcml2ZXIoRWRnZSk6CisgICAgcHJvZHVjdCA9ICJl
ZGdlX3dlYmRyaXZlciIKIAogCiBjbGFzcyBJbnRlcm5ldEV4cGxvcmVyKEJyb3dzZXIpOgpAQCAt
NTA5LDE5ICs5OTMsMjIgQEAgY2xhc3MgSW50ZXJuZXRFeHBsb3JlcihCcm93c2VyKToKICAgICBw
cm9kdWN0ID0gImllIgogICAgIHJlcXVpcmVtZW50cyA9ICJyZXF1aXJlbWVudHNfaWUudHh0Igog
Ci0gICAgZGVmIGluc3RhbGwoc2VsZiwgZGVzdD1Ob25lKToKKyAgICBkZWYgZG93bmxvYWQoc2Vs
ZiwgZGVzdD1Ob25lLCBjaGFubmVsPU5vbmUpOgorICAgICAgICByYWlzZSBOb3RJbXBsZW1lbnRl
ZEVycm9yCisKKyAgICBkZWYgaW5zdGFsbChzZWxmLCBkZXN0PU5vbmUsIGNoYW5uZWw9Tm9uZSk6
CiAgICAgICAgIHJhaXNlIE5vdEltcGxlbWVudGVkRXJyb3IKIAotICAgIGRlZiBmaW5kX2JpbmFy
eShzZWxmKToKKyAgICBkZWYgZmluZF9iaW5hcnkoc2VsZiwgdmVudl9wYXRoPU5vbmUsIGNoYW5u
ZWw9Tm9uZSk6CiAgICAgICAgIHJhaXNlIE5vdEltcGxlbWVudGVkRXJyb3IKIAotICAgIGRlZiBm
aW5kX3dlYmRyaXZlcihzZWxmKToKKyAgICBkZWYgZmluZF93ZWJkcml2ZXIoc2VsZiwgY2hhbm5l
bD1Ob25lKToKICAgICAgICAgcmV0dXJuIGZpbmRfZXhlY3V0YWJsZSgiSUVEcml2ZXJTZXJ2ZXIu
ZXhlIikKIAotICAgIGRlZiBpbnN0YWxsX3dlYmRyaXZlcihzZWxmLCBkZXN0PU5vbmUpOgorICAg
IGRlZiBpbnN0YWxsX3dlYmRyaXZlcihzZWxmLCBkZXN0PU5vbmUsIGNoYW5uZWw9Tm9uZSwgYnJv
d3Nlcl9iaW5hcnk9Tm9uZSk6CiAgICAgICAgIHJhaXNlIE5vdEltcGxlbWVudGVkRXJyb3IKIAot
ICAgIGRlZiB2ZXJzaW9uKHNlbGYsIGJpbmFyeSk6CisgICAgZGVmIHZlcnNpb24oc2VsZiwgYmlu
YXJ5PU5vbmUsIHdlYmRyaXZlcl9iaW5hcnk9Tm9uZSk6CiAgICAgICAgIHJldHVybiBOb25lCiAK
IApAQCAtNTM0LDIwICsxMDIxLDQyIEBAIGNsYXNzIFNhZmFyaShCcm93c2VyKToKICAgICBwcm9k
dWN0ID0gInNhZmFyaSIKICAgICByZXF1aXJlbWVudHMgPSAicmVxdWlyZW1lbnRzX3NhZmFyaS50
eHQiCiAKLSAgICBkZWYgaW5zdGFsbChzZWxmLCBkZXN0PU5vbmUpOgorICAgIGRlZiBkb3dubG9h
ZChzZWxmLCBkZXN0PU5vbmUsIGNoYW5uZWw9Tm9uZSk6CiAgICAgICAgIHJhaXNlIE5vdEltcGxl
bWVudGVkRXJyb3IKIAotICAgIGRlZiBmaW5kX2JpbmFyeShzZWxmKToKKyAgICBkZWYgaW5zdGFs
bChzZWxmLCBkZXN0PU5vbmUsIGNoYW5uZWw9Tm9uZSk6CiAgICAgICAgIHJhaXNlIE5vdEltcGxl
bWVudGVkRXJyb3IKIAotICAgIGRlZiBmaW5kX3dlYmRyaXZlcihzZWxmKToKLSAgICAgICAgcmV0
dXJuIGZpbmRfZXhlY3V0YWJsZSgic2FmYXJpZHJpdmVyIikKKyAgICBkZWYgZmluZF9iaW5hcnko
c2VsZiwgdmVudl9wYXRoPU5vbmUsIGNoYW5uZWw9Tm9uZSk6CisgICAgICAgIHJhaXNlIE5vdElt
cGxlbWVudGVkRXJyb3IKIAotICAgIGRlZiBpbnN0YWxsX3dlYmRyaXZlcihzZWxmKToKKyAgICBk
ZWYgZmluZF93ZWJkcml2ZXIoc2VsZiwgY2hhbm5lbD1Ob25lKToKKyAgICAgICAgcGF0aCA9IE5v
bmUKKyAgICAgICAgaWYgY2hhbm5lbCA9PSAicHJldmlldyI6CisgICAgICAgICAgICBwYXRoID0g
Ii9BcHBsaWNhdGlvbnMvU2FmYXJpIFRlY2hub2xvZ3kgUHJldmlldy5hcHAvQ29udGVudHMvTWFj
T1MiCisgICAgICAgIHJldHVybiBmaW5kX2V4ZWN1dGFibGUoInNhZmFyaWRyaXZlciIsIHBhdGgp
CisKKyAgICBkZWYgaW5zdGFsbF93ZWJkcml2ZXIoc2VsZiwgZGVzdD1Ob25lLCBjaGFubmVsPU5v
bmUsIGJyb3dzZXJfYmluYXJ5PU5vbmUpOgogICAgICAgICByYWlzZSBOb3RJbXBsZW1lbnRlZEVy
cm9yCiAKLSAgICBkZWYgdmVyc2lvbihzZWxmLCBiaW5hcnkpOgotICAgICAgICByZXR1cm4gTm9u
ZQorICAgIGRlZiB2ZXJzaW9uKHNlbGYsIGJpbmFyeT1Ob25lLCB3ZWJkcml2ZXJfYmluYXJ5PU5v
bmUpOgorICAgICAgICBpZiB3ZWJkcml2ZXJfYmluYXJ5IGlzIE5vbmU6CisgICAgICAgICAgICBz
ZWxmLmxvZ2dlci53YXJuaW5nKCJDYW5ub3QgZmluZCBTYWZhcmkgdmVyc2lvbiB3aXRob3V0IHNh
ZmFyaWRyaXZlciIpCisgICAgICAgICAgICByZXR1cm4gTm9uZQorICAgICAgICAjIFVzZSBgc2Fm
YXJpZHJpdmVyIC0tdmVyc2lvbmAgdG8gZ2V0IHRoZSB2ZXJzaW9uLiBFeGFtcGxlIG91dHB1dDoK
KyAgICAgICAgIyAiSW5jbHVkZWQgd2l0aCBTYWZhcmkgMTIuMSAoMTQ2MDcuMS4xMSkiCisgICAg
ICAgICMgIkluY2x1ZGVkIHdpdGggU2FmYXJpIFRlY2hub2xvZ3kgUHJldmlldyAoUmVsZWFzZSA2
NywgMTM2MDcuMS45LjAuMSkiCisgICAgICAgICMgVGhlIGAtLXZlcnNpb25gIGZsYWcgd2FzIGFk
ZGVkIGluIFNUUCA2Nywgc28gYWxsb3cgdGhlIGNhbGwgdG8gZmFpbC4KKyAgICAgICAgdHJ5Ogor
ICAgICAgICAgICAgdmVyc2lvbl9zdHJpbmcgPSBjYWxsKHdlYmRyaXZlcl9iaW5hcnksICItLXZl
cnNpb24iKS5zdHJpcCgpCisgICAgICAgIGV4Y2VwdCBzdWJwcm9jZXNzLkNhbGxlZFByb2Nlc3NF
cnJvcjoKKyAgICAgICAgICAgIHNlbGYubG9nZ2VyLndhcm5pbmcoIkZhaWxlZCB0byBjYWxsICVz
IC0tdmVyc2lvbiIgJSB3ZWJkcml2ZXJfYmluYXJ5KQorICAgICAgICAgICAgcmV0dXJuIE5vbmUK
KyAgICAgICAgbSA9IHJlLm1hdGNoKHIiSW5jbHVkZWQgd2l0aCBTYWZhcmkgKC4qKSIsIHZlcnNp
b25fc3RyaW5nKQorICAgICAgICBpZiBub3QgbToKKyAgICAgICAgICAgIHNlbGYubG9nZ2VyLndh
cm5pbmcoIkZhaWxlZCB0byBleHRyYWN0IHZlcnNpb24gZnJvbTogJXMiICUgdmVyc2lvbl9zdHJp
bmcpCisgICAgICAgICAgICByZXR1cm4gTm9uZQorICAgICAgICByZXR1cm4gbS5ncm91cCgxKQog
CiAKIGNsYXNzIFNlcnZvKEJyb3dzZXIpOgpAQCAtNTc0LDMzICsxMDgzLDYwIEBAIGNsYXNzIFNl
cnZvKEJyb3dzZXIpOgogCiAgICAgICAgIHJldHVybiAocGxhdGZvcm0sIGV4dGVuc2lvbiwgZGVj
b21wcmVzcykKIAotICAgIGRlZiBpbnN0YWxsKHNlbGYsIGRlc3Q9Tm9uZSk6CisgICAgZGVmIF9n
ZXQoc2VsZiwgY2hhbm5lbD0ibmlnaHRseSIpOgorICAgICAgICBpZiBjaGFubmVsICE9ICJuaWdo
dGx5IjoKKyAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoIk9ubHkgbmlnaHRseSB2ZXJzaW9u
cyBvZiBTZXJ2byBhcmUgYXZhaWxhYmxlIikKKworICAgICAgICBwbGF0Zm9ybSwgZXh0ZW5zaW9u
LCBfID0gc2VsZi5wbGF0Zm9ybV9jb21wb25lbnRzKCkKKyAgICAgICAgdXJsID0gImh0dHBzOi8v
ZG93bmxvYWQuc2Vydm8ub3JnL25pZ2h0bHkvJXMvc2Vydm8tbGF0ZXN0JXMiICUgKHBsYXRmb3Jt
LCBleHRlbnNpb24pCisgICAgICAgIHJldHVybiBnZXQodXJsKQorCisgICAgZGVmIGRvd25sb2Fk
KHNlbGYsIGRlc3Q9Tm9uZSwgY2hhbm5lbD0ibmlnaHRseSIpOgorICAgICAgICBpZiBkZXN0IGlz
IE5vbmU6CisgICAgICAgICAgICBkZXN0ID0gb3MucHdkCisKKyAgICAgICAgcmVzcCA9IHNlbGYu
X2dldChkZXN0LCBjaGFubmVsKQorICAgICAgICBfLCBleHRlbnNpb24sIF8gPSBzZWxmLnBsYXRm
b3JtX2NvbXBvbmVudHMoKQorCisgICAgICAgIHdpdGggb3Blbihvcy5wYXRoLmpvaW4oZGVzdCwg
InNlcnZvLWxhdGVzdCVzIiAlIChleHRlbnNpb24sKSksICJ3IikgYXMgZjoKKyAgICAgICAgICAg
IGYud3JpdGUocmVzcC5jb250ZW50KQorCisgICAgZGVmIGluc3RhbGwoc2VsZiwgZGVzdD1Ob25l
LCBjaGFubmVsPSJuaWdodGx5Iik6CiAgICAgICAgICIiIkluc3RhbGwgbGF0ZXN0IEJyb3dzZXIg
RW5naW5lLiIiIgogICAgICAgICBpZiBkZXN0IGlzIE5vbmU6CiAgICAgICAgICAgICBkZXN0ID0g
b3MucHdkCiAKLSAgICAgICAgcGxhdGZvcm0sIGV4dGVuc2lvbiwgZGVjb21wcmVzcyA9IHNlbGYu
cGxhdGZvcm1fY29tcG9uZW50cygpCi0gICAgICAgIHVybCA9ICJodHRwczovL2Rvd25sb2FkLnNl
cnZvLm9yZy9uaWdodGx5LyVzL3NlcnZvLWxhdGVzdCVzIiAlIChwbGF0Zm9ybSwgZXh0ZW5zaW9u
KQorICAgICAgICBfLCBfLCBkZWNvbXByZXNzID0gc2VsZi5wbGF0Zm9ybV9jb21wb25lbnRzKCkK
IAotICAgICAgICBkZWNvbXByZXNzKGdldCh1cmwpLnJhdywgZGVzdD1kZXN0KQorICAgICAgICBy
ZXNwID0gc2VsZi5fZ2V0KGRlc3QsIGNoYW5uZWwpCisgICAgICAgIGRlY29tcHJlc3MocmVzcC5y
YXcsIGRlc3Q9ZGVzdCkKICAgICAgICAgcGF0aCA9IGZpbmRfZXhlY3V0YWJsZSgic2Vydm8iLCBv
cy5wYXRoLmpvaW4oZGVzdCwgInNlcnZvIikpCiAgICAgICAgIHN0ID0gb3Muc3RhdChwYXRoKQog
ICAgICAgICBvcy5jaG1vZChwYXRoLCBzdC5zdF9tb2RlIHwgc3RhdC5TX0lFWEVDKQogICAgICAg
ICByZXR1cm4gcGF0aAogCi0gICAgZGVmIGZpbmRfYmluYXJ5KHNlbGYpOgotICAgICAgICByZXR1
cm4gZmluZF9leGVjdXRhYmxlKCJzZXJ2byIpCisgICAgZGVmIGZpbmRfYmluYXJ5KHNlbGYsIHZl
bnZfcGF0aD1Ob25lLCBjaGFubmVsPU5vbmUpOgorICAgICAgICBwYXRoID0gZmluZF9leGVjdXRh
YmxlKCJzZXJ2byIsIG9zLnBhdGguam9pbih2ZW52X3BhdGgsICJzZXJ2byIpKQorICAgICAgICBp
ZiBwYXRoIGlzIE5vbmU6CisgICAgICAgICAgICBwYXRoID0gZmluZF9leGVjdXRhYmxlKCJzZXJ2
byIpCisgICAgICAgIHJldHVybiBwYXRoCiAKLSAgICBkZWYgZmluZF93ZWJkcml2ZXIoc2VsZik6
CisgICAgZGVmIGZpbmRfd2ViZHJpdmVyKHNlbGYsIGNoYW5uZWw9Tm9uZSk6CiAgICAgICAgIHJl
dHVybiBOb25lCiAKLSAgICBkZWYgaW5zdGFsbF93ZWJkcml2ZXIoc2VsZiwgZGVzdD1Ob25lKToK
KyAgICBkZWYgaW5zdGFsbF93ZWJkcml2ZXIoc2VsZiwgZGVzdD1Ob25lLCBjaGFubmVsPU5vbmUs
IGJyb3dzZXJfYmluYXJ5PU5vbmUpOgogICAgICAgICByYWlzZSBOb3RJbXBsZW1lbnRlZEVycm9y
CiAKLSAgICBkZWYgdmVyc2lvbihzZWxmLCBiaW5hcnkpOgorICAgIGRlZiB2ZXJzaW9uKHNlbGYs
IGJpbmFyeT1Ob25lLCB3ZWJkcml2ZXJfYmluYXJ5PU5vbmUpOgogICAgICAgICAiIiJSZXRyaWV2
ZSB0aGUgcmVsZWFzZSB2ZXJzaW9uIG9mIHRoZSBpbnN0YWxsZWQgYnJvd3Nlci4iIiIKICAgICAg
ICAgb3V0cHV0ID0gY2FsbChiaW5hcnksICItLXZlcnNpb24iKQotICAgICAgICByZXR1cm4gcmUu
c2VhcmNoKHIiWzAtOVwuXSsoIFthLXpdKyk/JCIsIG91dHB1dC5zdHJpcCgpKS5ncm91cCgwKQor
ICAgICAgICBtID0gcmUuc2VhcmNoKHIiU2Vydm8gKFswLTlcLl0rLVthLWYwLTldKyk/KC1kaXJ0
eSk/JCIsIG91dHB1dC5zdHJpcCgpKQorICAgICAgICBpZiBtOgorICAgICAgICAgICAgcmV0dXJu
IG0uZ3JvdXAoMCkKKworCitjbGFzcyBTZXJ2b1dlYkRyaXZlcihTZXJ2byk6CisgICAgcHJvZHVj
dCA9ICJzZXJ2b2RyaXZlciIKIAogCiBjbGFzcyBTYXVjZShCcm93c2VyKToKQEAgLTYwOSwxOSAr
MTE0NSwyMiBAQCBjbGFzcyBTYXVjZShCcm93c2VyKToKICAgICBwcm9kdWN0ID0gInNhdWNlIgog
ICAgIHJlcXVpcmVtZW50cyA9ICJyZXF1aXJlbWVudHNfc2F1Y2UudHh0IgogCi0gICAgZGVmIGlu
c3RhbGwoc2VsZiwgZGVzdD1Ob25lKToKKyAgICBkZWYgZG93bmxvYWQoc2VsZiwgZGVzdD1Ob25l
LCBjaGFubmVsPU5vbmUpOgorICAgICAgICByYWlzZSBOb3RJbXBsZW1lbnRlZEVycm9yCisKKyAg
ICBkZWYgaW5zdGFsbChzZWxmLCBkZXN0PU5vbmUsIGNoYW5uZWw9Tm9uZSk6CiAgICAgICAgIHJh
aXNlIE5vdEltcGxlbWVudGVkRXJyb3IKIAotICAgIGRlZiBmaW5kX2JpbmFyeShzZWxmKToKKyAg
ICBkZWYgZmluZF9iaW5hcnkoc2VsZiwgdmVuZXZfcGF0aD1Ob25lLCBjaGFubmVsPU5vbmUpOgog
ICAgICAgICByYWlzZSBOb3RJbXBsZW1lbnRlZEVycm9yCiAKLSAgICBkZWYgZmluZF93ZWJkcml2
ZXIoc2VsZik6CisgICAgZGVmIGZpbmRfd2ViZHJpdmVyKHNlbGYsIGNoYW5uZWw9Tm9uZSk6CiAg
ICAgICAgIHJhaXNlIE5vdEltcGxlbWVudGVkRXJyb3IKIAotICAgIGRlZiBpbnN0YWxsX3dlYmRy
aXZlcihzZWxmLCBkZXN0PU5vbmUpOgorICAgIGRlZiBpbnN0YWxsX3dlYmRyaXZlcihzZWxmLCBk
ZXN0PU5vbmUsIGNoYW5uZWw9Tm9uZSwgYnJvd3Nlcl9iaW5hcnk9Tm9uZSk6CiAgICAgICAgIHJh
aXNlIE5vdEltcGxlbWVudGVkRXJyb3IKIAotICAgIGRlZiB2ZXJzaW9uKHNlbGYsIGJpbmFyeSk6
CisgICAgZGVmIHZlcnNpb24oc2VsZiwgYmluYXJ5PU5vbmUsIHdlYmRyaXZlcl9iaW5hcnk9Tm9u
ZSk6CiAgICAgICAgIHJldHVybiBOb25lCiAKIApAQCAtNjMxLDE3ICsxMTcwLDkzIEBAIGNsYXNz
IFdlYktpdChCcm93c2VyKToKICAgICBwcm9kdWN0ID0gIndlYmtpdCIKICAgICByZXF1aXJlbWVu
dHMgPSAicmVxdWlyZW1lbnRzX3dlYmtpdC50eHQiCiAKLSAgICBkZWYgaW5zdGFsbChzZWxmLCBk
ZXN0PU5vbmUpOgorICAgIGRlZiBkb3dubG9hZChzZWxmLCBkZXN0PU5vbmUsIGNoYW5uZWw9Tm9u
ZSk6CiAgICAgICAgIHJhaXNlIE5vdEltcGxlbWVudGVkRXJyb3IKIAotICAgIGRlZiBmaW5kX2Jp
bmFyeShzZWxmLCBwYXRoPU5vbmUpOgorICAgIGRlZiBpbnN0YWxsKHNlbGYsIGRlc3Q9Tm9uZSwg
Y2hhbm5lbD1Ob25lKToKKyAgICAgICAgcmFpc2UgTm90SW1wbGVtZW50ZWRFcnJvcgorCisgICAg
ZGVmIGZpbmRfYmluYXJ5KHNlbGYsIHZlbnZfcGF0aD1Ob25lLCBjaGFubmVsPU5vbmUpOgogICAg
ICAgICByZXR1cm4gTm9uZQogCi0gICAgZGVmIGZpbmRfd2ViZHJpdmVyKHNlbGYpOgorICAgIGRl
ZiBmaW5kX3dlYmRyaXZlcihzZWxmLCBjaGFubmVsPU5vbmUpOgogICAgICAgICByZXR1cm4gTm9u
ZQogCi0gICAgZGVmIGluc3RhbGxfd2ViZHJpdmVyKHNlbGYpOgorICAgIGRlZiBpbnN0YWxsX3dl
YmRyaXZlcihzZWxmLCBkZXN0PU5vbmUsIGNoYW5uZWw9Tm9uZSwgYnJvd3Nlcl9iaW5hcnk9Tm9u
ZSk6CiAgICAgICAgIHJhaXNlIE5vdEltcGxlbWVudGVkRXJyb3IKIAotICAgIGRlZiB2ZXJzaW9u
KHNlbGYsIGJpbmFyeSk6CisgICAgZGVmIHZlcnNpb24oc2VsZiwgYmluYXJ5PU5vbmUsIHdlYmRy
aXZlcl9iaW5hcnk9Tm9uZSk6CisgICAgICAgIHJldHVybiBOb25lCisKKworY2xhc3MgV2ViS2l0
R1RLTWluaUJyb3dzZXIoV2ViS2l0KToKKworICAgIGRlZiBmaW5kX2JpbmFyeShzZWxmLCB2ZW52
X3BhdGg9Tm9uZSwgY2hhbm5lbD1Ob25lKToKKyAgICAgICAgbGliZXhlY3BhdGhzID0gWyIvdXNy
L2xpYmV4ZWMvd2Via2l0Mmd0ay00LjAiXSAgIyBGZWRvcmEgcGF0aAorICAgICAgICB0cmlwbGV0
ID0gIng4Nl82NC1saW51eC1nbnUiCisgICAgICAgICMgVHJ5IHRvIHVzZSBHQ0MgdG8gZGV0ZWN0
IHRoaXMgbWFjaGluZSB0cmlwbGV0CisgICAgICAgIGdjYyA9IGZpbmRfZXhlY3V0YWJsZSgiZ2Nj
IikKKyAgICAgICAgaWYgZ2NjOgorICAgICAgICAgICAgdHJ5OgorICAgICAgICAgICAgICAgIHRy
aXBsZXQgPSBjYWxsKGdjYywgIi1kdW1wbWFjaGluZSIpLnN0cmlwKCkKKyAgICAgICAgICAgIGV4
Y2VwdCBzdWJwcm9jZXNzLkNhbGxlZFByb2Nlc3NFcnJvcjoKKyAgICAgICAgICAgICAgICBwYXNz
CisgICAgICAgICMgQWRkIERlYmlhbi9VYnVudHUgcGF0aAorICAgICAgICBsaWJleGVjcGF0aHMu
YXBwZW5kKCIvdXNyL2xpYi8lcy93ZWJraXQyZ3RrLTQuMCIgJSB0cmlwbGV0KQorICAgICAgICBp
ZiBjaGFubmVsID09ICJuaWdodGx5IjoKKyAgICAgICAgICAgIGxpYmV4ZWNwYXRocy5hcHBlbmQo
Ii9vcHQvd2Via2l0Z3RrL25pZ2h0bHkiKQorICAgICAgICByZXR1cm4gZmluZF9leGVjdXRhYmxl
KCJNaW5pQnJvd3NlciIsIG9zLnBhdGhzZXAuam9pbihsaWJleGVjcGF0aHMpKQorCisgICAgZGVm
IGZpbmRfd2ViZHJpdmVyKHNlbGYsIGNoYW5uZWw9Tm9uZSk6CisgICAgICAgIHBhdGggPSBvcy5l
bnZpcm9uWydQQVRIJ10KKyAgICAgICAgaWYgY2hhbm5lbCA9PSAibmlnaHRseSI6CisgICAgICAg
ICAgICBwYXRoID0gIiVzOiVzIiAlIChwYXRoLCAiL29wdC93ZWJraXRndGsvbmlnaHRseSIpCisg
ICAgICAgIHJldHVybiBmaW5kX2V4ZWN1dGFibGUoIldlYktpdFdlYkRyaXZlciIsIHBhdGgpCisK
KyAgICBkZWYgdmVyc2lvbihzZWxmLCBiaW5hcnk9Tm9uZSwgd2ViZHJpdmVyX2JpbmFyeT1Ob25l
KToKKyAgICAgICAgaWYgYmluYXJ5IGlzIE5vbmU6CisgICAgICAgICAgICByZXR1cm4gTm9uZQor
ICAgICAgICB0cnk6ICAjIFdlYktpdEdUSyBNaW5pQnJvd3NlciBiZWZvcmUgMi4yNi4wIGRvZXNu
J3Qgc3VwcG9ydCAtLXZlcnNpb24KKyAgICAgICAgICAgIG91dHB1dCA9IGNhbGwoYmluYXJ5LCAi
LS12ZXJzaW9uIikuc3RyaXAoKQorICAgICAgICBleGNlcHQgc3VicHJvY2Vzcy5DYWxsZWRQcm9j
ZXNzRXJyb3I6CisgICAgICAgICAgICByZXR1cm4gTm9uZQorICAgICAgICAjIEV4YW1wbGUgb3V0
cHV0OiAiV2ViS2l0R1RLIDIuMjYuMSIKKyAgICAgICAgaWYgb3V0cHV0OgorICAgICAgICAgICAg
bSA9IHJlLm1hdGNoKHIiV2ViS2l0R1RLICguKykiLCBvdXRwdXQpCisgICAgICAgICAgICBpZiBu
b3QgbToKKyAgICAgICAgICAgICAgICBzZWxmLmxvZ2dlci53YXJuaW5nKCJGYWlsZWQgdG8gZXh0
cmFjdCB2ZXJzaW9uIGZyb206ICVzIiAlIG91dHB1dCkKKyAgICAgICAgICAgICAgICByZXR1cm4g
Tm9uZQorICAgICAgICAgICAgcmV0dXJuIG0uZ3JvdXAoMSkKKyAgICAgICAgcmV0dXJuIE5vbmUK
KworCitjbGFzcyBFcGlwaGFueShCcm93c2VyKToKKyAgICAiIiJFcGlwaGFueS1zcGVjaWZpYyBp
bnRlcmZhY2UuIiIiCisKKyAgICBwcm9kdWN0ID0gImVwaXBoYW55IgorICAgIHJlcXVpcmVtZW50
cyA9ICJyZXF1aXJlbWVudHNfZXBpcGhhbnkudHh0IgorCisgICAgZGVmIGRvd25sb2FkKHNlbGYs
IGRlc3Q9Tm9uZSwgY2hhbm5lbD1Ob25lKToKKyAgICAgICAgcmFpc2UgTm90SW1wbGVtZW50ZWRF
cnJvcgorCisgICAgZGVmIGluc3RhbGwoc2VsZiwgZGVzdD1Ob25lLCBjaGFubmVsPU5vbmUpOgor
ICAgICAgICByYWlzZSBOb3RJbXBsZW1lbnRlZEVycm9yCisKKyAgICBkZWYgZmluZF9iaW5hcnko
c2VsZiwgdmVudl9wYXRoPU5vbmUsIGNoYW5uZWw9Tm9uZSk6CisgICAgICAgIHJldHVybiBmaW5k
X2V4ZWN1dGFibGUoImVwaXBoYW55IikKKworICAgIGRlZiBmaW5kX3dlYmRyaXZlcihzZWxmLCBj
aGFubmVsPU5vbmUpOgorICAgICAgICByZXR1cm4gZmluZF9leGVjdXRhYmxlKCJXZWJLaXRXZWJE
cml2ZXIiKQorCisgICAgZGVmIGluc3RhbGxfd2ViZHJpdmVyKHNlbGYsIGRlc3Q9Tm9uZSwgY2hh
bm5lbD1Ob25lLCBicm93c2VyX2JpbmFyeT1Ob25lKToKKyAgICAgICAgcmFpc2UgTm90SW1wbGVt
ZW50ZWRFcnJvcgorCisgICAgZGVmIHZlcnNpb24oc2VsZiwgYmluYXJ5PU5vbmUsIHdlYmRyaXZl
cl9iaW5hcnk9Tm9uZSk6CisgICAgICAgIGlmIGJpbmFyeSBpcyBOb25lOgorICAgICAgICAgICAg
cmV0dXJuIE5vbmUKKyAgICAgICAgb3V0cHV0ID0gY2FsbChiaW5hcnksICItLXZlcnNpb24iKQor
ICAgICAgICBpZiBvdXRwdXQ6CisgICAgICAgICAgICAjIFN0YWJsZSByZWxlYXNlIG91dHB1dCBs
b29rcyBsaWtlOiAiV2ViIDMuMzAuMiIKKyAgICAgICAgICAgICMgVGVjaCBQcmV2aWV3IG91dHB1
dCBsb29rcyBsaWtlICJXZWIgMy4zMS4zLTg4LWc5N2RiNGY0MGYiCisgICAgICAgICAgICByZXR1
cm4gb3V0cHV0LnNwbGl0KClbMV0KICAgICAgICAgcmV0dXJuIE5vbmUKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0L2NvbW1h
bmRzLmpzb24gYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3dwdC9jb21tYW5kcy5qc29uCmluZGV4IDBlYTZiMjUyNzZmLi42MGZlMTYyMWFmMCAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy93cHQvY29tbWFuZHMuanNvbgorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3dwdC9jb21tYW5kcy5qc29uCkBAIC0xLDE1ICsxLDkzIEBACiB7
Ci0gICAgInJ1biI6IHsicGF0aCI6ICJydW4ucHkiLCAic2NyaXB0IjogInJ1biIsICJwYXJzZXIi
OiAiY3JlYXRlX3BhcnNlciIsICJoZWxwIjogIlJ1biB0ZXN0cyBpbiBhIGJyb3dzZXIiLAotICAg
ICAgICAgICAgInZpcnR1YWxlbnYiOiB0cnVlLCAiaW5zdGFsbCI6IFsicmVxdWVzdHMiXSwgInJl
cXVpcmVtZW50cyI6IFsiLi4vd3B0cnVubmVyL3JlcXVpcmVtZW50cy50eHQiXX0sCi0gICAgInVw
ZGF0ZS1leHBlY3RhdGlvbnMiOiB7InBhdGgiOiAidXBkYXRlLnB5IiwgInNjcmlwdCI6ICJ1cGRh
dGVfZXhwZWN0YXRpb25zIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAicGFyc2VyIjog
ImNyZWF0ZV9wYXJzZXJfdXBkYXRlIiwgImhlbHAiOiAiVXBkYXRlIGV4cGVjdGF0aW9ucyBmaWxl
cyBmcm9tIHJhdyBsb2dzLiIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgInZpcnR1YWxl
bnYiOiB0cnVlLCAiaW5zdGFsbCI6IFsicmVxdWVzdHMiXSwKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAicmVxdWlyZW1lbnRzIjogWyIuLi93cHRydW5uZXIvcmVxdWlyZW1lbnRzLnR4dCJd
fSwKLSAgICAiZmlsZXMtY2hhbmdlZCI6IHsicGF0aCI6ICJ0ZXN0ZmlsZXMucHkiLCAic2NyaXB0
IjogInJ1bl9jaGFuZ2VkX2ZpbGVzIiwgInBhcnNlciI6ICJnZXRfcGFyc2VyIiwKLSAgICAgICAg
ICAgICAgICAgICAgICAiaGVscCI6ICJHZXQgYSBsaXN0IG9mIGZpbGVzIHRoYXQgaGF2ZSBjaGFu
Z2VkIiwgInZpcnR1YWxlbnYiOiBmYWxzZX0sCi0gICAgInRlc3RzLWFmZmVjdGVkIjogeyJwYXRo
IjogInRlc3RmaWxlcy5weSIsICJzY3JpcHQiOiAicnVuX3Rlc3RzX2FmZmVjdGVkIiwgInBhcnNl
ciI6ICJnZXRfcGFyc2VyX2FmZmVjdGVkIiwKLSAgICAgICAgICAgICAgICAgICAgICAgImhlbHAi
OiAiR2V0IGEgbGlzdCBvZiB0ZXN0cyBhZmZlY3RlZCBieSBjaGFuZ2VzIiwgInZpcnR1YWxlbnYi
OiBmYWxzZX0sCi0gICAgImluc3RhbGwiOiB7InBhdGgiOiAiaW5zdGFsbC5weSIsICJzY3JpcHQi
OiAicnVuIiwgInBhcnNlciI6ICJnZXRfcGFyc2VyIiwgImhlbHAiOiAiSW5zdGFsbCBicm93c2Vy
IGNvbXBvbmVudHMiLAotICAgICAgICAgICAgICAgICJpbnN0YWxsIjogWyJtb3pkb3dubG9hZCIs
ICJtb3ppbnN0YWxsIl19LAotICAgICJicmFuY2gtcG9pbnQiOiB7InBhdGgiOiAidGVzdGZpbGVz
LnB5IiwgInNjcmlwdCI6ICJkaXNwbGF5X2JyYW5jaF9wb2ludCIsICJwYXJzZXIiOiBudWxsLCAi
aGVscCI6ICJQcmludCBicmFuY2ggcG9pbnQgZnJvbSBtYXN0ZXIiLCAidmlydHVhbGVudiI6IGZh
bHNlfQorICAicnVuIjogeworICAgICJwYXRoIjogInJ1bi5weSIsCisgICAgInNjcmlwdCI6ICJy
dW4iLAorICAgICJwYXJzZXIiOiAiY3JlYXRlX3BhcnNlciIsCisgICAgImhlbHAiOiAiUnVuIHRl
c3RzIGluIGEgYnJvd3NlciIsCisgICAgInZpcnR1YWxlbnYiOiB0cnVlLAorICAgICJpbnN0YWxs
IjogWworICAgICAgInJlcXVlc3RzIiwKKyAgICAgICJ6c3RhbmRhcmQiCisgICAgXSwKKyAgICAi
cmVxdWlyZW1lbnRzIjogWworICAgICAgIi4uL3dwdHJ1bm5lci9yZXF1aXJlbWVudHMudHh0Igor
ICAgIF0KKyAgfSwKKyAgImNyZWF0ZSI6IHsKKyAgICAicGF0aCI6ICJjcmVhdGUucHkiLAorICAg
ICJzY3JpcHQiOiAicnVuIiwKKyAgICAicGFyc2VyIjogImdldF9wYXJzZXIiLAorICAgICJoZWxw
IjogIkNyZWF0ZSBhIG5ldyB3cHQgdGVzdCIKKyAgfSwKKyAgInVwZGF0ZS1leHBlY3RhdGlvbnMi
OiB7CisgICAgInBhdGgiOiAidXBkYXRlLnB5IiwKKyAgICAic2NyaXB0IjogInVwZGF0ZV9leHBl
Y3RhdGlvbnMiLAorICAgICJwYXJzZXIiOiAiY3JlYXRlX3BhcnNlcl91cGRhdGUiLAorICAgICJo
ZWxwIjogIlVwZGF0ZSBleHBlY3RhdGlvbnMgZmlsZXMgZnJvbSByYXcgbG9ncy4iLAorICAgICJ2
aXJ0dWFsZW52IjogdHJ1ZSwKKyAgICAiaW5zdGFsbCI6IFsKKyAgICAgICJyZXF1ZXN0cyIKKyAg
ICBdLAorICAgICJyZXF1aXJlbWVudHMiOiBbCisgICAgICAiLi4vd3B0cnVubmVyL3JlcXVpcmVt
ZW50cy50eHQiCisgICAgXQorICB9LAorICAiZmlsZXMtY2hhbmdlZCI6IHsKKyAgICAicGF0aCI6
ICJ0ZXN0ZmlsZXMucHkiLAorICAgICJzY3JpcHQiOiAicnVuX2NoYW5nZWRfZmlsZXMiLAorICAg
ICJwYXJzZXIiOiAiZ2V0X3BhcnNlciIsCisgICAgImhlbHAiOiAiR2V0IGEgbGlzdCBvZiBmaWxl
cyB0aGF0IGhhdmUgY2hhbmdlZCIsCisgICAgInZpcnR1YWxlbnYiOiBmYWxzZQorICB9LAorICAi
dGVzdHMtYWZmZWN0ZWQiOiB7CisgICAgInBhdGgiOiAidGVzdGZpbGVzLnB5IiwKKyAgICAic2Ny
aXB0IjogInJ1bl90ZXN0c19hZmZlY3RlZCIsCisgICAgInBhcnNlciI6ICJnZXRfcGFyc2VyX2Fm
ZmVjdGVkIiwKKyAgICAiaGVscCI6ICJHZXQgYSBsaXN0IG9mIHRlc3RzIGFmZmVjdGVkIGJ5IGNo
YW5nZXMiLAorICAgICJ2aXJ0dWFsZW52IjogZmFsc2UKKyAgfSwKKyAgImluc3RhbGwiOiB7Cisg
ICAgInBhdGgiOiAiaW5zdGFsbC5weSIsCisgICAgInNjcmlwdCI6ICJydW4iLAorICAgICJwYXJz
ZXIiOiAiZ2V0X3BhcnNlciIsCisgICAgImhlbHAiOiAiSW5zdGFsbCBicm93c2VyIGNvbXBvbmVu
dHMiLAorICAgICJpbnN0YWxsIjogWworICAgICAgIm1vemRvd25sb2FkIiwKKyAgICAgICJtb3pp
bnN0YWxsIgorICAgIF0KKyAgfSwKKyAgImJyYW5jaC1wb2ludCI6IHsKKyAgICAicGF0aCI6ICJ0
ZXN0ZmlsZXMucHkiLAorICAgICJzY3JpcHQiOiAiZGlzcGxheV9icmFuY2hfcG9pbnQiLAorICAg
ICJwYXJzZXIiOiBudWxsLAorICAgICJoZWxwIjogIlByaW50IGJyYW5jaCBwb2ludCBmcm9tIG1h
c3RlciIsCisgICAgInZpcnR1YWxlbnYiOiBmYWxzZQorICB9LAorICAicmV2LWxpc3QiOiB7Cisg
ICAgInBhdGgiOiAicmV2bGlzdC5weSIsCisgICAgInNjcmlwdCI6ICJydW5fcmV2X2xpc3QiLAor
ICAgICJwYXJzZXIiOiAiZ2V0X3BhcnNlciIsCisgICAgImhlbHAiOiAiTGlzdCB0YWdnZWQgcmV2
aXNpb25zIGF0IHJlZ3VsYXIgaW50ZXJ2YWxzIiwKKyAgICAidmlydHVhbGVudiI6IGZhbHNlCisg
IH0sCisgICJpbnN0YWxsLWFuZHJvaWQtZW11bGF0b3IiOiB7CisgICAgInBhdGgiOiAiYW5kcm9p
ZC5weSIsCisgICAgInNjcmlwdCI6ICJydW5faW5zdGFsbCIsCisgICAgInBhcnNlciI6ICJnZXRf
cGFyc2VyX2luc3RhbGwiLAorICAgICJoZWxwIjogIlNldHVwIHRoZSB4ODYgYW5kcm9pZCBlbXVs
YXRvciIsCisgICAgInZpcnR1YWxlbnYiOiB0cnVlLAorICAgICJpbnN0YWxsIjogWworICAgICAg
InJlcXVlc3RzIgorICAgIF0KKyAgfSwKKyAgInN0YXJ0LWFuZHJvaWQtZW11bGF0b3IiOiB7Cisg
ICAgInBhdGgiOiAiYW5kcm9pZC5weSIsCisgICAgInNjcmlwdCI6ICJydW5fc3RhcnQiLAorICAg
ICJwYXJzZXIiOiAiZ2V0X3BhcnNlcl9zdGFydCIsCisgICAgImhlbHAiOiAiU3RhcnQgdGhlIHg4
NiBhbmRyb2lkIGVtdWxhdG9yIiwKKyAgICAidmlydHVhbGVudiI6IHRydWUsCisgICAgImluc3Rh
bGwiOiBbCisgICAgICAicmVxdWVzdHMiCisgICAgXQorICB9CiB9CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdC9jcmVhdGUu
cHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dw
dC9jcmVhdGUucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjY5NjYw
OWE2OGNlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy93cHQvY3JlYXRlLnB5CkBAIC0wLDAgKzEsMTMxIEBACitpbXBv
cnQgc3VicHJvY2VzcworaW1wb3J0IG9zCisKK2hlcmUgPSBvcy5wYXRoLmRpcm5hbWUoX19maWxl
X18pCisKK3RlbXBsYXRlX3ByZWZpeCA9ICIiIjwhZG9jdHlwZSBodG1sPgorJShkb2N1bWVudEVs
ZW1lbnQpczxtZXRhIGNoYXJzZXQ9dXRmLTg+CisiIiIKK3RlbXBsYXRlX2xvbmdfdGltZW91dCA9
ICI8bWV0YSBuYW1lPXRpbWVvdXQgY29udGVudD1sb25nPlxuIgorCit0ZW1wbGF0ZV9ib2R5X3Ro
ID0gIiIiPHRpdGxlPjwvdGl0bGU+Cis8c2NyaXB0IHNyYz0vcmVzb3VyY2VzL3Rlc3RoYXJuZXNz
LmpzPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9L3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5q
cz48L3NjcmlwdD4KKzxzY3JpcHQ+CisKKzwvc2NyaXB0PgorIiIiCisKK3RlbXBsYXRlX2JvZHlf
cmVmdGVzdCA9ICIiIjx0aXRsZT48L3RpdGxlPgorPGxpbmsgcmVsPSUobWF0Y2gpcyBocmVmPSUo
cmVmKXM+CisiIiIKKwordGVtcGxhdGVfYm9keV9yZWZ0ZXN0X3dhaXQgPSAiIiI8c2NyaXB0IHNy
Yz0iL2NvbW1vbi9yZWZ0ZXN0LXdhaXQuanMiPjwvc2NyaXB0PgorIiIiCisKK2RlZiBnZXRfcGFy
c2VyKCk6CisgICAgaW1wb3J0IGFyZ3BhcnNlCisgICAgcCA9IGFyZ3BhcnNlLkFyZ3VtZW50UGFy
c2VyKCkKKyAgICBwLmFkZF9hcmd1bWVudCgiLS1uby1lZGl0b3IiLCBhY3Rpb249InN0b3JlX3Ry
dWUiLAorICAgICAgICAgICAgICAgICAgIGhlbHA9IkRvbid0IHRyeSB0byBvcGVuIHRoZSB0ZXN0
IGluIGFuIGVkaXRvciIpCisgICAgcC5hZGRfYXJndW1lbnQoIi1lIiwgIi0tZWRpdG9yIiwgYWN0
aW9uPSJzdG9yZSIsIGhlbHA9IkVkaXRvciB0byB1c2UiKQorICAgIHAuYWRkX2FyZ3VtZW50KCIt
LWxvbmctdGltZW91dCIsIGFjdGlvbj0ic3RvcmVfdHJ1ZSIsCisgICAgICAgICAgICAgICAgICAg
aGVscD0iVGVzdCBzaG91bGQgYmUgZ2l2ZW4gYSBsb25nIHRpbWVvdXQgKHR5cGljYWxseSA2MHMg
cmF0aGVyIHRoYW4gMTBzLCBidXQgdmFyaWVzIGRlcGVuZGluZyBvbiBlbnZpcm9ubWVudCkiKQor
ICAgIHAuYWRkX2FyZ3VtZW50KCItLW92ZXJ3cml0ZSIsIGFjdGlvbj0ic3RvcmVfdHJ1ZSIsCisg
ICAgICAgICAgICAgICAgICAgaGVscD0iQWxsb3cgb3ZlcndyaXRpbmcgYW4gZXhpc3RpbmcgdGVz
dCBmaWxlIikKKyAgICBwLmFkZF9hcmd1bWVudCgiLXIiLCAiLS1yZWZ0ZXN0IiwgYWN0aW9uPSJz
dG9yZV90cnVlIiwKKyAgICAgICAgICAgICAgICAgICBoZWxwPSJDcmVhdGUgYSByZWZ0ZXN0IHJh
dGhlciB0aGFuIGEgdGVzdGhhcm5lc3MgKGpzKSB0ZXN0IiksCisgICAgcC5hZGRfYXJndW1lbnQo
Ii1tIiwgIi0tcmVmZXJlbmNlIiwgZGVzdD0icmVmIiwgaGVscD0iUGF0aCB0byB0aGUgcmVmZXJl
bmNlIGZpbGUiKQorICAgIHAuYWRkX2FyZ3VtZW50KCItLW1pc21hdGNoIiwgYWN0aW9uPSJzdG9y
ZV90cnVlIiwKKyAgICAgICAgICAgICAgICAgICBoZWxwPSJDcmVhdGUgYSBtaXNtYXRjaCByZWZ0
ZXN0IikKKyAgICBwLmFkZF9hcmd1bWVudCgiLS13YWl0IiwgYWN0aW9uPSJzdG9yZV90cnVlIiwK
KyAgICAgICAgICAgICAgICAgICBoZWxwPSJDcmVhdGUgYSByZWZ0ZXN0IHRoYXQgd2FpdHMgdW50
aWwgdGFrZVNjcmVlbnNob3QoKSBpcyBjYWxsZWQiKQorICAgIHAuYWRkX2FyZ3VtZW50KCItLXRl
c3RzLXJvb3QiLCBhY3Rpb249InN0b3JlIiwgZGVmYXVsdD1vcy5wYXRoLmpvaW4oaGVyZSwgIi4u
IiwgIi4uIiksCisgICAgICAgICAgICAgICAgICAgaGVscD0iUGF0aCB0byB0aGUgcm9vdCBvZiB0
aGUgd3B0IGRpcmVjdG9yeSIpCisgICAgcC5hZGRfYXJndW1lbnQoInBhdGgiLCBhY3Rpb249InN0
b3JlIiwgaGVscD0iUGF0aCB0byB0aGUgdGVzdCBmaWxlIikKKyAgICByZXR1cm4gcAorCisKKwor
ZGVmIHJlbF9wYXRoKHBhdGgsIHRlc3RzX3Jvb3QpOgorICAgIGlmIHBhdGggaXMgTm9uZToKKyAg
ICAgICAgcmV0dXJuCisKKyAgICBhYnNfcGF0aCA9IG9zLnBhdGgubm9ybXBhdGgob3MucGF0aC5h
YnNwYXRoKHBhdGgpKQorICAgIHJldHVybiBvcy5wYXRoLnJlbHBhdGgoYWJzX3BhdGgsIHRlc3Rz
X3Jvb3QpCisKKworZGVmIHJ1bihfdmVudiwgKiprd2FyZ3MpOgorICAgIHBhdGggPSByZWxfcGF0
aChrd2FyZ3NbInBhdGgiXSwga3dhcmdzWyJ0ZXN0c19yb290Il0pCisgICAgcmVmX3BhdGggPSBy
ZWxfcGF0aChrd2FyZ3NbInJlZiJdLCBrd2FyZ3NbInRlc3RzX3Jvb3QiXSkKKworICAgIGlmIGt3
YXJnc1sicmVmIl06CisgICAgICAgIGt3YXJnc1sicmVmdGVzdCJdID0gVHJ1ZQorCisgICAgaWYg
Ii4uIiBpbiBwYXRoOgorICAgICAgICBwcmludCgiIiJUZXN0IHBhdGggJXMgaXMgbm90IHVuZGVy
IHdwdCByb290LiIiIiAlIHBhdGgpCisgICAgICAgIHJldHVybiAxCisKKyAgICBpZiByZWZfcGF0
aCBhbmQgIi4uIiBpbiByZWZfcGF0aDoKKyAgICAgICAgcHJpbnQoIiIiUmVmZXJlbmNlIHBhdGgg
JXMgaXMgbm90IHVuZGVyIHdwdCByb290IiIiICUgcmVmX3BhdGgpCisgICAgICAgIHJldHVybiAx
CisKKworICAgIGlmIG9zLnBhdGguZXhpc3RzKHBhdGgpIGFuZCBub3Qga3dhcmdzWyJvdmVyd3Jp
dGUiXToKKyAgICAgICAgcHJpbnQoIlRlc3QgcGF0aCBhbHJlYWR5IGV4aXN0cywgcGFzcyAtLW92
ZXJ3cml0ZSB0byByZXBsYWNlIikKKyAgICAgICAgcmV0dXJuIDEKKworICAgIGlmIGt3YXJnc1si
bWlzbWF0Y2giXSBhbmQgbm90IGt3YXJnc1sicmVmdGVzdCJdOgorICAgICAgICBwcmludCgiLS1t
aXNtYXRjaCBvbmx5IG1ha2VzIHNlbnNlIGZvciBhIHJlZnRlc3QiKQorICAgICAgICByZXR1cm4g
MQorCisgICAgaWYga3dhcmdzWyJ3YWl0Il0gYW5kIG5vdCBrd2FyZ3NbInJlZnRlc3QiXToKKyAg
ICAgICAgcHJpbnQoIi0td2FpdCBvbmx5IG1ha2VzIHNlbnNlIGZvciBhIHJlZnRlc3QiKQorICAg
ICAgICByZXR1cm4gMQorCisgICAgYXJncyA9IHsiZG9jdW1lbnRFbGVtZW50IjogIjxodG1sIGNs
YXNzPXJlZnRlc3Qtd2FpdD5cbiIgaWYga3dhcmdzWyJ3YWl0Il0gZWxzZSAiIn0KKyAgICB0ZW1w
bGF0ZSA9IHRlbXBsYXRlX3ByZWZpeCAlIGFyZ3MKKyAgICBpZiBrd2FyZ3NbImxvbmdfdGltZW91
dCJdOgorICAgICAgICB0ZW1wbGF0ZSArPSB0ZW1wbGF0ZV9sb25nX3RpbWVvdXQKKworICAgIGlm
IGt3YXJnc1sicmVmdGVzdCJdOgorICAgICAgICBhcmdzID0geyJtYXRjaCI6ICJtYXRjaCIgaWYg
bm90IGt3YXJnc1sibWlzbWF0Y2giXSBlbHNlICJtaXNtYXRjaCIsCisgICAgICAgICAgICAgICAg
InJlZiI6IG9zLnBhdGgucmVscGF0aChyZWZfcGF0aCwgcGF0aCkgaWYga3dhcmdzWyJyZWYiXSBl
bHNlICciIid9CisgICAgICAgIHRlbXBsYXRlICs9IHRlbXBsYXRlX2JvZHlfcmVmdGVzdCAlIGFy
Z3MKKyAgICAgICAgaWYga3dhcmdzWyJ3YWl0Il06CisgICAgICAgICAgICB0ZW1wbGF0ZSArPSB0
ZW1wbGF0ZV9ib2R5X3JlZnRlc3Rfd2FpdAorICAgIGVsc2U6CisgICAgICAgIHRlbXBsYXRlICs9
IHRlbXBsYXRlX2JvZHlfdGgKKyAgICB0cnk6CisgICAgICAgIG9zLm1ha2VkaXJzKG9zLnBhdGgu
ZGlybmFtZShwYXRoKSkKKyAgICBleGNlcHQgT1NFcnJvcjoKKyAgICAgICAgcGFzcworICAgIHdp
dGggb3BlbihwYXRoLCAidyIpIGFzIGY6CisgICAgICAgIGYud3JpdGUodGVtcGxhdGUpCisKKyAg
ICByZWZfcGF0aCA9IGt3YXJnc1sicmVmIl0KKyAgICBpZiByZWZfcGF0aCBhbmQgbm90IG9zLnBh
dGguZXhpc3RzKHJlZl9wYXRoKToKKyAgICAgICAgd2l0aCBvcGVuKHJlZl9wYXRoLCAidyIpIGFz
IGY6CisgICAgICAgICAgICBmLndyaXRlKHRlbXBsYXRlX3ByZWZpeCAlIHsiZG9jdW1lbnRFbGVt
ZW50IjogIiJ9KQorCisgICAgaWYga3dhcmdzWyJub19lZGl0b3IiXToKKyAgICAgICAgZWRpdG9y
ID0gTm9uZQorICAgIGVsaWYga3dhcmdzWyJlZGl0b3IiXToKKyAgICAgICAgZWRpdG9yID0ga3dh
cmdzWyJlZGl0b3IiXQorICAgIGVsaWYgIlZJU1VBTCIgaW4gb3MuZW52aXJvbjoKKyAgICAgICAg
ZWRpdG9yID0gb3MuZW52aXJvblsiVklTVUFMIl0KKyAgICBlbGlmICJFRElUT1IiIGluIG9zLmVu
dmlyb246CisgICAgICAgIGVkaXRvciA9IG9zLmVudmlyb25bIkVESVRPUiJdCisgICAgZWxzZToK
KyAgICAgICAgZWRpdG9yID0gTm9uZQorCisgICAgcHJvYyA9IE5vbmUKKyAgICBpZiBlZGl0b3I6
CisgICAgICAgIGlmIHJlZl9wYXRoOgorICAgICAgICAgICAgcGF0aCA9ICIlcyAlcyIgJSAocGF0
aCwgcmVmX3BhdGgpCisgICAgICAgIHByb2MgPSBzdWJwcm9jZXNzLlBvcGVuKCIlcyAlcyIgJSAo
ZWRpdG9yLCBwYXRoKSwgc2hlbGw9VHJ1ZSkKKyAgICBlbHNlOgorICAgICAgICBwcmludCgiQ3Jl
YXRlZCB0ZXN0ICVzIiAlIHBhdGgpCisKKyAgICBpZiBwcm9jOgorICAgICAgICBwcm9jLndhaXQo
KQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy93cHQvaW5zdGFsbC5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvd3B0L2luc3RhbGwucHkKaW5kZXggZDc3OTY1MWM5OTAuLjI0OTE1
ZjBjOThkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3dwdC9pbnN0YWxsLnB5CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0L2luc3RhbGwucHkKQEAgLTIsMjAgKzIsNjgg
QEAgaW1wb3J0IGFyZ3BhcnNlCiBpbXBvcnQgYnJvd3NlcgogaW1wb3J0IHN5cwogCisKK2xhdGVz
dF9jaGFubmVscyA9IHsKKyAgICAnZmlyZWZveCc6ICduaWdodGx5JywKKyAgICAnY2hyb21lJzog
J2RldicsCisgICAgJ2Nocm9tZV9hbmRyb2lkJzogJ2RldicsCisgICAgJ2VkZ2VjaHJvbWl1bSc6
ICdkZXYnLAorICAgICdzYWZhcmknOiAncHJldmlldycsCisgICAgJ3NlcnZvJzogJ25pZ2h0bHkn
Cit9CisKK2NoYW5uZWxfYnlfbmFtZSA9IHsKKyAgICAnc3RhYmxlJzogJ3N0YWJsZScsCisgICAg
J3JlbGVhc2UnOiAnc3RhYmxlJywKKyAgICAnYmV0YSc6ICdiZXRhJywKKyAgICAnbmlnaHRseSc6
IGxhdGVzdF9jaGFubmVscywKKyAgICAnZGV2JzogbGF0ZXN0X2NoYW5uZWxzLAorICAgICdwcmV2
aWV3JzogbGF0ZXN0X2NoYW5uZWxzLAorICAgICdleHBlcmltZW50YWwnOiBsYXRlc3RfY2hhbm5l
bHMsCisgICAgJ2NhbmFyeSc6ICdjYW5hcnknLAorfQorCisKIGRlZiBnZXRfcGFyc2VyKCk6Ci0g
ICAgcGFyc2VyID0gYXJncGFyc2UuQXJndW1lbnRQYXJzZXIoKQotICAgIHBhcnNlci5hZGRfYXJn
dW1lbnQoJ2Jyb3dzZXInLCBjaG9pY2VzPVsnZmlyZWZveCcsICdjaHJvbWUnXSwKKyAgICBwYXJz
ZXIgPSBhcmdwYXJzZS5Bcmd1bWVudFBhcnNlcihkZXNjcmlwdGlvbj0iIiJJbnN0YWxsIGEgZ2l2
ZW4gYnJvd3NlciBvciB3ZWJkcml2ZXIgZnJvbnRlbmQuCisKKyAgICBGb3IgY29udmVuaWVuY2Ug
dGhlIHJlbGVhc2UgY2hhbm5lbCBvZiB0aGUgYnJvd3NlciBhY2NlcHRzIHZhcmlvdXMgc3BlbGxp
bmdzLAorICAgIGJ1dCB3ZSBhY3R1YWxseSBzdXBwb3J0IGF0IG1vc3QgdGhyZWUgdmFyaWFudHM7
IHdoYXRldmVyIHRoZSBsYXRlc3QgZGV2ZWxvcG1lbnQKKyAgICByZWxlYXNlIGlzIChlLmcuIEZp
cmVmb3ggbmlnaHRseSBvciBDaHJvbWUgZGV2KSwgdGhlIGxhdGVzdCBiZXRhIHJlbGVhc2UsIGFu
ZAorICAgIHRoZSBtb3N0IHJlY2VudCBzdGFibGUgcmVsZWFzZS4iIiIpCisgICAgcGFyc2VyLmFk
ZF9hcmd1bWVudCgnYnJvd3NlcicsIGNob2ljZXM9WydmaXJlZm94JywgJ2Nocm9tZScsICdzZXJ2
byddLAogICAgICAgICAgICAgICAgICAgICAgICAgaGVscD0nbmFtZSBvZiB3ZWIgYnJvd3NlciBw
cm9kdWN0JykKICAgICBwYXJzZXIuYWRkX2FyZ3VtZW50KCdjb21wb25lbnQnLCBjaG9pY2VzPVsn
YnJvd3NlcicsICd3ZWJkcml2ZXInXSwKICAgICAgICAgICAgICAgICAgICAgICAgIGhlbHA9J25h
bWUgb2YgY29tcG9uZW50JykKKyAgICBwYXJzZXIuYWRkX2FyZ3VtZW50KCctLWNoYW5uZWwnLCBj
aG9pY2VzPWNoYW5uZWxfYnlfbmFtZS5rZXlzKCksCisgICAgICAgICAgICAgICAgICAgICAgICBk
ZWZhdWx0PSJuaWdodGx5IiwgaGVscD0nTmFtZSBvZiBicm93c2VyIHJlbGVhc2UgY2hhbm5lbC4g
JworICAgICAgICAgICAgICAgICAgICAgICAgJyJzdGFibGUiIGFuZCAicmVsZWFzZSIgYXJlIHN5
bm9ueW1zIGZvciB0aGUgbGF0ZXN0IGJyb3dzZXIgc3RhYmxlIHJlbGVhc2UsJworICAgICAgICAg
ICAgICAgICAgICAgICAgJyJuaWdodGx5IiwgImRldiIsICJleHBlcmltZW50YWwiLCBhbmQgInBy
ZXZpZXciIGFyZSBhbGwgc3lub255bXMgZm9yICcKKyAgICAgICAgICAgICAgICAgICAgICAgICd0
aGUgbGF0ZXN0IGF2YWlsYWJsZSBkZXZlbG9wbWVudCByZWxlYXNlLiBGb3IgV2ViRHJpdmVyIGlu
c3RhbGxzLCAnCisgICAgICAgICAgICAgICAgICAgICAgICAnd2UgYXR0ZW1wdCB0byBzZWxlY3Qg
YW4gYXBwcm9wcmlhdGUsIGNvbXBhdGlibGUsIHZlcnNpb24gZm9yIHRoZSAnCisgICAgICAgICAg
ICAgICAgICAgICAgICAnbGF0ZXN0IGJyb3dzZXIgcmVsZWFzZSBvbiB0aGUgc2VsZWN0ZWQgY2hh
bm5lbC4nKQorICAgIHBhcnNlci5hZGRfYXJndW1lbnQoJy0tZG93bmxvYWQtb25seScsIGFjdGlv
bj0ic3RvcmVfdHJ1ZSIsCisgICAgICAgICAgICAgICAgICAgICAgICBoZWxwPSJEb3dubG9hZCB0
aGUgc2VsZWN0ZWQgY29tcG9uZW50IGJ1dCBkb24ndCBpbnN0YWxsIGl0IikKICAgICBwYXJzZXIu
YWRkX2FyZ3VtZW50KCctZCcsICctLWRlc3RpbmF0aW9uJywKICAgICAgICAgICAgICAgICAgICAg
ICAgIGhlbHA9J2ZpbGVzeXN0ZW0gZGlyZWN0b3J5IHRvIHBsYWNlIHRoZSBjb21wb25lbnQnKQog
ICAgIHJldHVybiBwYXJzZXIKIAogCitkZWYgZ2V0X2NoYW5uZWwoYnJvd3NlciwgY2hhbm5lbCk6
CisgICAgY2hhbm5lbCA9IGNoYW5uZWxfYnlfbmFtZVtjaGFubmVsXQorICAgIGlmIGlzaW5zdGFu
Y2UoY2hhbm5lbCwgZGljdCk6CisgICAgICAgIGNoYW5uZWwgPSBjaGFubmVsLmdldChicm93c2Vy
KQorICAgIHJldHVybiBjaGFubmVsCisKKwogZGVmIHJ1bih2ZW52LCAqKmt3YXJncyk6CiAgICAg
YnJvd3NlciA9IGt3YXJnc1siYnJvd3NlciJdCiAgICAgZGVzdGluYXRpb24gPSBrd2FyZ3NbImRl
c3RpbmF0aW9uIl0KKyAgICBjaGFubmVsID0gZ2V0X2NoYW5uZWwoYnJvd3Nlciwga3dhcmdzWyJj
aGFubmVsIl0pCisKKyAgICBpZiBjaGFubmVsICE9IGt3YXJnc1siY2hhbm5lbCJdOgorICAgICAg
ICBwcmludCgiSW50ZXJwcmV0aW5nIGNoYW5uZWwgJyVzJyBhcyAnJXMnIiAlIChrd2FyZ3NbImNo
YW5uZWwiXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgY2hhbm5lbCkpCiAKICAgICBpZiBkZXN0aW5hdGlvbiBpcyBOb25lOgogICAgICAgICBp
ZiB2ZW52OgpAQCAtMjcsMTUgKzc1LDIyIEBAIGRlZiBydW4odmVudiwgKiprd2FyZ3MpOgogICAg
ICAgICAgICAgcmFpc2UgYXJncGFyc2UuQXJndW1lbnRFcnJvcihOb25lLAogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiTm8gLS1kZXN0aW5hdGlvbiBhcmd1bWVudCwg
YW5kIG5vIGRlZmF1bHQgZm9yIHRoZSBlbnZpcm9ubWVudCIpCiAKLSAgICBpbnN0YWxsKGJyb3dz
ZXIsIGt3YXJnc1siY29tcG9uZW50Il0sIGRlc3RpbmF0aW9uKQorICAgIGluc3RhbGwoYnJvd3Nl
ciwga3dhcmdzWyJjb21wb25lbnQiXSwgZGVzdGluYXRpb24sIGNoYW5uZWwsCisgICAgICAgICAg
ICBkb3dubG9hZF9vbmx5PWt3YXJnc1siZG93bmxvYWRfb25seSJdKQorCisKK2RlZiBpbnN0YWxs
KG5hbWUsIGNvbXBvbmVudCwgZGVzdGluYXRpb24sIGNoYW5uZWw9Im5pZ2h0bHkiLCBsb2dnZXI9
Tm9uZSwgZG93bmxvYWRfb25seT1GYWxzZSk6CisgICAgaWYgbG9nZ2VyIGlzIE5vbmU6CisgICAg
ICAgIGltcG9ydCBsb2dnaW5nCisgICAgICAgIGxvZ2dlciA9IGxvZ2dpbmcuZ2V0TG9nZ2VyKCJp
bnN0YWxsIikKIAorICAgIHByZWZpeCA9ICJkb3dubG9hZCIgaWYgZG93bmxvYWRfb25seSBlbHNl
ICJpbnN0YWxsIgorICAgIHN1ZmZpeCA9ICJfd2ViZHJpdmVyIiBpZiBjb21wb25lbnQgPT0gJ3dl
YmRyaXZlcicgZWxzZSAiIgogCi1kZWYgaW5zdGFsbChuYW1lLCBjb21wb25lbnQsIGRlc3RpbmF0
aW9uKToKLSAgICBpZiBjb21wb25lbnQgPT0gJ3dlYmRyaXZlcic6Ci0gICAgICAgIG1ldGhvZCA9
ICdpbnN0YWxsX3dlYmRyaXZlcicKLSAgICBlbHNlOgotICAgICAgICBtZXRob2QgPSAnaW5zdGFs
bCcKKyAgICBtZXRob2QgPSBwcmVmaXggKyBzdWZmaXgKIAogICAgIHN1YmNsYXNzID0gZ2V0YXR0
cihicm93c2VyLCBuYW1lLnRpdGxlKCkpCiAgICAgc3lzLnN0ZG91dC53cml0ZSgnTm93IGluc3Rh
bGxpbmcgJXMgJXMuLi5cbicgJSAobmFtZSwgY29tcG9uZW50KSkKLSAgICBnZXRhdHRyKHN1YmNs
YXNzKCksIG1ldGhvZCkoZGVzdD1kZXN0aW5hdGlvbikKKyAgICBwYXRoID0gZ2V0YXR0cihzdWJj
bGFzcyhsb2dnZXIpLCBtZXRob2QpKGRlc3Q9ZGVzdGluYXRpb24sIGNoYW5uZWw9Y2hhbm5lbCkK
KyAgICBpZiBwYXRoOgorICAgICAgICBzeXMuc3Rkb3V0LndyaXRlKCdCaW5hcnkgJXMgYXMgJXNc
bicgJSAoImRvd25sb2FkZWQiIGlmIGRvd25sb2FkX29ubHkgZWxzZSAiaW5zdGFsbGVkIiwgcGF0
aCwpKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy93cHQvbWFjaC1lbXVsYXRvci5tYW5pZmVzdCBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0L21hY2gtZW11bGF0b3IubWFuaWZl
c3QKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjQ5ZjQ2YzYwZmZlCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy93cHQvbWFjaC1lbXVsYXRvci5tYW5pZmVzdApAQCAtMCwwICsxLDEwIEBACitb
CisgIHsKKyAgICAiYWxnb3JpdGhtIjogInNoYTUxMiIsCisgICAgInZpc2liaWxpdHkiOiAicHVi
bGljIiwKKyAgICAiZmlsZW5hbWUiOiAiQVZEcy14ODYtYW5kcm9pZC03LjAtYnVpbGQtMjAxOS0w
NC0yMy50YXIuZ3oiLAorICAgICJ1bnBhY2siOiB0cnVlLAorICAgICJkaWdlc3QiOiAiM2NjMDM3
ODlhYWJmYzY5MmM3NmU1YWU0ZWJlZmE3YTU2MjhmMzg2ZGYzYzk3NzhhZjI0ODVhNDliMjQwMWQ0
YWQ2NjMwMWJlNmMzZDExNmZmN2QzZWU3NDdlMDBjZTYzMzIzODEyMTZmNTVhNzI1M2I2YjViNjAw
ZDA1OWJhYTIiLAorICAgICJzaXplIjogNDQ1MjUwOTM1CisgIH0KK10KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0L21hcmtk
b3duLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy93cHQvbWFya2Rvd24ucHkKaW5kZXggOGI1ZmY4MDc5ZGYuLjQzMDIwY2RhZmU2IDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dw
dC9tYXJrZG93bi5weQorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3dwdC9tYXJrZG93bi5weQpAQCAtMSwzICsxLDUgQEAKK2Zyb20gZnVuY3Rv
b2xzIGltcG9ydCByZWR1Y2UKKwogZGVmIGZvcm1hdF9jb21tZW50X3RpdGxlKHByb2R1Y3QpOgog
ICAgICIiIlByb2R1Y2UgYSBNYXJrZG93bi1mb3JtYXR0ZWQgc3RyaW5nIGJhc2VkIG9uIGEgZ2l2
ZW4gInByb2R1Y3QiLS1hIHN0cmluZwogICAgIGNvbnRhaW5pbmcgYSBicm93c2VyIGlkZW50aWZp
ZXIgb3B0aW9uYWxseSBmb2xsb3dlZCBieSBhIGNvbG9uIGFuZCBhCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdC9wYXRocyBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0L3Bh
dGhzCmluZGV4IDBlZjEzYzk2ZTM4Li4zNTg2N2M0Y2NiZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHQvcGF0aHMKKysrIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHQvcGF0
aHMKQEAgLTEsNCArMSw1IEBACiB0b29scy9jaS8KK3Rvb2xzL2RvY2tlci8KIHRvb2xzL2xpbnQv
CiB0b29scy9tYW5pZmVzdC8KIHRvb2xzL3NlcnZlLwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHQvcmVxdWlyZW1lbnRzLnR4
dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0
L3JlcXVpcmVtZW50cy50eHQKaW5kZXggNDZjNGIxM2EzYmYuLjU2NjA4M2NiNmJlIDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dw
dC9yZXF1aXJlbWVudHMudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvd3B0L3JlcXVpcmVtZW50cy50eHQKQEAgLTEgKzEgQEAKLXJlcXVl
c3RzPT0yLjE5LjEKK3JlcXVlc3RzPT0yLjIyLjAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0L3Jldmxpc3QucHkgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdC9yZXZsaXN0
LnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5jNGNiYzI5NDNiNwot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvd3B0L3Jldmxpc3QucHkKQEAgLTAsMCArMSwxMTkgQEAKK2ltcG9ydCBhcmdw
YXJzZQoraW1wb3J0IGxvZ2dpbmcKK2ltcG9ydCBvcworaW1wb3J0IHRpbWUKK2Zyb20gdG9vbHMu
d3B0LnRlc3RmaWxlcyBpbXBvcnQgZ2V0X2dpdF9jbWQKKworaGVyZSA9IG9zLnBhdGguZGlybmFt
ZShfX2ZpbGVfXykKK3dwdF9yb290ID0gb3MucGF0aC5hYnNwYXRoKG9zLnBhdGguam9pbihoZXJl
LCBvcy5wYXJkaXIsIG9zLnBhcmRpcikpCisKK2xvZ2dlciA9IGxvZ2dpbmcuZ2V0TG9nZ2VyKCkK
KworTVlQWSA9IEZhbHNlCitpZiBNWVBZOgorICAgICMgTVlQWSBpcyBzZXQgdG8gVHJ1ZSB3aGVu
IHJ1biB1bmRlciBNeXB5LgorICAgIGZyb20gdHlwaW5nIGltcG9ydCBBbnkKKyAgICBmcm9tIHR5
cGluZyBpbXBvcnQgRGljdAorICAgIGZyb20gdHlwaW5nIGltcG9ydCBMaXN0CisgICAgZnJvbSB0
eXBpbmcgaW1wb3J0IFRleHQKKworCitkZWYgY2FsY3VsYXRlX2N1dG9mZl9kYXRlKHVudGlsLCBl
cG9jaCwgb2Zmc2V0KToKKyAgICByZXR1cm4gKCgoKHVudGlsIC0gb2Zmc2V0KSAvLyBlcG9jaCkp
ICogZXBvY2gpICsgb2Zmc2V0CisKKworZGVmIHBhcnNlX2Vwb2NoKHN0cmluZyk6CisgICAgIyB0
eXBlOiAoc3RyKSAtPiBpbnQKKyAgICBVTklUX0RJQ1QgPSB7ImgiOiAzNjAwLCAiZCI6IDg2NDAw
LCAidyI6IDYwNDgwMH0KKyAgICBiYXNlID0gc3RyaW5nWzotMV0KKyAgICB1bml0ID0gc3RyaW5n
Wy0xOl0KKyAgICBpZiBiYXNlLmlzZGlnaXQoKSBhbmQgdW5pdCBpbiBVTklUX0RJQ1Q6CisgICAg
ICAgIHJldHVybiBpbnQoYmFzZSkgKiBVTklUX0RJQ1RbdW5pdF0KKyAgICByYWlzZSBhcmdwYXJz
ZS5Bcmd1bWVudFR5cGVFcnJvcignbXVzdCBiZSBkaWdpdHMgZm9sbG93ZWQgYnkgaC9kL3cnKQor
CisKK2RlZiBnZXRfdGFnZ2VkX3JldmlzaW9ucyhwYXR0ZXJuKToKKyAgICAjIHR5cGU6IChieXRl
cykgLT4gTGlzdFsuLi4sIERpY3RdCisgICAgJycnCisgICAgUmV0dXJucyB0aGUgdGFnZ2VkIHJl
dmlzaW9ucyBpbmRleGVkIGJ5IHRoZSBjb21taXR0ZXIgZGF0ZS4KKyAgICAnJycKKyAgICBnaXQg
PSBnZXRfZ2l0X2NtZCh3cHRfcm9vdCkKKyAgICBhcmdzID0gWworICAgICAgICBwYXR0ZXJuLAor
ICAgICAgICAnLS1zb3J0PS1jb21taXR0ZXJkYXRlJywKKyAgICAgICAgJy0tZm9ybWF0PSUocmVm
bmFtZTpsc3RyaXA9MikgJShvYmplY3RuYW1lKSAlKGNvbW1pdHRlcmRhdGU6cmF3KScsCisgICAg
ICAgICctLWNvdW50PTEwMDAwMCcKKyAgICBdCisgICAgZm9yIGxpbmUgaW4gZ2l0KCJmb3ItZWFj
aC1yZWYiLCAqYXJncykuc3BsaXRsaW5lcygpOgorICAgICAgICB0YWcsIGNvbW1pdCwgZGF0ZSwg
XyA9IGxpbmUuc3BsaXQoIiAiKQorICAgICAgICBkYXRlID0gaW50KGRhdGUpCisgICAgICAgIHlp
ZWxkIHRhZywgY29tbWl0LCBkYXRlCisKKworZGVmIGdldF9lcG9jaF9yZXZpc2lvbnMoZXBvY2gs
IHVudGlsLCBtYXhfY291bnQpOgorICAgICMgdHlwZTogKCoqQW55KSAtPiBMaXN0W1RleHRdCisg
ICAgbG9nZ2VyLmRlYnVnKCJnZXRfZXBvY2hfcmV2aXNpb25zKCVzLCAlcykiICUgKGVwb2NoLCBt
YXhfY291bnQpKQorICAgICMgU2V0IGFuIG9mZnNldCB0byBzdGFydCB0byBjb3VudCB0aGUgdGhl
IHdlZWtseSBlcG9jaCBmcm9tCisgICAgIyBNb25kYXkgMDA6MDA6MDAuIFRoaXMgaXMgcGFydGlj
dWxhcmx5IGltcG9ydGFudCBmb3IgdGhlIHdlZWtseSBlcG9jaAorICAgICMgYmVjYXVzZSBmaXgg
dGhlIHN0YXJ0IG9mIHRoZSBlcG9jaCB0byBNb25kYXkuIFRoaXMgb2Zmc2V0IGlzIGNhbGN1bGF0
ZWQKKyAgICAjIGZyb20gVGh1cnNkYXksIDEgSmFudWFyeSAxOTcwIDA6MDA6MDAgdG8gTW9uZGF5
LCA1IEphbnVhcnkgMTk3MCAwOjAwOjAwCisgICAgZXBvY2hfb2Zmc2V0ID0gMzQ1NjAwCisgICAg
Y291bnQgPSAwCisKKyAgICAjIEl0ZXJhdGVzIHRoZSB0YWdnZWQgcmV2aXNpb25zIGluIGRlc2Nl
bmRpbmcgb3JkZXIgZmluZGluZyB0aGUgbW9yZQorICAgICMgcmVjZW50IGNvbW1pdCBzdGlsbCBv
bGRlciB0aGFuIGEgImN1dG9mZl9kYXRlIiB2YWx1ZS4KKyAgICAjIFdoZW4gYSBjb21taXQgaXMg
Zm91bmQgImN1dG9mZl9kYXRlIiBpcyBzZXQgdG8gYSBuZXcgdmFsdWUgbXVsdGlwbGllciBvZgor
ICAgICMgImVwb2NoIiBidXQgc3RpbGwgYmVsb3cgb2YgdGhlIGRhdGUgb2YgdGhlIGN1cnJlbnQg
Y29tbWl0IGZvdW5kLgorICAgICMgVGhpcyBuZWVkZWQgdG8gZGVhbCB3aXRoIGludGVydmFscyB3
aGVyZSBubyBjYW5kaWRhdGVzIHdlcmUgZm91bmQKKyAgICAjIGZvciB0aGUgY3VycmVudCAiZXBv
Y2giIGFuZCB0aGUgbmV4dCBjYW5kaWRhdGUgZm91bmQgaXMgeWV0IGJlbG93CisgICAgIyB0aGUg
bG93ZXIgdmFsdWVzIG9mIHRoZSBpbnRlcnZhbCAoaXQgaXMgdGhlIGNhc2Ugb2YgSiBhbmQgSSBm
b3IgdGhlCisgICAgIyBpbnRlcnZhbCBiZXR3ZWVuIFdlZCBhbmQgVHVlLCBpbiB0aGUgZXhhbXBs
ZSkuIFRoZSBhbGdvcml0aG0gZml4CisgICAgIyB0aGUgbmV4dCAiY3V0b2ZmX2RhdGUiIHZhbHVl
IGJhc2VkIG9uIHRoZSBkYXRlIHZhbHVlIG9mIHRoZSBjdXJyZW50IG9uZQorICAgICMgc2tpcHBp
bmcgdGhlIGludGVybWVkaWF0ZSB2YWx1ZXMuCisgICAgIyBUaGUgbG9vcCBlbmRzIG9uY2Ugd2Ug
cmVhY2hlZCB0aGUgcmVxdWlyZWQgbnVtYmVyIG9mIHJldmlzaW9ucyB0byByZXR1cm4KKyAgICAj
IG9yIHRoZSBhcmUgbm8gbW9yZSB0YWdnZWQgcmV2aXNpb25zIG9yIHRoZSBjdXRvZmZfZGF0ZSBy
ZWFjaCB6ZXJvLgorICAgICMKKyAgICAjICAgRnJpICAgU2F0ICAgU3VuICAgTW9uICAgVHVlICAg
V2VkICAgVGh1ICAgRnJpICAgU2F0CisgICAgIyAgICB8ICAgICB8ICAgICB8ICAgICB8ICAgICB8
ICAgICB8ICAgICB8ICAgICB8ICAgICB8CisgICAgIyAtQS0tLUItQy0tLURFRi0tLUctLS1ILS1J
Si0tLS0tLS0tLS1LLS0tLS1MLU0tLS0tTi0tTy0tCisgICAgIyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCisgICAgIyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5vdworICAgICMgRXhwZWN0
ZWQgcmVzdWx0OiBOLE0sSyxKLEgsRyxGLEMsQQorCisgICAgY3V0b2ZmX2RhdGUgPSBjYWxjdWxh
dGVfY3V0b2ZmX2RhdGUodW50aWwsIGVwb2NoLCBlcG9jaF9vZmZzZXQpCisgICAgZm9yIF8sIGNv
bW1pdCwgZGF0ZSBpbiBnZXRfdGFnZ2VkX3JldmlzaW9ucygicmVmcy90YWdzL21lcmdlX3ByXyoi
KToKKyAgICAgICAgaWYgY291bnQgPj0gbWF4X2NvdW50OgorICAgICAgICAgICAgcmV0dXJuCisg
ICAgICAgIGlmIGRhdGUgPCBjdXRvZmZfZGF0ZToKKyAgICAgICAgICAgIHlpZWxkIGNvbW1pdAor
ICAgICAgICAgICAgY291bnQgKz0gMQorICAgICAgICAgICAgY3V0b2ZmX2RhdGUgPSBjYWxjdWxh
dGVfY3V0b2ZmX2RhdGUoZGF0ZSwgZXBvY2gsIGVwb2NoX29mZnNldCkKKworCitkZWYgZ2V0X3Bh
cnNlcigpOgorICAgICMgdHlwZTogKCkgLT4gYXJncGFyc2UuQXJndW1lbnRQYXJzZXIKKyAgICBw
YXJzZXIgPSBhcmdwYXJzZS5Bcmd1bWVudFBhcnNlcigpCisgICAgcGFyc2VyLmFkZF9hcmd1bWVu
dCgiLS1lcG9jaCIsCisgICAgICAgICAgICAgICAgICAgICAgICBkZWZhdWx0PSIxZCIsCisgICAg
ICAgICAgICAgICAgICAgICAgICB0eXBlPXBhcnNlX2Vwb2NoLAorICAgICAgICAgICAgICAgICAg
ICAgICAgaGVscD0icmVndWxhciBpbnRlcnZhbCBvZiB0aW1lIHNlbGVjdGVkIHRvIGdldCB0aGUg
IgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAidGFnZ2VkIHJldmlzaW9ucy4gVmFsaWQg
dmFsdWVzIGFyZSBkaWdpdHMgIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiZm9sbG93
ZWQgYnkgaC9kL3cgKGUueC4gOWgsIDlkLCA5dyAuLi4pIHdoZXJlICIKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgInRoZSBtaW1pbXVuIHNlbGVjdGFibGUgaW50ZXJ2YWwgaXMgb25lIGhv
dXIgIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiKDFoKSIpCisgICAgcGFyc2VyLmFk
ZF9hcmd1bWVudCgiLS1tYXgtY291bnQiLAorICAgICAgICAgICAgICAgICAgICAgICAgZGVmYXVs
dD0xLAorICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1pbnQsCisgICAgICAgICAgICAgICAg
ICAgICAgICBoZWxwPSJtYXhpbXVtIG51bWJlciBvZiByZXZpc2lvbnMgdG8gYmUgcmV0dXJuZWQg
YnkgIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAidGhlIGNvbW1hbmQiKQorICAgIHJl
dHVybiBwYXJzZXIKKworCitkZWYgcnVuX3Jldl9saXN0KCoqa3dhcmdzKToKKyAgICAjIHR5cGU6
ICgqKkFueSkgLT4gTm9uZQorICAgICMgImVwb2NoX3RocmVzaG9sZCIgaXMgYSBzYWZldHkgbWFy
Z2luLiBBZnRlciB0aGlzIHRpbWUgaXQgaXMgZmluZSB0bworICAgICMgYXNzdW1lIHRoYXQgYW55
IHRhZ3MgYXJlIGNyZWF0ZWQgYW5kIHB1c2hlZC4KKyAgICBlcG9jaF90aHJlc2hvbGQgPSA2MDAK
KyAgICB1bnRpbCA9IGludCh0aW1lLnRpbWUoKSkgLSBlcG9jaF90aHJlc2hvbGQKKyAgICBmb3Ig
bGluZSBpbiBnZXRfZXBvY2hfcmV2aXNpb25zKGt3YXJnc1siZXBvY2giXSwgdW50aWwsIGt3YXJn
c1sibWF4X2NvdW50Il0pOgorICAgICAgICBwcmludChsaW5lKQpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHQvcnVuLnB5IGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHQvcnVu
LnB5CmluZGV4IGYwNzJjZjdmMDIxLi40YzFmMmM5OTEyOCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHQvcnVuLnB5CisrKyBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0L3J1
bi5weQpAQCAtMywxMSArMywxMiBAQCBpbXBvcnQgb3MKIGltcG9ydCBwbGF0Zm9ybQogaW1wb3J0
IHN5cwogZnJvbSBkaXN0dXRpbHMuc3Bhd24gaW1wb3J0IGZpbmRfZXhlY3V0YWJsZQorZnJvbSBz
aXgubW92ZXMgaW1wb3J0IGlucHV0CiAKIHdwdF9yb290ID0gb3MucGF0aC5hYnNwYXRoKG9zLnBh
dGguam9pbihvcy5wYXRoLmRpcm5hbWUoX19maWxlX18pLCBvcy5wYXJkaXIsIG9zLnBhcmRpcikp
CiBzeXMucGF0aC5pbnNlcnQoMCwgb3MucGF0aC5hYnNwYXRoKG9zLnBhdGguam9pbih3cHRfcm9v
dCwgInRvb2xzIikpKQogCi1mcm9tIC4gaW1wb3J0IGJyb3dzZXIsIHV0aWxzLCB2aXJ0dWFsZW52
Citmcm9tIC4gaW1wb3J0IGJyb3dzZXIsIGluc3RhbGwsIHRlc3RmaWxlcywgdXRpbHMsIHZpcnR1
YWxlbnYKIGZyb20gLi5zZXJ2ZSBpbXBvcnQgc2VydmUKIAogbG9nZ2VyID0gTm9uZQpAQCAtNDQs
MTcgKzQ1LDMyIEBAIGRlZiBjcmVhdGVfcGFyc2VyKCk6CiAgICAgcGFyc2VyID0gYXJncGFyc2Uu
QXJndW1lbnRQYXJzZXIoYWRkX2hlbHA9RmFsc2UpCiAgICAgcGFyc2VyLmFkZF9hcmd1bWVudCgi
cHJvZHVjdCIsIGFjdGlvbj0ic3RvcmUiLAogICAgICAgICAgICAgICAgICAgICAgICAgaGVscD0i
QnJvd3NlciB0byBydW4gdGVzdHMgaW4iKQorICAgIHBhcnNlci5hZGRfYXJndW1lbnQoIi0tYWZm
ZWN0ZWQiLCBhY3Rpb249InN0b3JlIiwgZGVmYXVsdD1Ob25lLAorICAgICAgICAgICAgICAgICAg
ICAgICAgaGVscD0iUnVuIGFmZmVjdGVkIHRlc3RzIHNpbmNlIHJldmlzaCIpCiAgICAgcGFyc2Vy
LmFkZF9hcmd1bWVudCgiLS15ZXMiLCAiLXkiLCBkZXN0PSJwcm9tcHQiLCBhY3Rpb249InN0b3Jl
X2ZhbHNlIiwgZGVmYXVsdD1UcnVlLAogICAgICAgICAgICAgICAgICAgICAgICAgaGVscD0iRG9u
J3QgcHJvbXB0IGJlZm9yZSBpbnN0YWxsaW5nIGNvbXBvbmVudHMiKQogICAgIHBhcnNlci5hZGRf
YXJndW1lbnQoIi0taW5zdGFsbC1icm93c2VyIiwgYWN0aW9uPSJzdG9yZV90cnVlIiwKLSAgICAg
ICAgICAgICAgICAgICAgICAgIGhlbHA9Ikluc3RhbGwgdGhlIGxhdGVzdCBkZXZlbG9wbWVudCB2
ZXJzaW9uIG9mIHRoZSBicm93c2VyIikKKyAgICAgICAgICAgICAgICAgICAgICAgIGhlbHA9Iklu
c3RhbGwgdGhlIGJyb3dzZXIgZnJvbSB0aGUgcmVsZWFzZSBjaGFubmVsIHNwZWNpZmllZCBieSAt
LWNoYW5uZWwgIgorICAgICAgICAgICAgICAgICAgICAgICAgIihvciB0aGUgbmlnaHRseSBjaGFu
bmVsIGJ5IGRlZmF1bHQpLiIpCisgICAgcGFyc2VyLmFkZF9hcmd1bWVudCgiLS1jaGFubmVsIiwg
YWN0aW9uPSJzdG9yZSIsCisgICAgICAgICAgICAgICAgICAgICAgICBjaG9pY2VzPWluc3RhbGwu
Y2hhbm5lbF9ieV9uYW1lLmtleXMoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ9
Tm9uZSwgaGVscD0nTmFtZSBvZiBicm93c2VyIHJlbGVhc2UgY2hhbm5lbC4gJworICAgICAgICAg
ICAgICAgICAgICAgICAgJyJzdGFibGUiIGFuZCAicmVsZWFzZSIgYXJlIHN5bm9ueW1zIGZvciB0
aGUgbGF0ZXN0IGJyb3dzZXIgc3RhYmxlICcKKyAgICAgICAgICAgICAgICAgICAgICAgICdyZWxl
YXNlLCAibmlnaHRseSIsICJkZXYiLCAiZXhwZXJpbWVudGFsIiwgYW5kICJwcmV2aWV3IiBhcmUg
YWxsICcKKyAgICAgICAgICAgICAgICAgICAgICAgICdzeW5vbnltcyBmb3IgdGhlIGxhdGVzdCBh
dmFpbGFibGUgZGV2ZWxvcG1lbnQgcmVsZWFzZS4gKEZvciBXZWJEcml2ZXIgJworICAgICAgICAg
ICAgICAgICAgICAgICAgJ2luc3RhbGxzLCB3ZSBhdHRlbXB0IHRvIHNlbGVjdCBhbiBhcHByb3By
aWF0ZSwgY29tcGF0aWJsZSB2ZXJzaW9uIGZvciAnCisgICAgICAgICAgICAgICAgICAgICAgICAn
dGhlIGxhdGVzdCBicm93c2VyIHJlbGVhc2Ugb24gdGhlIHNlbGVjdGVkIGNoYW5uZWwuKSAnCisg
ICAgICAgICAgICAgICAgICAgICAgICAnVGhpcyBmbGFnIG92ZXJyaWRlcyAtLWJyb3dzZXItY2hh
bm5lbC4nKQogICAgIHBhcnNlci5fYWRkX2NvbnRhaW5lcl9hY3Rpb25zKHdwdGNvbW1hbmRsaW5l
LmNyZWF0ZV9wYXJzZXIoKSkKICAgICByZXR1cm4gcGFyc2VyCiAKIAotZGVmIGV4aXQobXNnKToK
LSAgICBsb2dnZXIuZXJyb3IobXNnKQotICAgIHN5cy5leGl0KDEpCitkZWYgZXhpdChtc2c9Tm9u
ZSk6CisgICAgaWYgbXNnOgorICAgICAgICBsb2dnZXIuY3JpdGljYWwobXNnKQorICAgICAgICBz
eXMuZXhpdCgxKQorICAgIGVsc2U6CisgICAgICAgIHN5cy5leGl0KDApCiAKIAogZGVmIGFyZ3Nf
Z2VuZXJhbChrd2FyZ3MpOgpAQCAtOTAsOSArMTA2LDkgQEAgb3RoZXJ3aXNlIGluc3RhbGwgT3Bl
blNTTCBhbmQgZW5zdXJlIHRoYXQgaXQncyBvbiB5b3VyICRQQVRILiIiIikKIAogCiBkZWYgY2hl
Y2tfZW52aXJvbihwcm9kdWN0KToKLSAgICBpZiBwcm9kdWN0IG5vdCBpbiAoImZpcmVmb3giLCAi
c2Vydm8iKToKKyAgICBpZiBwcm9kdWN0IG5vdCBpbiAoImFuZHJvaWRfd2VidmlldyIsICJjaHJv
bWUiLCAiY2hyb21lX2FuZHJvaWQiLCAiZmlyZWZveCIsICJmaXJlZm94X2FuZHJvaWQiLCAic2Vy
dm8iKToKICAgICAgICAgY29uZmlnX2J1aWxkZXIgPSBzZXJ2ZS5idWlsZF9jb25maWcob3MucGF0
aC5qb2luKHdwdF9yb290LCAiY29uZmlnLmpzb24iKSkKLSAgICAgICAgIyBPdnZlcmlkZSB0aGUg
cG9ydHMgdG8gYXZvaWQgbG9va2luZyBmb3IgZnJlZSBwb3J0cworICAgICAgICAjIE92ZXJyaWRl
IHRoZSBwb3J0cyB0byBhdm9pZCBsb29raW5nIGZvciBmcmVlIHBvcnRzCiAgICAgICAgIGNvbmZp
Z19idWlsZGVyLnNzbCA9IHsidHlwZSI6ICJub25lIn0KICAgICAgICAgY29uZmlnX2J1aWxkZXIu
cG9ydHMgPSB7Imh0dHAiOiBbODAwMF19CiAKQEAgLTEwNSwxMCArMTIxLDE1IEBAIGRlZiBjaGVj
a19lbnZpcm9uKHByb2R1Y3QpOgogCiAgICAgICAgIG1pc3NpbmdfaG9zdHMgPSBzZXQoZXhwZWN0
ZWRfaG9zdHMpCiAgICAgICAgIGlmIGlzX3dpbmRvd3M6Ci0gICAgICAgICAgICBob3N0c19wYXRo
ID0gIkM6XFdpbmRvd3NcU3lzdGVtMzJcZHJpdmVyc1xldGNcaG9zdHMiCisgICAgICAgICAgICBo
b3N0c19wYXRoID0gciIlc1xTeXN0ZW0zMlxkcml2ZXJzXGV0Y1xob3N0cyIgJSBvcy5lbnZpcm9u
LmdldCgiU3lzdGVtUm9vdCIsIHIiQzpcV2luZG93cyIpCiAgICAgICAgIGVsc2U6CiAgICAgICAg
ICAgICBob3N0c19wYXRoID0gIi9ldGMvaG9zdHMiCiAKKyAgICAgICAgaWYgb3MucGF0aC5hYnNw
YXRoKG9zLmN1cmRpcikgPT0gd3B0X3Jvb3Q6CisgICAgICAgICAgICB3cHRfcGF0aCA9ICJ3cHQi
CisgICAgICAgIGVsc2U6CisgICAgICAgICAgICB3cHRfcGF0aCA9IG9zLnBhdGguam9pbih3cHRf
cm9vdCwgIndwdCIpCisKICAgICAgICAgd2l0aCBvcGVuKGhvc3RzX3BhdGgsICJyIikgYXMgZjoK
ICAgICAgICAgICAgIGZvciBsaW5lIGluIGY6CiAgICAgICAgICAgICAgICAgbGluZSA9IGxpbmUu
c3BsaXQoIiMiLCAxKVswXS5zdHJpcCgpCkBAIC0xMjAsMTMgKzE0MSwxNCBAQCBkZWYgY2hlY2tf
ZW52aXJvbihwcm9kdWN0KToKICAgICAgICAgICAgICAgICBpZiBpc193aW5kb3dzOgogICAgICAg
ICAgICAgICAgICAgICBtZXNzYWdlID0gIiIiTWlzc2luZyBob3N0cyBmaWxlIGNvbmZpZ3VyYXRp
b24uIFJ1bgogCi1weXRob24gd3B0IG1ha2UtaG9zdHMtZmlsZSB8IE91dC1GaWxlICVTeXN0ZW1S
b290JVxTeXN0ZW0zMlxkcml2ZXJzXGV0Y1xob3N0cyAtRW5jb2RpbmcgYXNjaWkgLUFwcGVuZAor
cHl0aG9uICVzIG1ha2UtaG9zdHMtZmlsZSB8IE91dC1GaWxlICVzIC1FbmNvZGluZyBhc2NpaSAt
QXBwZW5kCiAKLWluIFBvd2VyU2hlbGwgd2l0aCBBZG1pbmlzdHJhdG9yIHByaXZpbGVnZXMuIiIi
ICUgaG9zdHNfcGF0aAoraW4gUG93ZXJTaGVsbCB3aXRoIEFkbWluaXN0cmF0b3IgcHJpdmlsZWdl
cy4iIiIgJSAod3B0X3BhdGgsIGhvc3RzX3BhdGgpCiAgICAgICAgICAgICAgICAgZWxzZToKICAg
ICAgICAgICAgICAgICAgICAgbWVzc2FnZSA9ICIiIk1pc3NpbmcgaG9zdHMgZmlsZSBjb25maWd1
cmF0aW9uLiBSdW4KIAotLi93cHQgbWFrZS1ob3N0cy1maWxlIHwgc3VkbyB0ZWUgLWEgJXMiIiIg
JSBob3N0c19wYXRoCislcyBtYWtlLWhvc3RzLWZpbGUgfCBzdWRvIHRlZSAtYSAlcyIiIiAlICgi
Li93cHQiIGlmIHdwdF9wYXRoID09ICJ3cHQiIGVsc2Ugd3B0X3BhdGgsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBob3N0c19wYXRoKQogICAgICAgICAgICAgICAg
IHJhaXNlIFdwdHJ1bkVycm9yKG1lc3NhZ2UpCiAKIApAQCAtMTM1LDcgKzE1Nyw3IEBAIGNsYXNz
IEJyb3dzZXJTZXR1cChvYmplY3QpOgogICAgIGJyb3dzZXJfY2xzID0gTm9uZQogCiAgICAgZGVm
IF9faW5pdF9fKHNlbGYsIHZlbnYsIHByb21wdD1UcnVlLCBzdWJfcHJvZHVjdD1Ob25lKToKLSAg
ICAgICAgc2VsZi5icm93c2VyID0gc2VsZi5icm93c2VyX2NscygpCisgICAgICAgIHNlbGYuYnJv
d3NlciA9IHNlbGYuYnJvd3Nlcl9jbHMobG9nZ2VyKQogICAgICAgICBzZWxmLnZlbnYgPSB2ZW52
CiAgICAgICAgIHNlbGYucHJvbXB0ID0gcHJvbXB0CiAgICAgICAgIHNlbGYuc3ViX3Byb2R1Y3Qg
PSBzdWJfcHJvZHVjdApAQCAtMTQ0LDE4ICsxNjYsMTkgQEAgY2xhc3MgQnJvd3NlclNldHVwKG9i
amVjdCk6CiAgICAgICAgIGlmIG5vdCBzZWxmLnByb21wdDoKICAgICAgICAgICAgIHJldHVybiBU
cnVlCiAgICAgICAgIHdoaWxlIFRydWU6Ci0gICAgICAgICAgICByZXNwID0gcmF3X2lucHV0KCJE
b3dubG9hZCBhbmQgaW5zdGFsbCAlcyBbWS9uXT8gIiAlIGNvbXBvbmVudCkuc3RyaXAoKS5sb3dl
cigpCisgICAgICAgICAgICByZXNwID0gaW5wdXQoIkRvd25sb2FkIGFuZCBpbnN0YWxsICVzIFtZ
L25dPyAiICUgY29tcG9uZW50KS5zdHJpcCgpLmxvd2VyKCkKICAgICAgICAgICAgIGlmIG5vdCBy
ZXNwIG9yIHJlc3AgPT0gInkiOgogICAgICAgICAgICAgICAgIHJldHVybiBUcnVlCiAgICAgICAg
ICAgICBlbGlmIHJlc3AgPT0gIm4iOgogICAgICAgICAgICAgICAgIHJldHVybiBGYWxzZQogCi0g
ICAgZGVmIGluc3RhbGwoc2VsZiwgdmVudik6CisgICAgZGVmIGluc3RhbGwoc2VsZiwgY2hhbm5l
bD1Ob25lKToKICAgICAgICAgaWYgc2VsZi5wcm9tcHRfaW5zdGFsbChzZWxmLm5hbWUpOgotICAg
ICAgICAgICAgcmV0dXJuIHNlbGYuYnJvd3Nlci5pbnN0YWxsKHZlbnYucGF0aCkKKyAgICAgICAg
ICAgIHJldHVybiBzZWxmLmJyb3dzZXIuaW5zdGFsbChzZWxmLnZlbnYucGF0aCwgY2hhbm5lbCkK
IAogICAgIGRlZiBpbnN0YWxsX3JlcXVpcmVtZW50cyhzZWxmKToKLSAgICAgICAgc2VsZi52ZW52
Lmluc3RhbGxfcmVxdWlyZW1lbnRzKG9zLnBhdGguam9pbih3cHRfcm9vdCwgInRvb2xzIiwgIndw
dHJ1bm5lciIsIHNlbGYuYnJvd3Nlci5yZXF1aXJlbWVudHMpKQorICAgICAgICBpZiBub3Qgc2Vs
Zi52ZW52LnNraXBfdmlydHVhbGVudl9zZXR1cDoKKyAgICAgICAgICAgIHNlbGYudmVudi5pbnN0
YWxsX3JlcXVpcmVtZW50cyhvcy5wYXRoLmpvaW4od3B0X3Jvb3QsICJ0b29scyIsICJ3cHRydW5u
ZXIiLCBzZWxmLmJyb3dzZXIucmVxdWlyZW1lbnRzKSkKIAogICAgIGRlZiBzZXR1cChzZWxmLCBr
d2FyZ3MpOgogICAgICAgICBzZWxmLnNldHVwX2t3YXJncyhrd2FyZ3MpCkBAIC0xNjcsNyArMTkw
LDEyIEBAIGNsYXNzIEZpcmVmb3goQnJvd3NlclNldHVwKToKIAogICAgIGRlZiBzZXR1cF9rd2Fy
Z3Moc2VsZiwga3dhcmdzKToKICAgICAgICAgaWYga3dhcmdzWyJiaW5hcnkiXSBpcyBOb25lOgot
ICAgICAgICAgICAgYmluYXJ5ID0gc2VsZi5icm93c2VyLmZpbmRfYmluYXJ5KHNlbGYudmVudi5w
YXRoKQorICAgICAgICAgICAgaWYga3dhcmdzWyJicm93c2VyX2NoYW5uZWwiXSBpcyBOb25lOgor
ICAgICAgICAgICAgICAgIGt3YXJnc1siYnJvd3Nlcl9jaGFubmVsIl0gPSAibmlnaHRseSIKKyAg
ICAgICAgICAgICAgICBsb2dnZXIuaW5mbygiTm8gYnJvd3NlciBjaGFubmVsIHNwZWNpZmllZC4g
UnVubmluZyBuaWdodGx5IGluc3RlYWQuIikKKworICAgICAgICAgICAgYmluYXJ5ID0gc2VsZi5i
cm93c2VyLmZpbmRfYmluYXJ5KHNlbGYudmVudi5wYXRoLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGt3YXJnc1siYnJvd3Nlcl9jaGFubmVsIl0pCiAgICAg
ICAgICAgICBpZiBiaW5hcnkgaXMgTm9uZToKICAgICAgICAgICAgICAgICByYWlzZSBXcHRydW5F
cnJvcigiIiJGaXJlZm94IGJpbmFyeSBub3QgZm91bmQgb24gJFBBVEguCiAKQEAgLTE4Miw3ICsy
MTAsNyBAQCBJbnN0YWxsIEZpcmVmb3ggb3IgdXNlIC0tYmluYXJ5IHRvIHNldCB0aGUgYmluYXJ5
IHBhdGgiIiIpCiAgICAgICAgICAgICAgICAgbG9nZ2VyLmluZm8oIiIiQ2FuJ3QgZmluZCBjZXJ0
dXRpbCwgY2VydGlmaWNhdGVzIHdpbGwgbm90IGJlIGNoZWNrZWQuCiBDb25zaWRlciBpbnN0YWxs
aW5nIGNlcnR1dGlsIHZpYSB5b3VyIE9TIHBhY2thZ2UgbWFuYWdlciBvciBkaXJlY3RseS4iIiIp
CiAgICAgICAgICAgICBlbHNlOgotICAgICAgICAgICAgICAgIHByaW50KCJVc2luZyBjZXJ0dXRp
bCAlcyIgJSBjZXJ0dXRpbCkKKyAgICAgICAgICAgICAgICBsb2dnZXIuaW5mbygiVXNpbmcgY2Vy
dHV0aWwgJXMiICUgY2VydHV0aWwpCiAKICAgICAgICAgICAgIGt3YXJnc1siY2VydHV0aWxfYmlu
YXJ5Il0gPSBjZXJ0dXRpbAogCkBAIC0xOTMsMjggKzIyMSw5NCBAQCBDb25zaWRlciBpbnN0YWxs
aW5nIGNlcnR1dGlsIHZpYSB5b3VyIE9TIHBhY2thZ2UgbWFuYWdlciBvciBkaXJlY3RseS4iIiIp
CiAgICAgICAgICAgICAgICAgaW5zdGFsbCA9IHNlbGYucHJvbXB0X2luc3RhbGwoImdlY2tvZHJp
dmVyIikKIAogICAgICAgICAgICAgICAgIGlmIGluc3RhbGw6Ci0gICAgICAgICAgICAgICAgICAg
IHByaW50KCJEb3dubG9hZGluZyBnZWNrb2RyaXZlciIpCisgICAgICAgICAgICAgICAgICAgIGxv
Z2dlci5pbmZvKCJEb3dubG9hZGluZyBnZWNrb2RyaXZlciIpCiAgICAgICAgICAgICAgICAgICAg
IHdlYmRyaXZlcl9iaW5hcnkgPSBzZWxmLmJyb3dzZXIuaW5zdGFsbF93ZWJkcml2ZXIoZGVzdD1z
ZWxmLnZlbnYuYmluX3BhdGgpCiAgICAgICAgICAgICBlbHNlOgotICAgICAgICAgICAgICAgIHBy
aW50KCJVc2luZyB3ZWJkcml2ZXIgYmluYXJ5ICVzIiAlIHdlYmRyaXZlcl9iaW5hcnkpCisgICAg
ICAgICAgICAgICAgbG9nZ2VyLmluZm8oIlVzaW5nIHdlYmRyaXZlciBiaW5hcnkgJXMiICUgd2Vi
ZHJpdmVyX2JpbmFyeSkKIAogICAgICAgICAgICAgaWYgd2ViZHJpdmVyX2JpbmFyeToKICAgICAg
ICAgICAgICAgICBrd2FyZ3NbIndlYmRyaXZlcl9iaW5hcnkiXSA9IHdlYmRyaXZlcl9iaW5hcnkK
ICAgICAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAgICAgcHJpbnQoIlVuYWJsZSB0byBmaW5k
IG9yIGluc3RhbGwgZ2Vja29kcml2ZXIsIHNraXBwaW5nIHdkc3BlYyB0ZXN0cyIpCisgICAgICAg
ICAgICAgICAgbG9nZ2VyLmluZm8oIlVuYWJsZSB0byBmaW5kIG9yIGluc3RhbGwgZ2Vja29kcml2
ZXIsIHNraXBwaW5nIHdkc3BlYyB0ZXN0cyIpCiAgICAgICAgICAgICAgICAga3dhcmdzWyJ0ZXN0
X3R5cGVzIl0ucmVtb3ZlKCJ3ZHNwZWMiKQogCiAgICAgICAgIGlmIGt3YXJnc1sicHJlZnNfcm9v
dCJdIGlzIE5vbmU6Ci0gICAgICAgICAgICBwcmVmc19yb290ID0gc2VsZi5icm93c2VyLmluc3Rh
bGxfcHJlZnMoa3dhcmdzWyJiaW5hcnkiXSwgc2VsZi52ZW52LnBhdGgpCisgICAgICAgICAgICBw
cmVmc19yb290ID0gc2VsZi5icm93c2VyLmluc3RhbGxfcHJlZnMoa3dhcmdzWyJiaW5hcnkiXSwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxm
LnZlbnYucGF0aCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBjaGFubmVsPWt3YXJnc1siYnJvd3Nlcl9jaGFubmVsIl0pCiAgICAgICAgICAgICBr
d2FyZ3NbInByZWZzX3Jvb3QiXSA9IHByZWZzX3Jvb3QKIAorICAgICAgICBpZiBrd2FyZ3NbImhl
YWRsZXNzIl0gaXMgTm9uZToKKyAgICAgICAgICAgIGt3YXJnc1siaGVhZGxlc3MiXSA9IFRydWUK
KyAgICAgICAgICAgIGxvZ2dlci5pbmZvKCJSdW5uaW5nIGluIGhlYWRsZXNzIG1vZGUsIHBhc3Mg
LS1uby1oZWFkbGVzcyB0byBkaXNhYmxlIikKKworICAgICAgICAjIFR1cm4gb2ZmIEZpcmVmb3gg
V2ViUlRDIElDRSBsb2dnaW5nIG9uIFdQVCAodHVybmVkIG9uIGJ5IG1venJ1bm5lcikKKyAgICAg
ICAgb3MudW5zZXRlbnYoJ1JfTE9HX0xFVkVMJykKKyAgICAgICAgb3MudW5zZXRlbnYoJ1JfTE9H
X0RFU1RJTkFUSU9OJykKKyAgICAgICAgb3MudW5zZXRlbnYoJ1JfTE9HX1ZFUkJPU0UnKQorCisg
ICAgICAgICMgQWxsb3cgV2ViUlRDIHRlc3RzIHRvIGNhbGwgZ2V0VXNlck1lZGlhLgorICAgICAg
ICBrd2FyZ3NbImV4dHJhX3ByZWZzIl0uYXBwZW5kKCJtZWRpYS5uYXZpZ2F0b3Iuc3RyZWFtcy5m
YWtlPXRydWUiKQorCisKK2NsYXNzIEZpcmVmb3hBbmRyb2lkKEJyb3dzZXJTZXR1cCk6CisgICAg
bmFtZSA9ICJmaXJlZm94X2FuZHJvaWQiCisgICAgYnJvd3Nlcl9jbHMgPSBicm93c2VyLkZpcmVm
b3hBbmRyb2lkCiAKLWNsYXNzIEZlbm5lYyhCcm93c2VyU2V0dXApOgotICAgIG5hbWUgPSAiZmVu
bmVjIgotICAgIGJyb3dzZXJfY2xzID0gYnJvd3Nlci5GZW5uZWMKKyAgICBkZWYgaW5zdGFsbChz
ZWxmLCBjaGFubmVsKToKKyAgICAgICAgIyBUaGUgaW5zdGFsbCBuZWVkcyB0byBoYXBwZW4gaW4g
c2V0dXAgc28gdGhhdCB3ZSBoYXZlIGFjY2VzcyB0byBhbGwgdGhlIGt3YXJncworICAgICAgICBz
ZWxmLl9pbnN0YWxsX2Jyb3dzZXIgPSBUcnVlCisgICAgICAgIHJldHVybiBOb25lCiAKICAgICBk
ZWYgc2V0dXBfa3dhcmdzKHNlbGYsIGt3YXJncyk6Ci0gICAgICAgIHBhc3MKKyAgICAgICAgZnJv
bSAuIGltcG9ydCBhbmRyb2lkCisgICAgICAgIGltcG9ydCBtb3pkZXZpY2UKKworICAgICAgICAj
IFdlIGRvbid0IHN1cHBvcnQgbXVsdGlwbGUgY2hhbm5lbHMgZm9yIGFuZHJvaWQgeWV0CisgICAg
ICAgIGlmIGt3YXJnc1siYnJvd3Nlcl9jaGFubmVsIl0gaXMgTm9uZToKKyAgICAgICAgICAgIGt3
YXJnc1siYnJvd3Nlcl9jaGFubmVsIl0gPSAibmlnaHRseSIKKworICAgICAgICBpZiBrd2FyZ3Nb
InByZWZzX3Jvb3QiXSBpcyBOb25lOgorICAgICAgICAgICAgcHJlZnNfcm9vdCA9IHNlbGYuYnJv
d3Nlci5pbnN0YWxsX3ByZWZzKGt3YXJnc1siYmluYXJ5Il0sCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi52ZW52LnBhdGgsCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hhbm5lbD1rd2Fy
Z3NbImJyb3dzZXJfY2hhbm5lbCJdKQorICAgICAgICAgICAga3dhcmdzWyJwcmVmc19yb290Il0g
PSBwcmVmc19yb290CisKKyAgICAgICAgaWYga3dhcmdzWyJwYWNrYWdlX25hbWUiXSBpcyBOb25l
OgorICAgICAgICAgICAga3dhcmdzWyJwYWNrYWdlX25hbWUiXSA9ICJvcmcubW96aWxsYS5nZWNr
b3ZpZXcudGVzdCIKKyAgICAgICAgYXBwID0ga3dhcmdzWyJwYWNrYWdlX25hbWUiXQorCisgICAg
ICAgIGlmIGt3YXJnc1siZGV2aWNlX3NlcmlhbCJdIGlzIE5vbmU6CisgICAgICAgICAgICBrd2Fy
Z3NbImRldmljZV9zZXJpYWwiXSA9ICJlbXVsYXRvci01NTU0IgorCisgICAgICAgICMgV2UncmUg
cnVubmluZyBvbiBhbiBlbXVsYXRvciBzbyBlbnN1cmUgdGhhdCdzIHNldCB1cAorICAgICAgICBp
ZiBrd2FyZ3NbImRldmljZV9zZXJpYWwiXS5zdGFydHN3aXRoKCJlbXVsYXRvci0iKToKKyAgICAg
ICAgICAgIGVtdWxhdG9yID0gYW5kcm9pZC5pbnN0YWxsKGxvZ2dlciwgcmVpbnN0YWxsPUZhbHNl
LCBub19wcm9tcHQ9bm90IHNlbGYucHJvbXB0KQorICAgICAgICAgICAgYW5kcm9pZC5zdGFydChs
b2dnZXIsIGVtdWxhdG9yPWVtdWxhdG9yLCByZWluc3RhbGw9RmFsc2UpCisKKyAgICAgICAgaW5z
dGFsbCA9IEZhbHNlCisgICAgICAgIGlmIGhhc2F0dHIoc2VsZiwgIl9pbnN0YWxsX2Jyb3dzZXIi
KToKKyAgICAgICAgICAgIGlmIHNlbGYucHJvbXB0X2luc3RhbGwoImdlY2tvdmlldy10ZXN0Iik6
CisgICAgICAgICAgICAgICAgaW5zdGFsbCA9IFRydWUKKyAgICAgICAgICAgICAgICBhcGtfcGF0
aCA9IHNlbGYuYnJvd3Nlci5pbnN0YWxsKHNlbGYudmVudi5wYXRoLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hhbm5lbD1rd2FyZ3NbImJyb3dzZXJf
Y2hhbm5lbCJdKQorCisgICAgICAgIGlmICJBREJfUEFUSCIgbm90IGluIG9zLmVudmlyb246Cisg
ICAgICAgICAgICBhZGJfcGF0aCA9IG9zLnBhdGguam9pbihhbmRyb2lkLmdldF9zZGtfcGF0aChO
b25lKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJwbGF0Zm9ybS10b29s
cyIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiYWRiIikKKyAgICAgICAg
ICAgIG9zLmVudmlyb25bIkFEQl9QQVRIIl0gPSBhZGJfcGF0aAorICAgICAgICBhZGJfcGF0aCA9
IG9zLmVudmlyb25bIkFEQl9QQVRIIl0KKworICAgICAgICBkZXZpY2UgPSBtb3pkZXZpY2UuQURC
RGV2aWNlKGFkYj1hZGJfcGF0aCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBkZXZpY2U9a3dhcmdzWyJkZXZpY2Vfc2VyaWFsIl0pCisKKyAgICAgICAgaWYgaW5zdGFsbDoK
KyAgICAgICAgICAgIGRldmljZS51bmluc3RhbGxfYXBwKGFwcCkKKyAgICAgICAgICAgIGRldmlj
ZS5pbnN0YWxsX2FwcChhcGtfcGF0aCkKKyAgICAgICAgZWxpZiBub3QgZGV2aWNlLmlzX2FwcF9p
bnN0YWxsZWQoYXBwKToKKyAgICAgICAgICAgIHJhaXNlIFdwdHJ1bkVycm9yKCJhcHAgJXMgbm90
IGluc3RhbGxlZCBvbiBkZXZpY2UgJXMiICUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IChhcHAsIGt3YXJnc1siZGV2aWNlX3NlcmlhbCJdKSkKIAogCiBjbGFzcyBDaHJvbWUoQnJvd3Nl
clNldHVwKToKQEAgLTIyMiw2ICszMTYsMTMgQEAgY2xhc3MgQ2hyb21lKEJyb3dzZXJTZXR1cCk6
CiAgICAgYnJvd3Nlcl9jbHMgPSBicm93c2VyLkNocm9tZQogCiAgICAgZGVmIHNldHVwX2t3YXJn
cyhzZWxmLCBrd2FyZ3MpOgorICAgICAgICBicm93c2VyX2NoYW5uZWwgPSBrd2FyZ3NbImJyb3dz
ZXJfY2hhbm5lbCJdCisgICAgICAgIGlmIGt3YXJnc1siYmluYXJ5Il0gaXMgTm9uZToKKyAgICAg
ICAgICAgIGJpbmFyeSA9IHNlbGYuYnJvd3Nlci5maW5kX2JpbmFyeShjaGFubmVsPWJyb3dzZXJf
Y2hhbm5lbCkKKyAgICAgICAgICAgIGlmIGJpbmFyeToKKyAgICAgICAgICAgICAgICBrd2FyZ3Nb
ImJpbmFyeSJdID0gYmluYXJ5CisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgIHJh
aXNlIFdwdHJ1bkVycm9yKCJVbmFibGUgdG8gbG9jYXRlIENocm9tZSBiaW5hcnkiKQogICAgICAg
ICBpZiBrd2FyZ3NbIndlYmRyaXZlcl9iaW5hcnkiXSBpcyBOb25lOgogICAgICAgICAgICAgd2Vi
ZHJpdmVyX2JpbmFyeSA9IHNlbGYuYnJvd3Nlci5maW5kX3dlYmRyaXZlcigpCiAKQEAgLTIyOSwx
NSArMzMwLDI3IEBAIGNsYXNzIENocm9tZShCcm93c2VyU2V0dXApOgogICAgICAgICAgICAgICAg
IGluc3RhbGwgPSBzZWxmLnByb21wdF9pbnN0YWxsKCJjaHJvbWVkcml2ZXIiKQogCiAgICAgICAg
ICAgICAgICAgaWYgaW5zdGFsbDoKLSAgICAgICAgICAgICAgICAgICAgcHJpbnQoIkRvd25sb2Fk
aW5nIGNocm9tZWRyaXZlciIpCi0gICAgICAgICAgICAgICAgICAgIHdlYmRyaXZlcl9iaW5hcnkg
PSBzZWxmLmJyb3dzZXIuaW5zdGFsbF93ZWJkcml2ZXIoZGVzdD1zZWxmLnZlbnYuYmluX3BhdGgp
CisgICAgICAgICAgICAgICAgICAgIGxvZ2dlci5pbmZvKCJEb3dubG9hZGluZyBjaHJvbWVkcml2
ZXIiKQorICAgICAgICAgICAgICAgICAgICB3ZWJkcml2ZXJfYmluYXJ5ID0gc2VsZi5icm93c2Vy
Lmluc3RhbGxfd2ViZHJpdmVyKAorICAgICAgICAgICAgICAgICAgICAgICAgZGVzdD1zZWxmLnZl
bnYuYmluX3BhdGgsCisgICAgICAgICAgICAgICAgICAgICAgICBicm93c2VyX2JpbmFyeT1rd2Fy
Z3NbImJpbmFyeSJdLAorICAgICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICBlbHNlOgot
ICAgICAgICAgICAgICAgIHByaW50KCJVc2luZyB3ZWJkcml2ZXIgYmluYXJ5ICVzIiAlIHdlYmRy
aXZlcl9iaW5hcnkpCisgICAgICAgICAgICAgICAgbG9nZ2VyLmluZm8oIlVzaW5nIHdlYmRyaXZl
ciBiaW5hcnkgJXMiICUgd2ViZHJpdmVyX2JpbmFyeSkKIAogICAgICAgICAgICAgaWYgd2ViZHJp
dmVyX2JpbmFyeToKICAgICAgICAgICAgICAgICBrd2FyZ3NbIndlYmRyaXZlcl9iaW5hcnkiXSA9
IHdlYmRyaXZlcl9iaW5hcnkKICAgICAgICAgICAgIGVsc2U6CiAgICAgICAgICAgICAgICAgcmFp
c2UgV3B0cnVuRXJyb3IoIlVuYWJsZSB0byBsb2NhdGUgb3IgaW5zdGFsbCBjaHJvbWVkcml2ZXIg
YmluYXJ5IikKKyAgICAgICAgaWYgYnJvd3Nlcl9jaGFubmVsIGluICgiZGV2IiwgImNhbmFyeSIp
OgorICAgICAgICAgICAgbG9nZ2VyLmluZm8oIkF1dG9tYXRpY2FsbHkgdHVybmluZyBvbiBleHBl
cmltZW50YWwgZmVhdHVyZXMgZm9yIENocm9tZSBEZXYvQ2FuYXJ5IikKKyAgICAgICAgICAgIGt3
YXJnc1siYmluYXJ5X2FyZ3MiXS5hcHBlbmQoIi0tZW5hYmxlLWV4cGVyaW1lbnRhbC13ZWItcGxh
dGZvcm0tZmVhdHVyZXMiKQorICAgICAgICAgICAgIyBIQUNLKEhleGNsZXMpOiB3b3JrIGFyb3Vu
ZCBodHRwczovL2dpdGh1Yi5jb20vd2ViLXBsYXRmb3JtLXRlc3RzL3dwdC9pc3N1ZXMvMTY0NDgK
KyAgICAgICAgICAgIGt3YXJnc1sid2ViZHJpdmVyX2FyZ3MiXS5hcHBlbmQoIi0tZGlzYWJsZS1i
dWlsZC1jaGVjayIpCisgICAgICAgIGlmIG9zLmdldGVudigiVEFTS0NMVVNURVJfUk9PVF9VUkwi
KToKKyAgICAgICAgICAgICMgV2UgYXJlIG9uIFRhc2tjbHVzdGVyLCB3aGVyZSBvdXIgRG9ja2Vy
IGNvbnRhaW5lciBkb2VzIG5vdCBoYXZlCisgICAgICAgICAgICAjIGVub3VnaCBjYXBhYmlsaXRp
ZXMgdG8gcnVuIENocm9tZSB3aXRoIHNhbmRib3hpbmcuIChnaC0yMDEzMykKKyAgICAgICAgICAg
IGt3YXJnc1siYmluYXJ5X2FyZ3MiXS5hcHBlbmQoIi0tbm8tc2FuZGJveCIpCiAKIAogY2xhc3Mg
Q2hyb21lQW5kcm9pZChCcm93c2VyU2V0dXApOgpAQCAtMjQ1LDYgKzM1OCw1NCBAQCBjbGFzcyBD
aHJvbWVBbmRyb2lkKEJyb3dzZXJTZXR1cCk6CiAgICAgYnJvd3Nlcl9jbHMgPSBicm93c2VyLkNo
cm9tZUFuZHJvaWQKIAogICAgIGRlZiBzZXR1cF9rd2FyZ3Moc2VsZiwga3dhcmdzKToKKyAgICAg
ICAgaWYga3dhcmdzLmdldCgiZGV2aWNlX3NlcmlhbCIpOgorICAgICAgICAgICAgc2VsZi5icm93
c2VyLmRldmljZV9zZXJpYWwgPSBrd2FyZ3NbImRldmljZV9zZXJpYWwiXQorICAgICAgICBicm93
c2VyX2NoYW5uZWwgPSBrd2FyZ3NbImJyb3dzZXJfY2hhbm5lbCJdCisgICAgICAgIGlmIGt3YXJn
c1sicGFja2FnZV9uYW1lIl0gaXMgTm9uZToKKyAgICAgICAgICAgIGt3YXJnc1sicGFja2FnZV9u
YW1lIl0gPSBzZWxmLmJyb3dzZXIuZmluZF9iaW5hcnkoCisgICAgICAgICAgICAgICAgY2hhbm5l
bD1icm93c2VyX2NoYW5uZWwpCisgICAgICAgIGlmIGt3YXJnc1sid2ViZHJpdmVyX2JpbmFyeSJd
IGlzIE5vbmU6CisgICAgICAgICAgICB3ZWJkcml2ZXJfYmluYXJ5ID0gc2VsZi5icm93c2VyLmZp
bmRfd2ViZHJpdmVyKCkKKworICAgICAgICAgICAgaWYgd2ViZHJpdmVyX2JpbmFyeSBpcyBOb25l
OgorICAgICAgICAgICAgICAgIGluc3RhbGwgPSBzZWxmLnByb21wdF9pbnN0YWxsKCJjaHJvbWVk
cml2ZXIiKQorCisgICAgICAgICAgICAgICAgaWYgaW5zdGFsbDoKKyAgICAgICAgICAgICAgICAg
ICAgbG9nZ2VyLmluZm8oIkRvd25sb2FkaW5nIGNocm9tZWRyaXZlciIpCisgICAgICAgICAgICAg
ICAgICAgIHdlYmRyaXZlcl9iaW5hcnkgPSBzZWxmLmJyb3dzZXIuaW5zdGFsbF93ZWJkcml2ZXIo
CisgICAgICAgICAgICAgICAgICAgICAgICBkZXN0PXNlbGYudmVudi5iaW5fcGF0aCwKKyAgICAg
ICAgICAgICAgICAgICAgICAgIGJyb3dzZXJfYmluYXJ5PWt3YXJnc1sicGFja2FnZV9uYW1lIl0s
CisgICAgICAgICAgICAgICAgICAgICkKKyAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAg
ICAgbG9nZ2VyLmluZm8oIlVzaW5nIHdlYmRyaXZlciBiaW5hcnkgJXMiICUgd2ViZHJpdmVyX2Jp
bmFyeSkKKworICAgICAgICAgICAgaWYgd2ViZHJpdmVyX2JpbmFyeToKKyAgICAgICAgICAgICAg
ICBrd2FyZ3NbIndlYmRyaXZlcl9iaW5hcnkiXSA9IHdlYmRyaXZlcl9iaW5hcnkKKyAgICAgICAg
ICAgIGVsc2U6CisgICAgICAgICAgICAgICAgcmFpc2UgV3B0cnVuRXJyb3IoIlVuYWJsZSB0byBs
b2NhdGUgb3IgaW5zdGFsbCBjaHJvbWVkcml2ZXIgYmluYXJ5IikKKyAgICAgICAgaWYgYnJvd3Nl
cl9jaGFubmVsIGluICgiZGV2IiwgImNhbmFyeSIpOgorICAgICAgICAgICAgbG9nZ2VyLmluZm8o
IkF1dG9tYXRpY2FsbHkgdHVybmluZyBvbiBleHBlcmltZW50YWwgZmVhdHVyZXMgZm9yIENocm9t
ZSBEZXYvQ2FuYXJ5IikKKyAgICAgICAgICAgIGt3YXJnc1siYmluYXJ5X2FyZ3MiXS5hcHBlbmQo
Ii0tZW5hYmxlLWV4cGVyaW1lbnRhbC13ZWItcGxhdGZvcm0tZmVhdHVyZXMiKQorICAgICAgICAg
ICAgIyBIQUNLKEhleGNsZXMpOiB3b3JrIGFyb3VuZCBodHRwczovL2dpdGh1Yi5jb20vd2ViLXBs
YXRmb3JtLXRlc3RzL3dwdC9pc3N1ZXMvMTY0NDgKKyAgICAgICAgICAgIGt3YXJnc1sid2ViZHJp
dmVyX2FyZ3MiXS5hcHBlbmQoIi0tZGlzYWJsZS1idWlsZC1jaGVjayIpCisKKworY2xhc3MgQ2hy
b21laU9TKEJyb3dzZXJTZXR1cCk6CisgICAgbmFtZSA9ICJjaHJvbWVfaW9zIgorICAgIGJyb3dz
ZXJfY2xzID0gYnJvd3Nlci5DaHJvbWVpT1MKKworICAgIGRlZiBzZXR1cF9rd2FyZ3Moc2VsZiwg
a3dhcmdzKToKKyAgICAgICAgaWYga3dhcmdzWyJ3ZWJkcml2ZXJfYmluYXJ5Il0gaXMgTm9uZToK
KyAgICAgICAgICAgIHJhaXNlIFdwdHJ1bkVycm9yKCJVbmFibGUgdG8gbG9jYXRlIG9yIGluc3Rh
bGwgY2hyb21lZHJpdmVyIGJpbmFyeSIpCisKKworY2xhc3MgQW5kcm9pZFdlYnZpZXcoQnJvd3Nl
clNldHVwKToKKyAgICBuYW1lID0gImFuZHJvaWRfd2VidmlldyIKKyAgICBicm93c2VyX2NscyA9
IGJyb3dzZXIuQW5kcm9pZFdlYnZpZXcKKworICAgIGRlZiBzZXR1cF9rd2FyZ3Moc2VsZiwga3dh
cmdzKToKKyAgICAgICAgaWYga3dhcmdzLmdldCgiZGV2aWNlX3NlcmlhbCIpOgorICAgICAgICAg
ICAgc2VsZi5icm93c2VyLmRldmljZV9zZXJpYWwgPSBrd2FyZ3NbImRldmljZV9zZXJpYWwiXQog
ICAgICAgICBpZiBrd2FyZ3NbIndlYmRyaXZlcl9iaW5hcnkiXSBpcyBOb25lOgogICAgICAgICAg
ICAgd2ViZHJpdmVyX2JpbmFyeSA9IHNlbGYuYnJvd3Nlci5maW5kX3dlYmRyaXZlcigpCiAKQEAg
LTI1MiwxMCArNDEzLDEwIEBAIGNsYXNzIENocm9tZUFuZHJvaWQoQnJvd3NlclNldHVwKToKICAg
ICAgICAgICAgICAgICBpbnN0YWxsID0gc2VsZi5wcm9tcHRfaW5zdGFsbCgiY2hyb21lZHJpdmVy
IikKIAogICAgICAgICAgICAgICAgIGlmIGluc3RhbGw6Ci0gICAgICAgICAgICAgICAgICAgIHBy
aW50KCJEb3dubG9hZGluZyBjaHJvbWVkcml2ZXIiKQorICAgICAgICAgICAgICAgICAgICBsb2dn
ZXIuaW5mbygiRG93bmxvYWRpbmcgY2hyb21lZHJpdmVyIikKICAgICAgICAgICAgICAgICAgICAg
d2ViZHJpdmVyX2JpbmFyeSA9IHNlbGYuYnJvd3Nlci5pbnN0YWxsX3dlYmRyaXZlcihkZXN0PXNl
bGYudmVudi5iaW5fcGF0aCkKICAgICAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAgICAgcHJp
bnQoIlVzaW5nIHdlYmRyaXZlciBiaW5hcnkgJXMiICUgd2ViZHJpdmVyX2JpbmFyeSkKKyAgICAg
ICAgICAgICAgICBsb2dnZXIuaW5mbygiVXNpbmcgd2ViZHJpdmVyIGJpbmFyeSAlcyIgJSB3ZWJk
cml2ZXJfYmluYXJ5KQogCiAgICAgICAgICAgICBpZiB3ZWJkcml2ZXJfYmluYXJ5OgogICAgICAg
ICAgICAgICAgIGt3YXJnc1sid2ViZHJpdmVyX2JpbmFyeSJdID0gd2ViZHJpdmVyX2JpbmFyeQpA
QCAtMjc1LDEwICs0MzYsMTAgQEAgY2xhc3MgT3BlcmEoQnJvd3NlclNldHVwKToKICAgICAgICAg
ICAgICAgICBpbnN0YWxsID0gc2VsZi5wcm9tcHRfaW5zdGFsbCgib3BlcmFkcml2ZXIiKQogCiAg
ICAgICAgICAgICAgICAgaWYgaW5zdGFsbDoKLSAgICAgICAgICAgICAgICAgICAgcHJpbnQoIkRv
d25sb2FkaW5nIG9wZXJhZHJpdmVyIikKKyAgICAgICAgICAgICAgICAgICAgbG9nZ2VyLmluZm8o
IkRvd25sb2FkaW5nIG9wZXJhZHJpdmVyIikKICAgICAgICAgICAgICAgICAgICAgd2ViZHJpdmVy
X2JpbmFyeSA9IHNlbGYuYnJvd3Nlci5pbnN0YWxsX3dlYmRyaXZlcihkZXN0PXNlbGYudmVudi5i
aW5fcGF0aCkKICAgICAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAgICAgcHJpbnQoIlVzaW5n
IHdlYmRyaXZlciBiaW5hcnkgJXMiICUgd2ViZHJpdmVyX2JpbmFyeSkKKyAgICAgICAgICAgICAg
ICBsb2dnZXIuaW5mbygiVXNpbmcgd2ViZHJpdmVyIGJpbmFyeSAlcyIgJSB3ZWJkcml2ZXJfYmlu
YXJ5KQogCiAgICAgICAgICAgICBpZiB3ZWJkcml2ZXJfYmluYXJ5OgogICAgICAgICAgICAgICAg
IGt3YXJnc1sid2ViZHJpdmVyX2JpbmFyeSJdID0gd2ViZHJpdmVyX2JpbmFyeQpAQCAtMjg2LDEx
ICs0NDcsNDUgQEAgY2xhc3MgT3BlcmEoQnJvd3NlclNldHVwKToKICAgICAgICAgICAgICAgICBy
YWlzZSBXcHRydW5FcnJvcigiVW5hYmxlIHRvIGxvY2F0ZSBvciBpbnN0YWxsIG9wZXJhZHJpdmVy
IGJpbmFyeSIpCiAKIAorY2xhc3MgRWRnZUNocm9taXVtKEJyb3dzZXJTZXR1cCk6CisgICAgbmFt
ZSA9ICJNaWNyb3NvZnRFZGdlIgorICAgIGJyb3dzZXJfY2xzID0gYnJvd3Nlci5FZGdlQ2hyb21p
dW0KKworICAgIGRlZiBzZXR1cF9rd2FyZ3Moc2VsZiwga3dhcmdzKToKKyAgICAgICAgYnJvd3Nl
cl9jaGFubmVsID0ga3dhcmdzWyJicm93c2VyX2NoYW5uZWwiXQorICAgICAgICBpZiBrd2FyZ3Nb
ImJpbmFyeSJdIGlzIE5vbmU6CisgICAgICAgICAgICBiaW5hcnkgPSBzZWxmLmJyb3dzZXIuZmlu
ZF9iaW5hcnkoY2hhbm5lbD1icm93c2VyX2NoYW5uZWwpCisgICAgICAgICAgICBpZiBiaW5hcnk6
CisgICAgICAgICAgICAgICAga3dhcmdzWyJiaW5hcnkiXSA9IGJpbmFyeQorICAgICAgICAgICAg
ZWxzZToKKyAgICAgICAgICAgICAgICByYWlzZSBXcHRydW5FcnJvcigiVW5hYmxlIHRvIGxvY2F0
ZSBFZGdlIGJpbmFyeSIpCisgICAgICAgIGlmIGt3YXJnc1sid2ViZHJpdmVyX2JpbmFyeSJdIGlz
IE5vbmU6CisgICAgICAgICAgICB3ZWJkcml2ZXJfYmluYXJ5ID0gc2VsZi5icm93c2VyLmZpbmRf
d2ViZHJpdmVyKCkKKworICAgICAgICAgICAgIyBJbnN0YWxsIGJyb3dzZXIgaWYgbm9uZSBhcmUg
Zm91bmQgb3IgaWYgaXQncyBmb3VuZCBpbiB2ZW52IHBhdGgKKyAgICAgICAgICAgIGlmIHdlYmRy
aXZlcl9iaW5hcnkgaXMgTm9uZSBvciB3ZWJkcml2ZXJfYmluYXJ5IGluIHNlbGYudmVudi5iaW5f
cGF0aDoKKyAgICAgICAgICAgICAgICBpbnN0YWxsID0gc2VsZi5wcm9tcHRfaW5zdGFsbCgibXNl
ZGdlZHJpdmVyIikKKworICAgICAgICAgICAgICAgIGlmIGluc3RhbGw6CisgICAgICAgICAgICAg
ICAgICAgIGxvZ2dlci5pbmZvKCJEb3dubG9hZGluZyBtc2VkZ2Vkcml2ZXIiKQorICAgICAgICAg
ICAgICAgICAgICB3ZWJkcml2ZXJfYmluYXJ5ID0gc2VsZi5icm93c2VyLmluc3RhbGxfd2ViZHJp
dmVyKGRlc3Q9c2VsZi52ZW52LmJpbl9wYXRoLCBjaGFubmVsPWJyb3dzZXJfY2hhbm5lbCkKKyAg
ICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgbG9nZ2VyLmluZm8oIlVzaW5nIHdlYmRy
aXZlciBiaW5hcnkgJXMiICUgd2ViZHJpdmVyX2JpbmFyeSkKKworICAgICAgICAgICAgaWYgd2Vi
ZHJpdmVyX2JpbmFyeToKKyAgICAgICAgICAgICAgICBrd2FyZ3NbIndlYmRyaXZlcl9iaW5hcnki
XSA9IHdlYmRyaXZlcl9iaW5hcnkKKyAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAg
cmFpc2UgV3B0cnVuRXJyb3IoIlVuYWJsZSB0byBsb2NhdGUgb3IgaW5zdGFsbCBtc2VkZ2Vkcml2
ZXIgYmluYXJ5IikKKyAgICAgICAgaWYgYnJvd3Nlcl9jaGFubmVsIGluICgiZGV2IiwgImNhbmFy
eSIpOgorICAgICAgICAgICAgbG9nZ2VyLmluZm8oIkF1dG9tYXRpY2FsbHkgdHVybmluZyBvbiBl
eHBlcmltZW50YWwgZmVhdHVyZXMgZm9yIEVkZ2UgRGV2L0NhbmFyeSIpCisgICAgICAgICAgICBr
d2FyZ3NbImJpbmFyeV9hcmdzIl0uYXBwZW5kKCItLWVuYWJsZS1leHBlcmltZW50YWwtd2ViLXBs
YXRmb3JtLWZlYXR1cmVzIikKKworCiBjbGFzcyBFZGdlKEJyb3dzZXJTZXR1cCk6CiAgICAgbmFt
ZSA9ICJlZGdlIgogICAgIGJyb3dzZXJfY2xzID0gYnJvd3Nlci5FZGdlCiAKLSAgICBkZWYgaW5z
dGFsbChzZWxmLCB2ZW52KToKKyAgICBkZWYgaW5zdGFsbChzZWxmLCBjaGFubmVsPU5vbmUpOgog
ICAgICAgICByYWlzZSBOb3RJbXBsZW1lbnRlZEVycm9yCiAKICAgICBkZWYgc2V0dXBfa3dhcmdz
KHNlbGYsIGt3YXJncyk6CkBAIC0zMDcsMTEgKzUwMiwxNiBAQCBodHRwczovL2RldmVsb3Blci5t
aWNyb3NvZnQuY29tL2VuLXVzL21pY3Jvc29mdC1lZGdlL3Rvb2xzL3dlYmRyaXZlci8KICAgICAg
ICAgICAgIGt3YXJnc1sid2ViZHJpdmVyX2JpbmFyeSJdID0gd2ViZHJpdmVyX2JpbmFyeQogCiAK
K2NsYXNzIEVkZ2VXZWJEcml2ZXIoRWRnZSk6CisgICAgbmFtZSA9ICJlZGdlX3dlYmRyaXZlciIK
KyAgICBicm93c2VyX2NscyA9IGJyb3dzZXIuRWRnZVdlYkRyaXZlcgorCisKIGNsYXNzIEludGVy
bmV0RXhwbG9yZXIoQnJvd3NlclNldHVwKToKICAgICBuYW1lID0gImllIgogICAgIGJyb3dzZXJf
Y2xzID0gYnJvd3Nlci5JbnRlcm5ldEV4cGxvcmVyCiAKLSAgICBkZWYgaW5zdGFsbChzZWxmLCB2
ZW52KToKKyAgICBkZWYgaW5zdGFsbChzZWxmLCBjaGFubmVsPU5vbmUpOgogICAgICAgICByYWlz
ZSBOb3RJbXBsZW1lbnRlZEVycm9yCiAKICAgICBkZWYgc2V0dXBfa3dhcmdzKHNlbGYsIGt3YXJn
cyk6CkBAIC0zMzIsMTIgKzUzMiwxMiBAQCBjbGFzcyBTYWZhcmkoQnJvd3NlclNldHVwKToKICAg
ICBuYW1lID0gInNhZmFyaSIKICAgICBicm93c2VyX2NscyA9IGJyb3dzZXIuU2FmYXJpCiAKLSAg
ICBkZWYgaW5zdGFsbChzZWxmLCB2ZW52KToKKyAgICBkZWYgaW5zdGFsbChzZWxmLCBjaGFubmVs
PU5vbmUpOgogICAgICAgICByYWlzZSBOb3RJbXBsZW1lbnRlZEVycm9yCiAKICAgICBkZWYgc2V0
dXBfa3dhcmdzKHNlbGYsIGt3YXJncyk6CiAgICAgICAgIGlmIGt3YXJnc1sid2ViZHJpdmVyX2Jp
bmFyeSJdIGlzIE5vbmU6Ci0gICAgICAgICAgICB3ZWJkcml2ZXJfYmluYXJ5ID0gc2VsZi5icm93
c2VyLmZpbmRfd2ViZHJpdmVyKCkKKyAgICAgICAgICAgIHdlYmRyaXZlcl9iaW5hcnkgPSBzZWxm
LmJyb3dzZXIuZmluZF93ZWJkcml2ZXIoY2hhbm5lbD1rd2FyZ3NbImJyb3dzZXJfY2hhbm5lbCJd
KQogCiAgICAgICAgICAgICBpZiB3ZWJkcml2ZXJfYmluYXJ5IGlzIE5vbmU6CiAgICAgICAgICAg
ICAgICAgcmFpc2UgV3B0cnVuRXJyb3IoIlVuYWJsZSB0byBsb2NhdGUgc2FmYXJpZHJpdmVyIGJp
bmFyeSIpCkBAIC0zNDksNyArNTQ5LDcgQEAgY2xhc3MgU2F1Y2UoQnJvd3NlclNldHVwKToKICAg
ICBuYW1lID0gInNhdWNlIgogICAgIGJyb3dzZXJfY2xzID0gYnJvd3Nlci5TYXVjZQogCi0gICAg
ZGVmIGluc3RhbGwoc2VsZiwgdmVudik6CisgICAgZGVmIGluc3RhbGwoc2VsZiwgY2hhbm5lbD1O
b25lKToKICAgICAgICAgcmFpc2UgTm90SW1wbGVtZW50ZWRFcnJvcgogCiAgICAgZGVmIHNldHVw
X2t3YXJncyhzZWxmLCBrd2FyZ3MpOgpAQCAtMzYyLDU5ICs1NjIsMTMwIEBAIGNsYXNzIFNlcnZv
KEJyb3dzZXJTZXR1cCk6CiAgICAgbmFtZSA9ICJzZXJ2byIKICAgICBicm93c2VyX2NscyA9IGJy
b3dzZXIuU2Vydm8KIAotICAgIGRlZiBpbnN0YWxsKHNlbGYsIHZlbnYpOgorICAgIGRlZiBpbnN0
YWxsKHNlbGYsIGNoYW5uZWw9Tm9uZSk6CiAgICAgICAgIGlmIHNlbGYucHJvbXB0X2luc3RhbGwo
c2VsZi5uYW1lKToKLSAgICAgICAgICAgIHJldHVybiBzZWxmLmJyb3dzZXIuaW5zdGFsbCh2ZW52
LnBhdGgpCisgICAgICAgICAgICByZXR1cm4gc2VsZi5icm93c2VyLmluc3RhbGwoc2VsZi52ZW52
LnBhdGgpCiAKICAgICBkZWYgc2V0dXBfa3dhcmdzKHNlbGYsIGt3YXJncyk6CiAgICAgICAgIGlm
IGt3YXJnc1siYmluYXJ5Il0gaXMgTm9uZToKLSAgICAgICAgICAgIGJpbmFyeSA9IHNlbGYuYnJv
d3Nlci5maW5kX2JpbmFyeSgpCisgICAgICAgICAgICBiaW5hcnkgPSBzZWxmLmJyb3dzZXIuZmlu
ZF9iaW5hcnkoc2VsZi52ZW52LnBhdGgsIE5vbmUpCiAKICAgICAgICAgICAgIGlmIGJpbmFyeSBp
cyBOb25lOgotICAgICAgICAgICAgICAgIHJhaXNlIFdwdHJ1bkVycm9yKCJVbmFibGUgdG8gZmlu
ZCBzZXJ2byBiaW5hcnkgb24gdGhlIFBBVEgiKQorICAgICAgICAgICAgICAgIHJhaXNlIFdwdHJ1
bkVycm9yKCJVbmFibGUgdG8gZmluZCBzZXJ2byBiaW5hcnkgaW4gUEFUSCIpCiAgICAgICAgICAg
ICBrd2FyZ3NbImJpbmFyeSJdID0gYmluYXJ5CiAKIAorY2xhc3MgU2Vydm9XZWJEcml2ZXIoU2Vy
dm8pOgorICAgIG5hbWUgPSAic2Vydm9kcml2ZXIiCisgICAgYnJvd3Nlcl9jbHMgPSBicm93c2Vy
LlNlcnZvV2ViRHJpdmVyCisKKwogY2xhc3MgV2ViS2l0KEJyb3dzZXJTZXR1cCk6CiAgICAgbmFt
ZSA9ICJ3ZWJraXQiCiAgICAgYnJvd3Nlcl9jbHMgPSBicm93c2VyLldlYktpdAogCi0gICAgZGVm
IGluc3RhbGwoc2VsZiwgdmVudik6CisgICAgZGVmIGluc3RhbGwoc2VsZiwgY2hhbm5lbD1Ob25l
KToKICAgICAgICAgcmFpc2UgTm90SW1wbGVtZW50ZWRFcnJvcgogCiAgICAgZGVmIHNldHVwX2t3
YXJncyhzZWxmLCBrd2FyZ3MpOgogICAgICAgICBwYXNzCiAKIAorY2xhc3MgV2ViS2l0R1RLTWlu
aUJyb3dzZXIoQnJvd3NlclNldHVwKToKKyAgICBuYW1lID0gIndlYmtpdGd0a19taW5pYnJvd3Nl
ciIKKyAgICBicm93c2VyX2NscyA9IGJyb3dzZXIuV2ViS2l0R1RLTWluaUJyb3dzZXIKKworICAg
IGRlZiBpbnN0YWxsKHNlbGYsIGNoYW5uZWw9Tm9uZSk6CisgICAgICAgIHJhaXNlIE5vdEltcGxl
bWVudGVkRXJyb3IKKworICAgIGRlZiBzZXR1cF9rd2FyZ3Moc2VsZiwga3dhcmdzKToKKyAgICAg
ICAgaWYga3dhcmdzWyJiaW5hcnkiXSBpcyBOb25lOgorICAgICAgICAgICAgYmluYXJ5ID0gc2Vs
Zi5icm93c2VyLmZpbmRfYmluYXJ5KGNoYW5uZWw9a3dhcmdzWyJicm93c2VyX2NoYW5uZWwiXSkK
KworICAgICAgICAgICAgaWYgYmluYXJ5IGlzIE5vbmU6CisgICAgICAgICAgICAgICAgcmFpc2Ug
V3B0cnVuRXJyb3IoIlVuYWJsZSB0byBmaW5kIE1pbmlCcm93c2VyIGJpbmFyeSIpCisgICAgICAg
ICAgICBrd2FyZ3NbImJpbmFyeSJdID0gYmluYXJ5CisKKyAgICAgICAgaWYga3dhcmdzWyJ3ZWJk
cml2ZXJfYmluYXJ5Il0gaXMgTm9uZToKKyAgICAgICAgICAgIHdlYmRyaXZlcl9iaW5hcnkgPSBz
ZWxmLmJyb3dzZXIuZmluZF93ZWJkcml2ZXIoY2hhbm5lbD1rd2FyZ3NbImJyb3dzZXJfY2hhbm5l
bCJdKQorCisgICAgICAgICAgICBpZiB3ZWJkcml2ZXJfYmluYXJ5IGlzIE5vbmU6CisgICAgICAg
ICAgICAgICAgcmFpc2UgV3B0cnVuRXJyb3IoIlVuYWJsZSB0byBmaW5kIFdlYktpdFdlYkRyaXZl
ciBpbiBQQVRIIikKKyAgICAgICAgICAgIGt3YXJnc1sid2ViZHJpdmVyX2JpbmFyeSJdID0gd2Vi
ZHJpdmVyX2JpbmFyeQorCisKK2NsYXNzIEVwaXBoYW55KEJyb3dzZXJTZXR1cCk6CisgICAgbmFt
ZSA9ICJlcGlwaGFueSIKKyAgICBicm93c2VyX2NscyA9IGJyb3dzZXIuRXBpcGhhbnkKKworICAg
IGRlZiBpbnN0YWxsKHNlbGYsIGNoYW5uZWw9Tm9uZSk6CisgICAgICAgIHJhaXNlIE5vdEltcGxl
bWVudGVkRXJyb3IKKworICAgIGRlZiBzZXR1cF9rd2FyZ3Moc2VsZiwga3dhcmdzKToKKyAgICAg
ICAgaWYga3dhcmdzWyJiaW5hcnkiXSBpcyBOb25lOgorICAgICAgICAgICAgYmluYXJ5ID0gc2Vs
Zi5icm93c2VyLmZpbmRfYmluYXJ5KCkKKworICAgICAgICAgICAgaWYgYmluYXJ5IGlzIE5vbmU6
CisgICAgICAgICAgICAgICAgcmFpc2UgV3B0cnVuRXJyb3IoIlVuYWJsZSB0byBmaW5kIGVwaXBo
YW55IGluIFBBVEgiKQorICAgICAgICAgICAga3dhcmdzWyJiaW5hcnkiXSA9IGJpbmFyeQorCisg
ICAgICAgIGlmIGt3YXJnc1sid2ViZHJpdmVyX2JpbmFyeSJdIGlzIE5vbmU6CisgICAgICAgICAg
ICB3ZWJkcml2ZXJfYmluYXJ5ID0gc2VsZi5icm93c2VyLmZpbmRfd2ViZHJpdmVyKCkKKworICAg
ICAgICAgICAgaWYgd2ViZHJpdmVyX2JpbmFyeSBpcyBOb25lOgorICAgICAgICAgICAgICAgIHJh
aXNlIFdwdHJ1bkVycm9yKCJVbmFibGUgdG8gZmluZCBXZWJLaXRXZWJEcml2ZXIgaW4gUEFUSCIp
CisgICAgICAgICAgICBrd2FyZ3NbIndlYmRyaXZlcl9iaW5hcnkiXSA9IHdlYmRyaXZlcl9iaW5h
cnkKKworCiBwcm9kdWN0X3NldHVwID0gewotICAgICJmZW5uZWMiOiBGZW5uZWMsCisgICAgImFu
ZHJvaWRfd2VidmlldyI6IEFuZHJvaWRXZWJ2aWV3LAogICAgICJmaXJlZm94IjogRmlyZWZveCwK
KyAgICAiZmlyZWZveF9hbmRyb2lkIjogRmlyZWZveEFuZHJvaWQsCiAgICAgImNocm9tZSI6IENo
cm9tZSwKICAgICAiY2hyb21lX2FuZHJvaWQiOiBDaHJvbWVBbmRyb2lkLAorICAgICJjaHJvbWVf
aW9zIjogQ2hyb21laU9TLAorICAgICJlZGdlY2hyb21pdW0iOiBFZGdlQ2hyb21pdW0sCiAgICAg
ImVkZ2UiOiBFZGdlLAorICAgICJlZGdlX3dlYmRyaXZlciI6IEVkZ2VXZWJEcml2ZXIsCiAgICAg
ImllIjogSW50ZXJuZXRFeHBsb3JlciwKICAgICAic2FmYXJpIjogU2FmYXJpLAogICAgICJzZXJ2
byI6IFNlcnZvLAorICAgICJzZXJ2b2RyaXZlciI6IFNlcnZvV2ViRHJpdmVyLAogICAgICJzYXVj
ZSI6IFNhdWNlLAogICAgICJvcGVyYSI6IE9wZXJhLAogICAgICJ3ZWJraXQiOiBXZWJLaXQsCisg
ICAgIndlYmtpdGd0a19taW5pYnJvd3NlciI6IFdlYktpdEdUS01pbmlCcm93c2VyLAorICAgICJl
cGlwaGFueSI6IEVwaXBoYW55LAogfQogCiAKLWRlZiBzZXR1cF93cHRydW5uZXIodmVudiwgcHJv
bXB0PVRydWUsIGluc3RhbGw9RmFsc2UsICoqa3dhcmdzKToKLSAgICBmcm9tIHdwdHJ1bm5lciBp
bXBvcnQgd3B0cnVubmVyLCB3cHRjb21tYW5kbGluZQorZGVmIHNldHVwX2xvZ2dpbmcoa3dhcmdz
LCBkZWZhdWx0X2NvbmZpZz1Ob25lLCBmb3JtYXR0ZXJfZGVmYXVsdHM9Tm9uZSk6CisgICAgaW1w
b3J0IG1vemxvZworICAgIGZyb20gd3B0cnVubmVyIGltcG9ydCB3cHRydW5uZXIKIAogICAgIGds
b2JhbCBsb2dnZXIKIAorICAgICMgVXNlIHRoZSBncm91cGVkIGZvcm1hdHRlciBieSBkZWZhdWx0
IHdoZXJlIG1vemxvZyAzLjkrIGlzIGluc3RhbGxlZAorICAgIGlmIGRlZmF1bHRfY29uZmlnIGlz
IE5vbmU6CisgICAgICAgIGlmIGhhc2F0dHIobW96bG9nLmZvcm1hdHRlcnMsICJHcm91cGluZ0Zv
cm1hdHRlciIpOgorICAgICAgICAgICAgZGVmYXVsdF9mb3JtYXR0ZXIgPSAiZ3JvdXBlZCIKKyAg
ICAgICAgZWxzZToKKyAgICAgICAgICAgIGRlZmF1bHRfZm9ybWF0dGVyID0gIm1hY2giCisgICAg
ICAgIGRlZmF1bHRfY29uZmlnID0ge2RlZmF1bHRfZm9ybWF0dGVyOiBzeXMuc3Rkb3V0fQorICAg
IHdwdHJ1bm5lci5zZXR1cF9sb2dnaW5nKGt3YXJncywgZGVmYXVsdF9jb25maWcsIGZvcm1hdHRl
cl9kZWZhdWx0cz1mb3JtYXR0ZXJfZGVmYXVsdHMpCisgICAgbG9nZ2VyID0gd3B0cnVubmVyLmxv
Z2dlcgorICAgIHJldHVybiBsb2dnZXIKKworCitkZWYgc2V0dXBfd3B0cnVubmVyKHZlbnYsIHBy
b21wdD1UcnVlLCBpbnN0YWxsX2Jyb3dzZXI9RmFsc2UsICoqa3dhcmdzKToKKyAgICBmcm9tIHdw
dHJ1bm5lciBpbXBvcnQgd3B0Y29tbWFuZGxpbmUKKwogICAgIGt3YXJncyA9IHV0aWxzLkt3YXJn
cyhrd2FyZ3MuaXRlcml0ZW1zKCkpCiAKICAgICBwcm9kdWN0X3BhcnRzID0ga3dhcmdzWyJwcm9k
dWN0Il0uc3BsaXQoIjoiKQotICAgIGt3YXJnc1sicHJvZHVjdCJdID0gcHJvZHVjdF9wYXJ0c1sw
XQorICAgIGt3YXJnc1sicHJvZHVjdCJdID0gcHJvZHVjdF9wYXJ0c1swXS5yZXBsYWNlKCItIiwg
Il8iKQogICAgIHN1Yl9wcm9kdWN0ID0gcHJvZHVjdF9wYXJ0c1sxOl0KIAotICAgIHdwdHJ1bm5l
ci5zZXR1cF9sb2dnaW5nKGt3YXJncywgeyJtYWNoIjogc3lzLnN0ZG91dH0pCi0gICAgbG9nZ2Vy
ID0gd3B0cnVubmVyLmxvZ2dlcgotCiAgICAgY2hlY2tfZW52aXJvbihrd2FyZ3NbInByb2R1Y3Qi
XSkKICAgICBhcmdzX2dlbmVyYWwoa3dhcmdzKQogCkBAIC00MjQsOSArNjk1LDQ0IEBAIGRlZiBz
ZXR1cF93cHRydW5uZXIodmVudiwgcHJvbXB0PVRydWUsIGluc3RhbGw9RmFsc2UsICoqa3dhcmdz
KToKICAgICBzZXR1cF9jbHMgPSBwcm9kdWN0X3NldHVwW2t3YXJnc1sicHJvZHVjdCJdXSh2ZW52
LCBwcm9tcHQsIHN1Yl9wcm9kdWN0KQogICAgIHNldHVwX2Nscy5pbnN0YWxsX3JlcXVpcmVtZW50
cygpCiAKLSAgICBpZiBpbnN0YWxsOgorICAgIGFmZmVjdGVkX3JldmlzaCA9IGt3YXJncy5wb3Ao
ImFmZmVjdGVkIiwgTm9uZSkKKyAgICBpZiBhZmZlY3RlZF9yZXZpc2ggaXMgbm90IE5vbmU6Cisg
ICAgICAgICMgVE9ETzogQ29uc29saWRhdGUgd2l0aCBgLi93cHQgdGVzdHMtYWZmZWN0ZWQgLS1p
Z25vcmUtcnVsZXNgOgorICAgICAgICAjIGh0dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxhdGZvcm0t
dGVzdHMvd3B0L2lzc3Vlcy8xNDU2MAorICAgICAgICBmaWxlc19jaGFuZ2VkLCBfID0gdGVzdGZp
bGVzLmZpbGVzX2NoYW5nZWQoCisgICAgICAgICAgICBhZmZlY3RlZF9yZXZpc2gsCisgICAgICAg
ICAgICBpZ25vcmVfcnVsZXM9WyJyZXNvdXJjZXMvdGVzdGhhcm5lc3MqIl0sCisgICAgICAgICAg
ICBpbmNsdWRlX3VuY29tbWl0dGVkPVRydWUsIGluY2x1ZGVfbmV3PVRydWUpCisgICAgICAgICMg
VE9ETzogUGVyaGFwcyB1c2Ugd3B0cnVubmVyLnRlc3Rsb2FkZXIuTWFuaWZlc3RMb2FkZXIgaGVy
ZQorICAgICAgICAjIGFuZCByZW1vdmUgdGhlIG1hbmlmZXN0LXJlbGF0ZWQgY29kZSBmcm9tIHRl
c3RmaWxlcy4KKyAgICAgICAgIyBodHRwczovL2dpdGh1Yi5jb20vd2ViLXBsYXRmb3JtLXRlc3Rz
L3dwdC9pc3N1ZXMvMTQ0MjEKKyAgICAgICAgdGVzdHNfY2hhbmdlZCwgdGVzdHNfYWZmZWN0ZWQg
PSB0ZXN0ZmlsZXMuYWZmZWN0ZWRfdGVzdGZpbGVzKAorICAgICAgICAgICAgZmlsZXNfY2hhbmdl
ZCwgbWFuaWZlc3RfcGF0aD1rd2FyZ3MuZ2V0KCJtYW5pZmVzdF9wYXRoIiksIG1hbmlmZXN0X3Vw
ZGF0ZT1rd2FyZ3NbIm1hbmlmZXN0X3VwZGF0ZSJdKQorICAgICAgICB0ZXN0X2xpc3QgPSB0ZXN0
c19jaGFuZ2VkIHwgdGVzdHNfYWZmZWN0ZWQKKyAgICAgICAgbG9nZ2VyLmluZm8oIklkZW50aWZp
ZWQgJXMgYWZmZWN0ZWQgdGVzdHMiICUgbGVuKHRlc3RfbGlzdCkpCisgICAgICAgIHRlc3RfbGlz
dCA9IFtvcy5wYXRoLnJlbHBhdGgoaXRlbSwgd3B0X3Jvb3QpIGZvciBpdGVtIGluIHRlc3RfbGlz
dF0KKyAgICAgICAga3dhcmdzWyJ0ZXN0X2xpc3QiXSArPSB0ZXN0X2xpc3QKKyAgICAgICAga3dh
cmdzWyJkZWZhdWx0X2V4Y2x1ZGUiXSA9IFRydWUKKworICAgIGlmIGluc3RhbGxfYnJvd3NlciBh
bmQgbm90IGt3YXJnc1siY2hhbm5lbCJdOgorICAgICAgICBsb2dnZXIuaW5mbygiLS1pbnN0YWxs
LWJyb3dzZXIgaXMgZ2l2ZW4gYnV0IC0tY2hhbm5lbCBpcyBub3Qgc2V0LCBkZWZhdWx0IHRvIG5p
Z2h0bHkgY2hhbm5lbCIpCisgICAgICAgIGt3YXJnc1siY2hhbm5lbCJdID0gIm5pZ2h0bHkiCisK
KyAgICBpZiBrd2FyZ3NbImNoYW5uZWwiXToKKyAgICAgICAgY2hhbm5lbCA9IGluc3RhbGwuZ2V0
X2NoYW5uZWwoa3dhcmdzWyJwcm9kdWN0Il0sIGt3YXJnc1siY2hhbm5lbCJdKQorICAgICAgICBp
ZiBjaGFubmVsIGlzIG5vdCBOb25lOgorICAgICAgICAgICAgaWYgY2hhbm5lbCAhPSBrd2FyZ3Nb
ImNoYW5uZWwiXToKKyAgICAgICAgICAgICAgICBsb2dnZXIuaW5mbygiSW50ZXJwcmV0aW5nIGNo
YW5uZWwgJyVzJyBhcyAnJXMnIiAlIChrd2FyZ3NbImNoYW5uZWwiXSwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGFu
bmVsKSkKKyAgICAgICAgICAgIGt3YXJnc1siYnJvd3Nlcl9jaGFubmVsIl0gPSBjaGFubmVsCisg
ICAgICAgIGVsc2U6CisgICAgICAgICAgICBsb2dnZXIuaW5mbygiVmFsaWQgY2hhbm5lbHMgZm9y
ICVzIG5vdCBrbm93bjsgdXNpbmcgYXJndW1lbnQgdW5tb2RpZmllZCIgJSBrd2FyZ3NbInByb2R1
Y3QiXSkKKyAgICAgICAgICAgIGt3YXJnc1siYnJvd3Nlcl9jaGFubmVsIl0gPSBrd2FyZ3NbImNo
YW5uZWwiXQorICAgICAgICBkZWwga3dhcmdzWyJjaGFubmVsIl0KKworICAgIGlmIGluc3RhbGxf
YnJvd3NlcjoKICAgICAgICAgbG9nZ2VyLmluZm8oIkluc3RhbGxpbmcgYnJvd3NlciIpCi0gICAg
ICAgIGt3YXJnc1siYmluYXJ5Il0gPSBzZXR1cF9jbHMuaW5zdGFsbCh2ZW52KQorICAgICAgICBr
d2FyZ3NbImJpbmFyeSJdID0gc2V0dXBfY2xzLmluc3RhbGwoY2hhbm5lbD1jaGFubmVsKQogCiAg
ICAgc2V0dXBfY2xzLnNldHVwKGt3YXJncykKIApAQCAtNDM0LDIwICs3NDAsMzAgQEAgZGVmIHNl
dHVwX3dwdHJ1bm5lcih2ZW52LCBwcm9tcHQ9VHJ1ZSwgaW5zdGFsbD1GYWxzZSwgKiprd2FyZ3Mp
OgogCiAgICAgd3B0cnVubmVyX3BhdGggPSBvcy5wYXRoLmpvaW4od3B0X3Jvb3QsICJ0b29scyIs
ICJ3cHRydW5uZXIiKQogCi0gICAgdmVudi5pbnN0YWxsX3JlcXVpcmVtZW50cyhvcy5wYXRoLmpv
aW4od3B0cnVubmVyX3BhdGgsICJyZXF1aXJlbWVudHMudHh0IikpCisgICAgaWYgbm90IHZlbnYu
c2tpcF92aXJ0dWFsZW52X3NldHVwOgorICAgICAgICB2ZW52Lmluc3RhbGxfcmVxdWlyZW1lbnRz
KG9zLnBhdGguam9pbih3cHRydW5uZXJfcGF0aCwgInJlcXVpcmVtZW50cy50eHQiKSkKKworICAg
ICMgT25seSB1cGRhdGUgYnJvd3Nlcl92ZXJzaW9uIGlmIGl0IHdhcyBub3QgZ2l2ZW4gYXMgYSBj
b21tYW5kIGxpbmUKKyAgICAjIGFyZ3VtZW50LCBzbyB0aGF0IGl0IGNhbiBiZSBvdmVycmlkZGVu
IG9uIHRoZSBjb21tYW5kIGxpbmUuCisgICAgaWYgbm90IGt3YXJnc1siYnJvd3Nlcl92ZXJzaW9u
Il06CisgICAgICAgIGt3YXJnc1siYnJvd3Nlcl92ZXJzaW9uIl0gPSBzZXR1cF9jbHMuYnJvd3Nl
ci52ZXJzaW9uKAorICAgICAgICAgICAgYmluYXJ5PWt3YXJncy5nZXQoImJpbmFyeSIpIG9yIGt3
YXJncy5nZXQoInBhY2thZ2VfbmFtZSIpLAorICAgICAgICAgICAgd2ViZHJpdmVyX2JpbmFyeT1r
d2FyZ3MuZ2V0KCJ3ZWJkcml2ZXJfYmluYXJ5IiksCisgICAgICAgICkKIAotICAgIGt3YXJnc1sn
YnJvd3Nlcl92ZXJzaW9uJ10gPSBzZXR1cF9jbHMuYnJvd3Nlci52ZXJzaW9uKGt3YXJncy5nZXQo
ImJpbmFyeSIpKQogICAgIHJldHVybiBrd2FyZ3MKIAogCiBkZWYgcnVuKHZlbnYsICoqa3dhcmdz
KToKLSAgICAjUmVtb3ZlIGFyZ3VtZW50cyB0aGF0IGFyZW4ndCBwYXNzZWQgdG8gd3B0cnVubmVy
CisgICAgc2V0dXBfbG9nZ2luZyhrd2FyZ3MpCisKKyAgICAjIFJlbW92ZSBhcmd1bWVudHMgdGhh
dCBhcmVuJ3QgcGFzc2VkIHRvIHdwdHJ1bm5lcgogICAgIHByb21wdCA9IGt3YXJncy5wb3AoInBy
b21wdCIsIFRydWUpCiAgICAgaW5zdGFsbF9icm93c2VyID0ga3dhcmdzLnBvcCgiaW5zdGFsbF9i
cm93c2VyIiwgRmFsc2UpCiAKICAgICBrd2FyZ3MgPSBzZXR1cF93cHRydW5uZXIodmVudiwKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvbXB0PXByb21wdCwKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgaW5zdGFsbD1pbnN0YWxsX2Jyb3dzZXIsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGluc3RhbGxfYnJvd3Nlcj1pbnN0YWxsX2Jyb3dzZXIsCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICoqa3dhcmdzKQogCiAgICAgcnYgPSBydW5fc2luZ2xlKHZlbnYs
ICoqa3dhcmdzKSA+IDAKQEAgLTQ3Nyw3ICs3OTMsNyBAQCBkZWYgbWFpbigpOgogCiBpZiBfX25h
bWVfXyA9PSAiX19tYWluX18iOgogICAgIGltcG9ydCBwZGIKLSAgICBmcm9tIHRvb2xzIGltcG9y
dCBsb2NhbHBhdGhzICAjIG5vcWE6IGZsYWtlOAorICAgIGZyb20gdG9vbHMgaW1wb3J0IGxvY2Fs
cGF0aHMgICMgbm9xYTogRjQwMQogICAgIHRyeToKICAgICAgICAgbWFpbigpCiAgICAgZXhjZXB0
IEV4Y2VwdGlvbjoKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvd3B0L3Rlc3RmaWxlcy5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0L3Rlc3RmaWxlcy5weQppbmRleCAzNWE0
Yjk3ZDdmZi4uY2YxMmE1OWM4ZTYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0L3Rlc3RmaWxlcy5weQorKysgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdC90ZXN0ZmlsZXMu
cHkKQEAgLTUsMTAgKzUsMzcgQEAgaW1wb3J0IHJlCiBpbXBvcnQgc3VicHJvY2VzcwogaW1wb3J0
IHN5cwogCitpbXBvcnQgc2l4CiBmcm9tIGNvbGxlY3Rpb25zIGltcG9ydCBPcmRlcmVkRGljdAog
ZnJvbSBzaXggaW1wb3J0IGl0ZXJpdGVtcwogCi1mcm9tIC4ubWFuaWZlc3QgaW1wb3J0IG1hbmlm
ZXN0LCB1cGRhdGUKK3RyeToKKyAgICBmcm9tIC4ubWFuaWZlc3QgaW1wb3J0IG1hbmlmZXN0Citl
eGNlcHQgVmFsdWVFcnJvcjoKKyAgICAjIGlmIHdlJ3JlIG5vdCB3aXRoaW4gdGhlIHRvb2xzIHBh
Y2thZ2UsIHRoZSBhYm92ZSBpcyBhbiBpbXBvcnQgZnJvbSBhYm92ZQorICAgICMgdGhlIHRvcC1s
ZXZlbCB3aGljaCByYWlzZXMgVmFsdWVFcnJvciwgc28gcmVpbXBvcnQgaXQgd2l0aCBhbiBhYnNv
bHV0ZQorICAgICMgcmVmZXJlbmNlCisgICAgIworICAgICMgbm90ZSB3ZSBuZWVkIGJvdGggYmVj
YXVzZSBkZXBlbmRpbmcgb24gY2FsbGVyIHdlIG1heS9tYXkgbm90IGhhdmUgdGhlCisgICAgIyBw
YXRocyBzZXQgdXAgY29ycmVjdGx5IHRvIGhhbmRsZSBib3RoIGFuZCBNWVBZIGhhcyBubyBrbm93
bGVkZ2Ugb2Ygb3VyCisgICAgIyBzeXMucGF0aCBtYWdpYworICAgIGZyb20gbWFuaWZlc3QgaW1w
b3J0IG1hbmlmZXN0ICAjIHR5cGU6IGlnbm9yZQorCitNWVBZID0gRmFsc2UKK2lmIE1ZUFk6Cisg
ICAgIyBNWVBZIGlzIHNldCB0byBUcnVlIHdoZW4gcnVuIHVuZGVyIE15cHkuCisgICAgZnJvbSB0
eXBpbmcgaW1wb3J0IEFueQorICAgIGZyb20gdHlwaW5nIGltcG9ydCBDYWxsYWJsZQorICAgIGZy
b20gdHlwaW5nIGltcG9ydCBEaWN0CisgICAgZnJvbSB0eXBpbmcgaW1wb3J0IEl0ZXJhYmxlCisg
ICAgZnJvbSB0eXBpbmcgaW1wb3J0IExpc3QKKyAgICBmcm9tIHR5cGluZyBpbXBvcnQgT3B0aW9u
YWwKKyAgICBmcm9tIHR5cGluZyBpbXBvcnQgUGF0dGVybgorICAgIGZyb20gdHlwaW5nIGltcG9y
dCBTZXF1ZW5jZQorICAgIGZyb20gdHlwaW5nIGltcG9ydCBTZXQKKyAgICBmcm9tIHR5cGluZyBp
bXBvcnQgVGV4dAorICAgIGZyb20gdHlwaW5nIGltcG9ydCBUdXBsZQorICAgIGZyb20gdHlwaW5n
IGltcG9ydCBVbmlvbgogCiBoZXJlID0gb3MucGF0aC5kaXJuYW1lKF9fZmlsZV9fKQogd3B0X3Jv
b3QgPSBvcy5wYXRoLmFic3BhdGgob3MucGF0aC5qb2luKGhlcmUsIG9zLnBhcmRpciwgb3MucGFy
ZGlyKSkKQEAgLTE3LDM0ICs0NCwzOCBAQCBsb2dnZXIgPSBsb2dnaW5nLmdldExvZ2dlcigpCiAK
IAogZGVmIGdldF9naXRfY21kKHJlcG9fcGF0aCk6CisgICAgIyB0eXBlOiAoYnl0ZXMpIC0+IENh
bGxhYmxlWy4uLiwgVGV4dF0KICAgICAiIiJDcmVhdGUgYSBmdW5jdGlvbiBmb3IgaW52b2tpbmcg
Z2l0IGNvbW1hbmRzIGFzIGEgc3VicHJvY2Vzcy4iIiIKICAgICBkZWYgZ2l0KGNtZCwgKmFyZ3Mp
OgotICAgICAgICBmdWxsX2NtZCA9IFsiZ2l0IiwgY21kXSArIGxpc3QoaXRlbS5kZWNvZGUoInV0
ZjgiKSBpZiBpc2luc3RhbmNlKGl0ZW0sIGJ5dGVzKSBlbHNlIGl0ZW0gZm9yIGl0ZW0gaW4gYXJn
cykKKyAgICAgICAgIyB0eXBlOiAoVGV4dCwgKlVuaW9uW2J5dGVzLCBUZXh0XSkgLT4gVGV4dAor
ICAgICAgICBmdWxsX2NtZCA9IFt1ImdpdCIsIGNtZF0gKyBsaXN0KGl0ZW0uZGVjb2RlKCJ1dGY4
IikgaWYgaXNpbnN0YW5jZShpdGVtLCBieXRlcykgZWxzZSBpdGVtIGZvciBpdGVtIGluIGFyZ3Mp
ICAjIHR5cGU6IExpc3RbVGV4dF0KICAgICAgICAgdHJ5OgogICAgICAgICAgICAgbG9nZ2VyLmRl
YnVnKCIgIi5qb2luKGZ1bGxfY21kKSkKLSAgICAgICAgICAgIHJldHVybiBzdWJwcm9jZXNzLmNo
ZWNrX291dHB1dChmdWxsX2NtZCwgY3dkPXJlcG9fcGF0aCwgc3RkZXJyPXN1YnByb2Nlc3MuU1RE
T1VUKS5kZWNvZGUoInV0ZjgiKS5zdHJpcCgpCisgICAgICAgICAgICByZXR1cm4gc3VicHJvY2Vz
cy5jaGVja19vdXRwdXQoZnVsbF9jbWQsIGN3ZD1yZXBvX3BhdGgpLmRlY29kZSgidXRmOCIpLnN0
cmlwKCkKICAgICAgICAgZXhjZXB0IHN1YnByb2Nlc3MuQ2FsbGVkUHJvY2Vzc0Vycm9yIGFzIGU6
Ci0gICAgICAgICAgICBsb2dnZXIuZXJyb3IoIkdpdCBjb21tYW5kIGV4aXRlZCB3aXRoIHN0YXR1
cyAlaSIgJSBlLnJldHVybmNvZGUpCi0gICAgICAgICAgICBsb2dnZXIuZXJyb3IoZS5vdXRwdXQp
CisgICAgICAgICAgICBsb2dnZXIuY3JpdGljYWwoIkdpdCBjb21tYW5kIGV4aXRlZCB3aXRoIHN0
YXR1cyAlaSIgJSBlLnJldHVybmNvZGUpCisgICAgICAgICAgICBsb2dnZXIuY3JpdGljYWwoZS5v
dXRwdXQpCiAgICAgICAgICAgICBzeXMuZXhpdCgxKQogICAgIHJldHVybiBnaXQKIAogCiBkZWYg
ZGlzcGxheV9icmFuY2hfcG9pbnQoKToKKyAgICAjIHR5cGU6ICgpIC0+IE5vbmUKICAgICBwcmlu
dChicmFuY2hfcG9pbnQoKSkKIAogCiBkZWYgYnJhbmNoX3BvaW50KCk6CisgICAgIyB0eXBlOiAo
KSAtPiBPcHRpb25hbFtUZXh0XQogICAgIGdpdCA9IGdldF9naXRfY21kKHdwdF9yb290KQotICAg
IGlmIChvcy5lbnZpcm9uLmdldCgiVFJBVklTX1BVTExfUkVRVUVTVCIsICJmYWxzZSIpID09ICJm
YWxzZSIgYW5kCi0gICAgICAgIG9zLmVudmlyb24uZ2V0KCJUUkFWSVNfQlJBTkNIIikgPT0gIm1h
c3RlciIpOgorICAgIGlmIChvcy5lbnZpcm9uLmdldCgiR0lUSFVCX1BVTExfUkVRVUVTVCIsICJm
YWxzZSIpID09ICJmYWxzZSIgYW5kCisgICAgICAgIG9zLmVudmlyb24uZ2V0KCJHSVRIVUJfQlJB
TkNIIikgPT0gIm1hc3RlciIpOgogICAgICAgICAjIEZvciBidWlsZHMgb24gdGhlIG1hc3RlciBi
cmFuY2gganVzdCByZXR1cm4gdGhlIEhFQUQgY29tbWl0CiAgICAgICAgIHJldHVybiBnaXQoInJl
di1wYXJzZSIsICJIRUFEIikKLSAgICBlbGlmIG9zLmVudmlyb24uZ2V0KCJUUkFWSVNfUFVMTF9S
RVFVRVNUIiwgImZhbHNlIikgIT0gImZhbHNlIjoKLSAgICAgICAgIyBUaGlzIGlzIGEgUFIsIHNv
IHRoZSBiYXNlIGJyYW5jaCBpcyBpbiBUUkFWSVNfQlJBTkNICi0gICAgICAgIHRyYXZpc19icmFu
Y2ggPSBvcy5lbnZpcm9uLmdldCgiVFJBVklTX0JSQU5DSCIpCi0gICAgICAgIGFzc2VydCB0cmF2
aXNfYnJhbmNoLCAiVFJBVklTX0JSQU5DSCBlbnZpcm9ubWVudCB2YXJpYWJsZSBpcyBkZWZpbmVk
IgotICAgICAgICBicmFuY2hfcG9pbnQgPSBnaXQoIm1lcmdlLWJhc2UiLCAiSEVBRCIsIHRyYXZp
c19icmFuY2gpCisgICAgZWxpZiBvcy5lbnZpcm9uLmdldCgiR0lUSFVCX1BVTExfUkVRVUVTVCIs
ICJmYWxzZSIpICE9ICJmYWxzZSI6CisgICAgICAgICMgVGhpcyBpcyBhIFBSLCBzbyB0aGUgYmFz
ZSBicmFuY2ggaXMgaW4gR0lUSFVCX0JSQU5DSAorICAgICAgICBiYXNlX2JyYW5jaCA9IG9zLmVu
dmlyb24uZ2V0KCJHSVRIVUJfQlJBTkNIIikKKyAgICAgICAgYXNzZXJ0IGJhc2VfYnJhbmNoLCAi
R0lUSFVCX0JSQU5DSCBlbnZpcm9ubWVudCB2YXJpYWJsZSBpcyBkZWZpbmVkIgorICAgICAgICBi
cmFuY2hfcG9pbnQgPSBnaXQoIm1lcmdlLWJhc2UiLCAiSEVBRCIsIGJhc2VfYnJhbmNoKSAgIyB0
eXBlOiBPcHRpb25hbFtUZXh0XQogICAgIGVsc2U6CiAgICAgICAgICMgT3RoZXJ3aXNlIHdlIGFy
ZW4ndCBvbiBhIFBSLCBzbyB3ZSB0cnkgdG8gZmluZCBjb21taXRzIHRoYXQgYXJlIG9ubHkgaW4g
dGhlCiAgICAgICAgICMgY3VycmVudCBicmFuY2ggYy5mLgpAQCAtNTksNyArOTAsNyBAQCBkZWYg
YnJhbmNoX3BvaW50KCk6CiAKICAgICAgICAgIyBnZXQgYWxsIGNvbW1pdHMgb24gSEVBRCBidXQg
bm90IHJlYWNoYWJsZSBmcm9tIGFueXRoaW5nIGluIG5vdF9oZWFkcwogICAgICAgICBjb21taXRz
ID0gZ2l0KCJyZXYtbGlzdCIsICItLXRvcG8tb3JkZXIiLCAiLS1wYXJlbnRzIiwgIkhFQUQiLCAq
bm90X2hlYWRzKQotICAgICAgICBjb21taXRfcGFyZW50cyA9IE9yZGVyZWREaWN0KCkKKyAgICAg
ICAgY29tbWl0X3BhcmVudHMgPSBPcmRlcmVkRGljdCgpICAjIHR5cGU6IERpY3RbVGV4dCwgTGlz
dFtUZXh0XV0KICAgICAgICAgaWYgY29tbWl0czoKICAgICAgICAgICAgIGZvciBsaW5lIGluIGNv
bW1pdHMuc3BsaXQoIlxuIik6CiAgICAgICAgICAgICAgICAgbGluZV9jb21taXRzID0gbGluZS5z
cGxpdCgiICIpCkBAIC0xMDMsNiArMTM0LDcgQEAgZGVmIGJyYW5jaF9wb2ludCgpOgogCiAKIGRl
ZiBjb21waWxlX2lnbm9yZV9ydWxlKHJ1bGUpOgorICAgICMgdHlwZTogKHN0cikgLT4gUGF0dGVy
bltzdHJdCiAgICAgcnVsZSA9IHJ1bGUucmVwbGFjZShvcy5wYXRoLnNlcCwgIi8iKQogICAgIHBh
cnRzID0gcnVsZS5zcGxpdCgiLyIpCiAgICAgcmVfcGFydHMgPSBbXQpAQCAtMTE3LDEwICsxNDks
MTEgQEAgZGVmIGNvbXBpbGVfaWdub3JlX3J1bGUocnVsZSk6CiAKIAogZGVmIHJlcG9fZmlsZXNf
Y2hhbmdlZChyZXZpc2gsIGluY2x1ZGVfdW5jb21taXR0ZWQ9RmFsc2UsIGluY2x1ZGVfbmV3PUZh
bHNlKToKKyAgICAjIHR5cGU6IChzdHIsIGJvb2wsIGJvb2wpIC0+IFNldFtUZXh0XQogICAgIGdp
dCA9IGdldF9naXRfY21kKHdwdF9yb290KQotICAgIGZpbGVzID0gZ2l0KCJkaWZmIiwgIi0tbmFt
ZS1vbmx5IiwgIi16IiwgcmV2aXNoKS5zcGxpdCgiXDAiKQotICAgIGFzc2VydCBub3QgZmlsZXNb
LTFdCi0gICAgZmlsZXMgPSBzZXQoZmlsZXNbOi0xXSkKKyAgICBmaWxlc19saXN0ID0gZ2l0KCJk
aWZmIiwgIi0tbmFtZS1vbmx5IiwgIi16IiwgcmV2aXNoKS5zcGxpdCgiXDAiKQorICAgIGFzc2Vy
dCBub3QgZmlsZXNfbGlzdFstMV0KKyAgICBmaWxlcyA9IHNldChmaWxlc19saXN0WzotMV0pCiAK
ICAgICBpZiBpbmNsdWRlX3VuY29tbWl0dGVkOgogICAgICAgICBlbnRyaWVzID0gZ2l0KCJzdGF0
dXMiLCAiLXoiKS5zcGxpdCgiXDAiKQpAQCAtMTQyLDE2ICsxNzUsMTcgQEAgZGVmIHJlcG9fZmls
ZXNfY2hhbmdlZChyZXZpc2gsIGluY2x1ZGVfdW5jb21taXR0ZWQ9RmFsc2UsIGluY2x1ZGVfbmV3
PUZhbHNlKToKIAogCiBkZWYgZXhjbHVkZV9pZ25vcmVkKGZpbGVzLCBpZ25vcmVfcnVsZXMpOgor
ICAgICMgdHlwZTogKEl0ZXJhYmxlW1RleHRdLCBPcHRpb25hbFtTZXF1ZW5jZVtzdHJdXSkgLT4g
VHVwbGVbTGlzdFtUZXh0XSwgTGlzdFtUZXh0XV0KICAgICBpZiBpZ25vcmVfcnVsZXMgaXMgTm9u
ZToKICAgICAgICAgaWdub3JlX3J1bGVzID0gW10KLSAgICBpZ25vcmVfcnVsZXMgPSBbY29tcGls
ZV9pZ25vcmVfcnVsZShpdGVtKSBmb3IgaXRlbSBpbiBpZ25vcmVfcnVsZXNdCisgICAgY29tcGls
ZWRfaWdub3JlX3J1bGVzID0gW2NvbXBpbGVfaWdub3JlX3J1bGUoaXRlbSkgZm9yIGl0ZW0gaW4g
aWdub3JlX3J1bGVzXQogCiAgICAgY2hhbmdlZCA9IFtdCiAgICAgaWdub3JlZCA9IFtdCiAgICAg
Zm9yIGl0ZW0gaW4gc29ydGVkKGZpbGVzKToKICAgICAgICAgZnVsbHBhdGggPSBvcy5wYXRoLmpv
aW4od3B0X3Jvb3QsIGl0ZW0pCiAgICAgICAgIHJ1bGVfcGF0aCA9IGl0ZW0ucmVwbGFjZShvcy5w
YXRoLnNlcCwgIi8iKQotICAgICAgICBmb3IgcnVsZSBpbiBpZ25vcmVfcnVsZXM6CisgICAgICAg
IGZvciBydWxlIGluIGNvbXBpbGVkX2lnbm9yZV9ydWxlczoKICAgICAgICAgICAgIGlmIHJ1bGUu
bWF0Y2gocnVsZV9wYXRoKToKICAgICAgICAgICAgICAgICBpZ25vcmVkLmFwcGVuZChmdWxscGF0
aCkKICAgICAgICAgICAgICAgICBicmVhawpAQCAtMTYxLDEwICsxOTUsMTggQEAgZGVmIGV4Y2x1
ZGVfaWdub3JlZChmaWxlcywgaWdub3JlX3J1bGVzKToKICAgICByZXR1cm4gY2hhbmdlZCwgaWdu
b3JlZAogCiAKLWRlZiBmaWxlc19jaGFuZ2VkKHJldmlzaCwgaWdub3JlX3J1bGVzPU5vbmUsIGlu
Y2x1ZGVfdW5jb21taXR0ZWQ9RmFsc2UsIGluY2x1ZGVfbmV3PUZhbHNlKToKLSAgICAiIiJHZXQg
YW5kIHJldHVybiBmaWxlcyBjaGFuZ2VkIHNpbmNlIGN1cnJlbnQgYnJhbmNoIGRpdmVyZ2VkIGZy
b20gbWFzdGVyLAotICAgIGV4Y2x1ZGluZyB0aG9zZSB0aGF0IGFyZSBsb2NhdGVkIHdpdGhpbiBh
bnkgcGF0aCBtYXRjaGVkIGJ5Ci0gICAgYGlnbm9yZV9ydWxlc2AuIiIiCitkZWYgZmlsZXNfY2hh
bmdlZChyZXZpc2gsICAjIHR5cGU6IHN0cgorICAgICAgICAgICAgICAgICAgaWdub3JlX3J1bGVz
PU5vbmUsICAjIHR5cGU6IE9wdGlvbmFsW1NlcXVlbmNlW3N0cl1dCisgICAgICAgICAgICAgICAg
ICBpbmNsdWRlX3VuY29tbWl0dGVkPUZhbHNlLCAgIyB0eXBlOiBib29sCisgICAgICAgICAgICAg
ICAgICBpbmNsdWRlX25ldz1GYWxzZSAgIyB0eXBlOiBib29sCisgICAgICAgICAgICAgICAgICAp
OgorICAgICMgdHlwZTogKC4uLikgLT4gVHVwbGVbTGlzdFtUZXh0XSwgTGlzdFtUZXh0XV0KKyAg
ICAiIiJGaW5kIGZpbGVzIGNoYW5nZWQgaW4gY2VydGFpbiByZXZpc2lvbnMuCisKKyAgICBUaGUg
ZnVuY3Rpb24gcGFzc2VzIGByZXZpc2hgIGRpcmVjdGx5IHRvIGBnaXQgZGlmZmAsIHNvIGByZXZp
c2hgIGNhbiBoYXZlIGEKKyAgICB2YXJpZXR5IG9mIGZvcm1zOyBzZWUgYGdpdCBkaWZmIC0taGVs
cGAgZm9yIGRldGFpbHMuIEZpbGVzIGluIHRoZSBkaWZmIHRoYXQKKyAgICBhcmUgbWF0Y2hlZCBi
eSBgaWdub3JlX3J1bGVzYCBhcmUgZXhjbHVkZWQuCisgICAgIiIiCiAgICAgZmlsZXMgPSByZXBv
X2ZpbGVzX2NoYW5nZWQocmV2aXNoLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlu
Y2x1ZGVfdW5jb21taXR0ZWQ9aW5jbHVkZV91bmNvbW1pdHRlZCwKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBpbmNsdWRlX25ldz1pbmNsdWRlX25ldykKQEAgLTE3NSw0MSArMjE3LDM1
IEBAIGRlZiBmaWxlc19jaGFuZ2VkKHJldmlzaCwgaWdub3JlX3J1bGVzPU5vbmUsIGluY2x1ZGVf
dW5jb21taXR0ZWQ9RmFsc2UsIGluY2x1ZGVfCiAKIAogZGVmIF9pbl9yZXBvX3Jvb3QoZnVsbF9w
YXRoKToKKyAgICAjIHR5cGU6IChVbmlvbltieXRlcywgVGV4dF0pIC0+IGJvb2wKICAgICByZWxf
cGF0aCA9IG9zLnBhdGgucmVscGF0aChmdWxsX3BhdGgsIHdwdF9yb290KQogICAgIHBhdGhfY29t
cG9uZW50cyA9IHJlbF9wYXRoLnNwbGl0KG9zLnNlcCkKICAgICByZXR1cm4gbGVuKHBhdGhfY29t
cG9uZW50cykgPCAyCiAKIAotZGVmIF9pbml0X21hbmlmZXN0X2NhY2hlKCk6Ci0gICAgYyA9IHt9
Ci0KLSAgICBkZWYgbG9hZChtYW5pZmVzdF9wYXRoPU5vbmUpOgotICAgICAgICBpZiBtYW5pZmVz
dF9wYXRoIGlzIE5vbmU6Ci0gICAgICAgICAgICBtYW5pZmVzdF9wYXRoID0gb3MucGF0aC5qb2lu
KHdwdF9yb290LCAiTUFOSUZFU1QuanNvbiIpCi0gICAgICAgIGlmIGMuZ2V0KG1hbmlmZXN0X3Bh
dGgpOgotICAgICAgICAgICAgcmV0dXJuIGNbbWFuaWZlc3RfcGF0aF0KLSAgICAgICAgIyBjYWNo
ZSBhdCBtb3N0IG9uZSBwYXRoOm1hbmlmZXN0Ci0gICAgICAgIGMuY2xlYXIoKQotICAgICAgICB3
cHRfbWFuaWZlc3QgPSBtYW5pZmVzdC5sb2FkKHdwdF9yb290LCBtYW5pZmVzdF9wYXRoKQotICAg
ICAgICBpZiB3cHRfbWFuaWZlc3QgaXMgTm9uZToKLSAgICAgICAgICAgIHdwdF9tYW5pZmVzdCA9
IG1hbmlmZXN0Lk1hbmlmZXN0KCkKLSAgICAgICAgdXBkYXRlLnVwZGF0ZSh3cHRfcm9vdCwgd3B0
X21hbmlmZXN0KQotICAgICAgICBjW21hbmlmZXN0X3BhdGhdID0gd3B0X21hbmlmZXN0Ci0gICAg
ICAgIHJldHVybiBjW21hbmlmZXN0X3BhdGhdCi0gICAgcmV0dXJuIGxvYWQKLQotCi1sb2FkX21h
bmlmZXN0ID0gX2luaXRfbWFuaWZlc3RfY2FjaGUoKQorZGVmIGxvYWRfbWFuaWZlc3QobWFuaWZl
c3RfcGF0aD1Ob25lLCBtYW5pZmVzdF91cGRhdGU9VHJ1ZSk6CisgICAgIyB0eXBlOiAoT3B0aW9u
YWxbc3RyXSwgYm9vbCkgLT4gbWFuaWZlc3QuTWFuaWZlc3QKKyAgICBpZiBtYW5pZmVzdF9wYXRo
IGlzIE5vbmU6CisgICAgICAgIG1hbmlmZXN0X3BhdGggPSBvcy5wYXRoLmpvaW4od3B0X3Jvb3Qs
ICJNQU5JRkVTVC5qc29uIikKKyAgICByZXR1cm4gbWFuaWZlc3QubG9hZF9hbmRfdXBkYXRlKHdw
dF9yb290LCBtYW5pZmVzdF9wYXRoLCAiLyIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICB1cGRhdGU9bWFuaWZlc3RfdXBkYXRlKQogCiAKLWRlZiBhZmZlY3RlZF90ZXN0Zmls
ZXMoZmlsZXNfY2hhbmdlZCwgc2tpcF90ZXN0cywgbWFuaWZlc3RfcGF0aD1Ob25lKToKK2RlZiBh
ZmZlY3RlZF90ZXN0ZmlsZXMoZmlsZXNfY2hhbmdlZCwgICMgdHlwZTogSXRlcmFibGVbVGV4dF0K
KyAgICAgICAgICAgICAgICAgICAgICAgc2tpcF9kaXJzPU5vbmUsICAjIHR5cGU6IE9wdGlvbmFs
W1NldFtzdHJdXQorICAgICAgICAgICAgICAgICAgICAgICBtYW5pZmVzdF9wYXRoPU5vbmUsICAj
IHR5cGU6IE9wdGlvbmFsW3N0cl0KKyAgICAgICAgICAgICAgICAgICAgICAgbWFuaWZlc3RfdXBk
YXRlPVRydWUgICMgdHlwZTogYm9vbAorICAgICAgICAgICAgICAgICAgICAgICApOgorICAgICMg
dHlwZTogKC4uLikgLT4gVHVwbGVbU2V0W1RleHRdLCBTZXRbc3RyXV0KICAgICAiIiJEZXRlcm1p
bmUgYW5kIHJldHVybiBsaXN0IG9mIHRlc3QgZmlsZXMgdGhhdCByZWZlcmVuY2UgY2hhbmdlZCBm
aWxlcy4iIiIKKyAgICBpZiBza2lwX2RpcnMgaXMgTm9uZToKKyAgICAgICAgc2tpcF9kaXJzID0g
eyJjb25mb3JtYW5jZS1jaGVja2VycyIsICJkb2NzIiwgInRvb2xzIn0KICAgICBhZmZlY3RlZF90
ZXN0ZmlsZXMgPSBzZXQoKQogICAgICMgRXhjbHVkZSBmaWxlcyB0aGF0IGFyZSBpbiB0aGUgcmVw
byByb290LCBiZWNhdXNlCiAgICAgIyB0aGV5IGFyZSBub3QgcGFydCBvZiBhbnkgdGVzdC4KICAg
ICBmaWxlc19jaGFuZ2VkID0gW2YgZm9yIGYgaW4gZmlsZXNfY2hhbmdlZCBpZiBub3QgX2luX3Jl
cG9fcm9vdChmKV0KICAgICBub250ZXN0c19jaGFuZ2VkID0gc2V0KGZpbGVzX2NoYW5nZWQpCi0g
ICAgd3B0X21hbmlmZXN0ID0gbG9hZF9tYW5pZmVzdChtYW5pZmVzdF9wYXRoKQorICAgIHdwdF9t
YW5pZmVzdCA9IGxvYWRfbWFuaWZlc3QobWFuaWZlc3RfcGF0aCwgbWFuaWZlc3RfdXBkYXRlKQog
CiAgICAgdGVzdF90eXBlcyA9IFsidGVzdGhhcm5lc3MiLCAicmVmdGVzdCIsICJ3ZHNwZWMiXQog
ICAgIHN1cHBvcnRfZmlsZXMgPSB7b3MucGF0aC5qb2luKHdwdF9yb290LCBwYXRoKQpAQCAtMjE5
LDE3ICsyNTUsMjIgQEAgZGVmIGFmZmVjdGVkX3Rlc3RmaWxlcyhmaWxlc19jaGFuZ2VkLCBza2lw
X3Rlc3RzLCBtYW5pZmVzdF9wYXRoPU5vbmUpOgogICAgIHRlc3RfZmlsZXMgPSB7b3MucGF0aC5q
b2luKHdwdF9yb290LCBwYXRoKQogICAgICAgICAgICAgICAgICAgZm9yIF8sIHBhdGgsIF8gaW4g
d3B0X21hbmlmZXN0Lml0ZXJ0eXBlcygqdGVzdF90eXBlcyl9CiAKKyAgICBpbnRlcmZhY2VfZGly
ID0gb3MucGF0aC5qb2luKHdwdF9yb290LCAnaW50ZXJmYWNlcycpCisgICAgaW50ZXJmYWNlc19m
aWxlcyA9IHtvcy5wYXRoLmpvaW4od3B0X3Jvb3QsICdpbnRlcmZhY2VzJywgZmlsZW5hbWUpCisg
ICAgICAgICAgICAgICAgICAgICAgICBmb3IgZmlsZW5hbWUgaW4gb3MubGlzdGRpcihpbnRlcmZh
Y2VfZGlyKX0KKworICAgIGludGVyZmFjZXNfY2hhbmdlZCA9IGludGVyZmFjZXNfZmlsZXMuaW50
ZXJzZWN0aW9uKG5vbnRlc3RzX2NoYW5nZWQpCiAgICAgbm9udGVzdHNfY2hhbmdlZCA9IG5vbnRl
c3RzX2NoYW5nZWQuaW50ZXJzZWN0aW9uKHN1cHBvcnRfZmlsZXMpCiAKLSAgICB0ZXN0c19jaGFu
Z2VkID0gc2V0KGl0ZW0gZm9yIGl0ZW0gaW4gZmlsZXNfY2hhbmdlZCBpZiBpdGVtIGluIHRlc3Rf
ZmlsZXMpCisgICAgdGVzdHNfY2hhbmdlZCA9IHtpdGVtIGZvciBpdGVtIGluIGZpbGVzX2NoYW5n
ZWQgaWYgaXRlbSBpbiB0ZXN0X2ZpbGVzfQogCiAgICAgbm9udGVzdF9jaGFuZ2VkX3BhdGhzID0g
c2V0KCkKLSAgICByZXdyaXRlcyA9IHsiL3Jlc291cmNlcy93ZWJpZGwyL2xpYi93ZWJpZGwyLmpz
IjogIi9yZXNvdXJjZXMvV2ViSURMUGFyc2VyLmpzIn0KKyAgICByZXdyaXRlcyA9IHsiL3Jlc291
cmNlcy93ZWJpZGwyL2xpYi93ZWJpZGwyLmpzIjogIi9yZXNvdXJjZXMvV2ViSURMUGFyc2VyLmpz
In0gICMgdHlwZTogRGljdFtUZXh0LCBUZXh0XQogICAgIGZvciBmdWxsX3BhdGggaW4gbm9udGVz
dHNfY2hhbmdlZDoKICAgICAgICAgcmVsX3BhdGggPSBvcy5wYXRoLnJlbHBhdGgoZnVsbF9wYXRo
LCB3cHRfcm9vdCkKICAgICAgICAgcGF0aF9jb21wb25lbnRzID0gcmVsX3BhdGguc3BsaXQob3Mu
c2VwKQogICAgICAgICB0b3BfbGV2ZWxfc3ViZGlyID0gcGF0aF9jb21wb25lbnRzWzBdCi0gICAg
ICAgIGlmIHRvcF9sZXZlbF9zdWJkaXIgaW4gc2tpcF90ZXN0czoKKyAgICAgICAgaWYgdG9wX2xl
dmVsX3N1YmRpciBpbiBza2lwX2RpcnM6CiAgICAgICAgICAgICBjb250aW51ZQogICAgICAgICBy
ZXBvX3BhdGggPSAiLyIgKyBvcy5wYXRoLnJlbHBhdGgoZnVsbF9wYXRoLCB3cHRfcm9vdCkucmVw
bGFjZShvcy5wYXRoLnNlcCwgIi8iKQogICAgICAgICBpZiByZXBvX3BhdGggaW4gcmV3cml0ZXM6
CkBAIC0yMzcsNyArMjc4LDExIEBAIGRlZiBhZmZlY3RlZF90ZXN0ZmlsZXMoZmlsZXNfY2hhbmdl
ZCwgc2tpcF90ZXN0cywgbWFuaWZlc3RfcGF0aD1Ob25lKToKICAgICAgICAgICAgIGZ1bGxfcGF0
aCA9IG9zLnBhdGguam9pbih3cHRfcm9vdCwgcmVwb19wYXRoWzE6XS5yZXBsYWNlKCIvIiwgb3Mu
cGF0aC5zZXApKQogICAgICAgICBub250ZXN0X2NoYW5nZWRfcGF0aHMuYWRkKChmdWxsX3BhdGgs
IHJlcG9fcGF0aCkpCiAKKyAgICBpbnRlcmZhY2VfbmFtZSA9IGxhbWJkYSB4OiBvcy5wYXRoLnNw
bGl0ZXh0KG9zLnBhdGguYmFzZW5hbWUoeCkpWzBdCisgICAgaW50ZXJmYWNlc19jaGFuZ2VkX25h
bWVzID0gbWFwKGludGVyZmFjZV9uYW1lLCBpbnRlcmZhY2VzX2NoYW5nZWQpCisKICAgICBkZWYg
YWZmZWN0ZWRfYnlfd2RzcGVjKHRlc3QpOgorICAgICAgICAjIHR5cGU6IChzdHIpIC0+IGJvb2wK
ICAgICAgICAgYWZmZWN0ZWQgPSBGYWxzZQogICAgICAgICBpZiB0ZXN0IGluIHdkc3BlY190ZXN0
X2ZpbGVzOgogICAgICAgICAgICAgZm9yIHN1cHBvcnRfZnVsbF9wYXRoLCBfIGluIG5vbnRlc3Rf
Y2hhbmdlZF9wYXRoczoKQEAgLTI1MiwxMSArMjk3LDIxIEBAIGRlZiBhZmZlY3RlZF90ZXN0Zmls
ZXMoZmlsZXNfY2hhbmdlZCwgc2tpcF90ZXN0cywgbWFuaWZlc3RfcGF0aD1Ob25lKToKICAgICAg
ICAgICAgICAgICAgICAgYnJlYWsKICAgICAgICAgcmV0dXJuIGFmZmVjdGVkCiAKKyAgICBkZWYg
YWZmZWN0ZWRfYnlfaW50ZXJmYWNlcyhmaWxlX2NvbnRlbnRzKToKKyAgICAgICAgIyB0eXBlOiAo
VW5pb25bYnl0ZXMsIFRleHRdKSAtPiBib29sCisgICAgICAgIGlmIGxlbihpbnRlcmZhY2VzX2No
YW5nZWRfbmFtZXMpID4gMDoKKyAgICAgICAgICAgIGlmICdpZGxoYXJuZXNzLmpzJyBpbiBmaWxl
X2NvbnRlbnRzOgorICAgICAgICAgICAgICAgIGZvciBpbnRlcmZhY2UgaW4gaW50ZXJmYWNlc19j
aGFuZ2VkX25hbWVzOgorICAgICAgICAgICAgICAgICAgICByZWdleCA9ICdbXCciXScgKyBpbnRl
cmZhY2UgKyAnKFxcLmlkbCk/W1wnIl0nCisgICAgICAgICAgICAgICAgICAgIGlmIHJlLnNlYXJj
aChyZWdleCwgZmlsZV9jb250ZW50cyk6CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4g
VHJ1ZQorICAgICAgICByZXR1cm4gRmFsc2UKKwogICAgIGZvciByb290LCBkaXJzLCBmbmFtZXMg
aW4gb3Mud2Fsayh3cHRfcm9vdCk6CiAgICAgICAgICMgV2FsayB0b3BfbGV2ZWxfc3ViZGlyIGxv
b2tpbmcgZm9yIHRlc3QgZmlsZXMgY29udGFpbmluZyBlaXRoZXIgdGhlCiAgICAgICAgICMgcmVs
YXRpdmUgZmlsZXBhdGggb3IgYWJzb2x1dGUgZmlsZXBhdGggdG8gdGhlIGNoYW5nZWQgZmlsZXMu
CiAgICAgICAgIGlmIHJvb3QgPT0gd3B0X3Jvb3Q6Ci0gICAgICAgICAgICBmb3IgZGlyX25hbWUg
aW4gc2tpcF90ZXN0czoKKyAgICAgICAgICAgIGZvciBkaXJfbmFtZSBpbiBza2lwX2RpcnM6CiAg
ICAgICAgICAgICAgICAgZGlycy5yZW1vdmUoZGlyX25hbWUpCiAgICAgICAgIGZvciBmbmFtZSBp
biBmbmFtZXM6CiAgICAgICAgICAgICB0ZXN0X2Z1bGxfcGF0aCA9IG9zLnBhdGguam9pbihyb290
LCBmbmFtZSkKQEAgLTI2OCwxNiArMzIzLDE2IEBAIGRlZiBhZmZlY3RlZF90ZXN0ZmlsZXMoZmls
ZXNfY2hhbmdlZCwgc2tpcF90ZXN0cywgbWFuaWZlc3RfcGF0aD1Ob25lKToKICAgICAgICAgICAg
ICAgICBjb250aW51ZQogCiAgICAgICAgICAgICB3aXRoIG9wZW4odGVzdF9mdWxsX3BhdGgsICJy
YiIpIGFzIGZoOgotICAgICAgICAgICAgICAgIGZpbGVfY29udGVudHMgPSBmaC5yZWFkKCkKLSAg
ICAgICAgICAgICAgICBpZiBmaWxlX2NvbnRlbnRzLnN0YXJ0c3dpdGgoIlx4ZmVceGZmIik6Ci0g
ICAgICAgICAgICAgICAgICAgIGZpbGVfY29udGVudHMgPSBmaWxlX2NvbnRlbnRzLmRlY29kZSgi
dXRmLTE2YmUiLCAicmVwbGFjZSIpCi0gICAgICAgICAgICAgICAgZWxpZiBmaWxlX2NvbnRlbnRz
LnN0YXJ0c3dpdGgoIlx4ZmZceGZlIik6Ci0gICAgICAgICAgICAgICAgICAgIGZpbGVfY29udGVu
dHMgPSBmaWxlX2NvbnRlbnRzLmRlY29kZSgidXRmLTE2bGUiLCAicmVwbGFjZSIpCisgICAgICAg
ICAgICAgICAgcmF3X2ZpbGVfY29udGVudHMgPSBmaC5yZWFkKCkgICMgdHlwZTogYnl0ZXMKKyAg
ICAgICAgICAgICAgICBpZiByYXdfZmlsZV9jb250ZW50cy5zdGFydHN3aXRoKCJceGZlXHhmZiIp
OgorICAgICAgICAgICAgICAgICAgICBmaWxlX2NvbnRlbnRzID0gcmF3X2ZpbGVfY29udGVudHMu
ZGVjb2RlKCJ1dGYtMTZiZSIsICJyZXBsYWNlIikgICMgdHlwZTogVGV4dAorICAgICAgICAgICAg
ICAgIGVsaWYgcmF3X2ZpbGVfY29udGVudHMuc3RhcnRzd2l0aCgiXHhmZlx4ZmUiKToKKyAgICAg
ICAgICAgICAgICAgICAgZmlsZV9jb250ZW50cyA9IHJhd19maWxlX2NvbnRlbnRzLmRlY29kZSgi
dXRmLTE2bGUiLCAicmVwbGFjZSIpCiAgICAgICAgICAgICAgICAgZWxzZToKLSAgICAgICAgICAg
ICAgICAgICAgZmlsZV9jb250ZW50cyA9IGZpbGVfY29udGVudHMuZGVjb2RlKCJ1dGY4IiwgInJl
cGxhY2UiKQorICAgICAgICAgICAgICAgICAgICBmaWxlX2NvbnRlbnRzID0gcmF3X2ZpbGVfY29u
dGVudHMuZGVjb2RlKCJ1dGY4IiwgInJlcGxhY2UiKQogICAgICAgICAgICAgICAgIGZvciBmdWxs
X3BhdGgsIHJlcG9fcGF0aCBpbiBub250ZXN0X2NoYW5nZWRfcGF0aHM6CiAgICAgICAgICAgICAg
ICAgICAgIHJlbF9wYXRoID0gb3MucGF0aC5yZWxwYXRoKGZ1bGxfcGF0aCwgcm9vdCkucmVwbGFj
ZShvcy5wYXRoLnNlcCwgIi8iKQotICAgICAgICAgICAgICAgICAgICBpZiByZWxfcGF0aCBpbiBm
aWxlX2NvbnRlbnRzIG9yIHJlcG9fcGF0aCBpbiBmaWxlX2NvbnRlbnRzOgorICAgICAgICAgICAg
ICAgICAgICBpZiByZWxfcGF0aCBpbiBmaWxlX2NvbnRlbnRzIG9yIHJlcG9fcGF0aCBpbiBmaWxl
X2NvbnRlbnRzIG9yIGFmZmVjdGVkX2J5X2ludGVyZmFjZXMoZmlsZV9jb250ZW50cyk6CiAgICAg
ICAgICAgICAgICAgICAgICAgICBhZmZlY3RlZF90ZXN0ZmlsZXMuYWRkKHRlc3RfZnVsbF9wYXRo
KQogICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWUKIApAQCAtMjg1LDExICszNDAsMTQg
QEAgZGVmIGFmZmVjdGVkX3Rlc3RmaWxlcyhmaWxlc19jaGFuZ2VkLCBza2lwX3Rlc3RzLCBtYW5p
ZmVzdF9wYXRoPU5vbmUpOgogCiAKIGRlZiBnZXRfcGFyc2VyKCk6CisgICAgIyB0eXBlOiAoKSAt
PiBhcmdwYXJzZS5Bcmd1bWVudFBhcnNlcgogICAgIHBhcnNlciA9IGFyZ3BhcnNlLkFyZ3VtZW50
UGFyc2VyKCkKICAgICBwYXJzZXIuYWRkX2FyZ3VtZW50KCJyZXZpc2giLCBkZWZhdWx0PU5vbmUs
IGhlbHA9IkNvbW1pdHMgdG8gY29uc2lkZXIuIERlZmF1bHRzIHRvIHRoZSAiCiAgICAgICAgICAg
ICAgICAgICAgICAgICAiY29tbWl0cyBvbiB0aGUgY3VycmVudCBicmFuY2giLCBuYXJncz0iPyIp
Ci0gICAgcGFyc2VyLmFkZF9hcmd1bWVudCgiLS1pZ25vcmUtcnVsZXMiLCBuYXJncz0iKiIsIHR5
cGU9c2V0LAotICAgICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdD1zZXQoWyJyZXNvdXJjZXMv
dGVzdGhhcm5lc3MqIl0pLAorICAgICMgVE9ETzogQ29uc29saWRhdGUgd2l0aCBgLi93cHQgcnVu
IC0tYWZmZWN0ZWRgOgorICAgICMgaHR0cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9ybS10ZXN0
cy93cHQvaXNzdWVzLzE0NTYwCisgICAgcGFyc2VyLmFkZF9hcmd1bWVudCgiLS1pZ25vcmUtcnVs
ZXMiLCBuYXJncz0iKiIsIHR5cGU9c2V0LCAgIyB0eXBlOiBpZ25vcmUKKyAgICAgICAgICAgICAg
ICAgICAgICAgIGRlZmF1bHQ9eyJyZXNvdXJjZXMvdGVzdGhhcm5lc3MqIn0sCiAgICAgICAgICAg
ICAgICAgICAgICAgICBoZWxwPSJSdWxlcyBmb3IgcGF0aHMgdG8gZXhjbHVkZSBmcm9tIGxpc3Rz
IG9mIGNoYW5nZXMuIFJ1bGVzIGFyZSBwYXRocyAiCiAgICAgICAgICAgICAgICAgICAgICAgICAi
cmVsYXRpdmUgdG8gdGhlIHRlc3Qgcm9vdCwgd2l0aCAqIGJlZm9yZSBhIHNlcGFyYXRvciBvciB0
aGUgZW5kIG1hdGNoaW5nICIKICAgICAgICAgICAgICAgICAgICAgICAgICJhbnl0aGluZyBvdGhl
ciB0aGFuIGEgcGF0aCBzZXBhcmF0b3IgYW5kICoqIGluIHRoYXQgcG9zaXRpb24gbWF0Y2hpbmcg
IgpAQCAtMzA3LDYgKzM2NSw3IEBAIGRlZiBnZXRfcGFyc2VyKCk6CiAKIAogZGVmIGdldF9wYXJz
ZXJfYWZmZWN0ZWQoKToKKyAgICAjIHR5cGU6ICgpIC0+IGFyZ3BhcnNlLkFyZ3VtZW50UGFyc2Vy
CiAgICAgcGFyc2VyID0gZ2V0X3BhcnNlcigpCiAgICAgcGFyc2VyLmFkZF9hcmd1bWVudCgiLS1t
ZXRhZGF0YSIsCiAgICAgICAgICAgICAgICAgICAgICAgICBkZXN0PSJtZXRhZGF0YV9yb290IiwK
QEAgLTMxNywxMyArMzc2LDE4IEBAIGRlZiBnZXRfcGFyc2VyX2FmZmVjdGVkKCk6CiAKIAogZGVm
IGdldF9yZXZpc2goKiprd2FyZ3MpOgotICAgIHJldmlzaCA9IGt3YXJnc1sicmV2aXNoIl0KLSAg
ICBpZiBrd2FyZ3NbInJldmlzaCJdIGlzIE5vbmU6CisgICAgIyB0eXBlOiAoKipBbnkpIC0+IGJ5
dGVzCisgICAgcmV2aXNoID0ga3dhcmdzLmdldCgicmV2aXNoIikKKyAgICBpZiByZXZpc2ggaXMg
Tm9uZToKICAgICAgICAgcmV2aXNoID0gIiVzLi5IRUFEIiAlIGJyYW5jaF9wb2ludCgpCisgICAg
aWYgaXNpbnN0YW5jZShyZXZpc2gsIHNpeC50ZXh0X3R5cGUpOgorICAgICAgICByZXZpc2ggPSBy
ZXZpc2guZW5jb2RlKCJ1dGY4IikKKyAgICBhc3NlcnQgaXNpbnN0YW5jZShyZXZpc2gsIHNpeC5i
aW5hcnlfdHlwZSkKICAgICByZXR1cm4gcmV2aXNoCiAKIAogZGVmIHJ1bl9jaGFuZ2VkX2ZpbGVz
KCoqa3dhcmdzKToKKyAgICAjIHR5cGU6ICgqKkFueSkgLT4gTm9uZQogICAgIHJldmlzaCA9IGdl
dF9yZXZpc2goKiprd2FyZ3MpCiAgICAgY2hhbmdlZCwgXyA9IGZpbGVzX2NoYW5nZWQocmV2aXNo
LCBrd2FyZ3NbImlnbm9yZV9ydWxlcyJdLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGluY2x1ZGVfdW5jb21taXR0ZWQ9a3dhcmdzWyJtb2RpZmllZCJdLApAQCAtMzMyLDEwICszOTYs
MTEgQEAgZGVmIHJ1bl9jaGFuZ2VkX2ZpbGVzKCoqa3dhcmdzKToKICAgICBzZXBhcmF0b3IgPSAi
XDAiIGlmIGt3YXJnc1sibnVsbCJdIGVsc2UgIlxuIgogCiAgICAgZm9yIGl0ZW0gaW4gc29ydGVk
KGNoYW5nZWQpOgotICAgICAgICBzeXMuc3Rkb3V0LndyaXRlKG9zLnBhdGgucmVscGF0aChpdGVt
LCB3cHRfcm9vdCkgKyBzZXBhcmF0b3IpCisgICAgICAgIHN5cy5zdGRvdXQud3JpdGUob3MucGF0
aC5yZWxwYXRoKGl0ZW0uZW5jb2RlKCJ1dGY4IiksIHdwdF9yb290KSArIHNlcGFyYXRvcikKIAog
CiBkZWYgcnVuX3Rlc3RzX2FmZmVjdGVkKCoqa3dhcmdzKToKKyAgICAjIHR5cGU6ICgqKkFueSkg
LT4gTm9uZQogICAgIHJldmlzaCA9IGdldF9yZXZpc2goKiprd2FyZ3MpCiAgICAgY2hhbmdlZCwg
XyA9IGZpbGVzX2NoYW5nZWQocmV2aXNoLCBrd2FyZ3NbImlnbm9yZV9ydWxlcyJdLAogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGluY2x1ZGVfdW5jb21taXR0ZWQ9a3dhcmdzWyJtb2Rp
ZmllZCJdLApAQCAtMzQzLDcgKzQwOCw3IEBAIGRlZiBydW5fdGVzdHNfYWZmZWN0ZWQoKiprd2Fy
Z3MpOgogICAgIG1hbmlmZXN0X3BhdGggPSBvcy5wYXRoLmpvaW4oa3dhcmdzWyJtZXRhZGF0YV9y
b290Il0sICJNQU5JRkVTVC5qc29uIikKICAgICB0ZXN0c19jaGFuZ2VkLCBkZXBlbmRlbnRzID0g
YWZmZWN0ZWRfdGVzdGZpbGVzKAogICAgICAgICBjaGFuZ2VkLAotICAgICAgICBzZXQoWyJjb25m
b3JtYW5jZS1jaGVja2VycyIsICJkb2NzIiwgInRvb2xzIl0pLAorICAgICAgICB7ImNvbmZvcm1h
bmNlLWNoZWNrZXJzIiwgImRvY3MiLCAidG9vbHMifSwKICAgICAgICAgbWFuaWZlc3RfcGF0aD1t
YW5pZmVzdF9wYXRoCiAgICAgKQogCkBAIC0zNjEsNiArNDI2LDYgQEAgZGVmIHJ1bl90ZXN0c19h
ZmZlY3RlZCgqKmt3YXJncyk6CiAgICAgICAgIGlmIGt3YXJnc1sic2hvd190eXBlIl06CiAgICAg
ICAgICAgICBpdGVtX3R5cGVzID0ge2kuaXRlbV90eXBlIGZvciBpIGluIHdwdF9tYW5pZmVzdC5p
dGVycGF0aChyZXN1bHRzWyJwYXRoIl0pfQogICAgICAgICAgICAgaWYgbGVuKGl0ZW1fdHlwZXMp
ICE9IDE6Ci0gICAgICAgICAgICAgICAgaXRlbV90eXBlcyA9IFsiICIuam9pbihpdGVtX3R5cGVz
KV0KKyAgICAgICAgICAgICAgICBpdGVtX3R5cGVzID0geyIgIi5qb2luKGl0ZW1fdHlwZXMpfQog
ICAgICAgICAgICAgcmVzdWx0c1siaXRlbV90eXBlIl0gPSBpdGVtX3R5cGVzLnBvcCgpCiAgICAg
ICAgIHN5cy5zdGRvdXQud3JpdGUobWVzc2FnZS5mb3JtYXQoKipyZXN1bHRzKSkKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0
L3Rlc3RzL3Rlc3RfYnJvd3Nlci5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvd3B0L3Rlc3RzL3Rlc3RfYnJvd3Nlci5weQpuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uMjViNjZlN2Q5MjIKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdC90
ZXN0cy90ZXN0X2Jyb3dzZXIucHkKQEAgLTAsMCArMSwxMDMgQEAKK2ltcG9ydCBtb2NrCitpbXBv
cnQgc3VicHJvY2VzcworaW1wb3J0IGxvZ2dpbmcKK2ltcG9ydCBzeXMKK2ltcG9ydCBweXRlc3QK
KworZnJvbSB0b29scy53cHQgaW1wb3J0IGJyb3dzZXIKKworCitsb2dnZXIgPSBsb2dnaW5nLmdl
dExvZ2dlcigpCisKKworQG1vY2sucGF0Y2goJ3N1YnByb2Nlc3MuY2hlY2tfb3V0cHV0JykKK2Rl
ZiB0ZXN0X3NhZmFyaV92ZXJzaW9uKG1vY2tlZF9jaGVja19vdXRwdXQpOgorICAgIHNhZmFyaSA9
IGJyb3dzZXIuU2FmYXJpKGxvZ2dlcikKKworICAgICMgU2FmYXJpCisgICAgbW9ja2VkX2NoZWNr
X291dHB1dC5yZXR1cm5fdmFsdWUgPSAnSW5jbHVkZWQgd2l0aCBTYWZhcmkgMTIuMSAoMTQ2MDcu
MS4xMSknCisgICAgYXNzZXJ0IHNhZmFyaS52ZXJzaW9uKHdlYmRyaXZlcl9iaW5hcnk9InNhZmFy
aWRyaXZlciIpID09ICcxMi4xICgxNDYwNy4xLjExKScKKworICAgICMgU2FmYXJpIFRlY2hub2xv
Z3kgUHJldmlldworICAgIG1vY2tlZF9jaGVja19vdXRwdXQucmV0dXJuX3ZhbHVlID0gJ0luY2x1
ZGVkIHdpdGggU2FmYXJpIFRlY2hub2xvZ3kgUHJldmlldyAoUmVsZWFzZSA2NywgMTM2MDcuMS45
LjAuMSknCisgICAgYXNzZXJ0IHNhZmFyaS52ZXJzaW9uKHdlYmRyaXZlcl9iaW5hcnk9InNhZmFy
aWRyaXZlciIpID09ICdUZWNobm9sb2d5IFByZXZpZXcgKFJlbGVhc2UgNjcsIDEzNjA3LjEuOS4w
LjEpJworCitAbW9jay5wYXRjaCgnc3VicHJvY2Vzcy5jaGVja19vdXRwdXQnKQorZGVmIHRlc3Rf
c2FmYXJpX3ZlcnNpb25fZXJyb3JzKG1vY2tlZF9jaGVja19vdXRwdXQpOgorICAgIHNhZmFyaSA9
IGJyb3dzZXIuU2FmYXJpKGxvZ2dlcikKKworICAgICMgTm8gd2ViZHJpdmVyX2JpbmFyeQorICAg
IGFzc2VydCBzYWZhcmkudmVyc2lvbigpIGlzIE5vbmUKKworICAgICMgYHNhZmFyaWRyaXZlciAt
LXZlcnNpb25gIHJldHVybiBnaWJiZXJpc2gKKyAgICBtb2NrZWRfY2hlY2tfb3V0cHV0LnJldHVy
bl92YWx1ZSA9ICdnaWJiZXJpc2gnCisgICAgYXNzZXJ0IHNhZmFyaS52ZXJzaW9uKHdlYmRyaXZl
cl9iaW5hcnk9InNhZmFyaWRyaXZlciIpIGlzIE5vbmUKKworICAgICMgYHNhZmFyaWRyaXZlciAt
LXZlcnNpb25gIGZhaWxzIChhcyBpdCBkb2VzIGZvciBTYWZhcmkgPD0xMi4wKQorICAgIG1vY2tl
ZF9jaGVja19vdXRwdXQucmV0dXJuX3ZhbHVlID0gJ2R1bW15JworICAgIG1vY2tlZF9jaGVja19v
dXRwdXQuc2lkZV9lZmZlY3QgPSBzdWJwcm9jZXNzLkNhbGxlZFByb2Nlc3NFcnJvcigxLCAnY21k
JykKKyAgICBhc3NlcnQgc2FmYXJpLnZlcnNpb24od2ViZHJpdmVyX2JpbmFyeT0ic2FmYXJpZHJp
dmVyIikgaXMgTm9uZQorCisKK0Btb2NrLnBhdGNoKCdzdWJwcm9jZXNzLmNoZWNrX291dHB1dCcp
CitkZWYgdGVzdF93ZWJraXRndGtfbWluaWJyb3dzZXJfdmVyc2lvbihtb2NrZWRfY2hlY2tfb3V0
cHV0KToKKyAgICB3ZWJraXRndGtfbWluaWJyb3dzZXIgPSBicm93c2VyLldlYktpdEdUS01pbmlC
cm93c2VyKGxvZ2dlcikKKworICAgICMgc3RhYmxlIHZlcnNpb24KKyAgICBtb2NrZWRfY2hlY2tf
b3V0cHV0LnJldHVybl92YWx1ZSA9ICdXZWJLaXRHVEsgMi4yNi4xXG4nCisgICAgYXNzZXJ0IHdl
YmtpdGd0a19taW5pYnJvd3Nlci52ZXJzaW9uKGJpbmFyeT0nTWluaUJyb3dzZXInKSA9PSAnMi4y
Ni4xJworCisgICAgIyBuaWdodGx5IHZlcnNpb24KKyAgICBtb2NrZWRfY2hlY2tfb3V0cHV0LnJl
dHVybl92YWx1ZSA9ICdXZWJLaXRHVEsgMi4yNy4xIChyMjUwODIzKVxuJworICAgIGFzc2VydCB3
ZWJraXRndGtfbWluaWJyb3dzZXIudmVyc2lvbihiaW5hcnk9J01pbmlCcm93c2VyJykgPT0gJzIu
MjcuMSAocjI1MDgyMyknCisKK0Btb2NrLnBhdGNoKCdzdWJwcm9jZXNzLmNoZWNrX291dHB1dCcp
CitkZWYgdGVzdF93ZWJraXRndGtfbWluaWJyb3dzZXJfdmVyc2lvbl9lcnJvcnMobW9ja2VkX2No
ZWNrX291dHB1dCk6CisgICAgd2Via2l0Z3RrX21pbmlicm93c2VyID0gYnJvd3Nlci5XZWJLaXRH
VEtNaW5pQnJvd3Nlcihsb2dnZXIpCisKKyAgICAjIE5vIGJpbmFyeQorICAgIGFzc2VydCB3ZWJr
aXRndGtfbWluaWJyb3dzZXIudmVyc2lvbigpIGlzIE5vbmUKKworICAgICMgYE1pbmlCcm93c2Vy
IC0tdmVyc2lvbmAgcmV0dXJuIGdpYmJlcmlzaAorICAgIG1vY2tlZF9jaGVja19vdXRwdXQucmV0
dXJuX3ZhbHVlID0gJ2dpYmJlcmlzaCcKKyAgICBhc3NlcnQgd2Via2l0Z3RrX21pbmlicm93c2Vy
LnZlcnNpb24oYmluYXJ5PSdNaW5pQnJvd3NlcicpIGlzIE5vbmUKKworICAgICMgYE1pbmlCcm93
c2VyIC0tdmVyc2lvbmAgZmFpbHMgKGFzIGl0IGRvZXMgZm9yIE1pbmlCcm93c2VyIDw9IDIuMjYu
MCkKKyAgICBtb2NrZWRfY2hlY2tfb3V0cHV0LnJldHVybl92YWx1ZSA9ICdkdW1teScKKyAgICBt
b2NrZWRfY2hlY2tfb3V0cHV0LnNpZGVfZWZmZWN0ID0gc3VicHJvY2Vzcy5DYWxsZWRQcm9jZXNz
RXJyb3IoMSwgJ2NtZCcpCisgICAgYXNzZXJ0IHdlYmtpdGd0a19taW5pYnJvd3Nlci52ZXJzaW9u
KGJpbmFyeT0nTWluaUJyb3dzZXInKSBpcyBOb25lCisKKworIyBUaGUgdGVzdCBiZWxvdyBkb2Vz
bid0IHdvcmsgb24gV2luZG93cyBiZWNhdXNlIGRpc3R1dGlscyBmaW5kX2JpbmFyeSgpCisjIG9u
IFdpbmRvd3Mgb25seSB3b3JrcyBpZiB0aGUgYmluYXJ5IG5hbWUgZW5kcyB3aXRoIGEgIi5leGUi
IHN1ZmZpeC4KKyMgQnV0LCBXZWJLaXRHVEsgaXRzZWxmIGRvZXNuJ3Qgc3VwcG9ydCBXaW5kb3dz
LCBzbyBsZXRzIHNraXAgdGhlIHRlc3QuCitAcHl0ZXN0Lm1hcmsuc2tpcGlmKHN5cy5wbGF0Zm9y
bS5zdGFydHN3aXRoKCd3aW4nKSwgcmVhc29uPSd0ZXN0IG5vdCBuZWVkZWQgb24gV2luZG93cycp
CitAbW9jay5wYXRjaCgnb3MucGF0aC5pc2ZpbGUnKQorZGVmIHRlc3Rfd2Via2l0Z3RrX21pbmli
cm93c2VyX2ZpbmRfYmluYXJ5KG1vY2tlZF9vc19wYXRoX2lzZmlsZSk6CisgICAgd2Via2l0Z3Rr
X21pbmlicm93c2VyID0gYnJvd3Nlci5XZWJLaXRHVEtNaW5pQnJvd3Nlcihsb2dnZXIpCisKKyAg
ICAjIE5vIE1pbmlCcm93c2VyIGZvdW5kCisgICAgbW9ja2VkX29zX3BhdGhfaXNmaWxlLnNpZGVf
ZWZmZWN0ID0gbGFtYmRhIHBhdGg6IHBhdGggPT0gJy9ldGMvcGFzc3dkJworICAgIGFzc2VydCB3
ZWJraXRndGtfbWluaWJyb3dzZXIuZmluZF9iaW5hcnkoKSBpcyBOb25lCisKKyAgICAjIEZvdW5k
IG9uIHRoZSBkZWZhdWx0IEZlZG9yYSBwYXRoCisgICAgZmVkb3JhX21pbmlicm93c2VyX3BhdGgg
PSAnL3Vzci9saWJleGVjL3dlYmtpdDJndGstNC4wL01pbmlCcm93c2VyJworICAgIG1vY2tlZF9v
c19wYXRoX2lzZmlsZS5zaWRlX2VmZmVjdCA9IGxhbWJkYSBwYXRoOiBwYXRoID09IGZlZG9yYV9t
aW5pYnJvd3Nlcl9wYXRoCisgICAgYXNzZXJ0IHdlYmtpdGd0a19taW5pYnJvd3Nlci5maW5kX2Jp
bmFyeSgpID09IGZlZG9yYV9taW5pYnJvd3Nlcl9wYXRoCisKKyAgICAjIEZvdW5kIG9uIHRoZSBk
ZWZhdWx0IERlYmlhbiBwYXRoIGZvciBBTUQ2NCAoZ2NjIG5vdCBhdmFpbGFibGUpCisgICAgZGVi
aWFuX21pbmlicm93c2VyX3BhdGhfYW1kNjQgPSAnL3Vzci9saWIveDg2XzY0LWxpbnV4LWdudS93
ZWJraXQyZ3RrLTQuMC9NaW5pQnJvd3NlcicKKyAgICBtb2NrZWRfb3NfcGF0aF9pc2ZpbGUuc2lk
ZV9lZmZlY3QgPSBsYW1iZGEgcGF0aDogcGF0aCA9PSBkZWJpYW5fbWluaWJyb3dzZXJfcGF0aF9h
bWQ2NAorICAgIGFzc2VydCB3ZWJraXRndGtfbWluaWJyb3dzZXIuZmluZF9iaW5hcnkoKSA9PSBk
ZWJpYW5fbWluaWJyb3dzZXJfcGF0aF9hbWQ2NAorCisgICAgIyBGb3VuZCBvbiB0aGUgZGVmYXVs
dCBEZWJpYW4gcGF0aCBmb3IgQU1ENjQgKGdjYyBhdmFpbGFibGUgYnV0IGdpdmVzIGFuIGVycm9y
KQorICAgIGRlYmlhbl9taW5pYnJvd3Nlcl9wYXRoX2FtZDY0ID0gJy91c3IvbGliL3g4Nl82NC1s
aW51eC1nbnUvd2Via2l0Mmd0ay00LjAvTWluaUJyb3dzZXInCisgICAgbW9ja2VkX29zX3BhdGhf
aXNmaWxlLnNpZGVfZWZmZWN0ID0gbGFtYmRhIHBhdGg6IHBhdGggaW4gW2RlYmlhbl9taW5pYnJv
d3Nlcl9wYXRoX2FtZDY0LCAnL3Vzci9iaW4vZ2NjJ10KKyAgICB3aXRoIG1vY2sucGF0Y2goJ3N1
YnByb2Nlc3MuY2hlY2tfb3V0cHV0JywgcmV0dXJuX3ZhbHVlID0gJ2Vycm9yJywgc2lkZV9lZmZl
Y3QgPSBzdWJwcm9jZXNzLkNhbGxlZFByb2Nlc3NFcnJvcigxLCAnY21kJykpOgorICAgICAgICBh
c3NlcnQgd2Via2l0Z3RrX21pbmlicm93c2VyLmZpbmRfYmluYXJ5KCkgPT0gZGViaWFuX21pbmli
cm93c2VyX3BhdGhfYW1kNjQKKworICAgICAgICAjIEZvdW5kIG9uIHRoZSBkZWZhdWx0IERlYmlh
biBwYXRoIGZvciBBUk02NCAoZ2NjIGF2YWlsYWJsZSkKKyAgICAgICAgZGViaWFuX21pbmlicm93
c2VyX3BhdGhfYXJtNjQgPSAnL3Vzci9saWIvYWFyY2g2NC1saW51eC1nbnUvd2Via2l0Mmd0ay00
LjAvTWluaUJyb3dzZXInCisgICAgICAgIG1vY2tlZF9vc19wYXRoX2lzZmlsZS5zaWRlX2VmZmVj
dCA9IGxhbWJkYSBwYXRoOiBwYXRoIGluIFtkZWJpYW5fbWluaWJyb3dzZXJfcGF0aF9hcm02NCwg
Jy91c3IvYmluL2djYyddCisgICAgICAgIHdpdGggbW9jay5wYXRjaCgnc3VicHJvY2Vzcy5jaGVj
a19vdXRwdXQnLCByZXR1cm5fdmFsdWUgPSAnYWFyY2g2NC1saW51eC1nbnUnKToKKyAgICAgICAg
ICAgIGFzc2VydCB3ZWJraXRndGtfbWluaWJyb3dzZXIuZmluZF9iaW5hcnkoKSA9PSBkZWJpYW5f
bWluaWJyb3dzZXJfcGF0aF9hcm02NApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHQvdGVzdHMvdGVzdF9yZXZsaXN0LnB5IGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHQvdGVz
dHMvdGVzdF9yZXZsaXN0LnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
Li5lYzJhNmI4OTlkNQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0L3Rlc3RzL3Rlc3RfcmV2bGlzdC5weQpAQCAt
MCwwICsxLDE2MyBAQAoraW1wb3J0IG1vY2sKK2Zyb20gdG9vbHMud3B0IGltcG9ydCByZXZsaXN0
CisKKworZGVmIHRlc3RfY2FsY3VsYXRlX2N1dG9mZl9kYXRlKCk6CisgICAgYXNzZXJ0IHJldmxp
c3QuY2FsY3VsYXRlX2N1dG9mZl9kYXRlKDM2MDEsIDM2MDAsIDApID09IDM2MDAKKyAgICBhc3Nl
cnQgcmV2bGlzdC5jYWxjdWxhdGVfY3V0b2ZmX2RhdGUoMzYwMCwgMzYwMCwgMCkgPT0gMzYwMAor
ICAgIGFzc2VydCByZXZsaXN0LmNhbGN1bGF0ZV9jdXRvZmZfZGF0ZSgzNTk5LCAzNjAwLCAwKSA9
PSAwCisgICAgYXNzZXJ0IHJldmxpc3QuY2FsY3VsYXRlX2N1dG9mZl9kYXRlKDM2MDAsIDM2MDAs
IDEpID09IDEKKyAgICBhc3NlcnQgcmV2bGlzdC5jYWxjdWxhdGVfY3V0b2ZmX2RhdGUoMzYwMCwg
MzYwMCwgLTEpID09IDM1OTkKKworCitkZWYgdGVzdF9wYXJzZV9lcG9jaCgpOgorICAgIGFzc2Vy
dCByZXZsaXN0LnBhcnNlX2Vwb2NoKGIiMTBoIikgPT0gMzYwMDAKKyAgICBhc3NlcnQgcmV2bGlz
dC5wYXJzZV9lcG9jaChiIjEwZCIpID09IDg2NDAwMAorICAgIGFzc2VydCByZXZsaXN0LnBhcnNl
X2Vwb2NoKGIiMTB3IikgPT0gNjA0ODAwMAorCisKK0Btb2NrLnBhdGNoKCdzdWJwcm9jZXNzLmNo
ZWNrX291dHB1dCcpCitkZWYgdGVzdF9nZXRfZXBvY2hfcmV2aXNpb25zKG1vY2tlZF9jaGVja19v
dXRwdXQpOgorICAgICMgY2hlY2s6CisgICAgIworICAgICMgKiBTZXZlcmFsIHJldmlzaW9ucyBp
biB0aGUgc2FtZSBlcG9jaCBvZmZzZXQgKEJDLCBERUYsIEhJSiwgYW5kIExNKQorICAgICMgKiBS
ZXZpc2lvbiB3aXRoIGEgdGltZXN0YW1wIGV4YWN0bHkgZXF1YWwgdG8gdGhlIGVwb2NoIGJvdW5k
YXJ5IChIKQorICAgICMgKiBSZXZpc2lvbiBpbiBub24gY2xvc2VkIGludGVydmFsIChPKQorICAg
ICMKKyAgICAjICAgICAgIG1vbiAgdHVlICAgd2VkICAgdGh1ICAgZnJpICAgc2F0ICAgc3VuICAg
bW9uICAgdGh1ICAgd2VkCisgICAgIyAgICAgICAgICB8ICAgICB8ICAgICB8ICAgICB8ICAgICB8
ICAgICB8ICAgICB8ICAgICB8ICAgICB8CisgICAgIyAgICAgICAtQS0tLUItQy0tLURFRi0tLUct
LS1ILS1JSi0tLS0tLS0tLS1LLS0tLS1MLU0tLS0tTi0tTy0tCisgICAgIyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCisgICAgIyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHVudGlsCisgICAgIyAgICAgICBtYXhfY291bnQ6IDU7IGVwb2NoOiAxZAorICAgICMgICAgICAg
RXhwZWN0ZWQgcmVzdWx0OiBOLE0sSyxKLEcsRixDLEEKKyAgICBlcG9jaCA9IDg2NDAwCisgICAg
dW50aWwgPSAxMTg4MDAwICAjIFdlZG5lc2RheSwgMTQgSmFudWFyeSAxOTcwIDE4OjAwOjAwIFVU
QworICAgIG1vY2tlZF9jaGVja19vdXRwdXQucmV0dXJuX3ZhbHVlID0gYicnJworbWVyZ2VfcHJf
TyBPIDExNjY0MDAgX3dlZF8KK21lcmdlX3ByX04gTiAxMDgwMDAwIF90dWVfCittZXJnZV9wcl9N
IE0gMTAxNTIwMCBfbW9uXworbWVyZ2VfcHJfTCBMIDk5MzYwMCBfbW9uXworbWVyZ2VfcHJfSyBL
IDkwNzIwMCBfc3VuXworbWVyZ2VfcHJfSiBKIDczNDQwMCBfZnJpXworbWVyZ2VfcHJfSSBJIDcx
MjgwMCBfZnJpXworbWVyZ2VfcHJfSCBIIDY5MTIwMCBfZnJpXworbWVyZ2VfcHJfRyBHIDY0ODAw
MCBfdGh1XworbWVyZ2VfcHJfRiBGIDU4MzIwMCBfd2VkXworbWVyZ2VfcHJfRSBFIDU2MTYwMCBf
d2VkXworbWVyZ2VfcHJfRCBEIDU0MDAwMCBfd2VkXworbWVyZ2VfcHJfQyBDIDQ3NTIwMCBfdHVl
XworbWVyZ2VfcHJfQiBCIDQ1MzYwMCBfdHVlXworbWVyZ2VfcHJfQSBBIDM4ODgwMCBfbW9uXwor
JycnCisgICAgdGFnZ2VkX3Jldmlzb25zID0gcmV2bGlzdC5nZXRfZXBvY2hfcmV2aXNpb25zKGVw
b2NoLCB1bnRpbCwgOCkKKyAgICBhc3NlcnQgdGFnZ2VkX3Jldmlzb25zLm5leHQoKSA9PSAnTicK
KyAgICBhc3NlcnQgdGFnZ2VkX3Jldmlzb25zLm5leHQoKSA9PSAnTScKKyAgICBhc3NlcnQgdGFn
Z2VkX3Jldmlzb25zLm5leHQoKSA9PSAnSycKKyAgICBhc3NlcnQgdGFnZ2VkX3Jldmlzb25zLm5l
eHQoKSA9PSAnSicKKyAgICBhc3NlcnQgdGFnZ2VkX3Jldmlzb25zLm5leHQoKSA9PSAnRycKKyAg
ICBhc3NlcnQgdGFnZ2VkX3Jldmlzb25zLm5leHQoKSA9PSAnRicKKyAgICBhc3NlcnQgdGFnZ2Vk
X3Jldmlzb25zLm5leHQoKSA9PSAnQycKKyAgICBhc3NlcnQgdGFnZ2VkX3Jldmlzb25zLm5leHQo
KSA9PSAnQScKKyAgICBhc3NlcnQgbGVuKGxpc3QodGFnZ2VkX3Jldmlzb25zKSkgPT0gMCAgIyBn
ZW5lcmF0b3IgZXhoYXVzdGVkCisKKworICAgICMgY2hlY2s6IG1heF9jb3VudCB3aXRoIGVub3Vn
aCBjYW5kaWRhdGUgaXRlbXMgaW4gdGhlIHJldmlzaW9uIGxpc3QKKyAgICAjCisgICAgIyAgICAg
ICBtb24gIHR1ZSAgIHdlZCAgIHRodSAgIGZyaSAgIHNhdCAgIHN1biAgICBtb24KKyAgICAjICAg
ICAgICAgIHwgICAgIHwgICAgIHwgICAgIHwgICAgIHwgICAgIHwgICAgIHwKKyAgICAjICAgICAg
IC0tLS0tLUItLS0tLUMtLS0tLUQtLS0tRS0tLS0tRi0tLS0tRy0tLS0tLUgtLS0KKyAgICAjICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgorICAgICMg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW50aWwKKyAg
ICAjICAgICAgIG1heF9jb3VudDogNTsgZXBvY2g6IDFkCisgICAgIyAgICAgICBFeHBlY3RlZCBy
ZXN1bHQ6IEcsRixFLEQsQworICAgIGVwb2NoID0gODY0MDAKKyAgICB1bnRpbCA9IDEwMTUyMDAg
ICAjIE1vbmRheSwgMTIgSmFudWFyeSAxOTcwIDE4OjAwOjAwIFVUQworICAgIG1vY2tlZF9jaGVj
a19vdXRwdXQucmV0dXJuX3ZhbHVlID0gYicnJworbWVyZ2VfcHJfSCBIIDk5MzYwMCBfbW9uXwor
bWVyZ2VfcHJfRyBHIDkwNzIwMCBfc3VuXworbWVyZ2VfcHJfRiBGIDgyMDgwMCBfc2F0XworbWVy
Z2VfcHJfRSBFIDczNDQwMCBfZnJpXworbWVyZ2VfcHJfRCBEIDY0ODAwMCBfdGh1XworbWVyZ2Vf
cHJfQyBDIDU2MTYwMCBfd2VkXworbWVyZ2VfcHJfQiBCIDQ3NTIwMCBfdGh1XworJycnCisgICAg
dGFnZ2VkX3Jldmlzb25zID0gcmV2bGlzdC5nZXRfZXBvY2hfcmV2aXNpb25zKGVwb2NoLCB1bnRp
bCwgNSkKKyAgICBhc3NlcnQgdGFnZ2VkX3Jldmlzb25zLm5leHQoKSA9PSAnRycKKyAgICBhc3Nl
cnQgdGFnZ2VkX3Jldmlzb25zLm5leHQoKSA9PSAnRicKKyAgICBhc3NlcnQgdGFnZ2VkX3Jldmlz
b25zLm5leHQoKSA9PSAnRScKKyAgICBhc3NlcnQgdGFnZ2VkX3Jldmlzb25zLm5leHQoKSA9PSAn
RCcKKyAgICBhc3NlcnQgdGFnZ2VkX3Jldmlzb25zLm5leHQoKSA9PSAnQycKKyAgICBhc3NlcnQg
bGVuKGxpc3QodGFnZ2VkX3Jldmlzb25zKSkgPT0gMCAgIyBnZW5lcmF0b3IgZXhoYXVzdGVkCisK
KworICAgICMgY2hlY2s6IG1heF9jb3VudCB3aXRoIGxlc3MgcmV0dXJuZWQgY2FuZGlkYXRlcyBp
dGVtcyB0aGFuIHRoZSBuZWVkZWQKKyAgICAjCisgICAgIyAgICAgICBtb24gIHR1ZSAgIHdlZCAg
IHRodSAgIGZyaSAgIHNhdCAgIHN1biAgIG1vbgorICAgICMgICAgICAgICAgfCAgICAgfCAgICAg
fCAgICAgfCAgICAgfCAgICAgfCAgICAgfAorICAgICMgICAgICAgLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS1GLS0tLS1HLS0tLS0tSC0tLQorICAgICMgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCisgICAgIyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnRpbAorICAgICMgICAgICAgbWF4X2NvdW50
OiA1OyBlcG9jaDogMWQKKyAgICAjICAgICAgIEV4cGVjdGVkIHJlc3VsdDogRyxGCisgICAgZXBv
Y2ggPSA4NjQwMAorICAgIHVudGlsID0gMTAxNTIwMCAgICMgTW9uZGF5LCAxMiBKYW51YXJ5IDE5
NzAgMTg6MDA6MDAgVVRDCisgICAgbW9ja2VkX2NoZWNrX291dHB1dC5yZXR1cm5fdmFsdWUgPSBi
JycnCittZXJnZV9wcl9IIEggOTkzNjAwIF9tb25fCittZXJnZV9wcl9HIEcgOTA3MjAwIF9zdW5f
CittZXJnZV9wcl9GIEYgODIwODAwIF9zYXRfCisnJycKKyAgICB0YWdnZWRfcmV2aXNvbnMgPSBy
ZXZsaXN0LmdldF9lcG9jaF9yZXZpc2lvbnMoZXBvY2gsIHVudGlsLCA1KQorICAgIGFzc2VydCB0
YWdnZWRfcmV2aXNvbnMubmV4dCgpID09ICdHJworICAgIGFzc2VydCB0YWdnZWRfcmV2aXNvbnMu
bmV4dCgpID09ICdGJworICAgIGFzc2VydCBsZW4obGlzdCh0YWdnZWRfcmV2aXNvbnMpKSA9PSAw
ICAjIGdlbmVyYXRvciBleGhhdXN0ZWQKKworCisgICAgIyBjaGVjazogaW5pdGlhbCB1bnRpbCB2
YWx1ZSBpcyBvbiBhbiBlcG9jaCBib3VuZGFyeQorICAgICMKKyAgICAjICAgICAgICAgICAgICAg
ICAgICAgIHN1ZCAgbW9uICAgdHVlICAgd2VkICAgdGh1CisgICAgIyAgICAgICAgICAgICAgICAg
ICAgICAgICB8ICAgICB8ICAgICB8ICAgICB8CisgICAgIyAgICAgICAgICAgICAgICAgICAgICAt
Ri1HLS0tLS0tLS0tLS0tLS0tLS1ICisgICAgIyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBeCisgICAgIyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgdW50aWwKKyAgICAjICAgICAgIG1heF9jb3VudDogMzsgZXBvY2g6IDFkCisgICAgIyAg
ICAgICBFeHBlY3RlZCByZXN1bHQ6IEcsRgorICAgICMgICAgICAgKiBIIGlzIHNraXBwZWQgYmVj
YXVzZSBiZWNhdXNlIHRoZSBlcG9jaAorICAgICMgICAgICAgICBpbnRlcnZhbCBpcyBkZWZpbmVk
IGFzIGFuIHJpZ2h0LW9wZW4gaW50ZXJ2YWwKKyAgICAjICAgICAgICogRyBpcyBpbmNsdWRlZCBi
dXQgaW4gdGhlIE1vbmRheSdzIGludGVydmFsCisgICAgIyAgICAgICAqIEYgaXMgaW5jbHVkZWQg
YmVjYXVzZSBpdCBpcyB0aGUgdW5pcXVlIGNhbmRpZGF0ZQorICAgICMgICAgICAgICBpbmNsdWRl
ZCBpbiB0aGUgU3VuZGF5J3MgaW50ZXJ2YWwKKyAgICBlcG9jaCA9IDg2NDAwCisgICAgdW50aWwg
PSAxMjk2MDAwICAjIFRodXJzZGF5LCAxNSBKYW51YXJ5IDE5NzAgMDowMDowMCBVVEMKKyAgICBt
b2NrZWRfY2hlY2tfb3V0cHV0LnJldHVybl92YWx1ZSA9IGInJycKK21lcmdlX3ByX0ggSCAxMjk2
MDAwIF93ZWRfCittZXJnZV9wcl9HIEcgOTUwNDAwIF9tb25fCittZXJnZV9wcl9GIEYgOTIxNjAw
IF9zdWRfCisnJycKKyAgICB0YWdnZWRfcmV2aXNvbnMgPSByZXZsaXN0LmdldF9lcG9jaF9yZXZp
c2lvbnMoZXBvY2gsIHVudGlsLCAzKQorICAgIGFzc2VydCB0YWdnZWRfcmV2aXNvbnMubmV4dCgp
ID09ICdHJworICAgIGFzc2VydCB0YWdnZWRfcmV2aXNvbnMubmV4dCgpID09ICdGJworICAgIGFz
c2VydCBsZW4obGlzdCh0YWdnZWRfcmV2aXNvbnMpKSA9PSAwICAjIGdlbmVyYXRvciBleGhhdXN0
ZWQKKworCisgICAgIyBjaGVjazogdW50aWwgYWxpZ25lZCB3aXRoIE1vbmRheSwgNSBKYW51YXJ5
IDE5NzAgMDowMDowMCAoMzQ1NjAwKQorICAgICMgICAgICAgIG5vdCB3aXRoIFRodXJzZGF5LCAx
IEphbnVhcnkgMTk3MCAwOjAwOjAwICgwKQorICAgICMKKyAgICAjICAgICAgICAgICAgICAgICAg
ICAgIHN1ZCAgbW9uICAgdHVlICAgd2VkICAgdGh1CisgICAgIyAgICAgICAgICAgICAgICAgICAg
ICAgICB8ICAgICB8ICAgICB8ICAgICB8CisgICAgIyAgICAgICAgICAgICAgICAgICAgICAtRi1H
LS0tLS0tLS0tLS0tLS1ILS0tCisgICAgIyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBeCisgICAgIyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgdW50aWwKKyAgICAjICAgICAgIG1heF9jb3VudDogMTsgZXBvY2g6IDF3CisgICAgIyAgICAg
ICBFeHBlY3RlZCByZXN1bHQ6IEYKKyAgICBlcG9jaCA9IDYwNDgwMAorICAgIG1vZGF5ID0gOTUw
NDAwICAjIE1vbmRheSwgMTIgSmFudWFyeSAxOTcwIDAwOjAwOjAwIFVUQworICAgIHVudGlsID0g
bW9kYXkgKyAzNDU2MDAgICMgMTI5NjAwMC4gVGh1cnNkYXksIDE1IEphbnVhcnkgMTk3MCAwOjAw
OjAwIFVUQworICAgIG1vY2tlZF9jaGVja19vdXRwdXQucmV0dXJuX3ZhbHVlID0gYicnJworbWVy
Z2VfcHJfSCBIIDExODA4MDAgX3dlZF8KK21lcmdlX3ByX0cgRyA5NTA0MDAgX21vbl8KK21lcmdl
X3ByX0YgRiA5MjE2MDAgX3N1ZF8KKycnJworICAgIHRhZ2dlZF9yZXZpc29ucyA9IHJldmxpc3Qu
Z2V0X2Vwb2NoX3JldmlzaW9ucyhlcG9jaCwgdW50aWwsIDEpCisgICAgYXNzZXJ0IHRhZ2dlZF9y
ZXZpc29ucy5uZXh0KCkgPT0gJ0YnCisgICAgYXNzZXJ0IGxlbihsaXN0KHRhZ2dlZF9yZXZpc29u
cykpID09IDAgICMgZ2VuZXJhdG9yIGV4aGF1c3RlZApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHQvdGVzdHMvdGVzdF9ydW4u
cHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dw
dC90ZXN0cy90ZXN0X3J1bi5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MC4uZWY1OGVjNDFiMmIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdC90ZXN0cy90ZXN0X3J1bi5weQpAQCAtMCww
ICsxLDczIEBACitpbXBvcnQgbW9jaworaW1wb3J0IHRlbXBmaWxlCitpbXBvcnQgc2h1dGlsCitp
bXBvcnQgc3lzCisKK2ltcG9ydCBweXRlc3QKKworZnJvbSB0b29scy53cHQgaW1wb3J0IHJ1bgor
ZnJvbSB0b29scyBpbXBvcnQgbG9jYWxwYXRocyAgIyBub3FhOiBGNDAxCitmcm9tIHdwdHJ1bm5l
ci5icm93c2VycyBpbXBvcnQgcHJvZHVjdF9saXN0CisKKworQHB5dGVzdC5maXh0dXJlKHNjb3Bl
PSJtb2R1bGUiKQorZGVmIHZlbnYoKToKKyAgICBmcm9tIHRvb2xzLndwdCBpbXBvcnQgdmlydHVh
bGVudgorCisgICAgY2xhc3MgVmlydHVhbGVudih2aXJ0dWFsZW52LlZpcnR1YWxlbnYpOgorICAg
ICAgICBkZWYgX19pbml0X18oc2VsZik6CisgICAgICAgICAgICBzZWxmLnBhdGggPSB0ZW1wZmls
ZS5ta2R0ZW1wKCkKKyAgICAgICAgICAgIHNlbGYuc2tpcF92aXJ0dWFsZW52X3NldHVwID0gRmFs
c2UKKworICAgICAgICBkZWYgY3JlYXRlKHNlbGYpOgorICAgICAgICAgICAgcmV0dXJuCisKKyAg
ICAgICAgZGVmIGFjdGl2YXRlKHNlbGYpOgorICAgICAgICAgICAgcmV0dXJuCisKKyAgICAgICAg
ZGVmIHN0YXJ0KHNlbGYpOgorICAgICAgICAgICAgcmV0dXJuCisKKyAgICAgICAgZGVmIGluc3Rh
bGwoc2VsZiwgKnJlcXVpcmVtZW50cyk6CisgICAgICAgICAgICByZXR1cm4KKworICAgICAgICBk
ZWYgaW5zdGFsbF9yZXF1aXJlbWVudHMoc2VsZiwgcmVxdWlyZW1lbnRzX3BhdGgpOgorICAgICAg
ICAgICAgcmV0dXJuCisKKyAgICB2ZW52ID0gVmlydHVhbGVudigpCisgICAgeWllbGQgdmVudgor
CisgICAgc2h1dGlsLnJtdHJlZSh2ZW52LnBhdGgpCisKKworQHB5dGVzdC5maXh0dXJlKHNjb3Bl
PSJtb2R1bGUiKQorZGVmIGxvZ2dlcigpOgorICAgIHJ1bi5zZXR1cF9sb2dnaW5nKHt9KQorCisK
K0BweXRlc3QubWFyay5wYXJhbWV0cml6ZSgicGxhdGZvcm0iLCBbIldpbmRvd3MiLCAiTGludXgi
LCAiRGFyd2luIl0pCitkZWYgdGVzdF9jaGVja19lbnZpcm9uX2ZhaWwocGxhdGZvcm0pOgorICAg
IG1fb3BlbiA9IG1vY2subW9ja19vcGVuKHJlYWRfZGF0YT1iIiIpCisKKyAgICB3aXRoIG1vY2su
cGF0Y2gub2JqZWN0KHJ1biwgIm9wZW4iLCBtX29wZW4pOgorICAgICAgICB3aXRoIG1vY2sucGF0
Y2gub2JqZWN0KHJ1bi5wbGF0Zm9ybSwgInVuYW1lIiwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICByZXR1cm5fdmFsdWU9KHBsYXRmb3JtLCAiIiwgIiIsICIiLCAiIiwgIiIpKToKKyAg
ICAgICAgICAgIHdpdGggcHl0ZXN0LnJhaXNlcyhydW4uV3B0cnVuRXJyb3IpIGFzIGV4Y2luZm86
CisgICAgICAgICAgICAgICAgcnVuLmNoZWNrX2Vudmlyb24oImZvbyIpCisKKyAgICBhc3NlcnQg
IndwdCBtYWtlLWhvc3RzLWZpbGUiIGluIHN0cihleGNpbmZvLnZhbHVlKQorCisKK0BweXRlc3Qu
bWFyay5wYXJhbWV0cml6ZSgicHJvZHVjdCIsIHByb2R1Y3RfbGlzdCkKK2RlZiB0ZXN0X3NldHVw
X3dwdHJ1bm5lcih2ZW52LCBsb2dnZXIsIHByb2R1Y3QpOgorICAgIGlmIHByb2R1Y3QgPT0gImZp
cmVmb3hfYW5kcm9pZCI6CisgICAgICAgIHB5dGVzdC5za2lwKCJBbmRyb2lkIGVtdWxhdG9yIGRv
ZXNuJ3Qgd29yayBvbiBkb2NrZXIiKQorICAgIHBhcnNlciA9IHJ1bi5jcmVhdGVfcGFyc2VyKCkK
KyAgICBrd2FyZ3MgPSB2YXJzKHBhcnNlci5wYXJzZV9hcmdzKFsiLS1jaGFubmVsPW5pZ2h0bHki
LCBwcm9kdWN0XSkpCisgICAga3dhcmdzWyJwcm9tcHQiXSA9IEZhbHNlCisgICAgIyBIYWNrIHRv
IGdldCBhIHJlYWwgZXhpc3RpbmcgcGF0aAorICAgIGt3YXJnc1siYmluYXJ5Il0gPSBzeXMuYXJn
dlswXQorICAgIGt3YXJnc1sid2ViZHJpdmVyX2JpbmFyeSJdID0gc3lzLmFyZ3ZbMF0KKyAgICBp
ZiBrd2FyZ3NbInByb2R1Y3QiXSA9PSAic2F1Y2UiOgorICAgICAgICBrd2FyZ3NbInByb2R1Y3Qi
XSA9ICJzYXVjZTpmaXJlZm94OjYzIgorICAgIHJ1bi5zZXR1cF93cHRydW5uZXIodmVudiwgKipr
d2FyZ3MpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3dwdC90ZXN0cy90ZXN0X3Rlc3RmaWxlcy5weSBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0L3Rlc3RzL3Rlc3RfdGVzdGZp
bGVzLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi4zMzEzNWRmZGMy
ZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvd3B0L3Rlc3RzL3Rlc3RfdGVzdGZpbGVzLnB5CkBAIC0wLDAgKzEsMTMg
QEAKK2Zyb20gbW9jayBpbXBvcnQgcGF0Y2gKKworZnJvbSB0b29scy53cHQgaW1wb3J0IHRlc3Rm
aWxlcworCisKK2RlZiB0ZXN0X2dldHJldmlzaF9rd2FyZygpOgorICAgIGFzc2VydCB0ZXN0Zmls
ZXMuZ2V0X3JldmlzaChyZXZpc2g9dSJhYmNkZWYiKSA9PSBiImFiY2RlZiIKKyAgICBhc3NlcnQg
dGVzdGZpbGVzLmdldF9yZXZpc2gocmV2aXNoPWIiYWJjZGVmIikgPT0gYiJhYmNkZWYiCisKKwor
ZGVmIHRlc3RfZ2V0cmV2aXNoX2ltcGxpY2l0KCk6CisgICAgd2l0aCBwYXRjaCgidG9vbHMud3B0
LnRlc3RmaWxlcy5icmFuY2hfcG9pbnQiLCByZXR1cm5fdmFsdWU9dSJiYXNlIik6CisgICAgICAg
IGFzc2VydCB0ZXN0ZmlsZXMuZ2V0X3JldmlzaCgpID09IGIiYmFzZS4uSEVBRCIKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0
L3Rlc3RzL3Rlc3Rfd3B0LnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy93cHQvdGVzdHMvdGVzdF93cHQucHkKaW5kZXggMTZkMjg2ZDM4MmMuLjY1
Njk1ODBlOWZmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3dwdC90ZXN0cy90ZXN0X3dwdC5weQorKysgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdC90ZXN0cy90ZXN0X3dwdC5w
eQpAQCAtMzAsMjcgKzMwLDU0IEBAIGRlZiBpc19wb3J0XzgwMDBfaW5fdXNlKCk6CiAgICAgcmV0
dXJuIEZhbHNlCiAKIAotQHB5dGVzdC5maXh0dXJlKHNjb3BlPSJtb2R1bGUiKQorZGVmIGdldF9w
ZXJzaXN0ZW50X21hbmlmZXN0X3BhdGgoKToKKyAgICBkaXJlY3RvcnkgPSAoIn4vbWV0YSIgaWYg
b3MuZW52aXJvbi5nZXQoJ1RSQVZJUycpID09ICJ0cnVlIgorICAgICAgICAgICAgICAgICBlbHNl
IHdwdC5sb2NhbHBhdGhzLnJlcG9fcm9vdCkKKyAgICByZXR1cm4gb3MucGF0aC5qb2luKGRpcmVj
dG9yeSwgIk1BTklGRVNULmpzb24iKQorCisKK0BweXRlc3QuZml4dHVyZShzY29wZT0ibW9kdWxl
IiwgYXV0b3VzZT1UcnVlKQorZGVmIGluaXRfbWFuaWZlc3QoKToKKyAgICB3aXRoIHB5dGVzdC5y
YWlzZXMoU3lzdGVtRXhpdCkgYXMgZXhjaW5mbzoKKyAgICAgICAgd3B0Lm1haW4oYXJndj1bIm1h
bmlmZXN0IiwgIi0tbm8tZG93bmxvYWQiLAorICAgICAgICAgICAgICAgICAgICAgICAiLS1wYXRo
IiwgZ2V0X3BlcnNpc3RlbnRfbWFuaWZlc3RfcGF0aCgpXSkKKyAgICBhc3NlcnQgZXhjaW5mby52
YWx1ZS5jb2RlID09IDAKKworCitAcHl0ZXN0LmZpeHR1cmUKIGRlZiBtYW5pZmVzdF9kaXIoKToK
LSAgICBkZWYgdXBkYXRlX21hbmlmZXN0KCk6Ci0gICAgICAgIHdpdGggcHl0ZXN0LnJhaXNlcyhT
eXN0ZW1FeGl0KSBhcyBleGNpbmZvOgotICAgICAgICAgICAgd3B0Lm1haW4oYXJndj1bIm1hbmlm
ZXN0IiwgIi0tbm8tZG93bmxvYWQiLCAiLS1wYXRoIiwgb3MucGF0aC5qb2luKHBhdGgsICJNQU5J
RkVTVC5qc29uIildKQotICAgICAgICBhc3NlcnQgZXhjaW5mby52YWx1ZS5jb2RlID09IDAKLQot
ICAgIGlmIG9zLmVudmlyb24uZ2V0KCdUUkFWSVMnKSA9PSAidHJ1ZSI6Ci0gICAgICAgIHBhdGgg
PSAifi9tZXRhIgotICAgICAgICB1cGRhdGVfbWFuaWZlc3QoKQorICAgIHRyeToKKyAgICAgICAg
cGF0aCA9IHRlbXBmaWxlLm1rZHRlbXAoKQorICAgICAgICBzaHV0aWwuY29weWZpbGUoZ2V0X3Bl
cnNpc3RlbnRfbWFuaWZlc3RfcGF0aCgpLAorICAgICAgICAgICAgICAgICAgICAgICAgb3MucGF0
aC5qb2luKHBhdGgsICJNQU5JRkVTVC5qc29uIikpCiAgICAgICAgIHlpZWxkIHBhdGgKLSAgICBl
bHNlOgotICAgICAgICB0cnk6Ci0gICAgICAgICAgICBwYXRoID0gdGVtcGZpbGUubWtkdGVtcCgp
Ci0gICAgICAgICAgICBvbGRfcGF0aCA9IG9zLnBhdGguam9pbih3cHQubG9jYWxwYXRocy5yZXBv
X3Jvb3QsICJNQU5JRkVTVC5qc29uIikKLSAgICAgICAgICAgIGlmIG9zLnBhdGguZXhpc3RzKG9z
LnBhdGguam9pbih3cHQubG9jYWxwYXRocy5yZXBvX3Jvb3QsICJNQU5JRkVTVC5qc29uIikpOgot
ICAgICAgICAgICAgICAgIHNodXRpbC5jb3B5ZmlsZShvbGRfcGF0aCwgb3MucGF0aC5qb2luKHBh
dGgsICJNQU5JRkVTVC5qc29uIikpCi0gICAgICAgICAgICB1cGRhdGVfbWFuaWZlc3QoKQotICAg
ICAgICAgICAgeWllbGQgcGF0aAotICAgICAgICBmaW5hbGx5OgotICAgICAgICAgICAgc2h1dGls
LnJtdHJlZShwYXRoKQorICAgIGZpbmFsbHk6CisgICAgICAgIHNodXRpbC5ybXRyZWUocGF0aCkK
KworCitAcHl0ZXN0LmZpeHR1cmUKK2RlZiB0ZW1wX3Rlc3QoKToKKyAgICBvcy5tYWtlZGlycygi
Li4vLi4vLnRvb2xzLXRlc3RzIikKKyAgICB0ZXN0X2NvdW50ID0geyJ2YWx1ZSI6IDB9CisKKyAg
ICBkZWYgbWFrZV90ZXN0KGJvZHkpOgorICAgICAgICB0ZXN0X2NvdW50WyJ2YWx1ZSJdICs9IDEK
KyAgICAgICAgdGVzdF9uYW1lID0gIi50b29scy10ZXN0cy8lcy5odG1sIiAlIHRlc3RfY291bnRb
InZhbHVlIl0KKyAgICAgICAgdGVzdF9wYXRoID0gIi4uLy4uLyVzIiAlIHRlc3RfbmFtZQorCisg
ICAgICAgIHdpdGggb3Blbih0ZXN0X3BhdGgsICJ3IikgYXMgaGFuZGxlOgorICAgICAgICAgICAg
aGFuZGxlLndyaXRlKCIiIgorICAgICAgICAgICAgPCFET0NUWVBFIGh0bWw+CisgICAgICAgICAg
ICA8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+CisgICAg
ICAgICAgICA8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9z
Y3JpcHQ+CisgICAgICAgICAgICA8c2NyaXB0PiVzPC9zY3JpcHQ+CisgICAgICAgICAgICAiIiIg
JSBib2R5KQorCisgICAgICAgIHJldHVybiB0ZXN0X25hbWUKKworICAgIHlpZWxkIG1ha2VfdGVz
dAorCisgICAgc2h1dGlsLnJtdHJlZSgiLi4vLi4vLnRvb2xzLXRlc3RzIikKIAogCiBkZWYgdGVz
dF9taXNzaW5nKCk6CkBAIC03Myw3ICsxMDAsOCBAQCBkZWYgdGVzdF9saXN0X3Rlc3RzKG1hbmlm
ZXN0X2Rpcik6CiAKICAgICB3aXRoIHB5dGVzdC5yYWlzZXMoU3lzdGVtRXhpdCkgYXMgZXhjaW5m
bzoKICAgICAgICAgd3B0Lm1haW4oYXJndj1bInJ1biIsICItLW1ldGFkYXRhIiwgbWFuaWZlc3Rf
ZGlyLCAiLS1saXN0LXRlc3RzIiwKLSAgICAgICAgICAgICAgICAgICAgICAgIi0teWVzIiwgImNo
cm9tZSIsICIvZG9tL25vZGVzL0VsZW1lbnQtdGFnTmFtZS5odG1sIl0pCisgICAgICAgICAgICAg
ICAgICAgICAgICItLWNoYW5uZWwiLCAiZGV2IiwgIi0teWVzIiwgImNocm9tZSIsCisgICAgICAg
ICAgICAgICAgICAgICAgICIvZG9tL25vZGVzL0VsZW1lbnQtdGFnTmFtZS5odG1sIl0pCiAgICAg
YXNzZXJ0IGV4Y2luZm8udmFsdWUuY29kZSA9PSAwCiAKIApAQCAtMTMwLDUxICsxNTgsNiBAQCBk
ZWYgdGVzdF9saXN0X3Rlc3RzX2ludmFsaWRfbWFuaWZlc3QobWFuaWZlc3RfZGlyKToKIAogQHB5
dGVzdC5tYXJrLnNsb3cKIEBweXRlc3QubWFyay5yZW1vdGVfbmV0d29yawotQHB5dGVzdC5tYXJr
LnhmYWlsKHN5cy5wbGF0Zm9ybSA9PSAid2luMzIiLAotICAgICAgICAgICAgICAgICAgIHJlYXNv
bj0iVGVzdHMgY3VycmVudGx5IGRvbid0IHdvcmsgb24gV2luZG93cyBmb3IgcGF0aCByZWFzb25z
IikKLWRlZiB0ZXN0X3J1bl9maXJlZm94KG1hbmlmZXN0X2Rpcik6Ci0gICAgIyBUT0RPOiBJdCBz
ZWVtcyBsaWtlIHRoZXJlJ3MgYSBidWcgaW4gYXJncGFyc2UgdGhhdCBtYWtlcyB0aGlzIGFyZ3Vt
ZW50IG9yZGVyIHJlcXVpcmVkCi0gICAgIyBzaG91bGQgdHJ5IHRvIHdvcmsgYXJvdW5kIHRoYXQK
LSAgICBpZiBpc19wb3J0XzgwMDBfaW5fdXNlKCk6Ci0gICAgICAgIHB5dGVzdC5za2lwKCJwb3J0
IDgwMDAgYWxyZWFkeSBpbiB1c2UiKQotCi0gICAgb3MuZW52aXJvblsiTU9aX0hFQURMRVNTIl0g
PSAiMSIKLSAgICB0cnk6Ci0gICAgICAgIGlmIHN5cy5wbGF0Zm9ybSA9PSAiZGFyd2luIjoKLSAg
ICAgICAgICAgIGZ4X3BhdGggPSBvcy5wYXRoLmpvaW4od3B0LmxvY2FscGF0aHMucmVwb19yb290
LCAiX3ZlbnYiLCAiYnJvd3NlcnMiLCAiRmlyZWZveCBOaWdodGx5LmFwcCIpCi0gICAgICAgIGVs
c2U6Ci0gICAgICAgICAgICBmeF9wYXRoID0gb3MucGF0aC5qb2luKHdwdC5sb2NhbHBhdGhzLnJl
cG9fcm9vdCwgIl92ZW52IiwgImJyb3dzZXJzIiwgImZpcmVmb3giKQotICAgICAgICBpZiBvcy5w
YXRoLmV4aXN0cyhmeF9wYXRoKToKLSAgICAgICAgICAgIHNodXRpbC5ybXRyZWUoZnhfcGF0aCkK
LSAgICAgICAgd2l0aCBweXRlc3QucmFpc2VzKFN5c3RlbUV4aXQpIGFzIGV4Y2luZm86Ci0gICAg
ICAgICAgICB3cHQubWFpbihhcmd2PVsicnVuIiwgIi0tbm8tcGF1c2UiLCAiLS1pbnN0YWxsLWJy
b3dzZXIiLCAiLS15ZXMiLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIi0tbWV0YWRhdGEi
LCBtYW5pZmVzdF9kaXIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAiZmlyZWZveCIsICIv
ZG9tL25vZGVzL0VsZW1lbnQtdGFnTmFtZS5odG1sIl0pCi0gICAgICAgIGFzc2VydCBvcy5wYXRo
LmV4aXN0cyhmeF9wYXRoKQotICAgICAgICBzaHV0aWwucm10cmVlKGZ4X3BhdGgpCi0gICAgICAg
IGFzc2VydCBleGNpbmZvLnZhbHVlLmNvZGUgPT0gMAotICAgIGZpbmFsbHk6Ci0gICAgICAgIGRl
bCBvcy5lbnZpcm9uWyJNT1pfSEVBRExFU1MiXQotCi0KLUBweXRlc3QubWFyay5zbG93Ci1AcHl0
ZXN0Lm1hcmsueGZhaWwoc3lzLnBsYXRmb3JtID09ICJ3aW4zMiIsCi0gICAgICAgICAgICAgICAg
ICAgcmVhc29uPSJUZXN0cyBjdXJyZW50bHkgZG9uJ3Qgd29yayBvbiBXaW5kb3dzIGZvciBwYXRo
IHJlYXNvbnMiKQotZGVmIHRlc3RfcnVuX2Nocm9tZShtYW5pZmVzdF9kaXIpOgotICAgIGlmIGlz
X3BvcnRfODAwMF9pbl91c2UoKToKLSAgICAgICAgcHl0ZXN0LnNraXAoInBvcnQgODAwMCBhbHJl
YWR5IGluIHVzZSIpCi0KLSAgICB3aXRoIHB5dGVzdC5yYWlzZXMoU3lzdGVtRXhpdCkgYXMgZXhj
aW5mbzoKLSAgICAgICAgd3B0Lm1haW4oYXJndj1bInJ1biIsICItLXllcyIsICItLW5vLXBhdXNl
IiwgIi0tYmluYXJ5LWFyZyIsICJoZWFkbGVzcyIsCi0gICAgICAgICAgICAgICAgICAgICAgICIt
LW1ldGFkYXRhIiwgbWFuaWZlc3RfZGlyLAotICAgICAgICAgICAgICAgICAgICAgICAiY2hyb21l
IiwgIi9kb20vbm9kZXMvRWxlbWVudC10YWdOYW1lLmh0bWwiXSkKLSAgICBhc3NlcnQgZXhjaW5m
by52YWx1ZS5jb2RlID09IDAKLQotCi1AcHl0ZXN0Lm1hcmsuc2xvdwotQHB5dGVzdC5tYXJrLnJl
bW90ZV9uZXR3b3JrCi1AcHl0ZXN0Lm1hcmsueGZhaWwoc3lzLnBsYXRmb3JtID09ICJ3aW4zMiIs
Ci0gICAgICAgICAgICAgICAgICAgcmVhc29uPSJUZXN0cyBjdXJyZW50bHkgZG9uJ3Qgd29yayBv
biBXaW5kb3dzIGZvciBwYXRoIHJlYXNvbnMiKQogZGVmIHRlc3RfcnVuX3plcm9fdGVzdHMoKToK
ICAgICAiIiJBIHRlc3QgZXhlY3V0aW9uIGRlc2NyaWJpbmcgemVybyB0ZXN0cyBzaG91bGQgYmUg
cmVwb3J0ZWQgYXMgYW4gZXJyb3IKICAgICBldmVuIGluIHRoZSBwcmVzZW5jZSBvZiB0aGUgYC0t
bm8tZmFpbC1vbi11bmV4cGVjdGVkYCBvcHRpb24uIiIiCkBAIC0xODMsMTkgKzE2NiwxOCBAQCBk
ZWYgdGVzdF9ydW5femVyb190ZXN0cygpOgogCiAgICAgd2l0aCBweXRlc3QucmFpc2VzKFN5c3Rl
bUV4aXQpIGFzIGV4Y2luZm86CiAgICAgICAgIHdwdC5tYWluKGFyZ3Y9WyJydW4iLCAiLS15ZXMi
LCAiLS1uby1wYXVzZSIsICItLWJpbmFyeS1hcmciLCAiaGVhZGxlc3MiLAotICAgICAgICAgICAg
ICAgICAgICAgICAiY2hyb21lIiwgIi9ub24tZXhpc3RlbnQtZGlyL25vbi1leGlzdGVudC1maWxl
Lmh0bWwiXSkKKyAgICAgICAgICAgICAgICAgICAgICAgIi0tY2hhbm5lbCIsICJkZXYiLCAiY2hy
b21lIiwKKyAgICAgICAgICAgICAgICAgICAgICAgIi9ub24tZXhpc3RlbnQtZGlyL25vbi1leGlz
dGVudC1maWxlLmh0bWwiXSkKICAgICBhc3NlcnQgZXhjaW5mby52YWx1ZS5jb2RlICE9IDAKIAog
ICAgIHdpdGggcHl0ZXN0LnJhaXNlcyhTeXN0ZW1FeGl0KSBhcyBleGNpbmZvOgogICAgICAgICB3
cHQubWFpbihhcmd2PVsicnVuIiwgIi0teWVzIiwgIi0tbm8tcGF1c2UiLCAiLS1iaW5hcnktYXJn
IiwgImhlYWRsZXNzIiwKLSAgICAgICAgICAgICAgICAgICAgICAgIi0tbm8tZmFpbC1vbi11bmV4
cGVjdGVkIiwKKyAgICAgICAgICAgICAgICAgICAgICAgIi0tbm8tZmFpbC1vbi11bmV4cGVjdGVk
IiwgIi0tY2hhbm5lbCIsICJkZXYiLAogICAgICAgICAgICAgICAgICAgICAgICAiY2hyb21lIiwg
Ii9ub24tZXhpc3RlbnQtZGlyL25vbi1leGlzdGVudC1maWxlLmh0bWwiXSkKICAgICBhc3NlcnQg
ZXhjaW5mby52YWx1ZS5jb2RlICE9IDAKIAogQHB5dGVzdC5tYXJrLnNsb3cKIEBweXRlc3QubWFy
ay5yZW1vdGVfbmV0d29yawotQHB5dGVzdC5tYXJrLnhmYWlsKHN5cy5wbGF0Zm9ybSA9PSAid2lu
MzIiLAotICAgICAgICAgICAgICAgICAgIHJlYXNvbj0iVGVzdHMgY3VycmVudGx5IGRvbid0IHdv
cmsgb24gV2luZG93cyBmb3IgcGF0aCByZWFzb25zIikKIGRlZiB0ZXN0X3J1bl9mYWlsaW5nX3Rl
c3QoKToKICAgICAiIiJGYWlsaW5nIHRlc3RzIHNob3VsZCBiZSByZXBvcnRlZCB3aXRoIGEgbm9u
LXplcm8gZXhpdCBzdGF0dXMgdW5sZXNzIHRoZQogICAgIGAtLW5vLWZhaWwtb24tdW5leHBlY3Rl
ZGAgb3B0aW9uIGhhcyBiZWVuIHNwZWNpZmllZC4iIiIKQEAgLTIwNywyMiArMTg5LDUzIEBAIGRl
ZiB0ZXN0X3J1bl9mYWlsaW5nX3Rlc3QoKToKIAogICAgIHdpdGggcHl0ZXN0LnJhaXNlcyhTeXN0
ZW1FeGl0KSBhcyBleGNpbmZvOgogICAgICAgICB3cHQubWFpbihhcmd2PVsicnVuIiwgIi0teWVz
IiwgIi0tbm8tcGF1c2UiLCAiLS1iaW5hcnktYXJnIiwgImhlYWRsZXNzIiwKLSAgICAgICAgICAg
ICAgICAgICAgICAgImNocm9tZSIsIGZhaWxpbmdfdGVzdF0pCisgICAgICAgICAgICAgICAgICAg
ICAgICItLWNoYW5uZWwiLCAiZGV2IiwgImNocm9tZSIsIGZhaWxpbmdfdGVzdF0pCiAgICAgYXNz
ZXJ0IGV4Y2luZm8udmFsdWUuY29kZSAhPSAwCiAKICAgICB3aXRoIHB5dGVzdC5yYWlzZXMoU3lz
dGVtRXhpdCkgYXMgZXhjaW5mbzoKICAgICAgICAgd3B0Lm1haW4oYXJndj1bInJ1biIsICItLXll
cyIsICItLW5vLXBhdXNlIiwgIi0tYmluYXJ5LWFyZyIsICJoZWFkbGVzcyIsCi0gICAgICAgICAg
ICAgICAgICAgICAgICItLW5vLWZhaWwtb24tdW5leHBlY3RlZCIsCisgICAgICAgICAgICAgICAg
ICAgICAgICItLW5vLWZhaWwtb24tdW5leHBlY3RlZCIsICItLWNoYW5uZWwiLCAiZGV2IiwKICAg
ICAgICAgICAgICAgICAgICAgICAgImNocm9tZSIsIGZhaWxpbmdfdGVzdF0pCiAgICAgYXNzZXJ0
IGV4Y2luZm8udmFsdWUuY29kZSA9PSAwCiAKIAogQHB5dGVzdC5tYXJrLnNsb3cKIEBweXRlc3Qu
bWFyay5yZW1vdGVfbmV0d29yawotQHB5dGVzdC5tYXJrLnhmYWlsKHN5cy5wbGF0Zm9ybSA9PSAi
d2luMzIiLAotICAgICAgICAgICAgICAgICAgIHJlYXNvbj0iVGVzdHMgY3VycmVudGx5IGRvbid0
IHdvcmsgb24gV2luZG93cyBmb3IgcGF0aCByZWFzb25zIikKK2RlZiB0ZXN0X3J1bl92ZXJpZnlf
dW5zdGFibGUodGVtcF90ZXN0KToKKyAgICAiIiJVbnN0YWJsZSB0ZXN0cyBzaG91bGQgYmUgcmVw
b3J0ZWQgd2l0aCBhIG5vbi16ZXJvIGV4aXQgc3RhdHVzLiBTdGFibGUKKyAgICB0ZXN0cyBzaG91
bGQgYmUgcmVwb3J0ZWQgd2l0aCBhIHplcm8gZXhpdCBzdGF0dXMuIiIiCisgICAgaWYgaXNfcG9y
dF84MDAwX2luX3VzZSgpOgorICAgICAgICBweXRlc3Quc2tpcCgicG9ydCA4MDAwIGFscmVhZHkg
aW4gdXNlIikKKyAgICB1bnN0YWJsZV90ZXN0ID0gdGVtcF90ZXN0KCIiIgorICAgICAgICB0ZXN0
KGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgaWYgKGxvY2FsU3RvcmFnZS5nZXRJdGVtKCd3cHQt
dW5zdGFibGUtdGVzdC1mbGFnJykpIHsKKyAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCk7
CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKCd3cHQt
dW5zdGFibGUtdGVzdC1mbGFnJywgJ3gnKTsKKyAgICAgICAgfSwgJ215IHRlc3QnKTsKKyAgICAi
IiIpCisKKyAgICB3aXRoIHB5dGVzdC5yYWlzZXMoU3lzdGVtRXhpdCkgYXMgZXhjaW5mbzoKKyAg
ICAgICAgd3B0Lm1haW4oYXJndj1bInJ1biIsICItLXllcyIsICItLXZlcmlmeSIsICItLWJpbmFy
eS1hcmciLCAiaGVhZGxlc3MiLAorICAgICAgICAgICAgICAgICAgICAgICAiLS1jaGFubmVsIiwg
ImRldiIsICJjaHJvbWUiLCB1bnN0YWJsZV90ZXN0XSkKKyAgICBhc3NlcnQgZXhjaW5mby52YWx1
ZS5jb2RlICE9IDAKKworICAgIHN0YWJsZV90ZXN0ID0gdGVtcF90ZXN0KCJ0ZXN0KGZ1bmN0aW9u
KCkge30sICdteSB0ZXN0Jyk7IikKKworICAgIHdpdGggcHl0ZXN0LnJhaXNlcyhTeXN0ZW1FeGl0
KSBhcyBleGNpbmZvOgorICAgICAgICB3cHQubWFpbihhcmd2PVsicnVuIiwgIi0teWVzIiwgIi0t
dmVyaWZ5IiwgIi0tYmluYXJ5LWFyZyIsICJoZWFkbGVzcyIsCisgICAgICAgICAgICAgICAgICAg
ICAgICItLWNoYW5uZWwiLCAiZGV2IiwgImNocm9tZSIsIHN0YWJsZV90ZXN0XSkKKyAgICBhc3Nl
cnQgZXhjaW5mby52YWx1ZS5jb2RlID09IDAKKworCitAcHl0ZXN0Lm1hcmsuc2xvdworQHB5dGVz
dC5tYXJrLnJlbW90ZV9uZXR3b3JrCiBkZWYgdGVzdF9pbnN0YWxsX2Nocm9tZWRyaXZlcigpOgot
ICAgIGNocm9tZWRyaXZlcl9wYXRoID0gb3MucGF0aC5qb2luKHdwdC5sb2NhbHBhdGhzLnJlcG9f
cm9vdCwgIl92ZW52IiwgImJpbiIsICJjaHJvbWVkcml2ZXIiKQorICAgIGlmIHN5cy5wbGF0Zm9y
bSA9PSAid2luMzIiOgorICAgICAgICBjaHJvbWVkcml2ZXJfcGF0aCA9IG9zLnBhdGguam9pbih3
cHQubG9jYWxwYXRocy5yZXBvX3Jvb3QsICJfdmVudiIsICJTY3JpcHRzIiwgImNocm9tZWRyaXZl
ci5leGUiKQorICAgIGVsc2U6CisgICAgICAgIGNocm9tZWRyaXZlcl9wYXRoID0gb3MucGF0aC5q
b2luKHdwdC5sb2NhbHBhdGhzLnJlcG9fcm9vdCwgIl92ZW52IiwgImJpbiIsICJjaHJvbWVkcml2
ZXIiKQogICAgIGlmIG9zLnBhdGguZXhpc3RzKGNocm9tZWRyaXZlcl9wYXRoKToKICAgICAgICAg
b3MudW5saW5rKGNocm9tZWRyaXZlcl9wYXRoKQogICAgIHdpdGggcHl0ZXN0LnJhaXNlcyhTeXN0
ZW1FeGl0KSBhcyBleGNpbmZvOgpAQCAtMjM1LDU3ICsyNDgsNTQgQEAgZGVmIHRlc3RfaW5zdGFs
bF9jaHJvbWVkcml2ZXIoKToKIEBweXRlc3QubWFyay5zbG93CiBAcHl0ZXN0Lm1hcmsucmVtb3Rl
X25ldHdvcmsKIEBweXRlc3QubWFyay54ZmFpbChzeXMucGxhdGZvcm0gPT0gIndpbjMyIiwKLSAg
ICAgICAgICAgICAgICAgICByZWFzb249IlRlc3RzIGN1cnJlbnRseSBkb24ndCB3b3JrIG9uIFdp
bmRvd3MgZm9yIHBhdGggcmVhc29ucyIpCisgICAgICAgICAgICAgICAgICAgcmVhc29uPSJodHRw
czovL2dpdGh1Yi5jb20vd2ViLXBsYXRmb3JtLXRlc3RzL3dwdC9pc3N1ZXMvMTcwNzQiKQogZGVm
IHRlc3RfaW5zdGFsbF9maXJlZm94KCk6Ci0KICAgICBpZiBzeXMucGxhdGZvcm0gPT0gImRhcndp
biI6Ci0gICAgICAgIGZ4X3BhdGggPSBvcy5wYXRoLmpvaW4od3B0LmxvY2FscGF0aHMucmVwb19y
b290LCAiX3ZlbnYiLCAiYnJvd3NlcnMiLCAiRmlyZWZveCBOaWdodGx5LmFwcCIpCisgICAgICAg
IGZ4X3BhdGggPSBvcy5wYXRoLmpvaW4od3B0LmxvY2FscGF0aHMucmVwb19yb290LCAiX3ZlbnYi
LCAiYnJvd3NlcnMiLCAibmlnaHRseSIsICJGaXJlZm94IE5pZ2h0bHkuYXBwIikKICAgICBlbHNl
OgotICAgICAgICBmeF9wYXRoID0gb3MucGF0aC5qb2luKHdwdC5sb2NhbHBhdGhzLnJlcG9fcm9v
dCwgIl92ZW52IiwgImJyb3dzZXJzIiwgImZpcmVmb3giKQorICAgICAgICBmeF9wYXRoID0gb3Mu
cGF0aC5qb2luKHdwdC5sb2NhbHBhdGhzLnJlcG9fcm9vdCwgIl92ZW52IiwgImJyb3dzZXJzIiwg
Im5pZ2h0bHkiLCAiZmlyZWZveCIpCiAgICAgaWYgb3MucGF0aC5leGlzdHMoZnhfcGF0aCk6CiAg
ICAgICAgIHNodXRpbC5ybXRyZWUoZnhfcGF0aCkKICAgICB3aXRoIHB5dGVzdC5yYWlzZXMoU3lz
dGVtRXhpdCkgYXMgZXhjaW5mbzoKLSAgICAgICAgd3B0Lm1haW4oYXJndj1bImluc3RhbGwiLCAi
ZmlyZWZveCIsICJicm93c2VyIl0pCisgICAgICAgIHdwdC5tYWluKGFyZ3Y9WyJpbnN0YWxsIiwg
ImZpcmVmb3giLCAiYnJvd3NlciIsICItLWNoYW5uZWw9bmlnaHRseSJdKQogICAgIGFzc2VydCBl
eGNpbmZvLnZhbHVlLmNvZGUgPT0gMAogICAgIGFzc2VydCBvcy5wYXRoLmV4aXN0cyhmeF9wYXRo
KQogICAgIHNodXRpbC5ybXRyZWUoZnhfcGF0aCkKIAogCi1AcHl0ZXN0Lm1hcmsueGZhaWwoc3lz
LnBsYXRmb3JtID09ICJ3aW4zMiIsCi0gICAgICAgICAgICAgICAgICAgcmVhc29uPSJUZXN0cyBj
dXJyZW50bHkgZG9uJ3Qgd29yayBvbiBXaW5kb3dzIGZvciBwYXRoIHJlYXNvbnMiKQogZGVmIHRl
c3RfZmlsZXNfY2hhbmdlZChjYXBzeXMpOgogICAgIGNvbW1pdCA9ICI5MDQ3YWMxZDlmNTFiMWU5
ZmFhNGY5ZmFkOWM0N2QxMDk2MDlhYjA5IgogICAgIHdpdGggcHl0ZXN0LnJhaXNlcyhTeXN0ZW1F
eGl0KSBhcyBleGNpbmZvOgogICAgICAgICB3cHQubWFpbihhcmd2PVsiZmlsZXMtY2hhbmdlZCIs
ICIlc34uLiVzIiAlIChjb21taXQsIGNvbW1pdCldKQogICAgIGFzc2VydCBleGNpbmZvLnZhbHVl
LmNvZGUgPT0gMAogICAgIG91dCwgZXJyID0gY2Fwc3lzLnJlYWRvdXRlcnIoKQotICAgIGFzc2Vy
dCBvdXQgPT0gIiIiaHRtbC9icm93c2Vycy9vZmZsaW5lL2FwcGNhY2hlL3dvcmtlcnMvYXBwY2Fj
aGUtd29ya2VyLmh0bWwKKyAgICBleHBlY3RlZCA9ICIiImh0bWwvYnJvd3NlcnMvb2ZmbGluZS9h
cHBjYWNoZS93b3JrZXJzL2FwcGNhY2hlLXdvcmtlci5odG1sCiBodG1sL2Jyb3dzZXJzL29mZmxp
bmUvYXBwY2FjaGUvd29ya2Vycy9yZXNvdXJjZXMvYXBwY2FjaGUtZGVkaWNhdGVkLXdvcmtlci1u
b3QtaW4tY2FjaGUuanMKIGh0bWwvYnJvd3NlcnMvb2ZmbGluZS9hcHBjYWNoZS93b3JrZXJzL3Jl
c291cmNlcy9hcHBjYWNoZS1zaGFyZWQtd29ya2VyLW5vdC1pbi1jYWNoZS5qcwogaHRtbC9icm93
c2Vycy9vZmZsaW5lL2FwcGNhY2hlL3dvcmtlcnMvcmVzb3VyY2VzL2FwcGNhY2hlLXdvcmtlci1k
YXRhLnB5CiBodG1sL2Jyb3dzZXJzL29mZmxpbmUvYXBwY2FjaGUvd29ya2Vycy9yZXNvdXJjZXMv
YXBwY2FjaGUtd29ya2VyLWltcG9ydC5weQogaHRtbC9icm93c2Vycy9vZmZsaW5lL2FwcGNhY2hl
L3dvcmtlcnMvcmVzb3VyY2VzL2FwcGNhY2hlLXdvcmtlci5tYW5pZmVzdAogaHRtbC9icm93c2Vy
cy9vZmZsaW5lL2FwcGNhY2hlL3dvcmtlcnMvcmVzb3VyY2VzL2FwcGNhY2hlLXdvcmtlci5weQot
IiIiCisiIiIucmVwbGFjZSgiLyIsIG9zLnBhdGguc2VwKQorICAgIGFzc2VydCBvdXQgPT0gZXhw
ZWN0ZWQKICAgICBhc3NlcnQgZXJyID09ICIiCiAKIAotQHB5dGVzdC5tYXJrLnhmYWlsKHN5cy5w
bGF0Zm9ybSA9PSAid2luMzIiLAotICAgICAgICAgICAgICAgICAgIHJlYXNvbj0iVGVzdHMgY3Vy
cmVudGx5IGRvbid0IHdvcmsgb24gV2luZG93cyBmb3IgcGF0aCByZWFzb25zIikKIGRlZiB0ZXN0
X2ZpbGVzX2NoYW5nZWRfbnVsbChjYXBzeXMpOgogICAgIGNvbW1pdCA9ICI5MDQ3YWMxZDlmNTFi
MWU5ZmFhNGY5ZmFkOWM0N2QxMDk2MDlhYjA5IgogICAgIHdpdGggcHl0ZXN0LnJhaXNlcyhTeXN0
ZW1FeGl0KSBhcyBleGNpbmZvOgogICAgICAgICB3cHQubWFpbihhcmd2PVsiZmlsZXMtY2hhbmdl
ZCIsICItLW51bGwiLCAiJXN+Li4lcyIgJSAoY29tbWl0LCBjb21taXQpXSkKICAgICBhc3NlcnQg
ZXhjaW5mby52YWx1ZS5jb2RlID09IDAKICAgICBvdXQsIGVyciA9IGNhcHN5cy5yZWFkb3V0ZXJy
KCkKLSAgICBhc3NlcnQgb3V0ID09ICJcMCIuam9pbihbImh0bWwvYnJvd3NlcnMvb2ZmbGluZS9h
cHBjYWNoZS93b3JrZXJzL2FwcGNhY2hlLXdvcmtlci5odG1sIiwKKyAgICBleHBlY3RlZCA9ICJc
MCIuam9pbihbImh0bWwvYnJvd3NlcnMvb2ZmbGluZS9hcHBjYWNoZS93b3JrZXJzL2FwcGNhY2hl
LXdvcmtlci5odG1sIiwKICAgICAgICAgImh0bWwvYnJvd3NlcnMvb2ZmbGluZS9hcHBjYWNoZS93
b3JrZXJzL3Jlc291cmNlcy9hcHBjYWNoZS1kZWRpY2F0ZWQtd29ya2VyLW5vdC1pbi1jYWNoZS5q
cyIsCiAgICAgICAgICJodG1sL2Jyb3dzZXJzL29mZmxpbmUvYXBwY2FjaGUvd29ya2Vycy9yZXNv
dXJjZXMvYXBwY2FjaGUtc2hhcmVkLXdvcmtlci1ub3QtaW4tY2FjaGUuanMiLAogICAgICAgICAi
aHRtbC9icm93c2Vycy9vZmZsaW5lL2FwcGNhY2hlL3dvcmtlcnMvcmVzb3VyY2VzL2FwcGNhY2hl
LXdvcmtlci1kYXRhLnB5IiwKICAgICAgICAgImh0bWwvYnJvd3NlcnMvb2ZmbGluZS9hcHBjYWNo
ZS93b3JrZXJzL3Jlc291cmNlcy9hcHBjYWNoZS13b3JrZXItaW1wb3J0LnB5IiwKICAgICAgICAg
Imh0bWwvYnJvd3NlcnMvb2ZmbGluZS9hcHBjYWNoZS93b3JrZXJzL3Jlc291cmNlcy9hcHBjYWNo
ZS13b3JrZXIubWFuaWZlc3QiLAogICAgICAgICAiaHRtbC9icm93c2Vycy9vZmZsaW5lL2FwcGNh
Y2hlL3dvcmtlcnMvcmVzb3VyY2VzL2FwcGNhY2hlLXdvcmtlci5weSIsCi0gICAgICAgICIiXSkK
KyAgICAgICAgIiJdKS5yZXBsYWNlKCIvIiwgb3MucGF0aC5zZXApCisgICAgYXNzZXJ0IG91dCA9
PSBleHBlY3RlZAogICAgIGFzc2VydCBlcnIgPT0gIiIKIAogCkBAIC0zMDEsOCArMzExLDggQEAg
ZGVmIHRlc3RfZmlsZXNfY2hhbmdlZF9pZ25vcmUoKToKIAogZGVmIHRlc3RfZmlsZXNfY2hhbmdl
ZF9pZ25vcmVfcnVsZXMoKToKICAgICBmcm9tIHRvb2xzLndwdC50ZXN0ZmlsZXMgaW1wb3J0IGNv
bXBpbGVfaWdub3JlX3J1bGUKLSAgICBhc3NlcnQgY29tcGlsZV9pZ25vcmVfcnVsZSgiZm9vKmJh
ciovYmF6IikucGF0dGVybiA9PSAiXmZvb1wqYmFyW14vXSovYmF6JCIKLSAgICBhc3NlcnQgY29t
cGlsZV9pZ25vcmVfcnVsZSgiZm9vKipiYXIqKi9iYXoiKS5wYXR0ZXJuID09ICJeZm9vXCpcKmJh
ci4qL2JheiQiCisgICAgYXNzZXJ0IGNvbXBpbGVfaWdub3JlX3J1bGUoImZvbypiYXIqL2JheiIp
LnBhdHRlcm4gPT0gciJeZm9vXCpiYXJbXi9dKi9iYXokIgorICAgIGFzc2VydCBjb21waWxlX2ln
bm9yZV9ydWxlKCJmb28qKmJhcioqL2JheiIpLnBhdHRlcm4gPT0gciJeZm9vXCpcKmJhci4qL2Jh
eiQiCiAgICAgYXNzZXJ0IGNvbXBpbGVfaWdub3JlX3J1bGUoImZvb2Jhci9iYXovKiIpLnBhdHRl
cm4gPT0gIl5mb29iYXIvYmF6L1teL10qJCIKICAgICBhc3NlcnQgY29tcGlsZV9pZ25vcmVfcnVs
ZSgiZm9vYmFyL2Jhei8qKiIpLnBhdHRlcm4gPT0gIl5mb29iYXIvYmF6Ly4qJCIKIApAQCAtMzEw
LDYgKzMyMCw4IEBAIGRlZiB0ZXN0X2ZpbGVzX2NoYW5nZWRfaWdub3JlX3J1bGVzKCk6CiBAcHl0
ZXN0Lm1hcmsuc2xvdyAgIyB0aGlzIHVwZGF0ZXMgdGhlIG1hbmlmZXN0CiBAcHl0ZXN0Lm1hcmsu
eGZhaWwoc3lzLnBsYXRmb3JtID09ICJ3aW4zMiIsCiAgICAgICAgICAgICAgICAgICAgcmVhc29u
PSJUZXN0cyBjdXJyZW50bHkgZG9uJ3Qgd29yayBvbiBXaW5kb3dzIGZvciBwYXRoIHJlYXNvbnMi
KQorQHB5dGVzdC5tYXJrLnNraXBpZihzeXMucGxhdGZvcm0gPT0gIndpbjMyIiwKKyAgICAgICAg
ICAgICAgICAgICAgcmVhc29uPSJodHRwczovL2dpdGh1Yi5jb20vd2ViLXBsYXRmb3JtLXRlc3Rz
L3dwdC9pc3N1ZXMvMTI5MzQiKQogZGVmIHRlc3RfdGVzdHNfYWZmZWN0ZWQoY2Fwc3lzLCBtYW5p
ZmVzdF9kaXIpOgogICAgICMgVGhpcyBkb2Vzbid0IHJlYWxseSB3b3JrIHByb3Blcmx5IGZvciBy
YW5kb20gY29tbWl0cyBiZWNhdXNlIHdlIHRlc3QgdGhlIGZpbGVzIGluCiAgICAgIyB0aGUgY3Vy
cmVudCB3b3JraW5nIGRpcmVjdG9yeSBmb3IgcmVmZXJlbmNlcyB0byB0aGUgY2hhbmdlZCBmaWxl
cywgbm90IHRoZSBvbmVzIGF0CkBAIC0zMjYsMjUgKzMzOCw0MSBAQCBkZWYgdGVzdF90ZXN0c19h
ZmZlY3RlZChjYXBzeXMsIG1hbmlmZXN0X2Rpcik6CiBAcHl0ZXN0Lm1hcmsuc2xvdyAgIyB0aGlz
IHVwZGF0ZXMgdGhlIG1hbmlmZXN0CiBAcHl0ZXN0Lm1hcmsueGZhaWwoc3lzLnBsYXRmb3JtID09
ICJ3aW4zMiIsCiAgICAgICAgICAgICAgICAgICAgcmVhc29uPSJUZXN0cyBjdXJyZW50bHkgZG9u
J3Qgd29yayBvbiBXaW5kb3dzIGZvciBwYXRoIHJlYXNvbnMiKQorQHB5dGVzdC5tYXJrLnNraXBp
ZihzeXMucGxhdGZvcm0gPT0gIndpbjMyIiwKKyAgICAgICAgICAgICAgICAgICAgcmVhc29uPSJo
dHRwczovL2dpdGh1Yi5jb20vd2ViLXBsYXRmb3JtLXRlc3RzL3dwdC9pc3N1ZXMvMTI5MzQiKQor
ZGVmIHRlc3RfdGVzdHNfYWZmZWN0ZWRfaWRsaGFybmVzcyhjYXBzeXMsIG1hbmlmZXN0X2Rpcik6
CisgICAgY29tbWl0ID0gIjQ3Y2VhOGMzOGI4OGMwZGRkMzg1NGU0ZWRlYzBjNWI2ZjI2OTdlNjIi
CisgICAgd2l0aCBweXRlc3QucmFpc2VzKFN5c3RlbUV4aXQpIGFzIGV4Y2luZm86CisgICAgICAg
IHdwdC5tYWluKGFyZ3Y9WyJ0ZXN0cy1hZmZlY3RlZCIsICItLW1ldGFkYXRhIiwgbWFuaWZlc3Rf
ZGlyLCAiJXN+Li4lcyIgJSAoY29tbWl0LCBjb21taXQpXSkKKyAgICBhc3NlcnQgZXhjaW5mby52
YWx1ZS5jb2RlID09IDAKKyAgICBvdXQsIGVyciA9IGNhcHN5cy5yZWFkb3V0ZXJyKCkKKyAgICBh
c3NlcnQgIndlYnJ0Yy1pZGVudGl0eS9pZGxoYXJuZXNzLmh0dHBzLndpbmRvdy5qc1xud2VicnRj
LXN0YXRzL2lkbGhhcm5lc3Mud2luZG93LmpzXG53ZWJydGMvaWRsaGFybmVzcy5odHRwcy53aW5k
b3cuanNcbiIgPT0gb3V0CisKKworQHB5dGVzdC5tYXJrLnNsb3cgICMgdGhpcyB1cGRhdGVzIHRo
ZSBtYW5pZmVzdAorQHB5dGVzdC5tYXJrLnhmYWlsKHN5cy5wbGF0Zm9ybSA9PSAid2luMzIiLAor
ICAgICAgICAgICAgICAgICAgIHJlYXNvbj0iVGVzdHMgY3VycmVudGx5IGRvbid0IHdvcmsgb24g
V2luZG93cyBmb3IgcGF0aCByZWFzb25zIikKK0BweXRlc3QubWFyay5za2lwaWYoc3lzLnBsYXRm
b3JtID09ICJ3aW4zMiIsCisgICAgICAgICAgICAgICAgICAgIHJlYXNvbj0iaHR0cHM6Ly9naXRo
dWIuY29tL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQvaXNzdWVzLzEyOTM0IikKIGRlZiB0ZXN0X3Rl
c3RzX2FmZmVjdGVkX251bGwoY2Fwc3lzLCBtYW5pZmVzdF9kaXIpOgogICAgICMgVGhpcyBkb2Vz
bid0IHJlYWxseSB3b3JrIHByb3Blcmx5IGZvciByYW5kb20gY29tbWl0cyBiZWNhdXNlIHdlIHRl
c3QgdGhlIGZpbGVzIGluCiAgICAgIyB0aGUgY3VycmVudCB3b3JraW5nIGRpcmVjdG9yeSBmb3Ig
cmVmZXJlbmNlcyB0byB0aGUgY2hhbmdlZCBmaWxlcywgbm90IHRoZSBvbmVzIGF0CiAgICAgIyB0
aGF0IHNwZWNpZmljIGNvbW1pdC4gQnV0IHdlIGNhbiBhdCBsZWFzdCB0ZXN0IGl0IHJldHVybnMg
c29tZXRoaW5nIHNlbnNpYmxlLgogICAgICMgVGhlIHRlc3Qgd2lsbCBmYWlsIGlmIHRoZSBmaWxl
IHdlIGFzc2VydCBpcyByZW5hbWVkLCBzbyB3ZSBjaG9vc2UgYSBzdGFibGUgb25lLgotICAgIGNv
bW1pdCA9ICI5YmYxZGFhM2Q4YjQ0MjVmMjM1NGMzY2E5MmM0Y2YwMzk4ZDMyOWRkIgorICAgIGNv
bW1pdCA9ICIyNjE0ZTMzMTZmMWQzZDFhNzQ0ZWQzYWYwODhkMTk1MTY1NTJhNWRlIgogICAgIHdp
dGggcHl0ZXN0LnJhaXNlcyhTeXN0ZW1FeGl0KSBhcyBleGNpbmZvOgogICAgICAgICB3cHQubWFp
bihhcmd2PVsidGVzdHMtYWZmZWN0ZWQiLCAiLS1udWxsIiwgIi0tbWV0YWRhdGEiLCBtYW5pZmVz
dF9kaXIsICIlc34uLiVzIiAlIChjb21taXQsIGNvbW1pdCldKQogICAgIGFzc2VydCBleGNpbmZv
LnZhbHVlLmNvZGUgPT0gMAogICAgIG91dCwgZXJyID0gY2Fwc3lzLnJlYWRvdXRlcnIoKQogCiAg
ICAgdGVzdHMgPSBvdXQuc3BsaXQoIlwwIikKLSAgICBhc3NlcnQgImRvbS9pbnRlcmZhY2VzLmh0
bWwiIGluIHRlc3RzCi0gICAgYXNzZXJ0ICJodG1sL2RvbS9pbnRlcmZhY2VzLmh0dHBzLmh0bWwi
IGluIHRlc3RzCisgICAgYXNzZXJ0ICJkb20vaWRsaGFybmVzcy5hbnkuanMiIGluIHRlc3RzCisg
ICAgYXNzZXJ0ICJ4aHIvaWRsaGFybmVzcy5hbnkuanMiIGluIHRlc3RzCiAKIAogQHB5dGVzdC5t
YXJrLnNsb3cKLUBweXRlc3QubWFyay54ZmFpbChzeXMucGxhdGZvcm0gPT0gIndpbjMyIiwKLSAg
ICAgICAgICAgICAgICAgICByZWFzb249IlRlc3RzIGN1cnJlbnRseSBkb24ndCB3b3JrIG9uIFdp
bmRvd3MgZm9yIHBhdGggcmVhc29ucyIpCitAcHl0ZXN0Lm1hcmsuc2tpcGlmKHN5cy5wbGF0Zm9y
bSA9PSAid2luMzIiLAorICAgICAgICAgICAgICAgICAgICByZWFzb249Im5vIG9zLnNldHNpZC9r
aWxscGcgdG8gZWFzaWx5IGNsZWFudXAgdGhlIHByb2Nlc3MgdHJlZSIpCiBkZWYgdGVzdF9zZXJ2
ZSgpOgogICAgIGlmIGlzX3BvcnRfODAwMF9pbl91c2UoKToKICAgICAgICAgcHl0ZXN0LnNraXAo
InBvcnQgODAwMCBhbHJlYWR5IGluIHVzZSIpCkBAIC0zNjEsOSArMzg5LDkgQEAgZGVmIHRlc3Rf
c2VydmUoKToKICAgICAgICAgICAgICAgICBhc3NlcnQgRmFsc2UsICJzZXJ2ZXIgZGlkIG5vdCBz
dGFydCByZXNwb25kaW5nIHdpdGhpbiA2MHMiCiAgICAgICAgICAgICB0cnk6CiAgICAgICAgICAg
ICAgICAgcmVzcCA9IHVybGxpYjIudXJsb3BlbigiaHR0cDovL3dlYi1wbGF0Zm9ybS50ZXN0Ojgw
MDAiKQotICAgICAgICAgICAgICAgIHByaW50IHJlc3AKKyAgICAgICAgICAgICAgICBwcmludChy
ZXNwKQogICAgICAgICAgICAgZXhjZXB0IHVybGxpYjIuVVJMRXJyb3I6Ci0gICAgICAgICAgICAg
ICAgcHJpbnQgIlVSTEVycm9yIgorICAgICAgICAgICAgICAgIHByaW50KCJVUkxFcnJvciIpCiAg
ICAgICAgICAgICAgICAgdGltZS5zbGVlcCgxKQogICAgICAgICAgICAgZWxzZToKICAgICAgICAg
ICAgICAgICBhc3NlcnQgcmVzcC5jb2RlID09IDIwMApAQCAtMzczLDYgKzQwMSw1IEBAIGRlZiB0
ZXN0X3NlcnZlKCk6CiAKICMgVGhlIGZvbGxvd2luZyBjb21tYW5kcyBhcmUgc2xvdyBydW5uaW5n
IGFuZCB1c2VkIGltcGxpY2l0bHkgaW4gb3RoZXIgQ0kKICMgam9icywgc28gd2Ugc2tpcCB0aGVt
IGhlcmU6Ci0jIHdwdCBjaGVjay1zdGFiaWxpdHkKICMgd3B0IG1hbmlmZXN0CiAjIHdwdCBsaW50
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3dwdC90ZXN0cy93M2MtaW1wb3J0LmxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0L3Rlc3RzL3czYy1pbXBvcnQubG9nCmluZGV4
IDA1MzhiNzNkMGJhLi41YzQzZjNjYTZiMiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHQvdGVzdHMvdzNjLWltcG9ydC5sb2cK
KysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93
cHQvdGVzdHMvdzNjLWltcG9ydC5sb2cKQEAgLTE1LDQgKzE1LDggQEAgTm9uZQogLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tCiBMaXN0IG9mIGZpbGVzOgogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvd3B0L3Rlc3RzL2xhdGVzdF9tb3ppbGxhX2NlbnRyYWwudHh0Cisv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHQvdGVz
dHMvdGVzdF9icm93c2VyLnB5CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy93cHQvdGVzdHMvdGVzdF9yZXZsaXN0LnB5CisvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHQvdGVzdHMvdGVzdF9ydW4ucHkK
Ky9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdC90
ZXN0cy90ZXN0X3Rlc3RmaWxlcy5weQogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvd3B0L3Rlc3RzL3Rlc3Rfd3B0LnB5CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdC90b3guaW5p
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHQv
dG94LmluaQppbmRleCBlNDg2YmIyMjFkNy4uNmEwNDQ0NzNhNmIgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0L3RveC5pbmkK
KysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93
cHQvdG94LmluaQpAQCAtMSw1ICsxLDUgQEAKIFt0b3hdCi1lbnZsaXN0ID0gcHkyNyxweTI3LWZs
YWtlOAorZW52bGlzdCA9IHB5MjcKIHNraXBzZGlzdD1UcnVlCiAKIFt0ZXN0ZW52XQpAQCAtNywy
MCArNywxMyBAQCBkZXBzID0KICAgcHl0ZXN0CiAgIHB5dGVzdC1jb3YKICAgaHlwb3RoZXNpcwor
ICBtb2NrCiAgIC1ye3RveGluaWRpcn0vLi4vd3B0cnVubmVyL3JlcXVpcmVtZW50cy50eHQKICAg
LXJ7dG94aW5pZGlyfS8uLi93cHRydW5uZXIvcmVxdWlyZW1lbnRzX2Nocm9tZS50eHQKICAgLXJ7
dG94aW5pZGlyfS8uLi93cHRydW5uZXIvcmVxdWlyZW1lbnRzX2ZpcmVmb3gudHh0CiAKIGNvbW1h
bmRzID0KLSAgcHl0ZXN0IC0tY292IHtwb3NhcmdzfQorICBweXRlc3Qge3Bvc2FyZ3N9CiAKLVt0
ZXN0ZW52OnB5MjctZmxha2U4XQotIyBmbGFrZTggdmVyc2lvbnMgc2hvdWxkIGJlIGtlcHQgaW4g
c3luYyBhY3Jvc3MgdG9vbHMvdG94LmluaSwgdG9vbHMvd3B0L3RveC5pbmksIGFuZCB0b29scy93
cHRydW5uZXIvdG94LmluaQotZGVwcyA9Ci0gICAgIGZsYWtlOD09My41LjAKLSAgICAgcHljb2Rl
c3R5bGU9PTIuMy4xCi0gICAgIHB5Zmxha2VzPT0xLjYuMAotICAgICBwZXA4LW5hbWluZz09MC40
LjEKLQotY29tbWFuZHMgPQotICAgICBmbGFrZTggLS1hcHBlbmQtY29uZmlnPS4uL2ZsYWtlOC5p
bmkge3Bvc2FyZ3N9CitwYXNzZW52ID0KKyAgVEFTS0NMVVNURVJfUk9PVF9VUkwKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0
L3V0aWxzLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy93cHQvdXRpbHMucHkKaW5kZXggZThlZGMwYmU0OTMuLjJkNDI3NzEzZTRlIDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dw
dC91dGlscy5weQorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3dwdC91dGlscy5weQpAQCAtMSwxMSArMSwxNSBAQAogaW1wb3J0IGxvZ2dpbmcK
IGltcG9ydCBvcwogaW1wb3J0IHN1YnByb2Nlc3MKLWltcG9ydCBzeXMKIGltcG9ydCB0YXJmaWxl
CiBpbXBvcnQgemlwZmlsZQogZnJvbSBpbyBpbXBvcnQgQnl0ZXNJTwogCit0cnk6CisgICAgZnJv
bSB0eXBpbmcgaW1wb3J0IEFueSwgQ2FsbGFibGUKK2V4Y2VwdCBJbXBvcnRFcnJvcjoKKyAgICBw
YXNzCisKIGxvZ2dlciA9IGxvZ2dpbmcuZ2V0TG9nZ2VyKF9fbmFtZV9fKQogCiAKQEAgLTEzLDEw
ICsxNywxMSBAQCBjbGFzcyBLd2FyZ3MoZGljdCk6CiAgICAgZGVmIHNldF9pZl9ub25lKHNlbGYs
CiAgICAgICAgICAgICAgICAgICAgIG5hbWUsICAgICAgICAgICAgIyB0eXBlOiBzdHIKICAgICAg
ICAgICAgICAgICAgICAgdmFsdWUsICAgICAgICAgICAjIHR5cGU6IEFueQotICAgICAgICAgICAg
ICAgICAgICBlcnJfZm49Tm9uZSwgICAgICMgdHlwZTogKEt3YXJncywgc3RyKSAtPiBBbnkKKyAg
ICAgICAgICAgICAgICAgICAgZXJyX2ZuPU5vbmUsICAgICAjIHR5cGU6IENhbGxhYmxlW1tLd2Fy
Z3MsIHN0cl0sIEFueV0KICAgICAgICAgICAgICAgICAgICAgZGVzYz1Ob25lLCAgICAgICAjIHR5
cGU6IHN0cgotICAgICAgICAgICAgICAgICAgICBleHRyYV9jb25kPU5vbmUgICMgdHlwZTogKEt3
YXJncykgLT4gYm9vbAorICAgICAgICAgICAgICAgICAgICBleHRyYV9jb25kPU5vbmUgICMgdHlw
ZTogQ2FsbGFibGVbW0t3YXJnc10sIEFueV0KICAgICAgICAgICAgICAgICAgICAgKToKKyAgICAg
ICAgIyB0eXBlOiAoLi4uKSAtPiBBbnkKICAgICAgICAgaWYgZGVzYyBpcyBOb25lOgogICAgICAg
ICAgICAgZGVzYyA9IG5hbWUKIApAQCAtMzksNyArNDQsNyBAQCBkZWYgY2FsbCgqYXJncyk6CiAK
ICAgICBSZXR1cm5zIGEgYnl0ZXN0cmluZyBvZiB0aGUgc3VicHJvY2VzcyBvdXRwdXQgaWYgbm8g
ZXJyb3IuCiAgICAgIiIiCi0gICAgbG9nZ2VyLmRlYnVnKCIlcyIgJSAiICIuam9pbihhcmdzKSkK
KyAgICBsb2dnZXIuZGVidWcoIiAiLmpvaW4oYXJncykpCiAgICAgdHJ5OgogICAgICAgICByZXR1
cm4gc3VicHJvY2Vzcy5jaGVja19vdXRwdXQoYXJncykKICAgICBleGNlcHQgc3VicHJvY2Vzcy5D
YWxsZWRQcm9jZXNzRXJyb3IgYXMgZToKQEAgLTQ5LDIwICs1NCw2IEBAIGRlZiBjYWxsKCphcmdz
KToKICAgICAgICAgcmFpc2UKIAogCi1kZWYgZ2V0X2dpdF9jbWQocmVwb19wYXRoKToKLSAgICAi
IiJDcmVhdGUgYSBmdW5jdGlvbiBmb3IgaW52b2tpbmcgZ2l0IGNvbW1hbmRzIGFzIGEgc3VicHJv
Y2Vzcy4iIiIKLSAgICBkZWYgZ2l0KGNtZCwgKmFyZ3MpOgotICAgICAgICBmdWxsX2NtZCA9IFsi
Z2l0IiwgY21kXSArIGxpc3QoYXJncykKLSAgICAgICAgdHJ5OgotICAgICAgICAgICAgbG9nZ2Vy
LmRlYnVnKCIgIi5qb2luKGZ1bGxfY21kKSkKLSAgICAgICAgICAgIHJldHVybiBzdWJwcm9jZXNz
LmNoZWNrX291dHB1dChmdWxsX2NtZCwgY3dkPXJlcG9fcGF0aCwgc3RkZXJyPXN1YnByb2Nlc3Mu
U1RET1VUKS5zdHJpcCgpCi0gICAgICAgIGV4Y2VwdCBzdWJwcm9jZXNzLkNhbGxlZFByb2Nlc3NF
cnJvciBhcyBlOgotICAgICAgICAgICAgbG9nZ2VyLmVycm9yKCJHaXQgY29tbWFuZCBleGl0ZWQg
d2l0aCBzdGF0dXMgJWkiICUgZS5yZXR1cm5jb2RlKQotICAgICAgICAgICAgbG9nZ2VyLmVycm9y
KGUub3V0cHV0KQotICAgICAgICAgICAgc3lzLmV4aXQoMSkKLSAgICByZXR1cm4gZ2l0Ci0KLQog
ZGVmIHNlZWthYmxlKGZpbGVvYmopOgogICAgICIiIkF0dGVtcHQgdG8gdXNlIGZpbGUuc2VlayBv
biBnaXZlbiBmaWxlLCB3aXRoIGZhbGxiYWNrcy4iIiIKICAgICB0cnk6CkBAIC05NCwyMSArODUs
NiBAQCBkZWYgdW56aXAoZmlsZW9iaiwgZGVzdD1Ob25lLCBsaW1pdD1Ob25lKToKICAgICAgICAg
ICAgIG9zLmNobW9kKG9zLnBhdGguam9pbihkZXN0LCBpbmZvLmZpbGVuYW1lKSwgcGVybSkKIAog
Ci1jbGFzcyBwd2Qob2JqZWN0KToKLSAgICAiIiJDcmVhdGUgY29udGV4dCBmb3IgdGVtcG9yYXJp
bHkgY2hhbmdpbmcgcHJlc2VudCB3b3JraW5nIGRpcmVjdG9yeS4iIiIKLSAgICBkZWYgX19pbml0
X18oc2VsZiwgZGlyKToKLSAgICAgICAgc2VsZi5kaXIgPSBkaXIKLSAgICAgICAgc2VsZi5vbGRf
ZGlyID0gTm9uZQotCi0gICAgZGVmIF9fZW50ZXJfXyhzZWxmKToKLSAgICAgICAgc2VsZi5vbGRf
ZGlyID0gb3MucGF0aC5hYnNwYXRoKG9zLmN1cmRpcikKLSAgICAgICAgb3MuY2hkaXIoc2VsZi5k
aXIpCi0KLSAgICBkZWYgX19leGl0X18oc2VsZiwgKmFyZ3MsICoqa3dhcmdzKToKLSAgICAgICAg
b3MuY2hkaXIoc2VsZi5vbGRfZGlyKQotICAgICAgICBzZWxmLm9sZF9kaXIgPSBOb25lCi0KLQog
ZGVmIGdldCh1cmwpOgogICAgICIiIklzc3VlIEdFVCByZXF1ZXN0IHRvIGEgZ2l2ZW4gVVJMIGFu
ZCByZXR1cm4gdGhlIHJlc3BvbnNlLiIiIgogICAgIGltcG9ydCByZXF1ZXN0cwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHQv
dmlydHVhbGVudi5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvd3B0L3ZpcnR1YWxlbnYucHkKaW5kZXggYjg0NTRjOTc5YzIuLjQwMGRlYmM4OGU0
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3dwdC92aXJ0dWFsZW52LnB5CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0L3ZpcnR1YWxlbnYucHkKQEAgLTQsMjQgKzQsNDUg
QEAgaW1wb3J0IHN5cwogaW1wb3J0IGxvZ2dpbmcKIGZyb20gZGlzdHV0aWxzLnNwYXduIGltcG9y
dCBmaW5kX2V4ZWN1dGFibGUKIAorIyBUaGUgYHBrZ19yZXNvdXJjZXNgIG1vZHVsZSBpcyBwcm92
aWRlZCBieSBgc2V0dXB0b29sc2AsIHdoaWNoIGlzIGl0c2VsZiBhCisjIGRlcGVuZGVuY3kgb2Yg
YHZpcnR1YWxlbnZgLiBUb2xlcmF0ZSBpdHMgYWJzZW5jZSBzbyB0aGF0IHRoaXMgbW9kdWxlIG1h
eSBiZQorIyBldmFsdWF0ZWQgd2hlbiB0aGF0IG1vZHVsZSBpcyBub3QgYXZhaWxhYmxlLiBCZWNh
dXNlIHVzZXJzIG1heSBub3QgcmVjb2duaXplCisjIHRoZSBgcGtnX3Jlc291cmNlc2AgbW9kdWxl
IGJ5IG5hbWUsIHJhaXNlIGEgbW9yZSBkZXNjcmlwdGl2ZSBlcnJvciBpZiBpdCBpcworIyByZWZl
cmVuY2VkIGR1cmluZyBleGVjdXRpb24uCit0cnk6CisgICAgaW1wb3J0IHBrZ19yZXNvdXJjZXMg
YXMgX3BrZ19yZXNvdXJjZXMKKyAgICBnZXRfcGtnX3Jlc291cmNlcyA9IGxhbWJkYTogX3BrZ19y
ZXNvdXJjZXMKK2V4Y2VwdCBJbXBvcnRFcnJvcjoKKyAgICBkZWYgZ2V0X3BrZ19yZXNvdXJjZXMo
KToKKyAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigiVGhlIFB5dGhvbiBtb2R1bGUgYHZpcnR1YWxl
bnZgIGlzIG5vdCBpbnN0YWxsZWQuIikKKwogZnJvbSB0b29scy53cHQudXRpbHMgaW1wb3J0IGNh
bGwKIAogbG9nZ2VyID0gbG9nZ2luZy5nZXRMb2dnZXIoX19uYW1lX18pCiAKIGNsYXNzIFZpcnR1
YWxlbnYob2JqZWN0KToKLSAgICBkZWYgX19pbml0X18oc2VsZiwgcGF0aCk6CisgICAgZGVmIF9f
aW5pdF9fKHNlbGYsIHBhdGgsIHNraXBfdmlydHVhbGVudl9zZXR1cCk6CiAgICAgICAgIHNlbGYu
cGF0aCA9IHBhdGgKLSAgICAgICAgc2VsZi52aXJ0dWFsZW52ID0gZmluZF9leGVjdXRhYmxlKCJ2
aXJ0dWFsZW52IikKLSAgICAgICAgaWYgbm90IHNlbGYudmlydHVhbGVudjoKLSAgICAgICAgICAg
IHJhaXNlIFZhbHVlRXJyb3IoInZpcnR1YWxlbnYgbXVzdCBiZSBpbnN0YWxsZWQgYW5kIG9uIHRo
ZSBQQVRIIikKKyAgICAgICAgc2VsZi5za2lwX3ZpcnR1YWxlbnZfc2V0dXAgPSBza2lwX3ZpcnR1
YWxlbnZfc2V0dXAKKyAgICAgICAgaWYgbm90IHNraXBfdmlydHVhbGVudl9zZXR1cDoKKyAgICAg
ICAgICAgIHNlbGYudmlydHVhbGVudiA9IGZpbmRfZXhlY3V0YWJsZSgidmlydHVhbGVudiIpCisg
ICAgICAgICAgICBpZiBub3Qgc2VsZi52aXJ0dWFsZW52OgorICAgICAgICAgICAgICAgIHJhaXNl
IFZhbHVlRXJyb3IoInZpcnR1YWxlbnYgbXVzdCBiZSBpbnN0YWxsZWQgYW5kIG9uIHRoZSBQQVRI
IikKKyAgICAgICAgICAgIHNlbGYuX3dvcmtpbmdfc2V0ID0gTm9uZQogCiAgICAgQHByb3BlcnR5
CiAgICAgZGVmIGV4aXN0cyhzZWxmKToKICAgICAgICAgcmV0dXJuIG9zLnBhdGguaXNkaXIoc2Vs
Zi5wYXRoKQogCisgICAgQHByb3BlcnR5CisgICAgZGVmIGJyb2tlbl9saW5rKHNlbGYpOgorICAg
ICAgICBweXRob25fbGluayA9IG9zLnBhdGguam9pbihzZWxmLnBhdGgsICIuUHl0aG9uIikKKyAg
ICAgICAgcmV0dXJuIG9zLnBhdGgubGV4aXN0cyhweXRob25fbGluaykgYW5kIG5vdCBvcy5wYXRo
LmV4aXN0cyhweXRob25fbGluaykKKwogICAgIGRlZiBjcmVhdGUoc2VsZik6CiAgICAgICAgIGlm
IG9zLnBhdGguZXhpc3RzKHNlbGYucGF0aCk6CiAgICAgICAgICAgICBzaHV0aWwucm10cmVlKHNl
bGYucGF0aCkKKyAgICAgICAgICAgIHNlbGYuX3dvcmtpbmdfc2V0ID0gTm9uZQogICAgICAgICBj
YWxsKHNlbGYudmlydHVhbGVudiwgc2VsZi5wYXRoLCAiLXAiLCBzeXMuZXhlY3V0YWJsZSkKIAog
ICAgIEBwcm9wZXJ0eQpAQCAtMzcsMTcgKzU4LDY5IEBAIGNsYXNzIFZpcnR1YWxlbnYob2JqZWN0
KToKICAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoInBpcCBub3QgZm91bmQiKQogICAgICAg
ICByZXR1cm4gcGF0aAogCisgICAgQHByb3BlcnR5CisgICAgZGVmIGxpYl9wYXRoKHNlbGYpOgor
ICAgICAgICBiYXNlID0gc2VsZi5wYXRoCisKKyAgICAgICAgIyB0aGlzIGJsb2NrIGlzIGxpdGVy
YWxseSB0YWtlbiBmcm9tIHZpcnR1YWxlbnYgMTYuNC4zCisgICAgICAgIElTX1BZUFkgPSBoYXNh
dHRyKHN5cywgInB5cHlfdmVyc2lvbl9pbmZvIikKKyAgICAgICAgSVNfSllUSE9OID0gc3lzLnBs
YXRmb3JtLnN0YXJ0c3dpdGgoImphdmEiKQorICAgICAgICBpZiBJU19KWVRIT046CisgICAgICAg
ICAgICBzaXRlX3BhY2thZ2VzID0gb3MucGF0aC5qb2luKGJhc2UsICJMaWIiLCAic2l0ZS1wYWNr
YWdlcyIpCisgICAgICAgIGVsaWYgSVNfUFlQWToKKyAgICAgICAgICAgIHNpdGVfcGFja2FnZXMg
PSBvcy5wYXRoLmpvaW4oYmFzZSwgInNpdGUtcGFja2FnZXMiKQorICAgICAgICBlbHNlOgorICAg
ICAgICAgICAgSVNfV0lOID0gc3lzLnBsYXRmb3JtID09ICJ3aW4zMiIKKyAgICAgICAgICAgIGlm
IElTX1dJTjoKKyAgICAgICAgICAgICAgICBzaXRlX3BhY2thZ2VzID0gb3MucGF0aC5qb2luKGJh
c2UsICJMaWIiLCAic2l0ZS1wYWNrYWdlcyIpCisgICAgICAgICAgICBlbHNlOgorICAgICAgICAg
ICAgICAgIHNpdGVfcGFja2FnZXMgPSBvcy5wYXRoLmpvaW4oYmFzZSwgImxpYiIsICJweXRob257
fSIuZm9ybWF0KHN5cy52ZXJzaW9uWzozXSksICJzaXRlLXBhY2thZ2VzIikKKworICAgICAgICBy
ZXR1cm4gc2l0ZV9wYWNrYWdlcworCisgICAgQHByb3BlcnR5CisgICAgZGVmIHdvcmtpbmdfc2V0
KHNlbGYpOgorICAgICAgICBpZiBub3Qgc2VsZi5leGlzdHM6CisgICAgICAgICAgICByYWlzZSBW
YWx1ZUVycm9yKCJ0cnlpbmcgdG8gcmVhZCB3b3JraW5nX3NldCB3aGVuIHZlbnYgZG9lc24ndCBl
eGlzdCIpCisKKyAgICAgICAgaWYgc2VsZi5fd29ya2luZ19zZXQgaXMgTm9uZToKKyAgICAgICAg
ICAgIHNlbGYuX3dvcmtpbmdfc2V0ID0gZ2V0X3BrZ19yZXNvdXJjZXMoKS5Xb3JraW5nU2V0KChz
ZWxmLmxpYl9wYXRoLCkpCisKKyAgICAgICAgcmV0dXJuIHNlbGYuX3dvcmtpbmdfc2V0CisKICAg
ICBkZWYgYWN0aXZhdGUoc2VsZik6CiAgICAgICAgIHBhdGggPSBvcy5wYXRoLmpvaW4oc2VsZi5i
aW5fcGF0aCwgImFjdGl2YXRlX3RoaXMucHkiKQotICAgICAgICBleGVjZmlsZShwYXRoLCB7Il9f
ZmlsZV9fIjogcGF0aH0pCisgICAgICAgIHdpdGggb3BlbihwYXRoKSBhcyBmOgorICAgICAgICAg
ICAgZXhlYyhmLnJlYWQoKSwgeyJfX2ZpbGVfXyI6IHBhdGh9KQogCiAgICAgZGVmIHN0YXJ0KHNl
bGYpOgotICAgICAgICBpZiBub3Qgc2VsZi5leGlzdHM6CisgICAgICAgIGlmIG5vdCBzZWxmLmV4
aXN0cyBvciBzZWxmLmJyb2tlbl9saW5rOgogICAgICAgICAgICAgc2VsZi5jcmVhdGUoKQogICAg
ICAgICBzZWxmLmFjdGl2YXRlKCkKIAogICAgIGRlZiBpbnN0YWxsKHNlbGYsICpyZXF1aXJlbWVu
dHMpOgotICAgICAgICBjYWxsKHNlbGYucGlwX3BhdGgsICJpbnN0YWxsIiwgKnJlcXVpcmVtZW50
cykKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgc2VsZi53b3JraW5nX3NldC5yZXF1aXJlKCpy
ZXF1aXJlbWVudHMpCisgICAgICAgIGV4Y2VwdCBFeGNlcHRpb246CisgICAgICAgICAgICBwYXNz
CisgICAgICAgIGVsc2U6CisgICAgICAgICAgICByZXR1cm4KKworICAgICAgICAjIGAtLXByZWZl
ci1iaW5hcnlgIGd1YXJkcyBhZ2FpbnN0IHJhY2UgY29uZGl0aW9ucyB3aGVuIGluc3RhbGxhdGlv
bgorICAgICAgICAjIG9jY3VycyB3aGlsZSBwYWNrYWdlcyBhcmUgaW4gdGhlIHByb2Nlc3Mgb2Yg
YmVpbmcgcHVibGlzaGVkLgorICAgICAgICBjYWxsKHNlbGYucGlwX3BhdGgsICJpbnN0YWxsIiwg
Ii0tcHJlZmVyLWJpbmFyeSIsICpyZXF1aXJlbWVudHMpCiAKICAgICBkZWYgaW5zdGFsbF9yZXF1
aXJlbWVudHMoc2VsZiwgcmVxdWlyZW1lbnRzX3BhdGgpOgotICAgICAgICBjYWxsKHNlbGYucGlw
X3BhdGgsICJpbnN0YWxsIiwgIi1yIiwgcmVxdWlyZW1lbnRzX3BhdGgpCisgICAgICAgIHdpdGgg
b3BlbihyZXF1aXJlbWVudHNfcGF0aCkgYXMgZjoKKyAgICAgICAgICAgIHRyeToKKyAgICAgICAg
ICAgICAgICBzZWxmLndvcmtpbmdfc2V0LnJlcXVpcmUoZi5yZWFkKCkpCisgICAgICAgICAgICBl
eGNlcHQgRXhjZXB0aW9uOgorICAgICAgICAgICAgICAgIHBhc3MKKyAgICAgICAgICAgIGVsc2U6
CisgICAgICAgICAgICAgICAgcmV0dXJuCisKKyAgICAgICAgIyBgLS1wcmVmZXItYmluYXJ5YCBn
dWFyZHMgYWdhaW5zdCByYWNlIGNvbmRpdGlvbnMgd2hlbiBpbnN0YWxsYXRpb24KKyAgICAgICAg
IyBvY2N1cnMgd2hpbGUgcGFja2FnZXMgYXJlIGluIHRoZSBwcm9jZXNzIG9mIGJlaW5nIHB1Ymxp
c2hlZC4KKyAgICAgICAgY2FsbCgKKyAgICAgICAgICAgIHNlbGYucGlwX3BhdGgsICJpbnN0YWxs
IiwgIi0tcHJlZmVyLWJpbmFyeSIsICItciIsIHJlcXVpcmVtZW50c19wYXRoCisgICAgICAgICkK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvd3B0L3czYy1pbXBvcnQubG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy93cHQvdzNjLWltcG9ydC5sb2cKaW5kZXggNTYzYzFkNWU2ZTku
Ljk2ODY0Njc4MzE4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3dwdC93M2MtaW1wb3J0LmxvZworKysgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdC93M2MtaW1wb3J0LmxvZwpA
QCAtMTYsMTIgKzE2LDE2IEBAIE5vbmUKIExpc3Qgb2YgZmlsZXM6CiAvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHQvX19pbml0X18ucHkKIC9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdC9fX2luaXRf
Xy5weWMKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3dwdC9hbmRyb2lkLnB5CiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy93cHQvYnJvd3Nlci5weQogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0L2NvbW1hbmRzLmpzb24KKy9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdC9jcmVhdGUucHkKIC9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdC9pbnN0YWxsLnB5
CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHQv
bWFjaC1lbXVsYXRvci5tYW5pZmVzdAogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvd3B0L21hcmtkb3duLnB5CiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHQvcGF0aHMKIC9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdC9yZXF1aXJlbWVudHMudHh0Cisv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHQvcmV2
bGlzdC5weQogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvd3B0L3J1bi5weQogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvd3B0L3Rlc3RmaWxlcy5weQogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0L3Rlc3RmaWxlcy5weWMKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0L3dwdC5weSBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0L3dw
dC5weQppbmRleCBmNGVlY2NlMjJjZi4uOTMzMDFkZDg2YjQgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0L3dwdC5weQorKysg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdC93
cHQucHkKQEAgLTQsNyArNCw3IEBAIGltcG9ydCBsb2dnaW5nCiBpbXBvcnQgb3MKIGltcG9ydCBz
eXMKIAotZnJvbSB0b29scyBpbXBvcnQgbG9jYWxwYXRocyAgIyBub3FhOiBmbGFrZTgKK2Zyb20g
dG9vbHMgaW1wb3J0IGxvY2FscGF0aHMgICMgbm9xYTogRjQwMQogCiBmcm9tIHNpeCBpbXBvcnQg
aXRlcml0ZW1zCiBmcm9tIC4gaW1wb3J0IHZpcnR1YWxlbnYKQEAgLTQzLDYgKzQzLDkgQEAgZGVm
IGxvYWRfY29tbWFuZHMoKToKIGRlZiBwYXJzZV9hcmdzKGFyZ3YsIGNvbW1hbmRzKToKICAgICBw
YXJzZXIgPSBhcmdwYXJzZS5Bcmd1bWVudFBhcnNlcigpCiAgICAgcGFyc2VyLmFkZF9hcmd1bWVu
dCgiLS12ZW52IiwgYWN0aW9uPSJzdG9yZSIsIGhlbHA9IlBhdGggdG8gYW4gZXhpc3Rpbmcgdmly
dHVhbGVudiB0byB1c2UiKQorICAgIHBhcnNlci5hZGRfYXJndW1lbnQoIi0tc2tpcC12ZW52LXNl
dHVwIiwgYWN0aW9uPSJzdG9yZV90cnVlIiwKKyAgICAgICAgICAgICAgICAgICAgICAgIGRlc3Q9
InNraXBfdmVudl9zZXR1cCIsCisgICAgICAgICAgICAgICAgICAgICAgICBoZWxwPSJXaGV0aGVy
IHRvIHVzZSB0aGUgdmlydHVhbGVudiBhcy1pcy4gTXVzdCBzZXQgLS12ZW52IGFzIHdlbGwiKQog
ICAgIHBhcnNlci5hZGRfYXJndW1lbnQoIi0tZGVidWciLCBhY3Rpb249InN0b3JlX3RydWUiLCBo
ZWxwPSJSdW4gdGhlIGRlYnVnZ2VyIGluIGNhc2Ugb2YgYW4gZXhjZXB0aW9uIikKICAgICBzdWJw
YXJzZXJzID0gcGFyc2VyLmFkZF9zdWJwYXJzZXJzKGRlc3Q9ImNvbW1hbmQiKQogICAgIGZvciBj
b21tYW5kLCBwcm9wcyBpbiBpdGVyaXRlbXMoY29tbWFuZHMpOgpAQCAtNzcsMTUgKzgwLDQ3IEBA
IGRlZiBpbXBvcnRfY29tbWFuZChwcm9nLCBjb21tYW5kLCBwcm9wcyk6CiAgICAgcmV0dXJuIHNj
cmlwdCwgcGFyc2VyCiAKIAotZGVmIHNldHVwX3ZpcnR1YWxlbnYocGF0aCwgcHJvcHMpOgorZGVm
IGNyZWF0ZV9jb21wbGV0ZV9wYXJzZXIoKToKKyAgICAiIiJFYWdlcmx5IGxvYWQgYWxsIHN1YnBh
cnNlcnMuIFRoaXMgaW52b2x2ZXMgbW9yZSB3b3JrIHRoYW4gaXMgcmVxdWlyZWQKKyAgICBmb3Ig
dHlwaWNhbCBjb21tYW5kLWxpbmUgdXNhZ2UuIEl0IGlzIG1haW50YWluZWQgZm9yIHRoZSBwdXJw
b3NlcyBvZgorICAgIGRvY3VtZW50YXRpb24gZ2VuZXJhdGlvbiBhcyBpbXBsZW1lbnRlZCBpbiBX
UFQncyB0b3AtbGV2ZWwgYC9kb2NzYAorICAgIGRpcmVjdG9yeS4iIiIKKworICAgIGNvbW1hbmRz
ID0gbG9hZF9jb21tYW5kcygpCisgICAgcGFyc2VyID0gYXJncGFyc2UuQXJndW1lbnRQYXJzZXIo
KQorICAgIHN1YnBhcnNlcnMgPSBwYXJzZXIuYWRkX3N1YnBhcnNlcnMoKQorCisgICAgZm9yIGNv
bW1hbmQgaW4gY29tbWFuZHM6CisgICAgICAgIHByb3BzID0gY29tbWFuZHNbY29tbWFuZF0KKwor
ICAgICAgICBpZiBwcm9wc1sidmlydHVhbGVudiJdOgorICAgICAgICAgICAgc2V0dXBfdmlydHVh
bGVudihOb25lLCBGYWxzZSwgcHJvcHMpCisKKyAgICAgICAgc3VicGFyc2VyID0gaW1wb3J0X2Nv
bW1hbmQoJ3dwdCcsIGNvbW1hbmQsIHByb3BzKVsxXQorICAgICAgICBpZiBub3Qgc3VicGFyc2Vy
OgorICAgICAgICAgICAgY29udGludWUKKworICAgICAgICBzdWJwYXJzZXJzLmFkZF9wYXJzZXIo
Y29tbWFuZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlbHA9cHJvcHNbImhlbHAi
XSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFkZF9oZWxwPUZhbHNlLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgcGFyZW50cz1bc3VicGFyc2VyXSkKKworICAgIHJldHVy
biBwYXJzZXIKKworCitkZWYgc2V0dXBfdmlydHVhbGVudihwYXRoLCBza2lwX3ZlbnZfc2V0dXAs
IHByb3BzKToKKyAgICBpZiBza2lwX3ZlbnZfc2V0dXAgYW5kIHBhdGggaXMgTm9uZToKKyAgICAg
ICAgcmFpc2UgVmFsdWVFcnJvcigiTXVzdCBzZXQgLS12ZW52IHdoZW4gLS1za2lwLXZlbnYtc2V0
dXAgaXMgdXNlZCIpCisgICAgc2hvdWxkX3NraXBfc2V0dXAgPSBwYXRoIGlzIG5vdCBOb25lIGFu
ZCBza2lwX3ZlbnZfc2V0dXAKICAgICBpZiBwYXRoIGlzIE5vbmU6CiAgICAgICAgIHBhdGggPSBv
cy5wYXRoLmpvaW4od3B0X3Jvb3QsICJfdmVudiIpCi0gICAgdmVudiA9IHZpcnR1YWxlbnYuVmly
dHVhbGVudihwYXRoKQotICAgIHZlbnYuc3RhcnQoKQotICAgIGZvciBuYW1lIGluIHByb3BzWyJp
bnN0YWxsIl06Ci0gICAgICAgIHZlbnYuaW5zdGFsbChuYW1lKQotICAgIGZvciBwYXRoIGluIHBy
b3BzWyJyZXF1aXJlbWVudHMiXToKLSAgICAgICAgdmVudi5pbnN0YWxsX3JlcXVpcmVtZW50cyhw
YXRoKQorICAgIHZlbnYgPSB2aXJ0dWFsZW52LlZpcnR1YWxlbnYocGF0aCwgc2hvdWxkX3NraXBf
c2V0dXApCisgICAgaWYgbm90IHNob3VsZF9za2lwX3NldHVwOgorICAgICAgICB2ZW52LnN0YXJ0
KCkKKyAgICAgICAgZm9yIG5hbWUgaW4gcHJvcHNbImluc3RhbGwiXToKKyAgICAgICAgICAgIHZl
bnYuaW5zdGFsbChuYW1lKQorICAgICAgICBmb3IgcGF0aCBpbiBwcm9wc1sicmVxdWlyZW1lbnRz
Il06CisgICAgICAgICAgICB2ZW52Lmluc3RhbGxfcmVxdWlyZW1lbnRzKHBhdGgpCiAgICAgcmV0
dXJuIHZlbnYKIAogCkBAIC0xMDEsMTQgKzEzNiwxMSBAQCBkZWYgbWFpbihwcm9nPU5vbmUsIGFy
Z3Y9Tm9uZSk6CiAKICAgICBtYWluX2FyZ3MsIGNvbW1hbmRfYXJncyA9IHBhcnNlX2FyZ3MoYXJn
diwgY29tbWFuZHMpCiAKLSAgICBpZiBub3QobGVuKGFyZ3YpIGFuZCBhcmd2WzBdIGluIGNvbW1h
bmRzKToKLSAgICAgICAgc3lzLmV4aXQoMSkKLQogICAgIGNvbW1hbmQgPSBtYWluX2FyZ3MuY29t
bWFuZAogICAgIHByb3BzID0gY29tbWFuZHNbY29tbWFuZF0KICAgICB2ZW52ID0gTm9uZQogICAg
IGlmIHByb3BzWyJ2aXJ0dWFsZW52Il06Ci0gICAgICAgIHZlbnYgPSBzZXR1cF92aXJ0dWFsZW52
KG1haW5fYXJncy52ZW52LCBwcm9wcykKKyAgICAgICAgdmVudiA9IHNldHVwX3ZpcnR1YWxlbnYo
bWFpbl9hcmdzLnZlbnYsIG1haW5fYXJncy5za2lwX3ZlbnZfc2V0dXAsIHByb3BzKQogICAgIHNj
cmlwdCwgcGFyc2VyID0gaW1wb3J0X2NvbW1hbmQocHJvZywgY29tbWFuZCwgcHJvcHMpCiAgICAg
aWYgcGFyc2VyOgogICAgICAgICBpZiBwcm9wc1sicGFyc2Vfa25vd24iXToKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVu
bmVyL1JFQURNRS5yc3QgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3dwdHJ1bm5lci9SRUFETUUucnN0CmluZGV4IDc2ZTQ5NmRjZGJiLi4wYWRmMGE5
NGIxNSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy93cHRydW5uZXIvUkVBRE1FLnJzdAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci9SRUFETUUucnN0CkBAIC0z
LDIzNCArMywxMiBAQCB3cHRydW5uZXI6IEEgd2ViLXBsYXRmb3JtLXRlc3RzIGhhcm5lc3MKIAog
d3B0cnVubmVyIGlzIGEgaGFybmVzcyBmb3IgcnVubmluZyB0aGUgVzNDIGB3ZWItcGxhdGZvcm0t
dGVzdHMgdGVzdHN1aXRlYF8uCiAKLS4uIGNvbnRlbnRzOjoKKy4uIHRvY3RyZWU6OgorICAgOm1h
eGRlcHRoOiAyCiAKLUluc3RhbGxhdGlvbgotfn5+fn5+fn5+fn5+Ci0KLXdwdHJ1bm5lciBpcyBl
eHBlY3RlZCB0byBiZSBpbnN0YWxsZWQgaW50byBhIHZpcnR1YWxlbnYgdXNpbmcgcGlwLiBGb3IK
LWRldmVsb3BtZW50LCBpdCBjYW4gYmUgaW5zdGFsbGVkIHVzaW5nIHRoZSBgLWVgIG9wdGlvbjo6
Ci0KLSAgcGlwIGluc3RhbGwgLWUgLi8KLQotUnVubmluZyB0aGUgVGVzdHMKLX5+fn5+fn5+fn5+
fn5+fn5+Ci0KLUFmdGVyIGluc3RhbGxhdGlvbiwgdGhlIGNvbW1hbmQgYGB3cHRydW5uZXJgYCBz
aG91bGQgYmUgYXZhaWxhYmxlIHRvIHJ1bgotdGhlIHRlc3RzLgotCi1UaGUgYGB3cHRydW5uZXJg
YCBjb21tYW5kICB0YWtlcyBtdWx0aXBsZSBvcHRpb25zLCBvZiB3aGljaCB0aGUKLWZvbGxvd2lu
ZyBhcmUgbW9zdCBzaWduaWZpY2FudDoKLQotYGAtLXByb2R1Y3RgYCAoZGVmYXVsdHMgdG8gYGZp
cmVmb3hgKQotICBUaGUgcHJvZHVjdCB0byB0ZXN0IGFnYWluc3Q6IGBjaHJvbWVgLCBgZmlyZWZv
eGAsIG9yIGBzZXJ2b2AuCi0KLWBgLS1iaW5hcnlgYCAocmVxdWlyZWQgaWYgcHJvZHVjdCBpcyBg
ZmlyZWZveGAgb3IgYHNlcnZvYCkKLSAgVGhlIHBhdGggdG8gYSBiaW5hcnkgZmlsZSBmb3IgdGhl
IHByb2R1Y3QgKGJyb3dzZXIpIHRvIHRlc3QgYWdhaW5zdC4KLQotYGAtLXdlYmRyaXZlci1iaW5h
cnlgYCAocmVxdWlyZWQgaWYgcHJvZHVjdCBpcyBgY2hyb21lYCkKLSAgVGhlIHBhdGggdG8gYSBg
ZHJpdmVyYCBiaW5hcnk7IGUuZy4sIGEgYGNocm9tZWRyaXZlcmAgYmluYXJ5LgotCi1gYC0tY2Vy
dHV0aWwtYmluYXJ5YGAgKHJlcXVpcmVkIGlmIHByb2R1Y3QgaXMgYGZpcmVmb3hgIFsjXV8pCi0g
IFRoZSBwYXRoIHRvIGEgYGNlcnR1dGlsYCBiaW5hcnkgKGZvciB0ZXN0cyB0aGF0IG11c3QgYmUg
cnVuIG92ZXIgaHR0cHMpLgotCi1gYC0tbWV0YWRhdGFgYCAocmVxdWlyZWQpCi0gIFRoZSBwYXRo
IHRvIGEgZGlyZWN0b3J5IGNvbnRhaW5pbmcgdGVzdCBtZXRhZGF0YS4gWyNdXwotCi1gYC0tdGVz
dHNgYCAocmVxdWlyZWQpCi0gIFRoZSBwYXRoIHRvIGEgZGlyZWN0b3J5IGNvbnRhaW5pbmcgYSB3
ZWItcGxhdGZvcm0tdGVzdHMgY2hlY2tvdXQuCi0KLWBgLS1wcmVmcy1yb290YGAgKHJlcXVpcmVk
IG9ubHkgd2hlbiB0ZXN0aW5nIGEgRmlyZWZveCBiaW5hcnkpCi0gIFRoZSBwYXRoIHRvIGEgZGly
ZWN0b3J5IGNvbnRhaW5pbmcgRmlyZWZveCB0ZXN0LWhhcm5lc3MgcHJlZmVyZW5jZXMuIFsjXV8K
LQotYGAtLWNvbmZpZ2BgIChzaG91bGQgZGVmYXVsdCB0byBgd3B0cnVubmVyLmRlZmF1bHQuaW5p
YCkKLSAgVGhlIHBhdGggdG8gdGhlIGNvbmZpZyAoaW5pKSBmaWxlLgotCi0uLiBbI10gVGhlIGBg
LS1jZXJ0dXRpbC1iaW5hcnlgYCBvcHRpb24gaXMgcmVxdWlyZWQgd2hlbiB0aGUgcHJvZHVjdCBp
cwotICAgYGBmaXJlZm94YGAgdW5sZXNzIGBgLS1zc2wtdHlwZT1ub25lYGAgaXMgc3BlY2lmaWVk
LgotCi0uLiBbI10gVGhlIGBgLS1tZXRhZGF0YWBgIHBhdGggaXMgdG8gYSBkaXJlY3RvcnkgdGhh
dCBjb250YWluczoKLQotICAqIGEgYGBNQU5JRkVTVC5qc29uYGAgZmlsZSAoaW5zdHJ1Y3Rpb25z
IG9uIGdlbmVyYXRpbmcgdGhpcyBmaWxlIGFyZQotICAgIGF2YWlsYWJsZSBpbiB0aGUgYGRldGFp
bGVkIGRvY3VtZW50YXRpb24KLSAgICA8aHR0cDovL3dwdHJ1bm5lci5yZWFkdGhlZG9jcy5vcmcv
ZW4vbGF0ZXN0L3VzYWdlLmh0bWwjaW5zdGFsbGluZy13cHRydW5uZXI+YF8pOwotICAgIGFuZAot
ICAqIChvcHRpb25hbGx5KSBhbnkgZXhwZWN0YXRpb24gZmlsZXMgKHNlZSBiZWxvdykKLQotLi4g
WyNdIEV4YW1wbGUgYGAtLXByZWZzLXJvb3RgYCB2YWx1ZTogYGB+L21vemlsbGEtY2VudHJhbC90
ZXN0aW5nL3Byb2ZpbGVzYGAuCi0KLVRoZXJlIGFyZSBhbHNvIGEgdmFyaWV0eSBvZiBvdGhlciBv
cHRpb25zIGF2YWlsYWJsZTsgdXNlIGBgLS1oZWxwYGAgdG8KLWxpc3QgdGhlbS4KLQotLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotRXhhbXBsZTogSG93IHRvIHN0YXJ0IHdwdHJ1bm5l
cgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotCi1UbyB0ZXN0IGEgRmlyZWZveCBO
aWdodGx5IGJ1aWxkIGluIGFuIE9TIFggZW52aXJvbm1lbnQsIHlvdSBtaWdodCBzdGFydAotd3B0
cnVubmVyIHVzaW5nIHNvbWV0aGluZyBzaW1pbGFyIHRvIHRoZSBmb2xsb3dpbmcgZXhhbXBsZTo6
Ci0KLSAgd3B0cnVubmVyIC0tbWV0YWRhdGE9fi93ZWItcGxhdGZvcm0tdGVzdHMvIC0tdGVzdHM9
fi93ZWItcGxhdGZvcm0tdGVzdHMvIFwKLSAgICAtLWJpbmFyeT1+L21vemlsbGEtY2VudHJhbC9v
YmoteDg2XzY0LWFwcGxlLWRhcndpbjE0LjMuMC9kaXN0L05pZ2h0bHkuYXBwL0NvbnRlbnRzL01h
Y09TL2ZpcmVmb3ggXAotICAgIC0tY2VydHV0aWwtYmluYXJ5PX4vbW96aWxsYS1jZW50cmFsL29i
ai14ODZfNjQtYXBwbGUtZGFyd2luMTQuMy4wL3NlY3VyaXR5L25zcy9jbWQvY2VydHV0aWwvY2Vy
dHV0aWwgXAotICAgIC0tcHJlZnMtcm9vdD1+L21vemlsbGEtY2VudHJhbC90ZXN0aW5nL3Byb2Zp
bGVzCi0KLUFuZCB0byB0ZXN0IGEgQ2hyb21pdW0gYnVpbGQgaW4gYW4gT1MgWCBlbnZpcm9ubWVu
dCwgeW91IG1pZ2h0IHN0YXJ0Ci13cHRydW5uZXIgdXNpbmcgc29tZXRoaW5nIHNpbWlsYXIgdG8g
dGhlIGZvbGxvd2luZyBleGFtcGxlOjoKLQotICB3cHRydW5uZXIgLS1tZXRhZGF0YT1+L3dlYi1w
bGF0Zm9ybS10ZXN0cy8gLS10ZXN0cz1+L3dlYi1wbGF0Zm9ybS10ZXN0cy8gXAotICAgIC0tYmlu
YXJ5PX4vY2hyb21pdW0vc3JjL291dC9SZWxlYXNlL0Nocm9taXVtLmFwcC9Db250ZW50cy9NYWNP
Uy9DaHJvbWl1bSBcCi0gICAgLS13ZWJkcml2ZXItYmluYXJ5PS91c3IvbG9jYWwvYmluL2Nocm9t
ZWRyaXZlciAtLXByb2R1Y3Q9Y2hyb21lCi0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0KLUV4YW1wbGU6IEhvdyB0byBydW4gYSBzdWJzZXQgb2YgdGVzdHMKLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLQotVG8gcmVzdHJpY3QgYSB0ZXN0IHJ1biBq
dXN0IHRvIHRlc3RzIGluIGEgcGFydGljdWxhciB3ZWItcGxhdGZvcm0tdGVzdHMKLXN1YmRpcmVj
dG9yeSwgc3BlY2lmeSB0aGUgZGlyZWN0b3J5IG5hbWUgaW4gdGhlIHBvc2l0aW9uYWwgYXJndW1l
bnRzIGFmdGVyCi10aGUgb3B0aW9uczsgZm9yIGV4YW1wbGUsIHJ1biBqdXN0IHRoZSB0ZXN0cyBp
biB0aGUgYGRvbWAgc3ViZGlyZWN0b3J5OjoKLQotICB3cHRydW5uZXIgLS1tZXRhZGF0YT1+L3dl
Yi1wbGF0Zm9ybS10ZXN0cy8gLS10ZXN0cz1+L3dlYi1wbGF0Zm9ybS10ZXN0cy8gXAotICAgIC0t
YmluYXJ5PS9wYXRoL3RvL2ZpcmVmb3ggLS1jZXJ0dXRpbC1iaW5hcnk9L3BhdGgvdG8vY2VydHV0
aWwgXAotICAgIC0tcHJlZnMtcm9vdD0vcGF0aC90by90ZXN0aW5nL3Byb2ZpbGVzIFwKLSAgICBk
b20KLQotT3V0cHV0Ci1+fn5+fn4KLQotQnkgZGVmYXVsdCB3cHRydW5uZXIganVzdCBkdW1wcyBp
dHMgZW50aXJlIG91dHB1dCBhcyByYXcgSlNPTiBtZXNzYWdlcwotdG8gc3Rkb3V0LiBUaGlzIGlz
IGNvbnZlbmllbnQgZm9yIHBpcGluZyBpbnRvIG90aGVyIHRvb2xzLCBidXQgbm90IGlkZWFsCi1m
b3IgaHVtYW5zIHJlYWRpbmcgdGhlIG91dHB1dC4KLQotQXMgYW4gYWx0ZXJuYXRpdmUsIHlvdSBj
YW4gdXNlIHRoZSBgYC0tbG9nLW1hY2hgYCBvcHRpb24sIHdoaWNoIHByb3ZpZGVzCi1vdXRwdXQg
aW4gYSByZWFzb25hYmxlIGZvcm1hdCBmb3IgaHVtYW5zLiBUaGUgb3B0aW9uIHJlcXVpcmVzIGEg
dmFsdWU6Ci1laXRoZXIgdGhlIHBhdGggZm9yIGEgZmlsZSB0byB3cml0ZSB0aGUgYG1hY2hgLWZv
cm1hdHRlZCBvdXRwdXQgdG8sIG9yCi0iYC1gIiAoYSBoeXBoZW4pIHRvIHdyaXRlIHRoZSBgbWFj
aGAtZm9ybWF0dGVkIG91dHB1dCB0byBzdGRvdXQuCi0KLVdoZW4gdXNpbmcgYGAtLWxvZy1tYWNo
YGAsIG91dHB1dCBvZiB0aGUgZnVsbCByYXcgSlNPTiBsb2cgaXMgc3RpbGwKLWF2YWlsYWJsZSwg
ZnJvbSB0aGUgYGAtLWxvZy1yYXdgYCBvcHRpb24uIFNvIHRvIG91dHB1dCB0aGUgZnVsbCByYXcg
SlNPTgotbG9nIHRvIGEgZmlsZSBhbmQgYSBodW1hbi1yZWFkYWJsZSBzdW1tYXJ5IHRvIHN0ZG91
dCwgeW91IG1pZ2h0IHN0YXJ0Ci13cHRydW5uZXIgdXNpbmcgc29tZXRoaW5nIHNpbWlsYXIgdG8g
dGhlIGZvbGxvd2luZyBleGFtcGxlOjoKLQotICB3cHRydW5uZXIgLS1tZXRhZGF0YT1+L3dlYi1w
bGF0Zm9ybS10ZXN0cy8gLS10ZXN0cz1+L3dlYi1wbGF0Zm9ybS10ZXN0cy8gXAotICAgIC0tYmlu
YXJ5PS9wYXRoL3RvL2ZpcmVmb3ggLS1jZXJ0dXRpbC1iaW5hcnk9L3BhdGgvdG8vY2VydHV0aWwg
XAotICAgIC0tcHJlZnMtcm9vdD0vcGF0aC90by90ZXN0aW5nL3Byb2ZpbGVzIFwKLSAgICAtLWxv
Zy1yYXc9b3V0cHV0LmxvZyAtLWxvZy1tYWNoPS0KLQotRXhwZWN0YXRpb24gRGF0YQotfn5+fn5+
fn5+fn5+fn5+fgotCi13cHRydW5uZXIgaXMgZGVzaWduZWQgdG8gYmUgdXNlZCBpbiBhbiBlbnZp
cm9ubWVudCB3aGVyZSBpdCBpcyBub3QKLWp1c3QgbmVjZXNzYXJ5IHRvIGtub3cgd2hpY2ggdGVz
dHMgcGFzc2VkLCBidXQgdG8gY29tcGFyZSB0aGUgcmVzdWx0cwotYmV0d2VlbiBydW5zLiBGb3Ig
dGhpcyByZWFzb24gaXQgaXMgcG9zc2libGUgdG8gc3RvcmUgdGhlIHJlc3VsdHMgb2YgYQotcHJl
dmlvdXMgcnVuIGluIGEgc2V0IG9mIGluaS1saWtlICJleHBlY3RhdGlvbiBmaWxlcyIuIFRoaXMg
Zm9ybWF0IGlzCi1kb2N1bWVudGVkIGJlbG93LiBUbyBnZW5lcmF0ZSB0aGUgZXhwZWN0YXRpb24g
ZmlsZXMgdXNlIGB3cHRydW5uZXJgIHdpdGgKLXRoZSBgLS1sb2ctcmF3PS9wYXRoL3RvL2xvZy9m
aWxlYCBvcHRpb24uIFRoaXMgY2FuIHRoZW4gYmUgdXNlZCBhcwotaW5wdXQgdG8gdGhlIGB3cHR1
cGRhdGVgIHRvb2wuCi0KLUV4cGVjdGF0aW9uIEZpbGUgRm9ybWF0Ci1+fn5+fn5+fn5+fn5+fn5+
fn5+fn5+fgotCi1NZXRhZGF0YSBhYm91dCB0ZXN0cywgbm90YWJseSBpbmNsdWRpbmcgdGhlaXIg
ZXhwZWN0ZWQgcmVzdWx0cywgaXMKLXN0b3JlZCBpbiBhIG1vZGlmaWVkIGluaS1saWtlIGZvcm1h
dCB0aGF0IGlzIGRlc2lnbmVkIHRvIGJlIGh1bWFuCi1lZGl0YWJsZSwgYnV0IGFsc28gdG8gYmUg
bWFjaGluZSB1cGRhdGFibGUuCi0KLUVhY2ggdGVzdCBmaWxlIHRoYXQgcmVxdWlyZXMgbWV0YWRh
dGEgdG8gYmUgc3BlY2lmaWVkIChiZWNhdXNlIGl0IGhhcwotYSBub24tZGVmYXVsdCBleHBlY3Rh
dGlvbiBvciBiZWNhdXNlIGl0IGlzIGRpc2FibGVkLCBmb3IgZXhhbXBsZSkgaGFzCi1hIGNvcnJl
c3BvbmRpbmcgZXhwZWN0YXRpb24gZmlsZSBpbiB0aGUgYG1ldGFkYXRhYCBkaXJlY3RvcnkuIEZv
cgotZXhhbXBsZSBhIHRlc3QgZmlsZSBgaHRtbC90ZXN0MS5odG1sYCBjb250YWluaW5nIGEgZmFp
bGluZyB0ZXN0IHdvdWxkCi1oYXZlIGFuIGV4cGVjdGF0aW9uIGZpbGUgY2FsbGVkIGBodG1sL3Rl
c3QxLmh0bWwuaW5pYCBpbiB0aGUKLWBtZXRhZGF0YWAgZGlyZWN0b3J5LgotCi1BbiBleGFtcGxl
IG9mIGFuIGV4cGVjdGF0aW9uIGZpbGUgaXM6OgotCi0gIGV4YW1wbGVfZGVmYXVsdF9rZXk6IGV4
YW1wbGVfdmFsdWUKLQotICBbZmlsZW5hbWUuaHRtbF0KLSAgICBbc3VidGVzdDFdCi0gICAgICBl
eHBlY3RlZDogRkFJTAotCi0gICAgW3N1YnRlc3QyXQotICAgICAgZXhwZWN0ZWQ6Ci0gICAgICAg
IGlmIHBsYXRmb3JtID09ICd3aW4nOiBUSU1FT1VUCi0gICAgICAgIGlmIHBsYXRmb3JtID09ICdv
c3gnOiBFUlJPUgotICAgICAgICBGQUlMCi0KLSAgW2ZpbGVuYW1lLmh0bWw/cXVlcnk9c29tZXRo
aW5nXQotICAgIGRpc2FibGVkOiBidWcxMjM0NQotCi1UaGUgZmlsZSBjb25zaXN0cyBvZiB0d28g
ZWxlbWVudHMsIGtleS12YWx1ZSBwYWlycyBhbmQKLXNlY3Rpb25zLgotCi1TZWN0aW9ucyBhcmUg
ZGVsaW1pdGVkIGJ5IGhlYWRpbmdzIGVuY2xvc2VkIGluIHNxdWFyZSBicmFja2V0cy4gQW55Ci1j
bG9zaW5nIHNxdWFyZSBicmFja2V0IGluIHRoZSBoZWFkaW5nIGl0c2VsZiBteSBiZSBlc2NhcGVk
IHdpdGggYQotYmFja3NsYXNoLiBFYWNoIHNlY3Rpb24gbWF5IHRoZW4gY29udGFpbiBhbnkgbnVt
YmVyIG9mIGtleS12YWx1ZSBwYWlycwotZm9sbG93ZWQgYnkgYW55IG51bWJlciBvZiBzdWJzZWN0
aW9ucy4gU28gdGhhdCBpdCBpcyBjbGVhciB3aGljaCBkYXRhCi1iZWxvbmdzIHRvIGVhY2ggc2Vj
dGlvbiB3aXRob3V0IHRoZSB1c2Ugb2YgZW5kLXNlY3Rpb24gbWFya2VycywgdGhlCi1kYXRhIGZv
ciBlYWNoIHNlY3Rpb24gKGkuZS4gdGhlIGtleS12YWx1ZSBwYWlycyBhbmQgc3Vic2VjdGlvbnMp
IG11c3QKLWJlIGluZGVudGVkIHVzaW5nIHNwYWNlcy4gSW5kZW50YXRpb24gbmVlZCBvbmx5IGJl
IGNvbnNpc3RlbnQsIGJ1dAotdXNpbmcgdHdvIHNwYWNlcyBwZXIgbGV2ZWwgaXMgcmVjb21tZW5k
ZWQuCi0KLUluIGEgdGVzdCBleHBlY3RhdGlvbiBmaWxlLCBlYWNoIHJlc291cmNlIHByb3ZpZGVk
IGJ5IHRoZSBmaWxlIGhhcyBhCi1zaW5nbGUgc2VjdGlvbiwgd2l0aCB0aGUgc2VjdGlvbiBoZWFk
aW5nIGJlaW5nIHRoZSBwYXJ0IGFmdGVyIHRoZSBsYXN0Ci1gL2AgaW4gdGhlIHRlc3QgdXJsLiBU
ZXN0cyB0aGF0IGhhdmUgc3Vic2VjdGlvbnMgbWF5IGhhdmUgc3Vic2VjdGlvbnMKLWZvciB0aG9z
ZSBzdWJ0ZXN0cyBpbiB3aGljaCB0aGUgaGVhZGluZyBpcyB0aGUgbmFtZSBvZiB0aGUgc3VidGVz
dC4KLQotU2ltcGxlIGtleS12YWx1ZSBwYWlycyBhcmUgb2YgdGhlIGZvcm06OgotCi0gIGtleTog
dmFsdWUKLQotTm90ZSB0aGF0IHVubGlrZSBpbmkgZmlsZXMsIG9ubHkgYDpgIGlzIGEgdmFsaWQg
c2VwYXJhdG9yOyBgPWAgd2lsbAotbm90IHdvcmsgYXMgZXhwZWN0ZWQuIEtleS12YWx1ZSBwYWly
cyBtYXkgYWxzbyBoYXZlIGNvbmRpdGlvbmFsCi12YWx1ZXMgb2YgdGhlIGZvcm06OgotCi0gIGtl
eToKLSAgICBpZiBjb25kaXRpb24xOiB2YWx1ZTEKLSAgICBpZiBjb25kaXRpb24yOiB2YWx1ZTIK
LSAgICBkZWZhdWx0Ci0KLUluIHRoaXMgY2FzZSBlYWNoIGNvbmRpdGlvbmFsIGlzIGV2YWx1YXRl
ZCBpbiB0dXJuIGFuZCB0aGUgdmFsdWUgaXMKLXRoYXQgb24gdGhlIHJpZ2h0IGhhbmQgc2lkZSBv
ZiB0aGUgZmlyc3QgbWF0Y2hpbmcgY29uZGl0aW9uYWwuIEluIHRoZQotY2FzZSB0aGF0IG5vIGNv
bmRpdGlvbiBtYXRjaGVzLCB0aGUgdW5jb25kaXRpb25hbCBkZWZhdWx0IGlzIHVzZWQuIElmCi1u
byBjb25kaXRpb24gbWF0Y2hlcyBhbmQgbm8gZGVmYXVsdCBpcyBwcm92aWRlZCBpdCBpcyBlcXVp
dmFsZW50IHRvCi10aGUga2V5IG5vdCBiZWluZyBwcmVzZW50LiBDb25kaXRpb25hbHMgdXNlIGEg
c2ltcGxlIHB5dGhvbi1saWtlIGV4cHJlc3Npb24KLWxhbmd1YWdlIGUuZy46OgotCi0gIGlmIGRl
YnVnIGFuZCAocGxhdGZvcm0gPT0gImxpbnV4IiBvciBwbGF0Zm9ybSA9PSAib3N4Iik6IEZBSUwK
LQotRm9yIHRlc3QgZXhwZWN0YXRpb25zIHRoZSBhdmFpbGFibGUgdmFyaWFibGVzIGFyZSB0aG9z
ZSBpbiB0aGUKLWBydW5faW5mb2Agd2hpY2ggZm9yIGRlc2t0b3AgYXJlIGB2ZXJzaW9uYCwgYG9z
YCwgYGJpdHNgLCBgcHJvY2Vzc29yYCwKLWBkZWJ1Z2AgYW5kIGBwcm9kdWN0YC4KLQotS2V5LXZh
bHVlIHBhaXJzIHNwZWNpZmllZCBhdCB0aGUgdG9wIGxldmVsIG9mIHRoZSBmaWxlIGJlZm9yZSBh
bnkKLXNlY3Rpb25zIGFyZSBzcGVjaWFsIGFzIHRoZXkgcHJvdmlkZSBkZWZhdWx0cyBmb3IgdGhl
IHJlc3Qgb2YgdGhlIGZpbGUKLWUuZy46OgotCi0gIGtleTE6IHZhbHVlMQotCi0gIFtzZWN0aW9u
IDFdCi0gICAga2V5MjogdmFsdWUyCi0KLSAgW3NlY3Rpb24gMl0KLSAgICBrZXkxOiB2YWx1ZTMK
LQotSW4gdGhpcyBjYXNlLCBpbnNpZGUgc2VjdGlvbiAxLCBga2V5MWAgd291bGQgaGF2ZSB0aGUg
dmFsdWUgYHZhbHVlMWAKLWFuZCBga2V5MmAgdGhlIHZhbHVlIGB2YWx1ZTJgIHdoZXJlYXMgaW4g
c2VjdGlvbiAyIGBrZXkxYCB3b3VsZCBoYXZlCi10aGUgdmFsdWUgYHZhbHVlM2AgYW5kIGBrZXky
YCB3b3VsZCBiZSB1bmRlZmluZWQuCi0KLVRoZSB3ZWItcGxhdGZvcm0tdGVzdCBoYXJuZXNzIGtu
b3dzIGFib3V0IHNldmVyYWwga2V5czoKLQotYGV4cGVjdGVkYAotICBNdXN0IGV2YWx1YXRlIHRv
IGEgcG9zc2libGUgdGVzdCBzdGF0dXMgaW5kaWNhdGluZyB0aGUgZXhwZWN0ZWQKLSAgcmVzdWx0
IG9mIHRoZSB0ZXN0LiBUaGUgaW1wbGljaXQgZGVmYXVsdCBpcyBQQVNTIG9yIE9LIHdoZW4gdGhl
Ci0gIGZpZWxkIGlzbid0IHByZXNlbnQuCi0KLWBkaXNhYmxlZGAKLSAgQW55IHZhbHVlIGluZGlj
YXRlcyB0aGF0IHRoZSB0ZXN0IGlzIGRpc2FibGVkLgotCi1gcmVmdHlwZWAKLSAgVGhlIHR5cGUg
b2YgY29tcGFyaXNvbiBmb3IgcmVmdGVzdHM7IGVpdGhlciBgPT1gIG9yIGAhPWAuCi0KLWByZWZ1
cmxgCi0gIFRoZSByZWZlcmVuY2UgdXJsIGZvciByZWZ0ZXN0cy4KKyAgIGRvY3MvdXNhZ2UKKyAg
IGRvY3MvZXhwZWN0YXRpb24KKyAgIGRvY3MvZGVzaWduCisgICBkb2NzL2ludGVybmFscwogCiAu
LiBfYHdlYi1wbGF0Zm9ybS10ZXN0cyB0ZXN0c3VpdGVgOiBodHRwczovL2dpdGh1Yi5jb20vd2Vi
LXBsYXRmb3JtLXRlc3RzL3dwdApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvZG9jcy9NYWtlZmlsZSBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL2Rv
Y3MvTWFrZWZpbGUKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGQwMmI2YzVlN2M0Li4w
MDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3dwdHJ1bm5lci9kb2NzL01ha2VmaWxlCisrKyAvZGV2L251bGwKQEAgLTEsMTc3
ICswLDAgQEAKLSMgTWFrZWZpbGUgZm9yIFNwaGlueCBkb2N1bWVudGF0aW9uCi0jCi0KLSMgWW91
IGNhbiBzZXQgdGhlc2UgdmFyaWFibGVzIGZyb20gdGhlIGNvbW1hbmQgbGluZS4KLVNQSElOWE9Q
VFMgICAgPQotU1BISU5YQlVJTEQgICA9IHNwaGlueC1idWlsZAotUEFQRVIgICAgICAgICA9Ci1C
VUlMRERJUiAgICAgID0gX2J1aWxkCi0KLSMgVXNlci1mcmllbmRseSBjaGVjayBmb3Igc3BoaW54
LWJ1aWxkCi1pZmVxICgkKHNoZWxsIHdoaWNoICQoU1BISU5YQlVJTEQpID4vZGV2L251bGwgMj4m
MTsgZWNobyAkJD8pLCAxKQotJChlcnJvciBUaGUgJyQoU1BISU5YQlVJTEQpJyBjb21tYW5kIHdh
cyBub3QgZm91bmQuIE1ha2Ugc3VyZSB5b3UgaGF2ZSBTcGhpbnggaW5zdGFsbGVkLCB0aGVuIHNl
dCB0aGUgU1BISU5YQlVJTEQgZW52aXJvbm1lbnQgdmFyaWFibGUgdG8gcG9pbnQgdG8gdGhlIGZ1
bGwgcGF0aCBvZiB0aGUgJyQoU1BISU5YQlVJTEQpJyBleGVjdXRhYmxlLiBBbHRlcm5hdGl2ZWx5
IHlvdSBjYW4gYWRkIHRoZSBkaXJlY3Rvcnkgd2l0aCB0aGUgZXhlY3V0YWJsZSB0byB5b3VyIFBB
VEguIElmIHlvdSBkb24ndCBoYXZlIFNwaGlueCBpbnN0YWxsZWQsIGdyYWIgaXQgZnJvbSBodHRw
Oi8vc3BoaW54LWRvYy5vcmcvKQotZW5kaWYKLQotIyBJbnRlcm5hbCB2YXJpYWJsZXMuCi1QQVBF
Uk9QVF9hNCAgICAgPSAtRCBsYXRleF9wYXBlcl9zaXplPWE0Ci1QQVBFUk9QVF9sZXR0ZXIgPSAt
RCBsYXRleF9wYXBlcl9zaXplPWxldHRlcgotQUxMU1BISU5YT1BUUyAgID0gLWQgJChCVUlMRERJ
UikvZG9jdHJlZXMgJChQQVBFUk9QVF8kKFBBUEVSKSkgJChTUEhJTlhPUFRTKSAuCi0jIHRoZSBp
MThuIGJ1aWxkZXIgY2Fubm90IHNoYXJlIHRoZSBlbnZpcm9ubWVudCBhbmQgZG9jdHJlZXMgd2l0
aCB0aGUgb3RoZXJzCi1JMThOU1BISU5YT1BUUyAgPSAkKFBBUEVST1BUXyQoUEFQRVIpKSAkKFNQ
SElOWE9QVFMpIC4KLQotLlBIT05ZOiBoZWxwIGNsZWFuIGh0bWwgZGlyaHRtbCBzaW5nbGVodG1s
IHBpY2tsZSBqc29uIGh0bWxoZWxwIHF0aGVscCBkZXZoZWxwIGVwdWIgbGF0ZXggbGF0ZXhwZGYg
dGV4dCBtYW4gY2hhbmdlcyBsaW5rY2hlY2sgZG9jdGVzdCBnZXR0ZXh0Ci0KLWhlbHA6Ci0JQGVj
aG8gIlBsZWFzZSB1c2UgXGBtYWtlIDx0YXJnZXQ+JyB3aGVyZSA8dGFyZ2V0PiBpcyBvbmUgb2Yi
Ci0JQGVjaG8gIiAgaHRtbCAgICAgICB0byBtYWtlIHN0YW5kYWxvbmUgSFRNTCBmaWxlcyIKLQlA
ZWNobyAiICBkaXJodG1sICAgIHRvIG1ha2UgSFRNTCBmaWxlcyBuYW1lZCBpbmRleC5odG1sIGlu
IGRpcmVjdG9yaWVzIgotCUBlY2hvICIgIHNpbmdsZWh0bWwgdG8gbWFrZSBhIHNpbmdsZSBsYXJn
ZSBIVE1MIGZpbGUiCi0JQGVjaG8gIiAgcGlja2xlICAgICB0byBtYWtlIHBpY2tsZSBmaWxlcyIK
LQlAZWNobyAiICBqc29uICAgICAgIHRvIG1ha2UgSlNPTiBmaWxlcyIKLQlAZWNobyAiICBodG1s
aGVscCAgIHRvIG1ha2UgSFRNTCBmaWxlcyBhbmQgYSBIVE1MIGhlbHAgcHJvamVjdCIKLQlAZWNo
byAiICBxdGhlbHAgICAgIHRvIG1ha2UgSFRNTCBmaWxlcyBhbmQgYSBxdGhlbHAgcHJvamVjdCIK
LQlAZWNobyAiICBkZXZoZWxwICAgIHRvIG1ha2UgSFRNTCBmaWxlcyBhbmQgYSBEZXZoZWxwIHBy
b2plY3QiCi0JQGVjaG8gIiAgZXB1YiAgICAgICB0byBtYWtlIGFuIGVwdWIiCi0JQGVjaG8gIiAg
bGF0ZXggICAgICB0byBtYWtlIExhVGVYIGZpbGVzLCB5b3UgY2FuIHNldCBQQVBFUj1hNCBvciBQ
QVBFUj1sZXR0ZXIiCi0JQGVjaG8gIiAgbGF0ZXhwZGYgICB0byBtYWtlIExhVGVYIGZpbGVzIGFu
ZCBydW4gdGhlbSB0aHJvdWdoIHBkZmxhdGV4IgotCUBlY2hvICIgIGxhdGV4cGRmamEgdG8gbWFr
ZSBMYVRlWCBmaWxlcyBhbmQgcnVuIHRoZW0gdGhyb3VnaCBwbGF0ZXgvZHZpcGRmbXgiCi0JQGVj
aG8gIiAgdGV4dCAgICAgICB0byBtYWtlIHRleHQgZmlsZXMiCi0JQGVjaG8gIiAgbWFuICAgICAg
ICB0byBtYWtlIG1hbnVhbCBwYWdlcyIKLQlAZWNobyAiICB0ZXhpbmZvICAgIHRvIG1ha2UgVGV4
aW5mbyBmaWxlcyIKLQlAZWNobyAiICBpbmZvICAgICAgIHRvIG1ha2UgVGV4aW5mbyBmaWxlcyBh
bmQgcnVuIHRoZW0gdGhyb3VnaCBtYWtlaW5mbyIKLQlAZWNobyAiICBnZXR0ZXh0ICAgIHRvIG1h
a2UgUE8gbWVzc2FnZSBjYXRhbG9ncyIKLQlAZWNobyAiICBjaGFuZ2VzICAgIHRvIG1ha2UgYW4g
b3ZlcnZpZXcgb2YgYWxsIGNoYW5nZWQvYWRkZWQvZGVwcmVjYXRlZCBpdGVtcyIKLQlAZWNobyAi
ICB4bWwgICAgICAgIHRvIG1ha2UgRG9jdXRpbHMtbmF0aXZlIFhNTCBmaWxlcyIKLQlAZWNobyAi
ICBwc2V1ZG94bWwgIHRvIG1ha2UgcHNldWRveG1sLVhNTCBmaWxlcyBmb3IgZGlzcGxheSBwdXJw
b3NlcyIKLQlAZWNobyAiICBsaW5rY2hlY2sgIHRvIGNoZWNrIGFsbCBleHRlcm5hbCBsaW5rcyBm
b3IgaW50ZWdyaXR5IgotCUBlY2hvICIgIGRvY3Rlc3QgICAgdG8gcnVuIGFsbCBkb2N0ZXN0cyBl
bWJlZGRlZCBpbiB0aGUgZG9jdW1lbnRhdGlvbiAoaWYgZW5hYmxlZCkiCi0KLWNsZWFuOgotCXJt
IC1yZiAkKEJVSUxERElSKS8qCi0KLWh0bWw6Ci0JJChTUEhJTlhCVUlMRCkgLWIgaHRtbCAkKEFM
TFNQSElOWE9QVFMpICQoQlVJTERESVIpL2h0bWwKLQlAZWNobwotCUBlY2hvICJCdWlsZCBmaW5p
c2hlZC4gVGhlIEhUTUwgcGFnZXMgYXJlIGluICQoQlVJTERESVIpL2h0bWwuIgotCi1kaXJodG1s
OgotCSQoU1BISU5YQlVJTEQpIC1iIGRpcmh0bWwgJChBTExTUEhJTlhPUFRTKSAkKEJVSUxERElS
KS9kaXJodG1sCi0JQGVjaG8KLQlAZWNobyAiQnVpbGQgZmluaXNoZWQuIFRoZSBIVE1MIHBhZ2Vz
IGFyZSBpbiAkKEJVSUxERElSKS9kaXJodG1sLiIKLQotc2luZ2xlaHRtbDoKLQkkKFNQSElOWEJV
SUxEKSAtYiBzaW5nbGVodG1sICQoQUxMU1BISU5YT1BUUykgJChCVUlMRERJUikvc2luZ2xlaHRt
bAotCUBlY2hvCi0JQGVjaG8gIkJ1aWxkIGZpbmlzaGVkLiBUaGUgSFRNTCBwYWdlIGlzIGluICQo
QlVJTERESVIpL3NpbmdsZWh0bWwuIgotCi1waWNrbGU6Ci0JJChTUEhJTlhCVUlMRCkgLWIgcGlj
a2xlICQoQUxMU1BISU5YT1BUUykgJChCVUlMRERJUikvcGlja2xlCi0JQGVjaG8KLQlAZWNobyAi
QnVpbGQgZmluaXNoZWQ7IG5vdyB5b3UgY2FuIHByb2Nlc3MgdGhlIHBpY2tsZSBmaWxlcy4iCi0K
LWpzb246Ci0JJChTUEhJTlhCVUlMRCkgLWIganNvbiAkKEFMTFNQSElOWE9QVFMpICQoQlVJTERE
SVIpL2pzb24KLQlAZWNobwotCUBlY2hvICJCdWlsZCBmaW5pc2hlZDsgbm93IHlvdSBjYW4gcHJv
Y2VzcyB0aGUgSlNPTiBmaWxlcy4iCi0KLWh0bWxoZWxwOgotCSQoU1BISU5YQlVJTEQpIC1iIGh0
bWxoZWxwICQoQUxMU1BISU5YT1BUUykgJChCVUlMRERJUikvaHRtbGhlbHAKLQlAZWNobwotCUBl
Y2hvICJCdWlsZCBmaW5pc2hlZDsgbm93IHlvdSBjYW4gcnVuIEhUTUwgSGVscCBXb3Jrc2hvcCB3
aXRoIHRoZSIgXAotCSAgICAgICIuaGhwIHByb2plY3QgZmlsZSBpbiAkKEJVSUxERElSKS9odG1s
aGVscC4iCi0KLXF0aGVscDoKLQkkKFNQSElOWEJVSUxEKSAtYiBxdGhlbHAgJChBTExTUEhJTlhP
UFRTKSAkKEJVSUxERElSKS9xdGhlbHAKLQlAZWNobwotCUBlY2hvICJCdWlsZCBmaW5pc2hlZDsg
bm93IHlvdSBjYW4gcnVuICJxY29sbGVjdGlvbmdlbmVyYXRvciIgd2l0aCB0aGUiIFwKLQkgICAg
ICAiLnFoY3AgcHJvamVjdCBmaWxlIGluICQoQlVJTERESVIpL3F0aGVscCwgbGlrZSB0aGlzOiIK
LQlAZWNobyAiIyBxY29sbGVjdGlvbmdlbmVyYXRvciAkKEJVSUxERElSKS9xdGhlbHAvd3B0cnVu
bmVyLnFoY3AiCi0JQGVjaG8gIlRvIHZpZXcgdGhlIGhlbHAgZmlsZToiCi0JQGVjaG8gIiMgYXNz
aXN0YW50IC1jb2xsZWN0aW9uRmlsZSAkKEJVSUxERElSKS9xdGhlbHAvd3B0cnVubmVyLnFoYyIK
LQotZGV2aGVscDoKLQkkKFNQSElOWEJVSUxEKSAtYiBkZXZoZWxwICQoQUxMU1BISU5YT1BUUykg
JChCVUlMRERJUikvZGV2aGVscAotCUBlY2hvCi0JQGVjaG8gIkJ1aWxkIGZpbmlzaGVkLiIKLQlA
ZWNobyAiVG8gdmlldyB0aGUgaGVscCBmaWxlOiIKLQlAZWNobyAiIyBta2RpciAtcCAkJEhPTUUv
LmxvY2FsL3NoYXJlL2RldmhlbHAvd3B0cnVubmVyIgotCUBlY2hvICIjIGxuIC1zICQoQlVJTERE
SVIpL2RldmhlbHAgJCRIT01FLy5sb2NhbC9zaGFyZS9kZXZoZWxwL3dwdHJ1bm5lciIKLQlAZWNo
byAiIyBkZXZoZWxwIgotCi1lcHViOgotCSQoU1BISU5YQlVJTEQpIC1iIGVwdWIgJChBTExTUEhJ
TlhPUFRTKSAkKEJVSUxERElSKS9lcHViCi0JQGVjaG8KLQlAZWNobyAiQnVpbGQgZmluaXNoZWQu
IFRoZSBlcHViIGZpbGUgaXMgaW4gJChCVUlMRERJUikvZXB1Yi4iCi0KLWxhdGV4OgotCSQoU1BI
SU5YQlVJTEQpIC1iIGxhdGV4ICQoQUxMU1BISU5YT1BUUykgJChCVUlMRERJUikvbGF0ZXgKLQlA
ZWNobwotCUBlY2hvICJCdWlsZCBmaW5pc2hlZDsgdGhlIExhVGVYIGZpbGVzIGFyZSBpbiAkKEJV
SUxERElSKS9sYXRleC4iCi0JQGVjaG8gIlJ1biBcYG1ha2UnIGluIHRoYXQgZGlyZWN0b3J5IHRv
IHJ1biB0aGVzZSB0aHJvdWdoIChwZGYpbGF0ZXgiIFwKLQkgICAgICAiKHVzZSBcYG1ha2UgbGF0
ZXhwZGYnIGhlcmUgdG8gZG8gdGhhdCBhdXRvbWF0aWNhbGx5KS4iCi0KLWxhdGV4cGRmOgotCSQo
U1BISU5YQlVJTEQpIC1iIGxhdGV4ICQoQUxMU1BISU5YT1BUUykgJChCVUlMRERJUikvbGF0ZXgK
LQlAZWNobyAiUnVubmluZyBMYVRlWCBmaWxlcyB0aHJvdWdoIHBkZmxhdGV4Li4uIgotCSQoTUFL
RSkgLUMgJChCVUlMRERJUikvbGF0ZXggYWxsLXBkZgotCUBlY2hvICJwZGZsYXRleCBmaW5pc2hl
ZDsgdGhlIFBERiBmaWxlcyBhcmUgaW4gJChCVUlMRERJUikvbGF0ZXguIgotCi1sYXRleHBkZmph
OgotCSQoU1BISU5YQlVJTEQpIC1iIGxhdGV4ICQoQUxMU1BISU5YT1BUUykgJChCVUlMRERJUikv
bGF0ZXgKLQlAZWNobyAiUnVubmluZyBMYVRlWCBmaWxlcyB0aHJvdWdoIHBsYXRleCBhbmQgZHZp
cGRmbXguLi4iCi0JJChNQUtFKSAtQyAkKEJVSUxERElSKS9sYXRleCBhbGwtcGRmLWphCi0JQGVj
aG8gInBkZmxhdGV4IGZpbmlzaGVkOyB0aGUgUERGIGZpbGVzIGFyZSBpbiAkKEJVSUxERElSKS9s
YXRleC4iCi0KLXRleHQ6Ci0JJChTUEhJTlhCVUlMRCkgLWIgdGV4dCAkKEFMTFNQSElOWE9QVFMp
ICQoQlVJTERESVIpL3RleHQKLQlAZWNobwotCUBlY2hvICJCdWlsZCBmaW5pc2hlZC4gVGhlIHRl
eHQgZmlsZXMgYXJlIGluICQoQlVJTERESVIpL3RleHQuIgotCi1tYW46Ci0JJChTUEhJTlhCVUlM
RCkgLWIgbWFuICQoQUxMU1BISU5YT1BUUykgJChCVUlMRERJUikvbWFuCi0JQGVjaG8KLQlAZWNo
byAiQnVpbGQgZmluaXNoZWQuIFRoZSBtYW51YWwgcGFnZXMgYXJlIGluICQoQlVJTERESVIpL21h
bi4iCi0KLXRleGluZm86Ci0JJChTUEhJTlhCVUlMRCkgLWIgdGV4aW5mbyAkKEFMTFNQSElOWE9Q
VFMpICQoQlVJTERESVIpL3RleGluZm8KLQlAZWNobwotCUBlY2hvICJCdWlsZCBmaW5pc2hlZC4g
VGhlIFRleGluZm8gZmlsZXMgYXJlIGluICQoQlVJTERESVIpL3RleGluZm8uIgotCUBlY2hvICJS
dW4gXGBtYWtlJyBpbiB0aGF0IGRpcmVjdG9yeSB0byBydW4gdGhlc2UgdGhyb3VnaCBtYWtlaW5m
byIgXAotCSAgICAgICIodXNlIFxgbWFrZSBpbmZvJyBoZXJlIHRvIGRvIHRoYXQgYXV0b21hdGlj
YWxseSkuIgotCi1pbmZvOgotCSQoU1BISU5YQlVJTEQpIC1iIHRleGluZm8gJChBTExTUEhJTlhP
UFRTKSAkKEJVSUxERElSKS90ZXhpbmZvCi0JQGVjaG8gIlJ1bm5pbmcgVGV4aW5mbyBmaWxlcyB0
aHJvdWdoIG1ha2VpbmZvLi4uIgotCW1ha2UgLUMgJChCVUlMRERJUikvdGV4aW5mbyBpbmZvCi0J
QGVjaG8gIm1ha2VpbmZvIGZpbmlzaGVkOyB0aGUgSW5mbyBmaWxlcyBhcmUgaW4gJChCVUlMRERJ
UikvdGV4aW5mby4iCi0KLWdldHRleHQ6Ci0JJChTUEhJTlhCVUlMRCkgLWIgZ2V0dGV4dCAkKEkx
OE5TUEhJTlhPUFRTKSAkKEJVSUxERElSKS9sb2NhbGUKLQlAZWNobwotCUBlY2hvICJCdWlsZCBm
aW5pc2hlZC4gVGhlIG1lc3NhZ2UgY2F0YWxvZ3MgYXJlIGluICQoQlVJTERESVIpL2xvY2FsZS4i
Ci0KLWNoYW5nZXM6Ci0JJChTUEhJTlhCVUlMRCkgLWIgY2hhbmdlcyAkKEFMTFNQSElOWE9QVFMp
ICQoQlVJTERESVIpL2NoYW5nZXMKLQlAZWNobwotCUBlY2hvICJUaGUgb3ZlcnZpZXcgZmlsZSBp
cyBpbiAkKEJVSUxERElSKS9jaGFuZ2VzLiIKLQotbGlua2NoZWNrOgotCSQoU1BISU5YQlVJTEQp
IC1iIGxpbmtjaGVjayAkKEFMTFNQSElOWE9QVFMpICQoQlVJTERESVIpL2xpbmtjaGVjawotCUBl
Y2hvCi0JQGVjaG8gIkxpbmsgY2hlY2sgY29tcGxldGU7IGxvb2sgZm9yIGFueSBlcnJvcnMgaW4g
dGhlIGFib3ZlIG91dHB1dCAiIFwKLQkgICAgICAib3IgaW4gJChCVUlMRERJUikvbGlua2NoZWNr
L291dHB1dC50eHQuIgotCi1kb2N0ZXN0OgotCSQoU1BISU5YQlVJTEQpIC1iIGRvY3Rlc3QgJChB
TExTUEhJTlhPUFRTKSAkKEJVSUxERElSKS9kb2N0ZXN0Ci0JQGVjaG8gIlRlc3Rpbmcgb2YgZG9j
dGVzdHMgaW4gdGhlIHNvdXJjZXMgZmluaXNoZWQsIGxvb2sgYXQgdGhlICIgXAotCSAgICAgICJy
ZXN1bHRzIGluICQoQlVJTERESVIpL2RvY3Rlc3Qvb3V0cHV0LnR4dC4iCi0KLXhtbDoKLQkkKFNQ
SElOWEJVSUxEKSAtYiB4bWwgJChBTExTUEhJTlhPUFRTKSAkKEJVSUxERElSKS94bWwKLQlAZWNo
bwotCUBlY2hvICJCdWlsZCBmaW5pc2hlZC4gVGhlIFhNTCBmaWxlcyBhcmUgaW4gJChCVUlMRERJ
UikveG1sLiIKLQotcHNldWRveG1sOgotCSQoU1BISU5YQlVJTEQpIC1iIHBzZXVkb3htbCAkKEFM
TFNQSElOWE9QVFMpICQoQlVJTERESVIpL3BzZXVkb3htbAotCUBlY2hvCi0JQGVjaG8gIkJ1aWxk
IGZpbmlzaGVkLiBUaGUgcHNldWRvLVhNTCBmaWxlcyBhcmUgaW4gJChCVUlMRERJUikvcHNldWRv
eG1sLiIKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvd3B0cnVubmVyL2RvY3MvY29uZi5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL2RvY3MvY29uZi5weQpkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYzJkNGZkNWFiOTUuLjAwMDAwMDAwMDAwCi0tLSBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVu
bmVyL2RvY3MvY29uZi5weQorKysgL2Rldi9udWxsCkBAIC0xLDI2NyArMCwwIEBACi0jIC0qLSBj
b2Rpbmc6IHV0Zi04IC0qLQotIwotIyB3cHRydW5uZXIgZG9jdW1lbnRhdGlvbiBidWlsZCBjb25m
aWd1cmF0aW9uIGZpbGUsIGNyZWF0ZWQgYnkKLSMgc3BoaW54LXF1aWNrc3RhcnQgb24gTW9uIE1h
eSAxOSAxODoxNDoyMCAyMDE0LgotIwotIyBUaGlzIGZpbGUgaXMgZXhlY2ZpbGUoKWQgd2l0aCB0
aGUgY3VycmVudCBkaXJlY3Rvcnkgc2V0IHRvIGl0cwotIyBjb250YWluaW5nIGRpci4KLSMKLSMg
Tm90ZSB0aGF0IG5vdCBhbGwgcG9zc2libGUgY29uZmlndXJhdGlvbiB2YWx1ZXMgYXJlIHByZXNl
bnQgaW4gdGhpcwotIyBhdXRvZ2VuZXJhdGVkIGZpbGUuCi0jCi0jIEFsbCBjb25maWd1cmF0aW9u
IHZhbHVlcyBoYXZlIGEgZGVmYXVsdDsgdmFsdWVzIHRoYXQgYXJlIGNvbW1lbnRlZCBvdXQKLSMg
c2VydmUgdG8gc2hvdyB0aGUgZGVmYXVsdC4KLQotI2ltcG9ydCBzeXMKLSNpbXBvcnQgb3MKLQot
IyBJZiBleHRlbnNpb25zIChvciBtb2R1bGVzIHRvIGRvY3VtZW50IHdpdGggYXV0b2RvYykgYXJl
IGluIGFub3RoZXIgZGlyZWN0b3J5LAotIyBhZGQgdGhlc2UgZGlyZWN0b3JpZXMgdG8gc3lzLnBh
dGggaGVyZS4gSWYgdGhlIGRpcmVjdG9yeSBpcyByZWxhdGl2ZSB0byB0aGUKLSMgZG9jdW1lbnRh
dGlvbiByb290LCB1c2Ugb3MucGF0aC5hYnNwYXRoIHRvIG1ha2UgaXQgYWJzb2x1dGUsIGxpa2Ug
c2hvd24gaGVyZS4KLSNzeXMucGF0aC5pbnNlcnQoMCwgb3MucGF0aC5hYnNwYXRoKCcuJykpCi0K
LSMgLS0gR2VuZXJhbCBjb25maWd1cmF0aW9uIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLQotCi0jIElmIHlvdXIgZG9jdW1lbnRhdGlvbiBuZWVkcyBhIG1p
bmltYWwgU3BoaW54IHZlcnNpb24sIHN0YXRlIGl0IGhlcmUuCi0jbmVlZHNfc3BoaW54ID0gJzEu
MCcKLQotIyBBZGQgYW55IFNwaGlueCBleHRlbnNpb24gbW9kdWxlIG5hbWVzIGhlcmUsIGFzIHN0
cmluZ3MuIFRoZXkgY2FuIGJlCi0jIGV4dGVuc2lvbnMgY29taW5nIHdpdGggU3BoaW54IChuYW1l
ZCAnc3BoaW54LmV4dC4qJykgb3IgeW91ciBjdXN0b20KLSMgb25lcy4KLWV4dGVuc2lvbnMgPSBb
Ci0gICAgJ3NwaGlueC5leHQuYXV0b2RvYycsCi0gICAgJ3NwaGlueC5leHQuaW50ZXJzcGhpbngn
LAotICAgICdzcGhpbnguZXh0LnZpZXdjb2RlJywKLV0KLQotIyBBZGQgYW55IHBhdGhzIHRoYXQg
Y29udGFpbiB0ZW1wbGF0ZXMgaGVyZSwgcmVsYXRpdmUgdG8gdGhpcyBkaXJlY3RvcnkuCi10ZW1w
bGF0ZXNfcGF0aCA9IFsnX3RlbXBsYXRlcyddCi0KLSMgVGhlIHN1ZmZpeCBvZiBzb3VyY2UgZmls
ZW5hbWVzLgotc291cmNlX3N1ZmZpeCA9ICcucnN0JwotCi0jIFRoZSBlbmNvZGluZyBvZiBzb3Vy
Y2UgZmlsZXMuCi0jc291cmNlX2VuY29kaW5nID0gJ3V0Zi04LXNpZycKLQotIyBUaGUgbWFzdGVy
IHRvY3RyZWUgZG9jdW1lbnQuCi1tYXN0ZXJfZG9jID0gJ2luZGV4JwotCi0jIEdlbmVyYWwgaW5m
b3JtYXRpb24gYWJvdXQgdGhlIHByb2plY3QuCi1wcm9qZWN0ID0gdSd3cHRydW5uZXInCi1jb3B5
cmlnaHQgPSB1JycKLQotIyBUaGUgdmVyc2lvbiBpbmZvIGZvciB0aGUgcHJvamVjdCB5b3UncmUg
ZG9jdW1lbnRpbmcsIGFjdHMgYXMgcmVwbGFjZW1lbnQgZm9yCi0jIHx2ZXJzaW9ufCBhbmQgfHJl
bGVhc2V8LCBhbHNvIHVzZWQgaW4gdmFyaW91cyBvdGhlciBwbGFjZXMgdGhyb3VnaG91dCB0aGUK
LSMgYnVpbHQgZG9jdW1lbnRzLgotIwotIyBUaGUgc2hvcnQgWC5ZIHZlcnNpb24uCi12ZXJzaW9u
ID0gJzAuMycKLSMgVGhlIGZ1bGwgdmVyc2lvbiwgaW5jbHVkaW5nIGFscGhhL2JldGEvcmMgdGFn
cy4KLXJlbGVhc2UgPSAnMC4zJwotCi0jIFRoZSBsYW5ndWFnZSBmb3IgY29udGVudCBhdXRvZ2Vu
ZXJhdGVkIGJ5IFNwaGlueC4gUmVmZXIgdG8gZG9jdW1lbnRhdGlvbgotIyBmb3IgYSBsaXN0IG9m
IHN1cHBvcnRlZCBsYW5ndWFnZXMuCi0jbGFuZ3VhZ2UgPSBOb25lCi0KLSMgVGhlcmUgYXJlIHR3
byBvcHRpb25zIGZvciByZXBsYWNpbmcgfHRvZGF5fDogZWl0aGVyLCB5b3Ugc2V0IHRvZGF5IHRv
IHNvbWUKLSMgbm9uLWZhbHNlIHZhbHVlLCB0aGVuIGl0IGlzIHVzZWQ6Ci0jdG9kYXkgPSAnJwot
IyBFbHNlLCB0b2RheV9mbXQgaXMgdXNlZCBhcyB0aGUgZm9ybWF0IGZvciBhIHN0cmZ0aW1lIGNh
bGwuCi0jdG9kYXlfZm10ID0gJyVCICVkLCAlWScKLQotIyBMaXN0IG9mIHBhdHRlcm5zLCByZWxh
dGl2ZSB0byBzb3VyY2UgZGlyZWN0b3J5LCB0aGF0IG1hdGNoIGZpbGVzIGFuZAotIyBkaXJlY3Rv
cmllcyB0byBpZ25vcmUgd2hlbiBsb29raW5nIGZvciBzb3VyY2UgZmlsZXMuCi1leGNsdWRlX3Bh
dHRlcm5zID0gWydfYnVpbGQnXQotCi0jIFRoZSByZVNUIGRlZmF1bHQgcm9sZSAodXNlZCBmb3Ig
dGhpcyBtYXJrdXA6IGB0ZXh0YCkgdG8gdXNlIGZvciBhbGwKLSMgZG9jdW1lbnRzLgotI2RlZmF1
bHRfcm9sZSA9IE5vbmUKLQotIyBJZiB0cnVlLCAnKCknIHdpbGwgYmUgYXBwZW5kZWQgdG8gOmZ1
bmM6IGV0Yy4gY3Jvc3MtcmVmZXJlbmNlIHRleHQuCi0jYWRkX2Z1bmN0aW9uX3BhcmVudGhlc2Vz
ID0gVHJ1ZQotCi0jIElmIHRydWUsIHRoZSBjdXJyZW50IG1vZHVsZSBuYW1lIHdpbGwgYmUgcHJl
cGVuZGVkIHRvIGFsbCBkZXNjcmlwdGlvbgotIyB1bml0IHRpdGxlcyAoc3VjaCBhcyAuLiBmdW5j
dGlvbjo6KS4KLSNhZGRfbW9kdWxlX25hbWVzID0gVHJ1ZQotCi0jIElmIHRydWUsIHNlY3Rpb25h
dXRob3IgYW5kIG1vZHVsZWF1dGhvciBkaXJlY3RpdmVzIHdpbGwgYmUgc2hvd24gaW4gdGhlCi0j
IG91dHB1dC4gVGhleSBhcmUgaWdub3JlZCBieSBkZWZhdWx0LgotI3Nob3dfYXV0aG9ycyA9IEZh
bHNlCi0KLSMgVGhlIG5hbWUgb2YgdGhlIFB5Z21lbnRzIChzeW50YXggaGlnaGxpZ2h0aW5nKSBz
dHlsZSB0byB1c2UuCi1weWdtZW50c19zdHlsZSA9ICdzcGhpbngnCi0KLSMgQSBsaXN0IG9mIGln
bm9yZWQgcHJlZml4ZXMgZm9yIG1vZHVsZSBpbmRleCBzb3J0aW5nLgotI21vZGluZGV4X2NvbW1v
bl9wcmVmaXggPSBbXQotCi0jIElmIHRydWUsIGtlZXAgd2FybmluZ3MgYXMgInN5c3RlbSBtZXNz
YWdlIiBwYXJhZ3JhcGhzIGluIHRoZSBidWlsdCBkb2N1bWVudHMuCi0ja2VlcF93YXJuaW5ncyA9
IEZhbHNlCi0KLQotIyAtLSBPcHRpb25zIGZvciBIVE1MIG91dHB1dCAtLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0KLSMgVGhlIHRoZW1lIHRvIHVzZSBmb3Ig
SFRNTCBhbmQgSFRNTCBIZWxwIHBhZ2VzLiAgU2VlIHRoZSBkb2N1bWVudGF0aW9uIGZvcgotIyBh
IGxpc3Qgb2YgYnVpbHRpbiB0aGVtZXMuCi1odG1sX3RoZW1lID0gJ2RlZmF1bHQnCi0KLSMgVGhl
bWUgb3B0aW9ucyBhcmUgdGhlbWUtc3BlY2lmaWMgYW5kIGN1c3RvbWl6ZSB0aGUgbG9vayBhbmQg
ZmVlbCBvZiBhIHRoZW1lCi0jIGZ1cnRoZXIuICBGb3IgYSBsaXN0IG9mIG9wdGlvbnMgYXZhaWxh
YmxlIGZvciBlYWNoIHRoZW1lLCBzZWUgdGhlCi0jIGRvY3VtZW50YXRpb24uCi0jaHRtbF90aGVt
ZV9vcHRpb25zID0ge30KLQotIyBBZGQgYW55IHBhdGhzIHRoYXQgY29udGFpbiBjdXN0b20gdGhl
bWVzIGhlcmUsIHJlbGF0aXZlIHRvIHRoaXMgZGlyZWN0b3J5LgotI2h0bWxfdGhlbWVfcGF0aCA9
IFtdCi0KLSMgVGhlIG5hbWUgZm9yIHRoaXMgc2V0IG9mIFNwaGlueCBkb2N1bWVudHMuICBJZiBO
b25lLCBpdCBkZWZhdWx0cyB0bwotIyAiPHByb2plY3Q+IHY8cmVsZWFzZT4gZG9jdW1lbnRhdGlv
biIuCi0jaHRtbF90aXRsZSA9IE5vbmUKLQotIyBBIHNob3J0ZXIgdGl0bGUgZm9yIHRoZSBuYXZp
Z2F0aW9uIGJhci4gIERlZmF1bHQgaXMgdGhlIHNhbWUgYXMgaHRtbF90aXRsZS4KLSNodG1sX3No
b3J0X3RpdGxlID0gTm9uZQotCi0jIFRoZSBuYW1lIG9mIGFuIGltYWdlIGZpbGUgKHJlbGF0aXZl
IHRvIHRoaXMgZGlyZWN0b3J5KSB0byBwbGFjZSBhdCB0aGUgdG9wCi0jIG9mIHRoZSBzaWRlYmFy
LgotI2h0bWxfbG9nbyA9IE5vbmUKLQotIyBUaGUgbmFtZSBvZiBhbiBpbWFnZSBmaWxlICh3aXRo
aW4gdGhlIHN0YXRpYyBwYXRoKSB0byB1c2UgYXMgZmF2aWNvbiBvZiB0aGUKLSMgZG9jcy4gIFRo
aXMgZmlsZSBzaG91bGQgYmUgYSBXaW5kb3dzIGljb24gZmlsZSAoLmljbykgYmVpbmcgMTZ4MTYg
b3IgMzJ4MzIKLSMgcGl4ZWxzIGxhcmdlLgotI2h0bWxfZmF2aWNvbiA9IE5vbmUKLQotIyBBZGQg
YW55IHBhdGhzIHRoYXQgY29udGFpbiBjdXN0b20gc3RhdGljIGZpbGVzIChzdWNoIGFzIHN0eWxl
IHNoZWV0cykgaGVyZSwKLSMgcmVsYXRpdmUgdG8gdGhpcyBkaXJlY3RvcnkuIFRoZXkgYXJlIGNv
cGllZCBhZnRlciB0aGUgYnVpbHRpbiBzdGF0aWMgZmlsZXMsCi0jIHNvIGEgZmlsZSBuYW1lZCAi
ZGVmYXVsdC5jc3MiIHdpbGwgb3ZlcndyaXRlIHRoZSBidWlsdGluICJkZWZhdWx0LmNzcyIuCi1o
dG1sX3N0YXRpY19wYXRoID0gWydfc3RhdGljJ10KLQotIyBBZGQgYW55IGV4dHJhIHBhdGhzIHRo
YXQgY29udGFpbiBjdXN0b20gZmlsZXMgKHN1Y2ggYXMgcm9ib3RzLnR4dCBvcgotIyAuaHRhY2Nl
c3MpIGhlcmUsIHJlbGF0aXZlIHRvIHRoaXMgZGlyZWN0b3J5LiBUaGVzZSBmaWxlcyBhcmUgY29w
aWVkCi0jIGRpcmVjdGx5IHRvIHRoZSByb290IG9mIHRoZSBkb2N1bWVudGF0aW9uLgotI2h0bWxf
ZXh0cmFfcGF0aCA9IFtdCi0KLSMgSWYgbm90ICcnLCBhICdMYXN0IHVwZGF0ZWQgb246JyB0aW1l
c3RhbXAgaXMgaW5zZXJ0ZWQgYXQgZXZlcnkgcGFnZSBib3R0b20sCi0jIHVzaW5nIHRoZSBnaXZl
biBzdHJmdGltZSBmb3JtYXQuCi0jaHRtbF9sYXN0X3VwZGF0ZWRfZm10ID0gJyViICVkLCAlWScK
LQotIyBJZiB0cnVlLCBTbWFydHlQYW50cyB3aWxsIGJlIHVzZWQgdG8gY29udmVydCBxdW90ZXMg
YW5kIGRhc2hlcyB0bwotIyB0eXBvZ3JhcGhpY2FsbHkgY29ycmVjdCBlbnRpdGllcy4KLSNodG1s
X3VzZV9zbWFydHlwYW50cyA9IFRydWUKLQotIyBDdXN0b20gc2lkZWJhciB0ZW1wbGF0ZXMsIG1h
cHMgZG9jdW1lbnQgbmFtZXMgdG8gdGVtcGxhdGUgbmFtZXMuCi0jaHRtbF9zaWRlYmFycyA9IHt9
Ci0KLSMgQWRkaXRpb25hbCB0ZW1wbGF0ZXMgdGhhdCBzaG91bGQgYmUgcmVuZGVyZWQgdG8gcGFn
ZXMsIG1hcHMgcGFnZSBuYW1lcyB0bwotIyB0ZW1wbGF0ZSBuYW1lcy4KLSNodG1sX2FkZGl0aW9u
YWxfcGFnZXMgPSB7fQotCi0jIElmIGZhbHNlLCBubyBtb2R1bGUgaW5kZXggaXMgZ2VuZXJhdGVk
LgotI2h0bWxfZG9tYWluX2luZGljZXMgPSBUcnVlCi0KLSMgSWYgZmFsc2UsIG5vIGluZGV4IGlz
IGdlbmVyYXRlZC4KLSNodG1sX3VzZV9pbmRleCA9IFRydWUKLQotIyBJZiB0cnVlLCB0aGUgaW5k
ZXggaXMgc3BsaXQgaW50byBpbmRpdmlkdWFsIHBhZ2VzIGZvciBlYWNoIGxldHRlci4KLSNodG1s
X3NwbGl0X2luZGV4ID0gRmFsc2UKLQotIyBJZiB0cnVlLCBsaW5rcyB0byB0aGUgcmVTVCBzb3Vy
Y2VzIGFyZSBhZGRlZCB0byB0aGUgcGFnZXMuCi0jaHRtbF9zaG93X3NvdXJjZWxpbmsgPSBUcnVl
Ci0KLSMgSWYgdHJ1ZSwgIkNyZWF0ZWQgdXNpbmcgU3BoaW54IiBpcyBzaG93biBpbiB0aGUgSFRN
TCBmb290ZXIuIERlZmF1bHQgaXMgVHJ1ZS4KLSNodG1sX3Nob3dfc3BoaW54ID0gVHJ1ZQotCi0j
IElmIHRydWUsICIoQykgQ29weXJpZ2h0IC4uLiIgaXMgc2hvd24gaW4gdGhlIEhUTUwgZm9vdGVy
LiBEZWZhdWx0IGlzIFRydWUuCi0jaHRtbF9zaG93X2NvcHlyaWdodCA9IFRydWUKLQotIyBJZiB0
cnVlLCBhbiBPcGVuU2VhcmNoIGRlc2NyaXB0aW9uIGZpbGUgd2lsbCBiZSBvdXRwdXQsIGFuZCBh
bGwgcGFnZXMgd2lsbAotIyBjb250YWluIGEgPGxpbms+IHRhZyByZWZlcnJpbmcgdG8gaXQuICBU
aGUgdmFsdWUgb2YgdGhpcyBvcHRpb24gbXVzdCBiZSB0aGUKLSMgYmFzZSBVUkwgZnJvbSB3aGlj
aCB0aGUgZmluaXNoZWQgSFRNTCBpcyBzZXJ2ZWQuCi0jaHRtbF91c2Vfb3BlbnNlYXJjaCA9ICcn
Ci0KLSMgVGhpcyBpcyB0aGUgZmlsZSBuYW1lIHN1ZmZpeCBmb3IgSFRNTCBmaWxlcyAoZS5nLiAi
LnhodG1sIikuCi0jaHRtbF9maWxlX3N1ZmZpeCA9IE5vbmUKLQotIyBPdXRwdXQgZmlsZSBiYXNl
IG5hbWUgZm9yIEhUTUwgaGVscCBidWlsZGVyLgotaHRtbGhlbHBfYmFzZW5hbWUgPSAnd3B0cnVu
bmVyZG9jJwotCi0KLSMgLS0gT3B0aW9ucyBmb3IgTGFUZVggb3V0cHV0IC0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotCi1sYXRleF9lbGVtZW50cyA9IHsKLSAg
ICAjIFRoZSBwYXBlciBzaXplICgnbGV0dGVycGFwZXInIG9yICdhNHBhcGVyJykuCi0gICAgIydw
YXBlcnNpemUnOiAnbGV0dGVycGFwZXInLAotCi0gICAgIyBUaGUgZm9udCBzaXplICgnMTBwdCcs
ICcxMXB0JyBvciAnMTJwdCcpLgotICAgICMncG9pbnRzaXplJzogJzEwcHQnLAotCi0gICAgIyBB
ZGRpdGlvbmFsIHN0dWZmIGZvciB0aGUgTGFUZVggcHJlYW1ibGUuCi0gICAgIydwcmVhbWJsZSc6
ICcnLAotfQotCi0jIEdyb3VwaW5nIHRoZSBkb2N1bWVudCB0cmVlIGludG8gTGFUZVggZmlsZXMu
IExpc3Qgb2YgdHVwbGVzCi0jIChzb3VyY2Ugc3RhcnQgZmlsZSwgdGFyZ2V0IG5hbWUsIHRpdGxl
LAotIyAgYXV0aG9yLCBkb2N1bWVudGNsYXNzIFtob3d0bywgbWFudWFsLCBvciBvd24gY2xhc3Nd
KS4KLWxhdGV4X2RvY3VtZW50cyA9IFsKLSAgICAoJ2luZGV4JywgJ3dwdHJ1bm5lci50ZXgnLCB1
J3dwdHJ1bm5lciBEb2N1bWVudGF0aW9uJywKLSAgICAgdSdKYW1lcyBHcmFoYW0nLCAnbWFudWFs
JyksCi1dCi0KLSMgVGhlIG5hbWUgb2YgYW4gaW1hZ2UgZmlsZSAocmVsYXRpdmUgdG8gdGhpcyBk
aXJlY3RvcnkpIHRvIHBsYWNlIGF0IHRoZSB0b3Agb2YKLSMgdGhlIHRpdGxlIHBhZ2UuCi0jbGF0
ZXhfbG9nbyA9IE5vbmUKLQotIyBGb3IgIm1hbnVhbCIgZG9jdW1lbnRzLCBpZiB0aGlzIGlzIHRy
dWUsIHRoZW4gdG9wbGV2ZWwgaGVhZGluZ3MgYXJlIHBhcnRzLAotIyBub3QgY2hhcHRlcnMuCi0j
bGF0ZXhfdXNlX3BhcnRzID0gRmFsc2UKLQotIyBJZiB0cnVlLCBzaG93IHBhZ2UgcmVmZXJlbmNl
cyBhZnRlciBpbnRlcm5hbCBsaW5rcy4KLSNsYXRleF9zaG93X3BhZ2VyZWZzID0gRmFsc2UKLQot
IyBJZiB0cnVlLCBzaG93IFVSTCBhZGRyZXNzZXMgYWZ0ZXIgZXh0ZXJuYWwgbGlua3MuCi0jbGF0
ZXhfc2hvd191cmxzID0gRmFsc2UKLQotIyBEb2N1bWVudHMgdG8gYXBwZW5kIGFzIGFuIGFwcGVu
ZGl4IHRvIGFsbCBtYW51YWxzLgotI2xhdGV4X2FwcGVuZGljZXMgPSBbXQotCi0jIElmIGZhbHNl
LCBubyBtb2R1bGUgaW5kZXggaXMgZ2VuZXJhdGVkLgotI2xhdGV4X2RvbWFpbl9pbmRpY2VzID0g
VHJ1ZQotCi0KLSMgLS0gT3B0aW9ucyBmb3IgbWFudWFsIHBhZ2Ugb3V0cHV0IC0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotCi0jIE9uZSBlbnRyeSBwZXIgbWFudWFsIHBh
Z2UuIExpc3Qgb2YgdHVwbGVzCi0jIChzb3VyY2Ugc3RhcnQgZmlsZSwgbmFtZSwgZGVzY3JpcHRp
b24sIGF1dGhvcnMsIG1hbnVhbCBzZWN0aW9uKS4KLW1hbl9wYWdlcyA9IFsKLSAgICAoJ2luZGV4
JywgJ3dwdHJ1bm5lcicsIHUnd3B0cnVubmVyIERvY3VtZW50YXRpb24nLAotICAgICBbdSdKYW1l
cyBHcmFoYW0nXSwgMSkKLV0KLQotIyBJZiB0cnVlLCBzaG93IFVSTCBhZGRyZXNzZXMgYWZ0ZXIg
ZXh0ZXJuYWwgbGlua3MuCi0jbWFuX3Nob3dfdXJscyA9IEZhbHNlCi0KLQotIyAtLSBPcHRpb25z
IGZvciBUZXhpbmZvIG91dHB1dCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tCi0KLSMgR3JvdXBpbmcgdGhlIGRvY3VtZW50IHRyZWUgaW50byBUZXhpbmZvIGZpbGVz
LiBMaXN0IG9mIHR1cGxlcwotIyAoc291cmNlIHN0YXJ0IGZpbGUsIHRhcmdldCBuYW1lLCB0aXRs
ZSwgYXV0aG9yLAotIyAgZGlyIG1lbnUgZW50cnksIGRlc2NyaXB0aW9uLCBjYXRlZ29yeSkKLXRl
eGluZm9fZG9jdW1lbnRzID0gWwotICAgICgnaW5kZXgnLCAnd3B0cnVubmVyJywgdSd3cHRydW5u
ZXIgRG9jdW1lbnRhdGlvbicsCi0gICAgIHUnSmFtZXMgR3JhaGFtJywgJ3dwdHJ1bm5lcicsICdP
bmUgbGluZSBkZXNjcmlwdGlvbiBvZiBwcm9qZWN0LicsCi0gICAgICdNaXNjZWxsYW5lb3VzJyks
Ci1dCi0KLSMgRG9jdW1lbnRzIHRvIGFwcGVuZCBhcyBhbiBhcHBlbmRpeCB0byBhbGwgbWFudWFs
cy4KLSN0ZXhpbmZvX2FwcGVuZGljZXMgPSBbXQotCi0jIElmIGZhbHNlLCBubyBtb2R1bGUgaW5k
ZXggaXMgZ2VuZXJhdGVkLgotI3RleGluZm9fZG9tYWluX2luZGljZXMgPSBUcnVlCi0KLSMgSG93
IHRvIGRpc3BsYXkgVVJMIGFkZHJlc3NlczogJ2Zvb3Rub3RlJywgJ25vJywgb3IgJ2lubGluZScu
Ci0jdGV4aW5mb19zaG93X3VybHMgPSAnZm9vdG5vdGUnCi0KLSMgSWYgdHJ1ZSwgZG8gbm90IGdl
bmVyYXRlIGEgQGRldGFpbG1lbnUgaW4gdGhlICJUb3AiIG5vZGUncyBtZW51LgotI3RleGluZm9f
bm9fZGV0YWlsbWVudSA9IEZhbHNlCi0KLQotIyBFeGFtcGxlIGNvbmZpZ3VyYXRpb24gZm9yIGlu
dGVyc3BoaW54OiByZWZlciB0byB0aGUgUHl0aG9uIHN0YW5kYXJkIGxpYnJhcnkuCi1pbnRlcnNw
aGlueF9tYXBwaW5nID0geydweXRob24nOiAoJ2h0dHA6Ly9kb2NzLnB5dGhvbi5vcmcvJywgTm9u
ZSksCi0gICAgICAgICAgICAgICAgICAgICAgICdtb3psb2cnOiAoJ2h0dHBzOi8vZmlyZWZveC1z
b3VyY2UtZG9jcy5tb3ppbGxhLm9yZy8nLCBOb25lKX0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL2RvY3MvZGVz
aWduLnJzdCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvd3B0cnVubmVyL2RvY3MvZGVzaWduLnJzdAppbmRleCBiZjEwOGEwMDg3ZC4uMzBmODI3MTFh
NTkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvd3B0cnVubmVyL2RvY3MvZGVzaWduLnJzdAorKysgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci9kb2NzL2Rlc2lnbi5y
c3QKQEAgLTE1LDcgKzE1LDcgQEAgcmVxdWlyZW1lbnRzOgogICAgb2YgYW4gYGBpZnJhbWVgYCB0
ZXN0IGNvbnRhaW5lci4KIAogICogSXQgbXVzdCBiZSBwb3NzaWJsZSB0byBkZWFsIHdpdGggYWxs
IGtpbmRzIG9mIGJlaGF2aW91ciBvZiB0aGUKLSAgIGJyb3dzZXIgcnVuZGVyIHRlc3QsIGZvciBl
eGFtcGxlLCBjcmFzaGluZywgaGFuZ2luZywgZXRjLgorICAgYnJvd3NlciB1bmRlciB0ZXN0LCBm
b3IgZXhhbXBsZSwgY3Jhc2hpbmcsIGhhbmdpbmcsIGV0Yy4KIAogICogSXQgc2hvdWxkIGJlIHBv
c3NpYmxlIHRvIGFkZCBzdXBwb3J0IGZvciBuZXcgcGxhdGZvcm1zIGFuZCBicm93c2VycwogICAg
d2l0aCBtaW5pbWFsIGNvZGUgY2hhbmdlcy4KQEAgLTQzLDY0ICs0Myw2NiBAQCBUaGUgb3ZlcmFs
bCBhcmNoaXRlY3R1cmUgb2Ygd3B0cnVubmVyIGlzIHNob3duIGluIHRoZSBkaWFncmFtIGJlbG93
OgogCiAuLiBpbWFnZTo6IGFyY2hpdGVjdHVyZS5zdmcKIAotVGhlIG1haW4gZW50cnkgcG9pbnQg
dG8gdGhlIGNvZGUgaXMgOnB5OmZ1bmM6YHJ1bl90ZXN0c2AgaW4KKy4uIGN1cnJlbnRtb2R1bGU6
OiB3cHRydW5uZXIKKworVGhlIG1haW4gZW50cnkgcG9pbnQgdG8gdGhlIGNvZGUgaXMgOnB5OmZ1
bmM6YH53cHRydW5uZXIucnVuX3Rlc3RzYCBpbgogYGB3cHRydW5uZXIucHlgYC4gVGhpcyBpcyBy
ZXNwb25zaWJsZSBmb3Igc2V0dGluZyB1cCB0aGUgdGVzdAogZW52aXJvbm1lbnQsIGxvYWRpbmcg
dGhlIGxpc3Qgb2YgdGVzdHMgdG8gYmUgZXhlY3V0ZWQsIGFuZCBpbnZva2luZwogdGhlIHJlbWFp
bmRlciBvZiB0aGUgY29kZSB0byBhY3R1YWxseSBleGVjdXRlIHNvbWUgdGVzdHMuCiAKIFRoZSB0
ZXN0IGVudmlyb25tZW50IGlzIGVuY2Fwc3VsYXRlZCBpbiB0aGUKLTpweTpjbGFzczpgVGVzdEVu
dmlyb25tZW50YCBjbGFzcy4gVGhpcyBkZWZlcnMgdG8gY29kZSBpbgorOnB5OmNsYXNzOmB+ZW52
aXJvbm1lbnQuVGVzdEVudmlyb25tZW50YCBjbGFzcy4gVGhpcyBkZWZlcnMgdG8gY29kZSBpbgog
YGB3ZWItcGxhdGZvcm0tdGVzdHNgYCB3aGljaCBhY3R1YWxseSBzdGFydHMgdGhlIHJlcXVpcmVk
IHNlcnZlcnMgdG8KIHJ1biB0aGUgdGVzdHMuCiAKIFRoZSBzZXQgb2YgdGVzdHMgdG8gcnVuIGlz
IGRlZmluZWQgYnkgdGhlCi06cHk6Y2xhc3M6YFRlc3RMb2FkZXJgLiBUaGlzIGlzIGNvbnN0cnVj
dGVkIHdpdGggYQotOnB5OmNsYXNzOmBUZXN0RmlsdGVyYCAobm90IHNob3duKSwgd2hpY2ggdGFr
ZXMgYW55IGZpbHRlciBhcmd1bWVudHMKKzpweTpjbGFzczpgfnRlc3Rsb2FkZXIuVGVzdExvYWRl
cmAuIFRoaXMgaXMgY29uc3RydWN0ZWQgd2l0aCBhCis6cHk6Y2xhc3M6YH50ZXN0bG9hZGVyLlRl
c3RGaWx0ZXJgIChub3Qgc2hvd24pLCB3aGljaCB0YWtlcyBhbnkgZmlsdGVyIGFyZ3VtZW50cwog
ZnJvbSB0aGUgY29tbWFuZCBsaW5lIHRvIHJlc3RyaWN0IHRoZSBzZXQgb2YgdGVzdHMgdGhhdCB3
aWxsIGJlCi1ydW4uIFRoZSA6cHk6Y2xhc3M6YFRlc3RMb2FkZXJgIHJlYWRzIGJvdGggdGhlIGBg
d2ViLXBsYXRmb3JtLXRlc3RzYGAKK3J1bi4gVGhlIDpweTpjbGFzczpgfnRlc3Rsb2FkZXIuVGVz
dExvYWRlcmAgcmVhZHMgYm90aCB0aGUgYGB3ZWItcGxhdGZvcm0tdGVzdHNgYAogSlNPTiBtYW5p
ZmVzdCBhbmQgdGhlIGV4cGVjdGF0aW9uIGRhdGEgc3RvcmVkIGluIGluaSBmaWxlcyBhbmQKIHBy
b2R1Y2VzIGEgOnB5OmNsYXNzOmBtdWx0aXByb2Nlc3NpbmcuUXVldWVgIG9mIHRlc3RzIHRvIHJ1
biwgYW5kCiB0aGVpciBleHBlY3RlZCByZXN1bHRzLgogCiBBY3R1YWxseSBydW5uaW5nIHRoZSB0
ZXN0cyBoYXBwZW5zIHRocm91Z2ggdGhlCi06cHk6Y2xhc3M6YE1hbmFnZXJHcm91cGAgb2JqZWN0
LiBUaGlzIHRha2VzIHRoZSA6cHk6Y2xhc3M6YFF1ZXVlYCBvZgotdGVzdHMgdG8gYmUgcnVuIGFu
ZCBzdGFydHMgYSA6cHk6Y2xhc3M6YHRlc3RydW5uZXIuVGVzdFJ1bm5lck1hbmFnZXJgIGZvciBl
YWNoCis6cHk6Y2xhc3M6YH50ZXN0cnVubmVyLk1hbmFnZXJHcm91cGAgb2JqZWN0LiBUaGlzIHRh
a2VzIHRoZSA6cHk6Y2xhc3M6YH5tdWx0aXByb2Nlc3NpbmcuUXVldWVgIG9mCit0ZXN0cyB0byBi
ZSBydW4gYW5kIHN0YXJ0cyBhIDpweTpjbGFzczpgfnRlc3RydW5uZXIuVGVzdFJ1bm5lck1hbmFn
ZXJgIGZvciBlYWNoCiBpbnN0YW5jZSBvZiB0aGUgYnJvd3NlciB1bmRlciB0ZXN0IHRoYXQgd2ls
bCBiZSBzdGFydGVkLiBUaGVzZQotOnB5OmNsYXNzOmBUZXN0UnVubmVyTWFuYWdlcmAgaW5zdGFu
Y2VzIGFyZSBlYWNoIHN0YXJ0ZWQgaW4gdGhlaXIgb3duCis6cHk6Y2xhc3M6YH50ZXN0cnVubmVy
LlRlc3RSdW5uZXJNYW5hZ2VyYCBpbnN0YW5jZXMgYXJlIGVhY2ggc3RhcnRlZCBpbiB0aGVpciBv
d24KIHRocmVhZC4KIAotQSA6cHk6Y2xhc3M6YFRlc3RSdW5uZXJNYW5hZ2VyYCBjb29yZGluYXRl
cyBzdGFydGluZyB0aGUgcHJvZHVjdCB1bmRlcgorQSA6cHk6Y2xhc3M6YH50ZXN0cnVubmVyLlRl
c3RSdW5uZXJNYW5hZ2VyYCBjb29yZGluYXRlcyBzdGFydGluZyB0aGUgcHJvZHVjdCB1bmRlcgog
dGVzdCwgYW5kIG91dHB1dHRpbmcgcmVzdWx0cyBmcm9tIHRoZSB0ZXN0LiBJbiB0aGUgY2FzZSB0
aGF0IHRoZSB0ZXN0CiBoYXMgdGltZWQgb3V0IG9yIHRoZSBicm93c2VyIGhhcyBjcmFzaGVkLCBp
dCBoYXMgdG8gcmVzdGFydCB0aGUKIGJyb3dzZXIgdG8gZW5zdXJlIHRoZSB0ZXN0IHJ1biBjYW4g
Y29udGludWUuIFRoZSBmdW5jdGlvbmFsaXR5IGZvcgogaW5pdGlhbGlzaW5nIHRoZSBicm93c2Vy
IHVuZGVyIHRlc3QsIGFuZCBwcm9iaW5nIGl0cyBzdGF0ZQogKGUuZy4gd2hldGhlciB0aGUgcHJv
Y2VzcyBpcyBzdGlsbCBhbGl2ZSkgaXMgaW1wbGVtZW50ZWQgdGhyb3VnaCBhCi06cHk6Y2xhc3M6
YEJyb3dzZXJgIG9iamVjdC4gQW4gaW1wbGVtZW50YXRpb24gb2YgdGhpcyBjbGFzcyBtdXN0IGJl
Cis6cHk6Y2xhc3M6YH5icm93c2Vycy5iYXNlLkJyb3dzZXJgIG9iamVjdC4gQW4gaW1wbGVtZW50
YXRpb24gb2YgdGhpcyBjbGFzcyBtdXN0IGJlCiBwcm92aWRlZCBmb3IgZWFjaCBwcm9kdWN0IHRo
YXQgaXMgc3VwcG9ydGVkLgogCiBUaGUgZnVuY3Rpb25hbGl0eSBmb3IgYWN0dWFsbHkgcnVubmlu
ZyB0aGUgdGVzdHMgaXMgcHJvdmlkZWQgYnkgYQotOnB5OmNsYXNzOmBUZXN0UnVubmVyYCBvYmpl
Y3QuIDpweTpjbGFzczpgVGVzdFJ1bm5lcmAgaW5zdGFuY2VzIGFyZQorOnB5OmNsYXNzOmB+dGVz
dHJ1bm5lci5UZXN0UnVubmVyYCBvYmplY3QuIDpweTpjbGFzczpgfnRlc3RydW5uZXIuVGVzdFJ1
bm5lcmAgaW5zdGFuY2VzIGFyZQogcnVuIGluIHRoZWlyIG93biBjaGlsZCBwcm9jZXNzIGNyZWF0
ZWQgd2l0aCB0aGUKIDpweTptb2Q6YG11bHRpcHJvY2Vzc2luZ2AgbW9kdWxlLiBUaGlzIGFsbG93
cyB0aGVtIHRvIHJ1biBjb25jdXJyZW50bHkKIGFuZCB0byBiZSBraWxsZWQgYW5kIHJlc3RhcnRl
ZCBhcyByZXF1aXJlZC4gQ29tbXVuaWNhdGlvbiBiZXR3ZWVuIHRoZQotOnB5OmNsYXNzOmBUZXN0
UnVubmVyTWFuYWdlcmAgYW5kIHRoZSA6cHk6Y2xhc3M6YFRlc3RSdW5uZXJgIGlzCis6cHk6Y2xh
c3M6YH50ZXN0cnVubmVyLlRlc3RSdW5uZXJNYW5hZ2VyYCBhbmQgdGhlIDpweTpjbGFzczpgfnRl
c3RydW5uZXIuVGVzdFJ1bm5lcmAgaXMKIHByb3ZpZGVkIGJ5IGEgcGFpciBvZiBxdWV1ZXMsIG9u
ZSBmb3Igc2VuZGluZyBtZXNzYWdlcyBpbiBlYWNoCiBkaXJlY3Rpb24uIEluIHBhcnRpY3VsYXIg
dGVzdCByZXN1bHRzIGFyZSBzZW50IGZyb20gdGhlCi06cHk6Y2xhc3M6YFRlc3RSdW5uZXJgIHRv
IHRoZSA6cHk6Y2xhc3M6YFRlc3RSdW5uZXJNYW5hZ2VyYCB1c2luZyBvbmUKKzpweTpjbGFzczpg
fnRlc3RydW5uZXIuVGVzdFJ1bm5lcmAgdG8gdGhlIDpweTpjbGFzczpgfnRlc3RydW5uZXIuVGVz
dFJ1bm5lck1hbmFnZXJgIHVzaW5nIG9uZQogb2YgdGhlc2UgcXVldWVzLgogCi1UaGUgOnB5OmNs
YXNzOmBUZXN0UnVubmVyYCBvYmplY3QgaXMgZ2VuZXJpYyBpbiB0aGF0IHRoZSBzYW1lCi06cHk6
Y2xhc3M6YFRlc3RSdW5uZXJgIGlzIHVzZWQgcmVnYXJkbGVzcyBvZiB0aGUgcHJvZHVjdCB1bmRl
cgorVGhlIDpweTpjbGFzczpgfnRlc3RydW5uZXIuVGVzdFJ1bm5lcmAgb2JqZWN0IGlzIGdlbmVy
aWMgaW4gdGhhdCB0aGUgc2FtZQorOnB5OmNsYXNzOmB+dGVzdHJ1bm5lci5UZXN0UnVubmVyYCBp
cyB1c2VkIHJlZ2FyZGxlc3Mgb2YgdGhlIHByb2R1Y3QgdW5kZXIKIHRlc3QuIEhvd2V2ZXIgdGhl
IGRldGFpbHMgb2YgaG93IHRvIHJ1biB0aGUgdGVzdCBtYXkgdmFyeSBncmVhdGx5IHdpdGgKIHRo
ZSBwcm9kdWN0IHNpbmNlIGRpZmZlcmVudCBwcm9kdWN0cyBzdXBwb3J0IGRpZmZlcmVudCByZW1v
dGUgY29udHJvbAogcHJvdG9jb2xzIChvciBub25lIGF0IGFsbCkuIFRoZXNlIHByb3RvY29sLXNw
ZWNpZmljIHBhcnRzIGFyZSBwbGFjZWQKLWluIHRoZSA6cHk6Y2xhc3M6YEV4ZWN1dG9yYCBvYmpl
Y3QuIFRoZXJlIGlzIHR5cGljYWxseSBhIGRpZmZlcmVudAotOnB5OmNsYXNzOmBFeGVjdXRvcmAg
Y2xhc3MgZm9yIGVhY2ggY29tYmluYXRpb24gb2YgY29udHJvbCBwcm90b2NvbAotYW5kIHRlc3Qg
dHlwZS4gVGhlIDpweTpjbGFzczpgVGVzdFJ1bm5lcmAgaXMgcmVzcG9uc2libGUgZm9yIHB1bGxp
bmcKLWVhY2ggdGVzdCBvZmYgdGhlIDpweTpjbGFzczpgUXVldWVgIG9mIHRlc3RzIGFuZCBwYXNz
aW5nIGl0IGRvd24gdG8KLXRoZSA6cHk6Y2xhc3M6YEV4ZWN1dG9yYC4KK2luIHRoZSA6cHk6Y2xh
c3M6YH5leGVjdXRvcnMuYmFzZS5UZXN0RXhlY3V0b3JgIG9iamVjdC4gVGhlcmUgaXMgdHlwaWNh
bGx5IGEgZGlmZmVyZW50Cis6cHk6Y2xhc3M6YH5leGVjdXRvcnMuYmFzZS5UZXN0RXhlY3V0b3Jg
IGNsYXNzIGZvciBlYWNoIGNvbWJpbmF0aW9uIG9mIGNvbnRyb2wgcHJvdG9jb2wKK2FuZCB0ZXN0
IHR5cGUuIFRoZSA6cHk6Y2xhc3M6YH50ZXN0cnVubmVyLlRlc3RSdW5uZXJgIGlzIHJlc3BvbnNp
YmxlIGZvciBwdWxsaW5nCitlYWNoIHRlc3Qgb2ZmIHRoZSA6cHk6Y2xhc3M6YG11bHRpcHJvY2Vz
c2luZy5RdWV1ZWAgb2YgdGVzdHMgYW5kIHBhc3NpbmcgaXQgZG93biB0bwordGhlIDpweTpjbGFz
czpgfmV4ZWN1dG9ycy5iYXNlLlRlc3RFeGVjdXRvcmAuCiAKIFRoZSBleGVjdXRvciBvZnRlbiBy
ZXF1aXJlcyBhY2Nlc3MgdG8gZGV0YWlscyBvZiB0aGUgcGFydGljdWxhcgogYnJvd3NlciBpbnN0
YW5jZSB0aGF0IGl0IGlzIHRlc3Rpbmcgc28gdGhhdCBpdCBrbm93cyBlLmcuIHdoaWNoIHBvcnQK
IHRvIGNvbm5lY3QgdG8gdG8gc2VuZCBjb21tYW5kcyB0byB0aGUgYnJvd3Nlci4gVGhlc2UgZGV0
YWlscyBhcmUKLWVuY2Fwc3VsYXRlZCBpbiB0aGUgOnB5OmNsYXNzOmBFeGVjdXRvckJyb3dzZXJg
IGNsYXNzLgorZW5jYXBzdWxhdGVkIGluIHRoZSA6cHk6Y2xhc3M6YH5icm93c2Vycy5iYXNlLkV4
ZWN1dG9yQnJvd3NlcmAgY2xhc3MuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci9kb2NzL2V4cGVjdGF0aW9uLnJz
dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0
cnVubmVyL2RvY3MvZXhwZWN0YXRpb24ucnN0CmluZGV4IDZhMGM3NzY4NGEzLi43NzkzOGFiZTAz
ZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy93cHRydW5uZXIvZG9jcy9leHBlY3RhdGlvbi5yc3QKKysrIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvZG9jcy9leHBl
Y3RhdGlvbi5yc3QKQEAgLTk4LDYgKzk4LDI1IEBAIHdwdHVwZGF0ZSB0YWtlcyBzZXZlcmFsIHVz
ZWZ1bCBvcHRpb25zOgogICBPdmVyd3JpdGUgYWxsIHRoZSBleHBlY3RhdGlvbiBkYXRhIGZvciBh
bnkgdGVzdHMgdGhhdCBoYXZlIGEgcmVzdWx0CiAgIGluIHRoZSBwYXNzZWQgbG9nIGZpbGVzLCBu
b3QganVzdCBkYXRhIGZvciB0aGUgc2FtZSBwbGF0Zm9ybS4KIAorYGAtLWRpc2FibGUtaW50ZXJt
aXR0ZW50YGAKKyAgV2hlbiB1cGRhdGluZyB0ZXN0IHJlc3VsdHMsIGRpc2FibGUgdGVzdHMgdGhh
dCBoYXZlIGluY29uc2lzdGVudAorICByZXN1bHRzIGFjcm9zcyBtYW55IHJ1bnMuIFRoaXMgY2Fu
IHByZWNlZGUgYSBtZXNzYWdlIHByb3ZpZGluZyBhCisgIHJlYXNvbiB3aHkgdGhhdCB0ZXN0IGlz
IGRpc2FibGUuIElmIG5vIG1lc3NhZ2UgaXMgcHJvdmlkZWQsCisgIGBgdW5zdGFibGVgYCBpcyB0
aGUgZGVmYXVsdCB0ZXh0LgorCitgYC0tdXBkYXRlLWludGVybWl0dGVudGBgCisgIFdoZW4gdGhp
cyBvcHRpb24gaXMgdXNlZCwgdGhlIGBgZXhwZWN0ZWRgYCBrZXkgKHNlZSBiZWxvdykgc3RvcmVz
CisgIGV4cGVjdGVkIGludGVybWl0dGVudCBzdGF0dXNlcyBpbiBhZGRpdGlvbiB0byB0aGUgcHJp
bWFyeSBleHBlY3RlZAorICBzdGF0dXMuIElmIHRoZXJlIGlzIG1vcmUgdGhhbiBvbmUgc3RhdHVz
LCBpdCBhcHBlYXJzIGFzIGEgbGlzdC4gVGhlCisgIGRlZmF1bHQgYmVoYXZpb3VyIG9mIHRoaXMg
b3B0aW9uIGlzIHRvIHJldGFpbiBhbnkgZXhpc3RpbmcgaW50ZXJtaXR0ZW50CisgIHN0YXR1c2Vz
IGluIHRoZSBsaXN0IHVubGVzcyBgYC0tcmVtb3ZlLWludGVybWl0dGVudGBgIGlzIHNwZWNpZmll
ZC4KKworYGAtLXJlbW92ZS1pbnRlcm1pdHRlbnRgYAorICBUaGlzIG9wdGlvbiBpcyB1c2VkIGlu
IGNvbmp1bmN0aW9uIHdpdGggYGAtLXVwZGF0ZS1pbnRlcm1pdHRlbnRgYC4KKyAgV2hlbiB0aGUg
YGBleHBlY3RlZGBgIHN0YXR1c2VzIGFyZSB1cGRhdGVkLCBhbnkgb2Jzb2xldGUgaW50ZXJtaXR0
ZW50CisgIHN0YXR1c2VzIHRoYXQgZGlkIG5vdCBvY2N1ciBpbiB0aGUgc3BlY2lmaWVkIGxvZ2Zp
bGVzIGFyZSByZW1vdmVkIGZyb20KKyAgdGhlIGxpc3QuCisKIEV4YW1wbGVzCiB+fn5+fn5+fgog
CkBAIC0xNDEsNiArMTYwLDI0IEBAIEEgc2ltcGxlIGV4YW1wbGUgb2YgYSBtYW5pZmVzdCBmaWxl
IGlzOjoKICAgW2Fub3RoZXJfc2VjdGlvbl0KICAgICBhbm90aGVyX2tleTogYW5vdGhlcl92YWx1
ZQogCitUaGUgd2ViLXBsYXRmb3JtLXRlc3QgaGFybmVzcyBrbm93cyBhYm91dCBzZXZlcmFsIGtl
eXM6CisKK2BleHBlY3RlZGAKKyAgTXVzdCBldmFsdWF0ZSB0byBhIHBvc3NpYmxlIHRlc3Qgc3Rh
dHVzIGluZGljYXRpbmcgdGhlIGV4cGVjdGVkCisgIHJlc3VsdCBvZiB0aGUgdGVzdC4gVGhlIGlt
cGxpY2l0IGRlZmF1bHQgaXMgUEFTUyBvciBPSyB3aGVuIHRoZQorICBmaWVsZCBpc24ndCBwcmVz
ZW50LiBXaGVuIGBleHBlY3RlZGAgaXMgYSBsaXN0LCB0aGUgZmlyc3Qgc3RhdHVzCisgIGlzIHRo
ZSBwcmltYXJ5IGV4cGVjdGVkIHN0YXR1cyBhbmQgdGhlIHRyYWlsaW5nIHN0YXR1c2VzIGxpc3Rl
ZCBhcmUKKyAgZXhwZWN0ZWQgaW50ZXJtaXR0ZW50IHN0YXR1c2VzLgorCitgZGlzYWJsZWRgCisg
IEFueSB2YWx1ZSBpbmRpY2F0ZXMgdGhhdCB0aGUgdGVzdCBpcyBkaXNhYmxlZC4KKworYHJlZnR5
cGVgCisgIFRoZSB0eXBlIG9mIGNvbXBhcmlzb24gZm9yIHJlZnRlc3RzOyBlaXRoZXIgYD09YCBv
ciBgIT1gLgorCitgcmVmdXJsYAorICBUaGUgcmVmZXJlbmNlIHVybCBmb3IgcmVmdGVzdHMuCisK
IENvbmRpdGlvbmFsIFZhbHVlcwogfn5+fn5+fn5+fn5+fn5+fn5+CiAKQEAgLTE5MCwxNCArMjI3
LDggQEAgV2hlbiB1c2VkIGZvciBleHBlY3RhdGlvbiBkYXRhLCBtYW5pZmVzdHMgaGF2ZSB0aGUg
Zm9sbG93aW5nIGZvcm1hdDoKICAqIEEgc3Vic2VjdGlvbiBwZXIgc3VidGVzdCwgd2l0aCB0aGUg
aGVhZGluZyBiZWluZyB0aGUgdGl0bGUgb2YgdGhlCiAgICBzdWJ0ZXN0LgogCi0gKiBBIGtleSBg
YHR5cGVgYCBpbmRpY2F0aW5nIHRoZSB0ZXN0IHR5cGUuIFRoaXMgdGFrZXMgdGhlIHZhbHVlcwot
ICAgYGB0ZXN0aGFybmVzc2BgIGFuZCBgYHJlZnRlc3RgYC4KLQotICogRm9yIHJlZnRlc3RzLCBr
ZXlzIGBgcmVmdHlwZWBgIGluZGljYXRpbmcgdGhlIHJlZmVyZW5jZSB0eXBlCi0gICAoYGA9PWBg
IG9yIGBgIT1gYCkgYW5kIGBgcmVmdXJsYGAgaW5kaWNhdGluZyB0aGUgVVJMIG9mIHRoZQotICAg
cmVmZXJlbmNlLgotCi0gKiBBIGtleSBgYGV4cGVjdGVkYGAgZ2l2aW5nIHRoZSBleHBlY3RhdGlv
biB2YWx1ZSBvZiBlYWNoIChzdWIpdGVzdC4KKyAqIEEga2V5IGBgZXhwZWN0ZWRgYCBnaXZpbmcg
dGhlIGV4cGVjdGF0aW9uIHZhbHVlIG9yIHZhbHVlcyBvZiBlYWNoIAorICAgKHN1Yil0ZXN0Lgog
CiAgKiBBIGtleSBgYGRpc2FibGVkYGAgd2hpY2ggY2FuIGJlIHNldCB0byBhbnkgdmFsdWUgdG8g
aW5kaWNhdGUgdGhhdAogICAgdGhlIChzdWIpdGVzdCBpcyBkaXNhYmxlZCBhbmQgc2hvdWxkIGVp
dGhlciBub3QgYmUgcnVuIChmb3IgdGVzdHMpCkBAIC0yMDcsNiArMjM4LDE5IEBAIFdoZW4gdXNl
ZCBmb3IgZXhwZWN0YXRpb24gZGF0YSwgbWFuaWZlc3RzIGhhdmUgdGhlIGZvbGxvd2luZyBmb3Jt
YXQ6CiAgICB0aGUgcnVubmVyIHNob3VsZCByZXN0YXJ0IHRoZSBicm93c2VyIGFmdGVyIHJ1bm5p
bmcgdGhpcyB0ZXN0IChlLmcuIHRvCiAgICBjbGVhciBvdXQgdW53YW50ZWQgc3RhdGUpLgogCisg
KiBBIGtleSBgYGZ1enp5YGAgdGhhdCBpcyB1c2VkIGZvciByZWZ0ZXN0cy4gVGhpcyBpcyBpbnRl
cnByZXRlZCBhcyBhCisgICBsaXN0IGNvbnRhaW5pbmcgZW50cmllcyBsaWtlIGBgPG1ldGEgbmFt
ZT1mdXp6eT5gYCBjb250ZW50IHZhbHVlLAorICAgd2hpY2ggY29uc2lzdHMgb2YgYW4gb3B0aW9u
YWwgcmVmZXJlbmNlIGlkZW50aWZpZXIgZm9sbG93ZWQgYnkgYQorICAgY29sb24sIHRoZW4gYSBy
YW5nZSBpbmRpY2F0aW5nIHRoZSBtYXhpbXVtIHBlcm1pdHRlZCBwaXhlbAorICAgZGlmZmVyZW5j
ZSBwZXIgY2hhbm5lbCwgdGhlbiBzZW1pY29sb24sIHRoZW4gYSByYW5nZSBpbmRpY2F0aW5nIHRo
ZQorICAgbWF4aW11bSBwZXJtaXR0ZWQgdG90YWwgbnVtYmVyIG9mIGRpZmZlcmluZyBwaXhlbHMu
IFRoZSByZWZlcmVuY2UKKyAgIGlkZW50aWZpZXIgaXMgZWl0aGVyIGEgc2luZ2xlIHJlbGF0aXZl
IFVSTCwgcmVzb2x2ZWQgYWdhaW5zdCB0aGUKKyAgIGJhc2UgdGVzdCBVUkwsIGluIHdoaWNoIGNh
c2UgdGhlIGZ1enppbmVzcyBhcHBsaWVzIHRvIGFueQorICAgY29tcGFyaXNvbiB3aXRoIHRoYXQg
VVJMLCBvciB0YWtlcyB0aGUgZm9ybSBsaHMgdXJsLCBjb21wYXJpc29uLAorICAgcmhzIHVybCwg
aW4gd2hpY2ggY2FzZSB0aGUgZnV6emluZXNzIG9ubHkgYXBwbGllcyBmb3IgYW55CisgICBjb21w
YXJpc29uIGludm9sdmluZyB0aGF0IHNwZWNpZmMgcGFpciBvZiBVUkxzLiBTb21lIGlsbHVzdHJh
dGl2ZQorICAgZXhhbXBsZXMgYXJlIGdpdmVuIGJlbG93LgorCiAgKiBWYXJpYWJsZXMgYGBkZWJ1
Z2BgLCBgYG9zYGAsIGBgdmVyc2lvbmBgLCBgYHByb2Nlc3NvcmBgIGFuZAogICAgYGBiaXRzYGAg
dGhhdCBkZXNjcmliZSB0aGUgY29uZmlndXJhdGlvbiBvZiB0aGUgYnJvd3NlciB1bmRlcgogICAg
dGVzdC4gYGBkZWJ1Z2BgIGlzIGEgYm9vbGVhbiBpbmRpY2F0aW5nIHdoZXRoZXIgYSBidWlsZCBp
cyBhIGRlYnVnCkBAIC0yMzAsNiArMjc0LDkgQEAgQW4gc2ltcGxlIGV4YW1wbGUgbWFuaWZlc3Qg
bWlnaHQgbG9vayBsaWtlOjoKICAgICBbVGVzdCBzb21ldGhpbmcgdW5zdXBwb3J0ZWRdCiAgICAg
ICAgZXhwZWN0ZWQ6IEZBSUwKIAorICAgIFtUZXN0IHdpdGggaW50ZXJtaXR0ZW50IHN0YXR1c2Vz
XQorICAgICAgIGV4cGVjdGVkOiBbUEFTUywgVElNRU9VVF0KKwogICBbdGVzdC5odG1sP3Zhcmlh
bnQ9YnJva2VuXQogICAgIGV4cGVjdGVkOiBFUlJPUgogCkBAIC0yNDAsOSArMjg3LDI0IEBAIEEg
bW9yZSBjb21wbGV4IG1hbmlmZXN0IHdpdGggY29uZGl0aW9uYWwgcHJvcGVydGllcyBtaWdodCBi
ZTo6CiAKICAgW2NhbnZhc190ZXN0Lmh0bWxdCiAgICAgZXhwZWN0ZWQ6Ci0gICAgICBpZiBvcyA9
PSAib3N4IjogRkFJTAorICAgICAgaWYgb3MgPT0gIm1hYyI6IEZBSUwKICAgICAgIGlmIG9zID09
ICJ3aW5kb3dzIiBhbmQgdmVyc2lvbiA9PSAiWFAiOiBGQUlMCiAgICAgICBQQVNTCiAKIE5vdGUg
dGhhdCBgYFBBU1NgYCBpbiB0aGUgYWJvdmUgd29ya3MsIGJ1dCBpcyB1bm5lY2Vzc2FyeTsgYGBQ
QVNTYGAKIChvciBgYE9LYGApIGlzIGFsd2F5cyB0aGUgZGVmYXVsdCBleHBlY3RhdGlvbiBmb3Ig
KHN1Yil0ZXN0cy4KKworQSBtYW5pZmVzdCB3aXRoIGZ1enp5IHJlZnRlc3QgdmFsdWVzIG1pZ2h0
IGJlOjoKKworICBbcmVmdGVzdC5odG1sXQorICAgIGZ1enp5OiBbMTA7MjAwLCByZWYxLmh0bWw6
MjA7MjAwLTMwMCwgc3VidGVzdDEuaHRtbD09cmVmMi5odG1sOjEwLTE1OzIwXQorCitJbiB0aGlz
IGNhc2UgdGhlIGRlZmF1bHQgZnV6emluZXNzIGZvciBhbnkgY29tcGFyaXNvbiB3b3VsZCBiZSB0
bworcmVxdWlyZSBhIG1heGltdW0gZGlmZmVyZW5jZSBwZXIgY2hhbm5lbCBvZiBsZXNzIHRoYW4g
b3IgZXF1YWwgdG8gMTAKK2FuZCBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gMjAwIHRvdGFsIHBpeGVs
cyBkaWZmZXJlbnQuIEZvciBhbnkKK2NvbXBhcmlzb24gaW52b2x2aW5nIHJlZjEuaHRtbCBvbiB0
aGUgcmlnaHQgaGFuZCBzaWRlLCB0aGUgbGltaXRzCit3b3VsZCBpbnN0ZWFkIGJlIGEgZGlmZmVy
ZW5jZSBwZXIgY2hhbm5lbCBub3QgbW9yZSB0aGFuIDIwIGFuZCBhIHRvdGFsCitkaWZmZXJlbmNl
IGNvdW50IG9mIG5vdCBsZXNzIHRoYW4gMjAwIGFuZCBub3QgbW9yZSB0aGFuIDMwMC4gRm9yIHRo
ZQorc3BlY2lmaWMgY29tcGFyaXNvbiBzdWJ0ZXN0MS5odG1sID09IHJlZjIuaHRtbCAoYm90aCBy
ZXNvbHZlZCBhZ2FpbnN0Cit0aGUgdGVzdCBVUkwpIHRoZXNlIGxpbWl0cyB3b3VsZCBpbnN0ZWFk
IGJlIDEwIHRvIDE1IGFuZCAwIHRvIDIwLAorcmVzcGVjdGl2ZWx5LgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIv
ZG9jcy9pbmRleC5yc3QgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3dwdHJ1bm5lci9kb2NzL2luZGV4LnJzdApkZWxldGVkIGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggNTE0N2QzZTMxYzMuLjAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL2RvY3MvaW5kZXgucnN0
CisrKyAvZGV2L251bGwKQEAgLTEsMjQgKzAsMCBAQAotLi4gd3B0cnVubmVyIGRvY3VtZW50YXRp
b24gbWFzdGVyIGZpbGUsIGNyZWF0ZWQgYnkKLSAgIHNwaGlueC1xdWlja3N0YXJ0IG9uIE1vbiBN
YXkgMTkgMTg6MTQ6MjAgMjAxNC4KLSAgIFlvdSBjYW4gYWRhcHQgdGhpcyBmaWxlIGNvbXBsZXRl
bHkgdG8geW91ciBsaWtpbmcsIGJ1dCBpdCBzaG91bGQgYXQgbGVhc3QKLSAgIGNvbnRhaW4gdGhl
IHJvb3QgYHRvY3RyZWVgIGRpcmVjdGl2ZS4KLQotV2VsY29tZSB0byB3cHRydW5uZXIncyBkb2N1
bWVudGF0aW9uIQotPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotCi1Db250
ZW50czoKLQotLi4gdG9jdHJlZTo6Ci0gICA6bWF4ZGVwdGg6IDIKLQotICAgdXNhZ2UKLSAgIGV4
cGVjdGF0aW9uCi0gICBkZXNpZ24KLQotSW5kaWNlcyBhbmQgdGFibGVzCi09PT09PT09PT09PT09
PT09PT0KLQotKiA6cmVmOmBnZW5pbmRleGAKLSogOnJlZjpgbW9kaW5kZXhgCi0qIDpyZWY6YHNl
YXJjaGAKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy93cHRydW5uZXIvZG9jcy9pbnRlcm5hbHMucnN0IGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvZG9jcy9pbnRl
cm5hbHMucnN0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi43ODBkZjg3
MmVkYwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL2RvY3MvaW50ZXJuYWxzLnJzdApAQCAtMCwwICsx
LDIzIEBACit3cHRydW5uZXIgSW50ZXJuYWxzCis9PT09PT09PT09PT09PT09PT09CisKKy4uIFRo
ZXNlIG1vZHVsZXMgYXJlIGludGVudGlvbmFsbHkgcmVmZXJlbmNlZCBhcyBzdWJtb2R1bGVzIGZy
b20gdGhlIHBhcmVudAorICAgZGlyZWN0b3J5LiBUaGlzIGVuc3VyZXMgdGhhdCBTcGhpbnggaW50
ZXJwcmV0cyB0aGVtIGFzIHBhY2thZ2VzLgorCisuLiBhdXRvbW9kdWxlOjogd3B0cnVubmVyLmJy
b3dzZXJzLmJhc2UKKyAgIDptZW1iZXJzOgorCisuLiBhdXRvbW9kdWxlOjogd3B0cnVubmVyLmVu
dmlyb25tZW50CisgICA6bWVtYmVyczoKKworLi4gYXV0b21vZHVsZTo6IHdwdHJ1bm5lci5leGVj
dXRvcnMuYmFzZQorICAgOm1lbWJlcnM6CisKKy4uIGF1dG9tb2R1bGU6OiB3cHRydW5uZXIud3B0
cnVubmVyCisgICA6bWVtYmVyczoKKworLi4gYXV0b21vZHVsZTo6IHdwdHJ1bm5lci50ZXN0bG9h
ZGVyCisgICA6bWVtYmVyczoKKworLi4gYXV0b21vZHVsZTo6IHdwdHJ1bm5lci50ZXN0cnVubmVy
CisgICA6bWVtYmVyczoKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL2RvY3MvbWFrZS5iYXQgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci9kb2NzL21h
a2UuYmF0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5NTljMTYxNWEyOC4uMDAwMDAw
MDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy93cHRydW5uZXIvZG9jcy9tYWtlLmJhdAorKysgL2Rldi9udWxsCkBAIC0xLDI0MiArMCww
IEBACi1ARUNITyBPRkYNCi0NCi1SRU0gQ29tbWFuZCBmaWxlIGZvciBTcGhpbnggZG9jdW1lbnRh
dGlvbg0KLQ0KLWlmICIlU1BISU5YQlVJTEQlIiA9PSAiIiAoDQotCXNldCBTUEhJTlhCVUlMRD1z
cGhpbngtYnVpbGQNCi0pDQotc2V0IEJVSUxERElSPV9idWlsZA0KLXNldCBBTExTUEhJTlhPUFRT
PS1kICVCVUlMRERJUiUvZG9jdHJlZXMgJVNQSElOWE9QVFMlIC4NCi1zZXQgSTE4TlNQSElOWE9Q
VFM9JVNQSElOWE9QVFMlIC4NCi1pZiBOT1QgIiVQQVBFUiUiID09ICIiICgNCi0Jc2V0IEFMTFNQ
SElOWE9QVFM9LUQgbGF0ZXhfcGFwZXJfc2l6ZT0lUEFQRVIlICVBTExTUEhJTlhPUFRTJQ0KLQlz
ZXQgSTE4TlNQSElOWE9QVFM9LUQgbGF0ZXhfcGFwZXJfc2l6ZT0lUEFQRVIlICVJMThOU1BISU5Y
T1BUUyUNCi0pDQotDQotaWYgIiUxIiA9PSAiIiBnb3RvIGhlbHANCi0NCi1pZiAiJTEiID09ICJo
ZWxwIiAoDQotCTpoZWxwDQotCWVjaG8uUGxlYXNlIHVzZSBgbWFrZSBePHRhcmdldF4+YCB3aGVy
ZSBePHRhcmdldF4+IGlzIG9uZSBvZg0KLQllY2hvLiAgaHRtbCAgICAgICB0byBtYWtlIHN0YW5k
YWxvbmUgSFRNTCBmaWxlcw0KLQllY2hvLiAgZGlyaHRtbCAgICB0byBtYWtlIEhUTUwgZmlsZXMg
bmFtZWQgaW5kZXguaHRtbCBpbiBkaXJlY3Rvcmllcw0KLQllY2hvLiAgc2luZ2xlaHRtbCB0byBt
YWtlIGEgc2luZ2xlIGxhcmdlIEhUTUwgZmlsZQ0KLQllY2hvLiAgcGlja2xlICAgICB0byBtYWtl
IHBpY2tsZSBmaWxlcw0KLQllY2hvLiAganNvbiAgICAgICB0byBtYWtlIEpTT04gZmlsZXMNCi0J
ZWNoby4gIGh0bWxoZWxwICAgdG8gbWFrZSBIVE1MIGZpbGVzIGFuZCBhIEhUTUwgaGVscCBwcm9q
ZWN0DQotCWVjaG8uICBxdGhlbHAgICAgIHRvIG1ha2UgSFRNTCBmaWxlcyBhbmQgYSBxdGhlbHAg
cHJvamVjdA0KLQllY2hvLiAgZGV2aGVscCAgICB0byBtYWtlIEhUTUwgZmlsZXMgYW5kIGEgRGV2
aGVscCBwcm9qZWN0DQotCWVjaG8uICBlcHViICAgICAgIHRvIG1ha2UgYW4gZXB1Yg0KLQllY2hv
LiAgbGF0ZXggICAgICB0byBtYWtlIExhVGVYIGZpbGVzLCB5b3UgY2FuIHNldCBQQVBFUj1hNCBv
ciBQQVBFUj1sZXR0ZXINCi0JZWNoby4gIHRleHQgICAgICAgdG8gbWFrZSB0ZXh0IGZpbGVzDQot
CWVjaG8uICBtYW4gICAgICAgIHRvIG1ha2UgbWFudWFsIHBhZ2VzDQotCWVjaG8uICB0ZXhpbmZv
ICAgIHRvIG1ha2UgVGV4aW5mbyBmaWxlcw0KLQllY2hvLiAgZ2V0dGV4dCAgICB0byBtYWtlIFBP
IG1lc3NhZ2UgY2F0YWxvZ3MNCi0JZWNoby4gIGNoYW5nZXMgICAgdG8gbWFrZSBhbiBvdmVydmll
dyBvdmVyIGFsbCBjaGFuZ2VkL2FkZGVkL2RlcHJlY2F0ZWQgaXRlbXMNCi0JZWNoby4gIHhtbCAg
ICAgICAgdG8gbWFrZSBEb2N1dGlscy1uYXRpdmUgWE1MIGZpbGVzDQotCWVjaG8uICBwc2V1ZG94
bWwgIHRvIG1ha2UgcHNldWRveG1sLVhNTCBmaWxlcyBmb3IgZGlzcGxheSBwdXJwb3Nlcw0KLQll
Y2hvLiAgbGlua2NoZWNrICB0byBjaGVjayBhbGwgZXh0ZXJuYWwgbGlua3MgZm9yIGludGVncml0
eQ0KLQllY2hvLiAgZG9jdGVzdCAgICB0byBydW4gYWxsIGRvY3Rlc3RzIGVtYmVkZGVkIGluIHRo
ZSBkb2N1bWVudGF0aW9uIGlmIGVuYWJsZWQNCi0JZ290byBlbmQNCi0pDQotDQotaWYgIiUxIiA9
PSAiY2xlYW4iICgNCi0JZm9yIC9kICUlaSBpbiAoJUJVSUxERElSJVwqKSBkbyBybWRpciAvcSAv
cyAlJWkNCi0JZGVsIC9xIC9zICVCVUlMRERJUiVcKg0KLQlnb3RvIGVuZA0KLSkNCi0NCi0NCi0l
U1BISU5YQlVJTEQlIDI+IG51bA0KLWlmIGVycm9ybGV2ZWwgOTAwOSAoDQotCWVjaG8uDQotCWVj
aG8uVGhlICdzcGhpbngtYnVpbGQnIGNvbW1hbmQgd2FzIG5vdCBmb3VuZC4gTWFrZSBzdXJlIHlv
dSBoYXZlIFNwaGlueA0KLQllY2hvLmluc3RhbGxlZCwgdGhlbiBzZXQgdGhlIFNQSElOWEJVSUxE
IGVudmlyb25tZW50IHZhcmlhYmxlIHRvIHBvaW50DQotCWVjaG8udG8gdGhlIGZ1bGwgcGF0aCBv
ZiB0aGUgJ3NwaGlueC1idWlsZCcgZXhlY3V0YWJsZS4gQWx0ZXJuYXRpdmVseSB5b3UNCi0JZWNo
by5tYXkgYWRkIHRoZSBTcGhpbnggZGlyZWN0b3J5IHRvIFBBVEguDQotCWVjaG8uDQotCWVjaG8u
SWYgeW91IGRvbid0IGhhdmUgU3BoaW54IGluc3RhbGxlZCwgZ3JhYiBpdCBmcm9tDQotCWVjaG8u
aHR0cDovL3NwaGlueC1kb2Mub3JnLw0KLQlleGl0IC9iIDENCi0pDQotDQotaWYgIiUxIiA9PSAi
aHRtbCIgKA0KLQklU1BISU5YQlVJTEQlIC1iIGh0bWwgJUFMTFNQSElOWE9QVFMlICVCVUlMRERJ
UiUvaHRtbA0KLQlpZiBlcnJvcmxldmVsIDEgZXhpdCAvYiAxDQotCWVjaG8uDQotCWVjaG8uQnVp
bGQgZmluaXNoZWQuIFRoZSBIVE1MIHBhZ2VzIGFyZSBpbiAlQlVJTERESVIlL2h0bWwuDQotCWdv
dG8gZW5kDQotKQ0KLQ0KLWlmICIlMSIgPT0gImRpcmh0bWwiICgNCi0JJVNQSElOWEJVSUxEJSAt
YiBkaXJodG1sICVBTExTUEhJTlhPUFRTJSAlQlVJTERESVIlL2Rpcmh0bWwNCi0JaWYgZXJyb3Js
ZXZlbCAxIGV4aXQgL2IgMQ0KLQllY2hvLg0KLQllY2hvLkJ1aWxkIGZpbmlzaGVkLiBUaGUgSFRN
TCBwYWdlcyBhcmUgaW4gJUJVSUxERElSJS9kaXJodG1sLg0KLQlnb3RvIGVuZA0KLSkNCi0NCi1p
ZiAiJTEiID09ICJzaW5nbGVodG1sIiAoDQotCSVTUEhJTlhCVUlMRCUgLWIgc2luZ2xlaHRtbCAl
QUxMU1BISU5YT1BUUyUgJUJVSUxERElSJS9zaW5nbGVodG1sDQotCWlmIGVycm9ybGV2ZWwgMSBl
eGl0IC9iIDENCi0JZWNoby4NCi0JZWNoby5CdWlsZCBmaW5pc2hlZC4gVGhlIEhUTUwgcGFnZXMg
YXJlIGluICVCVUlMRERJUiUvc2luZ2xlaHRtbC4NCi0JZ290byBlbmQNCi0pDQotDQotaWYgIiUx
IiA9PSAicGlja2xlIiAoDQotCSVTUEhJTlhCVUlMRCUgLWIgcGlja2xlICVBTExTUEhJTlhPUFRT
JSAlQlVJTERESVIlL3BpY2tsZQ0KLQlpZiBlcnJvcmxldmVsIDEgZXhpdCAvYiAxDQotCWVjaG8u
DQotCWVjaG8uQnVpbGQgZmluaXNoZWQ7IG5vdyB5b3UgY2FuIHByb2Nlc3MgdGhlIHBpY2tsZSBm
aWxlcy4NCi0JZ290byBlbmQNCi0pDQotDQotaWYgIiUxIiA9PSAianNvbiIgKA0KLQklU1BISU5Y
QlVJTEQlIC1iIGpzb24gJUFMTFNQSElOWE9QVFMlICVCVUlMRERJUiUvanNvbg0KLQlpZiBlcnJv
cmxldmVsIDEgZXhpdCAvYiAxDQotCWVjaG8uDQotCWVjaG8uQnVpbGQgZmluaXNoZWQ7IG5vdyB5
b3UgY2FuIHByb2Nlc3MgdGhlIEpTT04gZmlsZXMuDQotCWdvdG8gZW5kDQotKQ0KLQ0KLWlmICIl
MSIgPT0gImh0bWxoZWxwIiAoDQotCSVTUEhJTlhCVUlMRCUgLWIgaHRtbGhlbHAgJUFMTFNQSElO
WE9QVFMlICVCVUlMRERJUiUvaHRtbGhlbHANCi0JaWYgZXJyb3JsZXZlbCAxIGV4aXQgL2IgMQ0K
LQllY2hvLg0KLQllY2hvLkJ1aWxkIGZpbmlzaGVkOyBub3cgeW91IGNhbiBydW4gSFRNTCBIZWxw
IFdvcmtzaG9wIHdpdGggdGhlIF4NCi0uaGhwIHByb2plY3QgZmlsZSBpbiAlQlVJTERESVIlL2h0
bWxoZWxwLg0KLQlnb3RvIGVuZA0KLSkNCi0NCi1pZiAiJTEiID09ICJxdGhlbHAiICgNCi0JJVNQ
SElOWEJVSUxEJSAtYiBxdGhlbHAgJUFMTFNQSElOWE9QVFMlICVCVUlMRERJUiUvcXRoZWxwDQot
CWlmIGVycm9ybGV2ZWwgMSBleGl0IC9iIDENCi0JZWNoby4NCi0JZWNoby5CdWlsZCBmaW5pc2hl
ZDsgbm93IHlvdSBjYW4gcnVuICJxY29sbGVjdGlvbmdlbmVyYXRvciIgd2l0aCB0aGUgXg0KLS5x
aGNwIHByb2plY3QgZmlsZSBpbiAlQlVJTERESVIlL3F0aGVscCwgbGlrZSB0aGlzOg0KLQllY2hv
Ll4+IHFjb2xsZWN0aW9uZ2VuZXJhdG9yICVCVUlMRERJUiVccXRoZWxwXHdwdHJ1bm5lci5xaGNw
DQotCWVjaG8uVG8gdmlldyB0aGUgaGVscCBmaWxlOg0KLQllY2hvLl4+IGFzc2lzdGFudCAtY29s
bGVjdGlvbkZpbGUgJUJVSUxERElSJVxxdGhlbHBcd3B0cnVubmVyLmdoYw0KLQlnb3RvIGVuZA0K
LSkNCi0NCi1pZiAiJTEiID09ICJkZXZoZWxwIiAoDQotCSVTUEhJTlhCVUlMRCUgLWIgZGV2aGVs
cCAlQUxMU1BISU5YT1BUUyUgJUJVSUxERElSJS9kZXZoZWxwDQotCWlmIGVycm9ybGV2ZWwgMSBl
eGl0IC9iIDENCi0JZWNoby4NCi0JZWNoby5CdWlsZCBmaW5pc2hlZC4NCi0JZ290byBlbmQNCi0p
DQotDQotaWYgIiUxIiA9PSAiZXB1YiIgKA0KLQklU1BISU5YQlVJTEQlIC1iIGVwdWIgJUFMTFNQ
SElOWE9QVFMlICVCVUlMRERJUiUvZXB1Yg0KLQlpZiBlcnJvcmxldmVsIDEgZXhpdCAvYiAxDQot
CWVjaG8uDQotCWVjaG8uQnVpbGQgZmluaXNoZWQuIFRoZSBlcHViIGZpbGUgaXMgaW4gJUJVSUxE
RElSJS9lcHViLg0KLQlnb3RvIGVuZA0KLSkNCi0NCi1pZiAiJTEiID09ICJsYXRleCIgKA0KLQkl
U1BISU5YQlVJTEQlIC1iIGxhdGV4ICVBTExTUEhJTlhPUFRTJSAlQlVJTERESVIlL2xhdGV4DQot
CWlmIGVycm9ybGV2ZWwgMSBleGl0IC9iIDENCi0JZWNoby4NCi0JZWNoby5CdWlsZCBmaW5pc2hl
ZDsgdGhlIExhVGVYIGZpbGVzIGFyZSBpbiAlQlVJTERESVIlL2xhdGV4Lg0KLQlnb3RvIGVuZA0K
LSkNCi0NCi1pZiAiJTEiID09ICJsYXRleHBkZiIgKA0KLQklU1BISU5YQlVJTEQlIC1iIGxhdGV4
ICVBTExTUEhJTlhPUFRTJSAlQlVJTERESVIlL2xhdGV4DQotCWNkICVCVUlMRERJUiUvbGF0ZXgN
Ci0JbWFrZSBhbGwtcGRmDQotCWNkICVCVUlMRERJUiUvLi4NCi0JZWNoby4NCi0JZWNoby5CdWls
ZCBmaW5pc2hlZDsgdGhlIFBERiBmaWxlcyBhcmUgaW4gJUJVSUxERElSJS9sYXRleC4NCi0JZ290
byBlbmQNCi0pDQotDQotaWYgIiUxIiA9PSAibGF0ZXhwZGZqYSIgKA0KLQklU1BISU5YQlVJTEQl
IC1iIGxhdGV4ICVBTExTUEhJTlhPUFRTJSAlQlVJTERESVIlL2xhdGV4DQotCWNkICVCVUlMRERJ
UiUvbGF0ZXgNCi0JbWFrZSBhbGwtcGRmLWphDQotCWNkICVCVUlMRERJUiUvLi4NCi0JZWNoby4N
Ci0JZWNoby5CdWlsZCBmaW5pc2hlZDsgdGhlIFBERiBmaWxlcyBhcmUgaW4gJUJVSUxERElSJS9s
YXRleC4NCi0JZ290byBlbmQNCi0pDQotDQotaWYgIiUxIiA9PSAidGV4dCIgKA0KLQklU1BISU5Y
QlVJTEQlIC1iIHRleHQgJUFMTFNQSElOWE9QVFMlICVCVUlMRERJUiUvdGV4dA0KLQlpZiBlcnJv
cmxldmVsIDEgZXhpdCAvYiAxDQotCWVjaG8uDQotCWVjaG8uQnVpbGQgZmluaXNoZWQuIFRoZSB0
ZXh0IGZpbGVzIGFyZSBpbiAlQlVJTERESVIlL3RleHQuDQotCWdvdG8gZW5kDQotKQ0KLQ0KLWlm
ICIlMSIgPT0gIm1hbiIgKA0KLQklU1BISU5YQlVJTEQlIC1iIG1hbiAlQUxMU1BISU5YT1BUUyUg
JUJVSUxERElSJS9tYW4NCi0JaWYgZXJyb3JsZXZlbCAxIGV4aXQgL2IgMQ0KLQllY2hvLg0KLQll
Y2hvLkJ1aWxkIGZpbmlzaGVkLiBUaGUgbWFudWFsIHBhZ2VzIGFyZSBpbiAlQlVJTERESVIlL21h
bi4NCi0JZ290byBlbmQNCi0pDQotDQotaWYgIiUxIiA9PSAidGV4aW5mbyIgKA0KLQklU1BISU5Y
QlVJTEQlIC1iIHRleGluZm8gJUFMTFNQSElOWE9QVFMlICVCVUlMRERJUiUvdGV4aW5mbw0KLQlp
ZiBlcnJvcmxldmVsIDEgZXhpdCAvYiAxDQotCWVjaG8uDQotCWVjaG8uQnVpbGQgZmluaXNoZWQu
IFRoZSBUZXhpbmZvIGZpbGVzIGFyZSBpbiAlQlVJTERESVIlL3RleGluZm8uDQotCWdvdG8gZW5k
DQotKQ0KLQ0KLWlmICIlMSIgPT0gImdldHRleHQiICgNCi0JJVNQSElOWEJVSUxEJSAtYiBnZXR0
ZXh0ICVJMThOU1BISU5YT1BUUyUgJUJVSUxERElSJS9sb2NhbGUNCi0JaWYgZXJyb3JsZXZlbCAx
IGV4aXQgL2IgMQ0KLQllY2hvLg0KLQllY2hvLkJ1aWxkIGZpbmlzaGVkLiBUaGUgbWVzc2FnZSBj
YXRhbG9ncyBhcmUgaW4gJUJVSUxERElSJS9sb2NhbGUuDQotCWdvdG8gZW5kDQotKQ0KLQ0KLWlm
ICIlMSIgPT0gImNoYW5nZXMiICgNCi0JJVNQSElOWEJVSUxEJSAtYiBjaGFuZ2VzICVBTExTUEhJ
TlhPUFRTJSAlQlVJTERESVIlL2NoYW5nZXMNCi0JaWYgZXJyb3JsZXZlbCAxIGV4aXQgL2IgMQ0K
LQllY2hvLg0KLQllY2hvLlRoZSBvdmVydmlldyBmaWxlIGlzIGluICVCVUlMRERJUiUvY2hhbmdl
cy4NCi0JZ290byBlbmQNCi0pDQotDQotaWYgIiUxIiA9PSAibGlua2NoZWNrIiAoDQotCSVTUEhJ
TlhCVUlMRCUgLWIgbGlua2NoZWNrICVBTExTUEhJTlhPUFRTJSAlQlVJTERESVIlL2xpbmtjaGVj
aw0KLQlpZiBlcnJvcmxldmVsIDEgZXhpdCAvYiAxDQotCWVjaG8uDQotCWVjaG8uTGluayBjaGVj
ayBjb21wbGV0ZTsgbG9vayBmb3IgYW55IGVycm9ycyBpbiB0aGUgYWJvdmUgb3V0cHV0IF4NCi1v
ciBpbiAlQlVJTERESVIlL2xpbmtjaGVjay9vdXRwdXQudHh0Lg0KLQlnb3RvIGVuZA0KLSkNCi0N
Ci1pZiAiJTEiID09ICJkb2N0ZXN0IiAoDQotCSVTUEhJTlhCVUlMRCUgLWIgZG9jdGVzdCAlQUxM
U1BISU5YT1BUUyUgJUJVSUxERElSJS9kb2N0ZXN0DQotCWlmIGVycm9ybGV2ZWwgMSBleGl0IC9i
IDENCi0JZWNoby4NCi0JZWNoby5UZXN0aW5nIG9mIGRvY3Rlc3RzIGluIHRoZSBzb3VyY2VzIGZp
bmlzaGVkLCBsb29rIGF0IHRoZSBeDQotcmVzdWx0cyBpbiAlQlVJTERESVIlL2RvY3Rlc3Qvb3V0
cHV0LnR4dC4NCi0JZ290byBlbmQNCi0pDQotDQotaWYgIiUxIiA9PSAieG1sIiAoDQotCSVTUEhJ
TlhCVUlMRCUgLWIgeG1sICVBTExTUEhJTlhPUFRTJSAlQlVJTERESVIlL3htbA0KLQlpZiBlcnJv
cmxldmVsIDEgZXhpdCAvYiAxDQotCWVjaG8uDQotCWVjaG8uQnVpbGQgZmluaXNoZWQuIFRoZSBY
TUwgZmlsZXMgYXJlIGluICVCVUlMRERJUiUveG1sLg0KLQlnb3RvIGVuZA0KLSkNCi0NCi1pZiAi
JTEiID09ICJwc2V1ZG94bWwiICgNCi0JJVNQSElOWEJVSUxEJSAtYiBwc2V1ZG94bWwgJUFMTFNQ
SElOWE9QVFMlICVCVUlMRERJUiUvcHNldWRveG1sDQotCWlmIGVycm9ybGV2ZWwgMSBleGl0IC9i
IDENCi0JZWNoby4NCi0JZWNoby5CdWlsZCBmaW5pc2hlZC4gVGhlIHBzZXVkby1YTUwgZmlsZXMg
YXJlIGluICVCVUlMRERJUiUvcHNldWRveG1sLg0KLQlnb3RvIGVuZA0KLSkNCi0NCi06ZW5kDQpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy93cHRydW5uZXIvZG9jcy91c2FnZS5yc3QgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci9kb2NzL3VzYWdlLnJzdAppbmRleCA1
OTk3ZjQyNTRmMS4uODVmZDk3YmY2YzEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL2RvY3MvdXNhZ2UucnN0Cisr
KyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0
cnVubmVyL2RvY3MvdXNhZ2UucnN0CkBAIC0xNjQsMjAgKzE2NCwyNCBAQCBtZXRhZGF0YSBmaWxl
cyBpbiBhIHN1YmRpcmVjdG9yeSBvZiB0aGUgY3VycmVudCBkaXJlY3RvcnkgbmFtZWQgYGBtZXRh
YGAuCiBPdXRwdXQKIC0tLS0tLQogCi13cHRydW5uZXIgdXNlcyB0aGUgOnB5Om1vZDpgbW96bG9n
YCBwYWNrYWdlIGZvciBvdXRwdXQuIFRoaXMKLXN0cnVjdHVyZXMgZXZlbnRzIHN1Y2ggYXMgdGVz
dCByZXN1bHRzIG9yIGxvZyBtZXNzYWdlcyBhcyBKU09OIG9iamVjdHMKLXRoYXQgY2FuIHRoZW4g
YmUgZmVkIHRvIG90aGVyIHRvb2xzIGZvciBpbnRlcnByZXRhdGlvbi4gTW9yZSBkZXRhaWxzCi1h
Ym91dCB0aGUgbWVzc2FnZSBmb3JtYXQgYXJlIGdpdmVuIGluIHRoZQotOnB5Om1vZDpgbW96bG9n
YCBkb2N1bWVudGF0aW9uLgord3B0cnVubmVyIHVzZXMgYHRoZSBtb3psb2cgcGFja2FnZQorPGh0
dHBzOi8vZmlyZWZveC1zb3VyY2UtZG9jcy5tb3ppbGxhLm9yZy9tb3piYXNlL21vemxvZy5odG1s
PmBfKSBmb3IKK291dHB1dC4gVGhpcyBzdHJ1Y3R1cmVzIGV2ZW50cyBzdWNoIGFzIHRlc3QgcmVz
dWx0cyBvciBsb2cgbWVzc2FnZXMgYXMKK0pTT04gb2JqZWN0cyB0aGF0IGNhbiB0aGVuIGJlIGZl
ZCB0byBvdGhlciB0b29scyBmb3IKK2ludGVycHJldGF0aW9uLiBNb3JlIGRldGFpbHMgYWJvdXQg
dGhlIG1lc3NhZ2UgZm9ybWF0IGFyZSBnaXZlbiBpbgorYHRoZSBtb3psb2cgZG9jdW1lbnRhdGlv
bgorPGh0dHBzOi8vZmlyZWZveC1zb3VyY2UtZG9jcy5tb3ppbGxhLm9yZy9tb3piYXNlL21vemxv
Zy5odG1sPmBfLgogCiBCeSBkZWZhdWx0IHRoZSByYXcgSlNPTiBtZXNzYWdlcyBhcmUgZHVtcGVk
IHRvIHN0ZG91dC4gVGhpcyBpcwogY29udmVuaWVudCBmb3IgcGlwaW5nIGludG8gb3RoZXIgdG9v
bHMsIGJ1dCBub3QgaWRlYWwgZm9yIGh1bWFucwotcmVhZGluZyB0aGUgb3V0cHV0LiA6cHk6bW9k
OmBtb3psb2dgIGNvbWVzIHdpdGggc2V2ZXJhbCBvdGhlcgotZm9ybWF0dGVycywgd2hpY2ggYXJl
IGFjY2Vzc2libGUgdGhyb3VnaCBjb21tYW5kIGxpbmUgb3B0aW9ucy4gVGhlCi1nZW5lcmFsIGZv
cm1hdCBvZiB0aGVzZSBvcHRpb25zIGlzIGBgLS1sb2ctbmFtZT1kZXN0YGAsIHdoZXJlIGBgbmFt
ZWBgCi1pcyB0aGUgbmFtZSBvZiB0aGUgZm9ybWF0IGFuZCBgYGRlc3RgYCBpcyBhIHBhdGggdG8g
YSBkZXN0aW5hdGlvbgotZmlsZSwgb3IgYGAtYGAgZm9yIHN0ZG91dC4gVGhlIHJhdyBKU09OIGRh
dGEgaXMgd3JpdHRlbiBieSB0aGUgYGByYXdgYAotZm9ybWF0dGVyIHNvLCB0aGUgZGVmYXVsdCBz
ZXR1cCBjb3JyZXNwb25kcyB0byBgYC0tbG9nLXJhdz0tYGAuCityZWFkaW5nIHRoZSBvdXRwdXQu
IGBtb3psb2cKKzxodHRwczovL2ZpcmVmb3gtc291cmNlLWRvY3MubW96aWxsYS5vcmcvbW96YmFz
ZS9tb3psb2cuaHRtbD5gXyBjb21lcword2l0aCBzZXZlcmFsIG90aGVyIGZvcm1hdHRlcnMsIHdo
aWNoIGFyZSBhY2Nlc3NpYmxlIHRocm91Z2ggY29tbWFuZAorbGluZSBvcHRpb25zLiBUaGUgZ2Vu
ZXJhbCBmb3JtYXQgb2YgdGhlc2Ugb3B0aW9ucyBpcworYGAtLWxvZy1uYW1lPWRlc3RgYCwgd2hl
cmUgYGBuYW1lYGAgaXMgdGhlIG5hbWUgb2YgdGhlIGZvcm1hdCBhbmQKK2BgZGVzdGBgIGlzIGEg
cGF0aCB0byBhIGRlc3RpbmF0aW9uIGZpbGUsIG9yIGBgLWBgIGZvciBzdGRvdXQuIFRoZSByYXcK
K0pTT04gZGF0YSBpcyB3cml0dGVuIGJ5IHRoZSBgYHJhd2BgIGZvcm1hdHRlciBzbywgdGhlIGRl
ZmF1bHQgc2V0dXAKK2NvcnJlc3BvbmRzIHRvIGBgLS1sb2ctcmF3PS1gYC4KIAogQSByZWFzb25h
YmxlIG91dHB1dCBmb3JtYXQgZm9yIGh1bWFucyBpcyBwcm92aWRlZCBhcyBgYG1hY2hgYC4gU28g
aW4KIG9yZGVyIHRvIG91dHB1dCB0aGUgZnVsbCByYXcgbG9nIHRvIGEgZmlsZSBhbmQgYSBodW1h
bi1yZWFkYWJsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvZG9jcy93M2MtaW1wb3J0LmxvZyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL2RvY3Mv
dzNjLWltcG9ydC5sb2cKaW5kZXggMmE0ZjFkMTljZmEuLjI4YWZjMDFhZTA4IDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1
bm5lci9kb2NzL3czYy1pbXBvcnQubG9nCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL2RvY3MvdzNjLWltcG9ydC5sb2cKQEAg
LTE0LDExICsxNCw4IEBAIFByb3BlcnR5IHZhbHVlcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVz
OgogTm9uZQogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiBMaXN0IG9mIGZpbGVzOgotL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL2RvY3MvTWFrZWZp
bGUKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dw
dHJ1bm5lci9kb2NzL2FyY2hpdGVjdHVyZS5zdmcKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci9kb2NzL2NvbmYucHkKIC9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci9kb2Nz
L2Rlc2lnbi5yc3QKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3dwdHJ1bm5lci9kb2NzL2V4cGVjdGF0aW9uLnJzdAotL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL2RvY3MvaW5kZXgucnN0
Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRy
dW5uZXIvZG9jcy9tYWtlLmJhdAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL2RvY3MvaW50ZXJuYWxzLnJzdAogL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL2RvY3MvdXNh
Z2UucnN0CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci9yZXF1aXJlbWVudHMudHh0IGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvcmVxdWlyZW1lbnRz
LnR4dAppbmRleCBmY2I1OTIyZDEwZC4uM2NkMDE0NDZlMjUgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3JlcXVp
cmVtZW50cy50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy93cHRydW5uZXIvcmVxdWlyZW1lbnRzLnR4dApAQCAtMSw1ICsxLDggQEAKLWh0
bWw1bGliID09IDEuMC4xCi1tb3ppbmZvID09IDAuMTAKLW1vemxvZz09My44Ci1tb3pkZWJ1ZyA9
PSAwLjEKLXVybGxpYjNbc2VjdXJlXSA9PSAxLjIyCitodG1sNWxpYj09MS4wLjEKK21vemluZm89
PTEuMS4wCittb3psb2c9PTUuMAorbW96ZGVidWc9PTAuMS4xCitwaWxsb3c9PTYuMi4xCit1cmxs
aWIzW3NlY3VyZV09PTEuMjUuNworcmVxdWVzdHM9PTIuMjIuMAorc2l4PT0xLjEzLjAKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
d3B0cnVubmVyL3JlcXVpcmVtZW50c19hbmRyb2lkX3dlYnZpZXcudHh0IGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvcmVxdWlyZW1l
bnRzX2FuZHJvaWRfd2Vidmlldy50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAuLjQ3MGFhZjlhOTM5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvcmVxdWlyZW1lbnRzX2Fu
ZHJvaWRfd2Vidmlldy50eHQKQEAgLTAsMCArMSBAQAorbW96cHJvY2Vzcz09MS4wLjAKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
d3B0cnVubmVyL3JlcXVpcmVtZW50c19jaHJvbWUudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvcmVxdWlyZW1lbnRzX2Nocm9t
ZS50eHQKaW5kZXggMjJhMDc1MzI2NTcuLjQ3MGFhZjlhOTM5IDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci9yZXF1
aXJlbWVudHNfY2hyb21lLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci9yZXF1aXJlbWVudHNfY2hyb21lLnR4dApAQCAt
MSwyICsxIEBACi1tb3pwcm9jZXNzID09IDAuMjYKLXNlbGVuaXVtPT0zLjE0LjAKK21venByb2Nl
c3M9PTEuMC4wCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci9yZXF1aXJlbWVudHNfY2hyb21lX2FuZHJvaWQudHh0
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRy
dW5uZXIvcmVxdWlyZW1lbnRzX2Nocm9tZV9hbmRyb2lkLnR4dAppbmRleCAyMmEwNzUzMjY1Ny4u
NDcwYWFmOWE5MzkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3JlcXVpcmVtZW50c19jaHJvbWVfYW5kcm9pZC50
eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy93cHRydW5uZXIvcmVxdWlyZW1lbnRzX2Nocm9tZV9hbmRyb2lkLnR4dApAQCAtMSwyICsxIEBA
Ci1tb3pwcm9jZXNzID09IDAuMjYKLXNlbGVuaXVtPT0zLjE0LjAKK21venByb2Nlc3M9PTEuMC4w
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3dwdHJ1bm5lci9yZXF1aXJlbWVudHNfY2hyb21lX2lvcy50eHQgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci9yZXF1aXJl
bWVudHNfY2hyb21lX2lvcy50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAuLjQ3MGFhZjlhOTM5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvcmVxdWlyZW1lbnRzX2Nocm9t
ZV9pb3MudHh0CkBAIC0wLDAgKzEgQEAKK21venByb2Nlc3M9PTEuMC4wCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5l
ci9yZXF1aXJlbWVudHNfZWRnZS50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci9yZXF1aXJlbWVudHNfZWRnZS50eHQKaW5kZXgg
MjJhMDc1MzI2NTcuLjFiZjZlZjMyYWQ0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci9yZXF1aXJlbWVudHNfZWRn
ZS50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy93cHRydW5uZXIvcmVxdWlyZW1lbnRzX2VkZ2UudHh0CkBAIC0xLDIgKzEsMiBAQAotbW96
cHJvY2VzcyA9PSAwLjI2Ci1zZWxlbml1bT09My4xNC4wCittb3pwcm9jZXNzPT0xLjAuMAorc2Vs
ZW5pdW09PTMuMTQxLjAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3JlcXVpcmVtZW50c19lZGdlX2Nocm9taXVt
LnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
d3B0cnVubmVyL3JlcXVpcmVtZW50c19lZGdlX2Nocm9taXVtLnR4dApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMC4uNzBjMTI0NDMyNDMKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5l
ci9yZXF1aXJlbWVudHNfZWRnZV9jaHJvbWl1bS50eHQKQEAgLTAsMCArMSBAQAorbW96cHJvY2Vz
cz09MS4wLjANCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci9yZXF1aXJlbWVudHNfZXBpcGhhbnkudHh0IGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIv
cmVxdWlyZW1lbnRzX2VwaXBoYW55LnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMC4uNDcwYWFmOWE5MzkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci9yZXF1aXJlbWVudHNf
ZXBpcGhhbnkudHh0CkBAIC0wLDAgKzEgQEAKK21venByb2Nlc3M9PTEuMC4wCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1
bm5lci9yZXF1aXJlbWVudHNfZmlyZWZveC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci9yZXF1aXJlbWVudHNfZmlyZWZveC50
eHQKaW5kZXggZjFlNmE4NTg1Y2EuLjRjYmI3YTVlYzAyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci9yZXF1aXJl
bWVudHNfZmlyZWZveC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvcmVxdWlyZW1lbnRzX2ZpcmVmb3gudHh0CkBAIC0x
LDkgKzEsMTEgQEAKLW1hcmlvbmV0dGVfZHJpdmVyPT0yLjYuMAotbW96cHJvZmlsZT09MS4xLjAK
LW1venByb2Nlc3MgPT0gMC4yNgotbW96Y3Jhc2ggPT0gMS4wCi1tb3pydW5uZXIgPT0gNy4wLjAK
LW1vemxlYWsgPT0gMC4xCi1tb3ppbnN0YWxsPT0xLjE2LjAKLW1vemRvd25sb2FkPT0xLjI0Ci0K
K21hcmlvbmV0dGVfZHJpdmVyPT0zLjAuMAorbW96Y3Jhc2g9PTEuMS4wCittb3pkb3dubG9hZD09
MS4yNi4wCittb3ppbnN0YWxsPT0yLjAuMAorbW96bGVhaz09MC4yCittb3puZXR3b3JrPT0wLjI3
Cittb3pwcm9jZXNzPT0xLjAuMAorbW96cHJvZmlsZT09Mi40LjAKK21venJ1bm5lcj09Ny43LjAK
K21venZlcnNpb249PTIuMi4wCitwc3V0aWw9PTUuNi43CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci9yZXF1aXJl
bWVudHNfaWUudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy93cHRydW5uZXIvcmVxdWlyZW1lbnRzX2llLnR4dAppbmRleCAyMmEwNzUzMjY1Ny4u
MWJmNmVmMzJhZDQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3JlcXVpcmVtZW50c19pZS50eHQKKysrIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIv
cmVxdWlyZW1lbnRzX2llLnR4dApAQCAtMSwyICsxLDIgQEAKLW1venByb2Nlc3MgPT0gMC4yNgot
c2VsZW5pdW09PTMuMTQuMAorbW96cHJvY2Vzcz09MS4wLjAKK3NlbGVuaXVtPT0zLjE0MS4wCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3dwdHJ1bm5lci9yZXF1aXJlbWVudHNfb3BlcmEudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvcmVxdWlyZW1lbnRzX29w
ZXJhLnR4dAppbmRleCAyMmEwNzUzMjY1Ny4uMWJmNmVmMzJhZDQgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3Jl
cXVpcmVtZW50c19vcGVyYS50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvcmVxdWlyZW1lbnRzX29wZXJhLnR4dApAQCAt
MSwyICsxLDIgQEAKLW1venByb2Nlc3MgPT0gMC4yNgotc2VsZW5pdW09PTMuMTQuMAorbW96cHJv
Y2Vzcz09MS4wLjAKK3NlbGVuaXVtPT0zLjE0MS4wCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci9yZXF1aXJlbWVu
dHNfc2FmYXJpLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvd3B0cnVubmVyL3JlcXVpcmVtZW50c19zYWZhcmkudHh0CmluZGV4IDVhMWQyNmI4
YjliLi40NzBhYWY5YTkzOSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvcmVxdWlyZW1lbnRzX3NhZmFyaS50eHQK
KysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93
cHRydW5uZXIvcmVxdWlyZW1lbnRzX3NhZmFyaS50eHQKQEAgLTEsMiArMSBAQAotbW96cHJvY2Vz
cyA9PSAwLjI2Ci1zZWxlbml1bT09My4xMy4wCittb3pwcm9jZXNzPT0xLjAuMApkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRy
dW5uZXIvcmVxdWlyZW1lbnRzX3NhdWNlLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3JlcXVpcmVtZW50c19zYXVjZS50eHQK
aW5kZXggNzdhNzQyMjI0MzMuLjMyYjVmNjRkMTRmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci9yZXF1aXJlbWVu
dHNfc2F1Y2UudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvd3B0cnVubmVyL3JlcXVpcmVtZW50c19zYXVjZS50eHQKQEAgLTEsMyArMSwz
IEBACi1tb3pwcm9jZXNzID09IDAuMjYKLXNlbGVuaXVtPT0zLjE0LjAKLXJlcXVlc3RzPT0yLjE5
LjEKK21venByb2Nlc3M9PTEuMC4wCitzZWxlbml1bT09My4xNDEuMAorcmVxdWVzdHM9PTIuMjIu
MApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy93cHRydW5uZXIvcmVxdWlyZW1lbnRzX3NlcnZvLnR4dCBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3JlcXVpcmVtZW50
c19zZXJ2by50eHQKaW5kZXggOTExNWI3YWM0ZTguLjQ3MGFhZjlhOTM5IDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5l
ci9yZXF1aXJlbWVudHNfc2Vydm8udHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3JlcXVpcmVtZW50c19zZXJ2by50eHQK
QEAgLTEgKzEgQEAKLW1venByb2Nlc3MgPT0gMC4yNgorbW96cHJvY2Vzcz09MS4wLjAKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
d3B0cnVubmVyL3JlcXVpcmVtZW50c193ZWJraXQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvcmVxdWlyZW1lbnRzX3dlYmtp
dC50eHQKaW5kZXggMjVjYzU4NDZlZTcuLjQ3MGFhZjlhOTM5IDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci9yZXF1
aXJlbWVudHNfd2Via2l0LnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci9yZXF1aXJlbWVudHNfd2Via2l0LnR4dApAQCAt
MSwyICsxIEBACi1tb3pwcm9jZXNzID09IDAuMjYKLXNlbGVuaXVtID09IDMuOS4wCittb3pwcm9j
ZXNzPT0xLjAuMApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvc2V0dXAucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci9zZXR1cC5weQppbmRleCA2
M2QzZWRkZTI0NC4uYWI5NmJkMTAzNTcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3NldHVwLnB5CisrKyBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVy
L3NldHVwLnB5CkBAIC0yLDYgKzIsOCBAQAogIyBMaWNlbnNlLCB2LiAyLjAuIElmIGEgY29weSBv
ZiB0aGUgTVBMIHdhcyBub3QgZGlzdHJpYnV0ZWQgd2l0aCB0aGlzIGZpbGUsCiAjIFlvdSBjYW4g
b2J0YWluIG9uZSBhdCBodHRwOi8vbW96aWxsYS5vcmcvTVBMLzIuMC8uCiAKK2Zyb20gX19mdXR1
cmVfXyBpbXBvcnQgcHJpbnRfZnVuY3Rpb24KKwogaW1wb3J0IGdsb2IKIGltcG9ydCBvcwogaW1w
b3J0IHN5cwpAQCAtNTUsMTcgKzU3LDE2IEBAIHNldHVwKG5hbWU9UEFDS0FHRV9OQU1FLAogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJwcmVmcy8qIl19LAogICAgICAgaW5jbHVk
ZV9wYWNrYWdlX2RhdGE9VHJ1ZSwKICAgICAgIGRhdGFfZmlsZXM9WygicmVxdWlyZW1lbnRzIiwg
cmVxdWlyZW1lbnRzX2ZpbGVzKV0sCi0gICAgICBpbnN0YWxsX3JlcXVpcmVzPWRlcHMKICAgICAg
ICkKIAogaWYgImluc3RhbGwiIGluIHN5cy5hcmd2OgogICAgIHBhdGggPSBvcy5wYXRoLnJlbHBh
dGgob3MucGF0aC5qb2luKHN5cy5wcmVmaXgsICJyZXF1aXJlbWVudHMiKSwgb3MuY3VyZGlyKQot
ICAgIHByaW50IHRleHR3cmFwLmZpbGwoIiIiSW4gb3JkZXIgdG8gdXNlIHdpdGggb25lIG9mIHRo
ZSBidWlsdC1pbiBicm93c2VyCisgICAgcHJpbnQodGV4dHdyYXAuZmlsbCgiIiJJbiBvcmRlciB0
byB1c2Ugd2l0aCBvbmUgb2YgdGhlIGJ1aWx0LWluIGJyb3dzZXIKIHByb2R1Y3RzLCB5b3Ugd2ls
bCBuZWVkIHRvIGluc3RhbGwgdGhlIGV4dHJhIGRlcGVuZGVuY2llcy4gVGhlc2UgYXJlIHByb3Zp
ZGVkCiBhcyByZXF1aXJlbWVudHNfW25hbWVdLnR4dCBpbiB0aGUgJXMgZGlyZWN0b3J5IGFuZCBj
YW4gYmUgaW5zdGFsbGVkIHVzaW5nCi1lLmcuIiIiICUgcGF0aCwgODApCitlLmcuIiIiICUgcGF0
aCwgODApKQogCi0gICAgcHJpbnQgIiIiCisgICAgcHJpbnQoIiIiCiAKIHBpcCBpbnN0YWxsIC1y
ICVzL3JlcXVpcmVtZW50c19maXJlZm94LnR4dAotIiIiICUgcGF0aAorIiIiICUgcGF0aCkKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvd3B0cnVubmVyL3Rlc3QvdGVzdC5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3Rlc3QvdGVzdC5weQppbmRleCA5OTYwZGNk
MWUyOC4uOGYzMjNhMzM4NmMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3Rlc3QvdGVzdC5weQorKysgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci90
ZXN0L3Rlc3QucHkKQEAgLTEsMyArMSw0IEBACitmcm9tIF9fZnV0dXJlX18gaW1wb3J0IHByaW50
X2Z1bmN0aW9uCiBpbXBvcnQgQ29uZmlnUGFyc2VyCiBpbXBvcnQgYXJncGFyc2UKIGltcG9ydCBv
cwpAQCAtMTUzLDcgKzE1NCw3IEBAIGRlZiBtYWluKCk6CiAgICAgICAgIGlmIGFyZ3MucGRiOgog
ICAgICAgICAgICAgaW1wb3J0IHBkYgogICAgICAgICAgICAgaW1wb3J0IHRyYWNlYmFjawotICAg
ICAgICAgICAgcHJpbnQgdHJhY2ViYWNrLmZvcm1hdF9leGMoKQorICAgICAgICAgICAgcHJpbnQo
dHJhY2ViYWNrLmZvcm1hdF9leGMoKSkKICAgICAgICAgICAgIHBkYi5wb3N0X21vcnRlbSgpCiAg
ICAgICAgIGVsc2U6CiAgICAgICAgICAgICByYWlzZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvdG94LmluaSBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVu
bmVyL3RveC5pbmkKaW5kZXggZmE3OTg1ZWM4MGQuLmFkMzUwMmUwMmE5IDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5l
ci90b3guaW5pCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvd3B0cnVubmVyL3RveC5pbmkKQEAgLTIsNyArMiw4IEBACiB4ZmFpbF9zdHJpY3Q9
dHJ1ZQogCiBbdG94XQotZW52bGlzdCA9IHtweTI3fS17YmFzZSxjaHJvbWUsZWRnZSxmaXJlZm94
LGllLG9wZXJhLHNhZmFyaSxzYXVjZSxzZXJ2b30scHkyNy1mbGFrZTgKK2Vudmxpc3QgPSBweTI3
LXtiYXNlLGNocm9tZSxlZGdlLGZpcmVmb3gsaWUsb3BlcmEsc2FmYXJpLHNhdWNlLHNlcnZvLHdl
YmtpdCx3ZWJraXRndGtfbWluaWJyb3dzZXIsZXBpcGhhbnl9LHB5MzYtYmFzZQorc2tpcF9taXNz
aW5nX2ludGVycHJldGVycyA9IHRydWUKIAogW3Rlc3RlbnZdCiBkZXBzID0KQEAgLTE5LDE4ICsy
MCwxMyBAQCBkZXBzID0KICAgICAgc2FmYXJpOiAtcnt0b3hpbmlkaXJ9L3JlcXVpcmVtZW50c19z
YWZhcmkudHh0CiAgICAgIHNhdWNlOiAtcnt0b3hpbmlkaXJ9L3JlcXVpcmVtZW50c19zYXVjZS50
eHQKICAgICAgc2Vydm86IC1ye3RveGluaWRpcn0vcmVxdWlyZW1lbnRzX3NlcnZvLnR4dAorICAg
ICB3ZWJraXQ6IC1ye3RveGluaWRpcn0vcmVxdWlyZW1lbnRzX3dlYmtpdC50eHQKKyAgICAgd2Vi
a2l0Z3RrX21pbmlicm93c2VyOiAtcnt0b3hpbmlkaXJ9L3JlcXVpcmVtZW50c193ZWJraXQudHh0
CisgICAgIGVwaXBoYW55OiAtcnt0b3hpbmlkaXJ9L3JlcXVpcmVtZW50c19lcGlwaGFueS50eHQK
IAotY29tbWFuZHMgPSBweXRlc3Qge3Bvc2FyZ3M6LS1jb3Z9Citjb21tYW5kcyA9IHB5dGVzdCB7
cG9zYXJnc30KIAogc2V0ZW52ID0gQ1VSUkVOVF9UT1hfRU5WID0ge2Vudm5hbWV9CiAKLVt0ZXN0
ZW52OnB5MjctZmxha2U4XQotIyBmbGFrZTggdmVyc2lvbnMgc2hvdWxkIGJlIGtlcHQgaW4gc3lu
YyBhY3Jvc3MgdG9vbHMvdG94LmluaSwgdG9vbHMvd3B0L3RveC5pbmksIGFuZCB0b29scy93cHRy
dW5uZXIvdG94LmluaQotZGVwcyA9Ci0gICAgIGZsYWtlOD09My41LjAKLSAgICAgcHljb2Rlc3R5
bGU9PTIuMy4xCi0gICAgIHB5Zmxha2VzPT0xLjYuMAotICAgICBwZXA4LW5hbWluZz09MC40LjEK
LQotY29tbWFuZHMgPQotICAgICBmbGFrZTggLS1hcHBlbmQtY29uZmlnPS4uL2ZsYWtlOC5pbmkK
K3Bhc3NlbnYgPQorICBUQVNLQ0xVU1RFUl9ST09UX1VSTApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvdzNjLWlt
cG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3dwdHJ1bm5lci93M2MtaW1wb3J0LmxvZwppbmRleCA0MzQ1Y2NlNzhkNC4uNDA2YTVmYWUy
NTYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvd3B0cnVubmVyL3czYy1pbXBvcnQubG9nCisrKyBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3czYy1pbXBvcnQubG9n
CkBAIC0xOCw5ICsxOCwxMyBAQCBMaXN0IG9mIGZpbGVzOgogL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL01BTklGRVNULmluCiAvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIv
UkVBRE1FLnJzdAogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvd3B0cnVubmVyL3JlcXVpcmVtZW50cy50eHQKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci9yZXF1aXJlbWVudHNfYW5kcm9p
ZF93ZWJ2aWV3LnR4dAogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvd3B0cnVubmVyL3JlcXVpcmVtZW50c19jaHJvbWUudHh0CiAvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvcmVxdWlyZW1l
bnRzX2Nocm9tZV9hbmRyb2lkLnR4dAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3JlcXVpcmVtZW50c19jaHJvbWVfaW9zLnR4dAog
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVu
bmVyL3JlcXVpcmVtZW50c19lZGdlLnR4dAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3JlcXVpcmVtZW50c19lZGdlX2Nocm9taXVt
LnR4dAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
d3B0cnVubmVyL3JlcXVpcmVtZW50c19lcGlwaGFueS50eHQKIC9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci9yZXF1aXJlbWVudHNfZmly
ZWZveC50eHQKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3dwdHJ1bm5lci9yZXF1aXJlbWVudHNfaWUudHh0CiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvcmVxdWlyZW1lbnRzX29wZXJh
LnR4dApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2Jyb3dzZXJzL19faW5pdF9fLnB5IGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIv
d3B0cnVubmVyL2Jyb3dzZXJzL19faW5pdF9fLnB5CmluZGV4IGQ4NjgyZTE2YTU1Li45NTdkMmE2
ODlhYyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2Jyb3dzZXJzL19faW5pdF9fLnB5CisrKyBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVu
bmVyL3dwdHJ1bm5lci9icm93c2Vycy9fX2luaXRfXy5weQpAQCAtMTUsMjIgKzE1LDI4IEBAIGEg
ZGljdGlvbmFyeSB3aXRoIHRoZSBmaWVsZHMKICJleGVjdXRvcl9rd2FyZ3MiOiBTdHJpbmcgbmFt
aW5nIGEgZnVuY3Rpb24gdGhhdCB0YWtlcyBodHRwIHNlcnZlciB1cmwgYW5kCiAgICAgICAgICAg
ICAgICAgICAgdGltZW91dCBtdWx0aXBsaWVyIGFuZCByZXR1cm5zIGt3YXJncyB0byB1c2Ugd2hl
biBjcmVhdGluZwogICAgICAgICAgICAgICAgICAgIHRoZSBleGVjdXRvciBjbGFzcy4KLSJlbnZf
b3B0aW9ucyI6IFN0cmluZyBuYW1pbmcgYSBmdW50aW9uIG9mIG5vIGFyZ3VtZW50cyB0aGF0IHJl
dHVybnMgdGhlCisiZW52X29wdGlvbnMiOiBTdHJpbmcgbmFtaW5nIGEgZnVuY3Rpb24gb2Ygbm8g
YXJndW1lbnRzIHRoYXQgcmV0dXJucyB0aGUKICAgICAgICAgICAgICAgIGFyZ3VtZW50cyBwYXNz
ZWQgdG8gdGhlIFRlc3RFbnZpcm9ubWVudC4KIAogQWxsIGNsYXNzZXMgYW5kIGZ1bmN0aW9ucyBu
YW1lZCBpbiB0aGUgYWJvdmUgZGljdCBtdXN0IGJlIGltcG9ydGVkIGludG8gdGhlCiBtb2R1bGUg
Z2xvYmFsIHNjb3BlLgogIiIiCiAKLXByb2R1Y3RfbGlzdCA9IFsiY2hyb21lIiwKK3Byb2R1Y3Rf
bGlzdCA9IFsiYW5kcm9pZF93ZWJ2aWV3IiwKKyAgICAgICAgICAgICAgICAiY2hyb21lIiwKICAg
ICAgICAgICAgICAgICAiY2hyb21lX2FuZHJvaWQiLAorICAgICAgICAgICAgICAgICJjaHJvbWVf
aW9zIiwKKyAgICAgICAgICAgICAgICAiZWRnZWNocm9taXVtIiwKICAgICAgICAgICAgICAgICAi
ZWRnZSIsCi0gICAgICAgICAgICAgICAgImZlbm5lYyIsCisgICAgICAgICAgICAgICAgImVkZ2Vf
d2ViZHJpdmVyIiwKICAgICAgICAgICAgICAgICAiZmlyZWZveCIsCisgICAgICAgICAgICAgICAg
ImZpcmVmb3hfYW5kcm9pZCIsCiAgICAgICAgICAgICAgICAgImllIiwKICAgICAgICAgICAgICAg
ICAic2FmYXJpIiwKICAgICAgICAgICAgICAgICAic2F1Y2UiLAogICAgICAgICAgICAgICAgICJz
ZXJ2byIsCiAgICAgICAgICAgICAgICAgInNlcnZvZHJpdmVyIiwKICAgICAgICAgICAgICAgICAi
b3BlcmEiLAotICAgICAgICAgICAgICAgICJ3ZWJraXQiXQorICAgICAgICAgICAgICAgICJ3ZWJr
aXQiLAorICAgICAgICAgICAgICAgICJ3ZWJraXRndGtfbWluaWJyb3dzZXIiLAorICAgICAgICAg
ICAgICAgICJlcGlwaGFueSJdCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvYnJvd3NlcnMvYW5k
cm9pZF93ZWJ2aWV3LnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2Jyb3dzZXJzL2FuZHJvaWRfd2Vidmlldy5w
eQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uZGM2ODdiNDhlZDcKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvYnJvd3NlcnMvYW5kcm9pZF93ZWJ2aWV3LnB5
CkBAIC0wLDAgKzEsMTM0IEBACitpbXBvcnQgc3VicHJvY2VzcworCitmcm9tIC5iYXNlIGltcG9y
dCBCcm93c2VyLCBFeGVjdXRvckJyb3dzZXIsIHJlcXVpcmVfYXJnCitmcm9tIC5iYXNlIGltcG9y
dCBnZXRfdGltZW91dF9tdWx0aXBsaWVyICAgIyBub3FhOiBGNDAxCitmcm9tIC5jaHJvbWUgaW1w
b3J0IGV4ZWN1dG9yX2t3YXJncyBhcyBjaHJvbWVfZXhlY3V0b3Jfa3dhcmdzCitmcm9tIC4ud2Vi
ZHJpdmVyX3NlcnZlciBpbXBvcnQgQ2hyb21lRHJpdmVyU2VydmVyCitmcm9tIC4uZXhlY3V0b3Jz
LmV4ZWN1dG9yd2ViZHJpdmVyIGltcG9ydCAoV2ViRHJpdmVyVGVzdGhhcm5lc3NFeGVjdXRvciwg
ICMgbm9xYTogRjQwMQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IFdlYkRyaXZlclJlZlRlc3RFeGVjdXRvcikgICMgbm9xYTogRjQwMQorZnJvbSAuLmV4ZWN1dG9y
cy5leGVjdXRvcmNocm9tZSBpbXBvcnQgQ2hyb21lRHJpdmVyV2RzcGVjRXhlY3V0b3IgICMgbm9x
YTogRjQwMQorCisKK19fd3B0cnVubmVyX18gPSB7InByb2R1Y3QiOiAiYW5kcm9pZF93ZWJ2aWV3
IiwKKyAgICAgICAgICAgICAgICAgImNoZWNrX2FyZ3MiOiAiY2hlY2tfYXJncyIsCisgICAgICAg
ICAgICAgICAgICJicm93c2VyIjogIlN5c3RlbVdlYlZpZXdTaGVsbCIsCisgICAgICAgICAgICAg
ICAgICJleGVjdXRvciI6IHsidGVzdGhhcm5lc3MiOiAiV2ViRHJpdmVyVGVzdGhhcm5lc3NFeGVj
dXRvciIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAicmVmdGVzdCI6ICJXZWJEcml2
ZXJSZWZUZXN0RXhlY3V0b3IiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIndkc3Bl
YyI6ICJDaHJvbWVEcml2ZXJXZHNwZWNFeGVjdXRvciJ9LAorICAgICAgICAgICAgICAgICAiYnJv
d3Nlcl9rd2FyZ3MiOiAiYnJvd3Nlcl9rd2FyZ3MiLAorICAgICAgICAgICAgICAgICAiZXhlY3V0
b3Jfa3dhcmdzIjogImV4ZWN1dG9yX2t3YXJncyIsCisgICAgICAgICAgICAgICAgICJlbnZfZXh0
cmFzIjogImVudl9leHRyYXMiLAorICAgICAgICAgICAgICAgICAiZW52X29wdGlvbnMiOiAiZW52
X29wdGlvbnMiLAorICAgICAgICAgICAgICAgICAidGltZW91dF9tdWx0aXBsaWVyIjogImdldF90
aW1lb3V0X211bHRpcGxpZXIifQorCitfd3B0c2VydmVfcG9ydHMgPSBzZXQoKQorCisKK2RlZiBj
aGVja19hcmdzKCoqa3dhcmdzKToKKyAgICByZXF1aXJlX2FyZyhrd2FyZ3MsICJ3ZWJkcml2ZXJf
YmluYXJ5IikKKworCitkZWYgYnJvd3Nlcl9rd2FyZ3ModGVzdF90eXBlLCBydW5faW5mb19kYXRh
LCBjb25maWcsICoqa3dhcmdzKToKKyAgICByZXR1cm4geyJiaW5hcnkiOiBrd2FyZ3NbImJpbmFy
eSJdLAorICAgICAgICAgICAgImRldmljZV9zZXJpYWwiOiBrd2FyZ3NbImRldmljZV9zZXJpYWwi
XSwKKyAgICAgICAgICAgICJ3ZWJkcml2ZXJfYmluYXJ5Ijoga3dhcmdzWyJ3ZWJkcml2ZXJfYmlu
YXJ5Il0sCisgICAgICAgICAgICAid2ViZHJpdmVyX2FyZ3MiOiBrd2FyZ3MuZ2V0KCJ3ZWJkcml2
ZXJfYXJncyIpfQorCisKK2RlZiBleGVjdXRvcl9rd2FyZ3ModGVzdF90eXBlLCBzZXJ2ZXJfY29u
ZmlnLCBjYWNoZV9tYW5hZ2VyLCBydW5faW5mb19kYXRhLAorICAgICAgICAgICAgICAgICAgICAq
Kmt3YXJncyk6CisgICAgIyBVc2UgdXBkYXRlKCkgdG8gbW9kaWZ5IHRoZSBnbG9iYWwgbGlzdCBp
biBwbGFjZS4KKyAgICBfd3B0c2VydmVfcG9ydHMudXBkYXRlKHNldCgKKyAgICAgICAgc2VydmVy
X2NvbmZpZ1sncG9ydHMnXVsnaHR0cCddICsgc2VydmVyX2NvbmZpZ1sncG9ydHMnXVsnaHR0cHMn
XSArCisgICAgICAgIHNlcnZlcl9jb25maWdbJ3BvcnRzJ11bJ3dzJ10gKyBzZXJ2ZXJfY29uZmln
Wydwb3J0cyddWyd3c3MnXQorICAgICkpCisKKyAgICBleGVjdXRvcl9rd2FyZ3MgPSBjaHJvbWVf
ZXhlY3V0b3Jfa3dhcmdzKHRlc3RfdHlwZSwgc2VydmVyX2NvbmZpZywKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhY2hlX21hbmFnZXIsIHJ1bl9pbmZvX2Rh
dGEsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKmt3YXJn
cykKKyAgICBkZWwgZXhlY3V0b3Jfa3dhcmdzWyJjYXBhYmlsaXRpZXMiXVsiZ29vZzpjaHJvbWVP
cHRpb25zIl1bInByZWZzIl0KKyAgICBkZWwgZXhlY3V0b3Jfa3dhcmdzWyJjYXBhYmlsaXRpZXMi
XVsiZ29vZzpjaHJvbWVPcHRpb25zIl1bInVzZUF1dG9tYXRpb25FeHRlbnNpb24iXQorICAgIGNh
cGFiaWxpdGllcyA9IGV4ZWN1dG9yX2t3YXJnc1siY2FwYWJpbGl0aWVzIl0KKyAgICAjIE5vdGUg
dGhhdCBmb3IgV2ViVmlldywgd2UgbGF1bmNoIGEgdGVzdCBzaGVsbCBhbmQgaGF2ZSB0aGUgdGVz
dCBzaGVsbCB1c2UgV2ViVmlldy4KKyAgICAjIGh0dHBzOi8vY2hyb21pdW0uZ29vZ2xlc291cmNl
LmNvbS9jaHJvbWl1bS9zcmMvKy9IRUFEL2FuZHJvaWRfd2Vidmlldy9kb2NzL3dlYnZpZXctc2hl
bGwubWQKKyAgICBjYXBhYmlsaXRpZXNbImdvb2c6Y2hyb21lT3B0aW9ucyJdWyJhbmRyb2lkUGFj
a2FnZSJdID0gXAorICAgICAgICAib3JnLmNocm9taXVtLndlYnZpZXdfc2hlbGwiCisgICAgY2Fw
YWJpbGl0aWVzWyJnb29nOmNocm9tZU9wdGlvbnMiXVsiYW5kcm9pZEFjdGl2aXR5Il0gPSAiLldl
YlBsYXRmb3JtVGVzdHNBY3Rpdml0eSIKKyAgICBpZiBrd2FyZ3MuZ2V0KCdkZXZpY2Vfc2VyaWFs
Jyk6CisgICAgICAgIGNhcGFiaWxpdGllc1siZ29vZzpjaHJvbWVPcHRpb25zIl1bImFuZHJvaWRE
ZXZpY2VTZXJpYWwiXSA9IGt3YXJnc1snZGV2aWNlX3NlcmlhbCddCisKKyAgICAjIFdvcmthcm91
bmQ6IGRyaXZlci5xdWl0KCkgY2Fubm90IHF1aXQgU3lzdGVtV2ViVmlld1NoZWxsLgorICAgIGV4
ZWN1dG9yX2t3YXJnc1sicGF1c2VfYWZ0ZXJfdGVzdCJdID0gRmFsc2UKKyAgICAjIFdvcmthcm91
bmQ6IGRyaXZlci5jbG9zZSgpIGlzIG5vdCBzdXBwb3J0ZWQuCisgICAgZXhlY3V0b3Jfa3dhcmdz
WyJyZXN0YXJ0X2FmdGVyX3Rlc3QiXSA9IFRydWUKKyAgICBleGVjdXRvcl9rd2FyZ3NbImNsb3Nl
X2FmdGVyX2RvbmUiXSA9IEZhbHNlCisgICAgcmV0dXJuIGV4ZWN1dG9yX2t3YXJncworCisKK2Rl
ZiBlbnZfZXh0cmFzKCoqa3dhcmdzKToKKyAgICByZXR1cm4gW10KKworCitkZWYgZW52X29wdGlv
bnMoKToKKyAgICAjIGFsbG93IHRoZSB1c2Ugb2YgaG9zdC1yZXNvbHZlci1ydWxlcyBpbiBsaWV1
IG9mIG1vZGlmeWluZyAvZXRjL2hvc3RzIGZpbGUKKyAgICByZXR1cm4geyJzZXJ2ZXJfaG9zdCI6
ICIxMjcuMC4wLjEifQorCisKKyNUT0RPOiByZWZhY3RvciBjb21tb24gZWxlbWVudHMgb2YgU3lz
dGVtV2ViVmlld1NoZWxsIGFuZCBDaHJvbWVBbmRyb2lkQnJvd3NlcgorY2xhc3MgU3lzdGVtV2Vi
Vmlld1NoZWxsKEJyb3dzZXIpOgorICAgICIiIkNocm9tZSBpcyBiYWNrZWQgYnkgY2hyb21lZHJp
dmVyLCB3aGljaCBpcyBzdXBwbGllZCB0aHJvdWdoCisgICAgYGB3cHRydW5uZXIud2ViZHJpdmVy
LkNocm9tZURyaXZlclNlcnZlcmBgLgorICAgICIiIgorCisgICAgZGVmIF9faW5pdF9fKHNlbGYs
IGxvZ2dlciwgYmluYXJ5LCB3ZWJkcml2ZXJfYmluYXJ5PSJjaHJvbWVkcml2ZXIiLAorICAgICAg
ICAgICAgICAgICBkZXZpY2Vfc2VyaWFsPU5vbmUsCisgICAgICAgICAgICAgICAgIHdlYmRyaXZl
cl9hcmdzPU5vbmUpOgorICAgICAgICAiIiJDcmVhdGVzIGEgbmV3IHJlcHJlc2VudGF0aW9uIG9m
IENocm9tZS4gIFRoZSBgYmluYXJ5YCBhcmd1bWVudCBnaXZlcworICAgICAgICB0aGUgYnJvd3Nl
ciBiaW5hcnkgdG8gdXNlIGZvciB0ZXN0aW5nLiIiIgorICAgICAgICBCcm93c2VyLl9faW5pdF9f
KHNlbGYsIGxvZ2dlcikKKyAgICAgICAgc2VsZi5iaW5hcnkgPSBiaW5hcnkKKyAgICAgICAgc2Vs
Zi5kZXZpY2Vfc2VyaWFsID0gZGV2aWNlX3NlcmlhbAorICAgICAgICBzZWxmLnNlcnZlciA9IENo
cm9tZURyaXZlclNlcnZlcihzZWxmLmxvZ2dlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgYmluYXJ5PXdlYmRyaXZlcl9iaW5hcnksCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGFyZ3M9d2ViZHJpdmVyX2FyZ3MpCisgICAgICAgIHNl
bGYuc2V0dXBfYWRiX3JldmVyc2UoKQorCisgICAgZGVmIF9hZGJfcnVuKHNlbGYsIGFyZ3MpOgor
ICAgICAgICBjbWQgPSBbJ2FkYiddCisgICAgICAgIGlmIHNlbGYuZGV2aWNlX3NlcmlhbDoKKyAg
ICAgICAgICAgIGNtZC5leHRlbmQoWyctcycsIHNlbGYuZGV2aWNlX3NlcmlhbF0pCisgICAgICAg
IGNtZC5leHRlbmQoYXJncykKKyAgICAgICAgc2VsZi5sb2dnZXIuaW5mbygnICcuam9pbihjbWQp
KQorICAgICAgICBzdWJwcm9jZXNzLmNoZWNrX2NhbGwoY21kKQorCisgICAgZGVmIHNldHVwX2Fk
Yl9yZXZlcnNlKHNlbGYpOgorICAgICAgICBzZWxmLl9hZGJfcnVuKFsnd2FpdC1mb3ItZGV2aWNl
J10pCisgICAgICAgIHNlbGYuX2FkYl9ydW4oWydmb3J3YXJkJywgJy0tcmVtb3ZlLWFsbCddKQor
ICAgICAgICBzZWxmLl9hZGJfcnVuKFsncmV2ZXJzZScsICctLXJlbW92ZS1hbGwnXSkKKyAgICAg
ICAgIyAiYWRiIHJldmVyc2UiIGJhc2ljYWxseSBmb3J3YXJkcyBuZXR3b3JrIGNvbm5lY3Rpb24g
ZnJvbSBkZXZpY2UgdG8KKyAgICAgICAgIyBob3N0LgorICAgICAgICBmb3IgcG9ydCBpbiBfd3B0
c2VydmVfcG9ydHM6CisgICAgICAgICAgICBzZWxmLl9hZGJfcnVuKFsncmV2ZXJzZScsICd0Y3A6
JWQnICUgcG9ydCwgJ3RjcDolZCcgJSBwb3J0XSkKKworICAgIGRlZiBzdGFydChzZWxmLCAqKmt3
YXJncyk6CisgICAgICAgIHNlbGYuc2VydmVyLnN0YXJ0KGJsb2NrPUZhbHNlKQorCisgICAgZGVm
IHN0b3Aoc2VsZiwgZm9yY2U9RmFsc2UpOgorICAgICAgICBzZWxmLnNlcnZlci5zdG9wKGZvcmNl
PWZvcmNlKQorCisgICAgZGVmIHBpZChzZWxmKToKKyAgICAgICAgcmV0dXJuIHNlbGYuc2VydmVy
LnBpZAorCisgICAgZGVmIGlzX2FsaXZlKHNlbGYpOgorICAgICAgICAjIFRPRE8oYXRvKTogVGhp
cyBvbmx5IGluZGljYXRlcyB0aGUgZHJpdmVyIGlzIGFsaXZlLAorICAgICAgICAjIGFuZCBkb2Vz
bid0IHNheSBhbnl0aGluZyBhYm91dCB3aGV0aGVyIGEgYnJvd3NlciBzZXNzaW9uCisgICAgICAg
ICMgaXMgYWN0aXZlLgorICAgICAgICByZXR1cm4gc2VsZi5zZXJ2ZXIuaXNfYWxpdmUKKworICAg
IGRlZiBjbGVhbnVwKHNlbGYpOgorICAgICAgICBzZWxmLnN0b3AoKQorICAgICAgICBzZWxmLl9h
ZGJfcnVuKFsnZm9yd2FyZCcsICctLXJlbW92ZS1hbGwnXSkKKyAgICAgICAgc2VsZi5fYWRiX3J1
bihbJ3JldmVyc2UnLCAnLS1yZW1vdmUtYWxsJ10pCisKKyAgICBkZWYgZXhlY3V0b3JfYnJvd3Nl
cihzZWxmKToKKyAgICAgICAgcmV0dXJuIEV4ZWN1dG9yQnJvd3NlciwgeyJ3ZWJkcml2ZXJfdXJs
Ijogc2VsZi5zZXJ2ZXIudXJsfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2Jyb3dzZXJzL2Jh
c2UucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3dwdHJ1bm5lci93cHRydW5uZXIvYnJvd3NlcnMvYmFzZS5weQppbmRleCBkYzAzZWY3MTFiNi4u
NjU1MzQ0NTgxOTcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9icm93c2Vycy9iYXNlLnB5Cisr
KyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0
cnVubmVyL3dwdHJ1bm5lci9icm93c2Vycy9iYXNlLnB5CkBAIC0yLDEyICsyLDMyIEBAIGltcG9y
dCBvcwogaW1wb3J0IHBsYXRmb3JtCiBpbXBvcnQgc29ja2V0CiBmcm9tIGFiYyBpbXBvcnQgQUJD
TWV0YSwgYWJzdHJhY3RtZXRob2QKK2Zyb20gY29weSBpbXBvcnQgZGVlcGNvcHkKIAogZnJvbSAu
LndwdGNvbW1hbmRsaW5lIGltcG9ydCByZXF1aXJlX2FyZyAgIyBub3FhOiBGNDAxCiAKIGhlcmUg
PSBvcy5wYXRoLnNwbGl0KF9fZmlsZV9fKVswXQogCiAKK2RlZiBpbmhlcml0KHN1cGVyX21vZHVs
ZSwgY2hpbGRfZ2xvYmFscywgcHJvZHVjdF9uYW1lKToKKyAgICBzdXBlcl93cHRydW5uZXIgPSBz
dXBlcl9tb2R1bGUuX193cHRydW5uZXJfXworICAgIGNoaWxkX2dsb2JhbHNbIl9fd3B0cnVubmVy
X18iXSA9IGNoaWxkX3dwdHJ1bm5lciA9IGRlZXBjb3B5KHN1cGVyX3dwdHJ1bm5lcikKKworICAg
IGNoaWxkX3dwdHJ1bm5lclsicHJvZHVjdCJdID0gcHJvZHVjdF9uYW1lCisKKyAgICBmb3IgayBp
biAoImNoZWNrX2FyZ3MiLCAiYnJvd3NlciIsICJicm93c2VyX2t3YXJncyIsICJleGVjdXRvcl9r
d2FyZ3MiLAorICAgICAgICAgICAgICAiZW52X2V4dHJhcyIsICJlbnZfb3B0aW9ucyIsICJ0aW1l
b3V0X211bHRpcGxpZXIiKToKKyAgICAgICAgYXR0ciA9IHN1cGVyX3dwdHJ1bm5lcltrXQorICAg
ICAgICBjaGlsZF9nbG9iYWxzW2F0dHJdID0gZ2V0YXR0cihzdXBlcl9tb2R1bGUsIGF0dHIpCisK
KyAgICBmb3IgdiBpbiBzdXBlcl9tb2R1bGUuX193cHRydW5uZXJfX1siZXhlY3V0b3IiXS52YWx1
ZXMoKToKKyAgICAgICAgY2hpbGRfZ2xvYmFsc1t2XSA9IGdldGF0dHIoc3VwZXJfbW9kdWxlLCB2
KQorCisgICAgaWYgInJ1bl9pbmZvX2V4dHJhcyIgaW4gc3VwZXJfd3B0cnVubmVyOgorICAgICAg
ICBhdHRyID0gc3VwZXJfd3B0cnVubmVyWyJydW5faW5mb19leHRyYXMiXQorICAgICAgICBjaGls
ZF9nbG9iYWxzW2F0dHJdID0gZ2V0YXR0cihzdXBlcl9tb2R1bGUsIGF0dHIpCisKKwogZGVmIGNt
ZF9hcmcobmFtZSwgdmFsdWU9Tm9uZSk6CiAgICAgcHJlZml4ID0gIi0iIGlmIHBsYXRmb3JtLnN5
c3RlbSgpID09ICJXaW5kb3dzIiBlbHNlICItLSIKICAgICBydiA9IHByZWZpeCArIG5hbWUKQEAg
LTE2LDI3ICszNiw0OCBAQCBkZWYgY21kX2FyZyhuYW1lLCB2YWx1ZT1Ob25lKToKICAgICByZXR1
cm4gcnYKIAogCi1kZWYgZ2V0X2ZyZWVfcG9ydChzdGFydF9wb3J0LCBleGNsdWRlPU5vbmUpOgot
ICAgICIiIkdldCB0aGUgZmlyc3QgcG9ydCBudW1iZXIgYWZ0ZXIgc3RhcnRfcG9ydCAoaW5jbHVz
aXZlKSB0aGF0IGlzCi0gICAgbm90IGN1cnJlbnRseSBib3VuZC4KK2RlZiBtYXliZV9hZGRfYXJn
cyhyZXF1aXJlZF9hcmdzLCBjdXJyZW50X2FyZ3MpOgorICAgIGZvciByZXF1aXJlZF9hcmcgaW4g
cmVxdWlyZWRfYXJnczoKKyAgICAgICAgIyBJZiB0aGUgYXJnIGlzIGluIHRoZSBmb3JtIG9mICJ2
YXJpYWJsZT12YWx1ZSIsIG9ubHkgYWRkIGl0IGlmCisgICAgICAgICMgbm8gYXJnIHdpdGggYW5v
dGhlciB2YWx1ZSBmb3IgInZhcmlhYmxlIiBpcyBhbHJlYWR5IHRoZXJlLgorICAgICAgICBpZiAi
PSIgaW4gcmVxdWlyZWRfYXJnOgorICAgICAgICAgICAgcmVxdWlyZWRfYXJnX3ByZWZpeCA9ICIl
cz0iICUgcmVxdWlyZWRfYXJnLnNwbGl0KCI9IilbMF0KKyAgICAgICAgICAgIGlmIG5vdCBhbnko
aXRlbS5zdGFydHN3aXRoKHJlcXVpcmVkX2FyZ19wcmVmaXgpIGZvciBpdGVtIGluIGN1cnJlbnRf
YXJncyk6CisgICAgICAgICAgICAgICAgY3VycmVudF9hcmdzLmFwcGVuZChyZXF1aXJlZF9hcmcp
CisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBpZiByZXF1aXJlZF9hcmcgbm90IGluIGN1cnJl
bnRfYXJnczoKKyAgICAgICAgICAgICAgICBjdXJyZW50X2FyZ3MuYXBwZW5kKHJlcXVpcmVkX2Fy
ZykKKyAgICByZXR1cm4gY3VycmVudF9hcmdzCisKKworZGVmIGNlcnRpZmljYXRlX2RvbWFpbl9s
aXN0KGxpc3Rfb2ZfZG9tYWlucywgY2VydGlmaWNhdGVfZmlsZSk6CisgICAgIiIiQnVpbGQgYSBs
aXN0IG9mIGRvbWFpbnMgd2hlcmUgY2VydGlmaWNhdGVfZmlsZSBzaG91bGQgYmUgdXNlZCIiIgor
ICAgIGNlcnRfbGlzdCA9IFtdCisgICAgZm9yIGRvbWFpbiBpbiBsaXN0X29mX2RvbWFpbnM6Cisg
ICAgICAgIGNlcnRfbGlzdC5hcHBlbmQoeyJob3N0IjogZG9tYWluLCAiY2VydGlmaWNhdGVGaWxl
IjogY2VydGlmaWNhdGVfZmlsZX0pCisgICAgcmV0dXJuIGNlcnRfbGlzdAorCiAKLSAgICA6cGFy
YW0gc3RhcnRfcG9ydDogSW50ZWdlciBwb3J0IG51bWJlciBhdCB3aGljaCB0byBzdGFydCB0ZXN0
aW5nLgotICAgIDpwYXJhbSBleGNsdWRlOiBTZXQgb2YgcG9ydCBudW1iZXJzIHRvIHNraXAiIiIK
LSAgICBwb3J0ID0gc3RhcnRfcG9ydAorZGVmIGdldF9mcmVlX3BvcnQoKToKKyAgICAiIiJHZXQg
YSByYW5kb20gdW5ib3VuZCBwb3J0IiIiCiAgICAgd2hpbGUgVHJ1ZToKLSAgICAgICAgaWYgZXhj
bHVkZSBhbmQgcG9ydCBpbiBleGNsdWRlOgotICAgICAgICAgICAgcG9ydCArPSAxCi0gICAgICAg
ICAgICBjb250aW51ZQogICAgICAgICBzID0gc29ja2V0LnNvY2tldCgpCiAgICAgICAgIHRyeToK
LSAgICAgICAgICAgIHMuYmluZCgoIjEyNy4wLjAuMSIsIHBvcnQpKQorICAgICAgICAgICAgcy5i
aW5kKCgiMTI3LjAuMC4xIiwgMCkpCiAgICAgICAgIGV4Y2VwdCBzb2NrZXQuZXJyb3I6Ci0gICAg
ICAgICAgICBwb3J0ICs9IDEKKyAgICAgICAgICAgIGNvbnRpbnVlCiAgICAgICAgIGVsc2U6Ci0g
ICAgICAgICAgICByZXR1cm4gcG9ydAorICAgICAgICAgICAgcmV0dXJuIHMuZ2V0c29ja25hbWUo
KVsxXQogICAgICAgICBmaW5hbGx5OgogICAgICAgICAgICAgcy5jbG9zZSgpCiAKKworZGVmIGdl
dF90aW1lb3V0X211bHRpcGxpZXIodGVzdF90eXBlLCBydW5faW5mb19kYXRhLCAqKmt3YXJncyk6
CisgICAgaWYga3dhcmdzWyJ0aW1lb3V0X211bHRpcGxpZXIiXSBpcyBub3QgTm9uZToKKyAgICAg
ICAgcmV0dXJuIGt3YXJnc1sidGltZW91dF9tdWx0aXBsaWVyIl0KKyAgICByZXR1cm4gMQorCisK
IGRlZiBicm93c2VyX2NvbW1hbmQoYmluYXJ5LCBhcmdzLCBkZWJ1Z19pbmZvKToKICAgICBpZiBk
ZWJ1Z19pbmZvOgogICAgICAgICBpZiBkZWJ1Z19pbmZvLnJlcXVpcmVzRXNjYXBlZEFyZ3M6CkBA
IC01NSwyMSArOTYsMjEgQEAgY2xhc3MgQnJvd3NlckVycm9yKEV4Y2VwdGlvbik6CiAKIAogY2xh
c3MgQnJvd3NlcihvYmplY3QpOgorICAgICIiIkFic3RyYWN0IGNsYXNzIHNlcnZpbmcgYXMgdGhl
IGJhc2lzIGZvciBCcm93c2VyIGltcGxlbWVudGF0aW9ucy4KKworICAgIFRoZSBCcm93c2VyIGlz
IHVzZWQgaW4gdGhlIFRlc3RSdW5uZXJNYW5hZ2VyIHRvIHN0YXJ0IGFuZCBzdG9wIHRoZSBicm93
c2VyCisgICAgcHJvY2VzcywgYW5kIHRvIGNoZWNrIHRoZSBzdGF0ZSBvZiB0aGF0IHByb2Nlc3Mu
IFRoaXMgY2xhc3MgYWxzbyBhY3RzIGFzIGEKKyAgICBjb250ZXh0IG1hbmFnZXIsIGVuYWJsaW5n
IGl0IHRvIGRvIGJyb3dzZXItc3BlY2lmaWMgc2V0dXAgYXQgdGhlIHN0YXJ0IG9mCisgICAgdGhl
IHRlc3RydW4gYW5kIGNsZWFudXAgYWZ0ZXIgdGhlIHJ1biBpcyBjb21wbGV0ZS4KKworICAgIDpw
YXJhbSBsb2dnZXI6IFN0cnVjdHVyZWQgbG9nZ2VyIHRvIHVzZSBmb3Igb3V0cHV0LgorICAgICIi
IgogICAgIF9fbWV0YWNsYXNzX18gPSBBQkNNZXRhCiAKICAgICBwcm9jZXNzX2NscyA9IE5vbmUK
ICAgICBpbml0X3RpbWVvdXQgPSAzMAogCiAgICAgZGVmIF9faW5pdF9fKHNlbGYsIGxvZ2dlcik6
Ci0gICAgICAgICIiIkFic3RyYWN0IGNsYXNzIHNlcnZpbmcgYXMgdGhlIGJhc2lzIGZvciBCcm93
c2VyIGltcGxlbWVudGF0aW9ucy4KLQotICAgICAgICBUaGUgQnJvd3NlciBpcyB1c2VkIGluIHRo
ZSBUZXN0UnVubmVyTWFuYWdlciB0byBzdGFydCBhbmQgc3RvcCB0aGUgYnJvd3NlcgotICAgICAg
ICBwcm9jZXNzLCBhbmQgdG8gY2hlY2sgdGhlIHN0YXRlIG9mIHRoYXQgcHJvY2Vzcy4gVGhpcyBj
bGFzcyBhbHNvIGFjdHMgYXMgYQotICAgICAgICBjb250ZXh0IG1hbmFnZXIsIGVuYWJsaW5nIGl0
IHRvIGRvIGJyb3dzZXItc3BlY2lmaWMgc2V0dXAgYXQgdGhlIHN0YXJ0IG9mCi0gICAgICAgIHRo
ZSB0ZXN0cnVuIGFuZCBjbGVhbnVwIGFmdGVyIHRoZSBydW4gaXMgY29tcGxldGUuCi0KLSAgICAg
ICAgOnBhcmFtIGxvZ2dlcjogU3RydWN0dXJlZCBsb2dnZXIgdG8gdXNlIGZvciBvdXRwdXQuCi0g
ICAgICAgICIiIgogICAgICAgICBzZWxmLmxvZ2dlciA9IGxvZ2dlcgogCiAgICAgZGVmIF9fZW50
ZXJfXyhzZWxmKToKQEAgLTExOSwxNSArMTYwLDExIEBAIGNsYXNzIEJyb3dzZXIob2JqZWN0KToK
ICAgICAgICAgd2l0aCB3aGljaCBpdCBzaG91bGQgYmUgaW5zdGFudGlhdGVkIiIiCiAgICAgICAg
IHJldHVybiBFeGVjdXRvckJyb3dzZXIsIHt9CiAKLSAgICBkZWYgY2hlY2tfZm9yX2NyYXNoZXMo
c2VsZik6Ci0gICAgICAgICIiIkNoZWNrIGZvciBjcmFzaGVzIHRoYXQgZGlkbid0IGNhdXNlIHRo
ZSBicm93c2VyIHByb2Nlc3MgdG8gdGVybWluYXRlIiIiCisgICAgZGVmIGNoZWNrX2NyYXNoKHNl
bGYsIHByb2Nlc3MsIHRlc3QpOgorICAgICAgICAiIiJDaGVjayBpZiBhIGNyYXNoIG9jY3VyZWQg
YW5kIG91dHB1dCBhbnkgdXNlZnVsIGluZm9ybWF0aW9uIHRvIHRoZQorICAgICAgICBsb2cuIFJl
dHVybnMgYSBib29sZWFuIGluZGljYXRpbmcgd2hldGhlciBhIGNyYXNoIG9jY3VyZWQuIiIiCiAg
ICAgICAgIHJldHVybiBGYWxzZQogCi0gICAgZGVmIGxvZ19jcmFzaChzZWxmLCBwcm9jZXNzLCB0
ZXN0KToKLSAgICAgICAgIiIiUmV0dXJuIGEgbGlzdCBvZiBkaWN0aW9uYXJpZXMgY29udGFpbmlu
ZyBpbmZvcm1hdGlvbiBhYm91dCBjcmFzaGVzIHRoYXQgaGFwcGVuZAotICAgICAgICBpbiB0aGUg
YnJvd3Nlciwgb3IgYW4gZW1wdHkgbGlzdCBpZiBubyBjcmFzaGVzIG9jY3VycmVkIiIiCi0gICAg
ICAgIHNlbGYubG9nZ2VyLmNyYXNoKHByb2Nlc3MsIHRlc3QpCi0KIAogY2xhc3MgTnVsbEJyb3dz
ZXIoQnJvd3Nlcik6CiAgICAgZGVmIF9faW5pdF9fKHNlbGYsIGxvZ2dlciwgKiprd2FyZ3MpOgpA
QCAtMTUzLDE0ICsxOTAsMTQgQEAgY2xhc3MgTnVsbEJyb3dzZXIoQnJvd3Nlcik6CiAKIAogY2xh
c3MgRXhlY3V0b3JCcm93c2VyKG9iamVjdCk6CisgICAgIiIiVmlldyBvZiB0aGUgQnJvd3NlciB1
c2VkIGJ5IHRoZSBFeGVjdXRvciBvYmplY3QuCisgICAgVGhpcyBpcyBuZWVkZWQgYmVjYXVzZSB0
aGUgRXhlY3V0b3IgcnVucyBpbiBhIGNoaWxkIHByb2Nlc3MgYW5kCisgICAgd2UgY2FuJ3Qgc2hp
cCBCcm93c2VyIGluc3RhbmNlcyBiZXR3ZWVuIHByb2Nlc3NlcyBvbiBXaW5kb3dzLgorCisgICAg
VHlwaWNhbGx5IHRoaXMgd2lsbCBoYXZlIGEgZmV3IHByb2R1Y3Qtc3BlY2lmaWMgcHJvcGVydGll
cyBzZXQsCisgICAgYnV0IGluIHNvbWUgY2FzZXMgaXQgbWF5IGhhdmUgbW9yZSBlbGFib3JhdGUg
bWV0aG9kcyBmb3Igc2V0dGluZworICAgIHVwIHRoZSBicm93c2VyIGZyb20gdGhlIHJ1bm5lciBw
cm9jZXNzLgorICAgICIiIgogICAgIGRlZiBfX2luaXRfXyhzZWxmLCAqKmt3YXJncyk6Ci0gICAg
ICAgICIiIlZpZXcgb2YgdGhlIEJyb3dzZXIgdXNlZCBieSB0aGUgRXhlY3V0b3Igb2JqZWN0Lgot
ICAgICAgICBUaGlzIGlzIG5lZWRlZCBiZWNhdXNlIHRoZSBFeGVjdXRvciBydW5zIGluIGEgY2hp
bGQgcHJvY2VzcyBhbmQKLSAgICAgICAgd2UgY2FuJ3Qgc2hpcCBCcm93c2VyIGluc3RhbmNlcyBi
ZXR3ZWVuIHByb2Nlc3NlcyBvbiBXaW5kb3dzLgotCi0gICAgICAgIFR5cGljYWxseSB0aGlzIHdp
bGwgaGF2ZSBhIGZldyBwcm9kdWN0LXNwZWNpZmljIHByb3BlcnRpZXMgc2V0LAotICAgICAgICBi
dXQgaW4gc29tZSBjYXNlcyBpdCBtYXkgaGF2ZSBtb3JlIGVsYWJvcmF0ZSBtZXRob2RzIGZvciBz
ZXR0aW5nCi0gICAgICAgIHVwIHRoZSBicm93c2VyIGZyb20gdGhlIHJ1bm5lciBwcm9jZXNzLgot
ICAgICAgICAiIiIKICAgICAgICAgZm9yIGssIHYgaW4ga3dhcmdzLml0ZXJpdGVtcygpOgogICAg
ICAgICAgICAgc2V0YXR0cihzZWxmLCBrLCB2KQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2Jy
b3dzZXJzL2Nocm9tZS5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9icm93c2Vycy9jaHJvbWUucHkKaW5kZXgg
OGIwYmE0NTg1YTkuLjgwNjE0YzVlNTUxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvYnJvd3Nl
cnMvY2hyb21lLnB5CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9icm93c2Vycy9jaHJvbWUucHkKQEAgLTEs
MjEgKzEsMjMgQEAKIGZyb20gLmJhc2UgaW1wb3J0IEJyb3dzZXIsIEV4ZWN1dG9yQnJvd3Nlciwg
cmVxdWlyZV9hcmcKK2Zyb20gLmJhc2UgaW1wb3J0IGdldF90aW1lb3V0X211bHRpcGxpZXIgICAj
IG5vcWE6IEY0MDEKIGZyb20gLi53ZWJkcml2ZXJfc2VydmVyIGltcG9ydCBDaHJvbWVEcml2ZXJT
ZXJ2ZXIKIGZyb20gLi5leGVjdXRvcnMgaW1wb3J0IGV4ZWN1dG9yX2t3YXJncyBhcyBiYXNlX2V4
ZWN1dG9yX2t3YXJncwotZnJvbSAuLmV4ZWN1dG9ycy5leGVjdXRvcnNlbGVuaXVtIGltcG9ydCAo
U2VsZW5pdW1UZXN0aGFybmVzc0V4ZWN1dG9yLCAgIyBub3FhOiBGNDAxCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTZWxlbml1bVJlZlRlc3RFeGVjdXRvcikgICMg
bm9xYTogRjQwMQorZnJvbSAuLmV4ZWN1dG9ycy5leGVjdXRvcndlYmRyaXZlciBpbXBvcnQgKFdl
YkRyaXZlclRlc3RoYXJuZXNzRXhlY3V0b3IsICAjIG5vcWE6IEY0MDEKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBXZWJEcml2ZXJSZWZUZXN0RXhlY3V0b3IpICAj
IG5vcWE6IEY0MDEKIGZyb20gLi5leGVjdXRvcnMuZXhlY3V0b3JjaHJvbWUgaW1wb3J0IENocm9t
ZURyaXZlcldkc3BlY0V4ZWN1dG9yICAjIG5vcWE6IEY0MDEKIAogCiBfX3dwdHJ1bm5lcl9fID0g
eyJwcm9kdWN0IjogImNocm9tZSIsCiAgICAgICAgICAgICAgICAgICJjaGVja19hcmdzIjogImNo
ZWNrX2FyZ3MiLAogICAgICAgICAgICAgICAgICAiYnJvd3NlciI6ICJDaHJvbWVCcm93c2VyIiwK
LSAgICAgICAgICAgICAgICAgImV4ZWN1dG9yIjogeyJ0ZXN0aGFybmVzcyI6ICJTZWxlbml1bVRl
c3RoYXJuZXNzRXhlY3V0b3IiLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInJlZnRl
c3QiOiAiU2VsZW5pdW1SZWZUZXN0RXhlY3V0b3IiLAorICAgICAgICAgICAgICAgICAiZXhlY3V0
b3IiOiB7InRlc3RoYXJuZXNzIjogIldlYkRyaXZlclRlc3RoYXJuZXNzRXhlY3V0b3IiLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgInJlZnRlc3QiOiAiV2ViRHJpdmVyUmVmVGVzdEV4
ZWN1dG9yIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ3ZHNwZWMiOiAiQ2hyb21l
RHJpdmVyV2RzcGVjRXhlY3V0b3IifSwKICAgICAgICAgICAgICAgICAgImJyb3dzZXJfa3dhcmdz
IjogImJyb3dzZXJfa3dhcmdzIiwKICAgICAgICAgICAgICAgICAgImV4ZWN1dG9yX2t3YXJncyI6
ICJleGVjdXRvcl9rd2FyZ3MiLAogICAgICAgICAgICAgICAgICAiZW52X2V4dHJhcyI6ICJlbnZf
ZXh0cmFzIiwKLSAgICAgICAgICAgICAgICAgImVudl9vcHRpb25zIjogImVudl9vcHRpb25zIn0K
KyAgICAgICAgICAgICAgICAgImVudl9vcHRpb25zIjogImVudl9vcHRpb25zIiwKKyAgICAgICAg
ICAgICAgICAgInRpbWVvdXRfbXVsdGlwbGllciI6ICJnZXRfdGltZW91dF9tdWx0aXBsaWVyIix9
CiAKIAogZGVmIGNoZWNrX2FyZ3MoKiprd2FyZ3MpOgpAQCAtMzAsMjkgKzMyLDU4IEBAIGRlZiBi
cm93c2VyX2t3YXJncyh0ZXN0X3R5cGUsIHJ1bl9pbmZvX2RhdGEsIGNvbmZpZywgKiprd2FyZ3Mp
OgogCiBkZWYgZXhlY3V0b3Jfa3dhcmdzKHRlc3RfdHlwZSwgc2VydmVyX2NvbmZpZywgY2FjaGVf
bWFuYWdlciwgcnVuX2luZm9fZGF0YSwKICAgICAgICAgICAgICAgICAgICAgKiprd2FyZ3MpOgot
ICAgIGZyb20gc2VsZW5pdW0ud2ViZHJpdmVyIGltcG9ydCBEZXNpcmVkQ2FwYWJpbGl0aWVzCi0K
ICAgICBleGVjdXRvcl9rd2FyZ3MgPSBiYXNlX2V4ZWN1dG9yX2t3YXJncyh0ZXN0X3R5cGUsIHNl
cnZlcl9jb25maWcsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
Y2FjaGVfbWFuYWdlciwgcnVuX2luZm9fZGF0YSwKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAqKmt3YXJncykKICAgICBleGVjdXRvcl9rd2FyZ3NbImNsb3NlX2Fm
dGVyX2RvbmUiXSA9IFRydWUKLSAgICBjYXBhYmlsaXRpZXMgPSBkaWN0KERlc2lyZWRDYXBhYmls
aXRpZXMuQ0hST01FLml0ZW1zKCkpCi0gICAgY2FwYWJpbGl0aWVzLnNldGRlZmF1bHQoImdvb2c6
Y2hyb21lT3B0aW9ucyIsIHt9KVsicHJlZnMiXSA9IHsKLSAgICAgICAgInByb2ZpbGUiOiB7Ci0g
ICAgICAgICAgICAiZGVmYXVsdF9jb250ZW50X3NldHRpbmdfdmFsdWVzIjogewotICAgICAgICAg
ICAgICAgICJwb3B1cHMiOiAxCi0gICAgICAgICAgICB9CisgICAgZXhlY3V0b3Jfa3dhcmdzWyJz
dXBwb3J0c19lYWdlcl9wYWdlbG9hZCJdID0gRmFsc2UKKworICAgIGNhcGFiaWxpdGllcyA9IHsK
KyAgICAgICAgImdvb2c6Y2hyb21lT3B0aW9ucyI6IHsKKyAgICAgICAgICAgICJwcmVmcyI6IHsK
KyAgICAgICAgICAgICAgICAicHJvZmlsZSI6IHsKKyAgICAgICAgICAgICAgICAgICAgImRlZmF1
bHRfY29udGVudF9zZXR0aW5nX3ZhbHVlcyI6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICJw
b3B1cHMiOiAxCisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAg
ICAgICAgICB9LAorICAgICAgICAgICAgInVzZUF1dG9tYXRpb25FeHRlbnNpb24iOiBGYWxzZSwK
KyAgICAgICAgICAgICJleGNsdWRlU3dpdGNoZXMiOiBbImVuYWJsZS1hdXRvbWF0aW9uIl0sCisg
ICAgICAgICAgICAidzNjIjogVHJ1ZQogICAgICAgICB9CiAgICAgfQotICAgIGZvciAoa3dhcmcs
IGNhcGFiaWxpdHkpIGluIFsoImJpbmFyeSIsICJiaW5hcnkiKSwgKCJiaW5hcnlfYXJncyIsICJh
cmdzIildOgotICAgICAgICBpZiBrd2FyZ3Nba3dhcmddIGlzIG5vdCBOb25lOgotICAgICAgICAg
ICAgY2FwYWJpbGl0aWVzWyJnb29nOmNocm9tZU9wdGlvbnMiXVtjYXBhYmlsaXR5XSA9IGt3YXJn
c1trd2FyZ10KKwogICAgIGlmIHRlc3RfdHlwZSA9PSAidGVzdGhhcm5lc3MiOgotICAgICAgICBj
YXBhYmlsaXRpZXNbImdvb2c6Y2hyb21lT3B0aW9ucyJdWyJ1c2VBdXRvbWF0aW9uRXh0ZW5zaW9u
Il0gPSBGYWxzZQotICAgICAgICBjYXBhYmlsaXRpZXNbImdvb2c6Y2hyb21lT3B0aW9ucyJdWyJl
eGNsdWRlU3dpdGNoZXMiXSA9IFsiZW5hYmxlLWF1dG9tYXRpb24iXQotICAgIGlmIHRlc3RfdHlw
ZSA9PSAid2RzcGVjIjoKLSAgICAgICAgY2FwYWJpbGl0aWVzWyJnb29nOmNocm9tZU9wdGlvbnMi
XVsidzNjIl0gPSBUcnVlCisgICAgICAgIGNhcGFiaWxpdGllc1sicGFnZUxvYWRTdHJhdGVneSJd
ID0gIm5vbmUiCisKKyAgICBjaHJvbWVfb3B0aW9ucyA9IGNhcGFiaWxpdGllc1siZ29vZzpjaHJv
bWVPcHRpb25zIl0KKyAgICBpZiBrd2FyZ3NbImJpbmFyeSJdIGlzIG5vdCBOb25lOgorICAgICAg
ICBjaHJvbWVfb3B0aW9uc1siYmluYXJ5Il0gPSBrd2FyZ3NbImJpbmFyeSJdCisKKyAgICAjIEhl
cmUgd2Ugc2V0IGEgZmV3IENocm9tZSBmbGFncyB0aGF0IGFyZSBhbHdheXMgcGFzc2VkLgorICAg
ICMgQ2hyb21lRHJpdmVyJ3MgImFjY2VwdEluc2VjdXJlQ2VydHMiIGNhcGFiaWxpdHkgb25seSBj
b250cm9scyB0aGUgY3VycmVudAorICAgICMgYnJvd3NpbmcgY29udGV4dCwgd2hlcmVhcyB0aGUg
Q0xJIGZsYWcgd29ya3MgZm9yIHdvcmtlcnMsIHRvby4KKyAgICBjaHJvbWVfb3B0aW9uc1siYXJn
cyJdID0gWyItLWlnbm9yZS1jZXJ0aWZpY2F0ZS1lcnJvcnMiXQorICAgICMgQWxsb3cgYXVkaW8g
YXV0b3BsYXkgd2l0aG91dCBhIHVzZXIgZ2VzdHVyZS4KKyAgICBjaHJvbWVfb3B0aW9uc1siYXJn
cyJdLmFwcGVuZCgiLS1hdXRvcGxheS1wb2xpY3k9bm8tdXNlci1nZXN0dXJlLXJlcXVpcmVkIikK
KyAgICAjIEFsbG93IFdlYlJUQyB0ZXN0cyB0byBjYWxsIGdldFVzZXJNZWRpYS4KKyAgICBjaHJv
bWVfb3B0aW9uc1siYXJncyJdLmFwcGVuZCgiLS11c2UtZmFrZS11aS1mb3ItbWVkaWEtc3RyZWFt
IikKKyAgICBjaHJvbWVfb3B0aW9uc1siYXJncyJdLmFwcGVuZCgiLS11c2UtZmFrZS1kZXZpY2Ut
Zm9yLW1lZGlhLXN0cmVhbSIpCisgICAgIyBTaG9ydGVuIGRlbGF5IGZvciBSZXBvcnRpbmcgPGh0
dHBzOi8vdzNjLmdpdGh1Yi5pby9yZXBvcnRpbmcvPi4KKyAgICBjaHJvbWVfb3B0aW9uc1siYXJn
cyJdLmFwcGVuZCgiLS1zaG9ydC1yZXBvcnRpbmctZGVsYXkiKQorICAgICMgUG9pbnQgYWxsIC50
ZXN0IGRvbWFpbnMgdG8gbG9jYWxob3N0IGZvciBDaHJvbWUKKyAgICBjaHJvbWVfb3B0aW9uc1si
YXJncyJdLmFwcGVuZCgiLS1ob3N0LXJlc29sdmVyLXJ1bGVzPU1BUCBub25leGlzdGVudC4qLnRl
c3Qgfk5PVEZPVU5ELCBNQVAgKi50ZXN0IDEyNy4wLjAuMSIpCisKKyAgICAjIENvcHkgb3ZlciBh
bnkgb3RoZXIgZmxhZ3MgdGhhdCB3ZXJlIHBhc3NlZCBpbiB2aWEgLS1iaW5hcnlfYXJncworICAg
IGlmIGt3YXJnc1siYmluYXJ5X2FyZ3MiXSBpcyBub3QgTm9uZToKKyAgICAgICAgY2hyb21lX29w
dGlvbnNbImFyZ3MiXS5leHRlbmQoa3dhcmdzWyJiaW5hcnlfYXJncyJdKQorCisgICAgIyBQYXNz
IHRoZSAtLWhlYWRsZXNzIGZsYWcgdG8gQ2hyb21lIGlmIFdQVCdzIG93biAtLWhlYWRsZXNzIGZs
YWcgd2FzIHNldAorICAgIGlmIGt3YXJnc1siaGVhZGxlc3MiXSBhbmQgIi0taGVhZGxlc3MiIG5v
dCBpbiBjaHJvbWVfb3B0aW9uc1siYXJncyJdOgorICAgICAgICBjaHJvbWVfb3B0aW9uc1siYXJn
cyJdLmFwcGVuZCgiLS1oZWFkbGVzcyIpCisKICAgICBleGVjdXRvcl9rd2FyZ3NbImNhcGFiaWxp
dGllcyJdID0gY2FwYWJpbGl0aWVzCisKICAgICByZXR1cm4gZXhlY3V0b3Jfa3dhcmdzCiAKIApA
QCAtNjEsNyArOTIsNyBAQCBkZWYgZW52X2V4dHJhcygqKmt3YXJncyk6CiAKIAogZGVmIGVudl9v
cHRpb25zKCk6Ci0gICAgcmV0dXJuIHt9CisgICAgcmV0dXJuIHsic2VydmVyX2hvc3QiOiAiMTI3
LjAuMC4xIn0KIAogCiBjbGFzcyBDaHJvbWVCcm93c2VyKEJyb3dzZXIpOgpAQCAtOTIsNyArMTIz
LDcgQEAgY2xhc3MgQ2hyb21lQnJvd3NlcihCcm93c2VyKToKICAgICAgICAgIyBUT0RPKGF0byk6
IFRoaXMgb25seSBpbmRpY2F0ZXMgdGhlIGRyaXZlciBpcyBhbGl2ZSwKICAgICAgICAgIyBhbmQg
ZG9lc24ndCBzYXkgYW55dGhpbmcgYWJvdXQgd2hldGhlciBhIGJyb3dzZXIgc2Vzc2lvbgogICAg
ICAgICAjIGlzIGFjdGl2ZS4KLSAgICAgICAgcmV0dXJuIHNlbGYuc2VydmVyLmlzX2FsaXZlKCkK
KyAgICAgICAgcmV0dXJuIHNlbGYuc2VydmVyLmlzX2FsaXZlCiAKICAgICBkZWYgY2xlYW51cChz
ZWxmKToKICAgICAgICAgc2VsZi5zdG9wKCkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9icm93
c2Vycy9jaHJvbWVfYW5kcm9pZC5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9icm93c2Vycy9jaHJvbWVfYW5k
cm9pZC5weQppbmRleCBjOTZjZjU2MzRmMy4uYjRlZGMwNTBkMGMgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dw
dHJ1bm5lci9icm93c2Vycy9jaHJvbWVfYW5kcm9pZC5weQorKysgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvYnJv
d3NlcnMvY2hyb21lX2FuZHJvaWQucHkKQEAgLTEsNjQgKzEsNjMgQEAKIGltcG9ydCBzdWJwcm9j
ZXNzCiAKIGZyb20gLmJhc2UgaW1wb3J0IEJyb3dzZXIsIEV4ZWN1dG9yQnJvd3NlciwgcmVxdWly
ZV9hcmcKK2Zyb20gLmJhc2UgaW1wb3J0IGdldF90aW1lb3V0X211bHRpcGxpZXIgICAjIG5vcWE6
IEY0MDEKK2Zyb20gLmNocm9tZSBpbXBvcnQgZXhlY3V0b3Jfa3dhcmdzIGFzIGNocm9tZV9leGVj
dXRvcl9rd2FyZ3MKIGZyb20gLi53ZWJkcml2ZXJfc2VydmVyIGltcG9ydCBDaHJvbWVEcml2ZXJT
ZXJ2ZXIKLWZyb20gLi5leGVjdXRvcnMgaW1wb3J0IGV4ZWN1dG9yX2t3YXJncyBhcyBiYXNlX2V4
ZWN1dG9yX2t3YXJncwotZnJvbSAuLmV4ZWN1dG9ycy5leGVjdXRvcnNlbGVuaXVtIGltcG9ydCAo
U2VsZW5pdW1UZXN0aGFybmVzc0V4ZWN1dG9yLCAgIyBub3FhOiBGNDAxCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTZWxlbml1bVJlZlRlc3RFeGVjdXRvcikgICMg
bm9xYTogRjQwMQorZnJvbSAuLmV4ZWN1dG9ycy5leGVjdXRvcndlYmRyaXZlciBpbXBvcnQgKFdl
YkRyaXZlclRlc3RoYXJuZXNzRXhlY3V0b3IsICAjIG5vcWE6IEY0MDEKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBXZWJEcml2ZXJSZWZUZXN0RXhlY3V0b3IpICAj
IG5vcWE6IEY0MDEKIGZyb20gLi5leGVjdXRvcnMuZXhlY3V0b3JjaHJvbWUgaW1wb3J0IENocm9t
ZURyaXZlcldkc3BlY0V4ZWN1dG9yICAjIG5vcWE6IEY0MDEKIAogCiBfX3dwdHJ1bm5lcl9fID0g
eyJwcm9kdWN0IjogImNocm9tZV9hbmRyb2lkIiwKICAgICAgICAgICAgICAgICAgImNoZWNrX2Fy
Z3MiOiAiY2hlY2tfYXJncyIsCiAgICAgICAgICAgICAgICAgICJicm93c2VyIjogIkNocm9tZUFu
ZHJvaWRCcm93c2VyIiwKLSAgICAgICAgICAgICAgICAgImV4ZWN1dG9yIjogeyJ0ZXN0aGFybmVz
cyI6ICJTZWxlbml1bVRlc3RoYXJuZXNzRXhlY3V0b3IiLAotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgInJlZnRlc3QiOiAiU2VsZW5pdW1SZWZUZXN0RXhlY3V0b3IiLAorICAgICAgICAg
ICAgICAgICAiZXhlY3V0b3IiOiB7InRlc3RoYXJuZXNzIjogIldlYkRyaXZlclRlc3RoYXJuZXNz
RXhlY3V0b3IiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInJlZnRlc3QiOiAiV2Vi
RHJpdmVyUmVmVGVzdEV4ZWN1dG9yIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ3
ZHNwZWMiOiAiQ2hyb21lRHJpdmVyV2RzcGVjRXhlY3V0b3IifSwKICAgICAgICAgICAgICAgICAg
ImJyb3dzZXJfa3dhcmdzIjogImJyb3dzZXJfa3dhcmdzIiwKICAgICAgICAgICAgICAgICAgImV4
ZWN1dG9yX2t3YXJncyI6ICJleGVjdXRvcl9rd2FyZ3MiLAogICAgICAgICAgICAgICAgICAiZW52
X2V4dHJhcyI6ICJlbnZfZXh0cmFzIiwKLSAgICAgICAgICAgICAgICAgImVudl9vcHRpb25zIjog
ImVudl9vcHRpb25zIn0KKyAgICAgICAgICAgICAgICAgImVudl9vcHRpb25zIjogImVudl9vcHRp
b25zIiwKKyAgICAgICAgICAgICAgICAgInRpbWVvdXRfbXVsdGlwbGllciI6ICJnZXRfdGltZW91
dF9tdWx0aXBsaWVyIn0KIAogX3dwdHNlcnZlX3BvcnRzID0gc2V0KCkKIAogCiBkZWYgY2hlY2tf
YXJncygqKmt3YXJncyk6CisgICAgcmVxdWlyZV9hcmcoa3dhcmdzLCAicGFja2FnZV9uYW1lIikK
ICAgICByZXF1aXJlX2FyZyhrd2FyZ3MsICJ3ZWJkcml2ZXJfYmluYXJ5IikKIAogCiBkZWYgYnJv
d3Nlcl9rd2FyZ3ModGVzdF90eXBlLCBydW5faW5mb19kYXRhLCBjb25maWcsICoqa3dhcmdzKToK
LSAgICByZXR1cm4geyJiaW5hcnkiOiBrd2FyZ3NbImJpbmFyeSJdLAorICAgIHJldHVybiB7InBh
Y2thZ2VfbmFtZSI6IGt3YXJnc1sicGFja2FnZV9uYW1lIl0sCisgICAgICAgICAgICAiZGV2aWNl
X3NlcmlhbCI6IGt3YXJnc1siZGV2aWNlX3NlcmlhbCJdLAogICAgICAgICAgICAgIndlYmRyaXZl
cl9iaW5hcnkiOiBrd2FyZ3NbIndlYmRyaXZlcl9iaW5hcnkiXSwKICAgICAgICAgICAgICJ3ZWJk
cml2ZXJfYXJncyI6IGt3YXJncy5nZXQoIndlYmRyaXZlcl9hcmdzIil9CiAKIAogZGVmIGV4ZWN1
dG9yX2t3YXJncyh0ZXN0X3R5cGUsIHNlcnZlcl9jb25maWcsIGNhY2hlX21hbmFnZXIsIHJ1bl9p
bmZvX2RhdGEsCiAgICAgICAgICAgICAgICAgICAgICoqa3dhcmdzKToKLSAgICBmcm9tIHNlbGVu
aXVtLndlYmRyaXZlciBpbXBvcnQgRGVzaXJlZENhcGFiaWxpdGllcwotCi0gICAgIyBVc2UgZXh0
ZW5kKCkgdG8gbW9kaWZ5IHRoZSBnbG9iYWwgbGlzdCBpbiBwbGFjZS4KKyAgICAjIFVzZSB1cGRh
dGUoKSB0byBtb2RpZnkgdGhlIGdsb2JhbCBsaXN0IGluIHBsYWNlLgogICAgIF93cHRzZXJ2ZV9w
b3J0cy51cGRhdGUoc2V0KAogICAgICAgICBzZXJ2ZXJfY29uZmlnWydwb3J0cyddWydodHRwJ10g
KyBzZXJ2ZXJfY29uZmlnWydwb3J0cyddWydodHRwcyddICsKICAgICAgICAgc2VydmVyX2NvbmZp
Z1sncG9ydHMnXVsnd3MnXSArIHNlcnZlcl9jb25maWdbJ3BvcnRzJ11bJ3dzcyddCiAgICAgKSkK
IAotICAgIGV4ZWN1dG9yX2t3YXJncyA9IGJhc2VfZXhlY3V0b3Jfa3dhcmdzKHRlc3RfdHlwZSwg
c2VydmVyX2NvbmZpZywgY2FjaGVfbWFuYWdlciwgcnVuX2luZm9fZGF0YSwKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKmt3YXJncykKLSAgICBleGVjdXRvcl9r
d2FyZ3NbImNsb3NlX2FmdGVyX2RvbmUiXSA9IFRydWUKLSAgICBjYXBhYmlsaXRpZXMgPSBkaWN0
KERlc2lyZWRDYXBhYmlsaXRpZXMuQ0hST01FLml0ZW1zKCkpCi0gICAgY2FwYWJpbGl0aWVzWyJj
aHJvbWVPcHRpb25zIl0gPSB7fQotICAgICMgcmVxdWlyZWQgdG8gc3RhcnQgb24gbW9iaWxlCi0g
ICAgY2FwYWJpbGl0aWVzWyJjaHJvbWVPcHRpb25zIl1bImFuZHJvaWRQYWNrYWdlIl0gPSAiY29t
Lmdvb2dsZS5hbmRyb2lkLmFwcHMuY2hyb21lIgotCi0gICAgZm9yIChrd2FyZywgY2FwYWJpbGl0
eSkgaW4gWygiYmluYXJ5IiwgImJpbmFyeSIpLCAoImJpbmFyeV9hcmdzIiwgImFyZ3MiKV06Ci0g
ICAgICAgIGlmIGt3YXJnc1trd2FyZ10gaXMgbm90IE5vbmU6Ci0gICAgICAgICAgICBjYXBhYmls
aXRpZXNbImNocm9tZU9wdGlvbnMiXVtjYXBhYmlsaXR5XSA9IGt3YXJnc1trd2FyZ10KLSAgICBp
ZiB0ZXN0X3R5cGUgPT0gInRlc3RoYXJuZXNzIjoKLSAgICAgICAgY2FwYWJpbGl0aWVzWyJ1c2VB
dXRvbWF0aW9uRXh0ZW5zaW9uIl0gPSBGYWxzZQotICAgICAgICBjYXBhYmlsaXRpZXNbImV4Y2x1
ZGVTd2l0Y2hlcyJdID0gWyJlbmFibGUtYXV0b21hdGlvbiJdCi0gICAgaWYgdGVzdF90eXBlID09
ICJ3ZHNwZWMiOgotICAgICAgICBjYXBhYmlsaXRpZXNbImNocm9tZU9wdGlvbnMiXVsidzNjIl0g
PSBUcnVlCi0gICAgZXhlY3V0b3Jfa3dhcmdzWyJjYXBhYmlsaXRpZXMiXSA9IGNhcGFiaWxpdGll
cworICAgIGV4ZWN1dG9yX2t3YXJncyA9IGNocm9tZV9leGVjdXRvcl9rd2FyZ3ModGVzdF90eXBl
LCBzZXJ2ZXJfY29uZmlnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgY2FjaGVfbWFuYWdlciwgcnVuX2luZm9fZGF0YSwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICoqa3dhcmdzKQorICAgICMgUmVtb3ZlIHVuc3VwcG9y
dGVkIG9wdGlvbnMgb24gbW9iaWxlLgorICAgIGRlbCBleGVjdXRvcl9rd2FyZ3NbImNhcGFiaWxp
dGllcyJdWyJnb29nOmNocm9tZU9wdGlvbnMiXVsicHJlZnMiXQorICAgIGRlbCBleGVjdXRvcl9r
d2FyZ3NbImNhcGFiaWxpdGllcyJdWyJnb29nOmNocm9tZU9wdGlvbnMiXVsidXNlQXV0b21hdGlv
bkV4dGVuc2lvbiJdCisKKyAgICBhc3NlcnQga3dhcmdzWyJwYWNrYWdlX25hbWUiXSwgIm1pc3Np
bmcgLS1wYWNrYWdlLW5hbWUiCisgICAgZXhlY3V0b3Jfa3dhcmdzWyJjYXBhYmlsaXRpZXMiXVsi
Z29vZzpjaHJvbWVPcHRpb25zIl1bImFuZHJvaWRQYWNrYWdlIl0gPSBcCisgICAgICAgIGt3YXJn
c1sicGFja2FnZV9uYW1lIl0KKyAgICBpZiBrd2FyZ3MuZ2V0KCJkZXZpY2Vfc2VyaWFsIik6Cisg
ICAgICAgIGV4ZWN1dG9yX2t3YXJnc1siY2FwYWJpbGl0aWVzIl1bImdvb2c6Y2hyb21lT3B0aW9u
cyJdWyJhbmRyb2lkRGV2aWNlU2VyaWFsIl0gPSBcCisgICAgICAgICAgICBrd2FyZ3NbImRldmlj
ZV9zZXJpYWwiXQorCiAgICAgcmV0dXJuIGV4ZWN1dG9yX2t3YXJncwogCiAKQEAgLTY3LDcgKzY2
LDggQEAgZGVmIGVudl9leHRyYXMoKiprd2FyZ3MpOgogCiAKIGRlZiBlbnZfb3B0aW9ucygpOgot
ICAgIHJldHVybiB7fQorICAgICMgYWxsb3cgdGhlIHVzZSBvZiBob3N0LXJlc29sdmVyLXJ1bGVz
IGluIGxpZXUgb2YgbW9kaWZ5aW5nIC9ldGMvaG9zdHMgZmlsZQorICAgIHJldHVybiB7InNlcnZl
cl9ob3N0IjogIjEyNy4wLjAuMSJ9CiAKIAogY2xhc3MgQ2hyb21lQW5kcm9pZEJyb3dzZXIoQnJv
d3Nlcik6CkBAIC03NSwyNCArNzUsMjkgQEAgY2xhc3MgQ2hyb21lQW5kcm9pZEJyb3dzZXIoQnJv
d3Nlcik6CiAgICAgYGB3cHRydW5uZXIud2ViZHJpdmVyLkNocm9tZURyaXZlclNlcnZlcmBgLgog
ICAgICIiIgogCi0gICAgZGVmIF9faW5pdF9fKHNlbGYsIGxvZ2dlciwgYmluYXJ5LCB3ZWJkcml2
ZXJfYmluYXJ5PSJjaHJvbWVkcml2ZXIiLAotICAgICAgICAgICAgICAgICB3ZWJkcml2ZXJfYXJn
cz1Ob25lKToKLSAgICAgICAgIiIiQ3JlYXRlcyBhIG5ldyByZXByZXNlbnRhdGlvbiBvZiBDaHJv
bWUuICBUaGUgYGJpbmFyeWAgYXJndW1lbnQgZ2l2ZXMKLSAgICAgICAgdGhlIGJyb3dzZXIgYmlu
YXJ5IHRvIHVzZSBmb3IgdGVzdGluZy4iIiIKKyAgICBkZWYgX19pbml0X18oc2VsZiwgbG9nZ2Vy
LCBwYWNrYWdlX25hbWUsIHdlYmRyaXZlcl9iaW5hcnk9ImNocm9tZWRyaXZlciIsCisgICAgICAg
ICAgICAgICAgIGRldmljZV9zZXJpYWw9Tm9uZSwgd2ViZHJpdmVyX2FyZ3M9Tm9uZSk6CiAgICAg
ICAgIEJyb3dzZXIuX19pbml0X18oc2VsZiwgbG9nZ2VyKQotICAgICAgICBzZWxmLmJpbmFyeSA9
IGJpbmFyeQorICAgICAgICBzZWxmLnBhY2thZ2VfbmFtZSA9IHBhY2thZ2VfbmFtZQorICAgICAg
ICBzZWxmLmRldmljZV9zZXJpYWwgPSBkZXZpY2Vfc2VyaWFsCiAgICAgICAgIHNlbGYuc2VydmVy
ID0gQ2hyb21lRHJpdmVyU2VydmVyKHNlbGYubG9nZ2VyLAogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBiaW5hcnk9d2ViZHJpdmVyX2JpbmFyeSwKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJncz13ZWJkcml2ZXJfYXJncykKKyAgICAg
ICAgc2VsZi5zZXR1cF9hZGJfcmV2ZXJzZSgpCiAKICAgICBkZWYgX2FkYl9ydW4oc2VsZiwgYXJn
cyk6Ci0gICAgICAgIHNlbGYubG9nZ2VyLmluZm8oJ2FkYiAnICsgJyAnLmpvaW4oYXJncykpCi0g
ICAgICAgIHN1YnByb2Nlc3MuY2hlY2tfY2FsbChbJ2FkYiddICsgYXJncykKLQotICAgIGRlZiBz
ZXR1cChzZWxmKToKKyAgICAgICAgY21kID0gWydhZGInXQorICAgICAgICBpZiBzZWxmLmRldmlj
ZV9zZXJpYWw6CisgICAgICAgICAgICBjbWQuZXh0ZW5kKFsnLXMnLCBzZWxmLmRldmljZV9zZXJp
YWxdKQorICAgICAgICBjbWQuZXh0ZW5kKGFyZ3MpCisgICAgICAgIHNlbGYubG9nZ2VyLmluZm8o
JyAnLmpvaW4oY21kKSkKKyAgICAgICAgc3VicHJvY2Vzcy5jaGVja19jYWxsKGNtZCkKKworICAg
IGRlZiBzZXR1cF9hZGJfcmV2ZXJzZShzZWxmKToKICAgICAgICAgc2VsZi5fYWRiX3J1bihbJ3dh
aXQtZm9yLWRldmljZSddKQogICAgICAgICBzZWxmLl9hZGJfcnVuKFsnZm9yd2FyZCcsICctLXJl
bW92ZS1hbGwnXSkKICAgICAgICAgc2VsZi5fYWRiX3J1bihbJ3JldmVyc2UnLCAnLS1yZW1vdmUt
YWxsJ10pCisgICAgICAgICMgImFkYiByZXZlcnNlIiBmb3J3YXJkcyBuZXR3b3JrIGNvbm5lY3Rp
b24gZnJvbSBkZXZpY2UgdG8gaG9zdC4KICAgICAgICAgZm9yIHBvcnQgaW4gX3dwdHNlcnZlX3Bv
cnRzOgogICAgICAgICAgICAgc2VsZi5fYWRiX3J1bihbJ3JldmVyc2UnLCAndGNwOiVkJyAlIHBv
cnQsICd0Y3A6JWQnICUgcG9ydF0pCiAKQEAgLTEwOSw3ICsxMTQsNyBAQCBjbGFzcyBDaHJvbWVB
bmRyb2lkQnJvd3NlcihCcm93c2VyKToKICAgICAgICAgIyBUT0RPKGF0byk6IFRoaXMgb25seSBp
bmRpY2F0ZXMgdGhlIGRyaXZlciBpcyBhbGl2ZSwKICAgICAgICAgIyBhbmQgZG9lc24ndCBzYXkg
YW55dGhpbmcgYWJvdXQgd2hldGhlciBhIGJyb3dzZXIgc2Vzc2lvbgogICAgICAgICAjIGlzIGFj
dGl2ZS4KLSAgICAgICAgcmV0dXJuIHNlbGYuc2VydmVyLmlzX2FsaXZlKCkKKyAgICAgICAgcmV0
dXJuIHNlbGYuc2VydmVyLmlzX2FsaXZlCiAKICAgICBkZWYgY2xlYW51cChzZWxmKToKICAgICAg
ICAgc2VsZi5zdG9wKCkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9icm93c2Vycy9jaHJvbWVf
aW9zLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy93cHRydW5uZXIvd3B0cnVubmVyL2Jyb3dzZXJzL2Nocm9tZV9pb3MucHkKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmEwNDI5NjY1YzliCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRy
dW5uZXIvd3B0cnVubmVyL2Jyb3dzZXJzL2Nocm9tZV9pb3MucHkKQEAgLTAsMCArMSw4MCBAQAor
ZnJvbSAuYmFzZSBpbXBvcnQgQnJvd3NlciwgRXhlY3V0b3JCcm93c2VyLCByZXF1aXJlX2FyZwor
ZnJvbSAuYmFzZSBpbXBvcnQgZ2V0X3RpbWVvdXRfbXVsdGlwbGllciAgICMgbm9xYTogRjQwMQor
ZnJvbSAuLndlYmRyaXZlcl9zZXJ2ZXIgaW1wb3J0IENXVENocm9tZURyaXZlclNlcnZlcgorZnJv
bSAuLmV4ZWN1dG9ycyBpbXBvcnQgZXhlY3V0b3Jfa3dhcmdzIGFzIGJhc2VfZXhlY3V0b3Jfa3dh
cmdzCitmcm9tIC4uZXhlY3V0b3JzLmV4ZWN1dG9yd2ViZHJpdmVyIGltcG9ydCAoV2ViRHJpdmVy
VGVzdGhhcm5lc3NFeGVjdXRvciwgICMgbm9xYTogRjQwMQorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIFdlYkRyaXZlclJlZlRlc3RFeGVjdXRvcikgICMgbm9xYTog
RjQwMQorZnJvbSAuLmV4ZWN1dG9ycy5leGVjdXRvcmNocm9tZSBpbXBvcnQgQ2hyb21lRHJpdmVy
V2RzcGVjRXhlY3V0b3IgICMgbm9xYTogRjQwMQorCisKK19fd3B0cnVubmVyX18gPSB7InByb2R1
Y3QiOiAiY2hyb21lX2lvcyIsCisgICAgICAgICAgICAgICAgICJjaGVja19hcmdzIjogImNoZWNr
X2FyZ3MiLAorICAgICAgICAgICAgICAgICAiYnJvd3NlciI6ICJDaHJvbWVpT1NCcm93c2VyIiwK
KyAgICAgICAgICAgICAgICAgImV4ZWN1dG9yIjogeyJ0ZXN0aGFybmVzcyI6ICJXZWJEcml2ZXJU
ZXN0aGFybmVzc0V4ZWN1dG9yIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJyZWZ0
ZXN0IjogIldlYkRyaXZlclJlZlRlc3RFeGVjdXRvciJ9LAorICAgICAgICAgICAgICAgICAiYnJv
d3Nlcl9rd2FyZ3MiOiAiYnJvd3Nlcl9rd2FyZ3MiLAorICAgICAgICAgICAgICAgICAiZXhlY3V0
b3Jfa3dhcmdzIjogImV4ZWN1dG9yX2t3YXJncyIsCisgICAgICAgICAgICAgICAgICJlbnZfZXh0
cmFzIjogImVudl9leHRyYXMiLAorICAgICAgICAgICAgICAgICAiZW52X29wdGlvbnMiOiAiZW52
X29wdGlvbnMiLAorICAgICAgICAgICAgICAgICAidGltZW91dF9tdWx0aXBsaWVyIjogImdldF90
aW1lb3V0X211bHRpcGxpZXIifQorCitkZWYgY2hlY2tfYXJncygqKmt3YXJncyk6CisgICAgcmVx
dWlyZV9hcmcoa3dhcmdzLCAid2ViZHJpdmVyX2JpbmFyeSIpCisKKworZGVmIGJyb3dzZXJfa3dh
cmdzKHRlc3RfdHlwZSwgcnVuX2luZm9fZGF0YSwgY29uZmlnLCAqKmt3YXJncyk6CisgICAgcmV0
dXJuIHsid2ViZHJpdmVyX2JpbmFyeSI6IGt3YXJnc1sid2ViZHJpdmVyX2JpbmFyeSJdLAorICAg
ICAgICAgICAgIndlYmRyaXZlcl9hcmdzIjoga3dhcmdzLmdldCgid2ViZHJpdmVyX2FyZ3MiKX0K
KworCitkZWYgZXhlY3V0b3Jfa3dhcmdzKHRlc3RfdHlwZSwgc2VydmVyX2NvbmZpZywgY2FjaGVf
bWFuYWdlciwgcnVuX2luZm9fZGF0YSwKKyAgICAgICAgICAgICAgICAgICAgKiprd2FyZ3MpOgor
ICAgIGV4ZWN1dG9yX2t3YXJncyA9IGJhc2VfZXhlY3V0b3Jfa3dhcmdzKHRlc3RfdHlwZSwgc2Vy
dmVyX2NvbmZpZywgY2FjaGVfbWFuYWdlciwgcnVuX2luZm9fZGF0YSwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKmt3YXJncykKKyAgICBleGVjdXRvcl9rd2Fy
Z3NbImNsb3NlX2FmdGVyX2RvbmUiXSA9IFRydWUKKyAgICBleGVjdXRvcl9rd2FyZ3NbImNhcGFi
aWxpdGllcyJdID0ge30KKyAgICByZXR1cm4gZXhlY3V0b3Jfa3dhcmdzCisKKworZGVmIGVudl9l
eHRyYXMoKiprd2FyZ3MpOgorICAgIHJldHVybiBbXQorCisKK2RlZiBlbnZfb3B0aW9ucygpOgor
ICAgIHJldHVybiB7fQorCisKK2NsYXNzIENocm9tZWlPU0Jyb3dzZXIoQnJvd3Nlcik6CisgICAg
IiIiQ2hyb21laU9TIGlzIGJhY2tlZCBieSBDV1RDaHJvbWVEcml2ZXIsIHdoaWNoIGlzIHN1cHBs
aWVkIHRocm91Z2gKKyAgICBgYHdwdHJ1bm5lci53ZWJkcml2ZXIuQ1dUQ2hyb21lRHJpdmVyU2Vy
dmVyYGAuCisgICAgIiIiCisKKyAgICBpbml0X3RpbWVvdXQgPSAxMjAKKworICAgIGRlZiBfX2lu
aXRfXyhzZWxmLCBsb2dnZXIsIHdlYmRyaXZlcl9iaW5hcnksIHdlYmRyaXZlcl9hcmdzPU5vbmUp
OgorICAgICAgICAiIiJDcmVhdGVzIGEgbmV3IHJlcHJlc2VudGF0aW9uIG9mIENocm9tZS4iIiIK
KyAgICAgICAgQnJvd3Nlci5fX2luaXRfXyhzZWxmLCBsb2dnZXIpCisgICAgICAgIHNlbGYuc2Vy
dmVyID0gQ1dUQ2hyb21lRHJpdmVyU2VydmVyKHNlbGYubG9nZ2VyLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiaW5hcnk9d2ViZHJpdmVyX2JpbmFyeSwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJncz13ZWJkcml2ZXJf
YXJncykKKworICAgIGRlZiBzdGFydChzZWxmLCAqKmt3YXJncyk6CisgICAgICAgIHNlbGYuc2Vy
dmVyLnN0YXJ0KGJsb2NrPUZhbHNlKQorCisgICAgZGVmIHN0b3Aoc2VsZiwgZm9yY2U9RmFsc2Up
OgorICAgICAgICBzZWxmLnNlcnZlci5zdG9wKGZvcmNlPWZvcmNlKQorCisgICAgZGVmIHBpZChz
ZWxmKToKKyAgICAgICAgcmV0dXJuIHNlbGYuc2VydmVyLnBpZAorCisgICAgZGVmIGlzX2FsaXZl
KHNlbGYpOgorICAgICAgICAjIFRPRE8oYXRvKTogVGhpcyBvbmx5IGluZGljYXRlcyB0aGUgZHJp
dmVyIGlzIGFsaXZlLAorICAgICAgICAjIGFuZCBkb2Vzbid0IHNheSBhbnl0aGluZyBhYm91dCB3
aGV0aGVyIGEgYnJvd3NlciBzZXNzaW9uCisgICAgICAgICMgaXMgYWN0aXZlLgorICAgICAgICBy
ZXR1cm4gc2VsZi5zZXJ2ZXIuaXNfYWxpdmUKKworICAgIGRlZiBjbGVhbnVwKHNlbGYpOgorICAg
ICAgICBzZWxmLnN0b3AoKQorCisgICAgZGVmIGV4ZWN1dG9yX2Jyb3dzZXIoc2VsZik6CisgICAg
ICAgIHJldHVybiBFeGVjdXRvckJyb3dzZXIsIHsid2ViZHJpdmVyX3VybCI6IHNlbGYuc2VydmVy
LnVybH0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9icm93c2Vycy9lZGdlLnB5IGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0
cnVubmVyL2Jyb3dzZXJzL2VkZ2UucHkKaW5kZXggYWQyYmI1MTNhNmEuLmQ5ZDBhZjExNWNjIDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3dwdHJ1bm5lci93cHRydW5uZXIvYnJvd3NlcnMvZWRnZS5weQorKysgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5u
ZXIvYnJvd3NlcnMvZWRnZS5weQpAQCAtMSwzICsxLDYgQEAKK2Zyb20gX19mdXR1cmVfXyBpbXBv
cnQgcHJpbnRfZnVuY3Rpb24KK2ltcG9ydCB0aW1lCitpbXBvcnQgc3VicHJvY2VzcwogZnJvbSAu
YmFzZSBpbXBvcnQgQnJvd3NlciwgRXhlY3V0b3JCcm93c2VyLCByZXF1aXJlX2FyZwogZnJvbSAu
LndlYmRyaXZlcl9zZXJ2ZXIgaW1wb3J0IEVkZ2VEcml2ZXJTZXJ2ZXIKIGZyb20gLi5leGVjdXRv
cnMgaW1wb3J0IGV4ZWN1dG9yX2t3YXJncyBhcyBiYXNlX2V4ZWN1dG9yX2t3YXJncwpAQCAtMTQs
NyArMTcsMTAgQEAgX193cHRydW5uZXJfXyA9IHsicHJvZHVjdCI6ICJlZGdlIiwKICAgICAgICAg
ICAgICAgICAgImJyb3dzZXJfa3dhcmdzIjogImJyb3dzZXJfa3dhcmdzIiwKICAgICAgICAgICAg
ICAgICAgImV4ZWN1dG9yX2t3YXJncyI6ICJleGVjdXRvcl9rd2FyZ3MiLAogICAgICAgICAgICAg
ICAgICAiZW52X2V4dHJhcyI6ICJlbnZfZXh0cmFzIiwKLSAgICAgICAgICAgICAgICAgImVudl9v
cHRpb25zIjogImVudl9vcHRpb25zIn0KKyAgICAgICAgICAgICAgICAgImVudl9vcHRpb25zIjog
ImVudl9vcHRpb25zIiwKKyAgICAgICAgICAgICAgICAgInJ1bl9pbmZvX2V4dHJhcyI6ICJydW5f
aW5mb19leHRyYXMiLAorICAgICAgICAgICAgICAgICAidGltZW91dF9tdWx0aXBsaWVyIjogImdl
dF90aW1lb3V0X211bHRpcGxpZXIifQorCiAKIGRlZiBnZXRfdGltZW91dF9tdWx0aXBsaWVyKHRl
c3RfdHlwZSwgcnVuX2luZm9fZGF0YSwgKiprd2FyZ3MpOgogICAgIGlmIGt3YXJnc1sidGltZW91
dF9tdWx0aXBsaWVyIl0gaXMgbm90IE5vbmU6CkBAIC0yMyw5ICsyOSwxMSBAQCBkZWYgZ2V0X3Rp
bWVvdXRfbXVsdGlwbGllcih0ZXN0X3R5cGUsIHJ1bl9pbmZvX2RhdGEsICoqa3dhcmdzKToKICAg
ICAgICAgcmV0dXJuIDEwCiAgICAgcmV0dXJuIDEKIAorCiBkZWYgY2hlY2tfYXJncygqKmt3YXJn
cyk6CiAgICAgcmVxdWlyZV9hcmcoa3dhcmdzLCAid2ViZHJpdmVyX2JpbmFyeSIpCiAKKwogZGVm
IGJyb3dzZXJfa3dhcmdzKHRlc3RfdHlwZSwgcnVuX2luZm9fZGF0YSwgY29uZmlnLCAqKmt3YXJn
cyk6CiAgICAgcmV0dXJuIHsid2ViZHJpdmVyX2JpbmFyeSI6IGt3YXJnc1sid2ViZHJpdmVyX2Jp
bmFyeSJdLAogICAgICAgICAgICAgIndlYmRyaXZlcl9hcmdzIjoga3dhcmdzLmdldCgid2ViZHJp
dmVyX2FyZ3MiKSwKQEAgLTMzLDYgKzQxLDcgQEAgZGVmIGJyb3dzZXJfa3dhcmdzKHRlc3RfdHlw
ZSwgcnVuX2luZm9fZGF0YSwgY29uZmlnLCAqKmt3YXJncyk6CiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBydW5faW5mb19kYXRhLAogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKipr
d2FyZ3MpfQogCisKIGRlZiBleGVjdXRvcl9rd2FyZ3ModGVzdF90eXBlLCBzZXJ2ZXJfY29uZmln
LCBjYWNoZV9tYW5hZ2VyLCBydW5faW5mb19kYXRhLAogICAgICAgICAgICAgICAgICAgICAqKmt3
YXJncyk6CiAgICAgZXhlY3V0b3Jfa3dhcmdzID0gYmFzZV9leGVjdXRvcl9rd2FyZ3ModGVzdF90
eXBlLCBzZXJ2ZXJfY29uZmlnLApAQCAtNDIsMTQgKzUxLDE5IEBAIGRlZiBleGVjdXRvcl9rd2Fy
Z3ModGVzdF90eXBlLCBzZXJ2ZXJfY29uZmlnLCBjYWNoZV9tYW5hZ2VyLCBydW5faW5mb19kYXRh
LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHJ1bl9pbmZvX2RhdGEsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiprd2FyZ3MpCiAgICAgZXhl
Y3V0b3Jfa3dhcmdzWyJjYXBhYmlsaXRpZXMiXSA9IHt9CisgICAgaWYgdGVzdF90eXBlID09ICJ0
ZXN0aGFybmVzcyI6CisgICAgICAgIGV4ZWN1dG9yX2t3YXJnc1siY2FwYWJpbGl0aWVzIl1bInBh
Z2VMb2FkU3RyYXRlZ3kiXSA9ICJlYWdlciIKICAgICByZXR1cm4gZXhlY3V0b3Jfa3dhcmdzCiAK
KwogZGVmIGVudl9leHRyYXMoKiprd2FyZ3MpOgogICAgIHJldHVybiBbXQogCisKIGRlZiBlbnZf
b3B0aW9ucygpOgogICAgIHJldHVybiB7InN1cHBvcnRzX2RlYnVnZ2VyIjogRmFsc2V9CiAKKwog
Y2xhc3MgRWRnZUJyb3dzZXIoQnJvd3Nlcik6CiAgICAgdXNlZF9wb3J0cyA9IHNldCgpCiAgICAg
aW5pdF90aW1lb3V0ID0gNjAKQEAgLTY2LDExICs4MCwyNiBAQCBjbGFzcyBFZGdlQnJvd3NlcihC
cm93c2VyKToKIAogCiAgICAgZGVmIHN0YXJ0KHNlbGYsICoqa3dhcmdzKToKLSAgICAgICAgcHJp
bnQgc2VsZi5zZXJ2ZXIudXJsCisgICAgICAgIHByaW50KHNlbGYuc2VydmVyLnVybCkKICAgICAg
ICAgc2VsZi5zZXJ2ZXIuc3RhcnQoKQogCiAgICAgZGVmIHN0b3Aoc2VsZiwgZm9yY2U9RmFsc2Up
OgogICAgICAgICBzZWxmLnNlcnZlci5zdG9wKGZvcmNlPWZvcmNlKQorICAgICAgICAjIFdhaXQg
Zm9yIEVkZ2UgYnJvd3NlciBwcm9jZXNzIHRvIGV4aXQgaWYgZHJpdmVyIHByb2Nlc3MgaXMgZm91
bmQKKyAgICAgICAgZWRnZV9wcm9jX25hbWUgPSAnTWljcm9zb2Z0RWRnZS5leGUnCisgICAgICAg
IGZvciBpIGluIHJhbmdlKDAsNSk6CisgICAgICAgICAgICBwcm9jcyA9IHN1YnByb2Nlc3MuY2hl
Y2tfb3V0cHV0KFsndGFza2xpc3QnLCAnL2ZpJywgJ0ltYWdlTmFtZSBlcSAnICsgZWRnZV9wcm9j
X25hbWVdKQorICAgICAgICAgICAgaWYgJ01pY3Jvc29mdFdlYkRyaXZlci5leGUnIG5vdCBpbiBw
cm9jczoKKyAgICAgICAgICAgICAgICAjIEVkZ2UgZHJpdmVyIHByb2Nlc3MgYWxyZWFkeSBleGl0
ZWQsIGRvbid0IHdhaXQgZm9yIGJyb3dzZXIgcHJvY2VzcyB0byBleGl0CisgICAgICAgICAgICAg
ICAgYnJlYWsKKyAgICAgICAgICAgIGVsaWYgZWRnZV9wcm9jX25hbWUgaW4gcHJvY3M6CisgICAg
ICAgICAgICAgICAgdGltZS5zbGVlcCgwLjUpCisgICAgICAgICAgICBlbHNlOgorICAgICAgICAg
ICAgICAgIGJyZWFrCisKKyAgICAgICAgaWYgZWRnZV9wcm9jX25hbWUgaW4gcHJvY3M6CisgICAg
ICAgICAgICAjIGNsb3NlIEVkZ2UgcHJvY2VzcyBpZiBpdCBpcyBzdGlsbCBydW5uaW5nCisgICAg
ICAgICAgICBzdWJwcm9jZXNzLmNhbGwoWyd0YXNra2lsbC5leGUnLCAnL2YnLCAnL2ltJywgJ21p
Y3Jvc29mdGVkZ2UqJ10pCiAKICAgICBkZWYgcGlkKHNlbGYpOgogICAgICAgICByZXR1cm4gc2Vs
Zi5zZXJ2ZXIucGlkCkBAIC03OSwxMCArMTA4LDI0IEBAIGNsYXNzIEVkZ2VCcm93c2VyKEJyb3dz
ZXIpOgogICAgICAgICAjIFRPRE8oYXRvKTogVGhpcyBvbmx5IGluZGljYXRlcyB0aGUgc2VydmVy
IGlzIGFsaXZlLAogICAgICAgICAjIGFuZCBkb2Vzbid0IHNheSBhbnl0aGluZyBhYm91dCB3aGV0
aGVyIGEgYnJvd3NlciBzZXNzaW9uCiAgICAgICAgICMgaXMgYWN0aXZlLgotICAgICAgICByZXR1
cm4gc2VsZi5zZXJ2ZXIuaXNfYWxpdmUoKQorICAgICAgICByZXR1cm4gc2VsZi5zZXJ2ZXIuaXNf
YWxpdmUKIAogICAgIGRlZiBjbGVhbnVwKHNlbGYpOgogICAgICAgICBzZWxmLnN0b3AoKQogCiAg
ICAgZGVmIGV4ZWN1dG9yX2Jyb3dzZXIoc2VsZik6CiAgICAgICAgIHJldHVybiBFeGVjdXRvckJy
b3dzZXIsIHsid2ViZHJpdmVyX3VybCI6IHNlbGYuc2VydmVyLnVybH0KKworCitkZWYgcnVuX2lu
Zm9fZXh0cmFzKCoqa3dhcmdzKToKKyAgICBvc1JlbGVhc2VDb21tYW5kID0gciIoR2V0LUl0ZW1Q
cm9wZXJ0eSAnSEtMTTpcU29mdHdhcmVcTWljcm9zb2Z0XFdpbmRvd3MgTlRcQ3VycmVudFZlcnNp
b24nKS5SZWxlYXNlSWQiCisgICAgb3NCdWlsZENvbW1hbmQgPSByIihHZXQtSXRlbVByb3BlcnR5
ICdIS0xNOlxTb2Z0d2FyZVxNaWNyb3NvZnRcV2luZG93cyBOVFxDdXJyZW50VmVyc2lvbicpLkJ1
aWxkTGFiRXgiCisgICAgdHJ5OgorICAgICAgICBvc19yZWxlYXNlID0gc3VicHJvY2Vzcy5jaGVj
a19vdXRwdXQoWyJwb3dlcnNoZWxsLmV4ZSIsIG9zUmVsZWFzZUNvbW1hbmRdKS5zdHJpcCgpCisg
ICAgICAgIG9zX2J1aWxkID0gc3VicHJvY2Vzcy5jaGVja19vdXRwdXQoWyJwb3dlcnNoZWxsLmV4
ZSIsIG9zQnVpbGRDb21tYW5kXSkuc3RyaXAoKQorICAgIGV4Y2VwdCAoc3VicHJvY2Vzcy5DYWxs
ZWRQcm9jZXNzRXJyb3IsIE9TRXJyb3IpOgorICAgICAgICByZXR1cm4ge30KKworICAgIHJ2ID0g
eyJvc19idWlsZCI6IG9zX2J1aWxkLAorICAgICAgICAgICJvc19yZWxlYXNlIjogb3NfcmVsZWFz
ZX0KKyAgICByZXR1cm4gcnYKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9icm93c2Vycy9lZGdl
X3dlYmRyaXZlci5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9icm93c2Vycy9lZGdlX3dlYmRyaXZlci5weQpu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uYzI1NDVkZTQ2ZjAKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvYnJvd3NlcnMvZWRnZV93ZWJkcml2ZXIucHkKQEAg
LTAsMCArMSwxMiBAQAorZnJvbSAuYmFzZSBpbXBvcnQgaW5oZXJpdAorZnJvbSAuIGltcG9ydCBl
ZGdlCisKK2Zyb20gLi5leGVjdXRvcnMuZXhlY3V0b3J3ZWJkcml2ZXIgaW1wb3J0IChXZWJEcml2
ZXJUZXN0aGFybmVzc0V4ZWN1dG9yLCAgIyBub3FhOiBGNDAxCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgV2ViRHJpdmVyUmVmVGVzdEV4ZWN1dG9yKSAgIyBub3Fh
OiBGNDAxCisKKworaW5oZXJpdChlZGdlLCBnbG9iYWxzKCksICJlZGdlX3dlYmRyaXZlciIpCisK
KyMgX193cHRydW5uZXJfXyBtYWdpY2FsbHkgYXBwZWFycyBmcm9tIGluaGVyaXQsIEY4MjEgaXMg
dW5kZWZpbmVkIG5hbWUKK19fd3B0cnVubmVyX19bImV4ZWN1dG9yIl1bInRlc3RoYXJuZXNzIl0g
PSAiV2ViRHJpdmVyVGVzdGhhcm5lc3NFeGVjdXRvciIgICMgbm9xYTogRjgyMQorX193cHRydW5u
ZXJfX1siZXhlY3V0b3IiXVsicmVmdGVzdCJdID0gIldlYkRyaXZlclJlZlRlc3RFeGVjdXRvciIg
ICMgbm9xYTogRjgyMQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2Jyb3dzZXJzL2VkZ2VjaHJv
bWl1bS5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvd3B0cnVubmVyL3dwdHJ1bm5lci9icm93c2Vycy9lZGdlY2hyb21pdW0ucHkKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjYzNjgwYjY3NzRhCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93
cHRydW5uZXIvd3B0cnVubmVyL2Jyb3dzZXJzL2VkZ2VjaHJvbWl1bS5weQpAQCAtMCwwICsxLDEx
NiBAQAorZnJvbSAuYmFzZSBpbXBvcnQgQnJvd3NlciwgRXhlY3V0b3JCcm93c2VyLCByZXF1aXJl
X2FyZw0KK2Zyb20gLmJhc2UgaW1wb3J0IGdldF90aW1lb3V0X211bHRpcGxpZXIgICAjIG5vcWE6
IEY0MDENCitmcm9tIC4ud2ViZHJpdmVyX3NlcnZlciBpbXBvcnQgRWRnZUNocm9taXVtRHJpdmVy
U2VydmVyDQorZnJvbSAuLmV4ZWN1dG9ycyBpbXBvcnQgZXhlY3V0b3Jfa3dhcmdzIGFzIGJhc2Vf
ZXhlY3V0b3Jfa3dhcmdzDQorZnJvbSAuLmV4ZWN1dG9ycy5leGVjdXRvcndlYmRyaXZlciBpbXBv
cnQgKFdlYkRyaXZlclRlc3RoYXJuZXNzRXhlY3V0b3IsICAjIG5vcWE6IEY0MDENCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgV2ViRHJpdmVyUmVmVGVzdEV4ZWN1
dG9yKSAgIyBub3FhOiBGNDAxDQorZnJvbSAuLmV4ZWN1dG9ycy5leGVjdXRvcmVkZ2VjaHJvbWl1
bSBpbXBvcnQgRWRnZUNocm9taXVtRHJpdmVyV2RzcGVjRXhlY3V0b3IgICMgbm9xYTogRjQwMQ0K
Kw0KKw0KK19fd3B0cnVubmVyX18gPSB7InByb2R1Y3QiOiAiZWRnZWNocm9taXVtIiwNCisgICAg
ICAgICAgICAgICAgICJjaGVja19hcmdzIjogImNoZWNrX2FyZ3MiLA0KKyAgICAgICAgICAgICAg
ICAgImJyb3dzZXIiOiAiRWRnZUNocm9taXVtQnJvd3NlciIsDQorICAgICAgICAgICAgICAgICAi
ZXhlY3V0b3IiOiB7InRlc3RoYXJuZXNzIjogIldlYkRyaXZlclRlc3RoYXJuZXNzRXhlY3V0b3Ii
LA0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJyZWZ0ZXN0IjogIldlYkRyaXZlclJl
ZlRlc3RFeGVjdXRvciIsDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIndkc3BlYyI6
ICJFZGdlQ2hyb21pdW1Ecml2ZXJXZHNwZWNFeGVjdXRvciJ9LA0KKyAgICAgICAgICAgICAgICAg
ImJyb3dzZXJfa3dhcmdzIjogImJyb3dzZXJfa3dhcmdzIiwNCisgICAgICAgICAgICAgICAgICJl
eGVjdXRvcl9rd2FyZ3MiOiAiZXhlY3V0b3Jfa3dhcmdzIiwNCisgICAgICAgICAgICAgICAgICJl
bnZfZXh0cmFzIjogImVudl9leHRyYXMiLA0KKyAgICAgICAgICAgICAgICAgImVudl9vcHRpb25z
IjogImVudl9vcHRpb25zIiwNCisgICAgICAgICAgICAgICAgICJ0aW1lb3V0X211bHRpcGxpZXIi
OiAiZ2V0X3RpbWVvdXRfbXVsdGlwbGllciIsfQ0KKw0KKw0KK2RlZiBjaGVja19hcmdzKCoqa3dh
cmdzKToNCisgICAgcmVxdWlyZV9hcmcoa3dhcmdzLCAid2ViZHJpdmVyX2JpbmFyeSIpDQorDQor
DQorZGVmIGJyb3dzZXJfa3dhcmdzKHRlc3RfdHlwZSwgcnVuX2luZm9fZGF0YSwgY29uZmlnLCAq
Kmt3YXJncyk6DQorICAgIHJldHVybiB7ImJpbmFyeSI6IGt3YXJnc1siYmluYXJ5Il0sDQorICAg
ICAgICAgICAgIndlYmRyaXZlcl9iaW5hcnkiOiBrd2FyZ3NbIndlYmRyaXZlcl9iaW5hcnkiXSwN
CisgICAgICAgICAgICAid2ViZHJpdmVyX2FyZ3MiOiBrd2FyZ3MuZ2V0KCJ3ZWJkcml2ZXJfYXJn
cyIpfQ0KKw0KKw0KK2RlZiBleGVjdXRvcl9rd2FyZ3ModGVzdF90eXBlLCBzZXJ2ZXJfY29uZmln
LCBjYWNoZV9tYW5hZ2VyLCBydW5faW5mb19kYXRhLA0KKyAgICAgICAgICAgICAgICAgICAgKipr
d2FyZ3MpOg0KKyAgICBleGVjdXRvcl9rd2FyZ3MgPSBiYXNlX2V4ZWN1dG9yX2t3YXJncyh0ZXN0
X3R5cGUsIHNlcnZlcl9jb25maWcsDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGNhY2hlX21hbmFnZXIsIHJ1bl9pbmZvX2RhdGEsDQorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICoqa3dhcmdzKQ0KKyAgICBleGVjdXRvcl9rd2Fy
Z3NbImNsb3NlX2FmdGVyX2RvbmUiXSA9IFRydWUNCisgICAgZXhlY3V0b3Jfa3dhcmdzWyJzdXBw
b3J0c19lYWdlcl9wYWdlbG9hZCJdID0gRmFsc2UNCisNCisgICAgY2FwYWJpbGl0aWVzID0gew0K
KyAgICAgICAgImdvb2c6Y2hyb21lT3B0aW9ucyI6IHsNCisgICAgICAgICAgICAicHJlZnMiOiB7
DQorICAgICAgICAgICAgICAgICJwcm9maWxlIjogew0KKyAgICAgICAgICAgICAgICAgICAgImRl
ZmF1bHRfY29udGVudF9zZXR0aW5nX3ZhbHVlcyI6IHsNCisgICAgICAgICAgICAgICAgICAgICAg
ICAicG9wdXBzIjogMQ0KKyAgICAgICAgICAgICAgICAgICAgfQ0KKyAgICAgICAgICAgICAgICB9
DQorICAgICAgICAgICAgfSwNCisgICAgICAgICAgICAidXNlQXV0b21hdGlvbkV4dGVuc2lvbiI6
IEZhbHNlLA0KKyAgICAgICAgICAgICJleGNsdWRlU3dpdGNoZXMiOiBbImVuYWJsZS1hdXRvbWF0
aW9uIl0sDQorICAgICAgICAgICAgInczYyI6IFRydWUNCisgICAgICAgIH0NCisgICAgfQ0KKw0K
KyAgICBpZiB0ZXN0X3R5cGUgPT0gInRlc3RoYXJuZXNzIjoNCisgICAgICAgIGNhcGFiaWxpdGll
c1sicGFnZUxvYWRTdHJhdGVneSJdID0gIm5vbmUiDQorDQorICAgIGZvciAoa3dhcmcsIGNhcGFi
aWxpdHkpIGluIFsoImJpbmFyeSIsICJiaW5hcnkiKSwgKCJiaW5hcnlfYXJncyIsICJhcmdzIild
Og0KKyAgICAgICAgaWYga3dhcmdzW2t3YXJnXSBpcyBub3QgTm9uZToNCisgICAgICAgICAgICBj
YXBhYmlsaXRpZXNbImdvb2c6Y2hyb21lT3B0aW9ucyJdW2NhcGFiaWxpdHldID0ga3dhcmdzW2t3
YXJnXQ0KKw0KKyAgICBpZiBrd2FyZ3NbImhlYWRsZXNzIl06DQorICAgICAgICBpZiAiYXJncyIg
bm90IGluIGNhcGFiaWxpdGllc1siZ29vZzpjaHJvbWVPcHRpb25zIl06DQorICAgICAgICAgICAg
Y2FwYWJpbGl0aWVzWyJnb29nOmNocm9tZU9wdGlvbnMiXVsiYXJncyJdID0gW10NCisgICAgICAg
IGlmICItLWhlYWRsZXNzIiBub3QgaW4gY2FwYWJpbGl0aWVzWyJnb29nOmNocm9tZU9wdGlvbnMi
XVsiYXJncyJdOg0KKyAgICAgICAgICAgIGNhcGFiaWxpdGllc1siZ29vZzpjaHJvbWVPcHRpb25z
Il1bImFyZ3MiXS5hcHBlbmQoIi0taGVhZGxlc3MiKQ0KKw0KKyAgICBleGVjdXRvcl9rd2FyZ3Nb
ImNhcGFiaWxpdGllcyJdID0gY2FwYWJpbGl0aWVzDQorDQorICAgIHJldHVybiBleGVjdXRvcl9r
d2FyZ3MNCisNCisNCitkZWYgZW52X2V4dHJhcygqKmt3YXJncyk6DQorICAgIHJldHVybiBbXQ0K
Kw0KKw0KK2RlZiBlbnZfb3B0aW9ucygpOg0KKyAgICByZXR1cm4ge30NCisNCisNCitjbGFzcyBF
ZGdlQ2hyb21pdW1Ccm93c2VyKEJyb3dzZXIpOg0KKyAgICAiIiJNaWNyb3NvZnRFZGdlIGlzIGJh
Y2tlZCBieSBNU0VkZ2VEcml2ZXIsIHdoaWNoIGlzIHN1cHBsaWVkIHRocm91Z2gNCisgICAgYGB3
cHRydW5uZXIud2ViZHJpdmVyLkVkZ2VDaHJvbWl1bURyaXZlclNlcnZlcmBgLg0KKyAgICAiIiIN
CisNCisgICAgZGVmIF9faW5pdF9fKHNlbGYsIGxvZ2dlciwgYmluYXJ5LCB3ZWJkcml2ZXJfYmlu
YXJ5PSJtc2VkZ2Vkcml2ZXIiLA0KKyAgICAgICAgICAgICAgICAgd2ViZHJpdmVyX2FyZ3M9Tm9u
ZSk6DQorICAgICAgICAiIiJDcmVhdGVzIGEgbmV3IHJlcHJlc2VudGF0aW9uIG9mIE1pY3Jvc29m
dEVkZ2UuICBUaGUgYGJpbmFyeWAgYXJndW1lbnQgZ2l2ZXMNCisgICAgICAgIHRoZSBicm93c2Vy
IGJpbmFyeSB0byB1c2UgZm9yIHRlc3RpbmcuIiIiDQorICAgICAgICBCcm93c2VyLl9faW5pdF9f
KHNlbGYsIGxvZ2dlcikNCisgICAgICAgIHNlbGYuYmluYXJ5ID0gYmluYXJ5DQorICAgICAgICBz
ZWxmLnNlcnZlciA9IEVkZ2VDaHJvbWl1bURyaXZlclNlcnZlcihzZWxmLmxvZ2dlciwNCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJpbmFyeT13ZWJkcml2ZXJfYmlu
YXJ5LA0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJncz13ZWJk
cml2ZXJfYXJncykNCisNCisgICAgZGVmIHN0YXJ0KHNlbGYsICoqa3dhcmdzKToNCisgICAgICAg
IHNlbGYuc2VydmVyLnN0YXJ0KGJsb2NrPUZhbHNlKQ0KKw0KKyAgICBkZWYgc3RvcChzZWxmLCBm
b3JjZT1GYWxzZSk6DQorICAgICAgICBzZWxmLnNlcnZlci5zdG9wKGZvcmNlPWZvcmNlKQ0KKw0K
KyAgICBkZWYgcGlkKHNlbGYpOg0KKyAgICAgICAgcmV0dXJuIHNlbGYuc2VydmVyLnBpZA0KKw0K
KyAgICBkZWYgaXNfYWxpdmUoc2VsZik6DQorICAgICAgICAjIFRPRE8oYXRvKTogVGhpcyBvbmx5
IGluZGljYXRlcyB0aGUgZHJpdmVyIGlzIGFsaXZlLA0KKyAgICAgICAgIyBhbmQgZG9lc24ndCBz
YXkgYW55dGhpbmcgYWJvdXQgd2hldGhlciBhIGJyb3dzZXIgc2Vzc2lvbg0KKyAgICAgICAgIyBp
cyBhY3RpdmUuDQorICAgICAgICByZXR1cm4gc2VsZi5zZXJ2ZXIuaXNfYWxpdmUNCisNCisgICAg
ZGVmIGNsZWFudXAoc2VsZik6DQorICAgICAgICBzZWxmLnN0b3AoKQ0KKw0KKyAgICBkZWYgZXhl
Y3V0b3JfYnJvd3NlcihzZWxmKToNCisgICAgICAgIHJldHVybiBFeGVjdXRvckJyb3dzZXIsIHsi
d2ViZHJpdmVyX3VybCI6IHNlbGYuc2VydmVyLnVybH0NCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5u
ZXIvYnJvd3NlcnMvZXBpcGhhbnkucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvYnJvd3NlcnMvZXBpcGhhbnku
cHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjhhMGU1ZjU3OGIyCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2Jyb3dzZXJzL2VwaXBoYW55LnB5CkBAIC0w
LDAgKzEsNzUgQEAKK2Zyb20gLmJhc2UgaW1wb3J0IGdldF90aW1lb3V0X211bHRpcGxpZXIsIG1h
eWJlX2FkZF9hcmdzLCBjZXJ0aWZpY2F0ZV9kb21haW5fbGlzdCAgIyBub3FhOiBGNDAxCitmcm9t
IC53ZWJraXQgaW1wb3J0IFdlYktpdEJyb3dzZXIKK2Zyb20gLi5leGVjdXRvcnMgaW1wb3J0IGV4
ZWN1dG9yX2t3YXJncyBhcyBiYXNlX2V4ZWN1dG9yX2t3YXJncworZnJvbSAuLmV4ZWN1dG9ycy5l
eGVjdXRvcndlYmRyaXZlciBpbXBvcnQgKFdlYkRyaXZlclRlc3RoYXJuZXNzRXhlY3V0b3IsICAj
IG5vcWE6IEY0MDEKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBX
ZWJEcml2ZXJSZWZUZXN0RXhlY3V0b3IpICAjIG5vcWE6IEY0MDEKK2Zyb20gLi5leGVjdXRvcnMu
ZXhlY3V0b3J3ZWJraXQgaW1wb3J0IFdlYktpdERyaXZlcldkc3BlY0V4ZWN1dG9yICAjIG5vcWE6
IEY0MDEKKworX193cHRydW5uZXJfXyA9IHsicHJvZHVjdCI6ICJlcGlwaGFueSIsCisgICAgICAg
ICAgICAgICAgICJjaGVja19hcmdzIjogImNoZWNrX2FyZ3MiLAorICAgICAgICAgICAgICAgICAi
YnJvd3NlciI6ICJFcGlwaGFueUJyb3dzZXIiLAorICAgICAgICAgICAgICAgICAiYnJvd3Nlcl9r
d2FyZ3MiOiAiYnJvd3Nlcl9rd2FyZ3MiLAorICAgICAgICAgICAgICAgICAiZXhlY3V0b3IiOiB7
InRlc3RoYXJuZXNzIjogIldlYkRyaXZlclRlc3RoYXJuZXNzRXhlY3V0b3IiLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgInJlZnRlc3QiOiAiV2ViRHJpdmVyUmVmVGVzdEV4ZWN1dG9y
IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ3ZHNwZWMiOiAiV2ViS2l0RHJpdmVy
V2RzcGVjRXhlY3V0b3IifSwKKyAgICAgICAgICAgICAgICAgImV4ZWN1dG9yX2t3YXJncyI6ICJl
eGVjdXRvcl9rd2FyZ3MiLAorICAgICAgICAgICAgICAgICAiZW52X2V4dHJhcyI6ICJlbnZfZXh0
cmFzIiwKKyAgICAgICAgICAgICAgICAgImVudl9vcHRpb25zIjogImVudl9vcHRpb25zIiwKKyAg
ICAgICAgICAgICAgICAgInJ1bl9pbmZvX2V4dHJhcyI6ICJydW5faW5mb19leHRyYXMiLAorICAg
ICAgICAgICAgICAgICAidGltZW91dF9tdWx0aXBsaWVyIjogImdldF90aW1lb3V0X211bHRpcGxp
ZXIifQorCisKK2RlZiBjaGVja19hcmdzKCoqa3dhcmdzKToKKyAgICBwYXNzCisKKworZGVmIGJy
b3dzZXJfa3dhcmdzKHRlc3RfdHlwZSwgcnVuX2luZm9fZGF0YSwgY29uZmlnLCAqKmt3YXJncyk6
CisgICAgIyBXb3JrYXJvdW5kIGZvciBodHRwczovL2dpdGxhYi5nbm9tZS5vcmcvR05PTUUvbGli
c291cC9pc3N1ZXMvMTcyCisgICAgd2ViZHJpdmVyX3JlcXVpcmVkX2FyZ3MgPSBbIi0taG9zdD0x
MjcuMC4wLjEiXQorICAgIHdlYmRyaXZlcl9hcmdzID0gbWF5YmVfYWRkX2FyZ3Mod2ViZHJpdmVy
X3JlcXVpcmVkX2FyZ3MsIGt3YXJncy5nZXQoIndlYmRyaXZlcl9hcmdzIikpCisgICAgcmV0dXJu
IHsiYmluYXJ5Ijoga3dhcmdzWyJiaW5hcnkiXSwKKyAgICAgICAgICAgICJ3ZWJkcml2ZXJfYmlu
YXJ5Ijoga3dhcmdzWyJ3ZWJkcml2ZXJfYmluYXJ5Il0sCisgICAgICAgICAgICAid2ViZHJpdmVy
X2FyZ3MiOiB3ZWJkcml2ZXJfYXJnc30KKworCitkZWYgY2FwYWJpbGl0aWVzKHNlcnZlcl9jb25m
aWcsICoqa3dhcmdzKToKKyAgICBhcmdzID0ga3dhcmdzLmdldCgiYmluYXJ5X2FyZ3MiLCBbXSkK
KyAgICBpZiAiLS1hdXRvbWF0aW9uLW1vZGUiIG5vdCBpbiBhcmdzOgorICAgICAgICBhcmdzLmFw
cGVuZCgiLS1hdXRvbWF0aW9uLW1vZGUiKQorCisgICAgcmV0dXJuIHsKKyAgICAgICAgImJyb3dz
ZXJOYW1lIjogIkVwaXBoYW55IiwKKyAgICAgICAgImJyb3dzZXJWZXJzaW9uIjogIjMuMzEuNCIs
ICAjIEZpcnN0IHZlcnNpb24gdG8gc3VwcG9ydCBhdXRvbWF0aW9uCisgICAgICAgICJwbGF0Zm9y
bU5hbWUiOiAiQU5ZIiwKKyAgICAgICAgIndlYmtpdGd0azpicm93c2VyT3B0aW9ucyI6IHsKKyAg
ICAgICAgICAgICJiaW5hcnkiOiBrd2FyZ3NbImJpbmFyeSJdLAorICAgICAgICAgICAgImFyZ3Mi
OiBhcmdzLAorICAgICAgICAgICAgImNlcnRpZmljYXRlcyI6IGNlcnRpZmljYXRlX2RvbWFpbl9s
aXN0KHNlcnZlcl9jb25maWcuZG9tYWluc19zZXQsIGt3YXJnc1siaG9zdF9jZXJ0X3BhdGgiXSl9
fQorCisKK2RlZiBleGVjdXRvcl9rd2FyZ3ModGVzdF90eXBlLCBzZXJ2ZXJfY29uZmlnLCBjYWNo
ZV9tYW5hZ2VyLCBydW5faW5mb19kYXRhLAorICAgICAgICAgICAgICAgICAgICAqKmt3YXJncyk6
CisgICAgZXhlY3V0b3Jfa3dhcmdzID0gYmFzZV9leGVjdXRvcl9rd2FyZ3ModGVzdF90eXBlLCBz
ZXJ2ZXJfY29uZmlnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGNhY2hlX21hbmFnZXIsIHJ1bl9pbmZvX2RhdGEsICoqa3dhcmdzKQorICAgIGV4ZWN1dG9yX2t3
YXJnc1siY2xvc2VfYWZ0ZXJfZG9uZSJdID0gVHJ1ZQorICAgIGV4ZWN1dG9yX2t3YXJnc1siY2Fw
YWJpbGl0aWVzIl0gPSBjYXBhYmlsaXRpZXMoc2VydmVyX2NvbmZpZywgKiprd2FyZ3MpCisgICAg
cmV0dXJuIGV4ZWN1dG9yX2t3YXJncworCisKK2RlZiBlbnZfZXh0cmFzKCoqa3dhcmdzKToKKyAg
ICByZXR1cm4gW10KKworCitkZWYgZW52X29wdGlvbnMoKToKKyAgICByZXR1cm4ge30KKworCitk
ZWYgcnVuX2luZm9fZXh0cmFzKCoqa3dhcmdzKToKKyAgICByZXR1cm4geyJ3ZWJraXRfcG9ydCI6
ICJndGsifQorCisKK2NsYXNzIEVwaXBoYW55QnJvd3NlcihXZWJLaXRCcm93c2VyKToKKyAgICBk
ZWYgX19pbml0X18oc2VsZiwgbG9nZ2VyLCBiaW5hcnk9Tm9uZSwgd2ViZHJpdmVyX2JpbmFyeT1O
b25lLAorICAgICAgICAgICAgICAgICB3ZWJkcml2ZXJfYXJncz1Ob25lKToKKyAgICAgICAgV2Vi
S2l0QnJvd3Nlci5fX2luaXRfXyhzZWxmLCBsb2dnZXIsIGJpbmFyeSwgd2ViZHJpdmVyX2JpbmFy
eSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3ZWJkcml2ZXJfYXJncykKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
d3B0cnVubmVyL3dwdHJ1bm5lci9icm93c2Vycy9mZW5uZWMucHkgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvYnJv
d3NlcnMvZmVubmVjLnB5CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkYjI3MWFjYzUw
ZS4uMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2Jyb3dzZXJzL2Zlbm5lYy5weQorKysg
L2Rldi9udWxsCkBAIC0xLDI1NCArMCwwIEBACi1pbXBvcnQgb3MKLWltcG9ydCBzaWduYWwKLWlt
cG9ydCBzeXMKLWltcG9ydCB0ZW1wZmlsZQotaW1wb3J0IHRyYWNlYmFjawotCi1pbXBvcnQgbW96
bmV0d29yawotZnJvbSBtb3pwcm9jZXNzIGltcG9ydCBQcm9jZXNzSGFuZGxlcgotZnJvbSBtb3pw
cm9maWxlIGltcG9ydCBGaXJlZm94UHJvZmlsZQotZnJvbSBtb3pydW5uZXIgaW1wb3J0IEZlbm5l
Y0VtdWxhdG9yUnVubmVyCi0KLWZyb20gc2VydmUuc2VydmUgaW1wb3J0IG1ha2VfaG9zdHNfZmls
ZQotCi1mcm9tIC5iYXNlIGltcG9ydCAoZ2V0X2ZyZWVfcG9ydCwKLSAgICAgICAgICAgICAgICAg
ICBjbWRfYXJnLAotICAgICAgICAgICAgICAgICAgIGJyb3dzZXJfY29tbWFuZCkKLWZyb20gLi5l
eGVjdXRvcnMuZXhlY3V0b3JtYXJpb25ldHRlIGltcG9ydCBNYXJpb25ldHRlVGVzdGhhcm5lc3NF
eGVjdXRvciAgIyBub3FhOiBGNDAxCi1mcm9tIC5maXJlZm94IGltcG9ydCAoZ2V0X3RpbWVvdXRf
bXVsdGlwbGllciwgdXBkYXRlX3Byb3BlcnRpZXMsIGV4ZWN1dG9yX2t3YXJncywgRmlyZWZveEJy
b3dzZXIpICAjIG5vcWE6IEY0MDEKLQotCi1fX3dwdHJ1bm5lcl9fID0geyJwcm9kdWN0IjogImZl
bm5lYyIsCi0gICAgICAgICAgICAgICAgICJjaGVja19hcmdzIjogImNoZWNrX2FyZ3MiLAotICAg
ICAgICAgICAgICAgICAiYnJvd3NlciI6ICJGZW5uZWNCcm93c2VyIiwKLSAgICAgICAgICAgICAg
ICAgImV4ZWN1dG9yIjogeyJ0ZXN0aGFybmVzcyI6ICJNYXJpb25ldHRlVGVzdGhhcm5lc3NFeGVj
dXRvciJ9LAotICAgICAgICAgICAgICAgICAiYnJvd3Nlcl9rd2FyZ3MiOiAiYnJvd3Nlcl9rd2Fy
Z3MiLAotICAgICAgICAgICAgICAgICAiZXhlY3V0b3Jfa3dhcmdzIjogImV4ZWN1dG9yX2t3YXJn
cyIsCi0gICAgICAgICAgICAgICAgICJlbnZfZXh0cmFzIjogImVudl9leHRyYXMiLAotICAgICAg
ICAgICAgICAgICAiZW52X29wdGlvbnMiOiAiZW52X29wdGlvbnMiLAotICAgICAgICAgICAgICAg
ICAicnVuX2luZm9fZXh0cmFzIjogInJ1bl9pbmZvX2V4dHJhcyIsCi0gICAgICAgICAgICAgICAg
ICJ1cGRhdGVfcHJvcGVydGllcyI6ICJ1cGRhdGVfcHJvcGVydGllcyJ9Ci0KLWNsYXNzIEZlbm5l
Y1Byb2ZpbGUoRmlyZWZveFByb2ZpbGUpOgotICAgICMgV1BULXNwZWNpZmljIHByZWZzIGFyZSBz
ZXQgaW4gRmVubmVjQnJvd3Nlci5zdGFydCgpCi0gICAgRmlyZWZveFByb2ZpbGUucHJlZmVyZW5j
ZXMudXBkYXRlKHsKLSAgICAgICAgIyBNYWtlIHN1cmUgU2hpZWxkIGRvZXNuJ3QgaGl0IHRoZSBu
ZXR3b3JrLgotICAgICAgICAiYXBwLm5vcm1hbmR5LmFwaV91cmwiOiAiIiwKLSAgICAgICAgIyBJ
bmNyZWFzZSB0aGUgQVBaIGNvbnRlbnQgcmVzcG9uc2UgdGltZW91dCBpbiB0ZXN0cyB0byAxIG1p
bnV0ZS4KLSAgICAgICAgImFwei5jb250ZW50X3Jlc3BvbnNlX3RpbWVvdXQiOiA2MDAwMCwKLSAg
ICAgICAgIyBFbmFibGUgb3V0cHV0IG9mIGR1bXAoKQotICAgICAgICAiYnJvd3Nlci5kb20ud2lu
ZG93LmR1bXAuZW5hYmxlZCI6IFRydWUsCi0gICAgICAgICMgRGlzYWJsZSBzYWZlYnJvd3Npbmcg
Y29tcG9uZW50cwotICAgICAgICAiYnJvd3Nlci5zYWZlYnJvd3NpbmcuYmxvY2tlZFVSSXMuZW5h
YmxlZCI6IEZhbHNlLAotICAgICAgICAiYnJvd3Nlci5zYWZlYnJvd3NpbmcuZG93bmxvYWRzLmVu
YWJsZWQiOiBGYWxzZSwKLSAgICAgICAgImJyb3dzZXIuc2FmZWJyb3dzaW5nLnBhc3N3b3Jkcy5l
bmFibGVkIjogRmFsc2UsCi0gICAgICAgICJicm93c2VyLnNhZmVicm93c2luZy5tYWx3YXJlLmVu
YWJsZWQiOiBGYWxzZSwKLSAgICAgICAgImJyb3dzZXIuc2FmZWJyb3dzaW5nLnBoaXNoaW5nLmVu
YWJsZWQiOiBGYWxzZSwKLSAgICAgICAgIyBEbyBub3QgcmVzdG9yZSB0aGUgbGFzdCBvcGVuIHNl
dCBvZiB0YWJzIGlmIHRoZSBicm93c2VyIGhhcyBjcmFzaGVkCi0gICAgICAgICJicm93c2VyLnNl
c3Npb25zdG9yZS5yZXN1bWVfZnJvbV9jcmFzaCI6IEZhbHNlLAotICAgICAgICAjIERpc2FibGUg
QW5kcm9pZCBzbmlwcGV0cwotICAgICAgICAiYnJvd3Nlci5zbmlwcGV0cy5lbmFibGVkIjogRmFs
c2UsCi0gICAgICAgICJicm93c2VyLnNuaXBwZXRzLnN5bmNQcm9tby5lbmFibGVkIjogRmFsc2Us
Ci0gICAgICAgICJicm93c2VyLnNuaXBwZXRzLmZpcnN0cnVuSG9tZXBhZ2UuZW5hYmxlZCI6IEZh
bHNlLAotICAgICAgICAjIERvIG5vdCBhbGxvdyBiYWNrZ3JvdW5kIHRhYnMgdG8gYmUgem9tYmlm
aWVkLCBvdGhlcndpc2UgZm9yIHRlc3RzIHRoYXQKLSAgICAgICAgIyBvcGVuIGFkZGl0aW9uYWwg
dGFicywgdGhlIHRlc3QgaGFybmVzcyB0YWIgaXRzZWxmIG1pZ2h0IGdldCB1bmxvYWRlZAotICAg
ICAgICAiYnJvd3Nlci50YWJzLmRpc2FibGVCYWNrZ3JvdW5kWm9tYmlmaWNhdGlvbiI6IFRydWUs
Ci0gICAgICAgICMgRGlzYWJsZSBlMTBzIGJ5IGRlZmF1bHQKLSAgICAgICAgImJyb3dzZXIudGFi
cy5yZW1vdGUuYXV0b3N0YXJ0IjogRmFsc2UsCi0gICAgICAgICMgRG9uJ3Qgd2FybiB3aGVuIGV4
aXRpbmcgdGhlIGJyb3dzZXIKLSAgICAgICAgImJyb3dzZXIud2Fybk9uUXVpdCI6IEZhbHNlLAot
ICAgICAgICAjIERvbid0IHNlbmQgRmlyZWZveCBoZWFsdGggcmVwb3J0cyB0byB0aGUgcHJvZHVj
dGlvbiBzZXJ2ZXIKLSAgICAgICAgImRhdGFyZXBvcnRpbmcuaGVhbHRocmVwb3J0LmFib3V0LnJl
cG9ydFVybCI6ICJodHRwOi8vJShzZXJ2ZXIpcy9kdW1teS9hYm91dGhlYWx0aHJlcG9ydC8iLAot
ICAgICAgICAjIEF1dG9tYXRpY2FsbHkgdW5sb2FkIGJlZm9yZXVubG9hZCBhbGVydHMKLSAgICAg
ICAgImRvbS5kaXNhYmxlX2JlZm9yZXVubG9hZCI6IFRydWUsCi0gICAgICAgICMgRGlzYWJsZSB0
aGUgUHJvY2Vzc0hhbmdNb25pdG9yCi0gICAgICAgICJkb20uaXBjLnJlcG9ydFByb2Nlc3NIYW5n
cyI6IEZhbHNlLAotICAgICAgICAjIE5vIHNsb3cgc2NyaXB0IGRpYWxvZ3MKLSAgICAgICAgImRv
bS5tYXhfY2hyb21lX3NjcmlwdF9ydW5fdGltZSI6IDAsCi0gICAgICAgICJkb20ubWF4X3Njcmlw
dF9ydW5fdGltZSI6IDAsCi0gICAgICAgICMgTWFrZSBzdXJlIG9wZW5pbmcgYWJvdXQ6YWRkb25z
IHdvbiJ0IGhpdCB0aGUgbmV0d29yawotICAgICAgICAiZXh0ZW5zaW9ucy53ZWJzZXJ2aWNlLmRp
c2NvdmVyVVJMIjogImh0dHA6Ly8lKHNlcnZlcilzL2R1bW15L2Rpc2NvdmVyeVVSTCIsCi0gICAg
ICAgICMgTm8gaGFuZyBtb25pdG9yCi0gICAgICAgICJoYW5nbW9uaXRvci50aW1lb3V0IjogMCwK
LQotICAgICAgICAiamF2YXNjcmlwdC5vcHRpb25zLnNob3dJbkNvbnNvbGUiOiBUcnVlLAotICAg
ICAgICAjIEVuc3VyZSBibG9ja2xpc3QgdXBkYXRlcyBkb24ndCBoaXQgdGhlIG5ldHdvcmsKLSAg
ICAgICAgInNlcnZpY2VzLnNldHRpbmdzLnNlcnZlciI6ICJodHRwOi8vJShzZXJ2ZXIpcy9kdW1t
eS9ibG9ja2xpc3QvIiwKLSAgICAgICAgIyBEaXNhYmxlIHBhc3N3b3JkIGNhcHR1cmUsIHNvIHRo
YXQgdGVzdHMgdGhhdCBpbmNsdWRlIGZvcm1zIGFyZW4idAotICAgICAgICAjIGluZmx1ZW5jZWQg
YnkgdGhlIHByZXNlbmNlIG9mIHRoZSBwZXJzaXN0ZW50IGRvb3JoYW5nZXIgbm90aWZpY2F0aW9u
Ci0gICAgICAgICJzaWdub24ucmVtZW1iZXJTaWdub25zIjogRmFsc2UsCi0gICAgfSkKLQotCi1k
ZWYgY2hlY2tfYXJncygqKmt3YXJncyk6Ci0gICAgcGFzcwotCi1kZWYgYnJvd3Nlcl9rd2FyZ3Mo
dGVzdF90eXBlLCBydW5faW5mb19kYXRhLCBjb25maWcsICoqa3dhcmdzKToKLSAgICByZXR1cm4g
eyJwYWNrYWdlX25hbWUiOiBrd2FyZ3NbInBhY2thZ2VfbmFtZSJdLAotICAgICAgICAgICAgImRl
dmljZV9zZXJpYWwiOiBrd2FyZ3NbImRldmljZV9zZXJpYWwiXSwKLSAgICAgICAgICAgICJwcmVm
c19yb290Ijoga3dhcmdzWyJwcmVmc19yb290Il0sCi0gICAgICAgICAgICAiZXh0cmFfcHJlZnMi
OiBrd2FyZ3NbImV4dHJhX3ByZWZzIl0sCi0gICAgICAgICAgICAidGVzdF90eXBlIjogdGVzdF90
eXBlLAotICAgICAgICAgICAgImRlYnVnX2luZm8iOiBrd2FyZ3NbImRlYnVnX2luZm8iXSwKLSAg
ICAgICAgICAgICJzeW1ib2xzX3BhdGgiOiBrd2FyZ3NbInN5bWJvbHNfcGF0aCJdLAotICAgICAg
ICAgICAgInN0YWNrd2Fsa19iaW5hcnkiOiBrd2FyZ3NbInN0YWNrd2Fsa19iaW5hcnkiXSwKLSAg
ICAgICAgICAgICJjZXJ0dXRpbF9iaW5hcnkiOiBrd2FyZ3NbImNlcnR1dGlsX2JpbmFyeSJdLAot
ICAgICAgICAgICAgImNhX2NlcnRpZmljYXRlX3BhdGgiOiBrd2FyZ3NbInNzbF9lbnYiXS5jYV9j
ZXJ0X3BhdGgoKSwKLSAgICAgICAgICAgICJzdGFja2ZpeF9kaXIiOiBrd2FyZ3NbInN0YWNrZml4
X2RpciJdLAotICAgICAgICAgICAgImJpbmFyeV9hcmdzIjoga3dhcmdzWyJiaW5hcnlfYXJncyJd
LAotICAgICAgICAgICAgInRpbWVvdXRfbXVsdGlwbGllciI6IGdldF90aW1lb3V0X211bHRpcGxp
ZXIodGVzdF90eXBlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgcnVuX2luZm9fZGF0YSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoqa3dhcmdzKSwKLSAgICAgICAgICAgICJs
ZWFrX2NoZWNrIjoga3dhcmdzWyJsZWFrX2NoZWNrIl0sCi0gICAgICAgICAgICAic3R5bG9fdGhy
ZWFkcyI6IGt3YXJnc1sic3R5bG9fdGhyZWFkcyJdLAotICAgICAgICAgICAgImNoYW9zX21vZGVf
ZmxhZ3MiOiBrd2FyZ3NbImNoYW9zX21vZGVfZmxhZ3MiXSwKLSAgICAgICAgICAgICJjb25maWci
OiBjb25maWd9Ci0KLQotZGVmIGVudl9leHRyYXMoKiprd2FyZ3MpOgotICAgIHJldHVybiBbXQot
Ci0KLWRlZiBydW5faW5mb19leHRyYXMoKiprd2FyZ3MpOgotICAgIHJldHVybiB7ImUxMHMiOiBG
YWxzZSwKLSAgICAgICAgICAgICJoZWFkbGVzcyI6IEZhbHNlfQotCi0KLWRlZiBlbnZfb3B0aW9u
cygpOgotICAgICMgVGhlIHNlcnZlciBob3N0IGlzIHNldCB0byBwdWJsaWMgbG9jYWxob3N0IElQ
IHNvIHRoYXQgcmVzb3VyY2VzIGNhbiBiZSBhY2Nlc3NlZAotICAgICMgZnJvbSBBbmRyb2lkIGVt
dWxhdG9yCi0gICAgcmV0dXJuIHsic2VydmVyX2hvc3QiOiBtb3puZXR3b3JrLmdldF9pcCgpLAot
ICAgICAgICAgICAgImJpbmRfYWRkcmVzcyI6IEZhbHNlLAotICAgICAgICAgICAgInN1cHBvcnRz
X2RlYnVnZ2VyIjogVHJ1ZX0KLQotCi1kZWYgd3JpdGVfaG9zdHNfZmlsZShjb25maWcsIGRldmlj
ZSk6Ci0gICAgbmV3X2hvc3RzID0gbWFrZV9ob3N0c19maWxlKGNvbmZpZywgbW96bmV0d29yay5n
ZXRfaXAoKSkKLSAgICBjdXJyZW50X2hvc3RzID0gZGV2aWNlLmdldF9maWxlKCIvZXRjL2hvc3Rz
IikKLSAgICBpZiBuZXdfaG9zdHMgPT0gY3VycmVudF9ob3N0czoKLSAgICAgICAgcmV0dXJuCi0g
ICAgaG9zdHNfZmQsIGhvc3RzX3BhdGggPSB0ZW1wZmlsZS5ta3N0ZW1wKCkKLSAgICB0cnk6Ci0g
ICAgICAgIHdpdGggb3MuZmRvcGVuKGhvc3RzX2ZkLCAidyIpIGFzIGY6Ci0gICAgICAgICAgICBm
LndyaXRlKG5ld19ob3N0cykKLSAgICAgICAgZGV2aWNlLnJlbW91bnQoKQotICAgICAgICBkZXZp
Y2UucHVzaChob3N0c19wYXRoLCAiL2V0Yy9ob3N0cyIpCi0gICAgZmluYWxseToKLSAgICAgICAg
b3MucmVtb3ZlKGhvc3RzX3BhdGgpCi0KLQotY2xhc3MgRmVubmVjQnJvd3NlcihGaXJlZm94QnJv
d3Nlcik6Ci0gICAgdXNlZF9wb3J0cyA9IHNldCgpCi0gICAgaW5pdF90aW1lb3V0ID0gMzAwCi0g
ICAgc2h1dGRvd25fdGltZW91dCA9IDYwCi0KLSAgICBkZWYgX19pbml0X18oc2VsZiwgbG9nZ2Vy
LCBwcmVmc19yb290LCB0ZXN0X3R5cGUsIHBhY2thZ2VfbmFtZT1Ob25lLAotICAgICAgICAgICAg
ICAgICBkZXZpY2Vfc2VyaWFsPSJlbXVsYXRvci01NDQ0IiwgKiprd2FyZ3MpOgotICAgICAgICBG
aXJlZm94QnJvd3Nlci5fX2luaXRfXyhzZWxmLCBsb2dnZXIsIE5vbmUsIHByZWZzX3Jvb3QsIHRl
c3RfdHlwZSwgKiprd2FyZ3MpCi0gICAgICAgIHNlbGYuX3BhY2thZ2VfbmFtZSA9IHBhY2thZ2Vf
bmFtZQotICAgICAgICBzZWxmLmRldmljZV9zZXJpYWwgPSBkZXZpY2Vfc2VyaWFsCi0KLSAgICBA
cHJvcGVydHkKLSAgICBkZWYgcGFja2FnZV9uYW1lKHNlbGYpOgotICAgICAgICAiIiIKLSAgICAg
ICAgTmFtZSBvZiBhcHAgdG8gcnVuIG9uIGVtdWxhdG9yLgotICAgICAgICAiIiIKLSAgICAgICAg
aWYgc2VsZi5fcGFja2FnZV9uYW1lIGlzIE5vbmU6Ci0gICAgICAgICAgICBzZWxmLl9wYWNrYWdl
X25hbWUgPSAib3JnLm1vemlsbGEuZmVubmVjIgotICAgICAgICAgICAgdXNlciA9IG9zLmdldGVu
digiVVNFUiIpCi0gICAgICAgICAgICBpZiB1c2VyOgotICAgICAgICAgICAgICAgIHNlbGYuX3Bh
Y2thZ2VfbmFtZSArPSAiXyIgKyB1c2VyCi0gICAgICAgIHJldHVybiBzZWxmLl9wYWNrYWdlX25h
bWUKLQotICAgIGRlZiBzdGFydChzZWxmLCAqKmt3YXJncyk6Ci0gICAgICAgIGlmIHNlbGYubWFy
aW9uZXR0ZV9wb3J0IGlzIE5vbmU6Ci0gICAgICAgICAgICBzZWxmLm1hcmlvbmV0dGVfcG9ydCA9
IGdldF9mcmVlX3BvcnQoMjgyOCwgZXhjbHVkZT1zZWxmLnVzZWRfcG9ydHMpCi0gICAgICAgICAg
ICBzZWxmLnVzZWRfcG9ydHMuYWRkKHNlbGYubWFyaW9uZXR0ZV9wb3J0KQotCi0gICAgICAgIGVu
diA9IHt9Ci0gICAgICAgIGVudlsiTU9aX0NSQVNIUkVQT1JURVIiXSA9ICIxIgotICAgICAgICBl
bnZbIk1PWl9DUkFTSFJFUE9SVEVSX1NIVVRET1dOIl0gPSAiMSIKLSAgICAgICAgZW52WyJNT1pf
RElTQUJMRV9OT05MT0NBTF9DT05ORUNUSU9OUyJdID0gIjEiCi0gICAgICAgIGVudlsiU1RZTE9f
VEhSRUFEUyJdID0gc3RyKHNlbGYuc3R5bG9fdGhyZWFkcykKLSAgICAgICAgaWYgc2VsZi5jaGFv
c19tb2RlX2ZsYWdzIGlzIG5vdCBOb25lOgotICAgICAgICAgICAgZW52WyJNT1pfQ0hBT1NNT0RF
Il0gPSBzdHIoc2VsZi5jaGFvc19tb2RlX2ZsYWdzKQotCi0gICAgICAgIHByZWZlcmVuY2VzID0g
c2VsZi5sb2FkX3ByZWZzKCkKLQotICAgICAgICBzZWxmLnByb2ZpbGUgPSBGZW5uZWNQcm9maWxl
KHByZWZlcmVuY2VzPXByZWZlcmVuY2VzKQotICAgICAgICBzZWxmLnByb2ZpbGUuc2V0X3ByZWZl
cmVuY2VzKHsibWFyaW9uZXR0ZS5wb3J0Ijogc2VsZi5tYXJpb25ldHRlX3BvcnQsCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJkb20uZGlzYWJsZV9vcGVuX2R1cmluZ19s
b2FkIjogRmFsc2UsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJwbGFj
ZXMuaGlzdG9yeS5lbmFibGVkIjogRmFsc2UsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICJkb20uc2VuZF9hZnRlcl9wYWludF90b19jb250ZW50IjogVHJ1ZSwKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIm5ldHdvcmsucHJlbG9hZCI6IFRydWV9
KQotCi0gICAgICAgIGlmIHNlbGYubGVha19jaGVjayBhbmQga3dhcmdzLmdldCgiY2hlY2tfbGVh
a3MiLCBUcnVlKToKLSAgICAgICAgICAgIHNlbGYubGVha19yZXBvcnRfZmlsZSA9IG9zLnBhdGgu
am9pbihzZWxmLnByb2ZpbGUucHJvZmlsZSwgInJ1bnRlc3RzX2xlYWtzLmxvZyIpCi0gICAgICAg
ICAgICBpZiBvcy5wYXRoLmV4aXN0cyhzZWxmLmxlYWtfcmVwb3J0X2ZpbGUpOgotICAgICAgICAg
ICAgICAgIG9zLnJlbW92ZShzZWxmLmxlYWtfcmVwb3J0X2ZpbGUpCi0gICAgICAgICAgICBlbnZb
IlhQQ09NX01FTV9CTE9BVF9MT0ciXSA9IHNlbGYubGVha19yZXBvcnRfZmlsZQotICAgICAgICBl
bHNlOgotICAgICAgICAgICAgc2VsZi5sZWFrX3JlcG9ydF9maWxlID0gTm9uZQotCi0gICAgICAg
IGlmIHNlbGYuY2FfY2VydGlmaWNhdGVfcGF0aCBpcyBub3QgTm9uZToKLSAgICAgICAgICAgIHNl
bGYuc2V0dXBfc3NsKCkKLQotICAgICAgICBkZWJ1Z19hcmdzLCBjbWQgPSBicm93c2VyX2NvbW1h
bmQoc2VsZi5wYWNrYWdlX25hbWUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBzZWxmLmJpbmFyeV9hcmdzIGlmIHNlbGYuYmluYXJ5X2FyZ3MgZWxzZSBbXSArCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY21kX2FyZygibWFyaW9u
ZXR0ZSIpLCAiYWJvdXQ6YmxhbmsiXSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHNlbGYuZGVidWdfaW5mbykKLQotICAgICAgICBzZWxmLnJ1bm5lciA9IEZlbm5l
Y0VtdWxhdG9yUnVubmVyKGFwcD1zZWxmLnBhY2thZ2VfbmFtZSwKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9maWxlPXNlbGYucHJvZmlsZSwKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbWRhcmdzPWNtZFsxOl0sCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW52PWVudiwKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzeW1ib2xzX3BhdGg9c2VsZi5zeW1i
b2xzX3BhdGgsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2Vy
aWFsPXNlbGYuZGV2aWNlX3NlcmlhbCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAjIFRPRE8gLSBjaG9vc2UgYXBwcm9wcmlhdGUgbG9nIGRpcgotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvZ2Rpcj1vcy5nZXRjd2QoKSwKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9jZXNzX2NsYXNzPVBy
b2Nlc3NIYW5kbGVyLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHByb2Nlc3NfYXJncz17InByb2Nlc3NPdXRwdXRMaW5lIjogW3NlbGYub25fb3V0cHV0XX0pCi0K
LSAgICAgICAgc2VsZi5sb2dnZXIuZGVidWcoIlN0YXJ0aW5nIEZlbm5lYyIpCi0gICAgICAgICMg
Y29ubmVjdCB0byBhIHJ1bm5pbmcgZW11bGF0b3IKLSAgICAgICAgc2VsZi5ydW5uZXIuZGV2aWNl
LmNvbm5lY3QoKQotCi0gICAgICAgIHdyaXRlX2hvc3RzX2ZpbGUoc2VsZi5jb25maWcsIHNlbGYu
cnVubmVyLmRldmljZS5kZXZpY2UpCi0KLSAgICAgICAgc2VsZi5ydW5uZXIuc3RhcnQoZGVidWdf
YXJncz1kZWJ1Z19hcmdzLCBpbnRlcmFjdGl2ZT1zZWxmLmRlYnVnX2luZm8gYW5kIHNlbGYuZGVi
dWdfaW5mby5pbnRlcmFjdGl2ZSkKLQotICAgICAgICAjIGdlY2tvX2xvZyBjb21lcyBmcm9tIGxv
Z2NhdCB3aGVuIHJ1bm5pbmcgd2l0aCBkZXZpY2UvZW11bGF0b3IKLSAgICAgICAgbG9nY2F0X2Fy
Z3MgPSB7Ci0gICAgICAgICAgICAiZmlsdGVyc3BlYyI6ICJHZWNrbyIsCi0gICAgICAgICAgICAi
c2VyaWFsIjogc2VsZi5ydW5uZXIuZGV2aWNlLmFwcF9jdHguZGV2aWNlX3NlcmlhbAotICAgICAg
ICB9Ci0gICAgICAgICMgVE9ETyBzZXR0aW5nIGxvZ2NhdF9hcmdzWyJsb2dmaWxlIl0geWllbGRz
IGFuIGFsbW9zdCBlbXB0eSBmaWxlCi0gICAgICAgICMgZXZlbiB3aXRob3V0IGZpbHRlcnNwZWMK
LSAgICAgICAgbG9nY2F0X2FyZ3NbInN0cmVhbSJdID0gc3lzLnN0ZG91dAotICAgICAgICBzZWxm
LnJ1bm5lci5kZXZpY2Uuc3RhcnRfbG9nY2F0KCoqbG9nY2F0X2FyZ3MpCi0KLSAgICAgICAgc2Vs
Zi5ydW5uZXIuZGV2aWNlLmRldmljZS5mb3J3YXJkKAotICAgICAgICAgICAgbG9jYWw9InRjcDp7
fSIuZm9ybWF0KHNlbGYubWFyaW9uZXR0ZV9wb3J0KSwKLSAgICAgICAgICAgIHJlbW90ZT0idGNw
Ont9Ii5mb3JtYXQoc2VsZi5tYXJpb25ldHRlX3BvcnQpKQotCi0gICAgICAgIHNlbGYubG9nZ2Vy
LmRlYnVnKCJGZW5uZWMgU3RhcnRlZCIpCi0KLSAgICBkZWYgc3RvcChzZWxmLCBmb3JjZT1GYWxz
ZSk6Ci0gICAgICAgIGlmIHNlbGYucnVubmVyIGlzIG5vdCBOb25lOgotICAgICAgICAgICAgdHJ5
OgotICAgICAgICAgICAgICAgIGlmIHNlbGYucnVubmVyLmRldmljZS5jb25uZWN0ZWQ6Ci0gICAg
ICAgICAgICAgICAgICAgIHNlbGYucnVubmVyLmRldmljZS5kZXZpY2UucmVtb3ZlX2ZvcndhcmRz
KAotICAgICAgICAgICAgICAgICAgICAgICAgInRjcDp7fSIuZm9ybWF0KHNlbGYubWFyaW9uZXR0
ZV9wb3J0KSkKLSAgICAgICAgICAgIGV4Y2VwdCBFeGNlcHRpb246Ci0gICAgICAgICAgICAgICAg
dHJhY2ViYWNrLnByaW50X2V4Y2VwdGlvbigqc3lzLmV4Y19pbmZvKCkpCi0gICAgICAgICAgICAj
IFdlIGFzc3VtZSB0aGF0IHN0b3BwaW5nIHRoZSBydW5uZXIgcHJvbXB0cyB0aGUKLSAgICAgICAg
ICAgICMgYnJvd3NlciB0byBzaHV0IGRvd24uIFRoaXMgYWxsb3dzIHRoZSBsZWFrIGxvZyB0byBi
ZSB3cml0dGVuCi0gICAgICAgICAgICBmb3IgY2xlYW4sIHN0b3BfZiBpbiBbKFRydWUsIGxhbWJk
YTogc2VsZi5ydW5uZXIud2FpdChzZWxmLnNodXRkb3duX3RpbWVvdXQpKSwKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAoRmFsc2UsIGxhbWJkYTogc2VsZi5ydW5uZXIuc3RvcChz
aWduYWwuU0lHVEVSTSkpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChGYWxz
ZSwgbGFtYmRhOiBzZWxmLnJ1bm5lci5zdG9wKHNpZ25hbC5TSUdLSUxMKSldOgotICAgICAgICAg
ICAgICAgIGlmIG5vdCBmb3JjZSBvciBub3QgY2xlYW46Ci0gICAgICAgICAgICAgICAgICAgIHJl
dGNvZGUgPSBzdG9wX2YoKQotICAgICAgICAgICAgICAgICAgICBpZiByZXRjb2RlIGlzIG5vdCBO
b25lOgotICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5sb2dnZXIuaW5mbygiQnJvd3NlciBl
eGl0ZWQgd2l0aCByZXR1cm4gY29kZSAlcyIgJSByZXRjb2RlKQotICAgICAgICAgICAgICAgICAg
ICAgICAgYnJlYWsKLSAgICAgICAgc2VsZi5sb2dnZXIuZGVidWcoInN0b3BwZWQiKQpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93
cHRydW5uZXIvd3B0cnVubmVyL2Jyb3dzZXJzL2ZpcmVmb3gucHkgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvYnJv
d3NlcnMvZmlyZWZveC5weQppbmRleCAwNGYyY2U4NGE0MS4uNWUzZTQxZWI1NWYgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0
cnVubmVyL3dwdHJ1bm5lci9icm93c2Vycy9maXJlZm94LnB5CisrKyBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9i
cm93c2Vycy9maXJlZm94LnB5CkBAIC03LDYgKzcsNyBAQCBpbXBvcnQgc3lzCiAKIGltcG9ydCBt
b3ppbmZvCiBpbXBvcnQgbW96bGVhaworaW1wb3J0IG1venZlcnNpb24KIGZyb20gbW96cHJvY2Vz
cyBpbXBvcnQgUHJvY2Vzc0hhbmRsZXIKIGZyb20gbW96cHJvZmlsZSBpbXBvcnQgRmlyZWZveFBy
b2ZpbGUsIFByZWZlcmVuY2VzCiBmcm9tIG1venJ1bm5lciBpbXBvcnQgRmlyZWZveFJ1bm5lcgpA
QCAtMzgsNyArMzksOCBAQCBfX3dwdHJ1bm5lcl9fID0geyJwcm9kdWN0IjogImZpcmVmb3giLAog
ICAgICAgICAgICAgICAgICAiZW52X2V4dHJhcyI6ICJlbnZfZXh0cmFzIiwKICAgICAgICAgICAg
ICAgICAgImVudl9vcHRpb25zIjogImVudl9vcHRpb25zIiwKICAgICAgICAgICAgICAgICAgInJ1
bl9pbmZvX2V4dHJhcyI6ICJydW5faW5mb19leHRyYXMiLAotICAgICAgICAgICAgICAgICAidXBk
YXRlX3Byb3BlcnRpZXMiOiAidXBkYXRlX3Byb3BlcnRpZXMifQorICAgICAgICAgICAgICAgICAi
dXBkYXRlX3Byb3BlcnRpZXMiOiAidXBkYXRlX3Byb3BlcnRpZXMiLAorICAgICAgICAgICAgICAg
ICAidGltZW91dF9tdWx0aXBsaWVyIjogImdldF90aW1lb3V0X211bHRpcGxpZXIifQogCiAKIGRl
ZiBnZXRfdGltZW91dF9tdWx0aXBsaWVyKHRlc3RfdHlwZSwgcnVuX2luZm9fZGF0YSwgKiprd2Fy
Z3MpOgpAQCAtNTYsNiArNTgsOSBAQCBkZWYgZ2V0X3RpbWVvdXRfbXVsdGlwbGllcih0ZXN0X3R5
cGUsIHJ1bl9pbmZvX2RhdGEsICoqa3dhcmdzKToKICAgICAgICAgICAgIHJldHVybiAzCiAgICAg
ZWxpZiBydW5faW5mb19kYXRhWyJvcyJdID09ICJhbmRyb2lkIjoKICAgICAgICAgcmV0dXJuIDQK
KyAgICAjIGh0dHBzOi8vYnVnemlsbGEubW96aWxsYS5vcmcvc2hvd19idWcuY2dpP2lkPTE1Mzg3
MjUKKyAgICBlbGlmIHJ1bl9pbmZvX2RhdGFbIm9zIl0gPT0gIndpbiIgYW5kIHJ1bl9pbmZvX2Rh
dGFbInByb2Nlc3NvciJdID09ICJhYXJjaDY0IjoKKyAgICAgICAgcmV0dXJuIDQKICAgICByZXR1
cm4gMQogCiAKQEAgLTc0LDE2ICs3OSwxOSBAQCBkZWYgYnJvd3Nlcl9rd2FyZ3ModGVzdF90eXBl
LCBydW5faW5mb19kYXRhLCBjb25maWcsICoqa3dhcmdzKToKICAgICAgICAgICAgICJjZXJ0dXRp
bF9iaW5hcnkiOiBrd2FyZ3NbImNlcnR1dGlsX2JpbmFyeSJdLAogICAgICAgICAgICAgImNhX2Nl
cnRpZmljYXRlX3BhdGgiOiBjb25maWcuc3NsX2NvbmZpZ1siY2FfY2VydF9wYXRoIl0sCiAgICAg
ICAgICAgICAiZTEwcyI6IGt3YXJnc1siZ2Vja29fZTEwcyJdLAorICAgICAgICAgICAgImVuYWJs
ZV93ZWJyZW5kZXIiOiBrd2FyZ3NbImVuYWJsZV93ZWJyZW5kZXIiXSwKICAgICAgICAgICAgICJz
dGFja2ZpeF9kaXIiOiBrd2FyZ3NbInN0YWNrZml4X2RpciJdLAogICAgICAgICAgICAgImJpbmFy
eV9hcmdzIjoga3dhcmdzWyJiaW5hcnlfYXJncyJdLAogICAgICAgICAgICAgInRpbWVvdXRfbXVs
dGlwbGllciI6IGdldF90aW1lb3V0X211bHRpcGxpZXIodGVzdF90eXBlLAogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcnVuX2luZm9fZGF0
YSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICoqa3dhcmdzKSwKLSAgICAgICAgICAgICJsZWFrX2NoZWNrIjoga3dhcmdzWyJsZWFrX2No
ZWNrIl0sCisgICAgICAgICAgICAibGVha19jaGVjayI6IHJ1bl9pbmZvX2RhdGFbImRlYnVnIl0g
YW5kIChrd2FyZ3NbImxlYWtfY2hlY2siXSBpcyBub3QgRmFsc2UpLAogICAgICAgICAgICAgImFz
YW4iOiBydW5faW5mb19kYXRhLmdldCgiYXNhbiIpLAogICAgICAgICAgICAgInN0eWxvX3RocmVh
ZHMiOiBrd2FyZ3NbInN0eWxvX3RocmVhZHMiXSwKICAgICAgICAgICAgICJjaGFvc19tb2RlX2Zs
YWdzIjoga3dhcmdzWyJjaGFvc19tb2RlX2ZsYWdzIl0sCi0gICAgICAgICAgICAiY29uZmlnIjog
Y29uZmlnfQorICAgICAgICAgICAgImNvbmZpZyI6IGNvbmZpZywKKyAgICAgICAgICAgICJicm93
c2VyX2NoYW5uZWwiOiBrd2FyZ3NbImJyb3dzZXJfY2hhbm5lbCJdLAorICAgICAgICAgICAgImhl
YWRsZXNzIjoga3dhcmdzWyJoZWFkbGVzcyJdfQogCiAKIGRlZiBleGVjdXRvcl9rd2FyZ3ModGVz
dF90eXBlLCBzZXJ2ZXJfY29uZmlnLCBjYWNoZV9tYW5hZ2VyLCBydW5faW5mb19kYXRhLApAQCAt
OTcsNiArMTA1LDggQEAgZGVmIGV4ZWN1dG9yX2t3YXJncyh0ZXN0X3R5cGUsIHNlcnZlcl9jb25m
aWcsIGNhY2hlX21hbmFnZXIsIHJ1bl9pbmZvX2RhdGEsCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiprd2FyZ3MpCiAg
ICAgZXhlY3V0b3Jfa3dhcmdzWyJlMTBzIl0gPSBydW5faW5mb19kYXRhWyJlMTBzIl0KICAgICBj
YXBhYmlsaXRpZXMgPSB7fQorICAgIGlmIHRlc3RfdHlwZSA9PSAidGVzdGhhcm5lc3MiOgorICAg
ICAgICBjYXBhYmlsaXRpZXNbInBhZ2VMb2FkU3RyYXRlZ3kiXSA9ICJlYWdlciIKICAgICBpZiB0
ZXN0X3R5cGUgPT0gInJlZnRlc3QiOgogICAgICAgICBleGVjdXRvcl9rd2FyZ3NbInJlZnRlc3Rf
aW50ZXJuYWwiXSA9IGt3YXJnc1sicmVmdGVzdF9pbnRlcm5hbCJdCiAgICAgICAgIGV4ZWN1dG9y
X2t3YXJnc1sicmVmdGVzdF9zY3JlZW5zaG90Il0gPSBrd2FyZ3NbInJlZnRlc3Rfc2NyZWVuc2hv
dCJdCkBAIC0xMDYsOSArMTE2LDE2IEBAIGRlZiBleGVjdXRvcl9rd2FyZ3ModGVzdF90eXBlLCBz
ZXJ2ZXJfY29uZmlnLCBjYWNoZV9tYW5hZ2VyLCBydW5faW5mb19kYXRhLAogICAgICAgICAgICAg
b3B0aW9uc1siYmluYXJ5Il0gPSBrd2FyZ3NbImJpbmFyeSJdCiAgICAgICAgIGlmIGt3YXJnc1si
YmluYXJ5X2FyZ3MiXToKICAgICAgICAgICAgIG9wdGlvbnNbImFyZ3MiXSA9IGt3YXJnc1siYmlu
YXJ5X2FyZ3MiXQorICAgICAgICBpZiBrd2FyZ3NbImhlYWRsZXNzIl06CisgICAgICAgICAgICBp
ZiAiYXJncyIgbm90IGluIG9wdGlvbnM6CisgICAgICAgICAgICAgICAgb3B0aW9uc1siYXJncyJd
ID0gW10KKyAgICAgICAgICAgIGlmICItLWhlYWRsZXNzIiBub3QgaW4gb3B0aW9uc1siYXJncyJd
OgorICAgICAgICAgICAgICAgIG9wdGlvbnNbImFyZ3MiXS5hcHBlbmQoIi0taGVhZGxlc3MiKQog
ICAgICAgICBvcHRpb25zWyJwcmVmcyJdID0gewogICAgICAgICAgICAgIm5ldHdvcmsuZG5zLmxv
Y2FsRG9tYWlucyI6ICIsIi5qb2luKHNlcnZlcl9jb25maWcuZG9tYWluc19zZXQpCiAgICAgICAg
IH0KKyAgICAgICAgZm9yIHByZWYsIHZhbHVlIGluIGt3YXJnc1siZXh0cmFfcHJlZnMiXToKKyAg
ICAgICAgICAgIG9wdGlvbnNbInByZWZzIl0udXBkYXRlKHtwcmVmOiBQcmVmZXJlbmNlcy5jYXN0
KHZhbHVlKX0pCiAgICAgICAgIGNhcGFiaWxpdGllc1sibW96OmZpcmVmb3hPcHRpb25zIl0gPSBv
cHRpb25zCiAgICAgaWYga3dhcmdzWyJjZXJ0dXRpbF9iaW5hcnkiXSBpcyBOb25lOgogICAgICAg
ICBjYXBhYmlsaXRpZXNbImFjY2VwdEluc2VjdXJlQ2VydHMiXSA9IFRydWUKQEAgLTEzMCwzMiAr
MTQ3LDY5IEBAIGRlZiBlbnZfb3B0aW9ucygpOgogICAgICMKICAgICAjIGh0dHBzOi8vZ2l0aHVi
LmNvbS93ZWItcGxhdGZvcm0tdGVzdHMvd3B0L3B1bGwvOTQ4MAogICAgIHJldHVybiB7InNlcnZl
cl9ob3N0IjogIjEyNy4wLjAuMSIsCi0gICAgICAgICAgICAiYmluZF9hZGRyZXNzIjogRmFsc2Us
CiAgICAgICAgICAgICAic3VwcG9ydHNfZGVidWdnZXIiOiBUcnVlfQogCiAKIGRlZiBydW5faW5m
b19leHRyYXMoKiprd2FyZ3MpOgotICAgIHJldHVybiB7ImUxMHMiOiBrd2FyZ3NbImdlY2tvX2Ux
MHMiXSwKLSAgICAgICAgICAgICJ3YXNtIjoga3dhcmdzLmdldCgid2FzbSIsIFRydWUpLAotICAg
ICAgICAgICAgInZlcmlmeSI6IGt3YXJnc1sidmVyaWZ5Il0sCi0gICAgICAgICAgICAiaGVhZGxl
c3MiOiAiTU9aX0hFQURMRVNTIiBpbiBvcy5lbnZpcm9ufQorCisgICAgZGVmIGdldF9ib29sX3By
ZWZfaWZfZXhpc3RzKHByZWYpOgorICAgICAgICBmb3Iga2V5LCB2YWx1ZSBpbiBrd2FyZ3MuZ2V0
KCdleHRyYV9wcmVmcycsIFtdKToKKyAgICAgICAgICAgIGlmIHByZWYgPT0ga2V5OgorICAgICAg
ICAgICAgICAgIHJldHVybiB2YWx1ZS5sb3dlcigpIGluICgndHJ1ZScsICcxJykKKyAgICAgICAg
cmV0dXJuIE5vbmUKKworICAgIGRlZiBnZXRfYm9vbF9wcmVmKHByZWYpOgorICAgICAgICBwcmVm
X3ZhbHVlID0gZ2V0X2Jvb2xfcHJlZl9pZl9leGlzdHMocHJlZikKKyAgICAgICAgcmV0dXJuIHBy
ZWZfdmFsdWUgaWYgcHJlZl92YWx1ZSBpcyBub3QgTm9uZSBlbHNlIEZhbHNlCisKKyAgICBydiA9
IHsiZTEwcyI6IGt3YXJnc1siZ2Vja29fZTEwcyJdLAorICAgICAgICAgICJ3YXNtIjoga3dhcmdz
LmdldCgid2FzbSIsIFRydWUpLAorICAgICAgICAgICJ2ZXJpZnkiOiBrd2FyZ3NbInZlcmlmeSJd
LAorICAgICAgICAgICJoZWFkbGVzcyI6IGt3YXJncy5nZXQoImhlYWRsZXNzIiwgRmFsc2UpIG9y
ICJNT1pfSEVBRExFU1MiIGluIG9zLmVudmlyb24sCisgICAgICAgICAgImZpc3Npb24iOiBnZXRf
Ym9vbF9wcmVmKCJmaXNzaW9uLmF1dG9zdGFydCIpfQorCisgICAgIyBUaGUgdmFsdWUgb2YgYHN3
LWUxMHNgIGRlZmF1bHRzIHRvIHdoZXRoZXIgdGhlICJwYXJlbnRfaW50ZXJjZXB0IgorICAgICMg
aW1wbGVtZW50YXRpb24gaXMgZW5hYmxlZCBmb3IgdGhlIGN1cnJlbnQgYnVpbGQuIFRoaXMgdmFs
dWUsIGhvd2V2ZXIsCisgICAgIyBjYW4gYmUgb3ZlcnJpZGRlbiBieSBleHBsaWNpdGx5IHNldHRp
bmcgdGhlIHByZWYgd2l0aCB0aGUgYC0tc2V0cHJlZmAgQ0xJCisgICAgIyBmbGFnLCB3aGljaCBp
cyBjaGVja2VkIGhlcmUuIElmIG5vdCBzdXBwbGllZCwgdGhlIGRlZmF1bHQgdmFsdWUgb2YKKyAg
ICAjIGBzdy1lMTBzYCB3aWxsIGJlIGZpbGxlZCBpbiBpbiBgUnVuSW5mb2AncyBjb25zdHJ1Y3Rv
ci4KKyAgICAjCisgICAgIyBXZSBjYW4ndCBjYXB0dXJlIHRoZSBkZWZhdWx0IHZhbHVlIHJpZ2h0
IG5vdyBiZWNhdXNlIChjdXJyZW50bHkpLCBpdAorICAgICMgZGVmYXVsdHMgdG8gdGhlIHZhbHVl
IG9mIGBuaWdodGx5X2J1aWxkYCwgd2hpY2ggaXNuJ3Qga25vd24gdW50aWwKKyAgICAjIGBSdW5J
bmZvYCdzIGNvbnN0cnVjdG9yLgorICAgIHN3X2UxMHNfb3ZlcnJpZGUgPSBnZXRfYm9vbF9wcmVm
X2lmX2V4aXN0cygiZG9tLnNlcnZpY2VXb3JrZXJzLnBhcmVudF9pbnRlcmNlcHQiKQorICAgIGlm
IHN3X2UxMHNfb3ZlcnJpZGUgaXMgbm90IE5vbmU6CisgICAgICAgIHJ2WyJzdy1lMTBzIl0gPSBz
d19lMTBzX292ZXJyaWRlCisKKyAgICBydi51cGRhdGUocnVuX2luZm9fYnJvd3Nlcl92ZXJzaW9u
KGt3YXJnc1siYmluYXJ5Il0pKQorICAgIHJldHVybiBydgorCisKK2RlZiBydW5faW5mb19icm93
c2VyX3ZlcnNpb24oYmluYXJ5KToKKyAgICB0cnk6CisgICAgICAgIHZlcnNpb25faW5mbyA9IG1v
enZlcnNpb24uZ2V0X3ZlcnNpb24oYmluYXJ5KQorICAgIGV4Y2VwdCBtb3p2ZXJzaW9uLmVycm9y
cy5WZXJzaW9uRXJyb3I6CisgICAgICAgIHZlcnNpb25faW5mbyA9IE5vbmUKKyAgICBpZiB2ZXJz
aW9uX2luZm86CisgICAgICAgIHJldHVybiB7ImJyb3dzZXJfYnVpbGRfaWQiOiB2ZXJzaW9uX2lu
Zm8uZ2V0KCJhcHBsaWNhdGlvbl9idWlsZGlkIiwgTm9uZSksCisgICAgICAgICAgICAgICAgImJy
b3dzZXJfY2hhbmdlc2V0IjogdmVyc2lvbl9pbmZvLmdldCgiYXBwbGljYXRpb25fY2hhbmdlc2V0
IiwgTm9uZSl9CisgICAgcmV0dXJuIHt9CiAKIAogZGVmIHVwZGF0ZV9wcm9wZXJ0aWVzKCk6Ci0g
ICAgcmV0dXJuIChbImRlYnVnIiwgIndlYnJlbmRlciIsICJlMTBzIiwgIm9zIiwgInZlcnNpb24i
LCAicHJvY2Vzc29yIiwgImJpdHMiXSwKLSAgICAgICAgICAgIHsiZGVidWciLCAiZTEwcyIsICJ3
ZWJyZW5kZXIifSkKKyAgICByZXR1cm4gKFsib3MiLCAiZGVidWciLCAid2VicmVuZGVyIiwgImZp
c3Npb24iLCAiZTEwcyIsICJzdy1lMTBzIiwgInByb2Nlc3NvciJdLAorICAgICAgICAgICAgeyJv
cyI6IFsidmVyc2lvbiJdLCAicHJvY2Vzc29yIjogWyJiaXRzIl19KQogCiAKIGNsYXNzIEZpcmVm
b3hCcm93c2VyKEJyb3dzZXIpOgotICAgIHVzZWRfcG9ydHMgPSBzZXQoKQogICAgIGluaXRfdGlt
ZW91dCA9IDcwCiAgICAgc2h1dGRvd25fdGltZW91dCA9IDcwCiAKICAgICBkZWYgX19pbml0X18o
c2VsZiwgbG9nZ2VyLCBiaW5hcnksIHByZWZzX3Jvb3QsIHRlc3RfdHlwZSwgZXh0cmFfcHJlZnM9
Tm9uZSwgZGVidWdfaW5mbz1Ob25lLAogICAgICAgICAgICAgICAgICBzeW1ib2xzX3BhdGg9Tm9u
ZSwgc3RhY2t3YWxrX2JpbmFyeT1Ob25lLCBjZXJ0dXRpbF9iaW5hcnk9Tm9uZSwKLSAgICAgICAg
ICAgICAgICAgY2FfY2VydGlmaWNhdGVfcGF0aD1Ob25lLCBlMTBzPUZhbHNlLCBzdGFja2ZpeF9k
aXI9Tm9uZSwKKyAgICAgICAgICAgICAgICAgY2FfY2VydGlmaWNhdGVfcGF0aD1Ob25lLCBlMTBz
PUZhbHNlLCBlbmFibGVfd2VicmVuZGVyPUZhbHNlLCBzdGFja2ZpeF9kaXI9Tm9uZSwKICAgICAg
ICAgICAgICAgICAgYmluYXJ5X2FyZ3M9Tm9uZSwgdGltZW91dF9tdWx0aXBsaWVyPU5vbmUsIGxl
YWtfY2hlY2s9RmFsc2UsIGFzYW49RmFsc2UsCi0gICAgICAgICAgICAgICAgIHN0eWxvX3RocmVh
ZHM9MSwgY2hhb3NfbW9kZV9mbGFncz1Ob25lLCBjb25maWc9Tm9uZSk6CisgICAgICAgICAgICAg
ICAgIHN0eWxvX3RocmVhZHM9MSwgY2hhb3NfbW9kZV9mbGFncz1Ob25lLCBjb25maWc9Tm9uZSwg
YnJvd3Nlcl9jaGFubmVsPSJuaWdodGx5IiwgaGVhZGxlc3M9Tm9uZSwgKiprd2FyZ3MpOgogICAg
ICAgICBCcm93c2VyLl9faW5pdF9fKHNlbGYsIGxvZ2dlcikKICAgICAgICAgc2VsZi5iaW5hcnkg
PSBiaW5hcnkKICAgICAgICAgc2VsZi5wcmVmc19yb290ID0gcHJlZnNfcm9vdApAQCAtMTcwLDYg
KzIyNCw3IEBAIGNsYXNzIEZpcmVmb3hCcm93c2VyKEJyb3dzZXIpOgogICAgICAgICBzZWxmLmNh
X2NlcnRpZmljYXRlX3BhdGggPSBjYV9jZXJ0aWZpY2F0ZV9wYXRoCiAgICAgICAgIHNlbGYuY2Vy
dHV0aWxfYmluYXJ5ID0gY2VydHV0aWxfYmluYXJ5CiAgICAgICAgIHNlbGYuZTEwcyA9IGUxMHMK
KyAgICAgICAgc2VsZi5lbmFibGVfd2VicmVuZGVyID0gZW5hYmxlX3dlYnJlbmRlcgogICAgICAg
ICBzZWxmLmJpbmFyeV9hcmdzID0gYmluYXJ5X2FyZ3MKICAgICAgICAgc2VsZi5jb25maWcgPSBj
b25maWcKICAgICAgICAgaWYgc3RhY2tmaXhfZGlyOgpAQCAtMTgzLDUwICsyMzgsNzAgQEAgY2xh
c3MgRmlyZWZveEJyb3dzZXIoQnJvd3Nlcik6CiAKICAgICAgICAgc2VsZi5hc2FuID0gYXNhbgog
ICAgICAgICBzZWxmLmxzYW5fYWxsb3dlZCA9IE5vbmUKKyAgICAgICAgc2VsZi5sc2FuX21heF9z
dGFja19kZXB0aCA9IE5vbmUKKyAgICAgICAgc2VsZi5tb3psZWFrX2FsbG93ZWQgPSBOb25lCisg
ICAgICAgIHNlbGYubW96bGVha190aHJlc2hvbGRzID0gTm9uZQogICAgICAgICBzZWxmLmxlYWtf
Y2hlY2sgPSBsZWFrX2NoZWNrCiAgICAgICAgIHNlbGYubGVha19yZXBvcnRfZmlsZSA9IE5vbmUK
ICAgICAgICAgc2VsZi5sc2FuX2hhbmRsZXIgPSBOb25lCiAgICAgICAgIHNlbGYuc3R5bG9fdGhy
ZWFkcyA9IHN0eWxvX3RocmVhZHMKICAgICAgICAgc2VsZi5jaGFvc19tb2RlX2ZsYWdzID0gY2hh
b3NfbW9kZV9mbGFncworICAgICAgICBzZWxmLmJyb3dzZXJfY2hhbm5lbCA9IGJyb3dzZXJfY2hh
bm5lbAorICAgICAgICBzZWxmLmhlYWRsZXNzID0gaGVhZGxlc3MKIAogICAgIGRlZiBzZXR0aW5n
cyhzZWxmLCB0ZXN0KToKLSAgICAgICAgc2VsZi5sc2FuX2FsbG93ZWQgPSB0ZXN0LmxzYW5fYWxs
b3dlZAogICAgICAgICByZXR1cm4geyJjaGVja19sZWFrcyI6IHNlbGYubGVha19jaGVjayBhbmQg
bm90IHRlc3QubGVha3MsCi0gICAgICAgICAgICAgICAgImxzYW5fYWxsb3dlZCI6IHRlc3QubHNh
bl9hbGxvd2VkfQorICAgICAgICAgICAgICAgICJsc2FuX2FsbG93ZWQiOiB0ZXN0LmxzYW5fYWxs
b3dlZCwKKyAgICAgICAgICAgICAgICAibHNhbl9tYXhfc3RhY2tfZGVwdGgiOiB0ZXN0LmxzYW5f
bWF4X3N0YWNrX2RlcHRoLAorICAgICAgICAgICAgICAgICJtb3psZWFrX2FsbG93ZWQiOiBzZWxm
LmxlYWtfY2hlY2sgYW5kIHRlc3QubW96bGVha19hbGxvd2VkLAorICAgICAgICAgICAgICAgICJt
b3psZWFrX3RocmVzaG9sZHMiOiBzZWxmLmxlYWtfY2hlY2sgYW5kIHRlc3QubW96bGVha190aHJl
c2hvbGR9CiAKICAgICBkZWYgc3RhcnQoc2VsZiwgZ3JvdXBfbWV0YWRhdGE9Tm9uZSwgKiprd2Fy
Z3MpOgogICAgICAgICBpZiBncm91cF9tZXRhZGF0YSBpcyBOb25lOgogICAgICAgICAgICAgZ3Jv
dXBfbWV0YWRhdGEgPSB7fQogCisgICAgICAgIHNlbGYuZ3JvdXBfbWV0YWRhdGEgPSBncm91cF9t
ZXRhZGF0YQorICAgICAgICBzZWxmLmxzYW5fYWxsb3dlZCA9IGt3YXJncy5nZXQoImxzYW5fYWxs
b3dlZCIpCisgICAgICAgIHNlbGYubHNhbl9tYXhfc3RhY2tfZGVwdGggPSBrd2FyZ3MuZ2V0KCJs
c2FuX21heF9zdGFja19kZXB0aCIpCisgICAgICAgIHNlbGYubW96bGVha19hbGxvd2VkID0ga3dh
cmdzLmdldCgibW96bGVha19hbGxvd2VkIikKKyAgICAgICAgc2VsZi5tb3psZWFrX3RocmVzaG9s
ZHMgPSBrd2FyZ3MuZ2V0KCJtb3psZWFrX3RocmVzaG9sZHMiKQorCiAgICAgICAgIGlmIHNlbGYu
bWFyaW9uZXR0ZV9wb3J0IGlzIE5vbmU6Ci0gICAgICAgICAgICBzZWxmLm1hcmlvbmV0dGVfcG9y
dCA9IGdldF9mcmVlX3BvcnQoMjgyOCwgZXhjbHVkZT1zZWxmLnVzZWRfcG9ydHMpCi0gICAgICAg
ICAgICBzZWxmLnVzZWRfcG9ydHMuYWRkKHNlbGYubWFyaW9uZXR0ZV9wb3J0KQorICAgICAgICAg
ICAgc2VsZi5tYXJpb25ldHRlX3BvcnQgPSBnZXRfZnJlZV9wb3J0KCkKIAogICAgICAgICBpZiBz
ZWxmLmFzYW46Ci0gICAgICAgICAgICBwcmludCAiU2V0dGluZyB1cCBMU0FOIgogICAgICAgICAg
ICAgc2VsZi5sc2FuX2hhbmRsZXIgPSBtb3psZWFrLkxTQU5MZWFrcyhzZWxmLmxvZ2dlciwKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2NvcGU9Z3Jv
dXBfbWV0YWRhdGEuZ2V0KCJzY29wZSIsICIvIiksCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGFsbG93ZWQ9c2VsZi5sc2FuX2FsbG93ZWQpCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFsbG93ZWQ9c2Vs
Zi5sc2FuX2FsbG93ZWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIG1heE51bVJlY29yZGVkRnJhbWVzPXNlbGYubHNhbl9tYXhfc3RhY2tfZGVwdGgp
CiAKICAgICAgICAgZW52ID0gdGVzdF9lbnZpcm9ubWVudCh4cmVQYXRoPW9zLnBhdGguZGlybmFt
ZShzZWxmLmJpbmFyeSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVidWdnZXI9
c2VsZi5kZWJ1Z19pbmZvIGlzIG5vdCBOb25lLAotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGxvZz1zZWxmLmxvZ2dlciwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsc2Fu
UGF0aD1zZWxmLnByZWZzX3Jvb3QpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXNl
TFNhbj1UcnVlLCBsb2c9c2VsZi5sb2dnZXIpCiAKICAgICAgICAgZW52WyJTVFlMT19USFJFQURT
Il0gPSBzdHIoc2VsZi5zdHlsb190aHJlYWRzKQogICAgICAgICBpZiBzZWxmLmNoYW9zX21vZGVf
ZmxhZ3MgaXMgbm90IE5vbmU6CiAgICAgICAgICAgICBlbnZbIk1PWl9DSEFPU01PREUiXSA9IHN0
cihzZWxmLmNoYW9zX21vZGVfZmxhZ3MpCisgICAgICAgIGlmIHNlbGYuaGVhZGxlc3M6CisgICAg
ICAgICAgICBlbnZbIk1PWl9IRUFETEVTUyJdID0gIjEiCisgICAgICAgIGlmIHNlbGYuZW5hYmxl
X3dlYnJlbmRlcjoKKyAgICAgICAgICAgIGVudlsiTU9aX1dFQlJFTkRFUiJdID0gIjEiCisgICAg
ICAgICAgICBlbnZbIk1PWl9BQ0NFTEVSQVRFRCJdID0gIjEiCisgICAgICAgIGVsc2U6CisgICAg
ICAgICAgICBlbnZbIk1PWl9XRUJSRU5ERVIiXSA9ICIwIgogCiAgICAgICAgIHByZWZlcmVuY2Vz
ID0gc2VsZi5sb2FkX3ByZWZzKCkKIAogICAgICAgICBzZWxmLnByb2ZpbGUgPSBGaXJlZm94UHJv
ZmlsZShwcmVmZXJlbmNlcz1wcmVmZXJlbmNlcykKLSAgICAgICAgc2VsZi5wcm9maWxlLnNldF9w
cmVmZXJlbmNlcyh7Im1hcmlvbmV0dGUucG9ydCI6IHNlbGYubWFyaW9uZXR0ZV9wb3J0LAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiZG9tLmRpc2FibGVfb3Blbl9kdXJp
bmdfbG9hZCI6IEZhbHNlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAi
bmV0d29yay5kbnMubG9jYWxEb21haW5zIjogIiwiLmpvaW4oc2VsZi5jb25maWcuZG9tYWluc19z
ZXQpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAibmV0d29yay5wcm94
eS50eXBlIjogMCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInBsYWNl
cy5oaXN0b3J5LmVuYWJsZWQiOiBGYWxzZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgImRvbS5zZW5kX2FmdGVyX3BhaW50X3RvX2NvbnRlbnQiOiBUcnVlLAotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAibmV0d29yay5wcmVsb2FkIjogVHJ1ZX0p
CisgICAgICAgIHNlbGYucHJvZmlsZS5zZXRfcHJlZmVyZW5jZXMoeworICAgICAgICAgICAgIm1h
cmlvbmV0dGUucG9ydCI6IHNlbGYubWFyaW9uZXR0ZV9wb3J0LAorICAgICAgICAgICAgIm5ldHdv
cmsuZG5zLmxvY2FsRG9tYWlucyI6ICIsIi5qb2luKHNlbGYuY29uZmlnLmRvbWFpbnNfc2V0KSwK
KyAgICAgICAgICAgICJkb20uZmlsZS5jcmVhdGVJbkNoaWxkIjogVHJ1ZSwKKyAgICAgICAgICAg
ICMgVE9ETzogUmVtb3ZlIHByZWZlcmVuY2VzIG9uY2UgRmlyZWZveCA2NCBpcyBzdGFibGUgKEJ1
ZyA5MDU0MDQpCisgICAgICAgICAgICAibmV0d29yay5wcm94eS50eXBlIjogMCwKKyAgICAgICAg
ICAgICJwbGFjZXMuaGlzdG9yeS5lbmFibGVkIjogRmFsc2UsCisgICAgICAgICAgICAibmV0d29y
ay5wcmVsb2FkIjogVHJ1ZSwKKyAgICAgICAgfSkKICAgICAgICAgaWYgc2VsZi5lMTBzOgogICAg
ICAgICAgICAgc2VsZi5wcm9maWxlLnNldF9wcmVmZXJlbmNlcyh7ImJyb3dzZXIudGFicy5yZW1v
dGUuYXV0b3N0YXJ0IjogVHJ1ZX0pCiAKQEAgLTI0OSw5ICszMjQsMTEgQEAgY2xhc3MgRmlyZWZv
eEJyb3dzZXIoQnJvd3Nlcik6CiAgICAgICAgIGlmIHNlbGYuY2FfY2VydGlmaWNhdGVfcGF0aCBp
cyBub3QgTm9uZToKICAgICAgICAgICAgIHNlbGYuc2V0dXBfc3NsKCkKIAorICAgICAgICBhcmdz
ID0gc2VsZi5iaW5hcnlfYXJnc1s6XSBpZiBzZWxmLmJpbmFyeV9hcmdzIGVsc2UgW10KKyAgICAg
ICAgYXJncyArPSBbY21kX2FyZygibWFyaW9uZXR0ZSIpLCAiYWJvdXQ6YmxhbmsiXQorCiAgICAg
ICAgIGRlYnVnX2FyZ3MsIGNtZCA9IGJyb3dzZXJfY29tbWFuZChzZWxmLmJpbmFyeSwKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuYmluYXJ5X2FyZ3MgaWYg
c2VsZi5iaW5hcnlfYXJncyBlbHNlIFtdICsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIFtjbWRfYXJnKCJtYXJpb25ldHRlIiksICJhYm91dDpibGFuayJdLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJncywKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuZGVidWdfaW5mbykKIAogICAgICAg
ICBzZWxmLnJ1bm5lciA9IEZpcmVmb3hSdW5uZXIocHJvZmlsZT1zZWxmLnByb2ZpbGUsCkBAIC0y
NzUsNyArMzUyLDEwIEBAIGNsYXNzIEZpcmVmb3hCcm93c2VyKEJyb3dzZXIpOgogICAgICAgICBp
ZiBvcy5wYXRoLmlzZmlsZShwcm9maWxlcyk6CiAgICAgICAgICAgICB3aXRoIG9wZW4ocHJvZmls
ZXMsICdyJykgYXMgZmg6CiAgICAgICAgICAgICAgICAgZm9yIG5hbWUgaW4ganNvbi5sb2FkKGZo
KVsnd2ViLXBsYXRmb3JtLXRlc3RzJ106Ci0gICAgICAgICAgICAgICAgICAgIHByZWZfcGF0aHMu
YXBwZW5kKG9zLnBhdGguam9pbihzZWxmLnByZWZzX3Jvb3QsIG5hbWUsICd1c2VyLmpzJykpCisg
ICAgICAgICAgICAgICAgICAgIGlmIHNlbGYuYnJvd3Nlcl9jaGFubmVsIGluIChOb25lLCAnbmln
aHRseScpOgorICAgICAgICAgICAgICAgICAgICAgICAgcHJlZl9wYXRocy5hcHBlbmQob3MucGF0
aC5qb2luKHNlbGYucHJlZnNfcm9vdCwgbmFtZSwgJ3VzZXIuanMnKSkKKyAgICAgICAgICAgICAg
ICAgICAgZWxpZiBuYW1lICE9ICd1bml0dGVzdC1mZWF0dXJlcyc6CisgICAgICAgICAgICAgICAg
ICAgICAgICBwcmVmX3BhdGhzLmFwcGVuZChvcy5wYXRoLmpvaW4oc2VsZi5wcmVmc19yb290LCBu
YW1lLCAndXNlci5qcycpKQogICAgICAgICBlbHNlOgogICAgICAgICAgICAgIyBPbGQgcHJlZmVy
ZW5jZSBmaWxlcyB1c2VkIGJlZm9yZSB0aGUgY3JlYXRpb24gb2YgcHJvZmlsZXMuanNvbiAocmVt
b3ZlIHdoZW4gbm8gbG9uZ2VyIHN1cHBvcnRlZCkKICAgICAgICAgICAgIGxlZ2FjeV9wcmVmX3Bh
dGhzID0gKApAQCAtMzE3LDIxICszOTcsMTggQEAgY2xhc3MgRmlyZWZveEJyb3dzZXIoQnJvd3Nl
cik6CiAgICAgICAgIHNlbGYubG9nZ2VyLmRlYnVnKCJzdG9wcGVkIikKIAogICAgIGRlZiBwcm9j
ZXNzX2xlYWtzKHNlbGYpOgotICAgICAgICBzZWxmLmxvZ2dlci5kZWJ1ZygiUFJPQ0VTUyBMRUFL
UyAlcyIgJSBzZWxmLmxlYWtfcmVwb3J0X2ZpbGUpCisgICAgICAgIHNlbGYubG9nZ2VyLmluZm8o
IlBST0NFU1MgTEVBS1MgJXMiICUgc2VsZi5sZWFrX3JlcG9ydF9maWxlKQogICAgICAgICBpZiBz
ZWxmLmxzYW5faGFuZGxlcjoKICAgICAgICAgICAgIHNlbGYubHNhbl9oYW5kbGVyLnByb2Nlc3Mo
KQogICAgICAgICBpZiBzZWxmLmxlYWtfcmVwb3J0X2ZpbGUgaXMgbm90IE5vbmU6CiAgICAgICAg
ICAgICBtb3psZWFrLnByb2Nlc3NfbGVha19sb2coCiAgICAgICAgICAgICAgICAgc2VsZi5sZWFr
X3JlcG9ydF9maWxlLAotICAgICAgICAgICAgICAgIGxlYWtfdGhyZXNob2xkcz17Ci0gICAgICAg
ICAgICAgICAgICAgICJkZWZhdWx0IjogMCwKLSAgICAgICAgICAgICAgICAgICAgInRhYiI6IDEw
MDAwLCAgIyBTZWUgZGVwZW5kZW5jaWVzIG9mIGJ1ZyAxMDUxMjMwLgotICAgICAgICAgICAgICAg
ICAgICAjIEdNUCByYXJlbHkgZ2V0cyBhIGxvZywgYnV0IHdoZW4gaXQgZG9lcywgaXQgbGVha3Mg
YSBsaXR0bGUuCi0gICAgICAgICAgICAgICAgICAgICJnZWNrb21lZGlhcGx1Z2luIjogMjAwMDAs
Ci0gICAgICAgICAgICAgICAgfSwKLSAgICAgICAgICAgICAgICBpZ25vcmVfbWlzc2luZ19sZWFr
cz1bImdlY2tvbWVkaWFwbHVnaW4iXSwKKyAgICAgICAgICAgICAgICBsZWFrX3RocmVzaG9sZHM9
c2VsZi5tb3psZWFrX3RocmVzaG9sZHMsCisgICAgICAgICAgICAgICAgaWdub3JlX21pc3Npbmdf
bGVha3M9WyJnbXBsdWdpbiJdLAogICAgICAgICAgICAgICAgIGxvZz1zZWxmLmxvZ2dlciwKLSAg
ICAgICAgICAgICAgICBzdGFja19maXhlcj1zZWxmLnN0YWNrX2ZpeGVyCisgICAgICAgICAgICAg
ICAgc3RhY2tfZml4ZXI9c2VsZi5zdGFja19maXhlciwKKyAgICAgICAgICAgICAgICBzY29wZT1z
ZWxmLmdyb3VwX21ldGFkYXRhLmdldCgic2NvcGUiKSwKKyAgICAgICAgICAgICAgICBhbGxvd2Vk
PXNlbGYubW96bGVha19hbGxvd2VkCiAgICAgICAgICAgICApCiAKICAgICBkZWYgcGlkKHNlbGYp
OgpAQCAtMzcwLDIzICs0NDcsMTUgQEAgY2xhc3MgRmlyZWZveEJyb3dzZXIoQnJvd3Nlcik6CiAg
ICAgICAgIGFzc2VydCBzZWxmLm1hcmlvbmV0dGVfcG9ydCBpcyBub3QgTm9uZQogICAgICAgICBy
ZXR1cm4gRXhlY3V0b3JCcm93c2VyLCB7Im1hcmlvbmV0dGVfcG9ydCI6IHNlbGYubWFyaW9uZXR0
ZV9wb3J0fQogCi0gICAgZGVmIGNoZWNrX2Zvcl9jcmFzaGVzKHNlbGYpOgotICAgICAgICBkdW1w
X2RpciA9IG9zLnBhdGguam9pbihzZWxmLnByb2ZpbGUucHJvZmlsZSwgIm1pbmlkdW1wcyIpCi0K
LSAgICAgICAgcmV0dXJuIGJvb2wobW96Y3Jhc2guY2hlY2tfZm9yX2NyYXNoZXMoZHVtcF9kaXIs
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN5bWJvbHNf
cGF0aD1zZWxmLnN5bWJvbHNfcGF0aCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgc3RhY2t3YWxrX2JpbmFyeT1zZWxmLnN0YWNrd2Fsa19iaW5hcnksCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHF1aWV0PVRydWUp
KQotCi0gICAgZGVmIGxvZ19jcmFzaChzZWxmLCBwcm9jZXNzLCB0ZXN0KToKKyAgICBkZWYgY2hl
Y2tfY3Jhc2goc2VsZiwgcHJvY2VzcywgdGVzdCk6CiAgICAgICAgIGR1bXBfZGlyID0gb3MucGF0
aC5qb2luKHNlbGYucHJvZmlsZS5wcm9maWxlLCAibWluaWR1bXBzIikKIAotICAgICAgICBtb3pj
cmFzaC5sb2dfY3Jhc2hlcyhzZWxmLmxvZ2dlciwKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgZHVtcF9kaXIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN5bWJvbHNfcGF0aD1z
ZWxmLnN5bWJvbHNfcGF0aCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhY2t3YWxr
X2JpbmFyeT1zZWxmLnN0YWNrd2Fsa19iaW5hcnksCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHByb2Nlc3M9cHJvY2VzcywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGVzdD10
ZXN0KQorICAgICAgICByZXR1cm4gYm9vbChtb3pjcmFzaC5sb2dfY3Jhc2hlcyhzZWxmLmxvZ2dl
ciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZHVtcF9kaXIsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN5bWJvbHNfcGF0aD1zZWxm
LnN5bWJvbHNfcGF0aCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
c3RhY2t3YWxrX2JpbmFyeT1zZWxmLnN0YWNrd2Fsa19iaW5hcnksCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHByb2Nlc3M9cHJvY2VzcywKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgdGVzdD10ZXN0KSkKIAogICAgIGRlZiBzZXR1cF9z
c2woc2VsZik6CiAgICAgICAgICIiIkNyZWF0ZSBhIGNlcnRpZmljYXRlIGRhdGFiYXNlIHRvIHVz
ZSBpbiB0aGUgdGVzdCBwcm9maWxlLiBUaGlzIGlzIGNvbmZpZ3VyZWQKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVy
L3dwdHJ1bm5lci9icm93c2Vycy9maXJlZm94X2FuZHJvaWQucHkgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvYnJv
d3NlcnMvZmlyZWZveF9hbmRyb2lkLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwLi4zM2I1ZDUxZTU0ZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9icm93
c2Vycy9maXJlZm94X2FuZHJvaWQucHkKQEAgLTAsMCArMSwyMDIgQEAKK2ltcG9ydCBvcworCitp
bXBvcnQgbW96bmV0d29yaworZnJvbSBtb3pwcm9maWxlIGltcG9ydCBGaXJlZm94UHJvZmlsZQor
ZnJvbSBtb3pydW5uZXIgaW1wb3J0IEZlbm5lY0VtdWxhdG9yUnVubmVyCisKK2Zyb20gLmJhc2Ug
aW1wb3J0IChnZXRfZnJlZV9wb3J0LAorICAgICAgICAgICAgICAgICAgIGNtZF9hcmcsCisgICAg
ICAgICAgICAgICAgICAgYnJvd3Nlcl9jb21tYW5kKQorZnJvbSAuLmV4ZWN1dG9ycy5leGVjdXRv
cm1hcmlvbmV0dGUgaW1wb3J0IChNYXJpb25ldHRlVGVzdGhhcm5lc3NFeGVjdXRvciwgICMgbm9x
YTogRjQwMQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNYXJp
b25ldHRlUmVmVGVzdEV4ZWN1dG9yKSAgIyBub3FhOiBGNDAxCitmcm9tIC5maXJlZm94IGltcG9y
dCAoZ2V0X3RpbWVvdXRfbXVsdGlwbGllciwgICMgbm9xYTogRjQwMQorICAgICAgICAgICAgICAg
ICAgICAgIHJ1bl9pbmZvX2V4dHJhcyBhcyBmeF9ydW5faW5mb19leHRyYXMsCisgICAgICAgICAg
ICAgICAgICAgICAgdXBkYXRlX3Byb3BlcnRpZXMsICAjIG5vcWE6IEY0MDEKKyAgICAgICAgICAg
ICAgICAgICAgICBleGVjdXRvcl9rd2FyZ3MsICAjIG5vcWE6IEY0MDEKKyAgICAgICAgICAgICAg
ICAgICAgICBGaXJlZm94QnJvd3NlcikgICMgbm9xYTogRjQwMQorCisKK19fd3B0cnVubmVyX18g
PSB7InByb2R1Y3QiOiAiZmlyZWZveF9hbmRyb2lkIiwKKyAgICAgICAgICAgICAgICAgImNoZWNr
X2FyZ3MiOiAiY2hlY2tfYXJncyIsCisgICAgICAgICAgICAgICAgICJicm93c2VyIjogIkZpcmVm
b3hBbmRyb2lkQnJvd3NlciIsCisgICAgICAgICAgICAgICAgICJleGVjdXRvciI6IHsidGVzdGhh
cm5lc3MiOiAiTWFyaW9uZXR0ZVRlc3RoYXJuZXNzRXhlY3V0b3IiLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgInJlZnRlc3QiOiAiTWFyaW9uZXR0ZVJlZlRlc3RFeGVjdXRvciJ9LAor
ICAgICAgICAgICAgICAgICAiYnJvd3Nlcl9rd2FyZ3MiOiAiYnJvd3Nlcl9rd2FyZ3MiLAorICAg
ICAgICAgICAgICAgICAiZXhlY3V0b3Jfa3dhcmdzIjogImV4ZWN1dG9yX2t3YXJncyIsCisgICAg
ICAgICAgICAgICAgICJlbnZfZXh0cmFzIjogImVudl9leHRyYXMiLAorICAgICAgICAgICAgICAg
ICAiZW52X29wdGlvbnMiOiAiZW52X29wdGlvbnMiLAorICAgICAgICAgICAgICAgICAicnVuX2lu
Zm9fZXh0cmFzIjogInJ1bl9pbmZvX2V4dHJhcyIsCisgICAgICAgICAgICAgICAgICJ1cGRhdGVf
cHJvcGVydGllcyI6ICJ1cGRhdGVfcHJvcGVydGllcyIsCisgICAgICAgICAgICAgICAgICJ0aW1l
b3V0X211bHRpcGxpZXIiOiAiZ2V0X3RpbWVvdXRfbXVsdGlwbGllciJ9CisKKworZGVmIGNoZWNr
X2FyZ3MoKiprd2FyZ3MpOgorICAgIHBhc3MKKworCitkZWYgYnJvd3Nlcl9rd2FyZ3ModGVzdF90
eXBlLCBydW5faW5mb19kYXRhLCBjb25maWcsICoqa3dhcmdzKToKKyAgICByZXR1cm4geyJwYWNr
YWdlX25hbWUiOiBrd2FyZ3NbInBhY2thZ2VfbmFtZSJdLAorICAgICAgICAgICAgImRldmljZV9z
ZXJpYWwiOiBrd2FyZ3NbImRldmljZV9zZXJpYWwiXSwKKyAgICAgICAgICAgICJwcmVmc19yb290
Ijoga3dhcmdzWyJwcmVmc19yb290Il0sCisgICAgICAgICAgICAiZXh0cmFfcHJlZnMiOiBrd2Fy
Z3NbImV4dHJhX3ByZWZzIl0sCisgICAgICAgICAgICAidGVzdF90eXBlIjogdGVzdF90eXBlLAor
ICAgICAgICAgICAgImRlYnVnX2luZm8iOiBrd2FyZ3NbImRlYnVnX2luZm8iXSwKKyAgICAgICAg
ICAgICJzeW1ib2xzX3BhdGgiOiBrd2FyZ3NbInN5bWJvbHNfcGF0aCJdLAorICAgICAgICAgICAg
InN0YWNrd2Fsa19iaW5hcnkiOiBrd2FyZ3NbInN0YWNrd2Fsa19iaW5hcnkiXSwKKyAgICAgICAg
ICAgICJjZXJ0dXRpbF9iaW5hcnkiOiBrd2FyZ3NbImNlcnR1dGlsX2JpbmFyeSJdLAorICAgICAg
ICAgICAgImNhX2NlcnRpZmljYXRlX3BhdGgiOiBjb25maWcuc3NsX2NvbmZpZ1siY2FfY2VydF9w
YXRoIl0sCisgICAgICAgICAgICAiZW5hYmxlX3dlYnJlbmRlciI6IGt3YXJnc1siZW5hYmxlX3dl
YnJlbmRlciJdLAorICAgICAgICAgICAgInN0YWNrZml4X2RpciI6IGt3YXJnc1sic3RhY2tmaXhf
ZGlyIl0sCisgICAgICAgICAgICAiYmluYXJ5X2FyZ3MiOiBrd2FyZ3NbImJpbmFyeV9hcmdzIl0s
CisgICAgICAgICAgICAidGltZW91dF9tdWx0aXBsaWVyIjogZ2V0X3RpbWVvdXRfbXVsdGlwbGll
cih0ZXN0X3R5cGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBydW5faW5mb19kYXRhLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiprd2FyZ3MpLAorICAgICAgICAgICAgIyBk
ZXNrdG9wIG9ubHkKKyAgICAgICAgICAgICJsZWFrX2NoZWNrIjogRmFsc2UsCisgICAgICAgICAg
ICAic3R5bG9fdGhyZWFkcyI6IGt3YXJnc1sic3R5bG9fdGhyZWFkcyJdLAorICAgICAgICAgICAg
ImNoYW9zX21vZGVfZmxhZ3MiOiBrd2FyZ3NbImNoYW9zX21vZGVfZmxhZ3MiXSwKKyAgICAgICAg
ICAgICJjb25maWciOiBjb25maWcsCisgICAgICAgICAgICAiaW5zdGFsbF9mb250cyI6IGt3YXJn
c1siaW5zdGFsbF9mb250cyJdLAorICAgICAgICAgICAgInRlc3RzX3Jvb3QiOiBjb25maWcuZG9j
X3Jvb3R9CisKKworZGVmIGVudl9leHRyYXMoKiprd2FyZ3MpOgorICAgIHJldHVybiBbXQorCisK
K2RlZiBydW5faW5mb19leHRyYXMoKiprd2FyZ3MpOgorICAgIHJ2ID0gZnhfcnVuX2luZm9fZXh0
cmFzKCoqa3dhcmdzKQorICAgIHBhY2thZ2UgPSBrd2FyZ3NbInBhY2thZ2VfbmFtZSJdCisgICAg
cnYudXBkYXRlKHsiZTEwcyI6IFRydWUgaWYgcGFja2FnZSBpcyBub3QgTm9uZSBhbmQgImdlY2tv
dmlldyIgaW4gcGFja2FnZSBlbHNlIEZhbHNlLAorICAgICAgICAgICAgICAgImhlYWRsZXNzIjog
RmFsc2V9KQorICAgIHJldHVybiBydgorCisKK2RlZiBlbnZfb3B0aW9ucygpOgorICAgICMgVGhl
IHNlcnZlciBob3N0IGlzIHNldCB0byBwdWJsaWMgbG9jYWxob3N0IElQIHNvIHRoYXQgcmVzb3Vy
Y2VzIGNhbiBiZSBhY2Nlc3NlZAorICAgICMgZnJvbSBBbmRyb2lkIGVtdWxhdG9yCisgICAgcmV0
dXJuIHsic2VydmVyX2hvc3QiOiBtb3puZXR3b3JrLmdldF9pcCgpLAorICAgICAgICAgICAgImJp
bmRfYWRkcmVzcyI6IEZhbHNlLAorICAgICAgICAgICAgInN1cHBvcnRzX2RlYnVnZ2VyIjogVHJ1
ZX0KKworCitjbGFzcyBGaXJlZm94QW5kcm9pZEJyb3dzZXIoRmlyZWZveEJyb3dzZXIpOgorICAg
IGluaXRfdGltZW91dCA9IDMwMAorICAgIHNodXRkb3duX3RpbWVvdXQgPSA2MAorCisgICAgZGVm
IF9faW5pdF9fKHNlbGYsIGxvZ2dlciwgcHJlZnNfcm9vdCwgdGVzdF90eXBlLCBwYWNrYWdlX25h
bWU9Im9yZy5tb3ppbGxhLmdlY2tvdmlldy50ZXN0IiwKKyAgICAgICAgICAgICAgICAgZGV2aWNl
X3NlcmlhbD0iZW11bGF0b3ItNTQ0NCIsICoqa3dhcmdzKToKKyAgICAgICAgRmlyZWZveEJyb3dz
ZXIuX19pbml0X18oc2VsZiwgbG9nZ2VyLCBOb25lLCBwcmVmc19yb290LCB0ZXN0X3R5cGUsICoq
a3dhcmdzKQorICAgICAgICBzZWxmLnBhY2thZ2VfbmFtZSA9IHBhY2thZ2VfbmFtZQorICAgICAg
ICBzZWxmLmRldmljZV9zZXJpYWwgPSBkZXZpY2Vfc2VyaWFsCisgICAgICAgIHNlbGYudGVzdHNf
cm9vdCA9IGt3YXJnc1sidGVzdHNfcm9vdCJdCisgICAgICAgIHNlbGYuaW5zdGFsbF9mb250cyA9
IGt3YXJnc1siaW5zdGFsbF9mb250cyJdCisgICAgICAgIHNlbGYuc3RhY2t3YWxrX2JpbmFyeSA9
IGt3YXJnc1sic3RhY2t3YWxrX2JpbmFyeSJdCisKKyAgICBkZWYgc3RhcnQoc2VsZiwgKiprd2Fy
Z3MpOgorICAgICAgICBpZiBzZWxmLm1hcmlvbmV0dGVfcG9ydCBpcyBOb25lOgorICAgICAgICAg
ICAgc2VsZi5tYXJpb25ldHRlX3BvcnQgPSBnZXRfZnJlZV9wb3J0KCkKKworICAgICAgICBlbnYg
PSB7fQorICAgICAgICBlbnZbIk1PWl9DUkFTSFJFUE9SVEVSIl0gPSAiMSIKKyAgICAgICAgZW52
WyJNT1pfQ1JBU0hSRVBPUlRFUl9TSFVURE9XTiJdID0gIjEiCisgICAgICAgIGVudlsiTU9aX0RJ
U0FCTEVfTk9OTE9DQUxfQ09OTkVDVElPTlMiXSA9ICIxIgorICAgICAgICBlbnZbIlNUWUxPX1RI
UkVBRFMiXSA9IHN0cihzZWxmLnN0eWxvX3RocmVhZHMpCisgICAgICAgIGlmIHNlbGYuY2hhb3Nf
bW9kZV9mbGFncyBpcyBub3QgTm9uZToKKyAgICAgICAgICAgIGVudlsiTU9aX0NIQU9TTU9ERSJd
ID0gc3RyKHNlbGYuY2hhb3NfbW9kZV9mbGFncykKKyAgICAgICAgaWYgc2VsZi5lbmFibGVfd2Vi
cmVuZGVyOgorICAgICAgICAgICAgZW52WyJNT1pfV0VCUkVOREVSIl0gPSAiMSIKKyAgICAgICAg
ZWxzZToKKyAgICAgICAgICAgIGVudlsiTU9aX1dFQlJFTkRFUiJdID0gIjAiCisKKyAgICAgICAg
cHJlZmVyZW5jZXMgPSBzZWxmLmxvYWRfcHJlZnMoKQorCisgICAgICAgIHNlbGYucHJvZmlsZSA9
IEZpcmVmb3hQcm9maWxlKHByZWZlcmVuY2VzPXByZWZlcmVuY2VzKQorICAgICAgICBzZWxmLnBy
b2ZpbGUuc2V0X3ByZWZlcmVuY2VzKHsKKyAgICAgICAgICAgICJtYXJpb25ldHRlLnBvcnQiOiBz
ZWxmLm1hcmlvbmV0dGVfcG9ydCwKKyAgICAgICAgICAgICJuZXR3b3JrLmRucy5sb2NhbERvbWFp
bnMiOiAiLCIuam9pbihzZWxmLmNvbmZpZy5kb21haW5zX3NldCksCisgICAgICAgICAgICAiZG9t
LmRpc2FibGVfb3Blbl9kdXJpbmdfbG9hZCI6IEZhbHNlLAorICAgICAgICAgICAgInBsYWNlcy5o
aXN0b3J5LmVuYWJsZWQiOiBGYWxzZSwKKyAgICAgICAgICAgICJkb20uc2VuZF9hZnRlcl9wYWlu
dF90b19jb250ZW50IjogVHJ1ZSwKKyAgICAgICAgICAgICJuZXR3b3JrLnByZWxvYWQiOiBUcnVl
LAorICAgICAgICB9KQorCisgICAgICAgIGlmIHNlbGYudGVzdF90eXBlID09ICJyZWZ0ZXN0IjoK
KyAgICAgICAgICAgIHNlbGYubG9nZ2VyLmluZm8oIlNldHRpbmcgYW5kcm9pZCByZWZ0ZXN0IHBy
ZWZlcmVuY2VzIikKKyAgICAgICAgICAgIHNlbGYucHJvZmlsZS5zZXRfcHJlZmVyZW5jZXMoewor
ICAgICAgICAgICAgICAgICJicm93c2VyLnZpZXdwb3J0LmRlc2t0b3BXaWR0aCI6IDgwMCwKKyAg
ICAgICAgICAgICAgICAjIERpc2FibGUgaGlnaCBEUEkKKyAgICAgICAgICAgICAgICAibGF5b3V0
LmNzcy5kZXZQaXhlbHNQZXJQeCI6ICIxLjAiLAorICAgICAgICAgICAgICAgICMgRW5zdXJlIHRo
YXQgdGhlIGZ1bGwgYnJvd3NlciBlbGVtZW50CisgICAgICAgICAgICAgICAgIyBhcHBlYXJzIGlu
IHRoZSBzY3JlZW5zaG90CisgICAgICAgICAgICAgICAgImFwei5hbGxvd196b29taW5nIjogRmFs
c2UsCisgICAgICAgICAgICAgICAgImFuZHJvaWQud2lkZ2V0X3BhaW50c19iYWNrZ3JvdW5kIjog
RmFsc2UsCisgICAgICAgICAgICAgICAgIyBFbnN1cmUgdGhhdCBzY3JvbGxiYXJzIGFyZSBhbHdh
eXMgcGFpbnRlZAorICAgICAgICAgICAgICAgICJsYXlvdXQudGVzdGluZy5vdmVybGF5LXNjcm9s
bGJhcnMuYWx3YXlzLXZpc2libGUiOiBUcnVlLAorICAgICAgICAgICAgfSkKKworICAgICAgICBp
ZiBzZWxmLmluc3RhbGxfZm9udHM6CisgICAgICAgICAgICBzZWxmLmxvZ2dlci5kZWJ1ZygiQ29w
eWluZyBBaGVtIGZvbnQgdG8gcHJvZmlsZSIpCisgICAgICAgICAgICBmb250X2RpciA9IG9zLnBh
dGguam9pbihzZWxmLnByb2ZpbGUucHJvZmlsZSwgImZvbnRzIikKKyAgICAgICAgICAgIGlmIG5v
dCBvcy5wYXRoLmV4aXN0cyhmb250X2Rpcik6CisgICAgICAgICAgICAgICAgb3MubWFrZWRpcnMo
Zm9udF9kaXIpCisgICAgICAgICAgICB3aXRoIG9wZW4ob3MucGF0aC5qb2luKHNlbGYudGVzdHNf
cm9vdCwgImZvbnRzIiwgIkFoZW0udHRmIiksICJyYiIpIGFzIHNyYzoKKyAgICAgICAgICAgICAg
ICB3aXRoIG9wZW4ob3MucGF0aC5qb2luKGZvbnRfZGlyLCAiQWhlbS50dGYiKSwgIndiIikgYXMg
ZGVzdDoKKyAgICAgICAgICAgICAgICAgICAgZGVzdC53cml0ZShzcmMucmVhZCgpKQorCisgICAg
ICAgIHNlbGYubGVha19yZXBvcnRfZmlsZSA9IE5vbmUKKworICAgICAgICBpZiBzZWxmLmNhX2Nl
cnRpZmljYXRlX3BhdGggaXMgbm90IE5vbmU6CisgICAgICAgICAgICBzZWxmLnNldHVwX3NzbCgp
CisKKyAgICAgICAgZGVidWdfYXJncywgY21kID0gYnJvd3Nlcl9jb21tYW5kKHNlbGYucGFja2Fn
ZV9uYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5i
aW5hcnlfYXJncyBpZiBzZWxmLmJpbmFyeV9hcmdzIGVsc2UgW10gKworICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NtZF9hcmcoIm1hcmlvbmV0dGUiKSwgImFib3V0
OmJsYW5rIl0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxm
LmRlYnVnX2luZm8pCisKKyAgICAgICAgc2VsZi5ydW5uZXIgPSBGZW5uZWNFbXVsYXRvclJ1bm5l
cihhcHA9c2VsZi5wYWNrYWdlX25hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgcHJvZmlsZT1zZWxmLnByb2ZpbGUsCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgY21kYXJncz1jbWRbMTpdLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGVudj1lbnYsCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgc3ltYm9sc19wYXRoPXNlbGYuc3ltYm9sc19wYXRoLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlcmlhbD1zZWxmLmRldmlj
ZV9zZXJpYWwsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBU
T0RPIC0gY2hvb3NlIGFwcHJvcHJpYXRlIGxvZyBkaXIKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBsb2dkaXI9b3MuZ2V0Y3dkKCkpCisKKyAgICAgICAgc2VsZi5s
b2dnZXIuZGVidWcoIlN0YXJ0aW5nICVzIiAlIHNlbGYucGFja2FnZV9uYW1lKQorICAgICAgICAj
IGNvbm5lY3QgdG8gYSBydW5uaW5nIGVtdWxhdG9yCisgICAgICAgIHNlbGYucnVubmVyLmRldmlj
ZS5jb25uZWN0KCkKKworICAgICAgICBzZWxmLnJ1bm5lci5zdG9wKCkKKyAgICAgICAgc2VsZi5y
dW5uZXIuc3RhcnQoZGVidWdfYXJncz1kZWJ1Z19hcmdzLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICBpbnRlcmFjdGl2ZT1zZWxmLmRlYnVnX2luZm8gYW5kIHNlbGYuZGVidWdfaW5mby5pbnRl
cmFjdGl2ZSkKKworICAgICAgICBzZWxmLnJ1bm5lci5kZXZpY2UuZGV2aWNlLmZvcndhcmQoCisg
ICAgICAgICAgICBsb2NhbD0idGNwOnt9Ii5mb3JtYXQoc2VsZi5tYXJpb25ldHRlX3BvcnQpLAor
ICAgICAgICAgICAgcmVtb3RlPSJ0Y3A6e30iLmZvcm1hdChzZWxmLm1hcmlvbmV0dGVfcG9ydCkp
CisKKyAgICAgICAgZm9yIHBvcnRzIGluIHNlbGYuY29uZmlnLnBvcnRzLnZhbHVlcygpOgorICAg
ICAgICAgICAgZm9yIHBvcnQgaW4gcG9ydHM6CisgICAgICAgICAgICAgICAgc2VsZi5ydW5uZXIu
ZGV2aWNlLmRldmljZS5yZXZlcnNlKAorICAgICAgICAgICAgICAgICAgICBsb2NhbD0idGNwOnt9
Ii5mb3JtYXQocG9ydCksCisgICAgICAgICAgICAgICAgICAgIHJlbW90ZT0idGNwOnt9Ii5mb3Jt
YXQocG9ydCkpCisKKyAgICAgICAgc2VsZi5sb2dnZXIuZGVidWcoIiVzIFN0YXJ0ZWQiICUgc2Vs
Zi5wYWNrYWdlX25hbWUpCisKKyAgICBkZWYgc3RvcChzZWxmLCBmb3JjZT1GYWxzZSk6CisgICAg
ICAgIGlmIHNlbGYucnVubmVyIGlzIG5vdCBOb25lOgorICAgICAgICAgICAgaWYgc2VsZi5ydW5u
ZXIuZGV2aWNlLmNvbm5lY3RlZDoKKyAgICAgICAgICAgICAgICB0cnk6CisgICAgICAgICAgICAg
ICAgICAgIHNlbGYucnVubmVyLmRldmljZS5kZXZpY2UucmVtb3ZlX2ZvcndhcmRzKCkKKyAgICAg
ICAgICAgICAgICAgICAgc2VsZi5ydW5uZXIuZGV2aWNlLmRldmljZS5yZW1vdmVfcmV2ZXJzZXMo
KQorICAgICAgICAgICAgICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZToKKyAgICAgICAgICAgICAg
ICAgICAgc2VsZi5sb2dnZXIud2FybmluZygiRmFpbGVkIHRvIHJlbW92ZSBmb3J3YXJkZWQgb3Ig
cmV2ZXJzZWQgcG9ydHM6ICVzIiAlIGUpCisgICAgICAgICAgICAjIFdlIGFzc3VtZSB0aGF0IHN0
b3BwaW5nIHRoZSBydW5uZXIgcHJvbXB0cyB0aGUKKyAgICAgICAgICAgICMgYnJvd3NlciB0byBz
aHV0IGRvd24uCisgICAgICAgICAgICBzZWxmLnJ1bm5lci5zdG9wKCkKKyAgICAgICAgc2VsZi5s
b2dnZXIuZGVidWcoInN0b3BwZWQiKQorCisgICAgZGVmIGNoZWNrX2NyYXNoKHNlbGYsIHByb2Nl
c3MsIHRlc3QpOgorICAgICAgICBpZiBub3Qgb3MuZW52aXJvbi5nZXQoIk1JTklEVU1QX1NUQUNL
V0FMSyIsICIiKSBhbmQgc2VsZi5zdGFja3dhbGtfYmluYXJ5OgorICAgICAgICAgICAgb3MuZW52
aXJvblsiTUlOSURVTVBfU1RBQ0tXQUxLIl0gPSBzZWxmLnN0YWNrd2Fsa19iaW5hcnkKKyAgICAg
ICAgcmV0dXJuIGJvb2woc2VsZi5ydW5uZXIuY2hlY2tfZm9yX2NyYXNoZXModGVzdF9uYW1lPXRl
c3QpKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2Jyb3dzZXJzL2llLnB5IGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVu
bmVyL2Jyb3dzZXJzL2llLnB5CmluZGV4IGEwNzMwZjhiYTI5Li42MzVlODI3YzI5NSAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93
cHRydW5uZXIvd3B0cnVubmVyL2Jyb3dzZXJzL2llLnB5CisrKyBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9icm93
c2Vycy9pZS5weQpAQCAtMSwyMCArMSwxOCBAQAogZnJvbSAuYmFzZSBpbXBvcnQgQnJvd3Nlciwg
RXhlY3V0b3JCcm93c2VyLCByZXF1aXJlX2FyZworZnJvbSAuYmFzZSBpbXBvcnQgZ2V0X3RpbWVv
dXRfbXVsdGlwbGllciAgICMgbm9xYTogRjQwMQogZnJvbSAuLndlYmRyaXZlcl9zZXJ2ZXIgaW1w
b3J0IEludGVybmV0RXhwbG9yZXJEcml2ZXJTZXJ2ZXIKIGZyb20gLi5leGVjdXRvcnMgaW1wb3J0
IGV4ZWN1dG9yX2t3YXJncyBhcyBiYXNlX2V4ZWN1dG9yX2t3YXJncwotZnJvbSAuLmV4ZWN1dG9y
cy5leGVjdXRvcnNlbGVuaXVtIGltcG9ydCAoU2VsZW5pdW1UZXN0aGFybmVzc0V4ZWN1dG9yLCAg
IyBub3FhOiBGNDAxCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBT
ZWxlbml1bVJlZlRlc3RFeGVjdXRvcikgICMgbm9xYTogRjQwMQogZnJvbSAuLmV4ZWN1dG9ycy5l
eGVjdXRvcmludGVybmV0ZXhwbG9yZXIgaW1wb3J0IEludGVybmV0RXhwbG9yZXJEcml2ZXJXZHNw
ZWNFeGVjdXRvciAgIyBub3FhOiBGNDAxCiAKIF9fd3B0cnVubmVyX18gPSB7InByb2R1Y3QiOiAi
aWUiLAogICAgICAgICAgICAgICAgICAiY2hlY2tfYXJncyI6ICJjaGVja19hcmdzIiwKICAgICAg
ICAgICAgICAgICAgImJyb3dzZXIiOiAiSW50ZXJuZXRFeHBsb3JlckJyb3dzZXIiLAotICAgICAg
ICAgICAgICAgICAiZXhlY3V0b3IiOiB7InRlc3RoYXJuZXNzIjogIlNlbGVuaXVtVGVzdGhhcm5l
c3NFeGVjdXRvciIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAicmVmdGVzdCI6ICJT
ZWxlbml1bVJlZlRlc3RFeGVjdXRvciIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAi
d2RzcGVjIjogIkludGVybmV0RXhwbG9yZXJEcml2ZXJXZHNwZWNFeGVjdXRvciJ9LAorICAgICAg
ICAgICAgICAgICAiZXhlY3V0b3IiOiB7Indkc3BlYyI6ICJJbnRlcm5ldEV4cGxvcmVyRHJpdmVy
V2RzcGVjRXhlY3V0b3IifSwKICAgICAgICAgICAgICAgICAgImJyb3dzZXJfa3dhcmdzIjogImJy
b3dzZXJfa3dhcmdzIiwKICAgICAgICAgICAgICAgICAgImV4ZWN1dG9yX2t3YXJncyI6ICJleGVj
dXRvcl9rd2FyZ3MiLAogICAgICAgICAgICAgICAgICAiZW52X2V4dHJhcyI6ICJlbnZfZXh0cmFz
IiwKLSAgICAgICAgICAgICAgICAgImVudl9vcHRpb25zIjogImVudl9vcHRpb25zIn0KKyAgICAg
ICAgICAgICAgICAgImVudl9vcHRpb25zIjogImVudl9vcHRpb25zIiwKKyAgICAgICAgICAgICAg
ICAgInRpbWVvdXRfbXVsdGlwbGllciI6ICJnZXRfdGltZW91dF9tdWx0aXBsaWVyIn0KIAogCiBk
ZWYgY2hlY2tfYXJncygqKmt3YXJncyk6CkBAIC02Niw3ICs2NCw3IEBAIGNsYXNzIEludGVybmV0
RXhwbG9yZXJCcm93c2VyKEJyb3dzZXIpOgogICAgICAgICAjIFRPRE8oYXRvKTogVGhpcyBvbmx5
IGluZGljYXRlcyB0aGUgc2VydmVyIGlzIGFsaXZlLAogICAgICAgICAjIGFuZCBkb2Vzbid0IHNh
eSBhbnl0aGluZyBhYm91dCB3aGV0aGVyIGEgYnJvd3NlciBzZXNzaW9uCiAgICAgICAgICMgaXMg
YWN0aXZlLgotICAgICAgICByZXR1cm4gc2VsZi5zZXJ2ZXIuaXNfYWxpdmUoKQorICAgICAgICBy
ZXR1cm4gc2VsZi5zZXJ2ZXIuaXNfYWxpdmUKIAogICAgIGRlZiBjbGVhbnVwKHNlbGYpOgogICAg
ICAgICBzZWxmLnN0b3AoKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2Jyb3dzZXJzL29wZXJh
LnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93
cHRydW5uZXIvd3B0cnVubmVyL2Jyb3dzZXJzL29wZXJhLnB5CmluZGV4IGM1YWVhYWFmOTY3Li41
NWMwNTA5ZWVkOSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2Jyb3dzZXJzL29wZXJhLnB5Cisr
KyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0
cnVubmVyL3dwdHJ1bm5lci9icm93c2Vycy9vcGVyYS5weQpAQCAtMSw0ICsxLDUgQEAKIGZyb20g
LmJhc2UgaW1wb3J0IEJyb3dzZXIsIEV4ZWN1dG9yQnJvd3NlciwgcmVxdWlyZV9hcmcKK2Zyb20g
LmJhc2UgaW1wb3J0IGdldF90aW1lb3V0X211bHRpcGxpZXIgICAjIG5vcWE6IEY0MDEKIGZyb20g
Li53ZWJkcml2ZXJfc2VydmVyIGltcG9ydCBPcGVyYURyaXZlclNlcnZlcgogZnJvbSAuLmV4ZWN1
dG9ycyBpbXBvcnQgZXhlY3V0b3Jfa3dhcmdzIGFzIGJhc2VfZXhlY3V0b3Jfa3dhcmdzCiBmcm9t
IC4uZXhlY3V0b3JzLmV4ZWN1dG9yc2VsZW5pdW0gaW1wb3J0IChTZWxlbml1bVRlc3RoYXJuZXNz
RXhlY3V0b3IsICAjIG5vcWE6IEY0MDEKQEAgLTE1LDcgKzE2LDggQEAgX193cHRydW5uZXJfXyA9
IHsicHJvZHVjdCI6ICJvcGVyYSIsCiAgICAgICAgICAgICAgICAgICJicm93c2VyX2t3YXJncyI6
ICJicm93c2VyX2t3YXJncyIsCiAgICAgICAgICAgICAgICAgICJleGVjdXRvcl9rd2FyZ3MiOiAi
ZXhlY3V0b3Jfa3dhcmdzIiwKICAgICAgICAgICAgICAgICAgImVudl9leHRyYXMiOiAiZW52X2V4
dHJhcyIsCi0gICAgICAgICAgICAgICAgICJlbnZfb3B0aW9ucyI6ICJlbnZfb3B0aW9ucyJ9Cisg
ICAgICAgICAgICAgICAgICJlbnZfb3B0aW9ucyI6ICJlbnZfb3B0aW9ucyIsCisgICAgICAgICAg
ICAgICAgICJ0aW1lb3V0X211bHRpcGxpZXIiOiAiZ2V0X3RpbWVvdXRfbXVsdGlwbGllciJ9CiAK
IAogZGVmIGNoZWNrX2FyZ3MoKiprd2FyZ3MpOgpAQCAtOTEsNyArOTMsNyBAQCBjbGFzcyBPcGVy
YUJyb3dzZXIoQnJvd3Nlcik6CiAgICAgICAgICMgVE9ETyhhdG8pOiBUaGlzIG9ubHkgaW5kaWNh
dGVzIHRoZSBkcml2ZXIgaXMgYWxpdmUsCiAgICAgICAgICMgYW5kIGRvZXNuJ3Qgc2F5IGFueXRo
aW5nIGFib3V0IHdoZXRoZXIgYSBicm93c2VyIHNlc3Npb24KICAgICAgICAgIyBpcyBhY3RpdmUu
Ci0gICAgICAgIHJldHVybiBzZWxmLnNlcnZlci5pc19hbGl2ZSgpCisgICAgICAgIHJldHVybiBz
ZWxmLnNlcnZlci5pc19hbGl2ZQogCiAgICAgZGVmIGNsZWFudXAoc2VsZik6CiAgICAgICAgIHNl
bGYuc3RvcCgpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvYnJvd3NlcnMvc2FmYXJpLnB5IGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5u
ZXIvd3B0cnVubmVyL2Jyb3dzZXJzL3NhZmFyaS5weQppbmRleCA2NzAwOThlYTIyMi4uZjRmZDMz
MTNmOWYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9icm93c2Vycy9zYWZhcmkucHkKKysrIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5u
ZXIvd3B0cnVubmVyL2Jyb3dzZXJzL3NhZmFyaS5weQpAQCAtMSwyMSArMSwyMyBAQAogZnJvbSAu
YmFzZSBpbXBvcnQgQnJvd3NlciwgRXhlY3V0b3JCcm93c2VyLCByZXF1aXJlX2FyZworZnJvbSAu
YmFzZSBpbXBvcnQgZ2V0X3RpbWVvdXRfbXVsdGlwbGllciAgICMgbm9xYTogRjQwMQogZnJvbSAu
LndlYmRyaXZlcl9zZXJ2ZXIgaW1wb3J0IFNhZmFyaURyaXZlclNlcnZlcgogZnJvbSAuLmV4ZWN1
dG9ycyBpbXBvcnQgZXhlY3V0b3Jfa3dhcmdzIGFzIGJhc2VfZXhlY3V0b3Jfa3dhcmdzCi1mcm9t
IC4uZXhlY3V0b3JzLmV4ZWN1dG9yc2VsZW5pdW0gaW1wb3J0IChTZWxlbml1bVRlc3RoYXJuZXNz
RXhlY3V0b3IsICAjIG5vcWE6IEY0MDEKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIFNlbGVuaXVtUmVmVGVzdEV4ZWN1dG9yKSAgIyBub3FhOiBGNDAxCitmcm9tIC4u
ZXhlY3V0b3JzLmV4ZWN1dG9yd2ViZHJpdmVyIGltcG9ydCAoV2ViRHJpdmVyVGVzdGhhcm5lc3NF
eGVjdXRvciwgICMgbm9xYTogRjQwMQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIFdlYkRyaXZlclJlZlRlc3RFeGVjdXRvcikgICMgbm9xYTogRjQwMQogZnJvbSAu
LmV4ZWN1dG9ycy5leGVjdXRvcnNhZmFyaSBpbXBvcnQgU2FmYXJpRHJpdmVyV2RzcGVjRXhlY3V0
b3IgICMgbm9xYTogRjQwMQogCiAKIF9fd3B0cnVubmVyX18gPSB7InByb2R1Y3QiOiAic2FmYXJp
IiwKICAgICAgICAgICAgICAgICAgImNoZWNrX2FyZ3MiOiAiY2hlY2tfYXJncyIsCiAgICAgICAg
ICAgICAgICAgICJicm93c2VyIjogIlNhZmFyaUJyb3dzZXIiLAotICAgICAgICAgICAgICAgICAi
ZXhlY3V0b3IiOiB7InRlc3RoYXJuZXNzIjogIlNlbGVuaXVtVGVzdGhhcm5lc3NFeGVjdXRvciIs
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAicmVmdGVzdCI6ICJTZWxlbml1bVJlZlRl
c3RFeGVjdXRvciIsCisgICAgICAgICAgICAgICAgICJleGVjdXRvciI6IHsidGVzdGhhcm5lc3Mi
OiAiV2ViRHJpdmVyVGVzdGhhcm5lc3NFeGVjdXRvciIsCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAicmVmdGVzdCI6ICJXZWJEcml2ZXJSZWZUZXN0RXhlY3V0b3IiLAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIndkc3BlYyI6ICJTYWZhcmlEcml2ZXJXZHNwZWNFeGVjdXRv
ciJ9LAogICAgICAgICAgICAgICAgICAiYnJvd3Nlcl9rd2FyZ3MiOiAiYnJvd3Nlcl9rd2FyZ3Mi
LAogICAgICAgICAgICAgICAgICAiZXhlY3V0b3Jfa3dhcmdzIjogImV4ZWN1dG9yX2t3YXJncyIs
CiAgICAgICAgICAgICAgICAgICJlbnZfZXh0cmFzIjogImVudl9leHRyYXMiLAotICAgICAgICAg
ICAgICAgICAiZW52X29wdGlvbnMiOiAiZW52X29wdGlvbnMifQorICAgICAgICAgICAgICAgICAi
ZW52X29wdGlvbnMiOiAiZW52X29wdGlvbnMiLAorICAgICAgICAgICAgICAgICAidGltZW91dF9t
dWx0aXBsaWVyIjogImdldF90aW1lb3V0X211bHRpcGxpZXIifQogCiAKIGRlZiBjaGVja19hcmdz
KCoqa3dhcmdzKToKQEAgLTMzLDYgKzM1LDggQEAgZGVmIGV4ZWN1dG9yX2t3YXJncyh0ZXN0X3R5
cGUsIHNlcnZlcl9jb25maWcsIGNhY2hlX21hbmFnZXIsIHJ1bl9pbmZvX2RhdGEsCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FjaGVfbWFuYWdlciwgcnVuX2lu
Zm9fZGF0YSwgKiprd2FyZ3MpCiAgICAgZXhlY3V0b3Jfa3dhcmdzWyJjbG9zZV9hZnRlcl9kb25l
Il0gPSBUcnVlCiAgICAgZXhlY3V0b3Jfa3dhcmdzWyJjYXBhYmlsaXRpZXMiXSA9IHt9CisgICAg
aWYgdGVzdF90eXBlID09ICJ0ZXN0aGFybmVzcyI6CisgICAgICAgIGV4ZWN1dG9yX2t3YXJnc1si
Y2FwYWJpbGl0aWVzIl1bInBhZ2VMb2FkU3RyYXRlZ3kiXSA9ICJlYWdlciIKICAgICBpZiBrd2Fy
Z3NbImJpbmFyeSJdIGlzIG5vdCBOb25lOgogICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJTYWZh
cmkgZG9lc24ndCBzdXBwb3J0IHNldHRpbmcgZXhlY3V0YWJsZSBsb2NhdGlvbiIpCiAKQEAgLTc1
LDcgKzc5LDcgQEAgY2xhc3MgU2FmYXJpQnJvd3NlcihCcm93c2VyKToKICAgICAgICAgIyBUT0RP
KGF0byk6IFRoaXMgb25seSBpbmRpY2F0ZXMgdGhlIGRyaXZlciBpcyBhbGl2ZSwKICAgICAgICAg
IyBhbmQgZG9lc24ndCBzYXkgYW55dGhpbmcgYWJvdXQgd2hldGhlciBhIGJyb3dzZXIgc2Vzc2lv
bgogICAgICAgICAjIGlzIGFjdGl2ZS4KLSAgICAgICAgcmV0dXJuIHNlbGYuc2VydmVyLmlzX2Fs
aXZlKCkKKyAgICAgICAgcmV0dXJuIHNlbGYuc2VydmVyLmlzX2FsaXZlCiAKICAgICBkZWYgY2xl
YW51cChzZWxmKToKICAgICAgICAgc2VsZi5zdG9wKCkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5l
ci9icm93c2Vycy9zYXVjZS5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9icm93c2Vycy9zYXVjZS5weQppbmRl
eCA5YWE0ODRhY2NkNC4uMzMwMWM3NWIyMTAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9icm93
c2Vycy9zYXVjZS5weQorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvYnJvd3NlcnMvc2F1Y2UucHkKQEAgLTE0
LDYgKzE0LDcgQEAgZnJvbSBjU3RyaW5nSU8gaW1wb3J0IFN0cmluZ0lPIGFzIENTdHJpbmdJTwog
aW1wb3J0IHJlcXVlc3RzCiAKIGZyb20gLmJhc2UgaW1wb3J0IEJyb3dzZXIsIEV4ZWN1dG9yQnJv
d3NlciwgcmVxdWlyZV9hcmcKK2Zyb20gLmJhc2UgaW1wb3J0IGdldF90aW1lb3V0X211bHRpcGxp
ZXIgICAjIG5vcWE6IEY0MDEKIGZyb20gLi5leGVjdXRvcnMgaW1wb3J0IGV4ZWN1dG9yX2t3YXJn
cyBhcyBiYXNlX2V4ZWN1dG9yX2t3YXJncwogZnJvbSAuLmV4ZWN1dG9ycy5leGVjdXRvcnNlbGVu
aXVtIGltcG9ydCAoU2VsZW5pdW1UZXN0aGFybmVzc0V4ZWN1dG9yLCAgIyBub3FhOiBGNDAxCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTZWxlbml1bVJlZlRlc3RF
eGVjdXRvcikgICMgbm9xYTogRjQwMQpAQCAtMzIsNyArMzMsOCBAQCBfX3dwdHJ1bm5lcl9fID0g
eyJwcm9kdWN0IjogInNhdWNlIiwKICAgICAgICAgICAgICAgICAgImJyb3dzZXJfa3dhcmdzIjog
ImJyb3dzZXJfa3dhcmdzIiwKICAgICAgICAgICAgICAgICAgImV4ZWN1dG9yX2t3YXJncyI6ICJl
eGVjdXRvcl9rd2FyZ3MiLAogICAgICAgICAgICAgICAgICAiZW52X2V4dHJhcyI6ICJlbnZfZXh0
cmFzIiwKLSAgICAgICAgICAgICAgICAgImVudl9vcHRpb25zIjogImVudl9vcHRpb25zIn0KKyAg
ICAgICAgICAgICAgICAgImVudl9vcHRpb25zIjogImVudl9vcHRpb25zIiwKKyAgICAgICAgICAg
ICAgICAgInRpbWVvdXRfbXVsdGlwbGllciI6ICJnZXRfdGltZW91dF9tdWx0aXBsaWVyIn0KIAog
CiBkZWYgZ2V0X2NhcGFiaWxpdGllcygqKmt3YXJncyk6CkBAIC0xMzMsNiArMTM1LDggQEAgY2xh
c3MgU2F1Y2VDb25uZWN0KCk6CiAgICAgICAgIHNlbGYuc2F1Y2Vfa2V5ID0ga3dhcmdzWyJzYXVj
ZV9rZXkiXQogICAgICAgICBzZWxmLnNhdWNlX3R1bm5lbF9pZCA9IGt3YXJnc1sic2F1Y2VfdHVu
bmVsX2lkIl0KICAgICAgICAgc2VsZi5zYXVjZV9jb25uZWN0X2JpbmFyeSA9IGt3YXJncy5nZXQo
InNhdWNlX2Nvbm5lY3RfYmluYXJ5IikKKyAgICAgICAgc2VsZi5zYXVjZV9jb25uZWN0X2FyZ3Mg
PSBrd2FyZ3MuZ2V0KCJzYXVjZV9jb25uZWN0X2FyZ3MiKQorICAgICAgICBzZWxmLnNhdWNlX2lu
aXRfdGltZW91dCA9IGt3YXJncy5nZXQoInNhdWNlX2luaXRfdGltZW91dCIpCiAgICAgICAgIHNl
bGYuc2NfcHJvY2VzcyA9IE5vbmUKICAgICAgICAgc2VsZi50ZW1wX2RpciA9IE5vbmUKICAgICAg
ICAgc2VsZi5lbnZfY29uZmlnID0gTm9uZQpAQCAtMTcwLDE0ICsxNzQsMTEgQEAgY2xhc3MgU2F1
Y2VDb25uZWN0KCk6CiAgICAgICAgICAgICAiLS1yZWFkeWZpbGU9Li9zYXVjZV9pc19yZWFkeSIs
CiAgICAgICAgICAgICAiLS10dW5uZWwtZG9tYWlucyIsCiAgICAgICAgICAgICAiLCIuam9pbihz
ZWxmLmVudl9jb25maWcuZG9tYWluc19zZXQpCi0gICAgICAgIF0pCi0KLSAgICAgICAgIyBUaW1l
b3V0IGNvbmZpZyB2YXJzCi0gICAgICAgIG1heF93YWl0ID0gMzAKKyAgICAgICAgXSArIHNlbGYu
c2F1Y2VfY29ubmVjdF9hcmdzKQogCiAgICAgICAgIHRvdF93YWl0ID0gMAogICAgICAgICB3aGls
ZSBub3Qgb3MucGF0aC5leGlzdHMoJy4vc2F1Y2VfaXNfcmVhZHknKSBhbmQgc2VsZi5zY19wcm9j
ZXNzLnBvbGwoKSBpcyBOb25lOgotICAgICAgICAgICAgaWYgdG90X3dhaXQgPj0gbWF4X3dhaXQ6
CisgICAgICAgICAgICBpZiB0b3Rfd2FpdCA+PSBzZWxmLnNhdWNlX2luaXRfdGltZW91dDoKICAg
ICAgICAgICAgICAgICBzZWxmLnF1aXQoKQogCiAgICAgICAgICAgICAgICAgcmFpc2UgU2F1Y2VF
eGNlcHRpb24oIlNhdWNlIENvbm5lY3QgUHJveHkgd2FzIG5vdCByZWFkeSBhZnRlciAlZCBzZWNv
bmRzIiAlIHRvdF93YWl0KQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2Jyb3dzZXJzL3NlcnZv
LnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93
cHRydW5uZXIvd3B0cnVubmVyL2Jyb3dzZXJzL3NlcnZvLnB5CmluZGV4IDFhMzU3YTNjZWQ5Li5k
M2VkNGIzZmIxZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2Jyb3dzZXJzL3NlcnZvLnB5Cisr
KyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0
cnVubmVyL3dwdHJ1bm5lci9icm93c2Vycy9zZXJ2by5weQpAQCAtMSw2ICsxLDcgQEAKIGltcG9y
dCBvcwogCiBmcm9tIC5iYXNlIGltcG9ydCBOdWxsQnJvd3NlciwgRXhlY3V0b3JCcm93c2VyLCBy
ZXF1aXJlX2FyZworZnJvbSAuYmFzZSBpbXBvcnQgZ2V0X3RpbWVvdXRfbXVsdGlwbGllciAgICMg
bm9xYTogRjQwMQogZnJvbSAuLmV4ZWN1dG9ycyBpbXBvcnQgZXhlY3V0b3Jfa3dhcmdzIGFzIGJh
c2VfZXhlY3V0b3Jfa3dhcmdzCiBmcm9tIC4uZXhlY3V0b3JzLmV4ZWN1dG9yc2Vydm8gaW1wb3J0
IFNlcnZvVGVzdGhhcm5lc3NFeGVjdXRvciwgU2Vydm9SZWZUZXN0RXhlY3V0b3IsIFNlcnZvV2Rz
cGVjRXhlY3V0b3IgICMgbm9xYTogRjQwMQogCkBAIC0xOSw2ICsyMCw3IEBAIF9fd3B0cnVubmVy
X18gPSB7CiAgICAgImV4ZWN1dG9yX2t3YXJncyI6ICJleGVjdXRvcl9rd2FyZ3MiLAogICAgICJl
bnZfZXh0cmFzIjogImVudl9leHRyYXMiLAogICAgICJlbnZfb3B0aW9ucyI6ICJlbnZfb3B0aW9u
cyIsCisgICAgInRpbWVvdXRfbXVsdGlwbGllciI6ICJnZXRfdGltZW91dF9tdWx0aXBsaWVyIiwK
ICAgICAidXBkYXRlX3Byb3BlcnRpZXMiOiAidXBkYXRlX3Byb3BlcnRpZXMiLAogfQogCkBAIC01
OSw3ICs2MSw3IEBAIGRlZiBlbnZfb3B0aW9ucygpOgogCiAKIGRlZiB1cGRhdGVfcHJvcGVydGll
cygpOgotICAgIHJldHVybiBbImRlYnVnIiwgIm9zIiwgInZlcnNpb24iLCAicHJvY2Vzc29yIiwg
ImJpdHMiXSwgTm9uZQorICAgIHJldHVybiBbImRlYnVnIiwgIm9zIiwgInByb2Nlc3NvciJdLCB7
Im9zIjogWyJ2ZXJzaW9uIl0sICJwcm9jZXNzb3IiOiBbImJpdHMiXX0KIAogCiBjbGFzcyBTZXJ2
b0Jyb3dzZXIoTnVsbEJyb3dzZXIpOgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2Jyb3dzZXJz
L3NlcnZvZHJpdmVyLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2Jyb3dzZXJzL3NlcnZvZHJpdmVyLnB5Cmlu
ZGV4IDY0ODZhNzg4YjhjLi4yOTUzZGUxODE3NCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2Jy
b3dzZXJzL3NlcnZvZHJpdmVyLnB5CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9icm93c2Vycy9zZXJ2b2Ry
aXZlci5weQpAQCAtNCw5ICs0LDEwIEBAIGltcG9ydCB0ZW1wZmlsZQogCiBmcm9tIG1venByb2Nl
c3MgaW1wb3J0IFByb2Nlc3NIYW5kbGVyCiAKLWZyb20gc2VydmUuc2VydmUgaW1wb3J0IG1ha2Vf
aG9zdHNfZmlsZQorZnJvbSB0b29scy5zZXJ2ZS5zZXJ2ZSBpbXBvcnQgbWFrZV9ob3N0c19maWxl
CiAKIGZyb20gLmJhc2UgaW1wb3J0IEJyb3dzZXIsIHJlcXVpcmVfYXJnLCBnZXRfZnJlZV9wb3J0
LCBicm93c2VyX2NvbW1hbmQsIEV4ZWN1dG9yQnJvd3NlcgorZnJvbSAuYmFzZSBpbXBvcnQgZ2V0
X3RpbWVvdXRfbXVsdGlwbGllciAgICMgbm9xYTogRjQwMQogZnJvbSAuLmV4ZWN1dG9ycyBpbXBv
cnQgZXhlY3V0b3Jfa3dhcmdzIGFzIGJhc2VfZXhlY3V0b3Jfa3dhcmdzCiBmcm9tIC4uZXhlY3V0
b3JzLmV4ZWN1dG9yc2Vydm9kcml2ZXIgaW1wb3J0IChTZXJ2b1dlYkRyaXZlclRlc3RoYXJuZXNz
RXhlY3V0b3IsICAjIG5vcWE6IEY0MDEKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIFNlcnZvV2ViRHJpdmVyUmVmVGVzdEV4ZWN1dG9yKSAgIyBub3FhOiBGNDAx
CkBAIC0yNSw2ICsyNiw3IEBAIF9fd3B0cnVubmVyX18gPSB7CiAgICAgImV4ZWN1dG9yX2t3YXJn
cyI6ICJleGVjdXRvcl9rd2FyZ3MiLAogICAgICJlbnZfZXh0cmFzIjogImVudl9leHRyYXMiLAog
ICAgICJlbnZfb3B0aW9ucyI6ICJlbnZfb3B0aW9ucyIsCisgICAgInRpbWVvdXRfbXVsdGlwbGll
ciI6ICJnZXRfdGltZW91dF9tdWx0aXBsaWVyIiwKICAgICAidXBkYXRlX3Byb3BlcnRpZXMiOiAi
dXBkYXRlX3Byb3BlcnRpZXMiLAogfQogCkBAIC00MCw2ICs0Miw3IEBAIGRlZiBicm93c2VyX2t3
YXJncyh0ZXN0X3R5cGUsIHJ1bl9pbmZvX2RhdGEsIGNvbmZpZywgKiprd2FyZ3MpOgogICAgICAg
ICAiZGVidWdfaW5mbyI6IGt3YXJnc1siZGVidWdfaW5mbyJdLAogICAgICAgICAic2VydmVyX2Nv
bmZpZyI6IGNvbmZpZywKICAgICAgICAgInVzZXJfc3R5bGVzaGVldHMiOiBrd2FyZ3MuZ2V0KCJ1
c2VyX3N0eWxlc2hlZXRzIiksCisgICAgICAgICJoZWFkbGVzcyI6IGt3YXJncy5nZXQoImhlYWRs
ZXNzIiksCiAgICAgfQogCiAKQEAgLTYwLDcgKzYzLDcgQEAgZGVmIGVudl9vcHRpb25zKCk6CiAK
IAogZGVmIHVwZGF0ZV9wcm9wZXJ0aWVzKCk6Ci0gICAgcmV0dXJuIFsiZGVidWciLCAib3MiLCAi
dmVyc2lvbiIsICJwcm9jZXNzb3IiLCAiYml0cyJdLCBOb25lCisgICAgcmV0dXJuIChbImRlYnVn
IiwgIm9zIiwgInByb2Nlc3NvciJdLCB7Im9zIjogWyJ2ZXJzaW9uIl0sICJwcm9jZXNzb3IiOiBb
ImJpdHMiXX0pCiAKIAogZGVmIHdyaXRlX2hvc3RzX2ZpbGUoY29uZmlnKToKQEAgLTY5LDEzICs3
MiwxMSBAQCBkZWYgd3JpdGVfaG9zdHNfZmlsZShjb25maWcpOgogICAgICAgICBmLndyaXRlKG1h
a2VfaG9zdHNfZmlsZShjb25maWcsICIxMjcuMC4wLjEiKSkKICAgICByZXR1cm4gaG9zdHNfcGF0
aAogCi0KIGNsYXNzIFNlcnZvV2ViRHJpdmVyQnJvd3NlcihCcm93c2VyKToKLSAgICB1c2VkX3Bv
cnRzID0gc2V0KCkKICAgICBpbml0X3RpbWVvdXQgPSAzMDAgICMgTGFyZ2UgdGltZW91dCBmb3Ig
Y2FzZXMgd2hlcmUgd2UncmUgYm9vdGluZyBhbiBBbmRyb2lkIGVtdWxhdG9yCiAKICAgICBkZWYg
X19pbml0X18oc2VsZiwgbG9nZ2VyLCBiaW5hcnksIGRlYnVnX2luZm89Tm9uZSwgd2ViZHJpdmVy
X2hvc3Q9IjEyNy4wLjAuMSIsCi0gICAgICAgICAgICAgICAgIHNlcnZlcl9jb25maWc9Tm9uZSwg
YmluYXJ5X2FyZ3M9Tm9uZSwgdXNlcl9zdHlsZXNoZWV0cz1Ob25lKToKKyAgICAgICAgICAgICAg
ICAgc2VydmVyX2NvbmZpZz1Ob25lLCBiaW5hcnlfYXJncz1Ob25lLCB1c2VyX3N0eWxlc2hlZXRz
PU5vbmUsIGhlYWRsZXNzPU5vbmUpOgogICAgICAgICBCcm93c2VyLl9faW5pdF9fKHNlbGYsIGxv
Z2dlcikKICAgICAgICAgc2VsZi5iaW5hcnkgPSBiaW5hcnkKICAgICAgICAgc2VsZi5iaW5hcnlf
YXJncyA9IGJpbmFyeV9hcmdzIG9yIFtdCkBAIC04NywxMCArODgsMTEgQEAgY2xhc3MgU2Vydm9X
ZWJEcml2ZXJCcm93c2VyKEJyb3dzZXIpOgogICAgICAgICBzZWxmLnNlcnZlcl9wb3J0cyA9IHNl
cnZlcl9jb25maWcucG9ydHMgaWYgc2VydmVyX2NvbmZpZyBlbHNlIHt9CiAgICAgICAgIHNlbGYu
Y29tbWFuZCA9IE5vbmUKICAgICAgICAgc2VsZi51c2VyX3N0eWxlc2hlZXRzID0gdXNlcl9zdHls
ZXNoZWV0cyBpZiB1c2VyX3N0eWxlc2hlZXRzIGVsc2UgW10KKyAgICAgICAgc2VsZi5oZWFkbGVz
cyA9IGhlYWRsZXNzIGlmIGhlYWRsZXNzIGVsc2UgRmFsc2UKKyAgICAgICAgc2VsZi5jYV9jZXJ0
aWZpY2F0ZV9wYXRoID0gc2VydmVyX2NvbmZpZy5zc2xfY29uZmlnWyJjYV9jZXJ0X3BhdGgiXQog
CiAgICAgZGVmIHN0YXJ0KHNlbGYsICoqa3dhcmdzKToKLSAgICAgICAgc2VsZi53ZWJkcml2ZXJf
cG9ydCA9IGdldF9mcmVlX3BvcnQoNDQ0NCwgZXhjbHVkZT1zZWxmLnVzZWRfcG9ydHMpCi0gICAg
ICAgIHNlbGYudXNlZF9wb3J0cy5hZGQoc2VsZi53ZWJkcml2ZXJfcG9ydCkKKyAgICAgICAgc2Vs
Zi53ZWJkcml2ZXJfcG9ydCA9IGdldF9mcmVlX3BvcnQoKQogCiAgICAgICAgIGVudiA9IG9zLmVu
dmlyb24uY29weSgpCiAgICAgICAgIGVudlsiSE9TVF9GSUxFIl0gPSBzZWxmLmhvc3RzX3BhdGgK
QEAgLTEwNiwxMiArMTA4LDE4IEBAIGNsYXNzIFNlcnZvV2ViRHJpdmVyQnJvd3NlcihCcm93c2Vy
KToKICAgICAgICAgICAgIHNlbGYuYmluYXJ5LAogICAgICAgICAgICAgc2VsZi5iaW5hcnlfYXJn
cyArIFsKICAgICAgICAgICAgICAgICAiLS1oYXJkLWZhaWwiLAotICAgICAgICAgICAgICAgICIt
LXdlYmRyaXZlciIsIHN0cihzZWxmLndlYmRyaXZlcl9wb3J0KSwKKyAgICAgICAgICAgICAgICAi
LS13ZWJkcml2ZXI9JXMiICUgc2VsZi53ZWJkcml2ZXJfcG9ydCwKICAgICAgICAgICAgICAgICAi
YWJvdXQ6YmxhbmsiLAogICAgICAgICAgICAgXSwKICAgICAgICAgICAgIHNlbGYuZGVidWdfaW5m
bwogICAgICAgICApCiAKKyAgICAgICAgaWYgc2VsZi5oZWFkbGVzczoKKyAgICAgICAgICAgIGNv
bW1hbmQgKz0gWyItLWhlYWRsZXNzIl0KKworICAgICAgICBpZiBzZWxmLmNhX2NlcnRpZmljYXRl
X3BhdGg6CisgICAgICAgICAgICBjb21tYW5kICs9IFsiLS1jZXJ0aWZpY2F0ZS1wYXRoIiwgc2Vs
Zi5jYV9jZXJ0aWZpY2F0ZV9wYXRoXQorCiAgICAgICAgIGZvciBzdHlsZXNoZWV0IGluIHNlbGYu
dXNlcl9zdHlsZXNoZWV0czoKICAgICAgICAgICAgIGNvbW1hbmQgKz0gWyItLXVzZXItc3R5bGVz
aGVldCIsIHN0eWxlc2hlZXRdCiAKQEAgLTE1NSw5ICsxNjMsNyBAQCBjbGFzcyBTZXJ2b1dlYkRy
aXZlckJyb3dzZXIoQnJvd3Nlcik6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGNvbW1hbmQ9IiAiLmpvaW4oc2VsZi5jb21tYW5kKSkKIAogICAgIGRlZiBpc19hbGl2ZShzZWxm
KToKLSAgICAgICAgaWYgc2VsZi5ydW5uZXI6Ci0gICAgICAgICAgICByZXR1cm4gc2VsZi5ydW5u
ZXIuaXNfcnVubmluZygpCi0gICAgICAgIHJldHVybiBGYWxzZQorICAgICAgICByZXR1cm4gc2Vs
Zi5wcm9jLnBvbGwoKSBpcyBOb25lCiAKICAgICBkZWYgY2xlYW51cChzZWxmKToKICAgICAgICAg
c2VsZi5zdG9wKCkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9icm93c2Vycy93M2MtaW1wb3J0
LmxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
d3B0cnVubmVyL3dwdHJ1bm5lci9icm93c2Vycy93M2MtaW1wb3J0LmxvZwppbmRleCA5YzI3YjE5
MDEzYi4uMGYxY2Y2ZTMwMDYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9icm93c2Vycy93M2Mt
aW1wb3J0LmxvZworKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvYnJvd3NlcnMvdzNjLWltcG9ydC5sb2cKQEAg
LTE1LDEyICsxNSwxNyBAQCBOb25lCiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIExpc3Qgb2YgZmlsZXM6CiAv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5u
ZXIvd3B0cnVubmVyL2Jyb3dzZXJzL19faW5pdF9fLnB5CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2Jyb3dzZXJz
L2FuZHJvaWRfd2Vidmlldy5weQogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9icm93c2Vycy9iYXNlLnB5CiAvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIv
d3B0cnVubmVyL2Jyb3dzZXJzL2Nocm9tZS5weQogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9icm93c2Vycy9jaHJv
bWVfYW5kcm9pZC5weQorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9icm93c2Vycy9jaHJvbWVfaW9zLnB5CiAvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIv
d3B0cnVubmVyL2Jyb3dzZXJzL2VkZ2UucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvYnJvd3NlcnMvZmVubmVj
LnB5CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93
cHRydW5uZXIvd3B0cnVubmVyL2Jyb3dzZXJzL2VkZ2Vfd2ViZHJpdmVyLnB5CisvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVu
bmVyL2Jyb3dzZXJzL2VkZ2VjaHJvbWl1bS5weQorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9icm93c2Vycy9lcGlw
aGFueS5weQogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvd3B0cnVubmVyL3dwdHJ1bm5lci9icm93c2Vycy9maXJlZm94LnB5CisvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVy
L2Jyb3dzZXJzL2ZpcmVmb3hfYW5kcm9pZC5weQogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9icm93c2Vycy9pZS5w
eQogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0
cnVubmVyL3dwdHJ1bm5lci9icm93c2Vycy9vcGVyYS5weQogL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9icm93c2Vy
cy9zYWZhcmkucHkKQEAgLTI4LDMgKzMzLDQgQEAgTGlzdCBvZiBmaWxlczoKIC9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5u
ZXIvYnJvd3NlcnMvc2Vydm8ucHkKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvYnJvd3NlcnMvc2Vydm9kcml2ZXIu
cHkKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dw
dHJ1bm5lci93cHRydW5uZXIvYnJvd3NlcnMvd2Via2l0LnB5CisvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2Jyb3dz
ZXJzL3dlYmtpdGd0a19taW5pYnJvd3Nlci5weQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2Jy
b3dzZXJzL3dlYmtpdC5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9icm93c2Vycy93ZWJraXQucHkKaW5kZXgg
OTQ4MmYyZjc3NDMuLmFhMjg2MjEzOTQ1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvYnJvd3Nl
cnMvd2Via2l0LnB5CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9icm93c2Vycy93ZWJraXQucHkKQEAgLTEs
NyArMSw4IEBACiBmcm9tIC5iYXNlIGltcG9ydCBCcm93c2VyLCBFeGVjdXRvckJyb3dzZXIsIHJl
cXVpcmVfYXJnCitmcm9tIC5iYXNlIGltcG9ydCBnZXRfdGltZW91dF9tdWx0aXBsaWVyLCBjZXJ0
aWZpY2F0ZV9kb21haW5fbGlzdCAgIyBub3FhOiBGNDAxCiBmcm9tIC4uZXhlY3V0b3JzIGltcG9y
dCBleGVjdXRvcl9rd2FyZ3MgYXMgYmFzZV9leGVjdXRvcl9rd2FyZ3MKLWZyb20gLi5leGVjdXRv
cnMuZXhlY3V0b3JzZWxlbml1bSBpbXBvcnQgKFNlbGVuaXVtVGVzdGhhcm5lc3NFeGVjdXRvciwg
ICMgbm9xYTogRjQwMQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
U2VsZW5pdW1SZWZUZXN0RXhlY3V0b3IpICAjIG5vcWE6IEY0MDEKK2Zyb20gLi5leGVjdXRvcnMu
ZXhlY3V0b3J3ZWJkcml2ZXIgaW1wb3J0IChXZWJEcml2ZXJUZXN0aGFybmVzc0V4ZWN1dG9yLCAg
IyBub3FhOiBGNDAxCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
V2ViRHJpdmVyUmVmVGVzdEV4ZWN1dG9yKSAgIyBub3FhOiBGNDAxCiBmcm9tIC4uZXhlY3V0b3Jz
LmV4ZWN1dG9yd2Via2l0IGltcG9ydCBXZWJLaXREcml2ZXJXZHNwZWNFeGVjdXRvciAgIyBub3Fh
OiBGNDAxCiBmcm9tIC4ud2ViZHJpdmVyX3NlcnZlciBpbXBvcnQgV2ViS2l0RHJpdmVyU2VydmVy
CiAKQEAgLTEwLDEyICsxMSwxNCBAQCBfX3dwdHJ1bm5lcl9fID0geyJwcm9kdWN0IjogIndlYmtp
dCIsCiAgICAgICAgICAgICAgICAgICJjaGVja19hcmdzIjogImNoZWNrX2FyZ3MiLAogICAgICAg
ICAgICAgICAgICAiYnJvd3NlciI6ICJXZWJLaXRCcm93c2VyIiwKICAgICAgICAgICAgICAgICAg
ImJyb3dzZXJfa3dhcmdzIjogImJyb3dzZXJfa3dhcmdzIiwKLSAgICAgICAgICAgICAgICAgImV4
ZWN1dG9yIjogeyJ0ZXN0aGFybmVzcyI6ICJTZWxlbml1bVRlc3RoYXJuZXNzRXhlY3V0b3IiLAot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInJlZnRlc3QiOiAiU2VsZW5pdW1SZWZUZXN0
RXhlY3V0b3IiLAorICAgICAgICAgICAgICAgICAiZXhlY3V0b3IiOiB7InRlc3RoYXJuZXNzIjog
IldlYkRyaXZlclRlc3RoYXJuZXNzRXhlY3V0b3IiLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgInJlZnRlc3QiOiAiV2ViRHJpdmVyUmVmVGVzdEV4ZWN1dG9yIiwKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICJ3ZHNwZWMiOiAiV2ViS2l0RHJpdmVyV2RzcGVjRXhlY3V0b3Ii
fSwKICAgICAgICAgICAgICAgICAgImV4ZWN1dG9yX2t3YXJncyI6ICJleGVjdXRvcl9rd2FyZ3Mi
LAogICAgICAgICAgICAgICAgICAiZW52X2V4dHJhcyI6ICJlbnZfZXh0cmFzIiwKLSAgICAgICAg
ICAgICAgICAgImVudl9vcHRpb25zIjogImVudl9vcHRpb25zIn0KKyAgICAgICAgICAgICAgICAg
ImVudl9vcHRpb25zIjogImVudl9vcHRpb25zIiwKKyAgICAgICAgICAgICAgICAgInJ1bl9pbmZv
X2V4dHJhcyI6ICJydW5faW5mb19leHRyYXMiLAorICAgICAgICAgICAgICAgICAidGltZW91dF9t
dWx0aXBsaWVyIjogImdldF90aW1lb3V0X211bHRpcGxpZXIifQogCiAKIGRlZiBjaGVja19hcmdz
KCoqa3dhcmdzKToKQEAgLTMxLDE5ICszNCwyMCBAQCBkZWYgYnJvd3Nlcl9rd2FyZ3ModGVzdF90
eXBlLCBydW5faW5mb19kYXRhLCBjb25maWcsICoqa3dhcmdzKToKIAogCiBkZWYgY2FwYWJpbGl0
aWVzX2Zvcl9wb3J0KHNlcnZlcl9jb25maWcsICoqa3dhcmdzKToKLSAgICBmcm9tIHNlbGVuaXVt
LndlYmRyaXZlciBpbXBvcnQgRGVzaXJlZENhcGFiaWxpdGllcwotCi0gICAgaWYga3dhcmdzWyJ3
ZWJraXRfcG9ydCJdID09ICJndGsiOgotICAgICAgICBjYXBhYmlsaXRpZXMgPSBkaWN0KERlc2ly
ZWRDYXBhYmlsaXRpZXMuV0VCS0lUR1RLLmNvcHkoKSkKLSAgICAgICAgY2FwYWJpbGl0aWVzWyJ3
ZWJraXRndGs6YnJvd3Nlck9wdGlvbnMiXSA9IHsKLSAgICAgICAgICAgICJiaW5hcnkiOiBrd2Fy
Z3NbImJpbmFyeSJdLAotICAgICAgICAgICAgImFyZ3MiOiBrd2FyZ3MuZ2V0KCJiaW5hcnlfYXJn
cyIsIFtdKSwKLSAgICAgICAgICAgICJjZXJ0aWZpY2F0ZXMiOiBbCi0gICAgICAgICAgICAgICAg
eyJob3N0Ijogc2VydmVyX2NvbmZpZ1siYnJvd3Nlcl9ob3N0Il0sCi0gICAgICAgICAgICAgICAg
ICJjZXJ0aWZpY2F0ZUZpbGUiOiBrd2FyZ3NbImhvc3RfY2VydF9wYXRoIl19Ci0gICAgICAgICAg
ICBdCi0gICAgICAgIH0KLSAgICAgICAgcmV0dXJuIGNhcGFiaWxpdGllcworICAgIHBvcnRfbmFt
ZSA9IGt3YXJnc1sid2Via2l0X3BvcnQiXQorICAgIGlmIHBvcnRfbmFtZSBpbiBbImd0ayIsICJ3
cGUiXToKKyAgICAgICAgcG9ydF9rZXlfbWFwID0geyJndGsiOiAid2Via2l0Z3RrIn0KKyAgICAg
ICAgYnJvd3Nlcl9vcHRpb25zX3BvcnQgPSBwb3J0X2tleV9tYXAuZ2V0KHBvcnRfbmFtZSwgcG9y
dF9uYW1lKQorICAgICAgICBicm93c2VyX29wdGlvbnNfa2V5ID0gIiVzOmJyb3dzZXJPcHRpb25z
IiAlIGJyb3dzZXJfb3B0aW9uc19wb3J0CisKKyAgICAgICAgcmV0dXJuIHsKKyAgICAgICAgICAg
ICJicm93c2VyTmFtZSI6ICJNaW5pQnJvd3NlciIsCisgICAgICAgICAgICAiYnJvd3NlclZlcnNp
b24iOiAiMi4yMCIsCisgICAgICAgICAgICAicGxhdGZvcm1OYW1lIjogIkFOWSIsCisgICAgICAg
ICAgICBicm93c2VyX29wdGlvbnNfa2V5OiB7CisgICAgICAgICAgICAgICAgImJpbmFyeSI6IGt3
YXJnc1siYmluYXJ5Il0sCisgICAgICAgICAgICAgICAgImFyZ3MiOiBrd2FyZ3MuZ2V0KCJiaW5h
cnlfYXJncyIsIFtdKSwKKyAgICAgICAgICAgICAgICAiY2VydGlmaWNhdGVzIjogY2VydGlmaWNh
dGVfZG9tYWluX2xpc3Qoc2VydmVyX2NvbmZpZy5kb21haW5zX3NldCwga3dhcmdzWyJob3N0X2Nl
cnRfcGF0aCJdKX19CiAKICAgICByZXR1cm4ge30KIApAQCAtNjYsNiArNzAsMTAgQEAgZGVmIGVu
dl9vcHRpb25zKCk6CiAgICAgcmV0dXJuIHt9CiAKIAorZGVmIHJ1bl9pbmZvX2V4dHJhcygqKmt3
YXJncyk6CisgICAgcmV0dXJuIHsid2Via2l0X3BvcnQiOiBrd2FyZ3NbIndlYmtpdF9wb3J0Il19
CisKKwogY2xhc3MgV2ViS2l0QnJvd3NlcihCcm93c2VyKToKICAgICAiIiJHZW5lcmljIFdlYktp
dCBicm93c2VyIGlzIGJhY2tlZCBieSBXZWJLaXQncyBXZWJEcml2ZXIgaW1wbGVtZW50YXRpb24s
CiAgICAgd2hpY2ggaXMgc3VwcGxpZWQgdGhyb3VnaCBgYHdwdHJ1bm5lci53ZWJkcml2ZXIuV2Vi
S2l0RHJpdmVyU2VydmVyYGAuCkBAIC05MSw3ICs5OSw3IEBAIGNsYXNzIFdlYktpdEJyb3dzZXIo
QnJvd3Nlcik6CiAgICAgICAgICMgVE9ETyhhdG8pOiBUaGlzIG9ubHkgaW5kaWNhdGVzIHRoZSBk
cml2ZXIgaXMgYWxpdmUsCiAgICAgICAgICMgYW5kIGRvZXNuJ3Qgc2F5IGFueXRoaW5nIGFib3V0
IHdoZXRoZXIgYSBicm93c2VyIHNlc3Npb24KICAgICAgICAgIyBpcyBhY3RpdmUuCi0gICAgICAg
IHJldHVybiBzZWxmLnNlcnZlci5pc19hbGl2ZSgpCisgICAgICAgIHJldHVybiBzZWxmLnNlcnZl
ci5pc19hbGl2ZQogCiAgICAgZGVmIGNsZWFudXAoc2VsZik6CiAgICAgICAgIHNlbGYuc3RvcCgp
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvYnJvd3NlcnMvd2Via2l0Z3RrX21pbmlicm93c2Vy
LnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93
cHRydW5uZXIvd3B0cnVubmVyL2Jyb3dzZXJzL3dlYmtpdGd0a19taW5pYnJvd3Nlci5weQpuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uZDczNWYzYzA3OTIKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3dwdHJ1bm5lci93cHRydW5uZXIvYnJvd3NlcnMvd2Via2l0Z3RrX21pbmlicm93c2VyLnB5
CkBAIC0wLDAgKzEsNzkgQEAKK2Zyb20gLmJhc2UgaW1wb3J0IGdldF90aW1lb3V0X211bHRpcGxp
ZXIsIG1heWJlX2FkZF9hcmdzLCBjZXJ0aWZpY2F0ZV9kb21haW5fbGlzdCAgIyBub3FhOiBGNDAx
Citmcm9tIC53ZWJraXQgaW1wb3J0IFdlYktpdEJyb3dzZXIKK2Zyb20gLi5leGVjdXRvcnMgaW1w
b3J0IGV4ZWN1dG9yX2t3YXJncyBhcyBiYXNlX2V4ZWN1dG9yX2t3YXJncworZnJvbSAuLmV4ZWN1
dG9ycy5leGVjdXRvcndlYmRyaXZlciBpbXBvcnQgKFdlYkRyaXZlclRlc3RoYXJuZXNzRXhlY3V0
b3IsICAjIG5vcWE6IEY0MDEKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBXZWJEcml2ZXJSZWZUZXN0RXhlY3V0b3IpICAjIG5vcWE6IEY0MDEKK2Zyb20gLi5leGVj
dXRvcnMuZXhlY3V0b3J3ZWJraXQgaW1wb3J0IFdlYktpdERyaXZlcldkc3BlY0V4ZWN1dG9yICAj
IG5vcWE6IEY0MDEKKworX193cHRydW5uZXJfXyA9IHsicHJvZHVjdCI6ICJ3ZWJraXRndGtfbWlu
aWJyb3dzZXIiLAorICAgICAgICAgICAgICAgICAiY2hlY2tfYXJncyI6ICJjaGVja19hcmdzIiwK
KyAgICAgICAgICAgICAgICAgImJyb3dzZXIiOiAiV2ViS2l0R1RLTWluaUJyb3dzZXIiLAorICAg
ICAgICAgICAgICAgICAiYnJvd3Nlcl9rd2FyZ3MiOiAiYnJvd3Nlcl9rd2FyZ3MiLAorICAgICAg
ICAgICAgICAgICAiZXhlY3V0b3IiOiB7InRlc3RoYXJuZXNzIjogIldlYkRyaXZlclRlc3RoYXJu
ZXNzRXhlY3V0b3IiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInJlZnRlc3QiOiAi
V2ViRHJpdmVyUmVmVGVzdEV4ZWN1dG9yIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICJ3ZHNwZWMiOiAiV2ViS2l0RHJpdmVyV2RzcGVjRXhlY3V0b3IifSwKKyAgICAgICAgICAgICAg
ICAgImV4ZWN1dG9yX2t3YXJncyI6ICJleGVjdXRvcl9rd2FyZ3MiLAorICAgICAgICAgICAgICAg
ICAiZW52X2V4dHJhcyI6ICJlbnZfZXh0cmFzIiwKKyAgICAgICAgICAgICAgICAgImVudl9vcHRp
b25zIjogImVudl9vcHRpb25zIiwKKyAgICAgICAgICAgICAgICAgInJ1bl9pbmZvX2V4dHJhcyI6
ICJydW5faW5mb19leHRyYXMiLAorICAgICAgICAgICAgICAgICAidGltZW91dF9tdWx0aXBsaWVy
IjogImdldF90aW1lb3V0X211bHRpcGxpZXIifQorCisKK2RlZiBjaGVja19hcmdzKCoqa3dhcmdz
KToKKyAgICBwYXNzCisKKworZGVmIGJyb3dzZXJfa3dhcmdzKHRlc3RfdHlwZSwgcnVuX2luZm9f
ZGF0YSwgY29uZmlnLCAqKmt3YXJncyk6CisgICAgIyBXb3JrYXJvdW5kIGZvciBodHRwczovL2dp
dGxhYi5nbm9tZS5vcmcvR05PTUUvbGlic291cC9pc3N1ZXMvMTcyCisgICAgd2ViZHJpdmVyX3Jl
cXVpcmVkX2FyZ3MgPSBbIi0taG9zdD0xMjcuMC4wLjEiXQorICAgIHdlYmRyaXZlcl9hcmdzID0g
bWF5YmVfYWRkX2FyZ3Mod2ViZHJpdmVyX3JlcXVpcmVkX2FyZ3MsIGt3YXJncy5nZXQoIndlYmRy
aXZlcl9hcmdzIikpCisgICAgcmV0dXJuIHsiYmluYXJ5Ijoga3dhcmdzWyJiaW5hcnkiXSwKKyAg
ICAgICAgICAgICJ3ZWJkcml2ZXJfYmluYXJ5Ijoga3dhcmdzWyJ3ZWJkcml2ZXJfYmluYXJ5Il0s
CisgICAgICAgICAgICAid2ViZHJpdmVyX2FyZ3MiOiB3ZWJkcml2ZXJfYXJnc30KKworCitkZWYg
Y2FwYWJpbGl0aWVzKHNlcnZlcl9jb25maWcsICoqa3dhcmdzKToKKyAgICBicm93c2VyX3JlcXVp
cmVkX2FyZ3MgPSBbIi0tYXV0b21hdGlvbiIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
Ii0tamF2YXNjcmlwdC1jYW4tb3Blbi13aW5kb3dzLWF1dG9tYXRpY2FsbHk9dHJ1ZSIsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIi0tZW5hYmxlLXhzcy1hdWRpdG9yPWZhbHNlIiwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAiLS1lbmFibGUtbWVkaWEtY2FwYWJpbGl0aWVzPXRy
dWUiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICItLWVuYWJsZS1lbmNyeXB0ZWQtbWVk
aWE9dHJ1ZSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIi0tZW5hYmxlLW1lZGlhLXN0
cmVhbT10cnVlIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAiLS1lbmFibGUtbW9jay1j
YXB0dXJlLWRldmljZXM9dHJ1ZSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIi0tZW5h
YmxlLXdlYmF1ZGlvPXRydWUiXQorICAgIGFyZ3MgPSBrd2FyZ3MuZ2V0KCJiaW5hcnlfYXJncyIs
IFtdKQorICAgIGFyZ3MgPSBtYXliZV9hZGRfYXJncyhicm93c2VyX3JlcXVpcmVkX2FyZ3MsIGFy
Z3MpCisgICAgcmV0dXJuIHsKKyAgICAgICAgImJyb3dzZXJOYW1lIjogIk1pbmlCcm93c2VyIiwK
KyAgICAgICAgIndlYmtpdGd0azpicm93c2VyT3B0aW9ucyI6IHsKKyAgICAgICAgICAgICJiaW5h
cnkiOiBrd2FyZ3NbImJpbmFyeSJdLAorICAgICAgICAgICAgImFyZ3MiOiBhcmdzLAorICAgICAg
ICAgICAgImNlcnRpZmljYXRlcyI6IGNlcnRpZmljYXRlX2RvbWFpbl9saXN0KHNlcnZlcl9jb25m
aWcuZG9tYWluc19zZXQsIGt3YXJnc1siaG9zdF9jZXJ0X3BhdGgiXSl9fQorCisKK2RlZiBleGVj
dXRvcl9rd2FyZ3ModGVzdF90eXBlLCBzZXJ2ZXJfY29uZmlnLCBjYWNoZV9tYW5hZ2VyLCBydW5f
aW5mb19kYXRhLAorICAgICAgICAgICAgICAgICAgICAqKmt3YXJncyk6CisgICAgZXhlY3V0b3Jf
a3dhcmdzID0gYmFzZV9leGVjdXRvcl9rd2FyZ3ModGVzdF90eXBlLCBzZXJ2ZXJfY29uZmlnLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhY2hlX21hbmFnZXIs
IHJ1bl9pbmZvX2RhdGEsICoqa3dhcmdzKQorICAgIGV4ZWN1dG9yX2t3YXJnc1siY2xvc2VfYWZ0
ZXJfZG9uZSJdID0gVHJ1ZQorICAgIGV4ZWN1dG9yX2t3YXJnc1siY2FwYWJpbGl0aWVzIl0gPSBj
YXBhYmlsaXRpZXMoc2VydmVyX2NvbmZpZywgKiprd2FyZ3MpCisgICAgcmV0dXJuIGV4ZWN1dG9y
X2t3YXJncworCisKK2RlZiBlbnZfZXh0cmFzKCoqa3dhcmdzKToKKyAgICByZXR1cm4gW10KKwor
CitkZWYgZW52X29wdGlvbnMoKToKKyAgICByZXR1cm4ge30KKworCitkZWYgcnVuX2luZm9fZXh0
cmFzKCoqa3dhcmdzKToKKyAgICByZXR1cm4geyJ3ZWJraXRfcG9ydCI6ICJndGsifQorCisKK2Ns
YXNzIFdlYktpdEdUS01pbmlCcm93c2VyKFdlYktpdEJyb3dzZXIpOgorICAgIGRlZiBfX2luaXRf
XyhzZWxmLCBsb2dnZXIsIGJpbmFyeT1Ob25lLCB3ZWJkcml2ZXJfYmluYXJ5PU5vbmUsCisgICAg
ICAgICAgICAgICAgIHdlYmRyaXZlcl9hcmdzPU5vbmUpOgorICAgICAgICBXZWJLaXRCcm93c2Vy
Ll9faW5pdF9fKHNlbGYsIGxvZ2dlciwgYmluYXJ5LCB3ZWJkcml2ZXJfYmluYXJ5LAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHdlYmRyaXZlcl9hcmdzKQpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIv
d3B0cnVubmVyL2NvbmZpZy5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9jb25maWcucHkKaW5kZXggNWJkM2Y0
NjdmM2UuLmU3ZjlkN2I4Y2M5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvY29uZmlnLnB5Cisr
KyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0
cnVubmVyL3dwdHJ1bm5lci9jb25maWcucHkKQEAgLTEsNCArMSw0IEBACi1pbXBvcnQgQ29uZmln
UGFyc2VyCitmcm9tIHNpeC5tb3Zlcy5jb25maWdwYXJzZXIgaW1wb3J0IFNhZmVDb25maWdQYXJz
ZXIKIGltcG9ydCBvcwogaW1wb3J0IHN5cwogZnJvbSBjb2xsZWN0aW9ucyBpbXBvcnQgT3JkZXJl
ZERpY3QKQEAgLTIwLDcgKzIwLDcgQEAgY2xhc3MgQ29uZmlnRGljdChkaWN0KToKIGRlZiByZWFk
KGNvbmZpZ19wYXRoKToKICAgICBjb25maWdfcGF0aCA9IG9zLnBhdGguYWJzcGF0aChjb25maWdf
cGF0aCkKICAgICBjb25maWdfcm9vdCA9IG9zLnBhdGguc3BsaXQoY29uZmlnX3BhdGgpWzBdCi0g
ICAgcGFyc2VyID0gQ29uZmlnUGFyc2VyLlNhZmVDb25maWdQYXJzZXIoKQorICAgIHBhcnNlciA9
IFNhZmVDb25maWdQYXJzZXIoKQogICAgIHN1Y2Nlc3MgPSBwYXJzZXIucmVhZChjb25maWdfcGF0
aCkKICAgICBhc3NlcnQgY29uZmlnX3BhdGggaW4gc3VjY2Vzcywgc3VjY2VzcwogCkBAIC0zMCw3
ICszMCw3IEBAIGRlZiByZWFkKGNvbmZpZ19wYXRoKToKICAgICBmb3Igc2VjdGlvbiBpbiBwYXJz
ZXIuc2VjdGlvbnMoKToKICAgICAgICAgcnZbc2VjdGlvbl0gPSBDb25maWdEaWN0KGNvbmZpZ19y
b290KQogICAgICAgICBmb3Iga2V5IGluIHBhcnNlci5vcHRpb25zKHNlY3Rpb24pOgotICAgICAg
ICAgICAgcnZbc2VjdGlvbl1ba2V5XSA9IHBhcnNlci5nZXQoc2VjdGlvbiwga2V5LCBGYWxzZSwg
c3VibnMpCisgICAgICAgICAgICBydltzZWN0aW9uXVtrZXldID0gcGFyc2VyLmdldChzZWN0aW9u
LCBrZXksIHJhdz1GYWxzZSwgdmFycz1zdWJucykKIAogICAgIHJldHVybiBydgogCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dw
dHJ1bm5lci93cHRydW5uZXIvZW52aXJvbm1lbnQucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvZW52aXJvbm1l
bnQucHkKaW5kZXggYmE4OWZiOWZlNzYuLmU3OWFlMzc1MDY0IDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRy
dW5uZXIvZW52aXJvbm1lbnQucHkKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2Vudmlyb25tZW50LnB5CkBA
IC04LDEyICs4LDE2IEBAIGltcG9ydCB0aW1lCiAKIGZyb20gbW96bG9nIGltcG9ydCBnZXRfZGVm
YXVsdF9sb2dnZXIsIGhhbmRsZXJzLCBwcm94eQogCi1mcm9tIHdwdGxvZ2dpbmcgaW1wb3J0IExv
Z0xldmVsUmV3cml0ZXIKLWZyb20gd3B0c2VydmUuaGFuZGxlcnMgaW1wb3J0IFN0cmluZ0hhbmRs
ZXIKK2Zyb20gLndwdGxvZ2dpbmcgaW1wb3J0IExvZ0xldmVsUmV3cml0ZXIKIAogaGVyZSA9IG9z
LnBhdGguc3BsaXQoX19maWxlX18pWzBdCiByZXBvX3Jvb3QgPSBvcy5wYXRoLmFic3BhdGgob3Mu
cGF0aC5qb2luKGhlcmUsIG9zLnBhcmRpciwgb3MucGFyZGlyLCBvcy5wYXJkaXIpKQogCitzeXMu
cGF0aC5pbnNlcnQoMCwgcmVwb19yb290KQorZnJvbSB0b29scyBpbXBvcnQgbG9jYWxwYXRocyAg
IyBub3FhOiBGNDAxCisKK2Zyb20gd3B0c2VydmUuaGFuZGxlcnMgaW1wb3J0IFN0cmluZ0hhbmRs
ZXIKKwogc2VydmUgPSBOb25lCiAKIApAQCAtNDYsMTMgKzUwLDE0IEBAIGNsYXNzIFRlc3RFbnZp
cm9ubWVudEVycm9yKEV4Y2VwdGlvbik6CiAKIAogY2xhc3MgVGVzdEVudmlyb25tZW50KG9iamVj
dCk6Ci0gICAgZGVmIF9faW5pdF9fKHNlbGYsIHRlc3RfcGF0aHMsIHBhdXNlX2FmdGVyX3Rlc3Qs
IGRlYnVnX2luZm8sIG9wdGlvbnMsIHNzbF9jb25maWcsIGVudl9leHRyYXMpOgotICAgICAgICAi
IiJDb250ZXh0IG1hbmFnZXIgdGhhdCBvd25zIHRoZSB0ZXN0IGVudmlyb25tZW50IGkuZS4gdGhl
IGh0dHAgYW5kCi0gICAgICAgIHdlYnNvY2tldHMgc2VydmVycyIiIgorICAgICIiIkNvbnRleHQg
bWFuYWdlciB0aGF0IG93bnMgdGhlIHRlc3QgZW52aXJvbm1lbnQgaS5lLiB0aGUgaHR0cCBhbmQK
KyAgICB3ZWJzb2NrZXRzIHNlcnZlcnMiIiIKKyAgICBkZWYgX19pbml0X18oc2VsZiwgdGVzdF9w
YXRocywgdGVzdGhhcm5lc3NfdGltZW91dF9tdWx0aXBsZXIsIHBhdXNlX2FmdGVyX3Rlc3QsIGRl
YnVnX2luZm8sIG9wdGlvbnMsIHNzbF9jb25maWcsIGVudl9leHRyYXMpOgogICAgICAgICBzZWxm
LnRlc3RfcGF0aHMgPSB0ZXN0X3BhdGhzCiAgICAgICAgIHNlbGYuc2VydmVyID0gTm9uZQogICAg
ICAgICBzZWxmLmNvbmZpZ19jdHggPSBOb25lCiAgICAgICAgIHNlbGYuY29uZmlnID0gTm9uZQor
ICAgICAgICBzZWxmLnRlc3RoYXJuZXNzX3RpbWVvdXRfbXVsdGlwbGVyID0gdGVzdGhhcm5lc3Nf
dGltZW91dF9tdWx0aXBsZXIKICAgICAgICAgc2VsZi5wYXVzZV9hZnRlcl90ZXN0ID0gcGF1c2Vf
YWZ0ZXJfdGVzdAogICAgICAgICBzZWxmLnRlc3Rfc2VydmVyX3BvcnQgPSBvcHRpb25zLnBvcCgi
dGVzdF9zZXJ2ZXJfcG9ydCIsIFRydWUpCiAgICAgICAgIHNlbGYuZGVidWdfaW5mbyA9IGRlYnVn
X2luZm8KQEAgLTE2OSw3ICsxNzQsMTAgQEAgY2xhc3MgVGVzdEVudmlyb25tZW50KG9iamVjdCk6
CiAgICAgICAgIGZvciBwYXRoLCBmb3JtYXRfYXJncywgY29udGVudF90eXBlLCByb3V0ZSBpbiBb
CiAgICAgICAgICAgICAgICAgKCJ0ZXN0aGFybmVzc19ydW5uZXIuaHRtbCIsIHt9LCAidGV4dC9o
dG1sIiwgIi90ZXN0aGFybmVzc19ydW5uZXIuaHRtbCIpLAogICAgICAgICAgICAgICAgIChzZWxm
Lm9wdGlvbnMuZ2V0KCJ0ZXN0aGFybmVzc3JlcG9ydCIsICJ0ZXN0aGFybmVzc3JlcG9ydC5qcyIp
LAotICAgICAgICAgICAgICAgICB7Im91dHB1dCI6IHNlbGYucGF1c2VfYWZ0ZXJfdGVzdH0sICJ0
ZXh0L2phdmFzY3JpcHQ7Y2hhcnNldD11dGY4IiwKKyAgICAgICAgICAgICAgICAgeyJvdXRwdXQi
OiBzZWxmLnBhdXNlX2FmdGVyX3Rlc3QsCisgICAgICAgICAgICAgICAgICAidGltZW91dF9tdWx0
aXBsaWVyIjogc2VsZi50ZXN0aGFybmVzc190aW1lb3V0X211bHRpcGxlciwKKyAgICAgICAgICAg
ICAgICAgICJleHBsaWNpdF90aW1lb3V0IjogInRydWUiIGlmIHNlbGYuZGVidWdfaW5mbyBpcyBu
b3QgTm9uZSBlbHNlICJmYWxzZSJ9LAorICAgICAgICAgICAgICAgICAidGV4dC9qYXZhc2NyaXB0
O2NoYXJzZXQ9dXRmOCIsCiAgICAgICAgICAgICAgICAgICIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNz
cmVwb3J0LmpzIildOgogICAgICAgICAgICAgcGF0aCA9IG9zLnBhdGgubm9ybXBhdGgob3MucGF0
aC5qb2luKGhlcmUsIHBhdGgpKQogICAgICAgICAgICAgIyBOb3RlIHRoYXQgLmhlYWRlcnMuIGZp
bGVzIGRvbid0IGFwcGx5IHRvIHN0YXRpYyByb3V0ZXMsIHNvIHdlIG5lZWQgdG8KQEAgLTE5OCwx
MSArMjA2LDE0IEBAIGNsYXNzIFRlc3RFbnZpcm9ubWVudChvYmplY3QpOgogCiAgICAgZGVmIGVu
c3VyZV9zdGFydGVkKHNlbGYpOgogICAgICAgICAjIFBhdXNlIGZvciBhIHdoaWxlIHRvIGVuc3Vy
ZSB0aGF0IHRoZSBzZXJ2ZXIgaGFzIGEgY2hhbmNlIHRvIHN0YXJ0Ci0gICAgICAgIGZvciBfIGlu
IHhyYW5nZSg2MCk6CisgICAgICAgIHRvdGFsX3NsZWVwX3NlY3MgPSAzMAorICAgICAgICBlYWNo
X3NsZWVwX3NlY3MgPSAwLjUKKyAgICAgICAgZW5kX3RpbWUgPSB0aW1lLnRpbWUoKSArIHRvdGFs
X3NsZWVwX3NlY3MKKyAgICAgICAgd2hpbGUgdGltZS50aW1lKCkgPCBlbmRfdGltZToKICAgICAg
ICAgICAgIGZhaWxlZCA9IHNlbGYudGVzdF9zZXJ2ZXJzKCkKICAgICAgICAgICAgIGlmIG5vdCBm
YWlsZWQ6CiAgICAgICAgICAgICAgICAgcmV0dXJuCi0gICAgICAgICAgICB0aW1lLnNsZWVwKDAu
NSkKKyAgICAgICAgICAgIHRpbWUuc2xlZXAoZWFjaF9zbGVlcF9zZWNzKQogICAgICAgICByYWlz
ZSBFbnZpcm9ubWVudEVycm9yKCJTZXJ2ZXJzIGZhaWxlZCB0byBzdGFydDogJXMiICUKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAiLCAiLmpvaW4oIiVzOiVzIiAlIGl0ZW0gZm9yIGl0
ZW0gaW4gZmFpbGVkKSkKIApAQCAtMjEzLDYgKzIyNCw3IEBAIGNsYXNzIFRlc3RFbnZpcm9ubWVu
dChvYmplY3QpOgogICAgICAgICAgICAgZm9yIHBvcnQsIHNlcnZlciBpbiBzZXJ2ZXJzOgogICAg
ICAgICAgICAgICAgIGlmIHNlbGYudGVzdF9zZXJ2ZXJfcG9ydDoKICAgICAgICAgICAgICAgICAg
ICAgcyA9IHNvY2tldC5zb2NrZXQoKQorICAgICAgICAgICAgICAgICAgICBzLnNldHRpbWVvdXQo
MC4xKQogICAgICAgICAgICAgICAgICAgICB0cnk6CiAgICAgICAgICAgICAgICAgICAgICAgICBz
LmNvbm5lY3QoKGhvc3QsIHBvcnQpKQogICAgICAgICAgICAgICAgICAgICBleGNlcHQgc29ja2V0
LmVycm9yOgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2V4ZWN1dG9ycy9fX2luaXRfXy5weSBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVu
bmVyL3dwdHJ1bm5lci9leGVjdXRvcnMvX19pbml0X18ucHkKaW5kZXggYTU4MDczMGRiODIuLmJm
ODI5ZDkzZTk2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvZXhlY3V0b3JzL19faW5pdF9fLnB5
CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
d3B0cnVubmVyL3dwdHJ1bm5lci9leGVjdXRvcnMvX19pbml0X18ucHkKQEAgLTEsNSArMSw1IEBA
CiAjIGZsYWtlODogbm9xYSAobm90IGlkZWFsLCBidXQgbmljZXIgdGhhbiBhZGRpbmcgbm9xYTog
RjQwMSB0byBldmVyeSBsaW5lISkKLWZyb20gYmFzZSBpbXBvcnQgKGV4ZWN1dG9yX2t3YXJncywK
LSAgICAgICAgICAgICAgICAgIHRlc3RoYXJuZXNzX3Jlc3VsdF9jb252ZXJ0ZXIsCi0gICAgICAg
ICAgICAgICAgICByZWZ0ZXN0X3Jlc3VsdF9jb252ZXJ0ZXIsCi0gICAgICAgICAgICAgICAgICBU
ZXN0RXhlY3V0b3IpCitmcm9tIC5iYXNlIGltcG9ydCAoZXhlY3V0b3Jfa3dhcmdzLAorICAgICAg
ICAgICAgICAgICAgIHRlc3RoYXJuZXNzX3Jlc3VsdF9jb252ZXJ0ZXIsCisgICAgICAgICAgICAg
ICAgICAgcmVmdGVzdF9yZXN1bHRfY29udmVydGVyLAorICAgICAgICAgICAgICAgICAgIFRlc3RF
eGVjdXRvcikKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9leGVjdXRvcnMvYmFzZS5weSBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVy
L3dwdHJ1bm5lci9leGVjdXRvcnMvYmFzZS5weQppbmRleCAxZGM5NjJjZmIwOC4uNzEzZDg1MDAx
MTMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9leGVjdXRvcnMvYmFzZS5weQorKysgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93
cHRydW5uZXIvZXhlY3V0b3JzL2Jhc2UucHkKQEAgLTEsMjEgKzEsMjEgQEAKK2ltcG9ydCBiYXNl
NjQKIGltcG9ydCBoYXNobGliCi1pbXBvcnQgaHR0cGxpYgorZnJvbSBzaXgubW92ZXMuaHR0cF9j
bGllbnQgaW1wb3J0IEhUVFBDb25uZWN0aW9uCitpbXBvcnQgaW8KK2ltcG9ydCBqc29uCiBpbXBv
cnQgb3MKIGltcG9ydCB0aHJlYWRpbmcKIGltcG9ydCB0cmFjZWJhY2sKIGltcG9ydCBzb2NrZXQK
LWltcG9ydCB1cmxwYXJzZQoraW1wb3J0IHN5cworZnJvbSBzaXgubW92ZXMudXJsbGliLnBhcnNl
IGltcG9ydCB1cmxqb2luLCB1cmxzcGxpdCwgdXJsdW5zcGxpdAogZnJvbSBhYmMgaW1wb3J0IEFC
Q01ldGEsIGFic3RyYWN0bWV0aG9kCiAKIGZyb20gLi50ZXN0cnVubmVyIGltcG9ydCBTdG9wCi1m
cm9tIHByb3RvY29sIGltcG9ydCBQcm90b2NvbCwgQmFzZVByb3RvY29sUGFydAorZnJvbSAucHJv
dG9jb2wgaW1wb3J0IFByb3RvY29sLCBCYXNlUHJvdG9jb2xQYXJ0CiAKIGhlcmUgPSBvcy5wYXRo
LnNwbGl0KF9fZmlsZV9fKVswXQogCi0jIEV4dHJhIHRpbWVvdXQgdG8gdXNlIGFmdGVyIGludGVy
bmFsIHRlc3QgdGltZW91dCBhdCB3aGljaCB0aGUgaGFybmVzcwotIyBzaG91bGQgZm9yY2UgYSB0
aW1lb3V0Ci1leHRyYV90aW1lb3V0ID0gNSAgIyBzZWNvbmRzCi0KIAogZGVmIGV4ZWN1dG9yX2t3
YXJncyh0ZXN0X3R5cGUsIHNlcnZlcl9jb25maWcsIGNhY2hlX21hbmFnZXIsIHJ1bl9pbmZvX2Rh
dGEsCiAgICAgICAgICAgICAgICAgICAgICoqa3dhcmdzKToKQEAgLTQ2LDIxICs0NiwyMyBAQCBk
ZWYgc3RyaXBfc2VydmVyKHVybCk6CiAKICAgICBlLmcuIGh0dHA6Ly9leGFtcGxlLm9yZzo4MDAw
L3Rlc3RzP2lkPTEjMiBiZWNvbWVzIC90ZXN0cz9pZD0xIzIiIiIKIAotICAgIHVybF9wYXJ0cyA9
IGxpc3QodXJscGFyc2UudXJsc3BsaXQodXJsKSkKKyAgICB1cmxfcGFydHMgPSBsaXN0KHVybHNw
bGl0KHVybCkpCiAgICAgdXJsX3BhcnRzWzBdID0gIiIKICAgICB1cmxfcGFydHNbMV0gPSAiIgot
ICAgIHJldHVybiB1cmxwYXJzZS51cmx1bnNwbGl0KHVybF9wYXJ0cykKKyAgICByZXR1cm4gdXJs
dW5zcGxpdCh1cmxfcGFydHMpCiAKIAogY2xhc3MgVGVzdGhhcm5lc3NSZXN1bHRDb252ZXJ0ZXIo
b2JqZWN0KToKICAgICBoYXJuZXNzX2NvZGVzID0gezA6ICJPSyIsCiAgICAgICAgICAgICAgICAg
ICAgICAxOiAiRVJST1IiLAotICAgICAgICAgICAgICAgICAgICAgMjogIlRJTUVPVVQifQorICAg
ICAgICAgICAgICAgICAgICAgMjogIlRJTUVPVVQiLAorICAgICAgICAgICAgICAgICAgICAgMzog
IlBSRUNPTkRJVElPTl9GQUlMRUQifQogCiAgICAgdGVzdF9jb2RlcyA9IHswOiAiUEFTUyIsCiAg
ICAgICAgICAgICAgICAgICAxOiAiRkFJTCIsCiAgICAgICAgICAgICAgICAgICAyOiAiVElNRU9V
VCIsCi0gICAgICAgICAgICAgICAgICAzOiAiTk9UUlVOIn0KKyAgICAgICAgICAgICAgICAgIDM6
ICJOT1RSVU4iLAorICAgICAgICAgICAgICAgICAgNDogIlBSRUNPTkRJVElPTl9GQUlMRUQifQog
CiAgICAgZGVmIF9fY2FsbF9fKHNlbGYsIHRlc3QsIHJlc3VsdCwgZXh0cmE9Tm9uZSk6CiAgICAg
ICAgICIiIkNvbnZlcnQgYSBKU09OIHJlc3VsdCBpbnRvIGEgKFRlc3RSZXN1bHQsIFtTdWJ0ZXN0
UmVzdWx0XSkgdHVwbGUiIiIKQEAgLTc2LDExICs3OCwzNCBAQCBjbGFzcyBUZXN0aGFybmVzc1Jl
c3VsdENvbnZlcnRlcihvYmplY3QpOgogdGVzdGhhcm5lc3NfcmVzdWx0X2NvbnZlcnRlciA9IFRl
c3RoYXJuZXNzUmVzdWx0Q29udmVydGVyKCkKIAogCitkZWYgaGFzaF9zY3JlZW5zaG90KGRhdGEp
OgorICAgICIiIkNvbXB1dGVzIHRoZSBzaGExIGNoZWNrc3VtIG9mIGEgYmFzZTY0LWVuY29kZWQg
c2NyZWVuc2hvdC4iIiIKKyAgICByZXR1cm4gaGFzaGxpYi5zaGExKGJhc2U2NC5iNjRkZWNvZGUo
ZGF0YSkpLmhleGRpZ2VzdCgpCisKKworZGVmIF9lbnN1cmVfaGFzaF9pbl9yZWZ0ZXN0X3NjcmVl
bnNob3RzKGV4dHJhKToKKyAgICAiIiJNYWtlIHN1cmUgcmVmdGVzdF9zY3JlZW5zaG90cyBoYXZl
IGhhc2hlcy4KKworICAgIE1hcmlvbmV0dGUgaW50ZXJuYWwgcmVmdGVzdCBydW5uZXIgZG9lcyBu
b3QgcHJvZHVjZSBoYXNoZXMuCisgICAgIiIiCisgICAgbG9nX2RhdGEgPSBleHRyYS5nZXQoInJl
ZnRlc3Rfc2NyZWVuc2hvdHMiKQorICAgIGlmIG5vdCBsb2dfZGF0YToKKyAgICAgICAgcmV0dXJu
CisgICAgZm9yIGl0ZW0gaW4gbG9nX2RhdGE6CisgICAgICAgIGlmIHR5cGUoaXRlbSkgIT0gZGlj
dDoKKyAgICAgICAgICAgICMgU2tpcCByZWxhdGlvbiBzdHJpbmdzLgorICAgICAgICAgICAgY29u
dGludWUKKyAgICAgICAgaWYgImhhc2giIG5vdCBpbiBpdGVtOgorICAgICAgICAgICAgaXRlbVsi
aGFzaCJdID0gaGFzaF9zY3JlZW5zaG90KGl0ZW1bInNjcmVlbnNob3QiXSkKKworCiBkZWYgcmVm
dGVzdF9yZXN1bHRfY29udmVydGVyKHNlbGYsIHRlc3QsIHJlc3VsdCk6CisgICAgZXh0cmEgPSBy
ZXN1bHQuZ2V0KCJleHRyYSIsIHt9KQorICAgIF9lbnN1cmVfaGFzaF9pbl9yZWZ0ZXN0X3NjcmVl
bnNob3RzKGV4dHJhKQogICAgIHJldHVybiAodGVzdC5yZXN1bHRfY2xzKAogICAgICAgICByZXN1
bHRbInN0YXR1cyJdLAogICAgICAgICByZXN1bHRbIm1lc3NhZ2UiXSwKLSAgICAgICAgZXh0cmE9
cmVzdWx0LmdldCgiZXh0cmEiLCB7fSksCisgICAgICAgIGV4dHJhPWV4dHJhLAogICAgICAgICBz
dGFjaz1yZXN1bHQuZ2V0KCJzdGFjayIpKSwgW10pCiAKIApAQCAtMTAyLDI3ICsxMjcsODYgQEAg
Y2xhc3MgRXhlY3V0b3JFeGNlcHRpb24oRXhjZXB0aW9uKToKICAgICAgICAgc2VsZi5tZXNzYWdl
ID0gbWVzc2FnZQogCiAKK2NsYXNzIFRpbWVkUnVubmVyKG9iamVjdCk6CisgICAgZGVmIF9faW5p
dF9fKHNlbGYsIGxvZ2dlciwgZnVuYywgcHJvdG9jb2wsIHVybCwgdGltZW91dCwgZXh0cmFfdGlt
ZW91dCk6CisgICAgICAgIHNlbGYuZnVuYyA9IGZ1bmMKKyAgICAgICAgc2VsZi5yZXN1bHQgPSBO
b25lCisgICAgICAgIHNlbGYucHJvdG9jb2wgPSBwcm90b2NvbAorICAgICAgICBzZWxmLnVybCA9
IHVybAorICAgICAgICBzZWxmLnRpbWVvdXQgPSB0aW1lb3V0CisgICAgICAgIHNlbGYuZXh0cmFf
dGltZW91dCA9IGV4dHJhX3RpbWVvdXQKKyAgICAgICAgc2VsZi5yZXN1bHRfZmxhZyA9IHRocmVh
ZGluZy5FdmVudCgpCisKKyAgICBkZWYgcnVuKHNlbGYpOgorICAgICAgICBpZiBzZWxmLnNldF90
aW1lb3V0KCkgaXMgU3RvcDoKKyAgICAgICAgICAgIHJldHVybiBTdG9wCisKKyAgICAgICAgaWYg
c2VsZi5iZWZvcmVfcnVuKCkgaXMgU3RvcDoKKyAgICAgICAgICAgIHJldHVybiBTdG9wCisKKyAg
ICAgICAgZXhlY3V0b3IgPSB0aHJlYWRpbmcuVGhyZWFkKHRhcmdldD1zZWxmLnJ1bl9mdW5jKQor
ICAgICAgICBleGVjdXRvci5zdGFydCgpCisKKyAgICAgICAgIyBBZGQgdHdpY2UgdGhlIHRpbWVv
dXQgbXVsdGlwbGllciBzaW5jZSB0aGUgY2FsbGVkIGZ1bmN0aW9uIGlzIGV4cGVjdGVkIHRvCisg
ICAgICAgICMgd2FpdCBhdCBsZWFzdCBzZWxmLnRpbWVvdXQgKyBzZWxmLmV4dHJhX3RpbWVvdXQg
YW5kIHRoaXMgZ2l2ZXMgc29tZSBsZWV3YXkKKyAgICAgICAgZmluaXNoZWQgPSBzZWxmLnJlc3Vs
dF9mbGFnLndhaXQoc2VsZi50aW1lb3V0ICsgMiAqIHNlbGYuZXh0cmFfdGltZW91dCkKKyAgICAg
ICAgaWYgc2VsZi5yZXN1bHQgaXMgTm9uZToKKyAgICAgICAgICAgIGlmIGZpbmlzaGVkOgorICAg
ICAgICAgICAgICAgICMgZmxhZyBpcyBUcnVlIHVubGVzcyB3ZSB0aW1lb3V0OyB0aGlzICpzaG91
bGRuJ3QqIGhhcHBlbiwgYnV0CisgICAgICAgICAgICAgICAgIyBpdCBjYW4gaWYgc2VsZi5ydW5f
ZnVuYyBmYWlscyB0byBzZXQgc2VsZi5yZXN1bHQgZHVlIHRvIHJhaXNpbmcKKyAgICAgICAgICAg
ICAgICBzZWxmLnJlc3VsdCA9IEZhbHNlLCAoIklOVEVSTkFMLUVSUk9SIiwgIiVzLnJ1bl9mdW5j
IGRpZG4ndCBzZXQgYSByZXN1bHQiICUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgc2VsZi5fX2NsYXNzX18uX19uYW1lX18pCisgICAgICAgICAgICBlbHNlOgorICAgICAg
ICAgICAgICAgIG1lc3NhZ2UgPSAiRXhlY3V0b3IgaGl0IGV4dGVybmFsIHRpbWVvdXQgKHRoaXMg
bWF5IGluZGljYXRlIGEgaGFuZylcbiIKKyAgICAgICAgICAgICAgICAjIGdldCBhIHRyYWNlYmFj
ayBmb3IgdGhlIGN1cnJlbnQgc3RhY2sgb2YgdGhlIGV4ZWN1dG9yIHRocmVhZAorICAgICAgICAg
ICAgICAgIG1lc3NhZ2UgKz0gIiIuam9pbih0cmFjZWJhY2suZm9ybWF0X3N0YWNrKHN5cy5fY3Vy
cmVudF9mcmFtZXMoKVtleGVjdXRvci5pZGVudF0pKQorICAgICAgICAgICAgICAgIHNlbGYucmVz
dWx0ID0gRmFsc2UsICgiRVhURVJOQUwtVElNRU9VVCIsIG1lc3NhZ2UpCisgICAgICAgIGVsaWYg
c2VsZi5yZXN1bHRbMV0gaXMgTm9uZToKKyAgICAgICAgICAgICMgV2UgZGlkbid0IGdldCBhbnkg
ZGF0YSBiYWNrIGZyb20gdGhlIHRlc3QsIHNvIGNoZWNrIGlmIHRoZQorICAgICAgICAgICAgIyBi
cm93c2VyIGlzIHN0aWxsIHJlc3BvbnNpdmUKKyAgICAgICAgICAgIGlmIHNlbGYucHJvdG9jb2wu
aXNfYWxpdmU6CisgICAgICAgICAgICAgICAgc2VsZi5yZXN1bHQgPSBGYWxzZSwgKCJJTlRFUk5B
TC1FUlJPUiIsIE5vbmUpCisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgIHNlbGYu
bG9nZ2VyLmluZm8oIkJyb3dzZXIgbm90IHJlc3BvbmRpbmcsIHNldHRpbmcgc3RhdHVzIHRvIENS
QVNIIikKKyAgICAgICAgICAgICAgICBzZWxmLnJlc3VsdCA9IEZhbHNlLCAoIkNSQVNIIiwgTm9u
ZSkKKworICAgICAgICByZXR1cm4gc2VsZi5yZXN1bHQKKworICAgIGRlZiBzZXRfdGltZW91dChz
ZWxmKToKKyAgICAgICAgcmFpc2UgTm90SW1wbGVtZW50ZWRFcnJvcgorCisgICAgZGVmIGJlZm9y
ZV9ydW4oc2VsZik6CisgICAgICAgIHBhc3MKKworICAgIGRlZiBydW5fZnVuYyhzZWxmKToKKyAg
ICAgICAgcmFpc2UgTm90SW1wbGVtZW50ZWRFcnJvcgorCisKIGNsYXNzIFRlc3RFeGVjdXRvcihv
YmplY3QpOgorICAgICIiIkFic3RyYWN0IEJhc2UgY2xhc3MgZm9yIG9iamVjdCB0aGF0IGFjdHVh
bGx5IGV4ZWN1dGVzIHRoZSB0ZXN0cyBpbiBhCisgICAgc3BlY2lmaWMgYnJvd3Nlci4gVHlwaWNh
bGx5IHRoZXJlIHdpbGwgYmUgYSBkaWZmZXJlbnQgVGVzdEV4ZWN1dG9yCisgICAgc3ViY2xhc3Mg
Zm9yIGVhY2ggdGVzdCB0eXBlIGFuZCBtZXRob2Qgb2YgZXhlY3V0aW5nIHRlc3RzLgorCisgICAg
OnBhcmFtIGJyb3dzZXI6IEV4ZWN1dG9yQnJvd3NlciBpbnN0YW5jZSBwcm92aWRpbmcgcHJvcGVy
dGllcyBvZiB0aGUKKyAgICAgICAgICAgICAgICAgICAgYnJvd3NlciB0aGF0IHdpbGwgYmUgdGVz
dGVkLgorICAgIDpwYXJhbSBzZXJ2ZXJfY29uZmlnOiBEaWN0aW9uYXJ5IG9mIHdwdHNlcnZlIHNl
cnZlciBjb25maWd1cmF0aW9uIG9mIHRoZQorICAgICAgICAgICAgICAgICAgICAgICAgICBmb3Jt
IHN0b3JlZCBpbiBUZXN0RW52aXJvbm1lbnQuY29uZmlnCisgICAgOnBhcmFtIHRpbWVvdXRfbXVs
dGlwbGllcjogTXVsdGlwbGllciByZWxhdGl2ZSB0byBiYXNlIHRpbWVvdXQgdG8gdXNlCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgd2hlbiBzZXR0aW5nIHRlc3QgdGltZW91dC4KKyAg
ICAiIiIKICAgICBfX21ldGFjbGFzc19fID0gQUJDTWV0YQogCiAgICAgdGVzdF90eXBlID0gTm9u
ZQogICAgIGNvbnZlcnRfcmVzdWx0ID0gTm9uZQogICAgIHN1cHBvcnRzX3Rlc3Rkcml2ZXIgPSBG
YWxzZQogICAgIHN1cHBvcnRzX2pzc2hlbGwgPSBGYWxzZQorICAgICMgRXh0cmEgdGltZW91dCB0
byB1c2UgYWZ0ZXIgaW50ZXJuYWwgdGVzdCB0aW1lb3V0IGF0IHdoaWNoIHRoZSBoYXJuZXNzCisg
ICAgIyBzaG91bGQgZm9yY2UgYSB0aW1lb3V0CisgICAgZXh0cmFfdGltZW91dCA9IDUgICMgc2Vj
b25kcworCiAKICAgICBkZWYgX19pbml0X18oc2VsZiwgYnJvd3Nlciwgc2VydmVyX2NvbmZpZywg
dGltZW91dF9tdWx0aXBsaWVyPTEsCiAgICAgICAgICAgICAgICAgIGRlYnVnX2luZm89Tm9uZSwg
Kiprd2FyZ3MpOgotICAgICAgICAiIiJBYnN0cmFjdCBCYXNlIGNsYXNzIGZvciBvYmplY3QgdGhh
dCBhY3R1YWxseSBleGVjdXRlcyB0aGUgdGVzdHMgaW4gYQotICAgICAgICBzcGVjaWZpYyBicm93
c2VyLiBUeXBpY2FsbHkgdGhlcmUgd2lsbCBiZSBhIGRpZmZlcmVudCBUZXN0RXhlY3V0b3IKLSAg
ICAgICAgc3ViY2xhc3MgZm9yIGVhY2ggdGVzdCB0eXBlIGFuZCBtZXRob2Qgb2YgZXhlY3V0aW5n
IHRlc3RzLgotCi0gICAgICAgIDpwYXJhbSBicm93c2VyOiBFeGVjdXRvckJyb3dzZXIgaW5zdGFu
Y2UgcHJvdmlkaW5nIHByb3BlcnRpZXMgb2YgdGhlCi0gICAgICAgICAgICAgICAgICAgICAgICBi
cm93c2VyIHRoYXQgd2lsbCBiZSB0ZXN0ZWQuCi0gICAgICAgIDpwYXJhbSBzZXJ2ZXJfY29uZmln
OiBEaWN0aW9uYXJ5IG9mIHdwdHNlcnZlIHNlcnZlciBjb25maWd1cmF0aW9uIG9mIHRoZQotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9ybSBzdG9yZWQgaW4gVGVzdEVudmlyb25tZW50
LmNvbmZpZwotICAgICAgICA6cGFyYW0gdGltZW91dF9tdWx0aXBsaWVyOiBNdWx0aXBsaWVyIHJl
bGF0aXZlIHRvIGJhc2UgdGltZW91dCB0byB1c2UKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgd2hlbiBzZXR0aW5nIHRlc3QgdGltZW91dC4KLSAgICAgICAgIiIiCiAgICAgICAg
IHNlbGYucnVubmVyID0gTm9uZQogICAgICAgICBzZWxmLmJyb3dzZXIgPSBicm93c2VyCiAgICAg
ICAgIHNlbGYuc2VydmVyX2NvbmZpZyA9IHNlcnZlcl9jb25maWcKQEAgLTE1Miw2ICsyMzYsMTEg
QEAgY2xhc3MgVGVzdEV4ZWN1dG9yKG9iamVjdCk6CiAgICAgICAgIGlmIHNlbGYucHJvdG9jb2wg
aXMgbm90IE5vbmU6CiAgICAgICAgICAgICBzZWxmLnByb3RvY29sLnRlYXJkb3duKCkKIAorICAg
IGRlZiByZXNldChzZWxmKToKKyAgICAgICAgIiIiUmUtaW5pdGlhbGl6ZSBpbnRlcm5hbCBzdGF0
ZSB0byBmYWNpbGl0YXRlIHJlcGVhdGVkIHRlc3QgZXhlY3V0aW9uCisgICAgICAgIGFzIGltcGxl
bWVudGVkIGJ5IHRoZSBgLS1yZXJ1bmAgY29tbWFuZC1saW5lIGFyZ3VtZW50LiIiIgorICAgICAg
ICBwYXNzCisKICAgICBkZWYgcnVuX3Rlc3Qoc2VsZiwgdGVzdCk6CiAgICAgICAgICIiIlJ1biBh
IHBhcnRpY3VsYXIgdGVzdC4KIApAQCAtMTgxLDcgKzI3MCw3IEBAIGNsYXNzIFRlc3RFeGVjdXRv
cihvYmplY3QpOgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuc2VydmVyX2Nv
bmZpZ1sicG9ydHMiXVtwcm90b2NvbF1bMF0pCiAKICAgICBkZWYgdGVzdF91cmwoc2VsZiwgdGVz
dCk6Ci0gICAgICAgIHJldHVybiB1cmxwYXJzZS51cmxqb2luKHNlbGYuc2VydmVyX3VybCh0ZXN0
LmVudmlyb25tZW50WyJwcm90b2NvbCJdKSwgdGVzdC51cmwpCisgICAgICAgIHJldHVybiB1cmxq
b2luKHNlbGYuc2VydmVyX3VybCh0ZXN0LmVudmlyb25tZW50WyJwcm90b2NvbCJdKSwgdGVzdC51
cmwpCiAKICAgICBAYWJzdHJhY3RtZXRob2QKICAgICBkZWYgZG9fdGVzdChzZWxmLCB0ZXN0KToK
QEAgLTI1Niw5ICszNDUsOCBAQCBjbGFzcyBSZWZUZXN0SW1wbGVtZW50YXRpb24ob2JqZWN0KToK
ICAgICAgICAgICAgICAgICByZXR1cm4gRmFsc2UsIGRhdGEKIAogICAgICAgICAgICAgc2NyZWVu
c2hvdCA9IGRhdGEKLSAgICAgICAgICAgIGhhc2hfdmFsdWUgPSBoYXNobGliLnNoYTEoc2NyZWVu
c2hvdCkuaGV4ZGlnZXN0KCkKLQotICAgICAgICAgICAgc2VsZi5zY3JlZW5zaG90X2NhY2hlW2tl
eV0gPSAoaGFzaF92YWx1ZSwgTm9uZSkKKyAgICAgICAgICAgIGhhc2hfdmFsdWUgPSBoYXNoX3Nj
cmVlbnNob3QoZGF0YSkKKyAgICAgICAgICAgIHNlbGYuc2NyZWVuc2hvdF9jYWNoZVtrZXldID0g
KGhhc2hfdmFsdWUsIHNjcmVlbnNob3QpCiAKICAgICAgICAgICAgIHJ2ID0gKGhhc2hfdmFsdWUs
IHNjcmVlbnNob3QpCiAgICAgICAgIGVsc2U6CkBAIC0yNjcsMTEgKzM1NSw0NCBAQCBjbGFzcyBS
ZWZUZXN0SW1wbGVtZW50YXRpb24ob2JqZWN0KToKICAgICAgICAgc2VsZi5tZXNzYWdlLmFwcGVu
ZCgiJXMgJXMiICUgKHRlc3QudXJsLCBydlswXSkpCiAgICAgICAgIHJldHVybiBUcnVlLCBydgog
Ci0gICAgZGVmIGlzX3Bhc3Moc2VsZiwgbGhzX2hhc2gsIHJoc19oYXNoLCByZWxhdGlvbik6Cisg
ICAgZGVmIHJlc2V0KHNlbGYpOgorICAgICAgICBzZWxmLnNjcmVlbnNob3RfY2FjaGUuY2xlYXIo
KQorCisgICAgZGVmIGlzX3Bhc3Moc2VsZiwgaGFzaGVzLCBzY3JlZW5zaG90cywgcmVsYXRpb24s
IGZ1enp5KToKICAgICAgICAgYXNzZXJ0IHJlbGF0aW9uIGluICgiPT0iLCAiIT0iKQotICAgICAg
ICBzZWxmLm1lc3NhZ2UuYXBwZW5kKCJUZXN0aW5nICVzICVzICVzIiAlIChsaHNfaGFzaCwgcmVs
YXRpb24sIHJoc19oYXNoKSkKLSAgICAgICAgcmV0dXJuICgocmVsYXRpb24gPT0gIj09IiBhbmQg
bGhzX2hhc2ggPT0gcmhzX2hhc2gpIG9yCi0gICAgICAgICAgICAgICAgKHJlbGF0aW9uID09ICIh
PSIgYW5kIGxoc19oYXNoICE9IHJoc19oYXNoKSkKKyAgICAgICAgaWYgbm90IGZ1enp5IG9yIGZ1
enp5ID09ICgoMCwwKSwgKDAsMCkpOgorICAgICAgICAgICAgZXF1YWwgPSBoYXNoZXNbMF0gPT0g
aGFzaGVzWzFdCisgICAgICAgICAgICAjIHNvbWV0aW1lcyBpbWFnZXMgY2FuIGhhdmUgZGlmZmVy
ZW50IGhhc2hlcywgYnV0IHBpeGVscyBjYW4gYmUgaWRlbnRpY2FsLgorICAgICAgICAgICAgaWYg
bm90IGVxdWFsOgorICAgICAgICAgICAgICAgIHNlbGYubG9nZ2VyLmluZm8oIkltYWdlIGhhc2hl
cyBkaWRuJ3QgbWF0Y2gsIGNoZWNraW5nIHBpeGVsIGRpZmZlcmVuY2VzIikKKyAgICAgICAgICAg
ICAgICBtYXhfcGVyX2NoYW5uZWwsIHBpeGVsc19kaWZmZXJlbnQgPSBzZWxmLmdldF9kaWZmZXJl
bmNlcyhzY3JlZW5zaG90cykKKyAgICAgICAgICAgICAgICBlcXVhbCA9IHBpeGVsc19kaWZmZXJl
bnQgPT0gMCBhbmQgbWF4X3Blcl9jaGFubmVsID09IDAKKyAgICAgICAgZWxzZToKKyAgICAgICAg
ICAgIG1heF9wZXJfY2hhbm5lbCwgcGl4ZWxzX2RpZmZlcmVudCA9IHNlbGYuZ2V0X2RpZmZlcmVu
Y2VzKHNjcmVlbnNob3RzKQorICAgICAgICAgICAgYWxsb3dlZF9wZXJfY2hhbm5lbCwgYWxsb3dl
ZF9kaWZmZXJlbnQgPSBmdXp6eQorICAgICAgICAgICAgc2VsZi5sb2dnZXIuaW5mbygiQWxsb3dl
ZCAlcyBwaXhlbHMgZGlmZmVyZW50LCBtYXhpbXVtIGRpZmZlcmVuY2UgcGVyIGNoYW5uZWwgJXMi
ICUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCItIi5qb2luKHN0cihpdGVtKSBmb3Ig
aXRlbSBpbiBhbGxvd2VkX2RpZmZlcmVudCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAiLSIuam9pbihzdHIoaXRlbSkgZm9yIGl0ZW0gaW4gYWxsb3dlZF9wZXJfY2hhbm5lbCkpKQor
ICAgICAgICAgICAgZXF1YWwgPSAoKHBpeGVsc19kaWZmZXJlbnQgPT0gMCBhbmQgYWxsb3dlZF9k
aWZmZXJlbnRbMF0gPT0gMCkgb3IKKyAgICAgICAgICAgICAgICAgICAgIChtYXhfcGVyX2NoYW5u
ZWwgPT0gMCBhbmQgYWxsb3dlZF9wZXJfY2hhbm5lbFswXSA9PSAwKSBvcgorICAgICAgICAgICAg
ICAgICAgICAgKGFsbG93ZWRfcGVyX2NoYW5uZWxbMF0gPD0gbWF4X3Blcl9jaGFubmVsIDw9IGFs
bG93ZWRfcGVyX2NoYW5uZWxbMV0gYW5kCisgICAgICAgICAgICAgICAgICAgICAgYWxsb3dlZF9k
aWZmZXJlbnRbMF0gPD0gcGl4ZWxzX2RpZmZlcmVudCA8PSBhbGxvd2VkX2RpZmZlcmVudFsxXSkp
CisgICAgICAgIHJldHVybiBlcXVhbCBpZiByZWxhdGlvbiA9PSAiPT0iIGVsc2Ugbm90IGVxdWFs
CisKKyAgICBkZWYgZ2V0X2RpZmZlcmVuY2VzKHNlbGYsIHNjcmVlbnNob3RzKToKKyAgICAgICAg
ZnJvbSBQSUwgaW1wb3J0IEltYWdlLCBJbWFnZUNob3BzLCBJbWFnZVN0YXQKKworICAgICAgICBs
aHMgPSBJbWFnZS5vcGVuKGlvLkJ5dGVzSU8oYmFzZTY0LmI2NGRlY29kZShzY3JlZW5zaG90c1sw
XSkpKS5jb252ZXJ0KCJSR0IiKQorICAgICAgICByaHMgPSBJbWFnZS5vcGVuKGlvLkJ5dGVzSU8o
YmFzZTY0LmI2NGRlY29kZShzY3JlZW5zaG90c1sxXSkpKS5jb252ZXJ0KCJSR0IiKQorICAgICAg
ICBkaWZmID0gSW1hZ2VDaG9wcy5kaWZmZXJlbmNlKGxocywgcmhzKQorICAgICAgICBtaW5pbWFs
X2RpZmYgPSBkaWZmLmNyb3AoZGlmZi5nZXRiYm94KCkpCisgICAgICAgIG1hc2sgPSBtaW5pbWFs
X2RpZmYuY29udmVydCgiTCIsIGRpdGhlcj1Ob25lKQorICAgICAgICBzdGF0ID0gSW1hZ2VTdGF0
LlN0YXQobWluaW1hbF9kaWZmLCBtYXNrKQorICAgICAgICBwZXJfY2hhbm5lbCA9IG1heChpdGVt
WzFdIGZvciBpdGVtIGluIHN0YXQuZXh0cmVtYSkKKyAgICAgICAgY291bnQgPSBzdGF0LmNvdW50
WzBdCisgICAgICAgIHNlbGYubG9nZ2VyLmluZm8oIkZvdW5kICVzIHBpeGVscyBkaWZmZXJlbnQs
IG1heGltdW0gZGlmZmVyZW5jZSBwZXIgY2hhbm5lbCAlcyIgJQorICAgICAgICAgICAgICAgICAg
ICAgICAgIChjb3VudCwgcGVyX2NoYW5uZWwpKQorICAgICAgICByZXR1cm4gcGVyX2NoYW5uZWws
IGNvdW50CiAKICAgICBkZWYgcnVuX3Rlc3Qoc2VsZiwgdGVzdCk6CiAgICAgICAgIHZpZXdwb3J0
X3NpemUgPSB0ZXN0LnZpZXdwb3J0X3NpemUKQEAgLTI4Nyw2ICs0MDgsNyBAQCBjbGFzcyBSZWZU
ZXN0SW1wbGVtZW50YXRpb24ob2JqZWN0KToKICAgICAgICAgICAgIHNjcmVlbnNob3RzID0gW05v
bmUsIE5vbmVdCiAKICAgICAgICAgICAgIG5vZGVzLCByZWxhdGlvbiA9IHN0YWNrLnBvcCgpCisg
ICAgICAgICAgICBmdXp6eSA9IHNlbGYuZ2V0X2Z1enp5KHRlc3QsIG5vZGVzLCByZWxhdGlvbikK
IAogICAgICAgICAgICAgZm9yIGksIG5vZGUgaW4gZW51bWVyYXRlKG5vZGVzKToKICAgICAgICAg
ICAgICAgICBzdWNjZXNzLCBkYXRhID0gc2VsZi5nZXRfaGFzaChub2RlLCB2aWV3cG9ydF9zaXpl
LCBkcGkpCkBAIC0yOTUsNyArNDE3LDggQEAgY2xhc3MgUmVmVGVzdEltcGxlbWVudGF0aW9uKG9i
amVjdCk6CiAKICAgICAgICAgICAgICAgICBoYXNoZXNbaV0sIHNjcmVlbnNob3RzW2ldID0gZGF0
YQogCi0gICAgICAgICAgICBpZiBzZWxmLmlzX3Bhc3MoaGFzaGVzWzBdLCBoYXNoZXNbMV0sIHJl
bGF0aW9uKToKKyAgICAgICAgICAgIGlmIHNlbGYuaXNfcGFzcyhoYXNoZXMsIHNjcmVlbnNob3Rz
LCByZWxhdGlvbiwgZnV6enkpOgorICAgICAgICAgICAgICAgIGZ1enp5ID0gc2VsZi5nZXRfZnV6
enkodGVzdCwgbm9kZXMsIHJlbGF0aW9uKQogICAgICAgICAgICAgICAgIGlmIG5vZGVzWzFdLnJl
ZmVyZW5jZXM6CiAgICAgICAgICAgICAgICAgICAgIHN0YWNrLmV4dGVuZChsaXN0KCgobm9kZXNb
MV0sIGl0ZW1bMF0pLCBpdGVtWzFdKSBmb3IgaXRlbSBpbiByZXZlcnNlZChub2Rlc1sxXS5yZWZl
cmVuY2VzKSkpCiAgICAgICAgICAgICAgICAgZWxzZToKQEAgLTMxMCwxMyArNDMzLDM1IEBAIGNs
YXNzIFJlZlRlc3RJbXBsZW1lbnRhdGlvbihvYmplY3QpOgogICAgICAgICAgICAgICAgIGlmIHN1
Y2Nlc3M6CiAgICAgICAgICAgICAgICAgICAgIHNjcmVlbnNob3RzW2ldID0gc2NyZWVuc2hvdAog
Ci0gICAgICAgIGxvZ19kYXRhID0gW3sidXJsIjogbm9kZXNbMF0udXJsLCAic2NyZWVuc2hvdCI6
IHNjcmVlbnNob3RzWzBdfSwgcmVsYXRpb24sCi0gICAgICAgICAgICAgICAgICAgIHsidXJsIjog
bm9kZXNbMV0udXJsLCAic2NyZWVuc2hvdCI6IHNjcmVlbnNob3RzWzFdfV0KKyAgICAgICAgbG9n
X2RhdGEgPSBbCisgICAgICAgICAgICB7InVybCI6IG5vZGVzWzBdLnVybCwgInNjcmVlbnNob3Qi
OiBzY3JlZW5zaG90c1swXSwgImhhc2giOiBoYXNoZXNbMF19LAorICAgICAgICAgICAgcmVsYXRp
b24sCisgICAgICAgICAgICB7InVybCI6IG5vZGVzWzFdLnVybCwgInNjcmVlbnNob3QiOiBzY3Jl
ZW5zaG90c1sxXSwgImhhc2giOiBoYXNoZXNbMV19LAorICAgICAgICBdCiAKICAgICAgICAgcmV0
dXJuIHsic3RhdHVzIjogIkZBSUwiLAogICAgICAgICAgICAgICAgICJtZXNzYWdlIjogIlxuIi5q
b2luKHNlbGYubWVzc2FnZSksCiAgICAgICAgICAgICAgICAgImV4dHJhIjogeyJyZWZ0ZXN0X3Nj
cmVlbnNob3RzIjogbG9nX2RhdGF9fQogCisgICAgZGVmIGdldF9mdXp6eShzZWxmLCByb290X3Rl
c3QsIHRlc3Rfbm9kZXMsIHJlbGF0aW9uKToKKyAgICAgICAgZnVsbF9rZXkgPSB0dXBsZShbaXRl
bS51cmwgZm9yIGl0ZW0gaW4gdGVzdF9ub2Rlc10gKyBbcmVsYXRpb25dKQorICAgICAgICByZWZf
b25seV9rZXkgPSB0ZXN0X25vZGVzWzFdLnVybAorCisgICAgICAgIGZ1enp5X292ZXJyaWRlID0g
cm9vdF90ZXN0LmZ1enp5X292ZXJyaWRlCisgICAgICAgIGZ1enp5ID0gdGVzdF9ub2Rlc1swXS5m
dXp6eQorCisgICAgICAgIHNvdXJjZXMgPSBbZnV6enlfb3ZlcnJpZGUsIGZ1enp5XQorICAgICAg
ICBrZXlzID0gW2Z1bGxfa2V5LCByZWZfb25seV9rZXksIE5vbmVdCisgICAgICAgIHZhbHVlID0g
Tm9uZQorICAgICAgICBmb3Igc291cmNlIGluIHNvdXJjZXM6CisgICAgICAgICAgICBmb3Iga2V5
IGluIGtleXM6CisgICAgICAgICAgICAgICAgaWYga2V5IGluIHNvdXJjZToKKyAgICAgICAgICAg
ICAgICAgICAgdmFsdWUgPSBzb3VyY2Vba2V5XQorICAgICAgICAgICAgICAgICAgICBicmVhawor
ICAgICAgICAgICAgaWYgdmFsdWU6CisgICAgICAgICAgICAgICAgYnJlYWsKKyAgICAgICAgcmV0
dXJuIHZhbHVlCisKICAgICBkZWYgcmV0YWtlX3NjcmVlbnNob3Qoc2VsZiwgbm9kZSwgdmlld3Bv
cnRfc2l6ZSwgZHBpKToKICAgICAgICAgc3VjY2VzcywgZGF0YSA9IHNlbGYuZXhlY3V0b3Iuc2Ny
ZWVuc2hvdChub2RlLCB2aWV3cG9ydF9zaXplLCBkcGkpCiAgICAgICAgIGlmIG5vdCBzdWNjZXNz
OgpAQCAtMzUyLDcgKzQ5Nyw3IEBAIGNsYXNzIFdkc3BlY0V4ZWN1dG9yKFRlc3RFeGVjdXRvcik6
CiAgICAgICAgIHBhc3MKIAogICAgIGRlZiBkb190ZXN0KHNlbGYsIHRlc3QpOgotICAgICAgICB0
aW1lb3V0ID0gdGVzdC50aW1lb3V0ICogc2VsZi50aW1lb3V0X211bHRpcGxpZXIgKyBleHRyYV90
aW1lb3V0CisgICAgICAgIHRpbWVvdXQgPSB0ZXN0LnRpbWVvdXQgKiBzZWxmLnRpbWVvdXRfbXVs
dGlwbGllciArIHNlbGYuZXh0cmFfdGltZW91dAogCiAgICAgICAgIHN1Y2Nlc3MsIGRhdGEgPSBX
ZHNwZWNSdW4oc2VsZi5kb193ZHNwZWMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgc2VsZi5wcm90b2NvbC5zZXNzaW9uX2NvbmZpZywKQEAgLTQxNiw3ICs1NjEsNyBAQCBjbGFz
cyBXZHNwZWNSdW4ob2JqZWN0KToKIAogCiBjbGFzcyBDb25uZWN0aW9ubGVzc0Jhc2VQcm90b2Nv
bFBhcnQoQmFzZVByb3RvY29sUGFydCk6Ci0gICAgZGVmIGV4ZWN1dGVfc2NyaXB0KHNlbGYsIHNj
cmlwdCwgYXN5bmM9RmFsc2UpOgorICAgIGRlZiBleGVjdXRlX3NjcmlwdChzZWxmLCBzY3JpcHQs
IGFzeW5jaHJvbm91cz1GYWxzZSk6CiAgICAgICAgIHBhc3MKIAogICAgIGRlZiBzZXRfdGltZW91
dChzZWxmLCB0aW1lb3V0KToKQEAgLTQ4NCw3ICs2MjksNyBAQCBjbGFzcyBXZWJEcml2ZXJQcm90
b2NvbChQcm90b2NvbCk6CiAgICAgICAgIEFuIEhUVFAgcmVxdWVzdCB0byBhbiBpbnZhbGlkIHBh
dGggdGhhdCByZXN1bHRzIGluIGEgNDA0IGlzCiAgICAgICAgIHByb29mIGVub3VnaCB0byB1cyB0
aGF0IHRoZSBzZXJ2ZXIgaXMgYWxpdmUgYW5kIGtpY2tpbmcuCiAgICAgICAgICIiIgotICAgICAg
ICBjb25uID0gaHR0cGxpYi5IVFRQQ29ubmVjdGlvbihzZWxmLnNlcnZlci5ob3N0LCBzZWxmLnNl
cnZlci5wb3J0KQorICAgICAgICBjb25uID0gSFRUUENvbm5lY3Rpb24oc2VsZi5zZXJ2ZXIuaG9z
dCwgc2VsZi5zZXJ2ZXIucG9ydCkKICAgICAgICAgY29ubi5yZXF1ZXN0KCJIRUFEIiwgc2VsZi5z
ZXJ2ZXIuYmFzZV9wYXRoICsgImludmFsaWQiKQogICAgICAgICByZXMgPSBjb25uLmdldHJlc3Bv
bnNlKCkKICAgICAgICAgcmV0dXJuIHJlcy5zdGF0dXMgPT0gNDA0CkBAIC01MDgsNyArNjUzLDE2
IEBAIGNsYXNzIENhbGxiYWNrSGFuZGxlcihvYmplY3QpOgogCiAgICAgICAgIHNlbGYuYWN0aW9u
cyA9IHsKICAgICAgICAgICAgICJjbGljayI6IENsaWNrQWN0aW9uKHNlbGYubG9nZ2VyLCBzZWxm
LnByb3RvY29sKSwKLSAgICAgICAgICAgICJzZW5kX2tleXMiOiBTZW5kS2V5c0FjdGlvbihzZWxm
LmxvZ2dlciwgc2VsZi5wcm90b2NvbCkKKyAgICAgICAgICAgICJzZW5kX2tleXMiOiBTZW5kS2V5
c0FjdGlvbihzZWxmLmxvZ2dlciwgc2VsZi5wcm90b2NvbCksCisgICAgICAgICAgICAiYWN0aW9u
X3NlcXVlbmNlIjogQWN0aW9uU2VxdWVuY2VBY3Rpb24oc2VsZi5sb2dnZXIsIHNlbGYucHJvdG9j
b2wpLAorICAgICAgICAgICAgImdlbmVyYXRlX3Rlc3RfcmVwb3J0IjogR2VuZXJhdGVUZXN0UmVw
b3J0QWN0aW9uKHNlbGYubG9nZ2VyLCBzZWxmLnByb3RvY29sKSwKKyAgICAgICAgICAgICJhZGRf
dmlydHVhbF9hdXRoZW50aWNhdG9yIjogQWRkVmlydHVhbEF1dGhlbnRpY2F0b3JBY3Rpb24oc2Vs
Zi5sb2dnZXIsIHNlbGYucHJvdG9jb2wpLAorICAgICAgICAgICAgInJlbW92ZV92aXJ0dWFsX2F1
dGhlbnRpY2F0b3IiOiBSZW1vdmVWaXJ0dWFsQXV0aGVudGljYXRvckFjdGlvbihzZWxmLmxvZ2dl
ciwgc2VsZi5wcm90b2NvbCksCisgICAgICAgICAgICAiYWRkX2NyZWRlbnRpYWwiOiBBZGRDcmVk
ZW50aWFsQWN0aW9uKHNlbGYubG9nZ2VyLCBzZWxmLnByb3RvY29sKSwKKyAgICAgICAgICAgICJn
ZXRfY3JlZGVudGlhbHMiOiBHZXRDcmVkZW50aWFsc0FjdGlvbihzZWxmLmxvZ2dlciwgc2VsZi5w
cm90b2NvbCksCisgICAgICAgICAgICAicmVtb3ZlX2NyZWRlbnRpYWwiOiBSZW1vdmVDcmVkZW50
aWFsQWN0aW9uKHNlbGYubG9nZ2VyLCBzZWxmLnByb3RvY29sKSwKKyAgICAgICAgICAgICJyZW1v
dmVfYWxsX2NyZWRlbnRpYWxzIjogUmVtb3ZlQWxsQ3JlZGVudGlhbHNBY3Rpb24oc2VsZi5sb2dn
ZXIsIHNlbGYucHJvdG9jb2wpLAorICAgICAgICAgICAgInNldF91c2VyX3ZlcmlmaWVkIjogU2V0
VXNlclZlcmlmaWVkQWN0aW9uKHNlbGYubG9nZ2VyLCBzZWxmLnByb3RvY29sKSwKICAgICAgICAg
fQogCiAgICAgZGVmIF9fY2FsbF9fKHNlbGYsIHJlc3VsdCk6CkBAIC01MjEsMzAgKzY3NSwyNyBA
QCBjbGFzcyBDYWxsYmFja0hhbmRsZXIob2JqZWN0KToKICAgICAgICAgcmV0dXJuIGNhbGxiYWNr
KHVybCwgcGF5bG9hZCkKIAogICAgIGRlZiBwcm9jZXNzX2NvbXBsZXRlKHNlbGYsIHVybCwgcGF5
bG9hZCk6Ci0gICAgICAgIHJ2ID0gW3VybF0gKyBwYXlsb2FkCisgICAgICAgIHJ2ID0gW3N0cmlw
X3NlcnZlcih1cmwpXSArIHBheWxvYWQKICAgICAgICAgcmV0dXJuIFRydWUsIHJ2CiAKICAgICBk
ZWYgcHJvY2Vzc19hY3Rpb24oc2VsZiwgdXJsLCBwYXlsb2FkKToKLSAgICAgICAgcGFyZW50ID0g
c2VsZi5wcm90b2NvbC5iYXNlLmN1cnJlbnRfd2luZG93CisgICAgICAgIGFjdGlvbiA9IHBheWxv
YWRbImFjdGlvbiJdCisgICAgICAgIHNlbGYubG9nZ2VyLmRlYnVnKCJHb3QgYWN0aW9uOiAlcyIg
JSBhY3Rpb24pCiAgICAgICAgIHRyeToKLSAgICAgICAgICAgIHNlbGYucHJvdG9jb2wuYmFzZS5z
ZXRfd2luZG93KHNlbGYudGVzdF93aW5kb3cpCi0gICAgICAgICAgICBhY3Rpb24gPSBwYXlsb2Fk
WyJhY3Rpb24iXQotICAgICAgICAgICAgc2VsZi5sb2dnZXIuZGVidWcoIkdvdCBhY3Rpb246ICVz
IiAlIGFjdGlvbikKLSAgICAgICAgICAgIHRyeToKLSAgICAgICAgICAgICAgICBhY3Rpb25faGFu
ZGxlciA9IHNlbGYuYWN0aW9uc1thY3Rpb25dCi0gICAgICAgICAgICBleGNlcHQgS2V5RXJyb3I6
Ci0gICAgICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigiVW5rbm93biBhY3Rpb24gJXMiICUg
YWN0aW9uKQotICAgICAgICAgICAgdHJ5OgotICAgICAgICAgICAgICAgIGFjdGlvbl9oYW5kbGVy
KHBheWxvYWQpCi0gICAgICAgICAgICBleGNlcHQgRXhjZXB0aW9uOgotICAgICAgICAgICAgICAg
IHNlbGYubG9nZ2VyLndhcm5pbmcoIkFjdGlvbiAlcyBmYWlsZWQiICUgYWN0aW9uKQotICAgICAg
ICAgICAgICAgIHNlbGYubG9nZ2VyLndhcm5pbmcodHJhY2ViYWNrLmZvcm1hdF9leGMoKSkKLSAg
ICAgICAgICAgICAgICBzZWxmLl9zZW5kX21lc3NhZ2UoImNvbXBsZXRlIiwgImZhaWx1cmUiKQot
ICAgICAgICAgICAgZWxzZToKLSAgICAgICAgICAgICAgICBzZWxmLmxvZ2dlci5kZWJ1ZygiQWN0
aW9uICVzIGNvbXBsZXRlZCIgJSBhY3Rpb24pCi0gICAgICAgICAgICAgICAgc2VsZi5fc2VuZF9t
ZXNzYWdlKCJjb21wbGV0ZSIsICJzdWNjZXNzIikKLSAgICAgICAgZmluYWxseToKLSAgICAgICAg
ICAgIHNlbGYucHJvdG9jb2wuYmFzZS5zZXRfd2luZG93KHBhcmVudCkKKyAgICAgICAgICAgIGFj
dGlvbl9oYW5kbGVyID0gc2VsZi5hY3Rpb25zW2FjdGlvbl0KKyAgICAgICAgZXhjZXB0IEtleUVy
cm9yOgorICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigiVW5rbm93biBhY3Rpb24gJXMiICUg
YWN0aW9uKQorICAgICAgICB0cnk6CisgICAgICAgICAgICByZXN1bHQgPSBhY3Rpb25faGFuZGxl
cihwYXlsb2FkKQorICAgICAgICBleGNlcHQgRXhjZXB0aW9uOgorICAgICAgICAgICAgc2VsZi5s
b2dnZXIud2FybmluZygiQWN0aW9uICVzIGZhaWxlZCIgJSBhY3Rpb24pCisgICAgICAgICAgICBz
ZWxmLmxvZ2dlci53YXJuaW5nKHRyYWNlYmFjay5mb3JtYXRfZXhjKCkpCisgICAgICAgICAgICBz
ZWxmLl9zZW5kX21lc3NhZ2UoImNvbXBsZXRlIiwgImVycm9yIikKKyAgICAgICAgICAgIHJhaXNl
CisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBzZWxmLmxvZ2dlci5kZWJ1ZygiQWN0aW9uICVz
IGNvbXBsZXRlZCB3aXRoIHJlc3VsdCAlcyIgJSAoYWN0aW9uLCByZXN1bHQpKQorICAgICAgICAg
ICAgcmV0dXJuX21lc3NhZ2UgPSB7InJlc3VsdCI6IHJlc3VsdH0KKyAgICAgICAgICAgIHNlbGYu
X3NlbmRfbWVzc2FnZSgiY29tcGxldGUiLCAic3VjY2VzcyIsIGpzb24uZHVtcHMocmV0dXJuX21l
c3NhZ2UpKQogCiAgICAgICAgIHJldHVybiBGYWxzZSwgTm9uZQogCkBAIC01NTksMTMgKzcxMCw5
IEBAIGNsYXNzIENsaWNrQWN0aW9uKG9iamVjdCk6CiAKICAgICBkZWYgX19jYWxsX18oc2VsZiwg
cGF5bG9hZCk6CiAgICAgICAgIHNlbGVjdG9yID0gcGF5bG9hZFsic2VsZWN0b3IiXQotICAgICAg
ICBlbGVtZW50cyA9IHNlbGYucHJvdG9jb2wuc2VsZWN0LmVsZW1lbnRzX2J5X3NlbGVjdG9yKHNl
bGVjdG9yKQotICAgICAgICBpZiBsZW4oZWxlbWVudHMpID09IDA6Ci0gICAgICAgICAgICByYWlz
ZSBWYWx1ZUVycm9yKCJTZWxlY3RvciBtYXRjaGVzIG5vIGVsZW1lbnRzIikKLSAgICAgICAgZWxp
ZiBsZW4oZWxlbWVudHMpID4gMToKLSAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoIlNlbGVj
dG9yIG1hdGNoZXMgbXVsdGlwbGUgZWxlbWVudHMiKQorICAgICAgICBlbGVtZW50ID0gc2VsZi5w
cm90b2NvbC5zZWxlY3QuZWxlbWVudF9ieV9zZWxlY3RvcihzZWxlY3RvcikKICAgICAgICAgc2Vs
Zi5sb2dnZXIuZGVidWcoIkNsaWNraW5nIGVsZW1lbnQ6ICVzIiAlIHNlbGVjdG9yKQotICAgICAg
ICBzZWxmLnByb3RvY29sLmNsaWNrLmVsZW1lbnQoZWxlbWVudHNbMF0pCisgICAgICAgIHNlbGYu
cHJvdG9jb2wuY2xpY2suZWxlbWVudChlbGVtZW50KQogCiAKIGNsYXNzIFNlbmRLZXlzQWN0aW9u
KG9iamVjdCk6CkBAIC01NzYsMTAgKzcyMywxMTQgQEAgY2xhc3MgU2VuZEtleXNBY3Rpb24ob2Jq
ZWN0KToKICAgICBkZWYgX19jYWxsX18oc2VsZiwgcGF5bG9hZCk6CiAgICAgICAgIHNlbGVjdG9y
ID0gcGF5bG9hZFsic2VsZWN0b3IiXQogICAgICAgICBrZXlzID0gcGF5bG9hZFsia2V5cyJdCi0g
ICAgICAgIGVsZW1lbnRzID0gc2VsZi5wcm90b2NvbC5zZWxlY3QuZWxlbWVudHNfYnlfc2VsZWN0
b3Ioc2VsZWN0b3IpCi0gICAgICAgIGlmIGxlbihlbGVtZW50cykgPT0gMDoKLSAgICAgICAgICAg
IHJhaXNlIFZhbHVlRXJyb3IoIlNlbGVjdG9yIG1hdGNoZXMgbm8gZWxlbWVudHMiKQotICAgICAg
ICBlbGlmIGxlbihlbGVtZW50cykgPiAxOgotICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigi
U2VsZWN0b3IgbWF0Y2hlcyBtdWx0aXBsZSBlbGVtZW50cyIpCisgICAgICAgIGVsZW1lbnQgPSBz
ZWxmLnByb3RvY29sLnNlbGVjdC5lbGVtZW50X2J5X3NlbGVjdG9yKHNlbGVjdG9yKQogICAgICAg
ICBzZWxmLmxvZ2dlci5kZWJ1ZygiU2VuZGluZyBrZXlzIHRvIGVsZW1lbnQ6ICVzIiAlIHNlbGVj
dG9yKQotICAgICAgICBzZWxmLnByb3RvY29sLnNlbmRfa2V5cy5zZW5kX2tleXMoZWxlbWVudHNb
MF0sIGtleXMpCisgICAgICAgIHNlbGYucHJvdG9jb2wuc2VuZF9rZXlzLnNlbmRfa2V5cyhlbGVt
ZW50LCBrZXlzKQorCisKK2NsYXNzIEFjdGlvblNlcXVlbmNlQWN0aW9uKG9iamVjdCk6CisgICAg
ZGVmIF9faW5pdF9fKHNlbGYsIGxvZ2dlciwgcHJvdG9jb2wpOgorICAgICAgICBzZWxmLmxvZ2dl
ciA9IGxvZ2dlcgorICAgICAgICBzZWxmLnByb3RvY29sID0gcHJvdG9jb2wKKworICAgIGRlZiBf
X2NhbGxfXyhzZWxmLCBwYXlsb2FkKToKKyAgICAgICAgIyBUT0RPOiBzb21lIHNvcnQgb2Ygc2hh
bGxvdyBlcnJvciBjaGVja2luZworICAgICAgICBhY3Rpb25zID0gcGF5bG9hZFsiYWN0aW9ucyJd
CisgICAgICAgIGZvciBhY3Rpb25TZXF1ZW5jZSBpbiBhY3Rpb25zOgorICAgICAgICAgICAgaWYg
YWN0aW9uU2VxdWVuY2VbInR5cGUiXSA9PSAicG9pbnRlciI6CisgICAgICAgICAgICAgICAgZm9y
IGFjdGlvbiBpbiBhY3Rpb25TZXF1ZW5jZVsiYWN0aW9ucyJdOgorICAgICAgICAgICAgICAgICAg
ICBpZiAoYWN0aW9uWyJ0eXBlIl0gPT0gInBvaW50ZXJNb3ZlIiBhbmQKKyAgICAgICAgICAgICAg
ICAgICAgICAgIGlzaW5zdGFuY2UoYWN0aW9uWyJvcmlnaW4iXSwgZGljdCkpOgorICAgICAgICAg
ICAgICAgICAgICAgICAgYWN0aW9uWyJvcmlnaW4iXSA9IHNlbGYuZ2V0X2VsZW1lbnQoYWN0aW9u
WyJvcmlnaW4iXVsic2VsZWN0b3IiXSwgYWN0aW9uWyJmcmFtZSJdWyJmcmFtZSJdKQorICAgICAg
ICBzZWxmLnByb3RvY29sLmFjdGlvbl9zZXF1ZW5jZS5zZW5kX2FjdGlvbnMoeyJhY3Rpb25zIjog
YWN0aW9uc30pCisKKyAgICBkZWYgZ2V0X2VsZW1lbnQoc2VsZiwgZWxlbWVudF9zZWxlY3Rvciwg
ZnJhbWUpOgorICAgICAgICBlbGVtZW50ID0gc2VsZi5wcm90b2NvbC5zZWxlY3QuZWxlbWVudF9i
eV9zZWxlY3RvcihlbGVtZW50X3NlbGVjdG9yLCBmcmFtZSkKKyAgICAgICAgcmV0dXJuIGVsZW1l
bnQKKworY2xhc3MgR2VuZXJhdGVUZXN0UmVwb3J0QWN0aW9uKG9iamVjdCk6CisgICAgZGVmIF9f
aW5pdF9fKHNlbGYsIGxvZ2dlciwgcHJvdG9jb2wpOgorICAgICAgICBzZWxmLmxvZ2dlciA9IGxv
Z2dlcgorICAgICAgICBzZWxmLnByb3RvY29sID0gcHJvdG9jb2wKKworICAgIGRlZiBfX2NhbGxf
XyhzZWxmLCBwYXlsb2FkKToKKyAgICAgICAgbWVzc2FnZSA9IHBheWxvYWRbIm1lc3NhZ2UiXQor
ICAgICAgICBzZWxmLmxvZ2dlci5kZWJ1ZygiR2VuZXJhdGluZyB0ZXN0IHJlcG9ydDogJXMiICUg
bWVzc2FnZSkKKyAgICAgICAgc2VsZi5wcm90b2NvbC5nZW5lcmF0ZV90ZXN0X3JlcG9ydC5nZW5l
cmF0ZV90ZXN0X3JlcG9ydChtZXNzYWdlKQorCitjbGFzcyBBZGRWaXJ0dWFsQXV0aGVudGljYXRv
ckFjdGlvbihvYmplY3QpOgorICAgIGRlZiBfX2luaXRfXyhzZWxmLCBsb2dnZXIsIHByb3RvY29s
KToKKyAgICAgICAgc2VsZi5sb2dnZXIgPSBsb2dnZXIKKyAgICAgICAgc2VsZi5wcm90b2NvbCA9
IHByb3RvY29sCisKKyAgICBkZWYgX19jYWxsX18oc2VsZiwgcGF5bG9hZCk6CisgICAgICAgIHNl
bGYubG9nZ2VyLmRlYnVnKCJBZGRpbmcgdmlydHVhbCBhdXRoZW50aWNhdG9yIikKKyAgICAgICAg
Y29uZmlnID0gcGF5bG9hZFsiY29uZmlnIl0KKyAgICAgICAgYXV0aGVudGljYXRvcl9pZCA9IHNl
bGYucHJvdG9jb2wudmlydHVhbF9hdXRoZW50aWNhdG9yLmFkZF92aXJ0dWFsX2F1dGhlbnRpY2F0
b3IoY29uZmlnKQorICAgICAgICBzZWxmLmxvZ2dlci5kZWJ1ZygiQXV0aGVudGljYXRvciBjcmVh
dGVkIHdpdGggSUQgJXMiICUgYXV0aGVudGljYXRvcl9pZCkKKyAgICAgICAgcmV0dXJuIGF1dGhl
bnRpY2F0b3JfaWQKKworY2xhc3MgUmVtb3ZlVmlydHVhbEF1dGhlbnRpY2F0b3JBY3Rpb24ob2Jq
ZWN0KToKKyAgICBkZWYgX19pbml0X18oc2VsZiwgbG9nZ2VyLCBwcm90b2NvbCk6CisgICAgICAg
IHNlbGYubG9nZ2VyID0gbG9nZ2VyCisgICAgICAgIHNlbGYucHJvdG9jb2wgPSBwcm90b2NvbAor
CisgICAgZGVmIF9fY2FsbF9fKHNlbGYsIHBheWxvYWQpOgorICAgICAgICBhdXRoZW50aWNhdG9y
X2lkID0gcGF5bG9hZFsiYXV0aGVudGljYXRvcl9pZCJdCisgICAgICAgIHNlbGYubG9nZ2VyLmRl
YnVnKCJSZW1vdmluZyB2aXJ0dWFsIGF1dGhlbnRpY2F0b3IgJXMiICUgYXV0aGVudGljYXRvcl9p
ZCkKKyAgICAgICAgcmV0dXJuIHNlbGYucHJvdG9jb2wudmlydHVhbF9hdXRoZW50aWNhdG9yLnJl
bW92ZV92aXJ0dWFsX2F1dGhlbnRpY2F0b3IoYXV0aGVudGljYXRvcl9pZCkKKworCitjbGFzcyBB
ZGRDcmVkZW50aWFsQWN0aW9uKG9iamVjdCk6CisgICAgZGVmIF9faW5pdF9fKHNlbGYsIGxvZ2dl
ciwgcHJvdG9jb2wpOgorICAgICAgICBzZWxmLmxvZ2dlciA9IGxvZ2dlcgorICAgICAgICBzZWxm
LnByb3RvY29sID0gcHJvdG9jb2wKKworICAgIGRlZiBfX2NhbGxfXyhzZWxmLCBwYXlsb2FkKToK
KyAgICAgICAgYXV0aGVudGljYXRvcl9pZCA9IHBheWxvYWRbImF1dGhlbnRpY2F0b3JfaWQiXQor
ICAgICAgICBjcmVkZW50aWFsID0gcGF5bG9hZFsiY3JlZGVudGlhbCJdCisgICAgICAgIHNlbGYu
bG9nZ2VyLmRlYnVnKCJBZGRpbmcgY3JlZGVudGlhbCB0byB2aXJ0dWFsIGF1dGhlbnRpY2F0b3Ig
JXMgIiAlIGF1dGhlbnRpY2F0b3JfaWQpCisgICAgICAgIHJldHVybiBzZWxmLnByb3RvY29sLnZp
cnR1YWxfYXV0aGVudGljYXRvci5hZGRfY3JlZGVudGlhbChhdXRoZW50aWNhdG9yX2lkLCBjcmVk
ZW50aWFsKQorCitjbGFzcyBHZXRDcmVkZW50aWFsc0FjdGlvbihvYmplY3QpOgorICAgIGRlZiBf
X2luaXRfXyhzZWxmLCBsb2dnZXIsIHByb3RvY29sKToKKyAgICAgICAgc2VsZi5sb2dnZXIgPSBs
b2dnZXIKKyAgICAgICAgc2VsZi5wcm90b2NvbCA9IHByb3RvY29sCisKKyAgICBkZWYgX19jYWxs
X18oc2VsZiwgcGF5bG9hZCk6CisgICAgICAgIGF1dGhlbnRpY2F0b3JfaWQgPSBwYXlsb2FkWyJh
dXRoZW50aWNhdG9yX2lkIl0KKyAgICAgICAgc2VsZi5sb2dnZXIuZGVidWcoIkdldHRpbmcgY3Jl
ZGVudGlhbHMgZnJvbSB2aXJ0dWFsIGF1dGhlbnRpY2F0b3IgJXMgIiAlIGF1dGhlbnRpY2F0b3Jf
aWQpCisgICAgICAgIHJldHVybiBzZWxmLnByb3RvY29sLnZpcnR1YWxfYXV0aGVudGljYXRvci5n
ZXRfY3JlZGVudGlhbHMoYXV0aGVudGljYXRvcl9pZCkKKworY2xhc3MgUmVtb3ZlQ3JlZGVudGlh
bEFjdGlvbihvYmplY3QpOgorICAgIGRlZiBfX2luaXRfXyhzZWxmLCBsb2dnZXIsIHByb3RvY29s
KToKKyAgICAgICAgc2VsZi5sb2dnZXIgPSBsb2dnZXIKKyAgICAgICAgc2VsZi5wcm90b2NvbCA9
IHByb3RvY29sCisKKyAgICBkZWYgX19jYWxsX18oc2VsZiwgcGF5bG9hZCk6CisgICAgICAgIGF1
dGhlbnRpY2F0b3JfaWQgPSBwYXlsb2FkWyJhdXRoZW50aWNhdG9yX2lkIl0KKyAgICAgICAgY3Jl
ZGVudGlhbF9pZCA9IHBheWxvYWRbImNyZWRlbnRpYWxfaWQiXQorICAgICAgICBzZWxmLmxvZ2dl
ci5kZWJ1ZygiUmVtb3ZpbmcgY3JlZGVudGlhbCAlcyBmcm9tIGF1dGhlbnRpY2F0b3IgJXMiICUg
KGNyZWRlbnRpYWxfaWQsIGF1dGhlbnRpY2F0b3JfaWQpKQorICAgICAgICByZXR1cm4gc2VsZi5w
cm90b2NvbC52aXJ0dWFsX2F1dGhlbnRpY2F0b3IucmVtb3ZlX2NyZWRlbnRpYWwoYXV0aGVudGlj
YXRvcl9pZCwgY3JlZGVudGlhbF9pZCkKKworY2xhc3MgUmVtb3ZlQWxsQ3JlZGVudGlhbHNBY3Rp
b24ob2JqZWN0KToKKyAgICBkZWYgX19pbml0X18oc2VsZiwgbG9nZ2VyLCBwcm90b2NvbCk6Cisg
ICAgICAgIHNlbGYubG9nZ2VyID0gbG9nZ2VyCisgICAgICAgIHNlbGYucHJvdG9jb2wgPSBwcm90
b2NvbAorCisgICAgZGVmIF9fY2FsbF9fKHNlbGYsIHBheWxvYWQpOgorICAgICAgICBhdXRoZW50
aWNhdG9yX2lkID0gcGF5bG9hZFsiYXV0aGVudGljYXRvcl9pZCJdCisgICAgICAgIHNlbGYubG9n
Z2VyLmRlYnVnKCJSZW1vdmluZyBhbGwgY3JlZGVudGlhbHMgZnJvbSBhdXRoZW50aWNhdG9yICVz
IiAlIGF1dGhlbnRpY2F0b3JfaWQpCisgICAgICAgIHJldHVybiBzZWxmLnByb3RvY29sLnZpcnR1
YWxfYXV0aGVudGljYXRvci5yZW1vdmVfYWxsX2NyZWRlbnRpYWxzKGF1dGhlbnRpY2F0b3JfaWQp
CisKK2NsYXNzIFNldFVzZXJWZXJpZmllZEFjdGlvbihvYmplY3QpOgorICAgIGRlZiBfX2luaXRf
XyhzZWxmLCBsb2dnZXIsIHByb3RvY29sKToKKyAgICAgICAgc2VsZi5sb2dnZXIgPSBsb2dnZXIK
KyAgICAgICAgc2VsZi5wcm90b2NvbCA9IHByb3RvY29sCisKKyAgICBkZWYgX19jYWxsX18oc2Vs
ZiwgcGF5bG9hZCk6CisgICAgICAgIGF1dGhlbnRpY2F0b3JfaWQgPSBwYXlsb2FkWyJhdXRoZW50
aWNhdG9yX2lkIl0KKyAgICAgICAgdXYgPSBwYXlsb2FkWyJ1diJdCisgICAgICAgIHNlbGYubG9n
Z2VyLmRlYnVnKAorICAgICAgICAgICAgIlNldHRpbmcgdXNlciB2ZXJpZmllZCBmbGFnIG9uIGF1
dGhlbnRpY2F0b3IgJXMgdG8gJXMiICUgKGF1dGhlbnRpY2F0b3JfaWQsIHV2WyJpc1VzZXJWZXJp
ZmllZCJdKSkKKyAgICAgICAgcmV0dXJuIHNlbGYucHJvdG9jb2wudmlydHVhbF9hdXRoZW50aWNh
dG9yLnNldF91c2VyX3ZlcmlmaWVkKGF1dGhlbnRpY2F0b3JfaWQsIHV2KQpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5u
ZXIvd3B0cnVubmVyL2V4ZWN1dG9ycy9leGVjdXRvcmVkZ2VjaHJvbWl1bS5weSBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1
bm5lci9leGVjdXRvcnMvZXhlY3V0b3JlZGdlY2hyb21pdW0ucHkKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAuLjMzZWJlMTk3ZTcxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIv
d3B0cnVubmVyL2V4ZWN1dG9ycy9leGVjdXRvcmVkZ2VjaHJvbWl1bS5weQpAQCAtMCwwICsxLDEw
IEBACitmcm9tIC4ud2ViZHJpdmVyX3NlcnZlciBpbXBvcnQgRWRnZUNocm9taXVtRHJpdmVyU2Vy
dmVyDQorZnJvbSAuYmFzZSBpbXBvcnQgV2RzcGVjRXhlY3V0b3IsIFdlYkRyaXZlclByb3RvY29s
DQorDQorDQorY2xhc3MgRWRnZUNocm9taXVtRHJpdmVyUHJvdG9jb2woV2ViRHJpdmVyUHJvdG9j
b2wpOg0KKyAgICBzZXJ2ZXJfY2xzID0gRWRnZUNocm9taXVtRHJpdmVyU2VydmVyDQorDQorDQor
Y2xhc3MgRWRnZUNocm9taXVtRHJpdmVyV2RzcGVjRXhlY3V0b3IoV2RzcGVjRXhlY3V0b3IpOg0K
KyAgICBwcm90b2NvbF9jbHMgPSBFZGdlQ2hyb21pdW1Ecml2ZXJQcm90b2NvbA0KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0
cnVubmVyL3dwdHJ1bm5lci9leGVjdXRvcnMvZXhlY3V0b3JtYXJpb25ldHRlLnB5IGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0
cnVubmVyL2V4ZWN1dG9ycy9leGVjdXRvcm1hcmlvbmV0dGUucHkKaW5kZXggNzAwNTRiNTcyOTQu
LmIxNjVlOGNkOTNkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvZXhlY3V0b3JzL2V4ZWN1dG9y
bWFyaW9uZXR0ZS5weQorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvZXhlY3V0b3JzL2V4ZWN1dG9ybWFyaW9u
ZXR0ZS5weQpAQCAtMSw3ICsxLDcgQEAKIGltcG9ydCBqc29uCiBpbXBvcnQgb3MKLWltcG9ydCBz
b2NrZXQKIGltcG9ydCB0aHJlYWRpbmcKK2ltcG9ydCB0aW1lCiBpbXBvcnQgdHJhY2ViYWNrCiBp
bXBvcnQgdXJscGFyc2UKIGltcG9ydCB1dWlkCkBAIC0xNiwxMSArMTYsMTIgQEAgZnJvbSAuYmFz
ZSBpbXBvcnQgKENhbGxiYWNrSGFuZGxlciwKICAgICAgICAgICAgICAgICAgICBSZWZUZXN0RXhl
Y3V0b3IsCiAgICAgICAgICAgICAgICAgICAgUmVmVGVzdEltcGxlbWVudGF0aW9uLAogICAgICAg
ICAgICAgICAgICAgIFRlc3RoYXJuZXNzRXhlY3V0b3IsCisgICAgICAgICAgICAgICAgICAgVGlt
ZWRSdW5uZXIsCiAgICAgICAgICAgICAgICAgICAgV2RzcGVjRXhlY3V0b3IsCiAgICAgICAgICAg
ICAgICAgICAgV2ViRHJpdmVyUHJvdG9jb2wsCi0gICAgICAgICAgICAgICAgICAgZXh0cmFfdGlt
ZW91dCwKICAgICAgICAgICAgICAgICAgICBzdHJpcF9zZXJ2ZXIpCi1mcm9tIC5wcm90b2NvbCBp
bXBvcnQgKEFzc2VydHNQcm90b2NvbFBhcnQsCitmcm9tIC5wcm90b2NvbCBpbXBvcnQgKEFjdGlv
blNlcXVlbmNlUHJvdG9jb2xQYXJ0LAorICAgICAgICAgICAgICAgICAgICAgICBBc3NlcnRzUHJv
dG9jb2xQYXJ0LAogICAgICAgICAgICAgICAgICAgICAgICBCYXNlUHJvdG9jb2xQYXJ0LAogICAg
ICAgICAgICAgICAgICAgICAgICBUZXN0aGFybmVzc1Byb3RvY29sUGFydCwKICAgICAgICAgICAg
ICAgICAgICAgICAgUHJlZnNQcm90b2NvbFBhcnQsCkBAIC01NSw4ICs1Niw4IEBAIGNsYXNzIE1h
cmlvbmV0dGVCYXNlUHJvdG9jb2xQYXJ0KEJhc2VQcm90b2NvbFBhcnQpOgogICAgIGRlZiBzZXR1
cChzZWxmKToKICAgICAgICAgc2VsZi5tYXJpb25ldHRlID0gc2VsZi5wYXJlbnQubWFyaW9uZXR0
ZQogCi0gICAgZGVmIGV4ZWN1dGVfc2NyaXB0KHNlbGYsIHNjcmlwdCwgYXN5bmM9RmFsc2UpOgot
ICAgICAgICBtZXRob2QgPSBzZWxmLm1hcmlvbmV0dGUuZXhlY3V0ZV9hc3luY19zY3JpcHQgaWYg
YXN5bmMgZWxzZSBzZWxmLm1hcmlvbmV0dGUuZXhlY3V0ZV9zY3JpcHQKKyAgICBkZWYgZXhlY3V0
ZV9zY3JpcHQoc2VsZiwgc2NyaXB0LCBhc3luY2hyb25vdXM9RmFsc2UpOgorICAgICAgICBtZXRo
b2QgPSBzZWxmLm1hcmlvbmV0dGUuZXhlY3V0ZV9hc3luY19zY3JpcHQgaWYgYXN5bmNocm9ub3Vz
IGVsc2Ugc2VsZi5tYXJpb25ldHRlLmV4ZWN1dGVfc2NyaXB0CiAgICAgICAgIHJldHVybiBtZXRo
b2Qoc2NyaXB0LCBuZXdfc2FuZGJveD1GYWxzZSwgc2FuZGJveD1Ob25lKQogCiAgICAgZGVmIHNl
dF90aW1lb3V0KHNlbGYsIHRpbWVvdXQpOgpAQCAtODUsNyArODYsNyBAQCBjbGFzcyBNYXJpb25l
dHRlQmFzZVByb3RvY29sUGFydChCYXNlUHJvdG9jb2xQYXJ0KToKICAgICAgICAgaWYgc29ja2V0
X3RpbWVvdXQ6CiAgICAgICAgICAgICB0cnk6CiAgICAgICAgICAgICAgICAgc2VsZi5tYXJpb25l
dHRlLnRpbWVvdXQuc2NyaXB0ID0gc29ja2V0X3RpbWVvdXQgLyAyCi0gICAgICAgICAgICBleGNl
cHQgKHNvY2tldC5lcnJvciwgSU9FcnJvcik6CisgICAgICAgICAgICBleGNlcHQgSU9FcnJvcjoK
ICAgICAgICAgICAgICAgICBzZWxmLmxvZ2dlci5kZWJ1ZygiU29ja2V0IGNsb3NlZCIpCiAgICAg
ICAgICAgICAgICAgcmV0dXJuCiAKQEAgLTk4LDcgKzk5LDExIEBAIGNsYXNzIE1hcmlvbmV0dGVC
YXNlUHJvdG9jb2xQYXJ0KEJhc2VQcm90b2NvbFBhcnQpOgogICAgICAgICAgICAgZXhjZXB0IGVy
cm9ycy5TY3JpcHRUaW1lb3V0RXhjZXB0aW9uOgogICAgICAgICAgICAgICAgIHNlbGYubG9nZ2Vy
LmRlYnVnKCJTY3JpcHQgdGltZWQgb3V0IikKICAgICAgICAgICAgICAgICBwYXNzCi0gICAgICAg
ICAgICBleGNlcHQgKHNvY2tldC50aW1lb3V0LCBJT0Vycm9yKToKKyAgICAgICAgICAgIGV4Y2Vw
dCBlcnJvcnMuSmF2YXNjcmlwdEV4Y2VwdGlvbiBhcyBlOgorICAgICAgICAgICAgICAgICMgVGhp
cyBjYW4gaGFwcGVuIGlmIHdlIG5hdmlnYXRlLCBidXQganVzdCBrZWVwIGdvaW5nCisgICAgICAg
ICAgICAgICAgc2VsZi5sb2dnZXIuZGVidWcoZS5tZXNzYWdlKQorICAgICAgICAgICAgICAgIHBh
c3MKKyAgICAgICAgICAgIGV4Y2VwdCBJT0Vycm9yOgogICAgICAgICAgICAgICAgIHNlbGYubG9n
Z2VyLmRlYnVnKCJTb2NrZXQgY2xvc2VkIikKICAgICAgICAgICAgICAgICBicmVhawogICAgICAg
ICAgICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBlOgpAQCAtMTEwLDE3ICsxMTUsMTkgQEAgY2xhc3Mg
TWFyaW9uZXR0ZVRlc3RoYXJuZXNzUHJvdG9jb2xQYXJ0KFRlc3RoYXJuZXNzUHJvdG9jb2xQYXJ0
KToKICAgICBkZWYgX19pbml0X18oc2VsZiwgcGFyZW50KToKICAgICAgICAgc3VwZXIoTWFyaW9u
ZXR0ZVRlc3RoYXJuZXNzUHJvdG9jb2xQYXJ0LCBzZWxmKS5fX2luaXRfXyhwYXJlbnQpCiAgICAg
ICAgIHNlbGYucnVubmVyX2hhbmRsZSA9IE5vbmUKKyAgICAgICAgd2l0aCBvcGVuKG9zLnBhdGgu
am9pbihoZXJlLCAicnVubmVyLmpzIikpIGFzIGY6CisgICAgICAgICAgICBzZWxmLnJ1bm5lcl9z
Y3JpcHQgPSBmLnJlYWQoKQogCiAgICAgZGVmIHNldHVwKHNlbGYpOgogICAgICAgICBzZWxmLm1h
cmlvbmV0dGUgPSBzZWxmLnBhcmVudC5tYXJpb25ldHRlCiAKICAgICBkZWYgbG9hZF9ydW5uZXIo
c2VsZiwgdXJsX3Byb3RvY29sKToKICAgICAgICAgIyBDaGVjayBpZiB3ZSBwcmV2aW91c2x5IGhh
ZCBhIHRlc3Qgd2luZG93IG9wZW4sIGFuZCBpZiB3ZSBkaWQgbWFrZSBzdXJlIGl0J3MgY2xvc2Vk
Ci0gICAgICAgIHNlbGYucGFyZW50LmJhc2UuZXhlY3V0ZV9zY3JpcHQoImlmICh3aW5kb3cud2lu
KSB7d2luZG93Lndpbi5jbG9zZSgpfSIpCisgICAgICAgIGlmIHNlbGYucnVubmVyX2hhbmRsZToK
KyAgICAgICAgICAgIHNlbGYuX2Nsb3NlX3dpbmRvd3MoKQogICAgICAgICB1cmwgPSB1cmxwYXJz
ZS51cmxqb2luKHNlbGYucGFyZW50LmV4ZWN1dG9yLnNlcnZlcl91cmwodXJsX3Byb3RvY29sKSwK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiL3Rlc3RoYXJuZXNzX3J1bm5lci5odG1s
IikKICAgICAgICAgc2VsZi5sb2dnZXIuZGVidWcoIkxvYWRpbmcgJXMiICUgdXJsKQotICAgICAg
ICBzZWxmLnJ1bm5lcl9oYW5kbGUgPSBzZWxmLm1hcmlvbmV0dGUuY3VycmVudF93aW5kb3dfaGFu
ZGxlCiAgICAgICAgIHRyeToKICAgICAgICAgICAgIHNlbGYuZGlzbWlzc19hbGVydChsYW1iZGE6
IHNlbGYubWFyaW9uZXR0ZS5uYXZpZ2F0ZSh1cmwpKQogICAgICAgICBleGNlcHQgRXhjZXB0aW9u
IGFzIGU6CkBAIC0xMjgsMTIgKzEzNSwxMyBAQCBjbGFzcyBNYXJpb25ldHRlVGVzdGhhcm5lc3NQ
cm90b2NvbFBhcnQoVGVzdGhhcm5lc3NQcm90b2NvbFBhcnQpOgogICAgICAgICAgICAgICAgICJM
b2FkaW5nIGluaXRpYWwgcGFnZSAlcyBmYWlsZWQuIEVuc3VyZSB0aGF0IHRoZSAiCiAgICAgICAg
ICAgICAgICAgInRoZXJlIGFyZSBubyBvdGhlciBwcm9ncmFtcyBib3VuZCB0byB0aGlzIHBvcnQg
YW5kICIKICAgICAgICAgICAgICAgICAidGhhdCB5b3VyIGZpcmV3YWxsIHJ1bGVzIG9yIG5ldHdv
cmsgc2V0dXAgZG9lcyBub3QgIgotICAgICAgICAgICAgICAgICJwcmV2ZW50IGFjY2Vzcy5cZSVz
IiAlICh1cmwsIHRyYWNlYmFjay5mb3JtYXRfZXhjKGUpKSkKKyAgICAgICAgICAgICAgICByInBy
ZXZlbnQgYWNjZXNzLlxlJXMiICUgKHVybCwgdHJhY2ViYWNrLmZvcm1hdF9leGMoZSkpKQogICAg
ICAgICAgICAgcmFpc2UKLSAgICAgICAgc2VsZi5wYXJlbnQuYmFzZS5leGVjdXRlX3NjcmlwdCgK
LSAgICAgICAgICAgICJkb2N1bWVudC50aXRsZSA9ICclcyciICUgdGhyZWFkaW5nLmN1cnJlbnRf
dGhyZWFkKCkubmFtZS5yZXBsYWNlKCInIiwgJyInKSkKKyAgICAgICAgc2VsZi5ydW5uZXJfaGFu
ZGxlID0gc2VsZi5tYXJpb25ldHRlLmN1cnJlbnRfd2luZG93X2hhbmRsZQorICAgICAgICBmb3Jt
YXRfbWFwID0geyJ0aXRsZSI6IHRocmVhZGluZy5jdXJyZW50X3RocmVhZCgpLm5hbWUucmVwbGFj
ZSgiJyIsICciJyl9CisgICAgICAgIHNlbGYucGFyZW50LmJhc2UuZXhlY3V0ZV9zY3JpcHQoc2Vs
Zi5ydW5uZXJfc2NyaXB0ICUgZm9ybWF0X21hcCkKIAotICAgIGRlZiBjbG9zZV9vbGRfd2luZG93
cyhzZWxmLCB1cmxfcHJvdG9jb2wpOgorICAgIGRlZiBfY2xvc2Vfd2luZG93cyhzZWxmKToKICAg
ICAgICAgaGFuZGxlcyA9IHNlbGYubWFyaW9uZXR0ZS53aW5kb3dfaGFuZGxlcwogICAgICAgICBy
dW5uZXJfaGFuZGxlID0gTm9uZQogICAgICAgICB0cnk6CkBAIC0xNDYsMTggKzE1NCwyMiBAQCBj
bGFzcyBNYXJpb25ldHRlVGVzdGhhcm5lc3NQcm90b2NvbFBhcnQoVGVzdGhhcm5lc3NQcm90b2Nv
bFBhcnQpOgogICAgICAgICAgICAgIyBidXQgaXQgaG9wZWZ1bGx5IGRvZXNuJ3QgbWF0dGVyIHRv
byBtdWNoIGlmIHRoYXQgYXNzdW1wdGlvbiBpcwogICAgICAgICAgICAgIyB3cm9uZyBzaW5jZSB3
ZSByZWxvYWQgdGhlIHJ1bm5lciBpbiB0aGF0IHRhYiBhbnl3YXkuCiAgICAgICAgICAgICBydW5u
ZXJfaGFuZGxlID0gaGFuZGxlcy5wb3AoMCkKKyAgICAgICAgICAgIHNlbGYubG9nZ2VyLmluZm8o
IkNoYW5naW5nIGhhcm5lc3Nfd2luZG93IHRvICVzIiAlIHJ1bm5lcl9oYW5kbGUpCiAKICAgICAg
ICAgZm9yIGhhbmRsZSBpbiBoYW5kbGVzOgogICAgICAgICAgICAgdHJ5OgotICAgICAgICAgICAg
ICAgIHNlbGYuZGlzbWlzc19hbGVydChsYW1iZGE6IHNlbGYubWFyaW9uZXR0ZS5zd2l0Y2hfdG9f
d2luZG93KGhhbmRsZSkpCisgICAgICAgICAgICAgICAgc2VsZi5sb2dnZXIuaW5mbygiQ2xvc2lu
ZyB3aW5kb3cgJXMiICUgaGFuZGxlKQogICAgICAgICAgICAgICAgIHNlbGYubWFyaW9uZXR0ZS5z
d2l0Y2hfdG9fd2luZG93KGhhbmRsZSkKLSAgICAgICAgICAgICAgICBzZWxmLm1hcmlvbmV0dGUu
Y2xvc2UoKQorICAgICAgICAgICAgICAgIHNlbGYuZGlzbWlzc19hbGVydChsYW1iZGE6IHNlbGYu
bWFyaW9uZXR0ZS5jbG9zZSgpKQogICAgICAgICAgICAgZXhjZXB0IGVycm9ycy5Ob1N1Y2hXaW5k
b3dFeGNlcHRpb246CiAgICAgICAgICAgICAgICAgIyBXZSBtaWdodCBoYXZlIHJhY2VkIHdpdGgg
dGhlIHByZXZpb3VzIHRlc3QgdG8gY2xvc2UgdGhpcwogICAgICAgICAgICAgICAgICMgd2luZG93
LCBza2lwIGl0LgogICAgICAgICAgICAgICAgIHBhc3MKLQogICAgICAgICBzZWxmLm1hcmlvbmV0
dGUuc3dpdGNoX3RvX3dpbmRvdyhydW5uZXJfaGFuZGxlKQorICAgICAgICByZXR1cm4gcnVubmVy
X2hhbmRsZQorCisgICAgZGVmIGNsb3NlX29sZF93aW5kb3dzKHNlbGYsIHVybF9wcm90b2NvbCk6
CisgICAgICAgIHJ1bm5lcl9oYW5kbGUgPSBzZWxmLl9jbG9zZV93aW5kb3dzKCkKICAgICAgICAg
aWYgcnVubmVyX2hhbmRsZSAhPSBzZWxmLnJ1bm5lcl9oYW5kbGU6CiAgICAgICAgICAgICBzZWxm
LmxvYWRfcnVubmVyKHVybF9wcm90b2NvbCkKICAgICAgICAgcmV0dXJuIHNlbGYucnVubmVyX2hh
bmRsZQpAQCAtMTc1LDI5ICsxODcsNDMgQEAgY2xhc3MgTWFyaW9uZXR0ZVRlc3RoYXJuZXNzUHJv
dG9jb2xQYXJ0KFRlc3RoYXJuZXNzUHJvdG9jb2xQYXJ0KToKICAgICAgICAgICAgIGVsc2U6CiAg
ICAgICAgICAgICAgICAgYnJlYWsKIAotICAgIGRlZiBnZXRfdGVzdF93aW5kb3coc2VsZiwgd2lu
ZG93X2lkLCBwYXJlbnQpOgorICAgIGRlZiBnZXRfdGVzdF93aW5kb3coc2VsZiwgd2luZG93X2lk
LCBwYXJlbnQsIHRpbWVvdXQ9NSk6CisgICAgICAgICIiIkZpbmQgdGhlIHRlc3Qgd2luZG93IGFt
b25nc3QgYWxsIHRoZSBvcGVuIHdpbmRvd3MuCisgICAgICAgIFRoaXMgaXMgYXNzdW1lZCB0byBi
ZSBlaXRoZXIgdGhlIG5hbWVkIHdpbmRvdyBvciB0aGUgb25lIGFmdGVyIHRoZSBwYXJlbnQgaW4g
dGhlIGxpc3Qgb2YKKyAgICAgICAgd2luZG93IGhhbmRsZXMKKworICAgICAgICA6cGFyYW0gd2lu
ZG93X2lkOiBUaGUgRE9NIG5hbWUgb2YgdGhlIFdpbmRvdworICAgICAgICA6cGFyYW0gcGFyZW50
OiBUaGUgaGFuZGxlIG9mIHRoZSBydW5uZXIgd2luZG93CisgICAgICAgIDpwYXJhbSB0aW1lb3V0
OiBUaGUgdGltZSBpbiBzZWNvbmRzIHRvIHdhaXQgZm9yIHRoZSB3aW5kb3cgdG8gYXBwZWFyLiBU
aGlzIGlzIGJlY2F1c2UgaW4KKyAgICAgICAgICAgICAgICAgICAgICAgIHNvbWUgaW1wbGVtZW50
YXRpb25zIHRoZXJlJ3MgYSByYWNlIGJldHdlZW4gY2FsbGluZyB3aW5kb3cub3BlbiBhbmQgdGhl
CisgICAgICAgICAgICAgICAgICAgICAgICB3aW5kb3cgYmVpbmcgYWRkZWQgdG8gdGhlIGxpc3Qg
b2YgV2ViRHJpdmVyIGFjY2Vzc2libGUgd2luZG93cy4iIiIKICAgICAgICAgdGVzdF93aW5kb3cg
PSBOb25lCi0gICAgICAgIGlmIHdpbmRvd19pZDoKLSAgICAgICAgICAgIHRyeToKLSAgICAgICAg
ICAgICAgICAjIFRyeSB0aGlzLCBpdCdzIGluIExldmVsIDEgYnV0IG5vdGhpbmcgc3VwcG9ydHMg
aXQgeWV0Ci0gICAgICAgICAgICAgICAgd2luX3MgPSBzZWxmLnBhcmVudC5iYXNlLmV4ZWN1dGVf
c2NyaXB0KCJyZXR1cm4gd2luZG93WyclcyddOyIgJSBzZWxmLndpbmRvd19pZCkKLSAgICAgICAg
ICAgICAgICB3aW5fb2JqID0ganNvbi5sb2Fkcyh3aW5fcykKLSAgICAgICAgICAgICAgICB0ZXN0
X3dpbmRvdyA9IHdpbl9vYmpbIndpbmRvdy1mY2M2LTExZTUtYjRmOC0zMzBhODhhYjlkN2YiXQot
ICAgICAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbjoKLSAgICAgICAgICAgICAgICBwYXNzCisgICAg
ICAgIGVuZF90aW1lID0gdGltZS50aW1lKCkgKyB0aW1lb3V0CisgICAgICAgIHdoaWxlIHRpbWUu
dGltZSgpIDwgZW5kX3RpbWU6CisgICAgICAgICAgICBpZiB3aW5kb3dfaWQ6CisgICAgICAgICAg
ICAgICAgdHJ5OgorICAgICAgICAgICAgICAgICAgICAjIFRyeSB0aGlzLCBpdCdzIGluIExldmVs
IDEgYnV0IG5vdGhpbmcgc3VwcG9ydHMgaXQgeWV0CisgICAgICAgICAgICAgICAgICAgIHdpbl9z
ID0gc2VsZi5wYXJlbnQuYmFzZS5leGVjdXRlX3NjcmlwdCgicmV0dXJuIHdpbmRvd1snJXMnXTsi
ICUgc2VsZi53aW5kb3dfaWQpCisgICAgICAgICAgICAgICAgICAgIHdpbl9vYmogPSBqc29uLmxv
YWRzKHdpbl9zKQorICAgICAgICAgICAgICAgICAgICB0ZXN0X3dpbmRvdyA9IHdpbl9vYmpbIndp
bmRvdy1mY2M2LTExZTUtYjRmOC0zMzBhODhhYjlkN2YiXQorICAgICAgICAgICAgICAgIGV4Y2Vw
dCBFeGNlcHRpb246CisgICAgICAgICAgICAgICAgICAgIHBhc3MKIAotICAgICAgICBpZiB0ZXN0
X3dpbmRvdyBpcyBOb25lOgotICAgICAgICAgICAgYWZ0ZXIgPSBzZWxmLm1hcmlvbmV0dGUud2lu
ZG93X2hhbmRsZXMKLSAgICAgICAgICAgIGlmIGxlbihhZnRlcikgPT0gMjoKLSAgICAgICAgICAg
ICAgICB0ZXN0X3dpbmRvdyA9IG5leHQoaXRlcihzZXQoYWZ0ZXIpIC0gc2V0KFtwYXJlbnRdKSkp
Ci0gICAgICAgICAgICBlbGlmIGFmdGVyWzBdID09IHBhcmVudCBhbmQgbGVuKGFmdGVyKSA+IDI6
Ci0gICAgICAgICAgICAgICAgIyBIb3BlIHRoZSBmaXJzdCBvbmUgaGVyZSBpcyB0aGUgdGVzdCB3
aW5kb3cKLSAgICAgICAgICAgICAgICB0ZXN0X3dpbmRvdyA9IGFmdGVyWzFdCi0gICAgICAgICAg
ICBlbHNlOgotICAgICAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigidW5hYmxlIHRvIGZpbmQg
dGVzdCB3aW5kb3ciKQorICAgICAgICAgICAgaWYgdGVzdF93aW5kb3cgaXMgTm9uZToKKyAgICAg
ICAgICAgICAgICBoYW5kbGVzID0gc2VsZi5tYXJpb25ldHRlLndpbmRvd19oYW5kbGVzCisgICAg
ICAgICAgICAgICAgaWYgbGVuKGhhbmRsZXMpID09IDI6CisgICAgICAgICAgICAgICAgICAgIHRl
c3Rfd2luZG93ID0gbmV4dChpdGVyKHNldChoYW5kbGVzKSAtIHtwYXJlbnR9KSkKKyAgICAgICAg
ICAgICAgICBlbGlmIGxlbihoYW5kbGVzKSA+IDIgYW5kIGhhbmRsZXNbMF0gPT0gcGFyZW50Ogor
ICAgICAgICAgICAgICAgICAgICAjIEhvcGUgdGhlIGZpcnN0IG9uZSBoZXJlIGlzIHRoZSB0ZXN0
IHdpbmRvdworICAgICAgICAgICAgICAgICAgICB0ZXN0X3dpbmRvdyA9IGhhbmRsZXNbMV0KIAot
ICAgICAgICBhc3NlcnQgdGVzdF93aW5kb3cgIT0gcGFyZW50Ci0gICAgICAgIHJldHVybiB0ZXN0
X3dpbmRvdworICAgICAgICAgICAgaWYgdGVzdF93aW5kb3cgaXMgbm90IE5vbmU6CisgICAgICAg
ICAgICAgICAgYXNzZXJ0IHRlc3Rfd2luZG93ICE9IHBhcmVudAorICAgICAgICAgICAgICAgIHJl
dHVybiB0ZXN0X3dpbmRvdworCisgICAgICAgICAgICB0aW1lLnNsZWVwKDAuMSkKKworICAgICAg
ICByYWlzZSBFeGNlcHRpb24oInVuYWJsZSB0byBmaW5kIHRlc3Qgd2luZG93IikKIAogCiBjbGFz
cyBNYXJpb25ldHRlUHJlZnNQcm90b2NvbFBhcnQoUHJlZnNQcm90b2NvbFBhcnQpOgpAQCAtMjMx
LDYgKzI1NywyNSBAQCBjbGFzcyBNYXJpb25ldHRlUHJlZnNQcm90b2NvbFBhcnQoUHJlZnNQcm90
b2NvbFBhcnQpOgogICAgICAgICAgICAgICAgIGNhc2UgcHJlZkludGVyZmFjZS5QUkVGX0lOVDoK
ICAgICAgICAgICAgICAgICAgICAgcHJlZkludGVyZmFjZS5zZXRJbnRQcmVmKHByZWYsIHZhbHVl
KTsKICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgY2FzZSBwcmVm
SW50ZXJmYWNlLlBSRUZfSU5WQUxJRDoKKyAgICAgICAgICAgICAgICAgICAgLy8gUHJlZiBkb2Vz
bid0IHNlZW0gdG8gYmUgZGVmaW5lZCBhbHJlYWR5OyBndWVzcyBhdCB0aGUKKyAgICAgICAgICAg
ICAgICAgICAgLy8gcmlnaHQgd2F5IHRvIHNldCBpdCBiYXNlZCBvbiB0aGUgdHlwZSBvZiB2YWx1
ZSB3ZSBoYXZlLgorICAgICAgICAgICAgICAgICAgICBzd2l0Y2ggKHR5cGVvZiB2YWx1ZSkgewor
ICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAiYm9vbGVhbiI6CisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgcHJlZkludGVyZmFjZS5zZXRCb29sUHJlZihwcmVmLCB2YWx1ZSk7CisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAgICBj
YXNlICJzdHJpbmciOgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByZWZJbnRlcmZhY2Uu
c2V0Q2hhclByZWYocHJlZiwgdmFsdWUpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJy
ZWFrOworICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAibnVtYmVyIjoKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBwcmVmSW50ZXJmYWNlLnNldEludFByZWYocHJlZiwgdmFsdWUpOwor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAg
ICAgZGVmYXVsdDoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3Io
IlVua25vd24gcHJlZiB2YWx1ZSB0eXBlOiAiICsgKHR5cGVvZiB2YWx1ZSkpOworICAgICAgICAg
ICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAg
IGRlZmF1bHQ6CisgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigiVW5rbm93biBw
cmVmIHR5cGUgIiArIHR5cGUpOwogICAgICAgICAgICAgfQogICAgICAgICAgICAgIiIiICUgKG5h
bWUsIHZhbHVlKQogICAgICAgICB3aXRoIHNlbGYubWFyaW9uZXR0ZS51c2luZ19jb250ZXh0KHNl
bGYubWFyaW9uZXR0ZS5DT05URVhUX0NIUk9NRSk6CkBAIC0yODEsMTAgKzMyNiwxMCBAQCBjbGFz
cyBNYXJpb25ldHRlU3RvcmFnZVByb3RvY29sUGFydChTdG9yYWdlUHJvdG9jb2xQYXJ0KToKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLm5ld1VSSSh1cmwpOwogICAgICAgICAgICAg
bGV0IHNzbSA9IENvbXBvbmVudHMuY2xhc3Nlc1siQG1vemlsbGEub3JnL3NjcmlwdHNlY3VyaXR5
bWFuYWdlcjsxIl0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLmdldFNlcnZpY2Uo
Q2kubnNJU2NyaXB0U2VjdXJpdHlNYW5hZ2VyKTsKLSAgICAgICAgICAgIGxldCBwcmluY2lwYWwg
PSBzc20uY3JlYXRlQ29kZWJhc2VQcmluY2lwYWwodXJpLCB7fSk7CisgICAgICAgICAgICBsZXQg
cHJpbmNpcGFsID0gc3NtLmNyZWF0ZUNvbnRlbnRQcmluY2lwYWwodXJpLCB7fSk7CiAgICAgICAg
ICAgICBsZXQgcW1zID0gQ29tcG9uZW50cy5jbGFzc2VzWyJAbW96aWxsYS5vcmcvZG9tL3F1b3Rh
LW1hbmFnZXItc2VydmljZTsxIl0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLmdl
dFNlcnZpY2UoQ29tcG9uZW50cy5pbnRlcmZhY2VzLm5zSVF1b3RhTWFuYWdlclNlcnZpY2UpOwot
ICAgICAgICAgICAgcW1zLmNsZWFyU3RvcmFnZXNGb3JQcmluY2lwYWwocHJpbmNpcGFsLCAiZGVm
YXVsdCIsIHRydWUpOworICAgICAgICAgICAgcW1zLmNsZWFyU3RvcmFnZXNGb3JQcmluY2lwYWwo
cHJpbmNpcGFsLCAiZGVmYXVsdCIsIG51bGwsIHRydWUpOwogICAgICAgICAgICAgIiIiICUgdXJs
CiAgICAgICAgIHdpdGggc2VsZi5tYXJpb25ldHRlLnVzaW5nX2NvbnRleHQoc2VsZi5tYXJpb25l
dHRlLkNPTlRFWFRfQ0hST01FKToKICAgICAgICAgICAgIHNlbGYubWFyaW9uZXR0ZS5leGVjdXRl
X3NjcmlwdChzY3JpcHQpCkBAIC0zMTYsNyArMzYxLDcgQEAgY2xhc3MgTWFyaW9uZXR0ZUFzc2Vy
dHNQcm90b2NvbFBhcnQoQXNzZXJ0c1Byb3RvY29sUGFydCk6CiAgICAgICAgICAgICBleGNlcHQg
ZXJyb3JzLk5vU3VjaFdpbmRvd0V4Y2VwdGlvbjoKICAgICAgICAgICAgICAgICAjIElmIHRoZSB3
aW5kb3cgd2FzIGFscmVhZHkgY2xvc2VkCiAgICAgICAgICAgICAgICAgc2VsZi5wYXJlbnQubG9n
Z2VyLndhcm5pbmcoIkZhaWxlZCB0byBnZXQgYXNzZXJ0aW9uIGNvdW50OyB3aW5kb3cgd2FzIGNs
b3NlZCIpCi0gICAgICAgICAgICBleGNlcHQgKGVycm9ycy5NYXJpb25ldHRlRXhjZXB0aW9uLCBz
b2NrZXQuZXJyb3IpOgorICAgICAgICAgICAgZXhjZXB0IChlcnJvcnMuTWFyaW9uZXR0ZUV4Y2Vw
dGlvbiwgSU9FcnJvcik6CiAgICAgICAgICAgICAgICAgIyBUaGlzIHVzdWFsbHkgaGFwcGVucyBp
ZiB0aGUgcHJvY2VzcyBjcmFzaGVkCiAgICAgICAgICAgICAgICAgcGFzcwogCkBAIC0zNDEsNiAr
Mzg2LDkgQEAgY2xhc3MgTWFyaW9uZXR0ZVNlbGVjdG9yUHJvdG9jb2xQYXJ0KFNlbGVjdG9yUHJv
dG9jb2xQYXJ0KToKICAgICBkZWYgZWxlbWVudHNfYnlfc2VsZWN0b3Ioc2VsZiwgc2VsZWN0b3Ip
OgogICAgICAgICByZXR1cm4gc2VsZi5tYXJpb25ldHRlLmZpbmRfZWxlbWVudHMoImNzcyBzZWxl
Y3RvciIsIHNlbGVjdG9yKQogCisgICAgZGVmIGVsZW1lbnRzX2J5X3NlbGVjdG9yX2FuZF9mcmFt
ZShzZWxmLCBlbGVtZW50X3NlbGVjdG9yLCBmcmFtZSk6CisgICAgICAgIHJldHVybiBzZWxmLm1h
cmlvbmV0dGUuZmluZF9lbGVtZW50cygiY3NzIHNlbGVjdG9yIiwgZWxlbWVudF9zZWxlY3RvcikK
KwogCiBjbGFzcyBNYXJpb25ldHRlQ2xpY2tQcm90b2NvbFBhcnQoQ2xpY2tQcm90b2NvbFBhcnQp
OgogICAgIGRlZiBzZXR1cChzZWxmKToKQEAgLTM1OCw2ICs0MDYsMTYgQEAgY2xhc3MgTWFyaW9u
ZXR0ZVNlbmRLZXlzUHJvdG9jb2xQYXJ0KFNlbmRLZXlzUHJvdG9jb2xQYXJ0KToKICAgICAgICAg
cmV0dXJuIGVsZW1lbnQuc2VuZF9rZXlzKGtleXMpCiAKIAorY2xhc3MgTWFyaW9uZXR0ZUFjdGlv
blNlcXVlbmNlUHJvdG9jb2xQYXJ0KEFjdGlvblNlcXVlbmNlUHJvdG9jb2xQYXJ0KToKKyAgICBk
ZWYgc2V0dXAoc2VsZik6CisgICAgICAgIHNlbGYubWFyaW9uZXR0ZSA9IHNlbGYucGFyZW50Lm1h
cmlvbmV0dGUKKworICAgIGRlZiBzZW5kX2FjdGlvbnMoc2VsZiwgYWN0aW9ucyk6CisgICAgICAg
IGFjdGlvbnMgPSBzZWxmLm1hcmlvbmV0dGUuX3RvX2pzb24oYWN0aW9ucykKKyAgICAgICAgc2Vs
Zi5sb2dnZXIuaW5mbyhhY3Rpb25zKQorICAgICAgICBzZWxmLm1hcmlvbmV0dGUuX3NlbmRfbWVz
c2FnZSgiV2ViRHJpdmVyOlBlcmZvcm1BY3Rpb25zIiwgYWN0aW9ucykKKworCiBjbGFzcyBNYXJp
b25ldHRlVGVzdERyaXZlclByb3RvY29sUGFydChUZXN0RHJpdmVyUHJvdG9jb2xQYXJ0KToKICAg
ICBkZWYgc2V0dXAoc2VsZik6CiAgICAgICAgIHNlbGYubWFyaW9uZXR0ZSA9IHNlbGYucGFyZW50
Lm1hcmlvbmV0dGUKQEAgLTM4MSw3ICs0MzksNyBAQCBjbGFzcyBNYXJpb25ldHRlQ292ZXJhZ2VQ
cm90b2NvbFBhcnQoQ292ZXJhZ2VQcm90b2NvbFBhcnQpOgogICAgICAgICAgICAgcmV0dXJuCiAK
ICAgICAgICAgc2NyaXB0ID0gIiIiCi0gICAgICAgICAgICBDaHJvbWVVdGlscy5pbXBvcnQoImNo
cm9tZTovL21hcmlvbmV0dGUvY29udGVudC9QZXJUZXN0Q292ZXJhZ2VVdGlscy5qc20iKTsKKyAg
ICAgICAgICAgIGNvbnN0IHtQZXJUZXN0Q292ZXJhZ2VVdGlsc30gPSBDaHJvbWVVdGlscy5pbXBv
cnQoImNocm9tZTovL21hcmlvbmV0dGUvY29udGVudC9QZXJUZXN0Q292ZXJhZ2VVdGlscy5qc20i
KTsKICAgICAgICAgICAgIHJldHVybiBQZXJUZXN0Q292ZXJhZ2VVdGlscy5lbmFibGVkOwogICAg
ICAgICAgICAgIiIiCiAgICAgICAgIHdpdGggc2VsZi5tYXJpb25ldHRlLnVzaW5nX2NvbnRleHQo
c2VsZi5tYXJpb25ldHRlLkNPTlRFWFRfQ0hST01FKToKQEAgLTM5MSw3ICs0NDksNyBAQCBjbGFz
cyBNYXJpb25ldHRlQ292ZXJhZ2VQcm90b2NvbFBhcnQoQ292ZXJhZ2VQcm90b2NvbFBhcnQpOgog
ICAgICAgICBzY3JpcHQgPSAiIiIKICAgICAgICAgICAgIHZhciBjYWxsYmFjayA9IGFyZ3VtZW50
c1thcmd1bWVudHMubGVuZ3RoIC0gMV07CiAKLSAgICAgICAgICAgIENocm9tZVV0aWxzLmltcG9y
dCgiY2hyb21lOi8vbWFyaW9uZXR0ZS9jb250ZW50L1BlclRlc3RDb3ZlcmFnZVV0aWxzLmpzbSIp
OworICAgICAgICAgICAgY29uc3Qge1BlclRlc3RDb3ZlcmFnZVV0aWxzfSA9IENocm9tZVV0aWxz
LmltcG9ydCgiY2hyb21lOi8vbWFyaW9uZXR0ZS9jb250ZW50L1BlclRlc3RDb3ZlcmFnZVV0aWxz
LmpzbSIpOwogICAgICAgICAgICAgUGVyVGVzdENvdmVyYWdlVXRpbHMuYmVmb3JlVGVzdCgpLnRo
ZW4oY2FsbGJhY2ssIGNhbGxiYWNrKTsKICAgICAgICAgICAgICIiIgogICAgICAgICB3aXRoIHNl
bGYubWFyaW9uZXR0ZS51c2luZ19jb250ZXh0KHNlbGYubWFyaW9uZXR0ZS5DT05URVhUX0NIUk9N
RSk6CkBAIC0zOTksNyArNDU3LDcgQEAgY2xhc3MgTWFyaW9uZXR0ZUNvdmVyYWdlUHJvdG9jb2xQ
YXJ0KENvdmVyYWdlUHJvdG9jb2xQYXJ0KToKICAgICAgICAgICAgICAgICBlcnJvciA9IHNlbGYu
bWFyaW9uZXR0ZS5leGVjdXRlX2FzeW5jX3NjcmlwdChzY3JpcHQpCiAgICAgICAgICAgICAgICAg
aWYgZXJyb3IgaXMgbm90IE5vbmU6CiAgICAgICAgICAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlv
bignRmFpbHVyZSB3aGlsZSByZXNldHRpbmcgY291bnRlcnM6ICVzJyAlIGpzb24uZHVtcHMoZXJy
b3IpKQotICAgICAgICAgICAgZXhjZXB0IChlcnJvcnMuTWFyaW9uZXR0ZUV4Y2VwdGlvbiwgc29j
a2V0LmVycm9yKToKKyAgICAgICAgICAgIGV4Y2VwdCAoZXJyb3JzLk1hcmlvbmV0dGVFeGNlcHRp
b24sIElPRXJyb3IpOgogICAgICAgICAgICAgICAgICMgVGhpcyB1c3VhbGx5IGhhcHBlbnMgaWYg
dGhlIHByb2Nlc3MgY3Jhc2hlZAogICAgICAgICAgICAgICAgIHBhc3MKIApAQCAtNDExLDcgKzQ2
OSw3IEBAIGNsYXNzIE1hcmlvbmV0dGVDb3ZlcmFnZVByb3RvY29sUGFydChDb3ZlcmFnZVByb3Rv
Y29sUGFydCk6CiAgICAgICAgIHNjcmlwdCA9ICIiIgogICAgICAgICAgICAgdmFyIGNhbGxiYWNr
ID0gYXJndW1lbnRzW2FyZ3VtZW50cy5sZW5ndGggLSAxXTsKIAotICAgICAgICAgICAgQ2hyb21l
VXRpbHMuaW1wb3J0KCJjaHJvbWU6Ly9tYXJpb25ldHRlL2NvbnRlbnQvUGVyVGVzdENvdmVyYWdl
VXRpbHMuanNtIik7CisgICAgICAgICAgICBjb25zdCB7UGVyVGVzdENvdmVyYWdlVXRpbHN9ID0g
Q2hyb21lVXRpbHMuaW1wb3J0KCJjaHJvbWU6Ly9tYXJpb25ldHRlL2NvbnRlbnQvUGVyVGVzdENv
dmVyYWdlVXRpbHMuanNtIik7CiAgICAgICAgICAgICBQZXJUZXN0Q292ZXJhZ2VVdGlscy5hZnRl
clRlc3QoKS50aGVuKGNhbGxiYWNrLCBjYWxsYmFjayk7CiAgICAgICAgICAgICAiIiIKICAgICAg
ICAgd2l0aCBzZWxmLm1hcmlvbmV0dGUudXNpbmdfY29udGV4dChzZWxmLm1hcmlvbmV0dGUuQ09O
VEVYVF9DSFJPTUUpOgpAQCAtNDE5LDcgKzQ3Nyw3IEBAIGNsYXNzIE1hcmlvbmV0dGVDb3ZlcmFn
ZVByb3RvY29sUGFydChDb3ZlcmFnZVByb3RvY29sUGFydCk6CiAgICAgICAgICAgICAgICAgZXJy
b3IgPSBzZWxmLm1hcmlvbmV0dGUuZXhlY3V0ZV9hc3luY19zY3JpcHQoc2NyaXB0KQogICAgICAg
ICAgICAgICAgIGlmIGVycm9yIGlzIG5vdCBOb25lOgogICAgICAgICAgICAgICAgICAgICByYWlz
ZSBFeGNlcHRpb24oJ0ZhaWx1cmUgd2hpbGUgZHVtcGluZyBjb3VudGVyczogJXMnICUganNvbi5k
dW1wcyhlcnJvcikpCi0gICAgICAgICAgICBleGNlcHQgKGVycm9ycy5NYXJpb25ldHRlRXhjZXB0
aW9uLCBzb2NrZXQuZXJyb3IpOgorICAgICAgICAgICAgZXhjZXB0IChlcnJvcnMuTWFyaW9uZXR0
ZUV4Y2VwdGlvbiwgSU9FcnJvcik6CiAgICAgICAgICAgICAgICAgIyBUaGlzIHVzdWFsbHkgaGFw
cGVucyBpZiB0aGUgcHJvY2VzcyBjcmFzaGVkCiAgICAgICAgICAgICAgICAgcGFzcwogCkBAIC00
MzIsNiArNDkwLDcgQEAgY2xhc3MgTWFyaW9uZXR0ZVByb3RvY29sKFByb3RvY29sKToKICAgICAg
ICAgICAgICAgICAgIE1hcmlvbmV0dGVTZWxlY3RvclByb3RvY29sUGFydCwKICAgICAgICAgICAg
ICAgICAgIE1hcmlvbmV0dGVDbGlja1Byb3RvY29sUGFydCwKICAgICAgICAgICAgICAgICAgIE1h
cmlvbmV0dGVTZW5kS2V5c1Byb3RvY29sUGFydCwKKyAgICAgICAgICAgICAgICAgIE1hcmlvbmV0
dGVBY3Rpb25TZXF1ZW5jZVByb3RvY29sUGFydCwKICAgICAgICAgICAgICAgICAgIE1hcmlvbmV0
dGVUZXN0RHJpdmVyUHJvdG9jb2xQYXJ0LAogICAgICAgICAgICAgICAgICAgTWFyaW9uZXR0ZUFz
c2VydHNQcm90b2NvbFBhcnQsCiAgICAgICAgICAgICAgICAgICBNYXJpb25ldHRlQ292ZXJhZ2VQ
cm90b2NvbFBhcnRdCkBAIC00NzEsMTUgKzUzMCwxNiBAQCBjbGFzcyBNYXJpb25ldHRlUHJvdG9j
b2woUHJvdG9jb2wpOgogICAgICAgICBzZWxmLmxvZ2dlci5kZWJ1ZygiTWFyaW9uZXR0ZSBzZXNz
aW9uIHN0YXJ0ZWQiKQogCiAgICAgZGVmIGFmdGVyX2Nvbm5lY3Qoc2VsZik6Ci0gICAgICAgIHNl
bGYudGVzdGhhcm5lc3MubG9hZF9ydW5uZXIoc2VsZi5leGVjdXRvci5sYXN0X2Vudmlyb25tZW50
WyJwcm90b2NvbCJdKQorICAgICAgICBwYXNzCiAKICAgICBkZWYgdGVhcmRvd24oc2VsZik6Ci0g
ICAgICAgIHRyeToKLSAgICAgICAgICAgIHNlbGYubWFyaW9uZXR0ZS5fcmVxdWVzdF9pbl9hcHBf
c2h1dGRvd24oKQotICAgICAgICAgICAgc2VsZi5tYXJpb25ldHRlLmRlbGV0ZV9zZXNzaW9uKHNl
bmRfcmVxdWVzdD1GYWxzZSkKLSAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbjoKLSAgICAgICAgICAg
ICMgVGhpcyBpcyB0eXBpY2FsbHkgYmVjYXVzZSB0aGUgc2Vzc2lvbiBuZXZlciBzdGFydGVkCi0g
ICAgICAgICAgICBwYXNzCisgICAgICAgIGlmIHNlbGYubWFyaW9uZXR0ZSBhbmQgc2VsZi5tYXJp
b25ldHRlLnNlc3Npb25faWQ6CisgICAgICAgICAgICB0cnk6CisgICAgICAgICAgICAgICAgc2Vs
Zi5tYXJpb25ldHRlLl9yZXF1ZXN0X2luX2FwcF9zaHV0ZG93bigpCisgICAgICAgICAgICAgICAg
c2VsZi5tYXJpb25ldHRlLmRlbGV0ZV9zZXNzaW9uKHNlbmRfcmVxdWVzdD1GYWxzZSkKKyAgICAg
ICAgICAgIGV4Y2VwdCBFeGNlcHRpb246CisgICAgICAgICAgICAgICAgIyBUaGlzIGlzIHR5cGlj
YWxseSBiZWNhdXNlIHRoZSBzZXNzaW9uIG5ldmVyIHN0YXJ0ZWQKKyAgICAgICAgICAgICAgICBw
YXNzCiAgICAgICAgIGlmIHNlbGYubWFyaW9uZXR0ZSBpcyBub3QgTm9uZToKICAgICAgICAgICAg
IGRlbCBzZWxmLm1hcmlvbmV0dGUKICAgICAgICAgc3VwZXIoTWFyaW9uZXR0ZVByb3RvY29sLCBz
ZWxmKS50ZWFyZG93bigpCkBAIC01MDYsMjcgKzU2NiwxNCBAQCBjbGFzcyBNYXJpb25ldHRlUHJv
dG9jb2woUHJvdG9jb2wpOgogICAgICAgICAgICAgc2VsZi5wcmVmcy5zZXQobmFtZSwgdmFsdWUp
CiAKIAotY2xhc3MgRXhlY3V0ZUFzeW5jU2NyaXB0UnVuKG9iamVjdCk6Ci0gICAgZGVmIF9faW5p
dF9fKHNlbGYsIGxvZ2dlciwgZnVuYywgcHJvdG9jb2wsIHVybCwgdGltZW91dCk6Ci0gICAgICAg
IHNlbGYubG9nZ2VyID0gbG9nZ2VyCi0gICAgICAgIHNlbGYucmVzdWx0ID0gKE5vbmUsIE5vbmUp
Ci0gICAgICAgIHNlbGYucHJvdG9jb2wgPSBwcm90b2NvbAotICAgICAgICBzZWxmLmZ1bmMgPSBm
dW5jCi0gICAgICAgIHNlbGYudXJsID0gdXJsCi0gICAgICAgIHNlbGYudGltZW91dCA9IHRpbWVv
dXQKLSAgICAgICAgc2VsZi5yZXN1bHRfZmxhZyA9IHRocmVhZGluZy5FdmVudCgpCi0KLSAgICBk
ZWYgcnVuKHNlbGYpOgotICAgICAgICBpbmRleCA9IHNlbGYudXJsLnJmaW5kKCIvc3RvcmFnZS8i
KQotICAgICAgICBpZiBpbmRleCAhPSAtMToKLSAgICAgICAgICAgICMgQ2xlYXIgc3RvcmFnZQot
ICAgICAgICAgICAgc2VsZi5wcm90b2NvbC5zdG9yYWdlLmNsZWFyX29yaWdpbihzZWxmLnVybCkK
K2NsYXNzIEV4ZWN1dGVBc3luY1NjcmlwdFJ1bihUaW1lZFJ1bm5lcik6CiAKKyAgICBkZWYgc2V0
X3RpbWVvdXQoc2VsZik6CiAgICAgICAgIHRpbWVvdXQgPSBzZWxmLnRpbWVvdXQKIAogICAgICAg
ICB0cnk6CiAgICAgICAgICAgICBpZiB0aW1lb3V0IGlzIG5vdCBOb25lOgotICAgICAgICAgICAg
ICAgIHNlbGYucHJvdG9jb2wuYmFzZS5zZXRfdGltZW91dCh0aW1lb3V0ICsgZXh0cmFfdGltZW91
dCkKKyAgICAgICAgICAgICAgICBzZWxmLnByb3RvY29sLmJhc2Uuc2V0X3RpbWVvdXQodGltZW91
dCArIHNlbGYuZXh0cmFfdGltZW91dCkKICAgICAgICAgICAgIGVsc2U6CiAgICAgICAgICAgICAg
ICAgIyBXZSBqdXN0IHdhbnQgaXQgdG8gbmV2ZXIgdGltZSBvdXQsIHJlYWxseSwgYnV0IG1hcmlv
bmV0dGUgZG9lc24ndAogICAgICAgICAgICAgICAgICMgbWFrZSB0aGF0IHBvc3NpYmxlLiBJdCBh
bHNvIHNlZW1zIHRvIHRpbWUgb3V0IGltbWVkaWF0ZWx5IGlmIHRoZQpAQCAtNTM2LDU3ICs1ODMs
NDAgQEAgY2xhc3MgRXhlY3V0ZUFzeW5jU2NyaXB0UnVuKG9iamVjdCk6CiAgICAgICAgICAgICBz
ZWxmLmxvZ2dlci5lcnJvcigiTG9zdCBtYXJpb25ldHRlIGNvbm5lY3Rpb24gYmVmb3JlIHN0YXJ0
aW5nIHRlc3QiKQogICAgICAgICAgICAgcmV0dXJuIFN0b3AKIAotICAgICAgICBpZiB0aW1lb3V0
IGlzIG5vdCBOb25lOgotICAgICAgICAgICAgd2FpdF90aW1lb3V0ID0gdGltZW91dCArIDIgKiBl
eHRyYV90aW1lb3V0Ci0gICAgICAgIGVsc2U6Ci0gICAgICAgICAgICB3YWl0X3RpbWVvdXQgPSBO
b25lCi0KLSAgICAgICAgdGltZXIgPSB0aHJlYWRpbmcuVGltZXIod2FpdF90aW1lb3V0LCBzZWxm
Ll90aW1lb3V0KQotICAgICAgICB0aW1lci5zdGFydCgpCi0KLSAgICAgICAgc2VsZi5fcnVuKCkK
LQotICAgICAgICBzZWxmLnJlc3VsdF9mbGFnLndhaXQoKQotICAgICAgICB0aW1lci5jYW5jZWwo
KQotCi0gICAgICAgIGlmIHNlbGYucmVzdWx0ID09IChOb25lLCBOb25lKToKLSAgICAgICAgICAg
IHNlbGYubG9nZ2VyLmRlYnVnKCJUaW1lZCBvdXQgd2FpdGluZyBmb3IgYSByZXN1bHQiKQotICAg
ICAgICAgICAgc2VsZi5yZXN1bHQgPSBGYWxzZSwgKCJFWFRFUk5BTC1USU1FT1VUIiwgTm9uZSkK
LSAgICAgICAgZWxpZiBzZWxmLnJlc3VsdFsxXSBpcyBOb25lOgotICAgICAgICAgICAgIyBXZSBk
aWRuJ3QgZ2V0IGFueSBkYXRhIGJhY2sgZnJvbSB0aGUgdGVzdCwgc28gY2hlY2sgaWYgdGhlCi0g
ICAgICAgICAgICAjIGJyb3dzZXIgaXMgc3RpbGwgcmVzcG9uc2l2ZQotICAgICAgICAgICAgaWYg
c2VsZi5wcm90b2NvbC5pc19hbGl2ZToKLSAgICAgICAgICAgICAgICBzZWxmLnJlc3VsdCA9IEZh
bHNlLCAoIklOVEVSTkFMLUVSUk9SIiwgTm9uZSkKLSAgICAgICAgICAgIGVsc2U6Ci0gICAgICAg
ICAgICAgICAgc2VsZi5yZXN1bHQgPSBGYWxzZSwgKCJDUkFTSCIsIE5vbmUpCi0gICAgICAgIHJl
dHVybiBzZWxmLnJlc3VsdAorICAgIGRlZiBiZWZvcmVfcnVuKHNlbGYpOgorICAgICAgICBpbmRl
eCA9IHNlbGYudXJsLnJmaW5kKCIvc3RvcmFnZS8iKQorICAgICAgICBpZiBpbmRleCAhPSAtMToK
KyAgICAgICAgICAgICMgQ2xlYXIgc3RvcmFnZQorICAgICAgICAgICAgc2VsZi5wcm90b2NvbC5z
dG9yYWdlLmNsZWFyX29yaWdpbihzZWxmLnVybCkKIAotICAgIGRlZiBfcnVuKHNlbGYpOgorICAg
IGRlZiBydW5fZnVuYyhzZWxmKToKICAgICAgICAgdHJ5OgogICAgICAgICAgICAgc2VsZi5yZXN1
bHQgPSBUcnVlLCBzZWxmLmZ1bmMoc2VsZi5wcm90b2NvbCwgc2VsZi51cmwsIHNlbGYudGltZW91
dCkKICAgICAgICAgZXhjZXB0IGVycm9ycy5TY3JpcHRUaW1lb3V0RXhjZXB0aW9uOgogICAgICAg
ICAgICAgc2VsZi5sb2dnZXIuZGVidWcoIkdvdCBhIG1hcmlvbmV0dGUgdGltZW91dCIpCiAgICAg
ICAgICAgICBzZWxmLnJlc3VsdCA9IEZhbHNlLCAoIkVYVEVSTkFMLVRJTUVPVVQiLCBOb25lKQot
ICAgICAgICBleGNlcHQgKHNvY2tldC50aW1lb3V0LCBJT0Vycm9yKToKKyAgICAgICAgZXhjZXB0
IElPRXJyb3I6CiAgICAgICAgICAgICAjIFRoaXMgY2FuIGhhcHBlbiBvbiBhIGNyYXNoCiAgICAg
ICAgICAgICAjIEFsc28sIHNob3VsZCBjaGVjayBhZnRlciB0aGUgdGVzdCBpZiB0aGUgZmlyZWZv
eCBwcm9jZXNzIGlzIHN0aWxsIHJ1bm5pbmcKICAgICAgICAgICAgICMgYW5kIG90aGVyd2lzZSBp
Z25vcmUgYW55IG90aGVyIHJlc3VsdCBhbmQgc2V0IGl0IHRvIGNyYXNoCisgICAgICAgICAgICBz
ZWxmLmxvZ2dlci5pbmZvKCJJT0Vycm9yIG9uIGNvbW1hbmQsIHNldHRpbmcgc3RhdHVzIHRvIENS
QVNIIikKKyAgICAgICAgICAgIHNlbGYucmVzdWx0ID0gRmFsc2UsICgiQ1JBU0giLCBOb25lKQor
ICAgICAgICBleGNlcHQgZXJyb3JzLk5vU3VjaFdpbmRvd0V4Y2VwdGlvbjoKKyAgICAgICAgICAg
IHNlbGYubG9nZ2VyLmluZm8oIk5vU3VjaFdpbmRvd0V4Y2VwdGlvbiBvbiBjb21tYW5kLCBzZXR0
aW5nIHN0YXR1cyB0byBDUkFTSCIpCiAgICAgICAgICAgICBzZWxmLnJlc3VsdCA9IEZhbHNlLCAo
IkNSQVNIIiwgTm9uZSkKICAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBlOgotICAgICAgICAg
ICAgbWVzc2FnZSA9IGdldGF0dHIoZSwgIm1lc3NhZ2UiLCAiIikKLSAgICAgICAgICAgIGlmIG1l
c3NhZ2U6Ci0gICAgICAgICAgICAgICAgbWVzc2FnZSArPSAiXG4iCi0gICAgICAgICAgICBtZXNz
YWdlICs9IHRyYWNlYmFjay5mb3JtYXRfZXhjKGUpCi0gICAgICAgICAgICBzZWxmLmxvZ2dlci53
YXJuaW5nKG1lc3NhZ2UpCi0gICAgICAgICAgICBzZWxmLnJlc3VsdCA9IEZhbHNlLCAoIklOVEVS
TkFMLUVSUk9SIiwgTm9uZSkKLQorICAgICAgICAgICAgaWYgaXNpbnN0YW5jZShlLCBlcnJvcnMu
SmF2YXNjcmlwdEV4Y2VwdGlvbikgYW5kIGUubWVzc2FnZS5zdGFydHN3aXRoKCJEb2N1bWVudCB3
YXMgdW5sb2FkZWQiKToKKyAgICAgICAgICAgICAgICBtZXNzYWdlID0gIkRvY3VtZW50IHVubG9h
ZGVkOyBtYXliZSB0ZXN0IG5hdmlnYXRlZCB0aGUgdG9wLWxldmVsLWJyb3dzaW5nIGNvbnRleHQ/
IgorICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICBtZXNzYWdlID0gZ2V0YXR0cihl
LCAibWVzc2FnZSIsICIiKQorICAgICAgICAgICAgICAgIGlmIG1lc3NhZ2U6CisgICAgICAgICAg
ICAgICAgICAgIG1lc3NhZ2UgKz0gIlxuIgorICAgICAgICAgICAgICAgIG1lc3NhZ2UgKz0gdHJh
Y2ViYWNrLmZvcm1hdF9leGMoZSkKKyAgICAgICAgICAgICAgICBzZWxmLmxvZ2dlci53YXJuaW5n
KHRyYWNlYmFjay5mb3JtYXRfZXhjKCkpCisgICAgICAgICAgICBzZWxmLnJlc3VsdCA9IEZhbHNl
LCAoIklOVEVSTkFMLUVSUk9SIiwgbWVzc2FnZSkKICAgICAgICAgZmluYWxseToKICAgICAgICAg
ICAgIHNlbGYucmVzdWx0X2ZsYWcuc2V0KCkKIAotICAgIGRlZiBfdGltZW91dChzZWxmKToKLSAg
ICAgICAgc2VsZi5yZXN1bHQgPSBGYWxzZSwgKCJFWFRFUk5BTC1USU1FT1VUIiwgTm9uZSkKLSAg
ICAgICAgc2VsZi5yZXN1bHRfZmxhZy5zZXQoKQotCiAKIGNsYXNzIE1hcmlvbmV0dGVUZXN0aGFy
bmVzc0V4ZWN1dG9yKFRlc3RoYXJuZXNzRXhlY3V0b3IpOgogICAgIHN1cHBvcnRzX3Rlc3Rkcml2
ZXIgPSBUcnVlCkBAIC01OTgsOSArNjI4LDE0IEBAIGNsYXNzIE1hcmlvbmV0dGVUZXN0aGFybmVz
c0V4ZWN1dG9yKFRlc3RoYXJuZXNzRXhlY3V0b3IpOgogICAgICAgICBUZXN0aGFybmVzc0V4ZWN1
dG9yLl9faW5pdF9fKHNlbGYsIGJyb3dzZXIsIHNlcnZlcl9jb25maWcsCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgdGltZW91dF9tdWx0aXBsaWVyPXRpbWVvdXRfbXVsdGlw
bGllciwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWJ1Z19pbmZvPWRl
YnVnX2luZm8pCi0gICAgICAgIHNlbGYucHJvdG9jb2wgPSBNYXJpb25ldHRlUHJvdG9jb2woc2Vs
ZiwgYnJvd3NlciwgY2FwYWJpbGl0aWVzLCB0aW1lb3V0X211bHRpcGxpZXIsIGt3YXJnc1siZTEw
cyJdLCBjY292KQotICAgICAgICBzZWxmLnNjcmlwdCA9IG9wZW4ob3MucGF0aC5qb2luKGhlcmUs
ICJ0ZXN0aGFybmVzc193ZWJkcml2ZXIuanMiKSkucmVhZCgpCi0gICAgICAgIHNlbGYuc2NyaXB0
X3Jlc3VtZSA9IG9wZW4ob3MucGF0aC5qb2luKGhlcmUsICJ0ZXN0aGFybmVzc193ZWJkcml2ZXJf
cmVzdW1lLmpzIikpLnJlYWQoKQorICAgICAgICBzZWxmLnByb3RvY29sID0gTWFyaW9uZXR0ZVBy
b3RvY29sKHNlbGYsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
YnJvd3NlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYXBh
YmlsaXRpZXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGlt
ZW91dF9tdWx0aXBsaWVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGt3YXJnc1siZTEwcyJdLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGNjb3YpCisgICAgICAgIHdpdGggb3Blbihvcy5wYXRoLmpvaW4oaGVyZSwgInRlc3Ro
YXJuZXNzX3dlYmRyaXZlcl9yZXN1bWUuanMiKSkgYXMgZjoKKyAgICAgICAgICAgIHNlbGYuc2Ny
aXB0X3Jlc3VtZSA9IGYucmVhZCgpCiAgICAgICAgIHNlbGYuY2xvc2VfYWZ0ZXJfZG9uZSA9IGNs
b3NlX2FmdGVyX2RvbmUKICAgICAgICAgc2VsZi53aW5kb3dfaWQgPSBzdHIodXVpZC51dWlkNCgp
KQogICAgICAgICBzZWxmLmRlYnVnID0gZGVidWcKQEAgLTYxMCw2ICs2NDUsMTAgQEAgY2xhc3Mg
TWFyaW9uZXR0ZVRlc3RoYXJuZXNzRXhlY3V0b3IoVGVzdGhhcm5lc3NFeGVjdXRvcik6CiAgICAg
ICAgIGlmIG1hcmlvbmV0dGUgaXMgTm9uZToKICAgICAgICAgICAgIGRvX2RlbGF5ZWRfaW1wb3J0
cygpCiAKKyAgICBkZWYgc2V0dXAoc2VsZiwgcnVubmVyKToKKyAgICAgICAgc3VwZXIoTWFyaW9u
ZXR0ZVRlc3RoYXJuZXNzRXhlY3V0b3IsIHNlbGYpLnNldHVwKHJ1bm5lcikKKyAgICAgICAgc2Vs
Zi5wcm90b2NvbC50ZXN0aGFybmVzcy5sb2FkX3J1bm5lcihzZWxmLmxhc3RfZW52aXJvbm1lbnRb
InByb3RvY29sIl0pCisKICAgICBkZWYgaXNfYWxpdmUoc2VsZik6CiAgICAgICAgIHJldHVybiBz
ZWxmLnByb3RvY29sLmlzX2FsaXZlCiAKQEAgLTYyNyw3ICs2NjYsOCBAQCBjbGFzcyBNYXJpb25l
dHRlVGVzdGhhcm5lc3NFeGVjdXRvcihUZXN0aGFybmVzc0V4ZWN1dG9yKToKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmRvX3Rlc3RoYXJuZXNzLAog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYucHJvdG9j
b2wsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi50
ZXN0X3VybCh0ZXN0KSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICB0aW1lb3V0KS5ydW4oKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHRpbWVvdXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgc2VsZi5leHRyYV90aW1lb3V0KS5ydW4oKQogICAgICAgICAjIFRoZSBmb3JtYXQg
b2YgZGF0YSBkZXBlbmRzIG9uIHdoZXRoZXIgdGhlIHRlc3QgcmFuIHRvIGNvbXBsZXRpb24gb3Ig
bm90CiAgICAgICAgICMgRm9yIGFzc2VydHMgd2Ugb25seSBjYXJlIGFib3V0IHRoZSBmYWN0IHRo
YXQgaWYgaXQgZGlkbid0IGNvbXBsZXRlLCB0aGUKICAgICAgICAgIyBzdGF0dXMgaXMgaW4gdGhl
IGZpcnN0IGZpZWxkLgpAQCAtNjQ3LDMzICs2ODcsMjIgQEAgY2xhc3MgTWFyaW9uZXR0ZVRlc3Ro
YXJuZXNzRXhlY3V0b3IoVGVzdGhhcm5lc3NFeGVjdXRvcik6CiAgICAgICAgIHJldHVybiAodGVz
dC5yZXN1bHRfY2xzKGV4dHJhPWV4dHJhLCAqZGF0YSksIFtdKQogCiAgICAgZGVmIGRvX3Rlc3Ro
YXJuZXNzKHNlbGYsIHByb3RvY29sLCB1cmwsIHRpbWVvdXQpOgotICAgICAgICBwcm90b2NvbC5i
YXNlLmV4ZWN1dGVfc2NyaXB0KCJpZiAod2luZG93Lndpbikge3dpbmRvdy53aW4uY2xvc2UoKX0i
KQogICAgICAgICBwYXJlbnRfd2luZG93ID0gcHJvdG9jb2wudGVzdGhhcm5lc3MuY2xvc2Vfb2xk
X3dpbmRvd3MocHJvdG9jb2wpCiAKLSAgICAgICAgaWYgdGltZW91dCBpcyBub3QgTm9uZToKLSAg
ICAgICAgICAgIHRpbWVvdXRfbXMgPSBzdHIodGltZW91dCAqIDEwMDApCi0gICAgICAgIGVsc2U6
Ci0gICAgICAgICAgICB0aW1lb3V0X21zID0gIm51bGwiCi0KICAgICAgICAgaWYgc2VsZi5wcm90
b2NvbC5jb3ZlcmFnZS5pc19lbmFibGVkOgogICAgICAgICAgICAgc2VsZi5wcm90b2NvbC5jb3Zl
cmFnZS5yZXNldCgpCiAKLSAgICAgICAgZm9ybWF0X21hcCA9IHsiYWJzX3VybCI6IHVybCwKLSAg
ICAgICAgICAgICAgICAgICAgICAidXJsIjogc3RyaXBfc2VydmVyKHVybCksCi0gICAgICAgICAg
ICAgICAgICAgICAgIndpbmRvd19pZCI6IHNlbGYud2luZG93X2lkLAotICAgICAgICAgICAgICAg
ICAgICAgICJ0aW1lb3V0X211bHRpcGxpZXIiOiBzZWxmLnRpbWVvdXRfbXVsdGlwbGllciwKLSAg
ICAgICAgICAgICAgICAgICAgICAidGltZW91dCI6IHRpbWVvdXRfbXMsCi0gICAgICAgICAgICAg
ICAgICAgICAgImV4cGxpY2l0X3RpbWVvdXQiOiB0aW1lb3V0IGlzIE5vbmV9Ci0KLSAgICAgICAg
c2NyaXB0ID0gc2VsZi5zY3JpcHQgJSBmb3JtYXRfbWFwCi0KLSAgICAgICAgcnYgPSBwcm90b2Nv
bC5iYXNlLmV4ZWN1dGVfc2NyaXB0KHNjcmlwdCkKLSAgICAgICAgdGVzdF93aW5kb3cgPSBwcm90
b2NvbC50ZXN0aGFybmVzcy5nZXRfdGVzdF93aW5kb3coc2VsZi53aW5kb3dfaWQsIHBhcmVudF93
aW5kb3cpCisgICAgICAgIGZvcm1hdF9tYXAgPSB7InVybCI6IHN0cmlwX3NlcnZlcih1cmwpfQog
CisgICAgICAgIHByb3RvY29sLmJhc2UuZXhlY3V0ZV9zY3JpcHQoIndpbmRvdy5vcGVuKHVuZGVm
aW5lZCwgJyVzJywgJ25vb3BlbmVyJykiICUgc2VsZi53aW5kb3dfaWQpCisgICAgICAgIHRlc3Rf
d2luZG93ID0gcHJvdG9jb2wudGVzdGhhcm5lc3MuZ2V0X3Rlc3Rfd2luZG93KHNlbGYud2luZG93
X2lkLCBwYXJlbnRfd2luZG93LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICB0aW1lb3V0PTEwKnNlbGYudGltZW91dF9tdWx0aXBsaWVy
KQorICAgICAgICBzZWxmLnByb3RvY29sLmJhc2Uuc2V0X3dpbmRvdyh0ZXN0X3dpbmRvdykKICAg
ICAgICAgaGFuZGxlciA9IENhbGxiYWNrSGFuZGxlcihzZWxmLmxvZ2dlciwgcHJvdG9jb2wsIHRl
c3Rfd2luZG93KQorICAgICAgICBwcm90b2NvbC5tYXJpb25ldHRlLm5hdmlnYXRlKHVybCkKICAg
ICAgICAgd2hpbGUgVHJ1ZToKICAgICAgICAgICAgIHJlc3VsdCA9IHByb3RvY29sLmJhc2UuZXhl
Y3V0ZV9zY3JpcHQoCi0gICAgICAgICAgICAgICAgc2VsZi5zY3JpcHRfcmVzdW1lICUgZm9ybWF0
X21hcCwgYXN5bmM9VHJ1ZSkKKyAgICAgICAgICAgICAgICBzZWxmLnNjcmlwdF9yZXN1bWUgJSBm
b3JtYXRfbWFwLCBhc3luY2hyb25vdXM9VHJ1ZSkKICAgICAgICAgICAgIGlmIHJlc3VsdCBpcyBO
b25lOgogICAgICAgICAgICAgICAgICMgVGhpcyBjYW4gaGFwcGVuIGlmIHdlIGdldCBhbiBjb250
ZW50IHByb2Nlc3MgY3Jhc2gKICAgICAgICAgICAgICAgICByZXR1cm4gTm9uZQpAQCAtNzE3LDcg
Kzc0Niw3IEBAIGNsYXNzIE1hcmlvbmV0dGVSZWZUZXN0RXhlY3V0b3IoUmVmVGVzdEV4ZWN1dG9y
KToKIAogICAgICAgICB3aXRoIG9wZW4ob3MucGF0aC5qb2luKGhlcmUsICJyZWZ0ZXN0LmpzIikp
IGFzIGY6CiAgICAgICAgICAgICBzZWxmLnNjcmlwdCA9IGYucmVhZCgpCi0gICAgICAgIHdpdGgg
b3Blbihvcy5wYXRoLmpvaW4oaGVyZSwgInJlZnRlc3Qtd2FpdF9tYXJpb25ldHRlLmpzIikpIGFz
IGY6CisgICAgICAgIHdpdGggb3Blbihvcy5wYXRoLmpvaW4oaGVyZSwgInJlZnRlc3Qtd2FpdF93
ZWJkcml2ZXIuanMiKSkgYXMgZjoKICAgICAgICAgICAgIHNlbGYud2FpdF9zY3JpcHQgPSBmLnJl
YWQoKQogCiAgICAgZGVmIHNldHVwKHNlbGYsIHJ1bm5lcik6CkBAIC03MjcsMTIgKzc1NiwxOCBA
QCBjbGFzcyBNYXJpb25ldHRlUmVmVGVzdEV4ZWN1dG9yKFJlZlRlc3RFeGVjdXRvcik6CiAgICAg
ZGVmIHRlYXJkb3duKHNlbGYpOgogICAgICAgICB0cnk6CiAgICAgICAgICAgICBzZWxmLmltcGxl
bWVudGF0aW9uLnRlYXJkb3duKCkKLSAgICAgICAgICAgIGhhbmRsZSA9IHNlbGYucHJvdG9jb2wu
bWFyaW9uZXR0ZS53aW5kb3dfaGFuZGxlc1swXQotICAgICAgICAgICAgc2VsZi5wcm90b2NvbC5t
YXJpb25ldHRlLnN3aXRjaF90b193aW5kb3coaGFuZGxlKQorICAgICAgICAgICAgaWYgc2VsZi5w
cm90b2NvbC5tYXJpb25ldHRlIGFuZCBzZWxmLnByb3RvY29sLm1hcmlvbmV0dGUuc2Vzc2lvbl9p
ZDoKKyAgICAgICAgICAgICAgICBoYW5kbGVzID0gc2VsZi5wcm90b2NvbC5tYXJpb25ldHRlLndp
bmRvd19oYW5kbGVzCisgICAgICAgICAgICAgICAgaWYgaGFuZGxlczoKKyAgICAgICAgICAgICAg
ICAgICAgc2VsZi5wcm90b2NvbC5tYXJpb25ldHRlLnN3aXRjaF90b193aW5kb3coaGFuZGxlc1sw
XSkKICAgICAgICAgICAgIHN1cGVyKHNlbGYuX19jbGFzc19fLCBzZWxmKS50ZWFyZG93bigpCiAg
ICAgICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZToKICAgICAgICAgICAgICMgSWdub3JlIGVycm9y
cyBkdXJpbmcgdGVhcmRvd24KLSAgICAgICAgICAgIHNlbGYubG9nZ2VyLndhcm5pbmcodHJhY2Vi
YWNrLmZvcm1hdF9leGMoZSkpCisgICAgICAgICAgICBzZWxmLmxvZ2dlci53YXJuaW5nKCJFeGNl
cHRpb24gZHVyaW5nIHJlZnRlc3QgdGVhcmRvd246XG4lcyIgJQorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICB0cmFjZWJhY2suZm9ybWF0X2V4YyhlKSkKKworICAgIGRlZiByZXNldChz
ZWxmKToKKyAgICAgICAgc2VsZi5pbXBsZW1lbnRhdGlvbi5yZXNldCgqKnNlbGYuaW1wbGVtZW50
YXRpb25fa3dhcmdzKQogCiAgICAgZGVmIGlzX2FsaXZlKHNlbGYpOgogICAgICAgICByZXR1cm4g
c2VsZi5wcm90b2NvbC5pc19hbGl2ZQpAQCAtNzcwLDcgKzgwNSw3IEBAIGNsYXNzIE1hcmlvbmV0
dGVSZWZUZXN0RXhlY3V0b3IoUmVmVGVzdEV4ZWN1dG9yKToKICAgICAgICAgcmV0dXJuIHNlbGYu
Y29udmVydF9yZXN1bHQodGVzdCwgcmVzdWx0KQogCiAgICAgZGVmIHNjcmVlbnNob3Qoc2VsZiwg
dGVzdCwgdmlld3BvcnRfc2l6ZSwgZHBpKToKLSAgICAgICAgIyBodHRwczovL2dpdGh1Yi5jb20v
dzNjL3dwdHJ1bm5lci9pc3N1ZXMvMTY2CisgICAgICAgICMgaHR0cHM6Ly9naXRodWIuY29tL3dl
Yi1wbGF0Zm9ybS10ZXN0cy93cHQvaXNzdWVzLzcxMzUKICAgICAgICAgYXNzZXJ0IHZpZXdwb3J0
X3NpemUgaXMgTm9uZQogICAgICAgICBhc3NlcnQgZHBpIGlzIE5vbmUKIApAQCAtNzgyLDEyICs4
MTcsMTMgQEAgY2xhc3MgTWFyaW9uZXR0ZVJlZlRlc3RFeGVjdXRvcihSZWZUZXN0RXhlY3V0b3Ip
OgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuX3NjcmVlbnNob3Qs
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5wcm90b2NvbCwKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0X3VybCwKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICB0aW1lb3V0KS5ydW4oKQorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHRpbWVvdXQsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgc2VsZi5leHRyYV90aW1lb3V0KS5ydW4oKQogCiAgICAgZGVmIF9zY3JlZW5z
aG90KHNlbGYsIHByb3RvY29sLCB1cmwsIHRpbWVvdXQpOgogICAgICAgICBwcm90b2NvbC5tYXJp
b25ldHRlLm5hdmlnYXRlKHVybCkKIAotICAgICAgICBwcm90b2NvbC5iYXNlLmV4ZWN1dGVfc2Ny
aXB0KHNlbGYud2FpdF9zY3JpcHQsIGFzeW5jPVRydWUpCisgICAgICAgIHByb3RvY29sLmJhc2Uu
ZXhlY3V0ZV9zY3JpcHQoc2VsZi53YWl0X3NjcmlwdCwgYXN5bmNocm9ub3VzPVRydWUpCiAKICAg
ICAgICAgc2NyZWVuc2hvdCA9IHByb3RvY29sLm1hcmlvbmV0dGUuc2NyZWVuc2hvdChmdWxsPUZh
bHNlKQogICAgICAgICAjIHN0cmlwIG9mZiB0aGUgZGF0YTppbWcvcG5nLCBwYXJ0IG9mIHRoZSB1
cmwKQEAgLTc5Nyw3ICs4MzMsNyBAQCBjbGFzcyBNYXJpb25ldHRlUmVmVGVzdEV4ZWN1dG9yKFJl
ZlRlc3RFeGVjdXRvcik6CiAgICAgICAgIHJldHVybiBzY3JlZW5zaG90CiAKIAotY2xhc3MgSW50
ZXJuYWxSZWZUZXN0SW1wbGVtZW50YXRpb24ob2JqZWN0KToKK2NsYXNzIEludGVybmFsUmVmVGVz
dEltcGxlbWVudGF0aW9uKFJlZlRlc3RJbXBsZW1lbnRhdGlvbik6CiAgICAgZGVmIF9faW5pdF9f
KHNlbGYsIGV4ZWN1dG9yKToKICAgICAgICAgc2VsZi50aW1lb3V0X211bHRpcGxpZXIgPSBleGVj
dXRvci50aW1lb3V0X211bHRpcGxpZXIKICAgICAgICAgc2VsZi5leGVjdXRvciA9IGV4ZWN1dG9y
CkBAIC04MTUsMjYgKzg1MSw0MSBAQCBjbGFzcyBJbnRlcm5hbFJlZlRlc3RJbXBsZW1lbnRhdGlv
bihvYmplY3QpOgogICAgICAgICBzZWxmLmV4ZWN1dG9yLnByb3RvY29sLm1hcmlvbmV0dGUuc2V0
X2NvbnRleHQoc2VsZi5leGVjdXRvci5wcm90b2NvbC5tYXJpb25ldHRlLkNPTlRFWFRfQ0hST01F
KQogICAgICAgICBzZWxmLmV4ZWN1dG9yLnByb3RvY29sLm1hcmlvbmV0dGUuX3NlbmRfbWVzc2Fn
ZSgicmVmdGVzdDpzZXR1cCIsIGRhdGEpCiAKKyAgICBkZWYgcmVzZXQoc2VsZiwgc2NyZWVuc2hv
dD1Ob25lKToKKyAgICAgICAgIyB0aGlzIGlzIG9idmlvdXMgd3Jvbmc7IGl0IHNob3VsZG4ndCBi
ZSBhIG5vLW9wCisgICAgICAgICMgc2VlIGh0dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxhdGZvcm0t
dGVzdHMvd3B0L2lzc3Vlcy8xNTYwNAorICAgICAgICBwYXNzCisKICAgICBkZWYgcnVuX3Rlc3Qo
c2VsZiwgdGVzdCk6Ci0gICAgICAgIHJlZmVyZW5jZXMgPSBzZWxmLmdldF9yZWZlcmVuY2VzKHRl
c3QpCisgICAgICAgIHJlZmVyZW5jZXMgPSBzZWxmLmdldF9yZWZlcmVuY2VzKHRlc3QsIHRlc3Qp
CiAgICAgICAgIHRpbWVvdXQgPSAodGVzdC50aW1lb3V0ICogMTAwMCkgKiBzZWxmLnRpbWVvdXRf
bXVsdGlwbGllcgogICAgICAgICBydiA9IHNlbGYuZXhlY3V0b3IucHJvdG9jb2wubWFyaW9uZXR0
ZS5fc2VuZF9tZXNzYWdlKCJyZWZ0ZXN0OnJ1biIsCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyJ0ZXN0Ijogc2VsZi5leGVjdXRv
ci50ZXN0X3VybCh0ZXN0KSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgInJlZmVyZW5jZXMiOiByZWZlcmVuY2VzLAogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAi
ZXhwZWN0ZWQiOiB0ZXN0LmV4cGVjdGVkKCksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ0aW1lb3V0IjogdGltZW91dH0pWyJ2
YWx1ZSJdCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICJ0aW1lb3V0IjogdGltZW91dCwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIndpZHRoIjogODAwLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAiaGVpZ2h0IjogNjAwfSlbInZhbHVlIl0KICAgICAgICAgcmV0dXJuIHJ2CiAKLSAgICBkZWYg
Z2V0X3JlZmVyZW5jZXMoc2VsZiwgbm9kZSk6CisgICAgZGVmIGdldF9yZWZlcmVuY2VzKHNlbGYs
IHJvb3RfdGVzdCwgbm9kZSk6CiAgICAgICAgIHJ2ID0gW10KICAgICAgICAgZm9yIGl0ZW0sIHJl
bGF0aW9uIGluIG5vZGUucmVmZXJlbmNlczoKLSAgICAgICAgICAgIHJ2LmFwcGVuZChbc2VsZi5l
eGVjdXRvci50ZXN0X3VybChpdGVtKSwgc2VsZi5nZXRfcmVmZXJlbmNlcyhpdGVtKSwgcmVsYXRp
b25dKQorICAgICAgICAgICAgcnYuYXBwZW5kKFtzZWxmLmV4ZWN1dG9yLnRlc3RfdXJsKGl0ZW0p
LCBzZWxmLmdldF9yZWZlcmVuY2VzKHJvb3RfdGVzdCwgaXRlbSksIHJlbGF0aW9uLAorICAgICAg
ICAgICAgICAgICAgICAgICB7ImZ1enp5Ijogc2VsZi5nZXRfZnV6enkocm9vdF90ZXN0LCBbbm9k
ZSwgaXRlbV0sIHJlbGF0aW9uKX1dKQogICAgICAgICByZXR1cm4gcnYKIAogICAgIGRlZiB0ZWFy
ZG93bihzZWxmKToKICAgICAgICAgdHJ5OgotICAgICAgICAgICAgc2VsZi5leGVjdXRvci5wcm90
b2NvbC5tYXJpb25ldHRlLl9zZW5kX21lc3NhZ2UoInJlZnRlc3Q6dGVhcmRvd24iLCB7fSkKLSAg
ICAgICAgICAgIHNlbGYuZXhlY3V0b3IucHJvdG9jb2wubWFyaW9uZXR0ZS5zZXRfY29udGV4dChz
ZWxmLmV4ZWN1dG9yLnByb3RvY29sLm1hcmlvbmV0dGUuQ09OVEVYVF9DT05URU5UKQorICAgICAg
ICAgICAgaWYgc2VsZi5leGVjdXRvci5wcm90b2NvbC5tYXJpb25ldHRlIGFuZCBzZWxmLmV4ZWN1
dG9yLnByb3RvY29sLm1hcmlvbmV0dGUuc2Vzc2lvbl9pZDoKKyAgICAgICAgICAgICAgICBzZWxm
LmV4ZWN1dG9yLnByb3RvY29sLm1hcmlvbmV0dGUuX3NlbmRfbWVzc2FnZSgicmVmdGVzdDp0ZWFy
ZG93biIsIHt9KQorICAgICAgICAgICAgICAgIHNlbGYuZXhlY3V0b3IucHJvdG9jb2wubWFyaW9u
ZXR0ZS5zZXRfY29udGV4dChzZWxmLmV4ZWN1dG9yLnByb3RvY29sLm1hcmlvbmV0dGUuQ09OVEVY
VF9DT05URU5UKQorICAgICAgICAgICAgICAgICMgdGhlIHJlZnRlc3QgcnVubmVyIG9wZW5zL2Ns
b3NlcyBhIHdpbmRvdyB3aXRoIGZvY3VzLCBzbyBhcworICAgICAgICAgICAgICAgICMgd2l0aCBh
ZnRlciBjbG9zaW5nIGEgd2luZG93IHdlIG5lZWQgdG8gZ2l2ZSBhIG5ldyB3aW5kb3cKKyAgICAg
ICAgICAgICAgICAjIGZvY3VzCisgICAgICAgICAgICAgICAgaGFuZGxlcyA9IHNlbGYuZXhlY3V0
b3IucHJvdG9jb2wubWFyaW9uZXR0ZS53aW5kb3dfaGFuZGxlcworICAgICAgICAgICAgICAgIGlm
IGhhbmRsZXM6CisgICAgICAgICAgICAgICAgICAgIHNlbGYuZXhlY3V0b3IucHJvdG9jb2wubWFy
aW9uZXR0ZS5zd2l0Y2hfdG9fd2luZG93KGhhbmRsZXNbMF0pCiAgICAgICAgIGV4Y2VwdCBFeGNl
cHRpb24gYXMgZToKICAgICAgICAgICAgICMgSWdub3JlIGVycm9ycyBkdXJpbmcgdGVhcmRvd24K
ICAgICAgICAgICAgIHNlbGYubG9nZ2VyLndhcm5pbmcodHJhY2ViYWNrLmZvcm1hdF9leGMoZSkp
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvZXhlY3V0b3JzL2V4ZWN1dG9yc2VsZW5pdW0ucHkg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1
bm5lci93cHRydW5uZXIvZXhlY3V0b3JzL2V4ZWN1dG9yc2VsZW5pdW0ucHkKaW5kZXggZDliNjc5
NjhkZGYuLmQ2NzQ1MDE4Mjc5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvZXhlY3V0b3JzL2V4
ZWN1dG9yc2VsZW5pdW0ucHkKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2V4ZWN1dG9ycy9leGVjdXRvcnNl
bGVuaXVtLnB5CkBAIC0yLDYgKzIsNyBAQCBpbXBvcnQganNvbgogaW1wb3J0IG9zCiBpbXBvcnQg
c29ja2V0CiBpbXBvcnQgdGhyZWFkaW5nCitpbXBvcnQgdGltZQogaW1wb3J0IHRyYWNlYmFjawog
aW1wb3J0IHVybHBhcnNlCiBpbXBvcnQgdXVpZApAQCAtMTAsNyArMTEsNyBAQCBmcm9tIC5iYXNl
IGltcG9ydCAoQ2FsbGJhY2tIYW5kbGVyLAogICAgICAgICAgICAgICAgICAgIFJlZlRlc3RFeGVj
dXRvciwKICAgICAgICAgICAgICAgICAgICBSZWZUZXN0SW1wbGVtZW50YXRpb24sCiAgICAgICAg
ICAgICAgICAgICAgVGVzdGhhcm5lc3NFeGVjdXRvciwKLSAgICAgICAgICAgICAgICAgICBleHRy
YV90aW1lb3V0LAorICAgICAgICAgICAgICAgICAgIFRpbWVkUnVubmVyLAogICAgICAgICAgICAg
ICAgICAgIHN0cmlwX3NlcnZlcikKIGZyb20gLnByb3RvY29sIGltcG9ydCAoQmFzZVByb3RvY29s
UGFydCwKICAgICAgICAgICAgICAgICAgICAgICAgVGVzdGhhcm5lc3NQcm90b2NvbFBhcnQsCkBA
IC0xOCw2ICsxOSw3IEBAIGZyb20gLnByb3RvY29sIGltcG9ydCAoQmFzZVByb3RvY29sUGFydCwK
ICAgICAgICAgICAgICAgICAgICAgICAgU2VsZWN0b3JQcm90b2NvbFBhcnQsCiAgICAgICAgICAg
ICAgICAgICAgICAgIENsaWNrUHJvdG9jb2xQYXJ0LAogICAgICAgICAgICAgICAgICAgICAgICBT
ZW5kS2V5c1Byb3RvY29sUGFydCwKKyAgICAgICAgICAgICAgICAgICAgICAgQWN0aW9uU2VxdWVu
Y2VQcm90b2NvbFBhcnQsCiAgICAgICAgICAgICAgICAgICAgICAgIFRlc3REcml2ZXJQcm90b2Nv
bFBhcnQpCiBmcm9tIC4udGVzdHJ1bm5lciBpbXBvcnQgU3RvcAogCkBAIC0yNiwyMyArMjgsMjYg
QEAgaGVyZSA9IG9zLnBhdGguam9pbihvcy5wYXRoLnNwbGl0KF9fZmlsZV9fKVswXSkKIHdlYmRy
aXZlciA9IE5vbmUKIGV4Y2VwdGlvbnMgPSBOb25lCiBSZW1vdGVDb25uZWN0aW9uID0gTm9uZQor
Q29tbWFuZCA9IE5vbmUKIAogCiBkZWYgZG9fZGVsYXllZF9pbXBvcnRzKCk6CiAgICAgZ2xvYmFs
IHdlYmRyaXZlcgogICAgIGdsb2JhbCBleGNlcHRpb25zCiAgICAgZ2xvYmFsIFJlbW90ZUNvbm5l
Y3Rpb24KKyAgICBnbG9iYWwgQ29tbWFuZAogICAgIGZyb20gc2VsZW5pdW0gaW1wb3J0IHdlYmRy
aXZlcgogICAgIGZyb20gc2VsZW5pdW0uY29tbW9uIGltcG9ydCBleGNlcHRpb25zCiAgICAgZnJv
bSBzZWxlbml1bS53ZWJkcml2ZXIucmVtb3RlLnJlbW90ZV9jb25uZWN0aW9uIGltcG9ydCBSZW1v
dGVDb25uZWN0aW9uCisgICAgZnJvbSBzZWxlbml1bS53ZWJkcml2ZXIucmVtb3RlLmNvbW1hbmQg
aW1wb3J0IENvbW1hbmQKIAogCiBjbGFzcyBTZWxlbml1bUJhc2VQcm90b2NvbFBhcnQoQmFzZVBy
b3RvY29sUGFydCk6CiAgICAgZGVmIHNldHVwKHNlbGYpOgogICAgICAgICBzZWxmLndlYmRyaXZl
ciA9IHNlbGYucGFyZW50LndlYmRyaXZlcgogCi0gICAgZGVmIGV4ZWN1dGVfc2NyaXB0KHNlbGYs
IHNjcmlwdCwgYXN5bmM9RmFsc2UpOgotICAgICAgICBtZXRob2QgPSBzZWxmLndlYmRyaXZlci5l
eGVjdXRlX2FzeW5jX3NjcmlwdCBpZiBhc3luYyBlbHNlIHNlbGYud2ViZHJpdmVyLmV4ZWN1dGVf
c2NyaXB0CisgICAgZGVmIGV4ZWN1dGVfc2NyaXB0KHNlbGYsIHNjcmlwdCwgYXN5bmNocm9ub3Vz
PUZhbHNlKToKKyAgICAgICAgbWV0aG9kID0gc2VsZi53ZWJkcml2ZXIuZXhlY3V0ZV9hc3luY19z
Y3JpcHQgaWYgYXN5bmNocm9ub3VzIGVsc2Ugc2VsZi53ZWJkcml2ZXIuZXhlY3V0ZV9zY3JpcHQK
ICAgICAgICAgcmV0dXJuIG1ldGhvZChzY3JpcHQpCiAKICAgICBkZWYgc2V0X3RpbWVvdXQoc2Vs
ZiwgdGltZW91dCk6CkBAIC03Miw1MCArNzcsNjkgQEAgY2xhc3MgU2VsZW5pdW1CYXNlUHJvdG9j
b2xQYXJ0KEJhc2VQcm90b2NvbFBhcnQpOgogY2xhc3MgU2VsZW5pdW1UZXN0aGFybmVzc1Byb3Rv
Y29sUGFydChUZXN0aGFybmVzc1Byb3RvY29sUGFydCk6CiAgICAgZGVmIHNldHVwKHNlbGYpOgog
ICAgICAgICBzZWxmLndlYmRyaXZlciA9IHNlbGYucGFyZW50LndlYmRyaXZlcgorICAgICAgICBz
ZWxmLnJ1bm5lcl9oYW5kbGUgPSBOb25lCisgICAgICAgIHdpdGggb3Blbihvcy5wYXRoLmpvaW4o
aGVyZSwgInJ1bm5lci5qcyIpKSBhcyBmOgorICAgICAgICAgICAgc2VsZi5ydW5uZXJfc2NyaXB0
ID0gZi5yZWFkKCkKIAogICAgIGRlZiBsb2FkX3J1bm5lcihzZWxmLCB1cmxfcHJvdG9jb2wpOgor
ICAgICAgICBpZiBzZWxmLnJ1bm5lcl9oYW5kbGU6CisgICAgICAgICAgICBzZWxmLndlYmRyaXZl
ci5zd2l0Y2hfdG9fd2luZG93KHNlbGYucnVubmVyX2hhbmRsZSkKICAgICAgICAgdXJsID0gdXJs
cGFyc2UudXJsam9pbihzZWxmLnBhcmVudC5leGVjdXRvci5zZXJ2ZXJfdXJsKHVybF9wcm90b2Nv
bCksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIi90ZXN0aGFybmVzc19ydW5uZXIu
aHRtbCIpCiAgICAgICAgIHNlbGYubG9nZ2VyLmRlYnVnKCJMb2FkaW5nICVzIiAlIHVybCkKICAg
ICAgICAgc2VsZi53ZWJkcml2ZXIuZ2V0KHVybCkKLSAgICAgICAgc2VsZi53ZWJkcml2ZXIuZXhl
Y3V0ZV9zY3JpcHQoImRvY3VtZW50LnRpdGxlID0gJyVzJyIgJQotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICB0aHJlYWRpbmcuY3VycmVudF90aHJlYWQoKS5uYW1lLnJlcGxh
Y2UoIiciLCAnIicpKQorICAgICAgICBzZWxmLnJ1bm5lcl9oYW5kbGUgPSBzZWxmLndlYmRyaXZl
ci5jdXJyZW50X3dpbmRvd19oYW5kbGUKKyAgICAgICAgZm9ybWF0X21hcCA9IHsidGl0bGUiOiB0
aHJlYWRpbmcuY3VycmVudF90aHJlYWQoKS5uYW1lLnJlcGxhY2UoIiciLCAnIicpfQorICAgICAg
ICBzZWxmLnBhcmVudC5iYXNlLmV4ZWN1dGVfc2NyaXB0KHNlbGYucnVubmVyX3NjcmlwdCAlIGZv
cm1hdF9tYXApCiAKICAgICBkZWYgY2xvc2Vfb2xkX3dpbmRvd3Moc2VsZik6Ci0gICAgICAgIGV4
Y2x1ZGUgPSBzZWxmLndlYmRyaXZlci5jdXJyZW50X3dpbmRvd19oYW5kbGUKLSAgICAgICAgaGFu
ZGxlcyA9IFtpdGVtIGZvciBpdGVtIGluIHNlbGYud2ViZHJpdmVyLndpbmRvd19oYW5kbGVzIGlm
IGl0ZW0gIT0gZXhjbHVkZV0KKyAgICAgICAgaGFuZGxlcyA9IFtpdGVtIGZvciBpdGVtIGluIHNl
bGYud2ViZHJpdmVyLndpbmRvd19oYW5kbGVzIGlmIGl0ZW0gIT0gc2VsZi5ydW5uZXJfaGFuZGxl
XQogICAgICAgICBmb3IgaGFuZGxlIGluIGhhbmRsZXM6CiAgICAgICAgICAgICB0cnk6CiAgICAg
ICAgICAgICAgICAgc2VsZi53ZWJkcml2ZXIuc3dpdGNoX3RvX3dpbmRvdyhoYW5kbGUpCiAgICAg
ICAgICAgICAgICAgc2VsZi53ZWJkcml2ZXIuY2xvc2UoKQogICAgICAgICAgICAgZXhjZXB0IGV4
Y2VwdGlvbnMuTm9TdWNoV2luZG93RXhjZXB0aW9uOgogICAgICAgICAgICAgICAgIHBhc3MKLSAg
ICAgICAgc2VsZi53ZWJkcml2ZXIuc3dpdGNoX3RvX3dpbmRvdyhleGNsdWRlKQotICAgICAgICBy
ZXR1cm4gZXhjbHVkZQotCi0gICAgZGVmIGdldF90ZXN0X3dpbmRvdyhzZWxmLCB3aW5kb3dfaWQs
IHBhcmVudCk6CisgICAgICAgIHNlbGYud2ViZHJpdmVyLnN3aXRjaF90b193aW5kb3coc2VsZi5y
dW5uZXJfaGFuZGxlKQorICAgICAgICByZXR1cm4gc2VsZi5ydW5uZXJfaGFuZGxlCisKKyAgICBk
ZWYgZ2V0X3Rlc3Rfd2luZG93KHNlbGYsIHdpbmRvd19pZCwgcGFyZW50LCB0aW1lb3V0PTUpOgor
ICAgICAgICAiIiJGaW5kIHRoZSB0ZXN0IHdpbmRvdyBhbW9uZ3N0IGFsbCB0aGUgb3BlbiB3aW5k
b3dzLgorICAgICAgICBUaGlzIGlzIGFzc3VtZWQgdG8gYmUgZWl0aGVyIHRoZSBuYW1lZCB3aW5k
b3cgb3IgdGhlIG9uZSBhZnRlciB0aGUgcGFyZW50IGluIHRoZSBsaXN0IG9mCisgICAgICAgIHdp
bmRvdyBoYW5kbGVzCisKKyAgICAgICAgOnBhcmFtIHdpbmRvd19pZDogVGhlIERPTSBuYW1lIG9m
IHRoZSBXaW5kb3cKKyAgICAgICAgOnBhcmFtIHBhcmVudDogVGhlIGhhbmRsZSBvZiB0aGUgcnVu
bmVyIHdpbmRvdworICAgICAgICA6cGFyYW0gdGltZW91dDogVGhlIHRpbWUgaW4gc2Vjb25kcyB0
byB3YWl0IGZvciB0aGUgd2luZG93IHRvIGFwcGVhci4gVGhpcyBpcyBiZWNhdXNlIGluCisgICAg
ICAgICAgICAgICAgICAgICAgICBzb21lIGltcGxlbWVudGF0aW9ucyB0aGVyZSdzIGEgcmFjZSBi
ZXR3ZWVuIGNhbGxpbmcgd2luZG93Lm9wZW4gYW5kIHRoZQorICAgICAgICAgICAgICAgICAgICAg
ICAgd2luZG93IGJlaW5nIGFkZGVkIHRvIHRoZSBsaXN0IG9mIFdlYkRyaXZlciBhY2Nlc3NpYmxl
IHdpbmRvd3MuIiIiCiAgICAgICAgIHRlc3Rfd2luZG93ID0gTm9uZQotICAgICAgICBpZiB3aW5k
b3dfaWQ6CisgICAgICAgIGVuZF90aW1lID0gdGltZS50aW1lKCkgKyB0aW1lb3V0CisgICAgICAg
IHdoaWxlIHRpbWUudGltZSgpIDwgZW5kX3RpbWU6CiAgICAgICAgICAgICB0cnk6Ci0gICAgICAg
ICAgICAgICAgIyBUcnkgdGhpcywgaXQncyBpbiBMZXZlbCAxIGJ1dCBub3RoaW5nIHN1cHBvcnRz
IGl0IHlldAotICAgICAgICAgICAgICAgIHdpbl9zID0gc2VsZi53ZWJkcml2ZXIuZXhlY3V0ZV9z
Y3JpcHQoInJldHVybiB3aW5kb3dbJyVzJ107IiAlIHNlbGYud2luZG93X2lkKQorICAgICAgICAg
ICAgICAgICMgVHJ5IHVzaW5nIHRoZSBKU09OIHNlcmlhbGl6YXRpb24gb2YgdGhlIFdpbmRvd1By
b3h5IG9iamVjdCwKKyAgICAgICAgICAgICAgICAjIGl0J3MgaW4gTGV2ZWwgMSBidXQgbm90aGlu
ZyBzdXBwb3J0cyBpdCB5ZXQKKyAgICAgICAgICAgICAgICB3aW5fcyA9IHNlbGYud2ViZHJpdmVy
LmV4ZWN1dGVfc2NyaXB0KCJyZXR1cm4gd2luZG93WyclcyddOyIgJSB3aW5kb3dfaWQpCiAgICAg
ICAgICAgICAgICAgd2luX29iaiA9IGpzb24ubG9hZHMod2luX3MpCiAgICAgICAgICAgICAgICAg
dGVzdF93aW5kb3cgPSB3aW5fb2JqWyJ3aW5kb3ctZmNjNi0xMWU1LWI0ZjgtMzMwYTg4YWI5ZDdm
Il0KICAgICAgICAgICAgIGV4Y2VwdCBFeGNlcHRpb246CiAgICAgICAgICAgICAgICAgcGFzcwog
Ci0gICAgICAgIGlmIHRlc3Rfd2luZG93IGlzIE5vbmU6Ci0gICAgICAgICAgICBhZnRlciA9IHNl
bGYud2ViZHJpdmVyLndpbmRvd19oYW5kbGVzCi0gICAgICAgICAgICBpZiBsZW4oYWZ0ZXIpID09
IDI6Ci0gICAgICAgICAgICAgICAgdGVzdF93aW5kb3cgPSBuZXh0KGl0ZXIoc2V0KGFmdGVyKSAt
IHNldChbcGFyZW50XSkpKQotICAgICAgICAgICAgZWxpZiBhZnRlclswXSA9PSBwYXJlbnQgYW5k
IGxlbihhZnRlcikgPiAyOgotICAgICAgICAgICAgICAgICMgSG9wZSB0aGUgZmlyc3Qgb25lIGhl
cmUgaXMgdGhlIHRlc3Qgd2luZG93Ci0gICAgICAgICAgICAgICAgdGVzdF93aW5kb3cgPSBhZnRl
clsxXQotICAgICAgICAgICAgZWxzZToKLSAgICAgICAgICAgICAgICByYWlzZSBFeGNlcHRpb24o
InVuYWJsZSB0byBmaW5kIHRlc3Qgd2luZG93IikKKyAgICAgICAgICAgIGlmIHRlc3Rfd2luZG93
IGlzIE5vbmU6CisgICAgICAgICAgICAgICAgYWZ0ZXIgPSBzZWxmLndlYmRyaXZlci53aW5kb3df
aGFuZGxlcworICAgICAgICAgICAgICAgIGlmIGxlbihhZnRlcikgPT0gMjoKKyAgICAgICAgICAg
ICAgICAgICAgdGVzdF93aW5kb3cgPSBuZXh0KGl0ZXIoc2V0KGFmdGVyKSAtIHtwYXJlbnR9KSkK
KyAgICAgICAgICAgICAgICBlbGlmIGFmdGVyWzBdID09IHBhcmVudCBhbmQgbGVuKGFmdGVyKSA+
IDI6CisgICAgICAgICAgICAgICAgICAgICMgSG9wZSB0aGUgZmlyc3Qgb25lIGhlcmUgaXMgdGhl
IHRlc3Qgd2luZG93CisgICAgICAgICAgICAgICAgICAgIHRlc3Rfd2luZG93ID0gYWZ0ZXJbMV0K
KworICAgICAgICAgICAgaWYgdGVzdF93aW5kb3cgaXMgbm90IE5vbmU6CisgICAgICAgICAgICAg
ICAgYXNzZXJ0IHRlc3Rfd2luZG93ICE9IHBhcmVudAorICAgICAgICAgICAgICAgIHJldHVybiB0
ZXN0X3dpbmRvdworCisgICAgICAgICAgICB0aW1lLnNsZWVwKDAuMSkKIAotICAgICAgICBhc3Nl
cnQgdGVzdF93aW5kb3cgIT0gcGFyZW50Ci0gICAgICAgIHJldHVybiB0ZXN0X3dpbmRvdworICAg
ICAgICByYWlzZSBFeGNlcHRpb24oInVuYWJsZSB0byBmaW5kIHRlc3Qgd2luZG93IikKIAogCiBj
bGFzcyBTZWxlbml1bVNlbGVjdG9yUHJvdG9jb2xQYXJ0KFNlbGVjdG9yUHJvdG9jb2xQYXJ0KToK
QEAgLTEyNSw2ICsxNDksOSBAQCBjbGFzcyBTZWxlbml1bVNlbGVjdG9yUHJvdG9jb2xQYXJ0KFNl
bGVjdG9yUHJvdG9jb2xQYXJ0KToKICAgICBkZWYgZWxlbWVudHNfYnlfc2VsZWN0b3Ioc2VsZiwg
c2VsZWN0b3IpOgogICAgICAgICByZXR1cm4gc2VsZi53ZWJkcml2ZXIuZmluZF9lbGVtZW50c19i
eV9jc3Nfc2VsZWN0b3Ioc2VsZWN0b3IpCiAKKyAgICBkZWYgZWxlbWVudHNfYnlfc2VsZWN0b3Jf
YW5kX2ZyYW1lKHNlbGYsIGVsZW1lbnRfc2VsZWN0b3IsIGZyYW1lKToKKyAgICAgICAgcmV0dXJu
IHNlbGYud2ViZHJpdmVyLmZpbmRfZWxlbWVudHNfYnlfY3NzX3NlbGVjdG9yKGVsZW1lbnRfc2Vs
ZWN0b3IpCisKIAogY2xhc3MgU2VsZW5pdW1DbGlja1Byb3RvY29sUGFydChDbGlja1Byb3RvY29s
UGFydCk6CiAgICAgZGVmIHNldHVwKHNlbGYpOgpAQCAtMTMzLDYgKzE2MCw3IEBAIGNsYXNzIFNl
bGVuaXVtQ2xpY2tQcm90b2NvbFBhcnQoQ2xpY2tQcm90b2NvbFBhcnQpOgogICAgIGRlZiBlbGVt
ZW50KHNlbGYsIGVsZW1lbnQpOgogICAgICAgICByZXR1cm4gZWxlbWVudC5jbGljaygpCiAKKwog
Y2xhc3MgU2VsZW5pdW1TZW5kS2V5c1Byb3RvY29sUGFydChTZW5kS2V5c1Byb3RvY29sUGFydCk6
CiAgICAgZGVmIHNldHVwKHNlbGYpOgogICAgICAgICBzZWxmLndlYmRyaXZlciA9IHNlbGYucGFy
ZW50LndlYmRyaXZlcgpAQCAtMTQxLDYgKzE2OSwxNCBAQCBjbGFzcyBTZWxlbml1bVNlbmRLZXlz
UHJvdG9jb2xQYXJ0KFNlbmRLZXlzUHJvdG9jb2xQYXJ0KToKICAgICAgICAgcmV0dXJuIGVsZW1l
bnQuc2VuZF9rZXlzKGtleXMpCiAKIAorY2xhc3MgU2VsZW5pdW1BY3Rpb25TZXF1ZW5jZVByb3Rv
Y29sUGFydChBY3Rpb25TZXF1ZW5jZVByb3RvY29sUGFydCk6CisgICAgZGVmIHNldHVwKHNlbGYp
OgorICAgICAgICBzZWxmLndlYmRyaXZlciA9IHNlbGYucGFyZW50LndlYmRyaXZlcgorCisgICAg
ZGVmIHNlbmRfYWN0aW9ucyhzZWxmLCBhY3Rpb25zKToKKyAgICAgICAgc2VsZi53ZWJkcml2ZXIu
ZXhlY3V0ZShDb21tYW5kLlczQ19BQ1RJT05TLCB7ImFjdGlvbnMiOiBhY3Rpb25zfSkKKworCiBj
bGFzcyBTZWxlbml1bVRlc3REcml2ZXJQcm90b2NvbFBhcnQoVGVzdERyaXZlclByb3RvY29sUGFy
dCk6CiAgICAgZGVmIHNldHVwKHNlbGYpOgogICAgICAgICBzZWxmLndlYmRyaXZlciA9IHNlbGYu
cGFyZW50LndlYmRyaXZlcgpAQCAtMTYxLDcgKzE5Nyw4IEBAIGNsYXNzIFNlbGVuaXVtUHJvdG9j
b2woUHJvdG9jb2wpOgogICAgICAgICAgICAgICAgICAgU2VsZW5pdW1TZWxlY3RvclByb3RvY29s
UGFydCwKICAgICAgICAgICAgICAgICAgIFNlbGVuaXVtQ2xpY2tQcm90b2NvbFBhcnQsCiAgICAg
ICAgICAgICAgICAgICBTZWxlbml1bVNlbmRLZXlzUHJvdG9jb2xQYXJ0LAotICAgICAgICAgICAg
ICAgICAgU2VsZW5pdW1UZXN0RHJpdmVyUHJvdG9jb2xQYXJ0XQorICAgICAgICAgICAgICAgICAg
U2VsZW5pdW1UZXN0RHJpdmVyUHJvdG9jb2xQYXJ0LAorICAgICAgICAgICAgICAgICAgU2VsZW5p
dW1BY3Rpb25TZXF1ZW5jZVByb3RvY29sUGFydF0KIAogICAgIGRlZiBfX2luaXRfXyhzZWxmLCBl
eGVjdXRvciwgYnJvd3NlciwgY2FwYWJpbGl0aWVzLCAqKmt3YXJncyk6CiAgICAgICAgIGRvX2Rl
bGF5ZWRfaW1wb3J0cygpCkBAIC0xNzksOSArMjE2LDYgQEAgY2xhc3MgU2VsZW5pdW1Qcm90b2Nv
bChQcm90b2NvbCk6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzb2x2ZV9pcD1GYWxzZSksCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZXNpcmVkX2NhcGFiaWxpdGll
cz1zZWxmLmNhcGFiaWxpdGllcykKIAotICAgIGRlZiBhZnRlcl9jb25lY3Qoc2VsZik6Ci0gICAg
ICAgIHBhc3MKLQogICAgIGRlZiB0ZWFyZG93bihzZWxmKToKICAgICAgICAgc2VsZi5sb2dnZXIu
ZGVidWcoIkhhbmdpbmcgdXAgb24gU2VsZW5pdW0gc2Vzc2lvbiIpCiAgICAgICAgIHRyeToKQEAg
LTIwMywzNSArMjM3LDE3IEBAIGNsYXNzIFNlbGVuaXVtUHJvdG9jb2woUHJvdG9jb2wpOgogICAg
ICAgICBzZWxmLnRlc3RoYXJuZXNzLmxvYWRfcnVubmVyKHNlbGYuZXhlY3V0b3IubGFzdF9lbnZp
cm9ubWVudFsicHJvdG9jb2wiXSkKIAogCi1jbGFzcyBTZWxlbml1bVJ1bihvYmplY3QpOgotICAg
IGRlZiBfX2luaXRfXyhzZWxmLCBmdW5jLCBwcm90b2NvbCwgdXJsLCB0aW1lb3V0KToKLSAgICAg
ICAgc2VsZi5mdW5jID0gZnVuYwotICAgICAgICBzZWxmLnJlc3VsdCA9IE5vbmUKLSAgICAgICAg
c2VsZi5wcm90b2NvbCA9IHByb3RvY29sCi0gICAgICAgIHNlbGYudXJsID0gdXJsCi0gICAgICAg
IHNlbGYudGltZW91dCA9IHRpbWVvdXQKLSAgICAgICAgc2VsZi5yZXN1bHRfZmxhZyA9IHRocmVh
ZGluZy5FdmVudCgpCi0KLSAgICBkZWYgcnVuKHNlbGYpOgorY2xhc3MgU2VsZW5pdW1SdW4oVGlt
ZWRSdW5uZXIpOgorICAgIGRlZiBzZXRfdGltZW91dChzZWxmKToKICAgICAgICAgdGltZW91dCA9
IHNlbGYudGltZW91dAogCiAgICAgICAgIHRyeToKLSAgICAgICAgICAgIHNlbGYucHJvdG9jb2wu
YmFzZS5zZXRfdGltZW91dCgodGltZW91dCArIGV4dHJhX3RpbWVvdXQpKQorICAgICAgICAgICAg
c2VsZi5wcm90b2NvbC5iYXNlLnNldF90aW1lb3V0KHRpbWVvdXQgKyBzZWxmLmV4dHJhX3RpbWVv
dXQpCiAgICAgICAgIGV4Y2VwdCBleGNlcHRpb25zLkVycm9ySW5SZXNwb25zZUV4Y2VwdGlvbjoK
ICAgICAgICAgICAgIHNlbGYubG9nZ2VyLmVycm9yKCJMb3N0IFdlYkRyaXZlciBjb25uZWN0aW9u
IikKICAgICAgICAgICAgIHJldHVybiBTdG9wCiAKLSAgICAgICAgZXhlY3V0b3IgPSB0aHJlYWRp
bmcuVGhyZWFkKHRhcmdldD1zZWxmLl9ydW4pCi0gICAgICAgIGV4ZWN1dG9yLnN0YXJ0KCkKLQot
ICAgICAgICBmbGFnID0gc2VsZi5yZXN1bHRfZmxhZy53YWl0KHRpbWVvdXQgKyAyICogZXh0cmFf
dGltZW91dCkKLSAgICAgICAgaWYgc2VsZi5yZXN1bHQgaXMgTm9uZToKLSAgICAgICAgICAgIGFz
c2VydCBub3QgZmxhZwotICAgICAgICAgICAgc2VsZi5yZXN1bHQgPSBGYWxzZSwgKCJFWFRFUk5B
TC1USU1FT1VUIiwgTm9uZSkKLQotICAgICAgICByZXR1cm4gc2VsZi5yZXN1bHQKLQotICAgIGRl
ZiBfcnVuKHNlbGYpOgorICAgIGRlZiBydW5fZnVuYyhzZWxmKToKICAgICAgICAgdHJ5OgogICAg
ICAgICAgICAgc2VsZi5yZXN1bHQgPSBUcnVlLCBzZWxmLmZ1bmMoc2VsZi5wcm90b2NvbCwgc2Vs
Zi51cmwsIHNlbGYudGltZW91dCkKICAgICAgICAgZXhjZXB0IGV4Y2VwdGlvbnMuVGltZW91dEV4
Y2VwdGlvbjoKQEAgLTIzOSwxMSArMjU1LDExIEBAIGNsYXNzIFNlbGVuaXVtUnVuKG9iamVjdCk6
CiAgICAgICAgIGV4Y2VwdCAoc29ja2V0LnRpbWVvdXQsIGV4Y2VwdGlvbnMuRXJyb3JJblJlc3Bv
bnNlRXhjZXB0aW9uKToKICAgICAgICAgICAgIHNlbGYucmVzdWx0ID0gRmFsc2UsICgiQ1JBU0gi
LCBOb25lKQogICAgICAgICBleGNlcHQgRXhjZXB0aW9uIGFzIGU6Ci0gICAgICAgICAgICBtZXNz
YWdlID0gZ2V0YXR0cihlLCAibWVzc2FnZSIsICIiKQorICAgICAgICAgICAgbWVzc2FnZSA9IHN0
cihnZXRhdHRyKGUsICJtZXNzYWdlIiwgIiIpKQogICAgICAgICAgICAgaWYgbWVzc2FnZToKICAg
ICAgICAgICAgICAgICBtZXNzYWdlICs9ICJcbiIKICAgICAgICAgICAgIG1lc3NhZ2UgKz0gdHJh
Y2ViYWNrLmZvcm1hdF9leGMoZSkKLSAgICAgICAgICAgIHNlbGYucmVzdWx0ID0gRmFsc2UsICgi
SU5URVJOQUwtRVJST1IiLCBlKQorICAgICAgICAgICAgc2VsZi5yZXN1bHQgPSBGYWxzZSwgKCJJ
TlRFUk5BTC1FUlJPUiIsIG1lc3NhZ2UpCiAgICAgICAgIGZpbmFsbHk6CiAgICAgICAgICAgICBz
ZWxmLnJlc3VsdF9mbGFnLnNldCgpCiAKQEAgLTI1OSw4ICsyNzUsNiBAQCBjbGFzcyBTZWxlbml1
bVRlc3RoYXJuZXNzRXhlY3V0b3IoVGVzdGhhcm5lc3NFeGVjdXRvcik6CiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgdGltZW91dF9tdWx0aXBsaWVyPXRpbWVvdXRfbXVsdGlw
bGllciwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWJ1Z19pbmZvPWRl
YnVnX2luZm8pCiAgICAgICAgIHNlbGYucHJvdG9jb2wgPSBTZWxlbml1bVByb3RvY29sKHNlbGYs
IGJyb3dzZXIsIGNhcGFiaWxpdGllcykKLSAgICAgICAgd2l0aCBvcGVuKG9zLnBhdGguam9pbiho
ZXJlLCAidGVzdGhhcm5lc3Nfd2ViZHJpdmVyLmpzIikpIGFzIGY6Ci0gICAgICAgICAgICBzZWxm
LnNjcmlwdCA9IGYucmVhZCgpCiAgICAgICAgIHdpdGggb3Blbihvcy5wYXRoLmpvaW4oaGVyZSwg
InRlc3RoYXJuZXNzX3dlYmRyaXZlcl9yZXN1bWUuanMiKSkgYXMgZjoKICAgICAgICAgICAgIHNl
bGYuc2NyaXB0X3Jlc3VtZSA9IGYucmVhZCgpCiAgICAgICAgIHNlbGYuY2xvc2VfYWZ0ZXJfZG9u
ZSA9IGNsb3NlX2FmdGVyX2RvbmUKQEAgLTI3NiwxMCArMjkwLDEyIEBAIGNsYXNzIFNlbGVuaXVt
VGVzdGhhcm5lc3NFeGVjdXRvcihUZXN0aGFybmVzc0V4ZWN1dG9yKToKICAgICBkZWYgZG9fdGVz
dChzZWxmLCB0ZXN0KToKICAgICAgICAgdXJsID0gc2VsZi50ZXN0X3VybCh0ZXN0KQogCi0gICAg
ICAgIHN1Y2Nlc3MsIGRhdGEgPSBTZWxlbml1bVJ1bihzZWxmLmRvX3Rlc3RoYXJuZXNzLAorICAg
ICAgICBzdWNjZXNzLCBkYXRhID0gU2VsZW5pdW1SdW4oc2VsZi5sb2dnZXIsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmRvX3Rlc3RoYXJuZXNzLAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5wcm90b2NvbCwKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHVybCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHRlc3QudGltZW91dCAqIHNlbGYudGltZW91dF9tdWx0aXBsaWVyKS5ydW4oKQorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGVzdC50aW1lb3V0ICogc2VsZi50aW1l
b3V0X211bHRpcGxpZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxm
LmV4dHJhX3RpbWVvdXQpLnJ1bigpCiAKICAgICAgICAgaWYgc3VjY2VzczoKICAgICAgICAgICAg
IHJldHVybiBzZWxmLmNvbnZlcnRfcmVzdWx0KHRlc3QsIGRhdGEpCkBAIC0yODcsMjEgKzMwMywx
OSBAQCBjbGFzcyBTZWxlbml1bVRlc3RoYXJuZXNzRXhlY3V0b3IoVGVzdGhhcm5lc3NFeGVjdXRv
cik6CiAgICAgICAgIHJldHVybiAodGVzdC5yZXN1bHRfY2xzKCpkYXRhKSwgW10pCiAKICAgICBk
ZWYgZG9fdGVzdGhhcm5lc3Moc2VsZiwgcHJvdG9jb2wsIHVybCwgdGltZW91dCk6Ci0gICAgICAg
IGZvcm1hdF9tYXAgPSB7ImFic191cmwiOiB1cmwsCi0gICAgICAgICAgICAgICAgICAgICAgInVy
bCI6IHN0cmlwX3NlcnZlcih1cmwpLAotICAgICAgICAgICAgICAgICAgICAgICJ3aW5kb3dfaWQi
OiBzZWxmLndpbmRvd19pZCwKLSAgICAgICAgICAgICAgICAgICAgICAidGltZW91dF9tdWx0aXBs
aWVyIjogc2VsZi50aW1lb3V0X211bHRpcGxpZXIsCi0gICAgICAgICAgICAgICAgICAgICAgInRp
bWVvdXQiOiB0aW1lb3V0ICogMTAwMH0KKyAgICAgICAgZm9ybWF0X21hcCA9IHsidXJsIjogc3Ry
aXBfc2VydmVyKHVybCl9CiAKICAgICAgICAgcGFyZW50X3dpbmRvdyA9IHByb3RvY29sLnRlc3Ro
YXJuZXNzLmNsb3NlX29sZF93aW5kb3dzKCkKICAgICAgICAgIyBOb3cgc3RhcnQgdGhlIHRlc3Qg
aGFybmVzcwotICAgICAgICBwcm90b2NvbC5iYXNlLmV4ZWN1dGVfc2NyaXB0KHNlbGYuc2NyaXB0
ICUgZm9ybWF0X21hcCkKLSAgICAgICAgdGVzdF93aW5kb3cgPSBwcm90b2NvbC50ZXN0aGFybmVz
cy5nZXRfdGVzdF93aW5kb3cod2ViZHJpdmVyLCBwYXJlbnRfd2luZG93KQotCisgICAgICAgIHBy
b3RvY29sLmJhc2UuZXhlY3V0ZV9zY3JpcHQoIndpbmRvdy5vcGVuKCdhYm91dDpibGFuaycsICcl
cycsICdub29wZW5lcicpIiAlIHNlbGYud2luZG93X2lkKQorICAgICAgICB0ZXN0X3dpbmRvdyA9
IHByb3RvY29sLnRlc3RoYXJuZXNzLmdldF90ZXN0X3dpbmRvdyhzZWxmLndpbmRvd19pZCwgcGFy
ZW50X3dpbmRvdywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgdGltZW91dD01KnNlbGYudGltZW91dF9tdWx0aXBsaWVyKQorICAgICAg
ICBzZWxmLnByb3RvY29sLmJhc2Uuc2V0X3dpbmRvdyh0ZXN0X3dpbmRvdykKKyAgICAgICAgcHJv
dG9jb2wud2ViZHJpdmVyLmdldCh1cmwpCiAgICAgICAgIGhhbmRsZXIgPSBDYWxsYmFja0hhbmRs
ZXIoc2VsZi5sb2dnZXIsIHByb3RvY29sLCB0ZXN0X3dpbmRvdykKICAgICAgICAgd2hpbGUgVHJ1
ZToKICAgICAgICAgICAgIHJlc3VsdCA9IHByb3RvY29sLmJhc2UuZXhlY3V0ZV9zY3JpcHQoCi0g
ICAgICAgICAgICAgICAgc2VsZi5zY3JpcHRfcmVzdW1lICUgZm9ybWF0X21hcCwgYXN5bmM9VHJ1
ZSkKKyAgICAgICAgICAgICAgICBzZWxmLnNjcmlwdF9yZXN1bWUgJSBmb3JtYXRfbWFwLCBhc3lu
Y2hyb25vdXM9VHJ1ZSkKICAgICAgICAgICAgIGRvbmUsIHJ2ID0gaGFuZGxlcihyZXN1bHQpCiAg
ICAgICAgICAgICBpZiBkb25lOgogICAgICAgICAgICAgICAgIGJyZWFrCkBAIC0zMjUsMzIgKzMz
OSw0MCBAQCBjbGFzcyBTZWxlbml1bVJlZlRlc3RFeGVjdXRvcihSZWZUZXN0RXhlY3V0b3IpOgog
ICAgICAgICBzZWxmLmNsb3NlX2FmdGVyX2RvbmUgPSBjbG9zZV9hZnRlcl9kb25lCiAgICAgICAg
IHNlbGYuaGFzX3dpbmRvdyA9IEZhbHNlCiAKLSAgICAgICAgd2l0aCBvcGVuKG9zLnBhdGguam9p
bihoZXJlLCAicmVmdGVzdC5qcyIpKSBhcyBmOgotICAgICAgICAgICAgc2VsZi5zY3JpcHQgPSBm
LnJlYWQoKQogICAgICAgICB3aXRoIG9wZW4ob3MucGF0aC5qb2luKGhlcmUsICJyZWZ0ZXN0LXdh
aXRfd2ViZHJpdmVyLmpzIikpIGFzIGY6CiAgICAgICAgICAgICBzZWxmLndhaXRfc2NyaXB0ID0g
Zi5yZWFkKCkKIAorICAgIGRlZiByZXNldChzZWxmKToKKyAgICAgICAgc2VsZi5pbXBsZW1lbnRh
dGlvbi5yZXNldCgpCisKICAgICBkZWYgaXNfYWxpdmUoc2VsZik6CiAgICAgICAgIHJldHVybiBz
ZWxmLnByb3RvY29sLmlzX2FsaXZlKCkKIAogICAgIGRlZiBkb190ZXN0KHNlbGYsIHRlc3QpOgog
ICAgICAgICBzZWxmLmxvZ2dlci5pbmZvKCJUZXN0IHJlcXVpcmVzIE9TLWxldmVsIHdpbmRvdyBm
b2N1cyIpCiAKLSAgICAgICAgc2VsZi5wcm90b2NvbC53ZWJkcml2ZXIuc2V0X3dpbmRvd19zaXpl
KDYwMCwgNjAwKQorICAgICAgICB3aWR0aF9vZmZzZXQsIGhlaWdodF9vZmZzZXQgPSBzZWxmLnBy
b3RvY29sLndlYmRyaXZlci5leGVjdXRlX3NjcmlwdCgKKyAgICAgICAgICAgICIiInJldHVybiBb
d2luZG93Lm91dGVyV2lkdGggLSB3aW5kb3cuaW5uZXJXaWR0aCwKKyAgICAgICAgICAgICAgICAg
ICAgICAgd2luZG93Lm91dGVySGVpZ2h0IC0gd2luZG93LmlubmVySGVpZ2h0XTsiIiIKKyAgICAg
ICAgKQorICAgICAgICBzZWxmLnByb3RvY29sLndlYmRyaXZlci5zZXRfd2luZG93X3NpemUoMCwg
MCkKKyAgICAgICAgc2VsZi5wcm90b2NvbC53ZWJkcml2ZXIuc2V0X3dpbmRvd19wb3NpdGlvbig4
MDAgKyB3aWR0aF9vZmZzZXQsIDYwMCArIGhlaWdodF9vZmZzZXQpCiAKICAgICAgICAgcmVzdWx0
ID0gc2VsZi5pbXBsZW1lbnRhdGlvbi5ydW5fdGVzdCh0ZXN0KQogCiAgICAgICAgIHJldHVybiBz
ZWxmLmNvbnZlcnRfcmVzdWx0KHRlc3QsIHJlc3VsdCkKIAogICAgIGRlZiBzY3JlZW5zaG90KHNl
bGYsIHRlc3QsIHZpZXdwb3J0X3NpemUsIGRwaSk6Ci0gICAgICAgICMgaHR0cHM6Ly9naXRodWIu
Y29tL3czYy93cHRydW5uZXIvaXNzdWVzLzE2NgorICAgICAgICAjIGh0dHBzOi8vZ2l0aHViLmNv
bS93ZWItcGxhdGZvcm0tdGVzdHMvd3B0L2lzc3Vlcy83MTM1CiAgICAgICAgIGFzc2VydCB2aWV3
cG9ydF9zaXplIGlzIE5vbmUKICAgICAgICAgYXNzZXJ0IGRwaSBpcyBOb25lCiAKLSAgICAgICAg
cmV0dXJuIFNlbGVuaXVtUnVuKHNlbGYuX3NjcmVlbnNob3QsCisgICAgICAgIHJldHVybiBTZWxl
bml1bVJ1bihzZWxmLmxvZ2dlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuX3Nj
cmVlbnNob3QsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnByb3RvY29sLAogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi50ZXN0X3VybCh0ZXN0KSwKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHRlc3QudGltZW91dCkucnVuKCkKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHRlc3QudGltZW91dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuZXh0
cmFfdGltZW91dCkucnVuKCkKIAogICAgIGRlZiBfc2NyZWVuc2hvdChzZWxmLCBwcm90b2NvbCwg
dXJsLCB0aW1lb3V0KToKICAgICAgICAgd2ViZHJpdmVyID0gcHJvdG9jb2wud2ViZHJpdmVyCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3dwdHJ1bm5lci93cHRydW5uZXIvZXhlY3V0b3JzL2V4ZWN1dG9yc2Vydm8ucHkgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93
cHRydW5uZXIvZXhlY3V0b3JzL2V4ZWN1dG9yc2Vydm8ucHkKaW5kZXggY2FhOTcxNDU1NjAuLjM2
NWExYTA4NjUzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvZXhlY3V0b3JzL2V4ZWN1dG9yc2Vy
dm8ucHkKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy93cHRydW5uZXIvd3B0cnVubmVyL2V4ZWN1dG9ycy9leGVjdXRvcnNlcnZvLnB5CkBAIC0x
LDMgKzEsNCBAQAorZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCBwcmludF9mdW5jdGlvbgogaW1wb3J0
IGJhc2U2NAogaW1wb3J0IGpzb24KIGltcG9ydCBvcwpAQCAtOCw3ICs5LDcgQEAgaW1wb3J0IHV1
aWQKIAogZnJvbSBtb3pwcm9jZXNzIGltcG9ydCBQcm9jZXNzSGFuZGxlcgogCi1mcm9tIHNlcnZl
LnNlcnZlIGltcG9ydCBtYWtlX2hvc3RzX2ZpbGUKK2Zyb20gdG9vbHMuc2VydmUuc2VydmUgaW1w
b3J0IG1ha2VfaG9zdHNfZmlsZQogCiBmcm9tIC5iYXNlIGltcG9ydCAoQ29ubmVjdGlvbmxlc3NQ
cm90b2NvbCwKICAgICAgICAgICAgICAgICAgICBSZWZUZXN0SW1wbGVtZW50YXRpb24sCkBAIC0y
Myw3ICsyNCw2IEBAIGZyb20gLi53ZWJkcml2ZXJfc2VydmVyIGltcG9ydCBTZXJ2b0RyaXZlclNl
cnZlcgogcHl0ZXN0cnVubmVyID0gTm9uZQogd2ViZHJpdmVyID0gTm9uZQogCi1leHRyYV90aW1l
b3V0ID0gNSAgIyBzZWNvbmRzCiAKIGRlZiB3cml0ZV9ob3N0c19maWxlKGNvbmZpZyk6CiAgICAg
aG9zdHNfZmQsIGhvc3RzX3BhdGggPSB0ZW1wZmlsZS5ta3N0ZW1wKCkKQEAgLTEyMiw3ICsxMjIs
NyBAQCBjbGFzcyBTZXJ2b1Rlc3RoYXJuZXNzRXhlY3V0b3IoUHJvY2Vzc1Rlc3RFeGVjdXRvcik6
CiAgICAgICAgICAgICAgICAgICAgIHNlbGYucHJvYy53YWl0KCkKICAgICAgICAgICAgICAgICBl
bHNlOgogICAgICAgICAgICAgICAgICAgICBzZWxmLnByb2Mua2lsbCgpCi0gICAgICAgIGV4Y2Vw
dCBLZXlib2FyZEludGVycnVwdDoKKyAgICAgICAgZXhjZXB0OiAgIyBub3FhCiAgICAgICAgICAg
ICBzZWxmLnByb2Mua2lsbCgpCiAgICAgICAgICAgICByYWlzZQogCkBAIC0xMzYsNyArMTM2LDcg
QEAgY2xhc3MgU2Vydm9UZXN0aGFybmVzc0V4ZWN1dG9yKFByb2Nlc3NUZXN0RXhlY3V0b3IpOgog
ICAgICAgICAgICAgc2VsZi5yZXN1bHRfZmxhZy5zZXQoKQogICAgICAgICBlbHNlOgogICAgICAg
ICAgICAgaWYgc2VsZi5pbnRlcmFjdGl2ZToKLSAgICAgICAgICAgICAgICBwcmludCBsaW5lCisg
ICAgICAgICAgICAgICAgcHJpbnQobGluZSkKICAgICAgICAgICAgIGVsc2U6CiAgICAgICAgICAg
ICAgICAgc2VsZi5sb2dnZXIucHJvY2Vzc19vdXRwdXQoc2VsZi5wcm9jLnBpZCwKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaW5lLApAQCAtMTgwLDYgKzE4MCw5
IEBAIGNsYXNzIFNlcnZvUmVmVGVzdEV4ZWN1dG9yKFByb2Nlc3NUZXN0RXhlY3V0b3IpOgogICAg
ICAgICBzZWxmLnRlbXBkaXIgPSB0ZW1wZmlsZS5ta2R0ZW1wKCkKICAgICAgICAgc2VsZi5ob3N0
c19wYXRoID0gd3JpdGVfaG9zdHNfZmlsZShzZXJ2ZXJfY29uZmlnKQogCisgICAgZGVmIHJlc2V0
KHNlbGYpOgorICAgICAgICBzZWxmLmltcGxlbWVudGF0aW9uLnJlc2V0KCkKKwogICAgIGRlZiB0
ZWFyZG93bihzZWxmKToKICAgICAgICAgdHJ5OgogICAgICAgICAgICAgb3MudW5saW5rKHNlbGYu
aG9zdHNfcGF0aCkKQEAgLTI2Nyw3ICsyNzAsNyBAQCBjbGFzcyBTZXJ2b1JlZlRlc3RFeGVjdXRv
cihQcm9jZXNzVGVzdEV4ZWN1dG9yKToKICAgICBkZWYgb25fb3V0cHV0KHNlbGYsIGxpbmUpOgog
ICAgICAgICBsaW5lID0gbGluZS5kZWNvZGUoInV0ZjgiLCAicmVwbGFjZSIpCiAgICAgICAgIGlm
IHNlbGYuaW50ZXJhY3RpdmU6Ci0gICAgICAgICAgICBwcmludCBsaW5lCisgICAgICAgICAgICBw
cmludChsaW5lKQogICAgICAgICBlbHNlOgogICAgICAgICAgICAgc2VsZi5sb2dnZXIucHJvY2Vz
c19vdXRwdXQoc2VsZi5wcm9jLnBpZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGxpbmUsCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvZXhlY3V0b3JzL2V4ZWN1dG9y
c2Vydm9kcml2ZXIucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvZXhlY3V0b3JzL2V4ZWN1dG9yc2Vydm9kcml2
ZXIucHkKaW5kZXggZDAxNWU3N2I4YzcuLmJkMzc3ZDBkNTk1IDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRy
dW5uZXIvZXhlY3V0b3JzL2V4ZWN1dG9yc2Vydm9kcml2ZXIucHkKKysrIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVy
L2V4ZWN1dG9ycy9leGVjdXRvcnNlcnZvZHJpdmVyLnB5CkBAIC0xLDggKzEsNiBAQAogaW1wb3J0
IGpzb24KIGltcG9ydCBvcwogaW1wb3J0IHNvY2tldAotaW1wb3J0IHRocmVhZGluZwotaW1wb3J0
IHRpbWUKIGltcG9ydCB0cmFjZWJhY2sKIAogZnJvbSAuYmFzZSBpbXBvcnQgKFByb3RvY29sLApA
QCAtMTAsNiArOCw3IEBAIGZyb20gLmJhc2UgaW1wb3J0IChQcm90b2NvbCwKICAgICAgICAgICAg
ICAgICAgICBSZWZUZXN0RXhlY3V0b3IsCiAgICAgICAgICAgICAgICAgICAgUmVmVGVzdEltcGxl
bWVudGF0aW9uLAogICAgICAgICAgICAgICAgICAgIFRlc3RoYXJuZXNzRXhlY3V0b3IsCisgICAg
ICAgICAgICAgICAgICAgVGltZWRSdW5uZXIsCiAgICAgICAgICAgICAgICAgICAgc3RyaXBfc2Vy
dmVyKQogZnJvbSAuLnRlc3RydW5uZXIgaW1wb3J0IFN0b3AKIGZyb20gLi53ZWJkcml2ZXJfc2Vy
dmVyIGltcG9ydCB3YWl0X2Zvcl9zZXJ2aWNlCkBAIC0xOSw4ICsxOCw2IEBAIFNlcnZvQ29tbWFu
ZEV4dGVuc2lvbnMgPSBOb25lCiAKIGhlcmUgPSBvcy5wYXRoLmpvaW4ob3MucGF0aC5zcGxpdChf
X2ZpbGVfXylbMF0pCiAKLWV4dHJhX3RpbWVvdXQgPSA1Ci0KIAogZGVmIGRvX2RlbGF5ZWRfaW1w
b3J0cygpOgogICAgIGdsb2JhbCB3ZWJkcml2ZXIKQEAgLTY3LDcgKzY0LDcgQEAgZGVmIHBhcnNl
X3ByZWZfdmFsdWUodmFsdWUpOgogCiAKIGNsYXNzIFNlcnZvQmFzZVByb3RvY29sUGFydChCYXNl
UHJvdG9jb2xQYXJ0KToKLSAgICBkZWYgZXhlY3V0ZV9zY3JpcHQoc2VsZiwgc2NyaXB0LCBhc3lu
Yz1GYWxzZSk6CisgICAgZGVmIGV4ZWN1dGVfc2NyaXB0KHNlbGYsIHNjcmlwdCwgYXN5bmNocm9u
b3VzPUZhbHNlKToKICAgICAgICAgcGFzcwogCiAgICAgZGVmIHNldF90aW1lb3V0KHNlbGYsIHRp
bWVvdXQpOgpAQCAtMTMxLDI5ICsxMjgsMTMgQEAgY2xhc3MgU2Vydm9XZWJEcml2ZXJQcm90b2Nv
bChQcm90b2NvbCk6CiAgICAgICAgICAgICAgICAgYnJlYWsKIAogCi1jbGFzcyBTZXJ2b1dlYkRy
aXZlclJ1bihvYmplY3QpOgotICAgIGRlZiBfX2luaXRfXyhzZWxmLCBmdW5jLCBzZXNzaW9uLCB1
cmwsIHRpbWVvdXQsIGN1cnJlbnRfdGltZW91dD1Ob25lKToKLSAgICAgICAgc2VsZi5mdW5jID0g
ZnVuYwotICAgICAgICBzZWxmLnJlc3VsdCA9IE5vbmUKLSAgICAgICAgc2VsZi5zZXNzaW9uID0g
c2Vzc2lvbgotICAgICAgICBzZWxmLnVybCA9IHVybAotICAgICAgICBzZWxmLnRpbWVvdXQgPSB0
aW1lb3V0Ci0gICAgICAgIHNlbGYucmVzdWx0X2ZsYWcgPSB0aHJlYWRpbmcuRXZlbnQoKQotCi0g
ICAgZGVmIHJ1bihzZWxmKToKLSAgICAgICAgZXhlY3V0b3IgPSB0aHJlYWRpbmcuVGhyZWFkKHRh
cmdldD1zZWxmLl9ydW4pCi0gICAgICAgIGV4ZWN1dG9yLnN0YXJ0KCkKLQotICAgICAgICBmbGFn
ID0gc2VsZi5yZXN1bHRfZmxhZy53YWl0KHNlbGYudGltZW91dCArIGV4dHJhX3RpbWVvdXQpCi0g
ICAgICAgIGlmIHNlbGYucmVzdWx0IGlzIE5vbmU6Ci0gICAgICAgICAgICBhc3NlcnQgbm90IGZs
YWcKLSAgICAgICAgICAgIHNlbGYucmVzdWx0ID0gRmFsc2UsICgiRVhURVJOQUwtVElNRU9VVCIs
IE5vbmUpCi0KLSAgICAgICAgcmV0dXJuIHNlbGYucmVzdWx0CitjbGFzcyBTZXJ2b1dlYkRyaXZl
clJ1bihUaW1lZFJ1bm5lcik6CisgICAgZGVmIHNldF90aW1lb3V0KHNlbGYpOgorICAgICAgICBw
YXNzCiAKLSAgICBkZWYgX3J1bihzZWxmKToKKyAgICBkZWYgcnVuX2Z1bmMoc2VsZik6CiAgICAg
ICAgIHRyeToKLSAgICAgICAgICAgIHNlbGYucmVzdWx0ID0gVHJ1ZSwgc2VsZi5mdW5jKHNlbGYu
c2Vzc2lvbiwgc2VsZi51cmwsIHNlbGYudGltZW91dCkKKyAgICAgICAgICAgIHNlbGYucmVzdWx0
ID0gVHJ1ZSwgc2VsZi5mdW5jKHNlbGYucHJvdG9jb2wuc2Vzc2lvbiwgc2VsZi51cmwsIHNlbGYu
dGltZW91dCkKICAgICAgICAgZXhjZXB0IHdlYmRyaXZlci5UaW1lb3V0RXhjZXB0aW9uOgogICAg
ICAgICAgICAgc2VsZi5yZXN1bHQgPSBGYWxzZSwgKCJFWFRFUk5BTC1USU1FT1VUIiwgTm9uZSkK
ICAgICAgICAgZXhjZXB0IChzb2NrZXQudGltZW91dCwgSU9FcnJvcik6CkBAIC0xNjgsMTUgKzE0
OSw5IEBAIGNsYXNzIFNlcnZvV2ViRHJpdmVyUnVuKG9iamVjdCk6CiAgICAgICAgICAgICBzZWxm
LnJlc3VsdF9mbGFnLnNldCgpCiAKIAotZGVmIHRpbWVvdXRfZnVuYyh0aW1lb3V0KToKLSAgICBp
ZiB0aW1lb3V0OgotICAgICAgICB0MCA9IHRpbWUudGltZSgpCi0gICAgICAgIHJldHVybiBsYW1i
ZGE6IHRpbWUudGltZSgpIC0gdDAgPiB0aW1lb3V0ICsgZXh0cmFfdGltZW91dAotICAgIGVsc2U6
Ci0gICAgICAgIHJldHVybiBsYW1iZGE6IEZhbHNlCi0KLQogY2xhc3MgU2Vydm9XZWJEcml2ZXJU
ZXN0aGFybmVzc0V4ZWN1dG9yKFRlc3RoYXJuZXNzRXhlY3V0b3IpOgorICAgIHN1cHBvcnRzX3Rl
c3Rkcml2ZXIgPSBUcnVlCisKICAgICBkZWYgX19pbml0X18oc2VsZiwgYnJvd3Nlciwgc2VydmVy
X2NvbmZpZywgdGltZW91dF9tdWx0aXBsaWVyPTEsCiAgICAgICAgICAgICAgICAgIGNsb3NlX2Fm
dGVyX2RvbmU9VHJ1ZSwgY2FwYWJpbGl0aWVzPU5vbmUsIGRlYnVnX2luZm89Tm9uZSwKICAgICAg
ICAgICAgICAgICAgKiprd2FyZ3MpOgpAQCAtMTk2LDcgKzE3MSw3IEBAIGNsYXNzIFNlcnZvV2Vi
RHJpdmVyVGVzdGhhcm5lc3NFeGVjdXRvcihUZXN0aGFybmVzc0V4ZWN1dG9yKToKICAgICBkZWYg
ZG9fdGVzdChzZWxmLCB0ZXN0KToKICAgICAgICAgdXJsID0gc2VsZi50ZXN0X3VybCh0ZXN0KQog
Ci0gICAgICAgIHRpbWVvdXQgPSB0ZXN0LnRpbWVvdXQgKiBzZWxmLnRpbWVvdXRfbXVsdGlwbGll
ciArIGV4dHJhX3RpbWVvdXQKKyAgICAgICAgdGltZW91dCA9IHRlc3QudGltZW91dCAqIHNlbGYu
dGltZW91dF9tdWx0aXBsaWVyICsgc2VsZi5leHRyYV90aW1lb3V0CiAKICAgICAgICAgaWYgdGlt
ZW91dCAhPSBzZWxmLnRpbWVvdXQ6CiAgICAgICAgICAgICB0cnk6CkBAIC0yMDYsMTAgKzE4MSwx
MiBAQCBjbGFzcyBTZXJ2b1dlYkRyaXZlclRlc3RoYXJuZXNzRXhlY3V0b3IoVGVzdGhhcm5lc3NF
eGVjdXRvcik6CiAgICAgICAgICAgICAgICAgc2VsZi5sb2dnZXIuZXJyb3IoIkxvc3Qgd2ViZHJp
dmVyIGNvbm5lY3Rpb24iKQogICAgICAgICAgICAgICAgIHJldHVybiBTdG9wCiAKLSAgICAgICAg
c3VjY2VzcywgZGF0YSA9IFNlcnZvV2ViRHJpdmVyUnVuKHNlbGYuZG9fdGVzdGhhcm5lc3MsCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnByb3RvY29sLnNl
c3Npb24sCisgICAgICAgIHN1Y2Nlc3MsIGRhdGEgPSBTZXJ2b1dlYkRyaXZlclJ1bihzZWxmLmxv
Z2dlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuZG9f
dGVzdGhhcm5lc3MsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBz
ZWxmLnByb3RvY29sLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
dXJsLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGltZW91dCku
cnVuKCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpbWVvdXQs
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmV4dHJhX3Rp
bWVvdXQpLnJ1bigpCiAKICAgICAgICAgaWYgc3VjY2VzczoKICAgICAgICAgICAgIHJldHVybiBz
ZWxmLmNvbnZlcnRfcmVzdWx0KHRlc3QsIGRhdGEpCkBAIC0yNTgsNiArMjM1LDkgQEAgY2xhc3Mg
U2Vydm9XZWJEcml2ZXJSZWZUZXN0RXhlY3V0b3IoUmVmVGVzdEV4ZWN1dG9yKToKICAgICAgICAg
d2l0aCBvcGVuKG9zLnBhdGguam9pbihoZXJlLCAicmVmdGVzdC13YWl0X3dlYmRyaXZlci5qcyIp
KSBhcyBmOgogICAgICAgICAgICAgc2VsZi53YWl0X3NjcmlwdCA9IGYucmVhZCgpCiAKKyAgICBk
ZWYgcmVzZXQoc2VsZik6CisgICAgICAgIHNlbGYuaW1wbGVtZW50YXRpb24ucmVzZXQoKQorCiAg
ICAgZGVmIGlzX2FsaXZlKHNlbGYpOgogICAgICAgICByZXR1cm4gc2VsZi5wcm90b2NvbC5pc19h
bGl2ZSgpCiAKQEAgLTI3NywxMSArMjU3LDExIEBAIGNsYXNzIFNlcnZvV2ViRHJpdmVyUmVmVGVz
dEV4ZWN1dG9yKFJlZlRlc3RFeGVjdXRvcik6CiAgICAgICAgICAgICByZXR1cm4gdGVzdC5yZXN1
bHRfY2xzKCJJTlRFUk5BTC1FUlJPUiIsIG1lc3NhZ2UpLCBbXQogCiAgICAgZGVmIHNjcmVlbnNo
b3Qoc2VsZiwgdGVzdCwgdmlld3BvcnRfc2l6ZSwgZHBpKToKLSAgICAgICAgIyBodHRwczovL2dp
dGh1Yi5jb20vdzNjL3dwdHJ1bm5lci9pc3N1ZXMvMTY2CisgICAgICAgICMgaHR0cHM6Ly9naXRo
dWIuY29tL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQvaXNzdWVzLzcxMzUKICAgICAgICAgYXNzZXJ0
IHZpZXdwb3J0X3NpemUgaXMgTm9uZQogICAgICAgICBhc3NlcnQgZHBpIGlzIE5vbmUKIAotICAg
ICAgICB0aW1lb3V0ID0gKHRlc3QudGltZW91dCAqIHNlbGYudGltZW91dF9tdWx0aXBsaWVyICsg
ZXh0cmFfdGltZW91dAorICAgICAgICB0aW1lb3V0ID0gKHRlc3QudGltZW91dCAqIHNlbGYudGlt
ZW91dF9tdWx0aXBsaWVyICsgc2VsZi5leHRyYV90aW1lb3V0CiAgICAgICAgICAgICAgICAgICAg
aWYgc2VsZi5kZWJ1Z19pbmZvIGlzIE5vbmUgZWxzZSBOb25lKQogCiAgICAgICAgIGlmIHNlbGYu
dGltZW91dCAhPSB0aW1lb3V0OgpAQCAtMjkyLDEwICsyNzIsMTIgQEAgY2xhc3MgU2Vydm9XZWJE
cml2ZXJSZWZUZXN0RXhlY3V0b3IoUmVmVGVzdEV4ZWN1dG9yKToKICAgICAgICAgICAgICAgICBz
ZWxmLmxvZ2dlci5lcnJvcigiTG9zdCB3ZWJkcml2ZXIgY29ubmVjdGlvbiIpCiAgICAgICAgICAg
ICAgICAgcmV0dXJuIFN0b3AKIAotICAgICAgICByZXR1cm4gU2Vydm9XZWJEcml2ZXJSdW4oc2Vs
Zi5fc2NyZWVuc2hvdCwKKyAgICAgICAgcmV0dXJuIFNlcnZvV2ViRHJpdmVyUnVuKHNlbGYubG9n
Z2VyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5fc2NyZWVuc2hvdCwK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYucHJvdG9jb2wuc2Vzc2lvbiwK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYudGVzdF91cmwodGVzdCksCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aW1lb3V0KS5ydW4oKQorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgdGltZW91dCwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHNlbGYuZXh0cmFfdGltZW91dCkucnVuKCkKIAogICAgIGRlZiBfc2NyZWVuc2hv
dChzZWxmLCBzZXNzaW9uLCB1cmwsIHRpbWVvdXQpOgogICAgICAgICBzZXNzaW9uLnVybCA9IHVy
bApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2V4ZWN1dG9ycy9leGVjdXRvcndlYmRyaXZlci5w
eSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0
cnVubmVyL3dwdHJ1bm5lci9leGVjdXRvcnMvZXhlY3V0b3J3ZWJkcml2ZXIucHkKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjM5MzQ2ZTgwNWQ3Ci0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93
cHRydW5uZXIvd3B0cnVubmVyL2V4ZWN1dG9ycy9leGVjdXRvcndlYmRyaXZlci5weQpAQCAtMCww
ICsxLDQ4MCBAQAoraW1wb3J0IGpzb24KK2ltcG9ydCBvcworaW1wb3J0IHNvY2tldAoraW1wb3J0
IHRocmVhZGluZworaW1wb3J0IHRpbWUKK2ltcG9ydCB0cmFjZWJhY2sKK2ltcG9ydCB1cmxwYXJz
ZQoraW1wb3J0IHV1aWQKKworZnJvbSAuYmFzZSBpbXBvcnQgKENhbGxiYWNrSGFuZGxlciwKKyAg
ICAgICAgICAgICAgICAgICBSZWZUZXN0RXhlY3V0b3IsCisgICAgICAgICAgICAgICAgICAgUmVm
VGVzdEltcGxlbWVudGF0aW9uLAorICAgICAgICAgICAgICAgICAgIFRlc3RoYXJuZXNzRXhlY3V0
b3IsCisgICAgICAgICAgICAgICAgICAgVGltZWRSdW5uZXIsCisgICAgICAgICAgICAgICAgICAg
c3RyaXBfc2VydmVyKQorZnJvbSAucHJvdG9jb2wgaW1wb3J0IChCYXNlUHJvdG9jb2xQYXJ0LAor
ICAgICAgICAgICAgICAgICAgICAgICBUZXN0aGFybmVzc1Byb3RvY29sUGFydCwKKyAgICAgICAg
ICAgICAgICAgICAgICAgUHJvdG9jb2wsCisgICAgICAgICAgICAgICAgICAgICAgIFNlbGVjdG9y
UHJvdG9jb2xQYXJ0LAorICAgICAgICAgICAgICAgICAgICAgICBDbGlja1Byb3RvY29sUGFydCwK
KyAgICAgICAgICAgICAgICAgICAgICAgU2VuZEtleXNQcm90b2NvbFBhcnQsCisgICAgICAgICAg
ICAgICAgICAgICAgIEFjdGlvblNlcXVlbmNlUHJvdG9jb2xQYXJ0LAorICAgICAgICAgICAgICAg
ICAgICAgICBUZXN0RHJpdmVyUHJvdG9jb2xQYXJ0LAorICAgICAgICAgICAgICAgICAgICAgICBH
ZW5lcmF0ZVRlc3RSZXBvcnRQcm90b2NvbFBhcnQsCisgICAgICAgICAgICAgICAgICAgICAgIFZp
cnR1YWxBdXRoZW50aWNhdG9yUHJvdG9jb2xQYXJ0KQorZnJvbSAuLnRlc3RydW5uZXIgaW1wb3J0
IFN0b3AKKworaW1wb3J0IHdlYmRyaXZlciBhcyBjbGllbnQKKworaGVyZSA9IG9zLnBhdGguam9p
bihvcy5wYXRoLnNwbGl0KF9fZmlsZV9fKVswXSkKKworCitjbGFzcyBXZWJEcml2ZXJCYXNlUHJv
dG9jb2xQYXJ0KEJhc2VQcm90b2NvbFBhcnQpOgorICAgIGRlZiBzZXR1cChzZWxmKToKKyAgICAg
ICAgc2VsZi53ZWJkcml2ZXIgPSBzZWxmLnBhcmVudC53ZWJkcml2ZXIKKworICAgIGRlZiBleGVj
dXRlX3NjcmlwdChzZWxmLCBzY3JpcHQsIGFzeW5jaHJvbm91cz1GYWxzZSk6CisgICAgICAgIG1l
dGhvZCA9IHNlbGYud2ViZHJpdmVyLmV4ZWN1dGVfYXN5bmNfc2NyaXB0IGlmIGFzeW5jaHJvbm91
cyBlbHNlIHNlbGYud2ViZHJpdmVyLmV4ZWN1dGVfc2NyaXB0CisgICAgICAgIHJldHVybiBtZXRo
b2Qoc2NyaXB0KQorCisgICAgZGVmIHNldF90aW1lb3V0KHNlbGYsIHRpbWVvdXQpOgorICAgICAg
ICB0cnk6CisgICAgICAgICAgICBzZWxmLndlYmRyaXZlci50aW1lb3V0cy5zY3JpcHQgPSB0aW1l
b3V0CisgICAgICAgIGV4Y2VwdCBjbGllbnQuV2ViRHJpdmVyRXhjZXB0aW9uOgorICAgICAgICAg
ICAgIyB3b3JrYXJvdW5kIGh0dHBzOi8vYnVncy5jaHJvbWl1bS5vcmcvcC9jaHJvbWVkcml2ZXIv
aXNzdWVzL2RldGFpbD9pZD0yMDU3CisgICAgICAgICAgICBib2R5ID0geyJ0eXBlIjogInNjcmlw
dCIsICJtcyI6IHRpbWVvdXQgKiAxMDAwfQorICAgICAgICAgICAgc2VsZi53ZWJkcml2ZXIuc2Vu
ZF9zZXNzaW9uX2NvbW1hbmQoIlBPU1QiLCAidGltZW91dHMiLCBib2R5KQorCisgICAgQHByb3Bl
cnR5CisgICAgZGVmIGN1cnJlbnRfd2luZG93KHNlbGYpOgorICAgICAgICByZXR1cm4gc2VsZi53
ZWJkcml2ZXIud2luZG93X2hhbmRsZQorCisgICAgZGVmIHNldF93aW5kb3coc2VsZiwgaGFuZGxl
KToKKyAgICAgICAgc2VsZi53ZWJkcml2ZXIud2luZG93X2hhbmRsZSA9IGhhbmRsZQorCisgICAg
ZGVmIHdhaXQoc2VsZik6CisgICAgICAgIHdoaWxlIFRydWU6CisgICAgICAgICAgICB0cnk6Cisg
ICAgICAgICAgICAgICAgc2VsZi53ZWJkcml2ZXIuZXhlY3V0ZV9hc3luY19zY3JpcHQoIiIpCisg
ICAgICAgICAgICBleGNlcHQgKGNsaWVudC5UaW1lb3V0RXhjZXB0aW9uLCBjbGllbnQuU2NyaXB0
VGltZW91dEV4Y2VwdGlvbik6CisgICAgICAgICAgICAgICAgcGFzcworICAgICAgICAgICAgZXhj
ZXB0IChzb2NrZXQudGltZW91dCwgY2xpZW50Lk5vU3VjaFdpbmRvd0V4Y2VwdGlvbiwKKyAgICAg
ICAgICAgICAgICAgICAgY2xpZW50LlVua25vd25FcnJvckV4Y2VwdGlvbiwgSU9FcnJvcik6Cisg
ICAgICAgICAgICAgICAgYnJlYWsKKyAgICAgICAgICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZToK
KyAgICAgICAgICAgICAgICBzZWxmLmxvZ2dlci5lcnJvcih0cmFjZWJhY2suZm9ybWF0X2V4Yyhl
KSkKKyAgICAgICAgICAgICAgICBicmVhaworCisKK2NsYXNzIFdlYkRyaXZlclRlc3RoYXJuZXNz
UHJvdG9jb2xQYXJ0KFRlc3RoYXJuZXNzUHJvdG9jb2xQYXJ0KToKKyAgICBkZWYgc2V0dXAoc2Vs
Zik6CisgICAgICAgIHNlbGYud2ViZHJpdmVyID0gc2VsZi5wYXJlbnQud2ViZHJpdmVyCisgICAg
ICAgIHNlbGYucnVubmVyX2hhbmRsZSA9IE5vbmUKKyAgICAgICAgd2l0aCBvcGVuKG9zLnBhdGgu
am9pbihoZXJlLCAicnVubmVyLmpzIikpIGFzIGY6CisgICAgICAgICAgICBzZWxmLnJ1bm5lcl9z
Y3JpcHQgPSBmLnJlYWQoKQorCisgICAgZGVmIGxvYWRfcnVubmVyKHNlbGYsIHVybF9wcm90b2Nv
bCk6CisgICAgICAgIGlmIHNlbGYucnVubmVyX2hhbmRsZToKKyAgICAgICAgICAgIHNlbGYud2Vi
ZHJpdmVyLndpbmRvd19oYW5kbGUgPSBzZWxmLnJ1bm5lcl9oYW5kbGUKKyAgICAgICAgdXJsID0g
dXJscGFyc2UudXJsam9pbihzZWxmLnBhcmVudC5leGVjdXRvci5zZXJ2ZXJfdXJsKHVybF9wcm90
b2NvbCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIi90ZXN0aGFybmVzc19ydW5u
ZXIuaHRtbCIpCisgICAgICAgIHNlbGYubG9nZ2VyLmRlYnVnKCJMb2FkaW5nICVzIiAlIHVybCkK
KworICAgICAgICBzZWxmLndlYmRyaXZlci51cmwgPSB1cmwKKyAgICAgICAgc2VsZi5ydW5uZXJf
aGFuZGxlID0gc2VsZi53ZWJkcml2ZXIud2luZG93X2hhbmRsZQorICAgICAgICBmb3JtYXRfbWFw
ID0geyJ0aXRsZSI6IHRocmVhZGluZy5jdXJyZW50X3RocmVhZCgpLm5hbWUucmVwbGFjZSgiJyIs
ICciJyl9CisgICAgICAgIHNlbGYucGFyZW50LmJhc2UuZXhlY3V0ZV9zY3JpcHQoc2VsZi5ydW5u
ZXJfc2NyaXB0ICUgZm9ybWF0X21hcCkKKworICAgIGRlZiBjbG9zZV9vbGRfd2luZG93cyhzZWxm
KToKKyAgICAgICAgc2VsZi53ZWJkcml2ZXIuYWN0aW9ucy5yZWxlYXNlKCkKKyAgICAgICAgaGFu
ZGxlcyA9IFtpdGVtIGZvciBpdGVtIGluIHNlbGYud2ViZHJpdmVyLmhhbmRsZXMgaWYgaXRlbSAh
PSBzZWxmLnJ1bm5lcl9oYW5kbGVdCisgICAgICAgIGZvciBoYW5kbGUgaW4gaGFuZGxlczoKKyAg
ICAgICAgICAgIHRyeToKKyAgICAgICAgICAgICAgICBzZWxmLndlYmRyaXZlci53aW5kb3dfaGFu
ZGxlID0gaGFuZGxlCisgICAgICAgICAgICAgICAgc2VsZi53ZWJkcml2ZXIuY2xvc2UoKQorICAg
ICAgICAgICAgZXhjZXB0IGNsaWVudC5Ob1N1Y2hXaW5kb3dFeGNlcHRpb246CisgICAgICAgICAg
ICAgICAgcGFzcworICAgICAgICBzZWxmLndlYmRyaXZlci53aW5kb3dfaGFuZGxlID0gc2VsZi5y
dW5uZXJfaGFuZGxlCisgICAgICAgIHJldHVybiBzZWxmLnJ1bm5lcl9oYW5kbGUKKworICAgIGRl
ZiBnZXRfdGVzdF93aW5kb3coc2VsZiwgd2luZG93X2lkLCBwYXJlbnQsIHRpbWVvdXQ9NSk6Cisg
ICAgICAgICIiIkZpbmQgdGhlIHRlc3Qgd2luZG93IGFtb25nc3QgYWxsIHRoZSBvcGVuIHdpbmRv
d3MuCisgICAgICAgIFRoaXMgaXMgYXNzdW1lZCB0byBiZSBlaXRoZXIgdGhlIG5hbWVkIHdpbmRv
dyBvciB0aGUgb25lIGFmdGVyIHRoZSBwYXJlbnQgaW4gdGhlIGxpc3Qgb2YKKyAgICAgICAgd2lu
ZG93IGhhbmRsZXMKKworICAgICAgICA6cGFyYW0gd2luZG93X2lkOiBUaGUgRE9NIG5hbWUgb2Yg
dGhlIFdpbmRvdworICAgICAgICA6cGFyYW0gcGFyZW50OiBUaGUgaGFuZGxlIG9mIHRoZSBydW5u
ZXIgd2luZG93CisgICAgICAgIDpwYXJhbSB0aW1lb3V0OiBUaGUgdGltZSBpbiBzZWNvbmRzIHRv
IHdhaXQgZm9yIHRoZSB3aW5kb3cgdG8gYXBwZWFyLiBUaGlzIGlzIGJlY2F1c2UgaW4KKyAgICAg
ICAgICAgICAgICAgICAgICAgIHNvbWUgaW1wbGVtZW50YXRpb25zIHRoZXJlJ3MgYSByYWNlIGJl
dHdlZW4gY2FsbGluZyB3aW5kb3cub3BlbiBhbmQgdGhlCisgICAgICAgICAgICAgICAgICAgICAg
ICB3aW5kb3cgYmVpbmcgYWRkZWQgdG8gdGhlIGxpc3Qgb2YgV2ViRHJpdmVyIGFjY2Vzc2libGUg
d2luZG93cy4iIiIKKyAgICAgICAgdGVzdF93aW5kb3cgPSBOb25lCisgICAgICAgIGVuZF90aW1l
ID0gdGltZS50aW1lKCkgKyB0aW1lb3V0CisgICAgICAgIHdoaWxlIHRpbWUudGltZSgpIDwgZW5k
X3RpbWU6CisgICAgICAgICAgICB0cnk6CisgICAgICAgICAgICAgICAgIyBUcnkgdXNpbmcgdGhl
IEpTT04gc2VyaWFsaXphdGlvbiBvZiB0aGUgV2luZG93UHJveHkgb2JqZWN0LAorICAgICAgICAg
ICAgICAgICMgaXQncyBpbiBMZXZlbCAxIGJ1dCBub3RoaW5nIHN1cHBvcnRzIGl0IHlldAorICAg
ICAgICAgICAgICAgIHdpbl9zID0gc2VsZi53ZWJkcml2ZXIuZXhlY3V0ZV9zY3JpcHQoInJldHVy
biB3aW5kb3dbJyVzJ107IiAlIHdpbmRvd19pZCkKKyAgICAgICAgICAgICAgICB3aW5fb2JqID0g
anNvbi5sb2Fkcyh3aW5fcykKKyAgICAgICAgICAgICAgICB0ZXN0X3dpbmRvdyA9IHdpbl9vYmpb
IndpbmRvdy1mY2M2LTExZTUtYjRmOC0zMzBhODhhYjlkN2YiXQorICAgICAgICAgICAgZXhjZXB0
IEV4Y2VwdGlvbjoKKyAgICAgICAgICAgICAgICBwYXNzCisKKyAgICAgICAgICAgIGlmIHRlc3Rf
d2luZG93IGlzIE5vbmU6CisgICAgICAgICAgICAgICAgYWZ0ZXIgPSBzZWxmLndlYmRyaXZlci5o
YW5kbGVzCisgICAgICAgICAgICAgICAgaWYgbGVuKGFmdGVyKSA9PSAyOgorICAgICAgICAgICAg
ICAgICAgICB0ZXN0X3dpbmRvdyA9IG5leHQoaXRlcihzZXQoYWZ0ZXIpIC0ge3BhcmVudH0pKQor
ICAgICAgICAgICAgICAgIGVsaWYgYWZ0ZXJbMF0gPT0gcGFyZW50IGFuZCBsZW4oYWZ0ZXIpID4g
MjoKKyAgICAgICAgICAgICAgICAgICAgIyBIb3BlIHRoZSBmaXJzdCBvbmUgaGVyZSBpcyB0aGUg
dGVzdCB3aW5kb3cKKyAgICAgICAgICAgICAgICAgICAgdGVzdF93aW5kb3cgPSBhZnRlclsxXQor
CisgICAgICAgICAgICBpZiB0ZXN0X3dpbmRvdyBpcyBub3QgTm9uZToKKyAgICAgICAgICAgICAg
ICBhc3NlcnQgdGVzdF93aW5kb3cgIT0gcGFyZW50CisgICAgICAgICAgICAgICAgcmV0dXJuIHRl
c3Rfd2luZG93CisKKyAgICAgICAgICAgIHRpbWUuc2xlZXAoMC4xKQorCisgICAgICAgIHJhaXNl
IEV4Y2VwdGlvbigidW5hYmxlIHRvIGZpbmQgdGVzdCB3aW5kb3ciKQorCisKK2NsYXNzIFdlYkRy
aXZlclNlbGVjdG9yUHJvdG9jb2xQYXJ0KFNlbGVjdG9yUHJvdG9jb2xQYXJ0KToKKyAgICBkZWYg
c2V0dXAoc2VsZik6CisgICAgICAgIHNlbGYud2ViZHJpdmVyID0gc2VsZi5wYXJlbnQud2ViZHJp
dmVyCisKKyAgICBkZWYgZWxlbWVudHNfYnlfc2VsZWN0b3Ioc2VsZiwgc2VsZWN0b3IpOgorICAg
ICAgICByZXR1cm4gc2VsZi53ZWJkcml2ZXIuZmluZC5jc3Moc2VsZWN0b3IpCisKKyAgICBkZWYg
ZWxlbWVudHNfYnlfc2VsZWN0b3JfYW5kX2ZyYW1lKHNlbGYsIGVsZW1lbnRfc2VsZWN0b3IsIGZy
YW1lKToKKyAgICAgICAgcmV0dXJuIHNlbGYud2ViZHJpdmVyLmZpbmQuY3NzKGVsZW1lbnRfc2Vs
ZWN0b3IsIGZyYW1lPWZyYW1lKQorCisKK2NsYXNzIFdlYkRyaXZlckNsaWNrUHJvdG9jb2xQYXJ0
KENsaWNrUHJvdG9jb2xQYXJ0KToKKyAgICBkZWYgc2V0dXAoc2VsZik6CisgICAgICAgIHNlbGYu
d2ViZHJpdmVyID0gc2VsZi5wYXJlbnQud2ViZHJpdmVyCisKKyAgICBkZWYgZWxlbWVudChzZWxm
LCBlbGVtZW50KToKKyAgICAgICAgc2VsZi5sb2dnZXIuaW5mbygiY2xpY2sgIiArIHJlcHIoZWxl
bWVudCkpCisgICAgICAgIHJldHVybiBlbGVtZW50LmNsaWNrKCkKKworCitjbGFzcyBXZWJEcml2
ZXJTZW5kS2V5c1Byb3RvY29sUGFydChTZW5kS2V5c1Byb3RvY29sUGFydCk6CisgICAgZGVmIHNl
dHVwKHNlbGYpOgorICAgICAgICBzZWxmLndlYmRyaXZlciA9IHNlbGYucGFyZW50LndlYmRyaXZl
cgorCisgICAgZGVmIHNlbmRfa2V5cyhzZWxmLCBlbGVtZW50LCBrZXlzKToKKyAgICAgICAgdHJ5
OgorICAgICAgICAgICAgcmV0dXJuIGVsZW1lbnQuc2VuZF9rZXlzKGtleXMpCisgICAgICAgIGV4
Y2VwdCBjbGllbnQuVW5rbm93bkVycm9yRXhjZXB0aW9uIGFzIGU6CisgICAgICAgICAgICAjIHdv
cmthcm91bmQgaHR0cHM6Ly9idWdzLmNocm9taXVtLm9yZy9wL2Nocm9tZWRyaXZlci9pc3N1ZXMv
ZGV0YWlsP2lkPTE5OTkKKyAgICAgICAgICAgIGlmIChlLmh0dHBfc3RhdHVzICE9IDUwMCBvcgor
ICAgICAgICAgICAgICAgIGUuc3RhdHVzX2NvZGUgIT0gInVua25vd24gZXJyb3IiKToKKyAgICAg
ICAgICAgICAgICByYWlzZQorICAgICAgICAgICAgcmV0dXJuIGVsZW1lbnQuc2VuZF9lbGVtZW50
X2NvbW1hbmQoIlBPU1QiLCAidmFsdWUiLCB7InZhbHVlIjogbGlzdChrZXlzKX0pCisKKworY2xh
c3MgV2ViRHJpdmVyQWN0aW9uU2VxdWVuY2VQcm90b2NvbFBhcnQoQWN0aW9uU2VxdWVuY2VQcm90
b2NvbFBhcnQpOgorICAgIGRlZiBzZXR1cChzZWxmKToKKyAgICAgICAgc2VsZi53ZWJkcml2ZXIg
PSBzZWxmLnBhcmVudC53ZWJkcml2ZXIKKworICAgIGRlZiBzZW5kX2FjdGlvbnMoc2VsZiwgYWN0
aW9ucyk6CisgICAgICAgIHNlbGYud2ViZHJpdmVyLmFjdGlvbnMucGVyZm9ybShhY3Rpb25zWydh
Y3Rpb25zJ10pCisKKworY2xhc3MgV2ViRHJpdmVyVGVzdERyaXZlclByb3RvY29sUGFydChUZXN0
RHJpdmVyUHJvdG9jb2xQYXJ0KToKKyAgICBkZWYgc2V0dXAoc2VsZik6CisgICAgICAgIHNlbGYu
d2ViZHJpdmVyID0gc2VsZi5wYXJlbnQud2ViZHJpdmVyCisKKyAgICBkZWYgc2VuZF9tZXNzYWdl
KHNlbGYsIG1lc3NhZ2VfdHlwZSwgc3RhdHVzLCBtZXNzYWdlPU5vbmUpOgorICAgICAgICBvYmog
PSB7CisgICAgICAgICAgICAidHlwZSI6ICJ0ZXN0ZHJpdmVyLSVzIiAlIHN0cihtZXNzYWdlX3R5
cGUpLAorICAgICAgICAgICAgInN0YXR1cyI6IHN0cihzdGF0dXMpCisgICAgICAgIH0KKyAgICAg
ICAgaWYgbWVzc2FnZToKKyAgICAgICAgICAgIG9ialsibWVzc2FnZSJdID0gc3RyKG1lc3NhZ2Up
CisgICAgICAgIHNlbGYud2ViZHJpdmVyLmV4ZWN1dGVfc2NyaXB0KCJ3aW5kb3cucG9zdE1lc3Nh
Z2UoJXMsICcqJykiICUganNvbi5kdW1wcyhvYmopKQorCisKK2NsYXNzIFdlYkRyaXZlckdlbmVy
YXRlVGVzdFJlcG9ydFByb3RvY29sUGFydChHZW5lcmF0ZVRlc3RSZXBvcnRQcm90b2NvbFBhcnQp
OgorICAgIGRlZiBzZXR1cChzZWxmKToKKyAgICAgICAgc2VsZi53ZWJkcml2ZXIgPSBzZWxmLnBh
cmVudC53ZWJkcml2ZXIKKworICAgIGRlZiBnZW5lcmF0ZV90ZXN0X3JlcG9ydChzZWxmLCBtZXNz
YWdlKToKKyAgICAgICAganNvbl9tZXNzYWdlID0geyJtZXNzYWdlIjogbWVzc2FnZX0KKyAgICAg
ICAgc2VsZi53ZWJkcml2ZXIuc2VuZF9zZXNzaW9uX2NvbW1hbmQoIlBPU1QiLCAicmVwb3J0aW5n
L2dlbmVyYXRlX3Rlc3RfcmVwb3J0IiwganNvbl9tZXNzYWdlKQorCitjbGFzcyBXZWJEcml2ZXJW
aXJ0dWFsQXV0aGVudGljYXRvclByb3RvY29sUGFydChWaXJ0dWFsQXV0aGVudGljYXRvclByb3Rv
Y29sUGFydCk6CisgICAgZGVmIHNldHVwKHNlbGYpOgorICAgICAgICBzZWxmLndlYmRyaXZlciA9
IHNlbGYucGFyZW50LndlYmRyaXZlcgorCisgICAgZGVmIGFkZF92aXJ0dWFsX2F1dGhlbnRpY2F0
b3Ioc2VsZiwgY29uZmlnKToKKyAgICAgICAgcmV0dXJuIHNlbGYud2ViZHJpdmVyLnNlbmRfc2Vz
c2lvbl9jb21tYW5kKCJQT1NUIiwgIndlYmF1dGhuL2F1dGhlbnRpY2F0b3IiLCBjb25maWcpCisK
KyAgICBkZWYgcmVtb3ZlX3ZpcnR1YWxfYXV0aGVudGljYXRvcihzZWxmLCBhdXRoZW50aWNhdG9y
X2lkKToKKyAgICAgICAgcmV0dXJuIHNlbGYud2ViZHJpdmVyLnNlbmRfc2Vzc2lvbl9jb21tYW5k
KCJERUxFVEUiLCAid2ViYXV0aG4vYXV0aGVudGljYXRvci8lcyIgJSBhdXRoZW50aWNhdG9yX2lk
KQorCisgICAgZGVmIGFkZF9jcmVkZW50aWFsKHNlbGYsIGF1dGhlbnRpY2F0b3JfaWQsIGNyZWRl
bnRpYWwpOgorICAgICAgICByZXR1cm4gc2VsZi53ZWJkcml2ZXIuc2VuZF9zZXNzaW9uX2NvbW1h
bmQoIlBPU1QiLCAid2ViYXV0aG4vYXV0aGVudGljYXRvci8lcy9jcmVkZW50aWFsIiAlIGF1dGhl
bnRpY2F0b3JfaWQsIGNyZWRlbnRpYWwpCisKKyAgICBkZWYgZ2V0X2NyZWRlbnRpYWxzKHNlbGYs
IGF1dGhlbnRpY2F0b3JfaWQpOgorICAgICAgICByZXR1cm4gc2VsZi53ZWJkcml2ZXIuc2VuZF9z
ZXNzaW9uX2NvbW1hbmQoIkdFVCIsICJ3ZWJhdXRobi9hdXRoZW50aWNhdG9yLyVzL2NyZWRlbnRp
YWxzIiAlIGF1dGhlbnRpY2F0b3JfaWQpCisKKyAgICBkZWYgcmVtb3ZlX2NyZWRlbnRpYWwoc2Vs
ZiwgYXV0aGVudGljYXRvcl9pZCwgY3JlZGVudGlhbF9pZCk6CisgICAgICAgIHJldHVybiBzZWxm
LndlYmRyaXZlci5zZW5kX3Nlc3Npb25fY29tbWFuZCgiREVMRVRFIiwgIndlYmF1dGhuL2F1dGhl
bnRpY2F0b3IvJXMvY3JlZGVudGlhbHMvJXMiICUgKGF1dGhlbnRpY2F0b3JfaWQsIGNyZWRlbnRp
YWxfaWQpKQorCisgICAgZGVmIHJlbW92ZV9hbGxfY3JlZGVudGlhbHMoc2VsZiwgYXV0aGVudGlj
YXRvcl9pZCk6CisgICAgICAgIHJldHVybiBzZWxmLndlYmRyaXZlci5zZW5kX3Nlc3Npb25fY29t
bWFuZCgiREVMRVRFIiwgIndlYmF1dGhuL2F1dGhlbnRpY2F0b3IvJXMvY3JlZGVudGlhbHMiICUg
YXV0aGVudGljYXRvcl9pZCkKKworICAgIGRlZiBzZXRfdXNlcl92ZXJpZmllZChzZWxmLCBhdXRo
ZW50aWNhdG9yX2lkLCB1dik6CisgICAgICAgIHJldHVybiBzZWxmLndlYmRyaXZlci5zZW5kX3Nl
c3Npb25fY29tbWFuZCgiUE9TVCIsICJ3ZWJhdXRobi9hdXRoZW50aWNhdG9yLyVzL3V2IiAlIGF1
dGhlbnRpY2F0b3JfaWQsIHV2KQorCisKK2NsYXNzIFdlYkRyaXZlclByb3RvY29sKFByb3RvY29s
KToKKyAgICBpbXBsZW1lbnRzID0gW1dlYkRyaXZlckJhc2VQcm90b2NvbFBhcnQsCisgICAgICAg
ICAgICAgICAgICBXZWJEcml2ZXJUZXN0aGFybmVzc1Byb3RvY29sUGFydCwKKyAgICAgICAgICAg
ICAgICAgIFdlYkRyaXZlclNlbGVjdG9yUHJvdG9jb2xQYXJ0LAorICAgICAgICAgICAgICAgICAg
V2ViRHJpdmVyQ2xpY2tQcm90b2NvbFBhcnQsCisgICAgICAgICAgICAgICAgICBXZWJEcml2ZXJT
ZW5kS2V5c1Byb3RvY29sUGFydCwKKyAgICAgICAgICAgICAgICAgIFdlYkRyaXZlckFjdGlvblNl
cXVlbmNlUHJvdG9jb2xQYXJ0LAorICAgICAgICAgICAgICAgICAgV2ViRHJpdmVyVGVzdERyaXZl
clByb3RvY29sUGFydCwKKyAgICAgICAgICAgICAgICAgIFdlYkRyaXZlckdlbmVyYXRlVGVzdFJl
cG9ydFByb3RvY29sUGFydCwKKyAgICAgICAgICAgICAgICAgIFdlYkRyaXZlclZpcnR1YWxBdXRo
ZW50aWNhdG9yUHJvdG9jb2xQYXJ0XQorCisgICAgZGVmIF9faW5pdF9fKHNlbGYsIGV4ZWN1dG9y
LCBicm93c2VyLCBjYXBhYmlsaXRpZXMsICoqa3dhcmdzKToKKyAgICAgICAgc3VwZXIoV2ViRHJp
dmVyUHJvdG9jb2wsIHNlbGYpLl9faW5pdF9fKGV4ZWN1dG9yLCBicm93c2VyKQorICAgICAgICBz
ZWxmLmNhcGFiaWxpdGllcyA9IGNhcGFiaWxpdGllcworICAgICAgICBzZWxmLnVybCA9IGJyb3dz
ZXIud2ViZHJpdmVyX3VybAorICAgICAgICBzZWxmLndlYmRyaXZlciA9IE5vbmUKKworICAgIGRl
ZiBjb25uZWN0KHNlbGYpOgorICAgICAgICAiIiJDb25uZWN0IHRvIGJyb3dzZXIgdmlhIFdlYkRy
aXZlci4iIiIKKyAgICAgICAgc2VsZi5sb2dnZXIuZGVidWcoIkNvbm5lY3RpbmcgdG8gV2ViRHJp
dmVyIG9uIFVSTDogJXMiICUgc2VsZi51cmwpCisKKyAgICAgICAgaG9zdCwgcG9ydCA9IHNlbGYu
dXJsLnNwbGl0KCI6IilbMV0uc3RyaXAoIi8iKSwgc2VsZi51cmwuc3BsaXQoJzonKVstMV0uc3Ry
aXAoIi8iKQorCisgICAgICAgIGNhcGFiaWxpdGllcyA9IHsiYWx3YXlzTWF0Y2giOiBzZWxmLmNh
cGFiaWxpdGllc30KKyAgICAgICAgc2VsZi53ZWJkcml2ZXIgPSBjbGllbnQuU2Vzc2lvbihob3N0
LCBwb3J0LCBjYXBhYmlsaXRpZXM9Y2FwYWJpbGl0aWVzKQorICAgICAgICBzZWxmLndlYmRyaXZl
ci5zdGFydCgpCisKKyAgICBkZWYgdGVhcmRvd24oc2VsZik6CisgICAgICAgIHNlbGYubG9nZ2Vy
LmRlYnVnKCJIYW5naW5nIHVwIG9uIFdlYkRyaXZlciBzZXNzaW9uIikKKyAgICAgICAgdHJ5Ogor
ICAgICAgICAgICAgc2VsZi53ZWJkcml2ZXIuZW5kKCkKKyAgICAgICAgZXhjZXB0IEV4Y2VwdGlv
biBhcyBlOgorICAgICAgICAgICAgbWVzc2FnZSA9IHN0cihnZXRhdHRyKGUsICJtZXNzYWdlIiwg
IiIpKQorICAgICAgICAgICAgaWYgbWVzc2FnZToKKyAgICAgICAgICAgICAgICBtZXNzYWdlICs9
ICJcbiIKKyAgICAgICAgICAgIG1lc3NhZ2UgKz0gdHJhY2ViYWNrLmZvcm1hdF9leGMoZSkKKyAg
ICAgICAgICAgIHNlbGYubG9nZ2VyLmRlYnVnKG1lc3NhZ2UpCisgICAgICAgIHNlbGYud2ViZHJp
dmVyID0gTm9uZQorCisgICAgZGVmIGlzX2FsaXZlKHNlbGYpOgorICAgICAgICB0cnk6CisgICAg
ICAgICAgICAjIEdldCBhIHNpbXBsZSBwcm9wZXJ0eSBvdmVyIHRoZSBjb25uZWN0aW9uCisgICAg
ICAgICAgICBzZWxmLndlYmRyaXZlci53aW5kb3dfaGFuZGxlCisgICAgICAgIGV4Y2VwdCAoc29j
a2V0LnRpbWVvdXQsIGNsaWVudC5Vbmtub3duRXJyb3JFeGNlcHRpb24pOgorICAgICAgICAgICAg
cmV0dXJuIEZhbHNlCisgICAgICAgIHJldHVybiBUcnVlCisKKyAgICBkZWYgYWZ0ZXJfY29ubmVj
dChzZWxmKToKKyAgICAgICAgc2VsZi50ZXN0aGFybmVzcy5sb2FkX3J1bm5lcihzZWxmLmV4ZWN1
dG9yLmxhc3RfZW52aXJvbm1lbnRbInByb3RvY29sIl0pCisKKworY2xhc3MgV2ViRHJpdmVyUnVu
KFRpbWVkUnVubmVyKToKKyAgICBkZWYgc2V0X3RpbWVvdXQoc2VsZik6CisgICAgICAgIHRyeToK
KyAgICAgICAgICAgIHNlbGYucHJvdG9jb2wuYmFzZS5zZXRfdGltZW91dChzZWxmLnRpbWVvdXQg
KyBzZWxmLmV4dHJhX3RpbWVvdXQpCisgICAgICAgIGV4Y2VwdCBjbGllbnQuVW5rbm93bkVycm9y
RXhjZXB0aW9uOgorICAgICAgICAgICAgc2VsZi5sb2dnZXIuZXJyb3IoIkxvc3QgV2ViRHJpdmVy
IGNvbm5lY3Rpb24iKQorICAgICAgICAgICAgcmV0dXJuIFN0b3AKKworICAgIGRlZiBydW5fZnVu
YyhzZWxmKToKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgc2VsZi5yZXN1bHQgPSBUcnVlLCBz
ZWxmLmZ1bmMoc2VsZi5wcm90b2NvbCwgc2VsZi51cmwsIHNlbGYudGltZW91dCkKKyAgICAgICAg
ZXhjZXB0IChjbGllbnQuVGltZW91dEV4Y2VwdGlvbiwgY2xpZW50LlNjcmlwdFRpbWVvdXRFeGNl
cHRpb24pOgorICAgICAgICAgICAgc2VsZi5yZXN1bHQgPSBGYWxzZSwgKCJFWFRFUk5BTC1USU1F
T1VUIiwgTm9uZSkKKyAgICAgICAgZXhjZXB0IChzb2NrZXQudGltZW91dCwgY2xpZW50LlVua25v
d25FcnJvckV4Y2VwdGlvbik6CisgICAgICAgICAgICBzZWxmLnJlc3VsdCA9IEZhbHNlLCAoIkNS
QVNIIiwgTm9uZSkKKyAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBlOgorICAgICAgICAgICAg
aWYgKGlzaW5zdGFuY2UoZSwgY2xpZW50LldlYkRyaXZlckV4Y2VwdGlvbikgYW5kCisgICAgICAg
ICAgICAgICAgICAgIGUuaHR0cF9zdGF0dXMgPT0gNDA4IGFuZAorICAgICAgICAgICAgICAgICAg
ICBlLnN0YXR1c19jb2RlID09ICJhc3luY2hyb25vdXMgc2NyaXB0IHRpbWVvdXQiKToKKyAgICAg
ICAgICAgICAgICAjIHdvcmthcm91bmQgZm9yIGh0dHBzOi8vYnVncy5jaHJvbWl1bS5vcmcvcC9j
aHJvbWVkcml2ZXIvaXNzdWVzL2RldGFpbD9pZD0yMDAxCisgICAgICAgICAgICAgICAgc2VsZi5y
ZXN1bHQgPSBGYWxzZSwgKCJFWFRFUk5BTC1USU1FT1VUIiwgTm9uZSkKKyAgICAgICAgICAgIGVs
c2U6CisgICAgICAgICAgICAgICAgbWVzc2FnZSA9IHN0cihnZXRhdHRyKGUsICJtZXNzYWdlIiwg
IiIpKQorICAgICAgICAgICAgICAgIGlmIG1lc3NhZ2U6CisgICAgICAgICAgICAgICAgICAgIG1l
c3NhZ2UgKz0gIlxuIgorICAgICAgICAgICAgICAgIG1lc3NhZ2UgKz0gdHJhY2ViYWNrLmZvcm1h
dF9leGMoZSkKKyAgICAgICAgICAgICAgICBzZWxmLnJlc3VsdCA9IEZhbHNlLCAoIklOVEVSTkFM
LUVSUk9SIiwgbWVzc2FnZSkKKyAgICAgICAgZmluYWxseToKKyAgICAgICAgICAgIHNlbGYucmVz
dWx0X2ZsYWcuc2V0KCkKKworCitjbGFzcyBXZWJEcml2ZXJUZXN0aGFybmVzc0V4ZWN1dG9yKFRl
c3RoYXJuZXNzRXhlY3V0b3IpOgorICAgIHN1cHBvcnRzX3Rlc3Rkcml2ZXIgPSBUcnVlCisKKyAg
ICBkZWYgX19pbml0X18oc2VsZiwgYnJvd3Nlciwgc2VydmVyX2NvbmZpZywgdGltZW91dF9tdWx0
aXBsaWVyPTEsCisgICAgICAgICAgICAgICAgIGNsb3NlX2FmdGVyX2RvbmU9VHJ1ZSwgY2FwYWJp
bGl0aWVzPU5vbmUsIGRlYnVnX2luZm89Tm9uZSwKKyAgICAgICAgICAgICAgICAgc3VwcG9ydHNf
ZWFnZXJfcGFnZWxvYWQ9VHJ1ZSwgKiprd2FyZ3MpOgorICAgICAgICAiIiJXZWJEcml2ZXItYmFz
ZWQgZXhlY3V0b3IgZm9yIHRlc3RoYXJuZXNzLmpzIHRlc3RzIiIiCisgICAgICAgIFRlc3RoYXJu
ZXNzRXhlY3V0b3IuX19pbml0X18oc2VsZiwgYnJvd3Nlciwgc2VydmVyX2NvbmZpZywKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aW1lb3V0X211bHRpcGxpZXI9dGltZW91
dF9tdWx0aXBsaWVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlYnVn
X2luZm89ZGVidWdfaW5mbykKKyAgICAgICAgc2VsZi5wcm90b2NvbCA9IFdlYkRyaXZlclByb3Rv
Y29sKHNlbGYsIGJyb3dzZXIsIGNhcGFiaWxpdGllcykKKyAgICAgICAgd2l0aCBvcGVuKG9zLnBh
dGguam9pbihoZXJlLCAidGVzdGhhcm5lc3Nfd2ViZHJpdmVyX3Jlc3VtZS5qcyIpKSBhcyBmOgor
ICAgICAgICAgICAgc2VsZi5zY3JpcHRfcmVzdW1lID0gZi5yZWFkKCkKKyAgICAgICAgc2VsZi5j
bG9zZV9hZnRlcl9kb25lID0gY2xvc2VfYWZ0ZXJfZG9uZQorICAgICAgICBzZWxmLndpbmRvd19p
ZCA9IHN0cih1dWlkLnV1aWQ0KCkpCisgICAgICAgIHNlbGYuc3VwcG9ydHNfZWFnZXJfcGFnZWxv
YWQgPSBzdXBwb3J0c19lYWdlcl9wYWdlbG9hZAorCisgICAgZGVmIGlzX2FsaXZlKHNlbGYpOgor
ICAgICAgICByZXR1cm4gc2VsZi5wcm90b2NvbC5pc19hbGl2ZSgpCisKKyAgICBkZWYgb25fZW52
aXJvbm1lbnRfY2hhbmdlKHNlbGYsIG5ld19lbnZpcm9ubWVudCk6CisgICAgICAgIGlmIG5ld19l
bnZpcm9ubWVudFsicHJvdG9jb2wiXSAhPSBzZWxmLmxhc3RfZW52aXJvbm1lbnRbInByb3RvY29s
Il06CisgICAgICAgICAgICBzZWxmLnByb3RvY29sLnRlc3RoYXJuZXNzLmxvYWRfcnVubmVyKG5l
d19lbnZpcm9ubWVudFsicHJvdG9jb2wiXSkKKworICAgIGRlZiBkb190ZXN0KHNlbGYsIHRlc3Qp
OgorICAgICAgICB1cmwgPSBzZWxmLnRlc3RfdXJsKHRlc3QpCisKKyAgICAgICAgc3VjY2Vzcywg
ZGF0YSA9IFdlYkRyaXZlclJ1bihzZWxmLmxvZ2dlciwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBzZWxmLmRvX3Rlc3RoYXJuZXNzLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHNlbGYucHJvdG9jb2wsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgdXJsLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRl
c3QudGltZW91dCAqIHNlbGYudGltZW91dF9tdWx0aXBsaWVyLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHNlbGYuZXh0cmFfdGltZW91dCkucnVuKCkKKworICAgICAgICBp
ZiBzdWNjZXNzOgorICAgICAgICAgICAgcmV0dXJuIHNlbGYuY29udmVydF9yZXN1bHQodGVzdCwg
ZGF0YSkKKworICAgICAgICByZXR1cm4gKHRlc3QucmVzdWx0X2NscygqZGF0YSksIFtdKQorCisg
ICAgZGVmIGRvX3Rlc3RoYXJuZXNzKHNlbGYsIHByb3RvY29sLCB1cmwsIHRpbWVvdXQpOgorICAg
ICAgICBmb3JtYXRfbWFwID0geyJ1cmwiOiBzdHJpcF9zZXJ2ZXIodXJsKX0KKworICAgICAgICBw
YXJlbnRfd2luZG93ID0gcHJvdG9jb2wudGVzdGhhcm5lc3MuY2xvc2Vfb2xkX3dpbmRvd3MoKQor
ICAgICAgICAjIE5vdyBzdGFydCB0aGUgdGVzdCBoYXJuZXNzCisgICAgICAgIHByb3RvY29sLmJh
c2UuZXhlY3V0ZV9zY3JpcHQoIndpbmRvdy5vcGVuKCdhYm91dDpibGFuaycsICclcycsICdub29w
ZW5lcicpIiAlIHNlbGYud2luZG93X2lkKQorICAgICAgICB0ZXN0X3dpbmRvdyA9IHByb3RvY29s
LnRlc3RoYXJuZXNzLmdldF90ZXN0X3dpbmRvdyhzZWxmLndpbmRvd19pZCwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFyZW50X3dp
bmRvdywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgdGltZW91dD01KnNlbGYudGltZW91dF9tdWx0aXBsaWVyKQorICAgICAgICBzZWxm
LnByb3RvY29sLmJhc2Uuc2V0X3dpbmRvdyh0ZXN0X3dpbmRvdykKKyAgICAgICAgaGFuZGxlciA9
IENhbGxiYWNrSGFuZGxlcihzZWxmLmxvZ2dlciwgcHJvdG9jb2wsIHRlc3Rfd2luZG93KQorICAg
ICAgICBwcm90b2NvbC53ZWJkcml2ZXIudXJsID0gdXJsCisKKyAgICAgICAgaWYgbm90IHNlbGYu
c3VwcG9ydHNfZWFnZXJfcGFnZWxvYWQ6CisgICAgICAgICAgICBzZWxmLndhaXRfZm9yX2xvYWQo
cHJvdG9jb2wpCisKKyAgICAgICAgd2hpbGUgVHJ1ZToKKyAgICAgICAgICAgIHJlc3VsdCA9IHBy
b3RvY29sLmJhc2UuZXhlY3V0ZV9zY3JpcHQoCisgICAgICAgICAgICAgICAgc2VsZi5zY3JpcHRf
cmVzdW1lICUgZm9ybWF0X21hcCwgYXN5bmNocm9ub3VzPVRydWUpCisKKyAgICAgICAgICAgICMg
QXMgb2YgMjAxOS0wMy0yOSwgV2ViRHJpdmVyIGRvZXMgbm90IGRlZmluZSBleHBlY3RlZCBiZWhh
dmlvciBmb3IKKyAgICAgICAgICAgICMgY2FzZXMgd2hlcmUgdGhlIGJyb3dzZXIgY3Jhc2hlcyBk
dXJpbmcgc2NyaXB0IGV4ZWN1dGlvbjoKKyAgICAgICAgICAgICMKKyAgICAgICAgICAgICMgaHR0
cHM6Ly9naXRodWIuY29tL3czYy93ZWJkcml2ZXIvaXNzdWVzLzEzMDgKKyAgICAgICAgICAgIGlm
IG5vdCBpc2luc3RhbmNlKHJlc3VsdCwgbGlzdCkgb3IgbGVuKHJlc3VsdCkgIT0gMjoKKyAgICAg
ICAgICAgICAgICB0cnk6CisgICAgICAgICAgICAgICAgICAgIGlzX2FsaXZlID0gc2VsZi5pc19h
bGl2ZSgpCisgICAgICAgICAgICAgICAgZXhjZXB0IGNsaWVudC5XZWJEcml2ZXJFeGNlcHRpb246
CisgICAgICAgICAgICAgICAgICAgIGlzX2FsaXZlID0gRmFsc2UKKworICAgICAgICAgICAgICAg
IGlmIG5vdCBpc19hbGl2ZToKKyAgICAgICAgICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCJC
cm93c2VyIGNyYXNoZWQgZHVyaW5nIHNjcmlwdCBleGVjdXRpb24uIikKKworICAgICAgICAgICAg
ZG9uZSwgcnYgPSBoYW5kbGVyKHJlc3VsdCkKKyAgICAgICAgICAgIGlmIGRvbmU6CisgICAgICAg
ICAgICAgICAgYnJlYWsKKyAgICAgICAgcmV0dXJuIHJ2CisKKyAgICBkZWYgd2FpdF9mb3JfbG9h
ZChzZWxmLCBwcm90b2NvbCk6CisgICAgICAgICMgcGFnZUxvYWRTdHJhdGVneT1lYWdlciBkb2Vz
bid0IHdvcmsgaW4gQ2hyb21lIHNvIHRyeSB0byBlbXVsYXRlIGluIHVzZXIgc2NyaXB0CisgICAg
ICAgIGxvYWRlZCA9IEZhbHNlCisgICAgICAgIHNlZW5fZXJyb3IgPSBGYWxzZQorICAgICAgICB3
aGlsZSBub3QgbG9hZGVkOgorICAgICAgICAgICAgdHJ5OgorICAgICAgICAgICAgICAgIGxvYWRl
ZCA9IHByb3RvY29sLmJhc2UuZXhlY3V0ZV9zY3JpcHQoIiIiCit2YXIgY2FsbGJhY2sgPSBhcmd1
bWVudHNbYXJndW1lbnRzLmxlbmd0aCAtIDFdOworaWYgKGxvY2F0aW9uLmhyZWYgPT09ICJhYm91
dDpibGFuayIpIHsKKyAgY2FsbGJhY2soZmFsc2UpOworfSBlbHNlIGlmIChkb2N1bWVudC5yZWFk
eVN0YXRlICE9PSAibG9hZGluZyIpIHsKKyAgY2FsbGJhY2sodHJ1ZSk7Cit9IGVsc2UgeworICBk
b2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJyZWFkeXN0YXRlY2hhbmdlIiwgKCkgPT4ge2lmIChk
b2N1bWVudC5yZWFkeVN0YXRlICE9PSAibG9hZGluZyIpIHtjYWxsYmFjayh0cnVlKX19KTsKK30i
IiIsIGFzeW5jaHJvbm91cz1UcnVlKQorICAgICAgICAgICAgZXhjZXB0IGNsaWVudC5KYXZhc2Ny
aXB0RXJyb3JFeGNlcHRpb246CisgICAgICAgICAgICAgICAgIyBXZSBjYW4gZ2V0IGFuIGVycm9y
IGhlcmUgaWYgdGhlIHNjcmlwdCBydW5zIGluIHRoZSBpbml0aWFsIGFib3V0OmJsYW5rCisgICAg
ICAgICAgICAgICAgIyBkb2N1bWVudCBiZWZvcmUgaXQgaGFzIG5hdmlnYXRlZCwgd2l0aCB0aGUg
ZHJpdmVyIHJldHVybmluZyBhbiBlcnJvcgorICAgICAgICAgICAgICAgICMgaW5kaWNhdGluZyB0
aGF0IHRoZSBkb2N1bWVudCB3YXMgdW5sb2FkZWQKKyAgICAgICAgICAgICAgICBpZiBzZWVuX2Vy
cm9yOgorICAgICAgICAgICAgICAgICAgICByYWlzZQorICAgICAgICAgICAgICAgIHNlZW5fZXJy
b3IgPSBUcnVlCisKKworY2xhc3MgV2ViRHJpdmVyUmVmVGVzdEV4ZWN1dG9yKFJlZlRlc3RFeGVj
dXRvcik6CisgICAgZGVmIF9faW5pdF9fKHNlbGYsIGJyb3dzZXIsIHNlcnZlcl9jb25maWcsIHRp
bWVvdXRfbXVsdGlwbGllcj0xLAorICAgICAgICAgICAgICAgICBzY3JlZW5zaG90X2NhY2hlPU5v
bmUsIGNsb3NlX2FmdGVyX2RvbmU9VHJ1ZSwKKyAgICAgICAgICAgICAgICAgZGVidWdfaW5mbz1O
b25lLCBjYXBhYmlsaXRpZXM9Tm9uZSwgKiprd2FyZ3MpOgorICAgICAgICAiIiJXZWJEcml2ZXIt
YmFzZWQgZXhlY3V0b3IgZm9yIHJlZnRlc3RzIiIiCisgICAgICAgIFJlZlRlc3RFeGVjdXRvci5f
X2luaXRfXyhzZWxmLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJvd3NlciwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlcnZlcl9jb25maWcsCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBzY3JlZW5zaG90X2NhY2hlPXNjcmVlbnNob3RfY2Fj
aGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aW1lb3V0X211bHRpcGxpZXI9
dGltZW91dF9tdWx0aXBsaWVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVi
dWdfaW5mbz1kZWJ1Z19pbmZvKQorICAgICAgICBzZWxmLnByb3RvY29sID0gV2ViRHJpdmVyUHJv
dG9jb2woc2VsZiwgYnJvd3NlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGNhcGFiaWxpdGllcz1jYXBhYmlsaXRpZXMpCisgICAgICAgIHNlbGYuaW1wbGVtZW50
YXRpb24gPSBSZWZUZXN0SW1wbGVtZW50YXRpb24oc2VsZikKKyAgICAgICAgc2VsZi5jbG9zZV9h
ZnRlcl9kb25lID0gY2xvc2VfYWZ0ZXJfZG9uZQorICAgICAgICBzZWxmLmhhc193aW5kb3cgPSBG
YWxzZQorCisgICAgICAgIHdpdGggb3Blbihvcy5wYXRoLmpvaW4oaGVyZSwgInJlZnRlc3Qtd2Fp
dF93ZWJkcml2ZXIuanMiKSkgYXMgZjoKKyAgICAgICAgICAgIHNlbGYud2FpdF9zY3JpcHQgPSBm
LnJlYWQoKQorCisgICAgZGVmIHJlc2V0KHNlbGYpOgorICAgICAgICBzZWxmLmltcGxlbWVudGF0
aW9uLnJlc2V0KCkKKworICAgIGRlZiBpc19hbGl2ZShzZWxmKToKKyAgICAgICAgcmV0dXJuIHNl
bGYucHJvdG9jb2wuaXNfYWxpdmUoKQorCisgICAgZGVmIGRvX3Rlc3Qoc2VsZiwgdGVzdCk6Cisg
ICAgICAgIHdpZHRoX29mZnNldCwgaGVpZ2h0X29mZnNldCA9IHNlbGYucHJvdG9jb2wud2ViZHJp
dmVyLmV4ZWN1dGVfc2NyaXB0KAorICAgICAgICAgICAgIiIicmV0dXJuIFt3aW5kb3cub3V0ZXJX
aWR0aCAtIHdpbmRvdy5pbm5lcldpZHRoLAorICAgICAgICAgICAgICAgICAgICAgICB3aW5kb3cu
b3V0ZXJIZWlnaHQgLSB3aW5kb3cuaW5uZXJIZWlnaHRdOyIiIgorICAgICAgICApCisgICAgICAg
IHRyeToKKyAgICAgICAgICAgIHNlbGYucHJvdG9jb2wud2ViZHJpdmVyLndpbmRvdy5wb3NpdGlv
biA9ICgwLCAwKQorICAgICAgICBleGNlcHQgY2xpZW50LkludmFsaWRBcmd1bWVudEV4Y2VwdGlv
bjoKKyAgICAgICAgICAgICMgU2FmYXJpIDEyIHRocm93cyB3aXRoIDAgb3IgMSwgdHJlYXRpbmcg
dGhlbSBhcyBib29sczsgZml4ZWQgaW4gU1RQCisgICAgICAgICAgICBzZWxmLnByb3RvY29sLndl
YmRyaXZlci53aW5kb3cucG9zaXRpb24gPSAoMiwgMikKKyAgICAgICAgc2VsZi5wcm90b2NvbC53
ZWJkcml2ZXIud2luZG93LnNpemUgPSAoODAwICsgd2lkdGhfb2Zmc2V0LCA2MDAgKyBoZWlnaHRf
b2Zmc2V0KQorCisgICAgICAgIHJlc3VsdCA9IHNlbGYuaW1wbGVtZW50YXRpb24ucnVuX3Rlc3Qo
dGVzdCkKKworICAgICAgICByZXR1cm4gc2VsZi5jb252ZXJ0X3Jlc3VsdCh0ZXN0LCByZXN1bHQp
CisKKyAgICBkZWYgc2NyZWVuc2hvdChzZWxmLCB0ZXN0LCB2aWV3cG9ydF9zaXplLCBkcGkpOgor
ICAgICAgICAjIGh0dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxhdGZvcm0tdGVzdHMvd3B0L2lzc3Vl
cy83MTM1CisgICAgICAgIGFzc2VydCB2aWV3cG9ydF9zaXplIGlzIE5vbmUKKyAgICAgICAgYXNz
ZXJ0IGRwaSBpcyBOb25lCisKKyAgICAgICAgcmV0dXJuIFdlYkRyaXZlclJ1bihzZWxmLmxvZ2dl
ciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLl9zY3JlZW5zaG90LAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHNlbGYucHJvdG9jb2wsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgc2VsZi50ZXN0X3VybCh0ZXN0KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICB0ZXN0LnRpbWVvdXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5leHRyYV90
aW1lb3V0KS5ydW4oKQorCisgICAgZGVmIF9zY3JlZW5zaG90KHNlbGYsIHByb3RvY29sLCB1cmws
IHRpbWVvdXQpOgorICAgICAgICB3ZWJkcml2ZXIgPSBwcm90b2NvbC53ZWJkcml2ZXIKKyAgICAg
ICAgd2ViZHJpdmVyLnVybCA9IHVybAorCisgICAgICAgIHdlYmRyaXZlci5leGVjdXRlX2FzeW5j
X3NjcmlwdChzZWxmLndhaXRfc2NyaXB0KQorCisgICAgICAgIHNjcmVlbnNob3QgPSB3ZWJkcml2
ZXIuc2NyZWVuc2hvdCgpCisKKyAgICAgICAgIyBzdHJpcCBvZmYgdGhlIGRhdGE6aW1nL3BuZywg
cGFydCBvZiB0aGUgdXJsCisgICAgICAgIGlmIHNjcmVlbnNob3Quc3RhcnRzd2l0aCgiZGF0YTpp
bWFnZS9wbmc7YmFzZTY0LCIpOgorICAgICAgICAgICAgc2NyZWVuc2hvdCA9IHNjcmVlbnNob3Qu
c3BsaXQoIiwiLCAxKVsxXQorCisgICAgICAgIHJldHVybiBzY3JlZW5zaG90CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1
bm5lci93cHRydW5uZXIvZXhlY3V0b3JzL3Byb3RvY29sLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2V4ZWN1
dG9ycy9wcm90b2NvbC5weQppbmRleCA3MWZjM2M5YThmNi4uMDc1ODMxMmQ2NWYgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0
cnVubmVyL3dwdHJ1bm5lci9leGVjdXRvcnMvcHJvdG9jb2wucHkKKysrIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVy
L2V4ZWN1dG9ycy9wcm90b2NvbC5weQpAQCAtMSw0ICsxLDUgQEAKIGltcG9ydCB0cmFjZWJhY2sK
KwogZnJvbSBhYmMgaW1wb3J0IEFCQ01ldGEsIGFic3RyYWN0bWV0aG9kCiAKIApAQCAtNTYsMTEg
KzU3LDggQEAgY2xhc3MgUHJvdG9jb2wob2JqZWN0KToKICAgICAgICAgZXhjZXB0IEV4Y2VwdGlv
bjoKICAgICAgICAgICAgIGlmIG1zZyBpcyBub3QgTm9uZToKICAgICAgICAgICAgICAgICBzZWxm
LmxvZ2dlci53YXJuaW5nKG1zZykKLSAgICAgICAgICAgIHNlbGYubG9nZ2VyLmVycm9yKHRyYWNl
YmFjay5mb3JtYXRfZXhjKCkpCi0gICAgICAgICAgICBzZWxmLmV4ZWN1dG9yLnJ1bm5lci5zZW5k
X21lc3NhZ2UoImluaXRfZmFpbGVkIikKLSAgICAgICAgICAgIHJldHVybgotICAgICAgICBlbHNl
OgotICAgICAgICAgICAgc2VsZi5leGVjdXRvci5ydW5uZXIuc2VuZF9tZXNzYWdlKCJpbml0X3N1
Y2NlZWRlZCIpCisgICAgICAgICAgICBzZWxmLmxvZ2dlci53YXJuaW5nKHRyYWNlYmFjay5mb3Jt
YXRfZXhjKCkpCisgICAgICAgICAgICByYWlzZQogCiAgICAgQGFic3RyYWN0bWV0aG9kCiAgICAg
ZGVmIGNvbm5lY3Qoc2VsZik6CkBAIC0xMTEsMTEgKzEwOSwxMSBAQCBjbGFzcyBCYXNlUHJvdG9j
b2xQYXJ0KFByb3RvY29sUGFydCk6CiAgICAgbmFtZSA9ICJiYXNlIgogCiAgICAgQGFic3RyYWN0
bWV0aG9kCi0gICAgZGVmIGV4ZWN1dGVfc2NyaXB0KHNlbGYsIHNjcmlwdCwgYXN5bmM9RmFsc2Up
OgorICAgIGRlZiBleGVjdXRlX3NjcmlwdChzZWxmLCBzY3JpcHQsIGFzeW5jaHJvbm91cz1GYWxz
ZSk6CiAgICAgICAgICIiIkV4ZWN1dGUgamF2YXNjcmlwdCBpbiB0aGUgY3VycmVudCBXaW5kb3cu
CiAKICAgICAgICAgOnBhcmFtIHN0ciBzY3JpcHQ6IFRoZSBqcyBzb3VyY2UgdG8gZXhlY3V0ZS4g
VGhpcyBpcyBpbXBsaWNpdGx5IHdyYXBwZWQgaW4gYSBmdW5jdGlvbi4KLSAgICAgICAgOnBhcmFt
IGJvb2wgYXN5bmM6IFdoZXRoZXIgdGhlIHNjcmlwdCBpcyBhc3luY2hyb25vdXMgaW4gdGhlIHdl
YmRyaXZlcgorICAgICAgICA6cGFyYW0gYm9vbCBhc3luY2hyb25vdXM6IFdoZXRoZXIgdGhlIHNj
cmlwdCBpcyBhc3luY2hyb25vdXMgaW4gdGhlIHdlYmRyaXZlcgogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgc2Vuc2UgaS5lLiB3aGV0aGVyIHRoZSByZXR1cm4gdmFsdWUgaXMgdGhlIHJlc3Vs
dCBvZgogICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhlIGluaXRpYWwgZnVuY3Rpb24gY2Fs
bCBvciBpZiBpdCB3YWl0cyBmb3Igc29tZSBjYWxsYmFjay4KICAgICAgICAgOnJldHVybnM6IFRo
ZSByZXN1bHQgb2YgdGhlIHNjcmlwdCBleGVjdXRpb24uCkBAIC0yMzcsNiArMjM1LDE3IEBAIGNs
YXNzIFNlbGVjdG9yUHJvdG9jb2xQYXJ0KFByb3RvY29sUGFydCk6CiAKICAgICBuYW1lID0gInNl
bGVjdCIKIAorICAgIGRlZiBlbGVtZW50X2J5X3NlbGVjdG9yKHNlbGYsIGVsZW1lbnRfc2VsZWN0
b3IsIGZyYW1lPSJ3aW5kb3ciKToKKyAgICAgICAgZWxlbWVudHMgPSBzZWxmLmVsZW1lbnRzX2J5
X3NlbGVjdG9yX2FuZF9mcmFtZShlbGVtZW50X3NlbGVjdG9yLCBmcmFtZSkKKyAgICAgICAgZnJh
bWVfbmFtZSA9ICJ3aW5kb3ciCisgICAgICAgIGlmIChmcmFtZSAhPSAid2luZG93Iik6CisgICAg
ICAgICAgICBmcmFtZV9uYW1lID0gZnJhbWUuaWQKKyAgICAgICAgaWYgbGVuKGVsZW1lbnRzKSA9
PSAwOgorICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigiU2VsZWN0b3IgJyVzJyBpbiBmcmFt
ZSAnJXMnIG1hdGNoZXMgbm8gZWxlbWVudHMiICUgKGVsZW1lbnRfc2VsZWN0b3IsIGZyYW1lX25h
bWUpKQorICAgICAgICBlbGlmIGxlbihlbGVtZW50cykgPiAxOgorICAgICAgICAgICAgcmFpc2Ug
VmFsdWVFcnJvcigiU2VsZWN0b3IgJyVzJyBpbiBmcmFtZSAnJXMnIG1hdGNoZXMgbXVsdGlwbGUg
ZWxlbWVudHMiICUgKGVsZW1lbnRfc2VsZWN0b3IsIGZyYW1lX25hbWUpKQorICAgICAgICByZXR1
cm4gZWxlbWVudHNbMF0KKwogICAgIEBhYnN0cmFjdG1ldGhvZAogICAgIGRlZiBlbGVtZW50c19i
eV9zZWxlY3RvcihzZWxmLCBzZWxlY3Rvcik6CiAgICAgICAgICIiIlNlbGVjdCBlbGVtZW50cyBt
YXRjaGluZyBhIENTUyBzZWxlY3RvcgpAQCAtMjQ1LDYgKzI1NCwxMyBAQCBjbGFzcyBTZWxlY3Rv
clByb3RvY29sUGFydChQcm90b2NvbFBhcnQpOgogICAgICAgICA6cmV0dXJuczogQSBsaXN0IG9m
IHByb3RvY29sLXNwZWNpZmljIGhhbmRsZXMgdG8gZWxlbWVudHMiIiIKICAgICAgICAgcGFzcwog
CisgICAgQGFic3RyYWN0bWV0aG9kCisgICAgZGVmIGVsZW1lbnRzX2J5X3NlbGVjdG9yX2FuZF9m
cmFtZShzZWxmLCBlbGVtZW50X3NlbGVjdG9yLCBmcmFtZSk6CisgICAgICAgICIiIlNlbGVjdCBl
bGVtZW50cyBtYXRjaGluZyBhIENTUyBzZWxlY3RvcgorICAgICAgICA6cGFyYW0gc3RyIHNlbGVj
dG9yOiBUaGUgQ1NTIHNlbGVjdG9yCisgICAgICAgIDpyZXR1cm5zOiBBIGxpc3Qgb2YgcHJvdG9j
b2wtc3BlY2lmaWMgaGFuZGxlcyB0byBlbGVtZW50cyIiIgorICAgICAgICBwYXNzCisKIAogY2xh
c3MgQ2xpY2tQcm90b2NvbFBhcnQoUHJvdG9jb2xQYXJ0KToKICAgICAiIiJQcm90b2NvbCBwYXJ0
IGZvciBwZXJmb3JtaW5nIHRydXN0ZWQgY2xpY2tzIiIiCkBAIC0yNTksNiArMjc1LDcgQEAgY2xh
c3MgQ2xpY2tQcm90b2NvbFBhcnQoUHJvdG9jb2xQYXJ0KToKICAgICAgICAgOnBhcmFtIGVsZW1l
bnQ6IEEgcHJvdG9jb2wtc3BlY2lmaWMgaGFuZGxlIHRvIGFuIGVsZW1lbnQuIiIiCiAgICAgICAg
IHBhc3MKIAorCiBjbGFzcyBTZW5kS2V5c1Byb3RvY29sUGFydChQcm90b2NvbFBhcnQpOgogICAg
ICIiIlByb3RvY29sIHBhcnQgZm9yIHBlcmZvcm1pbmcgdHJ1c3RlZCBjbGlja3MiIiIKICAgICBf
X21ldGFjbGFzc19fID0gQUJDTWV0YQpAQCAtMjc0LDYgKzI5MSwzNCBAQCBjbGFzcyBTZW5kS2V5
c1Byb3RvY29sUGFydChQcm90b2NvbFBhcnQpOgogICAgICAgICBwYXNzCiAKIAorY2xhc3MgR2Vu
ZXJhdGVUZXN0UmVwb3J0UHJvdG9jb2xQYXJ0KFByb3RvY29sUGFydCk6CisgICAgIiIiUHJvdG9j
b2wgcGFydCBmb3IgZ2VuZXJhdGluZyB0ZXN0IHJlcG9ydHMiIiIKKyAgICBfX21ldGFjbGFzc19f
ID0gQUJDTWV0YQorCisgICAgbmFtZSA9ICJnZW5lcmF0ZV90ZXN0X3JlcG9ydCIKKworICAgIEBh
YnN0cmFjdG1ldGhvZAorICAgIGRlZiBnZW5lcmF0ZV90ZXN0X3JlcG9ydChzZWxmLCBtZXNzYWdl
KToKKyAgICAgICAgIiIiR2VuZXJhdGUgYSB0ZXN0IHJlcG9ydC4KKworICAgICAgICA6cGFyYW0g
bWVzc2FnZTogVGhlIG1lc3NhZ2UgdG8gYmUgY29udGFpbmVkIGluIHRoZSByZXBvcnQuIiIiCisg
ICAgICAgIHBhc3MKKworCitjbGFzcyBBY3Rpb25TZXF1ZW5jZVByb3RvY29sUGFydChQcm90b2Nv
bFBhcnQpOgorICAgICIiIlByb3RvY29sIHBhcnQgZm9yIHBlcmZvcm1pbmcgdHJ1c3RlZCBjbGlj
a3MiIiIKKyAgICBfX21ldGFjbGFzc19fID0gQUJDTWV0YQorCisgICAgbmFtZSA9ICJhY3Rpb25f
c2VxdWVuY2UiCisKKyAgICBAYWJzdHJhY3RtZXRob2QKKyAgICBkZWYgc2VuZF9hY3Rpb25zKHNl
bGYsIGFjdGlvbnMpOgorICAgICAgICAiIiJTZW5kIGEgc2VxdWVuY2Ugb2YgYWN0aW9ucyB0byB0
aGUgd2luZG93LgorCisgICAgICAgIDpwYXJhbSBhY3Rpb25zOiBBIHByb3RvY29sLXNwZWNpZmlj
IGhhbmRsZSB0byBhbiBhcnJheSBvZiBhY3Rpb25zLiIiIgorICAgICAgICBwYXNzCisKKwogY2xh
c3MgVGVzdERyaXZlclByb3RvY29sUGFydChQcm90b2NvbFBhcnQpOgogICAgICIiIlByb3RvY29s
IHBhcnQgdGhhdCBpbXBsZW1lbnRzIHRoZSBiYXNpYyBmdW5jdGlvbmFsaXR5IHJlcXVpcmVkIGZv
cgogICAgIGFsbCB0ZXN0ZHJpdmVyLWJhc2VkIHRlc3RzLiIiIgpAQCAtMzIwLDMgKzM2NSw2MiBA
QCBjbGFzcyBDb3ZlcmFnZVByb3RvY29sUGFydChQcm90b2NvbFBhcnQpOgogICAgIGRlZiBkdW1w
KHNlbGYpOgogICAgICAgICAiIiJEdW1wIGNvdmVyYWdlIGNvdW50ZXJzIiIiCiAgICAgICAgIHBh
c3MKKworY2xhc3MgVmlydHVhbEF1dGhlbnRpY2F0b3JQcm90b2NvbFBhcnQoUHJvdG9jb2xQYXJ0
KToKKyAgICAiIiJQcm90b2NvbCBwYXJ0IGZvciBjcmVhdGluZyBhbmQgbWFuaXB1bGF0aW5nIHZp
cnR1YWwgYXV0aGVudGljYXRvcnMiIiIKKyAgICBfX21ldGFjbGFzc19fID0gQUJDTWV0YQorCisg
ICAgbmFtZSA9ICJ2aXJ0dWFsX2F1dGhlbnRpY2F0b3IiCisKKyAgICBAYWJzdHJhY3RtZXRob2QK
KyAgICBkZWYgYWRkX3ZpcnR1YWxfYXV0aGVudGljYXRvcihzZWxmLCBjb25maWcpOgorICAgICAg
ICAiIiJBZGQgYSB2aXJ0dWFsIGF1dGhlbnRpY2F0b3IKKworICAgICAgICA6cGFyYW0gY29uZmln
OiBUaGUgQXV0aGVudGljYXRvciBDb25maWd1cmF0aW9uIiIiCisgICAgICAgIHBhc3MKKworICAg
IEBhYnN0cmFjdG1ldGhvZAorICAgIGRlZiByZW1vdmVfdmlydHVhbF9hdXRoZW50aWNhdG9yKHNl
bGYsIGF1dGhlbnRpY2F0b3JfaWQpOgorICAgICAgICAiIiJSZW1vdmUgYSB2aXJ0dWFsIGF1dGhl
bnRpY2F0b3IKKworICAgICAgICA6cGFyYW0gc3RyIGF1dGhlbnRpY2F0b3JfaWQ6IFRoZSBJRCBv
ZiB0aGUgYXV0aGVudGljYXRvciB0byByZW1vdmUiIiIKKyAgICAgICAgcGFzcworCisgICAgQGFi
c3RyYWN0bWV0aG9kCisgICAgZGVmIGFkZF9jcmVkZW50aWFsKHNlbGYsIGF1dGhlbnRpY2F0b3Jf
aWQsIGNyZWRlbnRpYWwpOgorICAgICAgICAiIiJJbmplY3QgYSBjcmVkZW50aWFsIG9udG8gYW4g
YXV0aGVudGljYXRvcgorCisgICAgICAgIDpwYXJhbSBzdHIgYXV0aGVudGljYXRvcl9pZDogVGhl
IElEIG9mIHRoZSBhdXRoZW50aWNhdG9yIHRvIGFkZCB0aGUgY3JlZGVudGlhbCB0bworICAgICAg
ICA6cGFyYW0gY3JlZGVudGlhbDogVGhlIGNyZWRlbnRpYWwgdG8gaW5qZWN0IiIiCisgICAgICAg
IHBhc3MKKworICAgIEBhYnN0cmFjdG1ldGhvZAorICAgIGRlZiBnZXRfY3JlZGVudGlhbHMoc2Vs
ZiwgYXV0aGVudGljYXRvcl9pZCk6CisgICAgICAgICIiIkdldCB0aGUgY3JlZGVudGlhbHMgc3Rv
cmVkIGluIGFuIGF1dGhlbnRpY2F0b3IKKworICAgICAgICA6cGFyYW0gc3RyIGF1dGhlbnRpY2F0
b3JfaWQ6IFRoZSBJRCBvZiB0aGUgYXV0aGVudGljYXRvcgorICAgICAgICA6cmV0dXJuczogQW4g
YXJyYXkgd2l0aCB0aGUgY3JlZGVudGlhbHMgc3RvcmVkIG9uIHRoZSBhdXRoZW50aWNhdG9yIiIi
CisgICAgICAgIHBhc3MKKworICAgIEBhYnN0cmFjdG1ldGhvZAorICAgIGRlZiByZW1vdmVfY3Jl
ZGVudGlhbChzZWxmLCBhdXRoZW50aWNhdG9yX2lkLCBjcmVkZW50aWFsX2lkKToKKyAgICAgICAg
IiIiUmVtb3ZlIGEgY3JlZGVudGlhbCBzdG9yZWQgaW4gYW4gYXV0aGVudGljYXRvcgorCisgICAg
ICAgIDpwYXJhbSBzdHIgYXV0aGVudGljYXRvcl9pZDogVGhlIElEIG9mIHRoZSBhdXRoZW50aWNh
dG9yCisgICAgICAgIDpwYXJhbSBzdHIgY3JlZGVudGlhbF9pZDogVGhlIElEIG9mIHRoZSBjcmVk
ZW50aWFsIiIiCisgICAgICAgIHBhc3MKKworICAgIEBhYnN0cmFjdG1ldGhvZAorICAgIGRlZiBy
ZW1vdmVfYWxsX2NyZWRlbnRpYWxzKHNlbGYsIGF1dGhlbnRpY2F0b3JfaWQpOgorICAgICAgICAi
IiJSZW1vdmUgYWxsIHRoZSBjcmVkZW50aWFscyBzdG9yZWQgaW4gYW4gYXV0aGVudGljYXRvcgor
CisgICAgICAgIDpwYXJhbSBzdHIgYXV0aGVudGljYXRvcl9pZDogVGhlIElEIG9mIHRoZSBhdXRo
ZW50aWNhdG9yIiIiCisgICAgICAgIHBhc3MKKworICAgIEBhYnN0cmFjdG1ldGhvZAorICAgIGRl
ZiBzZXRfdXNlcl92ZXJpZmllZChzZWxmLCBhdXRoZW50aWNhdG9yX2lkLCB1dik6CisgICAgICAg
ICIiIlNldHMgdGhlIHVzZXIgdmVyaWZpZWQgZmxhZyBvbiBhbiBhdXRoZW50aWNhdG9yCisKKyAg
ICAgICAgOnBhcmFtIHN0ciBhdXRoZW50aWNhdG9yX2lkOiBUaGUgSUQgb2YgdGhlIGF1dGhlbnRp
Y2F0b3IKKyAgICAgICAgOnBhcmFtIGJvb2wgdXY6IHRoZSB1c2VyIHZlcmlmaWVkIGZsYWciIiIK
KyAgICAgICAgcGFzcwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2V4ZWN1dG9ycy9yZWZ0ZXN0
LXdhaXRfbWFyaW9uZXR0ZS5qcyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9leGVjdXRvcnMvcmVmdGVzdC13YWl0
X21hcmlvbmV0dGUuanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDYxZjg5NGY4NzYw
Li4wMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvZXhlY3V0b3JzL3JlZnRlc3Qtd2FpdF9t
YXJpb25ldHRlLmpzCisrKyAvZGV2L251bGwKQEAgLTEsMTkgKzAsMCBAQAotdmFyIGNhbGxiYWNr
ID0gYXJndW1lbnRzW2FyZ3VtZW50cy5sZW5ndGggLSAxXTsKLQotZnVuY3Rpb24gdGVzdCh4KSB7
Ci0gIGlmICghcm9vdC5jbGFzc0xpc3QuY29udGFpbnMoInJlZnRlc3Qtd2FpdCIpKSB7Ci0gICAg
b2JzZXJ2ZXIuZGlzY29ubmVjdCgpOwotICAgIGNhbGxiYWNrKCk7Ci0gIH0KLX0KLQotdmFyIHJv
b3QgPSBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQ7Ci12YXIgb2JzZXJ2ZXIgPSBuZXcgTXV0YXRp
b25PYnNlcnZlcih0ZXN0KTsKLQotb2JzZXJ2ZXIub2JzZXJ2ZShyb290LCB7YXR0cmlidXRlczog
dHJ1ZX0pOwotCi1pZiAoZG9jdW1lbnQucmVhZHlTdGF0ZSAhPSAiY29tcGxldGUiKSB7Ci0gIG9u
bG9hZCA9IHRlc3QKLX0gZWxzZSB7Ci0gIHRlc3QoKTsKLX0KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1
bm5lci9leGVjdXRvcnMvcmVmdGVzdC13YWl0X3dlYmRyaXZlci5qcyBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9l
eGVjdXRvcnMvcmVmdGVzdC13YWl0X3dlYmRyaXZlci5qcwppbmRleCBjMWNjNjQ5ZTMyMy4uZjg2
ZWRhY2RlZjIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9leGVjdXRvcnMvcmVmdGVzdC13YWl0
X3dlYmRyaXZlci5qcworKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvZXhlY3V0b3JzL3JlZnRlc3Qtd2FpdF93
ZWJkcml2ZXIuanMKQEAgLTEsMjEgKzEsMjAgQEAKIHZhciBjYWxsYmFjayA9IGFyZ3VtZW50c1th
cmd1bWVudHMubGVuZ3RoIC0gMV07Cit2YXIgb2JzZXJ2ZXIgPSBudWxsOwordmFyIHJvb3QgPSBk
b2N1bWVudC5kb2N1bWVudEVsZW1lbnQ7CiAKLWZ1bmN0aW9uIHJvb3Rfd2FpdCgpIHsKLSAgaWYg
KCFyb290LmNsYXNzTGlzdC5jb250YWlucygicmVmdGVzdC13YWl0IikpIHsKLSAgICBvYnNlcnZl
ci5kaXNjb25uZWN0KCk7Ci0KLSAgICBpZiAoRG9jdW1lbnQucHJvdG90eXBlLmhhc093blByb3Bl
cnR5KCJmb250cyIpKSB7Ci0gICAgICBkb2N1bWVudC5mb250cy5yZWFkeS50aGVuKHJlYWR5X2Zv
cl9zY3JlZW5zaG90KTsKLSAgICB9IGVsc2UgewotICAgICAgLy8gVGhpcyBtaWdodCB0YWtlIHRo
ZSBzY3JlZW5zaG90IHRvbyBlYXJseSwgZGVwZW5kaW5nIG9uIHdoZXRoZXIgdGhlCi0gICAgICAv
LyBsb2FkIGV2ZW50IGlzIGJsb2NrZWQgb24gZm9udHMgYmVpbmcgbG9hZGVkLiBTZWU6Ci0gICAg
ICAvLyBodHRwczovL2dpdGh1Yi5jb20vdzNjL2Nzc3dnLWRyYWZ0cy9pc3N1ZXMvMTA4OAotICAg
ICAgcmVhZHlfZm9yX3NjcmVlbnNob3QoKTsKLSAgICB9CitmdW5jdGlvbiB3YWl0X2xvYWQoKSB7
CisgIGlmIChEb2N1bWVudC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkoImZvbnRzIikpIHsKKyAg
ICBkb2N1bWVudC5mb250cy5yZWFkeS50aGVuKHdhaXRfcGFpbnRzKTsKKyAgfSBlbHNlIHsKKyAg
ICAvLyBUaGlzIG1pZ2h0IHRha2UgdGhlIHNjcmVlbnNob3QgdG9vIGVhcmx5LCBkZXBlbmRpbmcg
b24gd2hldGhlciB0aGUKKyAgICAvLyBsb2FkIGV2ZW50IGlzIGJsb2NrZWQgb24gZm9udHMgYmVp
bmcgbG9hZGVkLiBTZWU6CisgICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL3czYy9jc3N3Zy1kcmFm
dHMvaXNzdWVzLzEwODgKKyAgICB3YWl0X3BhaW50cygpOwogICB9CiB9CiAKLWZ1bmN0aW9uIHJl
YWR5X2Zvcl9zY3JlZW5zaG90KCkgeworCitmdW5jdGlvbiB3YWl0X3BhaW50cygpIHsKICAgLy8g
QXMgb2YgMjAxNy0wNC0wNSwgdGhlIENocm9taXVtIHdlYiBicm93c2VyIGV4aGliaXRzIGEgcmVu
ZGVyaW5nIGJ1ZwogICAvLyAoaHR0cHM6Ly9idWdzLmNocm9taXVtLm9yZy9wL2Nocm9taXVtL2lz
c3Vlcy9kZXRhaWw/aWQ9NzA4NzU3KSB0aGF0CiAgIC8vIHByb2R1Y2VzIGluc3RhYmlsaXR5IGR1
cmluZyBzY3JlZW4gY2FwdHVyZS4gVGhlIGZvbGxvd2luZyB1c2Ugb2YKQEAgLTI3LDE4ICsyNiwy
OSBAQCBmdW5jdGlvbiByZWFkeV9mb3Jfc2NyZWVuc2hvdCgpIHsKIAogICByZXF1ZXN0QW5pbWF0
aW9uRnJhbWUoZnVuY3Rpb24oKSB7CiAgICAgcmVxdWVzdEFuaW1hdGlvbkZyYW1lKGZ1bmN0aW9u
KCkgewotICAgICAgY2FsbGJhY2soKTsKKyAgICAgIHNjcmVlbnNob3RfaWZfcmVhZHkoKTsKICAg
ICB9KTsKICAgfSk7CiB9CiAKLXZhciByb290ID0gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50Owot
dmFyIG9ic2VydmVyID0gbmV3IE11dGF0aW9uT2JzZXJ2ZXIocm9vdF93YWl0KTsKK2Z1bmN0aW9u
IHNjcmVlbnNob3RfaWZfcmVhZHkoKSB7CisgIGlmIChyb290LmNsYXNzTGlzdC5jb250YWlucygi
cmVmdGVzdC13YWl0IikgJiYKKyAgICAgIG9ic2VydmVyID09PSBudWxsKSB7CisgICAgb2JzZXJ2
ZXIgPSBuZXcgTXV0YXRpb25PYnNlcnZlcih3YWl0X3BhaW50cyk7CisgICAgb2JzZXJ2ZXIub2Jz
ZXJ2ZShyb290LCB7YXR0cmlidXRlczogdHJ1ZX0pOworICAgIHZhciBldmVudCA9IG5ldyBFdmVu
dCgiVGVzdFJlbmRlcmVkIiwge2J1YmJsZXM6IHRydWV9KTsKKyAgICByb290LmRpc3BhdGNoRXZl
bnQoZXZlbnQpOworICAgIHJldHVybjsKKyAgfQorICBpZiAob2JzZXJ2ZXIgIT09IG51bGwpIHsK
KyAgICBvYnNlcnZlci5kaXNjb25uZWN0KCk7CisgIH0KKyAgY2FsbGJhY2soKTsKK30KIAotb2Jz
ZXJ2ZXIub2JzZXJ2ZShyb290LCB7YXR0cmlidXRlczogdHJ1ZX0pOwogCiBpZiAoZG9jdW1lbnQu
cmVhZHlTdGF0ZSAhPSAiY29tcGxldGUiKSB7Ci0gICAgb25sb2FkID0gcm9vdF93YWl0OworICBh
ZGRFdmVudExpc3RlbmVyKCdsb2FkJywgd2FpdF9sb2FkKTsKIH0gZWxzZSB7Ci0gICAgcm9vdF93
YWl0KCk7CisgIHdhaXRfbG9hZCgpOwogfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2V4ZWN1
dG9ycy9yZWZ0ZXN0LmpzIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2V4ZWN1dG9ycy9yZWZ0ZXN0LmpzCmluZGV4
IDViZDVjNjA5Y2JkLi4xYmE5OGM2ODZmMCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2V4ZWN1
dG9ycy9yZWZ0ZXN0LmpzCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9leGVjdXRvcnMvcmVmdGVzdC5qcwpA
QCAtMSArMSBAQAotdmFyIHdpbiA9IHdpbmRvdy5vcGVuKCJhYm91dDpibGFuayIsICJ0ZXN0Iiwg
IndpZHRoPTYwMCxoZWlnaHQ9NjAwIik7Cit2YXIgd2luID0gd2luZG93Lm9wZW4oImFib3V0OmJs
YW5rIiwgInRlc3QiLCAibGVmdD0wLHRvcD0wLHdpZHRoPTgwMCxoZWlnaHQ9NjAwIik7CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3dwdHJ1bm5lci93cHRydW5uZXIvZXhlY3V0b3JzL3J1bm5lci5qcyBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9l
eGVjdXRvcnMvcnVubmVyLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
Li4xNzFlNmZlYmQ5ZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9leGVjdXRvcnMv
cnVubmVyLmpzCkBAIC0wLDAgKzEgQEAKK2RvY3VtZW50LnRpdGxlID0gJyUodGl0bGUpcyc7CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3dwdHJ1bm5lci93cHRydW5uZXIvZXhlY3V0b3JzL3Rlc3RoYXJuZXNzX3dlYmRyaXZlci5q
cyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0
cnVubmVyL3dwdHJ1bm5lci9leGVjdXRvcnMvdGVzdGhhcm5lc3Nfd2ViZHJpdmVyLmpzCmRlbGV0
ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3ZjAwMDUwZmE3ZS4uMDAwMDAwMDAwMDAKLS0tIGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5u
ZXIvd3B0cnVubmVyL2V4ZWN1dG9ycy90ZXN0aGFybmVzc193ZWJkcml2ZXIuanMKKysrIC9kZXYv
bnVsbApAQCAtMSwyNSArMCwwIEBACi13aW5kb3cudGltZW91dF9tdWx0aXBsaWVyID0gJSh0aW1l
b3V0X211bHRpcGxpZXIpZDsKLQotd2luZG93Lm1lc3NhZ2VfcXVldWUgPSBbXTsKLQotd2luZG93
LnNldE1lc3NhZ2VMaXN0ZW5lciA9IGZ1bmN0aW9uKGZ1bmMpIHsKLSAgd2luZG93LmN1cnJlbnRf
bGlzdGVuZXIgPSBmdW5jOwotICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigKLSAgICAibWVzc2Fn
ZSIsCi0gICAgZnVuYywKLSAgICBmYWxzZQotICApOwotfTsKLQotd2luZG93LnNldE1lc3NhZ2VM
aXN0ZW5lcihmdW5jdGlvbihldmVudCkgewotICB3aW5kb3cubWVzc2FnZV9xdWV1ZS5wdXNoKGV2
ZW50KTsKLX0pOwotCi13aW5kb3cud2luID0gd2luZG93Lm9wZW4oIiUoYWJzX3VybClzIiwgIiUo
d2luZG93X2lkKXMiKTsKLQotaWYgKCUodGltZW91dClzICE9IG51bGwpIHsKLSAgd2luZG93LnRp
bWVyID0gc2V0VGltZW91dChmdW5jdGlvbigpIHsKLSAgICB3aW5kb3cud2luLnRpbWVvdXQoKTsK
LSAgICB3aW5kb3cud2luLmNsb3NlKCk7Ci0gIH0sICUodGltZW91dClzKTsKLX0KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0
cnVubmVyL3dwdHJ1bm5lci9leGVjdXRvcnMvdGVzdGhhcm5lc3Nfd2ViZHJpdmVyX3Jlc3VtZS5q
cyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0
cnVubmVyL3dwdHJ1bm5lci9leGVjdXRvcnMvdGVzdGhhcm5lc3Nfd2ViZHJpdmVyX3Jlc3VtZS5q
cwppbmRleCA3YTJkZjk4ZWQ0ZS4uMzZkMDg2Yzk3NDcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5l
ci9leGVjdXRvcnMvdGVzdGhhcm5lc3Nfd2ViZHJpdmVyX3Jlc3VtZS5qcworKysgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRy
dW5uZXIvZXhlY3V0b3JzL3Rlc3RoYXJuZXNzX3dlYmRyaXZlcl9yZXN1bWUuanMKQEAgLTEsNDYg
KzEsNSBAQAotdmFyIGNhbGxiYWNrID0gYXJndW1lbnRzW2FyZ3VtZW50cy5sZW5ndGggLSAxXTsK
LQotZnVuY3Rpb24gcHJvY2Vzc19ldmVudChldmVudCkgewotICB2YXIgZGF0YSA9IGV2ZW50LmRh
dGE7Ci0KLSAgdmFyIHBheWxvYWQgPSB1bmRlZmluZWQ7Ci0KLSAgc3dpdGNoKGRhdGEudHlwZSkg
ewotICBjYXNlICJjb21wbGV0ZSI6Ci0gICAgdmFyIHRlc3RzID0gZXZlbnQuZGF0YS50ZXN0czsK
LSAgICB2YXIgc3RhdHVzID0gZXZlbnQuZGF0YS5zdGF0dXM7Ci0KLSAgICB2YXIgc3VidGVzdF9y
ZXN1bHRzID0gdGVzdHMubWFwKGZ1bmN0aW9uKHgpIHsKLSAgICAgIHJldHVybiBbeC5uYW1lLCB4
LnN0YXR1cywgeC5tZXNzYWdlLCB4LnN0YWNrXTsKLSAgICB9KTsKLSAgICBwYXlsb2FkID0gW3N0
YXR1cy5zdGF0dXMsCi0gICAgICAgICAgICAgICBzdGF0dXMubWVzc2FnZSwKLSAgICAgICAgICAg
ICAgIHN0YXR1cy5zdGFjaywKLSAgICAgICAgICAgICAgIHN1YnRlc3RfcmVzdWx0c107Ci0gICAg
Y2xlYXJUaW1lb3V0KHdpbmRvdy50aW1lcik7Ci0gICAgYnJlYWs7Ci0KLSAgY2FzZSAiYWN0aW9u
IjoKLSAgICB3aW5kb3cuc2V0TWVzc2FnZUxpc3RlbmVyKGZ1bmN0aW9uKGV2ZW50KSB7Ci0gICAg
ICB3aW5kb3cubWVzc2FnZV9xdWV1ZS5wdXNoKGV2ZW50KTsKLSAgICB9KTsKLSAgICBwYXlsb2Fk
ID0gZGF0YTsKLSAgICBicmVhazsKLSAgZGVmYXVsdDoKLSAgICByZXR1cm47Ci0gIH0KLQotICBj
YWxsYmFjayhbIiUodXJsKXMiLCBkYXRhLnR5cGUsIHBheWxvYWRdKTsKLX0KLQotd2luZG93LnJl
bW92ZUV2ZW50TGlzdGVuZXIoIm1lc3NhZ2UiLCB3aW5kb3cuY3VycmVudF9saXN0ZW5lcik7Ci1p
ZiAod2luZG93Lm1lc3NhZ2VfcXVldWUubGVuZ3RoKSB7Ci0gIHZhciBuZXh0ID0gd2luZG93Lm1l
c3NhZ2VfcXVldWUuc2hpZnQoKTsKLSAgcHJvY2Vzc19ldmVudChuZXh0KTsKLX0gZWxzZSB7Ci0g
IHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKAotICAgICJtZXNzYWdlIiwgZnVuY3Rpb24gZihldmVu
dCkgewotICAgICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoIm1lc3NhZ2UiLCBmKTsKLSAg
ICAgIHByb2Nlc3NfZXZlbnQoZXZlbnQpOwotICAgIH0sIGZhbHNlKTsKLX0KKy8vIFdlIGhhdmUg
dG8gc2V0IHRoZSB1cmwgaGVyZSB0byBlbnN1cmUgd2UgZ2V0IHRoZSBzYW1lIGVzY2FwaW5nIGFz
IGluIHRoZSBoYXJuZXNzCisvLyBhbmQgYWxzbyB0byBoYW5kbGUgdGhlIGNhc2Ugd2hlcmUgdGhl
IHRlc3QgY2hhbmdlcyB0aGUgZnJhZ21lbnQKK3dpbmRvdy5fX3dwdHJ1bm5lcl91cmwgPSAiJSh1
cmwpcyI7Cit3aW5kb3cuX193cHRydW5uZXJfdGVzdGRyaXZlcl9jYWxsYmFjayA9IGFyZ3VtZW50
c1thcmd1bWVudHMubGVuZ3RoIC0gMV07Cit3aW5kb3cuX193cHRydW5uZXJfcHJvY2Vzc19uZXh0
X2V2ZW50KCk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvZXhlY3V0b3JzL3czYy1pbXBvcnQu
bG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93
cHRydW5uZXIvd3B0cnVubmVyL2V4ZWN1dG9ycy93M2MtaW1wb3J0LmxvZwppbmRleCBlYjdmNDM5
NmQ3ZS4uZWI5MWRiOTNiNTMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9leGVjdXRvcnMvdzNj
LWltcG9ydC5sb2cKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2V4ZWN1dG9ycy93M2MtaW1wb3J0LmxvZwpA
QCAtMTgsNiArMTgsNyBAQCBMaXN0IG9mIGZpbGVzOgogL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9leGVjdXRvcnMv
YmFzZS5weQogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvd3B0cnVubmVyL3dwdHJ1bm5lci9leGVjdXRvcnMvZXhlY3V0b3JjaHJvbWUucHkKIC9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93
cHRydW5uZXIvZXhlY3V0b3JzL2V4ZWN1dG9yZWRnZS5weQorL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9leGVjdXRv
cnMvZXhlY3V0b3JlZGdlY2hyb21pdW0ucHkKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvZXhlY3V0b3JzL2V4ZWN1
dG9yaW50ZXJuZXRleHBsb3Jlci5weQogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9leGVjdXRvcnMvZXhlY3V0b3Jt
YXJpb25ldHRlLnB5CiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2V4ZWN1dG9ycy9leGVjdXRvcm9wZXJhLnB5CkBA
IC0yNSwxMiArMjYsMTIgQEAgTGlzdCBvZiBmaWxlczoKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvZXhlY3V0b3Jz
L2V4ZWN1dG9yc2VsZW5pdW0ucHkKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvZXhlY3V0b3JzL2V4ZWN1dG9yc2Vy
dm8ucHkKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3dwdHJ1bm5lci93cHRydW5uZXIvZXhlY3V0b3JzL2V4ZWN1dG9yc2Vydm9kcml2ZXIucHkKKy9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5l
ci93cHRydW5uZXIvZXhlY3V0b3JzL2V4ZWN1dG9yd2ViZHJpdmVyLnB5CiAvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVy
L2V4ZWN1dG9ycy9leGVjdXRvcndlYmtpdC5weQogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9leGVjdXRvcnMvcHJv
Y2Vzcy5weQogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvd3B0cnVubmVyL3dwdHJ1bm5lci9leGVjdXRvcnMvcHJvdG9jb2wucHkKLS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5u
ZXIvZXhlY3V0b3JzL3JlZnRlc3Qtd2FpdF9tYXJpb25ldHRlLmpzCiAvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2V4
ZWN1dG9ycy9yZWZ0ZXN0LXdhaXRfd2ViZHJpdmVyLmpzCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2V4ZWN1dG9y
cy9yZWZ0ZXN0LmpzCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2V4ZWN1dG9ycy9ydW5uZXIuanMKIC9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRy
dW5uZXIvZXhlY3V0b3JzL3Rlc3RoYXJuZXNzX3NlcnZvZHJpdmVyLmpzCi0vTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVy
L2V4ZWN1dG9ycy90ZXN0aGFybmVzc193ZWJkcml2ZXIuanMKIC9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvZXhlY3V0
b3JzL3Rlc3RoYXJuZXNzX3dlYmRyaXZlcl9yZXN1bWUuanMKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1
bm5lci9leHBlY3RlZHRyZWUucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvZXhwZWN0ZWR0cmVlLnB5Cm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi40ZDUwNTA4NmJkOAotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvd3B0cnVubmVyL3dwdHJ1bm5lci9leHBlY3RlZHRyZWUucHkKQEAgLTAsMCArMSwxMzEgQEAK
K2Zyb20gbWF0aCBpbXBvcnQgbG9nCitmcm9tIGNvbGxlY3Rpb25zIGltcG9ydCBkZWZhdWx0ZGlj
dAorCitjbGFzcyBOb2RlKG9iamVjdCk6CisgICAgZGVmIF9faW5pdF9fKHNlbGYsIHByb3AsIHZh
bHVlKToKKyAgICAgICAgc2VsZi5wcm9wID0gcHJvcAorICAgICAgICBzZWxmLnZhbHVlID0gdmFs
dWUKKyAgICAgICAgc2VsZi5wYXJlbnQgPSBOb25lCisKKyAgICAgICAgc2VsZi5jaGlsZHJlbiA9
IHNldCgpCisKKyAgICAgICAgIyBQb3B1bGF0ZWQgZm9yIGxlYWYgbm9kZXMKKyAgICAgICAgc2Vs
Zi5ydW5faW5mbyA9IHNldCgpCisgICAgICAgIHNlbGYucmVzdWx0X3ZhbHVlcyA9IGRlZmF1bHRk
aWN0KGludCkKKworICAgIGRlZiBhZGQoc2VsZiwgbm9kZSk6CisgICAgICAgIHNlbGYuY2hpbGRy
ZW4uYWRkKG5vZGUpCisgICAgICAgIG5vZGUucGFyZW50ID0gc2VsZgorCisgICAgZGVmIF9faXRl
cl9fKHNlbGYpOgorICAgICAgICB5aWVsZCBzZWxmCisgICAgICAgIGZvciBub2RlIGluIHNlbGYu
Y2hpbGRyZW46CisgICAgICAgICAgICBmb3IgaXRlbSBpbiBub2RlOgorICAgICAgICAgICAgICAg
IHlpZWxkIGl0ZW0KKworICAgIGRlZiBfX2xlbl9fKHNlbGYpOgorICAgICAgICByZXR1cm4gMSAr
IHN1bShsZW4oaXRlbSkgZm9yIGl0ZW0gaW4gc2VsZi5jaGlsZHJlbikKKworCitkZWYgZW50cm9w
eShyZXN1bHRzKToKKyAgICAiIiJUaGlzIGlzIGJhc2ljYWxseSBhIG1lYXN1cmUgb2YgdGhlIHVu
aWZvcm1pdHkgb2YgdGhlIHZhbHVlcyBpbiByZXN1bHRzCisgICAgYmFzZWQgb24gdGhlIHNoYW5u
b24gZW50cm9weSIiIgorCisgICAgcmVzdWx0X2NvdW50cyA9IGRlZmF1bHRkaWN0KGludCkKKyAg
ICB0b3RhbCA9IGZsb2F0KGxlbihyZXN1bHRzKSkKKyAgICBmb3IgdmFsdWVzIGluIHJlc3VsdHMu
aXRlcnZhbHVlcygpOgorICAgICAgICAjIE5vdCBzdXJlIHRoaXMgaXMgcmlnaHQsIHBvc3NpYmx5
IHdhbnQgdG8gdHJlYXQgbXVsdGlwbGUgdmFsdWVzIGFzCisgICAgICAgICMgZGlzdGluY3QgZnJv
bSBtdWx0aXBsZSBvZiB0aGUgc2FtZSB2YWx1ZT8KKyAgICAgICAgZm9yIHZhbHVlIGluIHZhbHVl
czoKKyAgICAgICAgICAgIHJlc3VsdF9jb3VudHNbdmFsdWVdICs9IDEKKworICAgIGVudHJvcHlf
c3VtID0gMAorCisgICAgZm9yIGNvdW50IGluIHJlc3VsdF9jb3VudHMuaXRlcnZhbHVlcygpOgor
ICAgICAgICBwcm9wID0gZmxvYXQoY291bnQpIC8gdG90YWwKKyAgICAgICAgZW50cm9weV9zdW0g
LT0gcHJvcCAqIGxvZyhwcm9wLCAyKQorCisgICAgcmV0dXJuIGVudHJvcHlfc3VtCisKKworZGVm
IHNwbGl0X3Jlc3VsdHMocHJvcCwgcmVzdWx0cyk6CisgICAgIiIiU3BsaXQgYSBkaWN0aW9uYXJ5
IG9mIHJlc3VsdHMgaW50byBhIGRpY3Rpb25hcnkgb2YgZGljdGlvbmFyaWVzIHdoZXJlCisgICAg
ZWFjaCBzdWItZGljdGlvbmFyeSBoYXMgYSBzcGVjaWZpYyB2YWx1ZSBvZiB0aGUgZ2l2ZW4gcHJv
cGVydHkiIiIKKyAgICBieV9wcm9wID0gZGVmYXVsdGRpY3QoZGljdCkKKyAgICBmb3IgcnVuX2lu
Zm8sIHZhbHVlIGluIHJlc3VsdHMuaXRlcml0ZW1zKCk6CisgICAgICAgIGJ5X3Byb3BbcnVuX2lu
Zm9bcHJvcF1dW3J1bl9pbmZvXSA9IHZhbHVlCisKKyAgICByZXR1cm4gYnlfcHJvcAorCisKK2Rl
ZiBidWlsZF90cmVlKHByb3BlcnRpZXMsIGRlcGVuZGVudF9wcm9wcywgcmVzdWx0cywgdHJlZT1O
b25lKToKKyAgICAiIiJCdWlsZCBhIGRlY2lzaW9uIHRyZWUgbWFwcGluZyBwcm9wZXJ0aWVzIHRv
IHJlc3VsdHMKKworICAgIDpwYXJhbSBwcm9wZXJ0aWVzOiAtIEEgbGlzdCBvZiBydW5faW5mbyBw
cm9wZXJ0aWVzIHRvIGNvbnNpZGVyCisgICAgICAgICAgICAgICAgICAgICAgICAgaW4gdGhlIHRy
ZWUKKyAgICA6cGFyYW0gZGVwZW5kZW50X3Byb3BzOiAtIEEgZGljdGlvbmFyeSBtYXBwaW5nIHBy
b3BlcnR5IG5hbWUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvIHByb3BlcnRpZXMg
dGhhdCBzaG91bGQgb25seSBiZSBjb25zaWRlcmVkCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBhZnRlciB0aGUgcHJvcGVydGllcyBpbiB0aGUga2V5LiBGb3IgZXhhbXBsZQorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgeyJvcyI6IFsidmVyc2lvbiJdfSBtZWFucyB0aGF0ICJ2
ZXJzaW9uIiB3b24ndAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmUgdXNlZCB1bnRp
bCBhZnRlciBvcy4KKyAgICA6cGFyYW0gcmVzdWx0czogRGljdGlvbmFyeSBtYXBwaW5nIHJ1bl9p
bmZvIHRvIHNldCBvZiByZXN1bHRzCisgICAgOnRyZWU6IEEgTm9kZSBvYmplY3QgdG8gdXNlIGFz
IHRoZSByb290IG9mIHRoZSAoc3ViKXRyZWUiIiIKKworICAgIGlmIHRyZWUgaXMgTm9uZToKKyAg
ICAgICAgdHJlZSA9IE5vZGUoTm9uZSwgTm9uZSkKKworICAgIHByb3BfaW5kZXggPSB7cHJvcDog
aSBmb3IgaSwgcHJvcCBpbiBlbnVtZXJhdGUocHJvcGVydGllcyl9CisKKyAgICBhbGxfcmVzdWx0
cyA9IGRlZmF1bHRkaWN0KGludCkKKyAgICBmb3IgcmVzdWx0X3ZhbHVlcyBpbiByZXN1bHRzLml0
ZXJ2YWx1ZXMoKToKKyAgICAgICAgZm9yIHJlc3VsdF92YWx1ZSwgY291bnQgaW4gcmVzdWx0X3Zh
bHVlcy5pdGVyaXRlbXMoKToKKyAgICAgICAgICAgIGFsbF9yZXN1bHRzW3Jlc3VsdF92YWx1ZV0g
Kz0gY291bnQKKworICAgICMgSWYgdGhlcmUgaXMgb25seSBvbmUgcmVzdWx0IHdlIGFyZSBkb25l
CisgICAgaWYgbm90IHByb3BlcnRpZXMgb3IgbGVuKGFsbF9yZXN1bHRzKSA9PSAxOgorICAgICAg
ICBmb3IgdmFsdWUsIGNvdW50IGluIGFsbF9yZXN1bHRzLml0ZXJpdGVtcygpOgorICAgICAgICAg
ICAgdHJlZS5yZXN1bHRfdmFsdWVzW3ZhbHVlXSArPSBjb3VudAorICAgICAgICB0cmVlLnJ1bl9p
bmZvIHw9IHNldChyZXN1bHRzLmtleXMoKSkKKyAgICAgICAgcmV0dXJuIHRyZWUKKworICAgIHJl
c3VsdHNfcGFydGl0aW9ucyA9IFtdCisgICAgcmVtb3ZlX3Byb3BlcnRpZXMgPSBzZXQoKQorICAg
IGZvciBwcm9wIGluIHByb3BlcnRpZXM6CisgICAgICAgIHJlc3VsdF9zZXRzID0gc3BsaXRfcmVz
dWx0cyhwcm9wLCByZXN1bHRzKQorICAgICAgICBpZiBsZW4ocmVzdWx0X3NldHMpID09IDE6Cisg
ICAgICAgICAgICAjIElmIHRoaXMgcHJvcGVydHkgZG9lc24ndCBwYXJ0aXRpb24gdGhlIHNwYWNl
IHRoZW4ganVzdCByZW1vdmUgaXQKKyAgICAgICAgICAgICMgZnJvbSB0aGUgc2V0IHRvIGNvbnNp
ZGVyCisgICAgICAgICAgICByZW1vdmVfcHJvcGVydGllcy5hZGQocHJvcCkKKyAgICAgICAgICAg
IGNvbnRpbnVlCisgICAgICAgIG5ld19lbnRyb3B5ID0gMC4KKyAgICAgICAgcmVzdWx0c19zZXRz
X2VudHJvcHkgPSBbXQorICAgICAgICBmb3IgcHJvcF92YWx1ZSwgcmVzdWx0X3NldCBpbiByZXN1
bHRfc2V0cy5pdGVyaXRlbXMoKToKKyAgICAgICAgICAgIHJlc3VsdHNfc2V0c19lbnRyb3B5LmFw
cGVuZCgoZW50cm9weShyZXN1bHRfc2V0KSwgcHJvcF92YWx1ZSwgcmVzdWx0X3NldCkpCisgICAg
ICAgICAgICBuZXdfZW50cm9weSArPSAoZmxvYXQobGVuKHJlc3VsdF9zZXQpKSAvIGxlbihyZXN1
bHRzKSkgKiByZXN1bHRzX3NldHNfZW50cm9weVstMV1bMF0KKworICAgICAgICByZXN1bHRzX3Bh
cnRpdGlvbnMuYXBwZW5kKChuZXdfZW50cm9weSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgcHJvcCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0
c19zZXRzX2VudHJvcHkpKQorCisgICAgIyBJbiB0aGUgY2FzZSB0aGF0IG5vIHByb3BlcnRpZXMg
cGFydGl0aW9uIHRoZSBzcGFjZQorICAgIGlmIG5vdCByZXN1bHRzX3BhcnRpdGlvbnM6CisgICAg
ICAgIGZvciB2YWx1ZSwgY291bnQgaW4gYWxsX3Jlc3VsdHMuaXRlcml0ZW1zKCk6CisgICAgICAg
ICAgICB0cmVlLnJlc3VsdF92YWx1ZXNbdmFsdWVdICs9IGNvdW50CisgICAgICAgIHRyZWUucnVu
X2luZm8gfD0gc2V0KHJlc3VsdHMua2V5cygpKQorICAgICAgICByZXR1cm4gdHJlZQorCisgICAg
IyBzcGxpdCBieSB0aGUgcHJvcGVydHkgd2l0aCB0aGUgaGlnaGVzdCBlbnRyb3B5CisgICAgcmVz
dWx0c19wYXJ0aXRpb25zLnNvcnQoa2V5PWxhbWJkYSB4OiAoeFswXSwgcHJvcF9pbmRleFt4WzFd
XSkpCisgICAgXywgYmVzdF9wcm9wLCBzdWJfcmVzdWx0cyA9IHJlc3VsdHNfcGFydGl0aW9uc1sw
XQorCisgICAgIyBDcmVhdGUgYSBuZXcgc2V0IG9mIHByb3BlcnRpZXMgdGhhdCBjYW4gYmUgdXNl
ZAorICAgIG5ld19wcm9wcyA9IHByb3BlcnRpZXNbOnByb3BfaW5kZXhbYmVzdF9wcm9wXV0gKyBw
cm9wZXJ0aWVzW3Byb3BfaW5kZXhbYmVzdF9wcm9wXSArIDE6XQorICAgIG5ld19wcm9wcy5leHRl
bmQoZGVwZW5kZW50X3Byb3BzLmdldChiZXN0X3Byb3AsIFtdKSkKKyAgICBpZiByZW1vdmVfcHJv
cGVydGllczoKKyAgICAgICAgbmV3X3Byb3BzID0gW2l0ZW0gZm9yIGl0ZW0gaW4gbmV3X3Byb3Bz
IGlmIGl0ZW0gbm90IGluIHJlbW92ZV9wcm9wZXJ0aWVzXQorCisgICAgZm9yIF8sIHByb3BfdmFs
dWUsIHJlc3VsdHNfc2V0cyBpbiBzdWJfcmVzdWx0czoKKyAgICAgICAgbm9kZSA9IE5vZGUoYmVz
dF9wcm9wLCBwcm9wX3ZhbHVlKQorICAgICAgICB0cmVlLmFkZChub2RlKQorICAgICAgICBidWls
ZF90cmVlKG5ld19wcm9wcywgZGVwZW5kZW50X3Byb3BzLCByZXN1bHRzX3NldHMsIG5vZGUpCisg
ICAgcmV0dXJuIHRyZWUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9mb250LnB5IGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0
cnVubmVyL2ZvbnQucHkKaW5kZXggYTM3MGY1ZjVhM2IuLjY2NDdhODU4MGJlIDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1
bm5lci93cHRydW5uZXIvZm9udC5weQorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvZm9udC5weQpAQCAtOTIs
OCArOTIsMTQgQEAgY2xhc3MgRm9udEluc3RhbGxlcihvYmplY3QpOgogCiAgICAgICAgIGdkaTMy
ID0gY3R5cGVzLldpbkRMTCgnZ2RpMzInKQogICAgICAgICBpZiBnZGkzMi5BZGRGb250UmVzb3Vy
Y2VXKGZvbnRfcGF0aCk6Ci0gICAgICAgICAgICByZXR1cm4gYm9vbChjdHlwZXMud2luZGxsLnVz
ZXIzMi5TZW5kTWVzc2FnZVcoaHduZF9icm9hZGNhc3QsCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd21fZm9udGNoYW5nZSkpCisgICAg
ICAgICAgICBmcm9tIGN0eXBlcyBpbXBvcnQgd2ludHlwZXMKKyAgICAgICAgICAgIHdwYXJhbSA9
IDAKKyAgICAgICAgICAgIGxwYXJhbSA9IDAKKyAgICAgICAgICAgIFNlbmROb3RpZnlNZXNzYWdl
VyA9IGN0eXBlcy53aW5kbGwudXNlcjMyLlNlbmROb3RpZnlNZXNzYWdlVworICAgICAgICAgICAg
U2VuZE5vdGlmeU1lc3NhZ2VXLmFyZ3R5cGVzID0gW3dpbnR5cGVzLkhBTkRMRSwgd2ludHlwZXMu
VUlOVCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aW50eXBl
cy5XUEFSQU0sIHdpbnR5cGVzLkxQQVJBTV0KKyAgICAgICAgICAgIHJldHVybiBib29sKFNlbmRO
b3RpZnlNZXNzYWdlVyhod25kX2Jyb2FkY2FzdCwgd21fZm9udGNoYW5nZSwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3cGFyYW0sIGxwYXJhbSkpCiAKICAgICBk
ZWYgcmVtb3ZlX2xpbnV4X2ZvbnQoc2VsZiwgZm9udF9uYW1lLCBfKToKICAgICAgICAgaWYgc2Vs
Zi5jcmVhdGVkX2RpcjoKQEAgLTEyMCw1ICsxMjYsMTEgQEAgY2xhc3MgRm9udEluc3RhbGxlcihv
YmplY3QpOgogCiAgICAgICAgIGdkaTMyID0gY3R5cGVzLldpbkRMTCgnZ2RpMzInKQogICAgICAg
ICBpZiBnZGkzMi5SZW1vdmVGb250UmVzb3VyY2VXKGZvbnRfcGF0aCk6Ci0gICAgICAgICAgICBy
ZXR1cm4gYm9vbChjdHlwZXMud2luZGxsLnVzZXIzMi5TZW5kTWVzc2FnZVcoaHduZF9icm9hZGNh
c3QsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgd21fZm9udGNoYW5nZSkpCisgICAgICAgICAgICBmcm9tIGN0eXBlcyBpbXBvcnQgd2lu
dHlwZXMKKyAgICAgICAgICAgIHdwYXJhbSA9IDAKKyAgICAgICAgICAgIGxwYXJhbSA9IDAKKyAg
ICAgICAgICAgIFNlbmROb3RpZnlNZXNzYWdlVyA9IGN0eXBlcy53aW5kbGwudXNlcjMyLlNlbmRO
b3RpZnlNZXNzYWdlVworICAgICAgICAgICAgU2VuZE5vdGlmeU1lc3NhZ2VXLmFyZ3R5cGVzID0g
W3dpbnR5cGVzLkhBTkRMRSwgd2ludHlwZXMuVUlOVCwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICB3aW50eXBlcy5XUEFSQU0sIHdpbnR5cGVzLkxQQVJBTV0KKyAg
ICAgICAgICAgIHJldHVybiBib29sKFNlbmROb3RpZnlNZXNzYWdlVyhod25kX2Jyb2FkY2FzdCwg
d21fZm9udGNoYW5nZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICB3cGFyYW0sIGxwYXJhbSkpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvZm9ybWF0dGVycy5w
eSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0
cnVubmVyL3dwdHJ1bm5lci9mb3JtYXR0ZXJzLnB5CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAxZWEwOWRiZTU1My4uMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2Zvcm1hdHRl
cnMucHkKKysrIC9kZXYvbnVsbApAQCAtMSw3OCArMCwwIEBACi1pbXBvcnQganNvbgotCi1mcm9t
IG1vemxvZy5zdHJ1Y3R1cmVkLmZvcm1hdHRlcnMuYmFzZSBpbXBvcnQgQmFzZUZvcm1hdHRlcgot
Ci0KLWNsYXNzIFdwdHJlcG9ydEZvcm1hdHRlcihCYXNlRm9ybWF0dGVyKToKLSAgICAiIiJGb3Jt
YXR0ZXIgdGhhdCBwcm9kdWNlcyByZXN1bHRzIGluIHRoZSBmb3JtYXQgdGhhdCB3cHJlcG9ydCBl
eHBlY3RzLiIiIgotCi0gICAgZGVmIF9faW5pdF9fKHNlbGYpOgotICAgICAgICBzZWxmLnJhd19y
ZXN1bHRzID0ge30KLSAgICAgICAgc2VsZi5yZXN1bHRzID0ge30KLQotICAgIGRlZiBzdWl0ZV9z
dGFydChzZWxmLCBkYXRhKToKLSAgICAgICAgaWYgJ3J1bl9pbmZvJyBpbiBkYXRhOgotICAgICAg
ICAgICAgc2VsZi5yZXN1bHRzWydydW5faW5mbyddID0gZGF0YVsncnVuX2luZm8nXQotICAgICAg
ICBzZWxmLnJlc3VsdHNbJ3RpbWVfc3RhcnQnXSA9IGRhdGFbJ3RpbWUnXQotCi0gICAgZGVmIHN1
aXRlX2VuZChzZWxmLCBkYXRhKToKLSAgICAgICAgc2VsZi5yZXN1bHRzWyd0aW1lX2VuZCddID0g
ZGF0YVsndGltZSddCi0gICAgICAgIHNlbGYucmVzdWx0c1sicmVzdWx0cyJdID0gW10KLSAgICAg
ICAgZm9yIHRlc3RfbmFtZSBpbiBzZWxmLnJhd19yZXN1bHRzOgotICAgICAgICAgICAgcmVzdWx0
ID0geyJ0ZXN0IjogdGVzdF9uYW1lfQotICAgICAgICAgICAgcmVzdWx0LnVwZGF0ZShzZWxmLnJh
d19yZXN1bHRzW3Rlc3RfbmFtZV0pCi0gICAgICAgICAgICBzZWxmLnJlc3VsdHNbInJlc3VsdHMi
XS5hcHBlbmQocmVzdWx0KQotICAgICAgICByZXR1cm4ganNvbi5kdW1wcyhzZWxmLnJlc3VsdHMp
Ci0KLSAgICBkZWYgZmluZF9vcl9jcmVhdGVfdGVzdChzZWxmLCBkYXRhKToKLSAgICAgICAgdGVz
dF9uYW1lID0gZGF0YVsidGVzdCJdCi0gICAgICAgIGlmIHRlc3RfbmFtZSBub3QgaW4gc2VsZi5y
YXdfcmVzdWx0czoKLSAgICAgICAgICAgIHNlbGYucmF3X3Jlc3VsdHNbdGVzdF9uYW1lXSA9IHsK
LSAgICAgICAgICAgICAgICAic3VidGVzdHMiOiBbXSwKLSAgICAgICAgICAgICAgICAic3RhdHVz
IjogIiIsCi0gICAgICAgICAgICAgICAgIm1lc3NhZ2UiOiBOb25lCi0gICAgICAgICAgICB9Ci0g
ICAgICAgIHJldHVybiBzZWxmLnJhd19yZXN1bHRzW3Rlc3RfbmFtZV0KLQotICAgIGRlZiB0ZXN0
X3N0YXJ0KHNlbGYsIGRhdGEpOgotICAgICAgICB0ZXN0ID0gc2VsZi5maW5kX29yX2NyZWF0ZV90
ZXN0KGRhdGEpCi0gICAgICAgIHRlc3RbInN0YXJ0X3RpbWUiXSA9IGRhdGFbInRpbWUiXQotCi0g
ICAgZGVmIGNyZWF0ZV9zdWJ0ZXN0KHNlbGYsIGRhdGEpOgotICAgICAgICB0ZXN0ID0gc2VsZi5m
aW5kX29yX2NyZWF0ZV90ZXN0KGRhdGEpCi0gICAgICAgIHN1YnRlc3RfbmFtZSA9IGRhdGFbInN1
YnRlc3QiXQotCi0gICAgICAgIHN1YnRlc3QgPSB7Ci0gICAgICAgICAgICAibmFtZSI6IHN1YnRl
c3RfbmFtZSwKLSAgICAgICAgICAgICJzdGF0dXMiOiAiIiwKLSAgICAgICAgICAgICJtZXNzYWdl
IjogTm9uZQotICAgICAgICB9Ci0gICAgICAgIHRlc3RbInN1YnRlc3RzIl0uYXBwZW5kKHN1YnRl
c3QpCi0KLSAgICAgICAgcmV0dXJuIHN1YnRlc3QKLQotICAgIGRlZiB0ZXN0X3N0YXR1cyhzZWxm
LCBkYXRhKToKLSAgICAgICAgc3VidGVzdCA9IHNlbGYuY3JlYXRlX3N1YnRlc3QoZGF0YSkKLSAg
ICAgICAgc3VidGVzdFsic3RhdHVzIl0gPSBkYXRhWyJzdGF0dXMiXQotICAgICAgICBpZiAiZXhw
ZWN0ZWQiIGluIGRhdGE6Ci0gICAgICAgICAgICBzdWJ0ZXN0WyJleHBlY3RlZCJdID0gZGF0YVsi
ZXhwZWN0ZWQiXQotICAgICAgICBpZiAibWVzc2FnZSIgaW4gZGF0YToKLSAgICAgICAgICAgIHN1
YnRlc3RbIm1lc3NhZ2UiXSA9IGRhdGFbIm1lc3NhZ2UiXQotCi0gICAgZGVmIHRlc3RfZW5kKHNl
bGYsIGRhdGEpOgotICAgICAgICB0ZXN0ID0gc2VsZi5maW5kX29yX2NyZWF0ZV90ZXN0KGRhdGEp
Ci0gICAgICAgIHN0YXJ0X3RpbWUgPSB0ZXN0LnBvcCgic3RhcnRfdGltZSIpCi0gICAgICAgIHRl
c3RbImR1cmF0aW9uIl0gPSBkYXRhWyJ0aW1lIl0gLSBzdGFydF90aW1lCi0gICAgICAgIHRlc3Rb
InN0YXR1cyJdID0gZGF0YVsic3RhdHVzIl0KLSAgICAgICAgaWYgImV4cGVjdGVkIiBpbiBkYXRh
OgotICAgICAgICAgICAgdGVzdFsiZXhwZWN0ZWQiXSA9IGRhdGFbImV4cGVjdGVkIl0KLSAgICAg
ICAgaWYgIm1lc3NhZ2UiIGluIGRhdGE6Ci0gICAgICAgICAgICB0ZXN0WyJtZXNzYWdlIl0gPSBk
YXRhWyJtZXNzYWdlIl0KLQotICAgIGRlZiBhc3NlcnRpb25fY291bnQoc2VsZiwgZGF0YSk6Ci0g
ICAgICAgIHRlc3QgPSBzZWxmLmZpbmRfb3JfY3JlYXRlX3Rlc3QoZGF0YSkKLSAgICAgICAgdGVz
dFsiYXNzZXJ0cyJdID0gewotICAgICAgICAgICAgImNvdW50IjogZGF0YVsiY291bnQiXSwKLSAg
ICAgICAgICAgICJtaW4iOiBkYXRhWyJtaW5fZXhwZWN0ZWQiXSwKLSAgICAgICAgICAgICJtYXgi
OiBkYXRhWyJtYXhfZXhwZWN0ZWQiXQotICAgICAgICB9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5u
ZXIvZm9ybWF0dGVycy9fX2luaXRfXy5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9mb3JtYXR0ZXJzL19faW5p
dF9fLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5hNjgzNGI4Mjg1
YQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9mb3JtYXR0ZXJzL19faW5pdF9fLnB5
CkBAIC0wLDAgKzEgQEAKKyMgVGhpcyBmaWxlIGlzIHJlcXVpcmVkIGZvciBQeXRob24gdG8gc2Vh
cmNoIHRoaXMgZGlyZWN0b3J5IGZvciBtb2R1bGVzLgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZp
bGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9mb3JtYXR0ZXJzL2Nocm9taXVtLnB5IGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIv
d3B0cnVubmVyL2Zvcm1hdHRlcnMvY2hyb21pdW0ucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAuLjU2NDM1ZWFiZjRiCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVu
bmVyL2Zvcm1hdHRlcnMvY2hyb21pdW0ucHkKQEAgLTAsMCArMSwxODcgQEAKK2ltcG9ydCBqc29u
CitpbXBvcnQgdGltZQorCitmcm9tIGNvbGxlY3Rpb25zIGltcG9ydCBkZWZhdWx0ZGljdAorZnJv
bSBtb3psb2cuZm9ybWF0dGVycyBpbXBvcnQgYmFzZQorCisKK2NsYXNzIENocm9taXVtRm9ybWF0
dGVyKGJhc2UuQmFzZUZvcm1hdHRlcik6CisgICAgIiIiRm9ybWF0dGVyIHRvIHByb2R1Y2UgcmVz
dWx0cyBtYXRjaGluZyB0aGUgQ2hyb21pdW0gSlNPTiBUZXN0IFJlc3VsdHMgZm9ybWF0LgorICAg
IGh0dHBzOi8vY2hyb21pdW0uZ29vZ2xlc291cmNlLmNvbS9jaHJvbWl1bS9zcmMvKy9tYXN0ZXIv
ZG9jcy90ZXN0aW5nL2pzb25fdGVzdF9yZXN1bHRzX2Zvcm1hdC5tZAorICAgICIiIgorCisgICAg
ZGVmIF9faW5pdF9fKHNlbGYpOgorICAgICAgICAjIFdoZXRoZXIgdGhlIHJ1biB3YXMgaW50ZXJy
dXB0ZWQsIGVpdGhlciBieSB0aGUgdGVzdCBydW5uZXIgb3IgdXNlci4KKyAgICAgICAgc2VsZi5p
bnRlcnJ1cHRlZCA9IEZhbHNlCisKKyAgICAgICAgIyBBIG1hcCBvZiB0ZXN0IHN0YXR1cyB0byB0
aGUgbnVtYmVyIG9mIHRlc3RzIHRoYXQgaGFkIHRoYXQgc3RhdHVzLgorICAgICAgICBzZWxmLm51
bV9mYWlsdXJlc19ieV9zdGF0dXMgPSBkZWZhdWx0ZGljdChpbnQpCisKKyAgICAgICAgIyBTdGFy
dCB0aW1lLCBleHByZXNzZWQgYXMgb2Zmc2V0IHNpbmNlIFVOSVggZXBvY2ggaW4gc2Vjb25kcy4K
KyAgICAgICAgc2VsZi5zdGFydF90aW1lc3RhbXBfc2Vjb25kcyA9IE5vbmUKKworICAgICAgICAj
IFRyaWUgb2YgdGVzdCByZXN1bHRzLiBFYWNoIGRpcmVjdG9yeSBpbiB0aGUgdGVzdCBuYW1lIGlz
IGEgbm9kZSBpbgorICAgICAgICAjIHRoZSB0cmllIGFuZCB0aGUgbGVhZiBjb250YWlucyB0aGUg
ZGljdCBvZiBwZXItdGVzdCBkYXRhLgorICAgICAgICBzZWxmLnRlc3RzID0ge30KKworICAgICAg
ICAjIE1lc3NhZ2UgZGljdGlvbmFyeSwga2V5ZWQgYnkgdGVzdCBuYW1lLiBWYWx1ZSBpcyBhIGNv
bmNhdGVuYXRpb24gb2YKKyAgICAgICAgIyB0aGUgc3VidGVzdCBtZXNzYWdlcyBmb3IgdGhpcyB0
ZXN0LgorICAgICAgICBzZWxmLm1lc3NhZ2VzID0gZGVmYXVsdGRpY3Qoc3RyKQorCisgICAgICAg
ICMgTGlzdCBvZiB0ZXN0cyB0aGF0IGhhdmUgZmFpbGluZyBzdWJ0ZXN0cy4KKyAgICAgICAgc2Vs
Zi50ZXN0c193aXRoX3N1YnRlc3RfZmFpbHMgPSBzZXQoKQorCisgICAgZGVmIF9hcHBlbmRfdGVz
dF9tZXNzYWdlKHNlbGYsIHRlc3QsIHN1YnRlc3QsIHN0YXR1cywgZXhwZWN0ZWQsIG1lc3NhZ2Up
OgorICAgICAgICAiIiIKKyAgICAgICAgQXBwZW5kcyB0aGUgbWVzc2FnZSBkYXRhIGZvciBhIHRl
c3QuCisgICAgICAgIDpwYXJhbSBzdHIgdGVzdDogdGhlIG5hbWUgb2YgdGhlIHRlc3QKKyAgICAg
ICAgOnBhcmFtIHN0ciBzdWJ0ZXN0OiB0aGUgbmFtZSBvZiB0aGUgc3VidGVzdCB3aXRoIHRoZSBt
ZXNzYWdlCisgICAgICAgIDpwYXJhbSBzdHIgc3RhdHVzOiB0aGUgc3VidGVzdCBzdGF0dXMKKyAg
ICAgICAgOnBhcmFtIHN0ciBleHBlY3RlZDogdGhlIGV4cGVjdGVkIHN1YnRlc3Qgc3RhdHVzCisg
ICAgICAgIDpwYXJhbSBzdHIgbWVzc2FnZTogdGhlIHN0cmluZyB0byBhcHBlbmQgdG8gdGhlIG1l
c3NhZ2UgZm9yIHRoaXMgdGVzdAorCisgICAgICAgIEhlcmUncyBhbiBleGFtcGxlIG9mIGEgbWVz
c2FnZToKKyAgICAgICAgW1RJTUVPVVQgZXhwZWN0ZWQgRkFJTF0gVGVzdCBOYW1lIGZvbzogYXNz
ZXJ0X2VxdWFsczogZXhwZWN0ZWQgMSBidXQgZ290IDIKKyAgICAgICAgIiIiCisgICAgICAgIGlm
IG5vdCBtZXNzYWdlOgorICAgICAgICAgICAgcmV0dXJuCisgICAgICAgICMgQWRkIHRoZSBwcmVm
aXgsIHdpdGggdGhlIHRlc3Qgc3RhdHVzIGFuZCBzdWJ0ZXN0IG5hbWUgKGlmIGF2YWlsYWJsZSkK
KyAgICAgICAgcHJlZml4ID0gIlslcyIgJSBzdGF0dXMKKyAgICAgICAgaWYgZXhwZWN0ZWQgYW5k
IGV4cGVjdGVkICE9IHN0YXR1czoKKyAgICAgICAgICAgIHByZWZpeCArPSAiIGV4cGVjdGVkICVz
XSAiICUgZXhwZWN0ZWQKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHByZWZpeCArPSAiXSAi
CisgICAgICAgIGlmIHN1YnRlc3Q6CisgICAgICAgICAgICBwcmVmaXggKz0gIiVzOiAiICUgc3Vi
dGVzdAorICAgICAgICBzZWxmLm1lc3NhZ2VzW3Rlc3RdICs9IHByZWZpeCArIG1lc3NhZ2UgKyAi
XG4iCisKKyAgICBkZWYgX3N0b3JlX3Rlc3RfcmVzdWx0KHNlbGYsIG5hbWUsIGFjdHVhbCwgZXhw
ZWN0ZWQsIG1lc3NhZ2UpOgorICAgICAgICAiIiIKKyAgICAgICAgU3RvcmVzIHRoZSByZXN1bHQg
b2YgYSBzaW5nbGUgdGVzdCBpbiB8c2VsZi50ZXN0c3wKKyAgICAgICAgOnBhcmFtIHN0ciBuYW1l
OiBuYW1lIG9mIHRoZSB0ZXN0LgorICAgICAgICA6cGFyYW0gc3RyIGFjdHVhbDogYWN0dWFsIHN0
YXR1cyBvZiB0aGUgdGVzdC4KKyAgICAgICAgOnBhcmFtIHN0ciBleHBlY3RlZDogZXhwZWN0ZWQg
c3RhdHVzIG9mIHRoZSB0ZXN0LgorICAgICAgICA6cGFyYW0gc3RyIG1lc3NhZ2U6IHRlc3Qgb3V0
cHV0LCBzdWNoIGFzIHN0YXR1cywgc3VidGVzdCwgZXJyb3JzIGV0Yy4KKyAgICAgICAgIiIiCisg
ICAgICAgICMgVGhlIHRlc3QgbmFtZSBjYW4gY29udGFpbiBhIGxlYWRpbmcgLyB3aGljaCB3aWxs
IHByb2R1Y2UgYW4gZW1wdHkKKyAgICAgICAgIyBzdHJpbmcgaW4gdGhlIGZpcnN0IHBvc2l0aW9u
IG9mIHRoZSBsaXN0IHJldHVybmVkIGJ5IHNwbGl0LiBXZSB1c2UKKyAgICAgICAgIyBmaWx0ZXIo
Tm9uZSkgdG8gcmVtb3ZlIHN1Y2ggZW50cmllcy4KKyAgICAgICAgbmFtZV9wYXJ0cyA9IGZpbHRl
cihOb25lLCBuYW1lLnNwbGl0KCIvIikpCisgICAgICAgIGN1cl9kaWN0ID0gc2VsZi50ZXN0cwor
ICAgICAgICBmb3IgbmFtZV9wYXJ0IGluIG5hbWVfcGFydHM6CisgICAgICAgICAgICBjdXJfZGlj
dCA9IGN1cl9kaWN0LnNldGRlZmF1bHQobmFtZV9wYXJ0LCB7fSkKKyAgICAgICAgY3VyX2RpY3Rb
ImFjdHVhbCJdID0gYWN0dWFsCisgICAgICAgIGN1cl9kaWN0WyJleHBlY3RlZCJdID0gZXhwZWN0
ZWQKKyAgICAgICAgaWYgbWVzc2FnZSAhPSAiIjoKKyAgICAgICAgICAgIGN1cl9kaWN0WyJhcnRp
ZmFjdHMiXSA9IHsibG9nIjogbWVzc2FnZX0KKworICAgICAgICAjIEZpZ3VyZSBvdXQgaWYgdGhl
cmUgd2FzIGEgcmVncmVzc2lvbiBvciB1bmV4cGVjdGVkIHN0YXR1cy4gVGhpcyBvbmx5CisgICAg
ICAgICMgaGFwcGVucyBmb3IgdGVzdHMgdGhhdCB3ZXJlIHJ1bgorICAgICAgICBpZiBhY3R1YWwg
IT0gIlNLSVAiOgorICAgICAgICAgICAgaWYgYWN0dWFsICE9IGV4cGVjdGVkOgorICAgICAgICAg
ICAgICAgIGN1cl9kaWN0WyJpc191bmV4cGVjdGVkIl0gPSBUcnVlCisgICAgICAgICAgICAgICAg
aWYgYWN0dWFsICE9ICJQQVNTIjoKKyAgICAgICAgICAgICAgICAgICAgY3VyX2RpY3RbImlzX3Jl
Z3Jlc3Npb24iXSA9IFRydWUKKworICAgIGRlZiBfbWFwX3N0YXR1c19uYW1lKHNlbGYsIHN0YXR1
cyk6CisgICAgICAgICIiIgorICAgICAgICBNYXBzIGEgV1BUIHN0YXR1cyB0byBhIENocm9taXVt
IHN0YXR1cy4KKworICAgICAgICBDaHJvbWl1bSBoYXMgZml2ZSBtYWluIHN0YXR1c2VzIHRoYXQg
d2UgaGF2ZSB0byBtYXAgdG86CisgICAgICAgIENSQVNIOiB0aGUgdGVzdCBoYXJuZXNzIGNyYXNo
ZWQKKyAgICAgICAgRkFJTDogdGhlIHRlc3QgZGlkIG5vdCBydW4gYXMgZXhwZWN0ZWQKKyAgICAg
ICAgUEFTUzogdGhlIHRlc3QgcmFuIGFzIGV4cGVjdGVkCisgICAgICAgIFNLSVA6IHRoZSB0ZXN0
IHdhcyBub3QgcnVuCisgICAgICAgIFRJTUVPVVQ6IHRoZSBkaWQgbm90IGZpbmlzaCBpbiB0aW1l
IGFuZCB3YXMgYWJvcnRlZAorCisgICAgICAgIDpwYXJhbSBzdHIgc3RhdHVzOiB0aGUgc3RyaW5n
IHN0YXR1cyBvZiBhIHRlc3QgZnJvbSBXUFQKKyAgICAgICAgOnJldHVybjogYSBjb3JyZXNwb25k
aW5nIHN0cmluZyBzdGF0dXMgZm9yIENocm9taXVtCisgICAgICAgICIiIgorICAgICAgICBpZiBz
dGF0dXMgPT0gIk9LIjoKKyAgICAgICAgICAgIHJldHVybiAiUEFTUyIKKyAgICAgICAgaWYgc3Rh
dHVzID09ICJOT1RSVU4iOgorICAgICAgICAgICAgcmV0dXJuICJTS0lQIgorICAgICAgICBpZiBz
dGF0dXMgPT0gIkVYVEVSTkFMLVRJTUVPVVQiOgorICAgICAgICAgICAgcmV0dXJuICJUSU1FT1VU
IgorICAgICAgICBpZiBzdGF0dXMgaW4gKCJFUlJPUiIsICJDUkFTSCIpOgorICAgICAgICAgICAg
IyBDUkFTSCBpbiBXUFQgbWVhbnMgYSBicm93c2VyIGNyYXNoLCB3aGljaCBDaHJvbWl1bSB0cmVh
dHMgYXMgYQorICAgICAgICAgICAgIyB0ZXN0IGZhaWx1cmUuCisgICAgICAgICAgICByZXR1cm4g
IkZBSUwiCisgICAgICAgIGlmIHN0YXR1cyA9PSAiSU5URVJOQUwtRVJST1IiOgorICAgICAgICAg
ICAgIyBDUkFTSCBpbiBDaHJvbWl1bSByZWZlcnMgdG8gYW4gZXJyb3IgaW4gdGhlIHRlc3QgcnVu
bmVyIG5vdCB0aGUKKyAgICAgICAgICAgICMgYnJvd3Nlci4KKyAgICAgICAgICAgIHJldHVybiAi
Q1JBU0giCisgICAgICAgICMgQW55IG90aGVyIHN0YXR1cyBqdXN0IGdldHMgcmV0dXJuZWQgYXMt
aXMuCisgICAgICAgIHJldHVybiBzdGF0dXMKKworICAgIGRlZiBfZ2V0X2V4cGVjdGVkX3N0YXR1
c19mcm9tX2RhdGEoc2VsZiwgYWN0dWFsX3N0YXR1cywgZGF0YSk6CisgICAgICAgICIiIgorICAg
ICAgICBHZXRzIHRoZSBleHBlY3RlZCBzdGF0dXMgZnJvbSBhIHxkYXRhfCBkaWN0aW9uYXJ5Lgor
CisgICAgICAgIElmIHRoZXJlIGlzIG5vIGV4cGVjdGVkIHN0YXR1cyBpbiBkYXRhLCB0aGUgYWN0
dWFsIHN0YXR1cyBpcyByZXR1cm5lZC4KKyAgICAgICAgVGhpcyBpcyBiZWNhdXNlIG1vemxvZyB3
aWxsIGRlbGV0ZSAiZXhwZWN0ZWQiIGZyb20gfGRhdGF8IGlmIGl0IGlzIHRoZQorICAgICAgICBz
YW1lIGFzICJzdGF0dXMiLiBTbyB0aGUgcHJlc2VuY2Ugb2YgImV4cGVjdGVkIiBpbXBsaWVzIHRo
YXQgInN0YXR1cyIgaXMKKyAgICAgICAgdW5leHBlY3RlZC4gQ29udmVyc2VseSwgdGhlIGFic2Vu
Y2Ugb2YgImV4cGVjdGVkIiBpbXBsaWVzIHRoZSAic3RhdHVzIgorICAgICAgICBpcyBleHBlY3Rl
ZC4gU28gd2UgdXNlIHRoZSAiZXhwZWN0ZWQiIHN0YXR1cyBpZiBpdCdzIHRoZXJlIG9yIGZhbGwg
YmFjaworICAgICAgICB0byB0aGUgYWN0dWFsIHN0YXR1cyBpZiBpdCdzIG5vdC4KKworICAgICAg
ICA6cGFyYW0gc3RyIGFjdHVhbF9zdGF0dXM6IHRoZSBhY3R1YWwgc3RhdHVzIG9mIHRoZSB0ZXN0
CisgICAgICAgIDpwYXJhbSBkYXRhOiBhIGRhdGEgZGljdGlvbmFyeSB0byBleHRyYWN0IGV4cGVj
dGVkIHN0YXR1cyBmcm9tCisgICAgICAgIDpyZXR1cm4gc3RyOiB0aGUgZXhwZWN0ZWQgc3RhdHVz
CisgICAgICAgICIiIgorICAgICAgICByZXR1cm4gKHNlbGYuX21hcF9zdGF0dXNfbmFtZShkYXRh
WyJleHBlY3RlZCJdKQorICAgICAgICAgICAgICAgIGlmICJleHBlY3RlZCIgaW4gZGF0YSBlbHNl
IGFjdHVhbF9zdGF0dXMpCisKKyAgICBkZWYgc3VpdGVfc3RhcnQoc2VsZiwgZGF0YSk6CisgICAg
ICAgIHNlbGYuc3RhcnRfdGltZXN0YW1wX3NlY29uZHMgPSAoZGF0YVsidGltZSJdIGlmICJ0aW1l
IiBpbiBkYXRhCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSB0
aW1lLnRpbWUoKSkKKworICAgIGRlZiB0ZXN0X3N0YXR1cyhzZWxmLCBkYXRhKToKKyAgICAgICAg
dGVzdF9uYW1lID0gZGF0YVsidGVzdCJdCisgICAgICAgIGlzX3VuZXhwZWN0ZWQgPSBOb25lCisg
ICAgICAgIGFjdHVhbF9zdGF0dXMgPSBzZWxmLl9tYXBfc3RhdHVzX25hbWUoZGF0YVsic3RhdHVz
Il0pCisgICAgICAgIGV4cGVjdGVkX3N0YXR1cyA9IHNlbGYuX2dldF9leHBlY3RlZF9zdGF0dXNf
ZnJvbV9kYXRhKGFjdHVhbF9zdGF0dXMsIGRhdGEpCisKKyAgICAgICAgaXNfdW5leHBlY3RlZCA9
IGFjdHVhbF9zdGF0dXMgIT0gZXhwZWN0ZWRfc3RhdHVzCisgICAgICAgIGlmIGlzX3VuZXhwZWN0
ZWQgYW5kIHRlc3RfbmFtZSBub3QgaW4gc2VsZi50ZXN0c193aXRoX3N1YnRlc3RfZmFpbHM6Cisg
ICAgICAgICAgICBzZWxmLnRlc3RzX3dpdGhfc3VidGVzdF9mYWlscy5hZGQodGVzdF9uYW1lKQor
ICAgICAgICBpZiAibWVzc2FnZSIgaW4gZGF0YToKKyAgICAgICAgICAgIHNlbGYuX2FwcGVuZF90
ZXN0X21lc3NhZ2UodGVzdF9uYW1lLCBkYXRhWyJzdWJ0ZXN0Il0sCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGFjdHVhbF9zdGF0dXMsIGV4cGVjdGVkX3N0YXR1cywKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YVsibWVzc2FnZSJdKQorCisg
ICAgZGVmIHRlc3RfZW5kKHNlbGYsIGRhdGEpOgorICAgICAgICB0ZXN0X25hbWUgPSBkYXRhWyJ0
ZXN0Il0KKyAgICAgICAgYWN0dWFsX3N0YXR1cyA9IHNlbGYuX21hcF9zdGF0dXNfbmFtZShkYXRh
WyJzdGF0dXMiXSkKKyAgICAgICAgaWYgYWN0dWFsX3N0YXR1cyA9PSAiUEFTUyIgYW5kIHRlc3Rf
bmFtZSBpbiBzZWxmLnRlc3RzX3dpdGhfc3VidGVzdF9mYWlsczoKKyAgICAgICAgICAgICMgVGhp
cyB0ZXN0IHBhc3NlZCBidXQgaXQgaGFzIGZhaWxpbmcgc3VidGVzdHMsIHNvIHdlIGZsaXAgdGhl
IHN0YXR1cworICAgICAgICAgICAgIyB0byBGQUlMLgorICAgICAgICAgICAgYWN0dWFsX3N0YXR1
cyA9ICJGQUlMIgorICAgICAgICAgICAgIyBDbGVhbiB1cCB0aGUgdGVzdCBsaXN0IHRvIGF2b2lk
IGFjY3VtdWxhdGluZyB0b28gbWFueS4KKyAgICAgICAgICAgIHNlbGYudGVzdHNfd2l0aF9zdWJ0
ZXN0X2ZhaWxzLnJlbW92ZSh0ZXN0X25hbWUpCisKKyAgICAgICAgZXhwZWN0ZWRfc3RhdHVzID0g
c2VsZi5fZ2V0X2V4cGVjdGVkX3N0YXR1c19mcm9tX2RhdGEoYWN0dWFsX3N0YXR1cywgZGF0YSkK
KyAgICAgICAgaWYgIm1lc3NhZ2UiIGluIGRhdGE6CisgICAgICAgICAgICBzZWxmLl9hcHBlbmRf
dGVzdF9tZXNzYWdlKHRlc3RfbmFtZSwgTm9uZSwgYWN0dWFsX3N0YXR1cywKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgZXhwZWN0ZWRfc3RhdHVzLCBkYXRhWyJtZXNzYWdl
Il0pCisgICAgICAgIHNlbGYuX3N0b3JlX3Rlc3RfcmVzdWx0KHRlc3RfbmFtZSwgYWN0dWFsX3N0
YXR1cywgZXhwZWN0ZWRfc3RhdHVzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBz
ZWxmLm1lc3NhZ2VzW3Rlc3RfbmFtZV0pCisKKyAgICAgICAgIyBSZW1vdmUgdGhlIHRlc3QgZnJv
bSBtZXNzYWdlcyBkaWN0IHRvIGF2b2lkIGFjY3VtdWxhdGluZyB0b28gbWFueS4KKyAgICAgICAg
c2VsZi5tZXNzYWdlcy5wb3AodGVzdF9uYW1lKQorCisgICAgICAgICMgVXBkYXRlIHRoZSBjb3Vu
dCBvZiBob3cgbWFueSB0ZXN0cyByYW4gd2l0aCBlYWNoIHN0YXR1cy4KKyAgICAgICAgc2VsZi5u
dW1fZmFpbHVyZXNfYnlfc3RhdHVzW2FjdHVhbF9zdGF0dXNdICs9IDEKKworICAgIGRlZiBzdWl0
ZV9lbmQoc2VsZiwgZGF0YSk6CisgICAgICAgICMgQ3JlYXRlIHRoZSBmaW5hbCByZXN1bHQgZGlj
dGlvbmFyeQorICAgICAgICBmaW5hbF9yZXN1bHQgPSB7CisgICAgICAgICAgICAjIFRoZXJlIGFy
ZSBzb21lIHJlcXVpcmVkIGZpZWxkcyB0aGF0IHdlIGp1c3QgaGFyZC1jb2RlLgorICAgICAgICAg
ICAgImludGVycnVwdGVkIjogRmFsc2UsCisgICAgICAgICAgICAicGF0aF9kZWxpbWl0ZXIiOiAi
LyIsCisgICAgICAgICAgICAidmVyc2lvbiI6IDMsCisgICAgICAgICAgICAic2Vjb25kc19zaW5j
ZV9lcG9jaCI6IHNlbGYuc3RhcnRfdGltZXN0YW1wX3NlY29uZHMsCisgICAgICAgICAgICAibnVt
X2ZhaWx1cmVzX2J5X3R5cGUiOiBzZWxmLm51bV9mYWlsdXJlc19ieV9zdGF0dXMsCisgICAgICAg
ICAgICAidGVzdHMiOiBzZWxmLnRlc3RzCisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGpzb24u
ZHVtcHMoZmluYWxfcmVzdWx0KQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2Zvcm1hdHRlcnMv
dGVzdHMvdGVzdF9jaHJvbWl1bS5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9mb3JtYXR0ZXJzL3Rlc3RzL3Rl
c3RfY2hyb21pdW0ucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjgz
YzEyOGFjNWNiCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2Zvcm1hdHRlcnMvdGVz
dHMvdGVzdF9jaHJvbWl1bS5weQpAQCAtMCwwICsxLDM3MiBAQAoraW1wb3J0IGpzb24KK2ltcG9y
dCBzeXMKK2Zyb20gb3MucGF0aCBpbXBvcnQgZGlybmFtZSwgam9pbgorZnJvbSBzaXgubW92ZXMg
aW1wb3J0IGNTdHJpbmdJTyBhcyBTdHJpbmdJTworCitmcm9tIG1vemxvZyBpbXBvcnQgaGFuZGxl
cnMsIHN0cnVjdHVyZWRsb2cKKworc3lzLnBhdGguaW5zZXJ0KDAsIGpvaW4oZGlybmFtZShfX2Zp
bGVfXyksICIuLiIsICIuLiIpKQorZnJvbSBmb3JtYXR0ZXJzLmNocm9taXVtIGltcG9ydCBDaHJv
bWl1bUZvcm1hdHRlcgorCisKK2RlZiB0ZXN0X2Nocm9taXVtX3JlcXVpcmVkX2ZpZWxkcyhjYXBm
ZCk6CisgICAgIyBUZXN0IHRoYXQgdGhlIHRlc3QgcmVzdWx0cyBjb250YWluIGEgaGFuZGZ1bCBv
ZiByZXF1aXJlZCBmaWVsZHMuCisKKyAgICAjIFNldCB1cCB0aGUgaGFuZGxlci4KKyAgICBvdXRw
dXQgPSBTdHJpbmdJTygpCisgICAgbG9nZ2VyID0gc3RydWN0dXJlZGxvZy5TdHJ1Y3R1cmVkTG9n
Z2VyKCJ0ZXN0X2EiKQorICAgIGxvZ2dlci5hZGRfaGFuZGxlcihoYW5kbGVycy5TdHJlYW1IYW5k
bGVyKG91dHB1dCwgQ2hyb21pdW1Gb3JtYXR0ZXIoKSkpCisKKyAgICAjIG91dHB1dCBhIGJ1bmNo
IG9mIHN0dWZmCisgICAgbG9nZ2VyLnN1aXRlX3N0YXJ0KFsidGVzdC1pZC0xIl0sIHJ1bl9pbmZv
PXt9LCB0aW1lPTEyMykKKyAgICBsb2dnZXIudGVzdF9zdGFydCgidGVzdC1pZC0xIikKKyAgICBs
b2dnZXIudGVzdF9lbmQoInRlc3QtaWQtMSIsIHN0YXR1cz0iUEFTUyIsIGV4cGVjdGVkPSJQQVNT
IikKKyAgICBsb2dnZXIuc3VpdGVfZW5kKCkKKworICAgICMgY2hlY2sgbm90aGluZyBnb3Qgb3V0
cHV0IHRvIHN0ZG91dC9zdGRlcnIKKyAgICAjIChub3RlIHRoYXQgbW96bG9nIG91dHB1dHMgZXhj
ZXB0aW9ucyBkdXJpbmcgaGFuZGxpbmcgdG8gc3RkZXJyISkKKyAgICBjYXB0dXJlZCA9IGNhcGZk
LnJlYWRvdXRlcnIoKQorICAgIGFzc2VydCBjYXB0dXJlZC5vdXQgPT0gIiIKKyAgICBhc3NlcnQg
Y2FwdHVyZWQuZXJyID09ICIiCisKKyAgICAjIGNoZWNrIHRoZSBhY3R1YWwgb3V0cHV0IG9mIHRo
ZSBmb3JtYXR0ZXIKKyAgICBvdXRwdXQuc2VlaygwKQorICAgIG91dHB1dF9vYmogPSBqc29uLmxv
YWQob3V0cHV0KQorCisgICAgIyBDaGVjayBmb3IgZXhpc3RlbmNlIG9mIHJlcXVpcmVkIGZpZWxk
cworICAgIGFzc2VydCAiaW50ZXJydXB0ZWQiIGluIG91dHB1dF9vYmoKKyAgICBhc3NlcnQgInBh
dGhfZGVsaW1pdGVyIiBpbiBvdXRwdXRfb2JqCisgICAgYXNzZXJ0ICJ2ZXJzaW9uIiBpbiBvdXRw
dXRfb2JqCisgICAgYXNzZXJ0ICJudW1fZmFpbHVyZXNfYnlfdHlwZSIgaW4gb3V0cHV0X29iagor
ICAgIGFzc2VydCAidGVzdHMiIGluIG91dHB1dF9vYmoKKworICAgIHRlc3Rfb2JqID0gb3V0cHV0
X29ialsidGVzdHMiXVsidGVzdC1pZC0xIl0KKyAgICBhc3NlcnQgImFjdHVhbCIgaW4gdGVzdF9v
YmoKKyAgICBhc3NlcnQgImV4cGVjdGVkIiBpbiB0ZXN0X29iagorCisKK2RlZiB0ZXN0X2Nocm9t
aXVtX3Rlc3RfbmFtZV90cmllKGNhcGZkKToKKyAgICAjIEVuc3VyZSB0ZXN0IG5hbWVzIGFyZSBi
cm9rZW4gaW50byBkaXJlY3RvcmllcyBhbmQgc3RvcmVkIGluIGEgdHJpZSB3aXRoCisgICAgIyB0
ZXN0IHJlc3VsdHMgYXQgdGhlIGxlYXZlcy4KKworICAgICMgU2V0IHVwIHRoZSBoYW5kbGVyLgor
ICAgIG91dHB1dCA9IFN0cmluZ0lPKCkKKyAgICBsb2dnZXIgPSBzdHJ1Y3R1cmVkbG9nLlN0cnVj
dHVyZWRMb2dnZXIoInRlc3RfYSIpCisgICAgbG9nZ2VyLmFkZF9oYW5kbGVyKGhhbmRsZXJzLlN0
cmVhbUhhbmRsZXIob3V0cHV0LCBDaHJvbWl1bUZvcm1hdHRlcigpKSkKKworICAgICMgb3V0cHV0
IGEgYnVuY2ggb2Ygc3R1ZmYKKyAgICBsb2dnZXIuc3VpdGVfc3RhcnQoWyIvZm9vL2Jhci90ZXN0
LWlkLTEiLCAiL2Zvby90ZXN0LWlkLTIiXSwgcnVuX2luZm89e30sCisgICAgICAgICAgICAgICAg
ICAgICAgIHRpbWU9MTIzKQorICAgIGxvZ2dlci50ZXN0X3N0YXJ0KCIvZm9vL2Jhci90ZXN0LWlk
LTEiKQorICAgIGxvZ2dlci50ZXN0X2VuZCgiL2Zvby9iYXIvdGVzdC1pZC0xIiwgc3RhdHVzPSJU
SU1FT1VUIiwgZXhwZWN0ZWQ9IkZBSUwiKQorICAgIGxvZ2dlci50ZXN0X3N0YXJ0KCIvZm9vL3Rl
c3QtaWQtMiIpCisgICAgbG9nZ2VyLnRlc3RfZW5kKCIvZm9vL3Rlc3QtaWQtMiIsIHN0YXR1cz0i
RVJST1IiLCBleHBlY3RlZD0iVElNRU9VVCIpCisgICAgbG9nZ2VyLnN1aXRlX2VuZCgpCisKKyAg
ICAjIGNoZWNrIG5vdGhpbmcgZ290IG91dHB1dCB0byBzdGRvdXQvc3RkZXJyCisgICAgIyAobm90
ZSB0aGF0IG1vemxvZyBvdXRwdXRzIGV4Y2VwdGlvbnMgZHVyaW5nIGhhbmRsaW5nIHRvIHN0ZGVy
ciEpCisgICAgY2FwdHVyZWQgPSBjYXBmZC5yZWFkb3V0ZXJyKCkKKyAgICBhc3NlcnQgY2FwdHVy
ZWQub3V0ID09ICIiCisgICAgYXNzZXJ0IGNhcHR1cmVkLmVyciA9PSAiIgorCisgICAgIyBjaGVj
ayB0aGUgYWN0dWFsIG91dHB1dCBvZiB0aGUgZm9ybWF0dGVyCisgICAgb3V0cHV0LnNlZWsoMCkK
KyAgICBvdXRwdXRfb2JqID0ganNvbi5sb2FkKG91dHB1dCkKKworICAgICMgRW5zdXJlIHRoYXQg
dGhlIHRlc3QgbmFtZXMgYXJlIGJyb2tlbiB1cCBieSBkaXJlY3RvcnkgbmFtZSBhbmQgdGhhdCB0
aGUKKyAgICAjIHJlc3VsdHMgYXJlIHN0b3JlZCBhdCB0aGUgbGVhdmVzLgorICAgIHRlc3Rfb2Jq
ID0gb3V0cHV0X29ialsidGVzdHMiXVsiZm9vIl1bImJhciJdWyJ0ZXN0LWlkLTEiXQorICAgIGFz
c2VydCB0ZXN0X29ialsiYWN0dWFsIl0gPT0gIlRJTUVPVVQiCisgICAgYXNzZXJ0IHRlc3Rfb2Jq
WyJleHBlY3RlZCJdID09ICJGQUlMIgorCisgICAgdGVzdF9vYmogPSBvdXRwdXRfb2JqWyJ0ZXN0
cyJdWyJmb28iXVsidGVzdC1pZC0yIl0KKyAgICAjIFRoZSBFUlJPUiBzdGF0dXMgaXMgbWFwcGVk
IHRvIEZBSUwgZm9yIENocm9taXVtCisgICAgYXNzZXJ0IHRlc3Rfb2JqWyJhY3R1YWwiXSA9PSAi
RkFJTCIKKyAgICBhc3NlcnQgdGVzdF9vYmpbImV4cGVjdGVkIl0gPT0gIlRJTUVPVVQiCisKKwor
ZGVmIHRlc3RfbnVtX2ZhaWx1cmVzX2J5X3R5cGUoY2FwZmQpOgorICAgICMgVGVzdCB0aGF0IHRo
ZSBudW1iZXIgb2YgZmFpbHVyZXMgYnkgc3RhdHVzIHR5cGUgaXMgY29ycmVjdGx5IGNhbGN1bGF0
ZWQuCisKKyAgICAjIFNldCB1cCB0aGUgaGFuZGxlci4KKyAgICBvdXRwdXQgPSBTdHJpbmdJTygp
CisgICAgbG9nZ2VyID0gc3RydWN0dXJlZGxvZy5TdHJ1Y3R1cmVkTG9nZ2VyKCJ0ZXN0X2EiKQor
ICAgIGxvZ2dlci5hZGRfaGFuZGxlcihoYW5kbGVycy5TdHJlYW1IYW5kbGVyKG91dHB1dCwgQ2hy
b21pdW1Gb3JtYXR0ZXIoKSkpCisKKyAgICAjIFJ1biBzb21lIHRlc3RzIHdpdGggZGlmZmVyZW50
IHN0YXR1c2VzOiAzIHBhc3NlcywgMSB0aW1lb3V0CisgICAgbG9nZ2VyLnN1aXRlX3N0YXJ0KFsi
dDEiLCAidDIiLCAidDMiLCAidDQiXSwgcnVuX2luZm89e30sIHRpbWU9MTIzKQorICAgIGxvZ2dl
ci50ZXN0X3N0YXJ0KCJ0MSIpCisgICAgbG9nZ2VyLnRlc3RfZW5kKCJ0MSIsIHN0YXR1cz0iUEFT
UyIsIGV4cGVjdGVkPSJQQVNTIikKKyAgICBsb2dnZXIudGVzdF9zdGFydCgidDIiKQorICAgIGxv
Z2dlci50ZXN0X2VuZCgidDIiLCBzdGF0dXM9IlBBU1MiLCBleHBlY3RlZD0iUEFTUyIpCisgICAg
bG9nZ2VyLnRlc3Rfc3RhcnQoInQzIikKKyAgICBsb2dnZXIudGVzdF9lbmQoInQzIiwgc3RhdHVz
PSJQQVNTIiwgZXhwZWN0ZWQ9IkZBSUwiKQorICAgIGxvZ2dlci50ZXN0X3N0YXJ0KCJ0NCIpCisg
ICAgbG9nZ2VyLnRlc3RfZW5kKCJ0NCIsIHN0YXR1cz0iVElNRU9VVCIsIGV4cGVjdGVkPSJDUkFT
SCIpCisgICAgbG9nZ2VyLnN1aXRlX2VuZCgpCisKKyAgICAjIGNoZWNrIG5vdGhpbmcgZ290IG91
dHB1dCB0byBzdGRvdXQvc3RkZXJyCisgICAgIyAobm90ZSB0aGF0IG1vemxvZyBvdXRwdXRzIGV4
Y2VwdGlvbnMgZHVyaW5nIGhhbmRsaW5nIHRvIHN0ZGVyciEpCisgICAgY2FwdHVyZWQgPSBjYXBm
ZC5yZWFkb3V0ZXJyKCkKKyAgICBhc3NlcnQgY2FwdHVyZWQub3V0ID09ICIiCisgICAgYXNzZXJ0
IGNhcHR1cmVkLmVyciA9PSAiIgorCisgICAgIyBjaGVjayB0aGUgYWN0dWFsIG91dHB1dCBvZiB0
aGUgZm9ybWF0dGVyCisgICAgb3V0cHV0LnNlZWsoMCkKKyAgICBudW1fZmFpbHVyZXNfYnlfdHlw
ZSA9IGpzb24ubG9hZChvdXRwdXQpWyJudW1fZmFpbHVyZXNfYnlfdHlwZSJdCisKKyAgICAjIFdl
IGV4cGVjdCAzIHBhc3NlcyBhbmQgMSB0aW1lb3V0LCBub3RoaW5nIGVsc2UuCisgICAgYXNzZXJ0
IHNvcnRlZChudW1fZmFpbHVyZXNfYnlfdHlwZS5rZXlzKCkpID09IFsiUEFTUyIsICJUSU1FT1VU
Il0KKyAgICBhc3NlcnQgbnVtX2ZhaWx1cmVzX2J5X3R5cGVbIlBBU1MiXSA9PSAzCisgICAgYXNz
ZXJ0IG51bV9mYWlsdXJlc19ieV90eXBlWyJUSU1FT1VUIl0gPT0gMQorCisKK2RlZiB0ZXN0X3N1
YnRlc3RfbWVzc2FnZXMoY2FwZmQpOgorICAgICMgVGVzdHMgYWNjdW11bGF0aW9uIG9mIHRlc3Qg
b3V0cHV0CisKKyAgICAjIFNldCB1cCB0aGUgaGFuZGxlci4KKyAgICBvdXRwdXQgPSBTdHJpbmdJ
TygpCisgICAgbG9nZ2VyID0gc3RydWN0dXJlZGxvZy5TdHJ1Y3R1cmVkTG9nZ2VyKCJ0ZXN0X2Ei
KQorICAgIGxvZ2dlci5hZGRfaGFuZGxlcihoYW5kbGVycy5TdHJlYW1IYW5kbGVyKG91dHB1dCwg
Q2hyb21pdW1Gb3JtYXR0ZXIoKSkpCisKKyAgICAjIFJ1biB0d28gdGVzdHMgd2l0aCBzdWJ0ZXN0
IG1lc3NhZ2VzLiBUaGUgc3VidGVzdCBuYW1lIHNob3VsZCBiZSBpbmNsdWRlZAorICAgICMgaW4g
dGhlIG91dHB1dC4gV2Ugc2hvdWxkIGFsc28gdG9sZXJhdGUgbWlzc2luZyBtZXNzYWdlcy4KKyAg
ICBsb2dnZXIuc3VpdGVfc3RhcnQoWyJ0MSIsICJ0MiJdLCBydW5faW5mbz17fSwgdGltZT0xMjMp
CisgICAgbG9nZ2VyLnRlc3Rfc3RhcnQoInQxIikKKyAgICBsb2dnZXIudGVzdF9zdGF0dXMoInQx
Iiwgc3RhdHVzPSJGQUlMIiwgc3VidGVzdD0idDFfYSIsCisgICAgICAgICAgICAgICAgICAgICAg
IG1lc3NhZ2U9InQxX2FfbWVzc2FnZSIpCisgICAgbG9nZ2VyLnRlc3Rfc3RhdHVzKCJ0MSIsIHN0
YXR1cz0iUEFTUyIsIHN1YnRlc3Q9InQxX2IiLAorICAgICAgICAgICAgICAgICAgICAgICBtZXNz
YWdlPSJ0MV9iX21lc3NhZ2UiKQorICAgIGxvZ2dlci50ZXN0X2VuZCgidDEiLCBzdGF0dXM9IlBB
U1MiLCBleHBlY3RlZD0iUEFTUyIpCisgICAgbG9nZ2VyLnRlc3Rfc3RhcnQoInQyIikKKyAgICAj
IEN1cnJlbnRseSwgc3VidGVzdHMgd2l0aCBlbXB0eSBtZXNzYWdlcyB3aWxsIGJlIGlnbm9yZWQK
KyAgICBsb2dnZXIudGVzdF9zdGF0dXMoInQyIiwgc3RhdHVzPSJQQVNTIiwgc3VidGVzdD0idDJf
YSIpCisgICAgIyBBIHRlc3QtbGV2ZWwgbWVzc2FnZSB3aWxsIGFsc28gYmUgYXBwZW5kZWQKKyAg
ICBsb2dnZXIudGVzdF9lbmQoInQyIiwgc3RhdHVzPSJUSU1FT1VUIiwgZXhwZWN0ZWQ9IlBBU1Mi
LAorICAgICAgICAgICAgICAgICAgICBtZXNzYWdlPSJ0Ml9tZXNzYWdlIikKKyAgICBsb2dnZXIu
c3VpdGVfZW5kKCkKKworICAgICMgY2hlY2sgbm90aGluZyBnb3Qgb3V0cHV0IHRvIHN0ZG91dC9z
dGRlcnIKKyAgICAjIChub3RlIHRoYXQgbW96bG9nIG91dHB1dHMgZXhjZXB0aW9ucyBkdXJpbmcg
aGFuZGxpbmcgdG8gc3RkZXJyISkKKyAgICBjYXB0dXJlZCA9IGNhcGZkLnJlYWRvdXRlcnIoKQor
ICAgIGFzc2VydCBjYXB0dXJlZC5vdXQgPT0gIiIKKyAgICBhc3NlcnQgY2FwdHVyZWQuZXJyID09
ICIiCisKKyAgICAjIGNoZWNrIHRoZSBhY3R1YWwgb3V0cHV0IG9mIHRoZSBmb3JtYXR0ZXIKKyAg
ICBvdXRwdXQuc2VlaygwKQorICAgIG91dHB1dF9qc29uID0ganNvbi5sb2FkKG91dHB1dCkKKwor
ICAgIHQxX2xvZyA9IG91dHB1dF9qc29uWyJ0ZXN0cyJdWyJ0MSJdWyJhcnRpZmFjdHMiXVsibG9n
Il0KKyAgICBhc3NlcnQgdDFfbG9nID09ICJbRkFJTCBleHBlY3RlZCBQQVNTXSB0MV9hOiB0MV9h
X21lc3NhZ2VcbiIgXAorICAgICAgICAgICAgICAgICAgICAgIltQQVNTXSB0MV9iOiB0MV9iX21l
c3NhZ2VcbiIKKworICAgIHQyX2xvZyA9IG91dHB1dF9qc29uWyJ0ZXN0cyJdWyJ0MiJdWyJhcnRp
ZmFjdHMiXVsibG9nIl0KKyAgICBhc3NlcnQgdDJfbG9nID09ICJbVElNRU9VVCBleHBlY3RlZCBQ
QVNTXSB0Ml9tZXNzYWdlXG4iCisKKworZGVmIHRlc3Rfc3VidGVzdF9mYWlsdXJlKGNhcGZkKToK
KyAgICAjIFRlc3RzIHRoYXQgYSB0ZXN0IGZhaWxzIGlmIGEgc3VidGVzdCBmYWlscworCisgICAg
IyBTZXQgdXAgdGhlIGhhbmRsZXIuCisgICAgb3V0cHV0ID0gU3RyaW5nSU8oKQorICAgIGxvZ2dl
ciA9IHN0cnVjdHVyZWRsb2cuU3RydWN0dXJlZExvZ2dlcigidGVzdF9hIikKKyAgICBmb3JtYXR0
ZXIgPSBDaHJvbWl1bUZvcm1hdHRlcigpCisgICAgbG9nZ2VyLmFkZF9oYW5kbGVyKGhhbmRsZXJz
LlN0cmVhbUhhbmRsZXIob3V0cHV0LCBmb3JtYXR0ZXIpKQorCisgICAgIyBSdW4gYSB0ZXN0IHdp
dGggc29tZSBzdWJ0ZXN0IGZhaWx1cmVzLgorICAgIGxvZ2dlci5zdWl0ZV9zdGFydChbInQxIl0s
IHJ1bl9pbmZvPXt9LCB0aW1lPTEyMykKKyAgICBsb2dnZXIudGVzdF9zdGFydCgidDEiKQorICAg
IGxvZ2dlci50ZXN0X3N0YXR1cygidDEiLCBzdGF0dXM9IkZBSUwiLCBzdWJ0ZXN0PSJ0MV9hIiwK
KyAgICAgICAgICAgICAgICAgICAgICAgbWVzc2FnZT0idDFfYV9tZXNzYWdlIikKKyAgICBsb2dn
ZXIudGVzdF9zdGF0dXMoInQxIiwgc3RhdHVzPSJQQVNTIiwgc3VidGVzdD0idDFfYiIsCisgICAg
ICAgICAgICAgICAgICAgICAgIG1lc3NhZ2U9InQxX2JfbWVzc2FnZSIpCisgICAgbG9nZ2VyLnRl
c3Rfc3RhdHVzKCJ0MSIsIHN0YXR1cz0iVElNRU9VVCIsIHN1YnRlc3Q9InQxX2MiLAorICAgICAg
ICAgICAgICAgICAgICAgICBtZXNzYWdlPSJ0MV9jX21lc3NhZ2UiKQorCisgICAgIyBNYWtlIHN1
cmUgdGhlIHRlc3QgbmFtZSB3YXMgYWRkZWQgdG8gdGhlIHNldCBvZiB0ZXN0cyB3aXRoIHN1YnRl
c3QgZmFpbHMKKyAgICBhc3NlcnQgInQxIiBpbiBmb3JtYXR0ZXIudGVzdHNfd2l0aF9zdWJ0ZXN0
X2ZhaWxzCisKKyAgICAjIFRoZSB0ZXN0IHN0YXR1cyBpcyByZXBvcnRlZCBhcyBhIHBhc3MgaGVy
ZSBiZWNhdXNlIHRoZSBoYXJuZXNzIHdhcyBhYmxlIHRvCisgICAgIyBydW4gdGhlIHRlc3QgdG8g
Y29tcGxldGlvbi4KKyAgICBsb2dnZXIudGVzdF9lbmQoInQxIiwgc3RhdHVzPSJQQVNTIiwgZXhw
ZWN0ZWQ9IlBBU1MiKQorICAgIGxvZ2dlci5zdWl0ZV9lbmQoKQorCisgICAgIyBjaGVjayBub3Ro
aW5nIGdvdCBvdXRwdXQgdG8gc3Rkb3V0L3N0ZGVycgorICAgICMgKG5vdGUgdGhhdCBtb3psb2cg
b3V0cHV0cyBleGNlcHRpb25zIGR1cmluZyBoYW5kbGluZyB0byBzdGRlcnIhKQorICAgIGNhcHR1
cmVkID0gY2FwZmQucmVhZG91dGVycigpCisgICAgYXNzZXJ0IGNhcHR1cmVkLm91dCA9PSAiIgor
ICAgIGFzc2VydCBjYXB0dXJlZC5lcnIgPT0gIiIKKworICAgICMgY2hlY2sgdGhlIGFjdHVhbCBv
dXRwdXQgb2YgdGhlIGZvcm1hdHRlcgorICAgIG91dHB1dC5zZWVrKDApCisgICAgb3V0cHV0X2pz
b24gPSBqc29uLmxvYWQob3V0cHV0KQorCisgICAgdGVzdF9vYmogPSBvdXRwdXRfanNvblsidGVz
dHMiXVsidDEiXQorICAgIHQxX2xvZyA9IHRlc3Rfb2JqWyJhcnRpZmFjdHMiXVsibG9nIl0KKyAg
ICBhc3NlcnQgdDFfbG9nID09ICJbRkFJTCBleHBlY3RlZCBQQVNTXSB0MV9hOiB0MV9hX21lc3Nh
Z2VcbiIgXAorICAgICAgICAgICAgICAgICAgICAgIltQQVNTXSB0MV9iOiB0MV9iX21lc3NhZ2Vc
biIgXAorICAgICAgICAgICAgICAgICAgICAgIltUSU1FT1VUIGV4cGVjdGVkIFBBU1NdIHQxX2M6
IHQxX2NfbWVzc2FnZVxuIgorICAgICMgVGhlIHN0YXR1cyBvZiB0aGUgdGVzdCBpbiB0aGUgb3V0
cHV0IGlzIGEgZmFpbHVyZSBiZWNhdXNlIHN1YnRlc3RzIGZhaWxlZCwKKyAgICAjIGRlc3BpdGUg
dGhlIGhhcm5lc3MgcmVwb3J0aW5nIHRoYXQgdGhlIHRlc3QgcGFzc2VkLgorICAgIGFzc2VydCB0
ZXN0X29ialsiYWN0dWFsIl0gPT0gIkZBSUwiCisgICAgIyBBbHNvIGVuc3VyZSB0aGF0IHRoZSBm
b3JtYXR0ZXIgY2xlYW5lZCB1cCBpdHMgaW50ZXJuYWwgc3RhdGUKKyAgICBhc3NlcnQgInQxIiBu
b3QgaW4gZm9ybWF0dGVyLnRlc3RzX3dpdGhfc3VidGVzdF9mYWlscworCisKK2RlZiB0ZXN0X2V4
cGVjdGVkX3N1YnRlc3RfZmFpbHVyZShjYXBmZCk6CisgICAgIyBUZXN0cyB0aGF0IGFuIGV4cGVj
dGVkIHN1YnRlc3QgZmFpbHVyZSBkb2VzIG5vdCBjYXVzZSB0aGUgdGVzdCB0byBmYWlsCisKKyAg
ICAjIFNldCB1cCB0aGUgaGFuZGxlci4KKyAgICBvdXRwdXQgPSBTdHJpbmdJTygpCisgICAgbG9n
Z2VyID0gc3RydWN0dXJlZGxvZy5TdHJ1Y3R1cmVkTG9nZ2VyKCJ0ZXN0X2EiKQorICAgIGZvcm1h
dHRlciA9IENocm9taXVtRm9ybWF0dGVyKCkKKyAgICBsb2dnZXIuYWRkX2hhbmRsZXIoaGFuZGxl
cnMuU3RyZWFtSGFuZGxlcihvdXRwdXQsIGZvcm1hdHRlcikpCisKKyAgICAjIFJ1biBhIHRlc3Qg
d2l0aCBzb21lIGV4cGVjdGVkIHN1YnRlc3QgZmFpbHVyZXMuCisgICAgbG9nZ2VyLnN1aXRlX3N0
YXJ0KFsidDEiXSwgcnVuX2luZm89e30sIHRpbWU9MTIzKQorICAgIGxvZ2dlci50ZXN0X3N0YXJ0
KCJ0MSIpCisgICAgbG9nZ2VyLnRlc3Rfc3RhdHVzKCJ0MSIsIHN0YXR1cz0iRkFJTCIsIGV4cGVj
dGVkPSJGQUlMIiwgc3VidGVzdD0idDFfYSIsCisgICAgICAgICAgICAgICAgICAgICAgIG1lc3Nh
Z2U9InQxX2FfbWVzc2FnZSIpCisgICAgbG9nZ2VyLnRlc3Rfc3RhdHVzKCJ0MSIsIHN0YXR1cz0i
UEFTUyIsIHN1YnRlc3Q9InQxX2IiLAorICAgICAgICAgICAgICAgICAgICAgICBtZXNzYWdlPSJ0
MV9iX21lc3NhZ2UiKQorICAgIGxvZ2dlci50ZXN0X3N0YXR1cygidDEiLCBzdGF0dXM9IlRJTUVP
VVQiLCBleHBlY3RlZD0iVElNRU9VVCIsIHN1YnRlc3Q9InQxX2MiLAorICAgICAgICAgICAgICAg
ICAgICAgICBtZXNzYWdlPSJ0MV9jX21lc3NhZ2UiKQorCisgICAgIyBUaGUgc3VidGVzdCBmYWls
dXJlcyBhcmUgYWxsIGV4cGVjdGVkIHNvIHRoaXMgdGVzdCBzaG91bGQgbm90IGJlIGFkZGVkIHRv
CisgICAgIyB0aGUgc2V0IG9mIHRlc3RzIHdpdGggc3VidGVzdCBmYWlsdXJlcy4KKyAgICBhc3Nl
cnQgInQxIiBub3QgaW4gZm9ybWF0dGVyLnRlc3RzX3dpdGhfc3VidGVzdF9mYWlscworCisgICAg
IyBUaGUgdGVzdCBzdGF0dXMgaXMgcmVwb3J0ZWQgYXMgYSBwYXNzIGhlcmUgYmVjYXVzZSB0aGUg
aGFybmVzcyB3YXMgYWJsZSB0bworICAgICMgcnVuIHRoZSB0ZXN0IHRvIGNvbXBsZXRpb24uCisg
ICAgbG9nZ2VyLnRlc3RfZW5kKCJ0MSIsIHN0YXR1cz0iUEFTUyIsIGV4cGVjdGVkPSJQQVNTIikK
KyAgICBsb2dnZXIuc3VpdGVfZW5kKCkKKworICAgICMgY2hlY2sgbm90aGluZyBnb3Qgb3V0cHV0
IHRvIHN0ZG91dC9zdGRlcnIKKyAgICAjIChub3RlIHRoYXQgbW96bG9nIG91dHB1dHMgZXhjZXB0
aW9ucyBkdXJpbmcgaGFuZGxpbmcgdG8gc3RkZXJyISkKKyAgICBjYXB0dXJlZCA9IGNhcGZkLnJl
YWRvdXRlcnIoKQorICAgIGFzc2VydCBjYXB0dXJlZC5vdXQgPT0gIiIKKyAgICBhc3NlcnQgY2Fw
dHVyZWQuZXJyID09ICIiCisKKyAgICAjIGNoZWNrIHRoZSBhY3R1YWwgb3V0cHV0IG9mIHRoZSBm
b3JtYXR0ZXIKKyAgICBvdXRwdXQuc2VlaygwKQorICAgIG91dHB1dF9qc29uID0ganNvbi5sb2Fk
KG91dHB1dCkKKworICAgIHRlc3Rfb2JqID0gb3V0cHV0X2pzb25bInRlc3RzIl1bInQxIl0KKyAg
ICB0MV9sb2cgPSB0ZXN0X29ialsiYXJ0aWZhY3RzIl1bImxvZyJdCisgICAgYXNzZXJ0IHQxX2xv
ZyA9PSAiW0ZBSUxdIHQxX2E6IHQxX2FfbWVzc2FnZVxuIiBcCisgICAgICAgICAgICAgICAgICAg
ICAiW1BBU1NdIHQxX2I6IHQxX2JfbWVzc2FnZVxuIiBcCisgICAgICAgICAgICAgICAgICAgICAi
W1RJTUVPVVRdIHQxX2M6IHQxX2NfbWVzc2FnZVxuIgorICAgICMgVGhlIHN0YXR1cyBvZiB0aGUg
dGVzdCBpbiB0aGUgb3V0cHV0IGlzIGEgcGFzcyBiZWNhdXNlIHRoZSBzdWJ0ZXN0CisgICAgIyBm
YWlsdXJlcyB3ZXJlIGFsbCBleHBlY3RlZC4KKyAgICBhc3NlcnQgdGVzdF9vYmpbImFjdHVhbCJd
ID09ICJQQVNTIgorCisKK2RlZiB0ZXN0X3VuZXhwZWN0ZWRfc3VidGVzdF9wYXNzKGNhcGZkKToK
KyAgICAjIEEgc3VidGVzdCB0aGF0IHVuZXhwZWN0ZWRseSBwYXNzZXMgaXMgY29uc2lkZXJlZCBh
IGZhaWx1cmUgY29uZGl0aW9uLgorCisgICAgIyBTZXQgdXAgdGhlIGhhbmRsZXIuCisgICAgb3V0
cHV0ID0gU3RyaW5nSU8oKQorICAgIGxvZ2dlciA9IHN0cnVjdHVyZWRsb2cuU3RydWN0dXJlZExv
Z2dlcigidGVzdF9hIikKKyAgICBmb3JtYXR0ZXIgPSBDaHJvbWl1bUZvcm1hdHRlcigpCisgICAg
bG9nZ2VyLmFkZF9oYW5kbGVyKGhhbmRsZXJzLlN0cmVhbUhhbmRsZXIob3V0cHV0LCBmb3JtYXR0
ZXIpKQorCisgICAgIyBSdW4gYSB0ZXN0IHdpdGggYSBzdWJ0ZXN0IHRoYXQgaXMgZXhwZWN0ZWQg
dG8gZmFpbCBidXQgcGFzc2VzLgorICAgIGxvZ2dlci5zdWl0ZV9zdGFydChbInQxIl0sIHJ1bl9p
bmZvPXt9LCB0aW1lPTEyMykKKyAgICBsb2dnZXIudGVzdF9zdGFydCgidDEiKQorICAgIGxvZ2dl
ci50ZXN0X3N0YXR1cygidDEiLCBzdGF0dXM9IlBBU1MiLCBleHBlY3RlZD0iRkFJTCIsIHN1YnRl
c3Q9InQxX2EiLAorICAgICAgICAgICAgICAgICAgICAgICBtZXNzYWdlPSJ0MV9hX21lc3NhZ2Ui
KQorCisgICAgIyBTaW5jZSB0aGUgc3VidGVzdCBiZWhhdmlvdXIgaXMgdW5leHBlY3RlZCwgaXQn
cyBjb25zaWRlcmVkIGEgZmFpbHVyZSwgc28KKyAgICAjIHRoZSB0ZXN0IHNob3VsZCBiZSBhZGRl
ZCB0byB0aGUgc2V0IG9mIHRlc3RzIHdpdGggc3VidGVzdCBmYWlsdXJlcy4KKyAgICBhc3NlcnQg
InQxIiBpbiBmb3JtYXR0ZXIudGVzdHNfd2l0aF9zdWJ0ZXN0X2ZhaWxzCisKKyAgICAjIFRoZSB0
ZXN0IHN0YXR1cyBpcyByZXBvcnRlZCBhcyBhIHBhc3MgaGVyZSBiZWNhdXNlIHRoZSBoYXJuZXNz
IHdhcyBhYmxlIHRvCisgICAgIyBydW4gdGhlIHRlc3QgdG8gY29tcGxldGlvbi4KKyAgICBsb2dn
ZXIudGVzdF9lbmQoInQxIiwgc3RhdHVzPSJQQVNTIiwgZXhwZWN0ZWQ9IlBBU1MiKQorICAgIGxv
Z2dlci5zdWl0ZV9lbmQoKQorCisgICAgIyBjaGVjayBub3RoaW5nIGdvdCBvdXRwdXQgdG8gc3Rk
b3V0L3N0ZGVycgorICAgICMgKG5vdGUgdGhhdCBtb3psb2cgb3V0cHV0cyBleGNlcHRpb25zIGR1
cmluZyBoYW5kbGluZyB0byBzdGRlcnIhKQorICAgIGNhcHR1cmVkID0gY2FwZmQucmVhZG91dGVy
cigpCisgICAgYXNzZXJ0IGNhcHR1cmVkLm91dCA9PSAiIgorICAgIGFzc2VydCBjYXB0dXJlZC5l
cnIgPT0gIiIKKworICAgICMgY2hlY2sgdGhlIGFjdHVhbCBvdXRwdXQgb2YgdGhlIGZvcm1hdHRl
cgorICAgIG91dHB1dC5zZWVrKDApCisgICAgb3V0cHV0X2pzb24gPSBqc29uLmxvYWQob3V0cHV0
KQorCisgICAgdGVzdF9vYmogPSBvdXRwdXRfanNvblsidGVzdHMiXVsidDEiXQorICAgIHQxX2xv
ZyA9IHRlc3Rfb2JqWyJhcnRpZmFjdHMiXVsibG9nIl0KKyAgICBhc3NlcnQgdDFfbG9nID09ICJb
UEFTUyBleHBlY3RlZCBGQUlMXSB0MV9hOiB0MV9hX21lc3NhZ2VcbiIKKyAgICAjIFNpbmNlIHRo
ZSBzdWJ0ZXN0IHN0YXR1cyBpcyB1bmV4cGVjdGVkLCB3ZSBmYWlsIHRoZSB0ZXN0LgorICAgIGFz
c2VydCB0ZXN0X29ialsiYWN0dWFsIl0gPT0gIkZBSUwiCisgICAgIyBBbHNvIGVuc3VyZSB0aGF0
IHRoZSBmb3JtYXR0ZXIgY2xlYW5lZCB1cCBpdHMgaW50ZXJuYWwgc3RhdGUKKyAgICBhc3NlcnQg
InQxIiBub3QgaW4gZm9ybWF0dGVyLnRlc3RzX3dpdGhfc3VidGVzdF9mYWlscworCisKK2RlZiB0
ZXN0X2V4cGVjdGVkX3Rlc3RfZmFpbChjYXBmZCk6CisgICAgIyBDaGVjayB0aGF0IGFuIGV4cGVj
dGVkIHRlc3QtbGV2ZWwgZmFpbHVyZSBpcyB0cmVhdGVkIGFzIGEgUGFzcworCisgICAgIyBTZXQg
dXAgdGhlIGhhbmRsZXIuCisgICAgb3V0cHV0ID0gU3RyaW5nSU8oKQorICAgIGxvZ2dlciA9IHN0
cnVjdHVyZWRsb2cuU3RydWN0dXJlZExvZ2dlcigidGVzdF9hIikKKyAgICBsb2dnZXIuYWRkX2hh
bmRsZXIoaGFuZGxlcnMuU3RyZWFtSGFuZGxlcihvdXRwdXQsIENocm9taXVtRm9ybWF0dGVyKCkp
KQorCisgICAgIyBSdW4gc29tZSB0ZXN0cyB3aXRoIGRpZmZlcmVudCBzdGF0dXNlczogMyBwYXNz
ZXMsIDEgdGltZW91dAorICAgIGxvZ2dlci5zdWl0ZV9zdGFydChbInQxIl0sIHJ1bl9pbmZvPXt9
LCB0aW1lPTEyMykKKyAgICBsb2dnZXIudGVzdF9zdGFydCgidDEiKQorICAgIGxvZ2dlci50ZXN0
X2VuZCgidDEiLCBzdGF0dXM9IkVSUk9SIiwgZXhwZWN0ZWQ9IkVSUk9SIikKKyAgICBsb2dnZXIu
c3VpdGVfZW5kKCkKKworICAgICMgY2hlY2sgbm90aGluZyBnb3Qgb3V0cHV0IHRvIHN0ZG91dC9z
dGRlcnIKKyAgICAjIChub3RlIHRoYXQgbW96bG9nIG91dHB1dHMgZXhjZXB0aW9ucyBkdXJpbmcg
aGFuZGxpbmcgdG8gc3RkZXJyISkKKyAgICBjYXB0dXJlZCA9IGNhcGZkLnJlYWRvdXRlcnIoKQor
ICAgIGFzc2VydCBjYXB0dXJlZC5vdXQgPT0gIiIKKyAgICBhc3NlcnQgY2FwdHVyZWQuZXJyID09
ICIiCisKKyAgICAjIGNoZWNrIHRoZSBhY3R1YWwgb3V0cHV0IG9mIHRoZSBmb3JtYXR0ZXIKKyAg
ICBvdXRwdXQuc2VlaygwKQorICAgIG91dHB1dF9qc29uID0ganNvbi5sb2FkKG91dHB1dCkKKwor
ICAgIHRlc3Rfb2JqID0gb3V0cHV0X2pzb25bInRlc3RzIl1bInQxIl0KKyAgICAjIFRoZSB0ZXN0
J3MgYWN0dWFsIGFuZCBleHBlY3RlZCBzdGF0dXMgc2hvdWxkIG1hcCBmcm9tICJFUlJPUiIgdG8g
IkZBSUwiCisgICAgYXNzZXJ0IHRlc3Rfb2JqWyJhY3R1YWwiXSA9PSAiRkFJTCIKKyAgICBhc3Nl
cnQgdGVzdF9vYmpbImV4cGVjdGVkIl0gPT0gIkZBSUwiCisgICAgIyAuLmFuZCB0aGlzIHRlc3Qg
c2hvdWxkIG5vdCBiZSBhIHJlZ3Jlc3Npb24gbm9yIHVuZXhwZWN0ZWQKKyAgICBhc3NlcnQgImlz
X3JlZ3Jlc3Npb24iIG5vdCBpbiB0ZXN0X29iagorICAgIGFzc2VydCAiaXNfdW5leHBlY3RlZCIg
bm90IGluIHRlc3Rfb2JqCisKKworZGVmIHRlc3RfdW5leHBlY3RlZF90ZXN0X2ZhaWwoY2FwZmQp
OgorICAgICMgQ2hlY2sgdGhhdCBhbiB1bmV4cGVjdGVkIHRlc3QtbGV2ZWwgZmFpbHVyZSBpcyBt
YXJrZWQgYXMgdW5leHBlY3RlZCBhbmQKKyAgICAjIGFzIGEgcmVncmVzc2lvbi4KKworICAgICMg
U2V0IHVwIHRoZSBoYW5kbGVyLgorICAgIG91dHB1dCA9IFN0cmluZ0lPKCkKKyAgICBsb2dnZXIg
PSBzdHJ1Y3R1cmVkbG9nLlN0cnVjdHVyZWRMb2dnZXIoInRlc3RfYSIpCisgICAgbG9nZ2VyLmFk
ZF9oYW5kbGVyKGhhbmRsZXJzLlN0cmVhbUhhbmRsZXIob3V0cHV0LCBDaHJvbWl1bUZvcm1hdHRl
cigpKSkKKworICAgICMgUnVuIHNvbWUgdGVzdHMgd2l0aCBkaWZmZXJlbnQgc3RhdHVzZXM6IDMg
cGFzc2VzLCAxIHRpbWVvdXQKKyAgICBsb2dnZXIuc3VpdGVfc3RhcnQoWyJ0MSJdLCBydW5faW5m
bz17fSwgdGltZT0xMjMpCisgICAgbG9nZ2VyLnRlc3Rfc3RhcnQoInQxIikKKyAgICBsb2dnZXIu
dGVzdF9lbmQoInQxIiwgc3RhdHVzPSJFUlJPUiIsIGV4cGVjdGVkPSJPSyIpCisgICAgbG9nZ2Vy
LnN1aXRlX2VuZCgpCisKKyAgICAjIGNoZWNrIG5vdGhpbmcgZ290IG91dHB1dCB0byBzdGRvdXQv
c3RkZXJyCisgICAgIyAobm90ZSB0aGF0IG1vemxvZyBvdXRwdXRzIGV4Y2VwdGlvbnMgZHVyaW5n
IGhhbmRsaW5nIHRvIHN0ZGVyciEpCisgICAgY2FwdHVyZWQgPSBjYXBmZC5yZWFkb3V0ZXJyKCkK
KyAgICBhc3NlcnQgY2FwdHVyZWQub3V0ID09ICIiCisgICAgYXNzZXJ0IGNhcHR1cmVkLmVyciA9
PSAiIgorCisgICAgIyBjaGVjayB0aGUgYWN0dWFsIG91dHB1dCBvZiB0aGUgZm9ybWF0dGVyCisg
ICAgb3V0cHV0LnNlZWsoMCkKKyAgICBvdXRwdXRfanNvbiA9IGpzb24ubG9hZChvdXRwdXQpCisK
KyAgICB0ZXN0X29iaiA9IG91dHB1dF9qc29uWyJ0ZXN0cyJdWyJ0MSJdCisgICAgIyBUaGUgdGVz
dCdzIGFjdHVhbCBhbmQgZXhwZWN0ZWQgc3RhdHVzIHNob3VsZCBiZSBtYXBwZWQsIEVSUk9SLT5G
QUlMIGFuZAorICAgICMgT0stPlBBU1MKKyAgICBhc3NlcnQgdGVzdF9vYmpbImFjdHVhbCJdID09
ICJGQUlMIgorICAgIGFzc2VydCB0ZXN0X29ialsiZXhwZWN0ZWQiXSA9PSAiUEFTUyIKKyAgICAj
IC4uYW5kIHRoaXMgdGVzdCBzaG91bGQgbm90IGJlIGEgcmVncmVzc2lvbiBub3IgdW5leHBlY3Rl
ZAorICAgIGFzc2VydCB0ZXN0X29ialsiaXNfcmVncmVzc2lvbiJdIGlzIFRydWUKKyAgICBhc3Nl
cnQgdGVzdF9vYmpbImlzX3VuZXhwZWN0ZWQiXSBpcyBUcnVlCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRy
dW5uZXIvZm9ybWF0dGVycy90ZXN0cy93M2MtaW1wb3J0LmxvZyBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9mb3Jt
YXR0ZXJzL3Rlc3RzL3czYy1pbXBvcnQubG9nCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwLi43YzJjZjRmZTc0YQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9m
b3JtYXR0ZXJzL3Rlc3RzL3czYy1pbXBvcnQubG9nCkBAIC0wLDAgKzEsMTcgQEAKK1RoZSB0ZXN0
cyBpbiB0aGlzIGRpcmVjdG9yeSB3ZXJlIGltcG9ydGVkIGZyb20gdGhlIFczQyByZXBvc2l0b3J5
LgorRG8gTk9UIG1vZGlmeSB0aGVzZSB0ZXN0cyBkaXJlY3RseSBpbiBXZWJLaXQuCitJbnN0ZWFk
LCBjcmVhdGUgYSBwdWxsIHJlcXVlc3Qgb24gdGhlIFdQVCBnaXRodWI6CisJaHR0cHM6Ly9naXRo
dWIuY29tL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQKKworVGhlbiBydW4gdGhlIFRvb2xzL1Njcmlw
dHMvaW1wb3J0LXczYy10ZXN0cyBpbiBXZWJLaXQgdG8gcmVpbXBvcnQKKworRG8gTk9UIG1vZGlm
eSBvciByZW1vdmUgdGhpcyBmaWxlLgorCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK1Byb3BlcnRpZXMgcmVx
dWlyaW5nIHZlbmRvciBwcmVmaXhlczoKK05vbmUKK1Byb3BlcnR5IHZhbHVlcyByZXF1aXJpbmcg
dmVuZG9yIHByZWZpeGVzOgorTm9uZQorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitMaXN0IG9mIGZpbGVzOgor
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVu
bmVyL3dwdHJ1bm5lci9mb3JtYXR0ZXJzL3Rlc3RzL3Rlc3RfY2hyb21pdW0ucHkKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0
cnVubmVyL3dwdHJ1bm5lci9mb3JtYXR0ZXJzL3czYy1pbXBvcnQubG9nIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVy
L2Zvcm1hdHRlcnMvdzNjLWltcG9ydC5sb2cKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAuLjk3MWFiMGIwOTZlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2Zv
cm1hdHRlcnMvdzNjLWltcG9ydC5sb2cKQEAgLTAsMCArMSwyMCBAQAorVGhlIHRlc3RzIGluIHRo
aXMgZGlyZWN0b3J5IHdlcmUgaW1wb3J0ZWQgZnJvbSB0aGUgVzNDIHJlcG9zaXRvcnkuCitEbyBO
T1QgbW9kaWZ5IHRoZXNlIHRlc3RzIGRpcmVjdGx5IGluIFdlYktpdC4KK0luc3RlYWQsIGNyZWF0
ZSBhIHB1bGwgcmVxdWVzdCBvbiB0aGUgV1BUIGdpdGh1YjoKKwlodHRwczovL2dpdGh1Yi5jb20v
d2ViLXBsYXRmb3JtLXRlc3RzL3dwdAorCitUaGVuIHJ1biB0aGUgVG9vbHMvU2NyaXB0cy9pbXBv
cnQtdzNjLXRlc3RzIGluIFdlYktpdCB0byByZWltcG9ydAorCitEbyBOT1QgbW9kaWZ5IG9yIHJl
bW92ZSB0aGlzIGZpbGUuCisKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorUHJvcGVydGllcyByZXF1aXJpbmcg
dmVuZG9yIHByZWZpeGVzOgorTm9uZQorUHJvcGVydHkgdmFsdWVzIHJlcXVpcmluZyB2ZW5kb3Ig
cHJlZml4ZXM6CitOb25lCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK0xpc3Qgb2YgZmlsZXM6CisvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0
cnVubmVyL2Zvcm1hdHRlcnMvX19pbml0X18ucHkKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvZm9ybWF0dGVycy9j
aHJvbWl1bS5weQorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9mb3JtYXR0ZXJzL3dwdHJlcG9ydC5weQorL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dw
dHJ1bm5lci9mb3JtYXR0ZXJzL3dwdHNjcmVlbnNob3QucHkKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1
bm5lci9mb3JtYXR0ZXJzL3dwdHJlcG9ydC5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9mb3JtYXR0ZXJzL3dw
dHJlcG9ydC5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uNmQ0NDAx
YWU1YWEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvZm9ybWF0dGVycy93cHRyZXBv
cnQucHkKQEAgLTAsMCArMSwxNzAgQEAKK2ltcG9ydCBqc29uCitpbXBvcnQgcmUKK2ltcG9ydCBz
eXMKKworZnJvbSBtb3psb2cuc3RydWN0dXJlZC5mb3JtYXR0ZXJzLmJhc2UgaW1wb3J0IEJhc2VG
b3JtYXR0ZXIKK2Zyb20gLi5leGVjdXRvcnMuYmFzZSBpbXBvcnQgc3RyaXBfc2VydmVyCisKKwor
TE9ORV9TVVJST0dBVEVfUkUgPSByZS5jb21waWxlKHUiW1x1RDgwMC1cdURGRkZdIikKKworCitk
ZWYgc3Vycm9nYXRlX3JlcGxhY2VtZW50X3VjczQobWF0Y2gpOgorICAgIHJldHVybiAiVSsiICsg
aGV4KG9yZChtYXRjaC5ncm91cCgpKSlbMjpdCisKKworY2xhc3MgU3Vycm9nYXRlUmVwbGFjZW1l
bnRVY3MyKG9iamVjdCk6CisgICAgZGVmIF9faW5pdF9fKHNlbGYpOgorICAgICAgICBzZWxmLnNr
aXAgPSBGYWxzZQorCisgICAgZGVmIF9fY2FsbF9fKHNlbGYsIG1hdGNoKToKKyAgICAgICAgY2hh
ciA9IG1hdGNoLmdyb3VwKCkKKworICAgICAgICBpZiBzZWxmLnNraXA6CisgICAgICAgICAgICBz
ZWxmLnNraXAgPSBGYWxzZQorICAgICAgICAgICAgcmV0dXJuIGNoYXIKKworICAgICAgICBpc19s
b3cgPSAweEQ4MDAgPD0gb3JkKGNoYXIpIDw9IDB4REJGRgorCisgICAgICAgIGVzY2FwZSA9IFRy
dWUKKyAgICAgICAgaWYgaXNfbG93OgorICAgICAgICAgICAgbmV4dF9pZHggPSBtYXRjaC5lbmQo
KQorICAgICAgICAgICAgaWYgbmV4dF9pZHggPCBsZW4obWF0Y2guc3RyaW5nKToKKyAgICAgICAg
ICAgICAgICBuZXh0X2NoYXIgPSBtYXRjaC5zdHJpbmdbbmV4dF9pZHhdCisgICAgICAgICAgICAg
ICAgaWYgMHhEQzAwIDw9IG9yZChuZXh0X2NoYXIpIDw9IDB4REZGRjoKKyAgICAgICAgICAgICAg
ICAgICAgZXNjYXBlID0gRmFsc2UKKworICAgICAgICBpZiBub3QgZXNjYXBlOgorICAgICAgICAg
ICAgc2VsZi5za2lwID0gVHJ1ZQorICAgICAgICAgICAgcmV0dXJuIGNoYXIKKworICAgICAgICBy
ZXR1cm4gIlUrIiArIGhleChvcmQobWF0Y2guZ3JvdXAoKSkpWzI6XQorCisKK2lmIHN5cy5tYXh1
bmljb2RlID09IDB4MTBGRkZGOgorICAgIHN1cnJvZ2F0ZV9yZXBsYWNlbWVudCA9IHN1cnJvZ2F0
ZV9yZXBsYWNlbWVudF91Y3M0CitlbHNlOgorICAgIHN1cnJvZ2F0ZV9yZXBsYWNlbWVudCA9IFN1
cnJvZ2F0ZVJlcGxhY2VtZW50VWNzMigpCisKKworZGVmIHJlcGxhY2VfbG9uZV9zdXJyb2dhdGUo
ZGF0YSk6CisgICAgcmV0dXJuIExPTkVfU1VSUk9HQVRFX1JFLnN1Ym4oc3Vycm9nYXRlX3JlcGxh
Y2VtZW50LCBkYXRhKVswXQorCisKK2NsYXNzIFdwdHJlcG9ydEZvcm1hdHRlcihCYXNlRm9ybWF0
dGVyKToKKyAgICAiIiJGb3JtYXR0ZXIgdGhhdCBwcm9kdWNlcyByZXN1bHRzIGluIHRoZSBmb3Jt
YXQgdGhhdCB3cHRyZXBvcnQgZXhwZWN0cy4iIiIKKworICAgIGRlZiBfX2luaXRfXyhzZWxmKToK
KyAgICAgICAgc2VsZi5yYXdfcmVzdWx0cyA9IHt9CisgICAgICAgIHNlbGYucmVzdWx0cyA9IHt9
CisKKyAgICBkZWYgc3VpdGVfc3RhcnQoc2VsZiwgZGF0YSk6CisgICAgICAgIGlmICdydW5faW5m
bycgaW4gZGF0YToKKyAgICAgICAgICAgIHNlbGYucmVzdWx0c1sncnVuX2luZm8nXSA9IGRhdGFb
J3J1bl9pbmZvJ10KKyAgICAgICAgc2VsZi5yZXN1bHRzWyd0aW1lX3N0YXJ0J10gPSBkYXRhWyd0
aW1lJ10KKyAgICAgICAgc2VsZi5yZXN1bHRzWyJyZXN1bHRzIl0gPSBbXQorCisgICAgZGVmIHN1
aXRlX2VuZChzZWxmLCBkYXRhKToKKyAgICAgICAgc2VsZi5yZXN1bHRzWyd0aW1lX2VuZCddID0g
ZGF0YVsndGltZSddCisgICAgICAgIGZvciB0ZXN0X25hbWUgaW4gc2VsZi5yYXdfcmVzdWx0czoK
KyAgICAgICAgICAgIHJlc3VsdCA9IHsidGVzdCI6IHRlc3RfbmFtZX0KKyAgICAgICAgICAgIHJl
c3VsdC51cGRhdGUoc2VsZi5yYXdfcmVzdWx0c1t0ZXN0X25hbWVdKQorICAgICAgICAgICAgc2Vs
Zi5yZXN1bHRzWyJyZXN1bHRzIl0uYXBwZW5kKHJlc3VsdCkKKyAgICAgICAgcmV0dXJuIGpzb24u
ZHVtcHMoc2VsZi5yZXN1bHRzKSArICJcbiIKKworICAgIGRlZiBmaW5kX29yX2NyZWF0ZV90ZXN0
KHNlbGYsIGRhdGEpOgorICAgICAgICB0ZXN0X25hbWUgPSBkYXRhWyJ0ZXN0Il0KKyAgICAgICAg
aWYgdGVzdF9uYW1lIG5vdCBpbiBzZWxmLnJhd19yZXN1bHRzOgorICAgICAgICAgICAgc2VsZi5y
YXdfcmVzdWx0c1t0ZXN0X25hbWVdID0geworICAgICAgICAgICAgICAgICJzdWJ0ZXN0cyI6IFtd
LAorICAgICAgICAgICAgICAgICJzdGF0dXMiOiAiIiwKKyAgICAgICAgICAgICAgICAibWVzc2Fn
ZSI6IE5vbmUKKyAgICAgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHNlbGYucmF3X3Jlc3VsdHNb
dGVzdF9uYW1lXQorCisgICAgZGVmIHRlc3Rfc3RhcnQoc2VsZiwgZGF0YSk6CisgICAgICAgIHRl
c3QgPSBzZWxmLmZpbmRfb3JfY3JlYXRlX3Rlc3QoZGF0YSkKKyAgICAgICAgdGVzdFsic3RhcnRf
dGltZSJdID0gZGF0YVsidGltZSJdCisKKyAgICBkZWYgY3JlYXRlX3N1YnRlc3Qoc2VsZiwgZGF0
YSk6CisgICAgICAgIHRlc3QgPSBzZWxmLmZpbmRfb3JfY3JlYXRlX3Rlc3QoZGF0YSkKKyAgICAg
ICAgc3VidGVzdF9uYW1lID0gcmVwbGFjZV9sb25lX3N1cnJvZ2F0ZShkYXRhWyJzdWJ0ZXN0Il0p
CisKKyAgICAgICAgc3VidGVzdCA9IHsKKyAgICAgICAgICAgICJuYW1lIjogc3VidGVzdF9uYW1l
LAorICAgICAgICAgICAgInN0YXR1cyI6ICIiLAorICAgICAgICAgICAgIm1lc3NhZ2UiOiBOb25l
CisgICAgICAgIH0KKyAgICAgICAgdGVzdFsic3VidGVzdHMiXS5hcHBlbmQoc3VidGVzdCkKKwor
ICAgICAgICByZXR1cm4gc3VidGVzdAorCisgICAgZGVmIHRlc3Rfc3RhdHVzKHNlbGYsIGRhdGEp
OgorICAgICAgICBzdWJ0ZXN0ID0gc2VsZi5jcmVhdGVfc3VidGVzdChkYXRhKQorICAgICAgICBz
dWJ0ZXN0WyJzdGF0dXMiXSA9IGRhdGFbInN0YXR1cyJdCisgICAgICAgIGlmICJleHBlY3RlZCIg
aW4gZGF0YToKKyAgICAgICAgICAgIHN1YnRlc3RbImV4cGVjdGVkIl0gPSBkYXRhWyJleHBlY3Rl
ZCJdCisgICAgICAgIGlmICJrbm93bl9pbnRlcm1pdHRlbnQiIGluIGRhdGE6CisgICAgICAgICAg
ICBzdWJ0ZXN0WyJrbm93bl9pbnRlcm1pdHRlbnQiXSA9IGRhdGFbImtub3duX2ludGVybWl0dGVu
dCJdCisgICAgICAgIGlmICJtZXNzYWdlIiBpbiBkYXRhOgorICAgICAgICAgICAgc3VidGVzdFsi
bWVzc2FnZSJdID0gcmVwbGFjZV9sb25lX3N1cnJvZ2F0ZShkYXRhWyJtZXNzYWdlIl0pCisKKyAg
ICBkZWYgdGVzdF9lbmQoc2VsZiwgZGF0YSk6CisgICAgICAgIHRlc3QgPSBzZWxmLmZpbmRfb3Jf
Y3JlYXRlX3Rlc3QoZGF0YSkKKyAgICAgICAgc3RhcnRfdGltZSA9IHRlc3QucG9wKCJzdGFydF90
aW1lIikKKyAgICAgICAgdGVzdFsiZHVyYXRpb24iXSA9IGRhdGFbInRpbWUiXSAtIHN0YXJ0X3Rp
bWUKKyAgICAgICAgdGVzdFsic3RhdHVzIl0gPSBkYXRhWyJzdGF0dXMiXQorICAgICAgICBpZiAi
ZXhwZWN0ZWQiIGluIGRhdGE6CisgICAgICAgICAgICB0ZXN0WyJleHBlY3RlZCJdID0gZGF0YVsi
ZXhwZWN0ZWQiXQorICAgICAgICBpZiAia25vd25faW50ZXJtaXR0ZW50IiBpbiBkYXRhOgorICAg
ICAgICAgICAgdGVzdFsia25vd25faW50ZXJtaXR0ZW50Il0gPSBkYXRhWyJrbm93bl9pbnRlcm1p
dHRlbnQiXQorICAgICAgICBpZiAibWVzc2FnZSIgaW4gZGF0YToKKyAgICAgICAgICAgIHRlc3Rb
Im1lc3NhZ2UiXSA9IHJlcGxhY2VfbG9uZV9zdXJyb2dhdGUoZGF0YVsibWVzc2FnZSJdKQorICAg
ICAgICBpZiAicmVmdGVzdF9zY3JlZW5zaG90cyIgaW4gZGF0YS5nZXQoImV4dHJhIiwge30pOgor
ICAgICAgICAgICAgdGVzdFsic2NyZWVuc2hvdHMiXSA9IHsKKyAgICAgICAgICAgICAgICBzdHJp
cF9zZXJ2ZXIoaXRlbVsidXJsIl0pOiAic2hhMToiICsgaXRlbVsiaGFzaCJdCisgICAgICAgICAg
ICAgICAgZm9yIGl0ZW0gaW4gZGF0YVsiZXh0cmEiXVsicmVmdGVzdF9zY3JlZW5zaG90cyJdCisg
ICAgICAgICAgICAgICAgaWYgdHlwZShpdGVtKSA9PSBkaWN0CisgICAgICAgICAgICB9CisgICAg
ICAgIHRlc3RfbmFtZSA9IGRhdGFbInRlc3QiXQorICAgICAgICByZXN1bHQgPSB7InRlc3QiOiBk
YXRhWyJ0ZXN0Il19CisgICAgICAgIHJlc3VsdC51cGRhdGUoc2VsZi5yYXdfcmVzdWx0c1t0ZXN0
X25hbWVdKQorICAgICAgICBzZWxmLnJlc3VsdHNbInJlc3VsdHMiXS5hcHBlbmQocmVzdWx0KQor
ICAgICAgICBzZWxmLnJhd19yZXN1bHRzLnBvcCh0ZXN0X25hbWUpCisKKyAgICBkZWYgYXNzZXJ0
aW9uX2NvdW50KHNlbGYsIGRhdGEpOgorICAgICAgICB0ZXN0ID0gc2VsZi5maW5kX29yX2NyZWF0
ZV90ZXN0KGRhdGEpCisgICAgICAgIHRlc3RbImFzc2VydHMiXSA9IHsKKyAgICAgICAgICAgICJj
b3VudCI6IGRhdGFbImNvdW50Il0sCisgICAgICAgICAgICAibWluIjogZGF0YVsibWluX2V4cGVj
dGVkIl0sCisgICAgICAgICAgICAibWF4IjogZGF0YVsibWF4X2V4cGVjdGVkIl0KKyAgICAgICAg
fQorCisgICAgZGVmIGxzYW5fbGVhayhzZWxmLCBkYXRhKToKKyAgICAgICAgaWYgImxzYW5fbGVh
a3MiIG5vdCBpbiBzZWxmLnJlc3VsdHM6CisgICAgICAgICAgICBzZWxmLnJlc3VsdHNbImxzYW5f
bGVha3MiXSA9IFtdCisgICAgICAgIGxzYW5fbGVha3MgPSBzZWxmLnJlc3VsdHNbImxzYW5fbGVh
a3MiXQorICAgICAgICBsc2FuX2xlYWtzLmFwcGVuZCh7ImZyYW1lcyI6IGRhdGFbImZyYW1lcyJd
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgInNjb3BlIjogZGF0YVsic2NvcGUiXSwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICJhbGxvd2VkX21hdGNoIjogZGF0YS5nZXQoImFsbG93
ZWRfbWF0Y2giKX0pCisKKyAgICBkZWYgZmluZF9vcl9jcmVhdGVfbW96bGVhayhzZWxmLCBkYXRh
KToKKyAgICAgICAgaWYgIm1vemxlYWsiIG5vdCBpbiBzZWxmLnJlc3VsdHM6CisgICAgICAgICAg
ICBzZWxmLnJlc3VsdHNbIm1vemxlYWsiXSA9IHt9CisgICAgICAgIHNjb3BlID0gZGF0YVsic2Nv
cGUiXQorICAgICAgICBpZiBzY29wZSBub3QgaW4gc2VsZi5yZXN1bHRzWyJtb3psZWFrIl06Cisg
ICAgICAgICAgICBzZWxmLnJlc3VsdHNbIm1vemxlYWsiXVtzY29wZV0gPSB7Im9iamVjdHMiOiBb
XSwgInRvdGFsIjogW119CisgICAgICAgIHJldHVybiBzZWxmLnJlc3VsdHNbIm1vemxlYWsiXVtz
Y29wZV0KKworICAgIGRlZiBtb3psZWFrX29iamVjdChzZWxmLCBkYXRhKToKKyAgICAgICAgc2Nv
cGVfZGF0YSA9IHNlbGYuZmluZF9vcl9jcmVhdGVfbW96bGVhayhkYXRhKQorICAgICAgICBzY29w
ZV9kYXRhWyJvYmplY3RzIl0uYXBwZW5kKHsicHJvY2VzcyI6IGRhdGFbInByb2Nlc3MiXSwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIm5hbWUiOiBkYXRhWyJuYW1lIl0s
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJhbGxvd2VkIjogZGF0YS5n
ZXQoImFsbG93ZWQiLCBGYWxzZSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICJieXRlcyI6IGRhdGFbImJ5dGVzIl19KQorCisgICAgZGVmIG1vemxlYWtfdG90YWwoc2Vs
ZiwgZGF0YSk6CisgICAgICAgIHNjb3BlX2RhdGEgPSBzZWxmLmZpbmRfb3JfY3JlYXRlX21vemxl
YWsoZGF0YSkKKyAgICAgICAgc2NvcGVfZGF0YVsidG90YWwiXS5hcHBlbmQoeyJieXRlcyI6IGRh
dGFbImJ5dGVzIl0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAidGhyZXNo
b2xkIjogZGF0YS5nZXQoInRocmVzaG9sZCIsIDApLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgInByb2Nlc3MiOiBkYXRhWyJwcm9jZXNzIl19KQpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIv
d3B0cnVubmVyL2Zvcm1hdHRlcnMvd3B0c2NyZWVuc2hvdC5weSBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9mb3Jt
YXR0ZXJzL3dwdHNjcmVlbnNob3QucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAuLmY4NTRkOTViOWQwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2Zvcm1h
dHRlcnMvd3B0c2NyZWVuc2hvdC5weQpAQCAtMCwwICsxLDQ3IEBACitpbXBvcnQgcmVxdWVzdHMK
K2Zyb20gbW96bG9nLnN0cnVjdHVyZWQuZm9ybWF0dGVycy5iYXNlIGltcG9ydCBCYXNlRm9ybWF0
dGVyCisKK0RFRkFVTFRfQVBJID0gImh0dHBzOi8vd3B0LmZ5aS9hcGkvc2NyZWVuc2hvdHMvaGFz
aGVzIgorCisKK2NsYXNzIFdwdHNjcmVlbnNob3RGb3JtYXR0ZXIoQmFzZUZvcm1hdHRlcik6Cisg
ICAgIiIiRm9ybWF0dGVyIHRoYXQgb3V0cHV0cyBzY3JlZW5zaG90cyBpbiB0aGUgZm9ybWF0IGV4
cGVjdGVkIGJ5IHdwdC5meWkuIiIiCisKKyAgICBkZWYgX19pbml0X18oc2VsZiwgYXBpPU5vbmUp
OgorICAgICAgICBzZWxmLmFwaSA9IGFwaSBvciBERUZBVUxUX0FQSQorICAgICAgICBzZWxmLmNh
Y2hlID0gc2V0KCkKKworICAgIGRlZiBzdWl0ZV9zdGFydChzZWxmLCBkYXRhKToKKyAgICAgICAg
IyBUT0RPKEhleGNsZXMpOiBXZSBtaWdodCB3YW50IHRvIG1vdmUgdGhlIHJlcXVlc3QgaW50byBh
IGRpZmZlcmVudAorICAgICAgICAjIHBsYWNlLCBtYWtlIGl0IG5vbi1ibG9ja2luZywgYW5kIGhh
bmRsZSBlcnJvcnMgYmV0dGVyLgorICAgICAgICBwYXJhbXMgPSB7fQorICAgICAgICBydW5faW5m
byA9IGRhdGEuZ2V0KCJydW5faW5mbyIsIHt9KQorICAgICAgICBpZiAicHJvZHVjdCIgaW4gcnVu
X2luZm86CisgICAgICAgICAgICBwYXJhbXNbImJyb3dzZXIiXSA9IHJ1bl9pbmZvWyJwcm9kdWN0
Il0KKyAgICAgICAgaWYgImJyb3dzZXJfdmVyc2lvbiIgaW4gcnVuX2luZm86CisgICAgICAgICAg
ICBwYXJhbXNbImJyb3dzZXJfdmVyc2lvbiJdID0gcnVuX2luZm9bImJyb3dzZXJfdmVyc2lvbiJd
CisgICAgICAgIGlmICJvcyIgaW4gcnVuX2luZm86CisgICAgICAgICAgICBwYXJhbXNbIm9zIl0g
PSBydW5faW5mb1sib3MiXQorICAgICAgICBpZiAib3NfdmVyc2lvbiIgaW4gcnVuX2luZm86Cisg
ICAgICAgICAgICBwYXJhbXNbIm9zX3ZlcnNpb24iXSA9IHJ1bl9pbmZvWyJvc192ZXJzaW9uIl0K
KyAgICAgICAgdHJ5OgorICAgICAgICAgICAgciA9IHJlcXVlc3RzLmdldChzZWxmLmFwaSwgcGFy
YW1zPXBhcmFtcykKKyAgICAgICAgICAgIHIucmFpc2VfZm9yX3N0YXR1cygpCisgICAgICAgICAg
ICBzZWxmLmNhY2hlID0gc2V0KHIuanNvbigpKQorICAgICAgICBleGNlcHQgKHJlcXVlc3RzLmV4
Y2VwdGlvbnMuUmVxdWVzdEV4Y2VwdGlvbiwgVmFsdWVFcnJvcik6CisgICAgICAgICAgICBwYXNz
CisKKyAgICBkZWYgdGVzdF9lbmQoc2VsZiwgZGF0YSk6CisgICAgICAgIGlmICJyZWZ0ZXN0X3Nj
cmVlbnNob3RzIiBub3QgaW4gZGF0YS5nZXQoImV4dHJhIiwge30pOgorICAgICAgICAgICAgcmV0
dXJuCisgICAgICAgIG91dHB1dCA9ICIiCisgICAgICAgIGZvciBpdGVtIGluIGRhdGFbImV4dHJh
Il1bInJlZnRlc3Rfc2NyZWVuc2hvdHMiXToKKyAgICAgICAgICAgIGlmIHR5cGUoaXRlbSkgIT0g
ZGljdDoKKyAgICAgICAgICAgICAgICAjIFNraXAgdGhlIHJlbGF0aW9uIHN0cmluZy4KKyAgICAg
ICAgICAgICAgICBjb250aW51ZQorICAgICAgICAgICAgY2hlY2tzdW0gPSAic2hhMToiICsgaXRl
bVsiaGFzaCJdCisgICAgICAgICAgICBpZiBjaGVja3N1bSBpbiBzZWxmLmNhY2hlOgorICAgICAg
ICAgICAgICAgIGNvbnRpbnVlCisgICAgICAgICAgICBzZWxmLmNhY2hlLmFkZChjaGVja3N1bSkK
KyAgICAgICAgICAgIG91dHB1dCArPSAiZGF0YTppbWFnZS9wbmc7YmFzZTY0LHt9XG4iLmZvcm1h
dChpdGVtWyJzY3JlZW5zaG90Il0pCisgICAgICAgIHJldHVybiBvdXRwdXQgaWYgb3V0cHV0IGVs
c2UgTm9uZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL21hbmlmZXN0ZXhwZWN0ZWQucHkgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5l
ci93cHRydW5uZXIvbWFuaWZlc3RleHBlY3RlZC5weQppbmRleCA4MzFmNTM3OGIzNi4uZWFlODVi
MWY2NjYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9tYW5pZmVzdGV4cGVjdGVkLnB5CisrKyBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVu
bmVyL3dwdHJ1bm5lci9tYW5pZmVzdGV4cGVjdGVkLnB5CkBAIC0xLDEwICsxLDExIEBACiBpbXBv
cnQgb3MKLWltcG9ydCB1cmxwYXJzZQorZnJvbSBzaXgubW92ZXMudXJsbGliLnBhcnNlIGltcG9y
dCB1cmxqb2luCitmcm9tIGNvbGxlY3Rpb25zIGltcG9ydCBkZXF1ZQogCi1mcm9tIHdwdG1hbmlm
ZXN0LmJhY2tlbmRzIGltcG9ydCBzdGF0aWMKLWZyb20gd3B0bWFuaWZlc3QuYmFja2VuZHMuc3Rh
dGljIGltcG9ydCBNYW5pZmVzdEl0ZW0KK2Zyb20gLndwdG1hbmlmZXN0LmJhY2tlbmRzIGltcG9y
dCBzdGF0aWMKK2Zyb20gLndwdG1hbmlmZXN0LmJhY2tlbmRzLmJhc2UgaW1wb3J0IE1hbmlmZXN0
SXRlbQogCi1pbXBvcnQgZXhwZWN0ZWQKK2Zyb20gLiBpbXBvcnQgZXhwZWN0ZWQKIAogIiIiTWFu
aWZlc3Qgc3RydWN0dXJlIHVzZWQgdG8gc3RvcmUgZXhwZWN0ZWQgcmVzdWx0cyBvZiBhIHRlc3Qu
CiAKQEAgLTQxLDYgKzQyLDE3IEBAIGRlZiBpbnRfcHJvcChuYW1lLCBub2RlKToKICAgICAgICAg
cmV0dXJuIE5vbmUKIAogCitkZWYgbGlzdF9wcm9wKG5hbWUsIG5vZGUpOgorICAgICIiIkxpc3Qg
cHJvcGVydHkiIiIKKyAgICB0cnk6CisgICAgICAgIGxpc3RfcHJvcCA9IG5vZGUuZ2V0KG5hbWUp
CisgICAgICAgIGlmIGlzaW5zdGFuY2UobGlzdF9wcm9wLCBiYXNlc3RyaW5nKToKKyAgICAgICAg
ICAgIHJldHVybiBbbGlzdF9wcm9wXQorICAgICAgICByZXR1cm4gbGlzdChsaXN0X3Byb3ApCisg
ICAgZXhjZXB0IEtleUVycm9yOgorICAgICAgICByZXR1cm4gW10KKworCiBkZWYgdGFncyhub2Rl
KToKICAgICAiIiJTZXQgb2YgdGFncyB0aGF0IGhhdmUgYmVlbiBhcHBsaWVkIHRvIHRoZSB0ZXN0
IiIiCiAgICAgdHJ5OgpAQCAtNTUsOCArNjcsOSBAQCBkZWYgdGFncyhub2RlKToKIGRlZiBwcmVm
cyhub2RlKToKICAgICBkZWYgdmFsdWUoaW5pX3ZhbHVlKToKICAgICAgICAgaWYgaXNpbnN0YW5j
ZShpbmlfdmFsdWUsIChzdHIsIHVuaWNvZGUpKToKLSAgICAgICAgICAgIHJldHVybiB0dXBsZShp
bmlfdmFsdWUuc3BsaXQoIjoiLCAxKSkKKyAgICAgICAgICAgIHJldHVybiB0dXBsZShwcmVmX3Bp
ZWNlLnN0cmlwKCkgZm9yIHByZWZfcGllY2UgaW4gaW5pX3ZhbHVlLnNwbGl0KCc6JywgMSkpCiAg
ICAgICAgIGVsc2U6CisgICAgICAgICAgICAjIHRoaXMgc2hvdWxkIGJlIHRoaW5ncyBsaWtlIEBS
ZXNldCwgd2hpY2ggYXJlIGFwcGFyZW50bHkgdHlwZSAnb2JqZWN0JwogICAgICAgICAgICAgcmV0
dXJuIChpbmlfdmFsdWUsIE5vbmUpCiAKICAgICB0cnk6CkBAIC03MCw5ICs4Myw5IEBAIGRlZiBw
cmVmcyhub2RlKToKICAgICByZXR1cm4gcnYKIAogCi1kZWYgbHNhbl9hbGxvd2VkKG5vZGUpOgor
ZGVmIHNldF9wcm9wKG5hbWUsIG5vZGUpOgogICAgIHRyeToKLSAgICAgICAgbm9kZV9pdGVtcyA9
IG5vZGUuZ2V0KCJsc2FuLWFsbG93ZWQiKQorICAgICAgICBub2RlX2l0ZW1zID0gbm9kZS5nZXQo
bmFtZSkKICAgICAgICAgaWYgaXNpbnN0YW5jZShub2RlX2l0ZW1zLCAoc3RyLCB1bmljb2RlKSk6
CiAgICAgICAgICAgICBydiA9IHtub2RlX2l0ZW1zfQogICAgICAgICBlbHNlOgpAQCAtODIsOCAr
OTUsMTIxIEBAIGRlZiBsc2FuX2FsbG93ZWQobm9kZSk6CiAgICAgcmV0dXJuIHJ2CiAKIAorZGVm
IGxlYWtfdGhyZXNob2xkKG5vZGUpOgorICAgIHJ2ID0ge30KKyAgICB0cnk6CisgICAgICAgIG5v
ZGVfaXRlbXMgPSBub2RlLmdldCgibGVhay10aHJlc2hvbGQiKQorICAgICAgICBpZiBpc2luc3Rh
bmNlKG5vZGVfaXRlbXMsIChzdHIsIHVuaWNvZGUpKToKKyAgICAgICAgICAgIG5vZGVfaXRlbXMg
PSBbbm9kZV9pdGVtc10KKyAgICAgICAgZm9yIGl0ZW0gaW4gbm9kZV9pdGVtczoKKyAgICAgICAg
ICAgIHByb2Nlc3MsIHZhbHVlID0gaXRlbS5yc3BsaXQoIjoiLCAxKQorICAgICAgICAgICAgcnZb
cHJvY2Vzcy5zdHJpcCgpXSA9IGludCh2YWx1ZS5zdHJpcCgpKQorICAgIGV4Y2VwdCBLZXlFcnJv
cjoKKyAgICAgICAgcGFzcworICAgIHJldHVybiBydgorCisKK2RlZiBmdXp6eV9wcm9wKG5vZGUp
OgorICAgICIiIkZ1enp5IHJlZnRlc3QgbWF0Y2gKKworICAgIFRoaXMgY2FuIGVpdGhlciBiZSBh
IGxpc3Qgb2Ygc3RyaW5ncyBvciBhIHNpbmdsZSBzdHJpbmcuIFdoZW4gYSBsaXN0IGlzCisgICAg
c3VwcGxpZWQsIHRoZSBmb3JtYXQgb2YgZWFjaCBpdGVtIG1hdGNoZXMgdGhlIGRlc2NyaXB0aW9u
IGJlbG93LgorCisgICAgVGhlIGdlbmVyYWwgZm9ybWF0IGlzCisgICAgZnV6enkgPSBba2V5ICI6
Il0gPHByb3A+ICI7IiA8cHJvcD4KKyAgICBrZXkgPSA8dGVzdCBuYW1lPiBbcmVmdHlwZSA8cmVm
ZXJlbmNlIG5hbWU+XQorICAgIHJlZnR5cGUgPSAiPT0iIHwgIiE9IgorICAgIHByb3AgPSBbcHJv
cE5hbWUgIj0iIF0gcmFuZ2UKKyAgICBwcm9wTmFtZSA9ICJtYXhEaWZmZXJlbmNlcyIgfCAidG90
YWxQaXhlbHMiCisgICAgcmFuZ2UgPSA8ZGlnaXRzPiBbIi0iIDxkaWdpdHM+XQorCisgICAgU28g
Zm9yIGV4YW1wbGU6CisgICAgICBtYXhEaWZmZXJlbmNlcz0xMDt0b3RhbFBpeGVscz0xMC0yMAor
CisgICAgICBzcGVjaWZpZXMgdGhhdCBmb3IgYW55IHRlc3QvcmVmIHBhaXIgZm9yIHdoaWNoIG5v
IG90aGVyIHJ1bGUgaXMgc3VwcGxpZWQsCisgICAgICB0aGVyZSBtdXN0IGJlIGEgbWF4aW11bSBw
aXhlbCBkaWZmZXJlbmNlIG9mIGV4YWN0bHkgMTAsIGFuZCBiZXR3ZW4gMTAgYW5kCisgICAgICAy
MCB0b3RhbCBwaXhlbHMgZGlmZmVyZW50LgorCisgICAgICB0ZXN0Lmh0bWw9PXJlZi5odG06MTA7
MjAKKworICAgICAgc3BlY2lmaWVzIHRoYXQgZm9yIGEgZXF1YWxpdHkgY29tcGFyaXNvbiBiZXR3
ZWVuIHRlc3QuaHRtbCBhbmQgcmVmLmh0bSwKKyAgICAgIHJlc29sdmVkIHJlbGF0aXZlIHRvIHRo
ZSB0ZXN0IHBhdGgsIHRoZXJlIGNhbiBiZSBhIG1heGltdW0gZGlmZmVyZW5jZQorICAgICAgb2Yg
MTAgaW4gdGhlIHBpeGVsIHZhbHVlIGZvciBhbnkgY2hhbm5lbCBhbmQgMjAgcGl4ZWxzIHRvdGFs
IGRpZmZlcmVuY2UuCisKKyAgICAgIHJlZi5odG1sOjEwOzIwCisKKyAgICAgIGlzIGp1c3QgbGlr
ZSB0aGUgYWJvdmUgYnV0IGFwcGxpZXMgdG8gYW55IGNvbXBhcmlzb24gaW52b2x2aW5nIHJlZi5o
dG1sCisgICAgICBvbiB0aGUgcmlnaHQgaGFuZCBzaWRlLgorCisgICAgVGhlIHJldHVybiBmb3Jt
YXQgaXMgWyhrZXksIChtYXhEaWZmZXJlbmNlUmFuZ2UsIHRvdGFsUGl4ZWxzUmFuZ2UpKV0sIHdo
ZXJlCisgICAgdGhlIGtleSBpcyBlaXRoZXIgTm9uZSB3aGVyZSBubyBzcGVjaWZpYyByZWZlcmVu
Y2UgaXMgc3BlY2lmaWVkLCB0aGUgcmVmZXJlbmNlCisgICAgbmFtZSB3aGVyZSB0aGVyZSBpcyBv
bmx5IG9uZSBjb21wb25lbnQgb3IgYSB0dXBsZSAodGVzdCwgcmVmLCByZWZ0eXBlKSB3aGVuIHRo
ZQorICAgIGV4YWN0IGNvbXBhcmlzb24gaXMgc3BlY2lmaWVkLiBtYXhEaWZmZXJlbmNlUmFuZ2Ug
YW5kIHRvdGFsUGl4ZWxzUmFuZ2UgYXJlIHR1cGxlcworICAgIG9mIGludGVnZXJzIGluZGljYXRp
bmcgdGhlIGluY2x1c2l2ZSByYW5nZSBvZiBhbGxvd2VkIHZhbHVlcy4KKyIiIgorICAgIHJ2ID0g
W10KKyAgICBhcmdzID0gWyJtYXhEaWZmZXJlbmNlIiwgInRvdGFsUGl4ZWxzIl0KKyAgICB0cnk6
CisgICAgICAgIHZhbHVlID0gbm9kZS5nZXQoImZ1enp5IikKKyAgICBleGNlcHQgS2V5RXJyb3I6
CisgICAgICAgIHJldHVybiBydgorICAgIGlmIG5vdCBpc2luc3RhbmNlKHZhbHVlLCBsaXN0KToK
KyAgICAgICAgdmFsdWUgPSBbdmFsdWVdCisgICAgZm9yIGl0ZW0gaW4gdmFsdWU6CisgICAgICAg
IGlmIG5vdCBpc2luc3RhbmNlKGl0ZW0sIChzdHIsIHVuaWNvZGUpKToKKyAgICAgICAgICAgIHJ2
LmFwcGVuZChpdGVtKQorICAgICAgICAgICAgY29udGludWUKKyAgICAgICAgcGFydHMgPSBpdGVt
LnJzcGxpdCgiOiIsIDEpCisgICAgICAgIGlmIGxlbihwYXJ0cykgPT0gMToKKyAgICAgICAgICAg
IGtleSA9IE5vbmUKKyAgICAgICAgICAgIGZ1enp5X3ZhbHVlcyA9IHBhcnRzWzBdCisgICAgICAg
IGVsc2U6CisgICAgICAgICAgICBrZXksIGZ1enp5X3ZhbHVlcyA9IHBhcnRzCisgICAgICAgICAg
ICBmb3IgcmVmdHlwZSBpbiBbIj09IiwgIiE9Il06CisgICAgICAgICAgICAgICAgaWYgcmVmdHlw
ZSBpbiBrZXk6CisgICAgICAgICAgICAgICAgICAgIGtleSA9IGtleS5zcGxpdChyZWZ0eXBlKQor
ICAgICAgICAgICAgICAgICAgICBrZXkuYXBwZW5kKHJlZnR5cGUpCisgICAgICAgICAgICAgICAg
ICAgIGtleSA9IHR1cGxlKGtleSkKKyAgICAgICAgcmFuZ2VzID0gZnV6enlfdmFsdWVzLnNwbGl0
KCI7IikKKyAgICAgICAgaWYgbGVuKHJhbmdlcykgIT0gMjoKKyAgICAgICAgICAgIHJhaXNlIFZh
bHVlRXJyb3IoIk1hbGZvcm1lZCBmdXp6eSB2YWx1ZSAlcyIgJSBpdGVtKQorICAgICAgICBhcmdf
dmFsdWVzID0ge05vbmU6IGRlcXVlKCl9CisgICAgICAgIGZvciByYW5nZV9zdHJfdmFsdWUgaW4g
cmFuZ2VzOgorICAgICAgICAgICAgaWYgIj0iIGluIHJhbmdlX3N0cl92YWx1ZToKKyAgICAgICAg
ICAgICAgICBuYW1lLCByYW5nZV9zdHJfdmFsdWUgPSBbcGFydC5zdHJpcCgpCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvciBwYXJ0IGluIHJhbmdlX3N0cl92YWx1
ZS5zcGxpdCgiPSIsIDEpXQorICAgICAgICAgICAgICAgIGlmIG5hbWUgbm90IGluIGFyZ3M6Cisg
ICAgICAgICAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoIiVzIGlzIG5vdCBhIHZhbGlkIGZ1
enp5IHByb3BlcnR5IiAlIG5hbWUpCisgICAgICAgICAgICAgICAgaWYgYXJnX3ZhbHVlcy5nZXQo
bmFtZSk6CisgICAgICAgICAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoIkdvdCBtdWx0aXBs
ZSB2YWx1ZXMgZm9yIGFyZ3VtZW50ICVzIiAlIG5hbWUpCisgICAgICAgICAgICBlbHNlOgorICAg
ICAgICAgICAgICAgIG5hbWUgPSBOb25lCisgICAgICAgICAgICBpZiAiLSIgaW4gcmFuZ2Vfc3Ry
X3ZhbHVlOgorICAgICAgICAgICAgICAgIHJhbmdlX21pbiwgcmFuZ2VfbWF4ID0gcmFuZ2Vfc3Ry
X3ZhbHVlLnNwbGl0KCItIikKKyAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgcmFu
Z2VfbWluID0gcmFuZ2Vfc3RyX3ZhbHVlCisgICAgICAgICAgICAgICAgcmFuZ2VfbWF4ID0gcmFu
Z2Vfc3RyX3ZhbHVlCisgICAgICAgICAgICB0cnk6CisgICAgICAgICAgICAgICAgcmFuZ2VfdmFs
dWUgPSB0dXBsZShpbnQoaXRlbS5zdHJpcCgpKSBmb3IgaXRlbSBpbiAocmFuZ2VfbWluLCByYW5n
ZV9tYXgpKQorICAgICAgICAgICAgZXhjZXB0IFZhbHVlRXJyb3I6CisgICAgICAgICAgICAgICAg
cmFpc2UgVmFsdWVFcnJvcigiRnV6enkgdmFsdWUgJXMgbXVzdCBiZSBhIHJhbmdlIG9mIGludGVn
ZXJzIiAlIHJhbmdlX3N0cl92YWx1ZSkKKyAgICAgICAgICAgIGlmIG5hbWUgaXMgTm9uZToKKyAg
ICAgICAgICAgICAgICBhcmdfdmFsdWVzW05vbmVdLmFwcGVuZChyYW5nZV92YWx1ZSkKKyAgICAg
ICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgYXJnX3ZhbHVlc1tuYW1lXSA9IHJhbmdlX3Zh
bHVlCisgICAgICAgIHJhbmdlX3ZhbHVlcyA9IFtdCisgICAgICAgIGZvciBhcmdfbmFtZSBpbiBh
cmdzOgorICAgICAgICAgICAgaWYgYXJnX3ZhbHVlcy5nZXQoYXJnX25hbWUpOgorICAgICAgICAg
ICAgICAgIHZhbHVlID0gYXJnX3ZhbHVlcy5wb3AoYXJnX25hbWUpCisgICAgICAgICAgICBlbHNl
OgorICAgICAgICAgICAgICAgIHZhbHVlID0gYXJnX3ZhbHVlc1tOb25lXS5wb3BsZWZ0KCkKKyAg
ICAgICAgICAgIHJhbmdlX3ZhbHVlcy5hcHBlbmQodmFsdWUpCisgICAgICAgIHJ2LmFwcGVuZCgo
a2V5LCB0dXBsZShyYW5nZV92YWx1ZXMpKSkKKyAgICByZXR1cm4gcnYKKworCiBjbGFzcyBFeHBl
Y3RlZE1hbmlmZXN0KE1hbmlmZXN0SXRlbSk6Ci0gICAgZGVmIF9faW5pdF9fKHNlbGYsIG5hbWUs
IHRlc3RfcGF0aCwgdXJsX2Jhc2UpOgorICAgIGRlZiBfX2luaXRfXyhzZWxmLCBub2RlLCB0ZXN0
X3BhdGgsIHVybF9iYXNlKToKICAgICAgICAgIiIiT2JqZWN0IHJlcHJlc2VudGluZyBhbGwgdGhl
IHRlc3RzIGluIGEgcGFydGljdWxhciBtYW5pZmVzdAogCiAgICAgICAgIDpwYXJhbSBuYW1lOiBO
YW1lIG9mIHRoZSBBU1QgTm9kZSBhc3NvY2lhdGVkIHdpdGggdGhpcyBvYmplY3QuCkBAIC05Miwx
MyArMjE4LDE0IEBAIGNsYXNzIEV4cGVjdGVkTWFuaWZlc3QoTWFuaWZlc3RJdGVtKToKICAgICAg
ICAgOnBhcmFtIHRlc3RfcGF0aDogUGF0aCBvZiB0aGUgdGVzdCBmaWxlIGFzc29jaWF0ZWQgd2l0
aCB0aGlzIG1hbmlmZXN0LgogICAgICAgICA6cGFyYW0gdXJsX2Jhc2U6IEJhc2UgdXJsIGZvciBz
ZXJ2aW5nIHRoZSB0ZXN0cyBpbiB0aGlzIG1hbmlmZXN0CiAgICAgICAgICIiIgorICAgICAgICBu
YW1lID0gbm9kZS5kYXRhCiAgICAgICAgIGlmIG5hbWUgaXMgbm90IE5vbmU6CiAgICAgICAgICAg
ICByYWlzZSBWYWx1ZUVycm9yKCJFeHBlY3RlZE1hbmlmZXN0IHNob3VsZCByZXByZXNlbnQgdGhl
IHJvb3Qgbm9kZSIpCiAgICAgICAgIGlmIHRlc3RfcGF0aCBpcyBOb25lOgogICAgICAgICAgICAg
cmFpc2UgVmFsdWVFcnJvcigiRXhwZWN0ZWRNYW5pZmVzdCByZXF1aXJlcyBhIHRlc3QgcGF0aCIp
CiAgICAgICAgIGlmIHVybF9iYXNlIGlzIE5vbmU6CiAgICAgICAgICAgICByYWlzZSBWYWx1ZUVy
cm9yKCJFeHBlY3RlZE1hbmlmZXN0IHJlcXVpcmVzIGEgYmFzZSB1cmwiKQotICAgICAgICBNYW5p
ZmVzdEl0ZW0uX19pbml0X18oc2VsZiwgbmFtZSkKKyAgICAgICAgTWFuaWZlc3RJdGVtLl9faW5p
dF9fKHNlbGYsIG5vZGUpCiAgICAgICAgIHNlbGYuY2hpbGRfbWFwID0ge30KICAgICAgICAgc2Vs
Zi50ZXN0X3BhdGggPSB0ZXN0X3BhdGgKICAgICAgICAgc2VsZi51cmxfYmFzZSA9IHVybF9iYXNl
CkBAIC0xMjEsOCArMjQ4LDggQEAgY2xhc3MgRXhwZWN0ZWRNYW5pZmVzdChNYW5pZmVzdEl0ZW0p
OgogCiAgICAgQHByb3BlcnR5CiAgICAgZGVmIHVybChzZWxmKToKLSAgICAgICAgcmV0dXJuIHVy
bHBhcnNlLnVybGpvaW4oc2VsZi51cmxfYmFzZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIi8iLmpvaW4oc2VsZi50ZXN0X3BhdGguc3BsaXQob3MucGF0aC5zZXApKSkKKyAgICAg
ICAgcmV0dXJuIHVybGpvaW4oc2VsZi51cmxfYmFzZSwKKyAgICAgICAgICAgICAgICAgICAgICAg
Ii8iLmpvaW4oc2VsZi50ZXN0X3BhdGguc3BsaXQob3MucGF0aC5zZXApKSkKIAogICAgIEBwcm9w
ZXJ0eQogICAgIGRlZiBkaXNhYmxlZChzZWxmKToKQEAgLTE1NCw3ICsyODEsMzEgQEAgY2xhc3Mg
RXhwZWN0ZWRNYW5pZmVzdChNYW5pZmVzdEl0ZW0pOgogCiAgICAgQHByb3BlcnR5CiAgICAgZGVm
IGxzYW5fYWxsb3dlZChzZWxmKToKLSAgICAgICAgcmV0dXJuIGxzYW5fYWxsb3dlZChzZWxmKQor
ICAgICAgICByZXR1cm4gc2V0X3Byb3AoImxzYW4tYWxsb3dlZCIsIHNlbGYpCisKKyAgICBAcHJv
cGVydHkKKyAgICBkZWYgbGVha19hbGxvd2VkKHNlbGYpOgorICAgICAgICByZXR1cm4gc2V0X3By
b3AoImxlYWstYWxsb3dlZCIsIHNlbGYpCisKKyAgICBAcHJvcGVydHkKKyAgICBkZWYgbGVha190
aHJlc2hvbGQoc2VsZik6CisgICAgICAgIHJldHVybiBsZWFrX3RocmVzaG9sZChzZWxmKQorCisg
ICAgQHByb3BlcnR5CisgICAgZGVmIGxzYW5fbWF4X3N0YWNrX2RlcHRoKHNlbGYpOgorICAgICAg
ICByZXR1cm4gaW50X3Byb3AoImxzYW4tbWF4LXN0YWNrLWRlcHRoIiwgc2VsZikKKworICAgIEBw
cm9wZXJ0eQorICAgIGRlZiBmdXp6eShzZWxmKToKKyAgICAgICAgcmV0dXJuIGZ1enp5X3Byb3Ao
c2VsZikKKworICAgIEBwcm9wZXJ0eQorICAgIGRlZiBleHBlY3RlZChzZWxmKToKKyAgICAgICAg
cmV0dXJuIGxpc3RfcHJvcCgiZXhwZWN0ZWQiLCBzZWxmKVswXQorCisgICAgQHByb3BlcnR5Cisg
ICAgZGVmIGtub3duX2ludGVybWl0dGVudChzZWxmKToKKyAgICAgICAgcmV0dXJuIGxpc3RfcHJv
cCgiZXhwZWN0ZWQiLCBzZWxmKVsxOl0KIAogCiBjbGFzcyBEaXJlY3RvcnlNYW5pZmVzdChNYW5p
ZmVzdEl0ZW0pOgpAQCAtMTg4LDE2ICszMzksMzIgQEAgY2xhc3MgRGlyZWN0b3J5TWFuaWZlc3Qo
TWFuaWZlc3RJdGVtKToKIAogICAgIEBwcm9wZXJ0eQogICAgIGRlZiBsc2FuX2FsbG93ZWQoc2Vs
Zik6Ci0gICAgICAgIHJldHVybiBsc2FuX2FsbG93ZWQoc2VsZikKKyAgICAgICAgcmV0dXJuIHNl
dF9wcm9wKCJsc2FuLWFsbG93ZWQiLCBzZWxmKQorCisgICAgQHByb3BlcnR5CisgICAgZGVmIGxl
YWtfYWxsb3dlZChzZWxmKToKKyAgICAgICAgcmV0dXJuIHNldF9wcm9wKCJsZWFrLWFsbG93ZWQi
LCBzZWxmKQorCisgICAgQHByb3BlcnR5CisgICAgZGVmIGxlYWtfdGhyZXNob2xkKHNlbGYpOgor
ICAgICAgICByZXR1cm4gbGVha190aHJlc2hvbGQoc2VsZikKKworICAgIEBwcm9wZXJ0eQorICAg
IGRlZiBsc2FuX21heF9zdGFja19kZXB0aChzZWxmKToKKyAgICAgICAgcmV0dXJuIGludF9wcm9w
KCJsc2FuLW1heC1zdGFjay1kZXB0aCIsIHNlbGYpCisKKyAgICBAcHJvcGVydHkKKyAgICBkZWYg
ZnV6enkoc2VsZik6CisgICAgICAgIHJldHVybiBmdXp6eV9wcm9wKHNlbGYpCiAKIAogY2xhc3Mg
VGVzdE5vZGUoTWFuaWZlc3RJdGVtKToKLSAgICBkZWYgX19pbml0X18oc2VsZiwgbmFtZSk6Cisg
ICAgZGVmIF9faW5pdF9fKHNlbGYsIG5vZGUsICoqa3dhcmdzKToKICAgICAgICAgIiIiVHJlZSBu
b2RlIGFzc29jaWF0ZWQgd2l0aCBhIHBhcnRpY3VsYXIgdGVzdCBpbiBhIG1hbmlmZXN0CiAKICAg
ICAgICAgOnBhcmFtIG5hbWU6IG5hbWUgb2YgdGhlIHRlc3QiIiIKLSAgICAgICAgYXNzZXJ0IG5h
bWUgaXMgbm90IE5vbmUKLSAgICAgICAgTWFuaWZlc3RJdGVtLl9faW5pdF9fKHNlbGYsIG5hbWUp
CisgICAgICAgIGFzc2VydCBub2RlLmRhdGEgaXMgbm90IE5vbmUKKyAgICAgICAgTWFuaWZlc3RJ
dGVtLl9faW5pdF9fKHNlbGYsIG5vZGUsICoqa3dhcmdzKQogICAgICAgICBzZWxmLnVwZGF0ZWRf
ZXhwZWN0ZWQgPSBbXQogICAgICAgICBzZWxmLm5ld19leHBlY3RlZCA9IFtdCiAgICAgICAgIHNl
bGYuc3VidGVzdHMgPSB7fQpAQCAtMjA2LDcgKzM3Myw3IEBAIGNsYXNzIFRlc3ROb2RlKE1hbmlm
ZXN0SXRlbSk6CiAKICAgICBAcHJvcGVydHkKICAgICBkZWYgaXNfZW1wdHkoc2VsZik6Ci0gICAg
ICAgIHJlcXVpcmVkX2tleXMgPSBzZXQoWyJ0eXBlIl0pCisgICAgICAgIHJlcXVpcmVkX2tleXMg
PSB7InR5cGUifQogICAgICAgICBpZiBzZXQoc2VsZi5fZGF0YS5rZXlzKCkpICE9IHJlcXVpcmVk
X2tleXM6CiAgICAgICAgICAgICByZXR1cm4gRmFsc2UKICAgICAgICAgcmV0dXJuIGFsbChjaGls
ZC5pc19lbXB0eSBmb3IgY2hpbGQgaW4gc2VsZi5jaGlsZHJlbikKQEAgLTIxNyw3ICszODQsNyBA
QCBjbGFzcyBUZXN0Tm9kZShNYW5pZmVzdEl0ZW0pOgogCiAgICAgQHByb3BlcnR5CiAgICAgZGVm
IGlkKHNlbGYpOgotICAgICAgICByZXR1cm4gdXJscGFyc2UudXJsam9pbihzZWxmLnBhcmVudC51
cmwsIHNlbGYubmFtZSkKKyAgICAgICAgcmV0dXJuIHVybGpvaW4oc2VsZi5wYXJlbnQudXJsLCBz
ZWxmLm5hbWUpCiAKICAgICBAcHJvcGVydHkKICAgICBkZWYgZGlzYWJsZWQoc2VsZik6CkBAIC0y
NDksNyArNDE2LDMxIEBAIGNsYXNzIFRlc3ROb2RlKE1hbmlmZXN0SXRlbSk6CiAKICAgICBAcHJv
cGVydHkKICAgICBkZWYgbHNhbl9hbGxvd2VkKHNlbGYpOgotICAgICAgICByZXR1cm4gbHNhbl9h
bGxvd2VkKHNlbGYpCisgICAgICAgIHJldHVybiBzZXRfcHJvcCgibHNhbi1hbGxvd2VkIiwgc2Vs
ZikKKworICAgIEBwcm9wZXJ0eQorICAgIGRlZiBsZWFrX2FsbG93ZWQoc2VsZik6CisgICAgICAg
IHJldHVybiBzZXRfcHJvcCgibGVhay1hbGxvd2VkIiwgc2VsZikKKworICAgIEBwcm9wZXJ0eQor
ICAgIGRlZiBsZWFrX3RocmVzaG9sZChzZWxmKToKKyAgICAgICAgcmV0dXJuIGxlYWtfdGhyZXNo
b2xkKHNlbGYpCisKKyAgICBAcHJvcGVydHkKKyAgICBkZWYgbHNhbl9tYXhfc3RhY2tfZGVwdGgo
c2VsZik6CisgICAgICAgIHJldHVybiBpbnRfcHJvcCgibHNhbi1tYXgtc3RhY2stZGVwdGgiLCBz
ZWxmKQorCisgICAgQHByb3BlcnR5CisgICAgZGVmIGZ1enp5KHNlbGYpOgorICAgICAgICByZXR1
cm4gZnV6enlfcHJvcChzZWxmKQorCisgICAgQHByb3BlcnR5CisgICAgZGVmIGV4cGVjdGVkKHNl
bGYpOgorICAgICAgICByZXR1cm4gbGlzdF9wcm9wKCJleHBlY3RlZCIsIHNlbGYpWzBdCisKKyAg
ICBAcHJvcGVydHkKKyAgICBkZWYga25vd25faW50ZXJtaXR0ZW50KHNlbGYpOgorICAgICAgICBy
ZXR1cm4gbGlzdF9wcm9wKCJleHBlY3RlZCIsIHNlbGYpWzE6XQogCiAgICAgZGVmIGFwcGVuZChz
ZWxmLCBub2RlKToKICAgICAgICAgIiIiQWRkIGEgc3VidGVzdCB0byB0aGUgY3VycmVudCB0ZXN0
CkBAIC0yNjgsMTIgKzQ1OSw2IEBAIGNsYXNzIFRlc3ROb2RlKE1hbmlmZXN0SXRlbSk6CiAKIAog
Y2xhc3MgU3VidGVzdE5vZGUoVGVzdE5vZGUpOgotICAgIGRlZiBfX2luaXRfXyhzZWxmLCBuYW1l
KToKLSAgICAgICAgIiIiVHJlZSBub2RlIGFzc29jaWF0ZWQgd2l0aCBhIHBhcnRpY3VsYXIgc3Vi
dGVzdCBpbiBhIG1hbmlmZXN0Ci0KLSAgICAgICAgOnBhcmFtIG5hbWU6IG5hbWUgb2YgdGhlIHN1
YnRlc3QiIiIKLSAgICAgICAgVGVzdE5vZGUuX19pbml0X18oc2VsZiwgbmFtZSkKLQogICAgIEBw
cm9wZXJ0eQogICAgIGRlZiBpc19lbXB0eShzZWxmKToKICAgICAgICAgaWYgc2VsZi5fZGF0YToK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9tYW5pZmVzdGluY2x1ZGUucHkgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5u
ZXIvbWFuaWZlc3RpbmNsdWRlLnB5CmluZGV4IGE2OGZkZWIzOWJjLi5kMzAyODMxYTU3YSAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy93cHRydW5uZXIvd3B0cnVubmVyL21hbmlmZXN0aW5jbHVkZS5weQorKysgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5u
ZXIvbWFuaWZlc3RpbmNsdWRlLnB5CkBAIC02LDExICs2LDExIEBAIGJlIGluY2x1ZGVkIG9yIGV4
Y2x1ZGVkLgogIiIiCiBpbXBvcnQgZ2xvYgogaW1wb3J0IG9zCi1pbXBvcnQgdXJscGFyc2UKK2Zy
b20gc2l4Lm1vdmVzLnVybGxpYi5wYXJzZSBpbXBvcnQgdXJscGFyc2UsIHVybHNwbGl0CiAKLWZy
b20gd3B0bWFuaWZlc3Qubm9kZSBpbXBvcnQgRGF0YU5vZGUKLWZyb20gd3B0bWFuaWZlc3QuYmFj
a2VuZHMgaW1wb3J0IGNvbmRpdGlvbmFsCi1mcm9tIHdwdG1hbmlmZXN0LmJhY2tlbmRzLmNvbmRp
dGlvbmFsIGltcG9ydCBNYW5pZmVzdEl0ZW0KK2Zyb20gLndwdG1hbmlmZXN0Lm5vZGUgaW1wb3J0
IERhdGFOb2RlCitmcm9tIC53cHRtYW5pZmVzdC5iYWNrZW5kcyBpbXBvcnQgY29uZGl0aW9uYWwK
K2Zyb20gLndwdG1hbmlmZXN0LmJhY2tlbmRzLmNvbmRpdGlvbmFsIGltcG9ydCBNYW5pZmVzdEl0
ZW0KIAogCiBjbGFzcyBJbmNsdWRlTWFuaWZlc3QoTWFuaWZlc3RJdGVtKToKQEAgLTY4LDcgKzY4
LDcgQEAgY2xhc3MgSW5jbHVkZU1hbmlmZXN0KE1hbmlmZXN0SXRlbSk6CiAKICAgICBkZWYgX2dl
dF9jb21wb25lbnRzKHNlbGYsIHVybCk6CiAgICAgICAgIHJ2ID0gW10KLSAgICAgICAgdXJsX3Bh
cnRzID0gdXJscGFyc2UudXJsc3BsaXQodXJsKQorICAgICAgICB1cmxfcGFydHMgPSB1cmxzcGxp
dCh1cmwpCiAgICAgICAgIHZhcmlhbnQgPSAiIgogICAgICAgICBpZiB1cmxfcGFydHMucXVlcnk6
CiAgICAgICAgICAgICB2YXJpYW50ICs9ICI/IiArIHVybF9wYXJ0cy5xdWVyeQpAQCAtMTAzLDcg
KzEwMyw3IEBAIGNsYXNzIEluY2x1ZGVNYW5pZmVzdChNYW5pZmVzdEl0ZW0pOgogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlCiAgICAgICAgICAgICAgICAgICAgICAgICB1cmwg
PSB0ZXN0LnVybAogICAgICAgICAgICAgICAgICAgICAgICAgaWYgcXVlcnkgb3IgZnJhZ21lbnQ6
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFyc2VkID0gdXJscGFyc2UudXJscGFyc2Uo
dXJsKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhcnNlZCA9IHVybHBhcnNlKHVybCkK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoKHF1ZXJ5IGFuZCBxdWVyeSAhPSBwYXJz
ZWQucXVlcnkpIG9yCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmcmFnbWVudCBh
bmQgZnJhZ21lbnQgIT0gcGFyc2VkLmZyYWdtZW50KSk6CiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGNvbnRpbnVlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvbWFuaWZlc3R1cGRh
dGUucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3dwdHJ1bm5lci93cHRydW5uZXIvbWFuaWZlc3R1cGRhdGUucHkKaW5kZXggMWY4YmE3N2U4Zjku
LmFmOWFmMThkOTA3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvbWFuaWZlc3R1cGRhdGUucHkK
KysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93
cHRydW5uZXIvd3B0cnVubmVyL21hbmlmZXN0dXBkYXRlLnB5CkBAIC0xLDE1ICsxLDIwIEBACi1p
bXBvcnQgaXRlcnRvb2xzCitmcm9tIF9fZnV0dXJlX18gaW1wb3J0IHByaW50X2Z1bmN0aW9uCiBp
bXBvcnQgb3MKLWltcG9ydCB1cmxwYXJzZQotZnJvbSBjb2xsZWN0aW9ucyBpbXBvcnQgbmFtZWR0
dXBsZSwgZGVmYXVsdGRpY3QKLQotZnJvbSB3cHRtYW5pZmVzdC5ub2RlIGltcG9ydCAoRGF0YU5v
ZGUsIENvbmRpdGlvbmFsTm9kZSwgQmluYXJ5RXhwcmVzc2lvbk5vZGUsCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBCaW5hcnlPcGVyYXRvck5vZGUsIFZhcmlhYmxlTm9kZSwgU3RyaW5n
Tm9kZSwgTnVtYmVyTm9kZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVuYXJ5RXhw
cmVzc2lvbk5vZGUsIFVuYXJ5T3BlcmF0b3JOb2RlLCBLZXlWYWx1ZU5vZGUpCi1mcm9tIHdwdG1h
bmlmZXN0LmJhY2tlbmRzIGltcG9ydCBjb25kaXRpb25hbAotZnJvbSB3cHRtYW5pZmVzdC5iYWNr
ZW5kcy5jb25kaXRpb25hbCBpbXBvcnQgTWFuaWZlc3RJdGVtCi0KLWltcG9ydCBleHBlY3RlZAor
ZnJvbSBzaXgubW92ZXMudXJsbGliLnBhcnNlIGltcG9ydCB1cmxqb2luLCB1cmxzcGxpdAorZnJv
bSBjb2xsZWN0aW9ucyBpbXBvcnQgbmFtZWR0dXBsZSwgZGVmYXVsdGRpY3QsIGRlcXVlCitmcm9t
IG1hdGggaW1wb3J0IGNlaWwKK2Zyb20gc2l4IGltcG9ydCBpdGVya2V5cywgaXRlcnZhbHVlcywg
aXRlcml0ZW1zCisKK2Zyb20gLndwdG1hbmlmZXN0IGltcG9ydCBzZXJpYWxpemUKK2Zyb20gLndw
dG1hbmlmZXN0Lm5vZGUgaW1wb3J0IChEYXRhTm9kZSwgQ29uZGl0aW9uYWxOb2RlLCBCaW5hcnlF
eHByZXNzaW9uTm9kZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEJpbmFyeU9wZXJh
dG9yTm9kZSwgTnVtYmVyTm9kZSwgU3RyaW5nTm9kZSwgVmFyaWFibGVOb2RlLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgVmFsdWVOb2RlLCBVbmFyeUV4cHJlc3Npb25Ob2RlLCBVbmFy
eU9wZXJhdG9yTm9kZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExpc3ROb2RlKQor
ZnJvbSAud3B0bWFuaWZlc3QuYmFja2VuZHMgaW1wb3J0IGNvbmRpdGlvbmFsCitmcm9tIC53cHRt
YW5pZmVzdC5iYWNrZW5kcy5jb25kaXRpb25hbCBpbXBvcnQgTWFuaWZlc3RJdGVtCisKK2Zyb20g
LiBpbXBvcnQgZXhwZWN0ZWQKK2Zyb20gLiBpbXBvcnQgZXhwZWN0ZWR0cmVlCiAKICIiIk1hbmlm
ZXN0IHN0cnVjdHVyZSB1c2VkIHRvIHVwZGF0ZSB0aGUgZXhwZWN0ZWQgcmVzdWx0cyBvZiBhIHRl
c3QKIApAQCAtMjUsNyArMzAsNyBAQCBhdCBydW50aW1lLgogV2hlbiBhIHJlc3VsdCBmb3IgYSB0
ZXN0IGlzIHRvIGJlIHVwZGF0ZWQgc2V0X3Jlc3VsdCBvbiB0aGUKIFtTdWJdVGVzdE5vZGUgaXMg
Y2FsbGVkIHRvIHN0b3JlIHRoZSBuZXcgcmVzdWx0LCBhbG9uZ3NpZGUgdGhlCiBleGlzdGluZyBj
b25kaXRpb25hbCB0aGF0IHJlc3VsdCdzIHJ1biBpbmZvIG1hdGNoZWQsIGlmIGFueS4gT25jZSBh
bGwKLW5ldyByZXN1bHRzIGFyZSBrbm93biwgY29hbGVzY2VfZXhwZWN0ZWQgaXMgY2FsbGVkIHRv
IGNvbXB1dGUgdGhlIG5ldworbmV3IHJlc3VsdHMgYXJlIGtub3duLCB1cGRhdGUgaXMgY2FsbGVk
IHRvIGNvbXB1dGUgdGhlIG5ldwogc2V0IG9mIHJlc3VsdHMgYW5kIGNvbmRpdGlvbmFscy4gVGhl
IEFTVCBvZiB0aGUgdW5kZXJseWluZyBwYXJzZWQgbWFuaWZlc3QKIGlzIHVwZGF0ZWQgd2l0aCB0
aGUgY2hhbmdlcywgYW5kIHRoZSByZXN1bHQgaXMgc2VyaWFsaXNlZCB0byBhIGZpbGUuCiAiIiIK
QEAgLTU1LDE5ICs2MCw1MCBAQCBkZWYgZGF0YV9jbHNfZ2V0dGVyKG91dHB1dF9ub2RlLCB2aXNp
dGVkX25vZGUpOgogICAgICAgICByYWlzZSBWYWx1ZUVycm9yCiAKIAorY2xhc3MgVXBkYXRlUHJv
cGVydGllcyhvYmplY3QpOgorICAgIGRlZiBfX2luaXRfXyhzZWxmLCBtYW5pZmVzdCwgKiprd2Fy
Z3MpOgorICAgICAgICBzZWxmLl9tYW5pZmVzdCA9IG1hbmlmZXN0CisgICAgICAgIHNlbGYuX2Ns
YXNzZXMgPSBrd2FyZ3MKKworICAgIGRlZiBfX2dldGF0dHJfXyhzZWxmLCBuYW1lKToKKyAgICAg
ICAgaWYgbmFtZSBpbiBzZWxmLl9jbGFzc2VzOgorICAgICAgICAgICAgcnYgPSBzZWxmLl9jbGFz
c2VzW25hbWVdKHNlbGYuX21hbmlmZXN0KQorICAgICAgICAgICAgc2V0YXR0cihzZWxmLCBuYW1l
LCBydikKKyAgICAgICAgICAgIHJldHVybiBydgorICAgICAgICByYWlzZSBBdHRyaWJ1dGVFcnJv
cgorCisgICAgZGVmIF9fY29udGFpbnNfXyhzZWxmLCBuYW1lKToKKyAgICAgICAgcmV0dXJuIG5h
bWUgaW4gc2VsZi5fY2xhc3NlcworCisgICAgZGVmIF9faXRlcl9fKHNlbGYpOgorICAgICAgICBm
b3IgbmFtZSBpbiBpdGVya2V5cyhzZWxmLl9jbGFzc2VzKToKKyAgICAgICAgICAgIHlpZWxkIGdl
dGF0dHIoc2VsZiwgbmFtZSkKKworCiBjbGFzcyBFeHBlY3RlZE1hbmlmZXN0KE1hbmlmZXN0SXRl
bSk6Ci0gICAgZGVmIF9faW5pdF9fKHNlbGYsIG5vZGUsIHRlc3RfcGF0aD1Ob25lLCB1cmxfYmFz
ZT1Ob25lLCBwcm9wZXJ0eV9vcmRlcj1Ob25lLAotICAgICAgICAgICAgICAgICBib29sZWFuX3By
b3BlcnRpZXM9Tm9uZSk6CisgICAgZGVmIF9faW5pdF9fKHNlbGYsIG5vZGUsIHRlc3RfcGF0aCwg
dXJsX2Jhc2UsIHJ1bl9pbmZvX3Byb3BlcnRpZXMsCisgICAgICAgICAgICAgICAgIHVwZGF0ZV9p
bnRlcm1pdHRlbnQ9RmFsc2UsIHJlbW92ZV9pbnRlcm1pdHRlbnQ9RmFsc2UpOgogICAgICAgICAi
IiJPYmplY3QgcmVwcmVzZW50aW5nIGFsbCB0aGUgdGVzdHMgaW4gYSBwYXJ0aWN1bGFyIG1hbmlm
ZXN0CiAKICAgICAgICAgOnBhcmFtIG5vZGU6IEFTVCBOb2RlIGFzc29jaWF0ZWQgd2l0aCB0aGlz
IG9iamVjdC4gSWYgdGhpcyBpcyBOb25lLAogICAgICAgICAgICAgICAgICAgICAgYSBuZXcgQVNU
IGlzIGNyZWF0ZWQgdG8gYXNzb2NpYXRlIHdpdGggdGhpcyBtYW5pZmVzdC4KICAgICAgICAgOnBh
cmFtIHRlc3RfcGF0aDogUGF0aCBvZiB0aGUgdGVzdCBmaWxlIGFzc29jaWF0ZWQgd2l0aCB0aGlz
IG1hbmlmZXN0LgogICAgICAgICA6cGFyYW0gdXJsX2Jhc2U6IEJhc2UgdXJsIGZvciBzZXJ2aW5n
IHRoZSB0ZXN0cyBpbiB0aGlzIG1hbmlmZXN0LgotICAgICAgICA6cGFyYW0gcHJvcGVydHlfb3Jk
ZXI6IExpc3Qgb2YgcHJvcGVydGllcyB0byB1c2UgaW4gZXhwZWN0YXRpb24gbWV0YWRhdGEKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmcm9tIG1vc3QgdG8gbGVhc3Qgc2lnbmlmaWNh
bnQuCi0gICAgICAgIDpwYXJhbSBib29sZWFuX3Byb3BlcnRpZXM6IFNldCBvZiBwcm9wZXJ0aWVz
IGluIHByb3BlcnR5X29yZGVyIHRoYXQgc2hvdWxkCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGJlIHRyZWF0ZWQgYXMgYm9vbGVhbi4KKyAgICAgICAgOnBhcmFtIHJ1bl9pbmZv
X3Byb3BlcnRpZXM6IFR1cGxlIG9mIChbcHJvcGVydHkgbmFtZV0sCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3Byb3BlcnR5X25hbWU6IFtkZXBlbmRlbnQg
cHJvcGVydHldfSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRoZSBmaXJz
dCBwYXJ0IGxpc3RzIHJ1bl9pbmZvIHByb3BlcnRpZXMKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHRoYXQgYXJlIGFsd2F5cyB1c2VkIGluIHRoZSB1cGRhdGUsIHRoZSBzZWNv
bmQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hcHMgcHJvcGVydHkgbmFt
ZXMgdG8gYWRkaXRpb25hbCBwcm9wZXJ0aWVzIHRoYXQKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGNhbiBiZSBjb25zaWRlcmVkIGlmIHdlIGFscmVhZHkgaGF2ZSBhIGNvbmRp
dGlvbiBvbgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhlIGtleSBwcm9w
ZXJ0eSBlLmcuIHsiZm9vIjogWyJiYXIiXX0gbWVhbnMgdGhhdAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgd2UgY29uc2lkZXIgbWFraW5nIGNvbmRpdGlvbnMgb24gYmFyIG9u
bHkgYWZ0ZXIgd2UKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFscmVhZHkg
bWFkZSBvbmUgb24gZm9vLgorICAgICAgICA6cGFyYW0gdXBkYXRlX2ludGVybWl0dGVudDogV2hl
biBUcnVlLCBpbnRlcm1pdHRlbnQgc3RhdHVzZXMgd2lsbCBiZSByZWNvcmRlZAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgYXMgYGV4cGVjdGVkYCBpbiB0aGUgdGVzdCBtZXRh
ZGF0YS4KKyAgICAgICAgOnBhcmFtOiByZW1vdmVfaW50ZXJtaXR0ZW50OiBXaGVuIFRydWUsIG9s
ZCBpbnRlcm1pdHRlbnQgc3RhdHVzZXMgd2lsbCBiZSByZW1vdmVkCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBpZiBubyBsb25nZXIgaW50ZXJtaXR0ZW50LiBUaGlzIGlzIG9u
bHkgcmVsZXZhbnQgaWYKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGB1cGRh
dGVfaW50ZXJtaXR0ZW50YCBpcyBhbHNvIFRydWUsIGJlY2F1c2UgaWYgRmFsc2UsCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGUgbWV0YWRhdGEgd2lsbCBzaW1wbHkgdXBk
YXRlIG9uZSBgZXhwZWN0ZWRgc3RhdHVzLgogICAgICAgICAiIiIKICAgICAgICAgaWYgbm9kZSBp
cyBOb25lOgogICAgICAgICAgICAgbm9kZSA9IERhdGFOb2RlKE5vbmUpCkBAIC03NiwxNyArMTEy
LDMwIEBAIGNsYXNzIEV4cGVjdGVkTWFuaWZlc3QoTWFuaWZlc3RJdGVtKToKICAgICAgICAgc2Vs
Zi50ZXN0X3BhdGggPSB0ZXN0X3BhdGgKICAgICAgICAgc2VsZi51cmxfYmFzZSA9IHVybF9iYXNl
CiAgICAgICAgIGFzc2VydCBzZWxmLnVybF9iYXNlIGlzIG5vdCBOb25lCi0gICAgICAgIHNlbGYu
bW9kaWZpZWQgPSBGYWxzZQotICAgICAgICBzZWxmLmJvb2xlYW5fcHJvcGVydGllcyA9IGJvb2xl
YW5fcHJvcGVydGllcwotICAgICAgICBzZWxmLnByb3BlcnR5X29yZGVyID0gcHJvcGVydHlfb3Jk
ZXIKLSAgICAgICAgc2VsZi51cGRhdGVfcHJvcGVydGllcyA9IHsKLSAgICAgICAgICAgICJsc2Fu
IjogTHNhblVwZGF0ZShzZWxmKSwKLSAgICAgICAgfQorICAgICAgICBzZWxmLl9tb2RpZmllZCA9
IEZhbHNlCisgICAgICAgIHNlbGYucnVuX2luZm9fcHJvcGVydGllcyA9IHJ1bl9pbmZvX3Byb3Bl
cnRpZXMKKyAgICAgICAgc2VsZi51cGRhdGVfaW50ZXJtaXR0ZW50ID0gdXBkYXRlX2ludGVybWl0
dGVudAorICAgICAgICBzZWxmLnJlbW92ZV9pbnRlcm1pdHRlbnQgPSByZW1vdmVfaW50ZXJtaXR0
ZW50CisgICAgICAgIHNlbGYudXBkYXRlX3Byb3BlcnRpZXMgPSBVcGRhdGVQcm9wZXJ0aWVzKHNl
bGYsICoqeworICAgICAgICAgICAgImxzYW4iOiBMc2FuVXBkYXRlLAorICAgICAgICAgICAgImxl
YWtfb2JqZWN0IjogTGVha09iamVjdFVwZGF0ZSwKKyAgICAgICAgICAgICJsZWFrX3RocmVzaG9s
ZCI6IExlYWtUaHJlc2hvbGRVcGRhdGUsCisgICAgICAgIH0pCisKKyAgICBAcHJvcGVydHkKKyAg
ICBkZWYgbW9kaWZpZWQoc2VsZik6CisgICAgICAgIGlmIHNlbGYuX21vZGlmaWVkOgorICAgICAg
ICAgICAgcmV0dXJuIFRydWUKKyAgICAgICAgcmV0dXJuIGFueShpdGVtLm1vZGlmaWVkIGZvciBp
dGVtIGluIHNlbGYuY2hpbGRyZW4pCisKKyAgICBAbW9kaWZpZWQuc2V0dGVyCisgICAgZGVmIG1v
ZGlmaWVkKHNlbGYsIHZhbHVlKToKKyAgICAgICAgc2VsZi5fbW9kaWZpZWQgPSB2YWx1ZQogCiAg
ICAgZGVmIGFwcGVuZChzZWxmLCBjaGlsZCk6CiAgICAgICAgIE1hbmlmZXN0SXRlbS5hcHBlbmQo
c2VsZiwgY2hpbGQpCiAgICAgICAgIGlmIGNoaWxkLmlkIGluIHNlbGYuY2hpbGRfbWFwOgotICAg
ICAgICAgICAgcHJpbnQgIldhcm5pbmc6IER1cGxpY2F0ZSBoZWFkaW5nICVzIiAlIGNoaWxkLmlk
CisgICAgICAgICAgICBwcmludCgiV2FybmluZzogRHVwbGljYXRlIGhlYWRpbmcgJXMiICUgY2hp
bGQuaWQpCiAgICAgICAgIHNlbGYuY2hpbGRfbWFwW2NoaWxkLmlkXSA9IGNoaWxkCiAKICAgICBk
ZWYgX3JlbW92ZV9jaGlsZChzZWxmLCBjaGlsZCk6CkBAIC0xMTAsOCArMTU5LDggQEAgY2xhc3Mg
RXhwZWN0ZWRNYW5pZmVzdChNYW5pZmVzdEl0ZW0pOgogCiAgICAgQHByb3BlcnR5CiAgICAgZGVm
IHVybChzZWxmKToKLSAgICAgICAgcmV0dXJuIHVybHBhcnNlLnVybGpvaW4oc2VsZi51cmxfYmFz
ZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIi8iLmpvaW4oc2VsZi50ZXN0X3Bh
dGguc3BsaXQob3MucGF0aC5zZXApKSkKKyAgICAgICAgcmV0dXJuIHVybGpvaW4oc2VsZi51cmxf
YmFzZSwKKyAgICAgICAgICAgICAgICAgICAgICAgIi8iLmpvaW4oc2VsZi50ZXN0X3BhdGguc3Bs
aXQob3MucGF0aC5zZXApKSkKIAogICAgIGRlZiBzZXRfbHNhbihzZWxmLCBydW5faW5mbywgcmVz
dWx0KToKICAgICAgICAgIiIiU2V0IHRoZSByZXN1bHQgb2YgdGhlIHRlc3QgaW4gYSBwYXJ0aWN1
bGFyIHJ1bgpAQCAtMTE5LDEyICsxNjgsMjggQEAgY2xhc3MgRXhwZWN0ZWRNYW5pZmVzdChNYW5p
ZmVzdEl0ZW0pOgogICAgICAgICA6cGFyYW0gcnVuX2luZm86IERpY3Rpb25hcnkgb2YgcnVuX2lu
Zm8gcGFyYW1ldGVycyBjb3JyZXNwb25kaW5nCiAgICAgICAgICAgICAgICAgICAgICAgICAgdG8g
dGhpcyBydW4KICAgICAgICAgOnBhcmFtIHJlc3VsdDogTHNhbiB2aW9sYXRpb25zIGRldGVjdGVk
IiIiCisgICAgICAgIHNlbGYudXBkYXRlX3Byb3BlcnRpZXMubHNhbi5zZXQocnVuX2luZm8sIHJl
c3VsdCkKKworICAgIGRlZiBzZXRfbGVha19vYmplY3Qoc2VsZiwgcnVuX2luZm8sIHJlc3VsdCk6
CisgICAgICAgICIiIlNldCB0aGUgcmVzdWx0IG9mIHRoZSB0ZXN0IGluIGEgcGFydGljdWxhciBy
dW4KKworICAgICAgICA6cGFyYW0gcnVuX2luZm86IERpY3Rpb25hcnkgb2YgcnVuX2luZm8gcGFy
YW1ldGVycyBjb3JyZXNwb25kaW5nCisgICAgICAgICAgICAgICAgICAgICAgICAgdG8gdGhpcyBy
dW4KKyAgICAgICAgOnBhcmFtIHJlc3VsdDogTGVha2VkIG9iamVjdHMgZGVsZXRlYyIiIgorICAg
ICAgICBzZWxmLnVwZGF0ZV9wcm9wZXJ0aWVzLmxlYWtfb2JqZWN0LnNldChydW5faW5mbywgcmVz
dWx0KQorCisgICAgZGVmIHNldF9sZWFrX3RocmVzaG9sZChzZWxmLCBydW5faW5mbywgcmVzdWx0
KToKKyAgICAgICAgIiIiU2V0IHRoZSByZXN1bHQgb2YgdGhlIHRlc3QgaW4gYSBwYXJ0aWN1bGFy
IHJ1bgogCi0gICAgICAgIHNlbGYudXBkYXRlX3Byb3BlcnRpZXNbImxzYW4iXS5zZXQocnVuX2lu
Zm8sIHJlc3VsdCkKKyAgICAgICAgOnBhcmFtIHJ1bl9pbmZvOiBEaWN0aW9uYXJ5IG9mIHJ1bl9p
bmZvIHBhcmFtZXRlcnMgY29ycmVzcG9uZGluZworICAgICAgICAgICAgICAgICAgICAgICAgIHRv
IHRoaXMgcnVuCisgICAgICAgIDpwYXJhbSByZXN1bHQ6IFRvdGFsIG51bWJlciBvZiBieXRlcyBs
ZWFrZWQiIiIKKyAgICAgICAgc2VsZi51cGRhdGVfcHJvcGVydGllcy5sZWFrX3RocmVzaG9sZC5z
ZXQocnVuX2luZm8sIHJlc3VsdCkKIAotICAgIGRlZiBjb2FsZXNjZV9wcm9wZXJ0aWVzKHNlbGYs
IHN0YWJpbGl0eSk6Ci0gICAgICAgIGZvciBwcm9wX3VwZGF0ZSBpbiBzZWxmLnVwZGF0ZV9wcm9w
ZXJ0aWVzLml0ZXJ2YWx1ZXMoKToKLSAgICAgICAgICAgIHByb3BfdXBkYXRlLmNvYWxlc2NlKHN0
YWJpbGl0eSkKKyAgICBkZWYgdXBkYXRlKHNlbGYsIGZ1bGxfdXBkYXRlLCBkaXNhYmxlX2ludGVy
bWl0dGVudCk6CisgICAgICAgIGZvciBwcm9wX3VwZGF0ZSBpbiBzZWxmLnVwZGF0ZV9wcm9wZXJ0
aWVzOgorICAgICAgICAgICAgcHJvcF91cGRhdGUudXBkYXRlKGZ1bGxfdXBkYXRlLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGVfaW50ZXJtaXR0ZW50KQogCiAKIGNsYXNz
IFRlc3ROb2RlKE1hbmlmZXN0SXRlbSk6CkBAIC0xMzcsMTEgKzIwMiwxNCBAQCBjbGFzcyBUZXN0
Tm9kZShNYW5pZmVzdEl0ZW0pOgogICAgICAgICBzZWxmLnN1YnRlc3RzID0ge30KICAgICAgICAg
c2VsZi5fZnJvbV9maWxlID0gVHJ1ZQogICAgICAgICBzZWxmLm5ld19kaXNhYmxlZCA9IEZhbHNl
Ci0gICAgICAgIHNlbGYudXBkYXRlX3Byb3BlcnRpZXMgPSB7Ci0gICAgICAgICAgICAiZXhwZWN0
ZWQiOiBFeHBlY3RlZFVwZGF0ZShzZWxmKSwKLSAgICAgICAgICAgICJtYXgtYXNzZXJ0cyI6IE1h
eEFzc2VydHNVcGRhdGUoc2VsZiksCi0gICAgICAgICAgICAibWluLWFzc2VydHMiOiBNaW5Bc3Nl
cnRzVXBkYXRlKHNlbGYpCi0gICAgICAgIH0KKyAgICAgICAgc2VsZi5oYXNfcmVzdWx0ID0gRmFs
c2UKKyAgICAgICAgc2VsZi5tb2RpZmllZCA9IEZhbHNlCisgICAgICAgIHNlbGYudXBkYXRlX3By
b3BlcnRpZXMgPSBVcGRhdGVQcm9wZXJ0aWVzKAorICAgICAgICAgICAgc2VsZiwKKyAgICAgICAg
ICAgIGV4cGVjdGVkPUV4cGVjdGVkVXBkYXRlLAorICAgICAgICAgICAgbWF4X2Fzc2VydHM9TWF4
QXNzZXJ0c1VwZGF0ZSwKKyAgICAgICAgICAgIG1pbl9hc3NlcnRzPU1pbkFzc2VydHNVcGRhdGUK
KyAgICAgICAgKQogCiAgICAgQGNsYXNzbWV0aG9kCiAgICAgZGVmIGNyZWF0ZShjbHMsIHRlc3Rf
aWQpOgpAQCAtMTQ5LDkgKzIxNyw3IEBAIGNsYXNzIFRlc3ROb2RlKE1hbmlmZXN0SXRlbSk6CiAK
ICAgICAgICAgOnBhcmFtIHRlc3RfdHlwZTogVGhlIHR5cGUgb2YgdGhlIHRlc3QKICAgICAgICAg
OnBhcmFtIHRlc3RfaWQ6IFRoZSBpZCBvZiB0aGUgdGVzdCIiIgotCi0gICAgICAgIHVybCA9IHRl
c3RfaWQKLSAgICAgICAgbmFtZSA9IHVybC5yc3BsaXQoIi8iLCAxKVsxXQorICAgICAgICBuYW1l
ID0gdGVzdF9pZFtsZW4odXJsc3BsaXQodGVzdF9pZCkucGF0aC5yc3BsaXQoIi8iLCAxKVswXSkg
KyAxOl0KICAgICAgICAgbm9kZSA9IERhdGFOb2RlKG5hbWUpCiAgICAgICAgIHNlbGYgPSBjbHMo
bm9kZSkKIApAQCAtMTYwLDcgKzIyNiw3IEBAIGNsYXNzIFRlc3ROb2RlKE1hbmlmZXN0SXRlbSk6
CiAKICAgICBAcHJvcGVydHkKICAgICBkZWYgaXNfZW1wdHkoc2VsZik6Ci0gICAgICAgIGlnbm9y
ZV9rZXlzID0gc2V0KFsidHlwZSJdKQorICAgICAgICBpZ25vcmVfa2V5cyA9IHsidHlwZSJ9CiAg
ICAgICAgIGlmIHNldChzZWxmLl9kYXRhLmtleXMoKSkgLSBpZ25vcmVfa2V5czoKICAgICAgICAg
ICAgIHJldHVybiBGYWxzZQogICAgICAgICByZXR1cm4gYWxsKGNoaWxkLmlzX2VtcHR5IGZvciBj
aGlsZCBpbiBzZWxmLmNoaWxkcmVuKQpAQCAtMTczLDcgKzIzOSw3IEBAIGNsYXNzIFRlc3ROb2Rl
KE1hbmlmZXN0SXRlbSk6CiAgICAgQHByb3BlcnR5CiAgICAgZGVmIGlkKHNlbGYpOgogICAgICAg
ICAiIiJUaGUgaWQgb2YgdGhlIHRlc3QgcmVwcmVzZW50ZWQgYnkgdGhpcyBUZXN0Tm9kZSIiIgot
ICAgICAgICByZXR1cm4gdXJscGFyc2UudXJsam9pbihzZWxmLnBhcmVudC51cmwsIHNlbGYubmFt
ZSkKKyAgICAgICAgcmV0dXJuIHVybGpvaW4oc2VsZi5wYXJlbnQudXJsLCBzZWxmLm5hbWUpCiAK
ICAgICBkZWYgZGlzYWJsZWQoc2VsZiwgcnVuX2luZm8pOgogICAgICAgICAiIiJCb29sZWFuIGlu
ZGljYXRpbmcgd2hldGhlciB0aGlzIHRlc3QgaXMgZGlzYWJsZWQgd2hlbiBydW4gaW4gYW4KQEAg
LTE4OSwzOCArMjU1LDE0IEBAIGNsYXNzIFRlc3ROb2RlKE1hbmlmZXN0SXRlbSk6CiAgICAgICAg
IDpwYXJhbSBydW5faW5mbzogRGljdGlvbmFyeSBvZiBydW5faW5mbyBwYXJhbWV0ZXJzIGNvcnJl
c3BvbmRpbmcKICAgICAgICAgICAgICAgICAgICAgICAgICB0byB0aGlzIHJ1bgogICAgICAgICA6
cGFyYW0gcmVzdWx0OiBTdGF0dXMgb2YgdGhlIHRlc3QgaW4gdGhpcyBydW4iIiIKLQotICAgICAg
ICBzZWxmLnVwZGF0ZV9wcm9wZXJ0aWVzWyJleHBlY3RlZCJdLnNldChydW5faW5mbywgcmVzdWx0
KQorICAgICAgICBzZWxmLnVwZGF0ZV9wcm9wZXJ0aWVzLmV4cGVjdGVkLnNldChydW5faW5mbywg
cmVzdWx0KQogCiAgICAgZGVmIHNldF9hc3NlcnRzKHNlbGYsIHJ1bl9pbmZvLCBjb3VudCk6CiAg
ICAgICAgICIiIlNldCB0aGUgYXNzZXJ0IGNvdW50IG9mIGEgdGVzdAogCiAgICAgICAgICIiIgot
ICAgICAgICBzZWxmLnVwZGF0ZV9wcm9wZXJ0aWVzWyJtaW4tYXNzZXJ0cyJdLnNldChydW5faW5m
bywgY291bnQpCi0gICAgICAgIHNlbGYudXBkYXRlX3Byb3BlcnRpZXNbIm1heC1hc3NlcnRzIl0u
c2V0KHJ1bl9pbmZvLCBjb3VudCkKLQotICAgIGRlZiBfYWRkX2tleV92YWx1ZShzZWxmLCBub2Rl
LCB2YWx1ZXMpOgotICAgICAgICBNYW5pZmVzdEl0ZW0uX2FkZF9rZXlfdmFsdWUoc2VsZiwgbm9k
ZSwgdmFsdWVzKQotICAgICAgICBpZiBub2RlLmRhdGEgaW4gc2VsZi51cGRhdGVfcHJvcGVydGll
czoKLSAgICAgICAgICAgIG5ld191cGRhdGVkID0gW10KLSAgICAgICAgICAgIHNlbGYudXBkYXRl
X3Byb3BlcnRpZXNbbm9kZS5kYXRhXS51cGRhdGVkID0gbmV3X3VwZGF0ZWQKLSAgICAgICAgICAg
IGZvciB2YWx1ZSBpbiB2YWx1ZXM6Ci0gICAgICAgICAgICAgICAgbmV3X3VwZGF0ZWQuYXBwZW5k
KCh2YWx1ZSwgW10pKQotCi0gICAgZGVmIGNsZWFyKHNlbGYsIGtleSk6Ci0gICAgICAgICIiIkNs
ZWFyIGFsbCB0aGUgZXhwZWN0ZWQgZGF0YSBmb3IgdGhpcyB0ZXN0IGFuZCBhbGwgb2YgaXRzIHN1
YnRlc3RzIiIiCi0KLSAgICAgICAgc2VsZi51cGRhdGVkID0gW10KLSAgICAgICAgaWYga2V5IGlu
IHNlbGYuX2RhdGE6Ci0gICAgICAgICAgICBmb3IgY2hpbGQgaW4gc2VsZi5ub2RlLmNoaWxkcmVu
OgotICAgICAgICAgICAgICAgIGlmIChpc2luc3RhbmNlKGNoaWxkLCBLZXlWYWx1ZU5vZGUpIGFu
ZAotICAgICAgICAgICAgICAgICAgICBjaGlsZC5kYXRhID09IGtleSk6Ci0gICAgICAgICAgICAg
ICAgICAgIGNoaWxkLnJlbW92ZSgpCi0gICAgICAgICAgICAgICAgICAgIGRlbCBzZWxmLl9kYXRh
W2tleV0KLSAgICAgICAgICAgICAgICAgICAgYnJlYWsKLQotICAgICAgICBmb3Igc3VidGVzdCBp
biBzZWxmLnN1YnRlc3RzLml0ZXJ2YWx1ZXMoKToKLSAgICAgICAgICAgIHN1YnRlc3QuY2xlYXIo
a2V5KQorICAgICAgICBzZWxmLnVwZGF0ZV9wcm9wZXJ0aWVzLm1pbl9hc3NlcnRzLnNldChydW5f
aW5mbywgY291bnQpCisgICAgICAgIHNlbGYudXBkYXRlX3Byb3BlcnRpZXMubWF4X2Fzc2VydHMu
c2V0KHJ1bl9pbmZvLCBjb3VudCkKIAogICAgIGRlZiBhcHBlbmQoc2VsZiwgbm9kZSk6CiAgICAg
ICAgIGNoaWxkID0gTWFuaWZlc3RJdGVtLmFwcGVuZChzZWxmLCBub2RlKQpAQCAtMjQwLDkgKzI4
MiwxMCBAQCBjbGFzcyBUZXN0Tm9kZShNYW5pZmVzdEl0ZW0pOgogICAgICAgICAgICAgc2VsZi5h
cHBlbmQoc3VidGVzdCkKICAgICAgICAgICAgIHJldHVybiBzdWJ0ZXN0CiAKLSAgICBkZWYgY29h
bGVzY2VfcHJvcGVydGllcyhzZWxmLCBzdGFiaWxpdHkpOgotICAgICAgICBmb3IgcHJvcF91cGRh
dGUgaW4gc2VsZi51cGRhdGVfcHJvcGVydGllcy5pdGVydmFsdWVzKCk6Ci0gICAgICAgICAgICBw
cm9wX3VwZGF0ZS5jb2FsZXNjZShzdGFiaWxpdHkpCisgICAgZGVmIHVwZGF0ZShzZWxmLCBmdWxs
X3VwZGF0ZSwgZGlzYWJsZV9pbnRlcm1pdHRlbnQpOgorICAgICAgICBmb3IgcHJvcF91cGRhdGUg
aW4gc2VsZi51cGRhdGVfcHJvcGVydGllczoKKyAgICAgICAgICAgIHByb3BfdXBkYXRlLnVwZGF0
ZShmdWxsX3VwZGF0ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNhYmxlX2lu
dGVybWl0dGVudCkKIAogCiBjbGFzcyBTdWJ0ZXN0Tm9kZShUZXN0Tm9kZSk6CkBAIC0yNjMsNDEg
KzMwNiw4NiBAQCBjbGFzcyBTdWJ0ZXN0Tm9kZShUZXN0Tm9kZSk6CiAgICAgICAgIHJldHVybiBU
cnVlCiAKIAorZGVmIGJ1aWxkX2NvbmRpdGlvbmFsX3RyZWUoXywgcnVuX2luZm9fcHJvcGVydGll
cywgcmVzdWx0cyk6CisgICAgcHJvcGVydGllcywgZGVwZW5kZW50X3Byb3BzID0gcnVuX2luZm9f
cHJvcGVydGllcworICAgIHJldHVybiBleHBlY3RlZHRyZWUuYnVpbGRfdHJlZShwcm9wZXJ0aWVz
LCBkZXBlbmRlbnRfcHJvcHMsIHJlc3VsdHMpCisKKworZGVmIGJ1aWxkX3VuY29uZGl0aW9uYWxf
dHJlZShfLCBydW5faW5mb19wcm9wZXJ0aWVzLCByZXN1bHRzKToKKyAgICByb290ID0gZXhwZWN0
ZWR0cmVlLk5vZGUoTm9uZSwgTm9uZSkKKyAgICBmb3IgcnVuX2luZm8sIHZhbHVlcyBpbiBpdGVy
aXRlbXMocmVzdWx0cyk6CisgICAgICAgIGZvciB2YWx1ZSwgY291bnQgaW4gaXRlcml0ZW1zKHZh
bHVlcyk6CisgICAgICAgICAgICByb290LnJlc3VsdF92YWx1ZXNbdmFsdWVdICs9IGNvdW50Cisg
ICAgICAgIHJvb3QucnVuX2luZm8uYWRkKHJ1bl9pbmZvKQorICAgIHJldHVybiByb290CisKKwog
Y2xhc3MgUHJvcGVydHlVcGRhdGUob2JqZWN0KToKICAgICBwcm9wZXJ0eV9uYW1lID0gTm9uZQog
ICAgIGNsc19kZWZhdWx0X3ZhbHVlID0gTm9uZQogICAgIHZhbHVlX3R5cGUgPSBOb25lCisgICAg
cHJvcGVydHlfYnVpbGRlciA9IE5vbmUKIAogICAgIGRlZiBfX2luaXRfXyhzZWxmLCBub2RlKToK
ICAgICAgICAgc2VsZi5ub2RlID0gbm9kZQotICAgICAgICBzZWxmLnVwZGF0ZWQgPSBbXQotICAg
ICAgICBzZWxmLm5ldyA9IFtdCiAgICAgICAgIHNlbGYuZGVmYXVsdF92YWx1ZSA9IHNlbGYuY2xz
X2RlZmF1bHRfdmFsdWUKLQotICAgIGRlZiBzZXQoc2VsZiwgcnVuX2luZm8sIGluX3ZhbHVlKToK
LSAgICAgICAgc2VsZi5jaGVja19kZWZhdWx0KGluX3ZhbHVlKQotICAgICAgICB2YWx1ZSA9IHNl
bGYuZ2V0X3ZhbHVlKGluX3ZhbHVlKQotCi0gICAgICAgICMgQWRkIHRoaXMgcmVzdWx0IHRvIHRo
ZSBsaXN0IG9mIHJlc3VsdHMgc2F0aXNmeWluZwotICAgICAgICAjIGFueSBjb25kaXRpb24gaW4g
dGhlIGxpc3Qgb2YgdXBkYXRlZCByZXN1bHRzIGl0IG1hdGNoZXMKLSAgICAgICAgZm9yIChjb25k
LCB2YWx1ZXMpIGluIHNlbGYudXBkYXRlZDoKLSAgICAgICAgICAgIGlmIGNvbmQocnVuX2luZm8p
OgotICAgICAgICAgICAgICAgIHZhbHVlcy5hcHBlbmQoVmFsdWUocnVuX2luZm8sIHZhbHVlKSkK
LSAgICAgICAgICAgICAgICBpZiB2YWx1ZSAhPSBjb25kLnZhbHVlX2FzKHNlbGYudmFsdWVfdHlw
ZSk6Ci0gICAgICAgICAgICAgICAgICAgIHNlbGYubm9kZS5yb290Lm1vZGlmaWVkID0gVHJ1ZQot
ICAgICAgICAgICAgICAgIGJyZWFrCi0gICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAjIFdlIGRp
ZG4ndCBmaW5kIGEgcHJldmlvdXMgdmFsdWUgZm9yIHRoaXMKLSAgICAgICAgICAgIHNlbGYubmV3
LmFwcGVuZChWYWx1ZShydW5faW5mbywgdmFsdWUpKQotICAgICAgICAgICAgc2VsZi5ub2RlLnJv
b3QubW9kaWZpZWQgPSBUcnVlCisgICAgICAgIHNlbGYuaGFzX3Jlc3VsdCA9IEZhbHNlCisgICAg
ICAgIHNlbGYucmVzdWx0cyA9IGRlZmF1bHRkaWN0KGxhbWJkYTogZGVmYXVsdGRpY3QoaW50KSkK
KyAgICAgICAgc2VsZi51cGRhdGVfaW50ZXJtaXR0ZW50ID0gc2VsZi5ub2RlLnJvb3QudXBkYXRl
X2ludGVybWl0dGVudAorICAgICAgICBzZWxmLnJlbW92ZV9pbnRlcm1pdHRlbnQgPSBzZWxmLm5v
ZGUucm9vdC5yZW1vdmVfaW50ZXJtaXR0ZW50CisKKyAgICBkZWYgcnVuX2luZm9fYnlfY29uZGl0
aW9uKHNlbGYsIHJ1bl9pbmZvX2luZGV4LCBjb25kaXRpb25zKToKKyAgICAgICAgcnVuX2luZm9f
YnlfY29uZGl0aW9uID0gZGVmYXVsdGRpY3QobGlzdCkKKyAgICAgICAgIyBBIGNvbmRpdGlvbiBt
aWdodCBtYXRjaCAwIG9yIG1vcmUgcnVuX2luZm8gdmFsdWVzCisgICAgICAgIHJ1bl9pbmZvcyA9
IHJ1bl9pbmZvX2luZGV4LmtleXMoKQorICAgICAgICBmb3IgY29uZCBpbiBjb25kaXRpb25zOgor
ICAgICAgICAgICAgZm9yIHJ1bl9pbmZvIGluIHJ1bl9pbmZvczoKKyAgICAgICAgICAgICAgICBp
ZiBjb25kKHJ1bl9pbmZvKToKKyAgICAgICAgICAgICAgICAgICAgcnVuX2luZm9fYnlfY29uZGl0
aW9uW2NvbmRdLmFwcGVuZChydW5faW5mbykKKworICAgICAgICByZXR1cm4gcnVuX2luZm9fYnlf
Y29uZGl0aW9uCisKKyAgICBkZWYgc2V0KHNlbGYsIHJ1bl9pbmZvLCB2YWx1ZSk6CisgICAgICAg
IHNlbGYuaGFzX3Jlc3VsdCA9IFRydWUKKyAgICAgICAgc2VsZi5ub2RlLmhhc19yZXN1bHQgPSBU
cnVlCisgICAgICAgIHNlbGYuY2hlY2tfZGVmYXVsdCh2YWx1ZSkKKyAgICAgICAgdmFsdWUgPSBz
ZWxmLmZyb21fcmVzdWx0X3ZhbHVlKHZhbHVlKQorICAgICAgICBzZWxmLnJlc3VsdHNbcnVuX2lu
Zm9dW3ZhbHVlXSArPSAxCiAKICAgICBkZWYgY2hlY2tfZGVmYXVsdChzZWxmLCByZXN1bHQpOgog
ICAgICAgICByZXR1cm4KIAotICAgIGRlZiBnZXRfdmFsdWUoc2VsZiwgaW5fdmFsdWUpOgotICAg
ICAgICByZXR1cm4gaW5fdmFsdWUKKyAgICBkZWYgZnJvbV9yZXN1bHRfdmFsdWUoc2VsZiwgdmFs
dWUpOgorICAgICAgICAiIiJDb252ZXJ0IGEgdmFsdWUgZnJvbSBhIHRlc3QgcmVzdWx0IGludG8g
dGhlIGludGVybmFsIGZvcm1hdCIiIgorICAgICAgICByZXR1cm4gdmFsdWUKIAotICAgIGRlZiBj
b2FsZXNjZShzZWxmLCBzdGFiaWxpdHk9Tm9uZSk6CisgICAgZGVmIGZyb21faW5pX3ZhbHVlKHNl
bGYsIHZhbHVlKToKKyAgICAgICAgIiIiQ29udmVydCBhIHZhbHVlIGZyb20gYW4gaW5pIGZpbGUg
aW50byB0aGUgaW50ZXJuYWwgZm9ybWF0IiIiCisgICAgICAgIGlmIHNlbGYudmFsdWVfdHlwZToK
KyAgICAgICAgICAgIHJldHVybiBzZWxmLnZhbHVlX3R5cGUodmFsdWUpCisgICAgICAgIHJldHVy
biB2YWx1ZQorCisgICAgZGVmIHRvX2luaV92YWx1ZShzZWxmLCB2YWx1ZSk6CisgICAgICAgICIi
IkNvbnZlcnQgYSB2YWx1ZSBmcm9tIHRoZSBpbnRlcm5hbCBmb3JtYXQgdG8gdGhlIGluaSBmaWxl
IGZvcm1hdCIiIgorICAgICAgICByZXR1cm4gc3RyKHZhbHVlKQorCisgICAgZGVmIHVwZGF0ZWRf
dmFsdWUoc2VsZiwgY3VycmVudCwgbmV3KToKKyAgICAgICAgIiIiR2l2ZW4gYSBzaW5nbGUgY3Vy
cmVudCB2YWx1ZSBhbmQgYSBzZXQgb2Ygb2JzZXJ2ZWQgbmV3IHZhbHVlcywKKyAgICAgICAgY29t
cHV0ZSBhbiB1cGRhdGVkIHZhbHVlIGZvciB0aGUgcHJvcGVydHkiIiIKKyAgICAgICAgcmV0dXJu
IG5ldworCisgICAgQHByb3BlcnR5CisgICAgZGVmIHVuY29uZGl0aW9uYWxfdmFsdWUoc2VsZik6
CisgICAgICAgIHRyeToKKyAgICAgICAgICAgIHVuY29uZGl0aW9uYWxfdmFsdWUgPSBzZWxmLmZy
b21faW5pX3ZhbHVlKAorICAgICAgICAgICAgICAgIHNlbGYubm9kZS5nZXQoc2VsZi5wcm9wZXJ0
eV9uYW1lKSkKKyAgICAgICAgZXhjZXB0IEtleUVycm9yOgorICAgICAgICAgICAgdW5jb25kaXRp
b25hbF92YWx1ZSA9IHNlbGYuZGVmYXVsdF92YWx1ZQorICAgICAgICByZXR1cm4gdW5jb25kaXRp
b25hbF92YWx1ZQorCisgICAgZGVmIHVwZGF0ZShzZWxmLAorICAgICAgICAgICAgICAgZnVsbF91
cGRhdGU9RmFsc2UsCisgICAgICAgICAgICAgICBkaXNhYmxlX2ludGVybWl0dGVudD1Ob25lKToK
ICAgICAgICAgIiIiVXBkYXRlIHRoZSB1bmRlcmx5aW5nIG1hbmlmZXN0IEFTVCBmb3IgdGhpcyB0
ZXN0IGJhc2VkIG9uIGFsbCB0aGUKICAgICAgICAgYWRkZWQgcmVzdWx0cy4KIApAQCAtMzA4LDk2
ICszOTYsMjczIEBAIGNsYXNzIFByb3BlcnR5VXBkYXRlKG9iamVjdCk6CiAKICAgICAgICAgQ29u
ZGl0aW9uYWxzIG5vdCBtYXRjaGVkIGJ5IGFueSBhZGRlZCByZXN1bHQgYXJlIG5vdCBjaGFuZ2Vk
LgogCi0gICAgICAgIFdoZW4gYHN0YWJpbGl0eWAgaXMgbm90IE5vbmUsIGRpc2FibGUgYW55IHRl
c3QgdGhhdCBzaG93cyBtdWx0aXBsZQorICAgICAgICBXaGVuIGBkaXNhYmxlX2ludGVybWl0dGVu
dGAgaXMgbm90IE5vbmUsIGRpc2FibGUgYW55IHRlc3QgdGhhdCBzaG93cyBtdWx0aXBsZQogICAg
ICAgICB1bmV4cGVjdGVkIHJlc3VsdHMgZm9yIHRoZSBzYW1lIHNldCBvZiBwYXJhbWV0ZXJzLgog
ICAgICAgICAiIiIKKyAgICAgICAgaWYgbm90IHNlbGYuaGFzX3Jlc3VsdDoKKyAgICAgICAgICAg
IHJldHVybgogCi0gICAgICAgIHRyeToKLSAgICAgICAgICAgIHVuY29uZGl0aW9uYWxfdmFsdWUg
PSBzZWxmLm5vZGUuZ2V0KHNlbGYucHJvcGVydHlfbmFtZSkKLSAgICAgICAgICAgIGlmIHNlbGYu
dmFsdWVfdHlwZToKLSAgICAgICAgICAgICAgICB1bmNvbmRpdGlvbmFsX3ZhbHVlID0gc2VsZi52
YWx1ZV90eXBlKHVuY29uZGl0aW9uYWxfdmFsdWUpCi0gICAgICAgIGV4Y2VwdCBLZXlFcnJvcjoK
LSAgICAgICAgICAgIHVuY29uZGl0aW9uYWxfdmFsdWUgPSBzZWxmLmRlZmF1bHRfdmFsdWUKKyAg
ICAgICAgcHJvcGVydHlfdHJlZSA9IHNlbGYucHJvcGVydHlfYnVpbGRlcihzZWxmLm5vZGUucm9v
dC5ydW5faW5mb19wcm9wZXJ0aWVzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHNlbGYucmVzdWx0cykKIAotICAgICAgICBmb3IgY29uZGl0aW9uYWxfdmFs
dWUsIHJlc3VsdHMgaW4gc2VsZi51cGRhdGVkOgotICAgICAgICAgICAgaWYgbm90IHJlc3VsdHM6
Ci0gICAgICAgICAgICAgICAgIyBUaGUgY29uZGl0aW9uYWwgZGlkbid0IG1hdGNoIGFueXRoaW5n
IGluIHRoZXNlIHJ1bnMgc28gbGVhdmUgaXQgYWxvbmUKLSAgICAgICAgICAgICAgICBwYXNzCi0g
ICAgICAgICAgICBlbGlmIGFsbChyZXN1bHRzWzBdLnZhbHVlID09IHJlc3VsdC52YWx1ZSBmb3Ig
cmVzdWx0IGluIHJlc3VsdHMpOgotICAgICAgICAgICAgICAgICMgQWxsIHRoZSBuZXcgdmFsdWVz
IGZvciB0aGlzIGNvbmRpdGlvbmFsIG1hdGNoZWQsIHNvIHVwZGF0ZSB0aGUgbm9kZQotICAgICAg
ICAgICAgICAgIHJlc3VsdCA9IHJlc3VsdHNbMF0KLSAgICAgICAgICAgICAgICBpZiAocmVzdWx0
LnZhbHVlID09IHVuY29uZGl0aW9uYWxfdmFsdWUgYW5kCi0gICAgICAgICAgICAgICAgICAgIGNv
bmRpdGlvbmFsX3ZhbHVlLmNvbmRpdGlvbl9ub2RlIGlzIG5vdCBOb25lKToKLSAgICAgICAgICAg
ICAgICAgICAgaWYgc2VsZi5wcm9wZXJ0eV9uYW1lIGluIHNlbGYubm9kZToKLSAgICAgICAgICAg
ICAgICAgICAgICAgIHNlbGYubm9kZS5yZW1vdmVfdmFsdWUoc2VsZi5wcm9wZXJ0eV9uYW1lLCBj
b25kaXRpb25hbF92YWx1ZSkKLSAgICAgICAgICAgICAgICBlbHNlOgotICAgICAgICAgICAgICAg
ICAgICBjb25kaXRpb25hbF92YWx1ZS52YWx1ZSA9IHNlbGYudXBkYXRlX3ZhbHVlKGNvbmRpdGlv
bmFsX3ZhbHVlLnZhbHVlX2FzKHNlbGYudmFsdWVfdHlwZSksCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0LnZhbHVl
KQotICAgICAgICAgICAgZWxpZiBjb25kaXRpb25hbF92YWx1ZS5jb25kaXRpb25fbm9kZSBpcyBu
b3QgTm9uZToKLSAgICAgICAgICAgICAgICAjIEJsb3cgYXdheSB0aGUgZXhpc3RpbmcgY29uZGl0
aW9uIGFuZCByZWJ1aWxkIGZyb20gc2NyYXRjaAotICAgICAgICAgICAgICAgICMgVGhpcyBpc24n
dCBzdXJlIHRvIHdvcmsgaWYgd2UgaGF2ZSBhIGNvbmRpdGlvbmFsIGxhdGVyIHRoYXQgbWF0Y2hl
cwotICAgICAgICAgICAgICAgICMgdGhlc2UgdmFsdWVzIHRvbywgYnV0IHdlIGNhbiBob3BlLCB2
ZXJpZnkgdGhhdCB3ZSBnZXQgdGhlIHJlc3VsdHMKLSAgICAgICAgICAgICAgICAjIHdlIGV4cGVj
dCwgYW5kIGlmIG5vdCBsZXQgYSBodW1hbiBzb3J0IGl0IG91dAotICAgICAgICAgICAgICAgIHNl
bGYubm9kZS5yZW1vdmVfdmFsdWUoc2VsZi5wcm9wZXJ0eV9uYW1lLCBjb25kaXRpb25hbF92YWx1
ZSkKLSAgICAgICAgICAgICAgICBzZWxmLm5ldy5leHRlbmQocmVzdWx0cykKLSAgICAgICAgICAg
IGVsaWYgY29uZGl0aW9uYWxfdmFsdWUuY29uZGl0aW9uX25vZGUgaXMgTm9uZToKLSAgICAgICAg
ICAgICAgICBzZWxmLm5ldy5leHRlbmQocmVzdWx0IGZvciByZXN1bHQgaW4gcmVzdWx0cwotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiByZXN1bHQudmFsdWUgIT0gdW5jb25kaXRp
b25hbF92YWx1ZSkKLQotICAgICAgICAjIEl0IGlzIGFuIGludmFyaWFudCB0aGF0IG5vdGhpbmcg
aW4gbmV3IG1hdGNoZXMgYW4gZXhpc3RpbmcKLSAgICAgICAgIyBjb25kaXRpb24gZXhjZXB0IGZv
ciB0aGUgZGVmYXVsdCBjb25kaXRpb24KLSAgICAgICAgaWYgc2VsZi5uZXc6Ci0gICAgICAgICAg
ICB1cGRhdGVfZGVmYXVsdCwgbmV3X2RlZmF1bHRfdmFsdWUgPSBzZWxmLnVwZGF0ZV9kZWZhdWx0
KCkKLSAgICAgICAgICAgIGlmIHVwZGF0ZV9kZWZhdWx0OgotICAgICAgICAgICAgICAgIGlmIG5l
d19kZWZhdWx0X3ZhbHVlICE9IHNlbGYuZGVmYXVsdF92YWx1ZToKLSAgICAgICAgICAgICAgICAg
ICAgc2VsZi5ub2RlLnNldChzZWxmLnByb3BlcnR5X25hbWUsCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgc2VsZi51cGRhdGVfdmFsdWUodW5jb25kaXRpb25hbF92YWx1ZSwgbmV3
X2RlZmF1bHRfdmFsdWUpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbmRp
dGlvbj1Ob25lKQorICAgICAgICBjb25kaXRpb25zLCBlcnJvcnMgPSBzZWxmLnVwZGF0ZV9jb25k
aXRpb25zKHByb3BlcnR5X3RyZWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgZnVsbF91cGRhdGUpCisKKyAgICAgICAgZm9yIGUgaW4gZXJyb3Jz
OgorICAgICAgICAgICAgaWYgZGlzYWJsZV9pbnRlcm1pdHRlbnQ6CisgICAgICAgICAgICAgICAg
Y29uZGl0aW9uID0gZS5jb25kLmNoaWxkcmVuWzBdIGlmIGUuY29uZCBlbHNlIE5vbmUKKyAgICAg
ICAgICAgICAgICBtc2cgPSBkaXNhYmxlX2ludGVybWl0dGVudCBpZiBpc2luc3RhbmNlKGRpc2Fi
bGVfaW50ZXJtaXR0ZW50LCAoc3RyLCB1bmljb2RlKSkgZWxzZSAidW5zdGFibGUiCisgICAgICAg
ICAgICAgICAgc2VsZi5ub2RlLnNldCgiZGlzYWJsZWQiLCBtc2csIGNvbmRpdGlvbikKKyAgICAg
ICAgICAgICAgICBzZWxmLm5vZGUubmV3X2Rpc2FibGVkID0gVHJ1ZQogICAgICAgICAgICAgZWxz
ZToKKyAgICAgICAgICAgICAgICBtc2cgPSAiQ29uZmxpY3RpbmcgbWV0YWRhdGEgdmFsdWVzIGZv
ciAlcyIgJSAoCisgICAgICAgICAgICAgICAgICAgIHNlbGYubm9kZS5yb290LnRlc3RfcGF0aCkK
KyAgICAgICAgICAgICAgICBpZiBlLmNvbmQ6CisgICAgICAgICAgICAgICAgICAgIG1zZyArPSAi
OiAlcyIgJSBzZXJpYWxpemUoZS5jb25kKS5zdHJpcCgpCisgICAgICAgICAgICAgICAgcHJpbnQo
bXNnKQorCisgICAgICAgICMgSWYgYWxsIHRoZSB2YWx1ZXMgbWF0Y2ggcmVtb3ZlIGFsbCBjb25k
aXRpb25hbHMKKyAgICAgICAgIyBUaGlzIGhhbmRsZXMgdGhlIGNhc2Ugd2hlcmUgd2UgdXBkYXRl
IGEgbnVtYmVyIG9mIGV4aXN0aW5nIGNvbmRpdGlvbnMgYW5kIHRoZXkKKyAgICAgICAgIyBhbGwg
ZW5kIHVwIGxvb2tpbmcgbGlrZSB0aGUgcG9zdC11cGRhdGUgZGVmYXVsdC4KKyAgICAgICAgbmV3
X2RlZmF1bHQgPSBzZWxmLmRlZmF1bHRfdmFsdWUKKyAgICAgICAgaWYgY29uZGl0aW9ucyBhbmQg
Y29uZGl0aW9uc1stMV1bMF0gaXMgTm9uZToKKyAgICAgICAgICAgIG5ld19kZWZhdWx0ID0gY29u
ZGl0aW9uc1stMV1bMV0KKyAgICAgICAgaWYgYWxsKGNvbmRpdGlvblsxXSA9PSBuZXdfZGVmYXVs
dCBmb3IgY29uZGl0aW9uIGluIGNvbmRpdGlvbnMpOgorICAgICAgICAgICAgY29uZGl0aW9ucyA9
IFsoTm9uZSwgbmV3X2RlZmF1bHQpXQorCisgICAgICAgICMgRG9uJ3Qgc2V0IHRoZSBkZWZhdWx0
IHRvIHRoZSBjbGFzcyBkZWZhdWx0CisgICAgICAgIGlmIChjb25kaXRpb25zIGFuZAorICAgICAg
ICAgICAgY29uZGl0aW9uc1stMV1bMF0gaXMgTm9uZSBhbmQKKyAgICAgICAgICAgIGNvbmRpdGlv
bnNbLTFdWzFdID09IHNlbGYuZGVmYXVsdF92YWx1ZSk6CisgICAgICAgICAgICBzZWxmLm5vZGUu
bW9kaWZpZWQgPSBUcnVlCisgICAgICAgICAgICBjb25kaXRpb25zID0gY29uZGl0aW9uc1s6LTFd
CisKKyAgICAgICAgaWYgc2VsZi5ub2RlLm1vZGlmaWVkOgorICAgICAgICAgICAgc2VsZi5ub2Rl
LmNsZWFyKHNlbGYucHJvcGVydHlfbmFtZSkKKworICAgICAgICAgICAgZm9yIGNvbmRpdGlvbiwg
dmFsdWUgaW4gY29uZGl0aW9uczoKKyAgICAgICAgICAgICAgICBzZWxmLm5vZGUuc2V0KHNlbGYu
cHJvcGVydHlfbmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYudG9faW5p
X3ZhbHVlKHZhbHVlKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbmRpdGlvbikK
KworICAgIGRlZiB1cGRhdGVfY29uZGl0aW9ucyhzZWxmLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICBwcm9wZXJ0eV90cmVlLAorICAgICAgICAgICAgICAgICAgICAgICAgICBmdWxsX3VwZGF0
ZSk6CisgICAgICAgICMgVGhpcyBpcyBjb21wbGljYXRlZCBiZWNhdXNlIHRoZSBleHBlY3RlZCBi
ZWhhdmlvdXIgaXMgY29tcGxleAorICAgICAgICAjIFRoZSBjb21wbGV4aXR5IGFyaXNlcyBmcm9t
IHRoZSBmYWN0IHRoYXQgdGhlcmUgYXJlIHR3byB3YXlzIG9mIHJ1bm5pbmcKKyAgICAgICAgIyB0
aGUgdG9vbCwgd2l0aCBhIGZ1bGwgc2V0IG9mIHJ1bnMgKGZ1bGxfdXBkYXRlPVRydWUpIG9yIHdp
dGggcGFydGlhbCBtZXRhZGF0YQorICAgICAgICAjIChmdWxsX3VwZGF0ZT1GYWxzZSkuIEluIHRo
ZSBjYXNlIG9mIGEgZnVsbCB1cGRhdGUgdGhpbmdzIGFyZSByZWxhdGl2ZWx5IHNpbXBsZToKKyAg
ICAgICAgIyAqIEFsbCBleGlzdGluZyBjb25kaXRpb25hbHMgYXJlIGlnbm9yZWQsIHdpdGggdGhl
IGV4Y2VwdGlvbiBvZiBjb25kaXRpb25hbHMgdGhhdAorICAgICAgICAjICAgZGVwZW5kIG9uIHZh
cmlhYmxlcyBub3QgdXNlZCBieSB0aGUgdXBkYXRlciwgd2hpY2ggYXJlIHJldGFpbmVkIGFzLWlz
CisgICAgICAgICMgKiBBbGwgY3JlYXRlZCBjb25kaXRpb25hbHMgYXJlIGluZGVwZW5kZW50IG9m
IGVhY2ggb3RoZXIgKGkuZS4gb3JkZXIgaXNuJ3QKKyAgICAgICAgIyAgIGltcG9ydGFudCBpbiB0
aGUgY3JlYXRlZCBjb25kaXRpb25hbHMpCisgICAgICAgICMgSW4gdGhlIGNhc2Ugd2hlcmUgd2Ug
ZG9uJ3QgaGF2ZSBhIGZ1bGwgc2V0IG9mIHJ1bnMsIHRoZSBleHBlY3RlZCBiZWhhdmlvdXIKKyAg
ICAgICAgIyBpcyBtdWNoIGxlc3MgY2xlYXIuIFRoaXMgaXMgb2YgY291cnNlIHRoZSBjb21tb24g
Y2FzZSBmb3Igd2hlbiBhIGRldmVsb3BlcgorICAgICAgICAjIHJ1bnMgdGhlIHRlc3Qgb24gdGhl
aXIgb3duIG1hY2hpbmUuIEluIHRoaXMgY2FzZSB0aGUgYXNzdW1wdGlvbnMgYWJvdmUgYXJlIHVu
dHJ1ZQorICAgICAgICAjICogVGhlIGV4aXN0aW5nIGNvbmRpdGlvbnMgbWF5IGJlIHJlcXVpcmVk
IHRvIGhhbmRsZSBvdGhlciBwbGF0Zm9ybXMKKyAgICAgICAgIyAqIFRoZSBvcmRlciBvZiB0aGUg
Y29uZGl0aW9ucyBtYXkgYmUgaW1wb3J0YW50LCBzaW5jZSB3ZSBkb24ndCBrbm93IGlmIHRoZXkg
b3ZlcmxhcAorICAgICAgICAjICAgZS5nLiBgaWYgb3MgPT0gbGludXggYW5kIHZlcnNpb24gPT0g
MTguMDRgIG92ZXJsYXBzIHdpdGggYGlmIChvcyAhPSB3aW4pYC4KKyAgICAgICAgIyBTbyBpbiB0
aGUgY2FzZSB3ZSBoYXZlIGEgZnVsbCBzZXQgb2YgcnVucywgdGhlIHByb2Nlc3MgaXMgcHJldHR5
IHNpbXBsZToKKyAgICAgICAgIyAqIEdlbmVyYXRlIHRoZSBjb25kaXRpb25hbHMgZm9yIHRoZSBw
cm9wZXJ0eV90cmVlCisgICAgICAgICMgKiBQaWNrIHRoZSBtb3N0IGNvbW1vbiB2YWx1ZSBhcyB0
aGUgZGVmYXVsdCBhbmQgYWRkIG9ubHkgdGhvc2UgY29uZGl0aW9ucworICAgICAgICAjICAgbm90
IG1hdGNoaW5nIHRoZSBkZWZhdWx0CisgICAgICAgICMgSW4gdGhlIGNhc2Ugd2hlcmUgd2UgaGF2
ZSBhIHBhcnRpYWwgc2V0IG9mIHJ1bnMsIHRoaW5ncyBhcmUgbW9yZSBjb21wbGV4CisgICAgICAg
ICMgYW5kIG1vcmUgYmVzdC1lZmZvcnQKKyAgICAgICAgIyAqIEZvciBlYWNoIGV4aXN0aW5nIGNv
bmRpdGlvbmFsLCBzZWUgaWYgaXQgbWF0Y2hlcyBhbnkgb2YgdGhlIHJ1biBpbmZvIHdlCisgICAg
ICAgICMgICBoYXZlLiBJbiBjYXNlcyB3aGVyZSBpdCBkb2VzIG1hdGNoLCByZWNvcmQgdGhlIG5l
dyByZXN1bHRzCisgICAgICAgICMgKiBXaGVyZSBhbGwgdGhlIG5ldyByZXN1bHRzIG1hdGNoLCB1
cGRhdGUgdGhlIHJpZ2h0IGhhbmQgc2lkZSBvZiB0aGF0CisgICAgICAgICMgICBjb25kaXRpb25h
bCwgb3RoZXJ3aXNlIHJlbW92ZSBpdAorICAgICAgICAjICogSWYgdGhpcyBsZWF2ZXMgbm90aGlu
ZyBleGlzdGluZywgdGhlbiBwcm9jZWVkIGFzIHdpdGggdGhlIGZ1bGwgdXBkYXRlCisgICAgICAg
ICMgKiBPdGhlcndpc2UgYWRkIGNvbmRpdGlvbmFscyBmb3IgdGhlIHJ1bl9pbmZvIHRoYXQgZG9l
c24ndCBtYXRjaCBhbnkKKyAgICAgICAgIyAgIHJlbWFpbmluZyBjb25kaXRpb25zCisgICAgICAg
IHByZXZfZGVmYXVsdCA9IE5vbmUKKworICAgICAgICBjdXJyZW50X2NvbmRpdGlvbnMgPSBzZWxm
Lm5vZGUuZ2V0X2NvbmRpdGlvbnMoc2VsZi5wcm9wZXJ0eV9uYW1lKQorCisgICAgICAgICMgSWdu
b3JlIHRoZSBjdXJyZW50IGRlZmF1bHQgdmFsdWUKKyAgICAgICAgaWYgY3VycmVudF9jb25kaXRp
b25zIGFuZCBjdXJyZW50X2NvbmRpdGlvbnNbLTFdLmNvbmRpdGlvbl9ub2RlIGlzIE5vbmU6Cisg
ICAgICAgICAgICBzZWxmLm5vZGUubW9kaWZpZWQgPSBUcnVlCisgICAgICAgICAgICBwcmV2X2Rl
ZmF1bHQgPSBjdXJyZW50X2NvbmRpdGlvbnNbLTFdLnZhbHVlCisgICAgICAgICAgICBjdXJyZW50
X2NvbmRpdGlvbnMgPSBjdXJyZW50X2NvbmRpdGlvbnNbOi0xXQorCisgICAgICAgICMgSWYgdGhl
cmUgYXJlbid0IGFueSBjdXJyZW50IGNvbmRpdGlvbnMsIG9yIHRoZXJlIGlzIGp1c3QgYSBkZWZh
dWx0CisgICAgICAgICMgdmFsdWUgZm9yIGFsbCBydW5faW5mbywgcHJvY2VlZCBhcyBmb3IgYSBm
dWxsIHVwZGF0ZQorICAgICAgICBpZiBub3QgY3VycmVudF9jb25kaXRpb25zOgorICAgICAgICAg
ICAgcmV0dXJuIHNlbGYuX3VwZGF0ZV9jb25kaXRpb25zX2Z1bGwocHJvcGVydHlfdHJlZSwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByZXZfZGVmYXVs
dD1wcmV2X2RlZmF1bHQpCisKKyAgICAgICAgY29uZGl0aW9ucyA9IFtdCisgICAgICAgIGVycm9y
cyA9IFtdCisKKyAgICAgICAgcnVuX2luZm9faW5kZXggPSB7cnVuX2luZm86IG5vZGUKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgZm9yIG5vZGUgaW4gcHJvcGVydHlfdHJlZQorICAgICAgICAg
ICAgICAgICAgICAgICAgICBmb3IgcnVuX2luZm8gaW4gbm9kZS5ydW5faW5mb30KKworICAgICAg
ICBub2RlX2J5X3J1bl9pbmZvID0ge3J1bl9pbmZvOiBub2RlCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgZm9yIChydW5faW5mbywgbm9kZSkgaW4gaXRlcml0ZW1zKHJ1bl9pbmZvX2luZGV4
KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIG5vZGUucmVzdWx0X3ZhbHVlc30KKwor
ICAgICAgICBydW5faW5mb19ieV9jb25kaXRpb24gPSBzZWxmLnJ1bl9pbmZvX2J5X2NvbmRpdGlv
bihydW5faW5mb19pbmRleCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgY3VycmVudF9jb25kaXRpb25zKQorCisgICAgICAgIHJ1bl9p
bmZvX3dpdGhfY29uZGl0aW9uID0gc2V0KCkKKworICAgICAgICBpZiBmdWxsX3VwZGF0ZToKKyAg
ICAgICAgICAgICMgRXZlbiBmb3IgYSBmdWxsIHVwZGF0ZSB3ZSBuZWVkIHRvIGtlZXAgaGFuZC13
cml0dGVuIGNvbmRpdGlvbnMgbm90CisgICAgICAgICAgICAjIHVzaW5nIHRoZSBwcm9wZXJ0aWVz
IHdlJ3ZlIHNwZWNpZmllZCBhbmQgbm90IG1hdGNoaW5nIGFueSBydW5faW5mbworICAgICAgICAg
ICAgdG9wX2xldmVsX3Byb3BzLCBkZXBlbmRlbnRfcHJvcHMgPSBzZWxmLm5vZGUucm9vdC5ydW5f
aW5mb19wcm9wZXJ0aWVzCisgICAgICAgICAgICB1cGRhdGVfcHJvcGVydGllcyA9IHNldCh0b3Bf
bGV2ZWxfcHJvcHMpCisgICAgICAgICAgICBmb3IgaXRlbSBpbiBpdGVydmFsdWVzKGRlcGVuZGVu
dF9wcm9wcyk6CisgICAgICAgICAgICAgICAgdXBkYXRlX3Byb3BlcnRpZXMgfD0gc2V0KGRlcGVu
ZGVudF9wcm9wcykKKyAgICAgICAgICAgIGZvciBjb25kaXRpb24gaW4gY3VycmVudF9jb25kaXRp
b25zOgorICAgICAgICAgICAgICAgIGlmICgobm90IGNvbmRpdGlvbi52YXJpYWJsZXMuaXNzdWJz
ZXQodXBkYXRlX3Byb3BlcnRpZXMpIGFuZAorICAgICAgICAgICAgICAgICAgICAgbm90IHJ1bl9p
bmZvX2J5X2NvbmRpdGlvbltjb25kaXRpb25dKSk6CisgICAgICAgICAgICAgICAgICAgIGNvbmRp
dGlvbnMuYXBwZW5kKChjb25kaXRpb24uY29uZGl0aW9uX25vZGUsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmZyb21faW5pX3ZhbHVlKGNvbmRpdGlvbi52YWx1
ZSkpKQorCisgICAgICAgICAgICBuZXdfY29uZGl0aW9ucywgZXJyb3JzID0gc2VsZi5fdXBkYXRl
X2NvbmRpdGlvbnNfZnVsbChwcm9wZXJ0eV90cmVlLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJldl9kZWZhdWx0PXBy
ZXZfZGVmYXVsdCkKKyAgICAgICAgICAgIGNvbmRpdGlvbnMuZXh0ZW5kKG5ld19jb25kaXRpb25z
KQorICAgICAgICAgICAgcmV0dXJuIGNvbmRpdGlvbnMsIGVycm9ycworCisgICAgICAgICMgUmV0
YWluIGV4aXN0aW5nIGNvbmRpdGlvbnMgaWYgdGhleSBtYXRjaCB0aGUgdXBkYXRlZCB2YWx1ZXMK
KyAgICAgICAgZm9yIGNvbmRpdGlvbiBpbiBjdXJyZW50X2NvbmRpdGlvbnM6CisgICAgICAgICAg
ICAjIEFsbCBydW5faW5mbyB0aGF0IGlzbid0IGhhbmRsZWQgYnkgc29tZSBwcmV2aW91cyBjb25k
aXRpb24KKyAgICAgICAgICAgIGFsbF9ydW5faW5mb3NfY29uZGl0aW9uID0gcnVuX2luZm9fYnlf
Y29uZGl0aW9uW2NvbmRpdGlvbl0KKyAgICAgICAgICAgIHJ1bl9pbmZvcyA9IHtpdGVtIGZvciBp
dGVtIGluIGFsbF9ydW5faW5mb3NfY29uZGl0aW9uCisgICAgICAgICAgICAgICAgICAgICAgICAg
aWYgaXRlbSBub3QgaW4gcnVuX2luZm9fd2l0aF9jb25kaXRpb259CisKKyAgICAgICAgICAgIGlm
IG5vdCBydW5faW5mb3M6CisgICAgICAgICAgICAgICAgIyBSZXRhaW4gZXhpc3RpbmcgY29uZGl0
aW9ucyB0aGF0IGRvbid0IG1hdGNoIGFueXRoaW5nIGluIHRoZSB1cGRhdGUKKyAgICAgICAgICAg
ICAgICBjb25kaXRpb25zLmFwcGVuZCgoY29uZGl0aW9uLmNvbmRpdGlvbl9ub2RlLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmZyb21faW5pX3ZhbHVlKGNvbmRpdGlv
bi52YWx1ZSkpKQorICAgICAgICAgICAgICAgIGNvbnRpbnVlCisKKyAgICAgICAgICAgICMgU2V0
IG9mIG5vZGVzIGluIHRoZSB1cGRhdGVkIHRyZWUgdGhhdCBtYXRjaCB0aGUgc2FtZSBydW5faW5m
byB2YWx1ZXMgYXMgdGhlCisgICAgICAgICAgICAjIGN1cnJlbnQgZXhpc3Rpbmcgbm9kZQorICAg
ICAgICAgICAgbm9kZXMgPSBbbm9kZV9ieV9ydW5faW5mb1tydW5faW5mb10gZm9yIHJ1bl9pbmZv
IGluIHJ1bl9pbmZvcworICAgICAgICAgICAgICAgICAgICAgaWYgcnVuX2luZm8gaW4gbm9kZV9i
eV9ydW5faW5mb10KKyAgICAgICAgICAgICMgSWYgYWxsIHRoZSB2YWx1ZXMgYXJlIHRoZSBzYW1l
LCB1cGRhdGUgdGhlIHZhbHVlCisgICAgICAgICAgICBpZiBub2RlcyBhbmQgYWxsKHNldChub2Rl
LnJlc3VsdF92YWx1ZXMua2V5cygpKSA9PSBzZXQobm9kZXNbMF0ucmVzdWx0X3ZhbHVlcy5rZXlz
KCkpIGZvciBub2RlIGluIG5vZGVzKToKKyAgICAgICAgICAgICAgICBjdXJyZW50X3ZhbHVlID0g
c2VsZi5mcm9tX2luaV92YWx1ZShjb25kaXRpb24udmFsdWUpCiAgICAgICAgICAgICAgICAgdHJ5
OgotICAgICAgICAgICAgICAgICAgICBzZWxmLmFkZF9uZXcodW5jb25kaXRpb25hbF92YWx1ZSwg
c3RhYmlsaXR5KQotICAgICAgICAgICAgICAgIGV4Y2VwdCBVcGRhdGVFcnJvciBhcyBlOgotICAg
ICAgICAgICAgICAgICAgICBwcmludCgiJXMgZm9yICVzLCBjYW5ub3QgdXBkYXRlICVzIiAlIChl
LCBzZWxmLm5vZGUucm9vdC50ZXN0X3BhdGgsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYucHJvcGVydHlfbmFtZSkpCi0KLSAg
ICAgICAgIyBSZW1vdmUgY2FzZXMgd2hlcmUgdGhlIHZhbHVlIG1hdGNoZXMgdGhlIGRlZmF1bHQK
LSAgICAgICAgaWYgKHNlbGYucHJvcGVydHlfbmFtZSBpbiBzZWxmLm5vZGUuX2RhdGEgYW5kCi0g
ICAgICAgICAgICBsZW4oc2VsZi5ub2RlLl9kYXRhW3NlbGYucHJvcGVydHlfbmFtZV0pID4gMCBh
bmQKLSAgICAgICAgICAgIHNlbGYubm9kZS5fZGF0YVtzZWxmLnByb3BlcnR5X25hbWVdWy0xXS5j
b25kaXRpb25fbm9kZSBpcyBOb25lIGFuZAotICAgICAgICAgICAgc2VsZi5ub2RlLl9kYXRhW3Nl
bGYucHJvcGVydHlfbmFtZV1bLTFdLnZhbHVlX2FzKHNlbGYudmFsdWVfdHlwZSkgPT0gc2VsZi5k
ZWZhdWx0X3ZhbHVlKToKLQotICAgICAgICAgICAgc2VsZi5ub2RlLnJlbW92ZV92YWx1ZShzZWxm
LnByb3BlcnR5X25hbWUsIHNlbGYubm9kZS5fZGF0YVtzZWxmLnByb3BlcnR5X25hbWVdWy0xXSkK
LQotICAgICAgICAjIFJlbW92ZSBlbXB0eSBwcm9wZXJ0aWVzCi0gICAgICAgIGlmIChzZWxmLnBy
b3BlcnR5X25hbWUgaW4gc2VsZi5ub2RlLl9kYXRhIGFuZCBsZW4oc2VsZi5ub2RlLl9kYXRhW3Nl
bGYucHJvcGVydHlfbmFtZV0pID09IDApOgotICAgICAgICAgICAgZm9yIGNoaWxkIGluIHNlbGYu
bm9kZS5jaGlsZHJlbjoKLSAgICAgICAgICAgICAgICBpZiAoaXNpbnN0YW5jZShjaGlsZCwgS2V5
VmFsdWVOb2RlKSBhbmQgY2hpbGQuZGF0YSA9PSBzZWxmLnByb3BlcnR5X25hbWUpOgotICAgICAg
ICAgICAgICAgICAgICBjaGlsZC5yZW1vdmUoKQotICAgICAgICAgICAgICAgICAgICBicmVhawot
Ci0gICAgZGVmIHVwZGF0ZV9kZWZhdWx0KHNlbGYpOgotICAgICAgICAiIiJHZXQgdGhlIHVwZGF0
ZWQgZGVmYXVsdCB2YWx1ZSBmb3IgdGhlIHByb3BlcnR5IChpLmUuIHRoZSBvbmUgY2hvc2VuIHdo
ZW4gbm8gY29uZGl0aW9ucyBtYXRjaCkuCi0KLSAgICAgICAgOnJldHVybnM6ICh1cGRhdGUsIG5l
d19kZWZhdWx0X3ZhbHVlKSB3aGVyZSB1cGRhdGVkIGlzIGEgYm9vbCBpbmRpY2F0aW5nIHdoZXRo
ZXIgdGhlIHByb3BlcnR5Ci0gICAgICAgICAgICAgICAgICBzaG91bGQgYmUgdXBkYXRlZCwgYW5k
IG5ld19kZWZhdWx0X3ZhbHVlIGlzIHRoZSB2YWx1ZSB0byBzZXQgaWYgaXQgc2hvdWxkLiIiIgot
ICAgICAgICByYWlzZSBOb3RJbXBsZW1lbnRlZEVycm9yCisgICAgICAgICAgICAgICAgICAgIG5l
d192YWx1ZSA9IHNlbGYudXBkYXRlZF92YWx1ZShjdXJyZW50X3ZhbHVlLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9kZXNbMF0ucmVzdWx0X3Zh
bHVlcykKKyAgICAgICAgICAgICAgICBleGNlcHQgQ29uZGl0aW9uRXJyb3IgYXMgZToKKyAgICAg
ICAgICAgICAgICAgICAgZXJyb3JzLmFwcGVuZChlKQorICAgICAgICAgICAgICAgICAgICBjb250
aW51ZQorICAgICAgICAgICAgICAgIGlmIG5ld192YWx1ZSAhPSBjdXJyZW50X3ZhbHVlOgorICAg
ICAgICAgICAgICAgICAgICBzZWxmLm5vZGUubW9kaWZpZWQgPSBUcnVlCisgICAgICAgICAgICAg
ICAgY29uZGl0aW9ucy5hcHBlbmQoKGNvbmRpdGlvbi5jb25kaXRpb25fbm9kZSwgbmV3X3ZhbHVl
KSkKKyAgICAgICAgICAgICAgICBydW5faW5mb193aXRoX2NvbmRpdGlvbiB8PSBzZXQocnVuX2lu
Zm9zKQorICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICAjIERvbid0IGFwcGVuZCB0
aGlzIGNvbmRpdGlvbgorICAgICAgICAgICAgICAgIHNlbGYubm9kZS5tb2RpZmllZCA9IFRydWUK
KworICAgICAgICBuZXdfY29uZGl0aW9ucywgbmV3X2Vycm9ycyA9IHNlbGYuYnVpbGRfdHJlZV9j
b25kaXRpb25zKHByb3BlcnR5X3RyZWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcnVuX2luZm9fd2l0aF9jb25kaXRpb24s
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgcHJldl9kZWZhdWx0KQorICAgICAgICBpZiBuZXdfY29uZGl0aW9uczoKKyAgICAg
ICAgICAgIHNlbGYubm9kZS5tb2RpZmllZCA9IFRydWUKKworICAgICAgICBjb25kaXRpb25zLmV4
dGVuZChuZXdfY29uZGl0aW9ucykKKyAgICAgICAgZXJyb3JzLmV4dGVuZChuZXdfZXJyb3JzKQor
CisgICAgICAgIHJldHVybiBjb25kaXRpb25zLCBlcnJvcnMKKworICAgIGRlZiBfdXBkYXRlX2Nv
bmRpdGlvbnNfZnVsbChzZWxmLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9w
ZXJ0eV90cmVlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmV2X2RlZmF1bHQ9
Tm9uZSk6CisgICAgICAgIHNlbGYubm9kZS5tb2RpZmllZCA9IFRydWUKKyAgICAgICAgY29uZGl0
aW9ucywgZXJyb3JzID0gc2VsZi5idWlsZF90cmVlX2NvbmRpdGlvbnMocHJvcGVydHlfdHJlZSwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
c2V0KCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHByZXZfZGVmYXVsdCkKKworICAgICAgICByZXR1cm4gY29uZGl0aW9ucywgZXJyb3Jz
CisKKyAgICBkZWYgYnVpbGRfdHJlZV9jb25kaXRpb25zKHNlbGYsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBwcm9wZXJ0eV90cmVlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgcnVuX2luZm9fd2l0aF9jb25kaXRpb24sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBwcmV2X2RlZmF1bHQ9Tm9uZSk6CisgICAgICAgIGNvbmRpdGlvbnMgPSBbXQorICAgICAgICBl
cnJvcnMgPSBbXQorCisgICAgICAgIHZhbHVlX2NvdW50ID0gZGVmYXVsdGRpY3QoaW50KQorCisg
ICAgICAgIGRlZiB0b19jb3VudF92YWx1ZSh2KToKKyAgICAgICAgICAgIGlmIHYgaXMgTm9uZToK
KyAgICAgICAgICAgICAgICByZXR1cm4gdgorICAgICAgICAgICAgIyBOZWVkIHRvIGNvdW50IHRo
ZSB2YWx1ZXMgaW4gYSBoYXNoYWJsZSB0eXBlCisgICAgICAgICAgICBjb3VudF92YWx1ZSA9IHNl
bGYudG9faW5pX3ZhbHVlKHYpCisgICAgICAgICAgICBpZiBpc2luc3RhbmNlKGNvdW50X3ZhbHVl
LCBsaXN0KToKKyAgICAgICAgICAgICAgICBjb3VudF92YWx1ZSA9IHR1cGxlKGNvdW50X3ZhbHVl
KQorICAgICAgICAgICAgcmV0dXJuIGNvdW50X3ZhbHVlCisKKworICAgICAgICBxdWV1ZSA9IGRl
cXVlKFsocHJvcGVydHlfdHJlZSwgW10pXSkKKyAgICAgICAgd2hpbGUgcXVldWU6CisgICAgICAg
ICAgICBub2RlLCBwYXJlbnRzID0gcXVldWUucG9wbGVmdCgpCisgICAgICAgICAgICBwYXJlbnRz
X2FuZF9zZWxmID0gcGFyZW50cyArIFtub2RlXQorICAgICAgICAgICAgaWYgbm9kZS5yZXN1bHRf
dmFsdWVzIGFuZCBhbnkocnVuX2luZm8gbm90IGluIHJ1bl9pbmZvX3dpdGhfY29uZGl0aW9uCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3IgcnVuX2luZm8gaW4g
bm9kZS5ydW5faW5mbyk6CisgICAgICAgICAgICAgICAgcHJvcF9zZXQgPSBbKGl0ZW0ucHJvcCwg
aXRlbS52YWx1ZSkgZm9yIGl0ZW0gaW4gcGFyZW50c19hbmRfc2VsZiBpZiBpdGVtLnByb3BdCisg
ICAgICAgICAgICAgICAgdmFsdWUgPSBub2RlLnJlc3VsdF92YWx1ZXMKKyAgICAgICAgICAgICAg
ICBlcnJvciA9IE5vbmUKKyAgICAgICAgICAgICAgICBpZiBwYXJlbnRzOgorICAgICAgICAgICAg
ICAgICAgICB0cnk6CisgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IHNlbGYudXBkYXRl
ZF92YWx1ZShOb25lLCB2YWx1ZSkKKyAgICAgICAgICAgICAgICAgICAgZXhjZXB0IENvbmRpdGlv
bkVycm9yOgorICAgICAgICAgICAgICAgICAgICAgICAgZXhwciA9IG1ha2VfZXhwcihwcm9wX3Nl
dCwgdmFsdWUpCisgICAgICAgICAgICAgICAgICAgICAgICBlcnJvciA9IENvbmRpdGlvbkVycm9y
KGV4cHIpCisgICAgICAgICAgICAgICAgICAgIGV4cHIgPSBtYWtlX2V4cHIocHJvcF9zZXQsIHZh
bHVlKQorICAgICAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgICAgICMgVGhlIHJv
b3Qgbm9kZSBuZWVkcyBzcGVjaWFsIGhhbmRsaW5nCisgICAgICAgICAgICAgICAgICAgIGV4cHIg
PSBOb25lCisgICAgICAgICAgICAgICAgICAgIHRyeToKKyAgICAgICAgICAgICAgICAgICAgICAg
IHZhbHVlID0gc2VsZi51cGRhdGVkX3ZhbHVlKHNlbGYudW5jb25kaXRpb25hbF92YWx1ZSwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlKQor
ICAgICAgICAgICAgICAgICAgICBleGNlcHQgQ29uZGl0aW9uRXJyb3I6CisgICAgICAgICAgICAg
ICAgICAgICAgICBlcnJvciA9IENvbmRpdGlvbkVycm9yKGV4cHIpCisgICAgICAgICAgICAgICAg
ICAgICAgICAjIElmIHdlIGdvdCBhbiBlcnJvciBmb3IgdGhlIHJvb3Qgbm9kZSwgcmUtYWRkIHRo
ZSBwcmV2aW91cworICAgICAgICAgICAgICAgICAgICAgICAgIyBkZWZhdWx0IHZhbHVlCisgICAg
ICAgICAgICAgICAgICAgICAgICBpZiBwcmV2X2RlZmF1bHQ6CisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgY29uZGl0aW9ucy5hcHBlbmQoKE5vbmUsIHByZXZfZGVmYXVsdCkpCisgICAgICAg
ICAgICAgICAgaWYgZXJyb3IgaXMgTm9uZToKKyAgICAgICAgICAgICAgICAgICAgY291bnRfdmFs
dWUgPSB0b19jb3VudF92YWx1ZSh2YWx1ZSkKKyAgICAgICAgICAgICAgICAgICAgdmFsdWVfY291
bnRbY291bnRfdmFsdWVdICs9IGxlbihub2RlLnJ1bl9pbmZvKQorCisgICAgICAgICAgICAgICAg
aWYgZXJyb3IgaXMgTm9uZToKKyAgICAgICAgICAgICAgICAgICAgY29uZGl0aW9ucy5hcHBlbmQo
KGV4cHIsIHZhbHVlKSkKKyAgICAgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgICAg
ICBlcnJvcnMuYXBwZW5kKGVycm9yKQogCi0gICAgZGVmIGFkZF9uZXcoc2VsZiwgdW5jb25kaXRp
b25hbF92YWx1ZSwgc3RhYmlsaXR5KToKLSAgICAgICAgIiIiQWRkIG5ldyBjb25kaXRpb25hbCB2
YWx1ZXMgZm9yIHRoZSBwcm9wZXJ0eS4KKyAgICAgICAgICAgIGZvciBjaGlsZCBpbiBub2RlLmNo
aWxkcmVuOgorICAgICAgICAgICAgICAgIHF1ZXVlLmFwcGVuZCgoY2hpbGQsIHBhcmVudHNfYW5k
X3NlbGYpKQogCi0gICAgICAgIFN1YmNsYXNzZXMgbmVlZCBub3QgaW1wbGVtZW50IHRoaXMgaWYg
dGhleSBvbmx5IGV2ZXIgdXBkYXRlIHRoZSBkZWZhdWx0IHZhbHVlLiIiIgotICAgICAgICByYWlz
ZSBOb3RJbXBsZW1lbnRlZEVycm9yCisgICAgICAgIGNvbmRpdGlvbnMgPSBjb25kaXRpb25zWzo6
LTFdCiAKLSAgICBkZWYgdXBkYXRlX3ZhbHVlKHNlbGYsIG9sZF92YWx1ZSwgbmV3X3ZhbHVlKToK
LSAgICAgICAgIiIiR2V0IGEgdmFsdWUgdG8gc2V0IG9uIHRoZSBwcm9wZXJ0eSwgZ2l2ZW4gaXRz
IHByZXZpb3VzIHZhbHVlIGFuZCB0aGUgbmV3IHZhbHVlIGZyb20gbG9ncy4KKyAgICAgICAgIyBJ
ZiB3ZSBoYXZlbid0IHNldCBhIGRlZmF1bHQgY29uZGl0aW9uLCBhZGQgb25lIGFuZCByZW1vdmUg
YWxsIHRoZSBjb25kaXRpb25zCisgICAgICAgICMgd2l0aCB0aGUgc2FtZSB2YWx1ZQorICAgICAg
ICBpZiB2YWx1ZV9jb3VudCBhbmQgKG5vdCBjb25kaXRpb25zIG9yIGNvbmRpdGlvbnNbLTFdWzBd
IGlzIG5vdCBOb25lKToKKyAgICAgICAgICAgICMgU29ydCBpbiBvcmRlciBvZiBvY2N1cmVuY2Us
IHByaW9yaXRpc2luZyB2YWx1ZXMgdGhhdCBtYXRjaCB0aGUgY2xhc3MgZGVmYXVsdAorICAgICAg
ICAgICAgIyBvciB0aGUgcHJldmlvdXMgZGVmYXVsdAorICAgICAgICAgICAgY2xzX2RlZmF1bHQg
PSB0b19jb3VudF92YWx1ZShzZWxmLmRlZmF1bHRfdmFsdWUpCisgICAgICAgICAgICBwcmV2X2Rl
ZmF1bHQgPSB0b19jb3VudF92YWx1ZShwcmV2X2RlZmF1bHQpCisgICAgICAgICAgICBjb21tb25l
c3RfdmFsdWUgPSBtYXgodmFsdWVfY291bnQsIGtleT1sYW1iZGEgeDoodmFsdWVfY291bnQuZ2V0
KHgpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHggPT0gY2xzX2RlZmF1bHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeCA9PSBwcmV2X2RlZmF1bHQpKQorICAg
ICAgICAgICAgaWYgaXNpbnN0YW5jZShjb21tb25lc3RfdmFsdWUsIHR1cGxlKToKKyAgICAgICAg
ICAgICAgICBjb21tb25lc3RfdmFsdWUgPSBsaXN0KGNvbW1vbmVzdF92YWx1ZSkKKyAgICAgICAg
ICAgIGNvbW1vbmVzdF92YWx1ZSA9IHNlbGYuZnJvbV9pbmlfdmFsdWUoY29tbW9uZXN0X3ZhbHVl
KQorICAgICAgICAgICAgY29uZGl0aW9ucyA9IFtpdGVtIGZvciBpdGVtIGluIGNvbmRpdGlvbnMg
aWYgaXRlbVsxXSAhPSBjb21tb25lc3RfdmFsdWVdCisgICAgICAgICAgICBjb25kaXRpb25zLmFw
cGVuZCgoTm9uZSwgY29tbW9uZXN0X3ZhbHVlKSkKIAotICAgICAgICBCeSBkZWZhdWx0IHRoaXMg
anVzdCByZXR1cm5zIHRoZSBuZXcgdmFsdWUsIGJ1dCBvdmVycmlkaW5nIGlzIHVzZWZ1bCBpbiBj
YXNlcwotICAgICAgICB3aGVyZSB3ZSB3YW50IHRoZSBuZXcgdmFsdWUgdG8gYmUgc29tZSBmdW5j
dGlvbiBvZiBib3RoIG9sZCBhbmQgbmV3IGUuZy4gbWF4KG9sZF92YWx1ZSwgbmV3X3ZhbHVlKSIi
IgotICAgICAgICByZXR1cm4gbmV3X3ZhbHVlCisgICAgICAgIHJldHVybiBjb25kaXRpb25zLCBl
cnJvcnMKIAogCiBjbGFzcyBFeHBlY3RlZFVwZGF0ZShQcm9wZXJ0eVVwZGF0ZSk6CiAgICAgcHJv
cGVydHlfbmFtZSA9ICJleHBlY3RlZCIKKyAgICBwcm9wZXJ0eV9idWlsZGVyID0gYnVpbGRfY29u
ZGl0aW9uYWxfdHJlZQogCiAgICAgZGVmIGNoZWNrX2RlZmF1bHQoc2VsZiwgcmVzdWx0KToKICAg
ICAgICAgaWYgc2VsZi5kZWZhdWx0X3ZhbHVlIGlzIG5vdCBOb25lOgpAQCAtNDA1LDEwNyArNjcw
LDEyMyBAQCBjbGFzcyBFeHBlY3RlZFVwZGF0ZShQcm9wZXJ0eVVwZGF0ZSk6CiAgICAgICAgIGVs
c2U6CiAgICAgICAgICAgICBzZWxmLmRlZmF1bHRfdmFsdWUgPSByZXN1bHQuZGVmYXVsdF9leHBl
Y3RlZAogCi0gICAgZGVmIGdldF92YWx1ZShzZWxmLCBpbl92YWx1ZSk6Ci0gICAgICAgIHJldHVy
biBpbl92YWx1ZS5zdGF0dXMKLQotICAgIGRlZiB1cGRhdGVfZGVmYXVsdChzZWxmKToKLSAgICAg
ICAgdXBkYXRlX2RlZmF1bHQgPSBhbGwoc2VsZi5uZXdbMF0udmFsdWUgPT0gcmVzdWx0LnZhbHVl
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvciByZXN1bHQgaW4gc2VsZi5uZXcpIGFu
ZCBub3Qgc2VsZi51cGRhdGVkCi0gICAgICAgIG5ld192YWx1ZSA9IHNlbGYubmV3WzBdLnZhbHVl
Ci0gICAgICAgIHJldHVybiB1cGRhdGVfZGVmYXVsdCwgbmV3X3ZhbHVlCisgICAgZGVmIGZyb21f
cmVzdWx0X3ZhbHVlKHNlbGYsIHJlc3VsdCk6CisgICAgICAgICMgV2hlbiB3ZSBhcmUgdXBkYXRp
bmcgaW50ZXJtaXR0ZW50cywgd2UgbmVlZCB0byBrZWVwIGEgcmVjb3JkIG9mIGFueSBleGlzdGlu
ZworICAgICAgICAjIGludGVybWl0dGVudHMgdG8gcGFzcyBvbiB3aGVuIGJ1aWxkaW5nIHRoZSBw
cm9wZXJ0eSB0cmVlIGFuZCBtYXRjaGluZyBzdGF0dXNlcyBhbmQKKyAgICAgICAgIyBpbnRlcm1p
dHRlbnRzIHRvIHRoZSBjb3JyZWN0IHJ1biBpbmZvIC0gIHRoaXMgaXMgc28gd2UgY2FuIGFkZCB0
aGVtIGJhY2sgaW50byB0aGUKKyAgICAgICAgIyBtZXRhZGF0YSBhbGlnbmVkIHdpdGggdGhlIHJp
Z2h0IGNvbmRpdGlvbnMsIHVubGVzcyBzcGVjaWZpZWQgbm90IHRvIHdpdGgKKyAgICAgICAgIyBz
ZWxmLnJlbW92ZV9pbnRlcm1pdHRlbnQuCisgICAgICAgICMgVGhlIChzdGF0dXMsIGtub3duX2lu
dGVybWl0dGVudCkgdHVwbGUgaXMgY291bnRlZCB3aGVuIHRoZSBwcm9wZXJ0eSB0cmVlIGlzIGJ1
aWx0LCBidXQKKyAgICAgICAgIyB0aGUgY291bnQgdmFsdWUgb25seSBhcHBsaWVzIHRvIHRoZSBm
aXJzdCBpdGVtIGluIHRoZSB0dXBsZSwgdGhlIHN0YXR1cyBmcm9tIHRoYXQgcnVuLAorICAgICAg
ICAjIHdoZW4gcGFzc2VkIHRvIGB1cGRhdGVkX3ZhbHVlYC4KKyAgICAgICAgaWYgKG5vdCBzZWxm
LnVwZGF0ZV9pbnRlcm1pdHRlbnQgb3IKKyAgICAgICAgICAgIHNlbGYucmVtb3ZlX2ludGVybWl0
dGVudCBvcgorICAgICAgICAgICAgbm90IHJlc3VsdC5rbm93bl9pbnRlcm1pdHRlbnQpOgorICAg
ICAgICAgICAgcmV0dXJuIHJlc3VsdC5zdGF0dXMKKyAgICAgICAgcmV0dXJuIHJlc3VsdC5zdGF0
dXMgKyByZXN1bHQua25vd25faW50ZXJtaXR0ZW50CisKKyAgICBkZWYgdG9faW5pX3ZhbHVlKHNl
bGYsIHZhbHVlKToKKyAgICAgICAgaWYgaXNpbnN0YW5jZSh2YWx1ZSwgKGxpc3QsIHR1cGxlKSk6
CisgICAgICAgICAgICByZXR1cm4gW3N0cihpdGVtKSBmb3IgaXRlbSBpbiB2YWx1ZV0KKyAgICAg
ICAgcmV0dXJuIHN0cih2YWx1ZSkKKworICAgIGRlZiB1cGRhdGVkX3ZhbHVlKHNlbGYsIGN1cnJl
bnQsIG5ldyk6CisgICAgICAgIGlmIGxlbihuZXcpID4gMSBhbmQgbm90IHNlbGYudXBkYXRlX2lu
dGVybWl0dGVudCBhbmQgbm90IGlzaW5zdGFuY2UoY3VycmVudCwgbGlzdCk6CisgICAgICAgICAg
ICByYWlzZSBDb25kaXRpb25FcnJvcgogCi0gICAgZGVmIGFkZF9uZXcoc2VsZiwgdW5jb25kaXRp
b25hbF92YWx1ZSwgc3RhYmlsaXR5KToKLSAgICAgICAgdHJ5OgotICAgICAgICAgICAgY29uZGl0
aW9uYWxzID0gZ3JvdXBfY29uZGl0aW9uYWxzKAotICAgICAgICAgICAgICAgIHNlbGYubmV3LAot
ICAgICAgICAgICAgICAgIHByb3BlcnR5X29yZGVyPXNlbGYubm9kZS5yb290LnByb3BlcnR5X29y
ZGVyLAotICAgICAgICAgICAgICAgIGJvb2xlYW5fcHJvcGVydGllcz1zZWxmLm5vZGUucm9vdC5i
b29sZWFuX3Byb3BlcnRpZXMpCi0gICAgICAgIGV4Y2VwdCBDb25kaXRpb25FcnJvciBhcyBlOgot
ICAgICAgICAgICAgaWYgc3RhYmlsaXR5IGlzIG5vdCBOb25lOgotICAgICAgICAgICAgICAgIHNl
bGYubm9kZS5zZXQoImRpc2FibGVkIiwgc3RhYmlsaXR5IG9yICJ1bnN0YWJsZSIsIGUuY29uZC5j
aGlsZHJlblswXSkKLSAgICAgICAgICAgICAgICBzZWxmLm5vZGUubmV3X2Rpc2FibGVkID0gVHJ1
ZQorICAgICAgICBjb3VudHMgPSB7fQorICAgICAgICBmb3Igc3RhdHVzLCBjb3VudCBpbiBpdGVy
aXRlbXMobmV3KToKKyAgICAgICAgICAgIGlmIGlzaW5zdGFuY2Uoc3RhdHVzLCB0dXBsZSk6Cisg
ICAgICAgICAgICAgICAgY291bnRzW3N0YXR1c1swXV0gPSBjb3VudAorICAgICAgICAgICAgICAg
IGNvdW50cy51cGRhdGUoe2ludGVybWl0dGVudDogMCBmb3IgaW50ZXJtaXR0ZW50IGluIHN0YXR1
c1sxOl0gaWYgaW50ZXJtaXR0ZW50IG5vdCBpbiBjb3VudHN9KQogICAgICAgICAgICAgZWxzZToK
LSAgICAgICAgICAgICAgICByYWlzZSBVcGRhdGVFcnJvcigiQ29uZmxpY3RpbmcgbWV0YWRhdGEg
dmFsdWVzIikKLSAgICAgICAgZm9yIGNvbmRpdGlvbmFsX25vZGUsIHZhbHVlIGluIGNvbmRpdGlv
bmFsczoKLSAgICAgICAgICAgIGlmIHZhbHVlICE9IHVuY29uZGl0aW9uYWxfdmFsdWU6Ci0gICAg
ICAgICAgICAgICAgc2VsZi5ub2RlLnNldChzZWxmLnByb3BlcnR5X25hbWUsIHZhbHVlLCBjb25k
aXRpb249Y29uZGl0aW9uYWxfbm9kZS5jaGlsZHJlblswXSkKKyAgICAgICAgICAgICAgICBjb3Vu
dHNbc3RhdHVzXSA9IGNvdW50CisKKyAgICAgICAgaWYgbm90IChzZWxmLnVwZGF0ZV9pbnRlcm1p
dHRlbnQgb3IgaXNpbnN0YW5jZShjdXJyZW50LCBsaXN0KSk6CisgICAgICAgICAgICByZXR1cm4g
bGlzdChjb3VudHMpWzBdCisKKyAgICAgICAgIyBSZW9yZGVyIHN0YXR1c2VzIGZpcnN0IGJhc2Vk
IG9uIGNvdW50cywgdGhlbiBiYXNlZCBvbiBzdGF0dXMgcHJpb3JpdHkgaWYgdGhlcmUgYXJlIHRp
ZXMuCisgICAgICAgICMgQ291bnRzIHdpdGggMCBhcmUgY29uc2lkZXJlZCBpbnRlcm1pdHRlbnQu
CisgICAgICAgIHN0YXR1c2VzID0gWyJPSyIsICJQQVNTIiwgIkZBSUwiLCAiRVJST1IiLCAiVElN
RU9VVCIsICJDUkFTSCJdCisgICAgICAgIHN0YXR1c19wcmlvcml0eSA9IHt2YWx1ZTogaSBmb3Ig
aSwgdmFsdWUgaW4gZW51bWVyYXRlKHN0YXR1c2VzKX0KKyAgICAgICAgc29ydGVkX25ldyA9IHNv
cnRlZChpdGVyaXRlbXMoY291bnRzKSwga2V5PWxhbWJkYSB4OigtMSAqIHhbMV0sCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXR1
c19wcmlvcml0eS5nZXQoeFswXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgbGVuKHN0YXR1c19wcmlvcml0eSkpKSkKKyAgICAgICAg
ZXhwZWN0ZWQgPSBbXQorICAgICAgICBmb3Igc3RhdHVzLCBjb3VudCBpbiBzb3J0ZWRfbmV3Ogor
ICAgICAgICAgICAgIyBJZiB3ZSBhcmUgbm90IHJlbW92aW5nIGV4aXN0aW5nIHJlY29yZGVkIGlu
dGVybWl0dGVudHMsIHdpdGggYSBjb3VudCBvZiAwLAorICAgICAgICAgICAgIyBhZGQgdGhlbSBp
biB0byBleHBlY3RlZC4KKyAgICAgICAgICAgIGlmIGNvdW50ID4gMCBvciBub3Qgc2VsZi5yZW1v
dmVfaW50ZXJtaXR0ZW50OgorICAgICAgICAgICAgICAgIGV4cGVjdGVkLmFwcGVuZChzdGF0dXMp
CisgICAgICAgIGlmIHNlbGYudXBkYXRlX2ludGVybWl0dGVudDoKKyAgICAgICAgICAgIGlmIGxl
bihleHBlY3RlZCkgPT0gMToKKyAgICAgICAgICAgICAgICByZXR1cm4gZXhwZWN0ZWRbMF0KKyAg
ICAgICAgICAgIHJldHVybiBleHBlY3RlZAorCisgICAgICAgICMgSWYgbm90aGluZyBoYXMgY2hh
bmdlZCBhbmQgbm90IHNlbGYudXBkYXRlX2ludGVybWl0dGVudCwgcHJlc2VydmUgZXhpc3RpbmcK
KyAgICAgICAgIyBpbnRlcm1pdHRlbnQuCisgICAgICAgIGlmIHNldChleHBlY3RlZCkuaXNzdWJz
ZXQoc2V0KGN1cnJlbnQpKToKKyAgICAgICAgICAgIHJldHVybiBjdXJyZW50CisgICAgICAgICMg
SWYgd2UgYXJlIG5vdCB1cGRhdGluZyBpbnRlcm1pdHRlbnRzLCByZXR1cm4gdGhlIHN0YXR1cyB3
aXRoIHRoZSBoaWdoZXN0IG9jY3VyZW5jZS4KKyAgICAgICAgcmV0dXJuIGV4cGVjdGVkWzBdCiAK
IAogY2xhc3MgTWF4QXNzZXJ0c1VwZGF0ZShQcm9wZXJ0eVVwZGF0ZSk6CisgICAgIiIiRm9yIGFz
c2VydHMgd2UgYWx3YXlzIHVwZGF0ZSB0aGUgZGVmYXVsdCB2YWx1ZSBhbmQgbmV2ZXIgYWRkIG5l
dyBjb25kaXRpb25hbHMuCisgICAgVGhlIHZhbHVlIHdlIHNldCBhcyB0aGUgZGVmYXVsdCBpcyB0
aGUgbWF4aW11bSB0aGUgY3VycmVudCBkZWZhdWx0IG9yIG9uZSBtb3JlIHRoYW4gdGhlCisgICAg
bnVtYmVyIG9mIGFzc2VydHMgd2Ugc2F3IGluIGFueSBjb25maWd1cmF0aW9uLiIiIgorCiAgICAg
cHJvcGVydHlfbmFtZSA9ICJtYXgtYXNzZXJ0cyIKICAgICBjbHNfZGVmYXVsdF92YWx1ZSA9IDAK
ICAgICB2YWx1ZV90eXBlID0gaW50CisgICAgcHJvcGVydHlfYnVpbGRlciA9IGJ1aWxkX3VuY29u
ZGl0aW9uYWxfdHJlZQogCi0gICAgZGVmIHVwZGF0ZV92YWx1ZShzZWxmLCBvbGRfdmFsdWUsIG5l
d192YWx1ZSk6Ci0gICAgICAgIG5ld192YWx1ZSA9IHNlbGYudmFsdWVfdHlwZShuZXdfdmFsdWUp
Ci0gICAgICAgIGlmIG9sZF92YWx1ZSBpcyBub3QgTm9uZToKLSAgICAgICAgICAgIG9sZF92YWx1
ZSA9IHNlbGYudmFsdWVfdHlwZShvbGRfdmFsdWUpCi0gICAgICAgIGlmIG9sZF92YWx1ZSBpcyBu
b3QgTm9uZSBhbmQgb2xkX3ZhbHVlIDwgbmV3X3ZhbHVlOgotICAgICAgICAgICAgcmV0dXJuIG5l
d192YWx1ZSArIDEKLSAgICAgICAgaWYgb2xkX3ZhbHVlIGlzIE5vbmU6Ci0gICAgICAgICAgICBy
ZXR1cm4gbmV3X3ZhbHVlICsgMQotICAgICAgICByZXR1cm4gb2xkX3ZhbHVlCi0KLSAgICBkZWYg
dXBkYXRlX2RlZmF1bHQoc2VsZik6Ci0gICAgICAgICIiIkZvciBhc3NlcnRzIHdlIGFsd2F5cyB1
cGRhdGUgdGhlIGRlZmF1bHQgdmFsdWUgYW5kIG5ldmVyIGFkZCBuZXcgY29uZGl0aW9uYWxzLgot
ICAgICAgICBUaGUgdmFsdWUgd2Ugc2V0IGFzIHRoZSBkZWZhdWx0IGlzIHRoZSBtYXhpbXVtIHRo
ZSBjdXJyZW50IGRlZmF1bHQgb3Igb25lIG1vcmUgdGhhbiB0aGUKLSAgICAgICAgbnVtYmVyIG9m
IGFzc2VydHMgd2Ugc2F3IGluIGFueSBjb25maWd1cmF0aW9uLiIiIgotICAgICAgICAjIEN1cnJl
bnQgdmFsdWVzCi0gICAgICAgIHZhbHVlcyA9IFtdCi0gICAgICAgIGN1cnJlbnRfZGVmYXVsdCA9
IE5vbmUKLSAgICAgICAgaWYgc2VsZi5wcm9wZXJ0eV9uYW1lIGluIHNlbGYubm9kZS5fZGF0YToK
LSAgICAgICAgICAgIGN1cnJlbnRfZGVmYXVsdCA9IFtpdGVtIGZvciBpdGVtIGluCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5ub2RlLl9kYXRhW3NlbGYucHJvcGVydHlfbmFt
ZV0KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiBpdGVtLmNvbmRpdGlvbl9ub2Rl
IGlzIE5vbmVdCi0gICAgICAgICAgICBpZiBjdXJyZW50X2RlZmF1bHQ6Ci0gICAgICAgICAgICAg
ICAgdmFsdWVzLmFwcGVuZChpbnQoY3VycmVudF9kZWZhdWx0WzBdLnZhbHVlKSkKLSAgICAgICAg
dmFsdWVzLmV4dGVuZChpdGVtLnZhbHVlIGZvciBpdGVtIGluIHNlbGYubmV3KQotICAgICAgICB2
YWx1ZXMuZXh0ZW5kKGl0ZW0udmFsdWUgZm9yIGl0ZW0gaW4KLSAgICAgICAgICAgICAgICAgICAg
ICBpdGVydG9vbHMuY2hhaW4uZnJvbV9pdGVyYWJsZShyZXN1bHRzIGZvciBfLCByZXN1bHRzIGlu
IHNlbGYudXBkYXRlZCkpCi0gICAgICAgIG5ld192YWx1ZSA9IG1heCh2YWx1ZXMpCi0gICAgICAg
IHJldHVybiBUcnVlLCBuZXdfdmFsdWUKKyAgICBkZWYgdXBkYXRlZF92YWx1ZShzZWxmLCBjdXJy
ZW50LCBuZXcpOgorICAgICAgICBpZiBhbnkoaXRlbSA+IGN1cnJlbnQgZm9yIGl0ZW0gaW4gbmV3
KToKKyAgICAgICAgICAgIHJldHVybiBtYXgobmV3KSArIDEKKyAgICAgICAgcmV0dXJuIGN1cnJl
bnQKIAogCiBjbGFzcyBNaW5Bc3NlcnRzVXBkYXRlKFByb3BlcnR5VXBkYXRlKToKICAgICBwcm9w
ZXJ0eV9uYW1lID0gIm1pbi1hc3NlcnRzIgogICAgIGNsc19kZWZhdWx0X3ZhbHVlID0gMAogICAg
IHZhbHVlX3R5cGUgPSBpbnQKKyAgICBwcm9wZXJ0eV9idWlsZGVyID0gYnVpbGRfdW5jb25kaXRp
b25hbF90cmVlCisKKyAgICBkZWYgdXBkYXRlZF92YWx1ZShzZWxmLCBjdXJyZW50LCBuZXcpOgor
ICAgICAgICBpZiBhbnkoaXRlbSA8IGN1cnJlbnQgZm9yIGl0ZW0gaW4gbmV3KToKKyAgICAgICAg
ICAgIHJ2ID0gbWluKG5ldykgLSAxCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBydiA9IGN1
cnJlbnQKKyAgICAgICAgcmV0dXJuIG1heChydiwgMCkKKwogCi0gICAgZGVmIHVwZGF0ZV92YWx1
ZShzZWxmLCBvbGRfdmFsdWUsIG5ld192YWx1ZSk6Ci0gICAgICAgIG5ld192YWx1ZSA9IHNlbGYu
dmFsdWVfdHlwZShuZXdfdmFsdWUpCi0gICAgICAgIGlmIG9sZF92YWx1ZSBpcyBub3QgTm9uZToK
LSAgICAgICAgICAgIG9sZF92YWx1ZSA9IHNlbGYudmFsdWVfdHlwZShvbGRfdmFsdWUpCi0gICAg
ICAgIGlmIG9sZF92YWx1ZSBpcyBub3QgTm9uZSBhbmQgbmV3X3ZhbHVlIDwgb2xkX3ZhbHVlOgot
ICAgICAgICAgICAgcmV0dXJuIDAKLSAgICAgICAgaWYgb2xkX3ZhbHVlIGlzIE5vbmU6Ci0gICAg
ICAgICAgICAjIElmIHdlIGFyZSBnZXR0aW5nIHNvbWUgYXNzZXJ0cyBmb3IgdGhlIGZpcnN0IHRp
bWUsIHNldCB0aGUgbWluaW11bSB0byAwCi0gICAgICAgICAgICByZXR1cm4gbmV3X3ZhbHVlCi0g
ICAgICAgIHJldHVybiBvbGRfdmFsdWUKLQotICAgIGRlZiB1cGRhdGVfZGVmYXVsdChzZWxmKToK
LSAgICAgICAgIiIiRm9yIGFzc2VydHMgd2UgYWx3YXlzIHVwZGF0ZSB0aGUgZGVmYXVsdCB2YWx1
ZSBhbmQgbmV2ZXIgYWRkIG5ldyBjb25kaXRpb25hbHMuCi0gICAgICAgIFRoaXMgaXMgZWl0aGVy
IHNldCB0byB0aGUgY3VycmVudCB2YWx1ZSBvciBvbmUgbGVzcyB0aGFuIHRoZSBudW1iZXIgb2Yg
YXNzZXJ0cwotICAgICAgICB3ZSBzYXcsIHdoaWNoZXZlciBpcyBsb3dlci4iIiIKLSAgICAgICAg
dmFsdWVzID0gW10KLSAgICAgICAgY3VycmVudF9kZWZhdWx0ID0gTm9uZQotICAgICAgICBpZiBz
ZWxmLnByb3BlcnR5X25hbWUgaW4gc2VsZi5ub2RlLl9kYXRhOgotICAgICAgICAgICAgY3VycmVu
dF9kZWZhdWx0ID0gW2l0ZW0gZm9yIGl0ZW0gaW4KLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBzZWxmLm5vZGUuX2RhdGFbc2VsZi5wcm9wZXJ0eV9uYW1lXQotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGlmIGl0ZW0uY29uZGl0aW9uX25vZGUgaXMgTm9uZV0KLSAgICAgICAg
aWYgY3VycmVudF9kZWZhdWx0OgotICAgICAgICAgICAgdmFsdWVzLmFwcGVuZChjdXJyZW50X2Rl
ZmF1bHRbMF0udmFsdWVfYXMoc2VsZi52YWx1ZV90eXBlKSkKLSAgICAgICAgdmFsdWVzLmV4dGVu
ZChtYXgoMCwgaXRlbS52YWx1ZSkgZm9yIGl0ZW0gaW4gc2VsZi5uZXcpCi0gICAgICAgIHZhbHVl
cy5leHRlbmQobWF4KDAsIGl0ZW0udmFsdWUpIGZvciBpdGVtIGluCi0gICAgICAgICAgICAgICAg
ICAgICAgaXRlcnRvb2xzLmNoYWluLmZyb21faXRlcmFibGUocmVzdWx0cyBmb3IgXywgcmVzdWx0
cyBpbiBzZWxmLnVwZGF0ZWQpKQotICAgICAgICBuZXdfdmFsdWUgPSBtaW4odmFsdWVzKQotICAg
ICAgICByZXR1cm4gVHJ1ZSwgbmV3X3ZhbHVlCi0KLQotY2xhc3MgTHNhblVwZGF0ZShQcm9wZXJ0
eVVwZGF0ZSk6CitjbGFzcyBBcHBlbmRPbmx5TGlzdFVwZGF0ZShQcm9wZXJ0eVVwZGF0ZSk6Cisg
ICAgY2xzX2RlZmF1bHRfdmFsdWUgPSBbXQorICAgIHByb3BlcnR5X2J1aWxkZXIgPSBidWlsZF91
bmNvbmRpdGlvbmFsX3RyZWUKKworICAgIGRlZiB1cGRhdGVkX3ZhbHVlKHNlbGYsIGN1cnJlbnQs
IG5ldyk6CisgICAgICAgIGlmIGN1cnJlbnQgaXMgTm9uZToKKyAgICAgICAgICAgIHJ2ID0gc2V0
KCkKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHJ2ID0gc2V0KGN1cnJlbnQpCisKKyAgICAg
ICAgZm9yIGl0ZW0gaW4gbmV3OgorICAgICAgICAgICAgaWYgaXRlbSBpcyBOb25lOgorICAgICAg
ICAgICAgICAgIGNvbnRpbnVlCisgICAgICAgICAgICBlbGlmIGlzaW5zdGFuY2UoaXRlbSwgKHN0
ciwgdW5pY29kZSkpOgorICAgICAgICAgICAgICAgIHJ2LmFkZChpdGVtKQorICAgICAgICAgICAg
ZWxzZToKKyAgICAgICAgICAgICAgICBydiB8PSBpdGVtCisKKyAgICAgICAgcmV0dXJuIHNvcnRl
ZChydikKKworCitjbGFzcyBMc2FuVXBkYXRlKEFwcGVuZE9ubHlMaXN0VXBkYXRlKToKICAgICBw
cm9wZXJ0eV9uYW1lID0gImxzYW4tYWxsb3dlZCIKLSAgICBjbHNfZGVmYXVsdF92YWx1ZSA9IE5v
bmUKKyAgICBwcm9wZXJ0eV9idWlsZGVyID0gYnVpbGRfdW5jb25kaXRpb25hbF90cmVlCiAKLSAg
ICBkZWYgZ2V0X3ZhbHVlKHNlbGYsIHJlc3VsdCk6CisgICAgZGVmIGZyb21fcmVzdWx0X3ZhbHVl
KHNlbGYsIHJlc3VsdCk6CiAgICAgICAgICMgSWYgd2UgaGF2ZSBhbiBhbGxvd2VkX21hdGNoIHRo
YXQgbWF0Y2hlZCwgcmV0dXJuIE5vbmUKICAgICAgICAgIyBUaGlzIHZhbHVlIGlzIGlnbm9yZWQg
bGF0ZXIgKGJlY2F1c2UgaXQgbWF0Y2hlcyB0aGUgZGVmYXVsdCkKICAgICAgICAgIyBXZSBkbyB0
aGF0IGJlY2F1c2UgdGhlbiBpZiB3ZSBhbGxvdyBhIGZhaWx1cmUgaW4gZm9vL19fZGlyX18uaW5p
CkBAIC01MTYsOTQgKzc5Nyw2NSBAQCBjbGFzcyBMc2FuVXBkYXRlKFByb3BlcnR5VXBkYXRlKToK
ICAgICAgICAgIyBUT0RPOiB0aGVyZSBpcyBwcm9iYWJseSBzb21lIGltcHJvdmVtZW50IHRvIGJl
IG1hZGUgYnkgbG9va2luZyBmb3IgYSAiYmV0dGVyIiBzdGFjayBmcmFtZQogICAgICAgICByZXR1
cm4gcmVzdWx0WzBdWzBdCiAKLSAgICBkZWYgdXBkYXRlX3ZhbHVlKHNlbGYsIG9sZF92YWx1ZSwg
bmV3X3ZhbHVlKToKLSAgICAgICAgaWYgaXNpbnN0YW5jZShuZXdfdmFsdWUsIChzdHIsIHVuaWNv
ZGUpKToKLSAgICAgICAgICAgIG5ld192YWx1ZSA9IHtuZXdfdmFsdWV9Ci0gICAgICAgIGVsc2U6
Ci0gICAgICAgICAgICBuZXdfdmFsdWUgPSBzZXQobmV3X3ZhbHVlKQotICAgICAgICBpZiBvbGRf
dmFsdWUgaXMgTm9uZToKLSAgICAgICAgICAgIG9sZF92YWx1ZSA9IHNldCgpCi0gICAgICAgIG9s
ZF92YWx1ZSA9IHNldChvbGRfdmFsdWUpCi0gICAgICAgIHJldHVybiBzb3J0ZWQoKG9sZF92YWx1
ZSB8IG5ld192YWx1ZSkgLSB7Tm9uZX0pCi0KLSAgICBkZWYgdXBkYXRlX2RlZmF1bHQoc2VsZik6
Ci0gICAgICAgIGN1cnJlbnRfZGVmYXVsdCA9IE5vbmUKLSAgICAgICAgaWYgc2VsZi5wcm9wZXJ0
eV9uYW1lIGluIHNlbGYubm9kZS5fZGF0YToKLSAgICAgICAgICAgIGN1cnJlbnRfZGVmYXVsdCA9
IFtpdGVtIGZvciBpdGVtIGluCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5u
b2RlLl9kYXRhW3NlbGYucHJvcGVydHlfbmFtZV0KLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBpZiBpdGVtLmNvbmRpdGlvbl9ub2RlIGlzIE5vbmVdCi0gICAgICAgIGlmIGN1cnJlbnRf
ZGVmYXVsdDoKLSAgICAgICAgICAgIGN1cnJlbnRfZGVmYXVsdCA9IGN1cnJlbnRfZGVmYXVsdFsw
XS52YWx1ZQotICAgICAgICBuZXdfdmFsdWVzID0gW2l0ZW0udmFsdWUgZm9yIGl0ZW0gaW4gc2Vs
Zi5uZXddCi0gICAgICAgIG5ld192YWx1ZSA9IHNlbGYudXBkYXRlX3ZhbHVlKGN1cnJlbnRfZGVm
YXVsdCwgbmV3X3ZhbHVlcykKLSAgICAgICAgcmV0dXJuIFRydWUsIG5ld192YWx1ZSBpZiBuZXdf
dmFsdWUgZWxzZSBOb25lCi0KLQotZGVmIGdyb3VwX2NvbmRpdGlvbmFscyh2YWx1ZXMsIHByb3Bl
cnR5X29yZGVyPU5vbmUsIGJvb2xlYW5fcHJvcGVydGllcz1Ob25lKToKLSAgICAiIiJHaXZlbiBh
IGxpc3Qgb2YgVmFsdWUgb2JqZWN0cywgcmV0dXJuIGEgbGlzdCBvZgotICAgIChjb25kaXRpb25h
bF9ub2RlLCBzdGF0dXMpIHBhaXJzIHJlcHJlc2VudGluZyB0aGUgY29uZGl0aW9uYWwKLSAgICBl
eHByZXNzaW9ucyB0aGF0IGFyZSByZXF1aXJlZCB0byBtYXRjaCBlYWNoIHN0YXR1cwotCi0gICAg
OnBhcmFtIHZhbHVlczogTGlzdCBvZiBWYWx1ZXMKLSAgICA6cGFyYW0gcHJvcGVydHlfb3JkZXI6
IExpc3Qgb2YgcHJvcGVydGllcyB0byB1c2UgaW4gZXhwZWN0YXRpb24gbWV0YWRhdGEKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGZyb20gbW9zdCB0byBsZWFzdCBzaWduaWZpY2FudC4KLSAg
ICA6cGFyYW0gYm9vbGVhbl9wcm9wZXJ0aWVzOiBTZXQgb2YgcHJvcGVydGllcyBpbiBwcm9wZXJ0
eV9vcmRlciB0aGF0IHNob3VsZAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJlIHRy
ZWF0ZWQgYXMgYm9vbGVhbi4iIiIKLQotICAgIGJ5X3Byb3BlcnR5ID0gZGVmYXVsdGRpY3Qoc2V0
KQotICAgIGZvciBydW5faW5mbywgdmFsdWUgaW4gdmFsdWVzOgotICAgICAgICBmb3IgcHJvcF9u
YW1lLCBwcm9wX3ZhbHVlIGluIHJ1bl9pbmZvLml0ZXJpdGVtcygpOgotICAgICAgICAgICAgYnlf
cHJvcGVydHlbKHByb3BfbmFtZSwgcHJvcF92YWx1ZSldLmFkZCh2YWx1ZSkKLQotICAgIGlmIHBy
b3BlcnR5X29yZGVyIGlzIE5vbmU6Ci0gICAgICAgIHByb3BlcnR5X29yZGVyID0gWyJkZWJ1ZyIs
ICJvcyIsICJ2ZXJzaW9uIiwgInByb2Nlc3NvciIsICJiaXRzIl0KLQotICAgIGlmIGJvb2xlYW5f
cHJvcGVydGllcyBpcyBOb25lOgotICAgICAgICBib29sZWFuX3Byb3BlcnRpZXMgPSBzZXQoWyJk
ZWJ1ZyJdKQotICAgIGVsc2U6Ci0gICAgICAgIGJvb2xlYW5fcHJvcGVydGllcyA9IHNldChib29s
ZWFuX3Byb3BlcnRpZXMpCi0KLSAgICAjIElmIHdlIGhhdmUgbW9yZSB0aGFuIG9uZSB2YWx1ZSwg
cmVtb3ZlIGFueSBwcm9wZXJ0aWVzIHRoYXQgYXJlIGNvbW1vbgotICAgICMgZm9yIGFsbCB0aGUg
dmFsdWVzCi0gICAgaWYgbGVuKHZhbHVlcykgPiAxOgotICAgICAgICBmb3Iga2V5LCBzdGF0dXNl
cyBpbiBieV9wcm9wZXJ0eS5jb3B5KCkuaXRlcml0ZW1zKCk6Ci0gICAgICAgICAgICBpZiBsZW4o
c3RhdHVzZXMpID09IGxlbih2YWx1ZXMpOgotICAgICAgICAgICAgICAgIGRlbCBieV9wcm9wZXJ0
eVtrZXldCi0gICAgICAgIGlmIG5vdCBieV9wcm9wZXJ0eToKLSAgICAgICAgICAgIHJhaXNlIENv
bmRpdGlvbkVycm9yCisgICAgZGVmIHRvX2luaV92YWx1ZShzZWxmLCB2YWx1ZSk6CisgICAgICAg
IHJldHVybiB2YWx1ZQorCiAKLSAgICBwcm9wZXJ0aWVzID0gc2V0KGl0ZW1bMF0gZm9yIGl0ZW0g
aW4gYnlfcHJvcGVydHkuaXRlcmtleXMoKSkKLSAgICBpbmNsdWRlX3Byb3BzID0gW10KK2NsYXNz
IExlYWtPYmplY3RVcGRhdGUoQXBwZW5kT25seUxpc3RVcGRhdGUpOgorICAgIHByb3BlcnR5X25h
bWUgPSAibGVhay1hbGxvd2VkIgorICAgIHByb3BlcnR5X2J1aWxkZXIgPSBidWlsZF91bmNvbmRp
dGlvbmFsX3RyZWUKIAotICAgIGZvciBwcm9wIGluIHByb3BlcnR5X29yZGVyOgotICAgICAgICBp
ZiBwcm9wIGluIHByb3BlcnRpZXM6Ci0gICAgICAgICAgICBpbmNsdWRlX3Byb3BzLmFwcGVuZChw
cm9wKQorICAgIGRlZiBmcm9tX3Jlc3VsdF92YWx1ZShzZWxmLCByZXN1bHQpOgorICAgICAgICAj
IElmIHdlIGhhdmUgYW4gYWxsb3dlZF9tYXRjaCB0aGF0IG1hdGNoZWQsIHJldHVybiBOb25lCisg
ICAgICAgIGlmIHJlc3VsdFsxXToKKyAgICAgICAgICAgIHJldHVybiBOb25lCisgICAgICAgICMg
T3RoZXJ3aXNlIHJldHVybiB0aGUgcHJvY2Vzcy9vYmplY3QgbmFtZQorICAgICAgICByZXR1cm4g
cmVzdWx0WzBdCiAKLSAgICBjb25kaXRpb25zID0ge30KIAotICAgIGZvciBydW5faW5mbywgdmFs
dWUgaW4gdmFsdWVzOgotICAgICAgICBwcm9wX3NldCA9IHR1cGxlKChwcm9wLCBydW5faW5mb1tw
cm9wXSkgZm9yIHByb3AgaW4gaW5jbHVkZV9wcm9wcykKLSAgICAgICAgaWYgcHJvcF9zZXQgaW4g
Y29uZGl0aW9uczoKLSAgICAgICAgICAgIGlmIGNvbmRpdGlvbnNbcHJvcF9zZXRdWzFdICE9IHZh
bHVlOgotICAgICAgICAgICAgICAgICMgQSBwcm9wX3NldCBjb250YWlucyBjb250cmFkaWN0b3J5
IHJlc3VsdHMKLSAgICAgICAgICAgICAgICByYWlzZSBDb25kaXRpb25FcnJvcihtYWtlX2V4cHIo
cHJvcF9zZXQsIHZhbHVlLCBib29sZWFuX3Byb3BlcnRpZXMpKQotICAgICAgICAgICAgY29udGlu
dWUKK2NsYXNzIExlYWtUaHJlc2hvbGRVcGRhdGUoUHJvcGVydHlVcGRhdGUpOgorICAgIHByb3Bl
cnR5X25hbWUgPSAibGVhay10aHJlc2hvbGQiCisgICAgY2xzX2RlZmF1bHRfdmFsdWUgPSB7fQor
ICAgIHByb3BlcnR5X2J1aWxkZXIgPSBidWlsZF91bmNvbmRpdGlvbmFsX3RyZWUKIAotICAgICAg
ICBleHByID0gbWFrZV9leHByKHByb3Bfc2V0LCB2YWx1ZSwgYm9vbGVhbl9wcm9wZXJ0aWVzPWJv
b2xlYW5fcHJvcGVydGllcykKLSAgICAgICAgY29uZGl0aW9uc1twcm9wX3NldF0gPSAoZXhwciwg
dmFsdWUpCisgICAgZGVmIGZyb21fcmVzdWx0X3ZhbHVlKHNlbGYsIHJlc3VsdCk6CisgICAgICAg
IHJldHVybiByZXN1bHQKIAotICAgIHJldHVybiBjb25kaXRpb25zLnZhbHVlcygpCisgICAgZGVm
IHRvX2luaV92YWx1ZShzZWxmLCBkYXRhKToKKyAgICAgICAgcmV0dXJuIFsiJXM6JXMiICUgaXRl
bSBmb3IgaXRlbSBpbiBzb3J0ZWQoaXRlcml0ZW1zKGRhdGEpKV0KIAorICAgIGRlZiBmcm9tX2lu
aV92YWx1ZShzZWxmLCBkYXRhKToKKyAgICAgICAgcnYgPSB7fQorICAgICAgICBmb3IgaXRlbSBp
biBkYXRhOgorICAgICAgICAgICAga2V5LCB2YWx1ZSA9IGl0ZW0uc3BsaXQoIjoiLCAxKQorICAg
ICAgICAgICAgcnZba2V5XSA9IGludChmbG9hdCh2YWx1ZSkpCisgICAgICAgIHJldHVybiBydgog
Ci1kZWYgbWFrZV9leHByKHByb3Bfc2V0LCByaHMsIGJvb2xlYW5fcHJvcGVydGllcz1Ob25lKToK
KyAgICBkZWYgdXBkYXRlZF92YWx1ZShzZWxmLCBjdXJyZW50LCBuZXcpOgorICAgICAgICBpZiBj
dXJyZW50OgorICAgICAgICAgICAgcnYgPSBjdXJyZW50LmNvcHkoKQorICAgICAgICBlbHNlOgor
ICAgICAgICAgICAgcnYgPSB7fQorICAgICAgICBmb3IgcHJvY2VzcywgbGVha2VkX2J5dGVzLCB0
aHJlc2hvbGQgaW4gbmV3OgorICAgICAgICAgICAgIyBJZiB0aGUgdmFsdWUgaXMgbGVzcyB0aGFu
IHRoZSB0aHJlc2hvbGQgYnV0IHRoZXJlIGlzbid0CisgICAgICAgICAgICAjIGFuIG9sZCB2YWx1
ZSB3ZSBtdXN0IGhhdmUgaW5oZXJpdGVkIHRoZSB0aHJlc2hvbGQgZnJvbQorICAgICAgICAgICAg
IyBhIHBhcmVudCBpbmkgZmlsZSBzbyBkb24ndCBhbnkgYW55dGhpbmcgdG8gdGhpcyBvbmUKKyAg
ICAgICAgICAgIGlmIHByb2Nlc3Mgbm90IGluIHJ2IGFuZCBsZWFrZWRfYnl0ZXMgPCB0aHJlc2hv
bGQ6CisgICAgICAgICAgICAgICAgY29udGludWUKKyAgICAgICAgICAgIGlmIGxlYWtlZF9ieXRl
cyA+IHJ2LmdldChwcm9jZXNzLCAwKToKKyAgICAgICAgICAgICAgICAjIFJvdW5kIHVwIHRvIG5l
YXJlc3QgNTAga2IKKyAgICAgICAgICAgICAgICBib3VuZGFyeSA9IDUwICogMTAyNAorICAgICAg
ICAgICAgICAgIHJ2W3Byb2Nlc3NdID0gaW50KGJvdW5kYXJ5ICogY2VpbChmbG9hdChsZWFrZWRf
Ynl0ZXMpIC8gYm91bmRhcnkpKQorICAgICAgICByZXR1cm4gcnYKKworCitkZWYgbWFrZV9leHBy
KHByb3Bfc2V0LCByaHMpOgogICAgICIiIkNyZWF0ZSBhbiBBU1QgdGhhdCByZXR1cm5zIHRoZSB2
YWx1ZSBgYHN0YXR1c2BgIGdpdmVuIGFsbCB0aGUKICAgICBwcm9wZXJ0aWVzIGluIHByb3Bfc2V0
IG1hdGNoLgogCiAgICAgOnBhcmFtIHByb3Bfc2V0OiB0dXBsZSBvZiAocHJvcGVydHkgbmFtZSwg
dmFsdWUpIHBhaXJzIGZvciBlYWNoCiAgICAgICAgICAgICAgICAgICAgICBwcm9wZXJ0eSBpbiB0
aGlzIGV4cHJlc3Npb24gYW5kIHRoZSB2YWx1ZSBpdCBtdXN0IG1hdGNoCiAgICAgOnBhcmFtIHN0
YXR1czogU3RhdHVzIG9uIFJIUyB3aGVuIGFsbCB0aGUgZ2l2ZW4gcHJvcGVydGllcyBtYXRjaAot
ICAgIDpwYXJhbSBib29sZWFuX3Byb3BlcnRpZXM6IFNldCBvZiBwcm9wZXJ0aWVzIGluIHByb3Bl
cnR5X29yZGVyIHRoYXQgc2hvdWxkCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmUg
dHJlYXRlZCBhcyBib29sZWFuLgogICAgICIiIgogICAgIHJvb3QgPSBDb25kaXRpb25hbE5vZGUo
KQogCkBAIC02MTEsMTcgKzg2MywxMiBAQCBkZWYgbWFrZV9leHByKHByb3Bfc2V0LCByaHMsIGJv
b2xlYW5fcHJvcGVydGllcz1Ob25lKToKIAogICAgIGV4cHJlc3Npb25zID0gW10KICAgICBmb3Ig
cHJvcCwgdmFsdWUgaW4gcHJvcF9zZXQ6Ci0gICAgICAgIG51bWJlcl90eXBlcyA9IChpbnQsIGZs
b2F0LCBsb25nKQotICAgICAgICB2YWx1ZV9jbHMgPSAoTnVtYmVyTm9kZQotICAgICAgICAgICAg
ICAgICAgICAgaWYgdHlwZSh2YWx1ZSkgaW4gbnVtYmVyX3R5cGVzCi0gICAgICAgICAgICAgICAg
ICAgICBlbHNlIFN0cmluZ05vZGUpCi0gICAgICAgIGlmIHByb3Agbm90IGluIGJvb2xlYW5fcHJv
cGVydGllczoKKyAgICAgICAgaWYgdmFsdWUgbm90IGluIChUcnVlLCBGYWxzZSk6CiAgICAgICAg
ICAgICBleHByZXNzaW9ucy5hcHBlbmQoCiAgICAgICAgICAgICAgICAgQmluYXJ5RXhwcmVzc2lv
bk5vZGUoCiAgICAgICAgICAgICAgICAgICAgIEJpbmFyeU9wZXJhdG9yTm9kZSgiPT0iKSwKICAg
ICAgICAgICAgICAgICAgICAgVmFyaWFibGVOb2RlKHByb3ApLAotICAgICAgICAgICAgICAgICAg
ICB2YWx1ZV9jbHModW5pY29kZSh2YWx1ZSkpCi0gICAgICAgICAgICAgICAgKSkKKyAgICAgICAg
ICAgICAgICAgICAgbWFrZV9ub2RlKHZhbHVlKSkpCiAgICAgICAgIGVsc2U6CiAgICAgICAgICAg
ICBpZiB2YWx1ZToKICAgICAgICAgICAgICAgICBleHByZXNzaW9ucy5hcHBlbmQoVmFyaWFibGVO
b2RlKHByb3ApKQpAQCAtNjQzLDQxICs4OTAsNjAgQEAgZGVmIG1ha2VfZXhwcihwcm9wX3NldCwg
cmhzLCBib29sZWFuX3Byb3BlcnRpZXM9Tm9uZSk6CiAgICAgICAgIG5vZGUgPSBleHByZXNzaW9u
c1swXQogCiAgICAgcm9vdC5hcHBlbmQobm9kZSkKLSAgICBpZiB0eXBlKHJocykgaW4gbnVtYmVy
X3R5cGVzOgotICAgICAgICByaHNfbm9kZSA9IE51bWJlck5vZGUocmhzKQotICAgIGVsc2U6Ci0g
ICAgICAgIHJoc19ub2RlID0gU3RyaW5nTm9kZShyaHMpCisgICAgcmhzX25vZGUgPSBtYWtlX3Zh
bHVlX25vZGUocmhzKQogICAgIHJvb3QuYXBwZW5kKHJoc19ub2RlKQogCiAgICAgcmV0dXJuIHJv
b3QKIAogCi1kZWYgZ2V0X21hbmlmZXN0KG1ldGFkYXRhX3Jvb3QsIHRlc3RfcGF0aCwgdXJsX2Jh
c2UsIHByb3BlcnR5X29yZGVyPU5vbmUsCi0gICAgICAgICAgICAgICAgIGJvb2xlYW5fcHJvcGVy
dGllcz1Ob25lKToKK2RlZiBtYWtlX25vZGUodmFsdWUpOgorICAgIGlmIHR5cGUodmFsdWUpIGlu
IChpbnQsIGZsb2F0LCBsb25nKToKKyAgICAgICAgbm9kZSA9IE51bWJlck5vZGUodmFsdWUpCisg
ICAgZWxpZiB0eXBlKHZhbHVlKSBpbiAoc3RyLCB1bmljb2RlKToKKyAgICAgICAgbm9kZSA9IFN0
cmluZ05vZGUodW5pY29kZSh2YWx1ZSkpCisgICAgZWxpZiBoYXNhdHRyKHZhbHVlLCAiX19pdGVy
X18iKToKKyAgICAgICAgbm9kZSA9IExpc3ROb2RlKCkKKyAgICAgICAgZm9yIGl0ZW0gaW4gdmFs
dWU6CisgICAgICAgICAgICBub2RlLmFwcGVuZChtYWtlX25vZGUoaXRlbSkpCisgICAgcmV0dXJu
IG5vZGUKKworCitkZWYgbWFrZV92YWx1ZV9ub2RlKHZhbHVlKToKKyAgICBpZiB0eXBlKHZhbHVl
KSBpbiAoaW50LCBmbG9hdCwgbG9uZyk6CisgICAgICAgIG5vZGUgPSBWYWx1ZU5vZGUodmFsdWUp
CisgICAgZWxpZiB0eXBlKHZhbHVlKSBpbiAoc3RyLCB1bmljb2RlKToKKyAgICAgICAgbm9kZSA9
IFZhbHVlTm9kZSh1bmljb2RlKHZhbHVlKSkKKyAgICBlbGlmIGhhc2F0dHIodmFsdWUsICJfX2l0
ZXJfXyIpOgorICAgICAgICBub2RlID0gTGlzdE5vZGUoKQorICAgICAgICBmb3IgaXRlbSBpbiB2
YWx1ZToKKyAgICAgICAgICAgIG5vZGUuYXBwZW5kKG1ha2Vfbm9kZShpdGVtKSkKKyAgICBlbHNl
OgorICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJEb24ndCBrbm93IGhvdyB0byBjb252ZXJ0ICVz
IGludG8gbm9kZSIgJSB0eXBlKHZhbHVlKSkKKyAgICByZXR1cm4gbm9kZQorCisKK2RlZiBnZXRf
bWFuaWZlc3QobWV0YWRhdGFfcm9vdCwgdGVzdF9wYXRoLCB1cmxfYmFzZSwgcnVuX2luZm9fcHJv
cGVydGllcywgdXBkYXRlX2ludGVybWl0dGVudCwgcmVtb3ZlX2ludGVybWl0dGVudCk6CiAgICAg
IiIiR2V0IHRoZSBFeHBlY3RlZE1hbmlmZXN0IGZvciBhIHBhcnRpY3VsYXIgdGVzdCBwYXRoLCBv
ciBOb25lIGlmIHRoZXJlIGlzIG5vCiAgICAgbWV0YWRhdGEgc3RvcmVkIGZvciB0aGF0IHRlc3Qg
cGF0aC4KIAogICAgIDpwYXJhbSBtZXRhZGF0YV9yb290OiBBYnNvbHV0ZSBwYXRoIHRvIHRoZSBy
b290IG9mIHRoZSBtZXRhZGF0YSBkaXJlY3RvcnkKICAgICA6cGFyYW0gdGVzdF9wYXRoOiBQYXRo
IHRvIHRoZSB0ZXN0KHMpIHJlbGF0aXZlIHRvIHRoZSB0ZXN0IHJvb3QKLSAgICA6cGFyYW0gdXJs
X2Jhc2U6IEJhc2UgdXJsIGZvciBzZXJ2aW5nIHRoZSB0ZXN0cyBpbiB0aGlzIG1hbmlmZXN0Ci0g
ICAgOnBhcmFtIHByb3BlcnR5X29yZGVyOiBMaXN0IG9mIHByb3BlcnRpZXMgdG8gdXNlIGluIGV4
cGVjdGF0aW9uIG1ldGFkYXRhCi0gICAgICAgICAgICAgICAgICAgICAgICAgICBmcm9tIG1vc3Qg
dG8gbGVhc3Qgc2lnbmlmaWNhbnQuCi0gICAgOnBhcmFtIGJvb2xlYW5fcHJvcGVydGllczogU2V0
IG9mIHByb3BlcnRpZXMgaW4gcHJvcGVydHlfb3JkZXIgdGhhdCBzaG91bGQKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBiZSB0cmVhdGVkIGFzIGJvb2xlYW4uIiIiCisgICAgOnBhcmFt
IHVybF9iYXNlOiBCYXNlIHVybCBmb3Igc2VydmluZyB0aGUgdGVzdHMgaW4gdGhpcyBtYW5pZmVz
dCIiIgogICAgIG1hbmlmZXN0X3BhdGggPSBleHBlY3RlZC5leHBlY3RlZF9wYXRoKG1ldGFkYXRh
X3Jvb3QsIHRlc3RfcGF0aCkKICAgICB0cnk6CiAgICAgICAgIHdpdGggb3BlbihtYW5pZmVzdF9w
YXRoKSBhcyBmOgotICAgICAgICAgICAgcmV0dXJuIGNvbXBpbGUoZiwgdGVzdF9wYXRoLCB1cmxf
YmFzZSwgcHJvcGVydHlfb3JkZXI9cHJvcGVydHlfb3JkZXIsCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICBib29sZWFuX3Byb3BlcnRpZXM9Ym9vbGVhbl9wcm9wZXJ0aWVzKQorICAgICAgICAg
ICAgcnYgPSBjb21waWxlKGYsIHRlc3RfcGF0aCwgdXJsX2Jhc2UsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgcnVuX2luZm9fcHJvcGVydGllcywgdXBkYXRlX2ludGVybWl0dGVudCwgcmVtb3Zl
X2ludGVybWl0dGVudCkKICAgICBleGNlcHQgSU9FcnJvcjoKICAgICAgICAgcmV0dXJuIE5vbmUK
KyAgICByZXR1cm4gcnYKIAogCi1kZWYgY29tcGlsZShtYW5pZmVzdF9maWxlLCB0ZXN0X3BhdGgs
IHVybF9iYXNlLCBwcm9wZXJ0eV9vcmRlcj1Ob25lLAotICAgICAgICAgICAgYm9vbGVhbl9wcm9w
ZXJ0aWVzPU5vbmUpOgorZGVmIGNvbXBpbGUobWFuaWZlc3RfZmlsZSwgdGVzdF9wYXRoLCB1cmxf
YmFzZSwgcnVuX2luZm9fcHJvcGVydGllcywgdXBkYXRlX2ludGVybWl0dGVudCwgcmVtb3ZlX2lu
dGVybWl0dGVudCk6CiAgICAgcmV0dXJuIGNvbmRpdGlvbmFsLmNvbXBpbGUobWFuaWZlc3RfZmls
ZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhX2Nsc19nZXR0ZXI9ZGF0YV9j
bHNfZ2V0dGVyLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RfcGF0aD10ZXN0
X3BhdGgsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXJsX2Jhc2U9dXJsX2Jhc2Us
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvcGVydHlfb3JkZXI9cHJvcGVydHlf
b3JkZXIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbGVhbl9wcm9wZXJ0aWVz
PWJvb2xlYW5fcHJvcGVydGllcykKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBydW5f
aW5mb19wcm9wZXJ0aWVzPXJ1bl9pbmZvX3Byb3BlcnRpZXMsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgdXBkYXRlX2ludGVybWl0dGVudD11cGRhdGVfaW50ZXJtaXR0ZW50LAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlbW92ZV9pbnRlcm1pdHRlbnQ9cmVtb3ZlX2lu
dGVybWl0dGVudCkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9tZXRhZGF0YS5weSBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dw
dHJ1bm5lci9tZXRhZGF0YS5weQppbmRleCA5NDU2MGNkOTNmZi4uYzMyOGRjZWZhNzIgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
d3B0cnVubmVyL3dwdHJ1bm5lci9tZXRhZGF0YS5weQorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvbWV0YWRh
dGEucHkKQEAgLTEsMTggKzEsMTcgQEAKK2Zyb20gX19mdXR1cmVfXyBpbXBvcnQgcHJpbnRfZnVu
Y3Rpb24KIGltcG9ydCBhcnJheQogaW1wb3J0IG9zCi1pbXBvcnQgc2h1dGlsCi1pbXBvcnQgdGVt
cGZpbGUKLWltcG9ydCB1dWlkCiBmcm9tIGNvbGxlY3Rpb25zIGltcG9ydCBkZWZhdWx0ZGljdCwg
bmFtZWR0dXBsZQogCiBmcm9tIG1vemxvZyBpbXBvcnQgc3RydWN0dXJlZGxvZwotCi1pbXBvcnQg
bWFuaWZlc3R1cGRhdGUKLWltcG9ydCB0ZXN0bG9hZGVyCi1pbXBvcnQgd3B0bWFuaWZlc3QKLWlt
cG9ydCB3cHR0ZXN0Ci1mcm9tIGV4cGVjdGVkIGltcG9ydCBleHBlY3RlZF9wYXRoCi1mcm9tIHZj
cyBpbXBvcnQgZ2l0Citmcm9tIHNpeC5tb3ZlcyBpbXBvcnQgaW50ZXJuCisKK2Zyb20gLiBpbXBv
cnQgbWFuaWZlc3R1cGRhdGUKK2Zyb20gLiBpbXBvcnQgdGVzdGxvYWRlcgorZnJvbSAuIGltcG9y
dCB3cHRtYW5pZmVzdAorZnJvbSAuIGltcG9ydCB3cHR0ZXN0Citmcm9tIC5leHBlY3RlZCBpbXBv
cnQgZXhwZWN0ZWRfcGF0aAorZnJvbSAudmNzIGltcG9ydCBnaXQKIG1hbmlmZXN0ID0gTm9uZSAg
IyBNb2R1bGUgdGhhdCB3aWxsIGJlIGltcG9ydGVkIHJlbGF0aXZlIHRvIHRlc3Rfcm9vdAogbWFu
aWZlc3RpdGVtID0gTm9uZQogCkBAIC0yNCwzNyArMjMsNzMgQEAgZXhjZXB0IEltcG9ydEVycm9y
OgogICAgIGltcG9ydCBqc29uCiAKIAorY2xhc3MgUnVuSW5mbyhvYmplY3QpOgorICAgICIiIkEg
d3JhcHBlciBhcm91bmQgUnVuSW5mbyBkaWN0cyBzbyB0aGF0IHRoZXkgY2FuIGJlIGhhc2hlZCBi
eSBpZGVudGl0eSIiIgorCisgICAgZGVmIF9faW5pdF9fKHNlbGYsIGRpY3RfdmFsdWUpOgorICAg
ICAgICBzZWxmLmRhdGEgPSBkaWN0X3ZhbHVlCisgICAgICAgIHNlbGYuY2Fub25pY2FsX3JlcHIg
PSB0dXBsZSh0dXBsZShpdGVtKSBmb3IgaXRlbSBpbiBzb3J0ZWQoZGljdF92YWx1ZS5pdGVtcygp
KSkKKworICAgIGRlZiBfX2dldGl0ZW1fXyhzZWxmLCBrZXkpOgorICAgICAgICByZXR1cm4gc2Vs
Zi5kYXRhW2tleV0KKworICAgIGRlZiBfX3NldGl0ZW1fXyhzZWxmLCBrZXksIHZhbHVlKToKKyAg
ICAgICAgcmFpc2UgVHlwZUVycm9yCisKKyAgICBkZWYgX19oYXNoX18oc2VsZik6CisgICAgICAg
IHJldHVybiBoYXNoKHNlbGYuY2Fub25pY2FsX3JlcHIpCisKKyAgICBkZWYgX19lcV9fKHNlbGYs
IG90aGVyKToKKyAgICAgICAgcmV0dXJuIHNlbGYuY2Fub25pY2FsX3JlcHIgPT0gb3RoZXIuY2Fu
b25pY2FsX3JlcHIKKworICAgIGRlZiBpdGVyaXRlbXMoc2VsZik6CisgICAgICAgIGZvciBrZXks
IHZhbHVlIGluIHNlbGYuZGF0YS5pdGVyaXRlbXMoKToKKyAgICAgICAgICAgIHlpZWxkIGtleSwg
dmFsdWUKKworICAgIGRlZiBpdGVtcyhzZWxmKToKKyAgICAgICAgcmV0dXJuIGxpc3Qoc2VsZi5p
dGVyaXRlbXMoKSkKKworCiBkZWYgdXBkYXRlX2V4cGVjdGVkKHRlc3RfcGF0aHMsIHNlcnZlX3Jv
b3QsIGxvZ19maWxlX25hbWVzLAotICAgICAgICAgICAgICAgICAgICByZXZfb2xkPU5vbmUsIHJl
dl9uZXc9IkhFQUQiLCBpZ25vcmVfZXhpc3Rpbmc9RmFsc2UsCi0gICAgICAgICAgICAgICAgICAg
IHN5bmNfcm9vdD1Ob25lLCBwcm9wZXJ0eV9vcmRlcj1Ob25lLCBib29sZWFuX3Byb3BlcnRpZXM9
Tm9uZSwKLSAgICAgICAgICAgICAgICAgICAgc3RhYmlsaXR5PU5vbmUpOgorICAgICAgICAgICAg
ICAgICAgICB1cGRhdGVfcHJvcGVydGllcywgcmV2X29sZD1Ob25lLCByZXZfbmV3PSJIRUFEIiwK
KyAgICAgICAgICAgICAgICAgICAgZnVsbF91cGRhdGU9RmFsc2UsIHN5bmNfcm9vdD1Ob25lLCBk
aXNhYmxlX2ludGVybWl0dGVudD1Ob25lLAorICAgICAgICAgICAgICAgICAgICB1cGRhdGVfaW50
ZXJtaXR0ZW50PUZhbHNlLCByZW1vdmVfaW50ZXJtaXR0ZW50PUZhbHNlKToKICAgICAiIiJVcGRh
dGUgdGhlIG1ldGFkYXRhIGZpbGVzIGZvciB3ZWItcGxhdGZvcm0tdGVzdHMgYmFzZWQgb24KICAg
ICB0aGUgcmVzdWx0cyBvYnRhaW5lZCBpbiBhIHByZXZpb3VzIHJ1biBvciBydW5zCiAKLSAgICBJ
ZiBzdGFiaWxpdHkgaXMgbm90IE5vbmUsIGFzc3VtZSBsb2dfZmlsZV9uYW1lcyByZWZlcnMgdG8g
bG9ncyBmcm9tIHJlcGVhdGVkCi0gICAgdGVzdCBqb2JzLCBkaXNhYmxlIHRlc3RzIHRoYXQgZG9u
J3QgYmVoYXZlIGFzIGV4cGVjdGVkIG9uIGFsbCBydW5zIiIiCisgICAgSWYgYGRpc2FibGVfaW50
ZXJtaXR0ZW50YCBpcyBub3QgTm9uZSwgYXNzdW1lIGxvZ19maWxlX25hbWVzIHJlZmVycyB0byBs
b2dzIGZyb20gcmVwZWF0ZWQKKyAgICB0ZXN0IGpvYnMsIGRpc2FibGUgdGVzdHMgdGhhdCBkb24n
dCBiZWhhdmUgYXMgZXhwZWN0ZWQgb24gYWxsIHJ1bnMKKworICAgIElmIGB1cGRhdGVfaW50ZXJt
aXR0ZW50YCBpcyBUcnVlLCBpbnRlcm1pdHRlbnQgc3RhdHVzZXMgd2lsbCBiZSByZWNvcmRlZCBh
cyBgZXhwZWN0ZWRgIGluCisgICAgdGhlIG1ldGFkYXRhLgorCisgICAgSWYgYHJlbW92ZV9pbnRl
cm1pdHRlbnRgIGlzIFRydWUgYW5kIHVzZWQgaW4gY29uanVuY3Rpb24gd2l0aCBgdXBkYXRlX2lu
dGVybWl0dGVudGAsIGFueQorICAgIGludGVybWl0dGVudCBzdGF0dXNlcyB3aGljaCBhcmUgbm90
IHByZXNlbnQgaW4gdGhlIGN1cnJlbnQgcnVuIHdpbGwgYmUgcmVtb3ZlZCBmcm9tIHRoZQorICAg
IG1ldGFkYXRhLCBlbHNlIHRoZXkgYXJlIGxlZnQgaW4uIiIiCisKICAgICBkb19kZWxheWVkX2lt
cG9ydHMoc2VydmVfcm9vdCkKIAogICAgIGlkX3Rlc3RfbWFwID0gbG9hZF90ZXN0X2RhdGEodGVz
dF9wYXRocykKIAogICAgIGZvciBtZXRhZGF0YV9wYXRoLCB1cGRhdGVkX2luaSBpbiB1cGRhdGVf
ZnJvbV9sb2dzKGlkX3Rlc3RfbWFwLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICpsb2dfZmlsZV9uYW1lcywKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZ25vcmVfZXhpc3Rpbmc9aWdu
b3JlX2V4aXN0aW5nLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHByb3BlcnR5X29yZGVyPXByb3BlcnR5X29yZGVyLAotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2xlYW5fcHJvcGVy
dGllcz1ib29sZWFuX3Byb3BlcnRpZXMsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgc3RhYmlsaXR5PXN0YWJpbGl0eSk6CisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXBkYXRlX3Byb3Bl
cnRpZXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgZGlzYWJsZV9pbnRlcm1pdHRlbnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgdXBkYXRlX2ludGVybWl0dGVudCwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZW1vdmVfaW50
ZXJtaXR0ZW50LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGZ1bGxfdXBkYXRlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICpsb2dfZmlsZV9uYW1lcyk6CiAKICAgICAgICAgd3JpdGVf
bmV3X2V4cGVjdGVkKG1ldGFkYXRhX3BhdGgsIHVwZGF0ZWRfaW5pKQotICAgICAgICBpZiBzdGFi
aWxpdHk6CisgICAgICAgIGlmIGRpc2FibGVfaW50ZXJtaXR0ZW50OgogICAgICAgICAgICAgZm9y
IHRlc3QgaW4gdXBkYXRlZF9pbmkuaXRlcmNoaWxkcmVuKCk6CiAgICAgICAgICAgICAgICAgZm9y
IHN1YnRlc3QgaW4gdGVzdC5pdGVyY2hpbGRyZW4oKToKICAgICAgICAgICAgICAgICAgICAgaWYg
c3VidGVzdC5uZXdfZGlzYWJsZWQ6Ci0gICAgICAgICAgICAgICAgICAgICAgICBwcmludCAiZGlz
YWJsZWQ6ICVzIiAlIG9zLnBhdGguZGlybmFtZShzdWJ0ZXN0LnJvb3QudGVzdF9wYXRoKSArICIv
IiArIHN1YnRlc3QubmFtZQorICAgICAgICAgICAgICAgICAgICAgICAgcHJpbnQoImRpc2FibGVk
OiAlcyIgJSBvcy5wYXRoLmRpcm5hbWUoc3VidGVzdC5yb290LnRlc3RfcGF0aCkgKyAiLyIgKyBz
dWJ0ZXN0Lm5hbWUpCiAgICAgICAgICAgICAgICAgICAgIGlmIHRlc3QubmV3X2Rpc2FibGVkOgot
ICAgICAgICAgICAgICAgICAgICAgICAgcHJpbnQgImRpc2FibGVkOiAlcyIgJSB0ZXN0LnJvb3Qu
dGVzdF9wYXRoCisgICAgICAgICAgICAgICAgICAgICAgICBwcmludCgiZGlzYWJsZWQ6ICVzIiAl
IHRlc3Qucm9vdC50ZXN0X3BhdGgpCiAKIAotZGVmIGRvX2RlbGF5ZWRfaW1wb3J0cyhzZXJ2ZV9y
b290KToKK2RlZiBkb19kZWxheWVkX2ltcG9ydHMoc2VydmVfcm9vdD1Ob25lKToKICAgICBnbG9i
YWwgbWFuaWZlc3QsIG1hbmlmZXN0aXRlbQogICAgIGZyb20gbWFuaWZlc3QgaW1wb3J0IG1hbmlm
ZXN0LCBpdGVtIGFzIG1hbmlmZXN0aXRlbQogCkBAIC0xMTIsNyArMTQ3LDcgQEAgZGVmIHVuZXhw
ZWN0ZWRfY2hhbmdlcyhtYW5pZmVzdHMsIGNoYW5nZV9kYXRhLCBmaWxlc19jaGFuZ2VkKToKICMg
ICBmb3IgZWFjaCBjb25kaXRpb25hbDoKICMgICAgICBJZiBhbGwgdGhlIG5ldyB2YWx1ZXMgbWF0
Y2ggKG9yIHRoZXJlIGFyZW4ndCBhbnkpIHJldGFpbiB0aGF0IGNvbmRpdGlvbmFsCiAjICAgICAg
SWYgYW55IG5ldyB2YWx1ZXMgbWlzbWF0Y2g6Ci0jICAgICAgICAgICBJZiBzdGFiaWxpdHkgYW5k
IGFueSByZXBlYXRlZCB2YWx1ZXMgZG9uJ3QgbWF0Y2gsIGRpc2FibGUgdGhlIHRlc3QKKyMgICAg
ICAgICAgIElmIGRpc2FibGVfaW50ZXJtaXR0ZW50IGFuZCBhbnkgcmVwZWF0ZWQgdmFsdWVzIGRv
bid0IG1hdGNoLCBkaXNhYmxlIHRoZSB0ZXN0CiAjICAgICAgICAgICBlbHNlIG1hcmsgdGhlIHRl
c3QgYXMgbmVlZGluZyBodW1hbiBhdHRlbnRpb24KICMgICBDaGVjayBpZiBhbGwgdGhlIFJIUyB2
YWx1ZXMgYXJlIHRoZSBzYW1lOyBpZiBzbyBjb2xsYXBzZSB0aGUgY29uZGl0aW9uYWxzCiAKQEAg
LTEzOCw2ICsxNzMsOSBAQCBjbGFzcyBJbnRlcm5lZERhdGEob2JqZWN0KToKICAgICAgICAgIyBS
ZXNlcnZlIDAgYXMgYSBzZW50aW5hbAogICAgICAgICBzZWxmLl9kYXRhID0gW05vbmVdLCB7fQog
CisgICAgZGVmIGNsZWFyKHNlbGYpOgorICAgICAgICBzZWxmLl9faW5pdF9fKCkKKwogICAgIGRl
ZiBzdG9yZShzZWxmLCBvYmopOgogICAgICAgICBpZiBzZWxmLnR5cGVfY29udiBpcyBub3QgTm9u
ZToKICAgICAgICAgICAgIG9iaiA9IHNlbGYudHlwZV9jb252KG9iaikKQEAgLTE1OSw2ICsxOTcs
MTAgQEAgY2xhc3MgSW50ZXJuZWREYXRhKG9iamVjdCk6CiAgICAgICAgICAgICBvYmogPSBzZWxm
LnJldl90eXBlX2NvbnYob2JqKQogICAgICAgICByZXR1cm4gb2JqCiAKKyAgICBkZWYgX19pdGVy
X18oc2VsZik6CisgICAgICAgIGZvciBpIGluIHhyYW5nZSgxLCBsZW4oc2VsZi5fZGF0YVswXSkp
OgorICAgICAgICAgICAgeWllbGQgc2VsZi5nZXQoaSkKKwogCiBjbGFzcyBSdW5JbmZvSW50ZXJu
ZWQoSW50ZXJuZWREYXRhKToKICAgICBkZWYgdHlwZV9jb252KHNlbGYsIHZhbHVlKToKQEAgLTE2
OSwxMCArMjExLDQ3IEBAIGNsYXNzIFJ1bkluZm9JbnRlcm5lZChJbnRlcm5lZERhdGEpOgogCiAK
IHByb3BfaW50ZXJuID0gSW50ZXJuZWREYXRhKDQpCi1ydW5faW5mb19pbnRlcm4gPSBSdW5JbmZv
SW50ZXJuZWQoKQorcnVuX2luZm9faW50ZXJuID0gSW50ZXJuZWREYXRhKDgpCiBzdGF0dXNfaW50
ZXJuID0gSW50ZXJuZWREYXRhKDQpCiAKIAorZGVmIHBhY2tfcmVzdWx0KGRhdGEpOgorICAgICMg
QXMgYHN0YXR1c19pbnRlcm5gIG5vcm1hbGx5IGhhbmRsZXMgb25lIHN0YXR1cywgaWYgYGtub3du
X2ludGVybWl0dGVudGAgaXMgcHJlc2VudCBpbgorICAgICMgdGhlIHRlc3QgbG9ncywgaW50ZXJu
IGFuZCBzdG9yZSB0aGlzIHdpdGggdGhlIGBzdGF0dXNgIGluIGFuIGFycmF5IHVudGlsIG5lZWRl
ZC4KKyAgICBpZiBub3QgZGF0YS5nZXQoImtub3duX2ludGVybWl0dGVudCIpOgorICAgICAgICBy
ZXR1cm4gc3RhdHVzX2ludGVybi5zdG9yZShkYXRhLmdldCgic3RhdHVzIikpCisgICAgcmVzdWx0
ID0gYXJyYXkuYXJyYXkoIkIiKQorICAgIGV4cGVjdGVkID0gZGF0YS5nZXQoImV4cGVjdGVkIikK
KyAgICBpZiBleHBlY3RlZCBpcyBOb25lOgorICAgICAgICBleHBlY3RlZCA9IGRhdGFbInN0YXR1
cyJdCisgICAgcmVzdWx0X3BhcnRzID0gW2RhdGFbInN0YXR1cyJdLCBleHBlY3RlZF0gKyBkYXRh
WyJrbm93bl9pbnRlcm1pdHRlbnQiXQorICAgIGZvciBpLCBwYXJ0IGluIGVudW1lcmF0ZShyZXN1
bHRfcGFydHMpOgorICAgICAgICB2YWx1ZSA9IHN0YXR1c19pbnRlcm4uc3RvcmUocGFydCkKKyAg
ICAgICAgaWYgaSAlIDIgPT0gMDoKKyAgICAgICAgICAgIGFzc2VydCB2YWx1ZSA8IDE2CisgICAg
ICAgICAgICByZXN1bHQuYXBwZW5kKHZhbHVlIDw8IDQpCisgICAgICAgIGVsc2U6CisgICAgICAg
ICAgICByZXN1bHRbLTFdICs9IHZhbHVlCisgICAgcmV0dXJuIHJlc3VsdAorCisKK2RlZiB1bnBh
Y2tfcmVzdWx0KGRhdGEpOgorICAgIGlmIGlzaW5zdGFuY2UoZGF0YSwgaW50KToKKyAgICAgICAg
cmV0dXJuIChzdGF0dXNfaW50ZXJuLmdldChkYXRhKSwgTm9uZSkKKyAgICBpZiBpc2luc3RhbmNl
KGRhdGEsIHVuaWNvZGUpOgorICAgICAgICByZXR1cm4gKGRhdGEsIE5vbmUpCisgICAgIyBVbnBh
Y2sgbXVsdGlwbGUgc3RhdHVzZXMgaW50byBhIHR1cGxlIHRvIGJlIHVzZWQgaW4gdGhlIFJlc3Vs
dHMgbmFtZWQgdHVwbGUgYmVsb3csCisgICAgIyBzZXBhcmF0aW5nIGBzdGF0dXNgIGFuZCBga25v
d25faW50ZXJtaXR0ZW50YC4KKyAgICByZXN1bHRzID0gW10KKyAgICBmb3IgcGFja2VkX3ZhbHVl
IGluIGRhdGE6CisgICAgICAgIGZpcnN0ID0gc3RhdHVzX2ludGVybi5nZXQocGFja2VkX3ZhbHVl
ID4+IDQpCisgICAgICAgIHNlY29uZCA9IHN0YXR1c19pbnRlcm4uZ2V0KHBhY2tlZF92YWx1ZSAm
IDB4MEYpCisgICAgICAgIHJlc3VsdHMuYXBwZW5kKGZpcnN0KQorICAgICAgICBpZiBzZWNvbmQ6
CisgICAgICAgICAgICByZXN1bHRzLmFwcGVuZChzZWNvbmQpCisgICAgcmV0dXJuICgocmVzdWx0
c1swXSwpLCB0dXBsZShyZXN1bHRzWzE6XSkpCisKKwogZGVmIGxvYWRfdGVzdF9kYXRhKHRlc3Rf
cGF0aHMpOgogICAgIG1hbmlmZXN0X2xvYWRlciA9IHRlc3Rsb2FkZXIuTWFuaWZlc3RMb2FkZXIo
dGVzdF9wYXRocywgRmFsc2UpCiAgICAgbWFuaWZlc3RzID0gbWFuaWZlc3RfbG9hZGVyLmxvYWQo
KQpAQCAtMTg0LDI1ICsyNjMsMjggQEAgZGVmIGxvYWRfdGVzdF9kYXRhKHRlc3RfcGF0aHMpOgog
ICAgIHJldHVybiBpZF90ZXN0X21hcAogCiAKLWRlZiB1cGRhdGVfZnJvbV9sb2dzKGlkX3Rlc3Rf
bWFwLCAqbG9nX2ZpbGVuYW1lcywgKiprd2FyZ3MpOgotICAgIGlnbm9yZV9leGlzdGluZyA9IGt3
YXJncy5nZXQoImlnbm9yZV9leGlzdGluZyIsIEZhbHNlKQotICAgIHByb3BlcnR5X29yZGVyID0g
a3dhcmdzLmdldCgicHJvcGVydHlfb3JkZXIiKQotICAgIGJvb2xlYW5fcHJvcGVydGllcyA9IGt3
YXJncy5nZXQoImJvb2xlYW5fcHJvcGVydGllcyIpCi0gICAgc3RhYmlsaXR5ID0ga3dhcmdzLmdl
dCgic3RhYmlsaXR5IikKK2RlZiB1cGRhdGVfZnJvbV9sb2dzKGlkX3Rlc3RfbWFwLCB1cGRhdGVf
cHJvcGVydGllcywgZGlzYWJsZV9pbnRlcm1pdHRlbnQsIHVwZGF0ZV9pbnRlcm1pdHRlbnQsCisg
ICAgICAgICAgICAgICAgICAgICByZW1vdmVfaW50ZXJtaXR0ZW50LCBmdWxsX3VwZGF0ZSwgKmxv
Z19maWxlbmFtZXMpOgogCi0gICAgdXBkYXRlciA9IEV4cGVjdGVkVXBkYXRlcihpZF90ZXN0X21h
cCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlnbm9yZV9leGlzdGluZz1pZ25vcmVf
ZXhpc3RpbmcpCisgICAgdXBkYXRlciA9IEV4cGVjdGVkVXBkYXRlcihpZF90ZXN0X21hcCkKIAog
ICAgIGZvciBpLCBsb2dfZmlsZW5hbWUgaW4gZW51bWVyYXRlKGxvZ19maWxlbmFtZXMpOgogICAg
ICAgICBwcmludCgiUHJvY2Vzc2luZyBsb2cgJWQvJWQiICUgKGkgKyAxLCBsZW4obG9nX2ZpbGVu
YW1lcykpKQogICAgICAgICB3aXRoIG9wZW4obG9nX2ZpbGVuYW1lKSBhcyBmOgogICAgICAgICAg
ICAgdXBkYXRlci51cGRhdGVfZnJvbV9sb2coZikKIAotICAgIGZvciBpdGVtIGluIHVwZGF0ZV9y
ZXN1bHRzKGlkX3Rlc3RfbWFwLCBwcm9wZXJ0eV9vcmRlciwgYm9vbGVhbl9wcm9wZXJ0aWVzLCBz
dGFiaWxpdHkpOgorICAgIGZvciBpdGVtIGluIHVwZGF0ZV9yZXN1bHRzKGlkX3Rlc3RfbWFwLCB1
cGRhdGVfcHJvcGVydGllcywgZnVsbF91cGRhdGUsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgZGlzYWJsZV9pbnRlcm1pdHRlbnQsIHVwZGF0ZV9pbnRlcm1pdHRlbnQ9dXBkYXRlX2lu
dGVybWl0dGVudCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZW1vdmVfaW50ZXJt
aXR0ZW50PXJlbW92ZV9pbnRlcm1pdHRlbnQpOgogICAgICAgICB5aWVsZCBpdGVtCiAKIAotZGVm
IHVwZGF0ZV9yZXN1bHRzKGlkX3Rlc3RfbWFwLCBwcm9wZXJ0eV9vcmRlciwgYm9vbGVhbl9wcm9w
ZXJ0aWVzLCBzdGFiaWxpdHkpOgorZGVmIHVwZGF0ZV9yZXN1bHRzKGlkX3Rlc3RfbWFwLAorICAg
ICAgICAgICAgICAgICAgIHVwZGF0ZV9wcm9wZXJ0aWVzLAorICAgICAgICAgICAgICAgICAgIGZ1
bGxfdXBkYXRlLAorICAgICAgICAgICAgICAgICAgIGRpc2FibGVfaW50ZXJtaXR0ZW50LAorICAg
ICAgICAgICAgICAgICAgIHVwZGF0ZV9pbnRlcm1pdHRlbnQsCisgICAgICAgICAgICAgICAgICAg
cmVtb3ZlX2ludGVybWl0dGVudCk6CiAgICAgdGVzdF9maWxlX2l0ZW1zID0gc2V0KGlkX3Rlc3Rf
bWFwLml0ZXJ2YWx1ZXMoKSkKIAogICAgIGRlZmF1bHRfZXhwZWN0ZWRfYnlfdHlwZSA9IHt9CkBA
IC0yMTMsOCArMjk1LDkgQEAgZGVmIHVwZGF0ZV9yZXN1bHRzKGlkX3Rlc3RfbWFwLCBwcm9wZXJ0
eV9vcmRlciwgYm9vbGVhbl9wcm9wZXJ0aWVzLCBzdGFiaWxpdHkpOgogICAgICAgICAgICAgZGVm
YXVsdF9leHBlY3RlZF9ieV90eXBlWyh0ZXN0X3R5cGUsIFRydWUpXSA9IHRlc3RfY2xzLnN1YnRl
c3RfcmVzdWx0X2Nscy5kZWZhdWx0X2V4cGVjdGVkCiAKICAgICBmb3IgdGVzdF9maWxlIGluIHRl
c3RfZmlsZV9pdGVtczoKLSAgICAgICAgdXBkYXRlZF9leHBlY3RlZCA9IHRlc3RfZmlsZS51cGRh
dGUocHJvcGVydHlfb3JkZXIsIGJvb2xlYW5fcHJvcGVydGllcywgc3RhYmlsaXR5LAotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZhdWx0X2V4cGVjdGVkX2J5
X3R5cGUpCisgICAgICAgIHVwZGF0ZWRfZXhwZWN0ZWQgPSB0ZXN0X2ZpbGUudXBkYXRlKGRlZmF1
bHRfZXhwZWN0ZWRfYnlfdHlwZSwgdXBkYXRlX3Byb3BlcnRpZXMsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZ1bGxfdXBkYXRlLCBkaXNhYmxlX2ludGVybWl0
dGVudCwgdXBkYXRlX2ludGVybWl0dGVudCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgcmVtb3ZlX2ludGVybWl0dGVudCkKICAgICAgICAgaWYgdXBkYXRlZF9l
eHBlY3RlZCBpcyBub3QgTm9uZSBhbmQgdXBkYXRlZF9leHBlY3RlZC5tb2RpZmllZDoKICAgICAg
ICAgICAgIHlpZWxkIHRlc3RfZmlsZS5tZXRhZGF0YV9wYXRoLCB1cGRhdGVkX2V4cGVjdGVkCiAK
QEAgLTIyOCwzNiArMzExLDEyIEBAIGRlZiBkaXJlY3RvcnlfbWFuaWZlc3RzKG1ldGFkYXRhX3Bh
dGgpOgogICAgIHJldHVybiBydgogCiAKLWRlZiB3cml0ZV9jaGFuZ2VzKG1ldGFkYXRhX3BhdGgs
IGV4cGVjdGVkKToKLSAgICAjIEZpcnN0IHdyaXRlIHRoZSBuZXcgbWFuaWZlc3QgZmlsZXMgdG8g
YSB0ZW1wb3JhcnkgZGlyZWN0b3J5Ci0gICAgdGVtcF9wYXRoID0gdGVtcGZpbGUubWtkdGVtcChk
aXI9b3MucGF0aC5zcGxpdChtZXRhZGF0YV9wYXRoKVswXSkKLSAgICB3cml0ZV9uZXdfZXhwZWN0
ZWQodGVtcF9wYXRoLCBleHBlY3RlZCkKLQotICAgICMgQ29weSBhbGwgZmlsZXMgaW4gdGhlIHJv
b3QgdG8gdGhlIHRlbXBvcmFyeSBsb2NhdGlvbiBzaW5jZQotICAgICMgdGhlc2UgY2Fubm90IGJl
IGluaSBmaWxlcwotICAgIGtlZXBfZmlsZXMgPSBbaXRlbSBmb3IgaXRlbSBpbiBvcy5saXN0ZGly
KG1ldGFkYXRhX3BhdGgpIGlmCi0gICAgICAgICAgICAgICAgICBub3Qgb3MucGF0aC5pc2Rpcihv
cy5wYXRoLmpvaW4obWV0YWRhdGFfcGF0aCwgaXRlbSkpXQotCi0gICAgZm9yIGl0ZW0gaW4ga2Vl
cF9maWxlczoKLSAgICAgICAgZGVzdF9kaXIgPSBvcy5wYXRoLmRpcm5hbWUob3MucGF0aC5qb2lu
KHRlbXBfcGF0aCwgaXRlbSkpCi0gICAgICAgIGlmIG5vdCBvcy5wYXRoLmV4aXN0cyhkZXN0X2Rp
cik6Ci0gICAgICAgICAgICBvcy5tYWtlZGlycyhkZXN0X2RpcikKLSAgICAgICAgc2h1dGlsLmNv
cHlmaWxlKG9zLnBhdGguam9pbihtZXRhZGF0YV9wYXRoLCBpdGVtKSwKLSAgICAgICAgICAgICAg
ICAgICAgICAgIG9zLnBhdGguam9pbih0ZW1wX3BhdGgsIGl0ZW0pKQotCi0gICAgIyBUaGVuIG1v
dmUgdGhlIG9sZCBtYW5pZmVzdCBmaWxlcyB0byBhIG5ldyBsb2NhdGlvbgotICAgIHRlbXBfcGF0
aF8yID0gbWV0YWRhdGFfcGF0aCArIHN0cih1dWlkLnV1aWQ0KCkpCi0gICAgb3MucmVuYW1lKG1l
dGFkYXRhX3BhdGgsIHRlbXBfcGF0aF8yKQotICAgICMgTW92ZSB0aGUgbmV3IGZpbGVzIHRvIHRo
ZSBkZXN0aW5hdGlvbiBsb2NhdGlvbiBhbmQgcmVtb3ZlIHRoZSBvbGQgZmlsZXMKLSAgICBvcy5y
ZW5hbWUodGVtcF9wYXRoLCBtZXRhZGF0YV9wYXRoKQotICAgIHNodXRpbC5ybXRyZWUodGVtcF9w
YXRoXzIpCi0KLQogZGVmIHdyaXRlX25ld19leHBlY3RlZChtZXRhZGF0YV9wYXRoLCBleHBlY3Rl
ZCk6CiAgICAgIyBTZXJpYWxpemUgdGhlIGRhdGEgYmFjayB0byBhIGZpbGUKICAgICBwYXRoID0g
ZXhwZWN0ZWRfcGF0aChtZXRhZGF0YV9wYXRoLCBleHBlY3RlZC50ZXN0X3BhdGgpCiAgICAgaWYg
bm90IGV4cGVjdGVkLmlzX2VtcHR5OgotICAgICAgICBtYW5pZmVzdF9zdHIgPSB3cHRtYW5pZmVz
dC5zZXJpYWxpemUoZXhwZWN0ZWQubm9kZSwgc2tpcF9lbXB0eV9kYXRhPVRydWUpCisgICAgICAg
IG1hbmlmZXN0X3N0ciA9IHdwdG1hbmlmZXN0LnNlcmlhbGl6ZShleHBlY3RlZC5ub2RlLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2tpcF9lbXB0eV9kYXRh
PVRydWUpCiAgICAgICAgIGFzc2VydCBtYW5pZmVzdF9zdHIgIT0gIiIKICAgICAgICAgZGlyID0g
b3MucGF0aC5zcGxpdChwYXRoKVswXQogICAgICAgICBpZiBub3Qgb3MucGF0aC5leGlzdHMoZGly
KToKQEAgLTI4MCwzMSArMzM5LDU1IEBAIGRlZiB3cml0ZV9uZXdfZXhwZWN0ZWQobWV0YWRhdGFf
cGF0aCwgZXhwZWN0ZWQpOgogCiAKIGNsYXNzIEV4cGVjdGVkVXBkYXRlcihvYmplY3QpOgotICAg
IGRlZiBfX2luaXRfXyhzZWxmLCBpZF90ZXN0X21hcCwgaWdub3JlX2V4aXN0aW5nPUZhbHNlKToK
KyAgICBkZWYgX19pbml0X18oc2VsZiwgaWRfdGVzdF9tYXApOgogICAgICAgICBzZWxmLmlkX3Rl
c3RfbWFwID0gaWRfdGVzdF9tYXAKLSAgICAgICAgc2VsZi5pZ25vcmVfZXhpc3RpbmcgPSBpZ25v
cmVfZXhpc3RpbmcKICAgICAgICAgc2VsZi5ydW5faW5mbyA9IE5vbmUKICAgICAgICAgc2VsZi5h
Y3Rpb25fbWFwID0geyJzdWl0ZV9zdGFydCI6IHNlbGYuc3VpdGVfc3RhcnQsCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAidGVzdF9zdGFydCI6IHNlbGYudGVzdF9zdGFydCwKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICJ0ZXN0X3N0YXR1cyI6IHNlbGYudGVzdF9zdGF0dXMsCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAidGVzdF9lbmQiOiBzZWxmLnRlc3RfZW5kLAogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgImFzc2VydGlvbl9jb3VudCI6IHNlbGYuYXNzZXJ0aW9uX2Nv
dW50LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgImxzYW5fbGVhayI6IHNlbGYubHNhbl9s
ZWFrfQorICAgICAgICAgICAgICAgICAgICAgICAgICAgImxzYW5fbGVhayI6IHNlbGYubHNhbl9s
ZWFrLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIm1vemxlYWtfb2JqZWN0Ijogc2VsZi5t
b3psZWFrX29iamVjdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICJtb3psZWFrX3RvdGFs
Ijogc2VsZi5tb3psZWFrX3RvdGFsfQogICAgICAgICBzZWxmLnRlc3RzX3Zpc2l0ZWQgPSB7fQog
CiAgICAgZGVmIHVwZGF0ZV9mcm9tX2xvZyhzZWxmLCBsb2dfZmlsZSk6CisgICAgICAgICMgV2Ug
c3VwcG9ydCB0aHJlZSBwb3NzaWJsZSBmb3JtYXRzOgorICAgICAgICAjICogd3B0cmVwb3J0IGZv
cm1hdDsgb25lIGpzb24gb2JqZWN0IGluIHRoZSBmaWxlLCBwb3NzaWJseSBwcmV0dHktcHJpbnRl
ZAorICAgICAgICAjICogd3B0cmVwb3J0IGZvcm1hdDsgb25lIHJ1biBwZXIgbGluZQorICAgICAg
ICAjICogcmF3IGxvZyBmb3JtYXQKKworICAgICAgICAjIFRyeSByZWFkaW5nIGEgc2luZ2xlIGpz
b24gb2JqZWN0IGluIHdwdHJlcG9ydCBmb3JtYXQKICAgICAgICAgc2VsZi5ydW5faW5mbyA9IE5v
bmUKKyAgICAgICAgc3VjY2VzcyA9IHNlbGYuZ2V0X3dwdHJlcG9ydF9kYXRhKGxvZ19maWxlLnJl
YWQoKSkKKworICAgICAgICBpZiBzdWNjZXNzOgorICAgICAgICAgICAgcmV0dXJuCisKKyAgICAg
ICAgIyBUcnkgbGluZS1zZXBhcmF0ZWQganNvbiBvYmplY3RzIGluIHdwdHJlcG9ydCBmb3JtYXQK
KyAgICAgICAgbG9nX2ZpbGUuc2VlaygwKQorICAgICAgICBmb3IgbGluZSBpbiBsb2dfZmlsZToK
KyAgICAgICAgICAgIHN1Y2Nlc3MgPSBzZWxmLmdldF93cHRyZXBvcnRfZGF0YShsaW5lKQorICAg
ICAgICAgICAgaWYgbm90IHN1Y2Nlc3M6CisgICAgICAgICAgICAgICAgYnJlYWsKKyAgICAgICAg
ZWxzZToKKyAgICAgICAgICAgIHJldHVybgorCisgICAgICAgICMgQXNzdW1lIHRoZSBmaWxlIGlz
IGEgcmF3IGxvZworICAgICAgICBsb2dfZmlsZS5zZWVrKDApCisgICAgICAgIHNlbGYudXBkYXRl
X2Zyb21fcmF3X2xvZyhsb2dfZmlsZSkKKworICAgIGRlZiBnZXRfd3B0cmVwb3J0X2RhdGEoc2Vs
ZiwgaW5wdXRfc3RyKToKICAgICAgICAgdHJ5OgotICAgICAgICAgICAgZGF0YSA9IGpzb24ubG9h
ZChsb2dfZmlsZSkKKyAgICAgICAgICAgIGRhdGEgPSBqc29uLmxvYWRzKGlucHV0X3N0cikKICAg
ICAgICAgZXhjZXB0IEV4Y2VwdGlvbjoKICAgICAgICAgICAgIHBhc3MKICAgICAgICAgZWxzZToK
ICAgICAgICAgICAgIGlmICJhY3Rpb24iIG5vdCBpbiBkYXRhIGFuZCAicmVzdWx0cyIgaW4gZGF0
YToKICAgICAgICAgICAgICAgICBzZWxmLnVwZGF0ZV9mcm9tX3dwdHJlcG9ydF9sb2coZGF0YSkK
LSAgICAgICAgICAgICAgICByZXR1cm4KLQotICAgICAgICBsb2dfZmlsZS5zZWVrKDApCi0gICAg
ICAgIHNlbGYudXBkYXRlX2Zyb21fcmF3X2xvZyhsb2dfZmlsZSkKKyAgICAgICAgICAgICAgICBy
ZXR1cm4gVHJ1ZQorICAgICAgICByZXR1cm4gRmFsc2UKIAogICAgIGRlZiB1cGRhdGVfZnJvbV9y
YXdfbG9nKHNlbGYsIGxvZ19maWxlKToKICAgICAgICAgYWN0aW9uX21hcCA9IHNlbGYuYWN0aW9u
X21hcApAQCAtMzI3LDEwICs0MTAsMTIgQEAgY2xhc3MgRXhwZWN0ZWRVcGRhdGVyKG9iamVjdCk6
CiAgICAgICAgICAgICAgICAgYWN0aW9uX21hcFsidGVzdF9zdGF0dXMiXSh7InRlc3QiOiB0ZXN0
WyJ0ZXN0Il0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInN1
YnRlc3QiOiBzdWJ0ZXN0WyJuYW1lIl0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgInN0YXR1cyI6IHN1YnRlc3RbInN0YXR1cyJdLAotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICJleHBlY3RlZCI6IHN1YnRlc3QuZ2V0KCJleHBl
Y3RlZCIpfSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiZXhw
ZWN0ZWQiOiBzdWJ0ZXN0LmdldCgiZXhwZWN0ZWQiKSwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAia25vd25faW50ZXJtaXR0ZW50Ijogc3VidGVzdC5nZXQoImtu
b3duX2ludGVybWl0dGVudCIsIFtdKX0pCiAgICAgICAgICAgICBhY3Rpb25fbWFwWyJ0ZXN0X2Vu
ZCJdKHsidGVzdCI6IHRlc3RbInRlc3QiXSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICJzdGF0dXMiOiB0ZXN0WyJzdGF0dXMiXSwKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICJleHBlY3RlZCI6IHRlc3QuZ2V0KCJleHBlY3RlZCIpfSkKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICJleHBlY3RlZCI6IHRlc3QuZ2V0KCJleHBlY3Rl
ZCIpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImtub3duX2ludGVybWl0
dGVudCI6IHRlc3QuZ2V0KCJrbm93bl9pbnRlcm1pdHRlbnQiLCBbXSl9KQogICAgICAgICAgICAg
aWYgImFzc2VydHMiIGluIHRlc3Q6CiAgICAgICAgICAgICAgICAgYXNzZXJ0cyA9IHRlc3RbImFz
c2VydHMiXQogICAgICAgICAgICAgICAgIGFjdGlvbl9tYXBbImFzc2VydGlvbl9jb3VudCJdKHsi
dGVzdCI6IHRlc3RbInRlc3QiXSwKQEAgLTM0MCwyMCArNDI1LDI2IEBAIGNsYXNzIEV4cGVjdGVk
VXBkYXRlcihvYmplY3QpOgogICAgICAgICBmb3IgaXRlbSBpbiBkYXRhLmdldCgibHNhbl9sZWFr
cyIsIFtdKToKICAgICAgICAgICAgIGFjdGlvbl9tYXBbImxzYW5fbGVhayJdKGl0ZW0pCiAKKyAg
ICAgICAgbW96bGVha19kYXRhID0gZGF0YS5nZXQoIm1vemxlYWsiLCB7fSkKKyAgICAgICAgZm9y
IHNjb3BlLCBzY29wZV9kYXRhIGluIG1vemxlYWtfZGF0YS5pdGVyaXRlbXMoKToKKyAgICAgICAg
ICAgIGZvciBrZXksIGFjdGlvbiBpbiBbKCJvYmplY3RzIiwgIm1vemxlYWtfb2JqZWN0IiksCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgidG90YWwiLCAibW96bGVha190b3RhbCIp
XToKKyAgICAgICAgICAgICAgICBmb3IgaXRlbSBpbiBzY29wZV9kYXRhLmdldChrZXksIFtdKToK
KyAgICAgICAgICAgICAgICAgICAgaXRlbV9kYXRhID0geyJzY29wZSI6IHNjb3BlfQorICAgICAg
ICAgICAgICAgICAgICBpdGVtX2RhdGEudXBkYXRlKGl0ZW0pCisgICAgICAgICAgICAgICAgICAg
IGFjdGlvbl9tYXBbYWN0aW9uXShpdGVtX2RhdGEpCisKICAgICBkZWYgc3VpdGVfc3RhcnQoc2Vs
ZiwgZGF0YSk6Ci0gICAgICAgIHNlbGYucnVuX2luZm8gPSBydW5faW5mb19pbnRlcm4uc3RvcmUo
ZGF0YVsicnVuX2luZm8iXSkKKyAgICAgICAgc2VsZi5ydW5faW5mbyA9IHJ1bl9pbmZvX2ludGVy
bi5zdG9yZShSdW5JbmZvKGRhdGFbInJ1bl9pbmZvIl0pKQogCiAgICAgZGVmIHRlc3Rfc3RhcnQo
c2VsZiwgZGF0YSk6CiAgICAgICAgIHRlc3RfaWQgPSBpbnRlcm4oZGF0YVsidGVzdCJdLmVuY29k
ZSgidXRmOCIpKQogICAgICAgICB0cnk6Ci0gICAgICAgICAgICB0ZXN0X2RhdGEgPSBzZWxmLmlk
X3Rlc3RfbWFwW3Rlc3RfaWRdCisgICAgICAgICAgICBzZWxmLmlkX3Rlc3RfbWFwW3Rlc3RfaWRd
CiAgICAgICAgIGV4Y2VwdCBLZXlFcnJvcjoKLSAgICAgICAgICAgIHByaW50ICJUZXN0IG5vdCBm
b3VuZCAlcywgc2tpcHBpbmciICUgdGVzdF9pZAorICAgICAgICAgICAgcHJpbnQoIlRlc3Qgbm90
IGZvdW5kICVzLCBza2lwcGluZyIgJSB0ZXN0X2lkKQogICAgICAgICAgICAgcmV0dXJuCiAKLSAg
ICAgICAgaWYgc2VsZi5pZ25vcmVfZXhpc3Rpbmc6Ci0gICAgICAgICAgICB0ZXN0X2RhdGEuc2V0
X3JlcXVpcmVzX3VwZGF0ZSgpCi0gICAgICAgICAgICB0ZXN0X2RhdGEuY2xlYXIuYXBwZW5kKCJl
eHBlY3RlZCIpCiAgICAgICAgIHNlbGYudGVzdHNfdmlzaXRlZFt0ZXN0X2lkXSA9IHNldCgpCiAK
ICAgICBkZWYgdGVzdF9zdGF0dXMoc2VsZiwgZGF0YSk6CkBAIC0zNjUsNyArNDU2LDcgQEAgY2xh
c3MgRXhwZWN0ZWRVcGRhdGVyKG9iamVjdCk6CiAKICAgICAgICAgc2VsZi50ZXN0c192aXNpdGVk
W3Rlc3RfaWRdLmFkZChzdWJ0ZXN0KQogCi0gICAgICAgIHJlc3VsdCA9IHN0YXR1c19pbnRlcm4u
c3RvcmUoZGF0YVsic3RhdHVzIl0pCisgICAgICAgIHJlc3VsdCA9IHBhY2tfcmVzdWx0KGRhdGEp
CiAKICAgICAgICAgdGVzdF9kYXRhLnNldCh0ZXN0X2lkLCBzdWJ0ZXN0LCAic3RhdHVzIiwgc2Vs
Zi5ydW5faW5mbywgcmVzdWx0KQogICAgICAgICBpZiBkYXRhLmdldCgiZXhwZWN0ZWQiKSBhbmQg
ZGF0YVsiZXhwZWN0ZWQiXSAhPSBkYXRhWyJzdGF0dXMiXToKQEAgLTM4MCwxMCArNDcxLDEwIEBA
IGNsYXNzIEV4cGVjdGVkVXBkYXRlcihvYmplY3QpOgogICAgICAgICBpZiB0ZXN0X2RhdGEgaXMg
Tm9uZToKICAgICAgICAgICAgIHJldHVybgogCi0gICAgICAgIHJlc3VsdCA9IHN0YXR1c19pbnRl
cm4uc3RvcmUoZGF0YVsic3RhdHVzIl0pCisgICAgICAgIHJlc3VsdCA9IHBhY2tfcmVzdWx0KGRh
dGEpCiAKICAgICAgICAgdGVzdF9kYXRhLnNldCh0ZXN0X2lkLCBOb25lLCAic3RhdHVzIiwgc2Vs
Zi5ydW5faW5mbywgcmVzdWx0KQotICAgICAgICBpZiBkYXRhLmdldCgiZXhwZWN0ZWQiKSBhbmQg
ZGF0YVsic3RhdHVzIl0gIT0gZGF0YVsiZXhwZWN0ZWQiXToKKyAgICAgICAgaWYgZGF0YS5nZXQo
ImV4cGVjdGVkIikgYW5kIGRhdGFbImV4cGVjdGVkIl0gIT0gZGF0YVsic3RhdHVzIl06CiAgICAg
ICAgICAgICB0ZXN0X2RhdGEuc2V0X3JlcXVpcmVzX3VwZGF0ZSgpCiAgICAgICAgIGRlbCBzZWxm
LnRlc3RzX3Zpc2l0ZWRbdGVzdF9pZF0KIApAQCAtMzk3LDI1ICs0ODgsNDYgQEAgY2xhc3MgRXhw
ZWN0ZWRVcGRhdGVyKG9iamVjdCk6CiAgICAgICAgIGlmIGRhdGFbImNvdW50Il0gPCBkYXRhWyJt
aW5fZXhwZWN0ZWQiXSBvciBkYXRhWyJjb3VudCJdID4gZGF0YVsibWF4X2V4cGVjdGVkIl06CiAg
ICAgICAgICAgICB0ZXN0X2RhdGEuc2V0X3JlcXVpcmVzX3VwZGF0ZSgpCiAKLSAgICBkZWYgbHNh
bl9sZWFrKHNlbGYsIGRhdGEpOgorICAgIGRlZiB0ZXN0X2Zvcl9zY29wZShzZWxmLCBkYXRhKToK
ICAgICAgICAgZGlyX3BhdGggPSBkYXRhLmdldCgic2NvcGUiLCAiLyIpCiAgICAgICAgIGRpcl9p
ZCA9IGludGVybihvcy5wYXRoLmpvaW4oZGlyX3BhdGgsICJfX2Rpcl9fIikucmVwbGFjZShvcy5w
YXRoLnNlcCwgIi8iKS5lbmNvZGUoInV0ZjgiKSkKICAgICAgICAgaWYgZGlyX2lkLnN0YXJ0c3dp
dGgoIi8iKToKICAgICAgICAgICAgIGRpcl9pZCA9IGRpcl9pZFsxOl0KLSAgICAgICAgdGVzdF9k
YXRhID0gc2VsZi5pZF90ZXN0X21hcFtkaXJfaWRdCisgICAgICAgIHJldHVybiBkaXJfaWQsIHNl
bGYuaWRfdGVzdF9tYXBbZGlyX2lkXQorCisgICAgZGVmIGxzYW5fbGVhayhzZWxmLCBkYXRhKToK
KyAgICAgICAgZGlyX2lkLCB0ZXN0X2RhdGEgPSBzZWxmLnRlc3RfZm9yX3Njb3BlKGRhdGEpCiAg
ICAgICAgIHRlc3RfZGF0YS5zZXQoZGlyX2lkLCBOb25lLCAibHNhbiIsCiAgICAgICAgICAgICAg
ICAgICAgICAgc2VsZi5ydW5faW5mbywgKGRhdGFbImZyYW1lcyJdLCBkYXRhLmdldCgiYWxsb3dl
ZF9tYXRjaCIpKSkKICAgICAgICAgaWYgbm90IGRhdGEuZ2V0KCJhbGxvd2VkX21hdGNoIik6CiAg
ICAgICAgICAgICB0ZXN0X2RhdGEuc2V0X3JlcXVpcmVzX3VwZGF0ZSgpCiAKKyAgICBkZWYgbW96
bGVha19vYmplY3Qoc2VsZiwgZGF0YSk6CisgICAgICAgIGRpcl9pZCwgdGVzdF9kYXRhID0gc2Vs
Zi50ZXN0X2Zvcl9zY29wZShkYXRhKQorICAgICAgICB0ZXN0X2RhdGEuc2V0KGRpcl9pZCwgTm9u
ZSwgImxlYWstb2JqZWN0IiwKKyAgICAgICAgICAgICAgICAgICAgICBzZWxmLnJ1bl9pbmZvLCAo
IiVzOiVzIiwgKGRhdGFbInByb2Nlc3MiXSwgZGF0YVsibmFtZSJdKSwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgZGF0YS5nZXQoImFsbG93ZWQiKSkpCisgICAgICAgIGlm
IG5vdCBkYXRhLmdldCgiYWxsb3dlZCIpOgorICAgICAgICAgICAgdGVzdF9kYXRhLnNldF9yZXF1
aXJlc191cGRhdGUoKQorCisgICAgZGVmIG1vemxlYWtfdG90YWwoc2VsZiwgZGF0YSk6CisgICAg
ICAgIGlmIGRhdGFbImJ5dGVzIl06CisgICAgICAgICAgICBkaXJfaWQsIHRlc3RfZGF0YSA9IHNl
bGYudGVzdF9mb3Jfc2NvcGUoZGF0YSkKKyAgICAgICAgICAgIHRlc3RfZGF0YS5zZXQoZGlyX2lk
LCBOb25lLCAibGVhay10aHJlc2hvbGQiLAorICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxm
LnJ1bl9pbmZvLCAoZGF0YVsicHJvY2VzcyJdLCBkYXRhWyJieXRlcyJdLCBkYXRhWyJ0aHJlc2hv
bGQiXSkpCisgICAgICAgICAgICBpZiBkYXRhWyJieXRlcyJdID4gZGF0YVsidGhyZXNob2xkIl0g
b3IgZGF0YVsiYnl0ZXMiXSA8IDA6CisgICAgICAgICAgICAgICAgdGVzdF9kYXRhLnNldF9yZXF1
aXJlc191cGRhdGUoKQorCiAKIGRlZiBjcmVhdGVfdGVzdF90cmVlKG1ldGFkYXRhX3BhdGgsIHRl
c3RfbWFuaWZlc3QpOgogICAgICIiIkNyZWF0ZSBhIG1hcCBvZiB0ZXN0X2lkIHRvIFRlc3RGaWxl
RGF0YSBmb3IgdGhhdCB0ZXN0LgogICAgICIiIgorICAgIGRvX2RlbGF5ZWRfaW1wb3J0cygpCiAg
ICAgaWRfdGVzdF9tYXAgPSB7fQotICAgIGV4Y2x1ZGVfdHlwZXMgPSBmcm96ZW5zZXQoWyJzdHVi
IiwgImhlbHBlciIsICJtYW51YWwiLCAic3VwcG9ydCIsICJjb25mb3JtYW5jZWNoZWNrZXIiXSkK
LSAgICBhbGxfdHlwZXMgPSBtYW5pZmVzdGl0ZW0uaXRlbV90eXBlcy5rZXlzKCkKLSAgICBpbmNs
dWRlX3R5cGVzID0gc2V0KGFsbF90eXBlcykgLSBleGNsdWRlX3R5cGVzCisgICAgZXhjbHVkZV90
eXBlcyA9IGZyb3plbnNldChbIm1hbnVhbCIsICJzdXBwb3J0IiwgImNvbmZvcm1hbmNlY2hlY2tl
ciJdKQorICAgIGFsbF90eXBlcyA9IHNldChtYW5pZmVzdGl0ZW0uaXRlbV90eXBlcy5rZXlzKCkp
CisgICAgYXNzZXJ0IGFsbF90eXBlcyA+IGV4Y2x1ZGVfdHlwZXMKKyAgICBpbmNsdWRlX3R5cGVz
ID0gYWxsX3R5cGVzIC0gZXhjbHVkZV90eXBlcwogICAgIGZvciBpdGVtX3R5cGUsIHRlc3RfcGF0
aCwgdGVzdHMgaW4gdGVzdF9tYW5pZmVzdC5pdGVydHlwZXMoKmluY2x1ZGVfdHlwZXMpOgogICAg
ICAgICB0ZXN0X2ZpbGVfZGF0YSA9IFRlc3RGaWxlRGF0YShpbnRlcm4odGVzdF9tYW5pZmVzdC51
cmxfYmFzZS5lbmNvZGUoInV0ZjgiKSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGludGVybihpdGVtX3R5cGUuZW5jb2RlKCJ1dGY4IikpLApAQCAtNDY3LDcgKzU3OSw3
IEBAIGNsYXNzIFBhY2tlZFJlc3VsdExpc3Qob2JqZWN0KToKIAogICAgIGRlZiBhcHBlbmQoc2Vs
ZiwgcHJvcCwgcnVuX2luZm8sIHZhbHVlKToKICAgICAgICAgb3V0X3ZhbCA9IChwcm9wIDw8IDEy
KSArIHJ1bl9pbmZvCi0gICAgICAgIGlmIHByb3AgPT0gcHJvcF9pbnRlcm4uc3RvcmUoInN0YXR1
cyIpOgorICAgICAgICBpZiBwcm9wID09IHByb3BfaW50ZXJuLnN0b3JlKCJzdGF0dXMiKSBhbmQg
aXNpbnN0YW5jZSh2YWx1ZSwgaW50KToKICAgICAgICAgICAgIG91dF92YWwgKz0gdmFsdWUgPDwg
OAogICAgICAgICBlbHNlOgogICAgICAgICAgICAgaWYgbm90IGhhc2F0dHIoc2VsZiwgInJhd19k
YXRhIik6CkBAIC00NzksMTIgKzU5MSwxMiBAQCBjbGFzcyBQYWNrZWRSZXN1bHRMaXN0KG9iamVj
dCk6CiAgICAgICAgIHByb3AgPSBwcm9wX2ludGVybi5nZXQoKHBhY2tlZCAmIDB4RjAwMCkgPj4g
MTIpCiAKICAgICAgICAgdmFsdWVfaWR4ID0gKHBhY2tlZCAmIDB4MEYwMCkgPj4gOAotICAgICAg
ICBpZiB2YWx1ZV9pZHggaXMgMDoKKyAgICAgICAgaWYgdmFsdWVfaWR4ID09IDA6CiAgICAgICAg
ICAgICB2YWx1ZSA9IHNlbGYucmF3X2RhdGFbaWR4XQogICAgICAgICBlbHNlOgogICAgICAgICAg
ICAgdmFsdWUgPSBzdGF0dXNfaW50ZXJuLmdldCh2YWx1ZV9pZHgpCiAKLSAgICAgICAgcnVuX2lu
Zm8gPSBydW5faW5mb19pbnRlcm4uZ2V0KChwYWNrZWQgJiAweDAwRkYpKQorICAgICAgICBydW5f
aW5mbyA9IHJ1bl9pbmZvX2ludGVybi5nZXQocGFja2VkICYgMHgwMEZGKQogCiAgICAgICAgIHJl
dHVybiBwcm9wLCBydW5faW5mbywgdmFsdWUKIApAQCAtNDk1LDcgKzYwNyw3IEBAIGNsYXNzIFBh
Y2tlZFJlc3VsdExpc3Qob2JqZWN0KToKIAogY2xhc3MgVGVzdEZpbGVEYXRhKG9iamVjdCk6CiAg
ICAgX19zbG90c19fID0gKCJ1cmxfYmFzZSIsICJpdGVtX3R5cGUiLCAidGVzdF9wYXRoIiwgIm1l
dGFkYXRhX3BhdGgiLCAidGVzdHMiLAotICAgICAgICAgICAgICAgICAiX3JlcXVpcmVzX3VwZGF0
ZSIsICJjbGVhciIsICJkYXRhIikKKyAgICAgICAgICAgICAgICAgIl9yZXF1aXJlc191cGRhdGUi
LCAiZGF0YSIpCiAKICAgICBkZWYgX19pbml0X18oc2VsZiwgdXJsX2Jhc2UsIGl0ZW1fdHlwZSwg
bWV0YWRhdGFfcGF0aCwgdGVzdF9wYXRoLCB0ZXN0cyk6CiAgICAgICAgIHNlbGYudXJsX2Jhc2Ug
PSB1cmxfYmFzZQpAQCAtNTA0LDM3ICs2MTYsODYgQEAgY2xhc3MgVGVzdEZpbGVEYXRhKG9iamVj
dCk6CiAgICAgICAgIHNlbGYubWV0YWRhdGFfcGF0aCA9IG1ldGFkYXRhX3BhdGgKICAgICAgICAg
c2VsZi50ZXN0cyA9IHtpbnRlcm4oaXRlbS5pZC5lbmNvZGUoInV0ZjgiKSkgZm9yIGl0ZW0gaW4g
dGVzdHN9CiAgICAgICAgIHNlbGYuX3JlcXVpcmVzX3VwZGF0ZSA9IEZhbHNlCi0gICAgICAgIHNl
bGYuY2xlYXIgPSBzZXQoKQogICAgICAgICBzZWxmLmRhdGEgPSBkZWZhdWx0ZGljdChsYW1iZGE6
IGRlZmF1bHRkaWN0KFBhY2tlZFJlc3VsdExpc3QpKQogCiAgICAgZGVmIHNldF9yZXF1aXJlc191
cGRhdGUoc2VsZik6CiAgICAgICAgIHNlbGYuX3JlcXVpcmVzX3VwZGF0ZSA9IFRydWUKIAorICAg
IEBwcm9wZXJ0eQorICAgIGRlZiByZXF1aXJlc191cGRhdGUoc2VsZik6CisgICAgICAgIHJldHVy
biBzZWxmLl9yZXF1aXJlc191cGRhdGUKKwogICAgIGRlZiBzZXQoc2VsZiwgdGVzdF9pZCwgc3Vi
dGVzdF9pZCwgcHJvcCwgcnVuX2luZm8sIHZhbHVlKToKICAgICAgICAgc2VsZi5kYXRhW3Rlc3Rf
aWRdW3N1YnRlc3RfaWRdLmFwcGVuZChwcm9wX2ludGVybi5zdG9yZShwcm9wKSwKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBydW5faW5mbywKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSkKIAotICAgIGRlZiBl
eHBlY3RlZChzZWxmLCBwcm9wZXJ0eV9vcmRlciwgYm9vbGVhbl9wcm9wZXJ0aWVzKToKKyAgICBk
ZWYgZXhwZWN0ZWQoc2VsZiwgdXBkYXRlX3Byb3BlcnRpZXMsIHVwZGF0ZV9pbnRlcm1pdHRlbnQs
IHJlbW92ZV9pbnRlcm1pdHRlbnQpOgogICAgICAgICBleHBlY3RlZF9kYXRhID0gbG9hZF9leHBl
Y3RlZChzZWxmLnVybF9iYXNlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBzZWxmLm1ldGFkYXRhX3BhdGgsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHNlbGYudGVzdF9wYXRoLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBzZWxmLnRlc3RzLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9w
ZXJ0eV9vcmRlciwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbGVh
bl9wcm9wZXJ0aWVzKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1cGRh
dGVfcHJvcGVydGllcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXBk
YXRlX2ludGVybWl0dGVudCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
cmVtb3ZlX2ludGVybWl0dGVudCkKICAgICAgICAgaWYgZXhwZWN0ZWRfZGF0YSBpcyBOb25lOgog
ICAgICAgICAgICAgZXhwZWN0ZWRfZGF0YSA9IGNyZWF0ZV9leHBlY3RlZChzZWxmLnVybF9iYXNl
LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnRlc3Rf
cGF0aCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvcGVy
dHlfb3JkZXIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJv
b2xlYW5fcHJvcGVydGllcykKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgdXBkYXRlX3Byb3BlcnRpZXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHVwZGF0ZV9pbnRlcm1pdHRlbnQsCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHJlbW92ZV9pbnRlcm1pdHRlbnQpCiAgICAgICAgIHJldHVy
biBleHBlY3RlZF9kYXRhCiAKLSAgICBkZWYgdXBkYXRlKHNlbGYsIHByb3BlcnR5X29yZGVyLCBi
b29sZWFuX3Byb3BlcnRpZXMsIHN0YWJpbGl0eSwKLSAgICAgICAgICAgICAgIGRlZmF1bHRfZXhw
ZWN0ZWRfYnlfdHlwZSk6Ci0gICAgICAgIGlmIG5vdCBzZWxmLl9yZXF1aXJlc191cGRhdGU6Cisg
ICAgZGVmIGlzX2Rpc2FibGVkKHNlbGYsIHRlc3QpOgorICAgICAgICAjIFRoaXMgY29uc2VydmF0
aXZlbHkgYXNzdW1lcyB0aGF0IGFueXRoaW5nIHRoYXQgd2FzIGRpc2FibGVkIHJlbWFpbnMgZGlz
YWJsZWQKKyAgICAgICAgIyB3ZSBjb3VsZCBwcm9iYWJseSBkbyBiZXR0ZXIgYnkgY2hlY2tpbmcg
aWYgaXQncyBpbiB0aGUgZnVsbCBzZXQgb2YgcnVuIGluZm9zCisgICAgICAgIHJldHVybiB0ZXN0
Lmhhc19rZXkoImRpc2FibGVkIikKKworICAgIGRlZiBvcnBoYW5fc3VidGVzdHMoc2VsZiwgZXhw
ZWN0ZWQpOgorICAgICAgICAjIFJldHVybiBzdWJ0ZXN0IG5vZGVzIHByZXNlbnQgaW4gdGhlIGV4
cGVjdGVkIGZpbGUsIGJ1dCBtaXNzaW5nIGZyb20gdGhlIGRhdGEKKyAgICAgICAgcnYgPSBbXQor
CisgICAgICAgIGZvciB0ZXN0X2lkLCBzdWJ0ZXN0cyBpbiBzZWxmLmRhdGEuaXRlcml0ZW1zKCk6
CisgICAgICAgICAgICB0ZXN0ID0gZXhwZWN0ZWQuZ2V0X3Rlc3QodGVzdF9pZC5kZWNvZGUoInV0
ZjgiKSkKKyAgICAgICAgICAgIGlmIG5vdCB0ZXN0OgorICAgICAgICAgICAgICAgIGNvbnRpbnVl
CisgICAgICAgICAgICBzZWVuX3N1YnRlc3RzID0gc2V0KGl0ZW0uZGVjb2RlKCJ1dGY4IikgZm9y
IGl0ZW0gaW4gc3VidGVzdHMuaXRlcmtleXMoKSBpZiBpdGVtIGlzIG5vdCBOb25lKQorICAgICAg
ICAgICAgbWlzc2luZ19zdWJ0ZXN0cyA9IHNldCh0ZXN0LnN1YnRlc3RzLmtleXMoKSkgLSBzZWVu
X3N1YnRlc3RzCisgICAgICAgICAgICBmb3IgaXRlbSBpbiBtaXNzaW5nX3N1YnRlc3RzOgorICAg
ICAgICAgICAgICAgIGV4cGVjdGVkX3N1YnRlc3QgPSB0ZXN0LmdldF9zdWJ0ZXN0KGl0ZW0pCisg
ICAgICAgICAgICAgICAgaWYgbm90IHNlbGYuaXNfZGlzYWJsZWQoZXhwZWN0ZWRfc3VidGVzdCk6
CisgICAgICAgICAgICAgICAgICAgIHJ2LmFwcGVuZChleHBlY3RlZF9zdWJ0ZXN0KQorICAgICAg
ICAgICAgZm9yIG5hbWUgaW4gc2Vlbl9zdWJ0ZXN0czoKKyAgICAgICAgICAgICAgICBzdWJ0ZXN0
ID0gdGVzdC5nZXRfc3VidGVzdChuYW1lKQorICAgICAgICAgICAgICAgICMgSWYgYW55IG9mIHRo
ZSBpdGVtcyBoYXZlIGNoaWxkcmVuIChpZSBzdWJzdWJ0ZXN0cykgd2Ugd2FudCB0byBwcnVuZSB0
aGVzCisgICAgICAgICAgICAgICAgaWYgc3VidGVzdC5jaGlsZHJlbjoKKyAgICAgICAgICAgICAg
ICAgICAgcnYuZXh0ZW5kKHN1YnRlc3QuY2hpbGRyZW4pCisKKyAgICAgICAgcmV0dXJuIHJ2CisK
KyAgICBkZWYgdXBkYXRlKHNlbGYsIGRlZmF1bHRfZXhwZWN0ZWRfYnlfdHlwZSwgdXBkYXRlX3By
b3BlcnRpZXMsCisgICAgICAgICAgICAgICBmdWxsX3VwZGF0ZT1GYWxzZSwgZGlzYWJsZV9pbnRl
cm1pdHRlbnQ9Tm9uZSwgdXBkYXRlX2ludGVybWl0dGVudD1GYWxzZSwKKyAgICAgICAgICAgICAg
IHJlbW92ZV9pbnRlcm1pdHRlbnQ9RmFsc2UpOgorICAgICAgICAjIElmIHdlIGFyZSBkb2luZyBh
IGZ1bGwgdXBkYXRlLCB3ZSBtYXkgbmVlZCB0byBwcnVuZSBtaXNzaW5nIG5vZGVzCisgICAgICAg
ICMgZXZlbiBpZiB0aGUgZXhwZWN0YXRpb25zIGRpZG4ndCBjaGFuZ2UKKyAgICAgICAgaWYgbm90
IHNlbGYucmVxdWlyZXNfdXBkYXRlIGFuZCBub3QgZnVsbF91cGRhdGU6CiAgICAgICAgICAgICBy
ZXR1cm4KIAotICAgICAgICBleHBlY3RlZCA9IHNlbGYuZXhwZWN0ZWQocHJvcGVydHlfb3JkZXIs
IGJvb2xlYW5fcHJvcGVydGllcykKKyAgICAgICAgZXhwZWN0ZWQgPSBzZWxmLmV4cGVjdGVkKHVw
ZGF0ZV9wcm9wZXJ0aWVzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXBkYXRl
X2ludGVybWl0dGVudD11cGRhdGVfaW50ZXJtaXR0ZW50LAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgcmVtb3ZlX2ludGVybWl0dGVudD1yZW1vdmVfaW50ZXJtaXR0ZW50KQorCisg
ICAgICAgIGlmIGZ1bGxfdXBkYXRlOgorICAgICAgICAgICAgb3JwaGFucyA9IHNlbGYub3JwaGFu
X3N1YnRlc3RzKGV4cGVjdGVkKQorCisgICAgICAgICAgICBpZiBub3Qgc2VsZi5yZXF1aXJlc191
cGRhdGUgYW5kIG5vdCBvcnBoYW5zOgorICAgICAgICAgICAgICAgIHJldHVybgorCisgICAgICAg
ICAgICBpZiBvcnBoYW5zOgorICAgICAgICAgICAgICAgIGV4cGVjdGVkLm1vZGlmaWVkID0gVHJ1
ZQorICAgICAgICAgICAgICAgIGZvciBpdGVtIGluIG9ycGhhbnM6CisgICAgICAgICAgICAgICAg
ICAgIGl0ZW0ucmVtb3ZlKCkKKwogICAgICAgICBleHBlY3RlZF9ieV90ZXN0ID0ge30KIAogICAg
ICAgICBmb3IgdGVzdF9pZCBpbiBzZWxmLnRlc3RzOgpAQCAtNTQyLDY3ICs3MDMsNjkgQEAgY2xh
c3MgVGVzdEZpbGVEYXRhKG9iamVjdCk6CiAgICAgICAgICAgICAgICAgZXhwZWN0ZWQuYXBwZW5k
KG1hbmlmZXN0dXBkYXRlLlRlc3ROb2RlLmNyZWF0ZSh0ZXN0X2lkKSkKICAgICAgICAgICAgIHRl
c3RfZXhwZWN0ZWQgPSBleHBlY3RlZC5nZXRfdGVzdCh0ZXN0X2lkKQogICAgICAgICAgICAgZXhw
ZWN0ZWRfYnlfdGVzdFt0ZXN0X2lkXSA9IHRlc3RfZXhwZWN0ZWQKLSAgICAgICAgICAgIGZvciBw
cm9wIGluIHNlbGYuY2xlYXI6Ci0gICAgICAgICAgICAgICAgdGVzdF9leHBlY3RlZC5jbGVhcihw
cm9wKQogCiAgICAgICAgIGZvciB0ZXN0X2lkLCB0ZXN0X2RhdGEgaW4gc2VsZi5kYXRhLml0ZXJp
dGVtcygpOgorICAgICAgICAgICAgdGVzdF9pZCA9IHRlc3RfaWQuZGVjb2RlKCJ1dGY4IikKICAg
ICAgICAgICAgIGZvciBzdWJ0ZXN0X2lkLCByZXN1bHRzX2xpc3QgaW4gdGVzdF9kYXRhLml0ZXJp
dGVtcygpOgogICAgICAgICAgICAgICAgIGZvciBwcm9wLCBydW5faW5mbywgdmFsdWUgaW4gcmVz
dWx0c19saXN0OgogICAgICAgICAgICAgICAgICAgICAjIFNwZWNpYWwgY2FzZSBkaXJlY3Rvcnkg
bWV0YWRhdGEKICAgICAgICAgICAgICAgICAgICAgaWYgc3VidGVzdF9pZCBpcyBOb25lIGFuZCB0
ZXN0X2lkLmVuZHN3aXRoKCJfX2Rpcl9fIik6CiAgICAgICAgICAgICAgICAgICAgICAgICBpZiBw
cm9wID09ICJsc2FuIjoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBleHBlY3RlZC5zZXRf
bHNhbihydW5faW5mbywgdmFsdWUpCisgICAgICAgICAgICAgICAgICAgICAgICBlbGlmIHByb3Ag
PT0gImxlYWstb2JqZWN0IjoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBleHBlY3RlZC5z
ZXRfbGVha19vYmplY3QocnVuX2luZm8sIHZhbHVlKQorICAgICAgICAgICAgICAgICAgICAgICAg
ZWxpZiBwcm9wID09ICJsZWFrLXRocmVzaG9sZCI6CisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgZXhwZWN0ZWQuc2V0X2xlYWtfdGhyZXNob2xkKHJ1bl9pbmZvLCB2YWx1ZSkKICAgICAgICAg
ICAgICAgICAgICAgICAgIGNvbnRpbnVlCiAKLSAgICAgICAgICAgICAgICAgICAgaWYgcHJvcCA9
PSAic3RhdHVzIjoKLSAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlID0gUmVzdWx0KHZhbHVl
LCBkZWZhdWx0X2V4cGVjdGVkX2J5X3R5cGVbc2VsZi5pdGVtX3R5cGUsCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHN1YnRlc3RfaWQgaXMgbm90IE5vbmVdKQotCiAgICAgICAgICAgICAgICAgICAgIHRlc3RfZXhw
ZWN0ZWQgPSBleHBlY3RlZF9ieV90ZXN0W3Rlc3RfaWRdCiAgICAgICAgICAgICAgICAgICAgIGlm
IHN1YnRlc3RfaWQgaXMgTm9uZToKICAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW1fZXhwZWN0
ZWQgPSB0ZXN0X2V4cGVjdGVkCiAgICAgICAgICAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAg
ICAgICAgICAgICAgICBpZiBpc2luc3RhbmNlKHN1YnRlc3RfaWQsIHN0cik6CisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgc3VidGVzdF9pZCA9IHN1YnRlc3RfaWQuZGVjb2RlKCJ1dGY4IikK
ICAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW1fZXhwZWN0ZWQgPSB0ZXN0X2V4cGVjdGVkLmdl
dF9zdWJ0ZXN0KHN1YnRlc3RfaWQpCisKICAgICAgICAgICAgICAgICAgICAgaWYgcHJvcCA9PSAi
c3RhdHVzIjoKKyAgICAgICAgICAgICAgICAgICAgICAgIHN0YXR1cywga25vd25faW50ZXJtaXR0
ZW50ID0gdW5wYWNrX3Jlc3VsdCh2YWx1ZSkKKyAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVl
ID0gUmVzdWx0KHN0YXR1cywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGtub3duX2ludGVybWl0dGVudCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGRlZmF1bHRfZXhwZWN0ZWRfYnlfdHlwZVtzZWxmLml0ZW1fdHlwZSwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdWJ0
ZXN0X2lkIGlzIG5vdCBOb25lXSkKICAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW1fZXhwZWN0
ZWQuc2V0X3Jlc3VsdChydW5faW5mbywgdmFsdWUpCiAgICAgICAgICAgICAgICAgICAgIGVsaWYg
cHJvcCA9PSAiYXNzZXJ0cyI6CiAgICAgICAgICAgICAgICAgICAgICAgICBpdGVtX2V4cGVjdGVk
LnNldF9hc3NlcnRzKHJ1bl9pbmZvLCB2YWx1ZSkKIAotICAgICAgICBleHBlY3RlZC5jb2FsZXNj
ZV9wcm9wZXJ0aWVzKHN0YWJpbGl0eT1zdGFiaWxpdHkpCisgICAgICAgIGV4cGVjdGVkLnVwZGF0
ZShmdWxsX3VwZGF0ZT1mdWxsX3VwZGF0ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgIGRpc2Fi
bGVfaW50ZXJtaXR0ZW50PWRpc2FibGVfaW50ZXJtaXR0ZW50KQogICAgICAgICBmb3IgdGVzdCBp
biBleHBlY3RlZC5pdGVyY2hpbGRyZW4oKToKICAgICAgICAgICAgIGZvciBzdWJ0ZXN0IGluIHRl
c3QuaXRlcmNoaWxkcmVuKCk6Ci0gICAgICAgICAgICAgICAgc3VidGVzdC5jb2FsZXNjZV9wcm9w
ZXJ0aWVzKHN0YWJpbGl0eT1zdGFiaWxpdHkpCi0gICAgICAgICAgICB0ZXN0LmNvYWxlc2NlX3By
b3BlcnRpZXMoc3RhYmlsaXR5PXN0YWJpbGl0eSkKKyAgICAgICAgICAgICAgICBzdWJ0ZXN0LnVw
ZGF0ZShmdWxsX3VwZGF0ZT1mdWxsX3VwZGF0ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBkaXNhYmxlX2ludGVybWl0dGVudD1kaXNhYmxlX2ludGVybWl0dGVudCkKKyAgICAgICAg
ICAgIHRlc3QudXBkYXRlKGZ1bGxfdXBkYXRlPWZ1bGxfdXBkYXRlLAorICAgICAgICAgICAgICAg
ICAgICAgICAgZGlzYWJsZV9pbnRlcm1pdHRlbnQ9ZGlzYWJsZV9pbnRlcm1pdHRlbnQpCiAKICAg
ICAgICAgcmV0dXJuIGV4cGVjdGVkCiAKIAotUmVzdWx0ID0gbmFtZWR0dXBsZSgiUmVzdWx0Iiwg
WyJzdGF0dXMiLCAiZGVmYXVsdF9leHBlY3RlZCJdKQorUmVzdWx0ID0gbmFtZWR0dXBsZSgiUmVz
dWx0IiwgWyJzdGF0dXMiLCAia25vd25faW50ZXJtaXR0ZW50IiwgImRlZmF1bHRfZXhwZWN0ZWQi
XSkKIAogCi1kZWYgY3JlYXRlX2V4cGVjdGVkKHVybF9iYXNlLCB0ZXN0X3BhdGgsIHByb3BlcnR5
X29yZGVyPU5vbmUsCi0gICAgICAgICAgICAgICAgICAgIGJvb2xlYW5fcHJvcGVydGllcz1Ob25l
KToKK2RlZiBjcmVhdGVfZXhwZWN0ZWQodXJsX2Jhc2UsIHRlc3RfcGF0aCwgcnVuX2luZm9fcHJv
cGVydGllcywgdXBkYXRlX2ludGVybWl0dGVudCwgcmVtb3ZlX2ludGVybWl0dGVudCk6CiAgICAg
ZXhwZWN0ZWQgPSBtYW5pZmVzdHVwZGF0ZS5FeHBlY3RlZE1hbmlmZXN0KE5vbmUsCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RfcGF0aCwKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXJsX2Jhc2UsCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByb3BlcnR5X29yZGVy
PXByb3BlcnR5X29yZGVyLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBib29sZWFuX3Byb3BlcnRpZXM9Ym9vbGVhbl9wcm9wZXJ0aWVzKQorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBydW5faW5mb19wcm9wZXJ0aWVz
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1cGRhdGVf
aW50ZXJtaXR0ZW50LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICByZW1vdmVfaW50ZXJtaXR0ZW50KQogICAgIHJldHVybiBleHBlY3RlZAogCiAKLWRlZiBs
b2FkX2V4cGVjdGVkKHVybF9iYXNlLCBtZXRhZGF0YV9wYXRoLCB0ZXN0X3BhdGgsIHRlc3RzLCBw
cm9wZXJ0eV9vcmRlcj1Ob25lLAotICAgICAgICAgICAgICAgICAgYm9vbGVhbl9wcm9wZXJ0aWVz
PU5vbmUpOgorZGVmIGxvYWRfZXhwZWN0ZWQodXJsX2Jhc2UsIG1ldGFkYXRhX3BhdGgsIHRlc3Rf
cGF0aCwgdGVzdHMsIHJ1bl9pbmZvX3Byb3BlcnRpZXMsIHVwZGF0ZV9pbnRlcm1pdHRlbnQsIHJl
bW92ZV9pbnRlcm1pdHRlbnQpOgogICAgIGV4cGVjdGVkX21hbmlmZXN0ID0gbWFuaWZlc3R1cGRh
dGUuZ2V0X21hbmlmZXN0KG1ldGFkYXRhX3BhdGgsCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgdGVzdF9wYXRoLAogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVybF9iYXNlLAotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByb3BlcnR5X29yZGVyPXBy
b3BlcnR5X29yZGVyLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGJvb2xlYW5fcHJvcGVydGllcz1ib29sZWFuX3Byb3BlcnRpZXMpCi0gICAgaWYg
ZXhwZWN0ZWRfbWFuaWZlc3QgaXMgTm9uZToKLSAgICAgICAgcmV0dXJuCi0KLSAgICAjIFJlbW92
ZSBleHBlY3RlZCBkYXRhIGZvciB0ZXN0cyB0aGF0IG5vIGxvbmdlciBleGlzdAotICAgIGZvciB0
ZXN0IGluIGV4cGVjdGVkX21hbmlmZXN0Lml0ZXJjaGlsZHJlbigpOgotICAgICAgICBpZiB0ZXN0
LmlkIG5vdCBpbiB0ZXN0czoKLSAgICAgICAgICAgIHRlc3QucmVtb3ZlKCkKLQorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJ1bl9pbmZvX3Byb3Bl
cnRpZXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgdXBkYXRlX2ludGVybWl0dGVudCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICByZW1vdmVfaW50ZXJtaXR0ZW50KQogICAgIHJldHVybiBleHBl
Y3RlZF9tYW5pZmVzdApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3Byb2R1Y3RzLnB5IGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIv
d3B0cnVubmVyL3Byb2R1Y3RzLnB5CmluZGV4IDBjMWY4NmZmMDZhLi5lMzExNzA0MjcwOSAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy93cHRydW5uZXIvd3B0cnVubmVyL3Byb2R1Y3RzLnB5CisrKyBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9wcm9k
dWN0cy5weQpAQCAtMyw2ICszLDcgQEAgaW1wb3J0IGltcAogCiBmcm9tIC5icm93c2VycyBpbXBv
cnQgcHJvZHVjdF9saXN0CiAKKwogZGVmIHByb2R1Y3RzX2VuYWJsZWQoY29uZmlnKToKICAgICBu
YW1lcyA9IGNvbmZpZy5nZXQoInByb2R1Y3RzIiwge30pLmtleXMoKQogICAgIGlmIG5vdCBuYW1l
czoKQEAgLTEwLDYgKzExLDcgQEAgZGVmIHByb2R1Y3RzX2VuYWJsZWQoY29uZmlnKToKICAgICBl
bHNlOgogICAgICAgICByZXR1cm4gbmFtZXMKIAorCiBkZWYgcHJvZHVjdF9tb2R1bGUoY29uZmln
LCBwcm9kdWN0KToKICAgICBpZiBwcm9kdWN0IG5vdCBpbiBwcm9kdWN0c19lbmFibGVkKGNvbmZp
Zyk6CiAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoIlVua25vd24gcHJvZHVjdCAlcyIgJSBwcm9k
dWN0KQpAQCAtMjYsMjggKzI4LDM5IEBAIGRlZiBwcm9kdWN0X21vZHVsZShjb25maWcsIHByb2R1
Y3QpOgogICAgIHJldHVybiBtb2R1bGUKIAogCi1kZWYgbG9hZF9wcm9kdWN0KGNvbmZpZywgcHJv
ZHVjdCk6Ci0gICAgbW9kdWxlID0gcHJvZHVjdF9tb2R1bGUoY29uZmlnLCBwcm9kdWN0KQotICAg
IGRhdGEgPSBtb2R1bGUuX193cHRydW5uZXJfXwotCi0gICAgY2hlY2tfYXJncyA9IGdldGF0dHIo
bW9kdWxlLCBkYXRhWyJjaGVja19hcmdzIl0pCi0gICAgYnJvd3Nlcl9jbHMgPSBnZXRhdHRyKG1v
ZHVsZSwgZGF0YVsiYnJvd3NlciJdKQotICAgIGJyb3dzZXJfa3dhcmdzID0gZ2V0YXR0cihtb2R1
bGUsIGRhdGFbImJyb3dzZXJfa3dhcmdzIl0pCi0gICAgZXhlY3V0b3Jfa3dhcmdzID0gZ2V0YXR0
cihtb2R1bGUsIGRhdGFbImV4ZWN1dG9yX2t3YXJncyJdKQotICAgIGVudl9vcHRpb25zID0gZ2V0
YXR0cihtb2R1bGUsIGRhdGFbImVudl9vcHRpb25zIl0pKCkKLSAgICBlbnZfZXh0cmFzID0gZ2V0
YXR0cihtb2R1bGUsIGRhdGFbImVudl9leHRyYXMiXSkKLSAgICBydW5faW5mb19leHRyYXMgPSAo
Z2V0YXR0cihtb2R1bGUsIGRhdGFbInJ1bl9pbmZvX2V4dHJhcyJdKQotICAgICAgICAgICAgICAg
ICAgICAgICBpZiAicnVuX2luZm9fZXh0cmFzIiBpbiBkYXRhIGVsc2UgbGFtYmRhICoqa3dhcmdz
Ont9KQotCi0gICAgZXhlY3V0b3JfY2xhc3NlcyA9IHt9Ci0gICAgZm9yIHRlc3RfdHlwZSwgY2xz
X25hbWUgaW4gZGF0YVsiZXhlY3V0b3IiXS5pdGVyaXRlbXMoKToKLSAgICAgICAgY2xzID0gZ2V0
YXR0cihtb2R1bGUsIGNsc19uYW1lKQotICAgICAgICBleGVjdXRvcl9jbGFzc2VzW3Rlc3RfdHlw
ZV0gPSBjbHMKLQotICAgIHJldHVybiAoY2hlY2tfYXJncywKLSAgICAgICAgICAgIGJyb3dzZXJf
Y2xzLCBicm93c2VyX2t3YXJncywKLSAgICAgICAgICAgIGV4ZWN1dG9yX2NsYXNzZXMsIGV4ZWN1
dG9yX2t3YXJncywKLSAgICAgICAgICAgIGVudl9vcHRpb25zLCBlbnZfZXh0cmFzLCBydW5faW5m
b19leHRyYXMpCitjbGFzcyBQcm9kdWN0KG9iamVjdCk6CisgICAgZGVmIF9faW5pdF9fKHNlbGYs
IGNvbmZpZywgcHJvZHVjdCk6CisgICAgICAgIG1vZHVsZSA9IHByb2R1Y3RfbW9kdWxlKGNvbmZp
ZywgcHJvZHVjdCkKKyAgICAgICAgZGF0YSA9IG1vZHVsZS5fX3dwdHJ1bm5lcl9fCisgICAgICAg
IHNlbGYubmFtZSA9IHByb2R1Y3QKKyAgICAgICAgc2VsZi5jaGVja19hcmdzID0gZ2V0YXR0ciht
b2R1bGUsIGRhdGFbImNoZWNrX2FyZ3MiXSkKKyAgICAgICAgc2VsZi5icm93c2VyX2NscyA9IGdl
dGF0dHIobW9kdWxlLCBkYXRhWyJicm93c2VyIl0pCisgICAgICAgIHNlbGYuZ2V0X2Jyb3dzZXJf
a3dhcmdzID0gZ2V0YXR0cihtb2R1bGUsIGRhdGFbImJyb3dzZXJfa3dhcmdzIl0pCisgICAgICAg
IHNlbGYuZ2V0X2V4ZWN1dG9yX2t3YXJncyA9IGdldGF0dHIobW9kdWxlLCBkYXRhWyJleGVjdXRv
cl9rd2FyZ3MiXSkKKyAgICAgICAgc2VsZi5lbnZfb3B0aW9ucyA9IGdldGF0dHIobW9kdWxlLCBk
YXRhWyJlbnZfb3B0aW9ucyJdKSgpCisgICAgICAgIHNlbGYuZ2V0X2Vudl9leHRyYXMgPSBnZXRh
dHRyKG1vZHVsZSwgZGF0YVsiZW52X2V4dHJhcyJdKQorICAgICAgICBzZWxmLnJ1bl9pbmZvX2V4
dHJhcyA9IChnZXRhdHRyKG1vZHVsZSwgZGF0YVsicnVuX2luZm9fZXh0cmFzIl0pCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICBpZiAicnVuX2luZm9fZXh0cmFzIiBpbiBkYXRhIGVsc2UgbGFt
YmRhICoqa3dhcmdzOnt9KQorICAgICAgICBzZWxmLmdldF90aW1lb3V0X211bHRpcGxpZXIgPSBn
ZXRhdHRyKG1vZHVsZSwgZGF0YVsidGltZW91dF9tdWx0aXBsaWVyIl0pCisKKyAgICAgICAgc2Vs
Zi5leGVjdXRvcl9jbGFzc2VzID0ge30KKyAgICAgICAgZm9yIHRlc3RfdHlwZSwgY2xzX25hbWUg
aW4gZGF0YVsiZXhlY3V0b3IiXS5pdGVyaXRlbXMoKToKKyAgICAgICAgICAgIGNscyA9IGdldGF0
dHIobW9kdWxlLCBjbHNfbmFtZSkKKyAgICAgICAgICAgIHNlbGYuZXhlY3V0b3JfY2xhc3Nlc1t0
ZXN0X3R5cGVdID0gY2xzCisKKworZGVmIGxvYWRfcHJvZHVjdChjb25maWcsIHByb2R1Y3QsIGxv
YWRfY2xzPUZhbHNlKToKKyAgICBydiA9IFByb2R1Y3QoY29uZmlnLCBwcm9kdWN0KQorICAgIGlm
IG5vdCBsb2FkX2NsczoKKyAgICAgICAgcmV0dXJuIChydi5jaGVja19hcmdzLAorICAgICAgICAg
ICAgICAgIHJ2LmJyb3dzZXJfY2xzLAorICAgICAgICAgICAgICAgIHJ2LmdldF9icm93c2VyX2t3
YXJncywKKyAgICAgICAgICAgICAgICBydi5leGVjdXRvcl9jbGFzc2VzLAorICAgICAgICAgICAg
ICAgIHJ2LmdldF9leGVjdXRvcl9rd2FyZ3MsCisgICAgICAgICAgICAgICAgcnYuZW52X29wdGlv
bnMsCisgICAgICAgICAgICAgICAgcnYuZ2V0X2Vudl9leHRyYXMsCisgICAgICAgICAgICAgICAg
cnYucnVuX2luZm9fZXh0cmFzKQorICAgIHJldHVybiBydgogCiAKIGRlZiBsb2FkX3Byb2R1Y3Rf
dXBkYXRlKGNvbmZpZywgcHJvZHVjdCk6CkBAIC02MCw2ICs3Myw2IEBAIGRlZiBsb2FkX3Byb2R1
Y3RfdXBkYXRlKGNvbmZpZywgcHJvZHVjdCk6CiAgICAgZGF0YSA9IG1vZHVsZS5fX3dwdHJ1bm5l
cl9fCiAKICAgICB1cGRhdGVfcHJvcGVydGllcyA9IChnZXRhdHRyKG1vZHVsZSwgZGF0YVsidXBk
YXRlX3Byb3BlcnRpZXMiXSkoKQotICAgICAgICAgICAgICAgICAgICAgICAgIGlmICJ1cGRhdGVf
cHJvcGVydGllcyIgaW4gZGF0YSBlbHNlIChOb25lLCBOb25lKSkKKyAgICAgICAgICAgICAgICAg
ICAgICAgICBpZiAidXBkYXRlX3Byb3BlcnRpZXMiIGluIGRhdGEgZWxzZSB7fSkKIAogICAgIHJl
dHVybiB1cGRhdGVfcHJvcGVydGllcwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3N0YWJpbGl0
eS5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
d3B0cnVubmVyL3dwdHJ1bm5lci9zdGFiaWxpdHkucHkKaW5kZXggODU5ZjAxNDQ0ZDMuLmMwNmY3
ZTVlOWQ2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvc3RhYmlsaXR5LnB5CisrKyBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dw
dHJ1bm5lci9zdGFiaWxpdHkucHkKQEAgLTE1LDYgKzE1LDExIEBAIGxvY2FscGF0aHMgPSBpbXAu
bG9hZF9zb3VyY2UoImxvY2FscGF0aHMiLCBvcy5wYXRoLmFic3BhdGgob3MucGF0aC5qb2luKGhl
cmUsIG9zCiBmcm9tIHdwdC5tYXJrZG93biBpbXBvcnQgbWFya2Rvd25fYWRqdXN0LCB0YWJsZQog
CiAKKyMgSWYgYSB0ZXN0IHRha2VzIG1vcmUgdGhhbiAoRkxBS1lfVEhSRVNIT0xEKnRpbWVvdXQp
IGFuZCBkb2VzIG5vdCBjb25zaXN0ZW50bHkKKyMgdGltZSBvdXQsIGl0IGlzIGNvbnNpZGVyZWQg
c2xvdyAocG90ZW50aWFsbHkgZmxha3kpLgorRkxBS1lfVEhSRVNIT0xEID0gMC44CisKKwogY2xh
c3MgTG9nQWN0aW9uRmlsdGVyKEJhc2VIYW5kbGVyKToKIAogICAgICIiIkhhbmRsZXIgdGhhdCBm
aWx0ZXJzIG91dCBtZXNzYWdlcyBub3Qgb2YgYSBnaXZlbiBzZXQgb2YgYWN0aW9ucy4KQEAgLTUz
LDcgKzU4LDggQEAgY2xhc3MgTG9nSGFuZGxlcihyZWFkZXIuTG9nSGFuZGxlcik6CiAKICAgICAg
ICAgdGVzdCA9IHsKICAgICAgICAgICAgICJzdWJ0ZXN0cyI6IE9yZGVyZWREaWN0KCksCi0gICAg
ICAgICAgICAic3RhdHVzIjogZGVmYXVsdGRpY3QoaW50KQorICAgICAgICAgICAgInN0YXR1cyI6
IGRlZmF1bHRkaWN0KGludCksCisgICAgICAgICAgICAibG9uZ2VzdF9kdXJhdGlvbiI6IGRlZmF1
bHRkaWN0KGZsb2F0KSwKICAgICAgICAgfQogICAgICAgICBzZWxmLnJlc3VsdHNbdGVzdF9uYW1l
XSA9IHRlc3QKICAgICAgICAgcmV0dXJuIHRlc3QKQEAgLTczLDYgKzc5LDEwIEBAIGNsYXNzIExv
Z0hhbmRsZXIocmVhZGVyLkxvZ0hhbmRsZXIpOgogCiAgICAgICAgIHJldHVybiBzdWJ0ZXN0CiAK
KyAgICBkZWYgdGVzdF9zdGFydChzZWxmLCBkYXRhKToKKyAgICAgICAgdGVzdCA9IHNlbGYuZmlu
ZF9vcl9jcmVhdGVfdGVzdChkYXRhKQorICAgICAgICB0ZXN0WyJzdGFydF90aW1lIl0gPSBkYXRh
WyJ0aW1lIl0KKwogICAgIGRlZiB0ZXN0X3N0YXR1cyhzZWxmLCBkYXRhKToKICAgICAgICAgc3Vi
dGVzdCA9IHNlbGYuZmluZF9vcl9jcmVhdGVfc3VidGVzdChkYXRhKQogICAgICAgICBzdWJ0ZXN0
WyJzdGF0dXMiXVtkYXRhWyJzdGF0dXMiXV0gKz0gMQpAQCAtODIsNiArOTIsMTYgQEAgY2xhc3Mg
TG9nSGFuZGxlcihyZWFkZXIuTG9nSGFuZGxlcik6CiAgICAgZGVmIHRlc3RfZW5kKHNlbGYsIGRh
dGEpOgogICAgICAgICB0ZXN0ID0gc2VsZi5maW5kX29yX2NyZWF0ZV90ZXN0KGRhdGEpCiAgICAg
ICAgIHRlc3RbInN0YXR1cyJdW2RhdGFbInN0YXR1cyJdXSArPSAxCisgICAgICAgICMgVGltZXN0
YW1wcyBhcmUgaW4gbXMgc2luY2UgZXBvY2guCisgICAgICAgIGR1cmF0aW9uID0gZGF0YVsidGlt
ZSJdIC0gdGVzdC5wb3AoInN0YXJ0X3RpbWUiKQorICAgICAgICB0ZXN0WyJsb25nZXN0X2R1cmF0
aW9uIl1bZGF0YVsic3RhdHVzIl1dID0gbWF4KAorICAgICAgICAgICAgZHVyYXRpb24sIHRlc3Rb
Imxvbmdlc3RfZHVyYXRpb24iXVtkYXRhWyJzdGF0dXMiXV0pCisgICAgICAgIHRyeToKKyAgICAg
ICAgICAgICMgdGVzdF90aW1lb3V0IGlzIGluIHNlY29uZHM7IGNvbnZlcnQgaXQgdG8gbXMuCisg
ICAgICAgICAgICB0ZXN0WyJ0aW1lb3V0Il0gPSBkYXRhWyJleHRyYSJdWyJ0ZXN0X3RpbWVvdXQi
XSAqIDEwMDAKKyAgICAgICAgZXhjZXB0IEtleUVycm9yOgorICAgICAgICAgICAgIyBJZiBhIHRl
c3QgaXMgc2tpcHBlZCwgaXQgd29uJ3QgaGF2ZSBleHRyYSBpbmZvLgorICAgICAgICAgICAgcGFz
cwogCiAKIGRlZiBpc19pbmNvbnNpc3RlbnQocmVzdWx0c19kaWN0LCBpdGVyYXRpb25zKToKQEAg
LTkxLDkgKzExMSwzMiBAQCBkZWYgaXNfaW5jb25zaXN0ZW50KHJlc3VsdHNfZGljdCwgaXRlcmF0
aW9ucyk6CiAgICAgcmV0dXJuIGxlbihyZXN1bHRzX2RpY3QpID4gMSBvciBzdW0ocmVzdWx0c19k
aWN0LnZhbHVlcygpKSAhPSBpdGVyYXRpb25zCiAKIAorZGVmIGZpbmRfc2xvd19zdGF0dXModGVz
dCk6CisgICAgIiIiQ2hlY2sgaWYgYSBzaW5nbGUgdGVzdCBhbG1vc3QgdGltZXMgb3V0LgorCisg
ICAgV2UgYXJlIGludGVyZXN0ZWQgaW4gdGVzdHMgdGhhdCBhbG1vc3QgdGltZSBvdXQgKGkuZS4g
bGlrZWx5IHRvIGJlIGZsYWt5KS4KKyAgICBUaGVyZWZvcmUsIHRpbWVvdXQgc3RhdHVzZXMgYXJl
IGlnbm9yZWQsIGluY2x1ZGluZyAoRVhURVJOQUwtKVRJTUVPVVQuCisgICAgQ1JBU0ggJiBFUlJP
UiBhcmUgYWxzbyBpZ25vcmVkIGJlY2F1c2UgdGhlIHRoZXkgb3ZlcnJpZGUgVElNRU9VVDsgYSB0
ZXN0CisgICAgdGhhdCBib3RoIGNyYXNoZXMgYW5kIHRpbWVzIG91dCBpcyBtYXJrZWQgYXMgQ1JB
U0gsIHNvIGl0IHdvbid0IGJlIGZsYWt5LgorCisgICAgUmV0dXJuczoKKyAgICAgICAgQSByZXN1
bHQgc3RhdHVzIHByb2R1Y2VkIGJ5IGEgcnVuIHRoYXQgYWxtb3N0IHRpbWVzIG91dDsgTm9uZSwg
aWYgbm8KKyAgICAgICAgcnVucyBhbG1vc3QgdGltZSBvdXQuCisgICAgIiIiCisgICAgaWYgInRp
bWVvdXQiIG5vdCBpbiB0ZXN0OgorICAgICAgICByZXR1cm4gTm9uZQorICAgIHRocmVzaG9sZCA9
IHRlc3RbInRpbWVvdXQiXSAqIEZMQUtZX1RIUkVTSE9MRAorICAgIGZvciBzdGF0dXMgaW4gWydQ
QVNTJywgJ0ZBSUwnLCAnT0snXToKKyAgICAgICAgaWYgKHN0YXR1cyBpbiB0ZXN0WyJsb25nZXN0
X2R1cmF0aW9uIl0gYW5kCisgICAgICAgICAgICB0ZXN0WyJsb25nZXN0X2R1cmF0aW9uIl1bc3Rh
dHVzXSA+IHRocmVzaG9sZCk6CisgICAgICAgICAgICByZXR1cm4gc3RhdHVzCisgICAgcmV0dXJu
IE5vbmUKKworCiBkZWYgcHJvY2Vzc19yZXN1bHRzKGxvZywgaXRlcmF0aW9ucyk6CiAgICAgIiIi
UHJvY2VzcyB0ZXN0IGxvZyBhbmQgcmV0dXJuIG92ZXJhbGwgcmVzdWx0cyBhbmQgbGlzdCBvZiBp
bmNvbnNpc3RlbnQgdGVzdHMuIiIiCiAgICAgaW5jb25zaXN0ZW50ID0gW10KKyAgICBzbG93ID0g
W10KICAgICBoYW5kbGVyID0gTG9nSGFuZGxlcigpCiAgICAgcmVhZGVyLmhhbmRsZV9sb2cocmVh
ZGVyLnJlYWQobG9nKSwgaGFuZGxlcikKICAgICByZXN1bHRzID0gaGFuZGxlci5yZXN1bHRzCkBA
IC0xMDMsMTYgKzE0NiwyOSBAQCBkZWYgcHJvY2Vzc19yZXN1bHRzKGxvZywgaXRlcmF0aW9ucyk6
CiAgICAgICAgIGZvciBzdWJ0ZXN0X25hbWUsIHN1YnRlc3QgaW4gdGVzdFsic3VidGVzdHMiXS5p
dGVyaXRlbXMoKToKICAgICAgICAgICAgIGlmIGlzX2luY29uc2lzdGVudChzdWJ0ZXN0WyJzdGF0
dXMiXSwgaXRlcmF0aW9ucyk6CiAgICAgICAgICAgICAgICAgaW5jb25zaXN0ZW50LmFwcGVuZCgo
dGVzdF9uYW1lLCBzdWJ0ZXN0X25hbWUsIHN1YnRlc3RbInN0YXR1cyJdLCBzdWJ0ZXN0WyJtZXNz
YWdlcyJdKSkKLSAgICByZXR1cm4gcmVzdWx0cywgaW5jb25zaXN0ZW50CisKKyAgICAgICAgc2xv
d19zdGF0dXMgPSBmaW5kX3Nsb3dfc3RhdHVzKHRlc3QpCisgICAgICAgIGlmIHNsb3dfc3RhdHVz
IGlzIG5vdCBOb25lOgorICAgICAgICAgICAgc2xvdy5hcHBlbmQoKAorICAgICAgICAgICAgICAg
IHRlc3RfbmFtZSwKKyAgICAgICAgICAgICAgICBzbG93X3N0YXR1cywKKyAgICAgICAgICAgICAg
ICB0ZXN0WyJsb25nZXN0X2R1cmF0aW9uIl1bc2xvd19zdGF0dXNdLAorICAgICAgICAgICAgICAg
IHRlc3RbInRpbWVvdXQiXQorICAgICAgICAgICAgKSkKKworICAgIHJldHVybiByZXN1bHRzLCBp
bmNvbnNpc3RlbnQsIHNsb3cKIAogCiBkZWYgZXJyX3N0cmluZyhyZXN1bHRzX2RpY3QsIGl0ZXJh
dGlvbnMpOgogICAgICIiIkNyZWF0ZSBhbmQgcmV0dXJuIHN0cmluZyB3aXRoIGVycm9ycyBmcm9t
IHRlc3QgcnVuLiIiIgogICAgIHJ2ID0gW10KICAgICB0b3RhbF9yZXN1bHRzID0gc3VtKHJlc3Vs
dHNfZGljdC52YWx1ZXMoKSkKLSAgICBmb3Iga2V5LCB2YWx1ZSBpbiBzb3J0ZWQocmVzdWx0c19k
aWN0Lml0ZW1zKCkpOgotICAgICAgICBydi5hcHBlbmQoIiVzJXMiICUKLSAgICAgICAgICAgICAg
ICAgIChrZXksICI6ICVzLyVzIiAlICh2YWx1ZSwgaXRlcmF0aW9ucykgaWYgdmFsdWUgIT0gaXRl
cmF0aW9ucyBlbHNlICIiKSkKKyAgICBpZiB0b3RhbF9yZXN1bHRzID4gaXRlcmF0aW9uczoKKyAg
ICAgICAgcnYuYXBwZW5kKCJEdXBsaWNhdGUgc3VidGVzdCBuYW1lIikKKyAgICBlbHNlOgorICAg
ICAgICBmb3Iga2V5LCB2YWx1ZSBpbiBzb3J0ZWQocmVzdWx0c19kaWN0Lml0ZW1zKCkpOgorICAg
ICAgICAgICAgcnYuYXBwZW5kKCIlcyVzIiAlCisgICAgICAgICAgICAgICAgICAgICAgKGtleSwg
IjogJXMvJXMiICUgKHZhbHVlLCBpdGVyYXRpb25zKSBpZiB2YWx1ZSAhPSBpdGVyYXRpb25zIGVs
c2UgIiIpKQogICAgIGlmIHRvdGFsX3Jlc3VsdHMgPCBpdGVyYXRpb25zOgogICAgICAgICBydi5h
cHBlbmQoIk1JU1NJTkc6ICVzLyVzIiAlIChpdGVyYXRpb25zIC0gdG90YWxfcmVzdWx0cywgaXRl
cmF0aW9ucykpCiAgICAgcnYgPSAiLCAiLmpvaW4ocnYpCkBAIC0xMzMsNiArMTg5LDE3IEBAIGRl
ZiB3cml0ZV9pbmNvbnNpc3RlbnQobG9nLCBpbmNvbnNpc3RlbnQsIGl0ZXJhdGlvbnMpOgogICAg
IHRhYmxlKFsiVGVzdCIsICJTdWJ0ZXN0IiwgIlJlc3VsdHMiLCAiTWVzc2FnZXMiXSwgc3RyaW5n
cywgbG9nKQogCiAKK2RlZiB3cml0ZV9zbG93X3Rlc3RzKGxvZywgc2xvdyk6CisgICAgbG9nKCIj
IyBTbG93IHRlc3RzICMjXG4iKQorICAgIHN0cmluZ3MgPSBbKAorICAgICAgICAiYCVzYCIgJSBt
YXJrZG93bl9hZGp1c3QodGVzdCksCisgICAgICAgICJgJXNgIiAlIHN0YXR1cywKKyAgICAgICAg
ImAlLjBmYCIgJSBkdXJhdGlvbiwKKyAgICAgICAgImAlLjBmYCIgJSB0aW1lb3V0KQorICAgICAg
ICBmb3IgdGVzdCwgc3RhdHVzLCBkdXJhdGlvbiwgdGltZW91dCBpbiBzbG93XQorICAgIHRhYmxl
KFsiVGVzdCIsICJSZXN1bHQiLCAiTG9uZ2VzdCBkdXJhdGlvbiAobXMpIiwgIlRpbWVvdXQgKG1z
KSJdLCBzdHJpbmdzLCBsb2cpCisKKwogZGVmIHdyaXRlX3Jlc3VsdHMobG9nLCByZXN1bHRzLCBp
dGVyYXRpb25zLCBwcl9udW1iZXI9Tm9uZSwgdXNlX2RldGFpbHM9RmFsc2UpOgogICAgIGxvZygi
IyMgQWxsIHJlc3VsdHMgIyNcbiIpCiAgICAgaWYgdXNlX2RldGFpbHM6CkBAIC0yMDIsOCArMjY5
LDggQEAgZGVmIHJ1bl9zdGVwKGxvZ2dlciwgaXRlcmF0aW9ucywgcmVzdGFydF9hZnRlcl9pdGVy
YXRpb24sIGt3YXJnc19leHRyYXMsICoqa3dhcmcKICAgICBsb2dnZXIuX3N0YXRlLnN1aXRlX3N0
YXJ0ZWQgPSBGYWxzZQogCiAgICAgbG9nLnNlZWsoMCkKLSAgICByZXN1bHRzLCBpbmNvbnNpc3Rl
bnQgPSBwcm9jZXNzX3Jlc3VsdHMobG9nLCBpdGVyYXRpb25zKQotICAgIHJldHVybiByZXN1bHRz
LCBpbmNvbnNpc3RlbnQsIGl0ZXJhdGlvbnMKKyAgICByZXN1bHRzLCBpbmNvbnNpc3RlbnQsIHNs
b3cgPSBwcm9jZXNzX3Jlc3VsdHMobG9nLCBpdGVyYXRpb25zKQorICAgIHJldHVybiByZXN1bHRz
LCBpbmNvbnNpc3RlbnQsIHNsb3csIGl0ZXJhdGlvbnMKIAogCiBkZWYgZ2V0X3N0ZXBzKGxvZ2dl
ciwgcmVwZWF0X2xvb3AsIHJlcGVhdF9yZXN0YXJ0LCBrd2FyZ3NfZXh0cmFzKToKQEAgLTI0Miw3
ICszMDksNiBAQCBkZWYgd3JpdGVfc3VtbWFyeShsb2dnZXIsIHN0ZXBfcmVzdWx0cywgZmluYWxf
cmVzdWx0KToKIAogICAgIGxvZ2dlci5pbmZvKCc6OjonKQogCi0KIGRlZiBjaGVja19zdGFiaWxp
dHkobG9nZ2VyLCByZXBlYXRfbG9vcD0xMCwgcmVwZWF0X3Jlc3RhcnQ9NSwgY2hhb3NfbW9kZT1U
cnVlLCBtYXhfdGltZT1Ob25lLAogICAgICAgICAgICAgICAgICAgICBvdXRwdXRfcmVzdWx0cz1U
cnVlLCAqKmt3YXJncyk6CiAgICAga3dhcmdzX2V4dHJhcyA9IFt7fV0KQEAgLTI2NCw3ICszMzAs
NyBAQCBkZWYgY2hlY2tfc3RhYmlsaXR5KGxvZ2dlciwgcmVwZWF0X2xvb3A9MTAsIHJlcGVhdF9y
ZXN0YXJ0PTUsIGNoYW9zX21vZGU9VHJ1ZSwgbQogICAgICAgICBsb2dnZXIuaW5mbygnOjo6JykK
ICAgICAgICAgbG9nZ2VyLmluZm8oJzo6OiBSdW5uaW5nIHRlc3QgdmVyaWZpY2F0aW9uIHN0ZXAg
IiVzIi4uLicgJSBkZXNjKQogICAgICAgICBsb2dnZXIuaW5mbygnOjo6JykKLSAgICAgICAgcmVz
dWx0cywgaW5jb25zaXN0ZW50LCBpdGVyYXRpb25zID0gc3RlcF9mdW5jKCoqa3dhcmdzKQorICAg
ICAgICByZXN1bHRzLCBpbmNvbnNpc3RlbnQsIHNsb3csIGl0ZXJhdGlvbnMgPSBzdGVwX2Z1bmMo
Kiprd2FyZ3MpCiAgICAgICAgIGlmIG91dHB1dF9yZXN1bHRzOgogICAgICAgICAgICAgd3JpdGVf
cmVzdWx0cyhsb2dnZXIuaW5mbywgcmVzdWx0cywgaXRlcmF0aW9ucykKIApAQCAtMjc0LDYgKzM0
MCwxMiBAQCBkZWYgY2hlY2tfc3RhYmlsaXR5KGxvZ2dlciwgcmVwZWF0X2xvb3A9MTAsIHJlcGVh
dF9yZXN0YXJ0PTUsIGNoYW9zX21vZGU9VHJ1ZSwgbQogICAgICAgICAgICAgd3JpdGVfc3VtbWFy
eShsb2dnZXIsIHN0ZXBfcmVzdWx0cywgIkZBSUwiKQogICAgICAgICAgICAgcmV0dXJuIDEKIAor
ICAgICAgICBpZiBzbG93OgorICAgICAgICAgICAgc3RlcF9yZXN1bHRzLmFwcGVuZCgoZGVzYywg
IkZBSUwiKSkKKyAgICAgICAgICAgIHdyaXRlX3Nsb3dfdGVzdHMobG9nZ2VyLmluZm8sIHNsb3cp
CisgICAgICAgICAgICB3cml0ZV9zdW1tYXJ5KGxvZ2dlciwgc3RlcF9yZXN1bHRzLCAiRkFJTCIp
CisgICAgICAgICAgICByZXR1cm4gMQorCiAgICAgICAgIHN0ZXBfcmVzdWx0cy5hcHBlbmQoKGRl
c2MsICJQQVNTIikpCiAKICAgICB3cml0ZV9zdW1tYXJ5KGxvZ2dlciwgc3RlcF9yZXN1bHRzLCAi
UEFTUyIpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvdGVzdGRyaXZlci1leHRyYS5qcyBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVy
L3dwdHJ1bm5lci90ZXN0ZHJpdmVyLWV4dHJhLmpzCmluZGV4IGVmOTYyZDM1ZjIyLi4yNzhmMjI2
ZGJkMiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3Rlc3Rkcml2ZXItZXh0cmEuanMKKysrIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5u
ZXIvd3B0cnVubmVyL3Rlc3Rkcml2ZXItZXh0cmEuanMKQEAgLTMsNiArMyw3IEBACiAoZnVuY3Rp
b24oKXsKICAgICBsZXQgcGVuZGluZ19yZXNvbHZlID0gbnVsbDsKICAgICBsZXQgcGVuZGluZ19y
ZWplY3QgPSBudWxsOworICAgIGxldCByZXN1bHQgPSBudWxsOwogICAgIHdpbmRvdy5hZGRFdmVu
dExpc3RlbmVyKCJtZXNzYWdlIiwgZnVuY3Rpb24oZXZlbnQpIHsKICAgICAgICAgY29uc3QgZGF0
YSA9IGV2ZW50LmRhdGE7CiAKQEAgLTE1LDE2ICsxNiwzMyBAQAogICAgICAgICB9CiAKICAgICAg
ICAgaWYgKGRhdGEuc3RhdHVzID09PSAic3VjY2VzcyIpIHsKLSAgICAgICAgICAgIHBlbmRpbmdf
cmVzb2x2ZSgpOworICAgICAgICAgICAgcmVzdWx0ID0gSlNPTi5wYXJzZShkYXRhLm1lc3NhZ2Up
LnJlc3VsdAorICAgICAgICAgICAgcGVuZGluZ19yZXNvbHZlKHJlc3VsdCk7CiAgICAgICAgIH0g
ZWxzZSB7CiAgICAgICAgICAgICBwZW5kaW5nX3JlamVjdCgpOwogICAgICAgICB9CiAgICAgfSk7
CiAKKyAgICBjb25zdCBnZXRfZnJhbWUgPSBmdW5jdGlvbihlbGVtZW50LCBmcmFtZSkgeworICAg
ICAgICBsZXQgZm91bmRGcmFtZSA9IGZyYW1lOworICAgICAgICBsZXQgZnJhbWVEb2N1bWVudCA9
IGZyYW1lID09IHdpbmRvdyA/IHdpbmRvdy5kb2N1bWVudCA6IGZyYW1lLmNvbnRlbnREb2N1bWVu
dDsKKyAgICAgICAgaWYgKCFmcmFtZURvY3VtZW50LmNvbnRhaW5zKGVsZW1lbnQpKSB7CisgICAg
ICAgICAgZm91bmRGcmFtZSA9IG51bGw7CisgICAgICAgICAgbGV0IGZyYW1lcyA9IGRvY3VtZW50
LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJpZnJhbWUiKTsKKyAgICAgICAgICBmb3IgKGxldCBpID0g
MDsgaSA8IGZyYW1lcy5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgaWYgKGdldF9mcmFtZShl
bGVtZW50LCBmcmFtZXNbaV0pKSB7CisgICAgICAgICAgICAgIGZvdW5kRnJhbWUgPSBmcmFtZXNb
aV07CisgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICAgIH0KKyAg
ICAgICAgfQorICAgICAgICByZXR1cm4gZm91bmRGcmFtZTsKKyAgICB9OworCiAgICAgY29uc3Qg
Z2V0X3NlbGVjdG9yID0gZnVuY3Rpb24oZWxlbWVudCkgewogICAgICAgICBsZXQgc2VsZWN0b3I7
CiAKLSAgICAgICAgaWYgKGVsZW1lbnQuaWQgJiYgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoZWxl
bWVudC5pZCkgPT09IGVsZW1lbnQpIHsKKyAgICAgICAgaWYgKGVsZW1lbnQuaWQpIHsKICAgICAg
ICAgICAgIGNvbnN0IGlkID0gZWxlbWVudC5pZDsKIAogICAgICAgICAgICAgc2VsZWN0b3IgPSAi
IyI7CkBAIC01MSwxMyArNjksMTUgQEAKICAgICAgICAgcmV0dXJuIHNlbGVjdG9yOwogICAgIH07
CiAKKyAgICB3aW5kb3cudGVzdF9kcml2ZXJfaW50ZXJuYWwuaW5fYXV0b21hdGlvbiA9IHRydWU7
CisKICAgICB3aW5kb3cudGVzdF9kcml2ZXJfaW50ZXJuYWwuY2xpY2sgPSBmdW5jdGlvbihlbGVt
ZW50KSB7CiAgICAgICAgIGNvbnN0IHNlbGVjdG9yID0gZ2V0X3NlbGVjdG9yKGVsZW1lbnQpOwog
ICAgICAgICBjb25zdCBwZW5kaW5nX3Byb21pc2UgPSBuZXcgUHJvbWlzZShmdW5jdGlvbihyZXNv
bHZlLCByZWplY3QpIHsKICAgICAgICAgICAgIHBlbmRpbmdfcmVzb2x2ZSA9IHJlc29sdmU7CiAg
ICAgICAgICAgICBwZW5kaW5nX3JlamVjdCA9IHJlamVjdDsKICAgICAgICAgfSk7Ci0gICAgICAg
IHdpbmRvdy5vcGVuZXIucG9zdE1lc3NhZ2UoeyJ0eXBlIjogImFjdGlvbiIsICJhY3Rpb24iOiAi
Y2xpY2siLCAic2VsZWN0b3IiOiBzZWxlY3Rvcn0sICIqIik7CisgICAgICAgIHdpbmRvdy5fX3dw
dHJ1bm5lcl9tZXNzYWdlX3F1ZXVlLnB1c2goeyJ0eXBlIjogImFjdGlvbiIsICJhY3Rpb24iOiAi
Y2xpY2siLCAic2VsZWN0b3IiOiBzZWxlY3Rvcn0pOwogICAgICAgICByZXR1cm4gcGVuZGluZ19w
cm9taXNlOwogICAgIH07CiAKQEAgLTY3LDcgKzg3LDEwNSBAQAogICAgICAgICAgICAgcGVuZGlu
Z19yZXNvbHZlID0gcmVzb2x2ZTsKICAgICAgICAgICAgIHBlbmRpbmdfcmVqZWN0ID0gcmVqZWN0
OwogICAgICAgICB9KTsKLSAgICAgICAgd2luZG93Lm9wZW5lci5wb3N0TWVzc2FnZSh7InR5cGUi
OiAiYWN0aW9uIiwgImFjdGlvbiI6ICJzZW5kX2tleXMiLCAic2VsZWN0b3IiOiBzZWxlY3Rvciwg
ImtleXMiOiBrZXlzfSwgIioiKTsKKyAgICAgICAgd2luZG93Ll9fd3B0cnVubmVyX21lc3NhZ2Vf
cXVldWUucHVzaCh7InR5cGUiOiAiYWN0aW9uIiwgImFjdGlvbiI6ICJzZW5kX2tleXMiLCAic2Vs
ZWN0b3IiOiBzZWxlY3RvciwgImtleXMiOiBrZXlzfSk7CisgICAgICAgIHJldHVybiBwZW5kaW5n
X3Byb21pc2U7CisgICAgfTsKKworICAgIHdpbmRvdy50ZXN0X2RyaXZlcl9pbnRlcm5hbC5hY3Rp
b25fc2VxdWVuY2UgPSBmdW5jdGlvbihhY3Rpb25zKSB7CisgICAgICAgIGNvbnN0IHBlbmRpbmdf
cHJvbWlzZSA9IG5ldyBQcm9taXNlKGZ1bmN0aW9uKHJlc29sdmUsIHJlamVjdCkgeworICAgICAg
ICAgICAgcGVuZGluZ19yZXNvbHZlID0gcmVzb2x2ZTsKKyAgICAgICAgICAgIHBlbmRpbmdfcmVq
ZWN0ID0gcmVqZWN0OworICAgICAgICB9KTsKKyAgICAgICAgZm9yIChsZXQgYWN0aW9uU2VxdWVu
Y2Ugb2YgYWN0aW9ucykgeworICAgICAgICAgICAgaWYgKGFjdGlvblNlcXVlbmNlLnR5cGUgPT0g
InBvaW50ZXIiKSB7CisgICAgICAgICAgICAgICAgZm9yIChsZXQgYWN0aW9uIG9mIGFjdGlvblNl
cXVlbmNlLmFjdGlvbnMpIHsKKyAgICAgICAgICAgICAgICAgICAgLy8gVGhlIG9yaWdpbiBvZiBl
YWNoIGFjdGlvbiBjYW4gb25seSBiZSBhbiBlbGVtZW50IG9yIGEgc3RyaW5nIG9mIGEgdmFsdWUg
InZpZXdwb3J0IiBvciAicG9pbnRlciIuCisgICAgICAgICAgICAgICAgICAgIGlmIChhY3Rpb24u
dHlwZSA9PSAicG9pbnRlck1vdmUiICYmIHR5cGVvZihhY3Rpb24ub3JpZ2luKSAhPSAnc3RyaW5n
JykgeworICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGZyYW1lID0gZ2V0X2ZyYW1lKGFjdGlv
bi5vcmlnaW4sIHdpbmRvdyk7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoZnJhbWUgIT0g
bnVsbCkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChmcmFtZSA9PSB3aW5kb3cp
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFjdGlvbi5mcmFtZSA9IHtmcmFtZTog
IndpbmRvdyJ9OworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgYWN0aW9uLmZyYW1lID0ge2ZyYW1lOiBmcmFtZX07CisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgYWN0aW9uLm9yaWdpbiA9IHtzZWxlY3RvcjogZ2V0X3Nl
bGVjdG9yKGFjdGlvbi5vcmlnaW4pfTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAg
ICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAg
ICAgfQorICAgICAgICB3aW5kb3cuX193cHRydW5uZXJfbWVzc2FnZV9xdWV1ZS5wdXNoKHsidHlw
ZSI6ICJhY3Rpb24iLCAiYWN0aW9uIjogImFjdGlvbl9zZXF1ZW5jZSIsICJhY3Rpb25zIjogYWN0
aW9uc30pOworICAgICAgICByZXR1cm4gcGVuZGluZ19wcm9taXNlOworICAgIH07CisKKyAgICB3
aW5kb3cudGVzdF9kcml2ZXJfaW50ZXJuYWwuZ2VuZXJhdGVfdGVzdF9yZXBvcnQgPSBmdW5jdGlv
bihtZXNzYWdlKSB7CisgICAgICAgIGNvbnN0IHBlbmRpbmdfcHJvbWlzZSA9IG5ldyBQcm9taXNl
KGZ1bmN0aW9uKHJlc29sdmUsIHJlamVjdCkgeworICAgICAgICAgICAgcGVuZGluZ19yZXNvbHZl
ID0gcmVzb2x2ZTsKKyAgICAgICAgICAgIHBlbmRpbmdfcmVqZWN0ID0gcmVqZWN0OworICAgICAg
ICB9KTsKKyAgICAgICAgd2luZG93Ll9fd3B0cnVubmVyX21lc3NhZ2VfcXVldWUucHVzaCh7InR5
cGUiOiAiYWN0aW9uIiwgImFjdGlvbiI6ICJnZW5lcmF0ZV90ZXN0X3JlcG9ydCIsICJtZXNzYWdl
IjogbWVzc2FnZX0pOworICAgICAgICByZXR1cm4gcGVuZGluZ19wcm9taXNlOworICAgIH07CisK
KyAgICB3aW5kb3cudGVzdF9kcml2ZXJfaW50ZXJuYWwuYWRkX3ZpcnR1YWxfYXV0aGVudGljYXRv
ciA9IGZ1bmN0aW9uKGNvbmZpZykgeworICAgICAgICBjb25zdCBwZW5kaW5nX3Byb21pc2UgPSBu
ZXcgUHJvbWlzZShmdW5jdGlvbihyZXNvbHZlLCByZWplY3QpIHsKKyAgICAgICAgICAgIHBlbmRp
bmdfcmVzb2x2ZSA9IHJlc29sdmU7CisgICAgICAgICAgICBwZW5kaW5nX3JlamVjdCA9IHJlamVj
dDsKKyAgICAgICAgfSk7CisgICAgICAgIHdpbmRvdy5fX3dwdHJ1bm5lcl9tZXNzYWdlX3F1ZXVl
LnB1c2goeyJ0eXBlIjogImFjdGlvbiIsICJhY3Rpb24iOiAiYWRkX3ZpcnR1YWxfYXV0aGVudGlj
YXRvciIsIGNvbmZpZ30pOworICAgICAgICByZXR1cm4gcGVuZGluZ19wcm9taXNlOworICAgIH07
CisKKyAgICB3aW5kb3cudGVzdF9kcml2ZXJfaW50ZXJuYWwucmVtb3ZlX3ZpcnR1YWxfYXV0aGVu
dGljYXRvciA9IGZ1bmN0aW9uKGF1dGhlbnRpY2F0b3JfaWQpIHsKKyAgICAgICAgY29uc3QgcGVu
ZGluZ19wcm9taXNlID0gbmV3IFByb21pc2UoZnVuY3Rpb24ocmVzb2x2ZSwgcmVqZWN0KSB7Cisg
ICAgICAgICAgICBwZW5kaW5nX3Jlc29sdmUgPSByZXNvbHZlOworICAgICAgICAgICAgcGVuZGlu
Z19yZWplY3QgPSByZWplY3Q7CisgICAgICAgIH0pOworICAgICAgICB3aW5kb3cuX193cHRydW5u
ZXJfbWVzc2FnZV9xdWV1ZS5wdXNoKHsidHlwZSI6ICJhY3Rpb24iLCAiYWN0aW9uIjogInJlbW92
ZV92aXJ0dWFsX2F1dGhlbnRpY2F0b3IiLCBhdXRoZW50aWNhdG9yX2lkfSk7CisgICAgICAgIHJl
dHVybiBwZW5kaW5nX3Byb21pc2U7CisgICAgfTsKKworICAgIHdpbmRvdy50ZXN0X2RyaXZlcl9p
bnRlcm5hbC5hZGRfY3JlZGVudGlhbCA9IGZ1bmN0aW9uKGF1dGhlbnRpY2F0b3JfaWQsIGNyZWRl
bnRpYWwpIHsKKyAgICAgICAgY29uc3QgcGVuZGluZ19wcm9taXNlID0gbmV3IFByb21pc2UoZnVu
Y3Rpb24ocmVzb2x2ZSwgcmVqZWN0KSB7CisgICAgICAgICAgICBwZW5kaW5nX3Jlc29sdmUgPSBy
ZXNvbHZlOworICAgICAgICAgICAgcGVuZGluZ19yZWplY3QgPSByZWplY3Q7CisgICAgICAgIH0p
OworICAgICAgICB3aW5kb3cuX193cHRydW5uZXJfbWVzc2FnZV9xdWV1ZS5wdXNoKHsidHlwZSI6
ICJhY3Rpb24iLCAiYWN0aW9uIjogImFkZF9jcmVkZW50aWFsIiwgYXV0aGVudGljYXRvcl9pZCwg
Y3JlZGVudGlhbH0pOworICAgICAgICByZXR1cm4gcGVuZGluZ19wcm9taXNlOworICAgIH07CisK
KyAgICB3aW5kb3cudGVzdF9kcml2ZXJfaW50ZXJuYWwuZ2V0X2NyZWRlbnRpYWxzID0gZnVuY3Rp
b24oYXV0aGVudGljYXRvcl9pZCkgeworICAgICAgICBjb25zdCBwZW5kaW5nX3Byb21pc2UgPSBu
ZXcgUHJvbWlzZShmdW5jdGlvbihyZXNvbHZlLCByZWplY3QpIHsKKyAgICAgICAgICAgIHBlbmRp
bmdfcmVzb2x2ZSA9IHJlc29sdmU7CisgICAgICAgICAgICBwZW5kaW5nX3JlamVjdCA9IHJlamVj
dDsKKyAgICAgICAgfSk7CisgICAgICAgIHdpbmRvdy5fX3dwdHJ1bm5lcl9tZXNzYWdlX3F1ZXVl
LnB1c2goeyJ0eXBlIjogImFjdGlvbiIsICJhY3Rpb24iOiAiZ2V0X2NyZWRlbnRpYWxzIiwgYXV0
aGVudGljYXRvcl9pZH0pOworICAgICAgICByZXR1cm4gcGVuZGluZ19wcm9taXNlOworICAgIH07
CisKKyAgICB3aW5kb3cudGVzdF9kcml2ZXJfaW50ZXJuYWwucmVtb3ZlX2NyZWRlbnRpYWwgPSBm
dW5jdGlvbihhdXRoZW50aWNhdG9yX2lkLCBjcmVkZW50aWFsX2lkKSB7CisgICAgICAgIGNvbnN0
IHBlbmRpbmdfcHJvbWlzZSA9IG5ldyBQcm9taXNlKGZ1bmN0aW9uKHJlc29sdmUsIHJlamVjdCkg
eworICAgICAgICAgICAgcGVuZGluZ19yZXNvbHZlID0gcmVzb2x2ZTsKKyAgICAgICAgICAgIHBl
bmRpbmdfcmVqZWN0ID0gcmVqZWN0OworICAgICAgICB9KTsKKyAgICAgICAgd2luZG93Ll9fd3B0
cnVubmVyX21lc3NhZ2VfcXVldWUucHVzaCh7InR5cGUiOiAiYWN0aW9uIiwgImFjdGlvbiI6ICJy
ZW1vdmVfY3JlZGVudGlhbCIsIGF1dGhlbnRpY2F0b3JfaWQsIGNyZWRlbnRpYWxfaWR9KTsKKyAg
ICAgICAgcmV0dXJuIHBlbmRpbmdfcHJvbWlzZTsKKyAgICB9OworCisgICAgd2luZG93LnRlc3Rf
ZHJpdmVyX2ludGVybmFsLnJlbW92ZV9hbGxfY3JlZGVudGlhbHMgPSBmdW5jdGlvbihhdXRoZW50
aWNhdG9yX2lkKSB7CisgICAgICAgIGNvbnN0IHBlbmRpbmdfcHJvbWlzZSA9IG5ldyBQcm9taXNl
KGZ1bmN0aW9uKHJlc29sdmUsIHJlamVjdCkgeworICAgICAgICAgICAgcGVuZGluZ19yZXNvbHZl
ID0gcmVzb2x2ZTsKKyAgICAgICAgICAgIHBlbmRpbmdfcmVqZWN0ID0gcmVqZWN0OworICAgICAg
ICB9KTsKKyAgICAgICAgd2luZG93Ll9fd3B0cnVubmVyX21lc3NhZ2VfcXVldWUucHVzaCh7InR5
cGUiOiAiYWN0aW9uIiwgImFjdGlvbiI6ICJyZW1vdmVfYWxsX2NyZWRlbnRpYWxzIiwgYXV0aGVu
dGljYXRvcl9pZH0pOworICAgICAgICByZXR1cm4gcGVuZGluZ19wcm9taXNlOworICAgIH07CisK
KyAgICB3aW5kb3cudGVzdF9kcml2ZXJfaW50ZXJuYWwuc2V0X3VzZXJfdmVyaWZpZWQgPSBmdW5j
dGlvbihhdXRoZW50aWNhdG9yX2lkLCB1dikgeworICAgICAgICBjb25zdCBwZW5kaW5nX3Byb21p
c2UgPSBuZXcgUHJvbWlzZShmdW5jdGlvbihyZXNvbHZlLCByZWplY3QpIHsKKyAgICAgICAgICAg
IHBlbmRpbmdfcmVzb2x2ZSA9IHJlc29sdmU7CisgICAgICAgICAgICBwZW5kaW5nX3JlamVjdCA9
IHJlamVjdDsKKyAgICAgICAgfSk7CisgICAgICAgIHdpbmRvdy5fX3dwdHJ1bm5lcl9tZXNzYWdl
X3F1ZXVlLnB1c2goeyJ0eXBlIjogImFjdGlvbiIsICJhY3Rpb24iOiAic2V0X3VzZXJfdmVyaWZp
ZWQiLCBhdXRoZW50aWNhdG9yX2lkLCB1dn0pOwogICAgICAgICByZXR1cm4gcGVuZGluZ19wcm9t
aXNlOwogICAgIH07CiB9KSgpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3Rlc3RoYXJuZXNz
cmVwb3J0LXNlcnZvLmpzIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3Rlc3RoYXJuZXNzcmVwb3J0LXNlcnZvLmpz
CmluZGV4IGI2NzJhZWE5YTI1Li5hMTBiNjlkZjU1MCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVy
L3Rlc3RoYXJuZXNzcmVwb3J0LXNlcnZvLmpzCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci90ZXN0aGFybmVz
c3JlcG9ydC1zZXJ2by5qcwpAQCAtNCw3ICs0LDcgQEAgc3RhcnRfbG9jLmhyZWYgPSBsb2NhdGlv
bi5ocmVmOwogc2V0dXAocHJvcHMpOwogCiBhZGRfY29tcGxldGlvbl9jYWxsYmFjayhmdW5jdGlv
biAodGVzdHMsIGhhcm5lc3Nfc3RhdHVzKSB7Ci0gICAgdmFyIGlkID0gc3RhcnRfbG9jLnBhdGhu
YW1lICsgc3RhcnRfbG9jLnNlYXJjaCArIHN0YXJ0X2xvYy5oYXNoOworICAgIHZhciBpZCA9IGRl
Y29kZVVSSUNvbXBvbmVudChzdGFydF9sb2MucGF0aG5hbWUpICsgZGVjb2RlVVJJQ29tcG9uZW50
KHN0YXJ0X2xvYy5zZWFyY2gpICsgZGVjb2RlVVJJQ29tcG9uZW50KHN0YXJ0X2xvYy5oYXNoKTsK
ICAgICBjb25zb2xlLmxvZygiQUxFUlQ6IFJFU1VMVDogIiArIEpTT04uc3RyaW5naWZ5KFsKICAg
ICAgICAgaWQsCiAgICAgICAgIGhhcm5lc3Nfc3RhdHVzLnN0YXR1cywKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVy
L3dwdHJ1bm5lci90ZXN0aGFybmVzc3JlcG9ydC5qcyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci90ZXN0aGFybmVz
c3JlcG9ydC5qcwppbmRleCA2MmRkYWZmYjQ0My4uMjlmYzBlOTg3MzEgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVy
L3dwdHJ1bm5lci90ZXN0aGFybmVzc3JlcG9ydC5qcworKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvdGVzdGhh
cm5lc3NyZXBvcnQuanMKQEAgLTEsMTMgKzEsODMgQEAKLXZhciBwcm9wcyA9IHtvdXRwdXQ6JShv
dXRwdXQpZCwKLSAgICAgICAgICAgICBleHBsaWNpdF90aW1lb3V0OiB0cnVlLAotICAgICAgICAg
ICAgIG1lc3NhZ2VfZXZlbnRzOiBbImNvbXBsZXRpb24iXX07CitjbGFzcyBNZXNzYWdlUXVldWUg
eworICBjb25zdHJ1Y3RvcigpIHsKKyAgICB0aGlzLl9xdWV1ZSA9IFtdOworICB9CiAKLWlmICh3
aW5kb3cub3BlbmVyICYmICJ0aW1lb3V0X211bHRpcGxpZXIiIGluIHdpbmRvdy5vcGVuZXIpIHsK
LSAgICBwcm9wc1sidGltZW91dF9tdWx0aXBsaWVyIl0gPSB3aW5kb3cub3BlbmVyLnRpbWVvdXRf
bXVsdGlwbGllcjsKLX0KKyAgcHVzaChpdGVtKSB7CisgICAgdGhpcy5fcXVldWUucHVzaChpdGVt
KTsKKyAgICBfX3dwdHJ1bm5lcl9wcm9jZXNzX25leHRfZXZlbnQoKTsKKyAgfQogCi1pZiAod2lu
ZG93Lm9wZW5lciAmJiB3aW5kb3cub3BlbmVyLmV4cGxpY2l0X3RpbWVvdXQpIHsKLSAgICBwcm9w
c1siZXhwbGljaXRfdGltZW91dCJdID0gd2luZG93Lm9wZW5lci5leHBsaWNpdF90aW1lb3V0Owor
ICBzaGlmdCgpIHsKKyAgICByZXR1cm4gdGhpcy5fcXVldWUuc2hpZnQoKTsKKyAgfQogfQogCi1z
ZXR1cChwcm9wcyk7Cit3aW5kb3cuX193cHRydW5uZXJfdGVzdGRyaXZlcl9jYWxsYmFjayA9IG51
bGw7Cit3aW5kb3cuX193cHRydW5uZXJfbWVzc2FnZV9xdWV1ZSA9IG5ldyBNZXNzYWdlUXVldWUo
KTsKK3dpbmRvdy5fX3dwdHJ1bm5lcl91cmwgPSBudWxsOworCit3aW5kb3cuX193cHRydW5uZXJf
cHJvY2Vzc19uZXh0X2V2ZW50ID0gZnVuY3Rpb24oKSB7CisgIC8qIFRoaXMgZnVuY3Rpb24gaGFu
ZGxlcyB0aGUgbmV4dCB0ZXN0ZHJpdmVyIGV2ZW50LiBUaGUgcHJlc2VuY2Ugb2YKKyAgICAgd2lu
ZG93LnRlc3Rkcml2ZXJfY2FsbGJhY2sgaXMgdXNlZCBhcyBhIHN3aXRjaDsgd2hlbiB0aGF0IGZ1
bmN0aW9uCisgICAgIGlzIHByZXNlbnQgd2UgYXJlIGFibGUgdG8gaGFuZGxlIHRoZSBuZXh0IGV2
ZW50IGFuZCB3aGVuIGlzIGlzIG5vdAorICAgICBwcmVzZW50IHdlIG11c3Qgd2FpdC4gVGhlcmVm
b3JlIHRvIGRyaXZlIHRoZSBldmVudCBwcm9jZXNzaW5nLCB0aGlzCisgICAgIGZ1bmN0aW9uIG11
c3QgYmUgY2FsbGVkIGluIHR3byBjaXJjdW1zdGFuY2VzOgorICAgICAgICogRXZlcnkgdGltZSB0
aGVyZSBpcyBhIG5ldyBldmVudCB0aGF0IHdlIG1heSBiZSBhYmxlIHRvIGhhbmRsZQorICAgICAg
ICogRXZlcnkgdGltZSB3ZSBzZXQgdGhlIGNhbGxiYWNrIGZ1bmN0aW9uCisgICAgIFRoaXMgZnVu
Y3Rpb24gdW5zZXRzIHRoZSBjYWxsYmFjaywgc28gbm8gZnVydGhlciB0ZXN0ZHJpdmVyIGFjdGlv
bnMKKyAgICAgd2lsbCBiZSBydW4gdW50aWwgaXQgaXMgcmVzZXQsIHdoaWNoIHdwdHJ1bm5lciBk
b2VzIGFmdGVyIGl0IGhhcworICAgICBjb21wbGV0ZWQgaGFuZGxpbmcgdGhlIGN1cnJlbnQgYWN0
aW9uLgorICAgKi8KKworICBpZiAoIXdpbmRvdy5fX3dwdHJ1bm5lcl90ZXN0ZHJpdmVyX2NhbGxi
YWNrKSB7CisgICAgcmV0dXJuOworICB9CisgIHZhciBkYXRhID0gd2luZG93Ll9fd3B0cnVubmVy
X21lc3NhZ2VfcXVldWUuc2hpZnQoKTsKKyAgaWYgKCFkYXRhKSB7CisgICAgcmV0dXJuOworICB9
CisKKyAgdmFyIHBheWxvYWQgPSB1bmRlZmluZWQ7CisKKyAgc3dpdGNoKGRhdGEudHlwZSkgewor
ICBjYXNlICJjb21wbGV0ZSI6CisgICAgdmFyIHRlc3RzID0gZGF0YS50ZXN0czsKKyAgICB2YXIg
c3RhdHVzID0gZGF0YS5zdGF0dXM7CisKKyAgICB2YXIgc3VidGVzdF9yZXN1bHRzID0gdGVzdHMu
bWFwKGZ1bmN0aW9uKHgpIHsKKyAgICAgIHJldHVybiBbeC5uYW1lLCB4LnN0YXR1cywgeC5tZXNz
YWdlLCB4LnN0YWNrXTsKKyAgICB9KTsKKyAgICBwYXlsb2FkID0gW3N0YXR1cy5zdGF0dXMsCisg
ICAgICAgICAgICAgICBzdGF0dXMubWVzc2FnZSwKKyAgICAgICAgICAgICAgIHN0YXR1cy5zdGFj
aywKKyAgICAgICAgICAgICAgIHN1YnRlc3RfcmVzdWx0c107CisgICAgY2xlYXJUaW1lb3V0KHdp
bmRvdy5fX3dwdHJ1bm5lcl90aW1lcik7CisgICAgYnJlYWs7CisgIGNhc2UgImFjdGlvbiI6Cisg
ICAgcGF5bG9hZCA9IGRhdGE7CisgICAgYnJlYWs7CisgIGRlZmF1bHQ6CisgICAgcmV0dXJuOwor
ICB9CisgIHZhciBjYWxsYmFjayA9IHdpbmRvdy5fX3dwdHJ1bm5lcl90ZXN0ZHJpdmVyX2NhbGxi
YWNrOworICB3aW5kb3cuX193cHRydW5uZXJfdGVzdGRyaXZlcl9jYWxsYmFjayA9IG51bGw7Cisg
IGNhbGxiYWNrKFtfX3dwdHJ1bm5lcl91cmwsIGRhdGEudHlwZSwgcGF5bG9hZF0pOworfTsKKwor
KGZ1bmN0aW9uKCkgeworICB2YXIgcHJvcHMgPSB7b3V0cHV0OiAlKG91dHB1dClkLAorICAgICAg
ICAgICAgICAgdGltZW91dF9tdWx0aXBsaWVyOiAlKHRpbWVvdXRfbXVsdGlwbGllcilzLAorICAg
ICAgICAgICAgICAgZXhwbGljaXRfdGltZW91dDogJShleHBsaWNpdF90aW1lb3V0KXMsCisgICAg
ICAgICAgICAgICBtZXNzYWdlX2V2ZW50czogWyJjb21wbGV0aW9uIl19OworCisgIGFkZF9jb21w
bGV0aW9uX2NhbGxiYWNrKGZ1bmN0aW9uKHRlc3RzLCBoYXJuZXNzX3N0YXR1cykgeworICAgIF9f
d3B0cnVubmVyX21lc3NhZ2VfcXVldWUucHVzaCh7CisgICAgICAidHlwZSI6ICJjb21wbGV0ZSIs
CisgICAgICAidGVzdHMiOiB0ZXN0cywKKyAgICAgICJzdGF0dXMiOiBoYXJuZXNzX3N0YXR1c30p
OworICAgIF9fd3B0cnVubmVyX3Byb2Nlc3NfbmV4dF9ldmVudCgpOworICB9KTsKKyAgc2V0dXAo
cHJvcHMpOworfSkoKTsKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3Rlc3Rsb2FkZXIucHkg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1
bm5lci93cHRydW5uZXIvdGVzdGxvYWRlci5weQppbmRleCAwMThkYzEwMzk4My4uZmE1NGNhMzYx
NTcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci90ZXN0bG9hZGVyLnB5CisrKyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1
bm5lci90ZXN0bG9hZGVyLnB5CkBAIC0xLDI5ICsxLDI2IEBACiBpbXBvcnQgaGFzaGxpYgotaW1w
b3J0IGpzb24KIGltcG9ydCBvcwotaW1wb3J0IHVybHBhcnNlCitmcm9tIHNpeC5tb3Zlcy51cmxs
aWIucGFyc2UgaW1wb3J0IHVybHNwbGl0CiBmcm9tIGFiYyBpbXBvcnQgQUJDTWV0YSwgYWJzdHJh
Y3RtZXRob2QKLWZyb20gUXVldWUgaW1wb3J0IEVtcHR5Ci1mcm9tIGNvbGxlY3Rpb25zIGltcG9y
dCBkZWZhdWx0ZGljdCwgT3JkZXJlZERpY3QsIGRlcXVlCitmcm9tIHNpeC5tb3Zlcy5xdWV1ZSBp
bXBvcnQgRW1wdHkKK2Zyb20gY29sbGVjdGlvbnMgaW1wb3J0IGRlZmF1bHRkaWN0LCBkZXF1ZQog
ZnJvbSBtdWx0aXByb2Nlc3NpbmcgaW1wb3J0IFF1ZXVlCiAKLWltcG9ydCBtYW5pZmVzdGluY2x1
ZGUKLWltcG9ydCBtYW5pZmVzdGV4cGVjdGVkCi1pbXBvcnQgd3B0dGVzdAorZnJvbSAuIGltcG9y
dCBtYW5pZmVzdGluY2x1ZGUKK2Zyb20gLiBpbXBvcnQgbWFuaWZlc3RleHBlY3RlZAorZnJvbSAu
IGltcG9ydCB3cHR0ZXN0CiBmcm9tIG1vemxvZyBpbXBvcnQgc3RydWN0dXJlZAogCiBtYW5pZmVz
dCA9IE5vbmUKIG1hbmlmZXN0X3VwZGF0ZSA9IE5vbmUKIGRvd25sb2FkX2Zyb21fZ2l0aHViID0g
Tm9uZQotbWFuaWZlc3RfbG9nID0gTm9uZQogCiBkZWYgZG9fZGVsYXllZF9pbXBvcnRzKCk6CiAg
ICAgIyBUaGlzIHJlbGllcyBvbiBhbiBhbHJlYWR5IGxvYWRlZCBtb2R1bGUgaGF2aW5nIHNldCB0
aGUgc3lzLnBhdGggY29ycmVjdGx5IDooCi0gICAgZ2xvYmFsIG1hbmlmZXN0LCBtYW5pZmVzdF91
cGRhdGUsIGRvd25sb2FkX2Zyb21fZ2l0aHViLCBtYW5pZmVzdF9sb2cKKyAgICBnbG9iYWwgbWFu
aWZlc3QsIG1hbmlmZXN0X3VwZGF0ZSwgZG93bmxvYWRfZnJvbV9naXRodWIKICAgICBmcm9tIG1h
bmlmZXN0IGltcG9ydCBtYW5pZmVzdAogICAgIGZyb20gbWFuaWZlc3QgaW1wb3J0IHVwZGF0ZSBh
cyBtYW5pZmVzdF91cGRhdGUKICAgICBmcm9tIG1hbmlmZXN0LmRvd25sb2FkIGltcG9ydCBkb3du
bG9hZF9mcm9tX2dpdGh1YgotICAgIGZyb20gbWFuaWZlc3QgaW1wb3J0IGxvZyBhcyBtYW5pZmVz
dF9sb2cKIAogCiBjbGFzcyBUZXN0Q2h1bmtlcihvYmplY3QpOgpAQCAtNzEsMjg1ICs2OCwyMCBA
QCBjbGFzcyBEaXJlY3RvcnlIYXNoQ2h1bmtlcihUZXN0Q2h1bmtlcik6CiAgICAgICAgICAgICAg
ICAgeWllbGQgdGVzdF90eXBlLCB0ZXN0X3BhdGgsIHRlc3RzCiAKIAotY2xhc3MgRXF1YWxUaW1l
Q2h1bmtlcihUZXN0Q2h1bmtlcik6Ci0gICAgZGVmIF9ncm91cF9ieV9kaXJlY3Rvcnkoc2VsZiwg
bWFuaWZlc3RfaXRlbXMpOgotICAgICAgICAiIiJTcGxpdCB0aGUgbGlzdCBvZiBtYW5pZmVzdCBp
dGVtcyBpbnRvIGEgb3JkZXJlZCBkaWN0IHRoYXQgZ3JvdXBzIHRlc3RzIGluCi0gICAgICAgIHNv
IHRoYXQgYW55dGhpbmcgaW4gdGhlIHNhbWUgc3ViZGlyZWN0b3J5IGJleW9uZCBhIGRlcHRoIG9m
IDMgaXMgaW4gdGhlIHNhbWUKLSAgICAgICAgZ3JvdXAuIFNvIGFsbCB0ZXN0cyBpbiBhL2IvYywg
YS9iL2MvZCBhbmQgYS9iL2MvZSB3aWxsIGJlIGdyb3VwZWQgdG9nZXRoZXIKLSAgICAgICAgYW5k
IHNlcGFyYXRlIHRvIHRlc3RzIGluIGEvYi9mCi0KLSAgICAgICAgUmV0dXJuczogdHVwbGUgKG9y
ZGVyZWQgZGljdCBvZiB7dGVzdF9kaXI6IFBhdGhEYXRhfSwgdG90YWwgZXN0aW1hdGVkIHJ1bnRp
bWUpCi0gICAgICAgICIiIgotCi0gICAgICAgIGNsYXNzIFBhdGhEYXRhKG9iamVjdCk6Ci0gICAg
ICAgICAgICBkZWYgX19pbml0X18oc2VsZiwgcGF0aCk6Ci0gICAgICAgICAgICAgICAgc2VsZi5w
YXRoID0gcGF0aAotICAgICAgICAgICAgICAgIHNlbGYudGltZSA9IDAKLSAgICAgICAgICAgICAg
ICBzZWxmLnRlc3RzID0gW10KLQotICAgICAgICBieV9kaXIgPSBPcmRlcmVkRGljdCgpCi0gICAg
ICAgIHRvdGFsX3RpbWUgPSAwCi0KLSAgICAgICAgZm9yIGksICh0ZXN0X3R5cGUsIHRlc3RfcGF0
aCwgdGVzdHMpIGluIGVudW1lcmF0ZShtYW5pZmVzdF9pdGVtcyk6Ci0gICAgICAgICAgICB0ZXN0
X2RpciA9IHR1cGxlKG9zLnBhdGguc3BsaXQodGVzdF9wYXRoKVswXS5zcGxpdChvcy5wYXRoLnNl
cClbOjNdKQotCi0gICAgICAgICAgICBpZiB0ZXN0X2RpciBub3QgaW4gYnlfZGlyOgotICAgICAg
ICAgICAgICAgIGJ5X2Rpclt0ZXN0X2Rpcl0gPSBQYXRoRGF0YSh0ZXN0X2RpcikKLQotICAgICAg
ICAgICAgZGF0YSA9IGJ5X2Rpclt0ZXN0X2Rpcl0KLSAgICAgICAgICAgIHRpbWUgPSBzdW0odGVz
dC5kZWZhdWx0X3RpbWVvdXQgaWYgdGVzdC50aW1lb3V0ICE9Ci0gICAgICAgICAgICAgICAgICAg
ICAgICJsb25nIiBlbHNlIHRlc3QubG9uZ190aW1lb3V0IGZvciB0ZXN0IGluIHRlc3RzKQotICAg
ICAgICAgICAgZGF0YS50aW1lICs9IHRpbWUKLSAgICAgICAgICAgIHRvdGFsX3RpbWUgKz0gdGlt
ZQotICAgICAgICAgICAgZGF0YS50ZXN0cy5hcHBlbmQoKHRlc3RfdHlwZSwgdGVzdF9wYXRoLCB0
ZXN0cykpCi0KLSAgICAgICAgcmV0dXJuIGJ5X2RpciwgdG90YWxfdGltZQotCi0gICAgZGVmIF9t
YXliZV9yZW1vdmUoc2VsZiwgY2h1bmtzLCBpLCBkaXJlY3Rpb24pOgotICAgICAgICAiIiJUcmlh
bCByZW1vdmluZyBhIGNodW5rIGZyb20gb25lIGNodW5rIHRvIGFuIGFkamFjZW50IG9uZS4KLQot
ICAgICAgICA6cGFyYW0gY2h1bmtzOiAtIHRoZSBsaXN0IG9mIGFsbCBjaHVua3MKLSAgICAgICAg
OnBhcmFtIGk6IC0gdGhlIGNodW5rIGluZGV4IGluIHRoZSBsaXN0IG9mIGNodW5rcyB0byB0cnkg
cmVtb3ZpbmcgZnJvbQotICAgICAgICA6cGFyYW0gZGlyZWN0aW9uOiBlaXRoZXIgIm5leHQiIGlm
IHdlIGFyZSBnb2luZyB0byBtb3ZlIGZyb20gdGhlIGVuZCB0bwotICAgICAgICAgICAgICAgICAg
ICAgICAgICB0aGUgc3Vic2VxdWVudCBjaHVuaywgb3IgInByZXYiIGlmIHdlIGFyZSBnb2luZyB0
byBtb3ZlCi0gICAgICAgICAgICAgICAgICAgICAgICAgIGZyb20gdGhlIHN0YXJ0IGludG8gdGhl
IHByZXZpb3VzIGNodW5rLgotCi0gICAgICAgIDpyZXR1cm5zIGJvb2w6IERpZCBhIGNodW5rIGdl
dCBtb3ZlZD8iIiIKLSAgICAgICAgc291cmNlX2NodW5rID0gY2h1bmtzW2ldCi0gICAgICAgIGlm
IGRpcmVjdGlvbiA9PSAibmV4dCI6Ci0gICAgICAgICAgICB0YXJnZXRfY2h1bmsgPSBjaHVua3Nb
aSsxXQotICAgICAgICAgICAgcGF0aF9pbmRleCA9IC0xCi0gICAgICAgICAgICBtb3ZlX2Z1bmMg
PSBsYW1iZGE6IHRhcmdldF9jaHVuay5hcHBlbmRsZWZ0KHNvdXJjZV9jaHVuay5wb3AoKSkKLSAg
ICAgICAgZWxpZiBkaXJlY3Rpb24gPT0gInByZXYiOgotICAgICAgICAgICAgdGFyZ2V0X2NodW5r
ID0gY2h1bmtzW2ktMV0KLSAgICAgICAgICAgIHBhdGhfaW5kZXggPSAwCi0gICAgICAgICAgICBt
b3ZlX2Z1bmMgPSBsYW1iZGE6IHRhcmdldF9jaHVuay5hcHBlbmQoc291cmNlX2NodW5rLnBvcGxl
ZnQoKSkKLSAgICAgICAgZWxzZToKLSAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoIlVuZXhw
ZWN0ZWQgbW92ZSBkaXJlY3Rpb24gJXMiICUgZGlyZWN0aW9uKQotCi0gICAgICAgIHJldHVybiBz
ZWxmLl9tYXliZV9tb3ZlKHNvdXJjZV9jaHVuaywgdGFyZ2V0X2NodW5rLCBwYXRoX2luZGV4LCBt
b3ZlX2Z1bmMpCi0KLSAgICBkZWYgX21heWJlX2FkZChzZWxmLCBjaHVua3MsIGksIGRpcmVjdGlv
bik6Ci0gICAgICAgICIiIlRyaWFsIGFkZGluZyBhIGNodW5rIGZyb20gb25lIGNodW5rIHRvIGFu
IGFkamFjZW50IG9uZS4KLQotICAgICAgICA6cGFyYW0gY2h1bmtzOiAtIHRoZSBsaXN0IG9mIGFs
bCBjaHVua3MKLSAgICAgICAgOnBhcmFtIGk6IC0gdGhlIGNodW5rIGluZGV4IGluIHRoZSBsaXN0
IG9mIGNodW5rcyB0byB0cnkgYWRkaW5nIHRvCi0gICAgICAgIDpwYXJhbSBkaXJlY3Rpb246IGVp
dGhlciAibmV4dCIgaWYgd2UgYXJlIGdvaW5nIHRvIHJlbW92ZSBmcm9tIHRoZQotICAgICAgICAg
ICAgICAgICAgICAgICAgICB0aGUgc3Vic2VxdWVudCBjaHVuaywgb3IgInByZXYiIGlmIHdlIGFy
ZSBnb2luZyB0byByZW1vdmUKLSAgICAgICAgICAgICAgICAgICAgICAgICAgZnJvbSB0aGUgdGhl
IHByZXZpb3VzIGNodW5rLgotCi0gICAgICAgIDpyZXR1cm5zIGJvb2w6IERpZCBhIGNodW5rIGdl
dCBtb3ZlZD8iIiIKLSAgICAgICAgdGFyZ2V0X2NodW5rID0gY2h1bmtzW2ldCi0gICAgICAgIGlm
IGRpcmVjdGlvbiA9PSAibmV4dCI6Ci0gICAgICAgICAgICBzb3VyY2VfY2h1bmsgPSBjaHVua3Nb
aSsxXQotICAgICAgICAgICAgcGF0aF9pbmRleCA9IDAKLSAgICAgICAgICAgIG1vdmVfZnVuYyA9
IGxhbWJkYTogdGFyZ2V0X2NodW5rLmFwcGVuZChzb3VyY2VfY2h1bmsucG9wbGVmdCgpKQotICAg
ICAgICBlbGlmIGRpcmVjdGlvbiA9PSAicHJldiI6Ci0gICAgICAgICAgICBzb3VyY2VfY2h1bmsg
PSBjaHVua3NbaS0xXQotICAgICAgICAgICAgcGF0aF9pbmRleCA9IC0xCi0gICAgICAgICAgICBt
b3ZlX2Z1bmMgPSBsYW1iZGE6IHRhcmdldF9jaHVuay5hcHBlbmRsZWZ0KHNvdXJjZV9jaHVuay5w
b3AoKSkKLSAgICAgICAgZWxzZToKLSAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoIlVuZXhw
ZWN0ZWQgbW92ZSBkaXJlY3Rpb24gJXMiICUgZGlyZWN0aW9uKQotCi0gICAgICAgIHJldHVybiBz
ZWxmLl9tYXliZV9tb3ZlKHNvdXJjZV9jaHVuaywgdGFyZ2V0X2NodW5rLCBwYXRoX2luZGV4LCBt
b3ZlX2Z1bmMpCi0KLSAgICBkZWYgX21heWJlX21vdmUoc2VsZiwgc291cmNlX2NodW5rLCB0YXJn
ZXRfY2h1bmssIHBhdGhfaW5kZXgsIG1vdmVfZnVuYyk6Ci0gICAgICAgICIiIk1vdmUgZnJvbSBv
bmUgY2h1bmsgdG8gYW5vdGhlciwgYXNzZXNzIHRoZSBjaGFuZ2UgaW4gYmFkbmVzcywKLSAgICAg
ICAgYW5kIGtlZXAgdGhlIG1vdmUgaWZmIGl0IGRlY3JlYXNlcyB0aGUgYmFkbmVzcyBzY29yZS4K
LQotICAgICAgICA6cGFyYW0gc291cmNlX2NodW5rOiBjaHVuayB0byBtb3ZlIGZyb20KLSAgICAg
ICAgOnBhcmFtIHRhcmdldF9jaHVuazogY2h1bmsgdG8gbW92ZSB0bwotICAgICAgICA6cGFyYW0g
cGF0aF9pbmRleDogMCBpZiB3ZSBhcmUgbW92aW5nIGZyb20gdGhlIHN0YXJ0IG9yIC0xIGlmIHdl
IGFyZSBtb3ZpbmcgZnJvbSB0aGUKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZAotICAg
ICAgICA6cGFyYW0gbW92ZV9mdW5jOiBGdW5jdGlvbiB0aGF0IGFjdHVhbGx5IG1vdmVzIGJldHdl
ZW4gY2h1bmtzIiIiCi0gICAgICAgIGlmIGxlbihzb3VyY2VfY2h1bmsucGF0aHMpIDw9IDE6Ci0g
ICAgICAgICAgICByZXR1cm4gRmFsc2UKLQotICAgICAgICBtb3ZlX3RpbWUgPSBzb3VyY2VfY2h1
bmsucGF0aHNbcGF0aF9pbmRleF0udGltZQotCi0gICAgICAgIG5ld19zb3VyY2VfYmFkbmVzcyA9
IHNlbGYuX2JhZG5lc3Moc291cmNlX2NodW5rLnRpbWUgLSBtb3ZlX3RpbWUpCi0gICAgICAgIG5l
d190YXJnZXRfYmFkbmVzcyA9IHNlbGYuX2JhZG5lc3ModGFyZ2V0X2NodW5rLnRpbWUgKyBtb3Zl
X3RpbWUpCi0KLSAgICAgICAgZGVsdGFfYmFkbmVzcyA9ICgobmV3X3NvdXJjZV9iYWRuZXNzICsg
bmV3X3RhcmdldF9iYWRuZXNzKSAtCi0gICAgICAgICAgICAgICAgICAgICAgICAgKHNvdXJjZV9j
aHVuay5iYWRuZXNzICsgdGFyZ2V0X2NodW5rLmJhZG5lc3MpKQotICAgICAgICBpZiBkZWx0YV9i
YWRuZXNzIDwgMDoKLSAgICAgICAgICAgIG1vdmVfZnVuYygpCi0gICAgICAgICAgICByZXR1cm4g
VHJ1ZQotCi0gICAgICAgIHJldHVybiBGYWxzZQotCi0gICAgZGVmIF9iYWRuZXNzKHNlbGYsIHRp
bWUpOgotICAgICAgICAiIiJNZXRyaWMgb2YgYmFkbmVzcyBmb3IgYSBzcGVjaWZpYyBjaHVuawot
Ci0gICAgICAgIDpwYXJhbSB0aW1lOiB0aGUgdGltZSBmb3IgYSBzcGVjaWZpYyBjaHVuayIiIgot
ICAgICAgICByZXR1cm4gKHRpbWUgLSBzZWxmLmV4cGVjdGVkX3RpbWUpKioyCi0KLSAgICBkZWYg
X2dldF9jaHVuayhzZWxmLCBtYW5pZmVzdF9pdGVtcyk6Ci0gICAgICAgIGJ5X2RpciwgdG90YWxf
dGltZSA9IHNlbGYuX2dyb3VwX2J5X2RpcmVjdG9yeShtYW5pZmVzdF9pdGVtcykKLQotICAgICAg
ICBpZiBsZW4oYnlfZGlyKSA8IHNlbGYudG90YWxfY2h1bmtzOgotICAgICAgICAgICAgcmFpc2Ug
VmFsdWVFcnJvcigiVHJpZWQgdG8gc3BsaXQgaW50byAlaSBjaHVua3MsIGJ1dCBvbmx5ICVpIHN1
YmRpcmVjdG9yaWVzIGluY2x1ZGVkIiAlICgKLSAgICAgICAgICAgICAgICBzZWxmLnRvdGFsX2No
dW5rcywgbGVuKGJ5X2RpcikpKQotCi0gICAgICAgIHNlbGYuZXhwZWN0ZWRfdGltZSA9IGZsb2F0
KHRvdGFsX3RpbWUpIC8gc2VsZi50b3RhbF9jaHVua3MKLQotICAgICAgICBjaHVua3MgPSBzZWxm
Ll9jcmVhdGVfaW5pdGlhbF9jaHVua3MoYnlfZGlyKQotCi0gICAgICAgIHdoaWxlIFRydWU6Ci0g
ICAgICAgICAgICAjIE1vdmUgYSB0ZXN0IGZyb20gb25lIGNodW5rIHRvIHRoZSBuZXh0IHVudGls
IGRvaW5nIHNvIG5vIGxvbmdlcgotICAgICAgICAgICAgIyByZWR1Y2VzIHRoZSBiYWRuZXNzCi0g
ICAgICAgICAgICBnb3RfaW1wcm92ZW1lbnQgPSBzZWxmLl91cGRhdGVfY2h1bmtzKGNodW5rcykK
LSAgICAgICAgICAgIGlmIG5vdCBnb3RfaW1wcm92ZW1lbnQ6Ci0gICAgICAgICAgICAgICAgYnJl
YWsKLQotICAgICAgICBzZWxmLmxvZ2dlci5kZWJ1ZyhzZWxmLmV4cGVjdGVkX3RpbWUpCi0gICAg
ICAgIGZvciBpLCBjaHVuayBpbiBjaHVua3MuaXRlcml0ZW1zKCk6Ci0gICAgICAgICAgICBzZWxm
LmxvZ2dlci5kZWJ1ZygiJWk6ICVpLCAlaSIgJSAoaSArIDEsIGNodW5rLnRpbWUsIGNodW5rLmJh
ZG5lc3MpKQotCi0gICAgICAgIGFzc2VydCBzZWxmLl9hbGxfdGVzdHMoYnlfZGlyKSA9PSBzZWxm
Ll9jaHVua2VkX3Rlc3RzKGNodW5rcykKLQotICAgICAgICByZXR1cm4gc2VsZi5fZ2V0X3Rlc3Rz
KGNodW5rcykKLQotICAgIEBzdGF0aWNtZXRob2QKLSAgICBkZWYgX2FsbF90ZXN0cyhieV9kaXIp
OgotICAgICAgICAiIiJSZXR1cm4gYSBzZXQgb2YgYWxsIHRlc3RzIGluIHRoZSBtYW5pZmVzdCBm
cm9tIGEgZ3JvdXBpbmcgYnkgZGlyZWN0b3J5IiIiCi0gICAgICAgIHJldHVybiBzZXQoeFswXSBm
b3IgaXRlbSBpbiBieV9kaXIuaXRlcnZhbHVlcygpCi0gICAgICAgICAgICAgICAgICAgZm9yIHgg
aW4gaXRlbS50ZXN0cykKLQotICAgIEBzdGF0aWNtZXRob2QKLSAgICBkZWYgX2NodW5rZWRfdGVz
dHMoY2h1bmtzKToKLSAgICAgICAgIiIiUmV0dXJuIGEgc2V0IG9mIGFsbCB0ZXN0cyBpbiB0aGUg
bWFuaWZlc3QgZnJvbSB0aGUgY2h1bmsgbGlzdCIiIgotICAgICAgICByZXR1cm4gc2V0KHhbMF0g
Zm9yIGNodW5rIGluIGNodW5rcy5pdGVydmFsdWVzKCkKLSAgICAgICAgICAgICAgICAgICBmb3Ig
cGF0aCBpbiBjaHVuay5wYXRocwotICAgICAgICAgICAgICAgICAgIGZvciB4IGluIHBhdGgudGVz
dHMpCi0KLQotICAgIGRlZiBfY3JlYXRlX2luaXRpYWxfY2h1bmtzKHNlbGYsIGJ5X2Rpcik6Ci0g
ICAgICAgICIiIkNyZWF0ZSBhbiBpbml0aWFsIHVuYmFsYW5jZWQgbGlzdCBvZiBjaHVua3MuCi0K
LSAgICAgICAgOnBhcmFtIGJ5X2RpcjogQWxsIHRlc3RzIGluIHRoZSBtYW5pZmVzdCBncm91cGVk
IGJ5IHN1YmRpcmVjdG9yeQotICAgICAgICA6cmV0dXJucyBsaXN0OiBBIGxpc3Qgb2YgQ2h1bmsg
b2JqZWN0cyIiIgotCi0gICAgICAgIGNsYXNzIENodW5rKG9iamVjdCk6Ci0gICAgICAgICAgICBk
ZWYgX19pbml0X18oc2VsZiwgcGF0aHMsIGluZGV4KToKLSAgICAgICAgICAgICAgICAiIiJMaXN0
IG9mIFBhdGhEYXRhIG9iamVjdHMgdGhhdCB0b2dldGhlciBmb3JtIGEgc2luZ2xlIGNodW5rIG9m
Ci0gICAgICAgICAgICAgICAgdGVzdHMiIiIKLSAgICAgICAgICAgICAgICBzZWxmLnBhdGhzID0g
ZGVxdWUocGF0aHMpCi0gICAgICAgICAgICAgICAgc2VsZi50aW1lID0gc3VtKGl0ZW0udGltZSBm
b3IgaXRlbSBpbiBwYXRocykKLSAgICAgICAgICAgICAgICBzZWxmLmluZGV4ID0gaW5kZXgKLQot
ICAgICAgICAgICAgZGVmIGFwcGVuZGxlZnQoc2VsZiwgcGF0aCk6Ci0gICAgICAgICAgICAgICAg
IiIiQWRkIGEgUGF0aERhdGEgb2JqZWN0IHRvIHRoZSBzdGFydCBvZiB0aGUgY2h1bmsiIiIKLSAg
ICAgICAgICAgICAgICBzZWxmLnBhdGhzLmFwcGVuZGxlZnQocGF0aCkKLSAgICAgICAgICAgICAg
ICBzZWxmLnRpbWUgKz0gcGF0aC50aW1lCi0KLSAgICAgICAgICAgIGRlZiBhcHBlbmQoc2VsZiwg
cGF0aCk6Ci0gICAgICAgICAgICAgICAgIiIiQWRkIGEgUGF0aERhdGEgb2JqZWN0IHRvIHRoZSBl
bmQgb2YgdGhlIGNodW5rIiIiCi0gICAgICAgICAgICAgICAgc2VsZi5wYXRocy5hcHBlbmQocGF0
aCkKLSAgICAgICAgICAgICAgICBzZWxmLnRpbWUgKz0gcGF0aC50aW1lCi0KLSAgICAgICAgICAg
IGRlZiBwb3Aoc2VsZik6Ci0gICAgICAgICAgICAgICAgIiIiUmVtb3ZlIFBhdGhEYXRhIG9iamVj
dCBmcm9tIHRoZSBlbmQgb2YgdGhlIGNodW5rIiIiCi0gICAgICAgICAgICAgICAgYXNzZXJ0IGxl
bihzZWxmLnBhdGhzKSA+IDEKLSAgICAgICAgICAgICAgICBzZWxmLnRpbWUgLT0gc2VsZi5wYXRo
c1stMV0udGltZQotICAgICAgICAgICAgICAgIHJldHVybiBzZWxmLnBhdGhzLnBvcCgpCi0KLSAg
ICAgICAgICAgIGRlZiBwb3BsZWZ0KHNlbGYpOgotICAgICAgICAgICAgICAgICIiIlJlbW92ZSBQ
YXRoRGF0YSBvYmplY3QgZnJvbSB0aGUgc3RhcnQgb2YgdGhlIGNodW5rIiIiCi0gICAgICAgICAg
ICAgICAgYXNzZXJ0IGxlbihzZWxmLnBhdGhzKSA+IDEKLSAgICAgICAgICAgICAgICBzZWxmLnRp
bWUgLT0gc2VsZi5wYXRoc1swXS50aW1lCi0gICAgICAgICAgICAgICAgcmV0dXJuIHNlbGYucGF0
aHMucG9wbGVmdCgpCi0KLSAgICAgICAgICAgIEBwcm9wZXJ0eQotICAgICAgICAgICAgZGVmIGJh
ZG5lc3Moc2VsZl8pOiAgIyBub3FhOiBOODA1Ci0gICAgICAgICAgICAgICAgIiIiQmFkbmVzcyBt
ZXRyaWMgZm9yIHRoaXMgY2h1bmsiIiIKLSAgICAgICAgICAgICAgICByZXR1cm4gc2VsZi5fYmFk
bmVzcyhzZWxmXy50aW1lKQotCi0gICAgICAgIGluaXRpYWxfc2l6ZSA9IGxlbihieV9kaXIpIC8g
c2VsZi50b3RhbF9jaHVua3MKLSAgICAgICAgY2h1bmtfYm91bmRhcmllcyA9IFtpbml0aWFsX3Np
emUgKiBpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yIGkgaW4geHJhbmdlKHNlbGYu
dG90YWxfY2h1bmtzKV0gKyBbbGVuKGJ5X2RpcildCi0KLSAgICAgICAgY2h1bmtzID0gT3JkZXJl
ZERpY3QoKQotICAgICAgICBmb3IgaSwgbG93ZXIgaW4gZW51bWVyYXRlKGNodW5rX2JvdW5kYXJp
ZXNbOi0xXSk6Ci0gICAgICAgICAgICB1cHBlciA9IGNodW5rX2JvdW5kYXJpZXNbaSArIDFdCi0g
ICAgICAgICAgICBwYXRocyA9IGJ5X2Rpci52YWx1ZXMoKVtsb3dlcjp1cHBlcl0KLSAgICAgICAg
ICAgIGNodW5rc1tpXSA9IENodW5rKHBhdGhzLCBpKQotCi0gICAgICAgIGFzc2VydCBzZWxmLl9h
bGxfdGVzdHMoYnlfZGlyKSA9PSBzZWxmLl9jaHVua2VkX3Rlc3RzKGNodW5rcykKLQotICAgICAg
ICByZXR1cm4gY2h1bmtzCi0KLSAgICBkZWYgX3VwZGF0ZV9jaHVua3Moc2VsZiwgY2h1bmtzKToK
LSAgICAgICAgIiIiUnVuIGEgc2luZ2xlIGl0ZXJhdGlvbiBvZiB0aGUgY2h1bmsgdXBkYXRlIGFs
Z29yaXRobS4KLQotICAgICAgICA6cGFyYW0gY2h1bmtzOiAtIExpc3Qgb2YgY2h1bmtzCi0gICAg
ICAgICIiIgotICAgICAgICAjVE9ETzogY29uc2lkZXIgcmVwbGFjaW5nIHRoaXMgd2l0aCBhIGhl
YXAKLSAgICAgICAgc29ydGVkX2NodW5rcyA9IHNvcnRlZChjaHVua3MudmFsdWVzKCksIGtleT1s
YW1iZGEgeDoteC5iYWRuZXNzKQotICAgICAgICBnb3RfaW1wcm92ZW1lbnQgPSBGYWxzZQotICAg
ICAgICBmb3IgY2h1bmsgaW4gc29ydGVkX2NodW5rczoKLSAgICAgICAgICAgIGlmIGNodW5rLnRp
bWUgPCBzZWxmLmV4cGVjdGVkX3RpbWU6Ci0gICAgICAgICAgICAgICAgZiA9IHNlbGYuX21heWJl
X2FkZAotICAgICAgICAgICAgZWxzZToKLSAgICAgICAgICAgICAgICBmID0gc2VsZi5fbWF5YmVf
cmVtb3ZlCi0KLSAgICAgICAgICAgIGlmIGNodW5rLmluZGV4ID09IDA6Ci0gICAgICAgICAgICAg
ICAgb3JkZXIgPSBbIm5leHQiXQotICAgICAgICAgICAgZWxpZiBjaHVuay5pbmRleCA9PSBzZWxm
LnRvdGFsX2NodW5rcyAtIDE6Ci0gICAgICAgICAgICAgICAgb3JkZXIgPSBbInByZXYiXQotICAg
ICAgICAgICAgZWxzZToKLSAgICAgICAgICAgICAgICBpZiBjaHVuay50aW1lIDwgc2VsZi5leHBl
Y3RlZF90aW1lOgotICAgICAgICAgICAgICAgICAgICAjIEZpcnN0IHRyeSB0byBhZGQgYSB0ZXN0
IGZyb20gdGhlIG5laWdoYm9yaW5nIGNodW5rIHdpdGggdGhlCi0gICAgICAgICAgICAgICAgICAg
ICMgZ3JlYXRlc3QgdG90YWwgdGltZQotICAgICAgICAgICAgICAgICAgICBpZiBjaHVua3NbY2h1
bmsuaW5kZXggKyAxXS50aW1lID4gY2h1bmtzW2NodW5rLmluZGV4IC0gMV0udGltZToKLSAgICAg
ICAgICAgICAgICAgICAgICAgIG9yZGVyID0gWyJuZXh0IiwgInByZXYiXQotICAgICAgICAgICAg
ICAgICAgICBlbHNlOgotICAgICAgICAgICAgICAgICAgICAgICAgb3JkZXIgPSBbInByZXYiLCAi
bmV4dCJdCi0gICAgICAgICAgICAgICAgZWxzZToKLSAgICAgICAgICAgICAgICAgICAgIyBGaXJz
dCB0cnkgdG8gcmVtb3ZlIGEgdGVzdCBhbmQgYWRkIHRvIHRoZSBuZWlnaGJvcmluZyBjaHVuayB3
aXRoIHRoZQotICAgICAgICAgICAgICAgICAgICAjIGxvd2VzdCB0b3RhbCB0aW1lCi0gICAgICAg
ICAgICAgICAgICAgIGlmIGNodW5rc1tjaHVuay5pbmRleCArIDFdLnRpbWUgPiBjaHVua3NbY2h1
bmsuaW5kZXggLSAxXS50aW1lOgotICAgICAgICAgICAgICAgICAgICAgICAgb3JkZXIgPSBbInBy
ZXYiLCAibmV4dCJdCi0gICAgICAgICAgICAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAgICAg
ICAgICAgICBvcmRlciA9IFsibmV4dCIsICJwcmV2Il0KLQotICAgICAgICAgICAgZm9yIGRpcmVj
dGlvbiBpbiBvcmRlcjoKLSAgICAgICAgICAgICAgICBpZiBmKGNodW5rcywgY2h1bmsuaW5kZXgs
IGRpcmVjdGlvbik6Ci0gICAgICAgICAgICAgICAgICAgIGdvdF9pbXByb3ZlbWVudCA9IFRydWUK
LSAgICAgICAgICAgICAgICAgICAgYnJlYWsKLQotICAgICAgICAgICAgaWYgZ290X2ltcHJvdmVt
ZW50OgotICAgICAgICAgICAgICAgIGJyZWFrCi0KLSAgICAgICAgcmV0dXJuIGdvdF9pbXByb3Zl
bWVudAotCi0gICAgZGVmIF9nZXRfdGVzdHMoc2VsZiwgY2h1bmtzKToKLSAgICAgICAgIiIiUmV0
dXJuIHRoZSBsaXN0IG9mIHRlc3RzIGNvcnJlc3BvbmRpbmcgdG8gdGhlIGNodW5rIG51bWJlciB3
ZSBhcmUgcnVubmluZy4KLQotICAgICAgICA6cGFyYW0gY2h1bmtzOiBMaXN0IG9mIGNodW5rcyIi
IgotICAgICAgICB0ZXN0cyA9IFtdCi0gICAgICAgIGZvciBwYXRoIGluIGNodW5rc1tzZWxmLmNo
dW5rX251bWJlciAtIDFdLnBhdGhzOgotICAgICAgICAgICAgdGVzdHMuZXh0ZW5kKHBhdGgudGVz
dHMpCi0KLSAgICAgICAgcmV0dXJuIHRlc3RzCi0KLSAgICBkZWYgX19jYWxsX18oc2VsZiwgbWFu
aWZlc3RfaXRlcik6Ci0gICAgICAgIG1hbmlmZXN0ID0gbGlzdChtYW5pZmVzdF9pdGVyKQotICAg
ICAgICB0ZXN0cyA9IHNlbGYuX2dldF9jaHVuayhtYW5pZmVzdCkKLSAgICAgICAgZm9yIGl0ZW0g
aW4gdGVzdHM6Ci0gICAgICAgICAgICB5aWVsZCBpdGVtCi0KLQogY2xhc3MgVGVzdEZpbHRlcihv
YmplY3QpOgotICAgIGRlZiBfX2luaXRfXyhzZWxmLCB0ZXN0X21hbmlmZXN0cywgaW5jbHVkZT1O
b25lLCBleGNsdWRlPU5vbmUsIG1hbmlmZXN0X3BhdGg9Tm9uZSk6Ci0gICAgICAgIGlmIG1hbmlm
ZXN0X3BhdGggaXMgbm90IE5vbmUgYW5kIGluY2x1ZGUgaXMgTm9uZToKLSAgICAgICAgICAgIHNl
bGYubWFuaWZlc3QgPSBtYW5pZmVzdGluY2x1ZGUuZ2V0X21hbmlmZXN0KG1hbmlmZXN0X3BhdGgp
Ci0gICAgICAgIGVsc2U6CisgICAgIiIiQ2FsbGFibGUgdGhhdCByZXN0cmljdHMgdGhlIHNldCBv
ZiB0ZXN0cyBpbiBhIGdpdmVuIG1hbmlmZXN0IGFjY29yZGluZworICAgIHRvIGluaXRpYWwgY3Jp
dGVyaWEiIiIKKyAgICBkZWYgX19pbml0X18oc2VsZiwgdGVzdF9tYW5pZmVzdHMsIGluY2x1ZGU9
Tm9uZSwgZXhjbHVkZT1Ob25lLCBtYW5pZmVzdF9wYXRoPU5vbmUsIGV4cGxpY2l0PUZhbHNlKToK
KyAgICAgICAgaWYgbWFuaWZlc3RfcGF0aCBpcyBOb25lIG9yIGluY2x1ZGUgb3IgZXhwbGljaXQ6
CiAgICAgICAgICAgICBzZWxmLm1hbmlmZXN0ID0gbWFuaWZlc3RpbmNsdWRlLkluY2x1ZGVNYW5p
ZmVzdC5jcmVhdGUoKQogICAgICAgICAgICAgc2VsZi5tYW5pZmVzdC5zZXRfZGVmYXVsdHMoKQor
ICAgICAgICBlbHNlOgorICAgICAgICAgICAgc2VsZi5tYW5pZmVzdCA9IG1hbmlmZXN0aW5jbHVk
ZS5nZXRfbWFuaWZlc3QobWFuaWZlc3RfcGF0aCkKIAotICAgICAgICBpZiBpbmNsdWRlOgorICAg
ICAgICBpZiBpbmNsdWRlIG9yIGV4cGxpY2l0OgogICAgICAgICAgICAgc2VsZi5tYW5pZmVzdC5z
ZXQoInNraXAiLCAidHJ1ZSIpCisKKyAgICAgICAgaWYgaW5jbHVkZToKICAgICAgICAgICAgIGZv
ciBpdGVtIGluIGluY2x1ZGU6CiAgICAgICAgICAgICAgICAgc2VsZi5tYW5pZmVzdC5hZGRfaW5j
bHVkZSh0ZXN0X21hbmlmZXN0cywgaXRlbSkKIApAQCAtMzY3LDYgKzk5LDcgQEAgY2xhc3MgVGVz
dEZpbHRlcihvYmplY3QpOgogICAgICAgICAgICAgaWYgaW5jbHVkZV90ZXN0czoKICAgICAgICAg
ICAgICAgICB5aWVsZCB0ZXN0X3R5cGUsIHRlc3RfcGF0aCwgaW5jbHVkZV90ZXN0cwogCisKIGNs
YXNzIFRhZ0ZpbHRlcihvYmplY3QpOgogICAgIGRlZiBfX2luaXRfXyhzZWxmLCB0YWdzKToKICAg
ICAgICAgc2VsZi50YWdzID0gc2V0KHRhZ3MpCkBAIC0zNzgsMTMgKzExMSwxMyBAQCBjbGFzcyBU
YWdGaWx0ZXIob2JqZWN0KToKIAogCiBjbGFzcyBNYW5pZmVzdExvYWRlcihvYmplY3QpOgotICAg
IGRlZiBfX2luaXRfXyhzZWxmLCB0ZXN0X3BhdGhzLCBmb3JjZV9tYW5pZmVzdF91cGRhdGU9RmFs
c2UsIG1hbmlmZXN0X2Rvd25sb2FkPUZhbHNlLCB0eXBlcz1Ob25lLCBtZXRhX2ZpbHRlcnM9Tm9u
ZSk6CisgICAgZGVmIF9faW5pdF9fKHNlbGYsIHRlc3RfcGF0aHMsIGZvcmNlX21hbmlmZXN0X3Vw
ZGF0ZT1GYWxzZSwgbWFuaWZlc3RfZG93bmxvYWQ9RmFsc2UsCisgICAgICAgICAgICAgICAgIHR5
cGVzPU5vbmUpOgogICAgICAgICBkb19kZWxheWVkX2ltcG9ydHMoKQogICAgICAgICBzZWxmLnRl
c3RfcGF0aHMgPSB0ZXN0X3BhdGhzCiAgICAgICAgIHNlbGYuZm9yY2VfbWFuaWZlc3RfdXBkYXRl
ID0gZm9yY2VfbWFuaWZlc3RfdXBkYXRlCiAgICAgICAgIHNlbGYubWFuaWZlc3RfZG93bmxvYWQg
PSBtYW5pZmVzdF9kb3dubG9hZAogICAgICAgICBzZWxmLnR5cGVzID0gdHlwZXMKLSAgICAgICAg
c2VsZi5tZXRhX2ZpbHRlcnMgPSBtZXRhX2ZpbHRlcnMgb3IgW10KICAgICAgICAgc2VsZi5sb2dn
ZXIgPSBzdHJ1Y3R1cmVkLmdldF9kZWZhdWx0X2xvZ2dlcigpCiAgICAgICAgIGlmIHNlbGYubG9n
Z2VyIGlzIE5vbmU6CiAgICAgICAgICAgICBzZWxmLmxvZ2dlciA9IHN0cnVjdHVyZWQuc3RydWN0
dXJlZGxvZy5TdHJ1Y3R1cmVkTG9nZ2VyKCJNYW5pZmVzdExvYWRlciIpCkBAIC0zOTksNTQgKzEz
MiwxMyBAQCBjbGFzcyBNYW5pZmVzdExvYWRlcihvYmplY3QpOgogICAgICAgICAgICAgcnZbbWFu
aWZlc3RfZmlsZV0gPSBwYXRoX2RhdGEKICAgICAgICAgcmV0dXJuIHJ2CiAKLSAgICBkZWYgY3Jl
YXRlX21hbmlmZXN0KHNlbGYsIG1hbmlmZXN0X3BhdGgsIHRlc3RzX3BhdGgsIHVybF9iYXNlPSIv
Iik6Ci0gICAgICAgIHNlbGYudXBkYXRlX21hbmlmZXN0KG1hbmlmZXN0X3BhdGgsIHRlc3RzX3Bh
dGgsIHVybF9iYXNlLCByZWNyZWF0ZT1UcnVlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBkb3dubG9hZD1zZWxmLm1hbmlmZXN0X2Rvd25sb2FkKQotCi0gICAgZGVmIHVwZGF0ZV9tYW5p
ZmVzdChzZWxmLCBtYW5pZmVzdF9wYXRoLCB0ZXN0c19wYXRoLCB1cmxfYmFzZT0iLyIsCi0gICAg
ICAgICAgICAgICAgICAgICAgICByZWNyZWF0ZT1GYWxzZSwgZG93bmxvYWQ9RmFsc2UpOgotICAg
ICAgICBzZWxmLmxvZ2dlci5pbmZvKCJVcGRhdGluZyB0ZXN0IG1hbmlmZXN0ICVzIiAlIG1hbmlm
ZXN0X3BhdGgpCi0gICAgICAgIG1hbmlmZXN0X2xvZy5zZXR1cCgpCi0KLSAgICAgICAganNvbl9k
YXRhID0gTm9uZQotICAgICAgICBpZiBkb3dubG9hZDoKLSAgICAgICAgICAgICMgVE9ETzogbWFr
ZSB0aGlzIG5vdCBnaXRodWItc3BlY2lmaWMKKyAgICBkZWYgbG9hZF9tYW5pZmVzdChzZWxmLCB0
ZXN0c19wYXRoLCBtYW5pZmVzdF9wYXRoLCBtZXRhZGF0YV9wYXRoLCB1cmxfYmFzZT0iLyIsICoq
a3dhcmdzKToKKyAgICAgICAgY2FjaGVfcm9vdCA9IG9zLnBhdGguam9pbihtZXRhZGF0YV9wYXRo
LCAiLmNhY2hlIikKKyAgICAgICAgaWYgc2VsZi5tYW5pZmVzdF9kb3dubG9hZDoKICAgICAgICAg
ICAgIGRvd25sb2FkX2Zyb21fZ2l0aHViKG1hbmlmZXN0X3BhdGgsIHRlc3RzX3BhdGgpCi0KLSAg
ICAgICAgaWYgbm90IHJlY3JlYXRlOgotICAgICAgICAgICAgdHJ5OgotICAgICAgICAgICAgICAg
IHdpdGggb3BlbihtYW5pZmVzdF9wYXRoKSBhcyBmOgotICAgICAgICAgICAgICAgICAgICBqc29u
X2RhdGEgPSBqc29uLmxvYWQoZikKLSAgICAgICAgICAgIGV4Y2VwdCBJT0Vycm9yOgotICAgICAg
ICAgICAgICAgIHNlbGYubG9nZ2VyLmluZm8oIlVuYWJsZSB0byBmaW5kIHRlc3QgbWFuaWZlc3Qi
KQotICAgICAgICAgICAgZXhjZXB0IFZhbHVlRXJyb3I6Ci0gICAgICAgICAgICAgICAgc2VsZi5s
b2dnZXIuaW5mbygiVW5hYmxlIHRvIHBhcnNlIHRlc3QgbWFuaWZlc3QiKQotCi0gICAgICAgIGlm
IG5vdCBqc29uX2RhdGE6Ci0gICAgICAgICAgICBzZWxmLmxvZ2dlci5pbmZvKCJDcmVhdGluZyB0
ZXN0IG1hbmlmZXN0IikKLSAgICAgICAgICAgIG1hbmlmZXN0X2ZpbGUgPSBtYW5pZmVzdC5NYW5p
ZmVzdCh1cmxfYmFzZSkKLSAgICAgICAgZWxzZToKLSAgICAgICAgICAgIHRyeToKLSAgICAgICAg
ICAgICAgICBtYW5pZmVzdF9maWxlID0gbWFuaWZlc3QuTWFuaWZlc3QuZnJvbV9qc29uKHRlc3Rz
X3BhdGgsIGpzb25fZGF0YSkKLSAgICAgICAgICAgIGV4Y2VwdCBtYW5pZmVzdC5NYW5pZmVzdFZl
cnNpb25NaXNtYXRjaDoKLSAgICAgICAgICAgICAgICBtYW5pZmVzdF9maWxlID0gbWFuaWZlc3Qu
TWFuaWZlc3QodXJsX2Jhc2UpCi0KLSAgICAgICAgbWFuaWZlc3RfdXBkYXRlLnVwZGF0ZSh0ZXN0
c19wYXRoLCBtYW5pZmVzdF9maWxlLCBUcnVlKQotCi0gICAgICAgIG1hbmlmZXN0LndyaXRlKG1h
bmlmZXN0X2ZpbGUsIG1hbmlmZXN0X3BhdGgpCi0KLSAgICBkZWYgbG9hZF9tYW5pZmVzdChzZWxm
LCB0ZXN0c19wYXRoLCBtYW5pZmVzdF9wYXRoLCB1cmxfYmFzZT0iLyIsICoqa3dhcmdzKToKLSAg
ICAgICAgaWYgKG5vdCBvcy5wYXRoLmV4aXN0cyhtYW5pZmVzdF9wYXRoKSBvcgotICAgICAgICAg
ICAgc2VsZi5mb3JjZV9tYW5pZmVzdF91cGRhdGUpOgotICAgICAgICAgICAgc2VsZi51cGRhdGVf
bWFuaWZlc3QobWFuaWZlc3RfcGF0aCwgdGVzdHNfcGF0aCwgdXJsX2Jhc2UsIGRvd25sb2FkPXNl
bGYubWFuaWZlc3RfZG93bmxvYWQpCi0gICAgICAgIG1hbmlmZXN0X2ZpbGUgPSBtYW5pZmVzdC5s
b2FkKHRlc3RzX3BhdGgsIG1hbmlmZXN0X3BhdGgsIHR5cGVzPXNlbGYudHlwZXMsIG1ldGFfZmls
dGVycz1zZWxmLm1ldGFfZmlsdGVycykKLSAgICAgICAgaWYgbWFuaWZlc3RfZmlsZS51cmxfYmFz
ZSAhPSB1cmxfYmFzZToKLSAgICAgICAgICAgIHNlbGYubG9nZ2VyLmluZm8oIlVwZGF0aW5nIHVy
bF9iYXNlIGluIG1hbmlmZXN0IGZyb20gJXMgdG8gJXMiICUgKG1hbmlmZXN0X2ZpbGUudXJsX2Jh
c2UsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICB1cmxfYmFzZSkpCi0gICAgICAgICAgICBtYW5pZmVz
dF9maWxlLnVybF9iYXNlID0gdXJsX2Jhc2UKLSAgICAgICAgICAgIG1hbmlmZXN0LndyaXRlKG1h
bmlmZXN0X2ZpbGUsIG1hbmlmZXN0X3BhdGgpCi0KLSAgICAgICAgcmV0dXJuIG1hbmlmZXN0X2Zp
bGUKKyAgICAgICAgcmV0dXJuIG1hbmlmZXN0LmxvYWRfYW5kX3VwZGF0ZSh0ZXN0c19wYXRoLCBt
YW5pZmVzdF9wYXRoLCB1cmxfYmFzZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBjYWNoZV9yb290PWNhY2hlX3Jvb3QsIHVwZGF0ZT1zZWxmLmZvcmNlX21hbmlmZXN0
X3VwZGF0ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlcz1z
ZWxmLnR5cGVzKQogCiAKIGRlZiBpdGVyZmlsdGVyKGZpbHRlcnMsIGl0ZXIpOgpAQCAtNDU3LDEy
ICsxNDksMTIgQEAgZGVmIGl0ZXJmaWx0ZXIoZmlsdGVycywgaXRlcik6CiAKIAogY2xhc3MgVGVz
dExvYWRlcihvYmplY3QpOgorICAgICIiIkxvYWRzIHRlc3RzIGFjY29yZGluZyB0byBhIFdQVCBt
YW5pZmVzdCBhbmQgYW55IGFzc29jaWF0ZWQgZXhwZWN0YXRpb24gZmlsZXMiIiIKICAgICBkZWYg
X19pbml0X18oc2VsZiwKICAgICAgICAgICAgICAgICAgdGVzdF9tYW5pZmVzdHMsCiAgICAgICAg
ICAgICAgICAgIHRlc3RfdHlwZXMsCiAgICAgICAgICAgICAgICAgIHJ1bl9pbmZvLAogICAgICAg
ICAgICAgICAgICBtYW5pZmVzdF9maWx0ZXJzPU5vbmUsCi0gICAgICAgICAgICAgICAgIG1ldGFf
ZmlsdGVycz1Ob25lLAogICAgICAgICAgICAgICAgICBjaHVua190eXBlPSJub25lIiwKICAgICAg
ICAgICAgICAgICAgdG90YWxfY2h1bmtzPTEsCiAgICAgICAgICAgICAgICAgIGNodW5rX251bWJl
cj0xLApAQCAtNDczLDcgKzE2NSw2IEBAIGNsYXNzIFRlc3RMb2FkZXIob2JqZWN0KToKICAgICAg
ICAgc2VsZi5ydW5faW5mbyA9IHJ1bl9pbmZvCiAKICAgICAgICAgc2VsZi5tYW5pZmVzdF9maWx0
ZXJzID0gbWFuaWZlc3RfZmlsdGVycyBpZiBtYW5pZmVzdF9maWx0ZXJzIGlzIG5vdCBOb25lIGVs
c2UgW10KLSAgICAgICAgc2VsZi5tZXRhX2ZpbHRlcnMgPSBtZXRhX2ZpbHRlcnMgaWYgbWV0YV9m
aWx0ZXJzIGlzIG5vdCBOb25lIGVsc2UgW10KIAogICAgICAgICBzZWxmLm1hbmlmZXN0cyA9IHRl
c3RfbWFuaWZlc3RzCiAgICAgICAgIHNlbGYudGVzdHMgPSBOb25lCkBAIC00ODcsOSArMTc4LDgg
QEAgY2xhc3MgVGVzdExvYWRlcihvYmplY3QpOgogCiAgICAgICAgIHNlbGYuY2h1bmtlciA9IHsi
bm9uZSI6IFVuY2h1bmtlZCwKICAgICAgICAgICAgICAgICAgICAgICAgICJoYXNoIjogSGFzaENo
dW5rZXIsCi0gICAgICAgICAgICAgICAgICAgICAgICAiZGlyX2hhc2giOiBEaXJlY3RvcnlIYXNo
Q2h1bmtlciwKLSAgICAgICAgICAgICAgICAgICAgICAgICJlcXVhbF90aW1lIjogRXF1YWxUaW1l
Q2h1bmtlcn1bY2h1bmtfdHlwZV0odG90YWxfY2h1bmtzLAotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaHVua19udW1i
ZXIpCisgICAgICAgICAgICAgICAgICAgICAgICAiZGlyX2hhc2giOiBEaXJlY3RvcnlIYXNoQ2h1
bmtlcn1bY2h1bmtfdHlwZV0odG90YWxfY2h1bmtzLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNodW5rX251bWJl
cikKIAogICAgICAgICBzZWxmLl90ZXN0X2lkcyA9IE5vbmUKIApAQCAtNTA2LDEyICsxOTYsMTIg
QEAgY2xhc3MgVGVzdExvYWRlcihvYmplY3QpOgogICAgICAgICAgICAgICAgICAgICBzZWxmLl90
ZXN0X2lkcyArPSBbaXRlbS5pZCBmb3IgaXRlbSBpbiB0ZXN0X2RpY3RbdGVzdF90eXBlXV0KICAg
ICAgICAgcmV0dXJuIHNlbGYuX3Rlc3RfaWRzCiAKLSAgICBkZWYgZ2V0X3Rlc3Qoc2VsZiwgbWFu
aWZlc3RfdGVzdCwgaW5oZXJpdF9tZXRhZGF0YSwgdGVzdF9tZXRhZGF0YSk6CisgICAgZGVmIGdl
dF90ZXN0KHNlbGYsIG1hbmlmZXN0X2ZpbGUsIG1hbmlmZXN0X3Rlc3QsIGluaGVyaXRfbWV0YWRh
dGEsIHRlc3RfbWV0YWRhdGEpOgogICAgICAgICBpZiB0ZXN0X21ldGFkYXRhIGlzIG5vdCBOb25l
OgogICAgICAgICAgICAgaW5oZXJpdF9tZXRhZGF0YS5hcHBlbmQodGVzdF9tZXRhZGF0YSkKICAg
ICAgICAgICAgIHRlc3RfbWV0YWRhdGEgPSB0ZXN0X21ldGFkYXRhLmdldF90ZXN0KG1hbmlmZXN0
X3Rlc3QuaWQpCiAKLSAgICAgICAgcmV0dXJuIHdwdHRlc3QuZnJvbV9tYW5pZmVzdChtYW5pZmVz
dF90ZXN0LCBpbmhlcml0X21ldGFkYXRhLCB0ZXN0X21ldGFkYXRhKQorICAgICAgICByZXR1cm4g
d3B0dGVzdC5mcm9tX21hbmlmZXN0KG1hbmlmZXN0X2ZpbGUsIG1hbmlmZXN0X3Rlc3QsIGluaGVy
aXRfbWV0YWRhdGEsIHRlc3RfbWV0YWRhdGEpCiAKICAgICBkZWYgbG9hZF9kaXJfbWV0YWRhdGEo
c2VsZiwgdGVzdF9tYW5pZmVzdCwgbWV0YWRhdGFfcGF0aCwgdGVzdF9wYXRoKToKICAgICAgICAg
cnYgPSBbXQpAQCAtNTM0LDI3ICsyMjQsMjQgQEAgY2xhc3MgVGVzdExvYWRlcihvYmplY3QpOgog
CiAgICAgZGVmIGl0ZXJfdGVzdHMoc2VsZik6CiAgICAgICAgIG1hbmlmZXN0X2l0ZW1zID0gW10K
KyAgICAgICAgbWFuaWZlc3RzX2J5X3VybF9iYXNlID0ge30KIAogICAgICAgICBmb3IgbWFuaWZl
c3QgaW4gc29ydGVkKHNlbGYubWFuaWZlc3RzLmtleXMoKSwga2V5PWxhbWJkYSB4OngudXJsX2Jh
c2UpOgogICAgICAgICAgICAgbWFuaWZlc3RfaXRlciA9IGl0ZXJmaWx0ZXIoc2VsZi5tYW5pZmVz
dF9maWx0ZXJzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFuaWZl
c3QuaXRlcnR5cGVzKCpzZWxmLnRlc3RfdHlwZXMpKQogICAgICAgICAgICAgbWFuaWZlc3RfaXRl
bXMuZXh0ZW5kKG1hbmlmZXN0X2l0ZXIpCisgICAgICAgICAgICBtYW5pZmVzdHNfYnlfdXJsX2Jh
c2VbbWFuaWZlc3QudXJsX2Jhc2VdID0gbWFuaWZlc3QKIAogICAgICAgICBpZiBzZWxmLmNodW5r
ZXIgaXMgbm90IE5vbmU6CiAgICAgICAgICAgICBtYW5pZmVzdF9pdGVtcyA9IHNlbGYuY2h1bmtl
cihtYW5pZmVzdF9pdGVtcykKIAogICAgICAgICBmb3IgdGVzdF90eXBlLCB0ZXN0X3BhdGgsIHRl
c3RzIGluIG1hbmlmZXN0X2l0ZW1zOgotICAgICAgICAgICAgbWFuaWZlc3RfZmlsZSA9IGl0ZXIo
dGVzdHMpLm5leHQoKS5tYW5pZmVzdAorICAgICAgICAgICAgbWFuaWZlc3RfZmlsZSA9IG1hbmlm
ZXN0c19ieV91cmxfYmFzZVtpdGVyKHRlc3RzKS5uZXh0KCkudXJsX2Jhc2VdCiAgICAgICAgICAg
ICBtZXRhZGF0YV9wYXRoID0gc2VsZi5tYW5pZmVzdHNbbWFuaWZlc3RfZmlsZV1bIm1ldGFkYXRh
X3BhdGgiXQotICAgICAgICAgICAgaW5oZXJpdF9tZXRhZGF0YSwgdGVzdF9tZXRhZGF0YSA9IHNl
bGYubG9hZF9tZXRhZGF0YShtYW5pZmVzdF9maWxlLCBtZXRhZGF0YV9wYXRoLCB0ZXN0X3BhdGgp
Ci0KLSAgICAgICAgICAgIGZvciB0ZXN0IGluIGl0ZXJmaWx0ZXIoc2VsZi5tZXRhX2ZpbHRlcnMs
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuaXRlcl93cHR0ZXN0KGlu
aGVyaXRfbWV0YWRhdGEsIHRlc3RfbWV0YWRhdGEsIHRlc3RzKSk6Ci0gICAgICAgICAgICAgICAg
eWllbGQgdGVzdF9wYXRoLCB0ZXN0X3R5cGUsIHRlc3QKIAotICAgIGRlZiBpdGVyX3dwdHRlc3Qo
c2VsZiwgaW5oZXJpdF9tZXRhZGF0YSwgdGVzdF9tZXRhZGF0YSwgdGVzdHMpOgotICAgICAgICBm
b3IgbWFuaWZlc3RfdGVzdCBpbiB0ZXN0czoKLSAgICAgICAgICAgIHlpZWxkIHNlbGYuZ2V0X3Rl
c3QobWFuaWZlc3RfdGVzdCwgaW5oZXJpdF9tZXRhZGF0YSwgdGVzdF9tZXRhZGF0YSkKKyAgICAg
ICAgICAgIGluaGVyaXRfbWV0YWRhdGEsIHRlc3RfbWV0YWRhdGEgPSBzZWxmLmxvYWRfbWV0YWRh
dGEobWFuaWZlc3RfZmlsZSwgbWV0YWRhdGFfcGF0aCwgdGVzdF9wYXRoKQorICAgICAgICAgICAg
Zm9yIHRlc3QgaW4gdGVzdHM6CisgICAgICAgICAgICAgICAgeWllbGQgdGVzdF9wYXRoLCB0ZXN0
X3R5cGUsIHNlbGYuZ2V0X3Rlc3QobWFuaWZlc3RfZmlsZSwgdGVzdCwgaW5oZXJpdF9tZXRhZGF0
YSwgdGVzdF9tZXRhZGF0YSkKIAogICAgIGRlZiBfbG9hZF90ZXN0cyhzZWxmKToKICAgICAgICAg
IiIiUmVhZCBpbiB0aGUgdGVzdHMgZnJvbSB0aGUgbWFuaWZlc3QgZmlsZSBhbmQgYWRkIHRoZW0g
dG8gYSBxdWV1ZSIiIgpAQCAtNTkzLDkgKzI4MCw4IEBAIGNsYXNzIFRlc3RTb3VyY2Uob2JqZWN0
KToKICAgICAgICAgc2VsZi5jdXJyZW50X21ldGFkYXRhID0gTm9uZQogCiAgICAgQGFic3RyYWN0
bWV0aG9kCi0gICAgIyBub3FhOiBOODA1Ci0gICAgI0BjbGFzc21ldGhvZCAoZG9lc24ndCBjb21w
b3NlIHdpdGggQGFic3RyYWN0bWV0aG9kKQotICAgIGRlZiBtYWtlX3F1ZXVlKGNscywgdGVzdHMs
ICoqa3dhcmdzKToKKyAgICAjQGNsYXNzbWV0aG9kIChkb2Vzbid0IGNvbXBvc2Ugd2l0aCBAYWJz
dHJhY3RtZXRob2QgaW4gPCAzLjMpCisgICAgZGVmIG1ha2VfcXVldWUoY2xzLCB0ZXN0cywgKipr
d2FyZ3MpOiAgIyBub3FhOiBOODA1CiAgICAgICAgIHBhc3MKIAogICAgIEBjbGFzc21ldGhvZApA
QCAtNjYzLDcgKzM0OSw3IEBAIGNsYXNzIFBhdGhHcm91cGVkU291cmNlKEdyb3VwZWRTb3VyY2Up
OgogICAgICAgICBkZXB0aCA9IGt3YXJncy5nZXQoImRlcHRoIikKICAgICAgICAgaWYgZGVwdGgg
aXMgVHJ1ZSBvciBkZXB0aCA9PSAwOgogICAgICAgICAgICAgZGVwdGggPSBOb25lCi0gICAgICAg
IHBhdGggPSB1cmxwYXJzZS51cmxzcGxpdCh0ZXN0LnVybCkucGF0aC5zcGxpdCgiLyIpWzE6LTFd
WzpkZXB0aF0KKyAgICAgICAgcGF0aCA9IHVybHNwbGl0KHRlc3QudXJsKS5wYXRoLnNwbGl0KCIv
IilbMTotMV1bOmRlcHRoXQogICAgICAgICBydiA9IHBhdGggIT0gc3RhdGUuZ2V0KCJwcmV2X3Bh
dGgiKQogICAgICAgICBzdGF0ZVsicHJldl9wYXRoIl0gPSBwYXRoCiAgICAgICAgIHJldHVybiBy
dgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3Rlc3RydW5uZXIucHkgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIv
dGVzdHJ1bm5lci5weQppbmRleCA0NmQ2N2UzYzk4Mi4uOGRlY2UyMGE4ZTkgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVu
bmVyL3dwdHJ1bm5lci90ZXN0cnVubmVyLnB5CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci90ZXN0cnVubmVy
LnB5CkBAIC0zLDE2ICszLDI3IEBAIGZyb20gX19mdXR1cmVfXyBpbXBvcnQgdW5pY29kZV9saXRl
cmFscwogaW1wb3J0IG11bHRpcHJvY2Vzc2luZwogaW1wb3J0IHRocmVhZGluZwogaW1wb3J0IHRy
YWNlYmFjawotZnJvbSBRdWV1ZSBpbXBvcnQgRW1wdHkKK2Zyb20gc2l4Lm1vdmVzLnF1ZXVlIGlt
cG9ydCBFbXB0eQogZnJvbSBjb2xsZWN0aW9ucyBpbXBvcnQgbmFtZWR0dXBsZQogZnJvbSBtdWx0
aXByb2Nlc3NpbmcgaW1wb3J0IFByb2Nlc3MsIGN1cnJlbnRfcHJvY2VzcywgUXVldWUKIAotZnJv
bSBtb3psb2cgaW1wb3J0IHN0cnVjdHVyZWRsb2cKK2Zyb20gbW96bG9nIGltcG9ydCBzdHJ1Y3R1
cmVkbG9nLCBjYXB0dXJlCiAKICMgU3BlY2lhbCB2YWx1ZSB1c2VkIGFzIGEgc2VudGluYWwgaW4g
dmFyaW91cyBjb21tYW5kcwogU3RvcCA9IG9iamVjdCgpCiAKIAorZGVmIHJlbGVhc2VfbW96bG9n
X2xvY2soKToKKyAgICB0cnk6CisgICAgICAgIGZyb20gbW96bG9nLnN0cnVjdHVyZWRsb2cgaW1w
b3J0IFN0cnVjdHVyZWRMb2dnZXIKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgU3RydWN0dXJl
ZExvZ2dlci5fbG9jay5yZWxlYXNlKCkKKyAgICAgICAgZXhjZXB0IHRocmVhZGluZy5UaHJlYWRF
cnJvcjoKKyAgICAgICAgICAgIHBhc3MKKyAgICBleGNlcHQgSW1wb3J0RXJyb3I6CisgICAgICAg
IHBhc3MKKworCiBjbGFzcyBNZXNzYWdlTG9nZ2VyKG9iamVjdCk6CiAgICAgZGVmIF9faW5pdF9f
KHNlbGYsIG1lc3NhZ2VfZnVuYyk6CiAgICAgICAgIHNlbGYuc2VuZF9tZXNzYWdlID0gbWVzc2Fn
ZV9mdW5jCkBAIC00MCwyNCArNTEsMjUgQEAgZm9yIGxldmVsX25hbWUgaW4gc3RydWN0dXJlZGxv
Zy5sb2dfbGV2ZWxzOgogCiAKIGNsYXNzIFRlc3RSdW5uZXIob2JqZWN0KToKLSAgICBkZWYgX19p
bml0X18oc2VsZiwgY29tbWFuZF9xdWV1ZSwgcmVzdWx0X3F1ZXVlLCBleGVjdXRvcik6Ci0gICAg
ICAgICIiIkNsYXNzIGltcGxlbWVudGluZyB0aGUgbWFpbiBsb29wIGZvciBydW5uaW5nIHRlc3Rz
LgotCi0gICAgICAgIFRoaXMgY2xhc3MgZGVsZWdhdGVzIHRoZSBqb2Igb2YgYWN0dWFsbHkgcnVu
bmluZyBhIHRlc3QgdG8gdGhlIGV4ZWN1dG9yCi0gICAgICAgIHRoYXQgaXMgcGFzc2VkIGluLgot
Ci0gICAgICAgIDpwYXJhbSBjb21tYW5kX3F1ZXVlOiBzdWJwcm9jZXNzLlF1ZXVlIHVzZWQgdG8g
c2VuZCBjb21tYW5kcyB0byB0aGUKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByb2Nl
c3MKLSAgICAgICAgOnBhcmFtIHJlc3VsdF9xdWV1ZTogc3VicHJvY2Vzcy5RdWV1ZSB1c2VkIHRv
IHNlbmQgcmVzdWx0cyB0byB0aGUKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFyZW50
IFRlc3RNYW5hZ2VyIHByb2Nlc3MKLSAgICAgICAgOnBhcmFtIGV4ZWN1dG9yOiBUZXN0RXhlY3V0
b3Igb2JqZWN0IHRoYXQgd2lsbCBhY3R1YWxseSBydW4gYSB0ZXN0LgotICAgICAgICAiIiIKKyAg
ICAiIiJDbGFzcyBpbXBsZW1lbnRpbmcgdGhlIG1haW4gbG9vcCBmb3IgcnVubmluZyB0ZXN0cy4K
KworICAgIFRoaXMgY2xhc3MgZGVsZWdhdGVzIHRoZSBqb2Igb2YgYWN0dWFsbHkgcnVubmluZyBh
IHRlc3QgdG8gdGhlIGV4ZWN1dG9yCisgICAgdGhhdCBpcyBwYXNzZWQgaW4uCisKKyAgICA6cGFy
YW0gbG9nZ2VyOiBTdHJ1Y3R1cmVkIGxvZ2dlcgorICAgIDpwYXJhbSBjb21tYW5kX3F1ZXVlOiBz
dWJwcm9jZXNzLlF1ZXVlIHVzZWQgdG8gc2VuZCBjb21tYW5kcyB0byB0aGUKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgcHJvY2VzcworICAgIDpwYXJhbSByZXN1bHRfcXVldWU6IHN1YnByb2Nl
c3MuUXVldWUgdXNlZCB0byBzZW5kIHJlc3VsdHMgdG8gdGhlCisgICAgICAgICAgICAgICAgICAg
ICAgICAgcGFyZW50IFRlc3RSdW5uZXJNYW5hZ2VyIHByb2Nlc3MKKyAgICA6cGFyYW0gZXhlY3V0
b3I6IFRlc3RFeGVjdXRvciBvYmplY3QgdGhhdCB3aWxsIGFjdHVhbGx5IHJ1biBhIHRlc3QuCisg
ICAgIiIiCisgICAgZGVmIF9faW5pdF9fKHNlbGYsIGxvZ2dlciwgY29tbWFuZF9xdWV1ZSwgcmVz
dWx0X3F1ZXVlLCBleGVjdXRvcik6CiAgICAgICAgIHNlbGYuY29tbWFuZF9xdWV1ZSA9IGNvbW1h
bmRfcXVldWUKICAgICAgICAgc2VsZi5yZXN1bHRfcXVldWUgPSByZXN1bHRfcXVldWUKIAogICAg
ICAgICBzZWxmLmV4ZWN1dG9yID0gZXhlY3V0b3IKICAgICAgICAgc2VsZi5uYW1lID0gY3VycmVu
dF9wcm9jZXNzKCkubmFtZQotICAgICAgICBzZWxmLmxvZ2dlciA9IE1lc3NhZ2VMb2dnZXIoc2Vs
Zi5zZW5kX21lc3NhZ2UpCisgICAgICAgIHNlbGYubG9nZ2VyID0gbG9nZ2VyCiAKICAgICBkZWYg
X19lbnRlcl9fKHNlbGYpOgogICAgICAgICByZXR1cm4gc2VsZgpAQCAtNjcsNyArNzksMTMgQEAg
Y2xhc3MgVGVzdFJ1bm5lcihvYmplY3QpOgogCiAgICAgZGVmIHNldHVwKHNlbGYpOgogICAgICAg
ICBzZWxmLmxvZ2dlci5kZWJ1ZygiRXhlY3V0b3Igc2V0dXAiKQotICAgICAgICBzZWxmLmV4ZWN1
dG9yLnNldHVwKHNlbGYpCisgICAgICAgIHRyeToKKyAgICAgICAgICAgIHNlbGYuZXhlY3V0b3Iu
c2V0dXAoc2VsZikKKyAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbjoKKyAgICAgICAgICAgICMgVGhl
IGNhbGxlciBpcyByZXNwb25zaWJsZSBmb3IgbG9nZ2luZyB0aGUgZXhjZXB0aW9uIGlmIHJlcXVp
cmVkCisgICAgICAgICAgICBzZWxmLnNlbmRfbWVzc2FnZSgiaW5pdF9mYWlsZWQiKQorICAgICAg
ICBlbHNlOgorICAgICAgICAgICAgc2VsZi5zZW5kX21lc3NhZ2UoImluaXRfc3VjY2VlZGVkIikK
ICAgICAgICAgc2VsZi5sb2dnZXIuZGVidWcoIkV4ZWN1dG9yIHNldHVwIGRvbmUiKQogCiAgICAg
ZGVmIHRlYXJkb3duKHNlbGYpOgpAQCAtODIsNiArMTAwLDcgQEAgY2xhc3MgVGVzdFJ1bm5lcihv
YmplY3QpOgogICAgICAgICB0aGUgYXNzb2NpYXRlZCBtZXRob2RzIiIiCiAgICAgICAgIHNlbGYu
c2V0dXAoKQogICAgICAgICBjb21tYW5kcyA9IHsicnVuX3Rlc3QiOiBzZWxmLnJ1bl90ZXN0LAor
ICAgICAgICAgICAgICAgICAgICAicmVzZXQiOiBzZWxmLnJlc2V0LAogICAgICAgICAgICAgICAg
ICAgICAic3RvcCI6IHNlbGYuc3RvcCwKICAgICAgICAgICAgICAgICAgICAgIndhaXQiOiBzZWxm
LndhaXR9CiAgICAgICAgIHdoaWxlIFRydWU6CkBAIC05OSw2ICsxMTgsOSBAQCBjbGFzcyBUZXN0
UnVubmVyKG9iamVjdCk6CiAgICAgZGVmIHN0b3Aoc2VsZik6CiAgICAgICAgIHJldHVybiBTdG9w
CiAKKyAgICBkZWYgcmVzZXQoc2VsZik6CisgICAgICAgIHNlbGYuZXhlY3V0b3IucmVzZXQoKQor
CiAgICAgZGVmIHJ1bl90ZXN0KHNlbGYsIHRlc3QpOgogICAgICAgICB0cnk6CiAgICAgICAgICAg
ICByZXR1cm4gc2VsZi5leGVjdXRvci5ydW5fdGVzdCh0ZXN0KQpAQCAtMTE3LDMwICsxMzksMzUg
QEAgY2xhc3MgVGVzdFJ1bm5lcihvYmplY3QpOgogZGVmIHN0YXJ0X3J1bm5lcihydW5uZXJfY29t
bWFuZF9xdWV1ZSwgcnVubmVyX3Jlc3VsdF9xdWV1ZSwKICAgICAgICAgICAgICAgICAgZXhlY3V0
b3JfY2xzLCBleGVjdXRvcl9rd2FyZ3MsCiAgICAgICAgICAgICAgICAgIGV4ZWN1dG9yX2Jyb3dz
ZXJfY2xzLCBleGVjdXRvcl9icm93c2VyX2t3YXJncywKLSAgICAgICAgICAgICAgICAgc3RvcF9m
bGFnKToKKyAgICAgICAgICAgICAgICAgY2FwdHVyZV9zdGRpbywgc3RvcF9mbGFnKToKICAgICAi
IiJMYXVuY2ggYSBUZXN0UnVubmVyIGluIGEgbmV3IHByb2Nlc3MiIiIKLSAgICBkZWYgbG9nKGxl
dmVsLCBtc2cpOgotICAgICAgICBydW5uZXJfcmVzdWx0X3F1ZXVlLnB1dCgoImxvZyIsIChsZXZl
bCwgeyJtZXNzYWdlIjogbXNnfSkpKQorCisgICAgZGVmIHNlbmRfbWVzc2FnZShjb21tYW5kLCAq
YXJncyk6CisgICAgICAgIHJ1bm5lcl9yZXN1bHRfcXVldWUucHV0KChjb21tYW5kLCBhcmdzKSkK
IAogICAgIGRlZiBoYW5kbGVfZXJyb3IoZSk6Ci0gICAgICAgIGxvZygiY3JpdGljYWwiLCB0cmFj
ZWJhY2suZm9ybWF0X2V4YygpKQorICAgICAgICBsb2dnZXIuY3JpdGljYWwodHJhY2ViYWNrLmZv
cm1hdF9leGMoKSkKICAgICAgICAgc3RvcF9mbGFnLnNldCgpCiAKLSAgICB0cnk6Ci0gICAgICAg
IGJyb3dzZXIgPSBleGVjdXRvcl9icm93c2VyX2NscygqKmV4ZWN1dG9yX2Jyb3dzZXJfa3dhcmdz
KQotICAgICAgICBleGVjdXRvciA9IGV4ZWN1dG9yX2Nscyhicm93c2VyLCAqKmV4ZWN1dG9yX2t3
YXJncykKLSAgICAgICAgd2l0aCBUZXN0UnVubmVyKHJ1bm5lcl9jb21tYW5kX3F1ZXVlLCBydW5u
ZXJfcmVzdWx0X3F1ZXVlLCBleGVjdXRvcikgYXMgcnVubmVyOgotICAgICAgICAgICAgdHJ5Ogot
ICAgICAgICAgICAgICAgIHJ1bm5lci5ydW4oKQotICAgICAgICAgICAgZXhjZXB0IEtleWJvYXJk
SW50ZXJydXB0OgotICAgICAgICAgICAgICAgIHN0b3BfZmxhZy5zZXQoKQotICAgICAgICAgICAg
ZXhjZXB0IEV4Y2VwdGlvbiBhcyBlOgotICAgICAgICAgICAgICAgIGhhbmRsZV9lcnJvcihlKQot
ICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZToKLSAgICAgICAgaGFuZGxlX2Vycm9yKGUpCi0gICAg
ZmluYWxseToKLSAgICAgICAgcnVubmVyX2NvbW1hbmRfcXVldWUgPSBOb25lCi0gICAgICAgIHJ1
bm5lcl9yZXN1bHRfcXVldWUgPSBOb25lCisgICAgIyBFbnN1cmUgdGhhdCB3aGVuIHdlIHN0YXJ0
IHRoaXMgaW4gYSBuZXcgcHJvY2VzcyB3ZSBoYXZlIHRoZSBnbG9iYWwgbG9jaworICAgICMgaW4g
dGhlIGxvZ2dpbmcgbW9kdWxlIHVubG9ja2VkCisgICAgcmVsZWFzZV9tb3psb2dfbG9jaygpCisK
KyAgICBsb2dnZXIgPSBNZXNzYWdlTG9nZ2VyKHNlbmRfbWVzc2FnZSkKKworICAgIHdpdGggY2Fw
dHVyZS5DYXB0dXJlSU8obG9nZ2VyLCBjYXB0dXJlX3N0ZGlvKToKKyAgICAgICAgdHJ5OgorICAg
ICAgICAgICAgYnJvd3NlciA9IGV4ZWN1dG9yX2Jyb3dzZXJfY2xzKCoqZXhlY3V0b3JfYnJvd3Nl
cl9rd2FyZ3MpCisgICAgICAgICAgICBleGVjdXRvciA9IGV4ZWN1dG9yX2Nscyhicm93c2VyLCAq
KmV4ZWN1dG9yX2t3YXJncykKKyAgICAgICAgICAgIHdpdGggVGVzdFJ1bm5lcihsb2dnZXIsIHJ1
bm5lcl9jb21tYW5kX3F1ZXVlLCBydW5uZXJfcmVzdWx0X3F1ZXVlLCBleGVjdXRvcikgYXMgcnVu
bmVyOgorICAgICAgICAgICAgICAgIHRyeToKKyAgICAgICAgICAgICAgICAgICAgcnVubmVyLnJ1
bigpCisgICAgICAgICAgICAgICAgZXhjZXB0IEtleWJvYXJkSW50ZXJydXB0OgorICAgICAgICAg
ICAgICAgICAgICBzdG9wX2ZsYWcuc2V0KCkKKyAgICAgICAgICAgICAgICBleGNlcHQgRXhjZXB0
aW9uIGFzIGU6CisgICAgICAgICAgICAgICAgICAgIGhhbmRsZV9lcnJvcihlKQorICAgICAgICBl
eGNlcHQgRXhjZXB0aW9uIGFzIGU6CisgICAgICAgICAgICBoYW5kbGVfZXJyb3IoZSkKIAogCiBt
YW5hZ2VyX2NvdW50ID0gMApAQCAtMjEwLDcgKzIzNyw3IEBAIGNsYXNzIEJyb3dzZXJNYW5hZ2Vy
KG9iamVjdCk6CiAgICAgICAgIHNlbGYuY29tbWFuZF9xdWV1ZS5wdXQoKGNvbW1hbmQsIGFyZ3Mp
KQogCiAgICAgZGVmIGluaXRfdGltZW91dChzZWxmKToKLSAgICAgICAgIyBUaGlzIGlzIGNhbGxl
ZCBmcm9tIGEgc2VwZXJhdGUgdGhyZWFkLCBzbyB3ZSBzZW5kIGEgbWVzc2FnZSB0byB0aGUKKyAg
ICAgICAgIyBUaGlzIGlzIGNhbGxlZCBmcm9tIGEgc2VwYXJhdGUgdGhyZWFkLCBzbyB3ZSBzZW5k
IGEgbWVzc2FnZSB0byB0aGUKICAgICAgICAgIyBtYWluIGxvb3Agc28gd2UgZ2V0IGJhY2sgb250
byB0aGUgbWFuYWdlciB0aHJlYWQKICAgICAgICAgc2VsZi5sb2dnZXIuZGVidWcoImluaXRfZmFp
bGVkIGNhbGxlZCBmcm9tIHRpbWVyIikKICAgICAgICAgc2VsZi5zZW5kX21lc3NhZ2UoImluaXRf
ZmFpbGVkIikKQEAgLTIyOSwxMSArMjU2LDggQEAgY2xhc3MgQnJvd3Nlck1hbmFnZXIob2JqZWN0
KToKICAgICAgICAgaWYgc2VsZi5pbml0X3RpbWVyIGlzIG5vdCBOb25lOgogICAgICAgICAgICAg
c2VsZi5pbml0X3RpbWVyLmNhbmNlbCgpCiAKLSAgICBkZWYgY2hlY2tfZm9yX2NyYXNoZXMoc2Vs
Zik6Ci0gICAgICAgIHNlbGYuYnJvd3Nlci5jaGVja19mb3JfY3Jhc2hlcygpCi0KLSAgICBkZWYg
bG9nX2NyYXNoKHNlbGYsIHRlc3RfaWQpOgotICAgICAgICBzZWxmLmJyb3dzZXIubG9nX2NyYXNo
KHByb2Nlc3M9c2VsZi5icm93c2VyX3BpZCwgdGVzdD10ZXN0X2lkKQorICAgIGRlZiBjaGVja19j
cmFzaChzZWxmLCB0ZXN0X2lkKToKKyAgICAgICAgcmV0dXJuIHNlbGYuYnJvd3Nlci5jaGVja19j
cmFzaChwcm9jZXNzPXNlbGYuYnJvd3Nlcl9waWQsIHRlc3Q9dGVzdF9pZCkKIAogICAgIGRlZiBp
c19hbGl2ZShzZWxmKToKICAgICAgICAgcmV0dXJuIHNlbGYuYnJvd3Nlci5pc19hbGl2ZSgpCkBA
IC0yNTUsNyArMjc5LDggQEAgUnVubmVyTWFuYWdlclN0YXRlID0gX1J1bm5lck1hbmFnZXJTdGF0
ZSgpCiBjbGFzcyBUZXN0UnVubmVyTWFuYWdlcih0aHJlYWRpbmcuVGhyZWFkKToKICAgICBkZWYg
X19pbml0X18oc2VsZiwgc3VpdGVfbmFtZSwgdGVzdF9xdWV1ZSwgdGVzdF9zb3VyY2VfY2xzLCBi
cm93c2VyX2NscywgYnJvd3Nlcl9rd2FyZ3MsCiAgICAgICAgICAgICAgICAgIGV4ZWN1dG9yX2Ns
cywgZXhlY3V0b3Jfa3dhcmdzLCBzdG9wX2ZsYWcsIHJlcnVuPTEsIHBhdXNlX2FmdGVyX3Rlc3Q9
RmFsc2UsCi0gICAgICAgICAgICAgICAgIHBhdXNlX29uX3VuZXhwZWN0ZWQ9RmFsc2UsIHJlc3Rh
cnRfb25fdW5leHBlY3RlZD1UcnVlLCBkZWJ1Z19pbmZvPU5vbmUpOgorICAgICAgICAgICAgICAg
ICBwYXVzZV9vbl91bmV4cGVjdGVkPUZhbHNlLCByZXN0YXJ0X29uX3VuZXhwZWN0ZWQ9VHJ1ZSwg
ZGVidWdfaW5mbz1Ob25lLAorICAgICAgICAgICAgICAgICBjYXB0dXJlX3N0ZGlvPVRydWUpOgog
ICAgICAgICAiIiJUaHJlYWQgdGhhdCBvd25zIGEgc2luZ2xlIFRlc3RSdW5uZXIgcHJvY2VzcyBh
bmQgYW55IHByb2Nlc3NlcyByZXF1aXJlZAogICAgICAgICBieSB0aGUgVGVzdFJ1bm5lciAoZS5n
LiB0aGUgRmlyZWZveCBiaW5hcnkpLgogCkBAIC0yOTksNyArMzI0LDcgQEAgY2xhc3MgVGVzdFJ1
bm5lck1hbmFnZXIodGhyZWFkaW5nLlRocmVhZCk6CiAKICAgICAgICAgc2VsZi50ZXN0X3J1bm5l
cl9wcm9jID0gTm9uZQogCi0gICAgICAgIHRocmVhZGluZy5UaHJlYWQuX19pbml0X18oc2VsZiwg
bmFtZT0iVGhyZWFkLVRlc3RydW5uZXJNYW5hZ2VyLSVpIiAlIHNlbGYubWFuYWdlcl9udW1iZXIp
CisgICAgICAgIHRocmVhZGluZy5UaHJlYWQuX19pbml0X18oc2VsZiwgbmFtZT0iVGVzdFJ1bm5l
ck1hbmFnZXItJWkiICUgc2VsZi5tYW5hZ2VyX251bWJlcikKICAgICAgICAgIyBUaGlzIGlzIHN0
YXJ0ZWQgaW4gdGhlIGFjdHVhbCBuZXcgdGhyZWFkCiAgICAgICAgIHNlbGYubG9nZ2VyID0gTm9u
ZQogCkBAIC0zMDksMTQgKzMzNCwxOCBAQCBjbGFzcyBUZXN0UnVubmVyTWFuYWdlcih0aHJlYWRp
bmcuVGhyZWFkKToKICAgICAgICAgIyBUaGlzIG1heSBub3QgcmVhbGx5IGJlIHdoYXQgd2Ugd2Fu
dAogICAgICAgICBzZWxmLmRhZW1vbiA9IFRydWUKIAorICAgICAgICBzZWxmLnRpbWVyID0gTm9u
ZQorCiAgICAgICAgIHNlbGYubWF4X3Jlc3RhcnRzID0gNQogCiAgICAgICAgIHNlbGYuYnJvd3Nl
ciA9IE5vbmUKIAorICAgICAgICBzZWxmLmNhcHR1cmVfc3RkaW8gPSBjYXB0dXJlX3N0ZGlvCisK
ICAgICBkZWYgcnVuKHNlbGYpOgotICAgICAgICAiIiJNYWluIGxvb3AgZm9yIHRoZSBUZXN0TWFu
YWdlci4KKyAgICAgICAgIiIiTWFpbiBsb29wIGZvciB0aGUgVGVzdFJ1bm5lck1hbmFnZXIuCiAK
LSAgICAgICAgVGVzdE1hbmFnZXJzIGdlbmVyYWxseSByZWNlaXZlIGNvbW1hbmRzIGZyb20gdGhl
aXIKKyAgICAgICAgVGVzdFJ1bm5lck1hbmFnZXJzIGdlbmVyYWxseSByZWNlaXZlIGNvbW1hbmRz
IGZyb20gdGhlaXIKICAgICAgICAgVGVzdFJ1bm5lciB1cGRhdGluZyB0aGVtIG9uIHRoZSBzdGF0
dXMgb2YgYSB0ZXN0LiBUaGV5CiAgICAgICAgIG1heSBhbHNvIGhhdmUgYSBzdG9wIGZsYWcgc2V0
IGJ5IHRoZSBtYWluIHRocmVhZCBpbmRpY2F0aW5nCiAgICAgICAgIHRoYXQgdGhlIG1hbmFnZXIg
c2hvdWxkIHNodXQgZG93biB0aGUgbmV4dCB0aW1lIHRoZSBldmVudCBsb29wCkBAIC00NDYsNyAr
NDc1LDcgQEAgY2xhc3MgVGVzdFJ1bm5lck1hbmFnZXIodGhyZWFkaW5nLlRocmVhZCk6CiAgICAg
ZGVmIGluaXQoc2VsZik6CiAgICAgICAgIGFzc2VydCBpc2luc3RhbmNlKHNlbGYuc3RhdGUsIFJ1
bm5lck1hbmFnZXJTdGF0ZS5pbml0aWFsaXppbmcpCiAgICAgICAgIGlmIHNlbGYuc3RhdGUuZmFp
bHVyZV9jb3VudCA+IHNlbGYubWF4X3Jlc3RhcnRzOgotICAgICAgICAgICAgc2VsZi5sb2dnZXIu
ZXJyb3IoIk1heCByZXN0YXJ0cyBleGNlZWRlZCIpCisgICAgICAgICAgICBzZWxmLmxvZ2dlci5j
cml0aWNhbCgiTWF4IHJlc3RhcnRzIGV4Y2VlZGVkIikKICAgICAgICAgICAgIHJldHVybiBSdW5u
ZXJNYW5hZ2VyU3RhdGUuZXJyb3IoKQogCiAgICAgICAgIHNlbGYuYnJvd3Nlci51cGRhdGVfc2V0
dGluZ3Moc2VsZi5zdGF0ZS50ZXN0KQpAQCAtNDc5LDEwICs1MDgsMTEgQEAgY2xhc3MgVGVzdFJ1
bm5lck1hbmFnZXIodGhyZWFkaW5nLlRocmVhZCk6CiAgICAgICAgICAgICAgICAgc2VsZi5leGVj
dXRvcl9rd2FyZ3MsCiAgICAgICAgICAgICAgICAgZXhlY3V0b3JfYnJvd3Nlcl9jbHMsCiAgICAg
ICAgICAgICAgICAgZXhlY3V0b3JfYnJvd3Nlcl9rd2FyZ3MsCisgICAgICAgICAgICAgICAgc2Vs
Zi5jYXB0dXJlX3N0ZGlvLAogICAgICAgICAgICAgICAgIHNlbGYuY2hpbGRfc3RvcF9mbGFnKQog
ICAgICAgICBzZWxmLnRlc3RfcnVubmVyX3Byb2MgPSBQcm9jZXNzKHRhcmdldD1zdGFydF9ydW5u
ZXIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJncz1hcmdzLAot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU9IlRocmVhZC1UZXN0
UnVubmVyLSVpIiAlIHNlbGYubWFuYWdlcl9udW1iZXIpCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgbmFtZT0iVGVzdFJ1bm5lci0laSIgJSBzZWxmLm1hbmFnZXJfbnVt
YmVyKQogICAgICAgICBzZWxmLnRlc3RfcnVubmVyX3Byb2Muc3RhcnQoKQogICAgICAgICBzZWxm
LmxvZ2dlci5kZWJ1ZygiVGVzdCBydW5uZXIgc3RhcnRlZCIpCiAgICAgICAgICMgTm93IHdlIHdh
aXQgZm9yIGVpdGhlciBhbiBpbml0X3N1Y2NlZWRlZCBldmVudCBvciBhbiBpbml0X2ZhaWxlZCBl
dmVudApAQCAtNDk2LDYgKzUyNiw3IEBAIGNsYXNzIFRlc3RSdW5uZXJNYW5hZ2VyKHRocmVhZGlu
Zy5UaHJlYWQpOgogCiAgICAgZGVmIGluaXRfZmFpbGVkKHNlbGYpOgogICAgICAgICBhc3NlcnQg
aXNpbnN0YW5jZShzZWxmLnN0YXRlLCBSdW5uZXJNYW5hZ2VyU3RhdGUuaW5pdGlhbGl6aW5nKQor
ICAgICAgICBzZWxmLmJyb3dzZXIuY2hlY2tfY3Jhc2goTm9uZSkKICAgICAgICAgc2VsZi5icm93
c2VyLmFmdGVyX2luaXQoKQogICAgICAgICBzZWxmLnN0b3BfcnVubmVyKGZvcmNlPVRydWUpCiAg
ICAgICAgIHJldHVybiBSdW5uZXJNYW5hZ2VyU3RhdGUuaW5pdGlhbGl6aW5nKHNlbGYuc3RhdGUu
dGVzdCwKQEAgLTUyOCw4ICs1NTksMjQgQEAgY2xhc3MgVGVzdFJ1bm5lck1hbmFnZXIodGhyZWFk
aW5nLlRocmVhZCk6CiAgICAgICAgIHNlbGYubG9nZ2VyLnRlc3Rfc3RhcnQoc2VsZi5zdGF0ZS50
ZXN0LmlkKQogICAgICAgICBpZiBzZWxmLnJlcnVuID4gMToKICAgICAgICAgICAgIHNlbGYubG9n
Z2VyLmluZm8oIlJ1biAlZC8lZCIgJSAoc2VsZi5ydW5fY291bnQsIHNlbGYucmVydW4pKQorICAg
ICAgICAgICAgc2VsZi5zZW5kX21lc3NhZ2UoInJlc2V0IikKICAgICAgICAgc2VsZi5ydW5fY291
bnQgKz0gMQorICAgICAgICAjIEZhY3RvciBvZiAzIG9uIHRoZSBleHRyYSB0aW1lb3V0IGhlcmUg
aXMgYmFzZWQgb24gYWxsb3dpbmcgdGhlIGV4ZWN1dG9yCisgICAgICAgICMgYXQgbGVhc3QgdGVz
dC50aW1lb3V0ICsgMiAqIGV4dHJhX3RpbWVvdXQgdG8gY29tcGxldGUsCisgICAgICAgICMgd2hp
Y2ggaW4gdHVybiBpcyBiYXNlZCBvbiBoYXZpbmcgc2V2ZXJhbCBsYXllcnMgb2YgdGltZW91dCBp
bnNpZGUgdGhlIGV4ZWN1dG9yCisgICAgICAgIHdhaXRfdGltZW91dCA9IChzZWxmLnN0YXRlLnRl
c3QudGltZW91dCAqIHNlbGYuZXhlY3V0b3Jfa3dhcmdzWyd0aW1lb3V0X211bHRpcGxpZXInXSAr
CisgICAgICAgICAgICAgICAgICAgICAgICAzICogc2VsZi5leGVjdXRvcl9jbHMuZXh0cmFfdGlt
ZW91dCkKKyAgICAgICAgc2VsZi50aW1lciA9IHRocmVhZGluZy5UaW1lcih3YWl0X3RpbWVvdXQs
IHNlbGYuX3RpbWVvdXQpCiAgICAgICAgIHNlbGYuc2VuZF9tZXNzYWdlKCJydW5fdGVzdCIsIHNl
bGYuc3RhdGUudGVzdCkKKyAgICAgICAgc2VsZi50aW1lci5zdGFydCgpCisKKyAgICBkZWYgX3Rp
bWVvdXQoc2VsZik6CisgICAgICAgIHNlbGYubG9nZ2VyLmluZm8oIkdvdCB0aW1lb3V0IGluIGhh
cm5lc3MiKQorICAgICAgICB0ZXN0ID0gc2VsZi5zdGF0ZS50ZXN0CisgICAgICAgIHNlbGYudGVz
dF9lbmRlZCh0ZXN0LAorICAgICAgICAgICAgICAgICAgICAgICAgKHRlc3QucmVzdWx0X2Nscygi
RVhURVJOQUwtVElNRU9VVCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICJUZXN0UnVubmVyIGhpdCBleHRlcm5hbCB0aW1lb3V0ICIKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIih0aGlzIG1heSBpbmRpY2F0ZSBhIGhhbmcpIiksIFtd
KSkKIAogICAgIGRlZiB0ZXN0X2VuZGVkKHNlbGYsIHRlc3QsIHJlc3VsdHMpOgogICAgICAgICAi
IiJIYW5kbGUgdGhlIGVuZCBvZiBhIHRlc3QuCkBAIC01MzksMTQgKzU4NiwyMiBAQCBjbGFzcyBU
ZXN0UnVubmVyTWFuYWdlcih0aHJlYWRpbmcuVGhyZWFkKToKICAgICAgICAgIiIiCiAgICAgICAg
IGFzc2VydCBpc2luc3RhbmNlKHNlbGYuc3RhdGUsIFJ1bm5lck1hbmFnZXJTdGF0ZS5ydW5uaW5n
KQogICAgICAgICBhc3NlcnQgdGVzdCA9PSBzZWxmLnN0YXRlLnRlc3QKKyAgICAgICAgc2VsZi50
aW1lci5jYW5jZWwoKQogICAgICAgICAjIFdyaXRlIHRoZSByZXN1bHQgb2YgZWFjaCBzdWJ0ZXN0
CiAgICAgICAgIGZpbGVfcmVzdWx0LCB0ZXN0X3Jlc3VsdHMgPSByZXN1bHRzCiAgICAgICAgIHN1
YnRlc3RfdW5leHBlY3RlZCA9IEZhbHNlCisgICAgICAgIGV4cGVjdF9hbnlfc3VidGVzdF9zdGF0
dXMgPSB0ZXN0LmV4cGVjdF9hbnlfc3VidGVzdF9zdGF0dXMoKQorICAgICAgICBpZiBleHBlY3Rf
YW55X3N1YnRlc3Rfc3RhdHVzOgorICAgICAgICAgICAgc2VsZi5sb2dnZXIuZGVidWcoIklnbm9y
aW5nIHN1YnRlc3Qgc3RhdHVzZXMgZm9yIHRlc3QgJXMiICUgdGVzdC5pZCkKICAgICAgICAgZm9y
IHJlc3VsdCBpbiB0ZXN0X3Jlc3VsdHM6CiAgICAgICAgICAgICBpZiB0ZXN0LmRpc2FibGVkKHJl
c3VsdC5uYW1lKToKICAgICAgICAgICAgICAgICBjb250aW51ZQotICAgICAgICAgICAgZXhwZWN0
ZWQgPSB0ZXN0LmV4cGVjdGVkKHJlc3VsdC5uYW1lKQotICAgICAgICAgICAgaXNfdW5leHBlY3Rl
ZCA9IGV4cGVjdGVkICE9IHJlc3VsdC5zdGF0dXMKKyAgICAgICAgICAgIGlmIGV4cGVjdF9hbnlf
c3VidGVzdF9zdGF0dXM6CisgICAgICAgICAgICAgICAgZXhwZWN0ZWQgPSByZXN1bHQuc3RhdHVz
CisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgIGV4cGVjdGVkID0gdGVzdC5leHBl
Y3RlZChyZXN1bHQubmFtZSkKKyAgICAgICAgICAgIGtub3duX2ludGVybWl0dGVudCA9IHRlc3Qu
a25vd25faW50ZXJtaXR0ZW50KHJlc3VsdC5uYW1lKQorICAgICAgICAgICAgaXNfdW5leHBlY3Rl
ZCA9IGV4cGVjdGVkICE9IHJlc3VsdC5zdGF0dXMgYW5kIHJlc3VsdC5zdGF0dXMgbm90IGluIGtu
b3duX2ludGVybWl0dGVudAogCiAgICAgICAgICAgICBpZiBpc191bmV4cGVjdGVkOgogICAgICAg
ICAgICAgICAgIHNlbGYudW5leHBlY3RlZF9jb3VudCArPSAxCkBAIC01NTcsNiArNjEyLDcgQEAg
Y2xhc3MgVGVzdFJ1bm5lck1hbmFnZXIodGhyZWFkaW5nLlRocmVhZCk6CiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQuc3RhdHVzLAogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgbWVzc2FnZT1yZXN1bHQubWVzc2FnZSwKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGV4cGVjdGVkPWV4cGVjdGVkLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAga25vd25faW50ZXJtaXR0ZW50PWtub3duX2ludGVybWl0dGVu
dCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YWNrPXJlc3VsdC5zdGFj
aykKIAogICAgICAgICAjIFdlIGhhdmUgYSBjb3VwbGUgb2Ygc3RhdHVzIGNvZGVzIHRoYXQgYXJl
IHVzZWQgaW50ZXJuYWxseSwgYnV0IG5vdCBleHBvc2VkIHRvIHRoZQpAQCAtNTY4LDE5ICs2MjQs
MTcgQEAgY2xhc3MgVGVzdFJ1bm5lck1hbmFnZXIodGhyZWFkaW5nLlRocmVhZCk6CiAgICAgICAg
IHN0YXR1c19zdWJucyA9IHsiSU5URVJOQUwtRVJST1IiOiAiRVJST1IiLAogICAgICAgICAgICAg
ICAgICAgICAgICAgIkVYVEVSTkFMLVRJTUVPVVQiOiAiVElNRU9VVCJ9CiAgICAgICAgIGV4cGVj
dGVkID0gdGVzdC5leHBlY3RlZCgpCisgICAgICAgIGtub3duX2ludGVybWl0dGVudCA9IHRlc3Qu
a25vd25faW50ZXJtaXR0ZW50KCkKICAgICAgICAgc3RhdHVzID0gc3RhdHVzX3N1Ym5zLmdldChm
aWxlX3Jlc3VsdC5zdGF0dXMsIGZpbGVfcmVzdWx0LnN0YXR1cykKIAotICAgICAgICBpZiBmaWxl
X3Jlc3VsdC5zdGF0dXMgaW4gKCJUSU1FT1VUIiwgIkVYVEVSTkFMLVRJTUVPVVQiLCAiSU5URVJO
QUwtRVJST1IiKToKLSAgICAgICAgICAgIGlmIHNlbGYuYnJvd3Nlci5jaGVja19mb3JfY3Jhc2hl
cygpOgotICAgICAgICAgICAgICAgIHN0YXR1cyA9ICJDUkFTSCIKKyAgICAgICAgaWYgc2VsZi5i
cm93c2VyLmNoZWNrX2NyYXNoKHRlc3QuaWQpOgorICAgICAgICAgICAgc3RhdHVzID0gIkNSQVNI
IgogCiAgICAgICAgIHNlbGYudGVzdF9jb3VudCArPSAxCi0gICAgICAgIGlzX3VuZXhwZWN0ZWQg
PSBleHBlY3RlZCAhPSBzdGF0dXMKKyAgICAgICAgaXNfdW5leHBlY3RlZCA9IGV4cGVjdGVkICE9
IHN0YXR1cyBhbmQgc3RhdHVzIG5vdCBpbiBrbm93bl9pbnRlcm1pdHRlbnQKICAgICAgICAgaWYg
aXNfdW5leHBlY3RlZDoKICAgICAgICAgICAgIHNlbGYudW5leHBlY3RlZF9jb3VudCArPSAxCiAg
ICAgICAgICAgICBzZWxmLmxvZ2dlci5kZWJ1ZygiVW5leHBlY3RlZCBjb3VudCBpbiB0aGlzIHRo
cmVhZCAlaSIgJSBzZWxmLnVuZXhwZWN0ZWRfY291bnQpCi0gICAgICAgIGlmIHN0YXR1cyA9PSAi
Q1JBU0giOgotICAgICAgICAgICAgc2VsZi5icm93c2VyLmxvZ19jcmFzaCh0ZXN0LmlkKQogCiAg
ICAgICAgIGlmICJhc3NlcnRpb25fY291bnQiIGluIGZpbGVfcmVzdWx0LmV4dHJhOgogICAgICAg
ICAgICAgYXNzZXJ0aW9uX2NvdW50ID0gZmlsZV9yZXN1bHQuZXh0cmEucG9wKCJhc3NlcnRpb25f
Y291bnQiKQpAQCAtNTkwLDEwICs2NDQsMTMgQEAgY2xhc3MgVGVzdFJ1bm5lck1hbmFnZXIodGhy
ZWFkaW5nLlRocmVhZCk6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHRlc3QubWluX2Fzc2VydGlvbl9jb3VudCwKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgdGVzdC5tYXhfYXNzZXJ0aW9uX2NvdW50KQogCisgICAgICAgIGZp
bGVfcmVzdWx0LmV4dHJhWyJ0ZXN0X3RpbWVvdXQiXSA9IHRlc3QudGltZW91dCAqIHNlbGYuZXhl
Y3V0b3Jfa3dhcmdzWyd0aW1lb3V0X211bHRpcGxpZXInXQorCiAgICAgICAgIHNlbGYubG9nZ2Vy
LnRlc3RfZW5kKHRlc3QuaWQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXR1cywK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWVzc2FnZT1maWxlX3Jlc3VsdC5tZXNzYWdl
LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBleHBlY3RlZD1leHBlY3RlZCwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAga25vd25faW50ZXJtaXR0ZW50PWtub3duX2ludGVybWl0
dGVudCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXh0cmE9ZmlsZV9yZXN1bHQuZXh0
cmEsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YWNrPWZpbGVfcmVzdWx0LnN0YWNr
KQogCkBAIC02MTIsMTAgKzY2OSwxMCBAQCBjbGFzcyBUZXN0UnVubmVyTWFuYWdlcih0aHJlYWRp
bmcuVGhyZWFkKToKIAogICAgIGRlZiB3YWl0X2ZpbmlzaGVkKHNlbGYpOgogICAgICAgICBhc3Nl
cnQgaXNpbnN0YW5jZShzZWxmLnN0YXRlLCBSdW5uZXJNYW5hZ2VyU3RhdGUucnVubmluZykKLSAg
ICAgICAgIyBUaGUgYnJvd3NlciBzaG91bGQgYmUgc3RvcHBlZCBhbHJlYWR5LCBidXQgdGhpcyBl
bnN1cmVzIHdlIGRvIGFueSBwb3N0LXN0b3AKLSAgICAgICAgIyBwcm9jZXNzaW5nCiAgICAgICAg
IHNlbGYubG9nZ2VyLmRlYnVnKCJXYWl0IGZpbmlzaGVkIikKIAorICAgICAgICAjIFRoZSBicm93
c2VyIHNob3VsZCBiZSBzdG9wcGVkIGFscmVhZHksIGJ1dCB0aGlzIGVuc3VyZXMgd2UgZG8gYW55
CisgICAgICAgICMgcG9zdC1zdG9wIHByb2Nlc3NpbmcKICAgICAgICAgcmV0dXJuIHNlbGYuYWZ0
ZXJfdGVzdF9lbmQoc2VsZi5zdGF0ZS50ZXN0LCBUcnVlKQogCiAgICAgZGVmIGFmdGVyX3Rlc3Rf
ZW5kKHNlbGYsIHRlc3QsIHJlc3RhcnQpOgpAQCAtNjI4LDcgKzY4NSw2IEBAIGNsYXNzIFRlc3RS
dW5uZXJNYW5hZ2VyKHRocmVhZGluZy5UaHJlYWQpOgogICAgICAgICAgICAgICAgICMgV2UgYXJl
IHN0YXJ0aW5nIGEgbmV3IGdyb3VwIG9mIHRlc3RzLCBzbyBmb3JjZSBhIHJlc3RhcnQKICAgICAg
ICAgICAgICAgICByZXN0YXJ0ID0gVHJ1ZQogICAgICAgICBlbHNlOgotICAgICAgICAgICAgdGVz
dCA9IHRlc3QKICAgICAgICAgICAgIHRlc3RfZ3JvdXAgPSBzZWxmLnN0YXRlLnRlc3RfZ3JvdXAK
ICAgICAgICAgICAgIGdyb3VwX21ldGFkYXRhID0gc2VsZi5zdGF0ZS5ncm91cF9tZXRhZGF0YQog
ICAgICAgICBpZiByZXN0YXJ0OgpAQCAtNjYzLDcgKzcxOSw3IEBAIGNsYXNzIFRlc3RSdW5uZXJN
YW5hZ2VyKHRocmVhZGluZy5UaHJlYWQpOgogICAgICAgICAgICAgc2VsZi5jbGVhbnVwKCkKIAog
ICAgIGRlZiB0ZWFyZG93bihzZWxmKToKLSAgICAgICAgc2VsZi5sb2dnZXIuZGVidWcoInRlYXJk
b3duIGluIHRlc3RydW5uZXJtYW5hZ2VyIikKKyAgICAgICAgc2VsZi5sb2dnZXIuZGVidWcoIlRl
c3RSdW5uZXJNYW5hZ2VyIHRlYXJkb3duIikKICAgICAgICAgc2VsZi50ZXN0X3J1bm5lcl9wcm9j
ID0gTm9uZQogICAgICAgICBzZWxmLmNvbW1hbmRfcXVldWUuY2xvc2UoKQogICAgICAgICBzZWxm
LnJlbW90ZV9xdWV1ZS5jbG9zZSgpCkBAIC02NzUsNiArNzMxLDcgQEAgY2xhc3MgVGVzdFJ1bm5l
ck1hbmFnZXIodGhyZWFkaW5nLlRocmVhZCk6CiAgICAgICAgIGlmIHNlbGYudGVzdF9ydW5uZXJf
cHJvYyBpcyBOb25lOgogICAgICAgICAgICAgcmV0dXJuCiAKKyAgICAgICAgc2VsZi5icm93c2Vy
LnN0b3AoZm9yY2U9VHJ1ZSkKICAgICAgICAgc2VsZi5sb2dnZXIuZGVidWcoIndhaXRpbmcgZm9y
IHJ1bm5lciBwcm9jZXNzIHRvIGVuZCIpCiAgICAgICAgIHNlbGYudGVzdF9ydW5uZXJfcHJvYy5q
b2luKDEwKQogICAgICAgICBzZWxmLmxvZ2dlci5kZWJ1ZygiQWZ0ZXIgam9pbiIpCkBAIC02ODIs
OSArNzM5LDE4IEBAIGNsYXNzIFRlc3RSdW5uZXJNYW5hZ2VyKHRocmVhZGluZy5UaHJlYWQpOgog
ICAgICAgICAgICAgIyBUaGlzIG1pZ2h0IGxlYWsgYSBmaWxlIGhhbmRsZSBmcm9tIHRoZSBxdWV1
ZQogICAgICAgICAgICAgc2VsZi5sb2dnZXIud2FybmluZygiRm9yY2libHkgdGVybWluYXRpbmcg
cnVubmVyIHByb2Nlc3MiKQogICAgICAgICAgICAgc2VsZi50ZXN0X3J1bm5lcl9wcm9jLnRlcm1p
bmF0ZSgpCi0gICAgICAgICAgICBzZWxmLnRlc3RfcnVubmVyX3Byb2Muam9pbigxMCkKKworICAg
ICAgICAgICAgIyBNdWx0aXByb2Nlc3NpbmcgcXVldWVzIGFyZSBiYWNrZWQgYnkgb3BlcmF0aW5n
IHN5c3RlbSBwaXBlcy4gSWYKKyAgICAgICAgICAgICMgdGhlIHBpcGUgaW4gdGhlIGNoaWxkIHBy
b2Nlc3MgaGFkIGJ1ZmZlcmVkIGRhdGEgYXQgdGhlIHRpbWUgb2YKKyAgICAgICAgICAgICMgZm9y
Y2VkIHRlcm1pbmF0aW9uLCB0aGUgcXVldWUgaXMgbm8gbG9uZ2VyIGluIGEgdXNhYmxlIHN0YXRl
CisgICAgICAgICAgICAjIChzdWJzZXF1ZW50IGF0dGVtcHRzIHRvIHJldHJpZXZlIGl0ZW1zIG1h
eSBibG9jayBpbmRlZmluaXRlbHkpLgorICAgICAgICAgICAgIyBEaXNjYXJkIHRoZSBwb3RlbnRp
YWxseS1jb3JydXB0ZWQgcXVldWUgYW5kIGNyZWF0ZSBhIG5ldyBvbmUuCisgICAgICAgICAgICBz
ZWxmLmNvbW1hbmRfcXVldWUuY2xvc2UoKQorICAgICAgICAgICAgc2VsZi5jb21tYW5kX3F1ZXVl
ID0gUXVldWUoKQorICAgICAgICAgICAgc2VsZi5yZW1vdGVfcXVldWUuY2xvc2UoKQorICAgICAg
ICAgICAgc2VsZi5yZW1vdGVfcXVldWUgPSBRdWV1ZSgpCiAgICAgICAgIGVsc2U6Ci0gICAgICAg
ICAgICBzZWxmLmxvZ2dlci5kZWJ1ZygiVGVzdHJ1bm5lciBleGl0ZWQgd2l0aCBjb2RlICVpIiAl
IHNlbGYudGVzdF9ydW5uZXJfcHJvYy5leGl0Y29kZSkKKyAgICAgICAgICAgIHNlbGYubG9nZ2Vy
LmRlYnVnKCJSdW5uZXIgcHJvY2VzcyBleGl0ZWQgd2l0aCBjb2RlICVpIiAlIHNlbGYudGVzdF9y
dW5uZXJfcHJvYy5leGl0Y29kZSkKIAogICAgIGRlZiBydW5uZXJfdGVhcmRvd24oc2VsZik6CiAg
ICAgICAgIHNlbGYuZW5zdXJlX3J1bm5lcl9zdG9wcGVkKCkKQEAgLTY5NCw3ICs3NjAsNyBAQCBj
bGFzcyBUZXN0UnVubmVyTWFuYWdlcih0aHJlYWRpbmcuVGhyZWFkKToKICAgICAgICAgc2VsZi5y
ZW1vdGVfcXVldWUucHV0KChjb21tYW5kLCBhcmdzKSkKIAogICAgIGRlZiBjbGVhbnVwKHNlbGYp
OgotICAgICAgICBzZWxmLmxvZ2dlci5kZWJ1ZygiVGVzdE1hbmFnZXIgY2xlYW51cCIpCisgICAg
ICAgIHNlbGYubG9nZ2VyLmRlYnVnKCJUZXN0UnVubmVyTWFuYWdlciBjbGVhbnVwIikKICAgICAg
ICAgaWYgc2VsZi5icm93c2VyOgogICAgICAgICAgICAgc2VsZi5icm93c2VyLmNsZWFudXAoKQog
ICAgICAgICB3aGlsZSBUcnVlOgpAQCAtNzA1LDEyICs3NzEsMTcgQEAgY2xhc3MgVGVzdFJ1bm5l
ck1hbmFnZXIodGhyZWFkaW5nLlRocmVhZCk6CiAgICAgICAgICAgICBlbHNlOgogICAgICAgICAg
ICAgICAgIGlmIGNtZCA9PSAibG9nIjoKICAgICAgICAgICAgICAgICAgICAgc2VsZi5sb2coKmRh
dGEpCisgICAgICAgICAgICAgICAgZWxpZiBjbWQgPT0gInJ1bm5lcl90ZWFyZG93biI6CisgICAg
ICAgICAgICAgICAgICAgICMgSXQncyBPSyBmb3IgdGhlICJydW5uZXJfdGVhcmRvd24iIG1lc3Nh
Z2UgdG8gYmUgbGVmdCBpbgorICAgICAgICAgICAgICAgICAgICAjIHRoZSBxdWV1ZSBkdXJpbmcg
Y2xlYW51cCwgYXMgd2Ugd2lsbCBhbHJlYWR5IGhhdmUgdHJpZWQKKyAgICAgICAgICAgICAgICAg
ICAgIyB0byBzdG9wIHRoZSBUZXN0UnVubmVyIGluIGBzdG9wX3J1bm5lcmAuCisgICAgICAgICAg
ICAgICAgICAgIHBhc3MKICAgICAgICAgICAgICAgICBlbHNlOgotICAgICAgICAgICAgICAgICAg
ICBzZWxmLmxvZ2dlci53YXJuaW5nKCIlcjogJXIiICUgKGNtZCwgZGF0YSkpCisgICAgICAgICAg
ICAgICAgICAgIHNlbGYubG9nZ2VyLndhcm5pbmcoIkNvbW1hbmQgbGVmdCBpbiBjb21tYW5kX3F1
ZXVlIGR1cmluZyBjbGVhbnVwOiAlciwgJXIiICUgKGNtZCwgZGF0YSkpCiAgICAgICAgIHdoaWxl
IFRydWU6CiAgICAgICAgICAgICB0cnk6CiAgICAgICAgICAgICAgICAgY21kLCBkYXRhID0gc2Vs
Zi5yZW1vdGVfcXVldWUuZ2V0X25vd2FpdCgpCi0gICAgICAgICAgICAgICAgc2VsZi5sb2dnZXIu
d2FybmluZygiJXI6ICVyIiAlIChjbWQsIGRhdGEpKQorICAgICAgICAgICAgICAgIHNlbGYubG9n
Z2VyLndhcm5pbmcoIkNvbW1hbmQgbGVmdCBpbiByZW1vdGVfcXVldWUgZHVyaW5nIGNsZWFudXA6
ICVyLCAlciIgJSAoY21kLCBkYXRhKSkKICAgICAgICAgICAgIGV4Y2VwdCBFbXB0eToKICAgICAg
ICAgICAgICAgICBicmVhawogCkBAIC03MjcsNiArNzk4LDcgQEAgZGVmIG1ha2VfdGVzdF9xdWV1
ZSh0ZXN0cywgdGVzdF9zb3VyY2VfY2xzLCAqKnRlc3Rfc291cmNlX2t3YXJncyk6CiAKIAogY2xh
c3MgTWFuYWdlckdyb3VwKG9iamVjdCk6CisgICAgIiIiTWFpbiB0aHJlYWQgb2JqZWN0IHRoYXQg
b3ducyBhbGwgdGhlIFRlc3RSdW5uZXJNYW5hZ2VyIHRocmVhZHMuIiIiCiAgICAgZGVmIF9faW5p
dF9fKHNlbGYsIHN1aXRlX25hbWUsIHNpemUsIHRlc3Rfc291cmNlX2NscywgdGVzdF9zb3VyY2Vf
a3dhcmdzLAogICAgICAgICAgICAgICAgICBicm93c2VyX2NscywgYnJvd3Nlcl9rd2FyZ3MsCiAg
ICAgICAgICAgICAgICAgIGV4ZWN1dG9yX2NscywgZXhlY3V0b3Jfa3dhcmdzLApAQCAtNzM0LDgg
KzgwNiw4IEBAIGNsYXNzIE1hbmFnZXJHcm91cChvYmplY3QpOgogICAgICAgICAgICAgICAgICBw
YXVzZV9hZnRlcl90ZXN0PUZhbHNlLAogICAgICAgICAgICAgICAgICBwYXVzZV9vbl91bmV4cGVj
dGVkPUZhbHNlLAogICAgICAgICAgICAgICAgICByZXN0YXJ0X29uX3VuZXhwZWN0ZWQ9VHJ1ZSwK
LSAgICAgICAgICAgICAgICAgZGVidWdfaW5mbz1Ob25lKToKLSAgICAgICAgIiIiTWFpbiB0aHJl
YWQgb2JqZWN0IHRoYXQgb3ducyBhbGwgdGhlIFRlc3RNYW5hZ2VyIHRocmVhZHMuIiIiCisgICAg
ICAgICAgICAgICAgIGRlYnVnX2luZm89Tm9uZSwKKyAgICAgICAgICAgICAgICAgY2FwdHVyZV9z
dGRpbz1UcnVlKToKICAgICAgICAgc2VsZi5zdWl0ZV9uYW1lID0gc3VpdGVfbmFtZQogICAgICAg
ICBzZWxmLnNpemUgPSBzaXplCiAgICAgICAgIHNlbGYudGVzdF9zb3VyY2VfY2xzID0gdGVzdF9z
b3VyY2VfY2xzCkBAIC03NDksNiArODIxLDcgQEAgY2xhc3MgTWFuYWdlckdyb3VwKG9iamVjdCk6
CiAgICAgICAgIHNlbGYucmVzdGFydF9vbl91bmV4cGVjdGVkID0gcmVzdGFydF9vbl91bmV4cGVj
dGVkCiAgICAgICAgIHNlbGYuZGVidWdfaW5mbyA9IGRlYnVnX2luZm8KICAgICAgICAgc2VsZi5y
ZXJ1biA9IHJlcnVuCisgICAgICAgIHNlbGYuY2FwdHVyZV9zdGRpbyA9IGNhcHR1cmVfc3RkaW8K
IAogICAgICAgICBzZWxmLnBvb2wgPSBzZXQoKQogICAgICAgICAjIEV2ZW50IHRoYXQgaXMgcG9s
bGVkIGJ5IHRocmVhZHMgc28gdGhhdCB0aGV5IGNhbiBncmFjZWZ1bGx5IGV4aXQgaW4gdGhlIGZh
Y2UKQEAgLTc4NSwxOSArODU4LDE2IEBAIGNsYXNzIE1hbmFnZXJHcm91cChvYmplY3QpOgogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYucGF1c2VfYWZ0ZXJfdGVz
dCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnBhdXNlX29u
X3VuZXhwZWN0ZWQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2Vs
Zi5yZXN0YXJ0X29uX3VuZXhwZWN0ZWQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgc2VsZi5kZWJ1Z19pbmZvKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHNlbGYuZGVidWdfaW5mbywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBzZWxmLmNhcHR1cmVfc3RkaW8pCiAgICAgICAgICAgICBtYW5hZ2VyLnN0YXJ0
KCkKICAgICAgICAgICAgIHNlbGYucG9vbC5hZGQobWFuYWdlcikKICAgICAgICAgc2VsZi53YWl0
KCkKIAotICAgIGRlZiBpc19hbGl2ZShzZWxmKToKLSAgICAgICAgIiIiQm9vbGVhbiBpbmRpY2F0
aW5nIHdoZXRoZXIgYW55IG1hbmFnZXIgaW4gdGhlIGdyb3VwIGlzIHN0aWxsIGFsaXZlIiIiCi0g
ICAgICAgIHJldHVybiBhbnkobWFuYWdlci5pc19hbGl2ZSgpIGZvciBtYW5hZ2VyIGluIHNlbGYu
cG9vbCkKLQogICAgIGRlZiB3YWl0KHNlbGYpOgogICAgICAgICAiIiJXYWl0IGZvciBhbGwgdGhl
IG1hbmFnZXJzIGluIHRoZSBncm91cCB0byBmaW5pc2giIiIKLSAgICAgICAgZm9yIGl0ZW0gaW4g
c2VsZi5wb29sOgotICAgICAgICAgICAgaXRlbS5qb2luKCkKKyAgICAgICAgZm9yIG1hbmFnZXIg
aW4gc2VsZi5wb29sOgorICAgICAgICAgICAgbWFuYWdlci5qb2luKCkKIAogICAgIGRlZiBzdG9w
KHNlbGYpOgogICAgICAgICAiIiJTZXQgdGhlIHN0b3AgZmxhZyBzbyB0aGF0IGFsbCBtYW5hZ2Vy
cyBpbiB0aGUgZ3JvdXAgc3RvcCBhcyBzb29uCkBAIC04MDYsNyArODc2LDcgQEAgY2xhc3MgTWFu
YWdlckdyb3VwKG9iamVjdCk6CiAgICAgICAgIHNlbGYubG9nZ2VyLmRlYnVnKCJTdG9wIGZsYWcg
c2V0IGluIE1hbmFnZXJHcm91cCIpCiAKICAgICBkZWYgdGVzdF9jb3VudChzZWxmKToKLSAgICAg
ICAgcmV0dXJuIHN1bShpdGVtLnRlc3RfY291bnQgZm9yIGl0ZW0gaW4gc2VsZi5wb29sKQorICAg
ICAgICByZXR1cm4gc3VtKG1hbmFnZXIudGVzdF9jb3VudCBmb3IgbWFuYWdlciBpbiBzZWxmLnBv
b2wpCiAKICAgICBkZWYgdW5leHBlY3RlZF9jb3VudChzZWxmKToKLSAgICAgICAgcmV0dXJuIHN1
bShpdGVtLnVuZXhwZWN0ZWRfY291bnQgZm9yIGl0ZW0gaW4gc2VsZi5wb29sKQorICAgICAgICBy
ZXR1cm4gc3VtKG1hbmFnZXIudW5leHBlY3RlZF9jb3VudCBmb3IgbWFuYWdlciBpbiBzZWxmLnBv
b2wpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvdGVzdHMvYmFzZS5weSBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5l
ci90ZXN0cy9iYXNlLnB5CmluZGV4IGI1MTczZjNiNTEzLi4zNWM0NTgyZTdjYiAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRy
dW5uZXIvd3B0cnVubmVyL3Rlc3RzL2Jhc2UucHkKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3Rlc3RzL2Jh
c2UucHkKQEAgLTcsNyArNyw3IEBAIGltcG9ydCBweXRlc3QKIAogc3lzLnBhdGguaW5zZXJ0KDAs
IGpvaW4oZGlybmFtZShfX2ZpbGVfXyksICIuLiIsICIuLiIpKQogCi1mcm9tIHdwdHJ1bm5lciBp
bXBvcnQgYnJvd3NlcnMKK2Zyb20gLi4gaW1wb3J0IGJyb3dzZXJzCiAKIAogX3Byb2R1Y3RzID0g
YnJvd3NlcnMucHJvZHVjdF9saXN0CkBAIC0xOCw2ICsxOCw3IEBAIGlmICJDVVJSRU5UX1RPWF9F
TlYiIGluIG9zLmVudmlyb246CiAKICAgICB0b3hfZW52X2V4dHJhX2Jyb3dzZXJzID0gewogICAg
ICAgICAiY2hyb21lIjogeyJjaHJvbWVfYW5kcm9pZCJ9LAorICAgICAgICAiZWRnZSI6IHsiZWRn
ZV93ZWJkcml2ZXIifSwKICAgICAgICAgInNlcnZvIjogeyJzZXJ2b2RyaXZlciJ9LAogICAgIH0K
IApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3Rlc3RzL2Jyb3dzZXJzL3Rlc3Rfc2F1Y2UucHkg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1
bm5lci93cHRydW5uZXIvdGVzdHMvYnJvd3NlcnMvdGVzdF9zYXVjZS5weQppbmRleCBlODU0Mjk1
OWFhMi4uMDZhNTY0MWQ1MGYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci90ZXN0cy9icm93c2Vy
cy90ZXN0X3NhdWNlLnB5CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci90ZXN0cy9icm93c2Vycy90ZXN0X3Nh
dWNlLnB5CkBAIC0yNSw3ICsyNSw4IEBAIGRlZiB0ZXN0X3NhdWNlY29ubmVjdF9zdWNjZXNzKCk6
CiAgICAgICAgICAgICBzYXVjZV91c2VyPSJhYWEiLAogICAgICAgICAgICAgc2F1Y2Vfa2V5PSJi
YmIiLAogICAgICAgICAgICAgc2F1Y2VfdHVubmVsX2lkPSJjY2MiLAotICAgICAgICAgICAgc2F1
Y2VfY29ubmVjdF9iaW5hcnk9ImRkZCIpCisgICAgICAgICAgICBzYXVjZV9jb25uZWN0X2JpbmFy
eT0iZGRkIiwKKyAgICAgICAgICAgIHNhdWNlX2Nvbm5lY3RfYXJncz1bXSkKIAogICAgICAgICB3
aXRoIENvbmZpZ0J1aWxkZXIoYnJvd3Nlcl9ob3N0PSJleGFtcGxlLm5ldCIpIGFzIGVudl9jb25m
aWc6CiAgICAgICAgICAgICBzYXVjZV9jb25uZWN0KE5vbmUsIGVudl9jb25maWcpCkBAIC01NCw3
ICs1NSw4IEBAIGRlZiB0ZXN0X3NhdWNlY29ubmVjdF9mYWlsdXJlX2V4aXQocmVhZHlmaWxlLCBy
ZXR1cm5jb2RlKToKICAgICAgICAgICAgIHNhdWNlX3VzZXI9ImFhYSIsCiAgICAgICAgICAgICBz
YXVjZV9rZXk9ImJiYiIsCiAgICAgICAgICAgICBzYXVjZV90dW5uZWxfaWQ9ImNjYyIsCi0gICAg
ICAgICAgICBzYXVjZV9jb25uZWN0X2JpbmFyeT0iZGRkIikKKyAgICAgICAgICAgIHNhdWNlX2Nv
bm5lY3RfYmluYXJ5PSJkZGQiLAorICAgICAgICAgICAgc2F1Y2VfY29ubmVjdF9hcmdzPVtdKQog
CiAgICAgICAgIHdpdGggQ29uZmlnQnVpbGRlcihicm93c2VyX2hvc3Q9ImV4YW1wbGUubmV0Iikg
YXMgZW52X2NvbmZpZzoKICAgICAgICAgICAgIHNhdWNlX2Nvbm5lY3QoTm9uZSwgZW52X2NvbmZp
ZykKQEAgLTgyLDcgKzg0LDggQEAgZGVmIHRlc3Rfc2F1Y2Vjb25uZWN0X2NsZWFudXAoKToKICAg
ICAgICAgICAgIHNhdWNlX3VzZXI9ImFhYSIsCiAgICAgICAgICAgICBzYXVjZV9rZXk9ImJiYiIs
CiAgICAgICAgICAgICBzYXVjZV90dW5uZWxfaWQ9ImNjYyIsCi0gICAgICAgICAgICBzYXVjZV9j
b25uZWN0X2JpbmFyeT0iZGRkIikKKyAgICAgICAgICAgIHNhdWNlX2Nvbm5lY3RfYmluYXJ5PSJk
ZGQiLAorICAgICAgICAgICAgc2F1Y2VfY29ubmVjdF9hcmdzPVtdKQogCiAgICAgICAgIHdpdGgg
Q29uZmlnQnVpbGRlcihicm93c2VyX2hvc3Q9ImV4YW1wbGUubmV0IikgYXMgZW52X2NvbmZpZzoK
ICAgICAgICAgICAgIHNhdWNlX2Nvbm5lY3QoTm9uZSwgZW52X2NvbmZpZykKQEAgLTEwNiw3ICsx
MDksOCBAQCBkZWYgdGVzdF9zYXVjZWNvbm5lY3RfZmFpbHVyZV9uZXZlcl9yZWFkeSgpOgogICAg
ICAgICAgICAgc2F1Y2VfdXNlcj0iYWFhIiwKICAgICAgICAgICAgIHNhdWNlX2tleT0iYmJiIiwK
ICAgICAgICAgICAgIHNhdWNlX3R1bm5lbF9pZD0iY2NjIiwKLSAgICAgICAgICAgIHNhdWNlX2Nv
bm5lY3RfYmluYXJ5PSJkZGQiKQorICAgICAgICAgICAgc2F1Y2VfY29ubmVjdF9iaW5hcnk9ImRk
ZCIsCisgICAgICAgICAgICBzYXVjZV9jb25uZWN0X2FyZ3M9W10pCiAKICAgICAgICAgd2l0aCBD
b25maWdCdWlsZGVyKGJyb3dzZXJfaG9zdD0iZXhhbXBsZS5uZXQiKSBhcyBlbnZfY29uZmlnOgog
ICAgICAgICAgICAgc2F1Y2VfY29ubmVjdChOb25lLCBlbnZfY29uZmlnKQpAQCAtMTM0LDcgKzEz
OCw4IEBAIGRlZiB0ZXN0X3NhdWNlY29ubmVjdF90dW5uZWxfZG9tYWlucygpOgogICAgICAgICAg
ICAgc2F1Y2VfdXNlcj0iYWFhIiwKICAgICAgICAgICAgIHNhdWNlX2tleT0iYmJiIiwKICAgICAg
ICAgICAgIHNhdWNlX3R1bm5lbF9pZD0iY2NjIiwKLSAgICAgICAgICAgIHNhdWNlX2Nvbm5lY3Rf
YmluYXJ5PSJkZGQiKQorICAgICAgICAgICAgc2F1Y2VfY29ubmVjdF9iaW5hcnk9ImRkZCIsCisg
ICAgICAgICAgICBzYXVjZV9jb25uZWN0X2FyZ3M9W10pCiAKICAgICAgICAgd2l0aCBDb25maWdC
dWlsZGVyKGJyb3dzZXJfaG9zdD0iZXhhbXBsZS5uZXQiLAogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgYWx0ZXJuYXRlX2hvc3RzPXsiYWx0IjogImV4YW1wbGUub3JnIn0sCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1
bm5lci93cHRydW5uZXIvdGVzdHMvYnJvd3NlcnMvdGVzdF93ZWJraXRndGsucHkgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRy
dW5uZXIvdGVzdHMvYnJvd3NlcnMvdGVzdF93ZWJraXRndGsucHkKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAuLmJlMDBkYzRhNmI3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIv
d3B0cnVubmVyL3Rlc3RzL2Jyb3dzZXJzL3Rlc3Rfd2Via2l0Z3RrLnB5CkBAIC0wLDAgKzEsNTcg
QEAKK2Zyb20gb3MucGF0aCBpbXBvcnQgam9pbiwgZGlybmFtZQorCitpbXBvcnQgcHl0ZXN0CisK
K2Zyb20gd3B0c2VydmUuY29uZmlnIGltcG9ydCBDb25maWdCdWlsZGVyCitmcm9tIC4uYmFzZSBp
bXBvcnQgYWN0aXZlX3Byb2R1Y3RzCitmcm9tIHdwdHJ1bm5lciBpbXBvcnQgZW52aXJvbm1lbnQs
IHByb2R1Y3RzCisKK3Rlc3RfcGF0aHMgPSB7Ii8iOiB7InRlc3RzX3BhdGgiOiBqb2luKGRpcm5h
bWUoX19maWxlX18pLCAiLi4iLCAiLi4iLCAiLi4iLCAiLi4iLCAiLi4iKX19ICAjIHJlcG8gcm9v
dAorZW52aXJvbm1lbnQuZG9fZGVsYXllZF9pbXBvcnRzKE5vbmUsIHRlc3RfcGF0aHMpCisKKwor
QGFjdGl2ZV9wcm9kdWN0cygicHJvZHVjdCIpCitkZWYgdGVzdF93ZWJraXRndGtfY2VydGlmaWNh
dGVfZG9tYWluX2xpc3QocHJvZHVjdCk6CisKKyAgICBkZWYgZG9tYWluX2lzX2luc2lkZV9jZXJ0
aWZpY2F0ZV9saXN0X2NlcnQoZG9tYWluX3RvX2ZpbmQsIHdlYmtpdGd0a19jZXJ0aWZpY2F0ZV9s
aXN0LCBjZXJ0X2ZpbGUpOgorICAgICAgICBmb3IgZG9tYWluIGluIHdlYmtpdGd0a19jZXJ0aWZp
Y2F0ZV9saXN0OgorICAgICAgICAgICAgaWYgZG9tYWluWyJob3N0Il0gPT0gZG9tYWluX3RvX2Zp
bmQgYW5kIGRvbWFpblsiY2VydGlmaWNhdGVGaWxlIl0gPT0gY2VydF9maWxlOgorICAgICAgICAg
ICAgICAgIHJldHVybiBUcnVlCisgICAgICAgIHJldHVybiBGYWxzZQorCisgICAgaWYgcHJvZHVj
dCBub3QgaW4gWyJlcGlwaGFueSIsICJ3ZWJraXQiLCAid2Via2l0Z3RrX21pbmlicm93c2VyIl06
CisgICAgICAgIHB5dGVzdC5za2lwKCIlcyBkb2Vzbid0IHN1cHBvcnQgY2VydGlmaWNhdGVfZG9t
YWluX2xpc3QiICUgcHJvZHVjdCkKKworICAgIChjaGVja19hcmdzLAorICAgICB0YXJnZXRfYnJv
d3Nlcl9jbHMsIGdldF9icm93c2VyX2t3YXJncywKKyAgICAgZXhlY3V0b3JfY2xhc3NlcywgZ2V0
X2V4ZWN1dG9yX2t3YXJncywKKyAgICAgZW52X29wdGlvbnMsIGdldF9lbnZfZXh0cmFzLCBydW5f
aW5mb19leHRyYXMpID0gcHJvZHVjdHMubG9hZF9wcm9kdWN0KHt9LCBwcm9kdWN0KQorCisgICAg
Y2VydF9maWxlID0gIi9ob21lL3VzZXIvd3B0L3Rvb2xzL2NlcnRzL2NhY2VydC5wZW0iCisgICAg
dmFsaWRfZG9tYWluc190ZXN0ID0gWyJhLmV4YW1wbGUub3JnIiwgImIuZXhhbXBsZS5vcmciLCAi
ZXhhbXBsZS5vcmciLAorICAgICAgICAgICAgICAgICAgICAgICAgICAiYS5leGFtcGxlLm5ldCIs
ICJiLmV4YW1wbGUubmV0IiwgImV4YW1wbGUubmV0Il0KKyAgICBpbnZhbGlkX2RvbWFpbnNfdGVz
dCA9IFsieC5leGFtcGxlLm9yZyIsICJ5LmV4YW1wbGUub3JnIiwgImV4YW1wbGUuaXQiLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICJ4LmV4YW1wbGUubmV0IiwgInkuZXhhbXBsZS5uZXQi
LCAiei5leGFtcGxlLm5ldCJdCisgICAga3dhcmdzID0ge30KKyAgICBrd2FyZ3NbInRpbWVvdXRf
bXVsdGlwbGllciJdID0gMQorICAgIGt3YXJnc1siZGVidWdfaW5mbyJdID0gTm9uZQorICAgIGt3
YXJnc1siaG9zdF9jZXJ0X3BhdGgiXSA9IGNlcnRfZmlsZQorICAgIGt3YXJnc1sid2Via2l0X3Bv
cnQiXSA9ICJndGsiCisgICAga3dhcmdzWyJiaW5hcnkiXSA9IE5vbmUKKyAgICBrd2FyZ3NbIndl
YmRyaXZlcl9iaW5hcnkiXSA9IE5vbmUKKyAgICB3aXRoIENvbmZpZ0J1aWxkZXIoYnJvd3Nlcl9o
b3N0PSJleGFtcGxlLm5ldCIsCisgICAgICAgICAgICAgICAgICAgICAgIGFsdGVybmF0ZV9ob3N0
cz17ImFsdCI6ICJleGFtcGxlLm9yZyJ9LAorICAgICAgICAgICAgICAgICAgICAgICBzdWJkb21h
aW5zPXsiYSIsICJiIn0sCisgICAgICAgICAgICAgICAgICAgICAgIG5vdF9zdWJkb21haW5zPXsi
eCIsICJ5In0pIGFzIGVudl9jb25maWc6CisKKyAgICAgICAgZXhlY3V0b3JfYXJncyA9IGdldF9l
eGVjdXRvcl9rd2FyZ3MoTm9uZSwgZW52X2NvbmZpZywgTm9uZSwgTm9uZSwgKiprd2FyZ3MpCisg
ICAgICAgIGFzc2VydCgnY2FwYWJpbGl0aWVzJyBpbiBleGVjdXRvcl9hcmdzKQorICAgICAgICBh
c3NlcnQoJ3dlYmtpdGd0azpicm93c2VyT3B0aW9ucycgaW4gZXhlY3V0b3JfYXJnc1snY2FwYWJp
bGl0aWVzJ10pCisgICAgICAgIGFzc2VydCgnY2VydGlmaWNhdGVzJyBpbiBleGVjdXRvcl9hcmdz
WydjYXBhYmlsaXRpZXMnXVsnd2Via2l0Z3RrOmJyb3dzZXJPcHRpb25zJ10pCisgICAgICAgIGNl
cnRfbGlzdCA9IGV4ZWN1dG9yX2FyZ3NbJ2NhcGFiaWxpdGllcyddWyd3ZWJraXRndGs6YnJvd3Nl
ck9wdGlvbnMnXVsnY2VydGlmaWNhdGVzJ10KKyAgICAgICAgZm9yIHZhbGlkX2RvbWFpbiBpbiB2
YWxpZF9kb21haW5zX3Rlc3Q6CisgICAgICAgICAgICBhc3NlcnQoZG9tYWluX2lzX2luc2lkZV9j
ZXJ0aWZpY2F0ZV9saXN0X2NlcnQodmFsaWRfZG9tYWluLCBjZXJ0X2xpc3QsIGNlcnRfZmlsZSkp
CisgICAgICAgICAgICBhc3NlcnQobm90IGRvbWFpbl9pc19pbnNpZGVfY2VydGlmaWNhdGVfbGlz
dF9jZXJ0KHZhbGlkX2RvbWFpbiwgY2VydF9saXN0LCBjZXJ0X2ZpbGUgKyAiLmJhY2t1cF9ub25f
ZXhpc3RlbnQiKSkKKyAgICAgICAgZm9yIGludmFsaWRfZG9tYWluIGluIGludmFsaWRfZG9tYWlu
c190ZXN0OgorICAgICAgICAgICAgYXNzZXJ0KG5vdCBkb21haW5faXNfaW5zaWRlX2NlcnRpZmlj
YXRlX2xpc3RfY2VydChpbnZhbGlkX2RvbWFpbiwgY2VydF9saXN0LCBjZXJ0X2ZpbGUpKQorICAg
ICAgICAgICAgYXNzZXJ0KG5vdCBkb21haW5faXNfaW5zaWRlX2NlcnRpZmljYXRlX2xpc3RfY2Vy
dChpbnZhbGlkX2RvbWFpbiwgY2VydF9saXN0LCBjZXJ0X2ZpbGUgKyAiLmJhY2t1cF9ub25fZXhp
c3RlbnQiKSkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci90ZXN0cy9icm93c2Vycy93M2MtaW1w
b3J0LmxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvd3B0cnVubmVyL3dwdHJ1bm5lci90ZXN0cy9icm93c2Vycy93M2MtaW1wb3J0LmxvZwppbmRl
eCAyZWI2N2JhYTYzMC4uNTU2OTg3NzMxMjcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci90ZXN0
cy9icm93c2Vycy93M2MtaW1wb3J0LmxvZworKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvdGVzdHMvYnJvd3Nl
cnMvdzNjLWltcG9ydC5sb2cKQEAgLTE2LDMgKzE2LDQgQEAgTm9uZQogTGlzdCBvZiBmaWxlczoK
IC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1
bm5lci93cHRydW5uZXIvdGVzdHMvYnJvd3NlcnMvX19pbml0X18ucHkKIC9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIv
dGVzdHMvYnJvd3NlcnMvdGVzdF9zYXVjZS5weQorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci90ZXN0cy9icm93c2Vy
cy90ZXN0X3dlYmtpdGd0ay5weQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3Rlc3RzL3Rlc3Rf
Y2h1bmtlci5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci90ZXN0cy90ZXN0X2NodW5rZXIucHkKZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IGJkNjQ5ZDY5ZTM5Li4wMDAwMDAwMDAwMAotLS0gYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93
cHRydW5uZXIvdGVzdHMvdGVzdF9jaHVua2VyLnB5CisrKyAvZGV2L251bGwKQEAgLTEsOTggKzAs
MCBAQAotaW1wb3J0IHVuaXR0ZXN0Ci1pbXBvcnQgc3lzCi1mcm9tIG9zLnBhdGggaW1wb3J0IGpv
aW4sIGRpcm5hbWUKLWZyb20gbW96bG9nIGltcG9ydCBzdHJ1Y3R1cmVkCi0KLXN5cy5wYXRoLmlu
c2VydCgwLCBqb2luKGRpcm5hbWUoX19maWxlX18pLCAiLi4iLCAiLi4iLCAiLi4iKSkKLQotZnJv
bSB3cHRydW5uZXIudGVzdGxvYWRlciBpbXBvcnQgRXF1YWxUaW1lQ2h1bmtlcgotZnJvbSBtYW5p
ZmVzdC5zb3VyY2VmaWxlIGltcG9ydCBTb3VyY2VGaWxlCi0KLXN0cnVjdHVyZWQuc2V0X2RlZmF1
bHRfbG9nZ2VyKHN0cnVjdHVyZWQuc3RydWN0dXJlZGxvZy5TdHJ1Y3R1cmVkTG9nZ2VyKCJUZXN0
Q2h1bmtlciIpKQotCi0KLXRlc3RoYXJuZXNzX3Rlc3QgPSAiIiI8c2NyaXB0IHNyYz0iL3Jlc291
cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90
ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+IiIiCi0KLQotY2xhc3MgTW9ja1Rlc3Qob2Jq
ZWN0KToKLSAgICBkZWZhdWx0X3RpbWVvdXQgPSAxMAotCi0gICAgZGVmIF9faW5pdF9fKHNlbGYs
IGlkLCBwYXRoLCB0aW1lb3V0PTEwLCBjb250ZW50cz10ZXN0aGFybmVzc190ZXN0KToKLSAgICAg
ICAgc2VsZi5pZCA9IGlkCi0gICAgICAgIHNlbGYudXJsID0gIi8iICsgcGF0aAotICAgICAgICBz
ZWxmLml0ZW1fdHlwZSA9ICJ0ZXN0aGFybmVzcyIKLSAgICAgICAgc2VsZi50aW1lb3V0ID0gdGlt
ZW91dAotICAgICAgICBzZWxmLnNvdXJjZV9maWxlID0gU291cmNlRmlsZSgiLyIsIHBhdGgsICIv
IiwgY29udGVudHM9Y29udGVudHMpCi0KLQotZGVmIG1ha2VfbW9ja19tYW5pZmVzdCgqaXRlbXMp
OgotICAgIHJ2ID0gW10KLSAgICBmb3IgdGVzdF90eXBlLCBkaXJfcGF0aCwgbnVtX3Rlc3RzIGlu
IGl0ZW1zOgotICAgICAgICBmb3IgaSBpbiByYW5nZShudW1fdGVzdHMpOgotICAgICAgICAgICAg
ZmlsZW5hbWUgPSAiLyVpLmh0bWwiICUgaQotICAgICAgICAgICAgcnYuYXBwZW5kKCh0ZXN0X3R5
cGUsCi0gICAgICAgICAgICAgICAgICAgICAgIGRpcl9wYXRoICsgZmlsZW5hbWUsCi0gICAgICAg
ICAgICAgICAgICAgICAgIHNldChbTW9ja1Rlc3QoIiVpLmh0bWwiICUgaSwgZGlyX3BhdGggKyBm
aWxlbmFtZSldKSkpCi0gICAgcmV0dXJuIHJ2Ci0KLQotY2xhc3MgVGVzdEVxdWFsVGltZUNodW5r
ZXIodW5pdHRlc3QuVGVzdENhc2UpOgotCi0gICAgZGVmIHRlc3RfaW5jbHVkZV9hbGwoc2VsZik6
Ci0gICAgICAgIHRlc3RzID0gbWFrZV9tb2NrX21hbmlmZXN0KCgidGVzdCIsICJhIiwgMTApLCAo
InRlc3QiLCAiYS9iIiwgMTApLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAo
InRlc3QiLCAiYyIsIDEwKSkKLQotICAgICAgICBjaHVua18xID0gbGlzdChFcXVhbFRpbWVDaHVu
a2VyKDMsIDEpKHRlc3RzKSkKLSAgICAgICAgY2h1bmtfMiA9IGxpc3QoRXF1YWxUaW1lQ2h1bmtl
cigzLCAyKSh0ZXN0cykpCi0gICAgICAgIGNodW5rXzMgPSBsaXN0KEVxdWFsVGltZUNodW5rZXIo
MywgMykodGVzdHMpKQotCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKHRlc3RzWzoxMF0sIGNo
dW5rXzEpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKHRlc3RzWzEwOjIwXSwgY2h1bmtfMikK
LSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHModGVzdHNbMjA6XSwgY2h1bmtfMykKLQotICAgIGRl
ZiB0ZXN0X2luY2x1ZGVfYWxsXzEoc2VsZik6Ci0gICAgICAgIHRlc3RzID0gbWFrZV9tb2NrX21h
bmlmZXN0KCgidGVzdCIsICJhIiwgNSksICgidGVzdCIsICJhL2IiLCA1KSwKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgKCJ0ZXN0IiwgImMiLCAxMCksICgidGVzdCIsICJkIiwg
MTApKQotCi0gICAgICAgIGNodW5rXzEgPSBsaXN0KEVxdWFsVGltZUNodW5rZXIoMywgMSkodGVz
dHMpKQotICAgICAgICBjaHVua18yID0gbGlzdChFcXVhbFRpbWVDaHVua2VyKDMsIDIpKHRlc3Rz
KSkKLSAgICAgICAgY2h1bmtfMyA9IGxpc3QoRXF1YWxUaW1lQ2h1bmtlcigzLCAzKSh0ZXN0cykp
Ci0KLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHModGVzdHNbOjEwXSwgY2h1bmtfMSkKLSAgICAg
ICAgc2VsZi5hc3NlcnRFcXVhbHModGVzdHNbMTA6MjBdLCBjaHVua18yKQotICAgICAgICBzZWxm
LmFzc2VydEVxdWFscyh0ZXN0c1syMDpdLCBjaHVua18zKQotCi0gICAgZGVmIHRlc3RfbG9uZyhz
ZWxmKToKLSAgICAgICAgdGVzdHMgPSBtYWtlX21vY2tfbWFuaWZlc3QoKCJ0ZXN0IiwgImEiLCAx
MDApLCAoInRlc3QiLCAiYS9iIiwgMSksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICgidGVzdCIsICJjIiwgMSkpCi0KLSAgICAgICAgY2h1bmtfMSA9IGxpc3QoRXF1YWxUaW1l
Q2h1bmtlcigzLCAxKSh0ZXN0cykpCi0gICAgICAgIGNodW5rXzIgPSBsaXN0KEVxdWFsVGltZUNo
dW5rZXIoMywgMikodGVzdHMpKQotICAgICAgICBjaHVua18zID0gbGlzdChFcXVhbFRpbWVDaHVu
a2VyKDMsIDMpKHRlc3RzKSkKLQotICAgICAgICBzZWxmLmFzc2VydEVxdWFscyh0ZXN0c1s6MTAw
XSwgY2h1bmtfMSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHModGVzdHNbMTAwOjEwMV0sIGNo
dW5rXzIpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKHRlc3RzWzEwMToxMDJdLCBjaHVua18z
KQotCi0gICAgZGVmIHRlc3RfbG9uZ18xKHNlbGYpOgotICAgICAgICB0ZXN0cyA9IG1ha2VfbW9j
a19tYW5pZmVzdCgoInRlc3QiLCAiYSIsIDEpLCAoInRlc3QiLCAiYS9iIiwgMTAwKSwKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCJ0ZXN0IiwgImMiLCAxKSkKLQotICAgICAg
ICBjaHVua18xID0gbGlzdChFcXVhbFRpbWVDaHVua2VyKDMsIDEpKHRlc3RzKSkKLSAgICAgICAg
Y2h1bmtfMiA9IGxpc3QoRXF1YWxUaW1lQ2h1bmtlcigzLCAyKSh0ZXN0cykpCi0gICAgICAgIGNo
dW5rXzMgPSBsaXN0KEVxdWFsVGltZUNodW5rZXIoMywgMykodGVzdHMpKQotCi0gICAgICAgIHNl
bGYuYXNzZXJ0RXF1YWxzKHRlc3RzWzoxXSwgY2h1bmtfMSkKLSAgICAgICAgc2VsZi5hc3NlcnRF
cXVhbHModGVzdHNbMToxMDFdLCBjaHVua18yKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFscyh0
ZXN0c1sxMDE6MTAyXSwgY2h1bmtfMykKLQotICAgIGRlZiB0ZXN0X3Rvb19mZXdfZGlycyhzZWxm
KToKLSAgICAgICAgd2l0aCBzZWxmLmFzc2VydFJhaXNlcyhWYWx1ZUVycm9yKToKLSAgICAgICAg
ICAgIHRlc3RzID0gbWFrZV9tb2NrX21hbmlmZXN0KCgidGVzdCIsICJhIiwgMSksICgidGVzdCIs
ICJhL2IiLCAxMDApLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCJ0
ZXN0IiwgImMiLCAxKSkKLSAgICAgICAgICAgIGxpc3QoRXF1YWxUaW1lQ2h1bmtlcig0LCAxKSh0
ZXN0cykpCi0KLQotaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKLSAgICB1bml0dGVzdC5tYWlu
KCkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci90ZXN0cy90ZXN0X2V4cGVjdGVkdHJlZS5weSBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVu
bmVyL3dwdHJ1bm5lci90ZXN0cy90ZXN0X2V4cGVjdGVkdHJlZS5weQpuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMC4uMjMwOGJlOTU5MGUKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5l
ci93cHRydW5uZXIvdGVzdHMvdGVzdF9leHBlY3RlZHRyZWUucHkKQEAgLTAsMCArMSwxMzIgQEAK
K2ltcG9ydCBzeXMKKworaW1wb3J0IHB5dGVzdAorCitmcm9tIC4uIGltcG9ydCBleHBlY3RlZHRy
ZWUsIG1ldGFkYXRhCitmcm9tIGNvbGxlY3Rpb25zIGltcG9ydCBkZWZhdWx0ZGljdAorCisKK2Rl
ZiBkdW1wX3RyZWUodHJlZSk6CisgICAgcnYgPSBbXQorCisgICAgZGVmIGR1bXBfbm9kZShub2Rl
LCBpbmRlbnQ9MCk6CisgICAgICAgIHByZWZpeCA9ICIgIiAqIGluZGVudAorICAgICAgICBpZiBu
b3Qgbm9kZS5wcm9wOgorICAgICAgICAgICAgZGF0YSA9ICJyb290IgorICAgICAgICBlbHNlOgor
ICAgICAgICAgICAgZGF0YSA9ICIlczolcyIgJSAobm9kZS5wcm9wLCBub2RlLnZhbHVlKQorICAg
ICAgICBpZiBub2RlLnJlc3VsdF92YWx1ZXM6CisgICAgICAgICAgICBkYXRhICs9ICIgcmVzdWx0
X3ZhbHVlczolcyIgJSAoIiwiLmpvaW4oc29ydGVkKG5vZGUucmVzdWx0X3ZhbHVlcykpKQorICAg
ICAgICBydi5hcHBlbmQoIiVzPCVzPiIgJSAocHJlZml4LCBkYXRhKSkKKyAgICAgICAgZm9yIGNo
aWxkIGluIHNvcnRlZChub2RlLmNoaWxkcmVuLCBrZXk9bGFtYmRhIHg6eC52YWx1ZSk6CisgICAg
ICAgICAgICBkdW1wX25vZGUoY2hpbGQsIGluZGVudCArIDIpCisgICAgZHVtcF9ub2RlKHRyZWUp
CisgICAgcmV0dXJuICJcbiIuam9pbihydikKKworCitkZWYgcmVzdWx0c19vYmplY3QocmVzdWx0
cyk6CisgICAgcmVzdWx0c19vYmogPSBkZWZhdWx0ZGljdChsYW1iZGE6IGRlZmF1bHRkaWN0KGlu
dCkpCisgICAgZm9yIHJ1bl9pbmZvLCBzdGF0dXMgaW4gcmVzdWx0czoKKyAgICAgICAgcnVuX2lu
Zm8gPSBtZXRhZGF0YS5SdW5JbmZvKHJ1bl9pbmZvKQorICAgICAgICByZXN1bHRzX29ialtydW5f
aW5mb11bc3RhdHVzXSArPSAxCisgICAgcmV0dXJuIHJlc3VsdHNfb2JqCisKKworQHB5dGVzdC5t
YXJrLnhmYWlsKHN5cy52ZXJzaW9uWzBdID09ICIzIiwKKyAgICAgICAgICAgICAgICAgICByZWFz
b249Im1ldGFkYXRhIGRvZXNuJ3Qgc3VwcG9ydCBweTMiKQorZGVmIHRlc3RfYnVpbGRfdHJlZV8w
KCk6CisgICAgIyBQYXNzIGlmIGRlYnVnCisgICAgcmVzdWx0cyA9IFsoeyJvcyI6ICJsaW51eCIs
ICJ2ZXJzaW9uIjogIjE4LjA0IiwgImRlYnVnIjogVHJ1ZX0sICJGQUlMIiksCisgICAgICAgICAg
ICAgICAoeyJvcyI6ICJsaW51eCIsICJ2ZXJzaW9uIjogIjE4LjA0IiwgImRlYnVnIjogRmFsc2V9
LCAiUEFTUyIpLAorICAgICAgICAgICAgICAgKHsib3MiOiAibGludXgiLCAidmVyc2lvbiI6ICIx
Ni4wNCIsICJkZWJ1ZyI6IEZhbHNlfSwgIlBBU1MiKSwKKyAgICAgICAgICAgICAgICh7Im9zIjog
Im1hYyIsICJ2ZXJzaW9uIjogIjEwLjEyIiwgImRlYnVnIjogVHJ1ZX0sICJGQUlMIiksCisgICAg
ICAgICAgICAgICAoeyJvcyI6ICJtYWMiLCAidmVyc2lvbiI6ICIxMC4xMiIsICJkZWJ1ZyI6IEZh
bHNlfSwgIlBBU1MiKSwKKyAgICAgICAgICAgICAgICh7Im9zIjogIndpbiIsICJ2ZXJzaW9uIjog
IjciLCAiZGVidWciOiBGYWxzZX0sICJQQVNTIiksCisgICAgICAgICAgICAgICAoeyJvcyI6ICJ3
aW4iLCAidmVyc2lvbiI6ICIxMCIsICJkZWJ1ZyI6IEZhbHNlfSwgIlBBU1MiKV0KKyAgICByZXN1
bHRzX29iaiA9IHJlc3VsdHNfb2JqZWN0KHJlc3VsdHMpCisgICAgdHJlZSA9IGV4cGVjdGVkdHJl
ZS5idWlsZF90cmVlKFsib3MiLCAidmVyc2lvbiIsICJkZWJ1ZyJdLCB7fSwgcmVzdWx0c19vYmop
CisKKyAgICBleHBlY3RlZCA9ICIiIjxyb290PgorICA8ZGVidWc6RmFsc2UgcmVzdWx0X3ZhbHVl
czpQQVNTPgorICA8ZGVidWc6VHJ1ZSByZXN1bHRfdmFsdWVzOkZBSUw+IiIiCisKKyAgICBhc3Nl
cnQgZHVtcF90cmVlKHRyZWUpID09IGV4cGVjdGVkCisKKworQHB5dGVzdC5tYXJrLnhmYWlsKHN5
cy52ZXJzaW9uWzBdID09ICIzIiwKKyAgICAgICAgICAgICAgICAgICByZWFzb249Im1ldGFkYXRh
IGRvZXNuJ3Qgc3VwcG9ydCBweTMiKQorZGVmIHRlc3RfYnVpbGRfdHJlZV8xKCk6CisgICAgIyBQ
YXNzIGlmIGxpbnV4IG9yIHdpbmRvd3MgMTAKKyAgICByZXN1bHRzID0gWyh7Im9zIjogImxpbnV4
IiwgInZlcnNpb24iOiAiMTguMDQiLCAiZGVidWciOiBUcnVlfSwgIlBBU1MiKSwKKyAgICAgICAg
ICAgICAgICh7Im9zIjogImxpbnV4IiwgInZlcnNpb24iOiAiMTguMDQiLCAiZGVidWciOiBGYWxz
ZX0sICJQQVNTIiksCisgICAgICAgICAgICAgICAoeyJvcyI6ICJsaW51eCIsICJ2ZXJzaW9uIjog
IjE2LjA0IiwgImRlYnVnIjogRmFsc2V9LCAiUEFTUyIpLAorICAgICAgICAgICAgICAgKHsib3Mi
OiAibWFjIiwgInZlcnNpb24iOiAiMTAuMTIiLCAiZGVidWciOiBUcnVlfSwgIkZBSUwiKSwKKyAg
ICAgICAgICAgICAgICh7Im9zIjogIm1hYyIsICJ2ZXJzaW9uIjogIjEwLjEyIiwgImRlYnVnIjog
RmFsc2V9LCAiRkFJTCIpLAorICAgICAgICAgICAgICAgKHsib3MiOiAid2luIiwgInZlcnNpb24i
OiAiNyIsICJkZWJ1ZyI6IEZhbHNlfSwgIkZBSUwiKSwKKyAgICAgICAgICAgICAgICh7Im9zIjog
IndpbiIsICJ2ZXJzaW9uIjogIjEwIiwgImRlYnVnIjogRmFsc2V9LCAiUEFTUyIpXQorICAgIHJl
c3VsdHNfb2JqID0gcmVzdWx0c19vYmplY3QocmVzdWx0cykKKyAgICB0cmVlID0gZXhwZWN0ZWR0
cmVlLmJ1aWxkX3RyZWUoWyJvcyIsICJkZWJ1ZyJdLCB7Im9zIjogWyJ2ZXJzaW9uIl19LCByZXN1
bHRzX29iaikKKworICAgIGV4cGVjdGVkID0gIiIiPHJvb3Q+CisgIDxvczpsaW51eCByZXN1bHRf
dmFsdWVzOlBBU1M+CisgIDxvczptYWMgcmVzdWx0X3ZhbHVlczpGQUlMPgorICA8b3M6d2luPgor
ICAgIDx2ZXJzaW9uOjEwIHJlc3VsdF92YWx1ZXM6UEFTUz4KKyAgICA8dmVyc2lvbjo3IHJlc3Vs
dF92YWx1ZXM6RkFJTD4iIiIKKworICAgIGFzc2VydCBkdW1wX3RyZWUodHJlZSkgPT0gZXhwZWN0
ZWQKKworCitAcHl0ZXN0Lm1hcmsueGZhaWwoc3lzLnZlcnNpb25bMF0gPT0gIjMiLAorICAgICAg
ICAgICAgICAgICAgIHJlYXNvbj0ibWV0YWRhdGEgZG9lc24ndCBzdXBwb3J0IHB5MyIpCitkZWYg
dGVzdF9idWlsZF90cmVlXzIoKToKKyAgICAjIEZhaWxzIGluIGEgc3BlY2lmaWMgY29uZmlndXJh
dGlvbgorICAgIHJlc3VsdHMgPSBbKHsib3MiOiAibGludXgiLCAidmVyc2lvbiI6ICIxOC4wNCIs
ICJkZWJ1ZyI6IFRydWV9LCAiUEFTUyIpLAorICAgICAgICAgICAgICAgKHsib3MiOiAibGludXgi
LCAidmVyc2lvbiI6ICIxOC4wNCIsICJkZWJ1ZyI6IEZhbHNlfSwgIkZBSUwiKSwKKyAgICAgICAg
ICAgICAgICh7Im9zIjogImxpbnV4IiwgInZlcnNpb24iOiAiMTYuMDQiLCAiZGVidWciOiBGYWxz
ZX0sICJQQVNTIiksCisgICAgICAgICAgICAgICAoeyJvcyI6ICJsaW51eCIsICJ2ZXJzaW9uIjog
IjE2LjA0IiwgImRlYnVnIjogVHJ1ZX0sICJQQVNTIiksCisgICAgICAgICAgICAgICAoeyJvcyI6
ICJtYWMiLCAidmVyc2lvbiI6ICIxMC4xMiIsICJkZWJ1ZyI6IFRydWV9LCAiUEFTUyIpLAorICAg
ICAgICAgICAgICAgKHsib3MiOiAibWFjIiwgInZlcnNpb24iOiAiMTAuMTIiLCAiZGVidWciOiBG
YWxzZX0sICJQQVNTIiksCisgICAgICAgICAgICAgICAoeyJvcyI6ICJ3aW4iLCAidmVyc2lvbiI6
ICI3IiwgImRlYnVnIjogRmFsc2V9LCAiUEFTUyIpLAorICAgICAgICAgICAgICAgKHsib3MiOiAi
d2luIiwgInZlcnNpb24iOiAiMTAiLCAiZGVidWciOiBGYWxzZX0sICJQQVNTIildCisgICAgcmVz
dWx0c19vYmogPSByZXN1bHRzX29iamVjdChyZXN1bHRzKQorICAgIHRyZWUgPSBleHBlY3RlZHRy
ZWUuYnVpbGRfdHJlZShbIm9zIiwgImRlYnVnIl0sIHsib3MiOiBbInZlcnNpb24iXX0sIHJlc3Vs
dHNfb2JqKQorCisgICAgZXhwZWN0ZWQgPSAiIiI8cm9vdD4KKyAgPG9zOmxpbnV4PgorICAgIDxk
ZWJ1ZzpGYWxzZT4KKyAgICAgIDx2ZXJzaW9uOjE2LjA0IHJlc3VsdF92YWx1ZXM6UEFTUz4KKyAg
ICAgIDx2ZXJzaW9uOjE4LjA0IHJlc3VsdF92YWx1ZXM6RkFJTD4KKyAgICA8ZGVidWc6VHJ1ZSBy
ZXN1bHRfdmFsdWVzOlBBU1M+CisgIDxvczptYWMgcmVzdWx0X3ZhbHVlczpQQVNTPgorICA8b3M6
d2luIHJlc3VsdF92YWx1ZXM6UEFTUz4iIiIKKworICAgIGFzc2VydCBkdW1wX3RyZWUodHJlZSkg
PT0gZXhwZWN0ZWQKKworCitAcHl0ZXN0Lm1hcmsueGZhaWwoc3lzLnZlcnNpb25bMF0gPT0gIjMi
LAorICAgICAgICAgICAgICAgICAgIHJlYXNvbj0ibWV0YWRhdGEgZG9lc24ndCBzdXBwb3J0IHB5
MyIpCitkZWYgdGVzdF9idWlsZF90cmVlXzMoKToKKworICAgIHJlc3VsdHMgPSBbKHsib3MiOiAi
bGludXgiLCAidmVyc2lvbiI6ICIxOC4wNCIsICJkZWJ1ZyI6IFRydWUsICJ1bnVzZWQiOiBGYWxz
ZX0sICJQQVNTIiksCisgICAgICAgICAgICAgICAoeyJvcyI6ICJsaW51eCIsICJ2ZXJzaW9uIjog
IjE4LjA0IiwgImRlYnVnIjogVHJ1ZSwgInVudXNlZCI6IFRydWV9LCAiRkFJTCIpXQorICAgIHJl
c3VsdHNfb2JqID0gcmVzdWx0c19vYmplY3QocmVzdWx0cykKKyAgICB0cmVlID0gZXhwZWN0ZWR0
cmVlLmJ1aWxkX3RyZWUoWyJvcyIsICJkZWJ1ZyJdLCB7Im9zIjogWyJ2ZXJzaW9uIl19LCByZXN1
bHRzX29iaikKKworICAgIGV4cGVjdGVkID0gIiIiPHJvb3QgcmVzdWx0X3ZhbHVlczpGQUlMLFBB
U1M+IiIiCisKKyAgICBhc3NlcnQgZHVtcF90cmVlKHRyZWUpID09IGV4cGVjdGVkCisKKworQHB5
dGVzdC5tYXJrLnhmYWlsKHN5cy52ZXJzaW9uWzBdID09ICIzIiwKKyAgICAgICAgICAgICAgICAg
ICByZWFzb249Im1ldGFkYXRhIGRvZXNuJ3Qgc3VwcG9ydCBweTMiKQorZGVmIHRlc3RfYnVpbGRf
dHJlZV80KCk6CisgICAgIyBDaGVjayBjb3VudHMgZm9yIG11bHRpcGxlIHN0YXR1c2VzCisgICAg
cmVzdWx0cyA9IFsoeyJvcyI6ICJsaW51eCIsICJ2ZXJzaW9uIjogIjE4LjA0IiwgImRlYnVnIjog
RmFsc2V9LCAiRkFJTCIpLAorICAgICAgICAgICAgICAgKHsib3MiOiAibGludXgiLCAidmVyc2lv
biI6ICIxOC4wNCIsICJkZWJ1ZyI6IEZhbHNlfSwgIlBBU1MiKSwKKyAgICAgICAgICAgICAgICh7
Im9zIjogImxpbnV4IiwgInZlcnNpb24iOiAiMTguMDQiLCAiZGVidWciOiBGYWxzZX0sICJQQVNT
IildCisgICAgcmVzdWx0c19vYmogPSByZXN1bHRzX29iamVjdChyZXN1bHRzKQorICAgIHRyZWUg
PSBleHBlY3RlZHRyZWUuYnVpbGRfdHJlZShbIm9zIiwgInZlcnNpb24iLCAiZGVidWciXSwge30s
IHJlc3VsdHNfb2JqKQorCisgICAgYXNzZXJ0IHRyZWUucmVzdWx0X3ZhbHVlc1siUEFTUyJdID09
IDIKKyAgICBhc3NlcnQgdHJlZS5yZXN1bHRfdmFsdWVzWyJGQUlMIl0gPT0gMQpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRy
dW5uZXIvd3B0cnVubmVyL3Rlc3RzL3Rlc3RfZm9ybWF0dGVycy5weSBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci90
ZXN0cy90ZXN0X2Zvcm1hdHRlcnMucHkKaW5kZXggZmMyY2U1YmMxMTEuLjcyZjNhNTkxYWQ3IDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3dwdHJ1bm5lci93cHRydW5uZXIvdGVzdHMvdGVzdF9mb3JtYXR0ZXJzLnB5CisrKyBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVy
L3dwdHJ1bm5lci90ZXN0cy90ZXN0X2Zvcm1hdHRlcnMucHkKQEAgLTEsMTQgKzEsMTMgQEAKIGlt
cG9ydCBqc29uCi1pbXBvcnQgc3lzCiBpbXBvcnQgdGltZQotZnJvbSBvcy5wYXRoIGltcG9ydCBk
aXJuYW1lLCBqb2luCi1mcm9tIFN0cmluZ0lPIGltcG9ydCBTdHJpbmdJTworZnJvbSBzaXgubW92
ZXMgaW1wb3J0IGNTdHJpbmdJTyBhcyBTdHJpbmdJTwogCi1mcm9tIG1vemxvZyBpbXBvcnQgaGFu
ZGxlcnMsIHN0cnVjdHVyZWRsb2cKK2ltcG9ydCBtb2NrCiAKLXN5cy5wYXRoLmluc2VydCgwLCBq
b2luKGRpcm5hbWUoX19maWxlX18pLCAiLi4iLCAiLi4iKSkKK2Zyb20gbW96bG9nIGltcG9ydCBo
YW5kbGVycywgc3RydWN0dXJlZGxvZwogCi1mcm9tIHdwdHJ1bm5lci5mb3JtYXR0ZXJzIGltcG9y
dCBXcHRyZXBvcnRGb3JtYXR0ZXIKK2Zyb20gLi5mb3JtYXR0ZXJzIGltcG9ydCB3cHRyZXBvcnQK
K2Zyb20gLi5mb3JtYXR0ZXJzLndwdHJlcG9ydCBpbXBvcnQgV3B0cmVwb3J0Rm9ybWF0dGVyCiAK
IAogZGVmIHRlc3Rfd3B0cmVwb3J0X3J1bnRpbWUoY2FwZmQpOgpAQCAtNjIsMyArNjEsMTA4IEBA
IGRlZiB0ZXN0X3dwdHJlcG9ydF9ydW5faW5mb19vcHRpb25hbChjYXBmZCk6CiAgICAgb3V0cHV0
LnNlZWsoMCkKICAgICBvdXRwdXRfb2JqID0ganNvbi5sb2FkKG91dHB1dCkKICAgICBhc3NlcnQg
InJ1bl9pbmZvIiBub3QgaW4gb3V0cHV0X29iaiBvciBvdXRwdXRfb2JqWyJydW5faW5mbyJdID09
IHt9CisKKworZGVmIHRlc3Rfd3B0cmVwb3J0X2xvbmVfc3Vycm9nYXRlKGNhcGZkKToKKyAgICBv
dXRwdXQgPSBTdHJpbmdJTygpCisgICAgbG9nZ2VyID0gc3RydWN0dXJlZGxvZy5TdHJ1Y3R1cmVk
TG9nZ2VyKCJ0ZXN0X2EiKQorICAgIGxvZ2dlci5hZGRfaGFuZGxlcihoYW5kbGVycy5TdHJlYW1I
YW5kbGVyKG91dHB1dCwgV3B0cmVwb3J0Rm9ybWF0dGVyKCkpKQorCisgICAgIyBvdXRwdXQgYSBi
dW5jaCBvZiBzdHVmZgorICAgIGxvZ2dlci5zdWl0ZV9zdGFydChbInRlc3QtaWQtMSJdKSAgIyBu
byBydW5faW5mbyBhcmchCisgICAgbG9nZ2VyLnRlc3Rfc3RhcnQoInRlc3QtaWQtMSIpCisgICAg
bG9nZ2VyLnRlc3Rfc3RhdHVzKCJ0ZXN0LWlkLTEiLAorICAgICAgICAgICAgICAgICAgICAgICBz
dWJ0ZXN0PXUiTmFtZSB3aXRoIHN1cnJvZ2F0ZVx1RDgwMCIsCisgICAgICAgICAgICAgICAgICAg
ICAgIHN0YXR1cz0iRkFJTCIsCisgICAgICAgICAgICAgICAgICAgICAgIG1lc3NhZ2U9dSJcVTAw
MDFGNjAxIFx1REUwQVx1RDgzRCIpCisgICAgbG9nZ2VyLnRlc3RfZW5kKCJ0ZXN0LWlkLTEiLAor
ICAgICAgICAgICAgICAgICAgICBzdGF0dXM9IlBBU1MiLAorICAgICAgICAgICAgICAgICAgICBt
ZXNzYWdlPXUiXHVERTBBXHVEODNEIFxVMDAwMUY2MDEiKQorICAgIGxvZ2dlci5zdWl0ZV9lbmQo
KQorCisgICAgIyBjaGVjayBub3RoaW5nIGdvdCBvdXRwdXQgdG8gc3Rkb3V0L3N0ZGVycgorICAg
ICMgKG5vdGUgdGhhdCBtb3psb2cgb3V0cHV0cyBleGNlcHRpb25zIGR1cmluZyBoYW5kbGluZyB0
byBzdGRlcnIhKQorICAgIGNhcHR1cmVkID0gY2FwZmQucmVhZG91dGVycigpCisgICAgYXNzZXJ0
IGNhcHR1cmVkLm91dCA9PSAiIgorICAgIGFzc2VydCBjYXB0dXJlZC5lcnIgPT0gIiIKKworICAg
ICMgY2hlY2sgdGhlIGFjdHVhbCBvdXRwdXQgb2YgdGhlIGZvcm1hdHRlcgorICAgIG91dHB1dC5z
ZWVrKDApCisgICAgb3V0cHV0X29iaiA9IGpzb24ubG9hZChvdXRwdXQpCisgICAgdGVzdCA9IG91
dHB1dF9vYmpbInJlc3VsdHMiXVswXQorICAgIGFzc2VydCB0ZXN0WyJtZXNzYWdlIl0gPT0gdSJV
K2RlMGFVK2Q4M2QgXFUwMDAxRjYwMSIKKyAgICBzdWJ0ZXN0ID0gdGVzdFsic3VidGVzdHMiXVsw
XQorICAgIGFzc2VydCBzdWJ0ZXN0WyJuYW1lIl0gPT0gdSJOYW1lIHdpdGggc3Vycm9nYXRlVStk
ODAwIgorICAgIGFzc2VydCBzdWJ0ZXN0WyJtZXNzYWdlIl0gPT0gdSJcVTAwMDFGNjAxIFUrZGUw
YVUrZDgzZCIKKworCitkZWYgdGVzdF93cHRyZXBvcnRfbG9uZV9zdXJyb2dhdGVfdWNzMihjYXBm
ZCk6CisgICAgIyBTaW5jZSBVQ1M0IGlzIGEgc3VwZXJzZXQgb2YgVUNTMiB3ZSBjYW4gbWVhbmlu
Z2Z1bGx5IHRlc3QgdGhlIFVDUzIgY29kZSBvbiBhCisgICAgIyBVQ1M0IGJ1aWxkLCBidXQgbm90
IHRoZSByZXZlcnNlLiBIb3dldmVyIFVDUzIgaXMgaGFyZGVyIHRvIGhhbmRsZSBhbmQgVUNTNCBp
cworICAgICMgdGhlIGNvbW1vbmVzdCAoYW5kIHNlbnNpYmxlKSBjb25maWd1cmF0aW9uLCBzbyB0
aGF0J3MgT0suCisgICAgb3V0cHV0ID0gU3RyaW5nSU8oKQorICAgIGxvZ2dlciA9IHN0cnVjdHVy
ZWRsb2cuU3RydWN0dXJlZExvZ2dlcigidGVzdF9hIikKKyAgICBsb2dnZXIuYWRkX2hhbmRsZXIo
aGFuZGxlcnMuU3RyZWFtSGFuZGxlcihvdXRwdXQsIFdwdHJlcG9ydEZvcm1hdHRlcigpKSkKKwor
ICAgIHdpdGggbW9jay5wYXRjaC5vYmplY3Qod3B0cmVwb3J0LAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgJ3N1cnJvZ2F0ZV9yZXBsYWNlbWVudCcsCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICB3cHRyZXBvcnQuU3Vycm9nYXRlUmVwbGFjZW1lbnRVY3MyKCkpOgorICAgICAgICAjIG91
dHB1dCBhIGJ1bmNoIG9mIHN0dWZmCisgICAgICAgIGxvZ2dlci5zdWl0ZV9zdGFydChbInRlc3Qt
aWQtMSJdKSAgIyBubyBydW5faW5mbyBhcmchCisgICAgICAgIGxvZ2dlci50ZXN0X3N0YXJ0KCJ0
ZXN0LWlkLTEiKQorICAgICAgICBsb2dnZXIudGVzdF9zdGF0dXMoInRlc3QtaWQtMSIsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICBzdWJ0ZXN0PXUiTmFtZSB3aXRoIHN1cnJvZ2F0ZVx1RDgw
MCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0dXM9IkZBSUwiLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgbWVzc2FnZT11IlxVMDAwMUY2MDEgXHVERTBBXHVEODNEIFx1RDgz
RFx1REUwQSIpCisgICAgICAgIGxvZ2dlci50ZXN0X2VuZCgidGVzdC1pZC0xIiwKKyAgICAgICAg
ICAgICAgICAgICAgICAgIHN0YXR1cz0iUEFTUyIsCisgICAgICAgICAgICAgICAgICAgICAgICBt
ZXNzYWdlPXUiXHVERTBBXHVEODNEIFx1RDgzRFx1REUwQSBcVTAwMDFGNjAxIikKKyAgICAgICAg
bG9nZ2VyLnN1aXRlX2VuZCgpCisKKyAgICAjIGNoZWNrIG5vdGhpbmcgZ290IG91dHB1dCB0byBz
dGRvdXQvc3RkZXJyCisgICAgIyAobm90ZSB0aGF0IG1vemxvZyBvdXRwdXRzIGV4Y2VwdGlvbnMg
ZHVyaW5nIGhhbmRsaW5nIHRvIHN0ZGVyciEpCisgICAgY2FwdHVyZWQgPSBjYXBmZC5yZWFkb3V0
ZXJyKCkKKyAgICBhc3NlcnQgY2FwdHVyZWQub3V0ID09ICIiCisgICAgYXNzZXJ0IGNhcHR1cmVk
LmVyciA9PSAiIgorCisgICAgIyBjaGVjayB0aGUgYWN0dWFsIG91dHB1dCBvZiB0aGUgZm9ybWF0
dGVyCisgICAgb3V0cHV0LnNlZWsoMCkKKyAgICBvdXRwdXRfb2JqID0ganNvbi5sb2FkKG91dHB1
dCkKKyAgICB0ZXN0ID0gb3V0cHV0X29ialsicmVzdWx0cyJdWzBdCisgICAgYXNzZXJ0IHRlc3Rb
Im1lc3NhZ2UiXSA9PSB1IlUrZGUwYVUrZDgzZCBcVTAwMDFmNjBhIFxVMDAwMUY2MDEiCisgICAg
c3VidGVzdCA9IHRlc3RbInN1YnRlc3RzIl1bMF0KKyAgICBhc3NlcnQgc3VidGVzdFsibmFtZSJd
ID09IHUiTmFtZSB3aXRoIHN1cnJvZ2F0ZVUrZDgwMCIKKyAgICBhc3NlcnQgc3VidGVzdFsibWVz
c2FnZSJdID09IHUiXFUwMDAxRjYwMSBVK2RlMGFVK2Q4M2QgXFUwMDAxZjYwYSIKKworCitkZWYg
dGVzdF93cHRyZXBvcnRfa25vd25faW50ZXJtaXR0ZW50KGNhcGZkKToKKyAgICBvdXRwdXQgPSBT
dHJpbmdJTygpCisgICAgbG9nZ2VyID0gc3RydWN0dXJlZGxvZy5TdHJ1Y3R1cmVkTG9nZ2VyKCJ0
ZXN0X2EiKQorICAgIGxvZ2dlci5hZGRfaGFuZGxlcihoYW5kbGVycy5TdHJlYW1IYW5kbGVyKG91
dHB1dCwgV3B0cmVwb3J0Rm9ybWF0dGVyKCkpKQorCisgICAgIyBvdXRwdXQgYSBidW5jaCBvZiBz
dHVmZgorICAgIGxvZ2dlci5zdWl0ZV9zdGFydChbInRlc3QtaWQtMSJdKSAgIyBubyBydW5faW5m
byBhcmchCisgICAgbG9nZ2VyLnRlc3Rfc3RhcnQoInRlc3QtaWQtMSIpCisgICAgbG9nZ2VyLnRl
c3Rfc3RhdHVzKCJ0ZXN0LWlkLTEiLAorICAgICAgICAgICAgICAgICAgICAgICAiYS1zdWJ0ZXN0
IiwKKyAgICAgICAgICAgICAgICAgICAgICAgc3RhdHVzPSJGQUlMIiwKKyAgICAgICAgICAgICAg
ICAgICAgICAgZXhwZWN0ZWQ9IlBBU1MiLAorICAgICAgICAgICAgICAgICAgICAgICBrbm93bl9p
bnRlcm1pdHRlbnQ9WyJGQUlMIl0pCisgICAgbG9nZ2VyLnRlc3RfZW5kKCJ0ZXN0LWlkLTEiLAor
ICAgICAgICAgICAgICAgICAgICBzdGF0dXM9Ik9LIiwpCisgICAgbG9nZ2VyLnN1aXRlX2VuZCgp
CisKKyAgICAjIGNoZWNrIG5vdGhpbmcgZ290IG91dHB1dCB0byBzdGRvdXQvc3RkZXJyCisgICAg
IyAobm90ZSB0aGF0IG1vemxvZyBvdXRwdXRzIGV4Y2VwdGlvbnMgZHVyaW5nIGhhbmRsaW5nIHRv
IHN0ZGVyciEpCisgICAgY2FwdHVyZWQgPSBjYXBmZC5yZWFkb3V0ZXJyKCkKKyAgICBhc3NlcnQg
Y2FwdHVyZWQub3V0ID09ICIiCisgICAgYXNzZXJ0IGNhcHR1cmVkLmVyciA9PSAiIgorCisgICAg
IyBjaGVjayB0aGUgYWN0dWFsIG91dHB1dCBvZiB0aGUgZm9ybWF0dGVyCisgICAgb3V0cHV0LnNl
ZWsoMCkKKyAgICBvdXRwdXRfb2JqID0ganNvbi5sb2FkKG91dHB1dCkKKyAgICB0ZXN0ID0gb3V0
cHV0X29ialsicmVzdWx0cyJdWzBdCisgICAgYXNzZXJ0IHRlc3RbInN0YXR1cyJdID09IHUiT0si
CisgICAgc3VidGVzdCA9IHRlc3RbInN1YnRlc3RzIl1bMF0KKyAgICBhc3NlcnQgc3VidGVzdFsi
ZXhwZWN0ZWQiXSA9PSB1IlBBU1MiCisgICAgYXNzZXJ0IHN1YnRlc3RbImtub3duX2ludGVybWl0
dGVudCJdID09IFt1J0ZBSUwnXQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3Rlc3RzL3Rlc3Rf
bWFuaWZlc3RleHBlY3RlZC5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci90ZXN0cy90ZXN0X21hbmlmZXN0ZXhw
ZWN0ZWQucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjUyNTkxNWQx
ODMyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3Rlc3RzL3Rlc3RfbWFuaWZlc3Rl
eHBlY3RlZC5weQpAQCAtMCwwICsxLDM3IEBACitpbXBvcnQgc3lzCitmcm9tIGlvIGltcG9ydCBC
eXRlc0lPCisKK2ltcG9ydCBweXRlc3QKKworZnJvbSAuLiBpbXBvcnQgbWFuaWZlc3RleHBlY3Rl
ZAorCisKK0BweXRlc3QubWFyay54ZmFpbChzeXMudmVyc2lvblswXSA9PSAiMyIsCisgICAgICAg
ICAgICAgICAgICAgcmVhc29uPSJieXRlcy90ZXh0IGNvbmZ1c2lvbiBpbiBweTMiKQorQHB5dGVz
dC5tYXJrLnBhcmFtZXRyaXplKCJmdXp6eSwgZXhwZWN0ZWQiLCBbCisgICAgKGIicmVmLmh0bWw6
MTsyMDAiLCBbKCJyZWYuaHRtbCIsICgoMSwgMSksICgyMDAsIDIwMCkpKV0pLAorICAgIChiInJl
Zi5odG1sOjAtMTsxMDAtMjAwIiwgWygicmVmLmh0bWwiLCAoKDAsIDEpLCAoMTAwLCAyMDApKSld
KSwKKyAgICAoYiIwLTE7MTAwLTIwMCIsIFsoTm9uZSwgKCgwLCAxKSwgKDEwMCwgMjAwKSkpXSks
CisgICAgKGIibWF4RGlmZmVyZW5jZT0xO3RvdGFsUGl4ZWxzPTIwMCIsIFsoTm9uZSwgKCgxLCAx
KSwgKDIwMCwgMjAwKSkpXSksCisgICAgKGIidG90YWxQaXhlbHM9MjAwO21heERpZmZlcmVuY2U9
MSIsIFsoTm9uZSwgKCgxLCAxKSwgKDIwMCwgMjAwKSkpXSksCisgICAgKGIidG90YWxQaXhlbHM9
MjAwOzEiLCBbKE5vbmUsICgoMSwgMSksICgyMDAsIDIwMCkpKV0pLAorICAgIChiIm1heERpZmZl
cmVuY2U9MTsyMDAiLCBbKE5vbmUsICgoMSwgMSksICgyMDAsIDIwMCkpKV0pLAorICAgIChiInRl
c3QuaHRtbD09cmVmLmh0bWw6bWF4RGlmZmVyZW5jZT0xO3RvdGFsUGl4ZWxzPTIwMCIsCisgICAg
IFsoKHUidGVzdC5odG1sIiwgdSJyZWYuaHRtbCIsICI9PSIpLCAoKDEsIDEpLCAoMjAwLCAyMDAp
KSldKSwKKyAgICAoYiJ0ZXN0Lmh0bWwhPXJlZi5odG1sOm1heERpZmZlcmVuY2U9MTt0b3RhbFBp
eGVscz0yMDAiLAorICAgICBbKCh1InRlc3QuaHRtbCIsIHUicmVmLmh0bWwiLCAiIT0iKSwgKCgx
LCAxKSwgKDIwMCwgMjAwKSkpXSksCisgICAgKGIiW3Rlc3QuaHRtbCE9cmVmLmh0bWw6bWF4RGlm
ZmVyZW5jZT0xO3RvdGFsUGl4ZWxzPTIwMCwgdGVzdC5odG1sPT1yZWYxLmh0bWw6bWF4RGlmZmVy
ZW5jZT01LTEwOzEwMF0iLAorICAgICBbKCh1InRlc3QuaHRtbCIsIHUicmVmLmh0bWwiLCAiIT0i
KSwgKCgxLCAxKSwgKDIwMCwgMjAwKSkpLAorICAgICAgKCh1InRlc3QuaHRtbCIsIHUicmVmMS5o
dG1sIiwgIj09IiksICgoNSwxMCksICgxMDAsIDEwMCkpKV0pLAorXSkKK2RlZiB0ZXN0X2Z1enp5
KGZ1enp5LCBleHBlY3RlZCk6CisgICAgZGF0YSA9ICIiIgorW3Rlc3QuaHRtbF0KKyAgZnV6enk6
ICVzIiIiICUgZnV6enkKKyAgICBmID0gQnl0ZXNJTyhkYXRhKQorICAgIG1hbmlmZXN0ID0gbWFu
aWZlc3RleHBlY3RlZC5zdGF0aWMuY29tcGlsZShmLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICB7fSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgZGF0YV9jbHNfZ2V0dGVyPW1hbmlmZXN0ZXhwZWN0ZWQuZGF0YV9j
bHNfZ2V0dGVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICB0ZXN0X3BhdGg9InRlc3QvdGVzdC5odG1sIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgdXJsX2Jhc2U9Ii8iKQorICAgIGFzc2VydCBtYW5pZmVzdC5n
ZXRfdGVzdCgiL3Rlc3QvdGVzdC5odG1sIikuZnV6enkgPT0gZXhwZWN0ZWQKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVu
bmVyL3dwdHJ1bm5lci90ZXN0cy90ZXN0X3Byb2R1Y3RzLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3Rlc3Rz
L3Rlc3RfcHJvZHVjdHMucHkKaW5kZXggNDQxYzgzZjczNWUuLjVkMmJjZjA3NWQwIDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dw
dHJ1bm5lci93cHRydW5uZXIvdGVzdHMvdGVzdF9wcm9kdWN0cy5weQorKysgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5u
ZXIvdGVzdHMvdGVzdF9wcm9kdWN0cy5weQpAQCAtMSwxNyArMSwxMSBAQAotaW1wb3J0IHN5cwot
CiBmcm9tIG9zLnBhdGggaW1wb3J0IGpvaW4sIGRpcm5hbWUKIAogaW1wb3J0IG1vY2sKIGltcG9y
dCBweXRlc3QKIAogZnJvbSAuYmFzZSBpbXBvcnQgYWxsX3Byb2R1Y3RzLCBhY3RpdmVfcHJvZHVj
dHMKLQotc3lzLnBhdGguaW5zZXJ0KDAsIGpvaW4oZGlybmFtZShfX2ZpbGVfXyksICIuLiIsICIu
LiIsICIuLiIsICIuLiIpKSAgIyByZXBvIHJvb3QKLWZyb20gdG9vbHMgaW1wb3J0IGxvY2FscGF0
aHMgICMgbm9xYTogZmxha2U4Ci0KLWZyb20gd3B0cnVubmVyIGltcG9ydCBlbnZpcm9ubWVudAot
ZnJvbSB3cHRydW5uZXIgaW1wb3J0IHByb2R1Y3RzCitmcm9tIC4uIGltcG9ydCBlbnZpcm9ubWVu
dAorZnJvbSAuLiBpbXBvcnQgcHJvZHVjdHMKIAogdGVzdF9wYXRocyA9IHsiLyI6IHsidGVzdHNf
cGF0aCI6IGpvaW4oZGlybmFtZShfX2ZpbGVfXyksICIuLiIsICIuLiIsICIuLiIsICIuLiIpfX0g
ICMgcmVwbyByb290CiBlbnZpcm9ubWVudC5kb19kZWxheWVkX2ltcG9ydHMoTm9uZSwgdGVzdF9w
YXRocykKQEAgLTQ2LDYgKzQwLDcgQEAgZGVmIHRlc3Rfc2VydmVyX3N0YXJ0X2NvbmZpZyhwcm9k
dWN0KToKIAogICAgIHdpdGggbW9jay5wYXRjaC5vYmplY3QoZW52aXJvbm1lbnQuc2VydmUsICJz
dGFydCIpIGFzIHN0YXJ0OgogICAgICAgICB3aXRoIGVudmlyb25tZW50LlRlc3RFbnZpcm9ubWVu
dCh0ZXN0X3BhdGhzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAx
LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBGYWxzZSwKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTm9uZSwKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgZW52X29wdGlvbnMsCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93
cHRydW5uZXIvdGVzdHMvdGVzdF9zdGFiaWxpdHkucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvdGVzdHMvdGVz
dF9zdGFiaWxpdHkucHkKaW5kZXggNzJjZmYyMTAxNmEuLjQ3NDA1NmRkZTZjIDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1
bm5lci93cHRydW5uZXIvdGVzdHMvdGVzdF9zdGFiaWxpdHkucHkKKysrIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVy
L3Rlc3RzL3Rlc3Rfc3RhYmlsaXR5LnB5CkBAIC0xLDEyICsxLDMxIEBACi1pbXBvcnQgc3lzCi1m
cm9tIG9zLnBhdGggaW1wb3J0IGRpcm5hbWUsIGpvaW4KK2Zyb20gLi4gaW1wb3J0IHN0YWJpbGl0
eQogCi1zeXMucGF0aC5pbnNlcnQoMCwgam9pbihkaXJuYW1lKF9fZmlsZV9fKSwgIi4uIiwgIi4u
IikpCi0KLWZyb20gd3B0cnVubmVyIGltcG9ydCBzdGFiaWxpdHkKIAogZGVmIHRlc3RfaXNfaW5j
b25zaXN0ZW50KCk6CiAgICAgYXNzZXJ0IHN0YWJpbGl0eS5pc19pbmNvbnNpc3RlbnQoeyJQQVNT
IjogMTB9LCAxMCkgaXMgRmFsc2UKICAgICBhc3NlcnQgc3RhYmlsaXR5LmlzX2luY29uc2lzdGVu
dCh7IlBBU1MiOiA5fSwgMTApIGlzIFRydWUKICAgICBhc3NlcnQgc3RhYmlsaXR5LmlzX2luY29u
c2lzdGVudCh7IlBBU1MiOiA5LCAiRkFJTCI6IDF9LCAxMCkgaXMgVHJ1ZQogICAgIGFzc2VydCBz
dGFiaWxpdHkuaXNfaW5jb25zaXN0ZW50KHsiUEFTUyI6IDgsICJGQUlMIjogMX0sIDEwKSBpcyBU
cnVlCisKKworZGVmIHRlc3RfZmluZF9zbG93X3N0YXR1cygpOgorICAgIGFzc2VydCBzdGFiaWxp
dHkuZmluZF9zbG93X3N0YXR1cyh7CisgICAgICAgICJsb25nZXN0X2R1cmF0aW9uIjogeyJUSU1F
T1VUIjogMTB9LAorICAgICAgICAidGltZW91dCI6IDEwfSkgaXMgTm9uZQorICAgIGFzc2VydCBz
dGFiaWxpdHkuZmluZF9zbG93X3N0YXR1cyh7CisgICAgICAgICJsb25nZXN0X2R1cmF0aW9uIjog
eyJDUkFTSCI6IDEwfSwKKyAgICAgICAgInRpbWVvdXQiOiAxMH0pIGlzIE5vbmUKKyAgICBhc3Nl
cnQgc3RhYmlsaXR5LmZpbmRfc2xvd19zdGF0dXMoeworICAgICAgICAibG9uZ2VzdF9kdXJhdGlv
biI6IHsiRVJST1IiOiAxMH0sCisgICAgICAgICJ0aW1lb3V0IjogMTB9KSBpcyBOb25lCisgICAg
YXNzZXJ0IHN0YWJpbGl0eS5maW5kX3Nsb3dfc3RhdHVzKHsKKyAgICAgICAgImxvbmdlc3RfZHVy
YXRpb24iOiB7IlBBU1MiOiAxfSwKKyAgICAgICAgInRpbWVvdXQiOiAxMH0pIGlzIE5vbmUKKyAg
ICBhc3NlcnQgc3RhYmlsaXR5LmZpbmRfc2xvd19zdGF0dXMoeworICAgICAgICAibG9uZ2VzdF9k
dXJhdGlvbiI6IHsiUEFTUyI6IDgxfSwKKyAgICAgICAgInRpbWVvdXQiOiAxMDB9KSA9PSAiUEFT
UyIKKyAgICBhc3NlcnQgc3RhYmlsaXR5LmZpbmRfc2xvd19zdGF0dXMoeworICAgICAgICAibG9u
Z2VzdF9kdXJhdGlvbiI6IHsiVElNRU9VVCI6IDEwLCAiRkFJTCI6IDgxfSwKKyAgICAgICAgInRp
bWVvdXQiOiAxMDB9KSA9PSAiRkFJTCIKKyAgICBhc3NlcnQgc3RhYmlsaXR5LmZpbmRfc2xvd19z
dGF0dXMoeworICAgICAgICAibG9uZ2VzdF9kdXJhdGlvbiI6IHsiU0tJUCI6IDB9fSkgaXMgTm9u
ZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3Rlc3RzL3Rlc3RfdGVzdGxvYWRlci5weSBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVy
L3dwdHJ1bm5lci90ZXN0cy90ZXN0X3Rlc3Rsb2FkZXIucHkKaW5kZXggNTU2YjJiN2YzZmEuLmU4
NTdjZDQzZGI2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvdGVzdHMvdGVzdF90ZXN0bG9hZGVy
LnB5CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvd3B0cnVubmVyL3dwdHJ1bm5lci90ZXN0cy90ZXN0X3Rlc3Rsb2FkZXIucHkKQEAgLTEsMTQg
KzEsMTMgQEAKIGZyb20gX19mdXR1cmVfXyBpbXBvcnQgdW5pY29kZV9saXRlcmFscwogCi1pbXBv
cnQgb3MKIGltcG9ydCBzeXMKIGltcG9ydCB0ZW1wZmlsZQogCi1zeXMucGF0aC5pbnNlcnQoMCwg
b3MucGF0aC5qb2luKG9zLnBhdGguZGlybmFtZShfX2ZpbGVfXyksICIuLiIsICIuLiIpKQoraW1w
b3J0IHB5dGVzdAogCiBmcm9tIG1vemxvZyBpbXBvcnQgc3RydWN0dXJlZAotZnJvbSB3cHRydW5u
ZXIudGVzdGxvYWRlciBpbXBvcnQgVGVzdEZpbHRlciBhcyBGaWx0ZXIKLWZyb20gLnRlc3RfY2h1
bmtlciBpbXBvcnQgbWFrZV9tb2NrX21hbmlmZXN0Citmcm9tIC4udGVzdGxvYWRlciBpbXBvcnQg
VGVzdEZpbHRlciBhcyBGaWx0ZXIKK2Zyb20gLnRlc3Rfd3B0dGVzdCBpbXBvcnQgbWFrZV9tb2Nr
X21hbmlmZXN0CiAKIHN0cnVjdHVyZWQuc2V0X2RlZmF1bHRfbG9nZ2VyKHN0cnVjdHVyZWQuc3Ry
dWN0dXJlZGxvZy5TdHJ1Y3R1cmVkTG9nZ2VyKCJUZXN0TG9hZGVyIikpCiAKQEAgLTE5LDYgKzE4
LDEwIEBAIHNraXA6IHRydWUKICIiIgogCiAKK0BweXRlc3QubWFyay54ZmFpbChzeXMucGxhdGZv
cm0gPT0gIndpbjMyIiwKKyAgICAgICAgICAgICAgICAgICByZWFzb249Ik5hbWVkVGVtcG9yYXJ5
RmlsZSBjYW5ub3QgYmUgcmVvcGVuZWQgb24gV2luMzIiKQorQHB5dGVzdC5tYXJrLnhmYWlsKHN5
cy52ZXJzaW9uWzBdID09ICIzIiwKKyAgICAgICAgICAgICAgICAgICByZWFzb249IndwdG1hbmlm
ZXN0LnBhcnNlciBkb2Vzbid0IHN1cHBvcnQgcHkzIikKIGRlZiB0ZXN0X2ZpbHRlcl91bmljb2Rl
KCk6CiAgICAgdGVzdHMgPSBtYWtlX21vY2tfbWFuaWZlc3QoKCJ0ZXN0IiwgImEiLCAxMCksICgi
dGVzdCIsICJhL2IiLCAxMCksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCJ0ZXN0
IiwgImMiLCAxMCkpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvdGVzdHMvdGVzdF91cGRhdGUu
cHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dw
dHJ1bm5lci93cHRydW5uZXIvdGVzdHMvdGVzdF91cGRhdGUucHkKaW5kZXggNWM2NTRjOTlhNDgu
LjVkOTAwYTNkNmM5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvdGVzdHMvdGVzdF91cGRhdGUu
cHkKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy93cHRydW5uZXIvd3B0cnVubmVyL3Rlc3RzL3Rlc3RfdXBkYXRlLnB5CkBAIC0xLDI4ICsxLDI4
IEBACiBpbXBvcnQganNvbgogaW1wb3J0IG1vY2sKIGltcG9ydCBvcworaW1wb3J0IHB5dGVzdAog
aW1wb3J0IHN5cwogZnJvbSBpbyBpbXBvcnQgQnl0ZXNJTwogCiBmcm9tIC4uIGltcG9ydCBtZXRh
ZGF0YSwgbWFuaWZlc3R1cGRhdGUKK2Zyb20gLi51cGRhdGUudXBkYXRlIGltcG9ydCBXUFRVcGRh
dGUKK2Zyb20gLi51cGRhdGUuYmFzZSBpbXBvcnQgU3RlcFJ1bm5lciwgU3RlcAogZnJvbSBtb3ps
b2cgaW1wb3J0IHN0cnVjdHVyZWRsb2csIGhhbmRsZXJzLCBmb3JtYXR0ZXJzCiAKLXN5cy5wYXRo
Lmluc2VydCgwLCBvcy5wYXRoLmpvaW4ob3MucGF0aC5kaXJuYW1lKF9fZmlsZV9fKSwgb3MucGFy
ZGlyLCBvcy5wYXJkaXIsIG9zLnBhcmRpcikpCitoZXJlID0gb3MucGF0aC5kaXJuYW1lKF9fZmls
ZV9fKQorc3lzLnBhdGguaW5zZXJ0KDAsIG9zLnBhdGguam9pbihoZXJlLCBvcy5wYXJkaXIsIG9z
LnBhcmRpciwgb3MucGFyZGlyKSkKIGZyb20gbWFuaWZlc3QgaW1wb3J0IG1hbmlmZXN0LCBpdGVt
IGFzIG1hbmlmZXN0X2l0ZW0KIAogCi1kZWYgcmVsX3BhdGhfdG9fdXJsKHJlbF9wYXRoLCB1cmxf
YmFzZT0iLyIpOgorZGVmIHJlbF9wYXRoX3RvX3Rlc3RfdXJsKHJlbF9wYXRoKToKICAgICBhc3Nl
cnQgbm90IG9zLnBhdGguaXNhYnMocmVsX3BhdGgpCi0gICAgaWYgdXJsX2Jhc2VbMF0gIT0gIi8i
OgotICAgICAgICB1cmxfYmFzZSA9ICIvIiArIHVybF9iYXNlCi0gICAgaWYgdXJsX2Jhc2VbLTFd
ICE9ICIvIjoKLSAgICAgICAgdXJsX2Jhc2UgKz0gIi8iCi0gICAgcmV0dXJuIHVybF9iYXNlICsg
cmVsX3BhdGgucmVwbGFjZShvcy5zZXAsICIvIikKKyAgICByZXR1cm4gcmVsX3BhdGgucmVwbGFj
ZShvcy5zZXAsICIvIikKIAogCiBkZWYgU291cmNlRmlsZVdpdGhUZXN0KHBhdGgsIGhhc2gsIGNs
cywgKmFyZ3MpOgogICAgIHMgPSBtb2NrLk1vY2socmVsX3BhdGg9cGF0aCwgaGFzaD1oYXNoKQot
ICAgIHRlc3QgPSBjbHMocywgcmVsX3BhdGhfdG9fdXJsKHBhdGgpLCAqYXJncykKKyAgICB0ZXN0
ID0gY2xzKCIvZm9vYmFyIiwgcGF0aCwgIi8iLCByZWxfcGF0aF90b190ZXN0X3VybChwYXRoKSwg
KmFyZ3MpCiAgICAgcy5tYW5pZmVzdF9pdGVtcyA9IG1vY2suTW9jayhyZXR1cm5fdmFsdWU9KGNs
cy5pdGVtX3R5cGUsIFt0ZXN0XSkpCiAgICAgcmV0dXJuIHMKIApAQCAtMzEsNDIgKzMxLDY4IEBA
IGl0ZW1fY2xhc3NlcyA9IHsidGVzdGhhcm5lc3MiOiBtYW5pZmVzdF9pdGVtLlRlc3RoYXJuZXNz
VGVzdCwKICAgICAgICAgICAgICAgICAicmVmdGVzdCI6IG1hbmlmZXN0X2l0ZW0uUmVmVGVzdCwK
ICAgICAgICAgICAgICAgICAicmVmdGVzdF9ub2RlIjogbWFuaWZlc3RfaXRlbS5SZWZUZXN0Tm9k
ZSwKICAgICAgICAgICAgICAgICAibWFudWFsIjogbWFuaWZlc3RfaXRlbS5NYW51YWxUZXN0LAot
ICAgICAgICAgICAgICAgICJzdHViIjogbWFuaWZlc3RfaXRlbS5TdHViLAotICAgICAgICAgICAg
ICAgICJ3ZHNwZWMiOiBtYW5pZmVzdF9pdGVtLldlYmRyaXZlclNwZWNUZXN0LAorICAgICAgICAg
ICAgICAgICJ3ZHNwZWMiOiBtYW5pZmVzdF9pdGVtLldlYkRyaXZlclNwZWNUZXN0LAogICAgICAg
ICAgICAgICAgICJjb25mb3JtYW5jZWNoZWNrZXIiOiBtYW5pZmVzdF9pdGVtLkNvbmZvcm1hbmNl
Q2hlY2tlclRlc3QsCiAgICAgICAgICAgICAgICAgInZpc3VhbCI6IG1hbmlmZXN0X2l0ZW0uVmlz
dWFsVGVzdCwKICAgICAgICAgICAgICAgICAic3VwcG9ydCI6IG1hbmlmZXN0X2l0ZW0uU3VwcG9y
dEZpbGV9CiAKIAotZGVmIHVwZGF0ZSh0ZXN0cywgKmxvZ3MpOgorZGVmYXVsdF9ydW5faW5mbyA9
IHsiZGVidWciOiBGYWxzZSwgIm9zIjogImxpbnV4IiwgInZlcnNpb24iOiAiMTguMDQiLCAicHJv
Y2Vzc29yIjogIng4Nl82NCIsICJiaXRzIjogNjR9Cit0ZXN0X2lkID0gIi9wYXRoL3RvL3Rlc3Qu
aHRtIgorZGlyX2lkID0gInBhdGgvdG8vX19kaXJfXyIKKworCitkZWYgcmVzZXRfZ2xvYmFscygp
OgorICAgIG1ldGFkYXRhLnByb3BfaW50ZXJuLmNsZWFyKCkKKyAgICBtZXRhZGF0YS5ydW5faW5m
b19pbnRlcm4uY2xlYXIoKQorICAgIG1ldGFkYXRhLnN0YXR1c19pbnRlcm4uY2xlYXIoKQorCisK
K2RlZiBnZXRfcnVuX2luZm8ob3ZlcnJpZGVzKToKKyAgICBydW5faW5mbyA9IGRlZmF1bHRfcnVu
X2luZm8uY29weSgpCisgICAgcnVuX2luZm8udXBkYXRlKG92ZXJyaWRlcykKKyAgICByZXR1cm4g
cnVuX2luZm8KKworCitkZWYgdXBkYXRlKHRlc3RzLCAqbG9ncywgKiprd2FyZ3MpOgorICAgIGZ1
bGxfdXBkYXRlID0ga3dhcmdzLnBvcCgiZnVsbF91cGRhdGUiLCBGYWxzZSkKKyAgICBkaXNhYmxl
X2ludGVybWl0dGVudCA9IGt3YXJncy5wb3AoImRpc2FibGVfaW50ZXJtaXR0ZW50IiwgRmFsc2Up
CisgICAgdXBkYXRlX2ludGVybWl0dGVudCA9IGt3YXJncy5wb3AoInVwZGF0ZV9pbnRlcm1pdHRl
bnQiLCBGYWxzZSkKKyAgICByZW1vdmVfaW50ZXJtaXR0ZW50ID0ga3dhcmdzLnBvcCgicmVtb3Zl
X2ludGVybWl0dGVudCIsIEZhbHNlKQorICAgIGFzc2VydCBub3Qga3dhcmdzCiAgICAgaWRfdGVz
dF9tYXAsIHVwZGF0ZXIgPSBjcmVhdGVfdXBkYXRlcih0ZXN0cykKKwogICAgIGZvciBsb2cgaW4g
bG9nczoKICAgICAgICAgbG9nID0gY3JlYXRlX2xvZyhsb2cpCiAgICAgICAgIHVwZGF0ZXIudXBk
YXRlX2Zyb21fbG9nKGxvZykKIAorICAgIHVwZGF0ZV9wcm9wZXJ0aWVzID0gKFsiZGVidWciLCAi
b3MiLCAidmVyc2lvbiIsICJwcm9jZXNzb3IiXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICB7
Im9zIjogWyJ2ZXJzaW9uIl0sICJwcm9jZXNzb3IiOiAiYml0cyJ9KQorCisgICAgZXhwZWN0ZWRf
ZGF0YSA9IHt9CisgICAgbWV0YWRhdGEubG9hZF9leHBlY3RlZCA9IGxhbWJkYSBfLCBfXywgdGVz
dF9wYXRoLCAqYXJnczogZXhwZWN0ZWRfZGF0YS5nZXQodGVzdF9wYXRoKQorICAgIGZvciB0ZXN0
X3BhdGgsIHRlc3RfaWRzLCB0ZXN0X3R5cGUsIG1hbmlmZXN0X3N0ciBpbiB0ZXN0czoKKyAgICAg
ICAgZXhwZWN0ZWRfZGF0YVt0ZXN0X3BhdGhdID0gbWFuaWZlc3R1cGRhdGUuY29tcGlsZShCeXRl
c0lPKG1hbmlmZXN0X3N0ciksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgdGVzdF9wYXRoLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIvIiwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1cGRhdGVfcHJvcGVydGll
cywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICB1cGRhdGVfaW50ZXJtaXR0ZW50LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlbW92ZV9pbnRlcm1pdHRlbnQpCisKICAgICBy
ZXR1cm4gbGlzdChtZXRhZGF0YS51cGRhdGVfcmVzdWx0cyhpZF90ZXN0X21hcCwKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbImRlYnVnIiwgIm9zIiwgInZlcnNpb24i
LCAicHJvY2Vzc29yIiwgImJpdHMiXSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBbImRlYnVnIl0sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgRmFsc2UpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVwZGF0
ZV9wcm9wZXJ0aWVzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZ1
bGxfdXBkYXRlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc2Fi
bGVfaW50ZXJtaXR0ZW50LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHVwZGF0ZV9pbnRlcm1pdHRlbnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgcmVtb3ZlX2ludGVybWl0dGVudCkpCiAKIAogZGVmIGNyZWF0ZV91cGRhdGVyKHRlc3Rz
LCB1cmxfYmFzZT0iLyIsICoqa3dhcmdzKToKICAgICBpZF90ZXN0X21hcCA9IHt9CiAgICAgbSA9
IGNyZWF0ZV90ZXN0X21hbmlmZXN0KHRlc3RzLCB1cmxfYmFzZSkKLSAgICBleHBlY3RlZF9kYXRh
ID0ge30KLSAgICBtZXRhZGF0YS5sb2FkX2V4cGVjdGVkID0gbGFtYmRhIF8sIF9fLCB0ZXN0X3Bh
dGgsICphcmdzOiBleHBlY3RlZF9kYXRhW3Rlc3RfcGF0aF0KLQotICAgIGZvciB0ZXN0X3BhdGgs
IHRlc3RfaWRzLCB0ZXN0X3R5cGUsIG1hbmlmZXN0X3N0ciBpbiB0ZXN0czoKLSAgICAgICAgdGVz
dHMgPSBsaXN0KG0uaXRlcnBhdGgodGVzdF9wYXRoKSkKLSAgICAgICAgaWYgaXNpbnN0YW5jZSh0
ZXN0X2lkcywgKHN0ciwgdW5pY29kZSkpOgotICAgICAgICAgICAgdGVzdF9pZHMgPSBbdGVzdF9p
ZHNdCi0gICAgICAgIHRlc3RfZGF0YSA9IG1ldGFkYXRhLlRlc3RGaWxlRGF0YSgiLyIsICJ0ZXN0
aGFybmVzcyIsIE5vbmUsIHRlc3RfcGF0aCwgdGVzdHMpCi0gICAgICAgIGV4cGVjdGVkX2RhdGFb
dGVzdF9wYXRoXSA9IG1hbmlmZXN0dXBkYXRlLmNvbXBpbGUoQnl0ZXNJTyhtYW5pZmVzdF9zdHIp
LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHRlc3RfcGF0aCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICB1cmxfYmFzZSkKIAotICAgICAgICBmb3IgdGVzdF9pZCBpbiB0ZXN0
X2lkczoKLSAgICAgICAgICAgIGlkX3Rlc3RfbWFwW3Rlc3RfaWRdID0gdGVzdF9kYXRhCisgICAg
cmVzZXRfZ2xvYmFscygpCisgICAgaWRfdGVzdF9tYXAgPSBtZXRhZGF0YS5jcmVhdGVfdGVzdF90
cmVlKE5vbmUsIG0pCiAKICAgICByZXR1cm4gaWRfdGVzdF9tYXAsIG1ldGFkYXRhLkV4cGVjdGVk
VXBkYXRlcihpZF90ZXN0X21hcCwgKiprd2FyZ3MpCiAKQEAgLTg5LDcgKzExNSwxMCBAQCBkZWYg
Y3JlYXRlX2xvZyhlbnRyaWVzKToKIAogCiBkZWYgc3VpdGVfbG9nKGVudHJpZXMsIHJ1bl9pbmZv
PU5vbmUpOgotICAgIHJldHVybiAoWygic3VpdGVfc3RhcnQiLCB7InRlc3RzIjogW10sICJydW5f
aW5mbyI6IHJ1bl9pbmZvIG9yIHt9fSldICsKKyAgICBfcnVuX2luZm8gPSBkZWZhdWx0X3J1bl9p
bmZvLmNvcHkoKQorICAgIGlmIHJ1bl9pbmZvOgorICAgICAgICBfcnVuX2luZm8udXBkYXRlKHJ1
bl9pbmZvKQorICAgIHJldHVybiAoWygic3VpdGVfc3RhcnQiLCB7InRlc3RzIjogW10sICJydW5f
aW5mbyI6IF9ydW5faW5mb30pXSArCiAgICAgICAgICAgICBlbnRyaWVzICsKICAgICAgICAgICAg
IFsoInN1aXRlX2VuZCIsIHt9KV0pCiAKQEAgLTk4LDE0ICsxMjcsMTYgQEAgZGVmIGNyZWF0ZV90
ZXN0X21hbmlmZXN0KHRlc3RzLCB1cmxfYmFzZT0iLyIpOgogICAgIHNvdXJjZV9maWxlcyA9IFtd
CiAgICAgZm9yIGksICh0ZXN0LCBfLCB0ZXN0X3R5cGUsIF8pIGluIGVudW1lcmF0ZSh0ZXN0cyk6
CiAgICAgICAgIGlmIHRlc3RfdHlwZToKLSAgICAgICAgICAgIHNvdXJjZV9maWxlcy5hcHBlbmQo
U291cmNlRmlsZVdpdGhUZXN0KHRlc3QsIHN0cihpKSAqIDQwLCBpdGVtX2NsYXNzZXNbdGVzdF90
eXBlXSkpCisgICAgICAgICAgICBzb3VyY2VfZmlsZXMuYXBwZW5kKChTb3VyY2VGaWxlV2l0aFRl
c3QodGVzdCwgc3RyKGkpICogNDAsIGl0ZW1fY2xhc3Nlc1t0ZXN0X3R5cGVdKSwgVHJ1ZSkpCiAg
ICAgbSA9IG1hbmlmZXN0Lk1hbmlmZXN0KCkKICAgICBtLnVwZGF0ZShzb3VyY2VfZmlsZXMpCiAg
ICAgcmV0dXJuIG0KIAogCitAcHl0ZXN0Lm1hcmsueGZhaWwoc3lzLnZlcnNpb25bMF0gPT0gIjMi
LAorICAgICAgICAgICAgICAgICAgIHJlYXNvbj0ibWV0YWRhdGEgZG9lc24ndCBzdXBwb3J0IHB5
MyIpCiBkZWYgdGVzdF91cGRhdGVfMCgpOgotICAgIHRlc3RzID0gWygicGF0aC90by90ZXN0Lmh0
bSIsIFsiL3BhdGgvdG8vdGVzdC5odG0iXSwgInRlc3RoYXJuZXNzIiwKKyAgICB0ZXN0cyA9IFso
InBhdGgvdG8vdGVzdC5odG0iLCBbdGVzdF9pZF0sICJ0ZXN0aGFybmVzcyIsCiAgICAgICAgICAg
ICAgICIiIlt0ZXN0Lmh0bV0KICAgW3Rlc3QxXQogICAgIGV4cGVjdGVkOiBGQUlMIiIiKV0KQEAg
LTExNSwzOSArMTQ2LDY3MiBAQCBkZWYgdGVzdF91cGRhdGVfMCgpOgogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAic3VidGVzdCI6ICJ0ZXN0MSIsCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICJzdGF0dXMiOiAiUEFTUyIsCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICJleHBlY3RlZCI6ICJGQUlMIn0pLAotICAgICAgICAg
ICAgICAgICAgICAgKCJ0ZXN0X2VuZCIsIHsidGVzdCI6ICIvcGF0aC90by90ZXN0Lmh0bSIsCisg
ICAgICAgICAgICAgICAgICAgICAoInRlc3RfZW5kIiwgeyJ0ZXN0IjogIi9wYXRoL3RvL3Rlc3Qu
aHRtIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInN0YXR1cyI6ICJPSyJ9
KV0pCisKKyAgICB1cGRhdGVkID0gdXBkYXRlKHRlc3RzLCBsb2cpCisKKyAgICBhc3NlcnQgbGVu
KHVwZGF0ZWQpID09IDEKKyAgICBhc3NlcnQgdXBkYXRlZFswXVsxXS5pc19lbXB0eQorCisKK0Bw
eXRlc3QubWFyay54ZmFpbChzeXMudmVyc2lvblswXSA9PSAiMyIsCisgICAgICAgICAgICAgICAg
ICAgcmVhc29uPSJtZXRhZGF0YSBkb2Vzbid0IHN1cHBvcnQgcHkzIikKK2RlZiB0ZXN0X3VwZGF0
ZV8xKCk6CisgICAgdGVzdHMgPSBbKCJwYXRoL3RvL3Rlc3QuaHRtIiwgW3Rlc3RfaWRdLCAidGVz
dGhhcm5lc3MiLAorICAgICAgICAgICAgICAiIiJbdGVzdC5odG1dCisgIFt0ZXN0MV0KKyAgICBl
eHBlY3RlZDogRVJST1IiIiIpXQorCisgICAgbG9nID0gc3VpdGVfbG9nKFsoInRlc3Rfc3RhcnQi
LCB7InRlc3QiOiB0ZXN0X2lkfSksCisgICAgICAgICAgICAgICAgICAgICAoInRlc3Rfc3RhdHVz
IiwgeyJ0ZXN0IjogdGVzdF9pZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgInN1YnRlc3QiOiAidGVzdDEiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAic3RhdHVzIjogIkZBSUwiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAiZXhwZWN0ZWQiOiAiRVJST1IifSksCisgICAgICAgICAgICAgICAgICAgICAoInRlc3Rf
ZW5kIiwgeyJ0ZXN0IjogdGVzdF9pZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgInN0YXR1cyI6ICJPSyJ9KV0pCisKKyAgICB1cGRhdGVkID0gdXBkYXRlKHRlc3RzLCBsb2cp
CisKKyAgICBuZXdfbWFuaWZlc3QgPSB1cGRhdGVkWzBdWzFdCisgICAgYXNzZXJ0IG5vdCBuZXdf
bWFuaWZlc3QuaXNfZW1wdHkKKyAgICBhc3NlcnQgbmV3X21hbmlmZXN0LmdldF90ZXN0KHRlc3Rf
aWQpLmNoaWxkcmVuWzBdLmdldCgiZXhwZWN0ZWQiLCBkZWZhdWx0X3J1bl9pbmZvKSA9PSAiRkFJ
TCIKKworCitAcHl0ZXN0Lm1hcmsueGZhaWwoc3lzLnZlcnNpb25bMF0gPT0gIjMiLAorICAgICAg
ICAgICAgICAgICAgIHJlYXNvbj0ibWV0YWRhdGEgZG9lc24ndCBzdXBwb3J0IHB5MyIpCitkZWYg
dGVzdF91cGRhdGVfa25vd25faW50ZXJtaXR0ZW50XzEoKToKKyAgICB0ZXN0cyA9IFsoInBhdGgv
dG8vdGVzdC5odG0iLCBbdGVzdF9pZF0sICJ0ZXN0aGFybmVzcyIsCisgICAgICAgICAgICAgICIi
Ilt0ZXN0Lmh0bV0KKyAgW3Rlc3QxXQorICAgIGV4cGVjdGVkOiBQQVNTIiIiKV0KKworICAgIGxv
Z18wID0gc3VpdGVfbG9nKFsoInRlc3Rfc3RhcnQiLCB7InRlc3QiOiB0ZXN0X2lkfSksCisgICAg
ICAgICAgICAgICAgICAgICAoInRlc3Rfc3RhdHVzIiwgeyJ0ZXN0IjogdGVzdF9pZCwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInN1YnRlc3QiOiAidGVzdDEiLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAic3RhdHVzIjogIkZBSUwiLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiZXhwZWN0ZWQiOiAiUEFTUyJ9KSwK
KyAgICAgICAgICAgICAgICAgICAgICgidGVzdF9lbmQiLCB7InRlc3QiOiB0ZXN0X2lkLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAic3RhdHVzIjogIk9LIn0pXSkKKworICAg
IGxvZ18xID0gc3VpdGVfbG9nKFsoInRlc3Rfc3RhcnQiLCB7InRlc3QiOiB0ZXN0X2lkfSksCisg
ICAgICAgICAgICAgICAgICAgICAoInRlc3Rfc3RhdHVzIiwgeyJ0ZXN0IjogdGVzdF9pZCwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInN1YnRlc3QiOiAidGVzdDEiLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAic3RhdHVzIjogIlBBU1MiLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiZXhwZWN0ZWQiOiAiUEFTUyJ9
KSwKKyAgICAgICAgICAgICAgICAgICAgICgidGVzdF9lbmQiLCB7InRlc3QiOiB0ZXN0X2lkLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAic3RhdHVzIjogIk9LIn0pXSkKKwor
ICAgIGxvZ18yID0gc3VpdGVfbG9nKFsoInRlc3Rfc3RhcnQiLCB7InRlc3QiOiB0ZXN0X2lkfSks
CisgICAgICAgICAgICAgICAgICAgICAoInRlc3Rfc3RhdHVzIiwgeyJ0ZXN0IjogdGVzdF9pZCwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInN1YnRlc3QiOiAidGVzdDEi
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAic3RhdHVzIjogIlBBU1Mi
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiZXhwZWN0ZWQiOiAiUEFT
UyJ9KSwKKyAgICAgICAgICAgICAgICAgICAgICgidGVzdF9lbmQiLCB7InRlc3QiOiB0ZXN0X2lk
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAic3RhdHVzIjogIk9LIn0pXSkK
KworICAgIHVwZGF0ZWQgPSB1cGRhdGUodGVzdHMsIGxvZ18wLCBsb2dfMSwgbG9nXzIsIHVwZGF0
ZV9pbnRlcm1pdHRlbnQ9VHJ1ZSkKKworICAgIG5ld19tYW5pZmVzdCA9IHVwZGF0ZWRbMF1bMV0K
KworICAgIGFzc2VydCBub3QgbmV3X21hbmlmZXN0LmlzX2VtcHR5CisgICAgYXNzZXJ0IG5ld19t
YW5pZmVzdC5nZXRfdGVzdCh0ZXN0X2lkKS5jaGlsZHJlblswXS5nZXQoCisgICAgICAgICJleHBl
Y3RlZCIsIGRlZmF1bHRfcnVuX2luZm8pID09IFsiUEFTUyIsICJGQUlMIl0KKworCitAcHl0ZXN0
Lm1hcmsueGZhaWwoc3lzLnZlcnNpb25bMF0gPT0gIjMiLAorICAgICAgICAgICAgICAgICAgIHJl
YXNvbj0ibWV0YWRhdGEgZG9lc24ndCBzdXBwb3J0IHB5MyIpCitkZWYgdGVzdF91cGRhdGVfa25v
d25faW50ZXJtaXR0ZW50XzIoKToKKyAgICB0ZXN0cyA9IFsoInBhdGgvdG8vdGVzdC5odG0iLCBb
dGVzdF9pZF0sICJ0ZXN0aGFybmVzcyIsCisgICAgICAgICAgICAgICIiIlt0ZXN0Lmh0bV0KKyAg
W3Rlc3QxXQorICAgIGV4cGVjdGVkOiBQQVNTIiIiKV0KKworICAgIGxvZ18wID0gc3VpdGVfbG9n
KFsoInRlc3Rfc3RhcnQiLCB7InRlc3QiOiB0ZXN0X2lkfSksCisgICAgICAgICAgICAgICAgICAg
ICAoInRlc3Rfc3RhdHVzIiwgeyJ0ZXN0IjogdGVzdF9pZCwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgInN1YnRlc3QiOiAidGVzdDEiLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAic3RhdHVzIjogIkZBSUwiLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAiZXhwZWN0ZWQiOiAiUEFTUyJ9KSwKKyAgICAgICAgICAgICAg
ICAgICAgICgidGVzdF9lbmQiLCB7InRlc3QiOiB0ZXN0X2lkLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAic3RhdHVzIjogIk9LIn0pXSkKKworICAgIHVwZGF0ZWQgPSB1cGRh
dGUodGVzdHMsIGxvZ18wLCB1cGRhdGVfaW50ZXJtaXR0ZW50PVRydWUpCisKKyAgICBuZXdfbWFu
aWZlc3QgPSB1cGRhdGVkWzBdWzFdCisKKyAgICBhc3NlcnQgbm90IG5ld19tYW5pZmVzdC5pc19l
bXB0eQorICAgIGFzc2VydCBuZXdfbWFuaWZlc3QuZ2V0X3Rlc3QodGVzdF9pZCkuY2hpbGRyZW5b
MF0uZ2V0KAorICAgICAgICAiZXhwZWN0ZWQiLCBkZWZhdWx0X3J1bl9pbmZvKSA9PSAiRkFJTCIK
KworCitAcHl0ZXN0Lm1hcmsueGZhaWwoc3lzLnZlcnNpb25bMF0gPT0gIjMiLAorICAgICAgICAg
ICAgICAgICAgIHJlYXNvbj0ibWV0YWRhdGEgZG9lc24ndCBzdXBwb3J0IHB5MyIpCitkZWYgdGVz
dF91cGRhdGVfZXhpc3Rpbmdfa25vd25faW50ZXJtaXR0ZW50KCk6CisgICAgdGVzdHMgPSBbKCJw
YXRoL3RvL3Rlc3QuaHRtIiwgW3Rlc3RfaWRdLCAidGVzdGhhcm5lc3MiLAorICAgICAgICAgICAg
ICAiIiJbdGVzdC5odG1dCisgIFt0ZXN0MV0KKyAgICBleHBlY3RlZDogW1BBU1MsIEZBSUxdIiIi
KV0KKworICAgIGxvZ18wID0gc3VpdGVfbG9nKFsoInRlc3Rfc3RhcnQiLCB7InRlc3QiOiB0ZXN0
X2lkfSksCisgICAgICAgICAgICAgICAgICAgICAoInRlc3Rfc3RhdHVzIiwgeyJ0ZXN0IjogdGVz
dF9pZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInN1YnRlc3QiOiAi
dGVzdDEiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAic3RhdHVzIjog
IkVSUk9SIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImV4cGVjdGVk
IjogIlBBU1MiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAia25vd25f
aW50ZXJtaXR0ZW50IjogWyJGQUlMIl19KSwKKyAgICAgICAgICAgICAgICAgICAgICgidGVzdF9l
bmQiLCB7InRlc3QiOiB0ZXN0X2lkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAic3RhdHVzIjogIk9LIn0pXSkKKworICAgIGxvZ18xID0gc3VpdGVfbG9nKFsoInRlc3Rfc3Rh
cnQiLCB7InRlc3QiOiB0ZXN0X2lkfSksCisgICAgICAgICAgICAgICAgICAgICAoInRlc3Rfc3Rh
dHVzIiwgeyJ0ZXN0IjogdGVzdF9pZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgInN1YnRlc3QiOiAidGVzdDEiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAic3RhdHVzIjogIlBBU1MiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAiZXhwZWN0ZWQiOiAiUEFTUyIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICJrbm93bl9pbnRlcm1pdHRlbnQiOiBbIkZBSUwiXX0pLAorICAgICAgICAgICAg
ICAgICAgICAgKCJ0ZXN0X2VuZCIsIHsidGVzdCI6IHRlc3RfaWQsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICJzdGF0dXMiOiAiT0sifSldKQorCisgICAgbG9nXzIgPSBzdWl0
ZV9sb2coWygidGVzdF9zdGFydCIsIHsidGVzdCI6IHRlc3RfaWR9KSwKKyAgICAgICAgICAgICAg
ICAgICAgICgidGVzdF9zdGF0dXMiLCB7InRlc3QiOiB0ZXN0X2lkLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAic3VidGVzdCI6ICJ0ZXN0MSIsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICJzdGF0dXMiOiAiUEFTUyIsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICJleHBlY3RlZCI6ICJQQVNTIiwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgImtub3duX2ludGVybWl0dGVudCI6IFsiRkFJTCJd
fSksCisgICAgICAgICAgICAgICAgICAgICAoInRlc3RfZW5kIiwgeyJ0ZXN0IjogdGVzdF9pZCwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInN0YXR1cyI6ICJPSyJ9KV0pCisK
KyAgICB1cGRhdGVkID0gdXBkYXRlKHRlc3RzLCBsb2dfMCwgbG9nXzEsIGxvZ18yLCB1cGRhdGVf
aW50ZXJtaXR0ZW50PVRydWUpCisKKyAgICBuZXdfbWFuaWZlc3QgPSB1cGRhdGVkWzBdWzFdCisg
ICAgYXNzZXJ0IG5vdCBuZXdfbWFuaWZlc3QuaXNfZW1wdHkKKyAgICBhc3NlcnQgbmV3X21hbmlm
ZXN0LmdldF90ZXN0KHRlc3RfaWQpLmNoaWxkcmVuWzBdLmdldCgKKyAgICAgICAgImV4cGVjdGVk
IiwgZGVmYXVsdF9ydW5faW5mbykgPT0gWyJQQVNTIiwgIkVSUk9SIiwgIkZBSUwiXQorCisKK0Bw
eXRlc3QubWFyay54ZmFpbChzeXMudmVyc2lvblswXSA9PSAiMyIsCisgICAgICAgICAgICAgICAg
ICAgcmVhc29uPSJtZXRhZGF0YSBkb2Vzbid0IHN1cHBvcnQgcHkzIikKK2RlZiB0ZXN0X3VwZGF0
ZV9yZW1vdmVfcHJldmlvdXNfaW50ZXJtaXR0ZW50KCk6CisgICAgdGVzdHMgPSBbKCJwYXRoL3Rv
L3Rlc3QuaHRtIiwgW3Rlc3RfaWRdLCAidGVzdGhhcm5lc3MiLAorICAgICAgICAgICAgICAiIiJb
dGVzdC5odG1dCisgIFt0ZXN0MV0KKyAgICBleHBlY3RlZDogW1BBU1MsIEZBSUxdIiIiKV0KKwor
ICAgIGxvZ18wID0gc3VpdGVfbG9nKFsoInRlc3Rfc3RhcnQiLCB7InRlc3QiOiB0ZXN0X2lkfSks
CisgICAgICAgICAgICAgICAgICAgICAoInRlc3Rfc3RhdHVzIiwgeyJ0ZXN0IjogdGVzdF9pZCwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInN1YnRlc3QiOiAidGVzdDEi
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAic3RhdHVzIjogIkVSUk9S
IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImV4cGVjdGVkIjogIlBB
U1MiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAia25vd25faW50ZXJt
aXR0ZW50IjogWyJGQUlMIl19KSwKKyAgICAgICAgICAgICAgICAgICAgICgidGVzdF9lbmQiLCB7
InRlc3QiOiB0ZXN0X2lkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAic3Rh
dHVzIjogIk9LIn0pXSkKKworICAgIGxvZ18xID0gc3VpdGVfbG9nKFsoInRlc3Rfc3RhcnQiLCB7
InRlc3QiOiB0ZXN0X2lkfSksCisgICAgICAgICAgICAgICAgICAgICAoInRlc3Rfc3RhdHVzIiwg
eyJ0ZXN0IjogdGVzdF9pZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
InN1YnRlc3QiOiAidGVzdDEiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAic3RhdHVzIjogIlBBU1MiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAiZXhwZWN0ZWQiOiAiUEFTUyIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICJrbm93bl9pbnRlcm1pdHRlbnQiOiBbIkZBSUwiXX0pLAorICAgICAgICAgICAgICAgICAg
ICAgKCJ0ZXN0X2VuZCIsIHsidGVzdCI6IHRlc3RfaWQsCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICJzdGF0dXMiOiAiT0sifSldKQorCisgICAgbG9nXzIgPSBzdWl0ZV9sb2co
WygidGVzdF9zdGFydCIsIHsidGVzdCI6IHRlc3RfaWR9KSwKKyAgICAgICAgICAgICAgICAgICAg
ICgidGVzdF9zdGF0dXMiLCB7InRlc3QiOiB0ZXN0X2lkLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAic3VidGVzdCI6ICJ0ZXN0MSIsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICJzdGF0dXMiOiAiUEFTUyIsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICJleHBlY3RlZCI6ICJQQVNTIiwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgImtub3duX2ludGVybWl0dGVudCI6IFsiRkFJTCJdfSksCisg
ICAgICAgICAgICAgICAgICAgICAoInRlc3RfZW5kIiwgeyJ0ZXN0IjogdGVzdF9pZCwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInN0YXR1cyI6ICJPSyJ9KV0pCisKKyAgICB1
cGRhdGVkID0gdXBkYXRlKHRlc3RzLAorICAgICAgICAgICAgICAgICAgICAgbG9nXzAsCisgICAg
ICAgICAgICAgICAgICAgICBsb2dfMSwKKyAgICAgICAgICAgICAgICAgICAgIGxvZ18yLAorICAg
ICAgICAgICAgICAgICAgICAgdXBkYXRlX2ludGVybWl0dGVudD1UcnVlLAorICAgICAgICAgICAg
ICAgICAgICAgcmVtb3ZlX2ludGVybWl0dGVudD1UcnVlKQorCisgICAgbmV3X21hbmlmZXN0ID0g
dXBkYXRlZFswXVsxXQorICAgIGFzc2VydCBub3QgbmV3X21hbmlmZXN0LmlzX2VtcHR5CisgICAg
YXNzZXJ0IG5ld19tYW5pZmVzdC5nZXRfdGVzdCh0ZXN0X2lkKS5jaGlsZHJlblswXS5nZXQoCisg
ICAgICAgICJleHBlY3RlZCIsIGRlZmF1bHRfcnVuX2luZm8pID09IFsiUEFTUyIsICJFUlJPUiJd
CisKKworQHB5dGVzdC5tYXJrLnhmYWlsKHN5cy52ZXJzaW9uWzBdID09ICIzIiwKKyAgICAgICAg
ICAgICAgICAgICByZWFzb249Im1ldGFkYXRhIGRvZXNuJ3Qgc3VwcG9ydCBweTMiKQorZGVmIHRl
c3RfdXBkYXRlX25ld190ZXN0X3dpdGhfaW50ZXJtaXR0ZW50KCk6CisgICAgdGVzdHMgPSBbKCJw
YXRoL3RvL3Rlc3QuaHRtIiwgW3Rlc3RfaWRdLCAidGVzdGhhcm5lc3MiLCBOb25lKV0KKworICAg
IGxvZ18wID0gc3VpdGVfbG9nKFsoInRlc3Rfc3RhcnQiLCB7InRlc3QiOiB0ZXN0X2lkfSksCisg
ICAgICAgICAgICAgICAgICAgICAgICgidGVzdF9zdGF0dXMiLCB7InRlc3QiOiB0ZXN0X2lkLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJzdWJ0ZXN0IjogInRlc3Qx
IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAic3RhdHVzIjogIlBB
U1MiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJleHBlY3RlZCI6
ICJQQVNTIn0pLAorICAgICAgICAgICAgICAgICAgICAgICAoInRlc3RfZW5kIiwgeyJ0ZXN0Ijog
dGVzdF9pZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAic3RhdHVzIjog
Ik9LIn0pXSkKKworICAgIGxvZ18xID0gc3VpdGVfbG9nKFsoInRlc3Rfc3RhcnQiLCB7InRlc3Qi
OiB0ZXN0X2lkfSksCisgICAgICAgICAgICAgICAgICAgICAgICgidGVzdF9zdGF0dXMiLCB7InRl
c3QiOiB0ZXN0X2lkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJz
dWJ0ZXN0IjogInRlc3QxIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAic3RhdHVzIjogIlBBU1MiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICJleHBlY3RlZCI6ICJQQVNTIn0pLAorICAgICAgICAgICAgICAgICAgICAgICAoInRlc3Rf
ZW5kIiwgeyJ0ZXN0IjogdGVzdF9pZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAic3RhdHVzIjogIk9LIn0pXSkKKworICAgIGxvZ18yID0gc3VpdGVfbG9nKFsoInRlc3Rf
c3RhcnQiLCB7InRlc3QiOiB0ZXN0X2lkfSksCisgICAgICAgICAgICAgICAgICAgICAgICgidGVz
dF9zdGF0dXMiLCB7InRlc3QiOiB0ZXN0X2lkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICJzdWJ0ZXN0IjogInRlc3QxIiwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAic3RhdHVzIjogIkZBSUwiLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICJleHBlY3RlZCI6ICJQQVNTIn0pLAorICAgICAgICAgICAgICAg
ICAgICAgICAoInRlc3RfZW5kIiwgeyJ0ZXN0IjogdGVzdF9pZCwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAic3RhdHVzIjogIk9LIn0pXSkKKworICAgIHVwZGF0ZWQgPSB1
cGRhdGUodGVzdHMsIGxvZ18wLCBsb2dfMSwgbG9nXzIsIHVwZGF0ZV9pbnRlcm1pdHRlbnQ9VHJ1
ZSkKKyAgICBuZXdfbWFuaWZlc3QgPSB1cGRhdGVkWzBdWzFdCisKKyAgICBhc3NlcnQgbm90IG5l
d19tYW5pZmVzdC5pc19lbXB0eQorICAgIGFzc2VydCBuZXdfbWFuaWZlc3QuZ2V0X3Rlc3QoInRl
c3QuaHRtIikgaXMgTm9uZQorICAgIGFzc2VydCBsZW4obmV3X21hbmlmZXN0LmdldF90ZXN0KHRl
c3RfaWQpLmNoaWxkcmVuKSA9PSAxCisgICAgYXNzZXJ0IG5ld19tYW5pZmVzdC5nZXRfdGVzdCh0
ZXN0X2lkKS5jaGlsZHJlblswXS5nZXQoCisgICAgICAgICJleHBlY3RlZCIsIGRlZmF1bHRfcnVu
X2luZm8pID09IFsiUEFTUyIsICJGQUlMIl0KKworCitAcHl0ZXN0Lm1hcmsueGZhaWwoc3lzLnZl
cnNpb25bMF0gPT0gIjMiLAorICAgICAgICAgICAgICAgICAgIHJlYXNvbj0ibWV0YWRhdGEgZG9l
c24ndCBzdXBwb3J0IHB5MyIpCitkZWYgdGVzdF91cGRhdGVfZXhwZWN0ZWRfdGllX3Jlc29sdXRp
b24oKToKKyAgICB0ZXN0cyA9IFsoInBhdGgvdG8vdGVzdC5odG0iLCBbdGVzdF9pZF0sICJ0ZXN0
aGFybmVzcyIsIE5vbmUpXQorCisgICAgbG9nXzAgPSBzdWl0ZV9sb2coWygidGVzdF9zdGFydCIs
IHsidGVzdCI6IHRlc3RfaWR9KSwKKyAgICAgICAgICAgICAgICAgICAgICAgKCJ0ZXN0X3N0YXR1
cyIsIHsidGVzdCI6IHRlc3RfaWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgInN1YnRlc3QiOiAidGVzdDEiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICJzdGF0dXMiOiAiUEFTUyIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgImV4cGVjdGVkIjogIlBBU1MifSksCisgICAgICAgICAgICAgICAgICAgICAg
ICgidGVzdF9lbmQiLCB7InRlc3QiOiB0ZXN0X2lkLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICJzdGF0dXMiOiAiT0sifSldKQorCisgICAgbG9nXzEgPSBzdWl0ZV9sb2co
WygidGVzdF9zdGFydCIsIHsidGVzdCI6IHRlc3RfaWR9KSwKKyAgICAgICAgICAgICAgICAgICAg
ICAgKCJ0ZXN0X3N0YXR1cyIsIHsidGVzdCI6IHRlc3RfaWQsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgInN1YnRlc3QiOiAidGVzdDEiLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICJzdGF0dXMiOiAiRkFJTCIsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgImV4cGVjdGVkIjogIlBBU1MifSksCisgICAgICAg
ICAgICAgICAgICAgICAgICgidGVzdF9lbmQiLCB7InRlc3QiOiB0ZXN0X2lkLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICJzdGF0dXMiOiAiT0sifSldKQorCisgICAgdXBk
YXRlZCA9IHVwZGF0ZSh0ZXN0cywgbG9nXzAsIGxvZ18xLCB1cGRhdGVfaW50ZXJtaXR0ZW50PVRy
dWUpCisgICAgbmV3X21hbmlmZXN0ID0gdXBkYXRlZFswXVsxXQorCisgICAgYXNzZXJ0IG5vdCBu
ZXdfbWFuaWZlc3QuaXNfZW1wdHkKKyAgICBhc3NlcnQgbmV3X21hbmlmZXN0LmdldF90ZXN0KHRl
c3RfaWQpLmNoaWxkcmVuWzBdLmdldCgKKyAgICAgICAgImV4cGVjdGVkIiwgZGVmYXVsdF9ydW5f
aW5mbykgPT0gWyJQQVNTIiwgIkZBSUwiXQorCisKK0BweXRlc3QubWFyay54ZmFpbChzeXMudmVy
c2lvblswXSA9PSAiMyIsCisgICAgICAgICAgICAgICAgICAgcmVhc29uPSJtZXRhZGF0YSBkb2Vz
bid0IHN1cHBvcnQgcHkzIikKK2RlZiB0ZXN0X3VwZGF0ZV9yZW9yZGVyX2V4cGVjdGVkKCk6Cisg
ICAgdGVzdHMgPSBbKCJwYXRoL3RvL3Rlc3QuaHRtIiwgW3Rlc3RfaWRdLCAidGVzdGhhcm5lc3Mi
LAorICAgICAgICAgICAgICAiIiJbdGVzdC5odG1dCisgIFt0ZXN0MV0KKyAgICBleHBlY3RlZDog
W1BBU1MsIEZBSUxdIiIiKV0KKworICAgIGxvZ18wID0gc3VpdGVfbG9nKFsoInRlc3Rfc3RhcnQi
LCB7InRlc3QiOiB0ZXN0X2lkfSksCisgICAgICAgICAgICAgICAgICAgICAgICgidGVzdF9zdGF0
dXMiLCB7InRlc3QiOiB0ZXN0X2lkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICJzdWJ0ZXN0IjogInRlc3QxIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAic3RhdHVzIjogIkZBSUwiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICJleHBlY3RlZCI6ICJQQVNTIiwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAia25vd25faW50ZXJtaXR0ZW50IjogWyJGQUlMIl19KSwKKyAgICAg
ICAgICAgICAgICAgICAgICAgKCJ0ZXN0X2VuZCIsIHsidGVzdCI6IHRlc3RfaWQsCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInN0YXR1cyI6ICJPSyJ9KV0pCisKKyAgICBs
b2dfMSA9IHN1aXRlX2xvZyhbKCJ0ZXN0X3N0YXJ0IiwgeyJ0ZXN0IjogdGVzdF9pZH0pLAorICAg
ICAgICAgICAgICAgICAgICAgICAoInRlc3Rfc3RhdHVzIiwgeyJ0ZXN0IjogdGVzdF9pZCwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAic3VidGVzdCI6ICJ0ZXN0MSIs
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInN0YXR1cyI6ICJGQUlM
IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiZXhwZWN0ZWQiOiAi
UEFTUyIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImtub3duX2lu
dGVybWl0dGVudCI6IFsiRkFJTCJdfSksCisgICAgICAgICAgICAgICAgICAgICAgICgidGVzdF9l
bmQiLCB7InRlc3QiOiB0ZXN0X2lkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICJzdGF0dXMiOiAiT0sifSldKQorCisgICAgbG9nXzIgPSBzdWl0ZV9sb2coWygidGVzdF9z
dGFydCIsIHsidGVzdCI6IHRlc3RfaWR9KSwKKyAgICAgICAgICAgICAgICAgICAgICAgKCJ0ZXN0
X3N0YXR1cyIsIHsidGVzdCI6IHRlc3RfaWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgInN1YnRlc3QiOiAidGVzdDEiLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICJzdGF0dXMiOiAiUEFTUyIsCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgImV4cGVjdGVkIjogIlBBU1MiLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICJrbm93bl9pbnRlcm1pdHRlbnQiOiBbIkZBSUwiXX0pLAor
ICAgICAgICAgICAgICAgICAgICAgICAoInRlc3RfZW5kIiwgeyJ0ZXN0IjogdGVzdF9pZCwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAic3RhdHVzIjogIk9LIn0pXSkKKwor
ICAgIHVwZGF0ZWQgPSB1cGRhdGUodGVzdHMsIGxvZ18wLCBsb2dfMSwgbG9nXzIsIHVwZGF0ZV9p
bnRlcm1pdHRlbnQ9VHJ1ZSkKKyAgICBuZXdfbWFuaWZlc3QgPSB1cGRhdGVkWzBdWzFdCisKKyAg
ICBhc3NlcnQgbm90IG5ld19tYW5pZmVzdC5pc19lbXB0eQorICAgIGFzc2VydCBuZXdfbWFuaWZl
c3QuZ2V0X3Rlc3QodGVzdF9pZCkuY2hpbGRyZW5bMF0uZ2V0KAorICAgICAgICAiZXhwZWN0ZWQi
LCBkZWZhdWx0X3J1bl9pbmZvKSA9PSBbIkZBSUwiLCAiUEFTUyJdCisKKworQHB5dGVzdC5tYXJr
LnhmYWlsKHN5cy52ZXJzaW9uWzBdID09ICIzIiwKKyAgICAgICAgICAgICAgICAgICByZWFzb249
Im1ldGFkYXRhIGRvZXNuJ3Qgc3VwcG9ydCBweTMiKQorZGVmIHRlc3RfdXBkYXRlX2FuZF9wcmVz
ZXJ2ZV91bmNoYW5nZWRfZXhwZWN0ZWRfaW50ZXJtaXR0ZW50KCk6CisgICAgdGVzdHMgPSBbKCJw
YXRoL3RvL3Rlc3QuaHRtIiwgW3Rlc3RfaWRdLCAidGVzdGhhcm5lc3MiLCAiIiIKK1t0ZXN0Lmh0
bV0KKyAgZXhwZWN0ZWQ6CisgICAgaWYgb3MgPT0gImFuZHJvaWQiOiBbUEFTUywgRkFJTF0KKyAg
ICBGQUlMIiIiKV0KKworICAgIGxvZ18wID0gc3VpdGVfbG9nKFsoInRlc3Rfc3RhcnQiLCB7InRl
c3QiOiB0ZXN0X2lkfSksCisgICAgICAgICAgICAgICAgICAgICAgICgidGVzdF9lbmQiLCB7InRl
c3QiOiB0ZXN0X2lkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJzdGF0
dXMiOiAiRkFJTCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImV4cGVj
dGVkIjogIlBBU1MiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJrbm93
bl9pbnRlcm1pdHRlbnQiOiBbIkZBSUwiXX0pXSwKKyAgICAgICAgICAgICAgICAgICAgICBydW5f
aW5mbz17Im9zIjogImFuZHJvaWQifSkKKworICAgIGxvZ18xID0gc3VpdGVfbG9nKFsoInRlc3Rf
c3RhcnQiLCB7InRlc3QiOiB0ZXN0X2lkfSksCisgICAgICAgICAgICAgICAgICAgICAgICgidGVz
dF9lbmQiLCB7InRlc3QiOiB0ZXN0X2lkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICJzdGF0dXMiOiAiUEFTUyIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgImV4cGVjdGVkIjogIlBBU1MiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICJrbm93bl9pbnRlcm1pdHRlbnQiOiBbIkZBSUwiXX0pXSwKKyAgICAgICAgICAgICAg
ICAgICAgICBydW5faW5mbz17Im9zIjogImFuZHJvaWQifSkKKworICAgIGxvZ18yID0gc3VpdGVf
bG9nKFsoInRlc3Rfc3RhcnQiLCB7InRlc3QiOiB0ZXN0X2lkfSksCisgICAgICAgICAgICAgICAg
ICAgICAgICgidGVzdF9lbmQiLCB7InRlc3QiOiB0ZXN0X2lkLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICJzdGF0dXMiOiAiUEFTUyIsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgImV4cGVjdGVkIjogIkZBSUwifSldKQorCisgICAgdXBkYXRlZCA9
IHVwZGF0ZSh0ZXN0cywgbG9nXzAsIGxvZ18xLCBsb2dfMikKKyAgICBuZXdfbWFuaWZlc3QgPSB1
cGRhdGVkWzBdWzFdCisKKyAgICBhc3NlcnQgbm90IG5ld19tYW5pZmVzdC5pc19lbXB0eQorCisg
ICAgcnVuX2luZm9fMSA9IGRlZmF1bHRfcnVuX2luZm8uY29weSgpCisgICAgcnVuX2luZm9fMS51
cGRhdGUoeyJvcyI6ICJhbmRyb2lkIn0pCisKKyAgICBhc3NlcnQgbm90IG5ld19tYW5pZmVzdC5p
c19lbXB0eQorICAgIGFzc2VydCBuZXdfbWFuaWZlc3QuZ2V0X3Rlc3QodGVzdF9pZCkuZ2V0KAor
ICAgICAgICAiZXhwZWN0ZWQiLCBydW5faW5mb18xKSA9PSBbIlBBU1MiLCAiRkFJTCJdCisgICAg
YXNzZXJ0IG5ld19tYW5pZmVzdC5nZXRfdGVzdCh0ZXN0X2lkKS5nZXQoCisgICAgICAgICJleHBl
Y3RlZCIsIGRlZmF1bHRfcnVuX2luZm8pID09ICJQQVNTIgorCisKK0BweXRlc3QubWFyay54ZmFp
bChzeXMudmVyc2lvblswXSA9PSAiMyIsCisgICAgICAgICAgICAgICAgICAgcmVhc29uPSJtZXRh
ZGF0YSBkb2Vzbid0IHN1cHBvcnQgcHkzIikKK2RlZiB0ZXN0X3VwZGF0ZV90ZXN0X3dpdGhfaW50
ZXJtaXR0ZW50X3RvX29uZV9leHBlY3RlZF9zdGF0dXMoKToKKyAgICB0ZXN0cyA9IFsoInBhdGgv
dG8vdGVzdC5odG0iLCBbdGVzdF9pZF0sICJ0ZXN0aGFybmVzcyIsCisgICAgICAgICAgICAgICIi
Ilt0ZXN0Lmh0bV0KKyAgW3Rlc3QxXQorICAgIGV4cGVjdGVkOiBbUEFTUywgRkFJTF0iIiIpXQor
CisgICAgbG9nXzAgPSBzdWl0ZV9sb2coWygidGVzdF9zdGFydCIsIHsidGVzdCI6IHRlc3RfaWR9
KSwKKyAgICAgICAgICAgICAgICAgICAgICgidGVzdF9zdGF0dXMiLCB7InRlc3QiOiB0ZXN0X2lk
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAic3VidGVzdCI6ICJ0ZXN0
MSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJzdGF0dXMiOiAiRVJS
T1IiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiZXhwZWN0ZWQiOiAi
UEFTUyIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJrbm93bl9pbnRl
cm1pdHRlbnQiOiBbIkZBSUwiXX0pLAorICAgICAgICAgICAgICAgICAgICAgKCJ0ZXN0X2VuZCIs
IHsidGVzdCI6IHRlc3RfaWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJz
dGF0dXMiOiAiT0sifSldKQorCisgICAgdXBkYXRlZCA9IHVwZGF0ZSh0ZXN0cywgbG9nXzApCisK
KyAgICBuZXdfbWFuaWZlc3QgPSB1cGRhdGVkWzBdWzFdCisgICAgYXNzZXJ0IG5vdCBuZXdfbWFu
aWZlc3QuaXNfZW1wdHkKKyAgICBhc3NlcnQgbmV3X21hbmlmZXN0LmdldF90ZXN0KHRlc3RfaWQp
LmNoaWxkcmVuWzBdLmdldCgKKyAgICAgICAgImV4cGVjdGVkIiwgZGVmYXVsdF9ydW5faW5mbykg
PT0gIkVSUk9SIgorCisKK0BweXRlc3QubWFyay54ZmFpbChzeXMudmVyc2lvblswXSA9PSAiMyIs
CisgICAgICAgICAgICAgICAgICAgcmVhc29uPSJtZXRhZGF0YSBkb2Vzbid0IHN1cHBvcnQgcHkz
IikKK2RlZiB0ZXN0X3VwZGF0ZV9pbnRlcm1pdHRlbnRfd2l0aF9jb25kaXRpb25zKCk6CisgICAg
dGVzdHMgPSBbKCJwYXRoL3RvL3Rlc3QuaHRtIiwgW3Rlc3RfaWRdLCAidGVzdGhhcm5lc3MiLCAi
IiIKK1t0ZXN0Lmh0bV0KKyAgZXhwZWN0ZWQ6CisgICAgaWYgb3MgPT0gImFuZHJvaWQiOiBbUEFT
UywgRkFJTF0iIiIpXQorCisgICAgbG9nXzAgPSBzdWl0ZV9sb2coWygidGVzdF9zdGFydCIsIHsi
dGVzdCI6IHRlc3RfaWR9KSwKKyAgICAgICAgICAgICAgICAgICAgICAgKCJ0ZXN0X2VuZCIsIHsi
dGVzdCI6IHRlc3RfaWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInN0
YXR1cyI6ICJUSU1FT1VUIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAi
ZXhwZWN0ZWQiOiAiUEFTUyIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
Imtub3duX2ludGVybWl0dGVudCI6IFsiRkFJTCJdfSldLAorICAgICAgICAgICAgICAgICAgICAg
IHJ1bl9pbmZvPXsib3MiOiAiYW5kcm9pZCJ9KQorCisgICAgbG9nXzEgPSBzdWl0ZV9sb2coWygi
dGVzdF9zdGFydCIsIHsidGVzdCI6IHRlc3RfaWR9KSwKKyAgICAgICAgICAgICAgICAgICAgICAg
KCJ0ZXN0X2VuZCIsIHsidGVzdCI6IHRlc3RfaWQsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgInN0YXR1cyI6ICJQQVNTIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAiZXhwZWN0ZWQiOiAiUEFTUyIsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgImtub3duX2ludGVybWl0dGVudCI6IFsiRkFJTCJdfSldLAorICAgICAgICAg
ICAgICAgICAgICAgIHJ1bl9pbmZvPXsib3MiOiAiYW5kcm9pZCJ9KQorCisgICAgdXBkYXRlZCA9
IHVwZGF0ZSh0ZXN0cywgbG9nXzAsIGxvZ18xLCB1cGRhdGVfaW50ZXJtaXR0ZW50PVRydWUpCisg
ICAgbmV3X21hbmlmZXN0ID0gdXBkYXRlZFswXVsxXQorCisgICAgYXNzZXJ0IG5vdCBuZXdfbWFu
aWZlc3QuaXNfZW1wdHkKKworICAgIHJ1bl9pbmZvXzEgPSBkZWZhdWx0X3J1bl9pbmZvLmNvcHko
KQorICAgIHJ1bl9pbmZvXzEudXBkYXRlKHsib3MiOiAiYW5kcm9pZCJ9KQorCisgICAgYXNzZXJ0
IG5vdCBuZXdfbWFuaWZlc3QuaXNfZW1wdHkKKyAgICBhc3NlcnQgbmV3X21hbmlmZXN0LmdldF90
ZXN0KHRlc3RfaWQpLmdldCgKKyAgICAgICAgImV4cGVjdGVkIiwgcnVuX2luZm9fMSkgPT0gWyJQ
QVNTIiwgIlRJTUVPVVQiLCAiRkFJTCJdCisKKworQHB5dGVzdC5tYXJrLnhmYWlsKHN5cy52ZXJz
aW9uWzBdID09ICIzIiwKKyAgICAgICAgICAgICAgICAgICByZWFzb249Im1ldGFkYXRhIGRvZXNu
J3Qgc3VwcG9ydCBweTMiKQorZGVmIHRlc3RfdXBkYXRlX2FuZF9yZW1vdmVfaW50ZXJtaXR0ZW50
X3dpdGhfY29uZGl0aW9ucygpOgorICAgIHRlc3RzID0gWygicGF0aC90by90ZXN0Lmh0bSIsIFt0
ZXN0X2lkXSwgInRlc3RoYXJuZXNzIiwgIiIiCitbdGVzdC5odG1dCisgIGV4cGVjdGVkOgorICAg
IGlmIG9zID09ICJhbmRyb2lkIjogW1BBU1MsIEZBSUxdIiIiKV0KKworICAgIGxvZ18wID0gc3Vp
dGVfbG9nKFsoInRlc3Rfc3RhcnQiLCB7InRlc3QiOiB0ZXN0X2lkfSksCisgICAgICAgICAgICAg
ICAgICAgICAgICgidGVzdF9lbmQiLCB7InRlc3QiOiB0ZXN0X2lkLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICJzdGF0dXMiOiAiVElNRU9VVCIsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgImV4cGVjdGVkIjogIlBBU1MiLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICJrbm93bl9pbnRlcm1pdHRlbnQiOiBbIkZBSUwiXX0p
XSwKKyAgICAgICAgICAgICAgICAgICAgICBydW5faW5mbz17Im9zIjogImFuZHJvaWQifSkKKwor
ICAgIGxvZ18xID0gc3VpdGVfbG9nKFsoInRlc3Rfc3RhcnQiLCB7InRlc3QiOiB0ZXN0X2lkfSks
CisgICAgICAgICAgICAgICAgICAgICAgICgidGVzdF9lbmQiLCB7InRlc3QiOiB0ZXN0X2lkLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJzdGF0dXMiOiAiUEFTUyIsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImV4cGVjdGVkIjogIlBBU1MiLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJrbm93bl9pbnRlcm1pdHRlbnQi
OiBbIkZBSUwiXX0pXSwKKyAgICAgICAgICAgICAgICAgICAgICBydW5faW5mbz17Im9zIjogImFu
ZHJvaWQifSkKKworICAgIHVwZGF0ZWQgPSB1cGRhdGUodGVzdHMsIGxvZ18wLCBsb2dfMSwgdXBk
YXRlX2ludGVybWl0dGVudD1UcnVlLCByZW1vdmVfaW50ZXJtaXR0ZW50PVRydWUpCisgICAgbmV3
X21hbmlmZXN0ID0gdXBkYXRlZFswXVsxXQorCisgICAgYXNzZXJ0IG5vdCBuZXdfbWFuaWZlc3Qu
aXNfZW1wdHkKKworICAgIHJ1bl9pbmZvXzEgPSBkZWZhdWx0X3J1bl9pbmZvLmNvcHkoKQorICAg
IHJ1bl9pbmZvXzEudXBkYXRlKHsib3MiOiAiYW5kcm9pZCJ9KQorCisgICAgYXNzZXJ0IG5vdCBu
ZXdfbWFuaWZlc3QuaXNfZW1wdHkKKyAgICBhc3NlcnQgbmV3X21hbmlmZXN0LmdldF90ZXN0KHRl
c3RfaWQpLmdldCgKKyAgICAgICAgImV4cGVjdGVkIiwgcnVuX2luZm9fMSkgPT0gWyJQQVNTIiwg
IlRJTUVPVVQiXQorCisKK0BweXRlc3QubWFyay54ZmFpbChzeXMudmVyc2lvblswXSA9PSAiMyIs
CisgICAgICAgICAgICAgICAgICAgcmVhc29uPSJtZXRhZGF0YSBkb2Vzbid0IHN1cHBvcnQgcHkz
IikKK2RlZiB0ZXN0X3VwZGF0ZV9pbnRlcm1pdHRlbnRfZnVsbCgpOgorICAgIHRlc3RzID0gWygi
cGF0aC90by90ZXN0Lmh0bSIsIFt0ZXN0X2lkXSwgInRlc3RoYXJuZXNzIiwKKyAgICAgICAgICAg
ICAgIiIiW3Rlc3QuaHRtXQorICBbdGVzdDFdCisgICAgZXhwZWN0ZWQ6CisgICAgICBpZiBvcyA9
PSAibWFjIjogW0ZBSUwsIFRJTUVPVVRdCisgICAgICBGQUlMIiIiKV0KKworICAgIGxvZ18wID0g
c3VpdGVfbG9nKFsoInRlc3Rfc3RhcnQiLCB7InRlc3QiOiB0ZXN0X2lkfSksCisgICAgICAgICAg
ICAgICAgICAgICAoInRlc3Rfc3RhdHVzIiwgeyJ0ZXN0IjogdGVzdF9pZCwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgInN1YnRlc3QiOiAidGVzdDEiLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAic3RhdHVzIjogIkZBSUwiLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiZXhwZWN0ZWQiOiAiRkFJTCIsCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJrbm93bl9pbnRlcm1pdHRlbnQiOiBbIlRJ
TUVPVVQiXX0pLAorICAgICAgICAgICAgICAgICAgICAgKCJ0ZXN0X2VuZCIsIHsidGVzdCI6IHRl
c3RfaWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJzdGF0dXMiOiAiT0si
fSldLAorICAgICAgICAgICAgICAgICAgICAgcnVuX2luZm89eyJvcyI6ICJtYWMifSkKKworICAg
IGxvZ18xID0gc3VpdGVfbG9nKFsoInRlc3Rfc3RhcnQiLCB7InRlc3QiOiB0ZXN0X2lkfSksCisg
ICAgICAgICAgICAgICAgICAgICAoInRlc3Rfc3RhdHVzIiwgeyJ0ZXN0IjogdGVzdF9pZCwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInN1YnRlc3QiOiAidGVzdDEiLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAic3RhdHVzIjogIkZBSUwifSks
CisgICAgICAgICAgICAgICAgICAgICAoInRlc3RfZW5kIiwgeyJ0ZXN0IjogdGVzdF9pZCwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInN0YXR1cyI6ICJPSyJ9KV0pCisKKyAg
ICB1cGRhdGVkID0gdXBkYXRlKHRlc3RzLCBsb2dfMCwgbG9nXzEsIHVwZGF0ZV9pbnRlcm1pdHRl
bnQ9VHJ1ZSwgZnVsbF91cGRhdGU9VHJ1ZSkKKworICAgIG5ld19tYW5pZmVzdCA9IHVwZGF0ZWRb
MF1bMV0KKworICAgIGFzc2VydCBub3QgbmV3X21hbmlmZXN0LmlzX2VtcHR5CisgICAgcnVuX2lu
Zm9fMSA9IGRlZmF1bHRfcnVuX2luZm8uY29weSgpCisgICAgcnVuX2luZm9fMS51cGRhdGUoeyJv
cyI6ICJtYWMifSkKKyAgICBhc3NlcnQgbmV3X21hbmlmZXN0LmdldF90ZXN0KHRlc3RfaWQpLmNo
aWxkcmVuWzBdLmdldCgKKyAgICAgICAgImV4cGVjdGVkIiwgcnVuX2luZm9fMSkgPT0gWyJGQUlM
IiwgIlRJTUVPVVQiXQorICAgIGFzc2VydCBuZXdfbWFuaWZlc3QuZ2V0X3Rlc3QodGVzdF9pZCku
Y2hpbGRyZW5bMF0uZ2V0KAorICAgICAgICAiZXhwZWN0ZWQiLCBkZWZhdWx0X3J1bl9pbmZvKSA9
PSAiRkFJTCIKKworCitAcHl0ZXN0Lm1hcmsueGZhaWwoc3lzLnZlcnNpb25bMF0gPT0gIjMiLAor
ICAgICAgICAgICAgICAgICAgIHJlYXNvbj0ibWV0YWRhdGEgZG9lc24ndCBzdXBwb3J0IHB5MyIp
CitkZWYgdGVzdF91cGRhdGVfaW50ZXJtaXR0ZW50X2Z1bGxfcmVtb3ZlKCk6CisgICAgdGVzdHMg
PSBbKCJwYXRoL3RvL3Rlc3QuaHRtIiwgW3Rlc3RfaWRdLCAidGVzdGhhcm5lc3MiLAorICAgICAg
ICAgICAgICAiIiJbdGVzdC5odG1dCisgIFt0ZXN0MV0KKyAgICBleHBlY3RlZDoKKyAgICAgIGlm
IG9zID09ICJtYWMiOiBbRkFJTCwgVElNRU9VVCwgUEFTU10KKyAgICAgIEZBSUwiIiIpXQorCisg
ICAgbG9nXzAgPSBzdWl0ZV9sb2coWygidGVzdF9zdGFydCIsIHsidGVzdCI6IHRlc3RfaWR9KSwK
KyAgICAgICAgICAgICAgICAgICAgICgidGVzdF9zdGF0dXMiLCB7InRlc3QiOiB0ZXN0X2lkLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAic3VidGVzdCI6ICJ0ZXN0MSIs
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJzdGF0dXMiOiAiRkFJTCIs
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJleHBlY3RlZCI6ICJGQUlM
IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImtub3duX2ludGVybWl0
dGVudCI6IFsiVElNRU9VVCIsICJQQVNTIl19KSwKKyAgICAgICAgICAgICAgICAgICAgICgidGVz
dF9lbmQiLCB7InRlc3QiOiB0ZXN0X2lkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAic3RhdHVzIjogIk9LIn0pXSwKKyAgICAgICAgICAgICAgICAgICAgIHJ1bl9pbmZvPXsi
b3MiOiAibWFjIn0pCisKKyAgICBsb2dfMSA9IHN1aXRlX2xvZyhbKCJ0ZXN0X3N0YXJ0IiwgeyJ0
ZXN0IjogdGVzdF9pZH0pLAorICAgICAgICAgICAgICAgICAgICAgKCJ0ZXN0X3N0YXR1cyIsIHsi
dGVzdCI6IHRlc3RfaWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJz
dWJ0ZXN0IjogInRlc3QxIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
InN0YXR1cyI6ICJUSU1FT1VUIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgImV4cGVjdGVkIjogIkZBSUwiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAia25vd25faW50ZXJtaXR0ZW50IjogWyJUSU1FT1VUIiwgIlBBU1MiXX0pLAorICAgICAg
ICAgICAgICAgICAgICAgKCJ0ZXN0X2VuZCIsIHsidGVzdCI6IHRlc3RfaWQsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICJzdGF0dXMiOiAiT0sifSldLAorICAgICAgICAgICAg
ICAgICAgICAgcnVuX2luZm89eyJvcyI6ICJtYWMifSkKKworICAgIGxvZ18yID0gc3VpdGVfbG9n
KFsoInRlc3Rfc3RhcnQiLCB7InRlc3QiOiB0ZXN0X2lkfSksCisgICAgICAgICAgICAgICAgICAg
ICAoInRlc3Rfc3RhdHVzIiwgeyJ0ZXN0IjogdGVzdF9pZCwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgInN1YnRlc3QiOiAidGVzdDEiLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAic3RhdHVzIjogIkZBSUwifSksCisgICAgICAgICAgICAgICAg
ICAgICAoInRlc3RfZW5kIiwgeyJ0ZXN0IjogdGVzdF9pZCwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgInN0YXR1cyI6ICJPSyJ9KV0pCisKKyAgICB1cGRhdGVkID0gdXBkYXRl
KHRlc3RzLCBsb2dfMCwgbG9nXzEsIGxvZ18yLCB1cGRhdGVfaW50ZXJtaXR0ZW50PVRydWUsCisg
ICAgICAgICAgICAgICAgICAgICBmdWxsX3VwZGF0ZT1UcnVlLCByZW1vdmVfaW50ZXJtaXR0ZW50
PVRydWUpCisKKyAgICBuZXdfbWFuaWZlc3QgPSB1cGRhdGVkWzBdWzFdCisKKyAgICBhc3NlcnQg
bm90IG5ld19tYW5pZmVzdC5pc19lbXB0eQorICAgIHJ1bl9pbmZvXzEgPSBkZWZhdWx0X3J1bl9p
bmZvLmNvcHkoKQorICAgIHJ1bl9pbmZvXzEudXBkYXRlKHsib3MiOiAibWFjIn0pCisgICAgYXNz
ZXJ0IG5ld19tYW5pZmVzdC5nZXRfdGVzdCh0ZXN0X2lkKS5jaGlsZHJlblswXS5nZXQoCisgICAg
ICAgICJleHBlY3RlZCIsIHJ1bl9pbmZvXzEpID09IFsiRkFJTCIsICJUSU1FT1VUIl0KKyAgICBh
c3NlcnQgbmV3X21hbmlmZXN0LmdldF90ZXN0KHRlc3RfaWQpLmNoaWxkcmVuWzBdLmdldCgKKyAg
ICAgICAgImV4cGVjdGVkIiwgZGVmYXVsdF9ydW5faW5mbykgPT0gIkZBSUwiCisKKworQHB5dGVz
dC5tYXJrLnhmYWlsKHN5cy52ZXJzaW9uWzBdID09ICIzIiwKKyAgICAgICAgICAgICAgICAgICBy
ZWFzb249Im1ldGFkYXRhIGRvZXNuJ3Qgc3VwcG9ydCBweTMiKQorZGVmIHRlc3RfZnVsbF91cGRh
dGUoKToKKyAgICB0ZXN0cyA9IFsoInBhdGgvdG8vdGVzdC5odG0iLCBbdGVzdF9pZF0sICJ0ZXN0
aGFybmVzcyIsCisgICAgICAgICAgICAgICIiIlt0ZXN0Lmh0bV0KKyAgW3Rlc3QxXQorICAgIGV4
cGVjdGVkOgorICAgICAgaWYgb3MgPT0gIm1hYyI6IFtGQUlMLCBUSU1FT1VUXQorICAgICAgRkFJ
TCIiIildCisKKyAgICBsb2dfMCA9IHN1aXRlX2xvZyhbKCJ0ZXN0X3N0YXJ0IiwgeyJ0ZXN0Ijog
dGVzdF9pZH0pLAorICAgICAgICAgICAgICAgICAgICAgKCJ0ZXN0X3N0YXR1cyIsIHsidGVzdCI6
IHRlc3RfaWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJzdWJ0ZXN0
IjogInRlc3QxIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInN0YXR1
cyI6ICJGQUlMIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImV4cGVj
dGVkIjogIkZBSUwiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAia25v
d25faW50ZXJtaXR0ZW50IjogWyJUSU1FT1VUIl19KSwKKyAgICAgICAgICAgICAgICAgICAgICgi
dGVzdF9lbmQiLCB7InRlc3QiOiB0ZXN0X2lkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAic3RhdHVzIjogIk9LIn0pXSwKKyAgICAgICAgICAgICAgICAgICAgIHJ1bl9pbmZv
PXsib3MiOiAibWFjIn0pCisKKyAgICBsb2dfMSA9IHN1aXRlX2xvZyhbKCJ0ZXN0X3N0YXJ0Iiwg
eyJ0ZXN0IjogdGVzdF9pZH0pLAorICAgICAgICAgICAgICAgICAgICAgKCJ0ZXN0X3N0YXR1cyIs
IHsidGVzdCI6IHRlc3RfaWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICJzdWJ0ZXN0IjogInRlc3QxIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgInN0YXR1cyI6ICJGQUlMIn0pLAorICAgICAgICAgICAgICAgICAgICAgKCJ0ZXN0X2VuZCIs
IHsidGVzdCI6IHRlc3RfaWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJz
dGF0dXMiOiAiT0sifSldKQorCisgICAgdXBkYXRlZCA9IHVwZGF0ZSh0ZXN0cywgbG9nXzAsIGxv
Z18xLCBmdWxsX3VwZGF0ZT1UcnVlKQorCisgICAgbmV3X21hbmlmZXN0ID0gdXBkYXRlZFswXVsx
XQorCisgICAgYXNzZXJ0IG5vdCBuZXdfbWFuaWZlc3QuaXNfZW1wdHkKKyAgICBydW5faW5mb18x
ID0gZGVmYXVsdF9ydW5faW5mby5jb3B5KCkKKyAgICBydW5faW5mb18xLnVwZGF0ZSh7Im9zIjog
Im1hYyJ9KQorICAgIGFzc2VydCBuZXdfbWFuaWZlc3QuZ2V0X3Rlc3QodGVzdF9pZCkuY2hpbGRy
ZW5bMF0uZ2V0KAorICAgICAgICAiZXhwZWN0ZWQiLCBydW5faW5mb18xKSA9PSAiRkFJTCIKKyAg
ICBhc3NlcnQgbmV3X21hbmlmZXN0LmdldF90ZXN0KHRlc3RfaWQpLmNoaWxkcmVuWzBdLmdldCgK
KyAgICAgICAgImV4cGVjdGVkIiwgZGVmYXVsdF9ydW5faW5mbykgPT0gIkZBSUwiCisKKworQHB5
dGVzdC5tYXJrLnhmYWlsKHN5cy52ZXJzaW9uWzBdID09ICIzIiwKKyAgICAgICAgICAgICAgICAg
ICByZWFzb249Im1ldGFkYXRhIGRvZXNuJ3Qgc3VwcG9ydCBweTMiKQorZGVmIHRlc3RfZnVsbF9v
cnBoYW4oKToKKyAgICB0ZXN0cyA9IFsoInBhdGgvdG8vdGVzdC5odG0iLCBbdGVzdF9pZF0sICJ0
ZXN0aGFybmVzcyIsCisgICAgICAgICAgICAgICIiIlt0ZXN0Lmh0bV0KKyAgW3Rlc3QxXQorICAg
IGV4cGVjdGVkOiBGQUlMCisgICAgW3N1YnN1YiB0ZXN0XQorICAgICAgZXhwZWN0ZWQ6IFRJTUVP
VVQKKyAgW3Rlc3QyXQorICAgIGV4cGVjdGVkOiBFUlJPUgorIiIiKV0KKworICAgIGxvZ18wID0g
c3VpdGVfbG9nKFsoInRlc3Rfc3RhcnQiLCB7InRlc3QiOiB0ZXN0X2lkfSksCisgICAgICAgICAg
ICAgICAgICAgICAoInRlc3Rfc3RhdHVzIiwgeyJ0ZXN0IjogdGVzdF9pZCwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgInN1YnRlc3QiOiAidGVzdDEiLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAic3RhdHVzIjogIkZBSUwiLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiZXhwZWN0ZWQiOiAiRkFJTCJ9KSwKKyAgICAg
ICAgICAgICAgICAgICAgICgidGVzdF9lbmQiLCB7InRlc3QiOiB0ZXN0X2lkLAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAic3RhdHVzIjogIk9LIn0pXSkKIAotICAgIHVwZGF0
ZWQgPSB1cGRhdGUodGVzdHMsIGxvZykKIAotICAgIGFzc2VydCBsZW4odXBkYXRlZCkgPT0gMQot
ICAgIGFzc2VydCB1cGRhdGVkWzBdWzFdLmlzX2VtcHR5CisgICAgdXBkYXRlZCA9IHVwZGF0ZSh0
ZXN0cywgbG9nXzAsIGZ1bGxfdXBkYXRlPVRydWUpCiAKKyAgICBuZXdfbWFuaWZlc3QgPSB1cGRh
dGVkWzBdWzFdCiAKLWRlZiB0ZXN0X3VwZGF0ZV8xKCk6Ci0gICAgdGVzdF9pZCA9ICIvcGF0aC90
by90ZXN0Lmh0bSIKKyAgICBhc3NlcnQgbm90IG5ld19tYW5pZmVzdC5pc19lbXB0eQorICAgIGFz
c2VydCBsZW4obmV3X21hbmlmZXN0LmdldF90ZXN0KHRlc3RfaWQpLmNoaWxkcmVuWzBdLmNoaWxk
cmVuKSA9PSAwCisgICAgYXNzZXJ0IG5ld19tYW5pZmVzdC5nZXRfdGVzdCh0ZXN0X2lkKS5jaGls
ZHJlblswXS5nZXQoCisgICAgICAgICJleHBlY3RlZCIsIGRlZmF1bHRfcnVuX2luZm8pID09ICJG
QUlMIgorICAgIGFzc2VydCBsZW4obmV3X21hbmlmZXN0LmdldF90ZXN0KHRlc3RfaWQpLmNoaWxk
cmVuKSA9PSAxCisKKworQHB5dGVzdC5tYXJrLnhmYWlsKHN5cy52ZXJzaW9uWzBdID09ICIzIiwK
KyAgICAgICAgICAgICAgICAgICByZWFzb249Im1ldGFkYXRhIGRvZXNuJ3Qgc3VwcG9ydCBweTMi
KQorZGVmIHRlc3RfdXBkYXRlX3Jlb3JkZXJfZXhwZWN0ZWRfZnVsbF9jb25kaXRpb25zKCk6CiAg
ICAgdGVzdHMgPSBbKCJwYXRoL3RvL3Rlc3QuaHRtIiwgW3Rlc3RfaWRdLCAidGVzdGhhcm5lc3Mi
LAogICAgICAgICAgICAgICAiIiJbdGVzdC5odG1dCiAgIFt0ZXN0MV0KLSAgICBleHBlY3RlZDog
RVJST1IiIiIpXQorICAgIGV4cGVjdGVkOgorICAgICAgaWYgb3MgPT0gIm1hYyI6IFtGQUlMLCBU
SU1FT1VUXQorICAgICAgW0ZBSUwsIFBBU1NdIiIiKV0KIAotICAgIGxvZyA9IHN1aXRlX2xvZyhb
KCJ0ZXN0X3N0YXJ0IiwgeyJ0ZXN0IjogdGVzdF9pZH0pLAorICAgIGxvZ18wID0gc3VpdGVfbG9n
KFsoInRlc3Rfc3RhcnQiLCB7InRlc3QiOiB0ZXN0X2lkfSksCiAgICAgICAgICAgICAgICAgICAg
ICAoInRlc3Rfc3RhdHVzIiwgeyJ0ZXN0IjogdGVzdF9pZCwKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgInN1YnRlc3QiOiAidGVzdDEiLAotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAic3RhdHVzIjogIkZBSUwiLAotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAiZXhwZWN0ZWQiOiAiRVJST1IifSksCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICJzdGF0dXMiOiAiVElNRU9VVCIsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICJleHBlY3RlZCI6ICJGQUlMIiwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImtub3duX2ludGVybWl0dGVudCI6IFsiVElN
RU9VVCJdfSksCisgICAgICAgICAgICAgICAgICAgICAoInRlc3RfZW5kIiwgeyJ0ZXN0IjogdGVz
dF9pZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInN0YXR1cyI6ICJPSyJ9
KV0sCisgICAgICAgICAgICAgICAgICAgICBydW5faW5mbz17Im9zIjogIm1hYyJ9KQorCisgICAg
bG9nXzEgPSBzdWl0ZV9sb2coWygidGVzdF9zdGFydCIsIHsidGVzdCI6IHRlc3RfaWR9KSwKKyAg
ICAgICAgICAgICAgICAgICAgICgidGVzdF9zdGF0dXMiLCB7InRlc3QiOiB0ZXN0X2lkLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAic3VidGVzdCI6ICJ0ZXN0MSIsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJzdGF0dXMiOiAiVElNRU9VVCIs
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJleHBlY3RlZCI6ICJGQUlM
IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImtub3duX2ludGVybWl0
dGVudCI6IFsiVElNRU9VVCJdfSksCisgICAgICAgICAgICAgICAgICAgICAoInRlc3RfZW5kIiwg
eyJ0ZXN0IjogdGVzdF9pZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInN0
YXR1cyI6ICJPSyJ9KV0sCisgICAgICAgICAgICAgICAgICAgICBydW5faW5mbz17Im9zIjogIm1h
YyJ9KQorCisgICAgbG9nXzIgPSBzdWl0ZV9sb2coWygidGVzdF9zdGFydCIsIHsidGVzdCI6IHRl
c3RfaWR9KSwKKyAgICAgICAgICAgICAgICAgICAgICgidGVzdF9zdGF0dXMiLCB7InRlc3QiOiB0
ZXN0X2lkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAic3VidGVzdCI6
ICJ0ZXN0MSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJzdGF0dXMi
OiAiUEFTUyIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJleHBlY3Rl
ZCI6ICJGQUlMIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImtub3du
X2ludGVybWl0dGVudCI6IFsiUEFTUyJdfSksCiAgICAgICAgICAgICAgICAgICAgICAoInRlc3Rf
ZW5kIiwgeyJ0ZXN0IjogdGVzdF9pZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgInN0YXR1cyI6ICJPSyJ9KV0pCiAKLSAgICB1cGRhdGVkID0gdXBkYXRlKHRlc3RzLCBsb2cp
CisgICAgbG9nXzMgPSBzdWl0ZV9sb2coWygidGVzdF9zdGFydCIsIHsidGVzdCI6IHRlc3RfaWR9
KSwKKyAgICAgICAgICAgICAgICAgICAgICgidGVzdF9zdGF0dXMiLCB7InRlc3QiOiB0ZXN0X2lk
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAic3VidGVzdCI6ICJ0ZXN0
MSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJzdGF0dXMiOiAiUEFT
UyIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJleHBlY3RlZCI6ICJG
QUlMIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImtub3duX2ludGVy
bWl0dGVudCI6IFsiUEFTUyJdfSksCisgICAgICAgICAgICAgICAgICAgICAoInRlc3RfZW5kIiwg
eyJ0ZXN0IjogdGVzdF9pZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInN0
YXR1cyI6ICJPSyJ9KV0pCisKKyAgICB1cGRhdGVkID0gdXBkYXRlKHRlc3RzLCBsb2dfMCwgbG9n
XzEsIGxvZ18yLCBsb2dfMywgdXBkYXRlX2ludGVybWl0dGVudD1UcnVlLCBmdWxsX3VwZGF0ZT1U
cnVlKQogCiAgICAgbmV3X21hbmlmZXN0ID0gdXBkYXRlZFswXVsxXQorCiAgICAgYXNzZXJ0IG5v
dCBuZXdfbWFuaWZlc3QuaXNfZW1wdHkKLSAgICBhc3NlcnQgbmV3X21hbmlmZXN0LmdldF90ZXN0
KHRlc3RfaWQpLmNoaWxkcmVuWzBdLmdldCgiZXhwZWN0ZWQiKSA9PSAiRkFJTCIKKyAgICBydW5f
aW5mb18xID0gZGVmYXVsdF9ydW5faW5mby5jb3B5KCkKKyAgICBydW5faW5mb18xLnVwZGF0ZSh7
Im9zIjogIm1hYyJ9KQorICAgIGFzc2VydCBuZXdfbWFuaWZlc3QuZ2V0X3Rlc3QodGVzdF9pZCku
Y2hpbGRyZW5bMF0uZ2V0KAorICAgICAgICAiZXhwZWN0ZWQiLCBydW5faW5mb18xKSA9PSBbIlRJ
TUVPVVQiLCAiRkFJTCJdCisgICAgYXNzZXJ0IG5ld19tYW5pZmVzdC5nZXRfdGVzdCh0ZXN0X2lk
KS5jaGlsZHJlblswXS5nZXQoCisgICAgICAgICJleHBlY3RlZCIsIGRlZmF1bHRfcnVuX2luZm8p
ID09IFsiUEFTUyIsICJGQUlMIl0KIAogCitAcHl0ZXN0Lm1hcmsueGZhaWwoc3lzLnZlcnNpb25b
MF0gPT0gIjMiLAorICAgICAgICAgICAgICAgICAgIHJlYXNvbj0ibWV0YWRhdGEgZG9lc24ndCBz
dXBwb3J0IHB5MyIpCiBkZWYgdGVzdF9za2lwXzAoKToKLSAgICB0ZXN0X2lkID0gIi9wYXRoL3Rv
L3Rlc3QuaHRtIgogICAgIHRlc3RzID0gWygicGF0aC90by90ZXN0Lmh0bSIsIFt0ZXN0X2lkXSwg
InRlc3RoYXJuZXNzIiwKICAgICAgICAgICAgICAgIiIiW3Rlc3QuaHRtXQogICBbdGVzdDFdCkBA
IC0xNjUsOCArODI5LDkgQEAgZGVmIHRlc3Rfc2tpcF8wKCk6CiAgICAgYXNzZXJ0IG5vdCB1cGRh
dGVkCiAKIAorQHB5dGVzdC5tYXJrLnhmYWlsKHN5cy52ZXJzaW9uWzBdID09ICIzIiwKKyAgICAg
ICAgICAgICAgICAgICByZWFzb249Im1ldGFkYXRhIGRvZXNuJ3Qgc3VwcG9ydCBweTMiKQogZGVm
IHRlc3RfbmV3X3N1YnRlc3QoKToKLSAgICB0ZXN0X2lkID0gIi9wYXRoL3RvL3Rlc3QuaHRtIgog
ICAgIHRlc3RzID0gWygicGF0aC90by90ZXN0Lmh0bSIsIFt0ZXN0X2lkXSwgInRlc3RoYXJuZXNz
IiwgIiIiW3Rlc3QuaHRtXQogICBbdGVzdDFdCiAgICAgZXhwZWN0ZWQ6IEZBSUwiIiIpXQpAQCAt
MTg1LDEyICs4NTAsMTMgQEAgZGVmIHRlc3RfbmV3X3N1YnRlc3QoKToKICAgICB1cGRhdGVkID0g
dXBkYXRlKHRlc3RzLCBsb2cpCiAgICAgbmV3X21hbmlmZXN0ID0gdXBkYXRlZFswXVsxXQogICAg
IGFzc2VydCBub3QgbmV3X21hbmlmZXN0LmlzX2VtcHR5Ci0gICAgYXNzZXJ0IG5ld19tYW5pZmVz
dC5nZXRfdGVzdCh0ZXN0X2lkKS5jaGlsZHJlblswXS5nZXQoImV4cGVjdGVkIikgPT0gIkZBSUwi
Ci0gICAgYXNzZXJ0IG5ld19tYW5pZmVzdC5nZXRfdGVzdCh0ZXN0X2lkKS5jaGlsZHJlblsxXS5n
ZXQoImV4cGVjdGVkIikgPT0gIkZBSUwiCisgICAgYXNzZXJ0IG5ld19tYW5pZmVzdC5nZXRfdGVz
dCh0ZXN0X2lkKS5jaGlsZHJlblswXS5nZXQoImV4cGVjdGVkIiwgZGVmYXVsdF9ydW5faW5mbykg
PT0gIkZBSUwiCisgICAgYXNzZXJ0IG5ld19tYW5pZmVzdC5nZXRfdGVzdCh0ZXN0X2lkKS5jaGls
ZHJlblsxXS5nZXQoImV4cGVjdGVkIiwgZGVmYXVsdF9ydW5faW5mbykgPT0gIkZBSUwiCiAKIAor
QHB5dGVzdC5tYXJrLnhmYWlsKHN5cy52ZXJzaW9uWzBdID09ICIzIiwKKyAgICAgICAgICAgICAg
ICAgICByZWFzb249Im1ldGFkYXRhIGRvZXNuJ3Qgc3VwcG9ydCBweTMiKQogZGVmIHRlc3RfdXBk
YXRlX211bHRpcGxlXzAoKToKLSAgICB0ZXN0X2lkID0gIi9wYXRoL3RvL3Rlc3QuaHRtIgogICAg
IHRlc3RzID0gWygicGF0aC90by90ZXN0Lmh0bSIsIFt0ZXN0X2lkXSwgInRlc3RoYXJuZXNzIiwg
IiIiW3Rlc3QuaHRtXQogICBbdGVzdDFdCiAgICAgZXhwZWN0ZWQ6IEZBSUwiIiIpXQpAQCAtMjE3
LDE0ICs4ODMsMTkgQEAgZGVmIHRlc3RfdXBkYXRlX211bHRpcGxlXzAoKToKICAgICBuZXdfbWFu
aWZlc3QgPSB1cGRhdGVkWzBdWzFdCiAKICAgICBhc3NlcnQgbm90IG5ld19tYW5pZmVzdC5pc19l
bXB0eQorICAgIHJ1bl9pbmZvXzEgPSBkZWZhdWx0X3J1bl9pbmZvLmNvcHkoKQorICAgIHJ1bl9p
bmZvXzEudXBkYXRlKHsiZGVidWciOiBGYWxzZSwgIm9zIjogIm9zeCJ9KQorICAgIHJ1bl9pbmZv
XzIgPSBkZWZhdWx0X3J1bl9pbmZvLmNvcHkoKQorICAgIHJ1bl9pbmZvXzIudXBkYXRlKHsiZGVi
dWciOiBGYWxzZSwgIm9zIjogImxpbnV4In0pCiAgICAgYXNzZXJ0IG5ld19tYW5pZmVzdC5nZXRf
dGVzdCh0ZXN0X2lkKS5jaGlsZHJlblswXS5nZXQoCi0gICAgICAgICJleHBlY3RlZCIsIHsiZGVi
dWciOiBGYWxzZSwgIm9zIjogIm9zeCJ9KSA9PSAiRkFJTCIKKyAgICAgICAgImV4cGVjdGVkIiwg
cnVuX2luZm9fMSkgPT0gIkZBSUwiCiAgICAgYXNzZXJ0IG5ld19tYW5pZmVzdC5nZXRfdGVzdCh0
ZXN0X2lkKS5jaGlsZHJlblswXS5nZXQoCiAgICAgICAgICJleHBlY3RlZCIsIHsiZGVidWciOiBG
YWxzZSwgIm9zIjogImxpbnV4In0pID09ICJUSU1FT1VUIgogCiAKK0BweXRlc3QubWFyay54ZmFp
bChzeXMudmVyc2lvblswXSA9PSAiMyIsCisgICAgICAgICAgICAgICAgICAgcmVhc29uPSJtZXRh
ZGF0YSBkb2Vzbid0IHN1cHBvcnQgcHkzIikKIGRlZiB0ZXN0X3VwZGF0ZV9tdWx0aXBsZV8xKCk6
Ci0gICAgdGVzdF9pZCA9ICIvcGF0aC90by90ZXN0Lmh0bSIKICAgICB0ZXN0cyA9IFsoInBhdGgv
dG8vdGVzdC5odG0iLCBbdGVzdF9pZF0sICJ0ZXN0aGFybmVzcyIsICIiIlt0ZXN0Lmh0bV0KICAg
W3Rlc3QxXQogICAgIGV4cGVjdGVkOiBGQUlMIiIiKV0KQEAgLTIzNiw3ICs5MDcsNyBAQCBkZWYg
dGVzdF91cGRhdGVfbXVsdGlwbGVfMSgpOgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICJleHBlY3RlZCI6ICJGQUlMIn0pLAogICAgICAgICAgICAgICAgICAgICAgICAo
InRlc3RfZW5kIiwgeyJ0ZXN0IjogdGVzdF9pZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAic3RhdHVzIjogIk9LIn0pXSwKLSAgICAgICAgICAgICAgICAgICAgICBydW5f
aW5mbz17ImRlYnVnIjogRmFsc2UsICJvcyI6ICJvc3gifSkKKyAgICAgICAgICAgICAgICAgICAg
ICBydW5faW5mbz17Im9zIjogIm9zeCJ9KQogCiAgICAgbG9nXzEgPSBzdWl0ZV9sb2coWygidGVz
dF9zdGFydCIsIHsidGVzdCI6IHRlc3RfaWR9KSwKICAgICAgICAgICAgICAgICAgICAgICAgKCJ0
ZXN0X3N0YXR1cyIsIHsidGVzdCI6IHRlc3RfaWQsCkBAIC0yNDUsMjIgKzkxNiwzMCBAQCBkZWYg
dGVzdF91cGRhdGVfbXVsdGlwbGVfMSgpOgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICJleHBlY3RlZCI6ICJGQUlMIn0pLAogICAgICAgICAgICAgICAgICAgICAgICAo
InRlc3RfZW5kIiwgeyJ0ZXN0IjogdGVzdF9pZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAic3RhdHVzIjogIk9LIn0pXSwKLSAgICAgICAgICAgICAgICAgICAgICBydW5f
aW5mbz17ImRlYnVnIjogRmFsc2UsICJvcyI6ICJsaW51eCJ9KQorICAgICAgICAgICAgICAgICAg
ICAgIHJ1bl9pbmZvPXsib3MiOiAibGludXgifSkKIAogICAgIHVwZGF0ZWQgPSB1cGRhdGUodGVz
dHMsIGxvZ18wLCBsb2dfMSkKICAgICBuZXdfbWFuaWZlc3QgPSB1cGRhdGVkWzBdWzFdCiAKICAg
ICBhc3NlcnQgbm90IG5ld19tYW5pZmVzdC5pc19lbXB0eQorICAgIHJ1bl9pbmZvXzEgPSBkZWZh
dWx0X3J1bl9pbmZvLmNvcHkoKQorICAgIHJ1bl9pbmZvXzEudXBkYXRlKHsib3MiOiAib3N4In0p
CisgICAgcnVuX2luZm9fMiA9IGRlZmF1bHRfcnVuX2luZm8uY29weSgpCisgICAgcnVuX2luZm9f
Mi51cGRhdGUoeyJvcyI6ICJsaW51eCJ9KQorICAgIHJ1bl9pbmZvXzMgPSBkZWZhdWx0X3J1bl9p
bmZvLmNvcHkoKQorICAgIHJ1bl9pbmZvXzMudXBkYXRlKHsib3MiOiAid2luIn0pCisKICAgICBh
c3NlcnQgbmV3X21hbmlmZXN0LmdldF90ZXN0KHRlc3RfaWQpLmNoaWxkcmVuWzBdLmdldCgKLSAg
ICAgICAgImV4cGVjdGVkIiwgeyJkZWJ1ZyI6IEZhbHNlLCAib3MiOiAib3N4In0pID09ICJGQUlM
IgorICAgICAgICAiZXhwZWN0ZWQiLCBydW5faW5mb18xKSA9PSAiRkFJTCIKICAgICBhc3NlcnQg
bmV3X21hbmlmZXN0LmdldF90ZXN0KHRlc3RfaWQpLmNoaWxkcmVuWzBdLmdldCgKLSAgICAgICAg
ImV4cGVjdGVkIiwgeyJkZWJ1ZyI6IEZhbHNlLCAib3MiOiAibGludXgifSkgPT0gIlRJTUVPVVQi
CisgICAgICAgICJleHBlY3RlZCIsIHJ1bl9pbmZvXzIpID09ICJUSU1FT1VUIgogICAgIGFzc2Vy
dCBuZXdfbWFuaWZlc3QuZ2V0X3Rlc3QodGVzdF9pZCkuY2hpbGRyZW5bMF0uZ2V0KAotICAgICAg
ICAiZXhwZWN0ZWQiLCB7ImRlYnVnIjogRmFsc2UsICJvcyI6ICJ3aW5kb3dzIn0pID09ICJGQUlM
IgorICAgICAgICAiZXhwZWN0ZWQiLCBydW5faW5mb18zKSA9PSAiRkFJTCIKIAogCitAcHl0ZXN0
Lm1hcmsueGZhaWwoc3lzLnZlcnNpb25bMF0gPT0gIjMiLAorICAgICAgICAgICAgICAgICAgIHJl
YXNvbj0ibWV0YWRhdGEgZG9lc24ndCBzdXBwb3J0IHB5MyIpCiBkZWYgdGVzdF91cGRhdGVfbXVs
dGlwbGVfMigpOgotICAgIHRlc3RfaWQgPSAiL3BhdGgvdG8vdGVzdC5odG0iCiAgICAgdGVzdHMg
PSBbKCJwYXRoL3RvL3Rlc3QuaHRtIiwgW3Rlc3RfaWRdLCAidGVzdGhhcm5lc3MiLCAiIiJbdGVz
dC5odG1dCiAgIFt0ZXN0MV0KICAgICBleHBlY3RlZDogRkFJTCIiIildCkBAIC0yODYsMTUgKzk2
NSwyMSBAQCBkZWYgdGVzdF91cGRhdGVfbXVsdGlwbGVfMigpOgogICAgIHVwZGF0ZWQgPSB1cGRh
dGUodGVzdHMsIGxvZ18wLCBsb2dfMSkKICAgICBuZXdfbWFuaWZlc3QgPSB1cGRhdGVkWzBdWzFd
CiAKKyAgICBydW5faW5mb18xID0gZGVmYXVsdF9ydW5faW5mby5jb3B5KCkKKyAgICBydW5faW5m
b18xLnVwZGF0ZSh7ImRlYnVnIjogRmFsc2UsICJvcyI6ICJvc3gifSkKKyAgICBydW5faW5mb18y
ID0gZGVmYXVsdF9ydW5faW5mby5jb3B5KCkKKyAgICBydW5faW5mb18yLnVwZGF0ZSh7ImRlYnVn
IjogVHJ1ZSwgIm9zIjogIm9zeCJ9KQorCiAgICAgYXNzZXJ0IG5vdCBuZXdfbWFuaWZlc3QuaXNf
ZW1wdHkKICAgICBhc3NlcnQgbmV3X21hbmlmZXN0LmdldF90ZXN0KHRlc3RfaWQpLmNoaWxkcmVu
WzBdLmdldCgKLSAgICAgICAgImV4cGVjdGVkIiwgeyJkZWJ1ZyI6IEZhbHNlLCAib3MiOiAib3N4
In0pID09ICJGQUlMIgorICAgICAgICAiZXhwZWN0ZWQiLCBydW5faW5mb18xKSA9PSAiRkFJTCIK
ICAgICBhc3NlcnQgbmV3X21hbmlmZXN0LmdldF90ZXN0KHRlc3RfaWQpLmNoaWxkcmVuWzBdLmdl
dCgKLSAgICAgICAgImV4cGVjdGVkIiwgeyJkZWJ1ZyI6IFRydWUsICJvcyI6ICJvc3gifSkgPT0g
IlRJTUVPVVQiCisgICAgICAgICJleHBlY3RlZCIsIHJ1bl9pbmZvXzIpID09ICJUSU1FT1VUIgog
CiAKK0BweXRlc3QubWFyay54ZmFpbChzeXMudmVyc2lvblswXSA9PSAiMyIsCisgICAgICAgICAg
ICAgICAgICAgcmVhc29uPSJtZXRhZGF0YSBkb2Vzbid0IHN1cHBvcnQgcHkzIikKIGRlZiB0ZXN0
X3VwZGF0ZV9tdWx0aXBsZV8zKCk6Ci0gICAgdGVzdF9pZCA9ICIvcGF0aC90by90ZXN0Lmh0bSIK
ICAgICB0ZXN0cyA9IFsoInBhdGgvdG8vdGVzdC5odG0iLCBbdGVzdF9pZF0sICJ0ZXN0aGFybmVz
cyIsICIiIlt0ZXN0Lmh0bV0KICAgW3Rlc3QxXQogICAgIGV4cGVjdGVkOgpAQCAtMzIyLDE1ICsx
MDA3LDIxIEBAIGRlZiB0ZXN0X3VwZGF0ZV9tdWx0aXBsZV8zKCk6CiAgICAgdXBkYXRlZCA9IHVw
ZGF0ZSh0ZXN0cywgbG9nXzAsIGxvZ18xKQogICAgIG5ld19tYW5pZmVzdCA9IHVwZGF0ZWRbMF1b
MV0KIAorICAgIHJ1bl9pbmZvXzEgPSBkZWZhdWx0X3J1bl9pbmZvLmNvcHkoKQorICAgIHJ1bl9p
bmZvXzEudXBkYXRlKHsiZGVidWciOiBGYWxzZSwgIm9zIjogIm9zeCJ9KQorICAgIHJ1bl9pbmZv
XzIgPSBkZWZhdWx0X3J1bl9pbmZvLmNvcHkoKQorICAgIHJ1bl9pbmZvXzIudXBkYXRlKHsiZGVi
dWciOiBUcnVlLCAib3MiOiAib3N4In0pCisKICAgICBhc3NlcnQgbm90IG5ld19tYW5pZmVzdC5p
c19lbXB0eQogICAgIGFzc2VydCBuZXdfbWFuaWZlc3QuZ2V0X3Rlc3QodGVzdF9pZCkuY2hpbGRy
ZW5bMF0uZ2V0KAotICAgICAgICAiZXhwZWN0ZWQiLCB7ImRlYnVnIjogRmFsc2UsICJvcyI6ICJv
c3gifSkgPT0gIkZBSUwiCisgICAgICAgICJleHBlY3RlZCIsIHJ1bl9pbmZvXzEpID09ICJGQUlM
IgogICAgIGFzc2VydCBuZXdfbWFuaWZlc3QuZ2V0X3Rlc3QodGVzdF9pZCkuY2hpbGRyZW5bMF0u
Z2V0KAotICAgICAgICAiZXhwZWN0ZWQiLCB7ImRlYnVnIjogVHJ1ZSwgIm9zIjogIm9zeCJ9KSA9
PSAiVElNRU9VVCIKKyAgICAgICAgImV4cGVjdGVkIiwgcnVuX2luZm9fMikgPT0gIlRJTUVPVVQi
CiAKIAorQHB5dGVzdC5tYXJrLnhmYWlsKHN5cy52ZXJzaW9uWzBdID09ICIzIiwKKyAgICAgICAg
ICAgICAgICAgICByZWFzb249Im1ldGFkYXRhIGRvZXNuJ3Qgc3VwcG9ydCBweTMiKQogZGVmIHRl
c3RfdXBkYXRlX2lnbm9yZV9leGlzdGluZygpOgotICAgIHRlc3RfaWQgPSAiL3BhdGgvdG8vdGVz
dC5odG0iCiAgICAgdGVzdHMgPSBbKCJwYXRoL3RvL3Rlc3QuaHRtIiwgW3Rlc3RfaWRdLCAidGVz
dGhhcm5lc3MiLCAiIiJbdGVzdC5odG1dCiAgIFt0ZXN0MV0KICAgICBleHBlY3RlZDoKQEAgLTM1
OCwxNSArMTA0OSwzMTggQEAgZGVmIHRlc3RfdXBkYXRlX2lnbm9yZV9leGlzdGluZygpOgogICAg
IHVwZGF0ZWQgPSB1cGRhdGUodGVzdHMsIGxvZ18wLCBsb2dfMSkKICAgICBuZXdfbWFuaWZlc3Qg
PSB1cGRhdGVkWzBdWzFdCiAKKyAgICBydW5faW5mb18xID0gZGVmYXVsdF9ydW5faW5mby5jb3B5
KCkKKyAgICBydW5faW5mb18xLnVwZGF0ZSh7ImRlYnVnIjogRmFsc2UsICJvcyI6ICJsaW51eCJ9
KQorICAgIHJ1bl9pbmZvXzIgPSBkZWZhdWx0X3J1bl9pbmZvLmNvcHkoKQorICAgIHJ1bl9pbmZv
XzIudXBkYXRlKHsiZGVidWciOiBGYWxzZSwgIm9zIjogIm9zeCJ9KQorCisgICAgYXNzZXJ0IG5v
dCBuZXdfbWFuaWZlc3QuaXNfZW1wdHkKKyAgICBhc3NlcnQgbmV3X21hbmlmZXN0LmdldF90ZXN0
KHRlc3RfaWQpLmNoaWxkcmVuWzBdLmdldCgKKyAgICAgICAgImV4cGVjdGVkIiwgcnVuX2luZm9f
MSkgPT0gIkZBSUwiCisgICAgYXNzZXJ0IG5ld19tYW5pZmVzdC5nZXRfdGVzdCh0ZXN0X2lkKS5j
aGlsZHJlblswXS5nZXQoCisgICAgICAgICJleHBlY3RlZCIsIHJ1bl9pbmZvXzIpID09ICJOT1RS
VU4iCisKKworQHB5dGVzdC5tYXJrLnhmYWlsKHN5cy52ZXJzaW9uWzBdID09ICIzIiwKKyAgICAg
ICAgICAgICAgICAgICByZWFzb249Im1ldGFkYXRhIGRvZXNuJ3Qgc3VwcG9ydCBweTMiKQorZGVm
IHRlc3RfdXBkYXRlX25ld190ZXN0KCk6CisgICAgdGVzdHMgPSBbKCJwYXRoL3RvL3Rlc3QuaHRt
IiwgW3Rlc3RfaWRdLCAidGVzdGhhcm5lc3MiLCBOb25lKV0KKworICAgIGxvZ18wID0gc3VpdGVf
bG9nKFsoInRlc3Rfc3RhcnQiLCB7InRlc3QiOiB0ZXN0X2lkfSksCisgICAgICAgICAgICAgICAg
ICAgICAgICgidGVzdF9zdGF0dXMiLCB7InRlc3QiOiB0ZXN0X2lkLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICJzdWJ0ZXN0IjogInRlc3QxIiwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAic3RhdHVzIjogIkZBSUwiLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJleHBlY3RlZCI6ICJQQVNTIn0pLAorICAg
ICAgICAgICAgICAgICAgICAgICAoInRlc3RfZW5kIiwgeyJ0ZXN0IjogdGVzdF9pZCwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAic3RhdHVzIjogIk9LIn0pXSkKKyAgICB1
cGRhdGVkID0gdXBkYXRlKHRlc3RzLCBsb2dfMCkKKyAgICBuZXdfbWFuaWZlc3QgPSB1cGRhdGVk
WzBdWzFdCisKKyAgICBydW5faW5mb18xID0gZGVmYXVsdF9ydW5faW5mby5jb3B5KCkKKworICAg
IGFzc2VydCBub3QgbmV3X21hbmlmZXN0LmlzX2VtcHR5CisgICAgYXNzZXJ0IG5ld19tYW5pZmVz
dC5nZXRfdGVzdCgidGVzdC5odG0iKSBpcyBOb25lCisgICAgYXNzZXJ0IGxlbihuZXdfbWFuaWZl
c3QuZ2V0X3Rlc3QodGVzdF9pZCkuY2hpbGRyZW4pID09IDEKKyAgICBhc3NlcnQgbmV3X21hbmlm
ZXN0LmdldF90ZXN0KHRlc3RfaWQpLmNoaWxkcmVuWzBdLmdldCgKKyAgICAgICAgImV4cGVjdGVk
IiwgcnVuX2luZm9fMSkgPT0gIkZBSUwiCisKKworQHB5dGVzdC5tYXJrLnhmYWlsKHN5cy52ZXJz
aW9uWzBdID09ICIzIiwKKyAgICAgICAgICAgICAgICAgICByZWFzb249Im1ldGFkYXRhIGRvZXNu
J3Qgc3VwcG9ydCBweTMiKQorZGVmIHRlc3RfdXBkYXRlX2R1cGxpY2F0ZSgpOgorICAgIHRlc3Rz
ID0gWygicGF0aC90by90ZXN0Lmh0bSIsIFt0ZXN0X2lkXSwgInRlc3RoYXJuZXNzIiwgIiIiCitb
dGVzdC5odG1dCisgIGV4cGVjdGVkOiBFUlJPUiIiIildCisKKyAgICBsb2dfMCA9IHN1aXRlX2xv
ZyhbKCJ0ZXN0X3N0YXJ0IiwgeyJ0ZXN0IjogdGVzdF9pZH0pLAorICAgICAgICAgICAgICAgICAg
ICAgICAoInRlc3RfZW5kIiwgeyJ0ZXN0IjogdGVzdF9pZCwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAic3RhdHVzIjogIlBBU1MifSldKQorICAgIGxvZ18xID0gc3VpdGVf
bG9nKFsoInRlc3Rfc3RhcnQiLCB7InRlc3QiOiB0ZXN0X2lkfSksCisgICAgICAgICAgICAgICAg
ICAgICAgICgidGVzdF9lbmQiLCB7InRlc3QiOiB0ZXN0X2lkLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICJzdGF0dXMiOiAiRkFJTCJ9KV0pCisKKyAgICB1cGRhdGVkID0g
dXBkYXRlKHRlc3RzLCBsb2dfMCwgbG9nXzEpCisgICAgbmV3X21hbmlmZXN0ID0gdXBkYXRlZFsw
XVsxXQorICAgIHJ1bl9pbmZvXzEgPSBkZWZhdWx0X3J1bl9pbmZvLmNvcHkoKQorCisgICAgYXNz
ZXJ0IG5ld19tYW5pZmVzdC5nZXRfdGVzdCh0ZXN0X2lkKS5nZXQoCisgICAgICAgICJleHBlY3Rl
ZCIsIHJ1bl9pbmZvXzEpID09ICJFUlJPUiIKKworCitAcHl0ZXN0Lm1hcmsueGZhaWwoc3lzLnZl
cnNpb25bMF0gPT0gIjMiLAorICAgICAgICAgICAgICAgICAgIHJlYXNvbj0ibWV0YWRhdGEgZG9l
c24ndCBzdXBwb3J0IHB5MyIpCitkZWYgdGVzdF91cGRhdGVfZGlzYWJsZV9pbnRlcm1pdHRlbnQo
KToKKyAgICB0ZXN0cyA9IFsoInBhdGgvdG8vdGVzdC5odG0iLCBbdGVzdF9pZF0sICJ0ZXN0aGFy
bmVzcyIsICIiIgorW3Rlc3QuaHRtXQorICBleHBlY3RlZDogRVJST1IiIiIpXQorCisgICAgbG9n
XzAgPSBzdWl0ZV9sb2coWygidGVzdF9zdGFydCIsIHsidGVzdCI6IHRlc3RfaWR9KSwKKyAgICAg
ICAgICAgICAgICAgICAgICAgKCJ0ZXN0X2VuZCIsIHsidGVzdCI6IHRlc3RfaWQsCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInN0YXR1cyI6ICJQQVNTIn0pXSkKKyAgICBs
b2dfMSA9IHN1aXRlX2xvZyhbKCJ0ZXN0X3N0YXJ0IiwgeyJ0ZXN0IjogdGVzdF9pZH0pLAorICAg
ICAgICAgICAgICAgICAgICAgICAoInRlc3RfZW5kIiwgeyJ0ZXN0IjogdGVzdF9pZCwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAic3RhdHVzIjogIkZBSUwifSldKQorCisg
ICAgdXBkYXRlZCA9IHVwZGF0ZSh0ZXN0cywgbG9nXzAsIGxvZ18xLCBkaXNhYmxlX2ludGVybWl0
dGVudD0iU29tZSBtZXNzYWdlIikKKyAgICBuZXdfbWFuaWZlc3QgPSB1cGRhdGVkWzBdWzFdCisg
ICAgcnVuX2luZm9fMSA9IGRlZmF1bHRfcnVuX2luZm8uY29weSgpCisKKyAgICBhc3NlcnQgbmV3
X21hbmlmZXN0LmdldF90ZXN0KHRlc3RfaWQpLmdldCgKKyAgICAgICAgImRpc2FibGVkIiwgcnVu
X2luZm9fMSkgPT0gIlNvbWUgbWVzc2FnZSIKKworCitAcHl0ZXN0Lm1hcmsueGZhaWwoc3lzLnZl
cnNpb25bMF0gPT0gIjMiLAorICAgICAgICAgICAgICAgICAgIHJlYXNvbj0ibWV0YWRhdGEgZG9l
c24ndCBzdXBwb3J0IHB5MyIpCitkZWYgdGVzdF91cGRhdGVfc3RhYmlsaXR5X2NvbmRpdGlvbmFs
X2luc3RhYmlsaXR5KCk6CisgICAgdGVzdHMgPSBbKCJwYXRoL3RvL3Rlc3QuaHRtIiwgW3Rlc3Rf
aWRdLCAidGVzdGhhcm5lc3MiLCAiIiIKK1t0ZXN0Lmh0bV0KKyAgZXhwZWN0ZWQ6IEVSUk9SIiIi
KV0KKworICAgIGxvZ18wID0gc3VpdGVfbG9nKFsoInRlc3Rfc3RhcnQiLCB7InRlc3QiOiB0ZXN0
X2lkfSksCisgICAgICAgICAgICAgICAgICAgICAgICgidGVzdF9lbmQiLCB7InRlc3QiOiB0ZXN0
X2lkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJzdGF0dXMiOiAiUEFT
UyJ9KV0sCisgICAgICAgICAgICAgICAgICAgICAgcnVuX2luZm89eyJvcyI6ICJsaW51eCJ9KQor
ICAgIGxvZ18xID0gc3VpdGVfbG9nKFsoInRlc3Rfc3RhcnQiLCB7InRlc3QiOiB0ZXN0X2lkfSks
CisgICAgICAgICAgICAgICAgICAgICAgICgidGVzdF9lbmQiLCB7InRlc3QiOiB0ZXN0X2lkLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJzdGF0dXMiOiAiRkFJTCJ9KV0s
CisgICAgICAgICAgICAgICAgICAgICAgcnVuX2luZm89eyJvcyI6ICJsaW51eCJ9KQorICAgIGxv
Z18yID0gc3VpdGVfbG9nKFsoInRlc3Rfc3RhcnQiLCB7InRlc3QiOiB0ZXN0X2lkfSksCisgICAg
ICAgICAgICAgICAgICAgICAgICgidGVzdF9lbmQiLCB7InRlc3QiOiB0ZXN0X2lkLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJzdGF0dXMiOiAiRkFJTCJ9KV0sCisgICAg
ICAgICAgICAgICAgICAgICAgcnVuX2luZm89eyJvcyI6ICJtYWMifSkKKworICAgIHVwZGF0ZWQg
PSB1cGRhdGUodGVzdHMsIGxvZ18wLCBsb2dfMSwgbG9nXzIsIGRpc2FibGVfaW50ZXJtaXR0ZW50
PSJTb21lIG1lc3NhZ2UiKQorICAgIG5ld19tYW5pZmVzdCA9IHVwZGF0ZWRbMF1bMV0KKyAgICBy
dW5faW5mb18xID0gZGVmYXVsdF9ydW5faW5mby5jb3B5KCkKKyAgICBydW5faW5mb18xLnVwZGF0
ZSh7Im9zIjogImxpbnV4In0pCisgICAgcnVuX2luZm9fMiA9IGRlZmF1bHRfcnVuX2luZm8uY29w
eSgpCisgICAgcnVuX2luZm9fMi51cGRhdGUoeyJvcyI6ICJtYWMifSkKKworICAgIGFzc2VydCBu
ZXdfbWFuaWZlc3QuZ2V0X3Rlc3QodGVzdF9pZCkuZ2V0KAorICAgICAgICAiZGlzYWJsZWQiLCBy
dW5faW5mb18xKSA9PSAiU29tZSBtZXNzYWdlIgorICAgIHdpdGggcHl0ZXN0LnJhaXNlcyhLZXlF
cnJvcik6CisgICAgICAgIGFzc2VydCBuZXdfbWFuaWZlc3QuZ2V0X3Rlc3QodGVzdF9pZCkuZ2V0
KAorICAgICAgICAgICAgImRpc2FibGVkIiwgcnVuX2luZm9fMikKKyAgICBhc3NlcnQgbmV3X21h
bmlmZXN0LmdldF90ZXN0KHRlc3RfaWQpLmdldCgKKyAgICAgICAgImV4cGVjdGVkIiwgcnVuX2lu
Zm9fMikgPT0gIkZBSUwiCisKKworQHB5dGVzdC5tYXJrLnhmYWlsKHN5cy52ZXJzaW9uWzBdID09
ICIzIiwKKyAgICAgICAgICAgICAgICAgICByZWFzb249Im1ldGFkYXRhIGRvZXNuJ3Qgc3VwcG9y
dCBweTMiKQorZGVmIHRlc3RfdXBkYXRlX2Z1bGwoKToKKyAgICB0ZXN0cyA9IFsoInBhdGgvdG8v
dGVzdC5odG0iLCBbdGVzdF9pZF0sICJ0ZXN0aGFybmVzcyIsICIiIlt0ZXN0Lmh0bV0KKyAgW3Rl
c3QxXQorICAgIGV4cGVjdGVkOgorICAgICAgaWYgZGVidWc6IFRJTUVPVVQKKyAgICAgIGlmIG5v
dCBkZWJ1ZyBhbmQgb3MgPT0gIm9zeCI6IE5PVFJVTgorCisgIFt0ZXN0Ml0KKyAgICBleHBlY3Rl
ZDogRkFJTAorCitbdGVzdC5qc10KKyAgW3Rlc3QxXQorICAgIGV4cGVjdGVkOiBGQUlMCisiIiIp
XQorCisgICAgbG9nXzAgPSBzdWl0ZV9sb2coWygidGVzdF9zdGFydCIsIHsidGVzdCI6IHRlc3Rf
aWR9KSwKKyAgICAgICAgICAgICAgICAgICAgICAgKCJ0ZXN0X3N0YXR1cyIsIHsidGVzdCI6IHRl
c3RfaWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInN1YnRlc3Qi
OiAidGVzdDEiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJzdGF0
dXMiOiAiRkFJTCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImV4
cGVjdGVkIjogIlBBU1MifSksCisgICAgICAgICAgICAgICAgICAgICAgICgidGVzdF9lbmQiLCB7
InRlc3QiOiB0ZXN0X2lkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJz
dGF0dXMiOiAiT0sifSldLAorICAgICAgICAgICAgICAgICAgICAgIHJ1bl9pbmZvPXsiZGVidWci
OiBGYWxzZX0pCisKKyAgICBsb2dfMSA9IHN1aXRlX2xvZyhbKCJ0ZXN0X3N0YXJ0IiwgeyJ0ZXN0
IjogdGVzdF9pZH0pLAorICAgICAgICAgICAgICAgICAgICAgICAoInRlc3Rfc3RhdHVzIiwgeyJ0
ZXN0IjogdGVzdF9pZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAi
c3VidGVzdCI6ICJ0ZXN0MSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgInN0YXR1cyI6ICJFUlJPUiIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgImV4cGVjdGVkIjogIlBBU1MifSksCisgICAgICAgICAgICAgICAgICAgICAgICgidGVz
dF9lbmQiLCB7InRlc3QiOiB0ZXN0X2lkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICJzdGF0dXMiOiAiT0sifSldLAorICAgICAgICAgICAgICAgICAgICAgIHJ1bl9pbmZv
PXsiZGVidWciOiBUcnVlfSkKKworICAgIHVwZGF0ZWQgPSB1cGRhdGUodGVzdHMsIGxvZ18wLCBs
b2dfMSwgZnVsbF91cGRhdGU9VHJ1ZSkKKyAgICBuZXdfbWFuaWZlc3QgPSB1cGRhdGVkWzBdWzFd
CisKKyAgICBydW5faW5mb18xID0gZGVmYXVsdF9ydW5faW5mby5jb3B5KCkKKyAgICBydW5faW5m
b18xLnVwZGF0ZSh7ImRlYnVnIjogRmFsc2UsICJvcyI6ICJ3aW4ifSkKKyAgICBydW5faW5mb18y
ID0gZGVmYXVsdF9ydW5faW5mby5jb3B5KCkKKyAgICBydW5faW5mb18yLnVwZGF0ZSh7ImRlYnVn
IjogVHJ1ZSwgIm9zIjogIm9zeCJ9KQorCisgICAgYXNzZXJ0IG5vdCBuZXdfbWFuaWZlc3QuaXNf
ZW1wdHkKKyAgICBhc3NlcnQgbmV3X21hbmlmZXN0LmdldF90ZXN0KCJ0ZXN0LmpzIikgaXMgTm9u
ZQorICAgIGFzc2VydCBsZW4obmV3X21hbmlmZXN0LmdldF90ZXN0KHRlc3RfaWQpLmNoaWxkcmVu
KSA9PSAxCisgICAgYXNzZXJ0IG5ld19tYW5pZmVzdC5nZXRfdGVzdCh0ZXN0X2lkKS5jaGlsZHJl
blswXS5nZXQoCisgICAgICAgICJleHBlY3RlZCIsIHJ1bl9pbmZvXzEpID09ICJGQUlMIgorICAg
IGFzc2VydCBuZXdfbWFuaWZlc3QuZ2V0X3Rlc3QodGVzdF9pZCkuY2hpbGRyZW5bMF0uZ2V0KAor
ICAgICAgICAiZXhwZWN0ZWQiLCBydW5faW5mb18yKSA9PSAiRVJST1IiCisKKworQHB5dGVzdC5t
YXJrLnhmYWlsKHN5cy52ZXJzaW9uWzBdID09ICIzIiwKKyAgICAgICAgICAgICAgICAgICByZWFz
b249Im1ldGFkYXRhIGRvZXNuJ3Qgc3VwcG9ydCBweTMiKQorZGVmIHRlc3RfdXBkYXRlX2Z1bGxf
dW5rbm93bigpOgorICAgIHRlc3RzID0gWygicGF0aC90by90ZXN0Lmh0bSIsIFt0ZXN0X2lkXSwg
InRlc3RoYXJuZXNzIiwgIiIiW3Rlc3QuaHRtXQorICBbdGVzdDFdCisgICAgZXhwZWN0ZWQ6Cisg
ICAgICBpZiByZWxlYXNlX29yX2JldGE6IEVSUk9SCisgICAgICBpZiBub3QgZGVidWcgYW5kIG9z
ID09ICJvc3giOiBOT1RSVU4KKyIiIildCisKKyAgICBsb2dfMCA9IHN1aXRlX2xvZyhbKCJ0ZXN0
X3N0YXJ0IiwgeyJ0ZXN0IjogdGVzdF9pZH0pLAorICAgICAgICAgICAgICAgICAgICAgICAoInRl
c3Rfc3RhdHVzIiwgeyJ0ZXN0IjogdGVzdF9pZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAic3VidGVzdCI6ICJ0ZXN0MSIsCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgInN0YXR1cyI6ICJGQUlMIiwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAiZXhwZWN0ZWQiOiAiUEFTUyJ9KSwKKyAgICAgICAgICAgICAg
ICAgICAgICAgKCJ0ZXN0X2VuZCIsIHsidGVzdCI6IHRlc3RfaWQsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgInN0YXR1cyI6ICJPSyJ9KV0sCisgICAgICAgICAgICAgICAg
ICAgICAgcnVuX2luZm89eyJkZWJ1ZyI6IEZhbHNlLCAicmVsZWFzZV9vcl9iZXRhIjogRmFsc2V9
KQorCisgICAgbG9nXzEgPSBzdWl0ZV9sb2coWygidGVzdF9zdGFydCIsIHsidGVzdCI6IHRlc3Rf
aWR9KSwKKyAgICAgICAgICAgICAgICAgICAgICAgKCJ0ZXN0X3N0YXR1cyIsIHsidGVzdCI6IHRl
c3RfaWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInN1YnRlc3Qi
OiAidGVzdDEiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJzdGF0
dXMiOiAiRkFJTCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImV4
cGVjdGVkIjogIlBBU1MifSksCisgICAgICAgICAgICAgICAgICAgICAgICgidGVzdF9lbmQiLCB7
InRlc3QiOiB0ZXN0X2lkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJz
dGF0dXMiOiAiT0sifSldLAorICAgICAgICAgICAgICAgICAgICAgIHJ1bl9pbmZvPXsiZGVidWci
OiBUcnVlLCAicmVsZWFzZV9vcl9iZXRhIjogRmFsc2V9KQorCisgICAgdXBkYXRlZCA9IHVwZGF0
ZSh0ZXN0cywgbG9nXzAsIGxvZ18xLCBmdWxsX3VwZGF0ZT1UcnVlKQorICAgIG5ld19tYW5pZmVz
dCA9IHVwZGF0ZWRbMF1bMV0KKworICAgIHJ1bl9pbmZvXzEgPSBkZWZhdWx0X3J1bl9pbmZvLmNv
cHkoKQorICAgIHJ1bl9pbmZvXzEudXBkYXRlKHsicmVsZWFzZV9vcl9iZXRhIjogRmFsc2V9KQor
ICAgIHJ1bl9pbmZvXzIgPSBkZWZhdWx0X3J1bl9pbmZvLmNvcHkoKQorICAgIHJ1bl9pbmZvXzIu
dXBkYXRlKHsicmVsZWFzZV9vcl9iZXRhIjogVHJ1ZX0pCisKICAgICBhc3NlcnQgbm90IG5ld19t
YW5pZmVzdC5pc19lbXB0eQogICAgIGFzc2VydCBuZXdfbWFuaWZlc3QuZ2V0X3Rlc3QodGVzdF9p
ZCkuY2hpbGRyZW5bMF0uZ2V0KAotICAgICAgICAiZXhwZWN0ZWQiLCB7ImRlYnVnIjogVHJ1ZSwg
Im9zIjogIm9zeCJ9KSA9PSAiRkFJTCIKKyAgICAgICAgImV4cGVjdGVkIiwgcnVuX2luZm9fMSkg
PT0gIkZBSUwiCiAgICAgYXNzZXJ0IG5ld19tYW5pZmVzdC5nZXRfdGVzdCh0ZXN0X2lkKS5jaGls
ZHJlblswXS5nZXQoCi0gICAgICAgICJleHBlY3RlZCIsIHsiZGVidWciOiBGYWxzZSwgIm9zIjog
Im9zeCJ9KSA9PSAiTk9UUlVOIgorICAgICAgICAiZXhwZWN0ZWQiLCBydW5faW5mb18yKSA9PSAi
RVJST1IiCisKKworCitAcHl0ZXN0Lm1hcmsueGZhaWwoc3lzLnZlcnNpb25bMF0gPT0gIjMiLAor
ICAgICAgICAgICAgICAgICAgIHJlYXNvbj0ibWV0YWRhdGEgZG9lc24ndCBzdXBwb3J0IHB5MyIp
CitkZWYgdGVzdF91cGRhdGVfZGVmYXVsdCgpOgorICAgIHRlc3RzID0gWygicGF0aC90by90ZXN0
Lmh0bSIsIFt0ZXN0X2lkXSwgInRlc3RoYXJuZXNzIiwgIiIiW3Rlc3QuaHRtXQorICBbdGVzdDFd
CisgICAgZXhwZWN0ZWQ6CisgICAgICBpZiBvcyA9PSAibWFjIjogRkFJTAorICAgICAgRVJST1Ii
IiIpXQorCisgICAgbG9nXzAgPSBzdWl0ZV9sb2coWygidGVzdF9zdGFydCIsIHsidGVzdCI6IHRl
c3RfaWR9KSwKKyAgICAgICAgICAgICAgICAgICAgICAgKCJ0ZXN0X3N0YXR1cyIsIHsidGVzdCI6
IHRlc3RfaWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInN1YnRl
c3QiOiAidGVzdDEiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJz
dGF0dXMiOiAiUEFTUyIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ImV4cGVjdGVkIjogIkZBSUwifSksCisgICAgICAgICAgICAgICAgICAgICAgICgidGVzdF9lbmQi
LCB7InRlc3QiOiB0ZXN0X2lkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICJzdGF0dXMiOiAiT0sifSldLAorICAgICAgICAgICAgICAgICAgICAgIHJ1bl9pbmZvPXsib3Mi
OiAibWFjIn0pCisKKyAgICBsb2dfMSA9IHN1aXRlX2xvZyhbKCJ0ZXN0X3N0YXJ0IiwgeyJ0ZXN0
IjogdGVzdF9pZH0pLAorICAgICAgICAgICAgICAgICAgICAgICAoInRlc3Rfc3RhdHVzIiwgeyJ0
ZXN0IjogdGVzdF9pZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAi
c3VidGVzdCI6ICJ0ZXN0MSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgInN0YXR1cyI6ICJQQVNTIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAiZXhwZWN0ZWQiOiAiRVJST1IifSksCisgICAgICAgICAgICAgICAgICAgICAgICgidGVz
dF9lbmQiLCB7InRlc3QiOiB0ZXN0X2lkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICJzdGF0dXMiOiAiT0sifSldLAorICAgICAgICAgICAgICAgICAgICAgIHJ1bl9pbmZv
PXsib3MiOiAibGludXgifSkKKworICAgIHVwZGF0ZWQgPSB1cGRhdGUodGVzdHMsIGxvZ18wLCBs
b2dfMSkKKyAgICBuZXdfbWFuaWZlc3QgPSB1cGRhdGVkWzBdWzFdCisKKyAgICBhc3NlcnQgbmV3
X21hbmlmZXN0LmlzX2VtcHR5CisKKworQHB5dGVzdC5tYXJrLnhmYWlsKHN5cy52ZXJzaW9uWzBd
ID09ICIzIiwKKyAgICAgICAgICAgICAgICAgICByZWFzb249Im1ldGFkYXRhIGRvZXNuJ3Qgc3Vw
cG9ydCBweTMiKQorZGVmIHRlc3RfdXBkYXRlX2RlZmF1bHRfMSgpOgorICAgIHRlc3RzID0gWygi
cGF0aC90by90ZXN0Lmh0bSIsIFt0ZXN0X2lkXSwgInRlc3RoYXJuZXNzIiwgIiIiCitbdGVzdC5o
dG1dCisgIGV4cGVjdGVkOgorICAgIGlmIG9zID09ICJtYWMiOiBUSU1FT1VUCisgICAgRVJST1Ii
IiIpXQorCisgICAgbG9nXzAgPSBzdWl0ZV9sb2coWygidGVzdF9zdGFydCIsIHsidGVzdCI6IHRl
c3RfaWR9KSwKKyAgICAgICAgICAgICAgICAgICAgICAgKCJ0ZXN0X2VuZCIsIHsidGVzdCI6IHRl
c3RfaWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImV4cGVjdGVkIjog
IkVSUk9SIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAic3RhdHVzIjog
IkZBSUwifSldLAorICAgICAgICAgICAgICAgICAgICAgIHJ1bl9pbmZvPXsib3MiOiAibGludXgi
fSkKKworICAgIHVwZGF0ZWQgPSB1cGRhdGUodGVzdHMsIGxvZ18wKQorICAgIG5ld19tYW5pZmVz
dCA9IHVwZGF0ZWRbMF1bMV0KKworICAgIGFzc2VydCBub3QgbmV3X21hbmlmZXN0LmlzX2VtcHR5
CisKKyAgICBydW5faW5mb18xID0gZGVmYXVsdF9ydW5faW5mby5jb3B5KCkKKyAgICBydW5faW5m
b18xLnVwZGF0ZSh7Im9zIjogIm1hYyJ9KQorICAgIHJ1bl9pbmZvXzIgPSBkZWZhdWx0X3J1bl9p
bmZvLmNvcHkoKQorICAgIHJ1bl9pbmZvXzIudXBkYXRlKHsib3MiOiAid2luIn0pCisKKyAgICBh
c3NlcnQgbm90IG5ld19tYW5pZmVzdC5pc19lbXB0eQorICAgIGFzc2VydCBuZXdfbWFuaWZlc3Qu
Z2V0X3Rlc3QodGVzdF9pZCkuZ2V0KAorICAgICAgICAiZXhwZWN0ZWQiLCBydW5faW5mb18xKSA9
PSAiVElNRU9VVCIKKyAgICBhc3NlcnQgbmV3X21hbmlmZXN0LmdldF90ZXN0KHRlc3RfaWQpLmdl
dCgKKyAgICAgICAgImV4cGVjdGVkIiwgcnVuX2luZm9fMikgPT0gIkZBSUwiCiAKIAorQHB5dGVz
dC5tYXJrLnhmYWlsKHN5cy52ZXJzaW9uWzBdID09ICIzIiwKKyAgICAgICAgICAgICAgICAgICBy
ZWFzb249Im1ldGFkYXRhIGRvZXNuJ3Qgc3VwcG9ydCBweTMiKQorZGVmIHRlc3RfdXBkYXRlX2Rl
ZmF1bHRfMigpOgorICAgIHRlc3RzID0gWygicGF0aC90by90ZXN0Lmh0bSIsIFt0ZXN0X2lkXSwg
InRlc3RoYXJuZXNzIiwgIiIiCitbdGVzdC5odG1dCisgIGV4cGVjdGVkOgorICAgIGlmIG9zID09
ICJtYWMiOiBUSU1FT1VUCisgICAgRVJST1IiIiIpXQorCisgICAgbG9nXzAgPSBzdWl0ZV9sb2co
WygidGVzdF9zdGFydCIsIHsidGVzdCI6IHRlc3RfaWR9KSwKKyAgICAgICAgICAgICAgICAgICAg
ICAgKCJ0ZXN0X2VuZCIsIHsidGVzdCI6IHRlc3RfaWQsCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgImV4cGVjdGVkIjogIkVSUk9SIiwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAic3RhdHVzIjogIlRJTUVPVVQifSldLAorICAgICAgICAgICAgICAg
ICAgICAgIHJ1bl9pbmZvPXsib3MiOiAibGludXgifSkKKworICAgIHVwZGF0ZWQgPSB1cGRhdGUo
dGVzdHMsIGxvZ18wKQorICAgIG5ld19tYW5pZmVzdCA9IHVwZGF0ZWRbMF1bMV0KKworICAgIGFz
c2VydCBub3QgbmV3X21hbmlmZXN0LmlzX2VtcHR5CisKKyAgICBydW5faW5mb18xID0gZGVmYXVs
dF9ydW5faW5mby5jb3B5KCkKKyAgICBydW5faW5mb18xLnVwZGF0ZSh7Im9zIjogIm1hYyJ9KQor
ICAgIHJ1bl9pbmZvXzIgPSBkZWZhdWx0X3J1bl9pbmZvLmNvcHkoKQorICAgIHJ1bl9pbmZvXzIu
dXBkYXRlKHsib3MiOiAid2luIn0pCisKKyAgICBhc3NlcnQgbm90IG5ld19tYW5pZmVzdC5pc19l
bXB0eQorICAgIGFzc2VydCBuZXdfbWFuaWZlc3QuZ2V0X3Rlc3QodGVzdF9pZCkuZ2V0KAorICAg
ICAgICAiZXhwZWN0ZWQiLCBydW5faW5mb18xKSA9PSAiVElNRU9VVCIKKyAgICBhc3NlcnQgbmV3
X21hbmlmZXN0LmdldF90ZXN0KHRlc3RfaWQpLmdldCgKKyAgICAgICAgImV4cGVjdGVkIiwgcnVu
X2luZm9fMikgPT0gIlRJTUVPVVQiCisKKworQHB5dGVzdC5tYXJrLnhmYWlsKHN5cy52ZXJzaW9u
WzBdID09ICIzIiwKKyAgICAgICAgICAgICAgICAgICByZWFzb249Im1ldGFkYXRhIGRvZXNuJ3Qg
c3VwcG9ydCBweTMiKQogZGVmIHRlc3RfdXBkYXRlX2Fzc2VydGlvbl9jb3VudF8wKCk6Ci0gICAg
dGVzdF9pZCA9ICIvcGF0aC90by90ZXN0Lmh0bSIKICAgICB0ZXN0cyA9IFsoInBhdGgvdG8vdGVz
dC5odG0iLCBbdGVzdF9pZF0sICJ0ZXN0aGFybmVzcyIsICIiIlt0ZXN0Lmh0bV0KICAgbWF4LWFz
c2VydHM6IDQKICAgbWluLWFzc2VydHM6IDIKQEAgLTM4NCwxMiArMTM3OCwxMyBAQCBkZWYgdGVz
dF91cGRhdGVfYXNzZXJ0aW9uX2NvdW50XzAoKToKICAgICBuZXdfbWFuaWZlc3QgPSB1cGRhdGVk
WzBdWzFdCiAKICAgICBhc3NlcnQgbm90IG5ld19tYW5pZmVzdC5pc19lbXB0eQotICAgIGFzc2Vy
dCBuZXdfbWFuaWZlc3QuZ2V0X3Rlc3QodGVzdF9pZCkuZ2V0KCJtYXgtYXNzZXJ0cyIpID09IDcK
LSAgICBhc3NlcnQgbmV3X21hbmlmZXN0LmdldF90ZXN0KHRlc3RfaWQpLmdldCgibWluLWFzc2Vy
dHMiKSA9PSAyCisgICAgYXNzZXJ0IG5ld19tYW5pZmVzdC5nZXRfdGVzdCh0ZXN0X2lkKS5nZXQo
Im1heC1hc3NlcnRzIikgPT0gIjciCisgICAgYXNzZXJ0IG5ld19tYW5pZmVzdC5nZXRfdGVzdCh0
ZXN0X2lkKS5nZXQoIm1pbi1hc3NlcnRzIikgPT0gIjIiCiAKIAorQHB5dGVzdC5tYXJrLnhmYWls
KHN5cy52ZXJzaW9uWzBdID09ICIzIiwKKyAgICAgICAgICAgICAgICAgICByZWFzb249Im1ldGFk
YXRhIGRvZXNuJ3Qgc3VwcG9ydCBweTMiKQogZGVmIHRlc3RfdXBkYXRlX2Fzc2VydGlvbl9jb3Vu
dF8xKCk6Ci0gICAgdGVzdF9pZCA9ICIvcGF0aC90by90ZXN0Lmh0bSIKICAgICB0ZXN0cyA9IFso
InBhdGgvdG8vdGVzdC5odG0iLCBbdGVzdF9pZF0sICJ0ZXN0aGFybmVzcyIsICIiIlt0ZXN0Lmh0
bV0KICAgbWF4LWFzc2VydHM6IDQKICAgbWluLWFzc2VydHM6IDIKQEAgLTQwNywxMiArMTQwMiwx
MyBAQCBkZWYgdGVzdF91cGRhdGVfYXNzZXJ0aW9uX2NvdW50XzEoKToKICAgICBuZXdfbWFuaWZl
c3QgPSB1cGRhdGVkWzBdWzFdCiAKICAgICBhc3NlcnQgbm90IG5ld19tYW5pZmVzdC5pc19lbXB0
eQotICAgIGFzc2VydCBuZXdfbWFuaWZlc3QuZ2V0X3Rlc3QodGVzdF9pZCkuZ2V0KCJtYXgtYXNz
ZXJ0cyIpID09IDQKKyAgICBhc3NlcnQgbmV3X21hbmlmZXN0LmdldF90ZXN0KHRlc3RfaWQpLmdl
dCgibWF4LWFzc2VydHMiKSA9PSAiNCIKICAgICBhc3NlcnQgbmV3X21hbmlmZXN0LmdldF90ZXN0
KHRlc3RfaWQpLmhhc19rZXkoIm1pbi1hc3NlcnRzIikgaXMgRmFsc2UKIAogCitAcHl0ZXN0Lm1h
cmsueGZhaWwoc3lzLnZlcnNpb25bMF0gPT0gIjMiLAorICAgICAgICAgICAgICAgICAgIHJlYXNv
bj0ibWV0YWRhdGEgZG9lc24ndCBzdXBwb3J0IHB5MyIpCiBkZWYgdGVzdF91cGRhdGVfYXNzZXJ0
aW9uX2NvdW50XzIoKToKLSAgICB0ZXN0X2lkID0gIi9wYXRoL3RvL3Rlc3QuaHRtIgogICAgIHRl
c3RzID0gWygicGF0aC90by90ZXN0Lmh0bSIsIFt0ZXN0X2lkXSwgInRlc3RoYXJuZXNzIiwgIiIi
W3Rlc3QuaHRtXQogICBtYXgtYXNzZXJ0czogNAogICBtaW4tYXNzZXJ0czogMgpAQCAtNDMwLDgg
KzE0MjYsOSBAQCBkZWYgdGVzdF91cGRhdGVfYXNzZXJ0aW9uX2NvdW50XzIoKToKICAgICBhc3Nl
cnQgbm90IHVwZGF0ZWQKIAogCitAcHl0ZXN0Lm1hcmsueGZhaWwoc3lzLnZlcnNpb25bMF0gPT0g
IjMiLAorICAgICAgICAgICAgICAgICAgIHJlYXNvbj0ibWV0YWRhdGEgZG9lc24ndCBzdXBwb3J0
IHB5MyIpCiBkZWYgdGVzdF91cGRhdGVfYXNzZXJ0aW9uX2NvdW50XzMoKToKLSAgICB0ZXN0X2lk
ID0gIi9wYXRoL3RvL3Rlc3QuaHRtIgogICAgIHRlc3RzID0gWygicGF0aC90by90ZXN0Lmh0bSIs
IFt0ZXN0X2lkXSwgInRlc3RoYXJuZXNzIiwgIiIiW3Rlc3QuaHRtXQogICBtYXgtYXNzZXJ0czog
NAogICBtaW4tYXNzZXJ0czogMgpAQCAtNDU5LDEyICsxNDU2LDEzIEBAIGRlZiB0ZXN0X3VwZGF0
ZV9hc3NlcnRpb25fY291bnRfMygpOgogICAgIG5ld19tYW5pZmVzdCA9IHVwZGF0ZWRbMF1bMV0K
IAogICAgIGFzc2VydCBub3QgbmV3X21hbmlmZXN0LmlzX2VtcHR5Ci0gICAgYXNzZXJ0IG5ld19t
YW5pZmVzdC5nZXRfdGVzdCh0ZXN0X2lkKS5nZXQoIm1heC1hc3NlcnRzIikgPT0gOAotICAgIGFz
c2VydCBuZXdfbWFuaWZlc3QuZ2V0X3Rlc3QodGVzdF9pZCkuZ2V0KCJtaW4tYXNzZXJ0cyIpID09
IDIKKyAgICBhc3NlcnQgbmV3X21hbmlmZXN0LmdldF90ZXN0KHRlc3RfaWQpLmdldCgibWF4LWFz
c2VydHMiKSA9PSAiOCIKKyAgICBhc3NlcnQgbmV3X21hbmlmZXN0LmdldF90ZXN0KHRlc3RfaWQp
LmdldCgibWluLWFzc2VydHMiKSA9PSAiMiIKIAogCitAcHl0ZXN0Lm1hcmsueGZhaWwoc3lzLnZl
cnNpb25bMF0gPT0gIjMiLAorICAgICAgICAgICAgICAgICAgIHJlYXNvbj0ibWV0YWRhdGEgZG9l
c24ndCBzdXBwb3J0IHB5MyIpCiBkZWYgdGVzdF91cGRhdGVfYXNzZXJ0aW9uX2NvdW50XzQoKToK
LSAgICB0ZXN0X2lkID0gIi9wYXRoL3RvL3Rlc3QuaHRtIgogICAgIHRlc3RzID0gWygicGF0aC90
by90ZXN0Lmh0bSIsIFt0ZXN0X2lkXSwgInRlc3RoYXJuZXNzIiwgIiIiW3Rlc3QuaHRtXSIiIild
CiAKICAgICBsb2dfMCA9IHN1aXRlX2xvZyhbKCJ0ZXN0X3N0YXJ0IiwgeyJ0ZXN0IjogdGVzdF9p
ZH0pLApAQCAtNDkzLDkgKzE0OTEsOSBAQCBkZWYgdGVzdF91cGRhdGVfYXNzZXJ0aW9uX2NvdW50
XzQoKToKICAgICBhc3NlcnQgbmV3X21hbmlmZXN0LmdldF90ZXN0KHRlc3RfaWQpLmhhc19rZXko
Im1pbi1hc3NlcnRzIikgaXMgRmFsc2UKIAogCitAcHl0ZXN0Lm1hcmsueGZhaWwoc3lzLnZlcnNp
b25bMF0gPT0gIjMiLAorICAgICAgICAgICAgICAgICAgIHJlYXNvbj0ibWV0YWRhdGEgZG9lc24n
dCBzdXBwb3J0IHB5MyIpCiBkZWYgdGVzdF91cGRhdGVfbHNhbl8wKCk6Ci0gICAgdGVzdF9pZCA9
ICIvcGF0aC90by90ZXN0Lmh0bSIKLSAgICBkaXJfaWQgPSAicGF0aC90by9fX2Rpcl9fIgogICAg
IHRlc3RzID0gWygicGF0aC90by90ZXN0Lmh0bSIsIFt0ZXN0X2lkXSwgInRlc3RoYXJuZXNzIiwg
IiIpLAogICAgICAgICAgICAgICgicGF0aC90by9fX2Rpcl9fIiwgW2Rpcl9pZF0sIE5vbmUsICIi
KV0KIApAQCAtNTEwLDkgKzE1MDgsOSBAQCBkZWYgdGVzdF91cGRhdGVfbHNhbl8wKCk6CiAgICAg
YXNzZXJ0IG5ld19tYW5pZmVzdC5nZXQoImxzYW4tYWxsb3dlZCIpID09IFsiZm9vIl0KIAogCitA
cHl0ZXN0Lm1hcmsueGZhaWwoc3lzLnZlcnNpb25bMF0gPT0gIjMiLAorICAgICAgICAgICAgICAg
ICAgIHJlYXNvbj0ibWV0YWRhdGEgZG9lc24ndCBzdXBwb3J0IHB5MyIpCiBkZWYgdGVzdF91cGRh
dGVfbHNhbl8xKCk6Ci0gICAgdGVzdF9pZCA9ICIvcGF0aC90by90ZXN0Lmh0bSIKLSAgICBkaXJf
aWQgPSAicGF0aC90by9fX2Rpcl9fIgogICAgIHRlc3RzID0gWygicGF0aC90by90ZXN0Lmh0bSIs
IFt0ZXN0X2lkXSwgInRlc3RoYXJuZXNzIiwgIiIpLAogICAgICAgICAgICAgICgicGF0aC90by9f
X2Rpcl9fIiwgW2Rpcl9pZF0sIE5vbmUsICIiIgogbHNhbi1hbGxvd2VkOiBbZm9vXSIiIildCkBA
IC01MzAsOSArMTUyOCw5IEBAIGxzYW4tYWxsb3dlZDogW2Zvb10iIiIpXQogICAgIGFzc2VydCBu
ZXdfbWFuaWZlc3QuZ2V0KCJsc2FuLWFsbG93ZWQiKSA9PSBbImJheiIsICJmb28iXQogCiAKK0Bw
eXRlc3QubWFyay54ZmFpbChzeXMudmVyc2lvblswXSA9PSAiMyIsCisgICAgICAgICAgICAgICAg
ICAgcmVhc29uPSJtZXRhZGF0YSBkb2Vzbid0IHN1cHBvcnQgcHkzIikKIGRlZiB0ZXN0X3VwZGF0
ZV9sc2FuXzIoKToKLSAgICB0ZXN0X2lkID0gIi9wYXRoL3RvL3Rlc3QuaHRtIgotICAgIGRpcl9p
ZCA9ICJwYXRoL3RvL19fZGlyX18iCiAgICAgdGVzdHMgPSBbKCJwYXRoL3RvL3Rlc3QuaHRtIiwg
W3Rlc3RfaWRdLCAidGVzdGhhcm5lc3MiLCAiIiksCiAgICAgICAgICAgICAgKCJwYXRoL19fZGly
X18iLCBbInBhdGgvX19kaXJfXyJdLCBOb25lLCAiIiIKIGxzYW4tYWxsb3dlZDogW2Zvb10iIiIp
LApAQCAtNTUyLDkgKzE1NTAsOSBAQCBsc2FuLWFsbG93ZWQ6IFtmb29dIiIiKSwKICAgICBhc3Nl
cnQgbmV3X21hbmlmZXN0LmdldCgibHNhbi1hbGxvd2VkIikgPT0gWyJiYXoiXQogCiAKK0BweXRl
c3QubWFyay54ZmFpbChzeXMudmVyc2lvblswXSA9PSAiMyIsCisgICAgICAgICAgICAgICAgICAg
cmVhc29uPSJtZXRhZGF0YSBkb2Vzbid0IHN1cHBvcnQgcHkzIikKIGRlZiB0ZXN0X3VwZGF0ZV9s
c2FuXzMoKToKLSAgICB0ZXN0X2lkID0gIi9wYXRoL3RvL3Rlc3QuaHRtIgotICAgIGRpcl9pZCA9
ICJwYXRoL3RvL19fZGlyX18iCiAgICAgdGVzdHMgPSBbKCJwYXRoL3RvL3Rlc3QuaHRtIiwgW3Rl
c3RfaWRdLCAidGVzdGhhcm5lc3MiLCAiIiksCiAgICAgICAgICAgICAgKCJwYXRoL3RvL19fZGly
X18iLCBbZGlyX2lkXSwgTm9uZSwgIiIpXQogCkBAIC01NzQsMTMgKzE1NzIsMTUgQEAgZGVmIHRl
c3RfdXBkYXRlX2xzYW5fMygpOgogICAgIGFzc2VydCBuZXdfbWFuaWZlc3QuZ2V0KCJsc2FuLWFs
bG93ZWQiKSA9PSBbImJheiIsICJmb28iXQogCiAKK0BweXRlc3QubWFyay54ZmFpbChzeXMudmVy
c2lvblswXSA9PSAiMyIsCisgICAgICAgICAgICAgICAgICAgcmVhc29uPSJtZXRhZGF0YSBkb2Vz
bid0IHN1cHBvcnQgcHkzIikKIGRlZiB0ZXN0X3VwZGF0ZV93cHRyZXBvcnRfMCgpOgotICAgIHRl
c3RzID0gWygicGF0aC90by90ZXN0Lmh0bSIsIFsiL3BhdGgvdG8vdGVzdC5odG0iXSwgInRlc3Ro
YXJuZXNzIiwKKyAgICB0ZXN0cyA9IFsoInBhdGgvdG8vdGVzdC5odG0iLCBbdGVzdF9pZF0sICJ0
ZXN0aGFybmVzcyIsCiAgICAgICAgICAgICAgICIiIlt0ZXN0Lmh0bV0KICAgW3Rlc3QxXQogICAg
IGV4cGVjdGVkOiBGQUlMIiIiKV0KIAotICAgIGxvZyA9IHsicnVuX2luZm8iOiB7fSwKKyAgICBs
b2cgPSB7InJ1bl9pbmZvIjogZGVmYXVsdF9ydW5faW5mby5jb3B5KCksCiAgICAgICAgICAgICJy
ZXN1bHRzIjogWwogICAgICAgICAgICAgICAgeyJ0ZXN0IjogIi9wYXRoL3RvL3Rlc3QuaHRtIiwK
ICAgICAgICAgICAgICAgICAic3VidGVzdHMiOiBbeyJuYW1lIjogInRlc3QxIiwKQEAgLTU5NCwx
MCArMTU5NCwxMyBAQCBkZWYgdGVzdF91cGRhdGVfd3B0cmVwb3J0XzAoKToKICAgICBhc3NlcnQg
dXBkYXRlZFswXVsxXS5pc19lbXB0eQogCiAKK0BweXRlc3QubWFyay54ZmFpbChzeXMudmVyc2lv
blswXSA9PSAiMyIsCisgICAgICAgICAgICAgICAgICAgcmVhc29uPSJtZXRhZGF0YSBkb2Vzbid0
IHN1cHBvcnQgcHkzIikKIGRlZiB0ZXN0X3VwZGF0ZV93cHRyZXBvcnRfMSgpOgotICAgIHRlc3Rz
ID0gWygicGF0aC90by9fX2Rpcl9fIiwgWyJwYXRoL3RvL19fZGlyX18iXSwgTm9uZSwgIiIpXQor
ICAgIHRlc3RzID0gWygicGF0aC90by90ZXN0Lmh0bSIsIFt0ZXN0X2lkXSwgInRlc3RoYXJuZXNz
IiwgIiIpLAorICAgICAgICAgICAgICgicGF0aC90by9fX2Rpcl9fIiwgW2Rpcl9pZF0sIE5vbmUs
ICIiKV0KIAotICAgIGxvZyA9IHsicnVuX2luZm8iOiB7fSwKKyAgICBsb2cgPSB7InJ1bl9pbmZv
IjogZGVmYXVsdF9ydW5faW5mby5jb3B5KCksCiAgICAgICAgICAgICJyZXN1bHRzIjogW10sCiAg
ICAgICAgICAgICJsc2FuX2xlYWtzIjogW3sic2NvcGUiOiAicGF0aC90by8iLAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgImZyYW1lcyI6IFsiYmF6IiwgImZvb2JhciJdfV19CkBAIC02MDYs
MyArMTYwOSwxMzEgQEAgZGVmIHRlc3RfdXBkYXRlX3dwdHJlcG9ydF8xKCk6CiAKICAgICBhc3Nl
cnQgbGVuKHVwZGF0ZWQpID09IDEKICAgICBhc3NlcnQgdXBkYXRlZFswXVsxXS5nZXQoImxzYW4t
YWxsb3dlZCIpID09IFsiYmF6Il0KKworCitAcHl0ZXN0Lm1hcmsueGZhaWwoc3lzLnZlcnNpb25b
MF0gPT0gIjMiLAorICAgICAgICAgICAgICAgICAgIHJlYXNvbj0ibWV0YWRhdGEgZG9lc24ndCBz
dXBwb3J0IHB5MyIpCitkZWYgdGVzdF91cGRhdGVfbGVha190b3RhbF8wKCk6CisgICAgdGVzdHMg
PSBbKCJwYXRoL3RvL3Rlc3QuaHRtIiwgW3Rlc3RfaWRdLCAidGVzdGhhcm5lc3MiLCAiIiksCisg
ICAgICAgICAgICAgKCJwYXRoL3RvL19fZGlyX18iLCBbZGlyX2lkXSwgTm9uZSwgIiIpXQorCisg
ICAgbG9nXzAgPSBzdWl0ZV9sb2coWygibW96bGVha190b3RhbCIsIHsic2NvcGUiOiAicGF0aC90
by8iLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInByb2Nlc3Mi
OiAiZGVmYXVsdCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAi
Ynl0ZXMiOiAxMDAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAi
dGhyZXNob2xkIjogMCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICJvYmplY3RzIjogW119KV0pCisKKyAgICB1cGRhdGVkID0gdXBkYXRlKHRlc3RzLCBsb2dfMCkK
KyAgICBuZXdfbWFuaWZlc3QgPSB1cGRhdGVkWzBdWzFdCisKKyAgICBhc3NlcnQgbm90IG5ld19t
YW5pZmVzdC5pc19lbXB0eQorICAgIGFzc2VydCBuZXdfbWFuaWZlc3QuZ2V0KCJsZWFrLXRocmVz
aG9sZCIpID09IFsnZGVmYXVsdDo1MTIwMCddCisKKworQHB5dGVzdC5tYXJrLnhmYWlsKHN5cy52
ZXJzaW9uWzBdID09ICIzIiwKKyAgICAgICAgICAgICAgICAgICByZWFzb249Im1ldGFkYXRhIGRv
ZXNuJ3Qgc3VwcG9ydCBweTMiKQorZGVmIHRlc3RfdXBkYXRlX2xlYWtfdG90YWxfMSgpOgorICAg
IHRlc3RzID0gWygicGF0aC90by90ZXN0Lmh0bSIsIFt0ZXN0X2lkXSwgInRlc3RoYXJuZXNzIiwg
IiIpLAorICAgICAgICAgICAgICgicGF0aC90by9fX2Rpcl9fIiwgW2Rpcl9pZF0sIE5vbmUsICIi
KV0KKworICAgIGxvZ18wID0gc3VpdGVfbG9nKFsoIm1vemxlYWtfdG90YWwiLCB7InNjb3BlIjog
InBhdGgvdG8vIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJw
cm9jZXNzIjogImRlZmF1bHQiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgImJ5dGVzIjogMTAwLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgInRocmVzaG9sZCI6IDEwMDAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAib2JqZWN0cyI6IFtdfSldKQorCisgICAgdXBkYXRlZCA9IHVwZGF0ZSh0ZXN0
cywgbG9nXzApCisgICAgYXNzZXJ0IG5vdCB1cGRhdGVkCisKKworQHB5dGVzdC5tYXJrLnhmYWls
KHN5cy52ZXJzaW9uWzBdID09ICIzIiwKKyAgICAgICAgICAgICAgICAgICByZWFzb249Im1ldGFk
YXRhIGRvZXNuJ3Qgc3VwcG9ydCBweTMiKQorZGVmIHRlc3RfdXBkYXRlX2xlYWtfdG90YWxfMigp
OgorICAgIHRlc3RzID0gWygicGF0aC90by90ZXN0Lmh0bSIsIFt0ZXN0X2lkXSwgInRlc3RoYXJu
ZXNzIiwgIiIpLAorICAgICAgICAgICAgICgicGF0aC90by9fX2Rpcl9fIiwgW2Rpcl9pZF0sIE5v
bmUsICIiIgorbGVhay10b3RhbDogMTEwIiIiKV0KKworICAgIGxvZ18wID0gc3VpdGVfbG9nKFso
Im1vemxlYWtfdG90YWwiLCB7InNjb3BlIjogInBhdGgvdG8vIiwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICJwcm9jZXNzIjogImRlZmF1bHQiLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImJ5dGVzIjogMTAwLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInRocmVzaG9sZCI6IDExMCwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJvYmplY3RzIjogW119KV0pCisK
KyAgICB1cGRhdGVkID0gdXBkYXRlKHRlc3RzLCBsb2dfMCkKKyAgICBhc3NlcnQgbm90IHVwZGF0
ZWQKKworCitAcHl0ZXN0Lm1hcmsueGZhaWwoc3lzLnZlcnNpb25bMF0gPT0gIjMiLAorICAgICAg
ICAgICAgICAgICAgIHJlYXNvbj0ibWV0YWRhdGEgZG9lc24ndCBzdXBwb3J0IHB5MyIpCitkZWYg
dGVzdF91cGRhdGVfbGVha190b3RhbF8zKCk6CisgICAgdGVzdHMgPSBbKCJwYXRoL3RvL3Rlc3Qu
aHRtIiwgW3Rlc3RfaWRdLCAidGVzdGhhcm5lc3MiLCAiIiksCisgICAgICAgICAgICAgKCJwYXRo
L3RvL19fZGlyX18iLCBbZGlyX2lkXSwgTm9uZSwgIiIiCitsZWFrLXRvdGFsOiAxMDAiIiIpXQor
CisgICAgbG9nXzAgPSBzdWl0ZV9sb2coWygibW96bGVha190b3RhbCIsIHsic2NvcGUiOiAicGF0
aC90by8iLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInByb2Nl
c3MiOiAiZGVmYXVsdCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAiYnl0ZXMiOiAxMDAwLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgInRocmVzaG9sZCI6IDEwMCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICJvYmplY3RzIjogW119KV0pCisKKyAgICB1cGRhdGVkID0gdXBkYXRlKHRlc3RzLCBs
b2dfMCkKKyAgICBuZXdfbWFuaWZlc3QgPSB1cGRhdGVkWzBdWzFdCisKKyAgICBhc3NlcnQgbm90
IG5ld19tYW5pZmVzdC5pc19lbXB0eQorICAgIGFzc2VydCBuZXdfbWFuaWZlc3QuZ2V0KCJsZWFr
LXRocmVzaG9sZCIpID09IFsnZGVmYXVsdDo1MTIwMCddCisKKworQHB5dGVzdC5tYXJrLnhmYWls
KHN5cy52ZXJzaW9uWzBdID09ICIzIiwKKyAgICAgICAgICAgICAgICAgICByZWFzb249Im1ldGFk
YXRhIGRvZXNuJ3Qgc3VwcG9ydCBweTMiKQorZGVmIHRlc3RfdXBkYXRlX2xlYWtfdG90YWxfNCgp
OgorICAgIHRlc3RzID0gWygicGF0aC90by90ZXN0Lmh0bSIsIFt0ZXN0X2lkXSwgInRlc3RoYXJu
ZXNzIiwgIiIpLAorICAgICAgICAgICAgICgicGF0aC90by9fX2Rpcl9fIiwgW2Rpcl9pZF0sIE5v
bmUsICIiIgorbGVhay10b3RhbDogMTEwIiIiKV0KKworICAgIGxvZ18wID0gc3VpdGVfbG9nKFsK
KyAgICAgICAgKCJsc2FuX2xlYWsiLCB7InNjb3BlIjogInBhdGgvdG8vIiwKKyAgICAgICAgICAg
ICAgICAgICAgICAgImZyYW1lcyI6IFsiZm9vIiwgImJhciJdfSksCisgICAgICAgICgibW96bGVh
a190b3RhbCIsIHsic2NvcGUiOiAicGF0aC90by8iLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgInByb2Nlc3MiOiAiZGVmYXVsdCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAiYnl0
ZXMiOiAxMDAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAidGhyZXNob2xkIjogMTEwLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIm9iamVjdHMiOiBbXX0pXSkKKworICAgIHVwZGF0
ZWQgPSB1cGRhdGUodGVzdHMsIGxvZ18wKQorICAgIG5ld19tYW5pZmVzdCA9IHVwZGF0ZWRbMF1b
MV0KKworICAgIGFzc2VydCBub3QgbmV3X21hbmlmZXN0LmlzX2VtcHR5CisgICAgYXNzZXJ0IG5l
d19tYW5pZmVzdC5oYXNfa2V5KCJsZWFrLXRocmVzaG9sZCIpIGlzIEZhbHNlCisKKworY2xhc3Mg
VGVzdFN0ZXAoU3RlcCk6CisgICAgZGVmIGNyZWF0ZShzZWxmLCBzdGF0ZSk6CisgICAgICAgIHRl
c3RzID0gWygicGF0aC90by90ZXN0Lmh0bSIsIFt0ZXN0X2lkXSwgInRlc3RoYXJuZXNzIiwgIiIp
XQorICAgICAgICBzdGF0ZS5mb28gPSBjcmVhdGVfdGVzdF9tYW5pZmVzdCh0ZXN0cykKKworCitj
bGFzcyBVcGRhdGVSdW5uZXIoU3RlcFJ1bm5lcik6CisgICAgc3RlcHMgPSBbVGVzdFN0ZXBdCisK
KworQHB5dGVzdC5tYXJrLnhmYWlsKHN5cy52ZXJzaW9uWzBdID09ICIzIiwKKyAgICAgICAgICAg
ICAgICAgICByZWFzb249InVwZGF0ZS5zdGF0ZSBkb2Vzbid0IHN1cHBvcnQgcHkzIikKK2RlZiB0
ZXN0X3VwZGF0ZV9waWNrbGUoKToKKyAgICBsb2dnZXIgPSBzdHJ1Y3R1cmVkbG9nLlN0cnVjdHVy
ZWRMb2dnZXIoImV4cGVjdGVkX3Rlc3QiKQorICAgIGFyZ3MgPSB7CisgICAgICAgICJ0ZXN0X3Bh
dGhzIjogeworICAgICAgICAgICAgIi8iOiB7InRlc3RzX3BhdGgiOiBvcy5wYXRoLmFic3BhdGgo
b3MucGF0aC5qb2luKGhlcmUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgb3MucGFyZGlyLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9zLnBhcmRpciwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBv
cy5wYXJkaXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgb3MucGFyZGlyKSl9LAorICAgICAgICB9LAorICAgICAgICAiYWJvcnQi
OiBGYWxzZSwKKyAgICAgICAgImNvbnRpbnVlIjogRmFsc2UsCisgICAgICAgICJzeW5jIjogRmFs
c2UsCisgICAgfQorICAgIGFyZ3MyID0gYXJncy5jb3B5KCkKKyAgICBhcmdzMlsiYWJvcnQiXSA9
IFRydWUKKyAgICB3cHR1cGRhdGUgPSBXUFRVcGRhdGUobG9nZ2VyLCAqKmFyZ3MyKQorICAgIHdw
dHVwZGF0ZSA9IFdQVFVwZGF0ZShsb2dnZXIsIHJ1bm5lcl9jbHM9VXBkYXRlUnVubmVyLCAqKmFy
Z3MpCisgICAgd3B0dXBkYXRlLnJ1bigpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvdGVzdHMv
dGVzdF93cHR0ZXN0LnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3Rlc3RzL3Rlc3Rfd3B0dGVzdC5weQppbmRl
eCA1MjgwZTQ2YTZiMi4uNjlmMjJlYmNiNjggMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci90ZXN0
cy90ZXN0X3dwdHRlc3QucHkKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3Rlc3RzL3Rlc3Rfd3B0dGVzdC5w
eQpAQCAtMSwxMSArMSwxMSBAQAotaW1wb3J0IG9zCitpbXBvcnQgcHl0ZXN0CiBpbXBvcnQgc3lz
CiBmcm9tIGlvIGltcG9ydCBCeXRlc0lPCitmcm9tIG1vY2sgaW1wb3J0IE1vY2sKIAotc3lzLnBh
dGguaW5zZXJ0KDAsIG9zLnBhdGguam9pbihvcy5wYXRoLmRpcm5hbWUoX19maWxlX18pLCAiLi4i
LCAiLi4iKSkKLQotZnJvbSB3cHRydW5uZXIgaW1wb3J0IG1hbmlmZXN0ZXhwZWN0ZWQsIHdwdHRl
c3QKLWZyb20gLnRlc3RfY2h1bmtlciBpbXBvcnQgbWFrZV9tb2NrX21hbmlmZXN0Citmcm9tIG1h
bmlmZXN0IGltcG9ydCBtYW5pZmVzdCBhcyB3cHRtYW5pZmVzdAorZnJvbSBtYW5pZmVzdC5pdGVt
IGltcG9ydCBUZXN0aGFybmVzc1Rlc3QKK2Zyb20gLi4gaW1wb3J0IG1hbmlmZXN0ZXhwZWN0ZWQs
IHdwdHRlc3QKIAogZGlyX2luaV8wID0gIiIiXAogcHJlZnM6IFthOmJdCkBAIC0xOCw2ICsxOCwx
MCBAQCBtaW4tYXNzZXJ0czogMQogdGFnczogW2IsIGNdCiAiIiIKIAorZGlyX2luaV8yID0gIiIi
XAorbHNhbi1tYXgtc3RhY2stZGVwdGg6IDQyCisiIiIKKwogdGVzdF8wID0gIiIiXAogWzAuaHRt
bF0KICAgcHJlZnM6IFtjOmRdCkBAIC0zMyw0MiArMzcsMjA1IEBAIHRlc3RfMSA9ICIiIlwKICAg
ICBpZiBvcyA9PSAnd2luJzogRkFJTAogIiIiCiAKK3Rlc3RfMiA9ICIiIlwKK1syLmh0bWxdCisg
IGxzYW4tbWF4LXN0YWNrLWRlcHRoOiA0MgorIiIiCisKK3Rlc3RfMyA9ICIiIlwKK1szLmh0bWxd
CisgIFtzdWJ0ZXN0MV0KKyAgICBleHBlY3RlZDogW1BBU1MsIEZBSUxdCiAKLWRlZiB0ZXN0X21l
dGFkYXRhX2luaGVyaXQoKToKLSAgICB0ZXN0cyA9IG1ha2VfbW9ja19tYW5pZmVzdCgoInRlc3Qi
LCAiYSIsIDEwKSwgKCJ0ZXN0IiwgImEvYiIsIDEwKSwKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAoInRlc3QiLCAiYyIsIDEwKSkKKyAgW3N1YnRlc3QyXQorICAgIGRpc2FibGVkOiBy
ZWFzb24KKworICBbc3VidGVzdDNdCisgICAgZXhwZWN0ZWQ6IEZBSUwKKyIiIgorCit0ZXN0XzQg
PSAiIiJcCitbNC5odG1sXQorICBleHBlY3RlZDogRkFJTAorIiIiCisKK3Rlc3RfNSA9ICIiIlwK
K1s1Lmh0bWxdCisiIiIKKwordGVzdF82ID0gIiIiXAorWzYuaHRtbF0KKyAgZXhwZWN0ZWQ6IFtP
SywgRkFJTF0KKyIiIgorCit0ZXN0XzcgPSAiIiJcCitbNy5odG1sXQorICBibGlua19leHBlY3Rf
YW55X3N1YnRlc3Rfc3RhdHVzOiB5ZXAKKyIiIgogCit0ZXN0X2Z1enp5ID0gIiIiXAorW2Z1enp5
Lmh0bWxdCisgIGZ1enp5OiBmdXp6eS1yZWYuaHRtbDoxOzIwMAorIiIiCisKKwordGVzdGhhcm5l
c3NfdGVzdCA9ICIiIjxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3Nj
cmlwdD4KKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3Nj
cmlwdD4iIiIKKworCitkZWYgbWFrZV9tb2NrX21hbmlmZXN0KCppdGVtcyk6CisgICAgcnYgPSBN
b2NrKHRlc3RzX3Jvb3Q9Ii9mb29iYXIiKQorICAgIHRlc3RzID0gW10KKyAgICBydi5fX2l0ZXJf
XyA9IGxhbWJkYSBzZWxmOiBpdGVyKHRlc3RzKQorICAgIHJ2Ll9fZ2V0aXRlbV9fID0gbGFtYmRh
IHNlbGYsIGs6IHRlc3RzW2tdCisgICAgZm9yIHRlc3RfdHlwZSwgZGlyX3BhdGgsIG51bV90ZXN0
cyBpbiBpdGVtczoKKyAgICAgICAgZm9yIGkgaW4gcmFuZ2UobnVtX3Rlc3RzKToKKyAgICAgICAg
ICAgIGZpbGVuYW1lID0gZGlyX3BhdGggKyAiLyVpLmh0bWwiICUgaQorICAgICAgICAgICAgdGVz
dHMuYXBwZW5kKCh0ZXN0X3R5cGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGVuYW1l
LAorICAgICAgICAgICAgICAgICAgICAgICAgICB7VGVzdGhhcm5lc3NUZXN0KCIvZm9vLmJhciIs
IGZpbGVuYW1lLCAiLyIsIGZpbGVuYW1lKX0pKQorICAgIHJldHVybiBydgorCitkZWYgbWFrZV90
ZXN0X29iamVjdCh0ZXN0X25hbWUsCisgICAgICAgICAgICAgICAgICAgICB0ZXN0X3BhdGgsCisg
ICAgICAgICAgICAgICAgICAgICBpbmRleCwKKyAgICAgICAgICAgICAgICAgICAgIGl0ZW1zLAor
ICAgICAgICAgICAgICAgICAgICAgaW5oZXJpdF9tZXRhZGF0YT1Ob25lLAorICAgICAgICAgICAg
ICAgICAgICAgaXRlcmF0ZT1GYWxzZSwKKyAgICAgICAgICAgICAgICAgICAgIGNvbmRpdGlvbj1O
b25lKToKKyAgICBpbmhlcml0X21ldGFkYXRhID0gaW5oZXJpdF9tZXRhZGF0YSBpZiBpbmhlcml0
X21ldGFkYXRhIGlzIG5vdCBOb25lIGVsc2UgW10KKyAgICBjb25kaXRpb24gPSBjb25kaXRpb24g
aWYgY29uZGl0aW9uIGlzIG5vdCBOb25lIGVsc2Uge30KKyAgICB0ZXN0cyA9IG1ha2VfbW9ja19t
YW5pZmVzdCgqaXRlbXMpIGlmIGlzaW5zdGFuY2UoaXRlbXMsIGxpc3QpIGVsc2UgbWFrZV9tb2Nr
X21hbmlmZXN0KGl0ZW1zKQorCisgICAgdGVzdF9tZXRhZGF0YSA9IG1hbmlmZXN0ZXhwZWN0ZWQu
c3RhdGljLmNvbXBpbGUoQnl0ZXNJTyh0ZXN0X25hbWUpLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbmRpdGlvbiwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhX2Nsc19nZXR0ZXI9bWFu
aWZlc3RleHBlY3RlZC5kYXRhX2Nsc19nZXR0ZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgdGVzdF9wYXRoPXRlc3RfcGF0aCwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1cmxfYmFzZT0iLyIp
CisKKyAgICB0ZXN0ID0gbmV4dChpdGVyKHRlc3RzW2luZGV4XVsyXSkpIGlmIGl0ZXJhdGUgZWxz
ZSB0ZXN0c1tpbmRleF1bMl0ucG9wKCkKKyAgICByZXR1cm4gd3B0dGVzdC5mcm9tX21hbmlmZXN0
KHRlc3RzLCB0ZXN0LCBpbmhlcml0X21ldGFkYXRhLCB0ZXN0X21ldGFkYXRhLmdldF90ZXN0KHRl
c3QuaWQpKQorCisKK0BweXRlc3QubWFyay54ZmFpbChzeXMudmVyc2lvblswXSA9PSAiMyIsCisg
ICAgICAgICAgICAgICAgICAgcmVhc29uPSJieXRlcy90ZXh0IGNvbmZ1c2lvbiBpbiBweTMiKQor
ZGVmIHRlc3RfbWV0YWRhdGFfaW5oZXJpdCgpOgorICAgIGl0ZW1zID0gWygidGVzdCIsICJhIiwg
MTApLCAoInRlc3QiLCAiYS9iIiwgMTApLCAoInRlc3QiLCAiYyIsIDEwKV0KICAgICBpbmhlcml0
X21ldGFkYXRhID0gWwogICAgICAgICBtYW5pZmVzdGV4cGVjdGVkLnN0YXRpYy5jb21waWxlKAog
ICAgICAgICAgICAgQnl0ZXNJTyhpdGVtKSwKICAgICAgICAgICAgIHt9LAogICAgICAgICAgICAg
ZGF0YV9jbHNfZ2V0dGVyPWxhbWJkYSB4LHk6IG1hbmlmZXN0ZXhwZWN0ZWQuRGlyZWN0b3J5TWFu
aWZlc3QpCiAgICAgICAgIGZvciBpdGVtIGluIFtkaXJfaW5pXzAsIGRpcl9pbmlfMV1dCi0gICAg
dGVzdF9tZXRhZGF0YSA9IG1hbmlmZXN0ZXhwZWN0ZWQuc3RhdGljLmNvbXBpbGUoQnl0ZXNJTyh0
ZXN0XzApLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHt9LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGRhdGFfY2xzX2dldHRlcj1tYW5pZmVzdGV4cGVjdGVkLmRhdGFfY2xzX2dldHRlciwKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0X3Bh
dGg9ImEiLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHVybF9iYXNlPSIiKQogCi0gICAgdGVzdCA9IHRlc3RzWzBdWzJdLnBvcCgpCi0gICAgdGVz
dF9vYmogPSB3cHR0ZXN0LmZyb21fbWFuaWZlc3QodGVzdCwgaW5oZXJpdF9tZXRhZGF0YSwgdGVz
dF9tZXRhZGF0YS5nZXRfdGVzdCh0ZXN0LmlkKSkKKyAgICB0ZXN0X29iaiA9IG1ha2VfdGVzdF9v
YmplY3QodGVzdF8wLCAiYS8wLmh0bWwiLCAwLCBpdGVtcywgaW5oZXJpdF9tZXRhZGF0YSwgVHJ1
ZSkKKwogICAgIGFzc2VydCB0ZXN0X29iai5tYXhfYXNzZXJ0aW9uX2NvdW50ID09IDMKICAgICBh
c3NlcnQgdGVzdF9vYmoubWluX2Fzc2VydGlvbl9jb3VudCA9PSAxCiAgICAgYXNzZXJ0IHRlc3Rf
b2JqLnByZWZzID09IHsiYiI6ICJjIiwgImMiOiAiZCJ9CiAgICAgYXNzZXJ0IHRlc3Rfb2JqLnRh
Z3MgPT0geyJhIiwgImRpcjphIn0KIAogCitAcHl0ZXN0Lm1hcmsueGZhaWwoc3lzLnZlcnNpb25b
MF0gPT0gIjMiLAorICAgICAgICAgICAgICAgICAgIHJlYXNvbj0iYnl0ZXMvdGV4dCBjb25mdXNp
b24gaW4gcHkzIikKIGRlZiB0ZXN0X2NvbmRpdGlvbmFsKCk6Ci0gICAgdGVzdHMgPSBtYWtlX21v
Y2tfbWFuaWZlc3QoKCJ0ZXN0IiwgImEiLCAxMCksICgidGVzdCIsICJhL2IiLCAxMCksCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgKCJ0ZXN0IiwgImMiLCAxMCkpCisgICAgaXRlbXMg
PSBbKCJ0ZXN0IiwgImEiLCAxMCksICgidGVzdCIsICJhL2IiLCAxMCksICgidGVzdCIsICJjIiwg
MTApXQogCi0gICAgdGVzdF9tZXRhZGF0YSA9IG1hbmlmZXN0ZXhwZWN0ZWQuc3RhdGljLmNvbXBp
bGUoQnl0ZXNJTyh0ZXN0XzEpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHsib3MiOiAid2luIn0sCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YV9jbHNfZ2V0dGVyPW1hbmlmZXN0ZXhwZWN0
ZWQuZGF0YV9jbHNfZ2V0dGVyLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHRlc3RfcGF0aD0iYSIsCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgdXJsX2Jhc2U9IiIpCisgICAgdGVzdF9vYmogPSBt
YWtlX3Rlc3Rfb2JqZWN0KHRlc3RfMSwgImEvMS5odG1sIiwgMSwgaXRlbXMsIE5vbmUsIFRydWUs
IHsib3MiOiAid2luIn0pCiAKLSAgICB0ZXN0ID0gdGVzdHNbMV1bMl0ucG9wKCkKLSAgICB0ZXN0
X29iaiA9IHdwdHRlc3QuZnJvbV9tYW5pZmVzdCh0ZXN0LCBbXSwgdGVzdF9tZXRhZGF0YS5nZXRf
dGVzdCh0ZXN0LmlkKSkKICAgICBhc3NlcnQgdGVzdF9vYmoucHJlZnMgPT0geyJhIjogImIiLCAi
YyI6ICJkIn0KICAgICBhc3NlcnQgdGVzdF9vYmouZXhwZWN0ZWQoKSA9PSAiRkFJTCIKKworCitA
cHl0ZXN0Lm1hcmsueGZhaWwoc3lzLnZlcnNpb25bMF0gPT0gIjMiLAorICAgICAgICAgICAgICAg
ICAgIHJlYXNvbj0iYnl0ZXMvdGV4dCBjb25mdXNpb24gaW4gcHkzIikKK2RlZiB0ZXN0X21ldGFk
YXRhX2xzYW5fc3RhY2tfZGVwdGgoKToKKyAgICBpdGVtcyA9IFsoInRlc3QiLCAiYSIsIDEwKSwg
KCJ0ZXN0IiwgImEvYiIsIDEwKV0KKworICAgIHRlc3Rfb2JqID0gbWFrZV90ZXN0X29iamVjdCh0
ZXN0XzIsICJhLzIuaHRtbCIsIDIsIGl0ZW1zLCBOb25lLCBUcnVlKQorCisgICAgYXNzZXJ0IHRl
c3Rfb2JqLmxzYW5fbWF4X3N0YWNrX2RlcHRoID09IDQyCisKKyAgICB0ZXN0X29iaiA9IG1ha2Vf
dGVzdF9vYmplY3QodGVzdF8yLCAiYS8yLmh0bWwiLCAxLCBpdGVtcywgTm9uZSwgVHJ1ZSkKKwor
ICAgIGFzc2VydCB0ZXN0X29iai5sc2FuX21heF9zdGFja19kZXB0aCBpcyBOb25lCisKKyAgICBp
bmhlcml0X21ldGFkYXRhID0gWworICAgICAgICBtYW5pZmVzdGV4cGVjdGVkLnN0YXRpYy5jb21w
aWxlKAorICAgICAgICAgICAgQnl0ZXNJTyhkaXJfaW5pXzIpLAorICAgICAgICAgICAge30sCisg
ICAgICAgICAgICBkYXRhX2Nsc19nZXR0ZXI9bGFtYmRhIHgseTogbWFuaWZlc3RleHBlY3RlZC5E
aXJlY3RvcnlNYW5pZmVzdCkKKyAgICBdCisKKyAgICB0ZXN0X29iaiA9IG1ha2VfdGVzdF9vYmpl
Y3QodGVzdF8wLCAiYS8wL2h0bWwiLCAwLCBpdGVtcywgaW5oZXJpdF9tZXRhZGF0YSwgRmFsc2Up
CisKKyAgICBhc3NlcnQgdGVzdF9vYmoubHNhbl9tYXhfc3RhY2tfZGVwdGggPT0gNDIKKworCitA
cHl0ZXN0Lm1hcmsueGZhaWwoc3lzLnZlcnNpb25bMF0gPT0gIjMiLAorICAgICAgICAgICAgICAg
ICAgIHJlYXNvbj0iYnl0ZXMvdGV4dCBjb25mdXNpb24gaW4gcHkzIikKK2RlZiB0ZXN0X3N1YnRl
c3RzKCk6CisgICAgdGVzdF9vYmogPSBtYWtlX3Rlc3Rfb2JqZWN0KHRlc3RfMywgImEvMy5odG1s
IiwgMywgKCJ0ZXN0IiwgImEiLCA0KSwgTm9uZSwgRmFsc2UpCisgICAgYXNzZXJ0IHRlc3Rfb2Jq
LmV4cGVjdGVkKCJzdWJ0ZXN0MSIpID09ICJQQVNTIgorICAgIGFzc2VydCB0ZXN0X29iai5rbm93
bl9pbnRlcm1pdHRlbnQoInN1YnRlc3QxIikgPT0gWyJGQUlMIl0KKyAgICBhc3NlcnQgdGVzdF9v
YmouZXhwZWN0ZWQoInN1YnRlc3QyIikgPT0gIlBBU1MiCisgICAgYXNzZXJ0IHRlc3Rfb2JqLmtu
b3duX2ludGVybWl0dGVudCgic3VidGVzdDIiKSA9PSBbXQorICAgIGFzc2VydCB0ZXN0X29iai5l
eHBlY3RlZCgic3VidGVzdDMiKSA9PSAiRkFJTCIKKyAgICBhc3NlcnQgdGVzdF9vYmoua25vd25f
aW50ZXJtaXR0ZW50KCJzdWJ0ZXN0MyIpID09IFtdCisKKworQHB5dGVzdC5tYXJrLnhmYWlsKHN5
cy52ZXJzaW9uWzBdID09ICIzIiwKKyAgICAgICAgICAgICAgICAgICByZWFzb249ImJ5dGVzL3Rl
eHQgY29uZnVzaW9uIGluIHB5MyIpCitkZWYgdGVzdF9leHBlY3RlZF9mYWlsKCk6CisgICAgdGVz
dF9vYmogPSBtYWtlX3Rlc3Rfb2JqZWN0KHRlc3RfNCwgImEvNC5odG1sIiwgNCwgKCJ0ZXN0Iiwg
ImEiLCA1KSwgTm9uZSwgRmFsc2UpCisgICAgYXNzZXJ0IHRlc3Rfb2JqLmV4cGVjdGVkKCkgPT0g
IkZBSUwiCisgICAgYXNzZXJ0IHRlc3Rfb2JqLmtub3duX2ludGVybWl0dGVudCgpID09IFtdCisK
KworQHB5dGVzdC5tYXJrLnhmYWlsKHN5cy52ZXJzaW9uWzBdID09ICIzIiwKKyAgICAgICAgICAg
ICAgICAgICByZWFzb249ImJ5dGVzL3RleHQgY29uZnVzaW9uIGluIHB5MyIpCitkZWYgdGVzdF9u
b19leHBlY3RlZCgpOgorICAgIHRlc3Rfb2JqID0gbWFrZV90ZXN0X29iamVjdCh0ZXN0XzUsICJh
LzUuaHRtbCIsIDUsICgidGVzdCIsICJhIiwgNiksIE5vbmUsIEZhbHNlKQorICAgIGFzc2VydCB0
ZXN0X29iai5leHBlY3RlZCgpID09ICJPSyIKKyAgICBhc3NlcnQgdGVzdF9vYmoua25vd25faW50
ZXJtaXR0ZW50KCkgPT0gW10KKworCitAcHl0ZXN0Lm1hcmsueGZhaWwoc3lzLnZlcnNpb25bMF0g
PT0gIjMiLAorICAgICAgICAgICAgICAgICAgIHJlYXNvbj0iYnl0ZXMvdGV4dCBjb25mdXNpb24g
aW4gcHkzIikKK2RlZiB0ZXN0X2tub3duX2ludGVybWl0dGVudCgpOgorICAgIHRlc3Rfb2JqID0g
bWFrZV90ZXN0X29iamVjdCh0ZXN0XzYsICJhLzYuaHRtbCIsIDYsICgidGVzdCIsICJhIiwgNyks
IE5vbmUsIEZhbHNlKQorICAgIGFzc2VydCB0ZXN0X29iai5leHBlY3RlZCgpID09ICJPSyIKKyAg
ICBhc3NlcnQgdGVzdF9vYmoua25vd25faW50ZXJtaXR0ZW50KCkgPT0gWyJGQUlMIl0KKworCitA
cHl0ZXN0Lm1hcmsueGZhaWwoc3lzLnZlcnNpb25bMF0gPT0gIjMiLAorICAgICAgICAgICAgICAg
ICAgIHJlYXNvbj0iYnl0ZXMvdGV4dCBjb25mdXNpb24gaW4gcHkzIikKK2RlZiB0ZXN0X2V4cGVj
dF9hbnlfc3VidGVzdF9zdGF0dXMoKToKKyAgICB0ZXN0X29iaiA9IG1ha2VfdGVzdF9vYmplY3Qo
dGVzdF83LCAiYS83Lmh0bWwiLCA3LCAoInRlc3QiLCAiYSIsIDgpLCBOb25lLCBGYWxzZSkKKyAg
ICBhc3NlcnQgdGVzdF9vYmouZXhwZWN0ZWQoKSA9PSAiT0siCisgICAgYXNzZXJ0IHRlc3Rfb2Jq
LmV4cGVjdF9hbnlfc3VidGVzdF9zdGF0dXMoKSBpcyBUcnVlCisKKworQHB5dGVzdC5tYXJrLnhm
YWlsKHN5cy52ZXJzaW9uWzBdID09ICIzIiwKKyAgICAgICAgICAgICAgICAgICByZWFzb249ImJ5
dGVzL3RleHQgY29uZnVzaW9uIGluIHB5MyIpCitkZWYgdGVzdF9tZXRhZGF0YV9mdXp6eSgpOgor
ICAgIG1hbmlmZXN0X2RhdGEgPSB7CisgICAgICAgICJpdGVtcyI6IHsicmVmdGVzdCI6IHsiYS9m
dXp6eS5odG1sIjogW1siYS9mdXp6eS5odG1sIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIFtbIi9hL2Z1enp5LXJlZi5odG1sIiwgIj09Il1dLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyJmdXp6eSI6IFtb
WyIvYS9mdXp6eS5odG1sIiwgJy9hL2Z1enp5LXJlZi5odG1sJywgJz09J10sCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbWzIsIDNd
LCBbMTAsIDE1XV1dXX1dXX19LAorICAgICAgICAicGF0aHMiOiB7ImEvZnV6enkuaHRtbCI6IFsi
MCIqNDAsICJyZWZ0ZXN0Il19LAorICAgICAgICAidmVyc2lvbiI6IDYsCisgICAgICAgICJ1cmxf
YmFzZSI6ICIvIn0KKyAgICBtYW5pZmVzdCA9IHdwdG1hbmlmZXN0Lk1hbmlmZXN0LmZyb21fanNv
bigiLiIsIG1hbmlmZXN0X2RhdGEpCisgICAgdGVzdF9tZXRhZGF0YSA9IG1hbmlmZXN0ZXhwZWN0
ZWQuc3RhdGljLmNvbXBpbGUoQnl0ZXNJTyh0ZXN0X2Z1enp5KSwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7fSwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhX2Nsc19nZXR0ZXI9bWFuaWZl
c3RleHBlY3RlZC5kYXRhX2Nsc19nZXR0ZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgdGVzdF9wYXRoPSJhL2Z1enp5Lmh0bWwiLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVybF9iYXNlPSIv
IikKKworICAgIHRlc3QgPSBtYW5pZmVzdC5pdGVycGF0aCgiYS9mdXp6eS5odG1sIikubmV4dCgp
CisgICAgdGVzdF9vYmogPSB3cHR0ZXN0LmZyb21fbWFuaWZlc3QobWFuaWZlc3QsIHRlc3QsIFtd
LCB0ZXN0X21ldGFkYXRhLmdldF90ZXN0KHRlc3QuaWQpKQorCisgICAgYXNzZXJ0IHRlc3Rfb2Jq
LmZ1enp5ID09IHsoJy9hL2Z1enp5Lmh0bWwnLCAnL2EvZnV6enktcmVmLmh0bWwnLCAnPT0nKTog
W1syLCAzXSwgWzEwLCAxNV1dfQorICAgIGFzc2VydCB0ZXN0X29iai5mdXp6eV9vdmVycmlkZSA9
PSB7Jy9hL2Z1enp5LXJlZi5odG1sJzogKCgxLCAxKSwgKDIwMCwgMjAwKSl9CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1
bm5lci93cHRydW5uZXIvdGVzdHMvdzNjLWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvdGVzdHMv
dzNjLWltcG9ydC5sb2cKaW5kZXggMGUyNzc4YWFiZmIuLjEyNTM2OTM2ZTYyIDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1
bm5lci93cHRydW5uZXIvdGVzdHMvdzNjLWltcG9ydC5sb2cKKysrIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3Rl
c3RzL3czYy1pbXBvcnQubG9nCkBAIC0xNiw4ICsxNiw5IEBAIE5vbmUKIExpc3Qgb2YgZmlsZXM6
CiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRy
dW5uZXIvd3B0cnVubmVyL3Rlc3RzL19faW5pdF9fLnB5CiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3Rlc3RzL2Jh
c2UucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3dwdHJ1bm5lci93cHRydW5uZXIvdGVzdHMvdGVzdF9jaHVua2VyLnB5CisvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVy
L3Rlc3RzL3Rlc3RfZXhwZWN0ZWR0cmVlLnB5CiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3Rlc3RzL3Rlc3RfZm9y
bWF0dGVycy5weQorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci90ZXN0cy90ZXN0X21hbmlmZXN0ZXhwZWN0ZWQucHkK
IC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1
bm5lci93cHRydW5uZXIvdGVzdHMvdGVzdF9wcm9kdWN0cy5weQogL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci90ZXN0
cy90ZXN0X3N0YWJpbGl0eS5weQogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci90ZXN0cy90ZXN0X3Rlc3Rsb2FkZXIu
cHkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci91cGRhdGUvX19pbml0X18ucHkgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRy
dW5uZXIvdXBkYXRlL19faW5pdF9fLnB5CmluZGV4IDlmZjNlNjlmOTRlLi4yNjI2MTgzZmM4MCAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy93cHRydW5uZXIvd3B0cnVubmVyL3VwZGF0ZS9fX2luaXRfXy5weQorKysgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRy
dW5uZXIvdXBkYXRlL19faW5pdF9fLnB5CkBAIC00LDcgKzQsNyBAQCBmcm9tIG1vemxvZy5zdHJ1
Y3R1cmVkIGltcG9ydCBzdHJ1Y3R1cmVkbG9nLCBjb21tYW5kbGluZQogCiBmcm9tIC4uIGltcG9y
dCB3cHRjb21tYW5kbGluZQogCi1mcm9tIHVwZGF0ZSBpbXBvcnQgV1BUVXBkYXRlCitmcm9tIC51
cGRhdGUgaW1wb3J0IFdQVFVwZGF0ZQogCiBkZWYgcmVtb3ZlX2xvZ2dpbmdfYXJncyhhcmdzKToK
ICAgICAiIiJUYWtlIGxvZ2dpbmcgYXJncyBvdXQgb2YgdGhlIGRpY3Rpb25hcnkgb2YgY29tbWFu
ZCBsaW5lIGFyZ3VtZW50cyBzbwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3VwZGF0ZS9tZXRh
ZGF0YS5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvd3B0cnVubmVyL3dwdHJ1bm5lci91cGRhdGUvbWV0YWRhdGEucHkKaW5kZXggNWM0MmZhMzI2
NzEuLjRiYzcwZDMxMTA0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvdXBkYXRlL21ldGFkYXRh
LnB5CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvd3B0cnVubmVyL3dwdHJ1bm5lci91cGRhdGUvbWV0YWRhdGEucHkKQEAgLTIsMTcgKzIsMTQg
QEAgaW1wb3J0IG9zCiAKIGZyb20gLi4gaW1wb3J0IG1ldGFkYXRhLCBwcm9kdWN0cwogCi1mcm9t
IGJhc2UgaW1wb3J0IFN0ZXAsIFN0ZXBSdW5uZXIKK2Zyb20gLmJhc2UgaW1wb3J0IFN0ZXAsIFN0
ZXBSdW5uZXIKIAogCiBjbGFzcyBHZXRVcGRhdGVQcm9wZXJ0eUxpc3QoU3RlcCk6Ci0gICAgcHJv
dmlkZXMgPSBbInByb3BlcnR5X29yZGVyIiwgImJvb2xlYW5fcHJvcGVydGllcyJdCisgICAgcHJv
dmlkZXMgPSBbInVwZGF0ZV9wcm9wZXJ0aWVzIl0KIAogICAgIGRlZiBjcmVhdGUoc2VsZiwgc3Rh
dGUpOgotICAgICAgICBwcm9wZXJ0eV9vcmRlciwgYm9vbGVhbl9wcm9wZXJ0aWVzID0gcHJvZHVj
dHMubG9hZF9wcm9kdWN0X3VwZGF0ZSgKLSAgICAgICAgICAgIHN0YXRlLmNvbmZpZywgc3RhdGUu
cHJvZHVjdCkKLSAgICAgICAgc3RhdGUucHJvcGVydHlfb3JkZXIgPSBwcm9wZXJ0eV9vcmRlciAr
IHN0YXRlLmV4dHJhX3Byb3BlcnRpZXMKLSAgICAgICAgc3RhdGUuYm9vbGVhbl9wcm9wZXJ0aWVz
ID0gYm9vbGVhbl9wcm9wZXJ0aWVzCisgICAgICAgIHN0YXRlLnVwZGF0ZV9wcm9wZXJ0aWVzID0g
cHJvZHVjdHMubG9hZF9wcm9kdWN0X3VwZGF0ZShzdGF0ZS5jb25maWcsIHN0YXRlLnByb2R1Y3Qp
CiAKIAogY2xhc3MgVXBkYXRlRXhwZWN0ZWQoU3RlcCk6CkBAIC0yNywxMiArMjQsMTMgQEAgY2xh
c3MgVXBkYXRlRXhwZWN0ZWQoU3RlcCk6CiAgICAgICAgIG1ldGFkYXRhLnVwZGF0ZV9leHBlY3Rl
ZChzdGF0ZS5wYXRocywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRlLnNl
cnZlX3Jvb3QsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0ZS5ydW5fbG9n
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXBkYXRlX3Byb3BlcnRpZXM9c3Rh
dGUudXBkYXRlX3Byb3BlcnRpZXMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBy
ZXZfb2xkPU5vbmUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZ25vcmVfZXhp
c3Rpbmc9c3RhdGUuaWdub3JlX2V4aXN0aW5nLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgZnVsbF91cGRhdGU9c3RhdGUuZnVsbF91cGRhdGUsCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBzeW5jX3Jvb3Q9c3luY19yb290LAotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgcHJvcGVydHlfb3JkZXI9c3RhdGUucHJvcGVydHlfb3JkZXIsCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBib29sZWFuX3Byb3BlcnRpZXM9c3RhdGUuYm9vbGVh
bl9wcm9wZXJ0aWVzLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhYmlsaXR5
PXN0YXRlLnN0YWJpbGl0eSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc2Fi
bGVfaW50ZXJtaXR0ZW50PXN0YXRlLmRpc2FibGVfaW50ZXJtaXR0ZW50LAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgdXBkYXRlX2ludGVybWl0dGVudD1zdGF0ZS51cGRhdGVfaW50
ZXJtaXR0ZW50LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVtb3ZlX2ludGVy
bWl0dGVudD1zdGF0ZS5yZW1vdmVfaW50ZXJtaXR0ZW50KQogCiAKIGNsYXNzIENyZWF0ZU1ldGFk
YXRhUGF0Y2goU3RlcCk6CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvdXBkYXRlL3N0YXRlLnB5
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRy
dW5uZXIvd3B0cnVubmVyL3VwZGF0ZS9zdGF0ZS5weQppbmRleCBkYzQ1OWRhN2UyZS4uNjRkYmYx
MTgwNjAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci91cGRhdGUvc3RhdGUucHkKKysrIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIv
d3B0cnVubmVyL3VwZGF0ZS9zdGF0ZS5weQpAQCAtMSwxMSArMSw5IEBACiBpbXBvcnQgb3MKLWlt
cG9ydCBjUGlja2xlIGFzIHBpY2tsZQorZnJvbSBzaXgubW92ZXMgaW1wb3J0IGNQaWNrbGUgYXMg
cGlja2xlICAjIG5vcWE6IE44MTMKIAogaGVyZSA9IG9zLnBhdGguYWJzcGF0aChvcy5wYXRoLnNw
bGl0KF9fZmlsZV9fKVswXSkKIAotY2xhc3MgU3RhdGUob2JqZWN0KToKLSAgICBmaWxlbmFtZSA9
IG9zLnBhdGguam9pbihoZXJlLCAiLndwdC11cGRhdGUubG9jayIpCi0KK2NsYXNzIEJhc2VTdGF0
ZShvYmplY3QpOgogICAgIGRlZiBfX25ld19fKGNscywgbG9nZ2VyKToKICAgICAgICAgcnYgPSBj
bHMubG9hZChsb2dnZXIpCiAgICAgICAgIGlmIHJ2IGlzIG5vdCBOb25lOgpAQCAtMTgsMTEgKzE2
LDYgQEAgY2xhc3MgU3RhdGUob2JqZWN0KToKICAgICBkZWYgX19pbml0X18oc2VsZiwgbG9nZ2Vy
KToKICAgICAgICAgIiIiT2JqZWN0IGNvbnRhaW5pbmcgc3RhdGUgdmFyaWFibGVzIGNyZWF0ZWQg
d2hlbiBydW5uaW5nIFN0ZXBzLgogCi0gICAgICAgIE9uIHdyaXRlIHRoZSBzdGF0ZSBpcyBzZXJp
YWxpemVkIHRvIGRpc2ssIHN1Y2ggdGhhdCBpdCBjYW4gYmUgcmVzdG9yZWQgaW4KLSAgICAgICAg
dGhlIGV2ZW50IHRoYXQgdGhlIHByb2dyYW0gaXMgaW50ZXJydXB0ZWQgYmVmb3JlIGFsbCBzdGVw
cyBhcmUgY29tcGxldGUuCi0gICAgICAgIE5vdGUgdGhhdCB0aGlzIG9ubHkgd29ya3Mgd2VsbCBp
ZiB0aGUgdmFsdWVzIGFyZSBpbW11dGFibGU7IG11dGF0aW5nIGFuCi0gICAgICAgIGV4aXN0aW5n
IHZhbHVlIHdpbGwgbm90IGNhdXNlIHRoZSBkYXRhIHRvIGJlIHNlcmlhbGl6ZWQuCi0KICAgICAg
ICAgVmFyaWFibGVzIGFyZSBzZXQgYW5kIGdldCBhcyBhdHRyaWJ1dGVzIGUuZy4gc3RhdGVfb2Jq
LnNwYW0gPSAiZWdncyIuCiAKICAgICAgICAgOnBhcmFtIHBhcmVudDogUGFyZW50IFN0YXRlIG9i
amVjdCBvciBOb25lIGlmIHRoaXMgaXMgdGhlIHJvb3Qgb2JqZWN0LgpAQCAtNDAsMjMgKzMzLDYg
QEAgY2xhc3MgU3RhdGUob2JqZWN0KToKICAgICAgICAgZGVsIHJ2WyJfbG9nZ2VyIl0KICAgICAg
ICAgcmV0dXJuIHJ2CiAKLSAgICBAY2xhc3NtZXRob2QKLSAgICBkZWYgbG9hZChjbHMsIGxvZ2dl
cik6Ci0gICAgICAgICIiIkxvYWQgc2F2ZWQgc3RhdGUgZnJvbSBhIGZpbGUiIiIKLSAgICAgICAg
dHJ5OgotICAgICAgICAgICAgaWYgbm90IG9zLnBhdGguaXNmaWxlKGNscy5maWxlbmFtZSk6Ci0g
ICAgICAgICAgICAgICAgcmV0dXJuIE5vbmUKLSAgICAgICAgICAgIHdpdGggb3BlbihjbHMuZmls
ZW5hbWUpIGFzIGY6Ci0gICAgICAgICAgICAgICAgdHJ5OgotICAgICAgICAgICAgICAgICAgICBy
diA9IHBpY2tsZS5sb2FkKGYpCi0gICAgICAgICAgICAgICAgICAgIGxvZ2dlci5kZWJ1ZygiTG9h
ZGluZyBkYXRhICVyIiAlIChydi5fZGF0YSwpKQotICAgICAgICAgICAgICAgICAgICBydi5fbG9n
Z2VyID0gbG9nZ2VyCi0gICAgICAgICAgICAgICAgICAgIHJ2Ll9pbmRleCA9IDAKLSAgICAgICAg
ICAgICAgICAgICAgcmV0dXJuIHJ2Ci0gICAgICAgICAgICAgICAgZXhjZXB0IEVPRkVycm9yOgot
ICAgICAgICAgICAgICAgICAgICBsb2dnZXIud2FybmluZygiRm91bmQgZW1wdHkgc3RhdGUgZmls
ZSIpCi0gICAgICAgIGV4Y2VwdCBJT0Vycm9yOgotICAgICAgICAgICAgbG9nZ2VyLmRlYnVnKCJJ
T0Vycm9yIGxvYWRpbmcgc3RvcmVkIHN0YXRlIikKIAogICAgIGRlZiBwdXNoKHNlbGYsIGluaXRf
dmFsdWVzKToKICAgICAgICAgIiIiUHVzaCBhIG5ldyBjbGVhbiBzdGF0ZSBkaWN0aW9uYXJ5CkBA
IC02NiwyMyArNDIsMTMgQEAgY2xhc3MgU3RhdGUob2JqZWN0KToKIAogICAgICAgICByZXR1cm4g
U3RhdGVDb250ZXh0KHNlbGYsIGluaXRfdmFsdWVzKQogCi0gICAgZGVmIHNhdmUoc2VsZik6Ci0g
ICAgICAgICIiIldyaXRlIHRoZSBzdGF0ZSB0byBkaXNrIiIiCi0gICAgICAgIHdpdGggb3Blbihz
ZWxmLmZpbGVuYW1lLCAidyIpIGFzIGY6Ci0gICAgICAgICAgICBwaWNrbGUuZHVtcChzZWxmLCBm
KQotCiAgICAgZGVmIGlzX2VtcHR5KHNlbGYpOgogICAgICAgICByZXR1cm4gbGVuKHNlbGYuX2Rh
dGEpID09IDEgYW5kIHNlbGYuX2RhdGFbMF0gPT0ge30KIAogICAgIGRlZiBjbGVhcihzZWxmKToK
ICAgICAgICAgIiIiUmVtb3ZlIGFsbCBzdGF0ZSBhbmQgZGVsZXRlIHRoZSBzdG9yZWQgY29weS4i
IiIKLSAgICAgICAgdHJ5OgotICAgICAgICAgICAgb3MudW5saW5rKHNlbGYuZmlsZW5hbWUpCi0g
ICAgICAgIGV4Y2VwdCBPU0Vycm9yOgotICAgICAgICAgICAgcGFzcwogICAgICAgICBzZWxmLl9k
YXRhID0gW3t9XQogCi0KICAgICBkZWYgX19zZXRhdHRyX18oc2VsZiwga2V5LCB2YWx1ZSk6CiAg
ICAgICAgIGlmIGtleS5zdGFydHN3aXRoKCJfIik6CiAgICAgICAgICAgICBvYmplY3QuX19zZXRh
dHRyX18oc2VsZiwga2V5LCB2YWx1ZSkKQEAgLTEwOSw2ICs3NSw2MiBAQCBjbGFzcyBTdGF0ZShv
YmplY3QpOgogICAgIGRlZiBrZXlzKHNlbGYpOgogICAgICAgICByZXR1cm4gc2VsZi5fZGF0YVtz
ZWxmLl9pbmRleF0ua2V5cygpCiAKKworICAgIEBjbGFzc21ldGhvZAorICAgIGRlZiBsb2FkKGNs
cyk6CisgICAgICAgIHJhaXNlIE5vdEltcGxlbWVudGVkRXJyb3IKKworICAgIGRlZiBzYXZlKHNl
bGYpOgorICAgICAgICByYWlzZSBOb3RJbXBsZW1lbnRlZEVycm9yCisKKworY2xhc3MgU2F2ZWRT
dGF0ZShCYXNlU3RhdGUpOgorICAgICIiIk9uIHdyaXRlIHRoZSBzdGF0ZSBpcyBzZXJpYWxpemVk
IHRvIGRpc2ssIHN1Y2ggdGhhdCBpdCBjYW4gYmUgcmVzdG9yZWQgaW4KKyAgICAgICB0aGUgZXZl
bnQgdGhhdCB0aGUgcHJvZ3JhbSBpcyBpbnRlcnJ1cHRlZCBiZWZvcmUgYWxsIHN0ZXBzIGFyZSBj
b21wbGV0ZS4KKyAgICAgICBOb3RlIHRoYXQgdGhpcyBvbmx5IHdvcmtzIHdlbGwgaWYgdGhlIHZh
bHVlcyBhcmUgaW1tdXRhYmxlOyBtdXRhdGluZyBhbgorICAgICAgIGV4aXN0aW5nIHZhbHVlIHdp
bGwgbm90IGNhdXNlIHRoZSBkYXRhIHRvIGJlIHNlcmlhbGl6ZWQuIiIiCisgICAgZmlsZW5hbWUg
PSBvcy5wYXRoLmpvaW4oaGVyZSwgIi53cHQtdXBkYXRlLmxvY2siKQorCisgICAgQGNsYXNzbWV0
aG9kCisgICAgZGVmIGxvYWQoY2xzLCBsb2dnZXIpOgorICAgICAgICAiIiJMb2FkIHNhdmVkIHN0
YXRlIGZyb20gYSBmaWxlIiIiCisgICAgICAgIHRyeToKKyAgICAgICAgICAgIGlmIG5vdCBvcy5w
YXRoLmlzZmlsZShjbHMuZmlsZW5hbWUpOgorICAgICAgICAgICAgICAgIHJldHVybiBOb25lCisg
ICAgICAgICAgICB3aXRoIG9wZW4oY2xzLmZpbGVuYW1lKSBhcyBmOgorICAgICAgICAgICAgICAg
IHRyeToKKyAgICAgICAgICAgICAgICAgICAgcnYgPSBwaWNrbGUubG9hZChmKQorICAgICAgICAg
ICAgICAgICAgICBsb2dnZXIuZGVidWcoIkxvYWRpbmcgZGF0YSAlciIgJSAocnYuX2RhdGEsKSkK
KyAgICAgICAgICAgICAgICAgICAgcnYuX2xvZ2dlciA9IGxvZ2dlcgorICAgICAgICAgICAgICAg
ICAgICBydi5faW5kZXggPSAwCisgICAgICAgICAgICAgICAgICAgIHJldHVybiBydgorICAgICAg
ICAgICAgICAgIGV4Y2VwdCBFT0ZFcnJvcjoKKyAgICAgICAgICAgICAgICAgICAgbG9nZ2VyLndh
cm5pbmcoIkZvdW5kIGVtcHR5IHN0YXRlIGZpbGUiKQorICAgICAgICBleGNlcHQgSU9FcnJvcjoK
KyAgICAgICAgICAgIGxvZ2dlci5kZWJ1ZygiSU9FcnJvciBsb2FkaW5nIHN0b3JlZCBzdGF0ZSIp
CisKKyAgICBkZWYgc2F2ZShzZWxmKToKKyAgICAgICAgIiIiV3JpdGUgdGhlIHN0YXRlIHRvIGRp
c2siIiIKKyAgICAgICAgd2l0aCBvcGVuKHNlbGYuZmlsZW5hbWUsICJ3IikgYXMgZjoKKyAgICAg
ICAgICAgIHBpY2tsZS5kdW1wKHNlbGYsIGYpCisKKyAgICBkZWYgY2xlYXIoc2VsZik6CisgICAg
ICAgIHN1cGVyKFNhdmVkU3RhdGUsIHNlbGYpLmNsZWFyKCkKKyAgICAgICAgdHJ5OgorICAgICAg
ICAgICAgb3MudW5saW5rKHNlbGYuZmlsZW5hbWUpCisgICAgICAgIGV4Y2VwdCBPU0Vycm9yOgor
ICAgICAgICAgICAgcGFzcworCisKK2NsYXNzIFVuc2F2ZWRTdGF0ZShCYXNlU3RhdGUpOgorICAg
IEBjbGFzc21ldGhvZAorICAgIGRlZiBsb2FkKGNscywgbG9nZ2VyKToKKyAgICAgICAgcmV0dXJu
IE5vbmUKKworICAgIGRlZiBzYXZlKHNlbGYpOgorICAgICAgICByZXR1cm4KKworCiBjbGFzcyBT
dGF0ZUNvbnRleHQob2JqZWN0KToKICAgICBkZWYgX19pbml0X18oc2VsZiwgc3RhdGUsIGluaXRf
dmFsdWVzKToKICAgICAgICAgc2VsZi5zdGF0ZSA9IHN0YXRlCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRy
dW5uZXIvdXBkYXRlL3N5bmMucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvdXBkYXRlL3N5bmMucHkKaW5kZXgg
YzJkMGJmYTdmMGQuLjBkNzVhMTIzMmZjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvdXBkYXRl
L3N5bmMucHkKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3VwZGF0ZS9zeW5jLnB5CkBAIC01LDggKzUsOCBA
QCBpbXBvcnQgc2h1dGlsCiBpbXBvcnQgc3lzCiBpbXBvcnQgdXVpZAogCi1mcm9tIGJhc2UgaW1w
b3J0IFN0ZXAsIFN0ZXBSdW5uZXIKLWZyb20gdHJlZSBpbXBvcnQgQ29tbWl0Citmcm9tIC5iYXNl
IGltcG9ydCBTdGVwLCBTdGVwUnVubmVyCitmcm9tIC50cmVlIGltcG9ydCBDb21taXQKIAogaGVy
ZSA9IG9zLnBhdGguYWJzcGF0aChvcy5wYXRoLnNwbGl0KF9fZmlsZV9fKVswXSkKIApkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93
cHRydW5uZXIvd3B0cnVubmVyL3VwZGF0ZS91cGRhdGUucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvdXBkYXRl
L3VwZGF0ZS5weQppbmRleCA1Njg1Zjg0MDY3MC4uOTYzMDJlZTI2N2UgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVy
L3dwdHJ1bm5lci91cGRhdGUvdXBkYXRlLnB5CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci91cGRhdGUvdXBk
YXRlLnB5CkBAIC0xLDE2ICsxLDE2IEBACiBpbXBvcnQgb3MKIGltcG9ydCBzeXMKIAotZnJvbSBt
ZXRhZGF0YSBpbXBvcnQgTWV0YWRhdGFVcGRhdGVSdW5uZXIKLWZyb20gc3luYyBpbXBvcnQgU3lu
Y0Zyb21VcHN0cmVhbVJ1bm5lcgotZnJvbSB0cmVlIGltcG9ydCBHaXRUcmVlLCBIZ1RyZWUsIE5v
VkNTVHJlZQorZnJvbSAubWV0YWRhdGEgaW1wb3J0IE1ldGFkYXRhVXBkYXRlUnVubmVyCitmcm9t
IC5zeW5jIGltcG9ydCBTeW5jRnJvbVVwc3RyZWFtUnVubmVyCitmcm9tIC50cmVlIGltcG9ydCBH
aXRUcmVlLCBIZ1RyZWUsIE5vVkNTVHJlZQogCi1mcm9tIGJhc2UgaW1wb3J0IFN0ZXAsIFN0ZXBS
dW5uZXIsIGV4aXRfY2xlYW4sIGV4aXRfdW5jbGVhbgotZnJvbSBzdGF0ZSBpbXBvcnQgU3RhdGUK
K2Zyb20gLmJhc2UgaW1wb3J0IFN0ZXAsIFN0ZXBSdW5uZXIsIGV4aXRfY2xlYW4sIGV4aXRfdW5j
bGVhbgorZnJvbSAuc3RhdGUgaW1wb3J0IFNhdmVkU3RhdGUsIFVuc2F2ZWRTdGF0ZQogCiBkZWYg
c2V0dXBfcGF0aHMoc3luY19wYXRoKToKICAgICBzeXMucGF0aC5pbnNlcnQoMCwgb3MucGF0aC5h
YnNwYXRoKHN5bmNfcGF0aCkpCi0gICAgZnJvbSB0b29scyBpbXBvcnQgbG9jYWxwYXRocyAgIyBu
b3FhOiBmbGFrZTgKKyAgICBmcm9tIHRvb2xzIGltcG9ydCBsb2NhbHBhdGhzICAjIG5vcWE6IEY0
MDEKIAogY2xhc3MgTG9hZENvbmZpZyhTdGVwKToKICAgICAiIiJTdGVwIGZvciBsb2FkaW5nIGNv
bmZpZ3VyYXRpb24gZnJvbSB0aGUgaW5pIGZpbGUgYW5kIGt3YXJncy4iIiIKQEAgLTg1LDIyICs4
NSw1MSBAQCBjbGFzcyBVcGRhdGVNZXRhZGF0YShTdGVwKToKICAgICAgICAga3dhcmdzID0gc3Rh
dGUua3dhcmdzCiAgICAgICAgIHdpdGggc3RhdGUucHVzaChbImxvY2FsX3RyZWUiLCAic3luY190
cmVlIiwgInBhdGhzIiwgInNlcnZlX3Jvb3QiXSk6CiAgICAgICAgICAgICBzdGF0ZS5ydW5fbG9n
ID0ga3dhcmdzWyJydW5fbG9nIl0KLSAgICAgICAgICAgIHN0YXRlLmlnbm9yZV9leGlzdGluZyA9
IGt3YXJnc1siaWdub3JlX2V4aXN0aW5nIl0KLSAgICAgICAgICAgIHN0YXRlLnN0YWJpbGl0eSA9
IGt3YXJnc1sic3RhYmlsaXR5Il0KKyAgICAgICAgICAgIHN0YXRlLmRpc2FibGVfaW50ZXJtaXR0
ZW50ID0ga3dhcmdzWyJkaXNhYmxlX2ludGVybWl0dGVudCJdCisgICAgICAgICAgICBzdGF0ZS51
cGRhdGVfaW50ZXJtaXR0ZW50ID0ga3dhcmdzWyJ1cGRhdGVfaW50ZXJtaXR0ZW50Il0KKyAgICAg
ICAgICAgIHN0YXRlLnJlbW92ZV9pbnRlcm1pdHRlbnQgPSBrd2FyZ3NbInJlbW92ZV9pbnRlcm1p
dHRlbnQiXQogICAgICAgICAgICAgc3RhdGUucGF0Y2ggPSBrd2FyZ3NbInBhdGNoIl0KICAgICAg
ICAgICAgIHN0YXRlLnN1aXRlX25hbWUgPSBrd2FyZ3NbInN1aXRlX25hbWUiXQogICAgICAgICAg
ICAgc3RhdGUucHJvZHVjdCA9IGt3YXJnc1sicHJvZHVjdCJdCiAgICAgICAgICAgICBzdGF0ZS5j
b25maWcgPSBrd2FyZ3NbImNvbmZpZyJdCisgICAgICAgICAgICBzdGF0ZS5mdWxsX3VwZGF0ZSA9
IGt3YXJnc1siZnVsbCJdCiAgICAgICAgICAgICBzdGF0ZS5leHRyYV9wcm9wZXJ0aWVzID0ga3dh
cmdzWyJleHRyYV9wcm9wZXJ0eSJdCiAgICAgICAgICAgICBydW5uZXIgPSBNZXRhZGF0YVVwZGF0
ZVJ1bm5lcihzZWxmLmxvZ2dlciwgc3RhdGUpCiAgICAgICAgICAgICBydW5uZXIucnVuKCkKIAog
CitjbGFzcyBSZW1vdmVPYnNvbGV0ZShTdGVwKToKKyAgICAiIiJSZW1vdmUgbWV0YWRhdGEgZmls
ZXMgdGhhdCBkb24ndCBjb3Jlc3BvbmQgdG8gYW4gZXhpc3RpbmcgdGVzdCBmaWxlIiIiCisKKyAg
ICBkZWYgY3JlYXRlKHNlbGYsIHN0YXRlKToKKyAgICAgICAgaWYgbm90IHN0YXRlLmt3YXJnc1si
cmVtb3ZlX29ic29sZXRlIl06CisgICAgICAgICAgICByZXR1cm4KKworICAgICAgICBwYXRocyA9
IHN0YXRlLmt3YXJnc1sidGVzdF9wYXRocyJdCisgICAgICAgIHN0YXRlLnRlc3RzX3BhdGggPSBz
dGF0ZS5wYXRoc1siLyJdWyJ0ZXN0c19wYXRoIl0KKyAgICAgICAgc3RhdGUubWV0YWRhdGFfcGF0
aCA9IHN0YXRlLnBhdGhzWyIvIl1bIm1ldGFkYXRhX3BhdGgiXQorCisgICAgICAgIGZvciB1cmxf
cGF0aHMgaW4gcGF0aHMuaXRlcnZhbHVlcygpOgorICAgICAgICAgICAgdGVzdHNfcGF0aCA9IHVy
bF9wYXRoc1sidGVzdHNfcGF0aCJdCisgICAgICAgICAgICBtZXRhZGF0YV9wYXRoID0gdXJsX3Bh
dGhzWyJtZXRhZGF0YV9wYXRoIl0KKyAgICAgICAgICAgIGZvciBkaXJwYXRoLCBkaXJuYW1lcywg
ZmlsZW5hbWVzIGluIG9zLndhbGsobWV0YWRhdGFfcGF0aCk6CisgICAgICAgICAgICAgICAgZm9y
IGZpbGVuYW1lIGluIGZpbGVuYW1lczoKKyAgICAgICAgICAgICAgICAgICAgaWYgZmlsZW5hbWUg
PT0gIl9fZGlyX18uaW5pIjoKKyAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlCisgICAg
ICAgICAgICAgICAgICAgIGlmIGZpbGVuYW1lLmVuZHN3aXRoKCIuaW5pIik6CisgICAgICAgICAg
ICAgICAgICAgICAgICBmdWxsX3BhdGggPSBvcy5wYXRoLmpvaW4oZGlycGF0aCwgZmlsZW5hbWUp
CisgICAgICAgICAgICAgICAgICAgICAgICByZWxfcGF0aCA9IG9zLnBhdGgucmVscGF0aChmdWxs
X3BhdGgsIG1ldGFkYXRhX3BhdGgpCisgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0X3BhdGgg
PSBvcy5wYXRoLmpvaW4odGVzdHNfcGF0aCwgcmVsX3BhdGhbOi00XSkKKyAgICAgICAgICAgICAg
ICAgICAgICAgIGlmIG5vdCBvcy5wYXRoLmV4aXN0cyh0ZXN0X3BhdGgpOgorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIG9zLnVubGluayhmdWxsX3BhdGgpCisKKwogY2xhc3MgVXBkYXRlUnVu
bmVyKFN0ZXBSdW5uZXIpOgogICAgICIiIlJ1bm5lciBmb3IgZG9pbmcgYW4gb3ZlcmFsbCB1cGRh
dGUuIiIiCiAgICAgc3RlcHMgPSBbTG9hZENvbmZpZywKICAgICAgICAgICAgICBMb2FkVHJlZXMs
CiAgICAgICAgICAgICAgU3luY0Zyb21VcHN0cmVhbSwKKyAgICAgICAgICAgICBSZW1vdmVPYnNv
bGV0ZSwKICAgICAgICAgICAgICBVcGRhdGVNZXRhZGF0YV0KIAogCkBAIC0xMjIsNyArMTUxLDEw
IEBAIGNsYXNzIFdQVFVwZGF0ZShvYmplY3QpOgogICAgICAgICAgICAgICAgICMgSWYgdGhlIHN5
bmMgcGF0aCBkb2Vzbid0IGV4aXN0IHdlIGRlZmVyIHRoaXMgdW50aWwgaXQgZG9lcwogICAgICAg
ICAgICAgICAgIHNldHVwX3BhdGhzKGt3YXJnc1sic3luY19wYXRoIl0pCiAKLSAgICAgICAgc2Vs
Zi5zdGF0ZSA9IFN0YXRlKGxvZ2dlcikKKyAgICAgICAgaWYga3dhcmdzLmdldCgic3RvcmVfc3Rh
dGUiLCBGYWxzZSk6CisgICAgICAgICAgICBzZWxmLnN0YXRlID0gU2F2ZWRTdGF0ZShsb2dnZXIp
CisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBzZWxmLnN0YXRlID0gVW5zYXZlZFN0YXRlKGxv
Z2dlcikKICAgICAgICAgc2VsZi5rd2FyZ3MgPSBrd2FyZ3MKICAgICAgICAgc2VsZi5sb2dnZXIg
PSBsb2dnZXIKIApAQCAtMTMyLDcgKzE2NCw3IEBAIGNsYXNzIFdQVFVwZGF0ZShvYmplY3QpOgog
ICAgICAgICAgICAgcmV0dXJuIGV4aXRfY2xlYW4KIAogICAgICAgICBpZiBub3Qgc2VsZi5rd2Fy
Z3NbImNvbnRpbnVlIl0gYW5kIG5vdCBzZWxmLnN0YXRlLmlzX2VtcHR5KCk6Ci0gICAgICAgICAg
ICBzZWxmLmxvZ2dlci5lcnJvcigiRm91bmQgZXhpc3Rpbmcgc3RhdGUuIFJ1biB3aXRoIC0tY29u
dGludWUgdG8gcmVzdW1lIG9yIC0tYWJvcnQgdG8gY2xlYXIgc3RhdGUiKQorICAgICAgICAgICAg
c2VsZi5sb2dnZXIuY3JpdGljYWwoIkZvdW5kIGV4aXN0aW5nIHN0YXRlLiBSdW4gd2l0aCAtLWNv
bnRpbnVlIHRvIHJlc3VtZSBvciAtLWFib3J0IHRvIGNsZWFyIHN0YXRlIikKICAgICAgICAgICAg
IHJldHVybiBleGl0X3VuY2xlYW4KIAogICAgICAgICBpZiBzZWxmLmt3YXJnc1siY29udGludWUi
XToKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci93M2MtaW1wb3J0LmxvZyBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5l
ci93M2MtaW1wb3J0LmxvZwppbmRleCBlNGMzNmZlMzFmYy4uYWIwNmM0MWFmOTggMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0
cnVubmVyL3dwdHJ1bm5lci93M2MtaW1wb3J0LmxvZworKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvdzNjLWlt
cG9ydC5sb2cKQEAgLTE4LDggKzE4LDggQEAgTGlzdCBvZiBmaWxlczoKIC9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIv
Y29uZmlnLnB5CiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy93cHRydW5uZXIvd3B0cnVubmVyL2Vudmlyb25tZW50LnB5CiAvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2V4
cGVjdGVkLnB5CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy93cHRydW5uZXIvd3B0cnVubmVyL2V4cGVjdGVkdHJlZS5weQogL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9m
b250LnB5Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy93cHRydW5uZXIvd3B0cnVubmVyL2Zvcm1hdHRlcnMucHkKIC9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvbWFuaWZl
c3RleHBlY3RlZC5weQogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9tYW5pZmVzdGluY2x1ZGUucHkKIC9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRy
dW5uZXIvbWFuaWZlc3R1cGRhdGUucHkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci93ZWJkcml2
ZXJfc2VydmVyLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3dlYmRyaXZlcl9zZXJ2ZXIucHkKaW5kZXggOWVj
ZDAwOWE3ZDguLjE2MmZmYWUzZmM5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvd2ViZHJpdmVy
X3NlcnZlci5weQorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvd2ViZHJpdmVyX3NlcnZlci5weQpAQCAtOSw4
ICs5LDkgQEAgaW1wb3J0IHRyYWNlYmFjawogaW1wb3J0IG1venByb2Nlc3MKIAogCi1fX2FsbF9f
ID0gWyJTZWxlbml1bVNlcnZlciIsICJDaHJvbWVEcml2ZXJTZXJ2ZXIiLCAiT3BlcmFEcml2ZXJT
ZXJ2ZXIiLAotICAgICAgICAgICAiR2Vja29Ecml2ZXJTZXJ2ZXIiLCAiSW50ZXJuZXRFeHBsb3Jl
ckRyaXZlclNlcnZlciIsICJFZGdlRHJpdmVyU2VydmVyIiwKK19fYWxsX18gPSBbIlNlbGVuaXVt
U2VydmVyIiwgIkNocm9tZURyaXZlclNlcnZlciIsICJDV1RDaHJvbWVEcml2ZXJTZXJ2ZXIiLAor
ICAgICAgICAgICAiRWRnZUNocm9taXVtRHJpdmVyU2VydmVyIiwgIk9wZXJhRHJpdmVyU2VydmVy
IiwgIkdlY2tvRHJpdmVyU2VydmVyIiwKKyAgICAgICAgICAgIkludGVybmV0RXhwbG9yZXJEcml2
ZXJTZXJ2ZXIiLCAiRWRnZURyaXZlclNlcnZlciIsCiAgICAgICAgICAgICJTZXJ2b0RyaXZlclNl
cnZlciIsICJXZWJLaXREcml2ZXJTZXJ2ZXIiLCAiV2ViRHJpdmVyU2VydmVyIl0KIAogCkBAIC0x
OCw3ICsxOSw2IEBAIGNsYXNzIFdlYkRyaXZlclNlcnZlcihvYmplY3QpOgogICAgIF9fbWV0YWNs
YXNzX18gPSBhYmMuQUJDTWV0YQogCiAgICAgZGVmYXVsdF9iYXNlX3BhdGggPSAiLyIKLSAgICBf
dXNlZF9wb3J0cyA9IHNldCgpCiAKICAgICBkZWYgX19pbml0X18oc2VsZiwgbG9nZ2VyLCBiaW5h
cnksIGhvc3Q9IjEyNy4wLjAuMSIsIHBvcnQ9Tm9uZSwKICAgICAgICAgICAgICAgICAgYmFzZV9w
YXRoPSIiLCBlbnY9Tm9uZSwgYXJncz1Ob25lKToKQEAgLTgxLDggKzgxLDEyIEBAIGNsYXNzIFdl
YkRyaXZlclNlcnZlcihvYmplY3QpOgogICAgICAgICAgICAgc2VsZi5fcHJvYy53YWl0KCkKIAog
ICAgIGRlZiBzdG9wKHNlbGYsIGZvcmNlPUZhbHNlKToKKyAgICAgICAgc2VsZi5sb2dnZXIuZGVi
dWcoIlN0b3BwaW5nIFdlYkRyaXZlciIpCiAgICAgICAgIGlmIHNlbGYuaXNfYWxpdmU6Ci0gICAg
ICAgICAgICByZXR1cm4gc2VsZi5fcHJvYy5raWxsKCkKKyAgICAgICAgICAgIGtpbGxfcmVzdWx0
ID0gc2VsZi5fcHJvYy5raWxsKCkKKyAgICAgICAgICAgIGlmIGZvcmNlIGFuZCBraWxsX3Jlc3Vs
dCAhPSAwOgorICAgICAgICAgICAgICAgIHJldHVybiBzZWxmLl9wcm9jLmtpbGwoOSkKKyAgICAg
ICAgICAgIHJldHVybiBraWxsX3Jlc3VsdAogICAgICAgICByZXR1cm4gbm90IHNlbGYuaXNfYWxp
dmUKIAogICAgIEBwcm9wZXJ0eQpAQCAtMTA2LDE1ICsxMTAsOSBAQCBjbGFzcyBXZWJEcml2ZXJT
ZXJ2ZXIob2JqZWN0KToKICAgICBAcHJvcGVydHkKICAgICBkZWYgcG9ydChzZWxmKToKICAgICAg
ICAgaWYgc2VsZi5fcG9ydCBpcyBOb25lOgotICAgICAgICAgICAgc2VsZi5fcG9ydCA9IHNlbGYu
X2ZpbmRfbmV4dF9mcmVlX3BvcnQoKQorICAgICAgICAgICAgc2VsZi5fcG9ydCA9IGdldF9mcmVl
X3BvcnQoKQogICAgICAgICByZXR1cm4gc2VsZi5fcG9ydAogCi0gICAgQHN0YXRpY21ldGhvZAot
ICAgIGRlZiBfZmluZF9uZXh0X2ZyZWVfcG9ydCgpOgotICAgICAgICBwb3J0ID0gZ2V0X2ZyZWVf
cG9ydCg0NDQ0LCBleGNsdWRlPVdlYkRyaXZlclNlcnZlci5fdXNlZF9wb3J0cykKLSAgICAgICAg
V2ViRHJpdmVyU2VydmVyLl91c2VkX3BvcnRzLmFkZChwb3J0KQotICAgICAgICByZXR1cm4gcG9y
dAotCiAKIGNsYXNzIFNlbGVuaXVtU2VydmVyKFdlYkRyaXZlclNlcnZlcik6CiAgICAgZGVmYXVs
dF9iYXNlX3BhdGggPSAiL3dkL2h1YiIKQEAgLTEzNCw2ICsxMzIsMjUgQEAgY2xhc3MgQ2hyb21l
RHJpdmVyU2VydmVyKFdlYkRyaXZlclNlcnZlcik6CiAgICAgICAgICAgICAgICAgY21kX2FyZygi
cG9ydCIsIHN0cihzZWxmLnBvcnQpKSwKICAgICAgICAgICAgICAgICBjbWRfYXJnKCJ1cmwtYmFz
ZSIsIHNlbGYuYmFzZV9wYXRoKSBpZiBzZWxmLmJhc2VfcGF0aCBlbHNlICIiXSArIHNlbGYuX2Fy
Z3MKIAorY2xhc3MgQ1dUQ2hyb21lRHJpdmVyU2VydmVyKFdlYkRyaXZlclNlcnZlcik6CisgICAg
ZGVmIF9faW5pdF9fKHNlbGYsIGxvZ2dlciwgYmluYXJ5LCBwb3J0PU5vbmUsIGFyZ3M9Tm9uZSk6
CisgICAgICAgIFdlYkRyaXZlclNlcnZlci5fX2luaXRfXyhzZWxmLCBsb2dnZXIsIGJpbmFyeSwg
cG9ydD1wb3J0LCBhcmdzPWFyZ3MpCisKKyAgICBkZWYgbWFrZV9jb21tYW5kKHNlbGYpOgorICAg
ICAgICByZXR1cm4gW3NlbGYuYmluYXJ5LAorICAgICAgICAgICAgICAgICItLXBvcnQ9JXMiICUg
c3RyKHNlbGYucG9ydCldICsgc2VsZi5fYXJncworCitjbGFzcyBFZGdlQ2hyb21pdW1Ecml2ZXJT
ZXJ2ZXIoV2ViRHJpdmVyU2VydmVyKToKKyAgICBkZWYgX19pbml0X18oc2VsZiwgbG9nZ2VyLCBi
aW5hcnk9Im1zZWRnZWRyaXZlciIsIHBvcnQ9Tm9uZSwKKyAgICAgICAgICAgICAgICAgYmFzZV9w
YXRoPSIiLCBhcmdzPU5vbmUpOgorICAgICAgICBXZWJEcml2ZXJTZXJ2ZXIuX19pbml0X18oCisg
ICAgICAgICAgICBzZWxmLCBsb2dnZXIsIGJpbmFyeSwgcG9ydD1wb3J0LCBiYXNlX3BhdGg9YmFz
ZV9wYXRoLCBhcmdzPWFyZ3MpCisKKyAgICBkZWYgbWFrZV9jb21tYW5kKHNlbGYpOgorICAgICAg
ICByZXR1cm4gW3NlbGYuYmluYXJ5LAorICAgICAgICAgICAgICAgIGNtZF9hcmcoInBvcnQiLCBz
dHIoc2VsZi5wb3J0KSksCisgICAgICAgICAgICAgICAgY21kX2FyZygidXJsLWJhc2UiLCBzZWxm
LmJhc2VfcGF0aCkgaWYgc2VsZi5iYXNlX3BhdGggZWxzZSAiIl0gKyBzZWxmLl9hcmdzCisKIGNs
YXNzIEVkZ2VEcml2ZXJTZXJ2ZXIoV2ViRHJpdmVyU2VydmVyKToKICAgICBkZWYgX19pbml0X18o
c2VsZiwgbG9nZ2VyLCBiaW5hcnk9Im1pY3Jvc29mdHdlYmRyaXZlci5leGUiLCBwb3J0PU5vbmUs
CiAgICAgICAgICAgICAgICAgIGJhc2VfcGF0aD0iIiwgaG9zdD0ibG9jYWxob3N0IiwgYXJncz1O
b25lKToKQEAgLTE5Nyw3ICsyMTQsNyBAQCBjbGFzcyBTZXJ2b0RyaXZlclNlcnZlcihXZWJEcml2
ZXJTZXJ2ZXIpOgogCiAgICAgZGVmIG1ha2VfY29tbWFuZChzZWxmKToKICAgICAgICAgY29tbWFu
ZCA9IFtzZWxmLmJpbmFyeSwKLSAgICAgICAgICAgICAgICAgICAiLS13ZWJkcml2ZXIiLCBzdHIo
c2VsZi5wb3J0KSwKKyAgICAgICAgICAgICAgICAgICAiLS13ZWJkcml2ZXI9JXMiICUgc2VsZi5w
b3J0LAogICAgICAgICAgICAgICAgICAgICItLWhhcmQtZmFpbCIsCiAgICAgICAgICAgICAgICAg
ICAgIi0taGVhZGxlc3MiXSArIHNlbGYuX2FyZ3MKICAgICAgICAgaWYgc2VsZi5iaW5hcnlfYXJn
czoKQEAgLTIyMSwyOSArMjM4LDIxIEBAIGRlZiBjbWRfYXJnKG5hbWUsIHZhbHVlPU5vbmUpOgog
ICAgIHJldHVybiBydgogCiAKLWRlZiBnZXRfZnJlZV9wb3J0KHN0YXJ0X3BvcnQsIGV4Y2x1ZGU9
Tm9uZSk6Ci0gICAgIiIiR2V0IHRoZSBmaXJzdCBwb3J0IG51bWJlciBhZnRlciBzdGFydF9wb3J0
IChpbmNsdXNpdmUpIHRoYXQgaXMKLSAgICBub3QgY3VycmVudGx5IGJvdW5kLgotCi0gICAgOnBh
cmFtIHN0YXJ0X3BvcnQ6IEludGVnZXIgcG9ydCBudW1iZXIgYXQgd2hpY2ggdG8gc3RhcnQgdGVz
dGluZy4KLSAgICA6cGFyYW0gZXhjbHVkZTogU2V0IG9mIHBvcnQgbnVtYmVycyB0byBza2lwIiIi
Ci0gICAgcG9ydCA9IHN0YXJ0X3BvcnQKK2RlZiBnZXRfZnJlZV9wb3J0KCk6CisgICAgIiIiR2V0
IGEgcmFuZG9tIHVuYm91bmQgcG9ydCIiIgogICAgIHdoaWxlIFRydWU6Ci0gICAgICAgIGlmIGV4
Y2x1ZGUgYW5kIHBvcnQgaW4gZXhjbHVkZToKLSAgICAgICAgICAgIHBvcnQgKz0gMQotICAgICAg
ICAgICAgY29udGludWUKICAgICAgICAgcyA9IHNvY2tldC5zb2NrZXQoKQogICAgICAgICB0cnk6
Ci0gICAgICAgICAgICBzLmJpbmQoKCIxMjcuMC4wLjEiLCBwb3J0KSkKKyAgICAgICAgICAgIHMu
YmluZCgoIjEyNy4wLjAuMSIsIDApKQogICAgICAgICBleGNlcHQgc29ja2V0LmVycm9yOgotICAg
ICAgICAgICAgcG9ydCArPSAxCisgICAgICAgICAgICBjb250aW51ZQogICAgICAgICBlbHNlOgot
ICAgICAgICAgICAgcmV0dXJuIHBvcnQKKyAgICAgICAgICAgIHJldHVybiBzLmdldHNvY2tuYW1l
KClbMV0KICAgICAgICAgZmluYWxseToKICAgICAgICAgICAgIHMuY2xvc2UoKQogCiAKLWRlZiB3
YWl0X2Zvcl9zZXJ2aWNlKGFkZHIsIHRpbWVvdXQ9MTUpOgorZGVmIHdhaXRfZm9yX3NlcnZpY2Uo
YWRkciwgdGltZW91dD02MCk6CiAgICAgIiIiV2FpdHMgdW50aWwgbmV0d29yayBzZXJ2aWNlIGdp
dmVuIGFzIGEgdHVwbGUgb2YgKGhvc3QsIHBvcnQpIGJlY29tZXMKICAgICBhdmFpbGFibGUgb3Ig
dGhlIGB0aW1lb3V0YCBkdXJhdGlvbiBpcyByZWFjaGVkLCBhdCB3aGljaCBwb2ludAogICAgIGBg
c29ja2V0LmVycm9yYGAgaXMgcmFpc2VkLiIiIgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3dw
dGNvbW1hbmRsaW5lLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3dwdGNvbW1hbmRsaW5lLnB5CmluZGV4IDdl
MThhOGI0Mzc5Li45MjNiZGFhNTU4NSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3dwdGNvbW1h
bmRsaW5lLnB5CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci93cHRjb21tYW5kbGluZS5weQpAQCAtMSwxNCAr
MSwxNSBAQAorZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCBwcmludF9mdW5jdGlvbgogaW1wb3J0IGFy
Z3BhcnNlCiBpbXBvcnQgb3MKIGltcG9ydCBzeXMKIGZyb20gY29sbGVjdGlvbnMgaW1wb3J0IE9y
ZGVyZWREaWN0CiBmcm9tIGRpc3R1dGlscy5zcGF3biBpbXBvcnQgZmluZF9leGVjdXRhYmxlCiBm
cm9tIGRhdGV0aW1lIGltcG9ydCB0aW1lZGVsdGEKK2Zyb20gc2l4IGltcG9ydCBpdGVya2V5cywg
aXRlcnZhbHVlcywgaXRlcml0ZW1zCiAKLWltcG9ydCBjb25maWcKLWltcG9ydCB3cHR0ZXN0Ci1p
bXBvcnQgZm9ybWF0dGVycwotCitmcm9tIC4gaW1wb3J0IGNvbmZpZworZnJvbSAuIGltcG9ydCB3
cHR0ZXN0Citmcm9tIC5mb3JtYXR0ZXJzIGltcG9ydCBjaHJvbWl1bSwgd3B0cmVwb3J0LCB3cHRz
Y3JlZW5zaG90CiAKIGRlZiBhYnNfcGF0aChwYXRoKToKICAgICByZXR1cm4gb3MucGF0aC5hYnNw
YXRoKG9zLnBhdGguZXhwYW5kdXNlcihwYXRoKSkKQEAgLTI5LDcgKzMwLDcgQEAgZGVmIHJlcXVp
cmVfYXJnKGt3YXJncywgbmFtZSwgdmFsdWVfZnVuYz1Ob25lKToKICAgICAgICAgdmFsdWVfZnVu
YyA9IGxhbWJkYSB4OiB4IGlzIG5vdCBOb25lCiAKICAgICBpZiBuYW1lIG5vdCBpbiBrd2FyZ3Mg
b3Igbm90IHZhbHVlX2Z1bmMoa3dhcmdzW25hbWVdKToKLSAgICAgICAgcHJpbnQgPj4gc3lzLnN0
ZGVyciwgIk1pc3NpbmcgcmVxdWlyZWQgYXJndW1lbnQgJXMiICUgbmFtZQorICAgICAgICBwcmlu
dCgiTWlzc2luZyByZXF1aXJlZCBhcmd1bWVudCAlcyIgJSBuYW1lLCBmaWxlPXN5cy5zdGRlcnIp
CiAgICAgICAgIHN5cy5leGl0KDEpCiAKIApAQCAtNTMsNiArNTQsOCBAQCBzY2hlbWUgaG9zdCBh
bmQgcG9ydC4iIiIpCiAgICAgICAgICAgICAgICAgICAgICAgICBoZWxwPSJQcmV2ZW50IHJlZ2Vu
ZXJhdGlvbiBvZiB0aGUgdGVzdCBtYW5pZmVzdC4iKQogICAgIHBhcnNlci5hZGRfYXJndW1lbnQo
Ii0tbWFuaWZlc3QtZG93bmxvYWQiLCBhY3Rpb249InN0b3JlX3RydWUiLCBkZWZhdWx0PU5vbmUs
CiAgICAgICAgICAgICAgICAgICAgICAgICBoZWxwPSJBdHRlbXB0IHRvIGRvd25sb2FkIGEgcHJl
ZXhpc3RpbmcgbWFuaWZlc3Qgd2hlbiB1cGRhdGluZy4iKQorICAgIHBhcnNlci5hZGRfYXJndW1l
bnQoIi0tbm8tbWFuaWZlc3QtZG93bmxvYWQiLCBhY3Rpb249InN0b3JlX2ZhbHNlIiwgZGVzdD0i
bWFuaWZlc3RfZG93bmxvYWQiLAorICAgICAgICAgICAgICAgICAgICAgICAgaGVscD0iUHJldmVu
dCBkb3dubG9hZCBvZiB0aGUgdGVzdCBtYW5pZmVzdC4iKQogCiAgICAgcGFyc2VyLmFkZF9hcmd1
bWVudCgiLS10aW1lb3V0LW11bHRpcGxpZXIiLCBhY3Rpb249InN0b3JlIiwgdHlwZT1mbG9hdCwg
ZGVmYXVsdD1Ob25lLAogICAgICAgICAgICAgICAgICAgICAgICAgaGVscD0iTXVsdGlwbGllciBy
ZWxhdGl2ZSB0byBzdGFuZGFyZCB0ZXN0IHRpbWVvdXQgdG8gdXNlIikKQEAgLTEzNyw2ICsxNDAs
MTEgQEAgc2NoZW1lIGhvc3QgYW5kIHBvcnQuIiIiKQogICAgIHRlc3Rfc2VsZWN0aW9uX2dyb3Vw
LmFkZF9hcmd1bWVudCgiLS10YWciLCBhY3Rpb249ImFwcGVuZCIsIGRlc3Q9InRhZ3MiLAogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWxwPSJMYWJlbHMgYXBwbGllZCB0
byB0ZXN0cyB0byBpbmNsdWRlIGluIHRoZSBydW4uICIKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAiTGFiZWxzIHN0YXJ0aW5nIGRpcjogYXJlIGVxdWl2YWxlbnQg
dG8gdG9wLWxldmVsIGRpcmVjdG9yaWVzLiIpCisgICAgdGVzdF9zZWxlY3Rpb25fZ3JvdXAuYWRk
X2FyZ3VtZW50KCItLWRlZmF1bHQtZXhjbHVkZSIsIGFjdGlvbj0ic3RvcmVfdHJ1ZSIsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ9RmFsc2UsCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlbHA9Ik9ubHkgcnVuIHRoZSB0ZXN0cyBl
eHBsaWNpdGx5IGdpdmVuIGluIGFyZ3VtZW50cy4gIgorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICJObyB0ZXN0cyB3aWxsIHJ1biBpZiB0aGUgbGlzdCBpcyBlbXB0
eSwgYW5kIHRoZSAiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
InByb2dyYW0gd2lsbCBleGl0IHdpdGggc3RhdHVzIGNvZGUgMC4iKQogCiAgICAgZGVidWdnaW5n
X2dyb3VwID0gcGFyc2VyLmFkZF9hcmd1bWVudF9ncm91cCgiRGVidWdnaW5nIikKICAgICBkZWJ1
Z2dpbmdfZ3JvdXAuYWRkX2FyZ3VtZW50KCctLWRlYnVnZ2VyJywgY29uc3Q9Il9fZGVmYXVsdF9f
IiwgbmFyZ3M9Ij8iLApAQCAtMTkyLDYgKzIwMCwxMiBAQCBzY2hlbWUgaG9zdCBhbmQgcG9ydC4i
IiIpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWxwPSJQYXRoIHRvIGRpcmVjdG9y
eSBjb250YWluaW5nIGV4dHJhIGpzb24gZmlsZXMgdG8gYWRkIHRvIHJ1biBpbmZvIikKICAgICBj
b25maWdfZ3JvdXAuYWRkX2FyZ3VtZW50KCItLXByb2R1Y3QiLCBhY3Rpb249InN0b3JlIiwgY2hv
aWNlcz1wcm9kdWN0X2Nob2ljZXMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZh
dWx0PU5vbmUsIGhlbHA9IkJyb3dzZXIgYWdhaW5zdCB3aGljaCB0byBydW4gdGVzdHMiKQorICAg
IGNvbmZpZ19ncm91cC5hZGRfYXJndW1lbnQoIi0tYnJvd3Nlci12ZXJzaW9uIiwgYWN0aW9uPSJz
dG9yZSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZhdWx0PU5vbmUsIGhlbHA9
IkluZm9ybWF0aXZlIHN0cmluZyBkZXRhaWxpbmcgdGhlIGJyb3dzZXIgIgorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgInJlbGVhc2UgdmVyc2lvbi4gVGhpcyBpcyBpbmNsdWRlZCBpbiB0
aGUgcnVuX2luZm8gZGF0YS4iKQorICAgIGNvbmZpZ19ncm91cC5hZGRfYXJndW1lbnQoIi0tYnJv
d3Nlci1jaGFubmVsIiwgYWN0aW9uPSJzdG9yZSIsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBkZWZhdWx0PU5vbmUsIGhlbHA9IkluZm9ybWF0aXZlIHN0cmluZyBkZXRhaWxpbmcgdGhl
IGJyb3dzZXIgIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInJlbGVhc2UgY2hhbm5l
bC4gVGhpcyBpcyBpbmNsdWRlZCBpbiB0aGUgcnVuX2luZm8gZGF0YS4iKQogICAgIGNvbmZpZ19n
cm91cC5hZGRfYXJndW1lbnQoIi0tY29uZmlnIiwgYWN0aW9uPSJzdG9yZSIsIHR5cGU9YWJzX3Bh
dGgsIGRlc3Q9ImNvbmZpZyIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWxwPSJQ
YXRoIHRvIGNvbmZpZyBmaWxlIikKICAgICBjb25maWdfZ3JvdXAuYWRkX2FyZ3VtZW50KCItLWlu
c3RhbGwtZm9udHMiLCBhY3Rpb249InN0b3JlX3RydWUiLApAQCAtMTk5LDYgKzIxMywxMCBAQCBz
Y2hlbWUgaG9zdCBhbmQgcG9ydC4iIiIpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBo
ZWxwPSJBbGxvdyB0aGUgd3B0cnVubmVyIHRvIGluc3RhbGwgZm9udHMgb24geW91ciBzeXN0ZW0i
KQogICAgIGNvbmZpZ19ncm91cC5hZGRfYXJndW1lbnQoIi0tZm9udC1kaXIiLCBhY3Rpb249InN0
b3JlIiwgdHlwZT1hYnNfcGF0aCwgZGVzdD0iZm9udF9kaXIiLAogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgaGVscD0iUGF0aCB0byBsb2NhbCBmb250IGluc3RhbGxhdGlvbiBkaXJlY3Rv
cnkiLCBkZWZhdWx0PU5vbmUpCisgICAgY29uZmlnX2dyb3VwLmFkZF9hcmd1bWVudCgiLS1oZWFk
bGVzcyIsIGFjdGlvbj0ic3RvcmVfdHJ1ZSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBoZWxwPSJSdW4gYnJvd3NlciBpbiBoZWFkbGVzcyBtb2RlIiwgZGVmYXVsdD1Ob25lKQorICAg
IGNvbmZpZ19ncm91cC5hZGRfYXJndW1lbnQoIi0tbm8taGVhZGxlc3MiLCBhY3Rpb249InN0b3Jl
X2ZhbHNlIiwgZGVzdD0iaGVhZGxlc3MiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
aGVscD0iRG9uJ3QgcnVuIGJyb3dzZXIgaW4gaGVhZGxlc3MgbW9kZSIpCiAKICAgICBidWlsZF90
eXBlID0gcGFyc2VyLmFkZF9tdXR1YWxseV9leGNsdXNpdmVfZ3JvdXAoKQogICAgIGJ1aWxkX3R5
cGUuYWRkX2FyZ3VtZW50KCItLWRlYnVnLWJ1aWxkIiwgZGVzdD0iZGVidWciLCBhY3Rpb249InN0
b3JlX3RydWUiLApAQCAtMjE0LDcgKzIzMiw3IEBAIHNjaGVtZSBob3N0IGFuZCBwb3J0LiIiIikK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVscD0iVG90YWwgbnVtYmVyIG9mIGNo
dW5rcyB0byB1c2UiKQogICAgIGNodW5raW5nX2dyb3VwLmFkZF9hcmd1bWVudCgiLS10aGlzLWNo
dW5rIiwgYWN0aW9uPSJzdG9yZSIsIHR5cGU9aW50LCBkZWZhdWx0PTEsCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGhlbHA9IkNodW5rIG51bWJlciB0byBydW4iKQotICAgIGNodW5r
aW5nX2dyb3VwLmFkZF9hcmd1bWVudCgiLS1jaHVuay10eXBlIiwgYWN0aW9uPSJzdG9yZSIsIGNo
b2ljZXM9WyJub25lIiwgImVxdWFsX3RpbWUiLCAiaGFzaCIsICJkaXJfaGFzaCJdLAorICAgIGNo
dW5raW5nX2dyb3VwLmFkZF9hcmd1bWVudCgiLS1jaHVuay10eXBlIiwgYWN0aW9uPSJzdG9yZSIs
IGNob2ljZXM9WyJub25lIiwgImhhc2giLCAiZGlyX2hhc2giXSwKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgZGVmYXVsdD1Ob25lLCBoZWxwPSJDaHVua2luZyB0eXBlIHRvIHVzZSIp
CiAKICAgICBzc2xfZ3JvdXAgPSBwYXJzZXIuYWRkX2FyZ3VtZW50X2dyb3VwKCJTU0wvVExTIikK
QEAgLTIzOSwxMyArMjU3LDIwIEBAIHNjaGVtZSBob3N0IGFuZCBwb3J0LiIiIikKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgaGVscD0iUGF0aCB0byB0aGUgZm9sZGVyIGNvbnRhaW5pbmcg
YnJvd3NlciBwcmVmcyIpCiAgICAgZ2Vja29fZ3JvdXAuYWRkX2FyZ3VtZW50KCItLWRpc2FibGUt
ZTEwcyIsIGRlc3Q9ImdlY2tvX2UxMHMiLCBhY3Rpb249InN0b3JlX2ZhbHNlIiwgZGVmYXVsdD1U
cnVlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWxwPSJSdW4gdGVzdHMgd2l0aG91
dCBlbGVjdHJvbHlzaXMgcHJlZmVyZW5jZXMiKQorICAgIGdlY2tvX2dyb3VwLmFkZF9hcmd1bWVu
dCgiLS1lbmFibGUtd2VicmVuZGVyIiwgZGVzdD0iZW5hYmxlX3dlYnJlbmRlciIsIGFjdGlvbj0i
c3RvcmVfdHJ1ZSIsIGRlZmF1bHQ9Tm9uZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
aGVscD0iRW5hYmxlIHRoZSBXZWJSZW5kZXIgY29tcG9zaXRvciBpbiBHZWNrbyAoZGVmYXVsdHMg
dG8gZGlzYWJsZWQpLiIpCisgICAgZ2Vja29fZ3JvdXAuYWRkX2FyZ3VtZW50KCItLW5vLWVuYWJs
ZS13ZWJyZW5kZXIiLCBkZXN0PSJlbmFibGVfd2VicmVuZGVyIiwgYWN0aW9uPSJzdG9yZV9mYWxz
ZSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlbHA9IkRpc2FibGUgdGhlIFdlYlJl
bmRlciBjb21wb3NpdG9yIGluIEdlY2tvLiIpCiAgICAgZ2Vja29fZ3JvdXAuYWRkX2FyZ3VtZW50
KCItLXN0YWNrZml4LWRpciIsIGRlc3Q9InN0YWNrZml4X2RpciIsIGFjdGlvbj0ic3RvcmUiLAog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWxwPSJQYXRoIHRvIGRpcmVjdG9yeSBjb250
YWluaW5nIGFzc2VydGlvbiBzdGFjayBmaXhpbmcgc2NyaXB0cyIpCiAgICAgZ2Vja29fZ3JvdXAu
YWRkX2FyZ3VtZW50KCItLXNldHByZWYiLCBkZXN0PSJleHRyYV9wcmVmcyIsIGFjdGlvbj0nYXBw
ZW5kJywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdD1bXSwgbWV0YXZhcj0i
UFJFRj1WQUxVRSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlbHA9IkRlZmluZXMg
YW4gZXh0cmEgdXNlciBwcmVmZXJlbmNlIChvdmVycmlkZXMgdGhvc2UgaW4gcHJlZnNfcm9vdCki
KQotICAgIGdlY2tvX2dyb3VwLmFkZF9hcmd1bWVudCgiLS1sZWFrLWNoZWNrIiwgZGVzdD0ibGVh
a19jaGVjayIsIGFjdGlvbj0ic3RvcmVfdHJ1ZSIsCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGhlbHA9IkVuYWJsZSBsZWFrIGNoZWNraW5nIikKKyAgICBnZWNrb19ncm91cC5hZGRfYXJn
dW1lbnQoIi0tbGVhay1jaGVjayIsIGRlc3Q9ImxlYWtfY2hlY2siLCBhY3Rpb249InN0b3JlX3Ry
dWUiLCBkZWZhdWx0PU5vbmUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlbHA9IkVu
YWJsZSBsZWFrIGNoZWNraW5nIChlbmFibGVkIGJ5IGRlZmF1bHQgZm9yIGRlYnVnIGJ1aWxkcywg
IgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAic2lsZW50bHkgaWdub3JlZCBmb3Igb3B0
LCBtb2JpbGUpIikKKyAgICBnZWNrb19ncm91cC5hZGRfYXJndW1lbnQoIi0tbm8tbGVhay1jaGVj
ayIsIGRlc3Q9ImxlYWtfY2hlY2siLCBhY3Rpb249InN0b3JlX2ZhbHNlIiwgZGVmYXVsdD1Ob25l
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWxwPSJEaXNhYmxlIGxlYWsgY2hlY2tp
bmciKQogICAgIGdlY2tvX2dyb3VwLmFkZF9hcmd1bWVudCgiLS1zdHlsby10aHJlYWRzIiwgYWN0
aW9uPSJzdG9yZSIsIHR5cGU9aW50LCBkZWZhdWx0PTEsCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGhlbHA9Ik51bWJlciBvZiBwYXJhbGxlbCB0aHJlYWRzIHRvIHVzZSBmb3Igc3R5bG8i
KQogICAgIGdlY2tvX2dyb3VwLmFkZF9hcmd1bWVudCgiLS1yZWZ0ZXN0LWludGVybmFsIiwgZGVz
dD0icmVmdGVzdF9pbnRlcm5hbCIsIGFjdGlvbj0ic3RvcmVfdHJ1ZSIsCkBAIC0yNTMsNyArMjc4
LDcgQEAgc2NoZW1lIGhvc3QgYW5kIHBvcnQuIiIiKQogICAgIGdlY2tvX2dyb3VwLmFkZF9hcmd1
bWVudCgiLS1yZWZ0ZXN0LWV4dGVybmFsIiwgZGVzdD0icmVmdGVzdF9pbnRlcm5hbCIsIGFjdGlv
bj0ic3RvcmVfZmFsc2UiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWxwPSJEaXNh
YmxlIHJlZnRlc3QgcnVubmVyIGltcGxlbWVudGVkIGluc2lkZSBNYXJpb25ldHRlIikKICAgICBn
ZWNrb19ncm91cC5hZGRfYXJndW1lbnQoIi0tcmVmdGVzdC1zY3JlZW5zaG90IiwgZGVzdD0icmVm
dGVzdF9zY3JlZW5zaG90IiwgYWN0aW9uPSJzdG9yZSIsCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGNob2ljZXM9WyJhbHdheXMiLCAiZmFpbCIsICJ1bmV4cGVjdGVkIl0sIGRlZmF1bHQ9
InVuZXhwZWN0ZWQiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaG9pY2VzPVsiYWx3
YXlzIiwgImZhaWwiLCAidW5leHBlY3RlZCJdLCBkZWZhdWx0PU5vbmUsCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGhlbHA9IldpdGggLS1yZWZ0ZXN0LWludGVybmFsLCB3aGVuIHRvIHRh
a2UgYSBzY3JlZW5zaG90IikKICAgICBnZWNrb19ncm91cC5hZGRfYXJndW1lbnQoIi0tY2hhb3Mi
LCBkZXN0PSJjaGFvc19tb2RlX2ZsYWdzIiwgYWN0aW9uPSJzdG9yZSIsCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIG5hcmdzPSI/IiwgY29uc3Q9MHhGRkZGRkZGRiwgdHlwZT1pbnQsCkBA
IC0yODcsNiArMzEyLDE1IEBAIHNjaGVtZSBob3N0IGFuZCBwb3J0LiIiIikKICAgICBzYXVjZV9n
cm91cC5hZGRfYXJndW1lbnQoIi0tc2F1Y2UtY29ubmVjdC1iaW5hcnkiLAogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBkZXN0PSJzYXVjZV9jb25uZWN0X2JpbmFyeSIsCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGhlbHA9IlBhdGggdG8gU2F1Y2UgQ29ubmVjdCBiaW5hcnkiKQor
ICAgIHNhdWNlX2dyb3VwLmFkZF9hcmd1bWVudCgiLS1zYXVjZS1pbml0LXRpbWVvdXQiLCBhY3Rp
b249InN0b3JlIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1pbnQsIGRlZmF1
bHQ9MzAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlbHA9Ik51bWJlciBvZiBzZWNv
bmRzIHRvIHdhaXQgZm9yIFNhdWNlICIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAiQ29ubmVjdCB0dW5uZWwgdG8gYmUgYXZhaWxhYmxlIGJlZm9yZSAiCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgImFib3J0aW5nIikKKyAgICBzYXVjZV9ncm91cC5hZGRfYXJn
dW1lbnQoIi0tc2F1Y2UtY29ubmVjdC1hcmciLCBhY3Rpb249ImFwcGVuZCIsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ9W10sIGRlc3Q9InNhdWNlX2Nvbm5lY3RfYXJncyIs
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlbHA9IkNvbW1hbmQtbGluZSBhcmd1bWVu
dCB0byBmb3J3YXJkIHRvIHRoZSAiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IlNhdWNlIENvbm5lY3QgYmluYXJ5IChyZXBlYXRhYmxlKSIpCiAKICAgICB3ZWJraXRfZ3JvdXAg
PSBwYXJzZXIuYWRkX2FyZ3VtZW50X2dyb3VwKCJXZWJLaXQtc3BlY2lmaWMiKQogICAgIHdlYmtp
dF9ncm91cC5hZGRfYXJndW1lbnQoIi0td2Via2l0LXBvcnQiLCBkZXN0PSJ3ZWJraXRfcG9ydCIs
CkBAIC0yOTYsNyArMzMwLDE3IEBAIHNjaGVtZSBob3N0IGFuZCBwb3J0LiIiIikKICAgICAgICAg
ICAgICAgICAgICAgICAgIGhlbHA9Ikxpc3Qgb2YgVVJMcyBmb3IgdGVzdHMgdG8gcnVuLCBvciBw
YXRocyBpbmNsdWRpbmcgdGVzdHMgdG8gcnVuLiAiCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICIoZXF1aXZhbGVudCB0byAtLWluY2x1ZGUpIikKIAotICAgIGNvbW1hbmRsaW5lLmxvZ19m
b3JtYXR0ZXJzWyJ3cHRyZXBvcnQiXSA9IChmb3JtYXR0ZXJzLldwdHJlcG9ydEZvcm1hdHRlciwg
IndwdHJlcG9ydCBmb3JtYXQiKQorICAgIGRlZiBzY3JlZW5zaG90X2FwaV93cmFwcGVyKGZvcm1h
dHRlciwgYXBpKToKKyAgICAgICAgZm9ybWF0dGVyLmFwaSA9IGFwaQorICAgICAgICByZXR1cm4g
Zm9ybWF0dGVyCisKKyAgICBjb21tYW5kbGluZS5mbXRfb3B0aW9uc1siYXBpIl0gPSAoc2NyZWVu
c2hvdF9hcGlfd3JhcHBlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IkNhY2hlIEFQSSAoZGVmYXVsdDogJXMpIiAlIHdwdHNjcmVlbnNob3QuREVGQVVMVF9BUEksCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsid3B0c2NyZWVuc2hvdCJ9LCAi
c3RvcmUiKQorCisgICAgY29tbWFuZGxpbmUubG9nX2Zvcm1hdHRlcnNbImNocm9taXVtIl0gPSAo
Y2hyb21pdW0uQ2hyb21pdW1Gb3JtYXR0ZXIsICJDaHJvbWl1bSBMYXlvdXQgVGVzdHMgZm9ybWF0
IikKKyAgICBjb21tYW5kbGluZS5sb2dfZm9ybWF0dGVyc1sid3B0cmVwb3J0Il0gPSAod3B0cmVw
b3J0LldwdHJlcG9ydEZvcm1hdHRlciwgIndwdHJlcG9ydCBmb3JtYXQiKQorICAgIGNvbW1hbmRs
aW5lLmxvZ19mb3JtYXR0ZXJzWyJ3cHRzY3JlZW5zaG90Il0gPSAod3B0c2NyZWVuc2hvdC5XcHRz
Y3JlZW5zaG90Rm9ybWF0dGVyLCAid3B0LmZ5aSBzY3JlZW5zaG90cyIpCiAKICAgICBjb21tYW5k
bGluZS5hZGRfbG9nZ2luZ19ncm91cChwYXJzZXIpCiAgICAgcmV0dXJuIHBhcnNlcgpAQCAtMzIz
LDcgKzM2Nyw3IEBAIGRlZiBzZXRfZnJvbV9jb25maWcoa3dhcmdzKToKICAgICAgICAgICAgICAg
ICAgICAgKCJob3N0X2NlcnRfcGF0aCIsICJob3N0X2NlcnRfcGF0aCIsIFRydWUpLAogICAgICAg
ICAgICAgICAgICAgICAoImhvc3Rfa2V5X3BhdGgiLCAiaG9zdF9rZXlfcGF0aCIsIFRydWUpXX0K
IAotICAgIGZvciBzZWN0aW9uLCB2YWx1ZXMgaW4ga2V5cy5pdGVyaXRlbXMoKToKKyAgICBmb3Ig
c2VjdGlvbiwgdmFsdWVzIGluIGl0ZXJpdGVtcyhrZXlzKToKICAgICAgICAgZm9yIGNvbmZpZ192
YWx1ZSwga3dfdmFsdWUsIGlzX3BhdGggaW4gdmFsdWVzOgogICAgICAgICAgICAgaWYga3dfdmFs
dWUgaW4ga3dhcmdzIGFuZCBrd2FyZ3Nba3dfdmFsdWVdIGlzIE5vbmU6CiAgICAgICAgICAgICAg
ICAgaWYgbm90IGlzX3BhdGg6CkBAIC0zNTQsMTEgKzM5OCwxMiBAQCBkZWYgc2V0X2Zyb21fY29u
ZmlnKGt3YXJncyk6CiAKICAgICBjaGVja19wYXRocyhrd2FyZ3MpCiAKKwogZGVmIGdldF90ZXN0
X3BhdGhzKGNvbmZpZyk6CiAgICAgIyBTZXQgdXAgdGVzdF9wYXRocwogICAgIHRlc3RfcGF0aHMg
PSBPcmRlcmVkRGljdCgpCiAKLSAgICBmb3Igc2VjdGlvbiBpbiBjb25maWcuaXRlcmtleXMoKToK
KyAgICBmb3Igc2VjdGlvbiBpbiBpdGVya2V5cyhjb25maWcpOgogICAgICAgICBpZiBzZWN0aW9u
LnN0YXJ0c3dpdGgoIm1hbmlmZXN0OiIpOgogICAgICAgICAgICAgbWFuaWZlc3Rfb3B0cyA9IGNv
bmZpZy5nZXQoc2VjdGlvbikKICAgICAgICAgICAgIHVybF9iYXNlID0gbWFuaWZlc3Rfb3B0cy5n
ZXQoInVybF9iYXNlIiwgIi8iKQpAQCAtMzg0LDE1ICs0MjksMTUgQEAgZGVmIGV4ZV9wYXRoKG5h
bWUpOgogCiAKIGRlZiBjaGVja19wYXRocyhrd2FyZ3MpOgotICAgIGZvciB0ZXN0X3BhdGhzIGlu
IGt3YXJnc1sidGVzdF9wYXRocyJdLml0ZXJ2YWx1ZXMoKToKKyAgICBmb3IgdGVzdF9wYXRocyBp
biBpdGVydmFsdWVzKGt3YXJnc1sidGVzdF9wYXRocyJdKToKICAgICAgICAgaWYgbm90ICgidGVz
dHNfcGF0aCIgaW4gdGVzdF9wYXRocyBhbmQKICAgICAgICAgICAgICAgICAibWV0YWRhdGFfcGF0
aCIgaW4gdGVzdF9wYXRocyk6Ci0gICAgICAgICAgICBwcmludCAiRmF0YWw6IG11c3Qgc3BlY2lm
eSBib3RoIGEgdGVzdCBwYXRoIGFuZCBtZXRhZGF0YSBwYXRoIgorICAgICAgICAgICAgcHJpbnQo
IkZhdGFsOiBtdXN0IHNwZWNpZnkgYm90aCBhIHRlc3QgcGF0aCBhbmQgbWV0YWRhdGEgcGF0aCIp
CiAgICAgICAgICAgICBzeXMuZXhpdCgxKQogICAgICAgICBpZiAibWFuaWZlc3RfcGF0aCIgbm90
IGluIHRlc3RfcGF0aHM6CiAgICAgICAgICAgICB0ZXN0X3BhdGhzWyJtYW5pZmVzdF9wYXRoIl0g
PSBvcy5wYXRoLmpvaW4odGVzdF9wYXRoc1sibWV0YWRhdGFfcGF0aCJdLAogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJNQU5JRkVTVC5qc29u
IikKLSAgICAgICAgZm9yIGtleSwgcGF0aCBpbiB0ZXN0X3BhdGhzLml0ZXJpdGVtcygpOgorICAg
ICAgICBmb3Iga2V5LCBwYXRoIGluIGl0ZXJpdGVtcyh0ZXN0X3BhdGhzKToKICAgICAgICAgICAg
IG5hbWUgPSBrZXkuc3BsaXQoIl8iLCAxKVswXQogCiAgICAgICAgICAgICBpZiBuYW1lID09ICJt
YW5pZmVzdCI6CkBAIC00MDEsMTEgKzQ0NiwxMSBAQCBkZWYgY2hlY2tfcGF0aHMoa3dhcmdzKToK
ICAgICAgICAgICAgICAgICBwYXRoID0gb3MucGF0aC5kaXJuYW1lKHBhdGgpCiAKICAgICAgICAg
ICAgIGlmIG5vdCBvcy5wYXRoLmV4aXN0cyhwYXRoKToKLSAgICAgICAgICAgICAgICBwcmludCAi
RmF0YWw6ICVzIHBhdGggJXMgZG9lcyBub3QgZXhpc3QiICUgKG5hbWUsIHBhdGgpCisgICAgICAg
ICAgICAgICAgcHJpbnQoIkZhdGFsOiAlcyBwYXRoICVzIGRvZXMgbm90IGV4aXN0IiAlIChuYW1l
LCBwYXRoKSkKICAgICAgICAgICAgICAgICBzeXMuZXhpdCgxKQogCiAgICAgICAgICAgICBpZiBu
b3Qgb3MucGF0aC5pc2RpcihwYXRoKToKLSAgICAgICAgICAgICAgICBwcmludCAiRmF0YWw6ICVz
IHBhdGggJXMgaXMgbm90IGEgZGlyZWN0b3J5IiAlIChuYW1lLCBwYXRoKQorICAgICAgICAgICAg
ICAgIHByaW50KCJGYXRhbDogJXMgcGF0aCAlcyBpcyBub3QgYSBkaXJlY3RvcnkiICUgKG5hbWUs
IHBhdGgpKQogICAgICAgICAgICAgICAgIHN5cy5leGl0KDEpCiAKIApAQCAtNDE1LDYgKzQ2MCw5
IEBAIGRlZiBjaGVja19hcmdzKGt3YXJncyk6CiAgICAgaWYga3dhcmdzWyJwcm9kdWN0Il0gaXMg
Tm9uZToKICAgICAgICAga3dhcmdzWyJwcm9kdWN0Il0gPSAiZmlyZWZveCIKIAorICAgIGlmIGt3
YXJnc1sibWFuaWZlc3RfdXBkYXRlIl0gaXMgTm9uZToKKyAgICAgICAga3dhcmdzWyJtYW5pZmVz
dF91cGRhdGUiXSA9IFRydWUKKwogICAgIGlmICJzYXVjZSIgaW4ga3dhcmdzWyJwcm9kdWN0Il06
CiAgICAgICAgIGt3YXJnc1sicGF1c2VfYWZ0ZXJfdGVzdCJdID0gRmFsc2UKIApAQCAtNDU1LDcg
KzUwMyw3IEBAIGRlZiBjaGVja19hcmdzKGt3YXJncyk6CiAKICAgICBpZiBrd2FyZ3NbImJpbmFy
eSJdIGlzIG5vdCBOb25lOgogICAgICAgICBpZiBub3Qgb3MucGF0aC5leGlzdHMoa3dhcmdzWyJi
aW5hcnkiXSk6Ci0gICAgICAgICAgICBwcmludCA+PiBzeXMuc3RkZXJyLCAiQmluYXJ5IHBhdGgg
JXMgZG9lcyBub3QgZXhpc3QiICUga3dhcmdzWyJiaW5hcnkiXQorICAgICAgICAgICAgcHJpbnQo
IkJpbmFyeSBwYXRoICVzIGRvZXMgbm90IGV4aXN0IiAlIGt3YXJnc1siYmluYXJ5Il0sIGZpbGU9
c3lzLnN0ZGVycikKICAgICAgICAgICAgIHN5cy5leGl0KDEpCiAKICAgICBpZiBrd2FyZ3NbInNz
bF90eXBlIl0gaXMgTm9uZToKQEAgLTQ3NCwyOCArNTIyLDM2IEBAIGRlZiBjaGVja19hcmdzKGt3
YXJncyk6CiAgICAgZWxpZiBrd2FyZ3NbInNzbF90eXBlIl0gPT0gIm9wZW5zc2wiOgogICAgICAg
ICBwYXRoID0gZXhlX3BhdGgoa3dhcmdzWyJvcGVuc3NsX2JpbmFyeSJdKQogICAgICAgICBpZiBw
YXRoIGlzIE5vbmU6Ci0gICAgICAgICAgICBwcmludCA+PiBzeXMuc3RkZXJyLCAib3BlbnNzbC1i
aW5hcnkgYXJndW1lbnQgbWlzc2luZyBvciBub3QgYSB2YWxpZCBleGVjdXRhYmxlIgorICAgICAg
ICAgICAgcHJpbnQoIm9wZW5zc2wtYmluYXJ5IGFyZ3VtZW50IG1pc3Npbmcgb3Igbm90IGEgdmFs
aWQgZXhlY3V0YWJsZSIsIGZpbGU9c3lzLnN0ZGVycikKICAgICAgICAgICAgIHN5cy5leGl0KDEp
CiAgICAgICAgIGt3YXJnc1sib3BlbnNzbF9iaW5hcnkiXSA9IHBhdGgKIAogICAgIGlmIGt3YXJn
c1sic3NsX3R5cGUiXSAhPSAibm9uZSIgYW5kIGt3YXJnc1sicHJvZHVjdCJdID09ICJmaXJlZm94
IiBhbmQga3dhcmdzWyJjZXJ0dXRpbF9iaW5hcnkiXToKICAgICAgICAgcGF0aCA9IGV4ZV9wYXRo
KGt3YXJnc1siY2VydHV0aWxfYmluYXJ5Il0pCiAgICAgICAgIGlmIHBhdGggaXMgTm9uZToKLSAg
ICAgICAgICAgIHByaW50ID4+IHN5cy5zdGRlcnIsICJjZXJ0dXRpbC1iaW5hcnkgYXJndW1lbnQg
bWlzc2luZyBvciBub3QgYSB2YWxpZCBleGVjdXRhYmxlIgorICAgICAgICAgICAgcHJpbnQoImNl
cnR1dGlsLWJpbmFyeSBhcmd1bWVudCBtaXNzaW5nIG9yIG5vdCBhIHZhbGlkIGV4ZWN1dGFibGUi
LCBmaWxlPXN5cy5zdGRlcnIpCiAgICAgICAgICAgICBzeXMuZXhpdCgxKQogICAgICAgICBrd2Fy
Z3NbImNlcnR1dGlsX2JpbmFyeSJdID0gcGF0aAogCiAgICAgaWYga3dhcmdzWydleHRyYV9wcmVm
cyddOgorICAgICAgICAjIElmIGEgc2luZ2xlIHByZWYgaXMgcGFzc2VkIGluIGFzIGEgc3RyaW5n
LCBtYWtlIGl0IGEgbGlzdAorICAgICAgICBpZiB0eXBlKGt3YXJnc1snZXh0cmFfcHJlZnMnXSkg
aW4gKHN0ciwgdW5pY29kZSk6CisgICAgICAgICAgICBrd2FyZ3NbJ2V4dHJhX3ByZWZzJ10gPSBb
a3dhcmdzWydleHRyYV9wcmVmcyddXQogICAgICAgICBtaXNzaW5nID0gYW55KCc9JyBub3QgaW4g
cHJlZmFyZyBmb3IgcHJlZmFyZyBpbiBrd2FyZ3NbJ2V4dHJhX3ByZWZzJ10pCiAgICAgICAgIGlm
IG1pc3Npbmc6Ci0gICAgICAgICAgICBwcmludCA+PiBzeXMuc3RkZXJyLCAiUHJlZmVyZW5jZXMg
dmlhIC0tc2V0cHJlZiBtdXN0IGJlIGluIGtleT12YWx1ZSBmb3JtYXQiCisgICAgICAgICAgICBw
cmludCgiUHJlZmVyZW5jZXMgdmlhIC0tc2V0cHJlZiBtdXN0IGJlIGluIGtleT12YWx1ZSBmb3Jt
YXQiLCBmaWxlPXN5cy5zdGRlcnIpCiAgICAgICAgICAgICBzeXMuZXhpdCgxKQogICAgICAgICBr
d2FyZ3NbJ2V4dHJhX3ByZWZzJ10gPSBbdHVwbGUocHJlZmFyZy5zcGxpdCgnPScsIDEpKSBmb3Ig
cHJlZmFyZyBpbgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga3dhcmdzWydleHRy
YV9wcmVmcyddXQogCiAgICAgaWYga3dhcmdzWyJyZWZ0ZXN0X2ludGVybmFsIl0gaXMgTm9uZToK
LSAgICAgICAgIyBEZWZhdWx0IHRvIHRoZSBpbnRlcm5hbCByZWZ0ZXN0IGltcGxlbWVudGF0aW9u
IG9uIExpbnV4IGFuZCBPU1gKLSAgICAgICAga3dhcmdzWyJyZWZ0ZXN0X2ludGVybmFsIl0gPSBz
eXMucGxhdGZvcm0uc3RhcnRzd2l0aCgibGludXgiKSBvciBzeXMucGxhdGZvcm0uc3RhcnRzd2l0
aCgiZGFyd2luIikKKyAgICAgICAga3dhcmdzWyJyZWZ0ZXN0X2ludGVybmFsIl0gPSBUcnVlCisK
KyAgICBpZiBrd2FyZ3NbInJlZnRlc3Rfc2NyZWVuc2hvdCJdIGlzIE5vbmU6CisgICAgICAgIGt3
YXJnc1sicmVmdGVzdF9zY3JlZW5zaG90Il0gPSAidW5leHBlY3RlZCIKKworICAgIGlmIGt3YXJn
c1siZW5hYmxlX3dlYnJlbmRlciJdIGlzIE5vbmU6CisgICAgICAgIGt3YXJnc1siZW5hYmxlX3dl
YnJlbmRlciJdID0gRmFsc2UKIAogICAgIHJldHVybiBrd2FyZ3MKIApAQCAtNTEwLDcgKzU2Niw3
IEBAIGRlZiBjaGVja19hcmdzX3VwZGF0ZShrd2FyZ3MpOgogCiAgICAgZm9yIGl0ZW0gaW4ga3dh
cmdzWyJydW5fbG9nIl06CiAgICAgICAgIGlmIG9zLnBhdGguaXNkaXIoaXRlbSk6Ci0gICAgICAg
ICAgICBwcmludCA+PiBzeXMuc3RkZXJyLCAiTG9nIGZpbGUgJXMgaXMgYSBkaXJlY3RvcnkiICUg
aXRlbQorICAgICAgICAgICAgcHJpbnQoIkxvZyBmaWxlICVzIGlzIGEgZGlyZWN0b3J5IiAlIGl0
ZW0sIGZpbGU9c3lzLnN0ZGVycikKICAgICAgICAgICAgIHN5cy5leGl0KDEpCiAKICAgICByZXR1
cm4ga3dhcmdzCkBAIC01MTksNyArNTc1LDcgQEAgZGVmIGNoZWNrX2FyZ3NfdXBkYXRlKGt3YXJn
cyk6CiBkZWYgY3JlYXRlX3BhcnNlcl91cGRhdGUocHJvZHVjdF9jaG9pY2VzPU5vbmUpOgogICAg
IGZyb20gbW96bG9nLnN0cnVjdHVyZWQgaW1wb3J0IGNvbW1hbmRsaW5lCiAKLSAgICBpbXBvcnQg
cHJvZHVjdHMKKyAgICBmcm9tIC4gaW1wb3J0IHByb2R1Y3RzCiAKICAgICBpZiBwcm9kdWN0X2No
b2ljZXMgaXMgTm9uZToKICAgICAgICAgY29uZmlnX2RhdGEgPSBjb25maWcubG9hZCgpCkBAIC01
NDksMTMgKzYwNSwyMyBAQCBkZWYgY3JlYXRlX3BhcnNlcl91cGRhdGUocHJvZHVjdF9jaG9pY2Vz
PU5vbmUpOgogICAgICAgICAgICAgICAgICAgICAgICAgaGVscD0iRG9uJ3QgY3JlYXRlIGEgVkNT
IGNvbW1pdCBjb250YWluaW5nIHRoZSBjaGFuZ2VzLiIpCiAgICAgcGFyc2VyLmFkZF9hcmd1bWVu
dCgiLS1zeW5jIiwgZGVzdD0ic3luYyIsIGFjdGlvbj0ic3RvcmVfdHJ1ZSIsIGRlZmF1bHQ9RmFs
c2UsCiAgICAgICAgICAgICAgICAgICAgICAgICBoZWxwPSJTeW5jIHRoZSB0ZXN0cyB3aXRoIHRo
ZSBsYXRlc3QgZnJvbSB1cHN0cmVhbSAoaW1wbGllcyAtLXBhdGNoKSIpCi0gICAgcGFyc2VyLmFk
ZF9hcmd1bWVudCgiLS1pZ25vcmUtZXhpc3RpbmciLCBhY3Rpb249InN0b3JlX3RydWUiLAotICAg
ICAgICAgICAgICAgICAgICAgICAgaGVscD0iV2hlbiB1cGRhdGluZyB0ZXN0IHJlc3VsdHMgb25s
eSBjb25zaWRlciByZXN1bHRzIGZyb20gdGhlIGxvZ2ZpbGVzIHByb3ZpZGVkLCBub3QgZXhpc3Rp
bmcgZXhwZWN0YXRpb25zLiIpCi0gICAgcGFyc2VyLmFkZF9hcmd1bWVudCgiLS1zdGFiaWxpdHki
LCBuYXJncz0iPyIsIGFjdGlvbj0ic3RvcmUiLCBjb25zdD0idW5zdGFibGUiLCBkZWZhdWx0PU5v
bmUsCisgICAgcGFyc2VyLmFkZF9hcmd1bWVudCgiLS1mdWxsIiwgYWN0aW9uPSJzdG9yZV90cnVl
IiwgZGVmYXVsdD1GYWxzZSwKKyAgICAgICAgICAgICAgICAgICAgICAgIGhlbHA9KCJGb3IgYWxs
IHRlc3RzIHRoYXQgYXJlIHVwZGF0ZWQsIHJlbW92ZSBhbnkgZXhpc3RpbmcgY29uZGl0aW9ucyBh
bmQgbWlzc2luZyBzdWJ0ZXN0cyIpKQorICAgIHBhcnNlci5hZGRfYXJndW1lbnQoIi0tZGlzYWJs
ZS1pbnRlcm1pdHRlbnQiLCBuYXJncz0iPyIsIGFjdGlvbj0ic3RvcmUiLCBjb25zdD0idW5zdGFi
bGUiLCBkZWZhdWx0PU5vbmUsCiAgICAgICAgIGhlbHA9KCJSZWFzb24gZm9yIGRpc2FibGluZyB0
ZXN0cy4gV2hlbiB1cGRhdGluZyB0ZXN0IHJlc3VsdHMsIGRpc2FibGUgdGVzdHMgdGhhdCBoYXZl
ICIKICAgICAgICAgICAgICAgImluY29uc2lzdGVudCByZXN1bHRzIGFjcm9zcyBtYW55IHJ1bnMg
d2l0aCB0aGUgZ2l2ZW4gcmVhc29uLiIpKQotICAgIHBhcnNlci5hZGRfYXJndW1lbnQoIi0tY29u
dGludWUiLCBhY3Rpb249InN0b3JlX3RydWUiLCBoZWxwPSJDb250aW51ZSBhIHByZXZpb3VzbHkg
c3RhcnRlZCBydW4gb2YgdGhlIHVwZGF0ZSBzY3JpcHQiKQotICAgIHBhcnNlci5hZGRfYXJndW1l
bnQoIi0tYWJvcnQiLCBhY3Rpb249InN0b3JlX3RydWUiLCBoZWxwPSJDbGVhciBzdGF0ZSBmcm9t
IGEgcHJldmlvdXMgaW5jb21wbGV0ZSBydW4gb2YgdGhlIHVwZGF0ZSBzY3JpcHQiKQorICAgIHBh
cnNlci5hZGRfYXJndW1lbnQoIi0tdXBkYXRlLWludGVybWl0dGVudCIsIGFjdGlvbj0ic3RvcmVf
dHJ1ZSIsIGRlZmF1bHQ9RmFsc2UsCisgICAgICAgICAgICAgICAgICAgICAgICBoZWxwPSgiVXBk
YXRlIHRlc3QgbWV0YWRhdGEgd2l0aCBleHBlY3RlZCBpbnRlcm1pdHRlbnQgc3RhdHVzZXMuIikp
CisgICAgcGFyc2VyLmFkZF9hcmd1bWVudCgiLS1yZW1vdmUtaW50ZXJtaXR0ZW50IiwgYWN0aW9u
PSJzdG9yZV90cnVlIiwgZGVmYXVsdD1GYWxzZSwKKyAgICAgICAgICAgICAgICAgICAgICAgIGhl
bHA9KCJSZW1vdmUgb2Jzb2xldGUgaW50ZXJtaXR0ZW50IHN0YXR1c2VzIGZyb20gZXhwZWN0ZWQg
c3RhdHVzZXMuIikpCisgICAgcGFyc2VyLmFkZF9hcmd1bWVudCgiLS1uby1yZW1vdmUtb2Jzb2xl
dGUiLCBhY3Rpb249InN0b3JlX2ZhbHNlIiwgZGVzdD0icmVtb3ZlX29ic29sZXRlIiwgZGVmYXVs
dD1UcnVlLAorICAgICAgICAgICAgICAgICAgICAgICAgaGVscD0oIkRvbid0IHJlbW92ZSBtZXRh
ZGF0YSBmaWxlcyB0aGF0IG5vIGxvbmdlciBjb3JyZXNwb25kIHRvIGEgdGVzdCBmaWxlIikpCisg
ICAgcGFyc2VyLmFkZF9hcmd1bWVudCgiLS1uby1zdG9yZS1zdGF0ZSIsIGFjdGlvbj0ic3RvcmVf
ZmFsc2UiLCBkZXN0PSJzdG9yZV9zdGF0ZSIsCisgICAgICAgICAgICAgICAgICAgICAgICBoZWxw
PSJTdG9yZSBzdGF0ZSBzbyB0aGF0IHN0ZXBzIGNhbiBiZSByZXN1bWVkIGFmdGVyIGZhaWx1cmUi
KQorICAgIHBhcnNlci5hZGRfYXJndW1lbnQoIi0tY29udGludWUiLCBhY3Rpb249InN0b3JlX3Ry
dWUiLAorICAgICAgICAgICAgICAgICAgICAgICAgaGVscD0iQ29udGludWUgYSBwcmV2aW91c2x5
IHN0YXJ0ZWQgcnVuIG9mIHRoZSB1cGRhdGUgc2NyaXB0IikKKyAgICBwYXJzZXIuYWRkX2FyZ3Vt
ZW50KCItLWFib3J0IiwgYWN0aW9uPSJzdG9yZV90cnVlIiwKKyAgICAgICAgICAgICAgICAgICAg
ICAgIGhlbHA9IkNsZWFyIHN0YXRlIGZyb20gYSBwcmV2aW91cyBpbmNvbXBsZXRlIHJ1biBvZiB0
aGUgdXBkYXRlIHNjcmlwdCIpCiAgICAgcGFyc2VyLmFkZF9hcmd1bWVudCgiLS1leGNsdWRlIiwg
YWN0aW9uPSJzdG9yZSIsIG5hcmdzPSIqIiwKICAgICAgICAgICAgICAgICAgICAgICAgIGhlbHA9
Ikxpc3Qgb2YgZ2xvYi1zdHlsZSBwYXRocyB0byBleGNsdWRlIHdoZW4gc3luY2luZyB0ZXN0cyIp
CiAgICAgcGFyc2VyLmFkZF9hcmd1bWVudCgiLS1pbmNsdWRlIiwgYWN0aW9uPSJzdG9yZSIsIG5h
cmdzPSIqIiwKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci93cHRsb2dnaW5nLnB5IGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0
cnVubmVyL3dwdGxvZ2dpbmcucHkKaW5kZXggYWMzMTE4MTZjMTguLjY5Y2VlNzQ0ODc5IDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3dwdHJ1bm5lci93cHRydW5uZXIvd3B0bG9nZ2luZy5weQorKysgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvd3B0
bG9nZ2luZy5weQpAQCAtMSwxOSArMSwxNyBAQAogaW1wb3J0IGxvZ2dpbmcKLWltcG9ydCBzeXMK
LWltcG9ydCB0aHJlYWRpbmcKLWZyb20gU3RyaW5nSU8gaW1wb3J0IFN0cmluZ0lPCi1mcm9tIG11
bHRpcHJvY2Vzc2luZyBpbXBvcnQgUXVldWUKIAogZnJvbSBtb3psb2cgaW1wb3J0IGNvbW1hbmRs
aW5lLCBzdGRhZGFwdGVyLCBzZXRfZGVmYXVsdF9sb2dnZXIKLWZyb20gbW96bG9nLnN0cnVjdHVy
ZWRsb2cgaW1wb3J0IFN0cnVjdHVyZWRMb2dnZXIKK2Zyb20gbW96bG9nLnN0cnVjdHVyZWRsb2cg
aW1wb3J0IFN0cnVjdHVyZWRMb2dnZXIsIGxvZ19sZXZlbHMKIAotZGVmIHNldHVwKGFyZ3MsIGRl
ZmF1bHRzKToKKworZGVmIHNldHVwKGFyZ3MsIGRlZmF1bHRzLCBmb3JtYXR0ZXJfZGVmYXVsdHM9
Tm9uZSk6CiAgICAgbG9nZ2VyID0gYXJncy5wb3AoJ2xvZycsIE5vbmUpCiAgICAgaWYgbG9nZ2Vy
OgogICAgICAgICBzZXRfZGVmYXVsdF9sb2dnZXIobG9nZ2VyKQogICAgICAgICBTdHJ1Y3R1cmVk
TG9nZ2VyLl9sb2dnZXJfc3RhdGVzWyJ3ZWItcGxhdGZvcm0tdGVzdHMiXSA9IGxvZ2dlci5fc3Rh
dGUKICAgICBlbHNlOgotICAgICAgICBsb2dnZXIgPSBjb21tYW5kbGluZS5zZXR1cF9sb2dnaW5n
KCJ3ZWItcGxhdGZvcm0tdGVzdHMiLCBhcmdzLCBkZWZhdWx0cykKKyAgICAgICAgbG9nZ2VyID0g
Y29tbWFuZGxpbmUuc2V0dXBfbG9nZ2luZygid2ViLXBsYXRmb3JtLXRlc3RzIiwgYXJncywgZGVm
YXVsdHMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9ybWF0
dGVyX2RlZmF1bHRzPWZvcm1hdHRlcl9kZWZhdWx0cykKICAgICBzZXR1cF9zdGRsaWJfbG9nZ2Vy
KCkKIAogICAgIGZvciBuYW1lIGluIGFyZ3Mua2V5cygpOgpAQCAtNTEsODQgKzQ5LDE5IEBAIGNs
YXNzIExvZ0xldmVsUmV3cml0ZXIob2JqZWN0KToKICAgICAgICAgcmV0dXJuIHNlbGYuaW5uZXIo
ZGF0YSkKIAogCi1jbGFzcyBMb2dUaHJlYWQodGhyZWFkaW5nLlRocmVhZCk6Ci0gICAgZGVmIF9f
aW5pdF9fKHNlbGYsIHF1ZXVlLCBsb2dnZXIsIGxldmVsKToKLSAgICAgICAgc2VsZi5xdWV1ZSA9
IHF1ZXVlCi0gICAgICAgIHNlbGYubG9nX2Z1bmMgPSBnZXRhdHRyKGxvZ2dlciwgbGV2ZWwpCi0g
ICAgICAgIHRocmVhZGluZy5UaHJlYWQuX19pbml0X18oc2VsZiwgbmFtZT0iVGhyZWFkLUxvZyIp
Ci0gICAgICAgIHNlbGYuZGFlbW9uID0gVHJ1ZQotCi0gICAgZGVmIHJ1bihzZWxmKToKLSAgICAg
ICAgd2hpbGUgVHJ1ZToKLSAgICAgICAgICAgIHRyeToKLSAgICAgICAgICAgICAgICBtc2cgPSBz
ZWxmLnF1ZXVlLmdldCgpCi0gICAgICAgICAgICBleGNlcHQgKEVPRkVycm9yLCBJT0Vycm9yKToK
LSAgICAgICAgICAgICAgICBicmVhawotICAgICAgICAgICAgaWYgbXNnIGlzIE5vbmU6Ci0gICAg
ICAgICAgICAgICAgYnJlYWsKLSAgICAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAgICAgc2Vs
Zi5sb2dfZnVuYyhtc2cpCi0KLQotY2xhc3MgTG9nZ2luZ1dyYXBwZXIoU3RyaW5nSU8pOgotICAg
ICIiIldyYXBwZXIgZm9yIGZpbGUgbGlrZSBvYmplY3RzIHRvIHJlZGlyZWN0IG91dHB1dCB0byBs
b2dnZXIKLSAgICBpbnN0ZWFkIiIiCi0KLSAgICBkZWYgX19pbml0X18oc2VsZiwgcXVldWUsIHBy
ZWZpeD1Ob25lKToKLSAgICAgICAgU3RyaW5nSU8uX19pbml0X18oc2VsZikKLSAgICAgICAgc2Vs
Zi5xdWV1ZSA9IHF1ZXVlCi0gICAgICAgIHNlbGYucHJlZml4ID0gcHJlZml4Ci0KLSAgICBkZWYg
d3JpdGUoc2VsZiwgZGF0YSk6Ci0gICAgICAgIGlmIGlzaW5zdGFuY2UoZGF0YSwgc3RyKToKLSAg
ICAgICAgICAgIHRyeToKLSAgICAgICAgICAgICAgICBkYXRhID0gZGF0YS5kZWNvZGUoInV0Zjgi
KQotICAgICAgICAgICAgZXhjZXB0IFVuaWNvZGVEZWNvZGVFcnJvcjoKLSAgICAgICAgICAgICAg
ICBkYXRhID0gZGF0YS5lbmNvZGUoInN0cmluZ19lc2NhcGUiKS5kZWNvZGUoImFzY2lpIikKLQot
ICAgICAgICBpZiBkYXRhLmVuZHN3aXRoKCJcbiIpOgotICAgICAgICAgICAgZGF0YSA9IGRhdGFb
Oi0xXQotICAgICAgICBpZiBkYXRhLmVuZHN3aXRoKCJcciIpOgotICAgICAgICAgICAgZGF0YSA9
IGRhdGFbOi0xXQotICAgICAgICBpZiBub3QgZGF0YToKLSAgICAgICAgICAgIHJldHVybgotICAg
ICAgICBpZiBzZWxmLnByZWZpeCBpcyBub3QgTm9uZToKLSAgICAgICAgICAgIGRhdGEgPSAiJXM6
ICVzIiAlIChzZWxmLnByZWZpeCwgZGF0YSkKLSAgICAgICAgc2VsZi5xdWV1ZS5wdXQoZGF0YSkK
LQotICAgIGRlZiBmbHVzaChzZWxmKToKLSAgICAgICAgcGFzcwotCi0KLWNsYXNzIENhcHR1cmVJ
TyhvYmplY3QpOgotICAgIGRlZiBfX2luaXRfXyhzZWxmLCBsb2dnZXIsIGRvX2NhcHR1cmUpOgot
ICAgICAgICBzZWxmLmxvZ2dlciA9IGxvZ2dlcgotICAgICAgICBzZWxmLmRvX2NhcHR1cmUgPSBk
b19jYXB0dXJlCi0gICAgICAgIHNlbGYubG9nZ2luZ19xdWV1ZSA9IE5vbmUKLSAgICAgICAgc2Vs
Zi5sb2dnaW5nX3RocmVhZCA9IE5vbmUKLSAgICAgICAgc2VsZi5vcmlnaW5hbF9zdGRpbyA9IE5v
bmUKLQotICAgIGRlZiBfX2VudGVyX18oc2VsZik6Ci0gICAgICAgIGlmIHNlbGYuZG9fY2FwdHVy
ZToKLSAgICAgICAgICAgIHNlbGYub3JpZ2luYWxfc3RkaW8gPSAoc3lzLnN0ZG91dCwgc3lzLnN0
ZGVycikKLSAgICAgICAgICAgIHNlbGYubG9nZ2luZ19xdWV1ZSA9IFF1ZXVlKCkKLSAgICAgICAg
ICAgIHNlbGYubG9nZ2luZ190aHJlYWQgPSBMb2dUaHJlYWQoc2VsZi5sb2dnaW5nX3F1ZXVlLCBz
ZWxmLmxvZ2dlciwgImluZm8iKQotICAgICAgICAgICAgc3lzLnN0ZG91dCA9IExvZ2dpbmdXcmFw
cGVyKHNlbGYubG9nZ2luZ19xdWV1ZSwgcHJlZml4PSJTVERPVVQiKQotICAgICAgICAgICAgc3lz
LnN0ZGVyciA9IExvZ2dpbmdXcmFwcGVyKHNlbGYubG9nZ2luZ19xdWV1ZSwgcHJlZml4PSJTVERF
UlIiKQotICAgICAgICAgICAgc2VsZi5sb2dnaW5nX3RocmVhZC5zdGFydCgpCi0KLSAgICBkZWYg
X19leGl0X18oc2VsZiwgKmFyZ3MsICoqa3dhcmdzKToKLSAgICAgICAgaWYgc2VsZi5kb19jYXB0
dXJlOgotICAgICAgICAgICAgc3lzLnN0ZG91dCwgc3lzLnN0ZGVyciA9IHNlbGYub3JpZ2luYWxf
c3RkaW8KLSAgICAgICAgICAgIGlmIHNlbGYubG9nZ2luZ19xdWV1ZSBpcyBub3QgTm9uZToKLSAg
ICAgICAgICAgICAgICBzZWxmLmxvZ2dlci5pbmZvKCJDbG9zaW5nIGxvZ2dpbmcgcXVldWUiKQot
ICAgICAgICAgICAgICAgIHNlbGYubG9nZ2luZ19xdWV1ZS5wdXQoTm9uZSkKLSAgICAgICAgICAg
ICAgICBpZiBzZWxmLmxvZ2dpbmdfdGhyZWFkIGlzIG5vdCBOb25lOgotICAgICAgICAgICAgICAg
ICAgICBzZWxmLmxvZ2dpbmdfdGhyZWFkLmpvaW4oMTApCi0gICAgICAgICAgICAgICAgd2hpbGUg
bm90IHNlbGYubG9nZ2luZ19xdWV1ZS5lbXB0eSgpOgotICAgICAgICAgICAgICAgICAgICB0cnk6
Ci0gICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmxvZ2dlci53YXJuaW5nKCJEcm9wcGluZyBs
b2cgbWVzc2FnZTogJXIiLCBzZWxmLmxvZ2dpbmdfcXVldWUuZ2V0KCkpCi0gICAgICAgICAgICAg
ICAgICAgIGV4Y2VwdCBFeGNlcHRpb246Ci0gICAgICAgICAgICAgICAgICAgICAgICBwYXNzCi0g
ICAgICAgICAgICAgICAgc2VsZi5sb2dnaW5nX3F1ZXVlLmNsb3NlKCkKLSAgICAgICAgICAgICAg
ICBzZWxmLmxvZ2dlci5pbmZvKCJxdWV1ZSBjbG9zZWQiKQorY2xhc3MgTG9nZ2VkQWJvdmVMZXZl
bEhhbmRsZXIob2JqZWN0KToKKyAgICAiIiJGaWx0ZXIgdGhhdCByZWNvcmRzIHdoZXRoZXIgYW55
IGxvZyBtZXNzYWdlIGFib3ZlIGEgY2VydGFpbiBsZXZlbCBoYXMgYmVlbgorICAgIHNlZW4uCisK
KyAgICA6cGFyYW0gbWluX2xldmVsOiBNaW5pbXVtIGxldmVsIHRvIHJlY29yZCBhcyBhIHN0ciAo
ZS5nLiwgIkNSSVRJQ0FMIikKKworICAgICIiIgorICAgIGRlZiBfX2luaXRfXyhzZWxmLCBtaW5f
bGV2ZWwpOgorICAgICAgICBzZWxmLm1pbl9sZXZlbCA9IGxvZ19sZXZlbHNbbWluX2xldmVsLnVw
cGVyKCldCisgICAgICAgIHNlbGYuaGFzX2xvZyA9IEZhbHNlCisKKyAgICBkZWYgX19jYWxsX18o
c2VsZiwgZGF0YSk6CisgICAgICAgIGlmIChkYXRhWyJhY3Rpb24iXSA9PSAibG9nIiBhbmQKKyAg
ICAgICAgICAgIG5vdCBzZWxmLmhhc19sb2cgYW5kCisgICAgICAgICAgICBsb2dfbGV2ZWxzW2Rh
dGFbImxldmVsIl1dIDw9IHNlbGYubWluX2xldmVsKToKKyAgICAgICAgICAgIHNlbGYuaGFzX2xv
ZyA9IFRydWUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci93cHRtYW5pZmVzdC9fX2luaXRfXy5w
eSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0
cnVubmVyL3dwdHJ1bm5lci93cHRtYW5pZmVzdC9fX2luaXRfXy5weQppbmRleCA4OTg1YjVhZTM1
MC4uZTM1NGQ1ZmY0ZjggMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci93cHRtYW5pZmVzdC9fX2lu
aXRfXy5weQorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvd3B0bWFuaWZlc3QvX19pbml0X18ucHkKQEAgLTEs
NSArMSw1IEBACiAjIGZsYWtlODogbm9xYSAobm90IGlkZWFsLCBidXQgbmljZXIgdGhhbiBhZGRp
bmcgbm9xYTogRjQwMSB0byBldmVyeSBsaW5lISkKLWZyb20gc2VyaWFsaXplciBpbXBvcnQgc2Vy
aWFsaXplCi1mcm9tIHBhcnNlciBpbXBvcnQgcGFyc2UKLWZyb20gYmFja2VuZHMuc3RhdGljIGlt
cG9ydCBjb21waWxlIGFzIGNvbXBpbGVfc3RhdGljCi1mcm9tIGJhY2tlbmRzLmNvbmRpdGlvbmFs
IGltcG9ydCBjb21waWxlIGFzIGNvbXBpbGVfY29uZGl0aW9uCitmcm9tIC5zZXJpYWxpemVyIGlt
cG9ydCBzZXJpYWxpemUKK2Zyb20gLnBhcnNlciBpbXBvcnQgcGFyc2UKK2Zyb20gLmJhY2tlbmRz
LnN0YXRpYyBpbXBvcnQgY29tcGlsZSBhcyBjb21waWxlX3N0YXRpYworZnJvbSAuYmFja2VuZHMu
Y29uZGl0aW9uYWwgaW1wb3J0IGNvbXBpbGUgYXMgY29tcGlsZV9jb25kaXRpb24KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0
cnVubmVyL3dwdHJ1bm5lci93cHRtYW5pZmVzdC9iYWNrZW5kcy9iYXNlLnB5IGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVu
bmVyL3dwdG1hbmlmZXN0L2JhY2tlbmRzL2Jhc2UucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAuLjQ1ZTIxNDdmYzRjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVu
bmVyL3dwdG1hbmlmZXN0L2JhY2tlbmRzL2Jhc2UucHkKQEAgLTAsMCArMSwyMjIgQEAKK2ltcG9y
dCBhYmMKKworZnJvbSAuLm5vZGUgaW1wb3J0IE5vZGVWaXNpdG9yCitmcm9tIC4ucGFyc2VyIGlt
cG9ydCBwYXJzZQorCisKK2NsYXNzIENvbXBpbGVyKE5vZGVWaXNpdG9yKToKKyAgICBfX21ldGFj
bGFzc19fID0gYWJjLkFCQ01ldGEKKworICAgIGRlZiBjb21waWxlKHNlbGYsIHRyZWUsIGRhdGFf
Y2xzX2dldHRlcj1Ob25lLCAqKmt3YXJncyk6CisgICAgICAgIHNlbGYuX2t3YXJncyA9IGt3YXJn
cworICAgICAgICByZXR1cm4gc2VsZi5fY29tcGlsZSh0cmVlLCBkYXRhX2Nsc19nZXR0ZXIsICoq
a3dhcmdzKQorCisgICAgZGVmIF9jb21waWxlKHNlbGYsIHRyZWUsIGRhdGFfY2xzX2dldHRlcj1O
b25lLCAqKmt3YXJncyk6CisgICAgICAgICIiIkNvbXBpbGUgYSByYXcgQVNUIGludG8gYSBmb3Jt
IHdoZXJlIGNvbmRpdGlvbmFsIGV4cHJlc3Npb25zCisgICAgICAgIGFyZSByZXByZXNlbnRlZCBi
eSBDb25kaXRpb25hbFZhbHVlIG9iamVjdHMgdGhhdCBjYW4gYmUgZXZhbHVhdGVkCisgICAgICAg
IGF0IHJ1bnRpbWUuCisKKyAgICAgICAgdHJlZSAtIFRoZSByb290IG5vZGUgb2YgdGhlIHdwdG1h
bmlmZXN0IEFTVCB0byBjb21waWxlCisKKyAgICAgICAgZGF0YV9jbHNfZ2V0dGVyIC0gQSBmdW5j
dGlvbiB0YWtpbmcgdHdvIHBhcmFtZXRlcnM7IHRoZSBwcmV2aW91cworICAgICAgICAgICAgICAg
ICAgICAgICAgICBvdXRwdXQgbm9kZSBhbmQgdGhlIGN1cnJlbnQgYXN0IG5vZGUgYW5kIHJldHVy
bmluZworICAgICAgICAgICAgICAgICAgICAgICAgICB0aGUgY2xhc3Mgb2YgdGhlIG91dHB1dCBu
b2RlIHRvIHVzZSBmb3IgdGhlIGN1cnJlbnQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgYXN0
IG5vZGUKKyAgICAgICAgIiIiCisgICAgICAgIGlmIGRhdGFfY2xzX2dldHRlciBpcyBOb25lOgor
ICAgICAgICAgICAgc2VsZi5kYXRhX2Nsc19nZXR0ZXIgPSBsYW1iZGEgeCwgeTogTWFuaWZlc3RJ
dGVtCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBzZWxmLmRhdGFfY2xzX2dldHRlciA9IGRh
dGFfY2xzX2dldHRlcgorCisgICAgICAgIHNlbGYudHJlZSA9IHRyZWUKKyAgICAgICAgc2VsZi5v
dXRwdXRfbm9kZSA9IHNlbGYuX2luaXRpYWxfb3V0cHV0X25vZGUodHJlZSwgKiprd2FyZ3MpCisg
ICAgICAgIHNlbGYudmlzaXQodHJlZSkKKyAgICAgICAgaWYgaGFzYXR0cihzZWxmLm91dHB1dF9u
b2RlLCAic2V0X2RlZmF1bHRzIik6CisgICAgICAgICAgICBzZWxmLm91dHB1dF9ub2RlLnNldF9k
ZWZhdWx0cygpCisgICAgICAgIGFzc2VydCBzZWxmLm91dHB1dF9ub2RlIGlzIG5vdCBOb25lCisg
ICAgICAgIHJldHVybiBzZWxmLm91dHB1dF9ub2RlCisKKyAgICBkZWYgX2luaXRpYWxfb3V0cHV0
X25vZGUoc2VsZiwgbm9kZSwgKiprd2FyZ3MpOgorICAgICAgICByZXR1cm4gc2VsZi5kYXRhX2Ns
c19nZXR0ZXIoTm9uZSwgTm9uZSkobm9kZSwgKiprd2FyZ3MpCisKKyAgICBkZWYgdmlzaXRfRGF0
YU5vZGUoc2VsZiwgbm9kZSk6CisgICAgICAgIGlmIG5vZGUgIT0gc2VsZi50cmVlOgorICAgICAg
ICAgICAgb3V0cHV0X3BhcmVudCA9IHNlbGYub3V0cHV0X25vZGUKKyAgICAgICAgICAgIHNlbGYu
b3V0cHV0X25vZGUgPSBzZWxmLmRhdGFfY2xzX2dldHRlcihzZWxmLm91dHB1dF9ub2RlLCBub2Rl
KShub2RlLCAqKnNlbGYuX2t3YXJncykKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIG91dHB1
dF9wYXJlbnQgPSBOb25lCisKKyAgICAgICAgYXNzZXJ0IHNlbGYub3V0cHV0X25vZGUgaXMgbm90
IE5vbmUKKworICAgICAgICBmb3IgY2hpbGQgaW4gbm9kZS5jaGlsZHJlbjoKKyAgICAgICAgICAg
IHNlbGYudmlzaXQoY2hpbGQpCisKKyAgICAgICAgaWYgb3V0cHV0X3BhcmVudCBpcyBub3QgTm9u
ZToKKyAgICAgICAgICAgICMgQXBwZW5kIHRvIHRoZSBwYXJlbnQgKmFmdGVyKiBwcm9jZXNzaW5n
IGFsbCB0aGUgbm9kZSBkYXRhCisgICAgICAgICAgICBvdXRwdXRfcGFyZW50LmFwcGVuZChzZWxm
Lm91dHB1dF9ub2RlKQorICAgICAgICAgICAgc2VsZi5vdXRwdXRfbm9kZSA9IHNlbGYub3V0cHV0
X25vZGUucGFyZW50CisKKyAgICAgICAgYXNzZXJ0IHNlbGYub3V0cHV0X25vZGUgaXMgbm90IE5v
bmUKKworICAgIEBhYmMuYWJzdHJhY3RtZXRob2QKKyAgICBkZWYgdmlzaXRfS2V5VmFsdWVOb2Rl
KHNlbGYsIG5vZGUpOgorICAgICAgICBwYXNzCisKKyAgICBkZWYgdmlzaXRfTGlzdE5vZGUoc2Vs
Ziwgbm9kZSk6CisgICAgICAgIHJldHVybiBbc2VsZi52aXNpdChjaGlsZCkgZm9yIGNoaWxkIGlu
IG5vZGUuY2hpbGRyZW5dCisKKyAgICBkZWYgdmlzaXRfVmFsdWVOb2RlKHNlbGYsIG5vZGUpOgor
ICAgICAgICByZXR1cm4gbm9kZS5kYXRhCisKKyAgICBkZWYgdmlzaXRfQXRvbU5vZGUoc2VsZiwg
bm9kZSk6CisgICAgICAgIHJldHVybiBub2RlLmRhdGEKKworICAgIEBhYmMuYWJzdHJhY3RtZXRo
b2QKKyAgICBkZWYgdmlzaXRfQ29uZGl0aW9uYWxOb2RlKHNlbGYsIG5vZGUpOgorICAgICAgICBw
YXNzCisKKyAgICBkZWYgdmlzaXRfU3RyaW5nTm9kZShzZWxmLCBub2RlKToKKyAgICAgICAgaW5k
ZXhlcyA9IFtzZWxmLnZpc2l0KGNoaWxkKSBmb3IgY2hpbGQgaW4gbm9kZS5jaGlsZHJlbl0KKwor
ICAgICAgICBkZWYgdmFsdWUoeCk6CisgICAgICAgICAgICBydiA9IG5vZGUuZGF0YQorICAgICAg
ICAgICAgZm9yIGluZGV4IGluIGluZGV4ZXM6CisgICAgICAgICAgICAgICAgcnYgPSBydltpbmRl
eCh4KV0KKyAgICAgICAgICAgIHJldHVybiBydgorICAgICAgICByZXR1cm4gdmFsdWUKKworICAg
IGRlZiB2aXNpdF9OdW1iZXJOb2RlKHNlbGYsIG5vZGUpOgorICAgICAgICBpZiAiLiIgaW4gbm9k
ZS5kYXRhOgorICAgICAgICAgICAgcmV0dXJuIGZsb2F0KG5vZGUuZGF0YSkKKyAgICAgICAgZWxz
ZToKKyAgICAgICAgICAgIHJldHVybiBpbnQobm9kZS5kYXRhKQorCisgICAgZGVmIHZpc2l0X1Zh
cmlhYmxlTm9kZShzZWxmLCBub2RlKToKKyAgICAgICAgaW5kZXhlcyA9IFtzZWxmLnZpc2l0KGNo
aWxkKSBmb3IgY2hpbGQgaW4gbm9kZS5jaGlsZHJlbl0KKworICAgICAgICBkZWYgdmFsdWUoeCk6
CisgICAgICAgICAgICBkYXRhID0geFtub2RlLmRhdGFdCisgICAgICAgICAgICBmb3IgaW5kZXgg
aW4gaW5kZXhlczoKKyAgICAgICAgICAgICAgICBkYXRhID0gZGF0YVtpbmRleCh4KV0KKyAgICAg
ICAgICAgIHJldHVybiBkYXRhCisgICAgICAgIHJldHVybiB2YWx1ZQorCisgICAgZGVmIHZpc2l0
X0luZGV4Tm9kZShzZWxmLCBub2RlKToKKyAgICAgICAgYXNzZXJ0IGxlbihub2RlLmNoaWxkcmVu
KSA9PSAxCisgICAgICAgIHJldHVybiBzZWxmLnZpc2l0KG5vZGUuY2hpbGRyZW5bMF0pCisKKyAg
ICBAYWJjLmFic3RyYWN0bWV0aG9kCisgICAgZGVmIHZpc2l0X1VuYXJ5RXhwcmVzc2lvbk5vZGUo
c2VsZiwgbm9kZSk6CisgICAgICAgIHBhc3MKKworICAgIEBhYmMuYWJzdHJhY3RtZXRob2QKKyAg
ICBkZWYgdmlzaXRfQmluYXJ5RXhwcmVzc2lvbk5vZGUoc2VsZiwgbm9kZSk6CisgICAgICAgIHBh
c3MKKworICAgIEBhYmMuYWJzdHJhY3RtZXRob2QKKyAgICBkZWYgdmlzaXRfVW5hcnlPcGVyYXRv
ck5vZGUoc2VsZiwgbm9kZSk6CisgICAgICAgIHBhc3MKKworICAgIEBhYmMuYWJzdHJhY3RtZXRo
b2QKKyAgICBkZWYgdmlzaXRfQmluYXJ5T3BlcmF0b3JOb2RlKHNlbGYsIG5vZGUpOgorICAgICAg
ICBwYXNzCisKKworY2xhc3MgTWFuaWZlc3RJdGVtKG9iamVjdCk6CisgICAgZGVmIF9faW5pdF9f
KHNlbGYsIG5vZGUsICoqa3dhcmdzKToKKyAgICAgICAgc2VsZi5wYXJlbnQgPSBOb25lCisgICAg
ICAgIHNlbGYubm9kZSA9IG5vZGUKKyAgICAgICAgc2VsZi5jaGlsZHJlbiA9IFtdCisgICAgICAg
IHNlbGYuX2RhdGEgPSB7fQorCisgICAgZGVmIF9fcmVwcl9fKHNlbGYpOgorICAgICAgICByZXR1
cm4gIjwlcyAlcz4iICUgKHNlbGYuX19jbGFzc19fLCBzZWxmLm5vZGUuZGF0YSkKKworICAgIGRl
ZiBfX3N0cl9fKHNlbGYpOgorICAgICAgICBydiA9IFtyZXByKHNlbGYpXQorICAgICAgICBmb3Ig
aXRlbSBpbiBzZWxmLmNoaWxkcmVuOgorICAgICAgICAgICAgcnYuZXh0ZW5kKCIgICVzIiAlIGxp
bmUgZm9yIGxpbmUgaW4gc3RyKGl0ZW0pLnNwbGl0KCJcbiIpKQorICAgICAgICByZXR1cm4gIlxu
Ii5qb2luKHJ2KQorCisgICAgZGVmIHNldF9kZWZhdWx0cyhzZWxmKToKKyAgICAgICAgcGFzcwor
CisgICAgQHByb3BlcnR5CisgICAgZGVmIGlzX2VtcHR5KHNlbGYpOgorICAgICAgICBpZiBzZWxm
Ll9kYXRhOgorICAgICAgICAgICAgcmV0dXJuIEZhbHNlCisgICAgICAgIHJldHVybiBhbGwoY2hp
bGQuaXNfZW1wdHkgZm9yIGNoaWxkIGluIHNlbGYuY2hpbGRyZW4pCisKKyAgICBAcHJvcGVydHkK
KyAgICBkZWYgcm9vdChzZWxmKToKKyAgICAgICAgbm9kZSA9IHNlbGYKKyAgICAgICAgd2hpbGUg
bm9kZS5wYXJlbnQgaXMgbm90IE5vbmU6CisgICAgICAgICAgICBub2RlID0gbm9kZS5wYXJlbnQK
KyAgICAgICAgcmV0dXJuIG5vZGUKKworICAgIEBwcm9wZXJ0eQorICAgIGRlZiBuYW1lKHNlbGYp
OgorICAgICAgICByZXR1cm4gc2VsZi5ub2RlLmRhdGEKKworICAgIGRlZiBnZXQoc2VsZiwga2V5
KToKKyAgICAgICAgZm9yIG5vZGUgaW4gW3NlbGYsIHNlbGYucm9vdF06CisgICAgICAgICAgICBp
ZiBrZXkgaW4gbm9kZS5fZGF0YToKKyAgICAgICAgICAgICAgICByZXR1cm4gbm9kZS5fZGF0YVtr
ZXldCisgICAgICAgIHJhaXNlIEtleUVycm9yCisKKyAgICBkZWYgc2V0KHNlbGYsIG5hbWUsIHZh
bHVlKToKKyAgICAgICAgc2VsZi5fZGF0YVtuYW1lXSA9IHZhbHVlCisKKyAgICBkZWYgcmVtb3Zl
KHNlbGYpOgorICAgICAgICBpZiBzZWxmLnBhcmVudDoKKyAgICAgICAgICAgIHNlbGYucGFyZW50
LmNoaWxkcmVuLnJlbW92ZShzZWxmKQorICAgICAgICAgICAgc2VsZi5wYXJlbnQgPSBOb25lCisK
KyAgICBkZWYgaXRlcmNoaWxkcmVuKHNlbGYsIG5hbWU9Tm9uZSk6CisgICAgICAgIGZvciBpdGVt
IGluIHNlbGYuY2hpbGRyZW46CisgICAgICAgICAgICBpZiBpdGVtLm5hbWUgPT0gbmFtZSBvciBu
YW1lIGlzIE5vbmU6CisgICAgICAgICAgICAgICAgeWllbGQgaXRlbQorCisgICAgZGVmIGhhc19r
ZXkoc2VsZiwga2V5KToKKyAgICAgICAgZm9yIG5vZGUgaW4gW3NlbGYsIHNlbGYucm9vdF06Cisg
ICAgICAgICAgICBpZiBrZXkgaW4gbm9kZS5fZGF0YToKKyAgICAgICAgICAgICAgICByZXR1cm4g
VHJ1ZQorICAgICAgICByZXR1cm4gRmFsc2UKKworICAgIGRlZiBfZmxhdHRlbihzZWxmKToKKyAg
ICAgICAgcnYgPSB7fQorICAgICAgICBmb3Igbm9kZSBpbiBbc2VsZiwgc2VsZi5yb290XToKKyAg
ICAgICAgICAgIGZvciBuYW1lLCB2YWx1ZSBpbiBub2RlLl9kYXRhLml0ZXJpdGVtcygpOgorICAg
ICAgICAgICAgICAgIGlmIG5hbWUgbm90IGluIHJ2OgorICAgICAgICAgICAgICAgICAgICBydltu
YW1lXSA9IHZhbHVlCisgICAgICAgIHJldHVybiBydgorCisgICAgZGVmIGl0ZXJpdGVtcyhzZWxm
KToKKyAgICAgICAgZm9yIGl0ZW0gaW4gc2VsZi5fZmxhdHRlbigpLml0ZXJpdGVtcygpOgorICAg
ICAgICAgICAgeWllbGQgaXRlbQorCisgICAgZGVmIGl0ZXJrZXlzKHNlbGYpOgorICAgICAgICBm
b3IgaXRlbSBpbiBzZWxmLl9mbGF0dGVuKCkuaXRlcmtleXMoKToKKyAgICAgICAgICAgIHlpZWxk
IGl0ZW0KKworICAgIGRlZiBpdGVydmFsdWVzKHNlbGYpOgorICAgICAgICBmb3IgaXRlbSBpbiBz
ZWxmLl9mbGF0dGVuKCkuaXRlcnZhbHVlcygpOgorICAgICAgICAgICAgeWllbGQgaXRlbQorCisg
ICAgZGVmIGFwcGVuZChzZWxmLCBjaGlsZCk6CisgICAgICAgIGNoaWxkLnBhcmVudCA9IHNlbGYK
KyAgICAgICAgc2VsZi5jaGlsZHJlbi5hcHBlbmQoY2hpbGQpCisgICAgICAgIHJldHVybiBjaGls
ZAorCisKK2RlZiBjb21waWxlX2FzdChjb21waWxlciwgYXN0LCBkYXRhX2Nsc19nZXR0ZXI9Tm9u
ZSwgKiprd2FyZ3MpOgorICAgIHJldHVybiBjb21waWxlcigpLmNvbXBpbGUoYXN0LAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgZGF0YV9jbHNfZ2V0dGVyPWRhdGFfY2xzX2dldHRlciwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoqa3dhcmdzKQorCisKK2RlZiBjb21waWxl
KGNvbXBpbGVyLCBzdHJlYW0sIGRhdGFfY2xzX2dldHRlcj1Ob25lLCAqKmt3YXJncyk6CisgICAg
cmV0dXJuIGNvbXBpbGVfYXN0KGNvbXBpbGVyLAorICAgICAgICAgICAgICAgICAgICAgICBwYXJz
ZShzdHJlYW0pLAorICAgICAgICAgICAgICAgICAgICAgICBkYXRhX2Nsc19nZXR0ZXI9ZGF0YV9j
bHNfZ2V0dGVyLAorICAgICAgICAgICAgICAgICAgICAgICAqKmt3YXJncykKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVu
bmVyL3dwdHJ1bm5lci93cHRtYW5pZmVzdC9iYWNrZW5kcy9jb25kaXRpb25hbC5weSBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dw
dHJ1bm5lci93cHRtYW5pZmVzdC9iYWNrZW5kcy9jb25kaXRpb25hbC5weQppbmRleCA0ZWIyOTJl
ZmI3NS4uYWFjZDc4NTcwNzIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci93cHRtYW5pZmVzdC9i
YWNrZW5kcy9jb25kaXRpb25hbC5weQorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvd3B0bWFuaWZlc3QvYmFj
a2VuZHMvY29uZGl0aW9uYWwucHkKQEAgLTEsMTYgKzEsMTggQEAKIGltcG9ydCBvcGVyYXRvcgog
Ci1mcm9tIC4ubm9kZSBpbXBvcnQgTm9kZVZpc2l0b3IsIERhdGFOb2RlLCBDb25kaXRpb25hbE5v
ZGUsIEtleVZhbHVlTm9kZSwgTGlzdE5vZGUsIFZhbHVlTm9kZQorZnJvbSAuLm5vZGUgaW1wb3J0
IE5vZGVWaXNpdG9yLCBEYXRhTm9kZSwgQ29uZGl0aW9uYWxOb2RlLCBLZXlWYWx1ZU5vZGUsIExp
c3ROb2RlLCBWYWx1ZU5vZGUsIEJpbmFyeUV4cHJlc3Npb25Ob2RlLCBWYXJpYWJsZU5vZGUKIGZy
b20gLi5wYXJzZXIgaW1wb3J0IHBhcnNlCiAKIAogY2xhc3MgQ29uZGl0aW9uYWxWYWx1ZShvYmpl
Y3QpOgogICAgIGRlZiBfX2luaXRfXyhzZWxmLCBub2RlLCBjb25kaXRpb25fZnVuYyk6CiAgICAg
ICAgIHNlbGYubm9kZSA9IG5vZGUKKyAgICAgICAgYXNzZXJ0IGNhbGxhYmxlKGNvbmRpdGlvbl9m
dW5jKQogICAgICAgICBzZWxmLmNvbmRpdGlvbl9mdW5jID0gY29uZGl0aW9uX2Z1bmMKICAgICAg
ICAgaWYgaXNpbnN0YW5jZShub2RlLCBDb25kaXRpb25hbE5vZGUpOgogICAgICAgICAgICAgYXNz
ZXJ0IGxlbihub2RlLmNoaWxkcmVuKSA9PSAyCiAgICAgICAgICAgICBzZWxmLmNvbmRpdGlvbl9u
b2RlID0gc2VsZi5ub2RlLmNoaWxkcmVuWzBdCisgICAgICAgICAgICBhc3NlcnQgaXNpbnN0YW5j
ZShub2RlLmNoaWxkcmVuWzFdLCAoVmFsdWVOb2RlLCBMaXN0Tm9kZSkpCiAgICAgICAgICAgICBz
ZWxmLnZhbHVlX25vZGUgPSBzZWxmLm5vZGUuY2hpbGRyZW5bMV0KICAgICAgICAgZWxzZToKICAg
ICAgICAgICAgIGFzc2VydCBpc2luc3RhbmNlKG5vZGUsIChWYWx1ZU5vZGUsIExpc3ROb2RlKSkK
QEAgLTU5LDYgKzYxLDIwIEBAIGNsYXNzIENvbmRpdGlvbmFsVmFsdWUob2JqZWN0KToKICAgICAg
ICAgICAgIHNlbGYubm9kZS5wYXJlbnQucmVtb3ZlKCkKICAgICAgICAgc2VsZi5ub2RlLnJlbW92
ZSgpCiAKKyAgICBAcHJvcGVydHkKKyAgICBkZWYgdmFyaWFibGVzKHNlbGYpOgorICAgICAgICBy
diA9IHNldCgpCisgICAgICAgIGlmIHNlbGYuY29uZGl0aW9uX25vZGUgaXMgTm9uZToKKyAgICAg
ICAgICAgIHJldHVybiBydgorICAgICAgICBzdGFjayA9IFtzZWxmLmNvbmRpdGlvbl9ub2RlXQor
ICAgICAgICB3aGlsZSBzdGFjazoKKyAgICAgICAgICAgIG5vZGUgPSBzdGFjay5wb3AoKQorICAg
ICAgICAgICAgaWYgaXNpbnN0YW5jZShub2RlLCBWYXJpYWJsZU5vZGUpOgorICAgICAgICAgICAg
ICAgIHJ2LmFkZChub2RlLmRhdGEpCisgICAgICAgICAgICBmb3IgY2hpbGQgaW4gcmV2ZXJzZWQo
bm9kZS5jaGlsZHJlbik6CisgICAgICAgICAgICAgICAgc3RhY2suYXBwZW5kKGNoaWxkKQorICAg
ICAgICByZXR1cm4gcnYKKwogCiBjbGFzcyBDb21waWxlcihOb2RlVmlzaXRvcik6CiAgICAgZGVm
IGNvbXBpbGUoc2VsZiwgdHJlZSwgZGF0YV9jbHNfZ2V0dGVyPU5vbmUsICoqa3dhcmdzKToKQEAg
LTE5MSw2ICsyMDcsNyBAQCBjbGFzcyBDb21waWxlcihOb2RlVmlzaXRvcik6CiAgICAgICAgIHJl
dHVybiB7Im5vdCI6IG9wZXJhdG9yLm5vdF99W25vZGUuZGF0YV0KIAogICAgIGRlZiB2aXNpdF9C
aW5hcnlPcGVyYXRvck5vZGUoc2VsZiwgbm9kZSk6CisgICAgICAgIGFzc2VydCBpc2luc3RhbmNl
KG5vZGUucGFyZW50LCBCaW5hcnlFeHByZXNzaW9uTm9kZSkKICAgICAgICAgcmV0dXJuIHsiYW5k
Ijogb3BlcmF0b3IuYW5kXywKICAgICAgICAgICAgICAgICAib3IiOiBvcGVyYXRvci5vcl8sCiAg
ICAgICAgICAgICAgICAgIj09Ijogb3BlcmF0b3IuZXEsCkBAIC0yMDUsNyArMjIyLDcgQEAgY2xh
c3MgTWFuaWZlc3RJdGVtKG9iamVjdCk6CiAgICAgICAgIHNlbGYuX2RhdGEgPSB7fQogCiAgICAg
ZGVmIF9fcmVwcl9fKHNlbGYpOgotICAgICAgICByZXR1cm4gIjxNYW5pZmVzdEl0ZW0gJXM+IiAl
IChzZWxmLm5vZGUuZGF0YSkKKyAgICAgICAgcmV0dXJuICI8Y29uZGl0aW9uYWwuTWFuaWZlc3RJ
dGVtICVzPiIgJSAoc2VsZi5ub2RlLmRhdGEpCiAKICAgICBkZWYgX19zdHJfXyhzZWxmKToKICAg
ICAgICAgcnYgPSBbcmVwcihzZWxmKV0KQEAgLTIxNiw2ICsyMzMsMTIgQEAgY2xhc3MgTWFuaWZl
c3RJdGVtKG9iamVjdCk6CiAgICAgZGVmIF9fY29udGFpbnNfXyhzZWxmLCBrZXkpOgogICAgICAg
ICByZXR1cm4ga2V5IGluIHNlbGYuX2RhdGEKIAorICAgIGRlZiBfX2l0ZXJfXyhzZWxmKToKKyAg
ICAgICAgeWllbGQgc2VsZgorICAgICAgICBmb3IgY2hpbGQgaW4gc2VsZi5jaGlsZHJlbjoKKyAg
ICAgICAgICAgIGZvciBub2RlIGluIGNoaWxkOgorICAgICAgICAgICAgICAgIHlpZWxkIG5vZGUK
KwogICAgIEBwcm9wZXJ0eQogICAgIGRlZiBpc19lbXB0eShzZWxmKToKICAgICAgICAgaWYgc2Vs
Zi5fZGF0YToKQEAgLTI4Miw5ICszMDUsMTIgQEAgY2xhc3MgTWFuaWZlc3RJdGVtKG9iamVjdCk6
CiAgICAgICAgIGVsc2U6CiAgICAgICAgICAgICB2YWx1ZV9ub2RlID0gVmFsdWVOb2RlKHVuaWNv
ZGUodmFsdWUpKQogICAgICAgICBpZiBjb25kaXRpb24gaXMgbm90IE5vbmU6Ci0gICAgICAgICAg
ICBjb25kaXRpb25hbF9ub2RlID0gQ29uZGl0aW9uYWxOb2RlKCkKLSAgICAgICAgICAgIGNvbmRp
dGlvbmFsX25vZGUuYXBwZW5kKGNvbmRpdGlvbikKLSAgICAgICAgICAgIGNvbmRpdGlvbmFsX25v
ZGUuYXBwZW5kKHZhbHVlX25vZGUpCisgICAgICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShjb25k
aXRpb24sIENvbmRpdGlvbmFsTm9kZSk6CisgICAgICAgICAgICAgICAgY29uZGl0aW9uYWxfbm9k
ZSA9IENvbmRpdGlvbmFsTm9kZSgpCisgICAgICAgICAgICAgICAgY29uZGl0aW9uYWxfbm9kZS5h
cHBlbmQoY29uZGl0aW9uKQorICAgICAgICAgICAgICAgIGNvbmRpdGlvbmFsX25vZGUuYXBwZW5k
KHZhbHVlX25vZGUpCisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgIGNvbmRpdGlv
bmFsX25vZGUgPSBjb25kaXRpb24KICAgICAgICAgICAgIG5vZGUuYXBwZW5kKGNvbmRpdGlvbmFs
X25vZGUpCiAgICAgICAgICAgICBjb25kX3ZhbHVlID0gQ29tcGlsZXIoKS5jb21waWxlX2NvbmRp
dGlvbihjb25kaXRpb25hbF9ub2RlKQogICAgICAgICBlbHNlOgpAQCAtMzAwLDYgKzMyNiwyMSBA
QCBjbGFzcyBNYW5pZmVzdEl0ZW0ob2JqZWN0KToKICAgICAgICAgZWxzZToKICAgICAgICAgICAg
IHNlbGYuX2RhdGFba2V5XS5hcHBlbmQoY29uZF92YWx1ZSkKIAorICAgIGRlZiBjbGVhcihzZWxm
LCBrZXkpOgorICAgICAgICAiIiJDbGVhciBhbGwgdGhlIGV4cGVjdGVkIGRhdGEgZm9yIHRoaXMg
bm9kZSIiIgorICAgICAgICBpZiBrZXkgaW4gc2VsZi5fZGF0YToKKyAgICAgICAgICAgIGZvciBj
aGlsZCBpbiBzZWxmLm5vZGUuY2hpbGRyZW46CisgICAgICAgICAgICAgICAgaWYgKGlzaW5zdGFu
Y2UoY2hpbGQsIEtleVZhbHVlTm9kZSkgYW5kCisgICAgICAgICAgICAgICAgICAgIGNoaWxkLmRh
dGEgPT0ga2V5KToKKyAgICAgICAgICAgICAgICAgICAgY2hpbGQucmVtb3ZlKCkKKyAgICAgICAg
ICAgICAgICAgICAgZGVsIHNlbGYuX2RhdGFba2V5XQorICAgICAgICAgICAgICAgICAgICBicmVh
aworCisgICAgZGVmIGdldF9jb25kaXRpb25zKHNlbGYsIHByb3BlcnR5X25hbWUpOgorICAgICAg
ICBpZiBwcm9wZXJ0eV9uYW1lIGluIHNlbGYuX2RhdGE6CisgICAgICAgICAgICByZXR1cm4gc2Vs
Zi5fZGF0YVtwcm9wZXJ0eV9uYW1lXQorICAgICAgICByZXR1cm4gW10KKwogICAgIGRlZiBfYWRk
X2tleV92YWx1ZShzZWxmLCBub2RlLCB2YWx1ZXMpOgogICAgICAgICAiIiJDYWxsZWQgZHVyaW5n
IGNvbnN0cnVjdGlvbiB0byBzZXQgYSBrZXktdmFsdWUgbm9kZSIiIgogICAgICAgICBzZWxmLl9k
YXRhW25vZGUuZGF0YV0gPSB2YWx1ZXMKQEAgLTMxOCw2ICszNTksNyBAQCBjbGFzcyBNYW5pZmVz
dEl0ZW0ob2JqZWN0KToKICAgICBkZWYgX3JlbW92ZV9jaGlsZChzZWxmLCBjaGlsZCk6CiAgICAg
ICAgIHNlbGYuY2hpbGRyZW4ucmVtb3ZlKGNoaWxkKQogICAgICAgICBjaGlsZC5wYXJlbnQgPSBO
b25lCisgICAgICAgIGNoaWxkLm5vZGUucmVtb3ZlKCkKIAogICAgIGRlZiBpdGVyY2hpbGRyZW4o
c2VsZiwgbmFtZT1Ob25lKToKICAgICAgICAgZm9yIGl0ZW0gaW4gc2VsZi5jaGlsZHJlbjoKQEAg
LTM0MSw2ICszODMsOCBAQCBjbGFzcyBNYW5pZmVzdEl0ZW0ob2JqZWN0KToKICAgICAgICAgICAg
IHlpZWxkIGl0ZW0KIAogICAgIGRlZiByZW1vdmVfdmFsdWUoc2VsZiwga2V5LCB2YWx1ZSk6Cisg
ICAgICAgIGlmIGtleSBub3QgaW4gc2VsZi5fZGF0YToKKyAgICAgICAgICAgIHJldHVybgogICAg
ICAgICB0cnk6CiAgICAgICAgICAgICBzZWxmLl9kYXRhW2tleV0ucmVtb3ZlKHZhbHVlKQogICAg
ICAgICBleGNlcHQgVmFsdWVFcnJvcjoKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci93cHRtYW5p
ZmVzdC9iYWNrZW5kcy9zdGF0aWMucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvd3B0bWFuaWZlc3QvYmFja2Vu
ZHMvc3RhdGljLnB5CmluZGV4IGIzY2JlZGMzODE4Li42ZWZhZDFjMGU0NyAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5u
ZXIvd3B0cnVubmVyL3dwdG1hbmlmZXN0L2JhY2tlbmRzL3N0YXRpYy5weQorKysgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRy
dW5uZXIvd3B0bWFuaWZlc3QvYmFja2VuZHMvc3RhdGljLnB5CkBAIC0xLDEwICsxLDEwIEBACiBp
bXBvcnQgb3BlcmF0b3IKIAotZnJvbSAuLm5vZGUgaW1wb3J0IE5vZGVWaXNpdG9yCitmcm9tIC4g
aW1wb3J0IGJhc2UKIGZyb20gLi5wYXJzZXIgaW1wb3J0IHBhcnNlCiAKIAotY2xhc3MgQ29tcGls
ZXIoTm9kZVZpc2l0b3IpOgorY2xhc3MgQ29tcGlsZXIoYmFzZS5Db21waWxlcik6CiAgICAgIiIi
Q29tcGlsZXIgYmFja2VuZCB0aGF0IGV2YWx1YXRlcyBjb25kaXRpb25hbCBleHByZXNzaW9ucwog
ICAgIHRvIGdpdmUgc3RhdGljIG91dHB1dCIiIgogCkBAIC0yNiwyOSArMjYsNyBAQCBjbGFzcyBD
b21waWxlcihOb2RlVmlzaXRvcik6CiAgICAgICAgIHNlbGYuX2t3YXJncyA9IGt3YXJncwogICAg
ICAgICBzZWxmLmV4cHJfZGF0YSA9IGV4cHJfZGF0YQogCi0gICAgICAgIGlmIGRhdGFfY2xzX2dl
dHRlciBpcyBOb25lOgotICAgICAgICAgICAgc2VsZi5kYXRhX2Nsc19nZXR0ZXIgPSBsYW1iZGEg
eCwgeTogTWFuaWZlc3RJdGVtCi0gICAgICAgIGVsc2U6Ci0gICAgICAgICAgICBzZWxmLmRhdGFf
Y2xzX2dldHRlciA9IGRhdGFfY2xzX2dldHRlcgotCi0gICAgICAgIHNlbGYub3V0cHV0X25vZGUg
PSBOb25lCi0gICAgICAgIHNlbGYudmlzaXQodHJlZSkKLSAgICAgICAgcmV0dXJuIHNlbGYub3V0
cHV0X25vZGUKLQotICAgIGRlZiB2aXNpdF9EYXRhTm9kZShzZWxmLCBub2RlKToKLSAgICAgICAg
b3V0cHV0X3BhcmVudCA9IHNlbGYub3V0cHV0X25vZGUKLSAgICAgICAgaWYgc2VsZi5vdXRwdXRf
bm9kZSBpcyBOb25lOgotICAgICAgICAgICAgYXNzZXJ0IG5vZGUucGFyZW50IGlzIE5vbmUKLSAg
ICAgICAgICAgIHNlbGYub3V0cHV0X25vZGUgPSBzZWxmLmRhdGFfY2xzX2dldHRlcihOb25lLCBO
b25lKShOb25lLCAqKnNlbGYuX2t3YXJncykKLSAgICAgICAgZWxzZToKLSAgICAgICAgICAgIHNl
bGYub3V0cHV0X25vZGUgPSBzZWxmLmRhdGFfY2xzX2dldHRlcihzZWxmLm91dHB1dF9ub2RlLCBu
b2RlKShub2RlLmRhdGEpCi0KLSAgICAgICAgZm9yIGNoaWxkIGluIG5vZGUuY2hpbGRyZW46Ci0g
ICAgICAgICAgICBzZWxmLnZpc2l0KGNoaWxkKQotCi0gICAgICAgIGlmIG91dHB1dF9wYXJlbnQg
aXMgbm90IE5vbmU6Ci0gICAgICAgICAgICBvdXRwdXRfcGFyZW50LmFwcGVuZChzZWxmLm91dHB1
dF9ub2RlKQotICAgICAgICAgICAgc2VsZi5vdXRwdXRfbm9kZSA9IHNlbGYub3V0cHV0X25vZGUu
cGFyZW50CisgICAgICAgIHJldHVybiBzZWxmLl9jb21waWxlKHRyZWUsIGRhdGFfY2xzX2dldHRl
ciwgKiprd2FyZ3MpCiAKICAgICBkZWYgdmlzaXRfS2V5VmFsdWVOb2RlKHNlbGYsIG5vZGUpOgog
ICAgICAgICBrZXlfbmFtZSA9IG5vZGUuZGF0YQpAQCAtNjEsMTUgKzM5LDYgQEAgY2xhc3MgQ29t
cGlsZXIoTm9kZVZpc2l0b3IpOgogICAgICAgICBpZiBrZXlfdmFsdWUgaXMgbm90IE5vbmU6CiAg
ICAgICAgICAgICBzZWxmLm91dHB1dF9ub2RlLnNldChrZXlfbmFtZSwga2V5X3ZhbHVlKQogCi0g
ICAgZGVmIHZpc2l0X1ZhbHVlTm9kZShzZWxmLCBub2RlKToKLSAgICAgICAgcmV0dXJuIG5vZGUu
ZGF0YQotCi0gICAgZGVmIHZpc2l0X0F0b21Ob2RlKHNlbGYsIG5vZGUpOgotICAgICAgICByZXR1
cm4gbm9kZS5kYXRhCi0KLSAgICBkZWYgdmlzaXRfTGlzdE5vZGUoc2VsZiwgbm9kZSk6Ci0gICAg
ICAgIHJldHVybiBbc2VsZi52aXNpdChjaGlsZCkgZm9yIGNoaWxkIGluIG5vZGUuY2hpbGRyZW5d
Ci0KICAgICBkZWYgdmlzaXRfQ29uZGl0aW9uYWxOb2RlKHNlbGYsIG5vZGUpOgogICAgICAgICBh
c3NlcnQgbGVuKG5vZGUuY2hpbGRyZW4pID09IDIKICAgICAgICAgaWYgc2VsZi52aXNpdChub2Rl
LmNoaWxkcmVuWzBdKToKQEAgLTgxLDEyICs1MCw2IEBAIGNsYXNzIENvbXBpbGVyKE5vZGVWaXNp
dG9yKToKICAgICAgICAgICAgIHZhbHVlID0gc2VsZi52aXNpdChjaGlsZCkodmFsdWUpCiAgICAg
ICAgIHJldHVybiB2YWx1ZQogCi0gICAgZGVmIHZpc2l0X051bWJlck5vZGUoc2VsZiwgbm9kZSk6
Ci0gICAgICAgIGlmICIuIiBpbiBub2RlLmRhdGE6Ci0gICAgICAgICAgICByZXR1cm4gZmxvYXQo
bm9kZS5kYXRhKQotICAgICAgICBlbHNlOgotICAgICAgICAgICAgcmV0dXJuIGludChub2RlLmRh
dGEpCi0KICAgICBkZWYgdmlzaXRfVmFyaWFibGVOb2RlKHNlbGYsIG5vZGUpOgogICAgICAgICB2
YWx1ZSA9IHNlbGYuZXhwcl9kYXRhW25vZGUuZGF0YV0KICAgICAgICAgZm9yIGNoaWxkIGluIG5v
ZGUuY2hpbGRyZW46CkBAIC0xMjMsOTIgKzg2LDYgQEAgY2xhc3MgQ29tcGlsZXIoTm9kZVZpc2l0
b3IpOgogICAgICAgICAgICAgICAgICIhPSI6IG9wZXJhdG9yLm5lfVtub2RlLmRhdGFdCiAKIAot
Y2xhc3MgTWFuaWZlc3RJdGVtKG9iamVjdCk6Ci0gICAgZGVmIF9faW5pdF9fKHNlbGYsIG5hbWUs
ICoqa3dhcmdzKToKLSAgICAgICAgc2VsZi5wYXJlbnQgPSBOb25lCi0gICAgICAgIHNlbGYubmFt
ZSA9IG5hbWUKLSAgICAgICAgc2VsZi5jaGlsZHJlbiA9IFtdCi0gICAgICAgIHNlbGYuX2RhdGEg
PSB7fQotCi0gICAgZGVmIF9fcmVwcl9fKHNlbGYpOgotICAgICAgICByZXR1cm4gIjxNYW5pZmVz
dEl0ZW0gJXM+IiAlIChzZWxmLm5hbWUpCi0KLSAgICBkZWYgX19zdHJfXyhzZWxmKToKLSAgICAg
ICAgcnYgPSBbcmVwcihzZWxmKV0KLSAgICAgICAgZm9yIGl0ZW0gaW4gc2VsZi5jaGlsZHJlbjoK
LSAgICAgICAgICAgIHJ2LmV4dGVuZCgiICAlcyIgJSBsaW5lIGZvciBsaW5lIGluIHN0cihpdGVt
KS5zcGxpdCgiXG4iKSkKLSAgICAgICAgcmV0dXJuICJcbiIuam9pbihydikKLQotICAgIGRlZiBz
ZXRfZGVmYXVsdHMoc2VsZik6Ci0gICAgICAgIHBhc3MKLQotICAgIEBwcm9wZXJ0eQotICAgIGRl
ZiBpc19lbXB0eShzZWxmKToKLSAgICAgICAgaWYgc2VsZi5fZGF0YToKLSAgICAgICAgICAgIHJl
dHVybiBGYWxzZQotICAgICAgICByZXR1cm4gYWxsKGNoaWxkLmlzX2VtcHR5IGZvciBjaGlsZCBp
biBzZWxmLmNoaWxkcmVuKQotCi0gICAgQHByb3BlcnR5Ci0gICAgZGVmIHJvb3Qoc2VsZik6Ci0g
ICAgICAgIG5vZGUgPSBzZWxmCi0gICAgICAgIHdoaWxlIG5vZGUucGFyZW50IGlzIG5vdCBOb25l
OgotICAgICAgICAgICAgbm9kZSA9IG5vZGUucGFyZW50Ci0gICAgICAgIHJldHVybiBub2RlCi0K
LSAgICBkZWYgaGFzX2tleShzZWxmLCBrZXkpOgotICAgICAgICBmb3Igbm9kZSBpbiBbc2VsZiwg
c2VsZi5yb290XToKLSAgICAgICAgICAgIGlmIGtleSBpbiBub2RlLl9kYXRhOgotICAgICAgICAg
ICAgICAgIHJldHVybiBUcnVlCi0gICAgICAgIHJldHVybiBGYWxzZQotCi0gICAgZGVmIGdldChz
ZWxmLCBrZXkpOgotICAgICAgICBmb3Igbm9kZSBpbiBbc2VsZiwgc2VsZi5yb290XToKLSAgICAg
ICAgICAgIGlmIGtleSBpbiBub2RlLl9kYXRhOgotICAgICAgICAgICAgICAgIHJldHVybiBub2Rl
Ll9kYXRhW2tleV0KLSAgICAgICAgcmFpc2UgS2V5RXJyb3IKLQotICAgIGRlZiBzZXQoc2VsZiwg
bmFtZSwgdmFsdWUpOgotICAgICAgICBzZWxmLl9kYXRhW25hbWVdID0gdmFsdWUKLQotICAgIGRl
ZiByZW1vdmUoc2VsZik6Ci0gICAgICAgIGlmIHNlbGYucGFyZW50OgotICAgICAgICAgICAgc2Vs
Zi5wYXJlbnQuX3JlbW92ZV9jaGlsZChzZWxmKQotCi0gICAgZGVmIF9yZW1vdmVfY2hpbGQoc2Vs
ZiwgY2hpbGQpOgotICAgICAgICBzZWxmLmNoaWxkcmVuLnJlbW92ZShjaGlsZCkKLSAgICAgICAg
Y2hpbGQucGFyZW50ID0gTm9uZQotCi0gICAgZGVmIGl0ZXJjaGlsZHJlbihzZWxmLCBuYW1lPU5v
bmUpOgotICAgICAgICBmb3IgaXRlbSBpbiBzZWxmLmNoaWxkcmVuOgotICAgICAgICAgICAgaWYg
aXRlbS5uYW1lID09IG5hbWUgb3IgbmFtZSBpcyBOb25lOgotICAgICAgICAgICAgICAgIHlpZWxk
IGl0ZW0KLQotICAgIGRlZiBfZmxhdHRlbihzZWxmKToKLSAgICAgICAgcnYgPSB7fQotICAgICAg
ICBmb3Igbm9kZSBpbiBbc2VsZiwgc2VsZi5yb290XToKLSAgICAgICAgICAgIGZvciBuYW1lLCB2
YWx1ZSBpbiBub2RlLl9kYXRhLml0ZXJpdGVtcygpOgotICAgICAgICAgICAgICAgIGlmIG5hbWUg
bm90IGluIHJ2OgotICAgICAgICAgICAgICAgICAgICBydltuYW1lXSA9IHZhbHVlCi0gICAgICAg
IHJldHVybiBydgotCi0gICAgZGVmIGl0ZXJpdGVtcyhzZWxmKToKLSAgICAgICAgZm9yIGl0ZW0g
aW4gc2VsZi5fZmxhdHRlbigpLml0ZXJpdGVtcygpOgotICAgICAgICAgICAgeWllbGQgaXRlbQot
Ci0gICAgZGVmIGl0ZXJrZXlzKHNlbGYpOgotICAgICAgICBmb3IgaXRlbSBpbiBzZWxmLl9mbGF0
dGVuKCkuaXRlcmtleXMoKToKLSAgICAgICAgICAgIHlpZWxkIGl0ZW0KLQotICAgIGRlZiBpdGVy
dmFsdWVzKHNlbGYpOgotICAgICAgICBmb3IgaXRlbSBpbiBzZWxmLl9mbGF0dGVuKCkuaXRlcnZh
bHVlcygpOgotICAgICAgICAgICAgeWllbGQgaXRlbQotCi0gICAgZGVmIGFwcGVuZChzZWxmLCBj
aGlsZCk6Ci0gICAgICAgIGNoaWxkLnBhcmVudCA9IHNlbGYKLSAgICAgICAgc2VsZi5jaGlsZHJl
bi5hcHBlbmQoY2hpbGQpCi0gICAgICAgIHJldHVybiBjaGlsZAotCi0KIGRlZiBjb21waWxlX2Fz
dChhc3QsIGV4cHJfZGF0YSwgZGF0YV9jbHNfZ2V0dGVyPU5vbmUsICoqa3dhcmdzKToKICAgICBy
ZXR1cm4gQ29tcGlsZXIoKS5jb21waWxlKGFzdCwKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGV4cHJfZGF0YSwKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci93cHRtYW5pZmVzdC9iYWNr
ZW5kcy93M2MtaW1wb3J0LmxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci93cHRtYW5pZmVzdC9iYWNrZW5kcy93
M2MtaW1wb3J0LmxvZwppbmRleCA3ZjRlMWRhM2UzYS4uMmQyMGZhZTAyMzIgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVu
bmVyL3dwdHJ1bm5lci93cHRtYW5pZmVzdC9iYWNrZW5kcy93M2MtaW1wb3J0LmxvZworKysgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5l
ci93cHRydW5uZXIvd3B0bWFuaWZlc3QvYmFja2VuZHMvdzNjLWltcG9ydC5sb2cKQEAgLTE1LDUg
KzE1LDYgQEAgTm9uZQogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiBMaXN0IG9mIGZpbGVzOgogL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1
bm5lci93cHRtYW5pZmVzdC9iYWNrZW5kcy9fX2luaXRfXy5weQorL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci93cHRt
YW5pZmVzdC9iYWNrZW5kcy9iYXNlLnB5CiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3dwdG1hbmlmZXN0L2JhY2tl
bmRzL2NvbmRpdGlvbmFsLnB5CiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3dwdG1hbmlmZXN0L2JhY2tlbmRzL3N0
YXRpYy5weQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3dwdG1hbmlmZXN0L25vZGUucHkgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5l
ci93cHRydW5uZXIvd3B0bWFuaWZlc3Qvbm9kZS5weQppbmRleCAzM2U5Nzk2YzQzMC4uMjAwNjA1
YzA1YWEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci93cHRtYW5pZmVzdC9ub2RlLnB5CisrKyBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVu
bmVyL3dwdHJ1bm5lci93cHRtYW5pZmVzdC9ub2RlLnB5CkBAIC01OCw3ICs1OCw4IEBAIGNsYXNz
IERhdGFOb2RlKE5vZGUpOgogICAgICAgICAgICAgd2hpbGUgaW5kZXggPiAwIGFuZCBpc2luc3Rh
bmNlKHNlbGYuY2hpbGRyZW5baW5kZXggLSAxXSwgRGF0YU5vZGUpOgogICAgICAgICAgICAgICAg
IGluZGV4IC09IDEKICAgICAgICAgICAgIGZvciBpIGluIHhyYW5nZShpbmRleCk6Ci0gICAgICAg
ICAgICAgICAgYXNzZXJ0IG90aGVyLmRhdGEgIT0gc2VsZi5jaGlsZHJlbltpXS5kYXRhCisgICAg
ICAgICAgICAgICAgaWYgb3RoZXIuZGF0YSA9PSBzZWxmLmNoaWxkcmVuW2ldLmRhdGE6CisgICAg
ICAgICAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoIkR1cGxpY2F0ZSBrZXkgJXMiICUgc2Vs
Zi5jaGlsZHJlbltpXS5kYXRhKQogICAgICAgICAgICAgc2VsZi5jaGlsZHJlbi5pbnNlcnQoaW5k
ZXgsIG90aGVyKQogCiAKQEAgLTY3LDkgKzY4LDExIEBAIGNsYXNzIEtleVZhbHVlTm9kZShOb2Rl
KToKICAgICAgICAgIyBBcHBlbmQgdGhhdCByZXRhaW5zIHRoZSBpbnZhcmlhbnQgdGhhdCBjb25k
aXRpb25hbCBub2RlcwogICAgICAgICAjIGNvbWUgYmVmb3JlIHVuY29uZGl0aW9uYWwgbm9kZXMK
ICAgICAgICAgb3RoZXIucGFyZW50ID0gc2VsZgotICAgICAgICBpZiBpc2luc3RhbmNlKG90aGVy
LCBWYWx1ZU5vZGUpOgorICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShvdGhlciwgKExpc3ROb2Rl
LCBWYWx1ZU5vZGUsIENvbmRpdGlvbmFsTm9kZSkpOgorICAgICAgICAgICAgcmFpc2UgVHlwZUVy
cm9yCisgICAgICAgIGlmIGlzaW5zdGFuY2Uob3RoZXIsIChMaXN0Tm9kZSwgVmFsdWVOb2RlKSk6
CiAgICAgICAgICAgICBpZiBzZWxmLmNoaWxkcmVuOgotICAgICAgICAgICAgICAgIGFzc2VydCBu
b3QgaXNpbnN0YW5jZShzZWxmLmNoaWxkcmVuWy0xXSwgVmFsdWVOb2RlKQorICAgICAgICAgICAg
ICAgIGFzc2VydCBub3QgaXNpbnN0YW5jZShzZWxmLmNoaWxkcmVuWy0xXSwgKExpc3ROb2RlLCBW
YWx1ZU5vZGUpKQogICAgICAgICAgICAgc2VsZi5jaGlsZHJlbi5hcHBlbmQob3RoZXIpCiAgICAg
ICAgIGVsc2U6CiAgICAgICAgICAgICBpZiBzZWxmLmNoaWxkcmVuIGFuZCBpc2luc3RhbmNlKHNl
bGYuY2hpbGRyZW5bLTFdLCBWYWx1ZU5vZGUpOgpAQCAtOTQsNyArOTcsMTcgQEAgY2xhc3MgQXRv
bU5vZGUoVmFsdWVOb2RlKToKIAogCiBjbGFzcyBDb25kaXRpb25hbE5vZGUoTm9kZSk6Ci0gICAg
cGFzcworICAgIGRlZiBhcHBlbmQoc2VsZiwgb3RoZXIpOgorICAgICAgICBpZiBub3QgbGVuKHNl
bGYuY2hpbGRyZW4pOgorICAgICAgICAgICAgaWYgbm90IGlzaW5zdGFuY2Uob3RoZXIsIChCaW5h
cnlFeHByZXNzaW9uTm9kZSwgVW5hcnlFeHByZXNzaW9uTm9kZSwgVmFyaWFibGVOb2RlKSk6Cisg
ICAgICAgICAgICAgICAgcmFpc2UgVHlwZUVycm9yCisgICAgICAgIGVsc2U6CisgICAgICAgICAg
ICBpZiBsZW4oc2VsZi5jaGlsZHJlbikgPiAxOgorICAgICAgICAgICAgICAgIHJhaXNlIFZhbHVl
RXJyb3IKKyAgICAgICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKG90aGVyLCAoTGlzdE5vZGUsIFZh
bHVlTm9kZSkpOgorICAgICAgICAgICAgICAgIHJhaXNlIFR5cGVFcnJvcgorICAgICAgICBvdGhl
ci5wYXJlbnQgPSBzZWxmCisgICAgICAgIHNlbGYuY2hpbGRyZW4uYXBwZW5kKG90aGVyKQogCiAK
IGNsYXNzIFVuYXJ5RXhwcmVzc2lvbk5vZGUoTm9kZSk6CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5u
ZXIvd3B0bWFuaWZlc3QvcGFyc2VyLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3dwdG1hbmlmZXN0L3BhcnNl
ci5weQppbmRleCA4MmFhZDVmNjEzNS4uODMzZTBiOGVkMWEgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1
bm5lci93cHRtYW5pZmVzdC9wYXJzZXIucHkKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3dwdG1hbmlmZXN0
L3BhcnNlci5weQpAQCAtMTQsMTIgKzE0LDEyIEBACiAKIGZyb20gX19mdXR1cmVfXyBpbXBvcnQg
dW5pY29kZV9saXRlcmFscwogCi1mcm9tIGNTdHJpbmdJTyBpbXBvcnQgU3RyaW5nSU8KK2Zyb20g
c2l4IGltcG9ydCBiaW5hcnlfdHlwZSwgdGV4dF90eXBlLCBCeXRlc0lPCiAKLWZyb20gbm9kZSBp
bXBvcnQgKEF0b21Ob2RlLCBCaW5hcnlFeHByZXNzaW9uTm9kZSwgQmluYXJ5T3BlcmF0b3JOb2Rl
LAotICAgICAgICAgICAgICAgICAgQ29uZGl0aW9uYWxOb2RlLCBEYXRhTm9kZSwgSW5kZXhOb2Rl
LCBLZXlWYWx1ZU5vZGUsIExpc3ROb2RlLAotICAgICAgICAgICAgICAgICAgTnVtYmVyTm9kZSwg
U3RyaW5nTm9kZSwgVW5hcnlFeHByZXNzaW9uTm9kZSwKLSAgICAgICAgICAgICAgICAgIFVuYXJ5
T3BlcmF0b3JOb2RlLCBWYWx1ZU5vZGUsIFZhcmlhYmxlTm9kZSkKK2Zyb20gLm5vZGUgaW1wb3J0
IChOb2RlLCBBdG9tTm9kZSwgQmluYXJ5RXhwcmVzc2lvbk5vZGUsIEJpbmFyeU9wZXJhdG9yTm9k
ZSwKKyAgICAgICAgICAgICAgICAgICBDb25kaXRpb25hbE5vZGUsIERhdGFOb2RlLCBJbmRleE5v
ZGUsIEtleVZhbHVlTm9kZSwgTGlzdE5vZGUsCisgICAgICAgICAgICAgICAgICAgTnVtYmVyTm9k
ZSwgU3RyaW5nTm9kZSwgVW5hcnlFeHByZXNzaW9uTm9kZSwKKyAgICAgICAgICAgICAgICAgICBV
bmFyeU9wZXJhdG9yTm9kZSwgVmFsdWVOb2RlLCBWYXJpYWJsZU5vZGUpCiAKIAogY2xhc3MgUGFy
c2VFcnJvcihFeGNlcHRpb24pOgpAQCAtNDksNyArNDksNyBAQCBhdG9tcyA9IHsiVHJ1ZSI6IFRy
dWUsCiAgICAgICAgICAiUmVzZXQiOiBvYmplY3QoKX0KIAogZGVmIGRlY29kZShzKToKLSAgICBh
c3NlcnQgaXNpbnN0YW5jZShzLCB1bmljb2RlKQorICAgIGFzc2VydCBpc2luc3RhbmNlKHMsIHRl
eHRfdHlwZSkKICAgICByZXR1cm4gcwogCiAKQEAgLTc3LDkgKzc3LDkgQEAgY2xhc3MgVG9rZW5p
emVyKG9iamVjdCk6CiAKICAgICBkZWYgdG9rZW5pemUoc2VsZiwgc3RyZWFtKToKICAgICAgICAg
c2VsZi5yZXNldCgpCi0gICAgICAgIGFzc2VydCBub3QgaXNpbnN0YW5jZShzdHJlYW0sIHVuaWNv
ZGUpCi0gICAgICAgIGlmIGlzaW5zdGFuY2Uoc3RyZWFtLCBzdHIpOgotICAgICAgICAgICAgc3Ry
ZWFtID0gU3RyaW5nSU8oc3RyZWFtKQorICAgICAgICBhc3NlcnQgbm90IGlzaW5zdGFuY2Uoc3Ry
ZWFtLCB0ZXh0X3R5cGUpCisgICAgICAgIGlmIGlzaW5zdGFuY2Uoc3RyZWFtLCBieXRlcyk6Cisg
ICAgICAgICAgICBzdHJlYW0gPSBCeXRlc0lPKHN0cmVhbSkKICAgICAgICAgaWYgbm90IGhhc2F0
dHIoc3RyZWFtLCAibmFtZSIpOgogICAgICAgICAgICAgc2VsZi5maWxlbmFtZSA9ICIiCiAgICAg
ICAgIGVsc2U6CkBAIC04Nyw3ICs4Nyw3IEBAIGNsYXNzIFRva2VuaXplcihvYmplY3QpOgogCiAg
ICAgICAgIHNlbGYubmV4dF9saW5lX3N0YXRlID0gc2VsZi5saW5lX3N0YXJ0X3N0YXRlCiAgICAg
ICAgIGZvciBpLCBsaW5lIGluIGVudW1lcmF0ZShzdHJlYW0pOgotICAgICAgICAgICAgYXNzZXJ0
IGlzaW5zdGFuY2UobGluZSwgc3RyKQorICAgICAgICAgICAgYXNzZXJ0IGlzaW5zdGFuY2UobGlu
ZSwgYmluYXJ5X3R5cGUpCiAgICAgICAgICAgICBzZWxmLnN0YXRlID0gc2VsZi5uZXh0X2xpbmVf
c3RhdGUKICAgICAgICAgICAgIGFzc2VydCBzZWxmLnN0YXRlIGlzIG5vdCBOb25lCiAgICAgICAg
ICAgICBzdGF0ZXMgPSBbXQpAQCAtOTUsNyArOTUsNyBAQCBjbGFzcyBUb2tlbml6ZXIob2JqZWN0
KToKICAgICAgICAgICAgIHNlbGYubGluZV9udW1iZXIgPSBpICsgMQogICAgICAgICAgICAgc2Vs
Zi5pbmRleCA9IDAKICAgICAgICAgICAgIHNlbGYubGluZSA9IGxpbmUuZGVjb2RlKCd1dGYtOCcp
LnJzdHJpcCgpCi0gICAgICAgICAgICBhc3NlcnQgaXNpbnN0YW5jZShzZWxmLmxpbmUsIHVuaWNv
ZGUpCisgICAgICAgICAgICBhc3NlcnQgaXNpbnN0YW5jZShzZWxmLmxpbmUsIHRleHRfdHlwZSkK
ICAgICAgICAgICAgIHdoaWxlIHNlbGYuc3RhdGUgIT0gc2VsZi5lb2xfc3RhdGU6CiAgICAgICAg
ICAgICAgICAgc3RhdGVzLmFwcGVuZChzZWxmLnN0YXRlKQogICAgICAgICAgICAgICAgIHRva2Vu
cyA9IHNlbGYuc3RhdGUoKQpAQCAtMzM5LDcgKzMzOSwxNCBAQCBjbGFzcyBUb2tlbml6ZXIob2Jq
ZWN0KToKICAgICAgICAgICAgICAgICBzcGFjZXMgPSAwCiAgICAgICAgICAgICAgICAgcnYgKz0g
YwogICAgICAgICAgICAgICAgIHNlbGYuY29uc3VtZSgpCi0gICAgICAgIHlpZWxkICh0b2tlbl90
eXBlcy5zdHJpbmcsIGRlY29kZShydikpCisgICAgICAgIHJ2ID0gZGVjb2RlKHJ2KQorICAgICAg
ICBpZiBydi5zdGFydHN3aXRoKCJpZiAiKToKKyAgICAgICAgICAgICMgSGFjayB0byBhdm9pZCBh
IHByb2JsZW0gd2hlcmUgcGVvcGxlIHdyaXRlCisgICAgICAgICAgICAjIGRpc2FibGVkOiBpZiBm
b28KKyAgICAgICAgICAgICMgYW5kIGV4cGVjdCB0aGF0IHRvIGRpc2FibGUgY29uZGl0aW9uYWxs
eQorICAgICAgICAgICAgcmFpc2UgUGFyc2VFcnJvcihzZWxmLmZpbGVuYW1lLCBzZWxmLmxpbmVf
bnVtYmVyLCAiU3RyaW5ncyBzdGFydGluZyAnaWYgJyBtdXN0IGJlIHF1b3RlZCAiCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICIoZXhwcmVzc2lvbnMgbXVzdCBzdGFydCBvbiBhIG5ld2xp
bmUgYW5kIGJlIGluZGVudGVkKSIpCisgICAgICAgIHlpZWxkICh0b2tlbl90eXBlcy5zdHJpbmcs
IHJ2KQogCiAgICAgZGVmIGNvbW1lbnRfc3RhdGUoc2VsZik6CiAgICAgICAgIHdoaWxlIHNlbGYu
Y2hhcigpIGlzIG5vdCBlb2w6CkBAIC00NzgsNyArNDg1LDcgQEAgY2xhc3MgVG9rZW5pemVyKG9i
amVjdCk6CiAgICAgICAgIGVsaWYgYyA9PSAiVSI6CiAgICAgICAgICAgICByZXR1cm4gc2VsZi5k
ZWNvZGVfZXNjYXBlKDYpCiAgICAgICAgIGVsaWYgYyBpbiBbImEiLCAiYiIsICJmIiwgIm4iLCAi
ciIsICJ0IiwgInYiXToKLSAgICAgICAgICAgIHJldHVybiBldmFsKCInXCVzJyIgJSBjKQorICAg
ICAgICAgICAgcmV0dXJuIGV2YWwociInXCVzJyIgJSBjKQogICAgICAgICBlbGlmIGMgaXMgZW9s
OgogICAgICAgICAgICAgcmFpc2UgUGFyc2VFcnJvcihzZWxmLmZpbGVuYW1lLCBzZWxmLmxpbmVf
bnVtYmVyLCAiRU9MIGluIGVzY2FwZSIpCiAgICAgICAgIGVsc2U6CkBAIC01MjAsMjEgKzUyNywz
MCBAQCBjbGFzcyBQYXJzZXIob2JqZWN0KToKICAgICAgICAgc2VsZi5leHByX2J1aWxkZXJzID0g
W10KIAogICAgIGRlZiBwYXJzZShzZWxmLCBpbnB1dCk6Ci0gICAgICAgIHNlbGYucmVzZXQoKQot
ICAgICAgICBzZWxmLnRva2VuX2dlbmVyYXRvciA9IHNlbGYudG9rZW5pemVyLnRva2VuaXplKGlu
cHV0KQotICAgICAgICBzZWxmLmNvbnN1bWUoKQotICAgICAgICBzZWxmLm1hbmlmZXN0KCkKLSAg
ICAgICAgcmV0dXJuIHNlbGYudHJlZS5ub2RlCisgICAgICAgIHRyeToKKyAgICAgICAgICAgIHNl
bGYucmVzZXQoKQorICAgICAgICAgICAgc2VsZi50b2tlbl9nZW5lcmF0b3IgPSBzZWxmLnRva2Vu
aXplci50b2tlbml6ZShpbnB1dCkKKyAgICAgICAgICAgIHNlbGYuY29uc3VtZSgpCisgICAgICAg
ICAgICBzZWxmLm1hbmlmZXN0KCkKKyAgICAgICAgICAgIHJldHVybiBzZWxmLnRyZWUubm9kZQor
ICAgICAgICBleGNlcHQgRXhjZXB0aW9uIGFzIGU6CisgICAgICAgICAgICBpZiBub3QgaXNpbnN0
YW5jZShlLCBQYXJzZUVycm9yKToKKyAgICAgICAgICAgICAgICByYWlzZSBQYXJzZUVycm9yKHNl
bGYudG9rZW5pemVyLmZpbGVuYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
c2VsZi50b2tlbml6ZXIubGluZV9udW1iZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBzdHIoZSkpCisgICAgICAgICAgICByYWlzZQogCiAgICAgZGVmIGNvbnN1bWUoc2VsZik6
CiAgICAgICAgIHNlbGYudG9rZW4gPSBzZWxmLnRva2VuX2dlbmVyYXRvci5uZXh0KCkKIAogICAg
IGRlZiBleHBlY3Qoc2VsZiwgdHlwZSwgdmFsdWU9Tm9uZSk6CiAgICAgICAgIGlmIHNlbGYudG9r
ZW5bMF0gIT0gdHlwZToKLSAgICAgICAgICAgIHJhaXNlIFBhcnNlRXJyb3IKKyAgICAgICAgICAg
IHJhaXNlIFBhcnNlRXJyb3Ioc2VsZi50b2tlbml6ZXIuZmlsZW5hbWUsIHNlbGYudG9rZW5pemVy
LmxpbmVfbnVtYmVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiVG9rZW4gJ3t9JyBk
b2Vzbid0IGVxdWFsIGV4cGVjdGVkIHR5cGUgJ3t9JyIuZm9ybWF0KHNlbGYudG9rZW5bMF0sIHR5
cGUpKQogICAgICAgICBpZiB2YWx1ZSBpcyBub3QgTm9uZToKICAgICAgICAgICAgIGlmIHNlbGYu
dG9rZW5bMV0gIT0gdmFsdWU6Ci0gICAgICAgICAgICAgICAgcmFpc2UgUGFyc2VFcnJvcgorICAg
ICAgICAgICAgICAgIHJhaXNlIFBhcnNlRXJyb3Ioc2VsZi50b2tlbml6ZXIuZmlsZW5hbWUsIHNl
bGYudG9rZW5pemVyLmxpbmVfbnVtYmVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIlRva2VuICd7fScgZG9lc24ndCBlcXVhbCBleHBlY3RlZCB2YWx1ZSAne30nIi5mb3JtYXQo
c2VsZi50b2tlblsxXSwgdmFsdWUpKQogCiAgICAgICAgIHNlbGYuY29uc3VtZSgpCiAKQEAgLTU1
Myw3ICs1NjksOCBAQCBjbGFzcyBQYXJzZXIob2JqZWN0KToKICAgICAgICAgd2hpbGUgc2VsZi50
b2tlbiA9PSAodG9rZW5fdHlwZXMucGFyZW4sICJbIik6CiAgICAgICAgICAgICBzZWxmLmNvbnN1
bWUoKQogICAgICAgICAgICAgaWYgc2VsZi50b2tlblswXSAhPSB0b2tlbl90eXBlcy5zdHJpbmc6
Ci0gICAgICAgICAgICAgICAgcmFpc2UgUGFyc2VFcnJvcgorICAgICAgICAgICAgICAgIHJhaXNl
IFBhcnNlRXJyb3Ioc2VsZi50b2tlbml6ZXIuZmlsZW5hbWUsIHNlbGYudG9rZW5pemVyLmxpbmVf
bnVtYmVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlRva2VuICd7fScgaXMg
bm90IGEgc3RyaW5nIi5mb3JtYXQoc2VsZi50b2tlblswXSkpCiAgICAgICAgICAgICBzZWxmLnRy
ZWUuYXBwZW5kKERhdGFOb2RlKHNlbGYudG9rZW5bMV0pKQogICAgICAgICAgICAgc2VsZi5jb25z
dW1lKCkKICAgICAgICAgICAgIHNlbGYuZXhwZWN0KHRva2VuX3R5cGVzLnBhcmVuLCAiXSIpCkBA
IC01ODIsNyArNTk5LDggQEAgY2xhc3MgUGFyc2VyKG9iamVjdCk6CiAgICAgICAgIGVsaWYgc2Vs
Zi50b2tlblswXSA9PSB0b2tlbl90eXBlcy5hdG9tOgogICAgICAgICAgICAgc2VsZi5hdG9tKCkK
ICAgICAgICAgZWxzZToKLSAgICAgICAgICAgIHJhaXNlIFBhcnNlRXJyb3IKKyAgICAgICAgICAg
IHJhaXNlIFBhcnNlRXJyb3Ioc2VsZi50b2tlbml6ZXIuZmlsZW5hbWUsIHNlbGYudG9rZW5pemVy
LmxpbmVfbnVtYmVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiVG9rZW4gJ3t9JyBp
cyBub3QgYSBrbm93biB0eXBlIi5mb3JtYXQoc2VsZi50b2tlblswXSkpCiAKICAgICBkZWYgbGlz
dF92YWx1ZShzZWxmKToKICAgICAgICAgc2VsZi50cmVlLmFwcGVuZChMaXN0Tm9kZSgpKQpAQCAt
Njg3LDEzICs3MDUsMTYgQEAgY2xhc3MgVHJlZWJ1aWxkZXIob2JqZWN0KToKICAgICAgICAgc2Vs
Zi5ub2RlID0gcm9vdAogCiAgICAgZGVmIGFwcGVuZChzZWxmLCBub2RlKToKKyAgICAgICAgYXNz
ZXJ0IGlzaW5zdGFuY2Uobm9kZSwgTm9kZSkKICAgICAgICAgc2VsZi5ub2RlLmFwcGVuZChub2Rl
KQogICAgICAgICBzZWxmLm5vZGUgPSBub2RlCisgICAgICAgIGFzc2VydCBzZWxmLm5vZGUgaXMg
bm90IE5vbmUKICAgICAgICAgcmV0dXJuIG5vZGUKIAogICAgIGRlZiBwb3Aoc2VsZik6CiAgICAg
ICAgIG5vZGUgPSBzZWxmLm5vZGUKICAgICAgICAgc2VsZi5ub2RlID0gc2VsZi5ub2RlLnBhcmVu
dAorICAgICAgICBhc3NlcnQgc2VsZi5ub2RlIGlzIG5vdCBOb25lCiAgICAgICAgIHJldHVybiBu
b2RlCiAKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3dwdG1hbmlmZXN0L3NlcmlhbGl6ZXIu
cHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dw
dHJ1bm5lci93cHRydW5uZXIvd3B0bWFuaWZlc3Qvc2VyaWFsaXplci5weQppbmRleCBhN2UwMTMx
M2FlNS4uM2IyOWM5OWVkZTcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci93cHRtYW5pZmVzdC9z
ZXJpYWxpemVyLnB5CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci93cHRtYW5pZmVzdC9zZXJpYWxpemVyLnB5
CkBAIC0xLDkgKzEsOSBAQAotZnJvbSBub2RlIGltcG9ydCBOb2RlVmlzaXRvciwgVmFsdWVOb2Rl
LCBMaXN0Tm9kZSwgQmluYXJ5RXhwcmVzc2lvbk5vZGUKLWZyb20gcGFyc2VyIGltcG9ydCBhdG9t
cywgcHJlY2VkZW5jZQorZnJvbSAubm9kZSBpbXBvcnQgTm9kZVZpc2l0b3IsIFZhbHVlTm9kZSwg
TGlzdE5vZGUsIEJpbmFyeUV4cHJlc3Npb25Ob2RlCitmcm9tIC5wYXJzZXIgaW1wb3J0IGF0b21z
LCBwcmVjZWRlbmNlCiAKLWF0b21fbmFtZXMgPSB7djoiQCVzIiAlIGsgZm9yIChrLHYpIGluIGF0
b21zLml0ZXJpdGVtcygpfQorYXRvbV9uYW1lcyA9IHt2OiJAJXMiICUgayBmb3IgKGssdikgaW4g
YXRvbXMuaXRlbXMoKX0KIAotbmFtZWRfZXNjYXBlcyA9IHNldChbIlxhIiwgIlxiIiwgIlxmIiwg
IlxuIiwgIlxyIiwgIlx0IiwgIlx2Il0pCituYW1lZF9lc2NhcGVzID0geyJcYSIsICJcYiIsICJc
ZiIsICJcbiIsICJcciIsICJcdCIsICJcdiJ9CiAKIGRlZiBlc2NhcGUoc3RyaW5nLCBleHRyYXM9
IiIpOgogICAgICMgQXNzdW1lcyBpbnB1dCBieXRlcyBhcmUgZWl0aGVyIFVURjggYnl0ZXMgb3Ig
dW5pY29kZS4KQEAgLTc4LDggKzc4LDEwIEBAIGNsYXNzIE1hbmlmZXN0U2VyaWFsaXplcihOb2Rl
VmlzaXRvcik6CiAgICAgICAgICAgICBkYXRhID0gdW5pY29kZShub2RlLmRhdGEpCiAgICAgICAg
IGVsc2U6CiAgICAgICAgICAgICBkYXRhID0gbm9kZS5kYXRhCi0gICAgICAgIGlmICIjIiBpbiBk
YXRhIG9yIChpc2luc3RhbmNlKG5vZGUucGFyZW50LCBMaXN0Tm9kZSkgYW5kCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAoIiwiIGluIGRhdGEgb3IgIl0iIGluIGRhdGEpKToKKyAgICAgICAg
aWYgKCIjIiBpbiBkYXRhIG9yCisgICAgICAgICAgICBkYXRhLnN0YXJ0c3dpdGgoImlmICIpIG9y
CisgICAgICAgICAgICAoaXNpbnN0YW5jZShub2RlLnBhcmVudCwgTGlzdE5vZGUpIGFuZAorICAg
ICAgICAgICAgICgiLCIgaW4gZGF0YSBvciAiXSIgaW4gZGF0YSkpKToKICAgICAgICAgICAgIGlm
ICJcIiIgaW4gZGF0YToKICAgICAgICAgICAgICAgICBxdW90ZSA9ICInIgogICAgICAgICAgICAg
ZWxzZToKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci93cHRtYW5pZmVzdC90ZXN0cy90ZXN0X2Nv
bmRpdGlvbmFsLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3dwdG1hbmlmZXN0L3Rlc3RzL3Rlc3RfY29uZGl0
aW9uYWwucHkKaW5kZXggOWRhMWEwZjE4MGMuLmZiYzc1ZWM4MzkwIDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93
cHRydW5uZXIvd3B0bWFuaWZlc3QvdGVzdHMvdGVzdF9jb25kaXRpb25hbC5weQorKysgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93
cHRydW5uZXIvd3B0bWFuaWZlc3QvdGVzdHMvdGVzdF9jb25kaXRpb25hbC5weQpAQCAtMSw5ICsx
LDEzIEBACitpbXBvcnQgcHl0ZXN0CitpbXBvcnQgc3lzCiBpbXBvcnQgdW5pdHRlc3QKIAogZnJv
bSAuLmJhY2tlbmRzIGltcG9ydCBjb25kaXRpb25hbAogZnJvbSAuLm5vZGUgaW1wb3J0IEJpbmFy
eUV4cHJlc3Npb25Ob2RlLCBCaW5hcnlPcGVyYXRvck5vZGUsIFZhcmlhYmxlTm9kZSwgTnVtYmVy
Tm9kZQogCiAKK0BweXRlc3QubWFyay54ZmFpbChzeXMudmVyc2lvblswXSA9PSAiMyIsCisgICAg
ICAgICAgICAgICAgICAgcmVhc29uPSJ3cHRtYW5pZmVzdC5wYXJzZXIgZG9lc24ndCBzdXBwb3J0
IHB5MyIpCiBjbGFzcyBUZXN0Q29uZGl0aW9uYWwodW5pdHRlc3QuVGVzdENhc2UpOgogICAgIGRl
ZiBjb21waWxlKHNlbGYsIGlucHV0X3RleHQpOgogICAgICAgICByZXR1cm4gY29uZGl0aW9uYWwu
Y29tcGlsZShpbnB1dF90ZXh0KQpAQCAtMTM4LDQgKzE0Miw0IEBAIGtleV8xOiBvdGhlcl92YWx1
ZQogICAgICAgICBzZWxmLmFzc2VydFRydWUobWFuaWZlc3QuaGFzX2tleSgia2V5XzEiKSkKICAg
ICAgICAgc2VsZi5hc3NlcnRGYWxzZShtYW5pZmVzdC5oYXNfa2V5KCJrZXlfMiIpKQogCi0gICAg
ICAgIHNlbGYuYXNzZXJ0RXF1YWxzKHNldChtYW5pZmVzdC5pdGVya2V5cygpKSwgc2V0KFsia2V5
IiwgImtleV8xIl0pKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhzZXQobWFuaWZlc3QuaXRl
cmtleXMoKSksIHsia2V5IiwgImtleV8xIn0pCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvd3B0
bWFuaWZlc3QvdGVzdHMvdGVzdF9wYXJzZXIucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvd3B0bWFuaWZlc3Qv
dGVzdHMvdGVzdF9wYXJzZXIucHkKaW5kZXggOThiNTRkYzExZWEuLmFkNTMyZGQ5MmVhIDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3dwdHJ1bm5lci93cHRydW5uZXIvd3B0bWFuaWZlc3QvdGVzdHMvdGVzdF9wYXJzZXIucHkKKysr
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRy
dW5uZXIvd3B0cnVubmVyL3dwdG1hbmlmZXN0L3Rlc3RzL3Rlc3RfcGFyc2VyLnB5CkBAIC0xLDYg
KzEsOCBAQAoraW1wb3J0IHB5dGVzdAoraW1wb3J0IHN5cwogaW1wb3J0IHVuaXR0ZXN0CiAKLWZy
b20gY1N0cmluZ0lPIGltcG9ydCBTdHJpbmdJTworZnJvbSBzaXgubW92ZXMgaW1wb3J0IGNTdHJp
bmdJTyBhcyBTdHJpbmdJTwogCiBmcm9tIC4uIGltcG9ydCBwYXJzZXIKIApAQCAtOCw2ICsxMCw4
IEBAIGZyb20gLi4gaW1wb3J0IHBhcnNlcgogIyB1c2UgdGVzdF9zZXJpYWxpemVyIGZvciB0aGUg
bWFqb3JpdHkgb2YgY2FzZXMKIAogCitAcHl0ZXN0Lm1hcmsueGZhaWwoc3lzLnZlcnNpb25bMF0g
PT0gIjMiLAorICAgICAgICAgICAgICAgICAgIHJlYXNvbj0id3B0bWFuaWZlc3QucGFyc2VyIGRv
ZXNuJ3Qgc3VwcG9ydCBweTMiKQogY2xhc3MgVGVzdEV4cHJlc3Npb24odW5pdHRlc3QuVGVzdENh
c2UpOgogICAgIGRlZiBzZXRVcChzZWxmKToKICAgICAgICAgc2VsZi5wYXJzZXIgPSBwYXJzZXIu
UGFyc2VyKCkKQEAgLTg2LDcgKzkwLDcgQEAga2V5OgogICAgICAgICBzZWxmLmNvbXBhcmUoCiAg
ICAgICAgICAgICAiIiIKIGtleToKLSAgaWYgeCA9PSAxOiBpZiBiOiB2YWx1ZSIiIiwKKyAgaWYg
eCA9PSAxOiAnaWYgYjogdmFsdWUnIiIiLAogICAgICAgICAgICAgWyJEYXRhTm9kZSIsIE5vbmUs
CiAgICAgICAgICAgICAgW1siS2V5VmFsdWVOb2RlIiwgImtleSIsCiAgICAgICAgICAgICAgICBb
WyJDb25kaXRpb25hbE5vZGUiLCBOb25lLApAQCAtMTA3LDYgKzExMSwxMCBAQCBrZXk6CiAgICAg
ICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXMocGFyc2VyLlBhcnNlRXJyb3IpOgogICAgICAgICAg
ICAgc2VsZi5wYXJzZSgia2V5OiBAdHJ1ZSIpCiAKKyAgICBkZWYgdGVzdF9pZl8xKHNlbGYpOgor
ICAgICAgICB3aXRoIHNlbGYuYXNzZXJ0UmFpc2VzKHBhcnNlci5QYXJzZUVycm9yKToKKyAgICAg
ICAgICAgIHNlbGYucGFyc2UoImtleTogaWYgZm9vIikKKwogCiBpZiBfX25hbWVfXyA9PSAiX19t
YWluX18iOgogICAgIHVuaXR0ZXN0Lm1haW4oKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3dw
dG1hbmlmZXN0L3Rlc3RzL3Rlc3Rfc2VyaWFsaXplci5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci93cHRtYW5p
ZmVzdC90ZXN0cy90ZXN0X3NlcmlhbGl6ZXIucHkKaW5kZXggMDIyODBlNTFmODQuLjdmZTdhYzg1
Y2I4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvd3B0bWFuaWZlc3QvdGVzdHMvdGVzdF9zZXJp
YWxpemVyLnB5CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci93cHRtYW5pZmVzdC90ZXN0cy90ZXN0X3Nlcmlh
bGl6ZXIucHkKQEAgLTYsNiArNiw4IEBAIGltcG9ydCBweXRlc3QKIGZyb20gLi4gaW1wb3J0IHBh
cnNlciwgc2VyaWFsaXplcgogCiAKK0BweXRlc3QubWFyay54ZmFpbChzeXMudmVyc2lvblswXSA9
PSAiMyIsCisgICAgICAgICAgICAgICAgICAgcmVhc29uPSJ3cHRtYW5pZmVzdC5wYXJzZXIgZG9l
c24ndCBzdXBwb3J0IHB5MyIpCiBjbGFzcyBUb2tlbml6ZXJUZXN0KHVuaXR0ZXN0LlRlc3RDYXNl
KToKICAgICBkZWYgc2V0VXAoc2VsZik6CiAgICAgICAgIHNlbGYuc2VyaWFsaXplciA9IHNlcmlh
bGl6ZXIuTWFuaWZlc3RTZXJpYWxpemVyKCkKQEAgLTE0NCw3ICsxNDYsNyBAQCBjbGFzcyBUb2tl
bml6ZXJUZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKICIiIikKIAogICAgIGRlZiB0ZXN0XzE4KHNl
bGYpOgotICAgICAgICBzZWxmLmNvbXBhcmUoIiIia2V5OiBcXQorICAgICAgICBzZWxmLmNvbXBh
cmUociIiImtleTogXF0KICAgICAgICAgIiIiLCAiIiJrZXk6IF0KICIiIikKIApAQCAtMjI4LDMg
KzIzMCw3IEBAIGNsYXNzIFRva2VuaXplclRlc3QodW5pdHRlc3QuVGVzdENhc2UpOgogICAgICAg
ICBzZWxmLmNvbXBhcmUoIiIiZm9vOgogICBpZiBhIG9yIGI6IFsxLCAyXQogIiIiKQorCisgICAg
ZGVmIHRlc3RfaWZfc3RyaW5nXzAoc2VsZik6CisgICAgICAgIHNlbGYuY29tcGFyZSgiIiJmb286
ICJpZiBiYXIiCisiIiIpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvd3B0bWFuaWZlc3QvdGVz
dHMvdGVzdF9zdGF0aWMucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvd3B0bWFuaWZlc3QvdGVzdHMvdGVzdF9z
dGF0aWMucHkKaW5kZXggZjYzODY5NjM2ZGEuLmFhZjg0NjU5MTUyIDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93
cHRydW5uZXIvd3B0bWFuaWZlc3QvdGVzdHMvdGVzdF9zdGF0aWMucHkKKysrIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVu
bmVyL3dwdG1hbmlmZXN0L3Rlc3RzL3Rlc3Rfc3RhdGljLnB5CkBAIC0xLDMgKzEsNSBAQAoraW1w
b3J0IHB5dGVzdAoraW1wb3J0IHN5cwogaW1wb3J0IHVuaXR0ZXN0CiAKIGZyb20gLi5iYWNrZW5k
cyBpbXBvcnQgc3RhdGljCkBAIC02LDYgKzgsOCBAQCBmcm9tIC4uYmFja2VuZHMgaW1wb3J0IHN0
YXRpYwogIyB1c2UgdGVzdF9zZXJpYWxpemVyIGZvciB0aGUgbWFqb3JpdHkgb2YgY2FzZXMKIAog
CitAcHl0ZXN0Lm1hcmsueGZhaWwoc3lzLnZlcnNpb25bMF0gPT0gIjMiLAorICAgICAgICAgICAg
ICAgICAgIHJlYXNvbj0id3B0bWFuaWZlc3QucGFyc2VyIGRvZXNuJ3Qgc3VwcG9ydCBweTMiKQog
Y2xhc3MgVGVzdFN0YXRpYyh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAgZGVmIGNvbXBpbGUoc2Vs
ZiwgaW5wdXRfdGV4dCwgaW5wdXRfZGF0YSk6CiAgICAgICAgIHJldHVybiBzdGF0aWMuY29tcGls
ZShpbnB1dF90ZXh0LCBpbnB1dF9kYXRhKQpAQCAtODMsOCArODcsOCBAQCBrZXlfMTogb3RoZXJf
dmFsdWUKICAgICAgICAgc2VsZi5hc3NlcnRUcnVlKG1hbmlmZXN0Lmhhc19rZXkoImtleV8xIikp
CiAgICAgICAgIHNlbGYuYXNzZXJ0RmFsc2UobWFuaWZlc3QuaGFzX2tleSgia2V5XzIiKSkKIAot
ICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhzZXQobWFuaWZlc3QuaXRlcmtleXMoKSksIHNldChb
ImtleSIsICJrZXlfMSJdKSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMoc2V0KG1hbmlmZXN0
Lml0ZXJ2YWx1ZXMoKSksIHNldChbInZhbHVlXzEiLCAib3RoZXJfdmFsdWUiXSkpCisgICAgICAg
IHNlbGYuYXNzZXJ0RXF1YWxzKHNldChtYW5pZmVzdC5pdGVya2V5cygpKSwgeyJrZXkiLCAia2V5
XzEifSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMoc2V0KG1hbmlmZXN0Lml0ZXJ2YWx1ZXMo
KSksIHsidmFsdWVfMSIsICJvdGhlcl92YWx1ZSJ9KQogCiAgICAgZGVmIHRlc3RfaXNfZW1wdHlf
MShzZWxmKToKICAgICAgICAgZGF0YSA9ICIiIgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3dw
dG1hbmlmZXN0L3Rlc3RzL3Rlc3RfdG9rZW5pemVyLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3dwdG1hbmlm
ZXN0L3Rlc3RzL3Rlc3RfdG9rZW5pemVyLnB5CmluZGV4IGE2NGNlMGM3YmI3Li42NmI1ODA1NTQy
YiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3dwdG1hbmlmZXN0L3Rlc3RzL3Rlc3RfdG9rZW5p
emVyLnB5CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci93cHRtYW5pZmVzdC90ZXN0cy90ZXN0X3Rva2VuaXpl
ci5weQpAQCAtMSwyMSArMSwxNSBAQAotaW1wb3J0IHN5cwotaW1wb3J0IG9zCiBpbXBvcnQgdW5p
dHRlc3QKIAotc3lzLnBhdGguaW5zZXJ0KDAsIG9zLnBhdGguYWJzcGF0aCgiLi4iKSkKLWZyb20g
Y1N0cmluZ0lPIGltcG9ydCBTdHJpbmdJTwotCiBmcm9tIC4uIGltcG9ydCBwYXJzZXIKIGZyb20g
Li5wYXJzZXIgaW1wb3J0IHRva2VuX3R5cGVzCiAKLQogY2xhc3MgVG9rZW5pemVyVGVzdCh1bml0
dGVzdC5UZXN0Q2FzZSk6CiAgICAgZGVmIHNldFVwKHNlbGYpOgogICAgICAgICBzZWxmLnRva2Vu
aXplciA9IHBhcnNlci5Ub2tlbml6ZXIoKQogCiAgICAgZGVmIHRva2VuaXplKHNlbGYsIGlucHV0
X3N0cik6CiAgICAgICAgIHJ2ID0gW10KLSAgICAgICAgZm9yIGl0ZW0gaW4gc2VsZi50b2tlbml6
ZXIudG9rZW5pemUoU3RyaW5nSU8oaW5wdXRfc3RyKSk6CisgICAgICAgIGZvciBpdGVtIGluIHNl
bGYudG9rZW5pemVyLnRva2VuaXplKGlucHV0X3N0cik6CiAgICAgICAgICAgICBydi5hcHBlbmQo
aXRlbSkKICAgICAgICAgICAgIGlmIGl0ZW1bMF0gPT0gdG9rZW5fdHlwZXMuZW9mOgogICAgICAg
ICAgICAgICAgIGJyZWFrCkBAIC0yNCwxMjggKzE4LDEyOCBAQCBjbGFzcyBUb2tlbml6ZXJUZXN0
KHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICBkZWYgY29tcGFyZShzZWxmLCBpbnB1dF90ZXh0LCBl
eHBlY3RlZCk6CiAgICAgICAgIGV4cGVjdGVkID0gZXhwZWN0ZWQgKyBbKHRva2VuX3R5cGVzLmVv
ZiwgTm9uZSldCiAgICAgICAgIGFjdHVhbCA9IHNlbGYudG9rZW5pemUoaW5wdXRfdGV4dCkKLSAg
ICAgICAgc2VsZi5hc3NlcnRFcXVhbHMoYWN0dWFsLCBleHBlY3RlZCkKKyAgICAgICAgc2VsZi5h
c3NlcnRFcXVhbChhY3R1YWwsIGV4cGVjdGVkKQogCiAgICAgZGVmIHRlc3RfaGVhZGluZ18wKHNl
bGYpOgotICAgICAgICBzZWxmLmNvbXBhcmUoIiIiW0hlYWRpbmcgdGV4dF0iIiIsCisgICAgICAg
IHNlbGYuY29tcGFyZShiIiIiW0hlYWRpbmcgdGV4dF0iIiIsCiAgICAgICAgICAgICAgICAgICAg
ICBbKHRva2VuX3R5cGVzLnBhcmVuLCAiWyIpLAogICAgICAgICAgICAgICAgICAgICAgICh0b2tl
bl90eXBlcy5zdHJpbmcsICJIZWFkaW5nIHRleHQiKSwKICAgICAgICAgICAgICAgICAgICAgICAo
dG9rZW5fdHlwZXMucGFyZW4sICJdIildKQogCiAgICAgZGVmIHRlc3RfaGVhZGluZ18xKHNlbGYp
OgotICAgICAgICBzZWxmLmNvbXBhcmUoIiIiW0hlYWRpbmcgW3RleHRcXV0iIiIsCisgICAgICAg
IHNlbGYuY29tcGFyZShiciIiIltIZWFkaW5nIFt0ZXh0XF1dIiIiLAogICAgICAgICAgICAgICAg
ICAgICAgWyh0b2tlbl90eXBlcy5wYXJlbiwgIlsiKSwKICAgICAgICAgICAgICAgICAgICAgICAo
dG9rZW5fdHlwZXMuc3RyaW5nLCAiSGVhZGluZyBbdGV4dF0iKSwKICAgICAgICAgICAgICAgICAg
ICAgICAodG9rZW5fdHlwZXMucGFyZW4sICJdIildKQogCiAgICAgZGVmIHRlc3RfaGVhZGluZ18y
KHNlbGYpOgotICAgICAgICBzZWxmLmNvbXBhcmUoIiIiW0hlYWRpbmcgI3RleHRdIiIiLAorICAg
ICAgICBzZWxmLmNvbXBhcmUoYiIiIltIZWFkaW5nICN0ZXh0XSIiIiwKICAgICAgICAgICAgICAg
ICAgICAgIFsodG9rZW5fdHlwZXMucGFyZW4sICJbIiksCiAgICAgICAgICAgICAgICAgICAgICAg
KHRva2VuX3R5cGVzLnN0cmluZywgIkhlYWRpbmcgI3RleHQiKSwKICAgICAgICAgICAgICAgICAg
ICAgICAodG9rZW5fdHlwZXMucGFyZW4sICJdIildKQogCiAgICAgZGVmIHRlc3RfaGVhZGluZ18z
KHNlbGYpOgotICAgICAgICBzZWxmLmNvbXBhcmUoIiIiW0hlYWRpbmcgW1xddGV4dF0iIiIsCisg
ICAgICAgIHNlbGYuY29tcGFyZShiciIiIltIZWFkaW5nIFtcXXRleHRdIiIiLAogICAgICAgICAg
ICAgICAgICAgICAgWyh0b2tlbl90eXBlcy5wYXJlbiwgIlsiKSwKICAgICAgICAgICAgICAgICAg
ICAgICAodG9rZW5fdHlwZXMuc3RyaW5nLCAiSGVhZGluZyBbXXRleHQiKSwKICAgICAgICAgICAg
ICAgICAgICAgICAodG9rZW5fdHlwZXMucGFyZW4sICJdIildKQogCiAgICAgZGVmIHRlc3RfaGVh
ZGluZ180KHNlbGYpOgogICAgICAgICB3aXRoIHNlbGYuYXNzZXJ0UmFpc2VzKHBhcnNlci5QYXJz
ZUVycm9yKToKLSAgICAgICAgICAgIHNlbGYudG9rZW5pemUoIltIZWFkaW5nIikKKyAgICAgICAg
ICAgIHNlbGYudG9rZW5pemUoYiJbSGVhZGluZyIpCiAKICAgICBkZWYgdGVzdF9oZWFkaW5nXzUo
c2VsZik6Ci0gICAgICAgIHNlbGYuY29tcGFyZSgiIiJbSGVhZGluZyBbXF10ZXh0XSAjY29tbWVu
dCIiIiwKKyAgICAgICAgc2VsZi5jb21wYXJlKGJyIiIiW0hlYWRpbmcgW1xddGV4dF0gI2NvbW1l
bnQiIiIsCiAgICAgICAgICAgICAgICAgICAgICBbKHRva2VuX3R5cGVzLnBhcmVuLCAiWyIpLAog
ICAgICAgICAgICAgICAgICAgICAgICh0b2tlbl90eXBlcy5zdHJpbmcsICJIZWFkaW5nIFtddGV4
dCIpLAogICAgICAgICAgICAgICAgICAgICAgICh0b2tlbl90eXBlcy5wYXJlbiwgIl0iKV0pCiAK
ICAgICBkZWYgdGVzdF9oZWFkaW5nXzYoc2VsZik6Ci0gICAgICAgIHNlbGYuY29tcGFyZShyIiIi
W0hlYWRpbmcgXHR0ZXh0XSIiIiwKKyAgICAgICAgc2VsZi5jb21wYXJlKGJyIiIiW0hlYWRpbmcg
XHR0ZXh0XSIiIiwKICAgICAgICAgICAgICAgICAgICAgIFsodG9rZW5fdHlwZXMucGFyZW4sICJb
IiksCiAgICAgICAgICAgICAgICAgICAgICAgKHRva2VuX3R5cGVzLnN0cmluZywgIkhlYWRpbmcg
XHR0ZXh0IiksCiAgICAgICAgICAgICAgICAgICAgICAgKHRva2VuX3R5cGVzLnBhcmVuLCAiXSIp
XSkKIAogICAgIGRlZiB0ZXN0X2tleV8wKHNlbGYpOgotICAgICAgICBzZWxmLmNvbXBhcmUoIiIi
a2V5OnZhbHVlIiIiLAorICAgICAgICBzZWxmLmNvbXBhcmUoYiIiImtleTp2YWx1ZSIiIiwKICAg
ICAgICAgICAgICAgICAgICAgIFsodG9rZW5fdHlwZXMuc3RyaW5nLCAia2V5IiksCiAgICAgICAg
ICAgICAgICAgICAgICAgKHRva2VuX3R5cGVzLnNlcGFyYXRvciwgIjoiKSwKICAgICAgICAgICAg
ICAgICAgICAgICAodG9rZW5fdHlwZXMuc3RyaW5nLCAidmFsdWUiKV0pCiAKICAgICBkZWYgdGVz
dF9rZXlfMShzZWxmKToKLSAgICAgICAgc2VsZi5jb21wYXJlKCIiImtleSAgOiAgdmFsdWUiIiIs
CisgICAgICAgIHNlbGYuY29tcGFyZShiIiIia2V5ICA6ICB2YWx1ZSIiIiwKICAgICAgICAgICAg
ICAgICAgICAgIFsodG9rZW5fdHlwZXMuc3RyaW5nLCAia2V5IiksCiAgICAgICAgICAgICAgICAg
ICAgICAgKHRva2VuX3R5cGVzLnNlcGFyYXRvciwgIjoiKSwKICAgICAgICAgICAgICAgICAgICAg
ICAodG9rZW5fdHlwZXMuc3RyaW5nLCAidmFsdWUiKV0pCiAKICAgICBkZWYgdGVzdF9rZXlfMihz
ZWxmKToKLSAgICAgICAgc2VsZi5jb21wYXJlKCIiImtleSAgOiAgdmFsIHVlIiIiLAorICAgICAg
ICBzZWxmLmNvbXBhcmUoYiIiImtleSAgOiAgdmFsIHVlIiIiLAogICAgICAgICAgICAgICAgICAg
ICAgWyh0b2tlbl90eXBlcy5zdHJpbmcsICJrZXkiKSwKICAgICAgICAgICAgICAgICAgICAgICAo
dG9rZW5fdHlwZXMuc2VwYXJhdG9yLCAiOiIpLAogICAgICAgICAgICAgICAgICAgICAgICh0b2tl
bl90eXBlcy5zdHJpbmcsICJ2YWwgdWUiKV0pCiAKICAgICBkZWYgdGVzdF9rZXlfMyhzZWxmKToK
LSAgICAgICAgc2VsZi5jb21wYXJlKCIiImtleTogdmFsdWUjY29tbWVudCIiIiwKKyAgICAgICAg
c2VsZi5jb21wYXJlKGIiIiJrZXk6IHZhbHVlI2NvbW1lbnQiIiIsCiAgICAgICAgICAgICAgICAg
ICAgICBbKHRva2VuX3R5cGVzLnN0cmluZywgImtleSIpLAogICAgICAgICAgICAgICAgICAgICAg
ICh0b2tlbl90eXBlcy5zZXBhcmF0b3IsICI6IiksCiAgICAgICAgICAgICAgICAgICAgICAgKHRv
a2VuX3R5cGVzLnN0cmluZywgInZhbHVlIildKQogCiAgICAgZGVmIHRlc3Rfa2V5XzQoc2VsZik6
CiAgICAgICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXMocGFyc2VyLlBhcnNlRXJyb3IpOgotICAg
ICAgICAgICAgc2VsZi50b2tlbml6ZSgiIiJrZSB5OiB2YWx1ZSIiIikKKyAgICAgICAgICAgIHNl
bGYudG9rZW5pemUoYiIiImtlIHk6IHZhbHVlIiIiKQogCiAgICAgZGVmIHRlc3Rfa2V5XzUoc2Vs
Zik6CiAgICAgICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXMocGFyc2VyLlBhcnNlRXJyb3IpOgot
ICAgICAgICAgICAgc2VsZi50b2tlbml6ZSgiIiJrZXkiIiIpCisgICAgICAgICAgICBzZWxmLnRv
a2VuaXplKGIiIiJrZXkiIiIpCiAKICAgICBkZWYgdGVzdF9rZXlfNihzZWxmKToKLSAgICAgICAg
c2VsZi5jb21wYXJlKCIiImtleTogInZhbHVlXCIiIiIsCisgICAgICAgIHNlbGYuY29tcGFyZShi
IiIia2V5OiAidmFsdWVcIiIiIiwKICAgICAgICAgICAgICAgICAgICAgIFsodG9rZW5fdHlwZXMu
c3RyaW5nLCAia2V5IiksCiAgICAgICAgICAgICAgICAgICAgICAgKHRva2VuX3R5cGVzLnNlcGFy
YXRvciwgIjoiKSwKICAgICAgICAgICAgICAgICAgICAgICAodG9rZW5fdHlwZXMuc3RyaW5nLCAi
dmFsdWUiKV0pCiAKICAgICBkZWYgdGVzdF9rZXlfNyhzZWxmKToKLSAgICAgICAgc2VsZi5jb21w
YXJlKCIiImtleTogJ3ZhbHVlJyIiIiwKKyAgICAgICAgc2VsZi5jb21wYXJlKGIiIiJrZXk6ICd2
YWx1ZSciIiIsCiAgICAgICAgICAgICAgICAgICAgICBbKHRva2VuX3R5cGVzLnN0cmluZywgImtl
eSIpLAogICAgICAgICAgICAgICAgICAgICAgICh0b2tlbl90eXBlcy5zZXBhcmF0b3IsICI6Iiks
CiAgICAgICAgICAgICAgICAgICAgICAgKHRva2VuX3R5cGVzLnN0cmluZywgInZhbHVlIildKQog
CiAgICAgZGVmIHRlc3Rfa2V5Xzgoc2VsZik6Ci0gICAgICAgIHNlbGYuY29tcGFyZSgiIiJrZXk6
ICIjdmFsdWVcIiIiIiwKKyAgICAgICAgc2VsZi5jb21wYXJlKGIiIiJrZXk6ICIjdmFsdWVcIiIi
IiwKICAgICAgICAgICAgICAgICAgICAgIFsodG9rZW5fdHlwZXMuc3RyaW5nLCAia2V5IiksCiAg
ICAgICAgICAgICAgICAgICAgICAgKHRva2VuX3R5cGVzLnNlcGFyYXRvciwgIjoiKSwKICAgICAg
ICAgICAgICAgICAgICAgICAodG9rZW5fdHlwZXMuc3RyaW5nLCAiI3ZhbHVlIildKQogCiAgICAg
ZGVmIHRlc3Rfa2V5Xzkoc2VsZik6Ci0gICAgICAgIHNlbGYuY29tcGFyZSgiIiJrZXk6ICcjdmFs
dWVcJyIiIiwKKyAgICAgICAgc2VsZi5jb21wYXJlKGIiIiJrZXk6ICcjdmFsdWVcJyIiIiwKICAg
ICAgICAgICAgICAgICAgICAgIFsodG9rZW5fdHlwZXMuc3RyaW5nLCAia2V5IiksCiAgICAgICAg
ICAgICAgICAgICAgICAgKHRva2VuX3R5cGVzLnNlcGFyYXRvciwgIjoiKSwKICAgICAgICAgICAg
ICAgICAgICAgICAodG9rZW5fdHlwZXMuc3RyaW5nLCAiI3ZhbHVlIildKQogCiAgICAgZGVmIHRl
c3Rfa2V5XzEwKHNlbGYpOgogICAgICAgICB3aXRoIHNlbGYuYXNzZXJ0UmFpc2VzKHBhcnNlci5Q
YXJzZUVycm9yKToKLSAgICAgICAgICAgIHNlbGYudG9rZW5pemUoIiIia2V5OiAidmFsdWUiIiIp
CisgICAgICAgICAgICBzZWxmLnRva2VuaXplKGIiIiJrZXk6ICJ2YWx1ZSIiIikKIAogICAgIGRl
ZiB0ZXN0X2tleV8xMShzZWxmKToKICAgICAgICAgd2l0aCBzZWxmLmFzc2VydFJhaXNlcyhwYXJz
ZXIuUGFyc2VFcnJvcik6Ci0gICAgICAgICAgICBzZWxmLnRva2VuaXplKCIiImtleTogJ3ZhbHVl
IiIiKQorICAgICAgICAgICAgc2VsZi50b2tlbml6ZShiIiIia2V5OiAndmFsdWUiIiIpCiAKICAg
ICBkZWYgdGVzdF9rZXlfMTIoc2VsZik6CiAgICAgICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXMo
cGFyc2VyLlBhcnNlRXJyb3IpOgotICAgICAgICAgICAgc2VsZi50b2tlbml6ZSgiIiJrZXk6ICd2
YWx1ZSIiIikKKyAgICAgICAgICAgIHNlbGYudG9rZW5pemUoYiIiImtleTogJ3ZhbHVlIiIiKQog
CiAgICAgZGVmIHRlc3Rfa2V5XzEzKHNlbGYpOgogICAgICAgICB3aXRoIHNlbGYuYXNzZXJ0UmFp
c2VzKHBhcnNlci5QYXJzZUVycm9yKToKLSAgICAgICAgICAgIHNlbGYudG9rZW5pemUoIiIia2V5
OiAndmFsdWUnIGFiYyIiIikKKyAgICAgICAgICAgIHNlbGYudG9rZW5pemUoYiIiImtleTogJ3Zh
bHVlJyBhYmMiIiIpCiAKICAgICBkZWYgdGVzdF9rZXlfMTQoc2VsZik6Ci0gICAgICAgIHNlbGYu
Y29tcGFyZShyIiIia2V5OiBcXG5iIiIiLAorICAgICAgICBzZWxmLmNvbXBhcmUoYnIiIiJrZXk6
IFxcbmIiIiIsCiAgICAgICAgICAgICAgICAgICAgICBbKHRva2VuX3R5cGVzLnN0cmluZywgImtl
eSIpLAogICAgICAgICAgICAgICAgICAgICAgICh0b2tlbl90eXBlcy5zZXBhcmF0b3IsICI6Iiks
CiAgICAgICAgICAgICAgICAgICAgICAgKHRva2VuX3R5cGVzLnN0cmluZywgciJcbmIiKV0pCiAK
ICAgICBkZWYgdGVzdF9saXN0XzAoc2VsZik6Ci0gICAgICAgIHNlbGYuY29tcGFyZSgiIiIKKyAg
ICAgICAgc2VsZi5jb21wYXJlKGIiIiIKIGtleTogW10iIiIsCiAgICAgICAgICAgICBbKHRva2Vu
X3R5cGVzLnN0cmluZywgImtleSIpLAogICAgICAgICAgICAgICh0b2tlbl90eXBlcy5zZXBhcmF0
b3IsICI6IiksCkBAIC0xNTMsNyArMTQ3LDcgQEAga2V5OiBbXSIiIiwKICAgICAgICAgICAgICAo
dG9rZW5fdHlwZXMubGlzdF9lbmQsICJdIildKQogCiAgICAgZGVmIHRlc3RfbGlzdF8xKHNlbGYp
OgotICAgICAgICBzZWxmLmNvbXBhcmUoIiIiCisgICAgICAgIHNlbGYuY29tcGFyZShiIiIiCiBr
ZXk6IFthLCAiYiJdIiIiLAogICAgICAgICAgICAgWyh0b2tlbl90eXBlcy5zdHJpbmcsICJrZXki
KSwKICAgICAgICAgICAgICAodG9rZW5fdHlwZXMuc2VwYXJhdG9yLCAiOiIpLApAQCAtMTYzLDcg
KzE1Nyw3IEBAIGtleTogW2EsICJiIl0iIiIsCiAgICAgICAgICAgICAgKHRva2VuX3R5cGVzLmxp
c3RfZW5kLCAiXSIpXSkKIAogICAgIGRlZiB0ZXN0X2xpc3RfMihzZWxmKToKLSAgICAgICAgc2Vs
Zi5jb21wYXJlKCIiIgorICAgICAgICBzZWxmLmNvbXBhcmUoYiIiIgoga2V5OiBbYSwKICAgICAg
IGJdIiIiLAogICAgICAgICAgICAgWyh0b2tlbl90eXBlcy5zdHJpbmcsICJrZXkiKSwKQEAgLTE3
NCw3ICsxNjgsNyBAQCBrZXk6IFthLAogICAgICAgICAgICAgICh0b2tlbl90eXBlcy5saXN0X2Vu
ZCwgIl0iKV0pCiAKICAgICBkZWYgdGVzdF9saXN0XzMoc2VsZik6Ci0gICAgICAgIHNlbGYuY29t
cGFyZSgiIiIKKyAgICAgICAgc2VsZi5jb21wYXJlKGIiIiIKIGtleTogW2EsICNiXQogICAgICAg
Y10iIiIsCiAgICAgICAgICAgICBbKHRva2VuX3R5cGVzLnN0cmluZywgImtleSIpLApAQCAtMTg2
LDE2ICsxODAsMTYgQEAga2V5OiBbYSwgI2JdCiAKICAgICBkZWYgdGVzdF9saXN0XzQoc2VsZik6
CiAgICAgICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXMocGFyc2VyLlBhcnNlRXJyb3IpOgotICAg
ICAgICAgICAgc2VsZi50b2tlbml6ZSgiIiJrZXk6IFthICNiXQorICAgICAgICAgICAgc2VsZi50
b2tlbml6ZShiIiIia2V5OiBbYSAjYl0KICAgICAgICAgICAgIGNdIiIiKQogCiAgICAgZGVmIHRl
c3RfbGlzdF81KHNlbGYpOgogICAgICAgICB3aXRoIHNlbGYuYXNzZXJ0UmFpc2VzKHBhcnNlci5Q
YXJzZUVycm9yKToKLSAgICAgICAgICAgIHNlbGYudG9rZW5pemUoIiIia2V5OiBbYSBcXAorICAg
ICAgICAgICAgc2VsZi50b2tlbml6ZShiIiIia2V5OiBbYSBcXAogICAgICAgICAgICAgY10iIiIp
CiAKICAgICBkZWYgdGVzdF9saXN0XzYoc2VsZik6Ci0gICAgICAgIHNlbGYuY29tcGFyZSgiIiJr
ZXk6IFthICwgYl0iIiIsCisgICAgICAgIHNlbGYuY29tcGFyZShiIiIia2V5OiBbYSAsIGJdIiIi
LAogICAgICAgICAgICAgWyh0b2tlbl90eXBlcy5zdHJpbmcsICJrZXkiKSwKICAgICAgICAgICAg
ICAodG9rZW5fdHlwZXMuc2VwYXJhdG9yLCAiOiIpLAogICAgICAgICAgICAgICh0b2tlbl90eXBl
cy5saXN0X3N0YXJ0LCAiWyIpLApAQCAtMjA0LDcgKzE5OCw3IEBAIGtleTogW2EsICNiXQogICAg
ICAgICAgICAgICh0b2tlbl90eXBlcy5saXN0X2VuZCwgIl0iKV0pCiAKICAgICBkZWYgdGVzdF9l
eHByXzAoc2VsZik6Ci0gICAgICAgIHNlbGYuY29tcGFyZSgiIiIKKyAgICAgICAgc2VsZi5jb21w
YXJlKGIiIiIKIGtleToKICAgaWYgY29uZCA9PSAxOiB2YWx1ZSIiIiwKICAgICAgICAgICAgIFso
dG9rZW5fdHlwZXMuc3RyaW5nLCAia2V5IiksCkBAIC0yMTgsNyArMjEyLDcgQEAga2V5OgogICAg
ICAgICAgICAgICh0b2tlbl90eXBlcy5zdHJpbmcsICJ2YWx1ZSIpXSkKIAogICAgIGRlZiB0ZXN0
X2V4cHJfMShzZWxmKToKLSAgICAgICAgc2VsZi5jb21wYXJlKCIiIgorICAgICAgICBzZWxmLmNv
bXBhcmUoYiIiIgoga2V5OgogICBpZiBjb25kID09IDE6IHZhbHVlMQogICB2YWx1ZTIiIiIsCkBA
IC0yMzQsNyArMjI4LDcgQEAga2V5OgogICAgICAgICAgICAgICh0b2tlbl90eXBlcy5zdHJpbmcs
ICJ2YWx1ZTIiKV0pCiAKICAgICBkZWYgdGVzdF9leHByXzIoc2VsZik6Ci0gICAgICAgIHNlbGYu
Y29tcGFyZSgiIiIKKyAgICAgICAgc2VsZi5jb21wYXJlKGIiIiIKIGtleToKICAgaWYgY29uZD09
IjEiOiB2YWx1ZSIiIiwKICAgICAgICAgICAgIFsodG9rZW5fdHlwZXMuc3RyaW5nLCAia2V5Iiks
CkBAIC0yNDgsNyArMjQyLDcgQEAga2V5OgogICAgICAgICAgICAgICh0b2tlbl90eXBlcy5zdHJp
bmcsICJ2YWx1ZSIpXSkKIAogICAgIGRlZiB0ZXN0X2V4cHJfMyhzZWxmKToKLSAgICAgICAgc2Vs
Zi5jb21wYXJlKCIiIgorICAgICAgICBzZWxmLmNvbXBhcmUoYiIiIgoga2V5OgogICBpZiBjb25k
PT0xLjE6IHZhbHVlIiIiLAogICAgICAgICAgICAgWyh0b2tlbl90eXBlcy5zdHJpbmcsICJrZXki
KSwKQEAgLTI2Miw3ICsyNTYsNyBAQCBrZXk6CiAgICAgICAgICAgICAgKHRva2VuX3R5cGVzLnN0
cmluZywgInZhbHVlIildKQogCiAgICAgZGVmIHRlc3RfZXhwcl80KHNlbGYpOgotICAgICAgICBz
ZWxmLmNvbXBhcmUoIiIiCisgICAgICAgIHNlbGYuY29tcGFyZShiIiIiCiBrZXk6CiAgIGlmIGNv
bmQ9PTEuMSBhbmQgY29uZDIgPT0gImEiOiB2YWx1ZSIiIiwKICAgICAgICAgICAgIFsodG9rZW5f
dHlwZXMuc3RyaW5nLCAia2V5IiksCkBAIC0yODAsNyArMjc0LDcgQEAga2V5OgogICAgICAgICAg
ICAgICh0b2tlbl90eXBlcy5zdHJpbmcsICJ2YWx1ZSIpXSkKIAogICAgIGRlZiB0ZXN0X2V4cHJf
NShzZWxmKToKLSAgICAgICAgc2VsZi5jb21wYXJlKCIiIgorICAgICAgICBzZWxmLmNvbXBhcmUo
YiIiIgoga2V5OgogICBpZiAoY29uZD09MS4xICk6IHZhbHVlIiIiLAogICAgICAgICAgICAgWyh0
b2tlbl90eXBlcy5zdHJpbmcsICJrZXkiKSwKQEAgLTI5Niw3ICsyOTAsNyBAQCBrZXk6CiAgICAg
ICAgICAgICAgKHRva2VuX3R5cGVzLnN0cmluZywgInZhbHVlIildKQogCiAgICAgZGVmIHRlc3Rf
ZXhwcl82KHNlbGYpOgotICAgICAgICBzZWxmLmNvbXBhcmUoIiIiCisgICAgICAgIHNlbGYuY29t
cGFyZShiIiIiCiBrZXk6CiAgIGlmICJcXHR0ZXN0IjogdmFsdWUiIiIsCiAgICAgICAgICAgICBb
KHRva2VuX3R5cGVzLnN0cmluZywgImtleSIpLApAQCAtMzA5LDI3ICszMDMsMjQgQEAga2V5Ogog
CiAgICAgZGVmIHRlc3RfZXhwcl83KHNlbGYpOgogICAgICAgICB3aXRoIHNlbGYuYXNzZXJ0UmFp
c2VzKHBhcnNlci5QYXJzZUVycm9yKToKLSAgICAgICAgICAgIHNlbGYudG9rZW5pemUoCi0gICAg
ICAgICAgICAgICAgIiIiCisgICAgICAgICAgICBzZWxmLnRva2VuaXplKGIiIiIKIGtleToKICAg
aWYgMUE6IHZhbHVlIiIiKQogCiAgICAgZGVmIHRlc3RfZXhwcl84KHNlbGYpOgogICAgICAgICB3
aXRoIHNlbGYuYXNzZXJ0UmFpc2VzKHBhcnNlci5QYXJzZUVycm9yKToKLSAgICAgICAgICAgIHNl
bGYudG9rZW5pemUoCi0gICAgICAgICAgICAgICAgIiIiCisgICAgICAgICAgICBzZWxmLnRva2Vu
aXplKGIiIiIKIGtleToKICAgaWYgMWE6IHZhbHVlIiIiKQogCiAgICAgZGVmIHRlc3RfZXhwcl85
KHNlbGYpOgogICAgICAgICB3aXRoIHNlbGYuYXNzZXJ0UmFpc2VzKHBhcnNlci5QYXJzZUVycm9y
KToKLSAgICAgICAgICAgIHNlbGYudG9rZW5pemUoCi0gICAgICAgICAgICAgICAgIiIiCisgICAg
ICAgICAgICBzZWxmLnRva2VuaXplKGIiIiIKIGtleToKICAgaWYgMS4xLjE6IHZhbHVlIiIiKQog
CiAgICAgZGVmIHRlc3RfZXhwcl8xMChzZWxmKToKLSAgICAgICAgc2VsZi5jb21wYXJlKCIiIgor
ICAgICAgICBzZWxmLmNvbXBhcmUoYiIiIgoga2V5OgogICBpZiAxLjogdmFsdWUiIiIsCiAgICAg
ICAgICAgICBbKHRva2VuX3R5cGVzLnN0cmluZywgImtleSIpLApkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0
cnVubmVyL3dwdHJ1bm5lci5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci93cHRydW5uZXIucHkKaW5kZXggYWFi
NTk5NmFmZDkuLmNhYzE3MmE1OTQwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvd3B0cnVubmVy
LnB5CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvd3B0cnVubmVyL3dwdHJ1bm5lci93cHRydW5uZXIucHkKQEAgLTEsNCArMSw0IEBACi1mcm9t
IF9fZnV0dXJlX18gaW1wb3J0IHVuaWNvZGVfbGl0ZXJhbHMKK2Zyb20gX19mdXR1cmVfXyBpbXBv
cnQgcHJpbnRfZnVuY3Rpb24sIHVuaWNvZGVfbGl0ZXJhbHMKIAogaW1wb3J0IGpzb24KIGltcG9y
dCBvcwpAQCAtMTIsNiArMTIsNyBAQCBpbXBvcnQgdGVzdGxvYWRlcgogaW1wb3J0IHdwdGNvbW1h
bmRsaW5lCiBpbXBvcnQgd3B0bG9nZ2luZwogaW1wb3J0IHdwdHRlc3QKK2Zyb20gbW96bG9nIGlt
cG9ydCBjYXB0dXJlLCBoYW5kbGVycwogZnJvbSBmb250IGltcG9ydCBGb250SW5zdGFsbGVyCiBm
cm9tIHRlc3RydW5uZXIgaW1wb3J0IE1hbmFnZXJHcm91cAogZnJvbSBicm93c2Vycy5iYXNlIGlt
cG9ydCBOdWxsQnJvd3NlcgpAQCAtMzksNiArNDAsNyBAQCBtZXRhZGF0YSBmaWxlcyBhcmUgdXNl
ZCB0byBzdG9yZSB0aGUgZXhwZWN0ZWQgdGVzdCByZXN1bHRzLgogZGVmIHNldHVwX2xvZ2dpbmco
KmFyZ3MsICoqa3dhcmdzKToKICAgICBnbG9iYWwgbG9nZ2VyCiAgICAgbG9nZ2VyID0gd3B0bG9n
Z2luZy5zZXR1cCgqYXJncywgKiprd2FyZ3MpCisgICAgcmV0dXJuIGxvZ2dlcgogCiAKIGRlZiBn
ZXRfbG9hZGVyKHRlc3RfcGF0aHMsIHByb2R1Y3QsIGRlYnVnPU5vbmUsIHJ1bl9pbmZvX2V4dHJh
cz1Ob25lLCAqKmt3YXJncyk6CkBAIC00NywyOSArNDksMjkgQEAgZGVmIGdldF9sb2FkZXIodGVz
dF9wYXRocywgcHJvZHVjdCwgZGVidWc9Tm9uZSwgcnVuX2luZm9fZXh0cmFzPU5vbmUsICoqa3dh
cmdzKToKIAogICAgIHJ1bl9pbmZvID0gd3B0dGVzdC5nZXRfcnVuX2luZm8oa3dhcmdzWyJydW5f
aW5mbyJdLCBwcm9kdWN0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJv
d3Nlcl92ZXJzaW9uPWt3YXJncy5nZXQoImJyb3dzZXJfdmVyc2lvbiIpLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgYnJvd3Nlcl9jaGFubmVsPWt3YXJncy5nZXQoImJyb3dz
ZXJfY2hhbm5lbCIpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVyaWZ5
PWt3YXJncy5nZXQoInZlcmlmeSIpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgZGVidWc9ZGVidWcsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBleHRy
YXM9cnVuX2luZm9fZXh0cmFzKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ZXh0cmFzPXJ1bl9pbmZvX2V4dHJhcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGVuYWJsZV93ZWJyZW5kZXI9a3dhcmdzLmdldCgiZW5hYmxlX3dlYnJlbmRlciIpKQogCiAg
ICAgdGVzdF9tYW5pZmVzdHMgPSB0ZXN0bG9hZGVyLk1hbmlmZXN0TG9hZGVyKHRlc3RfcGF0aHMs
IGZvcmNlX21hbmlmZXN0X3VwZGF0ZT1rd2FyZ3NbIm1hbmlmZXN0X3VwZGF0ZSJdLAogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYW5pZmVzdF9kb3dubG9h
ZD1rd2FyZ3NbIm1hbmlmZXN0X2Rvd25sb2FkIl0pLmxvYWQoKQogCiAgICAgbWFuaWZlc3RfZmls
dGVycyA9IFtdCi0gICAgbWV0YV9maWx0ZXJzID0gW10KIAotICAgIGlmIGt3YXJnc1siaW5jbHVk
ZSJdIG9yIGt3YXJnc1siZXhjbHVkZSJdIG9yIGt3YXJnc1siaW5jbHVkZV9tYW5pZmVzdCJdOgor
ICAgIGlmIGt3YXJnc1siaW5jbHVkZSJdIG9yIGt3YXJnc1siZXhjbHVkZSJdIG9yIGt3YXJnc1si
aW5jbHVkZV9tYW5pZmVzdCJdIG9yIGt3YXJnc1siZGVmYXVsdF9leGNsdWRlIl06CiAgICAgICAg
IG1hbmlmZXN0X2ZpbHRlcnMuYXBwZW5kKHRlc3Rsb2FkZXIuVGVzdEZpbHRlcihpbmNsdWRlPWt3
YXJnc1siaW5jbHVkZSJdLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgZXhjbHVkZT1rd2FyZ3NbImV4Y2x1ZGUiXSwKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hbmlmZXN0X3BhdGg9a3dh
cmdzWyJpbmNsdWRlX21hbmlmZXN0Il0sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICB0ZXN0X21hbmlmZXN0cz10ZXN0X21hbmlmZXN0cykpCi0g
ICAgaWYga3dhcmdzWyJ0YWdzIl06Ci0gICAgICAgIG1ldGFfZmlsdGVycy5hcHBlbmQodGVzdGxv
YWRlci5UYWdGaWx0ZXIodGFncz1rd2FyZ3NbInRhZ3MiXSkpCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0X21hbmlmZXN0cz10ZXN0X21h
bmlmZXN0cywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGV4cGxpY2l0PWt3YXJnc1siZGVmYXVsdF9leGNsdWRlIl0pKQogCiAgICAgc3NsX2Vu
YWJsZWQgPSBzc2x1dGlscy5nZXRfY2xzKGt3YXJnc1sic3NsX3R5cGUiXSkuc3NsX2VuYWJsZWQK
ICAgICB0ZXN0X2xvYWRlciA9IHRlc3Rsb2FkZXIuVGVzdExvYWRlcih0ZXN0X21hbmlmZXN0cywK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrd2FyZ3NbInRlc3RfdHlw
ZXMiXSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBydW5faW5mbywK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYW5pZmVzdF9maWx0ZXJz
PW1hbmlmZXN0X2ZpbHRlcnMsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgbWV0YV9maWx0ZXJzPW1ldGFfZmlsdGVycywKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBjaHVua190eXBlPWt3YXJnc1siY2h1bmtfdHlwZSJdLAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvdGFsX2NodW5rcz1rd2FyZ3NbInRvdGFs
X2NodW5rcyJdLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNodW5r
X251bWJlcj1rd2FyZ3NbInRoaXNfY2h1bmsiXSwKQEAgLTg3LDcgKzg5LDcgQEAgZGVmIGxpc3Rf
dGVzdF9ncm91cHModGVzdF9wYXRocywgcHJvZHVjdCwgKiprd2FyZ3MpOgogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgcnVuX2luZm9fZXh0cmFzPXJ1bl9pbmZvX2V4dHJh
cywgKiprd2FyZ3MpCiAKICAgICBmb3IgaXRlbSBpbiBzb3J0ZWQodGVzdF9sb2FkZXIuZ3JvdXBz
KGt3YXJnc1sidGVzdF90eXBlcyJdKSk6Ci0gICAgICAgIHByaW50IGl0ZW0KKyAgICAgICAgcHJp
bnQoaXRlbSkKIAogCiBkZWYgbGlzdF9kaXNhYmxlZCh0ZXN0X3BhdGhzLCBwcm9kdWN0LCAqKmt3
YXJncyk6CkBAIC0xMDMsNyArMTA1LDcgQEAgZGVmIGxpc3RfZGlzYWJsZWQodGVzdF9wYXRocywg
cHJvZHVjdCwgKiprd2FyZ3MpOgogICAgIGZvciB0ZXN0X3R5cGUsIHRlc3RzIGluIHRlc3RfbG9h
ZGVyLmRpc2FibGVkX3Rlc3RzLml0ZXJpdGVtcygpOgogICAgICAgICBmb3IgdGVzdCBpbiB0ZXN0
czoKICAgICAgICAgICAgIHJ2LmFwcGVuZCh7InRlc3QiOiB0ZXN0LmlkLCAicmVhc29uIjogdGVz
dC5kaXNhYmxlZCgpfSkKLSAgICBwcmludCBqc29uLmR1bXBzKHJ2LCBpbmRlbnQ9MikKKyAgICBw
cmludChqc29uLmR1bXBzKHJ2LCBpbmRlbnQ9MikpCiAKIAogZGVmIGxpc3RfdGVzdHModGVzdF9w
YXRocywgcHJvZHVjdCwgKiprd2FyZ3MpOgpAQCAtMTE1LDQyICsxMTcsNDUgQEAgZGVmIGxpc3Rf
dGVzdHModGVzdF9wYXRocywgcHJvZHVjdCwgKiprd2FyZ3MpOgogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgcnVuX2luZm9fZXh0cmFzPXJ1bl9pbmZvX2V4dHJhcywgKipr
d2FyZ3MpCiAKICAgICBmb3IgdGVzdCBpbiB0ZXN0X2xvYWRlci50ZXN0X2lkczoKLSAgICAgICAg
cHJpbnQgdGVzdAorICAgICAgICBwcmludCh0ZXN0KQogCiAKIGRlZiBnZXRfcGF1c2VfYWZ0ZXJf
dGVzdCh0ZXN0X2xvYWRlciwgKiprd2FyZ3MpOgotICAgIHRvdGFsX3Rlc3RzID0gc3VtKGxlbihp
dGVtKSBmb3IgaXRlbSBpbiB0ZXN0X2xvYWRlci50ZXN0cy5pdGVydmFsdWVzKCkpCiAgICAgaWYg
a3dhcmdzWyJwYXVzZV9hZnRlcl90ZXN0Il0gaXMgTm9uZToKICAgICAgICAgaWYga3dhcmdzWyJy
ZXBlYXRfdW50aWxfdW5leHBlY3RlZCJdOgogICAgICAgICAgICAgcmV0dXJuIEZhbHNlCi0gICAg
ICAgIGlmIGt3YXJnc1sicmVwZWF0Il0gPT0gMSBhbmQga3dhcmdzWyJyZXJ1biJdID09IDEgYW5k
IHRvdGFsX3Rlc3RzID09IDE6CisgICAgICAgIGlmIGt3YXJnc1siaGVhZGxlc3MiXToKKyAgICAg
ICAgICAgIHJldHVybiBGYWxzZQorICAgICAgICB0ZXN0cyA9IHRlc3RfbG9hZGVyLnRlc3RzCisg
ICAgICAgIGlzX3NpbmdsZV90ZXN0aGFybmVzcyA9IChzdW0obGVuKGl0ZW0pIGZvciBpdGVtIGlu
IHRlc3RzLml0ZXJ2YWx1ZXMoKSkgPT0gMSBhbmQKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGxlbih0ZXN0cy5nZXQoInRlc3RoYXJuZXNzIiwgW10pKSA9PSAxKQorICAgICAgICBp
ZiBrd2FyZ3NbInJlcGVhdCJdID09IDEgYW5kIGt3YXJnc1sicmVydW4iXSA9PSAxIGFuZCBpc19z
aW5nbGVfdGVzdGhhcm5lc3M6CiAgICAgICAgICAgICByZXR1cm4gVHJ1ZQogICAgICAgICByZXR1
cm4gRmFsc2UKICAgICByZXR1cm4ga3dhcmdzWyJwYXVzZV9hZnRlcl90ZXN0Il0KIAogCiBkZWYg
cnVuX3Rlc3RzKGNvbmZpZywgdGVzdF9wYXRocywgcHJvZHVjdCwgKiprd2FyZ3MpOgotICAgIHdp
dGggd3B0bG9nZ2luZy5DYXB0dXJlSU8obG9nZ2VyLCBub3Qga3dhcmdzWyJub19jYXB0dXJlX3N0
ZGlvIl0pOgorICAgICIiIlNldCB1cCB0aGUgdGVzdCBlbnZpcm9ubWVudCwgbG9hZCB0aGUgbGlz
dCBvZiB0ZXN0cyB0byBiZSBleGVjdXRlZCwgYW5kCisgICAgaW52b2tlIHRoZSByZW1haW5kZXIg
b2YgdGhlIGNvZGUgdG8gZXhlY3V0ZSB0ZXN0cyIiIgorICAgIHdpdGggY2FwdHVyZS5DYXB0dXJl
SU8obG9nZ2VyLCBub3Qga3dhcmdzWyJub19jYXB0dXJlX3N0ZGlvIl0pOgogICAgICAgICBlbnYu
ZG9fZGVsYXllZF9pbXBvcnRzKGxvZ2dlciwgdGVzdF9wYXRocykKIAotICAgICAgICAoY2hlY2tf
YXJncywKLSAgICAgICAgIHRhcmdldF9icm93c2VyX2NscywgZ2V0X2Jyb3dzZXJfa3dhcmdzLAot
ICAgICAgICAgZXhlY3V0b3JfY2xhc3NlcywgZ2V0X2V4ZWN1dG9yX2t3YXJncywKLSAgICAgICAg
IGVudl9vcHRpb25zLCBnZXRfZW52X2V4dHJhcywgcnVuX2luZm9fZXh0cmFzKSA9IHByb2R1Y3Rz
LmxvYWRfcHJvZHVjdChjb25maWcsIHByb2R1Y3QpCisgICAgICAgIHByb2R1Y3QgPSBwcm9kdWN0
cy5sb2FkX3Byb2R1Y3QoY29uZmlnLCBwcm9kdWN0LCBsb2FkX2Nscz1UcnVlKQogCi0gICAgICAg
IGVudl9leHRyYXMgPSBnZXRfZW52X2V4dHJhcygqKmt3YXJncykKKyAgICAgICAgZW52X2V4dHJh
cyA9IHByb2R1Y3QuZ2V0X2Vudl9leHRyYXMoKiprd2FyZ3MpCiAKLSAgICAgICAgY2hlY2tfYXJn
cygqKmt3YXJncykKKyAgICAgICAgcHJvZHVjdC5jaGVja19hcmdzKCoqa3dhcmdzKQogCiAgICAg
ICAgIGlmIGt3YXJnc1siaW5zdGFsbF9mb250cyJdOgogICAgICAgICAgICAgZW52X2V4dHJhcy5h
cHBlbmQoRm9udEluc3RhbGxlcigKICAgICAgICAgICAgICAgICBmb250X2Rpcj1rd2FyZ3NbImZv
bnRfZGlyIl0sCi0gICAgICAgICAgICAgICAgYWhlbT1vcy5wYXRoLmpvaW4oa3dhcmdzWyJ0ZXN0
c19yb290Il0sICJmb250cy9BaGVtLnR0ZiIpCisgICAgICAgICAgICAgICAgYWhlbT1vcy5wYXRo
LmpvaW4odGVzdF9wYXRoc1siLyJdWyJ0ZXN0c19wYXRoIl0sICJmb250cy9BaGVtLnR0ZiIpCiAg
ICAgICAgICAgICApKQogCiAgICAgICAgIHJ1bl9pbmZvLCB0ZXN0X2xvYWRlciA9IGdldF9sb2Fk
ZXIodGVzdF9wYXRocywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBwcm9kdWN0LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJ1
bl9pbmZvX2V4dHJhcz1ydW5faW5mb19leHRyYXMoKiprd2FyZ3MpLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByb2R1Y3QubmFtZSwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBydW5faW5mb19leHRyYXM9cHJvZHVjdC5ydW5f
aW5mb19leHRyYXMoKiprd2FyZ3MpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICoqa3dhcmdzKQogCiAgICAgICAgIHRlc3Rfc291cmNlX2t3YXJncyA9IHsicHJv
Y2Vzc2VzIjoga3dhcmdzWyJwcm9jZXNzZXMiXX0KQEAgLTE2Myw5ICsxNjgsMTYgQEAgZGVmIHJ1
bl90ZXN0cyhjb25maWcsIHRlc3RfcGF0aHMsIHByb2R1Y3QsICoqa3dhcmdzKToKIAogICAgICAg
ICBsb2dnZXIuaW5mbygiVXNpbmcgJWkgY2xpZW50IHByb2Nlc3NlcyIgJSBrd2FyZ3NbInByb2Nl
c3NlcyJdKQogCisgICAgICAgIHNraXBwZWRfdGVzdHMgPSAwCiAgICAgICAgIHRlc3RfdG90YWwg
PSAwCiAgICAgICAgIHVuZXhwZWN0ZWRfdG90YWwgPSAwCiAKKyAgICAgICAgaWYgbGVuKHRlc3Rf
bG9hZGVyLnRlc3RfaWRzKSA9PSAwIGFuZCBrd2FyZ3NbInRlc3RfbGlzdCJdOgorICAgICAgICAg
ICAgbG9nZ2VyLmNyaXRpY2FsKCJVbmFibGUgdG8gZmluZCBhbnkgdGVzdHMgYXQgdGhlIHBhdGgo
cyk6IikKKyAgICAgICAgICAgIGZvciBwYXRoIGluIGt3YXJnc1sidGVzdF9saXN0Il06CisgICAg
ICAgICAgICAgICAgbG9nZ2VyLmNyaXRpY2FsKCIgICVzIiAlIHBhdGgpCisgICAgICAgICAgICBs
b2dnZXIuY3JpdGljYWwoIlBsZWFzZSBjaGVjayBzcGVsbGluZyBhbmQgbWFrZSBzdXJlIHRoZXJl
IGFyZSB0ZXN0cyBpbiB0aGUgc3BlY2lmaWVkIHBhdGgocykuIikKKyAgICAgICAgICAgIHJldHVy
biBGYWxzZQogICAgICAgICBrd2FyZ3NbInBhdXNlX2FmdGVyX3Rlc3QiXSA9IGdldF9wYXVzZV9h
ZnRlcl90ZXN0KHRlc3RfbG9hZGVyLCAqKmt3YXJncykKIAogICAgICAgICBzc2xfY29uZmlnID0g
eyJ0eXBlIjoga3dhcmdzWyJzc2xfdHlwZSJdLApAQCAtMTc0LDEwICsxODYsMTMgQEAgZGVmIHJ1
bl90ZXN0cyhjb25maWcsIHRlc3RfcGF0aHMsIHByb2R1Y3QsICoqa3dhcmdzKToKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJob3N0X2NlcnRfcGF0aCI6IGt3YXJnc1si
aG9zdF9jZXJ0X3BhdGgiXSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICJjYV9jZXJ0X3BhdGgiOiBrd2FyZ3NbImNhX2NlcnRfcGF0aCJdfX0KIAorICAgICAgICB0ZXN0
aGFybmVzc190aW1lb3V0X211bHRpcGxlciA9IHByb2R1Y3QuZ2V0X3RpbWVvdXRfbXVsdGlwbGll
cigidGVzdGhhcm5lc3MiLCBydW5faW5mbywgKiprd2FyZ3MpCisKICAgICAgICAgd2l0aCBlbnYu
VGVzdEVudmlyb25tZW50KHRlc3RfcGF0aHMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICB0ZXN0aGFybmVzc190aW1lb3V0X211bHRpcGxlciwKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGt3YXJnc1sicGF1c2VfYWZ0ZXJfdGVzdCJdLAogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAga3dhcmdzWyJkZWJ1Z19pbmZvIl0sCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBlbnZfb3B0aW9ucywKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHByb2R1Y3QuZW52X29wdGlvbnMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBzc2xfY29uZmlnLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW52X2V4
dHJhcykgYXMgdGVzdF9lbnZpcm9ubWVudDoKICAgICAgICAgICAgIHRyeToKQEAgLTE5OSw3ICsy
MTQsOSBAQCBkZWYgcnVuX3Rlc3RzKGNvbmZpZywgdGVzdF9wYXRocywgcHJvZHVjdCwgKiprd2Fy
Z3MpOgogCiAgICAgICAgICAgICAgICAgdGVzdF9jb3VudCA9IDAKICAgICAgICAgICAgICAgICB1
bmV4cGVjdGVkX2NvdW50ID0gMAotICAgICAgICAgICAgICAgIGxvZ2dlci5zdWl0ZV9zdGFydCh0
ZXN0X2xvYWRlci50ZXN0X2lkcywgbmFtZT0nd2ViLXBsYXRmb3JtLXRlc3QnLCBydW5faW5mbz1y
dW5faW5mbywKKyAgICAgICAgICAgICAgICBsb2dnZXIuc3VpdGVfc3RhcnQodGVzdF9sb2FkZXIu
dGVzdF9pZHMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU9J3dlYi1w
bGF0Zm9ybS10ZXN0JywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcnVuX2lu
Zm89cnVuX2luZm8sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4dHJhPXsi
cnVuX2J5X2RpciI6IGt3YXJnc1sicnVuX2J5X2RpciJdfSkKICAgICAgICAgICAgICAgICBmb3Ig
dGVzdF90eXBlIGluIGt3YXJnc1sidGVzdF90eXBlcyJdOgogICAgICAgICAgICAgICAgICAgICBs
b2dnZXIuaW5mbygiUnVubmluZyAlcyB0ZXN0cyIgJSB0ZXN0X3R5cGUpCkBAIC0yMTIsMzYgKzIy
OSwzOCBAQCBkZWYgcnVuX3Rlc3RzKGNvbmZpZywgdGVzdF9wYXRocywgcHJvZHVjdCwgKiprd2Fy
Z3MpOgogICAgICAgICAgICAgICAgICAgICBpZiB0ZXN0X3R5cGUgPT0gIndkc3BlYyI6CiAgICAg
ICAgICAgICAgICAgICAgICAgICBicm93c2VyX2NscyA9IE51bGxCcm93c2VyCiAgICAgICAgICAg
ICAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAgICAgICAgICAgICBicm93c2VyX2NscyA9IHRh
cmdldF9icm93c2VyX2NscworICAgICAgICAgICAgICAgICAgICAgICAgYnJvd3Nlcl9jbHMgPSBw
cm9kdWN0LmJyb3dzZXJfY2xzCiAKLSAgICAgICAgICAgICAgICAgICAgYnJvd3Nlcl9rd2FyZ3Mg
PSBnZXRfYnJvd3Nlcl9rd2FyZ3ModGVzdF90eXBlLAotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBydW5faW5mbywKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uZmlnPXRlc3RfZW52
aXJvbm1lbnQuY29uZmlnLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAqKmt3YXJncykKKyAgICAgICAgICAgICAgICAgICAgYnJvd3Nlcl9r
d2FyZ3MgPSBwcm9kdWN0LmdldF9icm93c2VyX2t3YXJncyh0ZXN0X3R5cGUsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcnVu
X2luZm8sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgY29uZmlnPXRlc3RfZW52aXJvbm1lbnQuY29uZmlnLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoq
a3dhcmdzKQogCi0gICAgICAgICAgICAgICAgICAgIGV4ZWN1dG9yX2NscyA9IGV4ZWN1dG9yX2Ns
YXNzZXMuZ2V0KHRlc3RfdHlwZSkKLSAgICAgICAgICAgICAgICAgICAgZXhlY3V0b3Jfa3dhcmdz
ID0gZ2V0X2V4ZWN1dG9yX2t3YXJncyh0ZXN0X3R5cGUsCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGVzdF9lbnZpcm9ubWVudC5jb25m
aWcsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgdGVzdF9lbnZpcm9ubWVudC5jYWNoZV9tYW5hZ2VyLAotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJ1bl9pbmZvLAotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoqa3dh
cmdzKQorICAgICAgICAgICAgICAgICAgICBleGVjdXRvcl9jbHMgPSBwcm9kdWN0LmV4ZWN1dG9y
X2NsYXNzZXMuZ2V0KHRlc3RfdHlwZSkKKyAgICAgICAgICAgICAgICAgICAgZXhlY3V0b3Jfa3dh
cmdzID0gcHJvZHVjdC5nZXRfZXhlY3V0b3Jfa3dhcmdzKHRlc3RfdHlwZSwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRl
c3RfZW52aXJvbm1lbnQuY29uZmlnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGVzdF9lbnZpcm9ubWVudC5jYWNoZV9t
YW5hZ2VyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgcnVuX2luZm8sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKmt3YXJncykKIAogICAgICAg
ICAgICAgICAgICAgICBpZiBleGVjdXRvcl9jbHMgaXMgTm9uZToKICAgICAgICAgICAgICAgICAg
ICAgICAgIGxvZ2dlci5lcnJvcigiVW5zdXBwb3J0ZWQgdGVzdCB0eXBlICVzIGZvciBwcm9kdWN0
ICVzIiAlCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHRlc3RfdHlwZSwg
cHJvZHVjdCkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHRlc3RfdHlw
ZSwgcHJvZHVjdC5uYW1lKSkKICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlCiAKICAg
ICAgICAgICAgICAgICAgICAgZm9yIHRlc3QgaW4gdGVzdF9sb2FkZXIuZGlzYWJsZWRfdGVzdHNb
dGVzdF90eXBlXToKICAgICAgICAgICAgICAgICAgICAgICAgIGxvZ2dlci50ZXN0X3N0YXJ0KHRl
c3QuaWQpCiAgICAgICAgICAgICAgICAgICAgICAgICBsb2dnZXIudGVzdF9lbmQodGVzdC5pZCwg
c3RhdHVzPSJTS0lQIikKKyAgICAgICAgICAgICAgICAgICAgICAgIHNraXBwZWRfdGVzdHMgKz0g
MQogCiAgICAgICAgICAgICAgICAgICAgIGlmIHRlc3RfdHlwZSA9PSAidGVzdGhhcm5lc3MiOgog
ICAgICAgICAgICAgICAgICAgICAgICAgcnVuX3Rlc3RzID0geyJ0ZXN0aGFybmVzcyI6IFtdfQog
ICAgICAgICAgICAgICAgICAgICAgICAgZm9yIHRlc3QgaW4gdGVzdF9sb2FkZXIudGVzdHNbInRl
c3RoYXJuZXNzIl06Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRlc3QudGVzdGRy
aXZlciBhbmQgbm90IGV4ZWN1dG9yX2Nscy5zdXBwb3J0c190ZXN0ZHJpdmVyKSBvciAoCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0Lmpzc2hlbGwgYW5kIG5vdCBleGVj
dXRvcl9jbHMuc3VwcG9ydHNfanNzaGVsbCk6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
aWYgKCh0ZXN0LnRlc3Rkcml2ZXIgYW5kIG5vdCBleGVjdXRvcl9jbHMuc3VwcG9ydHNfdGVzdGRy
aXZlcikgb3IKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHRlc3QuanNzaGVsbCBh
bmQgbm90IGV4ZWN1dG9yX2Nscy5zdXBwb3J0c19qc3NoZWxsKSk6CiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGxvZ2dlci50ZXN0X3N0YXJ0KHRlc3QuaWQpCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGxvZ2dlci50ZXN0X2VuZCh0ZXN0LmlkLCBzdGF0dXM9IlNLSVAi
KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBza2lwcGVkX3Rlc3RzICs9IDEKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlOgogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBydW5fdGVzdHNbInRlc3RoYXJuZXNzIl0uYXBwZW5kKHRlc3QpCiAgICAgICAgICAg
ICAgICAgICAgIGVsc2U6CkBAIC0yNTksMjYgKzI3OCwzNiBAQCBkZWYgcnVuX3Rlc3RzKGNvbmZp
ZywgdGVzdF9wYXRocywgcHJvZHVjdCwgKiprd2FyZ3MpOgogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBrd2FyZ3NbInBhdXNlX2FmdGVyX3Rlc3QiXSwKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAga3dhcmdzWyJwYXVzZV9vbl91bmV4cGVjdGVkIl0s
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGt3YXJnc1sicmVzdGFydF9v
bl91bmV4cGVjdGVkIl0sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGt3
YXJnc1siZGVidWdfaW5mbyJdKSBhcyBtYW5hZ2VyX2dyb3VwOgorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBrd2FyZ3NbImRlYnVnX2luZm8iXSwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgbm90IGt3YXJnc1sibm9fY2FwdHVyZV9zdGRpbyJdKSBh
cyBtYW5hZ2VyX2dyb3VwOgogICAgICAgICAgICAgICAgICAgICAgICAgdHJ5OgogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIG1hbmFnZXJfZ3JvdXAucnVuKHRlc3RfdHlwZSwgcnVuX3Rlc3Rz
KQogICAgICAgICAgICAgICAgICAgICAgICAgZXhjZXB0IEtleWJvYXJkSW50ZXJydXB0OgogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGxvZ2dlci5jcml0aWNhbCgiTWFpbiB0aHJlYWQgZ290
IHNpZ25hbCIpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFuYWdlcl9ncm91cC5zdG9w
KCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICByYWlzZQotICAgICAgICAgICAgICAgICAg
ICB0ZXN0X2NvdW50ICs9IG1hbmFnZXJfZ3JvdXAudGVzdF9jb3VudCgpCi0gICAgICAgICAgICAg
ICAgICAgIHVuZXhwZWN0ZWRfY291bnQgKz0gbWFuYWdlcl9ncm91cC51bmV4cGVjdGVkX2NvdW50
KCkKKyAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RfY291bnQgKz0gbWFuYWdlcl9ncm91cC50
ZXN0X2NvdW50KCkKKyAgICAgICAgICAgICAgICAgICAgICAgIHVuZXhwZWN0ZWRfY291bnQgKz0g
bWFuYWdlcl9ncm91cC51bmV4cGVjdGVkX2NvdW50KCkKIAogICAgICAgICAgICAgICAgIHRlc3Rf
dG90YWwgKz0gdGVzdF9jb3VudAogICAgICAgICAgICAgICAgIHVuZXhwZWN0ZWRfdG90YWwgKz0g
dW5leHBlY3RlZF9jb3VudAogICAgICAgICAgICAgICAgIGxvZ2dlci5pbmZvKCJHb3QgJWkgdW5l
eHBlY3RlZCByZXN1bHRzIiAlIHVuZXhwZWN0ZWRfY291bnQpCisgICAgICAgICAgICAgICAgbG9n
Z2VyLnN1aXRlX2VuZCgpCiAgICAgICAgICAgICAgICAgaWYgcmVwZWF0X3VudGlsX3VuZXhwZWN0
ZWQgYW5kIHVuZXhwZWN0ZWRfdG90YWwgPiAwOgogICAgICAgICAgICAgICAgICAgICBicmVhawot
ICAgICAgICAgICAgICAgIGxvZ2dlci5zdWl0ZV9lbmQoKQorICAgICAgICAgICAgICAgIGlmIHJl
cGVhdF9jb3VudCA9PSAxIGFuZCBsZW4odGVzdF9sb2FkZXIudGVzdF9pZHMpID09IHNraXBwZWRf
dGVzdHM6CisgICAgICAgICAgICAgICAgICAgIGJyZWFrCiAKICAgICBpZiB0ZXN0X3RvdGFsID09
IDA6Ci0gICAgICAgIGxvZ2dlci5lcnJvcigiTm8gdGVzdHMgcmFuIikKLSAgICAgICAgcmV0dXJu
IEZhbHNlCisgICAgICAgIGlmIHNraXBwZWRfdGVzdHMgPiAwOgorICAgICAgICAgICAgbG9nZ2Vy
Lndhcm5pbmcoIkFsbCByZXF1ZXN0ZWQgdGVzdHMgd2VyZSBza2lwcGVkIikKKyAgICAgICAgZWxz
ZToKKyAgICAgICAgICAgIGlmIGt3YXJnc1siZGVmYXVsdF9leGNsdWRlIl06CisgICAgICAgICAg
ICAgICAgbG9nZ2VyLmluZm8oIk5vIHRlc3RzIHJhbiIpCisgICAgICAgICAgICAgICAgcmV0dXJu
IFRydWUKKyAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgbG9nZ2VyLmNyaXRpY2Fs
KCJObyB0ZXN0cyByYW4iKQorICAgICAgICAgICAgICAgIHJldHVybiBGYWxzZQogCiAgICAgaWYg
dW5leHBlY3RlZF90b3RhbCBhbmQgbm90IGt3YXJnc1siZmFpbF9vbl91bmV4cGVjdGVkIl06CiAg
ICAgICAgIGxvZ2dlci5pbmZvKCJUb2xlcmF0aW5nICVzIHVuZXhwZWN0ZWQgcmVzdWx0cyIgJSB1
bmV4cGVjdGVkX3RvdGFsKQpAQCAtMzA3LDE2ICszMzYsMjcgQEAgZGVmIGNoZWNrX3N0YWJpbGl0
eSgqKmt3YXJncyk6CiAKIAogZGVmIHN0YXJ0KCoqa3dhcmdzKToKLSAgICBpZiBrd2FyZ3NbImxp
c3RfdGVzdF9ncm91cHMiXToKLSAgICAgICAgbGlzdF90ZXN0X2dyb3VwcygqKmt3YXJncykKLSAg
ICBlbGlmIGt3YXJnc1sibGlzdF9kaXNhYmxlZCJdOgotICAgICAgICBsaXN0X2Rpc2FibGVkKCoq
a3dhcmdzKQotICAgIGVsaWYga3dhcmdzWyJsaXN0X3Rlc3RzIl06Ci0gICAgICAgIGxpc3RfdGVz
dHMoKiprd2FyZ3MpCi0gICAgZWxpZiBrd2FyZ3NbInZlcmlmeSJdIG9yIGt3YXJnc1sic3RhYmls
aXR5Il06Ci0gICAgICAgIGNoZWNrX3N0YWJpbGl0eSgqKmt3YXJncykKLSAgICBlbHNlOgotICAg
ICAgICByZXR1cm4gbm90IHJ1bl90ZXN0cygqKmt3YXJncykKKyAgICBhc3NlcnQgbG9nZ2VyIGlz
IG5vdCBOb25lCisKKyAgICBsb2dnZWRfY3JpdGljYWwgPSB3cHRsb2dnaW5nLkxvZ2dlZEFib3Zl
TGV2ZWxIYW5kbGVyKCJDUklUSUNBTCIpCisgICAgaGFuZGxlciA9IGhhbmRsZXJzLkxvZ0xldmVs
RmlsdGVyKGxvZ2dlZF9jcml0aWNhbCwgIkNSSVRJQ0FMIikKKyAgICBsb2dnZXIuYWRkX2hhbmRs
ZXIoaGFuZGxlcikKKworICAgIHJ2ID0gRmFsc2UKKyAgICB0cnk6CisgICAgICAgIGlmIGt3YXJn
c1sibGlzdF90ZXN0X2dyb3VwcyJdOgorICAgICAgICAgICAgbGlzdF90ZXN0X2dyb3VwcygqKmt3
YXJncykKKyAgICAgICAgZWxpZiBrd2FyZ3NbImxpc3RfZGlzYWJsZWQiXToKKyAgICAgICAgICAg
IGxpc3RfZGlzYWJsZWQoKiprd2FyZ3MpCisgICAgICAgIGVsaWYga3dhcmdzWyJsaXN0X3Rlc3Rz
Il06CisgICAgICAgICAgICBsaXN0X3Rlc3RzKCoqa3dhcmdzKQorICAgICAgICBlbGlmIGt3YXJn
c1sidmVyaWZ5Il0gb3Iga3dhcmdzWyJzdGFiaWxpdHkiXToKKyAgICAgICAgICAgIHJ2ID0gY2hl
Y2tfc3RhYmlsaXR5KCoqa3dhcmdzKSBvciBsb2dnZWRfY3JpdGljYWwuaGFzX2xvZworICAgICAg
ICBlbHNlOgorICAgICAgICAgICAgcnYgPSBub3QgcnVuX3Rlc3RzKCoqa3dhcmdzKSBvciBsb2dn
ZWRfY3JpdGljYWwuaGFzX2xvZworICAgIGZpbmFsbHk6CisgICAgICAgIGxvZ2dlci5yZW1vdmVf
aGFuZGxlcihoYW5kbGVyKQorICAgIHJldHVybiBydgogCiAKIGRlZiBtYWluKCk6CkBAIC0zMzQs
NyArMzc0LDcgQEAgZGVmIG1haW4oKToKICAgICAgICAgaWYga3dhcmdzWyJwZGIiXToKICAgICAg
ICAgICAgIGltcG9ydCBwZGIKICAgICAgICAgICAgIGltcG9ydCB0cmFjZWJhY2sKLSAgICAgICAg
ICAgIHByaW50IHRyYWNlYmFjay5mb3JtYXRfZXhjKCkKKyAgICAgICAgICAgIHByaW50KHRyYWNl
YmFjay5mb3JtYXRfZXhjKCkpCiAgICAgICAgICAgICBwZGIucG9zdF9tb3J0ZW0oKQogICAgICAg
ICBlbHNlOgogICAgICAgICAgICAgcmFpc2UKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci93cHR0
ZXN0LnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy93cHRydW5uZXIvd3B0cnVubmVyL3dwdHRlc3QucHkKaW5kZXggYzI5YmE5NzRhOTkuLjE5ZTgz
OWQyMWJjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvd3B0dGVzdC5weQorKysgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRy
dW5uZXIvd3B0dGVzdC5weQpAQCAtMSwyMCArMSwyOCBAQAogaW1wb3J0IG9zCiBpbXBvcnQgc3Vi
cHJvY2VzcworZnJvbSBzaXgubW92ZXMudXJsbGliLnBhcnNlIGltcG9ydCB1cmxqb2luCiBmcm9t
IGNvbGxlY3Rpb25zIGltcG9ydCBkZWZhdWx0ZGljdAogCi1mcm9tIHdwdG1hbmlmZXN0LnBhcnNl
ciBpbXBvcnQgYXRvbXMKK2Zyb20gLndwdG1hbmlmZXN0LnBhcnNlciBpbXBvcnQgYXRvbXMKIAog
YXRvbV9yZXNldCA9IGF0b21zWyJSZXNldCJdCi1lbmFibGVkX3Rlc3RzID0gc2V0KFsidGVzdGhh
cm5lc3MiLCAicmVmdGVzdCIsICJ3ZHNwZWMiXSkKK2VuYWJsZWRfdGVzdHMgPSB7InRlc3RoYXJu
ZXNzIiwgInJlZnRlc3QiLCAid2RzcGVjIn0KIAogCiBjbGFzcyBSZXN1bHQob2JqZWN0KToKLSAg
ICBkZWYgX19pbml0X18oc2VsZiwgc3RhdHVzLCBtZXNzYWdlLCBleHBlY3RlZD1Ob25lLCBleHRy
YT1Ob25lLCBzdGFjaz1Ob25lKToKKyAgICBkZWYgX19pbml0X18oc2VsZiwKKyAgICAgICAgICAg
ICAgICAgc3RhdHVzLAorICAgICAgICAgICAgICAgICBtZXNzYWdlLAorICAgICAgICAgICAgICAg
ICBleHBlY3RlZD1Ob25lLAorICAgICAgICAgICAgICAgICBleHRyYT1Ob25lLAorICAgICAgICAg
ICAgICAgICBzdGFjaz1Ob25lLAorICAgICAgICAgICAgICAgICBrbm93bl9pbnRlcm1pdHRlbnQ9
Tm9uZSk6CiAgICAgICAgIGlmIHN0YXR1cyBub3QgaW4gc2VsZi5zdGF0dXNlczoKICAgICAgICAg
ICAgIHJhaXNlIFZhbHVlRXJyb3IoIlVucmVjb2duaXNlZCBzdGF0dXMgJXMiICUgc3RhdHVzKQog
ICAgICAgICBzZWxmLnN0YXR1cyA9IHN0YXR1cwogICAgICAgICBzZWxmLm1lc3NhZ2UgPSBtZXNz
YWdlCiAgICAgICAgIHNlbGYuZXhwZWN0ZWQgPSBleHBlY3RlZAorICAgICAgICBzZWxmLmtub3du
X2ludGVybWl0dGVudCA9IGtub3duX2ludGVybWl0dGVudCBpZiBrbm93bl9pbnRlcm1pdHRlbnQg
aXMgbm90IE5vbmUgZWxzZSBbXQogICAgICAgICBzZWxmLmV4dHJhID0gZXh0cmEgaWYgZXh0cmEg
aXMgbm90IE5vbmUgZWxzZSB7fQogICAgICAgICBzZWxmLnN0YWNrID0gc3RhY2sKIApAQCAtMjMs
NyArMzEsNyBAQCBjbGFzcyBSZXN1bHQob2JqZWN0KToKIAogCiBjbGFzcyBTdWJ0ZXN0UmVzdWx0
KG9iamVjdCk6Ci0gICAgZGVmIF9faW5pdF9fKHNlbGYsIG5hbWUsIHN0YXR1cywgbWVzc2FnZSwg
c3RhY2s9Tm9uZSwgZXhwZWN0ZWQ9Tm9uZSk6CisgICAgZGVmIF9faW5pdF9fKHNlbGYsIG5hbWUs
IHN0YXR1cywgbWVzc2FnZSwgc3RhY2s9Tm9uZSwgZXhwZWN0ZWQ9Tm9uZSwga25vd25faW50ZXJt
aXR0ZW50PU5vbmUpOgogICAgICAgICBzZWxmLm5hbWUgPSBuYW1lCiAgICAgICAgIGlmIHN0YXR1
cyBub3QgaW4gc2VsZi5zdGF0dXNlczoKICAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoIlVu
cmVjb2duaXNlZCBzdGF0dXMgJXMiICUgc3RhdHVzKQpAQCAtMzEsNiArMzksNyBAQCBjbGFzcyBT
dWJ0ZXN0UmVzdWx0KG9iamVjdCk6CiAgICAgICAgIHNlbGYubWVzc2FnZSA9IG1lc3NhZ2UKICAg
ICAgICAgc2VsZi5zdGFjayA9IHN0YWNrCiAgICAgICAgIHNlbGYuZXhwZWN0ZWQgPSBleHBlY3Rl
ZAorICAgICAgICBzZWxmLmtub3duX2ludGVybWl0dGVudCA9IGtub3duX2ludGVybWl0dGVudCBp
ZiBrbm93bl9pbnRlcm1pdHRlbnQgaXMgbm90IE5vbmUgZWxzZSBbXQogCiAgICAgZGVmIF9fcmVw
cl9fKHNlbGYpOgogICAgICAgICByZXR1cm4gIjwlcy4lcyAlcyAlcz4iICUgKHNlbGYuX19tb2R1
bGVfXywgc2VsZi5fX2NsYXNzX18uX19uYW1lX18sIHNlbGYubmFtZSwgc2VsZi5zdGF0dXMpCkBA
IC0zOCwyOCArNDcsMjggQEAgY2xhc3MgU3VidGVzdFJlc3VsdChvYmplY3QpOgogCiBjbGFzcyBU
ZXN0aGFybmVzc1Jlc3VsdChSZXN1bHQpOgogICAgIGRlZmF1bHRfZXhwZWN0ZWQgPSAiT0siCi0g
ICAgc3RhdHVzZXMgPSBzZXQoWyJPSyIsICJFUlJPUiIsICJJTlRFUk5BTC1FUlJPUiIsICJUSU1F
T1VUIiwgIkVYVEVSTkFMLVRJTUVPVVQiLCAiQ1JBU0giXSkKKyAgICBzdGF0dXNlcyA9IHsiT0si
LCAiRVJST1IiLCAiSU5URVJOQUwtRVJST1IiLCAiVElNRU9VVCIsICJFWFRFUk5BTC1USU1FT1VU
IiwgIkNSQVNIIiwgIlBSRUNPTkRJVElPTl9GQUlMRUQifQogCiAKIGNsYXNzIFRlc3RoYXJuZXNz
U3VidGVzdFJlc3VsdChTdWJ0ZXN0UmVzdWx0KToKICAgICBkZWZhdWx0X2V4cGVjdGVkID0gIlBB
U1MiCi0gICAgc3RhdHVzZXMgPSBzZXQoWyJQQVNTIiwgIkZBSUwiLCAiVElNRU9VVCIsICJOT1RS
VU4iXSkKKyAgICBzdGF0dXNlcyA9IHsiUEFTUyIsICJGQUlMIiwgIlRJTUVPVVQiLCAiTk9UUlVO
IiwgIlBSRUNPTkRJVElPTl9GQUlMRUQifQogCiAKIGNsYXNzIFJlZnRlc3RSZXN1bHQoUmVzdWx0
KToKICAgICBkZWZhdWx0X2V4cGVjdGVkID0gIlBBU1MiCi0gICAgc3RhdHVzZXMgPSBzZXQoWyJQ
QVNTIiwgIkZBSUwiLCAiRVJST1IiLCAiSU5URVJOQUwtRVJST1IiLCAiVElNRU9VVCIsICJFWFRF
Uk5BTC1USU1FT1VUIiwKLSAgICAgICAgICAgICAgICAgICAgIkNSQVNIIl0pCisgICAgc3RhdHVz
ZXMgPSB7IlBBU1MiLCAiRkFJTCIsICJFUlJPUiIsICJJTlRFUk5BTC1FUlJPUiIsICJUSU1FT1VU
IiwgIkVYVEVSTkFMLVRJTUVPVVQiLAorICAgICAgICAgICAgICAgICJDUkFTSCJ9CiAKIAogY2xh
c3MgV2RzcGVjUmVzdWx0KFJlc3VsdCk6CiAgICAgZGVmYXVsdF9leHBlY3RlZCA9ICJPSyIKLSAg
ICBzdGF0dXNlcyA9IHNldChbIk9LIiwgIkVSUk9SIiwgIklOVEVSTkFMLUVSUk9SIiwgIlRJTUVP
VVQiLCAiRVhURVJOQUwtVElNRU9VVCIsICJDUkFTSCJdKQorICAgIHN0YXR1c2VzID0geyJPSyIs
ICJFUlJPUiIsICJJTlRFUk5BTC1FUlJPUiIsICJUSU1FT1VUIiwgIkVYVEVSTkFMLVRJTUVPVVQi
LCAiQ1JBU0gifQogCiAKIGNsYXNzIFdkc3BlY1N1YnRlc3RSZXN1bHQoU3VidGVzdFJlc3VsdCk6
CiAgICAgZGVmYXVsdF9leHBlY3RlZCA9ICJQQVNTIgotICAgIHN0YXR1c2VzID0gc2V0KFsiUEFT
UyIsICJGQUlMIiwgIkVSUk9SIl0pCisgICAgc3RhdHVzZXMgPSB7IlBBU1MiLCAiRkFJTCIsICJF
UlJPUiJ9CiAKIAogZGVmIGdldF9ydW5faW5mbyhtZXRhZGF0YV9yb290LCBwcm9kdWN0LCAqKmt3
YXJncyk6CkBAIC02Nyw3ICs3NiwxMiBAQCBkZWYgZ2V0X3J1bl9pbmZvKG1ldGFkYXRhX3Jvb3Qs
IHByb2R1Y3QsICoqa3dhcmdzKToKIAogCiBjbGFzcyBSdW5JbmZvKGRpY3QpOgotICAgIGRlZiBf
X2luaXRfXyhzZWxmLCBtZXRhZGF0YV9yb290LCBwcm9kdWN0LCBkZWJ1ZywgYnJvd3Nlcl92ZXJz
aW9uPU5vbmUsIGV4dHJhcz1Ob25lKToKKyAgICBkZWYgX19pbml0X18oc2VsZiwgbWV0YWRhdGFf
cm9vdCwgcHJvZHVjdCwgZGVidWcsCisgICAgICAgICAgICAgICAgIGJyb3dzZXJfdmVyc2lvbj1O
b25lLAorICAgICAgICAgICAgICAgICBicm93c2VyX2NoYW5uZWw9Tm9uZSwKKyAgICAgICAgICAg
ICAgICAgdmVyaWZ5PU5vbmUsCisgICAgICAgICAgICAgICAgIGV4dHJhcz1Ob25lLAorICAgICAg
ICAgICAgICAgICBlbmFibGVfd2VicmVuZGVyPUZhbHNlKToKICAgICAgICAgaW1wb3J0IG1vemlu
Zm8KICAgICAgICAgc2VsZi5fdXBkYXRlX21vemluZm8obWV0YWRhdGFfcm9vdCkKICAgICAgICAg
c2VsZi51cGRhdGUobW96aW5mby5pbmZvKQpAQCAtODksOSArMTAzLDMxIEBAIGNsYXNzIFJ1bklu
Zm8oZGljdCk6CiAgICAgICAgICAgICBzZWxmWyJkZWJ1ZyJdID0gRmFsc2UKICAgICAgICAgaWYg
YnJvd3Nlcl92ZXJzaW9uOgogICAgICAgICAgICAgc2VsZlsiYnJvd3Nlcl92ZXJzaW9uIl0gPSBi
cm93c2VyX3ZlcnNpb24KKyAgICAgICAgaWYgYnJvd3Nlcl9jaGFubmVsOgorICAgICAgICAgICAg
c2VsZlsiYnJvd3Nlcl9jaGFubmVsIl0gPSBicm93c2VyX2NoYW5uZWwKKworICAgICAgICBzZWxm
WyJ2ZXJpZnkiXSA9IHZlcmlmeQorICAgICAgICBpZiAid2FzbSIgbm90IGluIHNlbGY6CisgICAg
ICAgICAgICBzZWxmWyJ3YXNtIl0gPSBGYWxzZQogICAgICAgICBpZiBleHRyYXMgaXMgbm90IE5v
bmU6CiAgICAgICAgICAgICBzZWxmLnVwZGF0ZShleHRyYXMpCiAKKyAgICAgICAgIyBVbnRpbCB0
aGUgdGVzdCBoYXJuZXNzIGNhbiB1bmRlcnN0YW5kIGRlZmF1bHQgcHJlZiB2YWx1ZXMsCisgICAg
ICAgICMgKGh0dHBzOi8vYnVnemlsbGEubW96aWxsYS5vcmcvc2hvd19idWcuY2dpP2lkPTE1Nzc5
MTIpIHRoaXMgdmFsdWUKKyAgICAgICAgIyBzaG91bGQgYnkgc3luY2hyb25pemVkIHdpdGggdGhl
IGRlZmF1bHQgcHJlZiB2YWx1ZSBpbmRpY2F0ZWQgaW4KKyAgICAgICAgIyBTdGF0aWNQcmVmTGlz
dC55YW1sLgorICAgICAgICAjCisgICAgICAgICMgQ3VycmVudGx5IGZvciBhdXRvbWF0aW9uLCB0
aGUgcHJlZiAoYW5kIGBzdy1lMTBzYCkgZGVmYXVsdHMgdG8gdHJ1ZSBpbgorICAgICAgICAjIG5p
Z2h0bHkgYnVpbGRzIGFuZCBmYWxzZSBvdGhlcndpc2UgYnV0IGNhbiBiZSBvdmVycmlkZGVuIHdp
dGgKKyAgICAgICAgIyBgLS1zZXRwcmVmYC4gSWYgb3ZlcnJpZGRlbiwgdGhlIHZhbHVlIHdvdWxk
IGJlIGluaXRpYWxpemVkIGluCisgICAgICAgICMgYHJ1bl9pbmZvX2V4dHJhc2AgYW5kIGJlIHN1
cHBsaWVkIGluIHRoZSBgZXh0cmFzYCBwYXJhbWV0ZXIuCisgICAgICAgIGlmICJzdy1lMTBzIiBu
b3QgaW4gc2VsZjoKKyAgICAgICAgICAgIHNlbGZbInN3LWUxMHMiXSA9IHNlbGYuZ2V0KCJuaWdo
dGx5X2J1aWxkIiwgRmFsc2UpCisKKyAgICAgICAgc2VsZlsiaGVhZGxlc3MiXSA9IGV4dHJhcy5n
ZXQoImhlYWRsZXNzIiwgRmFsc2UpCisgICAgICAgIHNlbGZbIndlYnJlbmRlciJdID0gZW5hYmxl
X3dlYnJlbmRlcgorCisKICAgICBkZWYgX3VwZGF0ZV9tb3ppbmZvKHNlbGYsIG1ldGFkYXRhX3Jv
b3QpOgogICAgICAgICAiIiJBZGQgZXh0cmEgYnVpbGQgaW5mb3JtYXRpb24gZnJvbSBhIG1vemlu
Zm8uanNvbiBmaWxlIGluIGEgcGFyZW50CiAgICAgICAgIGRpcmVjdG9yeSIiIgpAQCAtMTM2LDE1
ICsxNzIsMTUgQEAgY2xhc3MgVGVzdChvYmplY3QpOgogICAgICAgICByZXR1cm4gbWV0YWRhdGEK
IAogICAgIEBjbGFzc21ldGhvZAotICAgIGRlZiBmcm9tX21hbmlmZXN0KGNscywgbWFuaWZlc3Rf
aXRlbSwgaW5oZXJpdF9tZXRhZGF0YSwgdGVzdF9tZXRhZGF0YSk6CisgICAgZGVmIGZyb21fbWFu
aWZlc3QoY2xzLCBtYW5pZmVzdF9maWxlLCBtYW5pZmVzdF9pdGVtLCBpbmhlcml0X21ldGFkYXRh
LCB0ZXN0X21ldGFkYXRhKToKICAgICAgICAgdGltZW91dCA9IGNscy5sb25nX3RpbWVvdXQgaWYg
bWFuaWZlc3RfaXRlbS50aW1lb3V0ID09ICJsb25nIiBlbHNlIGNscy5kZWZhdWx0X3RpbWVvdXQK
ICAgICAgICAgcHJvdG9jb2wgPSAiaHR0cHMiIGlmIGhhc2F0dHIobWFuaWZlc3RfaXRlbSwgImh0
dHBzIikgYW5kIG1hbmlmZXN0X2l0ZW0uaHR0cHMgZWxzZSAiaHR0cCIKLSAgICAgICAgcmV0dXJu
IGNscyhtYW5pZmVzdF9pdGVtLnNvdXJjZV9maWxlLnRlc3RzX3Jvb3QsCisgICAgICAgIHJldHVy
biBjbHMobWFuaWZlc3RfZmlsZS50ZXN0c19yb290LAogICAgICAgICAgICAgICAgICAgIG1hbmlm
ZXN0X2l0ZW0udXJsLAogICAgICAgICAgICAgICAgICAgIGluaGVyaXRfbWV0YWRhdGEsCiAgICAg
ICAgICAgICAgICAgICAgdGVzdF9tZXRhZGF0YSwKICAgICAgICAgICAgICAgICAgICB0aW1lb3V0
PXRpbWVvdXQsCi0gICAgICAgICAgICAgICAgICAgcGF0aD1tYW5pZmVzdF9pdGVtLnNvdXJjZV9m
aWxlLnBhdGgsCisgICAgICAgICAgICAgICAgICAgcGF0aD1vcy5wYXRoLmpvaW4obWFuaWZlc3Rf
ZmlsZS50ZXN0c19yb290LCBtYW5pZmVzdF9pdGVtLnBhdGgpLAogICAgICAgICAgICAgICAgICAg
IHByb3RvY29sPXByb3RvY29sKQogCiAgICAgQHByb3BlcnR5CkBAIC0yMjQsNiArMjYwLDM0IEBA
IGNsYXNzIFRlc3Qob2JqZWN0KToKICAgICAgICAgICAgICAgICBicmVhawogICAgICAgICByZXR1
cm4gbHNhbl9hbGxvd2VkCiAKKyAgICBAcHJvcGVydHkKKyAgICBkZWYgbHNhbl9tYXhfc3RhY2tf
ZGVwdGgoc2VsZik6CisgICAgICAgIGZvciBtZXRhIGluIHNlbGYuaXRlcm1ldGEoTm9uZSk6Cisg
ICAgICAgICAgICBkZXB0aCA9IG1ldGEubHNhbl9tYXhfc3RhY2tfZGVwdGgKKyAgICAgICAgICAg
IGlmIGRlcHRoIGlzIG5vdCBOb25lOgorICAgICAgICAgICAgICAgIHJldHVybiBkZXB0aAorICAg
ICAgICByZXR1cm4gTm9uZQorCisgICAgQHByb3BlcnR5CisgICAgZGVmIG1vemxlYWtfYWxsb3dl
ZChzZWxmKToKKyAgICAgICAgbW96bGVha19hbGxvd2VkID0gc2V0KCkKKyAgICAgICAgZm9yIG1l
dGEgaW4gc2VsZi5pdGVybWV0YSgpOgorICAgICAgICAgICAgbW96bGVha19hbGxvd2VkIHw9IG1l
dGEubGVha19hbGxvd2VkCisgICAgICAgICAgICBpZiBhdG9tX3Jlc2V0IGluIG1vemxlYWtfYWxs
b3dlZDoKKyAgICAgICAgICAgICAgICBtb3psZWFrX2FsbG93ZWQucmVtb3ZlKGF0b21fcmVzZXQp
CisgICAgICAgICAgICAgICAgYnJlYWsKKyAgICAgICAgcmV0dXJuIG1vemxlYWtfYWxsb3dlZAor
CisgICAgQHByb3BlcnR5CisgICAgZGVmIG1vemxlYWtfdGhyZXNob2xkKHNlbGYpOgorICAgICAg
ICBydiA9IHt9CisgICAgICAgIGZvciBtZXRhIGluIHNlbGYuaXRlcm1ldGEoTm9uZSk6CisgICAg
ICAgICAgICB0aHJlc2hvbGQgPSBtZXRhLmxlYWtfdGhyZXNob2xkCisgICAgICAgICAgICBmb3Ig
a2V5LCB2YWx1ZSBpbiB0aHJlc2hvbGQuaXRlcml0ZW1zKCk6CisgICAgICAgICAgICAgICAgaWYg
a2V5IG5vdCBpbiBydjoKKyAgICAgICAgICAgICAgICAgICAgcnZba2V5XSA9IHZhbHVlCisgICAg
ICAgIHJldHVybiBydgorCiAgICAgQHByb3BlcnR5CiAgICAgZGVmIHRhZ3Moc2VsZik6CiAgICAg
ICAgIHRhZ3MgPSBzZXQoKQpAQCAtMjQxLDEyICszMDUsMTIgQEAgY2xhc3MgVGVzdChvYmplY3Qp
OgogICAgIEBwcm9wZXJ0eQogICAgIGRlZiBwcmVmcyhzZWxmKToKICAgICAgICAgcHJlZnMgPSB7
fQotICAgICAgICBmb3IgbWV0YSBpbiBzZWxmLml0ZXJtZXRhKCk6CisgICAgICAgIGZvciBtZXRh
IGluIHJldmVyc2VkKGxpc3Qoc2VsZi5pdGVybWV0YSgpKSk6CiAgICAgICAgICAgICBtZXRhX3By
ZWZzID0gbWV0YS5wcmVmcwotICAgICAgICAgICAgcHJlZnMudXBkYXRlKG1ldGFfcHJlZnMpCiAg
ICAgICAgICAgICBpZiBhdG9tX3Jlc2V0IGluIG1ldGFfcHJlZnM6Ci0gICAgICAgICAgICAgICAg
ZGVsIHByZWZzW2F0b21fcmVzZXRdCi0gICAgICAgICAgICAgICAgYnJlYWsKKyAgICAgICAgICAg
ICAgICBkZWwgbWV0YV9wcmVmc1thdG9tX3Jlc2V0XQorICAgICAgICAgICAgICAgIHByZWZzID0g
e30KKyAgICAgICAgICAgIHByZWZzLnVwZGF0ZShtZXRhX3ByZWZzKQogICAgICAgICByZXR1cm4g
cHJlZnMKIAogICAgIGRlZiBleHBlY3RlZChzZWxmLCBzdWJ0ZXN0PU5vbmUpOgpAQCAtMjYwLDEw
ICszMjQsNDAgQEAgY2xhc3MgVGVzdChvYmplY3QpOgogICAgICAgICAgICAgcmV0dXJuIGRlZmF1
bHQKIAogICAgICAgICB0cnk6Ci0gICAgICAgICAgICByZXR1cm4gbWV0YWRhdGEuZ2V0KCJleHBl
Y3RlZCIpCisgICAgICAgICAgICBleHBlY3RlZCA9IG1ldGFkYXRhLmdldCgiZXhwZWN0ZWQiKQor
ICAgICAgICAgICAgaWYgaXNpbnN0YW5jZShleHBlY3RlZCwgKGJhc2VzdHJpbmcpKToKKyAgICAg
ICAgICAgICAgICByZXR1cm4gZXhwZWN0ZWQKKyAgICAgICAgICAgIGVsaWYgaXNpbnN0YW5jZShl
eHBlY3RlZCwgbGlzdCk6CisgICAgICAgICAgICAgICAgcmV0dXJuIGV4cGVjdGVkWzBdCisgICAg
ICAgICAgICBlbGlmIGV4cGVjdGVkIGlzIE5vbmU6CisgICAgICAgICAgICAgICAgcmV0dXJuIGRl
ZmF1bHQKICAgICAgICAgZXhjZXB0IEtleUVycm9yOgogICAgICAgICAgICAgcmV0dXJuIGRlZmF1
bHQKIAorICAgIGRlZiBrbm93bl9pbnRlcm1pdHRlbnQoc2VsZiwgc3VidGVzdD1Ob25lKToKKyAg
ICAgICAgbWV0YWRhdGEgPSBzZWxmLl9nZXRfbWV0YWRhdGEoc3VidGVzdCkKKyAgICAgICAgaWYg
bWV0YWRhdGEgaXMgTm9uZToKKyAgICAgICAgICAgIHJldHVybiBbXQorCisgICAgICAgIHRyeToK
KyAgICAgICAgICAgIGV4cGVjdGVkID0gbWV0YWRhdGEuZ2V0KCJleHBlY3RlZCIpCisgICAgICAg
ICAgICBpZiBpc2luc3RhbmNlKGV4cGVjdGVkLCBsaXN0KToKKyAgICAgICAgICAgICAgICByZXR1
cm4gZXhwZWN0ZWRbMTpdCisgICAgICAgICAgICByZXR1cm4gW10KKyAgICAgICAgZXhjZXB0IEtl
eUVycm9yOgorICAgICAgICAgICAgcmV0dXJuIFtdCisKKyAgICBkZWYgZXhwZWN0X2FueV9zdWJ0
ZXN0X3N0YXR1cyhzZWxmKToKKyAgICAgICAgbWV0YWRhdGEgPSBzZWxmLl9nZXRfbWV0YWRhdGEo
KQorICAgICAgICBpZiBtZXRhZGF0YSBpcyBOb25lOgorICAgICAgICAgICAgcmV0dXJuIEZhbHNl
CisgICAgICAgIHRyeToKKyAgICAgICAgICAgICMgVGhpcyBrZXkgaXMgdXNlZCBieSB0aGUgQmxp
bmsgQ0kgdG8gaWdub3JlIHN1YnRlc3Qgc3RhdHVzZXMKKyAgICAgICAgICAgIG1ldGFkYXRhLmdl
dCgiYmxpbmtfZXhwZWN0X2FueV9zdWJ0ZXN0X3N0YXR1cyIpCisgICAgICAgICAgICByZXR1cm4g
VHJ1ZQorICAgICAgICBleGNlcHQgS2V5RXJyb3I6CisgICAgICAgICAgICByZXR1cm4gRmFsc2UK
KwogICAgIGRlZiBfX3JlcHJfXyhzZWxmKToKICAgICAgICAgcmV0dXJuICI8JXMuJXMgJXM+IiAl
IChzZWxmLl9fbW9kdWxlX18sIHNlbGYuX19jbGFzc19fLl9fbmFtZV9fLCBzZWxmLmlkKQogCkBA
IC0yODQsMjMgKzM3OCwyNCBAQCBjbGFzcyBUZXN0aGFybmVzc1Rlc3QoVGVzdCk6CiAgICAgICAg
IHNlbGYuc2NyaXB0cyA9IHNjcmlwdHMgb3IgW10KIAogICAgIEBjbGFzc21ldGhvZAotICAgIGRl
ZiBmcm9tX21hbmlmZXN0KGNscywgbWFuaWZlc3RfaXRlbSwgaW5oZXJpdF9tZXRhZGF0YSwgdGVz
dF9tZXRhZGF0YSk6CisgICAgZGVmIGZyb21fbWFuaWZlc3QoY2xzLCBtYW5pZmVzdF9maWxlLCBt
YW5pZmVzdF9pdGVtLCBpbmhlcml0X21ldGFkYXRhLCB0ZXN0X21ldGFkYXRhKToKICAgICAgICAg
dGltZW91dCA9IGNscy5sb25nX3RpbWVvdXQgaWYgbWFuaWZlc3RfaXRlbS50aW1lb3V0ID09ICJs
b25nIiBlbHNlIGNscy5kZWZhdWx0X3RpbWVvdXQKICAgICAgICAgcHJvdG9jb2wgPSAiaHR0cHMi
IGlmIGhhc2F0dHIobWFuaWZlc3RfaXRlbSwgImh0dHBzIikgYW5kIG1hbmlmZXN0X2l0ZW0uaHR0
cHMgZWxzZSAiaHR0cCIKICAgICAgICAgdGVzdGRyaXZlciA9IG1hbmlmZXN0X2l0ZW0udGVzdGRy
aXZlciBpZiBoYXNhdHRyKG1hbmlmZXN0X2l0ZW0sICJ0ZXN0ZHJpdmVyIikgZWxzZSBGYWxzZQog
ICAgICAgICBqc3NoZWxsID0gbWFuaWZlc3RfaXRlbS5qc3NoZWxsIGlmIGhhc2F0dHIobWFuaWZl
c3RfaXRlbSwgImpzc2hlbGwiKSBlbHNlIEZhbHNlCi0gICAgICAgIHNjcmlwdF9tZXRhZGF0YSA9
IG1hbmlmZXN0X2l0ZW0uc291cmNlX2ZpbGUuc2NyaXB0X21ldGFkYXRhIG9yIFtdCisgICAgICAg
IHNjcmlwdF9tZXRhZGF0YSA9IG1hbmlmZXN0X2l0ZW0uc2NyaXB0X21ldGFkYXRhIG9yIFtdCiAg
ICAgICAgIHNjcmlwdHMgPSBbdiBmb3IgKGssIHYpIGluIHNjcmlwdF9tZXRhZGF0YSBpZiBrID09
IGIic2NyaXB0Il0KLSAgICAgICAgcmV0dXJuIGNscyhtYW5pZmVzdF9pdGVtLnNvdXJjZV9maWxl
LnRlc3RzX3Jvb3QsCisgICAgICAgIHJldHVybiBjbHMobWFuaWZlc3RfZmlsZS50ZXN0c19yb290
LAogICAgICAgICAgICAgICAgICAgIG1hbmlmZXN0X2l0ZW0udXJsLAogICAgICAgICAgICAgICAg
ICAgIGluaGVyaXRfbWV0YWRhdGEsCiAgICAgICAgICAgICAgICAgICAgdGVzdF9tZXRhZGF0YSwK
ICAgICAgICAgICAgICAgICAgICB0aW1lb3V0PXRpbWVvdXQsCi0gICAgICAgICAgICAgICAgICAg
cGF0aD1tYW5pZmVzdF9pdGVtLnNvdXJjZV9maWxlLnBhdGgsCisgICAgICAgICAgICAgICAgICAg
cGF0aD1vcy5wYXRoLmpvaW4obWFuaWZlc3RfZmlsZS50ZXN0c19yb290LCBtYW5pZmVzdF9pdGVt
LnBhdGgpLAogICAgICAgICAgICAgICAgICAgIHByb3RvY29sPXByb3RvY29sLAogICAgICAgICAg
ICAgICAgICAgIHRlc3Rkcml2ZXI9dGVzdGRyaXZlciwKICAgICAgICAgICAgICAgICAgICBqc3No
ZWxsPWpzc2hlbGwsCi0gICAgICAgICAgICAgICAgICAgc2NyaXB0cz1zY3JpcHRzKQorICAgICAg
ICAgICAgICAgICAgIHNjcmlwdHM9c2NyaXB0cworICAgICAgICAgICAgICAgICAgICkKIAogICAg
IEBwcm9wZXJ0eQogICAgIGRlZiBpZChzZWxmKToKQEAgLTMyMCw3ICs0MTUsNyBAQCBjbGFzcyBS
ZWZ0ZXN0VGVzdChUZXN0KToKICAgICB0ZXN0X3R5cGUgPSAicmVmdGVzdCIKIAogICAgIGRlZiBf
X2luaXRfXyhzZWxmLCB0ZXN0c19yb290LCB1cmwsIGluaGVyaXRfbWV0YWRhdGEsIHRlc3RfbWV0
YWRhdGEsIHJlZmVyZW5jZXMsCi0gICAgICAgICAgICAgICAgIHRpbWVvdXQ9Tm9uZSwgcGF0aD1O
b25lLCB2aWV3cG9ydF9zaXplPU5vbmUsIGRwaT1Ob25lLCBwcm90b2NvbD0iaHR0cCIpOgorICAg
ICAgICAgICAgICAgICB0aW1lb3V0PU5vbmUsIHBhdGg9Tm9uZSwgdmlld3BvcnRfc2l6ZT1Ob25l
LCBkcGk9Tm9uZSwgZnV6enk9Tm9uZSwgcHJvdG9jb2w9Imh0dHAiKToKICAgICAgICAgVGVzdC5f
X2luaXRfXyhzZWxmLCB0ZXN0c19yb290LCB1cmwsIGluaGVyaXRfbWV0YWRhdGEsIHRlc3RfbWV0
YWRhdGEsIHRpbWVvdXQsCiAgICAgICAgICAgICAgICAgICAgICAgcGF0aCwgcHJvdG9jb2wpCiAK
QEAgLTMzMSw5ICs0MjYsMTEgQEAgY2xhc3MgUmVmdGVzdFRlc3QoVGVzdCk6CiAgICAgICAgIHNl
bGYucmVmZXJlbmNlcyA9IHJlZmVyZW5jZXMKICAgICAgICAgc2VsZi52aWV3cG9ydF9zaXplID0g
dmlld3BvcnRfc2l6ZQogICAgICAgICBzZWxmLmRwaSA9IGRwaQorICAgICAgICBzZWxmLl9mdXp6
eSA9IGZ1enp5IG9yIHt9CiAKICAgICBAY2xhc3NtZXRob2QKICAgICBkZWYgZnJvbV9tYW5pZmVz
dChjbHMsCisgICAgICAgICAgICAgICAgICAgICAgbWFuaWZlc3RfZmlsZSwKICAgICAgICAgICAg
ICAgICAgICAgICBtYW5pZmVzdF90ZXN0LAogICAgICAgICAgICAgICAgICAgICAgIGluaGVyaXRf
bWV0YWRhdGEsCiAgICAgICAgICAgICAgICAgICAgICAgdGVzdF9tZXRhZGF0YSwKQEAgLTM0OSw3
ICs0NDYsNyBAQCBjbGFzcyBSZWZ0ZXN0VGVzdChUZXN0KToKIAogICAgICAgICB1cmwgPSBtYW5p
ZmVzdF90ZXN0LnVybAogCi0gICAgICAgIG5vZGUgPSBjbHMobWFuaWZlc3RfdGVzdC5zb3VyY2Vf
ZmlsZS50ZXN0c19yb290LAorICAgICAgICBub2RlID0gY2xzKG1hbmlmZXN0X2ZpbGUudGVzdHNf
cm9vdCwKICAgICAgICAgICAgICAgICAgICBtYW5pZmVzdF90ZXN0LnVybCwKICAgICAgICAgICAg
ICAgICAgICBpbmhlcml0X21ldGFkYXRhLAogICAgICAgICAgICAgICAgICAgIHRlc3RfbWV0YWRh
dGEsCkBAIC0zNTgsNyArNDU1LDggQEAgY2xhc3MgUmVmdGVzdFRlc3QoVGVzdCk6CiAgICAgICAg
ICAgICAgICAgICAgcGF0aD1tYW5pZmVzdF90ZXN0LnBhdGgsCiAgICAgICAgICAgICAgICAgICAg
dmlld3BvcnRfc2l6ZT1tYW5pZmVzdF90ZXN0LnZpZXdwb3J0X3NpemUsCiAgICAgICAgICAgICAg
ICAgICAgZHBpPW1hbmlmZXN0X3Rlc3QuZHBpLAotICAgICAgICAgICAgICAgICAgIHByb3RvY29s
PSJodHRwcyIgaWYgaGFzYXR0cihtYW5pZmVzdF90ZXN0LCAiaHR0cHMiKSBhbmQgbWFuaWZlc3Rf
dGVzdC5odHRwcyBlbHNlICJodHRwIikKKyAgICAgICAgICAgICAgICAgICBwcm90b2NvbD0iaHR0
cHMiIGlmIGhhc2F0dHIobWFuaWZlc3RfdGVzdCwgImh0dHBzIikgYW5kIG1hbmlmZXN0X3Rlc3Qu
aHR0cHMgZWxzZSAiaHR0cCIsCisgICAgICAgICAgICAgICAgICAgZnV6enk9bWFuaWZlc3RfdGVz
dC5mdXp6eSkKIAogICAgICAgICBub2Rlc1t1cmxdID0gbm9kZQogCkBAIC0zNzYsMTUgKzQ3NCwx
NiBAQCBjbGFzcyBSZWZ0ZXN0VGVzdChUZXN0KToKIAogICAgICAgICAgICAgcmVmZXJlbmNlc19z
ZWVuLmFkZChjb21wYXJpc29uX2tleSkKIAotICAgICAgICAgICAgbWFuaWZlc3Rfbm9kZSA9IG1h
bmlmZXN0X3Rlc3QubWFuaWZlc3QuZ2V0X3JlZmVyZW5jZShyZWZfdXJsKQorICAgICAgICAgICAg
bWFuaWZlc3Rfbm9kZSA9IG1hbmlmZXN0X2ZpbGUuZ2V0X3JlZmVyZW5jZShyZWZfdXJsKQogICAg
ICAgICAgICAgaWYgbWFuaWZlc3Rfbm9kZToKLSAgICAgICAgICAgICAgICByZWZlcmVuY2UgPSBS
ZWZ0ZXN0VGVzdC5mcm9tX21hbmlmZXN0KG1hbmlmZXN0X25vZGUsCisgICAgICAgICAgICAgICAg
cmVmZXJlbmNlID0gUmVmdGVzdFRlc3QuZnJvbV9tYW5pZmVzdChtYW5pZmVzdF9maWxlLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFuaWZl
c3Rfbm9kZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIFtdLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgTm9uZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIG5vZGVzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgcmVmZXJlbmNlc19zZWVuKQogICAgICAgICAgICAgZWxzZToKLSAg
ICAgICAgICAgICAgICByZWZlcmVuY2UgPSBSZWZ0ZXN0VGVzdChtYW5pZmVzdF90ZXN0LnNvdXJj
ZV9maWxlLnRlc3RzX3Jvb3QsCisgICAgICAgICAgICAgICAgcmVmZXJlbmNlID0gUmVmdGVzdFRl
c3QobWFuaWZlc3RfZmlsZS50ZXN0c19yb290LAogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHJlZl91cmwsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgW10sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTm9uZSwK
QEAgLTQxMyw2ICs1MTIsMzIgQEAgY2xhc3MgUmVmdGVzdFRlc3QoVGVzdCk6CiAgICAgZGVmIGtl
eXMoc2VsZik6CiAgICAgICAgIHJldHVybiAoInJlZnR5cGUiLCAicmVmdXJsIikKIAorICAgIEBw
cm9wZXJ0eQorICAgIGRlZiBmdXp6eShzZWxmKToKKyAgICAgICAgcmV0dXJuIHNlbGYuX2Z1enp5
CisKKyAgICBAcHJvcGVydHkKKyAgICBkZWYgZnV6enlfb3ZlcnJpZGUoc2VsZik6CisgICAgICAg
IHZhbHVlcyA9IHt9CisgICAgICAgIGZvciBtZXRhIGluIHJldmVyc2VkKGxpc3Qoc2VsZi5pdGVy
bWV0YShOb25lKSkpOgorICAgICAgICAgICAgdmFsdWUgPSBtZXRhLmZ1enp5CisgICAgICAgICAg
ICBpZiBub3QgdmFsdWU6CisgICAgICAgICAgICAgICAgY29udGludWUKKyAgICAgICAgICAgIGlm
IGF0b21fcmVzZXQgaW4gdmFsdWU6CisgICAgICAgICAgICAgICAgdmFsdWUucmVtb3ZlKGF0b21f
cmVzZXQpCisgICAgICAgICAgICAgICAgdmFsdWVzID0ge30KKyAgICAgICAgICAgIGZvciBrZXks
IGRhdGEgaW4gdmFsdWU6CisgICAgICAgICAgICAgICAgaWYgaXNpbnN0YW5jZShrZXksICh0dXBs
ZSwgbGlzdCkpOgorICAgICAgICAgICAgICAgICAgICBrZXkgPSBsaXN0KGtleSkKKyAgICAgICAg
ICAgICAgICAgICAga2V5WzBdID0gdXJsam9pbihzZWxmLnVybCwga2V5WzBdKQorICAgICAgICAg
ICAgICAgICAgICBrZXlbMV0gPSB1cmxqb2luKHNlbGYudXJsLCBrZXlbMV0pCisgICAgICAgICAg
ICAgICAgICAgIGtleSA9IHR1cGxlKGtleSkKKyAgICAgICAgICAgICAgICBlbGlmIGtleToKKyAg
ICAgICAgICAgICAgICAgICAgIyBLZXkgaXMganVzdCBhIHJlbGF0aXZlIHVybCB0byBhIHJlZgor
ICAgICAgICAgICAgICAgICAgICBrZXkgPSB1cmxqb2luKHNlbGYudXJsLCBrZXkpCisgICAgICAg
ICAgICAgICAgdmFsdWVzW2tleV0gPSBkYXRhCisgICAgICAgIHJldHVybiB2YWx1ZXMKKwogCiBj
bGFzcyBXZHNwZWNUZXN0KFRlc3QpOgogCkBAIC00MzAsNiArNTU1LDYgQEAgbWFuaWZlc3RfdGVz
dF9jbHMgPSB7InJlZnRlc3QiOiBSZWZ0ZXN0VGVzdCwKICAgICAgICAgICAgICAgICAgICAgICJ3
ZHNwZWMiOiBXZHNwZWNUZXN0fQogCiAKLWRlZiBmcm9tX21hbmlmZXN0KG1hbmlmZXN0X3Rlc3Qs
IGluaGVyaXRfbWV0YWRhdGEsIHRlc3RfbWV0YWRhdGEpOgorZGVmIGZyb21fbWFuaWZlc3QobWFu
aWZlc3RfZmlsZSwgbWFuaWZlc3RfdGVzdCwgaW5oZXJpdF9tZXRhZGF0YSwgdGVzdF9tZXRhZGF0
YSk6CiAgICAgdGVzdF9jbHMgPSBtYW5pZmVzdF90ZXN0X2Nsc1ttYW5pZmVzdF90ZXN0Lml0ZW1f
dHlwZV0KLSAgICByZXR1cm4gdGVzdF9jbHMuZnJvbV9tYW5pZmVzdChtYW5pZmVzdF90ZXN0LCBp
bmhlcml0X21ldGFkYXRhLCB0ZXN0X21ldGFkYXRhKQorICAgIHJldHVybiB0ZXN0X2Nscy5mcm9t
X21hbmlmZXN0KG1hbmlmZXN0X2ZpbGUsIG1hbmlmZXN0X3Rlc3QsIGluaGVyaXRfbWV0YWRhdGEs
IHRlc3RfbWV0YWRhdGEpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHNlcnZlL1JFQURNRS5tZCBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0c2VydmUvUkVBRE1FLm1kCmlu
ZGV4IDMwYTdkY2NjOTNlLi42ODIxZGVlMzhhNCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRzZXJ2ZS9SRUFETUUubWQKKysr
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRz
ZXJ2ZS9SRUFETUUubWQKQEAgLTMsNCArMyw0IEBAIHdwdHNlcnZlCiAKIFdlYiBzZXJ2ZXIgZGVz
aWduZWQgZm9yIHVzZSB3aXRoIHdlYi1wbGF0Zm9ybS10ZXN0cy4KIAotW3dwdHNlcnZlLnJlYWR0
aGVkb2NzLmlvXShodHRwOi8vd3B0c2VydmUucmVhZHRoZWRvY3MuaW8vZW4vbGF0ZXN0L2luZGV4
Lmh0bWwpCitTZWUgdGhlIGRvY3Mgb24gW3dlYi1wbGF0Zm9ybS10ZXN0cy5vcmddKGh0dHBzOi8v
d2ViLXBsYXRmb3JtLXRlc3RzLm9yZy90b29scy93cHRzZXJ2ZS9kb2NzL2luZGV4Lmh0bWwpLgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy93cHRzZXJ2ZS9kb2NzL2hhbmRsZXJzLnJzdCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0c2VydmUvZG9jcy9oYW5kbGVycy5yc3QKaW5k
ZXggYzE1YWFiNjM1ZDkuLjhlY2M5MzMyODhiIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHNlcnZlL2RvY3MvaGFuZGxlcnMu
cnN0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvd3B0c2VydmUvZG9jcy9oYW5kbGVycy5yc3QKQEAgLTIyLDIyICsyMiwyMiBAQCBQeXRob24g
SGFuZGxlcnMKIAogUHl0aG9uIGhhbmRsZXJzIGFyZSBmdW5jdGlvbnMgd2hpY2ggcHJvdmlkZSBh
IGhpZ2hlci1sZXZlbCBBUEkgb3ZlcgogbWFudWFsbHkgdXBkYXRpbmcgdGhlIHJlc3BvbnNlIG9i
amVjdCwgYnkgY2F1c2luZyB0aGUgcmV0dXJuIHZhbHVlIG9mCi10aGUgZnVuY3Rpb24gdG8gcHJv
dmlkZSAocGFydCBvZikgdGhlIHJlc3BvbnNlLiBUaGVyZSBhcmUgdGhyZWUKK3RoZSBmdW5jdGlv
biB0byBwcm92aWRlIChwYXJ0IG9mKSB0aGUgcmVzcG9uc2UuIFRoZXJlIGFyZSBmb3VyCiBwb3Nz
aWJsZSBzZXRzIG9mIHZhbHVlcyB0aGF0IG1heSBiZSByZXR1cm5lZDo6CiAKIAotICAoc3RhdHVz
LCBoZWFkZXJzLCBjb250ZW50KQorICAoKHN0YXR1c19jb2RlLCByZWFzb24pLCBoZWFkZXJzLCBj
b250ZW50KQorICAoc3RhdHVzX2NvZGUsIGhlYWRlcnMsIGNvbnRlbnQpCiAgIChoZWFkZXJzLCBj
b250ZW50KQogICBjb250ZW50CiAKLUhlcmUgYHN0YXR1c2AgaXMgZWl0aGVyIGEgdHVwbGUgKHN0
YXR1cyBjb2RlLCBtZXNzYWdlKSBvciBzaW1wbHkgYQotaW50ZWdlciBzdGF0dXMgY29kZSwgYGhl
YWRlcnNgIGlzIGEgbGlzdCBvZiAoZmllbGQgbmFtZSwgdmFsdWUpIHBhaXJzLAotYW5kIGBjb250
ZW50YCBpcyBhIHN0cmluZyBvciBhbiBpdGVyYWJsZSByZXR1cm5pbmcgc3RyaW5ncy4gU3VjaCBh
Ci1mdW5jdGlvbiBtYXkgYWxzbyB1cGRhdGUgdGhlIHJlc3BvbnNlIG1hbnVhbGx5LiBGb3IgZXhh
bXBsZSBvbmUgbWF5Ci11c2UgYHJlc3BvbnNlLmhlYWRlcnMuc2V0YCB0byBzZXQgYSByZXNwb25z
ZSBoZWFkZXIsIGFuZCBvbmx5IHJldHVybgotdGhlIGNvbnRlbnQuIE9uZSBtYXkgZXZlbiB1c2Ug
dGhpcyBraW5kIG9mIGhhbmRsZXIsIGJ1dCBtYW5pcHVsYXRlCi10aGUgb3V0cHV0IHNvY2tldCBk
aXJlY3RseSwgaW4gd2hpY2ggY2FzZSB0aGUgcmV0dXJuIHZhbHVlIG9mIHRoZQotZnVuY3Rpb24s
IGFuZCB0aGUgcHJvcGVydGllcyBvZiB0aGUgcmVzcG9uc2Ugb2JqZWN0LCB3aWxsIGJlIGlnbm9y
ZWQuCitIZXJlIGBzdGF0dXNfY29kZWAgaXMgYW4gaW50ZWdlciBzdGF0dXMgY29kZSwgYGhlYWRl
cnNgIGlzIGEgbGlzdCBvZiAoZmllbGQKK25hbWUsIHZhbHVlKSBwYWlycywgYW5kIGBjb250ZW50
YCBpcyBhIHN0cmluZyBvciBhbiBpdGVyYWJsZSByZXR1cm5pbmcgc3RyaW5ncy4KK1N1Y2ggYSBm
dW5jdGlvbiBtYXkgYWxzbyB1cGRhdGUgdGhlIHJlc3BvbnNlIG1hbnVhbGx5LiBGb3IgZXhhbXBs
ZSBvbmUgbWF5IHVzZQorYHJlc3BvbnNlLmhlYWRlcnMuc2V0YCB0byBzZXQgYSByZXNwb25zZSBo
ZWFkZXIsIGFuZCBvbmx5IHJldHVybiB0aGUgY29udGVudC4KK09uZSBtYXkgZXZlbiB1c2UgdGhp
cyBraW5kIG9mIGhhbmRsZXIsIGJ1dCBtYW5pcHVsYXRlIHRoZSBvdXRwdXQgc29ja2V0CitkaXJl
Y3RseSwgaW4gd2hpY2ggY2FzZSB0aGUgcmV0dXJuIHZhbHVlIG9mIHRoZSBmdW5jdGlvbiwgYW5k
IHRoZSBwcm9wZXJ0aWVzIG9mCit0aGUgcmVzcG9uc2Ugb2JqZWN0LCB3aWxsIGJlIGlnbm9yZWQu
CiAKIFRoZSBtb3N0IGNvbW1vbiB3YXkgdG8gbWFrZSBhIHVzZXIgZnVuY3Rpb24gaW50byBhIHB5
dGhvbiBoYW5kbGVyIGlzCiB0byB1c2UgdGhlIHByb3ZpZGVkIGB3cHRzZXJ2ZS5oYW5kbGVycy5o
YW5kbGVyYCBkZWNvcmF0b3I6OgpAQCAtNzEsMTYgKzcxLDEzIEBAIGRlY29yYXRvcjo6CiBQeXRo
b24gRmlsZSBIYW5kbGVycwogLS0tLS0tLS0tLS0tLS0tLS0tLS0KIAotUHl0aG9uIGZpbGUgaGFu
ZGxlcnMgYXJlIGRlc2lnbmVkIHRvIHByb3ZpZGUgYSB2YWd1ZWx5IFBIUC1saWtlIGludGVyZmFj
ZQotd2hlcmUgZWFjaCByZXNvdXJjZSBjb3JyZXNwb25kcyB0byBhIHBhcnRpY3VsYXIgcHl0aG9u
IGZpbGUgb24gdGhlCi1maWxlc3lzdGVtLiBUeXBpY2FsbHkgdGhpcyBpcyBob29rZWQgdXAgdG8g
YSByb3V0ZSBsaWtlIGBgKCIqIiwKLSIqLnB5IiwgcHl0aG9uX2ZpbGVfaGFuZGxlcilgYCwgbWVh
bmluZyB0aGF0IGFueSAucHkgZmlsZSB3aWxsIGJlCi10cmVhdGVkIGFzIGEgaGFuZGxlciBmaWxl
IChub3RlIHRoYXQgdGhpcyBtYWtlcyBweXRob24gZmlsZXMgdW5zYWZlIGluCi1tdWNoIHRoZSBz
YW1lIHdheSB0aGF0IC5waHAgZmlsZXMgYXJlIHdoZW4gdXNpbmcgUEhQKS4KK1B5dGhvbiBmaWxl
IGhhbmRsZXJzIGFyZSBQeXRob24gZmlsZXMgd2hpY2ggdGhlIHNlcnZlciBleGVjdXRlcyBpbiBy
ZXNwb25zZSB0bworcmVxdWVzdHMgbWFkZSB0byB0aGUgY29ycmVzcG9uZGluZyBVUkwuIFRoaXMg
aXMgaG9va2VkIHVwIHRvIGEgcm91dGUgbGlrZQorYGAoIioiLCAiKi5weSIsIHB5dGhvbl9maWxl
X2hhbmRsZXIpYGAsIG1lYW5pbmcgdGhhdCBhbnkgLnB5IGZpbGUgd2lsbCBiZQordHJlYXRlZCBh
cyBhIGhhbmRsZXIgZmlsZSAobm90ZSB0aGF0IHRoaXMgbWFrZXMgaXQgZWFzeSB0byB3cml0ZSB1
bnNhZmUKK2hhbmRsZXJzLCBwYXJ0aWN1bGFybHkgd2hlbiBydW5uaW5nIHRoZSBzZXJ2ZXIgaW4g
YSB3ZWItZXhwb3NlZCBzZXR0aW5nKS4KIAotVW5saWtlIFBIUCwgdGhlIHB5dGhvbiBmaWxlcyBk
b24ndCB3b3JrIGJ5IG91dHB1dHRpbmcgdGV4dCB0byBzdGRvdXQKLWZyb20gdGhlIGdsb2JhbCBz
Y29wZS4gSW5zdGVhZCB0aGV5IG11c3QgZGVmaW5lIGEgc2luZ2xlIGZ1bmN0aW9uCi1gbWFpbmAg
d2l0aCB0aGUgc2lnbmF0dXJlOjoKK1RoZSBQeXRob24gZmlsZXMgbXVzdCBkZWZpbmUgYSBzaW5n
bGUgZnVuY3Rpb24gYG1haW5gIHdpdGggdGhlIHNpZ25hdHVyZTo6CiAKICAgbWFpbihyZXF1ZXN0
LCByZXNwb25zZSkKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy93cHRzZXJ2ZS9kb2NzL3BpcGVzLnJzdCBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0c2VydmUvZG9jcy9waXBl
cy5yc3QKaW5kZXggOGZhZWVlNDg5YzkuLjFlZGJkNDQ4NjcyIDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHNlcnZlL2RvY3Mv
cGlwZXMucnN0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvd3B0c2VydmUvZG9jcy9waXBlcy5yc3QKQEAgLTEsMTYxICsxLDggQEAKIFBpcGVz
CiA9PT09PT0KIAotUGlwZXMgYXJlIGZ1bmN0aW9ucyB0aGF0IG1heSBiZSB1c2VkIHdoZW4gc2Vy
dmluZyBmaWxlcyB0byBhbHRlciBwYXJ0cwotb2YgdGhlIHJlc3BvbnNlLiBUaGVzZSBhcmUgaW52
b2tlZCBieSBhZGRpbmcgYSBwaXBlPSBxdWVyeSBwYXJhbWV0ZXIKLXRha2luZyBhIHwgc2VwYXJh
dGVkIGxpc3Qgb2YgcGlwZSBmdW5jdGlvbnMgYW5kIHBhcmFtZXRlcnMuIFRoZSBwaXBlCi1mdW5j
dGlvbnMgYXJlIGFwcGxpZWQgdG8gdGhlIHJlc3BvbnNlIGZyb20gbGVmdCB0byByaWdodC4gRm9y
IGV4YW1wbGU6OgotCi0gIEdFVCAvc2FtcGxlLnR4dD9waXBlPXNsaWNlKDEsMjAwKXxzdGF0dXMo
NDA0KS4KLQotVGhpcyB3b3VsZCBzZXJ2ZSBieXRlcyAxIHRvIDE5OSwgaW5jbHVzaXZlLCBvZiBm
b28udHh0IHdpdGggdGhlIEhUVFAgc3RhdHVzCi1jb2RlIDQwNC4KLQotLi4gbm90ZTo6Ci0gICBJ
ZiB5b3Ugd3JpdGUgZGlyZWN0bHkgdG8gdGhlIHJlc3BvbnNlIHNvY2tldCB1c2luZyBSZXNwb25z
ZVdyaXRlciwKLSAgIG9yIHdoZW4gdXNpbmcgdGhlIGFzaXMgaGFuZGxlciwgb25seSB0aGUgdHJp
Y2tsZSBwaXBlIHdpbGwgYWZmZWN0IHRoZSByZXNwb25zZS4KLQotVGhlcmUgYXJlIHNldmVyYWwg
YnVpbHQtaW4gcGlwZSBmdW5jdGlvbnMsIGFuZCBpdCBpcyBwb3NzaWJsZSB0byBhZGQKLW1vcmUg
dXNpbmcgdGhlIGBAcGlwZWAgZGVjb3JhdG9yIG9uIGEgZnVuY3Rpb24sIGlmIHJlcXVpcmVkLgot
Ci0uLiBub3RlOjoKLSAgIEJlY2F1c2Ugb2YgdGhlIHdheSBwaXBlcyBjb21wb3NlLCB1c2luZyBz
b21lIHBpcGUgZnVuY3Rpb25zIHByZXZlbnRzIHRoZQotICAgY29udGVudC1sZW5ndGggb2YgdGhl
IHJlc3BvbnNlIGZyb20gYmVpbmcga25vd24gaW4gYWR2YW5jZS4gSW4gdGhlc2UgY2FzZXMKLSAg
IHRoZSBzZXJ2ZXIgd2lsbCBjbG9zZSB0aGUgY29ubmVjdGlvbiB0byBpbmRpY2F0ZSB0aGUgZW5k
IG9mIHRoZSByZXNwb25zZSwKLSAgIHByZXZlbnRpbmcgdGhlIHVzZSBvZiBIVFRQIDEuMSBrZWVw
YWxpdmUuCi0KLUJ1aWx0LUluIFBpcGVzCi0tLS0tLS0tLS0tLS0tLQotCi1zdWIKLX5+fgotCi1V
c2VkIHRvIHN1YnN0aXR1dGUgdmFyaWFibGVzIGZyb20gdGhlIHNlcnZlciBlbnZpcm9ubWVudCwg
b3IgZnJvbSB0aGUKLXJlcXVlc3QgaW50byB0aGUgcmVzcG9uc2UuCi0KLVN1YnN0aXR1dGlvbnMg
YXJlIG1hcmtlZCBpbiBhIGZpbGUgdXNpbmcgYSBibG9jayBkZWxpbWl0ZWQgYnkgYHt7YAotYW5k
IGB9fWAuIEluc2lkZSB0aGUgYmxvY2sgdGhlIGZvbGxvd2luZyB2YXJpYWJsZXMgYXJlIGF2YWls
YWJsZToKLQotICBge3tob3N0fX1gCi0gICAgVGhlIGhvc3QgbmFtZSBvZiB0aGUgc2VydmVyIGV4
Y2x1ZGluZyBhbnkgc3ViZG9tYWluIHBhcnQuCi0KLSAgYHt7ZG9tYWluc1tdfX1gCi0gICAgVGhl
IGRvbWFpbiBuYW1lIG9mIGEgcGFydGljdWxhciBzdWJkb21haW4KLSAgICAgIGUuZy4gYHt7ZG9t
YWluc1t3d3ddfX1gIGZvciB0aGUgYHd3d2Agc3ViZG9tYWluLgotCi0gIGB7e3BvcnRzW11bXX19
YAotICAgIFRoZSBwb3J0IG51bWJlciBvZiBzZXJ2ZXJzLCBieSBwcm90b2NvbAotICAgICAgZS5n
LiBge3twb3J0c1todHRwXVswXX19YCBmb3IgdGhlIGZpcnN0IChhbmQsIGRlcGVuZGluZyBvbiBz
ZXR1cCwKLSAgICAgIHBvc3NpYmx5IG9ubHkpIGh0dHAgc2VydmVyCi0KLSAgYHt7aGVhZGVyc1td
fX1gCi0gICAgVGhlIEhUVFAgaGVhZGVycyBpbiB0aGUgcmVxdWVzdAotICAgICAgZS5nLiBge3to
ZWFkZXJzW1gtVGVzdF19fWAgZm9yIGEgaHlwb3RoZXRpY2FsIGBYLVRlc3RgIGhlYWRlci4KLQot
ICBge3tHRVRbXX19YAotICAgIFRoZSBxdWVyeSBwYXJhbWV0ZXJzIGZvciB0aGUgcmVxdWVzdAot
ICAgICAgZS5nLiBge3tHRVRbaWRdfX1gIGZvciBhbiBpZCBwYXJhbWV0ZXIgc2VudCB3aXRoIHRo
ZSByZXF1ZXN0LgotCi1TbywgZm9yIGV4YW1wbGUsIHRvIHdyaXRlIGEgamF2YXNjcmlwdCBmaWxl
IGNhbGxlZCBgeGhyLmpzYCB0aGF0Ci1kZXBlbmRzIG9uIHRoZSBob3N0IG5hbWUgb2YgdGhlIHNl
cnZlciwgd2l0aG91dCBoYXJkY29kaW5nLCBvbmUgbWlnaHQKLXdyaXRlOjoKLQotICAgIHZhciBz
ZXJ2ZXJfdXJsID0gaHR0cDovL3t7aG9zdH19Ont7cG9ydHNbaHR0cF1bMF19fS9wYXRoL3RvL3Jl
c291cmNlOwotICAgIC8vQ3JlYXRlIHRoZSBhY3R1YWwgWEhSIGFuZCBzbyBvbgotCi1UaGUgZmls
ZSB3b3VsZCB0aGVuIGJlIGluY2x1ZGVkIGFzOgotCi0gICAgPHNjcmlwdCBzcmM9Inhoci5qcz9w
aXBlPXN1YiI+PC9zY3JpcHQ+Ci0KLVRoaXMgcGlwZSBjYW4gYWxzbyBiZSBlbmFibGVkIGJ5IHVz
aW5nIGEgZmlsZW5hbWUgYCouc3ViLmV4dGAsIGUuZy4gdGhlIGZpbGUgYWJvdmUgY291bGQgYmUg
Y2FsbGVkIGB4aHIuc3ViLmpzYC4KLQotc3RhdHVzCi1+fn5+fn4KLQotVXNlZCB0byBzZXQgdGhl
IEhUVFAgc3RhdHVzIG9mIHRoZSByZXNwb25zZSwgZm9yIGV4YW1wbGU6OgotCi0gICAgZXhhbXBs
ZS5qcz9waXBlPXN0YXR1cyg0MTApCi0KLWhlYWRlcnMKLX5+fn5+fn4KLQotVXNlZCB0byBhZGQg
b3IgcmVwbGFjZSBodHRwIGhlYWRlcnMgaW4gdGhlIHJlc3BvbnNlLiBUYWtlcyB0d28gb3IKLXRo
cmVlIGFyZ3VtZW50czsgdGhlIGhlYWRlciBuYW1lLCB0aGUgaGVhZGVyIHZhbHVlIGFuZCB3aGV0
aGVyIHRvCi1hcHBlbmQgdGhlIGhlYWRlciByYXRoZXIgdGhhbiByZXBsYWNlIGFuIGV4aXN0aW5n
IGhlYWRlciAoZGVmYXVsdDoKLUZhbHNlKS4gU28sIGZvciBleGFtcGxlLCBhIHJlcXVlc3QgZm9y
OjoKLQotICAgIGV4YW1wbGUuaHRtbD9waXBlPWhlYWRlcihDb250ZW50LVR5cGUsdGV4dC9wbGFp
bikKLQotY2F1c2VzIGV4YW1wbGUuaHRtbCB0byBiZSByZXR1cm5lZCB3aXRoIGEgdGV4dC9wbGFp
biBjb250ZW50IHR5cGUKLXdoZXJlYXM6OgotCi0gICAgZXhhbXBsZS5odG1sP3BpcGU9aGVhZGVy
KENvbnRlbnQtVHlwZSx0ZXh0L3BsYWluLFRydWUpCi0KLVdpbGwgY2F1c2UgZXhhbXBsZS5odG1s
IHRvIGJlIHJldHVybmVkIHdpdGggYm90aCB0ZXh0L2h0bWwgYW5kCi10ZXh0L3BsYWluIGNvbnRl
bnQtdHlwZSBoZWFkZXJzLgotCi1zbGljZQotfn5+fn4KLQotVXNlZCB0byBzZW5kIG9ubHkgcGFy
dCBvZiBhIHJlc3BvbnNlIGJvZHkuIFRha2VzIHRoZSBzdGFydCBhbmQsCi1vcHRpb25hbGx5LCBl
bmQgYnl0ZXMgYXMgYXJndW1lbnRzLCBhbHRob3VnaCBlaXRoZXIgY2FuIGJlIG51bGwgdG8KLWlu
ZGljYXRlIHRoZSBzdGFydCBvciBlbmQgb2YgdGhlIGZpbGUsIHJlc3BlY3RpdmVseS4gU28gZm9y
IGV4YW1wbGU6OgotCi0gICAgZXhhbXBsZS50eHQ/cGlwZT1zbGljZSgxMCwyMCkKLQotV291bGQg
cmVzdWx0IGluIGEgcmVzcG9uc2Ugd2l0aCBhIGJvZHkgY29udGFpbmluZyAxMCBieXRlcyBvZgot
ZXhhbXBsZS50eHQgaW5jbHVkaW5nIGJ5dGUgMTAgYnV0IGV4Y2x1ZGluZyBieXRlIDIwLgotCi06
OgotCi0gICAgZXhhbXBsZS50eHQ/cGlwZT1zbGljZSgxMCkKLQotV291bGQgY2F1c2UgYWxsIGJ5
dGVzIGZyb20gYnl0ZSAxMCBvZiBleGFtcGxlLnR4dCB0byBiZSBzZW50LCBidXQ6OgotCi0gICAg
ZXhhbXBsZS50eHQ/cGlwZT1zbGljZShudWxsLDIwKQotCi1Xb3VsZCBzZW5kIHRoZSBmaXJzdCAy
MCBieXRlcyBvZiBleGFtcGxlLnR4dC4KLQotdHJpY2tsZQotfn5+fn5+fgotCi0uLiBub3RlOjoK
LSAgIFVzaW5nIHRoaXMgZnVuY3Rpb24gd2lsbCBmb3JjZSBhIGNvbm5lY3Rpb24gY2xvc2UuCi0K
LVVzZWQgdG8gc2VuZCB0aGUgYm9keSBvZiBhIHJlc3BvbnNlIGluIGNodW5rcyB3aXRoIGRlbGF5
cy4gVGFrZXMgYQotc2luZ2xlIGFyZ3VtZW50IHRoYXQgaXMgYSBtaWNyb3N5bnRheCBjb25zaXN0
aW5nIG9mIGNvbG9uLXNlcGFyYXRlZAotY29tbWFuZHMuIFRoZXJlIGFyZSB0aHJlZSB0eXBlcyBv
ZiBjb21tYW5kczoKLQotKiBCYXJlIG51bWJlcnMgcmVwcmVzZW50IGEgbnVtYmVyIG9mIGJ5dGVz
IHRvIHNlbmQKLQotKiBOdW1iZXJzIHByZWZpeGVkIGBkYCBpbmRpY2F0ZSBhIGRlbGF5IGluIHNl
Y29uZHMKLQotKiBOdW1iZXJzIHByZWZpeGVkIGByYCBtdXN0IG9ubHkgYXBwZWFyIGF0IHRoZSBl
bmQgb2YgdGhlIGNvbW1hbmQsIGFuZAotICBpbmRpY2F0ZSB0aGF0IHRoZSBwcmVjZWRpbmcgTiBp
dGVtcyBtdXN0IGJlIHJlcGVhdGVkIHVudGlsIHRoZXJlIGlzCi0gIG5vIG1vcmUgY29udGVudCB0
byBzZW5kLiBUaGUgbnVtYmVyIG9mIGl0ZW1zIHRvIHJlcGVhdCBtdXN0IGJlIGV2ZW4uCi0KLUlu
IHRoZSBhYnNlbmNlIG9mIGEgcmVwZXRpdGlvbiBjb21tYW5kLCB0aGUgZW50aXJlIHJlbWFpbmRl
ciBvZiB0aGUgY29udGVudCBpcwotc2VudCBhdCBvbmNlIHdoZW4gdGhlIGNvbW1hbmQgbGlzdCBp
cyBleGhhdXN0ZWQuIFNvIGZvciBleGFtcGxlOjoKLQotICAgIGV4YW1wbGUudHh0P3BpcGU9dHJp
Y2tsZShkMSkKLQotY2F1c2VzIGEgMXMgZGVsYXkgYmVmb3JlIHNlbmRpbmcgdGhlIGVudGlyZXR5
IG9mIGV4YW1wbGUudHh0LgotCi06OgotCi0gICAgZXhhbXBsZS50eHQ/cGlwZT10cmlja2xlKDEw
MDpkMSkKLQotY2F1c2VzIDEwMCBieXRlcyBvZiBleGFtcGxlLnR4dCB0byBiZSBzZW50LCBmb2xs
b3dlZCBieSBhIDFzIGRlbGF5LAotYW5kIHRoZW4gdGhlIHJlbWFpbmRlciBvZiB0aGUgZmlsZSB0
byBiZSBzZW50LiBPbiB0aGUgb3RoZXIgaGFuZDo6Ci0KLSAgICBleGFtcGxlLnR4dD9waXBlPXRy
aWNrbGUoMTAwOmQxOnIyKQotCi1XaWxsIGNhdXNlIHRoZSBmaWxlIHRvIGJlIHNlbnQgaW4gMTAw
IGJ5dGUgY2h1bmtzIHNlcGFyYXRlZCBieSBhIDFzCi1kZWxheSB1bnRpbCB0aGUgd2hvbGUgY29u
dGVudCBoYXMgYmVlbiBzZW50LgotCi0KLTptb2Q6YEludGVyZmFjZSA8cGlwZXM+YAotLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tCis6bW9kOmBJbnRlcmZhY2UgPHdwdHNlcnZlLnBpcGVzPmAKKy0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogCiAuLiBhdXRvbW9kdWxlOjogd3B0c2Vy
dmUucGlwZXMKICAgIDptZW1iZXJzOgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRzZXJ2ZS9kb2NzL3JlcXVlc3QucnN0IGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRzZXJ2
ZS9kb2NzL3JlcXVlc3QucnN0CmluZGV4IDc5MGU0ZjBiYjAyLi5lZjViOGEwYzA4ZSAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93
cHRzZXJ2ZS9kb2NzL3JlcXVlc3QucnN0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0c2VydmUvZG9jcy9yZXF1ZXN0LnJzdApAQCAtMyw4
ICszLDggQEAgUmVxdWVzdAogCiBSZXF1ZXN0IG9iamVjdC4KIAotOm1vZDpgSW50ZXJmYWNlIDxy
ZXF1ZXN0PmAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCis6bW9kOmBJbnRlcmZhY2UgPHdw
dHNlcnZlLnJlcXVlc3Q+YAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIAog
Li4gYXV0b21vZHVsZTo6IHdwdHNlcnZlLnJlcXVlc3QKICAgIDptZW1iZXJzOgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRz
ZXJ2ZS9kb2NzL3Jlc3BvbnNlLnJzdCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvd3B0c2VydmUvZG9jcy9yZXNwb25zZS5yc3QKaW5kZXggMjMwNzVk
ZmIzZDkuLjBjMmY0NWNlMjY0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHNlcnZlL2RvY3MvcmVzcG9uc2UucnN0CisrKyBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0c2Vy
dmUvZG9jcy9yZXNwb25zZS5yc3QKQEAgLTM0LDggKzM0LDggQEAgY29udGludWUgdG8gbG9hZCBp
bmRlZmluaXRlbHkuCiAKIC4uIF9yZXNwb25zZS5JbnRlcmZhY2U6CiAKLTptb2Q6YEludGVyZmFj
ZSA8cmVzcG9uc2U+YAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCis6bW9kOmBJbnRlcmZh
Y2UgPHdwdHNlcnZlLnJlc3BvbnNlPmAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLQogCiAuLiBhdXRvbW9kdWxlOjogd3B0c2VydmUucmVzcG9uc2UKICAgIDptZW1iZXJzOgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy93cHRzZXJ2ZS9kb2NzL3JvdXRlci5yc3QgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHNlcnZlL2RvY3Mvcm91dGVyLnJzdAppbmRleCAy
MWQ2N2QyMjI2OC4uOTg2ZjU4MTkyMjggMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0c2VydmUvZG9jcy9yb3V0ZXIucnN0Cisr
KyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0
c2VydmUvZG9jcy9yb3V0ZXIucnN0CkBAIC03MSw4ICs3MSw4IEBAIHJlc3BvbnNpYmxlIGZvciBj
b25zdHJ1Y3RpbmcgdGhlIHJlc3BvbnNlIHRvIHRoZSBIVFRQIHJlcXVlc3QuIFNlZQogCiAuLiBf
cm91dGVyLkludGVyZmFjZToKIAotOm1vZDpgSW50ZXJmYWNlIDx3cHRzZXJ2ZT5gCi0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0KKzptb2Q6YEludGVyZmFjZSA8d3B0c2VydmUucm91dGVyPmAK
Ky0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIAogLi4gYXV0b21vZHVsZTo6IHdw
dHNlcnZlLnJvdXRlcgogICAgOm1lbWJlcnM6CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHNlcnZlL2RvY3Mvc2VydmVyLnJz
dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0
c2VydmUvZG9jcy9zZXJ2ZXIucnN0CmluZGV4IDczMmY5ZmRjNzhhLi41Njg4YTBhM2JjZiAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy93cHRzZXJ2ZS9kb2NzL3NlcnZlci5yc3QKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRzZXJ2ZS9kb2NzL3NlcnZlci5yc3QKQEAgLTEz
LDggKzEzLDggQEAgcnVuIG9uIHBvcnQgODA4MCB1bnRpbCBpdCBpcyBraWxsZWQ6OgogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgcm91dGVzPVsoIkdFVCIsICIqIiwgaGFuZGxlcnMuZmls
ZV9oYW5kbGVyKV0pCiAgIGh0dHBkLnN0YXJ0KGJsb2NrPVRydWUpCiAKLTptb2Q6YEludGVyZmFj
ZSA8d3B0c2VydmU+YAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCis6bW9kOmBJbnRlcmZh
Y2UgPHdwdHNlcnZlLnNlcnZlcj5gCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
CiAKIC4uIGF1dG9tb2R1bGU6OiB3cHRzZXJ2ZS5zZXJ2ZXIKICAgIDptZW1iZXJzOgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93
cHRzZXJ2ZS9kb2NzL3N0YXNoLnJzdCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvd3B0c2VydmUvZG9jcy9zdGFzaC5yc3QKaW5kZXggNDk4NDZmMjEw
NjEuLjhiYTVlZDc0YTRhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHNlcnZlL2RvY3Mvc3Rhc2gucnN0CisrKyBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0c2VydmUvZG9j
cy9zdGFzaC5yc3QKQEAgLTI0LDggKzI0LDggQEAgQSB0eXBpY2FsIGV4YW1wbGUgb2YgdXNpbmcg
YSBzdGFzaCB0byBzdG9yZSBzdGF0ZSBtaWdodCBiZTo6CiAgICAgICAgICAgYXNzZXJ0IHJlcXVl
c3Quc2VydmVyLnN0YXNoLnRha2Uoa2V5KSBpcyBOb25lCiAgICAgICAgICAgcmV0dXJuIGtleQog
Ci06bW9kOmBJbnRlcmZhY2UgPHN0YXNoPmAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorOm1v
ZDpgSW50ZXJmYWNlIDx3cHRzZXJ2ZS5zdGFzaD5gCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0KIAogLi4gYXV0b21vZHVsZTo6IHdwdHNlcnZlLnN0YXNoCiAgICA6bWVtYmVyczoK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvd3B0c2VydmUvdGVzdHMvZnVuY3Rpb25hbC9iYXNlLnB5IGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRzZXJ2ZS90ZXN0cy9mdW5jdGlv
bmFsL2Jhc2UucHkKaW5kZXggZTQ5YzgyODdjNTkuLjBhZWNlYjYxNTg5IDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHNlcnZl
L3Rlc3RzL2Z1bmN0aW9uYWwvYmFzZS5weQorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHNlcnZlL3Rlc3RzL2Z1bmN0aW9uYWwvYmFzZS5w
eQpAQCAtOSw3ICs5LDcgQEAgaW1wb3J0IHVuaXR0ZXN0CiBmcm9tIHNpeC5tb3Zlcy51cmxsaWIu
cGFyc2UgaW1wb3J0IHVybGVuY29kZSwgdXJsdW5zcGxpdAogZnJvbSBzaXgubW92ZXMudXJsbGli
LnJlcXVlc3QgaW1wb3J0IFJlcXVlc3QgYXMgQmFzZVJlcXVlc3QKIGZyb20gc2l4Lm1vdmVzLnVy
bGxpYi5yZXF1ZXN0IGltcG9ydCB1cmxvcGVuCi1mcm9tIHNpeCBpbXBvcnQgYmluYXJ5X3R5cGUs
IGl0ZXJpdGVtcworZnJvbSBzaXggaW1wb3J0IGJpbmFyeV90eXBlLCBpdGVyaXRlbXMsIFBZMwog
CiBmcm9tIGh5cGVyIGltcG9ydCBIVFRQMjBDb25uZWN0aW9uLCB0bHMKIGltcG9ydCBzc2wKQEAg
LTc1LDEwICs3NSwxNSBAQCBjbGFzcyBUZXN0VXNpbmdTZXJ2ZXIodW5pdHRlc3QuVGVzdENhc2Up
OgogICAgICAgICAgICAgcmVxLmFkZF9kYXRhKGJvZHkpCiAKICAgICAgICAgaWYgYXV0aCBpcyBu
b3QgTm9uZToKLSAgICAgICAgICAgIHJlcS5hZGRfaGVhZGVyKCJBdXRob3JpemF0aW9uIiwgIkJh
c2ljICVzIiAlIGJhc2U2NC5iNjRlbmNvZGUoJyVzOiVzJyAlIGF1dGgpKQorICAgICAgICAgICAg
cmVxLmFkZF9oZWFkZXIoIkF1dGhvcml6YXRpb24iLCBiIkJhc2ljICVzIiAlIGJhc2U2NC5iNjRl
bmNvZGUoYiIlczolcyIgJSBhdXRoKSkKIAogICAgICAgICByZXR1cm4gdXJsb3BlbihyZXEpCiAK
KyAgICBkZWYgYXNzZXJ0X211bHRpcGxlX2hlYWRlcnMoc2VsZiwgcmVzcCwgbmFtZSwgdmFsdWVz
KToKKyAgICAgICAgaWYgUFkzOgorICAgICAgICAgICAgYXNzZXJ0IHJlc3AuaW5mbygpLmdldF9h
bGwobmFtZSkgPT0gdmFsdWVzCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBhc3NlcnQgcmVz
cC5pbmZvKClbbmFtZV0gPT0gIiwgIi5qb2luKHZhbHVlcykKIAogQHB5dGVzdC5tYXJrLnNraXBp
Zihub3Qgd3B0c2VydmUudXRpbHMuaHR0cDJfY29tcGF0aWJsZSgpLCByZWFzb249ImgyIHNlcnZl
ciBvbmx5IHdvcmtzIGluIHB5dGhvbiAyLjcuMTUiKQogY2xhc3MgVGVzdFVzaW5nSDJTZXJ2ZXI6
CkBAIC0xMDEsNSArMTA2LDUxIEBAIGNsYXNzIFRlc3RVc2luZ0gyU2VydmVyOgogICAgICAgICBz
ZWxmLmNvbm4uY29ubmVjdCgpCiAKICAgICBkZWYgdGVhcmRvd25fbWV0aG9kKHNlbGYsIHRlc3Rf
bWV0aG9kKToKLSAgICAgICAgc2VsZi5jb25uLmNsb3NlKCkKICAgICAgICAgc2VsZi5zZXJ2ZXIu
c3RvcCgpCisKKworY2xhc3MgVGVzdFdyYXBwZXJIYW5kbGVyVXNpbmdTZXJ2ZXIoVGVzdFVzaW5n
U2VydmVyKToKKyAgICAnJydGb3IgYSB3cmFwcGVyIGhhbmRsZXIsIGEgLmpzIGR1bW15IHRlc3Rp
bmcgZmlsZSBpcyByZXF1cmllZCB0byByZW5kZXIKKyAgICB0aGUgaHRtbCBmaWxlLiBUaGlzIGNs
YXNzIGV4dGVuZHMgdGhlIFRlc3RVc2luZ1NlcnZlciBhbmQgZG8gc29tZSBzb21lCisgICAgZXh0
cmEgd29yazogaXQgdHJpZXMgdG8gZ2VuZXJhdGUgdGhlIGR1bW15IC5qcyBmaWxlIGluIHNldFVw
IGFuZAorICAgIHJlbW92ZSBpdCBpbiB0ZWFyRG93bi4nJycKKyAgICBkdW1teV9qc19maWxlcyA9
IHt9CisKKyAgICBkZWYgZ2VuX2pzX2ZpbGUoc2VsZiwgZmlsZW5hbWUsIGVtcHR5PVRydWUsIGNv
bnRlbnQ9YicnKToKKyAgICAgICAgc2VsZi5yZW1vdmVfanNfZmlsZShmaWxlbmFtZSkKKworICAg
ICAgICB3aXRoIG9wZW4oZmlsZW5hbWUsICd3YicpIGFzIGZwOgorICAgICAgICAgICAgaWYgbm90
IGVtcHR5OgorICAgICAgICAgICAgICAgIGZwLndyaXRlKGNvbnRlbnQpCisKKyAgICBkZWYgcmVt
b3ZlX2pzX2ZpbGUoc2VsZiwgZmlsZW5hbWUpOgorICAgICAgICBpZiBvcy5wYXRoLmV4aXN0cyhm
aWxlbmFtZSk6CisgICAgICAgICAgICBvcy5yZW1vdmUoZmlsZW5hbWUpCisKKyAgICBkZWYgc2V0
VXAoc2VsZik6CisgICAgICAgIHN1cGVyKFRlc3RXcmFwcGVySGFuZGxlclVzaW5nU2VydmVyLCBz
ZWxmKS5zZXRVcCgpCisKKyAgICAgICAgZm9yIGZpbGVuYW1lLCBjb250ZW50IGluIHNlbGYuZHVt
bXlfanNfZmlsZXMuaXRlbXMoKToKKyAgICAgICAgICAgIGZpbGVwYXRoID0gb3MucGF0aC5qb2lu
KGRvY19yb290LCBmaWxlbmFtZSkKKyAgICAgICAgICAgIGlmIGNvbnRlbnQgPT0gJyc6CisgICAg
ICAgICAgICAgICAgc2VsZi5nZW5fanNfZmlsZShmaWxlcGF0aCkKKyAgICAgICAgICAgIGVsc2U6
CisgICAgICAgICAgICAgICAgc2VsZi5nZW5fanNfZmlsZShmaWxlcGF0aCwgRmFsc2UsIGNvbnRl
bnQpCisKKyAgICBkZWYgcnVuX3dyYXBwZXJfdGVzdChzZWxmLCByZXFfZmlsZSwgaGVhZGVyX2Rh
dGEsIHdyYXBwZXJfaGFuZGxlcik6CisgICAgICAgIHJvdXRlID0gKCdHRVQnLCByZXFfZmlsZSwg
d3JhcHBlcl9oYW5kbGVyKCkpCisgICAgICAgIHNlbGYuc2VydmVyLnJvdXRlci5yZWdpc3Rlcigq
cm91dGUpCisKKyAgICAgICAgcmVzcCA9IHNlbGYucmVxdWVzdChyb3V0ZVsxXSkKKyAgICAgICAg
c2VsZi5hc3NlcnRFcXVhbCgyMDAsIHJlc3AuZ2V0Y29kZSgpKQorICAgICAgICBzZWxmLmFzc2Vy
dEVxdWFsKGhlYWRlcl9kYXRhLCByZXNwLmluZm8oKVsnQ29udGVudC1UeXBlJ10pCisKKyAgICAg
ICAgd2l0aCBvcGVuKG9zLnBhdGguam9pbihkb2Nfcm9vdCwgcmVxX2ZpbGUpLCAncmInKSBhcyBm
cDoKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZnAucmVhZCgpLCByZXNwLnJlYWQoKSkK
KworICAgIGRlZiB0ZWFyRG93bihzZWxmKToKKyAgICAgICAgc3VwZXIoVGVzdFdyYXBwZXJIYW5k
bGVyVXNpbmdTZXJ2ZXIsIHNlbGYpLnRlYXJEb3duKCkKKworICAgICAgICBmb3IgZmlsZW5hbWUs
IF8gaW4gc2VsZi5kdW1teV9qc19maWxlcy5pdGVtcygpOgorICAgICAgICAgICAgZmlsZXBhdGgg
PSBvcy5wYXRoLmpvaW4oZG9jX3Jvb3QsIGZpbGVuYW1lKQorICAgICAgICAgICAgc2VsZi5yZW1v
dmVfanNfZmlsZShmaWxlcGF0aCkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0c2VydmUvdGVzdHMvZnVuY3Rpb25hbC9kb2Ny
b290L2Jhci5hbnkud29ya2VyLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHNlcnZlL3Rlc3RzL2Z1bmN0aW9uYWwvZG9jcm9vdC9iYXIu
YW55Lndvcmtlci5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi4y
MzgyOTEzNTI4ZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0c2VydmUvdGVzdHMvZnVuY3Rpb25hbC9kb2Nyb290
L2Jhci5hbnkud29ya2VyLmh0bWwKQEAgLTAsMCArMSBAQAorPCEtLSBUaGlzIGZpbGUgaXMgcmVx
dWlyZWQgZm9yIFdlYktpdCB0ZXN0IGluZnJhc3RydWN0dXJlIHRvIHJ1biB0aGUgdGVtcGxhdGVk
IHRlc3QgLS0+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRzZXJ2ZS90ZXN0
cy9mdW5jdGlvbmFsL2RvY3Jvb3QvYmFyLmFueS53b3JrZXIuanMgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHNlcnZlL3Rlc3RzL2Z1bmN0aW9u
YWwvZG9jcm9vdC9iYXIuYW55Lndvcmtlci5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMC4uNjZiN2JlMzkwNDkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHNlcnZlL3Rlc3RzL2Z1bmN0
aW9uYWwvZG9jcm9vdC9iYXIuYW55Lndvcmtlci5qcwpAQCAtMCwwICsxLDkgQEAKKworc2VsZi5H
TE9CQUwgPSB7CisgIGlzV2luZG93OiBmdW5jdGlvbigpIHsgcmV0dXJuIGZhbHNlOyB9LAorICBp
c1dvcmtlcjogZnVuY3Rpb24oKSB7IHJldHVybiB0cnVlOyB9LAorfTsKK2ltcG9ydFNjcmlwdHMo
Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiKTsKKworaW1wb3J0U2NyaXB0cygiL2Jhci5hbnku
anMiKTsKK2RvbmUoKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0c2VydmUvdGVzdHMvZnVuY3Rpb25hbC9kb2Nyb290L2Zv
by5hbnkuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvd3B0c2VydmUvdGVzdHMvZnVuY3Rpb25hbC9kb2Nyb290L2Zvby5hbnkuaHRtbApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uODhlMjY2NWM2NjkKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3dwdHNlcnZlL3Rlc3RzL2Z1bmN0aW9uYWwvZG9jcm9vdC9mb28uYW55Lmh0bWwKQEAgLTAs
MCArMSwxNCBAQAorPCFkb2N0eXBlIGh0bWw+Cis8bWV0YSBjaGFyc2V0PXV0Zi04PgorCis8c2Ny
aXB0Pgorc2VsZi5HTE9CQUwgPSB7CisgIGlzV2luZG93OiBmdW5jdGlvbigpIHsgcmV0dXJuIHRy
dWU7IH0sCisgIGlzV29ya2VyOiBmdW5jdGlvbigpIHsgcmV0dXJuIGZhbHNlOyB9LAorfTsKKzwv
c2NyaXB0PgorPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0
PgorPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0
PgorCis8ZGl2IGlkPWxvZz48L2Rpdj4KKzxzY3JpcHQgc3JjPSIvZm9vLmFueS5qcyI+PC9zY3Jp
cHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3dwdHNlcnZlL3Rlc3RzL2Z1bmN0aW9uYWwvZG9jcm9vdC9mb28uYW55LnNlcnZp
Y2V3b3JrZXIuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvd3B0c2VydmUvdGVzdHMvZnVuY3Rpb25hbC9kb2Nyb290L2Zvby5hbnkuc2Vydmlj
ZXdvcmtlci5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi44ZGNi
MTFhMzc2OAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0c2VydmUvdGVzdHMvZnVuY3Rpb25hbC9kb2Nyb290L2Zv
by5hbnkuc2VydmljZXdvcmtlci5odG1sCkBAIC0wLDAgKzEsMTUgQEAKKzwhZG9jdHlwZSBodG1s
PgorPG1ldGEgY2hhcnNldD11dGYtOD4KKworPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhh
cm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3Ny
ZXBvcnQuanMiPjwvc2NyaXB0PgorPGRpdiBpZD1sb2c+PC9kaXY+Cis8c2NyaXB0PgorKGFzeW5j
IGZ1bmN0aW9uKCkgeworICBjb25zdCBzY29wZSA9ICdkb2VzL25vdC9leGlzdCc7CisgIGxldCBy
ZWcgPSBhd2FpdCBuYXZpZ2F0b3Iuc2VydmljZVdvcmtlci5nZXRSZWdpc3RyYXRpb24oc2NvcGUp
OworICBpZiAocmVnKSBhd2FpdCByZWcudW5yZWdpc3RlcigpOworICByZWcgPSBhd2FpdCBuYXZp
Z2F0b3Iuc2VydmljZVdvcmtlci5yZWdpc3RlcigiL2Zvby5hbnkud29ya2VyLmpzIiwge3Njb3Bl
fSk7CisgIGZldGNoX3Rlc3RzX2Zyb21fd29ya2VyKHJlZy5pbnN0YWxsaW5nKTsKK30pKCk7Cis8
L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvd3B0c2VydmUvdGVzdHMvZnVuY3Rpb25hbC9kb2Nyb290L2Zvby5hbnku
c2hhcmVkd29ya2VyLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3dwdHNlcnZlL3Rlc3RzL2Z1bmN0aW9uYWwvZG9jcm9vdC9mb28uYW55LnNo
YXJlZHdvcmtlci5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi4y
NzcxMDE2OTdmZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0c2VydmUvdGVzdHMvZnVuY3Rpb25hbC9kb2Nyb290
L2Zvby5hbnkuc2hhcmVkd29ya2VyLmh0bWwKQEAgLTAsMCArMSw5IEBACis8IWRvY3R5cGUgaHRt
bD4KKzxtZXRhIGNoYXJzZXQ9dXRmLTg+CisKKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3Ro
YXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNz
cmVwb3J0LmpzIj48L3NjcmlwdD4KKzxkaXYgaWQ9bG9nPjwvZGl2PgorPHNjcmlwdD4KK2ZldGNo
X3Rlc3RzX2Zyb21fd29ya2VyKG5ldyBTaGFyZWRXb3JrZXIoIi9mb28uYW55Lndvcmtlci5qcyIp
KTsKKzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy93cHRzZXJ2ZS90ZXN0cy9mdW5jdGlvbmFsL2RvY3Jvb3QvZm9v
LmFueS53b3JrZXIuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvd3B0c2VydmUvdGVzdHMvZnVuY3Rpb25hbC9kb2Nyb290L2Zvby5hbnkud29y
a2VyLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmY3N2VkZDk3
MWE0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy93cHRzZXJ2ZS90ZXN0cy9mdW5jdGlvbmFsL2RvY3Jvb3QvZm9vLmFu
eS53b3JrZXIuaHRtbApAQCAtMCwwICsxLDkgQEAKKzwhZG9jdHlwZSBodG1sPgorPG1ldGEgY2hh
cnNldD11dGYtOD4KKworPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwv
c2NyaXB0PgorPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwv
c2NyaXB0PgorPGRpdiBpZD1sb2c+PC9kaXY+Cis8c2NyaXB0PgorZmV0Y2hfdGVzdHNfZnJvbV93
b3JrZXIobmV3IFdvcmtlcigiL2Zvby5hbnkud29ya2VyLmpzIikpOworPC9zY3JpcHQ+CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3dwdHNlcnZlL3Rlc3RzL2Z1bmN0aW9uYWwvZG9jcm9vdC9mb28ud2luZG93Lmh0bWwgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHNlcnZlL3Rl
c3RzL2Z1bmN0aW9uYWwvZG9jcm9vdC9mb28ud2luZG93Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAuLjA0YzY5NGRkZjJhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRzZXJ2ZS90
ZXN0cy9mdW5jdGlvbmFsL2RvY3Jvb3QvZm9vLndpbmRvdy5odG1sCkBAIC0wLDAgKzEsOCBAQAor
PCFkb2N0eXBlIGh0bWw+Cis8bWV0YSBjaGFyc2V0PXV0Zi04PgorCis8c2NyaXB0IHNyYz0iL3Jl
c291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iL3Jlc291cmNl
cy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+CisKKzxkaXYgaWQ9bG9nPjwvZGl2Pgor
PHNjcmlwdCBzcmM9Ii9mb28ud2luZG93LmpzIj48L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0c2VydmUvdGVz
dHMvZnVuY3Rpb25hbC9kb2Nyb290L2Zvby53b3JrZXIuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0c2VydmUvdGVzdHMvZnVuY3Rpb25h
bC9kb2Nyb290L2Zvby53b3JrZXIuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMC4uM2VkZGYzNmYxYzMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHNlcnZlL3Rlc3RzL2Z1bmN0aW9u
YWwvZG9jcm9vdC9mb28ud29ya2VyLmh0bWwKQEAgLTAsMCArMSw5IEBACis8IWRvY3R5cGUgaHRt
bD4KKzxtZXRhIGNoYXJzZXQ9dXRmLTg+CisKKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3Ro
YXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNz
cmVwb3J0LmpzIj48L3NjcmlwdD4KKzxkaXYgaWQ9bG9nPjwvZGl2PgorPHNjcmlwdD4KK2ZldGNo
X3Rlc3RzX2Zyb21fd29ya2VyKG5ldyBXb3JrZXIoIi9mb28ud29ya2VyLmpzIikpOworPC9zY3Jp
cHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3dwdHNlcnZlL3Rlc3RzL2Z1bmN0aW9uYWwvZG9jcm9vdC9pbnZhbGlkLnB5IGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRzZXJ2
ZS90ZXN0cy9mdW5jdGlvbmFsL2RvY3Jvb3QvaW52YWxpZC5weQppbmRleCAwMTdkNGQ5ZDY5Ny4u
OTlmN2I3MmNlZWYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvd3B0c2VydmUvdGVzdHMvZnVuY3Rpb25hbC9kb2Nyb290L2ludmFs
aWQucHkKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy93cHRzZXJ2ZS90ZXN0cy9mdW5jdGlvbmFsL2RvY3Jvb3QvaW52YWxpZC5weQpAQCAtMSwz
ICsxLDMgQEAKLSMgT29wcy4uLgotZGVmIG1haW4ocmVxdWVzdCwgcmVzcG9uc2UKKyMgSW50ZW50
aW9uYWwgc3ludGF4IGVycm9yIGluIHRoaXMgZmlsZQorZGVmIG1haW4ocmVxdWVzdCwgcmVzcG9u
c2U6CiAgICAgcmV0dXJuICJGQUlMIgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRzZXJ2ZS90ZXN0cy9mdW5jdGlvbmFsL2Rv
Y3Jvb3Qvc3ViX2hlYWRlcl9vcl9kZWZhdWx0LnN1Yi50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHNlcnZlL3Rlc3RzL2Z1bmN0aW9uYWwv
ZG9jcm9vdC9zdWJfaGVhZGVyX29yX2RlZmF1bHQuc3ViLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMC4uZjFmOTQxYWExNjAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHNlcnZlL3Rl
c3RzL2Z1bmN0aW9uYWwvZG9jcm9vdC9zdWJfaGVhZGVyX29yX2RlZmF1bHQuc3ViLnR4dApAQCAt
MCwwICsxLDIgQEAKK3t7aGVhZGVyX29yX2RlZmF1bHQoWC1QcmVzZW50LCBwcmVzZW50LWRlZmF1
bHQpfX0KK3t7aGVhZGVyX29yX2RlZmF1bHQoWC1BYnNlbnQsIGFic2VudC1kZWZhdWx0KX19CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3dwdHNlcnZlL3Rlc3RzL2Z1bmN0aW9uYWwvZG9jcm9vdC9zdWJkaXIvc3ViX3BhdGguc3Vi
LnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
d3B0c2VydmUvdGVzdHMvZnVuY3Rpb25hbC9kb2Nyb290L3N1YmRpci9zdWJfcGF0aC5zdWIudHh0
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi40NDAyN2YyODU1ZQotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvd3B0c2VydmUvdGVzdHMvZnVuY3Rpb25hbC9kb2Nyb290L3N1YmRpci9zdWJfcGF0
aC5zdWIudHh0CkBAIC0wLDAgKzEsMyBAQAore3tmc19wYXRoKHN1Yl9wYXRoLnN1Yi50eHQpfX0K
K3t7ZnNfcGF0aCguLi9zdWJfcGF0aC5zdWIudHh0KX19Cit7e2ZzX3BhdGgoL3N1Yl9wYXRoLnN1
Yi50eHQpfX0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvd3B0c2VydmUvdGVzdHMvZnVuY3Rpb25hbC9kb2Nyb290L3N1YmRpci93
M2MtaW1wb3J0LmxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvd3B0c2VydmUvdGVzdHMvZnVuY3Rpb25hbC9kb2Nyb290L3N1YmRpci93M2MtaW1w
b3J0LmxvZwppbmRleCAxYTgwM2Y0ZmZkNS4uNmJjMjgzMzJhNDUgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0c2VydmUvdGVz
dHMvZnVuY3Rpb25hbC9kb2Nyb290L3N1YmRpci93M2MtaW1wb3J0LmxvZworKysgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHNlcnZlL3Rlc3Rz
L2Z1bmN0aW9uYWwvZG9jcm9vdC9zdWJkaXIvdzNjLWltcG9ydC5sb2cKQEAgLTE3LDMgKzE3LDQg
QEAgTGlzdCBvZiBmaWxlczoKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3dwdHNlcnZlL3Rlc3RzL2Z1bmN0aW9uYWwvZG9jcm9vdC9zdWJkaXIvZXhh
bXBsZV9tb2R1bGUucHkKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3dwdHNlcnZlL3Rlc3RzL2Z1bmN0aW9uYWwvZG9jcm9vdC9zdWJkaXIvZmlsZS50
eHQKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dw
dHNlcnZlL3Rlc3RzL2Z1bmN0aW9uYWwvZG9jcm9vdC9zdWJkaXIvaW1wb3J0X2hhbmRsZXIucHkK
Ky9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHNl
cnZlL3Rlc3RzL2Z1bmN0aW9uYWwvZG9jcm9vdC9zdWJkaXIvc3ViX3BhdGguc3ViLnR4dApkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy93cHRzZXJ2ZS90ZXN0cy9mdW5jdGlvbmFsL2RvY3Jvb3QvdzNjLWltcG9ydC5sb2cgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHNlcnZlL3Rl
c3RzL2Z1bmN0aW9uYWwvZG9jcm9vdC93M2MtaW1wb3J0LmxvZwppbmRleCBkM2ZlNjI3MDBmNS4u
NWQzMTZmNDMxNTggMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvd3B0c2VydmUvdGVzdHMvZnVuY3Rpb25hbC9kb2Nyb290L3czYy1p
bXBvcnQubG9nCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvd3B0c2VydmUvdGVzdHMvZnVuY3Rpb25hbC9kb2Nyb290L3czYy1pbXBvcnQubG9n
CkBAIC0xNCw3ICsxNCwxNCBAQCBQcm9wZXJ0eSB2YWx1ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVm
aXhlczoKIE5vbmUKIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogTGlzdCBvZiBmaWxlczoKKy9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHNlcnZlL3Rlc3RzL2Z1
bmN0aW9uYWwvZG9jcm9vdC9iYXIuYW55Lndvcmtlci5qcwogL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0c2VydmUvdGVzdHMvZnVuY3Rpb25hbC9k
b2Nyb290L2RvY3VtZW50LnR4dAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvd3B0c2VydmUvdGVzdHMvZnVuY3Rpb25hbC9kb2Nyb290L2Zvby5hbnku
aHRtbAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
d3B0c2VydmUvdGVzdHMvZnVuY3Rpb25hbC9kb2Nyb290L2Zvby5hbnkuc2VydmljZXdvcmtlci5o
dG1sCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93
cHRzZXJ2ZS90ZXN0cy9mdW5jdGlvbmFsL2RvY3Jvb3QvZm9vLmFueS5zaGFyZWR3b3JrZXIuaHRt
bAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0
c2VydmUvdGVzdHMvZnVuY3Rpb25hbC9kb2Nyb290L2Zvby5hbnkud29ya2VyLmh0bWwKKy9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHNlcnZlL3Rl
c3RzL2Z1bmN0aW9uYWwvZG9jcm9vdC9mb28ud2luZG93Lmh0bWwKKy9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHNlcnZlL3Rlc3RzL2Z1bmN0aW9u
YWwvZG9jcm9vdC9mb28ud29ya2VyLmh0bWwKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHNlcnZlL3Rlc3RzL2Z1bmN0aW9uYWwvZG9jcm9vdC9p
bnZhbGlkLnB5CiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy93cHRzZXJ2ZS90ZXN0cy9mdW5jdGlvbmFsL2RvY3Jvb3Qvbm9fbWFpbi5weQogL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0c2VydmUvdGVz
dHMvZnVuY3Rpb25hbC9kb2Nyb290L3N1Yi5zdWIudHh0CkBAIC0yMiw2ICsyOSw3IEBAIExpc3Qg
b2YgZmlsZXM6CiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy93cHRzZXJ2ZS90ZXN0cy9mdW5jdGlvbmFsL2RvY3Jvb3Qvc3ViX2ZpbGVfaGFzaC5zdWIu
dHh0CiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93
cHRzZXJ2ZS90ZXN0cy9mdW5jdGlvbmFsL2RvY3Jvb3Qvc3ViX2ZpbGVfaGFzaF9zdWJqZWN0LnR4
dAogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0
c2VydmUvdGVzdHMvZnVuY3Rpb25hbC9kb2Nyb290L3N1Yl9maWxlX2hhc2hfdW5yZWNvZ25pemVk
LnN1Yi50eHQKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3dwdHNlcnZlL3Rlc3RzL2Z1bmN0aW9uYWwvZG9jcm9vdC9zdWJfaGVhZGVyX29yX2RlZmF1
bHQuc3ViLnR4dAogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvd3B0c2VydmUvdGVzdHMvZnVuY3Rpb25hbC9kb2Nyb290L3N1Yl9oZWFkZXJzLnN1Yi50
eHQKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dw
dHNlcnZlL3Rlc3RzL2Z1bmN0aW9uYWwvZG9jcm9vdC9zdWJfaGVhZGVycy50eHQKIC9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHNlcnZlL3Rlc3Rz
L2Z1bmN0aW9uYWwvZG9jcm9vdC9zdWJfbG9jYXRpb24uc3ViLnR4dApkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRzZXJ2ZS90
ZXN0cy9mdW5jdGlvbmFsL3Rlc3RfY29va2llcy5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0c2VydmUvdGVzdHMvZnVuY3Rpb25hbC90ZXN0
X2Nvb2tpZXMucHkKaW5kZXggNmJjYjg0MmU2MjUuLjJlMmQwZDY3NzFiIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHNlcnZl
L3Rlc3RzL2Z1bmN0aW9uYWwvdGVzdF9jb29raWVzLnB5CisrKyBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0c2VydmUvdGVzdHMvZnVuY3Rpb25h
bC90ZXN0X2Nvb2tpZXMucHkKQEAgLTEsNCArMSwzIEBACi1pbXBvcnQgc3lzCiBpbXBvcnQgdW5p
dHRlc3QKIAogaW1wb3J0IHB5dGVzdApAQCAtNTEsNyArNTAsNiBAQCBjbGFzcyBUZXN0UmVzcG9u
c2VTZXRDb29raWUoVGVzdFVzaW5nU2VydmVyKToKICAgICAgICAgI1Nob3VsZCBhbHNvIGNoZWNr
IHRoYXQgZXhwaXJlcyBpcyBpbiB0aGUgcGFzdAogCiBjbGFzcyBUZXN0UmVxdWVzdENvb2tpZXMo
VGVzdFVzaW5nU2VydmVyKToKLSAgICBAcHl0ZXN0Lm1hcmsueGZhaWwoc3lzLnZlcnNpb25faW5m
byA+PSAoMywpLCByZWFzb249IndwdHNlcnZlIG9ubHkgd29ya3Mgb24gUHkyIikKICAgICBkZWYg
dGVzdF9zZXRfY29va2llKHNlbGYpOgogICAgICAgICBAd3B0c2VydmUuaGFuZGxlcnMuaGFuZGxl
cgogICAgICAgICBkZWYgaGFuZGxlcihyZXF1ZXN0LCByZXNwb25zZSk6CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHNlcnZl
L3Rlc3RzL2Z1bmN0aW9uYWwvdGVzdF9oYW5kbGVycy5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0c2VydmUvdGVzdHMvZnVuY3Rpb25hbC90
ZXN0X2hhbmRsZXJzLnB5CmluZGV4IDE1YzdjYjdlODAzLi44MTYzZDM2NWM5MSAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRz
ZXJ2ZS90ZXN0cy9mdW5jdGlvbmFsL3Rlc3RfaGFuZGxlcnMucHkKKysrIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRzZXJ2ZS90ZXN0cy9mdW5j
dGlvbmFsL3Rlc3RfaGFuZGxlcnMucHkKQEAgLTksNyArOSw5IEBAIGZyb20gc2l4Lm1vdmVzLnVy
bGxpYi5lcnJvciBpbXBvcnQgSFRUUEVycm9yCiAKIHdwdHNlcnZlID0gcHl0ZXN0LmltcG9ydG9y
c2tpcCgid3B0c2VydmUiKQogZnJvbSAuYmFzZSBpbXBvcnQgVGVzdFVzaW5nU2VydmVyLCBUZXN0
VXNpbmdIMlNlcnZlciwgZG9jX3Jvb3QKK2Zyb20gLmJhc2UgaW1wb3J0IFRlc3RXcmFwcGVySGFu
ZGxlclVzaW5nU2VydmVyCiAKK2Zyb20gc2VydmUgaW1wb3J0IHNlcnZlCiAKIGNsYXNzIFRlc3RG
aWxlSGFuZGxlcihUZXN0VXNpbmdTZXJ2ZXIpOgogICAgIGRlZiB0ZXN0X0dFVChzZWxmKToKQEAg
LTE4LDcgKzIwLDYgQEAgY2xhc3MgVGVzdEZpbGVIYW5kbGVyKFRlc3RVc2luZ1NlcnZlcik6CiAg
ICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoInRleHQvcGxhaW4iLCByZXNwLmluZm8oKVsiQ29udGVu
dC1UeXBlIl0pCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwob3Blbihvcy5wYXRoLmpvaW4oZG9j
X3Jvb3QsICJkb2N1bWVudC50eHQiKSwgJ3JiJykucmVhZCgpLCByZXNwLnJlYWQoKSkKIAotICAg
IEBweXRlc3QubWFyay54ZmFpbChzeXMudmVyc2lvbl9pbmZvID49ICgzLCksIHJlYXNvbj0id3B0
c2VydmUgb25seSB3b3JrcyBvbiBQeTIiKQogICAgIGRlZiB0ZXN0X2hlYWRlcnMoc2VsZik6CiAg
ICAgICAgIHJlc3AgPSBzZWxmLnJlcXVlc3QoIi93aXRoX2hlYWRlcnMudHh0IikKICAgICAgICAg
c2VsZi5hc3NlcnRFcXVhbCgyMDAsIHJlc3AuZ2V0Y29kZSgpKQpAQCAtMjcsNyArMjgsNyBAQCBj
bGFzcyBUZXN0RmlsZUhhbmRsZXIoVGVzdFVzaW5nU2VydmVyKToKICAgICAgICAgIyBUaGlzIHdp
bGwgZmFpbCBpZiBpdCBpc24ndCBhIHZhbGlkIHV1aWQKICAgICAgICAgdXVpZC5VVUlEKHJlc3Au
aW5mbygpWyJBbm90aGVyLUhlYWRlciJdKQogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHJlc3Au
aW5mbygpWyJTYW1lLVZhbHVlLUhlYWRlciJdLCByZXNwLmluZm8oKVsiQW5vdGhlci1IZWFkZXIi
XSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChyZXNwLmluZm8oKVsiRG91YmxlLUhlYWRlciJd
LCAiUEEsIFNTIikKKyAgICAgICAgc2VsZi5hc3NlcnRfbXVsdGlwbGVfaGVhZGVycyhyZXNwLCAi
RG91YmxlLUhlYWRlciIsIFsiUEEiLCAiU1MiXSkKIAogCiAgICAgZGVmIHRlc3RfcmFuZ2Uoc2Vs
Zik6CkBAIC01OSw3ICs2MCw2IEBAIGNsYXNzIFRlc3RGaWxlSGFuZGxlcihUZXN0VXNpbmdTZXJ2
ZXIpOgogICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3AuaW5mbygpWydDb250ZW50LVJhbmdl
J10pCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZXhwZWN0ZWRbLTEwOl0sIGRhdGEpCiAKLSAg
ICBAcHl0ZXN0Lm1hcmsueGZhaWwoc3lzLnZlcnNpb25faW5mbyA+PSAoMywpLCByZWFzb249Indw
dHNlcnZlIG9ubHkgd29ya3Mgb24gUHkyIikKICAgICBkZWYgdGVzdF9tdWx0aXBsZV9yYW5nZXMo
c2VsZik6CiAgICAgICAgIHJlc3AgPSBzZWxmLnJlcXVlc3QoIi9kb2N1bWVudC50eHQiLCBoZWFk
ZXJzPXsiUmFuZ2UiOiJieXRlcz0xLTIsNS03LDYtMTAifSkKICAgICAgICAgc2VsZi5hc3NlcnRF
cXVhbCgyMDYsIHJlc3AuZ2V0Y29kZSgpKQpAQCAtNjcsMTYgKzY3LDE2IEBAIGNsYXNzIFRlc3RG
aWxlSGFuZGxlcihUZXN0VXNpbmdTZXJ2ZXIpOgogICAgICAgICBleHBlY3RlZCA9IG9wZW4ob3Mu
cGF0aC5qb2luKGRvY19yb290LCAiZG9jdW1lbnQudHh0IiksICdyYicpLnJlYWQoKQogICAgICAg
ICBzZWxmLmFzc2VydFRydWUocmVzcC5pbmZvKClbIkNvbnRlbnQtVHlwZSJdLnN0YXJ0c3dpdGgo
Im11bHRpcGFydC9ieXRlcmFuZ2VzOyBib3VuZGFyeT0iKSkKICAgICAgICAgYm91bmRhcnkgPSBy
ZXNwLmluZm8oKVsiQ29udGVudC1UeXBlIl0uc3BsaXQoImJvdW5kYXJ5PSIpWzFdCi0gICAgICAg
IHBhcnRzID0gZGF0YS5zcGxpdCgiLS0iICsgYm91bmRhcnkpCi0gICAgICAgIHNlbGYuYXNzZXJ0
RXF1YWwoIlxyXG4iLCBwYXJ0c1swXSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgiLS0iLCBw
YXJ0c1stMV0pCi0gICAgICAgIGV4cGVjdGVkX3BhcnRzID0gWygiMS0yIiwgZXhwZWN0ZWRbMToz
XSksICgiNS0xMCIsIGV4cGVjdGVkWzU6MTFdKV0KKyAgICAgICAgcGFydHMgPSBkYXRhLnNwbGl0
KGIiLS0iICsgYm91bmRhcnkuZW5jb2RlKCJhc2NpaSIpKQorICAgICAgICBzZWxmLmFzc2VydEVx
dWFsKGIiXHJcbiIsIHBhcnRzWzBdKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGIiLS0iLCBw
YXJ0c1stMV0pCisgICAgICAgIGV4cGVjdGVkX3BhcnRzID0gWyhiIjEtMiIsIGV4cGVjdGVkWzE6
M10pLCAoYiI1LTEwIiwgZXhwZWN0ZWRbNToxMV0pXQogICAgICAgICBmb3IgZXhwZWN0ZWRfcGFy
dCwgcGFydCBpbiB6aXAoZXhwZWN0ZWRfcGFydHMsIHBhcnRzWzE6LTFdKToKLSAgICAgICAgICAg
IGhlYWRlcl9zdHJpbmcsIGJvZHkgPSBwYXJ0LnNwbGl0KCJcclxuXHJcbiIpCi0gICAgICAgICAg
ICBoZWFkZXJzID0gZGljdChpdGVtLnNwbGl0KCI6ICIsIDEpIGZvciBpdGVtIGluIGhlYWRlcl9z
dHJpbmcuc3BsaXQoIlxyXG4iKSBpZiBpdGVtLnN0cmlwKCkpCi0gICAgICAgICAgICBzZWxmLmFz
c2VydEVxdWFsKGhlYWRlcnNbIkNvbnRlbnQtVHlwZSJdLCAidGV4dC9wbGFpbiIpCi0gICAgICAg
ICAgICBzZWxmLmFzc2VydEVxdWFsKGhlYWRlcnNbIkNvbnRlbnQtUmFuZ2UiXSwgImJ5dGVzICVz
LyVpIiAlIChleHBlY3RlZF9wYXJ0WzBdLCBsZW4oZXhwZWN0ZWQpKSkKLSAgICAgICAgICAgIHNl
bGYuYXNzZXJ0RXF1YWwoZXhwZWN0ZWRfcGFydFsxXSArICJcclxuIiwgYm9keSkKKyAgICAgICAg
ICAgIGhlYWRlcl9zdHJpbmcsIGJvZHkgPSBwYXJ0LnNwbGl0KGIiXHJcblxyXG4iKQorICAgICAg
ICAgICAgaGVhZGVycyA9IGRpY3QoaXRlbS5zcGxpdChiIjogIiwgMSkgZm9yIGl0ZW0gaW4gaGVh
ZGVyX3N0cmluZy5zcGxpdChiIlxyXG4iKSBpZiBpdGVtLnN0cmlwKCkpCisgICAgICAgICAgICBz
ZWxmLmFzc2VydEVxdWFsKGhlYWRlcnNbYiJDb250ZW50LVR5cGUiXSwgYiJ0ZXh0L3BsYWluIikK
KyAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoaGVhZGVyc1tiIkNvbnRlbnQtUmFuZ2UiXSwg
YiJieXRlcyAlcy8laSIgJSAoZXhwZWN0ZWRfcGFydFswXSwgbGVuKGV4cGVjdGVkKSkpCisgICAg
ICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGV4cGVjdGVkX3BhcnRbMV0gKyBiIlxyXG4iLCBib2R5
KQogCiAgICAgZGVmIHRlc3RfcmFuZ2VfaW52YWxpZChzZWxmKToKICAgICAgICAgd2l0aCBzZWxm
LmFzc2VydFJhaXNlcyhIVFRQRXJyb3IpIGFzIGNtOgpAQCAtODgsMTkgKzg4LDE2IEBAIGNsYXNz
IFRlc3RGaWxlSGFuZGxlcihUZXN0VXNpbmdTZXJ2ZXIpOgogICAgICAgICAgICAgc2VsZi5yZXF1
ZXN0KCIvZG9jdW1lbnQudHh0IiwgaGVhZGVycz17IlJhbmdlIjoiYnl0ZXM9JWktJWkiICUgKGxl
bihleHBlY3RlZCksIGxlbihleHBlY3RlZCkgKyAxMCl9KQogICAgICAgICBzZWxmLmFzc2VydEVx
dWFsKGNtLmV4Y2VwdGlvbi5jb2RlLCA0MTYpCiAKLSAgICBAcHl0ZXN0Lm1hcmsueGZhaWwoc3lz
LnZlcnNpb25faW5mbyA+PSAoMywpLCByZWFzb249IndwdHNlcnZlIG9ubHkgd29ya3Mgb24gUHky
IikKICAgICBkZWYgdGVzdF9zdWJfY29uZmlnKHNlbGYpOgogICAgICAgICByZXNwID0gc2VsZi5y
ZXF1ZXN0KCIvc3ViLnN1Yi50eHQiKQogICAgICAgICBleHBlY3RlZCA9IGIibG9jYWxob3N0IGxv
Y2FsaG9zdCAlaSIgJSBzZWxmLnNlcnZlci5wb3J0CiAgICAgICAgIGFzc2VydCByZXNwLnJlYWQo
KS5yc3RyaXAoKSA9PSBleHBlY3RlZAogCi0gICAgQHB5dGVzdC5tYXJrLnhmYWlsKHN5cy52ZXJz
aW9uX2luZm8gPj0gKDMsKSwgcmVhc29uPSJ3cHRzZXJ2ZSBvbmx5IHdvcmtzIG9uIFB5MiIpCiAg
ICAgZGVmIHRlc3Rfc3ViX2hlYWRlcnMoc2VsZik6CiAgICAgICAgIHJlc3AgPSBzZWxmLnJlcXVl
c3QoIi9zdWJfaGVhZGVycy5zdWIudHh0IiwgaGVhZGVycz17IlgtVGVzdCI6ICJQQVNTIn0pCiAg
ICAgICAgIGV4cGVjdGVkID0gYiJQQVNTIgogICAgICAgICBhc3NlcnQgcmVzcC5yZWFkKCkucnN0
cmlwKCkgPT0gZXhwZWN0ZWQKIAotICAgIEBweXRlc3QubWFyay54ZmFpbChzeXMudmVyc2lvbl9p
bmZvID49ICgzLCksIHJlYXNvbj0id3B0c2VydmUgb25seSB3b3JrcyBvbiBQeTIiKQogICAgIGRl
ZiB0ZXN0X3N1Yl9wYXJhbXMoc2VsZik6CiAgICAgICAgIHJlc3AgPSBzZWxmLnJlcXVlc3QoIi9z
dWJfcGFyYW1zLnN1Yi50eHQiLCBxdWVyeT0idGVzdD1QQVNTIikKICAgICAgICAgZXhwZWN0ZWQg
PSBiIlBBU1MiCkBAIC0xMDgsNyArMTA1LDYgQEAgY2xhc3MgVGVzdEZpbGVIYW5kbGVyKFRlc3RV
c2luZ1NlcnZlcik6CiAKIAogY2xhc3MgVGVzdEZ1bmN0aW9uSGFuZGxlcihUZXN0VXNpbmdTZXJ2
ZXIpOgotICAgIEBweXRlc3QubWFyay54ZmFpbChzeXMudmVyc2lvbl9pbmZvID49ICgzLCksIHJl
YXNvbj0id3B0c2VydmUgb25seSB3b3JrcyBvbiBQeTIiKQogICAgIGRlZiB0ZXN0X3N0cmluZ19y
dihzZWxmKToKICAgICAgICAgQHdwdHNlcnZlLmhhbmRsZXJzLmhhbmRsZXIKICAgICAgICAgZGVm
IGhhbmRsZXIocmVxdWVzdCwgcmVzcG9uc2UpOgpAQCAtMTE5LDcgKzExNSw3IEBAIGNsYXNzIFRl
c3RGdW5jdGlvbkhhbmRsZXIoVGVzdFVzaW5nU2VydmVyKToKICAgICAgICAgcmVzcCA9IHNlbGYu
cmVxdWVzdChyb3V0ZVsxXSkKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgyMDAsIHJlc3AuZ2V0
Y29kZSgpKQogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCI5IiwgcmVzcC5pbmZvKClbIkNvbnRl
bnQtTGVuZ3RoIl0pCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoInRlc3QgZGF0YSIsIHJlc3Au
cmVhZCgpKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGIidGVzdCBkYXRhIiwgcmVzcC5yZWFk
KCkpCiAKICAgICBkZWYgdGVzdF90dXBsZV8xX3J2KHNlbGYpOgogICAgICAgICBAd3B0c2VydmUu
aGFuZGxlcnMuaGFuZGxlcgpAQCAtMTM0LDcgKzEzMCw2IEBAIGNsYXNzIFRlc3RGdW5jdGlvbkhh
bmRsZXIoVGVzdFVzaW5nU2VydmVyKToKIAogICAgICAgICBhc3NlcnQgY20udmFsdWUuY29kZSA9
PSA1MDAKIAotICAgIEBweXRlc3QubWFyay54ZmFpbChzeXMudmVyc2lvbl9pbmZvID49ICgzLCks
IHJlYXNvbj0id3B0c2VydmUgb25seSB3b3JrcyBvbiBQeTIiKQogICAgIGRlZiB0ZXN0X3R1cGxl
XzJfcnYoc2VsZik6CiAgICAgICAgIEB3cHRzZXJ2ZS5oYW5kbGVycy5oYW5kbGVyCiAgICAgICAg
IGRlZiBoYW5kbGVyKHJlcXVlc3QsIHJlc3BvbnNlKToKQEAgLTE0Niw5ICsxNDEsOCBAQCBjbGFz
cyBUZXN0RnVuY3Rpb25IYW5kbGVyKFRlc3RVc2luZ1NlcnZlcik6CiAgICAgICAgIHNlbGYuYXNz
ZXJ0RXF1YWwoMjAwLCByZXNwLmdldGNvZGUoKSkKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgi
NCIsIHJlc3AuaW5mbygpWyJDb250ZW50LUxlbmd0aCJdKQogICAgICAgICBzZWxmLmFzc2VydEVx
dWFsKCJ0ZXN0LXZhbHVlIiwgcmVzcC5pbmZvKClbInRlc3QtaGVhZGVyIl0pCi0gICAgICAgIHNl
bGYuYXNzZXJ0RXF1YWwoInRlc3QiLCByZXNwLnJlYWQoKSkKKyAgICAgICAgc2VsZi5hc3NlcnRF
cXVhbChiInRlc3QiLCByZXNwLnJlYWQoKSkKIAotICAgIEBweXRlc3QubWFyay54ZmFpbChzeXMu
dmVyc2lvbl9pbmZvID49ICgzLCksIHJlYXNvbj0id3B0c2VydmUgb25seSB3b3JrcyBvbiBQeTIi
KQogICAgIGRlZiB0ZXN0X3R1cGxlXzNfcnYoc2VsZik6CiAgICAgICAgIEB3cHRzZXJ2ZS5oYW5k
bGVycy5oYW5kbGVyCiAgICAgICAgIGRlZiBoYW5kbGVyKHJlcXVlc3QsIHJlc3BvbnNlKToKQEAg
LTE1OSw5ICsxNTMsOCBAQCBjbGFzcyBUZXN0RnVuY3Rpb25IYW5kbGVyKFRlc3RVc2luZ1NlcnZl
cik6CiAgICAgICAgIHJlc3AgPSBzZWxmLnJlcXVlc3Qocm91dGVbMV0pCiAgICAgICAgIHNlbGYu
YXNzZXJ0RXF1YWwoMjAyLCByZXNwLmdldGNvZGUoKSkKICAgICAgICAgc2VsZi5hc3NlcnRFcXVh
bCgidGVzdC12YWx1ZSIsIHJlc3AuaW5mbygpWyJ0ZXN0LWhlYWRlciJdKQotICAgICAgICBzZWxm
LmFzc2VydEVxdWFsKCJ0ZXN0IGRhdGEiLCByZXNwLnJlYWQoKSkKKyAgICAgICAgc2VsZi5hc3Nl
cnRFcXVhbChiInRlc3QgZGF0YSIsIHJlc3AucmVhZCgpKQogCi0gICAgQHB5dGVzdC5tYXJrLnhm
YWlsKHN5cy52ZXJzaW9uX2luZm8gPj0gKDMsKSwgcmVhc29uPSJ3cHRzZXJ2ZSBvbmx5IHdvcmtz
IG9uIFB5MiIpCiAgICAgZGVmIHRlc3RfdHVwbGVfM19ydl8xKHNlbGYpOgogICAgICAgICBAd3B0
c2VydmUuaGFuZGxlcnMuaGFuZGxlcgogICAgICAgICBkZWYgaGFuZGxlcihyZXF1ZXN0LCByZXNw
b25zZSk6CkBAIC0xNzMsNyArMTY2LDcgQEAgY2xhc3MgVGVzdEZ1bmN0aW9uSGFuZGxlcihUZXN0
VXNpbmdTZXJ2ZXIpOgogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKDIwMiwgcmVzcC5nZXRjb2Rl
KCkpCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoIlNvbWUgU3RhdHVzIiwgcmVzcC5tc2cpCiAg
ICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoInRlc3QtdmFsdWUiLCByZXNwLmluZm8oKVsidGVzdC1o
ZWFkZXIiXSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgidGVzdCBkYXRhIiwgcmVzcC5yZWFk
KCkpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYiJ0ZXN0IGRhdGEiLCByZXNwLnJlYWQoKSkK
IAogICAgIGRlZiB0ZXN0X3R1cGxlXzRfcnYoc2VsZik6CiAgICAgICAgIEB3cHRzZXJ2ZS5oYW5k
bGVycy5oYW5kbGVyCkBAIC0yNDEsMTIgKzIzNCwxMSBAQCBjbGFzcyBUZXN0SlNPTkhhbmRsZXIo
VGVzdFVzaW5nU2VydmVyKToKIAogCiBjbGFzcyBUZXN0UHl0aG9uSGFuZGxlcihUZXN0VXNpbmdT
ZXJ2ZXIpOgotICAgIEBweXRlc3QubWFyay54ZmFpbChzeXMudmVyc2lvbl9pbmZvID49ICgzLCks
IHJlYXNvbj0id3B0c2VydmUgb25seSB3b3JrcyBvbiBQeTIiKQogICAgIGRlZiB0ZXN0X3N0cmlu
ZyhzZWxmKToKICAgICAgICAgcmVzcCA9IHNlbGYucmVxdWVzdCgiL3Rlc3Rfc3RyaW5nLnB5IikK
ICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgyMDAsIHJlc3AuZ2V0Y29kZSgpKQogICAgICAgICBz
ZWxmLmFzc2VydEVxdWFsKCJ0ZXh0L3BsYWluIiwgcmVzcC5pbmZvKClbIkNvbnRlbnQtVHlwZSJd
KQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCJQQVNTIiwgcmVzcC5yZWFkKCkpCisgICAgICAg
IHNlbGYuYXNzZXJ0RXF1YWwoYiJQQVNTIiwgcmVzcC5yZWFkKCkpCiAKICAgICBkZWYgdGVzdF90
dXBsZV8yKHNlbGYpOgogICAgICAgICByZXNwID0gc2VsZi5yZXF1ZXN0KCIvdGVzdF90dXBsZV8y
LnB5IikKQEAgLTI2Myw3ICsyNTUsNiBAQCBjbGFzcyBUZXN0UHl0aG9uSGFuZGxlcihUZXN0VXNp
bmdTZXJ2ZXIpOgogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCJQQVNTIiwgcmVzcC5pbmZvKClb
IlgtVGVzdCJdKQogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGIiUEFTUyIsIHJlc3AucmVhZCgp
KQogCi0gICAgQHB5dGVzdC5tYXJrLnhmYWlsKHN5cy52ZXJzaW9uX2luZm8gPj0gKDMsKSwgcmVh
c29uPSJ3cHRzZXJ2ZSBvbmx5IHdvcmtzIG9uIFB5MiIpCiAgICAgZGVmIHRlc3RfaW1wb3J0KHNl
bGYpOgogICAgICAgICBkaXJfbmFtZSA9IG9zLnBhdGguam9pbihkb2Nfcm9vdCwgInN1YmRpciIp
CiAgICAgICAgIGFzc2VydCBkaXJfbmFtZSBub3QgaW4gc3lzLnBhdGgKQEAgLTI3Myw3ICsyNjQs
NyBAQCBjbGFzcyBUZXN0UHl0aG9uSGFuZGxlcihUZXN0VXNpbmdTZXJ2ZXIpOgogICAgICAgICBh
c3NlcnQgInRlc3RfbW9kdWxlIiBub3QgaW4gc3lzLm1vZHVsZXMKICAgICAgICAgc2VsZi5hc3Nl
cnRFcXVhbCgyMDAsIHJlc3AuZ2V0Y29kZSgpKQogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCJ0
ZXh0L3BsYWluIiwgcmVzcC5pbmZvKClbIkNvbnRlbnQtVHlwZSJdKQotICAgICAgICBzZWxmLmFz
c2VydEVxdWFsKCJQQVNTIiwgcmVzcC5yZWFkKCkpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwo
YiJQQVNTIiwgcmVzcC5yZWFkKCkpCiAKICAgICBkZWYgdGVzdF9ub19tYWluKHNlbGYpOgogICAg
ICAgICB3aXRoIHB5dGVzdC5yYWlzZXMoSFRUUEVycm9yKSBhcyBjbToKQEAgLTMxNCwxMyArMzA1
LDEyIEBAIGNsYXNzIFRlc3REaXJlY3RvcnlIYW5kbGVyKFRlc3RVc2luZ1NlcnZlcik6CiAKIAog
Y2xhc3MgVGVzdEFzSXNIYW5kbGVyKFRlc3RVc2luZ1NlcnZlcik6Ci0gICAgQHB5dGVzdC5tYXJr
LnhmYWlsKHN5cy52ZXJzaW9uX2luZm8gPj0gKDMsKSwgcmVhc29uPSJ3cHRzZXJ2ZSBvbmx5IHdv
cmtzIG9uIFB5MiIpCiAgICAgZGVmIHRlc3RfYXNfaXMoc2VsZik6CiAgICAgICAgIHJlc3AgPSBz
ZWxmLnJlcXVlc3QoIi90ZXN0LmFzaXMiKQogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKDIwMiwg
cmVzcC5nZXRjb2RlKCkpCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoIkdpcmFmZmUiLCByZXNw
Lm1zZykKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgiUEFTUyIsIHJlc3AuaW5mbygpWyJYLVRl
c3QiXSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgiQ29udGVudCIsIHJlc3AucmVhZCgpKQor
ICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGIiQ29udGVudCIsIHJlc3AucmVhZCgpKQogICAgICAg
ICAjQWRkIGEgY2hlY2sgdGhhdCB0aGUgcmVzcG9uc2UgaXMgYWN0dWFsbHkgc2FuZQogCiAKQEAg
LTM5Nyw1ICszODcsNTggQEAgY2xhc3MgVGVzdEgySGFuZGxlcihUZXN0VXNpbmdIMlNlcnZlcik6
CiAgICAgICAgIGFzc2VydCByZXNwLnJlYWQoKSA9PSAnJwogCiAKK2NsYXNzIFRlc3RXb3JrZXJz
SGFuZGxlcihUZXN0V3JhcHBlckhhbmRsZXJVc2luZ1NlcnZlcik6CisgICAgZHVtbXlfanNfZmls
ZXMgPSB7J2Zvby53b3JrZXIuanMnOiBiJycsCisgICAgICAgICAgICAgICAgICAgICAgJ2Zvby5h
bnkuanMnOiBiJyd9CisKKyAgICBkZWYgdGVzdF9hbnlfd29ya2VyX2h0bWwoc2VsZik6CisgICAg
ICAgIHNlbGYucnVuX3dyYXBwZXJfdGVzdCgnZm9vLmFueS53b3JrZXIuaHRtbCcsCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAndGV4dC9odG1sJywgc2VydmUuV29ya2Vyc0hhbmRsZXIp
CisKKyAgICBkZWYgdGVzdF93b3JrZXJfaHRtbChzZWxmKToKKyAgICAgICAgc2VsZi5ydW5fd3Jh
cHBlcl90ZXN0KCdmb28ud29ya2VyLmh0bWwnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgJ3RleHQvaHRtbCcsIHNlcnZlLldvcmtlcnNIYW5kbGVyKQorCisKK2NsYXNzIFRlc3RXaW5k
b3dIYW5kbGVyKFRlc3RXcmFwcGVySGFuZGxlclVzaW5nU2VydmVyKToKKyAgICBkdW1teV9qc19m
aWxlcyA9IHsnZm9vLndpbmRvdy5qcyc6IGInJ30KKworICAgIGRlZiB0ZXN0X3dpbmRvd19odG1s
KHNlbGYpOgorICAgICAgICBzZWxmLnJ1bl93cmFwcGVyX3Rlc3QoJ2Zvby53aW5kb3cuaHRtbCcs
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAndGV4dC9odG1sJywgc2VydmUuV2luZG93
SGFuZGxlcikKKworCitjbGFzcyBUZXN0QW55SHRtbEhhbmRsZXIoVGVzdFdyYXBwZXJIYW5kbGVy
VXNpbmdTZXJ2ZXIpOgorICAgIGR1bW15X2pzX2ZpbGVzID0geydmb28uYW55LmpzJzogYicnfQor
CisgICAgZGVmIHRlc3RfYW55X2h0bWwoc2VsZik6CisgICAgICAgIHNlbGYucnVuX3dyYXBwZXJf
dGVzdCgnZm9vLmFueS5odG1sJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICd0ZXh0
L2h0bWwnLCBzZXJ2ZS5BbnlIdG1sSGFuZGxlcikKKworCitjbGFzcyBUZXN0U2hhcmVkV29ya2Vy
c0hhbmRsZXIoVGVzdFdyYXBwZXJIYW5kbGVyVXNpbmdTZXJ2ZXIpOgorICAgIGR1bW15X2pzX2Zp
bGVzID0geydmb28uYW55LmpzJzogYicvLyBNRVRBOiBnbG9iYWw9c2hhcmVkd29ya2VyXG4nfQor
CisgICAgZGVmIHRlc3RfYW55X3NoYXJlZHdvcmtlcnNfaHRtbChzZWxmKToKKyAgICAgICAgc2Vs
Zi5ydW5fd3JhcHBlcl90ZXN0KCdmb28uYW55LnNoYXJlZHdvcmtlci5odG1sJywKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICd0ZXh0L2h0bWwnLCBzZXJ2ZS5TaGFyZWRXb3JrZXJzSGFu
ZGxlcikKKworCitjbGFzcyBUZXN0U2VydmljZVdvcmtlcnNIYW5kbGVyKFRlc3RXcmFwcGVySGFu
ZGxlclVzaW5nU2VydmVyKToKKyAgICBkdW1teV9qc19maWxlcyA9IHsnZm9vLmFueS5qcyc6IGIn
Ly8gTUVUQTogZ2xvYmFsPXNlcnZpY2V3b3JrZXJcbid9CisKKyAgICBkZWYgdGVzdF9zZXJ2aWNl
d29ya2VyX2h0bWwoc2VsZik6CisgICAgICAgIHNlbGYucnVuX3dyYXBwZXJfdGVzdCgnZm9vLmFu
eS5zZXJ2aWNld29ya2VyLmh0bWwnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3Rl
eHQvaHRtbCcsIHNlcnZlLlNlcnZpY2VXb3JrZXJzSGFuZGxlcikKKworCitjbGFzcyBUZXN0QW55
V29ya2VySGFuZGxlcihUZXN0V3JhcHBlckhhbmRsZXJVc2luZ1NlcnZlcik6CisgICAgZHVtbXlf
anNfZmlsZXMgPSB7J2Jhci5hbnkuanMnOiBiJyd9CisKKyAgICBkZWYgdGVzdF9hbnlfd29ya19q
cyhzZWxmKToKKyAgICAgICAgc2VsZi5ydW5fd3JhcHBlcl90ZXN0KCdiYXIuYW55Lndvcmtlci5q
cycsICd0ZXh0L2phdmFzY3JpcHQnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2Vy
dmUuQW55V29ya2VySGFuZGxlcikKKworCiBpZiBfX25hbWVfXyA9PSAnX19tYWluX18nOgogICAg
IHVuaXR0ZXN0Lm1haW4oKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRzZXJ2ZS90ZXN0cy9mdW5jdGlvbmFsL3Rlc3RfaW5w
dXRfZmlsZS5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvd3B0c2VydmUvdGVzdHMvZnVuY3Rpb25hbC90ZXN0X2lucHV0X2ZpbGUucHkKaW5kZXgg
MDE0Mzg2ZTE3MmYuLjk4MTc2ZTU4Mzg2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHNlcnZlL3Rlc3RzL2Z1bmN0aW9uYWwv
dGVzdF9pbnB1dF9maWxlLnB5CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvd3B0c2VydmUvdGVzdHMvZnVuY3Rpb25hbC90ZXN0X2lucHV0X2Zp
bGUucHkKQEAgLTEsOCArMSwxMSBAQAotZnJvbSB3cHRzZXJ2ZS5yZXF1ZXN0IGltcG9ydCBJbnB1
dEZpbGUKK2ltcG9ydCBzeXMKIGZyb20gaW8gaW1wb3J0IEJ5dGVzSU8KKwogaW1wb3J0IHB5dGVz
dAorZnJvbSBzaXggaW1wb3J0IFBZMgorCitmcm9tIHdwdHNlcnZlLnJlcXVlc3QgaW1wb3J0IElu
cHV0RmlsZQogCi13cHRzZXJ2ZSA9IHB5dGVzdC5pbXBvcnRvcnNraXAoIndwdHNlcnZlIikKIGJz
dHIgPSBiJ1RoaXMgaXMgYSB0ZXN0IGRvY3VtZW50XG5XaXRoIG5ldyBsaW5lc1xuU2V2ZXJhbCBp
biBmYWN0Li4uJwogcmZpbGUgPSAnJwogdGVzdF9maWxlID0gJycgICMgVGhpcyB3aWxsIGJlIHVz
ZWQgdG8gdGVzdCB0aGUgSW5wdXRGaWxlIGZ1bmN0aW9ucyBhZ2FpbnN0CkBAIC0xMTgsNiArMTIx
LDggQEAgZGVmIHRlc3RfcmVhZGxpbmVzKCk6CiAgICAgYXNzZXJ0IGlucHV0X2ZpbGUucmVhZGxp
bmVzKCkgPT0gdGVzdF9maWxlLnJlYWRsaW5lcygpCiAKIAorQHB5dGVzdC5tYXJrLnhmYWlsKHN5
cy5wbGF0Zm9ybSA9PSAid2luMzIiIGFuZCBQWTIsCisgICAgICAgICAgICAgICAgICAgcmVhc29u
PSJodHRwczovL2dpdGh1Yi5jb20vd2ViLXBsYXRmb3JtLXRlc3RzL3dwdC9pc3N1ZXMvMTI5NDki
KQogZGVmIHRlc3RfcmVhZGxpbmVzX2ZpbGVfYmlnZ2VyX3RoYW5fYnVmZmVyKCk6CiAgICAgb2xk
X21heF9idWYgPSBJbnB1dEZpbGUubWF4X2J1ZmZlcl9zaXplCiAgICAgSW5wdXRGaWxlLm1heF9i
dWZmZXJfc2l6ZSA9IDEwCkBAIC0xMzUsNiArMTQwLDggQEAgZGVmIHRlc3RfaXRlcigpOgogICAg
ICAgICBhc3NlcnQgYSA9PSBiCiAKIAorQHB5dGVzdC5tYXJrLnhmYWlsKHN5cy5wbGF0Zm9ybSA9
PSAid2luMzIiIGFuZCBQWTIsCisgICAgICAgICAgICAgICAgICAgcmVhc29uPSJodHRwczovL2dp
dGh1Yi5jb20vd2ViLXBsYXRmb3JtLXRlc3RzL3dwdC9pc3N1ZXMvMTI5NDkiKQogZGVmIHRlc3Rf
aXRlcl9maWxlX2JpZ2dlcl90aGFuX2J1ZmZlcigpOgogICAgIG9sZF9tYXhfYnVmID0gSW5wdXRG
aWxlLm1heF9idWZmZXJfc2l6ZQogICAgIElucHV0RmlsZS5tYXhfYnVmZmVyX3NpemUgPSAxMApk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy93cHRzZXJ2ZS90ZXN0cy9mdW5jdGlvbmFsL3Rlc3RfcGlwZXMucHkgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHNlcnZlL3Rlc3RzL2Z1
bmN0aW9uYWwvdGVzdF9waXBlcy5weQppbmRleCBlYmRiYzNlZTU3ZC4uYTZhNzAzZTMwNDkgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvd3B0c2VydmUvdGVzdHMvZnVuY3Rpb25hbC90ZXN0X3BpcGVzLnB5CisrKyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0c2VydmUvdGVzdHMv
ZnVuY3Rpb25hbC90ZXN0X3BpcGVzLnB5CkBAIC0yLDcgKzIsNiBAQCBpbXBvcnQgb3MKIGltcG9y
dCB1bml0dGVzdAogaW1wb3J0IHRpbWUKIGltcG9ydCBqc29uCi1pbXBvcnQgc3lzCiAKIGZyb20g
c2l4Lm1vdmVzIGltcG9ydCB1cmxsaWIKIApAQCAtMzUsMTAgKzM0LDkgQEAgY2xhc3MgVGVzdEhl
YWRlcihUZXN0VXNpbmdTZXJ2ZXIpOgogICAgICAgICByZXNwID0gc2VsZi5yZXF1ZXN0KCIvZG9j
dW1lbnQudHh0IiwgcXVlcnk9InBpcGU9aGVhZGVyKENvbnRlbnQtVHlwZSxGQUlMKXxoZWFkZXIo
Q29udGVudC1UeXBlLHRleHQvaHRtbCkiKQogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHJlc3Au
aW5mbygpWyJDb250ZW50LVR5cGUiXSwgInRleHQvaHRtbCIpCiAKLSAgICBAcHl0ZXN0Lm1hcmsu
eGZhaWwoc3lzLnZlcnNpb25faW5mbyA+PSAoMywpLCByZWFzb249IndwdHNlcnZlIG9ubHkgd29y
a3Mgb24gUHkyIikKICAgICBkZWYgdGVzdF9tdWx0aXBsZV9hcHBlbmQoc2VsZik6CiAgICAgICAg
IHJlc3AgPSBzZWxmLnJlcXVlc3QoIi9kb2N1bWVudC50eHQiLCBxdWVyeT0icGlwZT1oZWFkZXIo
WC1UZXN0LDEpfGhlYWRlcihYLVRlc3QsMixUcnVlKSIpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1
YWwocmVzcC5pbmZvKClbIlgtVGVzdCJdLCAiMSwgMiIpCisgICAgICAgIHNlbGYuYXNzZXJ0X211
bHRpcGxlX2hlYWRlcnMocmVzcCwgIlgtVGVzdCIsIFsiMSIsICIyIl0pCiAKIGNsYXNzIFRlc3RT
bGljZShUZXN0VXNpbmdTZXJ2ZXIpOgogICAgIGRlZiB0ZXN0X2JvdGhfYm91bmRzKHNlbGYpOgpA
QCAtNTcsMzYgKzU1LDMxIEBAIGNsYXNzIFRlc3RTbGljZShUZXN0VXNpbmdTZXJ2ZXIpOgogICAg
ICAgICBzZWxmLmFzc2VydEVxdWFsKHJlc3AucmVhZCgpLCBleHBlY3RlZFs6MTBdKQogCiBjbGFz
cyBUZXN0U3ViKFRlc3RVc2luZ1NlcnZlcik6Ci0gICAgQHB5dGVzdC5tYXJrLnhmYWlsKHN5cy52
ZXJzaW9uX2luZm8gPj0gKDMsKSwgcmVhc29uPSJ3cHRzZXJ2ZSBvbmx5IHdvcmtzIG9uIFB5MiIp
CiAgICAgZGVmIHRlc3Rfc3ViX2NvbmZpZyhzZWxmKToKICAgICAgICAgcmVzcCA9IHNlbGYucmVx
dWVzdCgiL3N1Yi50eHQiLCBxdWVyeT0icGlwZT1zdWIiKQotICAgICAgICBleHBlY3RlZCA9ICJs
b2NhbGhvc3QgbG9jYWxob3N0ICVpIiAlIHNlbGYuc2VydmVyLnBvcnQKKyAgICAgICAgZXhwZWN0
ZWQgPSBiImxvY2FsaG9zdCBsb2NhbGhvc3QgJWkiICUgc2VsZi5zZXJ2ZXIucG9ydAogICAgICAg
ICBzZWxmLmFzc2VydEVxdWFsKHJlc3AucmVhZCgpLnJzdHJpcCgpLCBleHBlY3RlZCkKIAotICAg
IEBweXRlc3QubWFyay54ZmFpbChzeXMudmVyc2lvbl9pbmZvID49ICgzLCksIHJlYXNvbj0id3B0
c2VydmUgb25seSB3b3JrcyBvbiBQeTIiKQogICAgIGRlZiB0ZXN0X3N1Yl9maWxlX2hhc2goc2Vs
Zik6CiAgICAgICAgIHJlc3AgPSBzZWxmLnJlcXVlc3QoIi9zdWJfZmlsZV9oYXNoLnN1Yi50eHQi
KQotICAgICAgICBleHBlY3RlZCA9ICIiIgorICAgICAgICBleHBlY3RlZCA9IGIiIiIKIG1kNTog
Sm1JMVc4Zk1IZlNmQ2FyWU9TeEpjdz09CiBzaGExOiBucXBXcUV3NElXOE5qRDZSMzc1Z3RyUXZ0
VG89CiBzaGEyMjQ6IFJxUTZmTW10YTZuOVR1QS92Z1RaSzJFcW1pZHFucndCQW1RTFJRPT0KIHNo
YTI1NjogRzZMamcxdVBlalF4cUZtdkZPY1YvbG9xbmpQVFc1R1NPZVBPZk0vdTBqdz0KIHNoYTM4
NDogbGtYSENoaDFCWEhONW5UNUJZaGkxeDY3RTFDeVliUEtSS29GMkxUbTVHaXZ1RUZwVlZZdHZF
Qkh0UHI3NE45RQotc2hhNTEyOiByOGVMR1JUYzdaem5aa0ZqZVZMeW82L0Z5UWRyYTlxbWxZQ3dL
S3htM2tmUUFzd1JTOSszSHNZazN0aExVaGNGbW1XaEs0ZFhhSUN6Ci1Kd0dGb25mWHdnPT0iIiIK
K3NoYTUxMjogcjhlTEdSVGM3WnpuWmtGamVWTHlvNi9GeVFkcmE5cW1sWUN3S0t4bTNrZlFBc3dS
UzkrM0hzWWszdGhMVWhjRm1tV2hLNGRYYUlDekp3R0ZvbmZYd2c9PSIiIgogICAgICAgICBzZWxm
LmFzc2VydEVxdWFsKHJlc3AucmVhZCgpLnJzdHJpcCgpLCBleHBlY3RlZC5zdHJpcCgpKQogCiAg
ICAgZGVmIHRlc3Rfc3ViX2ZpbGVfaGFzaF91bnJlY29nbml6ZWQoc2VsZik6CiAgICAgICAgIHdp
dGggc2VsZi5hc3NlcnRSYWlzZXModXJsbGliLmVycm9yLkhUVFBFcnJvcik6CiAgICAgICAgICAg
ICBzZWxmLnJlcXVlc3QoIi9zdWJfZmlsZV9oYXNoX3VucmVjb2duaXplZC5zdWIudHh0IikKIAot
ICAgIEBweXRlc3QubWFyay54ZmFpbChzeXMudmVyc2lvbl9pbmZvID49ICgzLCksIHJlYXNvbj0i
d3B0c2VydmUgb25seSB3b3JrcyBvbiBQeTIiKQogICAgIGRlZiB0ZXN0X3N1Yl9oZWFkZXJzKHNl
bGYpOgogICAgICAgICByZXNwID0gc2VsZi5yZXF1ZXN0KCIvc3ViX2hlYWRlcnMudHh0IiwgcXVl
cnk9InBpcGU9c3ViIiwgaGVhZGVycz17IlgtVGVzdCI6ICJQQVNTIn0pCi0gICAgICAgIGV4cGVj
dGVkID0gIlBBU1MiCisgICAgICAgIGV4cGVjdGVkID0gYiJQQVNTIgogICAgICAgICBzZWxmLmFz
c2VydEVxdWFsKHJlc3AucmVhZCgpLnJzdHJpcCgpLCBleHBlY3RlZCkKIAotICAgIEBweXRlc3Qu
bWFyay54ZmFpbChzeXMudmVyc2lvbl9pbmZvID49ICgzLCksIHJlYXNvbj0id3B0c2VydmUgb25s
eSB3b3JrcyBvbiBQeTIiKQogICAgIGRlZiB0ZXN0X3N1Yl9sb2NhdGlvbihzZWxmKToKICAgICAg
ICAgcmVzcCA9IHNlbGYucmVxdWVzdCgiL3N1Yl9sb2NhdGlvbi5zdWIudHh0P3F1ZXJ5X3N0cmlu
ZyIpCiAgICAgICAgIGV4cGVjdGVkID0gIiIiCkBAIC05NywzMCArOTAsNDQgQEAgcGF0aG5hbWU6
IC9zdWJfbG9jYXRpb24uc3ViLnR4dAogcG9ydDogezB9CiBxdWVyeTogP3F1ZXJ5X3N0cmluZwog
c2NoZW1lOiBodHRwCi1zZXJ2ZXI6IGh0dHA6Ly9sb2NhbGhvc3Q6ezB9IiIiLmZvcm1hdChzZWxm
LnNlcnZlci5wb3J0KQorc2VydmVyOiBodHRwOi8vbG9jYWxob3N0OnswfSIiIi5mb3JtYXQoc2Vs
Zi5zZXJ2ZXIucG9ydCkuZW5jb2RlKCJhc2NpaSIpCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwo
cmVzcC5yZWFkKCkucnN0cmlwKCksIGV4cGVjdGVkLnN0cmlwKCkpCiAKLSAgICBAcHl0ZXN0Lm1h
cmsueGZhaWwoc3lzLnZlcnNpb25faW5mbyA+PSAoMywpLCByZWFzb249IndwdHNlcnZlIG9ubHkg
d29ya3Mgb24gUHkyIikKICAgICBkZWYgdGVzdF9zdWJfcGFyYW1zKHNlbGYpOgogICAgICAgICBy
ZXNwID0gc2VsZi5yZXF1ZXN0KCIvc3ViX3BhcmFtcy50eHQiLCBxdWVyeT0idGVzdD1QQVNTJnBp
cGU9c3ViIikKLSAgICAgICAgZXhwZWN0ZWQgPSAiUEFTUyIKKyAgICAgICAgZXhwZWN0ZWQgPSBi
IlBBU1MiCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocmVzcC5yZWFkKCkucnN0cmlwKCksIGV4
cGVjdGVkKQogCi0gICAgQHB5dGVzdC5tYXJrLnhmYWlsKHN5cy52ZXJzaW9uX2luZm8gPj0gKDMs
KSwgcmVhc29uPSJ3cHRzZXJ2ZSBvbmx5IHdvcmtzIG9uIFB5MiIpCiAgICAgZGVmIHRlc3Rfc3Vi
X3VybF9iYXNlKHNlbGYpOgogICAgICAgICByZXNwID0gc2VsZi5yZXF1ZXN0KCIvc3ViX3VybF9i
YXNlLnN1Yi50eHQiKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHJlc3AucmVhZCgpLnJzdHJp
cCgpLCAiQmVmb3JlIC8gQWZ0ZXIiKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHJlc3AucmVh
ZCgpLnJzdHJpcCgpLCBiIkJlZm9yZSAvIEFmdGVyIikKKworICAgIGRlZiB0ZXN0X3N1Yl91cmxf
YmFzZV92aWFfZmlsZW5hbWVfd2l0aF9xdWVyeShzZWxmKToKKyAgICAgICAgcmVzcCA9IHNlbGYu
cmVxdWVzdCgiL3N1Yl91cmxfYmFzZS5zdWIudHh0P3BpcGU9c2xpY2UoNSwxMCkiKQorICAgICAg
ICBzZWxmLmFzc2VydEVxdWFsKHJlc3AucmVhZCgpLnJzdHJpcCgpLCBiImUgLyBBIikKIAotICAg
IEBweXRlc3QubWFyay54ZmFpbChzeXMudmVyc2lvbl9pbmZvID49ICgzLCksIHJlYXNvbj0id3B0
c2VydmUgb25seSB3b3JrcyBvbiBQeTIiKQogICAgIGRlZiB0ZXN0X3N1Yl91dWlkKHNlbGYpOgog
ICAgICAgICByZXNwID0gc2VsZi5yZXF1ZXN0KCIvc3ViX3V1aWQuc3ViLnR4dCIpCi0gICAgICAg
IHNlbGYuYXNzZXJ0UmVnZXhwTWF0Y2hlcyhyZXNwLnJlYWQoKS5yc3RyaXAoKSwgciJCZWZvcmUg
W2EtZjAtOS1dKyBBZnRlciIpCisgICAgICAgIHNlbGYuYXNzZXJ0UmVnZXhwTWF0Y2hlcyhyZXNw
LnJlYWQoKS5yc3RyaXAoKSwgYiJCZWZvcmUgW2EtZjAtOS1dKyBBZnRlciIpCiAKLSAgICBAcHl0
ZXN0Lm1hcmsueGZhaWwoc3lzLnZlcnNpb25faW5mbyA+PSAoMywpLCByZWFzb249IndwdHNlcnZl
IG9ubHkgd29ya3Mgb24gUHkyIikKICAgICBkZWYgdGVzdF9zdWJfdmFyKHNlbGYpOgogICAgICAg
ICByZXNwID0gc2VsZi5yZXF1ZXN0KCIvc3ViX3Zhci5zdWIudHh0IikKICAgICAgICAgcG9ydCA9
IHNlbGYuc2VydmVyLnBvcnQKLSAgICAgICAgZXhwZWN0ZWQgPSAibG9jYWxob3N0ICVzIEEgJXMg
QiBsb2NhbGhvc3QgQyIgJSAocG9ydCwgcG9ydCkKKyAgICAgICAgZXhwZWN0ZWQgPSBiImxvY2Fs
aG9zdCAlZCBBICVkIEIgbG9jYWxob3N0IEMiICUgKHBvcnQsIHBvcnQpCisgICAgICAgIHNlbGYu
YXNzZXJ0RXF1YWwocmVzcC5yZWFkKCkucnN0cmlwKCksIGV4cGVjdGVkKQorCisgICAgZGVmIHRl
c3Rfc3ViX2ZzX3BhdGgoc2VsZik6CisgICAgICAgIHJlc3AgPSBzZWxmLnJlcXVlc3QoIi9zdWJk
aXIvc3ViX3BhdGguc3ViLnR4dCIpCisgICAgICAgIHJvb3QgPSBvcy5wYXRoLmFic3BhdGgoZG9j
X3Jvb3QpCisgICAgICAgIGV4cGVjdGVkID0gIiIiJShyb290KXMlKHNlcClzc3ViZGlyJShzZXAp
c3N1Yl9wYXRoLnN1Yi50eHQKKyUocm9vdClzJShzZXApc3N1Yl9wYXRoLnN1Yi50eHQKKyUocm9v
dClzJShzZXApc3N1Yl9wYXRoLnN1Yi50eHQKKyIiIiAlIHsicm9vdCI6IHJvb3QsICJzZXAiOiBv
cy5wYXRoLnNlcH0KKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChyZXNwLnJlYWQoKSwgZXhwZWN0
ZWQuZW5jb2RlKCJ1dGY4IikpCisKKyAgICBkZWYgdGVzdF9zdWJfaGVhZGVyX29yX2RlZmF1bHQo
c2VsZik6CisgICAgICAgIHJlc3AgPSBzZWxmLnJlcXVlc3QoIi9zdWJfaGVhZGVyX29yX2RlZmF1
bHQuc3ViLnR4dCIsIGhlYWRlcnM9eyJYLVByZXNlbnQiOiAiT0sifSkKKyAgICAgICAgZXhwZWN0
ZWQgPSBiIk9LXG5hYnNlbnQtZGVmYXVsdCIKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChyZXNw
LnJlYWQoKS5yc3RyaXAoKSwgZXhwZWN0ZWQpCiAKIGNsYXNzIFRlc3RUcmlja2xlKFRlc3RVc2lu
Z1NlcnZlcik6CkBAIC0xNDAsMTIgKzE0NywxMCBAQCBjbGFzcyBUZXN0VHJpY2tsZShUZXN0VXNp
bmdTZXJ2ZXIpOgogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHJlc3AuaW5mbygpWyJFeHBpcmVz
Il0sICIwIikKIAogY2xhc3MgVGVzdFBpcGVzV2l0aFZhcmlvdXNIYW5kbGVycyhUZXN0VXNpbmdT
ZXJ2ZXIpOgotICAgIEBweXRlc3QubWFyay54ZmFpbChzeXMudmVyc2lvbl9pbmZvID49ICgzLCks
IHJlYXNvbj0id3B0c2VydmUgb25seSB3b3JrcyBvbiBQeTIiKQogICAgIGRlZiB0ZXN0X3dpdGhf
cHl0aG9uX2ZpbGVfaGFuZGxlcihzZWxmKToKICAgICAgICAgcmVzcCA9IHNlbGYucmVxdWVzdCgi
L3Rlc3Rfc3RyaW5nLnB5IiwgcXVlcnk9InBpcGU9c2xpY2UobnVsbCwyKSIpCi0gICAgICAgIHNl
bGYuYXNzZXJ0RXF1YWwocmVzcC5yZWFkKCksICJQQSIpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1
YWwocmVzcC5yZWFkKCksIGIiUEEiKQogCi0gICAgQHB5dGVzdC5tYXJrLnhmYWlsKHN5cy52ZXJz
aW9uX2luZm8gPj0gKDMsKSwgcmVhc29uPSJ3cHRzZXJ2ZSBvbmx5IHdvcmtzIG9uIFB5MiIpCiAg
ICAgZGVmIHRlc3Rfd2l0aF9weXRob25fZnVuY19oYW5kbGVyKHNlbGYpOgogICAgICAgICBAd3B0
c2VydmUuaGFuZGxlcnMuaGFuZGxlcgogICAgICAgICBkZWYgaGFuZGxlcihyZXF1ZXN0LCByZXNw
b25zZSk6CkBAIC0xNTMsOSArMTU4LDggQEAgY2xhc3MgVGVzdFBpcGVzV2l0aFZhcmlvdXNIYW5k
bGVycyhUZXN0VXNpbmdTZXJ2ZXIpOgogICAgICAgICByb3V0ZSA9ICgiR0VUIiwgIi90ZXN0L3Rl
c3RfcGlwZXNfMS8iLCBoYW5kbGVyKQogICAgICAgICBzZWxmLnNlcnZlci5yb3V0ZXIucmVnaXN0
ZXIoKnJvdXRlKQogICAgICAgICByZXNwID0gc2VsZi5yZXF1ZXN0KHJvdXRlWzFdLCBxdWVyeT0i
cGlwZT1zbGljZShudWxsLDIpIikKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChyZXNwLnJlYWQo
KSwgIlBBIikKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChyZXNwLnJlYWQoKSwgYiJQQSIpCiAK
LSAgICBAcHl0ZXN0Lm1hcmsueGZhaWwoc3lzLnZlcnNpb25faW5mbyA+PSAoMywpLCByZWFzb249
IndwdHNlcnZlIG9ubHkgd29ya3Mgb24gUHkyIikKICAgICBkZWYgdGVzdF93aXRoX3B5dGhvbl9m
dW5jX2hhbmRsZXJfdXNpbmdfcmVzcG9uc2Vfd3JpdGVyKHNlbGYpOgogICAgICAgICBAd3B0c2Vy
dmUuaGFuZGxlcnMuaGFuZGxlcgogICAgICAgICBkZWYgaGFuZGxlcihyZXF1ZXN0LCByZXNwb25z
ZSk6CkBAIC0xNjQsOSArMTY4LDggQEAgY2xhc3MgVGVzdFBpcGVzV2l0aFZhcmlvdXNIYW5kbGVy
cyhUZXN0VXNpbmdTZXJ2ZXIpOgogICAgICAgICBzZWxmLnNlcnZlci5yb3V0ZXIucmVnaXN0ZXIo
KnJvdXRlKQogICAgICAgICByZXNwID0gc2VsZi5yZXF1ZXN0KHJvdXRlWzFdLCBxdWVyeT0icGlw
ZT1zbGljZShudWxsLDIpIikKICAgICAgICAgIyBzbGljZSBoYXMgbm90IGJlZW4gYXBwbGllZCB0
byB0aGUgcmVzcG9uc2UsIGJlY2F1c2UgcmVzcG9uc2Uud3JpdGVyIHdhcyB1c2VkLgotICAgICAg
ICBzZWxmLmFzc2VydEVxdWFsKHJlc3AucmVhZCgpLCAiUEFTUyIpCisgICAgICAgIHNlbGYuYXNz
ZXJ0RXF1YWwocmVzcC5yZWFkKCksIGIiUEFTUyIpCiAKLSAgICBAcHl0ZXN0Lm1hcmsueGZhaWwo
c3lzLnZlcnNpb25faW5mbyA+PSAoMywpLCByZWFzb249IndwdHNlcnZlIG9ubHkgd29ya3Mgb24g
UHkyIikKICAgICBkZWYgdGVzdF9oZWFkZXJfcGlwZV93aXRoX3B5dGhvbl9mdW5jX3VzaW5nX3Jl
c3BvbnNlX3dyaXRlcihzZWxmKToKICAgICAgICAgQHdwdHNlcnZlLmhhbmRsZXJzLmhhbmRsZXIK
ICAgICAgICAgZGVmIGhhbmRsZXIocmVxdWVzdCwgcmVzcG9uc2UpOgpAQCAtMTc2LDkgKzE3OSw4
IEBAIGNsYXNzIFRlc3RQaXBlc1dpdGhWYXJpb3VzSGFuZGxlcnMoVGVzdFVzaW5nU2VydmVyKToK
ICAgICAgICAgcmVzcCA9IHNlbGYucmVxdWVzdChyb3V0ZVsxXSwgcXVlcnk9InBpcGU9aGVhZGVy
KFgtVEVTVCxGQUlMKSIpCiAgICAgICAgICMgaGVhZGVyIHBpcGUgd2FzIGlnbm9yZWQsIGJlY2F1
c2UgcmVzcG9uc2Uud3JpdGVyIHdhcyB1c2VkLgogICAgICAgICBzZWxmLmFzc2VydEZhbHNlKHJl
c3AuaW5mbygpLmdldCgiWC1URVNUIikpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocmVzcC5y
ZWFkKCksICJDT05URU5UIikKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChyZXNwLnJlYWQoKSwg
YiJDT05URU5UIikKIAotICAgIEBweXRlc3QubWFyay54ZmFpbChzeXMudmVyc2lvbl9pbmZvID49
ICgzLCksIHJlYXNvbj0id3B0c2VydmUgb25seSB3b3JrcyBvbiBQeTIiKQogICAgIGRlZiB0ZXN0
X3dpdGhfanNvbl9oYW5kbGVyKHNlbGYpOgogICAgICAgICBAd3B0c2VydmUuaGFuZGxlcnMuanNv
bl9oYW5kbGVyCiAgICAgICAgIGRlZiBoYW5kbGVyKHJlcXVlc3QsIHJlc3BvbnNlKToKQEAgLTE4
NiwzMiArMTg4LDI5IEBAIGNsYXNzIFRlc3RQaXBlc1dpdGhWYXJpb3VzSGFuZGxlcnMoVGVzdFVz
aW5nU2VydmVyKToKICAgICAgICAgcm91dGUgPSAoIkdFVCIsICIvdGVzdC90ZXN0X3BpcGVzXzIv
IiwgaGFuZGxlcikKICAgICAgICAgc2VsZi5zZXJ2ZXIucm91dGVyLnJlZ2lzdGVyKCpyb3V0ZSkK
ICAgICAgICAgcmVzcCA9IHNlbGYucmVxdWVzdChyb3V0ZVsxXSwgcXVlcnk9InBpcGU9c2xpY2Uo
bnVsbCwyKSIpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocmVzcC5yZWFkKCksICcieycpCisg
ICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocmVzcC5yZWFkKCksIGInInsnKQogCi0gICAgQHB5dGVz
dC5tYXJrLnhmYWlsKHN5cy52ZXJzaW9uX2luZm8gPj0gKDMsKSwgcmVhc29uPSJ3cHRzZXJ2ZSBv
bmx5IHdvcmtzIG9uIFB5MiIpCiAgICAgZGVmIHRlc3Rfc2xpY2Vfd2l0aF9hc19pc19oYW5kbGVy
KHNlbGYpOgogICAgICAgICByZXNwID0gc2VsZi5yZXF1ZXN0KCIvdGVzdC5hc2lzIiwgcXVlcnk9
InBpcGU9c2xpY2UobnVsbCwyKSIpCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoMjAyLCByZXNw
LmdldGNvZGUoKSkKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgiR2lyYWZmZSIsIHJlc3AubXNn
KQogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCJQQVNTIiwgcmVzcC5pbmZvKClbIlgtVGVzdCJd
KQogICAgICAgICAjIHNsaWNlIGhhcyBub3QgYmVlbiBhcHBsaWVkIHRvIHRoZSByZXNwb25zZSwg
YmVjYXVzZSByZXNwb25zZS53cml0ZXIgd2FzIHVzZWQuCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1
YWwoIkNvbnRlbnQiLCByZXNwLnJlYWQoKSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChiIkNv
bnRlbnQiLCByZXNwLnJlYWQoKSkKIAotICAgIEBweXRlc3QubWFyay54ZmFpbChzeXMudmVyc2lv
bl9pbmZvID49ICgzLCksIHJlYXNvbj0id3B0c2VydmUgb25seSB3b3JrcyBvbiBQeTIiKQogICAg
IGRlZiB0ZXN0X2hlYWRlcnNfd2l0aF9hc19pc19oYW5kbGVyKHNlbGYpOgogICAgICAgICByZXNw
ID0gc2VsZi5yZXF1ZXN0KCIvdGVzdC5hc2lzIiwgcXVlcnk9InBpcGU9aGVhZGVyKFgtVEVTVCxG
QUlMKSIpCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoMjAyLCByZXNwLmdldGNvZGUoKSkKICAg
ICAgICAgc2VsZi5hc3NlcnRFcXVhbCgiR2lyYWZmZSIsIHJlc3AubXNnKQogICAgICAgICAjIGhl
YWRlciBwaXBlIHdhcyBpZ25vcmVkLgogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCJQQVNTIiwg
cmVzcC5pbmZvKClbIlgtVEVTVCJdKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCJDb250ZW50
IiwgcmVzcC5yZWFkKCkpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYiJDb250ZW50IiwgcmVz
cC5yZWFkKCkpCiAKLSAgICBAcHl0ZXN0Lm1hcmsueGZhaWwoc3lzLnZlcnNpb25faW5mbyA+PSAo
MywpLCByZWFzb249IndwdHNlcnZlIG9ubHkgd29ya3Mgb24gUHkyIikKICAgICBkZWYgdGVzdF90
cmlja2xlX3dpdGhfYXNfaXNfaGFuZGxlcihzZWxmKToKICAgICAgICAgdDAgPSB0aW1lLnRpbWUo
KQogICAgICAgICByZXNwID0gc2VsZi5yZXF1ZXN0KCIvdGVzdC5hc2lzIiwgcXVlcnk9InBpcGU9
dHJpY2tsZSgxOmQyOjU6ZDE6cjIpIikKICAgICAgICAgdDEgPSB0aW1lLnRpbWUoKQotICAgICAg
ICBzZWxmLmFzc2VydFRydWUoJ0NvbnRlbnQnIGluIHJlc3AucmVhZCgpKQorICAgICAgICBzZWxm
LmFzc2VydFRydWUoYidDb250ZW50JyBpbiByZXNwLnJlYWQoKSkKICAgICAgICAgc2VsZi5hc3Nl
cnRHcmVhdGVyKDYsIHQxLXQwKQogCiBpZiBfX25hbWVfXyA9PSAnX19tYWluX18nOgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93
cHRzZXJ2ZS90ZXN0cy9mdW5jdGlvbmFsL3Rlc3RfcmVxdWVzdC5weSBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0c2VydmUvdGVzdHMvZnVuY3Rp
b25hbC90ZXN0X3JlcXVlc3QucHkKaW5kZXggOTdkNzVlYjcxMjguLmQ5NDU4MDE0MGUyIDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3dwdHNlcnZlL3Rlc3RzL2Z1bmN0aW9uYWwvdGVzdF9yZXF1ZXN0LnB5CisrKyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0c2VydmUvdGVzdHMv
ZnVuY3Rpb25hbC90ZXN0X3JlcXVlc3QucHkKQEAgLTEsNSArMSw0IEBACi1pbXBvcnQgc3lzCi0K
KyMgLSotIGNvZGluZzogdXRmLTggLSotCiBpbXBvcnQgcHl0ZXN0CiAKIHdwdHNlcnZlID0gcHl0
ZXN0LmltcG9ydG9yc2tpcCgid3B0c2VydmUiKQpAQCAtOCw3ICs3LDYgQEAgZnJvbSB3cHRzZXJ2
ZS5yZXF1ZXN0IGltcG9ydCBJbnB1dEZpbGUKIAogCiBjbGFzcyBUZXN0SW5wdXRGaWxlKFRlc3RV
c2luZ1NlcnZlcik6Ci0gICAgQHB5dGVzdC5tYXJrLnhmYWlsKHN5cy52ZXJzaW9uX2luZm8gPj0g
KDMsKSwgcmVhc29uPSJ3cHRzZXJ2ZSBvbmx5IHdvcmtzIG9uIFB5MiIpCiAgICAgZGVmIHRlc3Rf
c2VlayhzZWxmKToKICAgICAgICAgQHdwdHNlcnZlLmhhbmRsZXJzLmhhbmRsZXIKICAgICAgICAg
ZGVmIGhhbmRsZXIocmVxdWVzdCwgcmVzcG9uc2UpOgpAQCAtMTYsMjggKzE0LDI3IEBAIGNsYXNz
IFRlc3RJbnB1dEZpbGUoVGVzdFVzaW5nU2VydmVyKToKICAgICAgICAgICAgIGYgPSByZXF1ZXN0
LnJhd19pbnB1dAogICAgICAgICAgICAgZi5zZWVrKDUpCiAgICAgICAgICAgICBydi5hcHBlbmQo
Zi5yZWFkKDIpKQotICAgICAgICAgICAgcnYuYXBwZW5kKGYudGVsbCgpKQorICAgICAgICAgICAg
cnYuYXBwZW5kKGIiJWQiICUgZi50ZWxsKCkpCiAgICAgICAgICAgICBmLnNlZWsoMCkKICAgICAg
ICAgICAgIHJ2LmFwcGVuZChmLnJlYWRsaW5lKCkpCi0gICAgICAgICAgICBydi5hcHBlbmQoZi50
ZWxsKCkpCisgICAgICAgICAgICBydi5hcHBlbmQoYiIlZCIgJSBmLnRlbGwoKSkKICAgICAgICAg
ICAgIHJ2LmFwcGVuZChmLnJlYWQoLTEpKQotICAgICAgICAgICAgcnYuYXBwZW5kKGYudGVsbCgp
KQorICAgICAgICAgICAgcnYuYXBwZW5kKGIiJWQiICUgZi50ZWxsKCkpCiAgICAgICAgICAgICBm
LnNlZWsoMCkKICAgICAgICAgICAgIHJ2LmFwcGVuZChmLnJlYWQoKSkKICAgICAgICAgICAgIGYu
c2VlaygwKQogICAgICAgICAgICAgcnYuZXh0ZW5kKGYucmVhZGxpbmVzKCkpCiAKLSAgICAgICAg
ICAgIHJldHVybiAiICIuam9pbihzdHIoaXRlbSkgZm9yIGl0ZW0gaW4gcnYpCisgICAgICAgICAg
ICByZXR1cm4gYiIgIi5qb2luKHJ2KQogCiAgICAgICAgIHJvdXRlID0gKCJQT1NUIiwgIi90ZXN0
L3Rlc3Rfc2VlayIsIGhhbmRsZXIpCiAgICAgICAgIHNlbGYuc2VydmVyLnJvdXRlci5yZWdpc3Rl
cigqcm91dGUpCi0gICAgICAgIHJlc3AgPSBzZWxmLnJlcXVlc3Qocm91dGVbMV0sIG1ldGhvZD0i
UE9TVCIsIGJvZHk9IjEyMzQ1YWJcbmNkZWYiKQorICAgICAgICByZXNwID0gc2VsZi5yZXF1ZXN0
KHJvdXRlWzFdLCBtZXRob2Q9IlBPU1QiLCBib2R5PWIiMTIzNDVhYlxuY2RlZiIpCiAgICAgICAg
IHNlbGYuYXNzZXJ0RXF1YWwoMjAwLCByZXNwLmdldGNvZGUoKSkKLSAgICAgICAgc2VsZi5hc3Nl
cnRFcXVhbChbImFiIiwgIjciLCAiMTIzNDVhYlxuIiwgIjgiLCAiY2RlZiIsICIxMiIsCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICIxMjM0NWFiXG5jZGVmIiwgIjEyMzQ1YWJcbiIsICJjZGVm
Il0sCi0gICAgICAgICAgICAgICAgICAgICAgICAgcmVzcC5yZWFkKCkuc3BsaXQoIiAiKSkKKyAg
ICAgICAgc2VsZi5hc3NlcnRFcXVhbChbYiJhYiIsIGIiNyIsIGIiMTIzNDVhYlxuIiwgYiI4Iiwg
YiJjZGVmIiwgYiIxMiIsCisgICAgICAgICAgICAgICAgICAgICAgICAgIGIiMTIzNDVhYlxuY2Rl
ZiIsIGIiMTIzNDVhYlxuIiwgYiJjZGVmIl0sCisgICAgICAgICAgICAgICAgICAgICAgICAgcmVz
cC5yZWFkKCkuc3BsaXQoYiIgIikpCiAKLSAgICBAcHl0ZXN0Lm1hcmsueGZhaWwoc3lzLnZlcnNp
b25faW5mbyA+PSAoMywpLCByZWFzb249IndwdHNlcnZlIG9ubHkgd29ya3Mgb24gUHkyIikKICAg
ICBkZWYgdGVzdF9zZWVrX2lucHV0X2xvbmdlcl90aGFuX2J1ZmZlcihzZWxmKToKICAgICAgICAg
QHdwdHNlcnZlLmhhbmRsZXJzLmhhbmRsZXIKICAgICAgICAgZGVmIGhhbmRsZXIocmVxdWVzdCwg
cmVzcG9uc2UpOgpAQCAtNDUsMTEgKzQyLDExIEBAIGNsYXNzIFRlc3RJbnB1dEZpbGUoVGVzdFVz
aW5nU2VydmVyKToKICAgICAgICAgICAgIGYgPSByZXF1ZXN0LnJhd19pbnB1dAogICAgICAgICAg
ICAgZi5zZWVrKDUpCiAgICAgICAgICAgICBydi5hcHBlbmQoZi5yZWFkKDIpKQotICAgICAgICAg
ICAgcnYuYXBwZW5kKGYudGVsbCgpKQorICAgICAgICAgICAgcnYuYXBwZW5kKGIiJWQiICUgZi50
ZWxsKCkpCiAgICAgICAgICAgICBmLnNlZWsoMCkKLSAgICAgICAgICAgIHJ2LmFwcGVuZChmLnRl
bGwoKSkKLSAgICAgICAgICAgIHJ2LmFwcGVuZChmLnRlbGwoKSkKLSAgICAgICAgICAgIHJldHVy
biAiICIuam9pbihzdHIoaXRlbSkgZm9yIGl0ZW0gaW4gcnYpCisgICAgICAgICAgICBydi5hcHBl
bmQoYiIlZCIgJSBmLnRlbGwoKSkKKyAgICAgICAgICAgIHJ2LmFwcGVuZChiIiVkIiAlIGYudGVs
bCgpKQorICAgICAgICAgICAgcmV0dXJuIGIiICIuam9pbihydikKIAogICAgICAgICByb3V0ZSA9
ICgiUE9TVCIsICIvdGVzdC90ZXN0X3NlZWsiLCBoYW5kbGVyKQogICAgICAgICBzZWxmLnNlcnZl
ci5yb3V0ZXIucmVnaXN0ZXIoKnJvdXRlKQpAQCAtNTcsMTAgKzU0LDEwIEBAIGNsYXNzIFRlc3RJ
bnB1dEZpbGUoVGVzdFVzaW5nU2VydmVyKToKICAgICAgICAgb2xkX21heF9idWYgPSBJbnB1dEZp
bGUubWF4X2J1ZmZlcl9zaXplCiAgICAgICAgIElucHV0RmlsZS5tYXhfYnVmZmVyX3NpemUgPSAx
MAogICAgICAgICB0cnk6Ci0gICAgICAgICAgICByZXNwID0gc2VsZi5yZXF1ZXN0KHJvdXRlWzFd
LCBtZXRob2Q9IlBPU1QiLCBib2R5PSIxIioyMCkKKyAgICAgICAgICAgIHJlc3AgPSBzZWxmLnJl
cXVlc3Qocm91dGVbMV0sIG1ldGhvZD0iUE9TVCIsIGJvZHk9YiIxIioyMCkKICAgICAgICAgICAg
IHNlbGYuYXNzZXJ0RXF1YWwoMjAwLCByZXNwLmdldGNvZGUoKSkKLSAgICAgICAgICAgIHNlbGYu
YXNzZXJ0RXF1YWwoWyIxMSIsICI3IiwgIjAiLCAiMCJdLAotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHJlc3AucmVhZCgpLnNwbGl0KCIgIikpCisgICAgICAgICAgICBzZWxmLmFzc2VydEVx
dWFsKFtiIjExIiwgYiI3IiwgYiIwIiwgYiIwIl0sCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHJlc3AucmVhZCgpLnNwbGl0KGIiICIpKQogICAgICAgICBmaW5hbGx5OgogICAgICAgICAg
ICAgSW5wdXRGaWxlLm1heF9idWZmZXJfc2l6ZSA9IG9sZF9tYXhfYnVmCiAKQEAgLTExNywxNiAr
MTE0LDQwIEBAIGNsYXNzIFRlc3RSZXF1ZXN0KFRlc3RVc2luZ1NlcnZlcik6CiAgICAgICAgIHJl
c3AgPSBzZWxmLnJlcXVlc3QoIi90ZXN0L3NvbWVfcm91dGUiKQogICAgICAgICBzZWxmLmFzc2Vy
dEVxdWFsKGIic29tZSByb3V0ZSIsIHJlc3AucmVhZCgpKQogCisgICAgZGVmIHRlc3Rfbm9uX2Fz
Y2lpX2luX2hlYWRlcnMoc2VsZik6CisgICAgICAgIEB3cHRzZXJ2ZS5oYW5kbGVycy5oYW5kbGVy
CisgICAgICAgIGRlZiBoYW5kbGVyKHJlcXVlc3QsIHJlc3BvbnNlKToKKyAgICAgICAgICAgIHJl
dHVybiByZXF1ZXN0LmhlYWRlcnNbImZvbyJdCisKKyAgICAgICAgcm91dGUgPSAoIkdFVCIsICIv
dGVzdC90ZXN0X3VuaWNvZGVfaW5faGVhZGVycyIsIGhhbmRsZXIpCisgICAgICAgIHNlbGYuc2Vy
dmVyLnJvdXRlci5yZWdpc3Rlcigqcm91dGUpCisKKyAgICAgICAgIyBUcnkgc29tZSBub24tQVND
SUkgY2hhcmFjdGVycyBhbmQgdGhlIHNlcnZlciBzaG91bGRuJ3QgY3Jhc2guCisgICAgICAgIGVu
Y29kZWRfdGV4dCA9IHUi5L2g5aW9Ii5lbmNvZGUoInV0Zi04IikKKyAgICAgICAgcmVzcCA9IHNl
bGYucmVxdWVzdChyb3V0ZVsxXSwgaGVhZGVycz17ImZvbyI6IGVuY29kZWRfdGV4dH0pCisgICAg
ICAgIHNlbGYuYXNzZXJ0RXF1YWwoZW5jb2RlZF90ZXh0LCByZXNwLnJlYWQoKSkKKworICAgICAg
ICAjIFRyeSBhIGRpZmZlcmVudCBlbmNvZGluZyBmcm9tIHV0Zi04IHRvIG1ha2Ugc3VyZSB0aGUg
YmluYXJ5IHZhbHVlIGlzCisgICAgICAgICMgcmV0dXJuZWQgaW4gdmVyYmF0aW0uCisgICAgICAg
IGVuY29kZWRfdGV4dCA9IHUi44Gp44GG44KCIi5lbmNvZGUoInNoaWZ0LWppcyIpCisgICAgICAg
IHJlc3AgPSBzZWxmLnJlcXVlc3Qocm91dGVbMV0sIGhlYWRlcnM9eyJmb28iOiBlbmNvZGVkX3Rl
eHR9KQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGVuY29kZWRfdGV4dCwgcmVzcC5yZWFkKCkp
CisKIAogY2xhc3MgVGVzdEF1dGgoVGVzdFVzaW5nU2VydmVyKToKLSAgICBAcHl0ZXN0Lm1hcmsu
eGZhaWwoc3lzLnZlcnNpb25faW5mbyA+PSAoMywpLCByZWFzb249IndwdHNlcnZlIG9ubHkgd29y
a3Mgb24gUHkyIikKICAgICBkZWYgdGVzdF9hdXRoKHNlbGYpOgogICAgICAgICBAd3B0c2VydmUu
aGFuZGxlcnMuaGFuZGxlcgogICAgICAgICBkZWYgaGFuZGxlcihyZXF1ZXN0LCByZXNwb25zZSk6
Ci0gICAgICAgICAgICByZXR1cm4gIiAiLmpvaW4oKHJlcXVlc3QuYXV0aC51c2VybmFtZSwgcmVx
dWVzdC5hdXRoLnBhc3N3b3JkKSkKKyAgICAgICAgICAgIHJldHVybiBiIiAiLmpvaW4oKHJlcXVl
c3QuYXV0aC51c2VybmFtZSwgcmVxdWVzdC5hdXRoLnBhc3N3b3JkKSkKIAogICAgICAgICByb3V0
ZSA9ICgiR0VUIiwgIi90ZXN0L3Rlc3RfYXV0aCIsIGhhbmRsZXIpCiAgICAgICAgIHNlbGYuc2Vy
dmVyLnJvdXRlci5yZWdpc3Rlcigqcm91dGUpCi0gICAgICAgIHJlc3AgPSBzZWxmLnJlcXVlc3Qo
cm91dGVbMV0sIGF1dGg9KCJ0ZXN0IiwgIlBBU1MiKSkKKworICAgICAgICByZXNwID0gc2VsZi5y
ZXF1ZXN0KHJvdXRlWzFdLCBhdXRoPShiInRlc3QiLCBiIlBBU1MiKSkKKyAgICAgICAgc2VsZi5h
c3NlcnRFcXVhbCgyMDAsIHJlc3AuZ2V0Y29kZSgpKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFs
KFtiInRlc3QiLCBiIlBBU1MiXSwgcmVzcC5yZWFkKCkuc3BsaXQoYiIgIikpCisKKyAgICAgICAg
ZW5jb2RlZF90ZXh0ID0gdSLjganjgYbjgoIiLmVuY29kZSgic2hpZnQtamlzIikKKyAgICAgICAg
cmVzcCA9IHNlbGYucmVxdWVzdChyb3V0ZVsxXSwgYXV0aD0oZW5jb2RlZF90ZXh0LCBlbmNvZGVk
X3RleHQpKQogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKDIwMCwgcmVzcC5nZXRjb2RlKCkpCi0g
ICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoWyJ0ZXN0IiwgIlBBU1MiXSwgcmVzcC5yZWFkKCkuc3Bs
aXQoIiAiKSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChbZW5jb2RlZF90ZXh0LCBlbmNvZGVk
X3RleHRdLCByZXNwLnJlYWQoKS5zcGxpdChiIiAiKSkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0c2VydmUvdGVzdHMvZnVu
Y3Rpb25hbC90ZXN0X3Jlc3BvbnNlLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy93cHRzZXJ2ZS90ZXN0cy9mdW5jdGlvbmFsL3Rlc3RfcmVzcG9u
c2UucHkKaW5kZXggZGFmOGU2ZWQwMDIuLmQ4ZDY0ZDU0Y2NjIDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHNlcnZlL3Rlc3Rz
L2Z1bmN0aW9uYWwvdGVzdF9yZXNwb25zZS5weQorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHNlcnZlL3Rlc3RzL2Z1bmN0aW9uYWwvdGVz
dF9yZXNwb25zZS5weQpAQCAtMiwxNCArMiwxNCBAQCBpbXBvcnQgc3lzCiBpbXBvcnQgb3MKIGlt
cG9ydCB1bml0dGVzdAogaW1wb3J0IGpzb24KLWZyb20gdHlwZXMgaW1wb3J0IE1ldGhvZFR5cGUK
IGZyb20gaW8gaW1wb3J0IEJ5dGVzSU8KIAogaW1wb3J0IHB5dGVzdAorZnJvbSBzaXggaW1wb3J0
IGNyZWF0ZV9ib3VuZF9tZXRob2QKIAogd3B0c2VydmUgPSBweXRlc3QuaW1wb3J0b3Jza2lwKCJ3
cHRzZXJ2ZSIpCiBmcm9tIC5iYXNlIGltcG9ydCBUZXN0VXNpbmdTZXJ2ZXIsIFRlc3RVc2luZ0gy
U2VydmVyLCBkb2Nfcm9vdAotZnJvbSBoeXBlci5oMi5leGNlcHRpb25zIGltcG9ydCBQcm90b2Nv
bEVycm9yCitmcm9tIGgyLmV4Y2VwdGlvbnMgaW1wb3J0IFByb3RvY29sRXJyb3IKIAogZGVmIHNl
bmRfYm9keV9hc19oZWFkZXIoc2VsZik6CiAgICAgaWYgc2VsZi5fcmVzcG9uc2UuYWRkX3JlcXVp
cmVkX2hlYWRlcnM6CkBAIC0xOSwxMyArMTksMTEgQEAgZGVmIHNlbmRfYm9keV9hc19oZWFkZXIo
c2VsZik6CiAgICAgc2VsZi5faGVhZGVyc19jb21wbGV0ZSA9IFRydWUKIAogY2xhc3MgVGVzdFJl
c3BvbnNlKFRlc3RVc2luZ1NlcnZlcik6Ci0gICAgQHB5dGVzdC5tYXJrLnhmYWlsKHN5cy52ZXJz
aW9uX2luZm8gPj0gKDMsKSwgcmVhc29uPSJ3cHRzZXJ2ZSBvbmx5IHdvcmtzIG9uIFB5MiIpCiAg
ICAgZGVmIHRlc3RfaGVhZF93aXRob3V0X2JvZHkoc2VsZik6CiAgICAgICAgIEB3cHRzZXJ2ZS5o
YW5kbGVycy5oYW5kbGVyCiAgICAgICAgIGRlZiBoYW5kbGVyKHJlcXVlc3QsIHJlc3BvbnNlKToK
LSAgICAgICAgICAgIHJlc3BvbnNlLndyaXRlci5lbmRfaGVhZGVycyA9IE1ldGhvZFR5cGUoc2Vu
ZF9ib2R5X2FzX2hlYWRlciwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgcmVzcG9uc2Uud3JpdGVyLAotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3cHRzZXJ2ZS5yZXNwb25zZS5SZXNwb25zZVdy
aXRlcikKKyAgICAgICAgICAgIHJlc3BvbnNlLndyaXRlci5lbmRfaGVhZGVycyA9IGNyZWF0ZV9i
b3VuZF9tZXRob2Qoc2VuZF9ib2R5X2FzX2hlYWRlciwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzcG9uc2Uud3JpdGVyKQog
ICAgICAgICAgICAgcmV0dXJuIFsoIlgtVGVzdCIsICJURVNUIildLCAiYm9keVxyXG4iCiAKICAg
ICAgICAgcm91dGUgPSAoIkdFVCIsICIvdGVzdC90ZXN0X2hlYWRfd2l0aG91dF9ib2R5IiwgaGFu
ZGxlcikKQEAgLTM1LDE0ICszMywxMiBAQCBjbGFzcyBUZXN0UmVzcG9uc2UoVGVzdFVzaW5nU2Vy
dmVyKToKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgiVEVTVCIsIHJlc3AuaW5mbygpWyd4LVRl
c3QnXSkKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgiIiwgcmVzcC5pbmZvKClbJ3gtYm9keSdd
KQogCi0gICAgQHB5dGVzdC5tYXJrLnhmYWlsKHN5cy52ZXJzaW9uX2luZm8gPj0gKDMsKSwgcmVh
c29uPSJ3cHRzZXJ2ZSBvbmx5IHdvcmtzIG9uIFB5MiIpCiAgICAgZGVmIHRlc3RfaGVhZF93aXRo
X2JvZHkoc2VsZik6CiAgICAgICAgIEB3cHRzZXJ2ZS5oYW5kbGVycy5oYW5kbGVyCiAgICAgICAg
IGRlZiBoYW5kbGVyKHJlcXVlc3QsIHJlc3BvbnNlKToKICAgICAgICAgICAgIHJlc3BvbnNlLnNl
bmRfYm9keV9mb3JfaGVhZF9yZXF1ZXN0ID0gVHJ1ZQotICAgICAgICAgICAgcmVzcG9uc2Uud3Jp
dGVyLmVuZF9oZWFkZXJzID0gTWV0aG9kVHlwZShzZW5kX2JvZHlfYXNfaGVhZGVyLAotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXNwb25zZS53
cml0ZXIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHdwdHNlcnZlLnJlc3BvbnNlLlJlc3BvbnNlV3JpdGVyKQorICAgICAgICAgICAgcmVzcG9u
c2Uud3JpdGVyLmVuZF9oZWFkZXJzID0gY3JlYXRlX2JvdW5kX21ldGhvZChzZW5kX2JvZHlfYXNf
aGVhZGVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICByZXNwb25zZS53cml0ZXIpCiAgICAgICAgICAgICByZXR1cm4gWygiWC1U
ZXN0IiwgIlRFU1QiKV0sICJib2R5XHJcbiIKIAogICAgICAgICByb3V0ZSA9ICgiR0VUIiwgIi90
ZXN0L3Rlc3RfaGVhZF93aXRoX2JvZHkiLCBoYW5kbGVyKQpAQCAtMTY0LDcgKzE2MCw3IEBAIGNs
YXNzIFRlc3RSZXNwb25zZShUZXN0VXNpbmdTZXJ2ZXIpOgogICAgIGRlZiB0ZXN0X3dyaXRlX3Jh
d19ub25lKHNlbGYpOgogICAgICAgICBAd3B0c2VydmUuaGFuZGxlcnMuaGFuZGxlcgogICAgICAg
ICBkZWYgaGFuZGxlcihyZXF1ZXN0LCByZXNwb25zZSk6Ci0gICAgICAgICAgICB3aXRoIHB5dGVz
dC5yYWlzZXMoVmFsdWVFcnJvciwgbWVzc2FnZT0iZGF0YSBjYW5ub3QgYmUgTm9uZSIpOgorICAg
ICAgICAgICAgd2l0aCBweXRlc3QucmFpc2VzKFZhbHVlRXJyb3IpOgogICAgICAgICAgICAgICAg
IHJlc3BvbnNlLndyaXRlci53cml0ZV9yYXdfY29udGVudChOb25lKQogCiAgICAgICAgIHJvdXRl
ID0gKCJHRVQiLCAiL3Rlc3QvdGVzdF93cml0ZV9yYXdfY29udGVudCIsIGhhbmRsZXIpCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3dwdHNlcnZlL3Rlc3RzL2Z1bmN0aW9uYWwvdGVzdF9zZXJ2ZXIucHkgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHNlcnZlL3Rlc3RzL2Z1bmN0
aW9uYWwvdGVzdF9zZXJ2ZXIucHkKaW5kZXggNTExYzg2ZjMyYzUuLjUxMzMxYTY3ZWZhIDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3dwdHNlcnZlL3Rlc3RzL2Z1bmN0aW9uYWwvdGVzdF9zZXJ2ZXIucHkKKysrIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRzZXJ2ZS90ZXN0cy9m
dW5jdGlvbmFsL3Rlc3Rfc2VydmVyLnB5CkBAIC00LDcgKzQsNyBAQCBpbXBvcnQgcHl0ZXN0CiBm
cm9tIHNpeC5tb3Zlcy51cmxsaWIuZXJyb3IgaW1wb3J0IEhUVFBFcnJvcgogCiB3cHRzZXJ2ZSA9
IHB5dGVzdC5pbXBvcnRvcnNraXAoIndwdHNlcnZlIikKLWZyb20gLmJhc2UgaW1wb3J0IFRlc3RV
c2luZ1NlcnZlcgorZnJvbSAuYmFzZSBpbXBvcnQgVGVzdFVzaW5nU2VydmVyLCBUZXN0VXNpbmdI
MlNlcnZlcgogCiAKIGNsYXNzIFRlc3RGaWxlSGFuZGxlcihUZXN0VXNpbmdTZXJ2ZXIpOgpAQCAt
NDAsNSArNDAsNTEgQEAgY2xhc3MgVGVzdFJlcXVlc3RIYW5kbGVyKFRlc3RVc2luZ1NlcnZlcik6
CiAKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjbS5leGNlcHRpb24uY29kZSwgNTAwKQogCitj
bGFzcyBUZXN0RmlsZUhhbmRsZXJIMihUZXN0VXNpbmdIMlNlcnZlcik6CisgICAgZGVmIHRlc3Rf
bm90X2hhbmRsZWQoc2VsZik6CisgICAgICAgIHNlbGYuY29ubi5yZXF1ZXN0KCJHRVQiLCAiL25v
dF9leGlzdGluZyIpCisgICAgICAgIHJlc3AgPSBzZWxmLmNvbm4uZ2V0X3Jlc3BvbnNlKCkKKwor
ICAgICAgICBhc3NlcnQgcmVzcC5zdGF0dXMgPT0gNDA0CisKK2NsYXNzIFRlc3RSZXdyaXRlckgy
KFRlc3RVc2luZ0gyU2VydmVyKToKKyAgICBkZWYgdGVzdF9yZXdyaXRlKHNlbGYpOgorICAgICAg
ICBAd3B0c2VydmUuaGFuZGxlcnMuaGFuZGxlcgorICAgICAgICBkZWYgaGFuZGxlcihyZXF1ZXN0
LCByZXNwb25zZSk6CisgICAgICAgICAgICByZXR1cm4gcmVxdWVzdC5yZXF1ZXN0X3BhdGgKKwor
ICAgICAgICByb3V0ZSA9ICgiR0VUIiwgIi90ZXN0L3Jld3JpdHRlbiIsIGhhbmRsZXIpCisgICAg
ICAgIHNlbGYuc2VydmVyLnJld3JpdGVyLnJlZ2lzdGVyKCJHRVQiLCAiL3Rlc3Qvb3JpZ2luYWwi
LCByb3V0ZVsxXSkKKyAgICAgICAgc2VsZi5zZXJ2ZXIucm91dGVyLnJlZ2lzdGVyKCpyb3V0ZSkK
KyAgICAgICAgc2VsZi5jb25uLnJlcXVlc3QoIkdFVCIsICIvdGVzdC9vcmlnaW5hbCIpCisgICAg
ICAgIHJlc3AgPSBzZWxmLmNvbm4uZ2V0X3Jlc3BvbnNlKCkKKyAgICAgICAgYXNzZXJ0IHJlc3Au
c3RhdHVzID09IDIwMAorICAgICAgICBhc3NlcnQgcmVzcC5yZWFkKCkgPT0gYiIvdGVzdC9yZXdy
aXR0ZW4iCisKK2NsYXNzIFRlc3RSZXF1ZXN0SGFuZGxlckgyKFRlc3RVc2luZ0gyU2VydmVyKToK
KyAgICBkZWYgdGVzdF9leGNlcHRpb24oc2VsZik6CisgICAgICAgIEB3cHRzZXJ2ZS5oYW5kbGVy
cy5oYW5kbGVyCisgICAgICAgIGRlZiBoYW5kbGVyKHJlcXVlc3QsIHJlc3BvbnNlKToKKyAgICAg
ICAgICAgIHJhaXNlIEV4Y2VwdGlvbgorCisgICAgICAgIHJvdXRlID0gKCJHRVQiLCAiL3Rlc3Qv
cmFpc2VzIiwgaGFuZGxlcikKKyAgICAgICAgc2VsZi5zZXJ2ZXIucm91dGVyLnJlZ2lzdGVyKCpy
b3V0ZSkKKyAgICAgICAgc2VsZi5jb25uLnJlcXVlc3QoIkdFVCIsICIvdGVzdC9yYWlzZXMiKQor
ICAgICAgICByZXNwID0gc2VsZi5jb25uLmdldF9yZXNwb25zZSgpCisKKyAgICAgICAgYXNzZXJ0
IHJlc3Auc3RhdHVzID09IDUwMAorCisgICAgZGVmIHRlc3RfZnJhbWVfaGFuZGxlcl9leGNlcHRp
b24oc2VsZik6CisgICAgICAgIGNsYXNzIGhhbmRsZXJfY2xzOgorICAgICAgICAgICAgZGVmIGZy
YW1lX2hhbmRsZXIoc2VsZiwgcmVxdWVzdCk6CisgICAgICAgICAgICAgICAgcmFpc2UgRXhjZXB0
aW9uCisKKyAgICAgICAgcm91dGUgPSAoIkdFVCIsICIvdGVzdC9yYWlzZXMiLCBoYW5kbGVyX2Ns
cygpKQorICAgICAgICBzZWxmLnNlcnZlci5yb3V0ZXIucmVnaXN0ZXIoKnJvdXRlKQorICAgICAg
ICBzZWxmLmNvbm4ucmVxdWVzdCgiR0VUIiwgIi90ZXN0L3JhaXNlcyIpCisgICAgICAgIHJlc3Ag
PSBzZWxmLmNvbm4uZ2V0X3Jlc3BvbnNlKCkKKworICAgICAgICBhc3NlcnQgcmVzcC5zdGF0dXMg
PT0gNTAwCisKIGlmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CiAgICAgdW5pdHRlc3QubWFpbigp
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3dwdHNlcnZlL3Rlc3RzL3Rlc3RfY29uZmlnLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRzZXJ2ZS90ZXN0cy90ZXN0X2NvbmZp
Zy5weQppbmRleCA5NzEwMzQyNjY0Zi4uODUyNzFjM2E0YjMgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0c2VydmUvdGVzdHMv
dGVzdF9jb25maWcucHkKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy93cHRzZXJ2ZS90ZXN0cy90ZXN0X2NvbmZpZy5weQpAQCAtMSw1ICsxLDgg
QEAKK2ltcG9ydCBqc29uCiBpbXBvcnQgbG9nZ2luZwogaW1wb3J0IHBpY2tsZQorCitmcm9tIGRp
c3R1dGlscy5zcGF3biBpbXBvcnQgZmluZF9leGVjdXRhYmxlCiBmcm9tIGxvZ2dpbmcgaW1wb3J0
IGhhbmRsZXJzCiAKIGltcG9ydCBweXRlc3QKQEAgLTQxLDYgKzQ0LDE2IEBAIGRlZiB0ZXN0X2xv
Z2dlcl9wcmVzZXJ2ZWQoKToKICAgICAgICAgYXNzZXJ0IGMubG9nZ2VyIGlzIGxvZ2dlcgogCiAK
K2RlZiB0ZXN0X2FzX2RpY3QoKToKKyAgICB3aXRoIGNvbmZpZy5Db25maWdCdWlsZGVyKCkgYXMg
YzoKKyAgICAgICAgYXNzZXJ0IGMuYXNfZGljdCgpIGlzIG5vdCBOb25lCisKKworZGVmIHRlc3Rf
YXNfZGljdF9pc19qc29uKCk6CisgICAgd2l0aCBjb25maWcuQ29uZmlnQnVpbGRlcigpIGFzIGM6
CisgICAgICAgIGFzc2VydCBqc29uLmR1bXBzKGMuYXNfZGljdCgpKSBpcyBub3QgTm9uZQorCisK
IGRlZiB0ZXN0X2luaXRfYmFzaWNfcHJvcCgpOgogICAgIHdpdGggY29uZmlnLkNvbmZpZ0J1aWxk
ZXIoYnJvd3Nlcl9ob3N0PSJmb28uYmFyIikgYXMgYzoKICAgICAgICAgYXNzZXJ0IGMuYnJvd3Nl
cl9ob3N0ID09ICJmb28uYmFyIgpAQCAtMTc2LDYgKzE4OSw4IEBAIGRlZiB0ZXN0X3BvcnRzX25v
X3NzbCgpOgogICAgICAgICBhc3NlcnQgcG9ydHNbIndzIl0gPT0gWzEwMDNdCiAKIAorQHB5dGVz
dC5tYXJrLnNraXBpZihmaW5kX2V4ZWN1dGFibGUoIm9wZW5zc2wiKSBpcyBOb25lLAorICAgICAg
ICAgICAgICAgICAgICByZWFzb249InJlcXVpcmVzIE9wZW5TU0wiKQogZGVmIHRlc3RfcG9ydHNf
b3BlbnNzbCgpOgogICAgIHdpdGggY29uZmlnLkNvbmZpZ0J1aWxkZXIocG9ydHM9eyJodHRwIjog
WzEwMDFdLCAiaHR0cHMiOiBbMTAwMl0sICJ3cyI6IFsxMDAzXSwgIndzcyI6IFsxMDA0XX0sCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzc2w9eyJ0eXBlIjogIm9wZW5zc2wifSkgYXMg
YzoKQEAgLTM1OSw5ICszNzQsOSBAQCBkZWYgdGVzdF9zc2xfZW52X29wZW5zc2woKToKIAogCiBk
ZWYgdGVzdF9zc2xfZW52X2JvZ3VzKCk6Ci0gICAgICAgIHdpdGggcHl0ZXN0LnJhaXNlcyhWYWx1
ZUVycm9yKToKLSAgICAgICAgICAgIHdpdGggY29uZmlnLkNvbmZpZ0J1aWxkZXIoc3NsPXsidHlw
ZSI6ICJmb29iYXIifSk6Ci0gICAgICAgICAgICAgICAgcGFzcworICAgIHdpdGggcHl0ZXN0LnJh
aXNlcyhWYWx1ZUVycm9yKToKKyAgICAgICAgd2l0aCBjb25maWcuQ29uZmlnQnVpbGRlcihzc2w9
eyJ0eXBlIjogImZvb2JhciJ9KToKKyAgICAgICAgICAgIHBhc3MKIAogCiBkZWYgdGVzdF9waWNr
bGUoKToKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvd3B0c2VydmUvdGVzdHMvdGVzdF9zdGFzaC5weSBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0c2VydmUvdGVzdHMvdGVzdF9z
dGFzaC5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uMWVhOTljMDYw
OWYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3dwdHNlcnZlL3Rlc3RzL3Rlc3Rfc3Rhc2gucHkKQEAgLTAsMCArMSwx
MzYgQEAKK2ltcG9ydCBtdWx0aXByb2Nlc3NpbmcKK2ltcG9ydCBzeXMKK2ltcG9ydCB0aHJlYWRp
bmcKK2Zyb20gbXVsdGlwcm9jZXNzaW5nLm1hbmFnZXJzIGltcG9ydCBCYXNlTWFuYWdlcgorCitp
bXBvcnQgcHl0ZXN0CisKK1N0YXNoID0gcHl0ZXN0LmltcG9ydG9yc2tpcCgid3B0c2VydmUuc3Rh
c2giKS5TdGFzaAorCitAcHl0ZXN0LmZpeHR1cmUoKQorZGVmIGFkZF9jbGVhbnVwKCk6CisgICAg
Zm5zID0gW10KKworICAgIGRlZiBhZGQoZm4pOgorICAgICAgICBmbnMuYXBwZW5kKGZuKQorCisg
ICAgeWllbGQgYWRkCisKKyAgICBmb3IgZm4gaW4gZm5zOgorICAgICAgICBmbigpCisKK2RlZiBy
dW4ocHJvY2Vzc19xdWV1ZSwgcmVxdWVzdF9sb2NrLCByZXNwb25zZV9sb2NrKToKKyAgICAiIiJD
cmVhdGUgdHdvIFN0YXNoIGluc3RhbmNlcyBpbiBwYXJhbGxlbCB0aHJlYWRzLiBVc2UgdGhlIHBy
b3ZpZGVkIGxvY2tzCisgICAgdG8gZW5zdXJlIHRoZSBmaXJzdCB0aHJlYWQgaXMgYWN0aXZlbHkg
ZXN0YWJsaXNoaW5nIGFuIGludGVycHJvY2VzcworICAgIGNvbW11bmljYXRpb24gY2hhbm5lbCBh
dCB0aGUgbW9tZW50IHRoZSBzZWNvbmQgdGhyZWFkIGV4ZWN1dGVzLiIiIgorCisgICAgZGVmIHRh
cmdldCh0aHJlYWRfcXVldWUpOgorICAgICAgICBzdGFzaCA9IFN0YXNoKCIvIiwgKCJsb2NhbGhv
c3QiLCA0NTQzKSwgYiJzb21lIGtleSIpCisKKyAgICAgICAgIyBUaGUgYGxvY2tgIHByb3BlcnR5
IG9mIHRoZSBTdGFzaCBpbnN0YW5jZSBzaG91bGQgYWx3YXlzIGJlIHNldAorICAgICAgICAjIGlt
bWVkaWF0ZWx5IGZvbGxvd2luZyBpbml0aWFsaXphdGlvbi4gVGhlc2UgdmFsdWVzIGFyZSBhc3Nl
cnRlZCBpbgorICAgICAgICAjIHRoZSBhY3RpdmUgdGVzdC4KKyAgICAgICAgdGhyZWFkX3F1ZXVl
LnB1dChzdGFzaC5sb2NrIGlzIE5vbmUpCisKKyAgICB0aHJlYWRfcXVldWUgPSBtdWx0aXByb2Nl
c3NpbmcuUXVldWUoKQorICAgIGZpcnN0ID0gdGhyZWFkaW5nLlRocmVhZCh0YXJnZXQ9dGFyZ2V0
LCBhcmdzPSh0aHJlYWRfcXVldWUsKSkKKyAgICBzZWNvbmQgPSB0aHJlYWRpbmcuVGhyZWFkKHRh
cmdldD10YXJnZXQsIGFyZ3M9KHRocmVhZF9xdWV1ZSwpKQorCisgICAgcmVxdWVzdF9sb2NrLmFj
cXVpcmUoKQorICAgIHJlc3BvbnNlX2xvY2suYWNxdWlyZSgpCisgICAgZmlyc3Quc3RhcnQoKQor
CisgICAgcmVxdWVzdF9sb2NrLmFjcXVpcmUoKQorCisgICAgIyBBdCB0aGlzIG1vbWVudCwgdGhl
IGBmaXJzdGAgdGhyZWFkIGlzIHdhaXRpbmcgZm9yIGEgcHJveGllZCBvYmplY3QuCisgICAgIyBD
cmVhdGUgYSBzZWNvbmQgdGhyZWFkIGluIG9yZGVyIHRvIGluc3BlY3QgdGhlIGJlaGF2aW9yIG9m
IHRoZSBTdGFzaAorICAgICMgY29uc3RydWN0b3IgYXQgdGhpcyBtb21lbnQuCisKKyAgICBzZWNv
bmQuc3RhcnQoKQorCisgICAgIyBBbGxvdyB0aGUgYGZpcnN0YCB0aHJlYWQgdG8gcHJvY2VlZAor
CisgICAgcmVzcG9uc2VfbG9jay5yZWxlYXNlKCkKKworICAgICMgV2FpdCBmb3IgYm90aCB0aHJl
YWRzIHRvIGNvbXBsZXRlIGFuZCByZXBvcnQgdGhlaXIgc3RhdGV0byB0aGUgdGVzdAorICAgIHBy
b2Nlc3NfcXVldWUucHV0KHRocmVhZF9xdWV1ZS5nZXQoKSkKKyAgICBwcm9jZXNzX3F1ZXVlLnB1
dCh0aHJlYWRfcXVldWUuZ2V0KCkpCisKKworQHB5dGVzdC5tYXJrLnhmYWlsKHN5cy5wbGF0Zm9y
bSA9PSAid2luMzIiLAorICAgICAgICAgICAgICAgICAgIHJlYXNvbj0iaHR0cHM6Ly9naXRodWIu
Y29tL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQvaXNzdWVzLzE2OTM4IikKK2RlZiB0ZXN0X2RlbGF5
ZWRfbG9jayhhZGRfY2xlYW51cCk6CisgICAgIiIiRW5zdXJlIHRoYXQgZGVsYXlzIGluIHByb3hp
ZWQgTG9jayByZXRyaWV2YWwgZG8gbm90IGludGVyZmVyZSB3aXRoCisgICAgaW5pdGlhbGl6YXRp
b24gaW4gcGFyYWxsZWwgdGhyZWFkcy4iIiIKKworICAgIGNsYXNzIFNsb3dMb2NrKEJhc2VNYW5h
Z2VyKToKKyAgICAgICAgcGFzcworCisgICAgcmVxdWVzdF9sb2NrID0gbXVsdGlwcm9jZXNzaW5n
LkxvY2soKQorICAgIHJlc3BvbnNlX2xvY2sgPSBtdWx0aXByb2Nlc3NpbmcuTG9jaygpCisKKyAg
ICBxdWV1ZSA9IG11bHRpcHJvY2Vzc2luZy5RdWV1ZSgpCisKKyAgICBkZWYgbXV0ZXhfbG9ja19y
ZXF1ZXN0KCk6CisgICAgICAgICIiIlRoaXMgcmVxdWVzdCBoYW5kbGVyIGFsbG93cyB0aGUgY2Fs
bGVyIHRvIGRlbGF5IGV4ZWN1dGlvbiBvZiBhCisgICAgICAgIHRocmVhZCB3aGljaCBoYXMgcmVx
dWVzdGVkIGEgcHJveGllZCByZXByZXNlbnRhdGlvbiBvZiB0aGUgYGxvY2tgCisgICAgICAgIHBy
b3BlcnR5LCBzaW11bGF0aW5nIGEgInNsb3ciIGludGVycHJvY2VzcyBjb21tdW5pY2F0aW9uIGNo
YW5uZWwuIiIiCisKKyAgICAgICAgcmVxdWVzdF9sb2NrLnJlbGVhc2UoKQorICAgICAgICByZXNw
b25zZV9sb2NrLmFjcXVpcmUoKQorICAgICAgICByZXR1cm4gdGhyZWFkaW5nLkxvY2soKQorCisg
ICAgU2xvd0xvY2sucmVnaXN0ZXIoImdldF9kaWN0IiwgY2FsbGFibGU9bGFtYmRhOiB7fSkKKyAg
ICBTbG93TG9jay5yZWdpc3RlcigiTG9jayIsIGNhbGxhYmxlPW11dGV4X2xvY2tfcmVxdWVzdCkK
KworICAgIHNsb3dsb2NrID0gU2xvd0xvY2soKCJsb2NhbGhvc3QiLCA0NTQzKSwgYiJzb21lIGtl
eSIpCisgICAgc2xvd2xvY2suc3RhcnQoKQorICAgIGFkZF9jbGVhbnVwKGxhbWJkYTogc2xvd2xv
Y2suc2h1dGRvd24oKSkKKworICAgIHBhcmFsbGVsID0gbXVsdGlwcm9jZXNzaW5nLlByb2Nlc3Mo
dGFyZ2V0PXJ1biwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyZ3M9
KHF1ZXVlLCByZXF1ZXN0X2xvY2ssIHJlc3BvbnNlX2xvY2spKQorICAgIHBhcmFsbGVsLnN0YXJ0
KCkKKyAgICBhZGRfY2xlYW51cChsYW1iZGE6IHBhcmFsbGVsLnRlcm1pbmF0ZSgpKQorCisgICAg
YXNzZXJ0IFtxdWV1ZS5nZXQoKSwgcXVldWUuZ2V0KCldID09IFtGYWxzZSwgRmFsc2VdLCAoCisg
ICAgICAgICJib3RoIGluc3RhbmNlcyBoYWQgdmFsaWQgbG9ja3MiKQorCisKK0BweXRlc3QubWFy
ay54ZmFpbChzeXMucGxhdGZvcm0gPT0gIndpbjMyIiwKKyAgICAgICAgICAgICAgICAgICByZWFz
b249Imh0dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxhdGZvcm0tdGVzdHMvd3B0L2lzc3Vlcy8xNjkz
OCIpCitkZWYgdGVzdF9kZWxheWVkX2RpY3QoYWRkX2NsZWFudXApOgorICAgICIiIkVuc3VyZSB0
aGF0IGRlbGF5cyBpbiBwcm94aWVkIGBkaWN0YCByZXRyaWV2YWwgZG8gbm90IGludGVyZmVyZSB3
aXRoCisgICAgaW5pdGlhbGl6YXRpb24gaW4gcGFyYWxsZWwgdGhyZWFkcy4iIiIKKworICAgIGNs
YXNzIFNsb3dEaWN0KEJhc2VNYW5hZ2VyKToKKyAgICAgICAgcGFzcworCisgICAgcmVxdWVzdF9s
b2NrID0gbXVsdGlwcm9jZXNzaW5nLkxvY2soKQorICAgIHJlc3BvbnNlX2xvY2sgPSBtdWx0aXBy
b2Nlc3NpbmcuTG9jaygpCisKKyAgICBxdWV1ZSA9IG11bHRpcHJvY2Vzc2luZy5RdWV1ZSgpCisK
KyAgICAjIFRoaXMgcmVxdWVzdCBoYW5kbGVyIGFsbG93cyB0aGUgY2FsbGVyIHRvIGRlbGF5IGV4
ZWN1dGlvbiBvZiBhIHRocmVhZAorICAgICMgd2hpY2ggaGFzIHJlcXVlc3RlZCBhIHByb3hpZWQg
cmVwcmVzZW50YXRpb24gb2YgdGhlICJnZXRfZGljdCIgcHJvcGVydHkuCisgICAgZGVmIG11dGV4
X2RpY3RfcmVxdWVzdCgpOgorICAgICAgICAiIiJUaGlzIHJlcXVlc3QgaGFuZGxlciBhbGxvd3Mg
dGhlIGNhbGxlciB0byBkZWxheSBleGVjdXRpb24gb2YgYQorICAgICAgICB0aHJlYWQgd2hpY2gg
aGFzIHJlcXVlc3RlZCBhIHByb3hpZWQgcmVwcmVzZW50YXRpb24gb2YgdGhlIGBnZXRfZGljdGAK
KyAgICAgICAgcHJvcGVydHksIHNpbXVsYXRpbmcgYSAic2xvdyIgaW50ZXJwcm9jZXNzIGNvbW11
bmljYXRpb24gY2hhbm5lbC4iIiIKKyAgICAgICAgcmVxdWVzdF9sb2NrLnJlbGVhc2UoKQorICAg
ICAgICByZXNwb25zZV9sb2NrLmFjcXVpcmUoKQorICAgICAgICByZXR1cm4ge30KKworICAgIFNs
b3dEaWN0LnJlZ2lzdGVyKCJnZXRfZGljdCIsIGNhbGxhYmxlPW11dGV4X2RpY3RfcmVxdWVzdCkK
KyAgICBTbG93RGljdC5yZWdpc3RlcigiTG9jayIsIGNhbGxhYmxlPWxhbWJkYTogdGhyZWFkaW5n
LkxvY2soKSkKKworICAgIHNsb3dkaWN0ID0gU2xvd0RpY3QoKCJsb2NhbGhvc3QiLCA0NTQzKSwg
YiJzb21lIGtleSIpCisgICAgc2xvd2RpY3Quc3RhcnQoKQorICAgIGFkZF9jbGVhbnVwKGxhbWJk
YTogc2xvd2RpY3Quc2h1dGRvd24oKSkKKworICAgIHBhcmFsbGVsID0gbXVsdGlwcm9jZXNzaW5n
LlByb2Nlc3ModGFyZ2V0PXJ1biwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGFyZ3M9KHF1ZXVlLCByZXF1ZXN0X2xvY2ssIHJlc3BvbnNlX2xvY2spKQorICAgIHBhcmFs
bGVsLnN0YXJ0KCkKKyAgICBhZGRfY2xlYW51cChsYW1iZGE6IHBhcmFsbGVsLnRlcm1pbmF0ZSgp
KQorCisgICAgYXNzZXJ0IFtxdWV1ZS5nZXQoKSwgcXVldWUuZ2V0KCldID09IFtGYWxzZSwgRmFs
c2VdLCAoCisgICAgICAgICJib3RoIGluc3RhbmNlcyBoYWQgdmFsaWQgbG9ja3MiKQpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93
cHRzZXJ2ZS90ZXN0cy93M2MtaW1wb3J0LmxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0c2VydmUvdGVzdHMvdzNjLWltcG9ydC5sb2cKaW5k
ZXggNzI4YTljYTk3NzEuLmVmOWQ2YTgwYWE2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHNlcnZlL3Rlc3RzL3czYy1pbXBv
cnQubG9nCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvd3B0c2VydmUvdGVzdHMvdzNjLWltcG9ydC5sb2cKQEAgLTE2LDMgKzE2LDQgQEAgTm9u
ZQogTGlzdCBvZiBmaWxlczoKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3dwdHNlcnZlL3Rlc3RzL3Rlc3RfY29uZmlnLnB5CiAvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRzZXJ2ZS90ZXN0cy90ZXN0
X3JlcGxhY2VtZW50X3Rva2VuaXplci5weQorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0c2VydmUvdGVzdHMvdGVzdF9zdGFzaC5weQpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93
cHRzZXJ2ZS93cHRzZXJ2ZS9jb25maWcucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHNlcnZlL3dwdHNlcnZlL2NvbmZpZy5weQppbmRleCBj
YjU0MzVmZGVmNC4uZTExY2FlMTM3YjkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0c2VydmUvd3B0c2VydmUvY29uZmlnLnB5
CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
d3B0c2VydmUvd3B0c2VydmUvY29uZmlnLnB5CkBAIC03NSw3ICs3NSw5IEBAIGRlZiBqc29uX3R5
cGVzKG9iaik6CiAgICAgICAgIHJldHVybiB7a2V5OiBqc29uX3R5cGVzKHZhbHVlKSBmb3Iga2V5
LCB2YWx1ZSBpbiBpdGVyaXRlbXMob2JqKX0KICAgICBpZiAoaXNpbnN0YW5jZShvYmosIHN0cmlu
Z190eXBlcykgb3IKICAgICAgICAgaXNpbnN0YW5jZShvYmosIGludGVnZXJfdHlwZXMpIG9yCi0g
ICAgICAgIGlzaW5zdGFuY2Uob2JqLCBmbG9hdCkpOgorICAgICAgICBpc2luc3RhbmNlKG9iaiwg
ZmxvYXQpIG9yCisgICAgICAgIGlzaW5zdGFuY2Uob2JqLCBib29sKSBvcgorICAgICAgICBvYmog
aXMgTm9uZSk6CiAgICAgICAgIHJldHVybiBvYmoKICAgICBpZiBpc2luc3RhbmNlKG9iaiwgbGlz
dCkgb3IgaGFzYXR0cihvYmosICJfX2l0ZXJfXyIpOgogICAgICAgICByZXR1cm4gW2pzb25fdHlw
ZXModmFsdWUpIGZvciB2YWx1ZSBpbiBvYmpdCkBAIC0xMDEsNyArMTAzLDcgQEAgY2xhc3MgQ29u
ZmlnQnVpbGRlcihvYmplY3QpOgogCiAgICAgVGhlIHByb3BlcnRpZXMgb24gdGhlIGZpbmFsIGNv
bmZpZ3VyYXRpb24gaW5jbHVkZSB0aG9zZSBleHBsaWNpdGx5CiAgICAgc3VwcGxpZWQgYW5kIGNv
bXB1dGVkIHByb3BlcnRpZXMuIFRoZSBjb21wdXRlZCBwcm9wZXJ0aWVzIGFyZQotICAgIGRlZmlu
ZWQgYnl0IHRoZSBjb21wdXRlZF9wcm9wZXJpdGVzIGF0dHJpYnV0ZSBvbiB0aGUgY2xhc3MuIFRo
aXMKKyAgICBkZWZpbmVkIGJ5IHRoZSBjb21wdXRlZF9wcm9wZXJ0aWVzIGF0dHJpYnV0ZSBvbiB0
aGUgY2xhc3MuIFRoaXMKICAgICBpcyBhIGxpc3Qgb2YgcHJvcGVydHkgbmFtZXMsIGVhY2ggY29y
cmVzcG9uZGluZyB0byBhIF9nZXRfPG5hbWU+CiAgICAgbWV0aG9kIG9uIHRoZSBjbGFzcy4gVGhl
c2UgbWV0aG9kcyBhcmUgY2FsbGVkIGluIHRoZSBvcmRlciBkZWZpbmVkCiAgICAgaW4gY29tcHV0
ZWRfcHJvcGVydGllcyBhbmQgYXJlIHBhc3NlZCBhIHNpbmdsZSBhcmd1bWVudCwgYQpAQCAtMTI2
LDcgKzEyOCw5IEBAIGNsYXNzIENvbmZpZ0J1aWxkZXIob2JqZWN0KToKICAgICAgICAgICAgICJv
cGVuc3NsIjogewogICAgICAgICAgICAgICAgICJvcGVuc3NsX2JpbmFyeSI6ICJvcGVuc3NsIiwK
ICAgICAgICAgICAgICAgICAiYmFzZV9wYXRoIjogIl9jZXJ0cyIsCisgICAgICAgICAgICAgICAg
InBhc3N3b3JkIjogIndlYi1wbGF0Zm9ybS10ZXN0cyIsCiAgICAgICAgICAgICAgICAgImZvcmNl
X3JlZ2VuZXJhdGUiOiBGYWxzZSwKKyAgICAgICAgICAgICAgICAiZHVyYXRpb24iOiAzMCwKICAg
ICAgICAgICAgICAgICAiYmFzZV9jb25mX3BhdGgiOiBOb25lCiAgICAgICAgICAgICB9LAogICAg
ICAgICAgICAgInByZWdlbmVyYXRlZCI6IHsKQEAgLTMxNiw3ICszMjAsNyBAQCBjbGFzcyBDb25m
aWdCdWlsZGVyKG9iamVjdCk6CiAgICAgICAgIHNlbGYuX3NzbF9lbnYuX19lbnRlcl9fKCkKICAg
ICAgICAgaWYgc2VsZi5fc3NsX2Vudi5zc2xfZW5hYmxlZDoKICAgICAgICAgICAgIGtleV9wYXRo
LCBjZXJ0X3BhdGggPSBzZWxmLl9zc2xfZW52Lmhvc3RfY2VydF9wYXRoKGRhdGFbImRvbWFpbnNf
c2V0Il0pCi0gICAgICAgICAgICBjYV9jZXJ0X3BhdGggPSBzZWxmLl9zc2xfZW52LmNhX2NlcnRf
cGF0aCgpCisgICAgICAgICAgICBjYV9jZXJ0X3BhdGggPSBzZWxmLl9zc2xfZW52LmNhX2NlcnRf
cGF0aChkYXRhWyJkb21haW5zX3NldCJdKQogICAgICAgICAgICAgcmV0dXJuIHsia2V5X3BhdGgi
OiBrZXlfcGF0aCwKICAgICAgICAgICAgICAgICAgICAgImNhX2NlcnRfcGF0aCI6IGNhX2NlcnRf
cGF0aCwKICAgICAgICAgICAgICAgICAgICAgImNlcnRfcGF0aCI6IGNlcnRfcGF0aCwKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
d3B0c2VydmUvd3B0c2VydmUvY29uc3RhbnRzLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRzZXJ2ZS93cHRzZXJ2ZS9jb25zdGFudHMucHkK
aW5kZXggZWMxNTBiYTVjOGYuLjM1N2EyZTZkMzQ4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHNlcnZlL3dwdHNlcnZlL2Nv
bnN0YW50cy5weQorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3dwdHNlcnZlL3dwdHNlcnZlL2NvbnN0YW50cy5weQpAQCAtMSwyOSArMSwzMiBA
QAogZnJvbSAuIGltcG9ydCB1dGlscwogCi1jb250ZW50X3R5cGVzID0gdXRpbHMuaW52ZXJ0X2Rp
Y3QoeyJ0ZXh0L2h0bWwiOiBbImh0bSIsICJodG1sIl0sCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICJhcHBsaWNhdGlvbi9qc29uIjogWyJqc29uIl0sCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICJhcHBsaWNhdGlvbi94aHRtbCt4bWwiOiBbInhodCIsICJ4
aHRtIiwgInhodG1sIl0sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJhcHBs
aWNhdGlvbi94bWwiOiBbInhtbCJdLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAiYXBwbGljYXRpb24veC14cGluc3RhbGwiOiBbInhwaSJdLAotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAidGV4dC9qYXZhc2NyaXB0IjogWyJqcyJdLAotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAidGV4dC9jc3MiOiBbImNzcyJdLAotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAidGV4dC9wbGFpbiI6IFsidHh0IiwgIm1kIl0sCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJpbWFnZS9zdmcreG1sIjogWyJzdmciXSwK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImltYWdlL2dpZiI6IFsiZ2lmIl0s
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJpbWFnZS9qcGVnIjogWyJqcGci
LCAianBlZyJdLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiaW1hZ2UvcG5n
IjogWyJwbmciXSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImltYWdlL2Jt
cCI6IFsiYm1wIl0sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ0ZXh0L2V2
ZW50LXN0cmVhbSI6IFsiZXZlbnRfc3RyZWFtIl0sCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICJ0ZXh0L2NhY2hlLW1hbmlmZXN0IjogWyJtYW5pZmVzdCJdLAotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAidmlkZW8vbXA0IjogWyJtcDQiLCAibTR2Il0sCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJhdWRpby9tcDQiOiBbIm00YSJdLAot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiYXVkaW8vbXBlZyI6IFsibXAzIl0s
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ2aWRlby93ZWJtIjogWyJ3ZWJt
Il0sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJhdWRpby93ZWJtIjogWyJ3
ZWJhIl0sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ2aWRlby9vZ2ciOiBb
Im9nZyIsICJvZ3YiXSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImF1ZGlv
L29nZyI6IFsib2dhIl0sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJhdWRp
by94LXdhdiI6IFsid2F2Il0sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ0
ZXh0L3Z0dCI6IFsidnR0Il0sfSkKK2NvbnRlbnRfdHlwZXMgPSB1dGlscy5pbnZlcnRfZGljdCh7
CisgICAgImFwcGxpY2F0aW9uL2pzb24iOiBbImpzb24iXSwKKyAgICAiYXBwbGljYXRpb24vd2Fz
bSI6IFsid2FzbSJdLAorICAgICJhcHBsaWNhdGlvbi94aHRtbCt4bWwiOiBbInhodCIsICJ4aHRt
IiwgInhodG1sIl0sCisgICAgImFwcGxpY2F0aW9uL3htbCI6IFsieG1sIl0sCisgICAgImFwcGxp
Y2F0aW9uL3gteHBpbnN0YWxsIjogWyJ4cGkiXSwKKyAgICAiYXVkaW8vbXA0IjogWyJtNGEiXSwK
KyAgICAiYXVkaW8vbXBlZyI6IFsibXAzIl0sCisgICAgImF1ZGlvL29nZyI6IFsib2dhIl0sCisg
ICAgImF1ZGlvL3dlYm0iOiBbIndlYmEiXSwKKyAgICAiYXVkaW8veC13YXYiOiBbIndhdiJdLAor
ICAgICJpbWFnZS9ibXAiOiBbImJtcCJdLAorICAgICJpbWFnZS9naWYiOiBbImdpZiJdLAorICAg
ICJpbWFnZS9qcGVnIjogWyJqcGciLCAianBlZyJdLAorICAgICJpbWFnZS9wbmciOiBbInBuZyJd
LAorICAgICJpbWFnZS9zdmcreG1sIjogWyJzdmciXSwKKyAgICAidGV4dC9jYWNoZS1tYW5pZmVz
dCI6IFsibWFuaWZlc3QiXSwKKyAgICAidGV4dC9jc3MiOiBbImNzcyJdLAorICAgICJ0ZXh0L2V2
ZW50LXN0cmVhbSI6IFsiZXZlbnRfc3RyZWFtIl0sCisgICAgInRleHQvaHRtbCI6IFsiaHRtIiwg
Imh0bWwiXSwKKyAgICAidGV4dC9qYXZhc2NyaXB0IjogWyJqcyIsICJtanMiXSwKKyAgICAidGV4
dC9wbGFpbiI6IFsidHh0IiwgIm1kIl0sCisgICAgInRleHQvdnR0IjogWyJ2dHQiXSwKKyAgICAi
dmlkZW8vbXA0IjogWyJtcDQiLCAibTR2Il0sCisgICAgInZpZGVvL29nZyI6IFsib2dnIiwgIm9n
diJdLAorICAgICJ2aWRlby93ZWJtIjogWyJ3ZWJtIl0sCit9KQogCiByZXNwb25zZV9jb2RlcyA9
IHsKICAgICAxMDA6ICgnQ29udGludWUnLCAnUmVxdWVzdCByZWNlaXZlZCwgcGxlYXNlIGNvbnRp
bnVlJyksCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3dwdHNlcnZlL3dwdHNlcnZlL2hhbmRsZXJzLnB5IGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRzZXJ2ZS93cHRzZXJ2ZS9o
YW5kbGVycy5weQppbmRleCA3ZmJlNDIzNGVhMC4uY2E1MTE4MDA5Y2YgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0c2VydmUv
d3B0c2VydmUvaGFuZGxlcnMucHkKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy93cHRzZXJ2ZS93cHRzZXJ2ZS9oYW5kbGVycy5weQpAQCAtNyw4
ICs3LDYgQEAgaW1wb3J0IHRyYWNlYmFjawogZnJvbSBzaXgubW92ZXMudXJsbGliLnBhcnNlIGlt
cG9ydCBwYXJzZV9xcywgcXVvdGUsIHVucXVvdGUsIHVybGpvaW4KIGZyb20gc2l4IGltcG9ydCBp
dGVyaXRlbXMKIAotZnJvbSBoMi5ldmVudHMgaW1wb3J0IFJlcXVlc3RSZWNlaXZlZCwgRGF0YVJl
Y2VpdmVkCi0KIGZyb20gLmNvbnN0YW50cyBpbXBvcnQgY29udGVudF90eXBlcwogZnJvbSAucGlw
ZXMgaW1wb3J0IFBpcGVsaW5lLCB0ZW1wbGF0ZQogZnJvbSAucmFuZ2VzIGltcG9ydCBSYW5nZVBh
cnNlcgpAQCAtNzksNyArNzcsNyBAQCBjbGFzcyBEaXJlY3RvcnlIYW5kbGVyKG9iamVjdCk6CiAl
KGl0ZW1zKXMKIDwvdWw+CiAiIiIgJSB7InBhdGgiOiBjZ2kuZXNjYXBlKHVybF9wYXRoKSwKLSAg
ICAgICAiaXRlbXMiOiAiXG4iLmpvaW4oc2VsZi5saXN0X2l0ZW1zKHVybF9wYXRoLCBwYXRoKSl9
ICAjIGZsYWtlODogbm9xYQorICAgICAgICJpdGVtcyI6ICJcbiIuam9pbihzZWxmLmxpc3RfaXRl
bXModXJsX3BhdGgsIHBhdGgpKX0gICMgbm9xYTogRTEyMgogCiAgICAgZGVmIGxpc3RfaXRlbXMo
c2VsZiwgYmFzZV9wYXRoLCBwYXRoKToKICAgICAgICAgYXNzZXJ0IGJhc2VfcGF0aC5lbmRzd2l0
aCgiLyIpCkBAIC0xMDcsMTcgKzEwNSwyMSBAQCBjbGFzcyBEaXJlY3RvcnlIYW5kbGVyKG9iamVj
dCk6CiAKIGRlZiB3cmFwX3BpcGVsaW5lKHBhdGgsIHJlcXVlc3QsIHJlc3BvbnNlKToKICAgICBx
dWVyeSA9IHBhcnNlX3FzKHJlcXVlc3QudXJsX3BhcnRzLnF1ZXJ5KQorICAgIHBpcGVfc3RyaW5n
ID0gIiIKIAotICAgIHBpcGVsaW5lID0gTm9uZQotICAgIGlmICJwaXBlIiBpbiBxdWVyeToKLSAg
ICAgICAgcGlwZWxpbmUgPSBQaXBlbGluZShxdWVyeVsicGlwZSJdWy0xXSkKLSAgICBlbGlmICIu
c3ViLiIgaW4gcGF0aDoKKyAgICBpZiAiLnN1Yi4iIGluIHBhdGg6CiAgICAgICAgIG1sX2V4dGVu
c2lvbnMgPSB7Ii5odG1sIiwgIi5odG0iLCAiLnhodCIsICIueGh0bWwiLCAiLnhtbCIsICIuc3Zn
In0KICAgICAgICAgZXNjYXBlX3R5cGUgPSAiaHRtbCIgaWYgb3MucGF0aC5zcGxpdGV4dChwYXRo
KVsxXSBpbiBtbF9leHRlbnNpb25zIGVsc2UgIm5vbmUiCi0gICAgICAgIHBpcGVsaW5lID0gUGlw
ZWxpbmUoInN1YiglcykiICUgZXNjYXBlX3R5cGUpCisgICAgICAgIHBpcGVfc3RyaW5nID0gInN1
YiglcykiICUgZXNjYXBlX3R5cGUKKworICAgIGlmICJwaXBlIiBpbiBxdWVyeToKKyAgICAgICAg
aWYgcGlwZV9zdHJpbmc6CisgICAgICAgICAgICBwaXBlX3N0cmluZyArPSAifCIKKworICAgICAg
ICBwaXBlX3N0cmluZyArPSBxdWVyeVsicGlwZSJdWy0xXQogCi0gICAgaWYgcGlwZWxpbmUgaXMg
bm90IE5vbmU6Ci0gICAgICAgIHJlc3BvbnNlID0gcGlwZWxpbmUocmVxdWVzdCwgcmVzcG9uc2Up
CisgICAgaWYgcGlwZV9zdHJpbmc6CisgICAgICAgIHJlc3BvbnNlID0gUGlwZWxpbmUocGlwZV9z
dHJpbmcpKHJlcXVlc3QsIHJlc3BvbnNlKQogCiAgICAgcmV0dXJuIHJlc3BvbnNlCiAKQEAgLTE2
MSw4ICsxNjMsOCBAQCBjbGFzcyBGaWxlSGFuZGxlcihvYmplY3QpOgogICAgICAgICBydiA9IChz
ZWxmLmxvYWRfaGVhZGVycyhyZXF1ZXN0LCBvcy5wYXRoLmpvaW4ob3MucGF0aC5zcGxpdChwYXRo
KVswXSwgIl9fZGlyX18iKSkgKwogICAgICAgICAgICAgICBzZWxmLmxvYWRfaGVhZGVycyhyZXF1
ZXN0LCBwYXRoKSkKIAotICAgICAgICBpZiBub3QgYW55KGtleS5sb3dlcigpID09ICJjb250ZW50
LXR5cGUiIGZvciAoa2V5LCBfKSBpbiBydik6Ci0gICAgICAgICAgICBydi5pbnNlcnQoMCwgKCJD
b250ZW50LVR5cGUiLCBndWVzc19jb250ZW50X3R5cGUocGF0aCkpKQorICAgICAgICBpZiBub3Qg
YW55KGtleS5sb3dlcigpID09IGIiY29udGVudC10eXBlIiBmb3IgKGtleSwgXykgaW4gcnYpOgor
ICAgICAgICAgICAgcnYuaW5zZXJ0KDAsIChiIkNvbnRlbnQtVHlwZSIsIGd1ZXNzX2NvbnRlbnRf
dHlwZShwYXRoKS5lbmNvZGUoImFzY2lpIikpKQogCiAgICAgICAgIHJldHVybiBydgogCkBAIC0x
NzUsMTQgKzE3NywxNCBAQCBjbGFzcyBGaWxlSGFuZGxlcihvYmplY3QpOgogICAgICAgICAgICAg
dXNlX3N1YiA9IEZhbHNlCiAKICAgICAgICAgdHJ5OgotICAgICAgICAgICAgd2l0aCBvcGVuKGhl
YWRlcnNfcGF0aCkgYXMgaGVhZGVyc19maWxlOgorICAgICAgICAgICAgd2l0aCBvcGVuKGhlYWRl
cnNfcGF0aCwgInJiIikgYXMgaGVhZGVyc19maWxlOgogICAgICAgICAgICAgICAgIGRhdGEgPSBo
ZWFkZXJzX2ZpbGUucmVhZCgpCiAgICAgICAgIGV4Y2VwdCBJT0Vycm9yOgogICAgICAgICAgICAg
cmV0dXJuIFtdCiAgICAgICAgIGVsc2U6CiAgICAgICAgICAgICBpZiB1c2Vfc3ViOgogICAgICAg
ICAgICAgICAgIGRhdGEgPSB0ZW1wbGF0ZShyZXF1ZXN0LCBkYXRhLCBlc2NhcGVfdHlwZT0ibm9u
ZSIpCi0gICAgICAgICAgICByZXR1cm4gW3R1cGxlKGl0ZW0uc3RyaXAoKSBmb3IgaXRlbSBpbiBs
aW5lLnNwbGl0KCI6IiwgMSkpCisgICAgICAgICAgICByZXR1cm4gW3R1cGxlKGl0ZW0uc3RyaXAo
KSBmb3IgaXRlbSBpbiBsaW5lLnNwbGl0KGIiOiIsIDEpKQogICAgICAgICAgICAgICAgICAgICBm
b3IgbGluZSBpbiBkYXRhLnNwbGl0bGluZXMoKSBpZiBsaW5lXQogCiAgICAgZGVmIGdldF9kYXRh
KHNlbGYsIHJlc3BvbnNlLCBwYXRoLCBieXRlX3Jhbmdlcyk6CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHNlcnZlL3dwdHNl
cnZlL3BpcGVzLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy93cHRzZXJ2ZS93cHRzZXJ2ZS9waXBlcy5weQppbmRleCBhZDk2ZjU5MWEzYS4uY2Vi
MzRjYzNmNGYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvd3B0c2VydmUvd3B0c2VydmUvcGlwZXMucHkKKysrIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRzZXJ2ZS93cHRzZXJ2
ZS9waXBlcy5weQpAQCAtMSw1ICsxLDYgQEAKIGZyb20gY2dpIGltcG9ydCBlc2NhcGUKIGZyb20g
Y29sbGVjdGlvbnMgaW1wb3J0IGRlcXVlCitpbXBvcnQgYmFzZTY0CiBpbXBvcnQgZ3ppcCBhcyBn
emlwX21vZHVsZQogaW1wb3J0IGhhc2hsaWIKIGltcG9ydCBvcwpAQCAtMjczLDggKzI3NCw5IEBA
IGRlZiBzbGljZShyZXF1ZXN0LCByZXNwb25zZSwgc3RhcnQsIGVuZD1Ob25lKToKICAgICAgICAg
ICAgICAgICAoc3BlbGxlZCAibnVsbCIgaW4gYSBxdWVyeSBzdHJpbmcpIHRvIGluZGljYXRlIHRo
ZSBlbmQgb2YKICAgICAgICAgICAgICAgICB0aGUgZmlsZS4KICAgICAiIiIKLSAgICBjb250ZW50
ID0gcmVzb2x2ZV9jb250ZW50KHJlc3BvbnNlKQotICAgIHJlc3BvbnNlLmNvbnRlbnQgPSBjb250
ZW50W3N0YXJ0OmVuZF0KKyAgICBjb250ZW50ID0gcmVzb2x2ZV9jb250ZW50KHJlc3BvbnNlKVtz
dGFydDplbmRdCisgICAgcmVzcG9uc2UuY29udGVudCA9IGNvbnRlbnQKKyAgICByZXNwb25zZS5o
ZWFkZXJzLnNldCgiQ29udGVudC1MZW5ndGgiLCBsZW4oY29udGVudCkpCiAgICAgcmV0dXJuIHJl
c3BvbnNlCiAKIApAQCAtMzI3LDcgKzMyOSw3IEBAIGRlZiBzdWIocmVxdWVzdCwgcmVzcG9uc2Us
IGVzY2FwZV90eXBlPSJodG1sIik6CiAgICAgICAgICAgICAgICAgICAgICAgICAiaHRtbCIgYW5k
ICJub25lIiwgd2l0aCAiaHRtbCIgdGhlIGRlZmF1bHQgZm9yIGhpc3RvcmljIHJlYXNvbnMuCiAK
ICAgICBUaGUgZm9ybWF0IGlzIGEgdmVyeSBsaW1pdGVkIHRlbXBsYXRlIGxhbmd1YWdlLiBTdWJz
dGl0dXRpb25zIGFyZQotICAgIGVuY2xvc2VkIGJ5IHt7IGFuZCB9fS4gVGhlcmUgYXJlIHNldmVy
YWwgYXZhbGlhYmxlIHN1YnN0aXR1dGlvbnM6CisgICAgZW5jbG9zZWQgYnkge3sgYW5kIH19LiBU
aGVyZSBhcmUgc2V2ZXJhbCBhdmFpbGFibGUgc3Vic3RpdHV0aW9uczoKIAogICAgIGhvc3QKICAg
ICAgIEEgc2ltcGxlIHN0cmluZyB2YWx1ZSBhbmQgcmVwcmVzZW50cyB0aGUgcHJpbWFyeSBob3N0
IGZyb20gd2hpY2ggdGhlCkBAIC0zNDAsMTkgKzM0MiwyOCBAQCBkZWYgc3ViKHJlcXVlc3QsIHJl
c3BvbnNlLCBlc2NhcGVfdHlwZT0iaHRtbCIpOgogICAgICAgQSBkaWN0aW9uYXJ5IG9mIHBhcnRz
IG9mIHRoZSByZXF1ZXN0IFVSTC4gVmFsaWQga2V5cyBhcmUKICAgICAgICdzZXJ2ZXIsICdzY2hl
bWUnLCAnaG9zdCcsICdob3N0bmFtZScsICdwb3J0JywgJ3BhdGgnIGFuZCAncXVlcnknLgogICAg
ICAgJ3NlcnZlcicgaXMgc2NoZW1lOi8vaG9zdDpwb3J0LCAnaG9zdCcgaXMgaG9zdG5hbWU6cG9y
dCwgYW5kIHF1ZXJ5Ci0gICAgICAgaW5jbHVkZXMgdGhlIGxlYWRpbmcgJz8nLCBidXQgb3RoZXIg
ZGVsaW1pdGVycyBhcmUgb21pdHRlZC4KKyAgICAgIGluY2x1ZGVzIHRoZSBsZWFkaW5nICc/Jywg
YnV0IG90aGVyIGRlbGltaXRlcnMgYXJlIG9taXR0ZWQuCiAgICAgaGVhZGVycwogICAgICAgQSBk
aWN0aW9uYXJ5IG9mIEhUVFAgaGVhZGVycyBpbiB0aGUgcmVxdWVzdC4KKyAgICBoZWFkZXJfb3Jf
ZGVmYXVsdChoZWFkZXIsIGRlZmF1bHQpCisgICAgICBUaGUgdmFsdWUgb2YgYW4gSFRUUCBoZWFk
ZXIsIG9yIGEgZGVmYXVsdCB2YWx1ZSBpZiBpdCBpcyBhYnNlbnQuCisgICAgICBGb3IgZXhhbXBs
ZTo6CisKKyAgICAgICAge3toZWFkZXJfb3JfZGVmYXVsdChYLVRlc3QsIHRlc3QtaGVhZGVyLWFi
c2VudCl9fQorCiAgICAgR0VUCiAgICAgICBBIGRpY3Rpb25hcnkgb2YgcXVlcnkgcGFyYW1ldGVy
cyBzdXBwbGllZCB3aXRoIHRoZSByZXF1ZXN0LgogICAgIHV1aWQoKQogICAgICAgQSBwZXN1ZG8t
cmFuZG9tIFVVSUQgc3VpdGFibGUgZm9yIHVzYWdlIHdpdGggc3Rhc2gKICAgICBmaWxlX2hhc2go
YWxnb3JpdGhtLCBmaWxlcGF0aCkKICAgICAgIFRoZSBjcnlwdG9ncmFwaGljIGhhc2ggb2YgYSBm
aWxlLiBTdXBwb3J0ZWQgYWxnb3JpdGhtczogbWQ1LCBzaGExLAotICAgICAgc2hhMjI0LCBzaGEy
NTYsIHNoYTM4NCwgYW5kIHNoYTUxMi4gRm9yIGV4YW1wbGU6CisgICAgICBzaGEyMjQsIHNoYTI1
Niwgc2hhMzg0LCBhbmQgc2hhNTEyLiBGb3IgZXhhbXBsZTo6CiAKICAgICAgICAge3tmaWxlX2hh
c2gobWQ1LCBkb20vaW50ZXJmYWNlcy5odG1sKX19CiAKKyAgICBmc19wYXRoKGZpbGVwYXRoKQor
ICAgICAgVGhlIGFic29sdXRlIHBhdGggdG8gYSBmaWxlIGluc2lkZSB0aGUgd3B0IGRvY3VtZW50
IHJvb3QKKwogICAgIFNvIGZvciBleGFtcGxlIGluIGEgc2V0dXAgcnVubmluZyBvbiBsb2NhbGhv
c3Qgd2l0aCBhIHd3dwogICAgIHN1YmRvbWFpbiBhbmQgYSBodHRwIHNlcnZlciBvbiBwb3J0cyA4
MCBhbmQgODE6OgogCkBAIC0zNjAsMTYgKzM3MSwxNSBAQCBkZWYgc3ViKHJlcXVlc3QsIHJlc3Bv
bnNlLCBlc2NhcGVfdHlwZT0iaHRtbCIpOgogICAgICAge3tkb21haW5zW3d3d119fSA9PiB3d3cu
bG9jYWxob3N0CiAgICAgICB7e3BvcnRzW2h0dHBdWzFdfX0gPT4gODEKIAorICAgIEl0IGlzIGFs
c28gcG9zc2libGUgdG8gYXNzaWduIGEgdmFsdWUgdG8gYSB2YXJpYWJsZSBuYW1lLCB3aGljaCBt
dXN0IHN0YXJ0CisgICAgd2l0aCB0aGUgJCBjaGFyYWN0ZXIsIHVzaW5nIHRoZSAiOiIgc3ludGF4
IGUuZy46OgogCi0gICAgSXQgaXMgYWxzbyBwb3NzaWJsZSB0byBhc3NpZ24gYSB2YWx1ZSB0byBh
IHZhcmlhYmxlIG5hbWUsIHdoaWNoIG11c3Qgc3RhcnQgd2l0aAotICAgIHRoZSAkIGNoYXJhY3Rl
ciwgdXNpbmcgdGhlICI6IiBzeW50YXggZS5nLgotCi0gICAge3skaWQ6dXVpZCgpfX0KKyAgICAg
IHt7JGlkOnV1aWQoKX19CiAKICAgICBMYXRlciBzdWJzdGl0dXRpb25zIGluIHRoZSBzYW1lIGZp
bGUgbWF5IHRoZW4gcmVmZXIgdG8gdGhlIHZhcmlhYmxlCi0gICAgYnkgbmFtZSBlLmcuCisgICAg
YnkgbmFtZSBlLmcuOjoKIAotICAgIHt7JGlkfX0KKyAgICAgIHt7JGlkfX0KICAgICAiIiIKICAg
ICBjb250ZW50ID0gcmVzb2x2ZV9jb250ZW50KHJlc3BvbnNlKQogCkBAIC0zOTIsNyArNDAyLDcg
QEAgY2xhc3MgU3ViRnVuY3Rpb25zKG9iamVjdCk6CiAKICAgICBAc3RhdGljbWV0aG9kCiAgICAg
ZGVmIGZpbGVfaGFzaChyZXF1ZXN0LCBhbGdvcml0aG0sIHBhdGgpOgotICAgICAgICBhbGdvcml0
aG0gPSBhbGdvcml0aG0uZGVjb2RlKCJhc2NpaSIpCisgICAgICAgIGFzc2VydCBpc2luc3RhbmNl
KGFsZ29yaXRobSwgdGV4dF90eXBlKQogICAgICAgICBpZiBhbGdvcml0aG0gbm90IGluIFN1YkZ1
bmN0aW9ucy5zdXBwb3J0ZWRfYWxnb3JpdGhtczoKICAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJy
b3IoIlVuc3VwcG9ydGVkIGVuY3J5cHRpb24gYWxnb3JpdGhtOiAnJXMnIiAlIGFsZ29yaXRobSkK
IApAQCAtNDAwLDcgKzQxMCw3IEBAIGNsYXNzIFN1YkZ1bmN0aW9ucyhvYmplY3QpOgogICAgICAg
ICBhYnNvbHV0ZV9wYXRoID0gb3MucGF0aC5qb2luKHJlcXVlc3QuZG9jX3Jvb3QsIHBhdGgpCiAK
ICAgICAgICAgdHJ5OgotICAgICAgICAgICAgd2l0aCBvcGVuKGFic29sdXRlX3BhdGgpIGFzIGY6
CisgICAgICAgICAgICB3aXRoIG9wZW4oYWJzb2x1dGVfcGF0aCwgInJiIikgYXMgZjoKICAgICAg
ICAgICAgICAgICBoYXNoX29iai51cGRhdGUoZi5yZWFkKCkpCiAgICAgICAgIGV4Y2VwdCBJT0Vy
cm9yOgogICAgICAgICAgICAgIyBJbiB0aGlzIGNvbnRleHQsIGFuIHVuaGFuZGxlZCBJT0Vycm9y
IHdpbGwgYmUgaW50ZXJwcmV0ZWQgYnkgdGhlCkBAIC00MTAsNyArNDIwLDI2IEBAIGNsYXNzIFN1
YkZ1bmN0aW9ucyhvYmplY3QpOgogICAgICAgICAgICAgIyB0aGUgcGF0aCB0byB0aGUgZmlsZSB0
byBiZSBoYXNoZWQgaXMgaW52YWxpZC4KICAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbignQ2Fu
bm90IG9wZW4gZmlsZSBmb3IgaGFzaCBjb21wdXRhdGlvbjogIiVzIicgJSBhYnNvbHV0ZV9wYXRo
KQogCi0gICAgICAgIHJldHVybiBoYXNoX29iai5kaWdlc3QoKS5lbmNvZGUoJ2Jhc2U2NCcpLnN0
cmlwKCkKKyAgICAgICAgcmV0dXJuIGJhc2U2NC5iNjRlbmNvZGUoaGFzaF9vYmouZGlnZXN0KCkp
LnN0cmlwKCkKKworICAgIEBzdGF0aWNtZXRob2QKKyAgICBkZWYgZnNfcGF0aChyZXF1ZXN0LCBw
YXRoKToKKyAgICAgICAgaWYgbm90IHBhdGguc3RhcnRzd2l0aCgiLyIpOgorICAgICAgICAgICAg
c3ViZGlyID0gcmVxdWVzdC5yZXF1ZXN0X3BhdGhbbGVuKHJlcXVlc3QudXJsX2Jhc2UpOl0KKyAg
ICAgICAgICAgIGlmICIvIiBpbiBzdWJkaXI6CisgICAgICAgICAgICAgICAgc3ViZGlyID0gc3Vi
ZGlyLnJzcGxpdCgiLyIsIDEpWzBdCisgICAgICAgICAgICByb290X3JlbF9wYXRoID0gc3ViZGly
ICsgIi8iICsgcGF0aAorICAgICAgICBlbHNlOgorICAgICAgICAgICAgcm9vdF9yZWxfcGF0aCA9
IHBhdGhbMTpdCisgICAgICAgIHJvb3RfcmVsX3BhdGggPSByb290X3JlbF9wYXRoLnJlcGxhY2Uo
Ii8iLCBvcy5wYXRoLnNlcCkKKyAgICAgICAgYWJzb2x1dGVfcGF0aCA9IG9zLnBhdGguYWJzcGF0
aChvcy5wYXRoLmpvaW4ocmVxdWVzdC5kb2Nfcm9vdCwgcm9vdF9yZWxfcGF0aCkpCisgICAgICAg
IGlmICIuLiIgaW4gb3MucGF0aC5yZWxwYXRoKGFic29sdXRlX3BhdGgsIHJlcXVlc3QuZG9jX3Jv
b3QpOgorICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigiUGF0aCBvdXRzaWRlIHdwdCByb290
IikKKyAgICAgICAgcmV0dXJuIGFic29sdXRlX3BhdGgKKworICAgIEBzdGF0aWNtZXRob2QKKyAg
ICBkZWYgaGVhZGVyX29yX2RlZmF1bHQocmVxdWVzdCwgbmFtZSwgZGVmYXVsdCk6CisgICAgICAg
IHJldHVybiByZXF1ZXN0LmhlYWRlcnMuZ2V0KG5hbWUsIGRlZmF1bHQpCiAKIGRlZiB0ZW1wbGF0
ZShyZXF1ZXN0LCBjb250ZW50LCBlc2NhcGVfdHlwZT0iaHRtbCIpOgogICAgICNUT0RPOiBUaGVy
ZSBiYXNpY2FsbHkgaXNuJ3QgYW55IGVycm9yIGhhbmRsaW5nIGhlcmUKQEAgLTQyNSwxMSArNDU0
LDEyIEBAIGRlZiB0ZW1wbGF0ZShyZXF1ZXN0LCBjb250ZW50LCBlc2NhcGVfdHlwZT0iaHRtbCIp
OgogICAgICAgICB0b2tlbnMgPSBkZXF1ZSh0b2tlbnMpCiAKICAgICAgICAgdG9rZW5fdHlwZSwg
ZmllbGQgPSB0b2tlbnMucG9wbGVmdCgpCi0gICAgICAgIGZpZWxkID0gZmllbGQuZGVjb2RlKCJh
c2NpaSIpCisgICAgICAgIGFzc2VydCBpc2luc3RhbmNlKGZpZWxkLCB0ZXh0X3R5cGUpCiAKICAg
ICAgICAgaWYgdG9rZW5fdHlwZSA9PSAidmFyIjoKICAgICAgICAgICAgIHZhcmlhYmxlID0gZmll
bGQKICAgICAgICAgICAgIHRva2VuX3R5cGUsIGZpZWxkID0gdG9rZW5zLnBvcGxlZnQoKQorICAg
ICAgICAgICAgYXNzZXJ0IGlzaW5zdGFuY2UoZmllbGQsIHRleHRfdHlwZSkKICAgICAgICAgZWxz
ZToKICAgICAgICAgICAgIHZhcmlhYmxlID0gTm9uZQogCkBAIC00ODgsOSArNTE4LDE0IEBAIGRl
ZiB0ZW1wbGF0ZShyZXF1ZXN0LCBjb250ZW50LCBlc2NhcGVfdHlwZT0iaHRtbCIpOgogICAgICAg
ICBlc2NhcGVfZnVuYyA9IHsiaHRtbCI6IGxhbWJkYSB4OmVzY2FwZSh4LCBxdW90ZT1UcnVlKSwK
ICAgICAgICAgICAgICAgICAgICAgICAgIm5vbmUiOiBsYW1iZGEgeDp4fVtlc2NhcGVfdHlwZV0K
IAotICAgICAgICAjU2hvdWxkIHBvc3NpYmx5IHN1cHBvcnQgZXNjYXBpbmcgZm9yIG90aGVyIGNv
bnRleHRzIGUuZy4gc2NyaXB0Ci0gICAgICAgICNUT0RPOiByZWFkIHRoZSBlbmNvZGluZyBvZiB0
aGUgcmVzcG9uc2UKLSAgICAgICAgcmV0dXJuIGVzY2FwZV9mdW5jKHRleHRfdHlwZSh2YWx1ZSkp
LmVuY29kZSgidXRmLTgiKQorICAgICAgICAjIFNob3VsZCBwb3NzaWJseSBzdXBwb3J0IGVzY2Fw
aW5nIGZvciBvdGhlciBjb250ZXh0cyBlLmcuIHNjcmlwdAorICAgICAgICAjIFRPRE86IHJlYWQg
dGhlIGVuY29kaW5nIG9mIHRoZSByZXNwb25zZQorICAgICAgICAjIGNnaS5lc2NhcGUoKSBvbmx5
IHRha2VzIHRleHQgc3RyaW5ncyBpbiBQeXRob24gMy4KKyAgICAgICAgaWYgaXNpbnN0YW5jZSh2
YWx1ZSwgYmluYXJ5X3R5cGUpOgorICAgICAgICAgICAgdmFsdWUgPSB2YWx1ZS5kZWNvZGUoInV0
Zi04IikKKyAgICAgICAgZWxpZiBpc2luc3RhbmNlKHZhbHVlLCBpbnQpOgorICAgICAgICAgICAg
dmFsdWUgPSB0ZXh0X3R5cGUodmFsdWUpCisgICAgICAgIHJldHVybiBlc2NhcGVfZnVuYyh2YWx1
ZSkuZW5jb2RlKCJ1dGYtOCIpCiAKICAgICB0ZW1wbGF0ZV9yZWdleHAgPSByZS5jb21waWxlKGJy
Int7KFtefV0qKX19IikKICAgICBuZXdfY29udGVudCA9IHRlbXBsYXRlX3JlZ2V4cC5zdWIoY29u
ZmlnX3JlcGxhY2VtZW50LCBjb250ZW50KQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRzZXJ2ZS93cHRzZXJ2ZS9yYW5nZXMu
cHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dw
dHNlcnZlL3dwdHNlcnZlL3Jhbmdlcy5weQppbmRleCA5NzZjYjE3ODFhMC4uMTA0ZGNhMmVmNmYg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvd3B0c2VydmUvd3B0c2VydmUvcmFuZ2VzLnB5CisrKyBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0c2VydmUvd3B0c2VydmUvcmFuZ2Vz
LnB5CkBAIC0zLDYgKzMsMTAgQEAgZnJvbSAudXRpbHMgaW1wb3J0IEhUVFBFeGNlcHRpb24KIAog
Y2xhc3MgUmFuZ2VQYXJzZXIob2JqZWN0KToKICAgICBkZWYgX19jYWxsX18oc2VsZiwgaGVhZGVy
LCBmaWxlX3NpemUpOgorICAgICAgICB0cnk6CisgICAgICAgICAgICBoZWFkZXIgPSBoZWFkZXIu
ZGVjb2RlKCJhc2NpaSIpCisgICAgICAgIGV4Y2VwdCBVbmljb2RlRGVjb2RlRXJyb3I6CisgICAg
ICAgICAgICByYWlzZSBIVFRQRXhjZXB0aW9uKDQwMCwgIk5vbi1BU0NJSSByYW5nZSBoZWFkZXIg
dmFsdWUiKQogICAgICAgICBwcmVmaXggPSAiYnl0ZXM9IgogICAgICAgICBpZiBub3QgaGVhZGVy
LnN0YXJ0c3dpdGgocHJlZml4KToKICAgICAgICAgICAgIHJhaXNlIEhUVFBFeGNlcHRpb24oNDE2
LCBtZXNzYWdlPSJVbnJlY29nbmlzZWQgcmFuZ2UgdHlwZSAlcyIgJSAoaGVhZGVyLCkpCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3dwdHNlcnZlL3dwdHNlcnZlL3JlcXVlc3QucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHNlcnZlL3dwdHNlcnZlL3JlcXVlc3QucHkKaW5k
ZXggY2I1NzVjY2RiYTQuLmE4MGJjMGM4MzAwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHNlcnZlL3dwdHNlcnZlL3JlcXVl
c3QucHkKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy93cHRzZXJ2ZS93cHRzZXJ2ZS9yZXF1ZXN0LnB5CkBAIC0xLDcgKzEsNyBAQAogaW1wb3J0
IGJhc2U2NAogaW1wb3J0IGNnaQogZnJvbSBzaXgubW92ZXMuaHR0cF9jb29raWVzIGltcG9ydCBC
YXNlQ29va2llCi1mcm9tIHNpeCBpbXBvcnQgQnl0ZXNJTworZnJvbSBzaXggaW1wb3J0IEJ5dGVz
SU8sIGJpbmFyeV90eXBlLCB0ZXh0X3R5cGUsIGl0ZXJpdGVtcywgUFkzCiBpbXBvcnQgdGVtcGZp
bGUKIAogZnJvbSBzaXgubW92ZXMudXJsbGliLnBhcnNlIGltcG9ydCBwYXJzZV9xc2wsIHVybHNw
bGl0CkBAIC0zMDgsNyArMzA4LDcgQEAgY2xhc3MgUmVxdWVzdChvYmplY3QpOgogICAgICAgICAg
ICAgc2VsZi5yYXdfaW5wdXQuc2VlaygwKQogICAgICAgICAgICAgZnMgPSBjZ2kuRmllbGRTdG9y
YWdlKGZwPXNlbGYucmF3X2lucHV0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGVudmlyb249eyJSRVFVRVNUX01FVEhPRCI6IHNlbGYubWV0aG9kfSwKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBoZWFkZXJzPXNlbGYuaGVhZGVycywKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBoZWFkZXJzPXNlbGYucmF3X2hlYWRlcnMsCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAga2VlcF9ibGFua192YWx1ZXM9VHJ1ZSkKICAgICAgICAg
ICAgIHNlbGYuX1BPU1QgPSBNdWx0aURpY3QuZnJvbV9maWVsZF9zdG9yYWdlKGZzKQogICAgICAg
ICAgICAgc2VsZi5yYXdfaW5wdXQuc2Vlayhwb3MpCkBAIC0zMTgsMTAgKzMxOCwxMiBAQCBjbGFz
cyBSZXF1ZXN0KG9iamVjdCk6CiAgICAgZGVmIGNvb2tpZXMoc2VsZik6CiAgICAgICAgIGlmIHNl
bGYuX2Nvb2tpZXMgaXMgTm9uZToKICAgICAgICAgICAgIHBhcnNlciA9IEJhc2VDb29raWUoKQot
ICAgICAgICAgICAgY29va2llX2hlYWRlcnMgPSBzZWxmLmhlYWRlcnMuZ2V0KCJjb29raWUiLCAi
IikKKyAgICAgICAgICAgIGNvb2tpZV9oZWFkZXJzID0gc2VsZi5oZWFkZXJzLmdldCgiY29va2ll
IiwgYiIiKQorICAgICAgICAgICAgaWYgUFkzOgorICAgICAgICAgICAgICAgIGNvb2tpZV9oZWFk
ZXJzID0gY29va2llX2hlYWRlcnMuZGVjb2RlKCJpc28tODg1OS0xIikKICAgICAgICAgICAgIHBh
cnNlci5sb2FkKGNvb2tpZV9oZWFkZXJzKQogICAgICAgICAgICAgY29va2llcyA9IENvb2tpZXMo
KQotICAgICAgICAgICAgZm9yIGtleSwgdmFsdWUgaW4gcGFyc2VyLml0ZXJpdGVtcygpOgorICAg
ICAgICAgICAgZm9yIGtleSwgdmFsdWUgaW4gaXRlcml0ZW1zKHBhcnNlcik6CiAgICAgICAgICAg
ICAgICAgY29va2llc1trZXldID0gQ29va2llVmFsdWUodmFsdWUpCiAgICAgICAgICAgICBzZWxm
Ll9jb29raWVzID0gY29va2llcwogICAgICAgICByZXR1cm4gc2VsZi5fY29va2llcwpAQCAtMzU1
LDExICszNTcsMzQgQEAgY2xhc3MgSDJSZXF1ZXN0KFJlcXVlc3QpOgogICAgICAgICBzdXBlcihI
MlJlcXVlc3QsIHNlbGYpLl9faW5pdF9fKHJlcXVlc3RfaGFuZGxlcikKIAogCitkZWYgX21heWJl
X2VuY29kZShzKToKKyAgICAiIiJFbmNvZGVzIGEgdGV4dC10eXBlIHN0cmluZyBpbnRvIGJpbmFy
eSBkYXRhIHVzaW5nIGlzby04ODU5LTEuCisKKyAgICBSZXR1cm5zIGBzdHJgIGluIFB5dGhvbiAy
IGFuZCBgYnl0ZXNgIGluIFB5dGhvbiAzLiBUaGUgZnVuY3Rpb24gaXMgYSBuby1vcAorICAgIGlm
IHRoZSBhcmd1bWVudCBhbHJlYWR5IGhhcyBhIGJpbmFyeSB0eXBlLgorICAgICIiIgorICAgIGlm
IGlzaW5zdGFuY2UocywgYmluYXJ5X3R5cGUpOgorICAgICAgICByZXR1cm4gcworCisgICAgIyBQ
eXRob24gMyBhc3N1bWVzIGlzby04ODU5LTEgd2hlbiBwYXJzaW5nIGhlYWRlcnMsIHdoaWNoIHdp
bGwgZ2FyYmxlIHRleHQKKyAgICAjIHdpdGggbm9uIEFTQ0lJIGNoYXJhY3RlcnMuIFdlIHRyeSB0
byBlbmNvZGUgdGhlIHRleHQgYmFjayB0byBiaW5hcnkuCisgICAgIyBodHRwczovL2dpdGh1Yi5j
b20vcHl0aG9uL2NweXRob24vYmxvYi8yNzNmYzIyMGIyNTkzM2U0NDNjODJhZjY4ODhlYjE4NzFk
MDMyZmI4L0xpYi9odHRwL2NsaWVudC5weSNMMjEzCisgICAgaWYgaXNpbnN0YW5jZShzLCB0ZXh0
X3R5cGUpOgorICAgICAgICByZXR1cm4gcy5lbmNvZGUoImlzby04ODU5LTEiKQorCisgICAgcmFp
c2UgVHlwZUVycm9yKCJVbmV4cGVjdGVkIHZhbHVlIGluIFJlcXVlc3RIZWFkZXJzOiAlciIgJSBz
KQorCisKIGNsYXNzIFJlcXVlc3RIZWFkZXJzKGRpY3QpOgotICAgICIiIkRpY3Rpb25hcnktbGlr
ZSBBUEkgZm9yIGFjY2Vzc2luZyByZXF1ZXN0IGhlYWRlcnMuIiIiCisgICAgIiIiUmVhZC1vbmx5
IGRpY3Rpb25hcnktbGlrZSBBUEkgZm9yIGFjY2Vzc2luZyByZXF1ZXN0IGhlYWRlcnMuCisKKyAg
ICBVbmxpa2UgQmFzZUhUVFBSZXF1ZXN0SGFuZGxlci5oZWFkZXJzLCB0aGlzIGNsYXNzIGFsd2F5
cyByZXR1cm5zIGFsbAorICAgIGhlYWRlcnMgd2l0aCB0aGUgc2FtZSBuYW1lIChzZXBhcmF0ZWQg
YnkgY29tbWFzKS4gQW5kIGl0IGVuc3VyZXMgYWxsIGtleXMKKyAgICAoaS5lLiBuYW1lcyBvZiBo
ZWFkZXJzKSBhbmQgdmFsdWVzIGhhdmUgYmluYXJ5IHR5cGUuCisgICAgIiIiCiAgICAgZGVmIF9f
aW5pdF9fKHNlbGYsIGl0ZW1zKToKICAgICAgICAgZm9yIGhlYWRlciBpbiBpdGVtcy5rZXlzKCk6
Ci0gICAgICAgICAgICBrZXkgPSBoZWFkZXIubG93ZXIoKQorICAgICAgICAgICAga2V5ID0gX21h
eWJlX2VuY29kZShoZWFkZXIpLmxvd2VyKCkKICAgICAgICAgICAgICMgZ2V0IGFsbCBoZWFkZXJz
IHdpdGggdGhlIHNhbWUgbmFtZQogICAgICAgICAgICAgdmFsdWVzID0gaXRlbXMuZ2V0YWxsbWF0
Y2hpbmdoZWFkZXJzKGhlYWRlcikKICAgICAgICAgICAgIGlmIGxlbih2YWx1ZXMpID4gMToKQEAg
LTM2OSwxNSArMzk0LDE3IEBAIGNsYXNzIFJlcXVlc3RIZWFkZXJzKGRpY3QpOgogICAgICAgICAg
ICAgICAgIGZvciB2YWx1ZSBpbiB2YWx1ZXM6CiAgICAgICAgICAgICAgICAgICAgICMgZ2V0YWxs
bWF0Y2hpbmdoZWFkZXJzIHJldHVybnMgcmF3IGhlYWRlciBsaW5lcywgc28KICAgICAgICAgICAg
ICAgICAgICAgIyBzcGxpdCB0byBnZXQgbmFtZSwgdmFsdWUKLSAgICAgICAgICAgICAgICAgICAg
bXVsdGlwbGVzLmFwcGVuZCh2YWx1ZS5zcGxpdCgnOicsIDEpWzFdLnN0cmlwKCkpCi0gICAgICAg
ICAgICAgICAgZGljdC5fX3NldGl0ZW1fXyhzZWxmLCBrZXksIG11bHRpcGxlcykKKyAgICAgICAg
ICAgICAgICAgICAgbXVsdGlwbGVzLmFwcGVuZChfbWF5YmVfZW5jb2RlKHZhbHVlKS5zcGxpdChi
JzonLCAxKVsxXS5zdHJpcCgpKQorICAgICAgICAgICAgICAgIGhlYWRlcnMgPSBtdWx0aXBsZXMK
ICAgICAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAgICAgZGljdC5fX3NldGl0ZW1fXyhzZWxm
LCBrZXksIFtpdGVtc1toZWFkZXJdXSkKKyAgICAgICAgICAgICAgICBoZWFkZXJzID0gW19tYXli
ZV9lbmNvZGUoaXRlbXNbaGVhZGVyXSldCisgICAgICAgICAgICBkaWN0Ll9fc2V0aXRlbV9fKHNl
bGYsIGtleSwgaGVhZGVycykKIAogCiAgICAgZGVmIF9fZ2V0aXRlbV9fKHNlbGYsIGtleSk6CiAg
ICAgICAgICIiIkdldCBhbGwgaGVhZGVycyBvZiBhIGNlcnRhaW4gKGNhc2UtaW5zZW5zaXRpdmUp
IG5hbWUuIElmIHRoZXJlIGlzCiAgICAgICAgIG1vcmUgdGhhbiBvbmUsIHRoZSB2YWx1ZXMgYXJl
IHJldHVybmVkIGNvbW1hIHNlcGFyYXRlZCIiIgorICAgICAgICBrZXkgPSBfbWF5YmVfZW5jb2Rl
KGtleSkKICAgICAgICAgdmFsdWVzID0gZGljdC5fX2dldGl0ZW1fXyhzZWxmLCBrZXkubG93ZXIo
KSkKICAgICAgICAgaWYgbGVuKHZhbHVlcykgPT0gMToKICAgICAgICAgICAgIHJldHVybiB2YWx1
ZXNbMF0KQEAgLTQwMyw2ICs0MzAsNyBAQCBjbGFzcyBSZXF1ZXN0SGVhZGVycyhkaWN0KToKICAg
ICBkZWYgZ2V0X2xpc3Qoc2VsZiwga2V5LCBkZWZhdWx0PW1pc3NpbmcpOgogICAgICAgICAiIiJH
ZXQgYWxsIHRoZSBoZWFkZXIgdmFsdWVzIGZvciBhIHBhcnRpY3VsYXIgZmllbGQgbmFtZSBhcwog
ICAgICAgICBhIGxpc3QiIiIKKyAgICAgICAga2V5ID0gX21heWJlX2VuY29kZShrZXkpCiAgICAg
ICAgIHRyeToKICAgICAgICAgICAgIHJldHVybiBkaWN0Ll9fZ2V0aXRlbV9fKHNlbGYsIGtleS5s
b3dlcigpKQogICAgICAgICBleGNlcHQgS2V5RXJyb3I6CkBAIC00MTIsNiArNDQwLDcgQEAgY2xh
c3MgUmVxdWVzdEhlYWRlcnMoZGljdCk6CiAgICAgICAgICAgICAgICAgcmFpc2UKIAogICAgIGRl
ZiBfX2NvbnRhaW5zX18oc2VsZiwga2V5KToKKyAgICAgICAga2V5ID0gX21heWJlX2VuY29kZShr
ZXkpCiAgICAgICAgIHJldHVybiBkaWN0Ll9fY29udGFpbnNfXyhzZWxmLCBrZXkubG93ZXIoKSkK
IAogICAgIGRlZiBpdGVyaXRlbXMoc2VsZik6CkBAIC01MjcsNyArNTU2LDcgQEAgY2xhc3MgTXVs
dGlEaWN0KGRpY3QpOgogICAgICAgICAgICAgcmV0dXJuIGRpY3QuX19nZXRpdGVtX18oc2VsZiwg
a2V5KVswXQogICAgICAgICBlbGlmIGRlZmF1bHQgaXMgbm90IG1pc3Npbmc6CiAgICAgICAgICAg
ICByZXR1cm4gZGVmYXVsdAotICAgICAgICByYWlzZSBLZXlFcnJvcgorICAgICAgICByYWlzZSBL
ZXlFcnJvcihrZXkpCiAKICAgICBkZWYgbGFzdChzZWxmLCBrZXksIGRlZmF1bHQ9bWlzc2luZyk6
CiAgICAgICAgICIiIkdldCB0aGUgbGFzdCB2YWx1ZSB3aXRoIGEgZ2l2ZW4ga2V5CkBAIC01NDEs
MTQgKzU3MCwxNyBAQCBjbGFzcyBNdWx0aURpY3QoZGljdCk6CiAgICAgICAgICAgICByZXR1cm4g
ZGljdC5fX2dldGl0ZW1fXyhzZWxmLCBrZXkpWy0xXQogICAgICAgICBlbGlmIGRlZmF1bHQgaXMg
bm90IG1pc3Npbmc6CiAgICAgICAgICAgICByZXR1cm4gZGVmYXVsdAotICAgICAgICByYWlzZSBL
ZXlFcnJvcgorICAgICAgICByYWlzZSBLZXlFcnJvcihrZXkpCiAKICAgICBkZWYgZ2V0X2xpc3Qo
c2VsZiwga2V5KToKICAgICAgICAgIiIiR2V0IGFsbCB2YWx1ZXMgd2l0aCBhIGdpdmVuIGtleSBh
cyBhIGxpc3QKIAogICAgICAgICA6cGFyYW0ga2V5OiBUaGUga2V5IHRvIGxvb2t1cAogICAgICAg
ICAiIiIKLSAgICAgICAgcmV0dXJuIGRpY3QuX19nZXRpdGVtX18oc2VsZiwga2V5KQorICAgICAg
ICBpZiBrZXkgaW4gc2VsZjoKKyAgICAgICAgICAgIHJldHVybiBkaWN0Ll9fZ2V0aXRlbV9fKHNl
bGYsIGtleSkKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHJldHVybiBbXQogCiAgICAgQGNs
YXNzbWV0aG9kCiAgICAgZGVmIGZyb21fZmllbGRfc3RvcmFnZShjbHMsIGZzKToKQEAgLTU2MSw5
ICs1OTMsNyBAQCBjbGFzcyBNdWx0aURpY3QoZGljdCk6CiAgICAgICAgICAgICAgICAgdmFsdWVz
ID0gW3ZhbHVlc10KIAogICAgICAgICAgICAgZm9yIHZhbHVlIGluIHZhbHVlczoKLSAgICAgICAg
ICAgICAgICBpZiB2YWx1ZS5maWxlbmFtZToKLSAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSB2
YWx1ZQotICAgICAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgaWYgbm90IHZhbHVl
LmZpbGVuYW1lOgogICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IHZhbHVlLnZhbHVlCiAgICAg
ICAgICAgICAgICAgc2VsZi5hZGQoa2V5LCB2YWx1ZSkKICAgICAgICAgcmV0dXJuIHNlbGYKQEAg
LTU5MCwyMSArNjIwLDI4IEBAIGNsYXNzIEF1dGhlbnRpY2F0aW9uKG9iamVjdCk6CiAKICAgICBU
aGUgcGFzc3dvcmQgc3VwcGxpZWQgaW4gdGhlIEhUVFAgQXV0aG9yaXphdGlvbgogICAgIGhlYWRl
ciwgb3IgTm9uZQorCisgICAgQm90aCBhdHRyaWJ1dGVzIGFyZSBiaW5hcnkgc3RyaW5ncyAoYHN0
cmAgaW4gUHkyLCBgYnl0ZXNgIGluIFB5MyksIHNpbmNlCisgICAgUkZDNzYxNyBTZWN0aW9uIDIu
MSBkb2VzIG5vdCBzcGVjaWZ5IHRoZSBlbmNvZGluZyBmb3IgdXNlcm5hbWUgJiBwYXNzd29yZAor
ICAgIChhcyBsb25nIGl0J3MgY29tcGF0aWJsZSB3aXRoIEFTQ0lJKS4gVVRGLTggc2hvdWxkIGJl
IGEgcmVsYXRpdmVseSBzYWZlCisgICAgY2hvaWNlIGlmIGNhbGxlcnMgbmVlZCB0byBkZWNvZGUg
dGhlbSBhcyBtb3N0IGJyb3dzZXJzIHVzZSBpdC4KICAgICAiIiIKICAgICBkZWYgX19pbml0X18o
c2VsZiwgaGVhZGVycyk6CiAgICAgICAgIHNlbGYudXNlcm5hbWUgPSBOb25lCiAgICAgICAgIHNl
bGYucGFzc3dvcmQgPSBOb25lCiAKLSAgICAgICAgYXV0aF9zY2hlbWVzID0geyJCYXNpYyI6IHNl
bGYuZGVjb2RlX2Jhc2ljfQorICAgICAgICBhdXRoX3NjaGVtZXMgPSB7YiJCYXNpYyI6IHNlbGYu
ZGVjb2RlX2Jhc2ljfQogCiAgICAgICAgIGlmICJhdXRob3JpemF0aW9uIiBpbiBoZWFkZXJzOgog
ICAgICAgICAgICAgaGVhZGVyID0gaGVhZGVycy5nZXQoImF1dGhvcml6YXRpb24iKQotICAgICAg
ICAgICAgYXV0aF90eXBlLCBkYXRhID0gaGVhZGVyLnNwbGl0KCIgIiwgMSkKKyAgICAgICAgICAg
IGFzc2VydCBpc2luc3RhbmNlKGhlYWRlciwgYmluYXJ5X3R5cGUpCisgICAgICAgICAgICBhdXRo
X3R5cGUsIGRhdGEgPSBoZWFkZXIuc3BsaXQoYiIgIiwgMSkKICAgICAgICAgICAgIGlmIGF1dGhf
dHlwZSBpbiBhdXRoX3NjaGVtZXM6CiAgICAgICAgICAgICAgICAgc2VsZi51c2VybmFtZSwgc2Vs
Zi5wYXNzd29yZCA9IGF1dGhfc2NoZW1lc1thdXRoX3R5cGVdKGRhdGEpCiAgICAgICAgICAgICBl
bHNlOgogICAgICAgICAgICAgICAgIHJhaXNlIEhUVFBFeGNlcHRpb24oNDAwLCAiVW5zdXBwb3J0
ZWQgYXV0aGVudGljYXRpb24gc2NoZW1lICVzIiAlIGF1dGhfdHlwZSkKIAogICAgIGRlZiBkZWNv
ZGVfYmFzaWMoc2VsZiwgZGF0YSk6Ci0gICAgICAgIGRlY29kZWRfZGF0YSA9IGJhc2U2NC5kZWNv
ZGVzdHJpbmcoZGF0YSkKLSAgICAgICAgcmV0dXJuIGRlY29kZWRfZGF0YS5zcGxpdCgiOiIsIDEp
CisgICAgICAgIGFzc2VydCBpc2luc3RhbmNlKGRhdGEsIGJpbmFyeV90eXBlKQorICAgICAgICBk
ZWNvZGVkX2RhdGEgPSBiYXNlNjQuYjY0ZGVjb2RlKGRhdGEpCisgICAgICAgIHJldHVybiBkZWNv
ZGVkX2RhdGEuc3BsaXQoYiI6IiwgMSkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0c2VydmUvd3B0c2VydmUvcmVzcG9uc2Uu
cHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dw
dHNlcnZlL3dwdHNlcnZlL3Jlc3BvbnNlLnB5CmluZGV4IGJjMjE0NTJlZWZmLi4zYTYwYzJiYWJi
MyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy93cHRzZXJ2ZS93cHRzZXJ2ZS9yZXNwb25zZS5weQorKysgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHNlcnZlL3dwdHNlcnZlL3Jl
c3BvbnNlLnB5CkBAIC04LDcgKzgsNyBAQCBmcm9tIC5jb25zdGFudHMgaW1wb3J0IHJlc3BvbnNl
X2NvZGVzLCBoMl9oZWFkZXJzCiBmcm9tIC5sb2dnZXIgaW1wb3J0IGdldF9sb2dnZXIKIGZyb20g
aW8gaW1wb3J0IEJ5dGVzSU8KIAotZnJvbSBzaXggaW1wb3J0IGJpbmFyeV90eXBlLCB0ZXh0X3R5
cGUsIGl0ZXJ2YWx1ZXMKK2Zyb20gc2l4IGltcG9ydCBiaW5hcnlfdHlwZSwgdGV4dF90eXBlLCBp
bnRlZ2VyX3R5cGVzLCBpdGVydmFsdWVzLCBQWTMKIGZyb20gaHlwZXJmcmFtZS5mcmFtZSBpbXBv
cnQgSGVhZGVyc0ZyYW1lLCBEYXRhRnJhbWUsIENvbnRpbnVhdGlvbkZyYW1lCiBmcm9tIGhwYWNr
LnN0cnVjdCBpbXBvcnQgSGVhZGVyVHVwbGUKIApAQCAtMTEzLDEwICsxMTMsMTAgQEAgY2xhc3Mg
UmVzcG9uc2Uob2JqZWN0KToKICAgICAgICAgICAgICAgICAgICAgICAgIHRpbWUgb3IgaW50ZXJ2
YWwgZnJvbSBub3cgd2hlbiB0aGUgY29va2llIGV4cGlyZXMKIAogICAgICAgICAiIiIKLSAgICAg
ICAgZGF5cyA9IGRpY3QoKGkrMSwgbmFtZSkgZm9yIGksIG5hbWUgaW4gZW51bWVyYXRlKFsiamFu
IiwgImZlYiIsICJtYXIiLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICJhcHIiLCAibWF5IiwgImp1biIsCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImp1bCIsICJhdWciLCAi
c2VwIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAib2N0IiwgIm5vdiIsICJkZWMiXSkpCisgICAgICAgIGRheXMgPSB7aSsxOiBuYW1l
IGZvciBpLCBuYW1lIGluIGVudW1lcmF0ZShbImphbiIsICJmZWIiLCAibWFyIiwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiYXByIiwgIm1heSIs
ICJqdW4iLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICJqdWwiLCAiYXVnIiwgInNlcCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIm9jdCIsICJub3YiLCAiZGVjIl0pfQogICAgICAgICBpZiB2
YWx1ZSBpcyBOb25lOgogICAgICAgICAgICAgdmFsdWUgPSAnJwogICAgICAgICAgICAgbWF4X2Fn
ZSA9IDAKQEAgLTE1Nyw2ICsxNTcsOCBAQCBjbGFzcyBSZXNwb25zZShvYmplY3QpOgogICAgICAg
ICBjb29raWVzID0gc2VsZi5oZWFkZXJzLmdldCgiU2V0LUNvb2tpZSIpCiAgICAgICAgIHBhcnNl
ciA9IEJhc2VDb29raWUoKQogICAgICAgICBmb3IgY29va2llIGluIGNvb2tpZXM6CisgICAgICAg
ICAgICBpZiBQWTM6CisgICAgICAgICAgICAgICAgY29va2llID0gY29va2llLmRlY29kZSgiaXNv
LTg4NTktMSIpCiAgICAgICAgICAgICBwYXJzZXIubG9hZChjb29raWUpCiAKICAgICAgICAgaWYg
bmFtZSBpbiBwYXJzZXIua2V5cygpOgpAQCAtMTc3LDE0ICsxNzksMTggQEAgY2xhc3MgUmVzcG9u
c2Uob2JqZWN0KToKICAgICAgICAgSWYgYW55IHBhcnQgb2YgdGhlIGNvbnRlbnQgaXMgYSBmdW5j
dGlvbiwgdGhpcyB3aWxsIGJlIGNhbGxlZAogICAgICAgICBhbmQgdGhlIHJlc3VsdGluZyB2YWx1
ZSAoaWYgYW55KSByZXR1cm5lZC4KIAotICAgICAgICA6cGFyYW0gcmVhZF9maWxlOiAtIGJvb2xl
YW4gY29udHJvbGxpbmcgdGhlIGJlaGF2aW91ciB3aGVuIGNvbnRlbnQKLSAgICAgICAgaXMgYSBm
aWxlIGhhbmRsZS4gV2hlbiBzZXQgdG8gRmFsc2UgdGhlIGhhbmRsZSB3aWxsIGJlIHJldHVybmVk
IGRpcmVjdGx5Ci0gICAgICAgIGFsbG93aW5nIHRoZSBmaWxlIHRvIGJlIHBhc3NlZCB0byB0aGUg
b3V0cHV0IGluIHNtYWxsIGNodW5rcy4gV2hlbiBzZXQgdG8KLSAgICAgICAgVHJ1ZSwgdGhlIGVu
dGlyZSBjb250ZW50IG9mIHRoZSBmaWxlIHdpbGwgYmUgcmV0dXJuZWQgYXMgYSBzdHJpbmcgZmFj
aWxpdGF0aW5nCi0gICAgICAgIG5vbi1zdHJlYW1pbmcgb3BlcmF0aW9ucyBsaWtlIHRlbXBsYXRl
IHN1YnN0aXR1dGlvbi4KKyAgICAgICAgOnBhcmFtIHJlYWRfZmlsZTogYm9vbGVhbiBjb250cm9s
bGluZyB0aGUgYmVoYXZpb3VyIHdoZW4gY29udGVudCBpcyBhCisgICAgICAgICAgICAgICAgICAg
ICAgICAgIGZpbGUgaGFuZGxlLiBXaGVuIHNldCB0byBGYWxzZSB0aGUgaGFuZGxlIHdpbGwgYmUK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuZWQgZGlyZWN0bHkgYWxsb3dpbmcgdGhl
IGZpbGUgdG8gYmUgcGFzc2VkIHRvCisgICAgICAgICAgICAgICAgICAgICAgICAgIHRoZSBvdXRw
dXQgaW4gc21hbGwgY2h1bmtzLiBXaGVuIHNldCB0byBUcnVlLCB0aGUKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgZW50aXJlIGNvbnRlbnQgb2YgdGhlIGZpbGUgd2lsbCBiZSByZXR1cm5lZCBh
cyBhCisgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cmluZyBmYWNpbGl0YXRpbmcgbm9uLXN0
cmVhbWluZyBvcGVyYXRpb25zIGxpa2UKKyAgICAgICAgICAgICAgICAgICAgICAgICAgdGVtcGxh
dGUgc3Vic3RpdHV0aW9uLgogICAgICAgICAiIiIKLSAgICAgICAgaWYgaXNpbnN0YW5jZShzZWxm
LmNvbnRlbnQsIChiaW5hcnlfdHlwZSwgdGV4dF90eXBlKSk6CisgICAgICAgIGlmIGlzaW5zdGFu
Y2Uoc2VsZi5jb250ZW50LCBiaW5hcnlfdHlwZSk6CiAgICAgICAgICAgICB5aWVsZCBzZWxmLmNv
bnRlbnQKKyAgICAgICAgZWxpZiBpc2luc3RhbmNlKHNlbGYuY29udGVudCwgdGV4dF90eXBlKToK
KyAgICAgICAgICAgIHlpZWxkIHNlbGYuY29udGVudC5lbmNvZGUoc2VsZi5lbmNvZGluZykKICAg
ICAgICAgZWxpZiBoYXNhdHRyKHNlbGYuY29udGVudCwgInJlYWQiKToKICAgICAgICAgICAgIGlm
IHJlYWRfZmlsZToKICAgICAgICAgICAgICAgICB5aWVsZCBzZWxmLmNvbnRlbnQucmVhZCgpCkBA
IC0yMzUsMTggKzI0MSwxOCBAQCBjbGFzcyBNdWx0aXBhcnRDb250ZW50KG9iamVjdCk6CiAgICAg
ZGVmIF9faW5pdF9fKHNlbGYsIGJvdW5kYXJ5PU5vbmUsIGRlZmF1bHRfY29udGVudF90eXBlPU5v
bmUpOgogICAgICAgICBzZWxmLml0ZW1zID0gW10KICAgICAgICAgaWYgYm91bmRhcnkgaXMgTm9u
ZToKLSAgICAgICAgICAgIGJvdW5kYXJ5ID0gc3RyKHV1aWQudXVpZDQoKSkKKyAgICAgICAgICAg
IGJvdW5kYXJ5ID0gdGV4dF90eXBlKHV1aWQudXVpZDQoKSkKICAgICAgICAgc2VsZi5ib3VuZGFy
eSA9IGJvdW5kYXJ5CiAgICAgICAgIHNlbGYuZGVmYXVsdF9jb250ZW50X3R5cGUgPSBkZWZhdWx0
X2NvbnRlbnRfdHlwZQogCiAgICAgZGVmIF9fY2FsbF9fKHNlbGYpOgotICAgICAgICBib3VuZGFy
eSA9ICItLSIgKyBzZWxmLmJvdW5kYXJ5Ci0gICAgICAgIHJ2ID0gWyIiLCBib3VuZGFyeV0KKyAg
ICAgICAgYm91bmRhcnkgPSBiIi0tIiArIHNlbGYuYm91bmRhcnkuZW5jb2RlKCJhc2NpaSIpCisg
ICAgICAgIHJ2ID0gW2IiIiwgYm91bmRhcnldCiAgICAgICAgIGZvciBpdGVtIGluIHNlbGYuaXRl
bXM6Ci0gICAgICAgICAgICBydi5hcHBlbmQoc3RyKGl0ZW0pKQorICAgICAgICAgICAgcnYuYXBw
ZW5kKGl0ZW0udG9fYnl0ZXMoKSkKICAgICAgICAgICAgIHJ2LmFwcGVuZChib3VuZGFyeSkKLSAg
ICAgICAgcnZbLTFdICs9ICItLSIKLSAgICAgICAgcmV0dXJuICJcclxuIi5qb2luKHJ2KQorICAg
ICAgICBydlstMV0gKz0gYiItLSIKKyAgICAgICAgcmV0dXJuIGIiXHJcbiIuam9pbihydikKIAog
ICAgIGRlZiBhcHBlbmRfcGFydChzZWxmLCBkYXRhLCBjb250ZW50X3R5cGU9Tm9uZSwgaGVhZGVy
cz1Ob25lKToKICAgICAgICAgaWYgY29udGVudF90eXBlIGlzIE5vbmU6CkBAIC0yNjMsNiArMjY5
LDcgQEAgY2xhc3MgTXVsdGlwYXJ0Q29udGVudChvYmplY3QpOgogCiBjbGFzcyBNdWx0aXBhcnRQ
YXJ0KG9iamVjdCk6CiAgICAgZGVmIF9faW5pdF9fKHNlbGYsIGRhdGEsIGNvbnRlbnRfdHlwZT1O
b25lLCBoZWFkZXJzPU5vbmUpOgorICAgICAgICBhc3NlcnQgaXNpbnN0YW5jZShkYXRhLCBiaW5h
cnlfdHlwZSksIGRhdGEKICAgICAgICAgc2VsZi5oZWFkZXJzID0gUmVzcG9uc2VIZWFkZXJzKCkK
IAogICAgICAgICBpZiBjb250ZW50X3R5cGUgaXMgbm90IE5vbmU6CkBAIC0yNzAsNyArMjc3LDcg
QEAgY2xhc3MgTXVsdGlwYXJ0UGFydChvYmplY3QpOgogCiAgICAgICAgIGlmIGhlYWRlcnMgaXMg
bm90IE5vbmU6CiAgICAgICAgICAgICBmb3IgbmFtZSwgdmFsdWUgaW4gaGVhZGVyczoKLSAgICAg
ICAgICAgICAgICBpZiBuYW1lLmxvd2VyKCkgPT0gImNvbnRlbnQtdHlwZSI6CisgICAgICAgICAg
ICAgICAgaWYgbmFtZS5sb3dlcigpID09IGIiY29udGVudC10eXBlIjoKICAgICAgICAgICAgICAg
ICAgICAgZnVuYyA9IHNlbGYuaGVhZGVycy5zZXQKICAgICAgICAgICAgICAgICBlbHNlOgogICAg
ICAgICAgICAgICAgICAgICBmdW5jID0gc2VsZi5oZWFkZXJzLmFwcGVuZApAQCAtMjc4LDEzICsy
ODUsMzYgQEAgY2xhc3MgTXVsdGlwYXJ0UGFydChvYmplY3QpOgogCiAgICAgICAgIHNlbGYuZGF0
YSA9IGRhdGEKIAotICAgIGRlZiBfX3N0cl9fKHNlbGYpOgorICAgIGRlZiB0b19ieXRlcyhzZWxm
KToKICAgICAgICAgcnYgPSBbXQotICAgICAgICBmb3IgaXRlbSBpbiBzZWxmLmhlYWRlcnM6Ci0g
ICAgICAgICAgICBydi5hcHBlbmQoIiVzOiAlcyIgJSBpdGVtKQotICAgICAgICBydi5hcHBlbmQo
IiIpCisgICAgICAgIGZvciBrZXksIHZhbHVlIGluIHNlbGYuaGVhZGVyczoKKyAgICAgICAgICAg
IGFzc2VydCBpc2luc3RhbmNlKGtleSwgYmluYXJ5X3R5cGUpCisgICAgICAgICAgICBhc3NlcnQg
aXNpbnN0YW5jZSh2YWx1ZSwgYmluYXJ5X3R5cGUpCisgICAgICAgICAgICBydi5hcHBlbmQoYiIl
czogJXMiICUgKGtleSwgdmFsdWUpKQorICAgICAgICBydi5hcHBlbmQoYiIiKQogICAgICAgICBy
di5hcHBlbmQoc2VsZi5kYXRhKQotICAgICAgICByZXR1cm4gIlxyXG4iLmpvaW4ocnYpCisgICAg
ICAgIHJldHVybiBiIlxyXG4iLmpvaW4ocnYpCisKKworZGVmIF9tYXliZV9lbmNvZGUocyk6Cisg
ICAgIiIiRW5jb2RlcyBhIHRleHQtdHlwZSBzdHJpbmcgaW50byBiaW5hcnkgZGF0YSB1c2luZyBp
c28tODg1OS0xLgorCisgICAgUmV0dXJucyBgc3RyYCBpbiBQeXRob24gMiBhbmQgYGJ5dGVzYCBp
biBQeXRob24gMy4gVGhlIGZ1bmN0aW9uIGlzIGEgbm8tb3AKKyAgICBpZiB0aGUgYXJndW1lbnQg
YWxyZWFkeSBoYXMgYSBiaW5hcnkgdHlwZS4KKyAgICAiIiIKKyAgICBpZiBpc2luc3RhbmNlKHMs
IGJpbmFyeV90eXBlKToKKyAgICAgICAgcmV0dXJuIHMKKworICAgICMgUHl0aG9uIDMgYXNzdW1l
cyBpc28tODg1OS0xIHdoZW4gcGFyc2luZyBoZWFkZXJzLCB3aGljaCB3aWxsIGdhcmJsZSB0ZXh0
CisgICAgIyB3aXRoIG5vbiBBU0NJSSBjaGFyYWN0ZXJzLiBXZSB0cnkgdG8gZW5jb2RlIHRoZSB0
ZXh0IGJhY2sgdG8gYmluYXJ5LgorICAgICMgaHR0cHM6Ly9naXRodWIuY29tL3B5dGhvbi9jcHl0
aG9uL2Jsb2IvMjczZmMyMjBiMjU5MzNlNDQzYzgyYWY2ODg4ZWIxODcxZDAzMmZiOC9MaWIvaHR0
cC9jbGllbnQucHkjTDIxMworICAgIGlmIGlzaW5zdGFuY2UocywgdGV4dF90eXBlKToKKyAgICAg
ICAgcmV0dXJuIHMuZW5jb2RlKCJpc28tODg1OS0xIikKKworICAgIGlmIGlzaW5zdGFuY2Uocywg
aW50ZWdlcl90eXBlcyk6CisgICAgICAgIHJldHVybiBiIiVpIiAlIChzLCkKKworICAgIHJhaXNl
IFR5cGVFcnJvcigiVW5leHBlY3RlZCB2YWx1ZSBpbiBSZXNwb25zZUhlYWRlcnM6ICVyIiAlIHMp
CiAKIAogY2xhc3MgUmVzcG9uc2VIZWFkZXJzKG9iamVjdCk6CkBAIC0yOTksNiArMzI5LDggQEAg
Y2xhc3MgUmVzcG9uc2VIZWFkZXJzKG9iamVjdCk6CiAgICAgICAgIDpwYXJhbSBrZXk6IE5hbWUg
b2YgdGhlIGhlYWRlciB0byBzZXQKICAgICAgICAgOnBhcmFtIHZhbHVlOiBWYWx1ZSB0byBzZXQg
dGhlIGhlYWRlciB0bwogICAgICAgICAiIiIKKyAgICAgICAga2V5ID0gX21heWJlX2VuY29kZShr
ZXkpCisgICAgICAgIHZhbHVlID0gX21heWJlX2VuY29kZSh2YWx1ZSkKICAgICAgICAgc2VsZi5k
YXRhW2tleS5sb3dlcigpXSA9IChrZXksIFt2YWx1ZV0pCiAKICAgICBkZWYgYXBwZW5kKHNlbGYs
IGtleSwgdmFsdWUpOgpAQCAtMzA4LDYgKzM0MCw4IEBAIGNsYXNzIFJlc3BvbnNlSGVhZGVycyhv
YmplY3QpOgogICAgICAgICA6cGFyYW0ga2V5OiBOYW1lIG9mIHRoZSBoZWFkZXIgdG8gYWRkCiAg
ICAgICAgIDpwYXJhbSB2YWx1ZTogVmFsdWUgdG8gc2V0IGZvciB0aGUgaGVhZGVyCiAgICAgICAg
ICIiIgorICAgICAgICBrZXkgPSBfbWF5YmVfZW5jb2RlKGtleSkKKyAgICAgICAgdmFsdWUgPSBf
bWF5YmVfZW5jb2RlKHZhbHVlKQogICAgICAgICBpZiBrZXkubG93ZXIoKSBpbiBzZWxmLmRhdGE6
CiAgICAgICAgICAgICBzZWxmLmRhdGFba2V5Lmxvd2VyKCldWzFdLmFwcGVuZCh2YWx1ZSkKICAg
ICAgICAgZWxzZToKQEAgLTMxNSw2ICszNDksNyBAQCBjbGFzcyBSZXNwb25zZUhlYWRlcnMob2Jq
ZWN0KToKIAogICAgIGRlZiBnZXQoc2VsZiwga2V5LCBkZWZhdWx0PW1pc3NpbmcpOgogICAgICAg
ICAiIiJHZXQgdGhlIHNldCB2YWx1ZXMgZm9yIGEgcGFydGljdWxhciBoZWFkZXIuIiIiCisgICAg
ICAgIGtleSA9IF9tYXliZV9lbmNvZGUoa2V5KQogICAgICAgICB0cnk6CiAgICAgICAgICAgICBy
ZXR1cm4gc2VsZltrZXldCiAgICAgICAgIGV4Y2VwdCBLZXlFcnJvcjoKQEAgLTMyNiwxMiArMzYx
LDE1IEBAIGNsYXNzIFJlc3BvbnNlSGVhZGVycyhvYmplY3QpOgogICAgICAgICAiIiJHZXQgYSBs
aXN0IG9mIHZhbHVlcyBmb3IgYSBwYXJ0aWN1bGFyIGhlYWRlcgogCiAgICAgICAgICIiIgorICAg
ICAgICBrZXkgPSBfbWF5YmVfZW5jb2RlKGtleSkKICAgICAgICAgcmV0dXJuIHNlbGYuZGF0YVtr
ZXkubG93ZXIoKV1bMV0KIAogICAgIGRlZiBfX2RlbGl0ZW1fXyhzZWxmLCBrZXkpOgorICAgICAg
ICBrZXkgPSBfbWF5YmVfZW5jb2RlKGtleSkKICAgICAgICAgZGVsIHNlbGYuZGF0YVtrZXkubG93
ZXIoKV0KIAogICAgIGRlZiBfX2NvbnRhaW5zX18oc2VsZiwga2V5KToKKyAgICAgICAga2V5ID0g
X21heWJlX2VuY29kZShrZXkpCiAgICAgICAgIHJldHVybiBrZXkubG93ZXIoKSBpbiBzZWxmLmRh
dGEKIAogICAgIGRlZiBfX3NldGl0ZW1fXyhzZWxmLCBrZXksIHZhbHVlKToKQEAgLTM5MSw2ICs0
MjksMTcgQEAgY2xhc3MgSDJSZXNwb25zZVdyaXRlcihvYmplY3QpOgogICAgICAgICBzZWxmLmxv
Z2dlciA9IHJlc3BvbnNlLmxvZ2dlcgogCiAgICAgZGVmIHdyaXRlX2hlYWRlcnMoc2VsZiwgaGVh
ZGVycywgc3RhdHVzX2NvZGUsIHN0YXR1c19tZXNzYWdlPU5vbmUsIHN0cmVhbV9pZD1Ob25lLCBs
YXN0PUZhbHNlKToKKyAgICAgICAgIiIiCisgICAgICAgIFNlbmQgYSBIRUFERVIgZnJhbWUgdGhh
dCBpcyB0cmFja2VkIGJ5IHRoZSBsb2NhbCBzdGF0ZSBtYWNoaW5lLgorCisgICAgICAgIFdyaXRl
IGEgSEVBREVSIGZyYW1lIHVzaW5nIHRoZSBIMiBDb25uZWN0aW9uIG9iamVjdCwgd2lsbCBvbmx5
IHdvcmsgaWYgdGhlIHN0cmVhbSBpcyBpbiBhIHN0YXRlIHRvIHNlbmQKKyAgICAgICAgSEVBREVS
IGZyYW1lcy4KKworICAgICAgICA6cGFyYW0gaGVhZGVyczogTGlzdCBvZiAoaGVhZGVyLCB2YWx1
ZSkgdHVwbGVzCisgICAgICAgIDpwYXJhbSBzdGF0dXNfY29kZTogVGhlIEhUVFAgc3RhdHVzIGNv
ZGUgb2YgdGhlIHJlc3BvbnNlCisgICAgICAgIDpwYXJhbSBzdHJlYW1faWQ6IElkIG9mIHN0cmVh
bSB0byBzZW5kIGZyYW1lIG9uLiBXaWxsIHVzZSB0aGUgcmVxdWVzdCBzdHJlYW0gSUQgaWYgTm9u
ZQorICAgICAgICA6cGFyYW0gbGFzdDogRmxhZyB0byBzaWduYWwgaWYgdGhpcyBpcyB0aGUgbGFz
dCBmcmFtZSBpbiBzdHJlYW0uCisgICAgICAgICIiIgogICAgICAgICBmb3JtYXR0ZWRfaGVhZGVy
cyA9IFtdCiAgICAgICAgIHNlY29uZGFyeV9oZWFkZXJzID0gW10gICMgTm9uICc6JyBwcmVmaXhl
ZCBoZWFkZXJzIGFyZSB0byBiZSBhZGRlZCBhZnRlcndhcmRzCiAKQEAgLTQxNCw2ICs0NjMsMTcg
QEAgY2xhc3MgSDJSZXNwb25zZVdyaXRlcihvYmplY3QpOgogICAgICAgICAgICAgc2VsZi53cml0
ZShjb25uZWN0aW9uKQogCiAgICAgZGVmIHdyaXRlX2RhdGEoc2VsZiwgaXRlbSwgbGFzdD1GYWxz
ZSwgc3RyZWFtX2lkPU5vbmUpOgorICAgICAgICAiIiIKKyAgICAgICAgU2VuZCBhIERBVEEgZnJh
bWUgdGhhdCBpcyB0cmFja2VkIGJ5IHRoZSBsb2NhbCBzdGF0ZSBtYWNoaW5lLgorCisgICAgICAg
IFdyaXRlIGEgREFUQSBmcmFtZSB1c2luZyB0aGUgSDIgQ29ubmVjdGlvbiBvYmplY3QsIHdpbGwg
b25seSB3b3JrIGlmIHRoZSBzdHJlYW0gaXMgaW4gYSBzdGF0ZSB0byBzZW5kCisgICAgICAgIERB
VEEgZnJhbWVzLiBVc2VzIGZsb3cgY29udHJvbCB0byBzcGxpdCBkYXRhIGludG8gbXVsdGlwbGUg
ZGF0YSBmcmFtZXMgaWYgaXQgZXhjZWVkcyB0aGUgc2l6ZSB0aGF0IGNhbgorICAgICAgICBiZSBp
biBhIHNpbmdsZSBmcmFtZS4KKworICAgICAgICA6cGFyYW0gaXRlbTogVGhlIGNvbnRlbnQgb2Yg
dGhlIERBVEEgZnJhbWUKKyAgICAgICAgOnBhcmFtIGxhc3Q6IEZsYWcgdG8gc2lnbmFsIGlmIHRo
aXMgaXMgdGhlIGxhc3QgZnJhbWUgaW4gc3RyZWFtLgorICAgICAgICA6cGFyYW0gc3RyZWFtX2lk
OiBJZCBvZiBzdHJlYW0gdG8gc2VuZCBmcmFtZSBvbi4gV2lsbCB1c2UgdGhlIHJlcXVlc3Qgc3Ry
ZWFtIElEIGlmIE5vbmUKKyAgICAgICAgIiIiCiAgICAgICAgIGlmIGlzaW5zdGFuY2UoaXRlbSwg
KHRleHRfdHlwZSwgYmluYXJ5X3R5cGUpKToKICAgICAgICAgICAgIGRhdGEgPSBCeXRlc0lPKHNl
bGYuZW5jb2RlKGl0ZW0pKQogICAgICAgICBlbHNlOgpAQCAtNDc0LDEzICs1MzQsMjUgQEAgY2xh
c3MgSDJSZXNwb25zZVdyaXRlcihvYmplY3QpOgogICAgICAgICByZXR1cm4gcHVzaF9zdHJlYW1f
aWQKIAogICAgIGRlZiBlbmRfc3RyZWFtKHNlbGYsIHN0cmVhbV9pZD1Ob25lKToKKyAgICAgICAg
IiIiRW5kcyB0aGUgc3RyZWFtIHdpdGggdGhlIGdpdmVuIElELCBvciB0aGUgb25lIHRoYXQgcmVx
dWVzdCB3YXMgbWFkZSBvbiBpZiBubyBJRCBnaXZlbi4iIiIKICAgICAgICAgd2l0aCBzZWxmLmgy
Y29ubiBhcyBjb25uZWN0aW9uOgogICAgICAgICAgICAgY29ubmVjdGlvbi5lbmRfc3RyZWFtKHN0
cmVhbV9pZCBpZiBzdHJlYW1faWQgaXMgbm90IE5vbmUgZWxzZSBzZWxmLnJlcXVlc3QuaDJfc3Ry
ZWFtX2lkKQogICAgICAgICAgICAgc2VsZi53cml0ZShjb25uZWN0aW9uKQogICAgICAgICBzZWxm
LnN0cmVhbV9lbmRlZCA9IFRydWUKIAogICAgIGRlZiB3cml0ZV9yYXdfaGVhZGVyX2ZyYW1lKHNl
bGYsIGhlYWRlcnMsIHN0cmVhbV9pZD1Ob25lLCBlbmRfc3RyZWFtPUZhbHNlLCBlbmRfaGVhZGVy
cz1GYWxzZSwgZnJhbWVfY2xzPUhlYWRlcnNGcmFtZSk6Ci0gICAgICAgICIiIlRoaXMgYnlwYXNz
ZXMgc3RhdGUgY2hlY2tpbmcgYW5kIHN1Y2gsIGFuZCBzZW5kcyBhIGhlYWRlciByZWdhcmRsZXNz
IiIiCisgICAgICAgICIiIgorICAgICAgICBJZ25vcmVzIHRoZSBzdGF0ZW1hY2hpbmUgb2YgdGhl
IHN0cmVhbSBhbmQgc2VuZHMgYSBIRUFERVIgZnJhbWUgcmVnYXJkbGVzcy4KKworICAgICAgICBV
bmxpa2UgYHdyaXRlX2hlYWRlcnNgLCB0aGlzIGRvZXMgbm90IGNoZWNrIHRvIHNlZSBpZiBhIHN0
cmVhbSBpcyBpbiB0aGUgY29ycmVjdCBzdGF0ZSB0byBoYXZlIEhFQURFUiBmcmFtZXMKKyAgICAg
ICAgc2VudCB0aHJvdWdoIHRvIGl0LiBJdCB3aWxsIGJ1aWxkIGEgSEVBREVSIGZyYW1lIGFuZCBz
ZW5kIGl0IHdpdGhvdXQgdXNpbmcgdGhlIEgyIENvbm5lY3Rpb24gb2JqZWN0IG90aGVyIHRoYW4K
KyAgICAgICAgdG8gSFBBQ0sgZW5jb2RlIHRoZSBoZWFkZXJzLgorCisgICAgICAgIDpwYXJhbSBo
ZWFkZXJzOiBMaXN0IG9mIChoZWFkZXIsIHZhbHVlKSB0dXBsZXMKKyAgICAgICAgOnBhcmFtIHN0
cmVhbV9pZDogSWQgb2Ygc3RyZWFtIHRvIHNlbmQgZnJhbWUgb24uIFdpbGwgdXNlIHRoZSByZXF1
ZXN0IHN0cmVhbSBJRCBpZiBOb25lCisgICAgICAgIDpwYXJhbSBlbmRfc3RyZWFtOiBTZXQgdG8g
VHJ1ZSB0byBhZGQgRU5EX1NUUkVBTSBmbGFnIHRvIGZyYW1lCisgICAgICAgIDpwYXJhbSBlbmRf
aGVhZGVyczogU2V0IHRvIFRydWUgdG8gYWRkIEVORF9IRUFERVJTIGZsYWcgdG8gZnJhbWUKKyAg
ICAgICAgIiIiCiAgICAgICAgIGlmIG5vdCBzdHJlYW1faWQ6CiAgICAgICAgICAgICBzdHJlYW1f
aWQgPSBzZWxmLnJlcXVlc3QuaDJfc3RyZWFtX2lkCiAKQEAgLTUwMSw3ICs1NzMsMTcgQEAgY2xh
c3MgSDJSZXNwb25zZVdyaXRlcihvYmplY3QpOgogICAgICAgICAgICAgc2VsZi53cml0ZV9yYXco
ZGF0YSkKIAogICAgIGRlZiB3cml0ZV9yYXdfZGF0YV9mcmFtZShzZWxmLCBkYXRhLCBzdHJlYW1f
aWQ9Tm9uZSwgZW5kX3N0cmVhbT1GYWxzZSk6Ci0gICAgICAgICIiIlRoaXMgYnlwYXNzZXMgc3Rh
dGUgY2hlY2tpbmcgYW5kIHN1Y2gsIGFuZCBzZW5kcyBhIGRhdGEgZnJhbWUgcmVnYXJkbGVzcyIi
IgorICAgICAgICAiIiIKKyAgICAgICAgSWdub3JlcyB0aGUgc3RhdGVtYWNoaW5lIG9mIHRoZSBz
dHJlYW0gYW5kIHNlbmRzIGEgREFUQSBmcmFtZSByZWdhcmRsZXNzLgorCisgICAgICAgIFVubGlr
ZSBgd3JpdGVfZGF0YWAsIHRoaXMgZG9lcyBub3QgY2hlY2sgdG8gc2VlIGlmIGEgc3RyZWFtIGlz
IGluIHRoZSBjb3JyZWN0IHN0YXRlIHRvIGhhdmUgREFUQSBmcmFtZXMKKyAgICAgICAgc2VudCB0
aHJvdWdoIHRvIGl0LiBJdCB3aWxsIGJ1aWxkIGEgREFUQSBmcmFtZSBhbmQgc2VuZCBpdCB3aXRo
b3V0IHVzaW5nIHRoZSBIMiBDb25uZWN0aW9uIG9iamVjdC4gSXQgd2lsbAorICAgICAgICBub3Qg
cGVyZm9ybSBhbnkgZmxvdyBjb250cm9sIGNoZWNrcy4KKworICAgICAgICA6cGFyYW0gZGF0YTog
VGhlIGRhdGEgdG8gYmUgc2VudCBpbiB0aGUgZnJhbWUKKyAgICAgICAgOnBhcmFtIHN0cmVhbV9p
ZDogSWQgb2Ygc3RyZWFtIHRvIHNlbmQgZnJhbWUgb24uIFdpbGwgdXNlIHRoZSByZXF1ZXN0IHN0
cmVhbSBJRCBpZiBOb25lCisgICAgICAgIDpwYXJhbSBlbmRfc3RyZWFtOiBTZXQgdG8gVHJ1ZSB0
byBhZGQgRU5EX1NUUkVBTSBmbGFnIHRvIGZyYW1lCisgICAgICAgICIiIgogICAgICAgICBpZiBu
b3Qgc3RyZWFtX2lkOgogICAgICAgICAgICAgc3RyZWFtX2lkID0gc2VsZi5yZXF1ZXN0LmgyX3N0
cmVhbV9pZAogCkBAIC01MTUsMTMgKzU5NywyNSBAQCBjbGFzcyBIMlJlc3BvbnNlV3JpdGVyKG9i
amVjdCk6CiAgICAgICAgIHNlbGYud3JpdGVfcmF3KGRhdGEpCiAKICAgICBkZWYgd3JpdGVfcmF3
X2NvbnRpbnVhdGlvbl9mcmFtZShzZWxmLCBoZWFkZXJzLCBzdHJlYW1faWQ9Tm9uZSwgZW5kX2hl
YWRlcnM9RmFsc2UpOgotICAgICAgICAiIiJUaGlzIGJ5cGFzc2VzIHN0YXRlIGNoZWNraW5nIGFu
ZCBzdWNoLCBhbmQgc2VuZHMgYSBjb250aW51YXRpb24gZnJhbWUgcmVnYXJkbGVzcyIiIgorICAg
ICAgICAiIiIKKyAgICAgICAgSWdub3JlcyB0aGUgc3RhdGVtYWNoaW5lIG9mIHRoZSBzdHJlYW0g
YW5kIHNlbmRzIGEgQ09OVElOVUFUSU9OIGZyYW1lIHJlZ2FyZGxlc3MuCisKKyAgICAgICAgVGhp
cyBwcm92aWRlcyB0aGUgYWJpbGl0eSB0byBjcmVhdGUgYW5kIHdyaXRlIGEgQ09OVElOVUFUSU9O
IGZyYW1lIHRvIHRoZSBzdHJlYW0sIHdoaWNoIGlzIG5vdCBleHBvc2VkIGJ5CisgICAgICAgIGB3
cml0ZV9oZWFkZXJzYCBhcyB0aGUgaDIgbGlicmFyeSBoYW5kbGVzIHRoZSBzcGxpdCBiZXR3ZWVu
IEhFQURFUiBhbmQgQ09OVElOVUFUSU9OIGludGVybmFsbHkuIFdpbGwgcGVyZm9ybQorICAgICAg
ICBIUEFDSyBlbmNvZGluZyBvbiB0aGUgaGVhZGVycy4KKworICAgICAgICA6cGFyYW0gaGVhZGVy
czogTGlzdCBvZiAoaGVhZGVyLCB2YWx1ZSkgdHVwbGVzCisgICAgICAgIDpwYXJhbSBzdHJlYW1f
aWQ6IElkIG9mIHN0cmVhbSB0byBzZW5kIGZyYW1lIG9uLiBXaWxsIHVzZSB0aGUgcmVxdWVzdCBz
dHJlYW0gSUQgaWYgTm9uZQorICAgICAgICA6cGFyYW0gZW5kX2hlYWRlcnM6IFNldCB0byBUcnVl
IHRvIGFkZCBFTkRfSEVBREVSUyBmbGFnIHRvIGZyYW1lCisgICAgICAgICIiIgogICAgICAgICBz
ZWxmLndyaXRlX3Jhd19oZWFkZXJfZnJhbWUoaGVhZGVycywgc3RyZWFtX2lkPXN0cmVhbV9pZCwg
ZW5kX2hlYWRlcnM9ZW5kX2hlYWRlcnMsIGZyYW1lX2Nscz1Db250aW51YXRpb25GcmFtZSkKIAog
Ci0gICAgZGVmIGdldF9tYXhfcGF5bG9hZF9zaXplKHNlbGYpOgorICAgIGRlZiBnZXRfbWF4X3Bh
eWxvYWRfc2l6ZShzZWxmLCBzdHJlYW1faWQ9Tm9uZSk6CisgICAgICAgICIiIlJldHVybnMgdGhl
IG1heGltdW0gc2l6ZSBvZiBhIHBheWxvYWQgZm9yIHRoZSBnaXZlbiBzdHJlYW0uIiIiCisgICAg
ICAgIHN0cmVhbV9pZCA9IHN0cmVhbV9pZCBpZiBzdHJlYW1faWQgaXMgbm90IE5vbmUgZWxzZSBz
ZWxmLnJlcXVlc3QuaDJfc3RyZWFtX2lkCiAgICAgICAgIHdpdGggc2VsZi5oMmNvbm4gYXMgY29u
bmVjdGlvbjoKLSAgICAgICAgICAgIHJldHVybiBtaW4oY29ubmVjdGlvbi5yZW1vdGVfc2V0dGlu
Z3MubWF4X2ZyYW1lX3NpemUsIGNvbm5lY3Rpb24ubG9jYWxfZmxvd19jb250cm9sX3dpbmRvdyhz
ZWxmLnJlcXVlc3QuaDJfc3RyZWFtX2lkKSkgLSA5CisgICAgICAgICAgICByZXR1cm4gbWluKGNv
bm5lY3Rpb24ucmVtb3RlX3NldHRpbmdzLm1heF9mcmFtZV9zaXplLCBjb25uZWN0aW9uLmxvY2Fs
X2Zsb3dfY29udHJvbF93aW5kb3coc3RyZWFtX2lkKSkgLSA5CiAKICAgICBkZWYgd3JpdGUoc2Vs
ZiwgY29ubmVjdGlvbik6CiAgICAgICAgIHNlbGYuY29udGVudF93cml0dGVuID0gVHJ1ZQpAQCAt
NTY1LDYgKzY1OSw5IEBAIGNsYXNzIFJlc3BvbnNlV3JpdGVyKG9iamVjdCk6CiAgICAgICAgIHNl
bGYuZmlsZV9jaHVua19zaXplID0gMzIgKiAxMDI0CiAgICAgICAgIHNlbGYuZGVmYXVsdF9zdGF0
dXMgPSAyMDAKIAorICAgIGRlZiBfc2Vlbl9oZWFkZXIoc2VsZiwgbmFtZSk6CisgICAgICAgIHJl
dHVybiBzZWxmLmVuY29kZShuYW1lLmxvd2VyKCkpIGluIHNlbGYuX2hlYWRlcnNfc2VlbgorCiAg
ICAgZGVmIHdyaXRlX3N0YXR1cyhzZWxmLCBjb2RlLCBtZXNzYWdlPU5vbmUpOgogICAgICAgICAi
IiJXcml0ZSBvdXQgdGhlIHN0YXR1cyBsaW5lIG9mIGEgcmVzcG9uc2UuCiAKQEAgLTU5MCwxOSAr
Njg3LDI1IEBAIGNsYXNzIFJlc3BvbnNlV3JpdGVyKG9iamVjdCk6CiAgICAgICAgICIiIgogICAg
ICAgICBpZiBub3Qgc2VsZi5fc3RhdHVzX3dyaXR0ZW46CiAgICAgICAgICAgICBzZWxmLndyaXRl
X3N0YXR1cyhzZWxmLmRlZmF1bHRfc3RhdHVzKQotICAgICAgICBzZWxmLl9oZWFkZXJzX3NlZW4u
YWRkKG5hbWUubG93ZXIoKSkKLSAgICAgICAgc2VsZi53cml0ZSgiJXM6ICVzXHJcbiIgJSAobmFt
ZSwgdmFsdWUpKQorICAgICAgICBzZWxmLl9oZWFkZXJzX3NlZW4uYWRkKHNlbGYuZW5jb2RlKG5h
bWUubG93ZXIoKSkpCisgICAgICAgIHNlbGYud3JpdGUobmFtZSkKKyAgICAgICAgc2VsZi53cml0
ZShiIjogIikKKyAgICAgICAgaWYgaXNpbnN0YW5jZSh2YWx1ZSwgaW50KToKKyAgICAgICAgICAg
IHNlbGYud3JpdGUodGV4dF90eXBlKHZhbHVlKSkKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAg
IHNlbGYud3JpdGUodmFsdWUpCisgICAgICAgIHNlbGYud3JpdGUoYiJcclxuIikKICAgICAgICAg
aWYgbm90IHNlbGYuX3Jlc3BvbnNlLmV4cGxpY2l0X2ZsdXNoOgogICAgICAgICAgICAgc2VsZi5m
bHVzaCgpCiAKICAgICBkZWYgd3JpdGVfZGVmYXVsdF9oZWFkZXJzKHNlbGYpOgogICAgICAgICBm
b3IgbmFtZSwgZiBpbiBbKCJTZXJ2ZXIiLCBzZWxmLl9oYW5kbGVyLnZlcnNpb25fc3RyaW5nKSwK
ICAgICAgICAgICAgICAgICAgICAgICAgICgiRGF0ZSIsIHNlbGYuX2hhbmRsZXIuZGF0ZV90aW1l
X3N0cmluZyldOgotICAgICAgICAgICAgaWYgbmFtZS5sb3dlcigpIG5vdCBpbiBzZWxmLl9oZWFk
ZXJzX3NlZW46CisgICAgICAgICAgICBpZiBub3Qgc2VsZi5fc2Vlbl9oZWFkZXIobmFtZSk6CiAg
ICAgICAgICAgICAgICAgc2VsZi53cml0ZV9oZWFkZXIobmFtZSwgZigpKQogCiAgICAgICAgIGlm
IChpc2luc3RhbmNlKHNlbGYuX3Jlc3BvbnNlLmNvbnRlbnQsIChiaW5hcnlfdHlwZSwgdGV4dF90
eXBlKSkgYW5kCi0gICAgICAgICAgICAiY29udGVudC1sZW5ndGgiIG5vdCBpbiBzZWxmLl9oZWFk
ZXJzX3NlZW4pOgorICAgICAgICAgICAgbm90IHNlbGYuX3NlZW5faGVhZGVyKCJjb250ZW50LWxl
bmd0aCIpKToKICAgICAgICAgICAgICNXb3VsZCBiZSBuaWNlIHRvIGF2b2lkIGRvdWJsZS1lbmNv
ZGluZyBoZXJlCiAgICAgICAgICAgICBzZWxmLndyaXRlX2hlYWRlcigiQ29udGVudC1MZW5ndGgi
LCBsZW4oc2VsZi5lbmNvZGUoc2VsZi5fcmVzcG9uc2UuY29udGVudCkpKQogCkBAIC02MTcsNyAr
NzIwLDcgQEAgY2xhc3MgUmVzcG9uc2VXcml0ZXIob2JqZWN0KToKICAgICAgICAgICAgIHNlbGYu
d3JpdGVfZGVmYXVsdF9oZWFkZXJzKCkKIAogICAgICAgICBzZWxmLndyaXRlKCJcclxuIikKLSAg
ICAgICAgaWYgImNvbnRlbnQtbGVuZ3RoIiBub3QgaW4gc2VsZi5faGVhZGVyc19zZWVuOgorICAg
ICAgICBpZiBub3Qgc2VsZi5fc2Vlbl9oZWFkZXIoImNvbnRlbnQtbGVuZ3RoIik6CiAgICAgICAg
ICAgICBzZWxmLl9yZXNwb25zZS5jbG9zZV9jb25uZWN0aW9uID0gVHJ1ZQogICAgICAgICBpZiBu
b3Qgc2VsZi5fcmVzcG9uc2UuZXhwbGljaXRfZmx1c2g6CiAgICAgICAgICAgICBzZWxmLmZsdXNo
KCkKQEAgLTY3Nyw3ICs3ODAsNyBAQCBjbGFzcyBSZXNwb25zZVdyaXRlcihvYmplY3QpOgogICAg
ICAgICBlbGlmIGlzaW5zdGFuY2UoZGF0YSwgdGV4dF90eXBlKToKICAgICAgICAgICAgIHJldHVy
biBkYXRhLmVuY29kZShzZWxmLl9yZXNwb25zZS5lbmNvZGluZykKICAgICAgICAgZWxzZToKLSAg
ICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IKKyAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3Io
ImRhdGEgJXIgc2hvdWxkIGJlIHRleHQgb3IgYmluYXJ5LCBidXQgaXMgJXMiICUgKGRhdGEsIHR5
cGUoZGF0YSkpKQogCiAgICAgZGVmIGZsdXNoKHNlbGYpOgogICAgICAgICAiIiJGbHVzaCB0aGUg
b3V0cHV0LiBSZXR1cm5zIEZhbHNlIGlmIHRoZSBmbHVzaCBmYWlsZWQgZHVlIHRvCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dw
dHNlcnZlL3dwdHNlcnZlL3JvdXRlci5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0c2VydmUvd3B0c2VydmUvcm91dGVyLnB5CmluZGV4IDUx
MThjMDNiNzI4Li41Yjg2MGI1OTQyNSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRzZXJ2ZS93cHRzZXJ2ZS9yb3V0ZXIucHkK
KysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93
cHRzZXJ2ZS93cHRzZXJ2ZS9yb3V0ZXIucHkKQEAgLTEwMiw3ICsxMDIsNyBAQCBjbGFzcyBSb3V0
ZXIob2JqZWN0KToKICAgICAgICAgICAgIHNlbGYucmVnaXN0ZXIoKnJvdXRlKQogCiAgICAgZGVm
IHJlZ2lzdGVyKHNlbGYsIG1ldGhvZHMsIHBhdGgsIGhhbmRsZXIpOgotICAgICAgICAiIiJSZWdp
c3RlciBhIGhhbmRsZXIgZm9yIGEgc2V0IG9mIHBhdGhzLgorICAgICAgICByIiIiUmVnaXN0ZXIg
YSBoYW5kbGVyIGZvciBhIHNldCBvZiBwYXRocy4KIAogICAgICAgICA6cGFyYW0gbWV0aG9kczog
U2V0IG9mIG1ldGhvZHMgdGhpcyBzaG91bGQgbWF0Y2guICIqIiBpcyBhCiAgICAgICAgICAgICAg
ICAgICAgICAgICBzcGVjaWFsIHZhbHVlIGluZGljYXRpbmcgdGhhdCBhbGwgbWV0aG9kcyBzaG91
bGQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvd3B0c2VydmUvd3B0c2VydmUvc2VydmVyLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRzZXJ2ZS93cHRzZXJ2ZS9zZXJ2ZXIu
cHkKaW5kZXggODM3MGNjYTBkMzguLmMwMzc3MzJhNmJhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHNlcnZlL3dwdHNlcnZl
L3NlcnZlci5weQorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3dwdHNlcnZlL3dwdHNlcnZlL3NlcnZlci5weQpAQCAtMjksNyArMjksOCBAQCBm
cm9tIC5yb3V0ZXIgaW1wb3J0IFJvdXRlcgogZnJvbSAudXRpbHMgaW1wb3J0IEhUVFBFeGNlcHRp
b24KIGZyb20gLmNvbnN0YW50cyBpbXBvcnQgaDJfaGVhZGVycwogCi0iIiJIVFRQIHNlcnZlciBk
ZXNpZ25lZCBmb3IgdGVzdGluZyBwdXJwb3Nlcy4KKyIiIgorSFRUUCBzZXJ2ZXIgZGVzaWduZWQg
Zm9yIHRlc3RpbmcgcHVycG9zZXMuCiAKIFRoZSBzZXJ2ZXIgaXMgZGVzaWduZWQgdG8gcHJvdmlk
ZSBmbGV4aWJpbGl0eSBpbiB0aGUgd2F5IHRoYXQKIHJlcXVlc3RzIGFyZSBoYW5kbGVkLCBhbmQg
dG8gcHJvdmlkZSBjb250cm9sIGJvdGggb2YgZXhhY3RseQpAQCAtNDQsNyArNDUsNyBAQCBmb3Ig
cGFyc2luZyB0aGUgaW5jb21pbmcgcmVxdWVzdC4gQSBSZXF1ZXN0UmV3cml0ZXIgaXMgdGhlbgog
YXBwbGllZCBhbmQgbWF5IGNoYW5nZSB0aGUgcmVxdWVzdCBkYXRhIGlmIGl0IG1hdGNoZXMgYQog
c3VwcGxpZWQgcnVsZS4KIAotT25jZSB0aGUgcmVxdWVzdCBkYXRhIGhhZCBiZWVuIGZpbmFsaXNl
ZCwgUmVxdWVzdCBhbmQgUmVwb25zZQorT25jZSB0aGUgcmVxdWVzdCBkYXRhIGhhZCBiZWVuIGZp
bmFsaXNlZCwgUmVxdWVzdCBhbmQgUmVzcG9uc2UKIG9iamVjdHMgYXJlIGNvbnN0cnVjdGVkLiBU
aGVzZSBhcmUgdXNlZCBieSB0aGUgb3RoZXIgcGFydHMgb2YgdGhlCiBzeXN0ZW0gdG8gcmVhZCBp
bmZvcm1hdGlvbiBhYm91dCB0aGUgcmVxdWVzdCBhbmQgbWFuaXB1bGF0ZSB0aGUKIHJlc3BvbnNl
LgpAQCAtNjMsNiArNjQsMTIgQEAgaGFuZGxlciByZXR1cm5zLCBvciBmb3IgZGlyZWN0bHkgd3Jp
dGluZyB0byB0aGUgb3V0cHV0IHN0cmVhbS4KICIiIgogCiAKK0VESVRfSE9TVFNfSEVMUCA9ICgi
UGxlYXNlIGVuc3VyZSBhbGwgdGhlIG5lY2Vzc2FyeSBXUFQgc3ViZG9tYWlucyAiCisgICAgICAg
ICAgICAgICAgICAiYXJlIG1hcHBlZCB0byBhIGxvb3BiYWNrIGRldmljZSBpbiAvZXRjL2hvc3Rz
LiAiCisgICAgICAgICAgICAgICAgICAiU2VlIGh0dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxhdGZv
cm0tdGVzdHMvd3B0I3J1bm5pbmctdGhlLXRlc3RzICIKKyAgICAgICAgICAgICAgICAgICJmb3Ig
aW5zdHJ1Y3Rpb25zLiIpCisKKwogY2xhc3MgUmVxdWVzdFJld3JpdGVyKG9iamVjdCk6CiAgICAg
ZGVmIF9faW5pdF9fKHNlbGYsIHJ1bGVzKToKICAgICAgICAgIiIiT2JqZWN0IGZvciByZXdyaXRp
bmcgdGhlIHJlcXVlc3QgcGF0aC4KQEAgLTE1NCw3ICsxNjEsNyBAQCBjbGFzcyBXZWJUZXN0U2Vy
dmVyKFRocmVhZGluZ01peEluLCBCYXNlSFRUUFNlcnZlci5IVFRQU2VydmVyKToKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBwb3J0IHNwZWNpZmllZCBpbiB0aGUgc2VydmVyX2FkZHJlc3Mg
cGFyYW1ldGVyLgogICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZhbHNlIHRvIGJpbmQgdGhl
IHNlcnZlciBvbmx5IHRvIHRoZSBwb3J0IGluIHRoZQogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHNlcnZlcl9hZGRyZXNzIHBhcmFtZXRlciwgYnV0IG5vdCB0byB0aGUgYWRkcmVzcy4KLSAg
ICAgICAgOnBhcmFtIGxhdGVuY3k6IERlbGF5IGluIG1zIHRvIHdhaXQgYmVmb3JlIHNldmluZyBl
YWNoIHJlc3BvbnNlLCBvcgorICAgICAgICA6cGFyYW0gbGF0ZW5jeTogRGVsYXkgaW4gbXMgdG8g
d2FpdCBiZWZvcmUgc2VydmluZyBlYWNoIHJlc3BvbnNlLCBvcgogICAgICAgICAgICAgICAgICAg
ICAgICAgY2FsbGFibGUgdGhhdCByZXR1cm5zIGEgZGVsYXkgaW4gbXMKICAgICAgICAgIiIiCiAg
ICAgICAgIHNlbGYucm91dGVyID0gcm91dGVyCkBAIC0zMjEsOCArMzI4LDE0IEBAIGNsYXNzIEh0
dHAyV2ViVGVzdFJlcXVlc3RIYW5kbGVyKEJhc2VXZWJUZXN0UmVxdWVzdEhhbmRsZXIpOgogCiAg
ICAgZGVmIGhhbmRsZV9vbmVfcmVxdWVzdChzZWxmKToKICAgICAgICAgIiIiCi0gICAgICAgIFRo
aXMgaXMgdGhlIG1haW4gSFRUUC8yLjAgSGFuZGxlci4gV2hlbiBhIGJyb3dzZXIgb3BlbnMgYSBj
b25uZWN0aW9uIHRvIHRoZSBzZXJ2ZXIKLSAgICAgICAgb24gdGhlIEhUVFAvMi4wIHBvcnQsIEJl
Y2F1c2UgdGhlcmUgY2FuIGJlIG11bHRpcGxlIEgyIGNvbm5lY3Rpb25zIGFjdGl2ZSBhdCB0aGUg
c2FtZQorICAgICAgICBUaGlzIGlzIHRoZSBtYWluIEhUVFAvMi4wIEhhbmRsZXIuCisKKyAgICAg
ICAgV2hlbiBhIGJyb3dzZXIgb3BlbnMgYSBjb25uZWN0aW9uIHRvIHRoZSBzZXJ2ZXIKKyAgICAg
ICAgb24gdGhlIEhUVFAvMi4wIHBvcnQsIHRoZSBzZXJ2ZXIgZW50ZXJzIHRoaXMgd2hpY2ggd2ls
bCBpbml0aWF0ZSB0aGUgaDIgY29ubmVjdGlvbgorICAgICAgICBhbmQga2VlcCBydW5uaW5nIHRo
cm91Z2hvdXQgdGhlIGR1cmF0aW9uIG9mIHRoZSBpbnRlcmFjdGlvbiwgYW5kIHdpbGwgcmVhZC93
cml0ZSBkaXJlY3RseQorICAgICAgICBmcm9tIHRoZSBzb2NrZXQuCisKKyAgICAgICAgQmVjYXVz
ZSB0aGVyZSBjYW4gYmUgbXVsdGlwbGUgSDIgY29ubmVjdGlvbnMgYWN0aXZlIGF0IHRoZSBzYW1l
CiAgICAgICAgIHRpbWUsIGEgVVVJRCBpcyBjcmVhdGVkIGZvciBlYWNoIHNvIHRoYXQgaXQgaXMg
ZWFzaWVyIHRvIHRlbGwgdGhlbSBhcGFydCBpbiB0aGUgbG9ncy4KICAgICAgICAgIiIiCiAKQEAg
LTMzOCw2ICszNTEsNyBAQCBjbGFzcyBIdHRwMldlYlRlc3RSZXF1ZXN0SGFuZGxlcihCYXNlV2Vi
VGVzdFJlcXVlc3RIYW5kbGVyKToKICAgICAgICAgd2l0aCBzZWxmLmNvbm4gYXMgY29ubmVjdGlv
bjoKICAgICAgICAgICAgIGNvbm5lY3Rpb24uaW5pdGlhdGVfY29ubmVjdGlvbigpCiAgICAgICAg
ICAgICBkYXRhID0gY29ubmVjdGlvbi5kYXRhX3RvX3NlbmQoKQorICAgICAgICAgICAgd2luZG93
X3NpemUgPSBjb25uZWN0aW9uLnJlbW90ZV9zZXR0aW5ncy5pbml0aWFsX3dpbmRvd19zaXplCiAK
ICAgICAgICAgc2VsZi5yZXF1ZXN0LnNlbmRhbGwoZGF0YSkKIApAQCAtMzQ2LDExICszNjAsMTUg
QEAgY2xhc3MgSHR0cDJXZWJUZXN0UmVxdWVzdEhhbmRsZXIoQmFzZVdlYlRlc3RSZXF1ZXN0SGFu
ZGxlcik6CiAKICAgICAgICAgdHJ5OgogICAgICAgICAgICAgd2hpbGUgbm90IHNlbGYuY2xvc2Vf
Y29ubmVjdGlvbjoKLSAgICAgICAgICAgICAgICAjIFRoaXMgc2l6ZSBtYXkgbmVlZCB0byBiZSBt
YWRlIHZhcmlhYmxlIGJhc2VkIG9uIHJlbW90ZSBzZXR0aW5ncz8KLSAgICAgICAgICAgICAgICBk
YXRhID0gc2VsZi5yZXF1ZXN0LnJlY3YoNjU1MzUpCisgICAgICAgICAgICAgICAgZGF0YSA9IHNl
bGYucmVxdWVzdC5yZWN2KHdpbmRvd19zaXplKQorICAgICAgICAgICAgICAgIGlmIGRhdGEgPT0g
Jyc6CisgICAgICAgICAgICAgICAgICAgIHNlbGYubG9nZ2VyLmRlYnVnKCcoJXMpIFNvY2tldCBD
bG9zZWQnICUgc2VsZi51aWQpCisgICAgICAgICAgICAgICAgICAgIHNlbGYuY2xvc2VfY29ubmVj
dGlvbiA9IFRydWUKKyAgICAgICAgICAgICAgICAgICAgY29udGludWUKIAogICAgICAgICAgICAg
ICAgIHdpdGggc2VsZi5jb25uIGFzIGNvbm5lY3Rpb246CiAgICAgICAgICAgICAgICAgICAgIGZy
YW1lcyA9IGNvbm5lY3Rpb24ucmVjZWl2ZV9kYXRhKGRhdGEpCisgICAgICAgICAgICAgICAgICAg
IHdpbmRvd19zaXplID0gY29ubmVjdGlvbi5yZW1vdGVfc2V0dGluZ3MuaW5pdGlhbF93aW5kb3df
c2l6ZQogCiAgICAgICAgICAgICAgICAgc2VsZi5sb2dnZXIuZGVidWcoJyglcykgRnJhbWVzIFJl
Y2VpdmVkOiAnICUgc2VsZi51aWQgKyBzdHIoZnJhbWVzKSkKIApAQCAtMzg1LDYgKzQwMywxMiBA
QCBjbGFzcyBIdHRwMldlYlRlc3RSZXF1ZXN0SGFuZGxlcihCYXNlV2ViVGVzdFJlcXVlc3RIYW5k
bGVyKToKICAgICAgICAgICAgICAgICB0aHJlYWQuam9pbigpCiAKICAgICBkZWYgc3RhcnRfc3Ry
ZWFtX3RocmVhZChzZWxmLCBmcmFtZSwgcXVldWUpOgorICAgICAgICAiIiIKKyAgICAgICAgVGhp
cyBzdGFydHMgYSBuZXcgdGhyZWFkIHRvIGhhbmRsZSBmcmFtZXMgZm9yIGEgc3BlY2lmaWMgc3Ry
ZWFtLgorICAgICAgICA6cGFyYW0gZnJhbWU6IFRoZSBmaXJzdCBmcmFtZSBvbiB0aGUgc3RyZWFt
CisgICAgICAgIDpwYXJhbSBxdWV1ZTogQSBxdWV1ZSBvYmplY3QgdGhhdCB0aGUgdGhyZWFkIHdp
bGwgdXNlIHRvIGNoZWNrIGZvciBuZXcgZnJhbWVzCisgICAgICAgIDpyZXR1cm46IFRoZSB0aHJl
YWQgb2JqZWN0IHRoYXQgaGFzIGFscmVhZHkgYmVlbiBzdGFydGVkCisgICAgICAgICIiIgogICAg
ICAgICB0ID0gdGhyZWFkaW5nLlRocmVhZCgKICAgICAgICAgICAgIHRhcmdldD1IdHRwMldlYlRl
c3RSZXF1ZXN0SGFuZGxlci5fc3RyZWFtX3RocmVhZCwKICAgICAgICAgICAgIGFyZ3M9KHNlbGYs
IGZyYW1lLnN0cmVhbV9pZCwgcXVldWUpCkBAIC00OTMsNyArNTE3LDYgQEAgY2xhc3MgSDJIZWFk
ZXJzKGRpY3QpOgogCiAKIGNsYXNzIEgySGFuZGxlckNvcHkob2JqZWN0KToKLQogICAgIGRlZiBf
X2luaXRfXyhzZWxmLCBoYW5kbGVyLCByZXFfZnJhbWUsIHJmaWxlKToKICAgICAgICAgc2VsZi5o
ZWFkZXJzID0gSDJIZWFkZXJzKHJlcV9mcmFtZS5oZWFkZXJzKQogICAgICAgICBzZWxmLmNvbW1h
bmQgPSBzZWxmLmhlYWRlcnNbJ21ldGhvZCddCkBAIC01MzIsNyArNTU1LDcgQEAgY2xhc3MgSHR0
cDFXZWJUZXN0UmVxdWVzdEhhbmRsZXIoQmFzZVdlYlRlc3RSZXF1ZXN0SGFuZGxlcik6CiAgICAg
ICAgICAgICBzZWxmLmNsb3NlX2Nvbm5lY3Rpb24gPSBUcnVlCiAgICAgICAgICAgICByZXR1cm4K
IAotICAgICAgICBleGNlcHQgRXhjZXB0aW9uIGFzIGU6CisgICAgICAgIGV4Y2VwdCBFeGNlcHRp
b246CiAgICAgICAgICAgICBlcnIgPSB0cmFjZWJhY2suZm9ybWF0X2V4YygpCiAgICAgICAgICAg
ICBpZiByZXNwb25zZToKICAgICAgICAgICAgICAgICByZXNwb25zZS5zZXRfZXJyb3IoNTAwLCBl
cnIpCkBAIC01NzUsNyArNTk4LDcgQEAgY2xhc3MgV2ViVGVzdEh0dHBkKG9iamVjdCk6CiAgICAg
OnBhcmFtIGNvbmZpZzogRGljdGlvbmFyeSBob2xkaW5nIGVudmlyb25tZW50IGNvbmZpZ3VyYXRp
b24gc2V0dGluZ3MgZm9yCiAgICAgICAgICAgICAgICAgICAgaGFuZGxlcnMgdG8gcmVhZCwgb3Ig
Tm9uZSB0byB1c2UgdGhlIGRlZmF1bHQgdmFsdWVzLgogICAgIDpwYXJhbSBiaW5kX2FkZHJlc3M6
IEJvb2xlYW4gaW5kaWNhdGluZyB3aGV0aGVyIHRvIGJpbmQgc2VydmVyIHRvIElQIGFkZHJlc3Mu
Ci0gICAgOnBhcmFtIGxhdGVuY3k6IERlbGF5IGluIG1zIHRvIHdhaXQgYmVmb3JlIHNldmluZyBl
YWNoIHJlc3BvbnNlLCBvcgorICAgIDpwYXJhbSBsYXRlbmN5OiBEZWxheSBpbiBtcyB0byB3YWl0
IGJlZm9yZSBzZXJ2aW5nIGVhY2ggcmVzcG9uc2UsIG9yCiAgICAgICAgICAgICAgICAgICAgIGNh
bGxhYmxlIHRoYXQgcmV0dXJucyBhIGRlbGF5IGluIG1zCiAKICAgICBIVFRQIHNlcnZlciBkZXNp
Z25lZCBmb3IgdGVzdGluZyBzY2VuYXJpb3MuCkBAIC02MDUsNyArNjI4LDcgQEAgY2xhc3MgV2Vi
VGVzdEh0dHBkKG9iamVjdCk6CiAKICAgICAuLiBhdHRyaWJ1dGU6OiBzdGFydGVkCiAKLSAgICAg
IEJvb2xlYW4gaW5kaWN0YWluZyB3aGV0aGVyIHRoZSBzZXJ2ZXIgaXMgcnVubmluZworICAgICAg
Qm9vbGVhbiBpbmRpY2F0aW5nIHdoZXRoZXIgdGhlIHNlcnZlciBpcyBydW5uaW5nCiAKICAgICAi
IiIKICAgICBkZWYgX19pbml0X18oc2VsZiwgaG9zdD0iMTI3LjAuMC4xIiwgcG9ydD04MDAwLApA
QCAtNjUzLDggKzY3Niw3IEBAIGNsYXNzIFdlYlRlc3RIdHRwZChvYmplY3QpOgogCiAgICAgICAg
ICAgICBfaG9zdCwgc2VsZi5wb3J0ID0gc2VsZi5odHRwZC5zb2NrZXQuZ2V0c29ja25hbWUoKQog
ICAgICAgICBleGNlcHQgRXhjZXB0aW9uOgotICAgICAgICAgICAgc2VsZi5sb2dnZXIuZXJyb3Io
IkZhaWxlZCB0byBzdGFydCBIVFRQIHNlcnZlci4gIgotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIllvdSBtYXkgbmVlZCB0byBlZGl0IC9ldGMvaG9zdHMgb3Igc2ltaWxhciwgc2VlIFJF
QURNRS5tZC4iKQorICAgICAgICAgICAgc2VsZi5sb2dnZXIuY3JpdGljYWwoIkZhaWxlZCB0byBz
dGFydCBIVFRQIHNlcnZlci4ge30iLmZvcm1hdChFRElUX0hPU1RTX0hFTFApKQogICAgICAgICAg
ICAgcmFpc2UKIAogICAgIGRlZiBzdGFydChzZWxmLCBibG9jaz1GYWxzZSk6CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHNl
cnZlL3dwdHNlcnZlL3NzbHV0aWxzL19faW5pdF9fLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRzZXJ2ZS93cHRzZXJ2ZS9zc2x1dGlscy9f
X2luaXRfXy5weQppbmRleCA2Njk5ZWRiNTk2NC4uZTg5YmI5NmY4MmYgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0c2VydmUv
d3B0c2VydmUvc3NsdXRpbHMvX19pbml0X18ucHkKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRzZXJ2ZS93cHRzZXJ2ZS9zc2x1dGlscy9f
X2luaXRfXy5weQpAQCAtMTEsNCArMTEsNCBAQCBkZWYgZ2V0X2NscyhuYW1lKToKICAgICB0cnk6
CiAgICAgICAgIHJldHVybiBlbnZpcm9ubWVudHNbbmFtZV0KICAgICBleGNlcHQgS2V5RXJyb3I6
Ci0gICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoIiVzIGlzIG5vdCBhIHZhaWQgc3NsIHR5cGUuIiAl
IG5hbWUpCisgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoIiVzIGlzIG5vdCBhIHZhbGlkIFNTTCB0
eXBlLiIgJSBuYW1lKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy93cHRzZXJ2ZS93cHRzZXJ2ZS9zc2x1dGlscy9iYXNlLnB5IGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRzZXJ2
ZS93cHRzZXJ2ZS9zc2x1dGlscy9iYXNlLnB5CmluZGV4IGM5NWI2OTNmMzcxLi42M2VmNDVjYzg2
OSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy93cHRzZXJ2ZS93cHRzZXJ2ZS9zc2x1dGlscy9iYXNlLnB5CisrKyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0c2VydmUvd3B0c2Vy
dmUvc3NsdXRpbHMvYmFzZS5weQpAQCAtMTMsNSArMTMsNSBAQCBjbGFzcyBOb1NTTEVudmlyb25t
ZW50KG9iamVjdCk6CiAgICAgZGVmIGhvc3RfY2VydF9wYXRoKHNlbGYsIGhvc3RzKToKICAgICAg
ICAgcmV0dXJuIE5vbmUsIE5vbmUKIAotICAgIGRlZiBjYV9jZXJ0X3BhdGgoc2VsZik6CisgICAg
ZGVmIGNhX2NlcnRfcGF0aChzZWxmLCBob3N0cyk6CiAgICAgICAgIHJldHVybiBOb25lCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3dwdHNlcnZlL3dwdHNlcnZlL3NzbHV0aWxzL29wZW5zc2wucHkgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHNlcnZlL3dwdHNlcnZlL3NzbHV0
aWxzL29wZW5zc2wucHkKaW5kZXggZWJiY2Y2OGQ3MTYuLmFlYTFjNzM4MGIxIDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHNl
cnZlL3dwdHNlcnZlL3NzbHV0aWxzL29wZW5zc2wucHkKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRzZXJ2ZS93cHRzZXJ2ZS9zc2x1dGls
cy9vcGVuc3NsLnB5CkBAIC02LDcgKzYsNyBAQCBpbXBvcnQgc3VicHJvY2VzcwogaW1wb3J0IHRl
bXBmaWxlCiBmcm9tIGRhdGV0aW1lIGltcG9ydCBkYXRldGltZSwgdGltZWRlbHRhCiAKLWZyb20g
c2l4IGltcG9ydCBpdGVyaXRlbXMKK2Zyb20gc2l4IGltcG9ydCBpdGVyaXRlbXMsIFBZMgogCiAj
IEFtb3VudCBvZiB0aW1lIGJleW9uZCB0aGUgcHJlc2VudCB0byBjb25zaWRlciBjZXJ0aWZpY2F0
ZXMgImV4cGlyZWQuIiBUaGlzCiAjIGFsbG93cyBjZXJ0aWZpY2F0ZXMgdG8gYmUgcHJvYWN0aXZl
bHkgcmUtZ2VuZXJhdGVkIGluIHRoZSAiYnVmZmVyIiBwZXJpb2QKQEAgLTE0LDYgKzE0LDE3IEBA
IGZyb20gc2l4IGltcG9ydCBpdGVyaXRlbXMKIENFUlRfRVhQSVJZX0JVRkZFUiA9IGRpY3QoaG91
cnM9NikKIAogCitkZWYgX2Vuc3VyZV9zdHIocywgZW5jb2RpbmcpOgorICAgICIiIm1ha2VzIHN1
cmUgcyBpcyBhbiBpbnN0YW5jZSBvZiBzdHIsIGNvbnZlcnRpbmcgd2l0aCBlbmNvZGluZyBpZiBu
ZWVkZWQiIiIKKyAgICBpZiBpc2luc3RhbmNlKHMsIHN0cik6CisgICAgICAgIHJldHVybiBzCisK
KyAgICBpZiBQWTI6CisgICAgICAgIHJldHVybiBzLmVuY29kZShlbmNvZGluZykKKyAgICBlbHNl
OgorICAgICAgICByZXR1cm4gcy5kZWNvZGUoZW5jb2RpbmcpCisKKwogY2xhc3MgT3BlblNTTChv
YmplY3QpOgogICAgIGRlZiBfX2luaXRfXyhzZWxmLCBsb2dnZXIsIGJpbmFyeSwgYmFzZV9wYXRo
LCBjb25mX3BhdGgsIGhvc3RzLCBkdXJhdGlvbiwKICAgICAgICAgICAgICAgICAgYmFzZV9jb25m
X3BhdGg9Tm9uZSk6CkBAIC02NSwxOCArNzYsMTQgQEAgY2xhc3MgT3BlblNTTChvYmplY3QpOgog
ICAgICAgICAgICAgc2VsZi5jbWQgKz0gWyItY29uZmlnIiwgc2VsZi5jb25mX3BhdGhdCiAgICAg
ICAgIHNlbGYuY21kICs9IGxpc3QoYXJncykKIAotICAgICAgICAjIENvcHkgdGhlIGVudmlyb25t
ZW50LCBjb252ZXJ0aW5nIHRvIHBsYWluIHN0cmluZ3MuIFdpbmRvd3MKLSAgICAgICAgIyBTdGFy
dFByb2Nlc3MgaXMgcGlja3kgYWJvdXQgYWxsIHRoZSBrZXlzL3ZhbHVlcyBiZWluZyBwbGFpbiBz
dHJpbmdzLAotICAgICAgICAjIGJ1dCBhdCBsZWFzdCBpbiBNU1lTIHNoZWxscywgdGhlIG9zLmVu
dmlyb24gZGljdGlvbmFyeSBjYW4gYmUgbWl4ZWQuCisgICAgICAgICMgQ29weSB0aGUgZW52aXJv
bm1lbnQsIGNvbnZlcnRpbmcgdG8gcGxhaW4gc3RyaW5ncy4gV2luMzIgU3RhcnRQcm9jZXNzCisg
ICAgICAgICMgaXMgcGlja3kgYWJvdXQgYWxsIHRoZSBrZXlzL3ZhbHVlcyBiZWluZyBzdHIgKG9u
IGJvdGggUHkyLzMpLgogICAgICAgICBlbnYgPSB7fQogICAgICAgICBmb3IgaywgdiBpbiBpdGVy
aXRlbXMob3MuZW52aXJvbik6Ci0gICAgICAgICAgICB0cnk6Ci0gICAgICAgICAgICAgICAgZW52
W2suZW5jb2RlKCJ1dGY4IildID0gdi5lbmNvZGUoInV0ZjgiKQotICAgICAgICAgICAgZXhjZXB0
IFVuaWNvZGVEZWNvZGVFcnJvcjoKLSAgICAgICAgICAgICAgICBwYXNzCisgICAgICAgICAgICBl
bnZbX2Vuc3VyZV9zdHIoaywgInV0ZjgiKV0gPSBfZW5zdXJlX3N0cih2LCAidXRmOCIpCiAKICAg
ICAgICAgaWYgc2VsZi5iYXNlX2NvbmZfcGF0aCBpcyBub3QgTm9uZToKLSAgICAgICAgICAgIGVu
dlsiT1BFTlNTTF9DT05GIl0gPSBzZWxmLmJhc2VfY29uZl9wYXRoLmVuY29kZSgidXRmOCIpCisg
ICAgICAgICAgICBlbnZbIk9QRU5TU0xfQ09ORiJdID0gX2Vuc3VyZV9zdHIoc2VsZi5iYXNlX2Nv
bmZfcGF0aCwgInV0Zi04IikKIAogICAgICAgICBzZWxmLnByb2MgPSBzdWJwcm9jZXNzLlBvcGVu
KHNlbGYuY21kLCBzdGRvdXQ9c3VicHJvY2Vzcy5QSVBFLCBzdGRlcnI9c3VicHJvY2Vzcy5TVERP
VVQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW52PWVudikKQEAgLTEx
NCwxNiArMTIxLDE4IEBAIGRlZiBtYWtlX3N1YmplY3QoY29tbW9uX25hbWUsCiAgICAgcmV0dXJu
ICIiLmpvaW4ocnYpCiAKIGRlZiBtYWtlX2FsdF9uYW1lcyhob3N0cyk6Ci0gICAgcnYgPSBbXQot
ICAgIGZvciBuYW1lIGluIGhvc3RzOgotICAgICAgICBydi5hcHBlbmQoIkROUzolcyIgJSBuYW1l
KQotICAgIHJldHVybiAiLCIuam9pbihydikKKyAgICByZXR1cm4gIiwiLmpvaW4oIkROUzolcyIg
JSBob3N0IGZvciBob3N0IGluIGhvc3RzKQorCitkZWYgbWFrZV9uYW1lX2NvbnN0cmFpbnRzKGhv
c3RzKToKKyAgICByZXR1cm4gIiwiLmpvaW4oInBlcm1pdHRlZDtETlM6JXMiICUgaG9zdCBmb3Ig
aG9zdCBpbiBob3N0cykKIAogZGVmIGdldF9jb25maWcocm9vdF9kaXIsIGhvc3RzLCBkdXJhdGlv
bj0zMCk6CiAgICAgaWYgaG9zdHMgaXMgTm9uZToKICAgICAgICAgc2FuX2xpbmUgPSAiIgorICAg
ICAgICBjb25zdHJhaW50c19saW5lID0gIiIKICAgICBlbHNlOgogICAgICAgICBzYW5fbGluZSA9
ICJzdWJqZWN0QWx0TmFtZSA9ICVzIiAlIG1ha2VfYWx0X25hbWVzKGhvc3RzKQorICAgICAgICBj
b25zdHJhaW50c19saW5lID0gIm5hbWVDb25zdHJhaW50cyA9ICIgKyBtYWtlX25hbWVfY29uc3Ry
YWludHMoaG9zdHMpCiAKICAgICBpZiBvcy5wYXRoLnNlcCA9PSAiXFwiOgogICAgICAgICAjIFRo
aXMgc2VlbXMgdG8gYmUgbmVlZGVkIGZvciB0aGUgU2hpbmluZyBMaWdodCBPcGVuU1NMIG9uCkBA
IC0yMTMsOSArMjIyLDExIEBAIGJhc2ljQ29uc3RyYWludHMgPSBDQTp0cnVlCiBzdWJqZWN0S2V5
SWRlbnRpZmllcj1oYXNoCiBhdXRob3JpdHlLZXlJZGVudGlmaWVyPWtleWlkOmFsd2F5cyxpc3N1
ZXI6YWx3YXlzCiBrZXlVc2FnZSA9IGtleUNlcnRTaWduCislKGNvbnN0cmFpbnRzX2xpbmUpcwog
IiIiICUgeyJyb290X2RpciI6IHJvb3RfZGlyLAogICAgICAgICJzYW5fbGluZSI6IHNhbl9saW5l
LAogICAgICAgICJkdXJhdGlvbiI6IGR1cmF0aW9uLAorICAgICAgICJjb25zdHJhaW50c19saW5l
IjogY29uc3RyYWludHNfbGluZSwKICAgICAgICAic2VwIjogb3MucGF0aC5zZXAucmVwbGFjZSgi
XFwiLCAiXFxcXCIpfQogCiAgICAgcmV0dXJuIHJ2CkBAIC0yODcsMTMgKzI5OCwxMyBAQCBjbGFz
cyBPcGVuU1NMRW52aXJvbm1lbnQob2JqZWN0KToKICAgICAgICAgcmV0dXJuIE9wZW5TU0woc2Vs
Zi5sb2dnZXIsIHNlbGYuYmluYXJ5LCBzZWxmLmJhc2VfcGF0aCwgY29uZl9wYXRoLCBob3N0cywK
ICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5kdXJhdGlvbiwgc2VsZi5iYXNlX2NvbmZfcGF0
aCkKIAotICAgIGRlZiBjYV9jZXJ0X3BhdGgoc2VsZik6CisgICAgZGVmIGNhX2NlcnRfcGF0aChz
ZWxmLCBob3N0cyk6CiAgICAgICAgICIiIkdldCB0aGUgcGF0aCB0byB0aGUgQ0EgY2VydGlmaWNh
dGUgZmlsZSwgZ2VuZXJhdGluZyBhCiAgICAgICAgIG5ldyBvbmUgaWYgbmVlZGVkIiIiCiAgICAg
ICAgIGlmIHNlbGYuX2NhX2NlcnRfcGF0aCBpcyBOb25lIGFuZCBub3Qgc2VsZi5mb3JjZV9yZWdl
bmVyYXRlOgogICAgICAgICAgICAgc2VsZi5fbG9hZF9jYV9jZXJ0KCkKICAgICAgICAgaWYgc2Vs
Zi5fY2FfY2VydF9wYXRoIGlzIE5vbmU6Ci0gICAgICAgICAgICBzZWxmLl9nZW5lcmF0ZV9jYSgp
CisgICAgICAgICAgICBzZWxmLl9nZW5lcmF0ZV9jYShob3N0cykKICAgICAgICAgcmV0dXJuIHNl
bGYuX2NhX2NlcnRfcGF0aAogCiAgICAgZGVmIF9sb2FkX2NhX2NlcnQoc2VsZik6CkBAIC0zMjYs
NyArMzM3LDcgQEAgY2xhc3MgT3BlblNTTEVudmlyb25tZW50KG9iamVjdCk6CiAgICAgICAgICNU
T0RPOiBjaGVjayB0aGUga2V5IGFjdHVhbGx5IHNpZ25lZCB0aGUgY2VydC4KICAgICAgICAgcmV0
dXJuIFRydWUKIAotICAgIGRlZiBfZ2VuZXJhdGVfY2Eoc2VsZik6CisgICAgZGVmIF9nZW5lcmF0
ZV9jYShzZWxmLCBob3N0cyk6CiAgICAgICAgIHBhdGggPSBzZWxmLnBhdGgKICAgICAgICAgc2Vs
Zi5sb2dnZXIuaW5mbygiR2VuZXJhdGluZyBuZXcgQ0EgaW4gJXMiICUgc2VsZi5iYXNlX3BhdGgp
CiAKQEAgLTMzNCw3ICszNDUsNyBAQCBjbGFzcyBPcGVuU1NMRW52aXJvbm1lbnQob2JqZWN0KToK
ICAgICAgICAgcmVxX3BhdGggPSBwYXRoKCJjYXJlcS5wZW0iKQogICAgICAgICBjZXJ0X3BhdGgg
PSBwYXRoKCJjYWNlcnQucGVtIikKIAotICAgICAgICB3aXRoIHNlbGYuX2NvbmZpZ19vcGVuc3Ns
KE5vbmUpIGFzIG9wZW5zc2w6CisgICAgICAgIHdpdGggc2VsZi5fY29uZmlnX29wZW5zc2woaG9z
dHMpIGFzIG9wZW5zc2w6CiAgICAgICAgICAgICBvcGVuc3NsKCJyZXEiLAogICAgICAgICAgICAg
ICAgICAgICAiLWJhdGNoIiwKICAgICAgICAgICAgICAgICAgICAgIi1uZXciLApAQCAtMzUxLDYg
KzM2Miw3IEBAIGNsYXNzIE9wZW5TU0xFbnZpcm9ubWVudChvYmplY3QpOgogICAgICAgICAgICAg
ICAgICAgICAiLXBhc3NpbiIsICJwYXNzOiVzIiAlIHNlbGYucGFzc3dvcmQsCiAgICAgICAgICAg
ICAgICAgICAgICItc2VsZnNpZ24iLAogICAgICAgICAgICAgICAgICAgICAiLWV4dGVuc2lvbnMi
LCAidjNfY2EiLAorICAgICAgICAgICAgICAgICAgICAiLW5vdGV4dCIsCiAgICAgICAgICAgICAg
ICAgICAgICItaW4iLCByZXFfcGF0aCwKICAgICAgICAgICAgICAgICAgICAgIi1vdXQiLCBjZXJ0
X3BhdGgpCiAKQEAgLTM5MSw3ICs0MDMsNyBAQCBjbGFzcyBPcGVuU1NMRW52aXJvbm1lbnQob2Jq
ZWN0KToKICAgICBkZWYgX2dlbmVyYXRlX2hvc3RfY2VydChzZWxmLCBob3N0cyk6CiAgICAgICAg
IGhvc3QgPSBob3N0c1swXQogICAgICAgICBpZiBzZWxmLl9jYV9rZXlfcGF0aCBpcyBOb25lOgot
ICAgICAgICAgICAgc2VsZi5fZ2VuZXJhdGVfY2EoKQorICAgICAgICAgICAgc2VsZi5fZ2VuZXJh
dGVfY2EoaG9zdHMpCiAgICAgICAgIGNhX2tleV9wYXRoID0gc2VsZi5fY2Ffa2V5X3BhdGgKIAog
ICAgICAgICBhc3NlcnQgb3MucGF0aC5leGlzdHMoY2Ffa2V5X3BhdGgpCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHNlcnZl
L3dwdHNlcnZlL3NzbHV0aWxzL3ByZWdlbmVyYXRlZC5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0c2VydmUvd3B0c2VydmUvc3NsdXRpbHMv
cHJlZ2VuZXJhdGVkLnB5CmluZGV4IGZjNDg3ZGYzYWRkLi42NzJhMTA2MzVlZCAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRz
ZXJ2ZS93cHRzZXJ2ZS9zc2x1dGlscy9wcmVnZW5lcmF0ZWQucHkKKysrIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRzZXJ2ZS93cHRzZXJ2ZS9z
c2x1dGlscy9wcmVnZW5lcmF0ZWQucHkKQEAgLTIwLDcgKzIwLDcgQEAgY2xhc3MgUHJlZ2VuZXJh
dGVkU1NMRW52aXJvbm1lbnQob2JqZWN0KToKICAgICAgICAgIiIiUmV0dXJuIHRoZSBrZXkgYW5k
IGNlcnRpZmljYXRlIHBhdGhzIGZvciB0aGUgaG9zdCIiIgogICAgICAgICByZXR1cm4gc2VsZi5f
aG9zdF9rZXlfcGF0aCwgc2VsZi5faG9zdF9jZXJ0X3BhdGgKIAotICAgIGRlZiBjYV9jZXJ0X3Bh
dGgoc2VsZik6CisgICAgZGVmIGNhX2NlcnRfcGF0aChzZWxmLCBob3N0cyk6CiAgICAgICAgICIi
IlJldHVybiB0aGUgY2VydGlmaWNhdGUgcGF0aCBvZiB0aGUgQ0EgdGhhdCBzaWduZWQgdGhlCiAg
ICAgICAgIGhvc3QgY2VydGlmaWNhdGVzLCBvciBOb25lIGlmIHRoYXQgaXNuJ3Qga25vd24iIiIK
ICAgICAgICAgcmV0dXJuIHNlbGYuX2NhX2NlcnRfcGF0aApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRzZXJ2ZS93cHRzZXJ2
ZS9zc2x1dGlscy93M2MtaW1wb3J0LmxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0c2VydmUvd3B0c2VydmUvc3NsdXRpbHMvdzNjLWltcG9y
dC5sb2cKaW5kZXggODc3NWJiYjYwMjMuLjQzODkxZjEyMDM4IDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHNlcnZlL3dwdHNl
cnZlL3NzbHV0aWxzL3czYy1pbXBvcnQubG9nCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0c2VydmUvd3B0c2VydmUvc3NsdXRpbHMvdzNj
LWltcG9ydC5sb2cKQEAgLTE1LDYgKzE1LDEwIEBAIE5vbmUKIC0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogTGlz
dCBvZiBmaWxlczoKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3dwdHNlcnZlL3dwdHNlcnZlL3NzbHV0aWxzL19faW5pdF9fLnB5CisvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRzZXJ2ZS93cHRzZXJ2
ZS9zc2x1dGlscy9fX2luaXRfXy5weWMKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHNlcnZlL3dwdHNlcnZlL3NzbHV0aWxzL2Jhc2UucHkKKy9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHNlcnZl
L3dwdHNlcnZlL3NzbHV0aWxzL2Jhc2UucHljCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRzZXJ2ZS93cHRzZXJ2ZS9zc2x1dGlscy9vcGVuc3Ns
LnB5CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93
cHRzZXJ2ZS93cHRzZXJ2ZS9zc2x1dGlscy9vcGVuc3NsLnB5YwogL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0c2VydmUvd3B0c2VydmUvc3NsdXRp
bHMvcHJlZ2VuZXJhdGVkLnB5CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy93cHRzZXJ2ZS93cHRzZXJ2ZS9zc2x1dGlscy9wcmVnZW5lcmF0ZWQucHlj
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3dwdHNlcnZlL3dwdHNlcnZlL3N0YXNoLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRzZXJ2ZS93cHRzZXJ2ZS9zdGFzaC5weQpp
bmRleCBhZTQ4YTg2MTEyMy4uOGI2ZmQzNGYwMmMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0c2VydmUvd3B0c2VydmUvc3Rh
c2gucHkKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy93cHRzZXJ2ZS93cHRzZXJ2ZS9zdGFzaC5weQpAQCAtNiwyMyArNiwyOSBAQCBpbXBvcnQg
dGhyZWFkaW5nCiBmcm9tIG11bHRpcHJvY2Vzc2luZy5tYW5hZ2VycyBpbXBvcnQgQWNxdWlyZXJQ
cm94eSwgQmFzZU1hbmFnZXIsIERpY3RQcm94eQogZnJvbSBzaXggaW1wb3J0IHRleHRfdHlwZQog
CisKIGNsYXNzIFNlcnZlckRpY3RNYW5hZ2VyKEJhc2VNYW5hZ2VyKToKICAgICBzaGFyZWRfZGF0
YSA9IHt9CiAKKwogZGVmIF9nZXRfc2hhcmVkKCk6CiAgICAgcmV0dXJuIFNlcnZlckRpY3RNYW5h
Z2VyLnNoYXJlZF9kYXRhCiAKKwogU2VydmVyRGljdE1hbmFnZXIucmVnaXN0ZXIoImdldF9kaWN0
IiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhbGxhYmxlPV9nZXRfc2hhcmVkLAogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgcHJveHl0eXBlPURpY3RQcm94eSkKIFNlcnZlckRpY3RN
YW5hZ2VyLnJlZ2lzdGVyKCdMb2NrJywgdGhyZWFkaW5nLkxvY2ssIEFjcXVpcmVyUHJveHkpCiAK
KwogY2xhc3MgQ2xpZW50RGljdE1hbmFnZXIoQmFzZU1hbmFnZXIpOgogICAgIHBhc3MKIAorCiBD
bGllbnREaWN0TWFuYWdlci5yZWdpc3RlcigiZ2V0X2RpY3QiKQogQ2xpZW50RGljdE1hbmFnZXIu
cmVnaXN0ZXIoIkxvY2siKQogCisKIGNsYXNzIFN0YXNoU2VydmVyKG9iamVjdCk6CiAgICAgZGVm
IF9faW5pdF9fKHNlbGYsIGFkZHJlc3M9Tm9uZSwgYXV0aGtleT1Ob25lKToKICAgICAgICAgc2Vs
Zi5hZGRyZXNzID0gYWRkcmVzcwpAQCAtMzcsNiArNDMsNyBAQCBjbGFzcyBTdGFzaFNlcnZlcihv
YmplY3QpOgogICAgICAgICBpZiBzZWxmLm1hbmFnZXIgaXMgbm90IE5vbmU6CiAgICAgICAgICAg
ICBzZWxmLm1hbmFnZXIuc2h1dGRvd24oKQogCisKIGRlZiBsb2FkX2Vudl9jb25maWcoKToKICAg
ICBhZGRyZXNzLCBhdXRoa2V5ID0ganNvbi5sb2Fkcyhvcy5lbnZpcm9uWyJXUFRfU1RBU0hfQ09O
RklHIl0pCiAgICAgaWYgaXNpbnN0YW5jZShhZGRyZXNzLCBsaXN0KToKQEAgLTQ2LDEwICs1Mywx
MiBAQCBkZWYgbG9hZF9lbnZfY29uZmlnKCk6CiAgICAgYXV0aGtleSA9IGJhc2U2NC5iNjRkZWNv
ZGUoYXV0aGtleSkKICAgICByZXR1cm4gYWRkcmVzcywgYXV0aGtleQogCisKIGRlZiBzdG9yZV9l
bnZfY29uZmlnKGFkZHJlc3MsIGF1dGhrZXkpOgogICAgIGF1dGhrZXkgPSBiYXNlNjQuYjY0ZW5j
b2RlKGF1dGhrZXkpCiAgICAgb3MuZW52aXJvblsiV1BUX1NUQVNIX0NPTkZJRyJdID0ganNvbi5k
dW1wcygoYWRkcmVzcywgYXV0aGtleS5kZWNvZGUoImFzY2lpIikpKQogCisKIGRlZiBzdGFydF9z
ZXJ2ZXIoYWRkcmVzcz1Ob25lLCBhdXRoa2V5PU5vbmUpOgogICAgIGlmIGlzaW5zdGFuY2UoYXV0
aGtleSwgdGV4dF90eXBlKToKICAgICAgICAgYXV0aGtleSA9IGF1dGhrZXkuZW5jb2RlKCJhc2Np
aSIpCkBAIC03NSw2ICs4NCw3IEBAIGNsYXNzIExvY2tXcmFwcGVyKG9iamVjdCk6CiAgICAgZGVm
IF9fZXhpdF9fKHNlbGYsICphcmdzLCAqKmt3YXJncyk6CiAgICAgICAgIHNlbGYucmVsZWFzZSgp
CiAKKwogI1RPRE86IENvbnNpZGVyIGV4cGlyaW5nIHZhbHVlcyBhZnRlciBzb21lIGZpeGVkIHRp
bWUgZm9yIGxvbmctcnVubmluZwogI3NlcnZlcnMKIApAQCAtMTA0LDYgKzExNCw3IEBAIGNsYXNz
IFN0YXNoKG9iamVjdCk6CiAKICAgICBfcHJveHkgPSBOb25lCiAgICAgbG9jayA9IE5vbmUKKyAg
ICBfaW5pdGlhbGl6aW5nID0gdGhyZWFkaW5nLkxvY2soKQogCiAgICAgZGVmIF9faW5pdF9fKHNl
bGYsIGRlZmF1bHRfcGF0aCwgYWRkcmVzcz1Ob25lLCBhdXRoa2V5PU5vbmUpOgogICAgICAgICBz
ZWxmLmRlZmF1bHRfcGF0aCA9IGRlZmF1bHRfcGF0aApAQCAtMTE1LDcgKzEyNiwxNiBAQCBjbGFz
cyBTdGFzaChvYmplY3QpOgogICAgICAgICAgICAgU3Rhc2guX3Byb3h5ID0ge30KICAgICAgICAg
ICAgIFN0YXNoLmxvY2sgPSB0aHJlYWRpbmcuTG9jaygpCiAKLSAgICAgICAgaWYgU3Rhc2guX3By
b3h5IGlzIE5vbmU6CisgICAgICAgICMgSW5pdGlhbGl6aW5nIHRoZSBwcm94eSBpbnZvbHZlcyBj
b25uZWN0aW5nIHRvIHRoZSByZW1vdGUgcHJvY2VzcyBhbmQKKyAgICAgICAgIyByZXRyaWV2aW5n
IHR3byBwcm94aWVkIG9iamVjdHMuIFRoaXMgcHJvY2VzcyBpcyBub3QgaW5oZXJlbnRseQorICAg
ICAgICAjIGF0b21pYywgc28gYSBsb2NrIG11c3QgYmUgdXNlZCB0byBtYWtlIGl0IHNvLiBBdG9t
aWNpdHkgZW5zdXJlcyB0aGF0CisgICAgICAgICMgb25seSBvbmUgdGhyZWFkIGF0dGVtcHRzIHRv
IGluaXRpYWxpemUgdGhlIGNvbm5lY3Rpb24gYW5kIHRoYXQgYW55CisgICAgICAgICMgdGhyZWFk
cyBydW5uaW5nIGluIHBhcmFsbGVsIGNvcnJlY3RseSB3YWl0IGZvciBpbml0aWFsaXphdGlvbiB0
byBiZQorICAgICAgICAjIGZ1bGx5IGNvbXBsZXRlLgorICAgICAgICB3aXRoIFN0YXNoLl9pbml0
aWFsaXppbmc6CisgICAgICAgICAgICBpZiBTdGFzaC5sb2NrOgorICAgICAgICAgICAgICAgIHJl
dHVybgorCiAgICAgICAgICAgICBtYW5hZ2VyID0gQ2xpZW50RGljdE1hbmFnZXIoYWRkcmVzcywg
YXV0aGtleSkKICAgICAgICAgICAgIG1hbmFnZXIuY29ubmVjdCgpCiAgICAgICAgICAgICBTdGFz
aC5fcHJveHkgPSBtYW5hZ2VyLmdldF9kaWN0KCkKQEAgLTE2Myw1ICsxODMsNiBAQCBjbGFzcyBT
dGFzaChvYmplY3QpOgogCiAgICAgICAgIHJldHVybiB2YWx1ZQogCisKIGNsYXNzIFN0YXNoRXJy
b3IoRXhjZXB0aW9uKToKICAgICBwYXNzCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHNlcnZlL3dwdHNlcnZlL3V0aWxzLnB5
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRz
ZXJ2ZS93cHRzZXJ2ZS91dGlscy5weQppbmRleCBkMGY4N2ZlYTYwZi4uNjRiMDhhMjdhYTggMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvd3B0c2VydmUvd3B0c2VydmUvdXRpbHMucHkKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRzZXJ2ZS93cHRzZXJ2ZS91dGlscy5weQpA
QCAtMTAwLDYgKzEwMCw3IEBAIGRlZiBpc19iYWRfcG9ydChwb3J0KToKICAgICBdCiAKIGRlZiBn
ZXRfcG9ydChob3N0PScnKToKKyAgICBob3N0ID0gaG9zdCBvciAnMTI3LjAuMC4xJwogICAgIHBv
cnQgPSAwCiAgICAgd2hpbGUgVHJ1ZToKICAgICAgICAgZnJlZV9zb2NrZXQgPSBfb3Blbl9zb2Nr
ZXQoaG9zdCwgMCkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvd3B0c2VydmUvd3B0c2VydmUvdzNjLWltcG9ydC5sb2cgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHNlcnZlL3dw
dHNlcnZlL3czYy1pbXBvcnQubG9nCmluZGV4IDYyMzQyZjkyYzFmLi5kOTg5OWJiYTJmNCAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy93cHRzZXJ2ZS93cHRzZXJ2ZS93M2MtaW1wb3J0LmxvZworKysgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHNlcnZlL3dwdHNlcnZlL3czYy1p
bXBvcnQubG9nCkBAIC0xNSwxNyArMTUsMzEgQEAgTm9uZQogLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiBMaXN0
IG9mIGZpbGVzOgogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvd3B0c2VydmUvd3B0c2VydmUvX19pbml0X18ucHkKKy9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHNlcnZlL3dwdHNlcnZlL19faW5pdF9f
LnB5YwogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
d3B0c2VydmUvd3B0c2VydmUvY29uZmlnLnB5CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRzZXJ2ZS93cHRzZXJ2ZS9jb25maWcucHljCiAvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRzZXJ2ZS93
cHRzZXJ2ZS9jb25zdGFudHMucHkKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3dwdHNlcnZlL3dwdHNlcnZlL2NvbnN0YW50cy5weWMKIC9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHNlcnZlL3dwdHNl
cnZlL2hhbmRsZXJzLnB5CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy93cHRzZXJ2ZS93cHRzZXJ2ZS9oYW5kbGVycy5weWMKIC9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHNlcnZlL3dwdHNlcnZlL2xv
Z2dlci5weQorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvd3B0c2VydmUvd3B0c2VydmUvbG9nZ2VyLnB5YwogL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0c2VydmUvd3B0c2VydmUvcGlwZXMucHkKKy9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHNlcnZl
L3dwdHNlcnZlL3BpcGVzLnB5YwogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvd3B0c2VydmUvd3B0c2VydmUvcmFuZ2VzLnB5CisvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRzZXJ2ZS93cHRzZXJ2ZS9y
YW5nZXMucHljCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy93cHRzZXJ2ZS93cHRzZXJ2ZS9yZXF1ZXN0LnB5CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRzZXJ2ZS93cHRzZXJ2ZS9yZXF1ZXN0LnB5
YwogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0
c2VydmUvd3B0c2VydmUvcmVzcG9uc2UucHkKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHNlcnZlL3dwdHNlcnZlL3Jlc3BvbnNlLnB5YwogL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0c2VydmUv
d3B0c2VydmUvcm91dGVyLnB5CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy93cHRzZXJ2ZS93cHRzZXJ2ZS9yb3V0ZXIucHljCiAvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRzZXJ2ZS93cHRzZXJ2ZS9y
b3V0ZXMucHkKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3dwdHNlcnZlL3dwdHNlcnZlL3JvdXRlcy5weWMKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHNlcnZlL3dwdHNlcnZlL3NlcnZlci5weQor
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0c2Vy
dmUvd3B0c2VydmUvc2VydmVyLnB5YwogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvd3B0c2VydmUvd3B0c2VydmUvc3Rhc2gucHkKKy9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHNlcnZlL3dwdHNlcnZl
L3N0YXNoLnB5YwogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvd3B0c2VydmUvd3B0c2VydmUvdXRpbHMucHkKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHNlcnZlL3dwdHNlcnZlL3V0aWxzLnB5Ywog
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0c2Vy
dmUvd3B0c2VydmUvd3B0c2VydmUucHkKLS0gCjIuMjEuMCAoQXBwbGUgR2l0LTEyMi4yKQoK
</data>
<flag name="review"
          id="400510"
          type_id="1"
          status="+"
          setter="simon.fraser"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>384806</attachid>
            <date>2019-12-04 05:45:28 -0800</date>
            <delta_ts>2019-12-04 07:44:27 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-204728-20191204144442.patch</filename>
            <type>text/plain</type>
            <size>1811708</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUzMDk4CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggY2FmMDZmNjU4YzUyODdmMGQ4N2Ri
M2MyZWI3MDYxZGRiMWFlNjM2NS4uZGZkNTA5NzM3MGNjYjZhNjM5NmQ4ZWY2NDcyODFmZDBkNjQz
M2NiOCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDEyIEBACisyMDE5LTEyLTA0ICB5b3Vlbm4gZmFibGV0ICA8
eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBVcGRhdGUgV1BUIHRvb2xzIGRpcmVjdG9yeQor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA0NzI4CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgU2ltb24gRnJhc2VyLgorCisgICAgICAgICogVGVzdEV4cGVj
dGF0aW9uczoKKwogMjAxOS0xMi0wNCAgeW91ZW5uIGZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+
CiAKICAgICAgICAgZ2V0U3RhdHMoKSBwcm9taXNlIG5ldmVyIHJlamVjdHMgbm9yIHJlc29sdmVz
IHdoZW4gcGVlciBjb25uZWN0aW9uIHN0YXRlIGlzIGNsb3NlZC4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
Q2hhbmdlTG9nCmluZGV4IDQ1ZmNmY2U1MDQwYmFhOWMwNDNiMTAwZjQ5YjZjMDQ4Zjc2ZTE1Y2Eu
LjQ0YzA2NzU5NzdhMDEwNTk0ZDIxMzc3YmE4MjhlYWZmN2VlNmNmMjkgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDE5LTEyLTA0ICBZb3Vlbm4gRmFi
bGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBVcGRhdGUgV1BUIHRvb2xzIGRpcmVj
dG9yeQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA0
NzI4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgU2ltb24gRnJhc2VyLgorCisgICAgICAgICogd2Vi
LXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9jYWNoZS1zdG9yYWdlL3NlcnZpY2V3b3Jr
ZXIvY2FjaGUtYWRkLmh0dHBzLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0t
dGVzdHMvc2VydmljZS13b3JrZXJzL2NhY2hlLXN0b3JhZ2Uvd2luZG93L2NhY2hlLWFkZC5odHRw
cy1leHBlY3RlZC50eHQ6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29y
a2Vycy9jYWNoZS1zdG9yYWdlL3dvcmtlci9jYWNoZS1hZGQuaHR0cHMtZXhwZWN0ZWQudHh0Ogor
ICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy90b29sczogUmVmcmVzaGVkCisKIDIwMTktMTIt
MDMgIFNpbW9uIEZyYXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CiAKICAgICAgICAgVXBk
YXRlIGNzcy9jc3MtdmFsdWVzIFdQVApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvVGVzdEV4cGVj
dGF0aW9ucyBiL0xheW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggOTZlZmM0MTUwZWYx
MjhkNDQzNTBjNWQ0YTY2NjE2ZDRmY2Q3MWRlZi4uODRiNGUxZjhlZjY1NzVmOTZjNzViZDZhODY0
N2VkZjdhZTAxMWM2NSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvVGVzdEV4cGVjdGF0aW9ucwor
KysgYi9MYXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRpb25zCkBAIC0yMjgsNiArMjI4LDEwIEBAIGlt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMveGhyL2V2ZW50LXRpbWVvdXQtb3JkZXIuaHRt
IFsgUGFzcyBGYWlsdXJlIF0KIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2Vydmlj
ZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3VwZGF0ZS1ub3QtYWxsb3dlZC5odHRwcy5odG1sIFsg
UGFzcyBGYWlsdXJlIF0KIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13
b3JrZXJzL3NlcnZpY2Utd29ya2VyL3BlcmZvcm1hbmNlLXRpbWVsaW5lLmh0dHBzLmh0bWwgWyBQ
YXNzIEZhaWx1cmUgXQogCisjIEZhaWx1cmVzIGR1ZSB0byBidW1waW5nIFdQVCB0b29scyByZXBv
c2l0b3J5LgoraW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy94aHIvc2VuZC1hdXRoZW50
aWNhdGlvbi1iYXNpYy1yZXBlYXQtbm8tYXJncy5odG0gWyBQYXNzIEZhaWx1cmUgXQoraW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy94aHIvc2VuZC1hdXRoZW50aWNhdGlvbi1iYXNpYy5o
dG0gWyBQYXNzIEZhaWx1cmUgXQorCiAjIFRoZSB0ZXN0cyBwcmludHMgb3V0IGEgVVVJRCB0aGF0
IGlzIGRpZmZlcmVudCBldmVyeSB0aW1lLgogaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvdXBkYXRlLmh0dHBzLmh0bWwgWyBQYXNz
IEZhaWx1cmUgXQogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9jYWNoZS1zdG9yYWdlL3NlcnZpY2V3b3JrZXIv
Y2FjaGUtYWRkLmh0dHBzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL2NhY2hlLXN0b3JhZ2Uvc2VydmljZXdv
cmtlci9jYWNoZS1hZGQuaHR0cHMtZXhwZWN0ZWQudHh0CmluZGV4IDk4ZTU3OTVmOTI5OGI3MzM4
NTE4NjFhMDVlM2QyOTMxY2ZhMmI4YzYuLjE3MTBjMmI0NWQ2ODRiY2YxZWUyNDFmYzcwY2EwMWNm
ZDlhZmY5NjIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvc2VydmljZS13b3JrZXJzL2NhY2hlLXN0b3JhZ2Uvc2VydmljZXdvcmtlci9jYWNo
ZS1hZGQuaHR0cHMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL2NhY2hlLXN0b3JhZ2Uvc2VydmljZXdv
cmtlci9jYWNoZS1hZGQuaHR0cHMtZXhwZWN0ZWQudHh0CkBAIC0yMCw1ICsyMCw1IEBAIFBBU1Mg
Q2FjaGUuYWRkQWxsIHdpdGggYSBtaXggb2Ygc3VjY2VlZGluZyBhbmQgZmFpbGluZyByZXF1ZXN0
cwogUEFTUyBDYWNoZS5hZGRBbGwgY2FsbGVkIHdpdGggdGhlIHNhbWUgUmVxdWVzdCBvYmplY3Qg
c3BlY2lmaWVkIHR3aWNlIAogUEFTUyBDYWNoZS5hZGRBbGwgc2hvdWxkIHN1Y2NlZWQgd2hlbiBl
bnRyaWVzIGRpZmZlciBieSB2YXJ5IGhlYWRlciAKIFBBU1MgQ2FjaGUuYWRkQWxsIHNob3VsZCBy
ZWplY3Qgd2hlbiBlbnRyaWVzIGFyZSBkdXBsaWNhdGUgYnkgdmFyeSBoZWFkZXIgCi1QQVNTIENh
Y2hlLmFkZEFsbCBzaG91bGQgcmVqZWN0IHdoZW4gb25lIGVudHJ5IGhhcyBhIHZhcnkgaGVhZGVy
IG1hdGNoaW5nIGFub3RoZXIgZW50cnkgCitGQUlMIENhY2hlLmFkZEFsbCBzaG91bGQgcmVqZWN0
IHdoZW4gb25lIGVudHJ5IGhhcyBhIHZhcnkgaGVhZGVyIG1hdGNoaW5nIGFub3RoZXIgZW50cnkg
YXNzZXJ0X3Rocm93czogQ2FjaGUuYWRkQWxsKCkgc2hvdWxkIHJlamVjdCB3aGVuIG9uZSBlbnRy
eSBoYXMgYSB2YXJ5IGhlYWRlciBtYXRjaGluZyBhbiBlYXJsaWVyIGVudHJ5LiBmdW5jdGlvbiAi
ZnVuY3Rpb24gKCkgeyB0aHJvdyBlIH0iIHRocmV3IG9iamVjdCAiVHlwZUVycm9yOiBSZXNwb25z
ZSBpcyBub3QgT0siIHRoYXQgaXMgbm90IGEgRE9NRXhjZXB0aW9uIEludmFsaWRTdGF0ZUVycm9y
OiBwcm9wZXJ0eSAiY29kZSIgaXMgZXF1YWwgdG8gdW5kZWZpbmVkLCBleHBlY3RlZCAxMQogCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Nl
cnZpY2Utd29ya2Vycy9jYWNoZS1zdG9yYWdlL3dpbmRvdy9jYWNoZS1hZGQuaHR0cHMtZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2
aWNlLXdvcmtlcnMvY2FjaGUtc3RvcmFnZS93aW5kb3cvY2FjaGUtYWRkLmh0dHBzLWV4cGVjdGVk
LnR4dAppbmRleCA2MzZjODJmYTViOWI3ZmZlM2Q5OTQwZmZmMjQwNTY1NDRkZTFhNzAyLi5jZGEy
YTg2NjI0NDEwMjg3OWI2YWZjMTc1ODlmNGFhZGU4NzNlYWIwIDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9jYWNo
ZS1zdG9yYWdlL3dpbmRvdy9jYWNoZS1hZGQuaHR0cHMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL2Nh
Y2hlLXN0b3JhZ2Uvd2luZG93L2NhY2hlLWFkZC5odHRwcy1leHBlY3RlZC50eHQKQEAgLTE5LDUg
KzE5LDUgQEAgUEFTUyBDYWNoZS5hZGRBbGwgd2l0aCBhIG1peCBvZiBzdWNjZWVkaW5nIGFuZCBm
YWlsaW5nIHJlcXVlc3RzCiBQQVNTIENhY2hlLmFkZEFsbCBjYWxsZWQgd2l0aCB0aGUgc2FtZSBS
ZXF1ZXN0IG9iamVjdCBzcGVjaWZpZWQgdHdpY2UgCiBQQVNTIENhY2hlLmFkZEFsbCBzaG91bGQg
c3VjY2VlZCB3aGVuIGVudHJpZXMgZGlmZmVyIGJ5IHZhcnkgaGVhZGVyIAogUEFTUyBDYWNoZS5h
ZGRBbGwgc2hvdWxkIHJlamVjdCB3aGVuIGVudHJpZXMgYXJlIGR1cGxpY2F0ZSBieSB2YXJ5IGhl
YWRlciAKLVBBU1MgQ2FjaGUuYWRkQWxsIHNob3VsZCByZWplY3Qgd2hlbiBvbmUgZW50cnkgaGFz
IGEgdmFyeSBoZWFkZXIgbWF0Y2hpbmcgYW5vdGhlciBlbnRyeSAKK0ZBSUwgQ2FjaGUuYWRkQWxs
IHNob3VsZCByZWplY3Qgd2hlbiBvbmUgZW50cnkgaGFzIGEgdmFyeSBoZWFkZXIgbWF0Y2hpbmcg
YW5vdGhlciBlbnRyeSBhc3NlcnRfdGhyb3dzOiBDYWNoZS5hZGRBbGwoKSBzaG91bGQgcmVqZWN0
IHdoZW4gb25lIGVudHJ5IGhhcyBhIHZhcnkgaGVhZGVyIG1hdGNoaW5nIGFuIGVhcmxpZXIgZW50
cnkuIGZ1bmN0aW9uICJmdW5jdGlvbiAoKSB7IHRocm93IGUgfSIgdGhyZXcgb2JqZWN0ICJUeXBl
RXJyb3I6IFJlc3BvbnNlIGlzIG5vdCBPSyIgdGhhdCBpcyBub3QgYSBET01FeGNlcHRpb24gSW52
YWxpZFN0YXRlRXJyb3I6IHByb3BlcnR5ICJjb2RlIiBpcyBlcXVhbCB0byB1bmRlZmluZWQsIGV4
cGVjdGVkIDExCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL2NhY2hlLXN0b3JhZ2Uvd29ya2VyL2NhY2hlLWFk
ZC5odHRwcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9jYWNoZS1zdG9yYWdlL3dvcmtlci9jYWNoZS1hZGQu
aHR0cHMtZXhwZWN0ZWQudHh0CmluZGV4IDYzNmM4MmZhNWI5YjdmZmUzZDk5NDBmZmYyNDA1NjU0
NGRlMWE3MDIuLmNkYTJhODY2MjQ0MTAyODc5YjZhZmMxNzU4OWY0YWFkZTg3M2VhYjAgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2Vydmlj
ZS13b3JrZXJzL2NhY2hlLXN0b3JhZ2Uvd29ya2VyL2NhY2hlLWFkZC5odHRwcy1leHBlY3RlZC50
eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2
aWNlLXdvcmtlcnMvY2FjaGUtc3RvcmFnZS93b3JrZXIvY2FjaGUtYWRkLmh0dHBzLWV4cGVjdGVk
LnR4dApAQCAtMTksNSArMTksNSBAQCBQQVNTIENhY2hlLmFkZEFsbCB3aXRoIGEgbWl4IG9mIHN1
Y2NlZWRpbmcgYW5kIGZhaWxpbmcgcmVxdWVzdHMKIFBBU1MgQ2FjaGUuYWRkQWxsIGNhbGxlZCB3
aXRoIHRoZSBzYW1lIFJlcXVlc3Qgb2JqZWN0IHNwZWNpZmllZCB0d2ljZSAKIFBBU1MgQ2FjaGUu
YWRkQWxsIHNob3VsZCBzdWNjZWVkIHdoZW4gZW50cmllcyBkaWZmZXIgYnkgdmFyeSBoZWFkZXIg
CiBQQVNTIENhY2hlLmFkZEFsbCBzaG91bGQgcmVqZWN0IHdoZW4gZW50cmllcyBhcmUgZHVwbGlj
YXRlIGJ5IHZhcnkgaGVhZGVyIAotUEFTUyBDYWNoZS5hZGRBbGwgc2hvdWxkIHJlamVjdCB3aGVu
IG9uZSBlbnRyeSBoYXMgYSB2YXJ5IGhlYWRlciBtYXRjaGluZyBhbm90aGVyIGVudHJ5IAorRkFJ
TCBDYWNoZS5hZGRBbGwgc2hvdWxkIHJlamVjdCB3aGVuIG9uZSBlbnRyeSBoYXMgYSB2YXJ5IGhl
YWRlciBtYXRjaGluZyBhbm90aGVyIGVudHJ5IGFzc2VydF90aHJvd3M6IENhY2hlLmFkZEFsbCgp
IHNob3VsZCByZWplY3Qgd2hlbiBvbmUgZW50cnkgaGFzIGEgdmFyeSBoZWFkZXIgbWF0Y2hpbmcg
YW4gZWFybGllciBlbnRyeS4gZnVuY3Rpb24gImZ1bmN0aW9uICgpIHsgdGhyb3cgZSB9IiB0aHJl
dyBvYmplY3QgIlR5cGVFcnJvcjogUmVzcG9uc2UgaXMgbm90IE9LIiB0aGF0IGlzIG5vdCBhIERP
TUV4Y2VwdGlvbiBJbnZhbGlkU3RhdGVFcnJvcjogcHJvcGVydHkgImNvZGUiIGlzIGVxdWFsIHRv
IHVuZGVmaW5lZCwgZXhwZWN0ZWQgMTEKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9NRVRBLnltbCBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvTUVUQS55bWwKaW5kZXggOGY5ODhm
OTlhODJlMDk5MWMyMGNiODE2YmU2Mzc4YTk3MzAyODczMy4uN2NjMjJhMjhjMjBjMDFmMmM2MDJi
NmI3OTgxNGZjNjg0NDA1NDMwNiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9NRVRBLnltbAorKysgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL01FVEEueW1sCkBAIC0xLDMgKzEsNCBA
QAogc3VnZ2VzdGVkX3Jldmlld2VyczoKICAgLSBqZ3JhaGFtCiAgIC0gZ3NuZWRkZXJzCisgIC0g
anVnZ2xpbm1pa2UKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvYXBwdmV5b3IueW1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9hcHB2ZXlvci55bWwKZGVsZXRlZCBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IGIwY2VkZDVjNzhmYmJlYmU4ZGMwNjljMmZlNTFkZjRkOWQ1OTlmOTAuLjAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9hcHB2ZXlvci55bWwKKysrIC9k
ZXYvbnVsbApAQCAtMSwzMiArMCwwIEBACi1lbnZpcm9ubWVudDoKLSAgZ2xvYmFsOgotICAgIEhZ
UE9USEVTSVNfUFJPRklMRTogY2kKLSAgbWF0cml4OgotICAgIC0gUFlUSE9OOiAnQzpcXFB5dGhv
bjI3JwotICAgIC0gUFlUSE9OOiAnQzpcXFB5dGhvbjM1JwotICAgIC0gUFlUSE9OOiAnQzpcXFB5
dGhvbjM2JwotCi0jIE5lZWRlZCB0byBtYWtlIHB5LnRlc3QgYmVsaWV2ZSBvdXIgdG9wIGxldmVs
IGNhbiBiZSBpbXBvcnRlZCAod2UKLSMgb3RoZXJ3aXNlIGVuZCB1cCBpbiBhIHdwdC10b29scyBk
aXJlY3RvcnksIGFuZCBvZiBjb3Vyc2UgeW91IGNhbm5vdAotIyBpbXBvcnQgYSBuYW1lIGluY2x1
ZGluZyBhIGh5cGhlbiBpbiBQeXRob24sIHNvIGl0IGlnbm9yZXMgdGhlIGZhY3QKLSMgd2UgaGF2
ZSBhIF9faW5pdF9fLnB5IGF0IHRoZSB0b3AgbGV2ZWwpLgotY2xvbmVfZm9sZGVyOiAnQzpccHJv
amVjdHNcd3B0dG9vbHMnCi0KLWluaXQ6Ci0gIC0gJ2dpdCBjb25maWcgLS1nbG9iYWwgY29yZS5h
dXRvY3JsZiB0cnVlJwotCi1pbnN0YWxsOgotICAtICdybSAuZ2l0XGluZGV4JwotICAtICdnaXQg
cmVzZXQgLS1oYXJkJwotICAtICdTRVQgUEFUSD0lUFlUSE9OJTslUFlUSE9OJVxcU2NyaXB0czsl
UEFUSCUnCi0gIC0gJ2dpdCBzdWJtb2R1bGUgdXBkYXRlIC0taW5pdCAtLXJlY3Vyc2l2ZScKLSAg
LSAncHl0aG9uLmV4ZSAtbSBwaXAgaW5zdGFsbCB0b3ggY29kZWNvdicKLQotYnVpbGQ6IG9mZgot
Ci10ZXN0X3NjcmlwdDoKLSAgLSAndG94IC1lIHB5JwotCi1vbl9zdWNjZXNzOgotICAtICdjb3Zl
cmFnZSBjb21iaW5lJwotICAtICdjb2RlY292JwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9jZXJ0cy9SRUFETUUubWQgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2NlcnRzL1JFQURN
RS5tZAppbmRleCBmNWFlNzQxM2FmZWMzYjY5YmU5NTdkYTI0YzY2MGFiZDk2OTNjNjdlLi5mZDc1
YzIyZGRmZmVkMmU3MDBmNWY0NGMyYjU1MmNjMzUyNmQ0NjBmIDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2NlcnRzL1JFQURNRS5t
ZAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L2NlcnRzL1JFQURNRS5tZApAQCAtMSw3ICsxLDgxIEBACi1UbyBlbmFibGUgaHR0cHM6Ly93ZWIt
cGxhdGZvcm0udGVzdDo4NDQzLywgYWRkIGNhY2VydC5wZW0gdG8geW91ciBicm93c2VyIGFzIENl
cnRpZmljYXRlIEF1dGhvcml0eS4KKyMgV1BUIFRlc3QgQ2VydGlmaWNhdGVzCisKK1RoZSB3ZWIt
cGxhdGZvcm0tdGVzdHMgcHJvamVjdCBtYWludGFpbnMgYSBzZXQgb2YgU1NMIGNlcnRpZmljYXRl
cyB0byBhbGxvdworY29udHJpYnV0b3JzIHRvIGV4ZWN1dGUgdGVzdHMgcmVxdWlyaW5nIEhUVFBT
IGxvY2FsbHkuCisKKyMjIFRydXN0aW5nIFJvb3QgQ0EKKworVG8gcHJldmVudCBicm93c2VyIFNT
TCB3YXJuaW5ncyB3aGVuIHJ1bm5pbmcgSFRUUFMgdGVzdHMgbG9jYWxseSwgdGhlCit3ZWItcGxh
dGZvcm0tdGVzdHMgUm9vdCBDQSBmaWxlIGBjYWNlcnQucGVtYCBpbiB0aGUgYHRvb2xzL2NlcnRz
L2AgZGlyZWN0b3J5CittdXN0IGJlIGFkZGVkIGFzIGEgdHJ1c3RlZCBjZXJ0aWZpY2F0ZSBpbiB5
b3VyIE9TL2Jyb3dzZXIuCiAKIEZvciBGaXJlZm94LCBnbyB0byBhYm91dDpwcmVmZXJlbmNlcyBh
bmQgc2VhcmNoIGZvciAiY2VydGlmaWNhdGVzIi4KIAotRm9yIGJyb3dzZXJzIHRoYXQgdXNlIHRo
ZSBDZXJ0aWZpY2F0ZSBBdXRob3JpdGllcyBvZiB0aGUgdW5kZXJseWluZyBPUywgc3VjaCBhcyBD
aHJvbWUgYW5kIFNhZmFyaSwKLXlvdSBuZWVkIHRvIGFkanVzdCB0aGUgT1MuIEZvciBtYWNPUywg
Z28gdG8gS2V5Y2hhaW4gQWNjZXNzIGFuZCBhZGQgdGhlIGNlcnRpZmljYXRlIHVuZGVyCi0qKmxv
Z2luKiouCitGb3IgYnJvd3NlcnMgdGhhdCB1c2UgdGhlIENlcnRpZmljYXRlIEF1dGhvcml0aWVz
IG9mIHRoZSB1bmRlcmx5aW5nIE9TLCBzdWNoIGFzCitDaHJvbWUgYW5kIFNhZmFyaSwgeW91IG5l
ZWQgdG8gYWRqdXN0IHRoZSBPUy4gRm9yIG1hY09TLCBnbyB0byBLZXljaGFpbiBBY2Nlc3MKK2Fu
ZCBhZGQgdGhlIGNlcnRpZmljYXRlIHVuZGVyICoqbG9naW4qKi4KKworKipOT1RFKio6IFRoZSBD
QSBzaG91bGQgbm90IGJlIGluc3RhbGxlZCBpbiBhbnkgYnJvd3NlciBwcm9maWxlIHVzZWQKK291
dHNpZGUgb2YgdGVzdHMsIHNpbmNlIGl0IG1heSBiZSB1c2VkIHRvIGdlbmVyYXRlIGZha2UKK2Nl
cnRpZmljYXRlcy4gRm9yIGJyb3dzZXJzIHRoYXQgdXNlIHRoZSBPUyBjZXJ0aWZpY2F0ZSBzdG9y
ZSwgdGVzdHMKK3Nob3VsZCB0aGVyZWZvcmUgbm90IGJlIHJ1biBtYW51YWxseSBvdXRzaWRlIGEg
ZGVkaWNhdGVkIE9TIGluc3RhbmNlCisoZS5nLiBhIFZNKS4gVG8gYXZvaWQgdGhpcyBwcm9ibGVt
IHdoZW4gcnVubmluZyB0ZXN0cyBpbiBDaHJvbWUgb3IKK0ZpcmVmb3gsIHVzZSBgd3B0IHJ1bmAs
IHdoaWNoIGRpc2FibGVzIGNlcnRpZmljYXRlIGNoZWNrcyBhbmQgdGhlcmVmb3JlCitkb2Vzbid0
IHJlcXVpcmUgdGhlIHJvb3QgQ0EgdG8gYmUgdHJ1c3RlZC4KKworIyMgUmVnZW5lcmF0aW5nIGNl
cnRpZmljYXRlcworCitJZiB5b3Ugd2lzaCB0byBnZW5lcmF0ZSBuZXcgY2VydGlmaWNhdGVzIGZv
ciBhbnkgcmVhc29uLCBpdCdzIHBvc3NpYmxlIHRvIHVzZQorT3BlblNTTCB3aGVuIHN0YXJ0aW5n
IHRoZSBzZXJ2ZXIsIG9yIHN0YXJ0aW5nIGEgdGVzdCBydW4sIGJ5IHByb3ZpZGluZyB0aGUKK2At
LXNzbC10eXBlPW9wZW5zc2xgIGFyZ3VtZW50IHRvIHRoZSBgd3B0IHNlcnZlYCBvciBgd3B0IHJ1
bmAgY29tbWFuZHMuCisKK0lmIHlvdSBpbnN0YWxsZWQgT3BlblNTTCBpbiBzdWNoIGEgd2F5IHRo
YXQgcnVubmluZyBgb3BlbnNzbGAgYXQgYQorY29tbWFuZCBsaW5lIGRvZXNuJ3Qgd29yaywgeW91
IGFsc28gbmVlZCB0byBhZGp1c3QgdGhlIHBhdGggdG8gdGhlCitPcGVuU1NMIGJpbmFyeS4gVGhp
cyBjYW4gYmUgZG9uZSBieSBhZGRpbmcgYSBzZWN0aW9uIHRvIGBjb25maWcuanNvbmAKK2xpa2U6
CisKK2BgYAorInNzbCI6IHsib3BlbnNzbCI6IHsiYmluYXJ5IjogIi9wYXRoL3RvL29wZW5zc2wi
fX0KK2BgYAorCitPbiBXaW5kb3dzIHVzaW5nIE9wZW5TU0wgdHlwaWNhbGx5IHJlcXVpcmVzIGlu
c3RhbGxpbmcgYW4gT3BlblNTTCBkaXN0cmlidXRpb24uCitbU2hpbmluZyBMaWdodF0oaHR0cHM6
Ly9zbHByb3dlYi5jb20vcHJvZHVjdHMvV2luMzJPcGVuU1NMLmh0bWwpCitwcm92aWRlIGEgY29u
dmVuaWVudCBpbnN0YWxsZXIgdGhhdCBpcyBrbm93biB0byB3b3JrLCBidXQgcmVxdWlyZXMgYQor
bGl0dGxlIGV4dHJhIHNldHVwLCBpLmUuOgorCitSdW4gdGhlIGluc3RhbGxlciBmb3IgV2luMzJf
T3BlblNTTF92MS4xLjBiICgzME1CKS4gRHVyaW5nIGluc3RhbGxhdGlvbiwKK2NoYW5nZSB0aGUg
ZGVmYXVsdCBsb2NhdGlvbiBmb3Igd2hlcmUgdG8gQ29weSBPcGVuU1NMIERsbHMgZnJvbSB0aGUK
K1N5c3RlbSBkaXJlY3RvcnkgdG8gdGhlIC9iaW4gZGlyZWN0b3J5LgorCitBZnRlciBpbnN0YWxs
YXRpb24sIGVuc3VyZSB0aGF0IHRoZSBwYXRoIHRvIE9wZW5TU0wgKHR5cGljYWxseSwKK3RoaXMg
d2lsbCBiZSBgQzpcT3BlblNTTC1XaW4zMlxiaW5gKSBpcyBpbiB5b3VyIGAlUGF0aCVgCitbRW52
aXJvbm1lbnQgVmFyaWFibGVdKGh0dHA6Ly93d3cuY29tcHV0ZXJob3BlLmNvbS9pc3N1ZXMvY2gw
MDA1NDkuaHRtKS4KK0lmIHlvdSBmb3JnZXQgdG8gZG8gdGhpcyBwYXJ0LCB5b3Ugd2lsbCBtb3N0
IGxpa2VseSBzZWUgYSAnRmlsZSBOb3QgRm91bmQnCitlcnJvciB3aGVuIHlvdSBzdGFydCB3cHRz
ZXJ2ZS4KKworRmluYWxseSwgc2V0IHRoZSBwYXRoIHZhbHVlIGluIHRoZSBzZXJ2ZXIgY29uZmln
dXJhdGlvbiBmaWxlIHRvIHRoZQorZGVmYXVsdCBPcGVuU1NMIGNvbmZpZ3VyYXRpb24gZmlsZSBs
b2NhdGlvbi4gVG8gZG8gdGhpcywgY3JlYXRlIGEgZmlsZQorY2FsbGVkIGBjb25maWcuanNvbmAu
ICBUaGVuIGFkZCB0aGUgT3BlblNTTCBjb25maWd1cmF0aW9uIGJlbG93LAorZW5zdXJpbmcgdGhh
dCB0aGUga2V5IGBzc2wvb3BlbnNzbC9iYXNlX2NvbmZfcGF0aGAgaGFzIGEgdmFsdWUgdGhhdCBp
cwordGhlIHBhdGggdG8gdGhlIE9wZW5TU0wgY29uZmlnIGZpbGUgKHR5cGljYWxseSB0aGlzIHdp
bGwgYmUKK2BDOlxcT3BlblNTTC1XaW4zMlxcYmluXFxvcGVuc3NsLmNmZ2ApOgorCitgYGAKK3sK
KyAgInNzbCI6IHsKKyAgICAidHlwZSI6ICJvcGVuc3NsIiwKKyAgICAiZW5jcnlwdF9hZnRlcl9j
b25uZWN0IjogZmFsc2UsCisgICAgIm9wZW5zc2wiOiB7CisgICAgICAib3BlbnNzbF9iaW5hcnki
OiAib3BlbnNzbCIsCisgICAgICAiYmFzZV9wYXRoOiAiX2NlcnRzIiwKKyAgICAgICJmb3JjZV9y
ZWdlbmVyYXRlIjogZmFsc2UsCisgICAgICAiYmFzZV9jb25mX3BhdGgiOiAiQzpcXE9wZW5TU0wt
V2luMzJcXGJpblxcb3BlbnNzbC5jZmciCisgICAgfSwKKyAgfSwKK30KK2BgYAorCisjIyMgUmVn
ZW5lcmF0aW5nIHRoZSBwcmVnZW5lcmF0ZWQgY2VydGlmaWNhdGVzCisKK0Zyb20gdGhlIHJvb3Qs
IHJ1biBgLi93cHQgc2VydmUgLS1jb25maWcgdG9vbHMvY2VydHMvY29uZmlnLmpzb25gIGFuZCB0
ZXJtaW5hdGUKK2l0IGFmdGVyIGl0IGhhcyBzdGFydGVkIHVwLgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9jZXJ0cy9jYWNlcnQu
a2V5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9j
ZXJ0cy9jYWNlcnQua2V5CmluZGV4IDU4YjVmZjc1Njg0YTMwNzZhYmQzN2YxMzVjZjI0YTY1NGEx
NzU5MjkuLjFhMTIxZGZhYzk1MmRmZTg4ODZiMWI1ZTQxZTdjNzMxMWQ1ZjBiMzIgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvY2Vy
dHMvY2FjZXJ0LmtleQorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL2NlcnRzL2NhY2VydC5rZXkKQEAgLTEsMzAgKzEsMzAgQEAKIC0tLS0tQkVH
SU4gRU5DUllQVEVEIFBSSVZBVEUgS0VZLS0tLS0KLU1JSUZEakJBQmdrcWhraUc5dzBCQlEwd016
QWJCZ2txaGtpRzl3MEJCUXd3RGdRSWI5RVM3aDZZR0JjQ0FnZ0EKLU1CUUdDQ3FHU0liM0RRTUhC
QWkyWlZMZ3ExWHZhZ1NDQk1qQW1HRVZ2andYdkYwMHZldVFtSnNtY2pWSEIvcVAKLVZxU1hqQ1E5
NG9yWmI4OVVmRm5QTzl6WGR2TFd4cndiNVdQNmJiUXYrU2g0aHRFeFhDRDVYWmkxQXpXTkN5YmUK
LWRhMHZ2UUdnamR6VWgyZkNyRzRLN0owdzIwbHJZZ3czSFZTai9XdG1kYmRaRmRvWCtCZ1hyeGNx
a0UzTTVvcFoKLTNVRDN5SVFlWFN4VWtoM2l2Nnp6WmFXdWp4akRJMkpwd3hSbU1WYnJyOE9lQnJL
SnNxQjJEbkttcStlbW12RUYKLWlYVE4zV3cvQWo2R0lxZlBaOGpwVmR3Y1ZONVFwZUhBaDdiMmxz
enQ3R0VPR2NCaHV0UHE0QXF5OFBJaURSODAKLXNVWUk3VjhPWG0rWTQ1RG5ma3Zzb2daRWlmT2lV
clEyVSthR0R1K1p0ODg2NjF3VnpqcSt2b0psejhFYUlQQ0UKLUIvTlMyU2dOcUkyL0RyakVFZWNu
NmhqZ0hXSVVCd09mZU5vU2kxVHJpNktaRnl4RzI2TEUvVjhDZDUweW9keDkKLXBCZ0Z4ZENibVlM
ZVJjVmVYVzJidTBaTWpQZGRSbFI1TUhmcmtNNVpBemU3blJ4b2l5V25CL1U4cFBmK2JRdngKLUs0
UDlLY3dDT2VIaWdrYUNZWktxN25tWnlFeTRrbTg5ekl1Z1QvWVdoTVd5Vnd5bFRwYWdhaWlKd1lM
anVnOG4KLUNiRlpXQWtPUkJJbDJnL1lDdVRCVUp0QzJJV1g4a3crbllWd3FCc3pwWnlDNm5iaGEy
VW1oUURmTUFvd1FBNXYKLW4xTG5WOEk2Zjd1NkhpZGJCOFdYMlVab2gwM0E0YmVDQnorZHEyVmFV
cXVMVEw0S1FUSXorNnJ3N25FeXNybkgKLVRJYjhTbHdzWUFsenp3eXlNOWRTV3Q3aVFlTmptSDd6
TDBNb3pNczNMS0hJcnNXaTdaWmg4QlVZblQydktkTlYKLTJaTE9NY1IwdFlWbVZaOHVZa1I5a255
L2ZiWmNLTjU0eFNjb2hBMlVYMjYxVytzV2lFZ04rUmFCc1E3OXBGZ2kKLXZZbGRmamFHTlN2ZnRY
YTU5MHhuMnRsUzYvc3VCNU14aVc1ZzNQdUJnNVh0Vlo5NWwwZjFuMzc2WGg0MXNKdjgKLVlIckN0
RkhPbFNwREpVTEdpWFZoL3dYQm1TN3FKOERoblVVRzY5OUVkbHNGZjZRZzIyV0IzQVpSdkVKZFlD
NHoKLVA4VytqWjE1TlREYkhnM0h2Ny9DRllWemJYdjJ3MGpraXFRZ0RGL3djNnQvRWRMRCsyaHpj
TituSkdqdHhaYm4KLXhqYlhjZzk4Q1VNVStkYy9hRDRONDVLOWU5clBnMytpWkx3dnNSdnd4K01z
em1neHhQdjA1cE55Uk83UlZrOHIKLWdreXlwOS9DSkZtZSs0bkZLVWMwZFV5MnlOWFp0a2xUWDBY
S20vWU5LaW42dVVNbElBcklhNTRDZnZ0OVFzbFYKLWlEK1N4VTFaSG16d0tUODIrNVplSVJMTld2
RlYvOUU0bkQrQlRhZ0syRmR3bnN1MVMyazdJdEQ5bEsvY0JQR1MKLTB0ejFIV3Y0QXVqM3dNUFpr
bHAzU1FsdU9sNmVBSVZxcUk5R2FYL2Q0MkRjdEJRV0xUYTI3WWliV3lOSWN3N28KLTNOOEdEUkVN
YXdUQmREUndsWjNvVCt5aUdMWDFjOGRzMm8wLzRJY0psT2tEb3hYRXJtZGxabzlvVmU2ejRSN2cK
LTYyeVI1M2F0VlRMb1VuQWp4SFh4MGJKaXlheXY5WTN3ak9FdnVodXFkZDlGK0hPaFR0QUhyL0JK
UU5oRWsrejgKLTUzMUNaVEpqYjFwMTFQYk90SEdWMkllQjBTODJteGtrWFJ5a0VYT2I4OVpwREhO
UmlNaW5UaFJrb0NtdVJJOXIKLWRUaUVTOUIwMnlNUHhKM3NMUXlEeENvUzVtd2ZjQXFLVGVLK3lD
dlR2QnkrdDV0dzYzRGJXbE1wLzdBaHk2NUsKLXJXTUhkd3F3Zm9CK1pZdzVzWVpkUHZ1QlZBVDAx
STJKYk9xWDM2UmFjUXVsdEZuczJPaW54T0pIYTFIanRYeVMKLWNQVkVrTWE3Y2kzWW05ajVSUU5M
VnNnSmU3WUs5SGl4WDVIalFGQW93QUgycFhaNXBLSklKWXhQSVVLdFpsc3oKLXFiTT0KK01JSUZI
ekJKQmdrcWhraUc5dzBCQlEwd1BEQWJCZ2txaGtpRzl3MEJCUXd3RGdRSW1pbkhUemtYaHJzQ0Fn
Z0EKK01CMEdDV0NHU0FGbEF3UUJLZ1FRWFZ3SmNxV3plNkEzVll1QVMwQlBnd1NDQk5DUnR2cm9C
NnFyb1FsRjU4SEUKKzVTSkhGL2pRUkpSeGYwNTFscnEramZVeE03a1p1Y05OK215VjJ6aUxvZ2E2
T1FNNTc5RDh2eTh0cWtyTHBuc1QKK2NYa2dIdXd0QkpGNDd3MVlBUEdHQVJlM0tzdi8yQzlzVVZj
UHZtblZyelNNWDg2RXNlcmZmcU0zemZ3WjJIM1MKK2p4VERTeUl2SlVVKzRYZnhyV2VnVGlRUVBO
cUR5TGZPNWRCZmF0VDJ6dFhDbXUzQkZpcHVoR0Zwd3dDSmlyS3IKKzF4YjZYUEV1VDBQQ3pUTnBl
U1VScFhGS0hNRE1rY2pPa05BVXlnSUV3K0xnN2V0VmZMY3NnQnV6RUEzUld3ZjMKK09NWTFtVEJK
bHZ4NnpaeGRYN2EwUW14ZXJVRGtEUzlZWUFFR1NGYStGeDZjR1c1UHllZWY5eHRsSHhaSGkrcG0K
K1R4Q3djdkp5WHFlRDRnV20zczFnd09qaTVXbVh2bzJFaXJjeGZTS2s4VFV3YXB4ZkNZUWJPalFJ
UGFIbkVHb2EKK0NRaFNFZ0RYNXVmd3NYSjkvcFNQNmtqVyt5K2YwZ25oSFZ1S0pLc09CbWpnNmlx
d25xRWh3K3VORldLS2wvTW8KK1RGVDdDcmF5SlR2bys5VWRRVEpWOU1CQXNNVVFTN2QrSEg5a05P
QW4vaGZtRXp6R1VLVlRaMHpJZDBmS0gxM3AKK1Rub1lnTVlibTJVcm4wTlhCRk84UnZ6WTNLcEt5
UmhNY09MS3hrUFZVaktVQTVCdUF2NnJjdk1mbEk2SG41d1UKK3FQTSt1RUNTZ2RPbk5lSW1pMUZm
K2NXOGRUR0dSYitpaGErRW5BQm9YM3dSNU92emdDWUhlRU5KYjMyRlVvVnMKK0lEMlQ1TVp0UU5B
cmtpcy94V1o3SnlQYm1zUW8yd3lpRkxhc1g4V2doKzhNZ0Z4b2xwdmpsWDMvUWRUVEpxRWMKK3Jv
ZlZHT1BPbWZvSG8zZVlOSk9sTGJhSlRESWU4T3JLNDlQSWV1MWdtOHpxQjJXWXFtRi8zQVl5NElB
SXdVWXUKK3JiUHdVQzlIeWNlUlBTWWVQTTlXZjF4TTJwcm9LM25tcDZhcGRIQ1JOamJkNDY4OUVM
bUI5MGIyYXc2TkZpYW0KKzN0YUtQbUZMYi92dDJZeGdxT3RhZ1ByVGxjMVFMSEJLcnNucGcvQmhj
Qmp1cHFSS0dGbVhDSnppUElhREt2QXMKK2p0ZzRLRG84ak5JeG13UUF3RVY0K2FIMGhoTXVteGE4
eWFYb0MvM0c2SnhEMnNkb3JhT3ArdnJUempVTWtJb2MKK3hMcVdsOEdIVkxGMDlmWko0U3RKZklX
SU9tbXBpY1N4VzF2RElDYVp1VStpUHdsTk96RjdzZVBSa2l4YmFySHIKK2lxVGxMRy8vK0h1cS9u
OUlSeGh6bVNPdXI2M1dNWEZSeTBzS1c1Vyt1UTl4c25WOFNkandSbUFHTHRuWkhxNFkKK05PQ1Ev
K3lPUmw0eXhrUHZWMDFIeWtBbDRDUnRQQkdSKzRaQzVOS2hweWhKYnU2V2Nxd2lYeUFlaFUvY1Bn
TCsKK2g4TndFb3lQK09IcnZFWWR5NG9jQm5KcS80MzZXd3pmV2lzOG5JRzRiU2xEM0RTRWdKRi9R
VW1xNGkvRVVxL0EKK0Q2U2Z6YkZwUEd0VGozS1o2RDhEUHJ3V0c2OE9DRnNxUlc5WUV2VUlLOEpU
MjY1Qk4zTXpJNWkwLytrNENkQWcKK2FTYWlDOTdxZzdxSmFWTTliOUVIc2NVWFIvZmVGeHZPNVFr
a2tZNUNUVTNCeGIwczFJNFJ3Mk1Zb0FkTUd0YkEKKzZtZHptUlZZb1J2OU5NZHpMNnpPVG9QVTZv
T2c2bWJqSGdaUWdOZDd3OEd0VEZXK3Nmc2xMT1hYQzhlcnpiSGwKK0J5UUpHY0ZHdEtUQlVEKzdW
SFpocHdNN2JQT2J0enlBMnIwVWJTMVF4MEl6bnZ1YmRGVmNYeUU3ZElqVzdjQWcKK0liQnpLZWlF
UndwdTNyTXEyYllWVzNEQTMzVmxyVGZwalh1amhIdjFpWDE1aTZxc1dkN090Wnc2eDdUY2NIMVoK
K2pkbWg5WEI5eER5ZG5zczN1OUR3R1JFTVlDOVRkUFpZL251aTZsZ0Nqak9oYVRhdW5NdWlnRkJN
V1VCa0RsSWIKK3VqdStBdHYrUFNCVDlEbVR5VFFHaFBaUkl3PT0KIC0tLS0tRU5EIEVOQ1JZUFRF
RCBQUklWQVRFIEtFWS0tLS0tCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2NlcnRzL2NhY2VydC5wZW0gYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2NlcnRzL2NhY2VydC5wZW0KaW5k
ZXggMTU2ZGU5NzEwNTRkYjk2Zjg2NzQ5MzFiNDNhNzk0YzE5M2JkZmY0OS4uZTFiNWFkZDU0ZTc5
N2RiMWM2YzFkM2VkYTk2MWFmM2U1NGJjN2E3NyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9jZXJ0cy9jYWNlcnQucGVtCisrKyBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvY2VydHMv
Y2FjZXJ0LnBlbQpAQCAtMSw4MyArMSwxMjUgQEAKLUNlcnRpZmljYXRlOgotICAgIERhdGE6Ci0g
ICAgICAgIFZlcnNpb246IDMgKDB4MikKLSAgICAgICAgU2VyaWFsIE51bWJlcjogNzUzNTYwICgw
eGI3Zjk4KQotICAgIFNpZ25hdHVyZSBBbGdvcml0aG06IHNoYTI1NldpdGhSU0FFbmNyeXB0aW9u
Ci0gICAgICAgIElzc3VlcjogQ049d2ViLXBsYXRmb3JtLXRlc3RzCi0gICAgICAgIFZhbGlkaXR5
Ci0gICAgICAgICAgICBOb3QgQmVmb3JlOiBKdWwgMTMgMTI6NTk6MTIgMjAxOCBHTVQKLSAgICAg
ICAgICAgIE5vdCBBZnRlciA6IEp1bCAxMCAxMjo1OToxMiAyMDI4IEdNVAotICAgICAgICBTdWJq
ZWN0OiBDTj13ZWItcGxhdGZvcm0tdGVzdHMKLSAgICAgICAgU3ViamVjdCBQdWJsaWMgS2V5IElu
Zm86Ci0gICAgICAgICAgICBQdWJsaWMgS2V5IEFsZ29yaXRobTogcnNhRW5jcnlwdGlvbgotICAg
ICAgICAgICAgICAgIFB1YmxpYy1LZXk6ICgyMDQ4IGJpdCkKLSAgICAgICAgICAgICAgICBNb2R1
bHVzOgotICAgICAgICAgICAgICAgICAgICAwMDpkMzo5NDoxMDpiNzo3MDpjZjoxYjoyYjoxZTo3
Zjo2YzoyMjo0ZjoxNToKLSAgICAgICAgICAgICAgICAgICAgYmU6Yzk6OTU6MDM6NDU6ZTI6N2M6
MjY6Nzg6ZDI6NWI6M2M6YjU6M2M6ODY6Ci0gICAgICAgICAgICAgICAgICAgIGFjOmFiOmJhOmU5
OmMxOjI4OjkxOjgzOmE3OjI4OjkyOjI2Ojc5OjAwOmMyOgotICAgICAgICAgICAgICAgICAgICBi
ZDplNjplZjpiYjo2YjpkNzpmYToyZTozOTpmYToxNjpjODplNToyNDo4ZToKLSAgICAgICAgICAg
ICAgICAgICAgNmU6ZTk6YjE6MTU6ODM6YWI6OTg6NTY6OTk6NDI6NDk6NGQ6NWQ6MTY6M2E6Ci0g
ICAgICAgICAgICAgICAgICAgIDI4OmZlOjRkOjJlOjI5OjFhOjNjOjc4Ojc4OjA5OmFhOjczOjI2
OjYyOmMyOgotICAgICAgICAgICAgICAgICAgICBhNToyYzo0ODo5Mjo2NToxMjo3MDo3ZTozZjo3
ZTpjNzpjNDplYTowYTpjODoKLSAgICAgICAgICAgICAgICAgICAgNjA6ZWY6NmE6YjA6NjU6ZGM6
ZGE6MTA6MzE6Yzk6ODg6M2E6NTY6MzU6ZmQ6Ci0gICAgICAgICAgICAgICAgICAgIDg1OmJkOjEx
OmE0OjUxOjdkOjdmOjcxOjVmOjE2OjM4OjY0OjA2Ojc4OjI1OgotICAgICAgICAgICAgICAgICAg
ICAzYjoxNTplMTphNjoxOToyZjo3YjpmZjo5MjoxMTphZDowZTo2MDoxYTpkNDoKLSAgICAgICAg
ICAgICAgICAgICAgNjE6OGU6NDY6NDU6MDA6OWI6N2I6YzY6MWY6NWI6MGU6YmI6OWQ6NmM6ZmQ6
Ci0gICAgICAgICAgICAgICAgICAgIDdhOjI5Ojk2OjgyOjI1OjNkOmQ1OjE5OjgwOmI3OjMwOjZl
OjYxOjJhOjFmOgotICAgICAgICAgICAgICAgICAgICBjYjo1MDpkYzphYzpmNDpmZjo0YjowMjo2
Nzo2MDo1ODowNDoxNzpiNjo2OToKLSAgICAgICAgICAgICAgICAgICAgOTM6OTM6Yzg6OTI6Zjg6
YTA6NWU6ZjE6NTY6ZmQ6ZTg6MjQ6MjE6YmQ6ZjQ6Ci0gICAgICAgICAgICAgICAgICAgIGJlOmQ0
OmVlOjFmOmRmOjZlOmQzOjRkOjU1OjFiOjU4OmM0OjY2OjliOjkzOgotICAgICAgICAgICAgICAg
ICAgICBiNjpiMjoxMDplODowZTpmYjo2Yjo5MDo0ZjpmOTo1Zjo5OTo1ODowYTphYToKLSAgICAg
ICAgICAgICAgICAgICAgOGQ6NWY6Mzk6MzM6NzU6ODM6NDE6NDU6NzE6NTM6MGI6ZjA6ODE6NzU6
ZGM6Ci0gICAgICAgICAgICAgICAgICAgIDczOjZkCi0gICAgICAgICAgICAgICAgRXhwb25lbnQ6
IDY1NTM3ICgweDEwMDAxKQotICAgICAgICBYNTA5djMgZXh0ZW5zaW9uczoKLSAgICAgICAgICAg
IFg1MDl2MyBCYXNpYyBDb25zdHJhaW50czogCi0gICAgICAgICAgICAgICAgQ0E6VFJVRQotICAg
ICAgICAgICAgWDUwOXYzIFN1YmplY3QgS2V5IElkZW50aWZpZXI6IAotICAgICAgICAgICAgICAg
IDVCOkRBOkM4OkMxOjA5OkYzOjREOjkyOjMwOkJDOkVGOjQzOkZCOjI2OjkzOjFFOkFFOjBEOjlB
OjBGCi0gICAgICAgICAgICBYNTA5djMgQXV0aG9yaXR5IEtleSBJZGVudGlmaWVyOiAKLSAgICAg
ICAgICAgICAgICBrZXlpZDo1QjpEQTpDODpDMTowOTpGMzo0RDo5MjozMDpCQzpFRjo0MzpGQjoy
Njo5MzoxRTpBRTowRDo5QTowRgotICAgICAgICAgICAgICAgIERpck5hbWU6L0NOPXdlYi1wbGF0
Zm9ybS10ZXN0cwotICAgICAgICAgICAgICAgIHNlcmlhbDowQjo3Rjo5OAotCi0gICAgICAgICAg
ICBYNTA5djMgS2V5IFVzYWdlOiAKLSAgICAgICAgICAgICAgICBDZXJ0aWZpY2F0ZSBTaWduCi0g
ICAgICAgICAgICBYNTA5djMgRXh0ZW5kZWQgS2V5IFVzYWdlOiAKLSAgICAgICAgICAgICAgICBU
TFMgV2ViIFNlcnZlciBBdXRoZW50aWNhdGlvbgotICAgIFNpZ25hdHVyZSBBbGdvcml0aG06IHNo
YTI1NldpdGhSU0FFbmNyeXB0aW9uCi0gICAgICAgICA5NzplMzpmMDpiOTo2MzowNzplNTpkZTpk
OToxZjo3ZjpkZTpiZTpmODplNDo5ODpkNjoyNToKLSAgICAgICAgIDk3OmU5OmQzOmFkOjdjOjZk
OjMwOjdkOjBkOjhlOmM1OjliOmVmOmViOmE4OmM1OjU5OmIyOgotICAgICAgICAgMmM6NzM6MDg6
NDY6MjI6YWI6Zjc6NjE6MDE6MTk6OWU6MDA6MGM6NzI6YmM6MmE6YmQ6ODY6Ci0gICAgICAgICAx
MToxZjozZDo4MDphYToxOTo1ODo2ZjpjZDowNTpiNjo1YToyNzpmZjoyZTozOToxYTo0NDoKLSAg
ICAgICAgIDA4OmEyOmU4OmE2OmUyOjJjOjAzOjUyOjJmOjYzOjZiOjNhOjNiOjkzOmM2OmI4OjUz
OmNkOgotICAgICAgICAgZjQ6ZWM6NjM6NWM6MjQ6NWE6NjU6YTQ6ZTM6OTM6OWU6OTY6ZjA6MDA6
Y2Y6ODI6ZmM6ZGM6Ci0gICAgICAgICAyODoxODo4NjpmMTphMjo3ZTo3ODo4MDo5ZjpmNDoxMTpi
MTo4ZTpjODoxMDpiNToxODo5ZDoKLSAgICAgICAgIGZkOjllOjhhOmNiOjZkOjhlOjE1OjIyOjNi
OjFmOjBkOjc5OjUzOmJkOjJiOmY3OmQwOjA5OgotICAgICAgICAgMmE6YTY6YTk6ZjE6M2U6NGM6
ZDA6YWE6ODE6YWU6MmI6MzQ6YjA6NTI6MTY6ZDA6Nzg6ZTI6Ci0gICAgICAgICAyNTpjMTplMjo5
Mjo0NzoxYjoyZjphNjphMjoyOTo2Zjo4Nzo5YTozYzo1ZDo0NDpiMDo4ZjoKLSAgICAgICAgIDk1
OjNjOmU3OmFkOmQxOjgzOjFjOjM4OmI3OjNkOjg1OjJiOmI4OmRjOjQ1OjgxOmJhOjcxOgotICAg
ICAgICAgYTc6MWM6OTY6OWI6YzE6Mzg6M2U6YTk6YTY6Yzc6Mzg6NzE6NGQ6Mzc6NmU6Y2E6Yjg6
ZTg6Ci0gICAgICAgICBhYjpjYzowNzo0ZToyMTo0Mzo4ODoyMTpjMDo0OToxMTo5ZTpkNjpjNDox
MzoyYzo1Nzo3NToKLSAgICAgICAgIDFkOjhlOjU0OjFmOjYzOjlhOjQ2OjE5OjUyOjQwOmM1OjFl
OjJjOjM4OmQyOmI4OjYyOjQzOgotICAgICAgICAgYTU6ODQ6Yzg6ZTQKIC0tLS0tQkVHSU4gQ0VS
VElGSUNBVEUtLS0tLQotTUlJRFV6Q0NBanVnQXdJQkFnSURDMytZTUEwR0NTcUdTSWIzRFFFQkN3
VUFNQjB4R3pBWkJnTlZCQU1NRW5kbAotWWkxd2JHRjBabTl5YlMxMFpYTjBjekFlRncweE9EQTNN
VE14TWpVNU1USmFGdzB5T0RBM01UQXhNalU1TVRKYQorTUlJVzV6Q0NGYytnQXdJQkFnSURCYkZI
TUEwR0NTcUdTSWIzRFFFQkN3VUFNQjB4R3pBWkJnTlZCQU1NRW5kbAorWWkxd2JHRjBabTl5YlMx
MFpYTjBjekFlRncweE9URXdNVFF4TXpRNU1qbGFGdzB5T1RFd01URXhNelE1TWpsYQogTUIweEd6
QVpCZ05WQkFNTUVuZGxZaTF3YkdGMFptOXliUzEwWlhOMGN6Q0NBU0l3RFFZSktvWklodmNOQVFF
QgotQlFBRGdnRVBBRENDQVFvQ2dnRUJBTk9VRUxkd3p4c3JIbjlzSWs4VnZzbVZBMFhpZkNaNDBs
czh0VHlHckt1NgotNmNFb2tZT25LSkltZVFEQ3ZlYnZ1MnZYK2k0NStoYkk1U1NPYnVteEZZT3Jt
RmFaUWtsTlhSWTZLUDVOTGlrYQotUEhoNENhcHpKbUxDcFN4SWttVVNjSDQvZnNmRTZncklZTzlx
c0dYYzJoQXh5WWc2VmpYOWhiMFJwRkY5ZjNGZgotRmpoa0JuZ2xPeFhocGhrdmUvK1NFYTBPWUJy
VVlZNUdSUUNiZThZZld3NjduV3o5ZWltV2dpVTkxUm1BdHpCdQotWVNvZnkxRGNyUFQvU3dKbllG
Z0VGN1pwazVQSWt2aWdYdkZXL2Vna0liMzB2dFR1SDk5dTAwMVZHMWpFWnB1VAotdHJJUTZBNzdh
NUJQK1YrWldBcXFqVjg1TTNXRFFVVnhVd3Z3Z1hYY2MyMENBd0VBQWFPQm16Q0JtREFNQmdOVgot
SFJNRUJUQURBUUgvTUIwR0ExVWREZ1FXQkJSYjJzakJDZk5Oa2pDODcwUDdKcE1lcmcyYUR6QkhC
Z05WSFNNRQotUURBK2dCUmIyc2pCQ2ZOTmtqQzg3MFA3SnBNZXJnMmFENkVocEI4d0hURWJNQmtH
QTFVRUF3d1NkMlZpTFhCcwotWVhSbWIzSnRMWFJsYzNSemdnTUxmNWd3Q3dZRFZSMFBCQVFEQWdJ
RU1CTUdBMVVkSlFRTU1Bb0dDQ3NHQVFVRgotQndNQk1BMEdDU3FHU0liM0RRRUJDd1VBQTRJQkFR
Q1g0L0M1WXdmbDN0a2ZmOTYrK09TWTFpV1g2ZE90ZkcwdwotZlEyT3hadnY2NmpGV2JJc2N3aEdJ
cXYzWVFFWm5nQU1jcndxdllZUkh6MkFxaGxZYjgwRnRsb24veTQ1R2tRSQotb3VpbTRpd0RVaTlq
YXpvN2s4YTRVODMwN0dOY0pGcGxwT09UbnBid0FNK0MvTndvR0lieG9uNTRnSi8wRWJHTwoteUJD
MUdKMzlub3JMYlk0Vklqc2ZEWGxUdlN2MzBBa3FwcW54UGt6UXFvR3VLelN3VWhiUWVPSWx3ZUtT
UnhzdgotcHFJcGI0ZWFQRjFFc0krVlBPZXQwWU1jT0xjOWhTdTQzRVdCdW5HbkhKYWJ3VGcrcWFi
SE9IRk5OMjdLdU9pcgotekFkT0lVT0lJY0JKRVo3V3hCTXNWM1VkamxRZlk1cEdHVkpBeFI0c09O
SzRZa09saE1qaworQlFBRGdnRVBBRENDQVFvQ2dnRUJBTlFJMTB2eXRQTjVHOG02Y1dlUFpMSFln
QklKc1dmangyTldrL1dGRUxvYworRG5VdjJ6UnA1RTI3QWh4RUpKNmM2Skd1KzNXalQ3bCtmR3lr
b0sxUndPbjRPaS9LTkpuREUyWGVTalFIL2F3UAorTWkyajBoQWl2VHZDWG5vbVRYbjNjcWNUa3Jh
cGNEWFYxK1dVU2FlYkp3Kzh3SExvSlVXSWJlVTdLTFZnWHNjZgoraExHQlFCNnAvdVFld3ptbWIx
YlViaXpGM0duYkZ4U2JGZ2tLM1R0ZjlOcEhxcVJ0Z1VBYVp0UDllZGEva1JQNworajBpSVFuY0N5
aHdVTWNFZy85WXNLZUxPU1VHekxqVVNDSnFPSXZVTG5Rd1JCWWpJRXd1aTAwcWRDaHFWOGNoegor
S2JrMzJkajZ2TEZzM3Q3UCt4b2ovSmpaWFppV1FGVHpGU1ZqcFM1QTdNRUNBd0VBQWFPQ0ZDNHdn
aFFxTUF3RworQTFVZEV3UUZNQU1CQWY4d0hRWURWUjBPQkJZRUZFRkovNHhtVUYrSG9RYW91NnVL
M1hNTkRqY2FNRWNHQTFVZAorSXdSQU1ENkFGRUZKLzR4bVVGK0hvUWFvdTZ1SzNYTU5EamNhb1NH
a0h6QWRNUnN3R1FZRFZRUUREQkozWldJdAorY0d4aGRHWnZjbTB0ZEdWemRIT0NBd1d4UnpBTEJn
TlZIUThFQkFNQ0FnUXdnZ29GQmdOVkhSNEVnZ244TUlJSgorK0tDQ0NmUXdFNElSZDJWaUxYQnNZ
WFJtYjNKdExuUmxjM1F3RjRJVmJtOTBMWGRsWWkxd2JHRjBabTl5YlM1MAorWlhOME1CZUNGWGQz
ZHk1M1pXSXRjR3hoZEdadmNtMHVkR1Z6ZERBWWdoWjNkM2N4TG5kbFlpMXdiR0YwWm05eQorYlM1
MFpYTjBNQmlDRm5kM2R6SXVkMlZpTFhCc1lYUm1iM0p0TG5SbGMzUXdHNElaZDNkM0xtNXZkQzEz
WldJdAorY0d4aGRHWnZjbTB1ZEdWemREQWJnaGwzZDNjdWQzZDNMbmRsWWkxd2JHRjBabTl5YlM1
MFpYTjBNQnlDR25kMworZHpJdWJtOTBMWGRsWWkxd2JHRjBabTl5YlM1MFpYTjBNQnlDR25kM2R6
RXVibTkwTFhkbFlpMXdiR0YwWm05eQorYlM1MFpYTjBNQnlDR25kM2R5NTNkM2N5TG5kbFlpMXdi
R0YwWm05eWJTNTBaWE4wTUJ5Q0duZDNkekl1ZDNkMworTG5kbFlpMXdiR0YwWm05eWJTNTBaWE4w
TUJ5Q0duZDNkekV1ZDNkM0xuZGxZaTF3YkdGMFptOXliUzUwWlhOMAorTUJ5Q0duZDNkeTUzZDNj
eExuZGxZaTF3YkdGMFptOXliUzUwWlhOME1CMkNHM2QzZHpFdWQzZDNNUzUzWldJdAorY0d4aGRH
WnZjbTB1ZEdWemREQWRnaHQzZDNjeExuZDNkekl1ZDJWaUxYQnNZWFJtYjNKdExuUmxjM1F3SFlJ
YgorZDNkM01pNTNkM2N5TG5kbFlpMXdiR0YwWm05eWJTNTBaWE4wTUIyQ0czZDNkekl1ZDNkM01T
NTNaV0l0Y0d4aAorZEdadmNtMHVkR1Z6ZERBZmdoMTNkM2N1ZDNkM0xtNXZkQzEzWldJdGNHeGhk
R1p2Y20wdWRHVnpkREFnZ2g1MworZDNjdWQzZDNNaTV1YjNRdGQyVmlMWEJzWVhSbWIzSnRMblJs
YzNRd0lJSWVkM2QzTVM1M2QzY3VibTkwTFhkbAorWWkxd2JHRjBabTl5YlM1MFpYTjBNQ0NDSG5o
dUxTMXNkbVV0Tm14aFpDNTNaV0l0Y0d4aGRHWnZjbTB1ZEdWegorZERBZ2doNTNkM2N1ZDNkM01T
NXViM1F0ZDJWaUxYQnNZWFJtYjNKdExuUmxjM1F3SUlJZWQzZDNNaTUzZDNjdQorYm05MExYZGxZ
aTF3YkdGMFptOXliUzUwWlhOME1DR0NIM2QzZHpJdWQzZDNNaTV1YjNRdGQyVmlMWEJzWVhSbQor
YjNKdExuUmxjM1F3SVlJZmQzZDNNaTUzZDNjeExtNXZkQzEzWldJdGNHeGhkR1p2Y20wdWRHVnpk
REFoZ2g5MworZDNjeExuZDNkekV1Ym05MExYZGxZaTF3YkdGMFptOXliUzUwWlhOME1DR0NIM2Qz
ZHpFdWQzZDNNaTV1YjNRdAorZDJWaUxYQnNZWFJtYjNKdExuUmxjM1F3SklJaWVHNHRMV3gyWlMw
MmJHRmtMbmQzZHk1M1pXSXRjR3hoZEdadgorY20wdWRHVnpkREFrZ2lKM2QzY3VlRzR0TFd4MlpT
MDJiR0ZrTG5kbFlpMXdiR0YwWm05eWJTNTBaWE4wTUNTQworSW5odUxTMXNkbVV0Tm14aFpDNXVi
M1F0ZDJWaUxYQnNZWFJtYjNKdExuUmxjM1F3SllJamVHNHRMV3gyWlMwMgorYkdGa0xuZDNkekV1
ZDJWaUxYQnNZWFJtYjNKdExuUmxjM1F3SllJamQzZDNNaTU0YmkwdGJIWmxMVFpzWVdRdQorZDJW
aUxYQnNZWFJtYjNKdExuUmxjM1F3SllJamQzZDNNUzU0YmkwdGJIWmxMVFpzWVdRdWQyVmlMWEJz
WVhSbQorYjNKdExuUmxjM1F3SllJamVHNHRMV3gyWlMwMmJHRmtMbmQzZHpJdWQyVmlMWEJzWVhS
bWIzSnRMblJsYzNRdworS0lJbWVHNHRMV3gyWlMwMmJHRmtMbmQzZHk1dWIzUXRkMlZpTFhCc1lY
Um1iM0p0TG5SbGMzUXdLSUltZDNkMworTG5odUxTMXNkbVV0Tm14aFpDNXViM1F0ZDJWaUxYQnNZ
WFJtYjNKdExuUmxjM1F3S1lJbmVHNHRMV3gyWlMwMgorYkdGa0xuZDNkekV1Ym05MExYZGxZaTF3
YkdGMFptOXliUzUwWlhOME1DbUNKM2QzZHpJdWVHNHRMV3gyWlMwMgorYkdGa0xtNXZkQzEzWldJ
dGNHeGhkR1p2Y20wdWRHVnpkREFwZ2lkM2QzY3hMbmh1TFMxc2RtVXRObXhoWkM1dQorYjNRdGQy
VmlMWEJzWVhSbWIzSnRMblJsYzNRd0tZSW5lRzR0TFd4MlpTMDJiR0ZrTG5kM2R6SXVibTkwTFhk
bAorWWkxd2JHRjBabTl5YlM1MFpYTjBNQ3VDS1hodUxTMXVPR28yWkhNMU0yeDNkMnR5Y1doMk1q
aGhMbmRsWWkxdworYkdGMFptOXliUzUwWlhOME1DMkNLM2h1TFMxc2RtVXRObXhoWkM1NGJpMHRi
SFpsTFRac1lXUXVkMlZpTFhCcworWVhSbWIzSnRMblJsYzNRd0w0SXRlRzR0TFc0NGFqWmtjelV6
YkhkM2EzSnhhSFl5T0dFdWJtOTBMWGRsWWkxdworYkdGMFptOXliUzUwWlhOME1DK0NMWGh1TFMx
dU9HbzJaSE0xTTJ4M2QydHljV2gyTWpoaExuZDNkeTUzWldJdAorY0d4aGRHWnZjbTB1ZEdWemRE
QXZnaTEzZDNjdWVHNHRMVzQ0YWpaa2N6VXpiSGQzYTNKeGFIWXlPR0V1ZDJWaQorTFhCc1lYUm1i
M0p0TG5SbGMzUXdNSUl1ZDNkM01TNTRiaTB0YmpocU5tUnpOVE5zZDNkcmNuRm9kakk0WVM1Mwor
WldJdGNHeGhkR1p2Y20wdWRHVnpkREF3Z2k1NGJpMHRiamhxTm1Sek5UTnNkM2RyY25Gb2RqSTRZ
UzUzZDNjeAorTG5kbFlpMXdiR0YwWm05eWJTNTBaWE4wTURDQ0xuZDNkekl1ZUc0dExXNDRhalpr
Y3pVemJIZDNhM0p4YUhZeQorT0dFdWQyVmlMWEJzWVhSbWIzSnRMblJsYzNRd01JSXVlRzR0TFc0
NGFqWmtjelV6YkhkM2EzSnhhSFl5T0dFdQorZDNkM01pNTNaV0l0Y0d4aGRHWnZjbTB1ZEdWemRE
QXhnaTk0YmkwdGJIWmxMVFpzWVdRdWVHNHRMV3gyWlMwMgorYkdGa0xtNXZkQzEzWldJdGNHeGhk
R1p2Y20wdWRHVnpkREF6Z2pGNGJpMHRiamhxTm1Sek5UTnNkM2RyY25GbworZGpJNFlTNTNkM2N1
Ym05MExYZGxZaTF3YkdGMFptOXliUzUwWlhOME1ET0NNWGQzZHk1NGJpMHRiamhxTm1SegorTlRO
c2QzZHJjbkZvZGpJNFlTNXViM1F0ZDJWaUxYQnNZWFJtYjNKdExuUmxjM1F3TklJeWQzZDNNUzU0
YmkwdAorYmpocU5tUnpOVE5zZDNkcmNuRm9kakk0WVM1dWIzUXRkMlZpTFhCc1lYUm1iM0p0TG5S
bGMzUXdOSUl5ZUc0dAorTFc0NGFqWmtjelV6YkhkM2EzSnhhSFl5T0dFdWQzZDNNaTV1YjNRdGQy
VmlMWEJzWVhSbWIzSnRMblJsYzNRdworTklJeWVHNHRMVzQ0YWpaa2N6VXpiSGQzYTNKeGFIWXlP
R0V1ZDNkM01TNXViM1F0ZDJWaUxYQnNZWFJtYjNKdAorTG5SbGMzUXdOSUl5ZDNkM01pNTRiaTB0
YmpocU5tUnpOVE5zZDNkcmNuRm9kakk0WVM1dWIzUXRkMlZpTFhCcworWVhSbWIzSnRMblJsYzNR
d09JSTJlRzR0TFc0NGFqWmtjelV6YkhkM2EzSnhhSFl5T0dFdWVHNHRMV3gyWlMwMgorYkdGa0xu
ZGxZaTF3YkdGMFptOXliUzUwWlhOME1EaUNObmh1TFMxc2RtVXRObXhoWkM1NGJpMHRiamhxTm1S
egorTlROc2QzZHJjbkZvZGpJNFlTNTNaV0l0Y0d4aGRHWnZjbTB1ZEdWemREQThnanA0YmkwdGJI
WmxMVFpzWVdRdQorZUc0dExXNDRhalprY3pVemJIZDNhM0p4YUhZeU9HRXVibTkwTFhkbFlpMXdi
R0YwWm05eWJTNTBaWE4wTUR5QworT25odUxTMXVPR28yWkhNMU0yeDNkMnR5Y1doMk1qaGhMbmh1
TFMxc2RtVXRObXhoWkM1dWIzUXRkMlZpTFhCcworWVhSbWIzSnRMblJsYzNRd1E0SkJlRzR0TFc0
NGFqWmtjelV6YkhkM2EzSnhhSFl5T0dFdWVHNHRMVzQ0YWpaaworY3pVemJIZDNhM0p4YUhZeU9H
RXVkMlZpTFhCc1lYUm1iM0p0TG5SbGMzUXdSNEpGZUc0dExXNDRhalprY3pVegorYkhkM2EzSnhh
SFl5T0dFdWVHNHRMVzQ0YWpaa2N6VXpiSGQzYTNKeGFIWXlPR0V1Ym05MExYZGxZaTF3YkdGMAor
Wm05eWJTNTBaWE4wTUJNR0ExVWRKUVFNTUFvR0NDc0dBUVVGQndNQk1JSUpoUVlEVlIwUkJJSUpm
RENDQ1hpQworRVhkbFlpMXdiR0YwWm05eWJTNTBaWE4wZ2hWdWIzUXRkMlZpTFhCc1lYUm1iM0p0
TG5SbGMzU0NGWGQzZHk1MworWldJdGNHeGhkR1p2Y20wdWRHVnpkSUlXZDNkM01TNTNaV0l0Y0d4
aGRHWnZjbTB1ZEdWemRJSVdkM2QzTWk1MworWldJdGNHeGhkR1p2Y20wdWRHVnpkSUlaZDNkM0xt
NXZkQzEzWldJdGNHeGhkR1p2Y20wdWRHVnpkSUlaZDNkMworTG5kM2R5NTNaV0l0Y0d4aGRHWnZj
bTB1ZEdWemRJSWFkM2QzTWk1dWIzUXRkMlZpTFhCc1lYUm1iM0p0TG5SbAorYzNTQ0duZDNkekV1
Ym05MExYZGxZaTF3YkdGMFptOXliUzUwWlhOMGdocDNkM2N1ZDNkM01pNTNaV0l0Y0d4aAorZEda
dmNtMHVkR1Z6ZElJYWQzZDNNaTUzZDNjdWQyVmlMWEJzWVhSbWIzSnRMblJsYzNTQ0duZDNkekV1
ZDNkMworTG5kbFlpMXdiR0YwWm05eWJTNTBaWE4wZ2hwM2QzY3VkM2QzTVM1M1pXSXRjR3hoZEda
dmNtMHVkR1Z6ZElJYgorZDNkM01TNTNkM2N4TG5kbFlpMXdiR0YwWm05eWJTNTBaWE4wZ2h0M2Qz
Y3hMbmQzZHpJdWQyVmlMWEJzWVhSbQorYjNKdExuUmxjM1NDRzNkM2R6SXVkM2QzTWk1M1pXSXRj
R3hoZEdadmNtMHVkR1Z6ZElJYmQzZDNNaTUzZDNjeAorTG5kbFlpMXdiR0YwWm05eWJTNTBaWE4w
Z2gxM2QzY3VkM2QzTG01dmRDMTNaV0l0Y0d4aGRHWnZjbTB1ZEdWegorZElJZWQzZDNMbmQzZHpJ
dWJtOTBMWGRsWWkxd2JHRjBabTl5YlM1MFpYTjBnaDUzZDNjeExuZDNkeTV1YjNRdAorZDJWaUxY
QnNZWFJtYjNKdExuUmxjM1NDSG5odUxTMXNkbVV0Tm14aFpDNTNaV0l0Y0d4aGRHWnZjbTB1ZEdW
egorZElJZWQzZDNMbmQzZHpFdWJtOTBMWGRsWWkxd2JHRjBabTl5YlM1MFpYTjBnaDUzZDNjeUxu
ZDNkeTV1YjNRdAorZDJWaUxYQnNZWFJtYjNKdExuUmxjM1NDSDNkM2R6SXVkM2QzTWk1dWIzUXRk
MlZpTFhCc1lYUm1iM0p0TG5SbAorYzNTQ0gzZDNkekl1ZDNkM01TNXViM1F0ZDJWaUxYQnNZWFJt
YjNKdExuUmxjM1NDSDNkM2R6RXVkM2QzTVM1dQorYjNRdGQyVmlMWEJzWVhSbWIzSnRMblJsYzNT
Q0gzZDNkekV1ZDNkM01pNXViM1F0ZDJWaUxYQnNZWFJtYjNKdAorTG5SbGMzU0NJbmh1TFMxc2Rt
VXRObXhoWkM1M2QzY3VkMlZpTFhCc1lYUm1iM0p0TG5SbGMzU0NJbmQzZHk1NAorYmkwdGJIWmxM
VFpzWVdRdWQyVmlMWEJzWVhSbWIzSnRMblJsYzNTQ0luaHVMUzFzZG1VdE5teGhaQzV1YjNRdAor
ZDJWaUxYQnNZWFJtYjNKdExuUmxjM1NDSTNodUxTMXNkbVV0Tm14aFpDNTNkM2N4TG5kbFlpMXdi
R0YwWm05eQorYlM1MFpYTjBnaU4zZDNjeUxuaHVMUzFzZG1VdE5teGhaQzUzWldJdGNHeGhkR1p2
Y20wdWRHVnpkSUlqZDNkMworTVM1NGJpMHRiSFpsTFRac1lXUXVkMlZpTFhCc1lYUm1iM0p0TG5S
bGMzU0NJM2h1TFMxc2RtVXRObXhoWkM1MworZDNjeUxuZGxZaTF3YkdGMFptOXliUzUwWlhOMGdp
WjRiaTB0YkhabExUWnNZV1F1ZDNkM0xtNXZkQzEzWldJdAorY0d4aGRHWnZjbTB1ZEdWemRJSW1k
M2QzTG5odUxTMXNkbVV0Tm14aFpDNXViM1F0ZDJWaUxYQnNZWFJtYjNKdAorTG5SbGMzU0NKM2h1
TFMxc2RtVXRObXhoWkM1M2QzY3hMbTV2ZEMxM1pXSXRjR3hoZEdadmNtMHVkR1Z6ZElJbgorZDNk
M01pNTRiaTB0YkhabExUWnNZV1F1Ym05MExYZGxZaTF3YkdGMFptOXliUzUwWlhOMGdpZDNkM2N4
TG5odQorTFMxc2RtVXRObXhoWkM1dWIzUXRkMlZpTFhCc1lYUm1iM0p0TG5SbGMzU0NKM2h1TFMx
c2RtVXRObXhoWkM1MworZDNjeUxtNXZkQzEzWldJdGNHeGhkR1p2Y20wdWRHVnpkSUlwZUc0dExX
NDRhalprY3pVemJIZDNhM0p4YUhZeQorT0dFdWQyVmlMWEJzWVhSbWIzSnRMblJsYzNTQ0szaHVM
UzFzZG1VdE5teGhaQzU0YmkwdGJIWmxMVFpzWVdRdQorZDJWaUxYQnNZWFJtYjNKdExuUmxjM1ND
TFhodUxTMXVPR28yWkhNMU0yeDNkMnR5Y1doMk1qaGhMbTV2ZEMxMworWldJdGNHeGhkR1p2Y20w
dWRHVnpkSUl0ZUc0dExXNDRhalprY3pVemJIZDNhM0p4YUhZeU9HRXVkM2QzTG5kbAorWWkxd2JH
RjBabTl5YlM1MFpYTjBnaTEzZDNjdWVHNHRMVzQ0YWpaa2N6VXpiSGQzYTNKeGFIWXlPR0V1ZDJW
aQorTFhCc1lYUm1iM0p0TG5SbGMzU0NMbmQzZHpFdWVHNHRMVzQ0YWpaa2N6VXpiSGQzYTNKeGFI
WXlPR0V1ZDJWaQorTFhCc1lYUm1iM0p0TG5SbGMzU0NMbmh1TFMxdU9HbzJaSE0xTTJ4M2QydHlj
V2gyTWpoaExuZDNkekV1ZDJWaQorTFhCc1lYUm1iM0p0TG5SbGMzU0NMbmQzZHpJdWVHNHRMVzQ0
YWpaa2N6VXpiSGQzYTNKeGFIWXlPR0V1ZDJWaQorTFhCc1lYUm1iM0p0TG5SbGMzU0NMbmh1TFMx
dU9HbzJaSE0xTTJ4M2QydHljV2gyTWpoaExuZDNkekl1ZDJWaQorTFhCc1lYUm1iM0p0TG5SbGMz
U0NMM2h1TFMxc2RtVXRObXhoWkM1NGJpMHRiSFpsTFRac1lXUXVibTkwTFhkbAorWWkxd2JHRjBa
bTl5YlM1MFpYTjBnakY0YmkwdGJqaHFObVJ6TlROc2QzZHJjbkZvZGpJNFlTNTNkM2N1Ym05MAor
TFhkbFlpMXdiR0YwWm05eWJTNTBaWE4wZ2pGM2QzY3VlRzR0TFc0NGFqWmtjelV6YkhkM2EzSnhh
SFl5T0dFdQorYm05MExYZGxZaTF3YkdGMFptOXliUzUwWlhOMGdqSjNkM2N4TG5odUxTMXVPR28y
WkhNMU0yeDNkMnR5Y1doMgorTWpoaExtNXZkQzEzWldJdGNHeGhkR1p2Y20wdWRHVnpkSUl5ZUc0
dExXNDRhalprY3pVemJIZDNhM0p4YUhZeQorT0dFdWQzZDNNaTV1YjNRdGQyVmlMWEJzWVhSbWIz
SnRMblJsYzNTQ01uaHVMUzF1T0dvMlpITTFNMngzZDJ0eQorY1doMk1qaGhMbmQzZHpFdWJtOTBM
WGRsWWkxd2JHRjBabTl5YlM1MFpYTjBnakozZDNjeUxuaHVMUzF1T0dvMgorWkhNMU0yeDNkMnR5
Y1doMk1qaGhMbTV2ZEMxM1pXSXRjR3hoZEdadmNtMHVkR1Z6ZElJMmVHNHRMVzQ0YWpaaworY3pV
emJIZDNhM0p4YUhZeU9HRXVlRzR0TFd4MlpTMDJiR0ZrTG5kbFlpMXdiR0YwWm05eWJTNTBaWE4w
Z2paNAorYmkwdGJIWmxMVFpzWVdRdWVHNHRMVzQ0YWpaa2N6VXpiSGQzYTNKeGFIWXlPR0V1ZDJW
aUxYQnNZWFJtYjNKdAorTG5SbGMzU0NPbmh1TFMxc2RtVXRObXhoWkM1NGJpMHRiamhxTm1Sek5U
TnNkM2RyY25Gb2RqSTRZUzV1YjNRdAorZDJWaUxYQnNZWFJtYjNKdExuUmxjM1NDT25odUxTMXVP
R28yWkhNMU0yeDNkMnR5Y1doMk1qaGhMbmh1TFMxcworZG1VdE5teGhaQzV1YjNRdGQyVmlMWEJz
WVhSbWIzSnRMblJsYzNTQ1FYaHVMUzF1T0dvMlpITTFNMngzZDJ0eQorY1doMk1qaGhMbmh1TFMx
dU9HbzJaSE0xTTJ4M2QydHljV2gyTWpoaExuZGxZaTF3YkdGMFptOXliUzUwWlhOMAorZ2tWNGJp
MHRiamhxTm1Sek5UTnNkM2RyY25Gb2RqSTRZUzU0YmkwdGJqaHFObVJ6TlROc2QzZHJjbkZvZGpJ
NAorWVM1dWIzUXRkMlZpTFhCc1lYUm1iM0p0TG5SbGMzUXdEUVlKS29aSWh2Y05BUUVMQlFBRGdn
RUJBSFhpcTF2QQoreGpjOGlqMzRpNGIrOGluVkJWd1RXeUh0Y3psWm5JUVRDeHFKQ0RrODNwejhR
RkhHeUhZeitkYjM2VTZZd0hhaworSTNIWWhpcFBNQjFWbmxIa01BNnhGdVpML2FGV3l3TE5VOW5U
bWFBVjBmUC9SNWs5dnQ4QUVtMFptRVdrTll0TAorb3BjeTBycWpBYVhUSVdlczkxT1pmbmlURlFE
SE1pdXJLOFZxK2ZxL096dytZUWJSYlUxS2xIQ05heWlzdlFhNAorVExPK0RqTVIwaHpEVDNESEV3
UEpMUFlhYTZSbkl3bzh6dkNxazBaUlBBeGV1bGRBZS91MVB6dGVYUnpFSFRBRQorRE1WTE13TTc1
MmJMRnVmdjFHUkNaTkhFTFpLeWhVb0ZyUDMwQXFFN3IzcG53UVJXOEtkaWQzOElNbzd1OURlbQor
dTUvdEhlZlBLRDdibS9ZPQogLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9jZXJ0cy9j
b25maWcuanNvbiBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvY2VydHMvY29uZmlnLmpzb24KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNGEzN2MxM2MxMmYzMzNkNDE2ZGE5
YWY4MDAwMTkxYWQ2MjE3MjlmZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvY2VydHMvY29uZmlnLmpzb24KQEAgLTAs
MCArMSwxNyBAQAoreworICAgICJwb3J0cyI6IHsKKyAgICAgICAgImh0dHAiOiBbXSwKKyAgICAg
ICAgImh0dHBzIjogWyJhdXRvIl0sCisgICAgICAgICJ3cyI6IFtdLAorICAgICAgICAid3NzIjog
W10KKyAgICB9LAorICAgICJjaGVja19zdWJkb21haW5zIjogZmFsc2UsCisgICAgInNzbCI6IHsK
KyAgICAgICAgInR5cGUiOiAib3BlbnNzbCIsCisgICAgICAgICJvcGVuc3NsIjogeworICAgICAg
ICAgICAgImR1cmF0aW9uIjogMzY1MCwKKyAgICAgICAgICAgICJmb3JjZV9yZWdlbmVyYXRlIjog
dHJ1ZSwKKyAgICAgICAgICAgICJiYXNlX3BhdGgiOiAidG9vbHMvY2VydHMiCisgICAgICAgIH0K
KyAgICB9Cit9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL2NlcnRzL3czYy1pbXBvcnQubG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9jZXJ0cy93M2MtaW1wb3J0LmxvZwppbmRl
eCBiMDIwNmNhOTc5NTJlMDgwZDQxNDNkM2MyY2I5NzhiYmI2MjQ5N2FiLi5kODcxOTExNGYxZjIz
ZmNmMTA1ZDZhMmE3Yzg2ZWY5NzU3YjJjNmRkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2NlcnRzL3czYy1pbXBvcnQubG9nCisr
KyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvY2Vy
dHMvdzNjLWltcG9ydC5sb2cKQEAgLTE3LDUgKzE3LDYgQEAgTGlzdCBvZiBmaWxlczoKIC9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2NlcnRzL1JFQURN
RS5tZAogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
Y2VydHMvY2FjZXJ0LmtleQogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvY2VydHMvY2FjZXJ0LnBlbQorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvY2VydHMvY29uZmlnLmpzb24KIC9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2NlcnRzL3dlYi1wbGF0Zm9ybS50
ZXN0LmtleQogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvY2VydHMvd2ViLXBsYXRmb3JtLnRlc3QucGVtCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2NlcnRzL3dlYi1wbGF0Zm9ybS50
ZXN0LmtleSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvY2VydHMvd2ViLXBsYXRmb3JtLnRlc3Qua2V5CmluZGV4IGYwNzQ1YWRiYWU5ZjlmNTk2NmI2
OTYzNGFlZTZkMmE5MTZjNjljOTQuLmI2MmFmMjA4YzM0Y2IzMTY3YWU2NDAzOGNkZmY2OTZmMDQ3
ODkzZWIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvY2VydHMvd2ViLXBsYXRmb3JtLnRlc3Qua2V5CisrKyBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvY2VydHMvd2ViLXBsYXRmb3Jt
LnRlc3Qua2V5CkBAIC0xLDI4ICsxLDI4IEBACiAtLS0tLUJFR0lOIFBSSVZBVEUgS0VZLS0tLS0K
LU1JSUV2UUlCQURBTkJna3Foa2lHOXcwQkFRRUZBQVNDQktjd2dnU2pBZ0VBQW9JQkFRRFlVMmc3
VmRLT1ZUeFAKLXVJQjB1QjFKakR6U3RiVVZJamVCSlVMbldLcTJxcjRPTUk2Z2wwLzNnTm5wb2ZU
cldEK2psaWk0MmxxcURVSGYKLWJCMVNyczNJRmdLd0NuQ1JWMzZsMnhDay9UdjNCdFcxaVdxU05z
Wm14YWJTYkhiMVQwckxic09UTGI3U1A3MFUKLXAwbzVXdkFZM0VFYmNJQmxnWVZGbzZvWjhQNVY3
UkRaVm15TlZHbEwza1VCRDFDaGg5Y01ReUtkRzA2eTdHNTIKLTQ2ejJ3ZG13YWVnd0dyczkwNTNq
akhCQmR5SUNYTEV6SzRMZTJyZ1k5TktZR21yd29DUldxQXJwRENMUE9HeEQKLW1pYjJoZG0xSDIz
a3orMDVJMVBibzQ1K0p1dGhHMDVkckxCQ3ZoNWNUaGlBWTJ3TkNXZ0lCcUgwQkF2RE41TG8KLXFn
N0YwVXZCQWdNQkFBRUNnZ0VCQUpXc0g5SHQ3MkRMV0k5UCtKREpVbm93cldTY2xFMnEvdnc3NjY1
bGlyZ1kKLUtxZG1zVWdyYVFpMS9nL0lIczAyb2RGdGMzOXlsSWhUNDkvUnpmZ0hPaG5XSU1Yc2N6
WWNjMlFOemRaWjM4TnEKLTF6SmpnWGpvclIwdVk5M3piZHNNb1pOZmI3SEZWT0hqZDg5eWI4aC9R
dC93aEp1WG16NmYvclhRSjBFTG5PMlYKLWNzQmEwV1dSZEtOWVN1RFhYQVhyVG1KczRQcDdOTldB
b1lCYU1vSFFjSEU5d3NOM1huSmRZWXlBQmJwajZ3SVAKLTdMWHhVTjNPWmo0Q1k5K2FoQ2dyRUE4
TkV2Q1UvU1VhZ0VYMFlHNHorc1YrRGZqbnVzN3ZNWVNxWnYyc2RQTjIKLXplMDkyK0FaQkRwZGpO
ZEx5ckI2Y01GUmgvMjNNYUNMR0hQR2pKa0NkZ0VDZ1lFQTliSytOUnFQVXFjUkovQmQKLTdQQVBp
MVBMamtnUDY2djBvWHNXNnlsN0JueGdqclV2b1dVSTkvNDBrRXZRRHp0SXJVRmJMb3h3bkx0QUtq
UUcKLUYrMnZrRC9EV3Q0NTJaOGJRWGJ4dGVHTFhrTnR3bzlEd1RCcno0T29ubW5yeGNPand0SUVy
cUV5aE1QUkNlMHcKLUtGdFJMZ0s1eFh4K0psUU56UnhZNFRVR2pnMENnWUVBNFdWaml4ZmhUZjF2
RnBtZmhYNGV3TGFCcldjaDRoNngKLXdRM2o5TVY5MHdOYm5ueVQxR3JLaVIxWERKMXZOOGVtRnJO
UXZocjBlT0V1RFkwWlhKSk04UHZQVzYrS3Ftc08KLXJ3cmV5UXpwL2IxQWRzL3FMN00wNVJFdTV5
NVJRMnpOV2pPYlR2ZHNVaC9MbXRVdkdSUW05MkUrdDRhRnowSmcKLWpaNUE2b3ErdTRVQ2dZQXRY
OGdldUh2MWNLTUxkQ2wwWTFVTGp2c05tS05RQzU2TzM5TjR0RjFpOGo5R3U1RkQKLVJneGsrQTR2
QThFMXZ1WUtFUUxNMHVUTkhRdVpmNmdNYlRtNTh2eVo0R1pnbVRDSVkzWDU5K0FzRlZuRXozNWMK
LXhCdDA1RVNVbE0wVTVhOXRnQ21iTW12STl2eTR6NVBRTUNVSzBUZ0xqNVVnY085bmpLK2hUNUNa
VlFLQmdHWmwKLVZqU2hjNlNucHVrQWYzejR6K1hDdytUUC9vK29YQjZWUGVNOE9TNDh6MG1QMU9U
aVl3S3BocHRmaG1BejNodGYKLStTVjBQMjRPOW9vSGVPY2FPOFFhMFpnWWhvbG5PM09BSDdmOG11
ekFKbUlUa0pOOCtXRzdUYkNPMVRJcFlwMUEKLTVxU1lPT2lTTTBBeTYwT2NhUnRuWFVPbzVHOUUr
M0k2MjhqeG9UYTFBb0dBUUszTWpOL0J6RzVnWEczUFg1VFYKLXRGWStLMlNnSUQzM2QrU1RSTFV6
QWdPYis3YXFVT2R3WWZDZGlRc3BFRDlIUmtnL0RDTHA3Z05wMDJwMWtzY0IKLXcvUFdDTVVPMDFp
bklsalI0Zi9ZTytrSUQ4WnJvdmNoOGQ4SkxHdk5zWUZ6VkFQL2NlWVc2L09NTFFMTkdmQkMKLXhI
cGRqMEltMGU5L1dNeEM0WkVZZm9jPQorTUlJRXZnSUJBREFOQmdrcWhraUc5dzBCQVFFRkFBU0NC
S2d3Z2dTa0FnRUFBb0lCQVFDclpYVlhtT1BscW8vKworMnhqMTVQZ2NaR0hHby9ib2ZpUVEzZ2w2
SkwxVlgxR3B0WUlOaFRxMnNVaGZOOHRDYitjSHl6YXBPOW9VbXdxdworcDVVcDd0SjRJcDd1RTEv
d3dTeFZjdkNhd0c1L1BONWlEN0gyd3NtRXBwSFhPYzNMbDA4NS9nemVzKzErTm4rcQorQVJtcDFi
Ri92anBsRDZWZEgyckJXM3NKM0RBb0Jhb1hsQU1mZVJBRkRwYXFhKzlseE1yTTVXa1VIbmRRK3VF
TQorNmtaeWV2aHlwMDJYRFAwdkx3TkN0UExHQjBlbUFBZkM3eHB3UkdWR1N0RXNVaGYvbWM5eU5O
YUtncUJLSTBubworb1ZudVUzUkdkS0hQMTh2Y2p0QlNWMGxZZ2pmZzlhMDdPQnUxaGdRZmZob2Zp
MkJ5ZGZhQ3BCQU16RmhsdTF1eQorczZhaFZrSnBBZ01CQUFFQ2dnRUFmbXZ6eFkwTWJGY0dwMkZN
WS9OajN1MWNBWHpubmsyTXBMUmlJU29BVFh4bAorYTl4cDlUY1VPN1ZBUUp1UzNZcFV5cmJsdHFa
akVWZmE1cnAxbDl5RWVnQnZZZ1FBZkVEQVJyYmxLZ0JPZ0tPUgorRkp1bkZQQlFXL3ZSRHdPZi9F
KzdMSGRyWHNrd29DdnF0cWJoR3hoNE9GVkVGVThaRmpzYUwwMGUwQU1Oc2pabAorME9zRU9ObElI
NG5DYTdFNkRUYXNIeGMxVmtIUXIzdXZCbDUvNEhmT2MwNXRyK1pLbE1ZWHpBUFdrTDBzQzIxNgor
RHF5NEF4SjBNMGF4OEJZRVp1bzBncVFtTUFvbkpUa0VucHlvRDR6ODlTODc3dkZwOHcxVlBiR1lr
VjQ4eWpWLworSTdmUTZZanQzeWcrYXMrczRhckdFc1VCMGwrWEFwQllZWS9KK3FjWVVRS0JnUURl
ZDdET01KVWMza1BURkVjTgorcC9FYlNoOVRYeFMvNzRjSXlHaWQ5SUVpUkVKWXhZdjhrejBLcGxH
dUpvbElRMy9JazlSYWM2QjNUdTRXa1cwZworVFBiTnVuWUVzeWRaQkFuYVE0ZUFWZE9mdlJRNlYz
ZUJaMnZFcnNISlJGYWo1Y09jZXNVWHhCWkk2bTJ0UUVTeAorZEJXRkRORzlrenRyMEhtYUw2UHV6
NHpaSXdLQmdRREZPeGZSN0ZjcEdkdzYxemlTc1ptdHZrZjZlcGtHMytvdQordWhZNTBKMFVyVGJL
N1R1aW1rb1J3L1hIZUJlNGRiK2VqT091TEQ5UUUveVh2bXRFV3V5VVRUWU9WdlorSHVOagorUnAz
a2RpMUd1V1huNmdSdmRsa2Y5WHdXN2pIbWdrcGJBNUErdURYczNFWVlhMThMeFBOZk1Tdmh5SGRr
Rm5VRworYVR6eVlOcGRBd0tCZ0d2L1FOYW40UXQxbndsdVU1ditobDZRR2lyNEFuTzJ6Ui9uWWxv
ajR6aUdXSXNOdzRwbQorMUFCQ2cyNStpTENMREJLTUtVK0x5RCtERXJQai8wenA3L29wWmJlY1hT
S3Fnam55QkdxNXY1VlJUZXVRb0pReQorWjYvQWdwUzVWeklUaldWK2VBVzBqSGp6VFRFSS9SQUVZ
Wm9JZ2gxOHh5RHN3TXVvQ3ZZWXpiQnZBb0dCQU1NMgorSS9Odyt5d0JIb3RXcmZYenR1blNwaWR5
NUxkN05LeWZIcFNHdUpMWWhwei9oY0VBK1VMd00vb0VFV1pQbFNOMgoreTN0KzdBTjBaTlJFY3FN
clkzRzlvajA3TWFuUEpMMEVEZzhzTU5BSmZLVzRhRDl5WWZCUjUwcEM1RDBFeEZlbAorQlVZdXlh
RHd2S2c2emM0MlY3UG1WVXFhUWlGY1lPUEJrY05NdlpURkFvR0JBTEJ0ZHQwaUl2dEJvcHArSVFh
VgorelpNQTVaUUlRNW41djA3MUxLYTFzN2FyMytoSW9EUnNaYk03WGtVSUE4elFscndGUmhiVTVZ
Rk5jYnBvb1FTbQorN2o0K2ZJdWRjcHhqOXRBTUdBYjV5Zzg5azFEalR5N0ZVV0w5ZWxHSWd2Sk1x
Z0Y2SVE1Myt2Ujh4d0dEeVFMQgorc1A1bWl6RjF3aTQ3RFlQSlFjRFJDelUrCiAtLS0tLUVORCBQ
UklWQVRFIEtFWS0tLS0tCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2NlcnRzL3dlYi1wbGF0Zm9ybS50ZXN0LnBlbSBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvY2VydHMvd2ViLXBs
YXRmb3JtLnRlc3QucGVtCmluZGV4IGEzYTAyMmU2YWM0ODVkM2Y5NmFlODUxYzBhZDgwZWU5Njk4
YTE4ZTcuLjU5NTkzMTZiYjViNDgyNWU2NDBiYjFmN2NhYjA4YmM5ZjQwNWE2M2EgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvY2Vy
dHMvd2ViLXBsYXRmb3JtLnRlc3QucGVtCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvY2VydHMvd2ViLXBsYXRmb3JtLnRlc3QucGVtCkBAIC0x
LDkwICsxLDEzMyBAQAogQ2VydGlmaWNhdGU6CiAgICAgRGF0YToKICAgICAgICAgVmVyc2lvbjog
MyAoMHgyKQotICAgICAgICBTZXJpYWwgTnVtYmVyOiA3NTM1NjEgKDB4YjdmOTkpCisgICAgICAg
IFNlcmlhbCBOdW1iZXI6IDM3MzA2NCAoMHg1YjE0OCkKICAgICBTaWduYXR1cmUgQWxnb3JpdGht
OiBzaGEyNTZXaXRoUlNBRW5jcnlwdGlvbgogICAgICAgICBJc3N1ZXI6IENOPXdlYi1wbGF0Zm9y
bS10ZXN0cwogICAgICAgICBWYWxpZGl0eQotICAgICAgICAgICAgTm90IEJlZm9yZTogSnVsIDEz
IDEyOjU5OjEyIDIwMTggR01UCi0gICAgICAgICAgICBOb3QgQWZ0ZXIgOiBKdWwgMTAgMTI6NTk6
MTIgMjAyOCBHTVQKKyAgICAgICAgICAgIE5vdCBCZWZvcmU6IE9jdCAxNCAxMzo0OToyOSAyMDE5
IEdNVAorICAgICAgICAgICAgTm90IEFmdGVyIDogT2N0IDExIDEzOjQ5OjI5IDIwMjkgR01UCiAg
ICAgICAgIFN1YmplY3Q6IENOPXdlYi1wbGF0Zm9ybS50ZXN0CiAgICAgICAgIFN1YmplY3QgUHVi
bGljIEtleSBJbmZvOgogICAgICAgICAgICAgUHVibGljIEtleSBBbGdvcml0aG06IHJzYUVuY3J5
cHRpb24KICAgICAgICAgICAgICAgICBQdWJsaWMtS2V5OiAoMjA0OCBiaXQpCiAgICAgICAgICAg
ICAgICAgTW9kdWx1czoKLSAgICAgICAgICAgICAgICAgICAgMDA6ZDg6NTM6Njg6M2I6NTU6ZDI6
OGU6NTU6M2M6NGY6Yjg6ODA6NzQ6Yjg6Ci0gICAgICAgICAgICAgICAgICAgIDFkOjQ5OjhjOjNj
OmQyOmI1OmI1OjE1OjIyOjM3OjgxOjI1OjQyOmU3OjU4OgotICAgICAgICAgICAgICAgICAgICBh
YTpiNjphYTpiZTowZTozMDo4ZTphMDo5Nzo0ZjpmNzo4MDpkOTplOTphMToKLSAgICAgICAgICAg
ICAgICAgICAgZjQ6ZWI6NTg6M2Y6YTM6OTY6Mjg6Yjg6ZGE6NWE6YWE6MGQ6NDE6ZGY6NmM6Ci0g
ICAgICAgICAgICAgICAgICAgIDFkOjUyOmFlOmNkOmM4OjE2OjAyOmIwOjBhOjcwOjkxOjU3Ojdl
OmE1OmRiOgotICAgICAgICAgICAgICAgICAgICAxMDphNDpmZDozYjpmNzowNjpkNTpiNTo4OTo2
YTo5MjozNjpjNjo2NjpjNToKLSAgICAgICAgICAgICAgICAgICAgYTY6ZDI6NmM6NzY6ZjU6NGY6
NGE6Y2I6NmU6YzM6OTM6MmQ6YmU6ZDI6M2Y6Ci0gICAgICAgICAgICAgICAgICAgIGJkOjE0OmE3
OjRhOjM5OjVhOmYwOjE4OmRjOjQxOjFiOjcwOjgwOjY1OjgxOgotICAgICAgICAgICAgICAgICAg
ICA4NTo0NTphMzphYToxOTpmMDpmZTo1NTplZDoxMDpkOTo1Njo2Yzo4ZDo1NDoKLSAgICAgICAg
ICAgICAgICAgICAgNjk6NGI6ZGU6NDU6MDE6MGY6NTA6YTE6ODc6ZDc6MGM6NDM6MjI6OWQ6MWI6
Ci0gICAgICAgICAgICAgICAgICAgIDRlOmIyOmVjOjZlOjc2OmUzOmFjOmY2OmMxOmQ5OmIwOjY5
OmU4OjMwOjFhOgotICAgICAgICAgICAgICAgICAgICBiYjozZDpkMzo5ZDplMzo4Yzo3MDo0MTo3
NzoyMjowMjo1YzpiMTozMzoyYjoKLSAgICAgICAgICAgICAgICAgICAgODI6ZGU6ZGE6Yjg6MTg6
ZjQ6ZDI6OTg6MWE6NmE6ZjA6YTA6MjQ6NTY6YTg6Ci0gICAgICAgICAgICAgICAgICAgIDBhOmU5
OjBjOjIyOmNmOjM4OjZjOjQzOjlhOjI2OmY2Ojg1OmQ5OmI1OjFmOgotICAgICAgICAgICAgICAg
ICAgICA2ZDplNDpjZjplZDozOToyMzo1MzpkYjphMzo4ZTo3ZToyNjplYjo2MToxYjoKLSAgICAg
ICAgICAgICAgICAgICAgNGU6NWQ6YWM6YjA6NDI6YmU6MWU6NWM6NGU6MTg6ODA6NjM6NmM6MGQ6
MDk6Ci0gICAgICAgICAgICAgICAgICAgIDY4OjA4OjA2OmExOmY0OjA0OjBiOmMzOjM3OjkyOmU4
OmFhOjBlOmM1OmQxOgotICAgICAgICAgICAgICAgICAgICA0YjpjMQorICAgICAgICAgICAgICAg
ICAgICAwMDphYjo2NTo3NTo1Nzo5ODplMzplNTphYTo4ZjpmZTpkYjoxODpmNTplNDoKKyAgICAg
ICAgICAgICAgICAgICAgZjg6MWM6NjQ6NjE6YzY6YTM6ZjY6ZTg6N2U6MjQ6MTA6ZGU6MDk6N2E6
MjQ6CisgICAgICAgICAgICAgICAgICAgIGJkOjU1OjVmOjUxOmE5OmI1OjgyOjBkOjg1OjNhOmI2
OmIxOjQ4OjVmOjM3OgorICAgICAgICAgICAgICAgICAgICBjYjo0Mjo2ZjplNzowNzpjYjozNjph
OTozYjpkYToxNDo5YjowYTpiMDphNzoKKyAgICAgICAgICAgICAgICAgICAgOTU6Mjk6ZWU6ZDI6
Nzg6MjI6OWU6ZWU6MTM6NWY6ZjA6YzE6MmM6NTU6NzI6CisgICAgICAgICAgICAgICAgICAgIGYw
OjlhOmMwOjZlOjdmOjNjOmRlOjYyOjBmOmIxOmY2OmMyOmM5Ojg0OmE2OgorICAgICAgICAgICAg
ICAgICAgICA5MTpkNzozOTpjZDpjYjo5Nzo0ZjozOTpmZTowYzpkZTpiMzplZDo3ZTozNjoKKyAg
ICAgICAgICAgICAgICAgICAgN2Y6YWE6MDE6MTk6YTk6ZDU6YjE6N2Y6YmU6M2E6NjU6MGY6YTU6
NWQ6MWY6CisgICAgICAgICAgICAgICAgICAgIDZhOmMxOjViOjdiOjA5OmRjOjMwOjI4OjA1OmFh
OjE3Ojk0OjAzOjFmOjc5OgorICAgICAgICAgICAgICAgICAgICAxMDowNTowZTo5NjphYTo2Yjpl
Zjo2NTpjNDpjYTpjYzplNTo2OToxNDoxZToKKyAgICAgICAgICAgICAgICAgICAgNzc6NTA6ZmE6
ZTE6MGM6ZWE6NDY6NzI6N2E6Zjg6NzI6YTc6NGQ6OTc6MGM6CisgICAgICAgICAgICAgICAgICAg
IGZkOjJmOjJmOjAzOjQyOmI0OmYyOmM2OjA3OjQ3OmE2OjAwOjA3OmMyOmVmOgorICAgICAgICAg
ICAgICAgICAgICAxYTo3MDo0NDo2NTo0Njo0YTpkMToyYzo1MjoxNzpmZjo5OTpjZjo3MjozNDoK
KyAgICAgICAgICAgICAgICAgICAgZDY6OGE6ODI6YTA6NGE6MjM6NDk6ZTg6YTE6NTk6ZWU6NTM6
NzQ6NDY6NzQ6CisgICAgICAgICAgICAgICAgICAgIGExOmNmOmQ3OmNiOmRjOjhlOmQwOjUyOjU3
OjQ5OjU4OjgyOjM3OmUwOmY1OgorICAgICAgICAgICAgICAgICAgICBhZDozYjozODoxYjpiNTo4
NjowNDoxZjo3ZToxYToxZjo4Yjo2MDo3Mjo3NToKKyAgICAgICAgICAgICAgICAgICAgZjY6ODI6
YTQ6MTA6MGM6Y2M6NTg6NjU6YmI6NWI6YjI6YjM6YTY6YTE6NTY6CisgICAgICAgICAgICAgICAg
ICAgIDQyOjY5CiAgICAgICAgICAgICAgICAgRXhwb25lbnQ6IDY1NTM3ICgweDEwMDAxKQogICAg
ICAgICBYNTA5djMgZXh0ZW5zaW9uczoKICAgICAgICAgICAgIFg1MDl2MyBCYXNpYyBDb25zdHJh
aW50czogCiAgICAgICAgICAgICAgICAgQ0E6RkFMU0UKICAgICAgICAgICAgIFg1MDl2MyBTdWJq
ZWN0IEtleSBJZGVudGlmaWVyOiAKLSAgICAgICAgICAgICAgICBEQzoyNzo2Qzo3NDpFNjo0Nzoz
MTo5NTpEODpDQzo5Njo1QjpFNDo5NDo2RTo4QzoyMjoyRjoyQjpFQQorICAgICAgICAgICAgICAg
IDJBOjE4OjBCOjA5OjIyOjZFOjI4OkQyOkRCOkZEOkMyOjJEOjQwOkE2OkYzOjM4OjYyOjZFOkM3
OkM1CiAgICAgICAgICAgICBYNTA5djMgQXV0aG9yaXR5IEtleSBJZGVudGlmaWVyOiAKLSAgICAg
ICAgICAgICAgICBrZXlpZDo1QjpEQTpDODpDMTowOTpGMzo0RDo5MjozMDpCQzpFRjo0MzpGQjoy
Njo5MzoxRTpBRTowRDo5QTowRgorICAgICAgICAgICAgICAgIGtleWlkOjQxOjQ5OkZGOjhDOjY2
OjUwOjVGOjg3OkExOjA2OkE4OkJCOkFCOjhBOkREOjczOjBEOjBFOjM3OjFBCiAKICAgICAgICAg
ICAgIFg1MDl2MyBLZXkgVXNhZ2U6IAogICAgICAgICAgICAgICAgIERpZ2l0YWwgU2lnbmF0dXJl
LCBOb24gUmVwdWRpYXRpb24sIEtleSBFbmNpcGhlcm1lbnQKICAgICAgICAgICAgIFg1MDl2MyBF
eHRlbmRlZCBLZXkgVXNhZ2U6IAogICAgICAgICAgICAgICAgIFRMUyBXZWIgU2VydmVyIEF1dGhl
bnRpY2F0aW9uCiAgICAgICAgICAgICBYNTA5djMgU3ViamVjdCBBbHRlcm5hdGl2ZSBOYW1lOiAK
LSAgICAgICAgICAgICAgICBETlM6d2ViLXBsYXRmb3JtLnRlc3QsIEROUzpub3Qtd2ViLXBsYXRm
b3JtLnRlc3QsIEROUzp3d3cud2ViLXBsYXRmb3JtLnRlc3QsIEROUzp3d3cxLndlYi1wbGF0Zm9y
bS50ZXN0LCBETlM6d3d3Mi53ZWItcGxhdGZvcm0udGVzdCwgRE5TOnd3dy5ub3Qtd2ViLXBsYXRm
b3JtLnRlc3QsIEROUzp3d3cyLm5vdC13ZWItcGxhdGZvcm0udGVzdCwgRE5TOnd3dzEubm90LXdl
Yi1wbGF0Zm9ybS50ZXN0LCBETlM6eG4tLWx2ZS02bGFkLndlYi1wbGF0Zm9ybS50ZXN0LCBETlM6
eG4tLWx2ZS02bGFkLm5vdC13ZWItcGxhdGZvcm0udGVzdCwgRE5TOnhuLS1uOGo2ZHM1M2x3d2ty
cWh2MjhhLndlYi1wbGF0Zm9ybS50ZXN0LCBETlM6eG4tLW44ajZkczUzbHd3a3JxaHYyOGEubm90
LXdlYi1wbGF0Zm9ybS50ZXN0CisgICAgICAgICAgICAgICAgRE5TOndlYi1wbGF0Zm9ybS50ZXN0
LCBETlM6bm90LXdlYi1wbGF0Zm9ybS50ZXN0LCBETlM6d3d3LndlYi1wbGF0Zm9ybS50ZXN0LCBE
TlM6d3d3MS53ZWItcGxhdGZvcm0udGVzdCwgRE5TOnd3dzIud2ViLXBsYXRmb3JtLnRlc3QsIERO
Uzp3d3cubm90LXdlYi1wbGF0Zm9ybS50ZXN0LCBETlM6d3d3Lnd3dy53ZWItcGxhdGZvcm0udGVz
dCwgRE5TOnd3dzIubm90LXdlYi1wbGF0Zm9ybS50ZXN0LCBETlM6d3d3MS5ub3Qtd2ViLXBsYXRm
b3JtLnRlc3QsIEROUzp3d3cud3d3Mi53ZWItcGxhdGZvcm0udGVzdCwgRE5TOnd3dzIud3d3Lndl
Yi1wbGF0Zm9ybS50ZXN0LCBETlM6d3d3MS53d3cud2ViLXBsYXRmb3JtLnRlc3QsIEROUzp3d3cu
d3d3MS53ZWItcGxhdGZvcm0udGVzdCwgRE5TOnd3dzEud3d3MS53ZWItcGxhdGZvcm0udGVzdCwg
RE5TOnd3dzEud3d3Mi53ZWItcGxhdGZvcm0udGVzdCwgRE5TOnd3dzIud3d3Mi53ZWItcGxhdGZv
cm0udGVzdCwgRE5TOnd3dzIud3d3MS53ZWItcGxhdGZvcm0udGVzdCwgRE5TOnd3dy53d3cubm90
LXdlYi1wbGF0Zm9ybS50ZXN0LCBETlM6d3d3Lnd3dzIubm90LXdlYi1wbGF0Zm9ybS50ZXN0LCBE
TlM6d3d3MS53d3cubm90LXdlYi1wbGF0Zm9ybS50ZXN0LCBETlM6eG4tLWx2ZS02bGFkLndlYi1w
bGF0Zm9ybS50ZXN0LCBETlM6d3d3Lnd3dzEubm90LXdlYi1wbGF0Zm9ybS50ZXN0LCBETlM6d3d3
Mi53d3cubm90LXdlYi1wbGF0Zm9ybS50ZXN0LCBETlM6d3d3Mi53d3cyLm5vdC13ZWItcGxhdGZv
cm0udGVzdCwgRE5TOnd3dzIud3d3MS5ub3Qtd2ViLXBsYXRmb3JtLnRlc3QsIEROUzp3d3cxLnd3
dzEubm90LXdlYi1wbGF0Zm9ybS50ZXN0LCBETlM6d3d3MS53d3cyLm5vdC13ZWItcGxhdGZvcm0u
dGVzdCwgRE5TOnhuLS1sdmUtNmxhZC53d3cud2ViLXBsYXRmb3JtLnRlc3QsIEROUzp3d3cueG4t
LWx2ZS02bGFkLndlYi1wbGF0Zm9ybS50ZXN0LCBETlM6eG4tLWx2ZS02bGFkLm5vdC13ZWItcGxh
dGZvcm0udGVzdCwgRE5TOnhuLS1sdmUtNmxhZC53d3cxLndlYi1wbGF0Zm9ybS50ZXN0LCBETlM6
d3d3Mi54bi0tbHZlLTZsYWQud2ViLXBsYXRmb3JtLnRlc3QsIEROUzp3d3cxLnhuLS1sdmUtNmxh
ZC53ZWItcGxhdGZvcm0udGVzdCwgRE5TOnhuLS1sdmUtNmxhZC53d3cyLndlYi1wbGF0Zm9ybS50
ZXN0LCBETlM6eG4tLWx2ZS02bGFkLnd3dy5ub3Qtd2ViLXBsYXRmb3JtLnRlc3QsIEROUzp3d3cu
eG4tLWx2ZS02bGFkLm5vdC13ZWItcGxhdGZvcm0udGVzdCwgRE5TOnhuLS1sdmUtNmxhZC53d3cx
Lm5vdC13ZWItcGxhdGZvcm0udGVzdCwgRE5TOnd3dzIueG4tLWx2ZS02bGFkLm5vdC13ZWItcGxh
dGZvcm0udGVzdCwgRE5TOnd3dzEueG4tLWx2ZS02bGFkLm5vdC13ZWItcGxhdGZvcm0udGVzdCwg
RE5TOnhuLS1sdmUtNmxhZC53d3cyLm5vdC13ZWItcGxhdGZvcm0udGVzdCwgRE5TOnhuLS1uOGo2
ZHM1M2x3d2tycWh2MjhhLndlYi1wbGF0Zm9ybS50ZXN0LCBETlM6eG4tLWx2ZS02bGFkLnhuLS1s
dmUtNmxhZC53ZWItcGxhdGZvcm0udGVzdCwgRE5TOnhuLS1uOGo2ZHM1M2x3d2tycWh2MjhhLm5v
dC13ZWItcGxhdGZvcm0udGVzdCwgRE5TOnhuLS1uOGo2ZHM1M2x3d2tycWh2MjhhLnd3dy53ZWIt
cGxhdGZvcm0udGVzdCwgRE5TOnd3dy54bi0tbjhqNmRzNTNsd3drcnFodjI4YS53ZWItcGxhdGZv
cm0udGVzdCwgRE5TOnd3dzEueG4tLW44ajZkczUzbHd3a3JxaHYyOGEud2ViLXBsYXRmb3JtLnRl
c3QsIEROUzp4bi0tbjhqNmRzNTNsd3drcnFodjI4YS53d3cxLndlYi1wbGF0Zm9ybS50ZXN0LCBE
TlM6d3d3Mi54bi0tbjhqNmRzNTNsd3drcnFodjI4YS53ZWItcGxhdGZvcm0udGVzdCwgRE5TOnhu
LS1uOGo2ZHM1M2x3d2tycWh2MjhhLnd3dzIud2ViLXBsYXRmb3JtLnRlc3QsIEROUzp4bi0tbHZl
LTZsYWQueG4tLWx2ZS02bGFkLm5vdC13ZWItcGxhdGZvcm0udGVzdCwgRE5TOnhuLS1uOGo2ZHM1
M2x3d2tycWh2MjhhLnd3dy5ub3Qtd2ViLXBsYXRmb3JtLnRlc3QsIEROUzp3d3cueG4tLW44ajZk
czUzbHd3a3JxaHYyOGEubm90LXdlYi1wbGF0Zm9ybS50ZXN0LCBETlM6d3d3MS54bi0tbjhqNmRz
NTNsd3drcnFodjI4YS5ub3Qtd2ViLXBsYXRmb3JtLnRlc3QsIEROUzp4bi0tbjhqNmRzNTNsd3dr
cnFodjI4YS53d3cyLm5vdC13ZWItcGxhdGZvcm0udGVzdCwgRE5TOnhuLS1uOGo2ZHM1M2x3d2ty
cWh2MjhhLnd3dzEubm90LXdlYi1wbGF0Zm9ybS50ZXN0LCBETlM6d3d3Mi54bi0tbjhqNmRzNTNs
d3drcnFodjI4YS5ub3Qtd2ViLXBsYXRmb3JtLnRlc3QsIEROUzp4bi0tbjhqNmRzNTNsd3drcnFo
djI4YS54bi0tbHZlLTZsYWQud2ViLXBsYXRmb3JtLnRlc3QsIEROUzp4bi0tbHZlLTZsYWQueG4t
LW44ajZkczUzbHd3a3JxaHYyOGEud2ViLXBsYXRmb3JtLnRlc3QsIEROUzp4bi0tbHZlLTZsYWQu
eG4tLW44ajZkczUzbHd3a3JxaHYyOGEubm90LXdlYi1wbGF0Zm9ybS50ZXN0LCBETlM6eG4tLW44
ajZkczUzbHd3a3JxaHYyOGEueG4tLWx2ZS02bGFkLm5vdC13ZWItcGxhdGZvcm0udGVzdCwgRE5T
OnhuLS1uOGo2ZHM1M2x3d2tycWh2MjhhLnhuLS1uOGo2ZHM1M2x3d2tycWh2MjhhLndlYi1wbGF0
Zm9ybS50ZXN0LCBETlM6eG4tLW44ajZkczUzbHd3a3JxaHYyOGEueG4tLW44ajZkczUzbHd3a3Jx
aHYyOGEubm90LXdlYi1wbGF0Zm9ybS50ZXN0CiAgICAgU2lnbmF0dXJlIEFsZ29yaXRobTogc2hh
MjU2V2l0aFJTQUVuY3J5cHRpb24KLSAgICAgICAgIDE1Ojk4OjY4OjY5OjI1OmY2OmY3OmQ2OjA5
OjBiOjViOmQ2OmFjOmQ2OjQ5OjA2OjBlOjI0OgotICAgICAgICAgZTE6ZWU6Yjk6NDQ6OWU6ZDE6
MDM6MDM6ZWQ6M2E6YjM6Zjk6MjM6YzQ6MTQ6ZTg6ZmU6NTM6Ci0gICAgICAgICA3MDo3MDoyMTph
NjpkNDplMzplZTo4ZDpiYTo4NDozODpjZDo3MTozMjpjNzo0YTpjMDpmMToKLSAgICAgICAgIDMz
OmViOmJkOmJjOmVkOmYyOmQ4OmRjOmMzOmE3OmE3OmE2OjQ3OjZhOjY5OjZjOjE2OmVhOgotICAg
ICAgICAgZTY6NGQ6N2M6Nzc6MTg6MGQ6M2U6ODY6Mjk6OTE6MmI6NDk6ZDU6Yzk6MTk6MWE6NTM6
MTY6Ci0gICAgICAgICBhNzpmMDowMjpmNDo3MDphMjplNTo4YjpiYzphYTphNjo2Zjo0Zjo1Yjo0
MDoyNDowNDo2ODoKLSAgICAgICAgIDExOjlkOjllOjI2OjIwOmYyOmUzOjY4OjM2OjlhOmZhOjhm
OjdjOmIwOjI5OjA4OjM3OmM0OgotICAgICAgICAgMDY6MDg6ZmM6ZTQ6NDU6YmI6NGM6Nzg6YWU6
MmM6ZjE6YzE6YmY6ZDk6MjM6MTc6ZTU6NDM6Ci0gICAgICAgICAxODowZTowNjpkODo0YzpiNDoy
YTplZjpmOTo3YzpiZjowMjpkMjo2Mjo1MTo4MjplZDo5ZDoKLSAgICAgICAgIDY0OjgzOjNkOjAz
OmNkOjYxOjM4OmMwOjU3OmM2OjVlOjViOjNhOjQxOjkxOmRiOjNlOjgzOgotICAgICAgICAgMDU6
NGI6ODg6ODQ6ZTM6YWU6YmU6NGQ6NWQ6Zjk6NTk6MDc6MGM6MjE6MTY6ZmE6N2U6YWY6Ci0gICAg
ICAgICAyMzo5NzowNToyNTo0YzpiYjowMjpkMzoxMTo0YTo4NTo2ODpjMzphMzpjZjpkMDowYzox
NToKLSAgICAgICAgIDQ5OmY2OjMyOjBiOmY2OjJhOjAxOjkxOjNjOmFkOmM3OjMxOmRhOmRhOjQz
OmUyOjJjOmRiOgotICAgICAgICAgNTI6YzU6Mzc6YTA6YzM6Y2M6M2E6NWI6MmI6NzY6ZTU6NzQ6
NzQ6MjA6MWI6YzM6Zjc6MGM6Ci0gICAgICAgICBmZTo2ZDpiZjpiYgorICAgICAgICAgYWY6YzI6
ZWE6Y2M6NmE6NWU6NDk6ZTA6ZGI6NzI6MTQ6MDU6M2M6MjE6YTA6OGI6ZmY6YjY6CisgICAgICAg
ICBhOTo3MTo4MjpmNzo2MTpjZDoyMzoyYTowMDo2Njo5MTphYzowMTo5OTo2MzozODoxMToyMToK
KyAgICAgICAgIDg1OmIyOjU3OjkyOjBiOjNmOjc5OjY4OmY1OmQ4OjU5OjhiOmE3Ojc0OjE5OmVi
OjBiOmU3OgorICAgICAgICAgM2Q6ODY6NGU6NjY6ZDQ6ZTY6MmY6ZmY6ZWQ6NmM6N2Q6OWE6NWU6
MTI6NGU6YmY6Mzk6ZmY6CisgICAgICAgICBmNzpkMDpmYjo1Mjo1MzphMDpmYjpiMTo1Yzo5YTo5
MTo5MjozNjowMDpkODphNDo2ZjpmOToKKyAgICAgICAgIDljOjM2OjIxOmIyOmMyOjVlOjE0OjEx
OmNhOjU1OmU3Ojg4OjMwOjYwOjhkOjg2OmRhOjY1OgorICAgICAgICAgMjY6ZmY6ZTI6NDU6MzY6
MmE6MDk6M2Q6YTQ6YmI6Mzg6NjE6NGQ6NTc6ZTQ6Yzk6YjY6NTA6CisgICAgICAgICAzYzowNjoy
Zjo2YjpiZjowNDozNDo0Mjo1NDpkYzo1MzpiNjo2MTpjNTo0ZTo0MDowMDpkNjoKKyAgICAgICAg
IDVlOjE5OjE3OjNhOjU0OjJjOmM1OjE2OjdhOjZkOjRhOjcwOjU2OjQ1OmNkOjk5OjVhOjJhOgor
ICAgICAgICAgZDE6YTc6NGU6MzU6OTc6M2Q6ZDg6Yzk6OTU6ODA6YWI6MTU6NDI6ODY6ZjY6YTA6
YTY6YzM6CisgICAgICAgICAyMTpjMTo5YTowNzozNDo0OTphZDo2MTozYzpiYzo5NDpiMjoyZDo5
MjpmNzo0NDo4MDowMToKKyAgICAgICAgIDVmOjI3OmJkOjgzOmY1OjUxOjIyOjM5OmNkOjk4OmIx
OjM5OjIzOmI4OmY0OjVjOjA4OjIwOgorICAgICAgICAgOWU6ZmU6ZjE6MmQ6OWE6ZTk6OWI6Yzc6
NWU6Yjg6MzM6OGI6MTY6Nzc6NTI6M2Q6Yzk6N2E6CisgICAgICAgICA0Mzo5ZToyNTpkMDpjNzo1
YTo5NjowODo1MzoxYTpkYzo3NTo1Mzo3NTo0NDo2MjoxODo3YzoKKyAgICAgICAgIGVmOmZiOjcz
OjUyCiAtLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KLU1JSUVuRENDQTRTZ0F3SUJBZ0lEQzMr
Wk1BMEdDU3FHU0liM0RRRUJDd1VBTUIweEd6QVpCZ05WQkFNTUVuZGwKLVlpMXdiR0YwWm05eWJT
MTBaWE4wY3pBZUZ3MHhPREEzTVRNeE1qVTVNVEphRncweU9EQTNNVEF4TWpVNU1USmEKK01JSU1z
akNDQzVxZ0F3SUJBZ0lEQmJGSU1BMEdDU3FHU0liM0RRRUJDd1VBTUIweEd6QVpCZ05WQkFNTUVu
ZGwKK1lpMXdiR0YwWm05eWJTMTBaWE4wY3pBZUZ3MHhPVEV3TVRReE16UTVNamxhRncweU9URXdN
VEV4TXpRNU1qbGEKIE1Cd3hHakFZQmdOVkJBTU1FWGRsWWkxd2JHRjBabTl5YlM1MFpYTjBNSUlC
SWpBTkJna3Foa2lHOXcwQkFRRUYKLUFBT0NBUThBTUlJQkNnS0NBUUVBMkZOb08xWFNqbFU4VDdp
QWRMZ2RTWXc4MHJXMUZTSTNnU1ZDNTFpcXRxcSsKLURqQ09vSmRQOTREWjZhSDA2MWcvbzVZb3VO
cGFxZzFCMzJ3ZFVxN055QllDc0Fwd2tWZCtwZHNRcFAwNzl3YlYKLXRZbHFramJHWnNXbTBteDI5
VTlLeTI3RGt5Miswais5RktkS09WcndHTnhCRzNDQVpZR0ZSYU9xR2ZEK1ZlMFEKLTJWWnNqVlJw
Uzk1RkFROVFvWWZYREVNaW5SdE9zdXh1ZHVPczlzSFpzR25vTUJxN1BkT2Q0NHh3UVhjaUFseXgK
LU15dUMzdHE0R1BUU21CcHE4S0FrVnFnSzZRd2l6emhzUTVvbTlvWFp0Ujl0NU0vdE9TTlQyNk9P
ZmlicllSdE8KLVhheXdRcjRlWEU0WWdHTnNEUWxvQ0FhaDlBUUx3emVTNktvT3hkRkx3UUlEQVFB
Qm80SUI1RENDQWVBd0NRWUQKLVZSMFRCQUl3QURBZEJnTlZIUTRFRmdRVTNDZHNkT1pITVpYWXpK
WmI1SlJ1akNJdksrb3dId1lEVlIwakJCZ3cKLUZvQVVXOXJJd1FuelRaSXd2TzlEK3lhVEhxNE5t
Zzh3Q3dZRFZSMFBCQVFEQWdYZ01CTUdBMVVkSlFRTU1Bb0cKLUNDc0dBUVVGQndNQk1JSUJid1lE
VlIwUkJJSUJaakNDQVdLQ0VYZGxZaTF3YkdGMFptOXliUzUwWlhOMGdoVnUKK0FBT0NBUThBTUlJ
QkNnS0NBUUVBcTJWMVY1amo1YXFQL3RzWTllVDRIR1JoeHFQMjZINGtFTjRKZWlTOVZWOVIKK3Fi
V0NEWVU2dHJGSVh6ZkxRbS9uQjhzMnFUdmFGSnNLc0tlVktlN1NlQ0tlN2hOZjhNRXNWWEx3bXNC
dWZ6emUKK1lnK3g5c0xKaEthUjF6bk55NWRQT2Y0TTNyUHRmalovcWdFWnFkV3hmNzQ2WlErbFhS
OXF3VnQ3Q2R3d0tBV3EKK0Y1UURIM2tRQlE2V3FtdnZaY1RLek9WcEZCNTNVUHJoRE9wR2NucjRj
cWRObHd6OUx5OERRclR5eGdkSHBnQUgKK3d1OGFjRVJsUmtyUkxGSVgvNW5QY2pUV2lvS2dTaU5K
NktGWjdsTjBSblNoejlmTDNJN1FVbGRKV0lJMzRQV3QKK096Z2J0WVlFSDM0YUg0dGdjblgyZ3FR
UURNeFlaYnRic3JPbW9WWkNhUUlEQVFBQm80SUorakNDQ2ZZd0NRWUQKK1ZSMFRCQUl3QURBZEJn
TlZIUTRFRmdRVUtoZ0xDU0p1S05MYi9jSXRRS2J6T0dKdXg4VXdId1lEVlIwakJCZ3cKK0ZvQVVR
VW4vakdaUVg0ZWhCcWk3cTRyZGN3ME9OeG93Q3dZRFZSMFBCQVFEQWdYZ01CTUdBMVVkSlFRTU1B
b0cKK0NDc0dBUVVGQndNQk1JSUpoUVlEVlIwUkJJSUpmRENDQ1hpQ0VYZGxZaTF3YkdGMFptOXli
UzUwWlhOMGdoVnUKIGIzUXRkMlZpTFhCc1lYUm1iM0p0TG5SbGMzU0NGWGQzZHk1M1pXSXRjR3ho
ZEdadmNtMHVkR1Z6ZElJV2QzZDMKIE1TNTNaV0l0Y0d4aGRHWnZjbTB1ZEdWemRJSVdkM2QzTWk1
M1pXSXRjR3hoZEdadmNtMHVkR1Z6ZElJWmQzZDMKLUxtNXZkQzEzWldJdGNHeGhkR1p2Y20wdWRH
VnpkSUlhZDNkM01pNXViM1F0ZDJWaUxYQnNZWFJtYjNKdExuUmwKLWMzU0NHbmQzZHpFdWJtOTBM
WGRsWWkxd2JHRjBabTl5YlM1MFpYTjBnaDU0YmkwdGJIWmxMVFpzWVdRdWQyVmkKLUxYQnNZWFJt
YjNKdExuUmxjM1NDSW5odUxTMXNkbVV0Tm14aFpDNXViM1F0ZDJWaUxYQnNZWFJtYjNKdExuUmwK
LWMzU0NLWGh1TFMxdU9HbzJaSE0xTTJ4M2QydHljV2gyTWpoaExuZGxZaTF3YkdGMFptOXliUzUw
WlhOMGdpMTQKLWJpMHRiamhxTm1Sek5UTnNkM2RyY25Gb2RqSTRZUzV1YjNRdGQyVmlMWEJzWVhS
bWIzSnRMblJsYzNRd0RRWUoKLUtvWklodmNOQVFFTEJRQURnZ0VCQUJXWWFHa2w5dmZXQ1F0YjFx
eldTUVlPSk9IdXVVU2UwUU1EN1RxeitTUEUKLUZPaitVM0J3SWFiVTQrNk51b1E0elhFeXgwckE4
VFBydmJ6dDh0amN3NmVucGtkcWFXd1c2dVpOZkhjWURUNkcKLUtaRXJTZFhKR1JwVEZxZndBdlJ3
b3VXTHZLcW1iMDliUUNRRWFCR2RuaVlnOHVOb05wcjZqM3l3S1FnM3hBWUkKLS9PUkZ1MHg0cml6
eHdiL1pJeGZsUXhnT0J0aE10Q3J2K1h5L0F0SmlVWUx0bldTRFBRUE5ZVGpBVjhaZVd6cEIKLWtk
cytnd1ZMaUlUanJyNU5YZmxaQnd3aEZ2cCtyeU9YQlNWTXV3TFRFVXFGYU1Pano5QU1GVW4yTWd2
MktnR1IKLVBLM0hNZHJhUStJczIxTEZONkREekRwYkszYmxkSFFnRzhQM0RQNXR2N3M9CitMbTV2
ZEMxM1pXSXRjR3hoZEdadmNtMHVkR1Z6ZElJWmQzZDNMbmQzZHk1M1pXSXRjR3hoZEdadmNtMHVk
R1Z6CitkSUlhZDNkM01pNXViM1F0ZDJWaUxYQnNZWFJtYjNKdExuUmxjM1NDR25kM2R6RXVibTkw
TFhkbFlpMXdiR0YwCitabTl5YlM1MFpYTjBnaHAzZDNjdWQzZDNNaTUzWldJdGNHeGhkR1p2Y20w
dWRHVnpkSUlhZDNkM01pNTNkM2N1CitkMlZpTFhCc1lYUm1iM0p0TG5SbGMzU0NHbmQzZHpFdWQz
ZDNMbmRsWWkxd2JHRjBabTl5YlM1MFpYTjBnaHAzCitkM2N1ZDNkM01TNTNaV0l0Y0d4aGRHWnZj
bTB1ZEdWemRJSWJkM2QzTVM1M2QzY3hMbmRsWWkxd2JHRjBabTl5CitiUzUwWlhOMGdodDNkM2N4
TG5kM2R6SXVkMlZpTFhCc1lYUm1iM0p0TG5SbGMzU0NHM2QzZHpJdWQzZDNNaTUzCitaV0l0Y0d4
aGRHWnZjbTB1ZEdWemRJSWJkM2QzTWk1M2QzY3hMbmRsWWkxd2JHRjBabTl5YlM1MFpYTjBnaDEz
CitkM2N1ZDNkM0xtNXZkQzEzWldJdGNHeGhkR1p2Y20wdWRHVnpkSUllZDNkM0xuZDNkekl1Ym05
MExYZGxZaTF3CitiR0YwWm05eWJTNTBaWE4wZ2g1M2QzY3hMbmQzZHk1dWIzUXRkMlZpTFhCc1lY
Um1iM0p0TG5SbGMzU0NIbmh1CitMUzFzZG1VdE5teGhaQzUzWldJdGNHeGhkR1p2Y20wdWRHVnpk
SUllZDNkM0xuZDNkekV1Ym05MExYZGxZaTF3CitiR0YwWm05eWJTNTBaWE4wZ2g1M2QzY3lMbmQz
ZHk1dWIzUXRkMlZpTFhCc1lYUm1iM0p0TG5SbGMzU0NIM2QzCitkekl1ZDNkM01pNXViM1F0ZDJW
aUxYQnNZWFJtYjNKdExuUmxjM1NDSDNkM2R6SXVkM2QzTVM1dWIzUXRkMlZpCitMWEJzWVhSbWIz
SnRMblJsYzNTQ0gzZDNkekV1ZDNkM01TNXViM1F0ZDJWaUxYQnNZWFJtYjNKdExuUmxjM1NDCitI
M2QzZHpFdWQzZDNNaTV1YjNRdGQyVmlMWEJzWVhSbWIzSnRMblJsYzNTQ0luaHVMUzFzZG1VdE5t
eGhaQzUzCitkM2N1ZDJWaUxYQnNZWFJtYjNKdExuUmxjM1NDSW5kM2R5NTRiaTB0YkhabExUWnNZ
V1F1ZDJWaUxYQnNZWFJtCitiM0p0TG5SbGMzU0NJbmh1TFMxc2RtVXRObXhoWkM1dWIzUXRkMlZp
TFhCc1lYUm1iM0p0TG5SbGMzU0NJM2h1CitMUzFzZG1VdE5teGhaQzUzZDNjeExuZGxZaTF3YkdG
MFptOXliUzUwWlhOMGdpTjNkM2N5TG5odUxTMXNkbVV0CitObXhoWkM1M1pXSXRjR3hoZEdadmNt
MHVkR1Z6ZElJamQzZDNNUzU0YmkwdGJIWmxMVFpzWVdRdWQyVmlMWEJzCitZWFJtYjNKdExuUmxj
M1NDSTNodUxTMXNkbVV0Tm14aFpDNTNkM2N5TG5kbFlpMXdiR0YwWm05eWJTNTBaWE4wCitnaVo0
YmkwdGJIWmxMVFpzWVdRdWQzZDNMbTV2ZEMxM1pXSXRjR3hoZEdadmNtMHVkR1Z6ZElJbWQzZDNM
bmh1CitMUzFzZG1VdE5teGhaQzV1YjNRdGQyVmlMWEJzWVhSbWIzSnRMblJsYzNTQ0ozaHVMUzFz
ZG1VdE5teGhaQzUzCitkM2N4TG01dmRDMTNaV0l0Y0d4aGRHWnZjbTB1ZEdWemRJSW5kM2QzTWk1
NGJpMHRiSFpsTFRac1lXUXVibTkwCitMWGRsWWkxd2JHRjBabTl5YlM1MFpYTjBnaWQzZDNjeExu
aHVMUzFzZG1VdE5teGhaQzV1YjNRdGQyVmlMWEJzCitZWFJtYjNKdExuUmxjM1NDSjNodUxTMXNk
bVV0Tm14aFpDNTNkM2N5TG01dmRDMTNaV0l0Y0d4aGRHWnZjbTB1CitkR1Z6ZElJcGVHNHRMVzQ0
YWpaa2N6VXpiSGQzYTNKeGFIWXlPR0V1ZDJWaUxYQnNZWFJtYjNKdExuUmxjM1NDCitLM2h1TFMx
c2RtVXRObXhoWkM1NGJpMHRiSFpsTFRac1lXUXVkMlZpTFhCc1lYUm1iM0p0TG5SbGMzU0NMWGh1
CitMUzF1T0dvMlpITTFNMngzZDJ0eWNXaDJNamhoTG01dmRDMTNaV0l0Y0d4aGRHWnZjbTB1ZEdW
emRJSXRlRzR0CitMVzQ0YWpaa2N6VXpiSGQzYTNKeGFIWXlPR0V1ZDNkM0xuZGxZaTF3YkdGMFpt
OXliUzUwWlhOMGdpMTNkM2N1CitlRzR0TFc0NGFqWmtjelV6YkhkM2EzSnhhSFl5T0dFdWQyVmlM
WEJzWVhSbWIzSnRMblJsYzNTQ0xuZDNkekV1CitlRzR0TFc0NGFqWmtjelV6YkhkM2EzSnhhSFl5
T0dFdWQyVmlMWEJzWVhSbWIzSnRMblJsYzNTQ0xuaHVMUzF1CitPR28yWkhNMU0yeDNkMnR5Y1do
Mk1qaGhMbmQzZHpFdWQyVmlMWEJzWVhSbWIzSnRMblJsYzNTQ0xuZDNkekl1CitlRzR0TFc0NGFq
WmtjelV6YkhkM2EzSnhhSFl5T0dFdWQyVmlMWEJzWVhSbWIzSnRMblJsYzNTQ0xuaHVMUzF1CitP
R28yWkhNMU0yeDNkMnR5Y1doMk1qaGhMbmQzZHpJdWQyVmlMWEJzWVhSbWIzSnRMblJsYzNTQ0wz
aHVMUzFzCitkbVV0Tm14aFpDNTRiaTB0YkhabExUWnNZV1F1Ym05MExYZGxZaTF3YkdGMFptOXli
UzUwWlhOMGdqRjRiaTB0CitiamhxTm1Sek5UTnNkM2RyY25Gb2RqSTRZUzUzZDNjdWJtOTBMWGRs
WWkxd2JHRjBabTl5YlM1MFpYTjBnakYzCitkM2N1ZUc0dExXNDRhalprY3pVemJIZDNhM0p4YUhZ
eU9HRXVibTkwTFhkbFlpMXdiR0YwWm05eWJTNTBaWE4wCitnakozZDNjeExuaHVMUzF1T0dvMlpI
TTFNMngzZDJ0eWNXaDJNamhoTG01dmRDMTNaV0l0Y0d4aGRHWnZjbTB1CitkR1Z6ZElJeWVHNHRM
VzQ0YWpaa2N6VXpiSGQzYTNKeGFIWXlPR0V1ZDNkM01pNXViM1F0ZDJWaUxYQnNZWFJtCitiM0p0
TG5SbGMzU0NNbmh1TFMxdU9HbzJaSE0xTTJ4M2QydHljV2gyTWpoaExuZDNkekV1Ym05MExYZGxZ
aTF3CitiR0YwWm05eWJTNTBaWE4wZ2pKM2QzY3lMbmh1TFMxdU9HbzJaSE0xTTJ4M2QydHljV2gy
TWpoaExtNXZkQzEzCitaV0l0Y0d4aGRHWnZjbTB1ZEdWemRJSTJlRzR0TFc0NGFqWmtjelV6Ykhk
M2EzSnhhSFl5T0dFdWVHNHRMV3gyCitaUzAyYkdGa0xuZGxZaTF3YkdGMFptOXliUzUwWlhOMGdq
WjRiaTB0YkhabExUWnNZV1F1ZUc0dExXNDRhalprCitjelV6YkhkM2EzSnhhSFl5T0dFdWQyVmlM
WEJzWVhSbWIzSnRMblJsYzNTQ09uaHVMUzFzZG1VdE5teGhaQzU0CitiaTB0YmpocU5tUnpOVE5z
ZDNkcmNuRm9kakk0WVM1dWIzUXRkMlZpTFhCc1lYUm1iM0p0TG5SbGMzU0NPbmh1CitMUzF1T0dv
MlpITTFNMngzZDJ0eWNXaDJNamhoTG5odUxTMXNkbVV0Tm14aFpDNXViM1F0ZDJWaUxYQnNZWFJt
CitiM0p0TG5SbGMzU0NRWGh1TFMxdU9HbzJaSE0xTTJ4M2QydHljV2gyTWpoaExuaHVMUzF1T0dv
MlpITTFNMngzCitkMnR5Y1doMk1qaGhMbmRsWWkxd2JHRjBabTl5YlM1MFpYTjBna1Y0YmkwdGJq
aHFObVJ6TlROc2QzZHJjbkZvCitkakk0WVM1NGJpMHRiamhxTm1Sek5UTnNkM2RyY25Gb2RqSTRZ
UzV1YjNRdGQyVmlMWEJzWVhSbWIzSnRMblJsCitjM1F3RFFZSktvWklodmNOQVFFTEJRQURnZ0VC
QUsvQzZzeHFYa25nMjNJVUJUd2hvSXYvdHFseGd2ZGh6U01xCitBR2FSckFHWll6Z1JJWVd5VjVJ
TFAzbG85ZGhaaTZkMEdlc0w1ejJHVG1iVTVpLy83V3g5bWw0U1RyODUvL2ZRCisrMUpUb1B1eFhK
cVJrallBMktSditadzJJYkxDWGhRUnlsWG5pREJnalliYVpTYi80a1UyS2drOXBMczRZVTFYCis1
TW0yVUR3R0wydS9CRFJDVk54VHRtSEZUa0FBMWw0WkZ6cFVMTVVXZW0xS2NGWkZ6WmxhS3RHblRq
V1hQZGpKCitsWUNyRlVLRzlxQ213eUhCbWdjMFNhMWhQTHlVc2kyUzkwU0FBVjhudllQMVVTSTV6
Wml4T1NPNDlGd0lJSjcrCis4UzJhNlp2SFhyZ3ppeFozVWozSmVrT2VKZERIV3BZSVV4cmNkVk4x
UkdJWWZPLzdjMUk9CiAtLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2NpL2F6dXJlL1JF
QURNRS5tZCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvY2kvYXp1cmUvUkVBRE1FLm1kCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmFmZTUwMjFlZmNhZDc4YTEzZDE3Njdm
YjQyM2Q4NDY1NTdiOTJlZTAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2NpL2F6dXJlL1JFQURNRS5tZApAQCAtMCww
ICsxLDIgQEAKK1RoZXNlIGFyZSBzdGVwIHRlbXBsYXRlcyBmb3IgQXp1cmUgUGlwZWxpbmVzLCB1
c2VkIGluIGAuYXp1cmUtcGlwZWxpbmVzLnltbGAKK2luIHRoZSByb290IG9mIHRoZSByZXBvc2l0
b3J5LgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy9jaS9henVyZS9hZmZlY3RlZF90ZXN0cy55bWwgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2NpL2F6dXJlL2FmZmVjdGVkX3Rlc3Rz
LnltbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi44MDc2YmMzODY5ODZlZDQ4YTdhZjUwZmQ0OGE1OWE1NDRiZjhjM2Jj
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy9jaS9henVyZS9hZmZlY3RlZF90ZXN0cy55bWwKQEAgLTAsMCArMSwyNSBA
QAorcGFyYW1ldGVyczoKKyAgY2hlY2tvdXRDb21taXQ6ICcnCisgIGFmZmVjdGVkUmFuZ2U6ICdI
RUFEXjEnCisgIGFydGlmYWN0TmFtZTogJycKKworc3RlcHM6CistIHRlbXBsYXRlOiBjaGVja291
dC55bWwKKy0gJHt7IGlmIG5lKHBhcmFtZXRlcnMuY2hlY2tvdXRDb21taXQsICcnKSB9fToKKyAg
LSBzY3JpcHQ6IGdpdCBjaGVja291dCAke3sgcGFyYW1ldGVycy5jaGVja291dENvbW1pdCB9fQor
ICAgIGRpc3BsYXlOYW1lOiAnQ2hlY2tvdXQgJHt7IHBhcmFtZXRlcnMuY2hlY2tvdXRDb21taXQg
fX0nCistIHRlbXBsYXRlOiBwaXBfaW5zdGFsbC55bWwKKyAgcGFyYW1ldGVyczoKKyAgICBwYWNr
YWdlczogdmlydHVhbGVudgorLSB0ZW1wbGF0ZTogaW5zdGFsbF9mb250cy55bWwKKy0gdGVtcGxh
dGU6IGluc3RhbGxfY2VydHMueW1sCistIHRlbXBsYXRlOiBpbnN0YWxsX3NhZmFyaS55bWwKKy0g
dGVtcGxhdGU6IHVwZGF0ZV9ob3N0cy55bWwKKy0gdGVtcGxhdGU6IHVwZGF0ZV9tYW5pZmVzdC55
bWwKKy0gc2NyaXB0OiBub19wcm94eT0nKicgLi93cHQgcnVuIC0teWVzIC0tbm8tcGF1c2UgLS1u
by1mYWlsLW9uLXVuZXhwZWN0ZWQgLS1uby1yZXN0YXJ0LW9uLXVuZXhwZWN0ZWQgLS1hZmZlY3Rl
ZCAke3sgcGFyYW1ldGVycy5hZmZlY3RlZFJhbmdlIH19IC0tbG9nLXdwdHJlcG9ydCAkKEJ1aWxk
LkFydGlmYWN0U3RhZ2luZ0RpcmVjdG9yeSkvd3B0X3JlcG9ydC5qc29uIC0tbG9nLXdwdHNjcmVl
bnNob3QgJChCdWlsZC5BcnRpZmFjdFN0YWdpbmdEaXJlY3RvcnkpL3dwdF9zY3JlZW5zaG90LnR4
dCAtLWNoYW5uZWwgcHJldmlldyBzYWZhcmkKKyAgZGlzcGxheU5hbWU6ICdSdW4gdGVzdHMnCist
IHRhc2s6IFB1Ymxpc2hCdWlsZEFydGlmYWN0c0AxCisgIGRpc3BsYXlOYW1lOiAnUHVibGlzaCBy
ZXN1bHRzJworICBpbnB1dHM6CisgICAgYXJ0aWZhY3ROYW1lOiAnJHt7IHBhcmFtZXRlcnMuYXJ0
aWZhY3ROYW1lIH19JworICBjb25kaXRpb246IHN1Y2NlZWRlZE9yRmFpbGVkKCkKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvY2kv
YXp1cmUvY2hlY2tvdXQueW1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy9jaS9henVyZS9jaGVja291dC55bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjE4YzU3MTQ2
NTk2M2E0NzhhMzA4ODk5MzI4ZDVmYTU4NTFkNDkxZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvY2kvYXp1cmUvY2hl
Y2tvdXQueW1sCkBAIC0wLDAgKzEsNCBAQAorc3RlcHM6CistIGNoZWNrb3V0OiBzZWxmCisgIGZl
dGNoRGVwdGg6IDUwCisgIHN1Ym1vZHVsZXM6IGZhbHNlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2NpL2F6dXJlL2NsZWFudXBf
d2luMTAueW1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy9jaS9henVyZS9jbGVhbnVwX3dpbjEwLnltbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mNDk1YTBjNTU0NTM3
ZjExNjE5ODFlMTljMTJjNTk3YmE0MWVmMmIyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9jaS9henVyZS9jbGVhbnVw
X3dpbjEwLnltbApAQCAtMCwwICsxLDExOSBAQAorIyBUaGlzIGlzIGNsZWFudXAgZm9yIHVwZGF0
ZV9ob3N0cy55bWwgYW5kIGtpbGxpbmcgYWxsIEVkZ2UgYW5kIFdlYkRyaXZlcgorIyBwcm9jZXNz
ZXMgdG8gbGVhdmUgdGhlIGFnZW50IGluIGEgY2xlYW4gc3RhdGUgZm9yIHRoZSBuZXh0IGpvYi4g
VGhpcyBpcworIyBuZWNlc3NhcnkgYmVjYXVzZSB0aGUgV2luZG93cyAxMCBhZ2VudHMgYXJlbid0
IHJlc2V0IGJldHdlZW4gZWFjaCBqb2IuCitzdGVwczoKKy0gcG93ZXJzaGVsbDogfAorICAgIGZ1
bmN0aW9uIFVuaW5zdGFsbEVkZ2UoJGVkZ2VQYXRoLCAkdW5pbnN0YWxsQXJncykgeworICAgICAg
JGV4aXRDb2RlID0gMAorICAgICAgdHJ5IHsKKyAgICAgICAgY21kIC9jIHRhc2traWxsIC9mIC9p
bSBtc2VkZ2UqIGA+IG51bCAyYD4gbnVsCisgICAgICAgIGNtZCAvYyB0YXNra2lsbCAvZiAvaW0g
c2V0dXAuZXhlIGA+IG51bCAyYD4gbnVsCisgICAgICAgIGlmIChUZXN0LVBhdGggJGVkZ2VQYXRo
KSB7CisgICAgICAgICAgJGluc3RhbGxlclBhdGggPSBHZXQtQ2hpbGRJdGVtIC1QQVRIICRlZGdl
UGF0aCAtRmlsdGVyICJzZXR1cC5leGUiIC1SZWN1cnNlIHwgU2VsZWN0IC1GaXJzdCAxIEZ1bGxO
YW1lCisgICAgICAgICAgaWYoLW5vdCgkaW5zdGFsbGVyUGF0aCAtZXEgJG51bCkgLWFuZCAoVGVz
dC1QYXRoICRpbnN0YWxsZXJQYXRoLkZ1bGxOYW1lKSkgeworICAgICAgICAgICAgV3JpdGUtSG9z
dCAiVW5pbnN0YWxsOiAkKCRpbnN0YWxsZXJQYXRoLkZ1bGxOYW1lKSAkdW5pbnN0YWxsQXJncyIK
KyAgICAgICAgICAgICRzZXR1cCA9IFN0YXJ0LVByb2Nlc3MgIiQoJGluc3RhbGxlclBhdGguRnVs
bE5hbWUpIiAtQXJndW1lbnRMaXN0ICR1bmluc3RhbGxBcmdzIC1QYXNzVGhydSAtV2FpdAorICAg
ICAgICAgICAgJGV4aXRDb2RlID0gJHNldHVwLkV4aXRDb2RlCisgICAgICAgICAgICBpZiAoJGV4
aXRDb2RlIC1uZSAkZXhpdENvZGVTdWNjZXNzKSB7CisgICAgICAgICAgICAgIFdyaXRlLUhvc3Qg
IlVuaW5zdGFsbCBmYWlsZWQgd2l0aCBFeGl0Q29kZT0kZXhpdENvZGUiCisgICAgICAgICAgICB9
CisgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIFdyaXRlLUhvc3QgIkZhaWxlZCB0byBm
aW5kIHNldHVwLmV4ZSB1bmRlciAkZWRnZVBhdGgiCisgICAgICAgICAgfQorICAgICAgICB9Cisg
ICAgICB9IGNhdGNoIFtFeGNlcHRpb25dIHsKKyAgICAgICAgV3JpdGUtSG9zdCAiRmFpbGVkIHRv
IHVuaW5zdGFsbCBFZGdlIGZyb20gJGVkZ2VQYXRoLiBFUlJPUj0gJCgkXy5FeGNlcHRpb24uTWVz
c2FnZSkiIC1Gb3JlZ3JvdW5kQ29sb3IgUmVkCisgICAgICB9CisgICAgICByZXR1cm4gJGV4aXRD
b2RlCisgICAgfQorCisgICAgZnVuY3Rpb24gSXNFZGdlUnVubmluZygpIHsKKyAgICAgIHJldHVy
biAoR2V0LVByb2Nlc3MgfCBXaGVyZS1PYmplY3QgeyAkXy5OYW1lIC1lcSAibXNlZGdlIiB9KS5M
ZW5ndGggLWd0IDAKKyAgICB9CisKKyAgICAjIFVuaW5zdGFsbCBleGl0IGNvZGUgc3VjY2VzcyBm
b3IgRWRnZQorICAgICRleGl0Q29kZVN1Y2Nlc3MgPSAxOQorICAgICMgcmVzdG9yZSBob3N0cyBm
aWxlCisgICAgJGhvc3RGaWxlID0gIiRlbnY6c3lzdGVtcm9vdFxTeXN0ZW0zMlxkcml2ZXJzXGV0
Y1xob3N0cyIKKyAgICBDb3B5LUl0ZW0gLVBhdGggIiRob3N0RmlsZS5iYWNrIiAtRGVzdGluYXRp
b24gJGhvc3RGaWxlIC1Gb3JjZQorCisgICAgIyB1bmluc3RhbGwgRWRnZQorICAgICRzdGFibGVF
eGl0Q29kZSA9IFVuaW5zdGFsbEVkZ2UgIiRlbnY6bG9jYWxhcHBkYXRhXE1pY3Jvc29mdFxFZGdl
IiAiLS11bmluc3RhbGwgLS1mb3JjZS11bmluc3RhbGwgLS12ZXJib3NlLWxvZ2dpbmciCisgICAg
IyB1bmluc3RhbGwgRWRnZSBCZXRhIGNoYW5uZWwKKyAgICAkYmV0YUV4aXRDb2RlID0gVW5pbnN0
YWxsRWRnZSAiJGVudjpzeXN0ZW1kcml2ZVxQcm9ncmFtIEZpbGVzICh4ODYpXE1pY3Jvc29mdFxF
ZGdlIEJldGEiICItLXVuaW5zdGFsbCAtLW1zZWRnZS1iZXRhIC0tZm9yY2UtdW5pbnN0YWxsIC0t
dmVyYm9zZS1sb2dnaW5nIgorICAgICMgdW5pbnN0YWxsIEVkZ2UgRGV2IGNoYW5uZWwKKyAgICAk
ZGV2RXhpdENvZGUgPSBVbmluc3RhbGxFZGdlICIkZW52OnN5c3RlbWRyaXZlXFByb2dyYW0gRmls
ZXMgKHg4NilcTWljcm9zb2Z0XEVkZ2UgRGV2IiAiLS11bmluc3RhbGwgLS1tc2VkZ2UtZGV2IC0t
Zm9yY2UtdW5pbnN0YWxsIC0tdmVyYm9zZS1sb2dnaW5nIgorICAgICMgdW5pbnN0YWxsIEVkZ2Ug
Q2FuYXJ5IGNoYW5uZWwKKyAgICAkY2FuYXJ5RXhpdENvZGUgPSBVbmluc3RhbGxFZGdlICIkZW52
OmxvY2FsYXBwZGF0YVxNaWNyb3NvZnRcRWRnZSBTeFMiICItLXVuaW5zdGFsbCAtLW1zZWRnZS1z
eHMgLS1mb3JjZS11bmluc3RhbGwgLS12ZXJib3NlLWxvZ2dpbmciCisKKyAgICAjIENoZWNrIGlm
IEVkZ2UgaXMgc3RpbGwgcnVubmluZyBhbmQgdHJ5IHRvIGNsb3NlIGl0LgorICAgICMgSWYgd2Ug
ZmFpbCB0byBjbG9zZSBpdCwgdGhlbiByZWJvb3QgdGhlIHN5c3RlbQorICAgICMgYXMgdGhpcyBs
aW5nZXJpbmcgcHJvY2VzcyBjYW4gbGVhZCB0byBydW4gaW5zdGFiaWxpdHkuCisgICAgaWYgKElz
RWRnZVJ1bm5pbmcpIHsKKyAgICAgIFdyaXRlLUhvc3QgIkZvdW5kIEVkZ2UgcHJvY2VzcyBydW5u
aW5nLCB0cnkgdG8gY2xvc2UgaXQuIgorICAgICAgU3RvcC1Qcm9jZXNzIC1OYW1lICJtc2VkZ2Ui
IC1Gb3JjZQorICAgICAgaWYgKElzRWRnZVJ1bm5pbmcpIHsKKyAgICAgICAgV3JpdGUtSG9zdCAi
RmFpbGVkIHRvIGNsb3NlIHJ1bm5pbmcgRWRnZSBwcm9jZXNzLCByZWJvb3QgdGhlIHN5c3RlbS4i
IC1Gb3JlZ3JvdW5kQ29sb3IgUmVkCisgICAgICAgIFJlc3RhcnQtQ29tcHV0ZXIgLUZvcmNlCisg
ICAgICB9CisgICAgfQorICAgIGlmICgoJHN0YWJsZUV4aXRDb2RlIC1uZSAkZXhpdENvZGVTdWNj
ZXNzKSAtYW5kCisgICAgICAgICgkYmV0YUV4aXRDb2RlIC1uZSAkZXhpdENvZGVTdWNjZXNzKSAt
YW5kCisgICAgICAgICgkZGV2RXhpdENvZGUgLW5lICRleGl0Q29kZVN1Y2Nlc3MpIC1hbmQKKyAg
ICAgICAgKCRjYW5hcnlFeGl0Q29kZSAtbmUgJGV4aXRDb2RlU3VjY2VzcykpIHsKKyAgICAgIENv
cHktSXRlbSAtUGF0aCAiJGVudjp0ZW1wXCplZGdlKi5sb2ciIC1EZXN0aW5hdGlvbiAkKEJ1aWxk
LkFydGlmYWN0U3RhZ2luZ0RpcmVjdG9yeSkgLUZvcmNlCisgICAgICBUaHJvdyAiRmFpbGVkIHRv
IHVuaW5zdGFsbCBFZGdlLiIKKyAgICB9IGVsc2UgeworICAgICAgV3JpdGUtSG9zdCAiU3VjY2Vz
c2Z1bGx5IHVuaW5zdGFsbGVkIGFsbCBFZGdlIGNoYW5uZWxzIgorICAgIH0KKyAgZGlzcGxheU5h
bWU6ICdSZXN0b3JlIGhvc3RzIGZpbGUgYW5kIGNsZWFudXAgdGVzdCBtYWNoaW5lJworICBjb25k
aXRpb246IGFsd2F5cygpCisgIGVycm9yQWN0aW9uUHJlZmVyZW5jZTogc2lsZW50bHlDb250aW51
ZQorICBpZ25vcmVMQVNURVhJVENPREU6IHRydWUKKworLSBwb3dlcnNoZWxsOiB8CisgICAgJGNo
YW5uZWxzID0gQCgnRWRnZScsICdFZGdlIEJldGEnLCAnRWRnZSBEZXYnLCAnRWRnZSBTeFMnKQor
ICAgIGZvcmVhY2ggKCRjaGFubmVsIGluICRjaGFubmVscykgeworICAgICAgV3JpdGUtSG9zdCAi
RGVsZXRpbmcgcmVna2V5cyBmb3IgJGNoYW5uZWwgZm9sZGVyIgorICAgICAgUmVtb3ZlLUl0ZW0g
LVBhdGggIkhLTE06XFNPRlRXQVJFXFdPVzY0MzJOb2RlXE1pY3Jvc29mdFxXaW5kb3dzXEN1cnJl
bnRWZXJzaW9uXFVuaW5zdGFsbFxNaWNyb3NvZnQgJGNoYW5uZWwiIC1SZWN1cnNlIC1Gb3JjZSAt
RXJyb3JBY3Rpb24gU2lsZW50bHlDb250aW51ZQorICAgICAgUmVtb3ZlLUl0ZW0gLVBhdGggIkhL
Q1U6XFNPRlRXQVJFXE1pY3Jvc29mdFxXaW5kb3dzXEN1cnJlbnRWZXJzaW9uXFVuaW5zdGFsbFxN
aWNyb3NvZnQgJGNoYW5uZWwiIC1SZWN1cnNlIC1Gb3JjZSAtRXJyb3JBY3Rpb24gU2lsZW50bHlD
b250aW51ZQorICAgICAgUmVtb3ZlLUl0ZW0gLVBhdGggIkhLTE06U09GVFdBUkVcV09XNjQzMk5v
ZGVcTWljcm9zb2Z0XEVkZ2VVcGRhdGUiIC1SZWN1cnNlIC1Gb3JjZSAtRXJyb3JBY3Rpb24gU2ls
ZW50bHlDb250aW51ZQorICAgICAgUmVtb3ZlLUl0ZW0gLVBhdGggIkhLTE06U09GVFdBUkVcV09X
NjQzMk5vZGVcTWljcm9zb2Z0XCRjaGFubmVsIiAtUmVjdXJzZSAtRm9yY2UgLUVycm9yQWN0aW9u
IFNpbGVudGx5Q29udGludWUKKyAgICAgIFJlbW92ZS1JdGVtIC1QYXRoICJIS0xNOlNPRlRXQVJF
XE1pY3Jvc29mdFxFZGdlVXBkYXRlIiAtUmVjdXJzZSAtRm9yY2UgLUVycm9yQWN0aW9uIFNpbGVu
dGx5Q29udGludWUKKyAgICAgIFJlbW92ZS1JdGVtIC1QYXRoICJIS0xNOlNPRlRXQVJFXE1pY3Jv
c29mdFwkY2hhbm5lbCIgLVJlY3Vyc2UgLUZvcmNlIC1FcnJvckFjdGlvbiBTaWxlbnRseUNvbnRp
bnVlCisgICAgICBSZW1vdmUtSXRlbSAtUGF0aCAiSEtDVTpTT0ZUV0FSRVxNaWNyb3NvZnRcRWRn
ZVVwZGF0ZSIgLVJlY3Vyc2UgLUZvcmNlIC1FcnJvckFjdGlvbiBTaWxlbnRseUNvbnRpbnVlCisg
ICAgICBSZW1vdmUtSXRlbSAtUGF0aCAiSEtDVTpTT0ZUV0FSRVxNaWNyb3NvZnRcJGNoYW5uZWwi
IC1SZWN1cnNlIC1Gb3JjZSAtRXJyb3JBY3Rpb24gU2lsZW50bHlDb250aW51ZQorCisgICAgICBX
cml0ZS1Ib3N0ICJEZWxldGluZyBhbGwgcmVtYWluaW5nIEVkZ2UgZm9sZGVycyIKKyAgICAgIFJl
bW92ZS1JdGVtIC1QYXRoICIkZW52OmxvY2FsYXBwZGF0YVxNaWNyb3NvZnRcRWRnZVVwZGF0ZSIg
LVJlY3Vyc2UgLUZvcmNlIC1FcnJvckFjdGlvbiBTaWxlbnRseUNvbnRpbnVlCisgICAgICAkZWRn
ZVBhdGggPSAiJGVudjpsb2NhbGFwcGRhdGFcTWljcm9zb2Z0XCRjaGFubmVsIgorICAgICAgUmVt
b3ZlLUl0ZW0gLVBhdGggJGVkZ2VQYXRoIC1SZWN1cnNlIC1Gb3JjZSAtRXJyb3JBY3Rpb24gU2ls
ZW50bHlDb250aW51ZQorICAgICAgJGVkZ2VQYXRoID0gIiRlbnY6c3lzdGVtZHJpdmVcUHJvZ3Jh
bSBGaWxlcyAoeDg2KVxNaWNyb3NvZnRcJGNoYW5uZWwiCisgICAgICBSZW1vdmUtSXRlbSAtUGF0
aCAkZWRnZVBhdGggLVJlY3Vyc2UgLUZvcmNlIC1FcnJvckFjdGlvbiBTaWxlbnRseUNvbnRpbnVl
CisgICAgfQorICBkaXNwbGF5TmFtZTogJ0NsZWFudXAgRWRnZSByZWdpc3RyeScKKyAgY29uZGl0
aW9uOiBhbHdheXMoKQorICBlcnJvckFjdGlvblByZWZlcmVuY2U6IHNpbGVudGx5Q29udGludWUK
KyAgaWdub3JlTEFTVEVYSVRDT0RFOiB0cnVlCisKKy0gcG93ZXJzaGVsbDogfAorICAgICgkd2Vi
ZHJpdmVyRmlsZXMgPSBHZXQtQ2hpbGRJdGVtIC1QQVRIICIkZW52OnN5c3RlbWRyaXZlXCptc2Vk
Z2Vkcml2ZXIuZXhlIiAtUmVjdXJzZSkgPiRudWxsIDI+JG51bGwKKyAgICBXcml0ZS1Ib3N0ICJG
b3VuZCAkKCR3ZWJkcml2ZXJGaWxlcy5Db3VudCkgbXNlZGdlZHJpdmVyIGJpbmFyaWVzIgorICAg
IGZvcmVhY2ggKCRmaWxlIGluICR3ZWJkcml2ZXJGaWxlcykgeworICAgICAgV3JpdGUtSG9zdCAi
RGVsZXRpbmcgJGZpbGUiCisgICAgICBSZW1vdmUtSXRlbSAtUGF0aCAkZmlsZS5GdWxsTmFtZSAt
Rm9yY2UgLUVycm9yQWN0aW9uIFNpbGVudGx5Q29udGludWUKKyAgICB9CisgICAgKCRkcml2ZXJO
b3Rlc0ZvbGRlciA9IEdldC1DaGlsZEl0ZW0gLVBBVEggIiRlbnY6c3lzdGVtZHJpdmVcKkRyaXZl
cl9Ob3RlcyIgLVJlY3Vyc2UpID4kbnVsbCAyPiRudWxsCisgICAgZm9yZWFjaCAoJGZpbGUgaW4g
JGRyaXZlck5vdGVzRm9sZGVyKSB7CisgICAgICBXcml0ZS1Ib3N0ICJEZWxldGluZyAkZmlsZSBm
b2xkZXIiCisgICAgICBSZW1vdmUtSXRlbSAtUGF0aCAkZmlsZS5GdWxsTmFtZSAtUmVjdXJzZSAt
Rm9yY2UgLUVycm9yQWN0aW9uIFNpbGVudGx5Q29udGludWUKKyAgICB9CisgICAgKCR6aXBGaWxl
ID0gR2V0LUNoaWxkSXRlbSAtUEFUSCAiJGVudjpzeXN0ZW1kcml2ZVwqZWRnZWRyaXZlcl8qLnpp
cCIgLVJlY3Vyc2UpID4kbnVsbCAyPiRudWxsCisgICAgZm9yZWFjaCAoJGZpbGUgaW4gJHppcEZp
bGUpIHsKKyAgICAgIFdyaXRlLUhvc3QgIkRlbGV0aW5nICRmaWxlIGZpbGUiCisgICAgICBSZW1v
dmUtSXRlbSAtUGF0aCAkZmlsZS5GdWxsTmFtZSAtRm9yY2UgLUVycm9yQWN0aW9uIFNpbGVudGx5
Q29udGludWUKKyAgICB9CisgIGRpc3BsYXlOYW1lOiAnQ2xlYW51cCBFZGdlIGRyaXZlciBiaW5h
cmllcycKKyAgY29uZGl0aW9uOiBhbHdheXMoKQorICBlcnJvckFjdGlvblByZWZlcmVuY2U6IHNp
bGVudGx5Q29udGludWUKKyAgaWdub3JlTEFTVEVYSVRDT0RFOiB0cnVlClwgTm8gbmV3bGluZSBh
dCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy9jaS9henVyZS9jb20uYXBwbGUuU2FmYXJpLnBsaXN0IGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9jaS9henVyZS9j
b20uYXBwbGUuU2FmYXJpLnBsaXN0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjEyMjA4MDk3MmM5ZjYzNDEwMDYyZWU4
ZDMzZDBlZDAyODZhZjhmMTEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2NpL2F6dXJlL2NvbS5hcHBsZS5TYWZhcmku
cGxpc3QKQEAgLTAsMCArMSw4IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYt
OCI/PgorPCFET0NUWVBFIHBsaXN0IFBVQkxJQyAiLS8vQXBwbGUvL0RURCBQTElTVCAxLjAvL0VO
IiAiaHR0cDovL3d3dy5hcHBsZS5jb20vRFREcy9Qcm9wZXJ0eUxpc3QtMS4wLmR0ZCI+Cis8cGxp
c3QgdmVyc2lvbj0iMS4wIj4KKzxkaWN0PgorCTxrZXk+QWxsb3dSZW1vdGVBdXRvbWF0aW9uPC9r
ZXk+CisJPHRydWUvPgorPC9kaWN0PgorPC9wbGlzdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvY2kvYXp1cmUvZnlpX2hvb2su
eW1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9j
aS9henVyZS9meWlfaG9vay55bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjAyZjNjZDgyMjRlMGIzZWI0ZjQ3ODMx
OGYwNDM3ZjVhNDc1ZjRlNQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvY2kvYXp1cmUvZnlpX2hvb2sueW1sCkBAIC0w
LDAgKzEsMTkgQEAKKyMgVGhpcyBqb2IgaXMgdXNlZCB0byBnZXQgYSBydW4gaW50byB3cHQuZnlp
IGFuZCBzdGFnaW5nLndwdC5meWksIGJ5IG5vdGlmeWluZworIyB0aGVtIHdpdGggdGhlIGJ1aWxk
IG51bWJlciBhbmQgYXJ0aWZhY3QgdG8gdXNlLgorCitwYXJhbWV0ZXJzOgorICBkZXBlbmRzT246
ICcnCisgIGFydGlmYWN0TmFtZTogJycKKworam9iczoKKy0gam9iOiAke3sgcGFyYW1ldGVycy5k
ZXBlbmRzT24gfX1faG9vaworICBkaXNwbGF5TmFtZTogJ3dwdC5meWkgaG9vazogJHt7IHBhcmFt
ZXRlcnMuYXJ0aWZhY3ROYW1lIH19JworICBkZXBlbmRzT246ICR7eyBwYXJhbWV0ZXJzLmRlcGVu
ZHNPbiB9fQorICBwb29sOgorICAgIHZtSW1hZ2U6ICd1YnVudHUtMTguMDQnCisgIHN0ZXBzOgor
ICAtIGNoZWNrb3V0OiBub25lCisgIC0gc2NyaXB0OiBjdXJsIC1mIC1zIC1TIC1kICJhcnRpZmFj
dD0ke3sgcGFyYW1ldGVycy5hcnRpZmFjdE5hbWUgfX0iIC1YIFBPU1QgaHR0cHM6Ly93cHQuZnlp
L2FwaS9jaGVja3MvYXp1cmUvJChCdWlsZC5CdWlsZElkKQorICAgIGRpc3BsYXlOYW1lOiAnSW52
b2tlIHdwdC5meWkgaG9vaycKKyAgLSBzY3JpcHQ6IGN1cmwgLWYgLXMgLVMgLWQgImFydGlmYWN0
PSR7eyBwYXJhbWV0ZXJzLmFydGlmYWN0TmFtZSB9fSIgLVggUE9TVCBodHRwczovL3N0YWdpbmcu
d3B0LmZ5aS9hcGkvY2hlY2tzL2F6dXJlLyQoQnVpbGQuQnVpbGRJZCkKKyAgICBkaXNwbGF5TmFt
ZTogJ0ludm9rZSBzdGFnaW5nLndwdC5meWkgaG9vaycKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvY2kvYXp1cmUvaW5zdGFsbF9j
ZXJ0cy55bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL2NpL2F6dXJlL2luc3RhbGxfY2VydHMueW1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjU2ODIxOTliMzg3M2Ey
NzllZGUwMzQ1YzYwY2UzN2RjMjgwZmEyYTIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2NpL2F6dXJlL2luc3RhbGxf
Y2VydHMueW1sCkBAIC0wLDAgKzEsOSBAQAorc3RlcHM6CistIHNjcmlwdDogfAorICAgICMgaHR0
cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9ybS10ZXN0cy9yZXN1bHRzLWNvbGxlY3Rpb24vYmxv
Yi9tYXN0ZXIvc3JjL3NjcmlwdHMvdHJ1c3Qtcm9vdC1jYS5zaAorICAgIHN1ZG8gc2VjdXJpdHkg
YWRkLXRydXN0ZWQtY2VydCAtZCAtciB0cnVzdFJvb3QgLWsgL0xpYnJhcnkvS2V5Y2hhaW5zL1N5
c3RlbS5rZXljaGFpbiB0b29scy9jZXJ0cy9jYWNlcnQucGVtCisgIGRpc3BsYXlOYW1lOiAnSW5z
dGFsbCB3ZWItcGxhdGZvcm0udGVzdCBjZXJ0aWZpY2F0ZSAobWFjT1MpJworICBjb25kaXRpb246
IGFuZChzdWNjZWVkZWQoKSwgZXEodmFyaWFibGVzWydBZ2VudC5PUyddLCAnRGFyd2luJykpCist
IHNjcmlwdDogY2VydHV0aWwg4oCTYWRkc3RvcmUgLWVudGVycHJpc2Ug4oCTZiAiUm9vdCIgdG9v
bHNcY2VydHNcY2FjZXJ0LnBlbQorICBkaXNwbGF5TmFtZTogJ0luc3RhbGwgd2ViLXBsYXRmb3Jt
LnRlc3QgY2VydGlmaWNhdGUgKFdpbmRvd3MpJworICBjb25kaXRpb246IGFuZChzdWNjZWVkZWQo
KSwgZXEodmFyaWFibGVzWydBZ2VudC5PUyddLCAnV2luZG93c19OVCcpKQpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9jaS9henVy
ZS9pbnN0YWxsX2Nocm9tZS55bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL2NpL2F6dXJlL2luc3RhbGxfY2hyb21lLnltbApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42
YmQ1YzIzMzRhZDRlM2U0ZDVkNmZhYWY4MDA1ZjRlMGI0NGNmMWZlCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9jaS9h
enVyZS9pbnN0YWxsX2Nocm9tZS55bWwKQEAgLTAsMCArMSw2IEBACitzdGVwczoKKyMgVGhpcyBp
cyBlcXVpdmFsZW50IHRvIGBIb21lYnJldy9ob21lYnJldy1jYXNrLXZlcnNpb25zL2dvb2dsZS1j
aHJvbWUtZGV2YCwKKyMgYnV0IHRoZSByYXcgVVJMIGlzIHVzZWQgdG8gYnlwYXNzIGNhY2hpbmcu
CistIHNjcmlwdDogSE9NRUJSRVdfTk9fQVVUT19VUERBVEU9MSBicmV3IGNhc2sgaW5zdGFsbCBo
dHRwczovL3Jhdy5naXRodWJ1c2VyY29udGVudC5jb20vSG9tZWJyZXcvaG9tZWJyZXctY2Fzay12
ZXJzaW9ucy9tYXN0ZXIvQ2Fza3MvZ29vZ2xlLWNocm9tZS1kZXYucmIKKyAgZGlzcGxheU5hbWU6
ICdJbnN0YWxsIENocm9tZSBEZXYnCisgIGNvbmRpdGlvbjogYW5kKHN1Y2NlZWRlZCgpLCBlcSh2
YXJpYWJsZXNbJ0FnZW50Lk9TJ10sICdEYXJ3aW4nKSkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvY2kvYXp1cmUvaW5zdGFsbF9l
ZGdlLnltbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvY2kvYXp1cmUvaW5zdGFsbF9lZGdlLnltbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lNGM0MjVhYjdhMGYwMzIx
OGQ5MjJlNzMxMGVhOWQ4ZmRlMGY1MWFhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9jaS9henVyZS9pbnN0YWxsX2Vk
Z2UueW1sCkBAIC0wLDAgKzEsNDEgQEAKK3BhcmFtZXRlcnM6CisgIGNoYW5uZWw6IGRldgorCisj
IFNob3VsZCBtYXRjaCBodHRwczovL3dlYi1wbGF0Zm9ybS10ZXN0cy5vcmcvcnVubmluZy10ZXN0
cy9jaHJvbWUuaHRtbAorIyBKdXN0IHJlcGxhY2UgY2hyb21lIHdpdGggZWRnZWNocm9taXVtCitz
dGVwczoKKy0gJHt7IGlmIGVxKHBhcmFtZXRlcnMuY2hhbm5lbCwgJ2NhbmFyeScpIH19OgorICAt
IHBvd2Vyc2hlbGw6IHwKKyAgICAgICRlZGdlSW5zdGFsbGVyTmFtZSA9ICdNaWNyb3NvZnRFZGdl
U2V0dXAuZXhlJworICAgICAgIyBMaW5rIHRvIENhbmFyeSBjaGFubmVsIGluc3RhbGxlcgorICAg
ICAgU3RhcnQtQml0c1RyYW5zZmVyIC1Tb3VyY2UgJ2h0dHBzOi8vZ28ubWljcm9zb2Z0LmNvbS9m
d2xpbmsvP2xpbmtpZD0yMDg0NjQ5JkNoYW5uZWw9Q2FuYXJ5Jmxhbmd1YWdlPWVuLXVzJyAtRGVz
dGluYXRpb24gTWljcm9zb2Z0RWRnZVNldHVwLmV4ZQorICAgICAgaWYgKC1ub3QgKFRlc3QtUGF0
aCAkZWRnZUluc3RhbGxlck5hbWUpKSB7CisgICAgICAgIFRocm93ICJGYWlsZWQgdG8gZG93bmxv
YWQgRWRnZSBpbnN0YWxsZXIgdG8gJGVkZ2VJbnN0YWxsZXJOYW1lLiIKKyAgICAgIH0KKyAgICAg
IGNtZCAvYyBTVEFSVCAvV0FJVCAkZWRnZUluc3RhbGxlck5hbWUgL3NpbGVudCAvaW5zdGFsbAor
ICAgICAgJGVkZ2VQYXRoID0gIiRlbnY6bG9jYWxhcHBkYXRhXE1pY3Jvc29mdFxFZGdlIFN4U1xB
cHBsaWNhdGlvbiIKKyAgICAgIGlmIChUZXN0LVBhdGggJGVkZ2VQYXRoKSB7CisgICAgICAgIFdy
aXRlLUhvc3QgIiMjdnNvW3Rhc2sucHJlcGVuZHBhdGhdJGVkZ2VQYXRoIgorICAgICAgICBXcml0
ZS1Ib3N0ICJFZGdlIENhbmFyeSBpbnN0YWxsZWQgYXQgJGVkZ2VQYXRoLiIKKyAgICAgICAgKEdl
dC1JdGVtIC1QYXRoICIkZWRnZVBhdGhcbXNlZGdlLmV4ZSIpLlZlcnNpb25JbmZvIHwgRm9ybWF0
LUxpc3QKKyAgICAgIH0gZWxzZSB7CisgICAgICAgIENvcHktSXRlbSAtUGF0aCAiJGVudjp0ZW1w
XCplZGdlKi5sb2ciIC1EZXN0aW5hdGlvbiAkKEJ1aWxkLkFydGlmYWN0U3RhZ2luZ0RpcmVjdG9y
eSkgIC1Gb3JjZQorICAgICAgICBUaHJvdyAiRmFpbGVkIHRvIGluc3RhbGwgRWRnZSBDYW5hcnkg
YXQgJGVkZ2VQYXRoIgorICAgICAgfQorICAgIGRpc3BsYXlOYW1lOiAnSW5zdGFsbCBFZGdlIENh
bmFyeScKKy0gJHt7IGlmIGVxKHBhcmFtZXRlcnMuY2hhbm5lbCwgJ2RldicpIH19OgorICAtIHBv
d2Vyc2hlbGw6IHwKKyAgICAgICRlZGdlSW5zdGFsbGVyTmFtZSA9ICdNaWNyb3NvZnRFZGdlU2V0
dXAuZXhlJworICAgICAgIyBMaW5rIHRvIERldiBjaGFubmVsIGluc3RhbGxlcgorICAgICAgU3Rh
cnQtQml0c1RyYW5zZmVyIC1Tb3VyY2UgJ2h0dHBzOi8vZ28ubWljcm9zb2Z0LmNvbS9md2xpbmsv
P2xpbmtpZD0yMDY5MzI0JkNoYW5uZWw9RGV2Jmxhbmd1YWdlPWVuLXVzJyAtRGVzdGluYXRpb24g
TWljcm9zb2Z0RWRnZVNldHVwLmV4ZQorICAgICAgY21kIC9jIFNUQVJUIC9XQUlUICRlZGdlSW5z
dGFsbGVyTmFtZSAvc2lsZW50IC9pbnN0YWxsCisgICAgICAkZWRnZVBhdGggPSAiJGVudjpzeXN0
ZW1kcml2ZVxQcm9ncmFtIEZpbGVzICh4ODYpXE1pY3Jvc29mdFxFZGdlIERldlxBcHBsaWNhdGlv
biIKKyAgICAgIGlmIChUZXN0LVBhdGggJGVkZ2VQYXRoKSB7CisgICAgICAgIFdyaXRlLUhvc3Qg
IiMjdnNvW3Rhc2sucHJlcGVuZHBhdGhdJGVkZ2VQYXRoIgorICAgICAgICBXcml0ZS1Ib3N0ICJF
ZGdlIENhbmFyeSBpbnN0YWxsZWQgYXQgJGVkZ2VQYXRoLiIKKyAgICAgICAgKEdldC1JdGVtIC1Q
YXRoICIkZWRnZVBhdGhcbXNlZGdlLmV4ZSIpLlZlcnNpb25JbmZvIHwgRm9ybWF0LUxpc3QKKyAg
ICAgIH0gZWxzZSB7CisgICAgICAgIENvcHktSXRlbSAtUGF0aCAiJGVudjp0ZW1wXCplZGdlKi5s
b2ciIC1EZXN0aW5hdGlvbiAkKEJ1aWxkLkFydGlmYWN0U3RhZ2luZ0RpcmVjdG9yeSkgLUZvcmNl
CisgICAgICAgIFRocm93ICJGYWlsZWQgdG8gaW5zdGFsbCBFZGdlIERldiBhdCAkZWRnZVBhdGgi
CisgICAgICB9CisgICAgZGlzcGxheU5hbWU6ICdJbnN0YWxsIEVkZ2UgRGV2JwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9jaS9h
enVyZS9pbnN0YWxsX2ZpcmVmb3gueW1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy9jaS9henVyZS9pbnN0YWxsX2ZpcmVmb3gueW1sCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLmRlNmQwMzM1ZjIyMWY2ZDIyMTVlYmRjOGVmNWQyZWUyNjlmZGZkZjMKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L2NpL2F6dXJlL2luc3RhbGxfZmlyZWZveC55bWwKQEAgLTAsMCArMSw2IEBACitzdGVwczoKKyMg
VGhpcyBpcyBlcXVpdmFsZW50IHRvIGBIb21lYnJldy9ob21lYnJldy1jYXNrLXZlcnNpb25zL2Zp
cmVmb3gtbmlnaHRseWAsCisjIGJ1dCB0aGUgcmF3IFVSTCBpcyB1c2VkIHRvIGJ5cGFzcyBjYWNo
aW5nLgorLSBzY3JpcHQ6IEhPTUVCUkVXX05PX0FVVE9fVVBEQVRFPTEgYnJldyBjYXNrIGluc3Rh
bGwgaHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL0hvbWVicmV3L2hvbWVicmV3LWNh
c2stdmVyc2lvbnMvbWFzdGVyL0Nhc2tzL2ZpcmVmb3gtbmlnaHRseS5yYgorICBkaXNwbGF5TmFt
ZTogJ0luc3RhbGwgRmlyZWZveCBOaWdodGx5JworICBjb25kaXRpb246IGFuZChzdWNjZWVkZWQo
KSwgZXEodmFyaWFibGVzWydBZ2VudC5PUyddLCAnRGFyd2luJykpCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2NpL2F6dXJlL2lu
c3RhbGxfZm9udHMueW1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy9jaS9henVyZS9pbnN0YWxsX2ZvbnRzLnltbApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zNDhlYjc0
NTRlMDY0Y2FkNTViOGEyZTZjZTllYmRmOTY3MjJlNGRkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9jaS9henVyZS9p
bnN0YWxsX2ZvbnRzLnltbApAQCAtMCwwICsxLDUgQEAKK3N0ZXBzOgorIyBJbnN0YWxsaWcgQWhl
bSBpbiAvTGlicmFyeS9Gb250cyBpbnN0ZWFkIG9mIHVzaW5nIC0taW5zdGFsbC1mb250cyBpcyBh
CisjIHdvcmthcm91bmQgZm9yIGh0dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxhdGZvcm0tdGVzdHMv
d3B0L2lzc3Vlcy8xMzgwMy4KKy0gc2NyaXB0OiBzdWRvIGNwIGZvbnRzL0FoZW0udHRmIC9MaWJy
YXJ5L0ZvbnRzCisgIGRpc3BsYXlOYW1lOiAnSW5zdGFsbCBBaGVtIGZvbnQnCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2NpL2F6
dXJlL2luc3RhbGxfcHl0aG9uLnltbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvY2kvYXp1cmUvaW5zdGFsbF9weXRob24ueW1sCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjY1ODUyMzliYzhjY2Q5NjU0ZGYxODgwNDIzYzc2MTFlNmRiYmVhNjIKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2Np
L2F6dXJlL2luc3RhbGxfcHl0aG9uLnltbApAQCAtMCwwICsxLDE1IEBACitzdGVwczoKKy0gcG93
ZXJzaGVsbDogfAorICAgIFN0YXJ0LUJpdHNUcmFuc2ZlciAtU291cmNlIGh0dHBzOi8vd3d3LnB5
dGhvbi5vcmcvZnRwL3B5dGhvbi8yLjcuMTUvcHl0aG9uLTIuNy4xNS5hbWQ2NC5tc2kgLURlc3Rp
bmF0aW9uIHB5dGhvbi5tc2kKKyAgICAkaGFzaCA9IChHZXQtRmlsZUhhc2ggcHl0aG9uLm1zaSku
SGFzaC5Ub0xvd2VyKCkKKyAgICAkZXhwZWN0ZWRIYXNoID0gIjVlODVmM2M0YzIwOWRlOTg0ODBh
Y2JmMmJhMmU3MWE5MDdmZDU1NjdhODM4YWQ0YjY3NDhjNzZkZWIyODZhZDciCisgICAgaWYgKCRo
YXNoLkVxdWFscygkZXhwZWN0ZWRIYXNoKSkgeworICAgICAgV3JpdGUtSG9zdCAicHl0aG9uLm1z
aSBoYXNoIHZlcmlmaWVkIgorICAgIH0gZWxzZSB7CisgICAgICBUaHJvdyAicHl0aG9uLm1zaSBo
YXNoIG1pc21hdGNoLCBnb3QgJGhhc2gsIGV4cGVjdGVkICRleHBlY3RlZEhhc2giCisgICAgfQor
ICAgIG1zaWV4ZWMgL2kgcHl0aG9uLm1zaSBUQVJHRVRESVI9QzpcUHl0aG9uMjcgL3EKKyAgICBX
cml0ZS1Ib3N0ICIjI3Zzb1t0YXNrLnByZXBlbmRwYXRoXUM6XFB5dGhvbjI3IgorICAgIFdyaXRl
LUhvc3QgIiMjdnNvW3Rhc2sucHJlcGVuZHBhdGhdQzpcUHl0aG9uMjdcU2NyaXB0cyIKKyAgZGlz
cGxheU5hbWU6ICdJbnN0YWxsIFB5dGhvbiAoV2luZG93cyknCisgIGNvbmRpdGlvbjogYW5kKHN1
Y2NlZWRlZCgpLCBlcSh2YXJpYWJsZXNbJ0FnZW50Lk9TJ10sICdXaW5kb3dzX05UJykpCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L2NpL2F6dXJlL2luc3RhbGxfc2FmYXJpLnltbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvY2kvYXp1cmUvaW5zdGFsbF9zYWZhcmkueW1sCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLmE4NjQxNDY1YWM4ZWFlNzAwODZiZDBjZWQ0YTgwZDNhMmRhMzUxMTMKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL2NpL2F6dXJlL2luc3RhbGxfc2FmYXJpLnltbApAQCAtMCwwICsxLDIwIEBACitwYXJhbWV0
ZXJzOgorICBjaGFubmVsOiBwcmV2aWV3CisKKyMgU2hvdWxkIG1hdGNoIGh0dHBzOi8vd2ViLXBs
YXRmb3JtLXRlc3RzLm9yZy9ydW5uaW5nLXRlc3RzL3NhZmFyaS5odG1sCitzdGVwczoKKy0gJHt7
IGlmIGVxKHBhcmFtZXRlcnMuY2hhbm5lbCwgJ3ByZXZpZXcnKSB9fToKKyAgLSBzY3JpcHQ6IHwK
KyAgICAgIEhPTUVCUkVXX05PX0FVVE9fVVBEQVRFPTEgYnJldyBjYXNrIGluc3RhbGwgdG9vbHMv
Y2kvYXp1cmUvc2FmYXJpLXRlY2hub2xvZ3ktcHJldmlldy5yYgorICAgICAgc3VkbyAiL0FwcGxp
Y2F0aW9ucy9TYWZhcmkgVGVjaG5vbG9neSBQcmV2aWV3LmFwcC9Db250ZW50cy9NYWNPUy9zYWZh
cmlkcml2ZXIiIC0tZW5hYmxlCisgICAgICBkZWZhdWx0cyB3cml0ZSBjb20uYXBwbGUuU2FmYXJp
VGVjaG5vbG9neVByZXZpZXcgV2ViS2l0SmF2YVNjcmlwdENhbk9wZW5XaW5kb3dzQXV0b21hdGlj
YWxseSAxCisgICAgICBkZWZhdWx0cyB3cml0ZSBjb20uYXBwbGUuU2FmYXJpVGVjaG5vbG9neVBy
ZXZpZXcgRXhwZXJpbWVudGFsU2VydmVyVGltaW5nRW5hYmxlZCAxCisgICAgZGlzcGxheU5hbWU6
ICdJbnN0YWxsIFNhZmFyaSBUZWNobm9sb2d5IFByZXZpZXcnCistICR7eyBpZiBlcShwYXJhbWV0
ZXJzLmNoYW5uZWwsICdzdGFibGUnKSB9fToKKyAgLSBzY3JpcHQ6IHwKKyAgICAgICMgV29ya2Fy
b3VuZCBmb3IgYHN1ZG8gc2FmYXJkcml2ZXIgLS1lbmFibGVgIG5vdCB3b3JraW5nOgorICAgICAg
IyBodHRwczovL2dpdGh1Yi5jb20vd2ViLXBsYXRmb3JtLXRlc3RzL3dwdC9pc3N1ZXMvMTk4NDUK
KyAgICAgIG1rZGlyIC1wIH4vTGlicmFyeS9XZWJEcml2ZXIvCisgICAgICBjcCB0b29scy9jaS9h
enVyZS9jb20uYXBwbGUuU2FmYXJpLnBsaXN0IH4vTGlicmFyeS9XZWJEcml2ZXIvCisgICAgICBk
ZWZhdWx0cyB3cml0ZSBjb20uYXBwbGUuU2FmYXJpIFdlYktpdEphdmFTY3JpcHRDYW5PcGVuV2lu
ZG93c0F1dG9tYXRpY2FsbHkgMQorICAgIGRpc3BsYXlOYW1lOiAnQ29uZmlndXJlIFNhZmFyaScK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvY2kvYXp1cmUvcGlwX2luc3RhbGwueW1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9jaS9henVyZS9waXBfaW5zdGFsbC55bWwKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uYzg3OTUzNDVmNmJjZjRhOTQzZTA3YTQ1OTk0N2U3MThhZDZhMGFmYwotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvY2kvYXp1cmUvcGlwX2luc3RhbGwueW1sCkBAIC0wLDAgKzEsMTUgQEAKK3BhcmFtZXRlcnM6
CisgIHBhY2thZ2VzOiAnJworCitzdGVwczoKKy0gc2NyaXB0OiB8CisgICAgIyBgc3VkbyBwaXAg
aW5zdGFsbGAgaXMgbm90IHVzZWQgYmVjYXVzZSBzb21lIHBhY2thZ2VzIChlLmcuIHRveCkgZGVw
ZW5kIG9uCisgICAgIyBzeXN0ZW0gcGFja2FnZXMgKGUuZy4gc2V0dXB0b29scykgd2hpY2ggY2Fu
bm90IGJlIHVwZ3JhZGVkIGR1ZSB0byBTeXN0ZW0KKyAgICAjIEludGVncml0eSBQcm90ZWN0aW9u
LCBzZWUgaHR0cHM6Ly9zdGFja292ZXJmbG93LmNvbS9hLzMzMDA0OTIwLgorICAgIHBpcCBpbnN0
YWxsIC0tdXNlciAke3sgcGFyYW1ldGVycy5wYWNrYWdlcyB9fQorICAgIGVjaG8gIiMjdnNvW3Rh
c2sucHJlcGVuZHBhdGhdJEhPTUUvTGlicmFyeS9QeXRob24vMi43L2JpbiIKKyAgZGlzcGxheU5h
bWU6ICdJbnN0YWxsIFB5dGhvbiBwYWNrYWdlcyAobWFjT1MpJworICBjb25kaXRpb246IGFuZChz
dWNjZWVkZWQoKSwgZXEodmFyaWFibGVzWydBZ2VudC5PUyddLCAnRGFyd2luJykpCistIHNjcmlw
dDogcGlwIC0tZGlzYWJsZS1waXAtdmVyc2lvbi1jaGVjayBpbnN0YWxsIC0tdXBncmFkZSAke3sg
cGFyYW1ldGVycy5wYWNrYWdlcyB9fQorICBkaXNwbGF5TmFtZTogJ0luc3RhbGwgUHl0aG9uIHBh
Y2thZ2VzIChXaW5kb3dzKScKKyAgY29uZGl0aW9uOiBhbmQoc3VjY2VlZGVkKCksIGVxKHZhcmlh
Ymxlc1snQWdlbnQuT1MnXSwgJ1dpbmRvd3NfTlQnKSkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvY2kvYXp1cmUvc2FmYXJpLXRl
Y2hub2xvZ3ktcHJldmlldy5yYiBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvY2kvYXp1cmUvc2FmYXJpLXRlY2hub2xvZ3ktcHJldmlldy5yYgpuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5iMzI3MzliZTU4YTcwMjhkNWZmNGEyZGU5YjU2ZGZiN2VhMDk5ODJiCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy9jaS9henVyZS9zYWZhcmktdGVjaG5vbG9neS1wcmV2aWV3LnJiCkBAIC0wLDAgKzEsMzMg
QEAKK2Nhc2sgJ3NhZmFyaS10ZWNobm9sb2d5LXByZXZpZXcnIGRvCisgIGlmIE1hY09TLnZlcnNp
b24gPD0gOm1vamF2ZQorICAgIHZlcnNpb24gJzk2LDA2MS00NDA1Ni0yMDE5MTEyMC1hYzdiYjE5
Ni0yNzI0LTQ4NDAtYmNlOS02YzgzZWNkYmZiMmMnCisgICAgc2hhMjU2ICdlODBjZWFjZGZmN2U3
NTIxODM2NTk5M2U1YWYxYzgxYzliY2M0Nzg1MjkxYWUwMGFiYmEzZDE0YWM1NjE0MzE3JworICBl
bHNlCisgICAgdmVyc2lvbiAnOTYsMDYxLTQ3NzE4LTIwMTkxMTIwLTAyYmM3NTY5LWVlNmItNGMy
OC05ZWM0LTBjZWVkYTNjM2MzYScKKyAgICBzaGEyNTYgJ2JiZmNkYzM2YmY5YjU1YWVjNTgzOGQ2
NmUzNGM0MWRkM2Y2YTY0MDkxNDA2YmMzOGY0NWM4ODgzNjBmMTkxZmUnCisgIGVuZAorCisgIHVy
bCAiaHR0cHM6Ly9zZWN1cmUtYXBwbGRubGQuYXBwbGUuY29tL1NUUC8je3ZlcnNpb24uYWZ0ZXJf
Y29tbWF9L1NhZmFyaVRlY2hub2xvZ3lQcmV2aWV3LmRtZyIKKyAgYXBwY2FzdCAnaHR0cHM6Ly9k
ZXZlbG9wZXIuYXBwbGUuY29tL3NhZmFyaS9kb3dubG9hZC8nCisgIG5hbWUgJ1NhZmFyaSBUZWNo
bm9sb2d5IFByZXZpZXcnCisgIGhvbWVwYWdlICdodHRwczovL2RldmVsb3Blci5hcHBsZS5jb20v
c2FmYXJpL2Rvd25sb2FkLycKKworICBhdXRvX3VwZGF0ZXMgdHJ1ZQorICBkZXBlbmRzX29uIG1h
Y29zOiAnPj0gOm1vamF2ZScKKworICBwa2cgJ1NhZmFyaSBUZWNobm9sb2d5IFByZXZpZXcucGtn
JworCisgIHVuaW5zdGFsbCBkZWxldGU6ICcvQXBwbGljYXRpb25zL1NhZmFyaSBUZWNobm9sb2d5
IFByZXZpZXcuYXBwJworCisgIHphcCB0cmFzaDogWworICAgICAgICAgICAgICAgJ34vTGlicmFy
eS9BcHBsaWNhdGlvbiBTdXBwb3J0L2NvbS5hcHBsZS5zaGFyZWRmaWxlbGlzdC9jb20uYXBwbGUu
TFNTaGFyZWRGaWxlTGlzdC5BcHBsaWNhdGlvblJlY2VudERvY3VtZW50cy9jb20uYXBwbGUuc2Fm
YXJpdGVjaG5vbG9neXByZXZpZXcuc2ZsKicsCisgICAgICAgICAgICAgICAnfi9MaWJyYXJ5L0Nh
Y2hlcy9jb20uYXBwbGUuU2FmYXJpVGVjaG5vbG9neVByZXZpZXcnLAorICAgICAgICAgICAgICAg
J34vTGlicmFyeS9QcmVmZXJlbmNlcy9jb20uYXBwbGUuU2FmYXJpVGVjaG5vbG9neVByZXZpZXcu
cGxpc3QnLAorICAgICAgICAgICAgICAgJ34vTGlicmFyeS9TYWZhcmlUZWNobm9sb2d5UHJldmll
dycsCisgICAgICAgICAgICAgICAnfi9MaWJyYXJ5L1NhdmVkIEFwcGxpY2F0aW9uIFN0YXRlL2Nv
bS5hcHBsZS5TYWZhcmlUZWNobm9sb2d5UHJldmlldy5zYXZlZFN0YXRlJywKKyAgICAgICAgICAg
ICAgICd+L0xpYnJhcnkvU3luY2VkUHJlZmVyZW5jZXMvY29tLmFwcGxlLlNhZmFyaVRlY2hub2xv
Z3lQcmV2aWV3LWNvbS5hcHBsZS5TYWZhcmkuVXNlclJlcXVlc3RzLnBsaXN0JywKKyAgICAgICAg
ICAgICAgICd+L0xpYnJhcnkvU3luY2VkUHJlZmVyZW5jZXMvY29tLmFwcGxlLlNhZmFyaVRlY2hu
b2xvZ3lQcmV2aWV3LWNvbS5hcHBsZS5TYWZhcmkuV2ViRmVlZFN1YnNjcmlwdGlvbnMucGxpc3Qn
LAorICAgICAgICAgICAgICAgJ34vTGlicmFyeS9TeW5jZWRQcmVmZXJlbmNlcy9jb20uYXBwbGUu
U2FmYXJpVGVjaG5vbG9neVByZXZpZXcucGxpc3QnLAorICAgICAgICAgICAgICAgJ34vTGlicmFy
eS9XZWJLaXQvY29tLmFwcGxlLlNhZmFyaVRlY2hub2xvZ3lQcmV2aWV3JywKKyAgICAgICAgICAg
ICBdCitlbmQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvY2kvYXp1cmUvc3lzdGVtX2luZm8ueW1sIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9jaS9henVyZS9zeXN0ZW1faW5mby55
bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uY2MzN2IzNWI4NTNjMDFjZGQ0ZjYwNzVkOWExNGMxZmZmZDZhNGMzYQot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvY2kvYXp1cmUvc3lzdGVtX2luZm8ueW1sCkBAIC0wLDAgKzEsNCBAQAorc3Rl
cHM6CistIHNjcmlwdDogc3lzdGVtaW5mbworICBkaXNwbGF5TmFtZTogJ1Nob3cgc3lzdGVtIGlu
Zm8gKFdpbmRvd3MpJworICBjb25kaXRpb246IGFuZChzdWNjZWVkZWQoKSwgZXEodmFyaWFibGVz
WydBZ2VudC5PUyddLCAnV2luZG93c19OVCcpKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9jaS9henVyZS90b3hfcHl0ZXN0Lnlt
bCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvY2kv
YXp1cmUvdG94X3B5dGVzdC55bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYmM5MzA4MzZkM2Q3YjY2YmM2M2FjMjM5
MmI1MDVmZDk5YWYzZTExZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvY2kvYXp1cmUvdG94X3B5dGVzdC55bWwKQEAg
LTAsMCArMSwxOCBAQAorcGFyYW1ldGVyczoKKyAgZGlyZWN0b3J5OiAnJworICB0b3hlbnY6ICdB
TEwnCisKK3N0ZXBzOgorLSB0ZW1wbGF0ZTogcGlwX2luc3RhbGwueW1sCisgIHBhcmFtZXRlcnM6
CisgICAgcGFja2FnZXM6IHRveAorCistIHNjcmlwdDogdG94IC1jICR7eyBwYXJhbWV0ZXJzLmRp
cmVjdG9yeSB9fSAtZSAke3sgcGFyYW1ldGVycy50b3hlbnYgfX0gLS0gLS1qdW5pdHhtbD1yZXN1
bHRzLnhtbAorICBkaXNwbGF5TmFtZTogJ1J1biB0ZXN0cycKKworLSB0YXNrOiBQdWJsaXNoVGVz
dFJlc3VsdHNAMgorICBpbnB1dHM6CisgICAgdGVzdFJlc3VsdHNGaWxlczogJyR7eyBwYXJhbWV0
ZXJzLmRpcmVjdG9yeSB9fS9yZXN1bHRzLnhtbCcKKyAgICB0ZXN0UnVuVGl0bGU6ICcke3sgcGFy
YW1ldGVycy5kaXJlY3RvcnkgfX0nCisgIGRpc3BsYXlOYW1lOiAnUHVibGlzaCByZXN1bHRzJwor
ICBjb25kaXRpb246IHN1Y2NlZWRlZE9yRmFpbGVkKCkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvY2kvYXp1cmUvdXBkYXRlX2hv
c3RzLnltbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvY2kvYXp1cmUvdXBkYXRlX2hvc3RzLnltbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42M2M3ZTQ1ODExMjk3YTJk
ZDUzNDJiM2IzYWI5MDkzYWNhYjZmNWNkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9jaS9henVyZS91cGRhdGVfaG9z
dHMueW1sCkBAIC0wLDAgKzEsMTAgQEAKK3N0ZXBzOgorLSBzY3JpcHQ6IC4vd3B0IG1ha2UtaG9z
dHMtZmlsZSB8IHN1ZG8gdGVlIC1hIC9ldGMvaG9zdHMKKyAgZGlzcGxheU5hbWU6ICdVcGRhdGUg
aG9zdHMgKG1hY09TKScKKyAgY29uZGl0aW9uOiBhbmQoc3VjY2VlZGVkKCksIGVxKHZhcmlhYmxl
c1snQWdlbnQuT1MnXSwgJ0RhcndpbicpKQorLSBwb3dlcnNoZWxsOiB8CisgICAgJGhvc3RGaWxl
ID0gIiRlbnY6c3lzdGVtcm9vdFxTeXN0ZW0zMlxkcml2ZXJzXGV0Y1xob3N0cyIKKyAgICBDb3B5
LUl0ZW0gLVBhdGggJGhvc3RGaWxlIC1EZXN0aW5hdGlvbiAiJGhvc3RGaWxlLmJhY2siIC1Gb3Jj
ZQorICAgIHB5dGhvbiB3cHQgbWFrZS1ob3N0cy1maWxlIHwgT3V0LUZpbGUgJGVudjpzeXN0ZW1y
b290XFN5c3RlbTMyXGRyaXZlcnNcZXRjXGhvc3RzIC1FbmNvZGluZyBhc2NpaSAtQXBwZW5kCisg
IGRpc3BsYXlOYW1lOiAnVXBkYXRlIGhvc3RzIChXaW5kb3dzKScKKyAgY29uZGl0aW9uOiBhbmQo
c3VjY2VlZGVkKCksIGVxKHZhcmlhYmxlc1snQWdlbnQuT1MnXSwgJ1dpbmRvd3NfTlQnKSkKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvY2kvYXp1cmUvdXBkYXRlX21hbmlmZXN0LnltbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvY2kvYXp1cmUvdXBkYXRlX21hbmlmZXN0LnltbApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi40NTNhYzJhYzNjMDVjZjg3M2JjZjY2ZDFiZTk5MDMyNGJkMjAwMzZlCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy9jaS9henVyZS91cGRhdGVfbWFuaWZlc3QueW1sCkBAIC0wLDAgKzEsNCBAQAorc3Rl
cHM6CisjIGBweXRob24gd3B0YCBpbnN0ZWFkIG9mIGAuL3dwdGAgaXMgdG8gbWFrZSB0aGlzIHdv
cmsgb24gV2luZG93czoKKy0gc2NyaXB0OiBweXRob24gd3B0IG1hbmlmZXN0CisgIGRpc3BsYXlO
YW1lOiAnVXBkYXRlIG1hbmlmZXN0JwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9jaS9henVyZS93M2MtaW1wb3J0LmxvZyBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvY2kvYXp1cmUv
dzNjLWltcG9ydC5sb2cKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDRmNTQzMTljMmI5ZjAyNGVhOTI1YTZjM2VjN2Nl
MjBlZTRkNTBkMgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvY2kvYXp1cmUvdzNjLWltcG9ydC5sb2cKQEAgLTAsMCAr
MSwzNSBAQAorVGhlIHRlc3RzIGluIHRoaXMgZGlyZWN0b3J5IHdlcmUgaW1wb3J0ZWQgZnJvbSB0
aGUgVzNDIHJlcG9zaXRvcnkuCitEbyBOT1QgbW9kaWZ5IHRoZXNlIHRlc3RzIGRpcmVjdGx5IGlu
IFdlYktpdC4KK0luc3RlYWQsIGNyZWF0ZSBhIHB1bGwgcmVxdWVzdCBvbiB0aGUgV1BUIGdpdGh1
YjoKKwlodHRwczovL2dpdGh1Yi5jb20vd2ViLXBsYXRmb3JtLXRlc3RzL3dwdAorCitUaGVuIHJ1
biB0aGUgVG9vbHMvU2NyaXB0cy9pbXBvcnQtdzNjLXRlc3RzIGluIFdlYktpdCB0byByZWltcG9y
dAorCitEbyBOT1QgbW9kaWZ5IG9yIHJlbW92ZSB0aGlzIGZpbGUuCisKKy0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LQorUHJvcGVydGllcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgorTm9uZQorUHJvcGVydHkg
dmFsdWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6CitOb25lCistLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K
K0xpc3Qgb2YgZmlsZXM6CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy9jaS9henVyZS9SRUFETUUubWQKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2NpL2F6dXJlL2FmZmVjdGVkX3Rlc3RzLnltbAorL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvY2kvYXp1cmUv
Y2hlY2tvdXQueW1sCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy9jaS9henVyZS9jbGVhbnVwX3dpbjEwLnltbAorL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvY2kvYXp1cmUvY29tLmFwcGxlLlNhZmFyaS5w
bGlzdAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
Y2kvYXp1cmUvZnlpX2hvb2sueW1sCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy9jaS9henVyZS9pbnN0YWxsX2NlcnRzLnltbAorL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvY2kvYXp1cmUvaW5zdGFsbF9j
aHJvbWUueW1sCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy9jaS9henVyZS9pbnN0YWxsX2VkZ2UueW1sCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9jaS9henVyZS9pbnN0YWxsX2ZpcmVmb3gueW1sCisv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9jaS9henVy
ZS9pbnN0YWxsX2ZvbnRzLnltbAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvY2kvYXp1cmUvaW5zdGFsbF9weXRob24ueW1sCisvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9jaS9henVyZS9pbnN0YWxsX3Nh
ZmFyaS55bWwKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL2NpL2F6dXJlL3BpcF9pbnN0YWxsLnltbAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvY2kvYXp1cmUvc2FmYXJpLXRlY2hub2xvZ3ktcHJldmll
dy5yYgorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
Y2kvYXp1cmUvc3lzdGVtX2luZm8ueW1sCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy9jaS9henVyZS90b3hfcHl0ZXN0LnltbAorL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvY2kvYXp1cmUvdXBkYXRlX2hv
c3RzLnltbAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvY2kvYXp1cmUvdXBkYXRlX21hbmlmZXN0LnltbApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9jaS9iZWZvcmVfaW5zdGFsbC5z
aCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvY2kv
YmVmb3JlX2luc3RhbGwuc2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGY2ZWY4NGYw
MDI2ODFhMDFhNzczNjdjNDZmNWM2MjZmNTJiNDk4ZjcuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy9jaS9iZWZvcmVfaW5zdGFsbC5zaAorKysgL2Rldi9udWxsCkBAIC0x
LDE1ICswLDAgQEAKLSMhL2Jpbi9iYXNoCi1zZXQgLWUKLQotUkVMRVZBTlRfSk9CUz0kKC4vd3B0
IHRlc3Qtam9icykKLVJFTEVWQU5UX0NIQU5HRVM9JChlY2hvICIkUkVMRVZBTlRfSk9CUyIgfCBn
cmVwICRKT0IgfHwgdHJ1ZSkKLWlmIFtbIC16ICR7UlVOX0pPQit4fSAmJiAhIC16ICRSRUxFVkFO
VF9DSEFOR0VTIF1dIHx8IFtbICRSVU5fSk9CIC1lcSAxIF1dOyB0aGVuCi0gICAgZXhwb3J0IFJV
Tl9KT0I9MQotICAgIGdpdCBzdWJtb2R1bGUgdXBkYXRlIC0taW5pdCAtLXJlY3Vyc2l2ZSAxPiYy
Ci0gICAgZXhwb3J0IERJU1BMQVk9Ojk5LjAKLSAgICBzaCAtZSAvZXRjL2luaXQuZC94dmZiIHN0
YXJ0IDE+JjIKLSAgICAjIEZvciB1cGxvYWRpbmcgdGhlIG1hbmlmZXN0Ci0gICAgZXhwb3J0IFdQ
VF9NQU5JRkVTVF9GSUxFPSRIT01FL21ldGEvTUFOSUZFU1QtJChnaXQgcmV2LXBhcnNlIEhFQUQp
Lmpzb24KLWVsaWYgW1sgLXogJHtSVU5fSk9CK3h9IF1dOyB0aGVuCi0gICAgZXhwb3J0IFJVTl9K
T0I9MAotZmkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvY2kvY2hlY2tfc3RhYmlsaXR5LnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9jaS9jaGVja19zdGFiaWxpdHkucHkKZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDMyMzVjZWU1YWM2ODA2ZjhmOTEyNTA3YTdlYzk5
ZTUyYzczZDdjOWEuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0t
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9jaS9j
aGVja19zdGFiaWxpdHkucHkKKysrIC9kZXYvbnVsbApAQCAtMSwzMTMgKzAsMCBAQAotZnJvbSBf
X2Z1dHVyZV9fIGltcG9ydCBwcmludF9mdW5jdGlvbgotCi1pbXBvcnQgYXJncGFyc2UKLWltcG9y
dCBsb2dnaW5nCi1pbXBvcnQgb3MKLWltcG9ydCBzdWJwcm9jZXNzCi1pbXBvcnQgc3lzCi1mcm9t
IENvbmZpZ1BhcnNlciBpbXBvcnQgU2FmZUNvbmZpZ1BhcnNlcgotCi1oZXJlID0gb3MucGF0aC5k
aXJuYW1lKF9fZmlsZV9fKQotd3B0X3Jvb3QgPSBvcy5wYXRoLmFic3BhdGgob3MucGF0aC5qb2lu
KGhlcmUsIG9zLnBhcmRpciwgb3MucGFyZGlyKSkKLXN5cy5wYXRoLmluc2VydCgwLCB3cHRfcm9v
dCkKLQotZnJvbSB0b29scy53cHQgaW1wb3J0IHRlc3RmaWxlcwotZnJvbSB0b29scy53cHQudGVz
dGZpbGVzIGltcG9ydCBnZXRfZ2l0X2NtZAotZnJvbSB0b29scy53cHQudmlydHVhbGVudiBpbXBv
cnQgVmlydHVhbGVudgotZnJvbSB0b29scy53cHQudXRpbHMgaW1wb3J0IEt3YXJncwotZnJvbSB0
b29scy53cHQucnVuIGltcG9ydCBjcmVhdGVfcGFyc2VyLCBzZXR1cF93cHRydW5uZXIKLWZyb20g
dG9vbHMud3B0IGltcG9ydCBtYXJrZG93bgotZnJvbSB0b29scyBpbXBvcnQgbG9jYWxwYXRocyAg
IyBub3FhOiBGNDAxCi0KLWxvZ2dlciA9IE5vbmUKLXJ1bl9zdGVwLCB3cml0ZV9pbmNvbnNpc3Rl
bnQsIHdyaXRlX3Jlc3VsdHMgPSBOb25lLCBOb25lLCBOb25lCi13cHRydW5uZXIgPSBOb25lCi0K
LWRlZiBzZXR1cF9sb2dnaW5nKCk6Ci0gICAgIiIiU2V0IHVwIGJhc2ljIGRlYnVnIGxvZ2dlci4i
IiIKLSAgICBnbG9iYWwgbG9nZ2VyCi0gICAgbG9nZ2VyID0gbG9nZ2luZy5nZXRMb2dnZXIoaGVy
ZSkKLSAgICBoYW5kbGVyID0gbG9nZ2luZy5TdHJlYW1IYW5kbGVyKHN5cy5zdGRvdXQpCi0gICAg
Zm9ybWF0dGVyID0gbG9nZ2luZy5Gb3JtYXR0ZXIobG9nZ2luZy5CQVNJQ19GT1JNQVQsIE5vbmUp
Ci0gICAgaGFuZGxlci5zZXRGb3JtYXR0ZXIoZm9ybWF0dGVyKQotICAgIGxvZ2dlci5hZGRIYW5k
bGVyKGhhbmRsZXIpCi0gICAgbG9nZ2VyLnNldExldmVsKGxvZ2dpbmcuREVCVUcpCi0KLQotZGVm
IGRvX2RlbGF5ZWRfaW1wb3J0cygpOgotICAgIGdsb2JhbCB3cHRydW5uZXIsIHJ1bl9zdGVwLCB3
cml0ZV9pbmNvbnNpc3RlbnQsIHdyaXRlX3Jlc3VsdHMKLSAgICBmcm9tIHdwdHJ1bm5lciBpbXBv
cnQgd3B0cnVubmVyCi0gICAgZnJvbSB3cHRydW5uZXIuc3RhYmlsaXR5IGltcG9ydCBydW5fc3Rl
cCwgd3JpdGVfaW5jb25zaXN0ZW50LCB3cml0ZV9yZXN1bHRzCi0KLQotY2xhc3MgVHJhdmlzRm9s
ZChvYmplY3QpOgotICAgICIiIkNvbnRleHQgZm9yIFRyYXZpc0NJIGZvbGRpbmcgbWVjaGFuaXNt
LiBTdWJjbGFzc2VzIG9iamVjdC4KLQotICAgIFNlZTogaHR0cHM6Ly9ibG9nLnRyYXZpcy1jaS5j
b20vMjAxMy0wNS0yMi1pbXByb3ZpbmctYnVpbGQtdmlzaWJpbGl0eS1sb2ctZm9sZHMvCi0gICAg
IiIiCi0KLSAgICBkZWYgX19pbml0X18oc2VsZiwgbmFtZSk6Ci0gICAgICAgICIiIlJlZ2lzdGVy
IFRyYXZpc0NJIGZvbGRpbmcgc2VjdGlvbiBuYW1lLiIiIgotICAgICAgICBzZWxmLm5hbWUgPSBu
YW1lCi0KLSAgICBkZWYgX19lbnRlcl9fKHNlbGYpOgotICAgICAgICAiIiJFbWl0IGZvbGQgc3Rh
cnQgc3ludGF4LiIiIgotICAgICAgICBwcmludCgidHJhdmlzX2ZvbGQ6c3RhcnQ6JXMiICUgc2Vs
Zi5uYW1lLCBmaWxlPXN5cy5zdGRlcnIpCi0KLSAgICBkZWYgX19leGl0X18oc2VsZiwgdHlwZSwg
dmFsdWUsIHRyYWNlYmFjayk6Ci0gICAgICAgICIiIkVtaXQgZm9sZCBlbmQgc3ludGF4LiIiIgot
ICAgICAgICBwcmludCgidHJhdmlzX2ZvbGQ6ZW5kOiVzIiAlIHNlbGYubmFtZSwgZmlsZT1zeXMu
c3RkZXJyKQotCi0KLWNsYXNzIEZpbHRlcmVkSU8ob2JqZWN0KToKLSAgICAiIiJXcmFwIGEgZmls
ZSBvYmplY3QsIGludm9raW5nIHRoZSBwcm92aWRlZCBjYWxsYmFjayBmb3IgZXZlcnkgY2FsbCB0
bwotICAgIGB3cml0ZWAgYW5kIG9ubHkgcHJvY2VlZGluZyB3aXRoIHRoZSBvcGVyYXRpb24gd2hl
biB0aGF0IGNhbGxiYWNrIHJldHVybnMKLSAgICBUcnVlLiIiIgotICAgIGRlZiBfX2luaXRfXyhz
ZWxmLCBvcmlnaW5hbCwgb25fd3JpdGUpOgotICAgICAgICBzZWxmLm9yaWdpbmFsID0gb3JpZ2lu
YWwKLSAgICAgICAgc2VsZi5vbl93cml0ZSA9IG9uX3dyaXRlCi0KLSAgICBkZWYgX19nZXRhdHRy
X18oc2VsZiwgbmFtZSk6Ci0gICAgICAgIHJldHVybiBnZXRhdHRyKHNlbGYub3JpZ2luYWwsIG5h
bWUpCi0KLSAgICBkZWYgZGlzYWJsZShzZWxmKToKLSAgICAgICAgc2VsZi53cml0ZSA9IGxhbWJk
YSBtc2c6IE5vbmUKLQotICAgIGRlZiB3cml0ZShzZWxmLCBtc2cpOgotICAgICAgICBlbmNvZGVk
ID0gbXNnLmVuY29kZSgidXRmOCIsICJiYWNrc2xhc2hyZXBsYWNlIikuZGVjb2RlKCJ1dGY4IikK
LSAgICAgICAgaWYgc2VsZi5vbl93cml0ZShzZWxmLm9yaWdpbmFsLCBlbmNvZGVkKSBpcyBUcnVl
OgotICAgICAgICAgICAgc2VsZi5vcmlnaW5hbC53cml0ZShlbmNvZGVkKQotCi0KLWRlZiByZXBs
YWNlX3N0cmVhbXMoY2FwYWNpdHksIHdhcm5pbmdfbXNnKToKLSAgICAjIFZhbHVlIG11c3QgYmUg
Ym94ZWQgdG8gc3VwcG9ydCBtb2RpZmljYXRpb24gZnJvbSBpbm5lciBmdW5jdGlvbiBzY29wZQot
ICAgIGNvdW50ID0gWzBdCi0gICAgY2FwYWNpdHkgLT0gMiArIGxlbih3YXJuaW5nX21zZykKLSAg
ICBzdGRlcnIgPSBzeXMuc3RkZXJyCi0KLSAgICBkZWYgb25fd3JpdGUoaGFuZGxlLCBtc2cpOgot
ICAgICAgICBsZW5ndGggPSBsZW4obXNnKQotICAgICAgICBjb3VudFswXSArPSBsZW5ndGgKLQot
ICAgICAgICBpZiBjb3VudFswXSA+IGNhcGFjaXR5OgotICAgICAgICAgICAgd3JhcHBlZF9zdGRv
dXQuZGlzYWJsZSgpCi0gICAgICAgICAgICB3cmFwcGVkX3N0ZGVyci5kaXNhYmxlKCkKLSAgICAg
ICAgICAgIGhhbmRsZS53cml0ZShtc2dbMDpjYXBhY2l0eSAtIGNvdW50WzBdXSkKLSAgICAgICAg
ICAgIGhhbmRsZS5mbHVzaCgpCi0gICAgICAgICAgICBzdGRlcnIud3JpdGUoIlxuJXNcbiIgJSB3
YXJuaW5nX21zZykKLSAgICAgICAgICAgIHJldHVybiBGYWxzZQotCi0gICAgICAgIHJldHVybiBU
cnVlCi0KLSAgICAjIFN0b3JlIGxvY2FsIHJlZmVyZW5jZXMgdG8gdGhlIHJlcGxhY2VkIHN0cmVh
bXMgdG8gZ3VhcmQgYWdhaW5zdCB0aGUgY2FzZQotICAgICMgd2hlcmUgb3RoZXIgY29kZSByZXBs
YWNlIHRoZSBnbG9iYWwgcmVmZXJlbmNlcy4KLSAgICBzeXMuc3Rkb3V0ID0gd3JhcHBlZF9zdGRv
dXQgPSBGaWx0ZXJlZElPKHN5cy5zdGRvdXQsIG9uX3dyaXRlKQotICAgIHN5cy5zdGRlcnIgPSB3
cmFwcGVkX3N0ZGVyciA9IEZpbHRlcmVkSU8oc3lzLnN0ZGVyciwgb25fd3JpdGUpCi0KLQotZGVm
IGNhbGwoKmFyZ3MpOgotICAgICIiIkxvZyB0ZXJtaW5hbCBjb21tYW5kLCBpbnZva2UgaXQgYXMg
YSBzdWJwcm9jZXNzLgotCi0gICAgUmV0dXJucyBhIGJ5dGVzdHJpbmcgb2YgdGhlIHN1YnByb2Nl
c3Mgb3V0cHV0IGlmIG5vIGVycm9yLgotICAgICIiIgotICAgIGxvZ2dlci5kZWJ1ZygiJXMiICUg
IiAiLmpvaW4oYXJncykpCi0gICAgdHJ5OgotICAgICAgICByZXR1cm4gc3VicHJvY2Vzcy5jaGVj
a19vdXRwdXQoYXJncykKLSAgICBleGNlcHQgc3VicHJvY2Vzcy5DYWxsZWRQcm9jZXNzRXJyb3Ig
YXMgZToKLSAgICAgICAgbG9nZ2VyLmNyaXRpY2FsKCIlcyBleGl0ZWQgd2l0aCByZXR1cm4gY29k
ZSAlaSIgJQotICAgICAgICAgICAgICAgICAgICAgICAgKGUuY21kLCBlLnJldHVybmNvZGUpKQot
ICAgICAgICBsb2dnZXIuY3JpdGljYWwoZS5vdXRwdXQpCi0gICAgICAgIHJhaXNlCi0KLWRlZiBm
ZXRjaF93cHQodXNlciwgKmFyZ3MpOgotICAgIGdpdCA9IGdldF9naXRfY21kKHdwdF9yb290KQot
ICAgIGdpdCgiZmV0Y2giLCAiaHR0cHM6Ly9naXRodWIuY29tLyVzL3dlYi1wbGF0Zm9ybS10ZXN0
cy5naXQiICUgdXNlciwgKmFyZ3MpCi0KLQotZGVmIGdldF9zaGExKCk6Ci0gICAgIiIiIEdldCBh
bmQgcmV0dXJuIHNoYTEgb2YgY3VycmVudCBnaXQgYnJhbmNoIEhFQUQgY29tbWl0LiIiIgotICAg
IGdpdCA9IGdldF9naXRfY21kKHdwdF9yb290KQotICAgIHJldHVybiBnaXQoInJldi1wYXJzZSIs
ICJIRUFEIikuc3RyaXAoKQotCi0KLWRlZiBkZWVwZW5fY2hlY2tvdXQodXNlcik6Ci0gICAgIiIi
Q29udmVydCBmcm9tIGEgc2hhbGxvdyBjaGVja291dCB0byBhIGZ1bGwgb25lIiIiCi0gICAgZmV0
Y2hfYXJncyA9IFt1c2VyLCAiK3JlZnMvaGVhZHMvKjpyZWZzL3JlbW90ZXMvb3JpZ2luLyoiXQot
ICAgIGlmIG9zLnBhdGguZXhpc3RzKG9zLnBhdGguam9pbih3cHRfcm9vdCwgIi5naXQiLCAic2hh
bGxvdyIpKToKLSAgICAgICAgZmV0Y2hfYXJncy5pbnNlcnQoMSwgIi0tdW5zaGFsbG93IikKLSAg
ICBmZXRjaF93cHQoKmZldGNoX2FyZ3MpCi0KLQotZGVmIGdldF9wYXJzZXIoKToKLSAgICAiIiJD
cmVhdGUgYW5kIHJldHVybiBzY3JpcHQtc3BlY2lmaWMgYXJndW1lbnQgcGFyc2VyLiIiIgotICAg
IGRlc2NyaXB0aW9uID0gIiIiRGV0ZWN0IGluc3RhYmlsaXRpZXMgaW4gbmV3IHRlc3RzIGJ5IGV4
ZWN1dGluZyB0ZXN0cwotICAgIHJlcGVhdGVkbHkgYW5kIGNvbXBhcmluZyByZXN1bHRzIGJldHdl
ZW4gZXhlY3V0aW9ucy4iIiIKLSAgICBwYXJzZXIgPSBhcmdwYXJzZS5Bcmd1bWVudFBhcnNlcihk
ZXNjcmlwdGlvbj1kZXNjcmlwdGlvbikKLSAgICBwYXJzZXIuYWRkX2FyZ3VtZW50KCItLXVzZXIi
LAotICAgICAgICAgICAgICAgICAgICAgICAgYWN0aW9uPSJzdG9yZSIsCi0gICAgICAgICAgICAg
ICAgICAgICAgICAjIFRyYXZpcyBkb2NzIHNheSBkbyBub3QgZGVwZW5kIG9uIFVTRVIgZW52IHZh
cmlhYmxlLgotICAgICAgICAgICAgICAgICAgICAgICAgIyBUaGlzIGlzIGEgd29ya2Fyb3VuZCB0
byBnZXQgd2hhdCBzaG91bGQgYmUgdGhlIHNhbWUgdmFsdWUKLSAgICAgICAgICAgICAgICAgICAg
ICAgIGRlZmF1bHQ9b3MuZW52aXJvbi5nZXQoIlRSQVZJU19SRVBPX1NMVUciLCAidzNjIikuc3Bs
aXQoJy8nKVswXSwKLSAgICAgICAgICAgICAgICAgICAgICAgIGhlbHA9IlRyYXZpcyB1c2VyIG5h
bWUiKQotICAgIHBhcnNlci5hZGRfYXJndW1lbnQoIi0tb3V0cHV0LWJ5dGVzIiwKLSAgICAgICAg
ICAgICAgICAgICAgICAgIGFjdGlvbj0ic3RvcmUiLAotICAgICAgICAgICAgICAgICAgICAgICAg
dHlwZT1pbnQsCi0gICAgICAgICAgICAgICAgICAgICAgICBoZWxwPSJNYXhpbXVtIG51bWJlciBv
ZiBieXRlcyB0byB3cml0ZSB0byBzdGFuZGFyZCBvdXRwdXQvZXJyb3IiKQotICAgIHBhcnNlci5h
ZGRfYXJndW1lbnQoIi0tbWV0YWRhdGEiLAotICAgICAgICAgICAgICAgICAgICAgICAgZGVzdD0i
bWV0YWRhdGFfcm9vdCIsCi0gICAgICAgICAgICAgICAgICAgICAgICBhY3Rpb249InN0b3JlIiwK
LSAgICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ9d3B0X3Jvb3QsCi0gICAgICAgICAgICAg
ICAgICAgICAgICBoZWxwPSJEaXJlY3RvcnkgdGhhdCB3aWxsIGNvbnRhaW4gTUFOSUZFU1QuanNv
biIpCi0gICAgcGFyc2VyLmFkZF9hcmd1bWVudCgiLS1jb25maWctZmlsZSIsCi0gICAgICAgICAg
ICAgICAgICAgICAgICBhY3Rpb249InN0b3JlIiwKLSAgICAgICAgICAgICAgICAgICAgICAgIHR5
cGU9c3RyLAotICAgICAgICAgICAgICAgICAgICAgICAgaGVscD0iTG9jYXRpb24gb2YgaW5pLWZv
cm1hdHRlZCBjb25maWd1cmF0aW9uIGZpbGUiLAotICAgICAgICAgICAgICAgICAgICAgICAgZGVm
YXVsdD0iY2hlY2tfc3RhYmlsaXR5LmluaSIpCi0gICAgcGFyc2VyLmFkZF9hcmd1bWVudCgiLS1y
ZXYiLAotICAgICAgICAgICAgICAgICAgICAgICAgYWN0aW9uPSJzdG9yZSIsCi0gICAgICAgICAg
ICAgICAgICAgICAgICBkZWZhdWx0PU5vbmUsCi0gICAgICAgICAgICAgICAgICAgICAgICBoZWxw
PSJDb21taXQgcmFuZ2UgdG8gdXNlIikKLSAgICByZXR1cm4gcGFyc2VyCi0KLQotZGVmIHByKCk6
Ci0gICAgcHIgPSBvcy5lbnZpcm9uLmdldCgiVFJBVklTX1BVTExfUkVRVUVTVCIsICJmYWxzZSIp
Ci0gICAgcmV0dXJuIHByIGlmIHByICE9ICJmYWxzZSIgZWxzZSBOb25lCi0KLQotZGVmIGdldF9j
aGFuZ2VkX2ZpbGVzKG1hbmlmZXN0X3BhdGgsIHJldiwgaWdub3JlX2NoYW5nZXMsIHNraXBfdGVz
dHMpOgotICAgIGlmIG5vdCByZXY6Ci0gICAgICAgIGJyYW5jaF9wb2ludCA9IHRlc3RmaWxlcy5i
cmFuY2hfcG9pbnQoKQotICAgICAgICByZXZpc2ggPSAiJXMuLkhFQUQiICUgYnJhbmNoX3BvaW50
Ci0gICAgZWxzZToKLSAgICAgICAgcmV2aXNoID0gcmV2Ci0KLSAgICBmaWxlc19jaGFuZ2VkLCBm
aWxlc19pZ25vcmVkID0gdGVzdGZpbGVzLmZpbGVzX2NoYW5nZWQocmV2aXNoLCBpZ25vcmVfY2hh
bmdlcykKLQotICAgIGlmIGZpbGVzX2lnbm9yZWQ6Ci0gICAgICAgIGxvZ2dlci5pbmZvKCJJZ25v
cmluZyAlcyBjaGFuZ2VkIGZpbGVzOlxuJXMiICUKLSAgICAgICAgICAgICAgICAgICAgKGxlbihm
aWxlc19pZ25vcmVkKSwgIiIuam9pbigiICogJXNcbiIgJSBpdGVtIGZvciBpdGVtIGluIGZpbGVz
X2lnbm9yZWQpKSkKLQotICAgIHRlc3RzX2NoYW5nZWQsIGZpbGVzX2FmZmVjdGVkID0gdGVzdGZp
bGVzLmFmZmVjdGVkX3Rlc3RmaWxlcyhmaWxlc19jaGFuZ2VkLCBza2lwX3Rlc3RzLAotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBtYW5pZmVzdF9wYXRoPW1hbmlmZXN0X3BhdGgpCi0KLSAgICByZXR1cm4gdGVzdHNfY2hhbmdl
ZCwgZmlsZXNfYWZmZWN0ZWQKLQotCi1kZWYgbWFpbigpOgotICAgICIiIlBlcmZvcm0gY2hlY2tf
c3RhYmlsaXR5IGZ1bmN0aW9uYWxpdHkgYW5kIHJldHVybiBleGl0IGNvZGUuIiIiCi0KLSAgICB2
ZW52ID0gVmlydHVhbGVudihvcy5lbnZpcm9uLmdldCgiVklSVFVBTF9FTlYiLCBvcy5wYXRoLmpv
aW4od3B0X3Jvb3QsICJfdmVudiIpKSkKLSAgICB2ZW52Lmluc3RhbGxfcmVxdWlyZW1lbnRzKG9z
LnBhdGguam9pbih3cHRfcm9vdCwgInRvb2xzIiwgIndwdHJ1bm5lciIsICJyZXF1aXJlbWVudHMu
dHh0IikpCi0KLSAgICBhcmdzLCB3cHRfYXJncyA9IGdldF9wYXJzZXIoKS5wYXJzZV9rbm93bl9h
cmdzKCkKLSAgICByZXR1cm4gcnVuKHZlbnYsIHdwdF9hcmdzLCAqKnZhcnMoYXJncykpCi0KLQot
ZGVmIHJ1bih2ZW52LCB3cHRfYXJncywgKiprd2FyZ3MpOgotICAgIGRvX2RlbGF5ZWRfaW1wb3J0
cygpCi0KLSAgICByZXRjb2RlID0gMAotCi0gICAgd3B0X2FyZ3MgPSBjcmVhdGVfcGFyc2VyKCku
cGFyc2VfYXJncyh3cHRfYXJncykKLQotICAgIHdpdGggb3Blbihrd2FyZ3NbImNvbmZpZ19maWxl
Il0sICdyJykgYXMgY29uZmlnX2ZwOgotICAgICAgICBjb25maWcgPSBTYWZlQ29uZmlnUGFyc2Vy
KCkKLSAgICAgICAgY29uZmlnLnJlYWRmcChjb25maWdfZnApCi0gICAgICAgIHNraXBfdGVzdHMg
PSBjb25maWcuZ2V0KCJmaWxlIGRldGVjdGlvbiIsICJza2lwX3Rlc3RzIikuc3BsaXQoKQotICAg
ICAgICBpZ25vcmVfY2hhbmdlcyA9IHNldChjb25maWcuZ2V0KCJmaWxlIGRldGVjdGlvbiIsICJp
Z25vcmVfY2hhbmdlcyIpLnNwbGl0KCkpCi0KLSAgICBpZiBrd2FyZ3NbIm91dHB1dF9ieXRlcyJd
IGlzIG5vdCBOb25lOgotICAgICAgICByZXBsYWNlX3N0cmVhbXMoa3dhcmdzWyJvdXRwdXRfYnl0
ZXMiXSwKLSAgICAgICAgICAgICAgICAgICAgICAgICJMb2cgcmVhY2hlZCBjYXBhY2l0eSAoJXMg
Ynl0ZXMpOyBvdXRwdXQgZGlzYWJsZWQuIiAlIGt3YXJnc1sib3V0cHV0X2J5dGVzIl0pCi0KLQot
ICAgIHdwdF9hcmdzLm1ldGFkYXRhX3Jvb3QgPSBrd2FyZ3NbIm1ldGFkYXRhX3Jvb3QiXQotICAg
IHRyeToKLSAgICAgICAgb3MubWFrZWRpcnMod3B0X2FyZ3MubWV0YWRhdGFfcm9vdCkKLSAgICBl
eGNlcHQgT1NFcnJvcjoKLSAgICAgICAgcGFzcwotCi0gICAgc2V0dXBfbG9nZ2luZygpCi0KLSAg
ICBwcl9udW1iZXIgPSBwcigpCi0KLSAgICB3aXRoIFRyYXZpc0ZvbGQoImJyb3dzZXJfc2V0dXAi
KToKLSAgICAgICAgbG9nZ2VyLmluZm8obWFya2Rvd24uZm9ybWF0X2NvbW1lbnRfdGl0bGUod3B0
X2FyZ3MucHJvZHVjdCkpCi0KLSAgICAgICAgaWYgcHIgaXMgbm90IE5vbmU6Ci0gICAgICAgICAg
ICBkZWVwZW5fY2hlY2tvdXQoa3dhcmdzWyJ1c2VyIl0pCi0KLSAgICAgICAgIyBFbnN1cmUgd2Ug
aGF2ZSBhIGJyYW5jaCBjYWxsZWQgIm1hc3RlciIKLSAgICAgICAgZmV0Y2hfd3B0KGt3YXJnc1si
dXNlciJdLCAibWFzdGVyOm1hc3RlciIpCi0KLSAgICAgICAgaGVhZF9zaGExID0gZ2V0X3NoYTEo
KQotICAgICAgICBsb2dnZXIuaW5mbygiVGVzdGluZyB3ZWItcGxhdGZvcm0tdGVzdHMgYXQgcmV2
aXNpb24gJXMiICUgaGVhZF9zaGExKQotCi0gICAgICAgIHdwdF9rd2FyZ3MgPSBLd2FyZ3ModmFy
cyh3cHRfYXJncykpCi0KLSAgICAgICAgaWYgbm90IHdwdF9rd2FyZ3NbInRlc3RfbGlzdCJdOgot
ICAgICAgICAgICAgbWFuaWZlc3RfcGF0aCA9IG9zLnBhdGguam9pbih3cHRfa3dhcmdzWyJtZXRh
ZGF0YV9yb290Il0sICJNQU5JRkVTVC5qc29uIikKLSAgICAgICAgICAgIHRlc3RzX2NoYW5nZWQs
IGZpbGVzX2FmZmVjdGVkID0gZ2V0X2NoYW5nZWRfZmlsZXMobWFuaWZlc3RfcGF0aCwga3dhcmdz
WyJyZXYiXSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgaWdub3JlX2NoYW5nZXMsIHNraXBfdGVzdHMpCi0KLSAgICAgICAgICAg
IGlmIG5vdCAodGVzdHNfY2hhbmdlZCBvciBmaWxlc19hZmZlY3RlZCk6Ci0gICAgICAgICAgICAg
ICAgbG9nZ2VyLmluZm8oIk5vIHRlc3RzIGNoYW5nZWQiKQotICAgICAgICAgICAgICAgIHJldHVy
biAwCi0KLSAgICAgICAgICAgIGlmIHRlc3RzX2NoYW5nZWQ6Ci0gICAgICAgICAgICAgICAgbG9n
Z2VyLmRlYnVnKCJUZXN0cyBjaGFuZ2VkOlxuJXMiICUgIiIuam9pbigiICogJXNcbiIgJSBpdGVt
IGZvciBpdGVtIGluIHRlc3RzX2NoYW5nZWQpKQotCi0gICAgICAgICAgICBpZiBmaWxlc19hZmZl
Y3RlZDoKLSAgICAgICAgICAgICAgICBsb2dnZXIuZGVidWcoIkFmZmVjdGVkIHRlc3RzOlxuJXMi
ICUgIiIuam9pbigiICogJXNcbiIgJSBpdGVtIGZvciBpdGVtIGluIGZpbGVzX2FmZmVjdGVkKSkK
LQotICAgICAgICAgICAgd3B0X2t3YXJnc1sidGVzdF9saXN0Il0gPSBsaXN0KHRlc3RzX2NoYW5n
ZWQgfCBmaWxlc19hZmZlY3RlZCkKLQotICAgICAgICBkb19kZWxheWVkX2ltcG9ydHMoKQotCi0g
ICAgICAgIHdwdF9rd2FyZ3NbInByb21wdCJdID0gRmFsc2UKLSAgICAgICAgd3B0X2t3YXJnc1si
aW5zdGFsbF9icm93c2VyIl0gPSBUcnVlCi0gICAgICAgIHdwdF9rd2FyZ3NbImluc3RhbGwiXSA9
IHdwdF9rd2FyZ3NbInByb2R1Y3QiXS5zcGxpdCgiOiIpWzBdID09ICJmaXJlZm94IgotCi0gICAg
ICAgIHdwdF9rd2FyZ3NbInBhdXNlX2FmdGVyX3Rlc3QiXSA9IEZhbHNlCi0gICAgICAgIHdwdF9r
d2FyZ3NbInZlcmlmeV9sb2dfZnVsbCJdID0gRmFsc2UKLSAgICAgICAgaWYgd3B0X2t3YXJnc1si
cmVwZWF0Il0gPT0gMToKLSAgICAgICAgICAgIHdwdF9rd2FyZ3NbInJlcGVhdCJdID0gMTAKLQot
ICAgICAgICB3cHRfa3dhcmdzID0gc2V0dXBfd3B0cnVubmVyKHZlbnYsICoqd3B0X2t3YXJncykK
LQotICAgICAgICBsb2dnZXIuaW5mbygiVXNpbmcgYmluYXJ5ICVzIiAlIHdwdF9rd2FyZ3NbImJp
bmFyeSJdKQotCi0KLSAgICB3aXRoIFRyYXZpc0ZvbGQoInJ1bm5pbmdfdGVzdHMiKToKLSAgICAg
ICAgbG9nZ2VyLmluZm8oIlN0YXJ0aW5nIHRlc3RzIikKLQotICAgICAgICB3cHRfbG9nZ2VyID0g
d3B0cnVubmVyLmxvZ2dlcgotICAgICAgICByZXN1bHRzLCBpbmNvbnNpc3RlbnQsIGl0ZXJhdGlv
bnMgPSBydW5fc3RlcCh3cHRfbG9nZ2VyLCB3cHRfa3dhcmdzWyJyZXBlYXQiXSwgVHJ1ZSwge30s
ICoqd3B0X2t3YXJncykKLQotICAgIGlmIHJlc3VsdHM6Ci0gICAgICAgIGlmIGluY29uc2lzdGVu
dDoKLSAgICAgICAgICAgIHdyaXRlX2luY29uc2lzdGVudChsb2dnZXIuZXJyb3IsIGluY29uc2lz
dGVudCwgaXRlcmF0aW9ucykKLSAgICAgICAgICAgIHJldGNvZGUgPSAyCi0gICAgICAgIGVsc2U6
Ci0gICAgICAgICAgICBsb2dnZXIuaW5mbygiQWxsIHJlc3VsdHMgd2VyZSBzdGFibGVcbiIpCi0g
ICAgICAgIHdpdGggVHJhdmlzRm9sZCgiZnVsbF9yZXN1bHRzIik6Ci0gICAgICAgICAgICB3cml0
ZV9yZXN1bHRzKGxvZ2dlci5pbmZvLCByZXN1bHRzLCBpdGVyYXRpb25zLAotICAgICAgICAgICAg
ICAgICAgICAgICAgICBwcl9udW1iZXI9cHJfbnVtYmVyLAotICAgICAgICAgICAgICAgICAgICAg
ICAgICB1c2VfZGV0YWlscz1UcnVlKQotICAgIGVsc2U6Ci0gICAgICAgIGxvZ2dlci5pbmZvKCJO
byB0ZXN0cyBydW4uIikKLSAgICAgICAgIyBCZSBjb25zZXJ2YXRpdmUgYW5kIG9ubHkgcmV0dXJu
IGVycm9ycyB3aGVuIHdlIGtub3cgZm9yIHN1cmUgdGVzdHMgYXJlIGNoYW5nZWQuCi0gICAgICAg
IGlmIHRlc3RzX2NoYW5nZWQ6Ci0gICAgICAgICAgICByZXRjb2RlID0gMwotCi0gICAgcmV0dXJu
IHJldGNvZGUKLQotCi1pZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgotICAgIHRyeToKLSAgICAg
ICAgc3lzLmV4aXQobWFpbigpKQotICAgIGV4Y2VwdCBFeGNlcHRpb246Ci0gICAgICAgIGltcG9y
dCB0cmFjZWJhY2sKLSAgICAgICAgdHJhY2ViYWNrLnByaW50X2V4YygpCi0gICAgICAgIHN5cy5l
eGl0KDEpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL2NpL2NpX2J1aWx0X2RpZmYuc2ggYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2NpL2NpX2J1aWx0X2RpZmYuc2gKaW5kZXggMzRm
MjRhNzQyNWIyOWRhNjczOWNkZTNhNmQ3YmRkZjg3MTc1OWM4OC4uNzA5Y2MyYWE3ZTY4NjdmNTQ4
ZDRlZmRkNjJkNzRhYmMxODVlNjU3YiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9jaS9jaV9idWlsdF9kaWZmLnNoCisrKyBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvY2kvY2lfYnVp
bHRfZGlmZi5zaApAQCAtMSw3ICsxLDggQEAKKyMhL2Jpbi9iYXNoCiBzZXQgLWV4CiAKLVNDUklQ
VF9ESVI9JChkaXJuYW1lICQocmVhZGxpbmsgLWYgIiQwIikpCi1XUFRfUk9PVD0kKHJlYWRsaW5r
IC1mICRTQ1JJUFRfRElSLy4uLy4uKQorU0NSSVBUX0RJUj0kKGNkICQoZGlybmFtZSAiJDAiKSAm
JiBwd2QgLVApCitXUFRfUk9PVD0kU0NSSVBUX0RJUi8uLi8uLgogY2QgJFdQVF9ST09UCiAKIG1h
aW4oKSB7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL2NpL2NpX2xpbnQuc2ggYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2NpL2NpX2xpbnQuc2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDQ2YjMxN2UxYTE5M2I1NzE2MWM1MjRiMmMxMGIzZDQyZmQzYmVhZGEuLjAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9jaS9jaV9saW50LnNoCisrKyAvZGV2
L251bGwKQEAgLTEsOSArMCwwIEBACi1zZXQgLWV4Ci0KLVNDUklQVF9ESVI9JChkaXJuYW1lICQo
cmVhZGxpbmsgLWYgIiQwIikpCi1XUFRfUk9PVD0kKHJlYWRsaW5rIC1mICRTQ1JJUFRfRElSLy4u
Ly4uKQotY2QgJFdQVF9ST09UCi0KLW1rZGlyIC1wIH4vbWV0YQotLi93cHQgbWFuaWZlc3QgLXAg
fi9tZXRhL01BTklGRVNULmpzb24KLS4vd3B0IGxpbnQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvY2kvY2lfbWFuaWZlc3Quc2gg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2NpL2Np
X21hbmlmZXN0LnNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBmMTNhNzBmOTM1NDM2
YTUwMjU4MTE1Y2YwMDZkNjkxM2QwYWY3ZWFiLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvY2kvY2lfbWFuaWZlc3Quc2gKKysrIC9kZXYvbnVsbApAQCAtMSwxMyArMCww
IEBACi1zZXQgLWV4Ci0KLVNDUklQVF9ESVI9JChkaXJuYW1lICQocmVhZGxpbmsgLWYgIiQwIikp
Ci1XUFRfUk9PVD0kKHJlYWRsaW5rIC1mICRTQ1JJUFRfRElSLy4uLy4uKQotY2QgJFdQVF9ST09U
Ci0KLW1rZGlyIC1wIH4vbWV0YQotCi1weXRob24gdG9vbHMvY2kvdGFnX21hc3Rlci5weQotLi93
cHQgbWFuaWZlc3QgLXAgfi9tZXRhL01BTklGRVNULmpzb24KLWNwIH4vbWV0YS9NQU5JRkVTVC5q
c29uICRXUFRfTUFOSUZFU1RfRklMRQotIyBGb3JjZSBvdmVyd3JpdGUgb2YgYW55IGV4aXN0aW5n
IGZpbGUKLWd6aXAgLWYgJFdQVF9NQU5JRkVTVF9GSUxFCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2NpL2NpX3Jlc291cmNlc191
bml0dGVzdC5zaCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvY2kvY2lfcmVzb3VyY2VzX3VuaXR0ZXN0LnNoCmluZGV4IDc4ODY4YjkzNDMzZTgwMWY5
ODc4MmY2MDVlYjlmNjY2YzZlZmU5Y2QuLjExMTkwZmM1OGQ2NDQ5MWJhZTcxOWY5YWM5MWFkYjFl
ODc5ODg2ZmIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvY2kvY2lfcmVzb3VyY2VzX3VuaXR0ZXN0LnNoCisrKyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvY2kvY2lfcmVzb3VyY2Vz
X3VuaXR0ZXN0LnNoCkBAIC0xLDIzICsxLDE5IEBACiAjIS9iaW4vYmFzaAogc2V0IC1leAogCi1T
Q1JJUFRfRElSPSQoZGlybmFtZSAkKHJlYWRsaW5rIC1mICIkMCIpKQotV1BUX1JPT1Q9JChyZWFk
bGluayAtZiAkU0NSSVBUX0RJUi8uLi8uLikKK1NDUklQVF9ESVI9JChjZCAkKGRpcm5hbWUgIiQw
IikgJiYgcHdkIC1QKQorV1BUX1JPT1Q9JFNDUklQVF9ESVIvLi4vLi4KIGNkICRXUFRfUk9PVAog
Ci1zb3VyY2UgdG9vbHMvY2kvbGliLnNoCi0KIG1haW4oKSB7Ci0gICAgaG9zdHNfZml4dXAKLQog
ICAgIGNkICRXUFRfUk9PVAotICAgIHBpcCBpbnN0YWxsIC1VIHRveAorICAgIHBpcCBpbnN0YWxs
IC0tdXNlciAtVSB0b3gKICAgICAuL3dwdCBpbnN0YWxsIGZpcmVmb3ggYnJvd3NlciAtLWRlc3Rp
bmF0aW9uICRIT01FCiAgICAgLi93cHQgaW5zdGFsbCBmaXJlZm94IHdlYmRyaXZlciAtLWRlc3Rp
bmF0aW9uICRIT01FL2ZpcmVmb3gKICAgICBleHBvcnQgUEFUSD0kSE9NRS9maXJlZm94OiRQQVRI
CiAKICAgICBjZCAkV1BUX1JPT1QvcmVzb3VyY2VzL3Rlc3QKLSAgICB0b3ggLS0gLS1iaW5hcnk9
JEhPTUUvYnJvd3NlcnMvZmlyZWZveC9maXJlZm94CisgICAgdG94IC0tIC0tYmluYXJ5PSRIT01F
L2Jyb3dzZXJzL25pZ2h0bHkvZmlyZWZveC9maXJlZm94CiB9CiAKIG1haW4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvY2kvY2lf
c3RhYmlsaXR5LnNoIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy9jaS9jaV9zdGFiaWxpdHkuc2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IGEyM2IwNTczODUzYTUzZmU1NTIwZDhmYTZhYWIwMmY4MGI1M2ExOGQuLjAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9jaS9jaV9zdGFiaWxpdHkuc2gKKysrIC9kZXYvbnVs
bApAQCAtMSwzMCArMCwwIEBACi0jIS9iaW4vYmFzaAotc2V0IC1leAotCi1TQ1JJUFRfRElSPSQo
ZGlybmFtZSAkKHJlYWRsaW5rIC1mICIkMCIpKQotV1BUX1JPT1Q9JChyZWFkbGluayAtZiAkU0NS
SVBUX0RJUi8uLi8uLikKLWNkICRXUFRfUk9PVAotCi1zb3VyY2UgdG9vbHMvY2kvbGliLnNoCi0K
LXRlc3Rfc3RhYmlsaXR5KCkgewotICAgIGxvY2FsIGV4dHJhX2FyZz0kMQotICAgIC4vd3B0IGNo
ZWNrLXN0YWJpbGl0eSAkUFJPRFVDVCAkZXh0cmFfYXJnIC0tb3V0cHV0LWJ5dGVzICQoKDEwMjQg
KiAxMDI0ICogMykpIC0tbWV0YWRhdGEgfi9tZXRhLyAtLWluc3RhbGwtZm9udHMKLX0KLQotbWFp
bigpIHsKLSAgICBob3N0c19maXh1cAotICAgIGxvY2FsIGV4dHJhX2FyZz0iIgotICAgIGlmIFsg
JChlY2hvICRQUk9EVUNUIHwgZ3JlcCAnXmNocm9tZTonKSBdOyB0aGVuCi0gICAgICAgIGxvY2Fs
IGNoYW5uZWw9JChlY2hvICRQUk9EVUNUIHwgZ3JlcCAtLW9ubHktbWF0Y2hpbmcgJ1x3XCskJykK
LSAgICAgICAgaWYgW1sgJGNoYW5uZWwgPT0gImRldiIgXV07IHRoZW4KLSAgICAgICAgICAgICMg
VGhlIHBhY2thZ2UgbmFtZSBmb3IgR29vZ2xlIENocm9tZSBEZXYgdXNlcyAidW5zdGFibGUiLCBu
b3QgImRldiIuCi0gICAgICAgICAgICBjaGFubmVsPSJ1bnN0YWJsZSIKLSAgICAgICAgZmkKLSAg
ICAgICAgaW5zdGFsbF9jaHJvbWUgJGNoYW5uZWwKLSAgICAgICAgZXh0cmFfYXJnPSItLWJpbmFy
eT0kKHdoaWNoIGdvb2dsZS1jaHJvbWUtJGNoYW5uZWwpIgotICAgIGZpCi0gICAgdGVzdF9zdGFi
aWxpdHkgJGV4dHJhX2FyZwotfQotCi1tYWluCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2NpL2NpX3Rhc2tjbHVzdGVyLnNoIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9jaS9jaV90
YXNrY2x1c3Rlci5zaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMTE4MjQzODgxYTkz
OGI5ZDJjYWUwZWJjZTI2NjJjOGVkNDE2ZWFhNC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL2NpL2NpX3Rhc2tjbHVzdGVyLnNoCisrKyAvZGV2L251bGwKQEAgLTEsMTAg
KzAsMCBAQAotIyEvYmluL2Jhc2gKLQotLi93cHQgbWFuaWZlc3QtZG93bmxvYWQKLQotaWYgWyAk
MSA9PSAiZmlyZWZveCIgXTsgdGhlbgotICAgIC4vd3B0IHJ1biBmaXJlZm94IC0tbG9nLXRicGw9
Li4vYXJ0aWZhY3RzL2xvZ190YnBsLmxvZyAtLWxvZy10YnBsLWxldmVsPWluZm8gLS1sb2ctd3B0
cmVwb3J0PS4uL2FydGlmYWN0cy93cHRfcmVwb3J0Lmpzb24gLS1sb2ctbWFjaD0tIC0tdGhpcy1j
aHVuaz0kMyAtLXRvdGFsLWNodW5rcz0kNCAtLXRlc3QtdHlwZT0kMiAteSAtLWluc3RhbGwtYnJv
d3NlciAtLW5vLXBhdXNlIC0tbm8tcmVzdGFydC1vbi11bmV4cGVjdGVkIC0tcmVmdGVzdC1pbnRl
cm5hbCAtLWluc3RhbGwtZm9udHMgLS1uby1mYWlsLW9uLXVuZXhwZWN0ZWQKLWVsaWYgWyAkMSA9
PSAiY2hyb21lIiBdOyB0aGVuCi0gICAgLi93cHQgcnVuIGNocm9tZSAtLWxvZy10YnBsPS4uL2Fy
dGlmYWN0cy9sb2dfdGJwbC5sb2cgLS1sb2ctdGJwbC1sZXZlbD1pbmZvIC0tbG9nLXdwdHJlcG9y
dD0uLi9hcnRpZmFjdHMvd3B0X3JlcG9ydC5qc29uIC0tbG9nLW1hY2g9LSAtLXRoaXMtY2h1bms9
JDMgLS10b3RhbC1jaHVua3M9JDQgLS10ZXN0LXR5cGU9JDIgLXkgIC0tbm8tcGF1c2UgLS1uby1y
ZXN0YXJ0LW9uLXVuZXhwZWN0ZWQgLS1pbnN0YWxsLWZvbnRzIC0tbm8tZmFpbC1vbi11bmV4cGVj
dGVkCi1maQotZ3ppcCAuLi9hcnRpZmFjdHMvd3B0X3JlcG9ydC5qc29uCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2NpL2NpX3Rv
b2xzX3VuaXR0ZXN0LnNoIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy9jaS9jaV90b29sc191bml0dGVzdC5zaAppbmRleCBlZWE2NTkwZjM3YWVkN2I1
Y2JmNmFjMmQ5MWFlMTMwNmYyNGU5YzQ1Li4zNjZkY2Y2NmRlODhlNmJhMjlmYzg1Yzk2OTc4MzJl
ZWFkOTM3NmMzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL2NpL2NpX3Rvb2xzX3VuaXR0ZXN0LnNoCisrKyBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvY2kvY2lfdG9vbHNfdW5pdHRl
c3Quc2gKQEAgLTEsOCArMSw4IEBACiAjIS9iaW4vYmFzaAogc2V0IC1leAogCi1TQ1JJUFRfRElS
PSQoZGlybmFtZSAkKHJlYWRsaW5rIC1mICIkMCIpKQotV1BUX1JPT1Q9JChyZWFkbGluayAtZiAk
U0NSSVBUX0RJUi8uLi8uLikKK1NDUklQVF9ESVI9JChjZCAkKGRpcm5hbWUgIiQwIikgJiYgcHdk
IC1QKQorV1BUX1JPT1Q9JFNDUklQVF9ESVIvLi4vLi4KIGNkICRXUFRfUk9PVAogCiBydW5fYXBw
bGljYWJsZV90b3ggKCkgewpAQCAtMTgsMTEgKzE4LDggQEAgcnVuX2FwcGxpY2FibGVfdG94ICgp
IHsKICAgICBleHBvcnQgVE9YRU5WPSIkT0xEX1RPWEVOViIKIH0KIAotUkVMRVZBTlRfSk9CUz0k
KC4vd3B0IHRlc3Qtam9icykKLQotUkVMRVZBTlRfQ0hBTkdFU19UT09MUz0kKGVjaG8gIiRSRUxF
VkFOVF9KT0JTIiB8IGdyZXAgInRvb2xzX3VuaXR0ZXN0IiB8fCB0cnVlKQotaWYgW1sgISAteiAk
UkVMRVZBTlRfQ0hBTkdFU19UT09MUyBdXTsgdGhlbgotICAgIHBpcCBpbnN0YWxsIC1VIHRveCBj
b2RlY292CitpZiAuL3dwdCB0ZXN0LWpvYnMgLS1pbmNsdWRlcyB0b29sc191bml0dGVzdDsgdGhl
bgorICAgIHBpcCBpbnN0YWxsIC0tdXNlciAtVSB0b3ggY29kZWNvdgogICAgIGNkIHRvb2xzCiAg
ICAgcnVuX2FwcGxpY2FibGVfdG94CiAgICAgY2QgJFdQVF9ST09UCkBAIC0zMCwxMiArMjcsMTAg
QEAgZWxzZQogICAgIGVjaG8gIlNraXBwaW5nIHRvb2xzIHVuaXR0ZXN0IgogZmkKIAotUkVMRVZB
TlRfQ0hBTkdFU19XUFRSVU5ORVI9JChlY2hvICIkUkVMRVZBTlRfSk9CUyIgfCBncmVwICJ3cHRy
dW5uZXJfdW5pdHRlc3QiIHx8IHRydWUpCi1pZiBbWyAhIC16ICRSRUxFVkFOVF9DSEFOR0VTX1dQ
VFJVTk5FUiBdXTsgdGhlbgoraWYgLi93cHQgdGVzdC1qb2JzIC0taW5jbHVkZXMgd3B0cnVubmVy
X3VuaXR0ZXN0OyB0aGVuCiAgICAgY2QgdG9vbHMvd3B0cnVubmVyCiAgICAgcnVuX2FwcGxpY2Fi
bGVfdG94CiAgICAgY2QgJFdQVF9ST09UCiBlbHNlCiAgICAgZWNobyAiU2tpcHBpbmcgd3B0cnVu
bmVyIHVuaXR0ZXN0IgogZmkKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9jaS9jaV93cHQuc2ggYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2NpL2NpX3dwdC5zaAppbmRleCA5YTE2
NTZmMzNkYWQxMzA3NjhlNTRjOTJjMzVlZjkxMjhiNGYwYjc2Li43YzM3ZTc4NjNlMDAyZGI2NmM1
OTAwOWFlM2Q0MzYwYWFhNzE3NDk5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2NpL2NpX3dwdC5zaAorKysgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2NpL2NpX3dwdC5zaApAQCAt
MSwxNyArMSwxMyBAQAogIyEvYmluL2Jhc2gKIHNldCAtZQogCi1TQ1JJUFRfRElSPSQoZGlybmFt
ZSAkKHJlYWRsaW5rIC1mICIkMCIpKQotV1BUX1JPT1Q9JChyZWFkbGluayAtZiAkU0NSSVBUX0RJ
Ui8uLi8uLikKK1NDUklQVF9ESVI9JChjZCAkKGRpcm5hbWUgIiQwIikgJiYgcHdkIC1QKQorV1BU
X1JPT1Q9JFNDUklQVF9ESVIvLi4vLi4KIGNkICRXUFRfUk9PVAogCi1zb3VyY2UgdG9vbHMvY2kv
bGliLnNoCi0KIG1haW4oKSB7CiAgICAgZ2l0IGZldGNoIC0tcXVpZXQgLS11bnNoYWxsb3cgaHR0
cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQuZ2l0ICtyZWZzL2hlYWRzLyo6
cmVmcy9yZW1vdGVzL29yaWdpbi8qCi0gICAgaG9zdHNfZml4dXAKLSAgICBpbnN0YWxsX2Nocm9t
ZSB1bnN0YWJsZQotICAgIHBpcCBpbnN0YWxsIC1VIHRveCBjb2RlY292CisgICAgcGlwIGluc3Rh
bGwgLS11c2VyIC1VIHRveCBjb2RlY292CiAgICAgY2QgdG9vbHMvd3B0CiAgICAgdG94CiB9CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL2NpL2NpX3dwdHJ1bm5lcl9pbmZyYXN0cnVjdHVyZS5zaCBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvY2kvY2lfd3B0cnVubmVyX2luZnJhc3Ry
dWN0dXJlLnNoCmluZGV4IGQ2ZDY4MDM5NzRmYjA1OGUxMWFlYmI2NWYxMjc1MmU0ODI0YTU3MWQu
LjhkYjA4Nzk0YWRlMjZiZWY4OTlmMDVjNDg5MGMyYjg4ZTY4ZGYyOTIgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvY2kvY2lfd3B0
cnVubmVyX2luZnJhc3RydWN0dXJlLnNoCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvY2kvY2lfd3B0cnVubmVyX2luZnJhc3RydWN0dXJlLnNo
CkBAIC0xLDExICsxLDEzIEBACiAjIS9iaW4vYmFzaAogc2V0IC1leAogCi1TQ1JJUFRfRElSPSQo
ZGlybmFtZSAkKHJlYWRsaW5rIC1mICIkMCIpKQotV1BUX1JPT1Q9JChyZWFkbGluayAtZiAkU0NS
SVBUX0RJUi8uLi8uLikKK1NDUklQVF9ESVI9JChjZCAkKGRpcm5hbWUgIiQwIikgJiYgcHdkIC1Q
KQorV1BUX1JPT1Q9JFNDUklQVF9ESVIvLi4vLi4KIGNkICRXUFRfUk9PVAogCi1zb3VyY2UgdG9v
bHMvY2kvbGliLnNoCithZGRfd3B0X2hvc3RzKCkgeworICAgIC4vd3B0IG1ha2UtaG9zdHMtZmls
ZSB8IHN1ZG8gdGVlIC1hIC9ldGMvaG9zdHMKK30KIAogdGVzdF9pbmZyYXN0cnVjdHVyZSgpIHsK
ICAgICBsb2NhbCBBUkdTPSIiOwpAQCAtMTQsMjAgKzE2LDE2IEBAIHRlc3RfaW5mcmFzdHJ1Y3R1
cmUoKSB7CiAgICAgZWxzZQogICAgICAgICBBUkdTPSQxCiAgICAgZmkKLSAgICAuL3dwdCBydW4g
LS15ZXMgLS1tYW5pZmVzdCB+L21ldGEvTUFOSUZFU1QuanNvbiAtLW1ldGFkYXRhIGluZnJhc3Ry
dWN0dXJlL21ldGFkYXRhLyAtLWluc3RhbGwtZm9udHMgJEFSR1MgJFBST0RVQ1QgaW5mcmFzdHJ1
Y3R1cmUvCisgICAgVEVSTT1kdW1iIC4vd3B0IHJ1biAtLWxvZy1tYWNoIC0gLS15ZXMgLS1tYW5p
ZmVzdCB+L21ldGEvTUFOSUZFU1QuanNvbiAtLW1ldGFkYXRhIGluZnJhc3RydWN0dXJlL21ldGFk
YXRhLyAtLWluc3RhbGwtZm9udHMgJEFSR1MgJFBST0RVQ1QgaW5mcmFzdHJ1Y3R1cmUvCiB9CiAK
IG1haW4oKSB7CiAgICAgUFJPRFVDVFM9KCAiZmlyZWZveCIgImNocm9tZSIgKQorICAgIC4vd3B0
IG1hbmlmZXN0IC0tcmVidWlsZCAtcCB+L21ldGEvTUFOSUZFU1QuanNvbgogICAgIGZvciBQUk9E
VUNUIGluICIke1BST0RVQ1RTW0BdfSI7IGRvCi0gICAgICAgIGlmIFsgIiRQUk9EVUNUIiAhPSAi
ZmlyZWZveCIgXTsgdGhlbgotICAgICAgICAgICAgIyBGaXJlZm94IGlzIGV4cGVjdGVkIHRvIHdv
cmsgdXNpbmcgcHJlZiBzZXR0aW5ncyBmb3IgRE5TCi0gICAgICAgICAgICAjIERvbid0IGFkanVz
dCB0aGUgaG9zdG5hbWVzIGluIHRoYXQgY2FzZSB0byBlbnN1cmUgdGhpcyBrZWVwcyB3b3JraW5n
Ci0gICAgICAgICAgICBob3N0c19maXh1cAotICAgICAgICBmaQotICAgICAgICBpZiBbICIkUFJP
RFVDVCIgPT0gImNocm9tZSIgXTsgdGhlbgotICAgICAgICAgICAgaW5zdGFsbF9jaHJvbWUgdW5z
dGFibGUKLSAgICAgICAgICAgIHRlc3RfaW5mcmFzdHJ1Y3R1cmUgIi0tYmluYXJ5PSQod2hpY2gg
Z29vZ2xlLWNocm9tZS11bnN0YWJsZSkiCisgICAgICAgIGlmIFtbICIkUFJPRFVDVCIgPT0gImNo
cm9tZSIgXV07IHRoZW4KKyAgICAgICAgICAgIGFkZF93cHRfaG9zdHMKKyAgICAgICAgICAgIHRl
c3RfaW5mcmFzdHJ1Y3R1cmUgIi0tYmluYXJ5PSQod2hpY2ggZ29vZ2xlLWNocm9tZS11bnN0YWJs
ZSkgLS1jaGFubmVsIGRldiIKICAgICAgICAgZWxzZQogICAgICAgICAgICAgdGVzdF9pbmZyYXN0
cnVjdHVyZQogICAgICAgICBmaQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9jaS9jb21tYW5kcy5qc29uIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9jaS9jb21tYW5kcy5qc29uCmlu
ZGV4IDBmOGY1ODIzNjk5ODkwZTQzNTIwMTY4ODVkMmU3ZmJmYzFhOWFmMDguLmM5Y2Q3YzQ1ODk4
OWVjNzdiYWNkNjQ1Y2Q1MTQ1MzUxNDQzZmY3M2MgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvY2kvY29tbWFuZHMuanNvbgorKysg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2NpL2Nv
bW1hbmRzLmpzb24KQEAgLTEsNyArMSw1MCBAQAogewotICAgICJ0ZXN0LWpvYnMiOiB7InBhdGgi
OiAiam9icy5weSIsICJzY3JpcHQiOiAicnVuIiwgInBhcnNlciI6ICJjcmVhdGVfcGFyc2VyIiwg
ImhlbHAiOiAiTGlzdCB0ZXN0IGpvYnMgdGhhdCBzaG91bGQgcnVuIGZvciBhIHNldCBvZiBjb21t
aXRzIiwKLSAgICAgICAgICAgICAgICAgICJ2aXJ0dWFsZW52IjogZmFsc2V9LAotICAgICJjaGVj
ay1zdGFiaWxpdHkiOiB7InBhdGgiOiAiY2hlY2tfc3RhYmlsaXR5LnB5IiwgInNjcmlwdCI6ICJy
dW4iLCAicGFyc2VyIjogImdldF9wYXJzZXIiLCAicGFyc2Vfa25vd24iOiB0cnVlLCAiaGVscCI6
ICJDaGVjayB0ZXN0IHN0YWJpbGl0eSIsCi0gICAgICAgICAgICAgICAgICAgICAgICAidmlydHVh
bGVudiI6IHRydWUsICJpbnN0YWxsIjogWyJyZXF1ZXN0cyJdLCAicmVxdWlyZW1lbnRzIjogWyIu
Li93cHRydW5uZXIvcmVxdWlyZW1lbnRzLnR4dCJdfSwKLSAgICAibWFrZS1ob3N0cy1maWxlIjog
eyJwYXRoIjogIm1ha2VfaG9zdHNfZmlsZS5weSIsICJzY3JpcHQiOiAicnVuIiwgInBhcnNlciI6
ICJjcmVhdGVfcGFyc2VyIiwgImhlbHAiOiAiT3V0cHV0IGEgaG9zdHMgZmlsZSB0byBzdGRvdXQi
LCAidmlydHVhbGVudiI6IGZhbHNlfQorICAidGVzdC1qb2JzIjogeworICAgICJwYXRoIjogImpv
YnMucHkiLAorICAgICJzY3JpcHQiOiAicnVuIiwKKyAgICAicGFyc2VyIjogImNyZWF0ZV9wYXJz
ZXIiLAorICAgICJoZWxwIjogIkxpc3QgdGVzdCBqb2JzIHRoYXQgc2hvdWxkIHJ1biBmb3IgYSBz
ZXQgb2YgY29tbWl0cyIsCisgICAgInZpcnR1YWxlbnYiOiBmYWxzZQorICB9LAorICAibWFrZS1o
b3N0cy1maWxlIjogeworICAgICJwYXRoIjogIm1ha2VfaG9zdHNfZmlsZS5weSIsCisgICAgInNj
cmlwdCI6ICJydW4iLAorICAgICJwYXJzZXIiOiAiY3JlYXRlX3BhcnNlciIsCisgICAgImhlbHAi
OiAiT3V0cHV0IGEgaG9zdHMgZmlsZSB0byBzdGRvdXQiLAorICAgICJ2aXJ0dWFsZW52IjogZmFs
c2UKKyAgfSwKKyAgInRjLWRvd25sb2FkIjogeworICAgICJwYXRoIjogInRjL2Rvd25sb2FkLnB5
IiwKKyAgICAic2NyaXB0IjogInJ1biIsCisgICAgInBhcnNlciI6ICJnZXRfcGFyc2VyIiwKKyAg
ICAicGFyc2Vfa25vd24iOiB0cnVlLAorICAgICJoZWxwIjogIkRvd25sb2FkIGxvZ3MgZnJvbSB0
YXNrY2x1c3RlciIsCisgICAgInZpcnR1YWxlbnYiOiB0cnVlLAorICAgICJpbnN0YWxsIjogWwor
ICAgICAgInJlcXVlc3RzIiwKKyAgICAgICJweWdpdGh1YiIKKyAgICBdCisgIH0sCisgICJ0Yy10
YXNrZ3JhcGgiOiB7CisgICAgInBhdGgiOiAidGMvdGFza2dyYXBoLnB5IiwKKyAgICAic2NyaXB0
IjogInJ1biIsCisgICAgImhlbHAiOiAiQnVpbGQgdGhlIHRhc2tncmFwaCIsCisgICAgInZpcnR1
YWxlbnYiOiB0cnVlLAorICAgICJpbnN0YWxsIjogWworICAgICAgInJlcXVlc3RzIiwKKyAgICAg
ICJweXlhbWwiCisgICAgXQorICB9LAorICAidGMtZGVjaXNpb24iOiB7CisgICAgInBhdGgiOiAi
dGMvZGVjaXNpb24ucHkiLAorICAgICJwYXJzZXIiOiAiZ2V0X3BhcnNlciIsCisgICAgInNjcmlw
dCI6ICJydW4iLAorICAgICJoZWxwIjogIlJ1biB0aGUgZGVjaXNpb24gdGFzayIsCisgICAgInZp
cnR1YWxlbnYiOiB0cnVlLAorICAgICJpbnN0YWxsIjogWworICAgICAgICAicmVxdWVzdHMiLAor
ICAgICAgICAicHl5YW1sIiwKKyAgICAgICAgInRhc2tjbHVzdGVyIgorICAgIF0KKyAgfQogfQpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy9jaS9lcG9jaHNfdXBkYXRlLnNoIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy9jaS9lcG9jaHNfdXBkYXRlLnNoCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjRiMzkz
ZmE2ZGI1ZjkwYzE4ZGFjY2Y2Y2VmM2E5NzA2ZjE0MTE0MTUKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2NpL2Vwb2No
c191cGRhdGUuc2gKQEAgLTAsMCArMSw0NiBAQAorIyEvYmluL2Jhc2gKK3NldCAtZXgKKworU0NS
SVBUX0RJUj0kKGNkICQoZGlybmFtZSAiJDAiKSAmJiBwd2QgLVApCitXUFRfUk9PVD0kU0NSSVBU
X0RJUi8uLi8uLgorCitFUE9DSFM9KAorZXBvY2hzL3RocmVlX2hvdXJseTo6M2gKK2Vwb2Nocy9z
aXhfaG91cmx5Ojo2aAorZXBvY2hzL3R3ZWx2ZV9ob3VybHk6OjEyaAorZXBvY2hzL2RhaWx5Ojox
ZAorZXBvY2hzL3dlZWtseTo6MXcKKykKKworZnVuY3Rpb24gZ2V0X2Vwb2NoX2JyYW5jaF9uYW1l
ICgpIHsKKyAgICBlY2hvICR7MX0gfCBhd2sgLUYgJzo6JyAne3ByaW50ICQxfScKK30KKworZnVu
Y3Rpb24gZ2V0X2Vwb2NoX3RpbWV2YWwgKCkgeworICAgIGVjaG8gJHsxfSB8IGF3ayAtRiAnOjon
ICd7cHJpbnQgJDJ9JworfQorCittYWluICgpIHsKKyAgICBBTExfQlJBTkNIRVNfTkFNRVM9IiIK
KyAgICBmb3IgZSBpbiAiJHtFUE9DSFNbQF19IjsKKyAgICBkbworICAgICAgICBFUE9DSD0kKGdl
dF9lcG9jaF90aW1ldmFsICR7ZX0pCisgICAgICAgIEVQT0NIX0JSQU5DSF9OQU1FPSQoZ2V0X2Vw
b2NoX2JyYW5jaF9uYW1lICR7ZX0pCisgICAgICAgIGdpdCBicmFuY2ggJHtFUE9DSF9CUkFOQ0hf
TkFNRX0gJCguL3dwdCByZXYtbGlzdCAtLWVwb2NoICR7RVBPQ0h9KQorICAgICAgICBBTExfQlJB
TkNIRVNfTkFNRVM9IiR7QUxMX0JSQU5DSEVTX05BTUVTfSAke0VQT0NIX0JSQU5DSF9OQU1FfSIK
KyAgICBkb25lCisgICAgIyBUaGlzIGlzIHNhZmUgYmVjYXVzZSBgZ2l0IHB1c2hgIHdpbGwgYnkg
ZGVmYXVsdCBmYWlsIGZvciBhIG5vbi1mYXN0LWZvcndhcmQKKyAgICAjIHB1c2gsIGZvciBleGFt
cGxlIGlmIHRoZSByZW1vdGUgYnJhbmNoIGlzIGFoZWFkIG9mIHRoZSBsb2NhbCBicmFuY2guCisg
ICAgZ2l0IHB1c2ggJHtSRU1PVEV9ICR7QUxMX0JSQU5DSEVTX05BTUVTfQorfQorCitjZCAkV1BU
X1JPT1QKKworaWYgWyAteiAiJEdJVEhVQl9UT0tFTiIgXTsgdGhlbgorICAgIGVjaG8gIkdJVEhV
Ql9UT0tFTiBtdXN0IGJlIHNldCBhcyBhbiBlbnZpcm9ubWVudCB2YXJpYWJsZSIKKyAgICBleGl0
IDEKK2ZpCisKK1JFTU9URT1odHRwczovL3gtYWNjZXNzLXRva2VuOiRHSVRIVUJfVE9LRU5AZ2l0
aHViLmNvbS93ZWItcGxhdGZvcm0tdGVzdHMvd3B0LmdpdAorCittYWluCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2NpL2luc3Rh
bGwuc2ggYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L2NpL2luc3RhbGwuc2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGQxZDQzNjhkNGZm
OTYwYWZhMGQ5NjY4YTU2MjYzN2IzYzg2YTMwYTEuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy9jaS9pbnN0YWxsLnNoCisrKyAvZGV2L251bGwKQEAgLTEsMTEgKzAsMCBA
QAotIyEvYmluL2Jhc2gKLXNldCAtZXgKLQotU0NSSVBUX0RJUj0kKGRpcm5hbWUgJChyZWFkbGlu
ayAtZiAiJDAiKSkKLVdQVF9ST09UPSQocmVhZGxpbmsgLWYgJFNDUklQVF9ESVIvLi4vLi4pCi1j
ZCAkV1BUX1JPT1QKLQotaWYgW1sgJFJVTl9KT0IgLWVxIDEgXV07IHRoZW4KLSAgICBwaXAgaW5z
dGFsbCAtVSBzZXR1cHRvb2xzCi0gICAgcGlwIGluc3RhbGwgLVUgcmVxdWVzdHMKLWZpCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L2NpL2pvYnMucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL2NpL2pvYnMucHkKaW5kZXggNmYzZjY0NTYwMTY3ZmE1ZmY0ZjgyNDIwODJlNjJlYzdi
ZmI2MjYwOC4uM2Q4MDllZmEzN2NjZmYyYzI1ODM0M2I2NDc5MTc2MmZjNTA3YTkwZiAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9j
aS9qb2JzLnB5CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvY2kvam9icy5weQpAQCAtOCwzOCArOCw1OCBAQCBmcm9tIHNpeCBpbXBvcnQgaXRl
cml0ZW1zCiAKIHdwdF9yb290ID0gb3MucGF0aC5hYnNwYXRoKG9zLnBhdGguam9pbihvcy5wYXRo
LmRpcm5hbWUoX19maWxlX18pLCBvcy5wYXJkaXIsIG9zLnBhcmRpcikpCiAKKyMgQ29tbW9uIGV4
Y2x1c2lvbnMgYmV0d2VlbiBhZmZlY3RlZF90ZXN0cyBhbmQgc3RhYmlsaXR5IGpvYnMuCisjIEZp
bGVzIGluIHRoZXNlIGRpcnMgd291bGQgdHJpZ2dlciB0aGUgZXhlY3V0aW9uIG9mIHRvbyBtYW55
IHRlc3RzLgorRVhDTFVERVMgPSBbCisgICAgIiF0b29scy8iLAorICAgICIhZG9jcy8iLAorICAg
ICIhY29uZm9ybWFuY2UtY2hlY2tlcnMvIiwKKyAgICAiIS4qL09XTkVSUyIsCisgICAgIiEuKi9N
RVRBLnltbCIsCisgICAgIiEuKi90b29scy8iLAorICAgICIhLiovUkVBRE1FIiwKKyAgICAiIWNz
cy9bXi9dKiQiCitdCisKICMgUnVsZXMgYXJlIGp1c3QgcmVnZXggb24gdGhlIHBhdGgsIHdpdGgg
YSBsZWFkaW5nICEgaW5kaWNhdGluZyBhIHJlZ2V4IHRoYXQgbXVzdCBub3QKICMgbWF0Y2ggZm9y
IHRoZSBqb2IKIGpvYl9wYXRoX21hcCA9IHsKLSAgICAic3RhYmlsaXR5IjogWyIuKi8uKiIsCi0g
ICAgICAgICAgICAgICAgICAiIXRvb2xzLyIsCi0gICAgICAgICAgICAgICAgICAiIWRvY3MvIiwK
LSAgICAgICAgICAgICAgICAgICIhcmVzb3VyY2VzLyoiLAotICAgICAgICAgICAgICAgICAgIiFj
b25mb3JtYW5jZS1jaGVja2Vycy8iLAotICAgICAgICAgICAgICAgICAgIiEuKi9PV05FUlMiLAot
ICAgICAgICAgICAgICAgICAgIiEuKi9NRVRBLnltbCIsCi0gICAgICAgICAgICAgICAgICAiIS4q
L3Rvb2xzLyIsCi0gICAgICAgICAgICAgICAgICAiIS4qL1JFQURNRSIsCi0gICAgICAgICAgICAg
ICAgICAiIWNzcy9bXi9dKiQiXSwKKyAgICAiYWZmZWN0ZWRfdGVzdHMiOiBbIi4qLy4qIiwgIiFy
ZXNvdXJjZXMvKD8haWRsaGFybmVzcy5qcykiXSArIEVYQ0xVREVTLAorICAgICJzdGFiaWxpdHki
OiBbIi4qLy4qIiwgIiFyZXNvdXJjZXMvLioiXSArIEVYQ0xVREVTLAogICAgICJsaW50IjogWyIu
KiJdLAogICAgICJtYW5pZmVzdF91cGxvYWQiOiBbIi4qIl0sCiAgICAgInJlc291cmNlc191bml0
dGVzdCI6IFsicmVzb3VyY2VzLyIsICJ0b29scy8iXSwKICAgICAidG9vbHNfdW5pdHRlc3QiOiBb
InRvb2xzLyJdLAotICAgICJ3cHRydW5uZXJfdW5pdHRlc3QiOiBbInRvb2xzL3dwdHJ1bm5lci8q
Il0sCisgICAgIndwdHJ1bm5lcl91bml0dGVzdCI6IFsidG9vbHMvIl0sCiAgICAgImJ1aWxkX2Nz
cyI6IFsiY3NzLyJdLAotICAgICJ1cGRhdGVfYnVpbHQiOiBbIjJkY29udGV4dC8iLAorICAgICJ1
cGRhdGVfYnVpbHQiOiBbInVwZGF0ZS1idWlsdC10ZXN0c1xcLnNoIiwKKyAgICAgICAgICAgICAg
ICAgICAgICIyZGNvbnRleHQvIiwKKyAgICAgICAgICAgICAgICAgICAgICJpbmZyYXN0cnVjdHVy
ZS8iLAogICAgICAgICAgICAgICAgICAgICAgImh0bWwvIiwKLSAgICAgICAgICAgICAgICAgICAg
ICJvZmZzY3JlZW4tY2FudmFzLyJdLAorICAgICAgICAgICAgICAgICAgICAgIm9mZnNjcmVlbi1j
YW52YXMvIiwKKyAgICAgICAgICAgICAgICAgICAgICJtaW1lc25pZmYvIiwKKyAgICAgICAgICAg
ICAgICAgICAgICJjc3MvY3NzLXVpLyIsCisgICAgICAgICAgICAgICAgICAgICAiV2ViSURMIl0s
CiAgICAgIndwdF9pbnRlZ3JhdGlvbiI6IFsidG9vbHMvIl0sCi0gICAgIndwdHJ1bm5lcl9pbmZy
YXN0cnVjdHVyZSI6IFsiaW5mcmFzdHJ1Y3R1cmUvIiwgInRvb2xzLyJdLAorICAgICJ3cHRydW5u
ZXJfaW5mcmFzdHJ1Y3R1cmUiOiBbImluZnJhc3RydWN0dXJlLyIsICJ0b29scy8iLCAicmVzb3Vy
Y2VzLyJdLAogfQogCiAKK2RlZiBfcGF0aF9ub3JtKHBhdGgpOgorICAgICIiIm5vcm1hbGl6ZSBh
IHBhdGggZm9yIGJvdGggY2FzZSBhbmQgc2xhc2hlcyAodG8gLykiIiIKKyAgICBwYXRoID0gb3Mu
cGF0aC5ub3JtY2FzZShwYXRoKQorICAgIGlmIG9zLnBhdGguc2VwICE9ICIvIjoKKyAgICAgICAg
IyB0aGlzIG11c3QgYmUgYWZ0ZXIgdGhlIG5vcm1jYXNlIGNhbGwgYXMgdGhhdCBkb2VzIHNsYXNo
IG5vcm1hbGl6YXRpb24KKyAgICAgICAgcGF0aCA9IHBhdGgucmVwbGFjZShvcy5wYXRoLnNlcCwg
Ii8iKQorICAgIHJldHVybiBwYXRoCisKKwogY2xhc3MgUnVsZXNldChvYmplY3QpOgogICAgIGRl
ZiBfX2luaXRfXyhzZWxmLCBydWxlcyk6CiAgICAgICAgIHNlbGYuaW5jbHVkZSA9IFtdCiAgICAg
ICAgIHNlbGYuZXhjbHVkZSA9IFtdCiAgICAgICAgIGZvciBydWxlIGluIHJ1bGVzOgorICAgICAg
ICAgICAgcnVsZSA9IF9wYXRoX25vcm0ocnVsZSkKICAgICAgICAgICAgIHNlbGYuYWRkX3J1bGUo
cnVsZSkKIAogICAgIGRlZiBhZGRfcnVsZShzZWxmLCBydWxlKToKQEAgLTUyLDkgKzcyLDcgQEAg
Y2xhc3MgUnVsZXNldChvYmplY3QpOgogICAgICAgICB0YXJnZXQuYXBwZW5kKHJlLmNvbXBpbGUo
Il4lcyIgJSBydWxlKSkKIAogICAgIGRlZiBfX2NhbGxfXyhzZWxmLCBwYXRoKToKLSAgICAgICAg
aWYgb3MucGF0aC5zZXAgIT0gIi8iOgotICAgICAgICAgICAgcGF0aCA9IHBhdGgucmVwbGFjZShv
cy5wYXRoLnNlcCwgIi8iKQotICAgICAgICBwYXRoID0gb3MucGF0aC5ub3JtY2FzZShwYXRoKQor
ICAgICAgICBwYXRoID0gX3BhdGhfbm9ybShwYXRoKQogICAgICAgICBmb3IgaXRlbSBpbiBzZWxm
LmV4Y2x1ZGU6CiAgICAgICAgICAgICBpZiBpdGVtLm1hdGNoKHBhdGgpOgogICAgICAgICAgICAg
ICAgIHJldHVybiBGYWxzZQpAQCAtNzYsMTIgKzk0LDE0IEBAIGRlZiBnZXRfcGF0aHMoKiprd2Fy
Z3MpOgogICAgICAgICByZXZpc2ggPSBrd2FyZ3NbInJldmlzaCJdCiAKICAgICBjaGFuZ2VkLCBf
ID0gZmlsZXNfY2hhbmdlZChyZXZpc2gpCi0gICAgYWxsX2NoYW5nZWQgPSBzZXQob3MucGF0aC5y
ZWxwYXRoKGl0ZW0sIHdwdF9yb290KQotICAgICAgICAgICAgICAgICAgICAgIGZvciBpdGVtIGlu
IHNldChjaGFuZ2VkKSkKKyAgICBhbGxfY2hhbmdlZCA9IHtvcy5wYXRoLnJlbHBhdGgoaXRlbSwg
d3B0X3Jvb3QpIGZvciBpdGVtIGluIHNldChjaGFuZ2VkKX0KICAgICByZXR1cm4gYWxsX2NoYW5n
ZWQKIAogCiBkZWYgZ2V0X2pvYnMocGF0aHMsICoqa3dhcmdzKToKKyAgICBpZiBrd2FyZ3MuZ2V0
KCJhbGwiKToKKyAgICAgICAgcmV0dXJuIHNldChqb2JfcGF0aF9tYXAua2V5cygpKQorCiAgICAg
am9icyA9IHNldCgpCiAKICAgICBydWxlcyA9IHt9CkBAIC0xMTMsNiArMTMzLDcgQEAgZGVmIGdl
dF9qb2JzKHBhdGhzLCAqKmt3YXJncyk6CiBkZWYgY3JlYXRlX3BhcnNlcigpOgogICAgIHBhcnNl
ciA9IGFyZ3BhcnNlLkFyZ3VtZW50UGFyc2VyKCkKICAgICBwYXJzZXIuYWRkX2FyZ3VtZW50KCJy
ZXZpc2giLCBkZWZhdWx0PU5vbmUsIGhlbHA9IkNvbW1pdHMgdG8gY29uc2lkZXIuIERlZmF1bHRz
IHRvIHRoZSBjb21taXRzIG9uIHRoZSBjdXJyZW50IGJyYW5jaCIsIG5hcmdzPSI/IikKKyAgICBw
YXJzZXIuYWRkX2FyZ3VtZW50KCItLWFsbCIsIGhlbHA9Ikxpc3QgYWxsIGpvYnMgdW5jb25kaXRp
b25hbGx5LiIsIGFjdGlvbj0ic3RvcmVfdHJ1ZSIpCiAgICAgcGFyc2VyLmFkZF9hcmd1bWVudCgi
LS1pbmNsdWRlcyIsIGRlZmF1bHQ9Tm9uZSwgaGVscD0iSm9icyB0byBjaGVjayBmb3IuIFJldHVy
biBjb2RlIGlzIDAgaWYgYWxsIGpvYnMgYXJlIGZvdW5kLCBvdGhlcndpc2UgMSIsIG5hcmdzPSIq
IikKICAgICByZXR1cm4gcGFyc2VyCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvY2kvbGliLnNoIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9jaS9saWIuc2gKZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDdjMGI4MjUzYTkwNmUwNWY3ZDc5M2QxYzYyNzRmOWFlZDAxYjdm
ODMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9jaS9saWIuc2gKKysr
IC9kZXYvbnVsbApAQCAtMSwzNyArMCwwIEBACi0jIS9iaW4vYmFzaAotCi1ob3N0c19maXh1cCgp
IHsKLSAgICBlY2hvICJ0cmF2aXNfZm9sZDpzdGFydDpob3N0c19maXh1cCIKLSAgICBlY2hvICJS
ZXdyaXRpbmcgaG9zdHMgZmlsZSIKLSAgICBlY2hvICIjIyAvZXRjL2hvc3RzICMjIgotICAgIGNh
dCAvZXRjL2hvc3RzCi0gICAgc3VkbyBzZWQgLWkgJ3MvXjo6MVxzKmxvY2FsaG9zdC86OjEvJyAv
ZXRjL2hvc3RzCi0gICAgLi93cHQgbWFrZS1ob3N0cy1maWxlIHwgc3VkbyB0ZWUgLWEgL2V0Yy9o
b3N0cwotICAgIGVjaG8gIj09IC9ldGMvaG9zdHMgPT0iCi0gICAgY2F0IC9ldGMvaG9zdHMKLSAg
ICBlY2hvICItLS0tLS0tLS0tLS0tLS0tIgotICAgIGVjaG8gInRyYXZpc19mb2xkOmVuZDpob3N0
c19maXh1cCIKLX0KLQotaW5zdGFsbF9jaHJvbWUoKSB7Ci0gICAgY2hhbm5lbD0kMQotICAgIGRl
Yl9hcmNoaXZlPWdvb2dsZS1jaHJvbWUtJHtjaGFubmVsfV9jdXJyZW50X2FtZDY0LmRlYgotICAg
IHdnZXQgLXEgaHR0cHM6Ly9kbC5nb29nbGUuY29tL2xpbnV4L2RpcmVjdC8kZGViX2FyY2hpdmUK
LQotICAgICMgSWYgdGhlIGVudmlyb25tZW50IHByb3ZpZGVzIGFuIGluc3RhbGxhdGlvbiBvZiBH
b29nbGUgQ2hyb21lLCB0aGUKLSAgICAjIGV4aXN0aW5nIGJpbmFyeSBtYXkgdGFrZSBwcmVjZWRl
bmNlIG92ZXIgdGhlIG9uZSBpbnRyb2R1Y2VkIGluIHRoaXMKLSAgICAjIHNjcmlwdC4gUmVtb3Zl
IGFueSBwcmV2aW91c2x5LWV4aXN0aW5nICJhbHRlcm5hdGl2ZXMiIHByaW9yIHRvCi0gICAgIyBp
bnN0YWxsYXRpb24gaW4gb3JkZXIgdG8gZW5zdXJlIHRoYXQgdGhlIG5ldyBiaW5hcnkgaXMgaW5z
dGFsbGVkIGFzCi0gICAgIyBpbnRlbmRlZC4KLSAgICBpZiBzdWRvIHVwZGF0ZS1hbHRlcm5hdGl2
ZXMgLS1saXN0IGdvb2dsZS1jaHJvbWU7IHRoZW4KLSAgICAgICAgc3VkbyB1cGRhdGUtYWx0ZXJu
YXRpdmVzIC0tcmVtb3ZlLWFsbCBnb29nbGUtY2hyb21lCi0gICAgZmkKLQotICAgICMgSW5zdGFs
bGF0aW9uIHdpbGwgZmFpbCBpbiBjYXNlcyB3aGVyZSB0aGUgcGFja2FnZSBoYXMgdW5tZXQgZGVw
ZW5kZW5jaWVzLgotICAgICMgV2hlbiB0aGlzIG9jY3VycywgYXR0ZW1wdCB0byB1c2UgdGhlIHN5
c3RlbSBwYWNrYWdlIG1hbmFnZXIgdG8gZmV0Y2ggdGhlCi0gICAgIyByZXF1aXJlZCBwYWNrYWdl
cyBhbmQgcmV0cnkuCi0gICAgaWYgISBzdWRvIGRwa2cgLS1pbnN0YWxsICRkZWJfYXJjaGl2ZTsg
dGhlbgotICAgICAgc3VkbyBhcHQtZ2V0IGluc3RhbGwgLS1maXgtYnJva2VuCi0gICAgICBzdWRv
IGRwa2cgLS1pbnN0YWxsICRkZWJfYXJjaGl2ZQotICAgIGZpCi19CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2NpL21hbmlmZXN0
X2J1aWxkLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy9jaS9tYW5pZmVzdF9idWlsZC5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xZTM4OGRmYTc0MTlhMjFiMjA1
MDNiMzA3NWMzNmJjMTExMzZkZDdkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9jaS9tYW5pZmVzdF9idWlsZC5weQpA
QCAtMCwwICsxLDE5NyBAQAoraW1wb3J0IGpzb24KK2ltcG9ydCBsb2dnaW5nCitpbXBvcnQgb3MK
K2ltcG9ydCBzdWJwcm9jZXNzCitpbXBvcnQgc3lzCitpbXBvcnQgdGVtcGZpbGUKKworaW1wb3J0
IHJlcXVlc3RzCisKK2hlcmUgPSBvcy5wYXRoLmFic3BhdGgob3MucGF0aC5kaXJuYW1lKF9fZmls
ZV9fKSkKK3dwdF9yb290ID0gb3MucGF0aC5hYnNwYXRoKG9zLnBhdGguam9pbihoZXJlLCBvcy5w
YXJkaXIsIG9zLnBhcmRpcikpCisKK2lmIG5vdCh3cHRfcm9vdCBpbiBzeXMucGF0aCk6CisgICAg
c3lzLnBhdGguYXBwZW5kKHdwdF9yb290KQorCitmcm9tIHRvb2xzLndwdC50ZXN0ZmlsZXMgaW1w
b3J0IGdldF9naXRfY21kCisKK2xvZ2dpbmcuYmFzaWNDb25maWcobGV2ZWw9bG9nZ2luZy5JTkZP
KQorbG9nZ2VyID0gbG9nZ2luZy5nZXRMb2dnZXIoX19uYW1lX18pCisKKworY2xhc3MgU3RhdHVz
KG9iamVjdCk6CisgICAgU1VDQ0VTUyA9IDAKKyAgICBGQUlMID0gMQorCisKK2RlZiBydW4oY21k
LCByZXR1cm5fc3Rkb3V0PUZhbHNlLCAqKmt3YXJncyk6CisgICAgbG9nZ2VyLmluZm8oIiAiLmpv
aW4oY21kKSkKKyAgICBpZiByZXR1cm5fc3Rkb3V0OgorICAgICAgICBmID0gc3VicHJvY2Vzcy5j
aGVja19vdXRwdXQKKyAgICBlbHNlOgorICAgICAgICBmID0gc3VicHJvY2Vzcy5jaGVja19jYWxs
CisgICAgcmV0dXJuIGYoY21kLCAqKmt3YXJncykKKworCitkZWYgY3JlYXRlX21hbmlmZXN0KHBh
dGgpOgorICAgIHJ1bihbIi4vd3B0IiwgIm1hbmlmZXN0IiwgIi1wIiwgcGF0aF0pCisKKworZGVm
IGNvbXByZXNzX21hbmlmZXN0KHBhdGgpOgorICAgIGZvciBhcmdzIGluIFtbImd6aXAiLCAiLWsi
LCAiLWYiLCAiLS1iZXN0Il0sCisgICAgICAgICAgICAgICAgIFsiYnppcDIiLCAiLWsiLCAiLWYi
LCAiLS1iZXN0Il0sCisgICAgICAgICAgICAgICAgIFsienN0ZCIsICItayIsICItZiIsICItLXVs
dHJhIiwgIi0yMiIsICItcSJdXToKKyAgICAgICAgcnVuKGFyZ3MgKyBbcGF0aF0pCisKKworZGVm
IHJlcXVlc3QodXJsLCBkZXNjLCBtZXRob2Q9Tm9uZSwgZGF0YT1Ob25lLCBqc29uX2RhdGE9Tm9u
ZSwgcGFyYW1zPU5vbmUsIGhlYWRlcnM9Tm9uZSk6CisgICAgZ2l0aHViX3Rva2VuID0gb3MuZW52
aXJvbi5nZXQoIkdJVEhVQl9UT0tFTiIpCisgICAgZGVmYXVsdF9oZWFkZXJzID0geworICAgICAg
ICAiQXV0aG9yaXphdGlvbiI6ICJ0b2tlbiAlcyIgJSBnaXRodWJfdG9rZW4sCisgICAgICAgICJB
Y2NlcHQiOiAiYXBwbGljYXRpb24vdm5kLmdpdGh1Yi5tYWNoaW5lLW1hbi1wcmV2aWV3K2pzb24i
CisgICAgfQorCisgICAgX2hlYWRlcnMgPSBkZWZhdWx0X2hlYWRlcnMKKyAgICBpZiBoZWFkZXJz
IGlzIG5vdCBOb25lOgorICAgICAgICBfaGVhZGVycy51cGRhdGUoaGVhZGVycykKKworICAgIGt3
YXJncyA9IHsicGFyYW1zIjogcGFyYW1zLAorICAgICAgICAgICAgICAiaGVhZGVycyI6IF9oZWFk
ZXJzfQorICAgIHRyeToKKyAgICAgICAgbG9nZ2VyLmluZm8oIlJlcXVlc3RpbmcgVVJMICVzIiAl
IHVybCkKKyAgICAgICAgaWYganNvbl9kYXRhIGlzIG5vdCBOb25lIG9yIGRhdGEgaXMgbm90IE5v
bmU6CisgICAgICAgICAgICBpZiBtZXRob2QgaXMgTm9uZToKKyAgICAgICAgICAgICAgICBtZXRo
b2QgPSByZXF1ZXN0cy5wb3N0CisgICAgICAgICAgICBrd2FyZ3NbImpzb24iXSA9IGpzb25fZGF0
YQorICAgICAgICAgICAga3dhcmdzWyJkYXRhIl0gPSBkYXRhCisgICAgICAgIGVsaWYgbWV0aG9k
IGlzIE5vbmU6CisgICAgICAgICAgICBtZXRob2QgPSByZXF1ZXN0cy5nZXQKKworICAgICAgICBy
ZXNwID0gbWV0aG9kKHVybCwgKiprd2FyZ3MpCisKKyAgICBleGNlcHQgRXhjZXB0aW9uIGFzIGU6
CisgICAgICAgIGxvZ2dlci5lcnJvcigiJXMgZmFpbGVkOlxuJXMiICUgKGRlc2MsIGUpKQorICAg
ICAgICByZXR1cm4gTm9uZQorCisgICAgdHJ5OgorICAgICAgICByZXNwLnJhaXNlX2Zvcl9zdGF0
dXMoKQorICAgIGV4Y2VwdCByZXF1ZXN0cy5IVFRQRXJyb3I6CisgICAgICAgIGxvZ2dlci5lcnJv
cigiJXMgZmFpbGVkOiBHb3QgSFRUUCBzdGF0dXMgJXMuIFJlc3BvbnNlOiIgJQorICAgICAgICAg
ICAgICAgICAgICAgKGRlc2MsIHJlc3Auc3RhdHVzX2NvZGUpKQorICAgICAgICBsb2dnZXIuZXJy
b3IocmVzcC50ZXh0KQorICAgICAgICByZXR1cm4gTm9uZQorCisgICAgdHJ5OgorICAgICAgICBy
ZXR1cm4gcmVzcC5qc29uKCkKKyAgICBleGNlcHQgVmFsdWVFcnJvcjoKKyAgICAgICAgbG9nZ2Vy
LmVycm9yKCIlcyBmYWlsZWQ6IFJldHVybmVkIGRhdGEgd2FzIG5vdCBKU09OIFJlc3BvbnNlOiIg
JQorICAgICAgICAgICAgICAgICAgICAgKGRlc2MsIHJlc3Auc3RhdHVzX2NvZGUpKQorICAgICAg
ICBsb2dnZXIuZXJyb3IocmVzcC50ZXh0KQorCisKK2RlZiBnZXRfcHIob3duZXIsIHJlcG8sIHNo
YSk6CisgICAgZGF0YSA9IHJlcXVlc3QoImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vc2VhcmNoL2lz
c3Vlcz9xPXR5cGU6cHIraXM6bWVyZ2VkK3JlcG86JXMvJXMrc2hhOiVzIiAlCisgICAgICAgICAg
ICAgICAgICAgKG93bmVyLCByZXBvLCBzaGEpLCAiR2V0dGluZyBQUiIpCisgICAgaWYgZGF0YSBp
cyBOb25lOgorICAgICAgICByZXR1cm4gTm9uZQorCisgICAgaXRlbXMgPSBkYXRhWyJpdGVtcyJd
CisgICAgaWYgbGVuKGl0ZW1zKSA9PSAwOgorICAgICAgICBsb2dnZXIuZXJyb3IoIk5vIFBSIGZv
dW5kIGZvciAlcyIgJSBzaGEpCisgICAgICAgIHJldHVybiBOb25lCisgICAgaWYgbGVuKGl0ZW1z
KSA+IDE6CisgICAgICAgIGxvZ2dlci53YXJuaW5nKCJGb3VuZCBtdWx0aXBsZSBQUnMgZm9yICVz
IiAlIHNoYSkKKworICAgIHByID0gaXRlbXNbMF0KKworICAgIHJldHVybiBwclsibnVtYmVyIl0K
KworCitkZWYgY3JlYXRlX3JlbGVhc2UobWFuaWZlc3RfcGF0aCwgb3duZXIsIHJlcG8sIHNoYSwg
dGFnLCBib2R5KToKKyAgICBjcmVhdGVfdXJsID0gImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVw
b3MvJXMvJXMvcmVsZWFzZXMiICUgKG93bmVyLCByZXBvKQorICAgIGNyZWF0ZV9kYXRhID0geyJ0
YWdfbmFtZSI6IHRhZywKKyAgICAgICAgICAgICAgICAgICAidGFyZ2V0X2NvbW1pdGlzaCI6IHNo
YSwKKyAgICAgICAgICAgICAgICAgICAibmFtZSI6IHRhZywKKyAgICAgICAgICAgICAgICAgICAi
Ym9keSI6IGJvZHksCisgICAgICAgICAgICAgICAgICAgImRyYWZ0IjogVHJ1ZX0KKyAgICBjcmVh
dGVfcmVzcCA9IHJlcXVlc3QoY3JlYXRlX3VybCwgIlJlbGVhc2UgY3JlYXRpb24iLCBqc29uX2Rh
dGE9Y3JlYXRlX2RhdGEpCisgICAgaWYgbm90IGNyZWF0ZV9yZXNwOgorICAgICAgICByZXR1cm4g
RmFsc2UKKworICAgICMgVXBsb2FkIFVSTCBjb250YWlucyAnez9uYW1lLGxhYmVsfScgYXQgdGhl
IGVuZCB3aGljaCB3ZSB3YW50IHRvIHJlbW92ZQorICAgIHVwbG9hZF91cmwgPSBjcmVhdGVfcmVz
cFsidXBsb2FkX3VybCJdLnNwbGl0KCJ7IiwgMSlbMF0KKworICAgIHVwbG9hZF9leHRzID0gWyIu
Z3oiLCAiLmJ6MiIsICIuenN0Il0KKyAgICBmb3IgdXBsb2FkX2V4dCBpbiB1cGxvYWRfZXh0czoK
KyAgICAgICAgdXBsb2FkX2ZpbGVuYW1lID0gIk1BTklGRVNULSVzLmpzb24lcyIgJSAoc2hhLCB1
cGxvYWRfZXh0KQorICAgICAgICBwYXJhbXMgPSB7Im5hbWUiOiB1cGxvYWRfZmlsZW5hbWUsCisg
ICAgICAgICAgICAgICAgICAibGFiZWwiOiAiTUFOSUZFU1QuanNvbiVzIiAlIHVwbG9hZF9leHR9
CisKKyAgICAgICAgd2l0aCBvcGVuKCIlcyVzIiAlIChtYW5pZmVzdF9wYXRoLCB1cGxvYWRfZXh0
KSwgInJiIikgYXMgZjoKKyAgICAgICAgICAgIHVwbG9hZF9kYXRhID0gZi5yZWFkKCkKKworICAg
ICAgICBsb2dnZXIuaW5mbygiVXBsb2FkaW5nICVzIGJ5dGVzIiAlIGxlbih1cGxvYWRfZGF0YSkp
CisKKyAgICAgICAgdXBsb2FkX3Jlc3AgPSByZXF1ZXN0KHVwbG9hZF91cmwsICJNYW5pZmVzdCB1
cGxvYWQiLCBkYXRhPXVwbG9hZF9kYXRhLCBwYXJhbXM9cGFyYW1zLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgaGVhZGVycz17J0NvbnRlbnQtVHlwZSc6ICdhcHBsaWNhdGlvbi9vY3Rl
dC1zdHJlYW0nfSkKKyAgICAgICAgaWYgbm90IHVwbG9hZF9yZXNwOgorICAgICAgICAgICAgcmV0
dXJuIEZhbHNlCisKKyAgICByZWxlYXNlX2lkID0gY3JlYXRlX3Jlc3BbImlkIl0KKyAgICBlZGl0
X3VybCA9ICJodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zLyVzLyVzL3JlbGVhc2VzLyVzIiAl
IChvd25lciwgcmVwbywgcmVsZWFzZV9pZCkKKyAgICBlZGl0X2RhdGEgPSB7ImRyYWZ0IjogRmFs
c2V9CisgICAgZWRpdF9yZXNwID0gcmVxdWVzdChlZGl0X3VybCwgIlJlbGVhc2UgcHVibGlzaGlu
ZyIsIG1ldGhvZD1yZXF1ZXN0cy5wYXRjaCwganNvbl9kYXRhPWVkaXRfZGF0YSkKKyAgICBpZiBu
b3QgZWRpdF9yZXNwOgorICAgICAgICByZXR1cm4gRmFsc2UKKworICAgIGxvZ2dlci5pbmZvKCJS
ZWxlYXNlZCAlcyIgJSBlZGl0X3Jlc3BbImh0bWxfdXJsIl0pCisgICAgcmV0dXJuIFRydWUKKwor
CitkZWYgc2hvdWxkX2RyeV9ydW4oKToKKyAgICB3aXRoIG9wZW4ob3MuZW52aXJvblsiR0lUSFVC
X0VWRU5UX1BBVEgiXSkgYXMgZjoKKyAgICAgICAgZXZlbnQgPSBqc29uLmxvYWQoZikKKyAgICAg
ICAgbG9nZ2VyLmluZm8oanNvbi5kdW1wcyhldmVudCwgaW5kZW50PTIpKQorCisgICAgaWYgInB1
bGxfcmVxdWVzdCIgaW4gZXZlbnQ6CisgICAgICAgIGxvZ2dlci5pbmZvKCJEcnkgcnVuIGZvciBQ
UiIpCisgICAgICAgIHJldHVybiBUcnVlCisgICAgaWYgZXZlbnQuZ2V0KCJyZWYiKSAhPSAicmVm
cy9oZWFkcy9tYXN0ZXIiOgorICAgICAgICBsb2dnZXIuaW5mbygiRHJ5IHJ1biBmb3IgcmVmICVz
IiAlIGV2ZW50LmdldCgicmVmIikpCisgICAgICAgIHJldHVybiBUcnVlCisgICAgcmV0dXJuIEZh
bHNlCisKKworZGVmIG1haW4oKToKKyAgICBkcnlfcnVuID0gc2hvdWxkX2RyeV9ydW4oKQorCisg
ICAgbWFuaWZlc3RfcGF0aCA9IG9zLnBhdGguam9pbih0ZW1wZmlsZS5ta2R0ZW1wKCksICJNQU5J
RkVTVC5qc29uIikKKworICAgIGNyZWF0ZV9tYW5pZmVzdChtYW5pZmVzdF9wYXRoKQorCisgICAg
Y29tcHJlc3NfbWFuaWZlc3QobWFuaWZlc3RfcGF0aCkKKworICAgIG93bmVyLCByZXBvID0gb3Mu
ZW52aXJvblsiR0lUSFVCX1JFUE9TSVRPUlkiXS5zcGxpdCgiLyIsIDEpCisKKyAgICBnaXQgPSBn
ZXRfZ2l0X2NtZCh3cHRfcm9vdCkKKyAgICBoZWFkX3JldiA9IGdpdCgicmV2LXBhcnNlIiwgIkhF
QUQiKQorICAgIGJvZHkgPSBnaXQoInNob3ciLCAiLS1uby1wYXRjaCIsICItLWZvcm1hdD0lQiIs
ICJIRUFEIikKKworICAgIGlmIGRyeV9ydW46CisgICAgICAgIHJldHVybiBTdGF0dXMuU1VDQ0VT
UworCisgICAgcHIgPSBnZXRfcHIob3duZXIsIHJlcG8sIGhlYWRfcmV2KQorICAgIGlmIHByIGlz
IE5vbmU6CisgICAgICAgIHJldHVybiBTdGF0dXMuRkFJTAorICAgIHRhZ19uYW1lID0gIm1lcmdl
X3ByXyVzIiAlIHByCisKKyAgICBpZiBub3QgY3JlYXRlX3JlbGVhc2UobWFuaWZlc3RfcGF0aCwg
b3duZXIsIHJlcG8sIGhlYWRfcmV2LCB0YWdfbmFtZSwgYm9keSk6CisgICAgICAgIHJldHVybiBT
dGF0dXMuRkFJTAorCisgICAgcmV0dXJuIFN0YXR1cy5TVUNDRVNTCisKKworaWYgX19uYW1lX18g
PT0gIl9fbWFpbl9fIjoKKyAgICBjb2RlID0gbWFpbigpCisgICAgYXNzZXJ0IGlzaW5zdGFuY2Uo
Y29kZSwgaW50KQorICAgIHN5cy5leGl0KGNvZGUpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2NpL3ByX3ByZXZpZXcucHkgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2NpL3ByX3By
ZXZpZXcucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uYmE3Nzc0NDQ2ZTA4MzZlMzE5YzBkMDcxZDYyNjJlNTYyZmIx
NDZlMQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvY2kvcHJfcHJldmlldy5weQpAQCAtMCwwICsxLDQwOCBAQAorIyEv
dXNyL2Jpbi9lbnYgcHl0aG9uCisKKyMgVGhlIHNlcnZpY2UgcHJvdmlkZWQgYnkgdGhpcyBzY3Jp
cHQgaXMgbm90IGNyaXRpY2FsLCBidXQgaXQgc2hhcmVzIGEgR2l0SHViCisjIEFQSSByZXF1ZXN0
IHF1b3RhIHdpdGggY3JpdGljYWwgc2VydmljZXMuIEZvciB0aGlzIHJlYXNvbiwgYWxsIHJlcXVl
c3RzIHRvCisjIHRoZSBHaXRIdWIgQVBJIGFyZSBwcmVjZWRlZCBieSBhICJndWFyZCIgd2hpY2gg
dmVyaWZpZXMgdGhhdCB0aGUgc3Vic2VxdWVudAorIyByZXF1ZXN0IHdpbGwgbm90IGRlcGxldGUg
dGhlIHNoYXJlZCBxdW90YS4KKyMKKyMgSW4gZWZmZWN0LCB0aGlzIHNjcmlwdCB3aWxsIGZhaWwg
cmF0aGVyIHRoYW4gaW50ZXJmZXJlIHdpdGggdGhlIG9wZXJhdGlvbiBvZgorIyBjcml0aWNhbCBz
ZXJ2aWNlcy4KKworaW1wb3J0IGFyZ3BhcnNlCitpbXBvcnQganNvbgoraW1wb3J0IGxvZ2dpbmcK
K2ltcG9ydCBvcworaW1wb3J0IHN1YnByb2Nlc3MKK2ltcG9ydCB0aW1lCisKK2ltcG9ydCByZXF1
ZXN0cworCisjIFRoZSByYXRpbyBvZiAicmVxdWVzdHMgcmVtYWluaW5nIiB0byAidG90YWwgcmVx
dWVzdCBxdW90YSIgYmVsb3cgd2hpY2ggdGhpcworIyBzY3JpcHQgc2hvdWxkIHJlZnVzZSB0byBp
bnRlcmFjdCB3aXRoIHRoZSBHaXRIdWIuY29tIEFQSQorQVBJX1JBVEVfTElNSVRfVEhSRVNIT0xE
ID0gMC4yCisjIFRoZSBHaXRIdWIgUHVsbCBSZXF1ZXN0IGxhYmVsIHdoaWNoIGluZGljYXRlcyB0
aGF0IGEgUHVsbCBSZXF1ZXN0IGlzIGV4cGVjdGVkCisjIHRvIGJlIGFjdGl2ZWx5IG1pcnJvcmVk
IGJ5IHRoZSBwcmV2aWV3IHNlcnZlcgorTEFCRUwgPSAnc2FmZSBmb3IgcHJldmlldycKKyMgVGhl
IG51bWJlciBvZiBzZWNvbmRzIHRvIHdhaXQgYmV0d2VlbiBhdHRlbXB0cyB0byB2ZXJpZnkgdGhh
dCBhIHN1Ym1pc3Npb24KKyMgcHJldmlldyBpcyBhdmFpbGFibGUgb24gdGhlIFB1bGwgUmVxdWVz
dCBwcmV2aWV3IHNlcnZlcgorUE9MTElOR19QRVJJT0QgPSA1CisjIFB1bGwgUmVxdWVzdHMgZnJv
bSBhdXRob3JzIHdpdGggdGhlIGZvbGxvd2luZyBhc3NvY2lhdGlvbnMgdG8gdGhlIHByb2plY3QK
KyMgc2hvdWxkIGF1dG9tYXRpY2FsbHkgcmVjZWl2ZSBwcmV2aWV3cworIworIyBodHRwczovL2Rl
dmVsb3Blci5naXRodWIuY29tL3Y0L2VudW0vY29tbWVudGF1dGhvcmFzc29jaWF0aW9uLyAoZXF1
aXZhbGVudAorIyBkb2N1bWVudGF0aW9uIGZvciB0aGUgUkVTVCBBUEkgd2FzIG5vdCBhdmFpbGFi
bGUgYXQgdGhlIHRpbWUgb2Ygd3JpdGluZykKK1RSVVNURURfQVVUSE9SX0FTU09DSUFUSU9OUyA9
ICgnQ09MTEFCT1JBVE9SJywgJ01FTUJFUicsICdPV05FUicpCisjIFRoZXNlIEdpdEh1YiBhY2Nv
dW50cyBhcmUgbm90IGFzc29jaWF0ZWQgd2l0aCBpbmRpdmlkdWFscywgYW5kIHRoZSBQdWxsCisj
IFJlcXVlc3RzIHRoZXkgc3VibWl0IHJhcmVseSByZXF1aXJlIGEgcHJldmlldy4KK0FVVE9NQVRJ
T05fR0lUSFVCX1VTRVJTID0gKAorICAgICdhdXRvZm9vbGlwJywgJ2Nocm9taXVtLXdwdC1leHBv
cnQtYm90JywgJ21vei13cHRzeW5jLWJvdCcsCisgICAgJ3NlcnZvLXdwdC1zeW5jJworKQorREVQ
TE9ZTUVOVF9QUkVGSVggPSAnd3B0LXByZXZpZXctJworCitsb2dnaW5nLmJhc2ljQ29uZmlnKGxl
dmVsPWxvZ2dpbmcuSU5GTykKK2xvZ2dlciA9IGxvZ2dpbmcuZ2V0TG9nZ2VyKF9fbmFtZV9fKQor
CitkZWYgZ2hfcmVxdWVzdChtZXRob2RfbmFtZSwgdXJsLCBib2R5PU5vbmUsIG1lZGlhX3R5cGU9
Tm9uZSk6CisgICAgZ2l0aHViX3Rva2VuID0gb3MuZW52aXJvblsnREVQTE9ZX1RPS0VOJ10KKwor
ICAgIGt3YXJncyA9IHsKKyAgICAgICAgJ2hlYWRlcnMnOiB7CisgICAgICAgICAgICAnQXV0aG9y
aXphdGlvbic6ICd0b2tlbiB7fScuZm9ybWF0KGdpdGh1Yl90b2tlbiksCisgICAgICAgICAgICAn
QWNjZXB0JzogbWVkaWFfdHlwZSBvciAnYXBwbGljYXRpb24vdm5kLmdpdGh1Yi52Mytqc29uJwor
ICAgICAgICB9CisgICAgfQorICAgIG1ldGhvZCA9IGdldGF0dHIocmVxdWVzdHMsIG1ldGhvZF9u
YW1lLmxvd2VyKCkpCisKKyAgICBpZiBib2R5IGlzIG5vdCBOb25lOgorICAgICAgICBrd2FyZ3Nb
J2pzb24nXSA9IGJvZHkKKworICAgIGxvZ2dlci5pbmZvKCdJc3N1aW5nIHJlcXVlc3Q6ICVzICVz
JywgbWV0aG9kX25hbWUudXBwZXIoKSwgdXJsKQorCisgICAgcmVzcCA9IG1ldGhvZCh1cmwsICoq
a3dhcmdzKQorCisgICAgbG9nZ2VyLmluZm8oJ1Jlc3BvbnNlIHN0YXR1cyBjb2RlOiAlcycsIHJl
c3Auc3RhdHVzX2NvZGUpCisKKyAgICByZXNwLnJhaXNlX2Zvcl9zdGF0dXMoKQorCisgICAgcmV0
dXJuIHJlc3AuanNvbigpCisKK2RlZiBndWFyZChyZXNvdXJjZSk6CisgICAgJycnRGVjb3JhdGUg
YSBgUHJvamVjdGAgaW5zdGFuY2UgbWV0aG9kIHdoaWNoIGludGVyYWN0cyB3aXRoIHRoZSBHaXRI
dWIKKyAgICBBUEksIGVuc3VyaW5nIHRoYXQgdGhlIHN1YnNlcXVlbnQgcmVxdWVzdCB3aWxsIG5v
dCBkZXBsZXRlIHRoZSByZWxldmFudAorICAgIGFsbG93YW5jZS4gVGhpcyB2ZXJpZmljYXRpb24g
ZG9lcyBub3QgaXRzZWxmIGluZmx1ZW5jZSByYXRlIGxpbWl0aW5nOgorCisgICAgPiBBY2Nlc3Np
bmcgdGhpcyBlbmRwb2ludCBkb2VzIG5vdCBjb3VudCBhZ2FpbnN0IHlvdXIgUkVTVCBBUEkgcmF0
ZSBsaW1pdC4KKworICAgIGh0dHBzOi8vZGV2ZWxvcGVyLmdpdGh1Yi5jb20vdjMvcmF0ZV9saW1p
dC8KKyAgICAnJycKKyAgICBkZWYgZ3VhcmRfZGVjb3JhdG9yKGZ1bmMpOgorICAgICAgICBkZWYg
d3JhcHBlZChzZWxmLCAqYXJncywgKiprd2FyZ3MpOgorICAgICAgICAgICAgbGltaXRzID0gZ2hf
cmVxdWVzdCgnR0VUJywgJ3t9L3JhdGVfbGltaXQnLmZvcm1hdChzZWxmLl9ob3N0KSkKKworICAg
ICAgICAgICAgdmFsdWVzID0gbGltaXRzWydyZXNvdXJjZXMnXS5nZXQocmVzb3VyY2UpCisKKyAg
ICAgICAgICAgIHJlbWFpbmluZyA9IHZhbHVlc1sncmVtYWluaW5nJ10KKyAgICAgICAgICAgIGxp
bWl0ID0gdmFsdWVzWydsaW1pdCddCisKKyAgICAgICAgICAgIGxvZ2dlci5pbmZvKAorICAgICAg
ICAgICAgICAgICdMaW1pdCBmb3IgIiVzIiByZXNvdXJjZTogJXMvJXMnLCByZXNvdXJjZSwgcmVt
YWluaW5nLCBsaW1pdAorICAgICAgICAgICAgKQorCisgICAgICAgICAgICBpZiBsaW1pdCBhbmQg
ZmxvYXQocmVtYWluaW5nKSAvIGxpbWl0IDwgQVBJX1JBVEVfTElNSVRfVEhSRVNIT0xEOgorICAg
ICAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigKKyAgICAgICAgICAgICAgICAgICAgJ0V4aXRp
bmcgdG8gYXZvaWQgR2l0SHViLmNvbSBBUEkgcmVxdWVzdCB0aHJvdHRsaW5nLicKKyAgICAgICAg
ICAgICAgICApCisKKyAgICAgICAgICAgIHJldHVybiBmdW5jKHNlbGYsICphcmdzLCAqKmt3YXJn
cykKKyAgICAgICAgcmV0dXJuIHdyYXBwZWQKKyAgICByZXR1cm4gZ3VhcmRfZGVjb3JhdG9yCisK
K2NsYXNzIFByb2plY3Qob2JqZWN0KToKKyAgICBkZWYgX19pbml0X18oc2VsZiwgaG9zdCwgZ2l0
aHViX3Byb2plY3QpOgorICAgICAgICBzZWxmLl9ob3N0ID0gaG9zdAorICAgICAgICBzZWxmLl9n
aXRodWJfcHJvamVjdCA9IGdpdGh1Yl9wcm9qZWN0CisKKyAgICBAZ3VhcmQoJ3NlYXJjaCcpCisg
ICAgZGVmIGdldF9wdWxsX3JlcXVlc3RzKHNlbGYsIHVwZGF0ZWRfc2luY2UpOgorICAgICAgICB3
aW5kb3dfc3RhcnQgPSB0aW1lLnN0cmZ0aW1lKCclWS0lbS0lZFQlSDolTTolU1onLCB1cGRhdGVk
X3NpbmNlKQorICAgICAgICB1cmwgPSAne30vc2VhcmNoL2lzc3Vlcz9xPXJlcG86e30raXM6cHIr
dXBkYXRlZDo+e30nLmZvcm1hdCgKKyAgICAgICAgICAgIHNlbGYuX2hvc3QsIHNlbGYuX2dpdGh1
Yl9wcm9qZWN0LCB3aW5kb3dfc3RhcnQKKyAgICAgICAgKQorCisgICAgICAgIGxvZ2dlci5pbmZv
KAorICAgICAgICAgICAgJ1NlYXJjaGluZyBmb3IgUHVsbCBSZXF1ZXN0cyB1cGRhdGVkIHNpbmNl
ICVzJywgd2luZG93X3N0YXJ0CisgICAgICAgICkKKworICAgICAgICBkYXRhID0gZ2hfcmVxdWVz
dCgnR0VUJywgdXJsKQorCisgICAgICAgIGxvZ2dlci5pbmZvKCdGb3VuZCAlZCBQdWxsIFJlcXVl
c3RzJywgbGVuKGRhdGFbJ2l0ZW1zJ10pKQorCisgICAgICAgIGlmIGRhdGFbJ2luY29tcGxldGVf
cmVzdWx0cyddOgorICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCdJbmNvbXBsZXRlIHJlc3Vs
dHMnKQorCisgICAgICAgIHJldHVybiBkYXRhWydpdGVtcyddCisKKyAgICBAZ3VhcmQoJ2NvcmUn
KQorICAgIGRlZiBjcmVhdGVfcmVmKHNlbGYsIHJlZnNwZWMsIHJldmlzaW9uKToKKyAgICAgICAg
dXJsID0gJ3t9L3JlcG9zL3t9L2dpdC9yZWZzJy5mb3JtYXQoc2VsZi5faG9zdCwgc2VsZi5fZ2l0
aHViX3Byb2plY3QpCisKKyAgICAgICAgbG9nZ2VyLmluZm8oJ0NyZWF0aW5nIHJlZiAiJXMiICgl
cyknLCByZWZzcGVjLCByZXZpc2lvbikKKworICAgICAgICBnaF9yZXF1ZXN0KCdQT1NUJywgdXJs
LCB7CisgICAgICAgICAgICAncmVmJzogJ3JlZnMve30nLmZvcm1hdChyZWZzcGVjKSwKKyAgICAg
ICAgICAgICdzaGEnOiByZXZpc2lvbgorICAgICAgICB9KQorCisgICAgQGd1YXJkKCdjb3JlJykK
KyAgICBkZWYgdXBkYXRlX3JlZihzZWxmLCByZWZzcGVjLCByZXZpc2lvbik6CisgICAgICAgIHVy
bCA9ICd7fS9yZXBvcy97fS9naXQvcmVmcy97fScuZm9ybWF0KAorICAgICAgICAgICAgc2VsZi5f
aG9zdCwgc2VsZi5fZ2l0aHViX3Byb2plY3QsIHJlZnNwZWMKKyAgICAgICAgKQorCisgICAgICAg
IGxvZ2dlci5pbmZvKCdVcGRhdGluZyByZWYgIiVzIiAoJXMpJywgcmVmc3BlYywgcmV2aXNpb24p
CisKKyAgICAgICAgZ2hfcmVxdWVzdCgnUEFUQ0gnLCB1cmwsIHsnc2hhJzogcmV2aXNpb259KQor
CisgICAgQGd1YXJkKCdjb3JlJykKKyAgICBkZWYgY3JlYXRlX2RlcGxveW1lbnQoc2VsZiwgcHVs
bF9yZXF1ZXN0LCByZXZpc2lvbik6CisgICAgICAgIHVybCA9ICd7fS9yZXBvcy97fS9kZXBsb3lt
ZW50cycuZm9ybWF0KAorICAgICAgICAgICAgc2VsZi5faG9zdCwgc2VsZi5fZ2l0aHViX3Byb2pl
Y3QKKyAgICAgICAgKQorICAgICAgICAjIFRoZSBQdWxsIFJlcXVlc3QgcHJldmlldyBzeXN0ZW0g
b25seSBleHBvc2VzIG9uZSBEZXBsb3ltZW50IGZvciBhCisgICAgICAgICMgZ2l2ZW4gUHVsbCBS
ZXF1ZXN0LiBJZGVudGlmeWluZyB0aGUgRGVwbG95bWVudCBieSB0aGUgUHVsbCBSZXF1ZXN0Cisg
ICAgICAgICMgbnVtYmVyIGVuc3VyZXMgdGhhdCBHaXRIdWIuY29tIGF1dG9tYXRpY2FsbHkgcmVz
cG9uZHMgdG8gbmV3CisgICAgICAgICMgRGVwbG95bWVudHMgYnkgZGVzaWduYXRpbmcgcHJpb3Ig
RGVwbG95bWVudHMgYXMgImluYWN0aXZlIgorICAgICAgICBlbnZpcm9ubWVudCA9IERFUExPWU1F
TlRfUFJFRklYICsgc3RyKHB1bGxfcmVxdWVzdFsnbnVtYmVyJ10pCisKKyAgICAgICAgbG9nZ2Vy
LmluZm8oJ0NyZWF0aW5nIERlcGxveW1lbnQgIiVzIiBmb3IgIiVzIicsIGVudmlyb25tZW50LCBy
ZXZpc2lvbikKKworICAgICAgICByZXR1cm4gZ2hfcmVxdWVzdCgnUE9TVCcsIHVybCwgeworICAg
ICAgICAgICAgJ3JlZic6IHJldmlzaW9uLAorICAgICAgICAgICAgJ2Vudmlyb25tZW50JzogZW52
aXJvbm1lbnQsCisgICAgICAgICAgICAnYXV0b19tZXJnZSc6IEZhbHNlLAorICAgICAgICAgICAg
IyBQdWxsIFJlcXVlc3QgcHJldmlld3MgYXJlIGNyZWF0ZWQgcmVnYXJkbGVzcyBvZiBHaXRIdWIg
Q29tbWl0CisgICAgICAgICAgICAjIFN0YXR1cyBDaGVja3MsIHNvIFN0YXR1cyBDaGVja3Mgc2hv
dWxkIGJlIGlnbm9yZWQgd2hlbiBjcmVhdGluZworICAgICAgICAgICAgIyBHaXRIdWIgRGVwbG95
bWVudHMuCisgICAgICAgICAgICAncmVxdWlyZWRfY29udGV4dHMnOiBbXQorICAgICAgICB9LCAn
YXBwbGljYXRpb24vdm5kLmdpdGh1Yi5hbnQtbWFuLXByZXZpZXcranNvbicpCisKKyAgICBAZ3Vh
cmQoJ2NvcmUnKQorICAgIGRlZiBnZXRfZGVwbG95bWVudChzZWxmLCByZXZpc2lvbik6CisgICAg
ICAgIHVybCA9ICd7fS9yZXBvcy97fS9kZXBsb3ltZW50cz9zaGE9e30nLmZvcm1hdCgKKyAgICAg
ICAgICAgIHNlbGYuX2hvc3QsIHNlbGYuX2dpdGh1Yl9wcm9qZWN0LCByZXZpc2lvbgorICAgICAg
ICApCisKKyAgICAgICAgZGVwbG95bWVudHMgPSBnaF9yZXF1ZXN0KCdHRVQnLCB1cmwpCisKKyAg
ICAgICAgcmV0dXJuIGRlcGxveW1lbnRzLnBvcCgpIGlmIGxlbihkZXBsb3ltZW50cykgZWxzZSBO
b25lCisKKyAgICBAZ3VhcmQoJ2NvcmUnKQorICAgIGRlZiB1cGRhdGVfZGVwbG95bWVudChzZWxm
LCB0YXJnZXQsIGRlcGxveW1lbnQsIHN0YXRlLCBkZXNjcmlwdGlvbj0nJyk6CisgICAgICAgIGlm
IHN0YXRlIGluICgncGVuZGluZycsICdzdWNjZXNzJyk6CisgICAgICAgICAgICBlbnZpcm9ubWVu
dF91cmwgPSAne30vc3VibWlzc2lvbnMve30nLmZvcm1hdCgKKyAgICAgICAgICAgICAgICB0YXJn
ZXQsIGRlcGxveW1lbnRbJ2Vudmlyb25tZW50J10KKyAgICAgICAgICAgICkKKyAgICAgICAgZWxz
ZToKKyAgICAgICAgICAgIGVudmlyb25tZW50X3VybCA9IE5vbmUKKyAgICAgICAgdXJsID0gJ3t9
L3JlcG9zL3t9L2RlcGxveW1lbnRzL3t9L3N0YXR1c2VzJy5mb3JtYXQoCisgICAgICAgICAgICBz
ZWxmLl9ob3N0LCBzZWxmLl9naXRodWJfcHJvamVjdCwgZGVwbG95bWVudFsnaWQnXQorICAgICAg
ICApCisKKyAgICAgICAgZ2hfcmVxdWVzdCgnUE9TVCcsIHVybCwgeworICAgICAgICAgICAgJ3N0
YXRlJzogc3RhdGUsCisgICAgICAgICAgICAnZGVzY3JpcHRpb24nOiBkZXNjcmlwdGlvbiwKKyAg
ICAgICAgICAgICdlbnZpcm9ubWVudF91cmwnOiBlbnZpcm9ubWVudF91cmwKKyAgICAgICAgfSwg
J2FwcGxpY2F0aW9uL3ZuZC5naXRodWIuYW50LW1hbi1wcmV2aWV3K2pzb24nKQorCitjbGFzcyBS
ZW1vdGUob2JqZWN0KToKKyAgICBkZWYgX19pbml0X18oc2VsZiwgZ2l0aHViX3Byb2plY3QpOgor
ICAgICAgICAjIFRoZSByZXBvc2l0b3J5IGluIHRoZSBHaXRIdWIgQWN0aW9ucyBlbnZpcm9ubWVu
dCBpcyBjb25maWd1cmVkIHdpdGgKKyAgICAgICAgIyBhIHJlbW90ZSB3aG9zZSBVUkwgdXNlcyB1
bmF1dGhlbnRpY2F0ZWQgSFRUUFMsIG1ha2luZyBpdCB1bnN1aXRhYmxlCisgICAgICAgICMgZm9y
IHB1c2hpbmcgY2hhbmdlcy4KKyAgICAgICAgc2VsZi5fdG9rZW4gPSBvcy5lbnZpcm9uWydERVBM
T1lfVE9LRU4nXQorCisgICAgZGVmIGdldF9yZXZpc2lvbihzZWxmLCByZWZzcGVjKToKKyAgICAg
ICAgb3V0cHV0ID0gc3VicHJvY2Vzcy5jaGVja19vdXRwdXQoWworICAgICAgICAgICAgJ2dpdCcs
CisgICAgICAgICAgICAnLWMnLAorICAgICAgICAgICAgJ2NyZWRlbnRpYWwudXNlcm5hbWU9e30n
LmZvcm1hdChzZWxmLl90b2tlbiksCisgICAgICAgICAgICAnLWMnLAorICAgICAgICAgICAgJ2Nv
cmUuYXNrUGFzcz10cnVlJywKKyAgICAgICAgICAgICdscy1yZW1vdGUnLAorICAgICAgICAgICAg
J29yaWdpbicsCisgICAgICAgICAgICAncmVmcy97fScuZm9ybWF0KHJlZnNwZWMpCisgICAgICAg
IF0pCisKKyAgICAgICAgaWYgbm90IG91dHB1dDoKKyAgICAgICAgICAgIHJldHVybiBOb25lCisK
KyAgICAgICAgcmV0dXJuIG91dHB1dC5kZWNvZGUoJ3V0Zi04Jykuc3BsaXQoKVswXQorCisgICAg
ZGVmIGRlbGV0ZV9yZWYoc2VsZiwgcmVmc3BlYyk6CisgICAgICAgIGZ1bGxfcmVmID0gJ3JlZnMv
e30nLmZvcm1hdChyZWZzcGVjKQorCisgICAgICAgIGxvZ2dlci5pbmZvKCdEZWxldGluZyByZWYg
IiVzIicsIHJlZnNwZWMpCisKKyAgICAgICAgc3VicHJvY2Vzcy5jaGVja19jYWxsKFsKKyAgICAg
ICAgICAgICdnaXQnLAorICAgICAgICAgICAgJy1jJywKKyAgICAgICAgICAgICdjcmVkZW50aWFs
LnVzZXJuYW1lPXt9Jy5mb3JtYXQoc2VsZi5fdG9rZW4pLAorICAgICAgICAgICAgJy1jJywKKyAg
ICAgICAgICAgICdjb3JlLmFza1Bhc3M9dHJ1ZScsCisgICAgICAgICAgICAncHVzaCcsCisgICAg
ICAgICAgICAnb3JpZ2luJywKKyAgICAgICAgICAgICctLWRlbGV0ZScsCisgICAgICAgICAgICBm
dWxsX3JlZgorICAgICAgICBdKQorCitkZWYgaXNfb3BlbihwdWxsX3JlcXVlc3QpOgorICAgIHJl
dHVybiBub3QgcHVsbF9yZXF1ZXN0WydjbG9zZWRfYXQnXQorCitkZWYgaGFzX21pcnJvcmluZ19s
YWJlbChwdWxsX3JlcXVlc3QpOgorICAgIGZvciBsYWJlbCBpbiBwdWxsX3JlcXVlc3RbJ2xhYmVs
cyddOgorICAgICAgICBpZiBsYWJlbFsnbmFtZSddID09IExBQkVMOgorICAgICAgICAgICAgcmV0
dXJuIFRydWUKKworICAgIHJldHVybiBGYWxzZQorCitkZWYgc2hvdWxkX2JlX21pcnJvcmVkKHB1
bGxfcmVxdWVzdCk6CisgICAgcmV0dXJuICgKKyAgICAgICAgaXNfb3BlbihwdWxsX3JlcXVlc3Qp
IGFuZAorICAgICAgICBwdWxsX3JlcXVlc3RbJ3VzZXInXVsnbG9naW4nXSBub3QgaW4gQVVUT01B
VElPTl9HSVRIVUJfVVNFUlMgYW5kICgKKyAgICAgICAgICAgIHB1bGxfcmVxdWVzdFsnYXV0aG9y
X2Fzc29jaWF0aW9uJ10gaW4gVFJVU1RFRF9BVVRIT1JfQVNTT0NJQVRJT05TIG9yCisgICAgICAg
ICAgICBoYXNfbWlycm9yaW5nX2xhYmVsKHB1bGxfcmVxdWVzdCkKKyAgICAgICAgKQorICAgICkK
KworZGVmIGlzX2RlcGxveWVkKGhvc3QsIGRlcGxveW1lbnQpOgorICAgIHdvcmt0cmVlX25hbWUg
PSBkZXBsb3ltZW50WydlbnZpcm9ubWVudCddW2xlbihERVBMT1lNRU5UX1BSRUZJWCk6XQorICAg
IHJlc3BvbnNlID0gcmVxdWVzdHMuZ2V0KAorICAgICAgICAne30vLmdpdC93b3JrdHJlZXMve30v
SEVBRCcuZm9ybWF0KGhvc3QsIHdvcmt0cmVlX25hbWUpCisgICAgKQorCisgICAgaWYgcmVzcG9u
c2Uuc3RhdHVzX2NvZGUgIT0gMjAwOgorICAgICAgICByZXR1cm4gRmFsc2UKKworICAgIHJldHVy
biByZXNwb25zZS50ZXh0LnN0cmlwKCkgPT0gZGVwbG95bWVudFsnc2hhJ10KKworZGVmIHN5bmNo
cm9uaXplKGhvc3QsIGdpdGh1Yl9wcm9qZWN0LCB3aW5kb3cpOgorICAgICcnJ0luc3BlY3QgYWxs
IFB1bGwgUmVxdWVzdHMgd2hpY2ggaGF2ZSBiZWVuIG1vZGlmaWVkIGluIGEgZ2l2ZW4gd2luZG93
IG9mCisgICAgdGltZS4gQWRkIG9yIHJlbW92ZSB0aGUgInByZXZpZXciIGxhYmVsIGFuZCB1cGRh
dGUgb3IgZGVsZXRlIHRoZSByZWxldmFudAorICAgIGdpdCByZWZzIGFjY29yZGluZyB0byB0aGUg
c3RhdHVzIG9mIGVhY2ggUHVsbCBSZXF1ZXN0LicnJworCisgICAgcHJvamVjdCA9IFByb2plY3Qo
aG9zdCwgZ2l0aHViX3Byb2plY3QpCisgICAgcmVtb3RlID0gUmVtb3RlKGdpdGh1Yl9wcm9qZWN0
KQorCisgICAgcHVsbF9yZXF1ZXN0cyA9IHByb2plY3QuZ2V0X3B1bGxfcmVxdWVzdHMoCisgICAg
ICAgIHRpbWUuZ210aW1lKHRpbWUudGltZSgpIC0gd2luZG93KQorICAgICkKKworICAgIGZvciBw
dWxsX3JlcXVlc3QgaW4gcHVsbF9yZXF1ZXN0czoKKyAgICAgICAgbG9nZ2VyLmluZm8oJ1Byb2Nl
c3NpbmcgUHVsbCBSZXF1ZXN0ICMlKG51bWJlcilkJywgcHVsbF9yZXF1ZXN0KQorCisgICAgICAg
IHJlZnNwZWNfdHJ1c3RlZCA9ICdwcnMtdHJ1c3RlZC1mb3ItcHJldmlldy97bnVtYmVyfScuZm9y
bWF0KAorICAgICAgICAgICAgKipwdWxsX3JlcXVlc3QKKyAgICAgICAgKQorICAgICAgICByZWZz
cGVjX29wZW4gPSAncHJzLW9wZW4ve251bWJlcn0nLmZvcm1hdCgqKnB1bGxfcmVxdWVzdCkKKyAg
ICAgICAgcmV2aXNpb25fbGF0ZXN0ID0gcmVtb3RlLmdldF9yZXZpc2lvbigKKyAgICAgICAgICAg
ICdwdWxsL3tudW1iZXJ9L2hlYWQnLmZvcm1hdCgqKnB1bGxfcmVxdWVzdCkKKyAgICAgICAgKQor
ICAgICAgICByZXZpc2lvbl90cnVzdGVkID0gcmVtb3RlLmdldF9yZXZpc2lvbihyZWZzcGVjX3Ry
dXN0ZWQpCisgICAgICAgIHJldmlzaW9uX29wZW4gPSByZW1vdGUuZ2V0X3JldmlzaW9uKHJlZnNw
ZWNfb3BlbikKKworICAgICAgICBpZiBzaG91bGRfYmVfbWlycm9yZWQocHVsbF9yZXF1ZXN0KToK
KyAgICAgICAgICAgIGxvZ2dlci5pbmZvKCdQdWxsIFJlcXVlc3Qgc2hvdWxkIGJlIG1pcnJvcmVk
JykKKworICAgICAgICAgICAgaWYgcmV2aXNpb25fdHJ1c3RlZCBpcyBOb25lOgorICAgICAgICAg
ICAgICAgIHByb2plY3QuY3JlYXRlX3JlZihyZWZzcGVjX3RydXN0ZWQsIHJldmlzaW9uX2xhdGVz
dCkKKyAgICAgICAgICAgIGVsaWYgcmV2aXNpb25fdHJ1c3RlZCAhPSByZXZpc2lvbl9sYXRlc3Q6
CisgICAgICAgICAgICAgICAgcHJvamVjdC51cGRhdGVfcmVmKHJlZnNwZWNfdHJ1c3RlZCwgcmV2
aXNpb25fbGF0ZXN0KQorCisgICAgICAgICAgICBpZiByZXZpc2lvbl9vcGVuIGlzIE5vbmU6Cisg
ICAgICAgICAgICAgICAgcHJvamVjdC5jcmVhdGVfcmVmKHJlZnNwZWNfb3BlbiwgcmV2aXNpb25f
bGF0ZXN0KQorICAgICAgICAgICAgZWxpZiByZXZpc2lvbl9vcGVuICE9IHJldmlzaW9uX2xhdGVz
dDoKKyAgICAgICAgICAgICAgICBwcm9qZWN0LnVwZGF0ZV9yZWYocmVmc3BlY19vcGVuLCByZXZp
c2lvbl9sYXRlc3QpCisKKyAgICAgICAgICAgIGlmIHByb2plY3QuZ2V0X2RlcGxveW1lbnQocmV2
aXNpb25fbGF0ZXN0KSBpcyBOb25lOgorICAgICAgICAgICAgICAgIHByb2plY3QuY3JlYXRlX2Rl
cGxveW1lbnQoCisgICAgICAgICAgICAgICAgICAgIHB1bGxfcmVxdWVzdCwgcmV2aXNpb25fbGF0
ZXN0CisgICAgICAgICAgICAgICAgKQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgbG9nZ2Vy
LmluZm8oJ1B1bGwgUmVxdWVzdCBzaG91bGQgbm90IGJlIG1pcnJvcmVkJykKKworICAgICAgICAg
ICAgaWYgbm90IGhhc19taXJyb3JpbmdfbGFiZWwocHVsbF9yZXF1ZXN0KSBhbmQgcmV2aXNpb25f
dHJ1c3RlZCBpcyBub3QgTm9uZToKKyAgICAgICAgICAgICAgICByZW1vdGUuZGVsZXRlX3JlZihy
ZWZzcGVjX3RydXN0ZWQpCisKKyAgICAgICAgICAgIGlmIHJldmlzaW9uX29wZW4gaXMgbm90IE5v
bmUgYW5kIG5vdCBpc19vcGVuKHB1bGxfcmVxdWVzdCk6CisgICAgICAgICAgICAgICAgcmVtb3Rl
LmRlbGV0ZV9yZWYocmVmc3BlY19vcGVuKQorCitkZWYgZGV0ZWN0KGhvc3QsIGdpdGh1Yl9wcm9q
ZWN0LCB0YXJnZXQsIHRpbWVvdXQpOgorICAgICcnJ01hbmFnZSB0aGUgc3RhdHVzIG9mIGEgR2l0
SHViIERlcGxveW1lbnQgYnkgcG9sbGluZyB0aGUgUHVsbCBSZXF1ZXN0CisgICAgcHJldmlldyB3
ZWJzaXRlIHVudGlsIHRoZSBEZXBsb3ltZW50IGlzIGNvbXBsZXRlIG9yIGEgdGltZW91dCBpcwor
ICAgIHJlYWNoZWQuJycnCisKKyAgICBwcm9qZWN0ID0gUHJvamVjdChob3N0LCBnaXRodWJfcHJv
amVjdCkKKworICAgIHdpdGggb3Blbihvcy5lbnZpcm9uWydHSVRIVUJfRVZFTlRfUEFUSCddKSBh
cyBoYW5kbGU6CisgICAgICAgIGRhdGEgPSBqc29uLmxvYWRzKGhhbmRsZS5yZWFkKCkpCisKKyAg
ICBsb2dnZXIuaW5mbygnRXZlbnQgZGF0YTogJXMnLCBqc29uLmR1bXBzKGRhdGEsIGluZGVudD0y
KSkKKworICAgIGRlcGxveW1lbnQgPSBkYXRhWydkZXBsb3ltZW50J10KKworICAgIGlmIG5vdCBk
ZXBsb3ltZW50WydlbnZpcm9ubWVudCddLnN0YXJ0c3dpdGgoREVQTE9ZTUVOVF9QUkVGSVgpOgor
ICAgICAgICBsb2dnZXIuaW5mbygKKyAgICAgICAgICAgICdEZXBsb3ltZW50IGVudmlyb25tZW50
ICIlcyIgaXMgdW5yZWNvZ25pemVkLiBFeGl0aW5nLicsCisgICAgICAgICAgICBkZXBsb3ltZW50
WydlbnZpcm9ubWVudCddCisgICAgICAgICkKKyAgICAgICAgcmV0dXJuCisKKyAgICBtZXNzYWdl
ID0gJ1dhaXRpbmcgdXAgdG8ge30gc2Vjb25kcyBmb3IgRGVwbG95bWVudCB7fSB0byBiZSBhdmFp
bGFibGUgb24ge30nLmZvcm1hdCgKKyAgICAgICAgdGltZW91dCwgZGVwbG95bWVudFsnZW52aXJv
bm1lbnQnXSwgdGFyZ2V0CisgICAgKQorICAgIGxvZ2dlci5pbmZvKG1lc3NhZ2UpCisgICAgcHJv
amVjdC51cGRhdGVfZGVwbG95bWVudCh0YXJnZXQsIGRlcGxveW1lbnQsICdwZW5kaW5nJywgbWVz
c2FnZSkKKworICAgIHN0YXJ0ID0gdGltZS50aW1lKCkKKworICAgIHdoaWxlIG5vdCBpc19kZXBs
b3llZCh0YXJnZXQsIGRlcGxveW1lbnQpOgorICAgICAgICBpZiB0aW1lLnRpbWUoKSAtIHN0YXJ0
ID4gdGltZW91dDoKKyAgICAgICAgICAgIG1lc3NhZ2UgPSAnRGVwbG95bWVudCBkaWQgbm90IGJl
Y29tZSBhdmFpbGFibGUgYWZ0ZXIge30gc2Vjb25kcycuZm9ybWF0KHRpbWVvdXQpCisgICAgICAg
ICAgICBwcm9qZWN0LnVwZGF0ZV9kZXBsb3ltZW50KHRhcmdldCwgZGVwbG95bWVudCwgJ2Vycm9y
JywgbWVzc2FnZSkKKyAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbihtZXNzYWdlKQorCisgICAg
ICAgIHRpbWUuc2xlZXAoUE9MTElOR19QRVJJT0QpCisKKyAgICByZXN1bHQgPSBwcm9qZWN0LnVw
ZGF0ZV9kZXBsb3ltZW50KHRhcmdldCwgZGVwbG95bWVudCwgJ3N1Y2Nlc3MnKQorICAgIGxvZ2dl
ci5pbmZvKGpzb24uZHVtcHMocmVzdWx0LCBpbmRlbnQ9MikpCisKK2lmIF9fbmFtZV9fID09ICdf
X21haW5fXyc6CisgICAgcGFyc2VyID0gYXJncGFyc2UuQXJndW1lbnRQYXJzZXIoCisgICAgICAg
IGRlc2NyaXB0aW9uPScnJ1N5bmNocm9uaXplIHRoZSBzdGF0ZSBvZiBhIEdpdEh1Yi5jb20gcHJv
amVjdCB3aXRoIHRoZQorICAgICAgICAgICAgdW5kZXJseWluZyBnaXQgcmVwb3NpdG9yeSBpbiBv
cmRlciB0byBzdXBwb3J0IGEgZXh0ZXJuYWxseS1ob3N0ZWQKKyAgICAgICAgICAgIFB1bGwgUmVx
dWVzdCBwcmV2aWV3IHN5c3RlbS4gQ29tbXVuaWNhdGUgdGhlIHN0YXRlIG9mIHRoYXQgc3lzdGVt
CisgICAgICAgICAgICB2aWEgR2l0SHViIERlcGxveW1lbnRzIGFzc29jaWF0ZWQgd2l0aCBlYWNo
IFB1bGwgUmVxdWVzdC4nJycKKyAgICApCisgICAgcGFyc2VyLmFkZF9hcmd1bWVudCgKKyAgICAg
ICAgJy0taG9zdCcsIHJlcXVpcmVkPVRydWUsIGhlbHA9J3RoZSBsb2NhdGlvbiBvZiB0aGUgR2l0
SHViIEFQSSBzZXJ2ZXInCisgICAgKQorICAgIHBhcnNlci5hZGRfYXJndW1lbnQoCisgICAgICAg
ICctLWdpdGh1Yi1wcm9qZWN0JywKKyAgICAgICAgcmVxdWlyZWQ9VHJ1ZSwKKyAgICAgICAgaGVs
cD0nJyd0aGUgR2l0SHViIG9yZ2FuaXphdGlvbiBhbmQgR2l0SHViIHByb2plY3QgbmFtZSwgc2Vw
YXJhdGVkIGJ5CisgICAgICAgICAgICBhIGZvcndhcmQgc2xhc2ggKGUuZy4gIndlYi1wbGF0Zm9y
bS10ZXN0cy93cHQiKScnJworICAgICkKKyAgICBzdWJwYXJzZXJzID0gcGFyc2VyLmFkZF9zdWJw
YXJzZXJzKHRpdGxlPSdzdWJjb21tYW5kcycpCisKKyAgICBwYXJzZXJfc3luYyA9IHN1YnBhcnNl
cnMuYWRkX3BhcnNlcigKKyAgICAgICAgJ3N5bmNocm9uaXplJywgaGVscD1zeW5jaHJvbml6ZS5f
X2RvY19fCisgICAgKQorICAgIHBhcnNlcl9zeW5jLmFkZF9hcmd1bWVudCgKKyAgICAgICAgJy0t
d2luZG93JywKKyAgICAgICAgdHlwZT1pbnQsCisgICAgICAgIHJlcXVpcmVkPVRydWUsCisgICAg
ICAgIGhlbHA9JycndGhlIG51bWJlciBvZiBzZWNvbmRzIHByaW9yIHRvIHRoZSBjdXJyZW50IG1v
bWVudCB3aXRoaW4gd2hpY2gKKyAgICAgICAgICAgIHRvIHNlYXJjaCBmb3IgR2l0SHViIFB1bGwg
UmVxdWVzdHMuIEFueSBQdWxsIFJlcXVlc3RzIHVwZGF0ZWQgaW4KKyAgICAgICAgICAgIHRoaXMg
dGltZSBmcmFtZSB3aWxsIGJlIGNvbnNpZGVyZWQgZm9yIHN5bmNocm9uaXphdGlvbi4nJycKKyAg
ICApCisgICAgcGFyc2VyX3N5bmMuc2V0X2RlZmF1bHRzKGZ1bmM9c3luY2hyb25pemUpCisKKyAg
ICBwYXJzZXJfZGV0ZWN0ID0gc3VicGFyc2Vycy5hZGRfcGFyc2VyKCdkZXRlY3QnLCBoZWxwPWRl
dGVjdC5fX2RvY19fKQorICAgIHBhcnNlcl9kZXRlY3QuYWRkX2FyZ3VtZW50KAorICAgICAgICAn
LS10YXJnZXQnLAorICAgICAgICByZXF1aXJlZD1UcnVlLAorICAgICAgICBoZWxwPScnJ3RoZSBV
Ukwgb2YgdGhlIHdlYnNpdGUgdG8gd2hpY2ggc3VibWlzc2lvbiBwcmV2aWV3cyBhcmUKKyAgICAg
ICAgICAgIGV4cGVjdGVkIHRvIGJlY29tZSBhdmFpbGFibGUnJycKKyAgICApCisgICAgcGFyc2Vy
X2RldGVjdC5hZGRfYXJndW1lbnQoCisgICAgICAgICctLXRpbWVvdXQnLAorICAgICAgICB0eXBl
PWludCwKKyAgICAgICAgcmVxdWlyZWQ9VHJ1ZSwKKyAgICAgICAgaGVscD0nJyd0aGUgbnVtYmVy
IG9mIHNlY29uZHMgdG8gd2FpdCBmb3IgYSBzdWJtaXNzaW9uIHByZXZpZXcgdG8KKyAgICAgICAg
ICAgIGJlY29tZSBhdmFpbGFibGUgYmVmb3JlIHJlcG9ydGluZyBhIEdpdEh1YiBEZXBsb3ltZW50
IGZhaWx1cmUnJycKKyAgICApCisgICAgcGFyc2VyX2RldGVjdC5zZXRfZGVmYXVsdHMoZnVuYz1k
ZXRlY3QpCisKKyAgICB2YWx1ZXMgPSBkaWN0KHZhcnMocGFyc2VyLnBhcnNlX2FyZ3MoKSkpCisg
ICAgdmFsdWVzLnBvcCgnZnVuYycpKCoqdmFsdWVzKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9jaS9ydW4uc2ggYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2NpL3J1bi5zaApkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYWU1OGY1OGMzMzY1ZGEwNzZlYjA1MThmNTMyZWI1
NzE3ZDFiZjNmYS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0g
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2NpL3J1
bi5zaAorKysgL2Rldi9udWxsCkBAIC0xLDEwICswLDAgQEAKLSMhL2Jpbi9iYXNoCi1zZXQgLWV4
Ci0KLVNDUklQVF9ESVI9JChkaXJuYW1lICQocmVhZGxpbmsgLWYgIiQwIikpCi1XUFRfUk9PVD0k
KHJlYWRsaW5rIC1mICRTQ1JJUFRfRElSLy4uLy4uKQotY2QgJFdQVF9ST09UCi0KLWlmIFtbICRS
VU5fSk9CIC1lcSAxIF1dOyB0aGVuCi0gICAgJFNDUklQVAotZmkKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvY2kvcnVuX3RjLnB5
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9jaS9y
dW5fdGMucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uYjRjYjJiMDFiOTc0NWRlMWMyMzRjOWVlYWY0MTRlNjViOGZl
N2FlMwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvY2kvcnVuX3RjLnB5CkBAIC0wLDAgKzEsMzcyIEBACisjIS91c3Iv
YmluL2VudiBweXRob24KKworIiIiV3JhcHBlciBzY3JpcHQgZm9yIHJ1bm5pbmcgam9icyBpbiBU
YXNrY2x1c3RlcgorCitUaGlzIGlzIGludGVuZGVkIGZvciBydW5uaW5nIHRlc3Qgam9icyBpbiBU
YXNrY2x1c3Rlci4gVGhlIHNjcmlwdAordGFrZXMgYSB0d28gcG9zaXRpb25hbCBhcmd1bWVudHMg
d2hpY2ggYXJlIHRoZSBuYW1lIG9mIHRoZSB0ZXN0IGpvYgorYW5kIHRoZSBzY3JpcHQgdG8gYWN0
dWFsbHkgcnVuLgorCitUaGUgbmFtZSBvZiB0aGUgdGVzdCBqb2IgaXMgdXNlZCB0byBkZXRlcm1p
bmUgd2hldGhlciB0aGUgc2NyaXB0IHNob3VsZCBiZSBydW4KK2ZvciB0aGlzIHB1c2ggKHRoaXMg
aXMgaW4gbGlldSBvZiBoYXZpbmcgYSBwcm9wZXIgZGVjaXNpb24gdGFzaykuIFRoZXJlIGFyZQor
c2V2ZXJhbCB3YXlzIHRoYXQgdGhlIHNjcmlwdCBjYW4gYmUgc2NoZWR1bGVkIHRvIHJ1bgorCisx
LiBUaGUgb3V0cHV0IG9mIHdwdCB0ZXN0LWpvYnMgaW5jbHVkZXMgdGhlIGpvYiBuYW1lCisyLiBU
aGUgam9iIG5hbWUgaXMgaW5jbHVkZWQgaW4gYSBqb2IgZGVjbGFyYXRpb24gKHNlZSBiZWxvdykK
KzMuIFRoZSBzdHJpbmcgImFsbCIgaXMgaW5jbHVkZWQgaW4gdGhlIGpvYiBkZWNsYXJhdGlvbgor
NC4gVGhlIGpvYiBuYW1lIGlzIHNldCB0byAiYWxsIgorCitBIGpvYiBkZWNsYXJhdGlvbiBpcyBh
IGxpbmUgYXBwZWFyaW5nIGluIHRoZSBwdWxsIHJlcXVlc3QgYm9keSAoZm9yCitwdWxsIHJlcXVl
c3RzKSBvciBmaXJzdCBjb21taXQgbWVzc2FnZSAoZm9yIHB1c2hlcykgb2YgdGhlIGZvcm06CisK
K3RjLWpvYnM6IGpvYjEsam9iMixbLi4uXQorCitJbiBhZGRpdGlvbiwgdGhlcmUgYXJlIGEgbnVt
YmVyIG9mIGtleXdvcmQgYXJndW1lbnRzIHVzZWQgdG8gc2V0IG9wdGlvbnMgZm9yIHRoZQorZW52
aXJvbm1lbnQgaW4gd2hpY2ggdGhlIGpvYnMgcnVuLiBEb2N1bWVudGF0aW9uIGZvciB0aGVzZSBp
cyBpbiB0aGUgY29tbWFuZCBoZWxwLgorCitBcyB3ZWxsIGFzIHJ1bm5pbmcgdGhlIHNjcmlwdCwg
dGhlIHNjcmlwdCBzZXRzIHR3byBlbnZpcm9ubWVudCB2YXJpYWJsZXM7CitHSVRIVUJfQlJBTkNI
IHdoaWNoIGlzIHRoZSBicmFuY2ggdGhhdCB0aGUgY29tbWl0cyB3aWxsIG1lcmdlIGludG8gKGlm
IGl0J3MgYSBQUikKK29yIHRoZSBicmFuY2ggdGhhdCB0aGUgY29tbWl0cyBhcmUgb24gKGlmIGl0
J3MgYSBwdXNoKSwgYW5kIEdJVEhVQl9QVUxMX1JFUVVFU1QKK3doaWNoIGlzIHRoZSBzdHJpbmcg
ImZhbHNlIiBpZiB0aGUgZXZlbnQgdHJpZ2dlcmluZyB0aGlzIGpvYiB3YXNuJ3QgYSBwdWxsIHJl
cXVlc3QKK29yIHRoZSBwdWxsIHJlcXVlc3QgbnVtYmVyIGlmIGl0IHdhcy4gVGhlIHNlbWFudGlj
cyBvZiB0aGVzZSB2YXJpYWJsZXMgYXJlIGNob3NlbgordG8gbWF0Y2ggdGhlIGNvcnJlc3BvbmRp
bmcgVFJBVklTXyogdmFyaWFibGVzLgorCitOb3RlOiBmb3IgbG9jYWwgdGVzdGluZyBpbiB0aGUg
RG9ja2VyIGltYWdlIHRoZSBzY3JpcHQgb3VnaHQgdG8gc3RpbGwgd29yaywgYnV0CitmdWxsIGZ1
bmN0aW9uYWxpdHkgcmVxdWlyZXMgdGhhdCB0aGUgVEFTS19FVkVOVCBlbnZpcm9ubWVudCB2YXJp
YWJsZSBpcyBzZXQgdG8KK3RoZSBzZXJpYWxpemF0aW9uIG9mIGEgR2l0SHViIGV2ZW50IHBheWxv
YWQuCisiIiIKKworaW1wb3J0IGFyZ3BhcnNlCitpbXBvcnQganNvbgoraW1wb3J0IG9zCitpbXBv
cnQgc3VicHJvY2VzcworaW1wb3J0IHN5cworaW1wb3J0IHRlbXBmaWxlCitmcm9tIHNvY2tldCBp
bXBvcnQgZXJyb3IgYXMgU29ja2V0RXJyb3IgICMgTk9RQTogTjgxMgoraW1wb3J0IGVycm5vCit0
cnk6CisgICAgZnJvbSB1cmxsaWIyIGltcG9ydCB1cmxvcGVuCitleGNlcHQgSW1wb3J0RXJyb3I6
CisgICAgIyBQeXRob24gMyBjYXNlCisgICAgZnJvbSB1cmxsaWIucmVxdWVzdCBpbXBvcnQgdXJs
b3BlbgorCisKK3Jvb3QgPSBvcy5wYXRoLmFic3BhdGgoCisgICAgb3MucGF0aC5qb2luKG9zLnBh
dGguZGlybmFtZShfX2ZpbGVfXyksCisgICAgICAgICAgICAgICAgIG9zLnBhcmRpciwKKyAgICAg
ICAgICAgICAgICAgb3MucGFyZGlyKSkKKworCitkZWYgcnVuKGNtZCwgcmV0dXJuX3N0ZG91dD1G
YWxzZSwgKiprd2FyZ3MpOgorICAgIHByaW50KCIgIi5qb2luKGNtZCkpCisgICAgaWYgcmV0dXJu
X3N0ZG91dDoKKyAgICAgICAgZiA9IHN1YnByb2Nlc3MuY2hlY2tfb3V0cHV0CisgICAgZWxzZToK
KyAgICAgICAgZiA9IHN1YnByb2Nlc3MuY2hlY2tfY2FsbAorICAgIHJldHVybiBmKGNtZCwgKipr
d2FyZ3MpCisKKworZGVmIHN0YXJ0KGNtZCk6CisgICAgcHJpbnQoIiAiLmpvaW4oY21kKSkKKyAg
ICBzdWJwcm9jZXNzLlBvcGVuKGNtZCkKKworCitkZWYgZ2V0X3BhcnNlcigpOgorICAgIHAgPSBh
cmdwYXJzZS5Bcmd1bWVudFBhcnNlcigpCisgICAgcC5hZGRfYXJndW1lbnQoIi0tb29tLWtpbGxl
ciIsCisgICAgICAgICAgICAgICAgICAgYWN0aW9uPSJzdG9yZV90cnVlIiwKKyAgICAgICAgICAg
ICAgICAgICBkZWZhdWx0PUZhbHNlLAorICAgICAgICAgICAgICAgICAgIGhlbHA9IlJ1biB1c2Vy
c3BhY2UgT09NIGtpbGxlciIpCisgICAgcC5hZGRfYXJndW1lbnQoIi0taG9zdHMiLAorICAgICAg
ICAgICAgICAgICAgIGRlc3Q9Imhvc3RzX2ZpbGUiLAorICAgICAgICAgICAgICAgICAgIGFjdGlv
bj0ic3RvcmVfdHJ1ZSIsCisgICAgICAgICAgICAgICAgICAgZGVmYXVsdD1UcnVlLAorICAgICAg
ICAgICAgICAgICAgIGhlbHA9IlNldHVwIHdwdCBlbnRyaWVzIGluIGhvc3RzIGZpbGUiKQorICAg
IHAuYWRkX2FyZ3VtZW50KCItLW5vLWhvc3RzIiwKKyAgICAgICAgICAgICAgICAgICBkZXN0PSJo
b3N0c19maWxlIiwKKyAgICAgICAgICAgICAgICAgICBhY3Rpb249InN0b3JlX2ZhbHNlIiwKKyAg
ICAgICAgICAgICAgICAgICBoZWxwPSJEb24ndCBzZXR1cCB3cHQgZW50cmllcyBpbiBob3N0cyBm
aWxlIikKKyAgICBwLmFkZF9hcmd1bWVudCgiLS1icm93c2VyIiwKKyAgICAgICAgICAgICAgICAg
ICBhY3Rpb249ImFwcGVuZCIsCisgICAgICAgICAgICAgICAgICAgZGVmYXVsdD1bXSwKKyAgICAg
ICAgICAgICAgICAgICBoZWxwPSJCcm93c2VycyB0aGF0IHdpbGwgYmUgdXNlZCBpbiB0aGUgam9i
IikKKyAgICBwLmFkZF9hcmd1bWVudCgiLS1jaGFubmVsIiwKKyAgICAgICAgICAgICAgICAgICBk
ZWZhdWx0PU5vbmUsCisgICAgICAgICAgICAgICAgICAgY2hvaWNlcz1bImV4cGVyaW1lbnRhbCIs
ICJkZXYiLCAibmlnaHRseSIsICJiZXRhIiwgInN0YWJsZSJdLAorICAgICAgICAgICAgICAgICAg
IGhlbHA9IkNocm9tZSBicm93c2VyIGNoYW5uZWwiKQorICAgIHAuYWRkX2FyZ3VtZW50KCItLXh2
ZmIiLAorICAgICAgICAgICAgICAgICAgIGFjdGlvbj0ic3RvcmVfdHJ1ZSIsCisgICAgICAgICAg
ICAgICAgICAgaGVscD0iU3RhcnQgeHZmYiIpCisgICAgcC5hZGRfYXJndW1lbnQoIi0tY2hlY2tv
dXQiLAorICAgICAgICAgICAgICAgICAgIGhlbHA9IlJldmlzaW9uIHRvIGNoZWNrb3V0IGJlZm9y
ZSBzdGFydGluZyBqb2IiKQorICAgIHAuYWRkX2FyZ3VtZW50KCItLWluc3RhbGwtY2VydGlmaWNh
dGVzIiwgYWN0aW9uPSJzdG9yZV90cnVlIiwgZGVmYXVsdD1Ob25lLAorICAgICAgICAgICAgICAg
ICAgIGhlbHA9Ikluc3RhbGwgd2ViLXBsYXRmb3JtLnRlc3QgY2VydGlmaWNhdGVzIHRvIFVBIHN0
b3JlIikKKyAgICBwLmFkZF9hcmd1bWVudCgiLS1uby1pbnN0YWxsLWNlcnRpZmljYXRlcyIsIGFj
dGlvbj0ic3RvcmVfZmFsc2UiLCBkZWZhdWx0PU5vbmUsCisgICAgICAgICAgICAgICAgICAgaGVs
cD0iRG9uJ3QgaW5zdGFsbCB3ZWItcGxhdGZvcm0udGVzdCBjZXJ0aWZpY2F0ZXMgdG8gVUEgc3Rv
cmUiKQorICAgIHAuYWRkX2FyZ3VtZW50KCItLXJldiIsCisgICAgICAgICAgICAgICAgICAgaGVs
cD0iUmV2aXNpb24gdGhhdCB0aGUgdGFza19oZWFkIHJlZiBpcyBleHBlY3RlZCB0byBwb2ludCB0
byIpCisgICAgcC5hZGRfYXJndW1lbnQoInNjcmlwdCIsCisgICAgICAgICAgICAgICAgICAgaGVs
cD0iU2NyaXB0IHRvIHJ1biBmb3IgdGhlIGpvYiIpCisgICAgcC5hZGRfYXJndW1lbnQoInNjcmlw
dF9hcmdzIiwKKyAgICAgICAgICAgICAgICAgICBuYXJncz1hcmdwYXJzZS5SRU1BSU5ERVIsCisg
ICAgICAgICAgICAgICAgICAgaGVscD0iQWRkaXRpb25hbCBhcmd1bWVudHMgdG8gcGFzcyB0byB0
aGUgc2NyaXB0IikKKyAgICByZXR1cm4gcAorCisKK2RlZiBzdGFydF91c2Vyc3BhY2Vfb29tX2tp
bGxlcigpOgorICAgICMgU3RhcnQgdXNlcnNwYWNlIE9PTSBraWxsZXI6IGh0dHBzOi8vZ2l0aHVi
LmNvbS9yZmpha29iL2Vhcmx5b29tCisgICAgIyBJdCB3aWxsIHJlcG9ydCBtZW1vcnkgdXNhZ2Ug
ZXZlcnkgbWludXRlIGFuZCBwcmVmZXIgdG8ga2lsbCBicm93c2Vycy4KKyAgICBzdGFydChbInN1
ZG8iLCAiZWFybHlvb20iLCAiLXAiLCAiLXIiLCAiNjAiLCAiLS1wcmVmZXI9KGNocm9tZXxmaXJl
Zm94KSIsICItLWF2b2lkPXB5dGhvbiJdKQorCisKK2RlZiBtYWtlX2hvc3RzX2ZpbGUoKToKKyAg
ICBydW4oWyJzdWRvIiwgInNoIiwgIi1jIiwgIi4vd3B0IG1ha2UtaG9zdHMtZmlsZSA+PiAvZXRj
L2hvc3RzIl0pCisKKworZGVmIGNoZWNrb3V0X3JldmlzaW9uKHJldik6CisgICAgcnVuKFsiZ2l0
IiwgImNoZWNrb3V0IiwgIi0tcXVpZXQiLCByZXZdKQorCisKK2RlZiBpbnN0YWxsX2NlcnRpZmlj
YXRlcygpOgorICAgIHJ1bihbInN1ZG8iLCAiY3AiLCAidG9vbHMvY2VydHMvY2FjZXJ0LnBlbSIs
CisgICAgICAgICAiL3Vzci9sb2NhbC9zaGFyZS9jYS1jZXJ0aWZpY2F0ZXMvY2FjZXJ0LmNydCJd
KQorICAgIHJ1bihbInN1ZG8iLCAidXBkYXRlLWNhLWNlcnRpZmljYXRlcyJdKQorCisKK2RlZiBp
bnN0YWxsX2Nocm9tZShjaGFubmVsKToKKyAgICBpZiBjaGFubmVsIGluICgiZXhwZXJpbWVudGFs
IiwgImRldiIsICJuaWdodGx5Iik6CisgICAgICAgIGRlYl9hcmNoaXZlID0gImdvb2dsZS1jaHJv
bWUtdW5zdGFibGVfY3VycmVudF9hbWQ2NC5kZWIiCisgICAgZWxpZiBjaGFubmVsID09ICJiZXRh
IjoKKyAgICAgICAgZGViX2FyY2hpdmUgPSAiZ29vZ2xlLWNocm9tZS1iZXRhX2N1cnJlbnRfYW1k
NjQuZGViIgorICAgIGVsaWYgY2hhbm5lbCA9PSAic3RhYmxlIjoKKyAgICAgICAgZGViX2FyY2hp
dmUgPSAiZ29vZ2xlLWNocm9tZS1zdGFibGVfY3VycmVudF9hbWQ2NC5kZWIiCisgICAgZWxzZToK
KyAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigiVW5yZWNvZ25pemVkIHJlbGVhc2UgY2hhbm5lbDog
JXMiICUgY2hhbm5lbCkKKworICAgIGRlc3QgPSBvcy5wYXRoLmpvaW4oIi90bXAiLCBkZWJfYXJj
aGl2ZSkKKyAgICByZXNwID0gdXJsb3BlbigiaHR0cHM6Ly9kbC5nb29nbGUuY29tL2xpbnV4L2Rp
cmVjdC8lcyIgJSBkZWJfYXJjaGl2ZSkKKyAgICB3aXRoIG9wZW4oZGVzdCwgInciKSBhcyBmOgor
ICAgICAgICBmLndyaXRlKHJlc3AucmVhZCgpKQorCisgICAgcnVuKFsic3VkbyIsICJhcHQtZ2V0
IiwgIi1xcXkiLCAidXBkYXRlIl0pCisgICAgcnVuKFsic3VkbyIsICJnZGViaSIsICItcW4iLCAi
L3RtcC8lcyIgJSBkZWJfYXJjaGl2ZV0pCisKK2RlZiBpbnN0YWxsX3dlYmtpdGd0a19mcm9tX2Fw
dF9yZXBvc2l0b3J5KGNoYW5uZWwpOgorICAgICMgQ29uZmlndXJlIHdlYmtpdGd0ay5vcmcvZGVi
aWFuIHJlcG9zaXRvcnkgZm9yICRjaGFubmVsIGFuZCBwaW4gaXQgd2l0aCBtYXhpbXVtIHByaW9y
aXR5CisgICAgcnVuKFsic3VkbyIsICJhcHQta2V5IiwgImFkdiIsICItLWZldGNoLWtleXMiLCAi
aHR0cHM6Ly93ZWJraXRndGsub3JnL2RlYmlhbi9hcHQua2V5Il0pCisgICAgd2l0aCBvcGVuKCIv
dG1wL3dlYmtpdGd0ay5saXN0IiwgInciKSBhcyBmOgorICAgICAgICBmLndyaXRlKCJkZWIgW2Fy
Y2g9YW1kNjRdIGh0dHBzOi8vd2Via2l0Z3RrLm9yZy9hcHQgYmlvbmljLXdwdC13ZWJraXQtdXBk
YXRlcyAlc1xuIiAlIGNoYW5uZWwpCisgICAgcnVuKFsic3VkbyIsICJtdiIsICIvdG1wL3dlYmtp
dGd0ay5saXN0IiwgIi9ldGMvYXB0L3NvdXJjZXMubGlzdC5kLyJdKQorICAgIHdpdGggb3Blbigi
L3RtcC85OXdlYmtpdGd0ayIsICJ3IikgYXMgZjoKKyAgICAgICAgZi53cml0ZSgiUGFja2FnZTog
KlxuUGluOiBvcmlnaW4gd2Via2l0Z3RrLm9yZ1xuUGluLVByaW9yaXR5OiAxOTk5XG4iKQorICAg
IHJ1bihbInN1ZG8iLCAibXYiLCAiL3RtcC85OXdlYmtpdGd0ayIsICIvZXRjL2FwdC9wcmVmZXJl
bmNlcy5kLyJdKQorICAgICMgSW5zdGFsbCB3ZWJraXQyZ3RrIGZyb20gdGhlIHdlYmtpdGd0ay5v
cmcvYXB0IHJlcG9zaXRvcnkgZm9yICRjaGFubmVsCisgICAgcnVuKFsic3VkbyIsICJhcHQtZ2V0
IiwgIi1xcXkiLCAidXBkYXRlIl0pCisgICAgcnVuKFsic3VkbyIsICJhcHQtZ2V0IiwgIi1xcXki
LCAidXBncmFkZSJdKQorICAgIHJ1bihbInN1ZG8iLCAiYXB0LWdldCIsICItcXF5IiwgIi10Iiwg
ImJpb25pYy13cHQtd2Via2l0LXVwZGF0ZXMiLCAiaW5zdGFsbCIsICJ3ZWJraXQyZ3RrLWRyaXZl
ciJdKQorCisKKyMgRG93bmxvYWQgYW4gVVJMIGluIGNodW5rcyBhbmQgc2F2ZXMgaXQgdG8gYSBm
aWxlIGRlc2NyaXB0b3IgKHRydW5jYXRpbmcgaXQpCisjIEl0IGRvZXNuJ3QgY2xvc2UgdGhlIGRl
c2NyaXB0b3IsIGJ1dCBmbHVzaGVzIGl0IG9uIHN1Y2Nlc3MuCisjIEl0IHJldHJpZXMgdGhlIGRv
d25sb2FkIGluIGNhc2Ugb2YgRUNPTk5SRVNFVCB1cCB0byBtYXhfcmV0cmllcy4KK2RlZiBkb3du
bG9hZF91cmxfdG9fZGVzY3JpcHRvcihmZCwgdXJsLCBtYXhfcmV0cmllcz0zKToKKyAgICBkb3du
bG9hZF9zdWNjZWVkID0gRmFsc2UKKyAgICBpZiBtYXhfcmV0cmllcyA8IDA6CisgICAgICAgIG1h
eF9yZXRyaWVzID0gMAorICAgIGZvciBjdXJyZW50X3JldHJ5IGluIHJhbmdlKG1heF9yZXRyaWVz
KzEpOgorICAgICAgICB0cnk6CisgICAgICAgICAgICByZXNwID0gdXJsb3Blbih1cmwpCisgICAg
ICAgICAgICAjIFdlIG1heSBjb21lIGhlcmUgaW4gYSByZXRyeSwgZW5zdXJlIHRvIHRydW5jYXRl
IGZkIGJlZm9yZSBzdGFydCB3cml0aW5nLgorICAgICAgICAgICAgZmQuc2VlaygwKQorICAgICAg
ICAgICAgZmQudHJ1bmNhdGUoMCkKKyAgICAgICAgICAgIHdoaWxlIFRydWU6CisgICAgICAgICAg
ICAgICAgY2h1bmsgPSByZXNwLnJlYWQoMTYqMTAyNCkKKyAgICAgICAgICAgICAgICBpZiBub3Qg
Y2h1bms6CisgICAgICAgICAgICAgICAgICAgIGJyZWFrICAjIERvd25sb2FkIGZpbmlzaGVkCisg
ICAgICAgICAgICAgICAgZmQud3JpdGUoY2h1bmspCisgICAgICAgICAgICBmZC5mbHVzaCgpCisg
ICAgICAgICAgICBkb3dubG9hZF9zdWNjZWVkID0gVHJ1ZQorICAgICAgICAgICAgYnJlYWsgICMg
U3VjZXNzCisgICAgICAgIGV4Y2VwdCBTb2NrZXRFcnJvciBhcyBlOgorICAgICAgICAgICAgaWYg
ZS5lcnJubyAhPSBlcnJuby5FQ09OTlJFU0VUOgorICAgICAgICAgICAgICAgIHJhaXNlICAjIFVu
a25vd24gZXJyb3IKKyAgICAgICAgICAgIGlmIGN1cnJlbnRfcmV0cnkgPCBtYXhfcmV0cmllczoK
KyAgICAgICAgICAgICAgICBwcmludCgiRVJST1I6IENvbm5lY3Rpb24gcmVzZXQgYnkgcGVlci4g
UmV0cnlpbmcgLi4uIikKKyAgICAgICAgICAgICAgICBjb250aW51ZSAgIyBSZXRyeQorICAgIHJl
dHVybiBkb3dubG9hZF9zdWNjZWVkCisKKworZGVmIGluc3RhbGxfd2Via2l0Z3RrX2Zyb21fdGFy
YmFsbF9idW5kbGUoY2hhbm5lbCk6CisgICAgd2l0aCB0ZW1wZmlsZS5OYW1lZFRlbXBvcmFyeUZp
bGUoc3VmZml4PSIudGFyLnh6IikgYXMgdGVtcF90YXJiYWxsOgorICAgICAgICBkb3dubG9hZF91
cmwgPSAiaHR0cHM6Ly93ZWJraXRndGsub3JnL2J1aWx0LXByb2R1Y3RzL25pZ2h0bHkvd2Via2l0
Z3RrLW5pZ2h0bHktYnVpbGQtbGFzdC50YXIueHoiCisgICAgICAgIGlmIG5vdCBkb3dubG9hZF91
cmxfdG9fZGVzY3JpcHRvcih0ZW1wX3RhcmJhbGwsIGRvd25sb2FkX3VybCk6CisgICAgICAgICAg
ICByYWlzZSBSdW50aW1lRXJyb3IoIkNhbid0IGRvd25sb2FkICVzLiBBYm9ydGluZyIgJSBkb3du
bG9hZF91cmwpCisgICAgICAgIHJ1bihbInN1ZG8iLCAidGFyIiwgInhmYSIsIHRlbXBfdGFyYmFs
bC5uYW1lLCAiLUMiLCAiLyJdKQorICAgICMgSW5zdGFsbCBkZXBlbmRlbmNpZXMKKyAgICBydW4o
WyJzdWRvIiwgImFwdC1nZXQiLCAiLXFxeSIsICJ1cGRhdGUiXSkKKyAgICBydW4oWyJzdWRvIiwg
Ii9vcHQvd2Via2l0Z3RrL25pZ2h0bHkvaW5zdGFsbC1kZXBlbmRlbmNpZXMiXSkKKworCitkZWYg
aW5zdGFsbF93ZWJraXRndGsoY2hhbm5lbCk6CisgICAgaWYgY2hhbm5lbCBpbiAoImV4cGVyaW1l
bnRhbCIsICJkZXYiLCAibmlnaHRseSIpOgorICAgICAgICBpbnN0YWxsX3dlYmtpdGd0a19mcm9t
X3RhcmJhbGxfYnVuZGxlKGNoYW5uZWwpCisgICAgZWxpZiBjaGFubmVsIGluICgiYmV0YSIsICJz
dGFibGUiKToKKyAgICAgICAgaW5zdGFsbF93ZWJraXRndGtfZnJvbV9hcHRfcmVwb3NpdG9yeShj
aGFubmVsKQorICAgIGVsc2U6CisgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoIlVucmVjb2duaXpl
ZCByZWxlYXNlIGNoYW5uZWw6ICVzIiAlIGNoYW5uZWwpCisKK2RlZiBzdGFydF94dmZiKCk6Cisg
ICAgc3RhcnQoWyJzdWRvIiwgIlh2ZmIiLCBvcy5lbnZpcm9uWyJESVNQTEFZIl0sICItc2NyZWVu
IiwgIjAiLAorICAgICAgICAgICAiJXN4JXN4JXMiICUgKG9zLmVudmlyb25bIlNDUkVFTl9XSURU
SCJdLAorICAgICAgICAgICAgICAgICAgICAgICAgIG9zLmVudmlyb25bIlNDUkVFTl9IRUlHSFQi
XSwKKyAgICAgICAgICAgICAgICAgICAgICAgICBvcy5lbnZpcm9uWyJTQ1JFRU5fREVQVEgiXSld
KQorICAgIHN0YXJ0KFsic3VkbyIsICJmbHV4Ym94IiwgIi1kaXNwbGF5Iiwgb3MuZW52aXJvblsi
RElTUExBWSJdXSkKKworCitkZWYgc2V0X3ZhcmlhYmxlcyhldmVudCk6CisgICAgIyBTZXQgc29t
ZSB2YXJpYWJsZXMgdGhhdCB3ZSB1c2UgdG8gZ2V0IHRoZSBjb21taXRzIG9uIHRoZSBjdXJyZW50
IGJyYW5jaAorICAgIHJlZl9wcmVmaXggPSAicmVmcy9oZWFkcy8iCisgICAgcHVsbF9yZXF1ZXN0
ID0gImZhbHNlIgorICAgIGJyYW5jaCA9IE5vbmUKKyAgICBpZiAicHVsbF9yZXF1ZXN0IiBpbiBl
dmVudDoKKyAgICAgICAgcHVsbF9yZXF1ZXN0ID0gc3RyKGV2ZW50WyJwdWxsX3JlcXVlc3QiXVsi
bnVtYmVyIl0pCisgICAgICAgICMgTm90ZSB0aGF0IHRoaXMgaXMgdGhlIGJyYW5jaCB0aGF0IGEg
UFIgd2lsbCBtZXJnZSB0bywKKyAgICAgICAgIyBub3QgdGhlIGJyYW5jaCBuYW1lIGZvciB0aGUg
UFIKKyAgICAgICAgYnJhbmNoID0gZXZlbnRbInB1bGxfcmVxdWVzdCJdWyJiYXNlIl1bInJlZiJd
CisgICAgZWxpZiAicmVmIiBpbiBldmVudDoKKyAgICAgICAgYnJhbmNoID0gZXZlbnRbInJlZiJd
CisgICAgICAgIGlmIGJyYW5jaC5zdGFydHN3aXRoKHJlZl9wcmVmaXgpOgorICAgICAgICAgICAg
YnJhbmNoID0gYnJhbmNoW2xlbihyZWZfcHJlZml4KTpdCisKKyAgICBvcy5lbnZpcm9uWyJHSVRI
VUJfUFVMTF9SRVFVRVNUIl0gPSBwdWxsX3JlcXVlc3QKKyAgICBpZiBicmFuY2g6CisgICAgICAg
IG9zLmVudmlyb25bIkdJVEhVQl9CUkFOQ0giXSA9IGJyYW5jaAorCisKK2RlZiBzZXR1cF9lbnZp
cm9ubWVudChhcmdzKToKKyAgICBpZiBhcmdzLmhvc3RzX2ZpbGU6CisgICAgICAgIG1ha2VfaG9z
dHNfZmlsZSgpCisKKyAgICBpZiBhcmdzLmluc3RhbGxfY2VydGlmaWNhdGVzOgorICAgICAgICBp
bnN0YWxsX2NlcnRpZmljYXRlcygpCisKKyAgICBpZiAiY2hyb21lIiBpbiBhcmdzLmJyb3dzZXI6
CisgICAgICAgIGFzc2VydCBhcmdzLmNoYW5uZWwgaXMgbm90IE5vbmUKKyAgICAgICAgaW5zdGFs
bF9jaHJvbWUoYXJncy5jaGFubmVsKQorICAgIGVsaWYgIndlYmtpdGd0a19taW5pYnJvd3NlciIg
aW4gYXJncy5icm93c2VyOgorICAgICAgICBhc3NlcnQgYXJncy5jaGFubmVsIGlzIG5vdCBOb25l
CisgICAgICAgIGluc3RhbGxfd2Via2l0Z3RrKGFyZ3MuY2hhbm5lbCkKKworICAgIGlmIGFyZ3Mu
eHZmYjoKKyAgICAgICAgc3RhcnRfeHZmYigpCisKKyAgICBpZiBhcmdzLm9vbV9raWxsZXI6Cisg
ICAgICAgIHN0YXJ0X3VzZXJzcGFjZV9vb21fa2lsbGVyKCkKKworICAgIGlmIGFyZ3MuY2hlY2tv
dXQ6CisgICAgICAgIGNoZWNrb3V0X3JldmlzaW9uKGFyZ3MuY2hlY2tvdXQpCisKKworZGVmIHNl
dHVwX3JlcG9zaXRvcnkoKToKKyAgICBpZiBvcy5lbnZpcm9uLmdldCgiR0lUSFVCX1BVTExfUkVR
VUVTVCIsICJmYWxzZSIpICE9ICJmYWxzZSI6CisgICAgICAgIHBhcmVudHMgPSBydW4oWyJnaXQi
LCAic2hvdyIsICItLW5vLXBhdGNoIiwgIi0tZm9ybWF0PSVQIiwgInRhc2tfaGVhZCJdLCByZXR1
cm5fc3Rkb3V0PVRydWUpLnN0cmlwKCkuc3BsaXQoKQorICAgICAgICBpZiBsZW4ocGFyZW50cykg
PT0gMjoKKyAgICAgICAgICAgIGJhc2VfaGVhZCA9IHBhcmVudHNbMF0KKyAgICAgICAgICAgIHBy
X2hlYWQgPSBwYXJlbnRzWzFdCisKKyAgICAgICAgICAgIHJ1bihbImdpdCIsICJicmFuY2giLCAi
YmFzZV9oZWFkIiwgYmFzZV9oZWFkXSkKKyAgICAgICAgICAgIHJ1bihbImdpdCIsICJicmFuY2gi
LCAicHJfaGVhZCIsIHByX2hlYWRdKQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgcHJpbnQo
IkVSUk9SOiBQdWxsIHJlcXVlc3QgSEVBRCB3YXNuJ3QgYSAyLXBhcmVudCBtZXJnZSBjb21taXQ7
ICIKKyAgICAgICAgICAgICAgICAgICJleHBlY3RlZCB0byB0ZXN0IHRoZSBtZXJnZSBvZiBQUiBp
bnRvIHRoZSBiYXNlIikKKyAgICAgICAgICAgIGNvbW1pdCA9IHJ1bihbImdpdCIsICJzaG93Iiwg
Ii0tbm8tcGF0Y2giLCAiLS1mb3JtYXQ9JUgiLCAidGFza19oZWFkIl0sIHJldHVybl9zdGRvdXQ9
VHJ1ZSkuc3RyaXAoKQorICAgICAgICAgICAgcHJpbnQoIkhFQUQ6ICVzIiAlIGNvbW1pdCkKKyAg
ICAgICAgICAgIHByaW50KCJQYXJlbnRzOiAlcyIgJSAiLCAiLmpvaW4ocGFyZW50cykpCisgICAg
ICAgICAgICBzeXMuZXhpdCgxKQorCisgICAgYnJhbmNoID0gb3MuZW52aXJvbi5nZXQoIkdJVEhV
Ql9CUkFOQ0giKQorICAgIGlmIGJyYW5jaDoKKyAgICAgICAgIyBFbnN1cmUgdGhhdCB0aGUgcmVt
b3RlIGJhc2UgYnJhbmNoIGV4aXN0cworICAgICAgICAjIFRPRE86IG1vdmUgdGhpcyBzb21ld2hl
cmUgZWFybGllciBpbiB0aGUgdGFzaworICAgICAgICBydW4oWyJnaXQiLCAiZmV0Y2giLCAiLS1x
dWlldCIsICJvcmlnaW4iLCAiJXM6JXMiICUgKGJyYW5jaCwgYnJhbmNoKV0pCisKKworZGVmIGZl
dGNoX2V2ZW50X2RhdGEoKToKKyAgICB0cnk6CisgICAgICAgIHRhc2tfaWQgPSBvcy5lbnZpcm9u
WyJUQVNLX0lEIl0KKyAgICBleGNlcHQgS2V5RXJyb3I6CisgICAgICAgIHByaW50KCJXQVJOSU5H
OiBNaXNzaW5nIFRBU0tfSUQgZW52aXJvbm1lbnQgdmFyaWFibGUiKQorICAgICAgICAjIEZvciBl
eGFtcGxlIHVuZGVyIGxvY2FsIHRlc3RpbmcKKyAgICAgICAgcmV0dXJuIE5vbmUKKworICAgIHJv
b3RfdXJsID0gb3MuZW52aXJvblsnVEFTS0NMVVNURVJfUk9PVF9VUkwnXQorICAgIGlmIHJvb3Rf
dXJsID09ICdodHRwczovL3Rhc2tjbHVzdGVyLm5ldCc6CisgICAgICAgIHF1ZXVlX2Jhc2UgPSAi
aHR0cHM6Ly9xdWV1ZS50YXNrY2x1c3Rlci5uZXQvdjEvdGFzayIKKyAgICBlbHNlOgorICAgICAg
ICBxdWV1ZV9iYXNlID0gcm9vdF91cmwgKyAiL2FwaS9xdWV1ZS92MS90YXNrIgorCisKKyAgICBy
ZXNwID0gdXJsb3BlbigiJXMvJXMiICUgKHF1ZXVlX2Jhc2UsIHRhc2tfaWQpKQorCisgICAgdGFz
a19kYXRhID0ganNvbi5sb2FkKHJlc3ApCisgICAgZXZlbnRfZGF0YSA9IHRhc2tfZGF0YS5nZXQo
ImV4dHJhIiwge30pLmdldCgiZ2l0aHViX2V2ZW50IikKKyAgICBpZiBldmVudF9kYXRhIGlzIG5v
dCBOb25lOgorICAgICAgICByZXR1cm4ganNvbi5sb2FkcyhldmVudF9kYXRhKQorCisKK2RlZiBp
bmNsdWRlX2pvYihqb2IpOgorICAgICMgT25seSBmb3Igc3VwcG9ydGluZyBwcmUgZGVjaXNpb24t
dGFzayBQUnMKKyAgICAjIFNwZWNpYWwgY2FzZSB0aGluZ3MgdGhhdCB1bmNvbmRpdGlvbmFsbHkg
cnVuIG9uIHB1c2hlcywKKyAgICAjIGFzc3VtaW5nIGEgaGlnaGVyIGxheWVyIGlzIGZpbHRlcmlu
ZyB0aGUgcmVxdWlyZWQgbGlzdCBvZiBicmFuY2hlcworICAgIGlmICJHSVRIVUJfUFVMTF9SRVFV
RVNUIiBub3QgaW4gb3MuZW52aXJvbjoKKyAgICAgICAgcmV0dXJuIFRydWUKKworICAgIGlmIChv
cy5lbnZpcm9uWyJHSVRIVUJfUFVMTF9SRVFVRVNUIl0gPT0gImZhbHNlIiBhbmQKKyAgICAgICAg
am9iID09ICJydW4tYWxsIik6CisgICAgICAgIHJldHVybiBUcnVlCisKKyAgICBqb2JzX3N0ciA9
IHJ1bihbb3MucGF0aC5qb2luKHJvb3QsICJ3cHQiKSwKKyAgICAgICAgICAgICAgICAgICAgInRl
c3Qtam9icyJdLCByZXR1cm5fc3Rkb3V0PVRydWUpCisgICAgcHJpbnQoam9ic19zdHIpCisgICAg
cmV0dXJuIGpvYiBpbiBzZXQoam9ic19zdHIuc3BsaXRsaW5lcygpKQorCisKK2RlZiBtYWluKCk6
CisgICAgYXJncyA9IGdldF9wYXJzZXIoKS5wYXJzZV9hcmdzKCkKKworICAgIGlmIGFyZ3MucmV2
IGlzIG5vdCBOb25lOgorICAgICAgICB0YXNrX2hlYWQgPSBydW4oWyJnaXQiLCAicmV2LXBhcnNl
IiwgInRhc2tfaGVhZCJdLCByZXR1cm5fc3Rkb3V0PVRydWUpLnN0cmlwKCkKKyAgICAgICAgaWYg
dGFza19oZWFkICE9IGFyZ3MucmV2OgorICAgICAgICAgICAgcHJpbnQoIkNSSVRJQ0FMOiB0YXNr
X2hlYWQgcG9pbnRzIGF0ICVzLCBleHBlY3RlZCAlcy4gIgorICAgICAgICAgICAgICAgICAgIlRo
aXMgbWF5IGJlIGJlY2F1c2UgdGhlIGJyYW5jaCB3YXMgdXBkYXRlZCIgJSAodGFza19oZWFkLCBh
cmdzLnJldikpCisgICAgICAgICAgICBzeXMuZXhpdCgxKQorCisgICAgaWYgIlRBU0tfRVZFTlQi
IGluIG9zLmVudmlyb246CisgICAgICAgIGV2ZW50ID0ganNvbi5sb2Fkcyhvcy5lbnZpcm9uWyJU
QVNLX0VWRU5UIl0pCisgICAgZWxzZToKKyAgICAgICAgZXZlbnQgPSBmZXRjaF9ldmVudF9kYXRh
KCkKKworICAgIGlmIGV2ZW50OgorICAgICAgICBzZXRfdmFyaWFibGVzKGV2ZW50KQorCisgICAg
c2V0dXBfcmVwb3NpdG9yeSgpCisKKyAgICAjIEhhY2sgZm9yIGJhY2t3YXJkcyBjb21wYXRpYmls
aXR5CisgICAgaWYgYXJncy5zY3JpcHQgaW4gWyJydW4tYWxsIiwgImxpbnQiLCAidXBkYXRlX2J1
aWx0IiwgInRvb2xzX3VuaXR0ZXN0IiwKKyAgICAgICAgICAgICAgICAgICAgICAgIndwdF9pbnRl
Z3JhdGlvbiIsICJyZXNvdXJjZXNfdW5pdHRlc3QiLAorICAgICAgICAgICAgICAgICAgICAgICAi
d3B0cnVubmVyX2luZnJhc3RydWN0dXJlIiwgInN0YWJpbGl0eSIsICJhZmZlY3RlZF90ZXN0cyJd
OgorICAgICAgICBqb2IgPSBhcmdzLnNjcmlwdAorICAgICAgICBpZiBub3QgaW5jbHVkZV9qb2Io
am9iKToKKyAgICAgICAgICAgIHJldHVybgorICAgICAgICBhcmdzLnNjcmlwdCA9IGFyZ3Muc2Ny
aXB0X2FyZ3NbMF0KKyAgICAgICAgYXJncy5zY3JpcHRfYXJncyA9IGFyZ3Muc2NyaXB0X2FyZ3Nb
MTpdCisKKyAgICAjIFJ1biB0aGUgam9iCisgICAgc2V0dXBfZW52aXJvbm1lbnQoYXJncykKKyAg
ICBvcy5jaGRpcihyb290KQorICAgIGNtZCA9IFthcmdzLnNjcmlwdF0gKyBhcmdzLnNjcmlwdF9h
cmdzCisgICAgcHJpbnQoIiAiLmpvaW4oY21kKSkKKyAgICBzeXMuZXhpdChzdWJwcm9jZXNzLmNh
bGwoY21kKSkKKworCitpZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgorICAgIG1haW4oKQpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy9jaS90YWdfbWFzdGVyLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy9jaS90YWdfbWFzdGVyLnB5CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCBmMDQ5NjcxYzMxM2IxODIwMDIzMmYyN2QxYWJjNzU3ODlhMmU2MTlkLi4wMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvY2kvdGFnX21hc3Rlci5weQorKysgL2Rldi9u
dWxsCkBAIC0xLDEwMSArMCwwIEBACi1pbXBvcnQgYmFzZTY0Ci1pbXBvcnQganNvbgotaW1wb3J0
IGxvZ2dpbmcKLWltcG9ydCBvcwotaW1wb3J0IHN5cwotaW1wb3J0IHVybGxpYjIKLQotaGVyZSA9
IG9zLnBhdGguYWJzcGF0aChvcy5wYXRoLmRpcm5hbWUoX19maWxlX18pKQotd3B0X3Jvb3QgPSBv
cy5wYXRoLmFic3BhdGgob3MucGF0aC5qb2luKGhlcmUsIG9zLnBhcmRpciwgb3MucGFyZGlyKSkK
LQotaWYgbm90KHdwdF9yb290IGluIHN5cy5wYXRoKToKLSAgICBzeXMucGF0aC5hcHBlbmQod3B0
X3Jvb3QpCi0KLWZyb20gdG9vbHMud3B0LnRlc3RmaWxlcyBpbXBvcnQgZ2V0X2dpdF9jbWQKLQot
bG9nZ2luZy5iYXNpY0NvbmZpZyhsZXZlbD1sb2dnaW5nLklORk8pCi1sb2dnZXIgPSBsb2dnaW5n
LmdldExvZ2dlcihfX25hbWVfXykKLQotCi1kZWYgZ2V0X3ByKHJlcG8sIG93bmVyLCBzaGEpOgot
ICAgIHVybCA9ICgiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9zZWFyY2gvaXNzdWVzP3E9dHlwZTpw
citpczptZXJnZWQrcmVwbzolcy8lcytzaGE6JXMiICUKLSAgICAgICAgICAgKHJlcG8sIG93bmVy
LCBzaGEpKQotICAgIHRyeToKLSAgICAgICAgcmVzcCA9IHVybGxpYjIudXJsb3Blbih1cmwpCi0g
ICAgICAgIGJvZHkgPSByZXNwLnJlYWQoKQotICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZToKLSAg
ICAgICAgbG9nZ2VyLmVycm9yKGUpCi0gICAgICAgIHJldHVybiBOb25lCi0KLSAgICBpZiByZXNw
LmNvZGUgIT0gMjAwOgotICAgICAgICBsb2dnZXIuZXJyb3IoIkdvdCBIVFRQIHN0YXR1cyAlcy4g
UmVzcG9uc2U6IiAlIHJlc3AuY29kZSkKLSAgICAgICAgbG9nZ2VyLmVycm9yKGJvZHkpCi0gICAg
ICAgIHJldHVybiBOb25lCi0KLSAgICB0cnk6Ci0gICAgICAgIGRhdGEgPSBqc29uLmxvYWRzKGJv
ZHkpCi0gICAgZXhjZXB0IFZhbHVlRXJyb3I6Ci0gICAgICAgIGxvZ2dlci5lcnJvcigiRmFpbGVk
IHRvIHJlYWQgcmVzcG9uc2UgYXMgSlNPTjoiKQotICAgICAgICBsb2dnZXIuZXJyb3IoYm9keSkK
LSAgICAgICAgcmV0dXJuIE5vbmUKLQotICAgIGl0ZW1zID0gZGF0YVsiaXRlbXMiXQotICAgIGlm
IGxlbihpdGVtcykgPT0gMDoKLSAgICAgICAgbG9nZ2VyLmVycm9yKCJObyBQUiBmb3VuZCBmb3Ig
JXMiICUgc2hhKQotICAgICAgICByZXR1cm4gTm9uZQotICAgIGlmIGxlbihpdGVtcykgPiAxOgot
ICAgICAgICBsb2dnZXIud2FybmluZygiRm91bmQgbXVsdGlwbGUgUFJzIGZvciAlcyIgJSBzaGEp
Ci0KLSAgICBwciA9IGl0ZW1zWzBdCi0KLSAgICByZXR1cm4gcHJbIm51bWJlciJdCi0KLQotZGVm
IHRhZyhyZXBvLCBvd25lciwgc2hhLCB0YWcpOgotICAgIGRhdGEgPSBqc29uLmR1bXBzKHsicmVm
IjogInJlZnMvdGFncy8lcyIgJSB0YWcsCi0gICAgICAgICAgICAgICAgICAgICAgICJzaGEiOiBz
aGF9KQotICAgIHRyeToKLSAgICAgICAgdXJsID0gImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVw
b3MvJXMvJXMvZ2l0L3JlZnMiICUgKHJlcG8sIG93bmVyKQotICAgICAgICByZXEgPSB1cmxsaWIy
LlJlcXVlc3QodXJsLCBkYXRhPWRhdGEpCi0KLSAgICAgICAgYmFzZTY0c3RyaW5nID0gYmFzZTY0
LmI2NGVuY29kZSgnJXMnICUgKG9zLmVudmlyb25bIkdIX1RPS0VOIl0pKQotICAgICAgICByZXEu
YWRkX2hlYWRlcigiQXV0aG9yaXphdGlvbiIsICJCYXNpYyAlcyIgJSBiYXNlNjRzdHJpbmcpCi0K
LSAgICAgICAgb3BlbmVyID0gdXJsbGliMi5idWlsZF9vcGVuZXIodXJsbGliMi5IVFRQU0hhbmRs
ZXIoKSkKLQotICAgICAgICByZXNwID0gb3BlbmVyLm9wZW4ocmVxKQotICAgIGV4Y2VwdCBFeGNl
cHRpb24gYXMgZToKLSAgICAgICAgbG9nZ2VyLmVycm9yKCJUYWcgY3JlYXRpb24gZmFpbGVkOlxu
JXMiICUgZSkKLSAgICAgICAgcmV0dXJuIEZhbHNlCi0KLSAgICBpZiByZXNwLmNvZGUgIT0gMjAx
OgotICAgICAgICBsb2dnZXIuZXJyb3IoIkdvdCBIVFRQIHN0YXR1cyAlcy4gUmVzcG9uc2U6IiAl
IHJlc3AuY29kZSkKLSAgICAgICAgbG9nZ2VyLmVycm9yKHJlc3AucmVhZCgpKQotICAgICAgICBy
ZXR1cm4gRmFsc2UKLQotICAgIGxvZ2dlci5pbmZvKCJUYWdnZWQgJXMgYXMgJXMiICUgKHNoYSwg
dGFnKSkKLSAgICByZXR1cm4gVHJ1ZQotCi0KLWRlZiBtYWluKCk6Ci0gICAgb3duZXIsIHJlcG8g
PSBvcy5lbnZpcm9uWyJUUkFWSVNfUkVQT19TTFVHIl0uc3BsaXQoIi8iLCAxKQotICAgIGlmIG9z
LmVudmlyb25bIlRSQVZJU19QVUxMX1JFUVVFU1QiXSAhPSAiZmFsc2UiOgotICAgICAgICBsb2dn
ZXIuaW5mbygiTm90IHRhZ2dpbmcgZm9yIFBSIikKLSAgICAgICAgcmV0dXJuCi0gICAgaWYgb3Mu
ZW52aXJvblsiVFJBVklTX0JSQU5DSCJdICE9ICJtYXN0ZXIiOgotICAgICAgICBsb2dnZXIuaW5m
bygiTm90IHRhZ2dpbmcgZm9yIG5vbi1tYXN0ZXIgYnJhbmNoIikKLSAgICAgICAgcmV0dXJuCi0K
LSAgICBnaXQgPSBnZXRfZ2l0X2NtZCh3cHRfcm9vdCkKLSAgICBoZWFkX3JldiA9IGdpdCgicmV2
LXBhcnNlIiwgIkhFQUQiKQotCi0gICAgcHIgPSBnZXRfcHIob3duZXIsIHJlcG8sIGhlYWRfcmV2
KQotICAgIGlmIHByIGlzIE5vbmU6Ci0gICAgICAgIHN5cy5leGl0KDEpCi0gICAgdGFnZ2VkID0g
dGFnKG93bmVyLCByZXBvLCBoZWFkX3JldiwgIm1lcmdlX3ByXyVzIiAlIHByKQotICAgIGlmIG5v
dCB0YWdnZWQ6Ci0gICAgICAgIHN5cy5leGl0KDEpCi0KLQotaWYgX19uYW1lX18gPT0gIl9fbWFp
bl9fIjoKLSAgICBtYWluKCkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvY2kvdGFza2NsdXN0ZXItcnVuLnB5IGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9jaS90YXNrY2x1c3Rlci1y
dW4ucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uOGE2MDAxMmQwOWI0ZDViZTk4NDVjZjRhYjc0ZTVmODdiZjRiNThj
ZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvY2kvdGFza2NsdXN0ZXItcnVuLnB5CkBAIC0wLDAgKzEsOTUgQEAKKyMh
L3Vzci9iaW4vZW52IHB5dGhvbgorCitpbXBvcnQgYXJncGFyc2UKK2ltcG9ydCBnemlwCitpbXBv
cnQgbG9nZ2luZworaW1wb3J0IG9zCitpbXBvcnQgc2h1dGlsCitpbXBvcnQgc3VicHJvY2Vzcwor
aW1wb3J0IHN5cworCiticm93c2VyX3NwZWNpZmljX2FyZ3MgPSB7CisgICAgImZpcmVmb3giOiBb
Ii0taW5zdGFsbC1icm93c2VyIl0KK30KKworCitkZWYgZmluZF93cHRyZXBvcnQoYXJncyk6Cisg
ICAgcGFyc2VyID0gYXJncGFyc2UuQXJndW1lbnRQYXJzZXIoKQorICAgIHBhcnNlci5hZGRfYXJn
dW1lbnQoJy0tbG9nLXdwdHJlcG9ydCcsIGFjdGlvbj0nc3RvcmUnKQorICAgIHJldHVybiBwYXJz
ZXIucGFyc2Vfa25vd25fYXJncyhhcmdzKVswXS5sb2dfd3B0cmVwb3J0CisKKworZGVmIGZpbmRf
d3B0c2NyZWVuc2hvdChhcmdzKToKKyAgICBwYXJzZXIgPSBhcmdwYXJzZS5Bcmd1bWVudFBhcnNl
cigpCisgICAgcGFyc2VyLmFkZF9hcmd1bWVudCgnLS1sb2ctd3B0c2NyZWVuc2hvdCcsIGFjdGlv
bj0nc3RvcmUnKQorICAgIHJldHVybiBwYXJzZXIucGFyc2Vfa25vd25fYXJncyhhcmdzKVswXS5s
b2dfd3B0c2NyZWVuc2hvdAorCisKK2RlZiBnemlwX2ZpbGUoZmlsZW5hbWUsIGRlbGV0ZV9vcmln
aW5hbD1UcnVlKToKKyAgICB3aXRoIG9wZW4oZmlsZW5hbWUsICdyYicpIGFzIGZfaW46CisgICAg
ICAgIHdpdGggZ3ppcC5vcGVuKCclcy5neicgJSBmaWxlbmFtZSwgJ3diJykgYXMgZl9vdXQ6Cisg
ICAgICAgICAgICBzaHV0aWwuY29weWZpbGVvYmooZl9pbiwgZl9vdXQpCisgICAgaWYgZGVsZXRl
X29yaWdpbmFsOgorICAgICAgICBvcy51bmxpbmsoZmlsZW5hbWUpCisKKworZGVmIG1haW4ocHJv
ZHVjdCwgY29tbWl0X3JhbmdlLCB3cHRfYXJncyk6CisgICAgIiIiSW52b2tlIHRoZSBgd3B0IHJ1
bmAgY29tbWFuZCBhY2NvcmRpbmcgdG8gdGhlIG5lZWRzIG9mIHRoZSBUYXNrY2x1c3RlcgorICAg
IGNvbnRpbnVvdXMgaW50ZWdyYXRpb24gc2VydmljZS4iIiIKKworICAgIGxvZ2dlciA9IGxvZ2dp
bmcuZ2V0TG9nZ2VyKCJ0Yy1ydW4iKQorICAgIGxvZ2dlci5zZXRMZXZlbChsb2dnaW5nLklORk8p
CisgICAgaGFuZGxlciA9IGxvZ2dpbmcuU3RyZWFtSGFuZGxlcigpCisgICAgaGFuZGxlci5zZXRG
b3JtYXR0ZXIoCisgICAgICAgIGxvZ2dpbmcuRm9ybWF0dGVyKCIlKGFzY3RpbWUpcyAtICUobmFt
ZSlzIC0gJShsZXZlbG5hbWUpcyAtICUobWVzc2FnZSlzIikKKyAgICApCisgICAgbG9nZ2VyLmFk
ZEhhbmRsZXIoaGFuZGxlcikKKworICAgIHN1YnByb2Nlc3MuY2FsbChbJ3B5dGhvbicsICcuL3dw
dCcsICdtYW5pZmVzdC1kb3dubG9hZCddKQorCisgICAgaWYgY29tbWl0X3JhbmdlOgorICAgICAg
ICBsb2dnZXIuaW5mbygKKyAgICAgICAgICAgICJSdW5uaW5nIHRlc3RzIGFmZmVjdGVkIGluIHJh
bmdlICclcycuLi4iICUgY29tbWl0X3JhbmdlCisgICAgICAgICkKKyAgICAgICAgd3B0X2FyZ3Mg
Kz0gWyctLWFmZmVjdGVkJywgY29tbWl0X3JhbmdlXQorICAgIGVsc2U6CisgICAgICAgIGxvZ2dl
ci5pbmZvKCJSdW5uaW5nIGFsbCB0ZXN0cyIpCisKKyAgICB3cHRfYXJncyArPSBbCisgICAgICAg
ICItLWxvZy1tYWNoLWxldmVsPWluZm8iLAorICAgICAgICAiLS1sb2ctbWFjaD0tIiwKKyAgICAg
ICAgIi15IiwKKyAgICAgICAgIi0tbm8tcGF1c2UiLAorICAgICAgICAiLS1uby1yZXN0YXJ0LW9u
LXVuZXhwZWN0ZWQiLAorICAgICAgICAiLS1pbnN0YWxsLWZvbnRzIiwKKyAgICAgICAgIi0tbm8t
aGVhZGxlc3MiLAorICAgICAgICAiLS12ZXJpZnktbG9nLWZ1bGwiCisgICAgXQorICAgIHdwdF9h
cmdzICs9IGJyb3dzZXJfc3BlY2lmaWNfYXJncy5nZXQocHJvZHVjdCwgW10pCisKKyAgICBjb21t
YW5kID0gWyJweXRob24iLCAiLi93cHQiLCAicnVuIl0gKyB3cHRfYXJncyArIFtwcm9kdWN0XQor
CisgICAgbG9nZ2VyLmluZm8oIkV4ZWN1dGluZyBjb21tYW5kOiAlcyIgJSAiICIuam9pbihjb21t
YW5kKSkKKyAgICByZXRjb2RlID0gc3VicHJvY2Vzcy5jYWxsKGNvbW1hbmQsIGVudj1kaWN0KG9z
LmVudmlyb24sIFRFUk09ImR1bWIiKSkKKyAgICBpZiByZXRjb2RlICE9IDA6CisgICAgICAgIHN5
cy5leGl0KHJldGNvZGUpCisKKyAgICB3cHRyZXBvcnQgPSBmaW5kX3dwdHJlcG9ydCh3cHRfYXJn
cykKKyAgICBpZiB3cHRyZXBvcnQ6CisgICAgICAgIGd6aXBfZmlsZSh3cHRyZXBvcnQpCisgICAg
d3B0c2NyZWVuc2hvdCA9IGZpbmRfd3B0c2NyZWVuc2hvdCh3cHRfYXJncykKKyAgICBpZiB3cHRz
Y3JlZW5zaG90OgorICAgICAgICBnemlwX2ZpbGUod3B0c2NyZWVuc2hvdCkKKworCitpZiBfX25h
bWVfXyA9PSAiX19tYWluX18iOgorICAgIHBhcnNlciA9IGFyZ3BhcnNlLkFyZ3VtZW50UGFyc2Vy
KGRlc2NyaXB0aW9uPW1haW4uX19kb2NfXykKKyAgICBwYXJzZXIuYWRkX2FyZ3VtZW50KCItLWNv
bW1pdC1yYW5nZSIsIGFjdGlvbj0ic3RvcmUiLAorICAgICAgICAgICAgICAgICAgICAgICAgaGVs
cD0iIiJHaXQgY29tbWl0IHJhbmdlLiBJZiBzcGVjaWZpZWQsIHRoaXMgd2lsbCBiZQorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBzdXBwbGllZCB0byB0aGUgYHdwdCB0ZXN0cy1hZmZlY3Rl
ZGAgY29tbWFuZCB0bworICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZXRlcm1pbmUgdGhl
IGxpc3Qgb2YgdGVzdCB0byBleGVjdXRlIiIiKQorICAgIHBhcnNlci5hZGRfYXJndW1lbnQoInBy
b2R1Y3QiLCBhY3Rpb249InN0b3JlIiwKKyAgICAgICAgICAgICAgICAgICAgICAgIGhlbHA9IkJy
b3dzZXIgdG8gcnVuIHRlc3RzIGluIikKKyAgICBwYXJzZXIuYWRkX2FyZ3VtZW50KCJ3cHRfYXJn
cyIsIG5hcmdzPSIqIiwKKyAgICAgICAgICAgICAgICAgICAgICAgIGhlbHA9IkFyZ3VtZW50cyB0
byBmb3J3YXJkIHRvIGB3cHQgcnVuYCBjb21tYW5kIikKKyAgICBtYWluKCoqdmFycyhwYXJzZXIu
cGFyc2VfYXJncygpKSkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvY2kvdGMvUkVBRE1FLm1kIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9jaS90Yy9SRUFETUUubWQKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uMTFmMzY3Zjk4NmY5N2ZkYmZlNDBmMDliMmFlNDExNGYyNjM5MTZmNwotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
Y2kvdGMvUkVBRE1FLm1kCkBAIC0wLDAgKzEsMjM1IEBACisjIFRhc2tncmFwaCBTZXR1cAorCitU
aGUgdGFza2dyYXBoIGlzIGJ1aWx0IGZyb20gYSBZQU1MIGZpbGUuIFRoaXMgZmlsZSBoYXMgdHdv
IHRvcC1sZXZlbAorcHJvcGVydGllczogYGNvbXBvbmVudHNgIGFuZCBgdGFza3NgLiBUaGUgZnVs
bCBsaXN0IG9mIHRhc2tzIGlzCitkZWZpbmVkIGJ5IHRoZSBgdGFza3NgIG9iamVjdDsgZWFjaCB0
YXNrIGlzIGFuIG9iamVjdCB3aXRoIGEgc2luZ2xlCitwcm9wZXJ0eSByZXByZXNlbnRpbmcgdGhl
IHRhc2sgd2l0aCB0aGUgY29ycmVzcG9uZGluZyB2YWx1ZSBhbiBvYmplY3QKK3JlcHJlc2VudGlu
ZyB0aGUgdGFzayBwcm9wZXJ0aWVzLiBFYWNoIHRhc2sgcmVxdWlyZXMgdGhlIGZvbGxvd2luZwor
dG9wLWxldmVsIHByb3BlcnRpZXM6CisKKyogYHByb3Zpc2lvbmVySWRgOiBTdHJpbmcuIE5hbWUg
b2YgVGFza2NsdXN0ZXIgcHJvdmlzaW9uZXIKKyogYHNjaGVkdWxlcklkYDogU3RyaW5nLiBOYW1l
IG9mIFRhc2tjbHVzdGVyIHNjaGVkdWxlcgorKiBgZGVhZGxpbmVgOiBTdHJpbmcuIFRpbWUgdW50
aWwgdGhlIHRhc2sgZXhwaXJlcworKiBgaW1hZ2VgOiBTdHJpbmcuIE5hbWUgb2YgZG9ja2VyIGlt
YWdlIHRvIHVzZSBmb3IgdGFzaworKiBgbWF4UnVuVGltZWA6IE51bWJlci4gTWF4aW11bSB0aW1l
IGluIHNlY29uZHMgZm9yIHdoaWNoIHRoZSB0YXNrIGNhbgorICBydW4uCisqIGBhcnRpZmFjdHNg
OiBPYmplY3QuIExpc3Qgb2YgYXJ0aWZhY3RzIGFuZCBkaXJlY3RvcmllcyB0byB1cGxvYWQ7IHNl
ZQorICBUYXNrY2x1c3RlciBkb2N1bWVudGF0aW9uLgorKiBgY29tbWFuZGA6IFN0cmluZy4gQ29t
bWFuZCB0byBydW4uIFRoaXMgaXMgYXV0b21hdGljYWxseSB3cmFwcGVkIGluIGEKKyAgcnVuX3Rj
IGNvbW1hbmQKKyogYG9wdGlvbnNgOiBPcHRpb25hbCBPYmplY3QuIE9wdGlvbnMgdG8gcGFzcyBp
bnRvIHJ1bl90YworICAtIHh2ZmI6IEJvb2xlYW4uIEVuYWJsZSBYdmZiIGZvciBydW4KKyAgLSBv
b20ta2lsbGVyOiBCb29sZWFuLiBFbmFibGUgeHZmYiBmb3IgcnVuCisgIC0gaG9zdHM6IEJvb2xl
YW4uIFVwZGF0ZSBob3N0cyBmaWxlIHdpdGggd3B0IGhvc3RzIGJlZm9yZSBydW4KKyAgLSBpbnN0
YWxsLWNlcnRpZmljYXRlczogQm9vbGVhbi4gSW5zdGFsbCB3cHQgY2VydHMgaW50byBPUworICAg
IGNlcnRpZmljYXRlIHN0b3JlIGZvciBydW4KKyAgLSBicm93c2VyOiBMaXN0LiBMaXN0IG9mIGJy
b3dzZXIgbmFtZXMgZm9yIHJ1bgorICAtIGNoYW5uZWw6IFN0cmluZy4gQnJvd3NlciBjaGFubmVs
IGZvciBydW4KKyogYHRyaWdnZXJgOiBPYmplY3QuIENvbmRpdGlvbnMgb24gd2hpY2ggdG8gY29u
c2lkZXIgdGFzay4gT25lIG9yIG1vcmUKKyAgb2YgZm9sbG93aW5nIHByb3BlcnRpZXM6CisgIC0g
YnJhbmNoOiBMaXN0LiBMaXN0IG9mIGJyYW5jaCBuYW1lcyBvbiB3aGljaCB0byB0cmlnZ2VyLgor
ICAtIHB1bGwtcmVxdWVzdDogTm8gdmFsdWUuIFRyaWdnZXIgZm9yIHB1bGwgcmVxdWVzdCBhY3Rp
b25zCisqIGBzY2hlZHVsZS1pZmA6IE9wdGlvbmFsIE9iamVjdC4gQ29uZGl0aW9ucyBvbiB3aGlj
aCB0YXNrIHNob3VsZCBiZQorICBzY2hlZHVsZWQgZ2l2ZW4gaXQgbWVldHMgdGhlIHRyaWdnZXIg
Y29uZGl0aW9ucy4KKyAgLSBgcnVuLWpvYmA6IExpc3QuIEpvYiBuYW1lcyBmb3Igd2hpY2ggdGhp
cyB0YXNrIHNob3VsZCBiZSBjb25zaWRlcmVkLAorICAgIG1hdGNoaW5nIHRoZSBvdXRwdXQgZnJv
bSBgLi93cHQgdGVzdC1qb2JzYAorKiBgZW52YDogT3B0aW9uYWwgT2JqZWN0LiBFbnZpcm9ubWVu
dCB2YXJpYWJsZXMgdG8gc2V0IHdoZW4gcnVubmluZyB0YXNrLgorKiBgZGVwZW5kcy1vbmA6IE9w
dGlvbmFsIGxpc3QuIExpc3Qgb2YgdGFzayBuYW1lcyB0aGF0IG11c3QgYmUgY29tcGxldGUKKyAg
YmVmb3JlIHRoZSBjdXJyZW50IHRhc2sgaXMgc2NoZWR1bGVkLgorKiBgZGVzY3JpcHRpb25gOiBT
dHJpbmcuIFRhc2sgZGVzY3JpcHRpb24uCisqIGBuYW1lYDogT3B0aW9uYWwgU3RyaW5nLiBOYW1l
IHRvIHVzZSBmb3IgdGhlIHRhc2sgb3ZlcnJpZGluZyB0aGUKKyAgcHJvcGVydHkgbmFtZS4gVGhp
cyBpcyB1c2VmdWwgaW4gY29tYmluYXRpb24gd2l0aCBzdWJzdGl0dXRpb25zCisgIGRlc2NyaWJl
ZCBiZWxvdy4KKworIyMgVGFzayBFeHBhbnNpb25zCisKK1VzaW5nIHRoZSBhYm92ZSBzeW50YXgg
aXQncyBwb3NzYmxlIHRvIGRlc2NyaWJlIGVhY2ggdGFzaworZGlyZWN0bHkuIEJ1dCB0eXBpY2Fs
bHkgaW4gYSB0YXNrZ3JhcGggdGhlcmUgYXJlIG1hbnkgY29tbW9uCitwcm9wZXJ0aWVzIGJldHdl
ZW4gdGFza3Mgc28gaXQncyB0ZWRpb3VzIGFuZCBlcnJvciBwcm9uZSB0byByZXBlYXQKK2luZm9y
bWF0aW9uIHRoYXQncyBjb21tb24gdG8gbXVsdGlwbGUgdGFza3MuIFRoZXJlZm9yZSB0aGUgdGFz
a2dyYXBoCitmb3JtYXQgcHJvdmlkZXMgc2V2ZXJhbCBtZWNoYW5pc21zIHRvIHJldXNlIHBhcnRp
YWwgdGFzayBkZWZpbml0aW9ucworYWNyb3NzIG11bHRpcGxlIHRhc2tzLgorCisjIyMgQ29tcG9u
ZW50cworCitUaGUgb3RoZXIgdG9wLWxldmVsIHByb3BlcnR5IGluIHRoZSB0YXNrZ3JhcGggZm9y
bWF0IGlzCitgY29tcG9uZW50c2AuIFRoZSB2YWx1ZSBvZiB0aGlzIHByb3BlcnR5IGlzIGFuIG9i
amVjdCBjb250YWluaW5nIG5hbWVkCitwYXJ0aWFsIHRhc2sgZGVmaW5pdGlvbnMuIEVhY2ggdGFz
ayBkZWZpbml0aW9uIG1heSBjb250YWluIGEgcHJvcGVydHkgY2FsbGVkCitgdXNlYCB3aGljaCBp
cyBhIGxpc3Qgb2YgY29tcG9uZW50cyB0byB1c2UgYXMgdGhlIGJhc2lzIGZvciB0aGUgdGFzawor
ZGVmaW5pdGlvbi4gVGhlIGNvbXBvbmVudHMgbGlzdCBpcyBldmFsdWF0ZWQgaW4gb3JkZXIuIElm
IGEgcHJvcGVydHkKK2lzIG5vdCBwcmV2aW91c2x5IGRlZmluZWQgaW4gdGhlIG91dHB1dCBpdCBp
cyBhZGRlZCB0byB0aGUgb3V0cHV0LiBJZgoraXQgd2FzIHByZXZpb3VzbHkgZGVmaW5lZCwgdGhl
IHZhbHVlIGlzIHVwZGF0ZWQgYWNjb3JkaW5nIHRvIHRoZSB0eXBlOgorICogU3RyaW5ncyBhbmQg
bnVtYmVycyBhcmUgcmVwbGFjZWQgd2l0aCBhIG5ldyB2YWx1ZQorICogTGlzdHMgYXJlIGV4dGVu
ZGVkIHdpdGggdGhlIGFkZGl0aW9uYWwgdmFsdWVzCisgKiBPYmplY3RzIGFyZSB1cGRhdGVkIHJl
Y3Vyc2l2ZWx5IGZvbGxvd2luZyB0aGUgYWJvdmUgcnVsZXMKK1RoaXMgbWVhbnMgdGhhdCB0eXBl
cyBtdXN0IGFsd2F5cyBtYXRjaCBiZXR3ZWVuIGNvbXBvbmVudHMgYW5kIHRoZQorZmluYWwgdmFs
dWUuCisKK0ZvciBleGFtcGxlCitgYGAKK2NvbXBvbmVudHM6CisgIGV4YW1wbGUtMToKKyAgICBs
aXN0X3Byb3A6CisgICAgICAtIGZpcnN0CisgICAgICAtIHNlY29uZAorICAgIG9iamVjdF9wcm9w
OgorICAgICAga2V5MTogdmFsdWUxCisgICAgICBrZXkyOiBiYXNlX3ZhbHVlCisgIGV4YW1wbGUt
MjoKKyAgICBsaXN0X3Byb3A6CisgICAgICAtIHRoaXJkCisgICAgICAtIGZvdXJ0aAorICAgIG9i
amVjdF9wcm9wOgorICAgICAga2V5MzoKKyAgICAgICAgLSB2YWx1ZTMtMQorCit0YXNrczoKKyAg
LSBleGFtcGxlLXRhc2s6CisgICAgICB1c2U6CisgICAgICAgIC0gZXhhbXBsZS0xCisgICAgICAg
IC0gZXhhbXBsZS0yCisgICAgICBvYmplY3RfcHJvcDoKKyAgICAgICAga2V5MjogdmFsdWUyCisg
ICAgICAgIGtleTM6CisgICAgICAgICAgLSB2YWx1ZTMtMgorYGBgCisKK3dpbGwgZXZhbHVhdGUg
dG8gdGhlIGZvbGxvd2luZyB0YXNrOgorCitgYGAKK2V4YW1wbGUtdGFzazoKKyAgbGlzdF9wcm9w
OgorICAgIC0gZmlyc3QKKyAgICAtIHNlY29uZAorICAgIC0gdGhpcmQKKyAgICAtIGZvdXJ0aAor
ICBvYmplY3RfcHJvcDoKKyAgICBrZXkxOiB2YWx1ZTEKKyAgICBrZXkyOiB2YWx1ZTIKKyAgICBr
ZXkzOgorICAgICAgLSB2YWx1ZTMtMQorICAgICAgLSB2YWx1ZTMtMgorYGBgCisKK05vdGUgdGhh
dCBjb21wb25lbnRzIGNhbm5vdCBjdXJyZW50bHkgZGVmaW5lIGB1c2VgIHByb3BlcnRpZXMgb2Yg
dGhlaXIgb3duLgorCisjIyBTdWJzdGl0dXRpb25zCisKK0NvbXBvbmVudHMgYW5kIHRhc2tzIGNh
biBkZWZpbmUgYSBwcm9wZXJ0eSBgdmFyc2AgdGhhdCBob2xkcyB2YXJpYWJsZXMKK3doaWNoIGFy
ZSBsYXRlciBzdWJzdGl0dXRlZCBpbnRvIHRoZSB0YXNrIGRlZmluaXRpb24gdXNpbmcgdGhlIHN5
bnRheAorYCR7dmFycy5wcm9wZXJ0eS1uYW1lfWAuIEZvciBleGFtcGxlOgorCitgYGAKK2NvbXBv
bmVudHM6CisgIGdlbmVyaWMtY29tcG9uZW50OgorICAgIHByb3A6ICR7dmFycy52YWx1ZX0KKwor
dGFza3M6CisgIC0gZmlyc3Q6CisgICAgICB1c2U6CisgICAgICAgIC0gZ2VuZXJpYy1jb21wb25l
bnQKKyAgICAgIHZhcnM6CisgICAgICAgIHZhbHVlOiB2YWx1ZTEKKyAgLSBzZWNvbmQ6CisgICAg
ICB1c2U6CisgICAgICAgIC0gZ2VuZXJpYy1jb21wb25lbnQKKyAgICAgIHZhcnM6CisgICAgICAg
IHZhbHVlOiB2YWx1ZTIKK2BgYAorCitSZXN1bHRzIGluIHRoZSBmb2xsb3dpbmcgdGFza3M6CisK
K2BgYAorZmlyc3Q6CisgIHByb3A6IHZhbHVlMQorc2Vjb25kOgorICBwcm9wOiB2YWx1ZTIKK2Bg
YAorCisjIyBNYXBzCisKK0luc3RlYWQgb2YgZGVmaW5pbmcgYSB0YXNrIGRpcmVjdGx5LCBhbiBp
dGVtIGluIHRoZSB0YXNrcyBwcm9wZXJ0eSBtYXkKK2JlIGFuIG9iamVjdCB3aXRoIGEgc2luZ2xl
IHByb3BlcnR5IGAkbWFwYC4gVGhpcyBvYmplY3QgaXRzZWxmIGhhcyB0d28KK2NoaWxkIHByb3Bl
cnRpZXM7IGBmb3JgIGFuZCBgZG9gLiBUaGUgdmFsdWUgb2YgYGZvcmAgaXMgYSBsaXN0IG9mCitv
YmplY3RzLCBhbmQgdGhlIHZhbHVlIG9mIGBkb2AgaXMgZWl0aGVyIGFuIG9iamVjdCBvciBhIGxp
c3Qgb2YKK29iamVjdHMuIEZvciBlYWNoIG9iamVjdCBpbiB0aGUgYGZvcmAgcHJvcGVydHksIGEg
c2V0IG9mIHRhc2tzIGlzCitjcmVhdGVkIGJ5IHRha2luZyBhIGNvcHkgb2YgdGhhdCBvYmplY3Qg
Zm9yIGVhY2ggdGFzayBpbiB0aGUgYGRvYAorcHJvcGVydHksIHVwZGF0aW5nIHRoZSBvYmplY3Qg
d2l0aCB0aGUgcHJvcGVydGllcyBmcm9tIHRoZQorY29ycmVzcG9uZGluZyBgZG9gIG9iamVjdCwg
dXNpbmcgdGhlIHNhbWUgcnVsZXMgYXMgZm9yIGNvbXBvbmVudHMKK2Fib3ZlLCBhbmQgdGhlbiBw
cm9jZXNzaW5nIGFzIGZvciBhIG5vcm1hbCB0YXNrLiBgJG1hcGAgcnVsZXMgY2FuIGFsc28KK2Jl
IG5lc3RlZC4KKworTm90ZTogQWx0aG91Z2ggYCRtYXBgIHNoYXJlcyBhIG5hbWUgd2l0aCB0aGUg
YCRtYXBgIHVzZWQgaW4ganNvbi1lCisodXNlZC4gaW4gYC50YXNrY2x1c3Rlci55bWxgKSwgdGhl
IHNlbWFudGljcyBhcmUgZGlmZmVyZW50LgorCitGb3IgZXhhbXBsZQorCitgYGAKK2NvbXBvbmVu
dHM6IHt9Cit0YXNrczoKKyAgJG1hcDoKKyAgICBmb3I6CisgICAgICAtIHZhcnM6CisgICAgICAg
ICAgZXhhbXBsZTogdmFsdWUxCisgICAgICAtIHZhcnM6CisgICAgICAgICAgZXhhbXBsZTogdmFs
dWUyCisgICAgZG86CisgICAgICBleGFtcGxlLSR7dmFycy5leGFtcGxlfQorICAgICAgICBwcm9w
OiAke3ZhcnMuZXhhbXBsZX0KK2BgYAorCitSZXN1bHRzIGluIHRoZSB0YXNrcworCitgYGAKK2V4
YW1wbGUtdmFsdWUxOgorICBwcm9wOiB2YWx1ZTEKK2V4YW1wbGUtdmFsdWUyOgorICBwcm9wOiB2
YWx1ZTIKK2BgYAorCitOb3RlIHRoYXQgaW4gY29tYmluYXRpb24gd2l0aCBgJG1hcGAsIHZhcmlh
YmxlIHN1YnN0aXR1dGlvbnMgYXJlCithcHBsaWVkICp0d2ljZSo7IG9uY2UgYWZ0ZXIgdGhlIGAk
bWFwYCBpcyBldmFsdWF0ZWQgYW5kIG9uY2UgYWZ0ZXIgdGhlCitgdXNlYCBzdGF0ZW1lbnRzIGFy
ZSBldmFsdWF0ZWQuCisKKyMjIENodW5rcworCitBIGNvbW1vbiByZXF1aXJlbWVudHMgZm9yIHRh
c2tzIGlzIHRoYXQgdGhleSBhcmUgImNodW5rZWQiIGludG8gTgorcGFydGlhbCB0YXNrcy4gVGhp
cyBpcyBoYW5kbGVkIHNwZWNpYWxseSBpbiB0aGUgc3ludGF4LiBBIHRvcCBsZXZlbAorcHJvcGVy
dHkgYGNodW5rc2AgY2FuIGJlIHVzZWQgdG8gZGVmaW5lIHRoZSBudW1iZXIgb2YgaW5kaXZpZHVh
bAorY2h1bmtzIHRvIGNyZWF0ZSBmb3IgYSBzcGVjaWZpYyB0YXNrLiBFYWNoIGNodW5rZWQgdGFz
ayBpcyBjcmVhdGVkCit3aXRoIGEgYGNodW5rc2AgcHJvcGVydHkgc2V0IHRvIGFuIG9iamVjdCBj
b250YWluaW5nIGFuIGBpZGAgcHJvcGVydHkKK2NvbnRhaW5pbmcgdGhlIG9uZS1iYXNlZCBpbmRl
eCBvZiB0aGUgY2h1bmsgYW4gYSBgdG90YWxgIHByb3BlcnR5Citjb250YWluaW5nIHRoZSB0b3Rh
bCBudW1iZXIgb2YgY2h1bmtzLiBUaGVzZSBjYW4gYmUgc3Vic3RpdHV0ZWQgaW50bwordGhlIHRh
c2sgZGVmaW5pdGlvbiB1c2luZyB0aGUgc2FtZSBzeW50YXggYXMgZm9yIGB2YXJzYCBhYm92ZQor
ZS5nLiBgJHtjaHVua3MuaWR9YC4gTm90ZSB0aGF0IGJlY2F1c2UgdGFzayBuYW1lcyBtdXN0IGJl
IHVuaXF1ZSwgaXQncworY29tbW9uIHRvIHNwZWNpZnkgYSBgbmFtZWAgcHJvcGVydHkgb24gdGhl
IHRhc2sgdGhhdCB3aWxsIG92ZXJyaWRlIHRoZQorcHJvcGVydHkgbmFtZSBlLmcuCisKK2BgYAor
Y29tcG9uZW50czoge30KK3Rhc2tzOgorICAtIGNodW5rZWQtdGFzazoKKyAgICAgIGNodW5rczoy
CisgICAgICBjb21tYW5kOiAidGFzay1ydW4gLS1jaHVuaz0ke2NodW5rcy5pZH0gLS10b3RhbENo
dW5rcz0ke2NodW5rcy50b3RhbH0iCisgICAgICBuYW1lOiB0YXNrLWNodW5rLSR7Y2h1bmtzLmlk
fQorYGBgCisKK2NyZWF0ZXMgdGFza3M6CisKK2BgYAordGFzay1jaHVuay0xOgorICBjb21tYW5k
OiAidGFzay1ydW4gLS1jaHVuaz0xIC0tdG90YWxDaHVua3M9MiIKK3Rhc2stY2h1bmstMjoKKyAg
Y29tbWFuZDogInRhc2stcnVuIC0tY2h1bms9MiAtLXRvdGFsQ2h1bmtzPTIiCitgYGAKKworIyBP
dmVyYWxsIHByb2Nlc3NpbmcgbW9kZWwKKworVGhlIG92ZXJhbGwgcHJvY2Vzc2luZyBtb2RlbCBm
b3IgdGFza3MgaXMgYXMgZm9sbG93czoKKyAqIEV2YWx1YXRlIG1hcHMKKyAqIFBlcmZvcm0gc3Vi
c2l0dXRpb25zCisgKiBFdmFsdWF0ZSB1c2Ugc3RhdGVtZW50cworICogRXhwYW5kIGNodW5rcwor
ICogUGVyZm9ybSBzdWJzaXR1dGlvbnMKKworQXQgZWFjaCBwb2ludCBhZnRlciBtYXBzIGFyZSBl
dmFsdWF0ZWQgdGFza3MgbXVzdCBoYXZlIGEgdW5pcXVlIG5hbWUuCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2NpL3RjL19faW5p
dF9fLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy9jaS90Yy9fX2luaXRfXy5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hNjgzNGI4Mjg1YTU2YmVmMGUxNTQzZmQ5
MDFjN2U2ZjJmOGJjMjAyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9jaS90Yy9fX2luaXRfXy5weQpAQCAtMCwwICsx
IEBACisjIFRoaXMgZmlsZSBpcyByZXF1aXJlZCBmb3IgUHl0aG9uIHRvIHNlYXJjaCB0aGlzIGRp
cmVjdG9yeSBmb3IgbW9kdWxlcy4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2Np
L3RjL2RlY2lzaW9uLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy9jaS90Yy9kZWNpc2lvbi5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45MmEyN2VmNzlhYjNmYjQ5
YWZmNzkxOTdjYTUwM2I3YTc2NmM4YzAzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9jaS90Yy9kZWNpc2lvbi5weQpA
QCAtMCwwICsxLDMyNCBAQAoraW1wb3J0IGFyZ3BhcnNlCitpbXBvcnQganNvbgoraW1wb3J0IGxv
Z2dpbmcKK2ltcG9ydCBvcworaW1wb3J0IHJlCitpbXBvcnQgc3VicHJvY2VzcworZnJvbSBjb2xs
ZWN0aW9ucyBpbXBvcnQgT3JkZXJlZERpY3QKKworaW1wb3J0IHRhc2tjbHVzdGVyCitmcm9tIHNp
eCBpbXBvcnQgaXRlcml0ZW1zLCBpdGVydmFsdWVzCisKK2Zyb20gLiBpbXBvcnQgdGFza2dyYXBo
CisKKworaGVyZSA9IG9zLnBhdGguYWJzcGF0aChvcy5wYXRoLmRpcm5hbWUoX19maWxlX18pKQor
CisKK2xvZ2dpbmcuYmFzaWNDb25maWcoKQorbG9nZ2VyID0gbG9nZ2luZy5nZXRMb2dnZXIoKQor
CisKK2RlZiBnZXRfdHJpZ2dlcnMoZXZlbnQpOgorICAgICMgU2V0IHNvbWUgdmFyaWFibGVzIHRo
YXQgd2UgdXNlIHRvIGdldCB0aGUgY29tbWl0cyBvbiB0aGUgY3VycmVudCBicmFuY2gKKyAgICBy
ZWZfcHJlZml4ID0gInJlZnMvaGVhZHMvIgorICAgIGlzX3ByID0gInB1bGxfcmVxdWVzdCIgaW4g
ZXZlbnQKKyAgICBicmFuY2ggPSBOb25lCisgICAgaWYgbm90IGlzX3ByIGFuZCAicmVmIiBpbiBl
dmVudDoKKyAgICAgICAgYnJhbmNoID0gZXZlbnRbInJlZiJdCisgICAgICAgIGlmIGJyYW5jaC5z
dGFydHN3aXRoKHJlZl9wcmVmaXgpOgorICAgICAgICAgICAgYnJhbmNoID0gYnJhbmNoW2xlbihy
ZWZfcHJlZml4KTpdCisKKyAgICByZXR1cm4gaXNfcHIsIGJyYW5jaAorCisKK2RlZiBmZXRjaF9l
dmVudF9kYXRhKHF1ZXVlKToKKyAgICB0cnk6CisgICAgICAgIHRhc2tfaWQgPSBvcy5lbnZpcm9u
WyJUQVNLX0lEIl0KKyAgICBleGNlcHQgS2V5RXJyb3I6CisgICAgICAgIGxvZ2dlci53YXJuaW5n
KCJNaXNzaW5nIFRBU0tfSUQgZW52aXJvbm1lbnQgdmFyaWFibGUiKQorICAgICAgICAjIEZvciBl
eGFtcGxlIHVuZGVyIGxvY2FsIHRlc3RpbmcKKyAgICAgICAgcmV0dXJuIE5vbmUKKworICAgIHRh
c2tfZGF0YSA9IHF1ZXVlLnRhc2sodGFza19pZCkKKworICAgIHJldHVybiB0YXNrX2RhdGEuZ2V0
KCJleHRyYSIsIHt9KS5nZXQoImdpdGh1Yl9ldmVudCIpCisKKworZGVmIGZpbHRlcl90cmlnZ2Vy
cyhldmVudCwgYWxsX3Rhc2tzKToKKyAgICBpc19wciwgYnJhbmNoID0gZ2V0X3RyaWdnZXJzKGV2
ZW50KQorICAgIHRyaWdnZXJlZCA9IHt9CisgICAgZm9yIG5hbWUsIHRhc2sgaW4gaXRlcml0ZW1z
KGFsbF90YXNrcyk6CisgICAgICAgIGlmICJ0cmlnZ2VyIiBpbiB0YXNrOgorICAgICAgICAgICAg
aWYgaXNfcHIgYW5kICJwdWxsLXJlcXVlc3QiIGluIHRhc2tbInRyaWdnZXIiXToKKyAgICAgICAg
ICAgICAgICB0cmlnZ2VyZWRbbmFtZV0gPSB0YXNrCisgICAgICAgICAgICBlbGlmIGJyYW5jaCBp
cyBub3QgTm9uZSBhbmQgImJyYW5jaCIgaW4gdGFza1sidHJpZ2dlciJdOgorICAgICAgICAgICAg
ICAgIGZvciB0cmlnZ2VyX2JyYW5jaCBpbiB0YXNrWyJ0cmlnZ2VyIl1bImJyYW5jaCJdOgorICAg
ICAgICAgICAgICAgICAgICBpZiAodHJpZ2dlcl9icmFuY2ggPT0gYnJhbmNoIG9yCisgICAgICAg
ICAgICAgICAgICAgICAgICB0cmlnZ2VyX2JyYW5jaC5lbmRzd2l0aCgiKiIpIGFuZCBicmFuY2gu
c3RhcnRzd2l0aCh0cmlnZ2VyX2JyYW5jaFs6LTFdKSk6CisgICAgICAgICAgICAgICAgICAgICAg
ICB0cmlnZ2VyZWRbbmFtZV0gPSB0YXNrCisgICAgbG9nZ2VyLmluZm8oIlRyaWdnZXJzIG1hdGNo
IHRhc2tzOlxuICogJXMiICUgIlxuICogIi5qb2luKHRyaWdnZXJlZC5rZXlzKCkpKQorICAgIHJl
dHVybiB0cmlnZ2VyZWQKKworCitkZWYgZ2V0X3J1bl9qb2JzKGV2ZW50KToKKyAgICBmcm9tIHRv
b2xzLmNpIGltcG9ydCBqb2JzCisgICAgcmV2aXNoID0gIiVzLi4lcyIgJSAoZXZlbnRbInB1bGxf
cmVxdWVzdCJdWyJiYXNlIl1bInNoYSJdCisgICAgICAgICAgICAgICAgICAgICAgICAgaWYgInB1
bGxfcmVxdWVzdCIgaW4gZXZlbnQKKyAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlIGV2ZW50
WyJiZWZvcmUiXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICBldmVudFsicHVsbF9yZXF1ZXN0
Il1bImhlYWQiXVsic2hhIl0KKyAgICAgICAgICAgICAgICAgICAgICAgICBpZiAicHVsbF9yZXF1
ZXN0IiBpbiBldmVudAorICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgZXZlbnRbImFmdGVy
Il0pCisgICAgbG9nZ2VyLmluZm8oIkxvb2tpbmcgZm9yIGNoYW5nZXMgaW4gcmFuZ2UgJXMiICUg
cmV2aXNoKQorICAgIHBhdGhzID0gam9icy5nZXRfcGF0aHMocmV2aXNoPXJldmlzaCkKKyAgICBs
b2dnZXIuaW5mbygiRm91bmQgY2hhbmdlcyBpbiBwYXRoczolcyIgJSAiXG4iLmpvaW4ocGF0aHMp
KQorICAgIHBhdGhfam9icyA9IGpvYnMuZ2V0X2pvYnMocGF0aHMpCisgICAgYWxsX2pvYnMgPSBw
YXRoX2pvYnMgfCBnZXRfZXh0cmFfam9icyhldmVudCkKKyAgICBsb2dnZXIuaW5mbygiSW5jbHVk
aW5nIGpvYnM6XG4gKiAlcyIgJSAiXG4gKiAiLmpvaW4oYWxsX2pvYnMpKQorICAgIHJldHVybiBh
bGxfam9icworCisKK2RlZiBnZXRfZXh0cmFfam9icyhldmVudCk6CisgICAgYm9keSA9IE5vbmUK
KyAgICBqb2JzID0gc2V0KCkKKyAgICBpZiAiY29tbWl0cyIgaW4gZXZlbnQgYW5kIGV2ZW50WyJj
b21taXRzIl06CisgICAgICAgIGJvZHkgPSBldmVudFsiY29tbWl0cyJdWzBdWyJtZXNzYWdlIl0K
KyAgICBlbGlmICJwdWxsX3JlcXVlc3QiIGluIGV2ZW50OgorICAgICAgICBib2R5ID0gZXZlbnRb
InB1bGxfcmVxdWVzdCJdWyJib2R5Il0KKworICAgIGlmIG5vdCBib2R5OgorICAgICAgICByZXR1
cm4gam9icworCisgICAgcmVnZXhwID0gcmUuY29tcGlsZShyIlxzKnRjLWpvYnM6KC4qKSQiKQor
CisgICAgZm9yIGxpbmUgaW4gYm9keS5zcGxpdGxpbmVzKCk6CisgICAgICAgIG0gPSByZWdleHAu
bWF0Y2gobGluZSkKKyAgICAgICAgaWYgbToKKyAgICAgICAgICAgIGl0ZW1zID0gbS5ncm91cCgx
KQorICAgICAgICAgICAgZm9yIGl0ZW0gaW4gaXRlbXMuc3BsaXQoIiwiKToKKyAgICAgICAgICAg
ICAgICBqb2JzLmFkZChpdGVtLnN0cmlwKCkpCisgICAgICAgICAgICBicmVhaworICAgIHJldHVy
biBqb2JzCisKKworZGVmIGZpbHRlcl9zY2hlZHVsZV9pZihldmVudCwgdGFza3MpOgorICAgIHNj
aGVkdWxlZCA9IHt9CisgICAgcnVuX2pvYnMgPSBOb25lCisgICAgZm9yIG5hbWUsIHRhc2sgaW4g
aXRlcml0ZW1zKHRhc2tzKToKKyAgICAgICAgaWYgInNjaGVkdWxlLWlmIiBpbiB0YXNrOgorICAg
ICAgICAgICAgaWYgInJ1bi1qb2IiIGluIHRhc2tbInNjaGVkdWxlLWlmIl06CisgICAgICAgICAg
ICAgICAgaWYgcnVuX2pvYnMgaXMgTm9uZToKKyAgICAgICAgICAgICAgICAgICAgcnVuX2pvYnMg
PSBnZXRfcnVuX2pvYnMoZXZlbnQpCisgICAgICAgICAgICAgICAgaWYgImFsbCIgaW4gcnVuX2pv
YnMgb3IgYW55KGl0ZW0gaW4gcnVuX2pvYnMgZm9yIGl0ZW0gaW4gdGFza1sic2NoZWR1bGUtaWYi
XVsicnVuLWpvYiJdKToKKyAgICAgICAgICAgICAgICAgICAgc2NoZWR1bGVkW25hbWVdID0gdGFz
aworICAgICAgICBlbHNlOgorICAgICAgICAgICAgc2NoZWR1bGVkW25hbWVdID0gdGFzaworICAg
IGxvZ2dlci5pbmZvKCJTY2hlZHVsaW5nIHJ1bGVzIG1hdGNoIHRhc2tzOlxuICogJXMiICUgIlxu
ICogIi5qb2luKHNjaGVkdWxlZC5rZXlzKCkpKQorICAgIHJldHVybiBzY2hlZHVsZWQKKworCitk
ZWYgZ2V0X2ZldGNoX3JldihldmVudCk6CisgICAgaXNfcHIsIF8gPSBnZXRfdHJpZ2dlcnMoZXZl
bnQpCisgICAgaWYgaXNfcHI6CisgICAgICAgICMgVHJ5IHRvIGdldCB0aGUgYWN0dWFsIHJldiBz
byB0aGF0IGFsbCBub24tZGVjaXNpb24gdGFza3MgYXJlIHBpbm5lZCB0byB0aGF0CisgICAgICAg
IHJlZiA9ICJyZWZzL3B1bGwvJXMvbWVyZ2UiICUgZXZlbnRbInB1bGxfcmVxdWVzdCJdWyJudW1i
ZXIiXQorICAgICAgICB0cnk6CisgICAgICAgICAgICBvdXRwdXQgPSBzdWJwcm9jZXNzLmNoZWNr
X291dHB1dChbImdpdCIsICJscy1yZW1vdGUiLCAib3JpZ2luIiwgcmVmXSkKKyAgICAgICAgZXhj
ZXB0IHN1YnByb2Nlc3MuQ2FsbGVkUHJvY2Vzc0Vycm9yOgorICAgICAgICAgICAgaW1wb3J0IHRy
YWNlYmFjaworICAgICAgICAgICAgbG9nZ2VyLmVycm9yKHRyYWNlYmFjay5mb3JtYXRfZXhjKCkp
CisgICAgICAgICAgICBsb2dnZXIuZXJyb3IoIkZhaWxlZCB0byBnZXQgbWVyZ2UgY29tbWl0IHNo
YTEiKQorICAgICAgICAgICAgcmV0dXJuIHJlZiwgTm9uZQorICAgICAgICBpZiBub3Qgb3V0cHV0
OgorICAgICAgICAgICAgbG9nZ2VyLmVycm9yKCJGYWlsZWQgdG8gZ2V0IG1lcmdlIGNvbW1pdCIp
CisgICAgICAgICAgICByZXR1cm4gcmVmLCBOb25lCisgICAgICAgIHJldHVybiByZWYsIG91dHB1
dC5zcGxpdCgpWzBdCisgICAgZWxzZToKKyAgICAgICAgcmV0dXJuIGV2ZW50WyJyZWYiXSwgZXZl
bnRbImFmdGVyIl0KKworCitkZWYgYnVpbGRfZnVsbF9jb21tYW5kKGV2ZW50LCB0YXNrKToKKyAg
ICBmZXRjaF9yZWYsIGZldGNoX3NoYSA9IGdldF9mZXRjaF9yZXYoZXZlbnQpCisgICAgY21kX2Fy
Z3MgPSB7CisgICAgICAgICJ0YXNrX25hbWUiOiB0YXNrWyJuYW1lIl0sCisgICAgICAgICJyZXBv
X3VybCI6IGV2ZW50WyJyZXBvc2l0b3J5Il1bImNsb25lX3VybCJdLAorICAgICAgICAiZmV0Y2hf
cmVmIjogZmV0Y2hfcmVmLAorICAgICAgICAidGFza19jbWQiOiB0YXNrWyJjb21tYW5kIl0sCisg
ICAgICAgICJpbnN0YWxsX3N0ciI6ICIiLAorICAgIH0KKworICAgIG9wdGlvbnMgPSB0YXNrLmdl
dCgib3B0aW9ucyIsIHt9KQorICAgIG9wdGlvbnNfYXJncyA9IFtdCisgICAgaWYgZmV0Y2hfc2hh
IGlzIG5vdCBOb25lOgorICAgICAgICBvcHRpb25zX2FyZ3MuYXBwZW5kKCItLXJldj0lcyIgJSBm
ZXRjaF9zaGEpCisgICAgaWYgb3B0aW9ucy5nZXQoIm9vbS1raWxsZXIiKToKKyAgICAgICAgb3B0
aW9uc19hcmdzLmFwcGVuZCgiLS1vb20ta2lsbGVyIikKKyAgICBpZiBvcHRpb25zLmdldCgieHZm
YiIpOgorICAgICAgICBvcHRpb25zX2FyZ3MuYXBwZW5kKCItLXh2ZmIiKQorICAgIGlmIG5vdCBv
cHRpb25zLmdldCgiaG9zdHMiKToKKyAgICAgICAgb3B0aW9uc19hcmdzLmFwcGVuZCgiLS1uby1o
b3N0cyIpCisgICAgZWxzZToKKyAgICAgICAgb3B0aW9uc19hcmdzLmFwcGVuZCgiLS1ob3N0cyIp
CisgICAgIyBDaGVjayBvdXQgdGhlIGV4cGVjdGVkIFNIQSB1bmxlc3MgaXQgaXMgb3ZlcnJpZGRl
biAoZS5nLiB0byBiYXNlX2hlYWQpLgorICAgIGlmIG9wdGlvbnMuZ2V0KCJjaGVja291dCIpOgor
ICAgICAgICBvcHRpb25zX2FyZ3MuYXBwZW5kKCItLWNoZWNrb3V0PSVzIiAlIG9wdGlvbnNbImNo
ZWNrb3V0Il0pCisgICAgZWxzZToKKyAgICAgICAgb3B0aW9uc19hcmdzLmFwcGVuZCgiLS1jaGVj
a291dD0lcyIgJSBmZXRjaF9zaGEpCisgICAgZm9yIGJyb3dzZXIgaW4gb3B0aW9ucy5nZXQoImJy
b3dzZXIiLCBbXSk6CisgICAgICAgIG9wdGlvbnNfYXJncy5hcHBlbmQoIi0tYnJvd3Nlcj0lcyIg
JSBicm93c2VyKQorICAgIGlmIG9wdGlvbnMuZ2V0KCJjaGFubmVsIik6CisgICAgICAgIG9wdGlv
bnNfYXJncy5hcHBlbmQoIi0tY2hhbm5lbD0lcyIgJSBvcHRpb25zWyJjaGFubmVsIl0pCisgICAg
aWYgb3B0aW9ucy5nZXQoImluc3RhbGwtY2VydGlmaWNhdGVzIik6CisgICAgICAgIG9wdGlvbnNf
YXJncy5hcHBlbmQoIi0taW5zdGFsbC1jZXJ0aWZpY2F0ZXMiKQorCisgICAgY21kX2FyZ3NbIm9w
dGlvbnNfc3RyIl0gPSAiICIuam9pbihzdHIoaXRlbSkgZm9yIGl0ZW0gaW4gb3B0aW9uc19hcmdz
KQorCisgICAgaW5zdGFsbF9wYWNrYWdlcyA9IHRhc2suZ2V0KCJpbnN0YWxsIikKKyAgICBpZiBp
bnN0YWxsX3BhY2thZ2VzOgorICAgICAgICBpbnN0YWxsX2l0ZW1zID0gWyJhcHQgdXBkYXRlIC1x
cXkiXQorICAgICAgICBpbnN0YWxsX2l0ZW1zLmV4dGVuZCgiYXB0IGluc3RhbGwgLXFxeSAlcyIg
JSBpdGVtCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvciBpdGVtIGluIGluc3RhbGxf
cGFja2FnZXMpCisgICAgICAgIGNtZF9hcmdzWyJpbnN0YWxsX3N0ciJdID0gIlxuIi5qb2luKCJz
dWRvICVzOyIgJSBpdGVtIGZvciBpdGVtIGluIGluc3RhbGxfaXRlbXMpCisKKyAgICByZXR1cm4g
WyIvYmluL2Jhc2giLAorICAgICAgICAgICAgIi0tbG9naW4iLAorICAgICAgICAgICAgIi1jIiwK
KyAgICAgICAgICAgICIiIgorfi9zdGFydC5zaCBcCisgICUocmVwb191cmwpcyBcCisgICUoZmV0
Y2hfcmVmKXM7CislKGluc3RhbGxfc3RyKXMKK2NkIHdlYi1wbGF0Zm9ybS10ZXN0czsKKy4vdG9v
bHMvY2kvcnVuX3RjLnB5ICUob3B0aW9uc19zdHIpcyAtLSAlKHRhc2tfY21kKXM7CisiIiIgJSBj
bWRfYXJnc10KKworCitkZWYgZ2V0X293bmVyKGV2ZW50KToKKyAgICBpZiAicHVzaGVyIiBpbiBl
dmVudDoKKyAgICAgICAgcHVzaGVyID0gZXZlbnQuZ2V0KCJwdXNoZXIiLCB7fSkuZ2V0KCJlbWFp
bCIsICIiKQorICAgICAgICBpZiBwdXNoZXIgYW5kICJAIiBpbiBwdXNoZXI6CisgICAgICAgICAg
ICByZXR1cm4gcHVzaGVyCisgICAgcmV0dXJuICJ3ZWItcGxhdGZvcm0tdGVzdHNAdXNlcnMubm9y
ZXBseS5naXRodWIuY29tIgorCisKK2RlZiBjcmVhdGVfdGNfdGFzayhldmVudCwgdGFzaywgdGFz
a2dyb3VwX2lkLCBkZXBlbmRzX29uX2lkcyk6CisgICAgY29tbWFuZCA9IGJ1aWxkX2Z1bGxfY29t
bWFuZChldmVudCwgdGFzaykKKyAgICB0YXNrX2lkID0gdGFza2NsdXN0ZXIuc2x1Z0lkKCkKKyAg
ICB0YXNrX2RhdGEgPSB7CisgICAgICAgICJ0YXNrR3JvdXBJZCI6IHRhc2tncm91cF9pZCwKKyAg
ICAgICAgImNyZWF0ZWQiOiB0YXNrY2x1c3Rlci5mcm9tTm93SlNPTigiIiksCisgICAgICAgICJk
ZWFkbGluZSI6IHRhc2tjbHVzdGVyLmZyb21Ob3dKU09OKHRhc2tbImRlYWRsaW5lIl0pLAorICAg
ICAgICAicHJvdmlzaW9uZXJJZCI6IHRhc2tbInByb3Zpc2lvbmVySWQiXSwKKyAgICAgICAgInNj
aGVkdWxlcklkIjogdGFza1sic2NoZWR1bGVySWQiXSwKKyAgICAgICAgIndvcmtlclR5cGUiOiB0
YXNrWyJ3b3JrZXJUeXBlIl0sCisgICAgICAgICJtZXRhZGF0YSI6IHsKKyAgICAgICAgICAgICJu
YW1lIjogdGFza1sibmFtZSJdLAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogdGFzay5nZXQo
ImRlc2NyaXB0aW9uIiwgIiIpLAorICAgICAgICAgICAgIm93bmVyIjogZ2V0X293bmVyKGV2ZW50
KSwKKyAgICAgICAgICAgICJzb3VyY2UiOiBldmVudFsicmVwb3NpdG9yeSJdWyJjbG9uZV91cmwi
XQorICAgICAgICB9LAorICAgICAgICAicGF5bG9hZCI6IHsKKyAgICAgICAgICAgICJhcnRpZmFj
dHMiOiB0YXNrLmdldCgiYXJ0aWZhY3RzIiksCisgICAgICAgICAgICAiY29tbWFuZCI6IGNvbW1h
bmQsCisgICAgICAgICAgICAiaW1hZ2UiOiB0YXNrLmdldCgiaW1hZ2UiKSwKKyAgICAgICAgICAg
ICJtYXhSdW5UaW1lIjogdGFzay5nZXQoIm1heFJ1blRpbWUiKSwKKyAgICAgICAgICAgICJlbnYi
OiB0YXNrLmdldCgiZW52Iiwge30pLAorICAgICAgICB9LAorICAgICAgICAiZXh0cmEiOiB7Cisg
ICAgICAgICAgICAiZ2l0aHViX2V2ZW50IjoganNvbi5kdW1wcyhldmVudCkKKyAgICAgICAgfQor
ICAgIH0KKyAgICBpZiBkZXBlbmRzX29uX2lkczoKKyAgICAgICAgdGFza19kYXRhWyJkZXBlbmRl
bmNpZXMiXSA9IGRlcGVuZHNfb25faWRzCisgICAgICAgIHRhc2tfZGF0YVsicmVxdWlyZXMiXSA9
ICJhbGwtY29tcGxldGVkIgorICAgIHJldHVybiB0YXNrX2lkLCB0YXNrX2RhdGEKKworCitkZWYg
YnVpbGRfdGFza19ncmFwaChldmVudCwgYWxsX3Rhc2tzLCB0YXNrcyk6CisgICAgdGFza19pZF9t
YXAgPSBPcmRlcmVkRGljdCgpCisgICAgdGFza2dyb3VwX2lkID0gb3MuZW52aXJvbi5nZXQoIlRB
U0tfSUQiLCB0YXNrY2x1c3Rlci5zbHVnSWQoKSkKKworICAgIGRlZiBhZGRfdGFzayh0YXNrX25h
bWUsIHRhc2spOgorICAgICAgICBkZXBlbmRzX29uX2lkcyA9IFtdCisgICAgICAgIGlmICJkZXBl
bmRzLW9uIiBpbiB0YXNrOgorICAgICAgICAgICAgZm9yIGRlcGVuZHNfbmFtZSBpbiB0YXNrWyJk
ZXBlbmRzLW9uIl06CisgICAgICAgICAgICAgICAgaWYgZGVwZW5kc19uYW1lIG5vdCBpbiB0YXNr
X2lkX21hcDoKKyAgICAgICAgICAgICAgICAgICAgYWRkX3Rhc2soZGVwZW5kc19uYW1lLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBhbGxfdGFza3NbZGVwZW5kc19uYW1lXSkKKyAgICAg
ICAgICAgICAgICBkZXBlbmRzX29uX2lkcy5hcHBlbmQodGFza19pZF9tYXBbZGVwZW5kc19uYW1l
XVswXSkKKyAgICAgICAgdGFza19pZCwgdGFza19kYXRhID0gY3JlYXRlX3RjX3Rhc2soZXZlbnQs
IHRhc2ssIHRhc2tncm91cF9pZCwgZGVwZW5kc19vbl9pZHMpCisgICAgICAgIHRhc2tfaWRfbWFw
W3Rhc2tfbmFtZV0gPSAodGFza19pZCwgdGFza19kYXRhKQorCisgICAgZm9yIHRhc2tfbmFtZSwg
dGFzayBpbiBpdGVyaXRlbXModGFza3MpOgorICAgICAgICBhZGRfdGFzayh0YXNrX25hbWUsIHRh
c2spCisKKyAgICByZXR1cm4gdGFza19pZF9tYXAKKworCitkZWYgY3JlYXRlX3Rhc2tzKHF1ZXVl
LCB0YXNrX2lkX21hcCk6CisgICAgZm9yICh0YXNrX2lkLCB0YXNrX2RhdGEpIGluIGl0ZXJ2YWx1
ZXModGFza19pZF9tYXApOgorICAgICAgICBxdWV1ZS5jcmVhdGVUYXNrKHRhc2tfaWQsIHRhc2tf
ZGF0YSkKKworCitkZWYgZ2V0X2V2ZW50KHF1ZXVlLCBldmVudF9wYXRoKToKKyAgICBpZiBldmVu
dF9wYXRoIGlzIG5vdCBOb25lOgorICAgICAgICB0cnk6CisgICAgICAgICAgICB3aXRoIG9wZW4o
ZXZlbnRfcGF0aCkgYXMgZjoKKyAgICAgICAgICAgICAgICBldmVudF9zdHIgPSBmLnJlYWQoKQor
ICAgICAgICBleGNlcHQgSU9FcnJvcjoKKyAgICAgICAgICAgIGxvZ2dlci5lcnJvcigiTWlzc2lu
ZyBldmVudCBmaWxlIGF0IHBhdGggJXMiICUgZXZlbnRfcGF0aCkKKyAgICAgICAgICAgIHJhaXNl
CisgICAgZWxpZiAiVEFTS19FVkVOVCIgaW4gb3MuZW52aXJvbjoKKyAgICAgICAgZXZlbnRfc3Ry
ID0gb3MuZW52aXJvblsiVEFTS19FVkVOVCJdCisgICAgZWxzZToKKyAgICAgICAgZXZlbnRfc3Ry
ID0gZmV0Y2hfZXZlbnRfZGF0YShxdWV1ZSkKKyAgICBpZiBub3QgZXZlbnRfc3RyOgorICAgICAg
ICByYWlzZSBWYWx1ZUVycm9yKCJDYW4ndCBmaW5kIEdpdEh1YiBldmVudCBkZWZpbml0aW9uOyBm
b3IgbG9jYWwgdGVzdGluZyBwYXNzIC0tZXZlbnQtcGF0aCIpCisgICAgdHJ5OgorICAgICAgICBy
ZXR1cm4ganNvbi5sb2FkcyhldmVudF9zdHIpCisgICAgZXhjZXB0IFZhbHVlRXJyb3I6CisgICAg
ICAgIGxvZ2dlci5lcnJvcigiRXZlbnQgd2FzIG5vdCB2YWxpZCBKU09OIikKKyAgICAgICAgcmFp
c2UKKworCitkZWYgZGVjaWRlKGV2ZW50KToKKyAgICBhbGxfdGFza3MgPSB0YXNrZ3JhcGgubG9h
ZF90YXNrc19mcm9tX3BhdGgob3MucGF0aC5qb2luKGhlcmUsICJ0YXNrcyIsICJ0ZXN0LnltbCIp
KQorCisgICAgdHJpZ2dlcmVkX3Rhc2tzID0gZmlsdGVyX3RyaWdnZXJzKGV2ZW50LCBhbGxfdGFz
a3MpCisgICAgc2NoZWR1bGVkX3Rhc2tzID0gZmlsdGVyX3NjaGVkdWxlX2lmKGV2ZW50LCB0cmln
Z2VyZWRfdGFza3MpCisKKyAgICBsb2dnZXIuaW5mbygiVU5TQ0hFRFVMRUQgVEFTS1M6XG4gICVz
IiAlICJcbiAgIi5qb2luKHNvcnRlZChzZXQoYWxsX3Rhc2tzLmtleXMoKSkgLQorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0KHNj
aGVkdWxlZF90YXNrcy5rZXlzKCkpKSkpCisgICAgbG9nZ2VyLmluZm8oIlNDSEVEVUxFRCBUQVNL
UzpcbiAgJXMiICUgIlxuICAiLmpvaW4oc29ydGVkKHNjaGVkdWxlZF90YXNrcy5rZXlzKCkpKSkK
KworICAgIHRhc2tfaWRfbWFwID0gYnVpbGRfdGFza19ncmFwaChldmVudCwgYWxsX3Rhc2tzLCBz
Y2hlZHVsZWRfdGFza3MpCisgICAgcmV0dXJuIHRhc2tfaWRfbWFwCisKKworZGVmIGdldF9wYXJz
ZXIoKToKKyAgICBwYXJzZXIgPSBhcmdwYXJzZS5Bcmd1bWVudFBhcnNlcigpCisgICAgcGFyc2Vy
LmFkZF9hcmd1bWVudCgiLS1ldmVudC1wYXRoIiwKKyAgICAgICAgICAgICAgICAgICAgICAgIGhl
bHA9IlBhdGggdG8gZmlsZSBjb250YWluaW5nIHNlcmlhbGl6ZWQgR2l0SHViIGV2ZW50IikKKyAg
ICBwYXJzZXIuYWRkX2FyZ3VtZW50KCItLWRyeS1ydW4iLCBhY3Rpb249InN0b3JlX3RydWUiLAor
ICAgICAgICAgICAgICAgICAgICAgICAgaGVscD0iRG9uJ3QgYWN0dWFsbHkgY3JlYXRlIHRoZSB0
YXNrcywganVzdCBvdXRwdXQgdGhlIHRhc2tzIHRoYXQgIgorICAgICAgICAgICAgICAgICAgICAg
ICAgIndvdWxkIGJlIGNyZWF0ZWQiKQorICAgIHBhcnNlci5hZGRfYXJndW1lbnQoIi0tdGFza3Mt
cGF0aCIsCisgICAgICAgICAgICAgICAgICAgICAgICBoZWxwPSJQYXRoIHRvIGZpbGUgaW4gd2hp
Y2ggdG8gd3JpdGUgcGF5bG9hZCBmb3IgYWxsIHNjaGVkdWxlZCB0YXNrcyIpCisgICAgcmV0dXJu
IHBhcnNlcgorCisKK2RlZiBydW4odmVudiwgKiprd2FyZ3MpOgorICAgIHF1ZXVlID0gdGFza2Ns
dXN0ZXIuUXVldWUoeydyb290VXJsJzogb3MuZW52aXJvblsnVEFTS0NMVVNURVJfUFJPWFlfVVJM
J119KQorICAgIGV2ZW50ID0gZ2V0X2V2ZW50KHF1ZXVlLCBldmVudF9wYXRoPWt3YXJnc1siZXZl
bnRfcGF0aCJdKQorCisgICAgdGFza19pZF9tYXAgPSBkZWNpZGUoZXZlbnQpCisKKyAgICB0cnk6
CisgICAgICAgIGlmIG5vdCBrd2FyZ3NbImRyeV9ydW4iXToKKyAgICAgICAgICAgIGNyZWF0ZV90
YXNrcyhxdWV1ZSwgdGFza19pZF9tYXApCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBwcmlu
dChqc29uLmR1bXBzKHRhc2tfaWRfbWFwLCBpbmRlbnQ9MikpCisgICAgZmluYWxseToKKyAgICAg
ICAgaWYga3dhcmdzWyJ0YXNrc19wYXRoIl06CisgICAgICAgICAgICB3aXRoIG9wZW4oa3dhcmdz
WyJ0YXNrc19wYXRoIl0sICJ3IikgYXMgZjoKKyAgICAgICAgICAgICAgICBqc29uLmR1bXAodGFz
a19pZF9tYXAsIGYsIGluZGVudD0yKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9jaS90Yy9kb3dubG9hZC5weSBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvY2kvdGMvZG93bmxvYWQu
cHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uMzU5ZWMzMzQwNTA0OGMxMzRkZGNmYWM3YTU2NGVhOWExN2FjMWIxNAot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvY2kvdGMvZG93bmxvYWQucHkKQEAgLTAsMCArMSwxMDkgQEAKK2ltcG9ydCBh
cmdwYXJzZQoraW1wb3J0IG9zCitpbXBvcnQgbG9nZ2luZworCitpbXBvcnQgcmVxdWVzdHMKKwor
aW1wb3J0IGdpdGh1YgorCisKK2xvZ2dpbmcuYmFzaWNDb25maWcoKQorbG9nZ2VyID0gbG9nZ2lu
Zy5nZXRMb2dnZXIoInRjLWRvd25sb2FkIikKKworIyBUaGUgcm9vdCBVUkwgb2YgdGhlIFRhc2tj
bHVzdGVyIGRlcGxveW1lbnQgZnJvbSB3aGljaCB0byBkb3dubG9hZCB3cHQgcmVwb3J0cworIyAo
YWZ0ZXIgaHR0cHM6Ly9idWd6aWxsYS5tb3ppbGxhLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU3NDY2
OCBsYW5kcywgdGhpcyB3aWxsCisjIGJlIGh0dHBzOi8vY29tbXVuaXR5LXRjLnNlcnZpY2VzLm1v
emlsbGEuY29tKQorVEFTS0NMVVNURVJfUk9PVF9VUkwgPSAnaHR0cHM6Ly90YXNrY2x1c3Rlci5u
ZXQnCisKKworZGVmIGdldF9wYXJzZXIoKToKKyAgICBwYXJzZXIgPSBhcmdwYXJzZS5Bcmd1bWVu
dFBhcnNlcigpCisgICAgcGFyc2VyLmFkZF9hcmd1bWVudCgiLS1yZWYiLCBhY3Rpb249InN0b3Jl
IiwgZGVmYXVsdD0ibWFzdGVyIiwKKyAgICAgICAgICAgICAgICAgICAgICAgIGhlbHA9IkJyYW5j
aCAoaW4gdGhlIEdpdEh1YiByZXBvc2l0b3J5KSBvciBjb21taXQgdG8gZmV0Y2ggbG9ncyBmb3Ii
KQorICAgIHBhcnNlci5hZGRfYXJndW1lbnQoIi0tYXJ0aWZhY3QtbmFtZSIsIGFjdGlvbj0ic3Rv
cmUiLCBkZWZhdWx0PSJ3cHRfcmVwb3J0Lmpzb24uZ3oiLAorICAgICAgICAgICAgICAgICAgICAg
ICAgaGVscD0iTG9nIHR5cGUgdG8gZmV0Y2giKQorICAgIHBhcnNlci5hZGRfYXJndW1lbnQoIi0t
cmVwby1uYW1lIiwgYWN0aW9uPSJzdG9yZSIsIGRlZmF1bHQ9IndlYi1wbGF0Zm9ybS10ZXN0cy93
cHQiLAorICAgICAgICAgICAgICAgICAgICAgICAgaGVscD0iR2l0SHViIHJlcG8gbmFtZSBpbiB0
aGUgZm9ybWF0IG93bmVyL3JlcG8uICIKKyAgICAgICAgICAgICAgICAgICAgICAgICJUaGlzIG11
c3QgYmUgdGhlIHJlcG8gZnJvbSB3aGljaCB0aGUgVGFza2NsdXN0ZXIgcnVuIHdhcyBzY2hlZHVs
ZWQgIgorICAgICAgICAgICAgICAgICAgICAgICAgIihmb3IgUFJzIHRoaXMgaXMgdGhlIHJlcG8g
aW50byB3aGljaCB0aGUgUFIgd291bGQgbWVyZ2UpIikKKyAgICBwYXJzZXIuYWRkX2FyZ3VtZW50
KCItLXRva2VuLWZpbGUiLCBhY3Rpb249InN0b3JlIiwKKyAgICAgICAgICAgICAgICAgICAgICAg
IGhlbHA9IkZpbGUgY29udGFpbmluZyBHaXRIdWIgdG9rZW4iKQorICAgIHBhcnNlci5hZGRfYXJn
dW1lbnQoIi0tb3V0LWRpciIsIGFjdGlvbj0ic3RvcmUiLCBkZWZhdWx0PSIuIiwKKyAgICAgICAg
ICAgICAgICAgICAgICAgIGhlbHA9IlBhdGggdG8gc2F2ZSB0aGUgbG9nZmlsZXMiKQorICAgIHJl
dHVybiBwYXJzZXIKKworCitkZWYgZ2V0X2pzb24odXJsLCBrZXk9Tm9uZSk6CisgICAgcmVzcCA9
IHJlcXVlc3RzLmdldCh1cmwpCisgICAgcmVzcC5yYWlzZV9mb3Jfc3RhdHVzKCkKKyAgICBkYXRh
ID0gcmVzcC5qc29uKCkKKyAgICBpZiBrZXk6CisgICAgICAgIGRhdGEgPSBkYXRhW2tleV0KKyAg
ICByZXR1cm4gZGF0YQorCisKK2RlZiBnZXQodXJsLCBkZXN0LCBuYW1lKToKKyAgICByZXNwID0g
cmVxdWVzdHMuZ2V0KHVybCkKKyAgICByZXNwLnJhaXNlX2Zvcl9zdGF0dXMoKQorICAgIHBhdGgg
PSBvcy5wYXRoLmpvaW4oZGVzdCwgbmFtZSkKKyAgICB3aXRoIG9wZW4ocGF0aCwgInciKSBhcyBm
OgorICAgICAgICBmLndyaXRlKHJlc3AuY29udGVudCkKKyAgICByZXR1cm4gcGF0aAorCisKK2Rl
ZiBydW4oKmFyZ3MsICoqa3dhcmdzKToKKyAgICBpZiBub3Qgb3MucGF0aC5leGlzdHMoa3dhcmdz
WyJvdXRfZGlyIl0pOgorICAgICAgICBvcy5ta2Rpcihrd2FyZ3NbIm91dF9kaXIiXSkKKworICAg
IGlmIGt3YXJnc1sidG9rZW5fZmlsZSJdOgorICAgICAgICB3aXRoIG9wZW4oa3dhcmdzWyJ0b2tl
bl9maWxlIl0pIGFzIGY6CisgICAgICAgICAgICBnaCA9IGdpdGh1Yi5HaXRodWIoZi5yZWFkKCku
c3RyaXAoKSkKKyAgICBlbHNlOgorICAgICAgICBnaCA9IGdpdGh1Yi5HaXRodWIoKQorCisgICAg
cmVwbyA9IGdoLmdldF9yZXBvKGt3YXJnc1sicmVwb19uYW1lIl0pCisgICAgY29tbWl0ID0gcmVw
by5nZXRfY29tbWl0KGt3YXJnc1sicmVmIl0pCisgICAgc3RhdHVzZXMgPSBjb21taXQuZ2V0X3N0
YXR1c2VzKCkKKyAgICB0YXNrZ3JvdXBzID0gc2V0KCkKKworICAgIGZvciBzdGF0dXMgaW4gc3Rh
dHVzZXM6CisgICAgICAgIGlmIG5vdCBzdGF0dXMuY29udGV4dC5zdGFydHN3aXRoKCJUYXNrY2x1
c3RlciAiKToKKyAgICAgICAgICAgIGNvbnRpbnVlCisgICAgICAgIGlmIHN0YXR1cy5zdGF0ZSA9
PSAicGVuZGluZyI6CisgICAgICAgICAgICBjb250aW51ZQorICAgICAgICB0YXNrZ3JvdXBfaWQg
PSBzdGF0dXMudGFyZ2V0X3VybC5yc3BsaXQoIi8iLCAxKVsxXQorICAgICAgICB0YXNrZ3JvdXBz
LmFkZCh0YXNrZ3JvdXBfaWQpCisKKyAgICBpZiBub3QgdGFza2dyb3VwczoKKyAgICAgICAgbG9n
Z2VyLmVycm9yKCJObyBjb21wbGV0ZSBUYXNrY2x1c3RlciBydW5zIGZvdW5kIGZvciByZWYgJXMi
ICUga3dhcmdzWyJyZWYiXSkKKyAgICAgICAgcmV0dXJuIDEKKworICAgIGZvciB0YXNrZ3JvdXAg
aW4gdGFza2dyb3VwczoKKyAgICAgICAgaWYgVEFTS0NMVVNURVJfUk9PVF9VUkwgPT0gJ2h0dHBz
Oi8vdGFza2NsdXN0ZXIubmV0JzoKKyAgICAgICAgICAgICMgTk9URTogdGhpcyBjb25kaXRpb24g
Y2FuIGJlIHJlbW92ZWQgYWZ0ZXIgTm92ZW1iZXIgOSwgMjAxOQorICAgICAgICAgICAgdGFza2dy
b3VwX3VybCA9ICJodHRwczovL3F1ZXVlLnRhc2tjbHVzdGVyLm5ldC92MS90YXNrLWdyb3VwLyVz
L2xpc3QiCisgICAgICAgICAgICBhcnRpZmFjdHNfbGlzdF91cmwgPSAiaHR0cHM6Ly9xdWV1ZS50
YXNrY2x1c3Rlci5uZXQvdjEvdGFzay8lcy9hcnRpZmFjdHMiCisgICAgICAgIGVsc2U6CisgICAg
ICAgICAgICB0YXNrZ3JvdXBfdXJsID0gVEFTS0NMVVNURVJfUk9PVF9VUkwgKyAiL2FwaS9xdWV1
ZS92MS90YXNrLWdyb3VwLyVzL2xpc3QiCisgICAgICAgICAgICBhcnRpZmFjdHNfbGlzdF91cmwg
PSBUQVNLQ0xVU1RFUl9ST09UX1VSTCArICIvYXBpL3F1ZXVlL3YxL3Rhc2svJXMvYXJ0aWZhY3Rz
IgorICAgICAgICB0YXNrcyA9IGdldF9qc29uKHRhc2tncm91cF91cmwgJSB0YXNrZ3JvdXAsICJ0
YXNrcyIpCisgICAgICAgIGZvciB0YXNrIGluIHRhc2tzOgorICAgICAgICAgICAgdGFza19pZCA9
IHRhc2tbInN0YXR1cyJdWyJ0YXNrSWQiXQorICAgICAgICAgICAgdXJsID0gYXJ0aWZhY3RzX2xp
c3RfdXJsICUgKHRhc2tfaWQsKQorICAgICAgICAgICAgZm9yIGFydGlmYWN0IGluIGdldF9qc29u
KHVybCwgImFydGlmYWN0cyIpOgorICAgICAgICAgICAgICAgIGlmIGFydGlmYWN0WyJuYW1lIl0u
ZW5kc3dpdGgoa3dhcmdzWyJhcnRpZmFjdF9uYW1lIl0pOgorICAgICAgICAgICAgICAgICAgICBm
aWxlbmFtZSA9ICIlcy0lcy0lcyIgJSAodGFza1sidGFzayJdWyJtZXRhZGF0YSJdWyJuYW1lIl0s
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YXNrX2lkLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga3dhcmdzWyJhcnRp
ZmFjdF9uYW1lIl0pCisgICAgICAgICAgICAgICAgICAgIHBhdGggPSBnZXQoIiVzLyVzIiAlICh1
cmwsIGFydGlmYWN0WyJuYW1lIl0pLCBrd2FyZ3NbIm91dF9kaXIiXSwgZmlsZW5hbWUpCisgICAg
ICAgICAgICAgICAgICAgIGxvZ2dlci5pbmZvKHBhdGgpCisKKworZGVmIG1haW4oKToKKyAgICBr
d2FyZ3MgPSBnZXRfcGFyc2VyKCkucGFyc2VfYXJncygpCisKKyAgICBydW4oTm9uZSwgdmFycyhr
d2FyZ3MpKQorCisKK2lmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CisgICAgbWFpbigpCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L2NpL3RjL3Rhc2tncmFwaC5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvY2kvdGMvdGFza2dyYXBoLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjZhNmNiNDk3ZjJk
NDA2ODYyZDE4YmMyMTRkMzZjMWVhMmVjZDdjM2UKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2NpL3RjL3Rhc2tncmFw
aC5weQpAQCAtMCwwICsxLDE3MCBAQAoraW1wb3J0IGpzb24KK2ltcG9ydCBvcworaW1wb3J0IHJl
Citmcm9tIGNvcHkgaW1wb3J0IGRlZXBjb3B5CisKK2ltcG9ydCBzaXgKK2ltcG9ydCB5YW1sCitm
cm9tIHNpeCBpbXBvcnQgaXRlcml0ZW1zCisKK2hlcmUgPSBvcy5wYXRoLmRpcm5hbWUoX19maWxl
X18pCisKKworZGVmIGZpcnN0KGl0ZXJhYmxlKToKKyAgICAjIEZpcnN0IGl0ZW0gZnJvbSBhIGxp
c3Qgb3IgaXRlcmF0b3IKKyAgICBpZiBub3QgaGFzYXR0cihpdGVyYWJsZSwgIm5leHQiKToKKyAg
ICAgICAgaWYgaGFzYXR0cihpdGVyYWJsZSwgIl9faXRlcl9fIik6CisgICAgICAgICAgICBpdGVy
YWJsZSA9IGl0ZXIoaXRlcmFibGUpCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICByYWlzZSBW
YWx1ZUVycm9yKCJPYmplY3QgaXNuJ3QgaXRlcmFibGUiKQorICAgIHJldHVybiBuZXh0KGl0ZXJh
YmxlKQorCisKK2RlZiBsb2FkX3Rhc2tfZmlsZShwYXRoKToKKyAgICB3aXRoIG9wZW4ocGF0aCkg
YXMgZjoKKyAgICAgICAgcmV0dXJuIHlhbWwuc2FmZV9sb2FkKGYpCisKKworZGVmIHVwZGF0ZV9y
ZWN1cnNpdmUoZGF0YSwgdXBkYXRlX2RhdGEpOgorICAgIGZvciBrZXksIHZhbHVlIGluIGl0ZXJp
dGVtcyh1cGRhdGVfZGF0YSk6CisgICAgICAgIGlmIGtleSBub3QgaW4gZGF0YToKKyAgICAgICAg
ICAgIGRhdGFba2V5XSA9IHZhbHVlCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBpbml0aWFs
X3ZhbHVlID0gZGF0YVtrZXldCisgICAgICAgICAgICBpZiBpc2luc3RhbmNlKHZhbHVlLCBkaWN0
KToKKyAgICAgICAgICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShpbml0aWFsX3ZhbHVlLCBkaWN0
KToKKyAgICAgICAgICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigiVmFyaWFibGUgJXMgaGFz
IGluY29uc2lzdGVudCB0eXBlcyAiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIihleHBlY3RlZCBvYmplY3QpIiAlIGtleSkKKyAgICAgICAgICAgICAgICB1cGRhdGVfcmVj
dXJzaXZlKGluaXRpYWxfdmFsdWUsIHZhbHVlKQorICAgICAgICAgICAgZWxpZiBpc2luc3RhbmNl
KHZhbHVlLCBsaXN0KToKKyAgICAgICAgICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShpbml0aWFs
X3ZhbHVlLCBsaXN0KToKKyAgICAgICAgICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigiVmFy
aWFibGUgJXMgaGFzIGluY29uc2lzdGVudCB0eXBlcyAiCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIihleHBlY3RlZCBsaXN0KSIgJSBrZXkpCisgICAgICAgICAgICAgICAg
aW5pdGlhbF92YWx1ZS5leHRlbmQodmFsdWUpCisgICAgICAgICAgICBlbHNlOgorICAgICAgICAg
ICAgICAgIGRhdGFba2V5XSA9IHZhbHVlCisKKworZGVmIHJlc29sdmVfdXNlKHRhc2tfZGF0YSwg
dGVtcGxhdGVzKToKKyAgICBydiA9IHt9CisgICAgaWYgInVzZSIgaW4gdGFza19kYXRhOgorICAg
ICAgICBmb3IgdGVtcGxhdGVfbmFtZSBpbiB0YXNrX2RhdGFbInVzZSJdOgorICAgICAgICAgICAg
dXBkYXRlX3JlY3Vyc2l2ZShydiwgZGVlcGNvcHkodGVtcGxhdGVzW3RlbXBsYXRlX25hbWVdKSkK
KyAgICB1cGRhdGVfcmVjdXJzaXZlKHJ2LCB0YXNrX2RhdGEpCisgICAgcnYucG9wKCJ1c2UiLCBO
b25lKQorICAgIHJldHVybiBydgorCisKK2RlZiByZXNvbHZlX25hbWUodGFza19kYXRhLCBkZWZh
dWx0X25hbWUpOgorICAgIGlmICJuYW1lIiBub3QgaW4gdGFza19kYXRhOgorICAgICAgICB0YXNr
X2RhdGFbIm5hbWUiXSA9IGRlZmF1bHRfbmFtZQorICAgIHJldHVybiB0YXNrX2RhdGEKKworCitk
ZWYgcmVzb2x2ZV9jaHVua3ModGFza19kYXRhKToKKyAgICBpZiAiY2h1bmtzIiBub3QgaW4gdGFz
a19kYXRhOgorICAgICAgICByZXR1cm4gW3Rhc2tfZGF0YV0KKyAgICBydiA9IFtdCisgICAgdG90
YWxfY2h1bmtzID0gdGFza19kYXRhWyJjaHVua3MiXQorICAgIGZvciBpIGluIHJhbmdlKDEsIHRv
dGFsX2NodW5rcyArIDEpOgorICAgICAgICBjaHVua19kYXRhID0gZGVlcGNvcHkodGFza19kYXRh
KQorICAgICAgICBjaHVua19kYXRhWyJjaHVua3MiXSA9IHsiaWQiOiBpLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAidG90YWwiOiB0b3RhbF9jaHVua3N9CisgICAgICAgIHJ2LmFw
cGVuZChjaHVua19kYXRhKQorICAgIHJldHVybiBydgorCisKK2RlZiByZXBsYWNlX3ZhcnMoaW5w
dXRfc3RyaW5nLCB2YXJpYWJsZXMpOgorICAgICMgVE9ETzogc3VwcG9ydCByZXBsYWNpbmcgYXMg
YSBub24tc3RyaW5nIHR5cGU/CisgICAgdmFyaWFibGVfcmUgPSByZS5jb21waWxlKHIiKD88IVxc
KVwkeyhbXn1dKyl9IikKKworICAgIGRlZiByZXBsYWNlcihtKToKKyAgICAgICAgdmFyID0gbS5n
cm91cCgxKS5zcGxpdCgiLiIpCisgICAgICAgIHJlcGwgPSB2YXJpYWJsZXMKKyAgICAgICAgZm9y
IHBhcnQgaW4gdmFyOgorICAgICAgICAgICAgdHJ5OgorICAgICAgICAgICAgICAgIHJlcGwgPSBy
ZXBsW3BhcnRdCisgICAgICAgICAgICBleGNlcHQgRXhjZXB0aW9uOgorICAgICAgICAgICAgICAg
ICMgRG9uJ3Qgc3Vic3RpdHV0ZQorICAgICAgICAgICAgICAgIHJldHVybiBtLmdyb3VwKDApCisg
ICAgICAgIHJldHVybiBzdHIocmVwbCkKKworICAgIHJldHVybiB2YXJpYWJsZV9yZS5zdWIocmVw
bGFjZXIsIGlucHV0X3N0cmluZykKKworCitkZWYgc3ViX3ZhcmlhYmxlcyhkYXRhLCB2YXJpYWJs
ZXMpOgorICAgIGlmIGlzaW5zdGFuY2UoZGF0YSwgc2l4LnN0cmluZ190eXBlcyk6CisgICAgICAg
IHJldHVybiByZXBsYWNlX3ZhcnMoZGF0YSwgdmFyaWFibGVzKQorICAgIGlmIGlzaW5zdGFuY2Uo
ZGF0YSwgbGlzdCk6CisgICAgICAgIHJldHVybiBbc3ViX3ZhcmlhYmxlcyhpdGVtLCB2YXJpYWJs
ZXMpIGZvciBpdGVtIGluIGRhdGFdCisgICAgaWYgaXNpbnN0YW5jZShkYXRhLCBkaWN0KToKKyAg
ICAgICAgcmV0dXJuIHtrZXk6IHN1Yl92YXJpYWJsZXModmFsdWUsIHZhcmlhYmxlcykKKyAgICAg
ICAgICAgICAgICBmb3Iga2V5LCB2YWx1ZSBpbiBpdGVyaXRlbXMoZGF0YSl9CisgICAgcmV0dXJu
IGRhdGEKKworCitkZWYgc3Vic3RpdHV0ZV92YXJpYWJsZXModGFzayk6CisgICAgdmFyaWFibGVz
ID0geyJ2YXJzIjogdGFzay5nZXQoInZhcnMiLCB7fSksCisgICAgICAgICAgICAgICAgICJjaHVu
a3MiOiB0YXNrLmdldCgiY2h1bmtzIiwge30pfQorCisgICAgcmV0dXJuIHN1Yl92YXJpYWJsZXMo
dGFzaywgdmFyaWFibGVzKQorCisKK2RlZiBleHBhbmRfbWFwcyh0YXNrKToKKyAgICBuYW1lID0g
Zmlyc3QodGFzay5rZXlzKCkpCisgICAgaWYgbmFtZSAhPSAiJG1hcCI6CisgICAgICAgIHJldHVy
biBbdGFza10KKworICAgIG1hcF9kYXRhID0gdGFza1siJG1hcCJdCisgICAgaWYgc2V0KG1hcF9k
YXRhLmtleXMoKSkgIT0gc2V0KFsiZm9yIiwgImRvIl0pOgorICAgICAgICByYWlzZSBWYWx1ZUVy
cm9yKCIkbWFwIG9iamVjdHMgbXVzdCBoYXZlIGV4YWN0bHkgdHdvIHByb3BlcnRpZXMgbmFtZWQg
J2ZvcicgIgorICAgICAgICAgICAgICAgICAgICAgICAgICJhbmQgJ2RvJyAoZ290ICVzKSIgJSAo
Im5vIHByb3BlcnRpZXMiIGlmIG5vdCBtYXBfZGF0YS5rZXlzKCkKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgIiwgIi4gam9pbihtYXBfZGF0YS5r
ZXlzKCkpKSkKKyAgICBydiA9IFtdCisgICAgZm9yIGZvcl9kYXRhIGluIG1hcF9kYXRhWyJmb3Ii
XToKKyAgICAgICAgZG9faXRlbXMgPSBtYXBfZGF0YVsiZG8iXQorICAgICAgICBpZiBub3QgaXNp
bnN0YW5jZShkb19pdGVtcywgbGlzdCk6CisgICAgICAgICAgICBkb19pdGVtcyA9IGV4cGFuZF9t
YXBzKGRvX2l0ZW1zKQorICAgICAgICBmb3IgZG9fZGF0YSBpbiBkb19pdGVtczoKKyAgICAgICAg
ICAgIHRhc2tfZGF0YSA9IGRlZXBjb3B5KGZvcl9kYXRhKQorICAgICAgICAgICAgaWYgbGVuKGRv
X2RhdGEua2V5cygpKSAhPSAxOgorICAgICAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoIkVh
Y2ggaXRlbSBpbiB0aGUgJ2RvJyBsaXN0IG11c3QgYmUgYW4gb2JqZWN0ICIKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICJ3aXRoIGEgc2luZ2xlIHByb3BlcnR5IikKKyAgICAgICAg
ICAgIG5hbWUgPSBmaXJzdChkb19kYXRhLmtleXMoKSkKKyAgICAgICAgICAgIHVwZGF0ZV9yZWN1
cnNpdmUodGFza19kYXRhLCBkZWVwY29weShkb19kYXRhW25hbWVdKSkKKyAgICAgICAgICAgIHJ2
LmFwcGVuZCh7bmFtZTogdGFza19kYXRhfSkKKyAgICByZXR1cm4gcnYKKworCitkZWYgbG9hZF90
YXNrcyh0YXNrc19kYXRhKToKKyAgICBtYXBfcmVzb2x2ZWRfdGFza3MgPSB7fQorICAgIHRhc2tz
ID0gW10KKworICAgIGZvciB0YXNrIGluIHRhc2tzX2RhdGFbInRhc2tzIl06CisgICAgICAgIGlm
IGxlbih0YXNrLmtleXMoKSkgIT0gMToKKyAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoIkVh
Y2ggdGFzayBtdXN0IGJlIGFuIG9iamVjdCB3aXRoIGEgc2luZ2xlIHByb3BlcnR5IikKKyAgICAg
ICAgZm9yIHRhc2sgaW4gZXhwYW5kX21hcHModGFzayk6CisgICAgICAgICAgICBpZiBsZW4odGFz
ay5rZXlzKCkpICE9IDE6CisgICAgICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigiRWFjaCB0
YXNrIG11c3QgYmUgYW4gb2JqZWN0IHdpdGggYSBzaW5nbGUgcHJvcGVydHkiKQorICAgICAgICAg
ICAgbmFtZSA9IGZpcnN0KHRhc2sua2V5cygpKQorICAgICAgICAgICAgZGF0YSA9IHRhc2tbbmFt
ZV0KKyAgICAgICAgICAgIG5ld19uYW1lID0gc3ViX3ZhcmlhYmxlcyhuYW1lLCB7InZhcnMiOiBk
YXRhLmdldCgidmFycyIsIHt9KX0pCisgICAgICAgICAgICBpZiBuZXdfbmFtZSBpbiBtYXBfcmVz
b2x2ZWRfdGFza3M6CisgICAgICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigiR290IGR1cGxp
Y2F0ZSB0YXNrIG5hbWUgJXMiICUgbmV3X25hbWUpCisgICAgICAgICAgICBtYXBfcmVzb2x2ZWRf
dGFza3NbbmV3X25hbWVdID0gc3Vic3RpdHV0ZV92YXJpYWJsZXMoZGF0YSkKKworICAgIGZvciB0
YXNrX2RlZmF1bHRfbmFtZSwgZGF0YSBpbiBpdGVyaXRlbXMobWFwX3Jlc29sdmVkX3Rhc2tzKToK
KyAgICAgICAgdGFzayA9IHJlc29sdmVfdXNlKGRhdGEsIHRhc2tzX2RhdGFbImNvbXBvbmVudHMi
XSkKKyAgICAgICAgdGFzayA9IHJlc29sdmVfbmFtZSh0YXNrLCB0YXNrX2RlZmF1bHRfbmFtZSkK
KyAgICAgICAgdGFza3MuZXh0ZW5kKHJlc29sdmVfY2h1bmtzKHRhc2spKQorCisgICAgdGFza3Mg
PSBbc3Vic3RpdHV0ZV92YXJpYWJsZXModGFza19kYXRhKSBmb3IgdGFza19kYXRhIGluIHRhc2tz
XQorICAgIHJldHVybiB7dGFza1sibmFtZSJdOiB0YXNrIGZvciB0YXNrIGluIHRhc2tzfQorCisK
K2RlZiBsb2FkX3Rhc2tzX2Zyb21fcGF0aChwYXRoKToKKyAgICByZXR1cm4gbG9hZF90YXNrcyhs
b2FkX3Rhc2tfZmlsZShwYXRoKSkKKworCitkZWYgcnVuKHZlbnYsICoqa3dhcmdzKToKKyAgICBw
cmludChqc29uLmR1bXBzKGxvYWRfdGFza3NfZnJvbV9wYXRoKG9zLnBhdGguam9pbihoZXJlLCAi
dGFza3MiLCAidGVzdC55bWwiKSksIGluZGVudD0yKSkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvY2kvdGMvdGFza3MvdGVzdC55
bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2Np
L3RjL3Rhc2tzL3Rlc3QueW1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmE2NGVmMzc0OTIxMWJiYjJiMzU4MGVmYzJl
ZWUzZWE1YTgxMGVhNmYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2NpL3RjL3Rhc2tzL3Rlc3QueW1sCkBAIC0wLDAg
KzEsMzcwIEBACitjb21wb25lbnRzOgorICB3cHQtYmFzZToKKyAgICBwcm92aXNpb25lcklkOiBw
cm9qLXdwdAorICAgIHdvcmtlclR5cGU6IGNpCisgICAgc2NoZWR1bGVySWQ6IHRhc2tjbHVzdGVy
LWdpdGh1YgorICAgIGRlYWRsaW5lOiAiMjQgaG91cnMiCisgICAgaW1hZ2U6IGhhcmpnYW0vd2Vi
LXBsYXRmb3JtLXRlc3RzOjAuMzMKKyAgICBtYXhSdW5UaW1lOiA3MjAwCisgICAgYXJ0aWZhY3Rz
OgorICAgICAgcHVibGljL3Jlc3VsdHM6CisgICAgICAgIHBhdGg6IC9ob21lL3Rlc3QvYXJ0aWZh
Y3RzCisgICAgICAgIHR5cGU6IGRpcmVjdG9yeQorCisgIHdwdC10ZXN0aGFybmVzczoKKyAgICBj
aHVua3M6IDE2CisgICAgdmFyczoKKyAgICAgIHRlc3QtdHlwZTogdGVzdGhhcm5lc3MKKworICB3
cHQtcmVmdGVzdDoKKyAgICBjaHVua3M6IDUKKyAgICB2YXJzOgorICAgICAgdGVzdC10eXBlOiBy
ZWZ0ZXN0CisKKyAgd3B0LXdkc3BlYzoKKyAgICBjaHVua3M6IDEKKyAgICB2YXJzOgorICAgICAg
dGVzdC10eXBlOiB3ZHNwZWMKKworICBydW4tb3B0aW9uczoKKyAgICBvcHRpb25zOgorICAgICAg
eHZmYjogdHJ1ZQorICAgICAgb29tLWtpbGxlcjogdHJ1ZQorICAgICAgaG9zdHM6IHRydWUKKyAg
ICAgIGluc3RhbGwtY2VydGlmaWNhdGVzOiB0cnVlCisKKyAgd3B0LXJ1bjoKKyAgICBuYW1lOiB3
cHQtJHt2YXJzLmJyb3dzZXJ9LSR7dmFycy5jaGFubmVsfS0ke3ZhcnMuc3VpdGV9LSR7Y2h1bmtz
LmlkfQorICAgIG9wdGlvbnM6CisgICAgICBicm93c2VyOgorICAgICAgICAtICR7dmFycy5icm93
c2VyfQorICAgICAgY2hhbm5lbDogJHt2YXJzLmNoYW5uZWx9CisgICAgY29tbWFuZDogPi0KKyAg
ICAgIC4vdG9vbHMvY2kvdGFza2NsdXN0ZXItcnVuLnB5CisgICAgICAke3ZhcnMuYnJvd3Nlcn0K
KyAgICAgIC0tCisgICAgICAtLWNoYW5uZWw9JHt2YXJzLmNoYW5uZWx9CisgICAgICAtLWxvZy13
cHRyZXBvcnQ9Li4vYXJ0aWZhY3RzL3dwdF9yZXBvcnQuanNvbgorICAgICAgLS1sb2ctd3B0c2Ny
ZWVuc2hvdD0uLi9hcnRpZmFjdHMvd3B0X3NjcmVlbnNob3QudHh0CisgICAgICAtLW5vLWZhaWwt
b24tdW5leHBlY3RlZAorICAgICAgLS10aGlzLWNodW5rPSR7Y2h1bmtzLmlkfQorICAgICAgLS10
b3RhbC1jaHVua3M9JHtjaHVua3MudG90YWx9CisgICAgICAtLXRlc3QtdHlwZT0ke3ZhcnMuc3Vp
dGV9CisgIHRyaWdnZXItbWFzdGVyOgorICAgIHRyaWdnZXI6CisgICAgICBicmFuY2g6CisgICAg
ICAgIC0gbWFzdGVyCisKKyAgdHJpZ2dlci1wdXNoOgorICAgIHRyaWdnZXI6CisgICAgICBicmFu
Y2g6CisgICAgICAgIC0gdHJpZ2dlcnMvJHt2YXJzLmJyb3dzZXJ9XyR7dmFycy5jaGFubmVsfQor
CisgIHRyaWdnZXItZGFpbHk6CisgICAgdHJpZ2dlcjoKKyAgICAgIGJyYW5jaDoKKyAgICAgICAg
LSBlcG9jaHMvZGFpbHkKKworICB0cmlnZ2VyLXdlZWtseToKKyAgICB0cmlnZ2VyOgorICAgICAg
YnJhbmNoOgorICAgICAgICAtIGVwb2Nocy93ZWVrbHkKKworICB0cmlnZ2VyLXByOgorICAgIHRy
aWdnZXI6CisgICAgICBwdWxsLXJlcXVlc3Q6CisKKyAgYnJvd3Nlci1maXJlZm94OgorICAgIGRl
cGVuZHMtb246CisgICAgICAtIGRvd25sb2FkLWZpcmVmb3gtJHt2YXJzLmNoYW5uZWx9CisKKyAg
YnJvd3Nlci13ZWJraXRndGtfbWluaWJyb3dzZXI6IHt9CisKKyAgYnJvd3Nlci1jaHJvbWU6IHt9
CisKKyAgdG94LXB5dGhvbjI6CisgICAgZW52OgorICAgICAgVE9YRU5WOiBweTI3CisgICAgICBQ
WV9DT0xPUlM6IDAKKworICB0b3gtcHl0aG9uMzoKKyAgICBlbnY6CisgICAgICBUT1hFTlY6IHB5
MzYKKyAgICAgIFBZX0NPTE9SUzogMAorICAgIGluc3RhbGw6CisgICAgICAtIHB5dGhvbjMtcGlw
CisKKyAgdGVzdHMtYWZmZWN0ZWQ6CisgICAgb3B0aW9uczoKKyAgICAgIGJyb3dzZXI6CisgICAg
ICAgIC0gJHt2YXJzLmJyb3dzZXJ9CisgICAgICBjaGFubmVsOiAke3ZhcnMuY2hhbm5lbH0KKyAg
ICBzY2hlZHVsZS1pZjoKKyAgICAgIHJ1bi1qb2I6CisgICAgICAgIC0gYWZmZWN0ZWRfdGVzdHMK
KwordGFza3M6CisgICMgUnVuIGZ1bGwgc3VpdGVzIG9uIHB1c2gKKyAgLSAkbWFwOgorICAgICAg
Zm9yOgorICAgICAgICAtIHZhcnM6CisgICAgICAgICAgICBzdWl0ZTogdGVzdGhhcm5lc3MKKyAg
ICAgICAgLSB2YXJzOgorICAgICAgICAgICAgc3VpdGU6IHJlZnRlc3QKKyAgICAgICAgLSB2YXJz
OgorICAgICAgICAgICAgc3VpdGU6IHdkc3BlYworICAgICAgZG86CisgICAgICAgICRtYXA6Cisg
ICAgICAgICAgZm9yOgorICAgICAgICAgICAgLSB2YXJzOgorICAgICAgICAgICAgICAgIGJyb3dz
ZXI6IGZpcmVmb3gKKyAgICAgICAgICAgICAgICBjaGFubmVsOiBuaWdodGx5CisgICAgICAgICAg
ICAgIHVzZToKKyAgICAgICAgICAgICAgICAtIHRyaWdnZXItbWFzdGVyCisgICAgICAgICAgICAg
ICAgLSB0cmlnZ2VyLXB1c2gKKyAgICAgICAgICAgIC0gdmFyczoKKyAgICAgICAgICAgICAgICBi
cm93c2VyOiBmaXJlZm94CisgICAgICAgICAgICAgICAgY2hhbm5lbDogYmV0YQorICAgICAgICAg
ICAgICB1c2U6CisgICAgICAgICAgICAgICAgLSB0cmlnZ2VyLXdlZWtseQorICAgICAgICAgICAg
ICAgIC0gdHJpZ2dlci1wdXNoCisgICAgICAgICAgICAtIHZhcnM6CisgICAgICAgICAgICAgICAg
YnJvd3NlcjogZmlyZWZveAorICAgICAgICAgICAgICAgIGNoYW5uZWw6IHN0YWJsZQorICAgICAg
ICAgICAgICB1c2U6CisgICAgICAgICAgICAgICAgLSB0cmlnZ2VyLWRhaWx5CisgICAgICAgICAg
ICAgICAgLSB0cmlnZ2VyLXB1c2gKKyAgICAgICAgICAgIC0gdmFyczoKKyAgICAgICAgICAgICAg
ICBicm93c2VyOiBjaHJvbWUKKyAgICAgICAgICAgICAgICBjaGFubmVsOiBkZXYKKyAgICAgICAg
ICAgICAgdXNlOgorICAgICAgICAgICAgICAgIC0gdHJpZ2dlci1tYXN0ZXIKKyAgICAgICAgICAg
ICAgICAtIHRyaWdnZXItcHVzaAorICAgICAgICAgICAgLSB2YXJzOgorICAgICAgICAgICAgICAg
IGJyb3dzZXI6IGNocm9tZQorICAgICAgICAgICAgICAgIGNoYW5uZWw6IGJldGEKKyAgICAgICAg
ICAgICAgdXNlOgorICAgICAgICAgICAgICAgIC0gdHJpZ2dlci13ZWVrbHkKKyAgICAgICAgICAg
ICAgICAtIHRyaWdnZXItcHVzaAorICAgICAgICAgICAgLSB2YXJzOgorICAgICAgICAgICAgICAg
IGJyb3dzZXI6IGNocm9tZQorICAgICAgICAgICAgICAgIGNoYW5uZWw6IHN0YWJsZQorICAgICAg
ICAgICAgICB1c2U6CisgICAgICAgICAgICAgICAgLSB0cmlnZ2VyLWRhaWx5CisgICAgICAgICAg
ICAgICAgLSB0cmlnZ2VyLXB1c2gKKyAgICAgICAgICAgIC0gdmFyczoKKyAgICAgICAgICAgICAg
ICBicm93c2VyOiB3ZWJraXRndGtfbWluaWJyb3dzZXIKKyAgICAgICAgICAgICAgICBjaGFubmVs
OiBuaWdodGx5CisgICAgICAgICAgICAgIHVzZToKKyAgICAgICAgICAgICAgICAtIHRyaWdnZXIt
ZGFpbHkKKyAgICAgICAgICAgICAgICAtIHRyaWdnZXItcHVzaAorICAgICAgICAgICAgLSB2YXJz
OgorICAgICAgICAgICAgICAgIGJyb3dzZXI6IHdlYmtpdGd0a19taW5pYnJvd3NlcgorICAgICAg
ICAgICAgICAgIGNoYW5uZWw6IHN0YWJsZQorICAgICAgICAgICAgICB1c2U6CisgICAgICAgICAg
ICAgICAgLSB0cmlnZ2VyLXdlZWtseQorICAgICAgICAgICAgICAgIC0gdHJpZ2dlci1wdXNoCisK
KyAgICAgICAgICBkbzoKKyAgICAgICAgICAgIC0gJHt2YXJzLmJyb3dzZXJ9LSR7dmFycy5jaGFu
bmVsfS0ke3ZhcnMuc3VpdGV9OgorICAgICAgICAgICAgICAgIHVzZToKKyAgICAgICAgICAgICAg
ICAgIC0gd3B0LWJhc2UKKyAgICAgICAgICAgICAgICAgIC0gcnVuLW9wdGlvbnMKKyAgICAgICAg
ICAgICAgICAgIC0gd3B0LXJ1bgorICAgICAgICAgICAgICAgICAgLSBicm93c2VyLSR7dmFycy5i
cm93c2VyfQorICAgICAgICAgICAgICAgICAgLSB3cHQtJHt2YXJzLnN1aXRlfQorICAgICAgICAg
ICAgICAgIGRlc2NyaXB0aW9uOiA+LQorICAgICAgICAgICAgICAgICAgQSBzdWJzZXQgb2YgV1BU
J3MgIiR7dmFycy5zdWl0ZX0iIHRlc3RzIChjaHVuayBudW1iZXIgJHtjaHVua3MuaWR9CisgICAg
ICAgICAgICAgICAgICBvZiAke2NodW5rcy50b3RhbH0pLCBydW4gaW4gdGhlICR7dmFycy5jaGFu
bmVsfSByZWxlYXNlIG9mCisgICAgICAgICAgICAgICAgICAke3ZhcnMuYnJvd3Nlcn0uCisKKyAg
LSAkbWFwOgorICAgICAgZm9yOgorICAgICAgICAtIHZhcnM6CisgICAgICAgICAgICBicm93c2Vy
OiBmaXJlZm94CisgICAgICAgICAgICBjaGFubmVsOiBuaWdodGx5CisgICAgICAgIC0gdmFyczoK
KyAgICAgICAgICAgIGJyb3dzZXI6IGNocm9tZQorICAgICAgICAgICAgY2hhbm5lbDogZGV2Cisg
ICAgICBkbzoKKyAgICAgICAgLSB3cHQtJHt2YXJzLmJyb3dzZXJ9LSR7dmFycy5jaGFubmVsfS1z
dGFiaWxpdHk6CisgICAgICAgICAgICB1c2U6CisgICAgICAgICAgICAgIC0gd3B0LWJhc2UKKyAg
ICAgICAgICAgICAgLSBydW4tb3B0aW9ucworICAgICAgICAgICAgICAtIGJyb3dzZXItJHt2YXJz
LmJyb3dzZXJ9CisgICAgICAgICAgICAgIC0gdHJpZ2dlci1wcgorICAgICAgICAgICAgICAtIHRl
c3RzLWFmZmVjdGVkCisgICAgICAgICAgICBkZXNjcmlwdGlvbjogPi0KKyAgICAgICAgICAgICAg
VmVyaWZ5IHRoYXQgYWxsIHRlc3RzIGFmZmVjdGVkIGJ5IGEgcHVsbCByZXF1ZXN0IGFyZSBzdGFi
bGUKKyAgICAgICAgICAgICAgd2hlbiBleGVjdXRlZCBpbiAke3ZhcnMuYnJvd3Nlcn0uCisgICAg
ICAgICAgICBjb21tYW5kOiA+LQorICAgICAgICAgICAgICAuL3Rvb2xzL2NpL3Rhc2tjbHVzdGVy
LXJ1bi5weQorICAgICAgICAgICAgICAtLWNvbW1pdC1yYW5nZSBiYXNlX2hlYWQKKyAgICAgICAg
ICAgICAgJHt2YXJzLmJyb3dzZXJ9CisgICAgICAgICAgICAgIC0tCisgICAgICAgICAgICAgIC0t
Y2hhbm5lbD0ke3ZhcnMuY2hhbm5lbH0KKyAgICAgICAgICAgICAgLS12ZXJpZnkKKworICAgICAg
ICAtIHdwdC0ke3ZhcnMuYnJvd3Nlcn0tJHt2YXJzLmNoYW5uZWx9LXJlc3VsdHM6CisgICAgICAg
ICAgICB1c2U6CisgICAgICAgICAgICAgIC0gd3B0LWJhc2UKKyAgICAgICAgICAgICAgLSBydW4t
b3B0aW9ucworICAgICAgICAgICAgICAtIGJyb3dzZXItJHt2YXJzLmJyb3dzZXJ9CisgICAgICAg
ICAgICAgIC0gdHJpZ2dlci1wcgorICAgICAgICAgICAgICAtIHRlc3RzLWFmZmVjdGVkCisgICAg
ICAgICAgICBkZXNjcmlwdGlvbjogPi0KKyAgICAgICAgICAgICAgQ29sbGVjdCByZXN1bHRzIGZv
ciBhbGwgdGVzdHMgYWZmZWN0ZWQgYnkgYSBwdWxsIHJlcXVlc3QgaW4KKyAgICAgICAgICAgICAg
JHt2YXJzLmJyb3dzZXJ9LgorICAgICAgICAgICAgY29tbWFuZDogPi0KKyAgICAgICAgICAgICAg
Li90b29scy9jaS90YXNrY2x1c3Rlci1ydW4ucHkKKyAgICAgICAgICAgICAgLS1jb21taXQtcmFu
Z2UgYmFzZV9oZWFkCisgICAgICAgICAgICAgICR7dmFycy5icm93c2VyfQorICAgICAgICAgICAg
ICAtLQorICAgICAgICAgICAgICAtLWNoYW5uZWw9JHt2YXJzLmNoYW5uZWx9CisgICAgICAgICAg
ICAgIC0tbm8tZmFpbC1vbi11bmV4cGVjdGVkCisgICAgICAgICAgICAgIC0tbG9nLXdwdHJlcG9y
dD0uLi9hcnRpZmFjdHMvd3B0X3JlcG9ydC5qc29uCisgICAgICAgICAgICAgIC0tbG9nLXdwdHNj
cmVlbnNob3Q9Li4vYXJ0aWZhY3RzL3dwdF9zY3JlZW5zaG90LnR4dAorCisgICAgICAgIC0gd3B0
LSR7dmFycy5icm93c2VyfS0ke3ZhcnMuY2hhbm5lbH0tcmVzdWx0cy13aXRob3V0LWNoYW5nZXM6
CisgICAgICAgICAgICB1c2U6CisgICAgICAgICAgICAgIC0gd3B0LWJhc2UKKyAgICAgICAgICAg
ICAgLSBydW4tb3B0aW9ucworICAgICAgICAgICAgICAtIGJyb3dzZXItJHt2YXJzLmJyb3dzZXJ9
CisgICAgICAgICAgICAgIC0gdHJpZ2dlci1wcgorICAgICAgICAgICAgICAtIHRlc3RzLWFmZmVj
dGVkCisgICAgICAgICAgICBvcHRpb25zOgorICAgICAgICAgICAgICBjaGVja291dDogYmFzZV9o
ZWFkCisgICAgICAgICAgICBkZXNjcmlwdGlvbjogPi0KKyAgICAgICAgICAgICAgQ29sbGVjdCBy
ZXN1bHRzIGZvciBhbGwgdGVzdHMgYWZmZWN0ZWQgYnkgYSBwdWxsIHJlcXVlc3QgaW4KKyAgICAg
ICAgICAgICAgJHt2YXJzLmJyb3dzZXJ9IGJ1dCB3aXRob3V0IHRoZSBjaGFuZ2VzIGluIHRoZSBQ
Ui4KKyAgICAgICAgICAgIGNvbW1hbmQ6ID4tCisgICAgICAgICAgICAgIC4vdG9vbHMvY2kvdGFz
a2NsdXN0ZXItcnVuLnB5CisgICAgICAgICAgICAgIC0tY29tbWl0LXJhbmdlIHRhc2tfaGVhZAor
ICAgICAgICAgICAgICAke3ZhcnMuYnJvd3Nlcn0KKyAgICAgICAgICAgICAgLS0KKyAgICAgICAg
ICAgICAgLS1jaGFubmVsPSR7dmFycy5jaGFubmVsfQorICAgICAgICAgICAgICAtLW5vLWZhaWwt
b24tdW5leHBlY3RlZAorICAgICAgICAgICAgICAtLWxvZy13cHRyZXBvcnQ9Li4vYXJ0aWZhY3Rz
L3dwdF9yZXBvcnQuanNvbgorICAgICAgICAgICAgICAtLWxvZy13cHRzY3JlZW5zaG90PS4uL2Fy
dGlmYWN0cy93cHRfc2NyZWVuc2hvdC50eHQKKyAgLSAkbWFwOgorICAgICAgZm9yOgorICAgICAg
ICAtIHZhcnM6CisgICAgICAgICAgICBjaGFubmVsOiBuaWdodGx5CisgICAgICAgIC0gdmFyczoK
KyAgICAgICAgICAgIGNoYW5uZWw6IGJldGEKKyAgICAgICAgLSB2YXJzOgorICAgICAgICAgICAg
Y2hhbm5lbDogc3RhYmxlCisgICAgICBkbzoKKyAgICAgICAgZG93bmxvYWQtZmlyZWZveC0ke3Zh
cnMuY2hhbm5lbH06CisgICAgICAgICAgdXNlOgorICAgICAgICAgICAgLSB3cHQtYmFzZQorICAg
ICAgICAgIGNvbW1hbmQ6ICIuL3dwdCBpbnN0YWxsIC0tZG93bmxvYWQtb25seSAtLWRlc3RpbmF0
aW9uIC9ob21lL3Rlc3QvYXJ0aWZhY3RzLyAtLWNoYW5uZWw9JHt2YXJzLmNoYW5uZWx9IGZpcmVm
b3ggYnJvd3NlciIKKworICAtIGxpbnQ6CisgICAgICB1c2U6CisgICAgICAgIC0gd3B0LWJhc2UK
KyAgICAgICAgLSB0cmlnZ2VyLW1hc3RlcgorICAgICAgICAtIHRyaWdnZXItcHIKKyAgICAgIGRl
c2NyaXB0aW9uOiA+LQorICAgICAgICBMaW50IGZvciB3cHQtc3BlY2lmaWMgcmVxdWlyZW1lbnRz
CisgICAgICBjb21tYW5kOiAiLi93cHQgbGludCAtLWFsbCIKKworICAtIHVwZGF0ZS1idWlsdDoK
KyAgICAgIHVzZToKKyAgICAgICAgLSB3cHQtYmFzZQorICAgICAgICAtIHRyaWdnZXItcHIKKyAg
ICAgIHNjaGVkdWxlLWlmOgorICAgICAgICBydW4tam9iOgorICAgICAgICAgIC0gdXBkYXRlX2J1
aWx0CisgICAgICBjb21tYW5kOiAiLi90b29scy9jaS9jaV9idWlsdF9kaWZmLnNoIgorCisgIC0g
dG9vbHMvIHVuaXR0ZXN0cyAoUHl0aG9uIDIpOgorICAgICAgdXNlOgorICAgICAgICAtIHdwdC1i
YXNlCisgICAgICAgIC0gdHJpZ2dlci1wcgorICAgICAgICAtIHRveC1weXRob24yCisgICAgICBk
ZXNjcmlwdGlvbjogPi0KKyAgICAgICAgVW5pdCB0ZXN0cyBmb3IgdG9vbHMgcnVubmluZyB1bmRl
ciBQeXRob24gMi43LCBleGNsdWRpbmcgd3B0cnVubmVyCisgICAgICBjb21tYW5kOiAuL3Rvb2xz
L2NpL2NpX3Rvb2xzX3VuaXR0ZXN0LnNoCisgICAgICBlbnY6CisgICAgICAgIEhZUE9USEVTSVNf
UFJPRklMRTogY2kKKyAgICAgIHNjaGVkdWxlLWlmOgorICAgICAgICBydW4tam9iOgorICAgICAg
ICAgIC0gdG9vbHNfdW5pdHRlc3QKKworICAtIHRvb2xzLyB1bml0dGVzdHMgKFB5dGhvbiAzKToK
KyAgICAgIGRlc2NyaXB0aW9uOiA+LQorICAgICAgICBVbml0IHRlc3RzIGZvciB0b29scyBydW5u
aW5nIHVuZGVyIFB5dGhvbiAzLCBleGNsdWRpbmcgd3B0cnVubmVyCisgICAgICB1c2U6CisgICAg
ICAgIC0gd3B0LWJhc2UKKyAgICAgICAgLSB0cmlnZ2VyLXByCisgICAgICAgIC0gdG94LXB5dGhv
bjMKKyAgICAgIGNvbW1hbmQ6IC4vdG9vbHMvY2kvY2lfdG9vbHNfdW5pdHRlc3Quc2gKKyAgICAg
IGVudjoKKyAgICAgICAgSFlQT1RIRVNJU19QUk9GSUxFOiBjaQorICAgICAgc2NoZWR1bGUtaWY6
CisgICAgICAgIHJ1bi1qb2I6CisgICAgICAgICAgLSB0b29sc191bml0dGVzdAorCisgIC0gdG9v
bHMvd3B0LyB0ZXN0czoKKyAgICAgIGRlc2NyaXB0aW9uOiA+LQorICAgICAgICBJbnRlZ3JhdGlv
biB0ZXN0cyBmb3Igd3B0IGNvbW1hbmRzCisgICAgICB1c2U6CisgICAgICAgIC0gd3B0LWJhc2UK
KyAgICAgICAgLSB0cmlnZ2VyLXByCisgICAgICAgIC0gdG94LXB5dGhvbjIKKyAgICAgIGNvbW1h
bmQ6IC4vdG9vbHMvY2kvY2lfd3B0LnNoCisgICAgICBpbnN0YWxsOgorICAgICAgICAtIGxpYm5z
czMtdG9vbHMKKyAgICAgIG9wdGlvbnM6CisgICAgICAgIG9vbS1raWxsZXI6IHRydWUKKyAgICAg
ICAgYnJvd3NlcjoKKyAgICAgICAgICAtIGZpcmVmb3gKKyAgICAgICAgICAtIGNocm9tZQorICAg
ICAgICBjaGFubmVsOiBleHBlcmltZW50YWwKKyAgICAgICAgeHZmYjogdHJ1ZQorICAgICAgICBo
b3N0czogdHJ1ZQorICAgICAgc2NoZWR1bGUtaWY6CisgICAgICAgIHJ1bi1qb2I6CisgICAgICAg
ICAgLSB3cHRfaW50ZWdyYXRpb24KKworICAtIHJlc291cmNlcy8gdGVzdHM6CisgICAgICBkZXNj
cmlwdGlvbjogPi0KKyAgICAgICAgVGVzdHMgZm9yIHRlc3RoYXJuZXNzLmpzIGFuZCBvdGhlciBm
aWxlcyBpbiByZXNvdXJjZXMvCisgICAgICB1c2U6CisgICAgICAgIC0gd3B0LWJhc2UKKyAgICAg
ICAgLSB0cmlnZ2VyLXByCisgICAgICAgIC0gdG94LXB5dGhvbjIKKyAgICAgIGNvbW1hbmQ6IC4v
dG9vbHMvY2kvY2lfcmVzb3VyY2VzX3VuaXR0ZXN0LnNoCisgICAgICBvcHRpb25zOgorICAgICAg
ICBicm93c2VyOgorICAgICAgICAgIC0gZmlyZWZveAorICAgICAgICB4dmZiOiB0cnVlCisgICAg
ICAgIGhvc3RzOiB0cnVlCisgICAgICBzY2hlZHVsZS1pZjoKKyAgICAgICAgcnVuLWpvYjoKKyAg
ICAgICAgICAtIHJlc291cmNlc191bml0dGVzdAorCisgIC0gaW5mcmFzdHJ1Y3R1cmUvIHRlc3Rz
OgorICAgICAgZGVzY3JpcHRpb246ID4tCisgICAgICAgIFNtb2tldGVzdHMgZm9yIHdwdHJ1bm5l
cgorICAgICAgdXNlOgorICAgICAgICAtIHdwdC1iYXNlCisgICAgICAgIC0gdHJpZ2dlci1wcgor
ICAgICAgICAtIHRveC1weXRob24yCisgICAgICBjb21tYW5kOiAuL3Rvb2xzL2NpL2NpX3dwdHJ1
bm5lcl9pbmZyYXN0cnVjdHVyZS5zaAorICAgICAgaW5zdGFsbDoKKyAgICAgICAgLSBsaWJuc3Mz
LXRvb2xzCisgICAgICAgIC0gbGliYXBwaW5kaWNhdG9yMQorICAgICAgICAtIGZvbnRzLWxpYmVy
YXRpb24KKyAgICAgIG9wdGlvbnM6CisgICAgICAgIG9vbS1raWxsZXI6IHRydWUKKyAgICAgICAg
YnJvd3NlcjoKKyAgICAgICAgICAtIGZpcmVmb3gKKyAgICAgICAgICAtIGNocm9tZQorICAgICAg
ICBjaGFubmVsOiBleHBlcmltZW50YWwKKyAgICAgICAgeHZmYjogdHJ1ZQorICAgICAgICBob3N0
czogZmFsc2UKKyAgICAgIHNjaGVkdWxlLWlmOgorICAgICAgICBydW4tam9iOgorICAgICAgICAg
IC0gd3B0cnVubmVyX2luZnJhc3RydWN0dXJlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2NpL3RjL3Rhc2tzL3czYy1pbXBvcnQu
bG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9j
aS90Yy90YXNrcy93M2MtaW1wb3J0LmxvZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43ZDIzYzI1MWI2OTBlNjM2OTYz
Y2I3MTA4ZmVkMTM0Y2ViMTdlMTA2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9jaS90Yy90YXNrcy93M2MtaW1wb3J0
LmxvZwpAQCAtMCwwICsxLDE3IEBACitUaGUgdGVzdHMgaW4gdGhpcyBkaXJlY3Rvcnkgd2VyZSBp
bXBvcnRlZCBmcm9tIHRoZSBXM0MgcmVwb3NpdG9yeS4KK0RvIE5PVCBtb2RpZnkgdGhlc2UgdGVz
dHMgZGlyZWN0bHkgaW4gV2ViS2l0LgorSW5zdGVhZCwgY3JlYXRlIGEgcHVsbCByZXF1ZXN0IG9u
IHRoZSBXUFQgZ2l0aHViOgorCWh0dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxhdGZvcm0tdGVzdHMv
d3B0CisKK1RoZW4gcnVuIHRoZSBUb29scy9TY3JpcHRzL2ltcG9ydC13M2MtdGVzdHMgaW4gV2Vi
S2l0IHRvIHJlaW1wb3J0CisKK0RvIE5PVCBtb2RpZnkgb3IgcmVtb3ZlIHRoaXMgZmlsZS4KKwor
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tCitQcm9wZXJ0aWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6CitO
b25lCitQcm9wZXJ0eSB2YWx1ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKK05vbmUKKy0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLQorTGlzdCBvZiBmaWxlczoKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2NpL3RjL3Rhc2tzL3Rlc3QueW1sCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2NpL3Rj
L3Rlc3RkYXRhL2Vwb2Noc19kYWlseV9wdXNoX2V2ZW50Lmpzb24gYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2NpL3RjL3Rlc3RkYXRhL2Vwb2Noc19k
YWlseV9wdXNoX2V2ZW50Lmpzb24KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMGY3NGMzMTVkMjM3MDQzYjY0OTI1YzBi
YmFhYTNhNWQ5NTRhMGQ4MgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvY2kvdGMvdGVzdGRhdGEvZXBvY2hzX2RhaWx5
X3B1c2hfZXZlbnQuanNvbgpAQCAtMCwwICsxLDQ2MCBAQAoreworICAicmVmIjogInJlZnMvaGVh
ZHMvZXBvY2hzL2RhaWx5IiwKKyAgImJlZm9yZSI6ICIyMGJiMWNhNWRiNTE5ZWU1ZDM3ZWNlNjQ5
Mjg2OGY4YTZiNjVhMmU3IiwKKyAgImFmdGVyIjogIjVkZjU2YjI1ZTFjYjgxZjgxZmUxNmM4OGJl
ODM5ZjlmZDUzOGI0MWUiLAorICAicmVwb3NpdG9yeSI6IHsKKyAgICAiaWQiOiAzNjE4MTMzLAor
ICAgICJub2RlX2lkIjogIk1ERXdPbEpsY0c5emFYUnZjbmt6TmpFNE1UTXoiLAorICAgICJuYW1l
IjogIndwdCIsCisgICAgImZ1bGxfbmFtZSI6ICJ3ZWItcGxhdGZvcm0tdGVzdHMvd3B0IiwKKyAg
ICAicHJpdmF0ZSI6IGZhbHNlLAorICAgICJvd25lciI6IHsKKyAgICAgICJuYW1lIjogIndlYi1w
bGF0Zm9ybS10ZXN0cyIsCisgICAgICAiZW1haWwiOiBudWxsLAorICAgICAgImxvZ2luIjogIndl
Yi1wbGF0Zm9ybS10ZXN0cyIsCisgICAgICAiaWQiOiAzNzIyNjIzMywKKyAgICAgICJub2RlX2lk
IjogIk1ERXlPazl5WjJGdWFYcGhkR2x2YmpNM01qSTJNak16IiwKKyAgICAgICJhdmF0YXJfdXJs
IjogImh0dHBzOi8vYXZhdGFyczAuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMzcyMjYyMzM/dj00
IiwKKyAgICAgICJncmF2YXRhcl9pZCI6ICIiLAorICAgICAgInVybCI6ICJodHRwczovL2FwaS5n
aXRodWIuY29tL3VzZXJzL3dlYi1wbGF0Zm9ybS10ZXN0cyIsCisgICAgICAiaHRtbF91cmwiOiAi
aHR0cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9ybS10ZXN0cyIsCisgICAgICAiZm9sbG93ZXJz
X3VybCI6ICJodHRwczovL2FwaS5naXRodWIuY29tL3VzZXJzL3dlYi1wbGF0Zm9ybS10ZXN0cy9m
b2xsb3dlcnMiLAorICAgICAgImZvbGxvd2luZ191cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNv
bS91c2Vycy93ZWItcGxhdGZvcm0tdGVzdHMvZm9sbG93aW5ney9vdGhlcl91c2VyfSIsCisgICAg
ICAiZ2lzdHNfdXJsIjogImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vdXNlcnMvd2ViLXBsYXRmb3Jt
LXRlc3RzL2dpc3Rzey9naXN0X2lkfSIsCisgICAgICAic3RhcnJlZF91cmwiOiAiaHR0cHM6Ly9h
cGkuZ2l0aHViLmNvbS91c2Vycy93ZWItcGxhdGZvcm0tdGVzdHMvc3RhcnJlZHsvb3duZXJ9ey9y
ZXBvfSIsCisgICAgICAic3Vic2NyaXB0aW9uc191cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNv
bS91c2Vycy93ZWItcGxhdGZvcm0tdGVzdHMvc3Vic2NyaXB0aW9ucyIsCisgICAgICAib3JnYW5p
emF0aW9uc191cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS91c2Vycy93ZWItcGxhdGZvcm0t
dGVzdHMvb3JncyIsCisgICAgICAicmVwb3NfdXJsIjogImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20v
dXNlcnMvd2ViLXBsYXRmb3JtLXRlc3RzL3JlcG9zIiwKKyAgICAgICJldmVudHNfdXJsIjogImh0
dHBzOi8vYXBpLmdpdGh1Yi5jb20vdXNlcnMvd2ViLXBsYXRmb3JtLXRlc3RzL2V2ZW50c3svcHJp
dmFjeX0iLAorICAgICAgInJlY2VpdmVkX2V2ZW50c191cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHVi
LmNvbS91c2Vycy93ZWItcGxhdGZvcm0tdGVzdHMvcmVjZWl2ZWRfZXZlbnRzIiwKKyAgICAgICJ0
eXBlIjogIk9yZ2FuaXphdGlvbiIsCisgICAgICAic2l0ZV9hZG1pbiI6IGZhbHNlCisgICAgfSwK
KyAgICAiaHRtbF91cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9ybS10ZXN0cy93
cHQiLAorICAgICJkZXNjcmlwdGlvbiI6ICJUZXN0IHN1aXRlcyBmb3IgV2ViIHBsYXRmb3JtIHNw
ZWNzIOKAlCBpbmNsdWRpbmcgV0hBVFdHLCBXM0MsIGFuZCBvdGhlcnMiLAorICAgICJmb3JrIjog
ZmFsc2UsCisgICAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vd2ViLXBsYXRmb3JtLXRlc3Rz
L3dwdCIsCisgICAgImZvcmtzX3VybCI6ICJodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zL3dl
Yi1wbGF0Zm9ybS10ZXN0cy93cHQvZm9ya3MiLAorICAgICJrZXlzX3VybCI6ICJodHRwczovL2Fw
aS5naXRodWIuY29tL3JlcG9zL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQva2V5c3sva2V5X2lkfSIs
CisgICAgImNvbGxhYm9yYXRvcnNfdXJsIjogImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3dwdC9jb2xsYWJvcmF0b3Jzey9jb2xsYWJvcmF0b3J9IiwKKyAg
ICAidGVhbXNfdXJsIjogImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3dwdC90ZWFtcyIsCisgICAgImhvb2tzX3VybCI6ICJodHRwczovL2FwaS5naXRodWIu
Y29tL3JlcG9zL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQvaG9va3MiLAorICAgICJpc3N1ZV9ldmVu
dHNfdXJsIjogImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3dwdC9pc3N1ZXMvZXZlbnRzey9udW1iZXJ9IiwKKyAgICAiZXZlbnRzX3VybCI6ICJodHRwczov
L2FwaS5naXRodWIuY29tL3JlcG9zL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQvZXZlbnRzIiwKKyAg
ICAiYXNzaWduZWVzX3VybCI6ICJodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zL3dlYi1wbGF0
Zm9ybS10ZXN0cy93cHQvYXNzaWduZWVzey91c2VyfSIsCisgICAgImJyYW5jaGVzX3VybCI6ICJo
dHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQvYnJhbmNo
ZXN7L2JyYW5jaH0iLAorICAgICJ0YWdzX3VybCI6ICJodHRwczovL2FwaS5naXRodWIuY29tL3Jl
cG9zL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQvdGFncyIsCisgICAgImJsb2JzX3VybCI6ICJodHRw
czovL2FwaS5naXRodWIuY29tL3JlcG9zL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQvZ2l0L2Jsb2Jz
ey9zaGF9IiwKKyAgICAiZ2l0X3RhZ3NfdXJsIjogImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVw
b3Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dwdC9naXQvdGFnc3svc2hhfSIsCisgICAgImdpdF9yZWZz
X3VybCI6ICJodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zL3dlYi1wbGF0Zm9ybS10ZXN0cy93
cHQvZ2l0L3JlZnN7L3NoYX0iLAorICAgICJ0cmVlc191cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHVi
LmNvbS9yZXBvcy93ZWItcGxhdGZvcm0tdGVzdHMvd3B0L2dpdC90cmVlc3svc2hhfSIsCisgICAg
InN0YXR1c2VzX3VybCI6ICJodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zL3dlYi1wbGF0Zm9y
bS10ZXN0cy93cHQvc3RhdHVzZXMve3NoYX0iLAorICAgICJsYW5ndWFnZXNfdXJsIjogImh0dHBz
Oi8vYXBpLmdpdGh1Yi5jb20vcmVwb3Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dwdC9sYW5ndWFnZXMi
LAorICAgICJzdGFyZ2F6ZXJzX3VybCI6ICJodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zL3dl
Yi1wbGF0Zm9ybS10ZXN0cy93cHQvc3RhcmdhemVycyIsCisgICAgImNvbnRyaWJ1dG9yc191cmwi
OiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy93ZWItcGxhdGZvcm0tdGVzdHMvd3B0L2Nv
bnRyaWJ1dG9ycyIsCisgICAgInN1YnNjcmliZXJzX3VybCI6ICJodHRwczovL2FwaS5naXRodWIu
Y29tL3JlcG9zL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQvc3Vic2NyaWJlcnMiLAorICAgICJzdWJz
Y3JpcHRpb25fdXJsIjogImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3dwdC9zdWJzY3JpcHRpb24iLAorICAgICJjb21taXRzX3VybCI6ICJodHRwczovL2Fw
aS5naXRodWIuY29tL3JlcG9zL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQvY29tbWl0c3svc2hhfSIs
CisgICAgImdpdF9jb21taXRzX3VybCI6ICJodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zL3dl
Yi1wbGF0Zm9ybS10ZXN0cy93cHQvZ2l0L2NvbW1pdHN7L3NoYX0iLAorICAgICJjb21tZW50c191
cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy93ZWItcGxhdGZvcm0tdGVzdHMvd3B0
L2NvbW1lbnRzey9udW1iZXJ9IiwKKyAgICAiaXNzdWVfY29tbWVudF91cmwiOiAiaHR0cHM6Ly9h
cGkuZ2l0aHViLmNvbS9yZXBvcy93ZWItcGxhdGZvcm0tdGVzdHMvd3B0L2lzc3Vlcy9jb21tZW50
c3svbnVtYmVyfSIsCisgICAgImNvbnRlbnRzX3VybCI6ICJodHRwczovL2FwaS5naXRodWIuY29t
L3JlcG9zL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQvY29udGVudHMveytwYXRofSIsCisgICAgImNv
bXBhcmVfdXJsIjogImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3dwdC9jb21wYXJlL3tiYXNlfS4uLntoZWFkfSIsCisgICAgIm1lcmdlc191cmwiOiAiaHR0
cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy93ZWItcGxhdGZvcm0tdGVzdHMvd3B0L21lcmdlcyIs
CisgICAgImFyY2hpdmVfdXJsIjogImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3dwdC97YXJjaGl2ZV9mb3JtYXR9ey9yZWZ9IiwKKyAgICAiZG93bmxvYWRz
X3VybCI6ICJodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zL3dlYi1wbGF0Zm9ybS10ZXN0cy93
cHQvZG93bmxvYWRzIiwKKyAgICAiaXNzdWVzX3VybCI6ICJodHRwczovL2FwaS5naXRodWIuY29t
L3JlcG9zL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQvaXNzdWVzey9udW1iZXJ9IiwKKyAgICAicHVs
bHNfdXJsIjogImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3dwdC9wdWxsc3svbnVtYmVyfSIsCisgICAgIm1pbGVzdG9uZXNfdXJsIjogImh0dHBzOi8vYXBp
LmdpdGh1Yi5jb20vcmVwb3Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dwdC9taWxlc3RvbmVzey9udW1i
ZXJ9IiwKKyAgICAibm90aWZpY2F0aW9uc191cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9y
ZXBvcy93ZWItcGxhdGZvcm0tdGVzdHMvd3B0L25vdGlmaWNhdGlvbnN7P3NpbmNlLGFsbCxwYXJ0
aWNpcGF0aW5nfSIsCisgICAgImxhYmVsc191cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9y
ZXBvcy93ZWItcGxhdGZvcm0tdGVzdHMvd3B0L2xhYmVsc3svbmFtZX0iLAorICAgICJyZWxlYXNl
c191cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy93ZWItcGxhdGZvcm0tdGVzdHMv
d3B0L3JlbGVhc2Vzey9pZH0iLAorICAgICJkZXBsb3ltZW50c191cmwiOiAiaHR0cHM6Ly9hcGku
Z2l0aHViLmNvbS9yZXBvcy93ZWItcGxhdGZvcm0tdGVzdHMvd3B0L2RlcGxveW1lbnRzIiwKKyAg
ICAiY3JlYXRlZF9hdCI6IDEzMzA4NjU4OTEsCisgICAgInVwZGF0ZWRfYXQiOiAiMjAxOS0xMS0z
MFQyMTozNDozMFoiLAorICAgICJwdXNoZWRfYXQiOiAxNTc1MTYwNjEwLAorICAgICJnaXRfdXJs
IjogImdpdDovL2dpdGh1Yi5jb20vd2ViLXBsYXRmb3JtLXRlc3RzL3dwdC5naXQiLAorICAgICJz
c2hfdXJsIjogImdpdEBnaXRodWIuY29tOndlYi1wbGF0Zm9ybS10ZXN0cy93cHQuZ2l0IiwKKyAg
ICAiY2xvbmVfdXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxhdGZvcm0tdGVzdHMvd3B0
LmdpdCIsCisgICAgInN2bl91cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9ybS10
ZXN0cy93cHQiLAorICAgICJob21lcGFnZSI6ICJodHRwczovL3dlYi1wbGF0Zm9ybS10ZXN0cy5v
cmcvIiwKKyAgICAic2l6ZSI6IDMyOTQ2NSwKKyAgICAic3RhcmdhemVyc19jb3VudCI6IDI1NDMs
CisgICAgIndhdGNoZXJzX2NvdW50IjogMjU0MywKKyAgICAibGFuZ3VhZ2UiOiAiSFRNTCIsCisg
ICAgImhhc19pc3N1ZXMiOiB0cnVlLAorICAgICJoYXNfcHJvamVjdHMiOiB0cnVlLAorICAgICJo
YXNfZG93bmxvYWRzIjogdHJ1ZSwKKyAgICAiaGFzX3dpa2kiOiB0cnVlLAorICAgICJoYXNfcGFn
ZXMiOiB0cnVlLAorICAgICJmb3Jrc19jb3VudCI6IDE4MzgsCisgICAgIm1pcnJvcl91cmwiOiBu
dWxsLAorICAgICJhcmNoaXZlZCI6IGZhbHNlLAorICAgICJkaXNhYmxlZCI6IGZhbHNlLAorICAg
ICJvcGVuX2lzc3Vlc19jb3VudCI6IDE1OTAsCisgICAgImxpY2Vuc2UiOiB7CisgICAgICAia2V5
IjogIm90aGVyIiwKKyAgICAgICJuYW1lIjogIk90aGVyIiwKKyAgICAgICJzcGR4X2lkIjogIk5P
QVNTRVJUSU9OIiwKKyAgICAgICJ1cmwiOiBudWxsLAorICAgICAgIm5vZGVfaWQiOiAiTURjNlRH
bGpaVzV6WlRBPSIKKyAgICB9LAorICAgICJmb3JrcyI6IDE4MzgsCisgICAgIm9wZW5faXNzdWVz
IjogMTU5MCwKKyAgICAid2F0Y2hlcnMiOiAyNTQzLAorICAgICJkZWZhdWx0X2JyYW5jaCI6ICJt
YXN0ZXIiLAorICAgICJzdGFyZ2F6ZXJzIjogMjU0MywKKyAgICAibWFzdGVyX2JyYW5jaCI6ICJt
YXN0ZXIiLAorICAgICJvcmdhbml6YXRpb24iOiAid2ViLXBsYXRmb3JtLXRlc3RzIgorICB9LAor
ICAicHVzaGVyIjogeworICAgICJuYW1lIjogImdpdGh1Yi1hY3Rpb25zW2JvdF0iLAorICAgICJl
bWFpbCI6IG51bGwKKyAgfSwKKyAgIm9yZ2FuaXphdGlvbiI6IHsKKyAgICAibG9naW4iOiAid2Vi
LXBsYXRmb3JtLXRlc3RzIiwKKyAgICAiaWQiOiAzNzIyNjIzMywKKyAgICAibm9kZV9pZCI6ICJN
REV5T2s5eVoyRnVhWHBoZEdsdmJqTTNNakkyTWpNeiIsCisgICAgInVybCI6ICJodHRwczovL2Fw
aS5naXRodWIuY29tL29yZ3Mvd2ViLXBsYXRmb3JtLXRlc3RzIiwKKyAgICAicmVwb3NfdXJsIjog
Imh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vb3Jncy93ZWItcGxhdGZvcm0tdGVzdHMvcmVwb3MiLAor
ICAgICJldmVudHNfdXJsIjogImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vb3Jncy93ZWItcGxhdGZv
cm0tdGVzdHMvZXZlbnRzIiwKKyAgICAiaG9va3NfdXJsIjogImh0dHBzOi8vYXBpLmdpdGh1Yi5j
b20vb3Jncy93ZWItcGxhdGZvcm0tdGVzdHMvaG9va3MiLAorICAgICJpc3N1ZXNfdXJsIjogImh0
dHBzOi8vYXBpLmdpdGh1Yi5jb20vb3Jncy93ZWItcGxhdGZvcm0tdGVzdHMvaXNzdWVzIiwKKyAg
ICAibWVtYmVyc191cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9vcmdzL3dlYi1wbGF0Zm9y
bS10ZXN0cy9tZW1iZXJzey9tZW1iZXJ9IiwKKyAgICAicHVibGljX21lbWJlcnNfdXJsIjogImh0
dHBzOi8vYXBpLmdpdGh1Yi5jb20vb3Jncy93ZWItcGxhdGZvcm0tdGVzdHMvcHVibGljX21lbWJl
cnN7L21lbWJlcn0iLAorICAgICJhdmF0YXJfdXJsIjogImh0dHBzOi8vYXZhdGFyczAuZ2l0aHVi
dXNlcmNvbnRlbnQuY29tL3UvMzcyMjYyMzM/dj00IiwKKyAgICAiZGVzY3JpcHRpb24iOiAiIgor
ICB9LAorICAic2VuZGVyIjogeworICAgICJsb2dpbiI6ICJnaXRodWItYWN0aW9uc1tib3RdIiwK
KyAgICAiaWQiOiA0MTg5ODI4MiwKKyAgICAibm9kZV9pZCI6ICJNRE02UW05ME5ERTRPVGd5T0RJ
PSIsCisgICAgImF2YXRhcl91cmwiOiAiaHR0cHM6Ly9hdmF0YXJzMi5naXRodWJ1c2VyY29udGVu
dC5jb20vaW4vMTUzNjg/dj00IiwKKyAgICAiZ3JhdmF0YXJfaWQiOiAiIiwKKyAgICAidXJsIjog
Imh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vdXNlcnMvZ2l0aHViLWFjdGlvbnMlNUJib3QlNUQiLAor
ICAgICJodG1sX3VybCI6ICJodHRwczovL2dpdGh1Yi5jb20vYXBwcy9naXRodWItYWN0aW9ucyIs
CisgICAgImZvbGxvd2Vyc191cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS91c2Vycy9naXRo
dWItYWN0aW9ucyU1QmJvdCU1RC9mb2xsb3dlcnMiLAorICAgICJmb2xsb3dpbmdfdXJsIjogImh0
dHBzOi8vYXBpLmdpdGh1Yi5jb20vdXNlcnMvZ2l0aHViLWFjdGlvbnMlNUJib3QlNUQvZm9sbG93
aW5ney9vdGhlcl91c2VyfSIsCisgICAgImdpc3RzX3VybCI6ICJodHRwczovL2FwaS5naXRodWIu
Y29tL3VzZXJzL2dpdGh1Yi1hY3Rpb25zJTVCYm90JTVEL2dpc3Rzey9naXN0X2lkfSIsCisgICAg
InN0YXJyZWRfdXJsIjogImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vdXNlcnMvZ2l0aHViLWFjdGlv
bnMlNUJib3QlNUQvc3RhcnJlZHsvb3duZXJ9ey9yZXBvfSIsCisgICAgInN1YnNjcmlwdGlvbnNf
dXJsIjogImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vdXNlcnMvZ2l0aHViLWFjdGlvbnMlNUJib3Ql
NUQvc3Vic2NyaXB0aW9ucyIsCisgICAgIm9yZ2FuaXphdGlvbnNfdXJsIjogImh0dHBzOi8vYXBp
LmdpdGh1Yi5jb20vdXNlcnMvZ2l0aHViLWFjdGlvbnMlNUJib3QlNUQvb3JncyIsCisgICAgInJl
cG9zX3VybCI6ICJodHRwczovL2FwaS5naXRodWIuY29tL3VzZXJzL2dpdGh1Yi1hY3Rpb25zJTVC
Ym90JTVEL3JlcG9zIiwKKyAgICAiZXZlbnRzX3VybCI6ICJodHRwczovL2FwaS5naXRodWIuY29t
L3VzZXJzL2dpdGh1Yi1hY3Rpb25zJTVCYm90JTVEL2V2ZW50c3svcHJpdmFjeX0iLAorICAgICJy
ZWNlaXZlZF9ldmVudHNfdXJsIjogImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vdXNlcnMvZ2l0aHVi
LWFjdGlvbnMlNUJib3QlNUQvcmVjZWl2ZWRfZXZlbnRzIiwKKyAgICAidHlwZSI6ICJCb3QiLAor
ICAgICJzaXRlX2FkbWluIjogZmFsc2UKKyAgfSwKKyAgImNyZWF0ZWQiOiBmYWxzZSwKKyAgImRl
bGV0ZWQiOiBmYWxzZSwKKyAgImZvcmNlZCI6IGZhbHNlLAorICAiYmFzZV9yZWYiOiAicmVmcy9o
ZWFkcy9lcG9jaHMvc2l4X2hvdXJseSIsCisgICJjb21wYXJlIjogImh0dHBzOi8vZ2l0aHViLmNv
bS93ZWItcGxhdGZvcm0tdGVzdHMvd3B0L2NvbXBhcmUvMjBiYjFjYTVkYjUxLi4uNWRmNTZiMjVl
MWNiIiwKKyAgImNvbW1pdHMiOiBbCisgICAgeworICAgICAgImlkIjogIjM1MDNjNTBhNjQ1MmUx
NTNiZGU5MDZhOWM2NjQ0Y2I2MjM3MjI0ZmMiLAorICAgICAgInRyZWVfaWQiOiAiYjczNWZhMGFl
ODhlYmUwYWJkNjc2NGExYWZkNjNhZWE4MTVhYzE4ZSIsCisgICAgICAiZGlzdGluY3QiOiBmYWxz
ZSwKKyAgICAgICJtZXNzYWdlIjogIltMYXlvdXROR10gUGl4ZWwtc25hcCBjb2x1bW4gcnVsZXMu
XG5cbkJ1ZzogODI5MDI4XG5DaGFuZ2UtSWQ6IEkyNTI5MDExMDk1MDIyNTZmMTRiYzY4ZTY0ZDQz
MDMwMDZkYjUwYTEzXG5SZXZpZXdlZC1vbjogaHR0cHM6Ly9jaHJvbWl1bS1yZXZpZXcuZ29vZ2xl
c291cmNlLmNvbS9jL2Nocm9taXVtL3NyYy8rLzE5NDQzNTBcbkNvbW1pdC1RdWV1ZTogWGlhbnpo
dSBXYW5nIDx3YW5neGlhbnpodUBjaHJvbWl1bS5vcmc+XG5SZXZpZXdlZC1ieTogWGlhbnpodSBX
YW5nIDx3YW5neGlhbnpodUBjaHJvbWl1bS5vcmc+XG5Dci1Db21taXQtUG9zaXRpb246IHJlZnMv
aGVhZHMvbWFzdGVyQHsjNzIwMzAyfSIsCisgICAgICAidGltZXN0YW1wIjogIjIwMTktMTEtMjlU
MTY6MjU6NDQtMDg6MDAiLAorICAgICAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vd2ViLXBs
YXRmb3JtLXRlc3RzL3dwdC9jb21taXQvMzUwM2M1MGE2NDUyZTE1M2JkZTkwNmE5YzY2NDRjYjYy
MzcyMjRmYyIsCisgICAgICAiYXV0aG9yIjogeworICAgICAgICAibmFtZSI6ICJNb3J0ZW4gU3Rl
bnNob3JuZSIsCisgICAgICAgICJlbWFpbCI6ICJtc3RlbnNob0BjaHJvbWl1bS5vcmciLAorICAg
ICAgICAidXNlcm5hbWUiOiAibXN0ZW5zaG8iCisgICAgICB9LAorICAgICAgImNvbW1pdHRlciI6
IHsKKyAgICAgICAgIm5hbWUiOiAiQmxpbmsgV1BUIEJvdCIsCisgICAgICAgICJlbWFpbCI6ICJi
bGluay13M2MtdGVzdC1hdXRvcm9sbGVyQGNocm9taXVtLm9yZyIsCisgICAgICAgICJ1c2VybmFt
ZSI6ICJjaHJvbWl1bS13cHQtZXhwb3J0LWJvdCIKKyAgICAgIH0sCisgICAgICAiYWRkZWQiOiBb
CisgICAgICAgICJjc3MvY3NzLW11bHRpY29sL2VxdWFsLWdhcC1hbmQtcnVsZS5odG1sIgorICAg
ICAgXSwKKyAgICAgICJyZW1vdmVkIjogWworCisgICAgICBdLAorICAgICAgIm1vZGlmaWVkIjog
WworCisgICAgICBdCisgICAgfSwKKyAgICB7CisgICAgICAiaWQiOiAiNTYxYjc2NTMwOGU2ZDE4
ODYxOGYzYmE3MzA5MWJiNTk4ZDgzNTdjZSIsCisgICAgICAidHJlZV9pZCI6ICI3NzVhYzQ0ODFj
MDNlMDIwODE5OTEwZDAzMDE5ZjBlYzkzZGVmODY4IiwKKyAgICAgICJkaXN0aW5jdCI6IGZhbHNl
LAorICAgICAgIm1lc3NhZ2UiOiAiRml4IHBhcnNlciBtWFNTIHNhbml0aXplciBieXBhc3MgZm9y
IDxwPiBhbmQgPGJyPiB3aXRoaW4gZm9yZWlnbiBjb250ZXh0XG5cblByaW9yIHRvIHRoaXMgQ0ws
IHRoZSBmb2xsb3dpbmcgY29kZTpcbiA8c3ZnPjwvcD48L3N2Zz5cbnBhcnNlZCB0byB0aGlzIGlu
bmVySFRNTDogPHN2Zz48cD48L3A+PC9zdmc+XG5cblRoaXMgaXMgaW4gY29udHJhc3QgdG8gdGhp
cyBjb2RlOlxuIDxzdmc+PHA+PC9zdmc+XG53aGljaCBwYXJzZXMgdG8gPHN2Zz48L3N2Zz48cD48
L3A+XG5cblRoZSBmYWN0IHRoYXQgdGhlIDwvcD4gaXMgbGVmdCBpbnNpZGUgdGhlIDxzdmc+IGFs
bG93ZWQgc2FuaXRpemVyXG5ieXBhc3NlcyBhcyBkZXRhaWxlZCBpbiBbMV0uIFBsZWFzZSBhbHNv
IHNlZSBbMl0gZm9yIHRoZSBzcGVjXG5kaXNjdXNzaW9uLlxuXG5XaXRoIHRoaXMgQ0wsIDwvcD4g
YW5kIDwvYnI+IHdpdGhpbiBhIGZvcmVpZ24gY29udGV4dCBub3cgY2F1c2VcbnRoZSBjbG9zaW5n
IG9mIHRoZSBmb3JlaWduIGNvbnRleHQuXG5cblsxXSBodHRwczovL3Jlc2VhcmNoLnNlY3VyaXR1
bS5jb20vZG9tcHVyaWZ5LWJ5cGFzcy11c2luZy1teHNzL1xuWzJdIGh0dHBzOi8vZ2l0aHViLmNv
bS93aGF0d2cvaHRtbC9pc3N1ZXMvNTExM1xuXG5CdWc6IDEwMDU3MTNcbkNoYW5nZS1JZDogSWMw
N2VlNTBkZTRlYjFlZjE5YjczYTA3NWJkODM3ODVjOTlmNGY4OTFcblJldmlld2VkLW9uOiBodHRw
czovL2Nocm9taXVtLXJldmlldy5nb29nbGVzb3VyY2UuY29tL2MvY2hyb21pdW0vc3JjLysvMTk0
MDcyMlxuUmV2aWV3ZWQtYnk6IEtvdWhlaSBVZW5vIDxrb3VoZWlAY2hyb21pdW0ub3JnPlxuQ29t
bWl0LVF1ZXVlOiBNYXNvbiBGcmVlZCA8bWFzb25mcmVlZEBjaHJvbWl1bS5vcmc+XG5Dci1Db21t
aXQtUG9zaXRpb246IHJlZnMvaGVhZHMvbWFzdGVyQHsjNzIwMzE1fSIsCisgICAgICAidGltZXN0
YW1wIjogIjIwMTktMTEtMzBUMDA6MjI6MjktMDg6MDAiLAorICAgICAgInVybCI6ICJodHRwczov
L2dpdGh1Yi5jb20vd2ViLXBsYXRmb3JtLXRlc3RzL3dwdC9jb21taXQvNTYxYjc2NTMwOGU2ZDE4
ODYxOGYzYmE3MzA5MWJiNTk4ZDgzNTdjZSIsCisgICAgICAiYXV0aG9yIjogeworICAgICAgICAi
bmFtZSI6ICJNYXNvbiBGcmVlZCIsCisgICAgICAgICJlbWFpbCI6ICJtYXNvbmZyZWVkQGNocm9t
aXVtLm9yZyIsCisgICAgICAgICJ1c2VybmFtZSI6ICJtZnJlZWQ3IgorICAgICAgfSwKKyAgICAg
ICJjb21taXR0ZXIiOiB7CisgICAgICAgICJuYW1lIjogIkJsaW5rIFdQVCBCb3QiLAorICAgICAg
ICAiZW1haWwiOiAiYmxpbmstdzNjLXRlc3QtYXV0b3JvbGxlckBjaHJvbWl1bS5vcmciLAorICAg
ICAgICAidXNlcm5hbWUiOiAiY2hyb21pdW0td3B0LWV4cG9ydC1ib3QiCisgICAgICB9LAorICAg
ICAgImFkZGVkIjogWworICAgICAgICAiaHRtbC9zeW50YXgvcGFyc2luZy9odG1sX2NvbnRlbnRf
aW5fZm9yZWlnbl9jb250ZXh0Lmh0bWwiCisgICAgICBdLAorICAgICAgInJlbW92ZWQiOiBbCisK
KyAgICAgIF0sCisgICAgICAibW9kaWZpZWQiOiBbCisKKyAgICAgIF0KKyAgICB9LAorICAgIHsK
KyAgICAgICJpZCI6ICJkMzE4MDAxODVkYWI4ZTE5NDI5NDYyMGM4YWQ2YmY0MGYyNWJmNzUyIiwK
KyAgICAgICJ0cmVlX2lkIjogImM3MThhOTEzZTlhNTE5N2UxODk2ZjViMmVlMDQzNGY4OTZkNjcy
NWIiLAorICAgICAgImRpc3RpbmN0IjogZmFsc2UsCisgICAgICAibWVzc2FnZSI6ICJbY3NzLXRl
eHQtNF0gdGVzdHMgZm9yIHdvcmQtYm91bmRhcnktZXhwYW5zaW9uXG5cbmh0dHBzOi8vZHJhZnRz
LmNzc3dnLm9yZy9jc3MtdGV4dC00LyN3b3JkLWJvdW5kYXJ5LWV4cGFuc2lvbiIsCisgICAgICAi
dGltZXN0YW1wIjogIjIwMTktMTEtMzBUMTg6MDk6NDkrMDk6MDAiLAorICAgICAgInVybCI6ICJo
dHRwczovL2dpdGh1Yi5jb20vd2ViLXBsYXRmb3JtLXRlc3RzL3dwdC9jb21taXQvZDMxODAwMTg1
ZGFiOGUxOTQyOTQ2MjBjOGFkNmJmNDBmMjViZjc1MiIsCisgICAgICAiYXV0aG9yIjogeworICAg
ICAgICAibmFtZSI6ICJGbG9yaWFuIFJpdm9hbCIsCisgICAgICAgICJlbWFpbCI6ICJnaXRAZmxv
cmlhbi5yaXZvYWwubmV0IiwKKyAgICAgICAgInVzZXJuYW1lIjogImZyaXZvYWwiCisgICAgICB9
LAorICAgICAgImNvbW1pdHRlciI6IHsKKyAgICAgICAgIm5hbWUiOiAiRmxvcmlhbiBSaXZvYWwi
LAorICAgICAgICAiZW1haWwiOiAiZ2l0QGZsb3JpYW4ucml2b2FsLm5ldCIsCisgICAgICAgICJ1
c2VybmFtZSI6ICJmcml2b2FsIgorICAgICAgfSwKKyAgICAgICJhZGRlZCI6IFsKKyAgICAgICAg
ImNzcy9jc3MtdGV4dC9wYXJzaW5nL3dvcmQtYm91bmRhcnktZXhwYW5zaW9uLWNvbXB1dGVkLmh0
bWwiLAorICAgICAgICAiY3NzL2Nzcy10ZXh0L3BhcnNpbmcvd29yZC1ib3VuZGFyeS1leHBhbnNp
b24taW52YWxpZC5odG1sIiwKKyAgICAgICAgImNzcy9jc3MtdGV4dC9wYXJzaW5nL3dvcmQtYm91
bmRhcnktZXhwYW5zaW9uLXZhbGlkLmh0bWwiLAorICAgICAgICAiY3NzL2Nzcy10ZXh0L3dvcmQt
Ym91bmRhcnkvcmVmZXJlbmNlL3dvcmQtYm91bmRhcnktMDAxLXJlZi5odG1sIiwKKyAgICAgICAg
ImNzcy9jc3MtdGV4dC93b3JkLWJvdW5kYXJ5L3JlZmVyZW5jZS93b3JkLWJvdW5kYXJ5LTAwMi1y
ZWYuaHRtbCIsCisgICAgICAgICJjc3MvY3NzLXRleHQvd29yZC1ib3VuZGFyeS9yZWZlcmVuY2Uv
d29yZC1ib3VuZGFyeS0wMDQtcmVmLmh0bWwiLAorICAgICAgICAiY3NzL2Nzcy10ZXh0L3dvcmQt
Ym91bmRhcnkvcmVmZXJlbmNlL3dvcmQtYm91bmRhcnktMDA3LXJlZi5odG1sIiwKKyAgICAgICAg
ImNzcy9jc3MtdGV4dC93b3JkLWJvdW5kYXJ5L3JlZmVyZW5jZS93b3JkLWJvdW5kYXJ5LTAwOC1y
ZWYuaHRtbCIsCisgICAgICAgICJjc3MvY3NzLXRleHQvd29yZC1ib3VuZGFyeS9yZWZlcmVuY2Uv
d29yZC1ib3VuZGFyeS0wMDktcmVmLmh0bWwiLAorICAgICAgICAiY3NzL2Nzcy10ZXh0L3dvcmQt
Ym91bmRhcnkvcmVmZXJlbmNlL3dvcmQtYm91bmRhcnktMDEwLXJlZi5odG1sIiwKKyAgICAgICAg
ImNzcy9jc3MtdGV4dC93b3JkLWJvdW5kYXJ5L3JlZmVyZW5jZS93b3JkLWJvdW5kYXJ5LTAxMS1y
ZWYuaHRtbCIsCisgICAgICAgICJjc3MvY3NzLXRleHQvd29yZC1ib3VuZGFyeS9yZWZlcmVuY2Uv
d29yZC1ib3VuZGFyeS0wMTItcmVmLmh0bWwiLAorICAgICAgICAiY3NzL2Nzcy10ZXh0L3dvcmQt
Ym91bmRhcnkvcmVmZXJlbmNlL3dvcmQtYm91bmRhcnktMDEzLXJlZi5odG1sIiwKKyAgICAgICAg
ImNzcy9jc3MtdGV4dC93b3JkLWJvdW5kYXJ5L3JlZmVyZW5jZS93b3JkLWJvdW5kYXJ5LTAxNC1y
ZWYuaHRtbCIsCisgICAgICAgICJjc3MvY3NzLXRleHQvd29yZC1ib3VuZGFyeS93b3JkLWJvdW5k
YXJ5LTAwMS5odG1sIiwKKyAgICAgICAgImNzcy9jc3MtdGV4dC93b3JkLWJvdW5kYXJ5L3dvcmQt
Ym91bmRhcnktMDAyLmh0bWwiLAorICAgICAgICAiY3NzL2Nzcy10ZXh0L3dvcmQtYm91bmRhcnkv
d29yZC1ib3VuZGFyeS0wMDMuaHRtbCIsCisgICAgICAgICJjc3MvY3NzLXRleHQvd29yZC1ib3Vu
ZGFyeS93b3JkLWJvdW5kYXJ5LTAwNC5odG1sIiwKKyAgICAgICAgImNzcy9jc3MtdGV4dC93b3Jk
LWJvdW5kYXJ5L3dvcmQtYm91bmRhcnktMDA1Lmh0bWwiLAorICAgICAgICAiY3NzL2Nzcy10ZXh0
L3dvcmQtYm91bmRhcnkvd29yZC1ib3VuZGFyeS0wMDYuaHRtbCIsCisgICAgICAgICJjc3MvY3Nz
LXRleHQvd29yZC1ib3VuZGFyeS93b3JkLWJvdW5kYXJ5LTAwNy5odG1sIiwKKyAgICAgICAgImNz
cy9jc3MtdGV4dC93b3JkLWJvdW5kYXJ5L3dvcmQtYm91bmRhcnktMDA4Lmh0bWwiLAorICAgICAg
ICAiY3NzL2Nzcy10ZXh0L3dvcmQtYm91bmRhcnkvd29yZC1ib3VuZGFyeS0wMDkuaHRtbCIsCisg
ICAgICAgICJjc3MvY3NzLXRleHQvd29yZC1ib3VuZGFyeS93b3JkLWJvdW5kYXJ5LTAxMC5odG1s
IiwKKyAgICAgICAgImNzcy9jc3MtdGV4dC93b3JkLWJvdW5kYXJ5L3dvcmQtYm91bmRhcnktMDEx
Lmh0bWwiLAorICAgICAgICAiY3NzL2Nzcy10ZXh0L3dvcmQtYm91bmRhcnkvd29yZC1ib3VuZGFy
eS0wMTIuaHRtbCIsCisgICAgICAgICJjc3MvY3NzLXRleHQvd29yZC1ib3VuZGFyeS93b3JkLWJv
dW5kYXJ5LTAxMy5odG1sIiwKKyAgICAgICAgImNzcy9jc3MtdGV4dC93b3JkLWJvdW5kYXJ5L3dv
cmQtYm91bmRhcnktMDE0Lmh0bWwiLAorICAgICAgICAiY3NzL2Nzcy10ZXh0L3dvcmQtYm91bmRh
cnkvd29yZC1ib3VuZGFyeS0wMTUtbWFudWFsLmh0bWwiCisgICAgICBdLAorICAgICAgInJlbW92
ZWQiOiBbCisKKyAgICAgIF0sCisgICAgICAibW9kaWZpZWQiOiBbCisKKyAgICAgIF0KKyAgICB9
LAorICAgIHsKKyAgICAgICJpZCI6ICIzN2RkYWIwNTI4ZDhhYjQ5ZGIxMzcxMTg4ZTM2ZjY4MTMz
ZmY1YzFjIiwKKyAgICAgICJ0cmVlX2lkIjogIjgzMjY0NGE2OTdhMWNkY2FmOTMxMjZkNGY5NWM4
OWY3MWI0ZjVkNDciLAorICAgICAgImRpc3RpbmN0IjogZmFsc2UsCisgICAgICAibWVzc2FnZSI6
ICJbY3NzLXRleHQtNF0gdGVzdHMgZm9yIHdvcmQtYm91bmRhcnktZGV0ZWN0aW9uXG5cbmh0dHBz
Oi8vZHJhZnRzLmNzc3dnLm9yZy9jc3MtdGV4dC00LyN3b3JkLWJvdW5kYXJ5LWRldGVjdGlvbiIs
CisgICAgICAidGltZXN0YW1wIjogIjIwMTktMTEtMzBUMTg6MDk6NDkrMDk6MDAiLAorICAgICAg
InVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vd2ViLXBsYXRmb3JtLXRlc3RzL3dwdC9jb21taXQv
MzdkZGFiMDUyOGQ4YWI0OWRiMTM3MTE4OGUzNmY2ODEzM2ZmNWMxYyIsCisgICAgICAiYXV0aG9y
IjogeworICAgICAgICAibmFtZSI6ICJGbG9yaWFuIFJpdm9hbCIsCisgICAgICAgICJlbWFpbCI6
ICJnaXRAZmxvcmlhbi5yaXZvYWwubmV0IiwKKyAgICAgICAgInVzZXJuYW1lIjogImZyaXZvYWwi
CisgICAgICB9LAorICAgICAgImNvbW1pdHRlciI6IHsKKyAgICAgICAgIm5hbWUiOiAiRmxvcmlh
biBSaXZvYWwiLAorICAgICAgICAiZW1haWwiOiAiZ2l0QGZsb3JpYW4ucml2b2FsLm5ldCIsCisg
ICAgICAgICJ1c2VybmFtZSI6ICJmcml2b2FsIgorICAgICAgfSwKKyAgICAgICJhZGRlZCI6IFsK
KyAgICAgICAgImNzcy9jc3MtdGV4dC93b3JkLWJvdW5kYXJ5L3JlZmVyZW5jZS93b3JkLWJvdW5k
YXJ5LTEwMS1yZWYuaHRtbCIsCisgICAgICAgICJjc3MvY3NzLXRleHQvd29yZC1ib3VuZGFyeS9y
ZWZlcmVuY2Uvd29yZC1ib3VuZGFyeS0xMDItcmVmLmh0bWwiLAorICAgICAgICAiY3NzL2Nzcy10
ZXh0L3dvcmQtYm91bmRhcnkvcmVmZXJlbmNlL3dvcmQtYm91bmRhcnktMTAzLXJlZi5odG1sIiwK
KyAgICAgICAgImNzcy9jc3MtdGV4dC93b3JkLWJvdW5kYXJ5L3JlZmVyZW5jZS93b3JkLWJvdW5k
YXJ5LTEwNC1yZWYuaHRtbCIsCisgICAgICAgICJjc3MvY3NzLXRleHQvd29yZC1ib3VuZGFyeS9y
ZWZlcmVuY2Uvd29yZC1ib3VuZGFyeS0xMDUtcmVmLmh0bWwiLAorICAgICAgICAiY3NzL2Nzcy10
ZXh0L3dvcmQtYm91bmRhcnkvcmVmZXJlbmNlL3dvcmQtYm91bmRhcnktMTA2LXJlZi5odG1sIiwK
KyAgICAgICAgImNzcy9jc3MtdGV4dC93b3JkLWJvdW5kYXJ5L3JlZmVyZW5jZS93b3JkLWJvdW5k
YXJ5LTEwNy1yZWYuaHRtbCIsCisgICAgICAgICJjc3MvY3NzLXRleHQvd29yZC1ib3VuZGFyeS9y
ZWZlcmVuY2Uvd29yZC1ib3VuZGFyeS0xMDgtcmVmLmh0bWwiLAorICAgICAgICAiY3NzL2Nzcy10
ZXh0L3dvcmQtYm91bmRhcnkvcmVmZXJlbmNlL3dvcmQtYm91bmRhcnktMTA5LWEtcmVmLmh0bWwi
LAorICAgICAgICAiY3NzL2Nzcy10ZXh0L3dvcmQtYm91bmRhcnkvcmVmZXJlbmNlL3dvcmQtYm91
bmRhcnktMTA5LWItcmVmLmh0bWwiLAorICAgICAgICAiY3NzL2Nzcy10ZXh0L3dvcmQtYm91bmRh
cnkvcmVmZXJlbmNlL3dvcmQtYm91bmRhcnktMTEwLWEtcmVmLmh0bWwiLAorICAgICAgICAiY3Nz
L2Nzcy10ZXh0L3dvcmQtYm91bmRhcnkvcmVmZXJlbmNlL3dvcmQtYm91bmRhcnktMTEwLWItcmVm
Lmh0bWwiLAorICAgICAgICAiY3NzL2Nzcy10ZXh0L3dvcmQtYm91bmRhcnkvcmVmZXJlbmNlL3dv
cmQtYm91bmRhcnktMTExLXJlZi5odG1sIiwKKyAgICAgICAgImNzcy9jc3MtdGV4dC93b3JkLWJv
dW5kYXJ5L3JlZmVyZW5jZS93b3JkLWJvdW5kYXJ5LTExMi1yZWYuaHRtbCIsCisgICAgICAgICJj
c3MvY3NzLXRleHQvd29yZC1ib3VuZGFyeS9yZWZlcmVuY2Uvd29yZC1ib3VuZGFyeS0xMTMtcmVm
Lmh0bWwiLAorICAgICAgICAiY3NzL2Nzcy10ZXh0L3dvcmQtYm91bmRhcnkvcmVmZXJlbmNlL3dv
cmQtYm91bmRhcnktMTE0LWEtcmVmLmh0bWwiLAorICAgICAgICAiY3NzL2Nzcy10ZXh0L3dvcmQt
Ym91bmRhcnkvcmVmZXJlbmNlL3dvcmQtYm91bmRhcnktMTE0LWItcmVmLmh0bWwiLAorICAgICAg
ICAiY3NzL2Nzcy10ZXh0L3dvcmQtYm91bmRhcnkvcmVmZXJlbmNlL3dvcmQtYm91bmRhcnktMTE1
LXJlZi5odG1sIiwKKyAgICAgICAgImNzcy9jc3MtdGV4dC93b3JkLWJvdW5kYXJ5L3JlZmVyZW5j
ZS93b3JkLWJvdW5kYXJ5LTExNi1yZWYuaHRtbCIsCisgICAgICAgICJjc3MvY3NzLXRleHQvd29y
ZC1ib3VuZGFyeS9yZWZlcmVuY2Uvd29yZC1ib3VuZGFyeS0xMTctcmVmLmh0bWwiLAorICAgICAg
ICAiY3NzL2Nzcy10ZXh0L3dvcmQtYm91bmRhcnkvcmVmZXJlbmNlL3dvcmQtYm91bmRhcnktMTE5
LXJlZi5odG1sIiwKKyAgICAgICAgImNzcy9jc3MtdGV4dC93b3JkLWJvdW5kYXJ5L3JlZmVyZW5j
ZS93b3JkLWJvdW5kYXJ5LTEyMC1yZWYuaHRtbCIsCisgICAgICAgICJjc3MvY3NzLXRleHQvd29y
ZC1ib3VuZGFyeS9yZWZlcmVuY2Uvd29yZC1ib3VuZGFyeS0xMjEtcmVmLmh0bWwiLAorICAgICAg
ICAiY3NzL2Nzcy10ZXh0L3dvcmQtYm91bmRhcnkvcmVmZXJlbmNlL3dvcmQtYm91bmRhcnktMTIy
LXJlZi5odG1sIiwKKyAgICAgICAgImNzcy9jc3MtdGV4dC93b3JkLWJvdW5kYXJ5L3JlZmVyZW5j
ZS93b3JkLWJvdW5kYXJ5LTEyMy1yZWYuaHRtbCIsCisgICAgICAgICJjc3MvY3NzLXRleHQvd29y
ZC1ib3VuZGFyeS9yZWZlcmVuY2Uvd29yZC1ib3VuZGFyeS0xMjQtcmVmLmh0bWwiLAorICAgICAg
ICAiY3NzL2Nzcy10ZXh0L3dvcmQtYm91bmRhcnkvcmVmZXJlbmNlL3dvcmQtYm91bmRhcnktMTI1
LXJlZi5odG1sIiwKKyAgICAgICAgImNzcy9jc3MtdGV4dC93b3JkLWJvdW5kYXJ5L3JlZmVyZW5j
ZS93b3JkLWJvdW5kYXJ5LTEyNi1yZWYuaHRtbCIsCisgICAgICAgICJjc3MvY3NzLXRleHQvd29y
ZC1ib3VuZGFyeS9yZWZlcmVuY2Uvd29yZC1ib3VuZGFyeS0xMjctcmVmLmh0bWwiLAorICAgICAg
ICAiY3NzL2Nzcy10ZXh0L3dvcmQtYm91bmRhcnkvcmVmZXJlbmNlL3dvcmQtYm91bmRhcnktMTI4
LXJlZi5odG1sIiwKKyAgICAgICAgImNzcy9jc3MtdGV4dC93b3JkLWJvdW5kYXJ5L3JlZmVyZW5j
ZS93b3JkLWJvdW5kYXJ5LTEyOS1yZWYuaHRtbCIsCisgICAgICAgICJjc3MvY3NzLXRleHQvd29y
ZC1ib3VuZGFyeS93b3JkLWJvdW5kYXJ5LTEwMS5odG1sIiwKKyAgICAgICAgImNzcy9jc3MtdGV4
dC93b3JkLWJvdW5kYXJ5L3dvcmQtYm91bmRhcnktMTAyLmh0bWwiLAorICAgICAgICAiY3NzL2Nz
cy10ZXh0L3dvcmQtYm91bmRhcnkvd29yZC1ib3VuZGFyeS0xMDMuaHRtbCIsCisgICAgICAgICJj
c3MvY3NzLXRleHQvd29yZC1ib3VuZGFyeS93b3JkLWJvdW5kYXJ5LTEwNC5odG1sIiwKKyAgICAg
ICAgImNzcy9jc3MtdGV4dC93b3JkLWJvdW5kYXJ5L3dvcmQtYm91bmRhcnktMTA1Lmh0bWwiLAor
ICAgICAgICAiY3NzL2Nzcy10ZXh0L3dvcmQtYm91bmRhcnkvd29yZC1ib3VuZGFyeS0xMDYuaHRt
bCIsCisgICAgICAgICJjc3MvY3NzLXRleHQvd29yZC1ib3VuZGFyeS93b3JkLWJvdW5kYXJ5LTEw
Ny5odG1sIiwKKyAgICAgICAgImNzcy9jc3MtdGV4dC93b3JkLWJvdW5kYXJ5L3dvcmQtYm91bmRh
cnktMTA4Lmh0bWwiLAorICAgICAgICAiY3NzL2Nzcy10ZXh0L3dvcmQtYm91bmRhcnkvd29yZC1i
b3VuZGFyeS0xMDkuaHRtbCIsCisgICAgICAgICJjc3MvY3NzLXRleHQvd29yZC1ib3VuZGFyeS93
b3JkLWJvdW5kYXJ5LTExMC5odG1sIiwKKyAgICAgICAgImNzcy9jc3MtdGV4dC93b3JkLWJvdW5k
YXJ5L3dvcmQtYm91bmRhcnktMTExLmh0bWwiLAorICAgICAgICAiY3NzL2Nzcy10ZXh0L3dvcmQt
Ym91bmRhcnkvd29yZC1ib3VuZGFyeS0xMTIuaHRtbCIsCisgICAgICAgICJjc3MvY3NzLXRleHQv
d29yZC1ib3VuZGFyeS93b3JkLWJvdW5kYXJ5LTExMy5odG1sIiwKKyAgICAgICAgImNzcy9jc3Mt
dGV4dC93b3JkLWJvdW5kYXJ5L3dvcmQtYm91bmRhcnktMTE0Lmh0bWwiLAorICAgICAgICAiY3Nz
L2Nzcy10ZXh0L3dvcmQtYm91bmRhcnkvd29yZC1ib3VuZGFyeS0xMTUuaHRtbCIsCisgICAgICAg
ICJjc3MvY3NzLXRleHQvd29yZC1ib3VuZGFyeS93b3JkLWJvdW5kYXJ5LTExNi5odG1sIiwKKyAg
ICAgICAgImNzcy9jc3MtdGV4dC93b3JkLWJvdW5kYXJ5L3dvcmQtYm91bmRhcnktMTE3Lmh0bWwi
LAorICAgICAgICAiY3NzL2Nzcy10ZXh0L3dvcmQtYm91bmRhcnkvd29yZC1ib3VuZGFyeS0xMTgu
aHRtbCIsCisgICAgICAgICJjc3MvY3NzLXRleHQvd29yZC1ib3VuZGFyeS93b3JkLWJvdW5kYXJ5
LTExOS5odG1sIiwKKyAgICAgICAgImNzcy9jc3MtdGV4dC93b3JkLWJvdW5kYXJ5L3dvcmQtYm91
bmRhcnktMTIwLmh0bWwiLAorICAgICAgICAiY3NzL2Nzcy10ZXh0L3dvcmQtYm91bmRhcnkvd29y
ZC1ib3VuZGFyeS0xMjEuaHRtbCIsCisgICAgICAgICJjc3MvY3NzLXRleHQvd29yZC1ib3VuZGFy
eS93b3JkLWJvdW5kYXJ5LTEyMi5odG1sIiwKKyAgICAgICAgImNzcy9jc3MtdGV4dC93b3JkLWJv
dW5kYXJ5L3dvcmQtYm91bmRhcnktMTIzLmh0bWwiLAorICAgICAgICAiY3NzL2Nzcy10ZXh0L3dv
cmQtYm91bmRhcnkvd29yZC1ib3VuZGFyeS0xMjQuaHRtbCIsCisgICAgICAgICJjc3MvY3NzLXRl
eHQvd29yZC1ib3VuZGFyeS93b3JkLWJvdW5kYXJ5LTEyNS5odG1sIiwKKyAgICAgICAgImNzcy9j
c3MtdGV4dC93b3JkLWJvdW5kYXJ5L3dvcmQtYm91bmRhcnktMTI2Lmh0bWwiLAorICAgICAgICAi
Y3NzL2Nzcy10ZXh0L3dvcmQtYm91bmRhcnkvd29yZC1ib3VuZGFyeS0xMjcuaHRtbCIsCisgICAg
ICAgICJjc3MvY3NzLXRleHQvd29yZC1ib3VuZGFyeS93b3JkLWJvdW5kYXJ5LTEyOC5odG1sIiwK
KyAgICAgICAgImNzcy9jc3MtdGV4dC93b3JkLWJvdW5kYXJ5L3dvcmQtYm91bmRhcnktMTI5Lmh0
bWwiCisgICAgICBdLAorICAgICAgInJlbW92ZWQiOiBbCisKKyAgICAgIF0sCisgICAgICAibW9k
aWZpZWQiOiBbCisKKyAgICAgIF0KKyAgICB9LAorICAgIHsKKyAgICAgICJpZCI6ICIwNTRlZGNj
MjNhYTFlMGViZWU1MGQ3ZGRmMWNlNjExNWRkOTQwZWNlIiwKKyAgICAgICJ0cmVlX2lkIjogImI1
OGNhMzZiYjdlOTI4ZDQ0MGJlZDczNGUzMjM1ODA0NjdkZDMyYzciLAorICAgICAgImRpc3RpbmN0
IjogZmFsc2UsCisgICAgICAibWVzc2FnZSI6ICJbY3NzLXRleHRdIEZpeCB0eXBvIiwKKyAgICAg
ICJ0aW1lc3RhbXAiOiAiMjAxOS0xMS0zMFQxOTowODoxMiswOTowMCIsCisgICAgICAidXJsIjog
Imh0dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxhdGZvcm0tdGVzdHMvd3B0L2NvbW1pdC8wNTRlZGNj
MjNhYTFlMGViZWU1MGQ3ZGRmMWNlNjExNWRkOTQwZWNlIiwKKyAgICAgICJhdXRob3IiOiB7Cisg
ICAgICAgICJuYW1lIjogIkZsb3JpYW4gUml2b2FsIiwKKyAgICAgICAgImVtYWlsIjogImdpdEBm
bG9yaWFuLnJpdm9hbC5uZXQiLAorICAgICAgICAidXNlcm5hbWUiOiAiZnJpdm9hbCIKKyAgICAg
IH0sCisgICAgICAiY29tbWl0dGVyIjogeworICAgICAgICAibmFtZSI6ICJGbG9yaWFuIFJpdm9h
bCIsCisgICAgICAgICJlbWFpbCI6ICJnaXRAZmxvcmlhbi5yaXZvYWwubmV0IiwKKyAgICAgICAg
InVzZXJuYW1lIjogImZyaXZvYWwiCisgICAgICB9LAorICAgICAgImFkZGVkIjogWworCisgICAg
ICBdLAorICAgICAgInJlbW92ZWQiOiBbCisKKyAgICAgIF0sCisgICAgICAibW9kaWZpZWQiOiBb
CisgICAgICAgICJjc3MvY3NzLXRleHQvcGFyc2luZy93b3JkLWJvdW5kYXJ5LWV4cGFuc2lvbi1j
b21wdXRlZC5odG1sIgorICAgICAgXQorICAgIH0sCisgICAgeworICAgICAgImlkIjogImQxNWQ2
ZDkxODM0MTA4YTM4MDcwNzcxMDI1YjU0ODEyNGQ0NDAyNmIiLAorICAgICAgInRyZWVfaWQiOiAi
YTE0NzZkMzQ3YjA0YWNiNTllZDI1NjJmMGQ0Zjg0NWU4MjUyZTZkMCIsCisgICAgICAiZGlzdGlu
Y3QiOiBmYWxzZSwKKyAgICAgICJtZXNzYWdlIjogIltjc3MtdGV4dCBhZGQgcGFyc2luZyB0ZXN0
cyBmb3Igd29yZC1ib3VuZGFyeS1kZXRlY3Rpb24iLAorICAgICAgInRpbWVzdGFtcCI6ICIyMDE5
LTExLTMwVDE5OjA4OjEyKzA5OjAwIiwKKyAgICAgICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29t
L3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQvY29tbWl0L2QxNWQ2ZDkxODM0MTA4YTM4MDcwNzcxMDI1
YjU0ODEyNGQ0NDAyNmIiLAorICAgICAgImF1dGhvciI6IHsKKyAgICAgICAgIm5hbWUiOiAiRmxv
cmlhbiBSaXZvYWwiLAorICAgICAgICAiZW1haWwiOiAiZ2l0QGZsb3JpYW4ucml2b2FsLm5ldCIs
CisgICAgICAgICJ1c2VybmFtZSI6ICJmcml2b2FsIgorICAgICAgfSwKKyAgICAgICJjb21taXR0
ZXIiOiB7CisgICAgICAgICJuYW1lIjogIkZsb3JpYW4gUml2b2FsIiwKKyAgICAgICAgImVtYWls
IjogImdpdEBmbG9yaWFuLnJpdm9hbC5uZXQiLAorICAgICAgICAidXNlcm5hbWUiOiAiZnJpdm9h
bCIKKyAgICAgIH0sCisgICAgICAiYWRkZWQiOiBbCisgICAgICAgICJjc3MvY3NzLXRleHQvcGFy
c2luZy93b3JkLWJvdW5kYXJ5LWRldGVjdGlvbi1jb21wdXRlZC5odG1sIiwKKyAgICAgICAgImNz
cy9jc3MtdGV4dC9wYXJzaW5nL3dvcmQtYm91bmRhcnktZGV0ZWN0aW9uLWludmFsaWQuaHRtbCIs
CisgICAgICAgICJjc3MvY3NzLXRleHQvcGFyc2luZy93b3JkLWJvdW5kYXJ5LWRldGVjdGlvbi12
YWxpZC5odG1sIgorICAgICAgXSwKKyAgICAgICJyZW1vdmVkIjogWworCisgICAgICBdLAorICAg
ICAgIm1vZGlmaWVkIjogWworCisgICAgICBdCisgICAgfSwKKyAgICB7CisgICAgICAiaWQiOiAi
NWRmNTZiMjVlMWNiODFmODFmZTE2Yzg4YmU4MzlmOWZkNTM4YjQxZSIsCisgICAgICAidHJlZV9p
ZCI6ICIxOGRhODdlNzcwMWJkNjIxOGY0NDM3YjRkMmQ0OWNlZmUxZjU2YWY5IiwKKyAgICAgICJk
aXN0aW5jdCI6IGZhbHNlLAorICAgICAgIm1lc3NhZ2UiOiAiRGVsZXRlIGludmFsaWQgdGVzdC4g
KCMyMDU0NylcblxuSXQgc2VlbXMgaXQgZXhwZWN0cyBgdHJhbnNmb3JtOiByb3RhdGUoMWRlZywg
MjBweCwgMjBweClgIHRvIHNvbWVob3cgYmUgdmFsaWQuXHJcblxyXG5JdCB3YXMgaW50cm9kdWNl
ZCBpbiBjZGMzMDMyZjU2Yzg2Y2M2ODEyMWU1NGUxNjk0ODU0NDFkOWNkYjFhLCBwb2ludGluZyB0
byBodHRwczovL3d3dy53My5vcmcvVFIvY3NzLXRyYW5zZm9ybXMtMS8jc3ZnLXRyYW5zZm9ybS1m
dW5jdGlvbnMsIHdoaWNoIGRvZXNuJ3Qgc2F5IGFueXRoaW5nIGxpa2UgdGhhdC5cclxuXHJcbkRv
ZXNuJ3QgcGFzcyBpbiBhbnkgYnJvd3Nlci4iLAorICAgICAgInRpbWVzdGFtcCI6ICIyMDE5LTEx
LTMwVDEzOjM0OjI0LTA4OjAwIiwKKyAgICAgICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3dl
Yi1wbGF0Zm9ybS10ZXN0cy93cHQvY29tbWl0LzVkZjU2YjI1ZTFjYjgxZjgxZmUxNmM4OGJlODM5
ZjlmZDUzOGI0MWUiLAorICAgICAgImF1dGhvciI6IHsKKyAgICAgICAgIm5hbWUiOiAiRW1pbGlv
IENvYm9zIMOBbHZhcmV6IiwKKyAgICAgICAgImVtYWlsIjogImVtaWxpb0BjcmlzYWwuaW8iLAor
ICAgICAgICAidXNlcm5hbWUiOiAiZW1pbGlvIgorICAgICAgfSwKKyAgICAgICJjb21taXR0ZXIi
OiB7CisgICAgICAgICJuYW1lIjogIkwuIERhdmlkIEJhcm9uIiwKKyAgICAgICAgImVtYWlsIjog
ImRiYXJvbkBkYmFyb24ub3JnIiwKKyAgICAgICAgInVzZXJuYW1lIjogImRiYXJvbiIKKyAgICAg
IH0sCisgICAgICAiYWRkZWQiOiBbCisKKyAgICAgIF0sCisgICAgICAicmVtb3ZlZCI6IFsKKyAg
ICAgICAgImNzcy9jc3MtdHJhbnNmb3Jtcy9leHRlcm5hbC1zdHlsZXMvc3ZnLWV4dGVybmFsLXN0
eWxlcy0wMTIuaHRtbCIKKyAgICAgIF0sCisgICAgICAibW9kaWZpZWQiOiBbCisgICAgICAgICJj
c3MvY3NzLXRyYW5zZm9ybXMvZXh0ZXJuYWwtc3R5bGVzL3N1cHBvcnQvc3ZnLWV4dGVybmFsLXN0
eWxlcy5jc3MiCisgICAgICBdCisgICAgfQorICBdLAorICAiaGVhZF9jb21taXQiOiB7CisgICAg
ImlkIjogIjVkZjU2YjI1ZTFjYjgxZjgxZmUxNmM4OGJlODM5ZjlmZDUzOGI0MWUiLAorICAgICJ0
cmVlX2lkIjogIjE4ZGE4N2U3NzAxYmQ2MjE4ZjQ0MzdiNGQyZDQ5Y2VmZTFmNTZhZjkiLAorICAg
ICJkaXN0aW5jdCI6IGZhbHNlLAorICAgICJtZXNzYWdlIjogIkRlbGV0ZSBpbnZhbGlkIHRlc3Qu
ICgjMjA1NDcpXG5cbkl0IHNlZW1zIGl0IGV4cGVjdHMgYHRyYW5zZm9ybTogcm90YXRlKDFkZWcs
IDIwcHgsIDIwcHgpYCB0byBzb21laG93IGJlIHZhbGlkLlxyXG5cclxuSXQgd2FzIGludHJvZHVj
ZWQgaW4gY2RjMzAzMmY1NmM4NmNjNjgxMjFlNTRlMTY5NDg1NDQxZDljZGIxYSwgcG9pbnRpbmcg
dG8gaHR0cHM6Ly93d3cudzMub3JnL1RSL2Nzcy10cmFuc2Zvcm1zLTEvI3N2Zy10cmFuc2Zvcm0t
ZnVuY3Rpb25zLCB3aGljaCBkb2Vzbid0IHNheSBhbnl0aGluZyBsaWtlIHRoYXQuXHJcblxyXG5E
b2Vzbid0IHBhc3MgaW4gYW55IGJyb3dzZXIuIiwKKyAgICAidGltZXN0YW1wIjogIjIwMTktMTEt
MzBUMTM6MzQ6MjQtMDg6MDAiLAorICAgICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3dlYi1w
bGF0Zm9ybS10ZXN0cy93cHQvY29tbWl0LzVkZjU2YjI1ZTFjYjgxZjgxZmUxNmM4OGJlODM5Zjlm
ZDUzOGI0MWUiLAorICAgICJhdXRob3IiOiB7CisgICAgICAibmFtZSI6ICJFbWlsaW8gQ29ib3Mg
w4FsdmFyZXoiLAorICAgICAgImVtYWlsIjogImVtaWxpb0BjcmlzYWwuaW8iLAorICAgICAgInVz
ZXJuYW1lIjogImVtaWxpbyIKKyAgICB9LAorICAgICJjb21taXR0ZXIiOiB7CisgICAgICAibmFt
ZSI6ICJMLiBEYXZpZCBCYXJvbiIsCisgICAgICAiZW1haWwiOiAiZGJhcm9uQGRiYXJvbi5vcmci
LAorICAgICAgInVzZXJuYW1lIjogImRiYXJvbiIKKyAgICB9LAorICAgICJhZGRlZCI6IFsKKwor
ICAgIF0sCisgICAgInJlbW92ZWQiOiBbCisgICAgICAiY3NzL2Nzcy10cmFuc2Zvcm1zL2V4dGVy
bmFsLXN0eWxlcy9zdmctZXh0ZXJuYWwtc3R5bGVzLTAxMi5odG1sIgorICAgIF0sCisgICAgIm1v
ZGlmaWVkIjogWworICAgICAgImNzcy9jc3MtdHJhbnNmb3Jtcy9leHRlcm5hbC1zdHlsZXMvc3Vw
cG9ydC9zdmctZXh0ZXJuYWwtc3R5bGVzLmNzcyIKKyAgICBdCisgIH0KK30KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvY2kvdGMv
dGVzdGRhdGEvbWFzdGVyX3B1c2hfZXZlbnQuanNvbiBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvY2kvdGMvdGVzdGRhdGEvbWFzdGVyX3B1c2hfZXZl
bnQuanNvbgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi44ZTc5Zjc1MzczNDlhNzlmZDcwNzQ2YWI2ZTM3MTg5N2FjYzRk
NWUxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy9jaS90Yy90ZXN0ZGF0YS9tYXN0ZXJfcHVzaF9ldmVudC5qc29uCkBA
IC0wLDAgKzEsMjE0IEBACit7CisgICJyZWYiOiAicmVmcy9oZWFkcy9tYXN0ZXIiLAorICAiYmVm
b3JlIjogImE0YmZhMjViZmMzNWU2ZGQ4YWFiZjliYzVhZjcxNGJmM2Q3MGQ3MTIiLAorICAiYWZ0
ZXIiOiAiNWJhZWY3MDJjMjZiODU4MGY1YTRlNWUxYTM0YWM3NWJiOWQ0OTZhZSIsCisgICJjcmVh
dGVkIjogZmFsc2UsCisgICJkZWxldGVkIjogZmFsc2UsCisgICJmb3JjZWQiOiBmYWxzZSwKKyAg
ImJhc2VfcmVmIjogbnVsbCwKKyAgImNvbXBhcmUiOiAiaHR0cHM6Ly9naXRodWIuY29tL3dlYi1w
bGF0Zm9ybS10ZXN0cy93cHQvY29tcGFyZS9hNGJmYTI1YmZjMzUuLi41YmFlZjcwMmMyNmIiLAor
ICAiY29tbWl0cyI6IFsKKyAgICB7CisgICAgICAiaWQiOiAiNWJhZWY3MDJjMjZiODU4MGY1YTRl
NWUxYTM0YWM3NWJiOWQ0OTZhZSIsCisgICAgICAidHJlZV9pZCI6ICIwNDU5NDljZDA0NTk4YjE5
ZjVlZDFiZWJmMmQ1Y2JlZDY0N2YzYzg2IiwKKyAgICAgICJkaXN0aW5jdCI6IHRydWUsCisgICAg
ICAibWVzc2FnZSI6ICJBZGQgc3VwcG9ydCBmb3IgdmVyaWZ5aW5nIHRhc2tjbHVzdGVyIGNvbmZp
ZyAoIzE1NTkzKVxuXG5BZGRzIGFzIHdwdCB0Yy12ZXJpZnkgY29tbWFuZCB0aGF0IHZlcmlmaWVz
IHRoYXQgdGhlIFRhc2tDbHVzdGVyXHJcbmNvbmZpZyBpcyBhIHZhbGlkIHlhbWwgZmlsZSBhbmQg
Y29tcHV0ZXMgdGhlIHRhc2tzIHRoYXQgd2lsbCBydW4gb24gYVxyXG5QUiBzeW5jaHJvbml6ZSBl
dmVudC4gVGhpcyBjYW4gYmUgZXhwYW5kZWQgdG8gbW9yZSBldmVudHMgYW5kIHB1c2hlc1xyXG5p
biB0aGUgZnV0dXJlLiIsCisgICAgICAidGltZXN0YW1wIjogIjIwMTktMDMtMDFUMTQ6NDM6MDda
IiwKKyAgICAgICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9ybS10ZXN0cy93
cHQvY29tbWl0LzViYWVmNzAyYzI2Yjg1ODBmNWE0ZTVlMWEzNGFjNzViYjlkNDk2YWUiLAorICAg
ICAgImF1dGhvciI6IHsKKyAgICAgICAgIm5hbWUiOiAiamdyYWhhbSIsCisgICAgICAgICJlbWFp
bCI6ICJqYW1lc0Bob3BwaXBvbGxhLmNvLnVrIiwKKyAgICAgICAgInVzZXJuYW1lIjogImpncmFo
YW0iCisgICAgICB9LAorICAgICAgImNvbW1pdHRlciI6IHsKKyAgICAgICAgIm5hbWUiOiAiR2l0
SHViIiwKKyAgICAgICAgImVtYWlsIjogIm5vcmVwbHlAZ2l0aHViLmNvbSIsCisgICAgICAgICJ1
c2VybmFtZSI6ICJ3ZWItZmxvdyIKKyAgICAgIH0sCisgICAgICAiYWRkZWQiOiBbCisgICAgICAg
ICJ0b29scy90YXNrY2x1c3Rlci9fX2luaXRfXy5weSIsCisgICAgICAgICJ0b29scy90YXNrY2x1
c3Rlci9jb21tYW5kcy5qc29uIiwKKyAgICAgICAgInRvb2xzL3Rhc2tjbHVzdGVyL3Rlc3RkYXRh
L3ByX2V2ZW50Lmpzb24iLAorICAgICAgICAidG9vbHMvdGFza2NsdXN0ZXIvdmVyaWZ5LnB5Igor
ICAgICAgXSwKKyAgICAgICJyZW1vdmVkIjogWworCisgICAgICBdLAorICAgICAgIm1vZGlmaWVk
IjogWworICAgICAgICAidG9vbHMvd3B0L3BhdGhzIgorICAgICAgXQorICAgIH0KKyAgXSwKKyAg
ImhlYWRfY29tbWl0IjogeworICAgICJpZCI6ICI1YmFlZjcwMmMyNmI4NTgwZjVhNGU1ZTFhMzRh
Yzc1YmI5ZDQ5NmFlIiwKKyAgICAidHJlZV9pZCI6ICIwNDU5NDljZDA0NTk4YjE5ZjVlZDFiZWJm
MmQ1Y2JlZDY0N2YzYzg2IiwKKyAgICAiZGlzdGluY3QiOiB0cnVlLAorICAgICJtZXNzYWdlIjog
IkFkZCBzdXBwb3J0IGZvciB2ZXJpZnlpbmcgdGFza2NsdXN0ZXIgY29uZmlnICgjMTU1OTMpXG5c
bkFkZHMgYXMgd3B0IHRjLXZlcmlmeSBjb21tYW5kIHRoYXQgdmVyaWZpZXMgdGhhdCB0aGUgVGFz
a0NsdXN0ZXJcclxuY29uZmlnIGlzIGEgdmFsaWQgeWFtbCBmaWxlIGFuZCBjb21wdXRlcyB0aGUg
dGFza3MgdGhhdCB3aWxsIHJ1biBvbiBhXHJcblBSIHN5bmNocm9uaXplIGV2ZW50LiBUaGlzIGNh
biBiZSBleHBhbmRlZCB0byBtb3JlIGV2ZW50cyBhbmQgcHVzaGVzXHJcbmluIHRoZSBmdXR1cmUu
IiwKKyAgICAidGltZXN0YW1wIjogIjIwMTktMDMtMDFUMTQ6NDM6MDdaIiwKKyAgICAidXJsIjog
Imh0dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxhdGZvcm0tdGVzdHMvd3B0L2NvbW1pdC81YmFlZjcw
MmMyNmI4NTgwZjVhNGU1ZTFhMzRhYzc1YmI5ZDQ5NmFlIiwKKyAgICAiYXV0aG9yIjogeworICAg
ICAgIm5hbWUiOiAiamdyYWhhbSIsCisgICAgICAiZW1haWwiOiAiamFtZXNAaG9wcGlwb2xsYS5j
by51ayIsCisgICAgICAidXNlcm5hbWUiOiAiamdyYWhhbSIKKyAgICB9LAorICAgICJjb21taXR0
ZXIiOiB7CisgICAgICAibmFtZSI6ICJHaXRIdWIiLAorICAgICAgImVtYWlsIjogIm5vcmVwbHlA
Z2l0aHViLmNvbSIsCisgICAgICAidXNlcm5hbWUiOiAid2ViLWZsb3ciCisgICAgfSwKKyAgICAi
YWRkZWQiOiBbCisgICAgICAidG9vbHMvdGFza2NsdXN0ZXIvX19pbml0X18ucHkiLAorICAgICAg
InRvb2xzL3Rhc2tjbHVzdGVyL2NvbW1hbmRzLmpzb24iLAorICAgICAgInRvb2xzL3Rhc2tjbHVz
dGVyL3Rlc3RkYXRhL3ByX2V2ZW50Lmpzb24iLAorICAgICAgInRvb2xzL3Rhc2tjbHVzdGVyL3Zl
cmlmeS5weSIKKyAgICBdLAorICAgICJyZW1vdmVkIjogWworCisgICAgXSwKKyAgICAibW9kaWZp
ZWQiOiBbCisgICAgICAidG9vbHMvd3B0L3BhdGhzIgorICAgIF0KKyAgfSwKKyAgInJlcG9zaXRv
cnkiOiB7CisgICAgImlkIjogMzYxODEzMywKKyAgICAibm9kZV9pZCI6ICJNREV3T2xKbGNHOXph
WFJ2Y25rek5qRTRNVE16IiwKKyAgICAibmFtZSI6ICJ3cHQiLAorICAgICJmdWxsX25hbWUiOiAi
d2ViLXBsYXRmb3JtLXRlc3RzL3dwdCIsCisgICAgInByaXZhdGUiOiBmYWxzZSwKKyAgICAib3du
ZXIiOiB7CisgICAgICAibmFtZSI6ICJ3ZWItcGxhdGZvcm0tdGVzdHMiLAorICAgICAgImVtYWls
IjogIiIsCisgICAgICAibG9naW4iOiAid2ViLXBsYXRmb3JtLXRlc3RzIiwKKyAgICAgICJpZCI6
IDM3MjI2MjMzLAorICAgICAgIm5vZGVfaWQiOiAiTURFeU9rOXlaMkZ1YVhwaGRHbHZiak0zTWpJ
Mk1qTXoiLAorICAgICAgImF2YXRhcl91cmwiOiAiaHR0cHM6Ly9hdmF0YXJzMC5naXRodWJ1c2Vy
Y29udGVudC5jb20vdS8zNzIyNjIzMz92PTQiLAorICAgICAgImdyYXZhdGFyX2lkIjogIiIsCisg
ICAgICAidXJsIjogImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vdXNlcnMvd2ViLXBsYXRmb3JtLXRl
c3RzIiwKKyAgICAgICJodG1sX3VybCI6ICJodHRwczovL2dpdGh1Yi5jb20vd2ViLXBsYXRmb3Jt
LXRlc3RzIiwKKyAgICAgICJmb2xsb3dlcnNfdXJsIjogImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20v
dXNlcnMvd2ViLXBsYXRmb3JtLXRlc3RzL2ZvbGxvd2VycyIsCisgICAgICAiZm9sbG93aW5nX3Vy
bCI6ICJodHRwczovL2FwaS5naXRodWIuY29tL3VzZXJzL3dlYi1wbGF0Zm9ybS10ZXN0cy9mb2xs
b3dpbmd7L290aGVyX3VzZXJ9IiwKKyAgICAgICJnaXN0c191cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0
aHViLmNvbS91c2Vycy93ZWItcGxhdGZvcm0tdGVzdHMvZ2lzdHN7L2dpc3RfaWR9IiwKKyAgICAg
ICJzdGFycmVkX3VybCI6ICJodHRwczovL2FwaS5naXRodWIuY29tL3VzZXJzL3dlYi1wbGF0Zm9y
bS10ZXN0cy9zdGFycmVkey9vd25lcn17L3JlcG99IiwKKyAgICAgICJzdWJzY3JpcHRpb25zX3Vy
bCI6ICJodHRwczovL2FwaS5naXRodWIuY29tL3VzZXJzL3dlYi1wbGF0Zm9ybS10ZXN0cy9zdWJz
Y3JpcHRpb25zIiwKKyAgICAgICJvcmdhbml6YXRpb25zX3VybCI6ICJodHRwczovL2FwaS5naXRo
dWIuY29tL3VzZXJzL3dlYi1wbGF0Zm9ybS10ZXN0cy9vcmdzIiwKKyAgICAgICJyZXBvc191cmwi
OiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS91c2Vycy93ZWItcGxhdGZvcm0tdGVzdHMvcmVwb3Mi
LAorICAgICAgImV2ZW50c191cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS91c2Vycy93ZWIt
cGxhdGZvcm0tdGVzdHMvZXZlbnRzey9wcml2YWN5fSIsCisgICAgICAicmVjZWl2ZWRfZXZlbnRz
X3VybCI6ICJodHRwczovL2FwaS5naXRodWIuY29tL3VzZXJzL3dlYi1wbGF0Zm9ybS10ZXN0cy9y
ZWNlaXZlZF9ldmVudHMiLAorICAgICAgInR5cGUiOiAiT3JnYW5pemF0aW9uIiwKKyAgICAgICJz
aXRlX2FkbWluIjogZmFsc2UKKyAgICB9LAorICAgICJodG1sX3VybCI6ICJodHRwczovL2dpdGh1
Yi5jb20vd2ViLXBsYXRmb3JtLXRlc3RzL3dwdCIsCisgICAgImRlc2NyaXB0aW9uIjogIlRlc3Qg
c3VpdGVzIGZvciBXZWIgcGxhdGZvcm0gc3BlY3Mg4oCUIGluY2x1ZGluZyBXSEFUV0csIFczQywg
YW5kIG90aGVycyIsCisgICAgImZvcmsiOiBmYWxzZSwKKyAgICAidXJsIjogImh0dHBzOi8vZ2l0
aHViLmNvbS93ZWItcGxhdGZvcm0tdGVzdHMvd3B0IiwKKyAgICAiZm9ya3NfdXJsIjogImh0dHBz
Oi8vYXBpLmdpdGh1Yi5jb20vcmVwb3Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dwdC9mb3JrcyIsCisg
ICAgImtleXNfdXJsIjogImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3dwdC9rZXlzey9rZXlfaWR9IiwKKyAgICAiY29sbGFib3JhdG9yc191cmwiOiAiaHR0
cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy93ZWItcGxhdGZvcm0tdGVzdHMvd3B0L2NvbGxhYm9y
YXRvcnN7L2NvbGxhYm9yYXRvcn0iLAorICAgICJ0ZWFtc191cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0
aHViLmNvbS9yZXBvcy93ZWItcGxhdGZvcm0tdGVzdHMvd3B0L3RlYW1zIiwKKyAgICAiaG9va3Nf
dXJsIjogImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dw
dC9ob29rcyIsCisgICAgImlzc3VlX2V2ZW50c191cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNv
bS9yZXBvcy93ZWItcGxhdGZvcm0tdGVzdHMvd3B0L2lzc3Vlcy9ldmVudHN7L251bWJlcn0iLAor
ICAgICJldmVudHNfdXJsIjogImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3dwdC9ldmVudHMiLAorICAgICJhc3NpZ25lZXNfdXJsIjogImh0dHBzOi8vYXBp
LmdpdGh1Yi5jb20vcmVwb3Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dwdC9hc3NpZ25lZXN7L3VzZXJ9
IiwKKyAgICAiYnJhbmNoZXNfdXJsIjogImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3dwdC9icmFuY2hlc3svYnJhbmNofSIsCisgICAgInRhZ3NfdXJsIjog
Imh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dwdC90YWdz
IiwKKyAgICAiYmxvYnNfdXJsIjogImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3dwdC9naXQvYmxvYnN7L3NoYX0iLAorICAgICJnaXRfdGFnc191cmwiOiAi
aHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy93ZWItcGxhdGZvcm0tdGVzdHMvd3B0L2dpdC90
YWdzey9zaGF9IiwKKyAgICAiZ2l0X3JlZnNfdXJsIjogImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20v
cmVwb3Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dwdC9naXQvcmVmc3svc2hhfSIsCisgICAgInRyZWVz
X3VybCI6ICJodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zL3dlYi1wbGF0Zm9ybS10ZXN0cy93
cHQvZ2l0L3RyZWVzey9zaGF9IiwKKyAgICAic3RhdHVzZXNfdXJsIjogImh0dHBzOi8vYXBpLmdp
dGh1Yi5jb20vcmVwb3Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dwdC9zdGF0dXNlcy97c2hhfSIsCisg
ICAgImxhbmd1YWdlc191cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy93ZWItcGxh
dGZvcm0tdGVzdHMvd3B0L2xhbmd1YWdlcyIsCisgICAgInN0YXJnYXplcnNfdXJsIjogImh0dHBz
Oi8vYXBpLmdpdGh1Yi5jb20vcmVwb3Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dwdC9zdGFyZ2F6ZXJz
IiwKKyAgICAiY29udHJpYnV0b3JzX3VybCI6ICJodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9z
L3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQvY29udHJpYnV0b3JzIiwKKyAgICAic3Vic2NyaWJlcnNf
dXJsIjogImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dw
dC9zdWJzY3JpYmVycyIsCisgICAgInN1YnNjcmlwdGlvbl91cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0
aHViLmNvbS9yZXBvcy93ZWItcGxhdGZvcm0tdGVzdHMvd3B0L3N1YnNjcmlwdGlvbiIsCisgICAg
ImNvbW1pdHNfdXJsIjogImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3dwdC9jb21taXRzey9zaGF9IiwKKyAgICAiZ2l0X2NvbW1pdHNfdXJsIjogImh0dHBz
Oi8vYXBpLmdpdGh1Yi5jb20vcmVwb3Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dwdC9naXQvY29tbWl0
c3svc2hhfSIsCisgICAgImNvbW1lbnRzX3VybCI6ICJodHRwczovL2FwaS5naXRodWIuY29tL3Jl
cG9zL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQvY29tbWVudHN7L251bWJlcn0iLAorICAgICJpc3N1
ZV9jb21tZW50X3VybCI6ICJodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zL3dlYi1wbGF0Zm9y
bS10ZXN0cy93cHQvaXNzdWVzL2NvbW1lbnRzey9udW1iZXJ9IiwKKyAgICAiY29udGVudHNfdXJs
IjogImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dwdC9j
b250ZW50cy97K3BhdGh9IiwKKyAgICAiY29tcGFyZV91cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHVi
LmNvbS9yZXBvcy93ZWItcGxhdGZvcm0tdGVzdHMvd3B0L2NvbXBhcmUve2Jhc2V9Li4ue2hlYWR9
IiwKKyAgICAibWVyZ2VzX3VybCI6ICJodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zL3dlYi1w
bGF0Zm9ybS10ZXN0cy93cHQvbWVyZ2VzIiwKKyAgICAiYXJjaGl2ZV91cmwiOiAiaHR0cHM6Ly9h
cGkuZ2l0aHViLmNvbS9yZXBvcy93ZWItcGxhdGZvcm0tdGVzdHMvd3B0L3thcmNoaXZlX2Zvcm1h
dH17L3JlZn0iLAorICAgICJkb3dubG9hZHNfdXJsIjogImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20v
cmVwb3Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dwdC9kb3dubG9hZHMiLAorICAgICJpc3N1ZXNfdXJs
IjogImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dwdC9p
c3N1ZXN7L251bWJlcn0iLAorICAgICJwdWxsc191cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNv
bS9yZXBvcy93ZWItcGxhdGZvcm0tdGVzdHMvd3B0L3B1bGxzey9udW1iZXJ9IiwKKyAgICAibWls
ZXN0b25lc191cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy93ZWItcGxhdGZvcm0t
dGVzdHMvd3B0L21pbGVzdG9uZXN7L251bWJlcn0iLAorICAgICJub3RpZmljYXRpb25zX3VybCI6
ICJodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQvbm90
aWZpY2F0aW9uc3s/c2luY2UsYWxsLHBhcnRpY2lwYXRpbmd9IiwKKyAgICAibGFiZWxzX3VybCI6
ICJodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQvbGFi
ZWxzey9uYW1lfSIsCisgICAgInJlbGVhc2VzX3VybCI6ICJodHRwczovL2FwaS5naXRodWIuY29t
L3JlcG9zL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQvcmVsZWFzZXN7L2lkfSIsCisgICAgImRlcGxv
eW1lbnRzX3VybCI6ICJodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zL3dlYi1wbGF0Zm9ybS10
ZXN0cy93cHQvZGVwbG95bWVudHMiLAorICAgICJjcmVhdGVkX2F0IjogMTMzMDg2NTg5MSwKKyAg
ICAidXBkYXRlZF9hdCI6ICIyMDE5LTAzLTAxVDE0OjE2OjUyWiIsCisgICAgInB1c2hlZF9hdCI6
IDE1NTE0NTEzODksCisgICAgImdpdF91cmwiOiAiZ2l0Oi8vZ2l0aHViLmNvbS93ZWItcGxhdGZv
cm0tdGVzdHMvd3B0LmdpdCIsCisgICAgInNzaF91cmwiOiAiZ2l0QGdpdGh1Yi5jb206d2ViLXBs
YXRmb3JtLXRlc3RzL3dwdC5naXQiLAorICAgICJjbG9uZV91cmwiOiAiaHR0cHM6Ly9naXRodWIu
Y29tL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQuZ2l0IiwKKyAgICAic3ZuX3VybCI6ICJodHRwczov
L2dpdGh1Yi5jb20vd2ViLXBsYXRmb3JtLXRlc3RzL3dwdCIsCisgICAgImhvbWVwYWdlIjogImh0
dHA6Ly9pcmMudzMub3JnLz9jaGFubmVscz10ZXN0aW5nIiwKKyAgICAic2l6ZSI6IDMyNDcyMiwK
KyAgICAic3RhcmdhemVyc19jb3VudCI6IDIwNjAsCisgICAgIndhdGNoZXJzX2NvdW50IjogMjA2
MCwKKyAgICAibGFuZ3VhZ2UiOiAiSFRNTCIsCisgICAgImhhc19pc3N1ZXMiOiB0cnVlLAorICAg
ICJoYXNfcHJvamVjdHMiOiB0cnVlLAorICAgICJoYXNfZG93bmxvYWRzIjogdHJ1ZSwKKyAgICAi
aGFzX3dpa2kiOiB0cnVlLAorICAgICJoYXNfcGFnZXMiOiB0cnVlLAorICAgICJmb3Jrc19jb3Vu
dCI6IDE2MDUsCisgICAgIm1pcnJvcl91cmwiOiBudWxsLAorICAgICJhcmNoaXZlZCI6IGZhbHNl
LAorICAgICJvcGVuX2lzc3Vlc19jb3VudCI6IDEzNTUsCisgICAgImxpY2Vuc2UiOiB7CisgICAg
ICAia2V5IjogIm90aGVyIiwKKyAgICAgICJuYW1lIjogIk90aGVyIiwKKyAgICAgICJzcGR4X2lk
IjogIk5PQVNTRVJUSU9OIiwKKyAgICAgICJ1cmwiOiBudWxsLAorICAgICAgIm5vZGVfaWQiOiAi
TURjNlRHbGpaVzV6WlRBPSIKKyAgICB9LAorICAgICJmb3JrcyI6IDE2MDUsCisgICAgIm9wZW5f
aXNzdWVzIjogMTM2NiwKKyAgICAid2F0Y2hlcnMiOiAyMDYwLAorICAgICJkZWZhdWx0X2JyYW5j
aCI6ICJtYXN0ZXIiLAorICAgICJzdGFyZ2F6ZXJzIjogMjA2MCwKKyAgICAibWFzdGVyX2JyYW5j
aCI6ICJtYXN0ZXIiLAorICAgICJvcmdhbml6YXRpb24iOiAid2ViLXBsYXRmb3JtLXRlc3RzIgor
ICB9LAorICAicHVzaGVyIjogeworICAgICJuYW1lIjogImpncmFoYW0iLAorICAgICJlbWFpbCI6
ICJqYW1lc0Bob3BwaXBvbGxhLmNvLnVrIgorICB9LAorICAib3JnYW5pemF0aW9uIjogeworICAg
ICJsb2dpbiI6ICJ3ZWItcGxhdGZvcm0tdGVzdHMiLAorICAgICJpZCI6IDM3MjI2MjMzLAorICAg
ICJub2RlX2lkIjogIk1ERXlPazl5WjJGdWFYcGhkR2x2YmpNM01qSTJNak16IiwKKyAgICAidXJs
IjogImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vb3Jncy93ZWItcGxhdGZvcm0tdGVzdHMiLAorICAg
ICJyZXBvc191cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9vcmdzL3dlYi1wbGF0Zm9ybS10
ZXN0cy9yZXBvcyIsCisgICAgImV2ZW50c191cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9v
cmdzL3dlYi1wbGF0Zm9ybS10ZXN0cy9ldmVudHMiLAorICAgICJob29rc191cmwiOiAiaHR0cHM6
Ly9hcGkuZ2l0aHViLmNvbS9vcmdzL3dlYi1wbGF0Zm9ybS10ZXN0cy9ob29rcyIsCisgICAgImlz
c3Vlc191cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9vcmdzL3dlYi1wbGF0Zm9ybS10ZXN0
cy9pc3N1ZXMiLAorICAgICJtZW1iZXJzX3VybCI6ICJodHRwczovL2FwaS5naXRodWIuY29tL29y
Z3Mvd2ViLXBsYXRmb3JtLXRlc3RzL21lbWJlcnN7L21lbWJlcn0iLAorICAgICJwdWJsaWNfbWVt
YmVyc191cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9vcmdzL3dlYi1wbGF0Zm9ybS10ZXN0
cy9wdWJsaWNfbWVtYmVyc3svbWVtYmVyfSIsCisgICAgImF2YXRhcl91cmwiOiAiaHR0cHM6Ly9h
dmF0YXJzMC5naXRodWJ1c2VyY29udGVudC5jb20vdS8zNzIyNjIzMz92PTQiLAorICAgICJkZXNj
cmlwdGlvbiI6ICIiCisgIH0sCisgICJzZW5kZXIiOiB7CisgICAgImxvZ2luIjogImpncmFoYW0i
LAorICAgICJpZCI6IDI5NDg2NCwKKyAgICAibm9kZV9pZCI6ICJNRFE2VlhObGNqSTVORGcyTkE9
PSIsCisgICAgImF2YXRhcl91cmwiOiAiaHR0cHM6Ly9hdmF0YXJzMS5naXRodWJ1c2VyY29udGVu
dC5jb20vdS8yOTQ4NjQ/dj00IiwKKyAgICAiZ3JhdmF0YXJfaWQiOiAiIiwKKyAgICAidXJsIjog
Imh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vdXNlcnMvamdyYWhhbSIsCisgICAgImh0bWxfdXJsIjog
Imh0dHBzOi8vZ2l0aHViLmNvbS9qZ3JhaGFtIiwKKyAgICAiZm9sbG93ZXJzX3VybCI6ICJodHRw
czovL2FwaS5naXRodWIuY29tL3VzZXJzL2pncmFoYW0vZm9sbG93ZXJzIiwKKyAgICAiZm9sbG93
aW5nX3VybCI6ICJodHRwczovL2FwaS5naXRodWIuY29tL3VzZXJzL2pncmFoYW0vZm9sbG93aW5n
ey9vdGhlcl91c2VyfSIsCisgICAgImdpc3RzX3VybCI6ICJodHRwczovL2FwaS5naXRodWIuY29t
L3VzZXJzL2pncmFoYW0vZ2lzdHN7L2dpc3RfaWR9IiwKKyAgICAic3RhcnJlZF91cmwiOiAiaHR0
cHM6Ly9hcGkuZ2l0aHViLmNvbS91c2Vycy9qZ3JhaGFtL3N0YXJyZWR7L293bmVyfXsvcmVwb30i
LAorICAgICJzdWJzY3JpcHRpb25zX3VybCI6ICJodHRwczovL2FwaS5naXRodWIuY29tL3VzZXJz
L2pncmFoYW0vc3Vic2NyaXB0aW9ucyIsCisgICAgIm9yZ2FuaXphdGlvbnNfdXJsIjogImh0dHBz
Oi8vYXBpLmdpdGh1Yi5jb20vdXNlcnMvamdyYWhhbS9vcmdzIiwKKyAgICAicmVwb3NfdXJsIjog
Imh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vdXNlcnMvamdyYWhhbS9yZXBvcyIsCisgICAgImV2ZW50
c191cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS91c2Vycy9qZ3JhaGFtL2V2ZW50c3svcHJp
dmFjeX0iLAorICAgICJyZWNlaXZlZF9ldmVudHNfdXJsIjogImh0dHBzOi8vYXBpLmdpdGh1Yi5j
b20vdXNlcnMvamdyYWhhbS9yZWNlaXZlZF9ldmVudHMiLAorICAgICJ0eXBlIjogIlVzZXIiLAor
ICAgICJzaXRlX2FkbWluIjogZmFsc2UKKyAgfQorfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9jaS90Yy90ZXN0ZGF0YS9wcl9l
dmVudC5qc29uIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy9jaS90Yy90ZXN0ZGF0YS9wcl9ldmVudC5qc29uCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjVhY2MxYTYwMTAy
OTFjODhkMjZmOGMxMjU3M2FlZWI5ZDBiMzNlOTcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2NpL3RjL3Rlc3RkYXRh
L3ByX2V2ZW50Lmpzb24KQEAgLTAsMCArMSw1NzcgQEAKK3sKKyAgImFjdGlvbiI6ICJzeW5jaHJv
bml6ZSIsCisgICJudW1iZXIiOiAxNTU3NCwKKyAgInB1bGxfcmVxdWVzdCI6IHsKKyAgICAidXJs
IjogImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dwdC9w
dWxscy8xNTU3NCIsCisgICAgImlkIjogMjU2NjUzMDY1LAorICAgICJub2RlX2lkIjogIk1ERXhP
bEIxYkd4U1pYRjFaWE4wTWpVMk5qVXpNRFkxIiwKKyAgICAiaHRtbF91cmwiOiAiaHR0cHM6Ly9n
aXRodWIuY29tL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQvcHVsbC8xNTU3NCIsCisgICAgImRpZmZf
dXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxhdGZvcm0tdGVzdHMvd3B0L3B1bGwvMTU1
NzQuZGlmZiIsCisgICAgInBhdGNoX3VybCI6ICJodHRwczovL2dpdGh1Yi5jb20vd2ViLXBsYXRm
b3JtLXRlc3RzL3dwdC9wdWxsLzE1NTc0LnBhdGNoIiwKKyAgICAiaXNzdWVfdXJsIjogImh0dHBz
Oi8vYXBpLmdpdGh1Yi5jb20vcmVwb3Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dwdC9pc3N1ZXMvMTU1
NzQiLAorICAgICJudW1iZXIiOiAxNTU3NCwKKyAgICAic3RhdGUiOiAib3BlbiIsCisgICAgImxv
Y2tlZCI6IGZhbHNlLAorICAgICJ0aXRsZSI6ICJNb3ZlIHRoZSBsaW50IGZyb20gVHJhdmlzIHRv
IFRhc2tDbHVzdGVyIiwKKyAgICAidXNlciI6IHsKKyAgICAgICJsb2dpbiI6ICJqZ3JhaGFtIiwK
KyAgICAgICJpZCI6IDI5NDg2NCwKKyAgICAgICJub2RlX2lkIjogIk1EUTZWWE5sY2pJNU5EZzJO
QT09IiwKKyAgICAgICJhdmF0YXJfdXJsIjogImh0dHBzOi8vYXZhdGFyczEuZ2l0aHVidXNlcmNv
bnRlbnQuY29tL3UvMjk0ODY0P3Y9NCIsCisgICAgICAiZ3JhdmF0YXJfaWQiOiAiIiwKKyAgICAg
ICJ1cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS91c2Vycy9qZ3JhaGFtIiwKKyAgICAgICJo
dG1sX3VybCI6ICJodHRwczovL2dpdGh1Yi5jb20vamdyYWhhbSIsCisgICAgICAiZm9sbG93ZXJz
X3VybCI6ICJodHRwczovL2FwaS5naXRodWIuY29tL3VzZXJzL2pncmFoYW0vZm9sbG93ZXJzIiwK
KyAgICAgICJmb2xsb3dpbmdfdXJsIjogImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vdXNlcnMvamdy
YWhhbS9mb2xsb3dpbmd7L290aGVyX3VzZXJ9IiwKKyAgICAgICJnaXN0c191cmwiOiAiaHR0cHM6
Ly9hcGkuZ2l0aHViLmNvbS91c2Vycy9qZ3JhaGFtL2dpc3Rzey9naXN0X2lkfSIsCisgICAgICAi
c3RhcnJlZF91cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS91c2Vycy9qZ3JhaGFtL3N0YXJy
ZWR7L293bmVyfXsvcmVwb30iLAorICAgICAgInN1YnNjcmlwdGlvbnNfdXJsIjogImh0dHBzOi8v
YXBpLmdpdGh1Yi5jb20vdXNlcnMvamdyYWhhbS9zdWJzY3JpcHRpb25zIiwKKyAgICAgICJvcmdh
bml6YXRpb25zX3VybCI6ICJodHRwczovL2FwaS5naXRodWIuY29tL3VzZXJzL2pncmFoYW0vb3Jn
cyIsCisgICAgICAicmVwb3NfdXJsIjogImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vdXNlcnMvamdy
YWhhbS9yZXBvcyIsCisgICAgICAiZXZlbnRzX3VybCI6ICJodHRwczovL2FwaS5naXRodWIuY29t
L3VzZXJzL2pncmFoYW0vZXZlbnRzey9wcml2YWN5fSIsCisgICAgICAicmVjZWl2ZWRfZXZlbnRz
X3VybCI6ICJodHRwczovL2FwaS5naXRodWIuY29tL3VzZXJzL2pncmFoYW0vcmVjZWl2ZWRfZXZl
bnRzIiwKKyAgICAgICJ0eXBlIjogIlVzZXIiLAorICAgICAgInNpdGVfYWRtaW4iOiBmYWxzZQor
ICAgIH0sCisgICAgImJvZHkiOiAiIiwKKyAgICAiY3JlYXRlZF9hdCI6ICIyMDE5LTAyLTI3VDEy
OjAzOjM4WiIsCisgICAgInVwZGF0ZWRfYXQiOiAiMjAxOS0wMi0yOFQxMzo0MzoxN1oiLAorICAg
ICJjbG9zZWRfYXQiOiBudWxsLAorICAgICJtZXJnZWRfYXQiOiBudWxsLAorICAgICJtZXJnZV9j
b21taXRfc2hhIjogIjcwYTI3MjI5NmRhZDBkYjRmMGJlMTEzM2E1OWFhOTdmMGE3MmQ5YWMiLAor
ICAgICJhc3NpZ25lZSI6IHsKKyAgICAgICJsb2dpbiI6ICJnc25lZGRlcnMiLAorICAgICAgImlk
IjogMTc2MjE4LAorICAgICAgIm5vZGVfaWQiOiAiTURRNlZYTmxjakUzTmpJeE9BPT0iLAorICAg
ICAgImF2YXRhcl91cmwiOiAiaHR0cHM6Ly9hdmF0YXJzMi5naXRodWJ1c2VyY29udGVudC5jb20v
dS8xNzYyMTg/dj00IiwKKyAgICAgICJncmF2YXRhcl9pZCI6ICIiLAorICAgICAgInVybCI6ICJo
dHRwczovL2FwaS5naXRodWIuY29tL3VzZXJzL2dzbmVkZGVycyIsCisgICAgICAiaHRtbF91cmwi
OiAiaHR0cHM6Ly9naXRodWIuY29tL2dzbmVkZGVycyIsCisgICAgICAiZm9sbG93ZXJzX3VybCI6
ICJodHRwczovL2FwaS5naXRodWIuY29tL3VzZXJzL2dzbmVkZGVycy9mb2xsb3dlcnMiLAorICAg
ICAgImZvbGxvd2luZ191cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS91c2Vycy9nc25lZGRl
cnMvZm9sbG93aW5ney9vdGhlcl91c2VyfSIsCisgICAgICAiZ2lzdHNfdXJsIjogImh0dHBzOi8v
YXBpLmdpdGh1Yi5jb20vdXNlcnMvZ3NuZWRkZXJzL2dpc3Rzey9naXN0X2lkfSIsCisgICAgICAi
c3RhcnJlZF91cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS91c2Vycy9nc25lZGRlcnMvc3Rh
cnJlZHsvb3duZXJ9ey9yZXBvfSIsCisgICAgICAic3Vic2NyaXB0aW9uc191cmwiOiAiaHR0cHM6
Ly9hcGkuZ2l0aHViLmNvbS91c2Vycy9nc25lZGRlcnMvc3Vic2NyaXB0aW9ucyIsCisgICAgICAi
b3JnYW5pemF0aW9uc191cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS91c2Vycy9nc25lZGRl
cnMvb3JncyIsCisgICAgICAicmVwb3NfdXJsIjogImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vdXNl
cnMvZ3NuZWRkZXJzL3JlcG9zIiwKKyAgICAgICJldmVudHNfdXJsIjogImh0dHBzOi8vYXBpLmdp
dGh1Yi5jb20vdXNlcnMvZ3NuZWRkZXJzL2V2ZW50c3svcHJpdmFjeX0iLAorICAgICAgInJlY2Vp
dmVkX2V2ZW50c191cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS91c2Vycy9nc25lZGRlcnMv
cmVjZWl2ZWRfZXZlbnRzIiwKKyAgICAgICJ0eXBlIjogIlVzZXIiLAorICAgICAgInNpdGVfYWRt
aW4iOiBmYWxzZQorICAgIH0sCisgICAgImFzc2lnbmVlcyI6IFsKKyAgICAgIHsKKyAgICAgICAg
ImxvZ2luIjogImdzbmVkZGVycyIsCisgICAgICAgICJpZCI6IDE3NjIxOCwKKyAgICAgICAgIm5v
ZGVfaWQiOiAiTURRNlZYTmxjakUzTmpJeE9BPT0iLAorICAgICAgICAiYXZhdGFyX3VybCI6ICJo
dHRwczovL2F2YXRhcnMyLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzE3NjIxOD92PTQiLAorICAg
ICAgICAiZ3JhdmF0YXJfaWQiOiAiIiwKKyAgICAgICAgInVybCI6ICJodHRwczovL2FwaS5naXRo
dWIuY29tL3VzZXJzL2dzbmVkZGVycyIsCisgICAgICAgICJodG1sX3VybCI6ICJodHRwczovL2dp
dGh1Yi5jb20vZ3NuZWRkZXJzIiwKKyAgICAgICAgImZvbGxvd2Vyc191cmwiOiAiaHR0cHM6Ly9h
cGkuZ2l0aHViLmNvbS91c2Vycy9nc25lZGRlcnMvZm9sbG93ZXJzIiwKKyAgICAgICAgImZvbGxv
d2luZ191cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS91c2Vycy9nc25lZGRlcnMvZm9sbG93
aW5ney9vdGhlcl91c2VyfSIsCisgICAgICAgICJnaXN0c191cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0
aHViLmNvbS91c2Vycy9nc25lZGRlcnMvZ2lzdHN7L2dpc3RfaWR9IiwKKyAgICAgICAgInN0YXJy
ZWRfdXJsIjogImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vdXNlcnMvZ3NuZWRkZXJzL3N0YXJyZWR7
L293bmVyfXsvcmVwb30iLAorICAgICAgICAic3Vic2NyaXB0aW9uc191cmwiOiAiaHR0cHM6Ly9h
cGkuZ2l0aHViLmNvbS91c2Vycy9nc25lZGRlcnMvc3Vic2NyaXB0aW9ucyIsCisgICAgICAgICJv
cmdhbml6YXRpb25zX3VybCI6ICJodHRwczovL2FwaS5naXRodWIuY29tL3VzZXJzL2dzbmVkZGVy
cy9vcmdzIiwKKyAgICAgICAgInJlcG9zX3VybCI6ICJodHRwczovL2FwaS5naXRodWIuY29tL3Vz
ZXJzL2dzbmVkZGVycy9yZXBvcyIsCisgICAgICAgICJldmVudHNfdXJsIjogImh0dHBzOi8vYXBp
LmdpdGh1Yi5jb20vdXNlcnMvZ3NuZWRkZXJzL2V2ZW50c3svcHJpdmFjeX0iLAorICAgICAgICAi
cmVjZWl2ZWRfZXZlbnRzX3VybCI6ICJodHRwczovL2FwaS5naXRodWIuY29tL3VzZXJzL2dzbmVk
ZGVycy9yZWNlaXZlZF9ldmVudHMiLAorICAgICAgICAidHlwZSI6ICJVc2VyIiwKKyAgICAgICAg
InNpdGVfYWRtaW4iOiBmYWxzZQorICAgICAgfQorICAgIF0sCisgICAgInJlcXVlc3RlZF9yZXZp
ZXdlcnMiOiBbCisgICAgICB7CisgICAgICAgICJsb2dpbiI6ICJnc25lZGRlcnMiLAorICAgICAg
ICAiaWQiOiAxNzYyMTgsCisgICAgICAgICJub2RlX2lkIjogIk1EUTZWWE5sY2pFM05qSXhPQT09
IiwKKyAgICAgICAgImF2YXRhcl91cmwiOiAiaHR0cHM6Ly9hdmF0YXJzMi5naXRodWJ1c2VyY29u
dGVudC5jb20vdS8xNzYyMTg/dj00IiwKKyAgICAgICAgImdyYXZhdGFyX2lkIjogIiIsCisgICAg
ICAgICJ1cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS91c2Vycy9nc25lZGRlcnMiLAorICAg
ICAgICAiaHRtbF91cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2dzbmVkZGVycyIsCisgICAgICAg
ICJmb2xsb3dlcnNfdXJsIjogImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vdXNlcnMvZ3NuZWRkZXJz
L2ZvbGxvd2VycyIsCisgICAgICAgICJmb2xsb3dpbmdfdXJsIjogImh0dHBzOi8vYXBpLmdpdGh1
Yi5jb20vdXNlcnMvZ3NuZWRkZXJzL2ZvbGxvd2luZ3svb3RoZXJfdXNlcn0iLAorICAgICAgICAi
Z2lzdHNfdXJsIjogImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vdXNlcnMvZ3NuZWRkZXJzL2dpc3Rz
ey9naXN0X2lkfSIsCisgICAgICAgICJzdGFycmVkX3VybCI6ICJodHRwczovL2FwaS5naXRodWIu
Y29tL3VzZXJzL2dzbmVkZGVycy9zdGFycmVkey9vd25lcn17L3JlcG99IiwKKyAgICAgICAgInN1
YnNjcmlwdGlvbnNfdXJsIjogImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vdXNlcnMvZ3NuZWRkZXJz
L3N1YnNjcmlwdGlvbnMiLAorICAgICAgICAib3JnYW5pemF0aW9uc191cmwiOiAiaHR0cHM6Ly9h
cGkuZ2l0aHViLmNvbS91c2Vycy9nc25lZGRlcnMvb3JncyIsCisgICAgICAgICJyZXBvc191cmwi
OiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS91c2Vycy9nc25lZGRlcnMvcmVwb3MiLAorICAgICAg
ICAiZXZlbnRzX3VybCI6ICJodHRwczovL2FwaS5naXRodWIuY29tL3VzZXJzL2dzbmVkZGVycy9l
dmVudHN7L3ByaXZhY3l9IiwKKyAgICAgICAgInJlY2VpdmVkX2V2ZW50c191cmwiOiAiaHR0cHM6
Ly9hcGkuZ2l0aHViLmNvbS91c2Vycy9nc25lZGRlcnMvcmVjZWl2ZWRfZXZlbnRzIiwKKyAgICAg
ICAgInR5cGUiOiAiVXNlciIsCisgICAgICAgICJzaXRlX2FkbWluIjogZmFsc2UKKyAgICAgIH0s
CisgICAgICB7CisgICAgICAgICJsb2dpbiI6ICJqdWdnbGlubWlrZSIsCisgICAgICAgICJpZCI6
IDY3NzI1MiwKKyAgICAgICAgIm5vZGVfaWQiOiAiTURRNlZYTmxjalkzTnpJMU1nPT0iLAorICAg
ICAgICAiYXZhdGFyX3VybCI6ICJodHRwczovL2F2YXRhcnMyLmdpdGh1YnVzZXJjb250ZW50LmNv
bS91LzY3NzI1Mj92PTQiLAorICAgICAgICAiZ3JhdmF0YXJfaWQiOiAiIiwKKyAgICAgICAgInVy
bCI6ICJodHRwczovL2FwaS5naXRodWIuY29tL3VzZXJzL2p1Z2dsaW5taWtlIiwKKyAgICAgICAg
Imh0bWxfdXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9qdWdnbGlubWlrZSIsCisgICAgICAgICJm
b2xsb3dlcnNfdXJsIjogImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vdXNlcnMvanVnZ2xpbm1pa2Uv
Zm9sbG93ZXJzIiwKKyAgICAgICAgImZvbGxvd2luZ191cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHVi
LmNvbS91c2Vycy9qdWdnbGlubWlrZS9mb2xsb3dpbmd7L290aGVyX3VzZXJ9IiwKKyAgICAgICAg
Imdpc3RzX3VybCI6ICJodHRwczovL2FwaS5naXRodWIuY29tL3VzZXJzL2p1Z2dsaW5taWtlL2dp
c3Rzey9naXN0X2lkfSIsCisgICAgICAgICJzdGFycmVkX3VybCI6ICJodHRwczovL2FwaS5naXRo
dWIuY29tL3VzZXJzL2p1Z2dsaW5taWtlL3N0YXJyZWR7L293bmVyfXsvcmVwb30iLAorICAgICAg
ICAic3Vic2NyaXB0aW9uc191cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS91c2Vycy9qdWdn
bGlubWlrZS9zdWJzY3JpcHRpb25zIiwKKyAgICAgICAgIm9yZ2FuaXphdGlvbnNfdXJsIjogImh0
dHBzOi8vYXBpLmdpdGh1Yi5jb20vdXNlcnMvanVnZ2xpbm1pa2Uvb3JncyIsCisgICAgICAgICJy
ZXBvc191cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS91c2Vycy9qdWdnbGlubWlrZS9yZXBv
cyIsCisgICAgICAgICJldmVudHNfdXJsIjogImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vdXNlcnMv
anVnZ2xpbm1pa2UvZXZlbnRzey9wcml2YWN5fSIsCisgICAgICAgICJyZWNlaXZlZF9ldmVudHNf
dXJsIjogImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vdXNlcnMvanVnZ2xpbm1pa2UvcmVjZWl2ZWRf
ZXZlbnRzIiwKKyAgICAgICAgInR5cGUiOiAiVXNlciIsCisgICAgICAgICJzaXRlX2FkbWluIjog
ZmFsc2UKKyAgICAgIH0KKyAgICBdLAorICAgICJyZXF1ZXN0ZWRfdGVhbXMiOiBbCisKKyAgICBd
LAorICAgICJsYWJlbHMiOiBbCisgICAgICB7CisgICAgICAgICJpZCI6IDEwMTI5OTk2MDMsCisg
ICAgICAgICJub2RlX2lkIjogIk1EVTZUR0ZpWld3eE1ERXlPVGs1TmpBeiIsCisgICAgICAgICJ1
cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy93ZWItcGxhdGZvcm0tdGVzdHMvd3B0
L2xhYmVscy9jaSIsCisgICAgICAgICJuYW1lIjogImNpIiwKKyAgICAgICAgImNvbG9yIjogImZl
ZjJjMCIsCisgICAgICAgICJkZWZhdWx0IjogZmFsc2UKKyAgICAgIH0sCisgICAgICB7CisgICAg
ICAgICJpZCI6IDQ1MjMwNzkwLAorICAgICAgICAibm9kZV9pZCI6ICJNRFU2VEdGaVpXdzBOVEl6
TURjNU1BPT0iLAorICAgICAgICAidXJsIjogImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3dwdC9sYWJlbHMvaW5mcmEiLAorICAgICAgICAibmFtZSI6ICJp
bmZyYSIsCisgICAgICAgICJjb2xvciI6ICJmYmNhMDQiLAorICAgICAgICAiZGVmYXVsdCI6IGZh
bHNlCisgICAgICB9CisgICAgXSwKKyAgICAibWlsZXN0b25lIjogbnVsbCwKKyAgICAiY29tbWl0
c191cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy93ZWItcGxhdGZvcm0tdGVzdHMv
d3B0L3B1bGxzLzE1NTc0L2NvbW1pdHMiLAorICAgICJyZXZpZXdfY29tbWVudHNfdXJsIjogImh0
dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dwdC9wdWxscy8x
NTU3NC9jb21tZW50cyIsCisgICAgInJldmlld19jb21tZW50X3VybCI6ICJodHRwczovL2FwaS5n
aXRodWIuY29tL3JlcG9zL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQvcHVsbHMvY29tbWVudHN7L251
bWJlcn0iLAorICAgICJjb21tZW50c191cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBv
cy93ZWItcGxhdGZvcm0tdGVzdHMvd3B0L2lzc3Vlcy8xNTU3NC9jb21tZW50cyIsCisgICAgInN0
YXR1c2VzX3VybCI6ICJodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zL3dlYi1wbGF0Zm9ybS10
ZXN0cy93cHQvc3RhdHVzZXMvZmVmNjljNWQ0NzE5NjQzMzIzNGQ2YzM3YTBmZjk4NzQ5MWJkMmRm
YyIsCisgICAgImhlYWQiOiB7CisgICAgICAibGFiZWwiOiAid2ViLXBsYXRmb3JtLXRlc3RzOnRh
c2tjbHVzdGVyX2xpbnQiLAorICAgICAgInJlZiI6ICJ0YXNrY2x1c3Rlcl9saW50IiwKKyAgICAg
ICJzaGEiOiAiZmVmNjljNWQ0NzE5NjQzMzIzNGQ2YzM3YTBmZjk4NzQ5MWJkMmRmYyIsCisgICAg
ICAidXNlciI6IHsKKyAgICAgICAgImxvZ2luIjogIndlYi1wbGF0Zm9ybS10ZXN0cyIsCisgICAg
ICAgICJpZCI6IDM3MjI2MjMzLAorICAgICAgICAibm9kZV9pZCI6ICJNREV5T2s5eVoyRnVhWHBo
ZEdsdmJqTTNNakkyTWpNeiIsCisgICAgICAgICJhdmF0YXJfdXJsIjogImh0dHBzOi8vYXZhdGFy
czAuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMzcyMjYyMzM/dj00IiwKKyAgICAgICAgImdyYXZh
dGFyX2lkIjogIiIsCisgICAgICAgICJ1cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS91c2Vy
cy93ZWItcGxhdGZvcm0tdGVzdHMiLAorICAgICAgICAiaHRtbF91cmwiOiAiaHR0cHM6Ly9naXRo
dWIuY29tL3dlYi1wbGF0Zm9ybS10ZXN0cyIsCisgICAgICAgICJmb2xsb3dlcnNfdXJsIjogImh0
dHBzOi8vYXBpLmdpdGh1Yi5jb20vdXNlcnMvd2ViLXBsYXRmb3JtLXRlc3RzL2ZvbGxvd2VycyIs
CisgICAgICAgICJmb2xsb3dpbmdfdXJsIjogImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vdXNlcnMv
d2ViLXBsYXRmb3JtLXRlc3RzL2ZvbGxvd2luZ3svb3RoZXJfdXNlcn0iLAorICAgICAgICAiZ2lz
dHNfdXJsIjogImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vdXNlcnMvd2ViLXBsYXRmb3JtLXRlc3Rz
L2dpc3Rzey9naXN0X2lkfSIsCisgICAgICAgICJzdGFycmVkX3VybCI6ICJodHRwczovL2FwaS5n
aXRodWIuY29tL3VzZXJzL3dlYi1wbGF0Zm9ybS10ZXN0cy9zdGFycmVkey9vd25lcn17L3JlcG99
IiwKKyAgICAgICAgInN1YnNjcmlwdGlvbnNfdXJsIjogImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20v
dXNlcnMvd2ViLXBsYXRmb3JtLXRlc3RzL3N1YnNjcmlwdGlvbnMiLAorICAgICAgICAib3JnYW5p
emF0aW9uc191cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS91c2Vycy93ZWItcGxhdGZvcm0t
dGVzdHMvb3JncyIsCisgICAgICAgICJyZXBvc191cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNv
bS91c2Vycy93ZWItcGxhdGZvcm0tdGVzdHMvcmVwb3MiLAorICAgICAgICAiZXZlbnRzX3VybCI6
ICJodHRwczovL2FwaS5naXRodWIuY29tL3VzZXJzL3dlYi1wbGF0Zm9ybS10ZXN0cy9ldmVudHN7
L3ByaXZhY3l9IiwKKyAgICAgICAgInJlY2VpdmVkX2V2ZW50c191cmwiOiAiaHR0cHM6Ly9hcGku
Z2l0aHViLmNvbS91c2Vycy93ZWItcGxhdGZvcm0tdGVzdHMvcmVjZWl2ZWRfZXZlbnRzIiwKKyAg
ICAgICAgInR5cGUiOiAiT3JnYW5pemF0aW9uIiwKKyAgICAgICAgInNpdGVfYWRtaW4iOiBmYWxz
ZQorICAgICAgfSwKKyAgICAgICJyZXBvIjogeworICAgICAgICAiaWQiOiAzNjE4MTMzLAorICAg
ICAgICAibm9kZV9pZCI6ICJNREV3T2xKbGNHOXphWFJ2Y25rek5qRTRNVE16IiwKKyAgICAgICAg
Im5hbWUiOiAid3B0IiwKKyAgICAgICAgImZ1bGxfbmFtZSI6ICJ3ZWItcGxhdGZvcm0tdGVzdHMv
d3B0IiwKKyAgICAgICAgInByaXZhdGUiOiBmYWxzZSwKKyAgICAgICAgIm93bmVyIjogeworICAg
ICAgICAgICJsb2dpbiI6ICJ3ZWItcGxhdGZvcm0tdGVzdHMiLAorICAgICAgICAgICJpZCI6IDM3
MjI2MjMzLAorICAgICAgICAgICJub2RlX2lkIjogIk1ERXlPazl5WjJGdWFYcGhkR2x2YmpNM01q
STJNak16IiwKKyAgICAgICAgICAiYXZhdGFyX3VybCI6ICJodHRwczovL2F2YXRhcnMwLmdpdGh1
YnVzZXJjb250ZW50LmNvbS91LzM3MjI2MjMzP3Y9NCIsCisgICAgICAgICAgImdyYXZhdGFyX2lk
IjogIiIsCisgICAgICAgICAgInVybCI6ICJodHRwczovL2FwaS5naXRodWIuY29tL3VzZXJzL3dl
Yi1wbGF0Zm9ybS10ZXN0cyIsCisgICAgICAgICAgImh0bWxfdXJsIjogImh0dHBzOi8vZ2l0aHVi
LmNvbS93ZWItcGxhdGZvcm0tdGVzdHMiLAorICAgICAgICAgICJmb2xsb3dlcnNfdXJsIjogImh0
dHBzOi8vYXBpLmdpdGh1Yi5jb20vdXNlcnMvd2ViLXBsYXRmb3JtLXRlc3RzL2ZvbGxvd2VycyIs
CisgICAgICAgICAgImZvbGxvd2luZ191cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS91c2Vy
cy93ZWItcGxhdGZvcm0tdGVzdHMvZm9sbG93aW5ney9vdGhlcl91c2VyfSIsCisgICAgICAgICAg
Imdpc3RzX3VybCI6ICJodHRwczovL2FwaS5naXRodWIuY29tL3VzZXJzL3dlYi1wbGF0Zm9ybS10
ZXN0cy9naXN0c3svZ2lzdF9pZH0iLAorICAgICAgICAgICJzdGFycmVkX3VybCI6ICJodHRwczov
L2FwaS5naXRodWIuY29tL3VzZXJzL3dlYi1wbGF0Zm9ybS10ZXN0cy9zdGFycmVkey9vd25lcn17
L3JlcG99IiwKKyAgICAgICAgICAic3Vic2NyaXB0aW9uc191cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0
aHViLmNvbS91c2Vycy93ZWItcGxhdGZvcm0tdGVzdHMvc3Vic2NyaXB0aW9ucyIsCisgICAgICAg
ICAgIm9yZ2FuaXphdGlvbnNfdXJsIjogImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vdXNlcnMvd2Vi
LXBsYXRmb3JtLXRlc3RzL29yZ3MiLAorICAgICAgICAgICJyZXBvc191cmwiOiAiaHR0cHM6Ly9h
cGkuZ2l0aHViLmNvbS91c2Vycy93ZWItcGxhdGZvcm0tdGVzdHMvcmVwb3MiLAorICAgICAgICAg
ICJldmVudHNfdXJsIjogImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vdXNlcnMvd2ViLXBsYXRmb3Jt
LXRlc3RzL2V2ZW50c3svcHJpdmFjeX0iLAorICAgICAgICAgICJyZWNlaXZlZF9ldmVudHNfdXJs
IjogImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vdXNlcnMvd2ViLXBsYXRmb3JtLXRlc3RzL3JlY2Vp
dmVkX2V2ZW50cyIsCisgICAgICAgICAgInR5cGUiOiAiT3JnYW5pemF0aW9uIiwKKyAgICAgICAg
ICAic2l0ZV9hZG1pbiI6IGZhbHNlCisgICAgICAgIH0sCisgICAgICAgICJodG1sX3VybCI6ICJo
dHRwczovL2dpdGh1Yi5jb20vd2ViLXBsYXRmb3JtLXRlc3RzL3dwdCIsCisgICAgICAgICJkZXNj
cmlwdGlvbiI6ICJUZXN0IHN1aXRlcyBmb3IgV2ViIHBsYXRmb3JtIHNwZWNzIOKAlCBpbmNsdWRp
bmcgV0hBVFdHLCBXM0MsIGFuZCBvdGhlcnMiLAorICAgICAgICAiZm9yayI6IGZhbHNlLAorICAg
ICAgICAidXJsIjogImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3dwdCIsCisgICAgICAgICJmb3Jrc191cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9y
ZXBvcy93ZWItcGxhdGZvcm0tdGVzdHMvd3B0L2ZvcmtzIiwKKyAgICAgICAgImtleXNfdXJsIjog
Imh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dwdC9rZXlz
ey9rZXlfaWR9IiwKKyAgICAgICAgImNvbGxhYm9yYXRvcnNfdXJsIjogImh0dHBzOi8vYXBpLmdp
dGh1Yi5jb20vcmVwb3Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dwdC9jb2xsYWJvcmF0b3Jzey9jb2xs
YWJvcmF0b3J9IiwKKyAgICAgICAgInRlYW1zX3VybCI6ICJodHRwczovL2FwaS5naXRodWIuY29t
L3JlcG9zL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQvdGVhbXMiLAorICAgICAgICAiaG9va3NfdXJs
IjogImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dwdC9o
b29rcyIsCisgICAgICAgICJpc3N1ZV9ldmVudHNfdXJsIjogImh0dHBzOi8vYXBpLmdpdGh1Yi5j
b20vcmVwb3Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dwdC9pc3N1ZXMvZXZlbnRzey9udW1iZXJ9IiwK
KyAgICAgICAgImV2ZW50c191cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy93ZWIt
cGxhdGZvcm0tdGVzdHMvd3B0L2V2ZW50cyIsCisgICAgICAgICJhc3NpZ25lZXNfdXJsIjogImh0
dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dwdC9hc3NpZ25l
ZXN7L3VzZXJ9IiwKKyAgICAgICAgImJyYW5jaGVzX3VybCI6ICJodHRwczovL2FwaS5naXRodWIu
Y29tL3JlcG9zL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQvYnJhbmNoZXN7L2JyYW5jaH0iLAorICAg
ICAgICAidGFnc191cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy93ZWItcGxhdGZv
cm0tdGVzdHMvd3B0L3RhZ3MiLAorICAgICAgICAiYmxvYnNfdXJsIjogImh0dHBzOi8vYXBpLmdp
dGh1Yi5jb20vcmVwb3Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dwdC9naXQvYmxvYnN7L3NoYX0iLAor
ICAgICAgICAiZ2l0X3RhZ3NfdXJsIjogImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3dwdC9naXQvdGFnc3svc2hhfSIsCisgICAgICAgICJnaXRfcmVmc191
cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy93ZWItcGxhdGZvcm0tdGVzdHMvd3B0
L2dpdC9yZWZzey9zaGF9IiwKKyAgICAgICAgInRyZWVzX3VybCI6ICJodHRwczovL2FwaS5naXRo
dWIuY29tL3JlcG9zL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQvZ2l0L3RyZWVzey9zaGF9IiwKKyAg
ICAgICAgInN0YXR1c2VzX3VybCI6ICJodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zL3dlYi1w
bGF0Zm9ybS10ZXN0cy93cHQvc3RhdHVzZXMve3NoYX0iLAorICAgICAgICAibGFuZ3VhZ2VzX3Vy
bCI6ICJodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQv
bGFuZ3VhZ2VzIiwKKyAgICAgICAgInN0YXJnYXplcnNfdXJsIjogImh0dHBzOi8vYXBpLmdpdGh1
Yi5jb20vcmVwb3Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dwdC9zdGFyZ2F6ZXJzIiwKKyAgICAgICAg
ImNvbnRyaWJ1dG9yc191cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy93ZWItcGxh
dGZvcm0tdGVzdHMvd3B0L2NvbnRyaWJ1dG9ycyIsCisgICAgICAgICJzdWJzY3JpYmVyc191cmwi
OiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy93ZWItcGxhdGZvcm0tdGVzdHMvd3B0L3N1
YnNjcmliZXJzIiwKKyAgICAgICAgInN1YnNjcmlwdGlvbl91cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0
aHViLmNvbS9yZXBvcy93ZWItcGxhdGZvcm0tdGVzdHMvd3B0L3N1YnNjcmlwdGlvbiIsCisgICAg
ICAgICJjb21taXRzX3VybCI6ICJodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zL3dlYi1wbGF0
Zm9ybS10ZXN0cy93cHQvY29tbWl0c3svc2hhfSIsCisgICAgICAgICJnaXRfY29tbWl0c191cmwi
OiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy93ZWItcGxhdGZvcm0tdGVzdHMvd3B0L2dp
dC9jb21taXRzey9zaGF9IiwKKyAgICAgICAgImNvbW1lbnRzX3VybCI6ICJodHRwczovL2FwaS5n
aXRodWIuY29tL3JlcG9zL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQvY29tbWVudHN7L251bWJlcn0i
LAorICAgICAgICAiaXNzdWVfY29tbWVudF91cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9y
ZXBvcy93ZWItcGxhdGZvcm0tdGVzdHMvd3B0L2lzc3Vlcy9jb21tZW50c3svbnVtYmVyfSIsCisg
ICAgICAgICJjb250ZW50c191cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy93ZWIt
cGxhdGZvcm0tdGVzdHMvd3B0L2NvbnRlbnRzL3srcGF0aH0iLAorICAgICAgICAiY29tcGFyZV91
cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy93ZWItcGxhdGZvcm0tdGVzdHMvd3B0
L2NvbXBhcmUve2Jhc2V9Li4ue2hlYWR9IiwKKyAgICAgICAgIm1lcmdlc191cmwiOiAiaHR0cHM6
Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy93ZWItcGxhdGZvcm0tdGVzdHMvd3B0L21lcmdlcyIsCisg
ICAgICAgICJhcmNoaXZlX3VybCI6ICJodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zL3dlYi1w
bGF0Zm9ybS10ZXN0cy93cHQve2FyY2hpdmVfZm9ybWF0fXsvcmVmfSIsCisgICAgICAgICJkb3du
bG9hZHNfdXJsIjogImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3dwdC9kb3dubG9hZHMiLAorICAgICAgICAiaXNzdWVzX3VybCI6ICJodHRwczovL2FwaS5n
aXRodWIuY29tL3JlcG9zL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQvaXNzdWVzey9udW1iZXJ9IiwK
KyAgICAgICAgInB1bGxzX3VybCI6ICJodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zL3dlYi1w
bGF0Zm9ybS10ZXN0cy93cHQvcHVsbHN7L251bWJlcn0iLAorICAgICAgICAibWlsZXN0b25lc191
cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy93ZWItcGxhdGZvcm0tdGVzdHMvd3B0
L21pbGVzdG9uZXN7L251bWJlcn0iLAorICAgICAgICAibm90aWZpY2F0aW9uc191cmwiOiAiaHR0
cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy93ZWItcGxhdGZvcm0tdGVzdHMvd3B0L25vdGlmaWNh
dGlvbnN7P3NpbmNlLGFsbCxwYXJ0aWNpcGF0aW5nfSIsCisgICAgICAgICJsYWJlbHNfdXJsIjog
Imh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dwdC9sYWJl
bHN7L25hbWV9IiwKKyAgICAgICAgInJlbGVhc2VzX3VybCI6ICJodHRwczovL2FwaS5naXRodWIu
Y29tL3JlcG9zL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQvcmVsZWFzZXN7L2lkfSIsCisgICAgICAg
ICJkZXBsb3ltZW50c191cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy93ZWItcGxh
dGZvcm0tdGVzdHMvd3B0L2RlcGxveW1lbnRzIiwKKyAgICAgICAgImNyZWF0ZWRfYXQiOiAiMjAx
Mi0wMy0wNFQxMjo1ODoxMVoiLAorICAgICAgICAidXBkYXRlZF9hdCI6ICIyMDE5LTAyLTI4VDEy
OjQxOjMzWiIsCisgICAgICAgICJwdXNoZWRfYXQiOiAiMjAxOS0wMi0yOFQxMzo0MzoxNloiLAor
ICAgICAgICAiZ2l0X3VybCI6ICJnaXQ6Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9ybS10ZXN0cy93
cHQuZ2l0IiwKKyAgICAgICAgInNzaF91cmwiOiAiZ2l0QGdpdGh1Yi5jb206d2ViLXBsYXRmb3Jt
LXRlc3RzL3dwdC5naXQiLAorICAgICAgICAiY2xvbmVfdXJsIjogImh0dHBzOi8vZ2l0aHViLmNv
bS93ZWItcGxhdGZvcm0tdGVzdHMvd3B0LmdpdCIsCisgICAgICAgICJzdm5fdXJsIjogImh0dHBz
Oi8vZ2l0aHViLmNvbS93ZWItcGxhdGZvcm0tdGVzdHMvd3B0IiwKKyAgICAgICAgImhvbWVwYWdl
IjogImh0dHA6Ly9pcmMudzMub3JnLz9jaGFubmVscz10ZXN0aW5nIiwKKyAgICAgICAgInNpemUi
OiAzMjQ2NDEsCisgICAgICAgICJzdGFyZ2F6ZXJzX2NvdW50IjogMjA1OCwKKyAgICAgICAgIndh
dGNoZXJzX2NvdW50IjogMjA1OCwKKyAgICAgICAgImxhbmd1YWdlIjogIkhUTUwiLAorICAgICAg
ICAiaGFzX2lzc3VlcyI6IHRydWUsCisgICAgICAgICJoYXNfcHJvamVjdHMiOiB0cnVlLAorICAg
ICAgICAiaGFzX2Rvd25sb2FkcyI6IHRydWUsCisgICAgICAgICJoYXNfd2lraSI6IHRydWUsCisg
ICAgICAgICJoYXNfcGFnZXMiOiB0cnVlLAorICAgICAgICAiZm9ya3NfY291bnQiOiAxNjA0LAor
ICAgICAgICAibWlycm9yX3VybCI6IG51bGwsCisgICAgICAgICJhcmNoaXZlZCI6IGZhbHNlLAor
ICAgICAgICAib3Blbl9pc3N1ZXNfY291bnQiOiAxMzU0LAorICAgICAgICAibGljZW5zZSI6IHsK
KyAgICAgICAgICAia2V5IjogIm90aGVyIiwKKyAgICAgICAgICAibmFtZSI6ICJPdGhlciIsCisg
ICAgICAgICAgInNwZHhfaWQiOiAiTk9BU1NFUlRJT04iLAorICAgICAgICAgICJ1cmwiOiBudWxs
LAorICAgICAgICAgICJub2RlX2lkIjogIk1EYzZUR2xqWlc1elpUQT0iCisgICAgICAgIH0sCisg
ICAgICAgICJmb3JrcyI6IDE2MDQsCisgICAgICAgICJvcGVuX2lzc3VlcyI6IDEzNTQsCisgICAg
ICAgICJ3YXRjaGVycyI6IDIwNTgsCisgICAgICAgICJkZWZhdWx0X2JyYW5jaCI6ICJtYXN0ZXIi
CisgICAgICB9CisgICAgfSwKKyAgICAiYmFzZSI6IHsKKyAgICAgICJsYWJlbCI6ICJ3ZWItcGxh
dGZvcm0tdGVzdHM6bWFzdGVyIiwKKyAgICAgICJyZWYiOiAibWFzdGVyIiwKKyAgICAgICJzaGEi
OiAiYmI2NTdjNGJkMGNjNDcyOWRhYTI3YzFmM2ExZTFmODZlZjVhMWRjMCIsCisgICAgICAidXNl
ciI6IHsKKyAgICAgICAgImxvZ2luIjogIndlYi1wbGF0Zm9ybS10ZXN0cyIsCisgICAgICAgICJp
ZCI6IDM3MjI2MjMzLAorICAgICAgICAibm9kZV9pZCI6ICJNREV5T2s5eVoyRnVhWHBoZEdsdmJq
TTNNakkyTWpNeiIsCisgICAgICAgICJhdmF0YXJfdXJsIjogImh0dHBzOi8vYXZhdGFyczAuZ2l0
aHVidXNlcmNvbnRlbnQuY29tL3UvMzcyMjYyMzM/dj00IiwKKyAgICAgICAgImdyYXZhdGFyX2lk
IjogIiIsCisgICAgICAgICJ1cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS91c2Vycy93ZWIt
cGxhdGZvcm0tdGVzdHMiLAorICAgICAgICAiaHRtbF91cmwiOiAiaHR0cHM6Ly9naXRodWIuY29t
L3dlYi1wbGF0Zm9ybS10ZXN0cyIsCisgICAgICAgICJmb2xsb3dlcnNfdXJsIjogImh0dHBzOi8v
YXBpLmdpdGh1Yi5jb20vdXNlcnMvd2ViLXBsYXRmb3JtLXRlc3RzL2ZvbGxvd2VycyIsCisgICAg
ICAgICJmb2xsb3dpbmdfdXJsIjogImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vdXNlcnMvd2ViLXBs
YXRmb3JtLXRlc3RzL2ZvbGxvd2luZ3svb3RoZXJfdXNlcn0iLAorICAgICAgICAiZ2lzdHNfdXJs
IjogImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vdXNlcnMvd2ViLXBsYXRmb3JtLXRlc3RzL2dpc3Rz
ey9naXN0X2lkfSIsCisgICAgICAgICJzdGFycmVkX3VybCI6ICJodHRwczovL2FwaS5naXRodWIu
Y29tL3VzZXJzL3dlYi1wbGF0Zm9ybS10ZXN0cy9zdGFycmVkey9vd25lcn17L3JlcG99IiwKKyAg
ICAgICAgInN1YnNjcmlwdGlvbnNfdXJsIjogImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vdXNlcnMv
d2ViLXBsYXRmb3JtLXRlc3RzL3N1YnNjcmlwdGlvbnMiLAorICAgICAgICAib3JnYW5pemF0aW9u
c191cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS91c2Vycy93ZWItcGxhdGZvcm0tdGVzdHMv
b3JncyIsCisgICAgICAgICJyZXBvc191cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS91c2Vy
cy93ZWItcGxhdGZvcm0tdGVzdHMvcmVwb3MiLAorICAgICAgICAiZXZlbnRzX3VybCI6ICJodHRw
czovL2FwaS5naXRodWIuY29tL3VzZXJzL3dlYi1wbGF0Zm9ybS10ZXN0cy9ldmVudHN7L3ByaXZh
Y3l9IiwKKyAgICAgICAgInJlY2VpdmVkX2V2ZW50c191cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHVi
LmNvbS91c2Vycy93ZWItcGxhdGZvcm0tdGVzdHMvcmVjZWl2ZWRfZXZlbnRzIiwKKyAgICAgICAg
InR5cGUiOiAiT3JnYW5pemF0aW9uIiwKKyAgICAgICAgInNpdGVfYWRtaW4iOiBmYWxzZQorICAg
ICAgfSwKKyAgICAgICJyZXBvIjogeworICAgICAgICAiaWQiOiAzNjE4MTMzLAorICAgICAgICAi
bm9kZV9pZCI6ICJNREV3T2xKbGNHOXphWFJ2Y25rek5qRTRNVE16IiwKKyAgICAgICAgIm5hbWUi
OiAid3B0IiwKKyAgICAgICAgImZ1bGxfbmFtZSI6ICJ3ZWItcGxhdGZvcm0tdGVzdHMvd3B0IiwK
KyAgICAgICAgInByaXZhdGUiOiBmYWxzZSwKKyAgICAgICAgIm93bmVyIjogeworICAgICAgICAg
ICJsb2dpbiI6ICJ3ZWItcGxhdGZvcm0tdGVzdHMiLAorICAgICAgICAgICJpZCI6IDM3MjI2MjMz
LAorICAgICAgICAgICJub2RlX2lkIjogIk1ERXlPazl5WjJGdWFYcGhkR2x2YmpNM01qSTJNak16
IiwKKyAgICAgICAgICAiYXZhdGFyX3VybCI6ICJodHRwczovL2F2YXRhcnMwLmdpdGh1YnVzZXJj
b250ZW50LmNvbS91LzM3MjI2MjMzP3Y9NCIsCisgICAgICAgICAgImdyYXZhdGFyX2lkIjogIiIs
CisgICAgICAgICAgInVybCI6ICJodHRwczovL2FwaS5naXRodWIuY29tL3VzZXJzL3dlYi1wbGF0
Zm9ybS10ZXN0cyIsCisgICAgICAgICAgImh0bWxfdXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS93
ZWItcGxhdGZvcm0tdGVzdHMiLAorICAgICAgICAgICJmb2xsb3dlcnNfdXJsIjogImh0dHBzOi8v
YXBpLmdpdGh1Yi5jb20vdXNlcnMvd2ViLXBsYXRmb3JtLXRlc3RzL2ZvbGxvd2VycyIsCisgICAg
ICAgICAgImZvbGxvd2luZ191cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS91c2Vycy93ZWIt
cGxhdGZvcm0tdGVzdHMvZm9sbG93aW5ney9vdGhlcl91c2VyfSIsCisgICAgICAgICAgImdpc3Rz
X3VybCI6ICJodHRwczovL2FwaS5naXRodWIuY29tL3VzZXJzL3dlYi1wbGF0Zm9ybS10ZXN0cy9n
aXN0c3svZ2lzdF9pZH0iLAorICAgICAgICAgICJzdGFycmVkX3VybCI6ICJodHRwczovL2FwaS5n
aXRodWIuY29tL3VzZXJzL3dlYi1wbGF0Zm9ybS10ZXN0cy9zdGFycmVkey9vd25lcn17L3JlcG99
IiwKKyAgICAgICAgICAic3Vic2NyaXB0aW9uc191cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNv
bS91c2Vycy93ZWItcGxhdGZvcm0tdGVzdHMvc3Vic2NyaXB0aW9ucyIsCisgICAgICAgICAgIm9y
Z2FuaXphdGlvbnNfdXJsIjogImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vdXNlcnMvd2ViLXBsYXRm
b3JtLXRlc3RzL29yZ3MiLAorICAgICAgICAgICJyZXBvc191cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0
aHViLmNvbS91c2Vycy93ZWItcGxhdGZvcm0tdGVzdHMvcmVwb3MiLAorICAgICAgICAgICJldmVu
dHNfdXJsIjogImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vdXNlcnMvd2ViLXBsYXRmb3JtLXRlc3Rz
L2V2ZW50c3svcHJpdmFjeX0iLAorICAgICAgICAgICJyZWNlaXZlZF9ldmVudHNfdXJsIjogImh0
dHBzOi8vYXBpLmdpdGh1Yi5jb20vdXNlcnMvd2ViLXBsYXRmb3JtLXRlc3RzL3JlY2VpdmVkX2V2
ZW50cyIsCisgICAgICAgICAgInR5cGUiOiAiT3JnYW5pemF0aW9uIiwKKyAgICAgICAgICAic2l0
ZV9hZG1pbiI6IGZhbHNlCisgICAgICAgIH0sCisgICAgICAgICJodG1sX3VybCI6ICJodHRwczov
L2dpdGh1Yi5jb20vd2ViLXBsYXRmb3JtLXRlc3RzL3dwdCIsCisgICAgICAgICJkZXNjcmlwdGlv
biI6ICJUZXN0IHN1aXRlcyBmb3IgV2ViIHBsYXRmb3JtIHNwZWNzIOKAlCBpbmNsdWRpbmcgV0hB
VFdHLCBXM0MsIGFuZCBvdGhlcnMiLAorICAgICAgICAiZm9yayI6IGZhbHNlLAorICAgICAgICAi
dXJsIjogImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dw
dCIsCisgICAgICAgICJmb3Jrc191cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy93
ZWItcGxhdGZvcm0tdGVzdHMvd3B0L2ZvcmtzIiwKKyAgICAgICAgImtleXNfdXJsIjogImh0dHBz
Oi8vYXBpLmdpdGh1Yi5jb20vcmVwb3Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dwdC9rZXlzey9rZXlf
aWR9IiwKKyAgICAgICAgImNvbGxhYm9yYXRvcnNfdXJsIjogImh0dHBzOi8vYXBpLmdpdGh1Yi5j
b20vcmVwb3Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dwdC9jb2xsYWJvcmF0b3Jzey9jb2xsYWJvcmF0
b3J9IiwKKyAgICAgICAgInRlYW1zX3VybCI6ICJodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9z
L3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQvdGVhbXMiLAorICAgICAgICAiaG9va3NfdXJsIjogImh0
dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dwdC9ob29rcyIs
CisgICAgICAgICJpc3N1ZV9ldmVudHNfdXJsIjogImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVw
b3Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dwdC9pc3N1ZXMvZXZlbnRzey9udW1iZXJ9IiwKKyAgICAg
ICAgImV2ZW50c191cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy93ZWItcGxhdGZv
cm0tdGVzdHMvd3B0L2V2ZW50cyIsCisgICAgICAgICJhc3NpZ25lZXNfdXJsIjogImh0dHBzOi8v
YXBpLmdpdGh1Yi5jb20vcmVwb3Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dwdC9hc3NpZ25lZXN7L3Vz
ZXJ9IiwKKyAgICAgICAgImJyYW5jaGVzX3VybCI6ICJodHRwczovL2FwaS5naXRodWIuY29tL3Jl
cG9zL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQvYnJhbmNoZXN7L2JyYW5jaH0iLAorICAgICAgICAi
dGFnc191cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy93ZWItcGxhdGZvcm0tdGVz
dHMvd3B0L3RhZ3MiLAorICAgICAgICAiYmxvYnNfdXJsIjogImh0dHBzOi8vYXBpLmdpdGh1Yi5j
b20vcmVwb3Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dwdC9naXQvYmxvYnN7L3NoYX0iLAorICAgICAg
ICAiZ2l0X3RhZ3NfdXJsIjogImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3dwdC9naXQvdGFnc3svc2hhfSIsCisgICAgICAgICJnaXRfcmVmc191cmwiOiAi
aHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy93ZWItcGxhdGZvcm0tdGVzdHMvd3B0L2dpdC9y
ZWZzey9zaGF9IiwKKyAgICAgICAgInRyZWVzX3VybCI6ICJodHRwczovL2FwaS5naXRodWIuY29t
L3JlcG9zL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQvZ2l0L3RyZWVzey9zaGF9IiwKKyAgICAgICAg
InN0YXR1c2VzX3VybCI6ICJodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zL3dlYi1wbGF0Zm9y
bS10ZXN0cy93cHQvc3RhdHVzZXMve3NoYX0iLAorICAgICAgICAibGFuZ3VhZ2VzX3VybCI6ICJo
dHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQvbGFuZ3Vh
Z2VzIiwKKyAgICAgICAgInN0YXJnYXplcnNfdXJsIjogImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20v
cmVwb3Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dwdC9zdGFyZ2F6ZXJzIiwKKyAgICAgICAgImNvbnRy
aWJ1dG9yc191cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy93ZWItcGxhdGZvcm0t
dGVzdHMvd3B0L2NvbnRyaWJ1dG9ycyIsCisgICAgICAgICJzdWJzY3JpYmVyc191cmwiOiAiaHR0
cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy93ZWItcGxhdGZvcm0tdGVzdHMvd3B0L3N1YnNjcmli
ZXJzIiwKKyAgICAgICAgInN1YnNjcmlwdGlvbl91cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNv
bS9yZXBvcy93ZWItcGxhdGZvcm0tdGVzdHMvd3B0L3N1YnNjcmlwdGlvbiIsCisgICAgICAgICJj
b21taXRzX3VybCI6ICJodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zL3dlYi1wbGF0Zm9ybS10
ZXN0cy93cHQvY29tbWl0c3svc2hhfSIsCisgICAgICAgICJnaXRfY29tbWl0c191cmwiOiAiaHR0
cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy93ZWItcGxhdGZvcm0tdGVzdHMvd3B0L2dpdC9jb21t
aXRzey9zaGF9IiwKKyAgICAgICAgImNvbW1lbnRzX3VybCI6ICJodHRwczovL2FwaS5naXRodWIu
Y29tL3JlcG9zL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQvY29tbWVudHN7L251bWJlcn0iLAorICAg
ICAgICAiaXNzdWVfY29tbWVudF91cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy93
ZWItcGxhdGZvcm0tdGVzdHMvd3B0L2lzc3Vlcy9jb21tZW50c3svbnVtYmVyfSIsCisgICAgICAg
ICJjb250ZW50c191cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy93ZWItcGxhdGZv
cm0tdGVzdHMvd3B0L2NvbnRlbnRzL3srcGF0aH0iLAorICAgICAgICAiY29tcGFyZV91cmwiOiAi
aHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy93ZWItcGxhdGZvcm0tdGVzdHMvd3B0L2NvbXBh
cmUve2Jhc2V9Li4ue2hlYWR9IiwKKyAgICAgICAgIm1lcmdlc191cmwiOiAiaHR0cHM6Ly9hcGku
Z2l0aHViLmNvbS9yZXBvcy93ZWItcGxhdGZvcm0tdGVzdHMvd3B0L21lcmdlcyIsCisgICAgICAg
ICJhcmNoaXZlX3VybCI6ICJodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zL3dlYi1wbGF0Zm9y
bS10ZXN0cy93cHQve2FyY2hpdmVfZm9ybWF0fXsvcmVmfSIsCisgICAgICAgICJkb3dubG9hZHNf
dXJsIjogImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dw
dC9kb3dubG9hZHMiLAorICAgICAgICAiaXNzdWVzX3VybCI6ICJodHRwczovL2FwaS5naXRodWIu
Y29tL3JlcG9zL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQvaXNzdWVzey9udW1iZXJ9IiwKKyAgICAg
ICAgInB1bGxzX3VybCI6ICJodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zL3dlYi1wbGF0Zm9y
bS10ZXN0cy93cHQvcHVsbHN7L251bWJlcn0iLAorICAgICAgICAibWlsZXN0b25lc191cmwiOiAi
aHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy93ZWItcGxhdGZvcm0tdGVzdHMvd3B0L21pbGVz
dG9uZXN7L251bWJlcn0iLAorICAgICAgICAibm90aWZpY2F0aW9uc191cmwiOiAiaHR0cHM6Ly9h
cGkuZ2l0aHViLmNvbS9yZXBvcy93ZWItcGxhdGZvcm0tdGVzdHMvd3B0L25vdGlmaWNhdGlvbnN7
P3NpbmNlLGFsbCxwYXJ0aWNpcGF0aW5nfSIsCisgICAgICAgICJsYWJlbHNfdXJsIjogImh0dHBz
Oi8vYXBpLmdpdGh1Yi5jb20vcmVwb3Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dwdC9sYWJlbHN7L25h
bWV9IiwKKyAgICAgICAgInJlbGVhc2VzX3VybCI6ICJodHRwczovL2FwaS5naXRodWIuY29tL3Jl
cG9zL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQvcmVsZWFzZXN7L2lkfSIsCisgICAgICAgICJkZXBs
b3ltZW50c191cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy93ZWItcGxhdGZvcm0t
dGVzdHMvd3B0L2RlcGxveW1lbnRzIiwKKyAgICAgICAgImNyZWF0ZWRfYXQiOiAiMjAxMi0wMy0w
NFQxMjo1ODoxMVoiLAorICAgICAgICAidXBkYXRlZF9hdCI6ICIyMDE5LTAyLTI4VDEyOjQxOjMz
WiIsCisgICAgICAgICJwdXNoZWRfYXQiOiAiMjAxOS0wMi0yOFQxMzo0MzoxNloiLAorICAgICAg
ICAiZ2l0X3VybCI6ICJnaXQ6Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQuZ2l0
IiwKKyAgICAgICAgInNzaF91cmwiOiAiZ2l0QGdpdGh1Yi5jb206d2ViLXBsYXRmb3JtLXRlc3Rz
L3dwdC5naXQiLAorICAgICAgICAiY2xvbmVfdXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS93ZWIt
cGxhdGZvcm0tdGVzdHMvd3B0LmdpdCIsCisgICAgICAgICJzdm5fdXJsIjogImh0dHBzOi8vZ2l0
aHViLmNvbS93ZWItcGxhdGZvcm0tdGVzdHMvd3B0IiwKKyAgICAgICAgImhvbWVwYWdlIjogImh0
dHA6Ly9pcmMudzMub3JnLz9jaGFubmVscz10ZXN0aW5nIiwKKyAgICAgICAgInNpemUiOiAzMjQ2
NDEsCisgICAgICAgICJzdGFyZ2F6ZXJzX2NvdW50IjogMjA1OCwKKyAgICAgICAgIndhdGNoZXJz
X2NvdW50IjogMjA1OCwKKyAgICAgICAgImxhbmd1YWdlIjogIkhUTUwiLAorICAgICAgICAiaGFz
X2lzc3VlcyI6IHRydWUsCisgICAgICAgICJoYXNfcHJvamVjdHMiOiB0cnVlLAorICAgICAgICAi
aGFzX2Rvd25sb2FkcyI6IHRydWUsCisgICAgICAgICJoYXNfd2lraSI6IHRydWUsCisgICAgICAg
ICJoYXNfcGFnZXMiOiB0cnVlLAorICAgICAgICAiZm9ya3NfY291bnQiOiAxNjA0LAorICAgICAg
ICAibWlycm9yX3VybCI6IG51bGwsCisgICAgICAgICJhcmNoaXZlZCI6IGZhbHNlLAorICAgICAg
ICAib3Blbl9pc3N1ZXNfY291bnQiOiAxMzU0LAorICAgICAgICAibGljZW5zZSI6IHsKKyAgICAg
ICAgICAia2V5IjogIm90aGVyIiwKKyAgICAgICAgICAibmFtZSI6ICJPdGhlciIsCisgICAgICAg
ICAgInNwZHhfaWQiOiAiTk9BU1NFUlRJT04iLAorICAgICAgICAgICJ1cmwiOiBudWxsLAorICAg
ICAgICAgICJub2RlX2lkIjogIk1EYzZUR2xqWlc1elpUQT0iCisgICAgICAgIH0sCisgICAgICAg
ICJmb3JrcyI6IDE2MDQsCisgICAgICAgICJvcGVuX2lzc3VlcyI6IDEzNTQsCisgICAgICAgICJ3
YXRjaGVycyI6IDIwNTgsCisgICAgICAgICJkZWZhdWx0X2JyYW5jaCI6ICJtYXN0ZXIiCisgICAg
ICB9CisgICAgfSwKKyAgICAiX2xpbmtzIjogeworICAgICAgInNlbGYiOiB7CisgICAgICAgICJo
cmVmIjogImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dw
dC9wdWxscy8xNTU3NCIKKyAgICAgIH0sCisgICAgICAiaHRtbCI6IHsKKyAgICAgICAgImhyZWYi
OiAiaHR0cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQvcHVsbC8xNTU3NCIK
KyAgICAgIH0sCisgICAgICAiaXNzdWUiOiB7CisgICAgICAgICJocmVmIjogImh0dHBzOi8vYXBp
LmdpdGh1Yi5jb20vcmVwb3Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dwdC9pc3N1ZXMvMTU1NzQiCisg
ICAgICB9LAorICAgICAgImNvbW1lbnRzIjogeworICAgICAgICAiaHJlZiI6ICJodHRwczovL2Fw
aS5naXRodWIuY29tL3JlcG9zL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQvaXNzdWVzLzE1NTc0L2Nv
bW1lbnRzIgorICAgICAgfSwKKyAgICAgICJyZXZpZXdfY29tbWVudHMiOiB7CisgICAgICAgICJo
cmVmIjogImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dw
dC9wdWxscy8xNTU3NC9jb21tZW50cyIKKyAgICAgIH0sCisgICAgICAicmV2aWV3X2NvbW1lbnQi
OiB7CisgICAgICAgICJocmVmIjogImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3dwdC9wdWxscy9jb21tZW50c3svbnVtYmVyfSIKKyAgICAgIH0sCisgICAg
ICAiY29tbWl0cyI6IHsKKyAgICAgICAgImhyZWYiOiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9y
ZXBvcy93ZWItcGxhdGZvcm0tdGVzdHMvd3B0L3B1bGxzLzE1NTc0L2NvbW1pdHMiCisgICAgICB9
LAorICAgICAgInN0YXR1c2VzIjogeworICAgICAgICAiaHJlZiI6ICJodHRwczovL2FwaS5naXRo
dWIuY29tL3JlcG9zL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQvc3RhdHVzZXMvZmVmNjljNWQ0NzE5
NjQzMzIzNGQ2YzM3YTBmZjk4NzQ5MWJkMmRmYyIKKyAgICAgIH0KKyAgICB9LAorICAgICJhdXRo
b3JfYXNzb2NpYXRpb24iOiAiQ09OVFJJQlVUT1IiLAorICAgICJkcmFmdCI6IGZhbHNlLAorICAg
ICJtZXJnZWQiOiBmYWxzZSwKKyAgICAibWVyZ2VhYmxlIjogbnVsbCwKKyAgICAicmViYXNlYWJs
ZSI6IG51bGwsCisgICAgIm1lcmdlYWJsZV9zdGF0ZSI6ICJ1bmtub3duIiwKKyAgICAibWVyZ2Vk
X2J5IjogbnVsbCwKKyAgICAiY29tbWVudHMiOiAyLAorICAgICJyZXZpZXdfY29tbWVudHMiOiAz
LAorICAgICJtYWludGFpbmVyX2Nhbl9tb2RpZnkiOiBmYWxzZSwKKyAgICAiY29tbWl0cyI6IDIs
CisgICAgImFkZGl0aW9ucyI6IDU1LAorICAgICJkZWxldGlvbnMiOiA3LAorICAgICJjaGFuZ2Vk
X2ZpbGVzIjogMworICB9LAorICAiYmVmb3JlIjogIjQ2ZDJmMzE2YWUxMGI4MzcyNmRmYjQzMTUw
YjMyMTUzM2JjOTUzOWYiLAorICAiYWZ0ZXIiOiAiZmVmNjljNWQ0NzE5NjQzMzIzNGQ2YzM3YTBm
Zjk4NzQ5MWJkMmRmYyIsCisgICJyZXBvc2l0b3J5IjogeworICAgICJpZCI6IDM2MTgxMzMsCisg
ICAgIm5vZGVfaWQiOiAiTURFd09sSmxjRzl6YVhSdmNua3pOakU0TVRNeiIsCisgICAgIm5hbWUi
OiAid3B0IiwKKyAgICAiZnVsbF9uYW1lIjogIndlYi1wbGF0Zm9ybS10ZXN0cy93cHQiLAorICAg
ICJwcml2YXRlIjogZmFsc2UsCisgICAgIm93bmVyIjogeworICAgICAgImxvZ2luIjogIndlYi1w
bGF0Zm9ybS10ZXN0cyIsCisgICAgICAiaWQiOiAzNzIyNjIzMywKKyAgICAgICJub2RlX2lkIjog
Ik1ERXlPazl5WjJGdWFYcGhkR2x2YmpNM01qSTJNak16IiwKKyAgICAgICJhdmF0YXJfdXJsIjog
Imh0dHBzOi8vYXZhdGFyczAuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMzcyMjYyMzM/dj00IiwK
KyAgICAgICJncmF2YXRhcl9pZCI6ICIiLAorICAgICAgInVybCI6ICJodHRwczovL2FwaS5naXRo
dWIuY29tL3VzZXJzL3dlYi1wbGF0Zm9ybS10ZXN0cyIsCisgICAgICAiaHRtbF91cmwiOiAiaHR0
cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9ybS10ZXN0cyIsCisgICAgICAiZm9sbG93ZXJzX3Vy
bCI6ICJodHRwczovL2FwaS5naXRodWIuY29tL3VzZXJzL3dlYi1wbGF0Zm9ybS10ZXN0cy9mb2xs
b3dlcnMiLAorICAgICAgImZvbGxvd2luZ191cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS91
c2Vycy93ZWItcGxhdGZvcm0tdGVzdHMvZm9sbG93aW5ney9vdGhlcl91c2VyfSIsCisgICAgICAi
Z2lzdHNfdXJsIjogImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vdXNlcnMvd2ViLXBsYXRmb3JtLXRl
c3RzL2dpc3Rzey9naXN0X2lkfSIsCisgICAgICAic3RhcnJlZF91cmwiOiAiaHR0cHM6Ly9hcGku
Z2l0aHViLmNvbS91c2Vycy93ZWItcGxhdGZvcm0tdGVzdHMvc3RhcnJlZHsvb3duZXJ9ey9yZXBv
fSIsCisgICAgICAic3Vic2NyaXB0aW9uc191cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS91
c2Vycy93ZWItcGxhdGZvcm0tdGVzdHMvc3Vic2NyaXB0aW9ucyIsCisgICAgICAib3JnYW5pemF0
aW9uc191cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS91c2Vycy93ZWItcGxhdGZvcm0tdGVz
dHMvb3JncyIsCisgICAgICAicmVwb3NfdXJsIjogImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vdXNl
cnMvd2ViLXBsYXRmb3JtLXRlc3RzL3JlcG9zIiwKKyAgICAgICJldmVudHNfdXJsIjogImh0dHBz
Oi8vYXBpLmdpdGh1Yi5jb20vdXNlcnMvd2ViLXBsYXRmb3JtLXRlc3RzL2V2ZW50c3svcHJpdmFj
eX0iLAorICAgICAgInJlY2VpdmVkX2V2ZW50c191cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNv
bS91c2Vycy93ZWItcGxhdGZvcm0tdGVzdHMvcmVjZWl2ZWRfZXZlbnRzIiwKKyAgICAgICJ0eXBl
IjogIk9yZ2FuaXphdGlvbiIsCisgICAgICAic2l0ZV9hZG1pbiI6IGZhbHNlCisgICAgfSwKKyAg
ICAiaHRtbF91cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQi
LAorICAgICJkZXNjcmlwdGlvbiI6ICJUZXN0IHN1aXRlcyBmb3IgV2ViIHBsYXRmb3JtIHNwZWNz
IOKAlCBpbmNsdWRpbmcgV0hBVFdHLCBXM0MsIGFuZCBvdGhlcnMiLAorICAgICJmb3JrIjogZmFs
c2UsCisgICAgInVybCI6ICJodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zL3dlYi1wbGF0Zm9y
bS10ZXN0cy93cHQiLAorICAgICJmb3Jrc191cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9y
ZXBvcy93ZWItcGxhdGZvcm0tdGVzdHMvd3B0L2ZvcmtzIiwKKyAgICAia2V5c191cmwiOiAiaHR0
cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy93ZWItcGxhdGZvcm0tdGVzdHMvd3B0L2tleXN7L2tl
eV9pZH0iLAorICAgICJjb2xsYWJvcmF0b3JzX3VybCI6ICJodHRwczovL2FwaS5naXRodWIuY29t
L3JlcG9zL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQvY29sbGFib3JhdG9yc3svY29sbGFib3JhdG9y
fSIsCisgICAgInRlYW1zX3VybCI6ICJodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zL3dlYi1w
bGF0Zm9ybS10ZXN0cy93cHQvdGVhbXMiLAorICAgICJob29rc191cmwiOiAiaHR0cHM6Ly9hcGku
Z2l0aHViLmNvbS9yZXBvcy93ZWItcGxhdGZvcm0tdGVzdHMvd3B0L2hvb2tzIiwKKyAgICAiaXNz
dWVfZXZlbnRzX3VybCI6ICJodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zL3dlYi1wbGF0Zm9y
bS10ZXN0cy93cHQvaXNzdWVzL2V2ZW50c3svbnVtYmVyfSIsCisgICAgImV2ZW50c191cmwiOiAi
aHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy93ZWItcGxhdGZvcm0tdGVzdHMvd3B0L2V2ZW50
cyIsCisgICAgImFzc2lnbmVlc191cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy93
ZWItcGxhdGZvcm0tdGVzdHMvd3B0L2Fzc2lnbmVlc3svdXNlcn0iLAorICAgICJicmFuY2hlc191
cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy93ZWItcGxhdGZvcm0tdGVzdHMvd3B0
L2JyYW5jaGVzey9icmFuY2h9IiwKKyAgICAidGFnc191cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHVi
LmNvbS9yZXBvcy93ZWItcGxhdGZvcm0tdGVzdHMvd3B0L3RhZ3MiLAorICAgICJibG9ic191cmwi
OiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy93ZWItcGxhdGZvcm0tdGVzdHMvd3B0L2dp
dC9ibG9ic3svc2hhfSIsCisgICAgImdpdF90YWdzX3VybCI6ICJodHRwczovL2FwaS5naXRodWIu
Y29tL3JlcG9zL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQvZ2l0L3RhZ3N7L3NoYX0iLAorICAgICJn
aXRfcmVmc191cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy93ZWItcGxhdGZvcm0t
dGVzdHMvd3B0L2dpdC9yZWZzey9zaGF9IiwKKyAgICAidHJlZXNfdXJsIjogImh0dHBzOi8vYXBp
LmdpdGh1Yi5jb20vcmVwb3Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dwdC9naXQvdHJlZXN7L3NoYX0i
LAorICAgICJzdGF0dXNlc191cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy93ZWIt
cGxhdGZvcm0tdGVzdHMvd3B0L3N0YXR1c2VzL3tzaGF9IiwKKyAgICAibGFuZ3VhZ2VzX3VybCI6
ICJodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQvbGFu
Z3VhZ2VzIiwKKyAgICAic3RhcmdhemVyc191cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9y
ZXBvcy93ZWItcGxhdGZvcm0tdGVzdHMvd3B0L3N0YXJnYXplcnMiLAorICAgICJjb250cmlidXRv
cnNfdXJsIjogImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3dwdC9jb250cmlidXRvcnMiLAorICAgICJzdWJzY3JpYmVyc191cmwiOiAiaHR0cHM6Ly9hcGku
Z2l0aHViLmNvbS9yZXBvcy93ZWItcGxhdGZvcm0tdGVzdHMvd3B0L3N1YnNjcmliZXJzIiwKKyAg
ICAic3Vic2NyaXB0aW9uX3VybCI6ICJodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zL3dlYi1w
bGF0Zm9ybS10ZXN0cy93cHQvc3Vic2NyaXB0aW9uIiwKKyAgICAiY29tbWl0c191cmwiOiAiaHR0
cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy93ZWItcGxhdGZvcm0tdGVzdHMvd3B0L2NvbW1pdHN7
L3NoYX0iLAorICAgICJnaXRfY29tbWl0c191cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9y
ZXBvcy93ZWItcGxhdGZvcm0tdGVzdHMvd3B0L2dpdC9jb21taXRzey9zaGF9IiwKKyAgICAiY29t
bWVudHNfdXJsIjogImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3dwdC9jb21tZW50c3svbnVtYmVyfSIsCisgICAgImlzc3VlX2NvbW1lbnRfdXJsIjogImh0
dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dwdC9pc3N1ZXMv
Y29tbWVudHN7L251bWJlcn0iLAorICAgICJjb250ZW50c191cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0
aHViLmNvbS9yZXBvcy93ZWItcGxhdGZvcm0tdGVzdHMvd3B0L2NvbnRlbnRzL3srcGF0aH0iLAor
ICAgICJjb21wYXJlX3VybCI6ICJodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zL3dlYi1wbGF0
Zm9ybS10ZXN0cy93cHQvY29tcGFyZS97YmFzZX0uLi57aGVhZH0iLAorICAgICJtZXJnZXNfdXJs
IjogImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dwdC9t
ZXJnZXMiLAorICAgICJhcmNoaXZlX3VybCI6ICJodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9z
L3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQve2FyY2hpdmVfZm9ybWF0fXsvcmVmfSIsCisgICAgImRv
d25sb2Fkc191cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy93ZWItcGxhdGZvcm0t
dGVzdHMvd3B0L2Rvd25sb2FkcyIsCisgICAgImlzc3Vlc191cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0
aHViLmNvbS9yZXBvcy93ZWItcGxhdGZvcm0tdGVzdHMvd3B0L2lzc3Vlc3svbnVtYmVyfSIsCisg
ICAgInB1bGxzX3VybCI6ICJodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zL3dlYi1wbGF0Zm9y
bS10ZXN0cy93cHQvcHVsbHN7L251bWJlcn0iLAorICAgICJtaWxlc3RvbmVzX3VybCI6ICJodHRw
czovL2FwaS5naXRodWIuY29tL3JlcG9zL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQvbWlsZXN0b25l
c3svbnVtYmVyfSIsCisgICAgIm5vdGlmaWNhdGlvbnNfdXJsIjogImh0dHBzOi8vYXBpLmdpdGh1
Yi5jb20vcmVwb3Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dwdC9ub3RpZmljYXRpb25zez9zaW5jZSxh
bGwscGFydGljaXBhdGluZ30iLAorICAgICJsYWJlbHNfdXJsIjogImh0dHBzOi8vYXBpLmdpdGh1
Yi5jb20vcmVwb3Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dwdC9sYWJlbHN7L25hbWV9IiwKKyAgICAi
cmVsZWFzZXNfdXJsIjogImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3dwdC9yZWxlYXNlc3svaWR9IiwKKyAgICAiZGVwbG95bWVudHNfdXJsIjogImh0dHBz
Oi8vYXBpLmdpdGh1Yi5jb20vcmVwb3Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dwdC9kZXBsb3ltZW50
cyIsCisgICAgImNyZWF0ZWRfYXQiOiAiMjAxMi0wMy0wNFQxMjo1ODoxMVoiLAorICAgICJ1cGRh
dGVkX2F0IjogIjIwMTktMDItMjhUMTI6NDE6MzNaIiwKKyAgICAicHVzaGVkX2F0IjogIjIwMTkt
MDItMjhUMTM6NDM6MTZaIiwKKyAgICAiZ2l0X3VybCI6ICJnaXQ6Ly9naXRodWIuY29tL3dlYi1w
bGF0Zm9ybS10ZXN0cy93cHQuZ2l0IiwKKyAgICAic3NoX3VybCI6ICJnaXRAZ2l0aHViLmNvbTp3
ZWItcGxhdGZvcm0tdGVzdHMvd3B0LmdpdCIsCisgICAgImNsb25lX3VybCI6ICJodHRwczovL2dp
dGh1Yi5jb20vd2ViLXBsYXRmb3JtLXRlc3RzL3dwdC5naXQiLAorICAgICJzdm5fdXJsIjogImh0
dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxhdGZvcm0tdGVzdHMvd3B0IiwKKyAgICAiaG9tZXBhZ2Ui
OiAiaHR0cDovL2lyYy53My5vcmcvP2NoYW5uZWxzPXRlc3RpbmciLAorICAgICJzaXplIjogMzI0
NjQxLAorICAgICJzdGFyZ2F6ZXJzX2NvdW50IjogMjA1OCwKKyAgICAid2F0Y2hlcnNfY291bnQi
OiAyMDU4LAorICAgICJsYW5ndWFnZSI6ICJIVE1MIiwKKyAgICAiaGFzX2lzc3VlcyI6IHRydWUs
CisgICAgImhhc19wcm9qZWN0cyI6IHRydWUsCisgICAgImhhc19kb3dubG9hZHMiOiB0cnVlLAor
ICAgICJoYXNfd2lraSI6IHRydWUsCisgICAgImhhc19wYWdlcyI6IHRydWUsCisgICAgImZvcmtz
X2NvdW50IjogMTYwNCwKKyAgICAibWlycm9yX3VybCI6IG51bGwsCisgICAgImFyY2hpdmVkIjog
ZmFsc2UsCisgICAgIm9wZW5faXNzdWVzX2NvdW50IjogMTM1NCwKKyAgICAibGljZW5zZSI6IHsK
KyAgICAgICJrZXkiOiAib3RoZXIiLAorICAgICAgIm5hbWUiOiAiT3RoZXIiLAorICAgICAgInNw
ZHhfaWQiOiAiTk9BU1NFUlRJT04iLAorICAgICAgInVybCI6IG51bGwsCisgICAgICAibm9kZV9p
ZCI6ICJNRGM2VEdsalpXNXpaVEE9IgorICAgIH0sCisgICAgImZvcmtzIjogMTYwNCwKKyAgICAi
b3Blbl9pc3N1ZXMiOiAxMzU0LAorICAgICJ3YXRjaGVycyI6IDIwNTgsCisgICAgImRlZmF1bHRf
YnJhbmNoIjogIm1hc3RlciIKKyAgfSwKKyAgIm9yZ2FuaXphdGlvbiI6IHsKKyAgICAibG9naW4i
OiAid2ViLXBsYXRmb3JtLXRlc3RzIiwKKyAgICAiaWQiOiAzNzIyNjIzMywKKyAgICAibm9kZV9p
ZCI6ICJNREV5T2s5eVoyRnVhWHBoZEdsdmJqTTNNakkyTWpNeiIsCisgICAgInVybCI6ICJodHRw
czovL2FwaS5naXRodWIuY29tL29yZ3Mvd2ViLXBsYXRmb3JtLXRlc3RzIiwKKyAgICAicmVwb3Nf
dXJsIjogImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vb3Jncy93ZWItcGxhdGZvcm0tdGVzdHMvcmVw
b3MiLAorICAgICJldmVudHNfdXJsIjogImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vb3Jncy93ZWIt
cGxhdGZvcm0tdGVzdHMvZXZlbnRzIiwKKyAgICAiaG9va3NfdXJsIjogImh0dHBzOi8vYXBpLmdp
dGh1Yi5jb20vb3Jncy93ZWItcGxhdGZvcm0tdGVzdHMvaG9va3MiLAorICAgICJpc3N1ZXNfdXJs
IjogImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vb3Jncy93ZWItcGxhdGZvcm0tdGVzdHMvaXNzdWVz
IiwKKyAgICAibWVtYmVyc191cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9vcmdzL3dlYi1w
bGF0Zm9ybS10ZXN0cy9tZW1iZXJzey9tZW1iZXJ9IiwKKyAgICAicHVibGljX21lbWJlcnNfdXJs
IjogImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vb3Jncy93ZWItcGxhdGZvcm0tdGVzdHMvcHVibGlj
X21lbWJlcnN7L21lbWJlcn0iLAorICAgICJhdmF0YXJfdXJsIjogImh0dHBzOi8vYXZhdGFyczAu
Z2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMzcyMjYyMzM/dj00IiwKKyAgICAiZGVzY3JpcHRpb24i
OiAiIgorICB9LAorICAic2VuZGVyIjogeworICAgICJsb2dpbiI6ICJqZ3JhaGFtIiwKKyAgICAi
aWQiOiAyOTQ4NjQsCisgICAgIm5vZGVfaWQiOiAiTURRNlZYTmxjakk1TkRnMk5BPT0iLAorICAg
ICJhdmF0YXJfdXJsIjogImh0dHBzOi8vYXZhdGFyczEuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3Uv
Mjk0ODY0P3Y9NCIsCisgICAgImdyYXZhdGFyX2lkIjogIiIsCisgICAgInVybCI6ICJodHRwczov
L2FwaS5naXRodWIuY29tL3VzZXJzL2pncmFoYW0iLAorICAgICJodG1sX3VybCI6ICJodHRwczov
L2dpdGh1Yi5jb20vamdyYWhhbSIsCisgICAgImZvbGxvd2Vyc191cmwiOiAiaHR0cHM6Ly9hcGku
Z2l0aHViLmNvbS91c2Vycy9qZ3JhaGFtL2ZvbGxvd2VycyIsCisgICAgImZvbGxvd2luZ191cmwi
OiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS91c2Vycy9qZ3JhaGFtL2ZvbGxvd2luZ3svb3RoZXJf
dXNlcn0iLAorICAgICJnaXN0c191cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS91c2Vycy9q
Z3JhaGFtL2dpc3Rzey9naXN0X2lkfSIsCisgICAgInN0YXJyZWRfdXJsIjogImh0dHBzOi8vYXBp
LmdpdGh1Yi5jb20vdXNlcnMvamdyYWhhbS9zdGFycmVkey9vd25lcn17L3JlcG99IiwKKyAgICAi
c3Vic2NyaXB0aW9uc191cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS91c2Vycy9qZ3JhaGFt
L3N1YnNjcmlwdGlvbnMiLAorICAgICJvcmdhbml6YXRpb25zX3VybCI6ICJodHRwczovL2FwaS5n
aXRodWIuY29tL3VzZXJzL2pncmFoYW0vb3JncyIsCisgICAgInJlcG9zX3VybCI6ICJodHRwczov
L2FwaS5naXRodWIuY29tL3VzZXJzL2pncmFoYW0vcmVwb3MiLAorICAgICJldmVudHNfdXJsIjog
Imh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vdXNlcnMvamdyYWhhbS9ldmVudHN7L3ByaXZhY3l9IiwK
KyAgICAicmVjZWl2ZWRfZXZlbnRzX3VybCI6ICJodHRwczovL2FwaS5naXRodWIuY29tL3VzZXJz
L2pncmFoYW0vcmVjZWl2ZWRfZXZlbnRzIiwKKyAgICAidHlwZSI6ICJVc2VyIiwKKyAgICAic2l0
ZV9hZG1pbiI6IGZhbHNlCisgIH0KK30KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvY2kvdGMvdGVzdGRhdGEvcHJfZXZlbnRfdGVz
dHNfYWZmZWN0ZWQuanNvbiBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvY2kvdGMvdGVzdGRhdGEvcHJfZXZlbnRfdGVzdHNfYWZmZWN0ZWQuanNvbgpu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi43OTJlYTFiY2NjZWJjMDBlNjY4MGUwMjljNzY4NTQyYTYxMTg4OTRmCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy9jaS90Yy90ZXN0ZGF0YS9wcl9ldmVudF90ZXN0c19hZmZlY3RlZC5qc29uCkBAIC0w
LDAgKzEsNTA1IEBACit7CisgICJhY3Rpb24iOiAic3luY2hyb25pemUiLAorICAibnVtYmVyIjog
MjAzNzgsCisgICJwdWxsX3JlcXVlc3QiOiB7CisgICAgInVybCI6ICJodHRwczovL2FwaS5naXRo
dWIuY29tL3JlcG9zL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQvcHVsbHMvMjAzNzgiLAorICAgICJp
ZCI6IDM0NDI4NzkyMCwKKyAgICAibm9kZV9pZCI6ICJNREV4T2xCMWJHeFNaWEYxWlhOME16UTBN
amczT1RJdyIsCisgICAgImh0bWxfdXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxhdGZv
cm0tdGVzdHMvd3B0L3B1bGwvMjAzNzgiLAorICAgICJkaWZmX3VybCI6ICJodHRwczovL2dpdGh1
Yi5jb20vd2ViLXBsYXRmb3JtLXRlc3RzL3dwdC9wdWxsLzIwMzc4LmRpZmYiLAorICAgICJwYXRj
aF91cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQvcHVsbC8y
MDM3OC5wYXRjaCIsCisgICAgImlzc3VlX3VybCI6ICJodHRwczovL2FwaS5naXRodWIuY29tL3Jl
cG9zL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQvaXNzdWVzLzIwMzc4IiwKKyAgICAibnVtYmVyIjog
MjAzNzgsCisgICAgInN0YXRlIjogIm9wZW4iLAorICAgICJsb2NrZWQiOiBmYWxzZSwKKyAgICAi
dGl0bGUiOiAiTWlncmF0ZSBtb3JlIGxheW91dCBpbnN0YWJpbGl0eSB0ZXN0cyB0byBXUFQuIiwK
KyAgICAidXNlciI6IHsKKyAgICAgICJsb2dpbiI6ICJjaHJvbWl1bS13cHQtZXhwb3J0LWJvdCIs
CisgICAgICAiaWQiOiAyNTc1Mjg5MiwKKyAgICAgICJub2RlX2lkIjogIk1EUTZWWE5sY2pJMU56
VXlPRGt5IiwKKyAgICAgICJhdmF0YXJfdXJsIjogImh0dHBzOi8vYXZhdGFyczEuZ2l0aHVidXNl
cmNvbnRlbnQuY29tL3UvMjU3NTI4OTI/dj00IiwKKyAgICAgICJncmF2YXRhcl9pZCI6ICIiLAor
ICAgICAgInVybCI6ICJodHRwczovL2FwaS5naXRodWIuY29tL3VzZXJzL2Nocm9taXVtLXdwdC1l
eHBvcnQtYm90IiwKKyAgICAgICJodG1sX3VybCI6ICJodHRwczovL2dpdGh1Yi5jb20vY2hyb21p
dW0td3B0LWV4cG9ydC1ib3QiLAorICAgICAgImZvbGxvd2Vyc191cmwiOiAiaHR0cHM6Ly9hcGku
Z2l0aHViLmNvbS91c2Vycy9jaHJvbWl1bS13cHQtZXhwb3J0LWJvdC9mb2xsb3dlcnMiLAorICAg
ICAgImZvbGxvd2luZ191cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS91c2Vycy9jaHJvbWl1
bS13cHQtZXhwb3J0LWJvdC9mb2xsb3dpbmd7L290aGVyX3VzZXJ9IiwKKyAgICAgICJnaXN0c191
cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS91c2Vycy9jaHJvbWl1bS13cHQtZXhwb3J0LWJv
dC9naXN0c3svZ2lzdF9pZH0iLAorICAgICAgInN0YXJyZWRfdXJsIjogImh0dHBzOi8vYXBpLmdp
dGh1Yi5jb20vdXNlcnMvY2hyb21pdW0td3B0LWV4cG9ydC1ib3Qvc3RhcnJlZHsvb3duZXJ9ey9y
ZXBvfSIsCisgICAgICAic3Vic2NyaXB0aW9uc191cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNv
bS91c2Vycy9jaHJvbWl1bS13cHQtZXhwb3J0LWJvdC9zdWJzY3JpcHRpb25zIiwKKyAgICAgICJv
cmdhbml6YXRpb25zX3VybCI6ICJodHRwczovL2FwaS5naXRodWIuY29tL3VzZXJzL2Nocm9taXVt
LXdwdC1leHBvcnQtYm90L29yZ3MiLAorICAgICAgInJlcG9zX3VybCI6ICJodHRwczovL2FwaS5n
aXRodWIuY29tL3VzZXJzL2Nocm9taXVtLXdwdC1leHBvcnQtYm90L3JlcG9zIiwKKyAgICAgICJl
dmVudHNfdXJsIjogImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vdXNlcnMvY2hyb21pdW0td3B0LWV4
cG9ydC1ib3QvZXZlbnRzey9wcml2YWN5fSIsCisgICAgICAicmVjZWl2ZWRfZXZlbnRzX3VybCI6
ICJodHRwczovL2FwaS5naXRodWIuY29tL3VzZXJzL2Nocm9taXVtLXdwdC1leHBvcnQtYm90L3Jl
Y2VpdmVkX2V2ZW50cyIsCisgICAgICAidHlwZSI6ICJVc2VyIiwKKyAgICAgICJzaXRlX2FkbWlu
IjogZmFsc2UKKyAgICB9LAorICAgICJib2R5IjogIkJ1ZzogOTg0MTA5XG5DaGFuZ2UtSWQ6IEll
MzFjNjM5OTVmNjNmOGFjYmZhMjZkOTc5NjZmZmUzMDAxNmVkZDNjXG5SZXZpZXdlZC1vbjogaHR0
cHM6Ly9jaHJvbWl1bS1yZXZpZXcuZ29vZ2xlc291cmNlLmNvbS9jL2Nocm9taXVtL3NyYy8rLzE5
MjU0NDdcbkNvbW1pdC1RdWV1ZTogU3RldmUgS29iZXMgXFw8c2tvYmVzQGNocm9taXVtLm9yZz5c
blJldmlld2VkLWJ5OiBOaWNvbMOhcyBQZcOxYSBNb3Jlbm8gXFw8bnBtQGNocm9taXVtLm9yZz5c
bkNyLUNvbW1pdC1Qb3NpdGlvbjogcmVmcy9oZWFkcy9tYXN0ZXJAeyM3MTg2NDh9XG5cbiIsCisg
ICAgImNyZWF0ZWRfYXQiOiAiMjAxOS0xMS0yMVQyMzo1Mzo1OFoiLAorICAgICJ1cGRhdGVkX2F0
IjogIjIwMTktMTEtMjVUMTU6NTQ6MTlaIiwKKyAgICAiY2xvc2VkX2F0IjogbnVsbCwKKyAgICAi
bWVyZ2VkX2F0IjogbnVsbCwKKyAgICAibWVyZ2VfY29tbWl0X3NoYSI6ICIzNjcyNmUzZTk5MmE4
M2U4MDYwOGFjZjQ3Yzg4NmZjNDQwMzkwNjkxIiwKKyAgICAiYXNzaWduZWUiOiBudWxsLAorICAg
ICJhc3NpZ25lZXMiOiBbCisKKyAgICBdLAorICAgICJyZXF1ZXN0ZWRfcmV2aWV3ZXJzIjogWwor
CisgICAgXSwKKyAgICAicmVxdWVzdGVkX3RlYW1zIjogWworCisgICAgXSwKKyAgICAibGFiZWxz
IjogWworICAgICAgeworICAgICAgICAiaWQiOiA0OTA4OTE1MDIsCisgICAgICAgICJub2RlX2lk
IjogIk1EVTZUR0ZpWld3ME9UQTRPVEUxTURJPSIsCisgICAgICAgICJ1cmwiOiAiaHR0cHM6Ly9h
cGkuZ2l0aHViLmNvbS9yZXBvcy93ZWItcGxhdGZvcm0tdGVzdHMvd3B0L2xhYmVscy9jaHJvbWl1
bS1leHBvcnQiLAorICAgICAgICAibmFtZSI6ICJjaHJvbWl1bS1leHBvcnQiLAorICAgICAgICAi
Y29sb3IiOiAiNDc4OGY0IiwKKyAgICAgICAgImRlZmF1bHQiOiBmYWxzZSwKKyAgICAgICAgImRl
c2NyaXB0aW9uIjogbnVsbAorICAgICAgfSwKKyAgICAgIHsKKyAgICAgICAgImlkIjogMTM2MzE5
OTY1MSwKKyAgICAgICAgIm5vZGVfaWQiOiAiTURVNlRHRmlaV3d4TXpZek1UazVOalV4IiwKKyAg
ICAgICAgInVybCI6ICJodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zL3dlYi1wbGF0Zm9ybS10
ZXN0cy93cHQvbGFiZWxzL2xheW91dC1pbnN0YWJpbGl0eSIsCisgICAgICAgICJuYW1lIjogImxh
eW91dC1pbnN0YWJpbGl0eSIsCisgICAgICAgICJjb2xvciI6ICJlZGVkZWQiLAorICAgICAgICAi
ZGVmYXVsdCI6IGZhbHNlLAorICAgICAgICAiZGVzY3JpcHRpb24iOiBudWxsCisgICAgICB9Cisg
ICAgXSwKKyAgICAibWlsZXN0b25lIjogbnVsbCwKKyAgICAiY29tbWl0c191cmwiOiAiaHR0cHM6
Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy93ZWItcGxhdGZvcm0tdGVzdHMvd3B0L3B1bGxzLzIwMzc4
L2NvbW1pdHMiLAorICAgICJyZXZpZXdfY29tbWVudHNfdXJsIjogImh0dHBzOi8vYXBpLmdpdGh1
Yi5jb20vcmVwb3Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dwdC9wdWxscy8yMDM3OC9jb21tZW50cyIs
CisgICAgInJldmlld19jb21tZW50X3VybCI6ICJodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9z
L3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQvcHVsbHMvY29tbWVudHN7L251bWJlcn0iLAorICAgICJj
b21tZW50c191cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy93ZWItcGxhdGZvcm0t
dGVzdHMvd3B0L2lzc3Vlcy8yMDM3OC9jb21tZW50cyIsCisgICAgInN0YXR1c2VzX3VybCI6ICJo
dHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQvc3RhdHVz
ZXMvN2RmODRlM2Y4N2YwNTg2MGEyYjg2ZDBiODBkYzNlYjA2ZDhlNzEwMyIsCisgICAgImhlYWQi
OiB7CisgICAgICAibGFiZWwiOiAid2ViLXBsYXRmb3JtLXRlc3RzOmNocm9taXVtLWV4cG9ydC1j
bC0xOTI1NDQ3IiwKKyAgICAgICJyZWYiOiAiY2hyb21pdW0tZXhwb3J0LWNsLTE5MjU0NDciLAor
ICAgICAgInNoYSI6ICI3ZGY4NGUzZjg3ZjA1ODYwYTJiODZkMGI4MGRjM2ViMDZkOGU3MTAzIiwK
KyAgICAgICJ1c2VyIjogeworICAgICAgICAibG9naW4iOiAid2ViLXBsYXRmb3JtLXRlc3RzIiwK
KyAgICAgICAgImlkIjogMzcyMjYyMzMsCisgICAgICAgICJub2RlX2lkIjogIk1ERXlPazl5WjJG
dWFYcGhkR2x2YmpNM01qSTJNak16IiwKKyAgICAgICAgImF2YXRhcl91cmwiOiAiaHR0cHM6Ly9h
dmF0YXJzMC5naXRodWJ1c2VyY29udGVudC5jb20vdS8zNzIyNjIzMz92PTQiLAorICAgICAgICAi
Z3JhdmF0YXJfaWQiOiAiIiwKKyAgICAgICAgInVybCI6ICJodHRwczovL2FwaS5naXRodWIuY29t
L3VzZXJzL3dlYi1wbGF0Zm9ybS10ZXN0cyIsCisgICAgICAgICJodG1sX3VybCI6ICJodHRwczov
L2dpdGh1Yi5jb20vd2ViLXBsYXRmb3JtLXRlc3RzIiwKKyAgICAgICAgImZvbGxvd2Vyc191cmwi
OiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS91c2Vycy93ZWItcGxhdGZvcm0tdGVzdHMvZm9sbG93
ZXJzIiwKKyAgICAgICAgImZvbGxvd2luZ191cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS91
c2Vycy93ZWItcGxhdGZvcm0tdGVzdHMvZm9sbG93aW5ney9vdGhlcl91c2VyfSIsCisgICAgICAg
ICJnaXN0c191cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS91c2Vycy93ZWItcGxhdGZvcm0t
dGVzdHMvZ2lzdHN7L2dpc3RfaWR9IiwKKyAgICAgICAgInN0YXJyZWRfdXJsIjogImh0dHBzOi8v
YXBpLmdpdGh1Yi5jb20vdXNlcnMvd2ViLXBsYXRmb3JtLXRlc3RzL3N0YXJyZWR7L293bmVyfXsv
cmVwb30iLAorICAgICAgICAic3Vic2NyaXB0aW9uc191cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHVi
LmNvbS91c2Vycy93ZWItcGxhdGZvcm0tdGVzdHMvc3Vic2NyaXB0aW9ucyIsCisgICAgICAgICJv
cmdhbml6YXRpb25zX3VybCI6ICJodHRwczovL2FwaS5naXRodWIuY29tL3VzZXJzL3dlYi1wbGF0
Zm9ybS10ZXN0cy9vcmdzIiwKKyAgICAgICAgInJlcG9zX3VybCI6ICJodHRwczovL2FwaS5naXRo
dWIuY29tL3VzZXJzL3dlYi1wbGF0Zm9ybS10ZXN0cy9yZXBvcyIsCisgICAgICAgICJldmVudHNf
dXJsIjogImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vdXNlcnMvd2ViLXBsYXRmb3JtLXRlc3RzL2V2
ZW50c3svcHJpdmFjeX0iLAorICAgICAgICAicmVjZWl2ZWRfZXZlbnRzX3VybCI6ICJodHRwczov
L2FwaS5naXRodWIuY29tL3VzZXJzL3dlYi1wbGF0Zm9ybS10ZXN0cy9yZWNlaXZlZF9ldmVudHMi
LAorICAgICAgICAidHlwZSI6ICJPcmdhbml6YXRpb24iLAorICAgICAgICAic2l0ZV9hZG1pbiI6
IGZhbHNlCisgICAgICB9LAorICAgICAgInJlcG8iOiB7CisgICAgICAgICJpZCI6IDM2MTgxMzMs
CisgICAgICAgICJub2RlX2lkIjogIk1ERXdPbEpsY0c5emFYUnZjbmt6TmpFNE1UTXoiLAorICAg
ICAgICAibmFtZSI6ICJ3cHQiLAorICAgICAgICAiZnVsbF9uYW1lIjogIndlYi1wbGF0Zm9ybS10
ZXN0cy93cHQiLAorICAgICAgICAicHJpdmF0ZSI6IGZhbHNlLAorICAgICAgICAib3duZXIiOiB7
CisgICAgICAgICAgImxvZ2luIjogIndlYi1wbGF0Zm9ybS10ZXN0cyIsCisgICAgICAgICAgImlk
IjogMzcyMjYyMzMsCisgICAgICAgICAgIm5vZGVfaWQiOiAiTURFeU9rOXlaMkZ1YVhwaGRHbHZi
ak0zTWpJMk1qTXoiLAorICAgICAgICAgICJhdmF0YXJfdXJsIjogImh0dHBzOi8vYXZhdGFyczAu
Z2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMzcyMjYyMzM/dj00IiwKKyAgICAgICAgICAiZ3JhdmF0
YXJfaWQiOiAiIiwKKyAgICAgICAgICAidXJsIjogImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vdXNl
cnMvd2ViLXBsYXRmb3JtLXRlc3RzIiwKKyAgICAgICAgICAiaHRtbF91cmwiOiAiaHR0cHM6Ly9n
aXRodWIuY29tL3dlYi1wbGF0Zm9ybS10ZXN0cyIsCisgICAgICAgICAgImZvbGxvd2Vyc191cmwi
OiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS91c2Vycy93ZWItcGxhdGZvcm0tdGVzdHMvZm9sbG93
ZXJzIiwKKyAgICAgICAgICAiZm9sbG93aW5nX3VybCI6ICJodHRwczovL2FwaS5naXRodWIuY29t
L3VzZXJzL3dlYi1wbGF0Zm9ybS10ZXN0cy9mb2xsb3dpbmd7L290aGVyX3VzZXJ9IiwKKyAgICAg
ICAgICAiZ2lzdHNfdXJsIjogImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vdXNlcnMvd2ViLXBsYXRm
b3JtLXRlc3RzL2dpc3Rzey9naXN0X2lkfSIsCisgICAgICAgICAgInN0YXJyZWRfdXJsIjogImh0
dHBzOi8vYXBpLmdpdGh1Yi5jb20vdXNlcnMvd2ViLXBsYXRmb3JtLXRlc3RzL3N0YXJyZWR7L293
bmVyfXsvcmVwb30iLAorICAgICAgICAgICJzdWJzY3JpcHRpb25zX3VybCI6ICJodHRwczovL2Fw
aS5naXRodWIuY29tL3VzZXJzL3dlYi1wbGF0Zm9ybS10ZXN0cy9zdWJzY3JpcHRpb25zIiwKKyAg
ICAgICAgICAib3JnYW5pemF0aW9uc191cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS91c2Vy
cy93ZWItcGxhdGZvcm0tdGVzdHMvb3JncyIsCisgICAgICAgICAgInJlcG9zX3VybCI6ICJodHRw
czovL2FwaS5naXRodWIuY29tL3VzZXJzL3dlYi1wbGF0Zm9ybS10ZXN0cy9yZXBvcyIsCisgICAg
ICAgICAgImV2ZW50c191cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS91c2Vycy93ZWItcGxh
dGZvcm0tdGVzdHMvZXZlbnRzey9wcml2YWN5fSIsCisgICAgICAgICAgInJlY2VpdmVkX2V2ZW50
c191cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS91c2Vycy93ZWItcGxhdGZvcm0tdGVzdHMv
cmVjZWl2ZWRfZXZlbnRzIiwKKyAgICAgICAgICAidHlwZSI6ICJPcmdhbml6YXRpb24iLAorICAg
ICAgICAgICJzaXRlX2FkbWluIjogZmFsc2UKKyAgICAgICAgfSwKKyAgICAgICAgImh0bWxfdXJs
IjogImh0dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxhdGZvcm0tdGVzdHMvd3B0IiwKKyAgICAgICAg
ImRlc2NyaXB0aW9uIjogIlRlc3Qgc3VpdGVzIGZvciBXZWIgcGxhdGZvcm0gc3BlY3Mg4oCUIGlu
Y2x1ZGluZyBXSEFUV0csIFczQywgYW5kIG90aGVycyIsCisgICAgICAgICJmb3JrIjogZmFsc2Us
CisgICAgICAgICJ1cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy93ZWItcGxhdGZv
cm0tdGVzdHMvd3B0IiwKKyAgICAgICAgImZvcmtzX3VybCI6ICJodHRwczovL2FwaS5naXRodWIu
Y29tL3JlcG9zL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQvZm9ya3MiLAorICAgICAgICAia2V5c191
cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy93ZWItcGxhdGZvcm0tdGVzdHMvd3B0
L2tleXN7L2tleV9pZH0iLAorICAgICAgICAiY29sbGFib3JhdG9yc191cmwiOiAiaHR0cHM6Ly9h
cGkuZ2l0aHViLmNvbS9yZXBvcy93ZWItcGxhdGZvcm0tdGVzdHMvd3B0L2NvbGxhYm9yYXRvcnN7
L2NvbGxhYm9yYXRvcn0iLAorICAgICAgICAidGVhbXNfdXJsIjogImh0dHBzOi8vYXBpLmdpdGh1
Yi5jb20vcmVwb3Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dwdC90ZWFtcyIsCisgICAgICAgICJob29r
c191cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy93ZWItcGxhdGZvcm0tdGVzdHMv
d3B0L2hvb2tzIiwKKyAgICAgICAgImlzc3VlX2V2ZW50c191cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0
aHViLmNvbS9yZXBvcy93ZWItcGxhdGZvcm0tdGVzdHMvd3B0L2lzc3Vlcy9ldmVudHN7L251bWJl
cn0iLAorICAgICAgICAiZXZlbnRzX3VybCI6ICJodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9z
L3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQvZXZlbnRzIiwKKyAgICAgICAgImFzc2lnbmVlc191cmwi
OiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy93ZWItcGxhdGZvcm0tdGVzdHMvd3B0L2Fz
c2lnbmVlc3svdXNlcn0iLAorICAgICAgICAiYnJhbmNoZXNfdXJsIjogImh0dHBzOi8vYXBpLmdp
dGh1Yi5jb20vcmVwb3Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dwdC9icmFuY2hlc3svYnJhbmNofSIs
CisgICAgICAgICJ0YWdzX3VybCI6ICJodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zL3dlYi1w
bGF0Zm9ybS10ZXN0cy93cHQvdGFncyIsCisgICAgICAgICJibG9ic191cmwiOiAiaHR0cHM6Ly9h
cGkuZ2l0aHViLmNvbS9yZXBvcy93ZWItcGxhdGZvcm0tdGVzdHMvd3B0L2dpdC9ibG9ic3svc2hh
fSIsCisgICAgICAgICJnaXRfdGFnc191cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBv
cy93ZWItcGxhdGZvcm0tdGVzdHMvd3B0L2dpdC90YWdzey9zaGF9IiwKKyAgICAgICAgImdpdF9y
ZWZzX3VybCI6ICJodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zL3dlYi1wbGF0Zm9ybS10ZXN0
cy93cHQvZ2l0L3JlZnN7L3NoYX0iLAorICAgICAgICAidHJlZXNfdXJsIjogImh0dHBzOi8vYXBp
LmdpdGh1Yi5jb20vcmVwb3Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dwdC9naXQvdHJlZXN7L3NoYX0i
LAorICAgICAgICAic3RhdHVzZXNfdXJsIjogImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3dwdC9zdGF0dXNlcy97c2hhfSIsCisgICAgICAgICJsYW5ndWFn
ZXNfdXJsIjogImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3dwdC9sYW5ndWFnZXMiLAorICAgICAgICAic3RhcmdhemVyc191cmwiOiAiaHR0cHM6Ly9hcGku
Z2l0aHViLmNvbS9yZXBvcy93ZWItcGxhdGZvcm0tdGVzdHMvd3B0L3N0YXJnYXplcnMiLAorICAg
ICAgICAiY29udHJpYnV0b3JzX3VybCI6ICJodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zL3dl
Yi1wbGF0Zm9ybS10ZXN0cy93cHQvY29udHJpYnV0b3JzIiwKKyAgICAgICAgInN1YnNjcmliZXJz
X3VybCI6ICJodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zL3dlYi1wbGF0Zm9ybS10ZXN0cy93
cHQvc3Vic2NyaWJlcnMiLAorICAgICAgICAic3Vic2NyaXB0aW9uX3VybCI6ICJodHRwczovL2Fw
aS5naXRodWIuY29tL3JlcG9zL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQvc3Vic2NyaXB0aW9uIiwK
KyAgICAgICAgImNvbW1pdHNfdXJsIjogImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3dwdC9jb21taXRzey9zaGF9IiwKKyAgICAgICAgImdpdF9jb21taXRz
X3VybCI6ICJodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zL3dlYi1wbGF0Zm9ybS10ZXN0cy93
cHQvZ2l0L2NvbW1pdHN7L3NoYX0iLAorICAgICAgICAiY29tbWVudHNfdXJsIjogImh0dHBzOi8v
YXBpLmdpdGh1Yi5jb20vcmVwb3Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dwdC9jb21tZW50c3svbnVt
YmVyfSIsCisgICAgICAgICJpc3N1ZV9jb21tZW50X3VybCI6ICJodHRwczovL2FwaS5naXRodWIu
Y29tL3JlcG9zL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQvaXNzdWVzL2NvbW1lbnRzey9udW1iZXJ9
IiwKKyAgICAgICAgImNvbnRlbnRzX3VybCI6ICJodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9z
L3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQvY29udGVudHMveytwYXRofSIsCisgICAgICAgICJjb21w
YXJlX3VybCI6ICJodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zL3dlYi1wbGF0Zm9ybS10ZXN0
cy93cHQvY29tcGFyZS97YmFzZX0uLi57aGVhZH0iLAorICAgICAgICAibWVyZ2VzX3VybCI6ICJo
dHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQvbWVyZ2Vz
IiwKKyAgICAgICAgImFyY2hpdmVfdXJsIjogImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3dwdC97YXJjaGl2ZV9mb3JtYXR9ey9yZWZ9IiwKKyAgICAgICAg
ImRvd25sb2Fkc191cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy93ZWItcGxhdGZv
cm0tdGVzdHMvd3B0L2Rvd25sb2FkcyIsCisgICAgICAgICJpc3N1ZXNfdXJsIjogImh0dHBzOi8v
YXBpLmdpdGh1Yi5jb20vcmVwb3Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dwdC9pc3N1ZXN7L251bWJl
cn0iLAorICAgICAgICAicHVsbHNfdXJsIjogImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3dwdC9wdWxsc3svbnVtYmVyfSIsCisgICAgICAgICJtaWxlc3Rv
bmVzX3VybCI6ICJodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zL3dlYi1wbGF0Zm9ybS10ZXN0
cy93cHQvbWlsZXN0b25lc3svbnVtYmVyfSIsCisgICAgICAgICJub3RpZmljYXRpb25zX3VybCI6
ICJodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQvbm90
aWZpY2F0aW9uc3s/c2luY2UsYWxsLHBhcnRpY2lwYXRpbmd9IiwKKyAgICAgICAgImxhYmVsc191
cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy93ZWItcGxhdGZvcm0tdGVzdHMvd3B0
L2xhYmVsc3svbmFtZX0iLAorICAgICAgICAicmVsZWFzZXNfdXJsIjogImh0dHBzOi8vYXBpLmdp
dGh1Yi5jb20vcmVwb3Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dwdC9yZWxlYXNlc3svaWR9IiwKKyAg
ICAgICAgImRlcGxveW1lbnRzX3VybCI6ICJodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zL3dl
Yi1wbGF0Zm9ybS10ZXN0cy93cHQvZGVwbG95bWVudHMiLAorICAgICAgICAiY3JlYXRlZF9hdCI6
ICIyMDEyLTAzLTA0VDEyOjU4OjExWiIsCisgICAgICAgICJ1cGRhdGVkX2F0IjogIjIwMTktMTEt
MjVUMTU6NDA6NTlaIiwKKyAgICAgICAgInB1c2hlZF9hdCI6ICIyMDE5LTExLTI1VDE1OjU0OjE4
WiIsCisgICAgICAgICJnaXRfdXJsIjogImdpdDovL2dpdGh1Yi5jb20vd2ViLXBsYXRmb3JtLXRl
c3RzL3dwdC5naXQiLAorICAgICAgICAic3NoX3VybCI6ICJnaXRAZ2l0aHViLmNvbTp3ZWItcGxh
dGZvcm0tdGVzdHMvd3B0LmdpdCIsCisgICAgICAgICJjbG9uZV91cmwiOiAiaHR0cHM6Ly9naXRo
dWIuY29tL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQuZ2l0IiwKKyAgICAgICAgInN2bl91cmwiOiAi
aHR0cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQiLAorICAgICAgICAiaG9t
ZXBhZ2UiOiAiaHR0cHM6Ly93ZWItcGxhdGZvcm0tdGVzdHMub3JnLyIsCisgICAgICAgICJzaXpl
IjogMzI5Mjc4LAorICAgICAgICAic3RhcmdhemVyc19jb3VudCI6IDI1MzYsCisgICAgICAgICJ3
YXRjaGVyc19jb3VudCI6IDI1MzYsCisgICAgICAgICJsYW5ndWFnZSI6ICJIVE1MIiwKKyAgICAg
ICAgImhhc19pc3N1ZXMiOiB0cnVlLAorICAgICAgICAiaGFzX3Byb2plY3RzIjogdHJ1ZSwKKyAg
ICAgICAgImhhc19kb3dubG9hZHMiOiB0cnVlLAorICAgICAgICAiaGFzX3dpa2kiOiB0cnVlLAor
ICAgICAgICAiaGFzX3BhZ2VzIjogdHJ1ZSwKKyAgICAgICAgImZvcmtzX2NvdW50IjogMTgzNywK
KyAgICAgICAgIm1pcnJvcl91cmwiOiBudWxsLAorICAgICAgICAiYXJjaGl2ZWQiOiBmYWxzZSwK
KyAgICAgICAgImRpc2FibGVkIjogZmFsc2UsCisgICAgICAgICJvcGVuX2lzc3Vlc19jb3VudCI6
IDE1NzYsCisgICAgICAgICJsaWNlbnNlIjogeworICAgICAgICAgICJrZXkiOiAib3RoZXIiLAor
ICAgICAgICAgICJuYW1lIjogIk90aGVyIiwKKyAgICAgICAgICAic3BkeF9pZCI6ICJOT0FTU0VS
VElPTiIsCisgICAgICAgICAgInVybCI6IG51bGwsCisgICAgICAgICAgIm5vZGVfaWQiOiAiTURj
NlRHbGpaVzV6WlRBPSIKKyAgICAgICAgfSwKKyAgICAgICAgImZvcmtzIjogMTgzNywKKyAgICAg
ICAgIm9wZW5faXNzdWVzIjogMTU3NiwKKyAgICAgICAgIndhdGNoZXJzIjogMjUzNiwKKyAgICAg
ICAgImRlZmF1bHRfYnJhbmNoIjogIm1hc3RlciIKKyAgICAgIH0KKyAgICB9LAorICAgICJiYXNl
IjogeworICAgICAgImxhYmVsIjogIndlYi1wbGF0Zm9ybS10ZXN0czptYXN0ZXIiLAorICAgICAg
InJlZiI6ICJtYXN0ZXIiLAorICAgICAgInNoYSI6ICI5MGViZTVjMzNjNDQwOTAyNzE3NTlmOGU5
ZGM0M2QwYjViZDBmOGY3IiwKKyAgICAgICJ1c2VyIjogeworICAgICAgICAibG9naW4iOiAid2Vi
LXBsYXRmb3JtLXRlc3RzIiwKKyAgICAgICAgImlkIjogMzcyMjYyMzMsCisgICAgICAgICJub2Rl
X2lkIjogIk1ERXlPazl5WjJGdWFYcGhkR2x2YmpNM01qSTJNak16IiwKKyAgICAgICAgImF2YXRh
cl91cmwiOiAiaHR0cHM6Ly9hdmF0YXJzMC5naXRodWJ1c2VyY29udGVudC5jb20vdS8zNzIyNjIz
Mz92PTQiLAorICAgICAgICAiZ3JhdmF0YXJfaWQiOiAiIiwKKyAgICAgICAgInVybCI6ICJodHRw
czovL2FwaS5naXRodWIuY29tL3VzZXJzL3dlYi1wbGF0Zm9ybS10ZXN0cyIsCisgICAgICAgICJo
dG1sX3VybCI6ICJodHRwczovL2dpdGh1Yi5jb20vd2ViLXBsYXRmb3JtLXRlc3RzIiwKKyAgICAg
ICAgImZvbGxvd2Vyc191cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS91c2Vycy93ZWItcGxh
dGZvcm0tdGVzdHMvZm9sbG93ZXJzIiwKKyAgICAgICAgImZvbGxvd2luZ191cmwiOiAiaHR0cHM6
Ly9hcGkuZ2l0aHViLmNvbS91c2Vycy93ZWItcGxhdGZvcm0tdGVzdHMvZm9sbG93aW5ney9vdGhl
cl91c2VyfSIsCisgICAgICAgICJnaXN0c191cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS91
c2Vycy93ZWItcGxhdGZvcm0tdGVzdHMvZ2lzdHN7L2dpc3RfaWR9IiwKKyAgICAgICAgInN0YXJy
ZWRfdXJsIjogImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vdXNlcnMvd2ViLXBsYXRmb3JtLXRlc3Rz
L3N0YXJyZWR7L293bmVyfXsvcmVwb30iLAorICAgICAgICAic3Vic2NyaXB0aW9uc191cmwiOiAi
aHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS91c2Vycy93ZWItcGxhdGZvcm0tdGVzdHMvc3Vic2NyaXB0
aW9ucyIsCisgICAgICAgICJvcmdhbml6YXRpb25zX3VybCI6ICJodHRwczovL2FwaS5naXRodWIu
Y29tL3VzZXJzL3dlYi1wbGF0Zm9ybS10ZXN0cy9vcmdzIiwKKyAgICAgICAgInJlcG9zX3VybCI6
ICJodHRwczovL2FwaS5naXRodWIuY29tL3VzZXJzL3dlYi1wbGF0Zm9ybS10ZXN0cy9yZXBvcyIs
CisgICAgICAgICJldmVudHNfdXJsIjogImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vdXNlcnMvd2Vi
LXBsYXRmb3JtLXRlc3RzL2V2ZW50c3svcHJpdmFjeX0iLAorICAgICAgICAicmVjZWl2ZWRfZXZl
bnRzX3VybCI6ICJodHRwczovL2FwaS5naXRodWIuY29tL3VzZXJzL3dlYi1wbGF0Zm9ybS10ZXN0
cy9yZWNlaXZlZF9ldmVudHMiLAorICAgICAgICAidHlwZSI6ICJPcmdhbml6YXRpb24iLAorICAg
ICAgICAic2l0ZV9hZG1pbiI6IGZhbHNlCisgICAgICB9LAorICAgICAgInJlcG8iOiB7CisgICAg
ICAgICJpZCI6IDM2MTgxMzMsCisgICAgICAgICJub2RlX2lkIjogIk1ERXdPbEpsY0c5emFYUnZj
bmt6TmpFNE1UTXoiLAorICAgICAgICAibmFtZSI6ICJ3cHQiLAorICAgICAgICAiZnVsbF9uYW1l
IjogIndlYi1wbGF0Zm9ybS10ZXN0cy93cHQiLAorICAgICAgICAicHJpdmF0ZSI6IGZhbHNlLAor
ICAgICAgICAib3duZXIiOiB7CisgICAgICAgICAgImxvZ2luIjogIndlYi1wbGF0Zm9ybS10ZXN0
cyIsCisgICAgICAgICAgImlkIjogMzcyMjYyMzMsCisgICAgICAgICAgIm5vZGVfaWQiOiAiTURF
eU9rOXlaMkZ1YVhwaGRHbHZiak0zTWpJMk1qTXoiLAorICAgICAgICAgICJhdmF0YXJfdXJsIjog
Imh0dHBzOi8vYXZhdGFyczAuZ2l0aHVidXNlcmNvbnRlbnQuY29tL3UvMzcyMjYyMzM/dj00IiwK
KyAgICAgICAgICAiZ3JhdmF0YXJfaWQiOiAiIiwKKyAgICAgICAgICAidXJsIjogImh0dHBzOi8v
YXBpLmdpdGh1Yi5jb20vdXNlcnMvd2ViLXBsYXRmb3JtLXRlc3RzIiwKKyAgICAgICAgICAiaHRt
bF91cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9ybS10ZXN0cyIsCisgICAgICAg
ICAgImZvbGxvd2Vyc191cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS91c2Vycy93ZWItcGxh
dGZvcm0tdGVzdHMvZm9sbG93ZXJzIiwKKyAgICAgICAgICAiZm9sbG93aW5nX3VybCI6ICJodHRw
czovL2FwaS5naXRodWIuY29tL3VzZXJzL3dlYi1wbGF0Zm9ybS10ZXN0cy9mb2xsb3dpbmd7L290
aGVyX3VzZXJ9IiwKKyAgICAgICAgICAiZ2lzdHNfdXJsIjogImh0dHBzOi8vYXBpLmdpdGh1Yi5j
b20vdXNlcnMvd2ViLXBsYXRmb3JtLXRlc3RzL2dpc3Rzey9naXN0X2lkfSIsCisgICAgICAgICAg
InN0YXJyZWRfdXJsIjogImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vdXNlcnMvd2ViLXBsYXRmb3Jt
LXRlc3RzL3N0YXJyZWR7L293bmVyfXsvcmVwb30iLAorICAgICAgICAgICJzdWJzY3JpcHRpb25z
X3VybCI6ICJodHRwczovL2FwaS5naXRodWIuY29tL3VzZXJzL3dlYi1wbGF0Zm9ybS10ZXN0cy9z
dWJzY3JpcHRpb25zIiwKKyAgICAgICAgICAib3JnYW5pemF0aW9uc191cmwiOiAiaHR0cHM6Ly9h
cGkuZ2l0aHViLmNvbS91c2Vycy93ZWItcGxhdGZvcm0tdGVzdHMvb3JncyIsCisgICAgICAgICAg
InJlcG9zX3VybCI6ICJodHRwczovL2FwaS5naXRodWIuY29tL3VzZXJzL3dlYi1wbGF0Zm9ybS10
ZXN0cy9yZXBvcyIsCisgICAgICAgICAgImV2ZW50c191cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHVi
LmNvbS91c2Vycy93ZWItcGxhdGZvcm0tdGVzdHMvZXZlbnRzey9wcml2YWN5fSIsCisgICAgICAg
ICAgInJlY2VpdmVkX2V2ZW50c191cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS91c2Vycy93
ZWItcGxhdGZvcm0tdGVzdHMvcmVjZWl2ZWRfZXZlbnRzIiwKKyAgICAgICAgICAidHlwZSI6ICJP
cmdhbml6YXRpb24iLAorICAgICAgICAgICJzaXRlX2FkbWluIjogZmFsc2UKKyAgICAgICAgfSwK
KyAgICAgICAgImh0bWxfdXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxhdGZvcm0tdGVz
dHMvd3B0IiwKKyAgICAgICAgImRlc2NyaXB0aW9uIjogIlRlc3Qgc3VpdGVzIGZvciBXZWIgcGxh
dGZvcm0gc3BlY3Mg4oCUIGluY2x1ZGluZyBXSEFUV0csIFczQywgYW5kIG90aGVycyIsCisgICAg
ICAgICJmb3JrIjogZmFsc2UsCisgICAgICAgICJ1cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNv
bS9yZXBvcy93ZWItcGxhdGZvcm0tdGVzdHMvd3B0IiwKKyAgICAgICAgImZvcmtzX3VybCI6ICJo
dHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQvZm9ya3Mi
LAorICAgICAgICAia2V5c191cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy93ZWIt
cGxhdGZvcm0tdGVzdHMvd3B0L2tleXN7L2tleV9pZH0iLAorICAgICAgICAiY29sbGFib3JhdG9y
c191cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy93ZWItcGxhdGZvcm0tdGVzdHMv
d3B0L2NvbGxhYm9yYXRvcnN7L2NvbGxhYm9yYXRvcn0iLAorICAgICAgICAidGVhbXNfdXJsIjog
Imh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dwdC90ZWFt
cyIsCisgICAgICAgICJob29rc191cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy93
ZWItcGxhdGZvcm0tdGVzdHMvd3B0L2hvb2tzIiwKKyAgICAgICAgImlzc3VlX2V2ZW50c191cmwi
OiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy93ZWItcGxhdGZvcm0tdGVzdHMvd3B0L2lz
c3Vlcy9ldmVudHN7L251bWJlcn0iLAorICAgICAgICAiZXZlbnRzX3VybCI6ICJodHRwczovL2Fw
aS5naXRodWIuY29tL3JlcG9zL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQvZXZlbnRzIiwKKyAgICAg
ICAgImFzc2lnbmVlc191cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy93ZWItcGxh
dGZvcm0tdGVzdHMvd3B0L2Fzc2lnbmVlc3svdXNlcn0iLAorICAgICAgICAiYnJhbmNoZXNfdXJs
IjogImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dwdC9i
cmFuY2hlc3svYnJhbmNofSIsCisgICAgICAgICJ0YWdzX3VybCI6ICJodHRwczovL2FwaS5naXRo
dWIuY29tL3JlcG9zL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQvdGFncyIsCisgICAgICAgICJibG9i
c191cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy93ZWItcGxhdGZvcm0tdGVzdHMv
d3B0L2dpdC9ibG9ic3svc2hhfSIsCisgICAgICAgICJnaXRfdGFnc191cmwiOiAiaHR0cHM6Ly9h
cGkuZ2l0aHViLmNvbS9yZXBvcy93ZWItcGxhdGZvcm0tdGVzdHMvd3B0L2dpdC90YWdzey9zaGF9
IiwKKyAgICAgICAgImdpdF9yZWZzX3VybCI6ICJodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9z
L3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQvZ2l0L3JlZnN7L3NoYX0iLAorICAgICAgICAidHJlZXNf
dXJsIjogImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dw
dC9naXQvdHJlZXN7L3NoYX0iLAorICAgICAgICAic3RhdHVzZXNfdXJsIjogImh0dHBzOi8vYXBp
LmdpdGh1Yi5jb20vcmVwb3Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dwdC9zdGF0dXNlcy97c2hhfSIs
CisgICAgICAgICJsYW5ndWFnZXNfdXJsIjogImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3dwdC9sYW5ndWFnZXMiLAorICAgICAgICAic3RhcmdhemVyc191
cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy93ZWItcGxhdGZvcm0tdGVzdHMvd3B0
L3N0YXJnYXplcnMiLAorICAgICAgICAiY29udHJpYnV0b3JzX3VybCI6ICJodHRwczovL2FwaS5n
aXRodWIuY29tL3JlcG9zL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQvY29udHJpYnV0b3JzIiwKKyAg
ICAgICAgInN1YnNjcmliZXJzX3VybCI6ICJodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zL3dl
Yi1wbGF0Zm9ybS10ZXN0cy93cHQvc3Vic2NyaWJlcnMiLAorICAgICAgICAic3Vic2NyaXB0aW9u
X3VybCI6ICJodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zL3dlYi1wbGF0Zm9ybS10ZXN0cy93
cHQvc3Vic2NyaXB0aW9uIiwKKyAgICAgICAgImNvbW1pdHNfdXJsIjogImh0dHBzOi8vYXBpLmdp
dGh1Yi5jb20vcmVwb3Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dwdC9jb21taXRzey9zaGF9IiwKKyAg
ICAgICAgImdpdF9jb21taXRzX3VybCI6ICJodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zL3dl
Yi1wbGF0Zm9ybS10ZXN0cy93cHQvZ2l0L2NvbW1pdHN7L3NoYX0iLAorICAgICAgICAiY29tbWVu
dHNfdXJsIjogImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3dwdC9jb21tZW50c3svbnVtYmVyfSIsCisgICAgICAgICJpc3N1ZV9jb21tZW50X3VybCI6ICJo
dHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQvaXNzdWVz
L2NvbW1lbnRzey9udW1iZXJ9IiwKKyAgICAgICAgImNvbnRlbnRzX3VybCI6ICJodHRwczovL2Fw
aS5naXRodWIuY29tL3JlcG9zL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQvY29udGVudHMveytwYXRo
fSIsCisgICAgICAgICJjb21wYXJlX3VybCI6ICJodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9z
L3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQvY29tcGFyZS97YmFzZX0uLi57aGVhZH0iLAorICAgICAg
ICAibWVyZ2VzX3VybCI6ICJodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zL3dlYi1wbGF0Zm9y
bS10ZXN0cy93cHQvbWVyZ2VzIiwKKyAgICAgICAgImFyY2hpdmVfdXJsIjogImh0dHBzOi8vYXBp
LmdpdGh1Yi5jb20vcmVwb3Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dwdC97YXJjaGl2ZV9mb3JtYXR9
ey9yZWZ9IiwKKyAgICAgICAgImRvd25sb2Fkc191cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNv
bS9yZXBvcy93ZWItcGxhdGZvcm0tdGVzdHMvd3B0L2Rvd25sb2FkcyIsCisgICAgICAgICJpc3N1
ZXNfdXJsIjogImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3dwdC9pc3N1ZXN7L251bWJlcn0iLAorICAgICAgICAicHVsbHNfdXJsIjogImh0dHBzOi8vYXBp
LmdpdGh1Yi5jb20vcmVwb3Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dwdC9wdWxsc3svbnVtYmVyfSIs
CisgICAgICAgICJtaWxlc3RvbmVzX3VybCI6ICJodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9z
L3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQvbWlsZXN0b25lc3svbnVtYmVyfSIsCisgICAgICAgICJu
b3RpZmljYXRpb25zX3VybCI6ICJodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zL3dlYi1wbGF0
Zm9ybS10ZXN0cy93cHQvbm90aWZpY2F0aW9uc3s/c2luY2UsYWxsLHBhcnRpY2lwYXRpbmd9IiwK
KyAgICAgICAgImxhYmVsc191cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy93ZWIt
cGxhdGZvcm0tdGVzdHMvd3B0L2xhYmVsc3svbmFtZX0iLAorICAgICAgICAicmVsZWFzZXNfdXJs
IjogImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dwdC9y
ZWxlYXNlc3svaWR9IiwKKyAgICAgICAgImRlcGxveW1lbnRzX3VybCI6ICJodHRwczovL2FwaS5n
aXRodWIuY29tL3JlcG9zL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQvZGVwbG95bWVudHMiLAorICAg
ICAgICAiY3JlYXRlZF9hdCI6ICIyMDEyLTAzLTA0VDEyOjU4OjExWiIsCisgICAgICAgICJ1cGRh
dGVkX2F0IjogIjIwMTktMTEtMjVUMTU6NDA6NTlaIiwKKyAgICAgICAgInB1c2hlZF9hdCI6ICIy
MDE5LTExLTI1VDE1OjU0OjE4WiIsCisgICAgICAgICJnaXRfdXJsIjogImdpdDovL2dpdGh1Yi5j
b20vd2ViLXBsYXRmb3JtLXRlc3RzL3dwdC5naXQiLAorICAgICAgICAic3NoX3VybCI6ICJnaXRA
Z2l0aHViLmNvbTp3ZWItcGxhdGZvcm0tdGVzdHMvd3B0LmdpdCIsCisgICAgICAgICJjbG9uZV91
cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQuZ2l0IiwKKyAg
ICAgICAgInN2bl91cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9ybS10ZXN0cy93
cHQiLAorICAgICAgICAiaG9tZXBhZ2UiOiAiaHR0cHM6Ly93ZWItcGxhdGZvcm0tdGVzdHMub3Jn
LyIsCisgICAgICAgICJzaXplIjogMzI5Mjc4LAorICAgICAgICAic3RhcmdhemVyc19jb3VudCI6
IDI1MzYsCisgICAgICAgICJ3YXRjaGVyc19jb3VudCI6IDI1MzYsCisgICAgICAgICJsYW5ndWFn
ZSI6ICJIVE1MIiwKKyAgICAgICAgImhhc19pc3N1ZXMiOiB0cnVlLAorICAgICAgICAiaGFzX3By
b2plY3RzIjogdHJ1ZSwKKyAgICAgICAgImhhc19kb3dubG9hZHMiOiB0cnVlLAorICAgICAgICAi
aGFzX3dpa2kiOiB0cnVlLAorICAgICAgICAiaGFzX3BhZ2VzIjogdHJ1ZSwKKyAgICAgICAgImZv
cmtzX2NvdW50IjogMTgzNywKKyAgICAgICAgIm1pcnJvcl91cmwiOiBudWxsLAorICAgICAgICAi
YXJjaGl2ZWQiOiBmYWxzZSwKKyAgICAgICAgImRpc2FibGVkIjogZmFsc2UsCisgICAgICAgICJv
cGVuX2lzc3Vlc19jb3VudCI6IDE1NzYsCisgICAgICAgICJsaWNlbnNlIjogeworICAgICAgICAg
ICJrZXkiOiAib3RoZXIiLAorICAgICAgICAgICJuYW1lIjogIk90aGVyIiwKKyAgICAgICAgICAi
c3BkeF9pZCI6ICJOT0FTU0VSVElPTiIsCisgICAgICAgICAgInVybCI6IG51bGwsCisgICAgICAg
ICAgIm5vZGVfaWQiOiAiTURjNlRHbGpaVzV6WlRBPSIKKyAgICAgICAgfSwKKyAgICAgICAgImZv
cmtzIjogMTgzNywKKyAgICAgICAgIm9wZW5faXNzdWVzIjogMTU3NiwKKyAgICAgICAgIndhdGNo
ZXJzIjogMjUzNiwKKyAgICAgICAgImRlZmF1bHRfYnJhbmNoIjogIm1hc3RlciIKKyAgICAgIH0K
KyAgICB9LAorICAgICJfbGlua3MiOiB7CisgICAgICAic2VsZiI6IHsKKyAgICAgICAgImhyZWYi
OiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy93ZWItcGxhdGZvcm0tdGVzdHMvd3B0L3B1
bGxzLzIwMzc4IgorICAgICAgfSwKKyAgICAgICJodG1sIjogeworICAgICAgICAiaHJlZiI6ICJo
dHRwczovL2dpdGh1Yi5jb20vd2ViLXBsYXRmb3JtLXRlc3RzL3dwdC9wdWxsLzIwMzc4IgorICAg
ICAgfSwKKyAgICAgICJpc3N1ZSI6IHsKKyAgICAgICAgImhyZWYiOiAiaHR0cHM6Ly9hcGkuZ2l0
aHViLmNvbS9yZXBvcy93ZWItcGxhdGZvcm0tdGVzdHMvd3B0L2lzc3Vlcy8yMDM3OCIKKyAgICAg
IH0sCisgICAgICAiY29tbWVudHMiOiB7CisgICAgICAgICJocmVmIjogImh0dHBzOi8vYXBpLmdp
dGh1Yi5jb20vcmVwb3Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dwdC9pc3N1ZXMvMjAzNzgvY29tbWVu
dHMiCisgICAgICB9LAorICAgICAgInJldmlld19jb21tZW50cyI6IHsKKyAgICAgICAgImhyZWYi
OiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy93ZWItcGxhdGZvcm0tdGVzdHMvd3B0L3B1
bGxzLzIwMzc4L2NvbW1lbnRzIgorICAgICAgfSwKKyAgICAgICJyZXZpZXdfY29tbWVudCI6IHsK
KyAgICAgICAgImhyZWYiOiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy93ZWItcGxhdGZv
cm0tdGVzdHMvd3B0L3B1bGxzL2NvbW1lbnRzey9udW1iZXJ9IgorICAgICAgfSwKKyAgICAgICJj
b21taXRzIjogeworICAgICAgICAiaHJlZiI6ICJodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9z
L3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQvcHVsbHMvMjAzNzgvY29tbWl0cyIKKyAgICAgIH0sCisg
ICAgICAic3RhdHVzZXMiOiB7CisgICAgICAgICJocmVmIjogImh0dHBzOi8vYXBpLmdpdGh1Yi5j
b20vcmVwb3Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dwdC9zdGF0dXNlcy83ZGY4NGUzZjg3ZjA1ODYw
YTJiODZkMGI4MGRjM2ViMDZkOGU3MTAzIgorICAgICAgfQorICAgIH0sCisgICAgImF1dGhvcl9h
c3NvY2lhdGlvbiI6ICJDT0xMQUJPUkFUT1IiLAorICAgICJkcmFmdCI6IGZhbHNlLAorICAgICJt
ZXJnZWQiOiBmYWxzZSwKKyAgICAibWVyZ2VhYmxlIjogbnVsbCwKKyAgICAicmViYXNlYWJsZSI6
IG51bGwsCisgICAgIm1lcmdlYWJsZV9zdGF0ZSI6ICJ1bmtub3duIiwKKyAgICAibWVyZ2VkX2J5
IjogbnVsbCwKKyAgICAiY29tbWVudHMiOiAwLAorICAgICJyZXZpZXdfY29tbWVudHMiOiAwLAor
ICAgICJtYWludGFpbmVyX2Nhbl9tb2RpZnkiOiBmYWxzZSwKKyAgICAiY29tbWl0cyI6IDEsCisg
ICAgImFkZGl0aW9ucyI6IDQzMSwKKyAgICAiZGVsZXRpb25zIjogMCwKKyAgICAiY2hhbmdlZF9m
aWxlcyI6IDExCisgIH0sCisgICJiZWZvcmUiOiAiODY3NDI1MTFmYTM3ZTFlMmMxNjM1Yjc3NDMx
YmQ0Njk1OGVjZmI5MiIsCisgICJhZnRlciI6ICI3ZGY4NGUzZjg3ZjA1ODYwYTJiODZkMGI4MGRj
M2ViMDZkOGU3MTAzIiwKKyAgInJlcG9zaXRvcnkiOiB7CisgICAgImlkIjogMzYxODEzMywKKyAg
ICAibm9kZV9pZCI6ICJNREV3T2xKbGNHOXphWFJ2Y25rek5qRTRNVE16IiwKKyAgICAibmFtZSI6
ICJ3cHQiLAorICAgICJmdWxsX25hbWUiOiAid2ViLXBsYXRmb3JtLXRlc3RzL3dwdCIsCisgICAg
InByaXZhdGUiOiBmYWxzZSwKKyAgICAib3duZXIiOiB7CisgICAgICAibG9naW4iOiAid2ViLXBs
YXRmb3JtLXRlc3RzIiwKKyAgICAgICJpZCI6IDM3MjI2MjMzLAorICAgICAgIm5vZGVfaWQiOiAi
TURFeU9rOXlaMkZ1YVhwaGRHbHZiak0zTWpJMk1qTXoiLAorICAgICAgImF2YXRhcl91cmwiOiAi
aHR0cHM6Ly9hdmF0YXJzMC5naXRodWJ1c2VyY29udGVudC5jb20vdS8zNzIyNjIzMz92PTQiLAor
ICAgICAgImdyYXZhdGFyX2lkIjogIiIsCisgICAgICAidXJsIjogImh0dHBzOi8vYXBpLmdpdGh1
Yi5jb20vdXNlcnMvd2ViLXBsYXRmb3JtLXRlc3RzIiwKKyAgICAgICJodG1sX3VybCI6ICJodHRw
czovL2dpdGh1Yi5jb20vd2ViLXBsYXRmb3JtLXRlc3RzIiwKKyAgICAgICJmb2xsb3dlcnNfdXJs
IjogImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vdXNlcnMvd2ViLXBsYXRmb3JtLXRlc3RzL2ZvbGxv
d2VycyIsCisgICAgICAiZm9sbG93aW5nX3VybCI6ICJodHRwczovL2FwaS5naXRodWIuY29tL3Vz
ZXJzL3dlYi1wbGF0Zm9ybS10ZXN0cy9mb2xsb3dpbmd7L290aGVyX3VzZXJ9IiwKKyAgICAgICJn
aXN0c191cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS91c2Vycy93ZWItcGxhdGZvcm0tdGVz
dHMvZ2lzdHN7L2dpc3RfaWR9IiwKKyAgICAgICJzdGFycmVkX3VybCI6ICJodHRwczovL2FwaS5n
aXRodWIuY29tL3VzZXJzL3dlYi1wbGF0Zm9ybS10ZXN0cy9zdGFycmVkey9vd25lcn17L3JlcG99
IiwKKyAgICAgICJzdWJzY3JpcHRpb25zX3VybCI6ICJodHRwczovL2FwaS5naXRodWIuY29tL3Vz
ZXJzL3dlYi1wbGF0Zm9ybS10ZXN0cy9zdWJzY3JpcHRpb25zIiwKKyAgICAgICJvcmdhbml6YXRp
b25zX3VybCI6ICJodHRwczovL2FwaS5naXRodWIuY29tL3VzZXJzL3dlYi1wbGF0Zm9ybS10ZXN0
cy9vcmdzIiwKKyAgICAgICJyZXBvc191cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS91c2Vy
cy93ZWItcGxhdGZvcm0tdGVzdHMvcmVwb3MiLAorICAgICAgImV2ZW50c191cmwiOiAiaHR0cHM6
Ly9hcGkuZ2l0aHViLmNvbS91c2Vycy93ZWItcGxhdGZvcm0tdGVzdHMvZXZlbnRzey9wcml2YWN5
fSIsCisgICAgICAicmVjZWl2ZWRfZXZlbnRzX3VybCI6ICJodHRwczovL2FwaS5naXRodWIuY29t
L3VzZXJzL3dlYi1wbGF0Zm9ybS10ZXN0cy9yZWNlaXZlZF9ldmVudHMiLAorICAgICAgInR5cGUi
OiAiT3JnYW5pemF0aW9uIiwKKyAgICAgICJzaXRlX2FkbWluIjogZmFsc2UKKyAgICB9LAorICAg
ICJodG1sX3VybCI6ICJodHRwczovL2dpdGh1Yi5jb20vd2ViLXBsYXRmb3JtLXRlc3RzL3dwdCIs
CisgICAgImRlc2NyaXB0aW9uIjogIlRlc3Qgc3VpdGVzIGZvciBXZWIgcGxhdGZvcm0gc3BlY3Mg
4oCUIGluY2x1ZGluZyBXSEFUV0csIFczQywgYW5kIG90aGVycyIsCisgICAgImZvcmsiOiBmYWxz
ZSwKKyAgICAidXJsIjogImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3dwdCIsCisgICAgImZvcmtzX3VybCI6ICJodHRwczovL2FwaS5naXRodWIuY29tL3Jl
cG9zL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQvZm9ya3MiLAorICAgICJrZXlzX3VybCI6ICJodHRw
czovL2FwaS5naXRodWIuY29tL3JlcG9zL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQva2V5c3sva2V5
X2lkfSIsCisgICAgImNvbGxhYm9yYXRvcnNfdXJsIjogImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20v
cmVwb3Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dwdC9jb2xsYWJvcmF0b3Jzey9jb2xsYWJvcmF0b3J9
IiwKKyAgICAidGVhbXNfdXJsIjogImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3dwdC90ZWFtcyIsCisgICAgImhvb2tzX3VybCI6ICJodHRwczovL2FwaS5n
aXRodWIuY29tL3JlcG9zL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQvaG9va3MiLAorICAgICJpc3N1
ZV9ldmVudHNfdXJsIjogImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3dwdC9pc3N1ZXMvZXZlbnRzey9udW1iZXJ9IiwKKyAgICAiZXZlbnRzX3VybCI6ICJo
dHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQvZXZlbnRz
IiwKKyAgICAiYXNzaWduZWVzX3VybCI6ICJodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zL3dl
Yi1wbGF0Zm9ybS10ZXN0cy93cHQvYXNzaWduZWVzey91c2VyfSIsCisgICAgImJyYW5jaGVzX3Vy
bCI6ICJodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQv
YnJhbmNoZXN7L2JyYW5jaH0iLAorICAgICJ0YWdzX3VybCI6ICJodHRwczovL2FwaS5naXRodWIu
Y29tL3JlcG9zL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQvdGFncyIsCisgICAgImJsb2JzX3VybCI6
ICJodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQvZ2l0
L2Jsb2Jzey9zaGF9IiwKKyAgICAiZ2l0X3RhZ3NfdXJsIjogImh0dHBzOi8vYXBpLmdpdGh1Yi5j
b20vcmVwb3Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dwdC9naXQvdGFnc3svc2hhfSIsCisgICAgImdp
dF9yZWZzX3VybCI6ICJodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zL3dlYi1wbGF0Zm9ybS10
ZXN0cy93cHQvZ2l0L3JlZnN7L3NoYX0iLAorICAgICJ0cmVlc191cmwiOiAiaHR0cHM6Ly9hcGku
Z2l0aHViLmNvbS9yZXBvcy93ZWItcGxhdGZvcm0tdGVzdHMvd3B0L2dpdC90cmVlc3svc2hhfSIs
CisgICAgInN0YXR1c2VzX3VybCI6ICJodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zL3dlYi1w
bGF0Zm9ybS10ZXN0cy93cHQvc3RhdHVzZXMve3NoYX0iLAorICAgICJsYW5ndWFnZXNfdXJsIjog
Imh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dwdC9sYW5n
dWFnZXMiLAorICAgICJzdGFyZ2F6ZXJzX3VybCI6ICJodHRwczovL2FwaS5naXRodWIuY29tL3Jl
cG9zL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQvc3RhcmdhemVycyIsCisgICAgImNvbnRyaWJ1dG9y
c191cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy93ZWItcGxhdGZvcm0tdGVzdHMv
d3B0L2NvbnRyaWJ1dG9ycyIsCisgICAgInN1YnNjcmliZXJzX3VybCI6ICJodHRwczovL2FwaS5n
aXRodWIuY29tL3JlcG9zL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQvc3Vic2NyaWJlcnMiLAorICAg
ICJzdWJzY3JpcHRpb25fdXJsIjogImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3dwdC9zdWJzY3JpcHRpb24iLAorICAgICJjb21taXRzX3VybCI6ICJodHRw
czovL2FwaS5naXRodWIuY29tL3JlcG9zL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQvY29tbWl0c3sv
c2hhfSIsCisgICAgImdpdF9jb21taXRzX3VybCI6ICJodHRwczovL2FwaS5naXRodWIuY29tL3Jl
cG9zL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQvZ2l0L2NvbW1pdHN7L3NoYX0iLAorICAgICJjb21t
ZW50c191cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy93ZWItcGxhdGZvcm0tdGVz
dHMvd3B0L2NvbW1lbnRzey9udW1iZXJ9IiwKKyAgICAiaXNzdWVfY29tbWVudF91cmwiOiAiaHR0
cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy93ZWItcGxhdGZvcm0tdGVzdHMvd3B0L2lzc3Vlcy9j
b21tZW50c3svbnVtYmVyfSIsCisgICAgImNvbnRlbnRzX3VybCI6ICJodHRwczovL2FwaS5naXRo
dWIuY29tL3JlcG9zL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQvY29udGVudHMveytwYXRofSIsCisg
ICAgImNvbXBhcmVfdXJsIjogImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3dwdC9jb21wYXJlL3tiYXNlfS4uLntoZWFkfSIsCisgICAgIm1lcmdlc191cmwi
OiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy93ZWItcGxhdGZvcm0tdGVzdHMvd3B0L21l
cmdlcyIsCisgICAgImFyY2hpdmVfdXJsIjogImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3dwdC97YXJjaGl2ZV9mb3JtYXR9ey9yZWZ9IiwKKyAgICAiZG93
bmxvYWRzX3VybCI6ICJodHRwczovL2FwaS5naXRodWIuY29tL3JlcG9zL3dlYi1wbGF0Zm9ybS10
ZXN0cy93cHQvZG93bmxvYWRzIiwKKyAgICAiaXNzdWVzX3VybCI6ICJodHRwczovL2FwaS5naXRo
dWIuY29tL3JlcG9zL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQvaXNzdWVzey9udW1iZXJ9IiwKKyAg
ICAicHVsbHNfdXJsIjogImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3dwdC9wdWxsc3svbnVtYmVyfSIsCisgICAgIm1pbGVzdG9uZXNfdXJsIjogImh0dHBz
Oi8vYXBpLmdpdGh1Yi5jb20vcmVwb3Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dwdC9taWxlc3RvbmVz
ey9udW1iZXJ9IiwKKyAgICAibm90aWZpY2F0aW9uc191cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHVi
LmNvbS9yZXBvcy93ZWItcGxhdGZvcm0tdGVzdHMvd3B0L25vdGlmaWNhdGlvbnN7P3NpbmNlLGFs
bCxwYXJ0aWNpcGF0aW5nfSIsCisgICAgImxhYmVsc191cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHVi
LmNvbS9yZXBvcy93ZWItcGxhdGZvcm0tdGVzdHMvd3B0L2xhYmVsc3svbmFtZX0iLAorICAgICJy
ZWxlYXNlc191cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy93ZWItcGxhdGZvcm0t
dGVzdHMvd3B0L3JlbGVhc2Vzey9pZH0iLAorICAgICJkZXBsb3ltZW50c191cmwiOiAiaHR0cHM6
Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy93ZWItcGxhdGZvcm0tdGVzdHMvd3B0L2RlcGxveW1lbnRz
IiwKKyAgICAiY3JlYXRlZF9hdCI6ICIyMDEyLTAzLTA0VDEyOjU4OjExWiIsCisgICAgInVwZGF0
ZWRfYXQiOiAiMjAxOS0xMS0yNVQxNTo0MDo1OVoiLAorICAgICJwdXNoZWRfYXQiOiAiMjAxOS0x
MS0yNVQxNTo1NDoxOFoiLAorICAgICJnaXRfdXJsIjogImdpdDovL2dpdGh1Yi5jb20vd2ViLXBs
YXRmb3JtLXRlc3RzL3dwdC5naXQiLAorICAgICJzc2hfdXJsIjogImdpdEBnaXRodWIuY29tOndl
Yi1wbGF0Zm9ybS10ZXN0cy93cHQuZ2l0IiwKKyAgICAiY2xvbmVfdXJsIjogImh0dHBzOi8vZ2l0
aHViLmNvbS93ZWItcGxhdGZvcm0tdGVzdHMvd3B0LmdpdCIsCisgICAgInN2bl91cmwiOiAiaHR0
cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQiLAorICAgICJob21lcGFnZSI6
ICJodHRwczovL3dlYi1wbGF0Zm9ybS10ZXN0cy5vcmcvIiwKKyAgICAic2l6ZSI6IDMyOTI3OCwK
KyAgICAic3RhcmdhemVyc19jb3VudCI6IDI1MzYsCisgICAgIndhdGNoZXJzX2NvdW50IjogMjUz
NiwKKyAgICAibGFuZ3VhZ2UiOiAiSFRNTCIsCisgICAgImhhc19pc3N1ZXMiOiB0cnVlLAorICAg
ICJoYXNfcHJvamVjdHMiOiB0cnVlLAorICAgICJoYXNfZG93bmxvYWRzIjogdHJ1ZSwKKyAgICAi
aGFzX3dpa2kiOiB0cnVlLAorICAgICJoYXNfcGFnZXMiOiB0cnVlLAorICAgICJmb3Jrc19jb3Vu
dCI6IDE4MzcsCisgICAgIm1pcnJvcl91cmwiOiBudWxsLAorICAgICJhcmNoaXZlZCI6IGZhbHNl
LAorICAgICJkaXNhYmxlZCI6IGZhbHNlLAorICAgICJvcGVuX2lzc3Vlc19jb3VudCI6IDE1NzYs
CisgICAgImxpY2Vuc2UiOiB7CisgICAgICAia2V5IjogIm90aGVyIiwKKyAgICAgICJuYW1lIjog
Ik90aGVyIiwKKyAgICAgICJzcGR4X2lkIjogIk5PQVNTRVJUSU9OIiwKKyAgICAgICJ1cmwiOiBu
dWxsLAorICAgICAgIm5vZGVfaWQiOiAiTURjNlRHbGpaVzV6WlRBPSIKKyAgICB9LAorICAgICJm
b3JrcyI6IDE4MzcsCisgICAgIm9wZW5faXNzdWVzIjogMTU3NiwKKyAgICAid2F0Y2hlcnMiOiAy
NTM2LAorICAgICJkZWZhdWx0X2JyYW5jaCI6ICJtYXN0ZXIiCisgIH0sCisgICJvcmdhbml6YXRp
b24iOiB7CisgICAgImxvZ2luIjogIndlYi1wbGF0Zm9ybS10ZXN0cyIsCisgICAgImlkIjogMzcy
MjYyMzMsCisgICAgIm5vZGVfaWQiOiAiTURFeU9rOXlaMkZ1YVhwaGRHbHZiak0zTWpJMk1qTXoi
LAorICAgICJ1cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9vcmdzL3dlYi1wbGF0Zm9ybS10
ZXN0cyIsCisgICAgInJlcG9zX3VybCI6ICJodHRwczovL2FwaS5naXRodWIuY29tL29yZ3Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3JlcG9zIiwKKyAgICAiZXZlbnRzX3VybCI6ICJodHRwczovL2FwaS5n
aXRodWIuY29tL29yZ3Mvd2ViLXBsYXRmb3JtLXRlc3RzL2V2ZW50cyIsCisgICAgImhvb2tzX3Vy
bCI6ICJodHRwczovL2FwaS5naXRodWIuY29tL29yZ3Mvd2ViLXBsYXRmb3JtLXRlc3RzL2hvb2tz
IiwKKyAgICAiaXNzdWVzX3VybCI6ICJodHRwczovL2FwaS5naXRodWIuY29tL29yZ3Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2lzc3VlcyIsCisgICAgIm1lbWJlcnNfdXJsIjogImh0dHBzOi8vYXBpLmdp
dGh1Yi5jb20vb3Jncy93ZWItcGxhdGZvcm0tdGVzdHMvbWVtYmVyc3svbWVtYmVyfSIsCisgICAg
InB1YmxpY19tZW1iZXJzX3VybCI6ICJodHRwczovL2FwaS5naXRodWIuY29tL29yZ3Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3B1YmxpY19tZW1iZXJzey9tZW1iZXJ9IiwKKyAgICAiYXZhdGFyX3VybCI6
ICJodHRwczovL2F2YXRhcnMwLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzM3MjI2MjMzP3Y9NCIs
CisgICAgImRlc2NyaXB0aW9uIjogIiIKKyAgfSwKKyAgInNlbmRlciI6IHsKKyAgICAibG9naW4i
OiAiY2hyb21pdW0td3B0LWV4cG9ydC1ib3QiLAorICAgICJpZCI6IDI1NzUyODkyLAorICAgICJu
b2RlX2lkIjogIk1EUTZWWE5sY2pJMU56VXlPRGt5IiwKKyAgICAiYXZhdGFyX3VybCI6ICJodHRw
czovL2F2YXRhcnMxLmdpdGh1YnVzZXJjb250ZW50LmNvbS91LzI1NzUyODkyP3Y9NCIsCisgICAg
ImdyYXZhdGFyX2lkIjogIiIsCisgICAgInVybCI6ICJodHRwczovL2FwaS5naXRodWIuY29tL3Vz
ZXJzL2Nocm9taXVtLXdwdC1leHBvcnQtYm90IiwKKyAgICAiaHRtbF91cmwiOiAiaHR0cHM6Ly9n
aXRodWIuY29tL2Nocm9taXVtLXdwdC1leHBvcnQtYm90IiwKKyAgICAiZm9sbG93ZXJzX3VybCI6
ICJodHRwczovL2FwaS5naXRodWIuY29tL3VzZXJzL2Nocm9taXVtLXdwdC1leHBvcnQtYm90L2Zv
bGxvd2VycyIsCisgICAgImZvbGxvd2luZ191cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS91
c2Vycy9jaHJvbWl1bS13cHQtZXhwb3J0LWJvdC9mb2xsb3dpbmd7L290aGVyX3VzZXJ9IiwKKyAg
ICAiZ2lzdHNfdXJsIjogImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vdXNlcnMvY2hyb21pdW0td3B0
LWV4cG9ydC1ib3QvZ2lzdHN7L2dpc3RfaWR9IiwKKyAgICAic3RhcnJlZF91cmwiOiAiaHR0cHM6
Ly9hcGkuZ2l0aHViLmNvbS91c2Vycy9jaHJvbWl1bS13cHQtZXhwb3J0LWJvdC9zdGFycmVkey9v
d25lcn17L3JlcG99IiwKKyAgICAic3Vic2NyaXB0aW9uc191cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0
aHViLmNvbS91c2Vycy9jaHJvbWl1bS13cHQtZXhwb3J0LWJvdC9zdWJzY3JpcHRpb25zIiwKKyAg
ICAib3JnYW5pemF0aW9uc191cmwiOiAiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS91c2Vycy9jaHJv
bWl1bS13cHQtZXhwb3J0LWJvdC9vcmdzIiwKKyAgICAicmVwb3NfdXJsIjogImh0dHBzOi8vYXBp
LmdpdGh1Yi5jb20vdXNlcnMvY2hyb21pdW0td3B0LWV4cG9ydC1ib3QvcmVwb3MiLAorICAgICJl
dmVudHNfdXJsIjogImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vdXNlcnMvY2hyb21pdW0td3B0LWV4
cG9ydC1ib3QvZXZlbnRzey9wcml2YWN5fSIsCisgICAgInJlY2VpdmVkX2V2ZW50c191cmwiOiAi
aHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS91c2Vycy9jaHJvbWl1bS13cHQtZXhwb3J0LWJvdC9yZWNl
aXZlZF9ldmVudHMiLAorICAgICJ0eXBlIjogIlVzZXIiLAorICAgICJzaXRlX2FkbWluIjogZmFs
c2UKKyAgfQorfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy9jaS90Yy90ZXN0ZGF0YS93M2MtaW1wb3J0LmxvZyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvY2kvdGMvdGVzdGRhdGEv
dzNjLWltcG9ydC5sb2cKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOTE2ZWZkYzllMWViYjBmNDc1YjJkN2NjOTdhY2I1
MWExM2E2MzBkMwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvY2kvdGMvdGVzdGRhdGEvdzNjLWltcG9ydC5sb2cKQEAg
LTAsMCArMSwyMCBAQAorVGhlIHRlc3RzIGluIHRoaXMgZGlyZWN0b3J5IHdlcmUgaW1wb3J0ZWQg
ZnJvbSB0aGUgVzNDIHJlcG9zaXRvcnkuCitEbyBOT1QgbW9kaWZ5IHRoZXNlIHRlc3RzIGRpcmVj
dGx5IGluIFdlYktpdC4KK0luc3RlYWQsIGNyZWF0ZSBhIHB1bGwgcmVxdWVzdCBvbiB0aGUgV1BU
IGdpdGh1YjoKKwlodHRwczovL2dpdGh1Yi5jb20vd2ViLXBsYXRmb3JtLXRlc3RzL3dwdAorCitU
aGVuIHJ1biB0aGUgVG9vbHMvU2NyaXB0cy9pbXBvcnQtdzNjLXRlc3RzIGluIFdlYktpdCB0byBy
ZWltcG9ydAorCitEbyBOT1QgbW9kaWZ5IG9yIHJlbW92ZSB0aGlzIGZpbGUuCisKKy0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLQorUHJvcGVydGllcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgorTm9uZQorUHJv
cGVydHkgdmFsdWVzIHJlcXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6CitOb25lCistLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0KK0xpc3Qgb2YgZmlsZXM6CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy9jaS90Yy90ZXN0ZGF0YS9lcG9jaHNfZGFpbHlfcHVzaF9ldmVudC5q
c29uCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9j
aS90Yy90ZXN0ZGF0YS9tYXN0ZXJfcHVzaF9ldmVudC5qc29uCisvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9jaS90Yy90ZXN0ZGF0YS9wcl9ldmVudC5q
c29uCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9j
aS90Yy90ZXN0ZGF0YS9wcl9ldmVudF90ZXN0c19hZmZlY3RlZC5qc29uCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2NpL3RjL3Rl
c3RzL3Rlc3RfZGVjaXNpb24ucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL2NpL3RjL3Rlc3RzL3Rlc3RfZGVjaXNpb24ucHkKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
NDI1YjU4MjllZGQzNjBiMTQ1YWNlYmYyNDlmNGIxYWMzZjZkMTM5NgotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvY2kv
dGMvdGVzdHMvdGVzdF9kZWNpc2lvbi5weQpAQCAtMCwwICsxLDU0IEBACitpbXBvcnQgbW9jawor
aW1wb3J0IHB5dGVzdAorCitmcm9tIHRvb2xzLmNpLnRjIGltcG9ydCBkZWNpc2lvbgorZnJvbSBz
aXggaW1wb3J0IGl0ZXJpdGVtcworCisKK0BweXRlc3QubWFyay5wYXJhbWV0cml6ZSgicnVuX2pv
YnMsdGFza3MsZXhwZWN0ZWQiLCBbCisgICAgKFtdLCB7InRhc2stbm8tc2NoZWR1bGUtaWYiOiB7
fX0sIFsidGFzay1uby1zY2hlZHVsZS1pZiJdKSwKKyAgICAoW10sIHsidGFzay1zY2hlZHVsZS1p
Zi1uby1ydW4tam9iIjogeyJzY2hlZHVsZS1pZiI6IHt9fX0sIFtdKSwKKyAgICAoWyJqb2IiXSwK
KyAgICAgeyJqb2ItcHJlc2VudCI6IHsic2NoZWR1bGUtaWYiOiB7InJ1bi1qb2IiOiBbIm90aGVy
LWpvYiIsICJqb2IiXX19fSwKKyAgICAgWyJqb2ItcHJlc2VudCJdKSwKKyAgICAoWyJqb2IiXSwg
eyJqb2ItbWlzc2luZyI6IHsic2NoZWR1bGUtaWYiOiB7InJ1bi1qb2IiOiBbIm90aGVyLWpvYiJd
fX19LCBbXSksCisgICAgKFsiYWxsIl0sIHsiam9iLWFsbCI6IHsic2NoZWR1bGUtaWYiOiB7InJ1
bi1qb2IiOiBbIm90aGVyLWpvYiJdfX19LCBbImpvYi1hbGwiXSksCisgICAgKFsiam9iIl0sCisg
ICAgIHsiam9iLTEiOiB7InNjaGVkdWxlLWlmIjogeyJydW4tam9iIjogWyJqb2IiXX19LAorICAg
ICAgImpvYi0yIjogeyJzY2hlZHVsZS1pZiI6IHsicnVuLWpvYiI6IFsib3RoZXItam9iIl19fX0s
CisgICAgIFsiam9iLTEiXSksCitdKQorZGVmIHRlc3RfZmlsdGVyX3NjaGVkdWxlX2lmKHJ1bl9q
b2JzLCB0YXNrcywgZXhwZWN0ZWQpOgorICAgIHdpdGggbW9jay5wYXRjaCgidG9vbHMuY2kudGMu
ZGVjaXNpb24uZ2V0X3J1bl9qb2JzIiwKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuX3ZhbHVl
PXJ1bl9qb2JzKSBhcyBnZXRfcnVuX2pvYnM6CisgICAgICAgIGFzc2VydCAoZGVjaXNpb24uZmls
dGVyX3NjaGVkdWxlX2lmKHt9LCB0YXNrcykgPT0KKyAgICAgICAgICAgICAgICB7bmFtZTogdGFz
a3NbbmFtZV0gZm9yIG5hbWUgaW4gZXhwZWN0ZWR9KQorICAgICAgICBnZXRfcnVuX2pvYnMuY2Fs
bF9jb3VudCBpbiAoMCwgMSkKKworCitAcHl0ZXN0Lm1hcmsucGFyYW1ldHJpemUoIm1zZyxleHBl
Y3RlZCIsIFsKKyAgICAoIlNvbWUgaW5pdGlhbCBsaW5lXG5cbnRjLWpvYnM6Zm9vLGJhciIsIHsi
Zm9vIiwgImJhciJ9KSwKKyAgICAoIlNvbWUgaW5pdGlhbCBsaW5lXG5cbnRjLWpvYnM6Zm9vLCBi
YXIiLCB7ImZvbyIsICJiYXIifSksCisgICAgKCJ0Yy1qb2JzOmZvbywgYmFyICAgXG5iYXoiLCB7
ImZvbyIsICJiYXIifSksCisgICAgKCJ0Yy1qb2JzOmFsbCIsIHsiYWxsIn0pLAorICAgICgiIiwg
c2V0KCkpLAorICAgICgidGMtam9iczpmb29cbnRjLWpvYnM6YmFyIiwgeyJmb28ifSldKQorQHB5
dGVzdC5tYXJrLnBhcmFtZXRyaXplKCJldmVudCIsIFsKKyAgICB7ImNvbW1pdHMiOiBbeyJtZXNz
YWdlIjogIjxtZXNzYWdlPiJ9XX0sCisgICAgeyJwdWxsX3JlcXVlc3QiOiB7ImJvZHkiOiAiPG1l
c3NhZ2U+In19CitdKQorZGVmIHRlc3RfZXh0cmFfam9ic19wcihtc2csIGV4cGVjdGVkLCBldmVu
dCk6CisgICAgZGVmIHN1YihvYmopOgorICAgICAgICAiIiJDb3B5IG9iaiwgZXhjZXB0IGlmIGl0
J3MgYSBzdHJpbmcgd2l0aCB0aGUgdmFsdWUgPG1lc3NhZ2U+CisgICAgICAgIHJlcGxhY2UgaXQg
d2l0aCB0aGUgdmFsdWUgb2YgdGhlIG1zZyBhcmd1bWVudCIiIgorICAgICAgICBpZiBpc2luc3Rh
bmNlKG9iaiwgZGljdCk6CisgICAgICAgICAgICByZXR1cm4ge2tleTogc3ViKHZhbHVlKSBmb3Ig
KGtleSwgdmFsdWUpIGluIGl0ZXJpdGVtcyhvYmopfQorICAgICAgICBlbGlmIGlzaW5zdGFuY2Uo
b2JqLCBsaXN0KToKKyAgICAgICAgICAgIHJldHVybiBbc3ViKHZhbHVlKSBmb3IgdmFsdWUgaW4g
b2JqXQorICAgICAgICBlbGlmIG9iaiA9PSAiPG1lc3NhZ2U+IjoKKyAgICAgICAgICAgIHJldHVy
biBtc2cKKyAgICAgICAgcmV0dXJuIG9iagorCisgICAgZXZlbnQgPSBzdWIoZXZlbnQpCisKKyAg
ICBhc3NlcnQgZGVjaXNpb24uZ2V0X2V4dHJhX2pvYnMoZXZlbnQpID09IGV4cGVjdGVkCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L2NpL3RjL3Rlc3RzL3Rlc3RfdGFza2dyYXBoLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9jaS90Yy90ZXN0cy90ZXN0X3Rhc2tncmFwaC5weQpu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi5kZDg1MzViYjY0NzBmZjkxOTI1MTk3M2IwNzNkMjQ0ODllZGZmZjhiCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy9jaS90Yy90ZXN0cy90ZXN0X3Rhc2tncmFwaC5weQpAQCAtMCwwICsxLDE0NiBAQAor
aW1wb3J0IHB5dGVzdAoraW1wb3J0IHlhbWwKKworZnJvbSB0b29scy5jaS50YyBpbXBvcnQgdGFz
a2dyYXBoCisKK0BweXRlc3QubWFyay5wYXJhbWV0cml6ZSgiZGF0YSwgdXBkYXRlX2RhdGEsIGV4
cGVjdGVkIiwgWworICAgICh7ImEiOiAxfSwgeyJiIjogMn0sIHsiYSI6IDEsICJiIjogMn0pLAor
ICAgICh7ImEiOiAxfSwgeyJhIjogMn0sIHsiYSI6IDJ9KSwKKyAgICAoeyJhIjogWzFdfSwgeyJh
IjogWzJdfSwgeyJhIjogWzEsIDJdfSksCisgICAgKHsiYSI6IHsiYiI6IDEsICJjIjogMn19LCB7
ImEiOiB7ImIiOiAyLCAiZCI6IDN9fSwgeyJhIjogeyJiIjogMiwgImMiOiAyLCAiZCI6IDN9fSks
CisgICAgKHsiYSI6IHsiYiI6IFsxXX19LCB7ImEiOiB7ImIiOiBbMl19fSwgeyJhIjogeyJiIjog
WzEsIDJdfX0pLAorXQorKQorZGVmIHRlc3RfdXBkYXRlX3JlY3Vyc2l2ZShkYXRhLCB1cGRhdGVf
ZGF0YSwgZXhwZWN0ZWQpOgorICAgIHRhc2tncmFwaC51cGRhdGVfcmVjdXJzaXZlKGRhdGEsIHVw
ZGF0ZV9kYXRhKQorICAgIGFzc2VydCBkYXRhID09IGV4cGVjdGVkCisKKworZGVmIHRlc3RfdXNl
KCk6CisgICAgZGF0YSA9ICIiIgorY29tcG9uZW50czoKKyAgY29tcG9uZW50MToKKyAgICBhOiAx
CisgICAgYjogWzFdCisgICAgYzogImMiCisgIGNvbXBvbmVudDI6CisgICAgYTogMgorICAgIGI6
IFsyXQorICAgIGQ6ICJkIgordGFza3M6CisgIC0gdGFzazE6CisgICAgICB1c2U6CisgICAgICAg
LSBjb21wb25lbnQxCisgICAgICAgLSBjb21wb25lbnQyCisgICAgICBiOiBbM10KKyAgICAgIGM6
ICJlIgorIiIiCisgICAgdGFza3NfZGF0YSA9IHlhbWwuc2FmZV9sb2FkKGRhdGEpCisgICAgYXNz
ZXJ0IHRhc2tncmFwaC5sb2FkX3Rhc2tzKHRhc2tzX2RhdGEpID09IHsKKyAgICAgICAgInRhc2sx
IjogeworICAgICAgICAgICAgImEiOiAyLAorICAgICAgICAgICAgImIiOiBbMSwyLDNdLAorICAg
ICAgICAgICAgImMiOiAiZSIsCisgICAgICAgICAgICAiZCI6ICJkIiwKKyAgICAgICAgICAgICJu
YW1lIjogInRhc2sxIgorICAgICAgICB9CisgICAgfQorCisKK2RlZiB0ZXN0X3ZhcigpOgorICAg
IGRhdGEgPSAiIiIKK2NvbXBvbmVudHM6CisgIGNvbXBvbmVudDE6CisgICAgYTogJHt2YXJzLnZh
bHVlfQordGFza3M6CisgIC0gdGFzazE6CisgICAgICB1c2U6CisgICAgICAgLSBjb21wb25lbnQx
CisgICAgICB2YXJzOgorICAgICAgICB2YWx1ZTogMQorIiIiCisgICAgdGFza3NfZGF0YSA9IHlh
bWwuc2FmZV9sb2FkKGRhdGEpCisgICAgYXNzZXJ0IHRhc2tncmFwaC5sb2FkX3Rhc2tzKHRhc2tz
X2RhdGEpID09IHsKKyAgICAgICAgInRhc2sxIjogeworICAgICAgICAgICAgImEiOiAiMSIsCisg
ICAgICAgICAgICAidmFycyI6IHsidmFsdWUiOiAxfSwKKyAgICAgICAgICAgICJuYW1lIjogInRh
c2sxIgorICAgICAgICB9CisgICAgfQorCisKK2RlZiB0ZXN0X21hcCgpOgorICAgIGRhdGEgPSAi
IiIKK2NvbXBvbmVudHM6IHt9Cit0YXNrczoKKyAtICRtYXA6CisgICAgIGZvcjoKKyAgICAgICAt
IHZhcnM6CisgICAgICAgICAgIGE6IDEKKyAgICAgICAgIGI6IFsxXQorICAgICAgIC0gdmFyczoK
KyAgICAgICAgICAgYTogMgorICAgICAgICAgYjogWzJdCisgICAgIGRvOgorICAgICAgIC0gdGFz
azEtJHt2YXJzLmF9OgorICAgICAgICAgICBhOiAke3ZhcnMuYX0KKyAgICAgICAgICAgYjogWzNd
CisgICAgICAgLSB0YXNrMi0ke3ZhcnMuYX06CisgICAgICAgICAgIGE6ICR7dmFycy5hfQorICAg
ICAgICAgICBiOiBbNF0KKyIiIgorICAgIHRhc2tzX2RhdGEgPSB5YW1sLnNhZmVfbG9hZChkYXRh
KQorICAgIGFzc2VydCB0YXNrZ3JhcGgubG9hZF90YXNrcyh0YXNrc19kYXRhKSA9PSB7CisgICAg
ICAgICJ0YXNrMS0xIjogeworICAgICAgICAgICAgImEiOiAiMSIsCisgICAgICAgICAgICAiYiI6
IFsxLCAzXSwKKyAgICAgICAgICAgICJ2YXJzIjogeyJhIjogMX0sCisgICAgICAgICAgICAibmFt
ZSI6ICJ0YXNrMS0xIgorICAgICAgICB9LAorICAgICAgICAidGFzazEtMiI6IHsKKyAgICAgICAg
ICAgICJhIjogIjIiLAorICAgICAgICAgICAgImIiOiBbMiwgM10sCisgICAgICAgICAgICAidmFy
cyI6IHsiYSI6IDJ9LAorICAgICAgICAgICAgIm5hbWUiOiAidGFzazEtMiIKKyAgICAgICAgfSwK
KyAgICAgICAgInRhc2syLTEiOiB7CisgICAgICAgICAgICAiYSI6ICIxIiwKKyAgICAgICAgICAg
ICJiIjogWzEsIDRdLAorICAgICAgICAgICAgInZhcnMiOiB7ImEiOiAxfSwKKyAgICAgICAgICAg
ICJuYW1lIjogInRhc2syLTEiCisgICAgICAgIH0sCisgICAgICAgICJ0YXNrMi0yIjogeworICAg
ICAgICAgICAgImEiOiAiMiIsCisgICAgICAgICAgICAiYiI6IFsyLCA0XSwKKyAgICAgICAgICAg
ICJ2YXJzIjogeyJhIjogMn0sCisgICAgICAgICAgICAibmFtZSI6ICJ0YXNrMi0yIgorICAgICAg
ICB9LAorCisgICAgfQorCisKK2RlZiB0ZXN0X2NodW5rcygpOgorICAgIGRhdGEgPSAiIiIKK2Nv
bXBvbmVudHM6IHt9Cit0YXNrczoKKyAgLSB0YXNrMToKKyAgICAgIG5hbWU6IHRhc2sxLSR7Y2h1
bmtzLmlkfQorICAgICAgY2h1bmtzOiAyCisiIiIKKyAgICB0YXNrc19kYXRhID0geWFtbC5zYWZl
X2xvYWQoZGF0YSkKKyAgICBhc3NlcnQgdGFza2dyYXBoLmxvYWRfdGFza3ModGFza3NfZGF0YSkg
PT0geworICAgICAgICAidGFzazEtMSI6IHsKKyAgICAgICAgICAgICJuYW1lIjogInRhc2sxLTEi
LAorICAgICAgICAgICAgImNodW5rcyI6IHsKKyAgICAgICAgICAgICAgICAiaWQiOiAxLAorICAg
ICAgICAgICAgICAgICJ0b3RhbCI6IDIKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSwKKyAgICAg
ICAgInRhc2sxLTIiOiB7CisgICAgICAgICAgICAibmFtZSI6ICJ0YXNrMS0yIiwKKyAgICAgICAg
ICAgICJjaHVua3MiOiB7CisgICAgICAgICAgICAgICAgImlkIjogMiwKKyAgICAgICAgICAgICAg
ICAidG90YWwiOiAyCisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2NpL3Rj
L3Rlc3RzL3Rlc3RfdmFsaWQucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL2NpL3RjL3Rlc3RzL3Rlc3RfdmFsaWQucHkKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDZj
YmZiYTRlMmNiNjk0ODhjZTU4NWQ0ZGI5MDY0ZGNhYTVmZTZmYQotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvY2kvdGMv
dGVzdHMvdGVzdF92YWxpZC5weQpAQCAtMCwwICsxLDIyMSBAQAoraW1wb3J0IGpzb24KK2ltcG9y
dCBvcworZnJvbSBpbyBpbXBvcnQgb3BlbgorCitpbXBvcnQganNvbmUKK2ltcG9ydCBtb2NrCitp
bXBvcnQgcHl0ZXN0CitpbXBvcnQgcmVxdWVzdHMKK2ltcG9ydCBzeXMKK2ltcG9ydCB5YW1sCitm
cm9tIGpzb25zY2hlbWEgaW1wb3J0IHZhbGlkYXRlCisKK2Zyb20gdG9vbHMuY2kudGMgaW1wb3J0
IGRlY2lzaW9uCisKK2hlcmUgPSBvcy5wYXRoLmRpcm5hbWUoX19maWxlX18pCityb290ID0gb3Mu
cGF0aC5hYnNwYXRoKG9zLnBhdGguam9pbihoZXJlLCAiLi4iLCAiLi4iLCAiLi4iLCAiLi4iKSkK
KworCitkZWYgZGF0YV9wYXRoKGZpbGVuYW1lKToKKyAgICByZXR1cm4gb3MucGF0aC5qb2luKGhl
cmUsICIuLiIsICJ0ZXN0ZGF0YSIsIGZpbGVuYW1lKQorCisKK0BweXRlc3QubWFyay54ZmFpbChz
eXMudmVyc2lvbl9pbmZvLm1ham9yID09IDIsCisgICAgICAgICAgICAgICAgICAgcmVhc29uPSJ0
YXNrY2x1c3RlciBsaWJyYXJ5IGhhcyBhbiBlbmNvZGluZyBidWcgIgorICAgICAgICAgICAgICAg
ICAgICJodHRwczovL2dpdGh1Yi5jb20vdGFza2NsdXN0ZXIvanNvbi1lL2lzc3Vlcy8zMzgiKQor
ZGVmIHRlc3RfdmVyaWZ5X3Rhc2tjbHVzdGVyX3ltbCgpOgorICAgICIiIlZlcmlmeSB0aGF0IHRo
ZSBqc29uLWUgaW4gdGhlIC50YXNrY2x1c3Rlci55bWwgaXMgdmFsaWQiIiIKKyAgICB3aXRoIG9w
ZW4ob3MucGF0aC5qb2luKHJvb3QsICIudGFza2NsdXN0ZXIueW1sIiksIGVuY29kaW5nPSJ1dGY4
IikgYXMgZjoKKyAgICAgICAgdGVtcGxhdGUgPSB5YW1sLnNhZmVfbG9hZChmKQorCisgICAgZXZl
bnRzID0gWygicHJfZXZlbnQuanNvbiIsICJnaXRodWItcHVsbC1yZXF1ZXN0IiwgIlB1bGwgUmVx
dWVzdCIpLAorICAgICAgICAgICAgICAoIm1hc3Rlcl9wdXNoX2V2ZW50Lmpzb24iLCAiZ2l0aHVi
LXB1c2giLCAiUHVzaCB0byBtYXN0ZXIiKV0KKworICAgIGZvciBmaWxlbmFtZSwgdGFza3NfZm9y
LCB0aXRsZSBpbiBldmVudHM6CisgICAgICAgIHdpdGggb3BlbihkYXRhX3BhdGgoZmlsZW5hbWUp
LCBlbmNvZGluZz0idXRmOCIpIGFzIGY6CisgICAgICAgICAgICBldmVudCA9IGpzb24ubG9hZChm
KQorCisgICAgICAgIGNvbnRleHQgPSB7InRhc2tzX2ZvciI6IHRhc2tzX2ZvciwKKyAgICAgICAg
ICAgICAgICAgICAiZXZlbnQiOiBldmVudCwKKyAgICAgICAgICAgICAgICAgICAiYXNfc2x1Z2lk
IjogbGFtYmRhIHg6IHh9CisKKyAgICAgICAganNvbmUucmVuZGVyKHRlbXBsYXRlLCBjb250ZXh0
KQorCisKK2RlZiB0ZXN0X3ZlcmlmeV9wYXlsb2FkKCk6CisgICAgIiIiVmVyaWZ5IHRoYXQgdGhl
IGRlY2lzaW9uIHRhc2sgcHJvZHVjZXMgdGFza3Mgd2l0aCBhIHZhbGlkIHBheWxvYWQiIiIKKyAg
ICBmcm9tIHRvb2xzLmNpLnRjLmRlY2lzaW9uIGltcG9ydCBkZWNpZGUKKworICAgIGNyZWF0ZV90
YXNrX3NjaGVtYSA9IHJlcXVlc3RzLmdldCgKKyAgICAgICAgImh0dHBzOi8vcmF3LmdpdGh1YnVz
ZXJjb250ZW50LmNvbS90YXNrY2x1c3Rlci90YXNrY2x1c3Rlci9ibG9iL21hc3Rlci9zZXJ2aWNl
cy9xdWV1ZS9zY2hlbWFzL3YxL2NyZWF0ZS10YXNrLXJlcXVlc3QueW1sIikKKyAgICBjcmVhdGVf
dGFza19zY2hlbWEgPSB5YW1sLnNhZmVfbG9hZChjcmVhdGVfdGFza19zY2hlbWEuY29udGVudCkK
KworICAgIHBheWxvYWRfc2NoZW1hID0gcmVxdWVzdHMuZ2V0KCJodHRwczovL3Jhdy5naXRodWJ1
c2VyY29udGVudC5jb20vdGFza2NsdXN0ZXIvZG9ja2VyLXdvcmtlci9tYXN0ZXIvc2NoZW1hcy92
MS9wYXlsb2FkLmpzb24iKS5qc29uKCkKKworICAgIGpvYnMgPSBbImxpbnQiLAorICAgICAgICAg
ICAgIm1hbmlmZXN0X3VwbG9hZCIsCisgICAgICAgICAgICAicmVzb3VyY2VzX3VuaXR0ZXN0IiwK
KyAgICAgICAgICAgICJ0b29sc191bml0dGVzdCIsCisgICAgICAgICAgICAid3B0X2ludGVncmF0
aW9uIiwKKyAgICAgICAgICAgICJ3cHRydW5uZXJfaW5mcmFzdHJ1Y3R1cmUiLAorICAgICAgICAg
ICAgIndwdHJ1bm5lcl91bml0dGVzdCJdCisKKyAgICBmb3IgZmlsZW5hbWUgaW4gWyJwcl9ldmVu
dC5qc29uIiwgIm1hc3Rlcl9wdXNoX2V2ZW50Lmpzb24iXToKKyAgICAgICAgd2l0aCBvcGVuKGRh
dGFfcGF0aChmaWxlbmFtZSksIGVuY29kaW5nPSJ1dGY4IikgYXMgZjoKKyAgICAgICAgICAgIGV2
ZW50ID0ganNvbi5sb2FkKGYpCisKKyAgICAgICAgd2l0aCBtb2NrLnBhdGNoKCJ0b29scy5jaS50
Yy5kZWNpc2lvbi5nZXRfZmV0Y2hfcmV2IiwgcmV0dXJuX3ZhbHVlPShldmVudFsiYWZ0ZXIiXSwg
Tm9uZSkpOgorICAgICAgICAgICAgd2l0aCBtb2NrLnBhdGNoKCJ0b29scy5jaS50Yy5kZWNpc2lv
bi5nZXRfcnVuX2pvYnMiLCByZXR1cm5fdmFsdWU9c2V0KGpvYnMpKToKKyAgICAgICAgICAgICAg
ICB0YXNrX2lkX21hcCA9IGRlY2lkZShldmVudCkKKyAgICAgICAgZm9yIG5hbWUsICh0YXNrX2lk
LCB0YXNrX2RhdGEpIGluIHRhc2tfaWRfbWFwLml0ZW1zKCk6CisgICAgICAgICAgICB0cnk6Cisg
ICAgICAgICAgICAgICAgdmFsaWRhdGUoaW5zdGFuY2U9dGFza19kYXRhLCBzY2hlbWE9Y3JlYXRl
X3Rhc2tfc2NoZW1hKQorICAgICAgICAgICAgICAgIHZhbGlkYXRlKGluc3RhbmNlPXRhc2tfZGF0
YVsicGF5bG9hZCJdLCBzY2hlbWE9cGF5bG9hZF9zY2hlbWEpCisgICAgICAgICAgICBleGNlcHQg
RXhjZXB0aW9uIGFzIGU6CisgICAgICAgICAgICAgICAgcHJpbnQoIlZhbGlkYXRpb24gZmFpbGVk
IGZvciB0YXNrICclcyc6XG4lcyIgJSAobmFtZSwganNvbi5kdW1wcyh0YXNrX2RhdGEsIGluZGVu
dD0yKSkpCisgICAgICAgICAgICAgICAgcmFpc2UgZQorCisKK0BweXRlc3QubWFyay5wYXJhbWV0
cml6ZSgiZXZlbnRfcGF0aCxpc19wcixmaWxlc19jaGFuZ2VkLGV4cGVjdGVkIiwgWworICAgICgi
bWFzdGVyX3B1c2hfZXZlbnQuanNvbiIsIEZhbHNlLCBOb25lLAorICAgICB7J2Rvd25sb2FkLWZp
cmVmb3gtbmlnaHRseScsCisgICAgICAnd3B0LWZpcmVmb3gtbmlnaHRseS10ZXN0aGFybmVzcy0x
JywKKyAgICAgICd3cHQtZmlyZWZveC1uaWdodGx5LXRlc3RoYXJuZXNzLTInLAorICAgICAgJ3dw
dC1maXJlZm94LW5pZ2h0bHktdGVzdGhhcm5lc3MtMycsCisgICAgICAnd3B0LWZpcmVmb3gtbmln
aHRseS10ZXN0aGFybmVzcy00JywKKyAgICAgICd3cHQtZmlyZWZveC1uaWdodGx5LXRlc3RoYXJu
ZXNzLTUnLAorICAgICAgJ3dwdC1maXJlZm94LW5pZ2h0bHktdGVzdGhhcm5lc3MtNicsCisgICAg
ICAnd3B0LWZpcmVmb3gtbmlnaHRseS10ZXN0aGFybmVzcy03JywKKyAgICAgICd3cHQtZmlyZWZv
eC1uaWdodGx5LXRlc3RoYXJuZXNzLTgnLAorICAgICAgJ3dwdC1maXJlZm94LW5pZ2h0bHktdGVz
dGhhcm5lc3MtOScsCisgICAgICAnd3B0LWZpcmVmb3gtbmlnaHRseS10ZXN0aGFybmVzcy0xMCcs
CisgICAgICAnd3B0LWZpcmVmb3gtbmlnaHRseS10ZXN0aGFybmVzcy0xMScsCisgICAgICAnd3B0
LWZpcmVmb3gtbmlnaHRseS10ZXN0aGFybmVzcy0xMicsCisgICAgICAnd3B0LWZpcmVmb3gtbmln
aHRseS10ZXN0aGFybmVzcy0xMycsCisgICAgICAnd3B0LWZpcmVmb3gtbmlnaHRseS10ZXN0aGFy
bmVzcy0xNCcsCisgICAgICAnd3B0LWZpcmVmb3gtbmlnaHRseS10ZXN0aGFybmVzcy0xNScsCisg
ICAgICAnd3B0LWZpcmVmb3gtbmlnaHRseS10ZXN0aGFybmVzcy0xNicsCisgICAgICAnd3B0LWNo
cm9tZS1kZXYtdGVzdGhhcm5lc3MtMScsCisgICAgICAnd3B0LWNocm9tZS1kZXYtdGVzdGhhcm5l
c3MtMicsCisgICAgICAnd3B0LWNocm9tZS1kZXYtdGVzdGhhcm5lc3MtMycsCisgICAgICAnd3B0
LWNocm9tZS1kZXYtdGVzdGhhcm5lc3MtNCcsCisgICAgICAnd3B0LWNocm9tZS1kZXYtdGVzdGhh
cm5lc3MtNScsCisgICAgICAnd3B0LWNocm9tZS1kZXYtdGVzdGhhcm5lc3MtNicsCisgICAgICAn
d3B0LWNocm9tZS1kZXYtdGVzdGhhcm5lc3MtNycsCisgICAgICAnd3B0LWNocm9tZS1kZXYtdGVz
dGhhcm5lc3MtOCcsCisgICAgICAnd3B0LWNocm9tZS1kZXYtdGVzdGhhcm5lc3MtOScsCisgICAg
ICAnd3B0LWNocm9tZS1kZXYtdGVzdGhhcm5lc3MtMTAnLAorICAgICAgJ3dwdC1jaHJvbWUtZGV2
LXRlc3RoYXJuZXNzLTExJywKKyAgICAgICd3cHQtY2hyb21lLWRldi10ZXN0aGFybmVzcy0xMics
CisgICAgICAnd3B0LWNocm9tZS1kZXYtdGVzdGhhcm5lc3MtMTMnLAorICAgICAgJ3dwdC1jaHJv
bWUtZGV2LXRlc3RoYXJuZXNzLTE0JywKKyAgICAgICd3cHQtY2hyb21lLWRldi10ZXN0aGFybmVz
cy0xNScsCisgICAgICAnd3B0LWNocm9tZS1kZXYtdGVzdGhhcm5lc3MtMTYnLAorICAgICAgJ3dw
dC1maXJlZm94LW5pZ2h0bHktcmVmdGVzdC0xJywKKyAgICAgICd3cHQtZmlyZWZveC1uaWdodGx5
LXJlZnRlc3QtMicsCisgICAgICAnd3B0LWZpcmVmb3gtbmlnaHRseS1yZWZ0ZXN0LTMnLAorICAg
ICAgJ3dwdC1maXJlZm94LW5pZ2h0bHktcmVmdGVzdC00JywKKyAgICAgICd3cHQtZmlyZWZveC1u
aWdodGx5LXJlZnRlc3QtNScsCisgICAgICAnd3B0LWNocm9tZS1kZXYtcmVmdGVzdC0xJywKKyAg
ICAgICd3cHQtY2hyb21lLWRldi1yZWZ0ZXN0LTInLAorICAgICAgJ3dwdC1jaHJvbWUtZGV2LXJl
ZnRlc3QtMycsCisgICAgICAnd3B0LWNocm9tZS1kZXYtcmVmdGVzdC00JywKKyAgICAgICd3cHQt
Y2hyb21lLWRldi1yZWZ0ZXN0LTUnLAorICAgICAgJ3dwdC1maXJlZm94LW5pZ2h0bHktd2RzcGVj
LTEnLAorICAgICAgJ3dwdC1jaHJvbWUtZGV2LXdkc3BlYy0xJywKKyAgICAgICdsaW50J30pLAor
ICAgICgicHJfZXZlbnQuanNvbiIsIFRydWUsIHsiLnRhc2tjbHVzdGVyLnltbCIsIi50cmF2aXMu
eW1sIiwidG9vbHMvY2kvc3RhcnQuc2gifSwKKyAgICAgeydsaW50JywKKyAgICAgICd0b29scy8g
dW5pdHRlc3RzIChQeXRob24gMiknLAorICAgICAgJ3Rvb2xzLyB1bml0dGVzdHMgKFB5dGhvbiAz
KScsCisgICAgICAndG9vbHMvd3B0LyB0ZXN0cycsCisgICAgICAncmVzb3VyY2VzLyB0ZXN0cycs
CisgICAgICAnaW5mcmFzdHJ1Y3R1cmUvIHRlc3RzJ30pLAorICAgICMgTW9yZSB0ZXN0cyBhcmUg
YWZmZWN0ZWQgaW4gdGhlIGFjdHVhbCBQUiBidXQgaXQgc2hvdWxkbid0IGFmZmVjdCB0aGUgc2No
ZWR1bGVkIHRhc2tzCisgICAgKCJwcl9ldmVudF90ZXN0c19hZmZlY3RlZC5qc29uIiwgVHJ1ZSwg
eyJsYXlvdXQtaW5zdGFiaWxpdHkvY2xpcC1uZWdhdGl2ZS1ib3R0b20tbWFyZ2luLmh0bWwiLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAibGF5b3V0LWluc3Rh
YmlsaXR5L2NvbXBvc2l0ZWQtZWxlbWVudC1tb3ZlbWVudC5odG1sIn0sCisgICAgIHsnZG93bmxv
YWQtZmlyZWZveC1uaWdodGx5JywKKyAgICAgICd3cHQtZmlyZWZveC1uaWdodGx5LXN0YWJpbGl0
eScsCisgICAgICAnd3B0LWZpcmVmb3gtbmlnaHRseS1yZXN1bHRzJywKKyAgICAgICd3cHQtZmly
ZWZveC1uaWdodGx5LXJlc3VsdHMtd2l0aG91dC1jaGFuZ2VzJywKKyAgICAgICd3cHQtY2hyb21l
LWRldi1zdGFiaWxpdHknLAorICAgICAgJ3dwdC1jaHJvbWUtZGV2LXJlc3VsdHMnLAorICAgICAg
J3dwdC1jaHJvbWUtZGV2LXJlc3VsdHMtd2l0aG91dC1jaGFuZ2VzJywKKyAgICAgICdsaW50J30p
LAorICAgICgiZXBvY2hzX2RhaWx5X3B1c2hfZXZlbnQuanNvbiIsIEZhbHNlLCBOb25lLAorICAg
ICB7J2Rvd25sb2FkLWZpcmVmb3gtc3RhYmxlJywKKyAgICAgICd3cHQtY2hyb21lLXN0YWJsZS1y
ZWZ0ZXN0LTEnLAorICAgICAgJ3dwdC1jaHJvbWUtc3RhYmxlLXJlZnRlc3QtMicsCisgICAgICAn
d3B0LWNocm9tZS1zdGFibGUtcmVmdGVzdC0zJywKKyAgICAgICd3cHQtY2hyb21lLXN0YWJsZS1y
ZWZ0ZXN0LTQnLAorICAgICAgJ3dwdC1jaHJvbWUtc3RhYmxlLXJlZnRlc3QtNScsCisgICAgICAn
d3B0LWNocm9tZS1zdGFibGUtdGVzdGhhcm5lc3MtMScsCisgICAgICAnd3B0LWNocm9tZS1zdGFi
bGUtdGVzdGhhcm5lc3MtMTAnLAorICAgICAgJ3dwdC1jaHJvbWUtc3RhYmxlLXRlc3RoYXJuZXNz
LTExJywKKyAgICAgICd3cHQtY2hyb21lLXN0YWJsZS10ZXN0aGFybmVzcy0xMicsCisgICAgICAn
d3B0LWNocm9tZS1zdGFibGUtdGVzdGhhcm5lc3MtMTMnLAorICAgICAgJ3dwdC1jaHJvbWUtc3Rh
YmxlLXRlc3RoYXJuZXNzLTE0JywKKyAgICAgICd3cHQtY2hyb21lLXN0YWJsZS10ZXN0aGFybmVz
cy0xNScsCisgICAgICAnd3B0LWNocm9tZS1zdGFibGUtdGVzdGhhcm5lc3MtMTYnLAorICAgICAg
J3dwdC1jaHJvbWUtc3RhYmxlLXRlc3RoYXJuZXNzLTInLAorICAgICAgJ3dwdC1jaHJvbWUtc3Rh
YmxlLXRlc3RoYXJuZXNzLTMnLAorICAgICAgJ3dwdC1jaHJvbWUtc3RhYmxlLXRlc3RoYXJuZXNz
LTQnLAorICAgICAgJ3dwdC1jaHJvbWUtc3RhYmxlLXRlc3RoYXJuZXNzLTUnLAorICAgICAgJ3dw
dC1jaHJvbWUtc3RhYmxlLXRlc3RoYXJuZXNzLTYnLAorICAgICAgJ3dwdC1jaHJvbWUtc3RhYmxl
LXRlc3RoYXJuZXNzLTcnLAorICAgICAgJ3dwdC1jaHJvbWUtc3RhYmxlLXRlc3RoYXJuZXNzLTgn
LAorICAgICAgJ3dwdC1jaHJvbWUtc3RhYmxlLXRlc3RoYXJuZXNzLTknLAorICAgICAgJ3dwdC1j
aHJvbWUtc3RhYmxlLXdkc3BlYy0xJywKKyAgICAgICd3cHQtZmlyZWZveC1zdGFibGUtcmVmdGVz
dC0xJywKKyAgICAgICd3cHQtZmlyZWZveC1zdGFibGUtcmVmdGVzdC0yJywKKyAgICAgICd3cHQt
ZmlyZWZveC1zdGFibGUtcmVmdGVzdC0zJywKKyAgICAgICd3cHQtZmlyZWZveC1zdGFibGUtcmVm
dGVzdC00JywKKyAgICAgICd3cHQtZmlyZWZveC1zdGFibGUtcmVmdGVzdC01JywKKyAgICAgICd3
cHQtZmlyZWZveC1zdGFibGUtdGVzdGhhcm5lc3MtMScsCisgICAgICAnd3B0LWZpcmVmb3gtc3Rh
YmxlLXRlc3RoYXJuZXNzLTEwJywKKyAgICAgICd3cHQtZmlyZWZveC1zdGFibGUtdGVzdGhhcm5l
c3MtMTEnLAorICAgICAgJ3dwdC1maXJlZm94LXN0YWJsZS10ZXN0aGFybmVzcy0xMicsCisgICAg
ICAnd3B0LWZpcmVmb3gtc3RhYmxlLXRlc3RoYXJuZXNzLTEzJywKKyAgICAgICd3cHQtZmlyZWZv
eC1zdGFibGUtdGVzdGhhcm5lc3MtMTQnLAorICAgICAgJ3dwdC1maXJlZm94LXN0YWJsZS10ZXN0
aGFybmVzcy0xNScsCisgICAgICAnd3B0LWZpcmVmb3gtc3RhYmxlLXRlc3RoYXJuZXNzLTE2JywK
KyAgICAgICd3cHQtZmlyZWZveC1zdGFibGUtdGVzdGhhcm5lc3MtMicsCisgICAgICAnd3B0LWZp
cmVmb3gtc3RhYmxlLXRlc3RoYXJuZXNzLTMnLAorICAgICAgJ3dwdC1maXJlZm94LXN0YWJsZS10
ZXN0aGFybmVzcy00JywKKyAgICAgICd3cHQtZmlyZWZveC1zdGFibGUtdGVzdGhhcm5lc3MtNScs
CisgICAgICAnd3B0LWZpcmVmb3gtc3RhYmxlLXRlc3RoYXJuZXNzLTYnLAorICAgICAgJ3dwdC1m
aXJlZm94LXN0YWJsZS10ZXN0aGFybmVzcy03JywKKyAgICAgICd3cHQtZmlyZWZveC1zdGFibGUt
dGVzdGhhcm5lc3MtOCcsCisgICAgICAnd3B0LWZpcmVmb3gtc3RhYmxlLXRlc3RoYXJuZXNzLTkn
LAorICAgICAgJ3dwdC1maXJlZm94LXN0YWJsZS13ZHNwZWMtMScsCisgICAgICAnd3B0LXdlYmtp
dGd0a19taW5pYnJvd3Nlci1uaWdodGx5LXJlZnRlc3QtMScsCisgICAgICAnd3B0LXdlYmtpdGd0
a19taW5pYnJvd3Nlci1uaWdodGx5LXJlZnRlc3QtMicsCisgICAgICAnd3B0LXdlYmtpdGd0a19t
aW5pYnJvd3Nlci1uaWdodGx5LXJlZnRlc3QtMycsCisgICAgICAnd3B0LXdlYmtpdGd0a19taW5p
YnJvd3Nlci1uaWdodGx5LXJlZnRlc3QtNCcsCisgICAgICAnd3B0LXdlYmtpdGd0a19taW5pYnJv
d3Nlci1uaWdodGx5LXJlZnRlc3QtNScsCisgICAgICAnd3B0LXdlYmtpdGd0a19taW5pYnJvd3Nl
ci1uaWdodGx5LXRlc3RoYXJuZXNzLTEnLAorICAgICAgJ3dwdC13ZWJraXRndGtfbWluaWJyb3dz
ZXItbmlnaHRseS10ZXN0aGFybmVzcy0xMCcsCisgICAgICAnd3B0LXdlYmtpdGd0a19taW5pYnJv
d3Nlci1uaWdodGx5LXRlc3RoYXJuZXNzLTExJywKKyAgICAgICd3cHQtd2Via2l0Z3RrX21pbmli
cm93c2VyLW5pZ2h0bHktdGVzdGhhcm5lc3MtMTInLAorICAgICAgJ3dwdC13ZWJraXRndGtfbWlu
aWJyb3dzZXItbmlnaHRseS10ZXN0aGFybmVzcy0xMycsCisgICAgICAnd3B0LXdlYmtpdGd0a19t
aW5pYnJvd3Nlci1uaWdodGx5LXRlc3RoYXJuZXNzLTE0JywKKyAgICAgICd3cHQtd2Via2l0Z3Rr
X21pbmlicm93c2VyLW5pZ2h0bHktdGVzdGhhcm5lc3MtMTUnLAorICAgICAgJ3dwdC13ZWJraXRn
dGtfbWluaWJyb3dzZXItbmlnaHRseS10ZXN0aGFybmVzcy0xNicsCisgICAgICAnd3B0LXdlYmtp
dGd0a19taW5pYnJvd3Nlci1uaWdodGx5LXRlc3RoYXJuZXNzLTInLAorICAgICAgJ3dwdC13ZWJr
aXRndGtfbWluaWJyb3dzZXItbmlnaHRseS10ZXN0aGFybmVzcy0zJywKKyAgICAgICd3cHQtd2Vi
a2l0Z3RrX21pbmlicm93c2VyLW5pZ2h0bHktdGVzdGhhcm5lc3MtNCcsCisgICAgICAnd3B0LXdl
YmtpdGd0a19taW5pYnJvd3Nlci1uaWdodGx5LXRlc3RoYXJuZXNzLTUnLAorICAgICAgJ3dwdC13
ZWJraXRndGtfbWluaWJyb3dzZXItbmlnaHRseS10ZXN0aGFybmVzcy02JywKKyAgICAgICd3cHQt
d2Via2l0Z3RrX21pbmlicm93c2VyLW5pZ2h0bHktdGVzdGhhcm5lc3MtNycsCisgICAgICAnd3B0
LXdlYmtpdGd0a19taW5pYnJvd3Nlci1uaWdodGx5LXRlc3RoYXJuZXNzLTgnLAorICAgICAgJ3dw
dC13ZWJraXRndGtfbWluaWJyb3dzZXItbmlnaHRseS10ZXN0aGFybmVzcy05JywKKyAgICAgICd3
cHQtd2Via2l0Z3RrX21pbmlicm93c2VyLW5pZ2h0bHktd2RzcGVjLTEnfSkKK10pCitkZWYgdGVz
dF9zY2hlZHVsZV90YXNrcyhldmVudF9wYXRoLCBpc19wciwgZmlsZXNfY2hhbmdlZCwgZXhwZWN0
ZWQpOgorICAgIHdpdGggbW9jay5wYXRjaCgidG9vbHMuY2kudGMuZGVjaXNpb24uZ2V0X2ZldGNo
X3JldiIsIHJldHVybl92YWx1ZT0oaXNfcHIsIE5vbmUpKToKKyAgICAgICAgd2l0aCBtb2NrLnBh
dGNoKCJ0b29scy53cHQudGVzdGZpbGVzLnJlcG9fZmlsZXNfY2hhbmdlZCIsCisgICAgICAgICAg
ICAgICAgICAgICAgICByZXR1cm5fdmFsdWU9ZmlsZXNfY2hhbmdlZCk6CisgICAgICAgICAgICB3
aXRoIG9wZW4oZGF0YV9wYXRoKGV2ZW50X3BhdGgpLCBlbmNvZGluZz0idXRmOCIpIGFzIGV2ZW50
X2ZpbGU6CisgICAgICAgICAgICAgICAgZXZlbnQgPSBqc29uLmxvYWQoZXZlbnRfZmlsZSkKKyAg
ICAgICAgICAgICAgICBzY2hlZHVsZWQgPSBkZWNpc2lvbi5kZWNpZGUoZXZlbnQpCisgICAgICAg
ICAgICAgICAgYXNzZXJ0IHNldChzY2hlZHVsZWQua2V5cygpKSA9PSBleHBlY3RlZApkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9j
aS90Yy90ZXN0cy93M2MtaW1wb3J0LmxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvY2kvdGMvdGVzdHMvdzNjLWltcG9ydC5sb2cKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uMWIxODdmNmRkOTM3ZTI0Y2NlMGM2NzE1YjgyYzhmMWYzZjFlMjIyNwotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
Y2kvdGMvdGVzdHMvdzNjLWltcG9ydC5sb2cKQEAgLTAsMCArMSwxOSBAQAorVGhlIHRlc3RzIGlu
IHRoaXMgZGlyZWN0b3J5IHdlcmUgaW1wb3J0ZWQgZnJvbSB0aGUgVzNDIHJlcG9zaXRvcnkuCitE
byBOT1QgbW9kaWZ5IHRoZXNlIHRlc3RzIGRpcmVjdGx5IGluIFdlYktpdC4KK0luc3RlYWQsIGNy
ZWF0ZSBhIHB1bGwgcmVxdWVzdCBvbiB0aGUgV1BUIGdpdGh1YjoKKwlodHRwczovL2dpdGh1Yi5j
b20vd2ViLXBsYXRmb3JtLXRlc3RzL3dwdAorCitUaGVuIHJ1biB0aGUgVG9vbHMvU2NyaXB0cy9p
bXBvcnQtdzNjLXRlc3RzIGluIFdlYktpdCB0byByZWltcG9ydAorCitEbyBOT1QgbW9kaWZ5IG9y
IHJlbW92ZSB0aGlzIGZpbGUuCisKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorUHJvcGVydGllcyByZXF1aXJp
bmcgdmVuZG9yIHByZWZpeGVzOgorTm9uZQorUHJvcGVydHkgdmFsdWVzIHJlcXVpcmluZyB2ZW5k
b3IgcHJlZml4ZXM6CitOb25lCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK0xpc3Qgb2YgZmlsZXM6CisvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9jaS90Yy90ZXN0
cy90ZXN0X2RlY2lzaW9uLnB5CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy9jaS90Yy90ZXN0cy90ZXN0X3Rhc2tncmFwaC5weQorL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvY2kvdGMvdGVzdHMvdGVzdF92
YWxpZC5weQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy9jaS90Yy93M2MtaW1wb3J0LmxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvY2kvdGMvdzNjLWltcG9ydC5sb2cKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uZWMxZTM4NmQyZjExZmNmYWMxNTJhNjJkOTFkZTViMzM3NGRiMDI5YgotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvY2kvdGMvdzNjLWltcG9ydC5sb2cKQEAgLTAsMCArMSwyMSBAQAorVGhlIHRlc3RzIGluIHRo
aXMgZGlyZWN0b3J5IHdlcmUgaW1wb3J0ZWQgZnJvbSB0aGUgVzNDIHJlcG9zaXRvcnkuCitEbyBO
T1QgbW9kaWZ5IHRoZXNlIHRlc3RzIGRpcmVjdGx5IGluIFdlYktpdC4KK0luc3RlYWQsIGNyZWF0
ZSBhIHB1bGwgcmVxdWVzdCBvbiB0aGUgV1BUIGdpdGh1YjoKKwlodHRwczovL2dpdGh1Yi5jb20v
d2ViLXBsYXRmb3JtLXRlc3RzL3dwdAorCitUaGVuIHJ1biB0aGUgVG9vbHMvU2NyaXB0cy9pbXBv
cnQtdzNjLXRlc3RzIGluIFdlYktpdCB0byByZWltcG9ydAorCitEbyBOT1QgbW9kaWZ5IG9yIHJl
bW92ZSB0aGlzIGZpbGUuCisKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorUHJvcGVydGllcyByZXF1aXJpbmcg
dmVuZG9yIHByZWZpeGVzOgorTm9uZQorUHJvcGVydHkgdmFsdWVzIHJlcXVpcmluZyB2ZW5kb3Ig
cHJlZml4ZXM6CitOb25lCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK0xpc3Qgb2YgZmlsZXM6CisvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9jaS90Yy9SRUFETUUu
bWQKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2Np
L3RjL19faW5pdF9fLnB5CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy9jaS90Yy9kZWNpc2lvbi5weQorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvY2kvdGMvZG93bmxvYWQucHkKKy9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2NpL3RjL3Rhc2tncmFwaC5weQpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy9jaS90ZXN0cy90ZXN0X2pvYnMucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2NpL3Rlc3RzL3Rlc3Rfam9icy5weQppbmRleCBlODg4YWQ4
ODRhMThmMjU3MDA4ZmU4NjBmMzFmNzg5MmIzYmQzOWEzLi45NGY3OTk4NzcwY2Y1ZDhiYWQzNmQx
ODhkZDYzZTI1M2Y5ODE5OWE4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2NpL3Rlc3RzL3Rlc3Rfam9icy5weQorKysgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2NpL3Rlc3RzL3Rl
c3Rfam9icy5weQpAQCAtMSwyMSArMSw0NCBAQAogZnJvbSB0b29scy5jaSBpbXBvcnQgam9icwog
Ci1kZWZhdWx0X2pvYnMgPSBzZXQoWyJsaW50IiwgIm1hbmlmZXN0X3VwbG9hZCJdKQorYWxsX2pv
YnMgPSB7CisgICAgImJ1aWxkX2NzcyIsCisgICAgImxpbnQiLAorICAgICJtYW5pZmVzdF91cGxv
YWQiLAorICAgICJyZXNvdXJjZXNfdW5pdHRlc3QiLAorICAgICJhZmZlY3RlZF90ZXN0cyIsCisg
ICAgInN0YWJpbGl0eSIsCisgICAgInRvb2xzX3VuaXR0ZXN0IiwKKyAgICAidXBkYXRlX2J1aWx0
IiwKKyAgICAid3B0X2ludGVncmF0aW9uIiwKKyAgICAid3B0cnVubmVyX2luZnJhc3RydWN0dXJl
IiwKKyAgICAid3B0cnVubmVyX3VuaXR0ZXN0IiwKK30KKworZGVmYXVsdF9qb2JzID0geyJsaW50
IiwgIm1hbmlmZXN0X3VwbG9hZCJ9CisKKworZGVmIHRlc3RfYWxsKCk6CisgICAgYXNzZXJ0IGpv
YnMuZ2V0X2pvYnMoWyJSRUFETUUubWQiXSwgYWxsPVRydWUpID09IGFsbF9qb2JzCisKKworZGVm
IHRlc3RfZGVmYXVsdCgpOgorICAgIGFzc2VydCBqb2JzLmdldF9qb2JzKFsiUkVBRE1FLm1kIl0p
ID09IGRlZmF1bHRfam9icwogCiAKIGRlZiB0ZXN0X3Rlc3RoYXJuZXNzKCk6Ci0gICAgYXNzZXJ0
IGpvYnMuZ2V0X2pvYnMoWyJyZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiXSkgPT0gZGVmYXVsdF9q
b2JzIHwgc2V0KFsicmVzb3VyY2VzX3VuaXR0ZXN0Il0pCisgICAgYXNzZXJ0IGpvYnMuZ2V0X2pv
YnMoWyJyZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiXSkgPT0gZGVmYXVsdF9qb2JzIHwgeyJyZXNv
dXJjZXNfdW5pdHRlc3QiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAid3B0cnVubmVyX2luZnJhc3RydWN0
dXJlIn0KICAgICBhc3NlcnQgam9icy5nZXRfam9icyhbInJlc291cmNlcy90ZXN0aGFybmVzcy5q
cyJdLAotICAgICAgICAgICAgICAgICAgICAgICAgIGluY2x1ZGVzPVsicmVzb3VyY2VzX3VuaXR0
ZXN0Il0pID09IHNldChbInJlc291cmNlc191bml0dGVzdCJdKQorICAgICAgICAgICAgICAgICAg
ICAgICAgIGluY2x1ZGVzPVsicmVzb3VyY2VzX3VuaXR0ZXN0Il0pID09IHsicmVzb3VyY2VzX3Vu
aXR0ZXN0In0KICAgICBhc3NlcnQgam9icy5nZXRfam9icyhbInRvb2xzL3dwdHNlcnZlL3dwdHNl
cnZlL2NvbmZpZy5weSJdLAotICAgICAgICAgICAgICAgICAgICAgICAgIGluY2x1ZGVzPVsicmVz
b3VyY2VzX3VuaXR0ZXN0Il0pID09IHNldChbInJlc291cmNlc191bml0dGVzdCJdKQorICAgICAg
ICAgICAgICAgICAgICAgICAgIGluY2x1ZGVzPVsicmVzb3VyY2VzX3VuaXR0ZXN0Il0pID09IHsi
cmVzb3VyY2VzX3VuaXR0ZXN0In0KICAgICBhc3NlcnQgam9icy5nZXRfam9icyhbImZvby9yZXNv
dXJjZXMvdGVzdGhhcm5lc3MuanMiXSwKICAgICAgICAgICAgICAgICAgICAgICAgICBpbmNsdWRl
cz1bInJlc291cmNlc191bml0dGVzdCJdKSA9PSBzZXQoKQogCiAKIGRlZiB0ZXN0X3N0YWJpbGl0
eSgpOgogICAgIGFzc2VydCBqb2JzLmdldF9qb2JzKFsiZG9tL2hpc3RvcmljYWwuaHRtbCJdLAot
ICAgICAgICAgICAgICAgICAgICAgICAgIGluY2x1ZGVzPVsic3RhYmlsaXR5Il0pID09IHNldChb
InN0YWJpbGl0eSJdKQorICAgICAgICAgICAgICAgICAgICAgICAgIGluY2x1ZGVzPVsic3RhYmls
aXR5Il0pID09IHsic3RhYmlsaXR5In0KICAgICBhc3NlcnQgam9icy5nZXRfam9icyhbInRvb2xz
L3B5dGVzdC5pbmkiXSwKICAgICAgICAgICAgICAgICAgICAgICAgICBpbmNsdWRlcz1bInN0YWJp
bGl0eSJdKSA9PSBzZXQoKQogICAgIGFzc2VydCBqb2JzLmdldF9qb2JzKFsic2VydmUiXSwKQEAg
LTMzLDE5ICs1Niw0MSBAQCBkZWYgdGVzdF9zdGFiaWxpdHkoKToKICAgICBhc3NlcnQgam9icy5n
ZXRfam9icyhbImNzcy9idWlsZC1jc3MtdGVzdHN1aXRlLnNoIl0sCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgaW5jbHVkZXM9WyJzdGFiaWxpdHkiXSkgPT0gc2V0KCkKICAgICBhc3NlcnQgam9i
cy5nZXRfam9icyhbImNzcy9DU1MyMS90ZXN0LTAwMS5odG1sIl0sCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgaW5jbHVkZXM9WyJzdGFiaWxpdHkiXSkgPT0gc2V0KFsic3RhYmlsaXR5Il0pCisg
ICAgICAgICAgICAgICAgICAgICAgICAgaW5jbHVkZXM9WyJzdGFiaWxpdHkiXSkgPT0geyJzdGFi
aWxpdHkifQogICAgIGFzc2VydCBqb2JzLmdldF9qb2JzKFsiY3NzL2J1aWxkLWNzcy10ZXN0c3Vp
dGUuc2giLAogICAgICAgICAgICAgICAgICAgICAgICAgICAiY3NzL0NTUzIxL3Rlc3QtMDAxLmh0
bWwiXSwKLSAgICAgICAgICAgICAgICAgICAgICAgICBpbmNsdWRlcz1bInN0YWJpbGl0eSJdKSA9
PSBzZXQoWyJzdGFiaWxpdHkiXSkKLQotCi1kZWYgdGVzdF9kZWZhdWx0KCk6Ci0gICAgYXNzZXJ0
IGpvYnMuZ2V0X2pvYnMoWyJSRUFETUUubWQiXSkgPT0gZGVmYXVsdF9qb2JzCisgICAgICAgICAg
ICAgICAgICAgICAgICAgaW5jbHVkZXM9WyJzdGFiaWxpdHkiXSkgPT0geyJzdGFiaWxpdHkifQog
CitkZWYgdGVzdF9hZmZlY3RlZF90ZXN0cygpOgorICAgIGFzc2VydCBqb2JzLmdldF9qb2JzKFsi
ZG9tL2hpc3RvcmljYWwuaHRtbCJdLAorICAgICAgICAgICAgICAgICAgICAgICAgIGluY2x1ZGVz
PVsiYWZmZWN0ZWRfdGVzdHMiXSkgPT0geyJhZmZlY3RlZF90ZXN0cyJ9CisgICAgYXNzZXJ0IGpv
YnMuZ2V0X2pvYnMoWyJ0b29scy9weXRlc3QuaW5pIl0sCisgICAgICAgICAgICAgICAgICAgICAg
ICAgaW5jbHVkZXM9WyJhZmZlY3RlZF90ZXN0cyJdKSA9PSBzZXQoKQorICAgIGFzc2VydCBqb2Jz
LmdldF9qb2JzKFsic2VydmUiXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICBpbmNsdWRlcz1b
ImFmZmVjdGVkX3Rlc3RzIl0pID09IHNldCgpCisgICAgYXNzZXJ0IGpvYnMuZ2V0X2pvYnMoWyJy
ZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICBpbmNs
dWRlcz1bImFmZmVjdGVkX3Rlc3RzIl0pID09IHNldCgpCisgICAgYXNzZXJ0IGpvYnMuZ2V0X2pv
YnMoWyJkb2NzLy5naXRpZ25vcmUiXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICBpbmNsdWRl
cz1bImFmZmVjdGVkX3Rlc3RzIl0pID09IHNldCgpCisgICAgYXNzZXJ0IGpvYnMuZ2V0X2pvYnMo
WyJkb20vdG9vbHMvZXhhbXBsZS5weSJdLAorICAgICAgICAgICAgICAgICAgICAgICAgIGluY2x1
ZGVzPVsiYWZmZWN0ZWRfdGVzdHMiXSkgPT0gc2V0KCkKKyAgICBhc3NlcnQgam9icy5nZXRfam9i
cyhbImNvbmZvcm1hbmNlLWNoZWNrZXJzL3Rlc3QuaHRtbCJdLAorICAgICAgICAgICAgICAgICAg
ICAgICAgIGluY2x1ZGVzPVsiYWZmZWN0ZWRfdGVzdHMiXSkgPT0gc2V0KCkKKyAgICBhc3NlcnQg
am9icy5nZXRfam9icyhbImRvbS9SRUFETUUubWQiXSwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICBpbmNsdWRlcz1bImFmZmVjdGVkX3Rlc3RzIl0pID09IHNldCgpCisgICAgYXNzZXJ0IGpvYnMu
Z2V0X2pvYnMoWyJjc3MvYnVpbGQtY3NzLXRlc3RzdWl0ZS5zaCJdLAorICAgICAgICAgICAgICAg
ICAgICAgICAgIGluY2x1ZGVzPVsiYWZmZWN0ZWRfdGVzdHMiXSkgPT0gc2V0KCkKKyAgICBhc3Nl
cnQgam9icy5nZXRfam9icyhbImNzcy9DU1MyMS90ZXN0LTAwMS5odG1sIl0sCisgICAgICAgICAg
ICAgICAgICAgICAgICAgaW5jbHVkZXM9WyJhZmZlY3RlZF90ZXN0cyJdKSA9PSB7ImFmZmVjdGVk
X3Rlc3RzIn0KKyAgICBhc3NlcnQgam9icy5nZXRfam9icyhbImNzcy9idWlsZC1jc3MtdGVzdHN1
aXRlLnNoIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgImNzcy9DU1MyMS90ZXN0LTAwMS5o
dG1sIl0sCisgICAgICAgICAgICAgICAgICAgICAgICAgaW5jbHVkZXM9WyJhZmZlY3RlZF90ZXN0
cyJdKSA9PSB7ImFmZmVjdGVkX3Rlc3RzIn0KKyAgICBhc3NlcnQgam9icy5nZXRfam9icyhbInJl
c291cmNlcy9pZGxoYXJuZXNzLmpzIl0sCisgICAgICAgICAgICAgICAgICAgICAgICAgaW5jbHVk
ZXM9WyJhZmZlY3RlZF90ZXN0cyJdKSA9PSB7ImFmZmVjdGVkX3Rlc3RzIn0KIAogZGVmIHRlc3Rf
dG9vbHNfdW5pdHRlc3QoKToKICAgICBhc3NlcnQgam9icy5nZXRfam9icyhbInRvb2xzL2NpL3Rl
c3QvdGVzdF9qb2JzLnB5Il0sCi0gICAgICAgICAgICAgICAgICAgICAgICAgaW5jbHVkZXM9WyJ0
b29sc191bml0dGVzdCJdKSA9PSBzZXQoWyJ0b29sc191bml0dGVzdCJdKQorICAgICAgICAgICAg
ICAgICAgICAgICAgIGluY2x1ZGVzPVsidG9vbHNfdW5pdHRlc3QiXSkgPT0geyJ0b29sc191bml0
dGVzdCJ9CiAgICAgYXNzZXJ0IGpvYnMuZ2V0X2pvYnMoWyJkb20vdG9vbHMvZXhhbXBsZS5weSJd
LAogICAgICAgICAgICAgICAgICAgICAgICAgIGluY2x1ZGVzPVsidG9vbHNfdW5pdHRlc3QiXSkg
PT0gc2V0KCkKICAgICBhc3NlcnQgam9icy5nZXRfam9icyhbImRvbS9oaXN0b3JpY2FsLmh0bWwi
XSwKQEAgLTU0LDM3ICs5OSwzOCBAQCBkZWYgdGVzdF90b29sc191bml0dGVzdCgpOgogCiBkZWYg
dGVzdF93cHRydW5uZXJfdW5pdHRlc3QoKToKICAgICBhc3NlcnQgam9icy5nZXRfam9icyhbInRv
b2xzL3dwdHJ1bm5lci93cHRydW5uZXIvd3B0cnVubmVyLnB5Il0sCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgaW5jbHVkZXM9WyJ3cHRydW5uZXJfdW5pdHRlc3QiXSkgPT0gc2V0KFsid3B0cnVu
bmVyX3VuaXR0ZXN0Il0pCisgICAgICAgICAgICAgICAgICAgICAgICAgaW5jbHVkZXM9WyJ3cHRy
dW5uZXJfdW5pdHRlc3QiXSkgPT0geyJ3cHRydW5uZXJfdW5pdHRlc3QifQogICAgIGFzc2VydCBq
b2JzLmdldF9qb2JzKFsidG9vbHMvZXhhbXBsZS5weSJdLAotICAgICAgICAgICAgICAgICAgICAg
ICAgIGluY2x1ZGVzPVsid3B0cnVubmVyX3VuaXR0ZXN0Il0pID09IHNldCgpCisgICAgICAgICAg
ICAgICAgICAgICAgICAgaW5jbHVkZXM9WyJ3cHRydW5uZXJfdW5pdHRlc3QiXSkgPT0geyJ3cHRy
dW5uZXJfdW5pdHRlc3QifQogCiAKIGRlZiB0ZXN0X2J1aWxkX2NzcygpOgogICAgIGFzc2VydCBq
b2JzLmdldF9qb2JzKFsiY3NzL2Nzcy1idWlsZC10ZXN0c3VpdGVzLnNoIl0sCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgaW5jbHVkZXM9WyJidWlsZF9jc3MiXSkgPT0gc2V0KFsiYnVpbGRfY3Nz
Il0pCisgICAgICAgICAgICAgICAgICAgICAgICAgaW5jbHVkZXM9WyJidWlsZF9jc3MiXSkgPT0g
eyJidWlsZF9jc3MifQogICAgIGFzc2VydCBqb2JzLmdldF9qb2JzKFsiY3NzL0NTUzIxL3Rlc3Qu
aHRtbCJdLAotICAgICAgICAgICAgICAgICAgICAgICAgIGluY2x1ZGVzPVsiYnVpbGRfY3NzIl0p
ID09IHNldChbImJ1aWxkX2NzcyJdKQorICAgICAgICAgICAgICAgICAgICAgICAgIGluY2x1ZGVz
PVsiYnVpbGRfY3NzIl0pID09IHsiYnVpbGRfY3NzIn0KICAgICBhc3NlcnQgam9icy5nZXRfam9i
cyhbImh0bWwvY3NzL0NTUzIxL3Rlc3QuaHRtbCJdLAogICAgICAgICAgICAgICAgICAgICAgICAg
IGluY2x1ZGVzPVsiYnVpbGRfY3NzIl0pID09IHNldCgpCiAKIAogZGVmIHRlc3RfdXBkYXRlX2J1
aWx0KCk6CiAgICAgYXNzZXJ0IGpvYnMuZ2V0X2pvYnMoWyIyZGNvbnRleHQvZm9vLmh0bWwiXSwK
LSAgICAgICAgICAgICAgICAgICAgICAgICBpbmNsdWRlcz1bInVwZGF0ZV9idWlsdCJdKSA9PSBz
ZXQoWyJ1cGRhdGVfYnVpbHQiXSkKKyAgICAgICAgICAgICAgICAgICAgICAgICBpbmNsdWRlcz1b
InVwZGF0ZV9idWlsdCJdKSA9PSB7InVwZGF0ZV9idWlsdCJ9CiAgICAgYXNzZXJ0IGpvYnMuZ2V0
X2pvYnMoWyJodG1sL2Zvby5odG1sIl0sCi0gICAgICAgICAgICAgICAgICAgICAgICAgaW5jbHVk
ZXM9WyJ1cGRhdGVfYnVpbHQiXSkgPT0gc2V0KFsidXBkYXRlX2J1aWx0Il0pCisgICAgICAgICAg
ICAgICAgICAgICAgICAgaW5jbHVkZXM9WyJ1cGRhdGVfYnVpbHQiXSkgPT0geyJ1cGRhdGVfYnVp
bHQifQogICAgIGFzc2VydCBqb2JzLmdldF9qb2JzKFsib2Zmc2NyZWVuLWNhbnZhcy9mb28uaHRt
bCJdLAotICAgICAgICAgICAgICAgICAgICAgICAgIGluY2x1ZGVzPVsidXBkYXRlX2J1aWx0Il0p
ID09IHNldChbInVwZGF0ZV9idWlsdCJdKQorICAgICAgICAgICAgICAgICAgICAgICAgIGluY2x1
ZGVzPVsidXBkYXRlX2J1aWx0Il0pID09IHsidXBkYXRlX2J1aWx0In0KIAogCiBkZWYgdGVzdF93
cHRfaW50ZWdyYXRpb24oKToKICAgICBhc3NlcnQgam9icy5nZXRfam9icyhbInRvb2xzL3dwdC93
cHQucHkiXSwKLSAgICAgICAgICAgICAgICAgICAgICAgICBpbmNsdWRlcz1bIndwdF9pbnRlZ3Jh
dGlvbiJdKSA9PSBzZXQoWyJ3cHRfaW50ZWdyYXRpb24iXSkKKyAgICAgICAgICAgICAgICAgICAg
ICAgICBpbmNsdWRlcz1bIndwdF9pbnRlZ3JhdGlvbiJdKSA9PSB7IndwdF9pbnRlZ3JhdGlvbiJ9
CiAgICAgYXNzZXJ0IGpvYnMuZ2V0X2pvYnMoWyJ0b29scy93cHRydW5uZXIvd3B0cnVubmVyL3dw
dHJ1bm5lci5weSJdLAotICAgICAgICAgICAgICAgICAgICAgICAgIGluY2x1ZGVzPVsid3B0X2lu
dGVncmF0aW9uIl0pID09IHNldChbIndwdF9pbnRlZ3JhdGlvbiJdKQorICAgICAgICAgICAgICAg
ICAgICAgICAgIGluY2x1ZGVzPVsid3B0X2ludGVncmF0aW9uIl0pID09IHsid3B0X2ludGVncmF0
aW9uIn0KKwogCiBkZWYgdGVzdF93cHRfaW5mcmFzdHJ1Y3R1cmUoKToKICAgICBhc3NlcnQgam9i
cy5nZXRfam9icyhbInRvb2xzL2hhbW1lci5odG1sIl0sCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgaW5jbHVkZXM9WyJ3cHRydW5uZXJfaW5mcmFzdHJ1Y3R1cmUiXSkgPT0gc2V0KFsid3B0cnVu
bmVyX2luZnJhc3RydWN0dXJlIl0pCisgICAgICAgICAgICAgICAgICAgICAgICAgaW5jbHVkZXM9
WyJ3cHRydW5uZXJfaW5mcmFzdHJ1Y3R1cmUiXSkgPT0geyJ3cHRydW5uZXJfaW5mcmFzdHJ1Y3R1
cmUifQogICAgIGFzc2VydCBqb2JzLmdldF9qb2JzKFsiaW5mcmFzdHJ1Y3R1cmUvYXNzdW1wdGlv
bnMvYWhlbS5odG1sIl0sCi0gICAgICAgICAgICAgICAgICAgICAgICAgaW5jbHVkZXM9WyJ3cHRy
dW5uZXJfaW5mcmFzdHJ1Y3R1cmUiXSkgPT0gc2V0KFsid3B0cnVubmVyX2luZnJhc3RydWN0dXJl
Il0pCisgICAgICAgICAgICAgICAgICAgICAgICAgaW5jbHVkZXM9WyJ3cHRydW5uZXJfaW5mcmFz
dHJ1Y3R1cmUiXSkgPT0geyJ3cHRydW5uZXJfaW5mcmFzdHJ1Y3R1cmUifQpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9jaS90ZXN0
cy90ZXN0X3ByX3ByZXZpZXcucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL2NpL3Rlc3RzL3Rlc3RfcHJfcHJldmlldy5weQpuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42
MzQ4MmZiMTg0YzdmMTRkYjBlYmQ0NWMxODc5NGUzYTk3NzFjOTBiCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9jaS90
ZXN0cy90ZXN0X3ByX3ByZXZpZXcucHkKQEAgLTAsMCArMSw3MjAgQEAKK3RyeToKKyAgICBmcm9t
IEJhc2VIVFRQU2VydmVyIGltcG9ydCBCYXNlSFRUUFJlcXVlc3RIYW5kbGVyLCBIVFRQU2VydmVy
CitleGNlcHQgSW1wb3J0RXJyb3I6CisgICAgIyBQeXRob24gMyBjYXNlCisgICAgZnJvbSBodHRw
LnNlcnZlciBpbXBvcnQgQmFzZUhUVFBSZXF1ZXN0SGFuZGxlciwgSFRUUFNlcnZlcgoraW1wb3J0
IGNvbnRleHRsaWIKK2ltcG9ydCBlcnJubworaW1wb3J0IGpzb24KK2ltcG9ydCBvcworaW1wb3J0
IHNodXRpbAoraW1wb3J0IHN0YXQKK2ltcG9ydCBzdWJwcm9jZXNzCitpbXBvcnQgdGVtcGZpbGUK
K2ltcG9ydCB0aHJlYWRpbmcKKworc3ViamVjdCA9IG9zLnBhdGguam9pbigKKyAgICBvcy5wYXRo
LmRpcm5hbWUob3MucGF0aC5hYnNwYXRoKF9fZmlsZV9fKSksICcuLicsICdwcl9wcmV2aWV3LnB5
JworKQordGVzdF9ob3N0ID0gJ2xvY2FsaG9zdCcKKworCitkZWYgc2FtZV9tZW1iZXJzKGEsIGIp
OgorICAgIGlmIGxlbihhKSAhPSBsZW4oYik6CisgICAgICAgIHJldHVybiBGYWxzZQorICAgIGFf
Y29weSA9IGxpc3QoYSkKKyAgICBmb3IgZWxlbSBpbiBiOgorICAgICAgICB0cnk6CisgICAgICAg
ICAgICBhX2NvcHkucmVtb3ZlKGVsZW0pCisgICAgICAgIGV4Y2VwdCBWYWx1ZUVycm9yOgorICAg
ICAgICAgICAgcmV0dXJuIEZhbHNlCisKKyAgICByZXR1cm4gbGVuKGFfY29weSkgPT0gMAorCisK
KyMgV2hlbiB0aGVzZSB0ZXN0cyBhcmUgZXhlY3V0ZWQgaW4gV2luZG93cywgZmlsZXMgaW4gdGhl
IHRlbXBvcmFyeSBnaXQKKyMgcmVwb3NpdG9yaWVzIG1heSBiZSBtYXJrZWQgYXMgInJlYWQgb25s
eSIgYXQgdGhlIG1vbWVudCB0aGV5IGFyZSBpbnRlbmRlZCB0bworIyBiZSBkZWxldGVkLiBUaGUg
Zm9sbG93aW5nIGhhbmRsZXIgZm9yIGBzaHV0aWwucm10cmVlYCBhY2NvdW50cyBmb3IgdGhpcyBi
eQorIyBtYWtpbmcgdGhlIGZpbGVzIHdyaXRhYmxlIGFuZCBhdHRlbXB0aW5nIHRvIGRlbGV0ZSB0
aGVtIGEgc2Vjb25kIHRpbWUuCisjCisjIFNvdXJjZToKKyMgaHR0cHM6Ly9zdGFja292ZXJmbG93
LmNvbS9xdWVzdGlvbnMvMTIxMzcwNi93aGF0LXVzZXItZG8tcHl0aG9uLXNjcmlwdHMtcnVuLWFz
LWluLXdpbmRvd3MKK2RlZiBoYW5kbGVfcmVtb3ZlX3JlYWRvbmx5KGZ1bmMsIHBhdGgsIGV4Yyk6
CisgICAgZXhjdmFsdWUgPSBleGNbMV0KKyAgICBjYW5kaWRhdGVzID0gKG9zLnJtZGlyLCBvcy5y
ZW1vdmUsIG9zLnVubGluaykKKyAgICBpZiBmdW5jIGluIGNhbmRpZGF0ZXMgYW5kIGV4Y3ZhbHVl
LmVycm5vID09IGVycm5vLkVBQ0NFUzoKKyAgICAgICAgb3MuY2htb2QocGF0aCwgc3RhdC5TX0lS
V1hVIHwgc3RhdC5TX0lSV1hHIHwgc3RhdC5TX0lSV1hPKSAgIyAwNzc3CisgICAgICAgIGZ1bmMo
cGF0aCkKKyAgICBlbHNlOgorICAgICAgICByYWlzZQorCisKK2NsYXNzIE1vY2tIYW5kbGVyKEJh
c2VIVFRQUmVxdWVzdEhhbmRsZXIsIG9iamVjdCk6CisgICAgZGVmIGRvX2FsbChzZWxmKToKKyAg
ICAgICAgcGF0aCA9IHNlbGYucGF0aC5zcGxpdCgnPycpWzBdCisgICAgICAgIHJlcXVlc3RfYm9k
eSA9IE5vbmUKKworICAgICAgICBpZiAnQ29udGVudC1MZW5ndGgnIGluIHNlbGYuaGVhZGVyczoK
KyAgICAgICAgICAgIHJlcXVlc3RfYm9keSA9IHNlbGYucmZpbGUucmVhZCgKKyAgICAgICAgICAg
ICAgICBpbnQoc2VsZi5oZWFkZXJzWydDb250ZW50LUxlbmd0aCddKQorICAgICAgICAgICAgKS5k
ZWNvZGUoJ3V0Zi04JykKKworICAgICAgICAgICAgaWYgc2VsZi5oZWFkZXJzLmdldCgnQ29udGVu
dC1UeXBlJykgPT0gJ2FwcGxpY2F0aW9uL2pzb24nOgorICAgICAgICAgICAgICAgIHJlcXVlc3Rf
Ym9keSA9IGpzb24ubG9hZHMocmVxdWVzdF9ib2R5KQorCisgICAgICAgIGZvciByZXF1ZXN0LCBy
ZXNwb25zZSBpbiBzZWxmLnNlcnZlci5leHBlY3RlZF90cmFmZmljOgorICAgICAgICAgICAgaWYg
cmVxdWVzdFswXSAhPSBzZWxmLmNvbW1hbmQ6CisgICAgICAgICAgICAgICAgY29udGludWUKKyAg
ICAgICAgICAgIGlmIHJlcXVlc3RbMV0gIT0gcGF0aDoKKyAgICAgICAgICAgICAgICBjb250aW51
ZQorICAgICAgICAgICAgYm9keV9tYXRjaGVzID0gVHJ1ZQorICAgICAgICAgICAgZm9yIGtleSBp
biByZXF1ZXN0WzJdOgorICAgICAgICAgICAgICAgIGJvZHlfbWF0Y2hlcyAmPSByZXF1ZXN0WzJd
W2tleV0gPT0gcmVxdWVzdF9ib2R5LmdldChrZXkpCisgICAgICAgICAgICBpZiBub3QgYm9keV9t
YXRjaGVzOgorICAgICAgICAgICAgICAgIGNvbnRpbnVlCisgICAgICAgICAgICBicmVhaworICAg
ICAgICBlbHNlOgorICAgICAgICAgICAgcmVxdWVzdCA9IChzZWxmLmNvbW1hbmQsIHBhdGgsIHJl
cXVlc3RfYm9keSkKKyAgICAgICAgICAgIHJlc3BvbnNlID0gKDQwMCwge30pCisKKyAgICAgICAg
c2VsZi5zZXJ2ZXIuYWN0dWFsX3RyYWZmaWMuYXBwZW5kKChyZXF1ZXN0LCByZXNwb25zZSkpCisg
ICAgICAgIHNlbGYuc2VuZF9yZXNwb25zZShyZXNwb25zZVswXSkKKyAgICAgICAgc2VsZi5lbmRf
aGVhZGVycygpCisgICAgICAgIHNlbGYud2ZpbGUud3JpdGUoanNvbi5kdW1wcyhyZXNwb25zZVsx
XSkuZW5jb2RlKCd1dGYtOCcpKQorCisgICAgZGVmIGRvX0RFTEVURShzZWxmKToKKyAgICAgICAg
cmV0dXJuIHNlbGYuZG9fYWxsKCkKKworICAgIGRlZiBkb19HRVQoc2VsZik6CisgICAgICAgIHJl
dHVybiBzZWxmLmRvX2FsbCgpCisKKyAgICBkZWYgZG9fUEFUQ0goc2VsZik6CisgICAgICAgIHJl
dHVybiBzZWxmLmRvX2FsbCgpCisKKyAgICBkZWYgZG9fUE9TVChzZWxmKToKKyAgICAgICAgcmV0
dXJuIHNlbGYuZG9fYWxsKCkKKworCitjbGFzcyBNb2NrU2VydmVyKEhUVFBTZXJ2ZXIsIG9iamVj
dCk6CisgICAgJycnSFRUUCBzZXJ2ZXIgdGhhdCByZXNwb25kcyB0byBhbGwgcmVxdWVzdHMgd2l0
aCBzdGF0dXMgY29kZSAyMDAgYW5kIGJvZHkKKyAgICAne30nIHVubGVzcyBhbiBhbHRlcm5hdGl2
ZSBzdGF0dXMgY29kZSBhbmQgYm9keSBhcmUgc3BlY2lmaWVkIGZvciB0aGUgZ2l2ZW4KKyAgICBt
ZXRob2QgYW5kIHBhdGggaW4gdGhlIGByZXNwb25zZXNgIHBhcmFtZXRlci4nJycKKyAgICBkZWYg
X19pbml0X18oc2VsZiwgYWRkcmVzcywgZXhwZWN0ZWRfdHJhZmZpYyk6CisgICAgICAgIHN1cGVy
KE1vY2tTZXJ2ZXIsIHNlbGYpLl9faW5pdF9fKGFkZHJlc3MsIE1vY2tIYW5kbGVyKQorICAgICAg
ICBzZWxmLmV4cGVjdGVkX3RyYWZmaWMgPSBleHBlY3RlZF90cmFmZmljCisgICAgICAgIHNlbGYu
YWN0dWFsX3RyYWZmaWMgPSBbXQorCisgICAgZGVmIF9fZW50ZXJfXyhzZWxmKToKKyAgICAgICAg
dGhyZWFkaW5nLlRocmVhZCh0YXJnZXQ9bGFtYmRhOiBzZWxmLnNlcnZlX2ZvcmV2ZXIoKSkuc3Rh
cnQoKQorICAgICAgICByZXR1cm4gc2VsZgorCisgICAgZGVmIF9fZXhpdF9fKHNlbGYsICphcmdz
KToKKyAgICAgICAgc2VsZi5zaHV0ZG93bigpCisKKworY2xhc3MgUmVxdWVzdHMob2JqZWN0KToK
KyAgICBnZXRfcmF0ZSA9ICgnR0VUJywgJy9yYXRlX2xpbWl0Jywge30pCisgICAgc2VhcmNoID0g
KCdHRVQnLCAnL3NlYXJjaC9pc3N1ZXMnLCB7fSkKKyAgICByZWZfY3JlYXRlX29wZW4gPSAoCisg
ICAgICAgICdQT1NUJywgJy9yZXBvcy90ZXN0LW9yZy90ZXN0LXJlcG8vZ2l0L3JlZnMnLCB7J3Jl
Zic6J3JlZnMvcHJzLW9wZW4vMjMnfQorICAgICkKKyAgICByZWZfY3JlYXRlX3RydXN0ZWQgPSAo
CisgICAgICAgICdQT1NUJywKKyAgICAgICAgJy9yZXBvcy90ZXN0LW9yZy90ZXN0LXJlcG8vZ2l0
L3JlZnMnLAorICAgICAgICB7J3JlZic6J3JlZnMvcHJzLXRydXN0ZWQtZm9yLXByZXZpZXcvMjMn
fQorICAgICkKKyAgICByZWZfdXBkYXRlX29wZW4gPSAoCisgICAgICAgICdQQVRDSCcsICcvcmVw
b3MvdGVzdC1vcmcvdGVzdC1yZXBvL2dpdC9yZWZzL3Bycy1vcGVuLzIzJywge30KKyAgICApCisg
ICAgcmVmX3VwZGF0ZV90cnVzdGVkID0gKAorICAgICAgICAnUEFUQ0gnLCAnL3JlcG9zL3Rlc3Qt
b3JnL3Rlc3QtcmVwby9naXQvcmVmcy9wcnMtdHJ1c3RlZC1mb3ItcHJldmlldy8yMycsIHt9Cisg
ICAgKQorICAgIGRlcGxveW1lbnRfZ2V0ID0gKCdHRVQnLCAnL3JlcG9zL3Rlc3Qtb3JnL3Rlc3Qt
cmVwby9kZXBsb3ltZW50cycsIHt9KQorICAgIGRlcGxveW1lbnRfY3JlYXRlID0gKCdQT1NUJywg
Jy9yZXBvcy90ZXN0LW9yZy90ZXN0LXJlcG8vZGVwbG95bWVudHMnLCB7fSkKKyAgICBkZXBsb3lt
ZW50X3N0YXR1c19jcmVhdGVfcGVuZGluZyA9ICgKKyAgICAgICAgJ1BPU1QnLAorICAgICAgICAn
L3JlcG9zL3Rlc3Qtb3JnL3Rlc3QtcmVwby9kZXBsb3ltZW50cy8yNDYwMS9zdGF0dXNlcycsCisg
ICAgICAgIHsnc3RhdGUnOidwZW5kaW5nJ30KKyAgICApCisgICAgZGVwbG95bWVudF9zdGF0dXNf
Y3JlYXRlX2Vycm9yID0gKAorICAgICAgICAnUE9TVCcsCisgICAgICAgICcvcmVwb3MvdGVzdC1v
cmcvdGVzdC1yZXBvL2RlcGxveW1lbnRzLzI0NjAxL3N0YXR1c2VzJywKKyAgICAgICAgeydzdGF0
ZSc6J2Vycm9yJ30KKyAgICApCisgICAgZGVwbG95bWVudF9zdGF0dXNfY3JlYXRlX3N1Y2Nlc3Mg
PSAoCisgICAgICAgICdQT1NUJywKKyAgICAgICAgJy9yZXBvcy90ZXN0LW9yZy90ZXN0LXJlcG8v
ZGVwbG95bWVudHMvMjQ2MDEvc3RhdHVzZXMnLAorICAgICAgICB7J3N0YXRlJzonc3VjY2Vzcyd9
CisgICAgKQorICAgIHByZXZpZXcgPSAoJ0dFVCcsICcvLmdpdC93b3JrdHJlZXMvNDUvSEVBRCcs
IHt9KQorCisKK2NsYXNzIFJlc3BvbnNlcyhvYmplY3QpOgorICAgIG5vX2xpbWl0ID0gKDIwMCwg
eworICAgICAgICAncmVzb3VyY2VzJzogeworICAgICAgICAgICAgJ3NlYXJjaCc6IHsKKyAgICAg
ICAgICAgICAgICAncmVtYWluaW5nJzogMTAwLAorICAgICAgICAgICAgICAgICdsaW1pdCc6IDEw
MAorICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICdjb3JlJzogeworICAgICAgICAgICAgICAg
ICdyZW1haW5pbmcnOiAxMDAsCisgICAgICAgICAgICAgICAgJ2xpbWl0JzogMTAwCisgICAgICAg
ICAgICB9CisgICAgICAgIH0KKyAgICB9KQorCisKK0Bjb250ZXh0bGliLmNvbnRleHRtYW5hZ2Vy
CitkZWYgdGVtcF9yZXBvKCk6CisgICAgZGlyZWN0b3J5ID0gdGVtcGZpbGUubWtkdGVtcCgpCisK
KyAgICB0cnk6CisgICAgICAgIHN1YnByb2Nlc3MuY2hlY2tfY2FsbChbJ2dpdCcsICdpbml0J10s
IGN3ZD1kaXJlY3RvcnkpCisgICAgICAgIHN1YnByb2Nlc3MuY2hlY2tfY2FsbCgKKyAgICAgICAg
ICAgIFsnZ2l0JywgJ2NvbmZpZycsICd1c2VyLm5hbWUnLCAnZXhhbXBsZSddLAorICAgICAgICAg
ICAgY3dkPWRpcmVjdG9yeQorICAgICAgICApCisgICAgICAgIHN1YnByb2Nlc3MuY2hlY2tfY2Fs
bCgKKyAgICAgICAgICAgIFsnZ2l0JywgJ2NvbmZpZycsICd1c2VyLmVtYWlsJywgJ2V4YW1wbGVA
ZXhhbXBsZS5jb20nXSwKKyAgICAgICAgICAgIGN3ZD1kaXJlY3RvcnkKKyAgICAgICAgKQorICAg
ICAgICBzdWJwcm9jZXNzLmNoZWNrX2NhbGwoCisgICAgICAgICAgICBbJ2dpdCcsICdjb21taXQn
LCAnLS1hbGxvdy1lbXB0eScsICctbScsICdmaXJzdCddLAorICAgICAgICAgICAgY3dkPWRpcmVj
dG9yeQorICAgICAgICApCisKKyAgICAgICAgeWllbGQgZGlyZWN0b3J5CisgICAgZmluYWxseToK
KyAgICAgICAgc2h1dGlsLnJtdHJlZSgKKyAgICAgICAgICAgIGRpcmVjdG9yeSwgaWdub3JlX2Vy
cm9ycz1GYWxzZSwgb25lcnJvcj1oYW5kbGVfcmVtb3ZlX3JlYWRvbmx5CisgICAgICAgICkKKwor
ZGVmIHN5bmNocm9uaXplKGV4cGVjdGVkX3RyYWZmaWMsIHJlZnM9e30pOgorICAgIGVudiA9IHsK
KyAgICAgICAgJ0RFUExPWV9UT0tFTic6ICdjMGZmZWUnCisgICAgfQorICAgIGVudi51cGRhdGUo
b3MuZW52aXJvbikKKyAgICBzZXJ2ZXIgPSBNb2NrU2VydmVyKCh0ZXN0X2hvc3QsIDApLCBleHBl
Y3RlZF90cmFmZmljKQorICAgIHRlc3RfcG9ydCA9IHNlcnZlci5zZXJ2ZXJfYWRkcmVzc1sxXQor
ICAgIHJlbW90ZV9yZWZzID0ge30KKworICAgIHdpdGggdGVtcF9yZXBvKCkgYXMgbG9jYWxfcmVw
bywgdGVtcF9yZXBvKCkgYXMgcmVtb3RlX3JlcG8sIHNlcnZlcjoKKyAgICAgICAgc3VicHJvY2Vz
cy5jaGVja19jYWxsKAorICAgICAgICAgICAgWydnaXQnLCAnY29tbWl0JywgJy0tYWxsb3ctZW1w
dHknLCAnLW0nLCAnZmlyc3QnXSwKKyAgICAgICAgICAgIGN3ZD1yZW1vdGVfcmVwbworICAgICAg
ICApCisgICAgICAgIHN1YnByb2Nlc3MuY2hlY2tfY2FsbCgKKyAgICAgICAgICAgIFsnZ2l0Jywg
J2NvbW1pdCcsICctLWFsbG93LWVtcHR5JywgJy1tJywgJ3NlY29uZCddLAorICAgICAgICAgICAg
Y3dkPXJlbW90ZV9yZXBvCisgICAgICAgICkKKyAgICAgICAgc3VicHJvY2Vzcy5jaGVja19jYWxs
KAorICAgICAgICAgICAgWydnaXQnLCAncmVtb3RlJywgJ2FkZCcsICdvcmlnaW4nLCByZW1vdGVf
cmVwb10sIGN3ZD1sb2NhbF9yZXBvCisgICAgICAgICkKKworICAgICAgICBmb3IgbmFtZSwgdmFs
dWUgaW4gcmVmcy5pdGVtcygpOgorICAgICAgICAgICAgc3VicHJvY2Vzcy5jaGVja19jYWxsKAor
ICAgICAgICAgICAgICAgIFsnZ2l0JywgJ3VwZGF0ZS1yZWYnLCBuYW1lLCB2YWx1ZV0sCisgICAg
ICAgICAgICAgICAgY3dkPXJlbW90ZV9yZXBvCisgICAgICAgICAgICApCisKKyAgICAgICAgY2hp
bGQgPSBzdWJwcm9jZXNzLlBvcGVuKAorICAgICAgICAgICAgWworICAgICAgICAgICAgICAgICdw
eXRob24nLAorICAgICAgICAgICAgICAgIHN1YmplY3QsCisgICAgICAgICAgICAgICAgJy0taG9z
dCcsCisgICAgICAgICAgICAgICAgJ2h0dHA6Ly97fTp7fScuZm9ybWF0KHRlc3RfaG9zdCwgdGVz
dF9wb3J0KSwKKyAgICAgICAgICAgICAgICAnLS1naXRodWItcHJvamVjdCcsCisgICAgICAgICAg
ICAgICAgJ3Rlc3Qtb3JnL3Rlc3QtcmVwbycsCisgICAgICAgICAgICAgICAgJ3N5bmNocm9uaXpl
JywKKyAgICAgICAgICAgICAgICAnLS13aW5kb3cnLAorICAgICAgICAgICAgICAgICczMDAwJwor
ICAgICAgICAgICAgXSwKKyAgICAgICAgICAgIGN3ZD1sb2NhbF9yZXBvLAorICAgICAgICAgICAg
ZW52PWVudgorICAgICAgICApCisKKyAgICAgICAgY2hpbGQuY29tbXVuaWNhdGUoKQorICAgICAg
ICBsaW5lcyA9IHN1YnByb2Nlc3MuY2hlY2tfb3V0cHV0KAorICAgICAgICAgICAgWydnaXQnLCAn
bHMtcmVtb3RlJywgJ29yaWdpbiddLCBjd2Q9bG9jYWxfcmVwbworICAgICAgICApCisgICAgICAg
IGZvciBsaW5lIGluIGxpbmVzLmRlY29kZSgndXRmLTgnKS5zdHJpcCgpLnNwbGl0KCdcbicpOgor
ICAgICAgICAgICAgcmV2aXNpb24sIHJlZiA9IGxpbmUuc3BsaXQoKQorCisgICAgICAgICAgICBp
ZiBub3QgcmVmIG9yIHJlZiBpbiAoJ0hFQUQnLCAncmVmcy9oZWFkcy9tYXN0ZXInKToKKyAgICAg
ICAgICAgICAgICBjb250aW51ZQorCisgICAgICAgICAgICByZW1vdGVfcmVmc1tyZWZdID0gcmV2
aXNpb24KKworICAgIHJldHVybiBjaGlsZC5yZXR1cm5jb2RlLCBzZXJ2ZXIuYWN0dWFsX3RyYWZm
aWMsIHJlbW90ZV9yZWZzCisKKworZGVmIGRldGVjdChldmVudCwgZXhwZWN0ZWRfZ2l0aHViX3Ry
YWZmaWMsIGV4cGVjdGVkX3ByZXZpZXdfdHJhZmZpYyk6CisgICAgZW52ID0geworICAgICAgICAn
REVQTE9ZX1RPS0VOJzogJ2MwZmZlZScKKyAgICB9CisgICAgZW52LnVwZGF0ZShvcy5lbnZpcm9u
KQorICAgIGdpdGh1Yl9zZXJ2ZXIgPSBNb2NrU2VydmVyKCh0ZXN0X2hvc3QsIDApLCBleHBlY3Rl
ZF9naXRodWJfdHJhZmZpYykKKyAgICBnaXRodWJfcG9ydCA9IGdpdGh1Yl9zZXJ2ZXIuc2VydmVy
X2FkZHJlc3NbMV0KKyAgICBwcmV2aWV3X3NlcnZlciA9IE1vY2tTZXJ2ZXIoKHRlc3RfaG9zdCwg
MCksIGV4cGVjdGVkX3ByZXZpZXdfdHJhZmZpYykKKyAgICBwcmV2aWV3X3BvcnQgPSBwcmV2aWV3
X3NlcnZlci5zZXJ2ZXJfYWRkcmVzc1sxXQorCisgICAgd2l0aCB0ZW1wX3JlcG8oKSBhcyByZXBv
LCBnaXRodWJfc2VydmVyLCBwcmV2aWV3X3NlcnZlcjoKKyAgICAgICAgZW52WydHSVRIVUJfRVZF
TlRfUEFUSCddID0gcmVwbyArICcvZXZlbnQuanNvbicKKworICAgICAgICB3aXRoIG9wZW4oZW52
WydHSVRIVUJfRVZFTlRfUEFUSCddLCAndycpIGFzIGhhbmRsZToKKyAgICAgICAgICAgIGhhbmRs
ZS53cml0ZShqc29uLmR1bXBzKGV2ZW50KSkKKworICAgICAgICBjaGlsZCA9IHN1YnByb2Nlc3Mu
UG9wZW4oCisgICAgICAgICAgICBbCisgICAgICAgICAgICAgICAgJ3B5dGhvbicsCisgICAgICAg
ICAgICAgICAgc3ViamVjdCwKKyAgICAgICAgICAgICAgICAnLS1ob3N0JywKKyAgICAgICAgICAg
ICAgICAnaHR0cDovL3t9Ont9Jy5mb3JtYXQodGVzdF9ob3N0LCBnaXRodWJfcG9ydCksCisgICAg
ICAgICAgICAgICAgJy0tZ2l0aHViLXByb2plY3QnLAorICAgICAgICAgICAgICAgICd0ZXN0LW9y
Zy90ZXN0LXJlcG8nLAorICAgICAgICAgICAgICAgICdkZXRlY3QnLAorICAgICAgICAgICAgICAg
ICctLXRhcmdldCcsCisgICAgICAgICAgICAgICAgJ2h0dHA6Ly97fTp7fScuZm9ybWF0KHRlc3Rf
aG9zdCwgcHJldmlld19wb3J0KSwKKyAgICAgICAgICAgICAgICAnLS10aW1lb3V0JywKKyAgICAg
ICAgICAgICAgICAnMScKKyAgICAgICAgICAgIF0sCisgICAgICAgICAgICBjd2Q9cmVwbywKKyAg
ICAgICAgICAgIGVudj1lbnYKKyAgICAgICAgKQorICAgICAgICBjaGlsZC5jb21tdW5pY2F0ZSgp
CisKKyAgICByZXR1cm4gKAorICAgICAgICBjaGlsZC5yZXR1cm5jb2RlLAorICAgICAgICBnaXRo
dWJfc2VydmVyLmFjdHVhbF90cmFmZmljLAorICAgICAgICBwcmV2aWV3X3NlcnZlci5hY3R1YWxf
dHJhZmZpYworICAgICkKKworCitkZWYgdGVzdF9zeW5jaHJvbml6ZV96ZXJvX3Jlc3VsdHMoKToK
KyAgICBleHBlY3RlZF90cmFmZmljID0gWworICAgICAgICAoUmVxdWVzdHMuZ2V0X3JhdGUsIFJl
c3BvbnNlcy5ub19saW1pdCksCisgICAgICAgIChSZXF1ZXN0cy5zZWFyY2gsICgKKyAgICAgICAg
ICAgIDIwMCwKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAnaXRlbXMnOiBbXSwKKyAg
ICAgICAgICAgICAgICAnaW5jb21wbGV0ZV9yZXN1bHRzJzogRmFsc2UKKyAgICAgICAgICAgIH0K
KyAgICAgICAgKSkKKyAgICBdCisKKyAgICByZXR1cm5jb2RlLCBhY3R1YWxfdHJhZmZpYywgcmVt
b3RlX3JlZnMgPSBzeW5jaHJvbml6ZShleHBlY3RlZF90cmFmZmljKQorCisgICAgYXNzZXJ0IHJl
dHVybmNvZGUgPT0gMAorICAgIGFzc2VydCBzYW1lX21lbWJlcnMoZXhwZWN0ZWRfdHJhZmZpYywg
YWN0dWFsX3RyYWZmaWMpCisKK2RlZiB0ZXN0X3N5bmNocm9uaXplX2ZhaWxfc2VhcmNoX3Rocm90
dGxlZCgpOgorICAgIGV4cGVjdGVkX3RyYWZmaWMgPSBbCisgICAgICAgIChSZXF1ZXN0cy5nZXRf
cmF0ZSwgKAorICAgICAgICAgICAgMjAwLAorICAgICAgICAgICAgeworICAgICAgICAgICAgICAg
ICdyZXNvdXJjZXMnOiB7CisgICAgICAgICAgICAgICAgICAgICdzZWFyY2gnOiB7CisgICAgICAg
ICAgICAgICAgICAgICAgICAncmVtYWluaW5nJzogMSwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICdsaW1pdCc6IDEwCisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9Cisg
ICAgICAgICAgICB9CisgICAgICAgICkpCisgICAgXQorCisgICAgcmV0dXJuY29kZSwgYWN0dWFs
X3RyYWZmaWMsIHJlbW90ZV9yZWZzID0gc3luY2hyb25pemUoZXhwZWN0ZWRfdHJhZmZpYykKKwor
ICAgIGFzc2VydCByZXR1cm5jb2RlICE9IDAKKyAgICBhc3NlcnQgc2FtZV9tZW1iZXJzKGV4cGVj
dGVkX3RyYWZmaWMsIGFjdHVhbF90cmFmZmljKQorCitkZWYgdGVzdF9zeW5jaHJvbml6ZV9mYWls
X2luY29tcGxldGVfcmVzdWx0cygpOgorICAgIGV4cGVjdGVkX3RyYWZmaWMgPSBbCisgICAgICAg
IChSZXF1ZXN0cy5nZXRfcmF0ZSwgUmVzcG9uc2VzLm5vX2xpbWl0KSwKKyAgICAgICAgKFJlcXVl
c3RzLnNlYXJjaCwgKAorICAgICAgICAgICAgMjAwLAorICAgICAgICAgICAgeworICAgICAgICAg
ICAgICAgICdpdGVtcyc6IFtdLAorICAgICAgICAgICAgICAgICdpbmNvbXBsZXRlX3Jlc3VsdHMn
OiBUcnVlCisgICAgICAgICAgICB9CisgICAgICAgICkpCisgICAgXQorCisgICAgcmV0dXJuY29k
ZSwgYWN0dWFsX3RyYWZmaWMsIHJlbW92ZV9yZWZzID0gc3luY2hyb25pemUoZXhwZWN0ZWRfdHJh
ZmZpYykKKworICAgIGFzc2VydCByZXR1cm5jb2RlICE9IDAKKyAgICBhc3NlcnQgc2FtZV9tZW1i
ZXJzKGV4cGVjdGVkX3RyYWZmaWMsIGFjdHVhbF90cmFmZmljKQorCitkZWYgdGVzdF9zeW5jaHJv
bml6ZV9pZ25vcmVfY2xvc2VkKCk6CisgICAgZXhwZWN0ZWRfdHJhZmZpYyA9IFsKKyAgICAgICAg
KFJlcXVlc3RzLmdldF9yYXRlLCBSZXNwb25zZXMubm9fbGltaXQpLAorICAgICAgICAoUmVxdWVz
dHMuc2VhcmNoLCAoCisgICAgICAgICAgICAyMDAsCisgICAgICAgICAgICB7CisgICAgICAgICAg
ICAgICAgJ2l0ZW1zJzogWworICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAg
ICAgICAgICAnbnVtYmVyJzogMjMsCisgICAgICAgICAgICAgICAgICAgICAgICAnbGFiZWxzJzog
W10sCisgICAgICAgICAgICAgICAgICAgICAgICAnY2xvc2VkX2F0JzogJzIwMTktMTAtMjgnLAor
ICAgICAgICAgICAgICAgICAgICAgICAgJ3VzZXInOiB7J2xvZ2luJzogJ2dyYWNlJ30sCisgICAg
ICAgICAgICAgICAgICAgICAgICAnYXV0aG9yX2Fzc29jaWF0aW9uJzogJ0NPTExBQk9SQVRPUicK
KyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIF0sCisgICAgICAgICAgICAg
ICAgJ2luY29tcGxldGVfcmVzdWx0cyc6IEZhbHNlCisgICAgICAgICAgICB9CisgICAgICAgICkp
CisgICAgXQorCisgICAgcmV0dXJuY29kZSwgYWN0dWFsX3RyYWZmaWMsIHJlbW90ZV9yZWZzID0g
c3luY2hyb25pemUoZXhwZWN0ZWRfdHJhZmZpYykKKworICAgIGFzc2VydCByZXR1cm5jb2RlID09
IDAKKyAgICBhc3NlcnQgc2FtZV9tZW1iZXJzKGV4cGVjdGVkX3RyYWZmaWMsIGFjdHVhbF90cmFm
ZmljKQorCitkZWYgdGVzdF9zeW5jaHJvbml6ZV9zeW5jX2NvbGxhYm9yYXRvcigpOgorICAgIGV4
cGVjdGVkX3RyYWZmaWMgPSBbCisgICAgICAgIChSZXF1ZXN0cy5nZXRfcmF0ZSwgUmVzcG9uc2Vz
Lm5vX2xpbWl0KSwKKyAgICAgICAgKFJlcXVlc3RzLmdldF9yYXRlLCBSZXNwb25zZXMubm9fbGlt
aXQpLAorICAgICAgICAoUmVxdWVzdHMuZ2V0X3JhdGUsIFJlc3BvbnNlcy5ub19saW1pdCksCisg
ICAgICAgIChSZXF1ZXN0cy5nZXRfcmF0ZSwgUmVzcG9uc2VzLm5vX2xpbWl0KSwKKyAgICAgICAg
KFJlcXVlc3RzLmdldF9yYXRlLCBSZXNwb25zZXMubm9fbGltaXQpLAorICAgICAgICAoUmVxdWVz
dHMuc2VhcmNoLCAoCisgICAgICAgICAgICAyMDAsCisgICAgICAgICAgICB7CisgICAgICAgICAg
ICAgICAgJ2l0ZW1zJzogWworICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAg
ICAgICAgICAnbnVtYmVyJzogMjMsCisgICAgICAgICAgICAgICAgICAgICAgICAnbGFiZWxzJzog
W10sCisgICAgICAgICAgICAgICAgICAgICAgICAnY2xvc2VkX2F0JzogTm9uZSwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICd1c2VyJzogeydsb2dpbic6ICdncmFjZSd9LAorICAgICAgICAgICAg
ICAgICAgICAgICAgJ2F1dGhvcl9hc3NvY2lhdGlvbic6ICdDT0xMQUJPUkFUT1InCisgICAgICAg
ICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBdLAorICAgICAgICAgICAgICAgICdpbmNv
bXBsZXRlX3Jlc3VsdHMnOiBGYWxzZQorICAgICAgICAgICAgfQorICAgICAgICApKSwKKyAgICAg
ICAgKFJlcXVlc3RzLnJlZl9jcmVhdGVfb3BlbiwgKDIwMCwge30pKSwKKyAgICAgICAgKFJlcXVl
c3RzLnJlZl9jcmVhdGVfdHJ1c3RlZCwgKDIwMCwge30pKSwKKyAgICAgICAgKFJlcXVlc3RzLmRl
cGxveW1lbnRfZ2V0LCAoMjAwLCB7fSkpLAorICAgICAgICAoUmVxdWVzdHMuZGVwbG95bWVudF9j
cmVhdGUsICgyMDAsIHt9KSkKKyAgICBdCisKKyAgICByZXR1cm5jb2RlLCBhY3R1YWxfdHJhZmZp
YywgcmVtb3RlX3JlZnMgPSBzeW5jaHJvbml6ZShleHBlY3RlZF90cmFmZmljKQorCisgICAgYXNz
ZXJ0IHJldHVybmNvZGUgPT0gMAorICAgIGFzc2VydCBzYW1lX21lbWJlcnMoZXhwZWN0ZWRfdHJh
ZmZpYywgYWN0dWFsX3RyYWZmaWMpCisKK2RlZiB0ZXN0X3N5bmNocm9uaXplX2lnbm9yZV9jb2xs
YWJvcmF0b3JfYm90KCk6CisgICAgZXhwZWN0ZWRfdHJhZmZpYyA9IFsKKyAgICAgICAgKFJlcXVl
c3RzLmdldF9yYXRlLCBSZXNwb25zZXMubm9fbGltaXQpLAorICAgICAgICAoUmVxdWVzdHMuc2Vh
cmNoLCAoCisgICAgICAgICAgICAyMDAsCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAg
J2l0ZW1zJzogWworICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAg
ICAnbnVtYmVyJzogMjMsCisgICAgICAgICAgICAgICAgICAgICAgICAnbGFiZWxzJzogW10sCisg
ICAgICAgICAgICAgICAgICAgICAgICAnY2xvc2VkX2F0JzogTm9uZSwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICd1c2VyJzogeydsb2dpbic6ICdjaHJvbWl1bS13cHQtZXhwb3J0LWJvdCd9LAor
ICAgICAgICAgICAgICAgICAgICAgICAgJ2F1dGhvcl9hc3NvY2lhdGlvbic6ICdDT0xMQUJPUkFU
T1InCisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBdLAorICAgICAgICAg
ICAgICAgICdpbmNvbXBsZXRlX3Jlc3VsdHMnOiBGYWxzZQorICAgICAgICAgICAgfQorICAgICAg
ICApKQorICAgIF0KKworICAgIHJldHVybmNvZGUsIGFjdHVhbF90cmFmZmljLCByZW1vdGVfcmVm
cyA9IHN5bmNocm9uaXplKGV4cGVjdGVkX3RyYWZmaWMpCisKKyAgICBhc3NlcnQgcmV0dXJuY29k
ZSA9PSAwCisgICAgYXNzZXJ0IHNhbWVfbWVtYmVycyhleHBlY3RlZF90cmFmZmljLCBhY3R1YWxf
dHJhZmZpYykKKworZGVmIHRlc3Rfc3luY2hyb25pemVfaWdub3JlX3VudHJ1c3RlZF9jb250cmli
dXRvcigpOgorICAgIGV4cGVjdGVkX3RyYWZmaWMgPSBbCisgICAgICAgIChSZXF1ZXN0cy5nZXRf
cmF0ZSwgUmVzcG9uc2VzLm5vX2xpbWl0KSwKKyAgICAgICAgKFJlcXVlc3RzLnNlYXJjaCwgKAor
ICAgICAgICAgICAgMjAwLAorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICdpdGVtcyc6
IFsKKyAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgJ251bWJl
cic6IDIzLAorICAgICAgICAgICAgICAgICAgICAgICAgJ2xhYmVscyc6IFtdLAorICAgICAgICAg
ICAgICAgICAgICAgICAgJ2Nsb3NlZF9hdCc6IE5vbmUsCisgICAgICAgICAgICAgICAgICAgICAg
ICAndXNlcic6IHsnbG9naW4nOiAnZ3JhY2UnfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICdh
dXRob3JfYXNzb2NpYXRpb24nOiAnQ09OVFJJQlVUT1InCisgICAgICAgICAgICAgICAgICAgIH0K
KyAgICAgICAgICAgICAgICBdLAorICAgICAgICAgICAgICAgICdpbmNvbXBsZXRlX3Jlc3VsdHMn
OiBGYWxzZQorICAgICAgICAgICAgfQorICAgICAgICApKQorICAgIF0KKworICAgIHJldHVybmNv
ZGUsIGFjdHVhbF90cmFmZmljLCByZW1vdGVfcmVmcyA9IHN5bmNocm9uaXplKGV4cGVjdGVkX3Ry
YWZmaWMpCisKKyAgICBhc3NlcnQgcmV0dXJuY29kZSA9PSAwCisgICAgYXNzZXJ0IHNhbWVfbWVt
YmVycyhleHBlY3RlZF90cmFmZmljLCBhY3R1YWxfdHJhZmZpYykKKworZGVmIHRlc3Rfc3luY2hy
b25pemVfc3luY190cnVzdGVkX2NvbnRyaWJ1dG9yKCk6CisgICAgZXhwZWN0ZWRfdHJhZmZpYyA9
IFsKKyAgICAgICAgKFJlcXVlc3RzLmdldF9yYXRlLCBSZXNwb25zZXMubm9fbGltaXQpLAorICAg
ICAgICAoUmVxdWVzdHMuZ2V0X3JhdGUsIFJlc3BvbnNlcy5ub19saW1pdCksCisgICAgICAgIChS
ZXF1ZXN0cy5nZXRfcmF0ZSwgUmVzcG9uc2VzLm5vX2xpbWl0KSwKKyAgICAgICAgKFJlcXVlc3Rz
LmdldF9yYXRlLCBSZXNwb25zZXMubm9fbGltaXQpLAorICAgICAgICAoUmVxdWVzdHMuZ2V0X3Jh
dGUsIFJlc3BvbnNlcy5ub19saW1pdCksCisgICAgICAgIChSZXF1ZXN0cy5zZWFyY2gsICgKKyAg
ICAgICAgICAgIDIwMCwKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAnaXRlbXMnOiBb
CisgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICdudW1iZXIn
OiAyMywKKyAgICAgICAgICAgICAgICAgICAgICAgICdsYWJlbHMnOiBbeyduYW1lJzogJ3NhZmUg
Zm9yIHByZXZpZXcnfV0sCisgICAgICAgICAgICAgICAgICAgICAgICAnY2xvc2VkX2F0JzogTm9u
ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICd1c2VyJzogeydsb2dpbic6ICdIZXhjbGVzJ30s
CisgICAgICAgICAgICAgICAgICAgICAgICAnYXV0aG9yX2Fzc29jaWF0aW9uJzogJ0NPTlRSSUJV
VE9SJworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgXSwKKyAgICAgICAg
ICAgICAgICAnaW5jb21wbGV0ZV9yZXN1bHRzJzogRmFsc2UKKyAgICAgICAgICAgIH0KKyAgICAg
ICAgKSksCisgICAgICAgIChSZXF1ZXN0cy5yZWZfY3JlYXRlX29wZW4sICgyMDAsIHt9KSksCisg
ICAgICAgIChSZXF1ZXN0cy5yZWZfY3JlYXRlX3RydXN0ZWQsICgyMDAsIHt9KSksCisgICAgICAg
IChSZXF1ZXN0cy5kZXBsb3ltZW50X2dldCwgKDIwMCwgW10pKSwKKyAgICAgICAgKFJlcXVlc3Rz
LmRlcGxveW1lbnRfY3JlYXRlLCAoMjAwLCB7fSkpCisgICAgXQorCisgICAgcmV0dXJuY29kZSwg
YWN0dWFsX3RyYWZmaWMsIHJlbW90ZV9yZWZzID0gc3luY2hyb25pemUoZXhwZWN0ZWRfdHJhZmZp
YykKKworICAgIGFzc2VydCByZXR1cm5jb2RlID09IDAKKyAgICBhc3NlcnQgc2FtZV9tZW1iZXJz
KGV4cGVjdGVkX3RyYWZmaWMsIGFjdHVhbF90cmFmZmljKQorCitkZWYgdGVzdF9zeW5jaHJvbml6
ZV91cGRhdGVfY29sbGFib3JhdG9yKCk6CisgICAgZXhwZWN0ZWRfdHJhZmZpYyA9IFsKKyAgICAg
ICAgKFJlcXVlc3RzLmdldF9yYXRlLCBSZXNwb25zZXMubm9fbGltaXQpLAorICAgICAgICAoUmVx
dWVzdHMuZ2V0X3JhdGUsIFJlc3BvbnNlcy5ub19saW1pdCksCisgICAgICAgIChSZXF1ZXN0cy5n
ZXRfcmF0ZSwgUmVzcG9uc2VzLm5vX2xpbWl0KSwKKyAgICAgICAgKFJlcXVlc3RzLmdldF9yYXRl
LCBSZXNwb25zZXMubm9fbGltaXQpLAorICAgICAgICAoUmVxdWVzdHMuZ2V0X3JhdGUsIFJlc3Bv
bnNlcy5ub19saW1pdCksCisgICAgICAgIChSZXF1ZXN0cy5zZWFyY2gsICgyMDAsCisgICAgICAg
ICAgICB7CisgICAgICAgICAgICAgICAgJ2l0ZW1zJzogWworICAgICAgICAgICAgICAgICAgICB7
CisgICAgICAgICAgICAgICAgICAgICAgICAnbnVtYmVyJzogMjMsCisgICAgICAgICAgICAgICAg
ICAgICAgICAnbGFiZWxzJzogW10sCisgICAgICAgICAgICAgICAgICAgICAgICAnY2xvc2VkX2F0
JzogTm9uZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICd1c2VyJzogeydsb2dpbic6ICdncmFj
ZSd9LAorICAgICAgICAgICAgICAgICAgICAgICAgJ2F1dGhvcl9hc3NvY2lhdGlvbic6ICdDT0xM
QUJPUkFUT1InCisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBdLAorICAg
ICAgICAgICAgICAgICdpbmNvbXBsZXRlX3Jlc3VsdHMnOiBGYWxzZQorICAgICAgICAgICAgfQor
ICAgICAgICApKSwKKyAgICAgICAgKFJlcXVlc3RzLmRlcGxveW1lbnRfZ2V0LCAoMjAwLCBbXSkp
LAorICAgICAgICAoUmVxdWVzdHMucmVmX3VwZGF0ZV9vcGVuLCAoMjAwLCB7fSkpLAorICAgICAg
ICAoUmVxdWVzdHMucmVmX3VwZGF0ZV90cnVzdGVkLCAoMjAwLCB7fSkpLAorICAgICAgICAoUmVx
dWVzdHMuZGVwbG95bWVudF9jcmVhdGUsICgyMDAsIHt9KSkKKyAgICBdCisgICAgcmVmcyA9IHsK
KyAgICAgICAgJ3JlZnMvcHVsbC8yMy9oZWFkJzogJ0hFQUQnLAorICAgICAgICAncmVmcy9wcnMt
b3Blbi8yMyc6ICdIRUFEficsCisgICAgICAgICdyZWZzL3Bycy10cnVzdGVkLWZvci1wcmV2aWV3
LzIzJzogJ0hFQUR+JworICAgIH0KKworICAgIHJldHVybmNvZGUsIGFjdHVhbF90cmFmZmljLCBy
ZW1vdGVfcmVmcyA9IHN5bmNocm9uaXplKGV4cGVjdGVkX3RyYWZmaWMsIHJlZnMpCisKKyAgICBh
c3NlcnQgcmV0dXJuY29kZSA9PSAwCisgICAgYXNzZXJ0IHNhbWVfbWVtYmVycyhleHBlY3RlZF90
cmFmZmljLCBhY3R1YWxfdHJhZmZpYykKKworZGVmIHRlc3Rfc3luY2hyb25pemVfdXBkYXRlX21l
bWJlcigpOgorICAgIGV4cGVjdGVkX3RyYWZmaWMgPSBbCisgICAgICAgIChSZXF1ZXN0cy5nZXRf
cmF0ZSwgUmVzcG9uc2VzLm5vX2xpbWl0KSwKKyAgICAgICAgKFJlcXVlc3RzLmdldF9yYXRlLCBS
ZXNwb25zZXMubm9fbGltaXQpLAorICAgICAgICAoUmVxdWVzdHMuZ2V0X3JhdGUsIFJlc3BvbnNl
cy5ub19saW1pdCksCisgICAgICAgIChSZXF1ZXN0cy5nZXRfcmF0ZSwgUmVzcG9uc2VzLm5vX2xp
bWl0KSwKKyAgICAgICAgKFJlcXVlc3RzLnNlYXJjaCwgKDIwMCwKKyAgICAgICAgICAgIHsKKyAg
ICAgICAgICAgICAgICAnaXRlbXMnOiBbCisgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAg
ICAgICAgICAgICAgICAgICdudW1iZXInOiAyMywKKyAgICAgICAgICAgICAgICAgICAgICAgICds
YWJlbHMnOiBbXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICdjbG9zZWRfYXQnOiBOb25lLAor
ICAgICAgICAgICAgICAgICAgICAgICAgJ3VzZXInOiB7J2xvZ2luJzogJ2dyYWNlJ30sCisgICAg
ICAgICAgICAgICAgICAgICAgICAnYXV0aG9yX2Fzc29jaWF0aW9uJzogJ01FTUJFUicKKyAgICAg
ICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIF0sCisgICAgICAgICAgICAgICAgJ2lu
Y29tcGxldGVfcmVzdWx0cyc6IEZhbHNlCisgICAgICAgICAgICB9CisgICAgICAgICkpLAorICAg
ICAgICAoUmVxdWVzdHMuZGVwbG95bWVudF9nZXQsICgyMDAsIFt7J3NvbWUnOiAnZGVwbG95bWVu
dCd9XSkpLAorICAgICAgICAoUmVxdWVzdHMucmVmX3VwZGF0ZV9vcGVuLCAoMjAwLCB7fSkpLAor
ICAgICAgICAoUmVxdWVzdHMucmVmX3VwZGF0ZV90cnVzdGVkLCAoMjAwLCB7fSkpCisgICAgXQor
ICAgIHJlZnMgPSB7CisgICAgICAgICdyZWZzL3B1bGwvMjMvaGVhZCc6ICdIRUFEJywKKyAgICAg
ICAgJ3JlZnMvcHJzLW9wZW4vMjMnOiAnSEVBRH4nLAorICAgICAgICAncmVmcy9wcnMtdHJ1c3Rl
ZC1mb3ItcHJldmlldy8yMyc6ICdIRUFEficKKyAgICB9CisKKyAgICByZXR1cm5jb2RlLCBhY3R1
YWxfdHJhZmZpYywgcmVtb3RlX3JlZnMgPSBzeW5jaHJvbml6ZShleHBlY3RlZF90cmFmZmljLCBy
ZWZzKQorCisgICAgYXNzZXJ0IHJldHVybmNvZGUgPT0gMAorICAgIGFzc2VydCBzYW1lX21lbWJl
cnMoZXhwZWN0ZWRfdHJhZmZpYywgYWN0dWFsX3RyYWZmaWMpCisKK2RlZiB0ZXN0X3N5bmNocm9u
aXplX2RlbGV0ZV9jb2xsYWJvcmF0b3IoKToKKyAgICBleHBlY3RlZF90cmFmZmljID0gWworICAg
ICAgICAoUmVxdWVzdHMuZ2V0X3JhdGUsIFJlc3BvbnNlcy5ub19saW1pdCksCisgICAgICAgIChS
ZXF1ZXN0cy5zZWFyY2gsICgyMDAsCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgJ2l0
ZW1zJzogWworICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICAn
bnVtYmVyJzogMjMsCisgICAgICAgICAgICAgICAgICAgICAgICAnbGFiZWxzJzogW10sCisgICAg
ICAgICAgICAgICAgICAgICAgICAnY2xvc2VkX2F0JzogJzIwMTktMTAtMzAnLAorICAgICAgICAg
ICAgICAgICAgICAgICAgJ3VzZXInOiB7J2xvZ2luJzogJ2dyYWNlJ30sCisgICAgICAgICAgICAg
ICAgICAgICAgICAnYXV0aG9yX2Fzc29jaWF0aW9uJzogJ0NPTExBQk9SQVRPUicKKyAgICAgICAg
ICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIF0sCisgICAgICAgICAgICAgICAgJ2luY29t
cGxldGVfcmVzdWx0cyc6IEZhbHNlCisgICAgICAgICAgICB9CisgICAgICAgICkpCisgICAgXQor
ICAgIHJlZnMgPSB7CisgICAgICAgICdyZWZzL3B1bGwvMjMvaGVhZCc6ICdIRUFEJywKKyAgICAg
ICAgJ3JlZnMvcHJzLW9wZW4vMjMnOiAnSEVBRH4nLAorICAgICAgICAncmVmcy9wcnMtdHJ1c3Rl
ZC1mb3ItcHJldmlldy8yMyc6ICdIRUFEficKKyAgICB9CisKKyAgICByZXR1cm5jb2RlLCBhY3R1
YWxfdHJhZmZpYywgcmVtb3RlX3JlZnMgPSBzeW5jaHJvbml6ZShleHBlY3RlZF90cmFmZmljLCBy
ZWZzKQorCisgICAgYXNzZXJ0IHJldHVybmNvZGUgPT0gMAorICAgIGFzc2VydCBzYW1lX21lbWJl
cnMoZXhwZWN0ZWRfdHJhZmZpYywgYWN0dWFsX3RyYWZmaWMpCisgICAgYXNzZXJ0IGxpc3QocmVt
b3RlX3JlZnMpID09IFsncmVmcy9wdWxsLzIzL2hlYWQnXQorCitkZWYgdGVzdF9kZXRlY3RfaWdu
b3JlX3Vua25vd25fZW52KCk6CisgICAgZXhwZWN0ZWRfZ2l0aHViX3RyYWZmaWMgPSBbXQorICAg
IGV4cGVjdGVkX3ByZXZpZXdfdHJhZmZpYyA9IFtdCisgICAgZXZlbnQgPSB7CisgICAgICAgICdk
ZXBsb3ltZW50JzogeworICAgICAgICAgICAgJ2lkJzogMjQ2MDEsCisgICAgICAgICAgICAnZW52
aXJvbm1lbnQnOiAnZ2hvc3RzJywKKyAgICAgICAgICAgICdzaGEnOiAnMzIzMicKKyAgICAgICAg
fQorICAgIH0KKworICAgIHJldHVybmNvZGUsIGFjdHVhbF9naXRodWJfdHJhZmZpYywgYWN0dWFs
X3ByZXZpZXdfdHJhZmZpYyA9IGRldGVjdCgKKyAgICAgICAgZXZlbnQsIGV4cGVjdGVkX2dpdGh1
Yl90cmFmZmljLCBleHBlY3RlZF9wcmV2aWV3X3RyYWZmaWMKKyAgICApCisKKyAgICBhc3NlcnQg
cmV0dXJuY29kZSA9PSAwCisgICAgYXNzZXJ0IGxlbihhY3R1YWxfZ2l0aHViX3RyYWZmaWMpID09
IDAKKyAgICBhc3NlcnQgbGVuKGFjdHVhbF9wcmV2aWV3X3RyYWZmaWMpID09IDAKKworZGVmIHRl
c3RfZGV0ZWN0X2ZhaWxfc2VhcmNoX3Rocm90dGxlZCgpOgorICAgIGV4cGVjdGVkX2dpdGh1Yl90
cmFmZmljID0gWworICAgICAgICAoUmVxdWVzdHMuZ2V0X3JhdGUsICgKKyAgICAgICAgICAgIDIw
MCwKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAncmVzb3VyY2VzJzogeworICAgICAg
ICAgICAgICAgICAgICAnY29yZSc6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICdyZW1haW5p
bmcnOiAxLAorICAgICAgICAgICAgICAgICAgICAgICAgJ2xpbWl0JzogMTAKKyAgICAgICAgICAg
ICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgKSkK
KyAgICBdCisgICAgZXhwZWN0ZWRfcHJldmlld190cmFmZmljID0gW10KKyAgICBldmVudCA9IHsK
KyAgICAgICAgJ2RlcGxveW1lbnQnOiB7CisgICAgICAgICAgICAnaWQnOiAyNDYwMSwKKyAgICAg
ICAgICAgICdlbnZpcm9ubWVudCc6ICd3cHQtcHJldmlldy00NScsCisgICAgICAgICAgICAnc2hh
JzogJzMyMzInCisgICAgICAgIH0KKyAgICB9CisKKyAgICByZXR1cm5jb2RlLCBhY3R1YWxfZ2l0
aHViX3RyYWZmaWMsIGFjdHVhbF9wcmV2aWV3X3RyYWZmaWMgPSBkZXRlY3QoCisgICAgICAgIGV2
ZW50LCBleHBlY3RlZF9naXRodWJfdHJhZmZpYywgZXhwZWN0ZWRfcHJldmlld190cmFmZmljCisg
ICAgKQorCisgICAgYXNzZXJ0IHJldHVybmNvZGUgPT0gMQorICAgIGFzc2VydCBhY3R1YWxfZ2l0
aHViX3RyYWZmaWMgPT0gZXhwZWN0ZWRfZ2l0aHViX3RyYWZmaWMKKyAgICBhc3NlcnQgYWN0dWFs
X3ByZXZpZXdfdHJhZmZpYyA9PSBleHBlY3RlZF9wcmV2aWV3X3RyYWZmaWMKKworZGVmIHRlc3Rf
ZGV0ZWN0X3N1Y2Nlc3MoKToKKyAgICBleHBlY3RlZF9naXRodWJfdHJhZmZpYyA9IFsKKyAgICAg
ICAgKFJlcXVlc3RzLmdldF9yYXRlLCBSZXNwb25zZXMubm9fbGltaXQpLAorICAgICAgICAoUmVx
dWVzdHMuZGVwbG95bWVudF9zdGF0dXNfY3JlYXRlX3BlbmRpbmcsICgyMDAsIHt9KSksCisgICAg
ICAgIChSZXF1ZXN0cy5nZXRfcmF0ZSwgUmVzcG9uc2VzLm5vX2xpbWl0KSwKKyAgICAgICAgKFJl
cXVlc3RzLmRlcGxveW1lbnRfc3RhdHVzX2NyZWF0ZV9zdWNjZXNzLCAoMjAwLCB7fSkpCisgICAg
XQorICAgIGV4cGVjdGVkX3ByZXZpZXdfdHJhZmZpYyA9IFsKKyAgICAgICAgKFJlcXVlc3RzLnBy
ZXZpZXcsICgyMDAsIDMyMzIpKQorICAgIF0KKyAgICBldmVudCA9IHsKKyAgICAgICAgJ2RlcGxv
eW1lbnQnOiB7CisgICAgICAgICAgICAnaWQnOiAyNDYwMSwKKyAgICAgICAgICAgICdlbnZpcm9u
bWVudCc6ICd3cHQtcHJldmlldy00NScsCisgICAgICAgICAgICAnc2hhJzogJzMyMzInCisgICAg
ICAgIH0KKyAgICB9CisKKyAgICByZXR1cm5jb2RlLCBhY3R1YWxfZ2l0aHViX3RyYWZmaWMsIGFj
dHVhbF9wcmV2aWV3X3RyYWZmaWMgPSBkZXRlY3QoCisgICAgICAgIGV2ZW50LCBleHBlY3RlZF9n
aXRodWJfdHJhZmZpYywgZXhwZWN0ZWRfcHJldmlld190cmFmZmljCisgICAgKQorCisgICAgYXNz
ZXJ0IHJldHVybmNvZGUgPT0gMAorICAgIGFzc2VydCBhY3R1YWxfZ2l0aHViX3RyYWZmaWMgPT0g
ZXhwZWN0ZWRfZ2l0aHViX3RyYWZmaWMKKyAgICBhc3NlcnQgYWN0dWFsX3ByZXZpZXdfdHJhZmZp
YyA9PSBleHBlY3RlZF9wcmV2aWV3X3RyYWZmaWMKKworZGVmIHRlc3RfZGV0ZWN0X3RpbWVvdXRf
bWlzc2luZygpOgorICAgIGV4cGVjdGVkX2dpdGh1Yl90cmFmZmljID0gWworICAgICAgICAoUmVx
dWVzdHMuZ2V0X3JhdGUsIFJlc3BvbnNlcy5ub19saW1pdCksCisgICAgICAgIChSZXF1ZXN0cy5k
ZXBsb3ltZW50X3N0YXR1c19jcmVhdGVfcGVuZGluZywgKDIwMCwge30pKSwKKyAgICAgICAgKFJl
cXVlc3RzLmdldF9yYXRlLCBSZXNwb25zZXMubm9fbGltaXQpLAorICAgICAgICAoUmVxdWVzdHMu
ZGVwbG95bWVudF9zdGF0dXNfY3JlYXRlX2Vycm9yLCAoMjAwLCB7fSkpCisgICAgXQorICAgIGV4
cGVjdGVkX3ByZXZpZXdfdHJhZmZpYyA9IFsKKyAgICAgICAgKFJlcXVlc3RzLnByZXZpZXcsICg0
MDQsIHt9KSkKKyAgICBdCisgICAgZXZlbnQgPSB7CisgICAgICAgICdkZXBsb3ltZW50Jzogewor
ICAgICAgICAgICAgJ2lkJzogMjQ2MDEsCisgICAgICAgICAgICAnZW52aXJvbm1lbnQnOiAnd3B0
LXByZXZpZXctNDUnLAorICAgICAgICAgICAgJ3NoYSc6ICczMjMyJworICAgICAgICB9CisgICAg
fQorCisgICAgcmV0dXJuY29kZSwgYWN0dWFsX2dpdGh1Yl90cmFmZmljLCBhY3R1YWxfcHJldmll
d190cmFmZmljID0gZGV0ZWN0KAorICAgICAgICBldmVudCwgZXhwZWN0ZWRfZ2l0aHViX3RyYWZm
aWMsIGV4cGVjdGVkX3ByZXZpZXdfdHJhZmZpYworICAgICkKKworICAgIGFzc2VydCByZXR1cm5j
b2RlID09IDEKKyAgICBhc3NlcnQgZXhwZWN0ZWRfZ2l0aHViX3RyYWZmaWMgPT0gYWN0dWFsX2dp
dGh1Yl90cmFmZmljCisgICAgcGluZ19jb3VudCA9IGxlbihhY3R1YWxfcHJldmlld190cmFmZmlj
KQorICAgIGFzc2VydCBwaW5nX2NvdW50ID4gMAorICAgIGFzc2VydCBhY3R1YWxfcHJldmlld190
cmFmZmljID09IGV4cGVjdGVkX3ByZXZpZXdfdHJhZmZpYyAqIHBpbmdfY291bnQKKworZGVmIHRl
c3RfZGV0ZWN0X3RpbWVvdXRfd3JvbmdfcmV2aXNpb24oKToKKyAgICBleHBlY3RlZF9naXRodWJf
dHJhZmZpYyA9IFsKKyAgICAgICAgKFJlcXVlc3RzLmdldF9yYXRlLCBSZXNwb25zZXMubm9fbGlt
aXQpLAorICAgICAgICAoUmVxdWVzdHMuZGVwbG95bWVudF9zdGF0dXNfY3JlYXRlX3BlbmRpbmcs
ICgyMDAsIHt9KSksCisgICAgICAgIChSZXF1ZXN0cy5nZXRfcmF0ZSwgUmVzcG9uc2VzLm5vX2xp
bWl0KSwKKyAgICAgICAgKFJlcXVlc3RzLmRlcGxveW1lbnRfc3RhdHVzX2NyZWF0ZV9lcnJvciwg
KDIwMCwge30pKQorICAgIF0KKyAgICBleHBlY3RlZF9wcmV2aWV3X3RyYWZmaWMgPSBbCisgICAg
ICAgIChSZXF1ZXN0cy5wcmV2aWV3LCAoMjAwLCAxMjM0KSkKKyAgICBdCisgICAgZXZlbnQgPSB7
CisgICAgICAgICdkZXBsb3ltZW50JzogeworICAgICAgICAgICAgJ2lkJzogMjQ2MDEsCisgICAg
ICAgICAgICAnZW52aXJvbm1lbnQnOiAnd3B0LXByZXZpZXctNDUnLAorICAgICAgICAgICAgJ3No
YSc6ICczMjMyJworICAgICAgICB9CisgICAgfQorCisgICAgcmV0dXJuY29kZSwgYWN0dWFsX2dp
dGh1Yl90cmFmZmljLCBhY3R1YWxfcHJldmlld190cmFmZmljID0gZGV0ZWN0KAorICAgICAgICBl
dmVudCwgZXhwZWN0ZWRfZ2l0aHViX3RyYWZmaWMsIGV4cGVjdGVkX3ByZXZpZXdfdHJhZmZpYwor
ICAgICkKKworICAgIGFzc2VydCByZXR1cm5jb2RlID09IDEKKyAgICBhc3NlcnQgZXhwZWN0ZWRf
Z2l0aHViX3RyYWZmaWMgPT0gYWN0dWFsX2dpdGh1Yl90cmFmZmljCisgICAgcGluZ19jb3VudCA9
IGxlbihhY3R1YWxfcHJldmlld190cmFmZmljKQorICAgIGFzc2VydCBwaW5nX2NvdW50ID4gMAor
ICAgIGFzc2VydCBhY3R1YWxfcHJldmlld190cmFmZmljID09IGV4cGVjdGVkX3ByZXZpZXdfdHJh
ZmZpYyAqIHBpbmdfY291bnQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvY2kvdGVzdHMvdzNjLWltcG9ydC5sb2cgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2NpL3Rlc3RzL3czYy1p
bXBvcnQubG9nCmluZGV4IDJlODBlYTFlNmRjMWNjMjhjMWZhZTE3NWIwZGVjZTY0ZjYyOGExNzQu
Ljk3ZTkwNjllZGM2ODcwMjc3ZWUxYTk5ZjBlODE0Y2JmMDM5ZDlkZTcgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvY2kvdGVzdHMv
dzNjLWltcG9ydC5sb2cKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy9jaS90ZXN0cy93M2MtaW1wb3J0LmxvZwpAQCAtMTUsMyArMTUsNCBAQCBO
b25lCiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0KIExpc3Qgb2YgZmlsZXM6CiAvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9jaS90ZXN0cy90ZXN0X2pvYnMucHkKKy9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2NpL3Rlc3Rz
L3Rlc3RfcHJfcHJldmlldy5weQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9jaS93M2MtaW1wb3J0LmxvZyBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvY2kvdzNjLWltcG9ydC5sb2cK
aW5kZXggNTQzMTk1MDMzN2NjZjJiODY1OGU5NmE0MWEzNGNkNmEwZTcyNGQwYy4uYzhmZjVjYWIz
NGZjOTMzMmMwOGI2OTlmNzE2YzQxMTdiN2VjOTY4MiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9jaS93M2MtaW1wb3J0LmxvZwor
KysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2Np
L3czYy1pbXBvcnQubG9nCkBAIC0xNSwyMSArMTUsMTcgQEAgTm9uZQogLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
CiBMaXN0IG9mIGZpbGVzOgogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvY2kvX19pbml0X18ucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2NpL2JlZm9yZV9pbnN0YWxsLnNoCi0vTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9jaS9jaGVja19zdGFiaWxpdHku
cHkKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2Np
L2NpX2J1aWx0X2RpZmYuc2gKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL2NpL2NpX2xpbnQuc2gKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2NpL2NpX21hbmlmZXN0LnNoCiAvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9jaS9jaV9yZXNvdXJjZXNfdW5pdHRl
c3Quc2gKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L2NpL2NpX3N0YWJpbGl0eS5zaAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvY2kvY2lfdGFza2NsdXN0ZXIuc2gKIC9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2NpL2NpX3Rvb2xzX3VuaXR0ZXN0LnNoCiAv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9jaS9jaV93
cHQuc2gKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L2NpL2NpX3dwdHJ1bm5lcl9pbmZyYXN0cnVjdHVyZS5zaAogL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvY2kvY29tbWFuZHMuanNvbgotL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvY2kvaW5zdGFsbC5zaAor
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvY2kvZXBv
Y2hzX3VwZGF0ZS5zaAogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvY2kvam9icy5weQotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvY2kvbGliLnNoCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy9jaS9tYWtlX2hvc3RzX2ZpbGUucHkKLS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2NpL3J1bi5zaAotL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvY2kvdGFnX21hc3Rlci5w
eQorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvY2kv
bWFuaWZlc3RfYnVpbGQucHkKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL2NpL3ByX3ByZXZpZXcucHkKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2NpL3J1bl90Yy5weQorL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvY2kvdGFza2NsdXN0ZXItcnVuLnB5Cisv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9jaS93ZWJz
aXRlX2J1aWxkLnNoCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL2NpL3dlYnNpdGVfYnVpbGQuc2ggYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2NpL3dlYnNpdGVfYnVpbGQuc2gKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uZjZiMjYzMTBhYWJjZTIwMGZjMGQ3Nzg0NGY1ZjNhZDI4ZGUwYmI3ZgotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvY2kvd2Vic2l0ZV9idWlsZC5zaApAQCAtMCwwICsxLDgxIEBACisjIS9iaW4vYmFzaAor
CitzZXQgLWV4CisKK25ldXRyYWxfc3RhdHVzPTAKK3NvdXJjZV9yZXZpc2lvbj0kKGdpdCByZXYt
cGFyc2UgSEVBRCkKKyMgVGhlIHRva2VuIGF2YWlsYWJsZSBpbiB0aGUgYEdJVEhVQl9UT0tFTmAg
dmFyaWFibGUgbWF5IGJlIHVzZWQgdG8gcHVzaCB0byB0aGUKKyMgcmVwb3NpdG9yeSwgYnV0IEdp
dEh1YiBQYWdlcyB3aWxsIG5vdCByZWJ1aWxkIHRoZSB3ZWJzaXRlIGluIHJlc3BvbnNlIHRvIHN1
Y2gKKyMgZXZlbnRzLiBVc2UgYW4gYWNjZXNzIHRva2VuIGdlbmVyYXRlZCBmb3IgdGhlIHByb2pl
Y3QncyBtYWNoaW5lIHVzZXIsCisjIHdwdC1wci1ib3QuCisjCisjIGh0dHBzOi8vaGVscC5naXRo
dWIuY29tL2VuL2FydGljbGVzL2dlbmVyaWMtamVreWxsLWJ1aWxkLWZhaWx1cmVzCityZW1vdGVf
dXJsPWh0dHBzOi8vJHtERVBMT1lfVE9LRU59QGdpdGh1Yi5jb20vd2ViLXBsYXRmb3JtLXRlc3Rz
L3dwdC5naXQKKworZnVuY3Rpb24ganNvbl9wcm9wZXJ0eSB7CisgIGNhdCAkezF9IHwgXAorICAg
IHB5dGhvbiAtYyAiaW1wb3J0IGpzb24sIHN5czsgcHJpbnQganNvbi5sb2FkKHN5cy5zdGRpbiku
Z2V0KFwiJHsyfVwiLCBcIlwiKSIKK30KKworZnVuY3Rpb24gaXNfcHVsbF9yZXF1ZXN0IHsKKyAg
dGVzdCAtbiAiJChqc29uX3Byb3BlcnR5ICR7R0lUSFVCX0VWRU5UX1BBVEh9IHB1bGxfcmVxdWVz
dCkiCit9CisKK2Z1bmN0aW9uIHRhcmdldHNfbWFzdGVyIHsKKyAgdGVzdCAkKGpzb25fcHJvcGVy
dHkgJHtHSVRIVUJfRVZFTlRfUEFUSH0gcmVmKSA9PSAncmVmcy9oZWFkcy9tYXN0ZXInCit9CisK
K2dpdCBjb25maWcgLS1nbG9iYWwgdXNlci5lbWFpbCAid3B0LXByLWJvdEB1c2Vycy5ub3JlcGx5
LmdpdGh1Yi5jb20iCitnaXQgY29uZmlnIC0tZ2xvYmFsIHVzZXIubmFtZSAid3B0LXByLWJvdCIK
KworIyBQcmVwYXJlIHRoZSBvdXRwdXQgZGlyZWN0b3J5IHNvIHRoYXQgdGhlIG5ldyBidWlsZCBj
YW4gYmUgcHVzaGVkIHRvIHRoZQorIyByZXBvc2l0b3J5IGFzIGFuIGluY3JlbWVudGFsIGNoYW5n
ZSB0byB0aGUgcHJpb3IgYnVpbGQuCitta2RpciAtcCBkb2NzL19idWlsZC9odG1sCitjZCBkb2Nz
L19idWlsZC9odG1sCitnaXQgaW5pdAorZ2l0IGZldGNoIC0tZGVwdGggMSAke3JlbW90ZV91cmx9
IGdoLXBhZ2VzCitnaXQgY2hlY2tvdXQgRkVUQ0hfSEVBRAorZ2l0IHJtIC1yZiAuCisKKyMgQnVp
bGQgdGhlIHdlYnNpdGUKK2NkIC4uLy4uCitwaXAgaW5zdGFsbCAtciByZXF1aXJlbWVudHMudHh0
CittYWtlIGh0bWwKKworY2QgX2J1aWxkL2h0bWwKKyMgQ29uZmlndXJlIEROUworZWNobyB3ZWIt
cGxhdGZvcm0tdGVzdHMub3JnID4gQ05BTUUKKyMgRGlzYWJsZSBKZWt5bGwKKyMgaHR0cHM6Ly9n
aXRodWIuYmxvZy8yMDA5LTEyLTI5LWJ5cGFzc2luZy1qZWt5bGwtb24tZ2l0aHViLXBhZ2VzLwor
dG91Y2ggLm5vamVreWxsCisKKyMgUHVibGlzaCB0aGUgd2Vic2l0ZSBieSBwdXNoaW5nIHRoZSBi
dWlsdCBjb250ZW50cyB0byB0aGUgYGdoLXBhZ2VzYCBicmFuY2gKK2dpdCBhZGQgLgorCitlY2hv
IFRoaXMgc3VibWlzc2lvbiBhbHRlcnMgdGhlIGNvbXBpbGVkIGZpbGVzIGFzIGZvbGxvd3MKKwor
Z2l0IGRpZmYgLS1zdGFnZWQKKworaWYgaXNfcHVsbF9yZXF1ZXN0IDsgdGhlbgorICBlY2hvIFN1
Ym1pc3Npb24gY29tZXMgZnJvbSBhIHB1bGwgcmVxdWVzdC4gRXhpdGluZyB3aXRob3V0IHB1Ymxp
c2hpbmcuCisKKyAgZXhpdCAke25ldXRyYWxfc3RhdHVzfQorZmkKKworaWYgISB0YXJnZXRzX21h
c3RlciA7IHRoZW4KKyAgZWNobyBTdWJtaXNzaW9uIGRvZXMgbm90IHRhcmdldCB0aGUgJ21hc3Rl
cicgYnJhbmNoLiBFeGl0aW5nIHdpdGhvdXQgcHVibGlzaGluZy4KKworICBleGl0ICR7bmV1dHJh
bF9zdGF0dXN9CitmaQorCitpZiBnaXQgZGlmZiAtLWV4aXQtY29kZSAtLXF1aWV0IC0tc3RhZ2Vk
IDsgdGhlbgorICBlY2hvIE5vIGNoYW5nZSB0byB0aGUgd2Vic2l0ZSBjb250ZW50cy4gRXhpdGlu
ZyB3aXRob3V0IHB1Ymxpc2hpbmcuCisKKyAgZXhpdCAke25ldXRyYWxfc3RhdHVzfQorZmkKKwor
Z2l0IGNvbW1pdCAtLW1lc3NhZ2UgIkJ1aWxkIGRvY3VtZW50YXRpb24KKworVGhlc2UgZmlsZXMg
d2VyZSBnZW5lcmF0ZWQgZnJvbSBjb21taXQgJHtzb3VyY2VfcmV2aXNpb259IgorCitnaXQgcHVz
aCAtLWZvcmNlICR7cmVtb3RlX3VybH0gSEVBRDpnaC1wYWdlcwpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9jb25mdGVzdC5weSBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvY29uZnRl
c3QucHkKaW5kZXggODk0ZmU2MjIzZWE1M2E3NzA2N2Q3NTU2ZGJhNmE1MzBhZmJlYTk5NC4uMDIx
YTQ5ZmMyOTczMDNiNmU0MTc4YzQyNzQyMmQ5MTgxM2RiYjc2MiAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9jb25mdGVzdC5weQor
KysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2Nv
bmZ0ZXN0LnB5CkBAIC02LDggKzYsMTAgQEAgZnJvbSBoeXBvdGhlc2lzIGltcG9ydCBzZXR0aW5n
cywgSGVhbHRoQ2hlY2sKIGltcGwgPSBwbGF0Zm9ybS5weXRob25faW1wbGVtZW50YXRpb24oKQog
CiBzZXR0aW5ncy5yZWdpc3Rlcl9wcm9maWxlKCJjaSIsIHNldHRpbmdzKG1heF9leGFtcGxlcz0x
MDAwLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWFkbGluZT1O
b25lLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdXBwcmVzc19o
ZWFsdGhfY2hlY2s9W0hlYWx0aENoZWNrLnRvb19zbG93XSkpCi1zZXR0aW5ncy5yZWdpc3Rlcl9w
cm9maWxlKCJweXB5Iiwgc2V0dGluZ3Moc3VwcHJlc3NfaGVhbHRoX2NoZWNrPVtIZWFsdGhDaGVj
ay50b29fc2xvd10pKQorc2V0dGluZ3MucmVnaXN0ZXJfcHJvZmlsZSgicHlweSIsIHNldHRpbmdz
KGRlYWRsaW5lPU5vbmUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgc3VwcHJlc3NfaGVhbHRoX2NoZWNrPVtIZWFsdGhDaGVjay50b29fc2xvd10pKQogCiBzZXR0
aW5ncy5sb2FkX3Byb2ZpbGUob3MuZ2V0ZW52KCJIWVBPVEhFU0lTX1BST0ZJTEUiLAogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAiZGVmYXVsdCIgaWYgaW1wbCAhPSAiUHlQeSIgZWxz
ZSAicHlweSIpKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy9kb2NrZXIvRG9ja2VyZmlsZSBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvZG9ja2VyL0RvY2tlcmZpbGUKaW5kZXggYjA1
NDFkYzZjOTgzMzdlNTdmODY2YWQ4NGI3YTM1MDVjOGRkZDE0MC4uM2Q0MTgzNGNmYjQxNDMwYjRh
OWFhMDVmYThjNmQ2YjZmMjAxMGI1MSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9kb2NrZXIvRG9ja2VyZmlsZQorKysgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2RvY2tlci9Eb2Nr
ZXJmaWxlCkBAIC0xLDQgKzEsNCBAQAotRlJPTSB1YnVudHU6MTYuMDQKK0ZST00gdWJ1bnR1OjE4
LjA0CiAKICMgTm8gaW50ZXJhY3RpdmUgZnJvbnRlbmQgZHVyaW5nIGRvY2tlciBidWlsZAogRU5W
IERFQklBTl9GUk9OVEVORD1ub25pbnRlcmFjdGl2ZSBcCkBAIC03LDE1ICs3LDIyIEBAIEVOViBE
RUJJQU5fRlJPTlRFTkQ9bm9uaW50ZXJhY3RpdmUgXAogIyBHZW5lcmFsIHJlcXVpcmVtZW50cyBu
b3QgaW4gdGhlIGJhc2UgaW1hZ2UKIFJVTiBhcHQtZ2V0IC1xcXkgdXBkYXRlIFwKICAgJiYgYXB0
LWdldCAtcXF5IGluc3RhbGwgXAorICAgIGJyaWRnZS11dGlscyBcCiAgICAgYnppcDIgXAogICAg
IGNhLWNlcnRpZmljYXRlcyBcCiAgICAgZGJ1cy14MTEgXAorICAgIGVhcmx5b29tIFwKKyAgICBm
bHV4Ym94IFwKICAgICBnZGViaSBcCiAgICAgZ2l0IFwKKyAgICBsaWJ2aXJ0LWRhZW1vbi1zeXN0
ZW0gXAorICAgIGxpYnZpcnQtY2xpZW50cyBcCiAgICAgbG9jYWxlcyBcCisgICAgb3Blbmpkay04
LWpyZS1oZWFkbGVzcyBcCiAgICAgcHVsc2VhdWRpbyBcCiAgICAgcHl0aG9uIFwKICAgICBweXRo
b24tcGlwIFwKKyAgICBxZW11LWt2bSBcCiAgICAgdHpkYXRhIFwKICAgICBzdWRvIFwKICAgICB1
bnppcCBcCkBAIC0zNyw2ICs0NCw4IEBAIFJVTiBhcHQtZ2V0IC1xcXkgaW5zdGFsbCBcCiAgICAg
bGliaW5kaWNhdG9yMy03IFwKICAgICBsaWJpbmRpY2F0b3I3CiAKK1JVTiBhcHQtZ2V0IC15IGF1
dG9yZW1vdmUKKwogUlVOIHBpcCBpbnN0YWxsIC0tdXBncmFkZSBwaXAKIFJVTiBwaXAgaW5zdGFs
bCB2aXJ0dWFsZW52CiAKQEAgLTQ0LDEwICs1MywxOCBAQCBFTlYgVFogIlVUQyIKIFJVTiBlY2hv
ICIke1RafSIgPiAvZXRjL3RpbWV6b25lIFwKICAgJiYgZHBrZy1yZWNvbmZpZ3VyZSAtLWZyb250
ZW5kIG5vbmludGVyYWN0aXZlIHR6ZGF0YQogCisjIFNldCB0aGUgbG9jYWxlCitSVU4gbG9jYWxl
LWdlbiBlbl9VUy5VVEYtOAorRU5WIExBTkcgZW5fVVMuVVRGLTgKK0VOViBMQU5HVUFHRSBlbl9V
UzplbgorRU5WIExDX0FMTCBlbl9VUy5VVEYtOAorCiBSVU4gdXNlcmFkZCB0ZXN0IFwKICAgICAg
ICAgIC0tc2hlbGwgL2Jpbi9iYXNoICBcCiAgICAgICAgICAtLWNyZWF0ZS1ob21lIFwKICAgJiYg
dXNlcm1vZCAtYSAtRyBzdWRvIHRlc3QgXAorICAmJiB1c2VybW9kIC1hIC1HIGxpYnZpcnQgdGVz
dCBcCisgICYmIHVzZXJtb2QgLWEgLUcgbGlidmlydC1xZW11IHRlc3QgXAogICAmJiBlY2hvICdB
TEwgQUxMID0gKEFMTCkgTk9QQVNTV0Q6IEFMTCcgPj4gL2V0Yy9zdWRvZXJzIFwKICAgJiYgZWNo
byAndGVzdDpzZWNyZXQnIHwgY2hwYXNzd2QKIApAQCAtNjQsOSArODEsMTMgQEAgV09SS0RJUiAv
aG9tZS90ZXN0CiBSVU4gc3VkbyBlY2hvICIiCiAKIFJVTiBta2RpciAtcCAvaG9tZS90ZXN0L2Fy
dGlmYWN0cworUlVOIG1rZGlyIC1wIC9ob21lL3Rlc3QvYmluCisKK0VOViBQQVRIPSIvaG9tZS90
ZXN0L2JpbjovaG9tZS90ZXN0Ly5sb2NhbC9iaW46JHtQQVRIfSIKIAogV09SS0RJUiAvaG9tZS90
ZXN0LwogCiBDT1BZIC5iYXNocmMgL2hvbWUvdGVzdC8uYmFzaHJjCiAKIENPUFkgc3RhcnQuc2gg
L2hvbWUvdGVzdC9zdGFydC5zaAorQ09QWSByZXRyeS5weSAvaG9tZS90ZXN0L2Jpbi9yZXRyeQpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy9kb2NrZXIvUkVBRE1FLm1kIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy9kb2NrZXIvUkVBRE1FLm1kCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQ1MDk4MWY2ODZi
ZmFjZTJkOTI0M2U1NjI4MDQwYmI2YjJmNmM0ZTAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2RvY2tlci9SRUFETUUu
bWQKQEAgLTAsMCArMSwxMCBAQAorVGhpcyBkb2NrZXIgaW1hZ2VzIGlzIHVzZWQgZm9yIHRlc3Rp
bmcgQ2hyb21lLCBGaXJlZm94LCBXZWJLaXRHVEsgYW5kIHJ1bm5pbmcKK290aGVyIHRhc2tzIG9u
IFRhc2tjbHVzdGVyLiBXaGVuIGFueSBvZiB0aGUgZmlsZXMgaW4gdGhpcyBkaXJlY3RvcnkgY2hh
bmdlLCB0aGUKK2ltYWdlcyBtdXN0IGJlIHVwZGF0ZWQgYXMgd2VsbC4gVG8gZG8gdGhpcywgYXNz
dW1pbmcgeW91IGhhdmUgZG9ja2VyIGluc3RhbGxlZDoKKworSW4gdGhpcyBkaXJlY3RvcnksIHJ1
bgorYGBgc2gKK2RvY2tlciBidWlsZCAtdCA8dGFnPiAuCitkb2NrZXIgcHVzaCA8dGFnPgorYGBg
CisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvZG9ja2VyL19faW5pdF9fLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy9kb2NrZXIvX19pbml0X18ucHkKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYTY4
MzRiODI4NWE1NmJlZjBlMTU0M2ZkOTAxYzdlNmYyZjhiYzIwMgotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvZG9ja2Vy
L19faW5pdF9fLnB5CkBAIC0wLDAgKzEgQEAKKyMgVGhpcyBmaWxlIGlzIHJlcXVpcmVkIGZvciBQ
eXRob24gdG8gc2VhcmNoIHRoaXMgZGlyZWN0b3J5IGZvciBtb2R1bGVzLgpcIE5vIG5ld2xpbmUg
YXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvZG9ja2VyL2NvbW1hbmRzLmpzb24gYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2RvY2tlci9jb21tYW5kcy5qc29u
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjE1MTgyY2M5ZTY1MzFkNWE1YmEzZDQyYzlmMDA4MjE5NDZjNWU4YTMKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL2RvY2tlci9jb21tYW5kcy5qc29uCkBAIC0wLDAgKzEsNiBAQAoreworICAgICJk
b2NrZXItcnVuIjogeyJwYXRoIjogImZyb250ZW5kLnB5IiwgInNjcmlwdCI6ICJydW4iLCAicGFy
c2VyIjogInBhcnNlcl9ydW4iLCAiaGVscCI6ICJSdW4gd3B0IGRvY2tlciBpbWFnZSIsCisgICAg
ICAgICAgICAgICAgICAgInZpcnR1YWxlbnYiOiBmYWxzZX0sCisgICAgImRvY2tlci1idWlsZCI6
IHsicGF0aCI6ICJmcm9udGVuZC5weSIsICJzY3JpcHQiOiAiYnVpbGQiLCAiaGVscCI6ICJCdWls
ZCB3cHQgZG9ja2VyIGltYWdlIiwKKyAgICAgICAgICAgICAgICAgICAgICJ2aXJ0dWFsZW52Ijog
ZmFsc2V9Cit9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL2RvY2tlci9kb2N1bWVudGF0aW9uL0RvY2tlcmZpbGUgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2RvY2tlci9kb2N1bWVu
dGF0aW9uL0RvY2tlcmZpbGUKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTAxZjk4ZTRkNGRmMGU3Zjc1MDFiYjVkNzA1
N2QxZDUyODIyMWJkZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvZG9ja2VyL2RvY3VtZW50YXRpb24vRG9ja2VyZmls
ZQpAQCAtMCwwICsxLDMgQEAKK0ZST00gcHl0aG9uOjItc3RyZXRjaAorCitSVU4gYXB0LWdldCB1
cGRhdGUgJiYgYXB0LWdldCBpbnN0YWxsIC0teWVzIGdpdApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9kb2NrZXIvZG9jdW1lbnRh
dGlvbi93M2MtaW1wb3J0LmxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvZG9ja2VyL2RvY3VtZW50YXRpb24vdzNjLWltcG9ydC5sb2cKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uYzMyNGIyZjQwOWFmMTcyYzk4NjMxYjliYWExNGMzODFmZTkzYjgxZQotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvZG9ja2VyL2RvY3VtZW50YXRpb24vdzNjLWltcG9ydC5sb2cKQEAgLTAsMCArMSwxNyBAQAor
VGhlIHRlc3RzIGluIHRoaXMgZGlyZWN0b3J5IHdlcmUgaW1wb3J0ZWQgZnJvbSB0aGUgVzNDIHJl
cG9zaXRvcnkuCitEbyBOT1QgbW9kaWZ5IHRoZXNlIHRlc3RzIGRpcmVjdGx5IGluIFdlYktpdC4K
K0luc3RlYWQsIGNyZWF0ZSBhIHB1bGwgcmVxdWVzdCBvbiB0aGUgV1BUIGdpdGh1YjoKKwlodHRw
czovL2dpdGh1Yi5jb20vd2ViLXBsYXRmb3JtLXRlc3RzL3dwdAorCitUaGVuIHJ1biB0aGUgVG9v
bHMvU2NyaXB0cy9pbXBvcnQtdzNjLXRlc3RzIGluIFdlYktpdCB0byByZWltcG9ydAorCitEbyBO
T1QgbW9kaWZ5IG9yIHJlbW92ZSB0aGlzIGZpbGUuCisKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorUHJvcGVy
dGllcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgorTm9uZQorUHJvcGVydHkgdmFsdWVzIHJl
cXVpcmluZyB2ZW5kb3IgcHJlZml4ZXM6CitOb25lCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK0xpc3Qgb2Yg
ZmlsZXM6CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy9kb2NrZXIvZG9jdW1lbnRhdGlvbi9Eb2NrZXJmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2RvY2tlci9mcm9udGVuZC5w
eSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvZG9j
a2VyL2Zyb250ZW5kLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjk3NjE1NmNmNjVhMDA4MjFhMTFhMzM1MTMwMWI0
N2MxMDc4Yzg0MTYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2RvY2tlci9mcm9udGVuZC5weQpAQCAtMCwwICsxLDQ1
IEBACitpbXBvcnQgYXJncGFyc2UKK2ltcG9ydCBzdWJwcm9jZXNzCitpbXBvcnQgb3MKKworaGVy
ZSA9IG9zLnBhdGguYWJzcGF0aChvcy5wYXRoLmRpcm5hbWUoX19maWxlX18pKQord3B0X3Jvb3Qg
PSBvcy5wYXRoLmFic3BhdGgob3MucGF0aC5qb2luKGhlcmUsIG9zLnBhcmRpciwgb3MucGFyZGly
KSkKKworZGVmIGJ1aWxkKCphcmdzLCAqKmt3YXJncyk6CisgICAgc3VicHJvY2Vzcy5jaGVja19j
YWxsKFsiZG9ja2VyIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICJidWlsZCIsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAiLS10YWciLCAid3B0OmxvY2FsIiwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGhlcmVdKQorCisKK2RlZiBwYXJzZXJfcnVuKCk6CisgICAgcGFyc2Vy
ID0gYXJncGFyc2UuQXJndW1lbnRQYXJzZXIoKQorICAgIHBhcnNlci5hZGRfYXJndW1lbnQoIi0t
cmVidWlsZCIsIGFjdGlvbj0ic3RvcmVfdHJ1ZSIsIGhlbHA9IkZvcmNlIHJlYnVpbGQgb2YgaW1h
Z2UiKQorICAgIHBhcnNlci5hZGRfYXJndW1lbnQoIi0tY2hlY2tvdXQiLCBhY3Rpb249InN0b3Jl
IiwKKyAgICAgICAgICAgICAgICAgICAgICAgIGhlbHA9IlJldmlzaW9uIHRvIGNoZWNrb3V0IGlu
IHRoZSBpbWFnZS4gIgorICAgICAgICAgICAgICAgICAgICAgICAgIklmIHRoaXMgaXMgbm90IHN1
cHBsaWVkIHdlIG1vdW50IHRoZSB3cHQgY2hlY2tvdXQgb24gdGhlIGhvc3QgYXMgIgorICAgICAg
ICAgICAgICAgICAgICAgICAgIi9ob21lL3Rlc3Qvd2ViLXBsYXRmb3JtLXRlc3RzLyIpCisgICAg
cGFyc2VyLmFkZF9hcmd1bWVudCgiLS1wcml2aWxlZ2VkIiwgYWN0aW9uPSJzdG9yZV90cnVlIiwK
KyAgICAgICAgICAgICAgICAgICAgICAgIGhlbHA9IlJ1biB0aGUgaW1hZ2UgaW4gcHJpdmlsZWRn
ZWQgbW9kZSAocmVxdWlyZWQgZm9yIGVtdWxhdG9ycykiKQorICAgIHJldHVybiBwYXJzZXIKKwor
CitkZWYgcnVuKCphcmdzLCAqKmt3YXJncyk6CisgICAgaWYga3dhcmdzWyJyZWJ1aWxkIl06Cisg
ICAgICAgIGJ1aWxkKCkKKworICAgIGFyZ3MgPSBbImRvY2tlciIsICJydW4iXQorICAgIGFyZ3Mu
ZXh0ZW5kKFsiLS1zZWN1cml0eS1vcHQiLCAic2VjY29tcDolcyIgJQorICAgICAgICAgICAgICAg
ICBvcy5wYXRoLmpvaW4od3B0X3Jvb3QsICJ0b29scyIsICJkb2NrZXIiLCAic2VjY29tcC5qc29u
IildKQorICAgIGlmIGt3YXJnc1sicHJpdmlsZWdlZCJdOgorICAgICAgICBhcmdzLmFwcGVuZCgi
LS1wcml2aWxlZ2VkIikKKyAgICBpZiBrd2FyZ3NbImNoZWNrb3V0Il06CisgICAgICAgIGFyZ3Mu
ZXh0ZW5kKFsiLS1lbnYiLCAiUkVGPT0lcyIgJSBrd2FyZ3NbImNoZWNrb3V0Il1dKQorICAgIGVs
c2U6CisgICAgICAgIGFyZ3MuZXh0ZW5kKFsiLS1tb3VudCIsCisgICAgICAgICAgICAgICAgICAg
ICAidHlwZT1iaW5kLHNvdXJjZT0lcyx0YXJnZXQ9L2hvbWUvdGVzdC93ZWItcGxhdGZvcm0tdGVz
dHMiICUgd3B0X3Jvb3RdKQorICAgIGFyZ3MuZXh0ZW5kKFsiLWl0IiwgIndwdDpsb2NhbCJdKQor
CisgICAgcHJvYyA9IHN1YnByb2Nlc3MuUG9wZW4oYXJncykKKyAgICBwcm9jLndhaXQoKQorICAg
IHJldHVybiBwcm9jLnJldHVybmNvZGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvZG9ja2VyL3JldHJ5LnB5IGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9kb2NrZXIvcmV0cnkucHkK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uNjEyNmI3ODFiZmFkZDE1ZTgyYjhhM2EzYjk0OTQwNTA5MzllYWI2YwotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvZG9ja2VyL3JldHJ5LnB5CkBAIC0wLDAgKzEsNTggQEAKKyMhIC91c3IvYmluL2Vu
diBweXRob24KK2ltcG9ydCBhcmdwYXJzZQoraW1wb3J0IHN1YnByb2Nlc3MKK2ltcG9ydCB0aW1l
CitpbXBvcnQgc3lzCisKKworZGVmIGdldF9hcmdzKCk6CisgICAgcGFyc2VyID0gYXJncGFyc2Uu
QXJndW1lbnRQYXJzZXIoKQorICAgIHBhcnNlci5hZGRfYXJndW1lbnQoIi0tZGVsYXkiLCBhY3Rp
b249InN0b3JlIiwgdHlwZT1mbG9hdCwgZGVmYXVsdD0zLCBoZWxwPSJJbml0aWFsIGRlbGF5IGJl
Zm9yZSByZXRyeSwgaW4gc2Vjb25kcyIpCisgICAgcGFyc2VyLmFkZF9hcmd1bWVudCgiLS1jb3Vu
dCIsIGFjdGlvbj0ic3RvcmUiLCB0eXBlPWludCwgZGVmYXVsdD01LCBoZWxwPSJUb3RhbCBudW1i
ZXIgb2YgdHJpZXMiKQorICAgIHBhcnNlci5hZGRfYXJndW1lbnQoIi0tZmFjdG9yIiwgYWN0aW9u
PSJzdG9yZSIsIHR5cGU9ZmxvYXQsIGRlZmF1bHQ9MiwgaGVscD0iRXhwb25lbnRpYWwgYmFja29m
ZiBmYWN0b3IiKQorICAgIHBhcnNlci5hZGRfYXJndW1lbnQoImNtZCIsIG5hcmdzPWFyZ3BhcnNl
LlJFTUFJTkRFUikKKyAgICByZXR1cm4gcGFyc2VyCisKKworZGVmIGl0ZXJfcmFuZ2Uobik6Cisg
ICAgaSA9IDAKKyAgICB3aGlsZSBpIDwgbjoKKyAgICAgICAgeWllbGQgaQorICAgICAgICBpICs9
IDEKKworCitkZWYgbWFpbigpOgorICAgIGFyZ3MgPSBnZXRfYXJncygpLnBhcnNlX2FyZ3MoKQor
CisgICAgaWYgbm90IGFyZ3MuY21kOgorICAgICAgICBwcmludCgiTm8gY29tbWFuZCBzdXBwbGll
ZCIpCisgICAgICAgIHN5cy5leGl0KDEpCisKKyAgICByZXRjb2RlID0gTm9uZQorCisgICAgZm9y
IG4gaW4gaXRlcl9yYW5nZShhcmdzLmNvdW50KToKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAg
cHJpbnQoIlJ1bm5pbmcgJXMgW3RyeSAlZC8lZF0iICUgKCIgIi5qb2luKGFyZ3MuY21kKSwgKG4r
MSksIGFyZ3MuY291bnQpKQorICAgICAgICAgICAgc3VicHJvY2Vzcy5jaGVja19jYWxsKGFyZ3Mu
Y21kKQorICAgICAgICBleGNlcHQgc3VicHJvY2Vzcy5DYWxsZWRQcm9jZXNzRXJyb3IgYXMgZToK
KyAgICAgICAgICAgIHJldGNvZGUgPSBlLnJldHVybmNvZGUKKyAgICAgICAgZWxzZToKKyAgICAg
ICAgICAgIHByaW50KCJDb21tYW5kIHN1Y2NlZWRlZCIpCisgICAgICAgICAgICByZXRjb2RlID0g
MAorICAgICAgICAgICAgYnJlYWsKKworICAgICAgICBpZiBhcmdzLmZhY3RvciA9PSAwOgorICAg
ICAgICAgICAgd2FpdF90aW1lID0gKG4rMSkgKiBhcmdzLmRlbGF5CisgICAgICAgIGVsc2U6Cisg
ICAgICAgICAgICB3YWl0X3RpbWUgPSBhcmdzLmZhY3RvcioqbiAqIGFyZ3MuZGVsYXkKKyAgICAg
ICAgaWYgbiA8IGFyZ3MuY291bnQgLSAxOgorICAgICAgICAgICAgcHJpbnQoIkNvbW1hbmQgZmFp
bGVkLCB3YWl0aW5nICVzIHNlY29uZHMgdG8gcmV0cnkiICUgd2FpdF90aW1lKQorICAgICAgICAg
ICAgdGltZS5zbGVlcCh3YWl0X3RpbWUpCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBwcmlu
dCgiQ29tbWFuZCBmYWlsZWQsIG91dCBvZiByZXRyaWVzIikKKworICAgIHN5cy5leGl0KHJldGNv
ZGUpCisKKworaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKKyAgICBtYWluKCkKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvZG9j
a2VyL3NlY2NvbXAuanNvbiBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvZG9ja2VyL3NlY2NvbXAuanNvbgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44ZTgyNzRjZTMyODBl
Njk4ZDJjMWEwYWJlYmEwNWE3NjlmNGM0NTZkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9kb2NrZXIvc2VjY29tcC5q
c29uCkBAIC0wLDAgKzEsNzk4IEBACit7CisgICJkZWZhdWx0QWN0aW9uIjogIlNDTVBfQUNUX0VS
Uk5PIiwKKyAgImFyY2hNYXAiOiBbCisgICAgeworICAgICAgImFyY2hpdGVjdHVyZSI6ICJTQ01Q
X0FSQ0hfWDg2XzY0IiwKKyAgICAgICJzdWJBcmNoaXRlY3R1cmVzIjogWworICAgICAgICAiU0NN
UF9BUkNIX1g4NiIsCisgICAgICAgICJTQ01QX0FSQ0hfWDMyIgorICAgICAgXQorICAgIH0sCisg
ICAgeworICAgICAgImFyY2hpdGVjdHVyZSI6ICJTQ01QX0FSQ0hfQUFSQ0g2NCIsCisgICAgICAi
c3ViQXJjaGl0ZWN0dXJlcyI6IFsKKyAgICAgICAgIlNDTVBfQVJDSF9BUk0iCisgICAgICBdCisg
ICAgfSwKKyAgICB7CisgICAgICAiYXJjaGl0ZWN0dXJlIjogIlNDTVBfQVJDSF9NSVBTNjQiLAor
ICAgICAgInN1YkFyY2hpdGVjdHVyZXMiOiBbCisgICAgICAgICJTQ01QX0FSQ0hfTUlQUyIsCisg
ICAgICAgICJTQ01QX0FSQ0hfTUlQUzY0TjMyIgorICAgICAgXQorICAgIH0sCisgICAgeworICAg
ICAgImFyY2hpdGVjdHVyZSI6ICJTQ01QX0FSQ0hfTUlQUzY0TjMyIiwKKyAgICAgICJzdWJBcmNo
aXRlY3R1cmVzIjogWworICAgICAgICAiU0NNUF9BUkNIX01JUFMiLAorICAgICAgICAiU0NNUF9B
UkNIX01JUFM2NCIKKyAgICAgIF0KKyAgICB9LAorICAgIHsKKyAgICAgICJhcmNoaXRlY3R1cmUi
OiAiU0NNUF9BUkNIX01JUFNFTDY0IiwKKyAgICAgICJzdWJBcmNoaXRlY3R1cmVzIjogWworICAg
ICAgICAiU0NNUF9BUkNIX01JUFNFTCIsCisgICAgICAgICJTQ01QX0FSQ0hfTUlQU0VMNjROMzIi
CisgICAgICBdCisgICAgfSwKKyAgICB7CisgICAgICAiYXJjaGl0ZWN0dXJlIjogIlNDTVBfQVJD
SF9NSVBTRUw2NE4zMiIsCisgICAgICAic3ViQXJjaGl0ZWN0dXJlcyI6IFsKKyAgICAgICAgIlND
TVBfQVJDSF9NSVBTRUwiLAorICAgICAgICAiU0NNUF9BUkNIX01JUFNFTDY0IgorICAgICAgXQor
ICAgIH0sCisgICAgeworICAgICAgImFyY2hpdGVjdHVyZSI6ICJTQ01QX0FSQ0hfUzM5MFgiLAor
ICAgICAgInN1YkFyY2hpdGVjdHVyZXMiOiBbCisgICAgICAgICJTQ01QX0FSQ0hfUzM5MCIKKyAg
ICAgIF0KKyAgICB9CisgIF0sCisgICJzeXNjYWxscyI6IFsKKyAgICB7CisgICAgICAibmFtZXMi
OiBbCisgICAgICAgICJhY2NlcHQiLAorICAgICAgICAiYWNjZXB0NCIsCisgICAgICAgICJhY2Nl
c3MiLAorICAgICAgICAiYWRqdGltZXgiLAorICAgICAgICAiYWxhcm0iLAorICAgICAgICAiYmlu
ZCIsCisgICAgICAgICJicmsiLAorICAgICAgICAiY2FwZ2V0IiwKKyAgICAgICAgImNhcHNldCIs
CisgICAgICAgICJjaGRpciIsCisgICAgICAgICJjaG1vZCIsCisgICAgICAgICJjaG93biIsCisg
ICAgICAgICJjaG93bjMyIiwKKyAgICAgICAgImNsb2NrX2dldHJlcyIsCisgICAgICAgICJjbG9j
a19nZXR0aW1lIiwKKyAgICAgICAgImNsb2NrX25hbm9zbGVlcCIsCisgICAgICAgICJjbG9uZSIs
CisgICAgICAgICJjbG9zZSIsCisgICAgICAgICJjb25uZWN0IiwKKyAgICAgICAgImNvcHlfZmls
ZV9yYW5nZSIsCisgICAgICAgICJjcmVhdCIsCisgICAgICAgICJkdXAiLAorICAgICAgICAiZHVw
MiIsCisgICAgICAgICJkdXAzIiwKKyAgICAgICAgImVwb2xsX2NyZWF0ZSIsCisgICAgICAgICJl
cG9sbF9jcmVhdGUxIiwKKyAgICAgICAgImVwb2xsX2N0bCIsCisgICAgICAgICJlcG9sbF9jdGxf
b2xkIiwKKyAgICAgICAgImVwb2xsX3B3YWl0IiwKKyAgICAgICAgImVwb2xsX3dhaXQiLAorICAg
ICAgICAiZXBvbGxfd2FpdF9vbGQiLAorICAgICAgICAiZXZlbnRmZCIsCisgICAgICAgICJldmVu
dGZkMiIsCisgICAgICAgICJleGVjdmUiLAorICAgICAgICAiZXhlY3ZlYXQiLAorICAgICAgICAi
ZXhpdCIsCisgICAgICAgICJleGl0X2dyb3VwIiwKKyAgICAgICAgImZhY2Nlc3NhdCIsCisgICAg
ICAgICJmYWR2aXNlNjQiLAorICAgICAgICAiZmFkdmlzZTY0XzY0IiwKKyAgICAgICAgImZhbGxv
Y2F0ZSIsCisgICAgICAgICJmYW5vdGlmeV9tYXJrIiwKKyAgICAgICAgImZjaGRpciIsCisgICAg
ICAgICJmY2htb2QiLAorICAgICAgICAiZmNobW9kYXQiLAorICAgICAgICAiZmNob3duIiwKKyAg
ICAgICAgImZjaG93bjMyIiwKKyAgICAgICAgImZjaG93bmF0IiwKKyAgICAgICAgImZjbnRsIiwK
KyAgICAgICAgImZjbnRsNjQiLAorICAgICAgICAiZmRhdGFzeW5jIiwKKyAgICAgICAgImZnZXR4
YXR0ciIsCisgICAgICAgICJmbGlzdHhhdHRyIiwKKyAgICAgICAgImZsb2NrIiwKKyAgICAgICAg
ImZvcmsiLAorICAgICAgICAiZnJlbW92ZXhhdHRyIiwKKyAgICAgICAgImZzZXR4YXR0ciIsCisg
ICAgICAgICJmc3RhdCIsCisgICAgICAgICJmc3RhdDY0IiwKKyAgICAgICAgImZzdGF0YXQ2NCIs
CisgICAgICAgICJmc3RhdGZzIiwKKyAgICAgICAgImZzdGF0ZnM2NCIsCisgICAgICAgICJmc3lu
YyIsCisgICAgICAgICJmdHJ1bmNhdGUiLAorICAgICAgICAiZnRydW5jYXRlNjQiLAorICAgICAg
ICAiZnV0ZXgiLAorICAgICAgICAiZnV0aW1lc2F0IiwKKyAgICAgICAgImdldGNwdSIsCisgICAg
ICAgICJnZXRjd2QiLAorICAgICAgICAiZ2V0ZGVudHMiLAorICAgICAgICAiZ2V0ZGVudHM2NCIs
CisgICAgICAgICJnZXRlZ2lkIiwKKyAgICAgICAgImdldGVnaWQzMiIsCisgICAgICAgICJnZXRl
dWlkIiwKKyAgICAgICAgImdldGV1aWQzMiIsCisgICAgICAgICJnZXRnaWQiLAorICAgICAgICAi
Z2V0Z2lkMzIiLAorICAgICAgICAiZ2V0Z3JvdXBzIiwKKyAgICAgICAgImdldGdyb3VwczMyIiwK
KyAgICAgICAgImdldGl0aW1lciIsCisgICAgICAgICJnZXRwZWVybmFtZSIsCisgICAgICAgICJn
ZXRwZ2lkIiwKKyAgICAgICAgImdldHBncnAiLAorICAgICAgICAiZ2V0cGlkIiwKKyAgICAgICAg
ImdldHBwaWQiLAorICAgICAgICAiZ2V0cHJpb3JpdHkiLAorICAgICAgICAiZ2V0cmFuZG9tIiwK
KyAgICAgICAgImdldHJlc2dpZCIsCisgICAgICAgICJnZXRyZXNnaWQzMiIsCisgICAgICAgICJn
ZXRyZXN1aWQiLAorICAgICAgICAiZ2V0cmVzdWlkMzIiLAorICAgICAgICAiZ2V0cmxpbWl0IiwK
KyAgICAgICAgImdldF9yb2J1c3RfbGlzdCIsCisgICAgICAgICJnZXRydXNhZ2UiLAorICAgICAg
ICAiZ2V0c2lkIiwKKyAgICAgICAgImdldHNvY2tuYW1lIiwKKyAgICAgICAgImdldHNvY2tvcHQi
LAorICAgICAgICAiZ2V0X3RocmVhZF9hcmVhIiwKKyAgICAgICAgImdldHRpZCIsCisgICAgICAg
ICJnZXR0aW1lb2ZkYXkiLAorICAgICAgICAiZ2V0dWlkIiwKKyAgICAgICAgImdldHVpZDMyIiwK
KyAgICAgICAgImdldHhhdHRyIiwKKyAgICAgICAgImlub3RpZnlfYWRkX3dhdGNoIiwKKyAgICAg
ICAgImlub3RpZnlfaW5pdCIsCisgICAgICAgICJpbm90aWZ5X2luaXQxIiwKKyAgICAgICAgImlu
b3RpZnlfcm1fd2F0Y2giLAorICAgICAgICAiaW9fY2FuY2VsIiwKKyAgICAgICAgImlvY3RsIiwK
KyAgICAgICAgImlvX2Rlc3Ryb3kiLAorICAgICAgICAiaW9fZ2V0ZXZlbnRzIiwKKyAgICAgICAg
ImlvX3BnZXRldmVudHMiLAorICAgICAgICAiaW9wcmlvX2dldCIsCisgICAgICAgICJpb3ByaW9f
c2V0IiwKKyAgICAgICAgImlvX3NldHVwIiwKKyAgICAgICAgImlvX3N1Ym1pdCIsCisgICAgICAg
ICJpb191cmluZ19lbnRlciIsCisgICAgICAgICJpb191cmluZ19yZWdpc3RlciIsCisgICAgICAg
ICJpb191cmluZ19zZXR1cCIsCisgICAgICAgICJpcGMiLAorICAgICAgICAia2lsbCIsCisgICAg
ICAgICJsY2hvd24iLAorICAgICAgICAibGNob3duMzIiLAorICAgICAgICAibGdldHhhdHRyIiwK
KyAgICAgICAgImxpbmsiLAorICAgICAgICAibGlua2F0IiwKKyAgICAgICAgImxpc3RlbiIsCisg
ICAgICAgICJsaXN0eGF0dHIiLAorICAgICAgICAibGxpc3R4YXR0ciIsCisgICAgICAgICJfbGxz
ZWVrIiwKKyAgICAgICAgImxyZW1vdmV4YXR0ciIsCisgICAgICAgICJsc2VlayIsCisgICAgICAg
ICJsc2V0eGF0dHIiLAorICAgICAgICAibHN0YXQiLAorICAgICAgICAibHN0YXQ2NCIsCisgICAg
ICAgICJtYWR2aXNlIiwKKyAgICAgICAgIm1lbWZkX2NyZWF0ZSIsCisgICAgICAgICJtaW5jb3Jl
IiwKKyAgICAgICAgIm1rZGlyIiwKKyAgICAgICAgIm1rZGlyYXQiLAorICAgICAgICAibWtub2Qi
LAorICAgICAgICAibWtub2RhdCIsCisgICAgICAgICJtbG9jayIsCisgICAgICAgICJtbG9jazIi
LAorICAgICAgICAibWxvY2thbGwiLAorICAgICAgICAibW1hcCIsCisgICAgICAgICJtbWFwMiIs
CisgICAgICAgICJtcHJvdGVjdCIsCisgICAgICAgICJtcV9nZXRzZXRhdHRyIiwKKyAgICAgICAg
Im1xX25vdGlmeSIsCisgICAgICAgICJtcV9vcGVuIiwKKyAgICAgICAgIm1xX3RpbWVkcmVjZWl2
ZSIsCisgICAgICAgICJtcV90aW1lZHNlbmQiLAorICAgICAgICAibXFfdW5saW5rIiwKKyAgICAg
ICAgIm1yZW1hcCIsCisgICAgICAgICJtc2djdGwiLAorICAgICAgICAibXNnZ2V0IiwKKyAgICAg
ICAgIm1zZ3JjdiIsCisgICAgICAgICJtc2dzbmQiLAorICAgICAgICAibXN5bmMiLAorICAgICAg
ICAibXVubG9jayIsCisgICAgICAgICJtdW5sb2NrYWxsIiwKKyAgICAgICAgIm11bm1hcCIsCisg
ICAgICAgICJuYW5vc2xlZXAiLAorICAgICAgICAibmV3ZnN0YXRhdCIsCisgICAgICAgICJfbmV3
c2VsZWN0IiwKKyAgICAgICAgIm9wZW4iLAorICAgICAgICAib3BlbmF0IiwKKyAgICAgICAgInBh
dXNlIiwKKyAgICAgICAgInBpcGUiLAorICAgICAgICAicGlwZTIiLAorICAgICAgICAicG9sbCIs
CisgICAgICAgICJwcG9sbCIsCisgICAgICAgICJwcmN0bCIsCisgICAgICAgICJwcmVhZDY0IiwK
KyAgICAgICAgInByZWFkdiIsCisgICAgICAgICJwcmVhZHYyIiwKKyAgICAgICAgInBybGltaXQ2
NCIsCisgICAgICAgICJwc2VsZWN0NiIsCisgICAgICAgICJwd3JpdGU2NCIsCisgICAgICAgICJw
d3JpdGV2IiwKKyAgICAgICAgInB3cml0ZXYyIiwKKyAgICAgICAgInJlYWQiLAorICAgICAgICAi
cmVhZGFoZWFkIiwKKyAgICAgICAgInJlYWRsaW5rIiwKKyAgICAgICAgInJlYWRsaW5rYXQiLAor
ICAgICAgICAicmVhZHYiLAorICAgICAgICAicmVjdiIsCisgICAgICAgICJyZWN2ZnJvbSIsCisg
ICAgICAgICJyZWN2bW1zZyIsCisgICAgICAgICJyZWN2bXNnIiwKKyAgICAgICAgInJlbWFwX2Zp
bGVfcGFnZXMiLAorICAgICAgICAicmVtb3ZleGF0dHIiLAorICAgICAgICAicmVuYW1lIiwKKyAg
ICAgICAgInJlbmFtZWF0IiwKKyAgICAgICAgInJlbmFtZWF0MiIsCisgICAgICAgICJyZXN0YXJ0
X3N5c2NhbGwiLAorICAgICAgICAicm1kaXIiLAorICAgICAgICAicnRfc2lnYWN0aW9uIiwKKyAg
ICAgICAgInJ0X3NpZ3BlbmRpbmciLAorICAgICAgICAicnRfc2lncHJvY21hc2siLAorICAgICAg
ICAicnRfc2lncXVldWVpbmZvIiwKKyAgICAgICAgInJ0X3NpZ3JldHVybiIsCisgICAgICAgICJy
dF9zaWdzdXNwZW5kIiwKKyAgICAgICAgInJ0X3NpZ3RpbWVkd2FpdCIsCisgICAgICAgICJydF90
Z3NpZ3F1ZXVlaW5mbyIsCisgICAgICAgICJzY2hlZF9nZXRhZmZpbml0eSIsCisgICAgICAgICJz
Y2hlZF9nZXRhdHRyIiwKKyAgICAgICAgInNjaGVkX2dldHBhcmFtIiwKKyAgICAgICAgInNjaGVk
X2dldF9wcmlvcml0eV9tYXgiLAorICAgICAgICAic2NoZWRfZ2V0X3ByaW9yaXR5X21pbiIsCisg
ICAgICAgICJzY2hlZF9nZXRzY2hlZHVsZXIiLAorICAgICAgICAic2NoZWRfcnJfZ2V0X2ludGVy
dmFsIiwKKyAgICAgICAgInNjaGVkX3NldGFmZmluaXR5IiwKKyAgICAgICAgInNjaGVkX3NldGF0
dHIiLAorICAgICAgICAic2NoZWRfc2V0cGFyYW0iLAorICAgICAgICAic2NoZWRfc2V0c2NoZWR1
bGVyIiwKKyAgICAgICAgInNjaGVkX3lpZWxkIiwKKyAgICAgICAgInNlY2NvbXAiLAorICAgICAg
ICAic2VsZWN0IiwKKyAgICAgICAgInNlbWN0bCIsCisgICAgICAgICJzZW1nZXQiLAorICAgICAg
ICAic2Vtb3AiLAorICAgICAgICAic2VtdGltZWRvcCIsCisgICAgICAgICJzZW5kIiwKKyAgICAg
ICAgInNlbmRmaWxlIiwKKyAgICAgICAgInNlbmRmaWxlNjQiLAorICAgICAgICAic2VuZG1tc2ci
LAorICAgICAgICAic2VuZG1zZyIsCisgICAgICAgICJzZW5kdG8iLAorICAgICAgICAic2V0ZnNn
aWQiLAorICAgICAgICAic2V0ZnNnaWQzMiIsCisgICAgICAgICJzZXRmc3VpZCIsCisgICAgICAg
ICJzZXRmc3VpZDMyIiwKKyAgICAgICAgInNldGdpZCIsCisgICAgICAgICJzZXRnaWQzMiIsCisg
ICAgICAgICJzZXRncm91cHMiLAorICAgICAgICAic2V0Z3JvdXBzMzIiLAorICAgICAgICAic2V0
aXRpbWVyIiwKKyAgICAgICAgInNldHBnaWQiLAorICAgICAgICAic2V0cHJpb3JpdHkiLAorICAg
ICAgICAic2V0cmVnaWQiLAorICAgICAgICAic2V0cmVnaWQzMiIsCisgICAgICAgICJzZXRyZXNn
aWQiLAorICAgICAgICAic2V0cmVzZ2lkMzIiLAorICAgICAgICAic2V0cmVzdWlkIiwKKyAgICAg
ICAgInNldHJlc3VpZDMyIiwKKyAgICAgICAgInNldHJldWlkIiwKKyAgICAgICAgInNldHJldWlk
MzIiLAorICAgICAgICAic2V0cmxpbWl0IiwKKyAgICAgICAgInNldF9yb2J1c3RfbGlzdCIsCisg
ICAgICAgICJzZXRzaWQiLAorICAgICAgICAic2V0c29ja29wdCIsCisgICAgICAgICJzZXRfdGhy
ZWFkX2FyZWEiLAorICAgICAgICAic2V0X3RpZF9hZGRyZXNzIiwKKyAgICAgICAgInNldHVpZCIs
CisgICAgICAgICJzZXR1aWQzMiIsCisgICAgICAgICJzZXR4YXR0ciIsCisgICAgICAgICJzaG1h
dCIsCisgICAgICAgICJzaG1jdGwiLAorICAgICAgICAic2htZHQiLAorICAgICAgICAic2htZ2V0
IiwKKyAgICAgICAgInNodXRkb3duIiwKKyAgICAgICAgInNpZ2FsdHN0YWNrIiwKKyAgICAgICAg
InNpZ25hbGZkIiwKKyAgICAgICAgInNpZ25hbGZkNCIsCisgICAgICAgICJzaWdwcm9jbWFzayIs
CisgICAgICAgICJzaWdyZXR1cm4iLAorICAgICAgICAic29ja2V0IiwKKyAgICAgICAgInNvY2tl
dGNhbGwiLAorICAgICAgICAic29ja2V0cGFpciIsCisgICAgICAgICJzcGxpY2UiLAorICAgICAg
ICAic3RhdCIsCisgICAgICAgICJzdGF0NjQiLAorICAgICAgICAic3RhdGZzIiwKKyAgICAgICAg
InN0YXRmczY0IiwKKyAgICAgICAgInN0YXR4IiwKKyAgICAgICAgInN5bWxpbmsiLAorICAgICAg
ICAic3ltbGlua2F0IiwKKyAgICAgICAgInN5bmMiLAorICAgICAgICAic3luY19maWxlX3Jhbmdl
IiwKKyAgICAgICAgInN5bmNmcyIsCisgICAgICAgICJzeXNpbmZvIiwKKyAgICAgICAgInRlZSIs
CisgICAgICAgICJ0Z2tpbGwiLAorICAgICAgICAidGltZSIsCisgICAgICAgICJ0aW1lcl9jcmVh
dGUiLAorICAgICAgICAidGltZXJfZGVsZXRlIiwKKyAgICAgICAgInRpbWVyZmRfY3JlYXRlIiwK
KyAgICAgICAgInRpbWVyZmRfZ2V0dGltZSIsCisgICAgICAgICJ0aW1lcmZkX3NldHRpbWUiLAor
ICAgICAgICAidGltZXJfZ2V0b3ZlcnJ1biIsCisgICAgICAgICJ0aW1lcl9nZXR0aW1lIiwKKyAg
ICAgICAgInRpbWVyX3NldHRpbWUiLAorICAgICAgICAidGltZXMiLAorICAgICAgICAidGtpbGwi
LAorICAgICAgICAidHJ1bmNhdGUiLAorICAgICAgICAidHJ1bmNhdGU2NCIsCisgICAgICAgICJ1
Z2V0cmxpbWl0IiwKKyAgICAgICAgInVtYXNrIiwKKyAgICAgICAgInVuYW1lIiwKKyAgICAgICAg
InVubGluayIsCisgICAgICAgICJ1bmxpbmthdCIsCisgICAgICAgICJ1bnNoYXJlIiwKKyAgICAg
ICAgInV0aW1lIiwKKyAgICAgICAgInV0aW1lbnNhdCIsCisgICAgICAgICJ1dGltZXMiLAorICAg
ICAgICAidmZvcmsiLAorICAgICAgICAidm1zcGxpY2UiLAorICAgICAgICAid2FpdDQiLAorICAg
ICAgICAid2FpdGlkIiwKKyAgICAgICAgIndhaXRwaWQiLAorICAgICAgICAid3JpdGUiLAorICAg
ICAgICAid3JpdGV2IgorICAgICAgXSwKKyAgICAgICJhY3Rpb24iOiAiU0NNUF9BQ1RfQUxMT1ci
LAorICAgICAgImFyZ3MiOiBbXSwKKyAgICAgICJjb21tZW50IjogIiIsCisgICAgICAiaW5jbHVk
ZXMiOiBudWxsLAorICAgICAgImV4Y2x1ZGVzIjogbnVsbAorICAgIH0sCisgICAgeworICAgICAg
Im5hbWVzIjogWworICAgICAgICAicHRyYWNlIgorICAgICAgXSwKKyAgICAgICJhY3Rpb24iOiAi
U0NNUF9BQ1RfQUxMT1ciLAorICAgICAgImFyZ3MiOiBudWxsLAorICAgICAgImNvbW1lbnQiOiAi
IiwKKyAgICAgICJpbmNsdWRlcyI6IHsKKyAgICAgICAgIm1pbktlcm5lbCI6ICI0LjgiCisgICAg
ICB9LAorICAgICAgImV4Y2x1ZGVzIjogbnVsbAorICAgIH0sCisgICAgeworICAgICAgIm5hbWVz
IjogWworICAgICAgICAicGVyc29uYWxpdHkiCisgICAgICBdLAorICAgICAgImFjdGlvbiI6ICJT
Q01QX0FDVF9BTExPVyIsCisgICAgICAiYXJncyI6IFsKKyAgICAgICAgeworICAgICAgICAgICJp
bmRleCI6IDAsCisgICAgICAgICAgInZhbHVlIjogMCwKKyAgICAgICAgICAidmFsdWVUd28iOiAw
LAorICAgICAgICAgICJvcCI6ICJTQ01QX0NNUF9FUSIKKyAgICAgICAgfQorICAgICAgXSwKKyAg
ICAgICJjb21tZW50IjogIiIsCisgICAgICAiaW5jbHVkZXMiOiBudWxsLAorICAgICAgImV4Y2x1
ZGVzIjogbnVsbAorICAgIH0sCisgICAgeworICAgICAgIm5hbWVzIjogWworICAgICAgICAicGVy
c29uYWxpdHkiCisgICAgICBdLAorICAgICAgImFjdGlvbiI6ICJTQ01QX0FDVF9BTExPVyIsCisg
ICAgICAiYXJncyI6IFsKKyAgICAgICAgeworICAgICAgICAgICJpbmRleCI6IDAsCisgICAgICAg
ICAgInZhbHVlIjogOCwKKyAgICAgICAgICAidmFsdWVUd28iOiAwLAorICAgICAgICAgICJvcCI6
ICJTQ01QX0NNUF9FUSIKKyAgICAgICAgfQorICAgICAgXSwKKyAgICAgICJjb21tZW50IjogIiIs
CisgICAgICAiaW5jbHVkZXMiOiBudWxsLAorICAgICAgImV4Y2x1ZGVzIjogbnVsbAorICAgIH0s
CisgICAgeworICAgICAgIm5hbWVzIjogWworICAgICAgICAicGVyc29uYWxpdHkiCisgICAgICBd
LAorICAgICAgImFjdGlvbiI6ICJTQ01QX0FDVF9BTExPVyIsCisgICAgICAiYXJncyI6IFsKKyAg
ICAgICAgeworICAgICAgICAgICJpbmRleCI6IDAsCisgICAgICAgICAgInZhbHVlIjogMTMxMDcy
LAorICAgICAgICAgICJ2YWx1ZVR3byI6IDAsCisgICAgICAgICAgIm9wIjogIlNDTVBfQ01QX0VR
IgorICAgICAgICB9CisgICAgICBdLAorICAgICAgImNvbW1lbnQiOiAiIiwKKyAgICAgICJpbmNs
dWRlcyI6IG51bGwsCisgICAgICAiZXhjbHVkZXMiOiBudWxsCisgICAgfSwKKyAgICB7CisgICAg
ICAibmFtZXMiOiBbCisgICAgICAgICJwZXJzb25hbGl0eSIKKyAgICAgIF0sCisgICAgICAiYWN0
aW9uIjogIlNDTVBfQUNUX0FMTE9XIiwKKyAgICAgICJhcmdzIjogWworICAgICAgICB7CisgICAg
ICAgICAgImluZGV4IjogMCwKKyAgICAgICAgICAidmFsdWUiOiAxMzEwODAsCisgICAgICAgICAg
InZhbHVlVHdvIjogMCwKKyAgICAgICAgICAib3AiOiAiU0NNUF9DTVBfRVEiCisgICAgICAgIH0K
KyAgICAgIF0sCisgICAgICAiY29tbWVudCI6ICIiLAorICAgICAgImluY2x1ZGVzIjogbnVsbCwK
KyAgICAgICJleGNsdWRlcyI6IG51bGwKKyAgICB9LAorICAgIHsKKyAgICAgICJuYW1lcyI6IFsK
KyAgICAgICAgInBlcnNvbmFsaXR5IgorICAgICAgXSwKKyAgICAgICJhY3Rpb24iOiAiU0NNUF9B
Q1RfQUxMT1ciLAorICAgICAgImFyZ3MiOiBbCisgICAgICAgIHsKKyAgICAgICAgICAiaW5kZXgi
OiAwLAorICAgICAgICAgICJ2YWx1ZSI6IDQyOTQ5NjcyOTUsCisgICAgICAgICAgInZhbHVlVHdv
IjogMCwKKyAgICAgICAgICAib3AiOiAiU0NNUF9DTVBfRVEiCisgICAgICAgIH0KKyAgICAgIF0s
CisgICAgICAiY29tbWVudCI6ICIiLAorICAgICAgImluY2x1ZGVzIjogbnVsbCwKKyAgICAgICJl
eGNsdWRlcyI6IG51bGwKKyAgICB9LAorICAgIHsKKyAgICAgICJuYW1lcyI6IFsKKyAgICAgICAg
InN5bmNfZmlsZV9yYW5nZTIiCisgICAgICBdLAorICAgICAgImFjdGlvbiI6ICJTQ01QX0FDVF9B
TExPVyIsCisgICAgICAiYXJncyI6IFtdLAorICAgICAgImNvbW1lbnQiOiAiIiwKKyAgICAgICJp
bmNsdWRlcyI6IHsKKyAgICAgICAgImFyY2hlcyI6IFsKKyAgICAgICAgICAicHBjNjRsZSIKKyAg
ICAgICAgXQorICAgICAgfSwKKyAgICAgICJleGNsdWRlcyI6IG51bGwKKyAgICB9LAorICAgIHsK
KyAgICAgICJuYW1lcyI6IFsKKyAgICAgICAgImFybV9mYWR2aXNlNjRfNjQiLAorICAgICAgICAi
YXJtX3N5bmNfZmlsZV9yYW5nZSIsCisgICAgICAgICJzeW5jX2ZpbGVfcmFuZ2UyIiwKKyAgICAg
ICAgImJyZWFrcG9pbnQiLAorICAgICAgICAiY2FjaGVmbHVzaCIsCisgICAgICAgICJzZXRfdGxz
IgorICAgICAgXSwKKyAgICAgICJhY3Rpb24iOiAiU0NNUF9BQ1RfQUxMT1ciLAorICAgICAgImFy
Z3MiOiBbXSwKKyAgICAgICJjb21tZW50IjogIiIsCisgICAgICAiaW5jbHVkZXMiOiB7CisgICAg
ICAgICJhcmNoZXMiOiBbCisgICAgICAgICAgImFybSIsCisgICAgICAgICAgImFybTY0IgorICAg
ICAgICBdCisgICAgICB9LAorICAgICAgImV4Y2x1ZGVzIjogbnVsbAorICAgIH0sCisgICAgewor
ICAgICAgIm5hbWVzIjogWworICAgICAgICAiYXJjaF9wcmN0bCIKKyAgICAgIF0sCisgICAgICAi
YWN0aW9uIjogIlNDTVBfQUNUX0FMTE9XIiwKKyAgICAgICJhcmdzIjogW10sCisgICAgICAiY29t
bWVudCI6ICIiLAorICAgICAgImluY2x1ZGVzIjogeworICAgICAgICAiYXJjaGVzIjogWworICAg
ICAgICAgICJhbWQ2NCIsCisgICAgICAgICAgIngzMiIKKyAgICAgICAgXQorICAgICAgfSwKKyAg
ICAgICJleGNsdWRlcyI6IG51bGwKKyAgICB9LAorICAgIHsKKyAgICAgICJuYW1lcyI6IFsKKyAg
ICAgICAgIm1vZGlmeV9sZHQiCisgICAgICBdLAorICAgICAgImFjdGlvbiI6ICJTQ01QX0FDVF9B
TExPVyIsCisgICAgICAiYXJncyI6IFtdLAorICAgICAgImNvbW1lbnQiOiAiIiwKKyAgICAgICJp
bmNsdWRlcyI6IHsKKyAgICAgICAgImFyY2hlcyI6IFsKKyAgICAgICAgICAiYW1kNjQiLAorICAg
ICAgICAgICJ4MzIiLAorICAgICAgICAgICJ4ODYiCisgICAgICAgIF0KKyAgICAgIH0sCisgICAg
ICAiZXhjbHVkZXMiOiBudWxsCisgICAgfSwKKyAgICB7CisgICAgICAibmFtZXMiOiBbCisgICAg
ICAgICJzMzkwX3BjaV9tbWlvX3JlYWQiLAorICAgICAgICAiczM5MF9wY2lfbW1pb193cml0ZSIs
CisgICAgICAgICJzMzkwX3J1bnRpbWVfaW5zdHIiCisgICAgICBdLAorICAgICAgImFjdGlvbiI6
ICJTQ01QX0FDVF9BTExPVyIsCisgICAgICAiYXJncyI6IFtdLAorICAgICAgImNvbW1lbnQiOiAi
IiwKKyAgICAgICJpbmNsdWRlcyI6IHsKKyAgICAgICAgImFyY2hlcyI6IFsKKyAgICAgICAgICAi
czM5MCIsCisgICAgICAgICAgInMzOTB4IgorICAgICAgICBdCisgICAgICB9LAorICAgICAgImV4
Y2x1ZGVzIjogbnVsbAorICAgIH0sCisgICAgeworICAgICAgIm5hbWVzIjogWworICAgICAgICAi
b3Blbl9ieV9oYW5kbGVfYXQiCisgICAgICBdLAorICAgICAgImFjdGlvbiI6ICJTQ01QX0FDVF9B
TExPVyIsCisgICAgICAiYXJncyI6IFtdLAorICAgICAgImNvbW1lbnQiOiAiIiwKKyAgICAgICJp
bmNsdWRlcyI6IHsKKyAgICAgICAgImNhcHMiOiBbCisgICAgICAgICAgIkNBUF9EQUNfUkVBRF9T
RUFSQ0giCisgICAgICAgIF0KKyAgICAgIH0sCisgICAgICAiZXhjbHVkZXMiOiBudWxsCisgICAg
fSwKKyAgICB7CisgICAgICAibmFtZXMiOiBbCisgICAgICAgICJicGYiLAorICAgICAgICAiZmFu
b3RpZnlfaW5pdCIsCisgICAgICAgICJsb29rdXBfZGNvb2tpZSIsCisgICAgICAgICJtb3VudCIs
CisgICAgICAgICJuYW1lX3RvX2hhbmRsZV9hdCIsCisgICAgICAgICJwZXJmX2V2ZW50X29wZW4i
LAorICAgICAgICAicXVvdGFjdGwiLAorICAgICAgICAic2V0ZG9tYWlubmFtZSIsCisgICAgICAg
ICJzZXRob3N0bmFtZSIsCisgICAgICAgICJzZXRucyIsCisgICAgICAgICJzeXNsb2ciLAorICAg
ICAgICAidW1vdW50IiwKKyAgICAgICAgInVtb3VudDIiCisgICAgICBdLAorICAgICAgImFjdGlv
biI6ICJTQ01QX0FDVF9BTExPVyIsCisgICAgICAiYXJncyI6IFtdLAorICAgICAgImNvbW1lbnQi
OiAiIiwKKyAgICAgICJpbmNsdWRlcyI6IHsKKyAgICAgICAgImNhcHMiOiBbCisgICAgICAgICAg
IkNBUF9TWVNfQURNSU4iCisgICAgICAgIF0KKyAgICAgIH0sCisgICAgICAiZXhjbHVkZXMiOiBu
dWxsCisgICAgfSwKKyAgICB7CisgICAgICAibmFtZXMiOiBbCisgICAgICAgICJjbG9uZSIKKyAg
ICAgIF0sCisgICAgICAiYWN0aW9uIjogIlNDTVBfQUNUX0FMTE9XIiwKKyAgICAgICJhcmdzIjog
WworICAgICAgICB7CisgICAgICAgICAgImluZGV4IjogMCwKKyAgICAgICAgICAidmFsdWUiOiAy
MTE0MDYwMjg4LAorICAgICAgICAgICJ2YWx1ZVR3byI6IDAsCisgICAgICAgICAgIm9wIjogIlND
TVBfQ01QX01BU0tFRF9FUSIKKyAgICAgICAgfQorICAgICAgXSwKKyAgICAgICJjb21tZW50Ijog
IiIsCisgICAgICAiaW5jbHVkZXMiOiBudWxsLAorICAgICAgImV4Y2x1ZGVzIjogeworICAgICAg
ICAiY2FwcyI6IFsKKyAgICAgICAgICAiQ0FQX1NZU19BRE1JTiIKKyAgICAgICAgXSwKKyAgICAg
ICAgImFyY2hlcyI6IFsKKyAgICAgICAgICAiczM5MCIsCisgICAgICAgICAgInMzOTB4IgorICAg
ICAgICBdCisgICAgICB9CisgICAgfSwKKyAgICB7CisgICAgICAibmFtZXMiOiBbCisgICAgICAg
ICJjbG9uZSIKKyAgICAgIF0sCisgICAgICAiYWN0aW9uIjogIlNDTVBfQUNUX0FMTE9XIiwKKyAg
ICAgICJhcmdzIjogWworICAgICAgICB7CisgICAgICAgICAgImluZGV4IjogMSwKKyAgICAgICAg
ICAidmFsdWUiOiAyMTE0MDYwMjg4LAorICAgICAgICAgICJ2YWx1ZVR3byI6IDAsCisgICAgICAg
ICAgIm9wIjogIlNDTVBfQ01QX01BU0tFRF9FUSIKKyAgICAgICAgfQorICAgICAgXSwKKyAgICAg
ICJjb21tZW50IjogInMzOTAgcGFyYW1ldGVyIG9yZGVyaW5nIGZvciBjbG9uZSBpcyBkaWZmZXJl
bnQiLAorICAgICAgImluY2x1ZGVzIjogeworICAgICAgICAiYXJjaGVzIjogWworICAgICAgICAg
ICJzMzkwIiwKKyAgICAgICAgICAiczM5MHgiCisgICAgICAgIF0KKyAgICAgIH0sCisgICAgICAi
ZXhjbHVkZXMiOiB7CisgICAgICAgICJjYXBzIjogWworICAgICAgICAgICJDQVBfU1lTX0FETUlO
IgorICAgICAgICBdCisgICAgICB9CisgICAgfSwKKyAgICB7CisgICAgICAibmFtZXMiOiBbCisg
ICAgICAgICJyZWJvb3QiCisgICAgICBdLAorICAgICAgImFjdGlvbiI6ICJTQ01QX0FDVF9BTExP
VyIsCisgICAgICAiYXJncyI6IFtdLAorICAgICAgImNvbW1lbnQiOiAiIiwKKyAgICAgICJpbmNs
dWRlcyI6IHsKKyAgICAgICAgImNhcHMiOiBbCisgICAgICAgICAgIkNBUF9TWVNfQk9PVCIKKyAg
ICAgICAgXQorICAgICAgfSwKKyAgICAgICJleGNsdWRlcyI6IG51bGwKKyAgICB9LAorICAgIHsK
KyAgICAgICJuYW1lcyI6IFsKKyAgICAgICAgImNocm9vdCIKKyAgICAgIF0sCisgICAgICAiYWN0
aW9uIjogIlNDTVBfQUNUX0FMTE9XIiwKKyAgICAgICJhcmdzIjogW10sCisgICAgICAiY29tbWVu
dCI6ICIiLAorICAgICAgImluY2x1ZGVzIjogeworICAgICAgICAiY2FwcyI6IFsKKyAgICAgICAg
ICAiQ0FQX1NZU19DSFJPT1QiCisgICAgICAgIF0KKyAgICAgIH0sCisgICAgICAiZXhjbHVkZXMi
OiBudWxsCisgICAgfSwKKyAgICB7CisgICAgICAibmFtZXMiOiBbCisgICAgICAgICJkZWxldGVf
bW9kdWxlIiwKKyAgICAgICAgImluaXRfbW9kdWxlIiwKKyAgICAgICAgImZpbml0X21vZHVsZSIs
CisgICAgICAgICJxdWVyeV9tb2R1bGUiCisgICAgICBdLAorICAgICAgImFjdGlvbiI6ICJTQ01Q
X0FDVF9BTExPVyIsCisgICAgICAiYXJncyI6IFtdLAorICAgICAgImNvbW1lbnQiOiAiIiwKKyAg
ICAgICJpbmNsdWRlcyI6IHsKKyAgICAgICAgImNhcHMiOiBbCisgICAgICAgICAgIkNBUF9TWVNf
TU9EVUxFIgorICAgICAgICBdCisgICAgICB9LAorICAgICAgImV4Y2x1ZGVzIjogbnVsbAorICAg
IH0sCisgICAgeworICAgICAgIm5hbWVzIjogWworICAgICAgICAiYWNjdCIKKyAgICAgIF0sCisg
ICAgICAiYWN0aW9uIjogIlNDTVBfQUNUX0FMTE9XIiwKKyAgICAgICJhcmdzIjogW10sCisgICAg
ICAiY29tbWVudCI6ICIiLAorICAgICAgImluY2x1ZGVzIjogeworICAgICAgICAiY2FwcyI6IFsK
KyAgICAgICAgICAiQ0FQX1NZU19QQUNDVCIKKyAgICAgICAgXQorICAgICAgfSwKKyAgICAgICJl
eGNsdWRlcyI6IG51bGwKKyAgICB9LAorICAgIHsKKyAgICAgICJuYW1lcyI6IFsKKyAgICAgICAg
ImtjbXAiLAorICAgICAgICAicHJvY2Vzc192bV9yZWFkdiIsCisgICAgICAgICJwcm9jZXNzX3Zt
X3dyaXRldiIsCisgICAgICAgICJwdHJhY2UiCisgICAgICBdLAorICAgICAgImFjdGlvbiI6ICJT
Q01QX0FDVF9BTExPVyIsCisgICAgICAiYXJncyI6IFtdLAorICAgICAgImNvbW1lbnQiOiAiIiwK
KyAgICAgICJpbmNsdWRlcyI6IHsKKyAgICAgICAgImNhcHMiOiBbCisgICAgICAgICAgIkNBUF9T
WVNfUFRSQUNFIgorICAgICAgICBdCisgICAgICB9LAorICAgICAgImV4Y2x1ZGVzIjogbnVsbAor
ICAgIH0sCisgICAgeworICAgICAgIm5hbWVzIjogWworICAgICAgICAiaW9wbCIsCisgICAgICAg
ICJpb3Blcm0iCisgICAgICBdLAorICAgICAgImFjdGlvbiI6ICJTQ01QX0FDVF9BTExPVyIsCisg
ICAgICAiYXJncyI6IFtdLAorICAgICAgImNvbW1lbnQiOiAiIiwKKyAgICAgICJpbmNsdWRlcyI6
IHsKKyAgICAgICAgImNhcHMiOiBbCisgICAgICAgICAgIkNBUF9TWVNfUkFXSU8iCisgICAgICAg
IF0KKyAgICAgIH0sCisgICAgICAiZXhjbHVkZXMiOiBudWxsCisgICAgfSwKKyAgICB7CisgICAg
ICAibmFtZXMiOiBbCisgICAgICAgICJzZXR0aW1lb2ZkYXkiLAorICAgICAgICAic3RpbWUiLAor
ICAgICAgICAiY2xvY2tfc2V0dGltZSIKKyAgICAgIF0sCisgICAgICAiYWN0aW9uIjogIlNDTVBf
QUNUX0FMTE9XIiwKKyAgICAgICJhcmdzIjogW10sCisgICAgICAiY29tbWVudCI6ICIiLAorICAg
ICAgImluY2x1ZGVzIjogeworICAgICAgICAiY2FwcyI6IFsKKyAgICAgICAgICAiQ0FQX1NZU19U
SU1FIgorICAgICAgICBdCisgICAgICB9LAorICAgICAgImV4Y2x1ZGVzIjogbnVsbAorICAgIH0s
CisgICAgeworICAgICAgIm5hbWVzIjogWworICAgICAgICAidmhhbmd1cCIKKyAgICAgIF0sCisg
ICAgICAiYWN0aW9uIjogIlNDTVBfQUNUX0FMTE9XIiwKKyAgICAgICJhcmdzIjogW10sCisgICAg
ICAiY29tbWVudCI6ICIiLAorICAgICAgImluY2x1ZGVzIjogeworICAgICAgICAiY2FwcyI6IFsK
KyAgICAgICAgICAiQ0FQX1NZU19UVFlfQ09ORklHIgorICAgICAgICBdCisgICAgICB9LAorICAg
ICAgImV4Y2x1ZGVzIjogbnVsbAorICAgIH0sCisgICAgeworICAgICAgIm5hbWVzIjogWworICAg
ICAgICAiZ2V0X21lbXBvbGljeSIsCisgICAgICAgICJtYmluZCIsCisgICAgICAgICJzZXRfbWVt
cG9saWN5IgorICAgICAgXSwKKyAgICAgICJhY3Rpb24iOiAiU0NNUF9BQ1RfQUxMT1ciLAorICAg
ICAgImFyZ3MiOiBbXSwKKyAgICAgICJjb21tZW50IjogIiIsCisgICAgICAiaW5jbHVkZXMiOiB7
CisgICAgICAgICJjYXBzIjogWworICAgICAgICAgICJDQVBfU1lTX05JQ0UiCisgICAgICAgIF0K
KyAgICAgIH0sCisgICAgICAiZXhjbHVkZXMiOiBudWxsCisgICAgfSwKKyAgICB7CisgICAgICAi
bmFtZXMiOiBbCisgICAgICAgICJzeXNsb2ciCisgICAgICBdLAorICAgICAgImFjdGlvbiI6ICJT
Q01QX0FDVF9BTExPVyIsCisgICAgICAiYXJncyI6IFtdLAorICAgICAgImNvbW1lbnQiOiAiIiwK
KyAgICAgICJpbmNsdWRlcyI6IHsKKyAgICAgICAgImNhcHMiOiBbCisgICAgICAgICAgIkNBUF9T
WVNMT0ciCisgICAgICAgIF0KKyAgICAgIH0sCisgICAgICAiZXhjbHVkZXMiOiBudWxsCisgICAg
fQorICBdCit9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL2RvY2tlci9zdGFydC5zaCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvZG9ja2VyL3N0YXJ0LnNoCmluZGV4IDMzMjViYjI0
ZjU4N2RmNzJmNzdjOTNmMDFhZTQ0NzcxM2NkNjQ3ODEuLjM0Mjc2NzBjYzlmYTE2YTBhZTIzZTJk
YTFlY2FmY2ZlNzU3ODkwNzIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvZG9ja2VyL3N0YXJ0LnNoCisrKyBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvZG9ja2VyL3N0YXJ0LnNoCkBA
IC0xLDQ0ICsxLDI5IEBACi0jIFRoaXMgc2NyaXB0IGlzIGVtYmVkZGVkIGluIHRoZSBkb2NrZXIg
aW1hZ2UsIGFuZCBzbyB0aGUgaW1hZ2UgbXVzdCBiZSB1cGRhdGVkIHdoZW4gY2hhbmdlcwotIyB0
byB0aGUgc2NyaXB0IGFyZSBtYWRlLiBUbyBkbyB0aGlzLCBhc3N1bWluZyB5b3UgaGF2ZSBkb2Nr
ZXIgaW5zdGFsbGVkOgotIyBJbiB0b29scy9kb2NrZXIvIDoKLSMgICBkb2NrZXIgYnVpbGQgLgot
IyAgIGRvY2tlciBwcyAjIGFuZCBsb29rIGZvciB0aGUgaWQgb2YgdGhlIGltYWdlIHlvdSBqdXN0
IGJ1aWx0Ci0jICAgZG9ja2VyIHRhZyA8aW1hZ2U+IDx0YWc+Ci0jICAgZG9ja2VyIHB1c2ggPHRh
Zz4KLSMgVXBkYXRlIHRoZSBgaW1hZ2VgIHNwZWNpZmllZCBpbiB0aGUgcHJvamVjdCdzIC50YXNr
Y2x1c3Rlci55bWwgZmlsZQotCi0KICMhL2Jpbi9iYXNoCisKIHNldCAtZXgKIAogUkVNT1RFPSR7
MTotaHR0cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHR9Ci1CUkFOQ0g9JHsy
Oi1tYXN0ZXJ9Ci1SRVY9JHszOi1GRVRDSF9IRUFEfQotQlJPV1NFUj0kezQ6LWFsbH0KK1JFRj0k
ezI6LW1hc3Rlcn0KIAogY2QgfgogCi0jIEluaXRpYWxseSB3ZSBqdXN0IGZldGNoIDUwIGNvbW1p
dHMgaW4gb3JkZXIgdG8gc2F2ZSBzZXZlcmFsIG1pbnV0ZXMgb2YgZmV0Y2hpbmcKLWdpdCBjbG9u
ZSAke1JFTU9URX0gLS1zaW5nbGUtYnJhbmNoIC0tYnJhbmNoICR7QlJBTkNIfSAtLW5vLWNoZWNr
b3V0IC1xIC0tZGVwdGg9NTAgd2ViLXBsYXRmb3JtLXRlc3RzCi1jZCB3ZWItcGxhdGZvcm0tdGVz
dHMKLWlmIFtbICEgYGdpdCByZXYtcGFyc2UgLS12ZXJpZnkgLXEgJHtSRVZ9YCBdXTsKLXRoZW4K
LSAgICAjIEJ1dCBpZiBmb3Igc29tZSByZWFzb24gdGhlIGNvbW1pdCB1bmRlciB0ZXN0IGlzbid0
IGluIHRoYXQgcmFuZ2UsIHdlIGdpdmUgaW4gYW5kCi0gICAgIyBmZXRjaCBldmVyeXRoaW5nCi0g
ICAgZ2l0IGZldGNoIC1xIC0tdW5zaGFsbG93ICR7UkVNT1RFfQotICAgIGdpdCByZXYtcGFyc2Ug
LS12ZXJpZnkgJHtSRVZ9CitpZiBbIC1lIC9kZXYva3ZtIF07IHRoZW4KKyAgICAjIElmIGt2bSBp
cyBwcmVzZW50IGVuc3VyZSB0aGF0IHRoZSB0ZXN0IHVzZXIgY2FuIGFjY2VzcyBpdAorICAgICMg
SWRlYWxseSB0aGlzIGNvdWxkIGJlIGRvbmUgYnkgYWRkaW5nIHRoZSB0ZXN0IHVzZXIgdG8gdGhl
CisgICAgIyBvd25pbmcgZ3JvdXAsIGJ1dCB0aGVuIHdlIG5lZWQgdG8gcmUtbG9naW4gdG8gZXZh
bHVhdGUgdGhlCisgICAgIyBncm91cCBtZW1iZXJzaGlwLiBUaGlzIGNobW9kIGRvZXNuJ3QgYWZm
ZWN0IHRoZSBob3N0LgorICAgIHN1ZG8gY2htb2QgYStydyAvZGV2L2t2bQogZmkKLWdpdCBjaGVj
a291dCAtYiBidWlsZCAke1JFVn0KIAotc3VkbyBzaCAtYyAnLi93cHQgbWFrZS1ob3N0cy1maWxl
ID4+IC9ldGMvaG9zdHMnCitpZiBbICEgLWQgd2ViLXBsYXRmb3JtLXRlc3RzIF07IHRoZW4KKyAg
ICBta2RpciB3ZWItcGxhdGZvcm0tdGVzdHMKKyAgICBjZCB3ZWItcGxhdGZvcm0tdGVzdHMKIAot
aWYgW1sgJEJST1dTRVIgPT0gImNocm9tZSIqIF1dIHx8IFtbICIkQlJPV1NFUiIgPT0gYWxsIF1d
Ci10aGVuCi0gICAgIyBJbnN0YWxsIENocm9tZSBkZXYKLSAgICBkZWJfYXJjaGl2ZT1nb29nbGUt
Y2hyb21lLXVuc3RhYmxlX2N1cnJlbnRfYW1kNjQuZGViCi0gICAgd2dldCBodHRwczovL2RsLmdv
b2dsZS5jb20vbGludXgvZGlyZWN0LyRkZWJfYXJjaGl2ZQorICAgIGdpdCBpbml0CisgICAgZ2l0
IHJlbW90ZSBhZGQgb3JpZ2luICR7UkVNT1RFfQogCi0gICAgc3VkbyBhcHQtZ2V0IC1xcXkgdXBk
YXRlICYmIHN1ZG8gZ2RlYmkgLW4gJGRlYl9hcmNoaXZlCi1maQorICAgICMgSW5pdGlhbGx5IHdl
IGp1c3QgZmV0Y2ggNTAgY29tbWl0cyBpbiBvcmRlciB0byBzYXZlIHNldmVyYWwgbWludXRlcyBv
ZiBmZXRjaGluZworICAgIHJldHJ5IGdpdCBmZXRjaCAtLXF1aWV0IC0tZGVwdGg9NTAgLS10YWdz
IG9yaWdpbiAke1JFRn06dGFza19oZWFkCiAKLXN1ZG8gWHZmYiAkRElTUExBWSAtc2NyZWVuIDAg
JHtTQ1JFRU5fV0lEVEh9eCR7U0NSRUVOX0hFSUdIVH14JHtTQ1JFRU5fREVQVEh9ICYKKyAgICBn
aXQgY2hlY2tvdXQgLS1xdWlldCB0YXNrX2hlYWQKK2ZpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2RvY2tlci93M2MtaW1wb3J0
LmxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
ZG9ja2VyL3czYy1pbXBvcnQubG9nCmluZGV4IGViMzdkMGQ0NTQ4ZTFhN2U5MzA0YjJjYWUyNGFm
Zjg0NTRmZjBkY2UuLmUxMWNiZmJiOTBkNzRhN2JlZGE3NWJkMWMyNWJmYjVmOGEzMTZhOGEgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvZG9ja2VyL3czYy1pbXBvcnQubG9nCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvZG9ja2VyL3czYy1pbXBvcnQubG9nCkBAIC0xNSw0ICsx
NSwxMCBAQCBOb25lCiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIExpc3Qgb2YgZmlsZXM6CiAvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9kb2NrZXIvRG9ja2VyZmls
ZQorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvZG9j
a2VyL1JFQURNRS5tZAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvZG9ja2VyL19faW5pdF9fLnB5CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy9kb2NrZXIvY29tbWFuZHMuanNvbgorL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvZG9ja2VyL2Zyb250ZW5kLnB5
CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9kb2Nr
ZXIvcmV0cnkucHkKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL2RvY2tlci9zZWNjb21wLmpzb24KIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2RvY2tlci9zdGFydC5zaApkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9mbGFrZTguaW5pIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9mbGFrZTgu
aW5pCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4NWUyMzA4YWFiYjgyNTZkNTUyNTdk
MWY2N2YxZmI4M2M3MmYwOWEzLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvZmxha2U4LmluaQorKysgL2Rldi9udWxsCkBAIC0xLDIxICswLDAgQEAKLVtmbGFrZThdCi0j
IGZsYWtlOCBjb25maWcgdXNlZCBpbiB0b29scy90b3guaW5pLCB0b29scy93cHQvdG94LmluaSwg
YW5kIHRvb2xzL3dwdHJ1bm5lci90b3guaW5pCi1zZWxlY3QgPSBFLFcsRixOCi0jIEUxMjg6IGNv
bnRpbnVhdGlvbiBsaW5lIHVuZGVyLWluZGVudGVkIGZvciB2aXN1YWwgaW5kZW50Ci0jIEUxMjk6
IHZpc3VhbGx5IGluZGVudGVkIGxpbmUgd2l0aCBzYW1lIGluZGVudCBhcyBuZXh0IGxvZ2ljYWwg
bGluZQotIyBFMjIxOiBtdWx0aXBsZSBzcGFjZXMgYmVmb3JlIG9wZXJhdG9yCi0jIEUyMjY6IG1p
c3Npbmcgd2hpdGVzcGFjZSBhcm91bmQgYXJpdGhtZXRpYyBvcGVyYXRvcgotIyBFMjMxOiBtaXNz
aW5nIHdoaXRlc3BhY2UgYWZ0ZXIg4oCYLOKAmSwg4oCYO+KAmSwgb3Ig4oCYOuKAmQotIyBFMjUx
OiB1bmV4cGVjdGVkIHNwYWNlcyBhcm91bmQga2V5d29yZCAvIHBhcmFtZXRlciBlcXVhbHMKLSMg
RTI2NTogYmxvY2sgY29tbWVudCBzaG91bGQgc3RhcnQgd2l0aCDigJgjIOKAmAotIyBFMzAyOiBl
eHBlY3RlZCAyIGJsYW5rIGxpbmVzLCBmb3VuZCAwCi0jIEUzMDM6IHRvbyBtYW55IGJsYW5rIGxp
bmVzICgzKQotIyBFMzA1OiBleHBlY3RlZCAyIGJsYW5rIGxpbmVzIGFmdGVyIGVuZCBvZiBmdW5j
dGlvbiBvciBjbGFzcwotIyBFNDAyOiBtb2R1bGUgbGV2ZWwgaW1wb3J0IG5vdCBhdCB0b3Agb2Yg
ZmlsZQotIyBFNzMxOiBkbyBub3QgYXNzaWduIGEgbGFtYmRhIGV4cHJlc3Npb24sIHVzZSBhIGRl
ZgotIyBFOTAxOiBTeW50YXhFcnJvciBvciBJbmRlbnRhdGlvbkVycm9yCi0jIFc2MDE6IC5oYXNf
a2V5KCkgaXMgZGVwcmVjYXRlZCwgdXNlIOKAmGlu4oCZCi0jIE44MDE6IGNsYXNzIG5hbWVzIHNo
b3VsZCB1c2UgQ2FwV29yZHMgY29udmVudGlvbgotIyBOODAyOiBmdW5jdGlvbiBuYW1lIHNob3Vs
ZCBiZSBsb3dlcmNhc2UKLWlnbm9yZSA9IEUxMjgsRTEyOSxFMjIxLEUyMjYsRTIzMSxFMjUxLEUy
NjUsRTMwMixFMzAzLEUzMDUsRTQwMixFNzMxLEU5MDEsVzYwMSxOODAxLE44MDIKLW1heC1saW5l
LWxlbmd0aCA9IDE0MQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy9naXRpZ25vcmUvZ2l0aWdub3JlLnB5IGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9naXRpZ25vcmUvZ2l0aWdub3Jl
LnB5CmluZGV4IDg3MDJjZWM3ZGI1ZjhjMTIxNDRjZjlmYzcwYmVjNWEyNjcwMTQzZWMuLmQ1ZWE0
YTZhOGYzZDY0ZDRhYmEzYjhkY2JlNWZmZTg0OWI3NGU5NjkgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvZ2l0aWdub3JlL2dpdGln
bm9yZS5weQorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL2dpdGlnbm9yZS9naXRpZ25vcmUucHkKQEAgLTEsMjEgKzEsNDcgQEAKIGltcG9ydCBy
ZQogaW1wb3J0IG9zCitpbXBvcnQgaXRlcnRvb2xzCitmcm9tIHNpeCBpbXBvcnQgaXRlcnZhbHVl
cywgaXRlcml0ZW1zCitmcm9tIGNvbGxlY3Rpb25zIGltcG9ydCBkZWZhdWx0ZGljdAorCitNWVBZ
ID0gRmFsc2UKK2lmIE1ZUFk6CisgICAgIyBNWVBZIGlzIHNldCB0byBUcnVlIHdoZW4gcnVuIHVu
ZGVyIE15cHkuCisgICAgZnJvbSB0eXBpbmcgaW1wb3J0IEFueQorICAgIGZyb20gdHlwaW5nIGlt
cG9ydCBEaWN0CisgICAgZnJvbSB0eXBpbmcgaW1wb3J0IEl0ZXJhYmxlCisgICAgZnJvbSB0eXBp
bmcgaW1wb3J0IExpc3QKKyAgICBmcm9tIHR5cGluZyBpbXBvcnQgTXV0YWJsZU1hcHBpbmcKKyAg
ICBmcm9tIHR5cGluZyBpbXBvcnQgT3B0aW9uYWwKKyAgICBmcm9tIHR5cGluZyBpbXBvcnQgUGF0
dGVybgorICAgIGZyb20gdHlwaW5nIGltcG9ydCBUdXBsZQorICAgIGZyb20gdHlwaW5nIGltcG9y
dCBUeXBlVmFyCisgICAgZnJvbSB0eXBpbmcgaW1wb3J0IFVuaW9uCisgICAgZnJvbSB0eXBpbmcg
aW1wb3J0IGNhc3QKKworICAgIFQgPSBUeXBlVmFyKCdUJykKKwogCiBlbmRfc3BhY2UgPSByZS5j
b21waWxlKHIiKFteXFxdXHMpKiQiKQogCiAKLWRlZiBmbm1hdGNoX3RyYW5zbGF0ZShwYXQsIHBh
dGhfbmFtZT1GYWxzZSk6CitkZWYgZm5tYXRjaF90cmFuc2xhdGUocGF0KToKKyAgICAjIHR5cGU6
IChzdHIpIC0+IFR1cGxlW2Jvb2wsIFBhdHRlcm5bc3RyXV0KICAgICBwYXJ0cyA9IFtdCi0gICAg
c2VxID0gRmFsc2UKKyAgICBzZXEgPSBOb25lCiAgICAgaSA9IDAKLSAgICBpZiBwYXRbMF0gPT0g
Ii8iIG9yIHBhdGhfbmFtZToKKyAgICBhbnlfY2hhciA9ICJbXi9dIgorICAgIGlmIHBhdFswXSA9
PSAiLyI6CiAgICAgICAgIHBhcnRzLmFwcGVuZCgiXiIpCi0gICAgICAgIGFueV9jaGFyID0gIlte
L10iCi0gICAgICAgIGlmIHBhdFswXSA9PSAiLyI6Ci0gICAgICAgICAgICBwYXQgPSBwYXRbMTpd
CisgICAgICAgIHBhdCA9IHBhdFsxOl0KICAgICBlbHNlOgotICAgICAgICBhbnlfY2hhciA9ICIu
IgorICAgICAgICAjIEJ5IGRlZmF1bHQgbWF0Y2ggdGhlIGVudGlyZSBwYXRoIHVwIHRvIGEgLwor
ICAgICAgICAjIGJ1dCBpZiAvIGRvZXNuJ3QgYXBwZWFyIGluIHRoZSBwYXR0ZXJuIHdlIHdpbGwg
bWFyayBpcyBhcworICAgICAgICAjIGEgbmFtZSBwYXR0ZXJuIGFuZCBqdXN0IHByb2R1Y2UgYSBw
YXR0ZXJuIHRoYXQgbWF0Y2hlcyBhZ2FpbnN0CisgICAgICAgICMgdGhlIGZpbGVuYW1lCiAgICAg
ICAgIHBhcnRzLmFwcGVuZCgiXig/Oi4qLyk/IikKKworICAgIG5hbWVfcGF0dGVybiA9IFRydWUK
ICAgICBpZiBwYXRbLTFdID09ICIvIjoKICAgICAgICAgIyBJZiB0aGUgbGFzdCBjaGFyYWN0ZXIg
aXMgLyBtYXRjaCB0aGlzIGRpcmVjdG9yeSBvciBhbnkgc3ViZGlyZWN0b3J5CiAgICAgICAgIHBh
dCA9IHBhdFs6LTFdCkBAIC0zMSwxMSArNTcsMTAgQEAgZGVmIGZubWF0Y2hfdHJhbnNsYXRlKHBh
dCwgcGF0aF9uYW1lPUZhbHNlKToKICAgICAgICAgICAgICAgICBwYXJ0cy5hcHBlbmQocmUuZXNj
YXBlKGMpKQogICAgICAgICAgICAgZWxzZToKICAgICAgICAgICAgICAgICByYWlzZSBWYWx1ZUVy
cm9yCi0gICAgICAgIGVsaWYgc2VxOgorICAgICAgICBlbGlmIHNlcSBpcyBub3QgTm9uZToKKyAg
ICAgICAgICAgICMgVE9ETzogdGhpcyBkb2Vzbid0IHJlYWxseSBoYW5kbGUgaW52YWxpZCBzZXF1
ZW5jZXMgaW4gdGhlIHJpZ2h0IHdheQogICAgICAgICAgICAgaWYgYyA9PSAiXSI6Ci0gICAgICAg
ICAgICAgICAgc2VxID0gRmFsc2UKLSAgICAgICAgICAgICAgICAjIEZpcnN0IHR3byBjYXNlcyBh
cmUgdG8gZGVhbCB3aXRoIHRoZSBjYXNlIHdoZXJlIC8gaXMgdGhlIG9ubHkgY2hhcmFjdGVyCi0g
ICAgICAgICAgICAgICAgIyBpbiB0aGUgc2VxdWVuY2UgYnV0IHBhdGhfbmFtZSBpcyBUcnVlIHNv
IGl0IHNob3VsZG4ndCBtYXRjaCBhbnl0aGluZworICAgICAgICAgICAgICAgIHNlcSA9IE5vbmUK
ICAgICAgICAgICAgICAgICBpZiBwYXJ0c1stMV0gPT0gIlsiOgogICAgICAgICAgICAgICAgICAg
ICBwYXJ0cyA9IHBhcnRzWzotMV0KICAgICAgICAgICAgICAgICBlbGlmIHBhcnRzWy0xXSA9PSAi
XiIgYW5kIHBhcnRzWy0yXSA9PSAiWyI6CkBAIC00NCw0MSArNjksNTMgQEAgZGVmIGZubWF0Y2hf
dHJhbnNsYXRlKHBhdCwgcGF0aF9uYW1lPUZhbHNlKToKICAgICAgICAgICAgICAgICAgICAgcGFy
dHMuYXBwZW5kKGMpCiAgICAgICAgICAgICBlbGlmIGMgPT0gIi0iOgogICAgICAgICAgICAgICAg
IHBhcnRzLmFwcGVuZChjKQotICAgICAgICAgICAgZWxpZiBub3QgKHBhdGhfbmFtZSBhbmQgYyA9
PSAiLyIpOgorICAgICAgICAgICAgZWxzZToKICAgICAgICAgICAgICAgICBwYXJ0cyArPSByZS5l
c2NhcGUoYykKICAgICAgICAgZWxpZiBjID09ICJbIjoKICAgICAgICAgICAgIHBhcnRzLmFwcGVu
ZCgiWyIpCiAgICAgICAgICAgICBpZiBpIDwgbGVuKHBhdCkgLSAxIGFuZCBwYXRbaSsxXSBpbiAo
IiEiLCAiXiIpOgogICAgICAgICAgICAgICAgIHBhcnRzLmFwcGVuZCgiXiIpCiAgICAgICAgICAg
ICAgICAgaSArPSAxCi0gICAgICAgICAgICBzZXEgPSBUcnVlCisgICAgICAgICAgICBzZXEgPSBp
CiAgICAgICAgIGVsaWYgYyA9PSAiKiI6CiAgICAgICAgICAgICBpZiBpIDwgbGVuKHBhdCkgLSAx
IGFuZCBwYXRbaSsxXSA9PSAiKiI6Ci0gICAgICAgICAgICAgICAgcGFydHMuYXBwZW5kKGFueV9j
aGFyICsgIioiKQorICAgICAgICAgICAgICAgIGlmIGkgPiAwIGFuZCBwYXRbaS0xXSAhPSAiLyI6
CisgICAgICAgICAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IKKyAgICAgICAgICAgICAgICBw
YXJ0cy5hcHBlbmQoIi4qIikKICAgICAgICAgICAgICAgICBpICs9IDEKLSAgICAgICAgICAgICAg
ICBpZiBpIDwgbGVuKHBhdCkgLSAxIGFuZCBwYXRbaSsxXSA9PSAiKiI6CisgICAgICAgICAgICAg
ICAgaWYgaSA8IGxlbihwYXQpIC0gMSBhbmQgcGF0W2krMV0gIT0gIi8iOgogICAgICAgICAgICAg
ICAgICAgICByYWlzZSBWYWx1ZUVycm9yCiAgICAgICAgICAgICBlbHNlOgogICAgICAgICAgICAg
ICAgIHBhcnRzLmFwcGVuZChhbnlfY2hhciArICIqIikKICAgICAgICAgZWxpZiBjID09ICI/IjoK
ICAgICAgICAgICAgIHBhcnRzLmFwcGVuZChhbnlfY2hhcikKKyAgICAgICAgZWxpZiBjID09ICIv
IiBhbmQgbm90IHNlcToKKyAgICAgICAgICAgIG5hbWVfcGF0dGVybiA9IEZhbHNlCisgICAgICAg
ICAgICBwYXJ0cy5hcHBlbmQoYykKICAgICAgICAgZWxzZToKICAgICAgICAgICAgIHBhcnRzLmFw
cGVuZChyZS5lc2NhcGUoYykpCiAgICAgICAgIGkgKz0gMQogCi0gICAgaWYgc2VxOgorICAgIGlm
IG5hbWVfcGF0dGVybjoKKyAgICAgICAgcGFydHNbMF0gPSAiXiIKKworICAgIGlmIHNlcSBpcyBu
b3QgTm9uZToKICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcgogICAgIHBhcnRzLmFwcGVuZChzdWZm
aXgpCiAgICAgdHJ5OgotICAgICAgICByZXR1cm4gcmUuY29tcGlsZSgiIi5qb2luKHBhcnRzKSkK
KyAgICAgICAgcmV0dXJuIG5hbWVfcGF0dGVybiwgcmUuY29tcGlsZSgiIi5qb2luKHBhcnRzKSkK
ICAgICBleGNlcHQgRXhjZXB0aW9uOgotICAgICAgICByYWlzZQorICAgICAgICByYWlzZSBWYWx1
ZUVycm9yCisKKyMgUmVnZXhwIG1hdGNoaW5nIHJ1bGVzIHRoYXQgaGF2ZSB0byBiZSBjb252ZXJ0
ZWQgdG8gcGF0dGVybnMKK3BhdHRlcm5fcmUgPSByZS5jb21waWxlKHIiLipbXCpcW1w/XSIpCiAK
IAogZGVmIHBhcnNlX2xpbmUobGluZSk6CisgICAgIyB0eXBlOiAoc3RyKSAtPiBPcHRpb25hbFtU
dXBsZVtib29sLCBib29sLCBib29sLCBVbmlvbltUdXBsZVtzdHIsIC4uLl0sIFR1cGxlW2Jvb2ws
IFBhdHRlcm5bc3RyXV1dXV0KICAgICBsaW5lID0gbGluZS5yc3RyaXAoKQogICAgIGlmIG5vdCBs
aW5lIG9yIGxpbmVbMF0gPT0gIiMiOgotICAgICAgICByZXR1cm4KKyAgICAgICAgcmV0dXJuIE5v
bmUKIAogICAgIGludmVydCA9IGxpbmVbMF0gPT0gIiEiCiAgICAgaWYgaW52ZXJ0OgpAQCAtODks
MTMgKzEyNiwyMiBAQCBkZWYgcGFyc2VfbGluZShsaW5lKToKICAgICBpZiBkaXJfb25seToKICAg
ICAgICAgbGluZSA9IGxpbmVbOi0xXQogCi0gICAgcmV0dXJuIGludmVydCwgZGlyX29ubHksIGZu
bWF0Y2hfdHJhbnNsYXRlKGxpbmUsIGRpcl9vbmx5KQorICAgICMgQ291bGQgbWFrZSBhIHNwZWNp
YWwgY2FzZSBmb3IgKiovZm9vLCBidXQgd2UgZG9uJ3QgaGF2ZSBhbnkgcGF0dGVybnMgbGlrZSB0
aGF0CisgICAgaWYgbm90IGludmVydCBhbmQgbm90IHBhdHRlcm5fcmUubWF0Y2gobGluZSk6Cisg
ICAgICAgIGxpdGVyYWwgPSBUcnVlCisgICAgICAgIHBhdHRlcm4gPSB0dXBsZShsaW5lLnJzcGxp
dCgiLyIsIDEpKSAgIyB0eXBlOiBVbmlvbltUdXBsZVtzdHIsIC4uLl0sIFR1cGxlW2Jvb2wsIFBh
dHRlcm5bc3RyXV1dCisgICAgZWxzZToKKyAgICAgICAgcGF0dGVybiA9IGZubWF0Y2hfdHJhbnNs
YXRlKGxpbmUpCisgICAgICAgIGxpdGVyYWwgPSBGYWxzZQorCisgICAgcmV0dXJuIGludmVydCwg
ZGlyX29ubHksIGxpdGVyYWwsIHBhdHRlcm4KIAogCiBjbGFzcyBQYXRoRmlsdGVyKG9iamVjdCk6
Ci0gICAgZGVmIF9faW5pdF9fKHNlbGYsIHJvb3QsIGV4dHJhcz1Ob25lKToKKyAgICBkZWYgX19p
bml0X18oc2VsZiwgcm9vdCwgZXh0cmFzPU5vbmUsIGNhY2hlPU5vbmUpOgorICAgICAgICAjIHR5
cGU6IChzdHIsIE9wdGlvbmFsW0xpc3Rbc3RyXV0sIE9wdGlvbmFsW011dGFibGVNYXBwaW5nW3N0
ciwgYm9vbF1dKSAtPiBOb25lCiAgICAgICAgIGlmIHJvb3Q6Ci0gICAgICAgICAgICBpZ25vcmVf
cGF0aCA9IG9zLnBhdGguam9pbihyb290LCAiLmdpdGlnbm9yZSIpCisgICAgICAgICAgICBpZ25v
cmVfcGF0aCA9IG9zLnBhdGguam9pbihyb290LCAiLmdpdGlnbm9yZSIpICAjIHR5cGU6IE9wdGlv
bmFsW3N0cl0KICAgICAgICAgZWxzZToKICAgICAgICAgICAgIGlnbm9yZV9wYXRoID0gTm9uZQog
ICAgICAgICBpZiBub3QgaWdub3JlX3BhdGggYW5kIG5vdCBleHRyYXM6CkBAIC0xMDMsNTEgKzE0
OSwxMzkgQEAgY2xhc3MgUGF0aEZpbHRlcihvYmplY3QpOgogICAgICAgICAgICAgcmV0dXJuCiAg
ICAgICAgIHNlbGYudHJpdmlhbCA9IEZhbHNlCiAKLSAgICAgICAgc2VsZi5ydWxlc19maWxlID0g
W10KLSAgICAgICAgc2VsZi5ydWxlc19kaXIgPSBbXQorICAgICAgICBzZWxmLmxpdGVyYWxzX2Zp
bGUgPSBkZWZhdWx0ZGljdChkaWN0KSAgIyB0eXBlOiBEaWN0W09wdGlvbmFsW3N0cl0sIERpY3Rb
c3RyLCBMaXN0W1R1cGxlW2Jvb2wsIFBhdHRlcm5bc3RyXV1dXV0KKyAgICAgICAgc2VsZi5saXRl
cmFsc19kaXIgPSBkZWZhdWx0ZGljdChkaWN0KSAgIyB0eXBlOiBEaWN0W09wdGlvbmFsW3N0cl0s
IERpY3Rbc3RyLCBMaXN0W1R1cGxlW2Jvb2wsIFBhdHRlcm5bc3RyXV1dXV0KKyAgICAgICAgc2Vs
Zi5wYXR0ZXJuc19maWxlID0gW10gICMgdHlwZTogTGlzdFtUdXBsZVtUdXBsZVtib29sLCBQYXR0
ZXJuW3N0cl1dLCBMaXN0W1R1cGxlW2Jvb2wsIFBhdHRlcm5bc3RyXV1dXV0KKyAgICAgICAgc2Vs
Zi5wYXR0ZXJuc19kaXIgPSBbXSAgIyB0eXBlOiBMaXN0W1R1cGxlW1R1cGxlW2Jvb2wsIFBhdHRl
cm5bc3RyXV0sIExpc3RbVHVwbGVbYm9vbCwgUGF0dGVybltzdHJdXV1dXQorICAgICAgICBzZWxm
LmNhY2hlID0gY2FjaGUgb3Ige30gICMgdHlwZTogTXV0YWJsZU1hcHBpbmdbc3RyLCBib29sXQog
CiAgICAgICAgIGlmIGV4dHJhcyBpcyBOb25lOgogICAgICAgICAgICAgZXh0cmFzID0gW10KIAog
ICAgICAgICBpZiBpZ25vcmVfcGF0aCBhbmQgb3MucGF0aC5leGlzdHMoaWdub3JlX3BhdGgpOgot
ICAgICAgICAgICAgc2VsZi5fcmVhZF9pZ25vcmUoaWdub3JlX3BhdGgpCi0KLSAgICAgICAgZm9y
IGl0ZW0gaW4gZXh0cmFzOgotICAgICAgICAgICAgc2VsZi5fcmVhZF9saW5lKGl0ZW0pCisgICAg
ICAgICAgICBhcmdzID0gaWdub3JlX3BhdGgsIGV4dHJhcyAgIyB0eXBlOiBUdXBsZVtPcHRpb25h
bFtzdHJdLCBMaXN0W3N0cl1dCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBhcmdzID0gTm9u
ZSwgZXh0cmFzCisgICAgICAgIHNlbGYuX3JlYWRfaWdub3JlKCphcmdzKQogCi0gICAgZGVmIF9y
ZWFkX2lnbm9yZShzZWxmLCBpZ25vcmVfcGF0aCk6Ci0gICAgICAgIHdpdGggb3BlbihpZ25vcmVf
cGF0aCkgYXMgZjoKLSAgICAgICAgICAgIGZvciBsaW5lIGluIGY6Ci0gICAgICAgICAgICAgICAg
c2VsZi5fcmVhZF9saW5lKGxpbmUpCisgICAgZGVmIF9yZWFkX2lnbm9yZShzZWxmLCBpZ25vcmVf
cGF0aCwgZXh0cmFzKToKKyAgICAgICAgIyB0eXBlOiAoT3B0aW9uYWxbc3RyXSwgTGlzdFtzdHJd
KSAtPiBOb25lCisgICAgICAgIGlmIGlnbm9yZV9wYXRoIGlzIG5vdCBOb25lOgorICAgICAgICAg
ICAgd2l0aCBvcGVuKGlnbm9yZV9wYXRoKSBhcyBmOgorICAgICAgICAgICAgICAgIGZvciBsaW5l
IGluIGY6CisgICAgICAgICAgICAgICAgICAgIHNlbGYuX3JlYWRfbGluZShsaW5lKQorICAgICAg
ICBmb3IgbGluZSBpbiBleHRyYXM6CisgICAgICAgICAgICBzZWxmLl9yZWFkX2xpbmUobGluZSkK
IAogICAgIGRlZiBfcmVhZF9saW5lKHNlbGYsIGxpbmUpOgorICAgICAgICAjIHR5cGU6IChzdHIp
IC0+IE5vbmUKICAgICAgICAgcGFyc2VkID0gcGFyc2VfbGluZShsaW5lKQogICAgICAgICBpZiBu
b3QgcGFyc2VkOgogICAgICAgICAgICAgcmV0dXJuCi0gICAgICAgIGludmVydCwgZGlyX29ubHks
IHJlZ2V4cCA9IHBhcnNlZAotICAgICAgICBpZiBkaXJfb25seToKLSAgICAgICAgICAgIHNlbGYu
cnVsZXNfZGlyLmFwcGVuZCgocmVnZXhwLCBpbnZlcnQpKQorICAgICAgICBpbnZlcnQsIGRpcl9v
bmx5LCBsaXRlcmFsLCBydWxlID0gcGFyc2VkCisKKyAgICAgICAgaWYgaW52ZXJ0OgorICAgICAg
ICAgICAgIyBGb3IgZXhjbHVkZSBydWxlcywgd2UgYXR0YWNoIHRoZSBydWxlcyB0byBhbGwgcHJl
Y2VlZGluZyBwYXR0ZXJucywgc28KKyAgICAgICAgICAgICMgdGhhdCB3ZSBjYW4gbWF0Y2ggcGF0
dGVybnMgb3V0IG9mIG9yZGVyIGFuZCBjaGVjayBpZiB0aGV5IHdlcmUgbGF0ZXIKKyAgICAgICAg
ICAgICMgb3ZlcnJpZGVuIGJ5IGFuIGV4Y2x1ZGUgcnVsZQorICAgICAgICAgICAgYXNzZXJ0IG5v
dCBsaXRlcmFsCisgICAgICAgICAgICBpZiBNWVBZOgorICAgICAgICAgICAgICAgIHJ1bGUgPSBj
YXN0KFR1cGxlW2Jvb2wsIFBhdHRlcm5bc3RyXV0sIHJ1bGUpCisgICAgICAgICAgICBpZiBub3Qg
ZGlyX29ubHk6CisgICAgICAgICAgICAgICAgcnVsZXNfaXRlciA9IGl0ZXJ0b29scy5jaGFpbigK
KyAgICAgICAgICAgICAgICAgICAgaXRlcnRvb2xzLmNoYWluKCooaXRlcml0ZW1zKGl0ZW0pIGZv
ciBpdGVtIGluIGl0ZXJ2YWx1ZXMoc2VsZi5saXRlcmFsc19kaXIpKSksCisgICAgICAgICAgICAg
ICAgICAgIGl0ZXJ0b29scy5jaGFpbigqKGl0ZXJpdGVtcyhpdGVtKSBmb3IgaXRlbSBpbiBpdGVy
dmFsdWVzKHNlbGYubGl0ZXJhbHNfZmlsZSkpKSwKKyAgICAgICAgICAgICAgICAgICAgc2VsZi5w
YXR0ZXJuc19kaXIsCisgICAgICAgICAgICAgICAgICAgIHNlbGYucGF0dGVybnNfZmlsZSkgICMg
dHlwZTogSXRlcmFibGVbVHVwbGVbQW55LCBMaXN0W1R1cGxlW2Jvb2wsIFBhdHRlcm5bc3RyXV1d
XV0KKyAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgcnVsZXNfaXRlciA9IGl0ZXJ0
b29scy5jaGFpbigKKyAgICAgICAgICAgICAgICAgICAgaXRlcnRvb2xzLmNoYWluKCooaXRlcml0
ZW1zKGl0ZW0pIGZvciBpdGVtIGluIGl0ZXJ2YWx1ZXMoc2VsZi5saXRlcmFsc19kaXIpKSksCisg
ICAgICAgICAgICAgICAgICAgIHNlbGYucGF0dGVybnNfZGlyKQorCisgICAgICAgICAgICBmb3Ig
cnVsZXMgaW4gcnVsZXNfaXRlcjoKKyAgICAgICAgICAgICAgICBydWxlc1sxXS5hcHBlbmQocnVs
ZSkKICAgICAgICAgZWxzZToKLSAgICAgICAgICAgIHNlbGYucnVsZXNfZmlsZS5hcHBlbmQoKHJl
Z2V4cCwgaW52ZXJ0KSkKKyAgICAgICAgICAgIGlmIGxpdGVyYWw6CisgICAgICAgICAgICAgICAg
aWYgTVlQWToKKyAgICAgICAgICAgICAgICAgICAgcnVsZSA9IGNhc3QoVHVwbGVbc3RyLCAuLi5d
LCBydWxlKQorICAgICAgICAgICAgICAgIGlmIGxlbihydWxlKSA9PSAxOgorICAgICAgICAgICAg
ICAgICAgICBkaXJfbmFtZSwgcGF0dGVybiA9IE5vbmUsIHJ1bGVbMF0gICMgdHlwZTogVHVwbGVb
T3B0aW9uYWxbc3RyXSwgc3RyXQorICAgICAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAg
ICAgICAgIGRpcl9uYW1lLCBwYXR0ZXJuID0gcnVsZQorICAgICAgICAgICAgICAgIHNlbGYubGl0
ZXJhbHNfZGlyW2Rpcl9uYW1lXVtwYXR0ZXJuXSA9IFtdCisgICAgICAgICAgICAgICAgaWYgbm90
IGRpcl9vbmx5OgorICAgICAgICAgICAgICAgICAgICBzZWxmLmxpdGVyYWxzX2ZpbGVbZGlyX25h
bWVdW3BhdHRlcm5dID0gW10KKyAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgaWYg
TVlQWToKKyAgICAgICAgICAgICAgICAgICAgcnVsZSA9IGNhc3QoVHVwbGVbYm9vbCwgUGF0dGVy
bltzdHJdXSwgcnVsZSkKKyAgICAgICAgICAgICAgICBzZWxmLnBhdHRlcm5zX2Rpci5hcHBlbmQo
KHJ1bGUsIFtdKSkKKyAgICAgICAgICAgICAgICBpZiBub3QgZGlyX29ubHk6CisgICAgICAgICAg
ICAgICAgICAgIHNlbGYucGF0dGVybnNfZmlsZS5hcHBlbmQoKHJ1bGUsIFtdKSkKIAotICAgIGRl
ZiBfX2NhbGxfXyhzZWxmLCBwYXRoKToKLSAgICAgICAgaWYgb3MucGF0aC5zZXAgIT0gIi8iOgot
ICAgICAgICAgICAgcGF0aCA9IHBhdGgucmVwbGFjZShvcy5wYXRoLnNlcCwgIi8iKQorICAgIGRl
ZiBmaWx0ZXIoc2VsZiwKKyAgICAgICAgICAgICAgIGl0ZXJhdG9yICAjIHR5cGU6IEl0ZXJhYmxl
W1R1cGxlW3N0ciwgTGlzdFtUdXBsZVtzdHIsIFRdXSwgTGlzdFtUdXBsZVtzdHIsIFRdXV1dCisg
ICAgICAgICAgICAgICApOgorICAgICAgICAjIHR5cGU6ICguLi4pIC0+IEl0ZXJhYmxlW1R1cGxl
W3N0ciwgTGlzdFtUdXBsZVtzdHIsIFRdXSwgTGlzdFtUdXBsZVtzdHIsIFRdXV1dCisgICAgICAg
IGVtcHR5ID0ge30gICMgdHlwZTogRGljdFtBbnksIEFueV0KKyAgICAgICAgZm9yIGRpcnBhdGgs
IGRpcm5hbWVzLCBmaWxlbmFtZXMgaW4gaXRlcmF0b3I6CisgICAgICAgICAgICBvcmlnX2RpcnBh
dGggPSBkaXJwYXRoCisgICAgICAgICAgICBpZiBvcy5wYXRoLnNlcCAhPSAiLyI6CisgICAgICAg
ICAgICAgICAgZGlycGF0aCA9IGRpcnBhdGgucmVwbGFjZShvcy5wYXRoLnNlcCwgIi8iKQogCisg
ICAgICAgICAgICBrZWVwX2RpcnMgPSBbXSAgIyB0eXBlOiBMaXN0W1R1cGxlW3N0ciwgVF1dCisg
ICAgICAgICAgICBrZWVwX2ZpbGVzID0gW10gICMgdHlwZTogTGlzdFtUdXBsZVtzdHIsIFRdXQor
CisgICAgICAgICAgICBmb3IgaXRlcl9pdGVtcywgbGl0ZXJhbHMsIHBhdHRlcm5zLCB0YXJnZXQs
IHN1ZmZpeCBpbiBbCisgICAgICAgICAgICAgICAgICAgIChkaXJuYW1lcywgc2VsZi5saXRlcmFs
c19kaXIsIHNlbGYucGF0dGVybnNfZGlyLCBrZWVwX2RpcnMsICIvIiksCisgICAgICAgICAgICAg
ICAgICAgIChmaWxlbmFtZXMsIHNlbGYubGl0ZXJhbHNfZmlsZSwgc2VsZi5wYXR0ZXJuc19maWxl
LCBrZWVwX2ZpbGVzLCAiIildOgorICAgICAgICAgICAgICAgIGZvciBpdGVtIGluIGl0ZXJfaXRl
bXM6CisgICAgICAgICAgICAgICAgICAgIG5hbWUgPSBpdGVtWzBdCisgICAgICAgICAgICAgICAg
ICAgIGlmIGRpcnBhdGg6CisgICAgICAgICAgICAgICAgICAgICAgICBwYXRoID0gIiVzLyVzIiAl
IChkaXJwYXRoLCBuYW1lKSArIHN1ZmZpeAorICAgICAgICAgICAgICAgICAgICBlbHNlOgorICAg
ICAgICAgICAgICAgICAgICAgICAgcGF0aCA9IG5hbWUgKyBzdWZmaXgKKyAgICAgICAgICAgICAg
ICAgICAgaWYgcGF0aCBpbiBzZWxmLmNhY2hlOgorICAgICAgICAgICAgICAgICAgICAgICAgaWYg
bm90IHNlbGYuY2FjaGVbcGF0aF06CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFyZ2V0
LmFwcGVuZChpdGVtKQorICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWUKKyAgICAgICAg
ICAgICAgICAgICAgZm9yIHJ1bGVfZGlyIGluIFtOb25lLCBkaXJwYXRoXToKKyAgICAgICAgICAg
ICAgICAgICAgICAgIGlmIG5hbWUgaW4gbGl0ZXJhbHMuZ2V0KHJ1bGVfZGlyLCBlbXB0eSk6Cisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgZXhjbHVkZSA9IGxpdGVyYWxzW3J1bGVfZGlyXVtu
YW1lXQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIG5vdCBhbnkocnVsZS5tYXRjaChu
YW1lIGlmIG5hbWVfb25seSBlbHNlIHBhdGgpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBmb3IgbmFtZV9vbmx5LCBydWxlIGluIGV4Y2x1ZGUpOgorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAjIFNraXAgdGhpcyBpdGVtCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHNlbGYuY2FjaGVbcGF0aF0gPSBUcnVlCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGJyZWFrCisgICAgICAgICAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAg
ICAgICAgICAgICAgICBmb3IgKGNvbXBvbmVudF9vbmx5LCBwYXR0ZXJuKSwgZXhjbHVkZSBpbiBw
YXR0ZXJuczoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiBjb21wb25lbnRfb25seToK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF0Y2ggPSBwYXR0ZXJuLm1hdGNoKG5h
bWUpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgbWF0Y2ggPSBwYXR0ZXJuLm1hdGNoKHBhdGgpCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgaWYgbWF0Y2g6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGlmIG5vdCBhbnkocnVsZS5tYXRjaChuYW1lIGlmIG5hbWVfb25seSBlbHNlIHBhdGgpCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yIG5hbWVfb25seSwgcnVs
ZSBpbiBleGNsdWRlKToKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgU2tp
cCB0aGlzIGl0ZW0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuY2Fj
aGVbcGF0aF0gPSBUcnVlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVh
aworICAgICAgICAgICAgICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBzZWxmLmNhY2hlW3BhdGhdID0gRmFsc2UKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICB0YXJnZXQuYXBwZW5kKGl0ZW0pCisKKyAgICAgICAgICAgIGRpcm5hbWVzWzpdID0ga2VlcF9k
aXJzCisgICAgICAgICAgICBhc3NlcnQgIi5naXQiIG5vdCBpbiBkaXJuYW1lcworICAgICAgICAg
ICAgeWllbGQgb3JpZ19kaXJwYXRoLCBkaXJuYW1lcywga2VlcF9maWxlcworCisgICAgZGVmIF9f
Y2FsbF9fKHNlbGYsCisgICAgICAgICAgICAgICAgIGl0ZXJhdG9yICAjIHR5cGU6IEl0ZXJhYmxl
W1R1cGxlW3N0ciwgTGlzdFtUdXBsZVtzdHIsIFRdXSwgTGlzdFtUdXBsZVtzdHIsIFRdXV1dCisg
ICAgICAgICAgICAgICAgICk6CisgICAgICAgICMgdHlwZTogKC4uLikgLT4gSXRlcmFibGVbVHVw
bGVbc3RyLCBMaXN0W1R1cGxlW3N0ciwgVF1dLCBMaXN0W1R1cGxlW3N0ciwgVF1dXV0KICAgICAg
ICAgaWYgc2VsZi50cml2aWFsOgotICAgICAgICAgICAgcmV0dXJuIFRydWUKKyAgICAgICAgICAg
IHJldHVybiBpdGVyYXRvcgogCi0gICAgICAgIHBhdGhfaXNfZGlyID0gcGF0aFstMV0gPT0gIi8i
Ci0gICAgICAgIGlmIHBhdGhfaXNfZGlyOgotICAgICAgICAgICAgcGF0aCA9IHBhdGhbOi0xXQot
ICAgICAgICAgICAgcnVsZXMgPSBzZWxmLnJ1bGVzX2RpcgotICAgICAgICBlbHNlOgotICAgICAg
ICAgICAgcnVsZXMgPSBzZWxmLnJ1bGVzX2ZpbGUKLQotICAgICAgICBpbmNsdWRlID0gVHJ1ZQot
ICAgICAgICBmb3IgcmVnZXhwLCBpbnZlcnQgaW4gcnVsZXM6Ci0gICAgICAgICAgICBpZiBub3Qg
aW5jbHVkZSBhbmQgaW52ZXJ0IGFuZCByZWdleHAubWF0Y2gocGF0aCk6Ci0gICAgICAgICAgICAg
ICAgaW5jbHVkZSA9IFRydWUKLSAgICAgICAgICAgIGVsaWYgaW5jbHVkZSBhbmQgbm90IGludmVy
dCBhbmQgcmVnZXhwLm1hdGNoKHBhdGgpOgotICAgICAgICAgICAgICAgIGluY2x1ZGUgPSBGYWxz
ZQotICAgICAgICByZXR1cm4gaW5jbHVkZQorICAgICAgICByZXR1cm4gc2VsZi5maWx0ZXIoaXRl
cmF0b3IpCisKKworZGVmIGhhc19pZ25vcmUoZGlycGF0aCk6CisgICAgIyB0eXBlOiAoc3RyKSAt
PiBib29sCisgICAgcmV0dXJuIG9zLnBhdGguZXhpc3RzKG9zLnBhdGguam9pbihkaXJwYXRoLCAi
LmdpdGlnbm9yZSIpKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy9naXRpZ25vcmUvdGVzdHMvdGVzdF9naXRpZ25vcmUucHkgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2dpdGlnbm9y
ZS90ZXN0cy90ZXN0X2dpdGlnbm9yZS5weQppbmRleCA3NWEwZDU4YjJjNjAxYzRiMTAyM2ZiYjEx
N2QzOWE0MjlkOGJiMDllLi44MTMxYTcxODc1YjRkNTY5ZmVkOTVmNjc4MWZlY2EwNjQ3MGVhNjhk
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL2dpdGlnbm9yZS90ZXN0cy90ZXN0X2dpdGlnbm9yZS5weQorKysgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2dpdGlnbm9yZS90ZXN0cy90
ZXN0X2dpdGlnbm9yZS5weQpAQCAtMiw4MSArMiwxMTAgQEAgaW1wb3J0IHB5dGVzdAogCiBmcm9t
IC4uZ2l0aWdub3JlIGltcG9ydCBmbm1hdGNoX3RyYW5zbGF0ZSwgUGF0aEZpbHRlcgogCitNWVBZ
ID0gRmFsc2UKK2lmIE1ZUFk6CisgICAgIyBNWVBZIGlzIHNldCB0byBUcnVlIHdoZW4gcnVuIHVu
ZGVyIE15cHkuCisgICAgZnJvbSB0eXBpbmcgaW1wb3J0IFR1cGxlCisgICAgZnJvbSB0eXBpbmcg
aW1wb3J0IEl0ZXJhYmxlCisgICAgZnJvbSB0eXBpbmcgaW1wb3J0IFNlcXVlbmNlCisKIG1hdGNo
X2RhdGEgPSBbCi0gICAgKCJmb28iLCBGYWxzZSwgWyJhL2ZvbyIsICJmb28iXSksCi0gICAgKCIq
LmEiLCBGYWxzZSwgWyJmb28uYSIsICJhL2Zvby5hIiwgImEvYi9mb28uYSIsICJhLmEvZm9vLmEi
XSksCi0gICAgKCIqLnB5W2NvXSIsIEZhbHNlLCBbImEucHljIiwgImEucHlvIiwgImEvYi9jLnB5
YyJdKSwKLSAgICAoIlxcIyoiLCBGYWxzZSwgWyIjYSIsICJhLyNiIl0pLAotICAgICgiKiMiLCBG
YWxzZSwgWyJhIyIsICJhL2IjIiwgIiNhIyJdKSwKLSAgICAoIi8qLmMiLCBGYWxzZSwgWyJhLmMi
LCAiLmMiXSksCisgICAgKCJmb28iLCBUcnVlLCBbImEvZm9vIiwgImZvbyJdKSwKKyAgICAoIiou
YSIsIFRydWUsIFsiZm9vLmEiLCAiYS9mb28uYSIsICJhL2IvZm9vLmEiLCAiYS5hL2Zvby5hIl0p
LAorICAgICgiKi5weVtjb10iLCBUcnVlLCBbImEucHljIiwgImEucHlvIiwgImEvYi9jLnB5YyJd
KSwKKyAgICAoIlxcIyoiLCBUcnVlLCBbIiNhIiwgImEvI2IiXSksCisgICAgKCIqIyIsIFRydWUs
IFsiYSMiLCAiYS9iIyIsICIjYSMiXSksCisgICAgKCIvKi5jIiwgVHJ1ZSwgWyJhLmMiLCAiLmMi
XSksCiAgICAgKCIqKi9iIiwgRmFsc2UsIFsiYS9iIiwgImEvYy9iIl0pLAogICAgICgiKmIiLCBU
cnVlLCBbImFiIl0pLAotICAgICgiKiovYiIsIFRydWUsIFsiYS9iIl0pLAotICAgICgiYS8iLCBU
cnVlLCBbImEiLCAiYS9iIiwgImEvYi9jIl0pCi1dCisgICAgKCIqYiIsIFRydWUsIFsiYS9iIl0p
LAorICAgICgiKiovYiIsIEZhbHNlLCBbImEvYiJdKSwKKyAgICAoImEvIiwgVHJ1ZSwgWyJhIl0p
LAorICAgICgiYVsvXWIiLCBUcnVlLCBbXSksCisgICAgKCIqKi9iIiwgRmFsc2UsIFsiYS9jL2Ii
XSksCisgICAgKCJhP2MiLCBUcnVlLCBbImFiYyJdKSwKKyAgICAoImFbXmJdYyIsIFRydWUsIFsi
YWNjIl0pLAorICAgICgiYVtiLWNdYyIsIFRydWUsIFsiYWJjIiwgImFjYyJdKSwKKyAgICAoImFb
Xl1jIiwgVHJ1ZSwgWyJhYyJdKSwgICMgVGhpcyBpcyBwcm9iYWJseSB3cm9uZworICAgICgiYVte
XWMiLCBUcnVlLCBbImFjIl0pLCAgIyBUaGlzIGlzIHByb2JhYmx5IHdyb25nCitdICAjIHR5cGU6
IFNlcXVlbmNlW1R1cGxlW3N0ciwgYm9vbCwgSXRlcmFibGVbc3RyXV1dCiAKIG1pc21hdGNoX2Rh
dGEgPSBbCi0gICAgKCJmb28iLCBGYWxzZSwgWyJmb29iIiwgImFmb28iXSksCi0gICAgKCIqLmEi
LCBGYWxzZSwgWyJhIiwgImZvbzphIiwgImEuYS9mb28iXSksCi0gICAgKCIqLnB5W2NvXSIsIEZh
bHNlLCBbImEucHlkIiwgInB5byJdKSwKLSAgICAoIi8qLmMiLCBGYWxzZSwgWyJhL2IuYyJdKSwK
LSAgICAoIipiIiwgVHJ1ZSwgWyJhL2IiXSksCi0gICAgKCIqKmIiLCBUcnVlLCBbImEvYiJdKSwK
LSAgICAoImFbL11iIiwgVHJ1ZSwgWyJhL2IiXSksCi0gICAgKCIqKi9iIiwgVHJ1ZSwgWyJhL2Mv
YiJdKSwKLSAgICAoImEiLCBUcnVlLCBbImFiIl0pCi1dCisgICAgKCJmb28iLCBUcnVlLCBbImZv
b2IiLCAiYWZvbyJdKSwKKyAgICAoIiouYSIsIFRydWUsIFsiYSIsICJmb286YSIsICJhLmEvZm9v
Il0pLAorICAgICgiKi5weVtjb10iLCBUcnVlLCBbImEucHlkIiwgInB5byIsICJhLnB5Il0pLAor
ICAgICgiYSIsIFRydWUsIFsiYWIiXSksCisgICAgKCJhP2MiLCBUcnVlLCBbImFjIiwgImFiYmMi
XSksCisgICAgKCJhW15iXWMiLCBUcnVlLCBbImFiYyJdKSwKKyAgICAoImFbYi1jXWMiLCBUcnVl
LCBbImFkYyJdKSwKK10gICMgdHlwZTogU2VxdWVuY2VbVHVwbGVbc3RyLCBib29sLCBJdGVyYWJs
ZVtzdHJdXV0KIAogaW52YWxpZF9kYXRhID0gWwogICAgICJbYSIsCiAgICAgIioqKi9mb28iLAog
ICAgICJhXFwiLAorICAgICIqKmIiLAorICAgICJiKiovIiwKKyAgICAiW1tdIgogXQogCiBmaWx0
ZXJfZGF0YSA9IFsKLSAgICAoImZvbyIsIFRydWUpLAotICAgICgiYSIsIEZhbHNlKSwKLSAgICAo
ImEvYiIsIEZhbHNlKSwKLSAgICAoImEvYyIsIFRydWUpLAotICAgICgiYS9jLyIsIEZhbHNlKSwK
LSAgICAoImMvYiIsIFRydWUpCisgICAgKFsiZm9vIiwgImJhci8iLCAiL2EiLCAiKi5weSJdLAor
ICAgICBbKCIiLCBbImZvbyIsICJiYXIiLCAiYmF6Il0sIFsiYSJdKSwKKyAgICAgICgiYmF6Iiwg
WyJhIl0sIFsiZm9vIiwgImJhciJdKV0sCisgICAgIFsoWyJiYXoiXSwgW10pLAorICAgICAgKFsi
YSJdLCBbImJhciJdKV0pLAorICAgIChbIiNmb28iLCAiIiwgImEqIiwgIiFhLnB5Il0sCisgICAg
IFsoIiIsIFsiZm9vIl0sIFsiYSIsICJhLmZvbyIsICJhLnB5Il0pXSwKKyAgICAgWyhbImZvbyJd
LCBbImEucHkiXSldKSwKKyAgICAoWyJhLmZvbyIsICIhYS5weSJdLAorICAgICBbKCIiLCBbImZv
byJdLCBbImEiLCAiYS5mb28iLCAiYS5weSJdKV0sCisgICAgIFsoWyJmb28iXSwgWyJhIiwgImEu
cHkiXSldKSwKIF0KIAogCiBkZWYgZXhwYW5kX2RhdGEoY29tcGFjdF9kYXRhKToKLSAgICBmb3Ig
cGF0dGVybiwgcGF0aF9uYW1lLCBpbnB1dHMgaW4gY29tcGFjdF9kYXRhOgorICAgICMgdHlwZTog
KFNlcXVlbmNlW1R1cGxlW3N0ciwgYm9vbCwgSXRlcmFibGVbc3RyXV1dKSAtPiBJdGVyYWJsZVtU
dXBsZVtzdHIsIGJvb2wsIHN0cl1dCisgICAgZm9yIHBhdHRlcm4sIG5hbWVfb25seSwgaW5wdXRz
IGluIGNvbXBhY3RfZGF0YToKICAgICAgICAgZm9yIGlucHV0IGluIGlucHV0czoKLSAgICAgICAg
ICAgIHlpZWxkIHBhdHRlcm4sIGlucHV0LCBwYXRoX25hbWUKKyAgICAgICAgICAgIHlpZWxkIHBh
dHRlcm4sIG5hbWVfb25seSwgaW5wdXQKIAogCi1AcHl0ZXN0Lm1hcmsucGFyYW1ldHJpemUoInBh
dHRlcm4sIGlucHV0LCBwYXRoX25hbWUiLCBleHBhbmRfZGF0YShtYXRjaF9kYXRhKSkKLWRlZiB0
ZXN0c19tYXRjaChwYXR0ZXJuLCBpbnB1dCwgcGF0aF9uYW1lKToKLSAgICByZWdleHAgPSBmbm1h
dGNoX3RyYW5zbGF0ZShwYXR0ZXJuLCBwYXRoX25hbWUpCitAcHl0ZXN0Lm1hcmsucGFyYW1ldHJp
emUoInBhdHRlcm4sIG5hbWVfb25seSwgaW5wdXQiLCBleHBhbmRfZGF0YShtYXRjaF9kYXRhKSkK
K2RlZiB0ZXN0c19tYXRjaChwYXR0ZXJuLCBuYW1lX29ubHksIGlucHV0KToKKyAgICBuYW1lX29u
bHlfcmVzdWx0LCByZWdleHAgPSBmbm1hdGNoX3RyYW5zbGF0ZShwYXR0ZXJuKQorICAgIGFzc2Vy
dCBuYW1lX29ubHlfcmVzdWx0ID09IG5hbWVfb25seQorICAgIGlmIG5hbWVfb25seToKKyAgICAg
ICAgaW5wdXQgPSBpbnB1dC5yc3BsaXQoIi8iLCAxKVstMV0KICAgICBhc3NlcnQgcmVnZXhwLm1h
dGNoKGlucHV0KSBpcyBub3QgTm9uZQogCiAKLUBweXRlc3QubWFyay5wYXJhbWV0cml6ZSgicGF0
dGVybiwgaW5wdXQsIHBhdGhfbmFtZSIsIGV4cGFuZF9kYXRhKG1pc21hdGNoX2RhdGEpKQotZGVm
IHRlc3RzX25vX21hdGNoKHBhdHRlcm4sIGlucHV0LCBwYXRoX25hbWUpOgotICAgIHJlZ2V4cCA9
IGZubWF0Y2hfdHJhbnNsYXRlKHBhdHRlcm4sIHBhdGhfbmFtZSkKK0BweXRlc3QubWFyay5wYXJh
bWV0cml6ZSgicGF0dGVybiwgbmFtZV9vbmx5LCBpbnB1dCIsIGV4cGFuZF9kYXRhKG1pc21hdGNo
X2RhdGEpKQorZGVmIHRlc3RzX25vX21hdGNoKHBhdHRlcm4sIG5hbWVfb25seSwgaW5wdXQpOgor
ICAgIG5hbWVfb25seV9yZXN1bHQsIHJlZ2V4cCA9IGZubWF0Y2hfdHJhbnNsYXRlKHBhdHRlcm4p
CisgICAgYXNzZXJ0IG5hbWVfb25seV9yZXN1bHQgPT0gbmFtZV9vbmx5CisgICAgaWYgbmFtZV9v
bmx5OgorICAgICAgICBpbnB1dCA9IGlucHV0LnJzcGxpdCgiLyIsIDEpWy0xXQogICAgIGFzc2Vy
dCByZWdleHAubWF0Y2goaW5wdXQpIGlzIE5vbmUKIAogCiBAcHl0ZXN0Lm1hcmsucGFyYW1ldHJp
emUoInBhdHRlcm4iLCBpbnZhbGlkX2RhdGEpCiBkZWYgdGVzdHNfaW52YWxpZChwYXR0ZXJuKToK
ICAgICB3aXRoIHB5dGVzdC5yYWlzZXMoVmFsdWVFcnJvcik6Ci0gICAgICAgIGZubWF0Y2hfdHJh
bnNsYXRlKHBhdHRlcm4sIEZhbHNlKQotICAgIHdpdGggcHl0ZXN0LnJhaXNlcyhWYWx1ZUVycm9y
KToKLSAgICAgICAgZm5tYXRjaF90cmFuc2xhdGUocGF0dGVybiwgVHJ1ZSkKLQotCi1AcHl0ZXN0
Lm1hcmsucGFyYW1ldHJpemUoInBhdGgsIGV4cGVjdGVkIiwgZmlsdGVyX2RhdGEpCi1kZWYgdGVz
dF9wYXRoX2ZpbHRlcihwYXRoLCBleHBlY3RlZCk6Ci0gICAgZXh0cmFzID0gWwotICAgICAgICAi
I2ZvbyIsCi0gICAgICAgICJhICAiLAotICAgICAgICAiKiovYiIsCi0gICAgICAgICJhL2MvIiwK
LSAgICAgICAgIiFjL2IiLAotICAgIF0KLSAgICBmID0gUGF0aEZpbHRlcihOb25lLCBleHRyYXMp
Ci0gICAgYXNzZXJ0IGYocGF0aCkgPT0gZXhwZWN0ZWQKKyAgICAgICAgZm5tYXRjaF90cmFuc2xh
dGUocGF0dGVybikKKworCitAcHl0ZXN0Lm1hcmsucGFyYW1ldHJpemUoInJ1bGVzLCBpbnB1dCwg
ZXhwZWN0ZWQiLCBmaWx0ZXJfZGF0YSkKK2RlZiB0ZXN0X3BhdGhfZmlsdGVyKHJ1bGVzLCBpbnB1
dCwgZXhwZWN0ZWQpOgorICAgIGYgPSBQYXRoRmlsdGVyKE5vbmUsIHJ1bGVzKQorICAgICMgQWRk
IHNvbWUgZmFrZSBzdGF0IGRhdGEKKyAgICBmb3IgaSwgaXRlbSBpbiBlbnVtZXJhdGUoaW5wdXQp
OgorICAgICAgICByZXBsID0gW2lucHV0W2ldWzBdXQorICAgICAgICBmb3IgaiBpbiBbMSwgMl06
CisgICAgICAgICAgICByZXBsLmFwcGVuZChbKG5hbWUsIE5vbmUpIGZvciBuYW1lIGluIGlucHV0
W2ldW2pdXSkKKyAgICAgICAgaW5wdXRbaV0gPSB0dXBsZShyZXBsKQorCisgICAgZm9yIGksIG91
dHB1dCBpbiBlbnVtZXJhdGUoZihpbnB1dCkpOgorICAgICAgICBhc3NlcnQgb3V0cHV0WzBdID09
IGlucHV0W2ldWzBdCisgICAgICAgIGZvciBqIGluIFsxLCAyXToKKyAgICAgICAgICAgIGFzc2Vy
dCBbaXRlbVswXSBmb3IgaXRlbSBpbiBvdXRwdXRbal1dID09IGV4cGVjdGVkW2ldW2otMV0KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvbGludC9mbm1hdGNoLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy9saW50L2ZubWF0Y2gucHkKaW5kZXggMmZlM2ViMGFhOWU1YWYwN2UxMWFk
NWIwOGQ5MGY4MjliOGE1MWE1MC4uM2Q5ZWUyM2M5N2U1YmFmMTY1Nzc1OGVmMTgyNDQxMDRjN2Y3
YzFlMyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy9saW50L2ZubWF0Y2gucHkKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9saW50L2ZubWF0Y2gucHkKQEAgLTMsMTcgKzMsMjYg
QEAgZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCBhYnNvbHV0ZV9pbXBvcnQKIGltcG9ydCBmbm1hdGNo
IGFzIF9zdGRsaWJfZm5tYXRjaAogaW1wb3J0IG9zCiAKK01ZUFkgPSBGYWxzZQoraWYgTVlQWToK
KyAgICAjIE1ZUFkgaXMgc2V0IHRvIFRydWUgd2hlbiBydW4gdW5kZXIgTXlweS4KKyAgICBmcm9t
IHR5cGluZyBpbXBvcnQgQW55U3RyCisgICAgZnJvbSB0eXBpbmcgaW1wb3J0IEl0ZXJhYmxlCisg
ICAgZnJvbSB0eXBpbmcgaW1wb3J0IExpc3QKKwogCiBfX2FsbF9fID0gWyJmbm1hdGNoIiwgImZu
bWF0Y2hjYXNlIiwgImZpbHRlciIsICJ0cmFuc2xhdGUiXQogCiAKIGRlZiBmbm1hdGNoKG5hbWUs
IHBhdCk6CisgICAgIyB0eXBlOiAoQW55U3RyLCBBbnlTdHIpIC0+IGJvb2wKICAgICBuYW1lID0g
b3MucGF0aC5ub3JtY2FzZShuYW1lKQogICAgIHBhdCA9IG9zLnBhdGgubm9ybWNhc2UocGF0KQog
ICAgIHJldHVybiBmbm1hdGNoY2FzZShuYW1lLCBwYXQpCiAKIAogZGVmIGZubWF0Y2hjYXNlKG5h
bWUsIHBhdCk6CisgICAgIyB0eXBlOiAoQW55U3RyLCBBbnlTdHIpIC0+IGJvb2wKICAgICBpZiAn
Pycgbm90IGluIHBhdCBhbmQgJ1snIG5vdCBpbiBwYXQ6CiAgICAgICAgIHdpbGRjYXJkcyA9IHBh
dC5jb3VudCgiKiIpCiAgICAgICAgIGlmIHdpbGRjYXJkcyA9PSAwOgpAQCAtMjYsNiArMzUsNyBA
QCBkZWYgZm5tYXRjaGNhc2UobmFtZSwgcGF0KToKIAogCiBkZWYgZmlsdGVyKG5hbWVzLCBwYXQp
OgorICAgICMgdHlwZTogKEl0ZXJhYmxlW0FueVN0cl0sIEFueVN0cikgLT4gTGlzdFtBbnlTdHJd
CiAgICAgcmV0dXJuIFtuIGZvciBuIGluIG5hbWVzIGlmIGZubWF0Y2gobiwgcGF0KV0KIAogCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL2xpbnQvbGludC5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvbGludC9saW50LnB5CmluZGV4IDNmNDNiMzczYWJlNzkzZTg4NTRiYWE4MGQ0
YWMxMjdlZDY2ZDBkOTUuLmM3YzAxOTcyMTNjNDY2MGQwNWEzZDg2OGVkZDg3YmQ5MDc0MzBmNmIg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvbGludC9saW50LnB5CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvbGludC9saW50LnB5CkBAIC00LDYgKzQsNyBAQCBpbXBvcnQgYWJj
CiBpbXBvcnQgYXJncGFyc2UKIGltcG9ydCBhc3QKIGltcG9ydCBqc29uCitpbXBvcnQgbG9nZ2lu
ZwogaW1wb3J0IG9zCiBpbXBvcnQgcmUKIGltcG9ydCBzdWJwcm9jZXNzCkBAIC0xMywzMiArMTQs
NTQgQEAgaW1wb3J0IHRlbXBmaWxlCiBmcm9tIGNvbGxlY3Rpb25zIGltcG9ydCBkZWZhdWx0ZGlj
dAogCiBmcm9tIC4gaW1wb3J0IGZubWF0Y2gKK2Zyb20gLiBpbXBvcnQgcnVsZXMKIGZyb20gLi4g
aW1wb3J0IGxvY2FscGF0aHMKIGZyb20gLi5naXRpZ25vcmUuZ2l0aWdub3JlIGltcG9ydCBQYXRo
RmlsdGVyCiBmcm9tIC4ud3B0IGltcG9ydCB0ZXN0ZmlsZXMKK2Zyb20gLi5tYW5pZmVzdC52Y3Mg
aW1wb3J0IHdhbGsKIAotZnJvbSBtYW5pZmVzdC5zb3VyY2VmaWxlIGltcG9ydCBTb3VyY2VGaWxl
LCBqc19tZXRhX3JlLCBweXRob25fbWV0YV9yZSwgc3BhY2VfY2hhcnMsIGdldF9hbnlfdmFyaWFu
dHMsIGdldF9kZWZhdWx0X2FueV92YXJpYW50cwotZnJvbSBzaXggaW1wb3J0IGJpbmFyeV90eXBl
LCBpdGVyaXRlbXMsIGl0ZXJ2YWx1ZXMKK2Zyb20gLi5tYW5pZmVzdC5zb3VyY2VmaWxlIGltcG9y
dCBTb3VyY2VGaWxlLCBqc19tZXRhX3JlLCBweXRob25fbWV0YV9yZSwgc3BhY2VfY2hhcnMsIGdl
dF9hbnlfdmFyaWFudHMsIGdldF9kZWZhdWx0X2FueV92YXJpYW50cworZnJvbSBzaXggaW1wb3J0
IGJpbmFyeV90eXBlLCBpdGVyaXRlbXMsIGl0ZXJ2YWx1ZXMsIHdpdGhfbWV0YWNsYXNzCiBmcm9t
IHNpeC5tb3ZlcyBpbXBvcnQgcmFuZ2UKIGZyb20gc2l4Lm1vdmVzLnVybGxpYi5wYXJzZSBpbXBv
cnQgdXJsc3BsaXQsIHVybGpvaW4KIAotaW1wb3J0IGxvZ2dpbmcKK01ZUFkgPSBGYWxzZQoraWYg
TVlQWToKKyAgICAjIE1ZUFkgaXMgc2V0IHRvIFRydWUgd2hlbiBydW4gdW5kZXIgTXlweS4KKyAg
ICBmcm9tIHR5cGluZyBpbXBvcnQgQW55CisgICAgZnJvbSB0eXBpbmcgaW1wb3J0IERpY3QKKyAg
ICBmcm9tIHR5cGluZyBpbXBvcnQgSU8KKyAgICBmcm9tIHR5cGluZyBpbXBvcnQgSXRlcmFibGUK
KyAgICBmcm9tIHR5cGluZyBpbXBvcnQgTGlzdAorICAgIGZyb20gdHlwaW5nIGltcG9ydCBPcHRp
b25hbAorICAgIGZyb20gdHlwaW5nIGltcG9ydCBTZXF1ZW5jZQorICAgIGZyb20gdHlwaW5nIGlt
cG9ydCBTZXQKKyAgICBmcm9tIHR5cGluZyBpbXBvcnQgVGV4dAorICAgIGZyb20gdHlwaW5nIGlt
cG9ydCBUdXBsZQorICAgIGZyb20gdHlwaW5nIGltcG9ydCBUeXBlCisgICAgZnJvbSB0eXBpbmcg
aW1wb3J0IFVuaW9uCisKKyAgICBXaGl0ZWxpc3QgPSBEaWN0W1RleHQsIERpY3RbVGV4dCwgU2V0
W09wdGlvbmFsW2ludF1dXV0KIAotbG9nZ2VyID0gTm9uZQorCitsb2dnZXIgPSBOb25lICAjIHR5
cGU6IE9wdGlvbmFsW2xvZ2dpbmcuTG9nZ2VyXQogCiBkZWYgc2V0dXBfbG9nZ2luZyhwcmVmaXg9
RmFsc2UpOgorICAgICMgdHlwZTogKGJvb2wpIC0+IE5vbmUKICAgICBnbG9iYWwgbG9nZ2VyCiAg
ICAgaWYgbG9nZ2VyIGlzIE5vbmU6CiAgICAgICAgIGxvZ2dlciA9IGxvZ2dpbmcuZ2V0TG9nZ2Vy
KG9zLnBhdGguYmFzZW5hbWUob3MucGF0aC5zcGxpdGV4dChfX2ZpbGVfXylbMF0pKQotICAgICAg
ICBoYW5kbGVyID0gbG9nZ2luZy5TdHJlYW1IYW5kbGVyKHN5cy5zdGRvdXQpCisgICAgICAgIGhh
bmRsZXIgPSBsb2dnaW5nLlN0cmVhbUhhbmRsZXIoc3lzLnN0ZG91dCkgICMgdHlwZTogbG9nZ2lu
Zy5IYW5kbGVyCiAgICAgICAgICMgT25seSBhZGQgYSBoYW5kbGVyIGlmIHRoZSBwYXJlbnQgbG9n
Z2VyIGlzIG1pc3NpbmcgYSBoYW5kbGVyCi0gICAgICAgIGlmIGxvZ2dlci5wYXJlbnQgYW5kIGxl
bihsb2dnZXIucGFyZW50LmhhbmRsZXJzKSA9PSAwOgorICAgICAgICBwYXJlbnQgPSBsb2dnZXIu
cGFyZW50CisgICAgICAgIGFzc2VydCBpc2luc3RhbmNlKHBhcmVudCwgbG9nZ2luZy5Mb2dnZXIp
CisgICAgICAgIGlmIHBhcmVudCBhbmQgbGVuKHBhcmVudC5oYW5kbGVycykgPT0gMDoKICAgICAg
ICAgICAgIGhhbmRsZXIgPSBsb2dnaW5nLlN0cmVhbUhhbmRsZXIoc3lzLnN0ZG91dCkKICAgICAg
ICAgICAgIGxvZ2dlci5hZGRIYW5kbGVyKGhhbmRsZXIpCiAgICAgaWYgcHJlZml4OgogICAgICAg
ICBmb3JtYXQgPSBsb2dnaW5nLkJBU0lDX0ZPUk1BVAogICAgIGVsc2U6Ci0gICAgICAgIGZvcm1h
dCA9ICIlKG1lc3NhZ2UpcyIKKyAgICAgICAgZm9ybWF0ID0gc3RyKCIlKG1lc3NhZ2UpcyIpCiAg
ICAgZm9ybWF0dGVyID0gbG9nZ2luZy5Gb3JtYXR0ZXIoZm9ybWF0KQogICAgIGZvciBoYW5kbGVy
IGluIGxvZ2dlci5oYW5kbGVyczoKICAgICAgICAgaGFuZGxlci5zZXRGb3JtYXR0ZXIoZm9ybWF0
dGVyKQpAQCAtNjIsMjEgKzg1LDIzIEBAIHlvdSBjb3VsZCBhZGQgdGhlIGZvbGxvd2luZyBsaW5l
IHRvIHRoZSBsaW50LndoaXRlbGlzdCBmaWxlLgogJXM6ICVzIiIiCiAKIGRlZiBhbGxfZmlsZXN5
c3RlbV9wYXRocyhyZXBvX3Jvb3QsIHN1YmRpcj1Ob25lKToKLSAgICBwYXRoX2ZpbHRlciA9IFBh
dGhGaWx0ZXIocmVwb19yb290LCBleHRyYXM9WyIuZ2l0LyJdKQorICAgICMgdHlwZTogKHN0ciwg
T3B0aW9uYWxbc3RyXSkgLT4gSXRlcmFibGVbc3RyXQorICAgIHBhdGhfZmlsdGVyID0gUGF0aEZp
bHRlcihyZXBvX3Jvb3QsIGV4dHJhcz1bc3RyKCIuZ2l0LyIpXSkKICAgICBpZiBzdWJkaXI6CiAg
ICAgICAgIGV4cGFuZGVkX3BhdGggPSBzdWJkaXIKICAgICBlbHNlOgogICAgICAgICBleHBhbmRl
ZF9wYXRoID0gcmVwb19yb290Ci0gICAgZm9yIGRpcnBhdGgsIGRpcm5hbWVzLCBmaWxlbmFtZXMg
aW4gb3Mud2FsayhleHBhbmRlZF9wYXRoKToKLSAgICAgICAgZm9yIGZpbGVuYW1lIGluIGZpbGVu
YW1lczoKLSAgICAgICAgICAgIHBhdGggPSBvcy5wYXRoLnJlbHBhdGgob3MucGF0aC5qb2luKGRp
cnBhdGgsIGZpbGVuYW1lKSwgcmVwb19yb290KQotICAgICAgICAgICAgaWYgcGF0aF9maWx0ZXIo
cGF0aCk6Ci0gICAgICAgICAgICAgICAgeWllbGQgcGF0aAotICAgICAgICBkaXJuYW1lc1s6XSA9
IFtpdGVtIGZvciBpdGVtIGluIGRpcm5hbWVzIGlmCi0gICAgICAgICAgICAgICAgICAgICAgIHBh
dGhfZmlsdGVyKG9zLnBhdGgucmVscGF0aChvcy5wYXRoLmpvaW4oZGlycGF0aCwgaXRlbSkgKyAi
LyIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBy
ZXBvX3Jvb3QpKyIvIildCisgICAgZm9yIGRpcnBhdGgsIGRpcm5hbWVzLCBmaWxlbmFtZXMgaW4g
cGF0aF9maWx0ZXIod2FsayhleHBhbmRlZF9wYXRoKSk6CisgICAgICAgIGZvciBmaWxlbmFtZSwg
XyBpbiBmaWxlbmFtZXM6CisgICAgICAgICAgICBwYXRoID0gb3MucGF0aC5qb2luKGRpcnBhdGgs
IGZpbGVuYW1lKQorICAgICAgICAgICAgaWYgc3ViZGlyOgorICAgICAgICAgICAgICAgIHBhdGgg
PSBvcy5wYXRoLmpvaW4oc3ViZGlyLCBwYXRoKQorICAgICAgICAgICAgYXNzZXJ0IG5vdCBvcy5w
YXRoLmlzYWJzKHBhdGgpLCBwYXRoCisgICAgICAgICAgICB5aWVsZCBwYXRoCisKIAogZGVmIF9h
bGxfZmlsZXNfZXF1YWwocGF0aHMpOgorICAgICMgdHlwZTogKEl0ZXJhYmxlW3N0cl0pIC0+IGJv
b2wKICAgICAiIiIKICAgICBDaGVja3MgYWxsIHRoZSBwYXRocyBhcmUgZmlsZXMgdGhhdCBhcmUg
Ynl0ZS1mb3ItYnl0ZSBpZGVudGljYWwKIApAQCAtMTE1LDMyICsxNDAsNjAgQEAgZGVmIF9hbGxf
ZmlsZXNfZXF1YWwocGF0aHMpOgogCiAKIGRlZiBjaGVja19wYXRoX2xlbmd0aChyZXBvX3Jvb3Qs
IHBhdGgpOgorICAgICMgdHlwZTogKHN0ciwgc3RyKSAtPiBMaXN0W3J1bGVzLkVycm9yXQogICAg
IGlmIGxlbihwYXRoKSArIDEgPiAxNTA6Ci0gICAgICAgIHJldHVybiBbKCJQQVRIIExFTkdUSCIs
ICIvJXMgbG9uZ2VyIHRoYW4gbWF4aW11bSBwYXRoIGxlbmd0aCAoJWQgPiAxNTApIiAlIChwYXRo
LCBsZW4ocGF0aCkgKyAxKSwgcGF0aCwgTm9uZSldCisgICAgICAgIHJldHVybiBbcnVsZXMuUGF0
aExlbmd0aC5lcnJvcihwYXRoLCAocGF0aCwgbGVuKHBhdGgpICsgMSkpXQorICAgIHJldHVybiBb
XQorCisKK2RlZiBjaGVja19maWxlX3R5cGUocmVwb19yb290LCBwYXRoKToKKyAgICAjIHR5cGU6
IChzdHIsIHN0cikgLT4gTGlzdFtydWxlcy5FcnJvcl0KKyAgICBpZiBvcy5wYXRoLmlzbGluayhw
YXRoKToKKyAgICAgICAgcmV0dXJuIFtydWxlcy5GaWxlVHlwZS5lcnJvcihwYXRoLCAocGF0aCwg
InN5bWxpbmsiKSldCiAgICAgcmV0dXJuIFtdCiAKIAogZGVmIGNoZWNrX3dvcmtlcl9jb2xsaXNp
b24ocmVwb19yb290LCBwYXRoKToKKyAgICAjIHR5cGU6IChzdHIsIHN0cikgLT4gTGlzdFtydWxl
cy5FcnJvcl0KICAgICBlbmRpbmdzID0gWygiLmFueS5odG1sIiwgIi5hbnkuanMiKSwKICAgICAg
ICAgICAgICAgICgiLmFueS53b3JrZXIuaHRtbCIsICIuYW55LmpzIiksCiAgICAgICAgICAgICAg
ICAoIi53b3JrZXIuaHRtbCIsICIud29ya2VyLmpzIildCiAgICAgZm9yIHBhdGhfZW5kaW5nLCBn
ZW5lcmF0ZWQgaW4gZW5kaW5nczoKICAgICAgICAgaWYgcGF0aC5lbmRzd2l0aChwYXRoX2VuZGlu
Zyk6Ci0gICAgICAgICAgICByZXR1cm4gWygiV09SS0VSIENPTExJU0lPTiIsCi0gICAgICAgICAg
ICAgICAgICAgICAicGF0aCBlbmRzIHdpdGggJXMgd2hpY2ggY29sbGlkZXMgd2l0aCBnZW5lcmF0
ZWQgdGVzdHMgZnJvbSAlcyBmaWxlcyIgJSAocGF0aF9lbmRpbmcsIGdlbmVyYXRlZCksCi0gICAg
ICAgICAgICAgICAgICAgICBwYXRoLAotICAgICAgICAgICAgICAgICAgICAgTm9uZSldCisgICAg
ICAgICAgICByZXR1cm4gW3J1bGVzLldvcmtlckNvbGxpc2lvbi5lcnJvcihwYXRoLCAocGF0aF9l
bmRpbmcsIGdlbmVyYXRlZCkpXQogICAgIHJldHVybiBbXQogCiAKK2RlZiBjaGVja19naXRpZ25v
cmVfZmlsZShyZXBvX3Jvb3QsIHBhdGgpOgorICAgICMgdHlwZTogKHN0ciwgc3RyKSAtPiBMaXN0
W3J1bGVzLkVycm9yXQorICAgIGlmIG5vdCBwYXRoLmVuZHN3aXRoKCIuZ2l0aWdub3JlIik6Cisg
ICAgICAgIHJldHVybiBbXQorCisgICAgcGF0aF9wYXJ0cyA9IHBhdGguc3BsaXQob3MucGF0aC5z
ZXApCisgICAgaWYgbGVuKHBhdGhfcGFydHMpID09IDE6CisgICAgICAgIHJldHVybiBbXQorCisg
ICAgaWYgcGF0aF9wYXJ0c1stMV0gIT0gIi5naXRpZ25vcmUiOgorICAgICAgICByZXR1cm4gW10K
KworICAgIGlmIChwYXRoX3BhcnRzWzBdIGluIFsidG9vbHMiLCAiZG9jcyJdIG9yCisgICAgICAg
IHBhdGhfcGFydHNbOjJdID09IFsicmVzb3VyY2VzIiwgIndlYmlkbDIiXSBvcgorICAgICAgICBw
YXRoX3BhcnRzWzozXSA9PSBbImNzcyIsICJ0b29scyIsICJhcGljbGllbnQiXSk6CisgICAgICAg
IHJldHVybiBbXQorCisgICAgcmV0dXJuIFtydWxlcy5HaXRJZ25vcmVGaWxlLmVycm9yKHBhdGgp
XQorCisKIGRlZiBjaGVja19haGVtX2NvcHkocmVwb19yb290LCBwYXRoKToKKyAgICAjIHR5cGU6
IChzdHIsIHN0cikgLT4gTGlzdFtydWxlcy5FcnJvcl0KICAgICBscGF0aCA9IHBhdGgubG93ZXIo
KQogICAgIGlmICJhaGVtIiBpbiBscGF0aCBhbmQgbHBhdGguZW5kc3dpdGgoIi50dGYiKToKLSAg
ICAgICAgcmV0dXJuIFsoIkFIRU0gQ09QWSIsICJEb24ndCBhZGQgZXh0cmEgY29waWVzIG9mIEFo
ZW0sIHVzZSAvZm9udHMvQWhlbS50dGYiLCBwYXRoLCBOb25lKV0KKyAgICAgICAgcmV0dXJuIFty
dWxlcy5BaGVtQ29weS5lcnJvcihwYXRoKV0KICAgICByZXR1cm4gW10KIAogCiBkZWYgY2hlY2tf
Z2l0X2lnbm9yZShyZXBvX3Jvb3QsIHBhdGhzKToKKyAgICAjIHR5cGU6IChzdHIsIExpc3Rbc3Ry
XSkgLT4gTGlzdFtydWxlcy5FcnJvcl0KICAgICBlcnJvcnMgPSBbXQogICAgIHdpdGggdGVtcGZp
bGUuVGVtcG9yYXJ5RmlsZSgndysnKSBhcyBmOgogICAgICAgICBmLndyaXRlKCdcbicuam9pbihw
YXRocykpCkBAIC0xNTQsOCArMjA3LDcgQEAgZGVmIGNoZWNrX2dpdF9pZ25vcmUocmVwb19yb290
LCBwYXRocyk6CiAgICAgICAgICAgICAgICAgIyBJZiB0aGUgbWF0Y2hpbmcgZmlsdGVyIHJlcG9y
dGVkIGJ5IGNoZWNrLWlnbm9yZSBpcyBhIHNwZWNpYWwtY2FzZSBleGNlcHRpb24sCiAgICAgICAg
ICAgICAgICAgIyB0aGF0J3MgZmluZS4gT3RoZXJ3aXNlLCBpdCByZXF1aXJlcyBhIG5ldyBzcGVj
aWFsLWNhc2UgZXhjZXB0aW9uLgogICAgICAgICAgICAgICAgIGlmIGZpbHRlcl9zdHJpbmdbMF0g
IT0gJyEnOgotICAgICAgICAgICAgICAgICAgICBlcnJvcnMgKz0gWygiSUdOT1JFRCBQQVRIIiwg
IiVzIG1hdGNoZXMgYW4gaWdub3JlIGZpbHRlciBpbiAuZ2l0aWdub3JlIC0gIgotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAicGxlYXNlIGFkZCBhIC5naXRpZ25vcmUgZXhjZXB0aW9u
IiAlIHBhdGgsIHBhdGgsIE5vbmUpXQorICAgICAgICAgICAgICAgICAgICBlcnJvcnMuYXBwZW5k
KHJ1bGVzLklnbm9yZWRQYXRoLmVycm9yKHBhdGgsIChwYXRoLCkpKQogICAgICAgICBleGNlcHQg
c3VicHJvY2Vzcy5DYWxsZWRQcm9jZXNzRXJyb3I6CiAgICAgICAgICAgICAjIE5vbnplcm8gcmV0
dXJuIGNvZGUgbWVhbnMgdGhhdCBubyBtYXRjaCBleGlzdHMuCiAgICAgICAgICAgICBwYXNzCkBA
IC0xNjgsNiArMjIwLDcgQEAgdzNjX2Rldl9yZSA9IHJlLmNvbXBpbGUociJodHRwcz9cOlwvXC9k
ZXZcLnczYz9cLm9yZ1wvW14vPyNdK1wvKFteLz8jXSspIikKIAogCiBkZWYgY2hlY2tfY3NzX2ds
b2JhbGx5X3VuaXF1ZShyZXBvX3Jvb3QsIHBhdGhzKToKKyAgICAjIHR5cGU6IChzdHIsIExpc3Rb
c3RyXSkgLT4gTGlzdFtydWxlcy5FcnJvcl0KICAgICAiIiIKICAgICBDaGVja3MgdGhhdCBDU1Mg
ZmlsZW5hbWVzIGFyZSBzdWZmaWNpZW50bHkgdW5pcXVlCiAKQEAgLTE4NSwxMyArMjM4LDE2IEBA
IGRlZiBjaGVja19jc3NfZ2xvYmFsbHlfdW5pcXVlKHJlcG9fcm9vdCwgcGF0aHMpOgogICAgIDpy
ZXR1cm5zOiBhIGxpc3Qgb2YgZXJyb3JzIGZvdW5kIGluIGBgcGF0aHNgYAogCiAgICAgIiIiCi0g
ICAgdGVzdF9maWxlcyA9IGRlZmF1bHRkaWN0KHNldCkKLSAgICByZWZfZmlsZXMgPSBkZWZhdWx0
ZGljdChzZXQpCi0gICAgc3VwcG9ydF9maWxlcyA9IGRlZmF1bHRkaWN0KHNldCkKKyAgICB0ZXN0
X2ZpbGVzID0gZGVmYXVsdGRpY3Qoc2V0KSAgIyB0eXBlOiBEaWN0W1VuaW9uW2J5dGVzLCBUZXh0
XSwgU2V0W3N0cl1dCisgICAgcmVmX2ZpbGVzID0gZGVmYXVsdGRpY3Qoc2V0KSAgIyB0eXBlOiBE
aWN0W1VuaW9uW2J5dGVzLCBUZXh0XSwgU2V0W3N0cl1dCisgICAgc3VwcG9ydF9maWxlcyA9IGRl
ZmF1bHRkaWN0KHNldCkgICMgdHlwZTogRGljdFtVbmlvbltieXRlcywgVGV4dF0sIFNldFtzdHJd
XQogCiAgICAgZm9yIHBhdGggaW4gcGF0aHM6CiAgICAgICAgIGlmIG9zLm5hbWUgPT0gIm50IjoK
LSAgICAgICAgICAgIHBhdGggPSBwYXRoLnJlcGxhY2UoIlxcIiwgIi8iKQorICAgICAgICAgICAg
aWYgaXNpbnN0YW5jZShwYXRoLCBiaW5hcnlfdHlwZSk6CisgICAgICAgICAgICAgICAgcGF0aCA9
IHBhdGgucmVwbGFjZShiIlxcIiwgYiIvIikKKyAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAg
ICAgICAgcGF0aCA9IHBhdGgucmVwbGFjZSh1IlxcIiwgdSIvIikKIAogICAgICAgICBpZiBub3Qg
cGF0aC5zdGFydHN3aXRoKCJjc3MvIik6CiAgICAgICAgICAgICBjb250aW51ZQpAQCAtMjExLDEy
ICsyNjcsMTcgQEAgZGVmIGNoZWNrX2Nzc19nbG9iYWxseV91bmlxdWUocmVwb19yb290LCBwYXRo
cyk6CiAgICAgICAgICAgICAgICAgYW55KHBhcnRzWzpsZW4obm9uX3Rlc3RfcGF0aCldID09IGxp
c3Qobm9uX3Rlc3RfcGF0aCkgZm9yIG5vbl90ZXN0X3BhdGggaW4gc291cmNlX2ZpbGUuZGlyX3Bh
dGhfbm9uX3Rlc3QpKToKICAgICAgICAgICAgICAgICBjb250aW51ZQogCi0gICAgICAgICAgICBu
YW1lID0gcGF0aFtvZmZzZXQrMTpdCi0gICAgICAgICAgICBzdXBwb3J0X2ZpbGVzW25hbWVdLmFk
ZChwYXRoKQorICAgICAgICAgICAgc3VwcG9ydF9uYW1lID0gcGF0aFtvZmZzZXQrMTpdCisgICAg
ICAgICAgICBzdXBwb3J0X2ZpbGVzW3N1cHBvcnRfbmFtZV0uYWRkKHBhdGgpCiAgICAgICAgIGVs
aWYgc291cmNlX2ZpbGUubmFtZV9pc19yZWZlcmVuY2U6CiAgICAgICAgICAgICByZWZfZmlsZXNb
c291cmNlX2ZpbGUubmFtZV0uYWRkKHBhdGgpCiAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICB0
ZXN0X2ZpbGVzW3NvdXJjZV9maWxlLm5hbWVdLmFkZChwYXRoKQorICAgICAgICAgICAgdGVzdF9u
YW1lID0gc291cmNlX2ZpbGUubmFtZSAgIyB0eXBlOiBVbmlvbltieXRlcywgVGV4dF0KKyAgICAg
ICAgICAgIGlmIGlzaW5zdGFuY2UodGVzdF9uYW1lLCBieXRlcyk6CisgICAgICAgICAgICAgICAg
dGVzdF9uYW1lID0gdGVzdF9uYW1lLnJlcGxhY2UoYictbWFudWFsJywgYicnKQorICAgICAgICAg
ICAgZWxzZToKKyAgICAgICAgICAgICAgICB0ZXN0X25hbWUgPSB0ZXN0X25hbWUucmVwbGFjZSh1
Jy1tYW51YWwnLCB1JycpCisgICAgICAgICAgICB0ZXN0X2ZpbGVzW3Rlc3RfbmFtZV0uYWRkKHBh
dGgpCiAKICAgICBlcnJvcnMgPSBbXQogCkBAIC0yMjQsNyArMjg1LDcgQEAgZGVmIGNoZWNrX2Nz
c19nbG9iYWxseV91bmlxdWUocmVwb19yb290LCBwYXRocyk6CiAgICAgICAgIGlmIGxlbihjb2xs
aWRpbmcpID4gMToKICAgICAgICAgICAgIGlmIG5vdCBfYWxsX2ZpbGVzX2VxdWFsKFtvcy5wYXRo
LmpvaW4ocmVwb19yb290LCB4KSBmb3IgeCBpbiBjb2xsaWRpbmddKToKICAgICAgICAgICAgICAg
ICAjIE9ubHkgY29tcHV0ZSBieV9zcGVjIGlmIHRoZXJlIGFyZSBwcmltYS1mYWNpZSBjb2xsaXNp
b25zIGJlY2F1c2Ugb2YgY29zdAotICAgICAgICAgICAgICAgIGJ5X3NwZWMgPSBkZWZhdWx0ZGlj
dChzZXQpCisgICAgICAgICAgICAgICAgYnlfc3BlYyA9IGRlZmF1bHRkaWN0KHNldCkgICMgdHlw
ZTogRGljdFtUZXh0LCBTZXRbc3RyXV0KICAgICAgICAgICAgICAgICBmb3IgcGF0aCBpbiBjb2xs
aWRpbmc6CiAgICAgICAgICAgICAgICAgICAgIHNvdXJjZV9maWxlID0gU291cmNlRmlsZShyZXBv
X3Jvb3QsIHBhdGgsICIvIikKICAgICAgICAgICAgICAgICAgICAgZm9yIGxpbmsgaW4gc291cmNl
X2ZpbGUuc3BlY19saW5rczoKQEAgLTIzNyw1MiArMjk4LDQ5IEBAIGRlZiBjaGVja19jc3NfZ2xv
YmFsbHlfdW5pcXVlKHJlcG9fcm9vdCwgcGF0aHMpOgogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGNvbnRpbnVlCiAgICAgICAgICAgICAgICAgICAgICAgICBieV9zcGVjW3NwZWNdLmFkZChw
YXRoKQogCi0gICAgICAgICAgICAgICAgZm9yIHNwZWMsIHBhdGhzIGluIGl0ZXJpdGVtcyhieV9z
cGVjKToKLSAgICAgICAgICAgICAgICAgICAgaWYgbm90IF9hbGxfZmlsZXNfZXF1YWwoW29zLnBh
dGguam9pbihyZXBvX3Jvb3QsIHgpIGZvciB4IGluIHBhdGhzXSk6Ci0gICAgICAgICAgICAgICAg
ICAgICAgICBmb3IgeCBpbiBwYXRoczoKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBlcnJv
cnMuYXBwZW5kKCgiQ1NTLUNPTExJRElORy1URVNULU5BTUUiLAotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICJUaGUgZmlsZW5hbWUgJXMgaW4gdGhlICVzIHRlc3Rz
dWl0ZSBpcyBzaGFyZWQgYnk6ICVzIgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICUgKG5hbWUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgc3BlYywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAiLCAiLmpvaW4oc29ydGVkKHBhdGhzKSkpLAotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHgsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgTm9uZSkpCi0KLSAgICBmb3IgZXJyb3JfbmFtZSwgZCBpbiBbKCJDU1MtQ09MTElE
SU5HLVJFRi1OQU1FIiwgcmVmX2ZpbGVzKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgKCJD
U1MtQ09MTElESU5HLVNVUFBPUlQtTkFNRSIsIHN1cHBvcnRfZmlsZXMpXToKKyAgICAgICAgICAg
ICAgICBmb3Igc3BlYywgc3BlY19wYXRocyBpbiBpdGVyaXRlbXMoYnlfc3BlYyk6CisgICAgICAg
ICAgICAgICAgICAgIGlmIG5vdCBfYWxsX2ZpbGVzX2VxdWFsKFtvcy5wYXRoLmpvaW4ocmVwb19y
b290LCB4KSBmb3IgeCBpbiBzcGVjX3BhdGhzXSk6CisgICAgICAgICAgICAgICAgICAgICAgICBm
b3IgeCBpbiBzcGVjX3BhdGhzOgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRleHQx
ID0gKG5hbWUsIHNwZWMsICIsICIuam9pbihzb3J0ZWQoc3BlY19wYXRocykpKQorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGVycm9ycy5hcHBlbmQocnVsZXMuQ1NTQ29sbGlkaW5nVGVzdE5h
bWUuZXJyb3IoeCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRleHQxKSkKKworICAgIGZvciBydWxl
X2NsYXNzLCBkIGluIFsocnVsZXMuQ1NTQ29sbGlkaW5nUmVmTmFtZSwgcmVmX2ZpbGVzKSwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgKHJ1bGVzLkNTU0NvbGxpZGluZ1N1cHBvcnROYW1lLCBz
dXBwb3J0X2ZpbGVzKV06CiAgICAgICAgIGZvciBuYW1lLCBjb2xsaWRpbmcgaW4gaXRlcml0ZW1z
KGQpOgogICAgICAgICAgICAgaWYgbGVuKGNvbGxpZGluZykgPiAxOgogICAgICAgICAgICAgICAg
IGlmIG5vdCBfYWxsX2ZpbGVzX2VxdWFsKFtvcy5wYXRoLmpvaW4ocmVwb19yb290LCB4KSBmb3Ig
eCBpbiBjb2xsaWRpbmddKToKKyAgICAgICAgICAgICAgICAgICAgY29udGV4dDIgPSAobmFtZSwg
IiwgIi5qb2luKHNvcnRlZChjb2xsaWRpbmcpKSkKKwogICAgICAgICAgICAgICAgICAgICBmb3Ig
eCBpbiBjb2xsaWRpbmc6Ci0gICAgICAgICAgICAgICAgICAgICAgICBlcnJvcnMuYXBwZW5kKChl
cnJvcl9uYW1lLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlRoZSBm
aWxlbmFtZSAlcyBpcyBzaGFyZWQgYnk6ICVzIiAlIChuYW1lLAotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAiLCAiLmpvaW4oc29ydGVkKGNvbGxpZGluZykpKSwKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHgsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBOb25lKSkKKyAgICAgICAgICAgICAgICAgICAgICAgIGVycm9ycy5hcHBlbmQocnVsZV9jbGFz
cy5lcnJvcih4LCBjb250ZXh0MikpCiAKICAgICByZXR1cm4gZXJyb3JzCiAKIAogZGVmIHBhcnNl
X3doaXRlbGlzdChmKToKKyAgICAjIHR5cGU6IChJT1tieXRlc10pIC0+IFR1cGxlW1doaXRlbGlz
dCwgU2V0W1RleHRdXQogICAgICIiIgogICAgIFBhcnNlIHRoZSB3aGl0ZWxpc3QgZmlsZSBnaXZl
biBieSBgZmAsIGFuZCByZXR1cm4gdGhlIHBhcnNlZCBzdHJ1Y3R1cmUuCiAgICAgIiIiCiAKLSAg
ICBkYXRhID0gZGVmYXVsdGRpY3QobGFtYmRhOmRlZmF1bHRkaWN0KHNldCkpCi0gICAgaWdub3Jl
ZF9maWxlcyA9IHNldCgpCisgICAgZGF0YSA9IGRlZmF1bHRkaWN0KGxhbWJkYTpkZWZhdWx0ZGlj
dChzZXQpKSAgIyB0eXBlOiBXaGl0ZWxpc3QKKyAgICBpZ25vcmVkX2ZpbGVzID0gc2V0KCkgICMg
dHlwZTogU2V0W1RleHRdCiAKICAgICBmb3IgbGluZSBpbiBmOgogICAgICAgICBsaW5lID0gbGlu
ZS5zdHJpcCgpCiAgICAgICAgIGlmIG5vdCBsaW5lIG9yIGxpbmUuc3RhcnRzd2l0aCgiIyIpOgog
ICAgICAgICAgICAgY29udGludWUKICAgICAgICAgcGFydHMgPSBbaXRlbS5zdHJpcCgpIGZvciBp
dGVtIGluIGxpbmUuc3BsaXQoIjoiKV0KKwogICAgICAgICBpZiBsZW4ocGFydHMpID09IDI6Ci0g
ICAgICAgICAgICBwYXJ0cy5hcHBlbmQoTm9uZSkKKyAgICAgICAgICAgIGVycm9yX3R5cGVzX3Ms
IGZpbGVfbWF0Y2ggPSBwYXJ0cworICAgICAgICAgICAgbGluZV9udW1iZXIgPSBOb25lICAjIHR5
cGU6IE9wdGlvbmFsW2ludF0KICAgICAgICAgZWxzZToKLSAgICAgICAgICAgIHBhcnRzWy0xXSA9
IGludChwYXJ0c1stMV0pCisgICAgICAgICAgICBlcnJvcl90eXBlc19zLCBmaWxlX21hdGNoLCBs
aW5lX251bWJlcl9zID0gcGFydHMKKyAgICAgICAgICAgIGxpbmVfbnVtYmVyID0gaW50KGxpbmVf
bnVtYmVyX3MpCiAKLSAgICAgICAgZXJyb3JfdHlwZXMsIGZpbGVfbWF0Y2gsIGxpbmVfbnVtYmVy
ID0gcGFydHMKLSAgICAgICAgZXJyb3JfdHlwZXMgPSB7aXRlbS5zdHJpcCgpIGZvciBpdGVtIGlu
IGVycm9yX3R5cGVzLnNwbGl0KCIsIil9CisgICAgICAgIGVycm9yX3R5cGVzID0ge2l0ZW0uc3Ry
aXAoKSBmb3IgaXRlbSBpbiBlcnJvcl90eXBlc19zLnNwbGl0KCIsIil9CiAgICAgICAgIGZpbGVf
bWF0Y2ggPSBvcy5wYXRoLm5vcm1jYXNlKGZpbGVfbWF0Y2gpCiAKICAgICAgICAgaWYgIioiIGlu
IGVycm9yX3R5cGVzOgpAQCAtMjk1LDYgKzM1Myw3IEBAIGRlZiBwYXJzZV93aGl0ZWxpc3QoZik6
CiAKIAogZGVmIGZpbHRlcl93aGl0ZWxpc3RfZXJyb3JzKGRhdGEsIGVycm9ycyk6CisgICAgIyB0
eXBlOiAoV2hpdGVsaXN0LCBTZXF1ZW5jZVtydWxlcy5FcnJvcl0pIC0+IExpc3RbcnVsZXMuRXJy
b3JdCiAgICAgIiIiCiAgICAgRmlsdGVyIG91dCB0aG9zZSBlcnJvcnMgdGhhdCBhcmUgd2hpdGVs
aXN0ZWQgaW4gYGRhdGFgLgogICAgICIiIgpAQCAtMzE3LDEzMCArMzc2LDUxIEBAIGRlZiBmaWx0
ZXJfd2hpdGVsaXN0X2Vycm9ycyhkYXRhLCBlcnJvcnMpOgogCiAgICAgcmV0dXJuIFtpdGVtIGZv
ciBpLCBpdGVtIGluIGVudW1lcmF0ZShlcnJvcnMpIGlmIG5vdCB3aGl0ZWxpc3RlZFtpXV0KIAot
Y2xhc3MgUmVnZXhwKG9iamVjdCk6Ci0gICAgcGF0dGVybiA9IE5vbmUKLSAgICBmaWxlX2V4dGVu
c2lvbnMgPSBOb25lCi0gICAgZXJyb3IgPSBOb25lCi0gICAgX3JlID0gTm9uZQotCi0gICAgZGVm
IF9faW5pdF9fKHNlbGYpOgotICAgICAgICBzZWxmLl9yZSA9IHJlLmNvbXBpbGUoc2VsZi5wYXR0
ZXJuKQotCi0gICAgZGVmIGFwcGxpZXMoc2VsZiwgcGF0aCk6Ci0gICAgICAgIHJldHVybiAoc2Vs
Zi5maWxlX2V4dGVuc2lvbnMgaXMgTm9uZSBvcgotICAgICAgICAgICAgICAgIG9zLnBhdGguc3Bs
aXRleHQocGF0aClbMV0gaW4gc2VsZi5maWxlX2V4dGVuc2lvbnMpCi0KLSAgICBkZWYgc2VhcmNo
KHNlbGYsIGxpbmUpOgotICAgICAgICByZXR1cm4gc2VsZi5fcmUuc2VhcmNoKGxpbmUpCi0KLWNs
YXNzIFRyYWlsaW5nV2hpdGVzcGFjZVJlZ2V4cChSZWdleHApOgotICAgIHBhdHRlcm4gPSBiIlsg
XHRcZlx2XSQiCi0gICAgZXJyb3IgPSAiVFJBSUxJTkcgV0hJVEVTUEFDRSIKLSAgICBkZXNjcmlw
dGlvbiA9ICJXaGl0ZXNwYWNlIGF0IEVPTCIKLQotY2xhc3MgVGFic1JlZ2V4cChSZWdleHApOgot
ICAgIHBhdHRlcm4gPSBiIl5cdCIKLSAgICBlcnJvciA9ICJJTkRFTlQgVEFCUyIKLSAgICBkZXNj
cmlwdGlvbiA9ICJUYWJzIHVzZWQgZm9yIGluZGVudGF0aW9uIgotCi1jbGFzcyBDUlJlZ2V4cChS
ZWdleHApOgotICAgIHBhdHRlcm4gPSBiIlxyJCIKLSAgICBlcnJvciA9ICJDUiBBVCBFT0wiCi0g
ICAgZGVzY3JpcHRpb24gPSAiQ1IgY2hhcmFjdGVyIGluIGxpbmUgc2VwYXJhdG9yIgotCi1jbGFz
cyBTZXRUaW1lb3V0UmVnZXhwKFJlZ2V4cCk6Ci0gICAgcGF0dGVybiA9IGIic2V0VGltZW91dFxz
KlwoIgotICAgIGVycm9yID0gIlNFVCBUSU1FT1VUIgotICAgIGZpbGVfZXh0ZW5zaW9ucyA9IFsi
Lmh0bWwiLCAiLmh0bSIsICIuanMiLCAiLnhodCIsICIueGh0bWwiLCAiLnN2ZyJdCi0gICAgZGVz
Y3JpcHRpb24gPSAic2V0VGltZW91dCB1c2VkOyBzdGVwX3RpbWVvdXQgc2hvdWxkIHR5cGljYWxs
eSBiZSB1c2VkIGluc3RlYWQiCi0KLWNsYXNzIFczQ1Rlc3RPcmdSZWdleHAoUmVnZXhwKToKLSAg
ICBwYXR0ZXJuID0gYiJ3M2NcLXRlc3RcLm9yZyIKLSAgICBlcnJvciA9ICJXM0MtVEVTVC5PUkci
Ci0gICAgZGVzY3JpcHRpb24gPSAiRXh0ZXJuYWwgdzNjLXRlc3Qub3JnIGRvbWFpbiB1c2VkIgot
Ci1jbGFzcyBXZWJQbGF0Zm9ybVRlc3RSZWdleHAoUmVnZXhwKToKLSAgICBwYXR0ZXJuID0gYiJ3
ZWJcLXBsYXRmb3JtXC50ZXN0IgotICAgIGVycm9yID0gIldFQi1QTEFURk9STS5URVNUIgotICAg
IGRlc2NyaXB0aW9uID0gIkludGVybmFsIHdlYi1wbGF0Zm9ybS50ZXN0IGRvbWFpbiB1c2VkIgot
Ci1jbGFzcyBXZWJpZGwyUmVnZXhwKFJlZ2V4cCk6Ci0gICAgcGF0dGVybiA9IGIid2ViaWRsMlwu
anMiCi0gICAgZXJyb3IgPSAiV0VCSURMMi5KUyIKLSAgICBkZXNjcmlwdGlvbiA9ICJMZWdhY3kg
d2ViaWRsMi5qcyBzY3JpcHQgdXNlZCIKLQotY2xhc3MgQ29uc29sZVJlZ2V4cChSZWdleHApOgot
ICAgIHBhdHRlcm4gPSBiImNvbnNvbGVcLlthLXpBLVpdK1xzKlwoIgotICAgIGVycm9yID0gIkNP
TlNPTEUiCi0gICAgZmlsZV9leHRlbnNpb25zID0gWyIuaHRtbCIsICIuaHRtIiwgIi5qcyIsICIu
eGh0IiwgIi54aHRtbCIsICIuc3ZnIl0KLSAgICBkZXNjcmlwdGlvbiA9ICJDb25zb2xlIGxvZ2dp
bmcgQVBJIHVzZWQiCi0KLWNsYXNzIEdlbmVyYXRlVGVzdHNSZWdleHAoUmVnZXhwKToKLSAgICBw
YXR0ZXJuID0gYiJnZW5lcmF0ZV90ZXN0c1xzKlwoIgotICAgIGVycm9yID0gIkdFTkVSQVRFX1RF
U1RTIgotICAgIGZpbGVfZXh0ZW5zaW9ucyA9IFsiLmh0bWwiLCAiLmh0bSIsICIuanMiLCAiLnho
dCIsICIueGh0bWwiLCAiLnN2ZyJdCi0gICAgZGVzY3JpcHRpb24gPSAiZ2VuZXJhdGVfdGVzdHMg
dXNlZCIKLQotY2xhc3MgUHJpbnRSZWdleHAoUmVnZXhwKToKLSAgICBwYXR0ZXJuID0gYiJwcmlu
dCg/OlxzfFxzKlwoKSIKLSAgICBlcnJvciA9ICJQUklOVCBTVEFURU1FTlQiCi0gICAgZmlsZV9l
eHRlbnNpb25zID0gWyIucHkiXQotICAgIGRlc2NyaXB0aW9uID0gIlByaW50IGZ1bmN0aW9uIHVz
ZWQiCi0KLWNsYXNzIExheW91dFRlc3RzUmVnZXhwKFJlZ2V4cCk6Ci0gICAgcGF0dGVybiA9IGIi
ZXZlbnRTZW5kZXJ8dGVzdFJ1bm5lcnx3aW5kb3dcLmludGVybmFscyIKLSAgICBlcnJvciA9ICJM
QVlPVVRURVNUUyBBUElTIgotICAgIGZpbGVfZXh0ZW5zaW9ucyA9IFsiLmh0bWwiLCAiLmh0bSIs
ICIuanMiLCAiLnhodCIsICIueGh0bWwiLCAiLnN2ZyJdCi0gICAgZGVzY3JpcHRpb24gPSAiZXZl
bnRTZW5kZXIvdGVzdFJ1bm5lci93aW5kb3cuaW50ZXJuYWxzIHVzZWQ7IHRoZXNlIGFyZSBMYXlv
dXRUZXN0cy1zcGVjaWZpYyBBUElzIChXZWJLaXQvQmxpbmspIgotCi1jbGFzcyBTcGVjaWFsUG93
ZXJzUmVnZXhwKFJlZ2V4cCk6Ci0gICAgcGF0dGVybiA9IGIiU3BlY2lhbFBvd2VycyIKLSAgICBl
cnJvciA9ICJTUEVDSUFMUE9XRVJTIEFQSSIKLSAgICBmaWxlX2V4dGVuc2lvbnMgPSBbIi5odG1s
IiwgIi5odG0iLCAiLmpzIiwgIi54aHQiLCAiLnhodG1sIiwgIi5zdmciXQotICAgIGRlc2NyaXB0
aW9uID0gIlNwZWNpYWxQb3dlcnMgdXNlZDsgdGhpcyBpcyBnZWNrby1zcGVjaWZpYyBhbmQgbm90
IHN1cHBvcnRlZCBpbiB3cHQiCi0KLQotcmVnZXhwcyA9IFtpdGVtKCkgZm9yIGl0ZW0gaW4KLSAg
ICAgICAgICAgW1RyYWlsaW5nV2hpdGVzcGFjZVJlZ2V4cCwKLSAgICAgICAgICAgIFRhYnNSZWdl
eHAsCi0gICAgICAgICAgICBDUlJlZ2V4cCwKLSAgICAgICAgICAgIFNldFRpbWVvdXRSZWdleHAs
Ci0gICAgICAgICAgICBXM0NUZXN0T3JnUmVnZXhwLAotICAgICAgICAgICAgV2ViUGxhdGZvcm1U
ZXN0UmVnZXhwLAotICAgICAgICAgICAgV2ViaWRsMlJlZ2V4cCwKLSAgICAgICAgICAgIENvbnNv
bGVSZWdleHAsCi0gICAgICAgICAgICBHZW5lcmF0ZVRlc3RzUmVnZXhwLAotICAgICAgICAgICAg
UHJpbnRSZWdleHAsCi0gICAgICAgICAgICBMYXlvdXRUZXN0c1JlZ2V4cCwKLSAgICAgICAgICAg
IFNwZWNpYWxQb3dlcnNSZWdleHBdXQorCityZWdleHBzID0gW2l0ZW0oKSBmb3IgaXRlbSBpbiAg
IyB0eXBlOiBpZ25vcmUKKyAgICAgICAgICAgW3J1bGVzLlRyYWlsaW5nV2hpdGVzcGFjZVJlZ2V4
cCwKKyAgICAgICAgICAgIHJ1bGVzLlRhYnNSZWdleHAsCisgICAgICAgICAgICBydWxlcy5DUlJl
Z2V4cCwKKyAgICAgICAgICAgIHJ1bGVzLlNldFRpbWVvdXRSZWdleHAsCisgICAgICAgICAgICBy
dWxlcy5XM0NUZXN0T3JnUmVnZXhwLAorICAgICAgICAgICAgcnVsZXMuV2ViUGxhdGZvcm1UZXN0
UmVnZXhwLAorICAgICAgICAgICAgcnVsZXMuV2ViaWRsMlJlZ2V4cCwKKyAgICAgICAgICAgIHJ1
bGVzLkNvbnNvbGVSZWdleHAsCisgICAgICAgICAgICBydWxlcy5HZW5lcmF0ZVRlc3RzUmVnZXhw
LAorICAgICAgICAgICAgcnVsZXMuUHJpbnRSZWdleHAsCisgICAgICAgICAgICBydWxlcy5MYXlv
dXRUZXN0c1JlZ2V4cCwKKyAgICAgICAgICAgIHJ1bGVzLk1pc3NpbmdEZXBzUmVnZXhwLAorICAg
ICAgICAgICAgcnVsZXMuU3BlY2lhbFBvd2Vyc1JlZ2V4cF1dCiAKIGRlZiBjaGVja19yZWdleHBf
bGluZShyZXBvX3Jvb3QsIHBhdGgsIGYpOgotICAgIGVycm9ycyA9IFtdCisgICAgIyB0eXBlOiAo
c3RyLCBzdHIsIElPW2J5dGVzXSkgLT4gTGlzdFtydWxlcy5FcnJvcl0KKyAgICBlcnJvcnMgPSBb
XSAgIyB0eXBlOiBMaXN0W3J1bGVzLkVycm9yXQogCiAgICAgYXBwbGljYWJsZV9yZWdleHBzID0g
W3JlZ2V4cCBmb3IgcmVnZXhwIGluIHJlZ2V4cHMgaWYgcmVnZXhwLmFwcGxpZXMocGF0aCldCiAK
ICAgICBmb3IgaSwgbGluZSBpbiBlbnVtZXJhdGUoZik6CiAgICAgICAgIGZvciByZWdleHAgaW4g
YXBwbGljYWJsZV9yZWdleHBzOgogICAgICAgICAgICAgaWYgcmVnZXhwLnNlYXJjaChsaW5lKToK
LSAgICAgICAgICAgICAgICBlcnJvcnMuYXBwZW5kKChyZWdleHAuZXJyb3IsIHJlZ2V4cC5kZXNj
cmlwdGlvbiwgcGF0aCwgaSsxKSkKKyAgICAgICAgICAgICAgICBlcnJvcnMuYXBwZW5kKChyZWdl
eHAubmFtZSwgcmVnZXhwLmRlc2NyaXB0aW9uLCBwYXRoLCBpKzEpKQogCiAgICAgcmV0dXJuIGVy
cm9ycwogCiBkZWYgY2hlY2tfcGFyc2VkKHJlcG9fcm9vdCwgcGF0aCwgZik6CisgICAgIyB0eXBl
OiAoc3RyLCBzdHIsIElPW2J5dGVzXSkgLT4gTGlzdFtydWxlcy5FcnJvcl0KICAgICBzb3VyY2Vf
ZmlsZSA9IFNvdXJjZUZpbGUocmVwb19yb290LCBwYXRoLCAiLyIsIGNvbnRlbnRzPWYucmVhZCgp
KQogCi0gICAgZXJyb3JzID0gW10KKyAgICBlcnJvcnMgPSBbXSAgIyB0eXBlOiBMaXN0W3J1bGVz
LkVycm9yXQogCiAgICAgaWYgcGF0aC5zdGFydHN3aXRoKCJjc3MvIik6CiAgICAgICAgIGlmIChz
b3VyY2VfZmlsZS50eXBlID09ICJzdXBwb3J0IiBhbmQKICAgICAgICAgICAgIG5vdCBzb3VyY2Vf
ZmlsZS5uYW1lX2lzX25vbl90ZXN0IGFuZAogICAgICAgICAgICAgbm90IHNvdXJjZV9maWxlLm5h
bWVfaXNfcmVmZXJlbmNlKToKLSAgICAgICAgICAgIHJldHVybiBbKCJTVVBQT1JULVdST05HLURJ
UiIsICJTdXBwb3J0IGZpbGUgbm90IGluIHN1cHBvcnQgZGlyZWN0b3J5IiwgcGF0aCwgTm9uZSld
CisgICAgICAgICAgICByZXR1cm4gW3J1bGVzLlN1cHBvcnRXcm9uZ0Rpci5lcnJvcihwYXRoKV0K
IAogICAgICAgICBpZiAoc291cmNlX2ZpbGUudHlwZSAhPSAic3VwcG9ydCIgYW5kCiAgICAgICAg
ICAgICBub3Qgc291cmNlX2ZpbGUubmFtZV9pc19yZWZlcmVuY2UgYW5kCiAgICAgICAgICAgICBu
b3Qgc291cmNlX2ZpbGUuc3BlY19saW5rcyk6Ci0gICAgICAgICAgICByZXR1cm4gWygiTUlTU0lO
Ry1MSU5LIiwgIlRlc3RjYXNlIGZpbGUgbXVzdCBoYXZlIGEgbGluayB0byBhIHNwZWMiLCBwYXRo
LCBOb25lKV0KKyAgICAgICAgICAgIHJldHVybiBbcnVsZXMuTWlzc2luZ0xpbmsuZXJyb3IocGF0
aCldCiAKICAgICBpZiBzb3VyY2VfZmlsZS5uYW1lX2lzX25vbl90ZXN0OgogICAgICAgICByZXR1
cm4gW10KQEAgLTQ0OSwzMCArNDI5LDMxIEBAIGRlZiBjaGVja19wYXJzZWQocmVwb19yb290LCBw
YXRoLCBmKToKICAgICAgICAgcmV0dXJuIFtdCiAKICAgICBpZiBzb3VyY2VfZmlsZS5yb290IGlz
IE5vbmU6Ci0gICAgICAgIHJldHVybiBbKCJQQVJTRS1GQUlMRUQiLCAiVW5hYmxlIHRvIHBhcnNl
IGZpbGUiLCBwYXRoLCBOb25lKV0KKyAgICAgICAgcmV0dXJuIFtydWxlcy5QYXJzZUZhaWxlZC5l
cnJvcihwYXRoKV0KIAogICAgIGlmIHNvdXJjZV9maWxlLnR5cGUgPT0gIm1hbnVhbCIgYW5kIG5v
dCBzb3VyY2VfZmlsZS5uYW1lX2lzX21hbnVhbDoKLSAgICAgICAgZXJyb3JzLmFwcGVuZCgoIkNP
TlRFTlQtTUFOVUFMIiwgIk1hbnVhbCB0ZXN0IHdob3NlIGZpbGVuYW1lIGRvZXNuJ3QgZW5kIGlu
ICctbWFudWFsJyIsIHBhdGgsIE5vbmUpKQorICAgICAgICBlcnJvcnMuYXBwZW5kKHJ1bGVzLkNv
bnRlbnRNYW51YWwuZXJyb3IocGF0aCkpCiAKICAgICBpZiBzb3VyY2VfZmlsZS50eXBlID09ICJ2
aXN1YWwiIGFuZCBub3Qgc291cmNlX2ZpbGUubmFtZV9pc192aXN1YWw6Ci0gICAgICAgIGVycm9y
cy5hcHBlbmQoKCJDT05URU5ULVZJU1VBTCIsICJWaXN1YWwgdGVzdCB3aG9zZSBmaWxlbmFtZSBk
b2Vzbid0IGVuZCBpbiAnLXZpc3VhbCciLCBwYXRoLCBOb25lKSkKKyAgICAgICAgZXJyb3JzLmFw
cGVuZChydWxlcy5Db250ZW50VmlzdWFsLmVycm9yKHBhdGgpKQogCisgICAgYWJvdXRfYmxhbmtf
cGFydHMgPSB1cmxzcGxpdCgiYWJvdXQ6YmxhbmsiKQogICAgIGZvciByZWZ0ZXN0X25vZGUgaW4g
c291cmNlX2ZpbGUucmVmdGVzdF9ub2RlczoKICAgICAgICAgaHJlZiA9IHJlZnRlc3Rfbm9kZS5h
dHRyaWIuZ2V0KCJocmVmIiwgIiIpLnN0cmlwKHNwYWNlX2NoYXJzKQogICAgICAgICBwYXJ0cyA9
IHVybHNwbGl0KGhyZWYpCi0gICAgICAgIGlmIChwYXJ0cy5zY2hlbWUgb3IgcGFydHMubmV0bG9j
KSBhbmQgcGFydHMgIT0gdXJsc3BsaXQoImFib3V0OmJsYW5rIik6Ci0gICAgICAgICAgICBlcnJv
cnMuYXBwZW5kKCgiQUJTT0xVVEUtVVJMLVJFRiIsCi0gICAgICAgICAgICAgICAgICAgICAiUmVm
ZXJlbmNlIHRlc3Qgd2l0aCBhIHJlZmVyZW5jZSBmaWxlIHNwZWNpZmllZCB2aWEgYW4gYWJzb2x1
dGUgVVJMOiAnJXMnIiAlIGhyZWYsIHBhdGgsIE5vbmUpKQorCisgICAgICAgIGlmIHBhcnRzID09
IGFib3V0X2JsYW5rX3BhcnRzOgorICAgICAgICAgICAgY29udGludWUKKworICAgICAgICBpZiAo
cGFydHMuc2NoZW1lIG9yIHBhcnRzLm5ldGxvYyk6CisgICAgICAgICAgICBlcnJvcnMuYXBwZW5k
KHJ1bGVzLkFic29sdXRlVXJsUmVmLmVycm9yKHBhdGgsIChocmVmLCkpKQogICAgICAgICAgICAg
Y29udGludWUKIAogICAgICAgICByZWZfdXJsID0gdXJsam9pbihzb3VyY2VfZmlsZS51cmwsIGhy
ZWYpCiAgICAgICAgIHJlZl9wYXJ0cyA9IHVybHNwbGl0KHJlZl91cmwpCiAKICAgICAgICAgaWYg
c291cmNlX2ZpbGUudXJsID09IHJlZl91cmw6Ci0gICAgICAgICAgICBlcnJvcnMuYXBwZW5kKCgi
U0FNRS1GSUxFLVJFRiIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAiUmVmZXJlbmNlIHRl
c3Qgd2hpY2ggcG9pbnRzIGF0IGl0c2VsZiBhcyBhIHJlZmVyZW5jZSIsCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICBwYXRoLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgTm9uZSkpCisg
ICAgICAgICAgICBlcnJvcnMuYXBwZW5kKHJ1bGVzLlNhbWVGaWxlUmVmLmVycm9yKHBhdGgpKQog
ICAgICAgICAgICAgY29udGludWUKIAogICAgICAgICBhc3NlcnQgcmVmX3BhcnRzLnBhdGggIT0g
IiIKQEAgLTQ4MSw0NSArNDYyLDM5IEBAIGRlZiBjaGVja19wYXJzZWQocmVwb19yb290LCBwYXRo
LCBmKToKICAgICAgICAgcmVmZXJlbmNlX3JlbCA9IHJlZnRlc3Rfbm9kZS5hdHRyaWIuZ2V0KCJy
ZWwiLCAiIikKIAogICAgICAgICBpZiBub3Qgb3MucGF0aC5pc2ZpbGUocmVmZXJlbmNlX2ZpbGUp
OgotICAgICAgICAgICAgZXJyb3JzLmFwcGVuZCgoIk5PTi1FWElTVEVOVC1SRUYiLAotICAgICAg
ICAgICAgICAgICAgICAgIlJlZmVyZW5jZSB0ZXN0IHdpdGggYSBub24tZXhpc3RlbnQgJyVzJyBy
ZWxhdGlvbnNoaXAgcmVmZXJlbmNlOiAnJXMnIiAlIChyZWZlcmVuY2VfcmVsLCBocmVmKSwgcGF0
aCwgTm9uZSkpCisgICAgICAgICAgICBlcnJvcnMuYXBwZW5kKHJ1bGVzLk5vbmV4aXN0ZW50UmVm
LmVycm9yKHBhdGgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIChyZWZlcmVuY2VfcmVsLCBocmVmKSkpCiAKICAgICBpZiBsZW4oc291cmNlX2Zp
bGUudGltZW91dF9ub2RlcykgPiAxOgotICAgICAgICBlcnJvcnMuYXBwZW5kKCgiTVVMVElQTEUt
VElNRU9VVCIsICJNb3JlIHRoYW4gb25lIG1ldGEgbmFtZT0ndGltZW91dCciLCBwYXRoLCBOb25l
KSkKKyAgICAgICAgZXJyb3JzLmFwcGVuZChydWxlcy5NdWx0aXBsZVRpbWVvdXQuZXJyb3IocGF0
aCkpCiAKICAgICBmb3IgdGltZW91dF9ub2RlIGluIHNvdXJjZV9maWxlLnRpbWVvdXRfbm9kZXM6
CiAgICAgICAgIHRpbWVvdXRfdmFsdWUgPSB0aW1lb3V0X25vZGUuYXR0cmliLmdldCgiY29udGVu
dCIsICIiKS5sb3dlcigpCiAgICAgICAgIGlmIHRpbWVvdXRfdmFsdWUgIT0gImxvbmciOgotICAg
ICAgICAgICAgZXJyb3JzLmFwcGVuZCgoIklOVkFMSUQtVElNRU9VVCIsICJJbnZhbGlkIHRpbWVv
dXQgdmFsdWUgJXMiICUgdGltZW91dF92YWx1ZSwgcGF0aCwgTm9uZSkpCisgICAgICAgICAgICBl
cnJvcnMuYXBwZW5kKHJ1bGVzLkludmFsaWRUaW1lb3V0LmVycm9yKHBhdGgsICh0aW1lb3V0X3Zh
bHVlLCkpKQogCiAgICAgaWYgc291cmNlX2ZpbGUudGVzdGhhcm5lc3Nfbm9kZXM6CiAgICAgICAg
IGlmIGxlbihzb3VyY2VfZmlsZS50ZXN0aGFybmVzc19ub2RlcykgPiAxOgotICAgICAgICAgICAg
ZXJyb3JzLmFwcGVuZCgoIk1VTFRJUExFLVRFU1RIQVJORVNTIiwKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICJNb3JlIHRoYW4gb25lIDxzY3JpcHQgc3JjPScvcmVzb3VyY2VzL3Rlc3RoYXJu
ZXNzLmpzJz4iLCBwYXRoLCBOb25lKSkKKyAgICAgICAgICAgIGVycm9ycy5hcHBlbmQocnVsZXMu
TXVsdGlwbGVUZXN0aGFybmVzcy5lcnJvcihwYXRoKSkKIAogICAgICAgICB0ZXN0aGFybmVzc3Jl
cG9ydF9ub2RlcyA9IHNvdXJjZV9maWxlLnJvb3QuZmluZGFsbCgiLi8ve2h0dHA6Ly93d3cudzMu
b3JnLzE5OTkveGh0bWx9c2NyaXB0W0BzcmM9Jy9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQu
anMnXSIpCiAgICAgICAgIGlmIG5vdCB0ZXN0aGFybmVzc3JlcG9ydF9ub2RlczoKLSAgICAgICAg
ICAgIGVycm9ycy5hcHBlbmQoKCJNSVNTSU5HLVRFU1RIQVJORVNTUkVQT1JUIiwKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICJNaXNzaW5nIDxzY3JpcHQgc3JjPScvcmVzb3VyY2VzL3Rlc3Ro
YXJuZXNzcmVwb3J0LmpzJz4iLCBwYXRoLCBOb25lKSkKKyAgICAgICAgICAgIGVycm9ycy5hcHBl
bmQocnVsZXMuTWlzc2luZ1Rlc3RoYXJuZXNzUmVwb3J0LmVycm9yKHBhdGgpKQogICAgICAgICBl
bHNlOgogICAgICAgICAgICAgaWYgbGVuKHRlc3RoYXJuZXNzcmVwb3J0X25vZGVzKSA+IDE6Ci0g
ICAgICAgICAgICAgICAgZXJyb3JzLmFwcGVuZCgoIk1VTFRJUExFLVRFU1RIQVJORVNTUkVQT1JU
IiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiTW9yZSB0aGFuIG9uZSA8c2NyaXB0
IHNyYz0nL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyc+IiwgcGF0aCwgTm9uZSkpCisg
ICAgICAgICAgICAgICAgZXJyb3JzLmFwcGVuZChydWxlcy5NdWx0aXBsZVRlc3RoYXJuZXNzUmVw
b3J0LmVycm9yKHBhdGgpKQogCiAgICAgICAgIHRlc3RoYXJuZXNzY3NzX25vZGVzID0gc291cmNl
X2ZpbGUucm9vdC5maW5kYWxsKCIuLy97aHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbH1saW5r
W0BocmVmPScvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmNzcyddIikKICAgICAgICAgaWYgdGVzdGhh
cm5lc3Njc3Nfbm9kZXM6Ci0gICAgICAgICAgICBlcnJvcnMuYXBwZW5kKCgiUFJFU0VOVC1URVNU
SEFSTkVTU0NTUyIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAiRXhwbGljaXQgbGluayB0
byB0ZXN0aGFybmVzcy5jc3MgcHJlc2VudCIsIHBhdGgsIE5vbmUpKQorICAgICAgICAgICAgZXJy
b3JzLmFwcGVuZChydWxlcy5QcmVzZW50VGVzdGhhcm5lc3NDU1MuZXJyb3IocGF0aCkpCiAKICAg
ICAgICAgZm9yIGVsZW1lbnQgaW4gc291cmNlX2ZpbGUudmFyaWFudF9ub2RlczoKICAgICAgICAg
ICAgIGlmICJjb250ZW50IiBub3QgaW4gZWxlbWVudC5hdHRyaWI6Ci0gICAgICAgICAgICAgICAg
ZXJyb3JzLmFwcGVuZCgoIlZBUklBTlQtTUlTU0lORyIsCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIjxtZXRhIG5hbWU9dmFyaWFudD4gbWlzc2luZyAnY29udGVudCcgYXR0cmlidXRl
IiwgcGF0aCwgTm9uZSkpCisgICAgICAgICAgICAgICAgZXJyb3JzLmFwcGVuZChydWxlcy5WYXJp
YW50TWlzc2luZy5lcnJvcihwYXRoKSkKICAgICAgICAgICAgIGVsc2U6CiAgICAgICAgICAgICAg
ICAgdmFyaWFudCA9IGVsZW1lbnQuYXR0cmliWyJjb250ZW50Il0KICAgICAgICAgICAgICAgICBp
ZiB2YXJpYW50ICE9ICIiIGFuZCB2YXJpYW50WzBdIG5vdCBpbiAoIj8iLCAiIyIpOgotICAgICAg
ICAgICAgICAgICAgICBlcnJvcnMuYXBwZW5kKCgiTUFMRk9STUVELVZBUklBTlQiLAotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICIlcyA8bWV0YSBuYW1lPXZhcmlhbnQ+ICdjb250ZW50
JyBhdHRyaWJ1dGUgbXVzdCBiZSB0aGUgZW1wdHkgc3RyaW5nIG9yIHN0YXJ0IHdpdGggJz8nIG9y
ICcjJyIgJSBwYXRoLCBOb25lKSkKKyAgICAgICAgICAgICAgICAgICAgZXJyb3JzLmFwcGVuZChy
dWxlcy5NYWxmb3JtZWRWYXJpYW50LmVycm9yKHBhdGgsIChwYXRoLCkpKQogCiAgICAgICAgIHNl
ZW5fZWxlbWVudHMgPSB7InRpbWVvdXQiOiBGYWxzZSwKICAgICAgICAgICAgICAgICAgICAgICAg
ICAidGVzdGhhcm5lc3MiOiBGYWxzZSwKQEAgLTUzMyw4ICs1MDgsNyBAQCBkZWYgY2hlY2tfcGFy
c2VkKHJlcG9fcm9vdCwgcGF0aCwgZik6CiAgICAgICAgICAgICBpZiBzb3VyY2VfZmlsZS50aW1l
b3V0X25vZGVzIGFuZCBlbGVtID09IHNvdXJjZV9maWxlLnRpbWVvdXRfbm9kZXNbMF06CiAgICAg
ICAgICAgICAgICAgc2Vlbl9lbGVtZW50c1sidGltZW91dCJdID0gVHJ1ZQogICAgICAgICAgICAg
ICAgIGlmIHNlZW5fZWxlbWVudHNbInRlc3RoYXJuZXNzIl06Ci0gICAgICAgICAgICAgICAgICAg
IGVycm9ycy5hcHBlbmQoKCJMQVRFLVRJTUVPVVQiLAotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAiPG1ldGEgbmFtZT10aW1lb3V0PiBzZWVuIGFmdGVyIHRlc3RoYXJuZXNzLmpz
IHNjcmlwdCIsIHBhdGgsIE5vbmUpKQorICAgICAgICAgICAgICAgICAgICBlcnJvcnMuYXBwZW5k
KHJ1bGVzLkxhdGVUaW1lb3V0LmVycm9yKHBhdGgpKQogCiAgICAgICAgICAgICBlbGlmIGVsZW0g
PT0gc291cmNlX2ZpbGUudGVzdGhhcm5lc3Nfbm9kZXNbMF06CiAgICAgICAgICAgICAgICAgc2Vl
bl9lbGVtZW50c1sidGVzdGhhcm5lc3MiXSA9IFRydWUKQEAgLTU0Miw1MiArNTE2LDY0IEBAIGRl
ZiBjaGVja19wYXJzZWQocmVwb19yb290LCBwYXRoLCBmKToKICAgICAgICAgICAgIGVsaWYgdGVz
dGhhcm5lc3NyZXBvcnRfbm9kZXMgYW5kIGVsZW0gPT0gdGVzdGhhcm5lc3NyZXBvcnRfbm9kZXNb
MF06CiAgICAgICAgICAgICAgICAgc2Vlbl9lbGVtZW50c1sidGVzdGhhcm5lc3NyZXBvcnQiXSA9
IFRydWUKICAgICAgICAgICAgICAgICBpZiBub3Qgc2Vlbl9lbGVtZW50c1sidGVzdGhhcm5lc3Mi
XToKLSAgICAgICAgICAgICAgICAgICAgZXJyb3JzLmFwcGVuZCgoIkVBUkxZLVRFU1RIQVJORVNT
UkVQT1JUIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInRlc3RoYXJuZXNz
cmVwb3J0LmpzIHNjcmlwdCBzZWVuIGJlZm9yZSB0ZXN0aGFybmVzcy5qcyBzY3JpcHQiLCBwYXRo
LCBOb25lKSkKKyAgICAgICAgICAgICAgICAgICAgZXJyb3JzLmFwcGVuZChydWxlcy5FYXJseVRl
c3RoYXJuZXNzUmVwb3J0LmVycm9yKHBhdGgpKQogCiAgICAgICAgICAgICBpZiBhbGwoc2Vlbl9l
bGVtZW50c1tuYW1lXSBmb3IgbmFtZSBpbiByZXF1aXJlZF9lbGVtZW50cyk6CiAgICAgICAgICAg
ICAgICAgYnJlYWsKIAogICAgIGlmIHNvdXJjZV9maWxlLnRlc3Rkcml2ZXJfbm9kZXM6CiAgICAg
ICAgIGlmIGxlbihzb3VyY2VfZmlsZS50ZXN0ZHJpdmVyX25vZGVzKSA+IDE6Ci0gICAgICAgICAg
ICBlcnJvcnMuYXBwZW5kKCgiTVVMVElQTEUtVEVTVERSSVZFUiIsCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAiTW9yZSB0aGFuIG9uZSA8c2NyaXB0IHNyYz0nL3Jlc291cmNlcy90ZXN0ZHJp
dmVyLmpzJz4iLCBwYXRoLCBOb25lKSkKKyAgICAgICAgICAgIGVycm9ycy5hcHBlbmQocnVsZXMu
TXVsdGlwbGVUZXN0ZHJpdmVyLmVycm9yKHBhdGgpKQogCiAgICAgICAgIHRlc3Rkcml2ZXJfdmVu
ZG9yX25vZGVzID0gc291cmNlX2ZpbGUucm9vdC5maW5kYWxsKCIuLy97aHR0cDovL3d3dy53My5v
cmcvMTk5OS94aHRtbH1zY3JpcHRbQHNyYz0nL3Jlc291cmNlcy90ZXN0ZHJpdmVyLXZlbmRvci5q
cyddIikKICAgICAgICAgaWYgbm90IHRlc3Rkcml2ZXJfdmVuZG9yX25vZGVzOgotICAgICAgICAg
ICAgZXJyb3JzLmFwcGVuZCgoIk1JU1NJTkctVEVTVERSSVZFUi1WRU5ET1IiLAotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIk1pc3NpbmcgPHNjcmlwdCBzcmM9Jy9yZXNvdXJjZXMvdGVzdGRy
aXZlci12ZW5kb3IuanMnPiIsIHBhdGgsIE5vbmUpKQorICAgICAgICAgICAgZXJyb3JzLmFwcGVu
ZChydWxlcy5NaXNzaW5nVGVzdGRyaXZlclZlbmRvci5lcnJvcihwYXRoKSkKICAgICAgICAgZWxz
ZToKICAgICAgICAgICAgIGlmIGxlbih0ZXN0ZHJpdmVyX3ZlbmRvcl9ub2RlcykgPiAxOgotICAg
ICAgICAgICAgICAgIGVycm9ycy5hcHBlbmQoKCJNVUxUSVBMRS1URVNURFJJVkVSLVZFTkRPUiIs
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIk1vcmUgdGhhbiBvbmUgPHNjcmlwdCBz
cmM9Jy9yZXNvdXJjZXMvdGVzdGRyaXZlci12ZW5kb3IuanMnPiIsIHBhdGgsIE5vbmUpKQorICAg
ICAgICAgICAgICAgIGVycm9ycy5hcHBlbmQocnVsZXMuTXVsdGlwbGVUZXN0ZHJpdmVyVmVuZG9y
LmVycm9yKHBhdGgpKQogCiAgICAgZm9yIGVsZW1lbnQgaW4gc291cmNlX2ZpbGUucm9vdC5maW5k
YWxsKCIuLy97aHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbH1zY3JpcHRbQHNyY10iKToKICAg
ICAgICAgc3JjID0gZWxlbWVudC5hdHRyaWJbInNyYyJdCi0gICAgICAgIGZvciBuYW1lIGluIFsi
dGVzdGhhcm5lc3MiLCAidGVzdGhhcm5lc3NyZXBvcnQiLCAidGVzdGRyaXZlciIsICJ0ZXN0ZHJp
dmVyLXZlbmRvciJdOgotICAgICAgICAgICAgaWYgIiVzLmpzIiAlIG5hbWUgPT0gc3JjIG9yICgi
LyVzLmpzIiAlIG5hbWUgaW4gc3JjIGFuZCBzcmMgIT0gIi9yZXNvdXJjZXMvJXMuanMiICUgbmFt
ZSk6Ci0gICAgICAgICAgICAgICAgZXJyb3JzLmFwcGVuZCgoIiVzLVBBVEgiICUgbmFtZS51cHBl
cigpLCAiJXMuanMgc2NyaXB0IHNlZW4gd2l0aCBpbmNvcnJlY3QgcGF0aCIgJSBuYW1lLCBwYXRo
LCBOb25lKSkKKworICAgICAgICBkZWYgaW5jb3JyZWN0X3BhdGgoc2NyaXB0LCBzcmMpOgorICAg
ICAgICAgICAgIyB0eXBlOiAoVGV4dCwgVGV4dCkgLT4gYm9vbAorICAgICAgICAgICAgcmV0dXJu
IChzY3JpcHQgPT0gc3JjIG9yCisgICAgICAgICAgICAgICAgKCIvJXMiICUgc2NyaXB0IGluIHNy
YyBhbmQgc3JjICE9ICIvcmVzb3VyY2VzLyVzIiAlIHNjcmlwdCkpCisKKyAgICAgICAgaWYgaW5j
b3JyZWN0X3BhdGgoInRlc3RoYXJuZXNzLmpzIiwgc3JjKToKKyAgICAgICAgICAgIGVycm9ycy5h
cHBlbmQocnVsZXMuVGVzdGhhcm5lc3NQYXRoLmVycm9yKHBhdGgpKQorCisgICAgICAgIGlmIGlu
Y29ycmVjdF9wYXRoKCJ0ZXN0aGFybmVzc3JlcG9ydC5qcyIsIHNyYyk6CisgICAgICAgICAgICBl
cnJvcnMuYXBwZW5kKHJ1bGVzLlRlc3RoYXJuZXNzUmVwb3J0UGF0aC5lcnJvcihwYXRoKSkKKwor
ICAgICAgICBpZiBpbmNvcnJlY3RfcGF0aCgidGVzdGRyaXZlci5qcyIsIHNyYyk6CisgICAgICAg
ICAgICBlcnJvcnMuYXBwZW5kKHJ1bGVzLlRlc3Rkcml2ZXJQYXRoLmVycm9yKHBhdGgpKQorCisg
ICAgICAgIGlmIGluY29ycmVjdF9wYXRoKCJ0ZXN0ZHJpdmVyLXZlbmRvci5qcyIsIHNyYyk6Cisg
ICAgICAgICAgICBlcnJvcnMuYXBwZW5kKHJ1bGVzLlRlc3Rkcml2ZXJWZW5kb3JQYXRoLmVycm9y
KHBhdGgpKQogCiAgICAgcmV0dXJuIGVycm9ycwogCi1jbGFzcyBBU1RDaGVjayhvYmplY3QpOgot
ICAgIF9fbWV0YWNsYXNzX18gPSBhYmMuQUJDTWV0YQotICAgIGVycm9yID0gTm9uZQotICAgIGRl
c2NyaXB0aW9uID0gTm9uZQorY2xhc3MgQVNUQ2hlY2sod2l0aF9tZXRhY2xhc3MoYWJjLkFCQ01l
dGEpKToKKyAgICBAYWJjLmFic3RyYWN0cHJvcGVydHkKKyAgICBkZWYgcnVsZShzZWxmKToKKyAg
ICAgICAgIyB0eXBlOiAoKSAtPiBUeXBlW3J1bGVzLlJ1bGVdCisgICAgICAgIHBhc3MKIAogICAg
IEBhYmMuYWJzdHJhY3RtZXRob2QKICAgICBkZWYgY2hlY2soc2VsZiwgcm9vdCk6CisgICAgICAg
ICMgdHlwZTogKGFzdC5BU1QpIC0+IExpc3RbaW50XQogICAgICAgICBwYXNzCiAKIGNsYXNzIE9w
ZW5Nb2RlQ2hlY2soQVNUQ2hlY2spOgotICAgIGVycm9yID0gIk9QRU4tTk8tTU9ERSIKLSAgICBk
ZXNjcmlwdGlvbiA9ICJGaWxlIG9wZW5lZCB3aXRob3V0IHByb3ZpZGluZyBhbiBleHBsaWNpdCBt
b2RlIChub3RlOiBiaW5hcnkgZmlsZXMgbXVzdCBiZSByZWFkIHdpdGggJ2InIGluIHRoZSBtb2Rl
IGZsYWdzKSIKKyAgICBydWxlID0gcnVsZXMuT3Blbk5vTW9kZQogCiAgICAgZGVmIGNoZWNrKHNl
bGYsIHJvb3QpOgorICAgICAgICAjIHR5cGU6IChhc3QuQVNUKSAtPiBMaXN0W2ludF0KICAgICAg
ICAgZXJyb3JzID0gW10KICAgICAgICAgZm9yIG5vZGUgaW4gYXN0LndhbGsocm9vdCk6CiAgICAg
ICAgICAgICBpZiBpc2luc3RhbmNlKG5vZGUsIGFzdC5DYWxsKToKLSAgICAgICAgICAgICAgICBp
ZiBoYXNhdHRyKG5vZGUuZnVuYywgImlkIikgYW5kIG5vZGUuZnVuYy5pZCBpbiAoIm9wZW4iLCAi
ZmlsZSIpOgorICAgICAgICAgICAgICAgIGlmIGhhc2F0dHIobm9kZS5mdW5jLCAiaWQiKSBhbmQg
bm9kZS5mdW5jLmlkIGluICgib3BlbiIsICJmaWxlIik6ICAjIHR5cGU6IGlnbm9yZQogICAgICAg
ICAgICAgICAgICAgICBpZiAobGVuKG5vZGUuYXJncykgPCAyIGFuZAogICAgICAgICAgICAgICAg
ICAgICAgICAgYWxsKGl0ZW0uYXJnICE9ICJtb2RlIiBmb3IgaXRlbSBpbiBub2RlLmtleXdvcmRz
KSk6CiAgICAgICAgICAgICAgICAgICAgICAgICBlcnJvcnMuYXBwZW5kKG5vZGUubGluZW5vKQpA
QCAtNTk2LDI2ICs1ODIsMjggQEAgY2xhc3MgT3Blbk1vZGVDaGVjayhBU1RDaGVjayk6CiBhc3Rf
Y2hlY2tlcnMgPSBbaXRlbSgpIGZvciBpdGVtIGluIFtPcGVuTW9kZUNoZWNrXV0KIAogZGVmIGNo
ZWNrX3B5dGhvbl9hc3QocmVwb19yb290LCBwYXRoLCBmKToKKyAgICAjIHR5cGU6IChzdHIsIHN0
ciwgSU9bYnl0ZXNdKSAtPiBMaXN0W3J1bGVzLkVycm9yXQogICAgIGlmIG5vdCBwYXRoLmVuZHN3
aXRoKCIucHkiKToKICAgICAgICAgcmV0dXJuIFtdCiAKICAgICB0cnk6CiAgICAgICAgIHJvb3Qg
PSBhc3QucGFyc2UoZi5yZWFkKCkpCiAgICAgZXhjZXB0IFN5bnRheEVycm9yIGFzIGU6Ci0gICAg
ICAgIHJldHVybiBbKCJQQVJTRS1GQUlMRUQiLCAiVW5hYmxlIHRvIHBhcnNlIGZpbGUiLCBwYXRo
LCBlLmxpbmVubyldCisgICAgICAgIHJldHVybiBbcnVsZXMuUGFyc2VGYWlsZWQuZXJyb3IocGF0
aCwgbGluZV9ubz1lLmxpbmVubyldCiAKICAgICBlcnJvcnMgPSBbXQogICAgIGZvciBjaGVja2Vy
IGluIGFzdF9jaGVja2VyczoKICAgICAgICAgZm9yIGxpbmVubyBpbiBjaGVja2VyLmNoZWNrKHJv
b3QpOgotICAgICAgICAgICAgZXJyb3JzLmFwcGVuZCgoY2hlY2tlci5lcnJvciwgY2hlY2tlci5k
ZXNjcmlwdGlvbiwgcGF0aCwgbGluZW5vKSkKKyAgICAgICAgICAgIGVycm9ycy5hcHBlbmQoY2hl
Y2tlci5ydWxlLmVycm9yKHBhdGgsIGxpbmVfbm89bGluZW5vKSkKICAgICByZXR1cm4gZXJyb3Jz
CiAKIAotYnJva2VuX2pzX21ldGFkYXRhID0gcmUuY29tcGlsZShiIi8vXHMqTUVUQToiKQotYnJv
a2VuX3B5dGhvbl9tZXRhZGF0YSA9IHJlLmNvbXBpbGUoYiIjXHMqTUVUQToiKQorYnJva2VuX2pz
X21ldGFkYXRhID0gcmUuY29tcGlsZShiciIvL1xzKk1FVEE6IikKK2Jyb2tlbl9weXRob25fbWV0
YWRhdGEgPSByZS5jb21waWxlKGJyIiNccypNRVRBOiIpCiAKIAogZGVmIGNoZWNrX2dsb2JhbF9t
ZXRhZGF0YSh2YWx1ZSk6CisgICAgIyB0eXBlOiAoc3RyKSAtPiBJdGVyYWJsZVtUdXBsZVtUeXBl
W3J1bGVzLlJ1bGVdLCBUdXBsZVtBbnksIC4uLl1dXQogICAgIGdsb2JhbF92YWx1ZXMgPSB7aXRl
bS5zdHJpcCgpIGZvciBpdGVtIGluIHZhbHVlLnNwbGl0KGIiLCIpIGlmIGl0ZW0uc3RyaXAoKX0K
IAogICAgIGluY2x1ZGVkX3ZhcmlhbnRzID0gc2V0LnVuaW9uKGdldF9kZWZhdWx0X2FueV92YXJp
YW50cygpLApAQCAtNjI1LDIyICs2MTMsMjUgQEAgZGVmIGNoZWNrX2dsb2JhbF9tZXRhZGF0YSh2
YWx1ZSk6CiAgICAgICAgIGlmIGdsb2JhbF92YWx1ZS5zdGFydHN3aXRoKGIiISIpOgogICAgICAg
ICAgICAgZXhjbHVkZWRfdmFsdWUgPSBnbG9iYWxfdmFsdWVbMTpdCiAgICAgICAgICAgICBpZiBu
b3QgZ2V0X2FueV92YXJpYW50cyhleGNsdWRlZF92YWx1ZSk6Ci0gICAgICAgICAgICAgICAgeWll
bGQgKCJVTktOT1dOLUdMT0JBTC1NRVRBREFUQSIsICJVbmV4cGVjdGVkIHZhbHVlIGZvciBnbG9i
YWwgbWV0YWRhdGEiKQorICAgICAgICAgICAgICAgIHlpZWxkIChydWxlcy5Vbmtub3duR2xvYmFs
TWV0YWRhdGEsICgpKQogCiAgICAgICAgICAgICBlbGlmIGV4Y2x1ZGVkX3ZhbHVlIGluIGdsb2Jh
bF92YWx1ZXM6Ci0gICAgICAgICAgICAgICAgeWllbGQgKCJCUk9LRU4tR0xPQkFMLU1FVEFEQVRB
IiwgIkNhbm5vdCBzcGVjaWZ5IGJvdGggJXMgYW5kICVzIiAlIChnbG9iYWxfdmFsdWUsIGV4Y2x1
ZGVkX3ZhbHVlKSkKKyAgICAgICAgICAgICAgICB5aWVsZCAocnVsZXMuQnJva2VuR2xvYmFsTWV0
YWRhdGEsCisgICAgICAgICAgICAgICAgICAgICAgICgoIkNhbm5vdCBzcGVjaWZ5IGJvdGggJXMg
YW5kICVzIiAlIChnbG9iYWxfdmFsdWUsIGV4Y2x1ZGVkX3ZhbHVlKSksKSkKIAogICAgICAgICAg
ICAgZWxzZToKICAgICAgICAgICAgICAgICBleGNsdWRlZF92YXJpYW50cyA9IGdldF9hbnlfdmFy
aWFudHMoZXhjbHVkZWRfdmFsdWUpCiAgICAgICAgICAgICAgICAgaWYgbm90IChleGNsdWRlZF92
YXJpYW50cyAmIGluY2x1ZGVkX3ZhcmlhbnRzKToKLSAgICAgICAgICAgICAgICAgICAgeWllbGQg
KCJCUk9LRU4tR0xPQkFMLU1FVEFEQVRBIiwgIkNhbm5vdCBleGNsdWRlICVzIGlmIGl0IGlzIG5v
dCBpbmNsdWRlZCIgJSAoZXhjbHVkZWRfdmFsdWUsKSkKKyAgICAgICAgICAgICAgICAgICAgeWll
bGQgKHJ1bGVzLkJyb2tlbkdsb2JhbE1ldGFkYXRhLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgKCgiQ2Fubm90IGV4Y2x1ZGUgJXMgaWYgaXQgaXMgbm90IGluY2x1ZGVkIiAlIChleGNsdWRl
ZF92YWx1ZSwpKSwpKQogCiAgICAgICAgIGVsc2U6CiAgICAgICAgICAgICBpZiBub3QgZ2V0X2Fu
eV92YXJpYW50cyhnbG9iYWxfdmFsdWUpOgotICAgICAgICAgICAgICAgIHlpZWxkICgiVU5LTk9X
Ti1HTE9CQUwtTUVUQURBVEEiLCAiVW5leHBlY3RlZCB2YWx1ZSBmb3IgZ2xvYmFsIG1ldGFkYXRh
IikKKyAgICAgICAgICAgICAgICB5aWVsZCAocnVsZXMuVW5rbm93bkdsb2JhbE1ldGFkYXRhLCAo
KSkKIAogCiBkZWYgY2hlY2tfc2NyaXB0X21ldGFkYXRhKHJlcG9fcm9vdCwgcGF0aCwgZik6Cisg
ICAgIyB0eXBlOiAoc3RyLCBzdHIsIElPW2J5dGVzXSkgLT4gTGlzdFtydWxlcy5FcnJvcl0KICAg
ICBpZiBwYXRoLmVuZHN3aXRoKCgiLndvcmtlci5qcyIsICIuYW55LmpzIikpOgogICAgICAgICBt
ZXRhX3JlID0ganNfbWV0YV9yZQogICAgICAgICBicm9rZW5fbWV0YWRhdGEgPSBicm9rZW5fanNf
bWV0YWRhdGEKQEAgLTY1OSwxMCArNjUwLDEyIEBAIGRlZiBjaGVja19zY3JpcHRfbWV0YWRhdGEo
cmVwb19yb290LCBwYXRoLCBmKToKICAgICAgICAgaWYgbToKICAgICAgICAgICAgIGtleSwgdmFs
dWUgPSBtLmdyb3VwcygpCiAgICAgICAgICAgICBpZiBrZXkgPT0gYiJnbG9iYWwiOgotICAgICAg
ICAgICAgICAgIGVycm9ycy5leHRlbmQoKGtpbmQsIG1lc3NhZ2UsIHBhdGgsIGlkeCArIDEpIGZv
ciAoa2luZCwgbWVzc2FnZSkgaW4gY2hlY2tfZ2xvYmFsX21ldGFkYXRhKHZhbHVlKSkKKyAgICAg
ICAgICAgICAgICBmb3IgcnVsZV9jbGFzcywgY29udGV4dCBpbiBjaGVja19nbG9iYWxfbWV0YWRh
dGEodmFsdWUpOgorICAgICAgICAgICAgICAgICAgICBlcnJvcnMuYXBwZW5kKHJ1bGVfY2xhc3Mu
ZXJyb3IocGF0aCwgY29udGV4dCwgaWR4ICsgMSkpCiAgICAgICAgICAgICBlbGlmIGtleSA9PSBi
InRpbWVvdXQiOgogICAgICAgICAgICAgICAgIGlmIHZhbHVlICE9IGIibG9uZyI6Ci0gICAgICAg
ICAgICAgICAgICAgIGVycm9ycy5hcHBlbmQoKCJVTktOT1dOLVRJTUVPVVQtTUVUQURBVEEiLCAi
VW5leHBlY3RlZCB2YWx1ZSBmb3IgdGltZW91dCBtZXRhZGF0YSIsIHBhdGgsIGlkeCArIDEpKQor
ICAgICAgICAgICAgICAgICAgICBlcnJvcnMuYXBwZW5kKHJ1bGVzLlVua25vd25UaW1lb3V0TWV0
YWRhdGEuZXJyb3IocGF0aCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpbmVfbm89aWR4ICsgMSkpCiAgICAgICAg
ICAgICBlbGlmIGtleSA9PSBiInRpdGxlIjoKICAgICAgICAgICAgICAgICBwYXNzCiAgICAgICAg
ICAgICBlbGlmIGtleSA9PSBiInNjcmlwdCI6CkBAIC02NzAsMjIgKzY2Myw0MyBAQCBkZWYgY2hl
Y2tfc2NyaXB0X21ldGFkYXRhKHJlcG9fcm9vdCwgcGF0aCwgZik6CiAgICAgICAgICAgICBlbGlm
IGtleSA9PSBiInZhcmlhbnQiOgogICAgICAgICAgICAgICAgIHBhc3MKICAgICAgICAgICAgIGVs
c2U6Ci0gICAgICAgICAgICAgICAgZXJyb3JzLmFwcGVuZCgoIlVOS05PV04tTUVUQURBVEEiLCAi
VW5leHBlY3RlZCBraW5kIG9mIG1ldGFkYXRhIiwgcGF0aCwgaWR4ICsgMSkpCisgICAgICAgICAg
ICAgICAgZXJyb3JzLmFwcGVuZChydWxlcy5Vbmtub3duTWV0YWRhdGEuZXJyb3IocGF0aCwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBs
aW5lX25vPWlkeCArIDEpKQogICAgICAgICBlbHNlOgogICAgICAgICAgICAgZG9uZSA9IFRydWUK
IAogICAgICAgICBpZiBkb25lOgogICAgICAgICAgICAgaWYgbWV0YV9yZS5tYXRjaChsaW5lKToK
LSAgICAgICAgICAgICAgICBlcnJvcnMuYXBwZW5kKCgiU1RSQVktTUVUQURBVEEiLCAiTWV0YWRh
dGEgY29tbWVudHMgc2hvdWxkIHN0YXJ0IHRoZSBmaWxlIiwgcGF0aCwgaWR4ICsgMSkpCisgICAg
ICAgICAgICAgICAgZXJyb3JzLmFwcGVuZChydWxlcy5TdHJheU1ldGFkYXRhLmVycm9yKHBhdGgs
IGxpbmVfbm89aWR4ICsgMSkpCiAgICAgICAgICAgICBlbGlmIG1ldGFfcmUuc2VhcmNoKGxpbmUp
OgotICAgICAgICAgICAgICAgIGVycm9ycy5hcHBlbmQoKCJJTkRFTlRFRC1NRVRBREFUQSIsICJN
ZXRhZGF0YSBjb21tZW50cyBzaG91bGQgc3RhcnQgdGhlIGxpbmUiLCBwYXRoLCBpZHggKyAxKSkK
KyAgICAgICAgICAgICAgICBlcnJvcnMuYXBwZW5kKHJ1bGVzLkluZGVudGVkTWV0YWRhdGEuZXJy
b3IocGF0aCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgbGluZV9ubz1pZHggKyAxKSkKICAgICAgICAgICAgIGVsaWYgYnJva2VuX21l
dGFkYXRhLnNlYXJjaChsaW5lKToKLSAgICAgICAgICAgICAgICBlcnJvcnMuYXBwZW5kKCgiQlJP
S0VOLU1FVEFEQVRBIiwgIk1ldGFkYXRhIGNvbW1lbnQgaXMgbm90IGZvcm1hdHRlZCBjb3JyZWN0
bHkiLCBwYXRoLCBpZHggKyAxKSkKKyAgICAgICAgICAgICAgICBlcnJvcnMuYXBwZW5kKHJ1bGVz
LkJyb2tlbk1ldGFkYXRhLmVycm9yKHBhdGgsIGxpbmVfbm89aWR4ICsgMSkpCiAKICAgICByZXR1
cm4gZXJyb3JzCiAKIAorYWhlbV9mb250X3JlID0gcmUuY29tcGlsZShiImZvbnQuKjouKmFoZW0i
LCBmbGFncz1yZS5JR05PUkVDQVNFKQorIyBBaGVtIGNhbiBhcHBlYXIgZWl0aGVyIGluIHRoZSBn
bG9iYWwgbG9jYXRpb24gb3IgaW4gdGhlIHN1cHBvcnQKKyMgZGlyZWN0b3J5IGZvciBsZWdhY3kg
TW96aWxsYSBpbXBvcnRzCithaGVtX3N0eWxlc2hlZXRfcmUgPSByZS5jb21waWxlKGIiXC9mb250
c1wvYWhlbVwuY3NzfHN1cHBvcnRcL2FoZW0uY3NzIiwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgZmxhZ3M9cmUuSUdOT1JFQ0FTRSkKKworCitkZWYgY2hlY2tfYWhlbV9zeXN0ZW1f
Zm9udChyZXBvX3Jvb3QsIHBhdGgsIGYpOgorICAgICMgdHlwZTogKHN0ciwgc3RyLCBJT1tieXRl
c10pIC0+IExpc3RbcnVsZXMuRXJyb3JdCisgICAgaWYgbm90IHBhdGguZW5kc3dpdGgoKCIuaHRt
bCIsICIuaHRtIiwgIi54aHQiLCAiLnhodG1sIikpOgorICAgICAgICByZXR1cm4gW10KKyAgICBj
b250ZW50cyA9IGYucmVhZCgpCisgICAgZXJyb3JzID0gW10KKyAgICBpZiBhaGVtX2ZvbnRfcmUu
c2VhcmNoKGNvbnRlbnRzKSBhbmQgbm90IGFoZW1fc3R5bGVzaGVldF9yZS5zZWFyY2goY29udGVu
dHMpOgorICAgICAgICBlcnJvcnMuYXBwZW5kKHJ1bGVzLkFoZW1TeXN0ZW1Gb250LmVycm9yKHBh
dGgpKQorICAgIHJldHVybiBlcnJvcnMKKworCiBkZWYgY2hlY2tfcGF0aChyZXBvX3Jvb3QsIHBh
dGgpOgorICAgICMgdHlwZTogKHN0ciwgc3RyKSAtPiBMaXN0W3J1bGVzLkVycm9yXQogICAgICIi
IgogICAgIFJ1bnMgbGludHMgdGhhdCBjaGVjayB0aGUgZmlsZSBwYXRoLgogCkBAIC03MDEsNiAr
NzE1LDcgQEAgZGVmIGNoZWNrX3BhdGgocmVwb19yb290LCBwYXRoKToKIAogCiBkZWYgY2hlY2tf
YWxsX3BhdGhzKHJlcG9fcm9vdCwgcGF0aHMpOgorICAgICMgdHlwZTogKHN0ciwgTGlzdFtzdHJd
KSAtPiBMaXN0W3J1bGVzLkVycm9yXQogICAgICIiIgogICAgIFJ1bnMgbGludHMgdGhhdCBjaGVj
ayBhbGwgcGF0aHMgZ2xvYmFsbHkuCiAKQEAgLTcxNiw2ICs3MzEsNyBAQCBkZWYgY2hlY2tfYWxs
X3BhdGhzKHJlcG9fcm9vdCwgcGF0aHMpOgogCiAKIGRlZiBjaGVja19maWxlX2NvbnRlbnRzKHJl
cG9fcm9vdCwgcGF0aCwgZik6CisgICAgIyB0eXBlOiAoc3RyLCBzdHIsIElPW2J5dGVzXSkgLT4g
TGlzdFtydWxlcy5FcnJvcl0KICAgICAiIiIKICAgICBSdW5zIGxpbnRzIHRoYXQgY2hlY2sgdGhl
IGZpbGUgY29udGVudHMuCiAKQEAgLTczMyw2ICs3NDksOCBAQCBkZWYgY2hlY2tfZmlsZV9jb250
ZW50cyhyZXBvX3Jvb3QsIHBhdGgsIGYpOgogCiAKIGRlZiBvdXRwdXRfZXJyb3JzX3RleHQoZXJy
b3JzKToKKyAgICAjIHR5cGU6IChMaXN0W3J1bGVzLkVycm9yXSkgLT4gTm9uZQorICAgIGFzc2Vy
dCBsb2dnZXIgaXMgbm90IE5vbmUKICAgICBmb3IgZXJyb3JfdHlwZSwgZGVzY3JpcHRpb24sIHBh
dGgsIGxpbmVfbnVtYmVyIGluIGVycm9yczoKICAgICAgICAgcG9zX3N0cmluZyA9IHBhdGgKICAg
ICAgICAgaWYgbGluZV9udW1iZXI6CkBAIC03NDEsOCArNzU5LDEwIEBAIGRlZiBvdXRwdXRfZXJy
b3JzX3RleHQoZXJyb3JzKToKIAogCiBkZWYgb3V0cHV0X2Vycm9yc19tYXJrZG93bihlcnJvcnMp
OgorICAgICMgdHlwZTogKExpc3RbcnVsZXMuRXJyb3JdKSAtPiBOb25lCiAgICAgaWYgbm90IGVy
cm9yczoKICAgICAgICAgcmV0dXJuCisgICAgYXNzZXJ0IGxvZ2dlciBpcyBub3QgTm9uZQogICAg
IGhlYWRpbmcgPSAiIiJHb3QgbGludCBlcnJvcnM6CiAKIHwgRXJyb3IgVHlwZSB8IFBvc2l0aW9u
IHwgTWVzc2FnZSB8CkBAIC03NTcsMTUgKzc3NywxOCBAQCBkZWYgb3V0cHV0X2Vycm9yc19tYXJr
ZG93bihlcnJvcnMpOgogCiAKIGRlZiBvdXRwdXRfZXJyb3JzX2pzb24oZXJyb3JzKToKKyAgICAj
IHR5cGU6IChMaXN0W3J1bGVzLkVycm9yXSkgLT4gTm9uZQogICAgIGZvciBlcnJvcl90eXBlLCBl
cnJvciwgcGF0aCwgbGluZV9udW1iZXIgaW4gZXJyb3JzOgogICAgICAgICBwcmludChqc29uLmR1
bXBzKHsicGF0aCI6IHBhdGgsICJsaW5lbm8iOiBsaW5lX251bWJlciwKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgInJ1bGUiOiBlcnJvcl90eXBlLCAibWVzc2FnZSI6IGVycm9yfSkpCiAKIAog
ZGVmIG91dHB1dF9lcnJvcl9jb3VudChlcnJvcl9jb3VudCk6CisgICAgIyB0eXBlOiAoRGljdFtU
ZXh0LCBpbnRdKSAtPiBOb25lCiAgICAgaWYgbm90IGVycm9yX2NvdW50OgogICAgICAgICByZXR1
cm4KIAorICAgIGFzc2VydCBsb2dnZXIgaXMgbm90IE5vbmUKICAgICBieV90eXBlID0gIiAiLmpv
aW4oIiVzOiAlZCIgJSBpdGVtIGZvciBpdGVtIGluIGVycm9yX2NvdW50Lml0ZW1zKCkpCiAgICAg
Y291bnQgPSBzdW0oZXJyb3JfY291bnQudmFsdWVzKCkpCiAgICAgbG9nZ2VyLmluZm8oIiIpCkBA
IC03NzYsMTUgKzc5OSwxNyBAQCBkZWYgb3V0cHV0X2Vycm9yX2NvdW50KGVycm9yX2NvdW50KToK
IAogCiBkZWYgY2hhbmdlZF9maWxlcyh3cHRfcm9vdCk6CisgICAgIyB0eXBlOiAoc3RyKSAtPiBM
aXN0W1RleHRdCiAgICAgcmV2aXNoID0gdGVzdGZpbGVzLmdldF9yZXZpc2gocmV2aXNoPU5vbmUp
Ci0gICAgY2hhbmdlZCwgXyA9IHRlc3RmaWxlcy5maWxlc19jaGFuZ2VkKHJldmlzaCwgc2V0KCks
IGluY2x1ZGVfdW5jb21taXR0ZWQ9VHJ1ZSwgaW5jbHVkZV9uZXc9VHJ1ZSkKKyAgICBjaGFuZ2Vk
LCBfID0gdGVzdGZpbGVzLmZpbGVzX2NoYW5nZWQocmV2aXNoLCBOb25lLCBpbmNsdWRlX3VuY29t
bWl0dGVkPVRydWUsIGluY2x1ZGVfbmV3PVRydWUpCiAgICAgcmV0dXJuIFtvcy5wYXRoLnJlbHBh
dGgoaXRlbSwgd3B0X3Jvb3QpIGZvciBpdGVtIGluIGNoYW5nZWRdCiAKIAogZGVmIGxpbnRfcGF0
aHMoa3dhcmdzLCB3cHRfcm9vdCk6Ci0gICAgaWYga3dhcmdzLmdldCgicGF0aHMiKToKKyAgICAj
IHR5cGU6IChEaWN0W3N0ciwgQW55XSwgc3RyKSAtPiBMaXN0W3N0cl0KKyAgICBpZiBrd2FyZ3Mu
Z2V0KHN0cigicGF0aHMiKSk6CiAgICAgICAgIHBhdGhzID0gW10KLSAgICAgICAgZm9yIHBhdGgg
aW4ga3dhcmdzLmdldCgicGF0aHMiKToKKyAgICAgICAgZm9yIHBhdGggaW4ga3dhcmdzLmdldChz
dHIoInBhdGhzIiksIFtdKToKICAgICAgICAgICAgIGlmIG9zLnBhdGguaXNkaXIocGF0aCk6CiAg
ICAgICAgICAgICAgICAgcGF0aF9kaXIgPSBsaXN0KGFsbF9maWxlc3lzdGVtX3BhdGhzKHdwdF9y
b290LCBwYXRoKSkKICAgICAgICAgICAgICAgICBwYXRocy5leHRlbmQocGF0aF9kaXIpCkBAIC03
OTIsNyArODE3LDcgQEAgZGVmIGxpbnRfcGF0aHMoa3dhcmdzLCB3cHRfcm9vdCk6CiAgICAgICAg
ICAgICAgICAgcGF0aHMuYXBwZW5kKG9zLnBhdGgucmVscGF0aChvcy5wYXRoLmFic3BhdGgocGF0
aCksIHdwdF9yb290KSkKIAogCi0gICAgZWxpZiBrd2FyZ3NbImFsbCJdOgorICAgIGVsaWYga3dh
cmdzW3N0cigiYWxsIildOgogICAgICAgICBwYXRocyA9IGxpc3QoYWxsX2ZpbGVzeXN0ZW1fcGF0
aHMod3B0X3Jvb3QpKQogICAgIGVsc2U6CiAgICAgICAgIGNoYW5nZWRfcGF0aHMgPSBjaGFuZ2Vk
X2ZpbGVzKHdwdF9yb290KQpAQCAtODAyLDEzICs4MjcsMTQgQEAgZGVmIGxpbnRfcGF0aHMoa3dh
cmdzLCB3cHRfcm9vdCk6CiAgICAgICAgICAgICBpZiBwYXRoID09ICJsaW50LndoaXRlbGlzdCIg
b3IgcGF0aC5zdGFydHN3aXRoKCJ0b29scy9saW50LyIpOgogICAgICAgICAgICAgICAgIGZvcmNl
X2FsbCA9IFRydWUKICAgICAgICAgICAgICAgICBicmVhawotICAgICAgICBwYXRocyA9IChsaXN0
KGNoYW5nZWRfcGF0aHMpIGlmIG5vdCBmb3JjZV9hbGwKKyAgICAgICAgcGF0aHMgPSAobGlzdChj
aGFuZ2VkX3BhdGhzKSBpZiBub3QgZm9yY2VfYWxsICAjIHR5cGU6IGlnbm9yZQogICAgICAgICAg
ICAgICAgICBlbHNlIGxpc3QoYWxsX2ZpbGVzeXN0ZW1fcGF0aHMod3B0X3Jvb3QpKSkKIAogICAg
IHJldHVybiBwYXRocwogCiAKIGRlZiBjcmVhdGVfcGFyc2VyKCk6CisgICAgIyB0eXBlOiAoKSAt
PiBhcmdwYXJzZS5Bcmd1bWVudFBhcnNlcgogICAgIHBhcnNlciA9IGFyZ3BhcnNlLkFyZ3VtZW50
UGFyc2VyKCkKICAgICBwYXJzZXIuYWRkX2FyZ3VtZW50KCJwYXRocyIsIG5hcmdzPSIqIiwKICAg
ICAgICAgICAgICAgICAgICAgICAgIGhlbHA9Ikxpc3Qgb2YgcGF0aHMgdG8gbGludCIpCkBAIC04
MTgsNDIgKzg0NCw1MiBAQCBkZWYgY3JlYXRlX3BhcnNlcigpOgogICAgICAgICAgICAgICAgICAg
ICAgICAgaGVscD0iT3V0cHV0IG1hcmtkb3duIikKICAgICBwYXJzZXIuYWRkX2FyZ3VtZW50KCIt
LXJlcG8tcm9vdCIsIGhlbHA9IlRoZSBXUFQgZGlyZWN0b3J5LiBVc2UgdGhpcyIKICAgICAgICAg
ICAgICAgICAgICAgICAgICJvcHRpb24gaWYgdGhlIGxpbnQgc2NyaXB0IGV4aXN0cyBvdXRzaWRl
IHRoZSByZXBvc2l0b3J5IikKKyAgICBwYXJzZXIuYWRkX2FyZ3VtZW50KCItLWlnbm9yZS1nbG9i
IiwgaGVscD0iQWRkaXRpb25hbCBmaWxlIGdsb2IgdG8gaWdub3JlLiIpCiAgICAgcGFyc2VyLmFk
ZF9hcmd1bWVudCgiLS1hbGwiLCBhY3Rpb249InN0b3JlX3RydWUiLCBoZWxwPSJJZiBubyBwYXRo
cyBhcmUgcGFzc2VkLCB0cnkgdG8gbGludCB0aGUgd2hvbGUgIgogICAgICAgICAgICAgICAgICAg
ICAgICAgIndvcmtpbmcgZGlyZWN0b3J5LCBub3QganVzdCBmaWxlcyB0aGF0IGNoYW5nZWQiKQog
ICAgIHJldHVybiBwYXJzZXIKIAogCiBkZWYgbWFpbigqKmt3YXJncyk6Ci0gICAgaWYga3dhcmdz
LmdldCgianNvbiIpIGFuZCBrd2FyZ3MuZ2V0KCJtYXJrZG93biIpOgorICAgICMgdHlwZTogKCoq
QW55KSAtPiBpbnQKKyAgICBhc3NlcnQgbG9nZ2VyIGlzIG5vdCBOb25lCisgICAgaWYga3dhcmdz
LmdldChzdHIoImpzb24iKSkgYW5kIGt3YXJncy5nZXQoc3RyKCJtYXJrZG93biIpKToKICAgICAg
ICAgbG9nZ2VyLmNyaXRpY2FsKCJDYW5ub3Qgc3BlY2lmeSAtLWpzb24gYW5kIC0tbWFya2Rvd24i
KQogICAgICAgICBzeXMuZXhpdCgyKQogCi0gICAgcmVwb19yb290ID0ga3dhcmdzLmdldCgncmVw
b19yb290Jykgb3IgbG9jYWxwYXRocy5yZXBvX3Jvb3QKLSAgICBvdXRwdXRfZm9ybWF0ID0geyhU
cnVlLCBGYWxzZSk6ICJqc29uIiwKLSAgICAgICAgICAgICAgICAgICAgIChGYWxzZSwgVHJ1ZSk6
ICJtYXJrZG93biIsCi0gICAgICAgICAgICAgICAgICAgICAoRmFsc2UsIEZhbHNlKTogIm5vcm1h
bCJ9Wyhrd2FyZ3MuZ2V0KCJqc29uIiwgRmFsc2UpLAotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAga3dhcmdzLmdldCgibWFya2Rvd24iLCBGYWxzZSkpXQor
ICAgIHJlcG9fcm9vdCA9IGt3YXJncy5nZXQoc3RyKCdyZXBvX3Jvb3QnKSkgb3IgbG9jYWxwYXRo
cy5yZXBvX3Jvb3QKKyAgICBvdXRwdXRfZm9ybWF0ID0geyhUcnVlLCBGYWxzZSk6IHN0cigianNv
biIpLAorICAgICAgICAgICAgICAgICAgICAgKEZhbHNlLCBUcnVlKTogc3RyKCJtYXJrZG93biIp
LAorICAgICAgICAgICAgICAgICAgICAgKEZhbHNlLCBGYWxzZSk6IHN0cigibm9ybWFsIil9Wyhr
d2FyZ3MuZ2V0KHN0cigianNvbiIpLCBGYWxzZSksCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGt3YXJncy5nZXQoc3RyKCJtYXJrZG93biIpLCBG
YWxzZSkpXQogCiAgICAgaWYgb3V0cHV0X2Zvcm1hdCA9PSAibWFya2Rvd24iOgogICAgICAgICBz
ZXR1cF9sb2dnaW5nKFRydWUpCiAKICAgICBwYXRocyA9IGxpbnRfcGF0aHMoa3dhcmdzLCByZXBv
X3Jvb3QpCiAKLSAgICByZXR1cm4gbGludChyZXBvX3Jvb3QsIHBhdGhzLCBvdXRwdXRfZm9ybWF0
KQorICAgIGlnbm9yZV9nbG9iID0ga3dhcmdzLmdldChzdHIoImlnbm9yZV9nbG9iIikpIG9yIHN0
cigpCiAKKyAgICByZXR1cm4gbGludChyZXBvX3Jvb3QsIHBhdGhzLCBvdXRwdXRfZm9ybWF0LCBz
dHIoaWdub3JlX2dsb2IpKQogCi1kZWYgbGludChyZXBvX3Jvb3QsIHBhdGhzLCBvdXRwdXRfZm9y
bWF0KToKLSAgICBlcnJvcl9jb3VudCA9IGRlZmF1bHRkaWN0KGludCkKKworZGVmIGxpbnQocmVw
b19yb290LCBwYXRocywgb3V0cHV0X2Zvcm1hdCwgaWdub3JlX2dsb2I9c3RyKCkpOgorICAgICMg
dHlwZTogKHN0ciwgTGlzdFtzdHJdLCBzdHIsIHN0cikgLT4gaW50CisgICAgZXJyb3JfY291bnQg
PSBkZWZhdWx0ZGljdChpbnQpICAjIHR5cGU6IERpY3RbVGV4dCwgaW50XQogICAgIGxhc3QgPSBO
b25lCiAKICAgICB3aXRoIG9wZW4ob3MucGF0aC5qb2luKHJlcG9fcm9vdCwgImxpbnQud2hpdGVs
aXN0IikpIGFzIGY6CiAgICAgICAgIHdoaXRlbGlzdCwgaWdub3JlZF9maWxlcyA9IHBhcnNlX3do
aXRlbGlzdChmKQogCisgICAgaWYgaWdub3JlX2dsb2I6CisgICAgICAgIGlnbm9yZWRfZmlsZXMu
YWRkKGlnbm9yZV9nbG9iKQorCiAgICAgb3V0cHV0X2Vycm9ycyA9IHsianNvbiI6IG91dHB1dF9l
cnJvcnNfanNvbiwKICAgICAgICAgICAgICAgICAgICAgICJtYXJrZG93biI6IG91dHB1dF9lcnJv
cnNfbWFya2Rvd24sCiAgICAgICAgICAgICAgICAgICAgICAibm9ybWFsIjogb3V0cHV0X2Vycm9y
c190ZXh0fVtvdXRwdXRfZm9ybWF0XQogCiAgICAgZGVmIHByb2Nlc3NfZXJyb3JzKGVycm9ycyk6
CisgICAgICAgICMgdHlwZTogKExpc3RbcnVsZXMuRXJyb3JdKSAtPiBPcHRpb25hbFtUdXBsZVtU
ZXh0LCBUZXh0XV0KICAgICAgICAgIiIiCiAgICAgICAgIEZpbHRlcnMgYW5kIHByaW50cyB0aGUg
ZXJyb3JzLCBhbmQgdXBkYXRlcyB0aGUgYGBlcnJvcl9jb3VudGBgIG9iamVjdC4KIApAQCAtODk3
LDEzICs5MzMsMTcgQEAgZGVmIGxpbnQocmVwb19yb290LCBwYXRocywgb3V0cHV0X2Zvcm1hdCk6
CiAgICAgaWYgb3V0cHV0X2Zvcm1hdCBpbiAoIm5vcm1hbCIsICJtYXJrZG93biIpOgogICAgICAg
ICBvdXRwdXRfZXJyb3JfY291bnQoZXJyb3JfY291bnQpCiAgICAgICAgIGlmIGVycm9yX2NvdW50
OgorICAgICAgICAgICAgYXNzZXJ0IGxhc3QgaXMgbm90IE5vbmUKKyAgICAgICAgICAgIGFzc2Vy
dCBsb2dnZXIgaXMgbm90IE5vbmUKICAgICAgICAgICAgIGZvciBsaW5lIGluIChFUlJPUl9NU0cg
JSAobGFzdFswXSwgbGFzdFsxXSwgbGFzdFswXSwgbGFzdFsxXSkpLnNwbGl0KCJcbiIpOgogICAg
ICAgICAgICAgICAgIGxvZ2dlci5pbmZvKGxpbmUpCiAgICAgcmV0dXJuIHN1bShpdGVydmFsdWVz
KGVycm9yX2NvdW50KSkKIAotcGF0aF9saW50cyA9IFtjaGVja19wYXRoX2xlbmd0aCwgY2hlY2tf
d29ya2VyX2NvbGxpc2lvbiwgY2hlY2tfYWhlbV9jb3B5XQorcGF0aF9saW50cyA9IFtjaGVja19m
aWxlX3R5cGUsIGNoZWNrX3BhdGhfbGVuZ3RoLCBjaGVja193b3JrZXJfY29sbGlzaW9uLCBjaGVj
a19haGVtX2NvcHksCisgICAgICAgICAgICAgIGNoZWNrX2dpdGlnbm9yZV9maWxlXQogYWxsX3Bh
dGhzX2xpbnRzID0gW2NoZWNrX2Nzc19nbG9iYWxseV91bmlxdWVdCi1maWxlX2xpbnRzID0gW2No
ZWNrX3JlZ2V4cF9saW5lLCBjaGVja19wYXJzZWQsIGNoZWNrX3B5dGhvbl9hc3QsIGNoZWNrX3Nj
cmlwdF9tZXRhZGF0YV0KK2ZpbGVfbGludHMgPSBbY2hlY2tfcmVnZXhwX2xpbmUsIGNoZWNrX3Bh
cnNlZCwgY2hlY2tfcHl0aG9uX2FzdCwgY2hlY2tfc2NyaXB0X21ldGFkYXRhLAorICAgICAgICAg
ICAgICBjaGVja19haGVtX3N5c3RlbV9mb250XQogCiAjIERvbid0IGJyZWFrIHVzZXJzIG9mIHRo
ZSBsaW50IHRoYXQgZG9uJ3QgaGF2ZSBnaXQgaW5zdGFsbGVkLgogdHJ5OgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9saW50L3J1
bGVzLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy9saW50L3J1bGVzLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjU4NzAyOGQ2YzVmOTI3NzgxYzJlNzIzOGFhZDE1
Yzg3NWJkMzlkMWMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2xpbnQvcnVsZXMucHkKQEAgLTAsMCArMSw0NTIgQEAK
K2Zyb20gX19mdXR1cmVfXyBpbXBvcnQgdW5pY29kZV9saXRlcmFscworCitpbXBvcnQgYWJjCitp
bXBvcnQgaW5zcGVjdAoraW1wb3J0IG9zCitpbXBvcnQgcmUKKworaW1wb3J0IHNpeAorCitNWVBZ
ID0gRmFsc2UKK2lmIE1ZUFk6CisgICAgIyBNWVBZIGlzIHNldCB0byBUcnVlIHdoZW4gcnVuIHVu
ZGVyIE15cHkuCisgICAgZnJvbSB0eXBpbmcgaW1wb3J0IEFueSwgTGlzdCwgTWF0Y2gsIE9wdGlv
bmFsLCBQYXR0ZXJuLCBUZXh0LCBUdXBsZSwgY2FzdAorICAgIEVycm9yID0gVHVwbGVbVGV4dCwg
VGV4dCwgVGV4dCwgT3B0aW9uYWxbaW50XV0KKworCitkZWYgY29sbGFwc2UodGV4dCk6CisgICAg
IyB0eXBlOiAoVGV4dCkgLT4gVGV4dAorICAgIHJldHVybiBpbnNwZWN0LmNsZWFuZG9jKHN0cih0
ZXh0KSkucmVwbGFjZSgiXG4iLCAiICIpCisKKworY2xhc3MgUnVsZShzaXgud2l0aF9tZXRhY2xh
c3MoYWJjLkFCQ01ldGEpKToKKyAgICBAYWJjLmFic3RyYWN0cHJvcGVydHkKKyAgICBkZWYgbmFt
ZShzZWxmKToKKyAgICAgICAgIyB0eXBlOiAoKSAtPiBUZXh0CisgICAgICAgIHBhc3MKKworICAg
IEBhYmMuYWJzdHJhY3Rwcm9wZXJ0eQorICAgIGRlZiBkZXNjcmlwdGlvbihzZWxmKToKKyAgICAg
ICAgIyB0eXBlOiAoKSAtPiBUZXh0CisgICAgICAgIHBhc3MKKworICAgIHRvX2ZpeCA9IE5vbmUg
ICMgdHlwZTogT3B0aW9uYWxbVGV4dF0KKworICAgIEBjbGFzc21ldGhvZAorICAgIGRlZiBlcnJv
cihjbHMsIHBhdGgsIGNvbnRleHQ9KCksIGxpbmVfbm89Tm9uZSk6CisgICAgICAgICMgdHlwZTog
KFRleHQsIFR1cGxlW0FueSwgLi4uXSwgT3B0aW9uYWxbaW50XSkgLT4gRXJyb3IKKyAgICAgICAg
aWYgTVlQWToKKyAgICAgICAgICAgIG5hbWUgPSBjYXN0KFRleHQsIGNscy5uYW1lKQorICAgICAg
ICAgICAgZGVzY3JpcHRpb24gPSBjYXN0KFRleHQsIGNscy5kZXNjcmlwdGlvbikKKyAgICAgICAg
ZWxzZToKKyAgICAgICAgICAgIG5hbWUgPSBjbHMubmFtZQorICAgICAgICAgICAgZGVzY3JpcHRp
b24gPSBjbHMuZGVzY3JpcHRpb24KKyAgICAgICAgZGVzY3JpcHRpb24gPSBkZXNjcmlwdGlvbiAl
IGNvbnRleHQKKyAgICAgICAgcmV0dXJuIChuYW1lLCBkZXNjcmlwdGlvbiwgcGF0aCwgbGluZV9u
bykKKworCitjbGFzcyBNaXNzaW5nTGluayhSdWxlKToKKyAgICBuYW1lID0gIk1JU1NJTkctTElO
SyIKKyAgICBkZXNjcmlwdGlvbiA9ICJUZXN0Y2FzZSBmaWxlIG11c3QgaGF2ZSBhIGxpbmsgdG8g
YSBzcGVjIgorICAgIHRvX2ZpeCA9ICIiIgorICAgICAgICBFbnN1cmUgdGhhdCB0aGVyZSBpcyBh
IGA8bGluayByZWw9ImhlbHAiIGhyZWY9Ilt1cmxdIj5gIGZvciB0aGUgc3BlYy4KKyAgICAgICAg
YE1JU1NJTkctTElOS2AgaXMgZGVzaWduZWQgdG8gZW5zdXJlIHRoYXQgdGhlIENTUyBidWlsZCB0
b29sIGNhbiBmaW5kCisgICAgICAgIHRoZSB0ZXN0cy4gTm90ZSB0aGF0IHRoZSBDU1MgYnVpbGQg
c3lzdGVtIGlzIHByaW1hcmlseSB1c2VkIGJ5CisgICAgICAgIFt0ZXN0LmNzc3dnLm9yZy9dKGh0
dHA6Ly90ZXN0LmNzc3dnLm9yZy8pLCB3aGljaCBkb2Vzbid0IHVzZQorICAgICAgICBgd3B0c2Vy
dmVgLCBzbyBgKi5hbnkuanNgIGFuZCBzaW1pbGFyIHRlc3RzIHdvbid0IHdvcmsgdGhlcmU7IHN0
aWNrCisgICAgICAgIHdpdGggdGhlIGAuaHRtbGAgZXF1aXZhbGVudC4KKyAgICAiIiIKKworCitj
bGFzcyBQYXRoTGVuZ3RoKFJ1bGUpOgorICAgIG5hbWUgPSAiUEFUSCBMRU5HVEgiCisgICAgZGVz
Y3JpcHRpb24gPSAiLyVzIGxvbmdlciB0aGFuIG1heGltdW0gcGF0aCBsZW5ndGggKCVkID4gMTUw
KSIKKyAgICB0b19maXggPSAidXNlIHNob3J0ZXIgZmlsZW5hbWUgdG8gcmVuYW1lIHRoZSB0ZXN0
IGZpbGUiCisKKworY2xhc3MgRmlsZVR5cGUoUnVsZSk6CisgICAgbmFtZSA9ICJGSUxFIFRZUEUi
CisgICAgZGVzY3JpcHRpb24gPSAiLyVzIGlzIGFuIHVuc3VwcG9ydGVkIGZpbGUgdHlwZSAoJXMp
IgorCisKK2NsYXNzIFdvcmtlckNvbGxpc2lvbihSdWxlKToKKyAgICBuYW1lID0gIldPUktFUiBD
T0xMSVNJT04iCisgICAgZGVzY3JpcHRpb24gPSBjb2xsYXBzZSgiIiIKKyAgICAgICAgcGF0aCBl
bmRzIHdpdGggJXMgd2hpY2ggY29sbGlkZXMgd2l0aCBnZW5lcmF0ZWQgdGVzdHMgZnJvbSAlcyBm
aWxlcworICAgICIiIikKKworCitjbGFzcyBHaXRJZ25vcmVGaWxlKFJ1bGUpOgorICAgIG5hbWUg
PSAiR0lUSUdOT1JFIgorICAgIGRlc2NyaXB0aW9uID0gIi5naXRpZ25vcmUgZm91bmQgb3V0c2lk
ZSB0aGUgcm9vdCIKKworCitjbGFzcyBBaGVtQ29weShSdWxlKToKKyAgICBuYW1lID0gIkFIRU0g
Q09QWSIKKyAgICBkZXNjcmlwdGlvbiA9ICJEb24ndCBhZGQgZXh0cmEgY29waWVzIG9mIEFoZW0s
IHVzZSAvZm9udHMvQWhlbS50dGYiCisKKworY2xhc3MgQWhlbVN5c3RlbUZvbnQoUnVsZSk6Cisg
ICAgbmFtZSA9ICJBSEVNIFNZU1RFTSBGT05UIgorICAgIGRlc2NyaXB0aW9uID0gIkRvbid0IHVz
ZSBBaGVtIGFzIGEgc3lzdGVtIGZvbnQsIHVzZSAvZm9udHMvYWhlbS5jc3MiCisKKworIyBUT0RP
OiBBZGQgdGVzdHMgZm9yIHRoaXMgcnVsZQorY2xhc3MgSWdub3JlZFBhdGgoUnVsZSk6CisgICAg
bmFtZSA9ICJJR05PUkVEIFBBVEgiCisgICAgZGVzY3JpcHRpb24gPSBjb2xsYXBzZSgiIiIKKyAg
ICAgICAgJXMgbWF0Y2hlcyBhbiBpZ25vcmUgZmlsdGVyIGluIC5naXRpZ25vcmUgLSBwbGVhc2Ug
YWRkIGEgLmdpdGlnbm9yZQorICAgICAgICBleGNlcHRpb24KKyAgICAiIiIpCisKKworY2xhc3Mg
Q1NTQ29sbGlkaW5nVGVzdE5hbWUoUnVsZSk6CisgICAgbmFtZSA9ICJDU1MtQ09MTElESU5HLVRF
U1QtTkFNRSIKKyAgICBkZXNjcmlwdGlvbiA9ICJUaGUgZmlsZW5hbWUgJXMgaW4gdGhlICVzIHRl
c3RzdWl0ZSBpcyBzaGFyZWQgYnk6ICVzIgorCisKK2NsYXNzIENTU0NvbGxpZGluZ1JlZk5hbWUo
UnVsZSk6CisgICAgbmFtZSA9ICJDU1MtQ09MTElESU5HLVJFRi1OQU1FIgorICAgIGRlc2NyaXB0
aW9uID0gIlRoZSBmaWxlbmFtZSAlcyBpcyBzaGFyZWQgYnk6ICVzIgorCisKK2NsYXNzIENTU0Nv
bGxpZGluZ1N1cHBvcnROYW1lKFJ1bGUpOgorICAgIG5hbWUgPSAiQ1NTLUNPTExJRElORy1TVVBQ
T1JULU5BTUUiCisgICAgZGVzY3JpcHRpb24gPSAiVGhlIGZpbGVuYW1lICVzIGlzIHNoYXJlZCBi
eTogJXMiCisKKworY2xhc3MgU3VwcG9ydFdyb25nRGlyKFJ1bGUpOgorICAgIG5hbWUgPSAiU1VQ
UE9SVC1XUk9ORy1ESVIiCisgICAgZGVzY3JpcHRpb24gPSAiU3VwcG9ydCBmaWxlIG5vdCBpbiBz
dXBwb3J0IGRpcmVjdG9yeSIKKworCitjbGFzcyBQYXJzZUZhaWxlZChSdWxlKToKKyAgICBuYW1l
ID0gIlBBUlNFLUZBSUxFRCIKKyAgICBkZXNjcmlwdGlvbiA9ICJVbmFibGUgdG8gcGFyc2UgZmls
ZSIKKyAgICB0b19maXggPSAiIiIKKyAgICAgICAgZXhhbWluZSB0aGUgZmlsZSB0byBmaW5kIHRo
ZSBjYXVzZXMgb2YgYW55IHBhcnNlIGVycm9ycywgYW5kIGZpeCB0aGVtLgorICAgICIiIgorCisK
K2NsYXNzIENvbnRlbnRNYW51YWwoUnVsZSk6CisgICAgbmFtZSA9ICJDT05URU5ULU1BTlVBTCIK
KyAgICBkZXNjcmlwdGlvbiA9ICJNYW51YWwgdGVzdCB3aG9zZSBmaWxlbmFtZSBkb2Vzbid0IGVu
ZCBpbiAnLW1hbnVhbCciCisKKworY2xhc3MgQ29udGVudFZpc3VhbChSdWxlKToKKyAgICBuYW1l
ID0gIkNPTlRFTlQtVklTVUFMIgorICAgIGRlc2NyaXB0aW9uID0gIlZpc3VhbCB0ZXN0IHdob3Nl
IGZpbGVuYW1lIGRvZXNuJ3QgZW5kIGluICctdmlzdWFsJyIKKworCitjbGFzcyBBYnNvbHV0ZVVy
bFJlZihSdWxlKToKKyAgICBuYW1lID0gIkFCU09MVVRFLVVSTC1SRUYiCisgICAgZGVzY3JpcHRp
b24gPSBjb2xsYXBzZSgiIiIKKyAgICAgICAgUmVmZXJlbmNlIHRlc3Qgd2l0aCBhIHJlZmVyZW5j
ZSBmaWxlIHNwZWNpZmllZCB2aWEgYW4gYWJzb2x1dGUgVVJMOgorICAgICAgICAnJXMnCisgICAg
IiIiKQorCisKK2NsYXNzIFNhbWVGaWxlUmVmKFJ1bGUpOgorICAgIG5hbWUgPSAiU0FNRS1GSUxF
LVJFRiIKKyAgICBkZXNjcmlwdGlvbiA9ICJSZWZlcmVuY2UgdGVzdCB3aGljaCBwb2ludHMgYXQg
aXRzZWxmIGFzIGEgcmVmZXJlbmNlIgorCisKK2NsYXNzIE5vbmV4aXN0ZW50UmVmKFJ1bGUpOgor
ICAgIG5hbWUgPSAiTk9OLUVYSVNURU5ULVJFRiIKKyAgICBkZXNjcmlwdGlvbiA9IGNvbGxhcHNl
KCIiIgorICAgICAgICBSZWZlcmVuY2UgdGVzdCB3aXRoIGEgbm9uLWV4aXN0ZW50ICclcycgcmVs
YXRpb25zaGlwIHJlZmVyZW5jZTogJyVzJworICAgICIiIikKKworCitjbGFzcyBNdWx0aXBsZVRp
bWVvdXQoUnVsZSk6CisgICAgbmFtZSA9ICJNVUxUSVBMRS1USU1FT1VUIgorICAgIGRlc2NyaXB0
aW9uID0gIk1vcmUgdGhhbiBvbmUgbWV0YSBuYW1lPSd0aW1lb3V0JyIKKyAgICB0b19maXggPSAi
IiIKKyAgICAgICAgZW5zdXJlIGVhY2ggdGVzdCBmaWxlIGhhcyBvbmx5IG9uZSBpbnN0YW5jZSBv
ZiBhIGA8bWV0YQorICAgICAgICBuYW1lPSJ0aW1lb3V0Ii4uLj5gIGVsZW1lbnQKKyAgICAiIiIK
KworCitjbGFzcyBJbnZhbGlkVGltZW91dChSdWxlKToKKyAgICBuYW1lID0gIklOVkFMSUQtVElN
RU9VVCIKKyAgICBkZXNjcmlwdGlvbiA9IGNvbGxhcHNlKCIiIgorICAgICAgICBUZXN0IGZpbGUg
d2l0aCBgPG1ldGEgbmFtZT0ndGltZW91dCcuLi4+YCBlbGVtZW50IHRoYXQgaGFzIGEgYGNvbnRl
bnRgCisgICAgICAgIGF0dHJpYnV0ZSB3aG9zZSB2YWx1ZSBpcyBub3QgYGxvbmdgOiAlcworICAg
ICIiIikKKyAgICB0b19maXggPSAicmVwbGFjZSB0aGUgdmFsdWUgb2YgdGhlIGBjb250ZW50YCBh
dHRyaWJ1dGUgd2l0aCBgbG9uZ2AiCisKKworY2xhc3MgTXVsdGlwbGVUZXN0aGFybmVzcyhSdWxl
KToKKyAgICBuYW1lID0gIk1VTFRJUExFLVRFU1RIQVJORVNTIgorICAgIGRlc2NyaXB0aW9uID0g
Ik1vcmUgdGhhbiBvbmUgYDxzY3JpcHQgc3JjPScvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzJz5g
IgorICAgIHRvX2ZpeCA9ICIiIgorICAgICAgICBlbnN1cmUgZWFjaCB0ZXN0IGhhcyBvbmx5IG9u
ZSBgPHNjcmlwdAorICAgICAgICBzcmM9Jy9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMn
PmAgaW5zdGFuY2UKKyAgICAiIiIKKworCitjbGFzcyBNaXNzaW5nVGVzdGhhcm5lc3NSZXBvcnQo
UnVsZSk6CisgICAgbmFtZSA9ICJNSVNTSU5HLVRFU1RIQVJORVNTUkVQT1JUIgorICAgIGRlc2Ny
aXB0aW9uID0gIk1pc3NpbmcgYDxzY3JpcHQgc3JjPScvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVw
b3J0LmpzJz5gIgorICAgIHRvX2ZpeCA9ICIiIgorICAgICAgICBlbnN1cmUgZWFjaCB0ZXN0IGZp
bGUgY29udGFpbnMgYDxzY3JpcHQKKyAgICAgICAgc3JjPScvcmVzb3VyY2VzL3Rlc3RoYXJuZXNz
cmVwb3J0LmpzJz5gCisgICAgIiIiCisKKworY2xhc3MgTXVsdGlwbGVUZXN0aGFybmVzc1JlcG9y
dChSdWxlKToKKyAgICBuYW1lID0gIk1VTFRJUExFLVRFU1RIQVJORVNTUkVQT1JUIgorICAgIGRl
c2NyaXB0aW9uID0gIk1vcmUgdGhhbiBvbmUgYDxzY3JpcHQgc3JjPScvcmVzb3VyY2VzL3Rlc3Ro
YXJuZXNzcmVwb3J0LmpzJz5gIgorCisKK2NsYXNzIFByZXNlbnRUZXN0aGFybmVzc0NTUyhSdWxl
KToKKyAgICBuYW1lID0gIlBSRVNFTlQtVEVTVEhBUk5FU1NDU1MiCisgICAgZGVzY3JpcHRpb24g
PSAiRXhwbGljaXQgbGluayB0byB0ZXN0aGFybmVzcy5jc3MgcHJlc2VudCIKKworCitjbGFzcyBW
YXJpYW50TWlzc2luZyhSdWxlKToKKyAgICBuYW1lID0gIlZBUklBTlQtTUlTU0lORyIKKyAgICBk
ZXNjcmlwdGlvbiA9IGNvbGxhcHNlKCIiIgorICAgICAgICBUZXN0IGZpbGUgd2l0aCBhIGA8bWV0
YSBuYW1lPSd2YXJpYW50Jy4uLj5gIGVsZW1lbnQgdGhhdCdzIG1pc3NpbmcgYQorICAgICAgICBg
Y29udGVudGAgYXR0cmlidXRlCisgICAgIiIiKQorICAgIHRvX2ZpeCA9ICIiIgorICAgICAgICBh
ZGQgYSBgY29udGVudGAgYXR0cmlidXRlIHdpdGggYW4gYXBwcm9wcmlhdGUgdmFsdWUgdG8gdGhl
IGA8bWV0YQorICAgICAgICBuYW1lPSd2YXJpYW50Jy4uLj5gIGVsZW1lbnQKKyAgICAiIiIKKwor
CitjbGFzcyBNYWxmb3JtZWRWYXJpYW50KFJ1bGUpOgorICAgIG5hbWUgPSAiTUFMRk9STUVELVZB
UklBTlQiCisgICAgZGVzY3JpcHRpb24gPSBjb2xsYXBzZSgiIiIKKyAgICAgICAgJXMgYDxtZXRh
IG5hbWU9dmFyaWFudD5gICdjb250ZW50JyBhdHRyaWJ1dGUgbXVzdCBiZSB0aGUgZW1wdHkgc3Ry
aW5nCisgICAgICAgIG9yIHN0YXJ0IHdpdGggJz8nIG9yICcjJworICAgICIiIikKKworCitjbGFz
cyBMYXRlVGltZW91dChSdWxlKToKKyAgICBuYW1lID0gIkxBVEUtVElNRU9VVCIKKyAgICBkZXNj
cmlwdGlvbiA9ICJgPG1ldGEgbmFtZT10aW1lb3V0PmAgc2VlbiBhZnRlciB0ZXN0aGFybmVzcy5q
cyBzY3JpcHQiCisgICAgZGVzY3JpcHRpb24gPSBjb2xsYXBzZSgiIiIKKyAgICAgICAgVGVzdCBm
aWxlIHdpdGggYDxtZXRhIG5hbWU9J3RpbWVvdXQnLi4uPmAgZWxlbWVudCBhZnRlciBgPHNjcmlw
dAorICAgICAgICBzcmM9Jy9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMnPmAgZWxlbWVu
dAorICAgICIiIikKKyAgICB0b19maXggPSAiIiIKKyAgICAgICAgbW92ZSB0aGUgYDxtZXRhIG5h
bWU9InRpbWVvdXQiLi4uPmAgZWxlbWVudCB0byBwcmVjZWRlIHRoZSBgc2NyaXB0YAorICAgICAg
ICBlbGVtZW50LgorICAgICIiIgorCisKK2NsYXNzIEVhcmx5VGVzdGhhcm5lc3NSZXBvcnQoUnVs
ZSk6CisgICAgbmFtZSA9ICJFQVJMWS1URVNUSEFSTkVTU1JFUE9SVCIKKyAgICBkZXNjcmlwdGlv
biA9IGNvbGxhcHNlKCIiIgorICAgICAgICBUZXN0IGZpbGUgaGFzIGFuIGluc3RhbmNlIG9mCisg
ICAgICAgIGA8c2NyaXB0IHNyYz0nL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyc+YCBw
cmlvciB0bworICAgICAgICBgPHNjcmlwdCBzcmM9Jy9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMn
PmAKKyAgICAiIiIpCisgICAgdG9fZml4ID0gImZsaXAgdGhlIG9yZGVyIgorCisKK2NsYXNzIE11
bHRpcGxlVGVzdGRyaXZlcihSdWxlKToKKyAgICBuYW1lID0gIk1VTFRJUExFLVRFU1REUklWRVIi
CisgICAgZGVzY3JpcHRpb24gPSAiTW9yZSB0aGFuIG9uZSBgPHNjcmlwdCBzcmM9Jy9yZXNvdXJj
ZXMvdGVzdGRyaXZlci5qcyc+YCIKKworCitjbGFzcyBNaXNzaW5nVGVzdGRyaXZlclZlbmRvcihS
dWxlKToKKyAgICBuYW1lID0gIk1JU1NJTkctVEVTVERSSVZFUi1WRU5ET1IiCisgICAgZGVzY3Jp
cHRpb24gPSAiTWlzc2luZyBgPHNjcmlwdCBzcmM9Jy9yZXNvdXJjZXMvdGVzdGRyaXZlci12ZW5k
b3IuanMnPmAiCisKKworY2xhc3MgTXVsdGlwbGVUZXN0ZHJpdmVyVmVuZG9yKFJ1bGUpOgorICAg
IG5hbWUgPSAiTVVMVElQTEUtVEVTVERSSVZFUi1WRU5ET1IiCisgICAgZGVzY3JpcHRpb24gPSAi
TW9yZSB0aGFuIG9uZSBgPHNjcmlwdCBzcmM9Jy9yZXNvdXJjZXMvdGVzdGRyaXZlci12ZW5kb3Iu
anMnPmAiCisKKworY2xhc3MgVGVzdGhhcm5lc3NQYXRoKFJ1bGUpOgorICAgIG5hbWUgPSAiVEVT
VEhBUk5FU1MtUEFUSCIKKyAgICBkZXNjcmlwdGlvbiA9ICJ0ZXN0aGFybmVzcy5qcyBzY3JpcHQg
c2VlbiB3aXRoIGluY29ycmVjdCBwYXRoIgorCisKK2NsYXNzIFRlc3RoYXJuZXNzUmVwb3J0UGF0
aChSdWxlKToKKyAgICBuYW1lID0gIlRFU1RIQVJORVNTUkVQT1JULVBBVEgiCisgICAgZGVzY3Jp
cHRpb24gPSAidGVzdGhhcm5lc3NyZXBvcnQuanMgc2NyaXB0IHNlZW4gd2l0aCBpbmNvcnJlY3Qg
cGF0aCIKKworCitjbGFzcyBUZXN0ZHJpdmVyUGF0aChSdWxlKToKKyAgICBuYW1lID0gIlRFU1RE
UklWRVItUEFUSCIKKyAgICBkZXNjcmlwdGlvbiA9ICJ0ZXN0ZHJpdmVyLmpzIHNjcmlwdCBzZWVu
IHdpdGggaW5jb3JyZWN0IHBhdGgiCisKKworY2xhc3MgVGVzdGRyaXZlclZlbmRvclBhdGgoUnVs
ZSk6CisgICAgbmFtZSA9ICJURVNURFJJVkVSLVZFTkRPUi1QQVRIIgorICAgIGRlc2NyaXB0aW9u
ID0gInRlc3Rkcml2ZXItdmVuZG9yLmpzIHNjcmlwdCBzZWVuIHdpdGggaW5jb3JyZWN0IHBhdGgi
CisKKworY2xhc3MgT3Blbk5vTW9kZShSdWxlKToKKyAgICBuYW1lID0gIk9QRU4tTk8tTU9ERSIK
KyAgICBkZXNjcmlwdGlvbiA9ICJGaWxlIG9wZW5lZCB3aXRob3V0IHByb3ZpZGluZyBhbiBleHBs
aWNpdCBtb2RlIChub3RlOiBiaW5hcnkgZmlsZXMgbXVzdCBiZSByZWFkIHdpdGggJ2InIGluIHRo
ZSBtb2RlIGZsYWdzKSIKKworCitjbGFzcyBVbmtub3duR2xvYmFsTWV0YWRhdGEoUnVsZSk6Cisg
ICAgbmFtZSA9ICJVTktOT1dOLUdMT0JBTC1NRVRBREFUQSIKKyAgICBkZXNjcmlwdGlvbiA9ICJV
bmV4cGVjdGVkIHZhbHVlIGZvciBnbG9iYWwgbWV0YWRhdGEiCisKKworY2xhc3MgQnJva2VuR2xv
YmFsTWV0YWRhdGEoUnVsZSk6CisgICAgbmFtZSA9ICJCUk9LRU4tR0xPQkFMLU1FVEFEQVRBIgor
ICAgIGRlc2NyaXB0aW9uID0gIkludmFsaWQgZ2xvYmFsIG1ldGFkYXRhOiAlcyIKKworCitjbGFz
cyBVbmtub3duVGltZW91dE1ldGFkYXRhKFJ1bGUpOgorICAgIG5hbWUgPSAiVU5LTk9XTi1USU1F
T1VULU1FVEFEQVRBIgorICAgIGRlc2NyaXB0aW9uID0gIlVuZXhwZWN0ZWQgdmFsdWUgZm9yIHRp
bWVvdXQgbWV0YWRhdGEiCisKKworY2xhc3MgVW5rbm93bk1ldGFkYXRhKFJ1bGUpOgorICAgIG5h
bWUgPSAiVU5LTk9XTi1NRVRBREFUQSIKKyAgICBkZXNjcmlwdGlvbiA9ICJVbmV4cGVjdGVkIGtp
bmQgb2YgbWV0YWRhdGEiCisKKworY2xhc3MgU3RyYXlNZXRhZGF0YShSdWxlKToKKyAgICBuYW1l
ID0gIlNUUkFZLU1FVEFEQVRBIgorICAgIGRlc2NyaXB0aW9uID0gIk1ldGFkYXRhIGNvbW1lbnRz
IHNob3VsZCBzdGFydCB0aGUgZmlsZSIKKworCitjbGFzcyBJbmRlbnRlZE1ldGFkYXRhKFJ1bGUp
OgorICAgIG5hbWUgPSAiSU5ERU5URUQtTUVUQURBVEEiCisgICAgZGVzY3JpcHRpb24gPSAiTWV0
YWRhdGEgY29tbWVudHMgc2hvdWxkIHN0YXJ0IHRoZSBsaW5lIgorCisKK2NsYXNzIEJyb2tlbk1l
dGFkYXRhKFJ1bGUpOgorICAgIG5hbWUgPSAiQlJPS0VOLU1FVEFEQVRBIgorICAgIGRlc2NyaXB0
aW9uID0gIk1ldGFkYXRhIGNvbW1lbnQgaXMgbm90IGZvcm1hdHRlZCBjb3JyZWN0bHkiCisKKwor
Y2xhc3MgUmVnZXhwKHNpeC53aXRoX21ldGFjbGFzcyhhYmMuQUJDTWV0YSkpOgorICAgIEBhYmMu
YWJzdHJhY3Rwcm9wZXJ0eQorICAgIGRlZiBwYXR0ZXJuKHNlbGYpOgorICAgICAgICAjIHR5cGU6
ICgpIC0+IGJ5dGVzCisgICAgICAgIHBhc3MKKworICAgIEBhYmMuYWJzdHJhY3Rwcm9wZXJ0eQor
ICAgIGRlZiBuYW1lKHNlbGYpOgorICAgICAgICAjIHR5cGU6ICgpIC0+IFRleHQKKyAgICAgICAg
cGFzcworCisgICAgQGFiYy5hYnN0cmFjdHByb3BlcnR5CisgICAgZGVmIGRlc2NyaXB0aW9uKHNl
bGYpOgorICAgICAgICAjIHR5cGU6ICgpIC0+IFRleHQKKyAgICAgICAgcGFzcworCisgICAgZmls
ZV9leHRlbnNpb25zID0gTm9uZSAgIyB0eXBlOiBPcHRpb25hbFtMaXN0W1RleHRdXQorCisgICAg
ZGVmIF9faW5pdF9fKHNlbGYpOgorICAgICAgICAjIHR5cGU6ICgpIC0+IE5vbmUKKyAgICAgICAg
c2VsZi5fcmUgPSByZS5jb21waWxlKHNlbGYucGF0dGVybikgICMgdHlwZTogUGF0dGVybltieXRl
c10KKworICAgIGRlZiBhcHBsaWVzKHNlbGYsIHBhdGgpOgorICAgICAgICAjIHR5cGU6IChzdHIp
IC0+IGJvb2wKKyAgICAgICAgcmV0dXJuIChzZWxmLmZpbGVfZXh0ZW5zaW9ucyBpcyBOb25lIG9y
CisgICAgICAgICAgICAgICAgb3MucGF0aC5zcGxpdGV4dChwYXRoKVsxXSBpbiBzZWxmLmZpbGVf
ZXh0ZW5zaW9ucykKKworICAgIGRlZiBzZWFyY2goc2VsZiwgbGluZSk6CisgICAgICAgICMgdHlw
ZTogKGJ5dGVzKSAtPiBPcHRpb25hbFtNYXRjaFtieXRlc11dCisgICAgICAgIHJldHVybiBzZWxm
Ll9yZS5zZWFyY2gobGluZSkKKworCitjbGFzcyBUYWJzUmVnZXhwKFJlZ2V4cCk6CisgICAgcGF0
dGVybiA9IGIiXlx0IgorICAgIG5hbWUgPSAiSU5ERU5UIFRBQlMiCisgICAgZGVzY3JpcHRpb24g
PSAiVGVzdC1maWxlIGxpbmUgc3RhcnRzIHdpdGggb25lIG9yIG1vcmUgdGFiIGNoYXJhY3RlcnMi
CisgICAgdG9fZml4ID0gInVzZSBzcGFjZXMgdG8gcmVwbGFjZSBhbnkgdGFiIGNoYXJhY3RlcnMg
YXQgYmVnaW5uaW5nIG9mIGxpbmVzIgorCitjbGFzcyBDUlJlZ2V4cChSZWdleHApOgorICAgIHBh
dHRlcm4gPSBiIlxyJCIKKyAgICBuYW1lID0gIkNSIEFUIEVPTCIKKyAgICBkZXNjcmlwdGlvbiA9
ICJUZXN0LWZpbGUgbGluZSBlbmRzIHdpdGggQ1IgKFUrMDAwRCkgY2hhcmFjdGVyIgorICAgIHRv
X2ZpeCA9ICIiIgorICAgICAgICByZWZvcm1hdCBmaWxlIHNvIGVhY2ggbGluZSBqdXN0IGhhcyBM
RiAoVSswMDBBKSBsaW5lIGVuZGluZyAoc3RhbmRhcmQsCisgICAgICAgIGNyb3NzLXBsYXRmb3Jt
ICJVbml4IiBsaW5lIGVuZGluZ3MgaW5zdGVhZCBvZiwgZS5nLiwgRE9TIGxpbmUgZW5kaW5ncyku
CisgICAgIiIiCisKK2NsYXNzIFNldFRpbWVvdXRSZWdleHAoUmVnZXhwKToKKyAgICBwYXR0ZXJu
ID0gYnIic2V0VGltZW91dFxzKlwoIgorICAgIG5hbWUgPSAiU0VUIFRJTUVPVVQiCisgICAgZmls
ZV9leHRlbnNpb25zID0gWyIuaHRtbCIsICIuaHRtIiwgIi5qcyIsICIueGh0IiwgIi54aHRtbCIs
ICIuc3ZnIl0KKyAgICBkZXNjcmlwdGlvbiA9ICJzZXRUaW1lb3V0IHVzZWQiCisgICAgdG9fZml4
ID0gIiIiCisgICAgICAgIHJlcGxhY2UgYWxsIGBzZXRUaW1lb3V0KC4uLilgIGNhbGxzIHdpdGgg
YHN0ZXBfdGltZW91dCguLi4pYCBjYWxscworICAgICIiIgorCitjbGFzcyBXM0NUZXN0T3JnUmVn
ZXhwKFJlZ2V4cCk6CisgICAgcGF0dGVybiA9IGJyInczY1wtdGVzdFwub3JnIgorICAgIG5hbWUg
PSAiVzNDLVRFU1QuT1JHIgorICAgIGRlc2NyaXB0aW9uID0gIlRlc3QtZmlsZSBsaW5lIGhhcyB0
aGUgc3RyaW5nIGB3M2MtdGVzdC5vcmdgIgorICAgIHRvX2ZpeCA9ICIiIgorICAgICAgICBlaXRo
ZXIgcmVwbGFjZSB0aGUgYHczYy10ZXN0Lm9yZ2Agc3RyaW5nIHdpdGggdGhlIGV4cHJlc3Npb24K
KyAgICAgICAgYHt7aG9zdH19Ont7cG9ydHNbaHR0cF1bMF19fWAgb3IgYSBnZW5lcmljIGhvc3Ru
YW1lIGxpa2UgYGV4YW1wbGUub3JnYAorICAgICIiIgorCitjbGFzcyBXZWJQbGF0Zm9ybVRlc3RS
ZWdleHAoUmVnZXhwKToKKyAgICBwYXR0ZXJuID0gYnIid2ViXC1wbGF0Zm9ybVwudGVzdCIKKyAg
ICBuYW1lID0gIldFQi1QTEFURk9STS5URVNUIgorICAgIGRlc2NyaXB0aW9uID0gIkludGVybmFs
IHdlYi1wbGF0Zm9ybS50ZXN0IGRvbWFpbiB1c2VkIgorCitjbGFzcyBXZWJpZGwyUmVnZXhwKFJl
Z2V4cCk6CisgICAgcGF0dGVybiA9IGJyIndlYmlkbDJcLmpzIgorICAgIG5hbWUgPSAiV0VCSURM
Mi5KUyIKKyAgICBkZXNjcmlwdGlvbiA9ICJMZWdhY3kgd2ViaWRsMi5qcyBzY3JpcHQgdXNlZCIK
KworY2xhc3MgQ29uc29sZVJlZ2V4cChSZWdleHApOgorICAgIHBhdHRlcm4gPSBiciJjb25zb2xl
XC5bYS16QS1aXStccypcKCIKKyAgICBuYW1lID0gIkNPTlNPTEUiCisgICAgZmlsZV9leHRlbnNp
b25zID0gWyIuaHRtbCIsICIuaHRtIiwgIi5qcyIsICIueGh0IiwgIi54aHRtbCIsICIuc3ZnIl0K
KyAgICBkZXNjcmlwdGlvbiA9ICJUZXN0LWZpbGUgbGluZSBoYXMgYSBgY29uc29sZS4qKC4uLilg
IGNhbGwiCisgICAgdG9fZml4ID0gIiIiCisgICAgICAgIHJlbW92ZSB0aGUgYGNvbnNvbGUuKigu
Li4pYCBjYWxsIChhbmQgaW4gc29tZSBjYXNlcywgY29uc2lkZXIgYWRkaW5nIGFuCisgICAgICAg
IGBhc3NlcnRfKmAgb2Ygc29tZSBraW5kIGluIHBsYWNlIG9mIGl0KQorICAgICIiIgorCitjbGFz
cyBHZW5lcmF0ZVRlc3RzUmVnZXhwKFJlZ2V4cCk6CisgICAgcGF0dGVybiA9IGJyImdlbmVyYXRl
X3Rlc3RzXHMqXCgiCisgICAgbmFtZSA9ICJHRU5FUkFURV9URVNUUyIKKyAgICBmaWxlX2V4dGVu
c2lvbnMgPSBbIi5odG1sIiwgIi5odG0iLCAiLmpzIiwgIi54aHQiLCAiLnhodG1sIiwgIi5zdmci
XQorICAgIGRlc2NyaXB0aW9uID0gIlRlc3QgZmlsZSBsaW5lIGhhcyBhIGdlbmVyYXRlX3Rlc3Rz
IGNhbGwiCisgICAgdG9fZml4ID0gInJlbW92ZSB0aGUgY2FsbCBhbmQgY2FsbCBgdGVzdCgpYCBh
IG51bWJlciBvZiB0aW1lcyBpbnN0ZWFkIgorCitjbGFzcyBQcmludFJlZ2V4cChSZWdleHApOgor
ICAgIHBhdHRlcm4gPSBiciJwcmludCg/OlxzfFxzKlwoKSIKKyAgICBuYW1lID0gIlBSSU5UIFNU
QVRFTUVOVCIKKyAgICBmaWxlX2V4dGVuc2lvbnMgPSBbIi5weSJdCisgICAgZGVzY3JpcHRpb24g
PSBjb2xsYXBzZSgiIiIKKyAgICAgICAgQSBzZXJ2ZXItc2lkZSBweXRob24gc3VwcG9ydCBmaWxl
IGNvbnRhaW5zIGEgYHByaW50YCBzdGF0ZW1lbnQKKyAgICAiIiIpCisgICAgdG9fZml4ID0gIiIi
CisgICAgICAgIHJlbW92ZSB0aGUgYHByaW50YCBzdGF0ZW1lbnQgb3IgcmVwbGFjZSBpdCB3aXRo
IHNvbWV0aGluZyBlbHNlIHRoYXQKKyAgICAgICAgYWNoaWV2ZXMgdGhlIGludGVuZGVkIGVmZmVj
dCAoZS5nLiwgYSBsb2dnaW5nIGNhbGwpCisgICAgIiIiCisKK2NsYXNzIExheW91dFRlc3RzUmVn
ZXhwKFJlZ2V4cCk6CisgICAgcGF0dGVybiA9IGJyIihldmVudFNlbmRlcnx0ZXN0UnVubmVyfGlu
dGVybmFscylcLiIKKyAgICBuYW1lID0gIkxBWU9VVFRFU1RTIEFQSVMiCisgICAgZmlsZV9leHRl
bnNpb25zID0gWyIuaHRtbCIsICIuaHRtIiwgIi5qcyIsICIueGh0IiwgIi54aHRtbCIsICIuc3Zn
Il0KKyAgICBkZXNjcmlwdGlvbiA9ICJldmVudFNlbmRlci90ZXN0UnVubmVyL2ludGVybmFscyB1
c2VkOyB0aGVzZSBhcmUgTGF5b3V0VGVzdHMtc3BlY2lmaWMgQVBJcyAoV2ViS2l0L0JsaW5rKSIK
KworY2xhc3MgTWlzc2luZ0RlcHNSZWdleHAoUmVnZXhwKToKKyAgICBwYXR0ZXJuID0gYnIiW15c
d10vZ2VuLyIKKyAgICBuYW1lID0gIk1JU1NJTkcgREVQRU5ERU5DWSIKKyAgICBmaWxlX2V4dGVu
c2lvbnMgPSBbIi5odG1sIiwgIi5odG0iLCAiLmpzIiwgIi54aHQiLCAiLnhodG1sIiwgIi5zdmci
XQorICAgIGRlc2NyaXB0aW9uID0gIkNocm9taXVtLXNwZWNpZmljIGNvbnRlbnQgcmVmZXJlbmNl
ZCIKKyAgICB0b19maXggPSAiUmVpbXBsZW1lbnQgdGhlIHRlc3QgdG8gdXNlIHdlbGwtZG9jdW1l
bnRlZCB0ZXN0aW5nIGludGVyZmFjZXMiCisKK2NsYXNzIFNwZWNpYWxQb3dlcnNSZWdleHAoUmVn
ZXhwKToKKyAgICBwYXR0ZXJuID0gYiJTcGVjaWFsUG93ZXJzIgorICAgIG5hbWUgPSAiU1BFQ0lB
TFBPV0VSUyBBUEkiCisgICAgZmlsZV9leHRlbnNpb25zID0gWyIuaHRtbCIsICIuaHRtIiwgIi5q
cyIsICIueGh0IiwgIi54aHRtbCIsICIuc3ZnIl0KKyAgICBkZXNjcmlwdGlvbiA9ICJTcGVjaWFs
UG93ZXJzIHVzZWQ7IHRoaXMgaXMgZ2Vja28tc3BlY2lmaWMgYW5kIG5vdCBzdXBwb3J0ZWQgaW4g
d3B0IgorCitjbGFzcyBUcmFpbGluZ1doaXRlc3BhY2VSZWdleHAoUmVnZXhwKToKKyAgICBuYW1l
ID0gIlRSQUlMSU5HIFdISVRFU1BBQ0UiCisgICAgZGVzY3JpcHRpb24gPSAiV2hpdGVzcGFjZSBh
dCBFT0wiCisgICAgcGF0dGVybiA9IGIiWyBcdFxmXHZdJCIKKyAgICB0b19maXggPSAiIiJSZW1v
dmUgdHJhaWxpbmcgd2hpdGVzcGFjZSBmcm9tIGFsbCBsaW5lcyBpbiB0aGUgZmlsZS4iIiIKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvbGludC90ZXN0cy9kdW1teS9hYm91dF9ibGFuay5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9saW50L3Rlc3RzL2R1bW15L2Fib3V0X2Js
YW5rLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uOGY5NDBiNTQwZjliZDM4MjkyZWZlN2RmOGJkOTdiZGFmMzg2
M2FmYgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvbGludC90ZXN0cy9kdW1teS9hYm91dF9ibGFuay5odG1sCkBAIC0w
LDAgKzEgQEAKKzxsaW5rIHJlbD0ibWF0Y2giIGhyZWY9YWJvdXQ6Ymxhbms+CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2xpbnQv
dGVzdHMvZHVtbXkvcmVmL2Fib3V0X2JsYW5rLXJlZi5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9saW50L3Rlc3RzL2R1bW15L3JlZi9hYm91
dF9ibGFuay1yZWYuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOGY5NDBiNTQw
ZjliZDM4MjkyZWZlN2RmOGJkOTdiZGFmMzg2M2FmYi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL2xpbnQvdGVzdHMvZHVtbXkvcmVmL2Fib3V0X2JsYW5rLXJlZi5odG1s
CisrKyAvZGV2L251bGwKQEAgLTEgKzAsMCBAQAotPGxpbmsgcmVsPSJtYXRjaCIgaHJlZj1hYm91
dDpibGFuaz4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvbGludC90ZXN0cy9kdW1teS9yZWYvdzNjLWltcG9ydC5sb2cgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2xpbnQvdGVzdHMv
ZHVtbXkvcmVmL3czYy1pbXBvcnQubG9nCmluZGV4IDA4NTIzZTk3OWI1MzViY2FmNmFhN2YyNTky
YWE3MzlmYTlhYThhZDUuLmQ0NGRhNTlhOTJjYjY0YzI2YWRjZjNhODUzMzk3ZTczN2Q2MDU0NzYg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvbGludC90ZXN0cy9kdW1teS9yZWYvdzNjLWltcG9ydC5sb2cKKysrIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9saW50L3Rlc3RzL2R1bW15
L3JlZi93M2MtaW1wb3J0LmxvZwpAQCAtMTQsNyArMTQsNiBAQCBQcm9wZXJ0eSB2YWx1ZXMgcmVx
dWlyaW5nIHZlbmRvciBwcmVmaXhlczoKIE5vbmUKIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogTGlzdCBvZiBm
aWxlczoKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L2xpbnQvdGVzdHMvZHVtbXkvcmVmL2Fib3V0X2JsYW5rLXJlZi5odG1sCiAvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9saW50L3Rlc3RzL2R1bW15L3Jl
Zi9hYnNvbHV0ZS5odG1sCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy9saW50L3Rlc3RzL2R1bW15L3JlZi9leGlzdGVudF9yZWxhdGl2ZS1leHBlY3Rl
ZC5odG1sCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy9saW50L3Rlc3RzL2R1bW15L3JlZi9leGlzdGVudF9yZWxhdGl2ZS5odG1sCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2xpbnQv
dGVzdHMvZHVtbXkvdzNjLWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2xpbnQvdGVzdHMvZHVtbXkvdzNjLWltcG9ydC5sb2cKaW5k
ZXggZWVmZTMwZTYzMmJhYWJiYjM3YTUzM2IxNzgyNzRhN2Y4NTc4M2QwMC4uNDYwNTZlNjcxM2Zk
MzEzZGZlMjRiMWI4ODJjMjgzODljYmVjZmM5YyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9saW50L3Rlc3RzL2R1bW15L3czYy1p
bXBvcnQubG9nCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvbGludC90ZXN0cy9kdW1teS93M2MtaW1wb3J0LmxvZwpAQCAtMTQsNiArMTQsNyBA
QCBQcm9wZXJ0eSB2YWx1ZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKIE5vbmUKIC0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLQogTGlzdCBvZiBmaWxlczoKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2xpbnQvdGVzdHMvZHVtbXkvYWJvdXRfYmxhbmsuaHRtbAog
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvbGludC90
ZXN0cy9kdW1teS9icm9rZW4uaHRtbAogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvbGludC90ZXN0cy9kdW1teS9icm9rZW5faWdub3JlZC5odG1sCiAv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9saW50L3Rl
c3RzL2R1bW15L2RlcGVuZGVuY3kuaHRtbApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9saW50L3Rlc3RzL3Rlc3RfZmlsZV9saW50
cy5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
bGludC90ZXN0cy90ZXN0X2ZpbGVfbGludHMucHkKaW5kZXggMjhjY2FjYzg3ODdjNjFjMmE2Y2Yz
NDU1MmYxNzllZjg5MzM2MGZlZC4uODA5NGQ2ZDQwYTU0NjAyNDc3YTA1MjQ2ZmFmOWViYzA3MzRj
Yjk1ZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy9saW50L3Rlc3RzL3Rlc3RfZmlsZV9saW50cy5weQorKysgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2xpbnQvdGVzdHMvdGVzdF9m
aWxlX2xpbnRzLnB5CkBAIC01NCw3ICs1NCw3IEBAIGRlZiB0ZXN0X2luZGVudF90YWJzKCk6CiAg
ICAgZm9yIChmaWxlbmFtZSwgKGVycm9ycywga2luZCkpIGluIGVycm9yX21hcC5pdGVtcygpOgog
ICAgICAgICBjaGVja19lcnJvcnMoZXJyb3JzKQogCi0gICAgICAgIGV4cGVjdGVkID0gWygiSU5E
RU5UIFRBQlMiLCAiVGFicyB1c2VkIGZvciBpbmRlbnRhdGlvbiIsIGZpbGVuYW1lLCAyKV0KKyAg
ICAgICAgZXhwZWN0ZWQgPSBbKCJJTkRFTlQgVEFCUyIsICJUZXN0LWZpbGUgbGluZSBzdGFydHMg
d2l0aCBvbmUgb3IgbW9yZSB0YWIgY2hhcmFjdGVycyIsIGZpbGVuYW1lLCAyKV0KICAgICAgICAg
aWYga2luZCA9PSAid2ViLXN0cmljdCI6CiAgICAgICAgICAgICBleHBlY3RlZC5hcHBlbmQoKCJQ
QVJTRS1GQUlMRUQiLCAiVW5hYmxlIHRvIHBhcnNlIGZpbGUiLCBmaWxlbmFtZSwgTm9uZSkpCiAg
ICAgICAgIGFzc2VydCBlcnJvcnMgPT0gZXhwZWN0ZWQKQEAgLTY2LDcgKzY2LDcgQEAgZGVmIHRl
c3RfY3Jfbm90X2F0X2VvbCgpOgogICAgIGZvciAoZmlsZW5hbWUsIChlcnJvcnMsIGtpbmQpKSBp
biBlcnJvcl9tYXAuaXRlbXMoKToKICAgICAgICAgY2hlY2tfZXJyb3JzKGVycm9ycykKIAotICAg
ICAgICBleHBlY3RlZCA9IFsoIkNSIEFUIEVPTCIsICJDUiBjaGFyYWN0ZXIgaW4gbGluZSBzZXBh
cmF0b3IiLCBmaWxlbmFtZSwgMSldCisgICAgICAgIGV4cGVjdGVkID0gWygiQ1IgQVQgRU9MIiwg
IlRlc3QtZmlsZSBsaW5lIGVuZHMgd2l0aCBDUiAoVSswMDBEKSBjaGFyYWN0ZXIiLCBmaWxlbmFt
ZSwgMSldCiAgICAgICAgIGlmIGtpbmQgPT0gIndlYi1zdHJpY3QiOgogICAgICAgICAgICAgZXhw
ZWN0ZWQuYXBwZW5kKCgiUEFSU0UtRkFJTEVEIiwgIlVuYWJsZSB0byBwYXJzZSBmaWxlIiwgZmls
ZW5hbWUsIE5vbmUpKQogICAgICAgICBhc3NlcnQgZXJyb3JzID09IGV4cGVjdGVkCkBAIC03OSw4
ICs3OSw4IEBAIGRlZiB0ZXN0X2NyX2F0X2VvbCgpOgogICAgICAgICBjaGVja19lcnJvcnMoZXJy
b3JzKQogCiAgICAgICAgIGV4cGVjdGVkID0gWwotICAgICAgICAgICAgKCJDUiBBVCBFT0wiLCAi
Q1IgY2hhcmFjdGVyIGluIGxpbmUgc2VwYXJhdG9yIiwgZmlsZW5hbWUsIDEpLAotICAgICAgICAg
ICAgKCJDUiBBVCBFT0wiLCAiQ1IgY2hhcmFjdGVyIGluIGxpbmUgc2VwYXJhdG9yIiwgZmlsZW5h
bWUsIDIpLAorICAgICAgICAgICAgKCJDUiBBVCBFT0wiLCAiVGVzdC1maWxlIGxpbmUgZW5kcyB3
aXRoIENSIChVKzAwMEQpIGNoYXJhY3RlciIsIGZpbGVuYW1lLCAxKSwKKyAgICAgICAgICAgICgi
Q1IgQVQgRU9MIiwgIlRlc3QtZmlsZSBsaW5lIGVuZHMgd2l0aCBDUiAoVSswMDBEKSBjaGFyYWN0
ZXIiLCBmaWxlbmFtZSwgMiksCiAgICAgICAgIF0KICAgICAgICAgaWYga2luZCA9PSAid2ViLXN0
cmljdCI6CiAgICAgICAgICAgICBleHBlY3RlZC5hcHBlbmQoKCJQQVJTRS1GQUlMRUQiLCAiVW5h
YmxlIHRvIHBhcnNlIGZpbGUiLCBmaWxlbmFtZSwgTm9uZSkpCkBAIC05Myw3ICs5Myw3IEBAIGRl
ZiB0ZXN0X3czY190ZXN0X29yZygpOgogICAgIGZvciAoZmlsZW5hbWUsIChlcnJvcnMsIGtpbmQp
KSBpbiBlcnJvcl9tYXAuaXRlbXMoKToKICAgICAgICAgY2hlY2tfZXJyb3JzKGVycm9ycykKIAot
ICAgICAgICBleHBlY3RlZCA9IFsoIlczQy1URVNULk9SRyIsICJFeHRlcm5hbCB3M2MtdGVzdC5v
cmcgZG9tYWluIHVzZWQiLCBmaWxlbmFtZSwgMSldCisgICAgICAgIGV4cGVjdGVkID0gWygiVzND
LVRFU1QuT1JHIiwgIlRlc3QtZmlsZSBsaW5lIGhhcyB0aGUgc3RyaW5nIGB3M2MtdGVzdC5vcmdg
IiwgZmlsZW5hbWUsIDEpXQogICAgICAgICBpZiBraW5kID09ICJweXRob24iOgogICAgICAgICAg
ICAgZXhwZWN0ZWQuYXBwZW5kKCgiUEFSU0UtRkFJTEVEIiwgIlVuYWJsZSB0byBwYXJzZSBmaWxl
IiwgZmlsZW5hbWUsIDEpKQogICAgICAgICBlbGlmIGtpbmQgPT0gIndlYi1zdHJpY3QiOgpAQCAt
MTM2LDggKzEzNiw4IEBAIGRlZiB0ZXN0X2NvbnNvbGUoKToKIAogICAgICAgICBpZiBraW5kIGlu
IFsid2ViLWxheCIsICJ3ZWItc3RyaWN0IiwgImpzIl06CiAgICAgICAgICAgICBhc3NlcnQgZXJy
b3JzID09IFsKLSAgICAgICAgICAgICAgICAoIkNPTlNPTEUiLCAiQ29uc29sZSBsb2dnaW5nIEFQ
SSB1c2VkIiwgZmlsZW5hbWUsIDIpLAotICAgICAgICAgICAgICAgICgiQ09OU09MRSIsICJDb25z
b2xlIGxvZ2dpbmcgQVBJIHVzZWQiLCBmaWxlbmFtZSwgMyksCisgICAgICAgICAgICAgICAgKCJD
T05TT0xFIiwgIlRlc3QtZmlsZSBsaW5lIGhhcyBhIGBjb25zb2xlLiooLi4uKWAgY2FsbCIsIGZp
bGVuYW1lLCAyKSwKKyAgICAgICAgICAgICAgICAoIkNPTlNPTEUiLCAiVGVzdC1maWxlIGxpbmUg
aGFzIGEgYGNvbnNvbGUuKiguLi4pYCBjYWxsIiwgZmlsZW5hbWUsIDMpLAogICAgICAgICAgICAg
XQogICAgICAgICBlbHNlOgogICAgICAgICAgICAgYXNzZXJ0IGVycm9ycyA9PSBbKCJQQVJTRS1G
QUlMRUQiLCAiVW5hYmxlIHRvIHBhcnNlIGZpbGUiLCBmaWxlbmFtZSwgMSldCkBAIC0xNTMsNyAr
MTUzLDcgQEAgZGVmIHRlc3Rfc2V0VGltZW91dCgpOgogICAgICAgICAgICAgYXNzZXJ0IGVycm9y
cyA9PSBbKCJQQVJTRS1GQUlMRUQiLCAiVW5hYmxlIHRvIHBhcnNlIGZpbGUiLCBmaWxlbmFtZSwg
MSldCiAgICAgICAgIGVsc2U6CiAgICAgICAgICAgICBhc3NlcnQgZXJyb3JzID09IFsoJ1NFVCBU
SU1FT1VUJywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnc2V0VGltZW91dCB1c2Vk
OyBzdGVwX3RpbWVvdXQgc2hvdWxkIHR5cGljYWxseSBiZSB1c2VkIGluc3RlYWQnLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICdzZXRUaW1lb3V0IHVzZWQnLAogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGZpbGVuYW1lLAogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIDEpXQogCkBAIC0xNjgsNyArMTY4LDcgQEAgZGVmIHRlc3RfZXZlbnRTZW5kZXIoKToKICAg
ICAgICAgICAgIGFzc2VydCBlcnJvcnMgPT0gWygiUEFSU0UtRkFJTEVEIiwgIlVuYWJsZSB0byBw
YXJzZSBmaWxlIiwgZmlsZW5hbWUsIDEpXQogICAgICAgICBlbHNlOgogICAgICAgICAgICAgYXNz
ZXJ0IGVycm9ycyA9PSBbKCdMQVlPVVRURVNUUyBBUElTJywKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAnZXZlbnRTZW5kZXIvdGVzdFJ1bm5lci93aW5kb3cuaW50ZXJuYWxzIHVzZWQ7
IHRoZXNlIGFyZSBMYXlvdXRUZXN0cy1zcGVjaWZpYyBBUElzIChXZWJLaXQvQmxpbmspJywKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZXZlbnRTZW5kZXIvdGVzdFJ1bm5lci9pbnRl
cm5hbHMgdXNlZDsgdGhlc2UgYXJlIExheW91dFRlc3RzLXNwZWNpZmljIEFQSXMgKFdlYktpdC9C
bGluayknLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGVuYW1lLAogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIDEpXQogCkBAIC0xODMsMTIgKzE4MywxMiBAQCBkZWYg
dGVzdF90ZXN0UnVubmVyKCk6CiAgICAgICAgICAgICBhc3NlcnQgZXJyb3JzID09IFsoIlBBUlNF
LUZBSUxFRCIsICJVbmFibGUgdG8gcGFyc2UgZmlsZSIsIGZpbGVuYW1lLCAxKV0KICAgICAgICAg
ZWxzZToKICAgICAgICAgICAgIGFzc2VydCBlcnJvcnMgPT0gWygnTEFZT1VUVEVTVFMgQVBJUycs
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2V2ZW50U2VuZGVyL3Rlc3RSdW5uZXIv
d2luZG93LmludGVybmFscyB1c2VkOyB0aGVzZSBhcmUgTGF5b3V0VGVzdHMtc3BlY2lmaWMgQVBJ
cyAoV2ViS2l0L0JsaW5rKScsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2V2ZW50
U2VuZGVyL3Rlc3RSdW5uZXIvaW50ZXJuYWxzIHVzZWQ7IHRoZXNlIGFyZSBMYXlvdXRUZXN0cy1z
cGVjaWZpYyBBUElzIChXZWJLaXQvQmxpbmspJywKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBmaWxlbmFtZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxKV0KIAogCi1k
ZWYgdGVzdF93aW5kb3dEb3RJbnRlcm5hbHMoKToKK2RlZiB0ZXN0X2ludGVybmFscygpOgogICAg
IGVycm9yX21hcCA9IGNoZWNrX3dpdGhfZmlsZXMoYiI8c2NyaXB0PmlmICh3aW5kb3cuaW50ZXJu
YWxzKSB7IGludGVybmFscy5kb0FUaGluZygpOyB9PC9zY3JpcHQ+IikKIAogICAgIGZvciAoZmls
ZW5hbWUsIChlcnJvcnMsIGtpbmQpKSBpbiBlcnJvcl9tYXAuaXRlbXMoKToKQEAgLTE5OCwxMSAr
MTk4LDQxIEBAIGRlZiB0ZXN0X3dpbmRvd0RvdEludGVybmFscygpOgogICAgICAgICAgICAgYXNz
ZXJ0IGVycm9ycyA9PSBbKCJQQVJTRS1GQUlMRUQiLCAiVW5hYmxlIHRvIHBhcnNlIGZpbGUiLCBm
aWxlbmFtZSwgMSldCiAgICAgICAgIGVsc2U6CiAgICAgICAgICAgICBhc3NlcnQgZXJyb3JzID09
IFsoJ0xBWU9VVFRFU1RTIEFQSVMnLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdl
dmVudFNlbmRlci90ZXN0UnVubmVyL3dpbmRvdy5pbnRlcm5hbHMgdXNlZDsgdGhlc2UgYXJlIExh
eW91dFRlc3RzLXNwZWNpZmljIEFQSXMgKFdlYktpdC9CbGluayknLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICdldmVudFNlbmRlci90ZXN0UnVubmVyL2ludGVybmFscyB1c2VkOyB0
aGVzZSBhcmUgTGF5b3V0VGVzdHMtc3BlY2lmaWMgQVBJcyAoV2ViS2l0L0JsaW5rKScsCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsZW5hbWUsCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgMSldCiAKIAorZGVmIHRlc3RfbWlzc2luZ19kZXBzKCk6CisgICAgZXJyb3Jf
bWFwID0gY2hlY2tfd2l0aF9maWxlcyhiIjxzY3JpcHQgc3JjPScvZ2VuL2Zvby5qcyc+PC9zY3Jp
cHQ+IikKKworICAgIGZvciAoZmlsZW5hbWUsIChlcnJvcnMsIGtpbmQpKSBpbiBlcnJvcl9tYXAu
aXRlbXMoKToKKyAgICAgICAgY2hlY2tfZXJyb3JzKGVycm9ycykKKworICAgICAgICBpZiBraW5k
ID09ICJweXRob24iOgorICAgICAgICAgICAgYXNzZXJ0IGVycm9ycyA9PSBbKCJQQVJTRS1GQUlM
RUQiLCAiVW5hYmxlIHRvIHBhcnNlIGZpbGUiLCBmaWxlbmFtZSwgMSldCisgICAgICAgIGVsc2U6
CisgICAgICAgICAgICBhc3NlcnQgZXJyb3JzID09IFsoJ01JU1NJTkcgREVQRU5ERU5DWScsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ0Nocm9taXVtLXNwZWNpZmljIGNvbnRlbnQg
cmVmZXJlbmNlZCcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsZW5hbWUsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMSldCisKKworZGVmIHRlc3Rfbm9fbWlzc2lu
Z19kZXBzKCk6CisgICAgZXJyb3JfbWFwID0gY2hlY2tfd2l0aF9maWxlcyhiIiIiPGhlYWQ+Cis8
c2NyaXB0IHNyYz0nL2Zvby9nZW4vZm9vLmpzJz48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPScvZ2Vu
cy9mb28uanMnPjwvc2NyaXB0PgorPC9oZWFkPiIiIikKKworICAgIGZvciAoZmlsZW5hbWUsIChl
cnJvcnMsIGtpbmQpKSBpbiBlcnJvcl9tYXAuaXRlbXMoKToKKyAgICAgICAgY2hlY2tfZXJyb3Jz
KGVycm9ycykKKworICAgICAgICBpZiBraW5kID09ICJweXRob24iOgorICAgICAgICAgICAgYXNz
ZXJ0IGVycm9ycyA9PSBbKCJQQVJTRS1GQUlMRUQiLCAiVW5hYmxlIHRvIHBhcnNlIGZpbGUiLCBm
aWxlbmFtZSwgMSldCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBhc3NlcnQgZXJyb3JzID09
IFtdCisKKwogZGVmIHRlc3RfbWV0YV90aW1lb3V0KCk6CiAgICAgY29kZSA9IGIiIiIKIDxodG1s
IHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIj4KQEAgLTIxOSw4ICsyNDksMTQg
QEAgZGVmIHRlc3RfbWV0YV90aW1lb3V0KCk6CiAgICAgICAgIGlmIGtpbmQgaW4gWyJ3ZWItbGF4
IiwgIndlYi1zdHJpY3QiXToKICAgICAgICAgICAgIGFzc2VydCBlcnJvcnMgPT0gWwogICAgICAg
ICAgICAgICAgICgiTVVMVElQTEUtVElNRU9VVCIsICJNb3JlIHRoYW4gb25lIG1ldGEgbmFtZT0n
dGltZW91dCciLCBmaWxlbmFtZSwgTm9uZSksCi0gICAgICAgICAgICAgICAgKCJJTlZBTElELVRJ
TUVPVVQiLCAiSW52YWxpZCB0aW1lb3V0IHZhbHVlICIsIGZpbGVuYW1lLCBOb25lKSwKLSAgICAg
ICAgICAgICAgICAoIklOVkFMSUQtVElNRU9VVCIsICJJbnZhbGlkIHRpbWVvdXQgdmFsdWUgc2hv
cnQiLCBmaWxlbmFtZSwgTm9uZSksCisgICAgICAgICAgICAgICAgKCJJTlZBTElELVRJTUVPVVQi
LAorICAgICAgICAgICAgICAgICAgICAiVGVzdCBmaWxlIHdpdGggYDxtZXRhIG5hbWU9J3RpbWVv
dXQnLi4uPmAgZWxlbWVudCB0aGF0IGhhcyBhIGBjb250ZW50YCBhdHRyaWJ1dGUgd2hvc2UgdmFs
dWUgaXMgbm90IGBsb25nYDogIiwKKyAgICAgICAgICAgICAgICAgICAgZmlsZW5hbWUsCisgICAg
ICAgICAgICAgICAgICAgIE5vbmUpLAorICAgICAgICAgICAgICAgICgiSU5WQUxJRC1USU1FT1VU
IiwKKyAgICAgICAgICAgICAgICAgICAgIlRlc3QgZmlsZSB3aXRoIGA8bWV0YSBuYW1lPSd0aW1l
b3V0Jy4uLj5gIGVsZW1lbnQgdGhhdCBoYXMgYSBgY29udGVudGAgYXR0cmlidXRlIHdob3NlIHZh
bHVlIGlzIG5vdCBgbG9uZ2A6IHNob3J0IiwKKyAgICAgICAgICAgICAgICAgICAgZmlsZW5hbWUs
CisgICAgICAgICAgICAgICAgICAgIE5vbmUpLAogICAgICAgICAgICAgXQogICAgICAgICBlbGlm
IGtpbmQgPT0gInB5dGhvbiI6CiAgICAgICAgICAgICBhc3NlcnQgZXJyb3JzID09IFsKQEAgLTI0
Miw3ICsyNzgsMTIgQEAgZGVmIHRlc3RfZWFybHlfdGVzdGhhcm5lc3NyZXBvcnQoKToKIAogICAg
ICAgICBpZiBraW5kIGluIFsid2ViLWxheCIsICJ3ZWItc3RyaWN0Il06CiAgICAgICAgICAgICBh
c3NlcnQgZXJyb3JzID09IFsKLSAgICAgICAgICAgICAgICAoIkVBUkxZLVRFU1RIQVJORVNTUkVQ
T1JUIiwgInRlc3RoYXJuZXNzcmVwb3J0LmpzIHNjcmlwdCBzZWVuIGJlZm9yZSB0ZXN0aGFybmVz
cy5qcyBzY3JpcHQiLCBmaWxlbmFtZSwgTm9uZSksCisgICAgICAgICAgICAgICAgKCJFQVJMWS1U
RVNUSEFSTkVTU1JFUE9SVCIsCisgICAgICAgICAgICAgICAgICAgICJUZXN0IGZpbGUgaGFzIGFu
IGluc3RhbmNlIG9mICIKKyAgICAgICAgICAgICAgICAgICAgImA8c2NyaXB0IHNyYz0nL3Jlc291
cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyc+YCAiCisgICAgICAgICAgICAgICAgICAgICJwcmlv
ciB0byBgPHNjcmlwdCBzcmM9Jy9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMnPmAiLAorICAgICAg
ICAgICAgICAgICAgICBmaWxlbmFtZSwKKyAgICAgICAgICAgICAgICAgICAgTm9uZSksCiAgICAg
ICAgICAgICBdCiAgICAgICAgIGVsaWYga2luZCA9PSAicHl0aG9uIjoKICAgICAgICAgICAgIGFz
c2VydCBlcnJvcnMgPT0gWwpAQCAtMjY0LDggKzMwNSw4IEBAIGRlZiB0ZXN0X211bHRpcGxlX3Rl
c3RoYXJuZXNzKCk6CiAKICAgICAgICAgaWYga2luZCBpbiBbIndlYi1sYXgiLCAid2ViLXN0cmlj
dCJdOgogICAgICAgICAgICAgYXNzZXJ0IGVycm9ycyA9PSBbCi0gICAgICAgICAgICAgICAgKCJN
VUxUSVBMRS1URVNUSEFSTkVTUyIsICJNb3JlIHRoYW4gb25lIDxzY3JpcHQgc3JjPScvcmVzb3Vy
Y2VzL3Rlc3RoYXJuZXNzLmpzJz4iLCBmaWxlbmFtZSwgTm9uZSksCi0gICAgICAgICAgICAgICAg
KCJNSVNTSU5HLVRFU1RIQVJORVNTUkVQT1JUIiwgIk1pc3NpbmcgPHNjcmlwdCBzcmM9Jy9yZXNv
dXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMnPiIsIGZpbGVuYW1lLCBOb25lKSwKKyAgICAgICAg
ICAgICAgICAoIk1VTFRJUExFLVRFU1RIQVJORVNTIiwgIk1vcmUgdGhhbiBvbmUgYDxzY3JpcHQg
c3JjPScvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzJz5gIiwgZmlsZW5hbWUsIE5vbmUpLAorICAg
ICAgICAgICAgICAgICgiTUlTU0lORy1URVNUSEFSTkVTU1JFUE9SVCIsICJNaXNzaW5nIGA8c2Ny
aXB0IHNyYz0nL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyc+YCIsIGZpbGVuYW1lLCBO
b25lKSwKICAgICAgICAgICAgIF0KICAgICAgICAgZWxpZiBraW5kID09ICJweXRob24iOgogICAg
ICAgICAgICAgYXNzZXJ0IGVycm9ycyA9PSBbCkBAIC0yODgsNyArMzI5LDgwIEBAIGRlZiB0ZXN0
X211bHRpcGxlX3Rlc3RoYXJuZXNzcmVwb3J0KCk6CiAKICAgICAgICAgaWYga2luZCBpbiBbIndl
Yi1sYXgiLCAid2ViLXN0cmljdCJdOgogICAgICAgICAgICAgYXNzZXJ0IGVycm9ycyA9PSBbCi0g
ICAgICAgICAgICAgICAgKCJNVUxUSVBMRS1URVNUSEFSTkVTU1JFUE9SVCIsICJNb3JlIHRoYW4g
b25lIDxzY3JpcHQgc3JjPScvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzJz4iLCBmaWxl
bmFtZSwgTm9uZSksCisgICAgICAgICAgICAgICAgKCJNVUxUSVBMRS1URVNUSEFSTkVTU1JFUE9S
VCIsICJNb3JlIHRoYW4gb25lIGA8c2NyaXB0IHNyYz0nL3Jlc291cmNlcy90ZXN0aGFybmVzc3Jl
cG9ydC5qcyc+YCIsIGZpbGVuYW1lLCBOb25lKSwKKyAgICAgICAgICAgIF0KKyAgICAgICAgZWxp
ZiBraW5kID09ICJweXRob24iOgorICAgICAgICAgICAgYXNzZXJ0IGVycm9ycyA9PSBbCisgICAg
ICAgICAgICAgICAgKCJQQVJTRS1GQUlMRUQiLCAiVW5hYmxlIHRvIHBhcnNlIGZpbGUiLCBmaWxl
bmFtZSwgMiksCisgICAgICAgICAgICBdCisKKworZGVmIHRlc3RfbXVsdGlwbGVfdGVzdGRyaXZl
cigpOgorICAgIGNvZGUgPSBiIiIiCis8aHRtbCB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMTk5
OS94aHRtbCI+Cis8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3Jp
cHQ+Cis8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3Jp
cHQ+Cis8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0ZHJpdmVyLmpzIj48L3NjcmlwdD4KKzxz
Y3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3Rkcml2ZXIuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBz
cmM9Ii9yZXNvdXJjZXMvdGVzdGRyaXZlci12ZW5kb3IuanMiPjwvc2NyaXB0PgorPC9odG1sPgor
IiIiCisgICAgZXJyb3JfbWFwID0gY2hlY2tfd2l0aF9maWxlcyhjb2RlKQorCisgICAgZm9yIChm
aWxlbmFtZSwgKGVycm9ycywga2luZCkpIGluIGVycm9yX21hcC5pdGVtcygpOgorICAgICAgICBj
aGVja19lcnJvcnMoZXJyb3JzKQorCisgICAgICAgIGlmIGtpbmQgaW4gWyJ3ZWItbGF4IiwgIndl
Yi1zdHJpY3QiXToKKyAgICAgICAgICAgIGFzc2VydCBlcnJvcnMgPT0gWworICAgICAgICAgICAg
ICAgICgiTVVMVElQTEUtVEVTVERSSVZFUiIsICJNb3JlIHRoYW4gb25lIGA8c2NyaXB0IHNyYz0n
L3Jlc291cmNlcy90ZXN0ZHJpdmVyLmpzJz5gIiwgZmlsZW5hbWUsIE5vbmUpLAorICAgICAgICAg
ICAgXQorICAgICAgICBlbGlmIGtpbmQgPT0gInB5dGhvbiI6CisgICAgICAgICAgICBhc3NlcnQg
ZXJyb3JzID09IFsKKyAgICAgICAgICAgICAgICAoIlBBUlNFLUZBSUxFRCIsICJVbmFibGUgdG8g
cGFyc2UgZmlsZSIsIGZpbGVuYW1lLCAyKSwKKyAgICAgICAgICAgIF0KKworCitkZWYgdGVzdF9t
dWx0aXBsZV90ZXN0ZHJpdmVyX3ZlbmRvcigpOgorICAgIGNvZGUgPSBiIiIiCis8aHRtbCB4bWxu
cz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCI+Cis8c2NyaXB0IHNyYz0iL3Jlc291cmNl
cy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0
aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0
ZHJpdmVyLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3Rkcml2ZXIt
dmVuZG9yLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3Rkcml2ZXIt
dmVuZG9yLmpzIj48L3NjcmlwdD4KKzwvaHRtbD4KKyIiIgorICAgIGVycm9yX21hcCA9IGNoZWNr
X3dpdGhfZmlsZXMoY29kZSkKKworICAgIGZvciAoZmlsZW5hbWUsIChlcnJvcnMsIGtpbmQpKSBp
biBlcnJvcl9tYXAuaXRlbXMoKToKKyAgICAgICAgY2hlY2tfZXJyb3JzKGVycm9ycykKKworICAg
ICAgICBpZiBraW5kIGluIFsid2ViLWxheCIsICJ3ZWItc3RyaWN0Il06CisgICAgICAgICAgICBh
c3NlcnQgZXJyb3JzID09IFsKKyAgICAgICAgICAgICAgICAoIk1VTFRJUExFLVRFU1REUklWRVIt
VkVORE9SIiwgIk1vcmUgdGhhbiBvbmUgYDxzY3JpcHQgc3JjPScvcmVzb3VyY2VzL3Rlc3Rkcml2
ZXItdmVuZG9yLmpzJz5gIiwgZmlsZW5hbWUsIE5vbmUpLAorICAgICAgICAgICAgXQorICAgICAg
ICBlbGlmIGtpbmQgPT0gInB5dGhvbiI6CisgICAgICAgICAgICBhc3NlcnQgZXJyb3JzID09IFsK
KyAgICAgICAgICAgICAgICAoIlBBUlNFLUZBSUxFRCIsICJVbmFibGUgdG8gcGFyc2UgZmlsZSIs
IGZpbGVuYW1lLCAyKSwKKyAgICAgICAgICAgIF0KKworCitkZWYgdGVzdF9taXNzaW5nX3Rlc3Rk
cml2ZXJfdmVuZG9yKCk6CisgICAgY29kZSA9IGIiIiIKKzxodG1sIHhtbG5zPSJodHRwOi8vd3d3
LnczLm9yZy8xOTk5L3hodG1sIj4KKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNz
LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0
LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3Rkcml2ZXIuanMiPjwv
c2NyaXB0PgorPC9odG1sPgorIiIiCisgICAgZXJyb3JfbWFwID0gY2hlY2tfd2l0aF9maWxlcyhj
b2RlKQorCisgICAgZm9yIChmaWxlbmFtZSwgKGVycm9ycywga2luZCkpIGluIGVycm9yX21hcC5p
dGVtcygpOgorICAgICAgICBjaGVja19lcnJvcnMoZXJyb3JzKQorCisgICAgICAgIGlmIGtpbmQg
aW4gWyJ3ZWItbGF4IiwgIndlYi1zdHJpY3QiXToKKyAgICAgICAgICAgIGFzc2VydCBlcnJvcnMg
PT0gWworICAgICAgICAgICAgICAgICgiTUlTU0lORy1URVNURFJJVkVSLVZFTkRPUiIsICJNaXNz
aW5nIGA8c2NyaXB0IHNyYz0nL3Jlc291cmNlcy90ZXN0ZHJpdmVyLXZlbmRvci5qcyc+YCIsIGZp
bGVuYW1lLCBOb25lKSwKICAgICAgICAgICAgIF0KICAgICAgICAgZWxpZiBraW5kID09ICJweXRo
b24iOgogICAgICAgICAgICAgYXNzZXJ0IGVycm9ycyA9PSBbCkBAIC0zMzMsNyArNDQ3LDcgQEAg
ZGVmIHRlc3RfdGVzdGhhcm5lc3NfcGF0aCgpOgogICAgIGZvciAoZmlsZW5hbWUsIChlcnJvcnMs
IGtpbmQpKSBpbiBlcnJvcl9tYXAuaXRlbXMoKToKICAgICAgICAgY2hlY2tfZXJyb3JzKGVycm9y
cykKIAotICAgICAgICBleHBlY3RlZCA9IFsoIlczQy1URVNULk9SRyIsICJFeHRlcm5hbCB3M2Mt
dGVzdC5vcmcgZG9tYWluIHVzZWQiLCBmaWxlbmFtZSwgNSldCisgICAgICAgIGV4cGVjdGVkID0g
WygiVzNDLVRFU1QuT1JHIiwgIlRlc3QtZmlsZSBsaW5lIGhhcyB0aGUgc3RyaW5nIGB3M2MtdGVz
dC5vcmdgIiwgZmlsZW5hbWUsIDUpXQogICAgICAgICBpZiBraW5kID09ICJweXRob24iOgogICAg
ICAgICAgICAgZXhwZWN0ZWQuYXBwZW5kKCgiUEFSU0UtRkFJTEVEIiwgIlVuYWJsZSB0byBwYXJz
ZSBmaWxlIiwgZmlsZW5hbWUsIDEpKQogICAgICAgICBlbGlmIGtpbmQgaW4gWyJ3ZWItbGF4Iiwg
IndlYi1zdHJpY3QiXToKQEAgLTM2MCw3ICs0NzQsNyBAQCBkZWYgdGVzdF90ZXN0aGFybmVzc3Jl
cG9ydF9wYXRoKCk6CiAgICAgZm9yIChmaWxlbmFtZSwgKGVycm9ycywga2luZCkpIGluIGVycm9y
X21hcC5pdGVtcygpOgogICAgICAgICBjaGVja19lcnJvcnMoZXJyb3JzKQogCi0gICAgICAgIGV4
cGVjdGVkID0gWygiVzNDLVRFU1QuT1JHIiwgIkV4dGVybmFsIHczYy10ZXN0Lm9yZyBkb21haW4g
dXNlZCIsIGZpbGVuYW1lLCA1KV0KKyAgICAgICAgZXhwZWN0ZWQgPSBbKCJXM0MtVEVTVC5PUkci
LCAiVGVzdC1maWxlIGxpbmUgaGFzIHRoZSBzdHJpbmcgYHczYy10ZXN0Lm9yZ2AiLCBmaWxlbmFt
ZSwgNSldCiAgICAgICAgIGlmIGtpbmQgPT0gInB5dGhvbiI6CiAgICAgICAgICAgICBleHBlY3Rl
ZC5hcHBlbmQoKCJQQVJTRS1GQUlMRUQiLCAiVW5hYmxlIHRvIHBhcnNlIGZpbGUiLCBmaWxlbmFt
ZSwgMSkpCiAgICAgICAgIGVsaWYga2luZCBpbiBbIndlYi1sYXgiLCAid2ViLXN0cmljdCJdOgpA
QCAtMzczLDEyICs0ODcsODEgQEAgZGVmIHRlc3RfdGVzdGhhcm5lc3NyZXBvcnRfcGF0aCgpOgog
ICAgICAgICBhc3NlcnQgZXJyb3JzID09IGV4cGVjdGVkCiAKIAorZGVmIHRlc3RfdGVzdGRyaXZl
cl9wYXRoKCk6CisgICAgY29kZSA9IGIiIiJcCis8aHRtbCB4bWxucz0iaHR0cDovL3d3dy53My5v
cmcvMTk5OS94aHRtbCI+Cis8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+
PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+
PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0idGVzdGRyaXZlci5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0
IHNyYz0iL2Vsc2V3aGVyZS90ZXN0ZHJpdmVyLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIv
ZWxzZXdoZXJlL3Jlc291cmNlcy90ZXN0ZHJpdmVyLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3Jj
PSIvcmVzb3VyY2VzL2Vsc2V3aGVyZS90ZXN0ZHJpdmVyLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQg
c3JjPSIuLi9yZXNvdXJjZXMvdGVzdGRyaXZlci5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0i
L3Jlc291cmNlcy90ZXN0ZHJpdmVyLXZlbmRvci5qcyI+PC9zY3JpcHQ+Cis8L2h0bWw+CisiIiIK
KyAgICBlcnJvcl9tYXAgPSBjaGVja193aXRoX2ZpbGVzKGNvZGUpCisKKyAgICBmb3IgKGZpbGVu
YW1lLCAoZXJyb3JzLCBraW5kKSkgaW4gZXJyb3JfbWFwLml0ZW1zKCk6CisgICAgICAgIGNoZWNr
X2Vycm9ycyhlcnJvcnMpCisKKyAgICAgICAgZXhwZWN0ZWQgPSBbXQorICAgICAgICBpZiBraW5k
ID09ICJweXRob24iOgorICAgICAgICAgICAgZXhwZWN0ZWQuYXBwZW5kKCgiUEFSU0UtRkFJTEVE
IiwgIlVuYWJsZSB0byBwYXJzZSBmaWxlIiwgZmlsZW5hbWUsIDEpKQorICAgICAgICBlbGlmIGtp
bmQgaW4gWyJ3ZWItbGF4IiwgIndlYi1zdHJpY3QiXToKKyAgICAgICAgICAgIGV4cGVjdGVkLmV4
dGVuZChbCisgICAgICAgICAgICAgICAgKCJURVNURFJJVkVSLVBBVEgiLCAidGVzdGRyaXZlci5q
cyBzY3JpcHQgc2VlbiB3aXRoIGluY29ycmVjdCBwYXRoIiwgZmlsZW5hbWUsIE5vbmUpLAorICAg
ICAgICAgICAgICAgICgiVEVTVERSSVZFUi1QQVRIIiwgInRlc3Rkcml2ZXIuanMgc2NyaXB0IHNl
ZW4gd2l0aCBpbmNvcnJlY3QgcGF0aCIsIGZpbGVuYW1lLCBOb25lKSwKKyAgICAgICAgICAgICAg
ICAoIlRFU1REUklWRVItUEFUSCIsICJ0ZXN0ZHJpdmVyLmpzIHNjcmlwdCBzZWVuIHdpdGggaW5j
b3JyZWN0IHBhdGgiLCBmaWxlbmFtZSwgTm9uZSksCisgICAgICAgICAgICAgICAgKCJURVNURFJJ
VkVSLVBBVEgiLCAidGVzdGRyaXZlci5qcyBzY3JpcHQgc2VlbiB3aXRoIGluY29ycmVjdCBwYXRo
IiwgZmlsZW5hbWUsIE5vbmUpLAorICAgICAgICAgICAgICAgICgiVEVTVERSSVZFUi1QQVRIIiwg
InRlc3Rkcml2ZXIuanMgc2NyaXB0IHNlZW4gd2l0aCBpbmNvcnJlY3QgcGF0aCIsIGZpbGVuYW1l
LCBOb25lKQorICAgICAgICAgICAgXSkKKyAgICAgICAgYXNzZXJ0IGVycm9ycyA9PSBleHBlY3Rl
ZAorCisKK2RlZiB0ZXN0X3Rlc3Rkcml2ZXJfdmVuZG9yX3BhdGgoKToKKyAgICBjb2RlID0gYiIi
IlwKKzxodG1sIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIj4KKzxzY3JpcHQg
c3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIv
cmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIv
cmVzb3VyY2VzL3Rlc3Rkcml2ZXIuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InRlc3Rkcml2
ZXItdmVuZG9yLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIvZWxzZXdoZXJlL3Rlc3Rkcml2
ZXItdmVuZG9yLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIvZWxzZXdoZXJlL3Jlc291cmNl
cy90ZXN0ZHJpdmVyLXZlbmRvci5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iL3Jlc291cmNl
cy9lbHNld2hlcmUvdGVzdGRyaXZlci12ZW5kb3IuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9
Ii4uL3Jlc291cmNlcy90ZXN0ZHJpdmVyLXZlbmRvci5qcyI+PC9zY3JpcHQ+Cis8L2h0bWw+Cisi
IiIKKyAgICBlcnJvcl9tYXAgPSBjaGVja193aXRoX2ZpbGVzKGNvZGUpCisKKyAgICBmb3IgKGZp
bGVuYW1lLCAoZXJyb3JzLCBraW5kKSkgaW4gZXJyb3JfbWFwLml0ZW1zKCk6CisgICAgICAgIGNo
ZWNrX2Vycm9ycyhlcnJvcnMpCisKKyAgICAgICAgaWYga2luZCA9PSAicHl0aG9uIjoKKyAgICAg
ICAgICAgIGV4cGVjdGVkID0gc2V0KFsoIlBBUlNFLUZBSUxFRCIsICJVbmFibGUgdG8gcGFyc2Ug
ZmlsZSIsIGZpbGVuYW1lLCAxKV0pCisgICAgICAgIGVsaWYga2luZCBpbiBbIndlYi1sYXgiLCAi
d2ViLXN0cmljdCJdOgorICAgICAgICAgICAgZXhwZWN0ZWQgPSBzZXQoWworICAgICAgICAgICAg
ICAgICgiTUlTU0lORy1URVNURFJJVkVSLVZFTkRPUiIsICJNaXNzaW5nIGA8c2NyaXB0IHNyYz0n
L3Jlc291cmNlcy90ZXN0ZHJpdmVyLXZlbmRvci5qcyc+YCIsIGZpbGVuYW1lLCBOb25lKSwKKyAg
ICAgICAgICAgICAgICAoIlRFU1REUklWRVItVkVORE9SLVBBVEgiLCAidGVzdGRyaXZlci12ZW5k
b3IuanMgc2NyaXB0IHNlZW4gd2l0aCBpbmNvcnJlY3QgcGF0aCIsIGZpbGVuYW1lLCBOb25lKSwK
KyAgICAgICAgICAgICAgICAoIlRFU1REUklWRVItVkVORE9SLVBBVEgiLCAidGVzdGRyaXZlci12
ZW5kb3IuanMgc2NyaXB0IHNlZW4gd2l0aCBpbmNvcnJlY3QgcGF0aCIsIGZpbGVuYW1lLCBOb25l
KSwKKyAgICAgICAgICAgICAgICAoIlRFU1REUklWRVItVkVORE9SLVBBVEgiLCAidGVzdGRyaXZl
ci12ZW5kb3IuanMgc2NyaXB0IHNlZW4gd2l0aCBpbmNvcnJlY3QgcGF0aCIsIGZpbGVuYW1lLCBO
b25lKSwKKyAgICAgICAgICAgICAgICAoIlRFU1REUklWRVItVkVORE9SLVBBVEgiLCAidGVzdGRy
aXZlci12ZW5kb3IuanMgc2NyaXB0IHNlZW4gd2l0aCBpbmNvcnJlY3QgcGF0aCIsIGZpbGVuYW1l
LCBOb25lKSwKKyAgICAgICAgICAgICAgICAoIlRFU1REUklWRVItVkVORE9SLVBBVEgiLCAidGVz
dGRyaXZlci12ZW5kb3IuanMgc2NyaXB0IHNlZW4gd2l0aCBpbmNvcnJlY3QgcGF0aCIsIGZpbGVu
YW1lLCBOb25lKQorICAgICAgICAgICAgXSkKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIGV4
cGVjdGVkID0gc2V0KCkKKworICAgICAgICBhc3NlcnQgc2V0KGVycm9ycykgPT0gZXhwZWN0ZWQK
KworCiBkZWYgdGVzdF9ub3RfdGVzdGhhcm5lc3NfcGF0aCgpOgogICAgIGNvZGUgPSBiIiIiXAog
PGh0bWwgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiPgogPHNjcmlwdCBzcmM9
Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9Ii9yZXNv
dXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9InJlc291
cmNlcy93ZWJwZXJmdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii9yZXNv
dXJjZXMvdGVzdGRyaXZlci5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90
ZXN0ZHJpdmVyLXZlbmRvci5qcyI+PC9zY3JpcHQ+CiA8L2h0bWw+CiAiIiIKICAgICBlcnJvcl9t
YXAgPSBjaGVja193aXRoX2ZpbGVzKGNvZGUpCkBAIC0zOTQsNiArNTc3LDg1IEBAIGRlZiB0ZXN0
X25vdF90ZXN0aGFybmVzc19wYXRoKCk6CiAgICAgICAgICAgICBhc3NlcnQgZXJyb3JzID09IFtd
CiAKIAorZGVmIHRlc3RfdmFyaWFudF9taXNzaW5nKCk6CisgICAgY29kZSA9IGIiIiJcCis8aHRt
bCB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCI+Cis8bWV0YSBuYW1lPSJ2YXJp
YW50Ij4KKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4K
KzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4K
KzwvaHRtbD4KKyIiIgorICAgIGVycm9yX21hcCA9IGNoZWNrX3dpdGhfZmlsZXMoY29kZSkKKwor
ICAgIGZvciAoZmlsZW5hbWUsIChlcnJvcnMsIGtpbmQpKSBpbiBlcnJvcl9tYXAuaXRlbXMoKToK
KyAgICAgICAgY2hlY2tfZXJyb3JzKGVycm9ycykKKworICAgICAgICBpZiBraW5kID09ICJweXRo
b24iOgorICAgICAgICAgICAgYXNzZXJ0IGVycm9ycyA9PSBbCisgICAgICAgICAgICAgICAgKCJQ
QVJTRS1GQUlMRUQiLCAiVW5hYmxlIHRvIHBhcnNlIGZpbGUiLCBmaWxlbmFtZSwgMSksCisgICAg
ICAgICAgICBdCisgICAgICAgIGVsaWYga2luZCA9PSAid2ViLWxheCI6CisgICAgICAgICAgICBh
c3NlcnQgZXJyb3JzID09IFsKKyAgICAgICAgICAgICAgICAoIlZBUklBTlQtTUlTU0lORyIsCisg
ICAgICAgICAgICAgICAgICAgICJUZXN0IGZpbGUgd2l0aCBhIGA8bWV0YSBuYW1lPSd2YXJpYW50
Jy4uLj5gIGVsZW1lbnQgdGhhdCdzIG1pc3NpbmcgYSBgY29udGVudGAgYXR0cmlidXRlIiwKKyAg
ICAgICAgICAgICAgICAgICAgZmlsZW5hbWUsCisgICAgICAgICAgICAgICAgICAgIE5vbmUpCisg
ICAgICAgICAgICBdCisKKworIyBBIGNvcnJlc3BvbmRpbmcgInBvc2l0aXZlIiB0ZXN0IGNhbm5v
dCBiZSB3cml0dGVuIGJlY2F1c2UgdGhlIG1hbmlmZXN0CisjIFNvdXJjZUZpbGUgaW1wbGVtZW50
YXRpb24gcmFpc2VzIGEgcnVudGltZSBleGNlcHRpb24gZm9yIHRoZSBjb25kaXRpb24gdGhpcwor
IyBsaW50aW5nIHJ1bGUgZGVzY3JpYmVzCitAcHl0ZXN0Lm1hcmsucGFyYW1ldHJpemUoImNvbnRl
bnQiLCBbIiIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIj8iCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiMiXSkKK2RlZiB0ZXN0X3ZhcmlhbnRf
bWFsZm9ybWVkX25lZ2F0aXZlKGNvbnRlbnQpOgorICAgIGNvZGUgPSAiIiJcCis8aHRtbCB4bWxu
cz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCI+Cis8bWV0YSBuYW1lPSJ2YXJpYW50IiBj
b250ZW50PSJ7fSI+Cis8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9z
Y3JpcHQ+Cis8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9z
Y3JpcHQ+Cis8L2h0bWw+CisiIiIuZm9ybWF0KGNvbnRlbnQpLmVuY29kZSgidXRmLTgiKQorICAg
IGVycm9yX21hcCA9IGNoZWNrX3dpdGhfZmlsZXMoY29kZSkKKworICAgIGZvciAoZmlsZW5hbWUs
IChlcnJvcnMsIGtpbmQpKSBpbiBlcnJvcl9tYXAuaXRlbXMoKToKKyAgICAgICAgY2hlY2tfZXJy
b3JzKGVycm9ycykKKworICAgICAgICBpZiBraW5kID09ICJweXRob24iOgorICAgICAgICAgICAg
YXNzZXJ0IGVycm9ycyA9PSBbCisgICAgICAgICAgICAgICAgKCJQQVJTRS1GQUlMRUQiLCAiVW5h
YmxlIHRvIHBhcnNlIGZpbGUiLCBmaWxlbmFtZSwgMSksCisgICAgICAgICAgICBdCisgICAgICAg
IGVsaWYga2luZCA9PSAid2ViLWxheCI6CisgICAgICAgICAgICBhc3NlcnQgZXJyb3JzID09IFtd
CisKKworZGVmIHRlc3RfbGF0ZV90aW1lb3V0KCk6CisgICAgY29kZSA9IGIiIiJcCis8aHRtbCB4
bWxucz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCI+Cis8c2NyaXB0IHNyYz0iL3Jlc291
cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8bWV0YSBuYW1lPSJ0aW1lb3V0IiBjb250
ZW50PSJsb25nIj4KKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0Lmpz
Ij48L3NjcmlwdD4KKzwvaHRtbD4KKyIiIgorICAgIGVycm9yX21hcCA9IGNoZWNrX3dpdGhfZmls
ZXMoY29kZSkKKworICAgIGZvciAoZmlsZW5hbWUsIChlcnJvcnMsIGtpbmQpKSBpbiBlcnJvcl9t
YXAuaXRlbXMoKToKKyAgICAgICAgY2hlY2tfZXJyb3JzKGVycm9ycykKKworICAgICAgICBpZiBr
aW5kID09ICJweXRob24iOgorICAgICAgICAgICAgYXNzZXJ0IGVycm9ycyA9PSBbCisgICAgICAg
ICAgICAgICAgKCJQQVJTRS1GQUlMRUQiLCAiVW5hYmxlIHRvIHBhcnNlIGZpbGUiLCBmaWxlbmFt
ZSwgMSksCisgICAgICAgICAgICBdCisgICAgICAgIGVsaWYga2luZCA9PSAid2ViLWxheCI6Cisg
ICAgICAgICAgICBhc3NlcnQgZXJyb3JzID09IFsKKyAgICAgICAgICAgICAgICAoIkxBVEUtVElN
RU9VVCIsCisgICAgICAgICAgICAgICAgICAgICJUZXN0IGZpbGUgd2l0aCBgPG1ldGEgbmFtZT0n
dGltZW91dCcuLi4+YCBlbGVtZW50IGFmdGVyIGA8c2NyaXB0IHNyYz0nL3Jlc291cmNlcy90ZXN0
aGFybmVzc3JlcG9ydC5qcyc+YCBlbGVtZW50IiwKKyAgICAgICAgICAgICAgICAgICAgZmlsZW5h
bWUsCisgICAgICAgICAgICAgICAgICAgIE5vbmUpCisgICAgICAgICAgICBdCisKKwogQHB5dGVz
dC5tYXJrLnNraXBpZihzaXguUFkzLCByZWFzb249IkNhbm5vdCBwYXJzZSBwcmludCBzdGF0ZW1l
bnRzIGZyb20gcHl0aG9uIDMiKQogZGVmIHRlc3RfcHJpbnRfc3RhdGVtZW50KCk6CiAgICAgZXJy
b3JfbWFwID0gY2hlY2tfd2l0aF9maWxlcyhiImRlZiBmb28oKTpcbiAgcHJpbnQgJ3N0YXRlbWVu
dCdcbiAgcHJpbnRcbiIpCkBAIC00MDMsOCArNjY1LDggQEAgZGVmIHRlc3RfcHJpbnRfc3RhdGVt
ZW50KCk6CiAKICAgICAgICAgaWYga2luZCA9PSAicHl0aG9uIjoKICAgICAgICAgICAgIGFzc2Vy
dCBlcnJvcnMgPT0gWwotICAgICAgICAgICAgICAgICgiUFJJTlQgU1RBVEVNRU5UIiwgIlByaW50
IGZ1bmN0aW9uIHVzZWQiLCBmaWxlbmFtZSwgMiksCi0gICAgICAgICAgICAgICAgKCJQUklOVCBT
VEFURU1FTlQiLCAiUHJpbnQgZnVuY3Rpb24gdXNlZCIsIGZpbGVuYW1lLCAzKSwKKyAgICAgICAg
ICAgICAgICAoIlBSSU5UIFNUQVRFTUVOVCIsICJBIHNlcnZlci1zaWRlIHB5dGhvbiBzdXBwb3J0
IGZpbGUgY29udGFpbnMgYSBgcHJpbnRgIHN0YXRlbWVudCIsIGZpbGVuYW1lLCAyKSwKKyAgICAg
ICAgICAgICAgICAoIlBSSU5UIFNUQVRFTUVOVCIsICJBIHNlcnZlci1zaWRlIHB5dGhvbiBzdXBw
b3J0IGZpbGUgY29udGFpbnMgYSBgcHJpbnRgIHN0YXRlbWVudCIsIGZpbGVuYW1lLCAzKSwKICAg
ICAgICAgICAgIF0KICAgICAgICAgZWxpZiBraW5kID09ICJ3ZWItc3RyaWN0IjoKICAgICAgICAg
ICAgIGFzc2VydCBlcnJvcnMgPT0gWwpAQCAtNDIyLDcgKzY4NCw3IEBAIGRlZiB0ZXN0X3ByaW50
X2Z1bmN0aW9uKCk6CiAKICAgICAgICAgaWYga2luZCA9PSAicHl0aG9uIjoKICAgICAgICAgICAg
IGFzc2VydCBlcnJvcnMgPT0gWwotICAgICAgICAgICAgICAgICgiUFJJTlQgU1RBVEVNRU5UIiwg
IlByaW50IGZ1bmN0aW9uIHVzZWQiLCBmaWxlbmFtZSwgMiksCisgICAgICAgICAgICAgICAgKCJQ
UklOVCBTVEFURU1FTlQiLCAiQSBzZXJ2ZXItc2lkZSBweXRob24gc3VwcG9ydCBmaWxlIGNvbnRh
aW5zIGEgYHByaW50YCBzdGF0ZW1lbnQiLCBmaWxlbmFtZSwgMiksCiAgICAgICAgICAgICBdCiAg
ICAgICAgIGVsaWYga2luZCA9PSAid2ViLXN0cmljdCI6CiAgICAgICAgICAgICBhc3NlcnQgZXJy
b3JzID09IFsKQEAgLTQzMiw2ICs2OTQsNDUgQEAgZGVmIHRlc3RfcHJpbnRfZnVuY3Rpb24oKToK
ICAgICAgICAgICAgIGFzc2VydCBlcnJvcnMgPT0gW10KIAogCitkZWYgdGVzdF9haGVtX3N5c3Rl
bV9mb250KCk6CisgICAgY29kZSA9IGIiIiJcCis8aHRtbD4KKzxzdHlsZT4KK2JvZHkgeworICBm
b250LWZhbWlseTogYUhFbSwgc2Fucy1zZXJpZjsKK30KKzwvc3R5bGU+Cis8L2h0bWw+CisiIiIK
KyAgICBlcnJvcl9tYXAgPSBjaGVja193aXRoX2ZpbGVzKGNvZGUpCisgICAgZm9yIChmaWxlbmFt
ZSwgKGVycm9ycywga2luZCkpIGluIGVycm9yX21hcC5pdGVtcygpOgorICAgICAgICBjaGVja19l
cnJvcnMoZXJyb3JzKQorCisgICAgICAgIGlmIGZpbGVuYW1lLmVuZHN3aXRoKCgiLmh0bSIsICIu
aHRtbCIsICIueGh0IiwgIi54aHRtbCIpKToKKyAgICAgICAgICAgIGFzc2VydCBlcnJvcnMgPT0g
WworICAgICAgICAgICAgICAgICgiQUhFTSBTWVNURU0gRk9OVCIsICJEb24ndCB1c2UgQWhlbSBh
cyBhIHN5c3RlbSBmb250LCB1c2UgL2ZvbnRzL2FoZW0uY3NzIiwgZmlsZW5hbWUsIE5vbmUpCisg
ICAgICAgICAgICBdCisKKworZGVmIHRlc3RfYWhlbV93ZWJfZm9udCgpOgorICAgIGNvZGUgPSBi
IiIiXAorPGh0bWw+Cis8bGluayByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIiBocmVm
PSIvZm9udHMvYWhlbS5jc3MiIC8+Cis8c3R5bGU+Citib2R5IHsKKyAgZm9udC1mYW1pbHk6IGFI
RW0sIHNhbnMtc2VyaWY7Cit9Cis8L3N0eWxlPgorPC9odG1sPgorIiIiCisgICAgZXJyb3JfbWFw
ID0gY2hlY2tfd2l0aF9maWxlcyhjb2RlKQorICAgIGZvciAoZmlsZW5hbWUsIChlcnJvcnMsIGtp
bmQpKSBpbiBlcnJvcl9tYXAuaXRlbXMoKToKKyAgICAgICAgY2hlY2tfZXJyb3JzKGVycm9ycykK
KworICAgICAgICBpZiBmaWxlbmFtZS5lbmRzd2l0aCgoIi5odG0iLCAiLmh0bWwiLCAiLnhodCIs
ICIueGh0bWwiKSk6CisgICAgICAgICAgICBhc3NlcnQgZXJyb3JzID09IFtdCisKKwogb3Blbl9t
b2RlX2NvZGUgPSAiIiIKIGRlZiBmaXJzdCgpOgogICAgIHJldHVybiB7MH0oInRlc3QucG5nIikK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvbGludC90ZXN0cy90ZXN0X2xpbnQucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2xpbnQvdGVzdHMvdGVzdF9saW50LnB5CmluZGV4IDFm
YzBjN2E3MTVjY2I2NzVlZjU1NWU2ZDg5OWIzYTg1YTkzYmJmNDAuLmFmMmI3ZDNkNGFhMTlmMGMx
ZDcyYTU1NzViNTAxM2M3ODk3ZTFkYzQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvbGludC90ZXN0cy90ZXN0X2xpbnQucHkKKysr
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9saW50
L3Rlc3RzL3Rlc3RfbGludC5weQpAQCAtMjEzLDEyICsyMTMsMTEgQEAgZGVmIHRlc3RfcmVmX2Fi
c29sdXRlX3VybChjYXBsb2cpOgogCiAKIGRlZiB0ZXN0X2Fib3V0X2JsYW5rX2FzX3JlZihjYXBs
b2cpOgotICAgIHdpdGggX21vY2tfbGludCgiY2hlY2tfcGF0aCIpIGFzIG1vY2tlZF9jaGVja19w
YXRoOgorICAgIHdpdGggX21vY2tfbGludCgiY2hlY2tfcGF0aCIpOgogICAgICAgICB3aXRoIF9t
b2NrX2xpbnQoImNoZWNrX2ZpbGVfY29udGVudHMiKSBhcyBtb2NrZWRfY2hlY2tfZmlsZV9jb250
ZW50czoKLSAgICAgICAgICAgIHJ2ID0gbGludChfZHVtbXlfcmVwbywgWyJhYm91dF9ibGFuay1y
ZWYuaHRtbCJdLCAibm9ybWFsIikKKyAgICAgICAgICAgIHJ2ID0gbGludChfZHVtbXlfcmVwbywg
WyJhYm91dF9ibGFuay5odG1sIl0sICJub3JtYWwiKQogICAgICAgICAgICAgYXNzZXJ0IHJ2ID09
IDAKLSAgICAgICAgICAgIGFzc2VydCBub3QgbW9ja2VkX2NoZWNrX3BhdGguY2FsbGVkCi0gICAg
ICAgICAgICBhc3NlcnQgbm90IG1vY2tlZF9jaGVja19maWxlX2NvbnRlbnRzLmNhbGxlZAorICAg
ICAgICAgICAgYXNzZXJ0IG1vY2tlZF9jaGVja19maWxlX2NvbnRlbnRzLmNhbGxfY291bnQgPT0g
MQogICAgIGFzc2VydCBjYXBsb2cudGV4dCA9PSAiIgogCiAKQEAgLTM5OSwxNSArMzk4LDM4IEBA
IGRlZiB0ZXN0X2NoZWNrX2Nzc19nbG9iYWxseV91bmlxdWVfaWdub3JlZF9kaXIoY2FwbG9nKToK
ICAgICBhc3NlcnQgY2FwbG9nLnRleHQgPT0gIiIKIAogCitkZWYgdGVzdF9pZ25vcmVfZ2xvYihj
YXBsb2cpOgorICAgICMgTGludCB0d28gZmlsZXMgaW4gdGhlIHJlZi8gZGlyZWN0b3J5LCBhbmQg
cGFzcyBpbiBpZ25vcmVfZ2xvYiB0byBvbWl0IG9uZQorICAgICMgb2YgdGhlbS4KKyAgICAjIFdo
ZW4gd2Ugb21pdCBhYnNvbHV0ZS5odG1sLCBubyBsaW50IGVycm9ycyBhcHBlYXIgc2luY2UgdGhl
IG90aGVyIGZpbGUgaXMKKyAgICAjIGNsZWFuLgorICAgIHdpdGggX21vY2tfbGludCgiY2hlY2tf
cGF0aCIpIGFzIG1vY2tlZF9jaGVja19wYXRoOgorICAgICAgICB3aXRoIF9tb2NrX2xpbnQoImNo
ZWNrX2ZpbGVfY29udGVudHMiKSBhcyBtb2NrZWRfY2hlY2tfZmlsZV9jb250ZW50czoKKyAgICAg
ICAgICAgIHJ2ID0gbGludChfZHVtbXlfcmVwbywgWyJyZWYvYWJzb2x1dGUuaHRtbCIsICJyZWYv
ZXhpc3RlbnRfcmVsYXRpdmUuaHRtbCJdLCAibm9ybWFsIiwgIipzb2x1KiIpCisgICAgICAgICAg
ICBhc3NlcnQgcnYgPT0gMAorICAgICAgICAgICAgIyBBbHNvIGNvbmZpcm0gdGhhdCBvbmx5IG9u
ZSBmaWxlIGlzIGNoZWNrZWQKKyAgICAgICAgICAgIGFzc2VydCBtb2NrZWRfY2hlY2tfcGF0aC5j
YWxsX2NvdW50ID09IDEKKyAgICAgICAgICAgIGFzc2VydCBtb2NrZWRfY2hlY2tfZmlsZV9jb250
ZW50cy5jYWxsX2NvdW50ID09IDEKKyAgICAgICAgICAgIGFzc2VydCBjYXBsb2cudGV4dCA9PSAi
IgorICAgICMgSG93ZXZlciwgbGludGluZyB0aGUgc2FtZSB0d28gZmlsZXMgd2l0aG91dCBpZ25v
cmVfZ2xvYiB5aWVsZHMgbGludCBlcnJvcnMuCisgICAgd2l0aCBfbW9ja19saW50KCJjaGVja19w
YXRoIikgYXMgbW9ja2VkX2NoZWNrX3BhdGg6CisgICAgICAgIHdpdGggX21vY2tfbGludCgiY2hl
Y2tfZmlsZV9jb250ZW50cyIpIGFzIG1vY2tlZF9jaGVja19maWxlX2NvbnRlbnRzOgorICAgICAg
ICAgICAgcnYgPSBsaW50KF9kdW1teV9yZXBvLCBbInJlZi9hYnNvbHV0ZS5odG1sIiwgInJlZi9l
eGlzdGVudF9yZWxhdGl2ZS5odG1sIl0sICJub3JtYWwiKQorICAgICAgICAgICAgYXNzZXJ0IHJ2
ID09IDEKKyAgICAgICAgICAgIGFzc2VydCBtb2NrZWRfY2hlY2tfcGF0aC5jYWxsX2NvdW50ID09
IDIKKyAgICAgICAgICAgIGFzc2VydCBtb2NrZWRfY2hlY2tfZmlsZV9jb250ZW50cy5jYWxsX2Nv
dW50ID09IDIKKyAgICAgICAgICAgIGFzc2VydCAiQUJTT0xVVEUtVVJMLVJFRiIgaW4gY2FwbG9n
LnRleHQKKworCiBkZWYgdGVzdF9hbGxfZmlsZXN5c3RlbV9wYXRocygpOgogICAgIHdpdGggbW9j
ay5wYXRjaCgKLSAgICAgICAgICAgICdvcy53YWxrJywKLSAgICAgICAgICAgIHJldHVybl92YWx1
ZT1bKCcuJywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIFsnZGlyX2EnLCAnZGlyX2InXSwK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgIFsnZmlsZV9hJywgJ2ZpbGVfYiddKSwKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgKG9zLnBhdGguam9pbignLicsICdkaXJfYScpLAorICAgICAg
ICAgICAgJ3Rvb2xzLmxpbnQubGludC53YWxrJywKKyAgICAgICAgICAgIHJldHVybl92YWx1ZT1b
KCcnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgWygnZGlyX2EnLCBOb25lKSwgKCdkaXJf
YicsIE5vbmUpXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIFsoJ2ZpbGVfYScsIE5vbmUp
LCAoJ2ZpbGVfYicsIE5vbmUpXSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICgnZGlyX2En
LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgW10sCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICBbJ2ZpbGVfYycsICdmaWxlX2QnXSldCisgICAgICAgICAgICAgICAgICAgICAgICAgICBb
KCdmaWxlX2MnLCBOb25lKSwgKCdmaWxlX2QnLCBOb25lKV0pXQogICAgICk6CiAgICAgICAgIGdv
dCA9IGxpc3QobGludF9tb2QuYWxsX2ZpbGVzeXN0ZW1fcGF0aHMoJy4nKSkKICAgICAgICAgYXNz
ZXJ0IGdvdCA9PSBbJ2ZpbGVfYScsCkBAIC00MTYsNiArNDM4LDIzIEBAIGRlZiB0ZXN0X2FsbF9m
aWxlc3lzdGVtX3BhdGhzKCk6CiAgICAgICAgICAgICAgICAgICAgICAgIG9zLnBhdGguam9pbign
ZGlyX2EnLCAnZmlsZV9kJyldCiAKIAorZGVmIHRlc3RfZmlsZXN5c3RlbV9wYXRoc19zdWJkaXIo
KToKKyAgICB3aXRoIG1vY2sucGF0Y2goCisgICAgICAgICAgICAndG9vbHMubGludC5saW50Lndh
bGsnLAorICAgICAgICAgICAgcmV0dXJuX3ZhbHVlPVsoJycsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICBbKCdkaXJfYScsIE5vbmUpLCAoJ2Rpcl9iJywgTm9uZSldLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgWygnZmlsZV9hJywgTm9uZSksICgnZmlsZV9iJywgTm9uZSldKSwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgKCdkaXJfYScsCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICBbXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIFsoJ2ZpbGVfYycsIE5vbmUpLCAo
J2ZpbGVfZCcsIE5vbmUpXSldCisgICAgKToKKyAgICAgICAgZ290ID0gbGlzdChsaW50X21vZC5h
bGxfZmlsZXN5c3RlbV9wYXRocygnLicsICdkaXInKSkKKyAgICAgICAgYXNzZXJ0IGdvdCA9PSBb
b3MucGF0aC5qb2luKCdkaXInLCAnZmlsZV9hJyksCisgICAgICAgICAgICAgICAgICAgICAgIG9z
LnBhdGguam9pbignZGlyJywgJ2ZpbGVfYicpLAorICAgICAgICAgICAgICAgICAgICAgICBvcy5w
YXRoLmpvaW4oJ2RpcicsICdkaXJfYScsICdmaWxlX2MnKSwKKyAgICAgICAgICAgICAgICAgICAg
ICAgb3MucGF0aC5qb2luKCdkaXInLCAnZGlyX2EnLCAnZmlsZV9kJyldCisKKwogZGVmIHRlc3Rf
bWFpbl93aXRoX2FyZ3MoKToKICAgICBvcmlnX2FyZ3YgPSBzeXMuYXJndgogICAgIHRyeToKQEAg
LTQyNyw3ICs0NjYsOCBAQCBkZWYgdGVzdF9tYWluX3dpdGhfYXJncygpOgogICAgICAgICAgICAg
ICAgIG0uYXNzZXJ0X2NhbGxlZF9vbmNlX3dpdGgocmVwb19yb290LAogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgW29zLnBhdGgucmVscGF0aChvcy5wYXRoLmpvaW4o
b3MuZ2V0Y3dkKCksIHgpLCByZXBvX3Jvb3QpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgZm9yIHggaW4gWydhJywgJ2InLCAnYyddXSwKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICJub3JtYWwiKQorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIm5vcm1hbCIsCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBzdHIoKSkKICAgICBmaW5hbGx5OgogICAgICAgICBzeXMuYXJn
diA9IG9yaWdfYXJndgogCkBAIC00MzksNyArNDc5LDcgQEAgZGVmIHRlc3RfbWFpbl9ub19hcmdz
KCk6CiAgICAgICAgIHdpdGggX21vY2tfbGludCgnbGludCcsIHJldHVybl92YWx1ZT1UcnVlKSBh
cyBtOgogICAgICAgICAgICAgd2l0aCBfbW9ja19saW50KCdjaGFuZ2VkX2ZpbGVzJywgcmV0dXJu
X3ZhbHVlPVsnZm9vJywgJ2JhciddKToKICAgICAgICAgICAgICAgICBsaW50X21vZC5tYWluKCoq
dmFycyhjcmVhdGVfcGFyc2VyKCkucGFyc2VfYXJncygpKSkKLSAgICAgICAgICAgICAgICBtLmFz
c2VydF9jYWxsZWRfb25jZV93aXRoKHJlcG9fcm9vdCwgWydmb28nLCAnYmFyJ10sICJub3JtYWwi
KQorICAgICAgICAgICAgICAgIG0uYXNzZXJ0X2NhbGxlZF9vbmNlX3dpdGgocmVwb19yb290LCBb
J2ZvbycsICdiYXInXSwgIm5vcm1hbCIsIHN0cigpKQogICAgIGZpbmFsbHk6CiAgICAgICAgIHN5
cy5hcmd2ID0gb3JpZ19hcmd2CiAKQEAgLTQ1MSw2ICs0OTEsNiBAQCBkZWYgdGVzdF9tYWluX2Fs
bCgpOgogICAgICAgICB3aXRoIF9tb2NrX2xpbnQoJ2xpbnQnLCByZXR1cm5fdmFsdWU9VHJ1ZSkg
YXMgbToKICAgICAgICAgICAgIHdpdGggX21vY2tfbGludCgnYWxsX2ZpbGVzeXN0ZW1fcGF0aHMn
LCByZXR1cm5fdmFsdWU9Wydmb28nLCAnYmFyJ10pOgogICAgICAgICAgICAgICAgIGxpbnRfbW9k
Lm1haW4oKip2YXJzKGNyZWF0ZV9wYXJzZXIoKS5wYXJzZV9hcmdzKCkpKQotICAgICAgICAgICAg
ICAgIG0uYXNzZXJ0X2NhbGxlZF9vbmNlX3dpdGgocmVwb19yb290LCBbJ2ZvbycsICdiYXInXSwg
Im5vcm1hbCIpCisgICAgICAgICAgICAgICAgbS5hc3NlcnRfY2FsbGVkX29uY2Vfd2l0aChyZXBv
X3Jvb3QsIFsnZm9vJywgJ2JhciddLCAibm9ybWFsIiwgc3RyKCkpCiAgICAgZmluYWxseToKICAg
ICAgICAgc3lzLmFyZ3YgPSBvcmlnX2FyZ3YKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvbGludC90ZXN0cy90ZXN0X3BhdGhfbGlu
dHMucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L2xpbnQvdGVzdHMvdGVzdF9wYXRoX2xpbnRzLnB5CmluZGV4IGJmODQxOGQ1MmEwMmUxYTIyYjgz
ZmJiMTVjMGI0Njg5Njk1NDZkYzYuLjU1OGIwZWQ0ZjY0OGY0MWU3ODg4ZDMzYjA0Yzk3YmNlNzIw
Y2E1ZGEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvbGludC90ZXN0cy90ZXN0X3BhdGhfbGludHMucHkKKysrIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9saW50L3Rlc3RzL3Rlc3Rf
cGF0aF9saW50cy5weQpAQCAtMSw1ICsxLDggQEAKIGZyb20gX19mdXR1cmVfXyBpbXBvcnQgdW5p
Y29kZV9saXRlcmFscwogCitpbXBvcnQgbW9jaworaW1wb3J0IG9zCisKIGZyb20gLi5saW50IGlt
cG9ydCBjaGVja19wYXRoCiBmcm9tIC5iYXNlIGltcG9ydCBjaGVja19lcnJvcnMKIGltcG9ydCBw
eXRlc3QKQEAgLTMwLDcgKzMzLDcgQEAgZGVmIHRlc3RfZm9yYmlkZGVuX3BhdGhfbGVuZ3RoKCk6
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIi5h
bnkud29ya2VyLmh0bWwiLCAiLmFueS5qcyIpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgKCIuYW55Lmh0bWwiLCAiLmFueS5qcyIpXSkKIGRlZiB0
ZXN0X2ZvcmJpZGRlbl9wYXRoX2VuZGluZ3MocGF0aF9lbmRpbmcsIGdlbmVyYXRlZCk6Ci0gICAg
cGF0aCA9ICIvdGVzdC90ZXN0IiArIHBhdGhfZW5kaW5nCisgICAgcGF0aCA9ICJ0ZXN0L3Rlc3Qi
ICsgcGF0aF9lbmRpbmcKIAogICAgIG1lc3NhZ2UgPSAoInBhdGggZW5kcyB3aXRoICVzIHdoaWNo
IGNvbGxpZGVzIHdpdGggZ2VuZXJhdGVkIHRlc3RzIGZyb20gJXMgZmlsZXMiICUKICAgICAgICAg
ICAgICAgIChwYXRoX2VuZGluZywgZ2VuZXJhdGVkKSkKQEAgLTM4LDMgKzQxLDc2IEBAIGRlZiB0
ZXN0X2ZvcmJpZGRlbl9wYXRoX2VuZGluZ3MocGF0aF9lbmRpbmcsIGdlbmVyYXRlZCk6CiAgICAg
ZXJyb3JzID0gY2hlY2tfcGF0aCgiL2Zvby8iLCBwYXRoKQogICAgIGNoZWNrX2Vycm9ycyhlcnJv
cnMpCiAgICAgYXNzZXJ0IGVycm9ycyA9PSBbKCJXT1JLRVIgQ09MTElTSU9OIiwgbWVzc2FnZSwg
cGF0aCwgTm9uZSldCisKKworZGVmIHRlc3RfZmlsZV90eXBlKCk6CisgICAgcGF0aCA9ICJ0ZXN0
L3Rlc3QiCisKKyAgICBtZXNzYWdlID0gIi8lcyBpcyBhbiB1bnN1cHBvcnRlZCBmaWxlIHR5cGUg
KHN5bWxpbmspIiAlIChwYXRoLCkKKworICAgIHdpdGggbW9jay5wYXRjaCgib3MucGF0aC5pc2xp
bmsiLCByZXR1cm52YWx1ZT1UcnVlKToKKyAgICAgICAgZXJyb3JzID0gY2hlY2tfcGF0aCgiL2Zv
by8iLCBwYXRoKQorCisgICAgYXNzZXJ0IGVycm9ycyA9PSBbKCJGSUxFIFRZUEUiLCBtZXNzYWdl
LCBwYXRoLCBOb25lKV0KKworCitAcHl0ZXN0Lm1hcmsucGFyYW1ldHJpemUoInBhdGgiLCBbImFo
ZW0udHRmIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiQWhlbS50dGYiLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJhaGVtLnRUZiIsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIm5vdC1haGVtLnR0ZiIsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgInN1cHBvcnQvYWhlbS50dGYiLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICJhaGVtL290aGVyLnR0ZiJdKQorZGVmIHRlc3RfYWhlbV9jb3B5KHBh
dGgpOgorICAgIGV4cGVjdGVkX2Vycm9yID0gKCJBSEVNIENPUFkiLAorICAgICAgICAgICAgICAg
ICAgICAgICJEb24ndCBhZGQgZXh0cmEgY29waWVzIG9mIEFoZW0sIHVzZSAvZm9udHMvQWhlbS50
dGYiLAorICAgICAgICAgICAgICAgICAgICAgIHBhdGgsCisgICAgICAgICAgICAgICAgICAgICAg
Tm9uZSkKKworICAgIGVycm9ycyA9IGNoZWNrX3BhdGgoIi9mb28vIiwgcGF0aCkKKworICAgIGFz
c2VydCBlcnJvcnMgPT0gW2V4cGVjdGVkX2Vycm9yXQorCitAcHl0ZXN0Lm1hcmsucGFyYW1ldHJp
emUoInBhdGgiLCBbImFoZW0ud29mZiIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgImFoZW0udHRmZiIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInN1cHBv
cnQvYWhlbS53b2ZmIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiYWhlbS9v
dGhlci53b2ZmIl0pCitkZWYgdGVzdF9haGVtX2NvcHlfbmVnYXRpdmUocGF0aCk6CisgICAgZXJy
b3JzID0gY2hlY2tfcGF0aCgiL2Zvby8iLCBwYXRoKQorCisgICAgYXNzZXJ0IGVycm9ycyA9PSBb
XQorCitAcHl0ZXN0Lm1hcmsucGFyYW1ldHJpemUoInBhdGgiLCBbImVsc2V3aGVyZS8uZ2l0aWdu
b3JlIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiZWxzZS93aGVyZS8uZ2l0
aWdub3JlIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJlbHNld2hlcmUvdG9v
bHMvLmdpdGlnbm9yZSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImVsc2V3
aGVyZS9kb2NzLy5naXRpZ25vcmUiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICJlbHNld2hlcmUvcmVzb3VyY2VzL3dlYmlkbDIvLmdpdGlnbm9yZSIsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgImVsc2V3aGVyZS9jc3MvdG9vbHMvYXBpY2xpZW50Ly5naXRp
Z25vcmUiXSkKK2RlZiB0ZXN0X2dpdGlnbm9yZV9maWxlKHBhdGgpOgorICAgIHBhdGggPSBvcy5w
YXRoLmpvaW4oKnBhdGguc3BsaXQoIi8iKSkKKworICAgIGV4cGVjdGVkX2Vycm9yID0gKCJHSVRJ
R05PUkUiLAorICAgICAgICAgICAgICAgICAgICAgICIuZ2l0aWdub3JlIGZvdW5kIG91dHNpZGUg
dGhlIHJvb3QiLAorICAgICAgICAgICAgICAgICAgICAgIHBhdGgsCisgICAgICAgICAgICAgICAg
ICAgICAgTm9uZSkKKworICAgIGVycm9ycyA9IGNoZWNrX3BhdGgoIi9mb28vIiwgcGF0aCkKKwor
ICAgIGFzc2VydCBlcnJvcnMgPT0gW2V4cGVjdGVkX2Vycm9yXQorCitAcHl0ZXN0Lm1hcmsucGFy
YW1ldHJpemUoInBhdGgiLCBbIi5naXRpZ25vcmUiLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICJlbHNld2hlcmUvLmdpdGlnbm9yZXMiLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICJlbHNld2hlcmUvbmFtZS5naXRpZ25vcmUiLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICJ0b29scy8uZ2l0aWdub3JlIiwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAidG9vbHMvZWxzZXdoZXJlLy5naXRpZ25vcmUiLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICJkb2NzLy5naXRpZ25vcmUiCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgImRvY3MvZWxzZXdoZXJlLy5naXRpZ25vcmUiLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICJyZXNvdXJjZXMvd2ViaWRsMi8uZ2l0aWdub3Jl
IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAicmVzb3VyY2VzL3dlYmlkbDIv
ZWxzZXdoZXJlLy5naXRpZ25vcmUiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICJjc3MvdG9vbHMvYXBpY2xpZW50Ly5naXRpZ25vcmUiLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICJjc3MvdG9vbHMvYXBpY2xpZW50L2Vsc2V3aGVyZS8uZ2l0aWdub3JlIl0p
CitkZWYgdGVzdF9naXRpZ25vcmVfbmVnYXRpdmUocGF0aCk6CisgICAgcGF0aCA9IG9zLnBhdGgu
am9pbigqcGF0aC5zcGxpdCgiLyIpKQorCisgICAgZXJyb3JzID0gY2hlY2tfcGF0aCgiL2Zvby8i
LCBwYXRoKQorCisgICAgYXNzZXJ0IGVycm9ycyA9PSBbXQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9saW50L3czYy1pbXBvcnQu
bG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9s
aW50L3czYy1pbXBvcnQubG9nCmluZGV4IDA0OTQzNjQyNjRlYmRkZGZmMTNhZDUzNWNmOTAyNDll
ODM1MDc0ZjEuLjdlMzNhODQ1YTkyOTg1MzBiYjlkNzY4MDE2NDY4NGFiYWIyMjNkNDIgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
bGludC93M2MtaW1wb3J0LmxvZworKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL2xpbnQvdzNjLWltcG9ydC5sb2cKQEAgLTIxLDMgKzIxLDUgQEAg
TGlzdCBvZiBmaWxlczoKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL2xpbnQvZm5tYXRjaC5weWMKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL2xpbnQvbGludC5weQogL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvbGludC9saW50LnB5YworL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvbGludC9ydWxlcy5weQorL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvbGludC9ydWxl
cy5weWMKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvbWFuaWZlc3QvWE1MUGFyc2VyLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9tYW5pZmVzdC9YTUxQYXJzZXIucHkKaW5kZXgg
NTIzZjU0NGI3YzRlODM0Yjg1ZDk3MGEzNTJhYWIyOGQzYzg0NjE0NS4uNmY1ZmY0ZDM1ZGFiNjc5
NTk5YjExNTVjNmJiYjMzNGIyZjA3ZjdiMSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9tYW5pZmVzdC9YTUxQYXJzZXIucHkKKysr
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9tYW5p
ZmVzdC9YTUxQYXJzZXIucHkKQEAgLTEsMjAgKzEsMzIgQEAKK2ltcG9ydCBzeXMKIGZyb20gb3Mu
cGF0aCBpbXBvcnQgZGlybmFtZSwgam9pbgogCiBmcm9tIGNvbGxlY3Rpb25zIGltcG9ydCBPcmRl
cmVkRGljdAogCiBmcm9tIHhtbC5wYXJzZXJzIGltcG9ydCBleHBhdAotaW1wb3J0IHhtbC5ldHJl
ZS5FbGVtZW50VHJlZSBhcyBldHJlZQoraW1wb3J0IHhtbC5ldHJlZS5FbGVtZW50VHJlZSBhcyBl
dHJlZSAgIyBub3FhOiBOODEzCisKK01ZUFkgPSBGYWxzZQoraWYgTVlQWToKKyAgICAjIE1ZUFkg
aXMgc2V0IHRvIFRydWUgd2hlbiBydW4gdW5kZXIgTXlweS4KKyAgICBmcm9tIHR5cGluZyBpbXBv
cnQgRGljdAorICAgIGZyb20gdHlwaW5nIGltcG9ydCBMaXN0CisgICAgZnJvbSB0eXBpbmcgaW1w
b3J0IE9wdGlvbmFsCisgICAgZnJvbSB0eXBpbmcgaW1wb3J0IFRleHQKKyAgICBmcm9tIHR5cGlu
ZyBpbXBvcnQgVW5pb24KIAogX2NhdGFsb2cgPSBqb2luKGRpcm5hbWUoX19maWxlX18pLCAiY2F0
YWxvZyIpCiAKIGRlZiBfd3JhcF9lcnJvcihlKToKKyAgICAjIHR5cGU6IChleHBhdC5lcnJvcikg
LT4gZXRyZWUuUGFyc2VFcnJvcgogICAgIGVyciA9IGV0cmVlLlBhcnNlRXJyb3IoZSkKICAgICBl
cnIuY29kZSA9IGUuY29kZQogICAgIGVyci5wb3NpdGlvbiA9IGUubGluZW5vLCBlLm9mZnNldAog
ICAgIHJhaXNlIGVycgogCi1fbmFtZXMgPSB7fQorX25hbWVzID0ge30gICMgdHlwZTogRGljdFtz
dHIsIHN0cl0KIGRlZiBfZml4bmFtZShrZXkpOgorICAgICMgdHlwZTogKHN0cikgLT4gc3RyCiAg
ICAgdHJ5OgogICAgICAgICBuYW1lID0gX25hbWVzW2tleV0KICAgICBleGNlcHQgS2V5RXJyb3I6
CkBAIC0yNSw2ICszNywxMyBAQCBkZWYgX2ZpeG5hbWUoa2V5KToKICAgICByZXR1cm4gbmFtZQog
CiAKK2lmIHN5cy52ZXJzaW9uX2luZm9bMDoyXSA+PSAoMywgMik6CisgICAgX3VuZGVmaW5lZF9l
bnRpdHlfY29kZSA9IGV4cGF0LmVycm9ycy5jb2Rlc1tleHBhdC5lcnJvcnMuWE1MX0VSUk9SX1VO
REVGSU5FRF9FTlRJVFldICAjIHR5cGU6IGludAorZWxzZToKKyAgICBfY29kZXMgPSB7ZXhwYXQu
RXJyb3JTdHJpbmcoaSk6IGkgZm9yIGkgaW4gcmFuZ2UoMHgxMDApfSAgIyB0eXBlOiBEaWN0W3N0
ciwgaW50XQorICAgIF91bmRlZmluZWRfZW50aXR5X2NvZGUgPSBfY29kZXNbZXhwYXQuZXJyb3Jz
LlhNTF9FUlJPUl9VTkRFRklORURfRU5USVRZXQorCisKIGNsYXNzIFhNTFBhcnNlcihvYmplY3Qp
OgogICAgICIiIgogICAgIEFuIFhNTCBwYXJzZXIgd2l0aCBzdXBwb3J0IGZvciBYSFRNTCBEVERz
IGFuZCBhbGwgUHl0aG9uLXN1cHBvcnRlZCBlbmNvZGluZ3MKQEAgLTM1LDExICs1NCwxMiBAQCBj
bGFzcyBYTUxQYXJzZXIob2JqZWN0KToKICAgICBQeXRob24gZG9lcywgcmF0aGVyIHRoYW4ganVz
dCB0aG9zZSBzdXBwb3J0ZWQgYnkgZXhwYXQuCiAgICAgIiIiCiAgICAgZGVmIF9faW5pdF9fKHNl
bGYsIGVuY29kaW5nPU5vbmUpOgorICAgICAgICAjIHR5cGU6IChPcHRpb25hbFtzdHJdKSAtPiBO
b25lCiAgICAgICAgIHNlbGYuX3BhcnNlciA9IGV4cGF0LlBhcnNlckNyZWF0ZShlbmNvZGluZywg
In0iKQogICAgICAgICBzZWxmLl90YXJnZXQgPSBldHJlZS5UcmVlQnVpbGRlcigpCiAgICAgICAg
ICMgcGFyc2VyIHNldHRpbmdzCi0gICAgICAgIHNlbGYuX3BhcnNlci5idWZmZXJfdGV4dCA9IDEK
LSAgICAgICAgc2VsZi5fcGFyc2VyLm9yZGVyZWRfYXR0cmlidXRlcyA9IDEKKyAgICAgICAgc2Vs
Zi5fcGFyc2VyLmJ1ZmZlcl90ZXh0ID0gVHJ1ZQorICAgICAgICBzZWxmLl9wYXJzZXIub3JkZXJl
ZF9hdHRyaWJ1dGVzID0gVHJ1ZQogICAgICAgICBzZWxmLl9wYXJzZXIuU2V0UGFyYW1FbnRpdHlQ
YXJzaW5nKGV4cGF0LlhNTF9QQVJBTV9FTlRJVFlfUEFSU0lOR19VTkxFU1NfU1RBTkRBTE9ORSkK
ICAgICAgICAgIyBwYXJzZXIgY2FsbGJhY2tzCiAgICAgICAgIHNlbGYuX3BhcnNlci5YbWxEZWNs
SGFuZGxlciA9IHNlbGYuX3htbF9kZWNsCkBAIC00NywzMCArNjcsMzUgQEAgY2xhc3MgWE1MUGFy
c2VyKG9iamVjdCk6CiAgICAgICAgIHNlbGYuX3BhcnNlci5FbmRFbGVtZW50SGFuZGxlciA9IHNl
bGYuX2VuZAogICAgICAgICBzZWxmLl9wYXJzZXIuQ2hhcmFjdGVyRGF0YUhhbmRsZXIgPSBzZWxm
Ll9kYXRhCiAgICAgICAgIHNlbGYuX3BhcnNlci5FeHRlcm5hbEVudGl0eVJlZkhhbmRsZXIgPSBz
ZWxmLl9leHRlcm5hbAotICAgICAgICBzZWxmLl9wYXJzZXIuU2tpcHBlZEVudGl0eUhhbmRsZXIg
PSBzZWxmLl9za2lwcGVkCisgICAgICAgIHNlbGYuX3BhcnNlci5Ta2lwcGVkRW50aXR5SGFuZGxl
ciA9IHNlbGYuX3NraXBwZWQgICMgdHlwZTogaWdub3JlCiAgICAgICAgICMgdXNlZCBmb3Igb3Vy
IGhvcnJpYmxlIHJlLWVuY29kaW5nIGhhY2sKLSAgICAgICAgc2VsZi5fZmVkX2RhdGEgPSBbXQot
ICAgICAgICBzZWxmLl9yZWFkX2VuY29kaW5nID0gTm9uZQorICAgICAgICBzZWxmLl9mZWRfZGF0
YSA9IFtdICAjIHR5cGU6IE9wdGlvbmFsW0xpc3RbYnl0ZXNdXQorICAgICAgICBzZWxmLl9yZWFk
X2VuY29kaW5nID0gTm9uZSAgIyB0eXBlOiBPcHRpb25hbFtzdHJdCiAKICAgICBkZWYgX3htbF9k
ZWNsKHNlbGYsIHZlcnNpb24sIGVuY29kaW5nLCBzdGFuZGFsb25lKToKKyAgICAgICAgIyB0eXBl
OiAoc3RyLCBPcHRpb25hbFtzdHJdLCBpbnQpIC0+IE5vbmUKICAgICAgICAgc2VsZi5fcmVhZF9l
bmNvZGluZyA9IGVuY29kaW5nCiAKICAgICBkZWYgX3N0YXJ0KHNlbGYsIHRhZywgYXR0cmliX2lu
KToKKyAgICAgICAgIyB0eXBlOiAoc3RyLCBMaXN0W3N0cl0pIC0+IGV0cmVlLkVsZW1lbnQKICAg
ICAgICAgc2VsZi5fZmVkX2RhdGEgPSBOb25lCiAgICAgICAgIHRhZyA9IF9maXhuYW1lKHRhZykK
LSAgICAgICAgYXR0cmliID0gT3JkZXJlZERpY3QoKQorICAgICAgICBhdHRyaWIgPSBPcmRlcmVk
RGljdCgpICAjIHR5cGU6IERpY3RbVW5pb25bc3RyLCBUZXh0XSwgVW5pb25bc3RyLCBUZXh0XV0K
ICAgICAgICAgaWYgYXR0cmliX2luOgogICAgICAgICAgICAgZm9yIGkgaW4gcmFuZ2UoMCwgbGVu
KGF0dHJpYl9pbiksIDIpOgogICAgICAgICAgICAgICAgIGF0dHJpYltfZml4bmFtZShhdHRyaWJf
aW5baV0pXSA9IGF0dHJpYl9pbltpKzFdCiAgICAgICAgIHJldHVybiBzZWxmLl90YXJnZXQuc3Rh
cnQodGFnLCBhdHRyaWIpCiAKICAgICBkZWYgX2RhdGEoc2VsZiwgdGV4dCk6Ci0gICAgICAgIHJl
dHVybiBzZWxmLl90YXJnZXQuZGF0YSh0ZXh0KQorICAgICAgICAjIHR5cGU6IChzdHIpIC0+IE5v
bmUKKyAgICAgICAgc2VsZi5fdGFyZ2V0LmRhdGEodGV4dCkKIAogICAgIGRlZiBfZW5kKHNlbGYs
IHRhZyk6CisgICAgICAgICMgdHlwZTogKHN0cikgLT4gZXRyZWUuRWxlbWVudAogICAgICAgICBy
ZXR1cm4gc2VsZi5fdGFyZ2V0LmVuZChfZml4bmFtZSh0YWcpKQogCiAgICAgZGVmIF9leHRlcm5h
bChzZWxmLCBjb250ZXh0LCBiYXNlLCBzeXN0ZW1faWQsIHB1YmxpY19pZCk6CisgICAgICAgICMg
dHlwZTogKHN0ciwgT3B0aW9uYWxbc3RyXSwgT3B0aW9uYWxbc3RyXSwgT3B0aW9uYWxbc3RyXSkg
LT4gYm9vbAogICAgICAgICBpZiBwdWJsaWNfaWQgaW4gewogICAgICAgICAgICAgICAgICItLy9X
M0MvL0RURCBYSFRNTCAxLjAgVHJhbnNpdGlvbmFsLy9FTiIsCiAgICAgICAgICAgICAgICAgIi0v
L1czQy8vRFREIFhIVE1MIDEuMS8vRU4iLApAQCAtOTIsMTUgKzExNywxNyBAQCBjbGFzcyBYTUxQ
YXJzZXIob2JqZWN0KToKICAgICAgICAgcmV0dXJuIFRydWUKIAogICAgIGRlZiBfc2tpcHBlZChz
ZWxmLCBuYW1lLCBpc19wYXJhbWV0ZXJfZW50aXR5KToKKyAgICAgICAgIyB0eXBlOiAoc3RyLCBi
b29sKSAtPiBOb25lCiAgICAgICAgIGVyciA9IGV4cGF0LmVycm9yKCJ1bmRlZmluZWQgZW50aXR5
ICVzOiBsaW5lICVkLCBjb2x1bW4gJWQiICUKICAgICAgICAgICAgICAgICAgICAgICAgICAgKG5h
bWUsIHNlbGYuX3BhcnNlci5FcnJvckxpbmVOdW1iZXIsCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBzZWxmLl9wYXJzZXIuRXJyb3JDb2x1bW5OdW1iZXIpKQotICAgICAgICBlcnIuY29kZSA9
IGV4cGF0LmVycm9ycy5YTUxfRVJST1JfVU5ERUZJTkVEX0VOVElUWQorICAgICAgICBlcnIuY29k
ZSA9IF91bmRlZmluZWRfZW50aXR5X2NvZGUKICAgICAgICAgZXJyLmxpbmVubyA9IHNlbGYuX3Bh
cnNlci5FcnJvckxpbmVOdW1iZXIKICAgICAgICAgZXJyLm9mZnNldCA9IHNlbGYuX3BhcnNlci5F
cnJvckNvbHVtbk51bWJlcgogICAgICAgICByYWlzZSBlcnIKIAogICAgIGRlZiBmZWVkKHNlbGYs
IGRhdGEpOgorICAgICAgICAjIHR5cGU6IChzdHIpIC0+IE5vbmUKICAgICAgICAgaWYgc2VsZi5f
ZmVkX2RhdGEgaXMgbm90IE5vbmU6CiAgICAgICAgICAgICBzZWxmLl9mZWRfZGF0YS5hcHBlbmQo
ZGF0YSkKICAgICAgICAgdHJ5OgpAQCAtMTEwLDYgKzEzNyw3IEBAIGNsYXNzIFhNTFBhcnNlcihv
YmplY3QpOgogICAgICAgICBleGNlcHQgVmFsdWVFcnJvciBhcyBlOgogICAgICAgICAgICAgaWYg
ZS5hcmdzWzBdID09ICdtdWx0aS1ieXRlIGVuY29kaW5ncyBhcmUgbm90IHN1cHBvcnRlZCc6CiAg
ICAgICAgICAgICAgICAgYXNzZXJ0IHNlbGYuX3JlYWRfZW5jb2RpbmcgaXMgbm90IE5vbmUKKyAg
ICAgICAgICAgICAgICBhc3NlcnQgc2VsZi5fZmVkX2RhdGEgaXMgbm90IE5vbmUKICAgICAgICAg
ICAgICAgICB4bWwgPSBiIiIuam9pbihzZWxmLl9mZWRfZGF0YSkuZGVjb2RlKHNlbGYuX3JlYWRf
ZW5jb2RpbmcpLmVuY29kZSgidXRmLTgiKQogICAgICAgICAgICAgICAgIG5ld19wYXJzZXIgPSBY
TUxQYXJzZXIoInV0Zi04IikKICAgICAgICAgICAgICAgICBzZWxmLl9wYXJzZXIgPSBuZXdfcGFy
c2VyLl9wYXJzZXIKQEAgLTExOCw2ICsxNDYsNyBAQCBjbGFzcyBYTUxQYXJzZXIob2JqZWN0KToK
ICAgICAgICAgICAgICAgICBzZWxmLmZlZWQoeG1sKQogCiAgICAgZGVmIGNsb3NlKHNlbGYpOgor
ICAgICAgICAjIHR5cGU6ICgpIC0+IGV0cmVlLkVsZW1lbnQKICAgICAgICAgdHJ5OgogICAgICAg
ICAgICAgc2VsZi5fcGFyc2VyLlBhcnNlKCIiLCBUcnVlKQogICAgICAgICBleGNlcHQgZXhwYXQu
ZXJyb3IgYXMgdjoKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvbWFuaWZlc3QvY29tbWFuZHMuanNvbiBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvbWFuaWZlc3QvY29tbWFuZHMuanNv
bgppbmRleCBkNmNjZDk4ODA5ZWY4OTUxNjYyYmRiOWMwYmYwNWYyMzNlYWU0ZGIyLi43Njk2NzVl
MGVlNDJjNmVmYzM2ZmMxMTUwNzc4NjgyZjkzM2E2NDY1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL21hbmlmZXN0L2NvbW1hbmRz
Lmpzb24KKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy9tYW5pZmVzdC9jb21tYW5kcy5qc29uCkBAIC0xLDYgKzEsMjMgQEAKLXsibWFuaWZlc3Qi
OgotIHsicGF0aCI6ICJ1cGRhdGUucHkiLCAic2NyaXB0IjogInJ1biIsICJwYXJzZXIiOiAiY3Jl
YXRlX3BhcnNlciIsICJoZWxwIjogIlVwZGF0ZSB0aGUgTUFOSUZFU1QuanNvbiBmaWxlIiwKLSAg
InZpcnR1YWxlbnYiOiBmYWxzZX0sCi0gIm1hbmlmZXN0LWRvd25sb2FkIjoKLSB7InBhdGgiOiAi
ZG93bmxvYWQucHkiLCAic2NyaXB0IjogInJ1biIsICJwYXJzZXIiOiAiY3JlYXRlX3BhcnNlciIs
ICJoZWxwIjogIkRvd25sb2FkIHJlY2VudCBwcmVnZW5lcmF0ZWQgTUFOSUZFU1QuanNvbiBmaWxl
IiwKLSAgInZpcnR1YWxlbnYiOiBmYWxzZX19Cit7CisgICJtYW5pZmVzdCI6IHsKKyAgICAicGF0
aCI6ICJ1cGRhdGUucHkiLAorICAgICJzY3JpcHQiOiAicnVuIiwKKyAgICAicGFyc2VyIjogImNy
ZWF0ZV9wYXJzZXIiLAorICAgICJoZWxwIjogIlVwZGF0ZSB0aGUgTUFOSUZFU1QuanNvbiBmaWxl
IiwKKyAgICAidmlydHVhbGVudiI6IGZhbHNlCisgIH0sCisgICJtYW5pZmVzdC1kb3dubG9hZCI6
IHsKKyAgICAicGF0aCI6ICJkb3dubG9hZC5weSIsCisgICAgInNjcmlwdCI6ICJydW4iLAorICAg
ICJwYXJzZXIiOiAiY3JlYXRlX3BhcnNlciIsCisgICAgImhlbHAiOiAiRG93bmxvYWQgcmVjZW50
IHByZWdlbmVyYXRlZCBNQU5JRkVTVC5qc29uIGZpbGUiLAorICAgICJ2aXJ0dWFsZW52IjogZmFs
c2UKKyAgfSwKKyAgInRlc3QtcGF0aHMiOiB7CisgICAgInBhdGgiOiAidGVzdHBhdGhzLnB5IiwK
KyAgICAic2NyaXB0IjogInJ1biIsCisgICAgInBhcnNlciI6ICJjcmVhdGVfcGFyc2VyIiwKKyAg
ICAiaGVscCI6ICJQcmludCB0ZXN0IHBhdGhzIGdpdmVuIGEgc2V0IG9mIHRlc3QgaWRzIiwKKyAg
ICAidmlydHVhbGVudiI6IGZhbHNlCisgIH0KK30KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvbWFuaWZlc3QvZG93bmxvYWQucHkg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL21hbmlm
ZXN0L2Rvd25sb2FkLnB5CmluZGV4IDhiYjNjYjY3M2RlNTRmMDY3NmQxY2I4NzNhMDg1M2M5ZGRm
NjVkNGIuLjM3MzZkNTRmMTVkYzVlOWM2NmM1NjA3MzBhY2QwOGY0M2U1M2RiMzAgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvbWFu
aWZlc3QvZG93bmxvYWQucHkKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy9tYW5pZmVzdC9kb3dubG9hZC5weQpAQCAtMSw2ICsxLDcgQEAKIGZy
b20gX19mdXR1cmVfXyBpbXBvcnQgYWJzb2x1dGVfaW1wb3J0CiAKIGltcG9ydCBhcmdwYXJzZQor
aW1wb3J0IGJ6MgogaW1wb3J0IGd6aXAKIGltcG9ydCBqc29uCiBpbXBvcnQgaW8KQEAgLTksMTAg
KzEwLDIzIEBAIGZyb20gZGF0ZXRpbWUgaW1wb3J0IGRhdGV0aW1lLCB0aW1lZGVsdGEKIAogZnJv
bSBzaXgubW92ZXMudXJsbGliLnJlcXVlc3QgaW1wb3J0IHVybG9wZW4KIAotZnJvbSAudmNzIGlt
cG9ydCBHaXQKK3RyeToKKyAgICBpbXBvcnQgenN0YW5kYXJkCitleGNlcHQgSW1wb3J0RXJyb3I6
CisgICAgenN0YW5kYXJkID0gTm9uZQorCitmcm9tIC51dGlscyBpbXBvcnQgZ2l0CiAKIGZyb20g
LiBpbXBvcnQgbG9nCiAKK01ZUFkgPSBGYWxzZQoraWYgTVlQWToKKyAgICAjIE1ZUFkgaXMgc2V0
IHRvIFRydWUgd2hlbiBydW4gdW5kZXIgTXlweS4KKyAgICBmcm9tIHR5cGluZyBpbXBvcnQgQW55
CisgICAgZnJvbSB0eXBpbmcgaW1wb3J0IENhbGxhYmxlCisgICAgZnJvbSB0eXBpbmcgaW1wb3J0
IExpc3QKKyAgICBmcm9tIHR5cGluZyBpbXBvcnQgT3B0aW9uYWwKKwogaGVyZSA9IG9zLnBhdGgu
ZGlybmFtZShfX2ZpbGVfXykKIAogd3B0X3Jvb3QgPSBvcy5wYXRoLmFic3BhdGgob3MucGF0aC5q
b2luKGhlcmUsIG9zLnBhcmRpciwgb3MucGFyZGlyKSkKQEAgLTIwLDEwICszNCwxMiBAQCBsb2dn
ZXIgPSBsb2cuZ2V0X2xvZ2dlcigpCiAKIAogZGVmIGFic19wYXRoKHBhdGgpOgorICAgICMgdHlw
ZTogKHN0cikgLT4gc3RyCiAgICAgcmV0dXJuIG9zLnBhdGguYWJzcGF0aChvcy5wYXRoLmV4cGFu
ZHVzZXIocGF0aCkpCiAKIAogZGVmIHNob3VsZF9kb3dubG9hZChtYW5pZmVzdF9wYXRoLCByZWJ1
aWxkX3RpbWU9dGltZWRlbHRhKGRheXM9NSkpOgorICAgICMgdHlwZTogKHN0ciwgdGltZWRlbHRh
KSAtPiBib29sCiAgICAgaWYgbm90IG9zLnBhdGguZXhpc3RzKG1hbmlmZXN0X3BhdGgpOgogICAg
ICAgICByZXR1cm4gVHJ1ZQogICAgIG10aW1lID0gZGF0ZXRpbWUuZnJvbXRpbWVzdGFtcChvcy5w
YXRoLmdldG10aW1lKG1hbmlmZXN0X3BhdGgpKQpAQCAtMzMsNzIgKzQ5LDEyOCBAQCBkZWYgc2hv
dWxkX2Rvd25sb2FkKG1hbmlmZXN0X3BhdGgsIHJlYnVpbGRfdGltZT10aW1lZGVsdGEoZGF5cz01
KSk6CiAgICAgcmV0dXJuIEZhbHNlCiAKIAotZGVmIGdpdF9jb21taXRzKHJlcG9fcm9vdCk6Ci0g
ICAgZ2l0ID0gR2l0LmdldF9mdW5jKHJlcG9fcm9vdCkKLSAgICByZXR1cm4gW2l0ZW0gZm9yIGl0
ZW0gaW4gZ2l0KCJsb2ciLCAiLS1mb3JtYXQ9JUgiLCAiLW41MCIpLnNwbGl0KCJcbiIpIGlmIGl0
ZW1dCi0KLQotZGVmIGdpdGh1Yl91cmwoY29tbWl0cyk6Ci0gICAgdHJ5OgotICAgICAgICByZXNw
ID0gdXJsb3BlbigiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy93ZWItcGxhdGZvcm0tdGVz
dHMvd3B0L3JlbGVhc2VzIikKLSAgICBleGNlcHQgRXhjZXB0aW9uOgotICAgICAgICByZXR1cm4g
Tm9uZQotCi0gICAgaWYgcmVzcC5jb2RlICE9IDIwMDoKLSAgICAgICAgcmV0dXJuIE5vbmUKLQot
ICAgIHRyeToKLSAgICAgICAgcmVsZWFzZXMgPSBqc29uLmxvYWQocmVzcC5mcCkKLSAgICBleGNl
cHQgVmFsdWVFcnJvcjoKLSAgICAgICAgbG9nZ2VyLndhcm5pbmcoIlJlc3BvbnNlIHdhcyBub3Qg
dmFsaWQgSlNPTiIpCi0gICAgICAgIHJldHVybiBOb25lCi0KLSAgICBmYWxsYmFjayA9IE5vbmUK
LSAgICBmb3IgcmVsZWFzZSBpbiByZWxlYXNlczoKLSAgICAgICAgZm9yIGNvbW1pdCBpbiBjb21t
aXRzOgotICAgICAgICAgICAgZm9yIGl0ZW0gaW4gcmVsZWFzZVsiYXNzZXRzIl06Ci0gICAgICAg
ICAgICAgICAgaWYgaXRlbVsibmFtZSJdID09ICJNQU5JRkVTVC0lcy5qc29uLmd6IiAlIGNvbW1p
dDoKLSAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGl0ZW1bImJyb3dzZXJfZG93bmxvYWRfdXJs
Il0KLSAgICAgICAgICAgICAgICBlbGlmIGl0ZW1bIm5hbWUiXSA9PSAiTUFOSUZFU1QuanNvbi5n
eiIgYW5kIG5vdCBmYWxsYmFjazoKLSAgICAgICAgICAgICAgICAgICAgZmFsbGJhY2sgPSBpdGVt
WyJicm93c2VyX2Rvd25sb2FkX3VybCJdCi0gICAgaWYgZmFsbGJhY2s6Ci0gICAgICAgIGxvZ2dl
ci5pbmZvKCJDYW4ndCBmaW5kIGEgY29tbWl0LXNwZWNpZmljIG1hbmlmZXN0IHNvIGp1c3QgdXNp
bmcgdGhlIG1vc3QgcmVjZW50IG9uZSIpCi0gICAgICAgIHJldHVybiBmYWxsYmFjawotCi0KLWRl
ZiBkb3dubG9hZF9tYW5pZmVzdChtYW5pZmVzdF9wYXRoLCBjb21taXRzX2Z1bmMsIHVybF9mdW5j
LCBmb3JjZT1GYWxzZSk6CitkZWYgbWVyZ2VfcHJfdGFncyhyZXBvX3Jvb3QsIG1heF9jb3VudD01
MCk6CisgICAgIyB0eXBlOiAoc3RyLCBpbnQpIC0+IExpc3Rbc3RyXQorICAgIGdpdGZ1bmMgPSBn
aXQocmVwb19yb290KQorICAgIHRhZ3MgPSBbXSAgIyB0eXBlOiBMaXN0W3N0cl0KKyAgICBpZiBn
aXRmdW5jIGlzIE5vbmU6CisgICAgICAgIHJldHVybiB0YWdzCisgICAgZm9yIGxpbmUgaW4gZ2l0
ZnVuYygibG9nIiwgIi0tZm9ybWF0PSVEIiwgIi0tbWF4LWNvdW50PSVzIiAlIG1heF9jb3VudCku
c3BsaXQoIlxuIik6CisgICAgICAgIGZvciByZWYgaW4gbGluZS5zcGxpdCgiLCAiKToKKyAgICAg
ICAgICAgIGlmIHJlZi5zdGFydHN3aXRoKCJ0YWc6IG1lcmdlX3ByXyIpOgorICAgICAgICAgICAg
ICAgIHRhZ3MuYXBwZW5kKHJlZls1Ol0pCisgICAgcmV0dXJuIHRhZ3MKKworCitkZWYgc2NvcmVf
bmFtZShuYW1lKToKKyAgICAjIHR5cGU6IChzdHIpIC0+IE9wdGlvbmFsW2ludF0KKyAgICAiIiJT
Y29yZSBob3cgbXVjaCB3ZSBsaWtlIGVhY2ggZmlsZW5hbWUsIGxvd2VyIHdpbnMsIE5vbmUgcmVq
ZWN0cyIiIgorCisgICAgIyBBY2NlcHQgYm90aCB3YXlzIG9mIG5hbWluZyB0aGUgbWFuaWZlc3Qg
YXNzZXQsIGV2ZW4gdGhvdWdoCisgICAgIyB0aGVyZSdzIG5vIGxvbmdlciBhIHJlYXNvbiB0byBp
bmNsdWRlIHRoZSBjb21taXQgc2hhLgorICAgIGlmIG5hbWUuc3RhcnRzd2l0aCgiTUFOSUZFU1Qt
Iikgb3IgbmFtZS5zdGFydHN3aXRoKCJNQU5JRkVTVC4iKToKKyAgICAgICAgaWYgenN0YW5kYXJk
IGFuZCBuYW1lLmVuZHN3aXRoKCJqc29uLnpzdCIpOgorICAgICAgICAgICAgcmV0dXJuIDEKKyAg
ICAgICAgaWYgbmFtZS5lbmRzd2l0aCgiLmpzb24uYnoyIik6CisgICAgICAgICAgICByZXR1cm4g
MgorICAgICAgICBpZiBuYW1lLmVuZHN3aXRoKCIuanNvbi5neiIpOgorICAgICAgICAgICAgcmV0
dXJuIDMKKyAgICByZXR1cm4gTm9uZQorCisKK2RlZiBnaXRodWJfdXJsKHRhZ3MpOgorICAgICMg
dHlwZTogKExpc3Rbc3RyXSkgLT4gT3B0aW9uYWxbTGlzdFtzdHJdXQorICAgIGZvciB0YWcgaW4g
dGFnczoKKyAgICAgICAgdXJsID0gImh0dHBzOi8vYXBpLmdpdGh1Yi5jb20vcmVwb3Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3dwdC9yZWxlYXNlcy90YWdzLyVzIiAlIHRhZworICAgICAgICB0cnk6Cisg
ICAgICAgICAgICByZXNwID0gdXJsb3Blbih1cmwpCisgICAgICAgIGV4Y2VwdCBFeGNlcHRpb246
CisgICAgICAgICAgICBsb2dnZXIud2FybmluZygiRmV0Y2hpbmcgJXMgZmFpbGVkIiAlIHVybCkK
KyAgICAgICAgICAgIGNvbnRpbnVlCisKKyAgICAgICAgaWYgcmVzcC5jb2RlICE9IDIwMDoKKyAg
ICAgICAgICAgIGxvZ2dlci53YXJuaW5nKCJGZXRjaGluZyAlcyBmYWlsZWQ7IGdvdCBIVFRQIHN0
YXR1cyAlZCIgJSAodXJsLCByZXNwLmNvZGUpKQorICAgICAgICAgICAgY29udGludWUKKworICAg
ICAgICB0cnk6CisgICAgICAgICAgICByZWxlYXNlID0ganNvbi5sb2FkKHJlc3AuZnApCisgICAg
ICAgIGV4Y2VwdCBWYWx1ZUVycm9yOgorICAgICAgICAgICAgbG9nZ2VyLndhcm5pbmcoIlJlc3Bv
bnNlIHdhcyBub3QgdmFsaWQgSlNPTiIpCisgICAgICAgICAgICByZXR1cm4gTm9uZQorCisgICAg
ICAgIGNhbmRpZGF0ZXMgPSBbXQorICAgICAgICBmb3IgaXRlbSBpbiByZWxlYXNlWyJhc3NldHMi
XToKKyAgICAgICAgICAgIHNjb3JlID0gc2NvcmVfbmFtZShpdGVtWyJuYW1lIl0pCisgICAgICAg
ICAgICBpZiBzY29yZSBpcyBub3QgTm9uZToKKyAgICAgICAgICAgICAgICBjYW5kaWRhdGVzLmFw
cGVuZCgoc2NvcmUsIGl0ZW1bImJyb3dzZXJfZG93bmxvYWRfdXJsIl0pKQorCisgICAgICAgIHJl
dHVybiBbaXRlbVsxXSBmb3IgaXRlbSBpbiBzb3J0ZWQoY2FuZGlkYXRlcyldCisKKyAgICByZXR1
cm4gTm9uZQorCisKK2RlZiBkb3dubG9hZF9tYW5pZmVzdCgKKyAgICAgICAgbWFuaWZlc3RfcGF0
aCwgICMgdHlwZTogc3RyCisgICAgICAgIHRhZ3NfZnVuYywgICMgdHlwZTogQ2FsbGFibGVbW10s
IExpc3Rbc3RyXV0KKyAgICAgICAgdXJsX2Z1bmMsICAjIHR5cGU6IENhbGxhYmxlW1tMaXN0W3N0
cl1dLCBPcHRpb25hbFtMaXN0W3N0cl1dXQorICAgICAgICBmb3JjZT1GYWxzZSAgIyB0eXBlOiBi
b29sCispOgorICAgICMgdHlwZTogKC4uLikgLT4gYm9vbAogICAgIGlmIG5vdCBmb3JjZSBhbmQg
bm90IHNob3VsZF9kb3dubG9hZChtYW5pZmVzdF9wYXRoKToKICAgICAgICAgcmV0dXJuIEZhbHNl
CiAKLSAgICBjb21taXRzID0gY29tbWl0c19mdW5jKCkKKyAgICB0YWdzID0gdGFnc19mdW5jKCkK
IAotICAgIHVybCA9IHVybF9mdW5jKGNvbW1pdHMpCi0gICAgaWYgbm90IHVybDoKKyAgICB1cmxz
ID0gdXJsX2Z1bmModGFncykKKyAgICBpZiBub3QgdXJsczoKICAgICAgICAgbG9nZ2VyLndhcm5p
bmcoIk5vIGdlbmVyYXRlZCBtYW5pZmVzdCBmb3VuZCIpCiAgICAgICAgIHJldHVybiBGYWxzZQog
Ci0gICAgbG9nZ2VyLmluZm8oIkRvd25sb2FkaW5nIG1hbmlmZXN0IGZyb20gJXMiICUgdXJsKQot
ICAgIHRyeToKLSAgICAgICAgcmVzcCA9IHVybG9wZW4odXJsKQotICAgIGV4Y2VwdCBFeGNlcHRp
b246Ci0gICAgICAgIGxvZ2dlci53YXJuaW5nKCJEb3dubG9hZGluZyBwcmVnZW5lcmF0ZWQgbWFu
aWZlc3QgZmFpbGVkIikKLSAgICAgICAgcmV0dXJuIEZhbHNlCi0KLSAgICBpZiByZXNwLmNvZGUg
IT0gMjAwOgotICAgICAgICBsb2dnZXIud2FybmluZygiRG93bmxvYWRpbmcgcHJlZ2VuZXJhdGVk
IG1hbmlmZXN0IGZhaWxlZDsgZ290IEhUVFAgc3RhdHVzICVkIiAlCi0gICAgICAgICAgICAgICAg
ICAgICAgIHJlc3AuY29kZSkKLSAgICAgICAgcmV0dXJuIEZhbHNlCi0KLSAgICBnemYgPSBnemlw
Lkd6aXBGaWxlKGZpbGVvYmo9aW8uQnl0ZXNJTyhyZXNwLnJlYWQoKSkpCi0KLSAgICB0cnk6Ci0g
ICAgICAgIGRlY29tcHJlc3NlZCA9IGd6Zi5yZWFkKCkKLSAgICBleGNlcHQgSU9FcnJvcjoKLSAg
ICAgICAgbG9nZ2VyLndhcm5pbmcoIkZhaWxlZCB0byBkZWNvbXByZXNzIGRvd25sb2FkZWQgZmls
ZSIpCisgICAgZm9yIHVybCBpbiB1cmxzOgorICAgICAgICBsb2dnZXIuaW5mbygiRG93bmxvYWRp
bmcgbWFuaWZlc3QgZnJvbSAlcyIgJSB1cmwpCisgICAgICAgIHRyeToKKyAgICAgICAgICAgIHJl
c3AgPSB1cmxvcGVuKHVybCkKKyAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbjoKKyAgICAgICAgICAg
IGxvZ2dlci53YXJuaW5nKCJEb3dubG9hZGluZyBwcmVnZW5lcmF0ZWQgbWFuaWZlc3QgZmFpbGVk
IikKKyAgICAgICAgICAgIGNvbnRpbnVlCisKKyAgICAgICAgaWYgcmVzcC5jb2RlICE9IDIwMDoK
KyAgICAgICAgICAgIGxvZ2dlci53YXJuaW5nKCJEb3dubG9hZGluZyBwcmVnZW5lcmF0ZWQgbWFu
aWZlc3QgZmFpbGVkOyBnb3QgSFRUUCBzdGF0dXMgJWQiICUKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHJlc3AuY29kZSkKKyAgICAgICAgICAgIGNvbnRpbnVlCisKKyAgICAgICAgaWYgdXJs
LmVuZHN3aXRoKCIuenN0Iik6CisgICAgICAgICAgICBpZiBub3QgenN0YW5kYXJkOgorICAgICAg
ICAgICAgICAgIGNvbnRpbnVlCisgICAgICAgICAgICB0cnk6CisgICAgICAgICAgICAgICAgZGN0
eCA9IHpzdGFuZGFyZC5ac3RkRGVjb21wcmVzc29yKCkKKyAgICAgICAgICAgICAgICBkZWNvbXBy
ZXNzZWQgPSBkY3R4LmRlY29tcHJlc3MocmVzcC5yZWFkKCkpCisgICAgICAgICAgICBleGNlcHQg
SU9FcnJvcjoKKyAgICAgICAgICAgICAgICBsb2dnZXIud2FybmluZygiRmFpbGVkIHRvIGRlY29t
cHJlc3MgZG93bmxvYWRlZCBmaWxlIikKKyAgICAgICAgICAgICAgICBjb250aW51ZQorICAgICAg
ICBlbGlmIHVybC5lbmRzd2l0aCgiLmJ6MiIpOgorICAgICAgICAgICAgdHJ5OgorICAgICAgICAg
ICAgICAgIGRlY29tcHJlc3NlZCA9IGJ6Mi5kZWNvbXByZXNzKHJlc3AucmVhZCgpKQorICAgICAg
ICAgICAgZXhjZXB0IElPRXJyb3I6CisgICAgICAgICAgICAgICAgbG9nZ2VyLndhcm5pbmcoIkZh
aWxlZCB0byBkZWNvbXByZXNzIGRvd25sb2FkZWQgZmlsZSIpCisgICAgICAgICAgICAgICAgY29u
dGludWUKKyAgICAgICAgZWxpZiB1cmwuZW5kc3dpdGgoIi5neiIpOgorICAgICAgICAgICAgZmls
ZW9iaiA9IGlvLkJ5dGVzSU8ocmVzcC5yZWFkKCkpCisgICAgICAgICAgICB0cnk6CisgICAgICAg
ICAgICAgICAgd2l0aCBnemlwLkd6aXBGaWxlKGZpbGVvYmo9ZmlsZW9iaikgYXMgZ3pmOgorICAg
ICAgICAgICAgICAgICAgICBkZWNvbXByZXNzZWQgPSBnemYucmVhZCgpICAjIHR5cGU6IGlnbm9y
ZQorICAgICAgICAgICAgZXhjZXB0IElPRXJyb3I6CisgICAgICAgICAgICAgICAgbG9nZ2VyLndh
cm5pbmcoIkZhaWxlZCB0byBkZWNvbXByZXNzIGRvd25sb2FkZWQgZmlsZSIpCisgICAgICAgICAg
ICAgICAgY29udGludWUKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIGxvZ2dlci53YXJuaW5n
KCJVbmtub3duIGZpbGUgZXh0ZW5zaW9uOiAlcyIgJSB1cmwpCisgICAgICAgICAgICBjb250aW51
ZQorICAgICAgICBicmVhaworICAgIGVsc2U6CiAgICAgICAgIHJldHVybiBGYWxzZQogCiAgICAg
dHJ5OgotICAgICAgICB3aXRoIG9wZW4obWFuaWZlc3RfcGF0aCwgInciKSBhcyBmOgorICAgICAg
ICB3aXRoIG9wZW4obWFuaWZlc3RfcGF0aCwgIndiIikgYXMgZjoKICAgICAgICAgICAgIGYud3Jp
dGUoZGVjb21wcmVzc2VkKQogICAgIGV4Y2VwdCBFeGNlcHRpb246CiAgICAgICAgIGxvZ2dlci53
YXJuaW5nKCJGYWlsZWQgdG8gd3JpdGUgbWFuaWZlc3QiKQpAQCAtMTA4LDYgKzE4MCw3IEBAIGRl
ZiBkb3dubG9hZF9tYW5pZmVzdChtYW5pZmVzdF9wYXRoLCBjb21taXRzX2Z1bmMsIHVybF9mdW5j
LCBmb3JjZT1GYWxzZSk6CiAKIAogZGVmIGNyZWF0ZV9wYXJzZXIoKToKKyAgICAjIHR5cGU6ICgp
IC0+IGFyZ3BhcnNlLkFyZ3VtZW50UGFyc2VyCiAgICAgcGFyc2VyID0gYXJncGFyc2UuQXJndW1l
bnRQYXJzZXIoKQogICAgIHBhcnNlci5hZGRfYXJndW1lbnQoCiAgICAgICAgICItcCIsICItLXBh
dGgiLCB0eXBlPWFic19wYXRoLCBoZWxwPSJQYXRoIHRvIG1hbmlmZXN0IGZpbGUuIikKQEAgLTEy
MCwxMSArMTkzLDEzIEBAIGRlZiBjcmVhdGVfcGFyc2VyKCk6CiAKIAogZGVmIGRvd25sb2FkX2Zy
b21fZ2l0aHViKHBhdGgsIHRlc3RzX3Jvb3QsIGZvcmNlPUZhbHNlKToKLSAgICByZXR1cm4gZG93
bmxvYWRfbWFuaWZlc3QocGF0aCwgbGFtYmRhOiBnaXRfY29tbWl0cyh0ZXN0c19yb290KSwgZ2l0
aHViX3VybCwKKyAgICAjIHR5cGU6IChzdHIsIHN0ciwgYm9vbCkgLT4gYm9vbAorICAgIHJldHVy
biBkb3dubG9hZF9tYW5pZmVzdChwYXRoLCBsYW1iZGE6IG1lcmdlX3ByX3RhZ3ModGVzdHNfcm9v
dCksIGdpdGh1Yl91cmwsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcmNlPWZvcmNl
KQogCiAKIGRlZiBydW4oKiprd2FyZ3MpOgorICAgICMgdHlwZTogKCoqQW55KSAtPiBpbnQKICAg
ICBpZiBrd2FyZ3NbInBhdGgiXSBpcyBOb25lOgogICAgICAgICBwYXRoID0gb3MucGF0aC5qb2lu
KGt3YXJnc1sidGVzdHNfcm9vdCJdLCAiTUFOSUZFU1QuanNvbiIpCiAgICAgZWxzZToKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
bWFuaWZlc3QvaXRlbS5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvbWFuaWZlc3QvaXRlbS5weQppbmRleCA2MTkxOWZjYzMxZTljN2FmYThjMWQ1
NzMzYTI3MjNmYzQxYmQzMjZkLi4yMTdmNmNhYzI2MmZiYTAyMGMwNDRkOTYzZDQyY2E1NWEyMzYx
ZTUzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL21hbmlmZXN0L2l0ZW0ucHkKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9tYW5pZmVzdC9pdGVtLnB5CkBAIC0xLDIzICsxLDI4
IEBACitmcm9tIGNvcHkgaW1wb3J0IGNvcHkKK2Zyb20gaW5zcGVjdCBpbXBvcnQgaXNhYnN0cmFj
dAorZnJvbSBzaXggaW1wb3J0IGl0ZXJpdGVtcywgd2l0aF9tZXRhY2xhc3MKIGZyb20gc2l4Lm1v
dmVzLnVybGxpYi5wYXJzZSBpbXBvcnQgdXJsam9pbiwgdXJscGFyc2UKIGZyb20gYWJjIGltcG9y
dCBBQkNNZXRhLCBhYnN0cmFjdHByb3BlcnR5CiAKK2Zyb20gLnV0aWxzIGltcG9ydCB0b19vc19w
YXRoCiAKLWRlZiBnZXRfc291cmNlX2ZpbGUoc291cmNlX2ZpbGVzLCB0ZXN0c19yb290LCBtYW5p
ZmVzdCwgcGF0aCk6Ci0gICAgZGVmIG1ha2VfbmV3KCk6Ci0gICAgICAgIGZyb20gLnNvdXJjZWZp
bGUgaW1wb3J0IFNvdXJjZUZpbGUKK01ZUFkgPSBGYWxzZQoraWYgTVlQWToKKyAgICAjIE1ZUFkg
aXMgc2V0IHRvIFRydWUgd2hlbiBydW4gdW5kZXIgTXlweS4KKyAgICBmcm9tIHR5cGluZyBpbXBv
cnQgT3B0aW9uYWwKKyAgICBmcm9tIHR5cGluZyBpbXBvcnQgVGV4dAorICAgIGZyb20gdHlwaW5n
IGltcG9ydCBEaWN0CisgICAgZnJvbSB0eXBpbmcgaW1wb3J0IFR1cGxlCisgICAgZnJvbSB0eXBp
bmcgaW1wb3J0IExpc3QKKyAgICBmcm9tIHR5cGluZyBpbXBvcnQgVW5pb24KKyAgICBmcm9tIHR5
cGluZyBpbXBvcnQgVHlwZQorICAgIGZyb20gdHlwaW5nIGltcG9ydCBBbnkKKyAgICBmcm9tIHR5
cGluZyBpbXBvcnQgU2VxdWVuY2UKKyAgICBmcm9tIHR5cGluZyBpbXBvcnQgSGFzaGFibGUKKyAg
ICBmcm9tIC5tYW5pZmVzdCBpbXBvcnQgTWFuaWZlc3QKKyAgICBGdXp6eSA9IERpY3RbT3B0aW9u
YWxbVHVwbGVbVGV4dCwgVGV4dCwgVGV4dF1dLCBMaXN0W2ludF1dCiAKLSAgICAgICAgcmV0dXJu
IFNvdXJjZUZpbGUodGVzdHNfcm9vdCwgcGF0aCwgbWFuaWZlc3QudXJsX2Jhc2UpCi0KLSAgICBp
ZiBzb3VyY2VfZmlsZXMgaXMgTm9uZToKLSAgICAgICAgcmV0dXJuIG1ha2VfbmV3KCkKLQotICAg
IGlmIHBhdGggbm90IGluIHNvdXJjZV9maWxlczoKLSAgICAgICAgc291cmNlX2ZpbGVzW3BhdGhd
ID0gbWFrZV9uZXcoKQotCi0gICAgcmV0dXJuIHNvdXJjZV9maWxlc1twYXRoXQotCi0KLWl0ZW1f
dHlwZXMgPSB7fQoraXRlbV90eXBlcyA9IHt9ICAjIHR5cGU6IERpY3Rbc3RyLCBUeXBlW01hbmlm
ZXN0SXRlbV1dCiAKIAogY2xhc3MgTWFuaWZlc3RJdGVtTWV0YShBQkNNZXRhKToKQEAgLTI1LDE1
OCArMzAsMjI1IEBAIGNsYXNzIE1hbmlmZXN0SXRlbU1ldGEoQUJDTWV0YSk6CiAgICAgaXRlbV90
eXBlcyBkaWN0aW9uYXJ5IGFjY29yZGluZyB0byB0aGUgdmFsdWUgb2YgdGhlaXIgaXRlbV90eXBl
CiAgICAgYXR0cmlidXRlLCBhbmQgb3RoZXJ3aXNlIGJlaGF2ZXMgbGlrZSBhbiBBQkNNZXRhLiIi
IgogCi0gICAgZGVmIF9fbmV3X18oY2xzLCBuYW1lLCBiYXNlcywgYXR0cnMsICoqa3dhcmdzKToK
LSAgICAgICAgcnYgPSBBQkNNZXRhLl9fbmV3X18oY2xzLCBuYW1lLCBiYXNlcywgYXR0cnMsICoq
a3dhcmdzKQotICAgICAgICBpdGVtX3R5cGVzW3J2Lml0ZW1fdHlwZV0gPSBydgotCi0gICAgICAg
IHJldHVybiBydgorICAgIGRlZiBfX25ld19fKGNscywgbmFtZSwgYmFzZXMsIGF0dHJzKToKKyAg
ICAgICAgIyB0eXBlOiAoVHlwZVtNYW5pZmVzdEl0ZW1NZXRhXSwgc3RyLCBUdXBsZVtNYW5pZmVz
dEl0ZW1NZXRhLCAuLi5dLCBEaWN0W3N0ciwgQW55XSkgLT4gTWFuaWZlc3RJdGVtTWV0YQorICAg
ICAgICBydiA9IHN1cGVyKE1hbmlmZXN0SXRlbU1ldGEsIGNscykuX19uZXdfXyhjbHMsIG5hbWUs
IGJhc2VzLCBhdHRycykKKyAgICAgICAgaWYgbm90IGlzYWJzdHJhY3QocnYpOgorICAgICAgICAg
ICAgYXNzZXJ0IGlzc3ViY2xhc3MocnYsIE1hbmlmZXN0SXRlbSkKKyAgICAgICAgICAgIGFzc2Vy
dCBpc2luc3RhbmNlKHJ2Lml0ZW1fdHlwZSwgc3RyKQorICAgICAgICAgICAgaXRlbV90eXBlc1ty
di5pdGVtX3R5cGVdID0gcnYKIAorICAgICAgICByZXR1cm4gcnYgICMgdHlwZTogaWdub3JlCiAK
LWNsYXNzIE1hbmlmZXN0SXRlbShvYmplY3QpOgotICAgIF9fbWV0YWNsYXNzX18gPSBNYW5pZmVz
dEl0ZW1NZXRhCiAKLSAgICBpdGVtX3R5cGUgPSBOb25lCitjbGFzcyBNYW5pZmVzdEl0ZW0od2l0
aF9tZXRhY2xhc3MoTWFuaWZlc3RJdGVtTWV0YSkpOgorICAgIF9fc2xvdHNfXyA9ICgiX3Rlc3Rz
X3Jvb3QiLCAicGF0aCIpCiAKLSAgICBkZWYgX19pbml0X18oc2VsZiwgc291cmNlX2ZpbGUsIG1h
bmlmZXN0PU5vbmUpOgotICAgICAgICBzZWxmLm1hbmlmZXN0ID0gbWFuaWZlc3QKLSAgICAgICAg
c2VsZi5zb3VyY2VfZmlsZSA9IHNvdXJjZV9maWxlCisgICAgZGVmIF9faW5pdF9fKHNlbGYsIHRl
c3RzX3Jvb3QsIHBhdGgpOgorICAgICAgICAjIHR5cGU6IChUZXh0LCBUZXh0KSAtPiBOb25lCisg
ICAgICAgIHNlbGYuX3Rlc3RzX3Jvb3QgPSB0ZXN0c19yb290CisgICAgICAgIHNlbGYucGF0aCA9
IHBhdGgKIAogICAgIEBhYnN0cmFjdHByb3BlcnR5CiAgICAgZGVmIGlkKHNlbGYpOgorICAgICAg
ICAjIHR5cGU6ICgpIC0+IFRleHQKICAgICAgICAgIiIiVGhlIHRlc3QncyBpZCAodXN1YWxseSBp
dHMgdXJsKSIiIgogICAgICAgICBwYXNzCiAKLSAgICBAcHJvcGVydHkKLSAgICBkZWYgbWV0YV9m
bGFncyhzZWxmKToKLSAgICAgICAgcmV0dXJuIHNldChzZWxmLnNvdXJjZV9maWxlLm1ldGFfZmxh
Z3MpCi0KLSAgICBAcHJvcGVydHkKLSAgICBkZWYgcGF0aChzZWxmKToKLSAgICAgICAgIiIiVGhl
IHRlc3QgcGF0aCByZWxhdGl2ZSB0byB0aGUgdGVzdF9yb290IiIiCi0gICAgICAgIHJldHVybiBz
ZWxmLnNvdXJjZV9maWxlLnJlbF9wYXRoCi0KLSAgICBAcHJvcGVydHkKLSAgICBkZWYgaHR0cHMo
c2VsZik6Ci0gICAgICAgIGZsYWdzID0gc2VsZi5tZXRhX2ZsYWdzCi0gICAgICAgIHJldHVybiAo
Imh0dHBzIiBpbiBmbGFncyBvciAic2VydmljZXdvcmtlciIgaW4gZmxhZ3MpCisgICAgQGFic3Ry
YWN0cHJvcGVydHkKKyAgICBkZWYgaXRlbV90eXBlKHNlbGYpOgorICAgICAgICAjIHR5cGU6ICgp
IC0+IHN0cgorICAgICAgICAiIiJUaGUgaXRlbSdzIHR5cGUiIiIKKyAgICAgICAgcGFzcwogCiAg
ICAgZGVmIGtleShzZWxmKToKKyAgICAgICAgIyB0eXBlOiAoKSAtPiBIYXNoYWJsZQogICAgICAg
ICAiIiJBIHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgdGVzdCIiIgogICAgICAgICByZXR1cm4g
KHNlbGYuaXRlbV90eXBlLCBzZWxmLmlkKQogCi0gICAgZGVmIG1ldGFfa2V5KHNlbGYpOgotICAg
ICAgICAiIiJFeHRyYSBtZXRhZGF0YSB0aGF0IGRvZXNuJ3QgZm9ybSBwYXJ0IG9mIHRoZSB0ZXN0
IGlkZW50aXR5LCBidXQgZm9yCi0gICAgICAgIHdoaWNoIGNoYW5nZXMgbWVhbiByZWdlbmVyYXRp
bmcgdGhlIG1hbmlmZXN0IChlLmcuIHRoZSB0ZXN0IHRpbWVvdXQuIiIiCi0gICAgICAgIHJldHVy
biAoKQotCiAgICAgZGVmIF9fZXFfXyhzZWxmLCBvdGhlcik6CisgICAgICAgICMgdHlwZTogKEFu
eSkgLT4gYm9vbAogICAgICAgICBpZiBub3QgaGFzYXR0cihvdGhlciwgImtleSIpOgogICAgICAg
ICAgICAgcmV0dXJuIEZhbHNlCi0gICAgICAgIHJldHVybiBzZWxmLmtleSgpID09IG90aGVyLmtl
eSgpCisgICAgICAgIHJldHVybiBib29sKHNlbGYua2V5KCkgPT0gb3RoZXIua2V5KCkpCiAKICAg
ICBkZWYgX19oYXNoX18oc2VsZik6Ci0gICAgICAgIHJldHVybiBoYXNoKHNlbGYua2V5KCkgKyBz
ZWxmLm1ldGFfa2V5KCkpCisgICAgICAgICMgdHlwZTogKCkgLT4gaW50CisgICAgICAgIHJldHVy
biBoYXNoKHNlbGYua2V5KCkpCiAKICAgICBkZWYgX19yZXByX18oc2VsZik6Ci0gICAgICAgIHJl
dHVybiAiPCVzLiVzIGlkPSVzLCBwYXRoPSVzPiIgJSAoc2VsZi5fX21vZHVsZV9fLCBzZWxmLl9f
Y2xhc3NfXy5fX25hbWVfXywgc2VsZi5pZCwgc2VsZi5wYXRoKQorICAgICAgICAjIHR5cGU6ICgp
IC0+IHN0cgorICAgICAgICByZXR1cm4gIjwlcy4lcyBpZD0lciwgcGF0aD0lcj4iICUgKHNlbGYu
X19tb2R1bGVfXywgc2VsZi5fX2NsYXNzX18uX19uYW1lX18sIHNlbGYuaWQsIHNlbGYucGF0aCkK
IAogICAgIGRlZiB0b19qc29uKHNlbGYpOgotICAgICAgICByZXR1cm4gW3t9XQorICAgICAgICAj
IHR5cGU6ICgpIC0+IFR1cGxlW0FueSwgLi4uXQorICAgICAgICByZXR1cm4gKCkKIAogICAgIEBj
bGFzc21ldGhvZAotICAgIGRlZiBmcm9tX2pzb24oY2xzLCBtYW5pZmVzdCwgdGVzdHNfcm9vdCwg
cGF0aCwgb2JqLCBzb3VyY2VfZmlsZXM9Tm9uZSk6Ci0gICAgICAgIHNvdXJjZV9maWxlID0gZ2V0
X3NvdXJjZV9maWxlKHNvdXJjZV9maWxlcywgdGVzdHNfcm9vdCwgbWFuaWZlc3QsIHBhdGgpCi0g
ICAgICAgIHJldHVybiBjbHMoc291cmNlX2ZpbGUsCi0gICAgICAgICAgICAgICAgICAgbWFuaWZl
c3Q9bWFuaWZlc3QpCisgICAgZGVmIGZyb21fanNvbihjbHMsCisgICAgICAgICAgICAgICAgICBt
YW5pZmVzdCwgICMgdHlwZTogTWFuaWZlc3QKKyAgICAgICAgICAgICAgICAgIHBhdGgsICAjIHR5
cGU6IFRleHQKKyAgICAgICAgICAgICAgICAgIG9iaiAgIyB0eXBlOiBBbnkKKyAgICAgICAgICAg
ICAgICAgICk6CisgICAgICAgICMgdHlwZTogKC4uLikgLT4gTWFuaWZlc3RJdGVtCisgICAgICAg
IHBhdGggPSB0b19vc19wYXRoKHBhdGgpCisgICAgICAgIHRlc3RzX3Jvb3QgPSBtYW5pZmVzdC50
ZXN0c19yb290CisgICAgICAgIGFzc2VydCB0ZXN0c19yb290IGlzIG5vdCBOb25lCisgICAgICAg
IHJldHVybiBjbHModGVzdHNfcm9vdCwgcGF0aCkKIAogCiBjbGFzcyBVUkxNYW5pZmVzdEl0ZW0o
TWFuaWZlc3RJdGVtKToKLSAgICBkZWYgX19pbml0X18oc2VsZiwgc291cmNlX2ZpbGUsIHVybCwg
dXJsX2Jhc2U9Ii8iLCBtYW5pZmVzdD1Ob25lKToKLSAgICAgICAgTWFuaWZlc3RJdGVtLl9faW5p
dF9fKHNlbGYsIHNvdXJjZV9maWxlLCBtYW5pZmVzdD1tYW5pZmVzdCkKLSAgICAgICAgc2VsZi5f
dXJsID0gdXJsCisgICAgX19zbG90c19fID0gKCJ1cmxfYmFzZSIsICJfdXJsIiwgIl9leHRyYXMi
KQorCisgICAgZGVmIF9faW5pdF9fKHNlbGYsCisgICAgICAgICAgICAgICAgIHRlc3RzX3Jvb3Qs
ICAjIHR5cGU6IFRleHQKKyAgICAgICAgICAgICAgICAgcGF0aCwgICMgdHlwZTogVGV4dAorICAg
ICAgICAgICAgICAgICB1cmxfYmFzZSwgICMgdHlwZTogVGV4dAorICAgICAgICAgICAgICAgICB1
cmwsICAjIHR5cGU6IFRleHQKKyAgICAgICAgICAgICAgICAgKipleHRyYXMgICMgdHlwZTogQW55
CisgICAgICAgICAgICAgICAgICk6CisgICAgICAgICMgdHlwZTogKC4uLikgLT4gTm9uZQorICAg
ICAgICBzdXBlcihVUkxNYW5pZmVzdEl0ZW0sIHNlbGYpLl9faW5pdF9fKHRlc3RzX3Jvb3QsIHBh
dGgpCisgICAgICAgIGFzc2VydCB1cmxfYmFzZVswXSA9PSAiLyIKICAgICAgICAgc2VsZi51cmxf
YmFzZSA9IHVybF9iYXNlCisgICAgICAgIGFzc2VydCB1cmxbMF0gIT0gIi8iCisgICAgICAgIHNl
bGYuX3VybCA9IHVybAorICAgICAgICBzZWxmLl9leHRyYXMgPSBleHRyYXMKIAogICAgIEBwcm9w
ZXJ0eQogICAgIGRlZiBpZChzZWxmKToKKyAgICAgICAgIyB0eXBlOiAoKSAtPiBUZXh0CiAgICAg
ICAgIHJldHVybiBzZWxmLnVybAogCi0gICAgQHByb3BlcnR5Ci0gICAgZGVmIG1ldGFfZmxhZ3Mo
c2VsZik6Ci0gICAgICAgIHJldHVybiBzZXQodXJscGFyc2Uoc2VsZi51cmwpLnBhdGgucnNwbGl0
KCIvIiwgMSlbMV0uc3BsaXQoIi4iKVsxOi0xXSkKLQogICAgIEBwcm9wZXJ0eQogICAgIGRlZiB1
cmwoc2VsZik6CisgICAgICAgICMgdHlwZTogKCkgLT4gVGV4dAorICAgICAgICAjIHdlIGNhbiBv
dXRwZXJmb3JtIHVybGpvaW4sIGJlY2F1c2Ugd2Uga25vdyB3ZSBqdXN0IGhhdmUgcGF0aCByZWxh
dGl2ZSBVUkxzCisgICAgICAgIGlmIHNlbGYudXJsX2Jhc2UgPT0gIi8iOgorICAgICAgICAgICAg
cmV0dXJuICIvIiArIHNlbGYuX3VybAogICAgICAgICByZXR1cm4gdXJsam9pbihzZWxmLnVybF9i
YXNlLCBzZWxmLl91cmwpCiAKKyAgICBAcHJvcGVydHkKKyAgICBkZWYgaHR0cHMoc2VsZik6Cisg
ICAgICAgICMgdHlwZTogKCkgLT4gYm9vbAorICAgICAgICBmbGFncyA9IHNldCh1cmxwYXJzZShz
ZWxmLnVybCkucGF0aC5yc3BsaXQoIi8iLCAxKVsxXS5zcGxpdCgiLiIpWzE6LTFdKQorICAgICAg
ICByZXR1cm4gKCJodHRwcyIgaW4gZmxhZ3Mgb3IgInNlcnZpY2V3b3JrZXIiIGluIGZsYWdzKQor
CiAgICAgZGVmIHRvX2pzb24oc2VsZik6Ci0gICAgICAgIHJ2ID0gW3NlbGYuX3VybCwge31dCisg
ICAgICAgICMgdHlwZTogKCkgLT4gVHVwbGVbVGV4dCwgRGljdFtBbnksIEFueV1dCisgICAgICAg
IHJ2ID0gKHNlbGYuX3VybCwge30pICAjIHR5cGU6IFR1cGxlW1RleHQsIERpY3RbQW55LCBBbnld
XQogICAgICAgICByZXR1cm4gcnYKIAogICAgIEBjbGFzc21ldGhvZAotICAgIGRlZiBmcm9tX2pz
b24oY2xzLCBtYW5pZmVzdCwgdGVzdHNfcm9vdCwgcGF0aCwgb2JqLCBzb3VyY2VfZmlsZXM9Tm9u
ZSk6Ci0gICAgICAgIHNvdXJjZV9maWxlID0gZ2V0X3NvdXJjZV9maWxlKHNvdXJjZV9maWxlcywg
dGVzdHNfcm9vdCwgbWFuaWZlc3QsIHBhdGgpCisgICAgZGVmIGZyb21fanNvbihjbHMsCisgICAg
ICAgICAgICAgICAgICBtYW5pZmVzdCwgICMgdHlwZTogTWFuaWZlc3QKKyAgICAgICAgICAgICAg
ICAgIHBhdGgsICAjIHR5cGU6IFRleHQKKyAgICAgICAgICAgICAgICAgIG9iaiAgIyB0eXBlOiBU
dXBsZVtUZXh0LCBEaWN0W0FueSwgQW55XV0KKyAgICAgICAgICAgICAgICAgICk6CisgICAgICAg
ICMgdHlwZTogKC4uLikgLT4gVVJMTWFuaWZlc3RJdGVtCisgICAgICAgIHBhdGggPSB0b19vc19w
YXRoKHBhdGgpCiAgICAgICAgIHVybCwgZXh0cmFzID0gb2JqCi0gICAgICAgIHJldHVybiBjbHMo
c291cmNlX2ZpbGUsCisgICAgICAgIHRlc3RzX3Jvb3QgPSBtYW5pZmVzdC50ZXN0c19yb290Cisg
ICAgICAgIGFzc2VydCB0ZXN0c19yb290IGlzIG5vdCBOb25lCisgICAgICAgIHJldHVybiBjbHMo
dGVzdHNfcm9vdCwKKyAgICAgICAgICAgICAgICAgICBwYXRoLAorICAgICAgICAgICAgICAgICAg
IG1hbmlmZXN0LnVybF9iYXNlLAogICAgICAgICAgICAgICAgICAgIHVybCwKLSAgICAgICAgICAg
ICAgICAgICB1cmxfYmFzZT1tYW5pZmVzdC51cmxfYmFzZSwKLSAgICAgICAgICAgICAgICAgICBt
YW5pZmVzdD1tYW5pZmVzdCkKKyAgICAgICAgICAgICAgICAgICAqKmV4dHJhcykKIAogCiBjbGFz
cyBUZXN0aGFybmVzc1Rlc3QoVVJMTWFuaWZlc3RJdGVtKToKKyAgICBfX3Nsb3RzX18gPSAoKQor
CiAgICAgaXRlbV90eXBlID0gInRlc3RoYXJuZXNzIgogCi0gICAgZGVmIF9faW5pdF9fKHNlbGYs
IHNvdXJjZV9maWxlLCB1cmwsIHVybF9iYXNlPSIvIiwgdGltZW91dD1Ob25lLCB0ZXN0ZHJpdmVy
PUZhbHNlLCBqc3NoZWxsPUZhbHNlLCBtYW5pZmVzdD1Ob25lKToKLSAgICAgICAgVVJMTWFuaWZl
c3RJdGVtLl9faW5pdF9fKHNlbGYsIHNvdXJjZV9maWxlLCB1cmwsIHVybF9iYXNlPXVybF9iYXNl
LCBtYW5pZmVzdD1tYW5pZmVzdCkKLSAgICAgICAgc2VsZi50aW1lb3V0ID0gdGltZW91dAotICAg
ICAgICBzZWxmLnRlc3Rkcml2ZXIgPSB0ZXN0ZHJpdmVyCi0gICAgICAgIHNlbGYuanNzaGVsbCA9
IGpzc2hlbGwKKyAgICBAcHJvcGVydHkKKyAgICBkZWYgdGltZW91dChzZWxmKToKKyAgICAgICAg
IyB0eXBlOiAoKSAtPiBPcHRpb25hbFtUZXh0XQorICAgICAgICByZXR1cm4gc2VsZi5fZXh0cmFz
LmdldCgidGltZW91dCIpCiAKLSAgICBkZWYgbWV0YV9rZXkoc2VsZik6Ci0gICAgICAgIHJldHVy
biAoc2VsZi50aW1lb3V0LCBzZWxmLnRlc3Rkcml2ZXIpCisgICAgQHByb3BlcnR5CisgICAgZGVm
IHRlc3Rkcml2ZXIoc2VsZik6CisgICAgICAgICMgdHlwZTogKCkgLT4gT3B0aW9uYWxbVGV4dF0K
KyAgICAgICAgcmV0dXJuIHNlbGYuX2V4dHJhcy5nZXQoInRlc3Rkcml2ZXIiKQorCisgICAgQHBy
b3BlcnR5CisgICAgZGVmIGpzc2hlbGwoc2VsZik6CisgICAgICAgICMgdHlwZTogKCkgLT4gT3B0
aW9uYWxbVGV4dF0KKyAgICAgICAgcmV0dXJuIHNlbGYuX2V4dHJhcy5nZXQoImpzc2hlbGwiKQor
CisgICAgQHByb3BlcnR5CisgICAgZGVmIHNjcmlwdF9tZXRhZGF0YShzZWxmKToKKyAgICAgICAg
IyB0eXBlOiAoKSAtPiBPcHRpb25hbFtUZXh0XQorICAgICAgICByZXR1cm4gc2VsZi5fZXh0cmFz
LmdldCgic2NyaXB0X21ldGFkYXRhIikKIAogICAgIGRlZiB0b19qc29uKHNlbGYpOgotICAgICAg
ICBydiA9IFVSTE1hbmlmZXN0SXRlbS50b19qc29uKHNlbGYpCisgICAgICAgICMgdHlwZTogKCkg
LT4gVHVwbGVbVGV4dCwgRGljdFtUZXh0LCBBbnldXQorICAgICAgICBydiA9IHN1cGVyKFRlc3Ro
YXJuZXNzVGVzdCwgc2VsZikudG9fanNvbigpCiAgICAgICAgIGlmIHNlbGYudGltZW91dCBpcyBu
b3QgTm9uZToKICAgICAgICAgICAgIHJ2Wy0xXVsidGltZW91dCJdID0gc2VsZi50aW1lb3V0CiAg
ICAgICAgIGlmIHNlbGYudGVzdGRyaXZlcjoKICAgICAgICAgICAgIHJ2Wy0xXVsidGVzdGRyaXZl
ciJdID0gc2VsZi50ZXN0ZHJpdmVyCiAgICAgICAgIGlmIHNlbGYuanNzaGVsbDoKICAgICAgICAg
ICAgIHJ2Wy0xXVsianNzaGVsbCJdID0gVHJ1ZQorICAgICAgICBpZiBzZWxmLnNjcmlwdF9tZXRh
ZGF0YToKKyAgICAgICAgICAgIHJ2Wy0xXVsic2NyaXB0X21ldGFkYXRhIl0gPSBzZWxmLnNjcmlw
dF9tZXRhZGF0YQogICAgICAgICByZXR1cm4gcnYKIAotICAgIEBjbGFzc21ldGhvZAotICAgIGRl
ZiBmcm9tX2pzb24oY2xzLCBtYW5pZmVzdCwgdGVzdHNfcm9vdCwgcGF0aCwgb2JqLCBzb3VyY2Vf
ZmlsZXM9Tm9uZSk6Ci0gICAgICAgIHNvdXJjZV9maWxlID0gZ2V0X3NvdXJjZV9maWxlKHNvdXJj
ZV9maWxlcywgdGVzdHNfcm9vdCwgbWFuaWZlc3QsIHBhdGgpCiAKLSAgICAgICAgdXJsLCBleHRy
YXMgPSBvYmoKLSAgICAgICAgcmV0dXJuIGNscyhzb3VyY2VfZmlsZSwKLSAgICAgICAgICAgICAg
ICAgICB1cmwsCi0gICAgICAgICAgICAgICAgICAgdXJsX2Jhc2U9bWFuaWZlc3QudXJsX2Jhc2Us
Ci0gICAgICAgICAgICAgICAgICAgdGltZW91dD1leHRyYXMuZ2V0KCJ0aW1lb3V0IiksCi0gICAg
ICAgICAgICAgICAgICAgdGVzdGRyaXZlcj1ib29sKGV4dHJhcy5nZXQoInRlc3Rkcml2ZXIiKSks
Ci0gICAgICAgICAgICAgICAgICAganNzaGVsbD1ib29sKGV4dHJhcy5nZXQoImpzc2hlbGwiKSks
Ci0gICAgICAgICAgICAgICAgICAgbWFuaWZlc3Q9bWFuaWZlc3QpCitjbGFzcyBSZWZUZXN0QmFz
ZShVUkxNYW5pZmVzdEl0ZW0pOgorICAgIF9fc2xvdHNfXyA9ICgicmVmZXJlbmNlcyIsKQogCisg
ICAgZGVmIF9faW5pdF9fKHNlbGYsCisgICAgICAgICAgICAgICAgIHRlc3RzX3Jvb3QsICAjIHR5
cGU6IFRleHQKKyAgICAgICAgICAgICAgICAgcGF0aCwgICMgdHlwZTogVGV4dAorICAgICAgICAg
ICAgICAgICB1cmxfYmFzZSwgICMgdHlwZTogVGV4dAorICAgICAgICAgICAgICAgICB1cmwsICAj
IHR5cGU6IFRleHQKKyAgICAgICAgICAgICAgICAgcmVmZXJlbmNlcz1Ob25lLCAgIyB0eXBlOiBP
cHRpb25hbFtMaXN0W1R1cGxlW1RleHQsIFRleHRdXV0KKyAgICAgICAgICAgICAgICAgKipleHRy
YXMgICMgdHlwZTogQW55CisgICAgICAgICAgICAgICAgICk6CisgICAgICAgIHN1cGVyKFJlZlRl
c3RCYXNlLCBzZWxmKS5fX2luaXRfXyh0ZXN0c19yb290LCBwYXRoLCB1cmxfYmFzZSwgdXJsLCAq
KmV4dHJhcykKKyAgICAgICAgaWYgcmVmZXJlbmNlcyBpcyBOb25lOgorICAgICAgICAgICAgc2Vs
Zi5yZWZlcmVuY2VzID0gW10gICMgdHlwZTogTGlzdFtUdXBsZVtUZXh0LCBUZXh0XV0KKyAgICAg
ICAgZWxzZToKKyAgICAgICAgICAgIHNlbGYucmVmZXJlbmNlcyA9IHJlZmVyZW5jZXMKIAotY2xh
c3MgUmVmVGVzdE5vZGUoVVJMTWFuaWZlc3RJdGVtKToKLSAgICBpdGVtX3R5cGUgPSAicmVmdGVz
dF9ub2RlIgorICAgIEBwcm9wZXJ0eQorICAgIGRlZiB0aW1lb3V0KHNlbGYpOgorICAgICAgICAj
IHR5cGU6ICgpIC0+IE9wdGlvbmFsW1RleHRdCisgICAgICAgIHJldHVybiBzZWxmLl9leHRyYXMu
Z2V0KCJ0aW1lb3V0IikKIAotICAgIGRlZiBfX2luaXRfXyhzZWxmLCBzb3VyY2VfZmlsZSwgdXJs
LCByZWZlcmVuY2VzLCB1cmxfYmFzZT0iLyIsIHRpbWVvdXQ9Tm9uZSwKLSAgICAgICAgICAgICAg
ICAgdmlld3BvcnRfc2l6ZT1Ob25lLCBkcGk9Tm9uZSwgbWFuaWZlc3Q9Tm9uZSk6Ci0gICAgICAg
IFVSTE1hbmlmZXN0SXRlbS5fX2luaXRfXyhzZWxmLCBzb3VyY2VfZmlsZSwgdXJsLCB1cmxfYmFz
ZT11cmxfYmFzZSwgbWFuaWZlc3Q9bWFuaWZlc3QpCi0gICAgICAgIGZvciBfLCByZWZfdHlwZSBp
biByZWZlcmVuY2VzOgotICAgICAgICAgICAgaWYgcmVmX3R5cGUgbm90IGluIFsiPT0iLCAiIT0i
XToKLSAgICAgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJVbnJlY29nbmlzZWQgcmVmX3R5
cGUgJXMiICUgcmVmX3R5cGUpCi0gICAgICAgIHNlbGYucmVmZXJlbmNlcyA9IHR1cGxlKHJlZmVy
ZW5jZXMpCi0gICAgICAgIHNlbGYudGltZW91dCA9IHRpbWVvdXQKLSAgICAgICAgc2VsZi52aWV3
cG9ydF9zaXplID0gdmlld3BvcnRfc2l6ZQotICAgICAgICBzZWxmLmRwaSA9IGRwaQorICAgIEBw
cm9wZXJ0eQorICAgIGRlZiB2aWV3cG9ydF9zaXplKHNlbGYpOgorICAgICAgICAjIHR5cGU6ICgp
IC0+IE9wdGlvbmFsW1RleHRdCisgICAgICAgIHJldHVybiBzZWxmLl9leHRyYXMuZ2V0KCJ2aWV3
cG9ydF9zaXplIikKIAotICAgIGRlZiBtZXRhX2tleShzZWxmKToKLSAgICAgICAgcmV0dXJuIChz
ZWxmLnRpbWVvdXQsIHNlbGYudmlld3BvcnRfc2l6ZSwgc2VsZi5kcGkpCisgICAgQHByb3BlcnR5
CisgICAgZGVmIGRwaShzZWxmKToKKyAgICAgICAgIyB0eXBlOiAoKSAtPiBPcHRpb25hbFtUZXh0
XQorICAgICAgICByZXR1cm4gc2VsZi5fZXh0cmFzLmdldCgiZHBpIikKIAotICAgIGRlZiB0b19q
c29uKHNlbGYpOgotICAgICAgICBydiA9IFtzZWxmLnVybCwgc2VsZi5yZWZlcmVuY2VzLCB7fV0K
KyAgICBAcHJvcGVydHkKKyAgICBkZWYgZnV6enkoc2VsZik6CisgICAgICAgICMgdHlwZTogKCkg
LT4gRnV6enkKKyAgICAgICAgZnV6enkgPSBzZWxmLl9leHRyYXMuZ2V0KCJmdXp6eSIsIHt9KSAg
IyB0eXBlOiBVbmlvbltGdXp6eSwgTGlzdFtUdXBsZVtPcHRpb25hbFtTZXF1ZW5jZVtUZXh0XV0s
IExpc3RbaW50XV1dXQorICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShmdXp6eSwgbGlzdCk6Cisg
ICAgICAgICAgICByZXR1cm4gZnV6enkKKworICAgICAgICBydiA9IHt9ICAjIHR5cGU6IEZ1enp5
CisgICAgICAgIGZvciBrLCB2IGluIGZ1enp5OiAgIyB0eXBlOiBUdXBsZVtPcHRpb25hbFtTZXF1
ZW5jZVtUZXh0XV0sIExpc3RbaW50XV0KKyAgICAgICAgICAgIGlmIGsgaXMgTm9uZToKKyAgICAg
ICAgICAgICAgICBrZXkgPSBOb25lICAjIHR5cGU6IE9wdGlvbmFsW1R1cGxlW1RleHQsIFRleHQs
IFRleHRdXQorICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICAjIG15cHkgdHlwZXMg
dGhpcyBhcyBUdXBsZVtUZXh0LCAuLi5dCisgICAgICAgICAgICAgICAgYXNzZXJ0IGxlbihrKSA9
PSAzCisgICAgICAgICAgICAgICAga2V5ID0gdHVwbGUoaykgICMgdHlwZTogaWdub3JlCisgICAg
ICAgICAgICBydltrZXldID0gdgorICAgICAgICByZXR1cm4gcnYKKworICAgIGRlZiB0b19qc29u
KHNlbGYpOiAgIyB0eXBlOiBpZ25vcmUKKyAgICAgICAgIyB0eXBlOiAoKSAtPiBUdXBsZVtUZXh0
LCBMaXN0W1R1cGxlW1RleHQsIFRleHRdXSwgRGljdFtUZXh0LCBBbnldXQorICAgICAgICBydiA9
IChzZWxmLl91cmwsIHNlbGYucmVmZXJlbmNlcywge30pICAjIHR5cGU6IFR1cGxlW1RleHQsIExp
c3RbVHVwbGVbVGV4dCwgVGV4dF1dLCBEaWN0W1RleHQsIEFueV1dCiAgICAgICAgIGV4dHJhcyA9
IHJ2Wy0xXQogICAgICAgICBpZiBzZWxmLnRpbWVvdXQgaXMgbm90IE5vbmU6CiAgICAgICAgICAg
ICBleHRyYXNbInRpbWVvdXQiXSA9IHNlbGYudGltZW91dApAQCAtMTg0LDg0ICsyNTYsMTAzIEBA
IGNsYXNzIFJlZlRlc3ROb2RlKFVSTE1hbmlmZXN0SXRlbSk6CiAgICAgICAgICAgICBleHRyYXNb
InZpZXdwb3J0X3NpemUiXSA9IHNlbGYudmlld3BvcnRfc2l6ZQogICAgICAgICBpZiBzZWxmLmRw
aSBpcyBub3QgTm9uZToKICAgICAgICAgICAgIGV4dHJhc1siZHBpIl0gPSBzZWxmLmRwaQorICAg
ICAgICBpZiBzZWxmLmZ1enp5OgorICAgICAgICAgICAgZXh0cmFzWyJmdXp6eSJdID0gbGlzdChp
dGVyaXRlbXMoc2VsZi5mdXp6eSkpCiAgICAgICAgIHJldHVybiBydgogCiAgICAgQGNsYXNzbWV0
aG9kCi0gICAgZGVmIGZyb21fanNvbihjbHMsIG1hbmlmZXN0LCB0ZXN0c19yb290LCBwYXRoLCBv
YmosIHNvdXJjZV9maWxlcz1Ob25lKToKLSAgICAgICAgc291cmNlX2ZpbGUgPSBnZXRfc291cmNl
X2ZpbGUoc291cmNlX2ZpbGVzLCB0ZXN0c19yb290LCBtYW5pZmVzdCwgcGF0aCkKKyAgICBkZWYg
ZnJvbV9qc29uKGNscywgICMgdHlwZTogaWdub3JlCisgICAgICAgICAgICAgICAgICBtYW5pZmVz
dCwgICMgdHlwZTogTWFuaWZlc3QKKyAgICAgICAgICAgICAgICAgIHBhdGgsICAjIHR5cGU6IFRl
eHQKKyAgICAgICAgICAgICAgICAgIG9iaiAgIyB0eXBlOiBUdXBsZVtUZXh0LCBMaXN0W1R1cGxl
W1RleHQsIFRleHRdXSwgRGljdFtBbnksIEFueV1dCisgICAgICAgICAgICAgICAgICApOgorICAg
ICAgICAjIHR5cGU6ICguLi4pIC0+IFJlZlRlc3RCYXNlCisgICAgICAgIHRlc3RzX3Jvb3QgPSBt
YW5pZmVzdC50ZXN0c19yb290CisgICAgICAgIGFzc2VydCB0ZXN0c19yb290IGlzIG5vdCBOb25l
CisgICAgICAgIHBhdGggPSB0b19vc19wYXRoKHBhdGgpCiAgICAgICAgIHVybCwgcmVmZXJlbmNl
cywgZXh0cmFzID0gb2JqCi0gICAgICAgIHJldHVybiBjbHMoc291cmNlX2ZpbGUsCisgICAgICAg
IHJldHVybiBjbHModGVzdHNfcm9vdCwKKyAgICAgICAgICAgICAgICAgICBwYXRoLAorICAgICAg
ICAgICAgICAgICAgIG1hbmlmZXN0LnVybF9iYXNlLAogICAgICAgICAgICAgICAgICAgIHVybCwK
ICAgICAgICAgICAgICAgICAgICByZWZlcmVuY2VzLAotICAgICAgICAgICAgICAgICAgIHVybF9i
YXNlPW1hbmlmZXN0LnVybF9iYXNlLAotICAgICAgICAgICAgICAgICAgIHRpbWVvdXQ9ZXh0cmFz
LmdldCgidGltZW91dCIpLAotICAgICAgICAgICAgICAgICAgIHZpZXdwb3J0X3NpemU9ZXh0cmFz
LmdldCgidmlld3BvcnRfc2l6ZSIpLAotICAgICAgICAgICAgICAgICAgIGRwaT1leHRyYXMuZ2V0
KCJkcGkiKSwKLSAgICAgICAgICAgICAgICAgICBtYW5pZmVzdD1tYW5pZmVzdCkKKyAgICAgICAg
ICAgICAgICAgICAqKmV4dHJhcykKIAogICAgIGRlZiB0b19SZWZUZXN0KHNlbGYpOgorICAgICAg
ICAjIHR5cGU6ICgpIC0+IFJlZlRlc3QKICAgICAgICAgaWYgdHlwZShzZWxmKSA9PSBSZWZUZXN0
OgorICAgICAgICAgICAgYXNzZXJ0IGlzaW5zdGFuY2Uoc2VsZiwgUmVmVGVzdCkKICAgICAgICAg
ICAgIHJldHVybiBzZWxmCi0gICAgICAgIHJ2ID0gUmVmVGVzdC5fX25ld19fKFJlZlRlc3QpCi0g
ICAgICAgIHJ2Ll9fZGljdF9fLnVwZGF0ZShzZWxmLl9fZGljdF9fKQorICAgICAgICBydiA9IGNv
cHkoc2VsZikKKyAgICAgICAgcnYuX19jbGFzc19fID0gUmVmVGVzdAorICAgICAgICBhc3NlcnQg
aXNpbnN0YW5jZShydiwgUmVmVGVzdCkKICAgICAgICAgcmV0dXJuIHJ2CiAKICAgICBkZWYgdG9f
UmVmVGVzdE5vZGUoc2VsZik6CisgICAgICAgICMgdHlwZTogKCkgLT4gUmVmVGVzdE5vZGUKICAg
ICAgICAgaWYgdHlwZShzZWxmKSA9PSBSZWZUZXN0Tm9kZToKKyAgICAgICAgICAgIGFzc2VydCBp
c2luc3RhbmNlKHNlbGYsIFJlZlRlc3ROb2RlKQogICAgICAgICAgICAgcmV0dXJuIHNlbGYKLSAg
ICAgICAgcnYgPSBSZWZUZXN0Tm9kZS5fX25ld19fKFJlZlRlc3ROb2RlKQotICAgICAgICBydi5f
X2RpY3RfXy51cGRhdGUoc2VsZi5fX2RpY3RfXykKKyAgICAgICAgcnYgPSBjb3B5KHNlbGYpCisg
ICAgICAgIHJ2Ll9fY2xhc3NfXyA9IFJlZlRlc3ROb2RlCisgICAgICAgIGFzc2VydCBpc2luc3Rh
bmNlKHJ2LCBSZWZUZXN0Tm9kZSkKICAgICAgICAgcmV0dXJuIHJ2CiAKIAotY2xhc3MgUmVmVGVz
dChSZWZUZXN0Tm9kZSk6CitjbGFzcyBSZWZUZXN0Tm9kZShSZWZUZXN0QmFzZSk6CisgICAgX19z
bG90c19fID0gKCkKKworICAgIGl0ZW1fdHlwZSA9ICJyZWZ0ZXN0X25vZGUiCisKKworY2xhc3Mg
UmVmVGVzdChSZWZUZXN0QmFzZSk6CisgICAgX19zbG90c19fID0gKCkKKwogICAgIGl0ZW1fdHlw
ZSA9ICJyZWZ0ZXN0IgogCiAKIGNsYXNzIE1hbnVhbFRlc3QoVVJMTWFuaWZlc3RJdGVtKToKKyAg
ICBfX3Nsb3RzX18gPSAoKQorCiAgICAgaXRlbV90eXBlID0gIm1hbnVhbCIKIAogCiBjbGFzcyBD
b25mb3JtYW5jZUNoZWNrZXJUZXN0KFVSTE1hbmlmZXN0SXRlbSk6CisgICAgX19zbG90c19fID0g
KCkKKwogICAgIGl0ZW1fdHlwZSA9ICJjb25mb3JtYW5jZWNoZWNrZXIiCiAKIAogY2xhc3MgVmlz
dWFsVGVzdChVUkxNYW5pZmVzdEl0ZW0pOgotICAgIGl0ZW1fdHlwZSA9ICJ2aXN1YWwiCisgICAg
X19zbG90c19fID0gKCkKIAorICAgIGl0ZW1fdHlwZSA9ICJ2aXN1YWwiCiAKLWNsYXNzIFN0dWIo
VVJMTWFuaWZlc3RJdGVtKToKLSAgICBpdGVtX3R5cGUgPSAic3R1YiIKIAorY2xhc3MgV2ViRHJp
dmVyU3BlY1Rlc3QoVVJMTWFuaWZlc3RJdGVtKToKKyAgICBfX3Nsb3RzX18gPSAoKQogCi1jbGFz
cyBXZWJkcml2ZXJTcGVjVGVzdChVUkxNYW5pZmVzdEl0ZW0pOgogICAgIGl0ZW1fdHlwZSA9ICJ3
ZHNwZWMiCiAKLSAgICBkZWYgX19pbml0X18oc2VsZiwgc291cmNlX2ZpbGUsIHVybCwgdXJsX2Jh
c2U9Ii8iLCB0aW1lb3V0PU5vbmUsIG1hbmlmZXN0PU5vbmUpOgotICAgICAgICBVUkxNYW5pZmVz
dEl0ZW0uX19pbml0X18oc2VsZiwgc291cmNlX2ZpbGUsIHVybCwgdXJsX2Jhc2U9dXJsX2Jhc2Us
IG1hbmlmZXN0PW1hbmlmZXN0KQotICAgICAgICBzZWxmLnRpbWVvdXQgPSB0aW1lb3V0CisgICAg
QHByb3BlcnR5CisgICAgZGVmIHRpbWVvdXQoc2VsZik6CisgICAgICAgICMgdHlwZTogKCkgLT4g
T3B0aW9uYWxbVGV4dF0KKyAgICAgICAgcmV0dXJuIHNlbGYuX2V4dHJhcy5nZXQoInRpbWVvdXQi
KQogCiAgICAgZGVmIHRvX2pzb24oc2VsZik6Ci0gICAgICAgIHJ2ID0gVVJMTWFuaWZlc3RJdGVt
LnRvX2pzb24oc2VsZikKKyAgICAgICAgIyB0eXBlOiAoKSAtPiBUdXBsZVtUZXh0LCBEaWN0W1Rl
eHQsIEFueV1dCisgICAgICAgIHJ2ID0gc3VwZXIoV2ViRHJpdmVyU3BlY1Rlc3QsIHNlbGYpLnRv
X2pzb24oKQogICAgICAgICBpZiBzZWxmLnRpbWVvdXQgaXMgbm90IE5vbmU6CiAgICAgICAgICAg
ICBydlstMV1bInRpbWVvdXQiXSA9IHNlbGYudGltZW91dAogICAgICAgICByZXR1cm4gcnYKIAot
ICAgIEBjbGFzc21ldGhvZAotICAgIGRlZiBmcm9tX2pzb24oY2xzLCBtYW5pZmVzdCwgdGVzdHNf
cm9vdCwgcGF0aCwgb2JqLCBzb3VyY2VfZmlsZXM9Tm9uZSk6Ci0gICAgICAgIHNvdXJjZV9maWxl
ID0gZ2V0X3NvdXJjZV9maWxlKHNvdXJjZV9maWxlcywgdGVzdHNfcm9vdCwgbWFuaWZlc3QsIHBh
dGgpCi0KLSAgICAgICAgdXJsLCBleHRyYXMgPSBvYmoKLSAgICAgICAgcmV0dXJuIGNscyhzb3Vy
Y2VfZmlsZSwKLSAgICAgICAgICAgICAgICAgICB1cmwsCi0gICAgICAgICAgICAgICAgICAgdXJs
X2Jhc2U9bWFuaWZlc3QudXJsX2Jhc2UsCi0gICAgICAgICAgICAgICAgICAgdGltZW91dD1leHRy
YXMuZ2V0KCJ0aW1lb3V0IiksCi0gICAgICAgICAgICAgICAgICAgbWFuaWZlc3Q9bWFuaWZlc3Qp
Ci0KIAogY2xhc3MgU3VwcG9ydEZpbGUoTWFuaWZlc3RJdGVtKToKKyAgICBfX3Nsb3RzX18gPSAo
KQorCiAgICAgaXRlbV90eXBlID0gInN1cHBvcnQiCiAKICAgICBAcHJvcGVydHkKICAgICBkZWYg
aWQoc2VsZik6Ci0gICAgICAgIHJldHVybiBzZWxmLnNvdXJjZV9maWxlLnJlbF9wYXRoCisgICAg
ICAgICMgdHlwZTogKCkgLT4gVGV4dAorICAgICAgICByZXR1cm4gc2VsZi5wYXRoCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL21h
bmlmZXN0L2xvZy5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvbWFuaWZlc3QvbG9nLnB5CmluZGV4IDU1ZmY2ZTg3YzlkYzAwM2UyODRiMGNlOWMz
MzBhOWU1NDk2M2ExMzIuLjllMmFkNzQwODFlNGExYjM4YjljM2MzYmE2MWQ0OWJlMmU4MTUxZmQg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvbWFuaWZlc3QvbG9nLnB5CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvbWFuaWZlc3QvbG9nLnB5CkBAIC00LDYgKzQsNyBAQCBpbXBv
cnQgc3lzCiBsb2dnZXIgPSBsb2dnaW5nLmdldExvZ2dlcigibWFuaWZlc3QiKQogCiBkZWYgc2V0
dXAoKToKKyAgICAjIHR5cGU6ICgpIC0+IE5vbmUKICAgICBsb2dnZXIuc2V0TGV2ZWwobG9nZ2lu
Zy5ERUJVRykKICAgICBoYW5kbGVyID0gbG9nZ2luZy5TdHJlYW1IYW5kbGVyKHN5cy5zdGRvdXQp
CiAgICAgZm9ybWF0dGVyID0gbG9nZ2luZy5Gb3JtYXR0ZXIobG9nZ2luZy5CQVNJQ19GT1JNQVQs
IE5vbmUpCkBAIC0xMSw0ICsxMiw1IEBAIGRlZiBzZXR1cCgpOgogICAgIGxvZ2dlci5hZGRIYW5k
bGVyKGhhbmRsZXIpCiAKIGRlZiBnZXRfbG9nZ2VyKCk6CisgICAgIyB0eXBlOiAoKSAtPiBsb2dn
aW5nLkxvZ2dlcgogICAgIHJldHVybiBsb2dnZXIKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvbWFuaWZlc3QvbWFuaWZlc3QucHkg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL21hbmlm
ZXN0L21hbmlmZXN0LnB5CmluZGV4IDQyYThlMWNlYjIzNjkzYTNlMTM5Y2Y2MTI5YmM4MjMyN2I3
NjUxODIuLjZmYjU5MWI5YzMxNGIwZGQwMWQ5M2ZmMTJmMzgyMGJmMjZkNGZlNzkgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvbWFu
aWZlc3QvbWFuaWZlc3QucHkKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy9tYW5pZmVzdC9tYW5pZmVzdC5weQpAQCAtMSwxNSArMSw0MiBAQAog
aW1wb3J0IGl0ZXJ0b29scwogaW1wb3J0IGpzb24KIGltcG9ydCBvcwotZnJvbSBjb2xsZWN0aW9u
cyBpbXBvcnQgZGVmYXVsdGRpY3QKLWZyb20gc2l4IGltcG9ydCBpdGVyaXRlbXMsIGl0ZXJ2YWx1
ZXMsIHZpZXdrZXlzLCBzdHJpbmdfdHlwZXMKK2Zyb20gY29sbGVjdGlvbnMgaW1wb3J0IE11dGFi
bGVNYXBwaW5nLCBkZWZhdWx0ZGljdAorZnJvbSBzaXggaW1wb3J0IGl0ZXJpdGVtcywgaXRlcmtl
eXMsIGl0ZXJ2YWx1ZXMsIHN0cmluZ190eXBlcywgYmluYXJ5X3R5cGUsIHRleHRfdHlwZQogCi1m
cm9tIC5pdGVtIGltcG9ydCBNYW51YWxUZXN0LCBXZWJkcml2ZXJTcGVjVGVzdCwgU3R1YiwgUmVm
VGVzdE5vZGUsIFJlZlRlc3QsIFRlc3RoYXJuZXNzVGVzdCwgU3VwcG9ydEZpbGUsIENvbmZvcm1h
bmNlQ2hlY2tlclRlc3QsIFZpc3VhbFRlc3QKK2Zyb20gLiBpbXBvcnQgdmNzCitmcm9tIC5pdGVt
IGltcG9ydCAoQ29uZm9ybWFuY2VDaGVja2VyVGVzdCwgTWFuaWZlc3RJdGVtLCBNYW51YWxUZXN0
LCBSZWZUZXN0LCBSZWZUZXN0Tm9kZSwKKyAgICAgICAgICAgICAgICAgICBTdXBwb3J0RmlsZSwg
VGVzdGhhcm5lc3NUZXN0LCBWaXN1YWxUZXN0LCBXZWJEcml2ZXJTcGVjVGVzdCkKIGZyb20gLmxv
ZyBpbXBvcnQgZ2V0X2xvZ2dlcgorZnJvbSAuc291cmNlZmlsZSBpbXBvcnQgU291cmNlRmlsZQog
ZnJvbSAudXRpbHMgaW1wb3J0IGZyb21fb3NfcGF0aCwgdG9fb3NfcGF0aAogCi0KLUNVUlJFTlRf
VkVSU0lPTiA9IDUKK01ZUFkgPSBGYWxzZQoraWYgTVlQWToKKyAgICAjIE1ZUFkgaXMgc2V0IHRv
IFRydWUgd2hlbiBydW4gdW5kZXIgTXlweS4KKyAgICBmcm9tIGxvZ2dpbmcgaW1wb3J0IExvZ2dl
cgorICAgIGZyb20gdHlwaW5nIGltcG9ydCBBbnkKKyAgICBmcm9tIHR5cGluZyBpbXBvcnQgQ29u
dGFpbmVyCisgICAgZnJvbSB0eXBpbmcgaW1wb3J0IERpY3QKKyAgICBmcm9tIHR5cGluZyBpbXBv
cnQgSU8KKyAgICBmcm9tIHR5cGluZyBpbXBvcnQgSXRlcmFibGUKKyAgICBmcm9tIHR5cGluZyBp
bXBvcnQgSXRlcmF0b3IKKyAgICBmcm9tIHR5cGluZyBpbXBvcnQgTGlzdAorICAgIGZyb20gdHlw
aW5nIGltcG9ydCBPcHRpb25hbAorICAgIGZyb20gdHlwaW5nIGltcG9ydCBTZXQKKyAgICBmcm9t
IHR5cGluZyBpbXBvcnQgVGV4dAorICAgIGZyb20gdHlwaW5nIGltcG9ydCBUdXBsZQorICAgIGZy
b20gdHlwaW5nIGltcG9ydCBUeXBlCisgICAgZnJvbSB0eXBpbmcgaW1wb3J0IFVuaW9uCisgICAg
ZnJvbSB0eXBpbmcgaW1wb3J0IGNhc3QKKwordHJ5OgorICAgIGltcG9ydCB1anNvbgorICAgIGZh
c3RfanNvbiA9IHVqc29uCitleGNlcHQgSW1wb3J0RXJyb3I6CisgICAgZmFzdF9qc29uID0ganNv
biAgIyB0eXBlOiBpZ25vcmUKKworQ1VSUkVOVF9WRVJTSU9OID0gNgogCiAKIGNsYXNzIE1hbmlm
ZXN0RXJyb3IoRXhjZXB0aW9uKToKQEAgLTIwLDM3ICs0NywyMzAgQEAgY2xhc3MgTWFuaWZlc3RW
ZXJzaW9uTWlzbWF0Y2goTWFuaWZlc3RFcnJvcik6CiAgICAgcGFzcwogCiAKLWRlZiBpdGVyZmls
dGVyKGZpbHRlcnMsIGl0ZXIpOgotICAgIGZvciBmIGluIGZpbHRlcnM6Ci0gICAgICAgIGl0ZXIg
PSBmKGl0ZXIpCi0gICAgZm9yIGl0ZW0gaW4gaXRlcjoKLSAgICAgICAgeWllbGQgaXRlbQoraXRl
bV9jbGFzc2VzID0geyJ0ZXN0aGFybmVzcyI6IFRlc3RoYXJuZXNzVGVzdCwKKyAgICAgICAgICAg
ICAgICAicmVmdGVzdCI6IFJlZlRlc3QsCisgICAgICAgICAgICAgICAgInJlZnRlc3Rfbm9kZSI6
IFJlZlRlc3ROb2RlLAorICAgICAgICAgICAgICAgICJtYW51YWwiOiBNYW51YWxUZXN0LAorICAg
ICAgICAgICAgICAgICJ3ZHNwZWMiOiBXZWJEcml2ZXJTcGVjVGVzdCwKKyAgICAgICAgICAgICAg
ICAiY29uZm9ybWFuY2VjaGVja2VyIjogQ29uZm9ybWFuY2VDaGVja2VyVGVzdCwKKyAgICAgICAg
ICAgICAgICAidmlzdWFsIjogVmlzdWFsVGVzdCwKKyAgICAgICAgICAgICAgICAic3VwcG9ydCI6
IFN1cHBvcnRGaWxlfSAgIyB0eXBlOiBEaWN0W3N0ciwgVHlwZVtNYW5pZmVzdEl0ZW1dXQorCisK
K2lmIE1ZUFk6CisgICAgVHlwZURhdGFUeXBlID0gTXV0YWJsZU1hcHBpbmdbVGV4dCwgU2V0W01h
bmlmZXN0SXRlbV1dCitlbHNlOgorICAgIFR5cGVEYXRhVHlwZSA9IE11dGFibGVNYXBwaW5nCisK
K2NsYXNzIFR5cGVEYXRhKFR5cGVEYXRhVHlwZSk6CisgICAgZGVmIF9faW5pdF9fKHNlbGYsIG1h
bmlmZXN0LCB0eXBlX2Nscyk6CisgICAgICAgICMgdHlwZTogKE1hbmlmZXN0LCBUeXBlW01hbmlm
ZXN0SXRlbV0pIC0+IE5vbmUKKyAgICAgICAgIiIiRGljdC1saWtlIG9iamVjdCBjb250YWluaW5n
IHRoZSBUZXN0SXRlbXMgZm9yIGVhY2ggdGVzdCB0eXBlLgorCisgICAgICAgIExvYWRpbmcgYW4g
YWN0dWFsIEl0ZW0gY2xhc3MgZm9yIGVhY2ggdGVzdCBpcyB1bm5lY2Vzc2FyaWx5CisgICAgICAg
IHNsb3csIHNvIHRoaXMgY2xhc3MgYWxsb3dzIGxhenktbG9hZGluZyBvZiB0aGUgdGVzdAorICAg
ICAgICBpdGVtcy4gV2hlbiB0aGUgbWFuaWZlc3QgaXMgbG9hZGVkIHdlIHN0b3JlIHRoZSByYXcg
anNvbgorICAgICAgICBjb3JyZXNwb25kaW5nIHRvIHRoZSB0ZXN0IHR5cGUsIGFuZCBvbmx5IGNy
ZWF0ZSBhbiBJdGVtCisgICAgICAgIHN1YmNsYXNzIHdoZW4gdGhlIHRlc3QgaXMgYWNjZXNzZWQu
IEluIG9yZGVyIHRvIHJlbWFpbgorICAgICAgICBBUEktY29tcGF0aWJsZSB3aXRoIGNvbnN1bWVy
cyB0aGF0IGRlcGVuZCBvbiBnZXR0aW5nIGFuIEl0ZW0KKyAgICAgICAgZnJvbSBpdGVyYXRpb24s
IHdlIGRvIGVnZXJseSBsb2FkIGFsbCBpdGVtcyB3aGVuIGl0ZXJhdGluZworICAgICAgICBvdmVy
IHRoZSBjbGFzcy4iIiIKKyAgICAgICAgc2VsZi5tYW5pZmVzdCA9IG1hbmlmZXN0CisgICAgICAg
IHNlbGYudHlwZV9jbHMgPSB0eXBlX2NscworICAgICAgICBzZWxmLmpzb25fZGF0YSA9IHt9ICAj
IHR5cGU6IE9wdGlvbmFsW0RpY3RbVGV4dCwgTGlzdFtBbnldXV0KKyAgICAgICAgc2VsZi50ZXN0
c19yb290ID0gTm9uZSAgIyB0eXBlOiBPcHRpb25hbFtzdHJdCisgICAgICAgIHNlbGYuZGF0YSA9
IHt9ICAjIHR5cGU6IERpY3RbVGV4dCwgU2V0W01hbmlmZXN0SXRlbV1dCisKKyAgICBkZWYgX19n
ZXRpdGVtX18oc2VsZiwga2V5KToKKyAgICAgICAgIyB0eXBlOiAoVGV4dCkgLT4gU2V0W01hbmlm
ZXN0SXRlbV0KKyAgICAgICAgaWYga2V5IG5vdCBpbiBzZWxmLmRhdGEgYW5kIHNlbGYuanNvbl9k
YXRhIGlzIG5vdCBOb25lOgorICAgICAgICAgICAgc2VsZi5sb2FkKGtleSkKKyAgICAgICAgcmV0
dXJuIHNlbGYuZGF0YVtrZXldCisKKyAgICBkZWYgX19ub256ZXJvX18oc2VsZik6CisgICAgICAg
ICMgdHlwZTogKCkgLT4gYm9vbAorICAgICAgICByZXR1cm4gYm9vbChzZWxmLmRhdGEpIG9yIGJv
b2woc2VsZi5qc29uX2RhdGEpCisKKyAgICBkZWYgX19sZW5fXyhzZWxmKToKKyAgICAgICAgIyB0
eXBlOiAoKSAtPiBpbnQKKyAgICAgICAgcnYgPSBsZW4oc2VsZi5kYXRhKQorICAgICAgICBpZiBz
ZWxmLmpzb25fZGF0YSBpcyBub3QgTm9uZToKKyAgICAgICAgICAgIHJ2ICs9IGxlbihzZWxmLmpz
b25fZGF0YSkKKyAgICAgICAgcmV0dXJuIHJ2CisKKyAgICBkZWYgX19kZWxpdGVtX18oc2VsZiwg
a2V5KToKKyAgICAgICAgIyB0eXBlOiAoVGV4dCkgLT4gTm9uZQorICAgICAgICBpZiBrZXkgaW4g
c2VsZi5kYXRhOgorICAgICAgICAgICAgZGVsIHNlbGYuZGF0YVtrZXldCisgICAgICAgIGVsaWYg
c2VsZi5qc29uX2RhdGEgaXMgbm90IE5vbmU6CisgICAgICAgICAgICBkZWwgc2VsZi5qc29uX2Rh
dGFbZnJvbV9vc19wYXRoKGtleSldCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICByYWlzZSBL
ZXlFcnJvcgorCisgICAgZGVmIF9fc2V0aXRlbV9fKHNlbGYsIGtleSwgdmFsdWUpOgorICAgICAg
ICAjIHR5cGU6IChUZXh0LCBTZXRbTWFuaWZlc3RJdGVtXSkgLT4gTm9uZQorICAgICAgICBpZiBz
ZWxmLmpzb25fZGF0YSBpcyBub3QgTm9uZToKKyAgICAgICAgICAgIHBhdGggPSBmcm9tX29zX3Bh
dGgoa2V5KQorICAgICAgICAgICAgaWYgcGF0aCBpbiBzZWxmLmpzb25fZGF0YToKKyAgICAgICAg
ICAgICAgICBkZWwgc2VsZi5qc29uX2RhdGFbcGF0aF0KKyAgICAgICAgc2VsZi5kYXRhW2tleV0g
PSB2YWx1ZQorCisgICAgZGVmIF9fY29udGFpbnNfXyhzZWxmLCBrZXkpOgorICAgICAgICAjIHR5
cGU6IChBbnkpIC0+IGJvb2wKKyAgICAgICAgc2VsZi5sb2FkX2FsbCgpCisgICAgICAgIHJldHVy
biBrZXkgaW4gc2VsZi5kYXRhCisKKyAgICBkZWYgX19pdGVyX18oc2VsZik6CisgICAgICAgICMg
dHlwZTogKCkgLT4gSXRlcmF0b3JbVGV4dF0KKyAgICAgICAgc2VsZi5sb2FkX2FsbCgpCisgICAg
ICAgIHJldHVybiBzZWxmLmRhdGEuX19pdGVyX18oKQorCisgICAgZGVmIGl0ZXJ2YWx1ZXMoc2Vs
Zik6CisgICAgICAgICMgdHlwZTogKCkgLT4gSXRlcmF0b3JbU2V0W01hbmlmZXN0SXRlbV1dCisg
ICAgICAgIHNlbGYubG9hZF9hbGwoKQorICAgICAgICByZXR1cm4gaXRlcnZhbHVlcyhzZWxmLmRh
dGEpCisKKyAgICBkZWYgaXRlcml0ZW1zKHNlbGYpOgorICAgICAgICAjIHR5cGU6ICgpIC0+IEl0
ZXJhdG9yW1R1cGxlW1RleHQsIFNldFtNYW5pZmVzdEl0ZW1dXV0KKyAgICAgICAgc2VsZi5sb2Fk
X2FsbCgpCisgICAgICAgIHJldHVybiBpdGVyaXRlbXMoc2VsZi5kYXRhKQorCisgICAgZGVmIHZh
bHVlcyhzZWxmKToKKyAgICAgICAgIyB0eXBlOiAoKSAtPiBMaXN0W1NldFtNYW5pZmVzdEl0ZW1d
XQorICAgICAgICByZXR1cm4gbGlzdChzZWxmLml0ZXJ2YWx1ZXMoKSkKKworICAgIGRlZiBpdGVt
cyhzZWxmKToKKyAgICAgICAgIyB0eXBlOiAoKSAtPiBMaXN0W1R1cGxlW1RleHQsIFNldFtNYW5p
ZmVzdEl0ZW1dXV0KKyAgICAgICAgcmV0dXJuIGxpc3Qoc2VsZi5pdGVyaXRlbXMoKSkKKworICAg
IGRlZiBsb2FkKHNlbGYsIGtleSk6CisgICAgICAgICMgdHlwZTogKFRleHQpIC0+IE5vbmUKKyAg
ICAgICAgIiIiTG9hZCBhIHNwZWNpZmljIEl0ZW0gZ2l2ZW4gYSBwYXRoIiIiCisgICAgICAgIGlm
IHNlbGYuanNvbl9kYXRhIGlzIG5vdCBOb25lOgorICAgICAgICAgICAgZGF0YSA9IHNldCgpCisg
ICAgICAgICAgICBwYXRoID0gZnJvbV9vc19wYXRoKGtleSkKKyAgICAgICAgICAgIGZvciB0ZXN0
IGluIHNlbGYuanNvbl9kYXRhLmdldChwYXRoLCBbXSk6CisgICAgICAgICAgICAgICAgbWFuaWZl
c3RfaXRlbSA9IHNlbGYudHlwZV9jbHMuZnJvbV9qc29uKHNlbGYubWFuaWZlc3QsIHBhdGgsIHRl
c3QpCisgICAgICAgICAgICAgICAgZGF0YS5hZGQobWFuaWZlc3RfaXRlbSkKKyAgICAgICAgICAg
IHRyeToKKyAgICAgICAgICAgICAgICBkZWwgc2VsZi5qc29uX2RhdGFbcGF0aF0KKyAgICAgICAg
ICAgIGV4Y2VwdCBLZXlFcnJvcjoKKyAgICAgICAgICAgICAgICBwYXNzCisgICAgICAgICAgICBz
ZWxmLmRhdGFba2V5XSA9IGRhdGEKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHJhaXNlIFZh
bHVlRXJyb3IKKworICAgIGRlZiBsb2FkX2FsbChzZWxmKToKKyAgICAgICAgIyB0eXBlOiAoKSAt
PiBOb25lCisgICAgICAgICIiIkxvYWQgYWxsIHRlc3QgaXRlbXMgaW4gdGhpcyBjbGFzcyIiIgor
ICAgICAgICBpZiBzZWxmLmpzb25fZGF0YSBpcyBub3QgTm9uZToKKyAgICAgICAgICAgIGZvciBw
YXRoLCB2YWx1ZSBpbiBpdGVyaXRlbXMoc2VsZi5qc29uX2RhdGEpOgorICAgICAgICAgICAgICAg
IGtleSA9IHRvX29zX3BhdGgocGF0aCkKKyAgICAgICAgICAgICAgICBpZiBrZXkgaW4gc2VsZi5k
YXRhOgorICAgICAgICAgICAgICAgICAgICBjb250aW51ZQorICAgICAgICAgICAgICAgIGRhdGEg
PSBzZXQoKQorICAgICAgICAgICAgICAgIGZvciB0ZXN0IGluIHNlbGYuanNvbl9kYXRhLmdldChw
YXRoLCBbXSk6CisgICAgICAgICAgICAgICAgICAgIG1hbmlmZXN0X2l0ZW0gPSBzZWxmLnR5cGVf
Y2xzLmZyb21fanNvbihzZWxmLm1hbmlmZXN0LCBwYXRoLCB0ZXN0KQorICAgICAgICAgICAgICAg
ICAgICBkYXRhLmFkZChtYW5pZmVzdF9pdGVtKQorICAgICAgICAgICAgICAgIHNlbGYuZGF0YVtr
ZXldID0gZGF0YQorICAgICAgICAgICAgc2VsZi5qc29uX2RhdGEgPSBOb25lCisKKyAgICBkZWYg
c2V0X2pzb24oc2VsZiwgdGVzdHNfcm9vdCwgZGF0YSk6CisgICAgICAgICMgdHlwZTogKHN0ciwg
RGljdFtUZXh0LCBBbnldKSAtPiBOb25lCisgICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKGRhdGEs
IGRpY3QpOgorICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigiR290IGEgJXMgZXhwZWN0ZWQg
YSBkaWN0IiAlICh0eXBlKGRhdGEpKSkKKyAgICAgICAgc2VsZi50ZXN0c19yb290ID0gdGVzdHNf
cm9vdAorICAgICAgICBzZWxmLmpzb25fZGF0YSA9IGRhdGEKKworICAgIGRlZiB0b19qc29uKHNl
bGYpOgorICAgICAgICAjIHR5cGU6ICgpIC0+IERpY3RbVGV4dCwgQW55XQorICAgICAgICBkYXRh
ID0geworICAgICAgICAgICAgZnJvbV9vc19wYXRoKHBhdGgpOgorICAgICAgICAgICAgW3QgZm9y
IHQgaW4gc29ydGVkKHRlc3QudG9fanNvbigpIGZvciB0ZXN0IGluIHRlc3RzKV0KKyAgICAgICAg
ICAgIGZvciBwYXRoLCB0ZXN0cyBpbiBpdGVyaXRlbXMoc2VsZi5kYXRhKQorICAgICAgICB9CisK
KyAgICAgICAgaWYgc2VsZi5qc29uX2RhdGEgaXMgbm90IE5vbmU6CisgICAgICAgICAgICBpZiBu
b3QgZGF0YToKKyAgICAgICAgICAgICAgICAjIGF2b2lkIGNvcHlpbmcgaWYgdGhlcmUncyBub3Ro
aW5nIGhlcmUgeWV0CisgICAgICAgICAgICAgICAgcmV0dXJuIHNlbGYuanNvbl9kYXRhCisgICAg
ICAgICAgICBkYXRhLnVwZGF0ZShzZWxmLmpzb25fZGF0YSkKKworICAgICAgICByZXR1cm4gZGF0
YQorCisgICAgZGVmIHBhdGhzKHNlbGYpOgorICAgICAgICAjIHR5cGU6ICgpIC0+IFNldFtUZXh0
XQorICAgICAgICAiIiJHZXQgYSBsaXN0IG9mIGFsbCBwYXRocyBjb250YWluaW5nIGl0ZW1zIG9m
IHRoaXMgdHlwZSwKKyAgICAgICAgd2l0aG91dCBhY3R1YWxseSBjb25zdHJ1Y3RpbmcgYWxsIHRo
ZSBpdGVtcyIiIgorICAgICAgICBydiA9IHNldChpdGVya2V5cyhzZWxmLmRhdGEpKQorICAgICAg
ICBpZiBzZWxmLmpzb25fZGF0YToKKyAgICAgICAgICAgIHJ2IHw9IHt0b19vc19wYXRoKGl0ZW0p
IGZvciBpdGVtIGluIGl0ZXJrZXlzKHNlbGYuanNvbl9kYXRhKX0KKyAgICAgICAgcmV0dXJuIHJ2
CisKKworaWYgTVlQWToKKyAgICBNYW5pZmVzdERhdGFUeXBlID0gRGljdFtBbnksIFR5cGVEYXRh
XQorZWxzZToKKyAgICBNYW5pZmVzdERhdGFUeXBlID0gZGljdAorCitjbGFzcyBNYW5pZmVzdERh
dGEoTWFuaWZlc3REYXRhVHlwZSk6CisgICAgZGVmIF9faW5pdF9fKHNlbGYsIG1hbmlmZXN0KToK
KyAgICAgICAgIyB0eXBlOiAoTWFuaWZlc3QpIC0+IE5vbmUKKyAgICAgICAgIiIiRGljdGlvbmFy
eSBzdWJjbGFzcyBjb250YWluaW5nIGEgVHlwZURhdGEgaW5zdGFuY2UgZm9yIGVhY2ggdGVzdCB0
eXBlLAorICAgICAgICBrZXllZCBieSB0eXBlIG5hbWUiIiIKKyAgICAgICAgc2VsZi5pbml0aWFs
aXplZCA9IEZhbHNlICAjIHR5cGU6IGJvb2wKKyAgICAgICAgZm9yIGtleSwgdmFsdWUgaW4gaXRl
cml0ZW1zKGl0ZW1fY2xhc3Nlcyk6CisgICAgICAgICAgICBzZWxmW2tleV0gPSBUeXBlRGF0YSht
YW5pZmVzdCwgdmFsdWUpCisgICAgICAgIHNlbGYuaW5pdGlhbGl6ZWQgPSBUcnVlCisgICAgICAg
IHNlbGYuanNvbl9vYmogPSBOb25lICAjIHR5cGU6IE5vbmUKKworICAgIGRlZiBfX3NldGl0ZW1f
XyhzZWxmLCBrZXksIHZhbHVlKToKKyAgICAgICAgIyB0eXBlOiAoc3RyLCBUeXBlRGF0YSkgLT4g
Tm9uZQorICAgICAgICBpZiBzZWxmLmluaXRpYWxpemVkOgorICAgICAgICAgICAgcmFpc2UgQXR0
cmlidXRlRXJyb3IKKyAgICAgICAgZGljdC5fX3NldGl0ZW1fXyhzZWxmLCBrZXksIHZhbHVlKQor
CisgICAgZGVmIHBhdGhzKHNlbGYpOgorICAgICAgICAjIHR5cGU6ICgpIC0+IFNldFtUZXh0XQor
ICAgICAgICAiIiJHZXQgYSBsaXN0IG9mIGFsbCBwYXRocyBjb250YWluaW5nIHRlc3QgaXRlbXMK
KyAgICAgICAgd2l0aG91dCBhY3R1YWxseSBjb25zdHJ1Y3RpbmcgYWxsIHRoZSBpdGVtcyIiIgor
ICAgICAgICBydiA9IHNldCgpICAjIHR5cGU6IFNldFtUZXh0XQorICAgICAgICBmb3IgaXRlbV9k
YXRhIGluIGl0ZXJ2YWx1ZXMoc2VsZik6CisgICAgICAgICAgICBydiB8PSBzZXQoaXRlbV9kYXRh
LnBhdGhzKCkpCisgICAgICAgIHJldHVybiBydgogCiAKIGNsYXNzIE1hbmlmZXN0KG9iamVjdCk6
Ci0gICAgZGVmIF9faW5pdF9fKHNlbGYsIHVybF9iYXNlPSIvIik6CisgICAgZGVmIF9faW5pdF9f
KHNlbGYsIHRlc3RzX3Jvb3Q9Tm9uZSwgdXJsX2Jhc2U9Ii8iKToKKyAgICAgICAgIyB0eXBlOiAo
T3B0aW9uYWxbc3RyXSwgVGV4dCkgLT4gTm9uZQogICAgICAgICBhc3NlcnQgdXJsX2Jhc2UgaXMg
bm90IE5vbmUKLSAgICAgICAgc2VsZi5fcGF0aF9oYXNoID0ge30KLSAgICAgICAgc2VsZi5fZGF0
YSA9IGRlZmF1bHRkaWN0KGRpY3QpCi0gICAgICAgIHNlbGYuX3JlZnRlc3Rfbm9kZXNfYnlfdXJs
ID0gTm9uZQotICAgICAgICBzZWxmLnVybF9iYXNlID0gdXJsX2Jhc2UKKyAgICAgICAgc2VsZi5f
cGF0aF9oYXNoID0ge30gICMgdHlwZTogRGljdFtUZXh0LCBUdXBsZVtUZXh0LCBUZXh0XV0KKyAg
ICAgICAgc2VsZi5fZGF0YSA9IE1hbmlmZXN0RGF0YShzZWxmKSAgIyB0eXBlOiBNYW5pZmVzdERh
dGEKKyAgICAgICAgc2VsZi5fcmVmdGVzdF9ub2Rlc19ieV91cmwgPSBOb25lICAjIHR5cGU6IE9w
dGlvbmFsW0RpY3RbVGV4dCwgVW5pb25bUmVmVGVzdCwgUmVmVGVzdE5vZGVdXV0KKyAgICAgICAg
c2VsZi50ZXN0c19yb290ID0gdGVzdHNfcm9vdCAgIyB0eXBlOiBPcHRpb25hbFtzdHJdCisgICAg
ICAgIHNlbGYudXJsX2Jhc2UgPSB1cmxfYmFzZSAgIyB0eXBlOiBUZXh0CiAKICAgICBkZWYgX19p
dGVyX18oc2VsZik6CisgICAgICAgICMgdHlwZTogKCkgLT4gSXRlcmF0b3JbVHVwbGVbc3RyLCBU
ZXh0LCBTZXRbTWFuaWZlc3RJdGVtXV1dCiAgICAgICAgIHJldHVybiBzZWxmLml0ZXJ0eXBlcygp
CiAKICAgICBkZWYgaXRlcnR5cGVzKHNlbGYsICp0eXBlcyk6Ci0gICAgICAgIGlmIG5vdCB0eXBl
czoKLSAgICAgICAgICAgIHR5cGVzID0gc29ydGVkKHNlbGYuX2RhdGEua2V5cygpKQotICAgICAg
ICBmb3IgaXRlbV90eXBlIGluIHR5cGVzOgotICAgICAgICAgICAgZm9yIHBhdGgsIHRlc3RzIGlu
IHNvcnRlZChpdGVyaXRlbXMoc2VsZi5fZGF0YVtpdGVtX3R5cGVdKSk6CisgICAgICAgICMgdHlw
ZTogKCpzdHIpIC0+IEl0ZXJhdG9yW1R1cGxlW3N0ciwgVGV4dCwgU2V0W01hbmlmZXN0SXRlbV1d
XQorICAgICAgICBmb3IgaXRlbV90eXBlIGluICh0eXBlcyBvciBzb3J0ZWQoc2VsZi5fZGF0YS5r
ZXlzKCkpKToKKyAgICAgICAgICAgIGZvciBwYXRoIGluIHNvcnRlZChzZWxmLl9kYXRhW2l0ZW1f
dHlwZV0pOgorICAgICAgICAgICAgICAgIHRlc3RzID0gc2VsZi5fZGF0YVtpdGVtX3R5cGVdW3Bh
dGhdCiAgICAgICAgICAgICAgICAgeWllbGQgaXRlbV90eXBlLCBwYXRoLCB0ZXN0cwogCiAgICAg
ZGVmIGl0ZXJwYXRoKHNlbGYsIHBhdGgpOgorICAgICAgICAjIHR5cGU6IChUZXh0KSAtPiBJdGVy
YXRvcltNYW5pZmVzdEl0ZW1dCiAgICAgICAgIGZvciB0eXBlX3Rlc3RzIGluIHNlbGYuX2RhdGEu
dmFsdWVzKCk6Ci0gICAgICAgICAgICBmb3IgdGVzdCBpbiB0eXBlX3Rlc3RzLmdldChwYXRoLCBz
ZXQoKSk6CisgICAgICAgICAgICBpID0gdHlwZV90ZXN0cy5nZXQocGF0aCwgc2V0KCkpCisgICAg
ICAgICAgICBhc3NlcnQgaSBpcyBub3QgTm9uZQorICAgICAgICAgICAgZm9yIHRlc3QgaW4gaToK
ICAgICAgICAgICAgICAgICB5aWVsZCB0ZXN0CiAKICAgICBkZWYgaXRlcmRpcihzZWxmLCBkaXJf
bmFtZSk6CisgICAgICAgICMgdHlwZTogKFRleHQpIC0+IEl0ZXJhdG9yW01hbmlmZXN0SXRlbV0K
ICAgICAgICAgaWYgbm90IGRpcl9uYW1lLmVuZHN3aXRoKG9zLnBhdGguc2VwKToKICAgICAgICAg
ICAgIGRpcl9uYW1lID0gZGlyX25hbWUgKyBvcy5wYXRoLnNlcAogICAgICAgICBmb3IgdHlwZV90
ZXN0cyBpbiBzZWxmLl9kYXRhLnZhbHVlcygpOgpAQCAtNjEsMTk2ICsyODEsMzE2IEBAIGNsYXNz
IE1hbmlmZXN0KG9iamVjdCk6CiAKICAgICBAcHJvcGVydHkKICAgICBkZWYgcmVmdGVzdF9ub2Rl
c19ieV91cmwoc2VsZik6CisgICAgICAgICMgdHlwZTogKCkgLT4gRGljdFtUZXh0LCBVbmlvbltS
ZWZUZXN0LCBSZWZUZXN0Tm9kZV1dCiAgICAgICAgIGlmIHNlbGYuX3JlZnRlc3Rfbm9kZXNfYnlf
dXJsIGlzIE5vbmU6CiAgICAgICAgICAgICBieV91cmwgPSB7fQotICAgICAgICAgICAgZm9yIHBh
dGgsIG5vZGVzIGluIGl0ZXJ0b29scy5jaGFpbihpdGVyaXRlbXMoc2VsZi5fZGF0YS5nZXQoInJl
ZnRlc3QiLCB7fSkpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBpdGVyaXRlbXMoc2VsZi5fZGF0YS5nZXQoInJlZnRlc3Rfbm9kZSIsIHt9KSkpOgorICAg
ICAgICAgICAgZm9yIHBhdGgsIG5vZGVzIGluIGl0ZXJ0b29scy5jaGFpbihpdGVyaXRlbXMoc2Vs
Zi5fZGF0YVsicmVmdGVzdCJdKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgaXRlcml0ZW1zKHNlbGYuX2RhdGFbInJlZnRlc3Rfbm9kZSJdKSk6CiAgICAg
ICAgICAgICAgICAgZm9yIG5vZGUgaW4gbm9kZXM6CisgICAgICAgICAgICAgICAgICAgIGFzc2Vy
dCBpc2luc3RhbmNlKG5vZGUsIChSZWZUZXN0LCBSZWZUZXN0Tm9kZSkpCiAgICAgICAgICAgICAg
ICAgICAgIGJ5X3VybFtub2RlLnVybF0gPSBub2RlCiAgICAgICAgICAgICBzZWxmLl9yZWZ0ZXN0
X25vZGVzX2J5X3VybCA9IGJ5X3VybAogICAgICAgICByZXR1cm4gc2VsZi5fcmVmdGVzdF9ub2Rl
c19ieV91cmwKIAogICAgIGRlZiBnZXRfcmVmZXJlbmNlKHNlbGYsIHVybCk6CisgICAgICAgICMg
dHlwZTogKFRleHQpIC0+IE9wdGlvbmFsW01hbmlmZXN0SXRlbV0KICAgICAgICAgcmV0dXJuIHNl
bGYucmVmdGVzdF9ub2Rlc19ieV91cmwuZ2V0KHVybCkKIAogICAgIGRlZiB1cGRhdGUoc2VsZiwg
dHJlZSk6Ci0gICAgICAgIG5ld19kYXRhID0gZGVmYXVsdGRpY3QoZGljdCkKLSAgICAgICAgbmV3
X2hhc2hlcyA9IHt9CisgICAgICAgICMgdHlwZTogKEl0ZXJhYmxlW1R1cGxlW1VuaW9uW1NvdXJj
ZUZpbGUsIGJ5dGVzXSwgYm9vbF1dKSAtPiBib29sCisgICAgICAgICIiIlVwZGF0ZSB0aGUgbWFu
aWZlc3QgZ2l2ZW4gYW4gaXRlcmFibGUgb2YgaXRlbXMgdGhhdCBtYWtlIHVwIHRoZSB1cGRhdGVk
IG1hbmlmZXN0LgogCi0gICAgICAgIHJlZnRlc3Rfbm9kZXMgPSBbXQotICAgICAgICBvbGRfZmls
ZXMgPSBkZWZhdWx0ZGljdChzZXQsIHtrOiBzZXQodmlld2tleXModikpIGZvciBrLCB2IGluIGl0
ZXJpdGVtcyhzZWxmLl9kYXRhKX0pCisgICAgICAgIFRoZSBpdGVyYWJsZSBtdXN0IGVpdGhlciBn
ZW5lcmF0ZSB0dXBsZXMgb2YgdGhlIGZvcm0gKFNvdXJjZUZpbGUsIFRydWUpIGZvciBwYXRocwor
ICAgICAgICB0aGF0IGFyZSB0byBiZSB1cGRhdGVkLCBvciAocGF0aCwgRmFsc2UpIGZvciBpdGVt
cyB0aGF0IGFyZSBub3QgdG8gYmUgdXBkYXRlZC4gVGhpcworICAgICAgICB1bnVzdWFsIEFQSSBp
cyBkZXNpZ25lZCBhcyBhbiBvcHRpbWlzdGFpb24gbWVhbmluZyB0aGF0IFNvdXJjZUZpbGUgaXRl
bXMgbmVlZCBub3QgYmUKKyAgICAgICAgY29uc3RydWN0ZWQgaW4gdGhlIGNhc2Ugd2UgYXJlIG5v
dCB1cGRhdGluZyBhIHBhdGgsIGJ1dCB0aGUgYWJzZW5jZSBvZiBhbiBpdGVtIGZyb20KKyAgICAg
ICAgdGhlIGl0ZXJhdG9yIG1heSBiZSB1c2VkIHRvIHJlbW92ZSBkZWZ1bmN0IGVudHJpZXMgZnJv
bSB0aGUgbWFuaWZlc3QuIiIiCisgICAgICAgIGFsbF9yZWZ0ZXN0X25vZGVzID0gW10gICMgdHlw
ZTogTGlzdFtUdXBsZVtNYW5pZmVzdEl0ZW0sIFRleHRdXQorICAgICAgICBzZWVuX2ZpbGVzID0g
c2V0KCkgICMgdHlwZTogU2V0W1RleHRdCiAKICAgICAgICAgY2hhbmdlZCA9IEZhbHNlCiAgICAg
ICAgIHJlZnRlc3RfY2hhbmdlcyA9IEZhbHNlCiAKLSAgICAgICAgZm9yIHNvdXJjZV9maWxlIGlu
IHRyZWU6Ci0gICAgICAgICAgICByZWxfcGF0aCA9IHNvdXJjZV9maWxlLnJlbF9wYXRoCi0gICAg
ICAgICAgICBmaWxlX2hhc2ggPSBzb3VyY2VfZmlsZS5oYXNoCi0KLSAgICAgICAgICAgIGlzX25l
dyA9IHJlbF9wYXRoIG5vdCBpbiBzZWxmLl9wYXRoX2hhc2gKLSAgICAgICAgICAgIGhhc2hfY2hh
bmdlZCA9IEZhbHNlCi0KLSAgICAgICAgICAgIGlmIG5vdCBpc19uZXc6Ci0gICAgICAgICAgICAg
ICAgb2xkX2hhc2gsIG9sZF90eXBlID0gc2VsZi5fcGF0aF9oYXNoW3JlbF9wYXRoXQotICAgICAg
ICAgICAgICAgIG9sZF9maWxlc1tvbGRfdHlwZV0ucmVtb3ZlKHJlbF9wYXRoKQotICAgICAgICAg
ICAgICAgIGlmIG9sZF9oYXNoICE9IGZpbGVfaGFzaDoKLSAgICAgICAgICAgICAgICAgICAgbmV3
X3R5cGUsIG1hbmlmZXN0X2l0ZW1zID0gc291cmNlX2ZpbGUubWFuaWZlc3RfaXRlbXMoKQotICAg
ICAgICAgICAgICAgICAgICBoYXNoX2NoYW5nZWQgPSBUcnVlCi0gICAgICAgICAgICAgICAgZWxz
ZToKLSAgICAgICAgICAgICAgICAgICAgbmV3X3R5cGUsIG1hbmlmZXN0X2l0ZW1zID0gb2xkX3R5
cGUsIHNlbGYuX2RhdGFbb2xkX3R5cGVdW3JlbF9wYXRoXQotICAgICAgICAgICAgICAgIGlmIG9s
ZF90eXBlIGluICgicmVmdGVzdCIsICJyZWZ0ZXN0X25vZGUiKSBhbmQgbmV3X3R5cGUgIT0gb2xk
X3R5cGU6Ci0gICAgICAgICAgICAgICAgICAgIHJlZnRlc3RfY2hhbmdlcyA9IFRydWUKKyAgICAg
ICAgIyBDcmVhdGUgbG9jYWwgdmFyaWFibGUgcmVmZXJlbmNlcyB0byB0aGVzZSBkaWN0cyBzbyB3
ZSBhdm9pZCB0aGUKKyAgICAgICAgIyBhdHRyaWJ1dGUgYWNjZXNzIGluIHRoZSBob3QgbG9vcCBi
ZWxvdworICAgICAgICBwYXRoX2hhc2ggPSBzZWxmLl9wYXRoX2hhc2ggICMgdHlwZTogRGljdFtU
ZXh0LCBUdXBsZVtUZXh0LCBUZXh0XV0KKyAgICAgICAgZGF0YSA9IHNlbGYuX2RhdGEKKworICAg
ICAgICBwcmV2X2ZpbGVzID0gZGF0YS5wYXRocygpICAjIHR5cGU6IFNldFtUZXh0XQorCisgICAg
ICAgIHJlZnRlc3RfdHlwZXMgPSAoInJlZnRlc3QiLCAicmVmdGVzdF9ub2RlIikKKworICAgICAg
ICBmb3Igc291cmNlX2ZpbGUsIHVwZGF0ZSBpbiB0cmVlOgorICAgICAgICAgICAgaWYgbm90IHVw
ZGF0ZToKKyAgICAgICAgICAgICAgICBhc3NlcnQgaXNpbnN0YW5jZShzb3VyY2VfZmlsZSwgKGJp
bmFyeV90eXBlLCB0ZXh0X3R5cGUpKQorICAgICAgICAgICAgICAgIHJlbF9wYXRoID0gc291cmNl
X2ZpbGUgICMgdHlwZTogVGV4dAorICAgICAgICAgICAgICAgIHNlZW5fZmlsZXMuYWRkKHJlbF9w
YXRoKQorICAgICAgICAgICAgICAgIGFzc2VydCByZWxfcGF0aCBpbiBwYXRoX2hhc2gKKyAgICAg
ICAgICAgICAgICBvbGRfaGFzaCwgb2xkX3R5cGUgPSBwYXRoX2hhc2hbcmVsX3BhdGhdICAjIHR5
cGU6IFR1cGxlW1RleHQsIFRleHRdCisgICAgICAgICAgICAgICAgaWYgb2xkX3R5cGUgaW4gcmVm
dGVzdF90eXBlczoKKyAgICAgICAgICAgICAgICAgICAgbWFuaWZlc3RfaXRlbXMgPSBkYXRhW29s
ZF90eXBlXVtyZWxfcGF0aF0gICMgdHlwZTogSXRlcmFibGVbTWFuaWZlc3RJdGVtXQorICAgICAg
ICAgICAgICAgICAgICBhbGxfcmVmdGVzdF9ub2Rlcy5leHRlbmQoKGl0ZW0sIG9sZF9oYXNoKSBm
b3IgaXRlbSBpbiBtYW5pZmVzdF9pdGVtcykKICAgICAgICAgICAgIGVsc2U6Ci0gICAgICAgICAg
ICAgICAgbmV3X3R5cGUsIG1hbmlmZXN0X2l0ZW1zID0gc291cmNlX2ZpbGUubWFuaWZlc3RfaXRl
bXMoKQotCi0gICAgICAgICAgICBpZiBuZXdfdHlwZSBpbiAoInJlZnRlc3QiLCAicmVmdGVzdF9u
b2RlIik6Ci0gICAgICAgICAgICAgICAgcmVmdGVzdF9ub2Rlcy5leHRlbmQobWFuaWZlc3RfaXRl
bXMpCi0gICAgICAgICAgICAgICAgaWYgaXNfbmV3IG9yIGhhc2hfY2hhbmdlZDoKLSAgICAgICAg
ICAgICAgICAgICAgcmVmdGVzdF9jaGFuZ2VzID0gVHJ1ZQotICAgICAgICAgICAgZWxpZiBuZXdf
dHlwZToKLSAgICAgICAgICAgICAgICBuZXdfZGF0YVtuZXdfdHlwZV1bcmVsX3BhdGhdID0gc2V0
KG1hbmlmZXN0X2l0ZW1zKQotCi0gICAgICAgICAgICBuZXdfaGFzaGVzW3JlbF9wYXRoXSA9IChm
aWxlX2hhc2gsIG5ld190eXBlKQorICAgICAgICAgICAgICAgIGFzc2VydCBub3QgaXNpbnN0YW5j
ZShzb3VyY2VfZmlsZSwgYnl0ZXMpCisgICAgICAgICAgICAgICAgcmVsX3BhdGggPSBzb3VyY2Vf
ZmlsZS5yZWxfcGF0aAorICAgICAgICAgICAgICAgIHNlZW5fZmlsZXMuYWRkKHJlbF9wYXRoKQor
CisgICAgICAgICAgICAgICAgZmlsZV9oYXNoID0gc291cmNlX2ZpbGUuaGFzaCAgIyB0eXBlOiBU
ZXh0CisKKyAgICAgICAgICAgICAgICBpc19uZXcgPSByZWxfcGF0aCBub3QgaW4gcGF0aF9oYXNo
ICAjIHR5cGU6IGJvb2wKKyAgICAgICAgICAgICAgICBoYXNoX2NoYW5nZWQgPSBGYWxzZSAgIyB0
eXBlOiBib29sCisKKyAgICAgICAgICAgICAgICBpZiBub3QgaXNfbmV3OgorICAgICAgICAgICAg
ICAgICAgICBvbGRfaGFzaCwgb2xkX3R5cGUgPSBwYXRoX2hhc2hbcmVsX3BhdGhdCisgICAgICAg
ICAgICAgICAgICAgIGlmIG9sZF9oYXNoICE9IGZpbGVfaGFzaDoKKyAgICAgICAgICAgICAgICAg
ICAgICAgIG5ld190eXBlLCBtYW5pZmVzdF9pdGVtcyA9IHNvdXJjZV9maWxlLm1hbmlmZXN0X2l0
ZW1zKCkKKyAgICAgICAgICAgICAgICAgICAgICAgIGhhc2hfY2hhbmdlZCA9IFRydWUKKyAgICAg
ICAgICAgICAgICAgICAgICAgIGlmIG5ld190eXBlICE9IG9sZF90eXBlOgorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGRlbCBkYXRhW29sZF90eXBlXVtyZWxfcGF0aF0KKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBpZiBvbGRfdHlwZSBpbiByZWZ0ZXN0X3R5cGVzOgorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICByZWZ0ZXN0X2NoYW5nZXMgPSBUcnVlCisgICAgICAgICAg
ICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgICAgICAgICBuZXdfdHlwZSA9IG9sZF90
eXBlCisgICAgICAgICAgICAgICAgICAgICAgICBpZiBvbGRfdHlwZSBpbiByZWZ0ZXN0X3R5cGVz
OgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hbmlmZXN0X2l0ZW1zID0gZGF0YVtvbGRf
dHlwZV1bcmVsX3BhdGhdCisgICAgICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICAg
ICAgbmV3X3R5cGUsIG1hbmlmZXN0X2l0ZW1zID0gc291cmNlX2ZpbGUubWFuaWZlc3RfaXRlbXMo
KQogCi0gICAgICAgICAgICBpZiBpc19uZXcgb3IgaGFzaF9jaGFuZ2VkOgotICAgICAgICAgICAg
ICAgIGNoYW5nZWQgPSBUcnVlCisgICAgICAgICAgICAgICAgaWYgbmV3X3R5cGUgaW4gcmVmdGVz
dF90eXBlczoKKyAgICAgICAgICAgICAgICAgICAgYWxsX3JlZnRlc3Rfbm9kZXMuZXh0ZW5kKChp
dGVtLCBmaWxlX2hhc2gpIGZvciBpdGVtIGluIG1hbmlmZXN0X2l0ZW1zKQorICAgICAgICAgICAg
ICAgICAgICBpZiBpc19uZXcgb3IgaGFzaF9jaGFuZ2VkOgorICAgICAgICAgICAgICAgICAgICAg
ICAgcmVmdGVzdF9jaGFuZ2VzID0gVHJ1ZQorICAgICAgICAgICAgICAgIGVsaWYgaXNfbmV3IG9y
IGhhc2hfY2hhbmdlZDoKKyAgICAgICAgICAgICAgICAgICAgZGF0YVtuZXdfdHlwZV1bcmVsX3Bh
dGhdID0gc2V0KG1hbmlmZXN0X2l0ZW1zKQogCi0gICAgICAgIGlmIHJlZnRlc3RfY2hhbmdlcyBv
ciBvbGRfZmlsZXNbInJlZnRlc3QiXSBvciBvbGRfZmlsZXNbInJlZnRlc3Rfbm9kZSJdOgotICAg
ICAgICAgICAgcmVmdGVzdHMsIHJlZnRlc3Rfbm9kZXMsIGNoYW5nZWRfaGFzaGVzID0gc2VsZi5f
Y29tcHV0ZV9yZWZ0ZXN0cyhyZWZ0ZXN0X25vZGVzKQotICAgICAgICAgICAgbmV3X2RhdGFbInJl
ZnRlc3QiXSA9IHJlZnRlc3RzCi0gICAgICAgICAgICBuZXdfZGF0YVsicmVmdGVzdF9ub2RlIl0g
PSByZWZ0ZXN0X25vZGVzCi0gICAgICAgICAgICBuZXdfaGFzaGVzLnVwZGF0ZShjaGFuZ2VkX2hh
c2hlcykKLSAgICAgICAgZWxzZToKLSAgICAgICAgICAgIG5ld19kYXRhWyJyZWZ0ZXN0Il0gPSBz
ZWxmLl9kYXRhWyJyZWZ0ZXN0Il0KLSAgICAgICAgICAgIG5ld19kYXRhWyJyZWZ0ZXN0X25vZGUi
XSA9IHNlbGYuX2RhdGFbInJlZnRlc3Rfbm9kZSJdCisgICAgICAgICAgICAgICAgaWYgaXNfbmV3
IG9yIGhhc2hfY2hhbmdlZDoKKyAgICAgICAgICAgICAgICAgICAgcGF0aF9oYXNoW3JlbF9wYXRo
XSA9IChmaWxlX2hhc2gsIG5ld190eXBlKQorICAgICAgICAgICAgICAgICAgICBjaGFuZ2VkID0g
VHJ1ZQogCi0gICAgICAgIGlmIGFueShpdGVydmFsdWVzKG9sZF9maWxlcykpOgorICAgICAgICBk
ZWxldGVkID0gcHJldl9maWxlcyAtIHNlZW5fZmlsZXMKKyAgICAgICAgaWYgZGVsZXRlZDoKICAg
ICAgICAgICAgIGNoYW5nZWQgPSBUcnVlCisgICAgICAgICAgICBmb3IgcmVsX3BhdGggaW4gZGVs
ZXRlZDoKKyAgICAgICAgICAgICAgICBpZiByZWxfcGF0aCBpbiBwYXRoX2hhc2g6CisgICAgICAg
ICAgICAgICAgICAgIF8sIG9sZF90eXBlID0gcGF0aF9oYXNoW3JlbF9wYXRoXQorICAgICAgICAg
ICAgICAgICAgICBpZiBvbGRfdHlwZSBpbiByZWZ0ZXN0X3R5cGVzOgorICAgICAgICAgICAgICAg
ICAgICAgICAgcmVmdGVzdF9jaGFuZ2VzID0gVHJ1ZQorICAgICAgICAgICAgICAgICAgICBkZWwg
cGF0aF9oYXNoW3JlbF9wYXRoXQorICAgICAgICAgICAgICAgICAgICB0cnk6CisgICAgICAgICAg
ICAgICAgICAgICAgICBkZWwgZGF0YVtvbGRfdHlwZV1bcmVsX3BhdGhdCisgICAgICAgICAgICAg
ICAgICAgIGV4Y2VwdCBLZXlFcnJvcjoKKyAgICAgICAgICAgICAgICAgICAgICAgIHBhc3MKKyAg
ICAgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgICAgICBmb3IgdGVzdF9kYXRhIGlu
IGl0ZXJ2YWx1ZXMoZGF0YSk6CisgICAgICAgICAgICAgICAgICAgICAgICBpZiByZWxfcGF0aCBp
biB0ZXN0X2RhdGE6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVsIHRlc3RfZGF0YVty
ZWxfcGF0aF0KKworICAgICAgICBpZiByZWZ0ZXN0X2NoYW5nZXM6CisgICAgICAgICAgICByZWZ0
ZXN0cywgcmVmdGVzdF9ub2RlcywgY2hhbmdlZF9oYXNoZXMgPSBzZWxmLl9jb21wdXRlX3JlZnRl
c3RzKGFsbF9yZWZ0ZXN0X25vZGVzKQorICAgICAgICAgICAgcmVmdGVzdF9kYXRhID0gZGF0YVsi
cmVmdGVzdCJdCisgICAgICAgICAgICByZWZ0ZXN0X2RhdGEuY2xlYXIoKQorICAgICAgICAgICAg
Zm9yIHBhdGgsIGl0ZW1zIGluIGl0ZXJpdGVtcyhyZWZ0ZXN0cyk6CisgICAgICAgICAgICAgICAg
aWYgTVlQWToKKyAgICAgICAgICAgICAgICAgICAgcmVmdGVzdF9kYXRhW3BhdGhdID0gY2FzdChT
ZXRbTWFuaWZlc3RJdGVtXSwgaXRlbXMpCisgICAgICAgICAgICAgICAgZWxzZToKKyAgICAgICAg
ICAgICAgICAgICAgcmVmdGVzdF9kYXRhW3BhdGhdID0gaXRlbXMKKworICAgICAgICAgICAgcmVm
dGVzdF9ub2RlX2RhdGEgPSBkYXRhWyJyZWZ0ZXN0X25vZGUiXQorICAgICAgICAgICAgcmVmdGVz
dF9ub2RlX2RhdGEuY2xlYXIoKQorICAgICAgICAgICAgZm9yIG5vZGVfcGF0aCwgbm9kZV9pdGVt
cyBpbiBpdGVyaXRlbXMocmVmdGVzdF9ub2Rlcyk6CisgICAgICAgICAgICAgICAgaWYgTVlQWToK
KyAgICAgICAgICAgICAgICAgICAgcmVmdGVzdF9ub2RlX2RhdGFbbm9kZV9wYXRoXSA9IGNhc3Qo
U2V0W01hbmlmZXN0SXRlbV0sIG5vZGVfaXRlbXMpCisgICAgICAgICAgICAgICAgZWxzZToKKyAg
ICAgICAgICAgICAgICAgICAgcmVmdGVzdF9ub2RlX2RhdGFbbm9kZV9wYXRoXSA9IG5vZGVfaXRl
bXMKIAotICAgICAgICBzZWxmLl9kYXRhID0gbmV3X2RhdGEKLSAgICAgICAgc2VsZi5fcGF0aF9o
YXNoID0gbmV3X2hhc2hlcworICAgICAgICAgICAgcGF0aF9oYXNoLnVwZGF0ZShjaGFuZ2VkX2hh
c2hlcykKIAogICAgICAgICByZXR1cm4gY2hhbmdlZAogCi0gICAgZGVmIF9jb21wdXRlX3JlZnRl
c3RzKHNlbGYsIHJlZnRlc3Rfbm9kZXMpOgorICAgIGRlZiBfY29tcHV0ZV9yZWZ0ZXN0cyhzZWxm
LAorICAgICAgICAgICAgICAgICAgICAgICAgICByZWZ0ZXN0X25vZGVzICAjIHR5cGU6IExpc3Rb
VHVwbGVbTWFuaWZlc3RJdGVtLCBUZXh0XV0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgKToK
KyAgICAgICAgIyB0eXBlOiAoLi4uKSAtPiBUdXBsZVtEaWN0W1RleHQsIFNldFtSZWZUZXN0XV0s
IERpY3RbVGV4dCwgU2V0W1JlZlRlc3ROb2RlXV0sIERpY3RbVGV4dCwgVHVwbGVbVGV4dCwgVGV4
dF1dXQogICAgICAgICBzZWxmLl9yZWZ0ZXN0X25vZGVzX2J5X3VybCA9IHt9CiAgICAgICAgIGhh
c19pbmJvdW5kID0gc2V0KCkKLSAgICAgICAgZm9yIGl0ZW0gaW4gcmVmdGVzdF9ub2RlczoKKyAg
ICAgICAgZm9yIGl0ZW0sIF8gaW4gcmVmdGVzdF9ub2RlczoKKyAgICAgICAgICAgIGFzc2VydCBp
c2luc3RhbmNlKGl0ZW0sIChSZWZUZXN0Tm9kZSwgUmVmVGVzdCkpCiAgICAgICAgICAgICBmb3Ig
cmVmX3VybCwgcmVmX3R5cGUgaW4gaXRlbS5yZWZlcmVuY2VzOgogICAgICAgICAgICAgICAgIGhh
c19pbmJvdW5kLmFkZChyZWZfdXJsKQogCi0gICAgICAgIHJlZnRlc3RzID0gZGVmYXVsdGRpY3Qo
c2V0KQotICAgICAgICByZWZlcmVuY2VzID0gZGVmYXVsdGRpY3Qoc2V0KQotICAgICAgICBjaGFu
Z2VkX2hhc2hlcyA9IHt9CisgICAgICAgIHJlZnRlc3RzID0gZGVmYXVsdGRpY3Qoc2V0KSAgIyB0
eXBlOiBEaWN0W1RleHQsIFNldFtSZWZUZXN0XV0KKyAgICAgICAgcmVmZXJlbmNlcyA9IGRlZmF1
bHRkaWN0KHNldCkgICMgdHlwZTogRGljdFtUZXh0LCBTZXRbUmVmVGVzdE5vZGVdXQorICAgICAg
ICBjaGFuZ2VkX2hhc2hlcyA9IHt9ICAjIHR5cGU6IERpY3RbVGV4dCwgVHVwbGVbVGV4dCwgVGV4
dF1dCiAKLSAgICAgICAgZm9yIGl0ZW0gaW4gcmVmdGVzdF9ub2RlczoKKyAgICAgICAgZm9yIGl0
ZW0sIGZpbGVfaGFzaCBpbiByZWZ0ZXN0X25vZGVzOgorICAgICAgICAgICAgYXNzZXJ0IGlzaW5z
dGFuY2UoaXRlbSwgKFJlZlRlc3ROb2RlLCBSZWZUZXN0KSkKICAgICAgICAgICAgIGlmIGl0ZW0u
dXJsIGluIGhhc19pbmJvdW5kOgogICAgICAgICAgICAgICAgICMgVGhpcyBpcyBhIHJlZmVyZW5j
ZQogICAgICAgICAgICAgICAgIGlmIGlzaW5zdGFuY2UoaXRlbSwgUmVmVGVzdCk6CiAgICAgICAg
ICAgICAgICAgICAgIGl0ZW0gPSBpdGVtLnRvX1JlZlRlc3ROb2RlKCkKLSAgICAgICAgICAgICAg
ICAgICAgY2hhbmdlZF9oYXNoZXNbaXRlbS5zb3VyY2VfZmlsZS5yZWxfcGF0aF0gPSAoaXRlbS5z
b3VyY2VfZmlsZS5oYXNoLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBpdGVtLml0ZW1fdHlwZSkKLSAgICAgICAgICAgICAg
ICByZWZlcmVuY2VzW2l0ZW0uc291cmNlX2ZpbGUucmVsX3BhdGhdLmFkZChpdGVtKQorICAgICAg
ICAgICAgICAgICAgICBjaGFuZ2VkX2hhc2hlc1tpdGVtLnBhdGhdID0gKGZpbGVfaGFzaCwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpdGVtLml0ZW1f
dHlwZSkKKyAgICAgICAgICAgICAgICBhc3NlcnQgaXNpbnN0YW5jZShpdGVtLCBSZWZUZXN0Tm9k
ZSkKKyAgICAgICAgICAgICAgICByZWZlcmVuY2VzW2l0ZW0ucGF0aF0uYWRkKGl0ZW0pCiAgICAg
ICAgICAgICBlbHNlOgogICAgICAgICAgICAgICAgIGlmIGlzaW5zdGFuY2UoaXRlbSwgUmVmVGVz
dE5vZGUpOgogICAgICAgICAgICAgICAgICAgICBpdGVtID0gaXRlbS50b19SZWZUZXN0KCkKLSAg
ICAgICAgICAgICAgICAgICAgY2hhbmdlZF9oYXNoZXNbaXRlbS5zb3VyY2VfZmlsZS5yZWxfcGF0
aF0gPSAoaXRlbS5zb3VyY2VfZmlsZS5oYXNoLAotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpdGVtLml0ZW1fdHlwZSkKLSAg
ICAgICAgICAgICAgICByZWZ0ZXN0c1tpdGVtLnNvdXJjZV9maWxlLnJlbF9wYXRoXS5hZGQoaXRl
bSkKKyAgICAgICAgICAgICAgICAgICAgY2hhbmdlZF9oYXNoZXNbaXRlbS5wYXRoXSA9IChmaWxl
X2hhc2gsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
aXRlbS5pdGVtX3R5cGUpCisgICAgICAgICAgICAgICAgYXNzZXJ0IGlzaW5zdGFuY2UoaXRlbSwg
UmVmVGVzdCkKKyAgICAgICAgICAgICAgICByZWZ0ZXN0c1tpdGVtLnBhdGhdLmFkZChpdGVtKQor
ICAgICAgICAgICAgYXNzZXJ0IGlzaW5zdGFuY2UoaXRlbSwgKFJlZlRlc3ROb2RlLCBSZWZUZXN0
KSkKICAgICAgICAgICAgIHNlbGYuX3JlZnRlc3Rfbm9kZXNfYnlfdXJsW2l0ZW0udXJsXSA9IGl0
ZW0KIAogICAgICAgICByZXR1cm4gcmVmdGVzdHMsIHJlZmVyZW5jZXMsIGNoYW5nZWRfaGFzaGVz
CiAKICAgICBkZWYgdG9fanNvbihzZWxmKToKKyAgICAgICAgIyB0eXBlOiAoKSAtPiBEaWN0W1Rl
eHQsIEFueV0KICAgICAgICAgb3V0X2l0ZW1zID0gewotICAgICAgICAgICAgdGVzdF90eXBlOiB7
Ci0gICAgICAgICAgICAgICAgZnJvbV9vc19wYXRoKHBhdGgpOgotICAgICAgICAgICAgICAgIFt0
IGZvciB0IGluIHNvcnRlZCh0ZXN0LnRvX2pzb24oKSBmb3IgdGVzdCBpbiB0ZXN0cyldCi0gICAg
ICAgICAgICAgICAgZm9yIHBhdGgsIHRlc3RzIGluIGl0ZXJpdGVtcyh0eXBlX3BhdGhzKQotICAg
ICAgICAgICAgfQotICAgICAgICAgICAgZm9yIHRlc3RfdHlwZSwgdHlwZV9wYXRocyBpbiBpdGVy
aXRlbXMoc2VsZi5fZGF0YSkKKyAgICAgICAgICAgIHRlc3RfdHlwZTogdHlwZV9wYXRocy50b19q
c29uKCkKKyAgICAgICAgICAgIGZvciB0ZXN0X3R5cGUsIHR5cGVfcGF0aHMgaW4gaXRlcml0ZW1z
KHNlbGYuX2RhdGEpIGlmIHR5cGVfcGF0aHMKICAgICAgICAgfQogICAgICAgICBydiA9IHsidXJs
X2Jhc2UiOiBzZWxmLnVybF9iYXNlLAogICAgICAgICAgICAgICAicGF0aHMiOiB7ZnJvbV9vc19w
YXRoKGspOiB2IGZvciBrLCB2IGluIGl0ZXJpdGVtcyhzZWxmLl9wYXRoX2hhc2gpfSwKICAgICAg
ICAgICAgICAgIml0ZW1zIjogb3V0X2l0ZW1zLAotICAgICAgICAgICAgICAidmVyc2lvbiI6IENV
UlJFTlRfVkVSU0lPTn0KKyAgICAgICAgICAgICAgInZlcnNpb24iOiBDVVJSRU5UX1ZFUlNJT059
ICAjIHR5cGU6IERpY3RbVGV4dCwgQW55XQogICAgICAgICByZXR1cm4gcnYKIAogICAgIEBjbGFz
c21ldGhvZAotICAgIGRlZiBmcm9tX2pzb24oY2xzLCB0ZXN0c19yb290LCBvYmosIHR5cGVzPU5v
bmUsIG1ldGFfZmlsdGVycz1Ob25lKToKKyAgICBkZWYgZnJvbV9qc29uKGNscywgdGVzdHNfcm9v
dCwgb2JqLCB0eXBlcz1Ob25lKToKKyAgICAgICAgIyB0eXBlOiAoc3RyLCBEaWN0W1RleHQsIEFu
eV0sIE9wdGlvbmFsW0NvbnRhaW5lcltUZXh0XV0pIC0+IE1hbmlmZXN0CiAgICAgICAgIHZlcnNp
b24gPSBvYmouZ2V0KCJ2ZXJzaW9uIikKICAgICAgICAgaWYgdmVyc2lvbiAhPSBDVVJSRU5UX1ZF
UlNJT046CiAgICAgICAgICAgICByYWlzZSBNYW5pZmVzdFZlcnNpb25NaXNtYXRjaAogCi0gICAg
ICAgIHNlbGYgPSBjbHModXJsX2Jhc2U9b2JqLmdldCgidXJsX2Jhc2UiLCAiLyIpKQorICAgICAg
ICBzZWxmID0gY2xzKHRlc3RzX3Jvb3QsIHVybF9iYXNlPW9iai5nZXQoInVybF9iYXNlIiwgIi8i
KSkKICAgICAgICAgaWYgbm90IGhhc2F0dHIob2JqLCAiaXRlbXMiKSBhbmQgaGFzYXR0cihvYmos
ICJwYXRocyIpOgogICAgICAgICAgICAgcmFpc2UgTWFuaWZlc3RFcnJvcgogCiAgICAgICAgIHNl
bGYuX3BhdGhfaGFzaCA9IHt0b19vc19wYXRoKGspOiB2IGZvciBrLCB2IGluIGl0ZXJpdGVtcyhv
YmpbInBhdGhzIl0pfQogCi0gICAgICAgIGl0ZW1fY2xhc3NlcyA9IHsidGVzdGhhcm5lc3MiOiBU
ZXN0aGFybmVzc1Rlc3QsCi0gICAgICAgICAgICAgICAgICAgICAgICAicmVmdGVzdCI6IFJlZlRl
c3QsCi0gICAgICAgICAgICAgICAgICAgICAgICAicmVmdGVzdF9ub2RlIjogUmVmVGVzdE5vZGUs
Ci0gICAgICAgICAgICAgICAgICAgICAgICAibWFudWFsIjogTWFudWFsVGVzdCwKLSAgICAgICAg
ICAgICAgICAgICAgICAgICJzdHViIjogU3R1YiwKLSAgICAgICAgICAgICAgICAgICAgICAgICJ3
ZHNwZWMiOiBXZWJkcml2ZXJTcGVjVGVzdCwKLSAgICAgICAgICAgICAgICAgICAgICAgICJjb25m
b3JtYW5jZWNoZWNrZXIiOiBDb25mb3JtYW5jZUNoZWNrZXJUZXN0LAotICAgICAgICAgICAgICAg
ICAgICAgICAgInZpc3VhbCI6IFZpc3VhbFRlc3QsCi0gICAgICAgICAgICAgICAgICAgICAgICAi
c3VwcG9ydCI6IFN1cHBvcnRGaWxlfQotCi0gICAgICAgIG1ldGFfZmlsdGVycyA9IG1ldGFfZmls
dGVycyBvciBbXQotCi0gICAgICAgIHNvdXJjZV9maWxlcyA9IHt9Ci0KICAgICAgICAgZm9yIHRl
c3RfdHlwZSwgdHlwZV9wYXRocyBpbiBpdGVyaXRlbXMob2JqWyJpdGVtcyJdKToKKyAgICAgICAg
ICAgICMgRHJvcCAic3R1YiIgaXRlbXMsIHdoaWNoIGFyZSBubyBsb25nZXIgc3VwcG9ydGVkIGJ1
dCBtYXkgYmUKKyAgICAgICAgICAgICMgcHJlc2VudCB3aGVuIGRvaW5nIGFuIGluY3JlbWVudGFs
IG1hbmlmZXN0IHVwZGF0ZS4KKyAgICAgICAgICAgICMgU2VlIGh0dHBzOi8vZ2l0aHViLmNvbS93
ZWItcGxhdGZvcm0tdGVzdHMvcmZjcy9wdWxsLzI3IGZvciBiYWNrZ3JvdW5kLgorICAgICAgICAg
ICAgIworICAgICAgICAgICAgIyBUT0RPKE1BTklGRVNUdjcpOiByZW1vdmUgdGhpcyBjb25kaXRp
b24KKyAgICAgICAgICAgIGlmIHRlc3RfdHlwZSA9PSAic3R1YiI6CisgICAgICAgICAgICAgICAg
Y29udGludWUKKwogICAgICAgICAgICAgaWYgdGVzdF90eXBlIG5vdCBpbiBpdGVtX2NsYXNzZXM6
CiAgICAgICAgICAgICAgICAgcmFpc2UgTWFuaWZlc3RFcnJvcgogCiAgICAgICAgICAgICBpZiB0
eXBlcyBhbmQgdGVzdF90eXBlIG5vdCBpbiB0eXBlczoKICAgICAgICAgICAgICAgICBjb250aW51
ZQogCi0gICAgICAgICAgICB0ZXN0X2NscyA9IGl0ZW1fY2xhc3Nlc1t0ZXN0X3R5cGVdCi0gICAg
ICAgICAgICB0ZXN0cyA9IGRlZmF1bHRkaWN0KHNldCkKLSAgICAgICAgICAgIGZvciBwYXRoLCBt
YW5pZmVzdF90ZXN0cyBpbiBpdGVyaXRlbXModHlwZV9wYXRocyk6Ci0gICAgICAgICAgICAgICAg
cGF0aCA9IHRvX29zX3BhdGgocGF0aCkKLSAgICAgICAgICAgICAgICBmb3IgdGVzdCBpbiBpdGVy
ZmlsdGVyKG1ldGFfZmlsdGVycywgbWFuaWZlc3RfdGVzdHMpOgotICAgICAgICAgICAgICAgICAg
ICBtYW5pZmVzdF9pdGVtID0gdGVzdF9jbHMuZnJvbV9qc29uKHNlbGYsCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGVzdHNfcm9vdCwKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXRo
LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHRlc3QsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgc291cmNlX2ZpbGVzPXNvdXJjZV9maWxlcykKLSAgICAgICAgICAgICAgICAgICAgdGVz
dHNbcGF0aF0uYWRkKG1hbmlmZXN0X2l0ZW0pCi0gICAgICAgICAgICBzZWxmLl9kYXRhW3Rlc3Rf
dHlwZV0gPSB0ZXN0cworICAgICAgICAgICAgc2VsZi5fZGF0YVt0ZXN0X3R5cGVdLnNldF9qc29u
KHRlc3RzX3Jvb3QsIHR5cGVfcGF0aHMpCiAKICAgICAgICAgcmV0dXJuIHNlbGYKIAogCi1kZWYg
bG9hZCh0ZXN0c19yb290LCBtYW5pZmVzdCwgdHlwZXM9Tm9uZSwgbWV0YV9maWx0ZXJzPU5vbmUp
OgorZGVmIGxvYWQodGVzdHNfcm9vdCwgbWFuaWZlc3QsIHR5cGVzPU5vbmUpOgorICAgICMgdHlw
ZTogKHN0ciwgVW5pb25bSU9bYnl0ZXNdLCBzdHJdLCBPcHRpb25hbFtDb250YWluZXJbVGV4dF1d
KSAtPiBPcHRpb25hbFtNYW5pZmVzdF0KICAgICBsb2dnZXIgPSBnZXRfbG9nZ2VyKCkKIAotICAg
ICMgIm1hbmlmZXN0IiBpcyBhIHBhdGggb3IgZmlsZS1saWtlIG9iamVjdC4KKyAgICBsb2dnZXIu
d2FybmluZygiUHJlZmVyIGxvYWRfYW5kX3VwZGF0ZSBpbnN0ZWFkIikKKyAgICByZXR1cm4gX2xv
YWQobG9nZ2VyLCB0ZXN0c19yb290LCBtYW5pZmVzdCwgdHlwZXMpCisKKworX19sb2FkX2NhY2hl
ID0ge30gICMgdHlwZTogRGljdFtzdHIsIE1hbmlmZXN0XQorCisKK2RlZiBfbG9hZChsb2dnZXIs
ICAjIHR5cGU6IExvZ2dlcgorICAgICAgICAgIHRlc3RzX3Jvb3QsICAjIHR5cGU6IHN0cgorICAg
ICAgICAgIG1hbmlmZXN0LCAgIyB0eXBlOiBVbmlvbltJT1tieXRlc10sIHN0cl0KKyAgICAgICAg
ICB0eXBlcz1Ob25lLCAgIyB0eXBlOiBPcHRpb25hbFtDb250YWluZXJbVGV4dF1dCisgICAgICAg
ICAgYWxsb3dfY2FjaGVkPVRydWUgICMgdHlwZTogYm9vbAorICAgICAgICAgICk6CisgICAgIyB0
eXBlOiAoLi4uKSAtPiBPcHRpb25hbFtNYW5pZmVzdF0KKyAgICBtYW5pZmVzdF9wYXRoID0gKG1h
bmlmZXN0IGlmIGlzaW5zdGFuY2UobWFuaWZlc3QsIHN0cmluZ190eXBlcykKKyAgICAgICAgICAg
ICAgICAgICAgIGVsc2UgbWFuaWZlc3QubmFtZSkKKyAgICBpZiBhbGxvd19jYWNoZWQgYW5kIG1h
bmlmZXN0X3BhdGggaW4gX19sb2FkX2NhY2hlOgorICAgICAgICByZXR1cm4gX19sb2FkX2NhY2hl
W21hbmlmZXN0X3BhdGhdCisKICAgICBpZiBpc2luc3RhbmNlKG1hbmlmZXN0LCBzdHJpbmdfdHlw
ZXMpOgogICAgICAgICBpZiBvcy5wYXRoLmV4aXN0cyhtYW5pZmVzdCk6CiAgICAgICAgICAgICBs
b2dnZXIuZGVidWcoIk9wZW5pbmcgbWFuaWZlc3QgYXQgJXMiICUgbWFuaWZlc3QpCiAgICAgICAg
IGVsc2U6CiAgICAgICAgICAgICBsb2dnZXIuZGVidWcoIkNyZWF0aW5nIG5ldyBtYW5pZmVzdCBh
dCAlcyIgJSBtYW5pZmVzdCkKICAgICAgICAgdHJ5OgotICAgICAgICAgICAgd2l0aCBvcGVuKG1h
bmlmZXN0KSBhcyBmOgotICAgICAgICAgICAgICAgIHJ2ID0gTWFuaWZlc3QuZnJvbV9qc29uKHRl
c3RzX3Jvb3QsIGpzb24ubG9hZChmKSwgdHlwZXM9dHlwZXMsIG1ldGFfZmlsdGVycz1tZXRhX2Zp
bHRlcnMpCisgICAgICAgICAgICB3aXRoIG9wZW4obWFuaWZlc3QsICJyYiIpIGFzIGY6CisgICAg
ICAgICAgICAgICAgcnYgPSBNYW5pZmVzdC5mcm9tX2pzb24odGVzdHNfcm9vdCwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYXN0X2pzb24ubG9hZChmKSwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlcz10eXBlcykKICAgICAgICAg
ZXhjZXB0IElPRXJyb3I6CiAgICAgICAgICAgICByZXR1cm4gTm9uZQogICAgICAgICBleGNlcHQg
VmFsdWVFcnJvcjoKICAgICAgICAgICAgIGxvZ2dlci53YXJuaW5nKCIlciBtYXkgYmUgY29ycnVw
dGVkIiwgbWFuaWZlc3QpCiAgICAgICAgICAgICByZXR1cm4gTm9uZQotICAgICAgICByZXR1cm4g
cnYKKyAgICBlbHNlOgorICAgICAgICBydiA9IE1hbmlmZXN0LmZyb21fanNvbih0ZXN0c19yb290
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYXN0X2pzb24ubG9hZChtYW5pZmVz
dCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGVzPXR5cGVzKQorCisgICAg
aWYgYWxsb3dfY2FjaGVkOgorICAgICAgICBfX2xvYWRfY2FjaGVbbWFuaWZlc3RfcGF0aF0gPSBy
dgorICAgIHJldHVybiBydgorCisKK2RlZiBsb2FkX2FuZF91cGRhdGUodGVzdHNfcm9vdCwgICMg
dHlwZTogYnl0ZXMKKyAgICAgICAgICAgICAgICAgICAgbWFuaWZlc3RfcGF0aCwgICMgdHlwZTog
Ynl0ZXMKKyAgICAgICAgICAgICAgICAgICAgdXJsX2Jhc2UsICAjIHR5cGU6IFRleHQKKyAgICAg
ICAgICAgICAgICAgICAgdXBkYXRlPVRydWUsICAjIHR5cGU6IGJvb2wKKyAgICAgICAgICAgICAg
ICAgICAgcmVidWlsZD1GYWxzZSwgICMgdHlwZTogYm9vbAorICAgICAgICAgICAgICAgICAgICBt
ZXRhZGF0YV9wYXRoPU5vbmUsICAjIHR5cGU6IE9wdGlvbmFsW2J5dGVzXQorICAgICAgICAgICAg
ICAgICAgICBjYWNoZV9yb290PU5vbmUsICAjIHR5cGU6IE9wdGlvbmFsW2J5dGVzXQorICAgICAg
ICAgICAgICAgICAgICB3b3JraW5nX2NvcHk9VHJ1ZSwgICMgdHlwZTogYm9vbAorICAgICAgICAg
ICAgICAgICAgICB0eXBlcz1Ob25lLCAgIyB0eXBlOiBPcHRpb25hbFtDb250YWluZXJbVGV4dF1d
CisgICAgICAgICAgICAgICAgICAgIHdyaXRlX21hbmlmZXN0PVRydWUsICAjIHR5cGU6IGJvb2wK
KyAgICAgICAgICAgICAgICAgICAgYWxsb3dfY2FjaGVkPVRydWUgICMgdHlwZTogYm9vbAorICAg
ICAgICAgICAgICAgICAgICApOgorICAgICMgdHlwZTogKC4uLikgLT4gTWFuaWZlc3QKKyAgICBs
b2dnZXIgPSBnZXRfbG9nZ2VyKCkKIAotICAgIHJldHVybiBNYW5pZmVzdC5mcm9tX2pzb24odGVz
dHNfcm9vdCwganNvbi5sb2FkKG1hbmlmZXN0KSwgdHlwZXM9dHlwZXMsIG1ldGFfZmlsdGVycz1t
ZXRhX2ZpbHRlcnMpCisgICAgbWFuaWZlc3QgPSBOb25lCisgICAgaWYgbm90IHJlYnVpbGQ6Cisg
ICAgICAgIHRyeToKKyAgICAgICAgICAgIG1hbmlmZXN0ID0gX2xvYWQobG9nZ2VyLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICB0ZXN0c19yb290LAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBtYW5pZmVzdF9wYXRoLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBl
cz10eXBlcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWxsb3dfY2FjaGVkPWFsbG93
X2NhY2hlZCkKKyAgICAgICAgZXhjZXB0IE1hbmlmZXN0VmVyc2lvbk1pc21hdGNoOgorICAgICAg
ICAgICAgbG9nZ2VyLmluZm8oIk1hbmlmZXN0IHZlcnNpb24gY2hhbmdlZCwgcmVidWlsZGluZyIp
CisKKyAgICAgICAgaWYgbWFuaWZlc3QgaXMgbm90IE5vbmUgYW5kIG1hbmlmZXN0LnVybF9iYXNl
ICE9IHVybF9iYXNlOgorICAgICAgICAgICAgbG9nZ2VyLmluZm8oIk1hbmlmZXN0IHVybCBiYXNl
IGRpZCBub3QgbWF0Y2gsIHJlYnVpbGRpbmciKQorICAgICAgICAgICAgbWFuaWZlc3QgPSBOb25l
CisKKyAgICBpZiBtYW5pZmVzdCBpcyBOb25lOgorICAgICAgICBtYW5pZmVzdCA9IE1hbmlmZXN0
KHRlc3RzX3Jvb3QsIHVybF9iYXNlKQorICAgICAgICByZWJ1aWxkID0gVHJ1ZQorICAgICAgICB1
cGRhdGUgPSBUcnVlCisKKyAgICBpZiByZWJ1aWxkIG9yIHVwZGF0ZToKKyAgICAgICAgdHJlZSA9
IHZjcy5nZXRfdHJlZSh0ZXN0c19yb290LCBtYW5pZmVzdCwgbWFuaWZlc3RfcGF0aCwgY2FjaGVf
cm9vdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB3b3JraW5nX2NvcHksIHJlYnVpbGQp
CisgICAgICAgIGNoYW5nZWQgPSBtYW5pZmVzdC51cGRhdGUodHJlZSkKKyAgICAgICAgaWYgd3Jp
dGVfbWFuaWZlc3QgYW5kIGNoYW5nZWQ6CisgICAgICAgICAgICB3cml0ZShtYW5pZmVzdCwgbWFu
aWZlc3RfcGF0aCkKKyAgICAgICAgdHJlZS5kdW1wX2NhY2hlcygpCisKKyAgICByZXR1cm4gbWFu
aWZlc3QKIAogCiBkZWYgd3JpdGUobWFuaWZlc3QsIG1hbmlmZXN0X3BhdGgpOgorICAgICMgdHlw
ZTogKE1hbmlmZXN0LCBieXRlcykgLT4gTm9uZQogICAgIGRpcl9uYW1lID0gb3MucGF0aC5kaXJu
YW1lKG1hbmlmZXN0X3BhdGgpCiAgICAgaWYgbm90IG9zLnBhdGguZXhpc3RzKGRpcl9uYW1lKToK
ICAgICAgICAgb3MubWFrZWRpcnMoZGlyX25hbWUpCiAgICAgd2l0aCBvcGVuKG1hbmlmZXN0X3Bh
dGgsICJ3YiIpIGFzIGY6Ci0gICAgICAgIGpzb24uZHVtcChtYW5pZmVzdC50b19qc29uKCksIGYs
IHNvcnRfa2V5cz1UcnVlLCBpbmRlbnQ9MSwgc2VwYXJhdG9ycz0oJywnLCAnOiAnKSkKKyAgICAg
ICAgIyBVc2UgJywnIGluc3RlYWQgb2YgdGhlIGRlZmF1bHQgJywgJyBzZXBhcmF0b3IgdG8gcHJl
dmVudCB0cmFpbGluZworICAgICAgICAjIHNwYWNlczogaHR0cHM6Ly9kb2NzLnB5dGhvbi5vcmcv
Mi9saWJyYXJ5L2pzb24uaHRtbCNqc29uLmR1bXAKKyAgICAgICAganNvbi5kdW1wKG1hbmlmZXN0
LnRvX2pzb24oKSwgZiwKKyAgICAgICAgICAgICAgICAgIHNvcnRfa2V5cz1UcnVlLCBpbmRlbnQ9
MSwgc2VwYXJhdG9ycz0oJywnLCAnOiAnKSkKICAgICAgICAgZi53cml0ZSgiXG4iKQpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9t
YW5pZmVzdC9zb3VyY2VmaWxlLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy9tYW5pZmVzdC9zb3VyY2VmaWxlLnB5CmluZGV4IDEzM2Y4YjU5ODI4
ZGFmZDAxNmRmOTU0MjlmZTUyODY1NjJiNDczM2MuLjQ3ODhmYzliZGI2NDA0NDdlYjk5OTc4MDhj
NWI3MTEwNjYxYTM5NjAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvbWFuaWZlc3Qvc291cmNlZmlsZS5weQorKysgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL21hbmlmZXN0L3NvdXJj
ZWZpbGUucHkKQEAgLTEsMjkgKzEsNTIgQEAKIGltcG9ydCBoYXNobGliCiBpbXBvcnQgcmUKIGlt
cG9ydCBvcwotZnJvbSBzaXggaW1wb3J0IGJpbmFyeV90eXBlCitmcm9tIGNvbGxlY3Rpb25zIGlt
cG9ydCBkZXF1ZQorZnJvbSBzaXggaW1wb3J0IGJpbmFyeV90eXBlLCBQWTMKIGZyb20gc2l4Lm1v
dmVzLnVybGxpYi5wYXJzZSBpbXBvcnQgdXJsam9pbgogZnJvbSBmbm1hdGNoIGltcG9ydCBmbm1h
dGNoCisKK01ZUFkgPSBGYWxzZQoraWYgTVlQWToKKyAgICAjIE1ZUFkgaXMgc2V0IHRvIFRydWUg
d2hlbiBydW4gdW5kZXIgTXlweS4KKyAgICBmcm9tIHR5cGluZyBpbXBvcnQgQW55CisgICAgZnJv
bSB0eXBpbmcgaW1wb3J0IEFueVN0cgorICAgIGZyb20gdHlwaW5nIGltcG9ydCBCaW5hcnlJTwor
ICAgIGZyb20gdHlwaW5nIGltcG9ydCBDYWxsYWJsZQorICAgIGZyb20gdHlwaW5nIGltcG9ydCBE
ZXF1ZQorICAgIGZyb20gdHlwaW5nIGltcG9ydCBEaWN0CisgICAgZnJvbSB0eXBpbmcgaW1wb3J0
IEl0ZXJhYmxlCisgICAgZnJvbSB0eXBpbmcgaW1wb3J0IExpc3QKKyAgICBmcm9tIHR5cGluZyBp
bXBvcnQgT3B0aW9uYWwKKyAgICBmcm9tIHR5cGluZyBpbXBvcnQgUGF0dGVybgorICAgIGZyb20g
dHlwaW5nIGltcG9ydCBTZXQKKyAgICBmcm9tIHR5cGluZyBpbXBvcnQgVGV4dAorICAgIGZyb20g
dHlwaW5nIGltcG9ydCBUdXBsZQorICAgIGZyb20gdHlwaW5nIGltcG9ydCBVbmlvbgorICAgIGZy
b20gdHlwaW5nIGltcG9ydCBjYXN0CisKIHRyeToKICAgICBmcm9tIHhtbC5ldHJlZSBpbXBvcnQg
Y0VsZW1lbnRUcmVlIGFzIEVsZW1lbnRUcmVlCiBleGNlcHQgSW1wb3J0RXJyb3I6Ci0gICAgZnJv
bSB4bWwuZXRyZWUgaW1wb3J0IEVsZW1lbnRUcmVlCisgICAgZnJvbSB4bWwuZXRyZWUgaW1wb3J0
IEVsZW1lbnRUcmVlIGFzIEVsZW1lbnRUcmVlICAjIHR5cGU6IGlnbm9yZQogCiBpbXBvcnQgaHRt
bDVsaWIKIAogZnJvbSAuIGltcG9ydCBYTUxQYXJzZXIKLWZyb20gLml0ZW0gaW1wb3J0IFN0dWIs
IE1hbnVhbFRlc3QsIFdlYmRyaXZlclNwZWNUZXN0LCBSZWZUZXN0Tm9kZSwgVGVzdGhhcm5lc3NU
ZXN0LCBTdXBwb3J0RmlsZSwgQ29uZm9ybWFuY2VDaGVja2VyVGVzdCwgVmlzdWFsVGVzdAotZnJv
bSAudXRpbHMgaW1wb3J0IHJlbF9wYXRoX3RvX3VybCwgQ29udGV4dE1hbmFnZXJCeXRlc0lPLCBj
YWNoZWRfcHJvcGVydHkKK2Zyb20gLml0ZW0gaW1wb3J0IChNYW5pZmVzdEl0ZW0sIE1hbnVhbFRl
c3QsIFdlYkRyaXZlclNwZWNUZXN0LCBSZWZUZXN0Tm9kZSwgVGVzdGhhcm5lc3NUZXN0LAorICAg
ICAgICAgICAgICAgICAgIFN1cHBvcnRGaWxlLCBDb25mb3JtYW5jZUNoZWNrZXJUZXN0LCBWaXN1
YWxUZXN0KQorZnJvbSAudXRpbHMgaW1wb3J0IENvbnRleHRNYW5hZ2VyQnl0ZXNJTywgY2FjaGVk
X3Byb3BlcnR5CiAKIHdkX3BhdHRlcm4gPSAiKi5weSIKLWpzX21ldGFfcmUgPSByZS5jb21waWxl
KGIiLy9ccypNRVRBOlxzKihcdyopPSguKikkIikKLXB5dGhvbl9tZXRhX3JlID0gcmUuY29tcGls
ZShiIiNccypNRVRBOlxzKihcdyopPSguKikkIikKK2pzX21ldGFfcmUgPSByZS5jb21waWxlKGJy
Ii8vXHMqTUVUQTpccyooXHcqKT0oLiopJCIpCitweXRob25fbWV0YV9yZSA9IHJlLmNvbXBpbGUo
YnIiI1xzKk1FVEE6XHMqKFx3Kik9KC4qKSQiKQogCiByZWZlcmVuY2VfZmlsZV9yZSA9IHJlLmNv
bXBpbGUocicoXnxbXC1fXSkobm90KT9yZWZbMC05XSooW1wtX118JCknKQogCi1zcGFjZV9jaGFy
cyA9IHUiIi5qb2luKGh0bWw1bGliLmNvbnN0YW50cy5zcGFjZUNoYXJhY3RlcnMpCitzcGFjZV9j
aGFycyA9IHUiIi5qb2luKGh0bWw1bGliLmNvbnN0YW50cy5zcGFjZUNoYXJhY3RlcnMpICAjIHR5
cGU6IFRleHQKIAogZGVmIHJlcGxhY2VfZW5kKHMsIG9sZCwgbmV3KToKKyAgICAjIHR5cGU6IChU
ZXh0LCBUZXh0LCBUZXh0KSAtPiBUZXh0CiAgICAgIiIiCiAgICAgR2l2ZW4gYSBzdHJpbmcgYHNg
IHRoYXQgZW5kcyB3aXRoIGBvbGRgLCByZXBsYWNlIHRoYXQgb2NjdXJyZW5jZSBvZiBgb2xkYAog
ICAgIHdpdGggYG5ld2AuCkBAIC0zMyw2ICs1Niw3IEBAIGRlZiByZXBsYWNlX2VuZChzLCBvbGQs
IG5ldyk6CiAKIAogZGVmIHJlYWRfc2NyaXB0X21ldGFkYXRhKGYsIHJlZ2V4cCk6CisgICAgIyB0
eXBlOiAoQmluYXJ5SU8sIFBhdHRlcm5bYnl0ZXNdKSAtPiBJdGVyYWJsZVtUdXBsZVtieXRlcywg
Ynl0ZXNdXQogICAgICIiIgogICAgIFlpZWxkcyBhbnkgbWV0YWRhdGEgKHBhaXJzIG9mIGJ5dGVz
dHJpbmdzKSBmcm9tIHRoZSBmaWxlLWxpa2Ugb2JqZWN0IGBmYCwKICAgICBhcyBzcGVjaWZpZWQg
YWNjb3JkaW5nIHRvIGEgc3VwcGxpZWQgcmVnZXhwLgpAQCAtNTcsMTAgKzgxLDExIEBAIF9hbnlf
dmFyaWFudHMgPSB7CiAgICAgYiJkZWRpY2F0ZWR3b3JrZXIiOiB7InN1ZmZpeCI6ICIuYW55Lndv
cmtlci5odG1sIn0sCiAgICAgYiJ3b3JrZXIiOiB7ImxvbmdoYW5kIjoge2IiZGVkaWNhdGVkd29y
a2VyIiwgYiJzaGFyZWR3b3JrZXIiLCBiInNlcnZpY2V3b3JrZXIifX0sCiAgICAgYiJqc3NoZWxs
IjogeyJzdWZmaXgiOiAiLmFueS5qcyJ9LAotfQorfSAgIyB0eXBlOiBEaWN0W2J5dGVzLCBEaWN0
W3N0ciwgQW55XV0KIAogCiBkZWYgZ2V0X2FueV92YXJpYW50cyhpdGVtKToKKyAgICAjIHR5cGU6
IChieXRlcykgLT4gU2V0W2J5dGVzXQogICAgICIiIgogICAgIFJldHVybnMgYSBzZXQgb2YgdmFy
aWFudHMgKGJ5dGVzdHJpbmdzKSBkZWZpbmVkIGJ5IHRoZSBnaXZlbiBrZXl3b3JkLgogICAgICIi
IgpAQCAtNzUsNiArMTAwLDcgQEAgZGVmIGdldF9hbnlfdmFyaWFudHMoaXRlbSk6CiAKIAogZGVm
IGdldF9kZWZhdWx0X2FueV92YXJpYW50cygpOgorICAgICMgdHlwZTogKCkgLT4gU2V0W2J5dGVz
XQogICAgICIiIgogICAgIFJldHVybnMgYSBzZXQgb2YgdmFyaWFudHMgKGJ5dGVzdHJpbmdzKSB0
aGF0IHdpbGwgYmUgdXNlZCBieSBkZWZhdWx0LgogICAgICIiIgpAQCAtODIsNiArMTA4LDcgQEAg
ZGVmIGdldF9kZWZhdWx0X2FueV92YXJpYW50cygpOgogCiAKIGRlZiBwYXJzZV92YXJpYW50cyh2
YWx1ZSk6CisgICAgIyB0eXBlOiAoYnl0ZXMpIC0+IFNldFtieXRlc10KICAgICAiIiIKICAgICBS
ZXR1cm5zIGEgc2V0IG9mIHZhcmlhbnRzIChieXRlc3RyaW5ncykgZGVmaW5lZCBieSBhIGNvbW1h
LXNlcGFyYXRlZCB2YWx1ZS4KICAgICAiIiIKQEAgLTEwMCw2ICsxMjcsNyBAQCBkZWYgcGFyc2Vf
dmFyaWFudHModmFsdWUpOgogCiAKIGRlZiBnbG9iYWxfc3VmZml4ZXModmFsdWUpOgorICAgICMg
dHlwZTogKGJ5dGVzKSAtPiBTZXRbVHVwbGVbYnl0ZXMsIGJvb2xdXQogICAgICIiIgogICAgIFlp
ZWxkcyB0dXBsZXMgb2YgdGhlIHJlbGV2YW50IGZpbGVuYW1lIHN1ZmZpeCAoYSBzdHJpbmcpIGFu
ZCB3aGV0aGVyIHRoZQogICAgIHZhcmlhbnQgaXMgaW50ZW5kZWQgdG8gcnVuIGluIGEgSlMgc2hl
bGwsIGZvciB0aGUgdmFyaWFudHMgZGVmaW5lZCBieSB0aGUKQEAgLTExOSw2ICsxNDcsNyBAQCBk
ZWYgZ2xvYmFsX3N1ZmZpeGVzKHZhbHVlKToKIAogCiBkZWYgZ2xvYmFsX3ZhcmlhbnRfdXJsKHVy
bCwgc3VmZml4KToKKyAgICAjIHR5cGU6IChUZXh0LCBUZXh0KSAtPiBUZXh0CiAgICAgIiIiCiAg
ICAgUmV0dXJucyBhIHVybCBjcmVhdGVkIGZyb20gdGhlIGdpdmVuIHVybCBhbmQgc3VmZml4IChh
bGwgc3RyaW5ncykuCiAgICAgIiIiCkBAIC0xMzAsMzIgKzE1OSw0MSBAQCBkZWYgZ2xvYmFsX3Zh
cmlhbnRfdXJsKHVybCwgc3VmZml4KToKICAgICByZXR1cm4gcmVwbGFjZV9lbmQodXJsLCAiLmpz
Iiwgc3VmZml4KQogCiAKK2RlZiBfcGFyc2VfaHRtbChmKToKKyAgICAjIHR5cGU6IChCaW5hcnlJ
TykgLT4gRWxlbWVudFRyZWUuRWxlbWVudFRyZWUKKyAgICBkb2MgPSBodG1sNWxpYi5wYXJzZShm
LCB0cmVlYnVpbGRlcj0iZXRyZWUiLCB1c2VDaGFyZGV0PUZhbHNlKQorICAgIGlmIE1ZUFk6Cisg
ICAgICAgIHJldHVybiBjYXN0KEVsZW1lbnRUcmVlLkVsZW1lbnRUcmVlLCBkb2MpCisgICAgcmV0
dXJuIGRvYworCiBkZWYgX3BhcnNlX3htbChmKToKKyAgICAjIHR5cGU6IChCaW5hcnlJTykgLT4g
RWxlbWVudFRyZWUuRWxlbWVudFRyZWUKICAgICB0cnk6CiAgICAgICAgICMgcmFpc2VzIFZhbHVl
RXJyb3Igd2l0aCBhbiB1bnN1cHBvcnRlZCBlbmNvZGluZywKICAgICAgICAgIyBQYXJzZUVycm9y
IHdoZW4gdGhlcmUncyBhbiB1bmRlZmluZWQgZW50aXR5CiAgICAgICAgIHJldHVybiBFbGVtZW50
VHJlZS5wYXJzZShmKQogICAgIGV4Y2VwdCAoVmFsdWVFcnJvciwgRWxlbWVudFRyZWUuUGFyc2VF
cnJvcik6CiAgICAgICAgIGYuc2VlaygwKQotICAgICAgICByZXR1cm4gRWxlbWVudFRyZWUucGFy
c2UoZiwgWE1MUGFyc2VyLlhNTFBhcnNlcigpKQorICAgICAgICByZXR1cm4gRWxlbWVudFRyZWUu
cGFyc2UoZiwgWE1MUGFyc2VyLlhNTFBhcnNlcigpKSAgIyB0eXBlOiBpZ25vcmUKIAogCiBjbGFz
cyBTb3VyY2VGaWxlKG9iamVjdCk6Ci0gICAgcGFyc2VycyA9IHsiaHRtbCI6bGFtYmRhIHg6aHRt
bDVsaWIucGFyc2UoeCwgdHJlZWJ1aWxkZXI9ImV0cmVlIiwgdXNlQ2hhcmRldD1GYWxzZSksCisg
ICAgcGFyc2VycyA9IHsiaHRtbCI6X3BhcnNlX2h0bWwsCiAgICAgICAgICAgICAgICAieGh0bWwi
Ol9wYXJzZV94bWwsCi0gICAgICAgICAgICAgICAic3ZnIjpfcGFyc2VfeG1sfQorICAgICAgICAg
ICAgICAgInN2ZyI6X3BhcnNlX3htbH0gICMgdHlwZTogRGljdFtUZXh0LCBDYWxsYWJsZVtbQmlu
YXJ5SU9dLCBFbGVtZW50VHJlZS5FbGVtZW50VHJlZV1dCiAKLSAgICByb290X2Rpcl9ub25fdGVz
dCA9IHNldChbImNvbW1vbiJdKQorICAgIHJvb3RfZGlyX25vbl90ZXN0ID0geyJjb21tb24ifQog
Ci0gICAgZGlyX25vbl90ZXN0ID0gc2V0KFsicmVzb3VyY2VzIiwKLSAgICAgICAgICAgICAgICAg
ICAgICAgICJzdXBwb3J0IiwKLSAgICAgICAgICAgICAgICAgICAgICAgICJ0b29scyJdKQorICAg
IGRpcl9ub25fdGVzdCA9IHsicmVzb3VyY2VzIiwKKyAgICAgICAgICAgICAgICAgICAgInN1cHBv
cnQiLAorICAgICAgICAgICAgICAgICAgICAidG9vbHMifQogCiAgICAgZGlyX3BhdGhfbm9uX3Rl
c3QgPSB7KCJjc3MyMSIsICJhcmNoaXZlIiksCiAgICAgICAgICAgICAgICAgICAgICAgICAgKCJj
c3MiLCAiQ1NTMiIsICJhcmNoaXZlIiksCi0gICAgICAgICAgICAgICAgICAgICAgICAgKCJjc3Mi
LCAiY29tbW9uIil9CisgICAgICAgICAgICAgICAgICAgICAgICAgKCJjc3MiLCAiY29tbW9uIil9
ICAjIHR5cGU6IFNldFtUdXBsZVtieXRlcywgLi4uXV0KIAogICAgIGRlZiBfX2luaXRfXyhzZWxm
LCB0ZXN0c19yb290LCByZWxfcGF0aCwgdXJsX2Jhc2UsIGhhc2g9Tm9uZSwgY29udGVudHM9Tm9u
ZSk6CisgICAgICAgICMgdHlwZTogKEFueVN0ciwgQW55U3RyLCBUZXh0LCBPcHRpb25hbFtieXRl
c10sIE9wdGlvbmFsW2J5dGVzXSkgLT4gTm9uZQogICAgICAgICAiIiJPYmplY3QgcmVwcmVzZW50
aW5nIGEgZmlsZSBpbiBhIHNvdXJjZSB0cmVlLgogCiAgICAgICAgIDpwYXJhbSB0ZXN0c19yb290
OiBQYXRoIHRvIHRoZSByb290IG9mIHRoZSBzb3VyY2UgdHJlZQpAQCAtMTY0LDMxICsyMDIsMzkg
QEAgY2xhc3MgU291cmNlRmlsZShvYmplY3QpOgogICAgICAgICA6cGFyYW0gY29udGVudHM6IEJ5
dGUgYXJyYXkgb2YgdGhlIGNvbnRlbnRzIG9mIHRoZSBmaWxlIG9yIGBgTm9uZWBgLgogICAgICAg
ICAiIiIKIAotICAgICAgICBzZWxmLnRlc3RzX3Jvb3QgPSB0ZXN0c19yb290CisgICAgICAgIGFz
c2VydCBub3Qgb3MucGF0aC5pc2FicyhyZWxfcGF0aCksIHJlbF9wYXRoCisKICAgICAgICAgaWYg
b3MubmFtZSA9PSAibnQiOgogICAgICAgICAgICAgIyBkbyBzbGFzaCBub3JtYWxpemF0aW9uIG9u
IFdpbmRvd3MKICAgICAgICAgICAgIGlmIGlzaW5zdGFuY2UocmVsX3BhdGgsIGJpbmFyeV90eXBl
KToKLSAgICAgICAgICAgICAgICBzZWxmLnJlbF9wYXRoID0gcmVsX3BhdGgucmVwbGFjZShiIi8i
LCBiIlxcIikKKyAgICAgICAgICAgICAgICByZWxfcGF0aCA9IHJlbF9wYXRoLnJlcGxhY2UoYiIv
IiwgYiJcXCIpCiAgICAgICAgICAgICBlbHNlOgotICAgICAgICAgICAgICAgIHNlbGYucmVsX3Bh
dGggPSByZWxfcGF0aC5yZXBsYWNlKHUiLyIsIHUiXFwiKQotICAgICAgICBlbHNlOgotICAgICAg
ICAgICAgc2VsZi5yZWxfcGF0aCA9IHJlbF9wYXRoCi0gICAgICAgIHNlbGYudXJsX2Jhc2UgPSB1
cmxfYmFzZQotICAgICAgICBzZWxmLmNvbnRlbnRzID0gY29udGVudHMKKyAgICAgICAgICAgICAg
ICByZWxfcGF0aCA9IHJlbF9wYXRoLnJlcGxhY2UodSIvIiwgdSJcXCIpCiAKLSAgICAgICAgc2Vs
Zi5kaXJfcGF0aCwgc2VsZi5maWxlbmFtZSA9IG9zLnBhdGguc3BsaXQoc2VsZi5yZWxfcGF0aCkK
LSAgICAgICAgc2VsZi5uYW1lLCBzZWxmLmV4dCA9IG9zLnBhdGguc3BsaXRleHQoc2VsZi5maWxl
bmFtZSkKKyAgICAgICAgZGlyX3BhdGgsIGZpbGVuYW1lID0gb3MucGF0aC5zcGxpdChyZWxfcGF0
aCkKKyAgICAgICAgbmFtZSwgZXh0ID0gb3MucGF0aC5zcGxpdGV4dChmaWxlbmFtZSkKIAotICAg
ICAgICBzZWxmLnR5cGVfZmxhZyA9IE5vbmUKLSAgICAgICAgaWYgIi0iIGluIHNlbGYubmFtZToK
LSAgICAgICAgICAgIHNlbGYudHlwZV9mbGFnID0gc2VsZi5uYW1lLnJzcGxpdCgiLSIsIDEpWzFd
LnNwbGl0KCIuIilbMF0KKyAgICAgICAgdHlwZV9mbGFnID0gTm9uZQorICAgICAgICBpZiAiLSIg
aW4gbmFtZToKKyAgICAgICAgICAgIHR5cGVfZmxhZyA9IG5hbWUucnNwbGl0KCItIiwgMSlbMV0u
c3BsaXQoIi4iKVswXQogCi0gICAgICAgIHNlbGYubWV0YV9mbGFncyA9IHNlbGYubmFtZS5zcGxp
dCgiLiIpWzE6XQorICAgICAgICBtZXRhX2ZsYWdzID0gbmFtZS5zcGxpdCgiLiIpWzE6XQogCi0g
ICAgICAgIHNlbGYuaXRlbXNfY2FjaGUgPSBOb25lCisgICAgICAgIHNlbGYudGVzdHNfcm9vdCA9
IHRlc3RzX3Jvb3QgICMgdHlwZTogVW5pb25bYnl0ZXMsIFRleHRdCisgICAgICAgIHNlbGYucmVs
X3BhdGggPSByZWxfcGF0aCAgIyB0eXBlOiBVbmlvbltieXRlcywgVGV4dF0KKyAgICAgICAgc2Vs
Zi5kaXJfcGF0aCA9IGRpcl9wYXRoICAjIHR5cGU6IFVuaW9uW2J5dGVzLCBUZXh0XQorICAgICAg
ICBzZWxmLmZpbGVuYW1lID0gZmlsZW5hbWUgICMgdHlwZTogVW5pb25bYnl0ZXMsIFRleHRdCisg
ICAgICAgIHNlbGYubmFtZSA9IG5hbWUgICMgdHlwZTogVW5pb25bYnl0ZXMsIFRleHRdCisgICAg
ICAgIHNlbGYuZXh0ID0gZXh0ICAjIHR5cGU6IFVuaW9uW2J5dGVzLCBUZXh0XQorICAgICAgICBz
ZWxmLnR5cGVfZmxhZyA9IHR5cGVfZmxhZyAgIyB0eXBlOiBPcHRpb25hbFtVbmlvbltieXRlcywg
VGV4dF1dCisgICAgICAgIHNlbGYubWV0YV9mbGFncyA9IG1ldGFfZmxhZ3MgICMgdHlwZTogVW5p
b25bTGlzdFtieXRlc10sIExpc3RbVGV4dF1dCisgICAgICAgIHNlbGYudXJsX2Jhc2UgPSB1cmxf
YmFzZQorICAgICAgICBzZWxmLmNvbnRlbnRzID0gY29udGVudHMKKyAgICAgICAgc2VsZi5pdGVt
c19jYWNoZSA9IE5vbmUgICMgdHlwZTogT3B0aW9uYWxbVHVwbGVbVGV4dCwgTGlzdFtNYW5pZmVz
dEl0ZW1dXV0KICAgICAgICAgc2VsZi5faGFzaCA9IGhhc2gKIAogICAgIGRlZiBfX2dldHN0YXRl
X18oc2VsZik6CisgICAgICAgICMgdHlwZTogKCkgLT4gRGljdFtzdHIsIEFueV0KICAgICAgICAg
IyBSZW1vdmUgY29tcHV0ZWQgcHJvcGVydGllcyBpZiB3ZSBwaWNrbGUgdGhpcyBjbGFzcwogICAg
ICAgICBydiA9IHNlbGYuX19kaWN0X18uY29weSgpCiAKQEAgLTIwMSwxMiArMjQ3LDE0IEBAIGNs
YXNzIFNvdXJjZUZpbGUob2JqZWN0KToKICAgICAgICAgcmV0dXJuIHJ2CiAKICAgICBkZWYgbmFt
ZV9wcmVmaXgoc2VsZiwgcHJlZml4KToKKyAgICAgICAgIyB0eXBlOiAoYnl0ZXMpIC0+IGJvb2wK
ICAgICAgICAgIiIiQ2hlY2sgaWYgdGhlIGZpbGVuYW1lIHN0YXJ0cyB3aXRoIGEgZ2l2ZW4gcHJl
Zml4CiAKICAgICAgICAgOnBhcmFtIHByZWZpeDogVGhlIHByZWZpeCB0byBjaGVjayIiIgogICAg
ICAgICByZXR1cm4gc2VsZi5uYW1lLnN0YXJ0c3dpdGgocHJlZml4KQogCiAgICAgZGVmIGlzX2Rp
cihzZWxmKToKKyAgICAgICAgIyB0eXBlOiAoKSAtPiBib29sCiAgICAgICAgICIiIlJldHVybiB3
aGV0aGVyIHRoaXMgZmlsZSByZXByZXNlbnRzIGEgZGlyZWN0b3J5LiIiIgogICAgICAgICBpZiBz
ZWxmLmNvbnRlbnRzIGlzIG5vdCBOb25lOgogICAgICAgICAgICAgcmV0dXJuIEZhbHNlCkBAIC0y
MTQsNiArMjYyLDcgQEAgY2xhc3MgU291cmNlRmlsZShvYmplY3QpOgogICAgICAgICByZXR1cm4g
b3MucGF0aC5pc2RpcihzZWxmLnJlbF9wYXRoKQogCiAgICAgZGVmIG9wZW4oc2VsZik6CisgICAg
ICAgICMgdHlwZTogKCkgLT4gQmluYXJ5SU8KICAgICAgICAgIiIiCiAgICAgICAgIFJldHVybiBl
aXRoZXIKICAgICAgICAgKiB0aGUgY29udGVudHMgc3BlY2lmaWVkIGluIHRoZSBjb25zdHJ1Y3Rv
ciwgaWYgYW55OwpAQCAtMjIxLDI5ICsyNzAsNDkgQEAgY2xhc3MgU291cmNlRmlsZShvYmplY3Qp
OgogICAgICAgICAiIiIKIAogICAgICAgICBpZiBzZWxmLmNvbnRlbnRzIGlzIG5vdCBOb25lOgot
ICAgICAgICAgICAgZmlsZV9vYmogPSBDb250ZXh0TWFuYWdlckJ5dGVzSU8oc2VsZi5jb250ZW50
cykKKyAgICAgICAgICAgIHdyYXBwZWQgPSBDb250ZXh0TWFuYWdlckJ5dGVzSU8oc2VsZi5jb250
ZW50cykKKyAgICAgICAgICAgIGlmIE1ZUFk6CisgICAgICAgICAgICAgICAgZmlsZV9vYmogPSBj
YXN0KEJpbmFyeUlPLCB3cmFwcGVkKQorICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAg
ICBmaWxlX29iaiA9IHdyYXBwZWQKICAgICAgICAgZWxzZToKICAgICAgICAgICAgIGZpbGVfb2Jq
ID0gb3BlbihzZWxmLnBhdGgsICdyYicpCiAgICAgICAgIHJldHVybiBmaWxlX29iagogCiAgICAg
QGNhY2hlZF9wcm9wZXJ0eQogICAgIGRlZiBwYXRoKHNlbGYpOgorICAgICAgICAjIHR5cGU6ICgp
IC0+IFVuaW9uW2J5dGVzLCBUZXh0XQogICAgICAgICByZXR1cm4gb3MucGF0aC5qb2luKHNlbGYu
dGVzdHNfcm9vdCwgc2VsZi5yZWxfcGF0aCkKIAorICAgIEBjYWNoZWRfcHJvcGVydHkKKyAgICBk
ZWYgcmVsX3VybChzZWxmKToKKyAgICAgICAgIyB0eXBlOiAoKSAtPiBUZXh0CisgICAgICAgIGFz
c2VydCBub3Qgb3MucGF0aC5pc2FicyhzZWxmLnJlbF9wYXRoKSwgc2VsZi5yZWxfcGF0aAorICAg
ICAgICByZXR1cm4gc2VsZi5yZWxfcGF0aC5yZXBsYWNlKG9zLnNlcCwgIi8iKQorCiAgICAgQGNh
Y2hlZF9wcm9wZXJ0eQogICAgIGRlZiB1cmwoc2VsZik6Ci0gICAgICAgIHJldHVybiByZWxfcGF0
aF90b191cmwoc2VsZi5yZWxfcGF0aCwgc2VsZi51cmxfYmFzZSkKKyAgICAgICAgIyB0eXBlOiAo
KSAtPiBUZXh0CisgICAgICAgIHJldHVybiB1cmxqb2luKHNlbGYudXJsX2Jhc2UsIHNlbGYucmVs
X3VybCkKIAogICAgIEBjYWNoZWRfcHJvcGVydHkKICAgICBkZWYgaGFzaChzZWxmKToKKyAgICAg
ICAgIyB0eXBlOiAoKSAtPiBieXRlcwogICAgICAgICBpZiBub3Qgc2VsZi5faGFzaDoKICAgICAg
ICAgICAgIHdpdGggc2VsZi5vcGVuKCkgYXMgZjoKICAgICAgICAgICAgICAgICBjb250ZW50ID0g
Zi5yZWFkKCkKLSAgICAgICAgICAgIGRhdGEgPSAiIi5qb2luKCgiYmxvYiAiLCBzdHIobGVuKGNv
bnRlbnQpKSwgIlwwIiwgY29udGVudCkpCi0gICAgICAgICAgICBzZWxmLl9oYXNoID0gaGFzaGxp
Yi5zaGExKGRhdGEpLmhleGRpZ2VzdCgpCisKKyAgICAgICAgICAgIGRhdGEgPSBiIiIuam9pbigo
YiJibG9iICIsIGIiJWQiICUgbGVuKGNvbnRlbnQpLCBiIlwwIiwgY29udGVudCkpCisgICAgICAg
ICAgICBoYXNoX3N0ciA9IGhhc2hsaWIuc2hhMShkYXRhKS5oZXhkaWdlc3QoKSAgIyB0eXBlOiBz
dHIKKyAgICAgICAgICAgIGlmIFBZMzoKKyAgICAgICAgICAgICAgICBzZWxmLl9oYXNoID0gaGFz
aF9zdHIuZW5jb2RlKCJhc2NpaSIpCisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAg
IHNlbGYuX2hhc2ggPSBoYXNoX3N0cgorCiAgICAgICAgIHJldHVybiBzZWxmLl9oYXNoCiAKICAg
ICBkZWYgaW5fbm9uX3Rlc3RfZGlyKHNlbGYpOgorICAgICAgICAjIHR5cGU6ICgpIC0+IGJvb2wK
ICAgICAgICAgaWYgc2VsZi5kaXJfcGF0aCA9PSAiIjoKICAgICAgICAgICAgIHJldHVybiBUcnVl
CiAKQEAgLTI1Niw2NyArMzI1LDcxIEBAIGNsYXNzIFNvdXJjZUZpbGUob2JqZWN0KToKICAgICAg
ICAgcmV0dXJuIEZhbHNlCiAKICAgICBkZWYgaW5fY29uZm9ybWFuY2VfY2hlY2tlcl9kaXIoc2Vs
Zik6CisgICAgICAgICMgdHlwZTogKCkgLT4gYm9vbAogICAgICAgICByZXR1cm4gKHNlbGYuZGly
X3BhdGggPT0gImNvbmZvcm1hbmNlLWNoZWNrZXJzIiBvcgogICAgICAgICAgICAgICAgIHNlbGYu
ZGlyX3BhdGguc3RhcnRzd2l0aCgiY29uZm9ybWFuY2UtY2hlY2tlcnMiICsgb3MucGF0aC5zZXAp
KQogCiAgICAgQHByb3BlcnR5CiAgICAgZGVmIG5hbWVfaXNfbm9uX3Rlc3Qoc2VsZik6CisgICAg
ICAgICMgdHlwZTogKCkgLT4gYm9vbAogICAgICAgICAiIiJDaGVjayBpZiB0aGUgZmlsZSBuYW1l
IG1hdGNoZXMgdGhlIGNvbmRpdGlvbnMgZm9yIHRoZSBmaWxlIHRvCiAgICAgICAgIGJlIGEgbm9u
LXRlc3QgZmlsZSIiIgogICAgICAgICByZXR1cm4gKHNlbGYuaXNfZGlyKCkgb3IKICAgICAgICAg
ICAgICAgICBzZWxmLm5hbWVfcHJlZml4KCJNQU5JRkVTVCIpIG9yCiAgICAgICAgICAgICAgICAg
c2VsZi5maWxlbmFtZSA9PSAiTUVUQS55bWwiIG9yCiAgICAgICAgICAgICAgICAgc2VsZi5maWxl
bmFtZS5zdGFydHN3aXRoKCIuIikgb3IKLSAgICAgICAgICAgICAgICBzZWxmLnR5cGVfZmxhZyA9
PSAic3VwcG9ydCIgb3IKKyAgICAgICAgICAgICAgICBzZWxmLmZpbGVuYW1lLmVuZHN3aXRoKCIu
aGVhZGVycyIpIG9yCiAgICAgICAgICAgICAgICAgc2VsZi5pbl9ub25fdGVzdF9kaXIoKSkKIAog
ICAgIEBwcm9wZXJ0eQogICAgIGRlZiBuYW1lX2lzX2NvbmZvcm1hbmNlKHNlbGYpOgorICAgICAg
ICAjIHR5cGU6ICgpIC0+IGJvb2wKICAgICAgICAgcmV0dXJuIChzZWxmLmluX2NvbmZvcm1hbmNl
X2NoZWNrZXJfZGlyKCkgYW5kCiAgICAgICAgICAgICAgICAgc2VsZi50eXBlX2ZsYWcgaW4gKCJp
cy12YWxpZCIsICJuby12YWxpZCIpKQogCiAgICAgQHByb3BlcnR5CiAgICAgZGVmIG5hbWVfaXNf
Y29uZm9ybWFuY2Vfc3VwcG9ydChzZWxmKToKKyAgICAgICAgIyB0eXBlOiAoKSAtPiBib29sCiAg
ICAgICAgIHJldHVybiBzZWxmLmluX2NvbmZvcm1hbmNlX2NoZWNrZXJfZGlyKCkKIAotICAgIEBw
cm9wZXJ0eQotICAgIGRlZiBuYW1lX2lzX3N0dWIoc2VsZik6Ci0gICAgICAgICIiIkNoZWNrIGlm
IHRoZSBmaWxlIG5hbWUgbWF0Y2hlcyB0aGUgY29uZGl0aW9ucyBmb3IgdGhlIGZpbGUgdG8KLSAg
ICAgICAgYmUgYSBzdHViIGZpbGUiIiIKLSAgICAgICAgcmV0dXJuIHNlbGYubmFtZV9wcmVmaXgo
InN0dWItIikKLQogICAgIEBwcm9wZXJ0eQogICAgIGRlZiBuYW1lX2lzX21hbnVhbChzZWxmKToK
KyAgICAgICAgIyB0eXBlOiAoKSAtPiBib29sCiAgICAgICAgICIiIkNoZWNrIGlmIHRoZSBmaWxl
IG5hbWUgbWF0Y2hlcyB0aGUgY29uZGl0aW9ucyBmb3IgdGhlIGZpbGUgdG8KICAgICAgICAgYmUg
YSBtYW51YWwgdGVzdCBmaWxlIiIiCiAgICAgICAgIHJldHVybiBzZWxmLnR5cGVfZmxhZyA9PSAi
bWFudWFsIgogCiAgICAgQHByb3BlcnR5CiAgICAgZGVmIG5hbWVfaXNfdmlzdWFsKHNlbGYpOgor
ICAgICAgICAjIHR5cGU6ICgpIC0+IGJvb2wKICAgICAgICAgIiIiQ2hlY2sgaWYgdGhlIGZpbGUg
bmFtZSBtYXRjaGVzIHRoZSBjb25kaXRpb25zIGZvciB0aGUgZmlsZSB0bwogICAgICAgICBiZSBh
IHZpc3VhbCB0ZXN0IGZpbGUiIiIKICAgICAgICAgcmV0dXJuIHNlbGYudHlwZV9mbGFnID09ICJ2
aXN1YWwiCiAKICAgICBAcHJvcGVydHkKICAgICBkZWYgbmFtZV9pc19tdWx0aV9nbG9iYWwoc2Vs
Zik6CisgICAgICAgICMgdHlwZTogKCkgLT4gYm9vbAogICAgICAgICAiIiJDaGVjayBpZiB0aGUg
ZmlsZSBuYW1lIG1hdGNoZXMgdGhlIGNvbmRpdGlvbnMgZm9yIHRoZSBmaWxlIHRvCiAgICAgICAg
IGJlIGEgbXVsdGktZ2xvYmFsIGpzIHRlc3QgZmlsZSIiIgogICAgICAgICByZXR1cm4gImFueSIg
aW4gc2VsZi5tZXRhX2ZsYWdzIGFuZCBzZWxmLmV4dCA9PSAiLmpzIgogCiAgICAgQHByb3BlcnR5
CiAgICAgZGVmIG5hbWVfaXNfd29ya2VyKHNlbGYpOgorICAgICAgICAjIHR5cGU6ICgpIC0+IGJv
b2wKICAgICAgICAgIiIiQ2hlY2sgaWYgdGhlIGZpbGUgbmFtZSBtYXRjaGVzIHRoZSBjb25kaXRp
b25zIGZvciB0aGUgZmlsZSB0bwogICAgICAgICBiZSBhIHdvcmtlciBqcyB0ZXN0IGZpbGUiIiIK
ICAgICAgICAgcmV0dXJuICJ3b3JrZXIiIGluIHNlbGYubWV0YV9mbGFncyBhbmQgc2VsZi5leHQg
PT0gIi5qcyIKIAogICAgIEBwcm9wZXJ0eQogICAgIGRlZiBuYW1lX2lzX3dpbmRvdyhzZWxmKToK
KyAgICAgICAgIyB0eXBlOiAoKSAtPiBib29sCiAgICAgICAgICIiIkNoZWNrIGlmIHRoZSBmaWxl
IG5hbWUgbWF0Y2hlcyB0aGUgY29uZGl0aW9ucyBmb3IgdGhlIGZpbGUgdG8KICAgICAgICAgYmUg
YSB3aW5kb3cganMgdGVzdCBmaWxlIiIiCiAgICAgICAgIHJldHVybiAid2luZG93IiBpbiBzZWxm
Lm1ldGFfZmxhZ3MgYW5kIHNlbGYuZXh0ID09ICIuanMiCiAKICAgICBAcHJvcGVydHkKICAgICBk
ZWYgbmFtZV9pc193ZWJkcml2ZXIoc2VsZik6CisgICAgICAgICMgdHlwZTogKCkgLT4gYm9vbAog
ICAgICAgICAiIiJDaGVjayBpZiB0aGUgZmlsZSBuYW1lIG1hdGNoZXMgdGhlIGNvbmRpdGlvbnMg
Zm9yIHRoZSBmaWxlIHRvCiAgICAgICAgIGJlIGEgd2ViZHJpdmVyIHNwZWMgdGVzdCBmaWxlIiIi
CiAgICAgICAgICMgd2RzcGVjIHRlc3RzIGFyZSBpbiBzdWJkaXJlY3RvcmllcyBvZiAvd2ViZHJp
dmVyIGV4Y2x1ZGluZyBfX2luaXRfXy5weQpAQCAtMzMwLDEyICs0MDMsMTQgQEAgY2xhc3MgU291
cmNlRmlsZShvYmplY3QpOgogCiAgICAgQHByb3BlcnR5CiAgICAgZGVmIG5hbWVfaXNfcmVmZXJl
bmNlKHNlbGYpOgorICAgICAgICAjIHR5cGU6ICgpIC0+IGJvb2wKICAgICAgICAgIiIiQ2hlY2sg
aWYgdGhlIGZpbGUgbmFtZSBtYXRjaGVzIHRoZSBjb25kaXRpb25zIGZvciB0aGUgZmlsZSB0bwog
ICAgICAgICBiZSBhIHJlZmVyZW5jZSBmaWxlIChub3QgYSByZWZ0ZXN0KSIiIgotICAgICAgICBy
ZXR1cm4gIi9yZWZlcmVuY2UvIiBpbiBzZWxmLnVybCBvciAiL3JlZnRlc3QvIiBpbiBzZWxmLnVy
bCBvciBib29sKHJlZmVyZW5jZV9maWxlX3JlLnNlYXJjaChzZWxmLm5hbWUpKQorICAgICAgICBy
ZXR1cm4gIi9yZWZlcmVuY2UvIiBpbiBzZWxmLnVybCBvciBib29sKHJlZmVyZW5jZV9maWxlX3Jl
LnNlYXJjaChzZWxmLm5hbWUpKQogCiAgICAgQHByb3BlcnR5CiAgICAgZGVmIG1hcmt1cF90eXBl
KHNlbGYpOgorICAgICAgICAjIHR5cGU6ICgpIC0+IE9wdGlvbmFsW1RleHRdCiAgICAgICAgICIi
IlJldHVybiB0aGUgdHlwZSBvZiBtYXJrdXAgY29udGFpbmVkIGluIGEgZmlsZSwgYmFzZWQgb24g
aXRzIGV4dGVuc2lvbiwKICAgICAgICAgb3IgTm9uZSBpZiBpdCBkb2Vzbid0IGNvbnRhaW4gbWFy
a3VwIiIiCiAgICAgICAgIGV4dCA9IHNlbGYuZXh0CkBAIC0zNTQsNiArNDI5LDcgQEAgY2xhc3Mg
U291cmNlRmlsZShvYmplY3QpOgogCiAgICAgQGNhY2hlZF9wcm9wZXJ0eQogICAgIGRlZiByb290
KHNlbGYpOgorICAgICAgICAjIHR5cGU6ICgpIC0+IE9wdGlvbmFsW1VuaW9uW0VsZW1lbnRUcmVl
LkVsZW1lbnQsIEVsZW1lbnRUcmVlLkVsZW1lbnRUcmVlXV0KICAgICAgICAgIiIiUmV0dXJuIGFu
IEVsZW1lbnRUcmVlIEVsZW1lbnQgZm9yIHRoZSByb290IG5vZGUgb2YgdGhlIGZpbGUgaWYgaXQg
Y29udGFpbnMKICAgICAgICAgbWFya3VwLCBvciBOb25lIGlmIGl0IGRvZXMgbm90IiIiCiAgICAg
ICAgIGlmIG5vdCBzZWxmLm1hcmt1cF90eXBlOgpAQCAtMzY4LDcgKzQ0NCw3IEBAIGNsYXNzIFNv
dXJjZUZpbGUob2JqZWN0KToKICAgICAgICAgICAgICAgICByZXR1cm4gTm9uZQogCiAgICAgICAg
IGlmIGhhc2F0dHIodHJlZSwgImdldHJvb3QiKToKLSAgICAgICAgICAgIHJvb3QgPSB0cmVlLmdl
dHJvb3QoKQorICAgICAgICAgICAgcm9vdCA9IHRyZWUuZ2V0cm9vdCgpICAjIHR5cGU6IFVuaW9u
W0VsZW1lbnRUcmVlLkVsZW1lbnQsIEVsZW1lbnRUcmVlLkVsZW1lbnRUcmVlXQogICAgICAgICBl
bHNlOgogICAgICAgICAgICAgcm9vdCA9IHRyZWUKIApAQCAtMzc2LDEyICs0NTIsMTUgQEAgY2xh
c3MgU291cmNlRmlsZShvYmplY3QpOgogCiAgICAgQGNhY2hlZF9wcm9wZXJ0eQogICAgIGRlZiB0
aW1lb3V0X25vZGVzKHNlbGYpOgorICAgICAgICAjIHR5cGU6ICgpIC0+IExpc3RbRWxlbWVudFRy
ZWUuRWxlbWVudF0KICAgICAgICAgIiIiTGlzdCBvZiBFbGVtZW50VHJlZSBFbGVtZW50cyBjb3Jy
ZXNwb25kaW5nIHRvIG5vZGVzIGluIGEgdGVzdCB0aGF0CiAgICAgICAgIHNwZWNpZnkgdGltZW91
dHMiIiIKKyAgICAgICAgYXNzZXJ0IHNlbGYucm9vdCBpcyBub3QgTm9uZQogICAgICAgICByZXR1
cm4gc2VsZi5yb290LmZpbmRhbGwoIi4vL3todHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sfW1l
dGFbQG5hbWU9J3RpbWVvdXQnXSIpCiAKICAgICBAY2FjaGVkX3Byb3BlcnR5CiAgICAgZGVmIHNj
cmlwdF9tZXRhZGF0YShzZWxmKToKKyAgICAgICAgIyB0eXBlOiAoKSAtPiBPcHRpb25hbFtMaXN0
W1R1cGxlW2J5dGVzLCBieXRlc11dXQogICAgICAgICBpZiBzZWxmLm5hbWVfaXNfd29ya2VyIG9y
IHNlbGYubmFtZV9pc19tdWx0aV9nbG9iYWwgb3Igc2VsZi5uYW1lX2lzX3dpbmRvdzoKICAgICAg
ICAgICAgIHJlZ2V4cCA9IGpzX21ldGFfcmUKICAgICAgICAgZWxpZiBzZWxmLm5hbWVfaXNfd2Vi
ZHJpdmVyOgpAQCAtMzk0LDYgKzQ3Myw3IEBAIGNsYXNzIFNvdXJjZUZpbGUob2JqZWN0KToKIAog
ICAgIEBjYWNoZWRfcHJvcGVydHkKICAgICBkZWYgdGltZW91dChzZWxmKToKKyAgICAgICAgIyB0
eXBlOiAoKSAtPiBPcHRpb25hbFtUZXh0XQogICAgICAgICAiIiJUaGUgdGltZW91dCBvZiBhIHRl
c3Qgb3IgcmVmZXJlbmNlIGZpbGUuICJsb25nIiBpZiB0aGUgZmlsZSBoYXMgYW4gZXh0ZW5kZWQg
dGltZW91dAogICAgICAgICBvciBOb25lIG90aGVyd2lzZSIiIgogICAgICAgICBpZiBzZWxmLnNj
cmlwdF9tZXRhZGF0YToKQEAgLTQwNCw3ICs0ODQsNyBAQCBjbGFzcyBTb3VyY2VGaWxlKG9iamVj
dCk6CiAgICAgICAgICAgICByZXR1cm4gTm9uZQogCiAgICAgICAgIGlmIHNlbGYudGltZW91dF9u
b2RlczoKLSAgICAgICAgICAgIHRpbWVvdXRfc3RyID0gc2VsZi50aW1lb3V0X25vZGVzWzBdLmF0
dHJpYi5nZXQoImNvbnRlbnQiLCBOb25lKQorICAgICAgICAgICAgdGltZW91dF9zdHIgPSBzZWxm
LnRpbWVvdXRfbm9kZXNbMF0uYXR0cmliLmdldCgiY29udGVudCIsIE5vbmUpICAjIHR5cGU6IE9w
dGlvbmFsW1RleHRdCiAgICAgICAgICAgICBpZiB0aW1lb3V0X3N0ciBhbmQgdGltZW91dF9zdHIu
bG93ZXIoKSA9PSAibG9uZyI6CiAgICAgICAgICAgICAgICAgcmV0dXJuICJsb25nIgogCkBAIC00
MTIsMTIgKzQ5MiwxNSBAQCBjbGFzcyBTb3VyY2VGaWxlKG9iamVjdCk6CiAKICAgICBAY2FjaGVk
X3Byb3BlcnR5CiAgICAgZGVmIHZpZXdwb3J0X25vZGVzKHNlbGYpOgorICAgICAgICAjIHR5cGU6
ICgpIC0+IExpc3RbRWxlbWVudFRyZWUuRWxlbWVudF0KICAgICAgICAgIiIiTGlzdCBvZiBFbGVt
ZW50VHJlZSBFbGVtZW50cyBjb3JyZXNwb25kaW5nIHRvIG5vZGVzIGluIGEgdGVzdCB0aGF0CiAg
ICAgICAgIHNwZWNpZnkgdmlld3BvcnQgc2l6ZXMiIiIKKyAgICAgICAgYXNzZXJ0IHNlbGYucm9v
dCBpcyBub3QgTm9uZQogICAgICAgICByZXR1cm4gc2VsZi5yb290LmZpbmRhbGwoIi4vL3todHRw
Oi8vd3d3LnczLm9yZy8xOTk5L3hodG1sfW1ldGFbQG5hbWU9J3ZpZXdwb3J0LXNpemUnXSIpCiAK
ICAgICBAY2FjaGVkX3Byb3BlcnR5CiAgICAgZGVmIHZpZXdwb3J0X3NpemUoc2VsZik6CisgICAg
ICAgICMgdHlwZTogKCkgLT4gT3B0aW9uYWxbVGV4dF0KICAgICAgICAgIiIiVGhlIHZpZXdwb3J0
IHNpemUgb2YgYSB0ZXN0IG9yIHJlZmVyZW5jZSBmaWxlIiIiCiAgICAgICAgIGlmIHNlbGYucm9v
dCBpcyBOb25lOgogICAgICAgICAgICAgcmV0dXJuIE5vbmUKQEAgLTQyOSwxMiArNTEyLDE1IEBA
IGNsYXNzIFNvdXJjZUZpbGUob2JqZWN0KToKIAogICAgIEBjYWNoZWRfcHJvcGVydHkKICAgICBk
ZWYgZHBpX25vZGVzKHNlbGYpOgorICAgICAgICAjIHR5cGU6ICgpIC0+IExpc3RbRWxlbWVudFRy
ZWUuRWxlbWVudF0KICAgICAgICAgIiIiTGlzdCBvZiBFbGVtZW50VHJlZSBFbGVtZW50cyBjb3Jy
ZXNwb25kaW5nIHRvIG5vZGVzIGluIGEgdGVzdCB0aGF0CiAgICAgICAgIHNwZWNpZnkgZGV2aWNl
IHBpeGVsIHJhdGlvcyIiIgorICAgICAgICBhc3NlcnQgc2VsZi5yb290IGlzIG5vdCBOb25lCiAg
ICAgICAgIHJldHVybiBzZWxmLnJvb3QuZmluZGFsbCgiLi8ve2h0dHA6Ly93d3cudzMub3JnLzE5
OTkveGh0bWx9bWV0YVtAbmFtZT0nZGV2aWNlLXBpeGVsLXJhdGlvJ10iKQogCiAgICAgQGNhY2hl
ZF9wcm9wZXJ0eQogICAgIGRlZiBkcGkoc2VsZik6CisgICAgICAgICMgdHlwZTogKCkgLT4gT3B0
aW9uYWxbVGV4dF0KICAgICAgICAgIiIiVGhlIGRldmljZSBwaXhlbCByYXRpbyBvZiBhIHRlc3Qg
b3IgcmVmZXJlbmNlIGZpbGUiIiIKICAgICAgICAgaWYgc2VsZi5yb290IGlzIE5vbmU6CiAgICAg
ICAgICAgICByZXR1cm4gTm9uZQpAQCAtNDQ0LDE0ICs1MzAsOTMgQEAgY2xhc3MgU291cmNlRmls
ZShvYmplY3QpOgogCiAgICAgICAgIHJldHVybiBzZWxmLmRwaV9ub2Rlc1swXS5hdHRyaWIuZ2V0
KCJjb250ZW50IiwgTm9uZSkKIAorICAgIEBjYWNoZWRfcHJvcGVydHkKKyAgICBkZWYgZnV6enlf
bm9kZXMoc2VsZik6CisgICAgICAgICMgdHlwZTogKCkgLT4gTGlzdFtFbGVtZW50VHJlZS5FbGVt
ZW50XQorICAgICAgICAiIiJMaXN0IG9mIEVsZW1lbnRUcmVlIEVsZW1lbnRzIGNvcnJlc3BvbmRp
bmcgdG8gbm9kZXMgaW4gYSB0ZXN0IHRoYXQKKyAgICAgICAgc3BlY2lmeSByZWZ0ZXN0IGZ1enpp
bmVzcyIiIgorICAgICAgICBhc3NlcnQgc2VsZi5yb290IGlzIG5vdCBOb25lCisgICAgICAgIHJl
dHVybiBzZWxmLnJvb3QuZmluZGFsbCgiLi8ve2h0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWx9
bWV0YVtAbmFtZT0nZnV6enknXSIpCisKKyAgICBAY2FjaGVkX3Byb3BlcnR5CisgICAgZGVmIGZ1
enp5KHNlbGYpOgorICAgICAgICAjIHR5cGU6ICgpIC0+IERpY3RbT3B0aW9uYWxbVHVwbGVbVGV4
dCwgVGV4dCwgVGV4dF1dLCBMaXN0W0xpc3RbaW50XV1dCisgICAgICAgIHJ2ID0ge30gICMgdHlw
ZTogRGljdFtPcHRpb25hbFtUdXBsZVtUZXh0LCBUZXh0LCBUZXh0XV0sIExpc3RbTGlzdFtpbnRd
XV0KKyAgICAgICAgaWYgc2VsZi5yb290IGlzIE5vbmU6CisgICAgICAgICAgICByZXR1cm4gcnYK
KworICAgICAgICBpZiBub3Qgc2VsZi5mdXp6eV9ub2RlczoKKyAgICAgICAgICAgIHJldHVybiBy
dgorCisgICAgICAgIGFyZ3MgPSBbdSJtYXhEaWZmZXJlbmNlIiwgdSJ0b3RhbFBpeGVscyJdCisK
KyAgICAgICAgZm9yIG5vZGUgaW4gc2VsZi5mdXp6eV9ub2RlczoKKyAgICAgICAgICAgIGl0ZW0g
PSBub2RlLmF0dHJpYi5nZXQodSJjb250ZW50IiwgdSIiKSAgIyB0eXBlOiBUZXh0CisKKyAgICAg
ICAgICAgIHBhcnRzID0gaXRlbS5yc3BsaXQodSI6IiwgMSkKKyAgICAgICAgICAgIGlmIGxlbihw
YXJ0cykgPT0gMToKKyAgICAgICAgICAgICAgICBrZXkgPSBOb25lICAjIHR5cGU6IE9wdGlvbmFs
W1R1cGxlW1RleHQsIFRleHQsIFRleHRdXQorICAgICAgICAgICAgICAgIHZhbHVlID0gcGFydHNb
MF0KKyAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAga2V5X3BhcnQgPSB1cmxqb2lu
KHNlbGYudXJsLCBwYXJ0c1swXSkKKyAgICAgICAgICAgICAgICByZWZ0eXBlID0gTm9uZQorICAg
ICAgICAgICAgICAgIGZvciByZWYgaW4gc2VsZi5yZWZlcmVuY2VzOiAgIyB0eXBlOiBUdXBsZVtU
ZXh0LCBUZXh0XQorICAgICAgICAgICAgICAgICAgICBpZiByZWZbMF0gPT0ga2V5X3BhcnQ6Cisg
ICAgICAgICAgICAgICAgICAgICAgICByZWZ0eXBlID0gcmVmWzFdCisgICAgICAgICAgICAgICAg
ICAgICAgICBicmVhaworICAgICAgICAgICAgICAgIGlmIHJlZnR5cGUgbm90IGluICh1Ij09Iiwg
dSIhPSIpOgorICAgICAgICAgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJGdXp6eSBrZXkg
JXMgZG9lc24ndCBjb3JyZXNwb25kIHRvIGEgcmVmZXJlbmNlcyIgJSBrZXlfcGFydCkKKyAgICAg
ICAgICAgICAgICBrZXkgPSAoc2VsZi51cmwsIGtleV9wYXJ0LCByZWZ0eXBlKQorICAgICAgICAg
ICAgICAgIHZhbHVlID0gcGFydHNbMV0KKyAgICAgICAgICAgIHJhbmdlcyA9IHZhbHVlLnNwbGl0
KHUiOyIpCisgICAgICAgICAgICBpZiBsZW4ocmFuZ2VzKSAhPSAyOgorICAgICAgICAgICAgICAg
IHJhaXNlIFZhbHVlRXJyb3IoIk1hbGZvcm1lZCBmdXp6eSB2YWx1ZSAlcyIgJSBpdGVtKQorICAg
ICAgICAgICAgYXJnX3ZhbHVlcyA9IHt9ICAjIHR5cGU6IERpY3RbVGV4dCwgTGlzdFtpbnRdXQor
ICAgICAgICAgICAgcG9zaXRpb25hbF9hcmdzID0gZGVxdWUoKSAgIyB0eXBlOiBEZXF1ZVtMaXN0
W2ludF1dCisgICAgICAgICAgICBmb3IgcmFuZ2Vfc3RyX3ZhbHVlIGluIHJhbmdlczogICMgdHlw
ZTogVGV4dAorICAgICAgICAgICAgICAgIG5hbWUgPSBOb25lICAjIHR5cGU6IE9wdGlvbmFsW1Rl
eHRdCisgICAgICAgICAgICAgICAgaWYgdSI9IiBpbiByYW5nZV9zdHJfdmFsdWU6CisgICAgICAg
ICAgICAgICAgICAgIG5hbWUsIHJhbmdlX3N0cl92YWx1ZSA9IFtwYXJ0LnN0cmlwKCkKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvciBwYXJ0IGluIHJhbmdl
X3N0cl92YWx1ZS5zcGxpdCh1Ij0iLCAxKV0KKyAgICAgICAgICAgICAgICAgICAgaWYgbmFtZSBu
b3QgaW4gYXJnczoKKyAgICAgICAgICAgICAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoIiVz
IGlzIG5vdCBhIHZhbGlkIGZ1enp5IHByb3BlcnR5IiAlIG5hbWUpCisgICAgICAgICAgICAgICAg
ICAgIGlmIGFyZ192YWx1ZXMuZ2V0KG5hbWUpOgorICAgICAgICAgICAgICAgICAgICAgICAgcmFp
c2UgVmFsdWVFcnJvcigiR290IG11bHRpcGxlIHZhbHVlcyBmb3IgYXJndW1lbnQgJXMiICUgbmFt
ZSkKKyAgICAgICAgICAgICAgICBpZiB1Ii0iIGluIHJhbmdlX3N0cl92YWx1ZToKKyAgICAgICAg
ICAgICAgICAgICAgcmFuZ2VfbWluLCByYW5nZV9tYXggPSByYW5nZV9zdHJfdmFsdWUuc3BsaXQo
dSItIikKKyAgICAgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgICAgICByYW5nZV9t
aW4gPSByYW5nZV9zdHJfdmFsdWUKKyAgICAgICAgICAgICAgICAgICAgcmFuZ2VfbWF4ID0gcmFu
Z2Vfc3RyX3ZhbHVlCisgICAgICAgICAgICAgICAgdHJ5OgorICAgICAgICAgICAgICAgICAgICBy
YW5nZV92YWx1ZSA9IFtpbnQoeC5zdHJpcCgpKSBmb3IgeCBpbiAocmFuZ2VfbWluLCByYW5nZV9t
YXgpXQorICAgICAgICAgICAgICAgIGV4Y2VwdCBWYWx1ZUVycm9yOgorICAgICAgICAgICAgICAg
ICAgICByYWlzZSBWYWx1ZUVycm9yKCJGdXp6eSB2YWx1ZSAlcyBtdXN0IGJlIGEgcmFuZ2Ugb2Yg
aW50ZWdlcnMiICUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByYW5nZV9z
dHJfdmFsdWUpCisgICAgICAgICAgICAgICAgaWYgbmFtZSBpcyBOb25lOgorICAgICAgICAgICAg
ICAgICAgICBwb3NpdGlvbmFsX2FyZ3MuYXBwZW5kKHJhbmdlX3ZhbHVlKQorICAgICAgICAgICAg
ICAgIGVsc2U6CisgICAgICAgICAgICAgICAgICAgIGFyZ192YWx1ZXNbbmFtZV0gPSByYW5nZV92
YWx1ZQorICAgICAgICAgICAgcnZba2V5XSA9IFtdCisgICAgICAgICAgICBmb3IgYXJnX25hbWUg
aW4gYXJnczoKKyAgICAgICAgICAgICAgICBpZiBhcmdfdmFsdWVzLmdldChhcmdfbmFtZSk6Cisg
ICAgICAgICAgICAgICAgICAgIGFyZ192YWx1ZSA9IGFyZ192YWx1ZXMucG9wKGFyZ19uYW1lKQor
ICAgICAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgICAgIGFyZ192YWx1ZSA9IHBv
c2l0aW9uYWxfYXJncy5wb3BsZWZ0KCkKKyAgICAgICAgICAgICAgICBydltrZXldLmFwcGVuZChh
cmdfdmFsdWUpCisgICAgICAgICAgICBhc3NlcnQgbGVuKGFyZ192YWx1ZXMpID09IDAgYW5kIGxl
bihwb3NpdGlvbmFsX2FyZ3MpID09IDAKKyAgICAgICAgcmV0dXJuIHJ2CisKICAgICBAY2FjaGVk
X3Byb3BlcnR5CiAgICAgZGVmIHRlc3RoYXJuZXNzX25vZGVzKHNlbGYpOgorICAgICAgICAjIHR5
cGU6ICgpIC0+IExpc3RbRWxlbWVudFRyZWUuRWxlbWVudF0KICAgICAgICAgIiIiTGlzdCBvZiBF
bGVtZW50VHJlZSBFbGVtZW50cyBjb3JyZXNwb25kaW5nIHRvIG5vZGVzIHJlcHJlc2VudGluZyBh
CiAgICAgICAgIHRlc3RoYXJuZXNzLmpzIHNjcmlwdCIiIgorICAgICAgICBhc3NlcnQgc2VsZi5y
b290IGlzIG5vdCBOb25lCiAgICAgICAgIHJldHVybiBzZWxmLnJvb3QuZmluZGFsbCgiLi8ve2h0
dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWx9c2NyaXB0W0BzcmM9Jy9yZXNvdXJjZXMvdGVzdGhh
cm5lc3MuanMnXSIpCiAKICAgICBAY2FjaGVkX3Byb3BlcnR5CiAgICAgZGVmIGNvbnRlbnRfaXNf
dGVzdGhhcm5lc3Moc2VsZik6CisgICAgICAgICMgdHlwZTogKCkgLT4gT3B0aW9uYWxbYm9vbF0K
ICAgICAgICAgIiIiQm9vbGVhbiBpbmRpY2F0aW5nIHdoZXRoZXIgdGhlIGZpbGUgY29udGVudCBy
ZXByZXNlbnRzIGEKICAgICAgICAgdGVzdGhhcm5lc3MuanMgdGVzdCIiIgogICAgICAgICBpZiBz
ZWxmLnJvb3QgaXMgTm9uZToKQEAgLTQ2MCwyMSArNjI1LDI2IEBAIGNsYXNzIFNvdXJjZUZpbGUo
b2JqZWN0KToKIAogICAgIEBjYWNoZWRfcHJvcGVydHkKICAgICBkZWYgdmFyaWFudF9ub2Rlcyhz
ZWxmKToKKyAgICAgICAgIyB0eXBlOiAoKSAtPiBMaXN0W0VsZW1lbnRUcmVlLkVsZW1lbnRdCiAg
ICAgICAgICIiIkxpc3Qgb2YgRWxlbWVudFRyZWUgRWxlbWVudHMgY29ycmVzcG9uZGluZyB0byBu
b2RlcyByZXByZXNlbnRpbmcgYQogICAgICAgICB0ZXN0IHZhcmlhbnQiIiIKKyAgICAgICAgYXNz
ZXJ0IHNlbGYucm9vdCBpcyBub3QgTm9uZQogICAgICAgICByZXR1cm4gc2VsZi5yb290LmZpbmRh
bGwoIi4vL3todHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sfW1ldGFbQG5hbWU9J3ZhcmlhbnQn
XSIpCiAKICAgICBAY2FjaGVkX3Byb3BlcnR5CiAgICAgZGVmIHRlc3RfdmFyaWFudHMoc2VsZik6
Ci0gICAgICAgIHJ2ID0gW10KKyAgICAgICAgIyB0eXBlOiAoKSAtPiBMaXN0W1RleHRdCisgICAg
ICAgIHJ2ID0gW10gICMgdHlwZTogTGlzdFtUZXh0XQogICAgICAgICBpZiBzZWxmLmV4dCA9PSAi
LmpzIjoKLSAgICAgICAgICAgIGZvciAoa2V5LCB2YWx1ZSkgaW4gc2VsZi5zY3JpcHRfbWV0YWRh
dGE6CisgICAgICAgICAgICBzY3JpcHRfbWV0YWRhdGEgPSBzZWxmLnNjcmlwdF9tZXRhZGF0YQor
ICAgICAgICAgICAgYXNzZXJ0IHNjcmlwdF9tZXRhZGF0YSBpcyBub3QgTm9uZQorICAgICAgICAg
ICAgZm9yIChrZXksIHZhbHVlKSBpbiBzY3JpcHRfbWV0YWRhdGE6CiAgICAgICAgICAgICAgICAg
aWYga2V5ID09IGIidmFyaWFudCI6CiAgICAgICAgICAgICAgICAgICAgIHJ2LmFwcGVuZCh2YWx1
ZS5kZWNvZGUoInV0Zi04IikpCiAgICAgICAgIGVsc2U6CiAgICAgICAgICAgICBmb3IgZWxlbWVu
dCBpbiBzZWxmLnZhcmlhbnRfbm9kZXM6CiAgICAgICAgICAgICAgICAgaWYgImNvbnRlbnQiIGlu
IGVsZW1lbnQuYXR0cmliOgotICAgICAgICAgICAgICAgICAgICB2YXJpYW50ID0gZWxlbWVudC5h
dHRyaWJbImNvbnRlbnQiXQorICAgICAgICAgICAgICAgICAgICB2YXJpYW50ID0gZWxlbWVudC5h
dHRyaWJbImNvbnRlbnQiXSAgIyB0eXBlOiBUZXh0CiAgICAgICAgICAgICAgICAgICAgIHJ2LmFw
cGVuZCh2YXJpYW50KQogCiAgICAgICAgIGZvciB2YXJpYW50IGluIHJ2OgpAQCAtNDg3LDEyICs2
NTcsMTUgQEAgY2xhc3MgU291cmNlRmlsZShvYmplY3QpOgogCiAgICAgQGNhY2hlZF9wcm9wZXJ0
eQogICAgIGRlZiB0ZXN0ZHJpdmVyX25vZGVzKHNlbGYpOgorICAgICAgICAjIHR5cGU6ICgpIC0+
IExpc3RbRWxlbWVudFRyZWUuRWxlbWVudF0KICAgICAgICAgIiIiTGlzdCBvZiBFbGVtZW50VHJl
ZSBFbGVtZW50cyBjb3JyZXNwb25kaW5nIHRvIG5vZGVzIHJlcHJlc2VudGluZyBhCiAgICAgICAg
IHRlc3Rkcml2ZXIuanMgc2NyaXB0IiIiCisgICAgICAgIGFzc2VydCBzZWxmLnJvb3QgaXMgbm90
IE5vbmUKICAgICAgICAgcmV0dXJuIHNlbGYucm9vdC5maW5kYWxsKCIuLy97aHR0cDovL3d3dy53
My5vcmcvMTk5OS94aHRtbH1zY3JpcHRbQHNyYz0nL3Jlc291cmNlcy90ZXN0ZHJpdmVyLmpzJ10i
KQogCiAgICAgQGNhY2hlZF9wcm9wZXJ0eQogICAgIGRlZiBoYXNfdGVzdGRyaXZlcihzZWxmKToK
KyAgICAgICAgIyB0eXBlOiAoKSAtPiBPcHRpb25hbFtib29sXQogICAgICAgICAiIiJCb29sZWFu
IGluZGljYXRpbmcgd2hldGhlciB0aGUgZmlsZSBjb250ZW50IHJlcHJlc2VudHMgYQogICAgICAg
ICB0ZXN0aGFybmVzcy5qcyB0ZXN0IiIiCiAgICAgICAgIGlmIHNlbGYucm9vdCBpcyBOb25lOgpA
QCAtNTAxLDYgKzY3NCw3IEBAIGNsYXNzIFNvdXJjZUZpbGUob2JqZWN0KToKIAogICAgIEBjYWNo
ZWRfcHJvcGVydHkKICAgICBkZWYgcmVmdGVzdF9ub2RlcyhzZWxmKToKKyAgICAgICAgIyB0eXBl
OiAoKSAtPiBMaXN0W0VsZW1lbnRUcmVlLkVsZW1lbnRdCiAgICAgICAgICIiIkxpc3Qgb2YgRWxl
bWVudFRyZWUgRWxlbWVudHMgY29ycmVzcG9uZGluZyB0byBub2RlcyByZXByZXNlbnRpbmcgYQog
ICAgICAgICB0byBhIHJlZnRlc3QgPGxpbms+IiIiCiAgICAgICAgIGlmIHNlbGYucm9vdCBpcyBO
b25lOgpAQCAtNTEyLDkgKzY4NiwxMCBAQCBjbGFzcyBTb3VyY2VGaWxlKG9iamVjdCk6CiAKICAg
ICBAY2FjaGVkX3Byb3BlcnR5CiAgICAgZGVmIHJlZmVyZW5jZXMoc2VsZik6CisgICAgICAgICMg
dHlwZTogKCkgLT4gTGlzdFtUdXBsZVtUZXh0LCBUZXh0XV0KICAgICAgICAgIiIiTGlzdCBvZiAo
cmVmX3VybCwgcmVsYXRpb24pIHR1cGxlcyBmb3IgYW55IHJlZnRlc3QgcmVmZXJlbmNlcyBzcGVj
aWZpZWQgaW4KICAgICAgICAgdGhlIGZpbGUiIiIKLSAgICAgICAgcnYgPSBbXQorICAgICAgICBy
diA9IFtdICAjIHR5cGU6IExpc3RbVHVwbGVbVGV4dCwgVGV4dF1dCiAgICAgICAgIHJlbF9tYXAg
PSB7Im1hdGNoIjogIj09IiwgIm1pc21hdGNoIjogIiE9In0KICAgICAgICAgZm9yIGl0ZW0gaW4g
c2VsZi5yZWZ0ZXN0X25vZGVzOgogICAgICAgICAgICAgaWYgImhyZWYiIGluIGl0ZW0uYXR0cmli
OgpAQCAtNTI1LDEyICs3MDAsMTQgQEAgY2xhc3MgU291cmNlRmlsZShvYmplY3QpOgogCiAgICAg
QGNhY2hlZF9wcm9wZXJ0eQogICAgIGRlZiBjb250ZW50X2lzX3JlZl9ub2RlKHNlbGYpOgorICAg
ICAgICAjIHR5cGU6ICgpIC0+IGJvb2wKICAgICAgICAgIiIiQm9vbGVhbiBpbmRpY2F0aW5nIHdo
ZXRoZXIgdGhlIGZpbGUgaXMgYSBub24tbGVhZiBub2RlIGluIGEgcmVmdGVzdAogICAgICAgICBn
cmFwaCAoaS5lLiBpZiBpdCBjb250YWlucyBhbnkgPGxpbmsgcmVsPVttaXNdbWF0Y2g+IiIiCiAg
ICAgICAgIHJldHVybiBib29sKHNlbGYucmVmZXJlbmNlcykKIAogICAgIEBjYWNoZWRfcHJvcGVy
dHkKICAgICBkZWYgY3NzX2ZsYWdfbm9kZXMoc2VsZik6CisgICAgICAgICMgdHlwZTogKCkgLT4g
TGlzdFtFbGVtZW50VHJlZS5FbGVtZW50XQogICAgICAgICAiIiJMaXN0IG9mIEVsZW1lbnRUcmVl
IEVsZW1lbnRzIGNvcnJlc3BvbmRpbmcgdG8gbm9kZXMgcmVwcmVzZW50aW5nIGEKICAgICAgICAg
ZmxhZyA8bWV0YT4iIiIKICAgICAgICAgaWYgc2VsZi5yb290IGlzIE5vbmU6CkBAIC01MzksOCAr
NzE2LDkgQEAgY2xhc3MgU291cmNlRmlsZShvYmplY3QpOgogCiAgICAgQGNhY2hlZF9wcm9wZXJ0
eQogICAgIGRlZiBjc3NfZmxhZ3Moc2VsZik6CisgICAgICAgICMgdHlwZTogKCkgLT4gU2V0W1Rl
eHRdCiAgICAgICAgICIiIlNldCBvZiBmbGFncyBzcGVjaWZpZWQgaW4gdGhlIGZpbGUiIiIKLSAg
ICAgICAgcnYgPSBzZXQoKQorICAgICAgICBydiA9IHNldCgpICAjIHR5cGU6IFNldFtUZXh0XQog
ICAgICAgICBmb3IgaXRlbSBpbiBzZWxmLmNzc19mbGFnX25vZGVzOgogICAgICAgICAgICAgaWYg
ImNvbnRlbnQiIGluIGl0ZW0uYXR0cmliOgogICAgICAgICAgICAgICAgIGZvciBmbGFnIGluIGl0
ZW0uYXR0cmliWyJjb250ZW50Il0uc3BsaXQoKToKQEAgLTU0OSw2ICs3MjcsNyBAQCBjbGFzcyBT
b3VyY2VGaWxlKG9iamVjdCk6CiAKICAgICBAY2FjaGVkX3Byb3BlcnR5CiAgICAgZGVmIGNvbnRl
bnRfaXNfY3NzX21hbnVhbChzZWxmKToKKyAgICAgICAgIyB0eXBlOiAoKSAtPiBPcHRpb25hbFti
b29sXQogICAgICAgICAiIiJCb29sZWFuIGluZGljYXRpbmcgd2hldGhlciB0aGUgZmlsZSBjb250
ZW50IHJlcHJlc2VudHMgYQogICAgICAgICBDU1MgV0ctc3R5bGUgbWFudWFsIHRlc3QiIiIKICAg
ICAgICAgaWYgc2VsZi5yb290IGlzIE5vbmU6CkBAIC01NTgsNiArNzM3LDcgQEAgY2xhc3MgU291
cmNlRmlsZShvYmplY3QpOgogCiAgICAgQGNhY2hlZF9wcm9wZXJ0eQogICAgIGRlZiBzcGVjX2xp
bmtfbm9kZXMoc2VsZik6CisgICAgICAgICMgdHlwZTogKCkgLT4gTGlzdFtFbGVtZW50VHJlZS5F
bGVtZW50XQogICAgICAgICAiIiJMaXN0IG9mIEVsZW1lbnRUcmVlIEVsZW1lbnRzIGNvcnJlc3Bv
bmRpbmcgdG8gbm9kZXMgcmVwcmVzZW50aW5nIGEKICAgICAgICAgPGxpbmsgcmVsPWhlbHA+LCB1
c2VkIHRvIHBvaW50IHRvIHNwZWNzIiIiCiAgICAgICAgIGlmIHNlbGYucm9vdCBpcyBOb25lOgpA
QCAtNTY2LDggKzc0Niw5IEBAIGNsYXNzIFNvdXJjZUZpbGUob2JqZWN0KToKIAogICAgIEBjYWNo
ZWRfcHJvcGVydHkKICAgICBkZWYgc3BlY19saW5rcyhzZWxmKToKKyAgICAgICAgIyB0eXBlOiAo
KSAtPiBTZXRbVGV4dF0KICAgICAgICAgIiIiU2V0IG9mIHNwZWMgbGlua3Mgc3BlY2lmaWVkIGlu
IHRoZSBmaWxlIiIiCi0gICAgICAgIHJ2ID0gc2V0KCkKKyAgICAgICAgcnYgPSBzZXQoKSAgIyB0
eXBlOiBTZXRbVGV4dF0KICAgICAgICAgZm9yIGl0ZW0gaW4gc2VsZi5zcGVjX2xpbmtfbm9kZXM6
CiAgICAgICAgICAgICBpZiAiaHJlZiIgaW4gaXRlbS5hdHRyaWI6CiAgICAgICAgICAgICAgICAg
cnYuYWRkKGl0ZW0uYXR0cmliWyJocmVmIl0uc3RyaXAoc3BhY2VfY2hhcnMpKQpAQCAtNTc1LDYg
Kzc1Niw3IEBAIGNsYXNzIFNvdXJjZUZpbGUob2JqZWN0KToKIAogICAgIEBjYWNoZWRfcHJvcGVy
dHkKICAgICBkZWYgY29udGVudF9pc19jc3NfdmlzdWFsKHNlbGYpOgorICAgICAgICAjIHR5cGU6
ICgpIC0+IE9wdGlvbmFsW2Jvb2xdCiAgICAgICAgICIiIkJvb2xlYW4gaW5kaWNhdGluZyB3aGV0
aGVyIHRoZSBmaWxlIGNvbnRlbnQgcmVwcmVzZW50cyBhCiAgICAgICAgIENTUyBXRy1zdHlsZSB2
aXN1YWwgdGVzdCIiIgogICAgICAgICBpZiBzZWxmLnJvb3QgaXMgTm9uZToKQEAgLTU4NCwxMCAr
NzY2LDEyIEBAIGNsYXNzIFNvdXJjZUZpbGUob2JqZWN0KToKIAogICAgIEBwcm9wZXJ0eQogICAg
IGRlZiB0eXBlKHNlbGYpOgorICAgICAgICAjIHR5cGU6ICgpIC0+IFRleHQKICAgICAgICAgcnYs
IF8gPSBzZWxmLm1hbmlmZXN0X2l0ZW1zKCkKICAgICAgICAgcmV0dXJuIHJ2CiAKICAgICBkZWYg
bWFuaWZlc3RfaXRlbXMoc2VsZik6CisgICAgICAgICMgdHlwZTogKCkgLT4gVHVwbGVbVGV4dCwg
TGlzdFtNYW5pZmVzdEl0ZW1dXQogICAgICAgICAiIiJMaXN0IG9mIG1hbmlmZXN0IGl0ZW1zIGNv
cnJlc3BvbmRpbmcgdG8gdGhlIGZpbGUuIFRoZXJlIGlzIHR5cGljYWxseSBvbmUKICAgICAgICAg
cGVyIHRlc3QsIGJ1dCBpbiB0aGUgY2FzZSBvZiByZWZ0ZXN0cyBhIG5vZGUgbWF5IGhhdmUgY29y
cmVzcG9uZGluZyBtYW5pZmVzdAogICAgICAgICBpdGVtcyB3aXRob3V0IGJlaW5nIGEgdGVzdCBp
dHNlbGYuIiIiCkBAIC01OTYsNzggKzc4MCwxNjUgQEAgY2xhc3MgU291cmNlRmlsZShvYmplY3Qp
OgogICAgICAgICAgICAgcmV0dXJuIHNlbGYuaXRlbXNfY2FjaGUKIAogICAgICAgICBpZiBzZWxm
Lm5hbWVfaXNfbm9uX3Rlc3Q6Ci0gICAgICAgICAgICBydiA9ICJzdXBwb3J0IiwgW1N1cHBvcnRG
aWxlKHNlbGYpXQotCi0gICAgICAgIGVsaWYgc2VsZi5uYW1lX2lzX3N0dWI6Ci0gICAgICAgICAg
ICBydiA9IFN0dWIuaXRlbV90eXBlLCBbU3R1YihzZWxmLCBzZWxmLnVybCldCisgICAgICAgICAg
ICBydiA9ICJzdXBwb3J0IiwgWworICAgICAgICAgICAgICAgIFN1cHBvcnRGaWxlKAorICAgICAg
ICAgICAgICAgICAgICBzZWxmLnRlc3RzX3Jvb3QsCisgICAgICAgICAgICAgICAgICAgIHNlbGYu
cmVsX3BhdGgKKyAgICAgICAgICAgICAgICApXSAgIyB0eXBlOiBUdXBsZVtUZXh0LCBMaXN0W01h
bmlmZXN0SXRlbV1dCiAKICAgICAgICAgZWxpZiBzZWxmLm5hbWVfaXNfbWFudWFsOgotICAgICAg
ICAgICAgcnYgPSBNYW51YWxUZXN0Lml0ZW1fdHlwZSwgW01hbnVhbFRlc3Qoc2VsZiwgc2VsZi51
cmwpXQorICAgICAgICAgICAgcnYgPSBNYW51YWxUZXN0Lml0ZW1fdHlwZSwgWworICAgICAgICAg
ICAgICAgIE1hbnVhbFRlc3QoCisgICAgICAgICAgICAgICAgICAgIHNlbGYudGVzdHNfcm9vdCwK
KyAgICAgICAgICAgICAgICAgICAgc2VsZi5yZWxfcGF0aCwKKyAgICAgICAgICAgICAgICAgICAg
c2VsZi51cmxfYmFzZSwKKyAgICAgICAgICAgICAgICAgICAgc2VsZi5yZWxfdXJsCisgICAgICAg
ICAgICAgICAgKV0KIAogICAgICAgICBlbGlmIHNlbGYubmFtZV9pc19jb25mb3JtYW5jZToKLSAg
ICAgICAgICAgIHJ2ID0gQ29uZm9ybWFuY2VDaGVja2VyVGVzdC5pdGVtX3R5cGUsIFtDb25mb3Jt
YW5jZUNoZWNrZXJUZXN0KHNlbGYsIHNlbGYudXJsKV0KKyAgICAgICAgICAgIHJ2ID0gQ29uZm9y
bWFuY2VDaGVja2VyVGVzdC5pdGVtX3R5cGUsIFsKKyAgICAgICAgICAgICAgICBDb25mb3JtYW5j
ZUNoZWNrZXJUZXN0KAorICAgICAgICAgICAgICAgICAgICBzZWxmLnRlc3RzX3Jvb3QsCisgICAg
ICAgICAgICAgICAgICAgIHNlbGYucmVsX3BhdGgsCisgICAgICAgICAgICAgICAgICAgIHNlbGYu
dXJsX2Jhc2UsCisgICAgICAgICAgICAgICAgICAgIHNlbGYucmVsX3VybAorICAgICAgICAgICAg
ICAgICldCiAKICAgICAgICAgZWxpZiBzZWxmLm5hbWVfaXNfY29uZm9ybWFuY2Vfc3VwcG9ydDoK
LSAgICAgICAgICAgIHJ2ID0gInN1cHBvcnQiLCBbU3VwcG9ydEZpbGUoc2VsZildCisgICAgICAg
ICAgICBydiA9ICJzdXBwb3J0IiwgWworICAgICAgICAgICAgICAgIFN1cHBvcnRGaWxlKAorICAg
ICAgICAgICAgICAgICAgICBzZWxmLnRlc3RzX3Jvb3QsCisgICAgICAgICAgICAgICAgICAgIHNl
bGYucmVsX3BhdGgKKyAgICAgICAgICAgICAgICApXQogCiAgICAgICAgIGVsaWYgc2VsZi5uYW1l
X2lzX3Zpc3VhbDoKLSAgICAgICAgICAgIHJ2ID0gVmlzdWFsVGVzdC5pdGVtX3R5cGUsIFtWaXN1
YWxUZXN0KHNlbGYsIHNlbGYudXJsKV0KKyAgICAgICAgICAgIHJ2ID0gVmlzdWFsVGVzdC5pdGVt
X3R5cGUsIFsKKyAgICAgICAgICAgICAgICBWaXN1YWxUZXN0KAorICAgICAgICAgICAgICAgICAg
ICBzZWxmLnRlc3RzX3Jvb3QsCisgICAgICAgICAgICAgICAgICAgIHNlbGYucmVsX3BhdGgsCisg
ICAgICAgICAgICAgICAgICAgIHNlbGYudXJsX2Jhc2UsCisgICAgICAgICAgICAgICAgICAgIHNl
bGYucmVsX3VybAorICAgICAgICAgICAgICAgICldCiAKICAgICAgICAgZWxpZiBzZWxmLm5hbWVf
aXNfbXVsdGlfZ2xvYmFsOgogICAgICAgICAgICAgZ2xvYmFscyA9IGIiIgotICAgICAgICAgICAg
Zm9yIChrZXksIHZhbHVlKSBpbiBzZWxmLnNjcmlwdF9tZXRhZGF0YToKKyAgICAgICAgICAgIHNj
cmlwdF9tZXRhZGF0YSA9IHNlbGYuc2NyaXB0X21ldGFkYXRhCisgICAgICAgICAgICBhc3NlcnQg
c2NyaXB0X21ldGFkYXRhIGlzIG5vdCBOb25lCisgICAgICAgICAgICBmb3IgKGtleSwgdmFsdWUp
IGluIHNjcmlwdF9tZXRhZGF0YToKICAgICAgICAgICAgICAgICBpZiBrZXkgPT0gYiJnbG9iYWwi
OgogICAgICAgICAgICAgICAgICAgICBnbG9iYWxzID0gdmFsdWUKICAgICAgICAgICAgICAgICAg
ICAgYnJlYWsKIAogICAgICAgICAgICAgdGVzdHMgPSBbCi0gICAgICAgICAgICAgICAgVGVzdGhh
cm5lc3NUZXN0KHNlbGYsIGdsb2JhbF92YXJpYW50X3VybChzZWxmLnVybCwgc3VmZml4KSArIHZh
cmlhbnQsIHRpbWVvdXQ9c2VsZi50aW1lb3V0LAotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBqc3NoZWxsPWpzc2hlbGwpCisgICAgICAgICAgICAgICAgVGVzdGhhcm5lc3NUZXN0KAor
ICAgICAgICAgICAgICAgICAgICBzZWxmLnRlc3RzX3Jvb3QsCisgICAgICAgICAgICAgICAgICAg
IHNlbGYucmVsX3BhdGgsCisgICAgICAgICAgICAgICAgICAgIHNlbGYudXJsX2Jhc2UsCisgICAg
ICAgICAgICAgICAgICAgIGdsb2JhbF92YXJpYW50X3VybChzZWxmLnJlbF91cmwsIHN1ZmZpeCkg
KyB2YXJpYW50LAorICAgICAgICAgICAgICAgICAgICB0aW1lb3V0PXNlbGYudGltZW91dCwKKyAg
ICAgICAgICAgICAgICAgICAganNzaGVsbD1qc3NoZWxsLAorICAgICAgICAgICAgICAgICAgICBz
Y3JpcHRfbWV0YWRhdGE9c2VsZi5zY3JpcHRfbWV0YWRhdGEKKyAgICAgICAgICAgICAgICApCiAg
ICAgICAgICAgICAgICAgZm9yIChzdWZmaXgsIGpzc2hlbGwpIGluIHNvcnRlZChnbG9iYWxfc3Vm
Zml4ZXMoZ2xvYmFscykpCiAgICAgICAgICAgICAgICAgZm9yIHZhcmlhbnQgaW4gc2VsZi50ZXN0
X3ZhcmlhbnRzCi0gICAgICAgICAgICBdCisgICAgICAgICAgICBdICAgIyB0eXBlOiBMaXN0W01h
bmlmZXN0SXRlbV0KICAgICAgICAgICAgIHJ2ID0gVGVzdGhhcm5lc3NUZXN0Lml0ZW1fdHlwZSwg
dGVzdHMKIAogICAgICAgICBlbGlmIHNlbGYubmFtZV9pc193b3JrZXI6Ci0gICAgICAgICAgICB0
ZXN0X3VybCA9IHJlcGxhY2VfZW5kKHNlbGYudXJsLCAiLndvcmtlci5qcyIsICIud29ya2VyLmh0
bWwiKQorICAgICAgICAgICAgdGVzdF91cmwgPSByZXBsYWNlX2VuZChzZWxmLnJlbF91cmwsICIu
d29ya2VyLmpzIiwgIi53b3JrZXIuaHRtbCIpCiAgICAgICAgICAgICB0ZXN0cyA9IFsKLSAgICAg
ICAgICAgICAgICBUZXN0aGFybmVzc1Rlc3Qoc2VsZiwgdGVzdF91cmwgKyB2YXJpYW50LCB0aW1l
b3V0PXNlbGYudGltZW91dCkKKyAgICAgICAgICAgICAgICBUZXN0aGFybmVzc1Rlc3QoCisgICAg
ICAgICAgICAgICAgICAgIHNlbGYudGVzdHNfcm9vdCwKKyAgICAgICAgICAgICAgICAgICAgc2Vs
Zi5yZWxfcGF0aCwKKyAgICAgICAgICAgICAgICAgICAgc2VsZi51cmxfYmFzZSwKKyAgICAgICAg
ICAgICAgICAgICAgdGVzdF91cmwgKyB2YXJpYW50LAorICAgICAgICAgICAgICAgICAgICB0aW1l
b3V0PXNlbGYudGltZW91dCwKKyAgICAgICAgICAgICAgICAgICAgc2NyaXB0X21ldGFkYXRhPXNl
bGYuc2NyaXB0X21ldGFkYXRhCisgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgIGZv
ciB2YXJpYW50IGluIHNlbGYudGVzdF92YXJpYW50cwogICAgICAgICAgICAgXQogICAgICAgICAg
ICAgcnYgPSBUZXN0aGFybmVzc1Rlc3QuaXRlbV90eXBlLCB0ZXN0cwogCiAgICAgICAgIGVsaWYg
c2VsZi5uYW1lX2lzX3dpbmRvdzoKLSAgICAgICAgICAgIHRlc3RfdXJsID0gcmVwbGFjZV9lbmQo
c2VsZi51cmwsICIud2luZG93LmpzIiwgIi53aW5kb3cuaHRtbCIpCisgICAgICAgICAgICB0ZXN0
X3VybCA9IHJlcGxhY2VfZW5kKHNlbGYucmVsX3VybCwgIi53aW5kb3cuanMiLCAiLndpbmRvdy5o
dG1sIikKICAgICAgICAgICAgIHRlc3RzID0gWwotICAgICAgICAgICAgICAgIFRlc3RoYXJuZXNz
VGVzdChzZWxmLCB0ZXN0X3VybCArIHZhcmlhbnQsIHRpbWVvdXQ9c2VsZi50aW1lb3V0KQorICAg
ICAgICAgICAgICAgIFRlc3RoYXJuZXNzVGVzdCgKKyAgICAgICAgICAgICAgICAgICAgc2VsZi50
ZXN0c19yb290LAorICAgICAgICAgICAgICAgICAgICBzZWxmLnJlbF9wYXRoLAorICAgICAgICAg
ICAgICAgICAgICBzZWxmLnVybF9iYXNlLAorICAgICAgICAgICAgICAgICAgICB0ZXN0X3VybCAr
IHZhcmlhbnQsCisgICAgICAgICAgICAgICAgICAgIHRpbWVvdXQ9c2VsZi50aW1lb3V0LAorICAg
ICAgICAgICAgICAgICAgICBzY3JpcHRfbWV0YWRhdGE9c2VsZi5zY3JpcHRfbWV0YWRhdGEKKyAg
ICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAgZm9yIHZhcmlhbnQgaW4gc2VsZi50ZXN0
X3ZhcmlhbnRzCiAgICAgICAgICAgICBdCiAgICAgICAgICAgICBydiA9IFRlc3RoYXJuZXNzVGVz
dC5pdGVtX3R5cGUsIHRlc3RzCiAKICAgICAgICAgZWxpZiBzZWxmLm5hbWVfaXNfd2ViZHJpdmVy
OgotICAgICAgICAgICAgcnYgPSBXZWJkcml2ZXJTcGVjVGVzdC5pdGVtX3R5cGUsIFtXZWJkcml2
ZXJTcGVjVGVzdChzZWxmLCBzZWxmLnVybCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGltZW91dD1zZWxmLnRpbWVvdXQp
XQorICAgICAgICAgICAgcnYgPSBXZWJEcml2ZXJTcGVjVGVzdC5pdGVtX3R5cGUsIFsKKyAgICAg
ICAgICAgICAgICBXZWJEcml2ZXJTcGVjVGVzdCgKKyAgICAgICAgICAgICAgICAgICAgc2VsZi50
ZXN0c19yb290LAorICAgICAgICAgICAgICAgICAgICBzZWxmLnJlbF9wYXRoLAorICAgICAgICAg
ICAgICAgICAgICBzZWxmLnVybF9iYXNlLAorICAgICAgICAgICAgICAgICAgICBzZWxmLnJlbF91
cmwsCisgICAgICAgICAgICAgICAgICAgIHRpbWVvdXQ9c2VsZi50aW1lb3V0CisgICAgICAgICAg
ICAgICAgKV0KIAogICAgICAgICBlbGlmIHNlbGYuY29udGVudF9pc19jc3NfbWFudWFsIGFuZCBu
b3Qgc2VsZi5uYW1lX2lzX3JlZmVyZW5jZToKLSAgICAgICAgICAgIHJ2ID0gTWFudWFsVGVzdC5p
dGVtX3R5cGUsIFtNYW51YWxUZXN0KHNlbGYsIHNlbGYudXJsKV0KKyAgICAgICAgICAgIHJ2ID0g
TWFudWFsVGVzdC5pdGVtX3R5cGUsIFsKKyAgICAgICAgICAgICAgICBNYW51YWxUZXN0KAorICAg
ICAgICAgICAgICAgICAgICBzZWxmLnRlc3RzX3Jvb3QsCisgICAgICAgICAgICAgICAgICAgIHNl
bGYucmVsX3BhdGgsCisgICAgICAgICAgICAgICAgICAgIHNlbGYudXJsX2Jhc2UsCisgICAgICAg
ICAgICAgICAgICAgIHNlbGYucmVsX3VybAorICAgICAgICAgICAgICAgICldCiAKICAgICAgICAg
ZWxpZiBzZWxmLmNvbnRlbnRfaXNfdGVzdGhhcm5lc3M6CiAgICAgICAgICAgICBydiA9IFRlc3Ro
YXJuZXNzVGVzdC5pdGVtX3R5cGUsIFtdCiAgICAgICAgICAgICB0ZXN0ZHJpdmVyID0gc2VsZi5o
YXNfdGVzdGRyaXZlcgogICAgICAgICAgICAgZm9yIHZhcmlhbnQgaW4gc2VsZi50ZXN0X3Zhcmlh
bnRzOgotICAgICAgICAgICAgICAgIHVybCA9IHNlbGYudXJsICsgdmFyaWFudAotICAgICAgICAg
ICAgICAgIHJ2WzFdLmFwcGVuZChUZXN0aGFybmVzc1Rlc3Qoc2VsZiwgdXJsLCB0aW1lb3V0PXNl
bGYudGltZW91dCwgdGVzdGRyaXZlcj10ZXN0ZHJpdmVyKSkKKyAgICAgICAgICAgICAgICB1cmwg
PSBzZWxmLnJlbF91cmwgKyB2YXJpYW50CisgICAgICAgICAgICAgICAgcnZbMV0uYXBwZW5kKFRl
c3RoYXJuZXNzVGVzdCgKKyAgICAgICAgICAgICAgICAgICAgc2VsZi50ZXN0c19yb290LAorICAg
ICAgICAgICAgICAgICAgICBzZWxmLnJlbF9wYXRoLAorICAgICAgICAgICAgICAgICAgICBzZWxm
LnVybF9iYXNlLAorICAgICAgICAgICAgICAgICAgICB1cmwsCisgICAgICAgICAgICAgICAgICAg
IHRpbWVvdXQ9c2VsZi50aW1lb3V0LAorICAgICAgICAgICAgICAgICAgICB0ZXN0ZHJpdmVyPXRl
c3Rkcml2ZXIsCisgICAgICAgICAgICAgICAgICAgIHNjcmlwdF9tZXRhZGF0YT1zZWxmLnNjcmlw
dF9tZXRhZGF0YQorICAgICAgICAgICAgICAgICkpCiAKICAgICAgICAgZWxpZiBzZWxmLmNvbnRl
bnRfaXNfcmVmX25vZGU6Ci0gICAgICAgICAgICBydiA9IChSZWZUZXN0Tm9kZS5pdGVtX3R5cGUs
Ci0gICAgICAgICAgICAgICAgICBbUmVmVGVzdE5vZGUoc2VsZiwgc2VsZi51cmwsIHNlbGYucmVm
ZXJlbmNlcywgdGltZW91dD1zZWxmLnRpbWVvdXQsCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgdmlld3BvcnRfc2l6ZT1zZWxmLnZpZXdwb3J0X3NpemUsIGRwaT1zZWxmLmRwaSldKQor
ICAgICAgICAgICAgcnYgPSBSZWZUZXN0Tm9kZS5pdGVtX3R5cGUsIFsKKyAgICAgICAgICAgICAg
ICBSZWZUZXN0Tm9kZSgKKyAgICAgICAgICAgICAgICAgICAgc2VsZi50ZXN0c19yb290LAorICAg
ICAgICAgICAgICAgICAgICBzZWxmLnJlbF9wYXRoLAorICAgICAgICAgICAgICAgICAgICBzZWxm
LnVybF9iYXNlLAorICAgICAgICAgICAgICAgICAgICBzZWxmLnJlbF91cmwsCisgICAgICAgICAg
ICAgICAgICAgIHJlZmVyZW5jZXM9c2VsZi5yZWZlcmVuY2VzLAorICAgICAgICAgICAgICAgICAg
ICB0aW1lb3V0PXNlbGYudGltZW91dCwKKyAgICAgICAgICAgICAgICAgICAgdmlld3BvcnRfc2l6
ZT1zZWxmLnZpZXdwb3J0X3NpemUsCisgICAgICAgICAgICAgICAgICAgIGRwaT1zZWxmLmRwaSwK
KyAgICAgICAgICAgICAgICAgICAgZnV6enk9c2VsZi5mdXp6eQorICAgICAgICAgICAgICAgICld
CiAKICAgICAgICAgZWxpZiBzZWxmLmNvbnRlbnRfaXNfY3NzX3Zpc3VhbCBhbmQgbm90IHNlbGYu
bmFtZV9pc19yZWZlcmVuY2U6Ci0gICAgICAgICAgICBydiA9IFZpc3VhbFRlc3QuaXRlbV90eXBl
LCBbVmlzdWFsVGVzdChzZWxmLCBzZWxmLnVybCldCisgICAgICAgICAgICBydiA9IFZpc3VhbFRl
c3QuaXRlbV90eXBlLCBbCisgICAgICAgICAgICAgICAgVmlzdWFsVGVzdCgKKyAgICAgICAgICAg
ICAgICAgICAgc2VsZi50ZXN0c19yb290LAorICAgICAgICAgICAgICAgICAgICBzZWxmLnJlbF9w
YXRoLAorICAgICAgICAgICAgICAgICAgICBzZWxmLnVybF9iYXNlLAorICAgICAgICAgICAgICAg
ICAgICBzZWxmLnJlbF91cmwKKyAgICAgICAgICAgICAgICApXQogCiAgICAgICAgIGVsc2U6Ci0g
ICAgICAgICAgICBydiA9ICJzdXBwb3J0IiwgW1N1cHBvcnRGaWxlKHNlbGYpXQorICAgICAgICAg
ICAgcnYgPSAic3VwcG9ydCIsIFsKKyAgICAgICAgICAgICAgICBTdXBwb3J0RmlsZSgKKyAgICAg
ICAgICAgICAgICAgICAgc2VsZi50ZXN0c19yb290LAorICAgICAgICAgICAgICAgICAgICBzZWxm
LnJlbF9wYXRoCisgICAgICAgICAgICAgICAgKV0KKworICAgICAgICBhc3NlcnQgbGVuKHJ2WzFd
KSA9PSBsZW4oc2V0KHJ2WzFdKSkKIAogICAgICAgICBzZWxmLml0ZW1zX2NhY2hlID0gcnYKIApk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy9tYW5pZmVzdC90ZXN0cGF0aHMucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL21hbmlmZXN0L3Rlc3RwYXRocy5weQpuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4z
YzFmMDlkNDM3MzA0YTBjZTdiYmNiYzU0MmRlZGU2NzJmMDFhMTdlCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9tYW5p
ZmVzdC90ZXN0cGF0aHMucHkKQEAgLTAsMCArMSw5MiBAQAoraW1wb3J0IGFyZ3BhcnNlCitpbXBv
cnQganNvbgoraW1wb3J0IG9zCitmcm9tIGNvbGxlY3Rpb25zIGltcG9ydCBkZWZhdWx0ZGljdAor
Citmcm9tIHNpeCBpbXBvcnQgaXRlcml0ZW1zCisKK2Zyb20gLm1hbmlmZXN0IGltcG9ydCBsb2Fk
X2FuZF91cGRhdGUsIE1hbmlmZXN0Citmcm9tIC5sb2cgaW1wb3J0IGdldF9sb2dnZXIKKworTVlQ
WSA9IEZhbHNlCitpZiBNWVBZOgorICAgICMgTVlQWSBpcyBzZXQgdG8gVHJ1ZSB3aGVuIHJ1biB1
bmRlciBNeXB5LgorICAgIGZyb20gdHlwaW5nIGltcG9ydCBBbnkKKyAgICBmcm9tIHR5cGluZyBp
bXBvcnQgRGljdAorICAgIGZyb20gdHlwaW5nIGltcG9ydCBJdGVyYWJsZQorICAgIGZyb20gdHlw
aW5nIGltcG9ydCBMaXN0CisgICAgZnJvbSB0eXBpbmcgaW1wb3J0IFRleHQKKword3B0X3Jvb3Qg
PSBvcy5wYXRoLmFic3BhdGgob3MucGF0aC5qb2luKG9zLnBhdGguZGlybmFtZShfX2ZpbGVfXyks
IG9zLnBhcmRpciwgb3MucGFyZGlyKSkKKworbG9nZ2VyID0gZ2V0X2xvZ2dlcigpCisKKworZGVm
IGFic19wYXRoKHBhdGgpOgorICAgICMgdHlwZTogKHN0cikgLT4gc3RyCisgICAgcmV0dXJuIG9z
LnBhdGguYWJzcGF0aChvcy5wYXRoLmV4cGFuZHVzZXIocGF0aCkpCisKKworZGVmIGNyZWF0ZV9w
YXJzZXIoKToKKyAgICAjIHR5cGU6ICgpIC0+IGFyZ3BhcnNlLkFyZ3VtZW50UGFyc2VyCisgICAg
cGFyc2VyID0gYXJncGFyc2UuQXJndW1lbnRQYXJzZXIoKQorICAgIHBhcnNlci5hZGRfYXJndW1l
bnQoCisgICAgICAgICItcCIsICItLXBhdGgiLCB0eXBlPWFic19wYXRoLCBoZWxwPSJQYXRoIHRv
IG1hbmlmZXN0IGZpbGUuIikKKyAgICBwYXJzZXIuYWRkX2FyZ3VtZW50KAorICAgICAgICAiLS10
ZXN0cy1yb290IiwgdHlwZT1hYnNfcGF0aCwgZGVmYXVsdD13cHRfcm9vdCwgaGVscD0iUGF0aCB0
byByb290IG9mIHRlc3RzLiIpCisgICAgcGFyc2VyLmFkZF9hcmd1bWVudCgKKyAgICAgICAgIi0t
bm8tdXBkYXRlIiwgZGVzdD0idXBkYXRlIiwgYWN0aW9uPSJzdG9yZV9mYWxzZSIsIGRlZmF1bHQ9
VHJ1ZSwKKyAgICAgICAgaGVscD0iRG9uJ3QgdXBkYXRlIG1hbmlmZXN0IGJlZm9yZSBjb250aW51
aW5nIikKKyAgICBwYXJzZXIuYWRkX2FyZ3VtZW50KAorICAgICAgICAiLXIiLCAiLS1yZWJ1aWxk
IiwgYWN0aW9uPSJzdG9yZV90cnVlIiwgZGVmYXVsdD1GYWxzZSwKKyAgICAgICAgaGVscD0iRm9y
Y2UgYSBmdWxsIHJlYnVpbGQgb2YgdGhlIG1hbmlmZXN0LiIpCisgICAgcGFyc2VyLmFkZF9hcmd1
bWVudCgKKyAgICAgICAgIi0tdXJsLWJhc2UiLCBhY3Rpb249InN0b3JlIiwgZGVmYXVsdD0iLyIs
CisgICAgICAgIGhlbHA9IkJhc2UgdXJsIHRvIHVzZSBhcyB0aGUgbW91bnQgcG9pbnQgZm9yIHRl
c3RzIGluIHRoaXMgbWFuaWZlc3QuIikKKyAgICBwYXJzZXIuYWRkX2FyZ3VtZW50KAorICAgICAg
ICAiLS1jYWNoZS1yb290IiwgYWN0aW9uPSJzdG9yZSIsIGRlZmF1bHQ9b3MucGF0aC5qb2luKHdw
dF9yb290LCAiLndwdGNhY2hlIiksCisgICAgICAgIGhlbHA9IlBhdGggaW4gd2hpY2ggdG8gc3Rv
cmUgYW55IGNhY2hlcyAoZGVmYXVsdCA8dGVzdHNfcm9vdD4vLndwdGNhY2hlLykiKQorICAgIHBh
cnNlci5hZGRfYXJndW1lbnQoCisgICAgICAgICItLWpzb24iLCBhY3Rpb249InN0b3JlX3RydWUi
LCBkZWZhdWx0PUZhbHNlLAorICAgICAgICBoZWxwPSJPdXRwdXQgYXMgSlNPTiIpCisgICAgcGFy
c2VyLmFkZF9hcmd1bWVudCgKKyAgICAgICAgInRlc3RfaWRzIiwgYWN0aW9uPSJzdG9yZSIsIG5h
cmdzPSIrIiwKKyAgICAgICAgaGVscD0iVGVzdCBpZHMgZm9yIHdoaWNoIHRvIGdldCBwYXRocyIp
CisgICAgcmV0dXJuIHBhcnNlcgorCisKK2RlZiBnZXRfcGF0aF9pZF9tYXAobWFuaWZlc3RfZmls
ZSwgdGVzdF9pZHMpOgorICAgICMgdHlwZTogKE1hbmlmZXN0LCBJdGVyYWJsZVtUZXh0XSkgLT4g
RGljdFtUZXh0LCBMaXN0W1RleHRdXQorICAgIHRlc3RfaWRzID0gc2V0KHRlc3RfaWRzKQorICAg
IHBhdGhfaWRfbWFwID0gZGVmYXVsdGRpY3QobGlzdCkgICMgdHlwZTogRGljdFtUZXh0LCBMaXN0
W1RleHRdXQorCisgICAgZm9yIGl0ZW1fdHlwZSwgcGF0aCwgdGVzdHMgaW4gbWFuaWZlc3RfZmls
ZToKKyAgICAgICAgZm9yIHRlc3QgaW4gdGVzdHM6CisgICAgICAgICAgICBpZiB0ZXN0LmlkIGlu
IHRlc3RfaWRzOgorICAgICAgICAgICAgICAgIHBhdGhfaWRfbWFwW3BhdGhdLmFwcGVuZCh0ZXN0
LmlkKQorICAgIHJldHVybiBwYXRoX2lkX21hcAorCisKK2RlZiBydW4oKiprd2FyZ3MpOgorICAg
ICMgdHlwZTogKCoqQW55KSAtPiBOb25lCisgICAgdGVzdHNfcm9vdCA9IGt3YXJnc1sidGVzdHNf
cm9vdCJdCisgICAgYXNzZXJ0IHRlc3RzX3Jvb3QgaXMgbm90IE5vbmUKKyAgICBwYXRoID0ga3dh
cmdzWyJwYXRoIl0KKyAgICBpZiBwYXRoIGlzIE5vbmU6CisgICAgICAgIHBhdGggPSBvcy5wYXRo
LmpvaW4oa3dhcmdzWyJ0ZXN0c19yb290Il0sICJNQU5JRkVTVC5qc29uIikKKworICAgIG1hbmlm
ZXN0X2ZpbGUgPSBsb2FkX2FuZF91cGRhdGUodGVzdHNfcm9vdCwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHBhdGgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBrd2FyZ3NbInVybF9iYXNlIl0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICB1cGRhdGU9a3dhcmdzWyJ1cGRhdGUiXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHJlYnVpbGQ9a3dhcmdzWyJyZWJ1aWxkIl0sCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBjYWNoZV9yb290PWt3YXJnc1siY2FjaGVfcm9vdCJdKQorCisgICAg
cGF0aF9pZF9tYXAgPSBnZXRfcGF0aF9pZF9tYXAobWFuaWZlc3RfZmlsZSwga3dhcmdzWyJ0ZXN0
X2lkcyJdKQorICAgIGlmIGt3YXJnc1sianNvbiJdOgorICAgICAgICBwcmludChqc29uLmR1bXBz
KHBhdGhfaWRfbWFwKSkKKyAgICBlbHNlOgorICAgICAgICBmb3IgcGF0aCwgdGVzdF9pZHMgaW4g
c29ydGVkKGl0ZXJpdGVtcyhwYXRoX2lkX21hcCkpOgorICAgICAgICAgICAgcHJpbnQocGF0aCkK
KyAgICAgICAgICAgIGZvciB0ZXN0X2lkIGluIHNvcnRlZCh0ZXN0X2lkcyk6CisgICAgICAgICAg
ICAgICAgcHJpbnQoIiAgIiArIHRlc3RfaWQpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL21hbmlmZXN0L3Rlc3RzL3Rlc3RfaXRl
bS5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
bWFuaWZlc3QvdGVzdHMvdGVzdF9pdGVtLnB5CmluZGV4IDlmNzk4NzQ3YmQ0ZWQ1ZTk3MmExMWIy
MzI0ODBmY2ExNjcyOGYyNWQuLmNmNTJmZTgwYWFkMDRlNWRjYjM1MDM0MzUyZTlmYjhlZGQ1M2Vj
YjYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvbWFuaWZlc3QvdGVzdHMvdGVzdF9pdGVtLnB5CisrKyBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvbWFuaWZlc3QvdGVzdHMvdGVzdF9p
dGVtLnB5CkBAIC0xLDIzICsxLDEwNSBAQAotZnJvbSAuLml0ZW0gaW1wb3J0IFN1cHBvcnRGaWxl
LCBVUkxNYW5pZmVzdEl0ZW0KLWZyb20gLi5zb3VyY2VmaWxlIGltcG9ydCBTb3VyY2VGaWxlCitp
bXBvcnQgaW5zcGVjdAoraW1wb3J0IGpzb24KIAoraW1wb3J0IHB5dGVzdAogCi1kZWYgdGVzdF9i
YXNlX21ldGFfZmxhZ3MoKToKLSAgICBzID0gU291cmNlRmlsZSgiLyIsICJhLmIuYy5kIiwgIi8i
LCBjb250ZW50cz0iIikKLSAgICBtID0gU3VwcG9ydEZpbGUocykKK2Zyb20gLi5tYW5pZmVzdCBp
bXBvcnQgTWFuaWZlc3QKKyMgUHJldmVudCBweXRlc3QgZnJvbSB0cmVhdGluZyBUZXN0aGFybmVz
c1Rlc3QgYXMgYSB0ZXN0IGNsYXNzCitmcm9tIC4uaXRlbSBpbXBvcnQgVGVzdGhhcm5lc3NUZXN0
IGFzIEhhcm5lc3NUZXN0Citmcm9tIC4uaXRlbSBpbXBvcnQgUmVmVGVzdCwgaXRlbV90eXBlcwog
Ci0gICAgYXNzZXJ0IG0ubWV0YV9mbGFncyA9PSB7ImIiLCAiYyJ9CiAKK0BweXRlc3QubWFyay5w
YXJhbWV0cml6ZSgicGF0aCIsIFsKKyAgICAiYS5odHRwcy5jIiwKKyAgICAiYS5iLmh0dHBzLmMi
LAorICAgICJhLmh0dHBzLmIuYyIsCisgICAgImEuYi5odHRwcy5jLmQiLAorICAgICJhLnNlcnZp
Y2V3b3JrZXIuYyIsCisgICAgImEuYi5zZXJ2aWNld29ya2VyLmMiLAorICAgICJhLnNlcnZpY2V3
b3JrZXIuYi5jIiwKKyAgICAiYS5iLnNlcnZpY2V3b3JrZXIuYy5kIiwKK10pCitkZWYgdGVzdF91
cmxfaHR0cHMocGF0aCk6CisgICAgbSA9IEhhcm5lc3NUZXN0KCIvZm9vIiwgImJhci8iICsgcGF0
aCwgIi8iLCAiYmFyLyIgKyBwYXRoKQogCi1kZWYgdGVzdF91cmxfbWV0YV9mbGFncygpOgotICAg
IHMgPSBTb3VyY2VGaWxlKCIvIiwgImEuYi5jIiwgIi8iLCBjb250ZW50cz0iIikKLSAgICBtID0g
VVJMTWFuaWZlc3RJdGVtKHMsICIvZm9vLmJhci9hLmIuZC5lIikKKyAgICBhc3NlcnQgbS5odHRw
cyBpcyBUcnVlCiAKLSAgICBhc3NlcnQgbS5tZXRhX2ZsYWdzID09IHsiYiIsICJkIn0KIAorQHB5
dGVzdC5tYXJrLnBhcmFtZXRyaXplKCJwYXRoIiwgWworICAgICJodHRwcyIsCisgICAgImEuaHR0
cHMiLAorICAgICJhLmIuaHR0cHMiLAorICAgICJodHRwcy5hIiwKKyAgICAiaHR0cHMuYS5iIiwK
KyAgICAiYS5iaHR0cHMuYyIsCisgICAgImEuaHR0cHNiLmMiLAorICAgICJzZXJ2aWNld29ya2Vy
IiwKKyAgICAiYS5zZXJ2aWNld29ya2VyIiwKKyAgICAiYS5iLnNlcnZpY2V3b3JrZXIiLAorICAg
ICJzZXJ2aWNld29ya2VyLmEiLAorICAgICJzZXJ2aWNld29ya2VyLmEuYiIsCisgICAgImEuYnNl
cnZpY2V3b3JrZXIuYyIsCisgICAgImEuc2VydmljZXdvcmtlcmIuYyIsCitdKQorZGVmIHRlc3Rf
dXJsX25vdF9odHRwcyhwYXRoKToKKyAgICBtID0gSGFybmVzc1Rlc3QoIi9mb28iLCAiYmFyLyIg
KyBwYXRoLCAiLyIsICJiYXIvIiArIHBhdGgpCiAKLWRlZiB0ZXN0X3VybF9lbXB0eV9tZXRhX2Zs
YWdzKCk6Ci0gICAgcyA9IFNvdXJjZUZpbGUoIi8iLCAiYS5iLmMiLCAiLyIsIGNvbnRlbnRzPSIi
KQotICAgIG0gPSBVUkxNYW5pZmVzdEl0ZW0ocywgIi9mb28uYmFyL2FiY2RlIikKKyAgICBhc3Nl
cnQgbS5odHRwcyBpcyBGYWxzZQogCi0gICAgYXNzZXJ0IG0ubWV0YV9mbGFncyA9PSBzZXQoKQor
CitAcHl0ZXN0Lm1hcmsucGFyYW1ldHJpemUoImZ1enp5IiwgWworICAgIHsoJy9mb28vdGVzdC5o
dG1sJywgdScvZm9vL3JlZi5odG1sJywgJz09Jyk6IFtbMSwgMV0sIFsyMDAsIDIwMF1dfSwKKyAg
ICB7KCcvZm9vL3Rlc3QuaHRtbCcsIHUnL2Zvby9yZWYuaHRtbCcsICc9PScpOiBbWzAsIDFdLCBb
MTAwLCAyMDBdXX0sCisgICAge05vbmU6IFtbMCwgMV0sIFsxMDAsIDIwMF1dfSwKKyAgICB7Tm9u
ZTogW1sxLCAxXSwgWzIwMCwgMjAwXV19LAorXSkKK2RlZiB0ZXN0X3JlZnRlc3RfZnV6enkoZnV6
enkpOgorICAgIHQgPSBSZWZUZXN0KCcvJywKKyAgICAgICAgICAgICAgICAnZm9vL3Rlc3QuaHRt
bCcsCisgICAgICAgICAgICAgICAgJy8nLAorICAgICAgICAgICAgICAgICdmb28vdGVzdC5odG1s
JywKKyAgICAgICAgICAgICAgICBbKCcvZm9vL3JlZi5odG1sJywgJz09JyldLAorICAgICAgICAg
ICAgICAgIGZ1enp5PWZ1enp5KQorICAgIGFzc2VydCBmdXp6eSA9PSB0LmZ1enp5CisKKyAgICBq
c29uX29iaiA9IHQudG9fanNvbigpCisKKyAgICBtID0gTWFuaWZlc3QoIi8iLCAiLyIpCisgICAg
dDIgPSBSZWZUZXN0LmZyb21fanNvbihtLCB0LnBhdGgsIGpzb25fb2JqKQorICAgIGFzc2VydCBm
dXp6eSA9PSB0Mi5mdXp6eQorCisgICAgIyB0ZXN0IHRoZSByb3VuZHRyaXAgY2FzZSwgZ2l2ZW4g
dHVwbGVzIGJlY29tZSBsaXN0cworICAgIHJvdW5kdHJpcCA9IGpzb24ubG9hZHMoanNvbi5kdW1w
cyhqc29uX29iaikpCisgICAgdDMgPSBSZWZUZXN0LmZyb21fanNvbihtLCB0LnBhdGgsIHJvdW5k
dHJpcCkKKyAgICBhc3NlcnQgZnV6enkgPT0gdDMuZnV6enkKKworCitAcHl0ZXN0Lm1hcmsucGFy
YW1ldHJpemUoImZ1enp5IiwgWworICAgIHsoJy9mb28vdGVzdC5odG1sJywgdScvZm9vL3JlZi0y
Lmh0bWwnLCAnPT0nKTogW1swLCAxXSwgWzEwMCwgMjAwXV19LAorICAgIHtOb25lOiBbWzEsIDFd
LCBbMjAwLCAyMDBdXSwgKCcvZm9vL3Rlc3QuaHRtbCcsIHUnL2Zvby9yZWYtMi5odG1sJywgJz09
Jyk6IFtbMCwgMV0sIFsxMDAsIDIwMF1dfSwKK10pCitkZWYgdGVzdF9yZWZ0ZXN0X2Z1enp5X211
bHRpKGZ1enp5KToKKyAgICB0ID0gUmVmVGVzdCgnLycsCisgICAgICAgICAgICAgICAgJ2Zvby90
ZXN0Lmh0bWwnLAorICAgICAgICAgICAgICAgICcvJywKKyAgICAgICAgICAgICAgICAnZm9vL3Rl
c3QuaHRtbCcsCisgICAgICAgICAgICAgICAgWygnL2Zvby9yZWYtMS5odG1sJywgJz09JyksICgn
L2Zvby9yZWYtMi5odG1sJywgJz09JyldLAorICAgICAgICAgICAgICAgIGZ1enp5PWZ1enp5KQor
ICAgIGFzc2VydCBmdXp6eSA9PSB0LmZ1enp5CisKKyAgICBqc29uX29iaiA9IHQudG9fanNvbigp
CisKKyAgICBtID0gTWFuaWZlc3QoIi8iLCAiLyIpCisgICAgdDIgPSBSZWZUZXN0LmZyb21fanNv
bihtLCB0LnBhdGgsIGpzb25fb2JqKQorICAgIGFzc2VydCBmdXp6eSA9PSB0Mi5mdXp6eQorCisg
ICAgIyB0ZXN0IHRoZSByb3VuZHRyaXAgY2FzZSwgZ2l2ZW4gdHVwbGVzIGJlY29tZSBsaXN0cwor
ICAgIHJvdW5kdHJpcCA9IGpzb24ubG9hZHMoanNvbi5kdW1wcyhqc29uX29iaikpCisgICAgdDMg
PSBSZWZUZXN0LmZyb21fanNvbihtLCB0LnBhdGgsIHJvdW5kdHJpcCkKKyAgICBhc3NlcnQgZnV6
enkgPT0gdDMuZnV6enkKKworCitkZWYgdGVzdF9pdGVtX3R5cGVzKCk6CisgICAgZm9yIGtleSwg
dmFsdWUgaW4gaXRlbV90eXBlcy5pdGVtcygpOgorICAgICAgICBhc3NlcnQgaXNpbnN0YW5jZShr
ZXksIHN0cikKKyAgICAgICAgYXNzZXJ0IG5vdCBpbnNwZWN0LmlzYWJzdHJhY3QodmFsdWUpCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL21hbmlmZXN0L3Rlc3RzL3Rlc3RfbWFuaWZlc3QucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL21hbmlmZXN0L3Rlc3RzL3Rlc3RfbWFuaWZl
c3QucHkKaW5kZXggOGJmN2VmOTZjNWY1MTI0OGM3NjI1NGFmMzAyYWQ2MzkxYmIyZDkwMy4uOGUw
MDhiZTA5MTE4MWRkYTNhMDg2NzNhMzhlNGZhYWViZmIxMTljMSAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9tYW5pZmVzdC90ZXN0
cy90ZXN0X21hbmlmZXN0LnB5CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvbWFuaWZlc3QvdGVzdHMvdGVzdF9tYW5pZmVzdC5weQpAQCAtNywy
MCArNywzMiBAQCBpbXBvcnQgaHlwb3RoZXNpcy5zdHJhdGVnaWVzIGFzIGhzCiAKIGltcG9ydCBw
eXRlc3QKIAotZnJvbSAuLiBpbXBvcnQgbWFuaWZlc3QsIGl0ZW0sIHV0aWxzCitmcm9tIC4uIGlt
cG9ydCBtYW5pZmVzdCwgc291cmNlZmlsZSwgaXRlbSwgdXRpbHMKIAorTVlQWSA9IEZhbHNlCitp
ZiBNWVBZOgorICAgICMgTVlQWSBpcyBzZXQgdG8gVHJ1ZSB3aGVuIHJ1biB1bmRlciBNeXB5Lgor
ICAgIGZyb20gdHlwaW5nIGltcG9ydCBBbnkKKyAgICBmcm9tIHR5cGluZyBpbXBvcnQgVHlwZQog
Ci1kZWYgU291cmNlRmlsZVdpdGhUZXN0KHBhdGgsIGhhc2gsIGNscywgKmFyZ3MpOgorCitkZWYg
U291cmNlRmlsZVdpdGhUZXN0KHBhdGgsIGhhc2gsIGNscywgKiprd2FyZ3MpOgorICAgICMgdHlw
ZTogKHN0ciwgc3RyLCBUeXBlW2l0ZW0uTWFuaWZlc3RJdGVtXSwgKipBbnkpIC0+IHNvdXJjZWZp
bGUuU291cmNlRmlsZQogICAgIHMgPSBtb2NrLk1vY2socmVsX3BhdGg9cGF0aCwgaGFzaD1oYXNo
KQotICAgIHRlc3QgPSBjbHMocywgdXRpbHMucmVsX3BhdGhfdG9fdXJsKHBhdGgpLCAqYXJncykK
KyAgICBpZiBjbHMgPT0gaXRlbS5TdXBwb3J0RmlsZToKKyAgICAgICAgdGVzdCA9IGNscygiL2Zv
b2JhciIsIHBhdGgpCisgICAgZWxzZToKKyAgICAgICAgYXNzZXJ0IGlzc3ViY2xhc3MoY2xzLCBp
dGVtLlVSTE1hbmlmZXN0SXRlbSkKKyAgICAgICAgdGVzdCA9IGNscygiL2Zvb2JhciIsIHBhdGgs
ICIvIiwgdXRpbHMuZnJvbV9vc19wYXRoKHBhdGgpLCAqKmt3YXJncykKICAgICBzLm1hbmlmZXN0
X2l0ZW1zID0gbW9jay5Nb2NrKHJldHVybl92YWx1ZT0oY2xzLml0ZW1fdHlwZSwgW3Rlc3RdKSkK
LSAgICByZXR1cm4gcworICAgIHJldHVybiBzICAjIHR5cGU6IGlnbm9yZQogCiBkZWYgU291cmNl
RmlsZVdpdGhUZXN0cyhwYXRoLCBoYXNoLCBjbHMsIHZhcmlhbnRzKToKKyAgICAjIHR5cGU6IChz
dHIsIHN0ciwgVHlwZVtpdGVtLlVSTE1hbmlmZXN0SXRlbV0sICoqQW55KSAtPiBzb3VyY2VmaWxl
LlNvdXJjZUZpbGUKICAgICBzID0gbW9jay5Nb2NrKHJlbF9wYXRoPXBhdGgsIGhhc2g9aGFzaCkK
LSAgICB0ZXN0cyA9IFtjbHMocywgaXRlbVswXSwgKml0ZW1bMTpdKSBmb3IgaXRlbSBpbiB2YXJp
YW50c10KKyAgICB0ZXN0cyA9IFtjbHMoIi9mb29iYXIiLCBwYXRoLCAiLyIsIGl0ZW1bMF0sICoq
aXRlbVsxXSkgZm9yIGl0ZW0gaW4gdmFyaWFudHNdCiAgICAgcy5tYW5pZmVzdF9pdGVtcyA9IG1v
Y2suTW9jayhyZXR1cm5fdmFsdWU9KGNscy5pdGVtX3R5cGUsIHRlc3RzKSkKLSAgICByZXR1cm4g
cworICAgIHJldHVybiBzICAjIHR5cGU6IGlnbm9yZQogCiAKIEBocy5jb21wb3NpdGUKQEAgLTMw
LDIwICs0MiwxNSBAQCBkZWYgcmVsX2Rpcl9maWxlX3BhdGgoZHJhdyk6CiAgICAgICAgIHJldHVy
biAiYSIKICAgICBlbHNlOgogICAgICAgICByZW1haW5pbmcgPSBsZW5ndGggLSAyCi0gICAgICAg
IGlmIG9zLnBhdGguc2VwID09ICIvIjoKLSAgICAgICAgICAgIGFscGhhYmV0ID0gImEvIgotICAg
ICAgICBlbGlmIG9zLnBhdGguc2VwID09ICJcXCI6Ci0gICAgICAgICAgICBhbHBoYWJldCA9ICJh
L1xcIgotICAgICAgICBlbHNlOgotICAgICAgICAgICAgYXNzZXJ0IEZhbHNlLCAidWhoaGgsIHRo
aXMgcGxhdGZvcm0gaXMgd2VpcmQiCisgICAgICAgIGFscGhhYmV0ID0gImEiICsgb3MucGF0aC5z
ZXAKICAgICAgICAgbWlkID0gZHJhdyhocy50ZXh0KGFscGhhYmV0PWFscGhhYmV0LCBtaW5fc2l6
ZT1yZW1haW5pbmcsIG1heF9zaXplPXJlbWFpbmluZykpCiAgICAgICAgIHJldHVybiBvcy5wYXRo
Lm5vcm1jYXNlKCJhIiArIG1pZCArICJhIikKIAogCiBAaHMuY29tcG9zaXRlCiBkZWYgc291cmNl
ZmlsZV9zdHJhdGVneShkcmF3KToKLSAgICBpdGVtX2NsYXNzZXMgPSBbaXRlbS5UZXN0aGFybmVz
c1Rlc3QsIGl0ZW0uUmVmVGVzdCwgaXRlbS5SZWZUZXN0Tm9kZSwKLSAgICAgICAgICAgICAgICAg
ICAgaXRlbS5NYW51YWxUZXN0LCBpdGVtLlN0dWIsIGl0ZW0uV2ViZHJpdmVyU3BlY1Rlc3QsCisg
ICAgaXRlbV9jbGFzc2VzID0gW2l0ZW0uVGVzdGhhcm5lc3NUZXN0LCBpdGVtLlJlZlRlc3ROb2Rl
LAorICAgICAgICAgICAgICAgICAgICBpdGVtLk1hbnVhbFRlc3QsIGl0ZW0uV2ViRHJpdmVyU3Bl
Y1Rlc3QsCiAgICAgICAgICAgICAgICAgICAgIGl0ZW0uQ29uZm9ybWFuY2VDaGVja2VyVGVzdCwg
aXRlbS5TdXBwb3J0RmlsZV0KICAgICBjbHMgPSBkcmF3KGhzLnNhbXBsZWRfZnJvbShpdGVtX2Ns
YXNzZXMpKQogCkBAIC01MSwyOCArNTgsMjcgQEAgZGVmIHNvdXJjZWZpbGVfc3RyYXRlZ3koZHJh
dyk6CiAgICAgaGFzaCA9IGRyYXcoaHMudGV4dChhbHBoYWJldD0iMDEyMzQ1Njc4OWFiY2RlZiIs
IG1pbl9zaXplPTQwLCBtYXhfc2l6ZT00MCkpCiAgICAgcyA9IG1vY2suTW9jayhyZWxfcGF0aD1w
YXRoLCBoYXNoPWhhc2gpCiAKLSAgICBpZiBjbHMgaW4gKGl0ZW0uUmVmVGVzdCwgaXRlbS5SZWZU
ZXN0Tm9kZSk6CisgICAgaWYgY2xzIGlzIGl0ZW0uUmVmVGVzdE5vZGU6CiAgICAgICAgIHJlZl9w
YXRoID0gZHJhdyhyZWxfZGlyX2ZpbGVfcGF0aCgpKQogICAgICAgICBoLmFzc3VtZShwYXRoICE9
IHJlZl9wYXRoKQogICAgICAgICByZWZfZXEgPSBkcmF3KGhzLnNhbXBsZWRfZnJvbShbIj09Iiwg
IiE9Il0pKQotICAgICAgICB0ZXN0ID0gY2xzKHMsIHV0aWxzLnJlbF9wYXRoX3RvX3VybChwYXRo
KSwgWyh1dGlscy5yZWxfcGF0aF90b191cmwocmVmX3BhdGgpLCByZWZfZXEpXSkKKyAgICAgICAg
dGVzdCA9IGNscygiL2Zvb2JhciIsIHBhdGgsICIvIiwgdXRpbHMuZnJvbV9vc19wYXRoKHBhdGgp
LCByZWZlcmVuY2VzPVsodXRpbHMuZnJvbV9vc19wYXRoKHJlZl9wYXRoKSwgcmVmX2VxKV0pCiAg
ICAgZWxpZiBjbHMgaXMgaXRlbS5TdXBwb3J0RmlsZToKLSAgICAgICAgdGVzdCA9IGNscyhzKQor
ICAgICAgICB0ZXN0ID0gY2xzKCIvZm9vYmFyIiwgcGF0aCkKICAgICBlbHNlOgotICAgICAgICB0
ZXN0ID0gY2xzKHMsIHV0aWxzLnJlbF9wYXRoX3RvX3VybChwYXRoKSkKKyAgICAgICAgdGVzdCA9
IGNscygiL2Zvb2JhciIsIHBhdGgsICIvIiwgdXRpbHMuZnJvbV9vc19wYXRoKHBhdGgpKQogCiAg
ICAgcy5tYW5pZmVzdF9pdGVtcyA9IG1vY2suTW9jayhyZXR1cm5fdmFsdWU9KGNscy5pdGVtX3R5
cGUsIFt0ZXN0XSkpCiAgICAgcmV0dXJuIHMKIAogCiBAaC5naXZlbihocy5saXN0cyhzb3VyY2Vm
aWxlX3N0cmF0ZWd5KCksCi0gICAgICAgICAgICAgICAgICBtaW5fc2l6ZT0xLCBhdmVyYWdlX3Np
emU9MTAsIG1heF9zaXplPTEwMDAsCi0gICAgICAgICAgICAgICAgICB1bmlxdWVfYnk9bGFtYmRh
IHg6IHgucmVsX3BhdGgpKQorICAgICAgICAgICAgICAgICAgbWluX3NpemU9MSwgbWF4X3NpemU9
MTAwMCwgdW5pcXVlX2J5PWxhbWJkYSB4OiB4LnJlbF9wYXRoKSkKIEBoLmV4YW1wbGUoW1NvdXJj
ZUZpbGVXaXRoVGVzdCgiYSIsICIwIio0MCwgaXRlbS5Db25mb3JtYW5jZUNoZWNrZXJUZXN0KV0p
CiBkZWYgdGVzdF9tYW5pZmVzdF90b19qc29uKHMpOgogICAgIG0gPSBtYW5pZmVzdC5NYW5pZmVz
dCgpCiAKLSAgICBhc3NlcnQgbS51cGRhdGUocykgaXMgVHJ1ZQorICAgIGFzc2VydCBtLnVwZGF0
ZSgoaXRlbSwgVHJ1ZSkgZm9yIGl0ZW0gaW4gcykgaXMgVHJ1ZQogCiAgICAganNvbl9zdHIgPSBt
LnRvX2pzb24oKQogICAgIGxvYWRlZCA9IG1hbmlmZXN0Lk1hbmlmZXN0LmZyb21fanNvbigiLyIs
IGpzb25fc3RyKQpAQCAtODMsMTggKzg5LDE3IEBAIGRlZiB0ZXN0X21hbmlmZXN0X3RvX2pzb24o
cyk6CiAKIAogQGguZ2l2ZW4oaHMubGlzdHMoc291cmNlZmlsZV9zdHJhdGVneSgpLAotICAgICAg
ICAgICAgICAgICAgbWluX3NpemU9MSwgYXZlcmFnZV9zaXplPTEwLAotICAgICAgICAgICAgICAg
ICAgdW5pcXVlX2J5PWxhbWJkYSB4OiB4LnJlbF9wYXRoKSkKKyAgICAgICAgICAgICAgICAgIG1p
bl9zaXplPTEsIHVuaXF1ZV9ieT1sYW1iZGEgeDogeC5yZWxfcGF0aCkpCiBAaC5leGFtcGxlKFtT
b3VyY2VGaWxlV2l0aFRlc3QoImEiLCAiMCIqNDAsIGl0ZW0uVGVzdGhhcm5lc3NUZXN0KV0pCi1A
aC5leGFtcGxlKFtTb3VyY2VGaWxlV2l0aFRlc3QoImEiLCAiMCIqNDAsIGl0ZW0uUmVmVGVzdCwg
WygiL2FhIiwgIj09IildKV0pCitAaC5leGFtcGxlKFtTb3VyY2VGaWxlV2l0aFRlc3QoImEiLCAi
MCIqNDAsIGl0ZW0uUmVmVGVzdE5vZGUsIHJlZmVyZW5jZXM9WygiL2FhIiwgIj09IildKV0pCiBk
ZWYgdGVzdF9tYW5pZmVzdF9pZGVtcG90ZW50KHMpOgogICAgIG0gPSBtYW5pZmVzdC5NYW5pZmVz
dCgpCiAKLSAgICBhc3NlcnQgbS51cGRhdGUocykgaXMgVHJ1ZQorICAgIGFzc2VydCBtLnVwZGF0
ZSgoaXRlbSwgVHJ1ZSkgZm9yIGl0ZW0gaW4gcykgaXMgVHJ1ZQogCiAgICAgbTEgPSBsaXN0KG0p
CiAKLSAgICBhc3NlcnQgbS51cGRhdGUocykgaXMgRmFsc2UKKyAgICBhc3NlcnQgbS51cGRhdGUo
KGl0ZW0sIFRydWUpIGZvciBpdGVtIGluIHMpIGlzIEZhbHNlCiAKICAgICBhc3NlcnQgbGlzdCht
KSA9PSBtMQogCkBAIC0xMDQsNTIgKzEwOSw0MiBAQCBkZWYgdGVzdF9tYW5pZmVzdF90b19qc29u
X2ZvcndhcmRzbGFzaCgpOgogCiAgICAgcyA9IFNvdXJjZUZpbGVXaXRoVGVzdCgiYS9iIiwgIjAi
KjQwLCBpdGVtLlRlc3RoYXJuZXNzVGVzdCkKIAotICAgIGFzc2VydCBtLnVwZGF0ZShbc10pIGlz
IFRydWUKKyAgICBhc3NlcnQgbS51cGRhdGUoWyhzLCBUcnVlKV0pIGlzIFRydWUKIAogICAgIGFz
c2VydCBtLnRvX2pzb24oKSA9PSB7CiAgICAgICAgICdwYXRocyc6IHsKICAgICAgICAgICAgICdh
L2InOiAoJzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAnLCAndGVzdGhh
cm5lc3MnKQogICAgICAgICB9LAotICAgICAgICAndmVyc2lvbic6IDUsCisgICAgICAgICd2ZXJz
aW9uJzogNiwKICAgICAgICAgJ3VybF9iYXNlJzogJy8nLAogICAgICAgICAnaXRlbXMnOiB7Ci0g
ICAgICAgICAgICAncmVmdGVzdCc6IHt9LAotICAgICAgICAgICAgJ3JlZnRlc3Rfbm9kZSc6IHt9
LAogICAgICAgICAgICAgJ3Rlc3RoYXJuZXNzJzogewotICAgICAgICAgICAgICAgICdhL2InOiBb
WycvYS9iJywge31dXQorICAgICAgICAgICAgICAgICdhL2InOiBbKCdhL2InLCB7fSldCiAgICAg
ICAgICAgICB9CiAgICAgICAgIH0KICAgICB9CiAKIAorQHB5dGVzdC5tYXJrLnNraXBpZihvcy5z
ZXAgIT0gIlxcIiwgcmVhc29uPSJiYWNrc2xhc2ggcGF0aCIpCiBkZWYgdGVzdF9tYW5pZmVzdF90
b19qc29uX2JhY2tzbGFzaCgpOgogICAgIG0gPSBtYW5pZmVzdC5NYW5pZmVzdCgpCiAKICAgICBz
ID0gU291cmNlRmlsZVdpdGhUZXN0KCJhXFxiIiwgIjAiKjQwLCBpdGVtLlRlc3RoYXJuZXNzVGVz
dCkKIAotICAgIGlmIG9zLnBhdGguc2VwID09ICJcXCI6Ci0gICAgICAgIGFzc2VydCBtLnVwZGF0
ZShbc10pIGlzIFRydWUKLQotICAgICAgICBhc3NlcnQgbS50b19qc29uKCkgPT0gewotICAgICAg
ICAgICAgJ3BhdGhzJzogewotICAgICAgICAgICAgICAgICdhL2InOiAoJzAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAnLCAndGVzdGhhcm5lc3MnKQotICAgICAgICAgICAg
fSwKLSAgICAgICAgICAgICd2ZXJzaW9uJzogNSwKLSAgICAgICAgICAgICd1cmxfYmFzZSc6ICcv
JywKLSAgICAgICAgICAgICdpdGVtcyc6IHsKLSAgICAgICAgICAgICAgICAncmVmdGVzdCc6IHt9
LAotICAgICAgICAgICAgICAgICdyZWZ0ZXN0X25vZGUnOiB7fSwKLSAgICAgICAgICAgICAgICAn
dGVzdGhhcm5lc3MnOiB7Ci0gICAgICAgICAgICAgICAgICAgICdhL2InOiBbWycvYS9iJywge31d
XQotICAgICAgICAgICAgICAgIH0KKyAgICBhc3NlcnQgbS51cGRhdGUoWyhzLCBUcnVlKV0pIGlz
IFRydWUKKworICAgIGFzc2VydCBtLnRvX2pzb24oKSA9PSB7CisgICAgICAgICdwYXRocyc6IHsK
KyAgICAgICAgICAgICdhL2InOiAoJzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAnLCAndGVzdGhhcm5lc3MnKQorICAgICAgICB9LAorICAgICAgICAndmVyc2lvbic6IDYs
CisgICAgICAgICd1cmxfYmFzZSc6ICcvJywKKyAgICAgICAgJ2l0ZW1zJzogeworICAgICAgICAg
ICAgJ3Rlc3RoYXJuZXNzJzogeworICAgICAgICAgICAgICAgICdhL2InOiBbKCdhL2InLCB7fSld
CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KLSAgICBlbHNlOgotICAgICAgICB3aXRoIHB5dGVz
dC5yYWlzZXMoVmFsdWVFcnJvcik6Ci0gICAgICAgICAgICAjIG9uZSBvZiB0aGVzZSBtdXN0IHJh
aXNlIFZhbHVlRXJyb3IKLSAgICAgICAgICAgICMgdGhlIGZpcnN0IG11c3QgcmV0dXJuIFRydWUg
aWYgaXQgZG9lc24ndCByYWlzZQotICAgICAgICAgICAgYXNzZXJ0IG0udXBkYXRlKFtzXSkgaXMg
VHJ1ZQotICAgICAgICAgICAgbS50b19qc29uKCkKKyAgICB9CiAKIAogZGVmIHRlc3RfbWFuaWZl
c3RfZnJvbV9qc29uX2JhY2tzbGFzaCgpOgpAQCAtMTU3LDEzICsxNTIsMTEgQEAgZGVmIHRlc3Rf
bWFuaWZlc3RfZnJvbV9qc29uX2JhY2tzbGFzaCgpOgogICAgICAgICAncGF0aHMnOiB7CiAgICAg
ICAgICAgICAnYVxcYic6ICgnMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MCcsICd0ZXN0aGFybmVzcycpCiAgICAgICAgIH0sCi0gICAgICAgICd2ZXJzaW9uJzogNSwKKyAg
ICAgICAgJ3ZlcnNpb24nOiA2LAogICAgICAgICAndXJsX2Jhc2UnOiAnLycsCiAgICAgICAgICdp
dGVtcyc6IHsKLSAgICAgICAgICAgICdyZWZ0ZXN0Jzoge30sCi0gICAgICAgICAgICAncmVmdGVz
dF9ub2RlJzoge30sCiAgICAgICAgICAgICAndGVzdGhhcm5lc3MnOiB7Ci0gICAgICAgICAgICAg
ICAgJ2FcXGInOiBbWycvYS9iJywge31dXQorICAgICAgICAgICAgICAgICdhXFxiJzogW1snYS9i
Jywge31dXQogICAgICAgICAgICAgfQogICAgICAgICB9CiAgICAgfQpAQCAtMTc1LDc4ICsxNjgs
NzQgQEAgZGVmIHRlc3RfbWFuaWZlc3RfZnJvbV9qc29uX2JhY2tzbGFzaCgpOgogZGVmIHRlc3Rf
cmVmdGVzdF9jb21wdXRhdGlvbl9jaGFpbigpOgogICAgIG0gPSBtYW5pZmVzdC5NYW5pZmVzdCgp
CiAKLSAgICBzMSA9IFNvdXJjZUZpbGVXaXRoVGVzdCgidGVzdDEiLCAiMCIqNDAsIGl0ZW0uUmVm
VGVzdCwgWygiL3Rlc3QyIiwgIj09IildKQotICAgIHMyID0gU291cmNlRmlsZVdpdGhUZXN0KCJ0
ZXN0MiIsICIwIio0MCwgaXRlbS5SZWZUZXN0LCBbKCIvdGVzdDMiLCAiPT0iKV0pCisgICAgczEg
PSBTb3VyY2VGaWxlV2l0aFRlc3QoInRlc3QxIiwgIjAiKjQwLCBpdGVtLlJlZlRlc3ROb2RlLCBy
ZWZlcmVuY2VzPVsoIi90ZXN0MiIsICI9PSIpXSkKKyAgICBzMiA9IFNvdXJjZUZpbGVXaXRoVGVz
dCgidGVzdDIiLCAiMCIqNDAsIGl0ZW0uUmVmVGVzdE5vZGUsIHJlZmVyZW5jZXM9WygiL3Rlc3Qz
IiwgIj09IildKQogCi0gICAgbS51cGRhdGUoW3MxLCBzMl0pCisgICAgbS51cGRhdGUoWyhzMSwg
VHJ1ZSksIChzMiwgVHJ1ZSldKQogCiAgICAgdGVzdDEgPSBzMS5tYW5pZmVzdF9pdGVtcygpWzFd
WzBdCiAgICAgdGVzdDIgPSBzMi5tYW5pZmVzdF9pdGVtcygpWzFdWzBdCi0gICAgdGVzdDJfbm9k
ZSA9IHRlc3QyLnRvX1JlZlRlc3ROb2RlKCkKIAotICAgIGFzc2VydCBsaXN0KG0pID09IFsoInJl
ZnRlc3QiLCB0ZXN0MS5wYXRoLCB7dGVzdDF9KSwKLSAgICAgICAgICAgICAgICAgICAgICAgKCJy
ZWZ0ZXN0X25vZGUiLCB0ZXN0Mi5wYXRoLCB7dGVzdDJfbm9kZX0pXQorICAgIGFzc2VydCBsaXN0
KG0pID09IFsoInJlZnRlc3QiLCB0ZXN0MS5wYXRoLCB7dGVzdDEudG9fUmVmVGVzdCgpfSksCisg
ICAgICAgICAgICAgICAgICAgICAgICgicmVmdGVzdF9ub2RlIiwgdGVzdDIucGF0aCwge3Rlc3Qy
fSldCiAKIAogZGVmIHRlc3RfcmVmdGVzdF9jb21wdXRhdGlvbl9jaGFpbl91cGRhdGVfYWRkKCk6
CiAgICAgbSA9IG1hbmlmZXN0Lk1hbmlmZXN0KCkKIAotICAgIHMyID0gU291cmNlRmlsZVdpdGhU
ZXN0KCJ0ZXN0MiIsICIwIio0MCwgaXRlbS5SZWZUZXN0LCBbKCIvdGVzdDMiLCAiPT0iKV0pCisg
ICAgczIgPSBTb3VyY2VGaWxlV2l0aFRlc3QoInRlc3QyIiwgIjAiKjQwLCBpdGVtLlJlZlRlc3RO
b2RlLCByZWZlcmVuY2VzPVsoIi90ZXN0MyIsICI9PSIpXSkKICAgICB0ZXN0MiA9IHMyLm1hbmlm
ZXN0X2l0ZW1zKClbMV1bMF0KIAotICAgIGFzc2VydCBtLnVwZGF0ZShbczJdKSBpcyBUcnVlCisg
ICAgYXNzZXJ0IG0udXBkYXRlKFsoczIsIFRydWUpXSkgaXMgVHJ1ZQogCi0gICAgYXNzZXJ0IGxp
c3QobSkgPT0gWygicmVmdGVzdCIsIHRlc3QyLnBhdGgsIHt0ZXN0Mn0pXQorICAgIGFzc2VydCBs
aXN0KG0pID09IFsoInJlZnRlc3QiLCB0ZXN0Mi5wYXRoLCB7dGVzdDIudG9fUmVmVGVzdCgpfSld
CiAKLSAgICBzMSA9IFNvdXJjZUZpbGVXaXRoVGVzdCgidGVzdDEiLCAiMCIqNDAsIGl0ZW0uUmVm
VGVzdCwgWygiL3Rlc3QyIiwgIj09IildKQorICAgIHMxID0gU291cmNlRmlsZVdpdGhUZXN0KCJ0
ZXN0MSIsICIwIio0MCwgaXRlbS5SZWZUZXN0Tm9kZSwgcmVmZXJlbmNlcz1bKCIvdGVzdDIiLCAi
PT0iKV0pCiAgICAgdGVzdDEgPSBzMS5tYW5pZmVzdF9pdGVtcygpWzFdWzBdCiAKICAgICAjIHMy
J3MgaGFzaCBpcyB1bmNoYW5nZWQsIGJ1dCBpdCBoYXMgZ29uZSBmcm9tIGEgdGVzdCB0byBhIG5v
ZGUKLSAgICBhc3NlcnQgbS51cGRhdGUoW3MxLCBzMl0pIGlzIFRydWUKKyAgICBhc3NlcnQgbS51
cGRhdGUoWyhzMSwgVHJ1ZSksIChzMiwgVHJ1ZSldKSBpcyBUcnVlCiAKLSAgICB0ZXN0Ml9ub2Rl
ID0gdGVzdDIudG9fUmVmVGVzdE5vZGUoKQotCi0gICAgYXNzZXJ0IGxpc3QobSkgPT0gWygicmVm
dGVzdCIsIHRlc3QxLnBhdGgsIHt0ZXN0MX0pLAotICAgICAgICAgICAgICAgICAgICAgICAoInJl
ZnRlc3Rfbm9kZSIsIHRlc3QyLnBhdGgsIHt0ZXN0Ml9ub2RlfSldCisgICAgYXNzZXJ0IGxpc3Qo
bSkgPT0gWygicmVmdGVzdCIsIHRlc3QxLnBhdGgsIHt0ZXN0MS50b19SZWZUZXN0KCl9KSwKKyAg
ICAgICAgICAgICAgICAgICAgICAgKCJyZWZ0ZXN0X25vZGUiLCB0ZXN0Mi5wYXRoLCB7dGVzdDJ9
KV0KIAogCiBkZWYgdGVzdF9yZWZ0ZXN0X2NvbXB1dGF0aW9uX2NoYWluX3VwZGF0ZV9yZW1vdmUo
KToKICAgICBtID0gbWFuaWZlc3QuTWFuaWZlc3QoKQogCi0gICAgczEgPSBTb3VyY2VGaWxlV2l0
aFRlc3QoInRlc3QxIiwgIjAiKjQwLCBpdGVtLlJlZlRlc3QsIFsoIi90ZXN0MiIsICI9PSIpXSkK
LSAgICBzMiA9IFNvdXJjZUZpbGVXaXRoVGVzdCgidGVzdDIiLCAiMCIqNDAsIGl0ZW0uUmVmVGVz
dCwgWygiL3Rlc3QzIiwgIj09IildKQorICAgIHMxID0gU291cmNlRmlsZVdpdGhUZXN0KCJ0ZXN0
MSIsICIwIio0MCwgaXRlbS5SZWZUZXN0Tm9kZSwgcmVmZXJlbmNlcz1bKCIvdGVzdDIiLCAiPT0i
KV0pCisgICAgczIgPSBTb3VyY2VGaWxlV2l0aFRlc3QoInRlc3QyIiwgIjAiKjQwLCBpdGVtLlJl
ZlRlc3ROb2RlLCByZWZlcmVuY2VzPVsoIi90ZXN0MyIsICI9PSIpXSkKIAotICAgIGFzc2VydCBt
LnVwZGF0ZShbczEsIHMyXSkgaXMgVHJ1ZQorICAgIGFzc2VydCBtLnVwZGF0ZShbKHMxLCBUcnVl
KSwgKHMyLCBUcnVlKV0pIGlzIFRydWUKIAogICAgIHRlc3QxID0gczEubWFuaWZlc3RfaXRlbXMo
KVsxXVswXQogICAgIHRlc3QyID0gczIubWFuaWZlc3RfaXRlbXMoKVsxXVswXQotICAgIHRlc3Qy
X25vZGUgPSB0ZXN0Mi50b19SZWZUZXN0Tm9kZSgpCiAKLSAgICBhc3NlcnQgbGlzdChtKSA9PSBb
KCJyZWZ0ZXN0IiwgdGVzdDEucGF0aCwge3Rlc3QxfSksCi0gICAgICAgICAgICAgICAgICAgICAg
ICgicmVmdGVzdF9ub2RlIiwgdGVzdDIucGF0aCwge3Rlc3QyX25vZGV9KV0KKyAgICBhc3NlcnQg
bGlzdChtKSA9PSBbKCJyZWZ0ZXN0IiwgdGVzdDEucGF0aCwge3Rlc3QxLnRvX1JlZlRlc3QoKX0p
LAorICAgICAgICAgICAgICAgICAgICAgICAoInJlZnRlc3Rfbm9kZSIsIHRlc3QyLnBhdGgsIHt0
ZXN0Mn0pXQogCiAgICAgIyBzMidzIGhhc2ggaXMgdW5jaGFuZ2VkLCBidXQgaXQgaGFzIGdvbmUg
ZnJvbSBhIG5vZGUgdG8gYSB0ZXN0Ci0gICAgYXNzZXJ0IG0udXBkYXRlKFtzMl0pIGlzIFRydWUK
KyAgICBhc3NlcnQgbS51cGRhdGUoWyhzMiwgVHJ1ZSldKSBpcyBUcnVlCiAKLSAgICBhc3NlcnQg
bGlzdChtKSA9PSBbKCJyZWZ0ZXN0IiwgdGVzdDIucGF0aCwge3Rlc3QyfSldCisgICAgYXNzZXJ0
IGxpc3QobSkgPT0gWygicmVmdGVzdCIsIHRlc3QyLnBhdGgsIHt0ZXN0Mi50b19SZWZUZXN0KCl9
KV0KIAogCiBkZWYgdGVzdF9yZWZ0ZXN0X2NvbXB1dGF0aW9uX2NoYWluX3VwZGF0ZV90ZXN0X3R5
cGUoKToKICAgICBtID0gbWFuaWZlc3QuTWFuaWZlc3QoKQogCi0gICAgczEgPSBTb3VyY2VGaWxl
V2l0aFRlc3QoInRlc3QiLCAiMCIqNDAsIGl0ZW0uUmVmVGVzdCwgWygiL3Rlc3QtcmVmIiwgIj09
IildKQorICAgIHMxID0gU291cmNlRmlsZVdpdGhUZXN0KCJ0ZXN0IiwgIjAiKjQwLCBpdGVtLlJl
ZlRlc3ROb2RlLCByZWZlcmVuY2VzPVsoIi90ZXN0LXJlZiIsICI9PSIpXSkKIAotICAgIGFzc2Vy
dCBtLnVwZGF0ZShbczFdKSBpcyBUcnVlCisgICAgYXNzZXJ0IG0udXBkYXRlKFsoczEsIFRydWUp
XSkgaXMgVHJ1ZQogCiAgICAgdGVzdDEgPSBzMS5tYW5pZmVzdF9pdGVtcygpWzFdWzBdCiAKLSAg
ICBhc3NlcnQgbGlzdChtKSA9PSBbKCJyZWZ0ZXN0IiwgdGVzdDEucGF0aCwge3Rlc3QxfSldCisg
ICAgYXNzZXJ0IGxpc3QobSkgPT0gWygicmVmdGVzdCIsIHRlc3QxLnBhdGgsIHt0ZXN0MS50b19S
ZWZUZXN0KCl9KV0KIAogICAgICMgdGVzdCBiZWNvbWVzIGEgdGVzdGhhcm5lc3MgdGVzdCAoaGFz
aCBjaGFuZ2UgYmVjYXVzZSB0aGF0IGlzIGRldGVybWluZWQKICAgICAjIGJhc2VkIG9uIHRoZSBm
aWxlIGNvbnRlbnRzKS4gVGhlIHVwZGF0ZWQgbWFuaWZlc3Qgc2hvdWxkIG5vdCBpbmNsdWRlcyB0
aGUKICAgICAjIG9sZCByZWZ0ZXN0LgogICAgIHMyID0gU291cmNlRmlsZVdpdGhUZXN0KCJ0ZXN0
IiwgIjEiKjQwLCBpdGVtLlRlc3RoYXJuZXNzVGVzdCkKLSAgICBhc3NlcnQgbS51cGRhdGUoW3My
XSkgaXMgVHJ1ZQorICAgIGFzc2VydCBtLnVwZGF0ZShbKHMyLCBUcnVlKV0pIGlzIFRydWUKIAog
ICAgIHRlc3QyID0gczIubWFuaWZlc3RfaXRlbXMoKVsxXVswXQogCkBAIC0yNTYsODYgKzI0NSwx
NTggQEAgZGVmIHRlc3RfcmVmdGVzdF9jb21wdXRhdGlvbl9jaGFpbl91cGRhdGVfdGVzdF90eXBl
KCk6CiBkZWYgdGVzdF9yZWZ0ZXN0X2NvbXB1dGF0aW9uX2NoYWluX3VwZGF0ZV9ub2RlX2NoYW5n
ZSgpOgogICAgIG0gPSBtYW5pZmVzdC5NYW5pZmVzdCgpCiAKLSAgICBzMSA9IFNvdXJjZUZpbGVX
aXRoVGVzdCgidGVzdDEiLCAiMCIqNDAsIGl0ZW0uUmVmVGVzdCwgWygiL3Rlc3QyIiwgIj09Iild
KQotICAgIHMyID0gU291cmNlRmlsZVdpdGhUZXN0KCJ0ZXN0MiIsICIwIio0MCwgaXRlbS5SZWZU
ZXN0Tm9kZSwgWygiL3Rlc3QzIiwgIj09IildKQorICAgIHMxID0gU291cmNlRmlsZVdpdGhUZXN0
KCJ0ZXN0MSIsICIwIio0MCwgaXRlbS5SZWZUZXN0Tm9kZSwgcmVmZXJlbmNlcz1bKCIvdGVzdDIi
LCAiPT0iKV0pCisgICAgczIgPSBTb3VyY2VGaWxlV2l0aFRlc3QoInRlc3QyIiwgIjAiKjQwLCBp
dGVtLlJlZlRlc3ROb2RlLCByZWZlcmVuY2VzPVsoIi90ZXN0MyIsICI9PSIpXSkKIAotICAgIGFz
c2VydCBtLnVwZGF0ZShbczEsIHMyXSkgaXMgVHJ1ZQorICAgIGFzc2VydCBtLnVwZGF0ZShbKHMx
LCBUcnVlKSwgKHMyLCBUcnVlKV0pIGlzIFRydWUKIAogICAgIHRlc3QxID0gczEubWFuaWZlc3Rf
aXRlbXMoKVsxXVswXQogICAgIHRlc3QyID0gczIubWFuaWZlc3RfaXRlbXMoKVsxXVswXQogCi0g
ICAgYXNzZXJ0IGxpc3QobSkgPT0gWygicmVmdGVzdCIsIHRlc3QxLnBhdGgsIHt0ZXN0MX0pLAor
ICAgIGFzc2VydCBsaXN0KG0pID09IFsoInJlZnRlc3QiLCB0ZXN0MS5wYXRoLCB7dGVzdDEudG9f
UmVmVGVzdCgpfSksCiAgICAgICAgICAgICAgICAgICAgICAgICgicmVmdGVzdF9ub2RlIiwgdGVz
dDIucGF0aCwge3Rlc3QyfSldCiAKICAgICAjdGVzdDIgY2hhbmdlcyB0byBzdXBwb3J0IHR5cGUK
ICAgICBzMiA9IFNvdXJjZUZpbGVXaXRoVGVzdCgidGVzdDIiLCAiMSIqNDAsIGl0ZW0uU3VwcG9y
dEZpbGUpCiAKLSAgICBhc3NlcnQgbS51cGRhdGUoW3MxLHMyXSkgaXMgVHJ1ZQorICAgIGFzc2Vy
dCBtLnVwZGF0ZShbKHMxLCBUcnVlKSwgKHMyLCBUcnVlKV0pIGlzIFRydWUKICAgICB0ZXN0MyA9
IHMyLm1hbmlmZXN0X2l0ZW1zKClbMV1bMF0KIAotICAgIGFzc2VydCBsaXN0KG0pID09IFsoInJl
ZnRlc3QiLCB0ZXN0MS5wYXRoLCB7dGVzdDF9KSwKKyAgICBhc3NlcnQgbGlzdChtKSA9PSBbKCJy
ZWZ0ZXN0IiwgdGVzdDEucGF0aCwge3Rlc3QxLnRvX1JlZlRlc3QoKX0pLAogICAgICAgICAgICAg
ICAgICAgICAgICAoInN1cHBvcnQiLCB0ZXN0My5wYXRoLCB7dGVzdDN9KV0KIAogCitkZWYgdGVz
dF9yZWZ0ZXN0X2NvbXB1dGF0aW9uX2NoYWluX3VwZGF0ZV9ub2RlX2NoYW5nZV9wYXJ0aWFsKCk6
CisgICAgbSA9IG1hbmlmZXN0Lk1hbmlmZXN0KCkKKworICAgIHMxID0gU291cmNlRmlsZVdpdGhU
ZXN0KCJ0ZXN0MSIsICIwIio0MCwgaXRlbS5SZWZUZXN0Tm9kZSwgcmVmZXJlbmNlcz1bKCIvdGVz
dDIiLCAiPT0iKV0pCisgICAgczIgPSBTb3VyY2VGaWxlV2l0aFRlc3QoInRlc3QyIiwgIjAiKjQw
LCBpdGVtLlJlZlRlc3ROb2RlLCByZWZlcmVuY2VzPVsoIi90ZXN0MyIsICI9PSIpXSkKKworICAg
IGFzc2VydCBtLnVwZGF0ZShbKHMxLCBUcnVlKSwgKHMyLCBUcnVlKV0pIGlzIFRydWUKKworICAg
IHRlc3QxID0gczEubWFuaWZlc3RfaXRlbXMoKVsxXVswXQorICAgIHRlc3QyID0gczIubWFuaWZl
c3RfaXRlbXMoKVsxXVswXQorCisgICAgYXNzZXJ0IGxpc3QobSkgPT0gWygicmVmdGVzdCIsIHRl
c3QxLnBhdGgsIHt0ZXN0MS50b19SZWZUZXN0KCl9KSwKKyAgICAgICAgICAgICAgICAgICAgICAg
KCJyZWZ0ZXN0X25vZGUiLCB0ZXN0Mi5wYXRoLCB7dGVzdDJ9KV0KKworICAgIHMyID0gU291cmNl
RmlsZVdpdGhUZXN0KCJ0ZXN0MiIsICIxIio0MCwgaXRlbS5SZWZUZXN0Tm9kZSwgcmVmZXJlbmNl
cz1bKCIvdGVzdDMiLCAiPT0iKV0pCisKKyAgICBhc3NlcnQgbS51cGRhdGUoWyhzMS5yZWxfcGF0
aCwgRmFsc2UpLCAoczIsIFRydWUpXSkgaXMgVHJ1ZQorCisgICAgYXNzZXJ0IGxpc3QobSkgPT0g
WygicmVmdGVzdCIsIHRlc3QxLnBhdGgsIHt0ZXN0MS50b19SZWZUZXN0KCl9KSwKKyAgICAgICAg
ICAgICAgICAgICAgICAgKCJyZWZ0ZXN0X25vZGUiLCB0ZXN0Mi5wYXRoLCB7dGVzdDJ9KV0KKwor
CiBkZWYgdGVzdF9pdGVycGF0aCgpOgogICAgIG0gPSBtYW5pZmVzdC5NYW5pZmVzdCgpCiAKLSAg
ICBzb3VyY2VzID0gW1NvdXJjZUZpbGVXaXRoVGVzdCgidGVzdDEiLCAiMCIqNDAsIGl0ZW0uUmVm
VGVzdCwgWygiL3Rlc3QxLXJlZiIsICI9PSIpXSksCi0gICAgICAgICAgICAgICBTb3VyY2VGaWxl
V2l0aFRlc3QoInRlc3QyIiwgIjAiKjQwLCBpdGVtLlJlZlRlc3QsIFsoIi90ZXN0Mi1yZWYiLCAi
PT0iKV0pLAotICAgICAgICAgICAgICAgU291cmNlRmlsZVdpdGhUZXN0cygidGVzdDIiLCAiMCIq
NDAsIGl0ZW0uVGVzdGhhcm5lc3NUZXN0LCBbKCIvdGVzdDItMS5odG1sIiwpLAotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgKCIvdGVzdDItMi5odG1sIiwpXSksCisgICAgc291cmNlcyA9IFtTb3VyY2VGaWxl
V2l0aFRlc3QoInRlc3QxIiwgIjAiKjQwLCBpdGVtLlJlZlRlc3ROb2RlLCByZWZlcmVuY2VzPVso
Ii90ZXN0MS1yZWYiLCAiPT0iKV0pLAorICAgICAgICAgICAgICAgU291cmNlRmlsZVdpdGhUZXN0
cygidGVzdDIiLCAiMSIqNDAsIGl0ZW0uVGVzdGhhcm5lc3NUZXN0LCBbKCJ0ZXN0Mi0xLmh0bWwi
LCB7fSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAoInRlc3QyLTIuaHRtbCIsIHt9KV0pLAogICAgICAg
ICAgICAgICAgU291cmNlRmlsZVdpdGhUZXN0KCJ0ZXN0MyIsICIwIio0MCwgaXRlbS5UZXN0aGFy
bmVzc1Rlc3QpXQotICAgIG0udXBkYXRlKHNvdXJjZXMpCisgICAgbS51cGRhdGUoWyhzLCBUcnVl
KSBmb3IgcyBpbiBzb3VyY2VzXSkKIAotICAgIGFzc2VydCBzZXQoaXRlbS51cmwgZm9yIGl0ZW0g
aW4gbS5pdGVycGF0aCgidGVzdDIiKSkgPT0gc2V0KFsiL3Rlc3QyIiwKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIi90ZXN0
Mi0xLmh0bWwiLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAiL3Rlc3QyLTIuaHRtbCJdKQorICAgIGFzc2VydCB7aXRlbS51
cmwgZm9yIGl0ZW0gaW4gbS5pdGVycGF0aCgidGVzdDIiKX0gPT0geyIvdGVzdDItMS5odG1sIiwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAiL3Rlc3QyLTIuaHRtbCJ9CiAgICAgYXNzZXJ0IHNldChtLml0ZXJwYXRoKCJtaXNzaW5nIikp
ID09IHNldCgpCiAKIAotZGVmIHRlc3RfZmlsdGVyKCk6CitkZWYgdGVzdF9yZWZ0ZXN0X25vZGVf
YnlfdXJsKCk6CiAgICAgbSA9IG1hbmlmZXN0Lk1hbmlmZXN0KCkKIAotICAgIHNvdXJjZXMgPSBb
U291cmNlRmlsZVdpdGhUZXN0KCJ0ZXN0MSIsICIwIio0MCwgaXRlbS5SZWZUZXN0LCBbKCIvdGVz
dDEtcmVmIiwgIj09IildKSwKLSAgICAgICAgICAgICAgIFNvdXJjZUZpbGVXaXRoVGVzdCgidGVz
dDIiLCAiMCIqNDAsIGl0ZW0uUmVmVGVzdCwgWygiL3Rlc3QyLXJlZiIsICI9PSIpXSksCi0gICAg
ICAgICAgICAgICBTb3VyY2VGaWxlV2l0aFRlc3RzKCJ0ZXN0MiIsICIwIio0MCwgaXRlbS5UZXN0
aGFybmVzc1Rlc3QsIFsoIi90ZXN0Mi0xLmh0bWwiLCksCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoIi90
ZXN0Mi0yLmh0bWwiLCldKSwKLSAgICAgICAgICAgICAgIFNvdXJjZUZpbGVXaXRoVGVzdCgidGVz
dDMiLCAiMCIqNDAsIGl0ZW0uVGVzdGhhcm5lc3NUZXN0KV0KLSAgICBtLnVwZGF0ZShzb3VyY2Vz
KQotCi0gICAganNvbiA9IG0udG9fanNvbigpCisgICAgczEgPSBTb3VyY2VGaWxlV2l0aFRlc3Qo
InRlc3QxIiwgIjAiKjQwLCBpdGVtLlJlZlRlc3ROb2RlLCByZWZlcmVuY2VzPVsoIi90ZXN0MiIs
ICI9PSIpXSkKKyAgICBzMiA9IFNvdXJjZUZpbGVXaXRoVGVzdCgidGVzdDIiLCAiMCIqNDAsIGl0
ZW0uUmVmVGVzdE5vZGUsIHJlZmVyZW5jZXM9WygiL3Rlc3QzIiwgIj09IildKQogCi0gICAgZGVm
IGZpbHRlcihpdCk6Ci0gICAgICAgIGZvciB0ZXN0IGluIGl0OgotICAgICAgICAgICAgaWYgdGVz
dFswXSBpbiBbIi90ZXN0Mi0yLmh0bWwiLCAiL3Rlc3QzIl06Ci0gICAgICAgICAgICAgICAgeWll
bGQgdGVzdAorICAgIG0udXBkYXRlKFsoczEsIFRydWUpLCAoczIsIFRydWUpXSkKIAotICAgIGZp
bHRlcmVkX21hbmlmZXN0ID0gbWFuaWZlc3QuTWFuaWZlc3QuZnJvbV9qc29uKCIvIiwganNvbiwg
dHlwZXM9WyJ0ZXN0aGFybmVzcyJdLCBtZXRhX2ZpbHRlcnM9W2ZpbHRlcl0pCisgICAgdGVzdDEg
PSBzMS5tYW5pZmVzdF9pdGVtcygpWzFdWzBdCisgICAgdGVzdDIgPSBzMi5tYW5pZmVzdF9pdGVt
cygpWzFdWzBdCiAKLSAgICBhY3R1YWwgPSBbCi0gICAgICAgICh0eSwgcGF0aCwgW3Rlc3QuaWQg
Zm9yIHRlc3QgaW4gdGVzdHNdKQotICAgICAgICBmb3IgKHR5LCBwYXRoLCB0ZXN0cykgaW4gZmls
dGVyZWRfbWFuaWZlc3QKLSAgICBdCi0gICAgYXNzZXJ0IGFjdHVhbCA9PSBbCi0gICAgICAgICgi
dGVzdGhhcm5lc3MiLCAidGVzdDIiLCBbIi90ZXN0Mi0yLmh0bWwiXSksCi0gICAgICAgICgidGVz
dGhhcm5lc3MiLCAidGVzdDMiLCBbIi90ZXN0MyJdKSwKLSAgICBdCisgICAgYXNzZXJ0IG0ucmVm
dGVzdF9ub2Rlc19ieV91cmwgPT0geyIvdGVzdDEiOiB0ZXN0MS50b19SZWZUZXN0KCksCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIvdGVzdDIiOiB0ZXN0Mn0KKyAgICBt
Ll9yZWZ0ZXN0X25vZGVzX2J5X3VybCA9IE5vbmUKKyAgICBhc3NlcnQgbS5yZWZ0ZXN0X25vZGVz
X2J5X3VybCA9PSB7Ii90ZXN0MSI6IHRlc3QxLnRvX1JlZlRlc3QoKSwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIi90ZXN0MiI6IHRlc3QyfQogCiAKLWRlZiB0ZXN0X3Jl
ZnRlc3Rfbm9kZV9ieV91cmwoKToKK2RlZiB0ZXN0X25vX3VwZGF0ZSgpOgogICAgIG0gPSBtYW5p
ZmVzdC5NYW5pZmVzdCgpCiAKLSAgICBzMSA9IFNvdXJjZUZpbGVXaXRoVGVzdCgidGVzdDEiLCAi
MCIqNDAsIGl0ZW0uUmVmVGVzdCwgWygiL3Rlc3QyIiwgIj09IildKQotICAgIHMyID0gU291cmNl
RmlsZVdpdGhUZXN0KCJ0ZXN0MiIsICIwIio0MCwgaXRlbS5SZWZUZXN0LCBbKCIvdGVzdDMiLCAi
PT0iKV0pCisgICAgczEgPSBTb3VyY2VGaWxlV2l0aFRlc3QoInRlc3QxIiwgIjAiKjQwLCBpdGVt
LlRlc3RoYXJuZXNzVGVzdCkKKyAgICBzMiA9IFNvdXJjZUZpbGVXaXRoVGVzdCgidGVzdDIiLCAi
MCIqNDAsIGl0ZW0uVGVzdGhhcm5lc3NUZXN0KQogCi0gICAgbS51cGRhdGUoW3MxLCBzMl0pCisg
ICAgbS51cGRhdGUoWyhzMSwgVHJ1ZSksIChzMiwgVHJ1ZSldKQogCiAgICAgdGVzdDEgPSBzMS5t
YW5pZmVzdF9pdGVtcygpWzFdWzBdCiAgICAgdGVzdDIgPSBzMi5tYW5pZmVzdF9pdGVtcygpWzFd
WzBdCi0gICAgdGVzdDJfbm9kZSA9IHRlc3QyLnRvX1JlZlRlc3ROb2RlKCkKIAotICAgIGFzc2Vy
dCBtLnJlZnRlc3Rfbm9kZXNfYnlfdXJsID09IHsiL3Rlc3QxIjogdGVzdDEsCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICIvdGVzdDIiOiB0ZXN0Ml9ub2RlfQotICAgIG0u
X3JlZnRlc3Rfbm9kZXNfYnlfdXJsID0gTm9uZQotICAgIGFzc2VydCBtLnJlZnRlc3Rfbm9kZXNf
YnlfdXJsID09IHsiL3Rlc3QxIjogdGVzdDEsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICIvdGVzdDIiOiB0ZXN0Ml9ub2RlfQorICAgIGFzc2VydCBsaXN0KG0pID09IFso
InRlc3RoYXJuZXNzIiwgdGVzdDEucGF0aCwge3Rlc3QxfSksCisgICAgICAgICAgICAgICAgICAg
ICAgICgidGVzdGhhcm5lc3MiLCB0ZXN0Mi5wYXRoLCB7dGVzdDJ9KV0KKworICAgIHMxXzEgPSBT
b3VyY2VGaWxlV2l0aFRlc3QoInRlc3QxIiwgIjEiKjQwLCBpdGVtLk1hbnVhbFRlc3QpCisKKyAg
ICBtLnVwZGF0ZShbKHMxXzEsIFRydWUpLCAoczIucmVsX3BhdGgsIEZhbHNlKV0pCisKKyAgICB0
ZXN0MV8xID0gczFfMS5tYW5pZmVzdF9pdGVtcygpWzFdWzBdCisKKyAgICBhc3NlcnQgbGlzdCht
KSA9PSBbKCJtYW51YWwiLCB0ZXN0MV8xLnBhdGgsIHt0ZXN0MV8xfSksCisgICAgICAgICAgICAg
ICAgICAgICAgICgidGVzdGhhcm5lc3MiLCB0ZXN0Mi5wYXRoLCB7dGVzdDJ9KV0KKworCitkZWYg
dGVzdF9ub191cGRhdGVfZGVsZXRlKCk6CisgICAgbSA9IG1hbmlmZXN0Lk1hbmlmZXN0KCkKKwor
ICAgIHMxID0gU291cmNlRmlsZVdpdGhUZXN0KCJ0ZXN0MSIsICIwIio0MCwgaXRlbS5UZXN0aGFy
bmVzc1Rlc3QpCisgICAgczIgPSBTb3VyY2VGaWxlV2l0aFRlc3QoInRlc3QyIiwgIjAiKjQwLCBp
dGVtLlRlc3RoYXJuZXNzVGVzdCkKKworICAgIG0udXBkYXRlKFsoczEsIFRydWUpLCAoczIsIFRy
dWUpXSkKKworICAgIHRlc3QxID0gczEubWFuaWZlc3RfaXRlbXMoKVsxXVswXQorCisgICAgczFf
MSA9IFNvdXJjZUZpbGVXaXRoVGVzdCgidGVzdDEiLCAiMSIqNDAsIGl0ZW0uTWFudWFsVGVzdCkK
KworICAgIG0udXBkYXRlKFsoczFfMS5yZWxfcGF0aCwgRmFsc2UpXSkKKworICAgIGFzc2VydCBs
aXN0KG0pID09IFsoInRlc3RoYXJuZXNzIiwgdGVzdDEucGF0aCwge3Rlc3QxfSldCisKKworZGVm
IHRlc3RfdXBkYXRlX2Zyb21fanNvbigpOgorICAgIG0gPSBtYW5pZmVzdC5NYW5pZmVzdCgpCisK
KyAgICBzMSA9IFNvdXJjZUZpbGVXaXRoVGVzdCgidGVzdDEiLCAiMCIqNDAsIGl0ZW0uVGVzdGhh
cm5lc3NUZXN0KQorICAgIHMyID0gU291cmNlRmlsZVdpdGhUZXN0KCJ0ZXN0MiIsICIwIio0MCwg
aXRlbS5UZXN0aGFybmVzc1Rlc3QpCisKKyAgICBtLnVwZGF0ZShbKHMxLCBUcnVlKSwgKHMyLCBU
cnVlKV0pCisKKyAgICBqc29uX3N0ciA9IG0udG9fanNvbigpCisgICAgbSA9IG1hbmlmZXN0Lk1h
bmlmZXN0LmZyb21fanNvbigiLyIsIGpzb25fc3RyKQorCisgICAgbS51cGRhdGUoWyhzMSwgVHJ1
ZSldKQorCisgICAgdGVzdDEgPSBzMS5tYW5pZmVzdF9pdGVtcygpWzFdWzBdCisKKyAgICBhc3Nl
cnQgbGlzdChtKSA9PSBbKCJ0ZXN0aGFybmVzcyIsIHRlc3QxLnBhdGgsIHt0ZXN0MX0pXQorCisK
K2RlZiB0ZXN0X3VwZGF0ZV9mcm9tX2pzb25fbW9kaWZpZWQoKToKKyAgICAjIENyZWF0ZSB0aGUg
b3JpZ2luYWwgbWFuaWZlc3QKKyAgICBtID0gbWFuaWZlc3QuTWFuaWZlc3QoKQorICAgIHMxID0g
U291cmNlRmlsZVdpdGhUZXN0KCJ0ZXN0MSIsICIwIio0MCwgaXRlbS5UZXN0aGFybmVzc1Rlc3Qp
CisgICAgbS51cGRhdGUoWyhzMSwgVHJ1ZSldKQorICAgIGpzb25fc3RyID0gbS50b19qc29uKCkK
KworICAgICMgUmVsb2FkIGl0IGZyb20gSlNPTgorICAgIG0gPSBtYW5pZmVzdC5NYW5pZmVzdC5m
cm9tX2pzb24oIi8iLCBqc29uX3N0cikKKworICAgICMgVXBkYXRlIGl0IHdpdGggdGltZW91dD0i
bG9uZyIKKyAgICBzMiA9IFNvdXJjZUZpbGVXaXRoVGVzdCgidGVzdDEiLCAiMSIqNDAsIGl0ZW0u
VGVzdGhhcm5lc3NUZXN0LCB0aW1lb3V0PSJsb25nIikKKyAgICBtLnVwZGF0ZShbKHMyLCBUcnVl
KV0pCisgICAganNvbl9zdHIgPSBtLnRvX2pzb24oKQorICAgIGFzc2VydCBqc29uX3N0ciA9PSB7
CisgICAgICAgICdpdGVtcyc6IHsndGVzdGhhcm5lc3MnOiB7J3Rlc3QxJzogWygndGVzdDEnLCB7
InRpbWVvdXQiOiAibG9uZyJ9KV19fSwKKyAgICAgICAgJ3BhdGhzJzogeyd0ZXN0MSc6ICgnMTEx
MTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMScsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgJ3Rlc3RoYXJuZXNzJyl9LAorICAgICAgICAndXJsX2Jhc2UnOiAnLycsCisg
ICAgICAgICd2ZXJzaW9uJzogNgorICAgIH0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvbWFuaWZlc3QvdGVzdHMvdGVzdF9zb3Vy
Y2VmaWxlLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy9tYW5pZmVzdC90ZXN0cy90ZXN0X3NvdXJjZWZpbGUucHkKaW5kZXggNTdhMTc1Y2FlOTEz
YTI3M2M2YmE0ZWJiY2MxM2RkNDc1NzFlNDk3MC4uMGE3YTFjYTBiNDFhOWMxYjk1ZmNlYTMwOTU0
Y2VmZjRiY2M3NGFkOCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy9tYW5pZmVzdC90ZXN0cy90ZXN0X3NvdXJjZWZpbGUucHkKKysr
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9tYW5p
ZmVzdC90ZXN0cy90ZXN0X3NvdXJjZWZpbGUucHkKQEAgLTM1LDcgKzM1LDcgQEAgZGVmIGl0ZW1z
KHMpOgogICAgICJmb28vdG9vbHMvdGVzdC5odG1sIiwKICAgICAiZm9vL3Jlc291cmNlcy90ZXN0
Lmh0bWwiLAogICAgICJmb28vc3VwcG9ydC90ZXN0Lmh0bWwiLAotICAgICJmb28vdGVzdC1zdXBw
b3J0Lmh0bWwiLAorICAgICJmb28vZm9vLW1hbnVhbC5odG1sLmhlYWRlcnMiLAogICAgICJjc3Mv
Y29tbW9uL3Rlc3QuaHRtbCIsCiAgICAgImNzcy9DU1MyL2FyY2hpdmUvdGVzdC5odG1sIiwKIF0p
CkBAIC01NSw2ICs1NSw3IEBAIGRlZiB0ZXN0X25hbWVfaXNfbm9uX3Rlc3QocmVsX3BhdGgpOgog
ICAgICJmb28vY3NzMjEvYXJjaGl2ZS90ZXN0Lmh0bWwiLAogICAgICJmb28vQ1NTMi9hcmNoaXZl
L3Rlc3QuaHRtbCIsCiAgICAgImNzcy9jc3MyMS9hcmNoaXZlL3Rlc3QuaHRtbCIsCisgICAgImZv
by90ZXN0LXN1cHBvcnQuaHRtbCIsCiBdKQogZGVmIHRlc3Rfbm90X25hbWVfaXNfbm9uX3Rlc3Qo
cmVsX3BhdGgpOgogICAgIHMgPSBjcmVhdGUocmVsX3BhdGgpCkBAIC02NCw2ICs2NSw3IEBAIGRl
ZiB0ZXN0X25vdF9uYW1lX2lzX25vbl90ZXN0KHJlbF9wYXRoKToKIAogCiBAcHl0ZXN0Lm1hcmsu
cGFyYW1ldHJpemUoInJlbF9wYXRoIiwgWworICAgICJmb28vZm9vLW1hbnVhbC5odG1sIiwKICAg
ICAiaHRtbC90ZXN0LW1hbnVhbC5odG1sIiwKICAgICAiaHRtbC90ZXN0LW1hbnVhbC54aHRtbCIs
CiAgICAgImh0bWwvdGVzdC1tYW51YWwuaHR0cHMuaHRtbCIsCkBAIC03NjQsMyArNzY2LDY5IEBA
IGRlZiB0ZXN0X3NwZWNfbGlua3Nfd2hpdGVzcGFjZSh1cmwpOgogICAgIGNvbnRlbnQgPSBiIjxs
aW5rIHJlbD1oZWxwIGhyZWY9JyVzJz4iICUgdXJsCiAgICAgcyA9IGNyZWF0ZSgiZm9vL3Rlc3Qu
aHRtbCIsIGNvbnRlbnQpCiAgICAgYXNzZXJ0IHMuc3BlY19saW5rcyA9PSB7Imh0dHA6Ly9leGFt
cGxlLmNvbS8ifQorCisKK2RlZiB0ZXN0X3VybF9iYXNlKCk6CisgICAgY29udGVudHMgPSBiIiIi
Ly8gTUVUQTogZ2xvYmFsPXdpbmRvdyx3b3JrZXIKKy8vIE1FVEE6IHZhcmlhbnQ9CisvLyBNRVRB
OiB2YXJpYW50PT93c3MKK3Rlc3QoKSIiIgorCisgICAgcyA9IFNvdXJjZUZpbGUoIi8iLCAiaHRt
bC90ZXN0LmFueS5qcyIsICIvX2Zha2VfYmFzZS8iLCBjb250ZW50cz1jb250ZW50cykKKyAgICBp
dGVtX3R5cGUsIGl0ZW1zID0gcy5tYW5pZmVzdF9pdGVtcygpCisKKyAgICBhc3NlcnQgaXRlbV90
eXBlID09ICJ0ZXN0aGFybmVzcyIKKworICAgIGFzc2VydCBbaXRlbS51cmwgZm9yIGl0ZW0gaW4g
aXRlbXNdID09IFt1Jy9fZmFrZV9iYXNlL2h0bWwvdGVzdC5hbnkuaHRtbCcsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHUnL19mYWtlX2Jhc2UvaHRtbC90ZXN0
LmFueS5odG1sP3dzcycsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHUnL19mYWtlX2Jhc2UvaHRtbC90ZXN0LmFueS5zZXJ2aWNld29ya2VyLmh0bWwnLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1Jy9fZmFrZV9iYXNlL2h0
bWwvdGVzdC5hbnkuc2VydmljZXdvcmtlci5odG1sP3dzcycsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHUnL19mYWtlX2Jhc2UvaHRtbC90ZXN0LmFueS5zaGFy
ZWR3b3JrZXIuaHRtbCcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHUnL19mYWtlX2Jhc2UvaHRtbC90ZXN0LmFueS5zaGFyZWR3b3JrZXIuaHRtbD93c3MnLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1Jy9fZmFrZV9iYXNl
L2h0bWwvdGVzdC5hbnkud29ya2VyLmh0bWwnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICB1Jy9fZmFrZV9iYXNlL2h0bWwvdGVzdC5hbnkud29ya2VyLmh0bWw/
d3NzJ10KKworICAgIGFzc2VydCBpdGVtc1swXS51cmxfYmFzZSA9PSAiL19mYWtlX2Jhc2UvIgor
CisKK0BweXRlc3QubWFyay5wYXJhbWV0cml6ZSgiZnV6enksIGV4cGVjdGVkIiwgWworICAgIChi
InJlZi5odG1sOjE7MjAwIiwgeygiL2Zvby90ZXN0Lmh0bWwiLCAiL2Zvby9yZWYuaHRtbCIsICI9
PSIpOiBbWzEsIDFdLCBbMjAwLCAyMDBdXX0pLAorICAgIChiInJlZi5odG1sOjAtMTsxMDAtMjAw
IiwgeygiL2Zvby90ZXN0Lmh0bWwiLCAiL2Zvby9yZWYuaHRtbCIsICI9PSIpOiBbWzAsIDFdLCBb
MTAwLCAyMDBdXX0pLAorICAgIChiIjAtMTsxMDAtMjAwIiwge05vbmU6IFtbMCwxXSwgWzEwMCwg
MjAwXV19KSwKKyAgICAoYiJtYXhEaWZmZXJlbmNlPTE7dG90YWxQaXhlbHM9MjAwIiwge05vbmU6
IFtbMSwgMV0sIFsyMDAsIDIwMF1dfSksCisgICAgKGIidG90YWxQaXhlbHM9MjAwO21heERpZmZl
cmVuY2U9MSIsIHtOb25lOiBbWzEsIDFdLCBbMjAwLCAyMDBdXX0pLAorICAgIChiInRvdGFsUGl4
ZWxzPTIwMDsxIiwge05vbmU6IFtbMSwgMV0sIFsyMDAsIDIwMF1dfSksCisgICAgKGIibWF4RGlm
ZmVyZW5jZT0xOzIwMCIsIHtOb25lOiBbWzEsIDFdLCBbMjAwLCAyMDBdXX0pLF0pCitkZWYgdGVz
dF9yZWZ0ZXN0X2Z1enp5KGZ1enp5LCBleHBlY3RlZCk6CisgICAgY29udGVudCA9IGIiIiI8bGlu
ayByZWw9bWF0Y2ggaHJlZj1yZWYuaHRtbD4KKzxtZXRhIG5hbWU9ZnV6enkgY29udGVudD0iJXMi
PgorIiIiICUgZnV6enkKKworICAgIHMgPSBjcmVhdGUoImZvby90ZXN0Lmh0bWwiLCBjb250ZW50
KQorCisgICAgYXNzZXJ0IHMuY29udGVudF9pc19yZWZfbm9kZQorICAgIGFzc2VydCBzLmZ1enp5
ID09IGV4cGVjdGVkCisKKworQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKCJmdXp6eSwgZXhwZWN0
ZWQiLCBbCisgICAgKFtiIjE7MjAwIl0sIHtOb25lOiBbWzEsIDFdLCBbMjAwLCAyMDBdXX0pLAor
ICAgIChbYiJyZWYtMi5odG1sOjAtMTsxMDAtMjAwIl0sIHsoIi9mb28vdGVzdC5odG1sIiwgIi9m
b28vcmVmLTIuaHRtbCIsICI9PSIpOiBbWzAsIDFdLCBbMTAwLCAyMDBdXX0pLAorICAgIChbYiIx
OzIwMCIsIGIicmVmLTIuaHRtbDowLTE7MTAwLTIwMCJdLAorICAgICB7Tm9uZTogW1sxLCAxXSwg
WzIwMCwgMjAwXV0sCisgICAgICAoIi9mb28vdGVzdC5odG1sIiwgIi9mb28vcmVmLTIuaHRtbCIs
ICI9PSIpOiBbWzAsMV0sIFsxMDAsIDIwMF1dfSldKQorZGVmIHRlc3RfcmVmdGVzdF9mdXp6eV9t
dWx0aShmdXp6eSwgZXhwZWN0ZWQpOgorICAgIGNvbnRlbnQgPSBiIiIiPGxpbmsgcmVsPW1hdGNo
IGhyZWY9cmVmLTEuaHRtbD4KKzxsaW5rIHJlbD1tYXRjaCBocmVmPXJlZi0yLmh0bWw+CisiIiIK
KyAgICBmb3IgaXRlbSBpbiBmdXp6eToKKyAgICAgICAgY29udGVudCArPSBiJ1xuPG1ldGEgbmFt
ZT1mdXp6eSBjb250ZW50PSIlcyI+JyAlIGl0ZW0KKworICAgIHMgPSBjcmVhdGUoImZvby90ZXN0
Lmh0bWwiLCBjb250ZW50KQorCisgICAgYXNzZXJ0IHMuY29udGVudF9pc19yZWZfbm9kZQorICAg
IGFzc2VydCBzLmZ1enp5ID09IGV4cGVjdGVkCisKKworZGVmIHRlc3RfaGFzaCgpOgorICAgIHMg
PSBTb3VyY2VGaWxlKCIvIiwgImZvbyIsICIvIiwgY29udGVudHM9YiJIZWxsbywgV29ybGQhIikK
KyAgICBhc3NlcnQgYiJiNDVlZjZmZWM4OTUxOGQzMTRmNTQ2ZmQ2YzMwMjUzNjdiNzIxNjg0IiA9
PSBzLmhhc2gKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvbWFuaWZlc3QvdGVzdHMvdGVzdF91dGlscy5weSBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvbWFuaWZlc3QvdGVzdHMvdGVz
dF91dGlscy5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xYmRmZmI5YjFmZTBmMTBiNmU0OTc2OGZkM2JkZDUwMmY4
YWViM2ZkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy9tYW5pZmVzdC90ZXN0cy90ZXN0X3V0aWxzLnB5CkBAIC0wLDAg
KzEsMTQgQEAKK2ltcG9ydCBvcworaW1wb3J0IHN1YnByb2Nlc3MKKworaW1wb3J0IG1vY2sKKwor
ZnJvbSAuLiBpbXBvcnQgdXRpbHMKKworCitkZWYgdGVzdF9naXRfZm9yX3BhdGhfbm9fZ2l0KCk6
CisgICAgdGhpc19kaXIgPSBvcy5wYXRoLmRpcm5hbWUoX19maWxlX18pCisgICAgd2l0aCBtb2Nr
LnBhdGNoKAorICAgICAgICAgICAgInN1YnByb2Nlc3MuY2hlY2tfb3V0cHV0IiwKKyAgICAgICAg
ICAgIHNpZGVfZWZmZWN0PXN1YnByb2Nlc3MuQ2FsbGVkUHJvY2Vzc0Vycm9yKDEsICJmb28iKSk6
CisgICAgICAgIGFzc2VydCB1dGlscy5naXQodGhpc19kaXIpIGlzIE5vbmUKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvbWFuaWZl
c3QvdGVzdHMvdzNjLWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL21hbmlmZXN0L3Rlc3RzL3czYy1pbXBvcnQubG9nCmluZGV4IDFm
MjBhYzg0NDZmZmZkMTE2Yzg1ZGE1YTc3MDVkM2MyNTVkOWEwNmQuLjA5ZTUzOTlmNDgyYjlmNjQ4
ODYyM2YwNzI4MDY4MmJjYjc5OWNiYWQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvbWFuaWZlc3QvdGVzdHMvdzNjLWltcG9ydC5s
b2cKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy9tYW5pZmVzdC90ZXN0cy93M2MtaW1wb3J0LmxvZwpAQCAtMTksMyArMTksNCBAQCBMaXN0IG9m
IGZpbGVzOgogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvbWFuaWZlc3QvdGVzdHMvdGVzdF9pdGVtLnB5CiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9tYW5pZmVzdC90ZXN0cy90ZXN0X21hbmlmZXN0LnB5
CiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9tYW5p
ZmVzdC90ZXN0cy90ZXN0X3NvdXJjZWZpbGUucHkKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL21hbmlmZXN0L3Rlc3RzL3Rlc3RfdXRpbHMucHkKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvbWFuaWZlc3QvdXBkYXRlLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy9tYW5pZmVzdC91cGRhdGUucHkKaW5kZXggOTkyM2NjNWZlNjI5NTVk
ZWU2N2Y5NTg2YjcyMTkyMzUxODQ4NzdhNC4uYmZiYWFmODk3MTI2ZDhlZWNhNjlkY2VmOTRiYjMx
MzA4ODk3ZmRlMiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy9tYW5pZmVzdC91cGRhdGUucHkKKysrIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9tYW5pZmVzdC91cGRhdGUucHkKQEAg
LTIsNyArMiw3IEBACiBpbXBvcnQgYXJncGFyc2UKIGltcG9ydCBvcwogCi1pbXBvcnQgbWFuaWZl
c3QKK2Zyb20gLiBpbXBvcnQgbWFuaWZlc3QKIGZyb20gLiBpbXBvcnQgdmNzCiBmcm9tIC5sb2cg
aW1wb3J0IGdldF9sb2dnZXIKIGZyb20gLmRvd25sb2FkIGltcG9ydCBkb3dubG9hZF9mcm9tX2dp
dGh1YgpAQCAtMTMsNDkgKzEzLDU0IEBAIHdwdF9yb290ID0gb3MucGF0aC5hYnNwYXRoKG9zLnBh
dGguam9pbihoZXJlLCBvcy5wYXJkaXIsIG9zLnBhcmRpcikpCiAKIGxvZ2dlciA9IGdldF9sb2dn
ZXIoKQogCi1kZWYgdXBkYXRlKHRlc3RzX3Jvb3QsIG1hbmlmZXN0LCB3b3JraW5nX2NvcHk9RmFs
c2UpOgorTVlQWSA9IEZhbHNlCitpZiBNWVBZOgorICAgICMgTVlQWSBpcyBzZXQgdG8gVHJ1ZSB3
aGVuIHJ1biB1bmRlciBNeXB5LgorICAgIGZyb20gdHlwaW5nIGltcG9ydCBBbnkKKyAgICBmcm9t
IHR5cGluZyBpbXBvcnQgT3B0aW9uYWwKKyAgICBmcm9tIC5tYW5pZmVzdCBpbXBvcnQgTWFuaWZl
c3QgICMgYXZvaWQgY3ljbGljIGltcG9ydAorCisKK2RlZiB1cGRhdGUodGVzdHNfcm9vdCwgICMg
dHlwZTogc3RyCisgICAgICAgICAgIG1hbmlmZXN0LCAgIyB0eXBlOiBNYW5pZmVzdAorICAgICAg
ICAgICBtYW5pZmVzdF9wYXRoPU5vbmUsICAjIHR5cGU6IE9wdGlvbmFsW3N0cl0KKyAgICAgICAg
ICAgd29ya2luZ19jb3B5PVRydWUsICAjIHR5cGU6IGJvb2wKKyAgICAgICAgICAgY2FjaGVfcm9v
dD1Ob25lLCAgIyB0eXBlOiBPcHRpb25hbFtzdHJdCisgICAgICAgICAgIHJlYnVpbGQ9RmFsc2Ug
ICMgdHlwZTogYm9vbAorICAgICAgICAgICApOgorICAgICMgdHlwZTogKC4uLikgLT4gYm9vbAor
ICAgIGxvZ2dlci53YXJuaW5nKCJEZXByZWNhdGVkOyB1c2UgbWFuaWZlc3QubG9hZF9hbmRfdXBk
YXRlIGluc3RlYWQiKQogICAgIGxvZ2dlci5pbmZvKCJVcGRhdGluZyBtYW5pZmVzdCIpCi0gICAg
dHJlZSA9IE5vbmUKLSAgICBpZiBub3Qgd29ya2luZ19jb3B5OgotICAgICAgICB0cmVlID0gdmNz
LkdpdC5mb3JfcGF0aCh0ZXN0c19yb290LCBtYW5pZmVzdC51cmxfYmFzZSkKLSAgICBpZiB0cmVl
IGlzIE5vbmU6Ci0gICAgICAgIHRyZWUgPSB2Y3MuRmlsZVN5c3RlbSh0ZXN0c19yb290LCBtYW5p
ZmVzdC51cmxfYmFzZSkKIAorICAgIHRyZWUgPSB2Y3MuZ2V0X3RyZWUodGVzdHNfcm9vdCwgbWFu
aWZlc3QsIG1hbmlmZXN0X3BhdGgsIGNhY2hlX3Jvb3QsCisgICAgICAgICAgICAgICAgICAgICAg
ICB3b3JraW5nX2NvcHksIHJlYnVpbGQpCiAgICAgcmV0dXJuIG1hbmlmZXN0LnVwZGF0ZSh0cmVl
KQogCiAKIGRlZiB1cGRhdGVfZnJvbV9jbGkoKiprd2FyZ3MpOgorICAgICMgdHlwZTogKCoqQW55
KSAtPiBOb25lCiAgICAgdGVzdHNfcm9vdCA9IGt3YXJnc1sidGVzdHNfcm9vdCJdCiAgICAgcGF0
aCA9IGt3YXJnc1sicGF0aCJdCiAgICAgYXNzZXJ0IHRlc3RzX3Jvb3QgaXMgbm90IE5vbmUKIAot
ICAgIG0gPSBOb25lCi0KLSAgICBpZiBrd2FyZ3NbImRvd25sb2FkIl06CisgICAgaWYgbm90IGt3
YXJnc1sicmVidWlsZCJdIGFuZCBrd2FyZ3NbImRvd25sb2FkIl06CiAgICAgICAgIGRvd25sb2Fk
X2Zyb21fZ2l0aHViKHBhdGgsIHRlc3RzX3Jvb3QpCiAKLSAgICBpZiBub3Qga3dhcmdzLmdldCgi
cmVidWlsZCIsIEZhbHNlKToKLSAgICAgICAgdHJ5OgotICAgICAgICAgICAgbSA9IG1hbmlmZXN0
LmxvYWQodGVzdHNfcm9vdCwgcGF0aCkKLSAgICAgICAgZXhjZXB0IG1hbmlmZXN0Lk1hbmlmZXN0
VmVyc2lvbk1pc21hdGNoOgotICAgICAgICAgICAgbG9nZ2VyLmluZm8oIk1hbmlmZXN0IHZlcnNp
b24gY2hhbmdlZCwgcmVidWlsZGluZyIpCi0gICAgICAgICAgICBtID0gTm9uZQotCi0gICAgaWYg
bSBpcyBOb25lOgotICAgICAgICBtID0gbWFuaWZlc3QuTWFuaWZlc3Qoa3dhcmdzWyJ1cmxfYmFz
ZSJdKQotCi0gICAgY2hhbmdlZCA9IHVwZGF0ZSh0ZXN0c19yb290LAotICAgICAgICAgICAgICAg
ICAgICAgbSwKLSAgICAgICAgICAgICAgICAgICAgIHdvcmtpbmdfY29weT1rd2FyZ3NbIndvcmsi
XSkKLSAgICBpZiBjaGFuZ2VkOgotICAgICAgICBtYW5pZmVzdC53cml0ZShtLCBwYXRoKQorICAg
IG1hbmlmZXN0LmxvYWRfYW5kX3VwZGF0ZSh0ZXN0c19yb290LAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBwYXRoLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrd2FyZ3NbInVy
bF9iYXNlIl0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVwZGF0ZT1UcnVlLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICByZWJ1aWxkPWt3YXJnc1sicmVidWlsZCJdLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBjYWNoZV9yb290PWt3YXJnc1siY2FjaGVfcm9vdCJd
KQogCiAKIGRlZiBhYnNfcGF0aChwYXRoKToKKyAgICAjIHR5cGU6IChzdHIpIC0+IHN0cgogICAg
IHJldHVybiBvcy5wYXRoLmFic3BhdGgob3MucGF0aC5leHBhbmR1c2VyKHBhdGgpKQogCiAKIGRl
ZiBjcmVhdGVfcGFyc2VyKCk6CisgICAgIyB0eXBlOiAoKSAtPiBhcmdwYXJzZS5Bcmd1bWVudFBh
cnNlcgogICAgIHBhcnNlciA9IGFyZ3BhcnNlLkFyZ3VtZW50UGFyc2VyKCkKICAgICBwYXJzZXIu
YWRkX2FyZ3VtZW50KAogICAgICAgICAiLXAiLCAiLS1wYXRoIiwgdHlwZT1hYnNfcGF0aCwgaGVs
cD0iUGF0aCB0byBtYW5pZmVzdCBmaWxlLiIpCkBAIC02NCwzNyArNjksMjcgQEAgZGVmIGNyZWF0
ZV9wYXJzZXIoKToKICAgICBwYXJzZXIuYWRkX2FyZ3VtZW50KAogICAgICAgICAiLXIiLCAiLS1y
ZWJ1aWxkIiwgYWN0aW9uPSJzdG9yZV90cnVlIiwgZGVmYXVsdD1GYWxzZSwKICAgICAgICAgaGVs
cD0iRm9yY2UgYSBmdWxsIHJlYnVpbGQgb2YgdGhlIG1hbmlmZXN0LiIpCi0gICAgcGFyc2VyLmFk
ZF9hcmd1bWVudCgKLSAgICAgICAgIi0td29yayIsIGFjdGlvbj0ic3RvcmVfdHJ1ZSIsIGRlZmF1
bHQ9RmFsc2UsCi0gICAgICAgIGhlbHA9IkJ1aWxkIGZyb20gdGhlIHdvcmtpbmcgdHJlZSByYXRo
ZXIgdGhhbiB0aGUgbGF0ZXN0IGNvbW1pdCIpCiAgICAgcGFyc2VyLmFkZF9hcmd1bWVudCgKICAg
ICAgICAgIi0tdXJsLWJhc2UiLCBhY3Rpb249InN0b3JlIiwgZGVmYXVsdD0iLyIsCiAgICAgICAg
IGhlbHA9IkJhc2UgdXJsIHRvIHVzZSBhcyB0aGUgbW91bnQgcG9pbnQgZm9yIHRlc3RzIGluIHRo
aXMgbWFuaWZlc3QuIikKICAgICBwYXJzZXIuYWRkX2FyZ3VtZW50KAogICAgICAgICAiLS1uby1k
b3dubG9hZCIsIGRlc3Q9ImRvd25sb2FkIiwgYWN0aW9uPSJzdG9yZV9mYWxzZSIsIGRlZmF1bHQ9
VHJ1ZSwKICAgICAgICAgaGVscD0iTmV2ZXIgYXR0ZW1wdCB0byBkb3dubG9hZCB0aGUgbWFuaWZl
c3QuIikKKyAgICBwYXJzZXIuYWRkX2FyZ3VtZW50KAorICAgICAgICAiLS1jYWNoZS1yb290Iiwg
YWN0aW9uPSJzdG9yZSIsIGRlZmF1bHQ9b3MucGF0aC5qb2luKHdwdF9yb290LCAiLndwdGNhY2hl
IiksCisgICAgICAgIGhlbHA9IlBhdGggaW4gd2hpY2ggdG8gc3RvcmUgYW55IGNhY2hlcyAoZGVm
YXVsdCA8dGVzdHNfcm9vdD4vLndwdGNhY2hlLykiKQogICAgIHJldHVybiBwYXJzZXIKIAogCi1k
ZWYgZmluZF90b3BfcmVwbygpOgotICAgIHBhdGggPSBoZXJlCi0gICAgcnYgPSBOb25lCi0gICAg
d2hpbGUgcGF0aCAhPSAiLyI6Ci0gICAgICAgIGlmIHZjcy5pc19naXRfcmVwbyhwYXRoKToKLSAg
ICAgICAgICAgIHJ2ID0gcGF0aAotICAgICAgICBwYXRoID0gb3MucGF0aC5hYnNwYXRoKG9zLnBh
dGguam9pbihwYXRoLCBvcy5wYXJkaXIpKQotCi0gICAgcmV0dXJuIHJ2Ci0KLQotZGVmIHJ1bigq
Kmt3YXJncyk6CitkZWYgcnVuKCphcmdzLCAqKmt3YXJncyk6CisgICAgIyB0eXBlOiAoKkFueSwg
KipBbnkpIC0+IE5vbmUKICAgICBpZiBrd2FyZ3NbInBhdGgiXSBpcyBOb25lOgogICAgICAgICBr
d2FyZ3NbInBhdGgiXSA9IG9zLnBhdGguam9pbihrd2FyZ3NbInRlc3RzX3Jvb3QiXSwgIk1BTklG
RVNULmpzb24iKQotCiAgICAgdXBkYXRlX2Zyb21fY2xpKCoqa3dhcmdzKQogCiAKIGRlZiBtYWlu
KCk6CisgICAgIyB0eXBlOiAoKSAtPiBOb25lCiAgICAgb3B0cyA9IGNyZWF0ZV9wYXJzZXIoKS5w
YXJzZV9hcmdzKCkKIAogICAgIHJ1bigqKnZhcnMob3B0cykpCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL21hbmlmZXN0L3V0aWxz
LnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9t
YW5pZmVzdC91dGlscy5weQppbmRleCBkOWJlNzUwZTQxNjkzNTU1MGU0NDQyODEyYjUyNTMxYzcw
OTE5MGJkLi4yZWVkNzlmNDI3OWQwZWM3OGM2OTNmNjMyYjk2ZTM2Y2UzYzk2ZmE5IDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL21h
bmlmZXN0L3V0aWxzLnB5CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvbWFuaWZlc3QvdXRpbHMucHkKQEAgLTEsMTAgKzEsMzAgQEAKLWltcG9y
dCBwbGF0Zm9ybQogaW1wb3J0IG9zCitpbXBvcnQgcGxhdGZvcm0KK2ltcG9ydCBzdWJwcm9jZXNz
CiAKIGZyb20gc2l4IGltcG9ydCBCeXRlc0lPCiAKK01ZUFkgPSBGYWxzZQoraWYgTVlQWToKKyAg
ICAjIE1ZUFkgaXMgc2V0IHRvIFRydWUgd2hlbiBydW4gdW5kZXIgTXlweS4KKyAgICBmcm9tIHR5
cGluZyBpbXBvcnQgVGV4dAorICAgIGZyb20gdHlwaW5nIGltcG9ydCBDYWxsYWJsZQorICAgIGZy
b20gdHlwaW5nIGltcG9ydCBBbnlTdHIKKyAgICBmcm9tIHR5cGluZyBpbXBvcnQgQW55CisgICAg
ZnJvbSB0eXBpbmcgaW1wb3J0IEJpbmFyeUlPCisgICAgZnJvbSB0eXBpbmcgaW1wb3J0IEdlbmVy
aWMKKyAgICBmcm9tIHR5cGluZyBpbXBvcnQgVHlwZVZhcgorICAgIGZyb20gdHlwaW5nIGltcG9y
dCBPcHRpb25hbAorICAgIFQgPSBUeXBlVmFyKCJUIikKK2Vsc2U6CisgICAgIyBld3csIGV3dywg
ZXd3d3cKKyAgICBHZW5lcmljID0ge30KKyAgICBUID0gb2JqZWN0KCkKKyAgICBHZW5lcmljW1Rd
ID0gb2JqZWN0CisKIGRlZiByZWxfcGF0aF90b191cmwocmVsX3BhdGgsIHVybF9iYXNlPSIvIik6
Ci0gICAgYXNzZXJ0IG5vdCBvcy5wYXRoLmlzYWJzKHJlbF9wYXRoKQorICAgICMgdHlwZTogKGJ5
dGVzLCBUZXh0KSAtPiBUZXh0CisgICAgYXNzZXJ0IG5vdCBvcy5wYXRoLmlzYWJzKHJlbF9wYXRo
KSwgcmVsX3BhdGgKICAgICBpZiB1cmxfYmFzZVswXSAhPSAiLyI6CiAgICAgICAgIHVybF9iYXNl
ID0gIi8iICsgdXJsX2Jhc2UKICAgICBpZiB1cmxfYmFzZVstMV0gIT0gIi8iOgpAQCAtMTMsMzkg
KzMzLDc0IEBAIGRlZiByZWxfcGF0aF90b191cmwocmVsX3BhdGgsIHVybF9iYXNlPSIvIik6CiAK
IAogZGVmIGZyb21fb3NfcGF0aChwYXRoKToKKyAgICAjIHR5cGU6IChBbnlTdHIpIC0+IEFueVN0
cgogICAgIGFzc2VydCBvcy5wYXRoLnNlcCA9PSAiLyIgb3IgcGxhdGZvcm0uc3lzdGVtKCkgPT0g
IldpbmRvd3MiCi0gICAgcnYgPSBwYXRoLnJlcGxhY2Uob3MucGF0aC5zZXAsICIvIikKKyAgICBp
ZiAiLyIgPT0gb3MucGF0aC5zZXA6CisgICAgICAgIHJ2ID0gcGF0aAorICAgIGVsc2U6CisgICAg
ICAgIHJ2ID0gcGF0aC5yZXBsYWNlKG9zLnBhdGguc2VwLCAiLyIpCiAgICAgaWYgIlxcIiBpbiBy
djoKICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigicGF0aCBjb250YWlucyBcXCB3aGVuIHNlcGFy
YXRvciBpcyAlcyIgJSBvcy5wYXRoLnNlcCkKICAgICByZXR1cm4gcnYKIAogCiBkZWYgdG9fb3Nf
cGF0aChwYXRoKToKKyAgICAjIHR5cGU6IChBbnlTdHIpIC0+IEFueVN0cgogICAgIGFzc2VydCBv
cy5wYXRoLnNlcCA9PSAiLyIgb3IgcGxhdGZvcm0uc3lzdGVtKCkgPT0gIldpbmRvd3MiCiAgICAg
aWYgIlxcIiBpbiBwYXRoOgogICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJub3JtYWxpc2VkIHBh
dGggY29udGFpbnMgXFwiKQorICAgIGlmICIvIiA9PSBvcy5wYXRoLnNlcDoKKyAgICAgICAgcmV0
dXJuIHBhdGgKICAgICByZXR1cm4gcGF0aC5yZXBsYWNlKCIvIiwgb3MucGF0aC5zZXApCiAKIAot
Y2xhc3MgQ29udGV4dE1hbmFnZXJCeXRlc0lPKEJ5dGVzSU8pOgorZGVmIGdpdChwYXRoKToKKyAg
ICAjIHR5cGU6IChieXRlcykgLT4gT3B0aW9uYWxbQ2FsbGFibGVbLi4uLCBieXRlc11dCisgICAg
ZGVmIGdpdGZ1bmMoY21kLCAqYXJncyk6CisgICAgICAgICMgdHlwZTogKGJ5dGVzLCAqYnl0ZXMp
IC0+IGJ5dGVzCisgICAgICAgIGZ1bGxfY21kID0gWyJnaXQiLCBjbWRdICsgbGlzdChhcmdzKQor
ICAgICAgICB0cnk6CisgICAgICAgICAgICByZXR1cm4gc3VicHJvY2Vzcy5jaGVja19vdXRwdXQo
ZnVsbF9jbWQsIGN3ZD1wYXRoLCBzdGRlcnI9c3VicHJvY2Vzcy5TVERPVVQpCisgICAgICAgIGV4
Y2VwdCBFeGNlcHRpb24gYXMgZToKKyAgICAgICAgICAgIGlmIHBsYXRmb3JtLnVuYW1lKClbMF0g
PT0gIldpbmRvd3MiIGFuZCBpc2luc3RhbmNlKGUsIFdpbmRvd3NFcnJvcik6CisgICAgICAgICAg
ICAgICAgZnVsbF9jbWRbMF0gPSAiZ2l0LmJhdCIKKyAgICAgICAgICAgICAgICByZXR1cm4gc3Vi
cHJvY2Vzcy5jaGVja19vdXRwdXQoZnVsbF9jbWQsIGN3ZD1wYXRoLCBzdGRlcnI9c3VicHJvY2Vz
cy5TVERPVVQpCisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgIHJhaXNlCisKKyAg
ICB0cnk6CisgICAgICAgICMgdGhpcyBuZWVkcyB0byBiZSBhIGNvbW1hbmQgdGhhdCBmYWlscyBp
ZiB3ZSBhcmVuJ3QgaW4gYSBnaXQgcmVwbworICAgICAgICBnaXRmdW5jKCJyZXYtcGFyc2UiLCAi
LS1zaG93LXRvcGxldmVsIikKKyAgICBleGNlcHQgKHN1YnByb2Nlc3MuQ2FsbGVkUHJvY2Vzc0Vy
cm9yLCBPU0Vycm9yKToKKyAgICAgICAgcmV0dXJuIE5vbmUKKyAgICBlbHNlOgorICAgICAgICBy
ZXR1cm4gZ2l0ZnVuYworCisKK2NsYXNzIENvbnRleHRNYW5hZ2VyQnl0ZXNJTyhCeXRlc0lPKTog
ICMgdHlwZTogaWdub3JlCiAgICAgZGVmIF9fZW50ZXJfXyhzZWxmKToKLSAgICAgICAgcmV0dXJu
IHNlbGYKKyAgICAgICAgIyB0eXBlOiAoKSAtPiBCaW5hcnlJTworICAgICAgICByZXR1cm4gc2Vs
ZiAgIyB0eXBlOiBpZ25vcmUKIAogICAgIGRlZiBfX2V4aXRfXyhzZWxmLCAqYXJncywgKiprd2Fy
Z3MpOgorICAgICAgICAjIHR5cGU6ICgqQW55LCAqKkFueSkgLT4gYm9vbAogICAgICAgICBzZWxm
LmNsb3NlKCkKKyAgICAgICAgcmV0dXJuIFRydWUKIAogCi1jbGFzcyBjYWNoZWRfcHJvcGVydHko
b2JqZWN0KToKK2NsYXNzIGNhY2hlZF9wcm9wZXJ0eShHZW5lcmljW1RdKToKICAgICBkZWYgX19p
bml0X18oc2VsZiwgZnVuYyk6CisgICAgICAgICMgdHlwZTogKENhbGxhYmxlW1tBbnldLCBUXSkg
LT4gTm9uZQogICAgICAgICBzZWxmLmZ1bmMgPSBmdW5jCiAgICAgICAgIHNlbGYuX19kb2NfXyA9
IGdldGF0dHIoZnVuYywgIl9fZG9jX18iKQogICAgICAgICBzZWxmLm5hbWUgPSBmdW5jLl9fbmFt
ZV9fCiAKICAgICBkZWYgX19nZXRfXyhzZWxmLCBvYmosIGNscz1Ob25lKToKKyAgICAgICAgIyB0
eXBlOiAoQW55LCBPcHRpb25hbFt0eXBlXSkgLT4gVAogICAgICAgICBpZiBvYmogaXMgTm9uZToK
LSAgICAgICAgICAgIHJldHVybiBzZWxmCisgICAgICAgICAgICByZXR1cm4gc2VsZiAgIyB0eXBl
OiBpZ25vcmUKIAotICAgICAgICBpZiBzZWxmLm5hbWUgbm90IGluIG9iai5fX2RpY3RfXzoKLSAg
ICAgICAgICAgIG9iai5fX2RpY3RfX1tzZWxmLm5hbWVdID0gc2VsZi5mdW5jKG9iaikKLSAgICAg
ICAgICAgIG9iai5fX2RpY3RfXy5zZXRkZWZhdWx0KCJfX2NhY2hlZF9wcm9wZXJ0aWVzX18iLCBz
ZXQoKSkuYWRkKHNlbGYubmFtZSkKLSAgICAgICAgcmV0dXJuIG9iai5fX2RpY3RfX1tzZWxmLm5h
bWVdCisgICAgICAgICMgd2UgY2FuIHVuY29uZGl0aW9uYWxseSBhc3NpZ24gYXMgbmV4dCB0aW1l
IHRoaXMgd29uJ3QgYmUgY2FsbGVkCisgICAgICAgIGFzc2VydCBzZWxmLm5hbWUgbm90IGluIG9i
ai5fX2RpY3RfXworICAgICAgICBydiA9IG9iai5fX2RpY3RfX1tzZWxmLm5hbWVdID0gc2VsZi5m
dW5jKG9iaikKKyAgICAgICAgcmV0dXJuIHJ2CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL21hbmlmZXN0L3Zjcy5weSBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvbWFuaWZlc3QvdmNz
LnB5CmluZGV4IDQyZTk4NjM3MTJmNDFkNWNmZGY5Mjc5NTEzOTMxYjFjYmU0N2Y5OGIuLmQ0ZjQ3
ZjZiZjBhYjM1YzlkYTUxNGVkYjRjNGI3Nzk2NDRmZjkwZGQgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvbWFuaWZlc3QvdmNzLnB5
CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
bWFuaWZlc3QvdmNzLnB5CkBAIC0xLDk2ICsxLDMxNiBAQAoraW1wb3J0IGFiYworaW1wb3J0IGpz
b24KIGltcG9ydCBvcwotaW1wb3J0IHN1YnByb2Nlc3MKK2ltcG9ydCBzdGF0Citmcm9tIGNvbGxl
Y3Rpb25zIGltcG9ydCBkZXF1ZQorZnJvbSBjb2xsZWN0aW9ucyBpbXBvcnQgTXV0YWJsZU1hcHBp
bmcKKworZnJvbSBzaXggaW1wb3J0IHdpdGhfbWV0YWNsYXNzLCBQWTIKIAogZnJvbSAuc291cmNl
ZmlsZSBpbXBvcnQgU291cmNlRmlsZQorZnJvbSAudXRpbHMgaW1wb3J0IGdpdAogCit0cnk6Cisg
ICAgZnJvbSAuLmdpdGlnbm9yZSBpbXBvcnQgZ2l0aWdub3JlCitleGNlcHQgVmFsdWVFcnJvcjoK
KyAgICAjIHJlbGF0aXZlIGltcG9ydCBiZXlvbmQgdG9wbGV2ZWwgdGhyb3dzICpWYWx1ZUVycm9y
KiEKKyAgICBmcm9tIGdpdGlnbm9yZSBpbXBvcnQgZ2l0aWdub3JlICAjIHR5cGU6IGlnbm9yZQog
Ci1jbGFzcyBHaXQob2JqZWN0KToKLSAgICBkZWYgX19pbml0X18oc2VsZiwgcmVwb19yb290LCB1
cmxfYmFzZSk6Ci0gICAgICAgIHNlbGYucm9vdCA9IG9zLnBhdGguYWJzcGF0aChyZXBvX3Jvb3Qp
Ci0gICAgICAgIHNlbGYuZ2l0ID0gR2l0LmdldF9mdW5jKHJlcG9fcm9vdCkKLSAgICAgICAgc2Vs
Zi51cmxfYmFzZSA9IHVybF9iYXNlCiAKLSAgICBAc3RhdGljbWV0aG9kCi0gICAgZGVmIGdldF9m
dW5jKHJlcG9fcGF0aCk6Ci0gICAgICAgIGRlZiBnaXQoY21kLCAqYXJncyk6Ci0gICAgICAgICAg
ICBmdWxsX2NtZCA9IFsiZ2l0IiwgY21kXSArIGxpc3QoYXJncykKLSAgICAgICAgICAgIHRyeToK
LSAgICAgICAgICAgICAgICByZXR1cm4gc3VicHJvY2Vzcy5jaGVja19vdXRwdXQoZnVsbF9jbWQs
IGN3ZD1yZXBvX3BhdGgsIHN0ZGVycj1zdWJwcm9jZXNzLlNURE9VVCkKLSAgICAgICAgICAgIGV4
Y2VwdCBXaW5kb3dzRXJyb3I6Ci0gICAgICAgICAgICAgICAgZnVsbF9jbWRbMF0gPSAiZ2l0LmJh
dCIKLSAgICAgICAgICAgICAgICByZXR1cm4gc3VicHJvY2Vzcy5jaGVja19vdXRwdXQoZnVsbF9j
bWQsIGN3ZD1yZXBvX3BhdGgsIHN0ZGVycj1zdWJwcm9jZXNzLlNURE9VVCkKLSAgICAgICAgcmV0
dXJuIGdpdAotCi0gICAgQGNsYXNzbWV0aG9kCi0gICAgZGVmIGZvcl9wYXRoKGNscywgcGF0aCwg
dXJsX2Jhc2UpOgotICAgICAgICBnaXQgPSBHaXQuZ2V0X2Z1bmMocGF0aCkKK01ZUFkgPSBGYWxz
ZQoraWYgTVlQWToKKyAgICAjIE1ZUFkgaXMgc2V0IHRvIFRydWUgd2hlbiBydW4gdW5kZXIgTXlw
eS4KKyAgICBmcm9tIHR5cGluZyBpbXBvcnQgRGljdCwgT3B0aW9uYWwsIExpc3QsIFNldCwgVGV4
dCwgSXRlcmFibGUsIEFueSwgVHVwbGUsIFVuaW9uLCBJdGVyYXRvcgorICAgIGZyb20gLm1hbmlm
ZXN0IGltcG9ydCBNYW5pZmVzdCAgIyBjeWNsaWMgaW1wb3J0IHVuZGVyIE1ZUFkgZ3VhcmQKKyAg
ICBpZiBQWTI6CisgICAgICAgIHN0YXRfcmVzdWx0ID0gQW55CisgICAgZWxzZToKKyAgICAgICAg
c3RhdF9yZXN1bHQgPSBvcy5zdGF0X3Jlc3VsdAorCisKK2RlZiBnZXRfdHJlZSh0ZXN0c19yb290
LCBtYW5pZmVzdCwgbWFuaWZlc3RfcGF0aCwgY2FjaGVfcm9vdCwKKyAgICAgICAgICAgICB3b3Jr
aW5nX2NvcHk9VHJ1ZSwgcmVidWlsZD1GYWxzZSk6CisgICAgIyB0eXBlOiAoYnl0ZXMsIE1hbmlm
ZXN0LCBPcHRpb25hbFtieXRlc10sIE9wdGlvbmFsW2J5dGVzXSwgYm9vbCwgYm9vbCkgLT4gRmls
ZVN5c3RlbQorICAgIHRyZWUgPSBOb25lCisgICAgaWYgY2FjaGVfcm9vdCBpcyBOb25lOgorICAg
ICAgICBjYWNoZV9yb290ID0gb3MucGF0aC5qb2luKHRlc3RzX3Jvb3QsIGIiLndwdGNhY2hlIikK
KyAgICBpZiBub3Qgb3MucGF0aC5leGlzdHMoY2FjaGVfcm9vdCk6CiAgICAgICAgIHRyeToKLSAg
ICAgICAgICAgIHJldHVybiBjbHMoZ2l0KCJyZXYtcGFyc2UiLCAiLS1zaG93LXRvcGxldmVsIiku
cnN0cmlwKCksIHVybF9iYXNlKQotICAgICAgICBleGNlcHQgc3VicHJvY2Vzcy5DYWxsZWRQcm9j
ZXNzRXJyb3I6Ci0gICAgICAgICAgICByZXR1cm4gTm9uZQorICAgICAgICAgICAgb3MubWFrZWRp
cnMoY2FjaGVfcm9vdCkKKyAgICAgICAgZXhjZXB0IElPRXJyb3I6CisgICAgICAgICAgICBjYWNo
ZV9yb290ID0gTm9uZQorCisgICAgaWYgbm90IHdvcmtpbmdfY29weToKKyAgICAgICAgcmFpc2Ug
VmFsdWVFcnJvcigid29ya2luZ19jb3B5PUZhbHNlIHVuc3VwcG9ydGVkIikKKworICAgIGlmIHRy
ZWUgaXMgTm9uZToKKyAgICAgICAgdHJlZSA9IEZpbGVTeXN0ZW0odGVzdHNfcm9vdCwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgbWFuaWZlc3QudXJsX2Jhc2UsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgIG1hbmlmZXN0X3BhdGg9bWFuaWZlc3RfcGF0aCwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgY2FjaGVfcGF0aD1jYWNoZV9yb290LAorICAgICAgICAgICAgICAgICAgICAgICAg
ICByZWJ1aWxkPXJlYnVpbGQpCisgICAgcmV0dXJuIHRyZWUKKworCitjbGFzcyBHaXRIYXNoZXIo
b2JqZWN0KToKKyAgICBkZWYgX19pbml0X18oc2VsZiwgcGF0aCk6CisgICAgICAgICMgdHlwZTog
KGJ5dGVzKSAtPiBOb25lCisgICAgICAgIHNlbGYuZ2l0ID0gZ2l0KHBhdGgpCiAKICAgICBkZWYg
X2xvY2FsX2NoYW5nZXMoc2VsZik6Ci0gICAgICAgIGNoYW5nZXMgPSB7fQotICAgICAgICBjbWQg
PSBbInN0YXR1cyIsICIteiIsICItLWlnbm9yZS1zdWJtb2R1bGVzPWFsbCJdCisgICAgICAgICMg
dHlwZTogKCkgLT4gU2V0W2J5dGVzXQorICAgICAgICAiIiJnZXQgYSBzZXQgb2YgZmlsZXMgd2hp
Y2ggaGF2ZSBjaGFuZ2VkIGJldHdlZW4gSEVBRCBhbmQgd29ya2luZyBjb3B5IiIiCisgICAgICAg
IGFzc2VydCBzZWxmLmdpdCBpcyBub3QgTm9uZQorICAgICAgICAjIG5vdGUgdGhhdCBnaXQgcnVu
cyB0aGUgY29tbWFuZCB3aXRoIHRlc3RzX3Jvb3QgYXMgdGhlIGN3ZCwgd2hpY2ggbWF5CisgICAg
ICAgICMgbm90IGJlIHRoZSByb290IG9mIHRoZSBnaXQgcmVwbyAoZS5nLiwgd2l0aGluIGEgYnJv
d3NlciByZXBvKQorICAgICAgICBjbWQgPSBbYiJkaWZmLWluZGV4IiwgYiItLXJlbGF0aXZlIiwg
YiItLW5vLXJlbmFtZXMiLCBiIi0tbmFtZS1vbmx5IiwgYiIteiIsIGIiSEVBRCJdCiAgICAgICAg
IGRhdGEgPSBzZWxmLmdpdCgqY21kKQorICAgICAgICByZXR1cm4gc2V0KGRhdGEuc3BsaXQoYiJc
MCIpKQogCi0gICAgICAgIGlmIGRhdGEgPT0gIiI6Ci0gICAgICAgICAgICByZXR1cm4gY2hhbmdl
cworICAgIGRlZiBoYXNoX2NhY2hlKHNlbGYpOgorICAgICAgICAjIHR5cGU6ICgpIC0+IERpY3Rb
Ynl0ZXMsIE9wdGlvbmFsW2J5dGVzXV0KKyAgICAgICAgIiIiCisgICAgICAgIEEgZGljdCBvZiBy
ZWxfcGF0aCAtPiBjdXJyZW50IGdpdCBvYmplY3QgaWQgaWYgdGhlIHdvcmtpbmcgdHJlZSBtYXRj
aGVzIEhFQUQgZWxzZSBOb25lCisgICAgICAgICIiIgorICAgICAgICBoYXNoX2NhY2hlID0ge30g
ICMgdHlwZTogRGljdFtieXRlcywgT3B0aW9uYWxbYnl0ZXNdXQogCi0gICAgICAgIHJlbmFtZV9k
YXRhID0gTm9uZQotICAgICAgICBmb3IgZW50cnkgaW4gZGF0YS5zcGxpdCgiXDAiKVs6LTFdOgot
ICAgICAgICAgICAgaWYgcmVuYW1lX2RhdGEgaXMgbm90IE5vbmU6Ci0gICAgICAgICAgICAgICAg
c3RhdHVzLCByZWxfcGF0aCA9IGVudHJ5LnNwbGl0KCIgIikKLSAgICAgICAgICAgICAgICBpZiBz
dGF0dXNbMF0gPT0gIlIiOgotICAgICAgICAgICAgICAgICAgICByZW5hbWVfZGF0YSA9IChyZWxf
cGF0aCwgc3RhdHVzKQotICAgICAgICAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAgICAgICAg
IGNoYW5nZXNbcmVsX3BhdGhdID0gKHN0YXR1cywgTm9uZSkKLSAgICAgICAgICAgIGVsc2U6Ci0g
ICAgICAgICAgICAgICAgcmVsX3BhdGggPSBlbnRyeQotICAgICAgICAgICAgICAgIGNoYW5nZXNb
cmVsX3BhdGhdID0gcmVuYW1lX2RhdGEKLSAgICAgICAgICAgICAgICByZW5hbWVfZGF0YSA9IE5v
bmUKLSAgICAgICAgcmV0dXJuIGNoYW5nZXMKKyAgICAgICAgaWYgc2VsZi5naXQgaXMgTm9uZToK
KyAgICAgICAgICAgIHJldHVybiBoYXNoX2NhY2hlCiAKLSAgICBkZWYgX3Nob3dfZmlsZShzZWxm
LCBwYXRoKToKLSAgICAgICAgcGF0aCA9IG9zLnBhdGgucmVscGF0aChvcy5wYXRoLmFic3BhdGgo
cGF0aCksIHNlbGYucm9vdCkKLSAgICAgICAgcmV0dXJuIHNlbGYuZ2l0KCJzaG93IiwgIkhFQUQ6
JXMiICUgcGF0aCkKLQotICAgIGRlZiBfX2l0ZXJfXyhzZWxmKToKKyAgICAgICAgIyBub3RlIHRo
YXQgZ2l0IHJ1bnMgdGhlIGNvbW1hbmQgd2l0aCB0ZXN0c19yb290IGFzIHRoZSBjd2QsIHdoaWNo
IG1heQorICAgICAgICAjIG5vdCBiZSB0aGUgcm9vdCBvZiB0aGUgZ2l0IHJlcG8gKGUuZy4sIHdp
dGhpbiBhIGJyb3dzZXIgcmVwbykKICAgICAgICAgY21kID0gWyJscy10cmVlIiwgIi1yIiwgIi16
IiwgIkhFQUQiXQogICAgICAgICBsb2NhbF9jaGFuZ2VzID0gc2VsZi5fbG9jYWxfY2hhbmdlcygp
Ci0gICAgICAgIGZvciByZXN1bHQgaW4gc2VsZi5naXQoKmNtZCkuc3BsaXQoIlwwIilbOi0xXToK
LSAgICAgICAgICAgIHJlbF9wYXRoID0gcmVzdWx0LnNwbGl0KCJcdCIpWy0xXQotICAgICAgICAg
ICAgaGFzaCA9IHJlc3VsdC5zcGxpdCgpWzJdCi0gICAgICAgICAgICBpZiBub3Qgb3MucGF0aC5p
c2Rpcihvcy5wYXRoLmpvaW4oc2VsZi5yb290LCByZWxfcGF0aCkpOgotICAgICAgICAgICAgICAg
IGlmIHJlbF9wYXRoIGluIGxvY2FsX2NoYW5nZXM6Ci0gICAgICAgICAgICAgICAgICAgIGNvbnRl
bnRzID0gc2VsZi5fc2hvd19maWxlKHJlbF9wYXRoKQotICAgICAgICAgICAgICAgIGVsc2U6Ci0g
ICAgICAgICAgICAgICAgICAgIGNvbnRlbnRzID0gTm9uZQotICAgICAgICAgICAgICAgIHlpZWxk
IFNvdXJjZUZpbGUoc2VsZi5yb290LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
cmVsX3BhdGgsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnVybF9iYXNl
LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFzaCwKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGNvbnRlbnRzPWNvbnRlbnRzKQorICAgICAgICBmb3IgcmVzdWx0
IGluIHNlbGYuZ2l0KCpjbWQpLnNwbGl0KGIiXDAiKVs6LTFdOiAgIyB0eXBlOiBieXRlcworICAg
ICAgICAgICAgZGF0YSwgcmVsX3BhdGggPSByZXN1bHQucnNwbGl0KGIiXHQiLCAxKQorICAgICAg
ICAgICAgaGFzaF9jYWNoZVtyZWxfcGF0aF0gPSBOb25lIGlmIHJlbF9wYXRoIGluIGxvY2FsX2No
YW5nZXMgZWxzZSBkYXRhLnNwbGl0KGIiICIsIDMpWzJdCisKKyAgICAgICAgcmV0dXJuIGhhc2hf
Y2FjaGUKKwogCiAKIGNsYXNzIEZpbGVTeXN0ZW0ob2JqZWN0KToKLSAgICBkZWYgX19pbml0X18o
c2VsZiwgcm9vdCwgdXJsX2Jhc2UpOgotICAgICAgICBzZWxmLnJvb3QgPSByb290CisgICAgZGVm
IF9faW5pdF9fKHNlbGYsIHJvb3QsIHVybF9iYXNlLCBjYWNoZV9wYXRoLCBtYW5pZmVzdF9wYXRo
PU5vbmUsIHJlYnVpbGQ9RmFsc2UpOgorICAgICAgICAjIHR5cGU6IChieXRlcywgVGV4dCwgT3B0
aW9uYWxbYnl0ZXNdLCBPcHRpb25hbFtieXRlc10sIGJvb2wpIC0+IE5vbmUKKyAgICAgICAgc2Vs
Zi5yb290ID0gb3MucGF0aC5hYnNwYXRoKHJvb3QpCiAgICAgICAgIHNlbGYudXJsX2Jhc2UgPSB1
cmxfYmFzZQotICAgICAgICBmcm9tIGdpdGlnbm9yZSBpbXBvcnQgZ2l0aWdub3JlCi0gICAgICAg
IHNlbGYucGF0aF9maWx0ZXIgPSBnaXRpZ25vcmUuUGF0aEZpbHRlcihzZWxmLnJvb3QsIGV4dHJh
cz1bIi5naXQvIl0pCisgICAgICAgIHNlbGYuaWdub3JlX2NhY2hlID0gTm9uZQorICAgICAgICBz
ZWxmLm10aW1lX2NhY2hlID0gTm9uZQorICAgICAgICBpZiBjYWNoZV9wYXRoIGlzIG5vdCBOb25l
OgorICAgICAgICAgICAgaWYgbWFuaWZlc3RfcGF0aCBpcyBub3QgTm9uZToKKyAgICAgICAgICAg
ICAgICBzZWxmLm10aW1lX2NhY2hlID0gTXRpbWVDYWNoZShjYWNoZV9wYXRoLCByb290LCBtYW5p
ZmVzdF9wYXRoLCByZWJ1aWxkKQorICAgICAgICAgICAgaWYgZ2l0aWdub3JlLmhhc19pZ25vcmUo
cm9vdCk6CisgICAgICAgICAgICAgICAgc2VsZi5pZ25vcmVfY2FjaGUgPSBHaXRJZ25vcmVDYWNo
ZShjYWNoZV9wYXRoLCByb290LCByZWJ1aWxkKQorICAgICAgICBzZWxmLnBhdGhfZmlsdGVyID0g
Z2l0aWdub3JlLlBhdGhGaWx0ZXIoc2VsZi5yb290LAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgZXh0cmFzPVsiLmdpdC8iXSwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhY2hlPXNlbGYuaWdub3JlX2NhY2hl
KQorICAgICAgICBnaXQgPSBHaXRIYXNoZXIocm9vdCkKKyAgICAgICAgaWYgZ2l0IGlzIG5vdCBO
b25lOgorICAgICAgICAgICAgc2VsZi5oYXNoX2NhY2hlID0gZ2l0Lmhhc2hfY2FjaGUoKQorICAg
ICAgICBlbHNlOgorICAgICAgICAgICAgc2VsZi5oYXNoX2NhY2hlID0ge30KIAogICAgIGRlZiBf
X2l0ZXJfXyhzZWxmKToKLSAgICAgICAgcGF0aHMgPSBzZWxmLmdldF9wYXRocygpCi0gICAgICAg
IGZvciBwYXRoIGluIHBhdGhzOgotICAgICAgICAgICAgeWllbGQgU291cmNlRmlsZShzZWxmLnJv
b3QsIHBhdGgsIHNlbGYudXJsX2Jhc2UpCi0KLSAgICBkZWYgZ2V0X3BhdGhzKHNlbGYpOgotICAg
ICAgICBmb3IgZGlycGF0aCwgZGlybmFtZXMsIGZpbGVuYW1lcyBpbiBvcy53YWxrKHNlbGYucm9v
dCk6Ci0gICAgICAgICAgICBmb3IgZmlsZW5hbWUgaW4gZmlsZW5hbWVzOgotICAgICAgICAgICAg
ICAgIHBhdGggPSBvcy5wYXRoLnJlbHBhdGgob3MucGF0aC5qb2luKGRpcnBhdGgsIGZpbGVuYW1l
KSwgc2VsZi5yb290KQotICAgICAgICAgICAgICAgIGlmIHNlbGYucGF0aF9maWx0ZXIocGF0aCk6
Ci0gICAgICAgICAgICAgICAgICAgIHlpZWxkIHBhdGgKLQotICAgICAgICAgICAgZGlybmFtZXNb
Ol0gPSBbaXRlbSBmb3IgaXRlbSBpbiBkaXJuYW1lcyBpZiBzZWxmLnBhdGhfZmlsdGVyKAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgb3MucGF0aC5yZWxwYXRoKG9zLnBhdGguam9pbihkaXJw
YXRoLCBpdGVtKSwgc2VsZi5yb290KSArICIvIildCisgICAgICAgICMgdHlwZTogKCkgLT4gSXRl
cmF0b3JbVHVwbGVbVW5pb25bYnl0ZXMsIFNvdXJjZUZpbGVdLCBib29sXV0KKyAgICAgICAgbXRp
bWVfY2FjaGUgPSBzZWxmLm10aW1lX2NhY2hlCisgICAgICAgIGZvciBkaXJwYXRoLCBkaXJuYW1l
cywgZmlsZW5hbWVzIGluIHNlbGYucGF0aF9maWx0ZXIod2FsayhzZWxmLnJvb3QpKToKKyAgICAg
ICAgICAgIGZvciBmaWxlbmFtZSwgcGF0aF9zdGF0IGluIGZpbGVuYW1lczoKKyAgICAgICAgICAg
ICAgICBwYXRoID0gb3MucGF0aC5qb2luKGRpcnBhdGgsIGZpbGVuYW1lKQorICAgICAgICAgICAg
ICAgIGlmIG10aW1lX2NhY2hlIGlzIE5vbmUgb3IgbXRpbWVfY2FjaGUudXBkYXRlZChwYXRoLCBw
YXRoX3N0YXQpOgorICAgICAgICAgICAgICAgICAgICBoYXNoID0gc2VsZi5oYXNoX2NhY2hlLmdl
dChwYXRoLCBOb25lKQorICAgICAgICAgICAgICAgICAgICB5aWVsZCBTb3VyY2VGaWxlKHNlbGYu
cm9vdCwgcGF0aCwgc2VsZi51cmxfYmFzZSwgaGFzaCksIFRydWUKKyAgICAgICAgICAgICAgICBl
bHNlOgorICAgICAgICAgICAgICAgICAgICB5aWVsZCBwYXRoLCBGYWxzZQorCisgICAgZGVmIGR1
bXBfY2FjaGVzKHNlbGYpOgorICAgICAgICAjIHR5cGU6ICgpIC0+IE5vbmUKKyAgICAgICAgZm9y
IGNhY2hlIGluIFtzZWxmLm10aW1lX2NhY2hlLCBzZWxmLmlnbm9yZV9jYWNoZV06CisgICAgICAg
ICAgICBpZiBjYWNoZSBpcyBub3QgTm9uZToKKyAgICAgICAgICAgICAgICBjYWNoZS5kdW1wKCkK
KworCitjbGFzcyBDYWNoZUZpbGUod2l0aF9tZXRhY2xhc3MoYWJjLkFCQ01ldGEpKToKKyAgICBk
ZWYgX19pbml0X18oc2VsZiwgY2FjaGVfcm9vdCwgdGVzdHNfcm9vdCwgcmVidWlsZD1GYWxzZSk6
CisgICAgICAgICMgdHlwZTogKGJ5dGVzLCBieXRlcywgYm9vbCkgLT4gTm9uZQorICAgICAgICBz
ZWxmLnRlc3RzX3Jvb3QgPSB0ZXN0c19yb290CisgICAgICAgIGlmIG5vdCBvcy5wYXRoLmV4aXN0
cyhjYWNoZV9yb290KToKKyAgICAgICAgICAgIG9zLm1ha2VkaXJzKGNhY2hlX3Jvb3QpCisgICAg
ICAgIHNlbGYucGF0aCA9IG9zLnBhdGguam9pbihjYWNoZV9yb290LCBzZWxmLmZpbGVfbmFtZSkK
KyAgICAgICAgc2VsZi5tb2RpZmllZCA9IEZhbHNlCisgICAgICAgIHNlbGYuZGF0YSA9IHNlbGYu
bG9hZChyZWJ1aWxkKQorCisgICAgQGFiYy5hYnN0cmFjdHByb3BlcnR5CisgICAgZGVmIGZpbGVf
bmFtZShzZWxmKToKKyAgICAgICAgIyB0eXBlOiAoKSAtPiBieXRlcworICAgICAgICBwYXNzCisK
KyAgICBkZWYgZHVtcChzZWxmKToKKyAgICAgICAgIyB0eXBlOiAoKSAtPiBOb25lCisgICAgICAg
IGlmIG5vdCBzZWxmLm1vZGlmaWVkOgorICAgICAgICAgICAgcmV0dXJuCisgICAgICAgIHdpdGgg
b3BlbihzZWxmLnBhdGgsICd3JykgYXMgZjoKKyAgICAgICAgICAgIGpzb24uZHVtcChzZWxmLmRh
dGEsIGYsIGluZGVudD0xKQorCisgICAgZGVmIGxvYWQoc2VsZiwgcmVidWlsZD1GYWxzZSk6Cisg
ICAgICAgICMgdHlwZTogKGJvb2wpIC0+IERpY3RbQW55LCBBbnldCisgICAgICAgIGRhdGEgPSB7
fSAgIyB0eXBlOiBEaWN0W0FueSwgQW55XQorICAgICAgICB0cnk6CisgICAgICAgICAgICBpZiBu
b3QgcmVidWlsZDoKKyAgICAgICAgICAgICAgICB3aXRoIG9wZW4oc2VsZi5wYXRoLCAncicpIGFz
IGY6CisgICAgICAgICAgICAgICAgICAgIHRyeToKKyAgICAgICAgICAgICAgICAgICAgICAgIGRh
dGEgPSBqc29uLmxvYWQoZikKKyAgICAgICAgICAgICAgICAgICAgZXhjZXB0IFZhbHVlRXJyb3I6
CisgICAgICAgICAgICAgICAgICAgICAgICBwYXNzCisgICAgICAgICAgICAgICAgZGF0YSA9IHNl
bGYuY2hlY2tfdmFsaWQoZGF0YSkKKyAgICAgICAgZXhjZXB0IElPRXJyb3I6CisgICAgICAgICAg
ICBwYXNzCisgICAgICAgIHJldHVybiBkYXRhCisKKyAgICBkZWYgY2hlY2tfdmFsaWQoc2VsZiwg
ZGF0YSk6CisgICAgICAgICMgdHlwZTogKERpY3RbQW55LCBBbnldKSAtPiBEaWN0W0FueSwgQW55
XQorICAgICAgICAiIiJDaGVjayBpZiB0aGUgY2FjaGVkIGRhdGEgaXMgdmFsaWQgYW5kIHJldHVy
biBhbiB1cGRhdGVkIGNvcHkgb2YgdGhlCisgICAgICAgIGNhY2hlIGNvbnRhaW5pbmcgb25seSBk
YXRhIHRoYXQgY2FuIGJlIHVzZWQuIiIiCisgICAgICAgIHJldHVybiBkYXRhCisKKworY2xhc3Mg
TXRpbWVDYWNoZShDYWNoZUZpbGUpOgorICAgIGZpbGVfbmFtZSA9IGIibXRpbWUuanNvbiIKKwor
ICAgIGRlZiBfX2luaXRfXyhzZWxmLCBjYWNoZV9yb290LCB0ZXN0c19yb290LCBtYW5pZmVzdF9w
YXRoLCByZWJ1aWxkPUZhbHNlKToKKyAgICAgICAgIyB0eXBlOiAoYnl0ZXMsIGJ5dGVzLCBieXRl
cywgYm9vbCkgLT4gTm9uZQorICAgICAgICBzZWxmLm1hbmlmZXN0X3BhdGggPSBtYW5pZmVzdF9w
YXRoCisgICAgICAgIHN1cGVyKE10aW1lQ2FjaGUsIHNlbGYpLl9faW5pdF9fKGNhY2hlX3Jvb3Qs
IHRlc3RzX3Jvb3QsIHJlYnVpbGQpCisKKyAgICBkZWYgdXBkYXRlZChzZWxmLCByZWxfcGF0aCwg
c3RhdCk6CisgICAgICAgICMgdHlwZTogKGJ5dGVzLCBzdGF0X3Jlc3VsdCkgLT4gYm9vbAorICAg
ICAgICAiIiJSZXR1cm4gYSBib29sZWFuIGluZGljYXRpbmcgd2hldGhlciB0aGUgZmlsZSBjaGFu
Z2VkIHNpbmNlIHRoZSBjYWNoZSB3YXMgbGFzdCB1cGRhdGVkLgorCisgICAgICAgIFRoaXMgaW1w
bGljaXRseSB1cGRhdGVzIHRoZSBjYWNoZSB3aXRoIHRoZSBuZXcgbXRpbWUgZGF0YS4iIiIKKyAg
ICAgICAgbXRpbWUgPSBzdGF0LnN0X210aW1lCisgICAgICAgIGlmIG10aW1lICE9IHNlbGYuZGF0
YS5nZXQocmVsX3BhdGgpOgorICAgICAgICAgICAgc2VsZi5tb2RpZmllZCA9IFRydWUKKyAgICAg
ICAgICAgIHNlbGYuZGF0YVtyZWxfcGF0aF0gPSBtdGltZQorICAgICAgICAgICAgcmV0dXJuIFRy
dWUKKyAgICAgICAgcmV0dXJuIEZhbHNlCisKKyAgICBkZWYgY2hlY2tfdmFsaWQoc2VsZiwgZGF0
YSk6CisgICAgICAgICMgdHlwZTogKERpY3RbQW55LCBBbnldKSAtPiBEaWN0W0FueSwgQW55XQor
ICAgICAgICBpZiBkYXRhLmdldCgiL3Rlc3RzX3Jvb3QiKSAhPSBzZWxmLnRlc3RzX3Jvb3Q6Cisg
ICAgICAgICAgICBzZWxmLm1vZGlmaWVkID0gVHJ1ZQorICAgICAgICBlbHNlOgorICAgICAgICAg
ICAgaWYgc2VsZi5tYW5pZmVzdF9wYXRoIGlzIG5vdCBOb25lIGFuZCBvcy5wYXRoLmV4aXN0cyhz
ZWxmLm1hbmlmZXN0X3BhdGgpOgorICAgICAgICAgICAgICAgIG10aW1lID0gb3MucGF0aC5nZXRt
dGltZShzZWxmLm1hbmlmZXN0X3BhdGgpCisgICAgICAgICAgICAgICAgaWYgZGF0YS5nZXQoIi9t
YW5pZmVzdF9wYXRoIikgIT0gW3NlbGYubWFuaWZlc3RfcGF0aCwgbXRpbWVdOgorICAgICAgICAg
ICAgICAgICAgICBzZWxmLm1vZGlmaWVkID0gVHJ1ZQorICAgICAgICAgICAgZWxzZToKKyAgICAg
ICAgICAgICAgICBzZWxmLm1vZGlmaWVkID0gVHJ1ZQorICAgICAgICBpZiBzZWxmLm1vZGlmaWVk
OgorICAgICAgICAgICAgZGF0YSA9IHt9CisgICAgICAgICAgICBkYXRhWyIvdGVzdHNfcm9vdCJd
ID0gc2VsZi50ZXN0c19yb290CisgICAgICAgIHJldHVybiBkYXRhCisKKyAgICBkZWYgZHVtcChz
ZWxmKToKKyAgICAgICAgIyB0eXBlOiAoKSAtPiBOb25lCisgICAgICAgIGlmIHNlbGYubWFuaWZl
c3RfcGF0aCBpcyBOb25lOgorICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcgorICAgICAgICBp
ZiBub3Qgb3MucGF0aC5leGlzdHMoc2VsZi5tYW5pZmVzdF9wYXRoKToKKyAgICAgICAgICAgIHJl
dHVybgorICAgICAgICBtdGltZSA9IG9zLnBhdGguZ2V0bXRpbWUoc2VsZi5tYW5pZmVzdF9wYXRo
KQorICAgICAgICBzZWxmLmRhdGFbIi9tYW5pZmVzdF9wYXRoIl0gPSBbc2VsZi5tYW5pZmVzdF9w
YXRoLCBtdGltZV0KKyAgICAgICAgc2VsZi5kYXRhWyIvdGVzdHNfcm9vdCJdID0gc2VsZi50ZXN0
c19yb290CisgICAgICAgIHN1cGVyKE10aW1lQ2FjaGUsIHNlbGYpLmR1bXAoKQorCisKK2NsYXNz
IEdpdElnbm9yZUNhY2hlKENhY2hlRmlsZSwgTXV0YWJsZU1hcHBpbmcpOiAgIyB0eXBlOiBpZ25v
cmUKKyAgICBmaWxlX25hbWUgPSBiImdpdGlnbm9yZS5qc29uIgorCisgICAgZGVmIGNoZWNrX3Zh
bGlkKHNlbGYsIGRhdGEpOgorICAgICAgICAjIHR5cGU6IChEaWN0W0FueSwgQW55XSkgLT4gRGlj
dFtBbnksIEFueV0KKyAgICAgICAgaWdub3JlX3BhdGggPSBvcy5wYXRoLmpvaW4oc2VsZi50ZXN0
c19yb290LCBiIi5naXRpZ25vcmUiKQorICAgICAgICBtdGltZSA9IG9zLnBhdGguZ2V0bXRpbWUo
aWdub3JlX3BhdGgpCisgICAgICAgIGlmIGRhdGEuZ2V0KGIiL2dpdGlnbm9yZV9maWxlIikgIT0g
W2lnbm9yZV9wYXRoLCBtdGltZV06CisgICAgICAgICAgICBzZWxmLm1vZGlmaWVkID0gVHJ1ZQor
ICAgICAgICAgICAgZGF0YSA9IHt9CisgICAgICAgICAgICBkYXRhW2IiL2dpdGlnbm9yZV9maWxl
Il0gPSBbaWdub3JlX3BhdGgsIG10aW1lXQorICAgICAgICByZXR1cm4gZGF0YQorCisgICAgZGVm
IF9fY29udGFpbnNfXyhzZWxmLCBrZXkpOgorICAgICAgICAjIHR5cGU6IChBbnkpIC0+IGJvb2wK
KyAgICAgICAgcmV0dXJuIGtleSBpbiBzZWxmLmRhdGEKKworICAgIGRlZiBfX2dldGl0ZW1fXyhz
ZWxmLCBrZXkpOgorICAgICAgICAjIHR5cGU6IChieXRlcykgLT4gYm9vbAorICAgICAgICB2ID0g
c2VsZi5kYXRhW2tleV0KKyAgICAgICAgYXNzZXJ0IGlzaW5zdGFuY2UodiwgYm9vbCkKKyAgICAg
ICAgcmV0dXJuIHYKKworICAgIGRlZiBfX3NldGl0ZW1fXyhzZWxmLCBrZXksIHZhbHVlKToKKyAg
ICAgICAgIyB0eXBlOiAoYnl0ZXMsIGJvb2wpIC0+IE5vbmUKKyAgICAgICAgaWYgc2VsZi5kYXRh
LmdldChrZXkpICE9IHZhbHVlOgorICAgICAgICAgICAgc2VsZi5tb2RpZmllZCA9IFRydWUKKyAg
ICAgICAgICAgIHNlbGYuZGF0YVtrZXldID0gdmFsdWUKKworICAgIGRlZiBfX2RlbGl0ZW1fXyhz
ZWxmLCBrZXkpOgorICAgICAgICAjIHR5cGU6IChieXRlcykgLT4gTm9uZQorICAgICAgICBkZWwg
c2VsZi5kYXRhW2tleV0KKworICAgIGRlZiBfX2l0ZXJfXyhzZWxmKToKKyAgICAgICAgIyB0eXBl
OiAoKSAtPiBJdGVyYXRvcltieXRlc10KKyAgICAgICAgcmV0dXJuIGl0ZXIoc2VsZi5kYXRhKQor
CisgICAgZGVmIF9fbGVuX18oc2VsZik6CisgICAgICAgICMgdHlwZTogKCkgLT4gaW50CisgICAg
ICAgIHJldHVybiBsZW4oc2VsZi5kYXRhKQorCisKK2RlZiB3YWxrKHJvb3QpOgorICAgICMgdHlw
ZTogKGJ5dGVzKSAtPiBJdGVyYWJsZVtUdXBsZVtieXRlcywgTGlzdFtUdXBsZVtieXRlcywgc3Rh
dF9yZXN1bHRdXSwgTGlzdFtUdXBsZVtieXRlcywgc3RhdF9yZXN1bHRdXV1dCisgICAgIiIiUmUt
aW1wbGVtZW50YXRpb24gb2Ygb3Mud2Fsay4gUmV0dXJucyBhbiBpdGVyYXRvciBvdmVyCisgICAg
KGRpcnBhdGgsIGRpcm5hbWVzLCBmaWxlbmFtZXMpLCB3aXRoIHNvbWUgc2VtYW50aWMgZGlmZmVy
ZW5jZXMKKyAgICB0byBvcy53YWxrLgorCisgICAgVGhpcyBoYXMgYSBzaW1pbGFyIGludGVyZmFj
ZSB0byBvcy53YWxrLCB3aXRoIHRoZSBpbXBvcnRhbnQgZGlmZmVyZW5jZQorICAgIHRoYXQgaW5z
dGVhZCBvZiBsaXN0cyBvZiBmaWxlbmFtZXMgYW5kIGRpcmVjdG9yeSBuYW1lcywgaXQgeWllbGRz
CisgICAgbGlzdHMgb2YgdHVwbGVzIG9mIHRoZSBmb3JtIFsobmFtZSwgc3RhdCldIHdoZXJlIHN0
YXQgaXMgdGhlIHJlc3VsdCBvZgorICAgIG9zLnN0YXQgZm9yIHRoZSBmaWxlLiBUaGF0IGFsbG93
cyByZXVzaW5nIHRoZSBzYW1lIHN0YXQgZGF0YSBpbiB0aGUKKyAgICBjYWxsZXIuIEl0IGFsc28g
YWx3YXlzIHJldHVybnMgdGhlIGRpcnBhdGggcmVsYXRpdmUgdG8gdGhlIHJvb3QsIHdpdGgKKyAg
ICB0aGUgcm9vdCBpc2VsZiBiZWluZyByZXR1cm5lZCBhcyB0aGUgZW1wdHkgc3RyaW5nLgorCisg
ICAgVW5saWtlIG9zLndhbGsgdGhlIGltcGxlbWVudGF0aW9uIGlzIG5vdCByZWN1cnNpdmUuIiIi
CisKKyAgICBnZXRfc3RhdCA9IG9zLnN0YXQKKyAgICBpc19kaXIgPSBzdGF0LlNfSVNESVIKKyAg
ICBpc19saW5rID0gc3RhdC5TX0lTTE5LCisgICAgam9pbiA9IG9zLnBhdGguam9pbgorICAgIGxp
c3RkaXIgPSBvcy5saXN0ZGlyCisgICAgcmVscGF0aCA9IG9zLnBhdGgucmVscGF0aAorCisgICAg
cm9vdCA9IG9zLnBhdGguYWJzcGF0aChyb290KQorICAgIHN0YWNrID0gZGVxdWUoWyhyb290LCBi
IiIpXSkKKworICAgIHdoaWxlIHN0YWNrOgorICAgICAgICBkaXJfcGF0aCwgcmVsX3BhdGggPSBz
dGFjay5wb3BsZWZ0KCkKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgIyBOb3RlIHRoYXQgbGlz
dGRpciBhbmQgZXJyb3IgYXJlIGdsb2JhbHMgaW4gdGhpcyBtb2R1bGUgZHVlCisgICAgICAgICAg
ICAjIHRvIGVhcmxpZXIgaW1wb3J0LSouCisgICAgICAgICAgICBuYW1lcyA9IGxpc3RkaXIoZGly
X3BhdGgpCisgICAgICAgIGV4Y2VwdCBPU0Vycm9yOgorICAgICAgICAgICAgY29udGludWUKKwor
ICAgICAgICBkaXJzLCBub25fZGlycyA9IFtdLCBbXQorICAgICAgICBmb3IgbmFtZSBpbiBuYW1l
czoKKyAgICAgICAgICAgIHBhdGggPSBqb2luKGRpcl9wYXRoLCBuYW1lKQorICAgICAgICAgICAg
dHJ5OgorICAgICAgICAgICAgICAgIHBhdGhfc3RhdCA9IGdldF9zdGF0KHBhdGgpCisgICAgICAg
ICAgICBleGNlcHQgT1NFcnJvcjoKKyAgICAgICAgICAgICAgICBjb250aW51ZQorICAgICAgICAg
ICAgaWYgaXNfZGlyKHBhdGhfc3RhdC5zdF9tb2RlKToKKyAgICAgICAgICAgICAgICBkaXJzLmFw
cGVuZCgobmFtZSwgcGF0aF9zdGF0KSkKKyAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAg
ICAgbm9uX2RpcnMuYXBwZW5kKChuYW1lLCBwYXRoX3N0YXQpKQorCisgICAgICAgIHlpZWxkIHJl
bF9wYXRoLCBkaXJzLCBub25fZGlycworICAgICAgICBmb3IgbmFtZSwgcGF0aF9zdGF0IGluIGRp
cnM6CisgICAgICAgICAgICBuZXdfcGF0aCA9IGpvaW4oZGlyX3BhdGgsIG5hbWUpCisgICAgICAg
ICAgICBpZiBub3QgaXNfbGluayhwYXRoX3N0YXQuc3RfbW9kZSk6CisgICAgICAgICAgICAgICAg
c3RhY2suYXBwZW5kKChuZXdfcGF0aCwgcmVscGF0aChuZXdfcGF0aCwgcm9vdCkpKQpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9t
YW5pZmVzdC93M2MtaW1wb3J0LmxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvbWFuaWZlc3QvdzNjLWltcG9ydC5sb2cKaW5kZXggNWY1ZjI4MzRj
MDMwNDViNWRmMTBjNTdhZmQ1MDY3OTQwMWYyM2MwMi4uOTgxYmJlNmNkMGI1NTkyZTQzMzk5Mzdm
Y2ZiNmQyNDdiODRkMmM0NyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy9tYW5pZmVzdC93M2MtaW1wb3J0LmxvZworKysgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL21hbmlmZXN0L3cz
Yy1pbXBvcnQubG9nCkBAIC0yOSw2ICsyOSw3IEBAIExpc3Qgb2YgZmlsZXM6CiAvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9tYW5pZmVzdC9tYW5pZmVz
dC5weWMKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L21hbmlmZXN0L3NvdXJjZWZpbGUucHkKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL21hbmlmZXN0L3NvdXJjZWZpbGUucHljCisvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9tYW5pZmVzdC90ZXN0cGF0aHMu
cHkKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL21h
bmlmZXN0L3VwZGF0ZS5weQogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvbWFuaWZlc3QvdXBkYXRlLnB5YwogL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvbWFuaWZlc3QvdXRpbHMucHkKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvbXlweS5p
bmkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL215
cHkuaW5pCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLmFjOGVkZDM3ZDNhYzI5MDQxMzNhMTJlZTllNzU1MGRkNWE0ODcy
MzgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL215cHkuaW5pCkBAIC0wLDAgKzEsMzQgQEAKK1tteXB5XQorI2NoZWNr
X3VudHlwZWRfZGVmcyA9IFRydWUKK2Rpc2FsbG93X3VudHlwZWRfZGVmcyA9IFRydWUKK2Rpc2Fs
bG93X2FueV9nZW5lcmljcyA9IFRydWUKK2Rpc2FsbG93X2luY29tcGxldGVfZGVmcyA9IFRydWUK
K2Rpc2FsbG93X3N1YmNsYXNzaW5nX2FueSA9IFRydWUKK2Rpc2FsbG93X3VudHlwZWRfY2FsbHMg
PSBUcnVlCitkaXNhbGxvd191bnR5cGVkX2RlY29yYXRvcnMgPSBUcnVlCitub19pbXBsaWNpdF9v
cHRpb25hbCA9IFRydWUKK3dhcm5fcmVkdW5kYW50X2Nhc3RzID0gVHJ1ZQord2Fybl9yZXR1cm5f
YW55ID0gVHJ1ZQord2Fybl91bnVzZWRfY29uZmlncyA9IFRydWUKK3dhcm5fdW51c2VkX2lnbm9y
ZXMgPSBUcnVlCisKK1tteXB5LWh0bWw1bGliLipdCitpZ25vcmVfbWlzc2luZ19pbXBvcnRzID0g
VHJ1ZQorCitbbXlweS1oeXBvdGhlc2lzLipdCitpZ25vcmVfbWlzc2luZ19pbXBvcnRzID0gVHJ1
ZQorCitbbXlweS1weXRlc3QuKl0KK2lnbm9yZV9taXNzaW5nX2ltcG9ydHMgPSBUcnVlCisKK1tt
eXB5LXpzdGFuZGFyZC4qXQoraWdub3JlX21pc3NpbmdfaW1wb3J0cyA9IFRydWUKKworW215cHkt
dG9vbHMuZ2l0aWdub3JlLnRlc3RzLipdCitpZ25vcmVfZXJyb3JzID0gVHJ1ZQorCitbbXlweS10
b29scy5tYW5pZmVzdC50ZXN0cy4qXQoraWdub3JlX2Vycm9ycyA9IFRydWUKKworW215cHktdG9v
bHMubGludC50ZXN0cy4qXQoraWdub3JlX2Vycm9ycyA9IFRydWUKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHkyNy1mbGFrZTgu
aW5pIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9w
eTI3LWZsYWtlOC5pbmkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOTkzMjRiMmFhZDE0ZDkyMWY0NjlmNTI5MzRmN2Zm
OTM3NGExZDllZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHkyNy1mbGFrZTguaW5pCkBAIC0wLDAgKzEsMjggQEAK
K1tmbGFrZThdCitzZWxlY3QgPSBFLFcsRixOCisjIEUxMjg6IGNvbnRpbnVhdGlvbiBsaW5lIHVu
ZGVyLWluZGVudGVkIGZvciB2aXN1YWwgaW5kZW50CisjIEUxMjk6IHZpc3VhbGx5IGluZGVudGVk
IGxpbmUgd2l0aCBzYW1lIGluZGVudCBhcyBuZXh0IGxvZ2ljYWwgbGluZQorIyBFMjI2OiBtaXNz
aW5nIHdoaXRlc3BhY2UgYXJvdW5kIGFyaXRobWV0aWMgb3BlcmF0b3IKKyMgRTIzMTogbWlzc2lu
ZyB3aGl0ZXNwYWNlIGFmdGVyIOKAmCzigJksIOKAmDvigJksIG9yIOKAmDrigJkKKyMgRTI1MTog
dW5leHBlY3RlZCBzcGFjZXMgYXJvdW5kIGtleXdvcmQgLyBwYXJhbWV0ZXIgZXF1YWxzCisjIEUy
NjU6IGJsb2NrIGNvbW1lbnQgc2hvdWxkIHN0YXJ0IHdpdGgg4oCYIyDigJgKKyMgRTMwMjogZXhw
ZWN0ZWQgMiBibGFuayBsaW5lcywgZm91bmQgMAorIyBFMzAzOiB0b28gbWFueSBibGFuayBsaW5l
cyAoMykKKyMgRTMwNTogZXhwZWN0ZWQgMiBibGFuayBsaW5lcyBhZnRlciBlbmQgb2YgZnVuY3Rp
b24gb3IgY2xhc3MKKyMgRTQwMjogbW9kdWxlIGxldmVsIGltcG9ydCBub3QgYXQgdG9wIG9mIGZp
bGUKKyMgRTczMTogZG8gbm90IGFzc2lnbiBhIGxhbWJkYSBleHByZXNzaW9uLCB1c2UgYSBkZWYK
KyMgVzUwNDogbGluZSBicmVhayBhZnRlciBiaW5hcnkgb3BlcmF0b3IKKyMgVzYwMTogLmhhc19r
ZXkoKSBpcyBkZXByZWNhdGVkLCB1c2Ug4oCYaW7igJkKKyMgVzYwNTogaW52YWxpZCBlc2NhcGUg
c2VxdWVuY2UKKyMgVzYwNjogJ2FzeW5jJyBhbmQgJ2F3YWl0JyBhcmUgcmVzZXJ2ZWQga2V5d29y
ZHMgc3RhcnRpbmcgd2l0aCBQeXRob24gMy43CisjIE44MDE6IGNsYXNzIG5hbWVzIHNob3VsZCB1
c2UgQ2FwV29yZHMgY29udmVudGlvbgorIyBOODAyOiBmdW5jdGlvbiBuYW1lIHNob3VsZCBiZSBs
b3dlcmNhc2UKKyMgTjgwNjogdmFyaWFibGUgaW4gZnVuY3Rpb24gc2hvdWxkIGJlIGxvd2VyY2Fz
ZQoraWdub3JlID0gRTEyOCxFMTI5LEUyMjYsRTIzMSxFMjUxLEUyNjUsRTMwMixFMzAzLEUzMDUs
RTQwMixFNzMxLFc1MDQsVzYwMSxXNjA1LFc2MDYsTjgwMSxOODAyLE44MDYKK2V4Y2x1ZGUgPQor
ICAgIC50b3gsCisgICAgcHl3ZWJzb2NrZXQsCisgICAgdGhpcmRfcGFydHksCisgICAgd3B0c2Vy
dmUvZG9jcy9jb25mLnB5LAorICAgIHdwdHNlcnZlL3Rlc3RzL2Z1bmN0aW9uYWwvZG9jcm9vdC9p
bnZhbGlkLnB5CittYXgtbGluZS1sZW5ndGggPSAxNDEKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHkzNi1mbGFrZTguaW5pIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weTM2LWZs
YWtlOC5pbmkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uMTRjYzFkYzZmNmE3YWZiNDFmMTJjNDFmYTgyOTMzMzdkMTlh
MDIzYgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvcHkzNi1mbGFrZTguaW5pCkBAIC0wLDAgKzEsMjcgQEAKK1tmbGFr
ZThdCitzZWxlY3QgPSBFLFcsRixOCisjIEUxMjg6IGNvbnRpbnVhdGlvbiBsaW5lIHVuZGVyLWlu
ZGVudGVkIGZvciB2aXN1YWwgaW5kZW50CisjIEUxMjk6IHZpc3VhbGx5IGluZGVudGVkIGxpbmUg
d2l0aCBzYW1lIGluZGVudCBhcyBuZXh0IGxvZ2ljYWwgbGluZQorIyBFMjI2OiBtaXNzaW5nIHdo
aXRlc3BhY2UgYXJvdW5kIGFyaXRobWV0aWMgb3BlcmF0b3IKKyMgRTIzMTogbWlzc2luZyB3aGl0
ZXNwYWNlIGFmdGVyIOKAmCzigJksIOKAmDvigJksIG9yIOKAmDrigJkKKyMgRTI1MTogdW5leHBl
Y3RlZCBzcGFjZXMgYXJvdW5kIGtleXdvcmQgLyBwYXJhbWV0ZXIgZXF1YWxzCisjIEUyNjU6IGJs
b2NrIGNvbW1lbnQgc2hvdWxkIHN0YXJ0IHdpdGgg4oCYIyDigJgKKyMgRTMwMjogZXhwZWN0ZWQg
MiBibGFuayBsaW5lcywgZm91bmQgMAorIyBFMzAzOiB0b28gbWFueSBibGFuayBsaW5lcyAoMykK
KyMgRTMwNTogZXhwZWN0ZWQgMiBibGFuayBsaW5lcyBhZnRlciBlbmQgb2YgZnVuY3Rpb24gb3Ig
Y2xhc3MKKyMgRTQwMjogbW9kdWxlIGxldmVsIGltcG9ydCBub3QgYXQgdG9wIG9mIGZpbGUKKyMg
RTczMTogZG8gbm90IGFzc2lnbiBhIGxhbWJkYSBleHByZXNzaW9uLCB1c2UgYSBkZWYKKyMgVzUw
NDogbGluZSBicmVhayBhZnRlciBiaW5hcnkgb3BlcmF0b3IKKyMgVzYwNTogaW52YWxpZCBlc2Nh
cGUgc2VxdWVuY2UKKyMgTjgwMTogY2xhc3MgbmFtZXMgc2hvdWxkIHVzZSBDYXBXb3JkcyBjb252
ZW50aW9uCisjIE44MDI6IGZ1bmN0aW9uIG5hbWUgc2hvdWxkIGJlIGxvd2VyY2FzZQorIyBOODA2
OiB2YXJpYWJsZSBpbiBmdW5jdGlvbiBzaG91bGQgYmUgbG93ZXJjYXNlCitpZ25vcmUgPSBFMTI4
LEUxMjksRTIyNixFMjMxLEUyNTEsRTI2NSxFMzAyLEUzMDMsRTMwNSxFNDAyLEU3MzEsVzUwNCxX
NjA1LE44MDEsTjgwMixOODA2CitleGNsdWRlID0KKyAgICAudG94LAorICAgIHB5d2Vic29ja2V0
LAorICAgIHRoaXJkX3BhcnR5LAorICAgIHdwdHJ1bm5lciwKKyAgICB3cHRzZXJ2ZS9kb2NzL2Nv
bmYucHksCisgICAgd3B0c2VydmUvdGVzdHMvZnVuY3Rpb25hbC9kb2Nyb290L2ludmFsaWQucHkK
K21heC1saW5lLWxlbmd0aCA9IDE0MQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXRlc3QuaW5pIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXRlc3QuaW5pCmluZGV4IGI1MmU0
NjU1OThhYjk3ZmFhNmI3MTg4NTk2MTdmMjE5NDE0MWZiYjQuLjZiZGI0ZDU2M2Y2ZGQ1MDg2ZWQz
ZTA5NzE1MTg3ZTU0OWVkZjI1NWEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl0ZXN0LmluaQorKysgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5dGVzdC5pbmkKQEAgLTEsMyAr
MSw3IEBACiBbcHl0ZXN0XQogbm9yZWN1cnNlZGlycyA9IC4qIHthcmNofSAqLmVnZyBodG1sNWxp
YiB0aGlyZF9wYXJ0eSBweXdlYnNvY2tldCBzaXggd3B0IHdwdHJ1bm5lcgoteGZhaWxfc3RyaWN0
PXRydWUKK3hmYWlsX3N0cmljdCA9IHRydWUKK2FkZG9wdHMgPSAtLXN0cmljdC1tYXJrZXJzCitt
YXJrZXJzID0KKyAgICBzbG93OiBtYXJrcyB0ZXN0cyBhcyBzbG93IChkZXNlbGVjdCB3aXRoICct
bSAibm90IHNsb3ciJykKKyAgICByZW1vdGVfbmV0d29yawpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9leGFt
cGxlL2VjaG9fY2xpZW50LnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy9weXdlYnNvY2tldC9leGFtcGxlL2VjaG9fY2xpZW50LnB5CmluZGV4IDk0
M2NlNjRlOGI4ODY1NjJmYzY5MjA5ODM0YmY5MmIxMzk5MTQyZjcuLjhhYzc0MGU3MDU4YmQzMWE3
OGJjZjFiMWI4OTdkM2JkZjNmYzdkNGIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvZXhhbXBsZS9lY2hvX2Ns
aWVudC5weQorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3B5d2Vic29ja2V0L2V4YW1wbGUvZWNob19jbGllbnQucHkKQEAgLTUxLDYgKzUxLDcg
QEAgb3IKICMgcnVuIGVjaG8gY2xpZW50IHRvIHRlc3QgSUVURiBIeUJpIDAwIHByb3RvY29sCiAg
cnVuIHdpdGggLS1wcm90b2NvbC12ZXJzaW9uPWh5YmkwMAogIiIiCitmcm9tIF9fZnV0dXJlX18g
aW1wb3J0IHByaW50X2Z1bmN0aW9uCiAKIAogaW1wb3J0IGJhc2U2NApAQCAtNDgzLDcgKzQ4NCw3
IEBAIGNsYXNzIENsaWVudEhhbmRzaGFrZVByb2Nlc3NvcihDbGllbnRIYW5kc2hha2VCYXNlKToK
ICAgICAgICAgICAgIGlmIGNoID09ICdcbic6CiAgICAgICAgICAgICAgICAgYnJlYWsKIAotICAg
ICAgICBtID0gcmUubWF0Y2goJ0hUVFAvXFxkK1wuXFxkKyAoXFxkXFxkXFxkKSAuKlxyXG4nLCBz
dGF0dXNfbGluZSkKKyAgICAgICAgbSA9IHJlLm1hdGNoKCdIVFRQL1xcZCtcXC5cXGQrIChcXGRc
XGRcXGQpIC4qXHJcbicsIHN0YXR1c19saW5lKQogICAgICAgICBpZiBtIGlzIE5vbmU6CiAgICAg
ICAgICAgICByYWlzZSBDbGllbnRIYW5kc2hha2VFcnJvcigKICAgICAgICAgICAgICAgICAnV3Jv
bmcgc3RhdHVzIGxpbmUgZm9ybWF0OiAlcicgJSBzdGF0dXNfbGluZSkKQEAgLTUyNiw3ICs1Mjcs
NyBAQCBjbGFzcyBDbGllbnRIYW5kc2hha2VQcm9jZXNzb3IoQ2xpZW50SGFuZHNoYWtlQmFzZSk6
CiAgICAgICAgICMgVmFsaWRhdGUKICAgICAgICAgdHJ5OgogICAgICAgICAgICAgYmluYXJ5X2Fj
Y2VwdCA9IGJhc2U2NC5iNjRkZWNvZGUoYWNjZXB0KQotICAgICAgICBleGNlcHQgVHlwZUVycm9y
LCBlOgorICAgICAgICBleGNlcHQgVHlwZUVycm9yOgogICAgICAgICAgICAgcmFpc2UgSGFuZHNo
YWtlRXJyb3IoCiAgICAgICAgICAgICAgICAgJ0lsbGVnYWwgdmFsdWUgZm9yIGhlYWRlciAlczog
JXInICUKICAgICAgICAgICAgICAgICAoY29tbW9uLlNFQ19XRUJTT0NLRVRfQUNDRVBUX0hFQURF
UiwgYWNjZXB0KSkKQEAgLTk0MCwxNSArOTQxLDE1IEBAIGNsYXNzIEVjaG9DbGllbnQob2JqZWN0
KToKICAgICAgICAgICAgIGZvciBsaW5lIGluIHNlbGYuX29wdGlvbnMubWVzc2FnZS5zcGxpdCgn
LCcpOgogICAgICAgICAgICAgICAgIHNlbGYuX3N0cmVhbS5zZW5kX21lc3NhZ2UobGluZSkKICAg
ICAgICAgICAgICAgICBpZiBzZWxmLl9vcHRpb25zLnZlcmJvc2U6Ci0gICAgICAgICAgICAgICAg
ICAgIHByaW50ICdTZW5kOiAlcycgJSBsaW5lCisgICAgICAgICAgICAgICAgICAgIHByaW50KCdT
ZW5kOiAlcycgJSBsaW5lKQogICAgICAgICAgICAgICAgIHRyeToKICAgICAgICAgICAgICAgICAg
ICAgcmVjZWl2ZWQgPSBzZWxmLl9zdHJlYW0ucmVjZWl2ZV9tZXNzYWdlKCkKIAogICAgICAgICAg
ICAgICAgICAgICBpZiBzZWxmLl9vcHRpb25zLnZlcmJvc2U6Ci0gICAgICAgICAgICAgICAgICAg
ICAgICBwcmludCAnUmVjdjogJXMnICUgcmVjZWl2ZWQKLSAgICAgICAgICAgICAgICBleGNlcHQg
RXhjZXB0aW9uLCBlOgorICAgICAgICAgICAgICAgICAgICAgICAgcHJpbnQoJ1JlY3Y6ICVzJyAl
IHJlY2VpdmVkKQorICAgICAgICAgICAgICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZToKICAgICAg
ICAgICAgICAgICAgICAgaWYgc2VsZi5fb3B0aW9ucy52ZXJib3NlOgotICAgICAgICAgICAgICAg
ICAgICAgICAgcHJpbnQgJ0Vycm9yOiAlcycgJSBlCisgICAgICAgICAgICAgICAgICAgICAgICBw
cmludCgnRXJyb3I6ICVzJyAlIGUpCiAgICAgICAgICAgICAgICAgICAgIHJhaXNlCiAKICAgICAg
ICAgICAgIHNlbGYuX2RvX2Nsb3NpbmdfaGFuZHNoYWtlKCkKQEAgLTk2NCwxNSArOTY1LDE1IEBA
IGNsYXNzIEVjaG9DbGllbnQob2JqZWN0KToKICAgICAgICAgICAgIHNlbGYuX2xvZ2dlci5pbmZv
KCdXYWl0IGZvciBzZXJ2ZXItaW5pdGlhdGVkIGNsb3NpbmcgaGFuZHNoYWtlJykKICAgICAgICAg
ICAgIG1lc3NhZ2UgPSBzZWxmLl9zdHJlYW0ucmVjZWl2ZV9tZXNzYWdlKCkKICAgICAgICAgICAg
IGlmIG1lc3NhZ2UgaXMgTm9uZToKLSAgICAgICAgICAgICAgICBwcmludCAnUmVjdiBjbG9zZScK
LSAgICAgICAgICAgICAgICBwcmludCAnU2VuZCBhY2snCisgICAgICAgICAgICAgICAgcHJpbnQo
J1JlY3YgY2xvc2UnKQorICAgICAgICAgICAgICAgIHByaW50KCdTZW5kIGFjaycpCiAgICAgICAg
ICAgICAgICAgc2VsZi5fbG9nZ2VyLmluZm8oCiAgICAgICAgICAgICAgICAgICAgICdSZWNlaXZl
ZCBjbG9zaW5nIGhhbmRzaGFrZSBhbmQgc2VudCBhY2snKQogICAgICAgICAgICAgICAgIHJldHVy
bgotICAgICAgICBwcmludCAnU2VuZCBjbG9zZScKKyAgICAgICAgcHJpbnQoJ1NlbmQgY2xvc2Un
KQogICAgICAgICBzZWxmLl9zdHJlYW0uY2xvc2VfY29ubmVjdGlvbigpCiAgICAgICAgIHNlbGYu
X2xvZ2dlci5pbmZvKCdTZW50IGNsb3NpbmcgaGFuZHNoYWtlJykKLSAgICAgICAgcHJpbnQgJ1Jl
Y3YgYWNrJworICAgICAgICBwcmludCgnUmVjdiBhY2snKQogICAgICAgICBzZWxmLl9sb2dnZXIu
aW5mbygnUmVjZWl2ZWQgYWNrJykKIAogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L21vZF9weXdlYnNvY2tl
dC9oYW5kc2hha2UvdzNjLWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L21vZF9weXdlYnNvY2tldC9oYW5kc2hh
a2UvdzNjLWltcG9ydC5sb2cKaW5kZXggZjU3YTQ4YzYyN2JiZDI4MDM2Y2U2YjczN2M2NWFiZDNl
ZDA2YmVjNi4uOTE3NjhmNDg3ZmJjZDhlODI5YjRiNjRlMjQ1MzA1MmUxZjEzM2JmOCAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9w
eXdlYnNvY2tldC9tb2RfcHl3ZWJzb2NrZXQvaGFuZHNoYWtlL3czYy1pbXBvcnQubG9nCisrKyBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJz
b2NrZXQvbW9kX3B5d2Vic29ja2V0L2hhbmRzaGFrZS93M2MtaW1wb3J0LmxvZwpAQCAtMTUsNiAr
MTUsMTAgQEAgTm9uZQogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiBMaXN0IG9mIGZpbGVzOgogL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvbW9k
X3B5d2Vic29ja2V0L2hhbmRzaGFrZS9fX2luaXRfXy5weQorL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvbW9kX3B5d2Vic29ja2V0
L2hhbmRzaGFrZS9fX2luaXRfXy5weWMKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L21vZF9weXdlYnNvY2tldC9oYW5kc2hha2Uv
X2Jhc2UucHkKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3B5d2Vic29ja2V0L21vZF9weXdlYnNvY2tldC9oYW5kc2hha2UvX2Jhc2UucHljCiAvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tl
dC9tb2RfcHl3ZWJzb2NrZXQvaGFuZHNoYWtlL2h5YmkucHkKKy9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L21vZF9weXdlYnNvY2tl
dC9oYW5kc2hha2UvaHliaS5weWMKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L21vZF9weXdlYnNvY2tldC9oYW5kc2hha2UvaHli
aTAwLnB5CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy9weXdlYnNvY2tldC9tb2RfcHl3ZWJzb2NrZXQvaGFuZHNoYWtlL2h5YmkwMC5weWMKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
cHl3ZWJzb2NrZXQvbW9kX3B5d2Vic29ja2V0L2hlYWRlcnBhcnNlcmhhbmRsZXIucHkgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0
L21vZF9weXdlYnNvY2tldC9oZWFkZXJwYXJzZXJoYW5kbGVyLnB5CmluZGV4IGRkYTQzYzlkODE5
N2YyMTc4MDQzMzFmYjFiZTk3MDY1MjgyZTM2NDYuLjA2ZTc2Mzg1OTc5ODVhOTZhNGMwMGVhMDA1
MmEwZDM3MTdlNDQwM2MgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvbW9kX3B5d2Vic29ja2V0L2hlYWRlcnBh
cnNlcmhhbmRsZXIucHkKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy9weXdlYnNvY2tldC9tb2RfcHl3ZWJzb2NrZXQvaGVhZGVycGFyc2VyaGFu
ZGxlci5weQpAQCAtMjAxLDcgKzIwMSw3IEBAIGRlZiBoZWFkZXJwYXJzZXJoYW5kbGVyKHJlcXVl
c3QpOgogICAgICAgICAgICAgcmVxdWVzdC5sb2dfZXJyb3IoCiAgICAgICAgICAgICAgICAgJ21v
ZF9weXdlYnNvY2tldDogRmFsbGJhY2sgdG8gQXBhY2hlJywgYXBhY2hlLkFQTE9HX0lORk8pCiAg
ICAgICAgICAgICByZXR1cm4gYXBhY2hlLkRFQ0xJTkVECi0gICAgZXhjZXB0IGRpc3BhdGNoLkRp
c3BhdGNoRXhjZXB0aW9uLCBlOgorICAgIGV4Y2VwdCBkaXNwYXRjaC5EaXNwYXRjaEV4Y2VwdGlv
biBhcyBlOgogICAgICAgICByZXF1ZXN0LmxvZ19lcnJvcigKICAgICAgICAgICAgICdtb2RfcHl3
ZWJzb2NrZXQ6IERpc3BhdGNoIGZhaWxlZCBmb3IgZXJyb3I6ICVzJyAlIGUsCiAgICAgICAgICAg
ICBhcGFjaGUuQVBMT0dfSU5GTykKQEAgLTIxNywxNCArMjE3LDE0IEBAIGRlZiBoZWFkZXJwYXJz
ZXJoYW5kbGVyKHJlcXVlc3QpOgogICAgICAgICB0cnk6CiAgICAgICAgICAgICBoYW5kc2hha2Uu
ZG9faGFuZHNoYWtlKAogICAgICAgICAgICAgICAgIHJlcXVlc3QsIF9kaXNwYXRjaGVyLCBhbGxv
d0RyYWZ0NzU9YWxsb3dfZHJhZnQ3NSkKLSAgICAgICAgZXhjZXB0IGhhbmRzaGFrZS5WZXJzaW9u
RXhjZXB0aW9uLCBlOgorICAgICAgICBleGNlcHQgaGFuZHNoYWtlLlZlcnNpb25FeGNlcHRpb24g
YXMgZToKICAgICAgICAgICAgIHJlcXVlc3QubG9nX2Vycm9yKAogICAgICAgICAgICAgICAgICdt
b2RfcHl3ZWJzb2NrZXQ6IEhhbmRzaGFrZSBmYWlsZWQgZm9yIHZlcnNpb24gZXJyb3I6ICVzJyAl
IGUsCiAgICAgICAgICAgICAgICAgYXBhY2hlLkFQTE9HX0lORk8pCiAgICAgICAgICAgICByZXF1
ZXN0LmVycl9oZWFkZXJzX291dC5hZGQoY29tbW9uLlNFQ19XRUJTT0NLRVRfVkVSU0lPTl9IRUFE
RVIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZS5zdXBwb3J0ZWRf
dmVyc2lvbnMpCiAgICAgICAgICAgICByZXR1cm4gYXBhY2hlLkhUVFBfQkFEX1JFUVVFU1QKLSAg
ICAgICAgZXhjZXB0IGhhbmRzaGFrZS5IYW5kc2hha2VFeGNlcHRpb24sIGU6CisgICAgICAgIGV4
Y2VwdCBoYW5kc2hha2UuSGFuZHNoYWtlRXhjZXB0aW9uIGFzIGU6CiAgICAgICAgICAgICAjIEhh
bmRzaGFrZSBmb3Igd3Mvd3NzIGZhaWxlZC4KICAgICAgICAgICAgICMgU2VuZCBodHRwIHJlc3Bv
bnNlIHdpdGggZXJyb3Igc3RhdHVzLgogICAgICAgICAgICAgcmVxdWVzdC5sb2dfZXJyb3IoCkBA
IC0yMzUsMTAgKzIzNSwxMCBAQCBkZWYgaGVhZGVycGFyc2VyaGFuZGxlcihyZXF1ZXN0KToKICAg
ICAgICAgaGFuZHNoYWtlX2lzX2RvbmUgPSBUcnVlCiAgICAgICAgIHJlcXVlc3QuX2Rpc3BhdGNo
ZXIgPSBfZGlzcGF0Y2hlcgogICAgICAgICBfZGlzcGF0Y2hlci50cmFuc2Zlcl9kYXRhKHJlcXVl
c3QpCi0gICAgZXhjZXB0IGhhbmRzaGFrZS5BYm9ydGVkQnlVc2VyRXhjZXB0aW9uLCBlOgorICAg
IGV4Y2VwdCBoYW5kc2hha2UuQWJvcnRlZEJ5VXNlckV4Y2VwdGlvbiBhcyBlOgogICAgICAgICBy
ZXF1ZXN0LmxvZ19lcnJvcignbW9kX3B5d2Vic29ja2V0OiBBYm9ydGVkOiAlcycgJSBlLAogICAg
ICAgICAgICAgICAgICAgICAgICAgICBhcGFjaGUuQVBMT0dfSU5GTykKLSAgICBleGNlcHQgRXhj
ZXB0aW9uLCBlOgorICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZToKICAgICAgICAgIyBEaXNwYXRj
aEV4Y2VwdGlvbiBjYW4gYWxzbyBiZSB0aHJvd24gaWYgc29tZXRoaW5nIGlzIHdyb25nIGluCiAg
ICAgICAgICMgcHl3ZWJzb2NrZXQgY29kZS4gSXQncyBjYXVnaHQgaGVyZSwgdGhlbi4KIApkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy9weXdlYnNvY2tldC9tb2RfcHl3ZWJzb2NrZXQvbWVtb3JpemluZ2ZpbGUucHkgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L21v
ZF9weXdlYnNvY2tldC9tZW1vcml6aW5nZmlsZS5weQppbmRleCAwN2JjYmQ1ODc2Y2MzNTUzMjhl
YmY1YzdhOWNkOTg4NTBhYmI4YzZhLi5jN2FmY2MxNTdlZDdhMWQ5NDJjYmY0MzU4YWZhMDQ1NDg0
NmYwMWQ0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L21vZF9weXdlYnNvY2tldC9tZW1vcml6aW5nZmlsZS5w
eQorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3B5d2Vic29ja2V0L21vZF9weXdlYnNvY2tldC9tZW1vcml6aW5nZmlsZS5weQpAQCAtMSw1ICsx
LDMgQEAKLSMhL3Vzci9iaW4vZW52IHB5dGhvbgotIwogIyBDb3B5cmlnaHQgMjAxMSwgR29vZ2xl
IEluYy4KICMgQWxsIHJpZ2h0cyByZXNlcnZlZC4KICMKQEAgLTYyLDcgKzYwLDcgQEAgY2xhc3Mg
TWVtb3JpemluZ0ZpbGUob2JqZWN0KToKIAogICAgIGRlZiBfX2dldGF0dHJpYnV0ZV9fKHNlbGYs
IG5hbWUpOgogICAgICAgICAiIiJSZXR1cm4gYSBmaWxlIGF0dHJpYnV0ZS4KLSAgICAgICAgCisK
ICAgICAgICAgUmV0dXJucyB0aGUgdmFsdWUgb3ZlcnJpZGRlbiBieSB0aGlzIGNsYXNzIGZvciBz
b21lIGF0dHJpYnV0ZXMsCiAgICAgICAgIGFuZCBmb3J3YXJkcyB0aGUgY2FsbCB0byBfZmlsZSBm
b3IgdGhlIG90aGVyIGF0dHJpYnV0ZXMuCiAgICAgICAgICIiIgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9t
b2RfcHl3ZWJzb2NrZXQvc3RhbmRhbG9uZS5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvbW9kX3B5d2Vic29ja2V0L3N0YW5k
YWxvbmUucHkKaW5kZXggODRiMjQ3MGM4Zjk3M2FkNGM0MWJhMTgxNjRhNGNiYzc3YTcxYzc2Ni4u
MmM4Nzg2MDY0ODg5ZTg0ZjExNWE3NTY3OWFiNzFjNzQ0NjZhMGM2MiAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tl
dC9tb2RfcHl3ZWJzb2NrZXQvc3RhbmRhbG9uZS5weQorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L21vZF9weXdlYnNvY2tl
dC9zdGFuZGFsb25lLnB5CkBAIC0zNjksNyArMzY5LDcgQEAgZGVmIF9hbGlhc19oYW5kbGVycyhk
aXNwYXRjaGVyLCB3ZWJzb2NrX2hhbmRsZXJzX21hcF9maWxlKToKICAgICAgICAgZm9yIGxpbmUg
aW4gZnA6CiAgICAgICAgICAgICBpZiBsaW5lWzBdID09ICcjJyBvciBsaW5lLmlzc3BhY2UoKToK
ICAgICAgICAgICAgICAgICBjb250aW51ZQotICAgICAgICAgICAgbSA9IHJlLm1hdGNoKCcoXFMr
KVxzKyhcUyspJywgbGluZSkKKyAgICAgICAgICAgIG0gPSByZS5tYXRjaChyJyhcUyspXHMrKFxT
KyknLCBsaW5lKQogICAgICAgICAgICAgaWYgbm90IG06CiAgICAgICAgICAgICAgICAgbG9nZ2lu
Zy53YXJuaW5nKCdXcm9uZyBmb3JtYXQgaW4gbWFwIGZpbGU6JyArIGxpbmUpCiAgICAgICAgICAg
ICAgICAgY29udGludWUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvbW9kX3B5d2Vic29ja2V0L3czYy1pbXBv
cnQubG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy9weXdlYnNvY2tldC9tb2RfcHl3ZWJzb2NrZXQvdzNjLWltcG9ydC5sb2cKaW5kZXggYmMyM2E1
ZDI4Yjc1YmNkOWM0YTVkZTBjZGM4YmQ1ZDY1Mzc4NTY5YS4uZDMwNWUzMmVkMTAwMmVjZTQwM2Ez
YzQ5NmY2YjVkYWI5ODFlOGUyZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9tb2RfcHl3ZWJzb2NrZXQvdzNj
LWltcG9ydC5sb2cKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy9weXdlYnNvY2tldC9tb2RfcHl3ZWJzb2NrZXQvdzNjLWltcG9ydC5sb2cKQEAg
LTE1LDE5ICsxNSwzNCBAQCBOb25lCiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIExpc3Qgb2YgZmlsZXM6CiAv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNv
Y2tldC9tb2RfcHl3ZWJzb2NrZXQvX19pbml0X18ucHkKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L21vZF9weXdlYnNvY2tldC9f
X2luaXRfXy5weWMKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3B5d2Vic29ja2V0L21vZF9weXdlYnNvY2tldC9fc3RyZWFtX2Jhc2UucHkKKy9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0
L21vZF9weXdlYnNvY2tldC9fc3RyZWFtX2Jhc2UucHljCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9tb2RfcHl3ZWJzb2NrZXQv
X3N0cmVhbV9oaXhpZTc1LnB5CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy9weXdlYnNvY2tldC9tb2RfcHl3ZWJzb2NrZXQvX3N0cmVhbV9oaXhpZTc1
LnB5YwogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
cHl3ZWJzb2NrZXQvbW9kX3B5d2Vic29ja2V0L19zdHJlYW1faHliaS5weQorL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvbW9kX3B5
d2Vic29ja2V0L19zdHJlYW1faHliaS5weWMKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L21vZF9weXdlYnNvY2tldC9jb21tb24u
cHkKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5
d2Vic29ja2V0L21vZF9weXdlYnNvY2tldC9jb21tb24ucHljCiAvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9tb2RfcHl3ZWJzb2Nr
ZXQvZGlzcGF0Y2gucHkKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3B5d2Vic29ja2V0L21vZF9weXdlYnNvY2tldC9kaXNwYXRjaC5weWMKIC9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0
L21vZF9weXdlYnNvY2tldC9leHRlbnNpb25zLnB5CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9tb2RfcHl3ZWJzb2NrZXQvZXh0
ZW5zaW9ucy5weWMKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3B5d2Vic29ja2V0L21vZF9weXdlYnNvY2tldC9mYXN0X21hc2tpbmcuaQogL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQv
bW9kX3B5d2Vic29ja2V0L2hlYWRlcnBhcnNlcmhhbmRsZXIucHkKIC9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L21vZF9weXdlYnNv
Y2tldC9odHRwX2hlYWRlcl91dGlsLnB5CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9tb2RfcHl3ZWJzb2NrZXQvaHR0cF9oZWFk
ZXJfdXRpbC5weWMKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3B5d2Vic29ja2V0L21vZF9weXdlYnNvY2tldC9tZW1vcml6aW5nZmlsZS5weQorL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2Nr
ZXQvbW9kX3B5d2Vic29ja2V0L21lbW9yaXppbmdmaWxlLnB5YwogL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvbW9kX3B5d2Vic29j
a2V0L21zZ3V0aWwucHkKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3B5d2Vic29ja2V0L21vZF9weXdlYnNvY2tldC9tc2d1dGlsLnB5YwogL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQv
bW9kX3B5d2Vic29ja2V0L211eC5weQorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvbW9kX3B5d2Vic29ja2V0L211eC5weWMKIC9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29j
a2V0L21vZF9weXdlYnNvY2tldC9zdGFuZGFsb25lLnB5CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9tb2RfcHl3ZWJzb2NrZXQv
c3RhbmRhbG9uZS5weWMKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3B5d2Vic29ja2V0L21vZF9weXdlYnNvY2tldC9zdHJlYW0ucHkKKy9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L21v
ZF9weXdlYnNvY2tldC9zdHJlYW0ucHljCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9tb2RfcHl3ZWJzb2NrZXQvdXRpbC5weQor
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJz
b2NrZXQvbW9kX3B5d2Vic29ja2V0L3V0aWwucHljCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9tb2RfcHl3ZWJzb2NrZXQveGhy
X2JlbmNobWFya19oYW5kbGVyLnB5CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC9tb2RfcHl3ZWJzb2NrZXQveGhyX2JlbmNobWFy
a19oYW5kbGVyLnB5YwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC90ZXN0L2NsaWVudF9mb3JfdGVzdGluZy5w
eSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3
ZWJzb2NrZXQvdGVzdC9jbGllbnRfZm9yX3Rlc3RpbmcucHkKaW5kZXggYzdmODA1ZWU5NGU1NDk0
NjllZDg3MGRhZTdlMGNjZjIwMjZiZWFiNy4uMThkMTg1NzEyZWVhNDA4YTIzZDI0ZmJjY2UxYWFm
NDkzYTVhYTdlMyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC90ZXN0L2NsaWVudF9mb3JfdGVzdGluZy5weQor
KysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5
d2Vic29ja2V0L3Rlc3QvY2xpZW50X2Zvcl90ZXN0aW5nLnB5CkBAIC0zMTYsNyArMzE2LDcgQEAg
Y2xhc3MgV2ViU29ja2V0SGFuZHNoYWtlKG9iamVjdCk6CiAgICAgICAgICAgICBzZWxmLl9vcHRp
b25zLnNlcnZlcl9wb3J0LAogICAgICAgICAgICAgc2VsZi5fb3B0aW9ucy51c2VfdGxzKSkKIAot
ICAgICAgICBpZiBzZWxmLl9vcHRpb25zLnZlcnNpb24gaXMgODoKKyAgICAgICAgaWYgc2VsZi5f
b3B0aW9ucy52ZXJzaW9uID09IDg6CiAgICAgICAgICAgICBmaWVsZHMuYXBwZW5kKF9zZWNfb3Jp
Z2luX2hlYWRlcihzZWxmLl9vcHRpb25zLm9yaWdpbikpCiAgICAgICAgIGVsc2U6CiAgICAgICAg
ICAgICBmaWVsZHMuYXBwZW5kKF9vcmlnaW5faGVhZGVyKHNlbGYuX29wdGlvbnMub3JpZ2luKSkK
QEAgLTM5OCw3ICszOTgsNyBAQCBjbGFzcyBXZWJTb2NrZXRIYW5kc2hha2Uob2JqZWN0KToKICAg
ICAgICAgIyBWYWxpZGF0ZQogICAgICAgICB0cnk6CiAgICAgICAgICAgICBkZWNvZGVkX2FjY2Vw
dCA9IGJhc2U2NC5iNjRkZWNvZGUoYWNjZXB0KQotICAgICAgICBleGNlcHQgVHlwZUVycm9yLCBl
OgorICAgICAgICBleGNlcHQgVHlwZUVycm9yIGFzIGU6CiAgICAgICAgICAgICByYWlzZSBIYW5k
c2hha2VFeGNlcHRpb24oCiAgICAgICAgICAgICAgICAgJ0lsbGVnYWwgdmFsdWUgZm9yIGhlYWRl
ciBTZWMtV2ViU29ja2V0LUFjY2VwdDogJyArIGFjY2VwdCkKIApAQCAtOTk4LDcgKzk5OCw3IEBA
IGRlZiBjb25uZWN0X3NvY2tldF93aXRoX3JldHJ5KGhvc3QsIHBvcnQsIHRpbWVvdXQsIHVzZV90
bHMsCiAgICAgICAgICAgICBpZiB1c2VfdGxzOgogICAgICAgICAgICAgICAgIHJldHVybiBfVExT
U29ja2V0KHMpCiAgICAgICAgICAgICByZXR1cm4gcwotICAgICAgICBleGNlcHQgc29ja2V0LmVy
cm9yLCBlOgorICAgICAgICBleGNlcHQgc29ja2V0LmVycm9yIGFzIGU6CiAgICAgICAgICAgICBp
ZiBlLmVycm5vICE9IGVycm5vLkVDT05OUkVGVVNFRDoKICAgICAgICAgICAgICAgICByYWlzZQog
ICAgICAgICAgICAgZWxzZToKQEAgLTEwNjMsNyArMTA2Myw3IEBAIGNsYXNzIENsaWVudChvYmpl
Y3QpOgogICAgIGRlZiBhc3NlcnRfY29ubmVjdGlvbl9jbG9zZWQoc2VsZik6CiAgICAgICAgIHRy
eToKICAgICAgICAgICAgIHJlYWRfZGF0YSA9IHJlY2VpdmVfYnl0ZXMoc2VsZi5fc29ja2V0LCAx
KQotICAgICAgICBleGNlcHQgRXhjZXB0aW9uLCBlOgorICAgICAgICBleGNlcHQgRXhjZXB0aW9u
IGFzIGU6CiAgICAgICAgICAgICBpZiBzdHIoZSkuZmluZCgKICAgICAgICAgICAgICAgICAnQ29u
bmVjdGlvbiBjbG9zZWQgYmVmb3JlIHJlY2VpdmluZyByZXF1ZXN0ZWQgbGVuZ3RoICcpID09IDA6
CiAgICAgICAgICAgICAgICAgcmV0dXJuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3Rlc3QvbXV4X2NsaWVu
dF9mb3JfdGVzdGluZy5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvdGVzdC9tdXhfY2xpZW50X2Zvcl90ZXN0aW5nLnB5Cmlu
ZGV4IGRkNTQzNWE4Y2MwZTI3NTVjNTgzYzM2ZDBjZWFmM2YzZmY2MDIxYjAuLjMwNGU3ZmM5NWQz
ZmM1YjNlZTJkOWU1NGYyMDc4MmFkZGFlMjA0MGYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvdGVzdC9tdXhf
Y2xpZW50X2Zvcl90ZXN0aW5nLnB5CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvdGVzdC9tdXhfY2xpZW50X2Zvcl90ZXN0
aW5nLnB5CkBAIC01MTksNyArNTE5LDcgQEAgY2xhc3MgTXV4Q2xpZW50KG9iamVjdCk6CiAKICAg
ICAgICAgdHJ5OgogICAgICAgICAgICAgc2VuZF9xdW90YSA9IHNlbGYuX2NoYW5uZWxfc2xvdHMu
cG9wbGVmdCgpCi0gICAgICAgIGV4Y2VwdCBJbmRleEVycm9yLCBlOgorICAgICAgICBleGNlcHQg
SW5kZXhFcnJvciBhcyBlOgogICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCdObyBjaGFubmVs
IHNsb3RzOiAlcicgJSBlKQogCiAgICAgICAgICMgQ3JlYXRlIEFkZENoYW5uZWwgcmVxdWVzdApA
QCAtNjMyLDcgKzYzMiw3IEBAIGNsYXNzIE11eENsaWVudChvYmplY3QpOgogICAgICAgICB0cnk6
CiAgICAgICAgICAgICBpbm5lcl9mcmFtZSA9IHNlbGYuX2xvZ2ljYWxfY2hhbm5lbHNbY2hhbm5l
bF9pZF0ucXVldWUuZ2V0KAogICAgICAgICAgICAgICAgIHRpbWVvdXQ9c2VsZi5fdGltZW91dCkK
LSAgICAgICAgZXhjZXB0IFF1ZXVlLkVtcHR5LCBlOgorICAgICAgICBleGNlcHQgUXVldWUuRW1w
dHkgYXMgZToKICAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbignQ2Fubm90IHJlY2VpdmUgbWVz
c2FnZSBmcm9tIGNoYW5uZWwgaWQgJWQnICUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBj
aGFubmVsX2lkKQogCkBAIC02NjYsNyArNjY2LDcgQEAgY2xhc3MgTXV4Q2xpZW50KG9iamVjdCk6
CiAgICAgICAgIHRyeToKICAgICAgICAgICAgIGlubmVyX2ZyYW1lID0gc2VsZi5fbG9naWNhbF9j
aGFubmVsc1tjaGFubmVsX2lkXS5xdWV1ZS5nZXQoCiAgICAgICAgICAgICAgICAgdGltZW91dD1z
ZWxmLl90aW1lb3V0KQotICAgICAgICBleGNlcHQgUXVldWUuRW1wdHksIGU6CisgICAgICAgIGV4
Y2VwdCBRdWV1ZS5FbXB0eSBhcyBlOgogICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCdDYW5u
b3QgcmVjZWl2ZSBtZXNzYWdlIGZyb20gY2hhbm5lbCBpZCAlZCcgJQogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGNoYW5uZWxfaWQpCiAgICAgICAgIGlmIGlubmVyX2ZyYW1lLm9wY29kZSAh
PSBjbGllbnRfZm9yX3Rlc3RpbmcuT1BDT0RFX0NMT1NFOgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC90ZXN0
L3Rlc3RfZGlzcGF0Y2gucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3Rlc3QvdGVzdF9kaXNwYXRjaC5weQppbmRleCA5Y2Ez
ZDRmM2FlMWRiZjVmOTdiMjdkODRlYzZlNjQyMmZkMGVjYWE0Li5lMTZkNjA1NjA5YzhhYjdiMzBk
NzIwNjM4MzBmZjQzNGMxYzU2ZGMwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3Rlc3QvdGVzdF9kaXNwYXRj
aC5weQorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3B5d2Vic29ja2V0L3Rlc3QvdGVzdF9kaXNwYXRjaC5weQpAQCAtMTU1LDkgKzE1NSw5IEBA
IGNsYXNzIERpc3BhdGNoZXJUZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICAgICAgdHJ5Ogog
ICAgICAgICAgICAgZGlzcGF0Y2hlci5kb19leHRyYV9oYW5kc2hha2UocmVxdWVzdCkKICAgICAg
ICAgICAgIHNlbGYuZmFpbCgnQ291bGQgbm90IGNhdGNoIEhhbmRzaGFrZUV4Y2VwdGlvbiB3aXRo
IDQwMyBzdGF0dXMnKQotICAgICAgICBleGNlcHQgaGFuZHNoYWtlLkhhbmRzaGFrZUV4Y2VwdGlv
biwgZToKKyAgICAgICAgZXhjZXB0IGhhbmRzaGFrZS5IYW5kc2hha2VFeGNlcHRpb24gYXMgZToK
ICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKDQwMywgZS5zdGF0dXMpCi0gICAgICAgIGV4
Y2VwdCBFeGNlcHRpb24sIGU6CisgICAgICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZToKICAgICAg
ICAgICAgIHNlbGYuZmFpbCgnVW5leHBlY3RlZCBleGNlcHRpb246ICVyJyAlIGUpCiAKICAgICBk
ZWYgdGVzdF9hYm9ydF9leHRyYV9oYW5kc2hha2Uoc2VsZik6CkBAIC0yMTIsNyArMjEyLDcgQEAg
Y2xhc3MgRGlzcGF0Y2hlclRlc3QodW5pdHRlc3QuVGVzdENhc2UpOgogICAgICAgICAgICAgdHJ5
OgogICAgICAgICAgICAgICAgIGRpc3BhdGNoZXIudHJhbnNmZXJfZGF0YShyZXF1ZXN0KQogICAg
ICAgICAgICAgICAgIHNlbGYuZmFpbCgpCi0gICAgICAgICAgICBleGNlcHQgZGlzcGF0Y2guRGlz
cGF0Y2hFeGNlcHRpb24sIGU6CisgICAgICAgICAgICBleGNlcHQgZGlzcGF0Y2guRGlzcGF0Y2hF
eGNlcHRpb24gYXMgZToKICAgICAgICAgICAgICAgICBzZWxmLmZhaWxVbmxlc3Moc3RyKGUpLmZp
bmQoJ05vIGhhbmRsZXInKSAhPSAtMSkKICAgICAgICAgICAgIGV4Y2VwdCBFeGNlcHRpb246CiAg
ICAgICAgICAgICAgICAgc2VsZi5mYWlsKCkKQEAgLTIyNSw3ICsyMjUsNyBAQCBjbGFzcyBEaXNw
YXRjaGVyVGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAgICAgIHRyeToKICAgICAgICAgICAg
IGRpc3BhdGNoZXIudHJhbnNmZXJfZGF0YShyZXF1ZXN0KQogICAgICAgICAgICAgc2VsZi5mYWls
KCkKLSAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbiwgZToKKyAgICAgICAgZXhjZXB0IEV4Y2VwdGlv
biBhcyBlOgogICAgICAgICAgICAgc2VsZi5mYWlsVW5sZXNzKHN0cihlKS5maW5kKCdJbnRlbnRp
b25hbCcpICE9IC0xLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICdVbmV4cGVjdGVkIGV4
Y2VwdGlvbjogJXMnICUgZSkKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC90ZXN0L3Rlc3RfZW5kdG9lbmQu
cHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5
d2Vic29ja2V0L3Rlc3QvdGVzdF9lbmR0b2VuZC5weQppbmRleCA1ZTVjZjYxNTczOTE3ZDg3ZDEz
NjViMTZhNThjMmM0MTg4YTkxMmVjLi4zNjgwZWMyZWJhNjcyNGE3NDkwNWJlNGYxNTgxZjM2YTdh
N2Y3NzEzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3Rlc3QvdGVzdF9lbmR0b2VuZC5weQorKysgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0
L3Rlc3QvdGVzdF9lbmR0b2VuZC5weQpAQCAtMzA0LDkgKzMwNCw5IEBAIGNsYXNzIEVuZFRvRW5k
SHlCaVRlc3QoRW5kVG9FbmRUZXN0QmFzZSk6CiAgICAgICAgICAgICB0cnk6CiAgICAgICAgICAg
ICAgICAgY2xpZW50LmNvbm5lY3QoKQogICAgICAgICAgICAgICAgIHNlbGYuZmFpbCgnQ291bGQg
bm90IGNhdGNoIEh0dHBTdGF0dXNFeGNlcHRpb24nKQotICAgICAgICAgICAgZXhjZXB0IGNsaWVu
dF9mb3JfdGVzdGluZy5IdHRwU3RhdHVzRXhjZXB0aW9uLCBlOgorICAgICAgICAgICAgZXhjZXB0
IGNsaWVudF9mb3JfdGVzdGluZy5IdHRwU3RhdHVzRXhjZXB0aW9uIGFzIGU6CiAgICAgICAgICAg
ICAgICAgc2VsZi5hc3NlcnRFcXVhbChzdGF0dXMsIGUuc3RhdHVzKQotICAgICAgICAgICAgZXhj
ZXB0IEV4Y2VwdGlvbiwgZToKKyAgICAgICAgICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZToKICAg
ICAgICAgICAgICAgICBzZWxmLmZhaWwoJ0NhdGNoIHVuZXhwZWN0ZWQgZXhjZXB0aW9uJykKICAg
ICAgICAgICAgIGZpbmFsbHk6CiAgICAgICAgICAgICAgICAgY2xpZW50LmNsb3NlX3NvY2tldCgp
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3B5d2Vic29ja2V0L3Rlc3QvdGVzdF9oYW5kc2hha2VfaHliaS5weSBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvdGVz
dC90ZXN0X2hhbmRzaGFrZV9oeWJpLnB5CmluZGV4IGQxMDY2Nzc0OWU2MzViYTFjOTZmOGIyM2Zi
OTdmYWI1OTgzMDUyYjkuLmQwYWFmNjQwYTU4OGUyYjA0MmYzMmE5YzY2YTM2OTdhZDRkZDEwYmUg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvcHl3ZWJzb2NrZXQvdGVzdC90ZXN0X2hhbmRzaGFrZV9oeWJpLnB5CisrKyBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQv
dGVzdC90ZXN0X2hhbmRzaGFrZV9oeWJpLnB5CkBAIC01MDcsMTAgKzUwNywxMCBAQCBjbGFzcyBI
YW5kc2hha2VyVGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAgICAgICAgICB0cnk6CiAgICAg
ICAgICAgICAgICAgaGFuZHNoYWtlci5kb19oYW5kc2hha2UoKQogICAgICAgICAgICAgICAgIHNl
bGYuZmFpbCgnTm8gZXhjZXB0aW9uIHRocm93biBmb3IgXCclc1wnIGNhc2UnICUgY2FzZV9uYW1l
KQotICAgICAgICAgICAgZXhjZXB0IEhhbmRzaGFrZUV4Y2VwdGlvbiwgZToKKyAgICAgICAgICAg
IGV4Y2VwdCBIYW5kc2hha2VFeGNlcHRpb24gYXMgZToKICAgICAgICAgICAgICAgICBzZWxmLmFz
c2VydFRydWUoZXhwZWN0X2hhbmRzaGFrZV9leGNlcHRpb24pCiAgICAgICAgICAgICAgICAgc2Vs
Zi5hc3NlcnRFcXVhbChleHBlY3RlZF9zdGF0dXMsIGUuc3RhdHVzKQotICAgICAgICAgICAgZXhj
ZXB0IFZlcnNpb25FeGNlcHRpb24sIGU6CisgICAgICAgICAgICBleGNlcHQgVmVyc2lvbkV4Y2Vw
dGlvbiBhcyBlOgogICAgICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RmFsc2UoZXhwZWN0X2hhbmRz
aGFrZV9leGNlcHRpb24pCiAKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC90ZXN0L3Rlc3RfbXNndXRpbC5w
eSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3
ZWJzb2NrZXQvdGVzdC90ZXN0X21zZ3V0aWwucHkKaW5kZXggOWRiYmI1ZDhkNGI5YWMyM2U5Yzg3
N2JiY2VkYjkyOWNlMDkwOGNmMS4uMjM0NzM1YzYzMDQ3ZDJlZGIyMzhjYjUyNTVhZDQ3NGEyZTRk
MGE4MyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy9weXdlYnNvY2tldC90ZXN0L3Rlc3RfbXNndXRpbC5weQorKysgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3Rl
c3QvdGVzdF9tc2d1dGlsLnB5CkBAIC0zMSw2ICszMSw3IEBACiAKIAogIiIiVGVzdHMgZm9yIG1z
Z3V0aWwgbW9kdWxlLiIiIgorZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCBwcmludF9mdW5jdGlvbgog
CiAKIGltcG9ydCBhcnJheQpAQCAtODg0LDcgKzg4NSw3IEBAIGNsYXNzIFBlck1lc3NhZ2VEZWZs
YXRlVGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAgICAgIGNvbXByZXNzZWRfZW1wdHkgPSBj
b21wcmVzc2VkX2VtcHR5WzotNF0KICAgICAgICAgZXhwZWN0ZWQgKz0gJ1x4ODAlYycgJSBsZW4o
Y29tcHJlc3NlZF9lbXB0eSkKICAgICAgICAgZXhwZWN0ZWQgKz0gY29tcHJlc3NlZF9lbXB0eQot
ICAgICAgICBwcmludCAnJXInICUgZXhwZWN0ZWQKKyAgICAgICAgcHJpbnQoJyVyJyAlIGV4cGVj
dGVkKQogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGV4cGVjdGVkLCByZXF1ZXN0LmNvbm5lY3Rp
b24ud3JpdHRlbl9kYXRhKCkpCiAKICAgICBkZWYgdGVzdF9zZW5kX21lc3NhZ2VfZnJhZ21lbnRl
ZF9lbXB0eV9sYXN0X2ZyYW1lKHNlbGYpOgpAQCAtMTA2NCw3ICsxMDY1LDcgQEAgY2xhc3MgUGVy
TWVzc2FnZURlZmxhdGVUZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKIAogICAgICAgICAgICAgZnJh
bWVfY291bnQgKz0gMQogCi0gICAgICAgIHByaW50ICJDaHVuayBzaXplczogJXIiICUgY2h1bmtf
c2l6ZXMKKyAgICAgICAgcHJpbnQoIkNodW5rIHNpemVzOiAlciIgJSBjaHVua19zaXplcykKICAg
ICAgICAgc2VsZi5hc3NlcnRUcnVlKGxlbihjaHVua19zaXplcykgPiAxMCkKIAogICAgICAgICAj
IENsb3NlIGZyYW1lCkBAIC0xMTY3LDkgKzExNjgsOSBAQCBjbGFzcyBQZXJNZXNzYWdlRGVmbGF0
ZVRlc3QodW5pdHRlc3QuVGVzdENhc2UpOgogICAgICAgICAgICAgICAgICAgICBjb21wcmVzcyA9
IE5vbmUKICAgICAgICAgICAgICAgICAgICAgZmluaXNoX3VzZWQgPSBUcnVlCiAKLSAgICAgICAg
cHJpbnQgIkNodW5rIHNpemVzOiAlciIgJSBjaHVua19zaXplcworICAgICAgICBwcmludCgiQ2h1
bmsgc2l6ZXM6ICVyIiAlIGNodW5rX3NpemVzKQogICAgICAgICBzZWxmLmFzc2VydFRydWUobGVu
KGNodW5rX3NpemVzKSA+IDEwKQotICAgICAgICBwcmludCAiTWV0aG9kczogJXIiICUgbWV0aG9k
cworICAgICAgICBwcmludCgiTWV0aG9kczogJXIiICUgbWV0aG9kcykKICAgICAgICAgc2VsZi5h
c3NlcnRUcnVlKHN5bmNfdXNlZCkKICAgICAgICAgc2VsZi5hc3NlcnRUcnVlKGZpbmlzaF91c2Vk
KQogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3B5d2Vic29ja2V0L3Rlc3QvdGVzdF9tdXgucHkgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3Rlc3QvdGVzdF9t
dXgucHkKaW5kZXggM2NlNDVjZjZiM2ZlZTBjMGI5YTkxNGQwYzI0Nzc3NWI2ZjI0OTlmYi4uMDc3
M2RlY2JmZDY2ZDBkZmZlZjBiNDI4N2JhZDg3NDUzZmMxZDY0NCAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdlYnNvY2tldC90
ZXN0L3Rlc3RfbXV4LnB5CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvdGVzdC90ZXN0X211eC5weQpAQCAtMjU4LDkgKzI1
OCw5IEBAIGNsYXNzIF9NdXhNb2NrRGlzcGF0Y2hlcihvYmplY3QpOgogICAgICAgICAgICAgICAg
IHJhaXNlIFZhbHVlRXJyb3IoJ0Nhbm5vdCBoYW5kbGUgcGF0aCAlcicgJSByZXF1ZXN0LnBhdGgp
CiAgICAgICAgICAgICBpZiBub3QgcmVxdWVzdC5zZXJ2ZXJfdGVybWluYXRlZDoKICAgICAgICAg
ICAgICAgICByZXF1ZXN0LndzX3N0cmVhbS5jbG9zZV9jb25uZWN0aW9uKCkKLSAgICAgICAgZXhj
ZXB0IENvbm5lY3Rpb25UZXJtaW5hdGVkRXhjZXB0aW9uLCBlOgorICAgICAgICBleGNlcHQgQ29u
bmVjdGlvblRlcm1pbmF0ZWRFeGNlcHRpb24gYXMgZToKICAgICAgICAgICAgIHNlbGYuY2hhbm5l
bF9ldmVudHNbcmVxdWVzdC5jaGFubmVsX2lkXS5leGNlcHRpb24gPSBlCi0gICAgICAgIGV4Y2Vw
dCBFeGNlcHRpb24sIGU6CisgICAgICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZToKICAgICAgICAg
ICAgIHNlbGYuY2hhbm5lbF9ldmVudHNbcmVxdWVzdC5jaGFubmVsX2lkXS5leGNlcHRpb24gPSBl
CiAgICAgICAgICAgICByYWlzZQogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5d2Vic29ja2V0L3Rlc3QvdGVzdF91dGlsLnB5
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9weXdl
YnNvY2tldC90ZXN0L3Rlc3RfdXRpbC5weQppbmRleCAyMGY0YWIwNTk2NTJjNTg2OWVjMjA1YTEy
OGRmOTM5MTRjYThjNzFlLi42NGJhM2Y0NzczN2EzMzFlZjAzOTBjYzZiMGM4MWMyZDM0YTQyODMz
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3B5d2Vic29ja2V0L3Rlc3QvdGVzdF91dGlsLnB5CisrKyBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl3ZWJzb2NrZXQvdGVzdC90ZXN0
X3V0aWwucHkKQEAgLTMxLDYgKzMxLDcgQEAKIAogCiAiIiJUZXN0cyBmb3IgdXRpbCBtb2R1bGUu
IiIiCitmcm9tIF9fZnV0dXJlX18gaW1wb3J0IHByaW50X2Z1bmN0aW9uCiAKIAogaW1wb3J0IG9z
CkBAIC0xNzIsNyArMTczLDcgQEAgY2xhc3MgSW5mbGF0ZXJEZWZsYXRlclRlc3QodW5pdHRlc3Qu
VGVzdENhc2UpOgogICAgICAgICAgICAgW2NocihyYW5kb20ucmFuZGludCgwLCAyNTUpKSBmb3Ig
aSBpbiB4cmFuZ2UoMTAwICogMTAyNCldKQogCiAgICAgICAgIGNodW5rZWRfaW5wdXQgPSBnZXRf
cmFuZG9tX3NlY3Rpb24oc291cmNlLCAxMCkKLSAgICAgICAgcHJpbnQgIklucHV0IGNodW5rIHNp
emVzOiAlciIgJSBbbGVuKGMpIGZvciBjIGluIGNodW5rZWRfaW5wdXRdCisgICAgICAgIHByaW50
KCJJbnB1dCBjaHVuayBzaXplczogJXIiICUgW2xlbihjKSBmb3IgYyBpbiBjaHVua2VkX2lucHV0
XSkKIAogICAgICAgICBkZWZsYXRlciA9IHV0aWwuX0RlZmxhdGVyKDE1KQogICAgICAgICBjb21w
cmVzc2VkID0gW10KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvcmVxdWlyZW1lbnRzX2ZsYWtlOC50eHQgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3JlcXVpcmVtZW50c19mbGFrZTgu
dHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjBhNDUyMjQwMTY0MTdjZGRiZjU5MjA5MTk2MzgwY2NlMGEwODllZGYK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3JlcXVpcmVtZW50c19mbGFrZTgudHh0CkBAIC0wLDAgKzEsNCBAQAorZmxh
a2U4PT0zLjcuOQorcHljb2Rlc3R5bGU9PTIuNS4wCitweWZsYWtlcz09Mi4xLjEKK3BlcDgtbmFt
aW5nPT0wLjkuMQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy9yZXF1aXJlbWVudHNfbXlweS50eHQgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3JlcXVpcmVtZW50c19teXB5LnR4dApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi4xOTRmNDI4NGIyNjkwM2IxZmFmOTY5YjZhYjVkMzBmNWM0OGViNTYyCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy9yZXF1aXJlbWVudHNfbXlweS50eHQKQEAgLTAsMCArMSwzIEBACitteXB5PT0wLjc1
MAorbXlweS1leHRlbnNpb25zPT0wLjQuMwordHlwZWQtYXN0PT0xLjQuMApkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9ydW5uZXIv
aW5kZXguaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvcnVubmVyL2luZGV4Lmh0bWwKaW5kZXggNmM5YThhZmZlZDU4YzJiNzBiNzUzOTQ0YjMx
ZjAwOTk3NmQ0OWQ2ZC4uNTc5NDBkMDJkMGMzMmIzNjZjNDA3YWJlYzEwYTdkNzBkNDQwZDYwZCAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy9ydW5uZXIvaW5kZXguaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3J1bm5lci9pbmRleC5odG1sCkBAIC0xLDI2ICsxLDQwIEBA
CiA8IURPQ1RZUEUgaHRtbD4KIDxodG1sIGxhbmc9ZW4+CiA8bWV0YSBjaGFyc2V0PVVURi04Pgot
PHRpdGxlPldlYiB0ZXN0czwvdGl0bGU+Cis8dGl0bGU+d2ViLXBsYXRmb3JtLXRlc3RzIFJ1bm5l
cjwvdGl0bGU+CiA8bGluayByZWw9J3N0eWxlc2hlZXQnIGhyZWY9J2Nzcy9ib290c3RyYXAubWlu
LmNzcyc+CiA8bGluayByZWw9J3N0eWxlc2hlZXQnIGhyZWY9J2Nzcy9ib290c3RyYXAtdGhlbWUu
bWluLmNzcyc+CiA8bGluayByZWw9J3N0eWxlc2hlZXQnIGhyZWY9J3J1bm5lci5jc3MnPgogPHNj
cmlwdCBzcmM9Jy9jb21tb24vZ2V0LWhvc3QtaW5mby5zdWIuanMnPjwvc2NyaXB0PgogPHNjcmlw
dCBzcmM9J3J1bm5lci5qcyc+PC9zY3JpcHQ+CiAKLQogPGhlYWRlciBjbGFzcz0ibmF2YmFyIG5h
dmJhci1pbnZlcnNlIG5hdmJhci1maXhlZC10b3AiPgogICA8ZGl2IGNsYXNzPSJjb250YWluZXIi
PgogICAgIDxkaXYgY2xhc3M9Im5hdmJhci1oZWFkZXIiPgogICAgICAgPGEgY2xhc3M9Im5hdmJh
ci1icmFuZCIgaHJlZj0iIyI+Ci0gICAgICAgIDxpbWcgc3JjPSdsb2dvLnN2Zycgd2lkdGg9JzUw
JyBoZWlnaHQ9JzUwJyBhbHQ9J0xvZ28gZm9yIHRoZSBXUFQgUnVubmVyJz4KLSAgICAgICAgV2Vi
IFBsYXRmb3JtIFRlc3RzIFJ1bm5lcgorICAgICAgICA8aW1nIHNyYz0nL2ltYWdlcy93cHQtbG9n
by93cHQtbG9nby1saWdodGJsdWUtYmcuc3ZnJyB3aWR0aD0nNTAnIGhlaWdodD0nNTAnIHN0eWxl
PSdib3JkZXItcmFkaXVzOiA1MCUnIGFsdD0nV1BUIExvZ28nPgorICAgICAgICB3ZWItcGxhdGZv
cm0tdGVzdHMgUnVubmVyCiAgICAgICA8L2E+CiAgICAgPC9kaXY+CiAgIDwvZGl2PgogPC9oZWFk
ZXI+CiAKIDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+CisgIDxkaXYgY2xhc3M9ImFsZXJ0IGFsZXJ0
LXdhcm5pbmciPgorICAgICAgICBUaGlzIHJ1bm5lciBkb2VzIG5vdCBmdWxseSBzdXBwb3J0IGFs
bCB0ZXN0IHR5cGVzIGFuZCBoYXMgYSBudW1iZXIgb2YKKyAgICAgICAgPGEgaHJlZj0iaHR0cHM6
Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQvbGFiZWxzL3J1bm5lciI+a25vd24g
aXNzdWVzPC9hPi4KKyAgICAgICAgPHNwYW4gaWQ9InJ1bm5lci1jb250YWN0LWluZm8iPjwvc3Bh
bj4KKyAgICAgICAgPGNvZGU+Li93cHQgcnVuPC9jb2RlPiBpcyBhIG1vcmUgd2VsbC1zdXBwb3J0
ZWQgcnVubmVyLCBzZWUgdGhlIGRvY3VtZW50YXRpb24gb24KKyAgICAgICAgPGEgaHJlZj0iaHR0
cHM6Ly93ZWItcGxhdGZvcm0tdGVzdHMub3JnL3J1bm5pbmctdGVzdHMvIj5ydW5uaW5nIHRlc3Rz
PC9hPi4KKyAgICAgICAgPHNjcmlwdD4KKyAgICAgICAgaWYgKGxvY2F0aW9uLmhvc3QgPT0gIncz
Yy10ZXN0Lm9yZyIpIHsKKyAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJydW5u
ZXItY29udGFjdC1pbmZvIikKKyAgICAgICAgICAgICAgICAuaW5uZXJIVE1MID0gJyBJZiB0aGlz
IHJ1bm5lciBpc27igJl0IHdvcmtpbmcsIGNvbnRhY3QnCisgICAgICAgICAgICAgICAgICAgICsg
JyA8YSBocmVmPSJtYWlsdG86bWlrZUB3My5vcmciPm1pa2VAdzMub3JnPC9hPi4gJworICAgICAg
ICB9CisgICAgICAgIDwvc2NyaXB0PgorICA8L2Rpdj4KKwogICA8ZGl2IGlkPSJ0ZXN0Q29udHJv
bCIgY2xhc3M9InBhbmVsIHBhbmVsLWRlZmF1bHQiPgogICAgIDxkaXYgY2xhc3M9InBhbmVsLWJv
ZHkiPgogICAgICAgPGZvcm0gaWQ9J29wdGlvbnMnIGNsYXNzPSdob3Jpem9udGFsLWZvcm0nIG9u
c3VibWl0PSdyZXR1cm4gZmFsc2U7Jz4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcnVubmVyL2xvZ28uc3ZnIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9ydW5uZXIvbG9nby5zdmcK
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDhhMjU3NzZiNmY0YzdhNmY5YzA3OTk2Mzcx
YjAyNmYyNGQzMTQ2Y2UuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAK
LS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9y
dW5uZXIvbG9nby5zdmcKKysrIC9kZXYvbnVsbApAQCAtMSw4ICswLDAgQEAKLTxzdmcgd2lkdGg9
IjQ1M3B4IiBoZWlnaHQ9IjQ1M3B4IiB2aWV3Qm94PSIwIDAgNDUzIDQ1MyIgeG1sbnM9Imh0dHA6
Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KLSAgPGNpcmNsZSBzdHJva2U9IiNlZDU1NjUiIHN0cm9r
ZS13aWR0aD0iMjAiIGZpbGw9IiNmZmYiIGN4PSIyMjYuNSIgY3k9IjIyNi41IiByPSIyMTMuNSI+
PC9jaXJjbGU+Ci0gIDxnIHRyYW5zZm9ybT0idHJhbnNsYXRlKDE2MCAyNTApIj4KLSAgICA8ZyB0
cmFuc2Zvcm09Im1hdHJpeCgyLjI1IDAgMCAtMi4yNSAwIDApIj4KLSAgICAgIDxwYXRoIGQ9Im0w
IDBjMC4yNTItMC4zMzMgMC41MDgtMC42NTkgMC43NjYtMC45NzQtMS4yNjktMy43NjQtMi4zNjgt
Ny43NDktMy40NDctMTEuMzgzLTAuMTY2LTAuMDUzLTAuMzI5LTAuMTE2LTAuNDg2LTAuMTk0LTgu
NTcyIDguMjExLTIuMDU2IDExLjM2NCAzLjE2NyAxMi41NTFtNTkuODA5IDQ1LjU3YzIuODk5IDIw
LjExOC0xMC4wODQgMzguNjM1LTI5IDQxLjM2Mi0xOC45MTUgMi43MjYtMzYuNjAxLTExLjM3MS0z
OS41LTMxLjQ4OS0yLjQxOC0xNi43NzQgNi4yMTItMzIuNDI3IDIwLjExMi0zOC43NWwtMC4wNSAw
LjAxNC0wLjMyMy0yLjI0MmMwLjIxOS0wLjA0OSAwLjQyNy0wLjA5IDAuNjQtMC4xMzQtMC4xMjIt
MC4wMjctMC4yNDUtMC4wNTMtMC4zNjUtMC4wODZsLTAuMDA0IDAuMDEzcy0wLjA0Mi0wLjAxNy0w
LjEwNi0wLjA0MmMtMC40NjUtMC4xMzctMC45MTUtMC4zMTktMS4zNDktMC41NDQtMy41MDItMS40
MjQtMTIuMjg1LTUuMDk1LTE0LjI4Ny02Ljg2NyAwIDAgMC45MjctMS42NjUgMi4yNTQtMy43MDQt
MTcuMzM1LTIuNDIxLTYuNTIyLTE1LjYzLTMuMTc2LTE5LjI2LTAuMDE1LTAuMjk2IDAuMDA0LTAu
NTkyIDAuMDM5LTAuODg4LTIuNTYyLTEuNjc3LTUuNzcyLTQuMTk1LTcuNzcyLTcuMjkgMCAwIDAu
NTUyLTAuMTgyIDEuNDU4LTAuNTM2di0wLjAwMWwwLjAxNi0wLjAwNWMxLjE4Mi0wLjQ2MyAyLjk2
LTEuMjE5IDQuOTE0LTIuMjQ4LTMuMDA0LTEzLjU1Ny03LjU0Mi05LjY3Ny0xMC41ODktNC42ODMg
MC43NDUgMi4yMzIgMC43NDEgNC4yMy0wLjIwMiA1LjM5My0wLjY2IDAuODExLTEuNjgxIDEuMTAx
LTIuODg5IDAuOTMxLTAuMDg3IDAuMjIyLTAuMTM1IDAuMzQ5LTAuMTM1IDAuMzQ5bC0wLjEwOC0w
LjM5N2MtMC4wNTctMC4wMS0wLjExNS0wLjAyMS0wLjE3My0wLjAzNCAwLjAwNSAwLjAwMyAwLjAw
OCAwLjAwNSAwLjAxMyAwLjAwOCAwIDAtMC4wMzItMC4wMDgtMC4wNzgtMC4wMjEtMC41MDgtMC4x
MTYtMS4wNDItMC4zMDYtMS41OTMtMC41NjYtMi43NTktMS4xNTgtOC4wMjMtNC4yNDgtOC42Mzkt
MTEuMDg4LTAuMjA4LTEuMDU2LTAuMjEyLTIuMDE1IDAuMDAyLTIuODEyIDAuMDAxLTAuMDE0IDAu
MDAxLTAuMDI2IDAuMDAzLTAuMDQgMCAwIDAuNTI3LTQuNTYxIDQuMjg4LTEuODk0bC0wLjAwMiAw
LjAwM2MxLjg2MSAwLjUzNiA0LjAzNCAyLjAwMyA1Ljk4OSA0LjIyNiAwLjY2NCAwLjc1NSAxLjI1
NiAxLjU0NSAxLjc2OCAyLjM0MyA4LjUzNy0xNi43NjggMTQuOTc0IDMuNDA5IDE1LjgxIDYuMjMg
Mi4zMDktMS41MzggNC41MjgtMy40MjUgNi4wMTktNS42NCAwIDAgMS4xODIgMy40NTggMy45NDIg
Ni4zMTIgNS45ODQtOC45NTYgMTMuMzc0LTEwLjQ2NSAxMy4zNzQtMTAuNDY1bDMuODAyIDYuMTUy
YzExLjMyOC01LjU2OSA3LjM4Mi0xMC4zODUgMi43MTMtMTMuMjUzLTEuNzU3IDEuMTk4LTMuNDI4
IDEuNDg1LTQuNTM3IDAuNTUtMC43NzUtMC42NTMtMS4xNjYtMS44MDctMS4yLTMuMjQ2LTAuMTk5
LTAuMDY5LTAuMzEyLTAuMTA2LTAuMzEyLTAuMTA2bDAuMzE2LTAuMTg1YzAuMDAxLTAuMDY5IDAu
MDAyLTAuMTM5IDAuMDA0LTAuMjEtMC4wMDIgMC4wMDYtMC4wMDQgMC4wMTItMC4wMDYgMC4wMTkg
MCAwIDAuMDAzLTAuMDQ0IDAuMDA3LTAuMTEyIDAuMDI0LTAuNjA0IDAuMTA0LTEuMjQ3IDAuMjM5
LTEuOTIgMC41NjQtMy4zOTUgMi4zNzgtMTAuMDE5IDguMDEzLTExLjc0MSAwLjg1MS0wLjM5NiAx
LjY1Mi0wLjU0MiAyLjM0OS0wLjQwNyAwLjAxMiAwIDAuMDIzLTAuMDAzIDAuMDM1LTAuMDAzIDAg
MCAzLjg5MS0wLjA0OCAyLjIxIDQuNzQ1bC0wLjAwNC0wLjAwNGMtMC4xNzYgMi4yNTgtMS4wODYg
NS4wMTUtMi42NTkgNy42MjgtMC41MzUgMC44ODgtMS4xMDkgMS42OTUtMS43MDEgMi40MTMgMTYu
Mzc0IDguMDk1LTMuMTUgMTkuNTY3LTMuMTU2IDE5LjU3bDIuMDYyIDMuMzM2LTQuNTg0IDEuMDI4
Yy0wLjUxNiAwLjExNi0xLjQ0NiAwLjQ1OC0yLjYzOSAwLjk0OSAwLjYxLTAuMTE2IDEuMjE4LTAu
MjI1IDEuODIxLTAuMzIyIDAuMjIxIDAuNjE1IDAuNDMyIDEuMjQ5IDAuNjMxIDEuOTE4IDEuNzE1
IDUuNzY2IDIuMzQgMTIuNTc3IDEuODAzIDE4Ljc2bDEuNTQ0LTMuNjAxczAuNjU1IDAuNDA0IDEu
NjEyIDAuODI3bC0wLjA4OC0wLjE2N2MzLjgzMi0yNi45MDYgMTQuNjMxLTEwLjY2NiAxNy40MDct
NS45MjQgMS40NDUgMC4xMjUgMi44MTkgMS4yNyAzLjQ0OCAzLjA3NCAwLjg2NCAyLjQ3NSAwLjAw
MiA1LjI0Mi0xLjkyNiA2LjE4My0xLjkyNyAwLjk0Mi00LjE4OC0wLjMwMS01LjA1LTIuNzc0LTAu
NTMzLTEuNTI0LTAuNDA2LTMuMTU4IDAuMjE4LTQuNDEtNi42Ny0xMy4wNDQtMTAuMzYtMS4wMTYt
MTEuNjQ3IDQuODEgMC42NjkgMC4xNDMgMS4zNTUgMC4yMSAxLjk5OCAwLjEzNSAwIDAtNC4xODUg
MTEuMjM0LTExLjc0MyAxNS42MTgtMC4wOTcgMC4xMzYtMC4xOTIgMC4yNzUtMC4yOTEgMC40MDUt
MC4wNTYtMC4wMTctMC4xMTYtMC4wMjktMC4xNzQtMC4wNDRsMC4zNDUgMi44MzJjMC41NjcgMC4w
NDYgMC44NzEgMC4wOTkgMC44NzEgMC4wOTlsMC4wMjEgMC4xNDYtMC42NSAwLjE4MWMxOC41NzIt
Mi4xNTggMzUuNzQ0IDExLjc5NyAzOC41OTcgMzEuNTkzIiBmaWxsPSIjZWQ1NTY1Ii8+Ci0gICAg
PC9nPgotICA8L2c+Ci08L3N2Zz4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcnVubmVyL3JlcG9ydC5weSBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcnVubmVyL3JlcG9ydC5weQpp
bmRleCA5NTJkZjA4YjgwNTk4OWM4NDA4ZWMwZTVlOTBjMDY1MmM3MzRhNTYxLi41ZWI4ZDY3Yzdm
NmRhOWM1ZmQwMWRlOGRlNDBmNWNjOTJjMTFiZTkwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3J1bm5lci9yZXBvcnQucHkKKysr
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9ydW5u
ZXIvcmVwb3J0LnB5CkBAIC0xNjAsNyArMTYwLDcgQEAgZGVmIGFsbF90ZXN0cyhkYXRhKToKICAg
ICBmb3IgVUEsIHJlc3VsdHMgaW4gZGF0YS5pdGVyaXRlbXMoKToKICAgICAgICAgZm9yIHJlc3Vs
dCBpbiByZXN1bHRzWyJyZXN1bHRzIl06CiAgICAgICAgICAgICBpZCA9IHRlc3RfaWQocmVzdWx0
WyJ0ZXN0Il0pCi0gICAgICAgICAgICB0ZXN0c1tpZF0gfD0gc2V0KHN1YnRlc3RbIm5hbWUiXSBm
b3Igc3VidGVzdCBpbiByZXN1bHRbInN1YnRlc3RzIl0pCisgICAgICAgICAgICB0ZXN0c1tpZF0g
fD0ge3N1YnRlc3RbIm5hbWUiXSBmb3Igc3VidGVzdCBpbiByZXN1bHRbInN1YnRlc3RzIl19CiAg
ICAgcmV0dXJuIHRlc3RzCiAKIApAQCAtMTc5LDcgKzE3OSw3IEBAIGRlZiBncm91cF9yZXN1bHRz
KGRhdGEpOgogCiAgICAgZGVmIHJlc3VsdCgpOgogICAgICAgICByZXR1cm4gewotICAgICAgICAg
ICAgImhhcm5lc3MiOiBkaWN0KChVQSwgKE5vbmUsIE5vbmUpKSBmb3IgVUEgaW4gVUFzKSwKKyAg
ICAgICAgICAgICJoYXJuZXNzIjoge1VBOiAoTm9uZSwgTm9uZSkgZm9yIFVBIGluIFVBc30sCiAg
ICAgICAgICAgICAic3VidGVzdHMiOiBOb25lICAjIGluaXQgdGhpcyBsYXRlcgogICAgICAgICB9
CiAKQEAgLTE5MSw5ICsxOTEsOSBAQCBkZWYgZ3JvdXBfcmVzdWx0cyhkYXRhKToKICAgICAgICAg
ICAgIHJlc3VsdCA9IHJlc3VsdHNfYnlfdGVzdFtpZF0KIAogICAgICAgICAgICAgaWYgcmVzdWx0
WyJzdWJ0ZXN0cyJdIGlzIE5vbmU6Ci0gICAgICAgICAgICAgICAgcmVzdWx0WyJzdWJ0ZXN0cyJd
ID0gZGljdCgKLSAgICAgICAgICAgICAgICAgICAgKG5hbWUsIGRpY3QoKFVBLCAoTm9uZSwgTm9u
ZSkpIGZvciBVQSBpbiBVQXMpKSBmb3IgbmFtZSBpbiB0ZXN0c1tpZF0KLSAgICAgICAgICAgICAg
ICApCisgICAgICAgICAgICAgICAgcmVzdWx0WyJzdWJ0ZXN0cyJdID0geworICAgICAgICAgICAg
ICAgICAgICBuYW1lOiB7VUE6IChOb25lLCBOb25lKSBmb3IgVUEgaW4gVUFzfSBmb3IgbmFtZSBp
biB0ZXN0c1tpZF0KKyAgICAgICAgICAgICAgICB9CiAKICAgICAgICAgICAgIHJlc3VsdFsiaGFy
bmVzcyJdW1VBXSA9ICh0ZXN0X2RhdGFbInN0YXR1cyJdLCB0ZXN0X2RhdGFbIm1lc3NhZ2UiXSkK
ICAgICAgICAgICAgIGZvciBzdWJ0ZXN0IGluIHRlc3RfZGF0YVsic3VidGVzdHMiXToKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
cnVubmVyL3J1bm5lci5jc3MgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3J1bm5lci9ydW5uZXIuY3NzCmluZGV4IDg1NDYwMTc3ZWExNTFhYmQzZWVm
YTg0OTg2NjA3NzU1YzkyZWZlOTMuLmVjNzJhY2I4M2U3MGI1ZmEwZGZlNDZlOTJmNzA1OWQ1ZjU3
ZTU0ZDggMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvcnVubmVyL3J1bm5lci5jc3MKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9ydW5uZXIvcnVubmVyLmNzcwpAQCAtNTIsNyAr
NTIsNiBAQCBzZWN0aW9uIG9sIHsKIH0KIAogaHRtbC5kb25lIHNlY3Rpb24gb2wgewotICAgIC1t
b3otY29sdW1uLWNvdW50OiAzOwogICAgIC13ZWJraXQtY29sdW1uLWNvdW50OiAzOwogICAgIGNv
bHVtbi1jb3VudDogMzsKIH0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcnVubmVyL3J1bm5lci5qcyBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcnVubmVyL3J1bm5lci5qcwppbmRl
eCBlZjBiNmE0NDlkNjg2MTY4NDY5ZGZjYjg1MWIzMDkxMjEyNDM4N2E3Li5kYWFmOWQ0NWRhNWJm
YmE2MzIzNTRlOWVkYmQyODQ2ZDA1MmQwMDM1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3J1bm5lci9ydW5uZXIuanMKKysrIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9ydW5uZXIv
cnVubmVyLmpzCkBAIC0xNTMsMTMgKzE1MywyMiBAQCBNYW5pZmVzdEl0ZXJhdG9yLnByb3RvdHlw
ZSA9IHsKICAgICB9LAogCiAgICAgbWF0Y2hlczogZnVuY3Rpb24obWFuaWZlc3RfaXRlbSkgewot
ICAgICAgICByZXR1cm4gdGhpcy5tYXRjaF9sb2NhdGlvbihtYW5pZmVzdF9pdGVtLnVybCkgIT09
IG51bGw7CisgICAgICAgIHZhciB1cmxfYmFzZSA9IHRoaXMubWFuaWZlc3QuZGF0YS51cmxfYmFz
ZTsKKyAgICAgICAgaWYgKHVybF9iYXNlLmNoYXJBdCh1cmxfYmFzZS5sZW5ndGggLSAxKSAhPT0g
Ii8iKSB7CisgICAgICAgICAgICB1cmxfYmFzZSA9IHVybF9iYXNlICsgIi8iOworICAgICAgICB9
CisgICAgICAgIHZhciB1cmwgPSB1cmxfYmFzZSArIG1hbmlmZXN0X2l0ZW0udXJsOworICAgICAg
ICByZXR1cm4gdGhpcy5tYXRjaF9sb2NhdGlvbih1cmwpICE9PSBudWxsOwogICAgIH0sCiAKICAg
ICB0b190ZXN0OiBmdW5jdGlvbihtYW5pZmVzdF9pdGVtKSB7CisgICAgICAgIHZhciB1cmxfYmFz
ZSA9IHRoaXMubWFuaWZlc3QuZGF0YS51cmxfYmFzZTsKKyAgICAgICAgaWYgKHVybF9iYXNlLmNo
YXJBdCh1cmxfYmFzZS5sZW5ndGggLSAxKSAhPT0gIi8iKSB7CisgICAgICAgICAgICB1cmxfYmFz
ZSA9IHVybF9iYXNlICsgIi8iOworICAgICAgICB9CiAgICAgICAgIHZhciB0ZXN0ID0gewogICAg
ICAgICAgICAgdHlwZTogdGhpcy50ZXN0X3R5cGVzW3RoaXMudGVzdF90eXBlc19pbmRleF0sCi0g
ICAgICAgICAgICB1cmw6IG1hbmlmZXN0X2l0ZW0udXJsCisgICAgICAgICAgICB1cmw6IHVybF9i
YXNlICsgbWFuaWZlc3RfaXRlbS51cmwKICAgICAgICAgfTsKICAgICAgICAgaWYgKG1hbmlmZXN0
X2l0ZW0uaGFzT3duUHJvcGVydHkoInJlZmVyZW5jZXMiKSkgewogICAgICAgICAgICAgdGVzdC5y
ZWZfbGVuZ3RoID0gbWFuaWZlc3RfaXRlbS5yZWZlcmVuY2VzLmxlbmd0aDsKQEAgLTYzOCw4ICs2
NDcsOSBAQCBSZXN1bHRzLnByb3RvdHlwZSA9IHsKICAgICB9LAogCiAgICAgdG9fanNvbjogZnVu
Y3Rpb24oKSB7CisgICAgICAgIHZhciB0ZXN0X3Jlc3VsdHMgPSB0aGlzLnRlc3RfcmVzdWx0cyB8
fCBbXTsKICAgICAgICAgdmFyIGRhdGEgPSB7Ci0gICAgICAgICAgICAicmVzdWx0cyI6IHRoaXMu
dGVzdF9yZXN1bHRzLm1hcChmdW5jdGlvbihyZXN1bHQpIHsKKyAgICAgICAgICAgICJyZXN1bHRz
IjogdGVzdF9yZXN1bHRzLm1hcChmdW5jdGlvbihyZXN1bHQpIHsKICAgICAgICAgICAgICAgICB2
YXIgcnYgPSB7InRlc3QiOihyZXN1bHQudGVzdC5oYXNPd25Qcm9wZXJ0eSgicmVmX3VybCIpID8K
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbcmVzdWx0LnRlc3QudXJsLCByZXN1
bHQudGVzdC5yZWZfdHlwZSwgcmVzdWx0LnRlc3QucmVmX3VybF0gOgogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHJlc3VsdC50ZXN0LnVybCksCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3J1bm5lci93M2MtaW1w
b3J0LmxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvcnVubmVyL3czYy1pbXBvcnQubG9nCmluZGV4IDc3ZGJiNjEyN2UzM2FhNjIwMGU0MWRmMGQz
NDI5MGNiYzhiOTI0YjcuLjM0NGIyYTU3NTFjM2Y5OGU0NzQwNmM3ZThjZjg4OGZlY2Q3Y2EwNzYg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvcnVubmVyL3czYy1pbXBvcnQubG9nCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcnVubmVyL3czYy1pbXBvcnQubG9nCkBAIC0xNSw3
ICsxNSw2IEBAIE5vbmUKIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogTGlzdCBvZiBmaWxlczoKIC9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3J1bm5lci9pbmRleC5o
dG1sCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9y
dW5uZXIvbG9nby5zdmcKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3J1bm5lci9yZXBvcnQuY3NzCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy9ydW5uZXIvcmVwb3J0LnB5CiAvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9ydW5uZXIvcnVubmVyLmNzcwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy9zY3JpcHRzL21hbmlmZXN0LmpzIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy9zY3JpcHRzL21hbmlmZXN0LmpzCmluZGV4IGZiZDU1NjgyNTkwMDk4
YTlkMjQzNDFmMmI4MTlmZDZkOTdlN2FhZjkuLmE5ZTM3MTdhYjU2NDQ2MzczYjdiNzFjMDUyYmVh
ZjcyYzAxZTMxOGYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvc2NyaXB0cy9tYW5pZmVzdC5qcworKysgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3NjcmlwdHMvbWFuaWZlc3QuanMK
QEAgLTIsMTE5ICsyLDExOSBAQAogZnVuY3Rpb24gX19yZXN1bHRfaGFuZGxlcigpIHsKIAogICAg
IGZ1bmN0aW9uIF9fZ2V0X21ldGFkYXRhKCkgewotCXZhciBvYmogPSBuZXcgT2JqZWN0KCk7Ci0J
dmFyIGF1dGhvciA9IFtdOwotCXZhciBhc3NlcnQgPSBbXTsKLQl2YXIgaGVscCA9IFtdOwotCXZh
ciBtYXRjaCA9IFtdOwotCXZhciBtaXNtYXRjaCA9IFtdOwotCXZhciBmbGFncyA9IFtdOwotCXZh
ciBub2RlczsKLQotCW5vZGVzID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnbGlua1tyZWw9
ImF1dGhvciJdJyk7Ci0JZm9yICh2YXIgaSA9IDA7IGkgPCBub2Rlcy5sZW5ndGg7IGkrKykgewot
CSAgICB2YXIgaHJlZiA9IG5vZGVzW2ldLmdldEF0dHJpYnV0ZSgiaHJlZiIpOwotCSAgICB2YXIg
dGl0bGUgPSBub2Rlc1tpXS5nZXRBdHRyaWJ1dGUoInRpdGxlIik7Ci0JICAgIHZhciBzID0gdGl0
bGU7Ci0JICAgIGlmIChocmVmICE9IG51bGwpIHsKLQkJcyArPSAiIDwiICsgaHJlZiArICI+IjsK
LQkgICAgfQotCSAgICBhdXRob3IucHVzaChzKTsKLQl9Ci0JaWYgKG5vZGVzLmxlbmd0aCA+IDAp
IG9iai5hdXRob3IgPSBhdXRob3I7Ci0Jbm9kZXMgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxs
KCdtZXRhW25hbWU9ImFzc2VydCJdJyk7Ci0JZm9yICh2YXIgaSA9IDA7IGkgPCBub2Rlcy5sZW5n
dGg7IGkrKykgewotCSAgICBhc3NlcnQucHVzaChub2Rlc1tpXS5nZXRBdHRyaWJ1dGUoImNvbnRl
bnQiKSk7Ci0JfQotCWlmIChub2Rlcy5sZW5ndGggPiAwKSBvYmouYXNzZXJ0ID0gYXNzZXJ0Owot
CW5vZGVzID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnbGlua1tyZWw9ImhlbHAiXScpOwot
CWZvciAodmFyIGkgPSAwOyBpIDwgbm9kZXMubGVuZ3RoOyBpKyspIHsKLQkgICAgaGVscC5wdXNo
KG5vZGVzW2ldLmdldEF0dHJpYnV0ZSgiaHJlZiIpKTsKLQl9Ci0JaWYgKG5vZGVzLmxlbmd0aCA+
IDApIG9iai5oZWxwID0gaGVscDsKLQlub2RlcyA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwo
J2xpbmtbcmVsPSJtYXRjaCJdJyk7Ci0JZm9yICh2YXIgaSA9IDA7IGkgPCBub2Rlcy5sZW5ndGg7
IGkrKykgewotCSAgICBtYXRjaC5wdXNoKG5vZGVzW2ldLmdldEF0dHJpYnV0ZSgiaHJlZiIpKTsK
LQl9Ci0JaWYgKG5vZGVzLmxlbmd0aCA+IDApIG9iai5tYXRjaCA9IG1hdGNoOwotCW5vZGVzID0g
ZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnbGlua1tyZWw9Im1pc21hdGNoIl0nKTsKLQlmb3Ig
KHZhciBpID0gMDsgaSA8IG5vZGVzLmxlbmd0aDsgaSsrKSB7Ci0JICAgIG1pc21hdGNoLnB1c2go
bm9kZXNbaV0uZ2V0QXR0cmlidXRlKCJocmVmIikpOwotCX0KLQlpZiAobm9kZXMubGVuZ3RoID4g
MCkgb2JqLm1hdGNoID0gbWlzbWF0Y2g7Ci0Jbm9kZXMgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9y
QWxsKCdtZXRhW25hbWU9ImZsYWdzIl0nKTsKLQlmb3IgKHZhciBpID0gMDsgaSA8IG5vZGVzLmxl
bmd0aDsgaSsrKSB7Ci0JICAgIGZsYWdzLnB1c2gobm9kZXNbaV0uZ2V0QXR0cmlidXRlKCJjb250
ZW50IikpOwotCX0KLQlpZiAobm9kZXMubGVuZ3RoID4gMCkgb2JqLmZsYWdzID0gZmxhZ3M7Ci0K
LQlyZXR1cm4gb2JqOworICAgICAgICB2YXIgb2JqID0gbmV3IE9iamVjdCgpOworICAgICAgICB2
YXIgYXV0aG9yID0gW107CisgICAgICAgIHZhciBhc3NlcnQgPSBbXTsKKyAgICAgICAgdmFyIGhl
bHAgPSBbXTsKKyAgICAgICAgdmFyIG1hdGNoID0gW107CisgICAgICAgIHZhciBtaXNtYXRjaCA9
IFtdOworICAgICAgICB2YXIgZmxhZ3MgPSBbXTsKKyAgICAgICAgdmFyIG5vZGVzOworCisgICAg
ICAgIG5vZGVzID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnbGlua1tyZWw9ImF1dGhvciJd
Jyk7CisgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbm9kZXMubGVuZ3RoOyBpKyspIHsKKyAg
ICAgICAgICAgIHZhciBocmVmID0gbm9kZXNbaV0uZ2V0QXR0cmlidXRlKCJocmVmIik7CisgICAg
ICAgICAgICB2YXIgdGl0bGUgPSBub2Rlc1tpXS5nZXRBdHRyaWJ1dGUoInRpdGxlIik7CisgICAg
ICAgICAgICB2YXIgcyA9IHRpdGxlOworICAgICAgICAgICAgaWYgKGhyZWYgIT0gbnVsbCkgewor
ICAgICAgICAgICAgICAgIHMgKz0gIiA8IiArIGhyZWYgKyAiPiI7CisgICAgICAgICAgICB9Cisg
ICAgICAgICAgICBhdXRob3IucHVzaChzKTsKKyAgICAgICAgfQorICAgICAgICBpZiAobm9kZXMu
bGVuZ3RoID4gMCkgb2JqLmF1dGhvciA9IGF1dGhvcjsKKyAgICAgICAgbm9kZXMgPSBkb2N1bWVu
dC5xdWVyeVNlbGVjdG9yQWxsKCdtZXRhW25hbWU9ImFzc2VydCJdJyk7CisgICAgICAgIGZvciAo
dmFyIGkgPSAwOyBpIDwgbm9kZXMubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgIGFzc2VydC5w
dXNoKG5vZGVzW2ldLmdldEF0dHJpYnV0ZSgiY29udGVudCIpKTsKKyAgICAgICAgfQorICAgICAg
ICBpZiAobm9kZXMubGVuZ3RoID4gMCkgb2JqLmFzc2VydCA9IGFzc2VydDsKKyAgICAgICAgbm9k
ZXMgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCdsaW5rW3JlbD0iaGVscCJdJyk7CisgICAg
ICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbm9kZXMubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAg
IGhlbHAucHVzaChub2Rlc1tpXS5nZXRBdHRyaWJ1dGUoImhyZWYiKSk7CisgICAgICAgIH0KKyAg
ICAgICAgaWYgKG5vZGVzLmxlbmd0aCA+IDApIG9iai5oZWxwID0gaGVscDsKKyAgICAgICAgbm9k
ZXMgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCdsaW5rW3JlbD0ibWF0Y2giXScpOworICAg
ICAgICBmb3IgKHZhciBpID0gMDsgaSA8IG5vZGVzLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAg
ICBtYXRjaC5wdXNoKG5vZGVzW2ldLmdldEF0dHJpYnV0ZSgiaHJlZiIpKTsKKyAgICAgICAgfQor
ICAgICAgICBpZiAobm9kZXMubGVuZ3RoID4gMCkgb2JqLm1hdGNoID0gbWF0Y2g7CisgICAgICAg
IG5vZGVzID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnbGlua1tyZWw9Im1pc21hdGNoIl0n
KTsKKyAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBub2Rlcy5sZW5ndGg7IGkrKykgeworICAg
ICAgICAgICAgbWlzbWF0Y2gucHVzaChub2Rlc1tpXS5nZXRBdHRyaWJ1dGUoImhyZWYiKSk7Cisg
ICAgICAgIH0KKyAgICAgICAgaWYgKG5vZGVzLmxlbmd0aCA+IDApIG9iai5tYXRjaCA9IG1pc21h
dGNoOworICAgICAgICBub2RlcyA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ21ldGFbbmFt
ZT0iZmxhZ3MiXScpOworICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IG5vZGVzLmxlbmd0aDsg
aSsrKSB7CisgICAgICAgICAgICBmbGFncy5wdXNoKG5vZGVzW2ldLmdldEF0dHJpYnV0ZSgiY29u
dGVudCIpKTsKKyAgICAgICAgfQorICAgICAgICBpZiAobm9kZXMubGVuZ3RoID4gMCkgb2JqLmZs
YWdzID0gZmxhZ3M7CisKKyAgICAgICAgcmV0dXJuIG9iajsKICAgICB9CiAKICAgICB2YXIgbWV0
YSA9IF9fZ2V0X21ldGFkYXRhKCk7CiAgICAgdmFyIG5vZGVzOwogCiAgICAgZnVuY3Rpb24gY29w
eShvYmosIHByb3AsIGFycikgewotCWlmICh0eXBlb2YgYXJyICE9PSAidW5kZWZpbmVkIikgewot
CSAgICB2YXIgYSA9IFtdOwotCSAgICBmb3IgKHZhciBpID0gMDsgaTxhcnIubGVuZ3RoO2krKykg
ewotCQlhW2ldID0gYXJyW2ldOwotCSAgICB9CQotCSAgICBvYmpbcHJvcF0gPSBhOwotCX0KKyAg
ICAgICAgaWYgKHR5cGVvZiBhcnIgIT09ICJ1bmRlZmluZWQiKSB7CisgICAgICAgICAgICB2YXIg
YSA9IFtdOworICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGk8YXJyLmxlbmd0aDtpKyspIHsK
KyAgICAgICAgICAgICAgICBhW2ldID0gYXJyW2ldOworICAgICAgICAgICAgfQorICAgICAgICAg
ICAgb2JqW3Byb3BdID0gYTsKKyAgICAgICAgfQogICAgIH0KIAogCiAgICAgdmFyIHJldCA9IG5l
dyBPYmplY3QoKTsKICAgICByZXQubG9jYXRpb24gPSBkb2N1bWVudC5sb2NhdGlvbi5ocmVmOwot
ICAgIHJldC50eXBlICA9ICJtYW51YWwiOyAgICAKKyAgICByZXQudHlwZSAgPSAibWFudWFsIjsK
ICAgICByZXQudGVzdHMgPSBuZXcgT2JqZWN0KCk7CiAKICAgICB2YXIgbm9kZSA9IGRvY3VtZW50
LnF1ZXJ5U2VsZWN0b3IoJ3NjcmlwdFtzcmMkPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIl0n
KTsKICAgICBpZiAobm9kZSAhPT0gbnVsbCkgewotCXJldC50eXBlID0gInNjcmlwdCI7CisgICAg
ICAgIHJldC50eXBlID0gInNjcmlwdCI7CiAgICAgfQogCiAgICAgaWYgKHJldC50eXBlID09PSAi
c2NyaXB0IikgewotCWlmICh0eXBlb2YgbWV0YWRhdGFfZ2VuZXJhdG9yID09PSAidW5kZWZpbmVk
IgotCSAgICB8fCBPYmplY3Qua2V5cyhtZXRhZGF0YV9nZW5lcmF0b3IuY3VycmVudE1ldGFkYXRh
KS5sZW5ndGggPT09IDApCi0JICAgIHJldHVybiAiV1JBUFBFUjpUUllfQUdBSU4iOwotCWVsc2Ug
ewotCSAgICBmb3IgKHZhciBrZXkgaW4gbWV0YWRhdGFfZ2VuZXJhdG9yLmN1cnJlbnRNZXRhZGF0
YSkgewotCQl2YXIgb2JqID0gbWV0YWRhdGFfZ2VuZXJhdG9yLmN1cnJlbnRNZXRhZGF0YVtrZXld
OwotCQl2YXIgbmV3dGVzdCA9IG5ldyBPYmplY3QoKTsKLQkJcmV0LnRlc3RzW2tleV09IG5ld3Rl
c3Q7Ci0JCWlmICh0eXBlb2Ygb2JqLmhlbHAgPT09ICJ1bmRlZmluZWQiKSB7Ci0JCSAgICBjb3B5
KG5ld3Rlc3QsICJoZWxwIiwgbWV0YS5oZWxwKTsKLQkJfSBlbHNlIGlmICh0eXBlb2Ygb2JqLmhl
bHAgPT09ICJzdHJpbmciKSB7Ci0JCSAgICBuZXd0ZXN0LmhlbHAgPSBbIG9iai5oZWxwIF07CSAg
Ci0JCX0KLQkJaWYgKHR5cGVvZiBvYmouYXV0aG9yID09PSAidW5kZWZpbmVkIikgewotCQkgICAg
Y29weShuZXd0ZXN0LCAiYXV0aG9yIiwgbWV0YS5hdXRob3IpOwotCQl9IGVsc2UgaWYgKHR5cGVv
ZiBvYmouYXV0aG9yID09PSAic3RyaW5nIikgewotCQkgICAgbmV3dGVzdC5hdXRob3IgPSBbIG9i
ai5hdXRob3IgXTsJICAKLQkJfQotCQlpZiAodHlwZW9mIG9iai5hc3NlcnQgPT09ICJ1bmRlZmlu
ZWQiKSB7Ci0JCSAgICBjb3B5KG5ld3Rlc3QsICJhc3NlcnQiLCBtZXRhLmFzc2VydCk7Ci0JCX0g
ZWxzZSBpZiAodHlwZW9mIG9iai5hc3NlcnQgPT09ICJzdHJpbmciKSB7Ci0JCSAgICBuZXd0ZXN0
LmFzc2VydCA9IFsgb2JqLmFzc2VydCBdOwkgIAotCQl9Ci0JCWNvcHkobmV3dGVzdCwgIm1hdGNo
IiwgbWV0YS5tYXRjaCk7Ci0JCWNvcHkobmV3dGVzdCwgIm1pc21hdGNoIiwgbWV0YS5taXNtYXRj
aCk7Ci0JCWNvcHkobmV3dGVzdCwgImZsYWdzIiwgbWV0YS5mbGFncyk7Ci0JICAgIH0KLQkgICAg
cmV0dXJuIHJldDsKLQl9CisgICAgICAgIGlmICh0eXBlb2YgbWV0YWRhdGFfZ2VuZXJhdG9yID09
PSAidW5kZWZpbmVkIgorICAgICAgICAgICAgfHwgT2JqZWN0LmtleXMobWV0YWRhdGFfZ2VuZXJh
dG9yLmN1cnJlbnRNZXRhZGF0YSkubGVuZ3RoID09PSAwKQorICAgICAgICAgICAgcmV0dXJuICJX
UkFQUEVSOlRSWV9BR0FJTiI7CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgZm9yICh2YXIg
a2V5IGluIG1ldGFkYXRhX2dlbmVyYXRvci5jdXJyZW50TWV0YWRhdGEpIHsKKyAgICAgICAgICAg
ICAgICB2YXIgb2JqID0gbWV0YWRhdGFfZ2VuZXJhdG9yLmN1cnJlbnRNZXRhZGF0YVtrZXldOwor
ICAgICAgICAgICAgICAgIHZhciBuZXd0ZXN0ID0gbmV3IE9iamVjdCgpOworICAgICAgICAgICAg
ICAgIHJldC50ZXN0c1trZXldPSBuZXd0ZXN0OworICAgICAgICAgICAgICAgIGlmICh0eXBlb2Yg
b2JqLmhlbHAgPT09ICJ1bmRlZmluZWQiKSB7CisgICAgICAgICAgICAgICAgICAgIGNvcHkobmV3
dGVzdCwgImhlbHAiLCBtZXRhLmhlbHApOworICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAodHlw
ZW9mIG9iai5oZWxwID09PSAic3RyaW5nIikgeworICAgICAgICAgICAgICAgICAgICBuZXd0ZXN0
LmhlbHAgPSBbIG9iai5oZWxwIF07CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAg
IGlmICh0eXBlb2Ygb2JqLmF1dGhvciA9PT0gInVuZGVmaW5lZCIpIHsKKyAgICAgICAgICAgICAg
ICAgICAgY29weShuZXd0ZXN0LCAiYXV0aG9yIiwgbWV0YS5hdXRob3IpOworICAgICAgICAgICAg
ICAgIH0gZWxzZSBpZiAodHlwZW9mIG9iai5hdXRob3IgPT09ICJzdHJpbmciKSB7CisgICAgICAg
ICAgICAgICAgICAgIG5ld3Rlc3QuYXV0aG9yID0gWyBvYmouYXV0aG9yIF07CisgICAgICAgICAg
ICAgICAgfQorICAgICAgICAgICAgICAgIGlmICh0eXBlb2Ygb2JqLmFzc2VydCA9PT0gInVuZGVm
aW5lZCIpIHsKKyAgICAgICAgICAgICAgICAgICAgY29weShuZXd0ZXN0LCAiYXNzZXJ0IiwgbWV0
YS5hc3NlcnQpOworICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAodHlwZW9mIG9iai5hc3NlcnQg
PT09ICJzdHJpbmciKSB7CisgICAgICAgICAgICAgICAgICAgIG5ld3Rlc3QuYXNzZXJ0ID0gWyBv
YmouYXNzZXJ0IF07CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGNvcHkobmV3
dGVzdCwgIm1hdGNoIiwgbWV0YS5tYXRjaCk7CisgICAgICAgICAgICAgICAgY29weShuZXd0ZXN0
LCAibWlzbWF0Y2giLCBtZXRhLm1pc21hdGNoKTsKKyAgICAgICAgICAgICAgICBjb3B5KG5ld3Rl
c3QsICJmbGFncyIsIG1ldGEuZmxhZ3MpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcmV0
dXJuIHJldDsKKyAgICAgICAgfQogICAgIH0gZWxzZSB7Ci0JdmFyIG5ld3Rlc3QgPSBtZXRhOwot
CXJldC50ZXN0c1tkb2N1bWVudC50aXRsZV09IG5ld3Rlc3Q7CQorICAgICAgICB2YXIgbmV3dGVz
dCA9IG1ldGE7CisgICAgICAgIHJldC50ZXN0c1tkb2N1bWVudC50aXRsZV09IG5ld3Rlc3Q7CiAK
LQlpZiAodHlwZW9mIG5ld3Rlc3QubWF0Y2ggIT09ICJ1bmRlZmluZWQiCi0JICAgIHx8IHR5cGVv
ZiBuZXd0ZXN0Lm1pc21hdGNoICE9PSAidW5kZWZpbmVkIikgewotCSAgICByZXQudHlwZSA9ICJy
ZWZ0ZXN0IjsKLQl9CisgICAgICAgIGlmICh0eXBlb2YgbmV3dGVzdC5tYXRjaCAhPT0gInVuZGVm
aW5lZCIKKyAgICAgICAgICAgIHx8IHR5cGVvZiBuZXd0ZXN0Lm1pc21hdGNoICE9PSAidW5kZWZp
bmVkIikgeworICAgICAgICAgICAgcmV0LnR5cGUgPSAicmVmdGVzdCI7CisgICAgICAgIH0KIAot
CXJldHVybiByZXQ7CisgICAgICAgIHJldHVybiByZXQ7CiAgICAgfQogCiB9CkBAIC0xMjIsMTkg
KzEyMiwxOSBAQCBmdW5jdGlvbiBfX3Jlc3VsdF9oYW5kbGVyKCkgewogZnVuY3Rpb24gX19naXZl
X3VwKCkgewogICAgIHZhciByZXQgPSBuZXcgT2JqZWN0KCk7CiAgICAgcmV0LmxvY2F0aW9uID0g
ZG9jdW1lbnQubG9jYXRpb24uaHJlZjsKLSAgICByZXQudHlwZSAgPSAibWFudWFsIjsgICAgCisg
ICAgcmV0LnR5cGUgID0gIm1hbnVhbCI7CiAgICAgcmV0LnRlc3RzID0gbmV3IE9iamVjdCgpOwog
CiAgICAgdmFyIG5vZGUgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCdzY3JpcHRbc3JjJD0iL3Jl
c291cmNlcy90ZXN0aGFybmVzcy5qcyJdJyk7CiAgICAgaWYgKG5vZGUgIT09IG51bGwpIHsKLQly
ZXQudHlwZSA9ICJzY3JpcHQiOworICAgICAgICByZXQudHlwZSA9ICJzY3JpcHQiOwogICAgIH0g
ZWxzZSBpZiAodHlwZW9mIG5ld3Rlc3QubWF0Y2ggIT09ICJ1bmRlZmluZWQiCi0JICAgICAgIHx8
IHR5cGVvZiBuZXd0ZXN0Lm1pc21hdGNoICE9PSAidW5kZWZpbmVkIikgewotCXJldC50eXBlID0g
InJlZnRlc3QiOworICAgICAgICAgICAgICAgfHwgdHlwZW9mIG5ld3Rlc3QubWlzbWF0Y2ggIT09
ICJ1bmRlZmluZWQiKSB7CisgICAgICAgIHJldC50eXBlID0gInJlZnRlc3QiOwogICAgIH0KIAog
ICAgIHZhciBuZXd0ZXN0ID0gX19nZXRfbWV0YWRhdGEoKTsKLSAgICByZXQudGVzdHNbZG9jdW1l
bnQudGl0bGVdPSBuZXd0ZXN0OwkKLSAgICAKKyAgICByZXQudGVzdHNbZG9jdW1lbnQudGl0bGVd
PSBuZXd0ZXN0OworCiAgICAgcmV0dXJuIHJldDsKIH0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvc2NyaXB0cy90b2MuanMgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3NjcmlwdHMv
dG9jLmpzCmluZGV4IDEyMGQ0YmUwMzlmZDFhZjkwM2YxMjhmMWMzMDhjMDkxMmUyMGNkM2MuLjI5
N2I3MTgxNDNmOTMxMzIwMDc3NzY4NmUyMzYzYzkzNmU2NDlkNzAgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvc2NyaXB0cy90b2Mu
anMKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy9zY3JpcHRzL3RvYy5qcwpAQCAtMSwxMDYgKzEsMTA2IEBACiAvLyBncmFiIHRoZSB0YWJsZSBv
ZiBjb250ZW50cyBmaWxsZWQgd2l0aCBhbGwgdGhlIGFuY2hvcnMKIGZ1bmN0aW9uIF9fcmVzdWx0
X2hhbmRsZXIoKSB7CiAgICAgZnVuY3Rpb24gZ2V0TWFwKCkgewotCXZhciB0b2NfZWxlbWVudCA9
IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb250ZW50cyIpLm5leHRFbGVtZW50U2libGluZzsK
LQotCWZ1bmN0aW9uIGdldFNlY3Rpb24oKSB7Ci0JICAgIGZ1bmN0aW9uIGdldElkcyhub2RlKSB7
Ci0JCXZhciBhID0gW107Ci0JICAgIAotCQl2YXIgbm9kZXMgPSBub2RlLnF1ZXJ5U2VsZWN0b3JB
bGwoJypbaWRdJyk7Ci0JCWZvciAodmFyIGkgPSAwOyBpIDwgbm9kZXMubGVuZ3RoOyBpKyspIHsK
LQkJICAgIGEucHVzaChub2Rlc1tpXS5nZXRBdHRyaWJ1dGUoImlkIikpOwotCQl9Ci0JCXJldHVy
biBhOwotCSAgICB9Ci0JCi0JICAgIGZ1bmN0aW9uIGdldFRPQ0lkcygpIHsKLQkJdmFyIGEgPSBb
XTsKLQkgICAgCi0JCXZhciBub2RlcyA9IHRvY19lbGVtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ2xp
Jyk7Ci0JCWZvciAodmFyIGkgPSAwOyBpIDwgbm9kZXMubGVuZ3RoOyBpKyspIHsKLQkJICAgIHZh
ciBocmVmID0gbm9kZXNbaV0uZmlyc3RFbGVtZW50Q2hpbGQuZ2V0QXR0cmlidXRlKCJocmVmIik7
Ci0JCSAgICBhLnB1c2goaHJlZi5zdWJzdHJpbmcoMSkpOwotCQl9Ci0JCXJldHVybiBhOwotCSAg
ICB9Ci0KLQkgICAgdmFyIG9iaiA9IG5ldyBPYmplY3QoKTsKLQkgICAgdmFyIGlkcyA9IGdldElk
cyhkb2N1bWVudCk7Ci0JICAgIHZhciB0b2MgPSBnZXRUT0NJZHMoKTsKLSAgICAKLQkgICAgZm9y
ICh2YXIgaSA9IDE7IGkgPCB0b2MubGVuZ3RoOyBpKyspIHsKLQkJdmFyIGtleTEgPSB0b2NbaS0x
XTsKLQkJdmFyIGtleTIgPSB0b2NbaV07Ci0JCXZhciBtYXAgPSBbXTsKLQotCQl2YXIgaW5kZXgx
ID0gaWRzLmluZGV4T2Yoa2V5MSk7Ci0JCXZhciBpbmRleDIgPSBpZHMuaW5kZXhPZihrZXkyKTsK
LQotCQlpZiAoKGluZGV4Mi1pbmRleDEpID4gMSkgewotCQkgICAgZm9yICh2YXIgaiA9IGluZGV4
MSsxOyBqIDwgaW5kZXgyO2orKykgewotCQkJbWFwLnB1c2goaWRzW2pdKTsKLQkJICAgIH0KLQkJ
fQotCi0JCW9ialtrZXkxXSA9IG1hcDsKLQkgICAgfQotCSAgICB7Ci0JCXZhciBrZXkgPSB0b2Nb
dG9jLmxlbmd0aC0xXTsKLQkJdmFyIGluZGV4ID0gaWRzLmluZGV4T2Yoa2V5KTsKLQkJdmFyIG1h
cCA9IFtdOwotCi0JCWZvciAodmFyIGogPSBpbmRleCsxOyBqIDwgaWRzLmxlbmd0aDtqKyspIHsK
LQkJICAgIG1hcC5wdXNoKGlkc1tqXSk7Ci0JCX0KLQkJb2JqW2tleV0gPSBtYXA7Ci0JICAgIH0K
LSAgICAKLQkgICAgcmV0dXJuIG9iajsKLQl9Ci0KLQlmdW5jdGlvbiBzZWN0aW9uKGlkKSB7Ci0J
ICAgIHRoaXMuaWQgPSBpZDsKLQl9Ci0JZnVuY3Rpb24gYWRkU3ViU2VjdGlvbihzZWN0aW9uLCBz
dWIpIHsKLQkgICAgaWYgKHR5cGVvZiBzZWN0aW9uLnNlY3Rpb25zID09PSAidW5kZWZpbmVkIikg
ewotCQlzZWN0aW9uLnNlY3Rpb25zID0gW107Ci0JICAgIH0KLQkgICAgc2VjdGlvbi5zZWN0aW9u
cy5wdXNoKHN1Yik7Ci0JfQotCi0JZnVuY3Rpb24gbGkoZWwsIG1hcCkgewotCSAgICB2YXIgb2Jq
ID0gbmV3IHNlY3Rpb24oZWwuZmlyc3RFbGVtZW50Q2hpbGQuZ2V0QXR0cmlidXRlKCJocmVmIiku
c3Vic3RyaW5nKDEpKTsKLQkgICAgb2JqLnRpdGxlID0gZWwuZmlyc3RFbGVtZW50Q2hpbGQudGV4
dENvbnRlbnQ7Ci0JICAgIHZhciBjaGlsZCA9IGVsLmZpcnN0RWxlbWVudENoaWxkOwotCi0JICAg
IHZhciBtID0gbWFwW29iai5pZF07Ci0JICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbS5sZW5ndGg7
IGkrKykgIHsJICAgIAotCQl2YXIgc3ViID0gbmV3IHNlY3Rpb24obVtpXSk7IAotCQlhZGRTdWJT
ZWN0aW9uKG9iaiwgc3ViKTsKLQkgICAgfQotCSAgICB3aGlsZSAoY2hpbGQgIT09IG51bGwpIHsK
LQkJaWYgKGNoaWxkLm5vZGVOYW1lID09PSAiT0wiKSBvbChjaGlsZCwgb2JqLCBtYXApOwotCQlj
aGlsZCA9IGNoaWxkLm5leHRFbGVtZW50U2libGluZzsKLQkgICAgfQotCSAgICByZXR1cm4gb2Jq
OwotCX0KLQotCWZ1bmN0aW9uIG9sKGVsLCBzZWN0aW9uLCBtYXApIHsKLQkgICAgdmFyIGNoaWxk
ID0gZWwuZmlyc3RFbGVtZW50Q2hpbGQ7Ci0JICAgIHdoaWxlIChjaGlsZCAhPT0gbnVsbCkgewot
CQlhZGRTdWJTZWN0aW9uKHNlY3Rpb24sIGxpKGNoaWxkLCBtYXApKTsKLQkJY2hpbGQgPSBjaGls
ZC5uZXh0RWxlbWVudFNpYmxpbmc7Ci0JICAgIH0KLQl9Ci0KLQl2YXIgbWFwID0gZ2V0U2VjdGlv
bigpOwotCXZhciBtYWluID0gbmV3IHNlY3Rpb24oIl9fX21haW5fX18iKTsKLQltYWluLnRpdGxl
ID0gZG9jdW1lbnQudGl0bGU7Ci0KLQlvbCh0b2NfZWxlbWVudCwgbWFpbiwgbWFwKTsKLQotCXJl
dHVybiBtYWluOworICAgICAgICB2YXIgdG9jX2VsZW1lbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgiY29udGVudHMiKS5uZXh0RWxlbWVudFNpYmxpbmc7CisKKyAgICAgICAgZnVuY3Rpb24g
Z2V0U2VjdGlvbigpIHsKKyAgICAgICAgICAgIGZ1bmN0aW9uIGdldElkcyhub2RlKSB7CisgICAg
ICAgICAgICAgICAgdmFyIGEgPSBbXTsKKworICAgICAgICAgICAgICAgIHZhciBub2RlcyA9IG5v
ZGUucXVlcnlTZWxlY3RvckFsbCgnKltpZF0nKTsKKyAgICAgICAgICAgICAgICBmb3IgKHZhciBp
ID0gMDsgaSA8IG5vZGVzLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICAgICAgICAgIGEucHVz
aChub2Rlc1tpXS5nZXRBdHRyaWJ1dGUoImlkIikpOworICAgICAgICAgICAgICAgIH0KKyAgICAg
ICAgICAgICAgICByZXR1cm4gYTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgZnVuY3Rp
b24gZ2V0VE9DSWRzKCkgeworICAgICAgICAgICAgICAgIHZhciBhID0gW107CisKKyAgICAgICAg
ICAgICAgICB2YXIgbm9kZXMgPSB0b2NfZWxlbWVudC5xdWVyeVNlbGVjdG9yQWxsKCdsaScpOwor
ICAgICAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbm9kZXMubGVuZ3RoOyBpKyspIHsK
KyAgICAgICAgICAgICAgICAgICAgdmFyIGhyZWYgPSBub2Rlc1tpXS5maXJzdEVsZW1lbnRDaGls
ZC5nZXRBdHRyaWJ1dGUoImhyZWYiKTsKKyAgICAgICAgICAgICAgICAgICAgYS5wdXNoKGhyZWYu
c3Vic3RyaW5nKDEpKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgcmV0dXJu
IGE7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHZhciBvYmogPSBuZXcgT2JqZWN0KCk7
CisgICAgICAgICAgICB2YXIgaWRzID0gZ2V0SWRzKGRvY3VtZW50KTsKKyAgICAgICAgICAgIHZh
ciB0b2MgPSBnZXRUT0NJZHMoKTsKKworICAgICAgICAgICAgZm9yICh2YXIgaSA9IDE7IGkgPCB0
b2MubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgICAgICB2YXIga2V5MSA9IHRvY1tpLTFdOwor
ICAgICAgICAgICAgICAgIHZhciBrZXkyID0gdG9jW2ldOworICAgICAgICAgICAgICAgIHZhciBt
YXAgPSBbXTsKKworICAgICAgICAgICAgICAgIHZhciBpbmRleDEgPSBpZHMuaW5kZXhPZihrZXkx
KTsKKyAgICAgICAgICAgICAgICB2YXIgaW5kZXgyID0gaWRzLmluZGV4T2Yoa2V5Mik7CisKKyAg
ICAgICAgICAgICAgICBpZiAoKGluZGV4Mi1pbmRleDEpID4gMSkgeworICAgICAgICAgICAgICAg
ICAgICBmb3IgKHZhciBqID0gaW5kZXgxKzE7IGogPCBpbmRleDI7aisrKSB7CisgICAgICAgICAg
ICAgICAgICAgICAgICBtYXAucHVzaChpZHNbal0pOworICAgICAgICAgICAgICAgICAgICB9Cisg
ICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgb2JqW2tleTFdID0gbWFwOworICAg
ICAgICAgICAgfQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIHZhciBrZXkgPSB0b2Nb
dG9jLmxlbmd0aC0xXTsKKyAgICAgICAgICAgICAgICB2YXIgaW5kZXggPSBpZHMuaW5kZXhPZihr
ZXkpOworICAgICAgICAgICAgICAgIHZhciBtYXAgPSBbXTsKKworICAgICAgICAgICAgICAgIGZv
ciAodmFyIGogPSBpbmRleCsxOyBqIDwgaWRzLmxlbmd0aDtqKyspIHsKKyAgICAgICAgICAgICAg
ICAgICAgbWFwLnB1c2goaWRzW2pdKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAg
ICAgb2JqW2tleV0gPSBtYXA7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHJldHVybiBv
Ymo7CisgICAgICAgIH0KKworICAgICAgICBmdW5jdGlvbiBzZWN0aW9uKGlkKSB7CisgICAgICAg
ICAgICB0aGlzLmlkID0gaWQ7CisgICAgICAgIH0KKyAgICAgICAgZnVuY3Rpb24gYWRkU3ViU2Vj
dGlvbihzZWN0aW9uLCBzdWIpIHsKKyAgICAgICAgICAgIGlmICh0eXBlb2Ygc2VjdGlvbi5zZWN0
aW9ucyA9PT0gInVuZGVmaW5lZCIpIHsKKyAgICAgICAgICAgICAgICBzZWN0aW9uLnNlY3Rpb25z
ID0gW107CisgICAgICAgICAgICB9CisgICAgICAgICAgICBzZWN0aW9uLnNlY3Rpb25zLnB1c2go
c3ViKTsKKyAgICAgICAgfQorCisgICAgICAgIGZ1bmN0aW9uIGxpKGVsLCBtYXApIHsKKyAgICAg
ICAgICAgIHZhciBvYmogPSBuZXcgc2VjdGlvbihlbC5maXJzdEVsZW1lbnRDaGlsZC5nZXRBdHRy
aWJ1dGUoImhyZWYiKS5zdWJzdHJpbmcoMSkpOworICAgICAgICAgICAgb2JqLnRpdGxlID0gZWwu
Zmlyc3RFbGVtZW50Q2hpbGQudGV4dENvbnRlbnQ7CisgICAgICAgICAgICB2YXIgY2hpbGQgPSBl
bC5maXJzdEVsZW1lbnRDaGlsZDsKKworICAgICAgICAgICAgdmFyIG0gPSBtYXBbb2JqLmlkXTsK
KyAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbS5sZW5ndGg7IGkrKykgIHsKKyAgICAg
ICAgICAgICAgICB2YXIgc3ViID0gbmV3IHNlY3Rpb24obVtpXSk7CisgICAgICAgICAgICAgICAg
YWRkU3ViU2VjdGlvbihvYmosIHN1Yik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICB3aGls
ZSAoY2hpbGQgIT09IG51bGwpIHsKKyAgICAgICAgICAgICAgICBpZiAoY2hpbGQubm9kZU5hbWUg
PT09ICJPTCIpIG9sKGNoaWxkLCBvYmosIG1hcCk7CisgICAgICAgICAgICAgICAgY2hpbGQgPSBj
aGlsZC5uZXh0RWxlbWVudFNpYmxpbmc7CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1
cm4gb2JqOworICAgICAgICB9CisKKyAgICAgICAgZnVuY3Rpb24gb2woZWwsIHNlY3Rpb24sIG1h
cCkgeworICAgICAgICAgICAgdmFyIGNoaWxkID0gZWwuZmlyc3RFbGVtZW50Q2hpbGQ7CisgICAg
ICAgICAgICB3aGlsZSAoY2hpbGQgIT09IG51bGwpIHsKKyAgICAgICAgICAgICAgICBhZGRTdWJT
ZWN0aW9uKHNlY3Rpb24sIGxpKGNoaWxkLCBtYXApKTsKKyAgICAgICAgICAgICAgICBjaGlsZCA9
IGNoaWxkLm5leHRFbGVtZW50U2libGluZzsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisg
ICAgICAgIHZhciBtYXAgPSBnZXRTZWN0aW9uKCk7CisgICAgICAgIHZhciBtYWluID0gbmV3IHNl
Y3Rpb24oIl9fX21haW5fX18iKTsKKyAgICAgICAgbWFpbi50aXRsZSA9IGRvY3VtZW50LnRpdGxl
OworCisgICAgICAgIG9sKHRvY19lbGVtZW50LCBtYWluLCBtYXApOworCisgICAgICAgIHJldHVy
biBtYWluOwogICAgIH0KIAogICAgIHJldHVybiBnZXRNYXAoKTsKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvc2VydmUvc2VydmUu
cHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3Nl
cnZlL3NlcnZlLnB5CmluZGV4IDEzOWE1NWNlNWNiOTJmYTUwNzEzOWRlYmMwZmI1MjQ2NDNlYmNi
MzYuLjE4NjhiMWEzNmU1MWMxODc0OTFkNzNhYTI3MDg0ODRkYTg4MjA0MmYgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvc2VydmUv
c2VydmUucHkKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy9zZXJ2ZS9zZXJ2ZS5weQpAQCAtOCw2ICs4LDcgQEAgaW1wb3J0IGpzb24KIGltcG9y
dCBsb2dnaW5nCiBpbXBvcnQgb3MKIGltcG9ydCBwbGF0Zm9ybQoraW1wb3J0IHNpZ25hbAogaW1w
b3J0IHNvY2tldAogaW1wb3J0IHN5cwogaW1wb3J0IHRocmVhZGluZwpAQCAtMTYsNiArMTcsNyBA
QCBpbXBvcnQgdHJhY2ViYWNrCiBmcm9tIHNpeC5tb3ZlcyBpbXBvcnQgdXJsbGliCiBpbXBvcnQg
dXVpZAogZnJvbSBjb2xsZWN0aW9ucyBpbXBvcnQgZGVmYXVsdGRpY3QsIE9yZGVyZWREaWN0Citm
cm9tIGl0ZXJ0b29scyBpbXBvcnQgY2hhaW4sIHByb2R1Y3QKIGZyb20gbXVsdGlwcm9jZXNzaW5n
IGltcG9ydCBQcm9jZXNzLCBFdmVudAogCiBmcm9tIGxvY2FscGF0aHMgaW1wb3J0IHJlcG9fcm9v
dApAQCAtMzEsNiArMzMsMTIgQEAgZnJvbSB3cHRzZXJ2ZS51dGlscyBpbXBvcnQgZ2V0X3BvcnQs
IEhUVFBFeGNlcHRpb24sIGh0dHAyX2NvbXBhdGlibGUKIGZyb20gbW9kX3B5d2Vic29ja2V0IGlt
cG9ydCBzdGFuZGFsb25lIGFzIHB5d2Vic29ja2V0CiAKIAorRURJVF9IT1NUU19IRUxQID0gKCJQ
bGVhc2UgZW5zdXJlIGFsbCB0aGUgbmVjZXNzYXJ5IFdQVCBzdWJkb21haW5zICIKKyAgICAgICAg
ICAgICAgICAgICAiYXJlIG1hcHBlZCB0byBhIGxvb3BiYWNrIGRldmljZSBpbiAvZXRjL2hvc3Rz
LiAiCisgICAgICAgICAgICAgICAgICAgIlNlZSBodHRwczovL2dpdGh1Yi5jb20vd2ViLXBsYXRm
b3JtLXRlc3RzL3dwdCNydW5uaW5nLXRoZS10ZXN0cyAiCisgICAgICAgICAgICAgICAgICAgImZv
ciBpbnN0cnVjdGlvbnMuIikKKworCiBkZWYgcmVwbGFjZV9lbmQocywgb2xkLCBuZXcpOgogICAg
ICIiIgogICAgIEdpdmVuIGEgc3RyaW5nIGBzYCB0aGF0IGVuZHMgd2l0aCBgb2xkYCwgcmVwbGFj
ZSB0aGF0IG9jY3VycmVuY2Ugb2YgYG9sZGAKQEAgLTQwLDYgKzQ4LDE1IEBAIGRlZiByZXBsYWNl
X2VuZChzLCBvbGQsIG5ldyk6CiAgICAgcmV0dXJuIHNbOi1sZW4ob2xkKV0gKyBuZXcKIAogCitk
ZWYgZG9tYWluc19hcmVfZGlzdGluY3QoYSwgYik6CisgICAgYV9wYXJ0cyA9IGEuc3BsaXQoIi4i
KQorICAgIGJfcGFydHMgPSBiLnNwbGl0KCIuIikKKyAgICBtaW5fbGVuZ3RoID0gbWluKGxlbihh
X3BhcnRzKSwgbGVuKGJfcGFydHMpKQorICAgIHNsaWNlX2luZGV4ID0gLTEgKiBtaW5fbGVuZ3Ro
CisKKyAgICByZXR1cm4gYV9wYXJ0c1tzbGljZV9pbmRleDpdICE9IGJfcGFydHNbc2xpY2VfaW5k
ZXg6XQorCisKIGNsYXNzIFdyYXBwZXJIYW5kbGVyKG9iamVjdCk6CiAKICAgICBfX21ldGFfXyA9
IGFiYy5BQkNNZXRhCkBAIC0xMDAsOSArMTE3LDEyIEBAIGNsYXNzIFdyYXBwZXJIYW5kbGVyKG9i
amVjdCk6CiAgICAgICAgIDpwYXJhbSByZXF1ZXN0OiBUaGUgUmVxdWVzdCBiZWluZyBwcm9jZXNz
ZWQuCiAgICAgICAgICIiIgogICAgICAgICBwYXRoID0gc2VsZi5fZ2V0X3BhdGgoZmlsZXN5c3Rl
bV9wYXRoKHNlbGYuYmFzZV9wYXRoLCByZXF1ZXN0LCBzZWxmLnVybF9iYXNlKSwgRmFsc2UpCi0g
ICAgICAgIHdpdGggb3BlbihwYXRoLCAicmIiKSBhcyBmOgotICAgICAgICAgICAgZm9yIGtleSwg
dmFsdWUgaW4gcmVhZF9zY3JpcHRfbWV0YWRhdGEoZiwganNfbWV0YV9yZSk6Ci0gICAgICAgICAg
ICAgICAgeWllbGQga2V5LCB2YWx1ZQorICAgICAgICB0cnk6CisgICAgICAgICAgICB3aXRoIG9w
ZW4ocGF0aCwgInJiIikgYXMgZjoKKyAgICAgICAgICAgICAgICBmb3Iga2V5LCB2YWx1ZSBpbiBy
ZWFkX3NjcmlwdF9tZXRhZGF0YShmLCBqc19tZXRhX3JlKToKKyAgICAgICAgICAgICAgICAgICAg
eWllbGQga2V5LCB2YWx1ZQorICAgICAgICBleGNlcHQgSU9FcnJvcjoKKyAgICAgICAgICAgIHJh
aXNlIEhUVFBFeGNlcHRpb24oNDA0KQogCiAgICAgZGVmIF9nZXRfbWV0YShzZWxmLCByZXF1ZXN0
KToKICAgICAgICAgIiIiR2V0IGFuIGl0ZXJhdG9yIG92ZXIgc3RyaW5ncyB0byBpbmplY3QgaW50
byB0aGUgd3JhcHBlciBkb2N1bWVudApAQCAtMjk4LDYgKzMxOCw3IEBAIGRvbmUoKTsKIAogcmV3
cml0ZXMgPSBbKCJHRVQiLCAiL3Jlc291cmNlcy9XZWJJRExQYXJzZXIuanMiLCAiL3Jlc291cmNl
cy93ZWJpZGwyL2xpYi93ZWJpZGwyLmpzIildCiAKKwogY2xhc3MgUm91dGVzQnVpbGRlcihvYmpl
Y3QpOgogICAgIGRlZiBfX2luaXRfXyhzZWxmKToKICAgICAgICAgc2VsZi5mb3JiaWRkZW5fb3Zl
cnJpZGUgPSBbKCJHRVQiLCAiL3Rvb2xzL3J1bm5lci8qIiwgaGFuZGxlcnMuZmlsZV9oYW5kbGVy
KSwKQEAgLTMwNiw4ICszMjcsNyBAQCBjbGFzcyBSb3V0ZXNCdWlsZGVyKG9iamVjdCk6CiAKICAg
ICAgICAgc2VsZi5mb3JiaWRkZW4gPSBbKCIqIiwgIi9fY2VydHMvKiIsIGhhbmRsZXJzLkVycm9y
SGFuZGxlcig0MDQpKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgKCIqIiwgIi90b29scy8q
IiwgaGFuZGxlcnMuRXJyb3JIYW5kbGVyKDQwNCkpLAotICAgICAgICAgICAgICAgICAgICAgICAg
ICAoIioiLCAie3NwZWN9L3Rvb2xzLyoiLCBoYW5kbGVycy5FcnJvckhhbmRsZXIoNDA0KSksCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICgiKiIsICIvc2VydmUucHkiLCBoYW5kbGVycy5FcnJv
ckhhbmRsZXIoNDA0KSldCisgICAgICAgICAgICAgICAgICAgICAgICAgICgiKiIsICJ7c3BlY30v
dG9vbHMvKiIsIGhhbmRsZXJzLkVycm9ySGFuZGxlcig0MDQpKV0KIAogICAgICAgICBzZWxmLmV4
dHJhID0gW10KIApAQCAtMzc4LDE1ICszOTgsMTcgQEAgZGVmIGJ1aWxkX3JvdXRlcyhhbGlhc2Vz
KToKIAogCiBjbGFzcyBTZXJ2ZXJQcm9jKG9iamVjdCk6Ci0gICAgZGVmIF9faW5pdF9fKHNlbGYp
OgorICAgIGRlZiBfX2luaXRfXyhzZWxmLCBzY2hlbWU9Tm9uZSk6CiAgICAgICAgIHNlbGYucHJv
YyA9IE5vbmUKICAgICAgICAgc2VsZi5kYWVtb24gPSBOb25lCiAgICAgICAgIHNlbGYuc3RvcCA9
IEV2ZW50KCkKKyAgICAgICAgc2VsZi5zY2hlbWUgPSBzY2hlbWUKIAogICAgIGRlZiBzdGFydChz
ZWxmLCBpbml0X2Z1bmMsIGhvc3QsIHBvcnQsIHBhdGhzLCByb3V0ZXMsIGJpbmRfYWRkcmVzcywg
Y29uZmlnLCAqKmt3YXJncyk6CiAgICAgICAgIHNlbGYucHJvYyA9IFByb2Nlc3ModGFyZ2V0PXNl
bGYuY3JlYXRlX2RhZW1vbiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmdzPShpbml0
X2Z1bmMsIGhvc3QsIHBvcnQsIHBhdGhzLCByb3V0ZXMsIGJpbmRfYWRkcmVzcywKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBjb25maWcpLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIG5hbWU9JyVzIG9uIHBvcnQgJXMnICUgKHNlbGYuc2NoZW1lLCBwb3J0KSwKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBrd2FyZ3M9a3dhcmdzKQogICAgICAgICBzZWxmLnByb2Mu
ZGFlbW9uID0gVHJ1ZQogICAgICAgICBzZWxmLnByb2Muc3RhcnQoKQpAQCAtNDM5LDE4ICs0NjEs
MTkgQEAgZGVmIGNoZWNrX3N1YmRvbWFpbnMoY29uZmlnKToKICAgICB3cmFwcGVyLnN0YXJ0KHN0
YXJ0X2h0dHBfc2VydmVyLCBob3N0LCBwb3J0LCBwYXRocywgYnVpbGRfcm91dGVzKGFsaWFzZXMp
LAogICAgICAgICAgICAgICAgICAgYmluZF9hZGRyZXNzLCBjb25maWcpCiAKKyAgICB1cmwgPSAi
aHR0cDovL3t9Ont9LyIuZm9ybWF0KGhvc3QsIHBvcnQpCiAgICAgY29ubmVjdGVkID0gRmFsc2UK
ICAgICBmb3IgaSBpbiByYW5nZSgxMCk6CiAgICAgICAgIHRyeToKLSAgICAgICAgICAgIHVybGxp
Yi5yZXF1ZXN0LnVybG9wZW4oImh0dHA6Ly8lczolZC8iICUgKGhvc3QsIHBvcnQpKQorICAgICAg
ICAgICAgdXJsbGliLnJlcXVlc3QudXJsb3Blbih1cmwpCiAgICAgICAgICAgICBjb25uZWN0ZWQg
PSBUcnVlCiAgICAgICAgICAgICBicmVhawogICAgICAgICBleGNlcHQgdXJsbGliLmVycm9yLlVS
TEVycm9yOgogICAgICAgICAgICAgdGltZS5zbGVlcCgxKQogCiAgICAgaWYgbm90IGNvbm5lY3Rl
ZDoKLSAgICAgICAgbG9nZ2VyLmNyaXRpY2FsKCJGYWlsZWQgdG8gY29ubmVjdCB0byB0ZXN0IHNl
cnZlciBvbiBodHRwOi8vJXM6JXMuICIKLSAgICAgICAgICAgICAgICAgICAgICAgICJZb3UgbWF5
IG5lZWQgdG8gZWRpdCAvZXRjL2hvc3RzIG9yIHNpbWlsYXIsIHNlZSBSRUFETUUubWQuIiAlICho
b3N0LCBwb3J0KSkKKyAgICAgICAgbG9nZ2VyLmNyaXRpY2FsKCJGYWlsZWQgdG8gY29ubmVjdCB0
byB0ZXN0IHNlcnZlciAiCisgICAgICAgICAgICAgICAgICAgICAgICAib24ge30uIHt9Ii5mb3Jt
YXQodXJsLCBFRElUX0hPU1RTX0hFTFApKQogICAgICAgICBzeXMuZXhpdCgxKQogCiAgICAgZm9y
IGRvbWFpbiBpbiBjb25maWcuZG9tYWluc19zZXQ6CkBAIC00NjAsOCArNDgzLDcgQEAgZGVmIGNo
ZWNrX3N1YmRvbWFpbnMoY29uZmlnKToKICAgICAgICAgdHJ5OgogICAgICAgICAgICAgdXJsbGli
LnJlcXVlc3QudXJsb3BlbigiaHR0cDovLyVzOiVkLyIgJSAoZG9tYWluLCBwb3J0KSkKICAgICAg
ICAgZXhjZXB0IEV4Y2VwdGlvbjoKLSAgICAgICAgICAgIGxvZ2dlci5jcml0aWNhbCgiRmFpbGVk
IHByb2JpbmcgZG9tYWluICVzLiAiCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIllvdSBt
YXkgbmVlZCB0byBlZGl0IC9ldGMvaG9zdHMgb3Igc2ltaWxhciwgc2VlIFJFQURNRS5tZC4iICUg
ZG9tYWluKQorICAgICAgICAgICAgbG9nZ2VyLmNyaXRpY2FsKCJGYWlsZWQgcHJvYmluZyBkb21h
aW4ge30uIHt9Ii5mb3JtYXQoZG9tYWluLCBFRElUX0hPU1RTX0hFTFApKQogICAgICAgICAgICAg
c3lzLmV4aXQoMSkKIAogICAgIHdyYXBwZXIud2FpdCgpCkBAIC00OTAsMjMgKzUxMiwyNCBAQCBk
ZWYgbWFrZV9ob3N0c19maWxlKGNvbmZpZywgaG9zdCk6CiBkZWYgc3RhcnRfc2VydmVycyhob3N0
LCBwb3J0cywgcGF0aHMsIHJvdXRlcywgYmluZF9hZGRyZXNzLCBjb25maWcsICoqa3dhcmdzKToK
ICAgICBzZXJ2ZXJzID0gZGVmYXVsdGRpY3QobGlzdCkKICAgICBmb3Igc2NoZW1lLCBwb3J0cyBp
biBwb3J0cy5pdGVtcygpOgotICAgICAgICBhc3NlcnQgbGVuKHBvcnRzKSA9PSB7Imh0dHAiOjJ9
LmdldChzY2hlbWUsIDEpCisgICAgICAgIGFzc2VydCBsZW4ocG9ydHMpID09IHsiaHR0cCI6IDJ9
LmdldChzY2hlbWUsIDEpCiAKLSAgICAgICAgIyBUT0RPIE5vdCB2ZXJ5IGlkZWFsLCBsb29rIGlu
dG8gcmVtb3ZpbmcgaXQgaW4gdGhlIGZ1dHVyZQotICAgICAgICAjIENoZWNrIHRoYXQgcHl0aG9u
IDIuNy4xNSBpcyBiZWluZyB1c2VkIGZvciBIVFRQLzIuMAorICAgICAgICAjIElmIHRyeWluZyB0
byBzdGFydCBIVFRQLzIuMCBzZXJ2ZXIsIGNoZWNrIGNvbXBhdGliaWxpdHkKICAgICAgICAgaWYg
c2NoZW1lID09ICdodHRwMicgYW5kIG5vdCBodHRwMl9jb21wYXRpYmxlKCk6CisgICAgICAgICAg
ICBsb2dnZXIuZXJyb3IoJ0Nhbm5vdCBzdGFydCBIVFRQLzIuMCBzZXJ2ZXIgYXMgdGhlIGVudmly
b25tZW50IGlzIG5vdCBjb21wYXRpYmxlLiAnICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAn
UmVxdWlyZXMgUHl0aG9uIDIuNy4xMCsgKDwgMy4wKSBhbmQgT3BlblNTTCAxLjAuMisnKQogICAg
ICAgICAgICAgY29udGludWUKIAogICAgICAgICBmb3IgcG9ydCBpbiBwb3J0czoKICAgICAgICAg
ICAgIGlmIHBvcnQgaXMgTm9uZToKICAgICAgICAgICAgICAgICBjb250aW51ZQotICAgICAgICAg
ICAgaW5pdF9mdW5jID0geyJodHRwIjpzdGFydF9odHRwX3NlcnZlciwKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAiaHR0cHMiOnN0YXJ0X2h0dHBzX3NlcnZlciwKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAiaHR0cDIiOnN0YXJ0X2h0dHAyX3NlcnZlciwKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAid3MiOnN0YXJ0X3dzX3NlcnZlciwKLSAgICAgICAgICAgICAgICAgICAgICAgICAid3Nz
IjpzdGFydF93c3Nfc2VydmVyfVtzY2hlbWVdCisgICAgICAgICAgICBpbml0X2Z1bmMgPSB7Imh0
dHAiOiBzdGFydF9odHRwX3NlcnZlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAiaHR0cHMi
OiBzdGFydF9odHRwc19zZXJ2ZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgImh0dHAyIjog
c3RhcnRfaHR0cDJfc2VydmVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICJ3cyI6IHN0YXJ0
X3dzX3NlcnZlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAid3NzIjogc3RhcnRfd3NzX3Nl
cnZlcn1bc2NoZW1lXQogCi0gICAgICAgICAgICBzZXJ2ZXJfcHJvYyA9IFNlcnZlclByb2MoKQor
ICAgICAgICAgICAgc2VydmVyX3Byb2MgPSBTZXJ2ZXJQcm9jKHNjaGVtZT1zY2hlbWUpCiAgICAg
ICAgICAgICBzZXJ2ZXJfcHJvYy5zdGFydChpbml0X2Z1bmMsIGhvc3QsIHBvcnQsIHBhdGhzLCBy
b3V0ZXMsIGJpbmRfYWRkcmVzcywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbmZp
ZywgKiprd2FyZ3MpCiAgICAgICAgICAgICBzZXJ2ZXJzW3NjaGVtZV0uYXBwZW5kKChwb3J0LCBz
ZXJ2ZXJfcHJvYykpCkBAIC01NTgsMTQgKzU4MSwxNCBAQCBkZWYgc3RhcnRfaHR0cDJfc2VydmVy
KGhvc3QsIHBvcnQsIHBhdGhzLCByb3V0ZXMsIGJpbmRfYWRkcmVzcywgY29uZmlnLCAqKmt3YXJn
cwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5jcnlwdF9hZnRlcl9jb25uZWN0
PWNvbmZpZy5zc2xfY29uZmlnWyJlbmNyeXB0X2FmdGVyX2Nvbm5lY3QiXSwKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGxhdGVuY3k9a3dhcmdzLmdldCgibGF0ZW5jeSIpLAogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaHR0cDI9VHJ1ZSkKKworCiBjbGFzcyBXZWJT
b2NrZXREYWVtb24ob2JqZWN0KToKLSAgICBkZWYgX19pbml0X18oc2VsZiwgaG9zdCwgcG9ydCwg
ZG9jX3Jvb3QsIGhhbmRsZXJzX3Jvb3QsIGxvZ19sZXZlbCwgYmluZF9hZGRyZXNzLAotICAgICAg
ICAgICAgICAgICBzc2xfY29uZmlnKToKKyAgICBkZWYgX19pbml0X18oc2VsZiwgaG9zdCwgcG9y
dCwgZG9jX3Jvb3QsIGhhbmRsZXJzX3Jvb3QsIGJpbmRfYWRkcmVzcywgc3NsX2NvbmZpZyk6CiAg
ICAgICAgIHNlbGYuaG9zdCA9IGhvc3QKICAgICAgICAgY21kX2FyZ3MgPSBbIi1wIiwgcG9ydCwK
ICAgICAgICAgICAgICAgICAgICAgIi1kIiwgZG9jX3Jvb3QsCi0gICAgICAgICAgICAgICAgICAg
ICItdyIsIGhhbmRsZXJzX3Jvb3QsCi0gICAgICAgICAgICAgICAgICAgICItLWxvZy1sZXZlbCIs
IGxvZ19sZXZlbF0KKyAgICAgICAgICAgICAgICAgICAgIi13IiwgaGFuZGxlcnNfcm9vdF0KIAog
ICAgICAgICBpZiBzc2xfY29uZmlnIGlzIG5vdCBOb25lOgogICAgICAgICAgICAgIyBUaGlzIGlz
IHVzdWFsbHkgZG9uZSB0aHJvdWdoIHB5d2Vic29ja2V0Lm1haW4sIGhvd2V2ZXIgd2UncmUKQEAg
LTYyMywyOCArNjQ2LDM5IEBAIGNsYXNzIFdlYlNvY2tldERhZW1vbihvYmplY3QpOgogICAgICAg
ICBzZWxmLnNlcnZlciA9IE5vbmUKIAogCitkZWYgcmVsZWFzZV9tb3psb2dfbG9jaygpOgorICAg
IHRyeToKKyAgICAgICAgZnJvbSBtb3psb2cuc3RydWN0dXJlZGxvZyBpbXBvcnQgU3RydWN0dXJl
ZExvZ2dlcgorICAgICAgICB0cnk6CisgICAgICAgICAgICBTdHJ1Y3R1cmVkTG9nZ2VyLl9sb2Nr
LnJlbGVhc2UoKQorICAgICAgICBleGNlcHQgdGhyZWFkaW5nLlRocmVhZEVycm9yOgorICAgICAg
ICAgICAgcGFzcworICAgIGV4Y2VwdCBJbXBvcnRFcnJvcjoKKyAgICAgICAgcGFzcworCisKIGRl
ZiBzdGFydF93c19zZXJ2ZXIoaG9zdCwgcG9ydCwgcGF0aHMsIHJvdXRlcywgYmluZF9hZGRyZXNz
LCBjb25maWcsICoqa3dhcmdzKToKLSAgICAjIEVuc3VyZSB0aGF0IHdoZW4gd2Ugc3RhcnQgdGhp
cyBpbiBhIG5ldyBwcm9jZXNzIHdlIGRvbid0IGluaGVyaXQgdGhlCi0gICAgIyBnbG9iYWwgbG9j
ayBpbiB0aGUgbG9nZ2luZyBtb2R1bGUKKyAgICAjIEVuc3VyZSB0aGF0IHdoZW4gd2Ugc3RhcnQg
dGhpcyBpbiBhIG5ldyBwcm9jZXNzIHdlIGhhdmUgdGhlIGdsb2JhbCBsb2NrCisgICAgIyBpbiB0
aGUgbG9nZ2luZyBtb2R1bGUgdW5sb2NrZWQKICAgICByZWxvYWRfbW9kdWxlKGxvZ2dpbmcpCisg
ICAgcmVsZWFzZV9tb3psb2dfbG9jaygpCiAgICAgcmV0dXJuIFdlYlNvY2tldERhZW1vbihob3N0
LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RyKHBvcnQpLAogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgcmVwb19yb290LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uZmln
LnBhdGhzWyJ3c19kb2Nfcm9vdCJdLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgImRlYnVn
IiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJpbmRfYWRkcmVzcywKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHNzbF9jb25maWcgPSBOb25lKQorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgc3NsX2NvbmZpZz1Ob25lKQogCiAKIGRlZiBzdGFydF93c3Nfc2VydmVyKGhvc3QsIHBv
cnQsIHBhdGhzLCByb3V0ZXMsIGJpbmRfYWRkcmVzcywgY29uZmlnLCAqKmt3YXJncyk6Ci0gICAg
IyBFbnN1cmUgdGhhdCB3aGVuIHdlIHN0YXJ0IHRoaXMgaW4gYSBuZXcgcHJvY2VzcyB3ZSBkb24n
dCBpbmhlcml0IHRoZQotICAgICMgZ2xvYmFsIGxvY2sgaW4gdGhlIGxvZ2dpbmcgbW9kdWxlCisg
ICAgIyBFbnN1cmUgdGhhdCB3aGVuIHdlIHN0YXJ0IHRoaXMgaW4gYSBuZXcgcHJvY2VzcyB3ZSBo
YXZlIHRoZSBnbG9iYWwgbG9jaworICAgICMgaW4gdGhlIGxvZ2dpbmcgbW9kdWxlIHVubG9ja2Vk
CiAgICAgcmVsb2FkX21vZHVsZShsb2dnaW5nKQorICAgIHJlbGVhc2VfbW96bG9nX2xvY2soKQog
ICAgIHJldHVybiBXZWJTb2NrZXREYWVtb24oaG9zdCwKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHN0cihwb3J0KSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcG9fcm9vdCwKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGNvbmZpZy5wYXRoc1sid3NfZG9jX3Jvb3QiXSwKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICJkZWJ1ZyIsCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBiaW5kX2FkZHJlc3MsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25maWcuc3Ns
X2NvbmZpZykKIApAQCAtNzAxLDYgKzczNSwxMSBAQCBkZWYgYnVpbGRfY29uZmlnKG92ZXJyaWRl
X3BhdGg9Tm9uZSwgKiprd2FyZ3MpOgogCiAgICAgcmV0dXJuIHJ2CiAKKworZGVmIF9tYWtlX3N1
YmRvbWFpbnNfcHJvZHVjdChzLCBkZXB0aD0yKToKKyAgICByZXR1cm4ge3UiLiIuam9pbih4KSBm
b3IgeCBpbiBjaGFpbigqKHByb2R1Y3QocywgcmVwZWF0PWkpIGZvciBpIGluIHJhbmdlKDEsIGRl
cHRoKzEpKSl9CisKKwogX3N1YmRvbWFpbnMgPSB7dSJ3d3ciLAogICAgICAgICAgICAgICAgdSJ3
d3cxIiwKICAgICAgICAgICAgICAgIHUid3d3MiIsCkBAIC03MDksMTEgKzc0OCwxNiBAQCBfc3Vi
ZG9tYWlucyA9IHt1Ind3dyIsCiAKIF9ub3Rfc3ViZG9tYWlucyA9IHt1Im5vbmV4aXN0ZW50In0K
IAorX3N1YmRvbWFpbnMgPSBfbWFrZV9zdWJkb21haW5zX3Byb2R1Y3QoX3N1YmRvbWFpbnMpCisK
K19ub3Rfc3ViZG9tYWlucyA9IF9tYWtlX3N1YmRvbWFpbnNfcHJvZHVjdChfbm90X3N1YmRvbWFp
bnMpCisKIAogY2xhc3MgQ29uZmlnQnVpbGRlcihjb25maWcuQ29uZmlnQnVpbGRlcik6CiAgICAg
IiIic2VydmUgY29uZmlnCiAKLSAgICB0aGlzIHN1YmNsYXNzZXMgd3B0c2VydmUuY29uZmlnLkNv
bmZpZ0J1aWxkZXIgdG8gYWRkIHNlcnZlIGNvbmZpZyBvcHRpb25zIiIiCisgICAgVGhpcyBzdWJj
bGFzc2VzIHdwdHNlcnZlLmNvbmZpZy5Db25maWdCdWlsZGVyIHRvIGFkZCBzZXJ2ZSBjb25maWcg
b3B0aW9ucy4KKyAgICAiIiIKIAogICAgIF9kZWZhdWx0ID0gewogICAgICAgICAiYnJvd3Nlcl9o
b3N0IjogIndlYi1wbGF0Zm9ybS50ZXN0IiwKQEAgLTczOCw3ICs3ODIsOSBAQCBjbGFzcyBDb25m
aWdCdWlsZGVyKGNvbmZpZy5Db25maWdCdWlsZGVyKToKICAgICAgICAgICAgICJvcGVuc3NsIjog
ewogICAgICAgICAgICAgICAgICJvcGVuc3NsX2JpbmFyeSI6ICJvcGVuc3NsIiwKICAgICAgICAg
ICAgICAgICAiYmFzZV9wYXRoIjogIl9jZXJ0cyIsCisgICAgICAgICAgICAgICAgInBhc3N3b3Jk
IjogIndlYi1wbGF0Zm9ybS10ZXN0cyIsCiAgICAgICAgICAgICAgICAgImZvcmNlX3JlZ2VuZXJh
dGUiOiBGYWxzZSwKKyAgICAgICAgICAgICAgICAiZHVyYXRpb24iOiAzMCwKICAgICAgICAgICAg
ICAgICAiYmFzZV9jb25mX3BhdGgiOiBOb25lCiAgICAgICAgICAgICB9LAogICAgICAgICAgICAg
InByZWdlbmVyYXRlZCI6IHsKQEAgLTc2MSw2ICs4MDcsMTQgQEAgY2xhc3MgQ29uZmlnQnVpbGRl
cihjb25maWcuQ29uZmlnQnVpbGRlcik6CiAgICAgICAgICAgICAqYXJncywKICAgICAgICAgICAg
ICoqa3dhcmdzCiAgICAgICAgICkKKyAgICAgICAgd2l0aCBzZWxmIGFzIGM6CisgICAgICAgICAg
ICBicm93c2VyX2hvc3QgPSBjLmdldCgiYnJvd3Nlcl9ob3N0IikKKyAgICAgICAgICAgIGFsdGVy
bmF0ZV9ob3N0ID0gYy5nZXQoImFsdGVybmF0ZV9ob3N0cyIsIHt9KS5nZXQoImFsdCIpCisKKyAg
ICAgICAgICAgIGlmIG5vdCBkb21haW5zX2FyZV9kaXN0aW5jdChicm93c2VyX2hvc3QsIGFsdGVy
bmF0ZV9ob3N0KToKKyAgICAgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKAorICAgICAgICAg
ICAgICAgICAgICAiQWx0ZXJuYXRlIGhvc3QgbXVzdCBiZSBkaXN0aW5jdCBmcm9tIGJyb3dzZXIg
aG9zdCIKKyAgICAgICAgICAgICAgICApCiAKICAgICBkZWYgX2dldF93c19kb2Nfcm9vdChzZWxm
LCBkYXRhKToKICAgICAgICAgaWYgZGF0YVsid3NfZG9jX3Jvb3QiXSBpcyBub3QgTm9uZToKQEAg
LTc5OCwxMSArODUyLDE5IEBAIGRlZiBnZXRfcGFyc2VyKCk6CiAKIAogZGVmIHJ1bigqKmt3YXJn
cyk6CisgICAgcmVjZWl2ZWRfc2lnbmFsID0gdGhyZWFkaW5nLkV2ZW50KCkKKwogICAgIHdpdGgg
YnVpbGRfY29uZmlnKG9zLnBhdGguam9pbihyZXBvX3Jvb3QsICJjb25maWcuanNvbiIpLAogICAg
ICAgICAgICAgICAgICAgICAgICoqa3dhcmdzKSBhcyBjb25maWc6CiAgICAgICAgIGdsb2JhbCBs
b2dnZXIKICAgICAgICAgbG9nZ2VyID0gY29uZmlnLmxvZ2dlcgogICAgICAgICBzZXRfbG9nZ2Vy
KGxvZ2dlcikKKyAgICAgICAgIyBDb25maWd1cmUgdGhlIHJvb3QgbG9nZ2VyIHRvIGNvdmVyIHRo
aXJkLXBhcnR5IGxpYnJhcmllcy4KKyAgICAgICAgbG9nZ2luZy5nZXRMb2dnZXIoKS5zZXRMZXZl
bChjb25maWcubG9nX2xldmVsKQorCisgICAgICAgIGRlZiBoYW5kbGVfc2lnbmFsKHNpZ251bSwg
ZnJhbWUpOgorICAgICAgICAgICAgbG9nZ2VyLmRlYnVnKCJSZWNlaXZlZCBzaWduYWwgJXMuIFNo
dXR0aW5nIGRvd24uIiwgc2lnbnVtKQorICAgICAgICAgICAgcmVjZWl2ZWRfc2lnbmFsLnNldCgp
CiAKICAgICAgICAgYmluZF9hZGRyZXNzID0gY29uZmlnWyJiaW5kX2FkZHJlc3MiXQogCkBAIC04
MjUsMTMgKzg4NywyMCBAQCBkZWYgcnVuKCoqa3dhcmdzKToKIAogICAgICAgICB3aXRoIHN0YXNo
LlN0YXNoU2VydmVyKHN0YXNoX2FkZHJlc3MsIGF1dGhrZXk9c3RyKHV1aWQudXVpZDQoKSkpOgog
ICAgICAgICAgICAgc2VydmVycyA9IHN0YXJ0KGNvbmZpZywgYnVpbGRfcm91dGVzKGNvbmZpZ1si
YWxpYXNlcyJdKSwgKiprd2FyZ3MpCisgICAgICAgICAgICBzaWduYWwuc2lnbmFsKHNpZ25hbC5T
SUdURVJNLCBoYW5kbGVfc2lnbmFsKQorICAgICAgICAgICAgc2lnbmFsLnNpZ25hbChzaWduYWwu
U0lHSU5ULCBoYW5kbGVfc2lnbmFsKQorCisgICAgICAgICAgICB3aGlsZSBhbGwoaXRlbS5pc19h
bGl2ZSgpIGZvciBpdGVtIGluIGl0ZXJfcHJvY3Moc2VydmVycykpIGFuZCBub3QgcmVjZWl2ZWRf
c2lnbmFsLmlzX3NldCgpOgorICAgICAgICAgICAgICAgIGZvciBpdGVtIGluIGl0ZXJfcHJvY3Mo
c2VydmVycyk6CisgICAgICAgICAgICAgICAgICAgIGl0ZW0uam9pbigxKQorICAgICAgICAgICAg
ZXhpdGVkID0gW2l0ZW0gZm9yIGl0ZW0gaW4gaXRlcl9wcm9jcyhzZXJ2ZXJzKSBpZiBub3QgaXRl
bS5pc19hbGl2ZSgpXQorICAgICAgICAgICAgc3ViamVjdCA9ICJzdWJwcm9jZXNzIiBpZiBsZW4o
ZXhpdGVkKSA9PSAxIGVsc2UgInN1YnByb2Nlc3NlcyIKKworICAgICAgICAgICAgbG9nZ2VyLmlu
Zm8oIiVzICVzIGV4aXRlZDoiICUgKGxlbihleGl0ZWQpLCBzdWJqZWN0KSkKKworICAgICAgICAg
ICAgZm9yIGl0ZW0gaW4gaXRlcl9wcm9jcyhzZXJ2ZXJzKToKKyAgICAgICAgICAgICAgICBsb2dn
ZXIuaW5mbygiU3RhdHVzIG9mICVzOlx0JXMiICUgKGl0ZW0ubmFtZSwgInJ1bm5pbmciIGlmIGl0
ZW0uaXNfYWxpdmUoKSBlbHNlICJub3QgcnVubmluZyIpKQogCi0gICAgICAgICAgICB0cnk6Ci0g
ICAgICAgICAgICAgICAgd2hpbGUgYW55KGl0ZW0uaXNfYWxpdmUoKSBmb3IgaXRlbSBpbiBpdGVy
X3Byb2NzKHNlcnZlcnMpKToKLSAgICAgICAgICAgICAgICAgICAgZm9yIGl0ZW0gaW4gaXRlcl9w
cm9jcyhzZXJ2ZXJzKToKLSAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW0uam9pbigxKQotICAg
ICAgICAgICAgZXhjZXB0IEtleWJvYXJkSW50ZXJydXB0OgotICAgICAgICAgICAgICAgIGxvZ2dl
ci5pbmZvKCJTaHV0dGluZyBkb3duIikKIAogZGVmIG1haW4oKToKICAgICBrd2FyZ3MgPSB2YXJz
KGdldF9wYXJzZXIoKS5wYXJzZV9hcmdzKCkpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3NlcnZlL3Rlc3RfZnVuY3Rpb25hbC5w
eSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvc2Vy
dmUvdGVzdF9mdW5jdGlvbmFsLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjg5NDQ3OWQxMTFjOTBkYWQ5MjVjNjgz
Y2IwZTkzYWMxM2ZjNjg2MTkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3NlcnZlL3Rlc3RfZnVuY3Rpb25hbC5weQpA
QCAtMCwwICsxLDc5IEBACit0cnk6CisgICAgZnJvbSBpbXBvcnRsaWIgaW1wb3J0IHJlbG9hZAor
ZXhjZXB0IEltcG9ydEVycm9yOgorICAgIHBhc3MKK2ltcG9ydCBqc29uCitpbXBvcnQgb3MKK3Ry
eToKKyAgICAjIGltcG9ydCBRdWV1ZSB1bmRlciBpdHMgUHl0aG9uIDMgbmFtZQorICAgIGltcG9y
dCBRdWV1ZSBhcyBxdWV1ZSAgIyBub3FhOiBOODEzCitleGNlcHQgSW1wb3J0RXJyb3I6CisgICAg
aW1wb3J0IHF1ZXVlCitpbXBvcnQgdGVtcGZpbGUKK2ltcG9ydCB0aHJlYWRpbmcKKworaW1wb3J0
IHB5dGVzdAorCitmcm9tIC4gaW1wb3J0IHNlcnZlCitmcm9tIHdwdHNlcnZlIGltcG9ydCBsb2dn
ZXIKKworCitjbGFzcyBTZXJ2ZXJQcm9jU3B5KHNlcnZlLlNlcnZlclByb2MpOgorICAgIGluc3Rh
bmNlcyA9IE5vbmUKKworICAgIGRlZiBzdGFydChzZWxmLCAqYXJncywgKiprd2FyZ3MpOgorICAg
ICAgICByZXN1bHQgPSBzdXBlcihTZXJ2ZXJQcm9jU3B5LCBzZWxmKS5zdGFydCgqYXJncywgKipr
d2FyZ3MpCisKKyAgICAgICAgaWYgU2VydmVyUHJvY1NweS5pbnN0YW5jZXMgaXMgbm90IE5vbmU6
CisgICAgICAgICAgICBTZXJ2ZXJQcm9jU3B5Lmluc3RhbmNlcy5wdXQoc2VsZikKKworICAgICAg
ICByZXR1cm4gcmVzdWx0CisKK3NlcnZlLlNlcnZlclByb2MgPSBTZXJ2ZXJQcm9jU3B5CisKK0Bw
eXRlc3QuZml4dHVyZSgpCitkZWYgc2VydmVyX3N1YnByb2Nlc3NlcygpOgorICAgIFNlcnZlclBy
b2NTcHkuaW5zdGFuY2VzID0gcXVldWUuUXVldWUoKQorICAgIHlpZWxkIFNlcnZlclByb2NTcHku
aW5zdGFuY2VzCisgICAgU2VydmVyUHJvY1NweS5pbnN0YW5jZXMgPSBOb25lCisKK0BweXRlc3Qu
Zml4dHVyZSgpCitkZWYgdGVtcGZpbGVfbmFtZSgpOgorICAgIGZkLCBuYW1lID0gdGVtcGZpbGUu
bWtzdGVtcCgpCisgICAgeWllbGQgbmFtZQorICAgIG9zLmNsb3NlKGZkKQorICAgIG9zLnJlbW92
ZShuYW1lKQorCisKK2RlZiB0ZXN0X3N1YnByb2Nlc3NfZXhpdChzZXJ2ZXJfc3VicHJvY2Vzc2Vz
LCB0ZW1wZmlsZV9uYW1lKToKKyAgICB0aW1lb3V0ID0gMzAKKworICAgIGRlZiB0YXJnZXQoKToK
KyAgICAgICAgIyBCeSBkZWZhdWx0LCB0aGUgc2VydmVyIGluaXRpYWxseSBjcmVhdGVzIGEgY2hp
bGQgcHJvY2VzcyB0byB2YWxpZGF0ZQorICAgICAgICAjIGxvY2FsIHN5c3RlbSBjb25maWd1cmF0
aW9uLiBUaGF0IHByb2Nlc3MgaXMgdW5yZWxhdGVkIHRvIHRoZSBiZWhhdmlvcgorICAgICAgICAj
IHVuZGVyIHRlc3QsIGJ1dCBhdCB0aGUgdGltZSBvZiB0aGlzIHdyaXRpbmcsIHRoZSBwYXJlbnQg
dXNlcyB0aGUgc2FtZQorICAgICAgICAjIGNvbnN0cnVjdG9yIHRoYXQgaXMgYWxzbyB1c2VkIHRv
IGNyZWF0ZSB0aGUgbG9uZy1ydW5uaW5nIHByb2Nlc3NlcworICAgICAgICAjIHdoaWNoIGFyZSBy
ZWxldmFudCB0byB0aGlzIGZ1bmN0aW9uYWxpdHkuIERpc2FibGUgdGhlIGNoZWNrIHNvIHRoYXQK
KyAgICAgICAgIyB0aGUgY29uc3RydWN0b3IgaXMgb25seSB1c2VkIHRvIGNyZWF0ZSByZWxldmFu
dCBwcm9jZXNzZXMuCisgICAgICAgIHdpdGggb3Blbih0ZW1wZmlsZV9uYW1lLCAndycpIGFzIGhh
bmRsZToKKyAgICAgICAgICAgIGpzb24uZHVtcCh7ImNoZWNrX3N1YmRvbWFpbnMiOiBGYWxzZSwg
ImJpbmRfYWRkcmVzcyI6IEZhbHNlfSwgaGFuZGxlKQorCisgICAgICAgICMgVGhlIGBsb2dnZXJg
IG1vZHVsZSBmcm9tIHRoZSB3cHRzZXJ2ZXIgcGFja2FnZSB1c2VzIGEgc2luZ2xldG9uCisgICAg
ICAgICMgcGF0dGVybiB3aGljaCByZXNpc3RzIHRlc3RpbmcuIEluIG9yZGVyIHRvIGF2b2lkIGNv
bmZsaWN0aW5nIHdpdGgKKyAgICAgICAgIyBvdGhlciB0ZXN0cyB3aGljaCByZWx5IG9uIHRoYXQg
bW9kdWxlLCBwcmUtZXhpc3Rpbmcgc3RhdGUgaXMKKyAgICAgICAgIyBkaXNjYXJkZWQgdGhyb3Vn
aCBhbiBleHBsaWNpdCAicmVsb2FkIiBvcGVyYXRpb24uCisgICAgICAgIHJlbG9hZChsb2dnZXIp
CisKKyAgICAgICAgc2VydmUucnVuKGNvbmZpZ19wYXRoPXRlbXBmaWxlX25hbWUpCisKKyAgICB0
aHJlYWQgPSB0aHJlYWRpbmcuVGhyZWFkKHRhcmdldD10YXJnZXQpCisKKyAgICB0aHJlYWQuc3Rh
cnQoKQorCisgICAgc2VydmVyX3N1YnByb2Nlc3Nlcy5nZXQoVHJ1ZSwgdGltZW91dCkKKyAgICBz
dWJwcm9jZXNzID0gc2VydmVyX3N1YnByb2Nlc3Nlcy5nZXQoVHJ1ZSwgdGltZW91dCkKKyAgICBz
dWJwcm9jZXNzLmtpbGwoKQorCisgICAgdGhyZWFkLmpvaW4odGltZW91dCkKKworICAgIGFzc2Vy
dCBub3QgdGhyZWFkLmlzX2FsaXZlKCkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvc2VydmUvdGVzdF9zZXJ2ZS5weSBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvc2VydmUvdGVzdF9z
ZXJ2ZS5weQppbmRleCAxYzA4OWI1MDY3MzhlZTczZTJmMWUyOWNmMTcyOWExYWJjMWUwYzBiLi5k
NmMwODJhOTcwMzU3ZjQ3N2U4MmNkMjVhMWMwOTUyZWU3NDRkYjU0IDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3NlcnZlL3Rlc3Rf
c2VydmUucHkKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy9zZXJ2ZS90ZXN0X3NlcnZlLnB5CkBAIC0xLDYgKzEsNyBAQAoraW1wb3J0IGpzb24K
K2ltcG9ydCBvcwogaW1wb3J0IHBpY2tsZQogaW1wb3J0IHBsYXRmb3JtCi1pbXBvcnQgb3MKIAog
aW1wb3J0IHB5dGVzdAogCkBAIC03NSwzICs3NiwzMiBAQCBkZWYgdGVzdF9waWNrbGUoKToKICAg
ICAjIEVuc3VyZSB0aGF0IHRoZSBjb25maWcgb2JqZWN0IGNhbiBiZSBwaWNrbGVkCiAgICAgd2l0
aCBDb25maWdCdWlsZGVyKCkgYXMgYzoKICAgICAgICAgcGlja2xlLmR1bXBzKGMpCisKKworZGVm
IHRlc3RfY29uZmlnX2pzb25fbGVuZ3RoKCk6CisgICAgIyB3ZSBzZXJpYWxpemUgdGhlIGNvbmZp
ZyBhcyBKU09OIGZvciBweXRlc3RydW5uZXIgYW5kIHB1dCBpdCBpbiBhbiBlbnYKKyAgICAjIHZh
cmlhYmxlLCB3aGljaCBvbiBXaW5kb3dzIG11c3QgaGF2ZSBhIGxlbmd0aCA8PSAweDdGRkYgKGlu
dDE2KQorICAgIHdpdGggQ29uZmlnQnVpbGRlcigpIGFzIGM6CisgICAgICAgIGRhdGEgPSBqc29u
LmR1bXBzKGMuYXNfZGljdCgpKQorICAgIGFzc2VydCBsZW4oZGF0YSkgPD0gMHg3RkZGCisKK2Rl
ZiB0ZXN0X2FsdGVybmF0ZV9ob3N0X3Vuc3BlY2lmaWVkKCk6CisgICAgQ29uZmlnQnVpbGRlcihi
cm93c2VyX2hvc3Q9IndlYi1wbGF0Zm9ybS50ZXN0IikKKworQHB5dGVzdC5tYXJrLnBhcmFtZXRy
aXplKCJwcmltYXJ5LCBhbHRlcm5hdGUiLCBbCisgICAgKCJ3ZWItcGxhdGZvcm0udGVzdCIsICJ3
ZWItcGxhdGZvcm0udGVzdCIpLAorICAgICgiYS53ZWItcGxhdGZvcm0udGVzdCIsICJ3ZWItcGxh
dGZvcm0udGVzdCIpLAorICAgICgid2ViLXBsYXRmb3JtLnRlc3QiLCAiYS53ZWItcGxhdGZvcm0u
dGVzdCIpLAorICAgICgiYS53ZWItcGxhdGZvcm0udGVzdCIsICJhLndlYi1wbGF0Zm9ybS50ZXN0
IiksCitdKQorZGVmIHRlc3RfYWx0ZXJuYXRlX2hvc3RfaW52YWxpZChwcmltYXJ5LCBhbHRlcm5h
dGUpOgorICAgIHdpdGggcHl0ZXN0LnJhaXNlcyhWYWx1ZUVycm9yKToKKyAgICAgICAgQ29uZmln
QnVpbGRlcihicm93c2VyX2hvc3Q9cHJpbWFyeSwgYWx0ZXJuYXRlX2hvc3RzPXsiYWx0IjogYWx0
ZXJuYXRlfSkKKworQHB5dGVzdC5tYXJrLnBhcmFtZXRyaXplKCJwcmltYXJ5LCBhbHRlcm5hdGUi
LCBbCisgICAgKCJ3ZWItcGxhdGZvcm0udGVzdCIsICJub3Qtd2ViLXBsYXRmb3JtLnRlc3QiKSwK
KyAgICAoImEud2ViLXBsYXRmb3JtLnRlc3QiLCAiYi53ZWItcGxhdGZvcm0udGVzdCIpLAorICAg
ICgid2ViLXBsYXRmb3JtLXRlc3RzLmRldiIsICJ3ZWItcGxhdGZvcm0tdGVzdHMubGl2ZSIpLAor
XSkKK2RlZiB0ZXN0X2FsdGVybmF0ZV9ob3N0X3ZhbGlkKHByaW1hcnksIGFsdGVybmF0ZSk6Cisg
ICAgQ29uZmlnQnVpbGRlcihicm93c2VyX2hvc3Q9cHJpbWFyeSwgYWx0ZXJuYXRlX2hvc3RzPXsi
YWx0IjogYWx0ZXJuYXRlfSkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvc2VydmUvdzNjLWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3NlcnZlL3czYy1pbXBvcnQu
bG9nCmluZGV4IDlhYTU3MjI1ZGJkZDE4ZjZiMzJmYmNmNjdiOTA3ZGNjODU4YzY2ZmQuLmQ0ODI2
ZjY4ZDhhYTc4MGI0NzIwNGM5OTdmZDMwYjZkNjEwZjQwMTQgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvc2VydmUvdzNjLWltcG9y
dC5sb2cKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy9zZXJ2ZS93M2MtaW1wb3J0LmxvZwpAQCAtMTUsNiArMTUsOSBAQCBOb25lCiAtLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0KIExpc3Qgb2YgZmlsZXM6CiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy9zZXJ2ZS9fX2luaXRfXy5weQorL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvc2VydmUvX19pbml0X18ucHljCiAvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9zZXJ2ZS9jb21t
YW5kcy5qc29uCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy9zZXJ2ZS9zZXJ2ZS5weQorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvc2VydmUvc2VydmUucHljCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9zZXJ2ZS90ZXN0X2Z1bmN0aW9uYWwucHkKIC9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3NlcnZlL3Rlc3Rf
c2VydmUucHkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvZW51bS9lbnVtL3czYy1pbXBvcnQubG9nIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0
eS9lbnVtL2VudW0vdzNjLWltcG9ydC5sb2cKaW5kZXggYmFjMTI4MmYxYmI1ZGM1ZWFkODAwNmM4
OTI5NDJiZjU2N2E1NDQzOS4uNmY3YzllMzAxZDYwZDg3NjFmZDVlNTVmNDU3ODAwY2M2MDQ1ZjFi
YyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy90aGlyZF9wYXJ0eS9lbnVtL2VudW0vdzNjLWltcG9ydC5sb2cKKysrIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9l
bnVtL2VudW0vdzNjLWltcG9ydC5sb2cKQEAgLTE3LDQgKzE3LDUgQEAgTGlzdCBvZiBmaWxlczoK
IC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJk
X3BhcnR5L2VudW0vZW51bS9MSUNFTlNFCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9lbnVtL2VudW0vUkVBRE1FCiAvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9l
bnVtL2VudW0vX19pbml0X18ucHkKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2VudW0vZW51bS9fX2luaXRfXy5weWMKIC9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5
L2VudW0vZW51bS90ZXN0LnB5CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2gyL2gyL3czYy1pbXBvcnQubG9n
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS9oMi9oMi93M2MtaW1wb3J0LmxvZwppbmRleCBmNWNhNGI3MGZiZjk2ZGZiMjA4MGE5
M2M4MWMxYTJiNmE3YjRmZWVlLi5iZmE4Y2MyZjdlOGNiM2E4NWJhMGIyMDllNmM5MWNlNWM4MDZk
ZDQzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2gyL2gyL3czYy1pbXBvcnQubG9nCisrKyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaDIv
aDIvdzNjLWltcG9ydC5sb2cKQEAgLTE1LDEzICsxNSwyNCBAQCBOb25lCiAtLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0KIExpc3Qgb2YgZmlsZXM6CiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9oMi9oMi9fX2luaXRfXy5weQorL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaDIvaDIv
X19pbml0X18ucHljCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy90aGlyZF9wYXJ0eS9oMi9oMi9jb25maWcucHkKKy9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2gyL2gyL2NvbmZpZy5w
eWMKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3Ro
aXJkX3BhcnR5L2gyL2gyL2Nvbm5lY3Rpb24ucHkKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2gyL2gyL2Nvbm5lY3Rpb24ucHlj
CiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGly
ZF9wYXJ0eS9oMi9oMi9lcnJvcnMucHkKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2gyL2gyL2Vycm9ycy5weWMKIC9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2gy
L2gyL2V2ZW50cy5weQorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvdGhpcmRfcGFydHkvaDIvaDIvZXZlbnRzLnB5YwogL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaDIvaDIvZXhjZXB0
aW9ucy5weQorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvdGhpcmRfcGFydHkvaDIvaDIvZXhjZXB0aW9ucy5weWMKIC9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2gyL2gyL2ZyYW1lX2J1
ZmZlci5weQorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvdGhpcmRfcGFydHkvaDIvaDIvZnJhbWVfYnVmZmVyLnB5YwogL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaDIvaDIvc2V0dGlu
Z3MucHkKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3RoaXJkX3BhcnR5L2gyL2gyL3NldHRpbmdzLnB5YwogL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaDIvaDIvc3RyZWFtLnB5Cisv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9w
YXJ0eS9oMi9oMi9zdHJlYW0ucHljCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9oMi9oMi91dGlsaXRpZXMucHkKKy9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2gy
L2gyL3V0aWxpdGllcy5weWMKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2gyL2gyL3dpbmRvd3MucHkKKy9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2gyL2gyL3dp
bmRvd3MucHljCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2hwYWNrL2hwYWNrL3czYy1pbXBvcnQubG9nIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9w
YXJ0eS9ocGFjay9ocGFjay93M2MtaW1wb3J0LmxvZwppbmRleCAyYmMwYjRiZWQ1ZDEwOGY4OTJk
NWZkZTYwY2I2NTczYTlhZmIwM2I5Li44ZGIzNzEyNDg1NzNiOWU5Mjg3MDAxZTA5NTlkMDVmYzk2
OTU2MjRiIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2hwYWNrL2hwYWNrL3czYy1pbXBvcnQubG9nCisrKyBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRf
cGFydHkvaHBhY2svaHBhY2svdzNjLWltcG9ydC5sb2cKQEAgLTE1LDExICsxNSwyMCBAQCBOb25l
CiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0KIExpc3Qgb2YgZmlsZXM6CiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9ocGFjay9ocGFjay9fX2lu
aXRfXy5weQorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvdGhpcmRfcGFydHkvaHBhY2svaHBhY2svX19pbml0X18ucHljCiAvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9ocGFjay9ocGFj
ay9jb21wYXQucHkKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3RoaXJkX3BhcnR5L2hwYWNrL2hwYWNrL2NvbXBhdC5weWMKIC9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2hwYWNrL2hw
YWNrL2V4Y2VwdGlvbnMucHkKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2hwYWNrL2hwYWNrL2V4Y2VwdGlvbnMucHljCiAvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0
eS9ocGFjay9ocGFjay9ocGFjay5weQorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaHBhY2svaHBhY2svaHBhY2sucHljCiAvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0
eS9ocGFjay9ocGFjay9odWZmbWFuLnB5CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9ocGFjay9ocGFjay9odWZmbWFuLnB5Ywog
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRf
cGFydHkvaHBhY2svaHBhY2svaHVmZm1hbl9jb25zdGFudHMucHkKKy9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2hwYWNrL2hwYWNr
L2h1ZmZtYW5fY29uc3RhbnRzLnB5YwogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaHBhY2svaHBhY2svaHVmZm1hbl90YWJsZS5w
eQorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhp
cmRfcGFydHkvaHBhY2svaHBhY2svaHVmZm1hbl90YWJsZS5weWMKIC9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2hwYWNrL2hwYWNr
L3N0cnVjdC5weQorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvdGhpcmRfcGFydHkvaHBhY2svaHBhY2svc3RydWN0LnB5YwogL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaHBhY2svaHBh
Y2svdGFibGUucHkKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3RoaXJkX3BhcnR5L2hwYWNrL2hwYWNrL3RhYmxlLnB5YwpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0
eS9oeXBlci9oeXBlci9odHRwMjAvY29ubmVjdGlvbi5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaHlwZXIvaHlwZXIvaHR0
cDIwL2Nvbm5lY3Rpb24ucHkKaW5kZXggM2MzOTI3NjcxZjU2N2QwYjMzMTRhOGQ1YzVkNTYxODBh
YjZhMjY5My4uMTIwNzZjZGFmMTRlYWQzNzBkZTRlMGU2YjU3MzBhN2Y5YjI1MTdjNSAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90
aGlyZF9wYXJ0eS9oeXBlci9oeXBlci9odHRwMjAvY29ubmVjdGlvbi5weQorKysgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2h5
cGVyL2h5cGVyL2h0dHAyMC9jb25uZWN0aW9uLnB5CkBAIC01LDkgKzUsOSBAQCBoeXBlci9odHRw
MjAvY29ubmVjdGlvbgogCiBPYmplY3RzIHRoYXQgYnVpbGQgaHlwZXIncyBjb25uZWN0aW9uLWxl
dmVsIEhUVFAvMiBhYnN0cmFjdGlvbi4KICIiIgotZnJvbSAuLmgyIGltcG9ydCBjb25uZWN0aW9u
IGFzIGgyQ29ubmVjdGlvbgotZnJvbSAuLmgyIGltcG9ydCBldmVudHMgYXMgaDJFdmVudHMKLWZy
b20gLi5oMiBpbXBvcnQgc2V0dGluZ3MgYXMgaDJTZXR0aW5ncworaW1wb3J0IGgyLmNvbm5lY3Rp
b24KK2ltcG9ydCBoMi5ldmVudHMKK2ltcG9ydCBoMi5zZXR0aW5ncwogCiBmcm9tIC4uY29tcGF0
IGltcG9ydCBzc2wKIGZyb20gLi50bHMgaW1wb3J0IHdyYXBfc29ja2V0LCBIMl9OUE5fUFJPVE9D
T0xTLCBIMkNfUFJPVE9DT0wKQEAgLTE4NSw3ICsxODUsNyBAQCBjbGFzcyBIVFRQMjBDb25uZWN0
aW9uKG9iamVjdCk6CiAgICAgICAgIHVzZXJzIHNob3VsZCBiZSBzdHJvbmdseSBkaXNjb3VyYWdl
ZCBmcm9tIG1lc3NpbmcgYWJvdXQgd2l0aCBjb25uZWN0aW9uCiAgICAgICAgIG9iamVjdHMgdGhl
bXNlbHZlcy4KICAgICAgICAgIiIiCi0gICAgICAgIHNlbGYuX2Nvbm4gPSBfTG9ja2VkT2JqZWN0
KGgyQ29ubmVjdGlvbi5IMkNvbm5lY3Rpb24oKSkKKyAgICAgICAgc2VsZi5fY29ubiA9IF9Mb2Nr
ZWRPYmplY3QoaDIuY29ubmVjdGlvbi5IMkNvbm5lY3Rpb24oKSkKIAogICAgICAgICAjIFN0cmVh
bXMgYXJlIHN0b3JlZCBpbiBhIGRpY3Rpb25hcnkga2V5ZWQgb2ZmIHRoZWlyIHN0cmVhbSBJRHMu
IFdlCiAgICAgICAgICMgYWxzbyBzYXZlIHRoZSBtb3N0IHJlY2VudCBvbmUgZm9yIGVhc3kgYWNj
ZXNzIHdpdGhvdXQgaGF2aW5nIHRvIHdhbGsKQEAgLTM4Nyw3ICszODcsNyBAQCBjbGFzcyBIVFRQ
MjBDb25uZWN0aW9uKG9iamVjdCk6CiAgICAgICAgIHdpdGggc2VsZi5fY29ubiBhcyBjb25uOgog
ICAgICAgICAgICAgY29ubi5pbml0aWF0ZV91cGdyYWRlX2Nvbm5lY3Rpb24oKQogICAgICAgICAg
ICAgY29ubi51cGRhdGVfc2V0dGluZ3MoCi0gICAgICAgICAgICAgICAge2gyU2V0dGluZ3MuRU5B
QkxFX1BVU0g6IGludChzZWxmLl9lbmFibGVfcHVzaCl9CisgICAgICAgICAgICAgICAge2gyLnNl
dHRpbmdzLlNldHRpbmdDb2Rlcy5FTkFCTEVfUFVTSDogaW50KHNlbGYuX2VuYWJsZV9wdXNoKX0K
ICAgICAgICAgICAgICkKICAgICAgICAgc2VsZi5fc2VuZF9vdXRzdGFuZGluZ19kYXRhKCkKIApA
QCAtNDA4LDcgKzQwOCw3IEBAIGNsYXNzIEhUVFAyMENvbm5lY3Rpb24ob2JqZWN0KToKICAgICAg
ICAgd2l0aCBzZWxmLl9jb25uIGFzIGNvbm46CiAgICAgICAgICAgICBjb25uLmluaXRpYXRlX2Nv
bm5lY3Rpb24oKQogICAgICAgICAgICAgY29ubi51cGRhdGVfc2V0dGluZ3MoCi0gICAgICAgICAg
ICAgICAge2gyU2V0dGluZ3MuRU5BQkxFX1BVU0g6IGludChzZWxmLl9lbmFibGVfcHVzaCl9Cisg
ICAgICAgICAgICAgICAge2gyLnNldHRpbmdzLlNldHRpbmdDb2Rlcy5FTkFCTEVfUFVTSDogaW50
KHNlbGYuX2VuYWJsZV9wdXNoKX0KICAgICAgICAgICAgICkKICAgICAgICAgc2VsZi5fc2VuZF9v
dXRzdGFuZGluZ19kYXRhKCkKIApAQCAtNjczLDEwICs2NzMsMTAgQEAgY2xhc3MgSFRUUDIwQ29u
bmVjdGlvbihvYmplY3QpOgogICAgICAgICAgICAgc2VsZi5yZWNlbnRfcmVjdl9zdHJlYW1zIHw9
IHN0cmVhbV9pZHMKIAogICAgICAgICBmb3IgZXZlbnQgaW4gZXZlbnRzOgotICAgICAgICAgICAg
aWYgaXNpbnN0YW5jZShldmVudCwgaDJFdmVudHMuRGF0YVJlY2VpdmVkKToKKyAgICAgICAgICAg
IGlmIGlzaW5zdGFuY2UoZXZlbnQsIGgyLmV2ZW50cy5EYXRhUmVjZWl2ZWQpOgogICAgICAgICAg
ICAgICAgIHNlbGYuX2FkanVzdF9yZWNlaXZlX3dpbmRvdyhldmVudC5mbG93X2NvbnRyb2xsZWRf
bGVuZ3RoKQogICAgICAgICAgICAgICAgIHNlbGYuc3RyZWFtc1tldmVudC5zdHJlYW1faWRdLnJl
Y2VpdmVfZGF0YShldmVudCkKLSAgICAgICAgICAgIGVsaWYgaXNpbnN0YW5jZShldmVudCwgaDJF
dmVudHMuUHVzaGVkU3RyZWFtUmVjZWl2ZWQpOgorICAgICAgICAgICAgZWxpZiBpc2luc3RhbmNl
KGV2ZW50LCBoMi5ldmVudHMuUHVzaGVkU3RyZWFtUmVjZWl2ZWQpOgogICAgICAgICAgICAgICAg
IGlmIHNlbGYuX2VuYWJsZV9wdXNoOgogICAgICAgICAgICAgICAgICAgICBzZWxmLl9uZXdfc3Ry
ZWFtKGV2ZW50LnB1c2hlZF9zdHJlYW1faWQsIGxvY2FsX2Nsb3NlZD1UcnVlKQogICAgICAgICAg
ICAgICAgICAgICBzZWxmLnN0cmVhbXNbZXZlbnQucGFyZW50X3N0cmVhbV9pZF0ucmVjZWl2ZV9w
dXNoKGV2ZW50KQpAQCAtNjg2LDE3ICs2ODYsMTcgQEAgY2xhc3MgSFRUUDIwQ29ubmVjdGlvbihv
YmplY3QpOgogICAgICAgICAgICAgICAgICAgICAjIGNsaWVudCBhY3Rpb24gdW5kZWZpbmVkIHdo
ZW4gdGhleSBkbyBpdCBhbnl3YXkuIFNvIHdlCiAgICAgICAgICAgICAgICAgICAgICMganVzdCBy
ZWZ1c2UgdGhlIHN0cmVhbSBhbmQgZ28gYWJvdXQgb3VyIGJ1c2luZXNzLgogICAgICAgICAgICAg
ICAgICAgICBzZWxmLl9zZW5kX3JzdF9mcmFtZShldmVudC5wdXNoZWRfc3RyZWFtX2lkLCA3KQot
ICAgICAgICAgICAgZWxpZiBpc2luc3RhbmNlKGV2ZW50LCBoMkV2ZW50cy5SZXNwb25zZVJlY2Vp
dmVkKToKKyAgICAgICAgICAgIGVsaWYgaXNpbnN0YW5jZShldmVudCwgaDIuZXZlbnRzLlJlc3Bv
bnNlUmVjZWl2ZWQpOgogICAgICAgICAgICAgICAgIHNlbGYuc3RyZWFtc1tldmVudC5zdHJlYW1f
aWRdLnJlY2VpdmVfcmVzcG9uc2UoZXZlbnQpCi0gICAgICAgICAgICBlbGlmIGlzaW5zdGFuY2Uo
ZXZlbnQsIGgyRXZlbnRzLlRyYWlsZXJzUmVjZWl2ZWQpOgorICAgICAgICAgICAgZWxpZiBpc2lu
c3RhbmNlKGV2ZW50LCBoMi5ldmVudHMuVHJhaWxlcnNSZWNlaXZlZCk6CiAgICAgICAgICAgICAg
ICAgc2VsZi5zdHJlYW1zW2V2ZW50LnN0cmVhbV9pZF0ucmVjZWl2ZV90cmFpbGVycyhldmVudCkK
LSAgICAgICAgICAgIGVsaWYgaXNpbnN0YW5jZShldmVudCwgaDJFdmVudHMuU3RyZWFtRW5kZWQp
OgorICAgICAgICAgICAgZWxpZiBpc2luc3RhbmNlKGV2ZW50LCBoMi5ldmVudHMuU3RyZWFtRW5k
ZWQpOgogICAgICAgICAgICAgICAgIHNlbGYuc3RyZWFtc1tldmVudC5zdHJlYW1faWRdLnJlY2Vp
dmVfZW5kX3N0cmVhbShldmVudCkKLSAgICAgICAgICAgIGVsaWYgaXNpbnN0YW5jZShldmVudCwg
aDJFdmVudHMuU3RyZWFtUmVzZXQpOgorICAgICAgICAgICAgZWxpZiBpc2luc3RhbmNlKGV2ZW50
LCBoMi5ldmVudHMuU3RyZWFtUmVzZXQpOgogICAgICAgICAgICAgICAgIGlmIGV2ZW50LnN0cmVh
bV9pZCBub3QgaW4gc2VsZi5yZXNldF9zdHJlYW1zOgogICAgICAgICAgICAgICAgICAgICBzZWxm
LnJlc2V0X3N0cmVhbXMuYWRkKGV2ZW50LnN0cmVhbV9pZCkKICAgICAgICAgICAgICAgICAgICAg
c2VsZi5zdHJlYW1zW2V2ZW50LnN0cmVhbV9pZF0ucmVjZWl2ZV9yZXNldChldmVudCkKLSAgICAg
ICAgICAgIGVsaWYgaXNpbnN0YW5jZShldmVudCwgaDJFdmVudHMuQ29ubmVjdGlvblRlcm1pbmF0
ZWQpOgorICAgICAgICAgICAgZWxpZiBpc2luc3RhbmNlKGV2ZW50LCBoMi5ldmVudHMuQ29ubmVj
dGlvblRlcm1pbmF0ZWQpOgogICAgICAgICAgICAgICAgICMgSWYgd2UgZ2V0IEdvQXdheSB3aXRo
IGVycm9yIGNvZGUgemVybywgd2UgYXJlIGRvaW5nIGEKICAgICAgICAgICAgICAgICAjIGdyYWNl
ZnVsIHNodXRkb3duIGFuZCBhbGwgaXMgd2VsbC4gT3RoZXJ3aXNlLCB0aHJvdyBhbgogICAgICAg
ICAgICAgICAgICMgZXhjZXB0aW9uLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9oeXBlcmZyYW1lL2h5cGVy
ZnJhbWUvdzNjLWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2h5cGVyZnJhbWUvaHlwZXJmcmFtZS93M2MtaW1w
b3J0LmxvZwppbmRleCBlZGY1YjVmMjg0ZmUyY2MzZDg3MGU1ODhhOTAwMzM2N2E2YTMwZDU4Li40
ZGJlMzllN2M1Yzg3MDk2MzVhZjE2NzY3MTljMjM0ZGU0ZjRkMDc3IDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5
L2h5cGVyZnJhbWUvaHlwZXJmcmFtZS93M2MtaW1wb3J0LmxvZworKysgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2h5cGVyZnJh
bWUvaHlwZXJmcmFtZS93M2MtaW1wb3J0LmxvZwpAQCAtMTUsNiArMTUsMTAgQEAgTm9uZQogLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tCiBMaXN0IG9mIGZpbGVzOgogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaHlwZXJmcmFtZS9oeXBlcmZyYW1l
L19faW5pdF9fLnB5CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy90aGlyZF9wYXJ0eS9oeXBlcmZyYW1lL2h5cGVyZnJhbWUvX19pbml0X18ucHljCiAv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9w
YXJ0eS9oeXBlcmZyYW1lL2h5cGVyZnJhbWUvZXhjZXB0aW9ucy5weQorL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaHlwZXJmcmFt
ZS9oeXBlcmZyYW1lL2V4Y2VwdGlvbnMucHljCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS9oeXBlcmZyYW1lL2h5cGVyZnJhbWUv
ZmxhZ3MucHkKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3RoaXJkX3BhcnR5L2h5cGVyZnJhbWUvaHlwZXJmcmFtZS9mbGFncy5weWMKIC9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L2h5
cGVyZnJhbWUvaHlwZXJmcmFtZS9mcmFtZS5weQorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvaHlwZXJmcmFtZS9oeXBlcmZyYW1l
L2ZyYW1lLnB5YwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy90aGlyZF9wYXJ0eS90b29sdG9vbC90b29sdG9vbC5weSBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkv
dG9vbHRvb2wvdG9vbHRvb2wucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNTM5MjlmY2U4ODAyODU2MjllYmY2ZjI0
M2Q3YmVhODYwMzZiMTZkMAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvdG9vbHRvb2wvdG9vbHRv
b2wucHkKQEAgLTAsMCArMSwxMzE2IEBACisjIS91c3IvYmluL2VudiBweXRob24KKworIyB0b29s
dG9vbCBpcyBhIGxvb2thc2lkZSBjYWNoZSBpbXBsZW1lbnRlZCBpbiBQeXRob24KKyMgQ29weXJp
Z2h0IChDKSAyMDExIEpvaG4gSC4gRm9yZCA8am9obkBqb2huZm9yZC5pbmZvPgorIworIyBUaGlz
IHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29y
CisjIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBM
aWNlbnNlCisjIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uIHZl
cnNpb24gMgorIworIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhh
dCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0
IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQorIyBHTlUgR2VuZXJhbCBQdWJs
aWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorIworIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2
ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorIyBhbG9uZyB3aXRo
IHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQorIyBGb3Vu
ZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLCBCb3N0b24sIE1B
CisjIDAyMTEwLTEzMDEsIFVTQS4KKworIyBBIG1hbmlmZXN0IGZpbGUgc3BlY2lmaWVzIGZpbGVz
IGluIHRoYXQgZGlyZWN0b3J5IHRoYXQgYXJlIHN0b3JlZAorIyBlbHNld2hlcmUuIFRoaXMgZmls
ZSBzaG91bGQgb25seSBsaXN0IGZpbGVzIGluIHRoZSBzYW1lIGRpcmVjdG9yeQorIyBpbiB3aGlj
aCB0aGUgbWFuaWZlc3QgZmlsZSByZXNpZGVzIGFuZCBpdCBzaG91bGQgYmUgY2FsbGVkCisjICdt
YW5pZmVzdC50dCcKKworZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCBwcmludF9mdW5jdGlvbgorCitp
bXBvcnQgYmFzZTY0CitpbXBvcnQgY2FsZW5kYXIKK2ltcG9ydCBoYXNobGliCitpbXBvcnQgaG1h
YworaW1wb3J0IGpzb24KK2ltcG9ydCBsb2dnaW5nCitpbXBvcnQgbWF0aAoraW1wb3J0IG9wdHBh
cnNlCitpbXBvcnQgb3MKK2ltcG9ydCBwcHJpbnQKK2ltcG9ydCByZQoraW1wb3J0IHNodXRpbAor
aW1wb3J0IHN5cworaW1wb3J0IHRhcmZpbGUKK2ltcG9ydCB0ZW1wZmlsZQoraW1wb3J0IHRocmVh
ZGluZworaW1wb3J0IHRpbWUKK2ltcG9ydCB6aXBmaWxlCisKK2Zyb20gaW8gaW1wb3J0IG9wZW4K
K2Zyb20gaW8gaW1wb3J0IEJ5dGVzSU8KK2Zyb20gc3VicHJvY2VzcyBpbXBvcnQgUElQRQorZnJv
bSBzdWJwcm9jZXNzIGltcG9ydCBQb3BlbgorCitfX3ZlcnNpb25fXyA9ICcxJworCisjIEFsbG93
ZWQgcmVxdWVzdCBoZWFkZXIgY2hhcmFjdGVyczoKKyMgISMkJSYnKCkqKywtLi86Ozw9Pj9AW11e
X2B7fH1+IGFuZCBzcGFjZSwgYS16LCBBLVosIDAtOSwgXCwgIgorUkVRVUVTVF9IRUFERVJfQVRU
UklCVVRFX0NIQVJTID0gcmUuY29tcGlsZSgKKyAgICByIl5bIGEtekEtWjAtOV9cISNcJCUmJ1wo
XClcKlwrLFwtXC4vXDo7PFw9Plw/QFxbXF1cXmBce1x8XH1+XSokIikKK0RFRkFVTFRfTUFOSUZF
U1RfTkFNRSA9ICdtYW5pZmVzdC50dCcKK1RPT0xUT09MX1BBQ0tBR0VfU1VGRklYID0gJy5UT09M
VE9PTC1QQUNLQUdFJworSEFXS19WRVIgPSAxCitQWTMgPSBzeXMudmVyc2lvbl9pbmZvWzBdID09
IDMKKworaWYgUFkzOgorICAgIG9wZW5fYXR0cnMgPSBkaWN0KG1vZGU9J3cnLCBlbmNvZGluZz0n
dXRmLTgnKQorICAgIHNpeF9iaW5hcnlfdHlwZSA9IGJ5dGVzCisgICAgc2l4X3RleHRfdHlwZSA9
IHN0cgorICAgIHVuaWNvZGUgPSBzdHIgICMgU2lsZW5jZSBgcHlmbGFrZXNgIGZyb20gcmVwb3J0
aW5nIGB1bmRlZmluZWQgbmFtZSAndW5pY29kZSdgIGluIFB5dGhvbiAzLgorICAgIGltcG9ydCB1
cmxsaWIucmVxdWVzdCBhcyB1cmxsaWIyCisgICAgZnJvbSBodHRwLmNsaWVudCBpbXBvcnQgSFRU
UFNDb25uZWN0aW9uLCBIVFRQQ29ubmVjdGlvbgorICAgIGZyb20gdXJsbGliLnBhcnNlIGltcG9y
dCB1cmxwYXJzZSwgdXJsam9pbgorICAgIGZyb20gdXJsbGliLnJlcXVlc3QgaW1wb3J0IFJlcXVl
c3QKKyAgICBmcm9tIHVybGxpYi5lcnJvciBpbXBvcnQgSFRUUEVycm9yLCBVUkxFcnJvcgorZWxz
ZToKKyAgICBvcGVuX2F0dHJzID0gZGljdChtb2RlPSd3YicpCisgICAgc2l4X2JpbmFyeV90eXBl
ID0gc3RyCisgICAgc2l4X3RleHRfdHlwZSA9IHVuaWNvZGUKKyAgICBpbXBvcnQgdXJsbGliMgor
ICAgIGZyb20gaHR0cGxpYiBpbXBvcnQgSFRUUFNDb25uZWN0aW9uLCBIVFRQQ29ubmVjdGlvbgor
ICAgIGZyb20gdXJsbGliMiBpbXBvcnQgUmVxdWVzdCwgSFRUUEVycm9yLCBVUkxFcnJvcgorICAg
IGZyb20gdXJscGFyc2UgaW1wb3J0IHVybHBhcnNlLCB1cmxqb2luCisKKworbG9nID0gbG9nZ2lu
Zy5nZXRMb2dnZXIoX19uYW1lX18pCisKKworZGVmIHJlcXVlc3RfaGFzX2RhdGEocmVxKToKKyAg
ICBpZiBQWTM6CisgICAgICAgIHJldHVybiByZXEuZGF0YSBpcyBub3QgTm9uZQorICAgIHJldHVy
biByZXEuaGFzX2RhdGEoKQorCisKK2RlZiB0b19iaW5hcnkodmFsKToKKyAgICBpZiBpc2luc3Rh
bmNlKHZhbCwgc2l4X3RleHRfdHlwZSk6CisgICAgICAgIHJldHVybiB2YWwuZW5jb2RlKCd1dGYt
OCcpCisgICAgcmV0dXJuIHZhbAorCisKK2RlZiB0b190ZXh0KHZhbCk6CisgICAgaWYgaXNpbnN0
YW5jZSh2YWwsIHNpeF9iaW5hcnlfdHlwZSk6CisgICAgICAgIHJldHVybiB2YWwuZGVjb2RlKCd1
dGYtOCcpCisgICAgcmV0dXJuIHZhbAorCisKK2RlZiBnZXRfaGV4ZGlnZXN0KHZhbCk6CisgICAg
cmV0dXJuIGhhc2hsaWIuc2hhNTEyKHRvX2JpbmFyeSh2YWwpKS5oZXhkaWdlc3QoKQorCisKK2Ns
YXNzIEZpbGVSZWNvcmRKU09ORW5jb2RlckV4Y2VwdGlvbihFeGNlcHRpb24pOgorICAgIHBhc3MK
KworCitjbGFzcyBJbnZhbGlkTWFuaWZlc3QoRXhjZXB0aW9uKToKKyAgICBwYXNzCisKKworY2xh
c3MgRXhjZXB0aW9uV2l0aEZpbGVuYW1lKEV4Y2VwdGlvbik6CisKKyAgICBkZWYgX19pbml0X18o
c2VsZiwgZmlsZW5hbWUpOgorICAgICAgICBFeGNlcHRpb24uX19pbml0X18oc2VsZikKKyAgICAg
ICAgc2VsZi5maWxlbmFtZSA9IGZpbGVuYW1lCisKKworY2xhc3MgQmFkRmlsZW5hbWVFeGNlcHRp
b24oRXhjZXB0aW9uV2l0aEZpbGVuYW1lKToKKyAgICBwYXNzCisKKworY2xhc3MgRGlnZXN0TWlz
bWF0Y2hFeGNlcHRpb24oRXhjZXB0aW9uV2l0aEZpbGVuYW1lKToKKyAgICBwYXNzCisKKworY2xh
c3MgTWlzc2luZ0ZpbGVFeGNlcHRpb24oRXhjZXB0aW9uV2l0aEZpbGVuYW1lKToKKyAgICBwYXNz
CisKKworY2xhc3MgSW52YWxpZENyZWRlbnRpYWxzKEV4Y2VwdGlvbik6CisgICAgcGFzcworCisK
K2NsYXNzIEJhZEhlYWRlclZhbHVlKEV4Y2VwdGlvbik6CisgICAgcGFzcworCisKK2RlZiBwYXJz
ZV91cmwodXJsKToKKyAgICB1cmxfcGFydHMgPSB1cmxwYXJzZSh1cmwpCisgICAgdXJsX2RpY3Qg
PSB7CisgICAgICAgICdzY2hlbWUnOiB1cmxfcGFydHMuc2NoZW1lLAorICAgICAgICAnaG9zdG5h
bWUnOiB1cmxfcGFydHMuaG9zdG5hbWUsCisgICAgICAgICdwb3J0JzogdXJsX3BhcnRzLnBvcnQs
CisgICAgICAgICdwYXRoJzogdXJsX3BhcnRzLnBhdGgsCisgICAgICAgICdyZXNvdXJjZSc6IHVy
bF9wYXJ0cy5wYXRoLAorICAgICAgICAncXVlcnknOiB1cmxfcGFydHMucXVlcnksCisgICAgfQor
ICAgIGlmIGxlbih1cmxfZGljdFsncXVlcnknXSkgPiAwOgorICAgICAgICB1cmxfZGljdFsncmVz
b3VyY2UnXSA9ICclcz8lcycgJSAodXJsX2RpY3RbJ3Jlc291cmNlJ10sICAjIHByYWdtYTogbm8g
Y292ZXIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVybF9kaWN0
WydxdWVyeSddKQorCisgICAgaWYgdXJsX3BhcnRzLnBvcnQgaXMgTm9uZToKKyAgICAgICAgaWYg
dXJsX3BhcnRzLnNjaGVtZSA9PSAnaHR0cCc6CisgICAgICAgICAgICB1cmxfZGljdFsncG9ydCdd
ID0gODAKKyAgICAgICAgZWxpZiB1cmxfcGFydHMuc2NoZW1lID09ICdodHRwcyc6ICAjIHByYWdt
YTogbm8gY292ZXIKKyAgICAgICAgICAgIHVybF9kaWN0Wydwb3J0J10gPSA0NDMKKyAgICByZXR1
cm4gdXJsX2RpY3QKKworCitkZWYgdXRjX25vdyhvZmZzZXRfaW5fc2Vjb25kcz0wLjApOgorICAg
IHJldHVybiBpbnQobWF0aC5mbG9vcihjYWxlbmRhci50aW1lZ20odGltZS5nbXRpbWUoKSkgKyBm
bG9hdChvZmZzZXRfaW5fc2Vjb25kcykpKQorCisKK2RlZiByYW5kb21fc3RyaW5nKGxlbmd0aCk6
CisgICAgcmV0dXJuIGJhc2U2NC51cmxzYWZlX2I2NGVuY29kZShvcy51cmFuZG9tKGxlbmd0aCkp
WzpsZW5ndGhdCisKKworZGVmIHByZXBhcmVfaGVhZGVyX3ZhbCh2YWwpOgorICAgIGlmIGlzaW5z
dGFuY2UodmFsLCBzaXhfYmluYXJ5X3R5cGUpOgorICAgICAgICB2YWwgPSB2YWwuZGVjb2RlKCd1
dGYtOCcpCisKKyAgICBpZiBub3QgUkVRVUVTVF9IRUFERVJfQVRUUklCVVRFX0NIQVJTLm1hdGNo
KHZhbCk6CisgICAgICAgIHJhaXNlIEJhZEhlYWRlclZhbHVlKCAgIyBwcmFnbWE6IG5vIGNvdmVy
CisgICAgICAgICAgICAnaGVhZGVyIHZhbHVlIHZhbHVlPXt2YWx9IGNvbnRhaW5lZCBhbiBpbGxl
Z2FsIGNoYXJhY3RlcicuZm9ybWF0KHZhbD1yZXByKHZhbCkpKQorCisgICAgcmV0dXJuIHZhbAor
CisKK2RlZiBwYXJzZV9jb250ZW50X3R5cGUoY29udGVudF90eXBlKTogICMgcHJhZ21hOiBubyBj
b3ZlcgorICAgIGlmIGNvbnRlbnRfdHlwZToKKyAgICAgICAgcmV0dXJuIGNvbnRlbnRfdHlwZS5z
cGxpdCgnOycpWzBdLnN0cmlwKCkubG93ZXIoKQorICAgIGVsc2U6CisgICAgICAgIHJldHVybiAn
JworCisKK2RlZiBjYWxjdWxhdGVfcGF5bG9hZF9oYXNoKGFsZ29yaXRobSwgcGF5bG9hZCwgY29u
dGVudF90eXBlKTogICMgcHJhZ21hOiBubyBjb3ZlcgorICAgIHBhcnRzID0gWworICAgICAgICBw
YXJ0IGlmIGlzaW5zdGFuY2UocGFydCwgc2l4X2JpbmFyeV90eXBlKSBlbHNlIHBhcnQuZW5jb2Rl
KCd1dGY4JykKKyAgICAgICAgZm9yIHBhcnQgaW4gWydoYXdrLicgKyBzdHIoSEFXS19WRVIpICsg
Jy5wYXlsb2FkXG4nLAorICAgICAgICAgICAgICAgICAgICAgcGFyc2VfY29udGVudF90eXBlKGNv
bnRlbnRfdHlwZSkgKyAnXG4nLAorICAgICAgICAgICAgICAgICAgICAgcGF5bG9hZCBvciAnJywK
KyAgICAgICAgICAgICAgICAgICAgICdcbicsCisgICAgICAgICAgICAgICAgICAgICBdCisgICAg
XQorCisgICAgcF9oYXNoID0gaGFzaGxpYi5uZXcoYWxnb3JpdGhtKQorICAgIHBfaGFzaC51cGRh
dGUoJycuam9pbihwYXJ0cykpCisKKyAgICBsb2cuZGVidWcoJ2NhbGN1bGF0aW5nIHBheWxvYWQg
aGFzaCBmcm9tOlxue3BhcnRzfScuZm9ybWF0KHBhcnRzPXBwcmludC5wZm9ybWF0KHBhcnRzKSkp
CisKKyAgICByZXR1cm4gYmFzZTY0LmI2NGVuY29kZShwX2hhc2guZGlnZXN0KCkpCisKKworZGVm
IHZhbGlkYXRlX3Rhc2tjbHVzdGVyX2NyZWRlbnRpYWxzKGNyZWRlbnRpYWxzKToKKyAgICBpZiBu
b3QgaGFzYXR0cihjcmVkZW50aWFscywgJ19fZ2V0aXRlbV9fJyk6CisgICAgICAgIHJhaXNlIElu
dmFsaWRDcmVkZW50aWFscygnY3JlZGVudGlhbHMgbXVzdCBiZSBhIGRpY3QtbGlrZSBvYmplY3Qn
KSAgIyBwcmFnbWE6IG5vIGNvdmVyCisgICAgdHJ5OgorICAgICAgICBjcmVkZW50aWFsc1snY2xp
ZW50SWQnXQorICAgICAgICBjcmVkZW50aWFsc1snYWNjZXNzVG9rZW4nXQorICAgIGV4Y2VwdCBL
ZXlFcnJvcjogICMgcHJhZ21hOiBubyBjb3ZlcgorICAgICAgICBldHlwZSwgdmFsLCB0YiA9IHN5
cy5leGNfaW5mbygpCisgICAgICAgIHJhaXNlIEludmFsaWRDcmVkZW50aWFscygne2V0eXBlfTog
e3ZhbH0nLmZvcm1hdChldHlwZT1ldHlwZSwgdmFsPXZhbCkpCisKKworZGVmIG5vcm1hbGl6ZV9o
ZWFkZXJfYXR0cih2YWwpOgorICAgIGlmIGlzaW5zdGFuY2UodmFsLCBzaXhfYmluYXJ5X3R5cGUp
OgorICAgICAgICByZXR1cm4gdmFsLmRlY29kZSgndXRmLTgnKQorICAgIHJldHVybiB2YWwgICMg
cHJhZ21hOiBubyBjb3ZlcgorCisKK2RlZiBub3JtYWxpemVfc3RyaW5nKG1hY190eXBlLAorICAg
ICAgICAgICAgICAgICAgICAgdGltZXN0YW1wLAorICAgICAgICAgICAgICAgICAgICAgbm9uY2Us
CisgICAgICAgICAgICAgICAgICAgICBtZXRob2QsCisgICAgICAgICAgICAgICAgICAgICBuYW1l
LAorICAgICAgICAgICAgICAgICAgICAgaG9zdCwKKyAgICAgICAgICAgICAgICAgICAgIHBvcnQs
CisgICAgICAgICAgICAgICAgICAgICBjb250ZW50X2hhc2gsCisgICAgICAgICAgICAgICAgICAg
ICApOgorICAgIHJldHVybiAnXG4nLmpvaW4oWworICAgICAgICBub3JtYWxpemVfaGVhZGVyX2F0
dHIoaGVhZGVyKQorICAgICAgICAjIFRoZSBibGFuayBsaW5lcyBhcmUgaW1wb3J0YW50LiBUaGV5
IGZvbGxvdyB3aGF0IHRoZSBOb2RlIEhhd2sgbGliIGRvZXMuCisgICAgICAgIGZvciBoZWFkZXIg
aW4gWydoYXdrLicgKyBzdHIoSEFXS19WRVIpICsgJy4nICsgbWFjX3R5cGUsCisgICAgICAgICAg
ICAgICAgICAgICAgIHRpbWVzdGFtcCwKKyAgICAgICAgICAgICAgICAgICAgICAgbm9uY2UsCisg
ICAgICAgICAgICAgICAgICAgICAgIG1ldGhvZCBvciAnJywKKyAgICAgICAgICAgICAgICAgICAg
ICAgbmFtZSBvciAnJywKKyAgICAgICAgICAgICAgICAgICAgICAgaG9zdCwKKyAgICAgICAgICAg
ICAgICAgICAgICAgcG9ydCwKKyAgICAgICAgICAgICAgICAgICAgICAgY29udGVudF9oYXNoIG9y
ICcnLAorICAgICAgICAgICAgICAgICAgICAgICAnJywgICMgZm9yIGV4dCB3aGljaCBpcyBlbXB0
eSBpbiB0aGlzIGNhc2UKKyAgICAgICAgICAgICAgICAgICAgICAgJycsICAjIEFkZCB0cmFpbGlu
ZyBuZXcgbGluZS4KKyAgICAgICAgICAgICAgICAgICAgICAgXQorICAgIF0pCisKKworZGVmIGNh
bGN1bGF0ZV9tYWMobWFjX3R5cGUsCisgICAgICAgICAgICAgICAgICBhY2Nlc3NfdG9rZW4sCisg
ICAgICAgICAgICAgICAgICBhbGdvcml0aG0sCisgICAgICAgICAgICAgICAgICB0aW1lc3RhbXAs
CisgICAgICAgICAgICAgICAgICBub25jZSwKKyAgICAgICAgICAgICAgICAgIG1ldGhvZCwKKyAg
ICAgICAgICAgICAgICAgIG5hbWUsCisgICAgICAgICAgICAgICAgICBob3N0LAorICAgICAgICAg
ICAgICAgICAgcG9ydCwKKyAgICAgICAgICAgICAgICAgIGNvbnRlbnRfaGFzaCwKKyAgICAgICAg
ICAgICAgICAgICk6CisgICAgbm9ybWFsaXplZCA9IG5vcm1hbGl6ZV9zdHJpbmcobWFjX3R5cGUs
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGltZXN0YW1wLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIG5vbmNlLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIG1ldGhvZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1l
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhvc3QsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgcG9ydCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBjb250ZW50X2hhc2gpCisgICAgbG9nLmRlYnVnKHUnbm9ybWFsaXplZCByZXNvdXJjZSBm
b3IgbWFjIGNhbGM6IHtub3JtfScuZm9ybWF0KG5vcm09bm9ybWFsaXplZCkpCisgICAgZGlnZXN0
bW9kID0gZ2V0YXR0cihoYXNobGliLCBhbGdvcml0aG0pCisKKyAgICBpZiBub3QgaXNpbnN0YW5j
ZShub3JtYWxpemVkLCBzaXhfYmluYXJ5X3R5cGUpOgorICAgICAgICBub3JtYWxpemVkID0gbm9y
bWFsaXplZC5lbmNvZGUoJ3V0ZjgnKQorCisgICAgaWYgbm90IGlzaW5zdGFuY2UoYWNjZXNzX3Rv
a2VuLCBzaXhfYmluYXJ5X3R5cGUpOgorICAgICAgICBhY2Nlc3NfdG9rZW4gPSBhY2Nlc3NfdG9r
ZW4uZW5jb2RlKCdhc2NpaScpCisKKyAgICByZXN1bHQgPSBobWFjLm5ldyhhY2Nlc3NfdG9rZW4s
IG5vcm1hbGl6ZWQsIGRpZ2VzdG1vZCkKKyAgICByZXR1cm4gYmFzZTY0LmI2NGVuY29kZShyZXN1
bHQuZGlnZXN0KCkpCisKKworZGVmIG1ha2VfdGFza2NsdXN0ZXJfaGVhZGVyKGNyZWRlbnRpYWxz
LCByZXEpOgorICAgIHZhbGlkYXRlX3Rhc2tjbHVzdGVyX2NyZWRlbnRpYWxzKGNyZWRlbnRpYWxz
KQorCisgICAgdXJsID0gcmVxLmdldF9mdWxsX3VybCgpCisgICAgbWV0aG9kID0gcmVxLmdldF9t
ZXRob2QoKQorICAgIGFsZ29yaXRobSA9ICdzaGEyNTYnCisgICAgdGltZXN0YW1wID0gc3RyKHV0
Y19ub3coKSkKKyAgICBub25jZSA9IHJhbmRvbV9zdHJpbmcoNikKKyAgICB1cmxfcGFydHMgPSBw
YXJzZV91cmwodXJsKQorCisgICAgY29udGVudF9oYXNoID0gTm9uZQorICAgIGlmIHJlcXVlc3Rf
aGFzX2RhdGEocmVxKToKKyAgICAgICAgY29udGVudF9oYXNoID0gY2FsY3VsYXRlX3BheWxvYWRf
aGFzaCggICMgcHJhZ21hOiBubyBjb3ZlcgorICAgICAgICAgICAgYWxnb3JpdGhtLAorICAgICAg
ICAgICAgcmVxLmdldF9kYXRhKCksCisgICAgICAgICAgICAjIG1heWJlIHdlIHNob3VsZCBkZXRl
Y3QgdGhpcyBmcm9tIHJlcS5oZWFkZXJzIGJ1dCB3ZSBhbnl3YXkgZXhwZWN0IGpzb24KKyAgICAg
ICAgICAgIGNvbnRlbnRfdHlwZT0nYXBwbGljYXRpb24vanNvbicsCisgICAgICAgICkKKworICAg
IG1hYyA9IGNhbGN1bGF0ZV9tYWMoJ2hlYWRlcicsCisgICAgICAgICAgICAgICAgICAgICAgICBj
cmVkZW50aWFsc1snYWNjZXNzVG9rZW4nXSwKKyAgICAgICAgICAgICAgICAgICAgICAgIGFsZ29y
aXRobSwKKyAgICAgICAgICAgICAgICAgICAgICAgIHRpbWVzdGFtcCwKKyAgICAgICAgICAgICAg
ICAgICAgICAgIG5vbmNlLAorICAgICAgICAgICAgICAgICAgICAgICAgbWV0aG9kLAorICAgICAg
ICAgICAgICAgICAgICAgICAgdXJsX3BhcnRzWydyZXNvdXJjZSddLAorICAgICAgICAgICAgICAg
ICAgICAgICAgdXJsX3BhcnRzWydob3N0bmFtZSddLAorICAgICAgICAgICAgICAgICAgICAgICAg
c3RyKHVybF9wYXJ0c1sncG9ydCddKSwKKyAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRlbnRf
aGFzaCwKKyAgICAgICAgICAgICAgICAgICAgICAgICkKKworICAgIGhlYWRlciA9IHUnSGF3ayBt
YWM9Int9IicuZm9ybWF0KHByZXBhcmVfaGVhZGVyX3ZhbChtYWMpKQorCisgICAgaWYgY29udGVu
dF9oYXNoOiAgIyBwcmFnbWE6IG5vIGNvdmVyCisgICAgICAgIGhlYWRlciA9IHUne30sIGhhc2g9
Int9IicuZm9ybWF0KGhlYWRlciwgcHJlcGFyZV9oZWFkZXJfdmFsKGNvbnRlbnRfaGFzaCkpCisK
KyAgICBoZWFkZXIgPSB1J3toZWFkZXJ9LCBpZD0ie2lkfSIsIHRzPSJ7dHN9Iiwgbm9uY2U9Intu
b25jZX0iJy5mb3JtYXQoCisgICAgICAgIGhlYWRlcj1oZWFkZXIsCisgICAgICAgIGlkPXByZXBh
cmVfaGVhZGVyX3ZhbChjcmVkZW50aWFsc1snY2xpZW50SWQnXSksCisgICAgICAgIHRzPXByZXBh
cmVfaGVhZGVyX3ZhbCh0aW1lc3RhbXApLAorICAgICAgICBub25jZT1wcmVwYXJlX2hlYWRlcl92
YWwobm9uY2UpLAorICAgICkKKworICAgIGxvZy5kZWJ1ZygnSGF3ayBoZWFkZXIgZm9yIFVSTD17
fSBtZXRob2Q9e306IHt9Jy5mb3JtYXQodXJsLCBtZXRob2QsIGhlYWRlcikpCisKKyAgICByZXR1
cm4gaGVhZGVyCisKKworY2xhc3MgRmlsZVJlY29yZChvYmplY3QpOgorCisgICAgZGVmIF9faW5p
dF9fKHNlbGYsIGZpbGVuYW1lLCBzaXplLCBkaWdlc3QsIGFsZ29yaXRobSwgdW5wYWNrPUZhbHNl
LAorICAgICAgICAgICAgICAgICB2ZXJzaW9uPU5vbmUsIHZpc2liaWxpdHk9Tm9uZSk6CisgICAg
ICAgIG9iamVjdC5fX2luaXRfXyhzZWxmKQorICAgICAgICBpZiAnLycgaW4gZmlsZW5hbWUgb3Ig
J1xcJyBpbiBmaWxlbmFtZToKKyAgICAgICAgICAgIGxvZy5lcnJvcigKKyAgICAgICAgICAgICAg
ICAiVGhlIGZpbGVuYW1lIHByb3ZpZGVkIGNvbnRhaW5zIHBhdGggaW5mb3JtYXRpb24gYW5kIGlz
LCB0aGVyZWZvcmUsIGludmFsaWQuIikKKyAgICAgICAgICAgIHJhaXNlIEJhZEZpbGVuYW1lRXhj
ZXB0aW9uKGZpbGVuYW1lPWZpbGVuYW1lKQorICAgICAgICBzZWxmLmZpbGVuYW1lID0gZmlsZW5h
bWUKKyAgICAgICAgc2VsZi5zaXplID0gc2l6ZQorICAgICAgICBzZWxmLmRpZ2VzdCA9IGRpZ2Vz
dAorICAgICAgICBzZWxmLmFsZ29yaXRobSA9IGFsZ29yaXRobQorICAgICAgICBzZWxmLnVucGFj
ayA9IHVucGFjaworICAgICAgICBzZWxmLnZlcnNpb24gPSB2ZXJzaW9uCisgICAgICAgIHNlbGYu
dmlzaWJpbGl0eSA9IHZpc2liaWxpdHkKKworICAgIGRlZiBfX2VxX18oc2VsZiwgb3RoZXIpOgor
ICAgICAgICBpZiBzZWxmIGlzIG90aGVyOgorICAgICAgICAgICAgcmV0dXJuIFRydWUKKyAgICAg
ICAgaWYgc2VsZi5maWxlbmFtZSA9PSBvdGhlci5maWxlbmFtZSBhbmQgXAorICAgICAgICAgICBz
ZWxmLnNpemUgPT0gb3RoZXIuc2l6ZSBhbmQgXAorICAgICAgICAgICBzZWxmLmRpZ2VzdCA9PSBv
dGhlci5kaWdlc3QgYW5kIFwKKyAgICAgICAgICAgc2VsZi5hbGdvcml0aG0gPT0gb3RoZXIuYWxn
b3JpdGhtIGFuZCBcCisgICAgICAgICAgIHNlbGYudmVyc2lvbiA9PSBvdGhlci52ZXJzaW9uIGFu
ZCBcCisgICAgICAgICAgIHNlbGYudmlzaWJpbGl0eSA9PSBvdGhlci52aXNpYmlsaXR5OgorICAg
ICAgICAgICAgcmV0dXJuIFRydWUKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHJldHVybiBG
YWxzZQorCisgICAgZGVmIF9fbmVfXyhzZWxmLCBvdGhlcik6CisgICAgICAgIHJldHVybiBub3Qg
c2VsZi5fX2VxX18ob3RoZXIpCisKKyAgICBkZWYgX19zdHJfXyhzZWxmKToKKyAgICAgICAgcmV0
dXJuIHJlcHIoc2VsZikKKworICAgIGRlZiBfX3JlcHJfXyhzZWxmKToKKyAgICAgICAgcmV0dXJu
ICIlcy4lcyhmaWxlbmFtZT0nJXMnLCBzaXplPSVzLCBkaWdlc3Q9JyVzJywgYWxnb3JpdGhtPScl
cycsIHZpc2liaWxpdHk9JXIpIiAlICgKKyAgICAgICAgICAgIF9fbmFtZV9fLCBzZWxmLl9fY2xh
c3NfXy5fX25hbWVfXywgc2VsZi5maWxlbmFtZSwgc2VsZi5zaXplLAorICAgICAgICAgICAgc2Vs
Zi5kaWdlc3QsIHNlbGYuYWxnb3JpdGhtLCBzZWxmLnZpc2liaWxpdHkpCisKKyAgICBkZWYgcHJl
c2VudChzZWxmKToKKyAgICAgICAgIyBEb2Vzbid0IGNoZWNrIHZhbGlkaXR5CisgICAgICAgIHJl
dHVybiBvcy5wYXRoLmV4aXN0cyhzZWxmLmZpbGVuYW1lKQorCisgICAgZGVmIHZhbGlkYXRlX3Np
emUoc2VsZik6CisgICAgICAgIGlmIHNlbGYucHJlc2VudCgpOgorICAgICAgICAgICAgcmV0dXJu
IHNlbGYuc2l6ZSA9PSBvcy5wYXRoLmdldHNpemUoc2VsZi5maWxlbmFtZSkKKyAgICAgICAgZWxz
ZToKKyAgICAgICAgICAgIGxvZy5kZWJ1ZygKKyAgICAgICAgICAgICAgICAidHJ5aW5nIHRvIHZh
bGlkYXRlIHNpemUgb24gYSBtaXNzaW5nIGZpbGUsICVzIiwgc2VsZi5maWxlbmFtZSkKKyAgICAg
ICAgICAgIHJhaXNlIE1pc3NpbmdGaWxlRXhjZXB0aW9uKGZpbGVuYW1lPXNlbGYuZmlsZW5hbWUp
CisKKyAgICBkZWYgdmFsaWRhdGVfZGlnZXN0KHNlbGYpOgorICAgICAgICBpZiBzZWxmLnByZXNl
bnQoKToKKyAgICAgICAgICAgIHdpdGggb3BlbihzZWxmLmZpbGVuYW1lLCAncmInKSBhcyBmOgor
ICAgICAgICAgICAgICAgIHJldHVybiBzZWxmLmRpZ2VzdCA9PSBkaWdlc3RfZmlsZShmLCBzZWxm
LmFsZ29yaXRobSkKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIGxvZy5kZWJ1ZygKKyAgICAg
ICAgICAgICAgICAidHJ5aW5nIHRvIHZhbGlkYXRlIGRpZ2VzdCBvbiBhIG1pc3NpbmcgZmlsZSwg
JXMnLCBzZWxmLmZpbGVuYW1lIikKKyAgICAgICAgICAgIHJhaXNlIE1pc3NpbmdGaWxlRXhjZXB0
aW9uKGZpbGVuYW1lPXNlbGYuZmlsZW5hbWUpCisKKyAgICBkZWYgdmFsaWRhdGUoc2VsZik6Cisg
ICAgICAgIGlmIHNlbGYuc2l6ZSBpcyBOb25lIG9yIHNlbGYudmFsaWRhdGVfc2l6ZSgpOgorICAg
ICAgICAgICAgaWYgc2VsZi52YWxpZGF0ZV9kaWdlc3QoKToKKyAgICAgICAgICAgICAgICByZXR1
cm4gVHJ1ZQorICAgICAgICByZXR1cm4gRmFsc2UKKworICAgIGRlZiBkZXNjcmliZShzZWxmKToK
KyAgICAgICAgaWYgc2VsZi5wcmVzZW50KCkgYW5kIHNlbGYudmFsaWRhdGUoKToKKyAgICAgICAg
ICAgIHJldHVybiAiJyVzJyBpcyBwcmVzZW50IGFuZCB2YWxpZCIgJSBzZWxmLmZpbGVuYW1lCisg
ICAgICAgIGVsaWYgc2VsZi5wcmVzZW50KCk6CisgICAgICAgICAgICByZXR1cm4gIiclcycgaXMg
cHJlc2VudCBhbmQgaW52YWxpZCIgJSBzZWxmLmZpbGVuYW1lCisgICAgICAgIGVsc2U6CisgICAg
ICAgICAgICByZXR1cm4gIiclcycgaXMgYWJzZW50IiAlIHNlbGYuZmlsZW5hbWUKKworCitkZWYg
Y3JlYXRlX2ZpbGVfcmVjb3JkKGZpbGVuYW1lLCBhbGdvcml0aG0pOgorICAgIGZvID0gb3Blbihm
aWxlbmFtZSwgJ3JiJykKKyAgICBzdG9yZWRfZmlsZW5hbWUgPSBvcy5wYXRoLnNwbGl0KGZpbGVu
YW1lKVsxXQorICAgIGZyID0gRmlsZVJlY29yZChzdG9yZWRfZmlsZW5hbWUsIG9zLnBhdGguZ2V0
c2l6ZSgKKyAgICAgICAgZmlsZW5hbWUpLCBkaWdlc3RfZmlsZShmbywgYWxnb3JpdGhtKSwgYWxn
b3JpdGhtKQorICAgIGZvLmNsb3NlKCkKKyAgICByZXR1cm4gZnIKKworCitjbGFzcyBGaWxlUmVj
b3JkSlNPTkVuY29kZXIoanNvbi5KU09ORW5jb2Rlcik6CisKKyAgICBkZWYgZW5jb2RlX2ZpbGVf
cmVjb3JkKHNlbGYsIG9iaik6CisgICAgICAgIGlmIG5vdCBpc3N1YmNsYXNzKHR5cGUob2JqKSwg
RmlsZVJlY29yZCk6CisgICAgICAgICAgICBlcnIgPSAiRmlsZVJlY29yZEpTT05FbmNvZGVyIGlz
IG9ubHkgZm9yIEZpbGVSZWNvcmQgYW5kIGxpc3RzIG9mIEZpbGVSZWNvcmRzLCAiIFwKKyAgICAg
ICAgICAgICAgICAgICJub3QgJXMiICUgb2JqLl9fY2xhc3NfXy5fX25hbWVfXworICAgICAgICAg
ICAgbG9nLndhcm4oZXJyKQorICAgICAgICAgICAgcmFpc2UgRmlsZVJlY29yZEpTT05FbmNvZGVy
RXhjZXB0aW9uKGVycikKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHJ2ID0geworICAgICAg
ICAgICAgICAgICdmaWxlbmFtZSc6IG9iai5maWxlbmFtZSwKKyAgICAgICAgICAgICAgICAnc2l6
ZSc6IG9iai5zaXplLAorICAgICAgICAgICAgICAgICdhbGdvcml0aG0nOiBvYmouYWxnb3JpdGht
LAorICAgICAgICAgICAgICAgICdkaWdlc3QnOiBvYmouZGlnZXN0LAorICAgICAgICAgICAgfQor
ICAgICAgICAgICAgaWYgb2JqLnVucGFjazoKKyAgICAgICAgICAgICAgICBydlsndW5wYWNrJ10g
PSBUcnVlCisgICAgICAgICAgICBpZiBvYmoudmVyc2lvbjoKKyAgICAgICAgICAgICAgICBydlsn
dmVyc2lvbiddID0gb2JqLnZlcnNpb24KKyAgICAgICAgICAgIGlmIG9iai52aXNpYmlsaXR5IGlz
IG5vdCBOb25lOgorICAgICAgICAgICAgICAgIHJ2Wyd2aXNpYmlsaXR5J10gPSBvYmoudmlzaWJp
bGl0eQorICAgICAgICAgICAgcmV0dXJuIHJ2CisKKyAgICBkZWYgZGVmYXVsdChzZWxmLCBmKToK
KyAgICAgICAgaWYgaXNzdWJjbGFzcyh0eXBlKGYpLCBsaXN0KToKKyAgICAgICAgICAgIHJlY29y
ZF9saXN0ID0gW10KKyAgICAgICAgICAgIGZvciBpIGluIGY6CisgICAgICAgICAgICAgICAgcmVj
b3JkX2xpc3QuYXBwZW5kKHNlbGYuZW5jb2RlX2ZpbGVfcmVjb3JkKGkpKQorICAgICAgICAgICAg
cmV0dXJuIHJlY29yZF9saXN0CisgICAgICAgIGVsc2U6CisgICAgICAgICAgICByZXR1cm4gc2Vs
Zi5lbmNvZGVfZmlsZV9yZWNvcmQoZikKKworCitjbGFzcyBGaWxlUmVjb3JkSlNPTkRlY29kZXIo
anNvbi5KU09ORGVjb2Rlcik6CisKKyAgICAiIiJJIGhlbHAgdGhlIGpzb24gbW9kdWxlIG1hdGVy
aWFsaXplIGEgRmlsZVJlY29yZCBmcm9tCisgICAgYSBKU09OIGZpbGUuICBJIHVuZGVyc3RhbmQg
RmlsZVJlY29yZHMgYW5kIGxpc3RzIG9mCisgICAgRmlsZVJlY29yZHMuICBJIGlnbm9yZSB0aGlu
Z3MgdGhhdCBJIGRvbid0IGV4cGVjdCBmb3Igbm93IiIiCisgICAgIyBUT0RPOiBtYWtlIHRoaXMg
bW9yZSBleHBsaWNpdCBpbiB3aGF0IGl0J3MgbG9va2luZyBmb3IKKyAgICAjIGFuZCBlcnJvciBv
dXQgb24gdW5leHBlY3RlZCB0aGluZ3MKKworICAgIGRlZiBwcm9jZXNzX2ZpbGVfcmVjb3Jkcyhz
ZWxmLCBvYmopOgorICAgICAgICBpZiBpc2luc3RhbmNlKG9iaiwgbGlzdCk6CisgICAgICAgICAg
ICByZWNvcmRfbGlzdCA9IFtdCisgICAgICAgICAgICBmb3IgaSBpbiBvYmo6CisgICAgICAgICAg
ICAgICAgcmVjb3JkID0gc2VsZi5wcm9jZXNzX2ZpbGVfcmVjb3JkcyhpKQorICAgICAgICAgICAg
ICAgIGlmIGlzc3ViY2xhc3ModHlwZShyZWNvcmQpLCBGaWxlUmVjb3JkKToKKyAgICAgICAgICAg
ICAgICAgICAgcmVjb3JkX2xpc3QuYXBwZW5kKHJlY29yZCkKKyAgICAgICAgICAgIHJldHVybiBy
ZWNvcmRfbGlzdAorICAgICAgICByZXF1aXJlZF9maWVsZHMgPSBbCisgICAgICAgICAgICAnZmls
ZW5hbWUnLAorICAgICAgICAgICAgJ3NpemUnLAorICAgICAgICAgICAgJ2FsZ29yaXRobScsCisg
ICAgICAgICAgICAnZGlnZXN0JywKKyAgICAgICAgXQorICAgICAgICBpZiBpc2luc3RhbmNlKG9i
aiwgZGljdCk6CisgICAgICAgICAgICBtaXNzaW5nID0gRmFsc2UKKyAgICAgICAgICAgIGZvciBy
ZXEgaW4gcmVxdWlyZWRfZmllbGRzOgorICAgICAgICAgICAgICAgIGlmIHJlcSBub3QgaW4gb2Jq
OgorICAgICAgICAgICAgICAgICAgICBtaXNzaW5nID0gVHJ1ZQorICAgICAgICAgICAgICAgICAg
ICBicmVhaworCisgICAgICAgICAgICBpZiBub3QgbWlzc2luZzoKKyAgICAgICAgICAgICAgICB1
bnBhY2sgPSBvYmouZ2V0KCd1bnBhY2snLCBGYWxzZSkKKyAgICAgICAgICAgICAgICB2ZXJzaW9u
ID0gb2JqLmdldCgndmVyc2lvbicsIE5vbmUpCisgICAgICAgICAgICAgICAgdmlzaWJpbGl0eSA9
IG9iai5nZXQoJ3Zpc2liaWxpdHknLCBOb25lKQorICAgICAgICAgICAgICAgIHJ2ID0gRmlsZVJl
Y29yZCgKKyAgICAgICAgICAgICAgICAgICAgb2JqWydmaWxlbmFtZSddLCBvYmpbJ3NpemUnXSwg
b2JqWydkaWdlc3QnXSwgb2JqWydhbGdvcml0aG0nXSwKKyAgICAgICAgICAgICAgICAgICAgdW5w
YWNrLCB2ZXJzaW9uLCB2aXNpYmlsaXR5KQorICAgICAgICAgICAgICAgIGxvZy5kZWJ1ZygibWF0
ZXJpYWxpemVkICVzIiAlIHJ2KQorICAgICAgICAgICAgICAgIHJldHVybiBydgorICAgICAgICBy
ZXR1cm4gb2JqCisKKyAgICBkZWYgZGVjb2RlKHNlbGYsIHMpOgorICAgICAgICBkZWNvZGVkID0g
anNvbi5KU09ORGVjb2Rlci5kZWNvZGUoc2VsZiwgcykKKyAgICAgICAgcnYgPSBzZWxmLnByb2Nl
c3NfZmlsZV9yZWNvcmRzKGRlY29kZWQpCisgICAgICAgIHJldHVybiBydgorCisKK2NsYXNzIE1h
bmlmZXN0KG9iamVjdCk6CisKKyAgICB2YWxpZF9mb3JtYXRzID0gKCdqc29uJywpCisKKyAgICBk
ZWYgX19pbml0X18oc2VsZiwgZmlsZV9yZWNvcmRzPU5vbmUpOgorICAgICAgICBzZWxmLmZpbGVf
cmVjb3JkcyA9IGZpbGVfcmVjb3JkcyBvciBbXQorCisgICAgZGVmIF9fZXFfXyhzZWxmLCBvdGhl
cik6CisgICAgICAgIGlmIHNlbGYgaXMgb3RoZXI6CisgICAgICAgICAgICByZXR1cm4gVHJ1ZQor
ICAgICAgICBpZiBsZW4oc2VsZi5maWxlX3JlY29yZHMpICE9IGxlbihvdGhlci5maWxlX3JlY29y
ZHMpOgorICAgICAgICAgICAgbG9nLmRlYnVnKCdNYW5pZmVzdHMgZGlmZmVyIGluIG51bWJlciBv
ZiBmaWxlcycpCisgICAgICAgICAgICByZXR1cm4gRmFsc2UKKyAgICAgICAgIyBzb3J0IHRoZSBm
aWxlIHJlY29yZHMgYnkgZmlsZW5hbWUgYmVmb3JlIGNvbXBhcmluZworICAgICAgICBtaW5lID0g
c29ydGVkKChmci5maWxlbmFtZSwgZnIpIGZvciBmciBpbiBzZWxmLmZpbGVfcmVjb3JkcykKKyAg
ICAgICAgdGhlaXJzID0gc29ydGVkKChmci5maWxlbmFtZSwgZnIpIGZvciBmciBpbiBvdGhlci5m
aWxlX3JlY29yZHMpCisgICAgICAgIHJldHVybiBtaW5lID09IHRoZWlycworCisgICAgZGVmIF9f
bmVfXyhzZWxmLCBvdGhlcik6CisgICAgICAgIHJldHVybiBub3Qgc2VsZi5fX2VxX18ob3RoZXIp
CisKKyAgICBkZWYgX19kZWVwY29weV9fKHNlbGYsIG1lbW8pOgorICAgICAgICAjIFRoaXMgaXMg
cmVxdWlyZWQgZm9yIGEgZGVlcCBjb3B5CisgICAgICAgIHJldHVybiBNYW5pZmVzdChzZWxmLmZp
bGVfcmVjb3Jkc1s6XSkKKworICAgIGRlZiBfX2NvcHlfXyhzZWxmKToKKyAgICAgICAgcmV0dXJu
IE1hbmlmZXN0KHNlbGYuZmlsZV9yZWNvcmRzKQorCisgICAgZGVmIGNvcHkoc2VsZik6CisgICAg
ICAgIHJldHVybiBNYW5pZmVzdChzZWxmLmZpbGVfcmVjb3Jkc1s6XSkKKworICAgIGRlZiBwcmVz
ZW50KHNlbGYpOgorICAgICAgICByZXR1cm4gYWxsKGkucHJlc2VudCgpIGZvciBpIGluIHNlbGYu
ZmlsZV9yZWNvcmRzKQorCisgICAgZGVmIHZhbGlkYXRlX3NpemVzKHNlbGYpOgorICAgICAgICBy
ZXR1cm4gYWxsKGkudmFsaWRhdGVfc2l6ZSgpIGZvciBpIGluIHNlbGYuZmlsZV9yZWNvcmRzKQor
CisgICAgZGVmIHZhbGlkYXRlX2RpZ2VzdHMoc2VsZik6CisgICAgICAgIHJldHVybiBhbGwoaS52
YWxpZGF0ZV9kaWdlc3QoKSBmb3IgaSBpbiBzZWxmLmZpbGVfcmVjb3JkcykKKworICAgIGRlZiB2
YWxpZGF0ZShzZWxmKToKKyAgICAgICAgcmV0dXJuIGFsbChpLnZhbGlkYXRlKCkgZm9yIGkgaW4g
c2VsZi5maWxlX3JlY29yZHMpCisKKyAgICBkZWYgbG9hZChzZWxmLCBkYXRhX2ZpbGUsIGZtdD0n
anNvbicpOgorICAgICAgICBhc3NlcnQgZm10IGluIHNlbGYudmFsaWRfZm9ybWF0cworICAgICAg
ICBpZiBmbXQgPT0gJ2pzb24nOgorICAgICAgICAgICAgdHJ5OgorICAgICAgICAgICAgICAgIHNl
bGYuZmlsZV9yZWNvcmRzLmV4dGVuZCgKKyAgICAgICAgICAgICAgICAgICAganNvbi5sb2FkKGRh
dGFfZmlsZSwgY2xzPUZpbGVSZWNvcmRKU09ORGVjb2RlcikpCisgICAgICAgICAgICBleGNlcHQg
VmFsdWVFcnJvcjoKKyAgICAgICAgICAgICAgICByYWlzZSBJbnZhbGlkTWFuaWZlc3QoInRyeWlu
ZyB0byByZWFkIGludmFsaWQgbWFuaWZlc3QgZmlsZSIpCisKKyAgICBkZWYgbG9hZHMoc2VsZiwg
ZGF0YV9zdHJpbmcsIGZtdD0nanNvbicpOgorICAgICAgICBhc3NlcnQgZm10IGluIHNlbGYudmFs
aWRfZm9ybWF0cworICAgICAgICBpZiBmbXQgPT0gJ2pzb24nOgorICAgICAgICAgICAgdHJ5Ogor
ICAgICAgICAgICAgICAgIHNlbGYuZmlsZV9yZWNvcmRzLmV4dGVuZCgKKyAgICAgICAgICAgICAg
ICAgICAganNvbi5sb2FkcyhkYXRhX3N0cmluZywgY2xzPUZpbGVSZWNvcmRKU09ORGVjb2Rlcikp
CisgICAgICAgICAgICBleGNlcHQgVmFsdWVFcnJvcjoKKyAgICAgICAgICAgICAgICByYWlzZSBJ
bnZhbGlkTWFuaWZlc3QoInRyeWluZyB0byByZWFkIGludmFsaWQgbWFuaWZlc3QgZmlsZSIpCisK
KyAgICBkZWYgZHVtcChzZWxmLCBvdXRwdXRfZmlsZSwgZm10PSdqc29uJyk6CisgICAgICAgIGFz
c2VydCBmbXQgaW4gc2VsZi52YWxpZF9mb3JtYXRzCisgICAgICAgIGlmIGZtdCA9PSAnanNvbic6
CisgICAgICAgICAgICByZXR1cm4ganNvbi5kdW1wKAorICAgICAgICAgICAgICAgIHNlbGYuZmls
ZV9yZWNvcmRzLCBvdXRwdXRfZmlsZSwKKyAgICAgICAgICAgICAgICBpbmRlbnQ9Miwgc2VwYXJh
dG9ycz0oJywnLCAnOiAnKSwKKyAgICAgICAgICAgICAgICBjbHM9RmlsZVJlY29yZEpTT05FbmNv
ZGVyLAorICAgICAgICAgICAgKQorCisgICAgZGVmIGR1bXBzKHNlbGYsIGZtdD0nanNvbicpOgor
ICAgICAgICBhc3NlcnQgZm10IGluIHNlbGYudmFsaWRfZm9ybWF0cworICAgICAgICBpZiBmbXQg
PT0gJ2pzb24nOgorICAgICAgICAgICAgcmV0dXJuIGpzb24uZHVtcHMoCisgICAgICAgICAgICAg
ICAgc2VsZi5maWxlX3JlY29yZHMsCisgICAgICAgICAgICAgICAgaW5kZW50PTIsIHNlcGFyYXRv
cnM9KCcsJywgJzogJyksCisgICAgICAgICAgICAgICAgY2xzPUZpbGVSZWNvcmRKU09ORW5jb2Rl
ciwKKyAgICAgICAgICAgICkKKworCitkZWYgZGlnZXN0X2ZpbGUoZiwgYSk6CisgICAgIiIiSSB0
YWtlIGEgZmlsZSBsaWtlIG9iamVjdCAnZicgYW5kIHJldHVybiBhIGhleC1zdHJpbmcgY29udGFp
bmluZworICAgIG9mIHRoZSByZXN1bHQgb2YgdGhlIGFsZ29yaXRobSAnYScgYXBwbGllZCB0byAn
ZicuIiIiCisgICAgaCA9IGhhc2hsaWIubmV3KGEpCisgICAgY2h1bmtfc2l6ZSA9IDEwMjQgKiAx
MAorICAgIGRhdGEgPSBmLnJlYWQoY2h1bmtfc2l6ZSkKKyAgICB3aGlsZSBkYXRhOgorICAgICAg
ICBoLnVwZGF0ZShkYXRhKQorICAgICAgICBkYXRhID0gZi5yZWFkKGNodW5rX3NpemUpCisgICAg
bmFtZSA9IHJlcHIoZi5uYW1lKSBpZiBoYXNhdHRyKGYsICduYW1lJykgZWxzZSAnYSBmaWxlJwor
ICAgIGxvZy5kZWJ1ZygnaGFzaGVkICVzIHdpdGggJXMgdG8gYmUgJXMnLCBuYW1lLCBhLCBoLmhl
eGRpZ2VzdCgpKQorICAgIHJldHVybiBoLmhleGRpZ2VzdCgpCisKKworZGVmIGV4ZWN1dGUoY21k
KToKKyAgICAiIiJFeGVjdXRlIENNRCwgbG9nZ2luZyBpdHMgc3Rkb3V0IGF0IHRoZSBpbmZvIGxl
dmVsIiIiCisgICAgcHJvY2VzcyA9IFBvcGVuKGNtZCwgc2hlbGw9VHJ1ZSwgc3Rkb3V0PVBJUEUp
CisgICAgd2hpbGUgVHJ1ZToKKyAgICAgICAgbGluZSA9IHByb2Nlc3Muc3Rkb3V0LnJlYWRsaW5l
KCkKKyAgICAgICAgaWYgbm90IGxpbmU6CisgICAgICAgICAgICBicmVhaworICAgICAgICBsb2cu
aW5mbyhsaW5lLnJlcGxhY2UoJ1xuJywgJyAnKSkKKyAgICByZXR1cm4gcHJvY2Vzcy53YWl0KCkg
PT0gMAorCisKK2RlZiBvcGVuX21hbmlmZXN0KG1hbmlmZXN0X2ZpbGUpOgorICAgICIiIkkga25v
dyBob3cgdG8gdGFrZSBhIGZpbGVuYW1lIGFuZCBsb2FkIGl0IGludG8gYSBNYW5pZmVzdCBvYmpl
Y3QiIiIKKyAgICBpZiBvcy5wYXRoLmV4aXN0cyhtYW5pZmVzdF9maWxlKToKKyAgICAgICAgbWFu
aWZlc3QgPSBNYW5pZmVzdCgpCisgICAgICAgIHdpdGggb3BlbihtYW5pZmVzdF9maWxlLCAicmIi
KSBhcyBmOgorICAgICAgICAgICAgbWFuaWZlc3QubG9hZChmKQorICAgICAgICAgICAgbG9nLmRl
YnVnKCJsb2FkZWQgbWFuaWZlc3QgZnJvbSBmaWxlICclcyciICUgbWFuaWZlc3RfZmlsZSkKKyAg
ICAgICAgcmV0dXJuIG1hbmlmZXN0CisgICAgZWxzZToKKyAgICAgICAgbG9nLmRlYnVnKCJ0cmll
ZCB0byBsb2FkIGFic2VudCBmaWxlICclcycgYXMgbWFuaWZlc3QiICUgbWFuaWZlc3RfZmlsZSkK
KyAgICAgICAgcmFpc2UgSW52YWxpZE1hbmlmZXN0KAorICAgICAgICAgICAgIm1hbmlmZXN0IGZp
bGUgJyVzJyBkb2VzIG5vdCBleGlzdCIgJSBtYW5pZmVzdF9maWxlKQorCisKK2RlZiBsaXN0X21h
bmlmZXN0KG1hbmlmZXN0X2ZpbGUpOgorICAgICIiIkkga25vdyBob3cgcHJpbnQgYWxsIHRoZSBm
aWxlcyBpbiBhIGxvY2F0aW9uIiIiCisgICAgdHJ5OgorICAgICAgICBtYW5pZmVzdCA9IG9wZW5f
bWFuaWZlc3QobWFuaWZlc3RfZmlsZSkKKyAgICBleGNlcHQgSW52YWxpZE1hbmlmZXN0IGFzIGU6
CisgICAgICAgIGxvZy5lcnJvcigiZmFpbGVkIHRvIGxvYWQgbWFuaWZlc3QgZmlsZSBhdCAnJXMn
OiAlcyIgJSAoCisgICAgICAgICAgICBtYW5pZmVzdF9maWxlLAorICAgICAgICAgICAgc3RyKGUp
LAorICAgICAgICApKQorICAgICAgICByZXR1cm4gRmFsc2UKKyAgICBmb3IgZiBpbiBtYW5pZmVz
dC5maWxlX3JlY29yZHM6CisgICAgICAgIHByaW50KCJ7fVx0e31cdHt9Ii5mb3JtYXQoIlAiIGlm
IGYucHJlc2VudCgpIGVsc2UgIi0iLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICJWIiBpZiBmLnByZXNlbnQoKSBhbmQgZi52YWxpZGF0ZSgpIGVsc2UgIi0iLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGYuZmlsZW5hbWUpKQorICAgIHJldHVybiBUcnVlCisK
KworZGVmIHZhbGlkYXRlX21hbmlmZXN0KG1hbmlmZXN0X2ZpbGUpOgorICAgICIiIkkgdmFsaWRh
dGUgdGhhdCBhbGwgZmlsZXMgaW4gYSBtYW5pZmVzdCBhcmUgcHJlc2VudCBhbmQgdmFsaWQgYnV0
CisgICAgZG9uJ3QgZmV0Y2ggb3IgZGVsZXRlIHRoZW0gaWYgdGhleSBhcmVuJ3QiIiIKKyAgICB0
cnk6CisgICAgICAgIG1hbmlmZXN0ID0gb3Blbl9tYW5pZmVzdChtYW5pZmVzdF9maWxlKQorICAg
IGV4Y2VwdCBJbnZhbGlkTWFuaWZlc3QgYXMgZToKKyAgICAgICAgbG9nLmVycm9yKCJmYWlsZWQg
dG8gbG9hZCBtYW5pZmVzdCBmaWxlIGF0ICclcyc6ICVzIiAlICgKKyAgICAgICAgICAgIG1hbmlm
ZXN0X2ZpbGUsCisgICAgICAgICAgICBzdHIoZSksCisgICAgICAgICkpCisgICAgICAgIHJldHVy
biBGYWxzZQorICAgIGludmFsaWRfZmlsZXMgPSBbXQorICAgIGFic2VudF9maWxlcyA9IFtdCisg
ICAgZm9yIGYgaW4gbWFuaWZlc3QuZmlsZV9yZWNvcmRzOgorICAgICAgICBpZiBub3QgZi5wcmVz
ZW50KCk6CisgICAgICAgICAgICBhYnNlbnRfZmlsZXMuYXBwZW5kKGYpCisgICAgICAgIGVsc2U6
CisgICAgICAgICAgICBpZiBub3QgZi52YWxpZGF0ZSgpOgorICAgICAgICAgICAgICAgIGludmFs
aWRfZmlsZXMuYXBwZW5kKGYpCisgICAgaWYgbGVuKGludmFsaWRfZmlsZXMgKyBhYnNlbnRfZmls
ZXMpID09IDA6CisgICAgICAgIHJldHVybiBUcnVlCisgICAgZWxzZToKKyAgICAgICAgcmV0dXJu
IEZhbHNlCisKKworZGVmIGFkZF9maWxlcyhtYW5pZmVzdF9maWxlLCBhbGdvcml0aG0sIGZpbGVu
YW1lcywgdmVyc2lvbiwgdmlzaWJpbGl0eSwgdW5wYWNrKToKKyAgICAjIHJldHVybnMgVHJ1ZSBp
ZiBhbGwgZmlsZXMgc3VjY2Vzc2Z1bGx5IGFkZGVkLCBGYWxzZSBpZiBub3QKKyAgICAjIGFuZCBk
b2Vzbid0IGNhdGNoIGxpYnJhcnkgRXhjZXB0aW9ucy4gIElmIGFueSBmaWxlcyBhcmUgYWxyZWFk
eQorICAgICMgdHJhY2tlZCBpbiB0aGUgbWFuaWZlc3QsIHJldHVybiB3aWxsIGJlIEZhbHNlIGJl
Y2F1c2UgdGhleSB3ZXJlbid0CisgICAgIyBhZGRlZAorICAgIGFsbF9maWxlc19hZGRlZCA9IFRy
dWUKKyAgICAjIENyZWF0ZSBhIG9sZF9tYW5pZmVzdCBvYmplY3QgdG8gYWRkIHRvCisgICAgaWYg
b3MucGF0aC5leGlzdHMobWFuaWZlc3RfZmlsZSk6CisgICAgICAgIG9sZF9tYW5pZmVzdCA9IG9w
ZW5fbWFuaWZlc3QobWFuaWZlc3RfZmlsZSkKKyAgICBlbHNlOgorICAgICAgICBvbGRfbWFuaWZl
c3QgPSBNYW5pZmVzdCgpCisgICAgICAgIGxvZy5kZWJ1ZygiY3JlYXRpbmcgYSBuZXcgbWFuaWZl
c3QgZmlsZSIpCisgICAgbmV3X21hbmlmZXN0ID0gTWFuaWZlc3QoKSAgIyB1c2UgYSBkaWZmZXJl
bnQgbWFuaWZlc3QgZm9yIHRoZSBvdXRwdXQKKyAgICBmb3IgZmlsZW5hbWUgaW4gZmlsZW5hbWVz
OgorICAgICAgICBsb2cuZGVidWcoImFkZGluZyAlcyIgJSBmaWxlbmFtZSkKKyAgICAgICAgcGF0
aCwgbmFtZSA9IG9zLnBhdGguc3BsaXQoZmlsZW5hbWUpCisgICAgICAgIG5ld19mciA9IGNyZWF0
ZV9maWxlX3JlY29yZChmaWxlbmFtZSwgYWxnb3JpdGhtKQorICAgICAgICBuZXdfZnIudmVyc2lv
biA9IHZlcnNpb24KKyAgICAgICAgbmV3X2ZyLnZpc2liaWxpdHkgPSB2aXNpYmlsaXR5CisgICAg
ICAgIG5ld19mci51bnBhY2sgPSB1bnBhY2sKKyAgICAgICAgbG9nLmRlYnVnKCJhcHBlbmRpbmcg
YSBuZXcgZmlsZSByZWNvcmQgdG8gbWFuaWZlc3QgZmlsZSIpCisgICAgICAgIGFkZCA9IFRydWUK
KyAgICAgICAgZm9yIGZyIGluIG9sZF9tYW5pZmVzdC5maWxlX3JlY29yZHM6CisgICAgICAgICAg
ICBsb2cuZGVidWcoIm1hbmlmZXN0IGZpbGUgaGFzICclcyciICUgIicsICIuam9pbigKKyAgICAg
ICAgICAgICAgICBbeC5maWxlbmFtZSBmb3IgeCBpbiBvbGRfbWFuaWZlc3QuZmlsZV9yZWNvcmRz
XSkpCisgICAgICAgICAgICBpZiBuZXdfZnIgPT0gZnI6CisgICAgICAgICAgICAgICAgbG9nLmlu
Zm8oImZpbGUgYWxyZWFkeSBpbiBvbGRfbWFuaWZlc3QiKQorICAgICAgICAgICAgICAgIGFkZCA9
IEZhbHNlCisgICAgICAgICAgICBlbGlmIGZpbGVuYW1lID09IGZyLmZpbGVuYW1lOgorICAgICAg
ICAgICAgICAgIGxvZy5lcnJvcigibWFuaWZlc3QgYWxyZWFkeSBjb250YWlucyBhIGRpZmZlcmVu
dCBmaWxlIG5hbWVkICVzIiAlIGZpbGVuYW1lKQorICAgICAgICAgICAgICAgIGFkZCA9IEZhbHNl
CisgICAgICAgIGlmIGFkZDoKKyAgICAgICAgICAgIG5ld19tYW5pZmVzdC5maWxlX3JlY29yZHMu
YXBwZW5kKG5ld19mcikKKyAgICAgICAgICAgIGxvZy5kZWJ1ZygiYWRkZWQgJyVzJyB0byBtYW5p
ZmVzdCIgJSBmaWxlbmFtZSkKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIGFsbF9maWxlc19h
ZGRlZCA9IEZhbHNlCisgICAgIyBjb3B5IGFueSBmaWxlcyBpbiB0aGUgb2xkIG1hbmlmZXN0IHRo
YXQgYXJlbid0IGluIHRoZSBuZXcgb25lCisgICAgbmV3X2ZpbGVuYW1lcyA9IHNldChmci5maWxl
bmFtZSBmb3IgZnIgaW4gbmV3X21hbmlmZXN0LmZpbGVfcmVjb3JkcykKKyAgICBmb3Igb2xkX2Zy
IGluIG9sZF9tYW5pZmVzdC5maWxlX3JlY29yZHM6CisgICAgICAgIGlmIG9sZF9mci5maWxlbmFt
ZSBub3QgaW4gbmV3X2ZpbGVuYW1lczoKKyAgICAgICAgICAgIG5ld19tYW5pZmVzdC5maWxlX3Jl
Y29yZHMuYXBwZW5kKG9sZF9mcikKKyAgICB3aXRoIG9wZW4obWFuaWZlc3RfZmlsZSwgKipvcGVu
X2F0dHJzKSBhcyBvdXRwdXQ6CisgICAgICAgIG5ld19tYW5pZmVzdC5kdW1wKG91dHB1dCwgZm10
PSdqc29uJykKKyAgICByZXR1cm4gYWxsX2ZpbGVzX2FkZGVkCisKKworZGVmIHRvdWNoKGYpOgor
ICAgICIiIlVzZWQgdG8gbW9kaWZ5IG10aW1lIGluIGNhY2hlZCBmaWxlczsKKyAgICBtdGltZSBp
cyB1c2VkIGJ5IHRoZSBwdXJnZSBjb21tYW5kIiIiCisgICAgdHJ5OgorICAgICAgICBvcy51dGlt
ZShmLCBOb25lKQorICAgIGV4Y2VwdCBPU0Vycm9yOgorICAgICAgICBsb2cud2FybignaW1wb3Nz
aWJsZSB0byB1cGRhdGUgdXRpbWUgb2YgZmlsZSAlcycgJSBmKQorCisKK2RlZiBmZXRjaF9maWxl
KGJhc2VfdXJscywgZmlsZV9yZWNvcmQsIGdyYWJjaHVuaz0xMDI0ICogNCwgYXV0aF9maWxlPU5v
bmUsIHJlZ2lvbj1Ob25lKToKKyAgICAjIEEgZmlsZSB3aGljaCBpcyByZXF1ZXN0ZWQgdG8gYmUg
ZmV0Y2hlZCB0aGF0IGV4aXN0cyBsb2NhbGx5IHdpbGwgYmUKKyAgICAjIG92ZXJ3cml0dGVuIGJ5
IHRoaXMgZnVuY3Rpb24KKyAgICBmZCwgdGVtcF9wYXRoID0gdGVtcGZpbGUubWtzdGVtcChkaXI9
b3MuZ2V0Y3dkKCkpCisgICAgb3MuY2xvc2UoZmQpCisgICAgZmV0Y2hlZF9wYXRoID0gTm9uZQor
ICAgIGZvciBiYXNlX3VybCBpbiBiYXNlX3VybHM6CisgICAgICAgICMgR2VuZXJhdGUgdGhlIFVS
TCBmb3IgdGhlIGZpbGUgb24gdGhlIHNlcnZlciBzaWRlCisgICAgICAgIHVybCA9IHVybGpvaW4o
YmFzZV91cmwsCisgICAgICAgICAgICAgICAgICAgICAgJyVzLyVzJyAlIChmaWxlX3JlY29yZC5h
bGdvcml0aG0sIGZpbGVfcmVjb3JkLmRpZ2VzdCkpCisgICAgICAgIGlmIHJlZ2lvbiBpcyBub3Qg
Tm9uZToKKyAgICAgICAgICAgIHVybCArPSAnP3JlZ2lvbj0nICsgcmVnaW9uCisKKyAgICAgICAg
bG9nLmluZm8oIkF0dGVtcHRpbmcgdG8gZmV0Y2ggZnJvbSAnJXMnLi4uIiAlIGJhc2VfdXJsKQor
CisgICAgICAgICMgV2VsbCwgdGhlIGZpbGUgZG9lc24ndCBleGlzdCBsb2NhbGx5LiAgTGV0J3Mg
ZmV0Y2ggaXQuCisgICAgICAgIHRyeToKKyAgICAgICAgICAgIHJlcSA9IFJlcXVlc3QodXJsKQor
ICAgICAgICAgICAgX2F1dGhvcml6ZShyZXEsIGF1dGhfZmlsZSkKKyAgICAgICAgICAgIGYgPSB1
cmxsaWIyLnVybG9wZW4ocmVxKQorICAgICAgICAgICAgbG9nLmRlYnVnKCJvcGVuZWQgJXMgZm9y
IHJlYWRpbmciICUgdXJsKQorICAgICAgICAgICAgd2l0aCBvcGVuKHRlbXBfcGF0aCwgKipvcGVu
X2F0dHJzKSBhcyBvdXQ6CisgICAgICAgICAgICAgICAgayA9IFRydWUKKyAgICAgICAgICAgICAg
ICBzaXplID0gMAorICAgICAgICAgICAgICAgIHdoaWxlIGs6CisgICAgICAgICAgICAgICAgICAg
ICMgVE9ETzogcHJpbnQgc3RhdGlzdGljcyBhcyBmaWxlIHRyYW5zZmVycyBoYXBwZW4gYm90aCBm
b3IgaW5mbyBhbmQgdG8gc3RvcAorICAgICAgICAgICAgICAgICAgICAjIGJ1aWxkYm90IHRpbWVv
dXRzCisgICAgICAgICAgICAgICAgICAgIGluZGF0YSA9IGYucmVhZChncmFiY2h1bmspCisgICAg
ICAgICAgICAgICAgICAgIGlmIFBZMzoKKyAgICAgICAgICAgICAgICAgICAgICAgIGluZGF0YSA9
IHRvX3RleHQoaW5kYXRhKQorICAgICAgICAgICAgICAgICAgICBvdXQud3JpdGUoaW5kYXRhKQor
ICAgICAgICAgICAgICAgICAgICBzaXplICs9IGxlbihpbmRhdGEpCisgICAgICAgICAgICAgICAg
ICAgIGlmIGxlbihpbmRhdGEpID09IDA6CisgICAgICAgICAgICAgICAgICAgICAgICBrID0gRmFs
c2UKKyAgICAgICAgICAgICAgICBsb2cuaW5mbygiRmlsZSAlcyBmZXRjaGVkIGZyb20gJXMgYXMg
JXMiICUKKyAgICAgICAgICAgICAgICAgICAgICAgICAoZmlsZV9yZWNvcmQuZmlsZW5hbWUsIGJh
c2VfdXJsLCB0ZW1wX3BhdGgpKQorICAgICAgICAgICAgICAgIGZldGNoZWRfcGF0aCA9IHRlbXBf
cGF0aAorICAgICAgICAgICAgICAgIGJyZWFrCisgICAgICAgIGV4Y2VwdCAoVVJMRXJyb3IsIEhU
VFBFcnJvciwgVmFsdWVFcnJvcik6CisgICAgICAgICAgICBsb2cuaW5mbygiLi4uZmFpbGVkIHRv
IGZldGNoICclcycgZnJvbSAlcyIgJQorICAgICAgICAgICAgICAgICAgICAgKGZpbGVfcmVjb3Jk
LmZpbGVuYW1lLCBiYXNlX3VybCksIGV4Y19pbmZvPVRydWUpCisgICAgICAgIGV4Y2VwdCBJT0Vy
cm9yOiAgIyBwcmFnbWE6IG5vIGNvdmVyCisgICAgICAgICAgICBsb2cuaW5mbygiZmFpbGVkIHRv
IHdyaXRlIHRvIHRlbXBvcmFyeSBmaWxlIGZvciAnJXMnIiAlCisgICAgICAgICAgICAgICAgICAg
ICBmaWxlX3JlY29yZC5maWxlbmFtZSwgZXhjX2luZm89VHJ1ZSkKKworICAgICMgY2xlYW51cCB0
ZW1wIGZpbGUgaW4gY2FzZSBvZiBpc3N1ZXMKKyAgICBpZiBmZXRjaGVkX3BhdGg6CisgICAgICAg
IHJldHVybiBvcy5wYXRoLnNwbGl0KGZldGNoZWRfcGF0aClbMV0KKyAgICBlbHNlOgorICAgICAg
ICB0cnk6CisgICAgICAgICAgICBvcy5yZW1vdmUodGVtcF9wYXRoKQorICAgICAgICBleGNlcHQg
T1NFcnJvcjogICMgcHJhZ21hOiBubyBjb3ZlcgorICAgICAgICAgICAgcGFzcworICAgICAgICBy
ZXR1cm4gTm9uZQorCisKK2RlZiBjbGVhbl9wYXRoKGRpcm5hbWUpOgorICAgICIiIlJlbW92ZSBh
IHN1YnRyZWUgaWYgaXMgZXhpc3RzLiBIZWxwZXIgZm9yIHVucGFja19maWxlKCkuIiIiCisgICAg
aWYgb3MucGF0aC5leGlzdHMoZGlybmFtZSk6CisgICAgICAgIGxvZy5pbmZvKCdybSB0cmVlOiAl
cycgJSBkaXJuYW1lKQorICAgICAgICBzaHV0aWwucm10cmVlKGRpcm5hbWUpCisKKworQ0hFQ0tT
VU1fU1VGRklYID0gIi5jaGVja3N1bSIKKworCitkZWYgdW5wYWNrX2ZpbGUoZmlsZW5hbWUpOgor
ICAgICIiIlVudGFyIGBmaWxlbmFtZWAsIGFzc3VtaW5nIGl0IGlzIHVuY29tcHJlc3NlZCBvciBj
b21wcmVzc2VkIHdpdGggYnppcDIsCisgICAgeHosIGd6aXAsIG9yIHVuemlwIGEgemlwIGZpbGUu
IFRoZSBmaWxlIGlzIGFzc3VtZWQgdG8gY29udGFpbiBhIHNpbmdsZQorICAgIGRpcmVjdG9yeSB3
aXRoIGEgbmFtZSBtYXRjaGluZyB0aGUgYmFzZSBvZiB0aGUgZ2l2ZW4gZmlsZW5hbWUuCisgICAg
WHogc3VwcG9ydCBpcyBoYW5kbGVkIGJ5IHNoZWxsaW5nIG91dCB0byAndGFyJy4iIiIKKyAgICBp
ZiBvcy5wYXRoLmlzZmlsZShmaWxlbmFtZSkgYW5kIHRhcmZpbGUuaXNfdGFyZmlsZShmaWxlbmFt
ZSk6CisgICAgICAgIHRhcl9maWxlLCB6aXBfZXh0ID0gb3MucGF0aC5zcGxpdGV4dChmaWxlbmFt
ZSkKKyAgICAgICAgYmFzZV9maWxlLCB0YXJfZXh0ID0gb3MucGF0aC5zcGxpdGV4dCh0YXJfZmls
ZSkKKyAgICAgICAgY2xlYW5fcGF0aChiYXNlX2ZpbGUpCisgICAgICAgIGxvZy5pbmZvKCd1bnRh
cnJpbmcgIiVzIicgJSBmaWxlbmFtZSkKKyAgICAgICAgdGFyID0gdGFyZmlsZS5vcGVuKGZpbGVu
YW1lKQorICAgICAgICB0YXIuZXh0cmFjdGFsbCgpCisgICAgICAgIHRhci5jbG9zZSgpCisgICAg
ZWxpZiBvcy5wYXRoLmlzZmlsZShmaWxlbmFtZSkgYW5kIGZpbGVuYW1lLmVuZHN3aXRoKCcudGFy
Lnh6Jyk6CisgICAgICAgIGJhc2VfZmlsZSA9IGZpbGVuYW1lLnJlcGxhY2UoJy50YXIueHonLCAn
JykKKyAgICAgICAgY2xlYW5fcGF0aChiYXNlX2ZpbGUpCisgICAgICAgIGxvZy5pbmZvKCd1bnRh
cnJpbmcgIiVzIicgJSBmaWxlbmFtZSkKKyAgICAgICAgIyBOb3QgdXNpbmcgdGFyIC1KeGYgYmVj
YXVzZSBpdCBmYWlscyBvbiBXaW5kb3dzIGZvciBzb21lIHJlYXNvbi4KKyAgICAgICAgcHJvY2Vz
cyA9IFBvcGVuKFsneHonLCAnLWQnLCAnLWMnLCBmaWxlbmFtZV0sIHN0ZG91dD1QSVBFKQorICAg
ICAgICBzdGRvdXQsIHN0ZGVyciA9IHByb2Nlc3MuY29tbXVuaWNhdGUoKQorICAgICAgICBpZiBw
cm9jZXNzLnJldHVybmNvZGUgIT0gMDoKKyAgICAgICAgICAgIHJldHVybiBGYWxzZQorICAgICAg
ICBmaWxlb2JqID0gQnl0ZXNJTygpCisgICAgICAgIGZpbGVvYmoud3JpdGUoc3Rkb3V0KQorICAg
ICAgICBmaWxlb2JqLnNlZWsoMCkKKyAgICAgICAgdGFyID0gdGFyZmlsZS5vcGVuKGZpbGVvYmo9
ZmlsZW9iaiwgbW9kZT0ncnwnKQorICAgICAgICB0YXIuZXh0cmFjdGFsbCgpCisgICAgICAgIHRh
ci5jbG9zZSgpCisgICAgZWxpZiBvcy5wYXRoLmlzZmlsZShmaWxlbmFtZSkgYW5kIHppcGZpbGUu
aXNfemlwZmlsZShmaWxlbmFtZSk6CisgICAgICAgIGJhc2VfZmlsZSA9IGZpbGVuYW1lLnJlcGxh
Y2UoJy56aXAnLCAnJykKKyAgICAgICAgY2xlYW5fcGF0aChiYXNlX2ZpbGUpCisgICAgICAgIGxv
Zy5pbmZvKCd1bnppcHBpbmcgIiVzIicgJSBmaWxlbmFtZSkKKyAgICAgICAgeiA9IHppcGZpbGUu
WmlwRmlsZShmaWxlbmFtZSkKKyAgICAgICAgei5leHRyYWN0YWxsKCkKKyAgICAgICAgei5jbG9z
ZSgpCisgICAgZWxzZToKKyAgICAgICAgbG9nLmVycm9yKCJVbmtub3duIGFyY2hpdmUgZXh0ZW5z
aW9uIGZvciBmaWxlbmFtZSAnJXMnIiAlIGZpbGVuYW1lKQorICAgICAgICByZXR1cm4gRmFsc2UK
KyAgICByZXR1cm4gVHJ1ZQorCisKK2RlZiBmZXRjaF9maWxlcyhtYW5pZmVzdF9maWxlLCBiYXNl
X3VybHMsIGZpbGVuYW1lcz1bXSwgY2FjaGVfZm9sZGVyPU5vbmUsCisgICAgICAgICAgICAgICAg
YXV0aF9maWxlPU5vbmUsIHJlZ2lvbj1Ob25lKToKKyAgICAjIExldHMgbG9hZCB0aGUgbWFuaWZl
c3QgZmlsZQorICAgIHRyeToKKyAgICAgICAgbWFuaWZlc3QgPSBvcGVuX21hbmlmZXN0KG1hbmlm
ZXN0X2ZpbGUpCisgICAgZXhjZXB0IEludmFsaWRNYW5pZmVzdCBhcyBlOgorICAgICAgICBsb2cu
ZXJyb3IoImZhaWxlZCB0byBsb2FkIG1hbmlmZXN0IGZpbGUgYXQgJyVzJzogJXMiICUgKAorICAg
ICAgICAgICAgbWFuaWZlc3RfZmlsZSwKKyAgICAgICAgICAgIHN0cihlKSwKKyAgICAgICAgKSkK
KyAgICAgICAgcmV0dXJuIEZhbHNlCisKKyAgICAjIHdlIHdhbnQgdG8gdHJhY2sgZmlsZXMgYWxy
ZWFkeSBpbiBjdXJyZW50IHdvcmtpbmcgZGlyZWN0b3J5IEFORCB2YWxpZAorICAgICMgd2Ugd2ls
bCBub3QgbmVlZCB0byBmZXRjaCB0aGVzZQorICAgIHByZXNlbnRfZmlsZXMgPSBbXQorCisgICAg
IyBXZSB3YW50IHRvIHRyYWNrIGZpbGVzIHRoYXQgZmFpbCB0byBiZSBmZXRjaGVkIGFzIHdlbGwg
YXMKKyAgICAjIGZpbGVzIHRoYXQgYXJlIGZldGNoZWQKKyAgICBmYWlsZWRfZmlsZXMgPSBbXQor
ICAgIGZldGNoZWRfZmlsZXMgPSBbXQorCisgICAgIyBGaWxlcyB0aGF0IHdlIHdhbnQgdG8gdW5w
YWNrLgorICAgIHVucGFja19maWxlcyA9IFtdCisKKyAgICAjIExldHMgZ28gdGhyb3VnaCB0aGUg
bWFuaWZlc3QgYW5kIGZldGNoIHRoZSBmaWxlcyB0aGF0IHdlIHdhbnQKKyAgICBmb3IgZiBpbiBt
YW5pZmVzdC5maWxlX3JlY29yZHM6CisgICAgICAgICMgY2FzZSAxOiBmaWxlcyBhcmUgYWxyZWFk
eSBwcmVzZW50CisgICAgICAgIGlmIGYucHJlc2VudCgpOgorICAgICAgICAgICAgaWYgZi52YWxp
ZGF0ZSgpOgorICAgICAgICAgICAgICAgIHByZXNlbnRfZmlsZXMuYXBwZW5kKGYuZmlsZW5hbWUp
CisgICAgICAgICAgICAgICAgaWYgZi51bnBhY2s6CisgICAgICAgICAgICAgICAgICAgIHVucGFj
a19maWxlcy5hcHBlbmQoZi5maWxlbmFtZSkKKyAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAg
ICAgICAgIyB3ZSBoYXZlIGFuIGludmFsaWQgZmlsZSBoZXJlLCBiZXR0ZXIgdG8gY2xlYW51cCEK
KyAgICAgICAgICAgICAgICAjIHRoaXMgaW52YWxpZCBmaWxlIG5lZWRzIHRvIGJlIHJlcGxhY2Vk
IHdpdGggYSBnb29kIG9uZQorICAgICAgICAgICAgICAgICMgZnJvbSB0aGUgbG9jYWwgY2FzaCBv
ciBmZXRjaGVkIGZyb20gYSB0b29sdG9vbCBzZXJ2ZXIKKyAgICAgICAgICAgICAgICBsb2cuaW5m
bygiRmlsZSAlcyBpcyBwcmVzZW50IGxvY2FsbHkgYnV0IGl0IGlzIGludmFsaWQsIHNvIEkgd2ls
bCByZW1vdmUgaXQgIgorICAgICAgICAgICAgICAgICAgICAgICAgICJhbmQgdHJ5IHRvIGZldGNo
IGl0IiAlIGYuZmlsZW5hbWUpCisgICAgICAgICAgICAgICAgb3MucmVtb3ZlKG9zLnBhdGguam9p
bihvcy5nZXRjd2QoKSwgZi5maWxlbmFtZSkpCisKKyAgICAgICAgIyBjaGVjayBpZiBmaWxlIGlz
IGFscmVhZHkgaW4gY2FjaGUKKyAgICAgICAgaWYgY2FjaGVfZm9sZGVyIGFuZCBmLmZpbGVuYW1l
IG5vdCBpbiBwcmVzZW50X2ZpbGVzOgorICAgICAgICAgICAgdHJ5OgorICAgICAgICAgICAgICAg
IHNodXRpbC5jb3B5KG9zLnBhdGguam9pbihjYWNoZV9mb2xkZXIsIGYuZGlnZXN0KSwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBvcy5wYXRoLmpvaW4ob3MuZ2V0Y3dkKCksIGYuZmlsZW5h
bWUpKQorICAgICAgICAgICAgICAgIGxvZy5pbmZvKCJGaWxlICVzIHJldHJpZXZlZCBmcm9tIGxv
Y2FsIGNhY2hlICVzIiAlCisgICAgICAgICAgICAgICAgICAgICAgICAgKGYuZmlsZW5hbWUsIGNh
Y2hlX2ZvbGRlcikpCisgICAgICAgICAgICAgICAgdG91Y2gob3MucGF0aC5qb2luKGNhY2hlX2Zv
bGRlciwgZi5kaWdlc3QpKQorCisgICAgICAgICAgICAgICAgZmlsZXJlY29yZF9mb3JfdmFsaWRh
dGlvbiA9IEZpbGVSZWNvcmQoCisgICAgICAgICAgICAgICAgICAgIGYuZmlsZW5hbWUsIGYuc2l6
ZSwgZi5kaWdlc3QsIGYuYWxnb3JpdGhtKQorICAgICAgICAgICAgICAgIGlmIGZpbGVyZWNvcmRf
Zm9yX3ZhbGlkYXRpb24udmFsaWRhdGUoKToKKyAgICAgICAgICAgICAgICAgICAgcHJlc2VudF9m
aWxlcy5hcHBlbmQoZi5maWxlbmFtZSkKKyAgICAgICAgICAgICAgICAgICAgaWYgZi51bnBhY2s6
CisgICAgICAgICAgICAgICAgICAgICAgICB1bnBhY2tfZmlsZXMuYXBwZW5kKGYuZmlsZW5hbWUp
CisgICAgICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICAgICAgIyB0aGUgZmlsZSBj
b3BpZWQgZnJvbSB0aGUgY2FjaGUgaXMgaW52YWxpZCwgYmV0dGVyIHRvCisgICAgICAgICAgICAg
ICAgICAgICMgY2xlYW4gdXAgdGhlIGNhY2hlIHZlcnNpb24gaXRzZWxmIGFzIHdlbGwKKyAgICAg
ICAgICAgICAgICAgICAgbG9nLndhcm4oIkZpbGUgJXMgcmV0cmlldmVkIGZyb20gY2FjaGUgaXMg
aW52YWxpZCEgSSBhbSBkZWxldGluZyBpdCBmcm9tIHRoZSAiCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICJjYWNoZSBhcyB3ZWxsIiAlIGYuZmlsZW5hbWUpCisgICAgICAgICAgICAgICAg
ICAgIG9zLnJlbW92ZShvcy5wYXRoLmpvaW4ob3MuZ2V0Y3dkKCksIGYuZmlsZW5hbWUpKQorICAg
ICAgICAgICAgICAgICAgICBvcy5yZW1vdmUob3MucGF0aC5qb2luKGNhY2hlX2ZvbGRlciwgZi5k
aWdlc3QpKQorICAgICAgICAgICAgZXhjZXB0IElPRXJyb3I6CisgICAgICAgICAgICAgICAgbG9n
LmluZm8oIkZpbGUgJXMgbm90IHByZXNlbnQgaW4gbG9jYWwgY2FjaGUgZm9sZGVyICVzIiAlCisg
ICAgICAgICAgICAgICAgICAgICAgICAgKGYuZmlsZW5hbWUsIGNhY2hlX2ZvbGRlcikpCisKKyAg
ICAgICAgIyBub3cgSSB3aWxsIHRyeSB0byBmZXRjaCBhbGwgZmlsZXMgd2hpY2ggYXJlIG5vdCBh
bHJlYWR5IHByZXNlbnQgYW5kCisgICAgICAgICMgdmFsaWQsIGFwcGVuZGluZyBhIHN1ZmZpeCB0
byBhdm9pZCByYWNlIGNvbmRpdGlvbnMKKyAgICAgICAgdGVtcF9maWxlX25hbWUgPSBOb25lCisg
ICAgICAgICMgJ2ZpbGVuYW1lcycgaXMgdGhlIGxpc3Qgb2YgZmlsZW5hbWVzIHRvIGJlIG1hbmFn
ZWQsIGlmIHRoaXMgdmFyaWFibGUKKyAgICAgICAgIyBpcyBhIG5vbiBlbXB0eSBsaXN0IGl0IGNh
biBiZSB1c2VkIHRvIGZpbHRlciBpZiBmaWxlbmFtZSBpcyBpbgorICAgICAgICAjIHByZXNlbnRf
ZmlsZXMsIGl0IG1lYW5zIHRoYXQgSSBoYXZlIGl0IGFscmVhZHkgYmVjYXVzZSBpdCB3YXMgYWxy
ZWFkeQorICAgICAgICAjIGVpdGhlciBpbiB0aGUgd29ya2luZyBkaXIgb3IgaW4gdGhlIGNhY2hl
CisgICAgICAgIGlmIChmLmZpbGVuYW1lIGluIGZpbGVuYW1lcyBvciBsZW4oZmlsZW5hbWVzKSA9
PSAwKSBhbmQgZi5maWxlbmFtZSBub3QgaW4gcHJlc2VudF9maWxlczoKKyAgICAgICAgICAgIGxv
Zy5kZWJ1ZygiZmV0Y2hpbmcgJXMiICUgZi5maWxlbmFtZSkKKyAgICAgICAgICAgIHRlbXBfZmls
ZV9uYW1lID0gZmV0Y2hfZmlsZShiYXNlX3VybHMsIGYsIGF1dGhfZmlsZT1hdXRoX2ZpbGUsIHJl
Z2lvbj1yZWdpb24pCisgICAgICAgICAgICBpZiB0ZW1wX2ZpbGVfbmFtZToKKyAgICAgICAgICAg
ICAgICBmZXRjaGVkX2ZpbGVzLmFwcGVuZCgoZiwgdGVtcF9maWxlX25hbWUpKQorICAgICAgICAg
ICAgZWxzZToKKyAgICAgICAgICAgICAgICBmYWlsZWRfZmlsZXMuYXBwZW5kKGYuZmlsZW5hbWUp
CisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBsb2cuZGVidWcoInNraXBwaW5nICVzIiAlIGYu
ZmlsZW5hbWUpCisKKyAgICAjIGxldHMgZW5zdXJlIHRoYXQgZmV0Y2hlZCBmaWxlcyBtYXRjaCB3
aGF0IHRoZSBtYW5pZmVzdCBzcGVjaWZpZWQKKyAgICBmb3IgbG9jYWxmaWxlLCB0ZW1wX2ZpbGVf
bmFtZSBpbiBmZXRjaGVkX2ZpbGVzOgorICAgICAgICAjIHNpbmNlIEkgZG93bmxvYWRlZCB0byBh
IHRlbXAgZmlsZSwgSSBuZWVkIHRvIHBlcmZvcm0gYWxsIHZhbGlkYXRpb25zIG9uIHRoZSB0ZW1w
IGZpbGUKKyAgICAgICAgIyB0aGlzIGlzIHdoeSBmaWxlcmVjb3JkX2Zvcl92YWxpZGF0aW9uIGlz
IGNyZWF0ZWQKKworICAgICAgICBmaWxlcmVjb3JkX2Zvcl92YWxpZGF0aW9uID0gRmlsZVJlY29y
ZCgKKyAgICAgICAgICAgIHRlbXBfZmlsZV9uYW1lLCBsb2NhbGZpbGUuc2l6ZSwgbG9jYWxmaWxl
LmRpZ2VzdCwgbG9jYWxmaWxlLmFsZ29yaXRobSkKKworICAgICAgICBpZiBmaWxlcmVjb3JkX2Zv
cl92YWxpZGF0aW9uLnZhbGlkYXRlKCk6CisgICAgICAgICAgICAjIGdyZWF0IQorICAgICAgICAg
ICAgIyBJIGNhbiByZW5hbWUgdGhlIHRlbXAgZmlsZQorICAgICAgICAgICAgbG9nLmluZm8oIkZp
bGUgaW50ZWdyaXR5IHZlcmlmaWVkLCByZW5hbWluZyAlcyB0byAlcyIgJQorICAgICAgICAgICAg
ICAgICAgICAgKHRlbXBfZmlsZV9uYW1lLCBsb2NhbGZpbGUuZmlsZW5hbWUpKQorICAgICAgICAg
ICAgb3MucmVuYW1lKG9zLnBhdGguam9pbihvcy5nZXRjd2QoKSwgdGVtcF9maWxlX25hbWUpLAor
ICAgICAgICAgICAgICAgICAgICAgIG9zLnBhdGguam9pbihvcy5nZXRjd2QoKSwgbG9jYWxmaWxl
LmZpbGVuYW1lKSkKKworICAgICAgICAgICAgaWYgbG9jYWxmaWxlLnVucGFjazoKKyAgICAgICAg
ICAgICAgICB1bnBhY2tfZmlsZXMuYXBwZW5kKGxvY2FsZmlsZS5maWxlbmFtZSkKKworICAgICAg
ICAgICAgIyBpZiBJIGFtIHVzaW5nIGEgY2FjaGUgYW5kIGEgbmV3IGZpbGUgaGFzIGp1c3QgYmVl
biByZXRyaWV2ZWQgZnJvbSBhCisgICAgICAgICAgICAjIHJlbW90ZSBsb2NhdGlvbiwgSSBuZWVk
IHRvIHVwZGF0ZSB0aGUgY2FjaGUgYXMgd2VsbAorICAgICAgICAgICAgaWYgY2FjaGVfZm9sZGVy
OgorICAgICAgICAgICAgICAgIGxvZy5pbmZvKCJVcGRhdGluZyBsb2NhbCBjYWNoZSAlcy4uLiIg
JSBjYWNoZV9mb2xkZXIpCisgICAgICAgICAgICAgICAgdHJ5OgorICAgICAgICAgICAgICAgICAg
ICBpZiBub3Qgb3MucGF0aC5leGlzdHMoY2FjaGVfZm9sZGVyKToKKyAgICAgICAgICAgICAgICAg
ICAgICAgIGxvZy5pbmZvKCJDcmVhdGluZyBjYWNoZSBpbiAlcy4uLiIgJSBjYWNoZV9mb2xkZXIp
CisgICAgICAgICAgICAgICAgICAgICAgICBvcy5tYWtlZGlycyhjYWNoZV9mb2xkZXIsIDBvMDcw
MCkKKyAgICAgICAgICAgICAgICAgICAgc2h1dGlsLmNvcHkob3MucGF0aC5qb2luKG9zLmdldGN3
ZCgpLCBsb2NhbGZpbGUuZmlsZW5hbWUpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBvcy5wYXRoLmpvaW4oY2FjaGVfZm9sZGVyLCBsb2NhbGZpbGUuZGlnZXN0KSkKKyAgICAgICAg
ICAgICAgICAgICAgbG9nLmluZm8oIkxvY2FsIGNhY2hlICVzIHVwZGF0ZWQgd2l0aCAlcyIgJSAo
Y2FjaGVfZm9sZGVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBsb2NhbGZpbGUuZmlsZW5hbWUpKQorICAgICAgICAgICAg
ICAgICAgICB0b3VjaChvcy5wYXRoLmpvaW4oY2FjaGVfZm9sZGVyLCBsb2NhbGZpbGUuZGlnZXN0
KSkKKyAgICAgICAgICAgICAgICBleGNlcHQgKE9TRXJyb3IsIElPRXJyb3IpOgorICAgICAgICAg
ICAgICAgICAgICBsb2cud2FybmluZygnSW1wb3NzaWJsZSB0byBhZGQgZmlsZSAlcyB0byBjYWNo
ZSBmb2xkZXIgJXMnICUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxvY2FsZmls
ZS5maWxlbmFtZSwgY2FjaGVfZm9sZGVyKSwgZXhjX2luZm89VHJ1ZSkKKyAgICAgICAgZWxzZToK
KyAgICAgICAgICAgIGZhaWxlZF9maWxlcy5hcHBlbmQobG9jYWxmaWxlLmZpbGVuYW1lKQorICAg
ICAgICAgICAgbG9nLmVycm9yKCInJXMnIiAlIGZpbGVyZWNvcmRfZm9yX3ZhbGlkYXRpb24uZGVz
Y3JpYmUoKSkKKyAgICAgICAgICAgIG9zLnJlbW92ZSh0ZW1wX2ZpbGVfbmFtZSkKKworICAgICMg
VW5wYWNrIGZpbGVzIHRoYXQgbmVlZCB0byBiZSB1bnBhY2tlZC4KKyAgICBmb3IgZmlsZW5hbWUg
aW4gdW5wYWNrX2ZpbGVzOgorICAgICAgICBpZiBub3QgdW5wYWNrX2ZpbGUoZmlsZW5hbWUpOgor
ICAgICAgICAgICAgZmFpbGVkX2ZpbGVzLmFwcGVuZChmaWxlbmFtZSkKKworICAgICMgSWYgd2Ug
ZmFpbGVkIHRvIGZldGNoIG9yIHZhbGlkYXRlIGEgZmlsZSwgd2UgbmVlZCB0byBmYWlsCisgICAg
aWYgbGVuKGZhaWxlZF9maWxlcykgPiAwOgorICAgICAgICBsb2cuZXJyb3IoIlRoZSBmb2xsb3dp
bmcgZmlsZXMgZmFpbGVkOiAnJXMnIiAlCisgICAgICAgICAgICAgICAgICAiJywgIi5qb2luKGZh
aWxlZF9maWxlcykpCisgICAgICAgIHJldHVybiBGYWxzZQorICAgIHJldHVybiBUcnVlCisKKwor
ZGVmIGZyZWVzcGFjZShwKToKKyAgICAiUmV0dXJucyB0aGUgbnVtYmVyIG9mIGJ5dGVzIGZyZWUg
dW5kZXIgZGlyZWN0b3J5IGBwYCIKKyAgICBpZiBzeXMucGxhdGZvcm0gPT0gJ3dpbjMyJzogICMg
cHJhZ21hOiBubyBjb3ZlcgorICAgICAgICAjIG9zLnN0YXR2ZnMgZG9lc24ndCB3b3JrIG9uIFdp
bmRvd3MKKyAgICAgICAgaW1wb3J0IHdpbjMyZmlsZQorCisgICAgICAgIHNlY3NQZXJDbHVzLCBi
eXRlc1BlclNlYywgbkZyZWVDbHVzLCB0b3RDbHVzID0gd2luMzJmaWxlLkdldERpc2tGcmVlU3Bh
Y2UoCisgICAgICAgICAgICBwKQorICAgICAgICByZXR1cm4gc2Vjc1BlckNsdXMgKiBieXRlc1Bl
clNlYyAqIG5GcmVlQ2x1cworICAgIGVsc2U6CisgICAgICAgIHIgPSBvcy5zdGF0dmZzKHApCisg
ICAgICAgIHJldHVybiByLmZfZnJzaXplICogci5mX2JhdmFpbAorCisKK2RlZiBwdXJnZShmb2xk
ZXIsIGdpZ3MpOgorICAgICIiIklmIGdpZ3MgaXMgbm9uIDAsIGl0IGRlbGV0ZXMgZmlsZXMgaW4g
YGZvbGRlcmAgdW50aWwgYGdpZ3NgIEdCIGFyZSBmcmVlLAorICAgIHN0YXJ0aW5nIGZyb20gb2xk
ZXIgZmlsZXMuICBJZiBnaWdzIGlzIDAsIGEgZnVsbCBwdXJnZSB3aWxsIGJlIHBlcmZvcm1lZC4K
KyAgICBObyByZWN1cnNpdmUgZGVsZXRpb24gb2YgZmlsZXMgaW4gc3ViZm9sZGVyIGlzIHBlcmZv
cm1lZC4iIiIKKworICAgIGZ1bGxfcHVyZ2UgPSBib29sKGdpZ3MgPT0gMCkKKyAgICBnaWdzICo9
IDEwMjQgKiAxMDI0ICogMTAyNAorCisgICAgaWYgbm90IGZ1bGxfcHVyZ2UgYW5kIGZyZWVzcGFj
ZShmb2xkZXIpID49IGdpZ3M6CisgICAgICAgIGxvZy5pbmZvKCJObyBuZWVkIHRvIGNsZWFudXAi
KQorICAgICAgICByZXR1cm4KKworICAgIGZpbGVzID0gW10KKyAgICBmb3IgZiBpbiBvcy5saXN0
ZGlyKGZvbGRlcik6CisgICAgICAgIHAgPSBvcy5wYXRoLmpvaW4oZm9sZGVyLCBmKQorICAgICAg
ICAjIGl0IGRlbGV0ZXMgZmlsZXMgaW4gZm9sZGVyIHdpdGhvdXQgZ29pbmcgaW50byBzdWJmb2xk
ZXJzLAorICAgICAgICAjIGFzc3VtaW5nIHRoZSBjYWNoZSBoYXMgYSBmbGF0IHN0cnVjdHVyZQor
ICAgICAgICBpZiBub3Qgb3MucGF0aC5pc2ZpbGUocCk6CisgICAgICAgICAgICBjb250aW51ZQor
ICAgICAgICBtdGltZSA9IG9zLnBhdGguZ2V0bXRpbWUocCkKKyAgICAgICAgZmlsZXMuYXBwZW5k
KChtdGltZSwgcCkpCisKKyAgICAjIGl0ZXJhdGUgZmlsZXMgc29ydGVkIGJ5IG10aW1lCisgICAg
Zm9yIF8sIGYgaW4gc29ydGVkKGZpbGVzKToKKyAgICAgICAgbG9nLmluZm8oInJlbW92aW5nICVz
IHRvIGZyZWUgdXAgc3BhY2UiICUgZikKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgb3MucmVt
b3ZlKGYpCisgICAgICAgIGV4Y2VwdCBPU0Vycm9yOgorICAgICAgICAgICAgbG9nLmluZm8oIklt
cG9zc2libGUgdG8gcmVtb3ZlICVzIiAlIGYsIGV4Y19pbmZvPVRydWUpCisgICAgICAgIGlmIG5v
dCBmdWxsX3B1cmdlIGFuZCBmcmVlc3BhY2UoZm9sZGVyKSA+PSBnaWdzOgorICAgICAgICAgICAg
YnJlYWsKKworCitkZWYgX2xvZ19hcGlfZXJyb3IoZSk6CisgICAgaWYgaGFzYXR0cihlLCAnaGRy
cycpIGFuZCBlLmhkcnNbJ2NvbnRlbnQtdHlwZSddID09ICdhcHBsaWNhdGlvbi9qc29uJzoKKyAg
ICAgICAganNvbl9yZXNwID0ganNvbi5sb2FkKGUuZnApCisgICAgICAgIGxvZy5lcnJvcigiJXM6
ICVzIiAlIChqc29uX3Jlc3BbJ2Vycm9yJ11bJ25hbWUnXSwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGpzb25fcmVzcFsnZXJyb3InXVsnZGVzY3JpcHRpb24nXSkpCisgICAgZWxzZToK
KyAgICAgICAgbG9nLmV4Y2VwdGlvbigiRXJyb3IgbWFraW5nIFJlbGVuZ0FQSSByZXF1ZXN0OiIp
CisKKworZGVmIF9hdXRob3JpemUocmVxLCBhdXRoX2ZpbGUpOgorICAgIGlmIG5vdCBhdXRoX2Zp
bGU6CisgICAgICAgIHJldHVybgorCisgICAgaXNfdGFza2NsdXN0ZXJfYXV0aCA9IEZhbHNlCisg
ICAgd2l0aCBvcGVuKGF1dGhfZmlsZSkgYXMgZjoKKyAgICAgICAgYXV0aF9maWxlX2NvbnRlbnQg
PSBmLnJlYWQoKS5zdHJpcCgpCisgICAgICAgIHRyeToKKyAgICAgICAgICAgIGF1dGhfZmlsZV9j
b250ZW50ID0ganNvbi5sb2FkcyhhdXRoX2ZpbGVfY29udGVudCkKKyAgICAgICAgICAgIGlzX3Rh
c2tjbHVzdGVyX2F1dGggPSBUcnVlCisgICAgICAgIGV4Y2VwdCBFeGNlcHRpb246CisgICAgICAg
ICAgICBwYXNzCisKKyAgICBpZiBpc190YXNrY2x1c3Rlcl9hdXRoOgorICAgICAgICB0YXNrY2x1
c3Rlcl9oZWFkZXIgPSBtYWtlX3Rhc2tjbHVzdGVyX2hlYWRlcihhdXRoX2ZpbGVfY29udGVudCwg
cmVxKQorICAgICAgICBsb2cuZGVidWcoIlVzaW5nIHRhc2tjbHVzdGVyIGNyZWRlbnRpYWxzIGlu
ICVzIiAlIGF1dGhfZmlsZSkKKyAgICAgICAgcmVxLmFkZF91bnJlZGlyZWN0ZWRfaGVhZGVyKCdB
dXRob3JpemF0aW9uJywgdGFza2NsdXN0ZXJfaGVhZGVyKQorICAgIGVsc2U6CisgICAgICAgIGxv
Zy5kZWJ1ZygiVXNpbmcgQmVhcmVyIHRva2VuIGluICVzIiAlIGF1dGhfZmlsZSkKKyAgICAgICAg
cmVxLmFkZF91bnJlZGlyZWN0ZWRfaGVhZGVyKCdBdXRob3JpemF0aW9uJywgJ0JlYXJlciAlcycg
JSBhdXRoX2ZpbGVfY29udGVudCkKKworCitkZWYgX3NlbmRfYmF0Y2goYmFzZV91cmwsIGF1dGhf
ZmlsZSwgYmF0Y2gsIHJlZ2lvbik6CisgICAgdXJsID0gdXJsam9pbihiYXNlX3VybCwgJ3VwbG9h
ZCcpCisgICAgaWYgcmVnaW9uIGlzIG5vdCBOb25lOgorICAgICAgICB1cmwgKz0gIj9yZWdpb249
IiArIHJlZ2lvbgorICAgIGlmIFBZMzoKKyAgICAgICAgZGF0YSA9IHRvX2JpbmFyeShqc29uLmR1
bXBzKGJhdGNoKSkKKyAgICBlbHNlOgorICAgICAgICBkYXRhID0ganNvbi5kdW1wcyhiYXRjaCkK
KyAgICByZXEgPSBSZXF1ZXN0KHVybCwgZGF0YSwgeydDb250ZW50LVR5cGUnOiAnYXBwbGljYXRp
b24vanNvbid9KQorICAgIF9hdXRob3JpemUocmVxLCBhdXRoX2ZpbGUpCisgICAgdHJ5OgorICAg
ICAgICByZXNwID0gdXJsbGliMi51cmxvcGVuKHJlcSkKKyAgICBleGNlcHQgKFVSTEVycm9yLCBI
VFRQRXJyb3IpIGFzIGU6CisgICAgICAgIF9sb2dfYXBpX2Vycm9yKGUpCisgICAgICAgIHJldHVy
biBOb25lCisgICAgcmV0dXJuIGpzb24ubG9hZChyZXNwKVsncmVzdWx0J10KKworCitkZWYgX3Mz
X3VwbG9hZChmaWxlbmFtZSwgZmlsZSk6CisgICAgIyB1cmxsaWIyIGRvZXMgbm90IHN1cHBvcnQg
c3RyZWFtaW5nLCBzbyB3ZSBmYWxsIGJhY2sgdG8gZ29vZCBvbGQgaHR0cGxpYgorICAgIHVybCA9
IHVybHBhcnNlKGZpbGVbJ3B1dF91cmwnXSkKKyAgICBjbHMgPSBIVFRQU0Nvbm5lY3Rpb24gaWYg
dXJsLnNjaGVtZSA9PSAnaHR0cHMnIGVsc2UgSFRUUENvbm5lY3Rpb24KKyAgICBob3N0LCBwb3J0
ID0gdXJsLm5ldGxvYy5zcGxpdCgnOicpIGlmICc6JyBpbiB1cmwubmV0bG9jIGVsc2UgKHVybC5u
ZXRsb2MsIDQ0MykKKyAgICBwb3J0ID0gaW50KHBvcnQpCisgICAgY29ubiA9IGNscyhob3N0LCBw
b3J0KQorICAgIHRyeToKKyAgICAgICAgcmVxX3BhdGggPSAiJXM/JXMiICUgKHVybC5wYXRoLCB1
cmwucXVlcnkpIGlmIHVybC5xdWVyeSBlbHNlIHVybC5wYXRoCisgICAgICAgIHdpdGggb3Blbihm
aWxlbmFtZSwgJ3JiJykgYXMgZjoKKyAgICAgICAgICAgIGNvbnRlbnQgPSBmLnJlYWQoKQorICAg
ICAgICAgICAgY29udGVudF9sZW5ndGggPSBsZW4oY29udGVudCkKKyAgICAgICAgICAgIGYuc2Vl
aygwKQorICAgICAgICAgICAgY29ubi5yZXF1ZXN0KAorICAgICAgICAgICAgICAgICdQVVQnLAor
ICAgICAgICAgICAgICAgIHJlcV9wYXRoLAorICAgICAgICAgICAgICAgIGYsCisgICAgICAgICAg
ICAgICAgeworICAgICAgICAgICAgICAgICAgICAnQ29udGVudC1UeXBlJzogJ2FwcGxpY2F0aW9u
L29jdGV0LXN0cmVhbScsCisgICAgICAgICAgICAgICAgICAgICdDb250ZW50LUxlbmd0aCc6IHN0
cihjb250ZW50X2xlbmd0aCksCisgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICkKKyAg
ICAgICAgICAgIHJlc3AgPSBjb25uLmdldHJlc3BvbnNlKCkKKyAgICAgICAgICAgIHJlc3BfYm9k
eSA9IHJlc3AucmVhZCgpCisgICAgICAgICAgICBjb25uLmNsb3NlKCkKKyAgICAgICAgaWYgcmVz
cC5zdGF0dXMgIT0gMjAwOgorICAgICAgICAgICAgcmFpc2UgUnVudGltZUVycm9yKCJOb24tMjAw
IHJldHVybiBmcm9tIEFXUzogJXMgJXNcbiVzIiAlCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgKHJlc3Auc3RhdHVzLCByZXNwLnJlYXNvbiwgcmVzcF9ib2R5KSkKKyAgICBleGNlcHQg
RXhjZXB0aW9uOgorICAgICAgICBmaWxlWyd1cGxvYWRfZXhjZXB0aW9uJ10gPSBzeXMuZXhjX2lu
Zm8oKQorICAgICAgICBmaWxlWyd1cGxvYWRfb2snXSA9IEZhbHNlCisgICAgZWxzZToKKyAgICAg
ICAgZmlsZVsndXBsb2FkX29rJ10gPSBUcnVlCisKKworZGVmIF9ub3RpZnlfdXBsb2FkX2NvbXBs
ZXRlKGJhc2VfdXJsLCBhdXRoX2ZpbGUsIGZpbGUpOgorICAgIHJlcSA9IFJlcXVlc3QoCisgICAg
ICAgIHVybGpvaW4oCisgICAgICAgICAgICBiYXNlX3VybCwKKyAgICAgICAgICAgICd1cGxvYWQv
Y29tcGxldGUvJShhbGdvcml0aG0pcy8lKGRpZ2VzdClzJyAlIGZpbGUpKQorICAgIF9hdXRob3Jp
emUocmVxLCBhdXRoX2ZpbGUpCisgICAgdHJ5OgorICAgICAgICB1cmxsaWIyLnVybG9wZW4ocmVx
KQorICAgIGV4Y2VwdCBIVFRQRXJyb3IgYXMgZToKKyAgICAgICAgaWYgZS5jb2RlICE9IDQwOToK
KyAgICAgICAgICAgIF9sb2dfYXBpX2Vycm9yKGUpCisgICAgICAgICAgICByZXR1cm4KKyAgICAg
ICAgIyA0MDkgaW5kaWNhdGVzIHRoYXQgdGhlIHVwbG9hZCBVUkwgaGFzbid0IGV4cGlyZWQgeWV0
IGFuZCB3ZQorICAgICAgICAjIHNob3VsZCByZXRyeSBhZnRlciBhIGRlbGF5CisgICAgICAgIHRv
X3dhaXQgPSBpbnQoZS5oZWFkZXJzLmdldCgnWC1SZXRyeS1BZnRlcicsIDYwKSkKKyAgICAgICAg
bG9nLndhcm5pbmcoIldhaXRpbmcgJWQgc2Vjb25kcyBmb3IgdXBsb2FkIFVSTHMgdG8gZXhwaXJl
IiAlIHRvX3dhaXQpCisgICAgICAgIHRpbWUuc2xlZXAodG9fd2FpdCkKKyAgICAgICAgX25vdGlm
eV91cGxvYWRfY29tcGxldGUoYmFzZV91cmwsIGF1dGhfZmlsZSwgZmlsZSkKKyAgICBleGNlcHQg
RXhjZXB0aW9uOgorICAgICAgICBsb2cuZXhjZXB0aW9uKCJXaGlsZSBub3RpZnlpbmcgc2VydmVy
IG9mIHVwbG9hZCBjb21wbGV0aW9uOiIpCisKKworZGVmIHVwbG9hZChtYW5pZmVzdCwgbWVzc2Fn
ZSwgYmFzZV91cmxzLCBhdXRoX2ZpbGUsIHJlZ2lvbik6CisgICAgdHJ5OgorICAgICAgICBtYW5p
ZmVzdCA9IG9wZW5fbWFuaWZlc3QobWFuaWZlc3QpCisgICAgZXhjZXB0IEludmFsaWRNYW5pZmVz
dDoKKyAgICAgICAgbG9nLmV4Y2VwdGlvbigiZmFpbGVkIHRvIGxvYWQgbWFuaWZlc3QgZmlsZSBh
dCAnJXMnIikKKyAgICAgICAgcmV0dXJuIEZhbHNlCisKKyAgICAjIHZlcmlmeSB0aGUgbWFuaWZl
c3QsIHNpbmNlIHdlJ2xsIG5lZWQgdGhlIGZpbGVzIHByZXNlbnQgdG8gdXBsb2FkCisgICAgaWYg
bm90IG1hbmlmZXN0LnZhbGlkYXRlKCk6CisgICAgICAgIGxvZy5lcnJvcignbWFuaWZlc3QgaXMg
aW52YWxpZCcpCisgICAgICAgIHJldHVybiBGYWxzZQorCisgICAgaWYgYW55KGZyLnZpc2liaWxp
dHkgaXMgTm9uZSBmb3IgZnIgaW4gbWFuaWZlc3QuZmlsZV9yZWNvcmRzKToKKyAgICAgICAgbG9n
LmVycm9yKCdBbGwgZmlsZXMgaW4gYSBtYW5pZmVzdCBmb3IgdXBsb2FkIG11c3QgaGF2ZSBhIHZp
c2liaWxpdHkgc2V0JykKKworICAgICMgY29udmVydCB0aGUgbWFuaWZlc3QgdG8gYW4gdXBsb2Fk
IGJhdGNoCisgICAgYmF0Y2ggPSB7CisgICAgICAgICdtZXNzYWdlJzogbWVzc2FnZSwKKyAgICAg
ICAgJ2ZpbGVzJzoge30sCisgICAgfQorICAgIGZvciBmciBpbiBtYW5pZmVzdC5maWxlX3JlY29y
ZHM6CisgICAgICAgIGJhdGNoWydmaWxlcyddW2ZyLmZpbGVuYW1lXSA9IHsKKyAgICAgICAgICAg
ICdzaXplJzogZnIuc2l6ZSwKKyAgICAgICAgICAgICdkaWdlc3QnOiBmci5kaWdlc3QsCisgICAg
ICAgICAgICAnYWxnb3JpdGhtJzogZnIuYWxnb3JpdGhtLAorICAgICAgICAgICAgJ3Zpc2liaWxp
dHknOiBmci52aXNpYmlsaXR5LAorICAgICAgICB9CisKKyAgICAjIG1ha2UgdGhlIHVwbG9hZCBy
ZXF1ZXN0CisgICAgcmVzcCA9IF9zZW5kX2JhdGNoKGJhc2VfdXJsc1swXSwgYXV0aF9maWxlLCBi
YXRjaCwgcmVnaW9uKQorICAgIGlmIG5vdCByZXNwOgorICAgICAgICByZXR1cm4gTm9uZQorICAg
IGZpbGVzID0gcmVzcFsnZmlsZXMnXQorCisgICAgIyBVcGxvYWQgdGhlIGZpbGVzLCBlYWNoIGlu
IGEgdGhyZWFkLiAgVGhpcyBhbGxvd3MgdXMgdG8gc3RhcnQgYWxsIG9mIHRoZQorICAgICMgdXBs
b2FkcyBiZWZvcmUgYW55IG9mIHRoZSBVUkxzIGV4cGlyZS4KKyAgICB0aHJlYWRzID0ge30KKyAg
ICBmb3IgZmlsZW5hbWUsIGZpbGUgaW4gZmlsZXMuaXRlbXMoKToKKyAgICAgICAgaWYgJ3B1dF91
cmwnIGluIGZpbGU6CisgICAgICAgICAgICBsb2cuaW5mbygiJXM6IHN0YXJ0aW5nIHVwbG9hZCIg
JSAoZmlsZW5hbWUsKSkKKyAgICAgICAgICAgIHRoZCA9IHRocmVhZGluZy5UaHJlYWQodGFyZ2V0
PV9zM191cGxvYWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyZ3M9KGZp
bGVuYW1lLCBmaWxlKSkKKyAgICAgICAgICAgIHRoZC5kYWVtb24gPSAxCisgICAgICAgICAgICB0
aGQuc3RhcnQoKQorICAgICAgICAgICAgdGhyZWFkc1tmaWxlbmFtZV0gPSB0aGQKKyAgICAgICAg
ZWxzZToKKyAgICAgICAgICAgIGxvZy5pbmZvKCIlczogYWxyZWFkeSBleGlzdHMgb24gc2VydmVy
IiAlIChmaWxlbmFtZSwpKQorCisgICAgIyByZS1qb2luIGFsbCBvZiB0aG9zZSB0aHJlYWRzIGFz
IHRoZXkgZXhpdAorICAgIHN1Y2Nlc3MgPSBUcnVlCisgICAgd2hpbGUgdGhyZWFkczoKKyAgICAg
ICAgZm9yIGZpbGVuYW1lLCB0aHJlYWQgaW4gbGlzdCh0aHJlYWRzLml0ZW1zKCkpOgorICAgICAg
ICAgICAgaWYgbm90IHRocmVhZC5pc19hbGl2ZSgpOgorICAgICAgICAgICAgICAgICMgX3MzX3Vw
bG9hZCBoYXMgYW5ub3RhdGVkIGZpbGUgd2l0aCByZXN1bHQgaW5mb3JtYXRpb24KKyAgICAgICAg
ICAgICAgICBmaWxlID0gZmlsZXNbZmlsZW5hbWVdCisgICAgICAgICAgICAgICAgdGhyZWFkLmpv
aW4oKQorICAgICAgICAgICAgICAgIGlmIGZpbGVbJ3VwbG9hZF9vayddOgorICAgICAgICAgICAg
ICAgICAgICBsb2cuaW5mbygiJXM6IHVwbG9hZGVkIiAlIGZpbGVuYW1lKQorICAgICAgICAgICAg
ICAgIGVsc2U6CisgICAgICAgICAgICAgICAgICAgIGxvZy5lcnJvcigiJXM6IGZhaWxlZCIgJSBm
aWxlbmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4Y19pbmZvPWZpbGVbJ3Vw
bG9hZF9leGNlcHRpb24nXSkKKyAgICAgICAgICAgICAgICAgICAgc3VjY2VzcyA9IEZhbHNlCisg
ICAgICAgICAgICAgICAgZGVsIHRocmVhZHNbZmlsZW5hbWVdCisKKyAgICAjIG5vdGlmeSB0aGUg
c2VydmVyIHRoYXQgdGhlIHVwbG9hZHMgYXJlIGNvbXBsZXRlZC4gIElmIHRoZSBub3RpZmljYXRp
b24KKyAgICAjIGZhaWxzLCB3ZSBkb24ndCBjb25zaWRlciB0aGF0IGFuIGVycm9yICh0aGUgc2Vy
dmVyIHdpbGwgbm90aWNlCisgICAgIyBldmVudHVhbGx5KQorICAgIGZvciBmaWxlbmFtZSwgZmls
ZSBpbiBmaWxlcy5pdGVtcygpOgorICAgICAgICBpZiAncHV0X3VybCcgaW4gZmlsZSBhbmQgZmls
ZVsndXBsb2FkX29rJ106CisgICAgICAgICAgICBsb2cuaW5mbygibm90aWZ5aW5nIHNlcnZlciBv
ZiB1cGxvYWQgY29tcGxldGlvbiBmb3IgJXMiICUgKGZpbGVuYW1lLCkpCisgICAgICAgICAgICBf
bm90aWZ5X3VwbG9hZF9jb21wbGV0ZShiYXNlX3VybHNbMF0sIGF1dGhfZmlsZSwgZmlsZSkKKwor
ICAgIHJldHVybiBzdWNjZXNzCisKKworZGVmIHByb2Nlc3NfY29tbWFuZChvcHRpb25zLCBhcmdz
KToKKyAgICAiIiIgSSBrbm93IGhvdyB0byB0YWtlIGEgbGlzdCBvZiBwcm9ncmFtIGFyZ3VtZW50
cyBhbmQKKyAgICBzdGFydCBkb2luZyB0aGUgcmlnaHQgdGhpbmcgd2l0aCB0aGVtIiIiCisgICAg
Y21kID0gYXJnc1swXQorICAgIGNtZF9hcmdzID0gYXJnc1sxOl0KKyAgICBsb2cuZGVidWcoInBy
b2Nlc3NpbmcgJyVzJyBjb21tYW5kIHdpdGggYXJncyAnJXMnIiAlCisgICAgICAgICAgICAgIChj
bWQsICciLCAiJy5qb2luKGNtZF9hcmdzKSkpCisgICAgbG9nLmRlYnVnKCJ1c2luZyBvcHRpb25z
OiAlcyIgJSBvcHRpb25zKQorCisgICAgaWYgY21kID09ICdsaXN0JzoKKyAgICAgICAgcmV0dXJu
IGxpc3RfbWFuaWZlc3Qob3B0aW9uc1snbWFuaWZlc3QnXSkKKyAgICBpZiBjbWQgPT0gJ3ZhbGlk
YXRlJzoKKyAgICAgICAgcmV0dXJuIHZhbGlkYXRlX21hbmlmZXN0KG9wdGlvbnNbJ21hbmlmZXN0
J10pCisgICAgZWxpZiBjbWQgPT0gJ2FkZCc6CisgICAgICAgIHJldHVybiBhZGRfZmlsZXMob3B0
aW9uc1snbWFuaWZlc3QnXSwgb3B0aW9uc1snYWxnb3JpdGhtJ10sIGNtZF9hcmdzLAorICAgICAg
ICAgICAgICAgICAgICAgICAgIG9wdGlvbnNbJ3ZlcnNpb24nXSwgb3B0aW9uc1sndmlzaWJpbGl0
eSddLAorICAgICAgICAgICAgICAgICAgICAgICAgIG9wdGlvbnNbJ3VucGFjayddKQorICAgIGVs
aWYgY21kID09ICdwdXJnZSc6CisgICAgICAgIGlmIG9wdGlvbnNbJ2NhY2hlX2ZvbGRlciddOgor
ICAgICAgICAgICAgcHVyZ2UoZm9sZGVyPW9wdGlvbnNbJ2NhY2hlX2ZvbGRlciddLCBnaWdzPW9w
dGlvbnNbJ3NpemUnXSkKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIGxvZy5jcml0aWNhbCgn
cGxlYXNlIHNwZWNpZnkgdGhlIGNhY2hlIGZvbGRlciB0byBiZSBwdXJnZWQnKQorICAgICAgICAg
ICAgcmV0dXJuIEZhbHNlCisgICAgZWxpZiBjbWQgPT0gJ2ZldGNoJzoKKyAgICAgICAgcmV0dXJu
IGZldGNoX2ZpbGVzKAorICAgICAgICAgICAgb3B0aW9uc1snbWFuaWZlc3QnXSwKKyAgICAgICAg
ICAgIG9wdGlvbnNbJ2Jhc2VfdXJsJ10sCisgICAgICAgICAgICBjbWRfYXJncywKKyAgICAgICAg
ICAgIGNhY2hlX2ZvbGRlcj1vcHRpb25zWydjYWNoZV9mb2xkZXInXSwKKyAgICAgICAgICAgIGF1
dGhfZmlsZT1vcHRpb25zLmdldCgiYXV0aF9maWxlIiksCisgICAgICAgICAgICByZWdpb249b3B0
aW9ucy5nZXQoJ3JlZ2lvbicpKQorICAgIGVsaWYgY21kID09ICd1cGxvYWQnOgorICAgICAgICBp
ZiBub3Qgb3B0aW9ucy5nZXQoJ21lc3NhZ2UnKToKKyAgICAgICAgICAgIGxvZy5jcml0aWNhbCgn
dXBsb2FkIGNvbW1hbmQgcmVxdWlyZXMgYSBtZXNzYWdlJykKKyAgICAgICAgICAgIHJldHVybiBG
YWxzZQorICAgICAgICByZXR1cm4gdXBsb2FkKAorICAgICAgICAgICAgb3B0aW9ucy5nZXQoJ21h
bmlmZXN0JyksCisgICAgICAgICAgICBvcHRpb25zLmdldCgnbWVzc2FnZScpLAorICAgICAgICAg
ICAgb3B0aW9ucy5nZXQoJ2Jhc2VfdXJsJyksCisgICAgICAgICAgICBvcHRpb25zLmdldCgnYXV0
aF9maWxlJyksCisgICAgICAgICAgICBvcHRpb25zLmdldCgncmVnaW9uJykpCisgICAgZWxzZToK
KyAgICAgICAgbG9nLmNyaXRpY2FsKCdjb21tYW5kICIlcyIgaXMgbm90IGltcGxlbWVudGVkJyAl
IGNtZCkKKyAgICAgICAgcmV0dXJuIEZhbHNlCisKKworZGVmIG1haW4oYXJndiwgX3NraXBfbG9n
Z2luZz1GYWxzZSk6CisgICAgIyBTZXQgdXAgb3B0aW9uIHBhcnNpbmcKKyAgICBwYXJzZXIgPSBv
cHRwYXJzZS5PcHRpb25QYXJzZXIoKQorICAgIHBhcnNlci5hZGRfb3B0aW9uKCctcScsICctLXF1
aWV0JywgZGVmYXVsdD1sb2dnaW5nLklORk8sCisgICAgICAgICAgICAgICAgICAgICAgZGVzdD0n
bG9nbGV2ZWwnLCBhY3Rpb249J3N0b3JlX2NvbnN0JywgY29uc3Q9bG9nZ2luZy5FUlJPUikKKyAg
ICBwYXJzZXIuYWRkX29wdGlvbignLXYnLCAnLS12ZXJib3NlJywKKyAgICAgICAgICAgICAgICAg
ICAgICBkZXN0PSdsb2dsZXZlbCcsIGFjdGlvbj0nc3RvcmVfY29uc3QnLCBjb25zdD1sb2dnaW5n
LkRFQlVHKQorICAgIHBhcnNlci5hZGRfb3B0aW9uKCctbScsICctLW1hbmlmZXN0JywgZGVmYXVs
dD1ERUZBVUxUX01BTklGRVNUX05BTUUsCisgICAgICAgICAgICAgICAgICAgICAgZGVzdD0nbWFu
aWZlc3QnLCBhY3Rpb249J3N0b3JlJywKKyAgICAgICAgICAgICAgICAgICAgICBoZWxwPSdzcGVj
aWZ5IHRoZSBtYW5pZmVzdCBmaWxlIHRvIGJlIG9wZXJhdGVkIG9uJykKKyAgICBwYXJzZXIuYWRk
X29wdGlvbignLWQnLCAnLS1hbGdvcml0aG0nLCBkZWZhdWx0PSdzaGE1MTInLAorICAgICAgICAg
ICAgICAgICAgICAgIGRlc3Q9J2FsZ29yaXRobScsIGFjdGlvbj0nc3RvcmUnLAorICAgICAgICAg
ICAgICAgICAgICAgIGhlbHA9J2hhc2hpbmcgYWxnb3JpdGhtIHRvIHVzZSAob25seSBzaGE1MTIg
aXMgYWxsb3dlZCknKQorICAgIHBhcnNlci5hZGRfb3B0aW9uKCctLXZpc2liaWxpdHknLCBkZWZh
dWx0PU5vbmUsCisgICAgICAgICAgICAgICAgICAgICAgZGVzdD0ndmlzaWJpbGl0eScsIGNob2lj
ZXM9WydpbnRlcm5hbCcsICdwdWJsaWMnXSwKKyAgICAgICAgICAgICAgICAgICAgICBoZWxwPSdW
aXNpYmlsaXR5IGxldmVsIG9mIHRoaXMgZmlsZTsgImludGVybmFsIiBpcyBmb3IgJworICAgICAg
ICAgICAgICAgICAgICAgICAgICAgJ2ZpbGVzIHRoYXQgY2Fubm90IGJlIGRpc3RyaWJ1dGVkIG91
dCBvZiB0aGUgY29tcGFueSAnCisgICAgICAgICAgICAgICAgICAgICAgICAgICAnYnV0IG5vdCBm
b3Igc2VjcmV0czsgInB1YmxpYyIgZmlsZXMgYXJlIGF2YWlsYWJsZSB0byAnCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAnYW55b25lIHdpdGhvdXQgcmVzdHJpY3Rpb24nKQorICAgIHBhcnNl
ci5hZGRfb3B0aW9uKCctLXVucGFjaycsIGRlZmF1bHQ9RmFsc2UsCisgICAgICAgICAgICAgICAg
ICAgICAgZGVzdD0ndW5wYWNrJywgYWN0aW9uPSdzdG9yZV90cnVlJywKKyAgICAgICAgICAgICAg
ICAgICAgICBoZWxwPSdSZXF1ZXN0IHVucGFja2luZyB0aGlzIGZpbGUgYWZ0ZXIgZmV0Y2guJwor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgJyBUaGlzIGlzIGhlbHBmdWwgd2l0aCB0YXJiYWxs
cy4nKQorICAgIHBhcnNlci5hZGRfb3B0aW9uKCctLXZlcnNpb24nLCBkZWZhdWx0PU5vbmUsCisg
ICAgICAgICAgICAgICAgICAgICAgZGVzdD0ndmVyc2lvbicsIGFjdGlvbj0nc3RvcmUnLAorICAg
ICAgICAgICAgICAgICAgICAgIGhlbHA9J1ZlcnNpb24gc3RyaW5nIGZvciB0aGlzIGZpbGUuIFRo
aXMgYW5ub3RhdGVzIHRoZSAnCisgICAgICAgICAgICAgICAgICAgICAgICAgICAnbWFuaWZlc3Qg
ZW50cnkgd2l0aCBhIHZlcnNpb24gc3RyaW5nIHRvIGhlbHAgJworICAgICAgICAgICAgICAgICAg
ICAgICAgICAgJ2lkZW50aWZ5IHRoZSBjb250ZW50cy4nKQorICAgIHBhcnNlci5hZGRfb3B0aW9u
KCctbycsICctLW92ZXJ3cml0ZScsIGRlZmF1bHQ9RmFsc2UsCisgICAgICAgICAgICAgICAgICAg
ICAgZGVzdD0nb3ZlcndyaXRlJywgYWN0aW9uPSdzdG9yZV90cnVlJywKKyAgICAgICAgICAgICAg
ICAgICAgICBoZWxwPSdVTlVTRUQ7IHByZXNlbnQgZm9yIGJhY2t3YXJkIGNvbXBhdGliaWxpdHkn
KQorICAgIHBhcnNlci5hZGRfb3B0aW9uKCctLXVybCcsIGRlc3Q9J2Jhc2VfdXJsJywgYWN0aW9u
PSdhcHBlbmQnLAorICAgICAgICAgICAgICAgICAgICAgIGhlbHA9J1JlbGVuZ0FQSSBVUkwgZW5k
aW5nIHdpdGggL3Rvb2x0b29sLzsgZGVmYXVsdCAnCisgICAgICAgICAgICAgICAgICAgICAgJ2lz
IGFwcHJvcHJpYXRlIGZvciBNb3ppbGxhJykKKyAgICBwYXJzZXIuYWRkX29wdGlvbignLWMnLCAn
LS1jYWNoZS1mb2xkZXInLCBkZXN0PSdjYWNoZV9mb2xkZXInLAorICAgICAgICAgICAgICAgICAg
ICAgIGhlbHA9J0xvY2FsIGNhY2hlIGZvbGRlcicpCisgICAgcGFyc2VyLmFkZF9vcHRpb24oJy1z
JywgJy0tc2l6ZScsCisgICAgICAgICAgICAgICAgICAgICAgaGVscD0nZnJlZSBzcGFjZSByZXF1
aXJlZCAoaW4gR0IpJywgZGVzdD0nc2l6ZScsCisgICAgICAgICAgICAgICAgICAgICAgdHlwZT0n
ZmxvYXQnLCBkZWZhdWx0PTAuKQorICAgIHBhcnNlci5hZGRfb3B0aW9uKCctcicsICctLXJlZ2lv
bicsIGhlbHA9J1ByZWZlcnJlZCBBV1MgcmVnaW9uIGZvciB1cGxvYWQgb3IgZmV0Y2g7ICcKKyAg
ICAgICAgICAgICAgICAgICAgICAnZXhhbXBsZTogLS1yZWdpb249dXMtd2VzdC0yJykKKyAgICBw
YXJzZXIuYWRkX29wdGlvbignLS1tZXNzYWdlJywKKyAgICAgICAgICAgICAgICAgICAgICBoZWxw
PSdUaGUgImNvbW1pdCBtZXNzYWdlIiBmb3IgYW4gdXBsb2FkOyBmb3JtYXQgd2l0aCBhIGJ1ZyBu
dW1iZXIgJworICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2FuZCBicmllZiBjb21tZW50JywK
KyAgICAgICAgICAgICAgICAgICAgICBkZXN0PSdtZXNzYWdlJykKKyAgICBwYXJzZXIuYWRkX29w
dGlvbignLS1hdXRoZW50aWNhdGlvbi1maWxlJywKKyAgICAgICAgICAgICAgICAgICAgICBoZWxw
PSdVc2UgdGhlIFJlbGVuZ0FQSSB0b2tlbiBmb3VuZCBpbiB0aGUgZ2l2ZW4gZmlsZSB0byAnCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAnYXV0aGVudGljYXRlIHRvIHRoZSBSZWxlbmdBUEkg
c2VydmVyLicsCisgICAgICAgICAgICAgICAgICAgICAgZGVzdD0nYXV0aF9maWxlJykKKworICAg
IChvcHRpb25zX29iaiwgYXJncykgPSBwYXJzZXIucGFyc2VfYXJncyhhcmd2WzE6XSkKKworICAg
ICMgZGVmYXVsdCB0aGUgb3B0aW9ucyBsaXN0IGlmIG5vdCBwcm92aWRlZAorICAgIGlmIG5vdCBv
cHRpb25zX29iai5iYXNlX3VybDoKKyAgICAgICAgb3B0aW9uc19vYmouYmFzZV91cmwgPSBbJ2h0
dHBzOi8vdG9vbHRvb2wubW96aWxsYS1yZWxlbmcubmV0LyddCisKKyAgICAjIGVuc3VyZSBhbGwg
VVJMcyBoYXZlIGEgdHJhaWxpbmcgc2xhc2gKKyAgICBkZWYgYWRkX3NsYXNoKHVybCk6CisgICAg
ICAgIHJldHVybiB1cmwgaWYgdXJsLmVuZHN3aXRoKCcvJykgZWxzZSAodXJsICsgJy8nKQorICAg
IG9wdGlvbnNfb2JqLmJhc2VfdXJsID0gW2FkZF9zbGFzaCh1KSBmb3IgdSBpbiBvcHRpb25zX29i
ai5iYXNlX3VybF0KKworICAgICMgZXhwYW5kIH4gaW4gLS1hdXRoZW50aWNhdGlvbi1maWxlCisg
ICAgaWYgb3B0aW9uc19vYmouYXV0aF9maWxlOgorICAgICAgICBvcHRpb25zX29iai5hdXRoX2Zp
bGUgPSBvcy5wYXRoLmV4cGFuZHVzZXIob3B0aW9uc19vYmouYXV0aF9maWxlKQorCisgICAgIyBE
aWN0aW9uYXJpZXMgYXJlIGVhc2llciB0byB3b3JrIHdpdGgKKyAgICBvcHRpb25zID0gdmFycyhv
cHRpb25zX29iaikKKworICAgIGxvZy5zZXRMZXZlbChvcHRpb25zWydsb2dsZXZlbCddKQorCisg
ICAgIyBTZXQgdXAgbG9nZ2luZywgZm9yIG5vdyBqdXN0IHRvIHRoZSBjb25zb2xlCisgICAgaWYg
bm90IF9za2lwX2xvZ2dpbmc6ICAjIHByYWdtYTogbm8gY292ZXIKKyAgICAgICAgY2ggPSBsb2dn
aW5nLlN0cmVhbUhhbmRsZXIoKQorICAgICAgICBjZiA9IGxvZ2dpbmcuRm9ybWF0dGVyKCIlKGxl
dmVsbmFtZSlzIC0gJShtZXNzYWdlKXMiKQorICAgICAgICBjaC5zZXRGb3JtYXR0ZXIoY2YpCisg
ICAgICAgIGxvZy5hZGRIYW5kbGVyKGNoKQorCisgICAgaWYgb3B0aW9uc1snYWxnb3JpdGhtJ10g
IT0gJ3NoYTUxMic6CisgICAgICAgIHBhcnNlci5lcnJvcignb25seSAtLWFsZ29yaXRobSBzaGE1
MTIgaXMgc3VwcG9ydGVkJykKKworICAgIGlmIGxlbihhcmdzKSA8IDE6CisgICAgICAgIHBhcnNl
ci5lcnJvcignWW91IG11c3Qgc3BlY2lmeSBhIGNvbW1hbmQnKQorCisgICAgcmV0dXJuIDAgaWYg
cHJvY2Vzc19jb21tYW5kKG9wdGlvbnMsIGFyZ3MpIGVsc2UgMQorCisKK2lmIF9fbmFtZV9fID09
ICJfX21haW5fXyI6ICAjIHByYWdtYTogbm8gY292ZXIKKyAgICBzeXMuZXhpdChtYWluKHN5cy5h
cmd2KSkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvdG9vbHRvb2wvdzNjLWltcG9ydC5sb2cgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3Rv
b2x0b29sL3czYy1pbXBvcnQubG9nCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjJmNTE2OGRjYzJmNTNlYjVlY2RhMjgw
MzA3NTY3ZmFhMDFiMjQwNDEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3RoaXJkX3BhcnR5L3Rvb2x0b29sL3czYy1p
bXBvcnQubG9nCkBAIC0wLDAgKzEsMTcgQEAKK1RoZSB0ZXN0cyBpbiB0aGlzIGRpcmVjdG9yeSB3
ZXJlIGltcG9ydGVkIGZyb20gdGhlIFczQyByZXBvc2l0b3J5LgorRG8gTk9UIG1vZGlmeSB0aGVz
ZSB0ZXN0cyBkaXJlY3RseSBpbiBXZWJLaXQuCitJbnN0ZWFkLCBjcmVhdGUgYSBwdWxsIHJlcXVl
c3Qgb24gdGhlIFdQVCBnaXRodWI6CisJaHR0cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9ybS10
ZXN0cy93cHQKKworVGhlbiBydW4gdGhlIFRvb2xzL1NjcmlwdHMvaW1wb3J0LXczYy10ZXN0cyBp
biBXZWJLaXQgdG8gcmVpbXBvcnQKKworRG8gTk9UIG1vZGlmeSBvciByZW1vdmUgdGhpcyBmaWxl
LgorCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0KK1Byb3BlcnRpZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhl
czoKK05vbmUKK1Byb3BlcnR5IHZhbHVlcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgorTm9u
ZQorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tCitMaXN0IG9mIGZpbGVzOgorL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdGhpcmRfcGFydHkvdG9vbHRvb2wvdG9vbHRv
b2wucHkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvdG94LmluaSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvdG94LmluaQppbmRleCAzZWIxMmMzNTdiYTA1YTEyODM1MjEyNTY2MzU1
N2QxZTJiMTdmMzE0Li5lODY3M2RiMGE2OWFlNDY5NWU3YjFmYTE1MmM1MzNhYTFiMGY5OGQxIDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3RveC5pbmkKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy90b3guaW5pCkBAIC0xLDI2ICsxLDU2IEBACiBbdG94XQotZW52bGlzdCA9IHB5
MjcscHkzNixweXB5CitlbnZsaXN0ID0gcHkyNyxweTM1LHB5MzYscHkzNyxweXB5LHtweTI3LHB5
MzUscHkzNixweTM3fS1mbGFrZTgse3B5MzUscHkzNixweTM3fS1teXB5CiBza2lwc2Rpc3Q9VHJ1
ZQogCiBbdGVzdGVudl0KLSMgZmxha2U4IHZlcnNpb25zIHNob3VsZCBiZSBrZXB0IGluIHN5bmMg
YWNyb3NzIHRvb2xzL3RveC5pbmksIHRvb2xzL3dwdC90b3guaW5pLCBhbmQgdG9vbHMvd3B0cnVu
bmVyL3RveC5pbmkKIGRlcHMgPQotICBmbGFrZTg9PTMuNS4wCi0gIHB5Y29kZXN0eWxlPT0yLjMu
MQotICBweWZsYWtlcz09MS42LjAKLSAgcGVwOC1uYW1pbmc9PTAuNC4xCiAgIHB5dGVzdAogICBw
eXRlc3QtY292CiAgIG1vY2sKICAgaHlwb3RoZXNpcwotICBweXRlc3QtY2F0Y2hsb2cKKyAgcmVx
dWVzdHMKKyAgdGFza2NsdXN0ZXIKKyAgcHl5YW1sCisgIGpzb24tZQorICBqc29uc2NoZW1hCiAK
LWNvbW1hbmRzID0KLSAgcHl0ZXN0IC0tY292IHtwb3NhcmdzfQotICBmbGFrZTggLS1hcHBlbmQt
Y29uZmlnPWZsYWtlOC5pbmkKK2NvbW1hbmRzID0gcHl0ZXN0IHtwb3NhcmdzfQogCiBwYXNzZW52
ID0KICAgSFlQT1RIRVNJU19QUk9GSUxFCisgIFBZX0NPTE9SUworICBUQVNLQ0xVU1RFUl9ST09U
X1VSTAorCitbdGVzdGVudjpweTI3LWZsYWtlOF0KK2RlcHMgPSAtcnJlcXVpcmVtZW50c19mbGFr
ZTgudHh0Citjb21tYW5kcyA9IGZsYWtlOCAtLWFwcGVuZC1jb25maWc9e3RveGluaWRpcn0vcHky
Ny1mbGFrZTguaW5pIHtwb3NhcmdzfQorCitbdGVzdGVudjpweTM1LWZsYWtlOF0KK2RlcHMgPSAt
cnJlcXVpcmVtZW50c19mbGFrZTgudHh0Citjb21tYW5kcyA9IGZsYWtlOCAtLWFwcGVuZC1jb25m
aWc9e3RveGluaWRpcn0vcHkzNi1mbGFrZTguaW5pIHtwb3NhcmdzfQorCitbdGVzdGVudjpweTM2
LWZsYWtlOF0KK2RlcHMgPSAtcnJlcXVpcmVtZW50c19mbGFrZTgudHh0Citjb21tYW5kcyA9IGZs
YWtlOCAtLWFwcGVuZC1jb25maWc9e3RveGluaWRpcn0vcHkzNi1mbGFrZTguaW5pIHtwb3Nhcmdz
fQorCitbdGVzdGVudjpweTM3LWZsYWtlOF0KK2RlcHMgPSAtcnJlcXVpcmVtZW50c19mbGFrZTgu
dHh0Citjb21tYW5kcyA9IGZsYWtlOCAtLWFwcGVuZC1jb25maWc9e3RveGluaWRpcn0vcHkzNi1m
bGFrZTguaW5pIHtwb3NhcmdzfQogCi1bZmxha2U4XQotZXhjbHVkZSA9IC50b3gsaHRtbDVsaWIs
dGhpcmRfcGFydHkscHl3ZWJzb2NrZXQsc2l4LF92ZW52LHdlYmVuY29kaW5ncyx3cHRzZXJ2ZS9k
b2NzLHdwdHNlcnZlL3Rlc3RzL2Z1bmN0aW9uYWwvZG9jcm9vdC8sd3B0LHdwdHJ1bm5lcgorW3Rl
c3RlbnY6cHkzNS1teXB5XQorZGVwcyA9IC1ycmVxdWlyZW1lbnRzX215cHkudHh0CitjaGFuZ2Vk
aXIgPSB7dG94aW5pZGlyfS8uLgorY29tbWFuZHMgPQorICBteXB5IC0tY29uZmlnLWZpbGU9e3Rv
eGluaWRpcn0vbXlweS5pbmkgLS1uby1pbmNyZW1lbnRhbCAtLXB5MiAtcCB0b29scy5tYW5pZmVz
dCAtcCB0b29scy5saW50IC1wIHRvb2xzLmdpdGlnbm9yZQorCitbdGVzdGVudjpweTM2LW15cHld
CitkZXBzID0gLXJyZXF1aXJlbWVudHNfbXlweS50eHQKK2NoYW5nZWRpciA9IHt0b3hpbmlkaXJ9
Ly4uCitjb21tYW5kcyA9CisgIG15cHkgLS1jb25maWctZmlsZT17dG94aW5pZGlyfS9teXB5Lmlu
aSAtLW5vLWluY3JlbWVudGFsIC0tcHkyIC1wIHRvb2xzLm1hbmlmZXN0IC1wIHRvb2xzLmxpbnQg
LXAgdG9vbHMuZ2l0aWdub3JlCisKK1t0ZXN0ZW52OnB5MzctbXlweV0KK2RlcHMgPSAtcnJlcXVp
cmVtZW50c19teXB5LnR4dAorY2hhbmdlZGlyID0ge3RveGluaWRpcn0vLi4KK2NvbW1hbmRzID0K
KyAgbXlweSAtLWNvbmZpZy1maWxlPXt0b3hpbmlkaXJ9L215cHkuaW5pIC0tbm8taW5jcmVtZW50
YWwgLS1weTIgLXAgdG9vbHMubWFuaWZlc3QgLXAgdG9vbHMubGludCAtcCB0b29scy5naXRpZ25v
cmUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvdzNjLWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3czYy1pbXBvcnQubG9nCmluZGV4IGY3YTJmMzI3NGM4MTM5ODA1
NjFhNzFmYmQ1OWY3NDAwZWM2ZmFiNjQuLmU2OTk4NThjOWNjYzljMGYyOTBmNjQxMGM5NzA4MmE2
NzBjNzA2OGUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvdzNjLWltcG9ydC5sb2cKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93M2MtaW1wb3J0LmxvZwpAQCAtMTcsMTAgKzE3
LDEzIEBAIExpc3Qgb2YgZmlsZXM6CiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy9NRVRBLnltbAogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvX19pbml0X18ucHkKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL19faW5pdF9fLnB5YwotL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvYXBwdmV5b3IueW1sCiAvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy9jb25mdGVzdC5weQot
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvZmxha2U4
LmluaQogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
bG9jYWxwYXRocy5weQogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvbG9jYWxwYXRocy5weWMKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL215cHkuaW5pCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy9weTI3LWZsYWtlOC5pbmkKKy9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3B5MzYtZmxha2U4LmluaQogL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcHl0ZXN0LmluaQor
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvcmVxdWly
ZW1lbnRzX2ZsYWtlOC50eHQKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3JlcXVpcmVtZW50c19teXB5LnR4dAogL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvdG94LmluaQpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93ZWJkcml2ZXIvUkVB
RE1FLm1kIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy93ZWJkcml2ZXIvUkVBRE1FLm1kCmluZGV4IDcyZGUzYjJhZThiNmEyNTQzNGJiZmVmMDBlNDll
MGEwNDYzZmYyNDcuLjI3OTVmZjFmY2YzOWY3ZGE5OGExOGViMzQ4NDEwOWIwYmY3MTM3YWUgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvd2ViZHJpdmVyL1JFQURNRS5tZAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dlYmRyaXZlci9SRUFETUUubWQKQEAgLTksNyArOSw3IEBA
IGltcGxlbWVudGF0aW9uIGNvbXBsaWFuY2UgdG8gdGhlIHNwZWNpZmljYXRpb24gaW4gbWluZCwK
IHNvIHRoYXQgZGlmZmVyZW50IHJlbW90ZSBlbmQgZHJpdmVycwogY2FuIGRldGVybWluZSB3aGV0
aGVyIHRoZXkgbWVldCB0aGUgcmVjb2duaXNlZCBzdGFuZGFyZC4KIFRoZSBjbGllbnQgaXMgdXNl
ZCBmb3IgdGhlIFdlYkRyaXZlciBzcGVjaWZpY2F0aW9uIHRlc3RzCi1pbiB0aGUgW1dlYiBQbGF0
Zm9ybSBUZXN0c10oaHR0cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQpLgor
aW4gW3dlYi1wbGF0Zm9ybS10ZXN0c10oaHR0cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9ybS10
ZXN0cy93cHQpLgogCiAjIyBJbnN0YWxsYXRpb24KIApAQCAtMjQsMTEgKzI0LDExIEBAIHdoaWNo
IGlzIHVzZWZ1bCBpZiB5b3Ugd2FudCB0byBjb250cmlidXRlIHBhdGNoZXMgYmFjazoKIAogICAg
ICUgY2QgL3BhdGgvdG8vd2RjbGllbnQKICAgICAlIHB5dGhvbgotICAgIFB5dGhvbiAyLjcuMTIr
IChkZWZhdWx0LCBBdWcgIDQgMjAxNiwgMjA6MDQ6MzQpIAorICAgIFB5dGhvbiAyLjcuMTIrIChk
ZWZhdWx0LCBBdWcgIDQgMjAxNiwgMjA6MDQ6MzQpCiAgICAgW0dDQyA2LjEuMSAyMDE2MDcyNF0g
b24gbGludXgyCiAgICAgVHlwZSAiaGVscCIsICJjb3B5cmlnaHQiLCAiY3JlZGl0cyIgb3IgImxp
Y2Vuc2UiIGZvciBtb3JlIGluZm9ybWF0aW9uLgogICAgID4+PiBpbXBvcnQgd2ViZHJpdmVyCi0g
ICAgPj4+IAorICAgID4+PgogCiBJZiB5b3UgYXJlIHdyaXRpbmcgV2ViRHJpdmVyIHNwZWNpZmlj
YXRpb24gdGVzdHMgZm9yCiBbV1BUXShodHRwczovL2dpdGh1Yi5jb20vd2ViLXBsYXRmb3JtLXRl
c3RzL3dwdCksCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3dlYmRyaXZlci93ZWJkcml2ZXIvX19pbml0X18ucHkgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dlYmRyaXZlci93ZWJk
cml2ZXIvX19pbml0X18ucHkKaW5kZXggMjE3YmZjNjUyNzIyOGMxNDBiMTRkZmQ3ODNjOGVjMzVh
NDk4ZTFiMy4uZDg2MGI5ZWEyNTMzZjAzMmNhMjI3YWU2M2Q4ZjIwMjJiNmQ4OTdjNyAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93
ZWJkcml2ZXIvd2ViZHJpdmVyL19faW5pdF9fLnB5CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd2ViZHJpdmVyL3dlYmRyaXZlci9fX2luaXRf
Xy5weQpAQCAtMSw2ICsxLDYgQEAKICMgZmxha2U4OiBub3FhCiAKLWZyb20gY2xpZW50IGltcG9y
dCAoCitmcm9tIC5jbGllbnQgaW1wb3J0ICgKICAgICBDb29raWVzLAogICAgIEVsZW1lbnQsCiAg
ICAgRmluZCwKQEAgLTgsNyArOCw3IEBAIGZyb20gY2xpZW50IGltcG9ydCAoCiAgICAgU2Vzc2lv
biwKICAgICBUaW1lb3V0cywKICAgICBXaW5kb3cpCi1mcm9tIGVycm9yIGltcG9ydCAoCitmcm9t
IC5lcnJvciBpbXBvcnQgKAogICAgIEVsZW1lbnROb3RTZWxlY3RhYmxlRXhjZXB0aW9uLAogICAg
IEVsZW1lbnROb3RWaXNpYmxlRXhjZXB0aW9uLAogICAgIEludmFsaWRBcmd1bWVudEV4Y2VwdGlv
biwKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvd2ViZHJpdmVyL3dlYmRyaXZlci9jbGllbnQucHkgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dlYmRyaXZlci93ZWJkcml2ZXIvY2xp
ZW50LnB5CmluZGV4IGE4YzlhMDYxY2NmNTBiMWI4NzAyODM4NzFlMmU0ZWE1NWJjNGU4Y2MuLjBj
NWJiZmY1NjI5ODY4ZmRjNDhhMWE0MWNmODgyZmFiZTU2MTdjMWIgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd2ViZHJpdmVyL3dl
YmRyaXZlci9jbGllbnQucHkKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy93ZWJkcml2ZXIvd2ViZHJpdmVyL2NsaWVudC5weQpAQCAtMSwxMCAr
MSw5IEBACi1pbXBvcnQgdXJscGFyc2UKLQotaW1wb3J0IGVycm9yCi1pbXBvcnQgcHJvdG9jb2wK
LWltcG9ydCB0cmFuc3BvcnQKK2Zyb20gLiBpbXBvcnQgZXJyb3IKK2Zyb20gLiBpbXBvcnQgcHJv
dG9jb2wKK2Zyb20gLiBpbXBvcnQgdHJhbnNwb3J0CiAKIGZyb20gc2l4IGltcG9ydCBzdHJpbmdf
dHlwZXMKK2Zyb20gc2l4Lm1vdmVzLnVybGxpYiBpbXBvcnQgcGFyc2UgYXMgdXJscGFyc2UKIAog
CiBkZWYgY29tbWFuZChmdW5jKToKQEAgLTIxOCw3ICsyMTcsMTIgQEAgY2xhc3MgQWN0aW9ucyhv
YmplY3QpOgogICAgICAgICAgICAgICAgICAgICAgICAgYGBBY3Rpb25TZXF1ZW5jZS5kaWN0YGAu
CiAgICAgICAgICIiIgogICAgICAgICBib2R5ID0geyJhY3Rpb25zIjogW10gaWYgYWN0aW9ucyBp
cyBOb25lIGVsc2UgYWN0aW9uc30KLSAgICAgICAgcmV0dXJuIHNlbGYuc2Vzc2lvbi5zZW5kX3Nl
c3Npb25fY29tbWFuZCgiUE9TVCIsICJhY3Rpb25zIiwgYm9keSkKKyAgICAgICAgYWN0aW9ucyA9
IHNlbGYuc2Vzc2lvbi5zZW5kX3Nlc3Npb25fY29tbWFuZCgiUE9TVCIsICJhY3Rpb25zIiwgYm9k
eSkKKyAgICAgICAgIiIiV2ViRHJpdmVyIHdpbmRvdyBzaG91bGQgYmUgc2V0IHRvIHRoZSB0b3Ag
bGV2ZWwgd2luZG93IHdoZW4gd3B0cnVubmVyCisgICAgICAgIHByb2Nlc3NlcyB0aGUgbmV4dCBl
dmVudC4KKyAgICAgICAgIiIiCisgICAgICAgIHNlbGYuc2Vzc2lvbi5zd2l0Y2hfZnJhbWUoTm9u
ZSkKKyAgICAgICAgcmV0dXJuIGFjdGlvbnMKIAogICAgIEBjb21tYW5kCiAgICAgZGVmIHJlbGVh
c2Uoc2VsZik6CkBAIC0zMDgsOCArMzEyLDExIEBAIGNsYXNzIEZpbmQob2JqZWN0KToKICAgICAg
ICAgc2VsZi5zZXNzaW9uID0gc2Vzc2lvbgogCiAgICAgQGNvbW1hbmQKLSAgICBkZWYgY3NzKHNl
bGYsIHNlbGVjdG9yLCBhbGw9VHJ1ZSk6Ci0gICAgICAgIHJldHVybiBzZWxmLl9maW5kX2VsZW1l
bnQoImNzcyBzZWxlY3RvciIsIHNlbGVjdG9yLCBhbGwpCisgICAgZGVmIGNzcyhzZWxmLCBlbGVt
ZW50X3NlbGVjdG9yLCBhbGw9VHJ1ZSwgZnJhbWU9IndpbmRvdyIpOgorICAgICAgICBpZiAoZnJh
bWUgIT0gIndpbmRvdyIpOgorICAgICAgICAgICAgc2VsZi5zZXNzaW9uLnN3aXRjaF9mcmFtZShm
cmFtZSkKKyAgICAgICAgZWxlbWVudHMgPSBzZWxmLl9maW5kX2VsZW1lbnQoImNzcyBzZWxlY3Rv
ciIsIGVsZW1lbnRfc2VsZWN0b3IsIGFsbCkKKyAgICAgICAgcmV0dXJuIGVsZW1lbnRzCiAKICAg
ICBkZWYgX2ZpbmRfZWxlbWVudChzZWxmLCBzdHJhdGVneSwgc2VsZWN0b3IsIGFsbCk6CiAgICAg
ICAgIHJvdXRlID0gImVsZW1lbnRzIiBpZiBhbGwgZWxzZSAiZWxlbWVudCIKQEAgLTM1Niw3ICsz
NjMsNyBAQCBjbGFzcyBVc2VyUHJvbXB0KG9iamVjdCk6CiAgICAgQHRleHQuc2V0dGVyCiAgICAg
QGNvbW1hbmQKICAgICBkZWYgdGV4dChzZWxmLCB2YWx1ZSk6Ci0gICAgICAgIGJvZHkgPSB7InZh
bHVlIjogbGlzdCh2YWx1ZSl9CisgICAgICAgIGJvZHkgPSB7InRleHQiOiB2YWx1ZX0KICAgICAg
ICAgc2VsZi5zZXNzaW9uLnNlbmRfc2Vzc2lvbl9jb21tYW5kKCJQT1NUIiwgImFsZXJ0L3RleHQi
LCBib2R5PWJvZHkpCiAKIApAQCAtMzc2LDcgKzM4Myw2IEBAIGNsYXNzIFNlc3Npb24ob2JqZWN0
KToKICAgICAgICAgc2VsZi50aW1lb3V0cyA9IE5vbmUKICAgICAgICAgc2VsZi53aW5kb3cgPSBO
b25lCiAgICAgICAgIHNlbGYuZmluZCA9IE5vbmUKLSAgICAgICAgc2VsZi5fZWxlbWVudF9jYWNo
ZSA9IHt9CiAgICAgICAgIHNlbGYuZXh0ZW5zaW9uID0gTm9uZQogICAgICAgICBzZWxmLmV4dGVu
c2lvbl9jbHMgPSBleHRlbnNpb24KIApAQCAtNDA0LDEwICs0MTAsMTcgQEAgY2xhc3MgU2Vzc2lv
bihvYmplY3QpOgogICAgICAgICBzZWxmLmVuZCgpCiAKICAgICBkZWYgc3RhcnQoc2VsZik6Cisg
ICAgICAgICIiIlN0YXJ0IGEgbmV3IFdlYkRyaXZlciBzZXNzaW9uLgorCisgICAgICAgIDpyZXR1
cm46IERpY3Rpb25hcnkgd2l0aCBgY2FwYWJpbGl0aWVzYCBhbmQgYHNlc3Npb25JZGAuCisKKyAg
ICAgICAgOnJhaXNlcyBlcnJvci5XZWJEcml2ZXJFeGNlcHRpb246IElmIHRoZSByZW1vdGUgZW5k
IHJldHVybnMKKyAgICAgICAgICAgIGFuIGVycm9yLgorICAgICAgICAiIiIKICAgICAgICAgaWYg
c2VsZi5zZXNzaW9uX2lkIGlzIG5vdCBOb25lOgogICAgICAgICAgICAgcmV0dXJuCiAKLSAgICAg
ICAgYm9keSA9IHt9CisgICAgICAgIGJvZHkgPSB7ImNhcGFiaWxpdGllcyI6IHt9fQogCiAgICAg
ICAgIGlmIHNlbGYucmVxdWVzdGVkX2NhcGFiaWxpdGllcyBpcyBub3QgTm9uZToKICAgICAgICAg
ICAgIGJvZHlbImNhcGFiaWxpdGllcyJdID0gc2VsZi5yZXF1ZXN0ZWRfY2FwYWJpbGl0aWVzCkBA
IC00MjIsMTMgKzQzNSwxMyBAQCBjbGFzcyBTZXNzaW9uKG9iamVjdCk6CiAgICAgICAgIHJldHVy
biB2YWx1ZQogCiAgICAgZGVmIGVuZChzZWxmKToKLSAgICAgICAgIiIiVHJpZXMgdG8gY2xvc2Ug
dGhlIGFjdGl2ZSBzZXNzaW9uLiIiIgorICAgICAgICAiIiJUcnkgdG8gY2xvc2UgdGhlIGFjdGl2
ZSBzZXNzaW9uLiIiIgogICAgICAgICBpZiBzZWxmLnNlc3Npb25faWQgaXMgTm9uZToKICAgICAg
ICAgICAgIHJldHVybgogCiAgICAgICAgIHRyeToKICAgICAgICAgICAgIHNlbGYuc2VuZF9jb21t
YW5kKCJERUxFVEUiLCAic2Vzc2lvbi8lcyIgJSBzZWxmLnNlc3Npb25faWQpCi0gICAgICAgIGV4
Y2VwdCBlcnJvci5TZXNzaW9uTm90Q3JlYXRlZEV4Y2VwdGlvbjoKKyAgICAgICAgZXhjZXB0IGVy
cm9yLkludmFsaWRTZXNzaW9uSWRFeGNlcHRpb246CiAgICAgICAgICAgICBwYXNzCiAgICAgICAg
IGZpbmFsbHk6CiAgICAgICAgICAgICBzZWxmLnNlc3Npb25faWQgPSBOb25lCkBAIC00NDYsMTAg
KzQ1OSwxMCBAQCBjbGFzcyBTZXNzaW9uKG9iamVjdCk6CiAgICAgICAgICAgICB0aGUgYHZhbHVl
YCBmaWVsZCByZXR1cm5lZCBhZnRlciBwYXJzaW5nIHRoZSByZXNwb25zZQogICAgICAgICAgICAg
Ym9keSBhcyBKU09OLgogCi0gICAgICAgIDpyYWlzZXMgVmFsdWVFcnJvcjogSWYgdGhlIHJlc3Bv
bnNlIGJvZHkgZG9lcyBub3QgY29udGFpbiBhCi0gICAgICAgICAgICBgdmFsdWVgIGtleS4KICAg
ICAgICAgOnJhaXNlcyBlcnJvci5XZWJEcml2ZXJFeGNlcHRpb246IElmIHRoZSByZW1vdGUgZW5k
IHJldHVybnMKICAgICAgICAgICAgIGFuIGVycm9yLgorICAgICAgICA6cmFpc2VzIFZhbHVlRXJy
b3I6IElmIHRoZSByZXNwb25zZSBib2R5IGRvZXMgbm90IGNvbnRhaW4gYQorICAgICAgICAgICAg
YHZhbHVlYCBrZXkuCiAgICAgICAgICIiIgogICAgICAgICByZXNwb25zZSA9IHNlbGYudHJhbnNw
b3J0LnNlbmQoCiAgICAgICAgICAgICBtZXRob2QsIHVybCwgYm9keSwKQEAgLTQ1OSw3ICs0NzIs
NyBAQCBjbGFzcyBTZXNzaW9uKG9iamVjdCk6CiAgICAgICAgIGlmIHJlc3BvbnNlLnN0YXR1cyAh
PSAyMDA6CiAgICAgICAgICAgICBlcnIgPSBlcnJvci5mcm9tX3Jlc3BvbnNlKHJlc3BvbnNlKQog
Ci0gICAgICAgICAgICBpZiBpc2luc3RhbmNlKGVyciwgZXJyb3IuU2Vzc2lvbk5vdENyZWF0ZWRF
eGNlcHRpb24pOgorICAgICAgICAgICAgaWYgaXNpbnN0YW5jZShlcnIsIGVycm9yLkludmFsaWRT
ZXNzaW9uSWRFeGNlcHRpb24pOgogICAgICAgICAgICAgICAgICMgVGhlIGRyaXZlciBjb3VsZCBo
YXZlIGFscmVhZHkgYmVlbiBkZWxldGVkIHRoZSBzZXNzaW9uLgogICAgICAgICAgICAgICAgIHNl
bGYuc2Vzc2lvbl9pZCA9IE5vbmUKIApAQCAtNDk1LDE0ICs1MDgsOSBAQCBjbGFzcyBTZXNzaW9u
KG9iamVjdCk6CiAgICAgICAgIDpyZXR1cm46IGBOb25lYCBpZiB0aGUgSFRUUCByZXNwb25zZSBi
b2R5IHdhcyBlbXB0eSwgb3RoZXJ3aXNlCiAgICAgICAgICAgICB0aGUgcmVzdWx0IG9mIHBhcnNp
bmcgdGhlIGJvZHkgYXMgSlNPTi4KIAotICAgICAgICA6cmFpc2VzIGVycm9yLlNlc3Npb25Ob3RD
cmVhdGVkRXhjZXB0aW9uOiBJZiB0aGVyZSBpcyBubyBhY3RpdmUKLSAgICAgICAgICAgIHNlc3Np
b24uCiAgICAgICAgIDpyYWlzZXMgZXJyb3IuV2ViRHJpdmVyRXhjZXB0aW9uOiBJZiB0aGUgcmVt
b3RlIGVuZCByZXR1cm5zCiAgICAgICAgICAgICBhbiBlcnJvci4KICAgICAgICAgIiIiCi0gICAg
ICAgIGlmIHNlbGYuc2Vzc2lvbl9pZCBpcyBOb25lOgotICAgICAgICAgICAgcmFpc2UgZXJyb3Iu
U2Vzc2lvbk5vdENyZWF0ZWRFeGNlcHRpb24oKQotCiAgICAgICAgIHVybCA9IHVybHBhcnNlLnVy
bGpvaW4oInNlc3Npb24vJXMvIiAlIHNlbGYuc2Vzc2lvbl9pZCwgdXJpKQogICAgICAgICByZXR1
cm4gc2VsZi5zZW5kX2NvbW1hbmQobWV0aG9kLCB1cmwsIGJvZHkpCiAKQEAgLTU2NSw3ICs1NzMs
NyBAQCBjbGFzcyBTZXNzaW9uKG9iamVjdCk6CiAgICAgQGNvbW1hbmQKICAgICBkZWYgY2xvc2Uo
c2VsZik6CiAgICAgICAgIGhhbmRsZXMgPSBzZWxmLnNlbmRfc2Vzc2lvbl9jb21tYW5kKCJERUxF
VEUiLCAid2luZG93IikKLSAgICAgICAgaWYgbGVuKGhhbmRsZXMpID09IDA6CisgICAgICAgIGlm
IGhhbmRsZXMgaXMgbm90IE5vbmUgYW5kIGxlbihoYW5kbGVzKSA9PSAwOgogICAgICAgICAgICAg
IyBXaXRoIG5vIG1vcmUgb3BlbiB0b3AtbGV2ZWwgYnJvd3NpbmcgY29udGV4dHMsIHRoZSBzZXNz
aW9uIGlzIGNsb3NlZC4KICAgICAgICAgICAgIHNlbGYuc2Vzc2lvbl9pZCA9IE5vbmUKIApAQCAt
NjY3LDEwICs2NzUsNiBAQCBjbGFzcyBFbGVtZW50KG9iamVjdCk6CiAgICAgICAgIHNlbGYuaWQg
PSBpZAogICAgICAgICBzZWxmLnNlc3Npb24gPSBzZXNzaW9uCiAKLSAgICAgICAgaWYgaWQgaW4g
c2VsZi5zZXNzaW9uLl9lbGVtZW50X2NhY2hlOgotICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJv
cigiRWxlbWVudCBhbHJlYWR5IGluIGNhY2hlOiAlcyIgJSBpZCkKLSAgICAgICAgc2VsZi5zZXNz
aW9uLl9lbGVtZW50X2NhY2hlW3NlbGYuaWRdID0gc2VsZgotCiAgICAgZGVmIF9fcmVwcl9fKHNl
bGYpOgogICAgICAgICByZXR1cm4gIjwlcyAlcz4iICUgKHNlbGYuX19jbGFzc19fLl9fbmFtZV9f
LCBzZWxmLmlkKQogCkBAIC02ODEsOCArNjg1LDYgQEAgY2xhc3MgRWxlbWVudChvYmplY3QpOgog
ICAgIEBjbGFzc21ldGhvZAogICAgIGRlZiBmcm9tX2pzb24oY2xzLCBqc29uLCBzZXNzaW9uKToK
ICAgICAgICAgdXVpZCA9IGpzb25bRWxlbWVudC5pZGVudGlmaWVyXQotICAgICAgICBpZiB1dWlk
IGluIHNlc3Npb24uX2VsZW1lbnRfY2FjaGU6Ci0gICAgICAgICAgICByZXR1cm4gc2Vzc2lvbi5f
ZWxlbWVudF9jYWNoZVt1dWlkXQogICAgICAgICByZXR1cm4gY2xzKHV1aWQsIHNlc3Npb24pCiAK
ICAgICBkZWYgc2VuZF9lbGVtZW50X2NvbW1hbmQoc2VsZiwgbWV0aG9kLCB1cmksIGJvZHk9Tm9u
ZSk6CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3dlYmRyaXZlci93ZWJkcml2ZXIvZXJyb3IucHkgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dlYmRyaXZlci93ZWJkcml2ZXIvZXJy
b3IucHkKaW5kZXggYjIzMzdmZjNiMzhmNTc4MjhjNzJkNzZlNDllZjg4OTNkMzBiNTc4Yy4uMDY0
N2U3ZWI2MWY4MzRiMWRlMGViMDcyOTZlODc2Y2UzOGFhOGE0NyAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93ZWJkcml2ZXIvd2Vi
ZHJpdmVyL2Vycm9yLnB5CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvd2ViZHJpdmVyL3dlYmRyaXZlci9lcnJvci5weQpAQCAtMSwxMyArMSwx
NiBAQAogaW1wb3J0IGNvbGxlY3Rpb25zCiBpbXBvcnQganNvbgogCitmcm9tIHNpeCBpbXBvcnQg
aXRlcnZhbHVlcwogCiBjbGFzcyBXZWJEcml2ZXJFeGNlcHRpb24oRXhjZXB0aW9uKToKICAgICBo
dHRwX3N0YXR1cyA9IE5vbmUKICAgICBzdGF0dXNfY29kZSA9IE5vbmUKIAotICAgIGRlZiBfX2lu
aXRfXyhzZWxmLCBtZXNzYWdlPU5vbmUsIHN0YWNrdHJhY2U9Tm9uZSk6CisgICAgZGVmIF9faW5p
dF9fKHNlbGYsIGh0dHBfc3RhdHVzPU5vbmUsIHN0YXR1c19jb2RlPU5vbmUsIG1lc3NhZ2U9Tm9u
ZSwgc3RhY2t0cmFjZT1Ob25lKToKICAgICAgICAgc3VwZXIoV2ViRHJpdmVyRXhjZXB0aW9uLCBz
ZWxmKQorICAgICAgICBzZWxmLmh0dHBfc3RhdHVzID0gaHR0cF9zdGF0dXMKKyAgICAgICAgc2Vs
Zi5zdGF0dXNfY29kZSA9IHN0YXR1c19jb2RlCiAgICAgICAgIHNlbGYubWVzc2FnZSA9IG1lc3Nh
Z2UKICAgICAgICAgc2VsZi5zdGFja3RyYWNlID0gc3RhY2t0cmFjZQogCkBAIC0xMTMsNyArMTE2
LDcgQEAgY2xhc3MgTm9TdWNoV2luZG93RXhjZXB0aW9uKFdlYkRyaXZlckV4Y2VwdGlvbik6CiAK
IAogY2xhc3MgU2NyaXB0VGltZW91dEV4Y2VwdGlvbihXZWJEcml2ZXJFeGNlcHRpb24pOgotICAg
IGh0dHBfc3RhdHVzID0gNDA4CisgICAgaHR0cF9zdGF0dXMgPSA1MDAKICAgICBzdGF0dXNfY29k
ZSA9ICJzY3JpcHQgdGltZW91dCIKIAogCkBAIC0xMjgsNyArMTMxLDcgQEAgY2xhc3MgU3RhbGVF
bGVtZW50UmVmZXJlbmNlRXhjZXB0aW9uKFdlYkRyaXZlckV4Y2VwdGlvbik6CiAKIAogY2xhc3Mg
VGltZW91dEV4Y2VwdGlvbihXZWJEcml2ZXJFeGNlcHRpb24pOgotICAgIGh0dHBfc3RhdHVzID0g
NDA4CisgICAgaHR0cF9zdGF0dXMgPSA1MDAKICAgICBzdGF0dXNfY29kZSA9ICJ0aW1lb3V0Igog
CiAKQEAgLTE3MSw2ICsxNzQsOCBAQCBkZWYgZnJvbV9yZXNwb25zZShyZXNwb25zZSk6CiAgICAg
IiIiCiAgICAgaWYgcmVzcG9uc2Uuc3RhdHVzID09IDIwMDoKICAgICAgICAgcmFpc2UgVW5rbm93
bkVycm9yRXhjZXB0aW9uKAorICAgICAgICAgICAgcmVzcG9uc2Uuc3RhdHVzLAorICAgICAgICAg
ICAgTm9uZSwKICAgICAgICAgICAgICJSZXNwb25zZSBpcyBub3QgYW4gZXJyb3I6XG4iCiAgICAg
ICAgICAgICAiJXMiICUganNvbi5kdW1wcyhyZXNwb25zZS5ib2R5KSkKIApAQCAtMTc4LDYgKzE4
Myw4IEBAIGRlZiBmcm9tX3Jlc3BvbnNlKHJlc3BvbnNlKToKICAgICAgICAgdmFsdWUgPSByZXNw
b25zZS5ib2R5WyJ2YWx1ZSJdCiAgICAgZWxzZToKICAgICAgICAgcmFpc2UgVW5rbm93bkVycm9y
RXhjZXB0aW9uKAorICAgICAgICAgICAgcmVzcG9uc2Uuc3RhdHVzLAorICAgICAgICAgICAgTm9u
ZSwKICAgICAgICAgICAgICJFeHBlY3RlZCAndmFsdWUnIGtleSBpbiByZXNwb25zZSBib2R5Olxu
IgogICAgICAgICAgICAgIiVzIiAlIGpzb24uZHVtcHMocmVzcG9uc2UuYm9keSkpCiAKQEAgLTE4
Nyw3ICsxOTQsNyBAQCBkZWYgZnJvbV9yZXNwb25zZShyZXNwb25zZSk6CiAgICAgc3RhY2sgPSB2
YWx1ZVsic3RhY2t0cmFjZSJdIG9yIE5vbmUKIAogICAgIGNscyA9IGdldChjb2RlKQotICAgIHJl
dHVybiBjbHMobWVzc2FnZSwgc3RhY2t0cmFjZT1zdGFjaykKKyAgICByZXR1cm4gY2xzKHJlc3Bv
bnNlLnN0YXR1cywgY29kZSwgbWVzc2FnZSwgc3RhY2t0cmFjZT1zdGFjaykKIAogCiBkZWYgZ2V0
KGVycm9yX2NvZGUpOgpAQCAtMTk5LDYgKzIwNiw2IEBAIGRlZiBnZXQoZXJyb3JfY29kZSk6CiAK
IAogX2Vycm9ycyA9IGNvbGxlY3Rpb25zLmRlZmF1bHRkaWN0KCkKLWZvciBpdGVtIGluIGxvY2Fs
cygpLnZhbHVlcygpOgorZm9yIGl0ZW0gaW4gbGlzdChpdGVydmFsdWVzKGxvY2FscygpKSk6CiAg
ICAgaWYgdHlwZShpdGVtKSA9PSB0eXBlIGFuZCBpc3N1YmNsYXNzKGl0ZW0sIFdlYkRyaXZlckV4
Y2VwdGlvbik6CiAgICAgICAgIF9lcnJvcnNbaXRlbS5zdGF0dXNfY29kZV0gPSBpdGVtCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3dlYmRyaXZlci93ZWJkcml2ZXIvdHJhbnNwb3J0LnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93ZWJkcml2ZXIvd2ViZHJpdmVyL3RyYW5zcG9y
dC5weQppbmRleCA2MTliM2ZhZWU1NDQ2NDZjMmVkOTdkZGUwODE1Y2I1ODVhYjRhYzI4Li4zMmJh
MzFhMmFlOWE5OTZhNWM1N2ZkMDQwNjEyOTNmMzE3ZTViZjA0IDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dlYmRyaXZlci93ZWJk
cml2ZXIvdHJhbnNwb3J0LnB5CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvd2ViZHJpdmVyL3dlYmRyaXZlci90cmFuc3BvcnQucHkKQEAgLTEs
OCArMSw5IEBACi1pbXBvcnQgaHR0cGxpYgogaW1wb3J0IGpzb24KLWltcG9ydCB1cmxwYXJzZQor
aW1wb3J0IHNlbGVjdAorZnJvbSBzaXgubW92ZXMudXJsbGliIGltcG9ydCBwYXJzZSBhcyB1cmxw
YXJzZQorZnJvbSBzaXgubW92ZXMgaW1wb3J0IGh0dHBfY2xpZW50IGFzIGh0dHBsaWIKIAotaW1w
b3J0IGVycm9yCitmcm9tIC4gaW1wb3J0IGVycm9yCiAKIGZyb20gc2l4IGltcG9ydCB0ZXh0X3R5
cGUKIApAQCAtMTUsOSArMTYsMTAgQEAgY2xhc3MgUmVzcG9uc2Uob2JqZWN0KToKICAgICBib2R5
IGhhcyBiZWVuIHJlYWQgYW5kIHBhcnNlZCBhcyBhcHByb3ByaWF0ZS4KICAgICAiIiIKIAotICAg
IGRlZiBfX2luaXRfXyhzZWxmLCBzdGF0dXMsIGJvZHkpOgorICAgIGRlZiBfX2luaXRfXyhzZWxm
LCBzdGF0dXMsIGJvZHksIGhlYWRlcnMpOgogICAgICAgICBzZWxmLnN0YXR1cyA9IHN0YXR1cwog
ICAgICAgICBzZWxmLmJvZHkgPSBib2R5CisgICAgICAgIHNlbGYuaGVhZGVycyA9IGhlYWRlcnMK
IAogICAgIGRlZiBfX3JlcHJfXyhzZWxmKToKICAgICAgICAgY2xzX25hbWUgPSBzZWxmLl9fY2xh
c3NfXy5fX25hbWVfXwpAQCAtMzgsMTEgKzQwLDEyIEBAIGNsYXNzIFJlc3BvbnNlKG9iamVjdCk6
CiAgICAgZGVmIGZyb21faHR0cChjbHMsIGh0dHBfcmVzcG9uc2UsIGRlY29kZXI9anNvbi5KU09O
RGVjb2RlciwgKiprd2FyZ3MpOgogICAgICAgICB0cnk6CiAgICAgICAgICAgICBib2R5ID0ganNv
bi5sb2FkKGh0dHBfcmVzcG9uc2UsIGNscz1kZWNvZGVyLCAqKmt3YXJncykKKyAgICAgICAgICAg
IGhlYWRlcnMgPSBkaWN0KGh0dHBfcmVzcG9uc2UuZ2V0aGVhZGVycygpKQogICAgICAgICBleGNl
cHQgVmFsdWVFcnJvcjoKICAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoIkZhaWxlZCB0byBk
ZWNvZGUgcmVzcG9uc2UgYm9keSBhcyBKU09OOlxuIiArCiAgICAgICAgICAgICAgICAgaHR0cF9y
ZXNwb25zZS5yZWFkKCkpCiAKLSAgICAgICAgcmV0dXJuIGNscyhodHRwX3Jlc3BvbnNlLnN0YXR1
cywgYm9keSkKKyAgICAgICAgcmV0dXJuIGNscyhodHRwX3Jlc3BvbnNlLnN0YXR1cywgYm9keSwg
aGVhZGVycykKIAogCiBjbGFzcyBIVFRQV2lyZVByb3RvY29sKG9iamVjdCk6CkBAIC04Myw5ICs4
NiwzNSBAQCBjbGFzcyBIVFRQV2lyZVByb3RvY29sKG9iamVjdCk6CiAgICAgICAgIHNlbGYucG9y
dCA9IHBvcnQKICAgICAgICAgc2VsZi51cmxfcHJlZml4ID0gdXJsX3ByZWZpeAogCisgICAgICAg
IHNlbGYuX2Nvbm4gPSBOb25lCiAgICAgICAgIHNlbGYuX3RpbWVvdXQgPSB0aW1lb3V0CiAKKyAg
ICBkZWYgX19kZWxfXyhzZWxmKToKKyAgICAgICAgc2VsZi5jbG9zZSgpCisKKyAgICBkZWYgY2xv
c2Uoc2VsZik6CisgICAgICAgICIiIkNsb3NlcyB0aGUgY3VycmVudCBIVFRQIGNvbm5lY3Rpb24s
IGlmIHRoZXJlIGlzIG9uZS4iIiIKKyAgICAgICAgaWYgc2VsZi5fY29ubjoKKyAgICAgICAgICAg
IHNlbGYuX2Nvbm4uY2xvc2UoKQorCisgICAgQHByb3BlcnR5CisgICAgZGVmIGNvbm5lY3Rpb24o
c2VsZik6CisgICAgICAgICIiIkdldHMgdGhlIGN1cnJlbnQgSFRUUCBjb25uZWN0aW9uLCBvciBs
YXppbHkgY3JlYXRlcyBvbmUuIiIiCisgICAgICAgIGlmIG5vdCBzZWxmLl9jb25uOgorICAgICAg
ICAgICAgY29ubl9rd2FyZ3MgPSB7fQorICAgICAgICAgICAgaWYgc2VsZi5fdGltZW91dCBpcyBu
b3QgTm9uZToKKyAgICAgICAgICAgICAgICBjb25uX2t3YXJnc1sidGltZW91dCJdID0gc2VsZi5f
dGltZW91dAorCisgICAgICAgICAgICBzZWxmLl9jb25uID0gaHR0cGxpYi5IVFRQQ29ubmVjdGlv
bigKKyAgICAgICAgICAgICAgICBzZWxmLmhvc3QsIHNlbGYucG9ydCwgc3RyaWN0PVRydWUsICoq
Y29ubl9rd2FyZ3MpCisKKyAgICAgICAgcmV0dXJuIHNlbGYuX2Nvbm4KKwogICAgIGRlZiB1cmwo
c2VsZiwgc3VmZml4KToKKyAgICAgICAgIiIiCisgICAgICAgIEZyb20gdGhlIHJlbGF0aXZlIHBh
dGggdG8gYSBjb21tYW5kIGVuZC1wb2ludCwKKyAgICAgICAgY3JhZnQgYSBmdWxsIFVSTCBzdWl0
YWJsZSB0byBiZSB1c2VkIGluIGEgcmVxdWVzdCB0byB0aGUgSFRUUEQuCisgICAgICAgICIiIgog
ICAgICAgICByZXR1cm4gdXJscGFyc2UudXJsam9pbihzZWxmLnVybF9wcmVmaXgsIHN1ZmZpeCkK
IAogICAgIGRlZiBzZW5kKHNlbGYsCkBAIC0xMTEsNiArMTQwLDggQEAgY2xhc3MgSFRUUFdpcmVQ
cm90b2NvbChvYmplY3QpOgogICAgICAgICBlbGVtZW50IHJlZmVyZW5jZXMgdG8gYGB3ZWJkcml2
ZXIuRWxlbWVudGBgIGlzIHByb3ZpZGVkLgogICAgICAgICBVc2UgYGB3ZWJkcml2ZXIucHJvdG9j
b2wuRGVjb2RlcmBgIHRvIGFjaGlldmUgdGhpcyBiZWhhdmlvdXIuCiAKKyAgICAgICAgVGhlIGNs
aWVudCB3aWxsIGF0dGVtcHQgdG8gdXNlIHBlcnNpc3RlbnQgSFRUUCBjb25uZWN0aW9ucy4KKwog
ICAgICAgICA6cGFyYW0gbWV0aG9kOiBgR0VUYCwgYFBPU1RgLCBvciBgREVMRVRFYC4KICAgICAg
ICAgOnBhcmFtIHVyaTogUmVsYXRpdmUgZW5kcG9pbnQgb2YgdGhlIHJlcXVlc3RzIFVSTCBwYXRo
LgogICAgICAgICA6cGFyYW0gYm9keTogQm9keSBvZiB0aGUgcmVxdWVzdC4gIERlZmF1bHRzIHRv
IGFuIGVtcHR5CkBAIC0xNDEsMjYgKzE3MiwyMyBAQCBjbGFzcyBIVFRQV2lyZVByb3RvY29sKG9i
amVjdCk6CiAgICAgICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigiRmFpbGVkIHRvIGVuY29k
ZSByZXF1ZXN0IGJvZHkgYXMgSlNPTjpcbiIKICAgICAgICAgICAgICAgICAgICAgIiVzIiAlIGpz
b24uZHVtcHMoYm9keSwgaW5kZW50PTIpKQogCi0gICAgICAgICAgICBpZiBpc2luc3RhbmNlKHBh
eWxvYWQsIHRleHRfdHlwZSk6Ci0gICAgICAgICAgICAgICAgcGF5bG9hZCA9IGJvZHkuZW5jb2Rl
KCJ1dGYtOCIpCisgICAgICAgIHJlc3BvbnNlID0gc2VsZi5fcmVxdWVzdChtZXRob2QsIHVyaSwg
cGF5bG9hZCwgaGVhZGVycykKKyAgICAgICAgcmV0dXJuIFJlc3BvbnNlLmZyb21faHR0cChyZXNw
b25zZSwgZGVjb2Rlcj1kZWNvZGVyLCAqKmNvZGVjX2t3YXJncykKKworICAgIGRlZiBfcmVxdWVz
dChzZWxmLCBtZXRob2QsIHVyaSwgcGF5bG9hZCwgaGVhZGVycz1Ob25lKToKKyAgICAgICAgaWYg
aXNpbnN0YW5jZShwYXlsb2FkLCB0ZXh0X3R5cGUpOgorICAgICAgICAgICAgcGF5bG9hZCA9IHBh
eWxvYWQuZW5jb2RlKCJ1dGYtOCIpCiAKICAgICAgICAgaWYgaGVhZGVycyBpcyBOb25lOgogICAg
ICAgICAgICAgaGVhZGVycyA9IHt9Ci0gICAgICAgIGhlYWRlcnMudXBkYXRlKHsnQ29ubmVjdGlv
bic6ICdrZWVwLWFsaXZlJ30pCisgICAgICAgIGhlYWRlcnMudXBkYXRlKHsiQ29ubmVjdGlvbiI6
ICJrZWVwLWFsaXZlIn0pCiAKICAgICAgICAgdXJsID0gc2VsZi51cmwodXJpKQogCi0gICAgICAg
IGNvbm5fa3dhcmdzID0ge30KLSAgICAgICAgaWYgc2VsZi5fdGltZW91dCBpcyBub3QgTm9uZToK
LSAgICAgICAgICAgIGNvbm5fa3dhcmdzWyJ0aW1lb3V0Il0gPSBzZWxmLl90aW1lb3V0Ci0KLSAg
ICAgICAgY29ubiA9IGh0dHBsaWIuSFRUUENvbm5lY3Rpb24oCi0gICAgICAgICAgICBzZWxmLmhv
c3QsIHNlbGYucG9ydCwgc3RyaWN0PVRydWUsICoqY29ubl9rd2FyZ3MpCi0gICAgICAgIGNvbm4u
cmVxdWVzdChtZXRob2QsIHVybCwgcGF5bG9hZCwgaGVhZGVycykKKyAgICAgICAgaWYgc2VsZi5f
aGFzX3VucmVhZF9kYXRhKCk6CisgICAgICAgICAgICBzZWxmLmNsb3NlKCkKKyAgICAgICAgc2Vs
Zi5jb25uZWN0aW9uLnJlcXVlc3QobWV0aG9kLCB1cmwsIHBheWxvYWQsIGhlYWRlcnMpCisgICAg
ICAgIHJldHVybiBzZWxmLmNvbm5lY3Rpb24uZ2V0cmVzcG9uc2UoKQogCi0gICAgICAgIHRyeToK
LSAgICAgICAgICAgIHJlc3BvbnNlID0gY29ubi5nZXRyZXNwb25zZSgpCi0gICAgICAgICAgICBy
ZXR1cm4gUmVzcG9uc2UuZnJvbV9odHRwKAotICAgICAgICAgICAgICAgIHJlc3BvbnNlLCBkZWNv
ZGVyPWRlY29kZXIsICoqY29kZWNfa3dhcmdzKQotICAgICAgICBmaW5hbGx5OgotICAgICAgICAg
ICAgY29ubi5jbG9zZSgpCisgICAgZGVmIF9oYXNfdW5yZWFkX2RhdGEoc2VsZik6CisgICAgICAg
IHJldHVybiBzZWxmLl9jb25uIGFuZCBzZWxmLl9jb25uLnNvY2sgYW5kIHNlbGVjdC5zZWxlY3Qo
W3NlbGYuX2Nvbm4uc29ja10sIFtdLCBbXSwgMClbMF0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0L2FuZHJvaWQucHkgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdC9hbmRy
b2lkLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjUxZGViNzFlMzE2NTM4MTQ4ZTA2YjE0NmJjYTc1NTVmYjdiMDQ2
ZGYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3dwdC9hbmRyb2lkLnB5CkBAIC0wLDAgKzEsMTgzIEBACitpbXBvcnQg
YXJncGFyc2UKK2ltcG9ydCBvcworaW1wb3J0IHBsYXRmb3JtCitpbXBvcnQgc2h1dGlsCitpbXBv
cnQgc3VicHJvY2VzcworCitpbXBvcnQgcmVxdWVzdHMKKworYW5kcm9pZF9kZXZpY2UgPSBOb25l
CisKK2hlcmUgPSBvcy5wYXRoLmFic3BhdGgob3MucGF0aC5kaXJuYW1lKF9fZmlsZV9fKSkKK3dw
dF9yb290ID0gb3MucGF0aC5hYnNwYXRoKG9zLnBhdGguam9pbihoZXJlLCBvcy5wYXJkaXIsIG9z
LnBhcmRpcikpCisKKworZGVmIGRvX2RlbGF5ZWRfaW1wb3J0cygpOgorICAgIGdsb2JhbCBhbmRy
b2lkX2RldmljZQorICAgIGZyb20gbW96cnVubmVyLmRldmljZXMgaW1wb3J0IGFuZHJvaWRfZGV2
aWNlCisgICAgYW5kcm9pZF9kZXZpY2UuVE9PTFRPT0xfUEFUSCA9IG9zLnBhdGguam9pbihvcy5w
YXRoLmRpcm5hbWUoX19maWxlX18pLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgb3MucGFyZGlyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgInRoaXJkX3BhcnR5IiwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICJ0b29sdG9vbCIsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAidG9vbHRvb2wucHkiKQorCisKK2RlZiBnZXRf
cGFyc2VyX2luc3RhbGwoKToKKyAgICBwYXJzZXIgPSBhcmdwYXJzZS5Bcmd1bWVudFBhcnNlcigp
CisgICAgcGFyc2VyLmFkZF9hcmd1bWVudCgiLS1yZWluc3RhbGwiLCBhY3Rpb249InN0b3JlX3Ry
dWUiLCBkZWZhdWx0PUZhbHNlLAorICAgICAgICAgICAgICAgICAgICAgICAgaGVscD0iRm9yY2Ug
cmVpbnN0YWxsIGV2ZW4gaWYgdGhlIGVtdWxhdG9yIGFscmVhZHkgZXhpc3RzIikKKyAgICByZXR1
cm4gcGFyc2VyCisKKworZGVmIGdldF9wYXJzZXJfc3RhcnQoKToKKyAgICByZXR1cm4gZ2V0X3Bh
cnNlcl9pbnN0YWxsKCkKKworCitkZWYgZ2V0X3Nka19wYXRoKGRlc3QpOgorICAgIGlmIGRlc3Qg
aXMgTm9uZToKKyAgICAgICAgIyBvcy5nZXRjd2QoKSBkb2Vzbid0IGluY2x1ZGUgdGhlIHZlbnYg
cGF0aAorICAgICAgICBkZXN0ID0gb3MucGF0aC5qb2luKHdwdF9yb290LCAiX3ZlbnYiKQorICAg
IGRlc3QgPSBvcy5wYXRoLmpvaW4oZGVzdCwgJ2FuZHJvaWQtc2RrJykKKyAgICByZXR1cm4gb3Mu
cGF0aC5hYnNwYXRoKG9zLmVudmlyb24uZ2V0KCdBTkRST0lEX1NES19QQVRIJywgZGVzdCkpCisK
KworZGVmIHVuaW5zdGFsbF9zZGsoZGVzdD1Ob25lKToKKyAgICBwYXRoID0gZ2V0X3Nka19wYXRo
KGRlc3QpCisgICAgaWYgb3MucGF0aC5leGlzdHMocGF0aCkgYW5kIG9zLnBhdGguaXNkaXIocGF0
aCk6CisgICAgICAgIHNodXRpbC5ybXRyZWUocGF0aCkKKworCitkZWYgaW5zdGFsbF9zZGsobG9n
Z2VyLCBkZXN0PU5vbmUpOgorICAgIHNka19wYXRoID0gZ2V0X3Nka19wYXRoKGRlc3QpCisgICAg
aWYgb3MucGF0aC5pc2RpcihzZGtfcGF0aCk6CisgICAgICAgIGxvZ2dlci5pbmZvKCJVc2luZyBT
REsgaW5zdGFsbGVkIGF0ICVzIiAlIHNka19wYXRoKQorICAgICAgICByZXR1cm4gc2RrX3BhdGgs
IEZhbHNlCisKKyAgICBpZiBub3Qgb3MucGF0aC5leGlzdHMoc2RrX3BhdGgpOgorICAgICAgICBv
cy5tYWtlZGlycyhzZGtfcGF0aCkKKworICAgIG9zX25hbWUgPSBwbGF0Zm9ybS5zeXN0ZW0oKS5s
b3dlcigpCisgICAgaWYgb3NfbmFtZSBub3QgaW4gWyJkYXJ3aW4iLCAibGludXgiLCAid2luZG93
cyJdOgorICAgICAgICBsb2dnZXIuY3JpdGljYWwoIlVuc3VwcG9ydGVkIHBsYXRmb3JtICVzIiAl
IG9zX25hbWUpCisgICAgICAgIHJhaXNlIE5vdEltcGxlbWVudGVkRXJyb3IKKworICAgIG9zX25h
bWUgPSAnZGFyd2luJyBpZiBvc19uYW1lID09ICdtYWNvc3gnIGVsc2Ugb3NfbmFtZQorICAgICMg
VE9ETzogZWl0aGVyIGFsd2F5cyB1c2UgdGhlIGxhdGVzdCB2ZXJzaW9uIG9yIGhhdmUgc29tZSB3
YXkgdG8KKyAgICAjIGNvbmZpZ3VyZSBhIHBlci1wcm9kdWN0IHZlcnNpb24gaWYgdGhlcmUgYXJl
IHN0cm9uZyByZXF1aXJlbWVudHMKKyAgICAjIHRvIHVzZSBhIHNwZWNpZmljIHZlcnNpb24uCisg
ICAgdXJsID0gJ2h0dHBzOi8vZGwuZ29vZ2xlLmNvbS9hbmRyb2lkL3JlcG9zaXRvcnkvc2RrLXRv
b2xzLSVzLTQzMzM3OTYuemlwJyAlIChvc19uYW1lLCkKKworICAgIGxvZ2dlci5pbmZvKCJHZXR0
aW5nIFNESyBmcm9tICVzIiAlIHVybCkKKyAgICB0ZW1wX3BhdGggPSBvcy5wYXRoLmpvaW4oc2Rr
X3BhdGgsIHVybC5yc3BsaXQoIi8iLCAxKVsxXSkKKyAgICB0cnk6CisgICAgICAgIHdpdGggb3Bl
bih0ZW1wX3BhdGgsICJ3YiIpIGFzIGY6CisgICAgICAgICAgICB3aXRoIHJlcXVlc3RzLmdldCh1
cmwsIHN0cmVhbT1UcnVlKSBhcyByZXNwOgorICAgICAgICAgICAgICAgIHNodXRpbC5jb3B5Zmls
ZW9iaihyZXNwLnJhdywgZikKKworICAgICAgICAjIFB5dGhvbidzIHppcGZpbGUgbW9kdWxlIGRv
ZXNuJ3Qgc2VlbSB0byB3b3JrIGhlcmUKKyAgICAgICAgc3VicHJvY2Vzcy5jaGVja19jYWxsKFsi
dW56aXAiLCB0ZW1wX3BhdGhdLCBjd2Q9c2RrX3BhdGgpCisgICAgZmluYWxseToKKyAgICAgICAg
b3MudW5saW5rKHRlbXBfcGF0aCkKKworICAgIHJldHVybiBzZGtfcGF0aCwgVHJ1ZQorCisKK2Rl
ZiBpbnN0YWxsX2FuZHJvaWRfcGFja2FnZXMobG9nZ2VyLCBzZGtfcGF0aCwgbm9fcHJvbXB0PUZh
bHNlKToKKyAgICBzZGtfbWFuYWdlcl9wYXRoID0gb3MucGF0aC5qb2luKHNka19wYXRoLCAidG9v
bHMiLCAiYmluIiwgInNka21hbmFnZXIiKQorICAgIGlmIG5vdCBvcy5wYXRoLmV4aXN0cyhzZGtf
bWFuYWdlcl9wYXRoKToKKyAgICAgICAgcmFpc2UgT1NFcnJvcigiQ2FuJ3QgZmluZCBzZGttYW5h
Z2VyIGF0ICVzIiAlIHNka19tYW5hZ2VyX3BhdGgpCisKKyAgICAjVE9ETzogTm90IHN1cmUgd2hh
dCdzIHJlYWxseSBuZWVkZWQgaGVyZQorICAgIHBhY2thZ2VzID0gWyJwbGF0Zm9ybS10b29scyIs
CisgICAgICAgICAgICAgICAgImJ1aWxkLXRvb2xzOzI4LjAuMyIsCisgICAgICAgICAgICAgICAg
InBsYXRmb3JtczthbmRyb2lkLTI4IiwKKyAgICAgICAgICAgICAgICAiZW11bGF0b3IiXQorCisg
ICAgIyBUT0RPOiBtYWtlIHRoaXMgd29yayBub24taW50ZXJuYWN0aXZlbHkKKyAgICBsb2dnZXIu
aW5mbygiSW5zdGFsbGluZyBTREsgcGFja2FnZXMiKQorICAgIGNtZCA9IFtzZGtfbWFuYWdlcl9w
YXRoXSArIHBhY2thZ2VzCisKKyAgICBwcm9jID0gc3VicHJvY2Vzcy5Qb3BlbihjbWQsIHN0ZGlu
PXN1YnByb2Nlc3MuUElQRSkKKyAgICBpZiBub19wcm9tcHQ6CisgICAgICAgIGRhdGEgPSAiWVxu
IiAqIDEwMCBpZiBub19wcm9tcHQgZWxzZSBOb25lCisgICAgICAgIHByb2MuY29tbXVuaWNhdGUo
ZGF0YSkKKyAgICBlbHNlOgorICAgICAgICBwcm9jLndhaXQoKQorICAgIGlmIHByb2MucmV0dXJu
Y29kZSAhPSAwOgorICAgICAgICByYWlzZSBzdWJwcm9jZXNzLkNhbGxlZFByb2Nlc3NFcnJvcihw
cm9jLnJldHVybmNvZGUsIGNtZCkKKworCitkZWYgZ2V0X2VtdWxhdG9yKHNka19wYXRoKToKKyAg
ICBpZiBhbmRyb2lkX2RldmljZSBpcyBOb25lOgorICAgICAgICBkb19kZWxheWVkX2ltcG9ydHMo
KQorICAgIGlmICJBTkRST0lEX1NES19ST09UIiBub3QgaW4gb3MuZW52aXJvbjoKKyAgICAgICAg
b3MuZW52aXJvblsiQU5EUk9JRF9TREtfUk9PVCJdID0gc2RrX3BhdGgKKyAgICBzdWJzdHMgPSB7
InRvcF9zcmNkaXIiOiB3cHRfcm9vdCwgIlRBUkdFVF9DUFUiOiAieDg2In0KKyAgICBlbXVsYXRv
ciA9IGFuZHJvaWRfZGV2aWNlLkFuZHJvaWRFbXVsYXRvcigiKiIsIHN1YnN0cz1zdWJzdHMpCisg
ICAgZW11bGF0b3IuZW11bGF0b3JfcGF0aCA9IG9zLnBhdGguam9pbihzZGtfcGF0aCwgImVtdWxh
dG9yIiwgImVtdWxhdG9yIikKKyAgICBlbXVsYXRvci5hdmRfaW5mby50b29sdG9vbF9tYW5pZmVz
dCA9IG9zLnBhdGguam9pbih3cHRfcm9vdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAidG9vbHMiLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ3cHQiLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJtYWNoLWVtdWxhdG9yLm1h
bmlmZXN0IikKKyAgICByZXR1cm4gZW11bGF0b3IKKworCitkZWYgaW5zdGFsbChsb2dnZXIsIHJl
aW5zdGFsbD1GYWxzZSwgbm9fcHJvbXB0PUZhbHNlKToKKyAgICBpZiByZWluc3RhbGw6CisgICAg
ICAgIHVuaW5zdGFsbF9zZGsoKQorCisgICAgZGVzdCwgbmV3X2luc3RhbGwgPSBpbnN0YWxsX3Nk
ayhsb2dnZXIpCisgICAgaWYgbmV3X2luc3RhbGw6CisgICAgICAgIGluc3RhbGxfYW5kcm9pZF9w
YWNrYWdlcyhsb2dnZXIsIGRlc3QsIG5vX3Byb21wdCkKKworICAgIGlmICJBTkRST0lEX1NES19S
T09UIiBub3QgaW4gb3MuZW52aXJvbjoKKyAgICAgICAgb3MuZW52aXJvblsiQU5EUk9JRF9TREtf
Uk9PVCJdID0gZGVzdAorCisgICAgZW11bGF0b3IgPSBnZXRfZW11bGF0b3IoZGVzdCkKKyAgICBl
bXVsYXRvci51cGRhdGVfYXZkKCkKKyAgICByZXR1cm4gZW11bGF0b3IKKworCitkZWYgc3RhcnQo
bG9nZ2VyLCBlbXVsYXRvcj1Ob25lLCByZWluc3RhbGw9RmFsc2UpOgorICAgIGlmIHJlaW5zdGFs
bDoKKyAgICAgICAgaW5zdGFsbChyZWluc3RhbGw9VHJ1ZSkKKworICAgIHNka19wYXRoID0gZ2V0
X3Nka19wYXRoKE5vbmUpCisKKyAgICBpZiBlbXVsYXRvciBpcyBOb25lOgorICAgICAgICBlbXVs
YXRvciA9IGdldF9lbXVsYXRvcihzZGtfcGF0aCkKKworICAgIGlmIG5vdCBlbXVsYXRvci5jaGVj
a19hdmQoKToKKyAgICAgICAgZW11bGF0b3IudXBkYXRlX2F2ZCgpCisKKyAgICBlbXVsYXRvci5z
dGFydCgpCisgICAgZW11bGF0b3Iud2FpdF9mb3Jfc3RhcnQoKQorICAgIHJldHVybiBlbXVsYXRv
cgorCisKK2RlZiBydW5faW5zdGFsbCh2ZW52LCAqKmt3YXJncyk6CisgICAgdHJ5OgorICAgICAg
ICBpbXBvcnQgbG9nZ2luZworICAgICAgICBsb2dnaW5nLmJhc2ljQ29uZmlnKCkKKyAgICAgICAg
bG9nZ2VyID0gbG9nZ2luZy5nZXRMb2dnZXIoKQorCisgICAgICAgIGluc3RhbGwobG9nZ2VyLCAq
Kmt3YXJncykKKyAgICBleGNlcHQgRXhjZXB0aW9uOgorICAgICAgICBpbXBvcnQgdHJhY2ViYWNr
CisgICAgICAgIHRyYWNlYmFjay5wcmludF9leGMoKQorICAgICAgICBpbXBvcnQgcGRiCisgICAg
ICAgIHBkYi5wb3N0X21vcnRlbSgpCisKKworZGVmIHJ1bl9zdGFydCh2ZW52LCAqKmt3YXJncyk6
CisgICAgdHJ5OgorICAgICAgICBpbXBvcnQgbG9nZ2luZworICAgICAgICBsb2dnaW5nLmJhc2lj
Q29uZmlnKCkKKyAgICAgICAgbG9nZ2VyID0gbG9nZ2luZy5nZXRMb2dnZXIoKQorCisgICAgICAg
IHN0YXJ0KGxvZ2dlciwgKiprd2FyZ3MpCisgICAgZXhjZXB0IEV4Y2VwdGlvbjoKKyAgICAgICAg
aW1wb3J0IHRyYWNlYmFjaworICAgICAgICB0cmFjZWJhY2sucHJpbnRfZXhjKCkKKyAgICAgICAg
aW1wb3J0IHBkYgorICAgICAgICBwZGIucG9zdF9tb3J0ZW0oKQpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHQvYnJvd3Nlci5w
eSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0
L2Jyb3dzZXIucHkKaW5kZXggOTgzNGU1ZDUzZjNhYjc1MjJmNjFiMTJkMTRhYTI3M2FkODlhZDQz
OC4uYTk0ZDU1MDljYzhiYTFiZmNjNGNiY2VhZmQ5ZjUxMWE0Zjk4MDRhYiAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHQvYnJv
d3Nlci5weQorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3dwdC9icm93c2VyLnB5CkBAIC0xLDM3ICsxLDY5IEBACi1pbXBvcnQgbG9nZ2luZwog
aW1wb3J0IG9zCiBpbXBvcnQgcGxhdGZvcm0KIGltcG9ydCByZQogaW1wb3J0IHNodXRpbAogaW1w
b3J0IHN0YXQKK2ltcG9ydCBlcnJubwogaW1wb3J0IHN1YnByb2Nlc3MKIGltcG9ydCB0ZW1wZmls
ZQoraW1wb3J0IHVybHBhcnNlCiBmcm9tIGFiYyBpbXBvcnQgQUJDTWV0YSwgYWJzdHJhY3RtZXRo
b2QKIGZyb20gZGF0ZXRpbWUgaW1wb3J0IGRhdGV0aW1lLCB0aW1lZGVsdGEKIGZyb20gZGlzdHV0
aWxzLnNwYXduIGltcG9ydCBmaW5kX2V4ZWN1dGFibGUKIAotZnJvbSB1dGlscyBpbXBvcnQgY2Fs
bCwgZ2V0LCB1bnRhciwgdW56aXAKK2ltcG9ydCByZXF1ZXN0cwogCi1sb2dnZXIgPSBsb2dnaW5n
LmdldExvZ2dlcihfX25hbWVfXykKK2Zyb20gdXRpbHMgaW1wb3J0IGNhbGwsIGdldCwgdW50YXIs
IHVuemlwCiAKIHVuYW1lID0gcGxhdGZvcm0udW5hbWUoKQogCisjIHRoZSByb290VXJsIGZvciB0
aGUgZmlyZWZveC1jaSBkZXBsb3ltZW50IG9mIFRhc2tjbHVzdGVyCisjIChhZnRlciBOb3ZlbWJl
ciA5LCBodHRwczovL2ZpcmVmb3gtY2ktdGMuc2VydmljZXMubW96aWxsYS5jb20vKQorRklSRUZP
WF9DSV9ST09UX1VSTCA9ICdodHRwczovL3Rhc2tjbHVzdGVyLm5ldCcKKworCitkZWYgX2dldF9m
aWxldmVyc2lvbihiaW5hcnksIGxvZ2dlcj1Ob25lKToKKyAgICBjb21tYW5kID0gIihHZXQtSXRl
bSAnJXMnKS5WZXJzaW9uSW5mby5GaWxlVmVyc2lvbiIgJSBiaW5hcnkucmVwbGFjZSgiJyIsICIn
JyIpCisgICAgdHJ5OgorICAgICAgICByZXR1cm4gY2FsbCgicG93ZXJzaGVsbC5leGUiLCBjb21t
YW5kKS5zdHJpcCgpCisgICAgZXhjZXB0IChzdWJwcm9jZXNzLkNhbGxlZFByb2Nlc3NFcnJvciwg
T1NFcnJvcik6CisgICAgICAgIGlmIGxvZ2dlciBpcyBub3QgTm9uZToKKyAgICAgICAgICAgIGxv
Z2dlci53YXJuaW5nKCJGYWlsZWQgdG8gY2FsbCAlcyBpbiBQb3dlclNoZWxsIiAlIGNvbW1hbmQp
CisgICAgICAgIHJldHVybiBOb25lCisKKworZGVmIGhhbmRsZV9yZW1vdmVfcmVhZG9ubHkoZnVu
YywgcGF0aCwgZXhjKToKKyAgICBleGN2YWx1ZSA9IGV4Y1sxXQorICAgIGlmIGZ1bmMgaW4gKG9z
LnJtZGlyLCBvcy5yZW1vdmUpIGFuZCBleGN2YWx1ZS5lcnJubyA9PSBlcnJuby5FQUNDRVM6Cisg
ICAgICAgIG9zLmNobW9kKHBhdGgsIHN0YXQuU19JUldYVSB8IHN0YXQuU19JUldYRyB8IHN0YXQu
U19JUldYTykgICMgMDc3NworICAgICAgICBmdW5jKHBhdGgpCisgICAgZWxzZToKKyAgICAgICAg
cmFpc2UKKwogCiBjbGFzcyBCcm93c2VyKG9iamVjdCk6CiAgICAgX19tZXRhY2xhc3NfXyA9IEFC
Q01ldGEKIAorICAgIGRlZiBfX2luaXRfXyhzZWxmLCBsb2dnZXIpOgorICAgICAgICBzZWxmLmxv
Z2dlciA9IGxvZ2dlcgorCisgICAgQGFic3RyYWN0bWV0aG9kCisgICAgZGVmIGRvd25sb2FkKHNl
bGYsIGRlc3Q9Tm9uZSwgY2hhbm5lbD1Ob25lKToKKyAgICAgICAgIiIiRG93bmxvYWQgYSBwYWNr
YWdlIG9yIGluc3RhbGxlciBmb3IgdGhlIGJyb3dzZXIiIiIKKyAgICAgICAgcmV0dXJuIE5vdElt
cGxlbWVudGVkCisKICAgICBAYWJzdHJhY3RtZXRob2QKICAgICBkZWYgaW5zdGFsbChzZWxmLCBk
ZXN0PU5vbmUpOgogICAgICAgICAiIiJJbnN0YWxsIHRoZSBicm93c2VyLiIiIgogICAgICAgICBy
ZXR1cm4gTm90SW1wbGVtZW50ZWQKIAogICAgIEBhYnN0cmFjdG1ldGhvZAotICAgIGRlZiBpbnN0
YWxsX3dlYmRyaXZlcihzZWxmLCBkZXN0PU5vbmUpOgorICAgIGRlZiBpbnN0YWxsX3dlYmRyaXZl
cihzZWxmLCBkZXN0PU5vbmUsIGNoYW5uZWw9Tm9uZSwgYnJvd3Nlcl9iaW5hcnk9Tm9uZSk6CiAg
ICAgICAgICIiIkluc3RhbGwgdGhlIFdlYkRyaXZlciBpbXBsZW1lbnRhdGlvbiBmb3IgdGhpcyBi
cm93c2VyLiIiIgogICAgICAgICByZXR1cm4gTm90SW1wbGVtZW50ZWQKIAogICAgIEBhYnN0cmFj
dG1ldGhvZAotICAgIGRlZiBmaW5kX2JpbmFyeShzZWxmKToKKyAgICBkZWYgZmluZF9iaW5hcnko
c2VsZiwgdmVudl9wYXRoPU5vbmUsIGNoYW5uZWw9Tm9uZSk6CiAgICAgICAgICIiIkZpbmQgdGhl
IGJpbmFyeSBvZiB0aGUgYnJvd3Nlci4KIAogICAgICAgICBJZiB0aGUgV2ViRHJpdmVyIGZvciB0
aGUgYnJvd3NlciBpcyBhYmxlIHRvIGZpbmQgdGhlIGJpbmFyeSBpdHNlbGYsIHRoaXMKQEAgLTQx
LDEyICs3MywxMiBAQCBjbGFzcyBCcm93c2VyKG9iamVjdCk6CiAgICAgICAgIHJldHVybiBOb3RJ
bXBsZW1lbnRlZAogCiAgICAgQGFic3RyYWN0bWV0aG9kCi0gICAgZGVmIGZpbmRfd2ViZHJpdmVy
KHNlbGYpOgorICAgIGRlZiBmaW5kX3dlYmRyaXZlcihzZWxmLCBjaGFubmVsPU5vbmUpOgogICAg
ICAgICAiIiJGaW5kIHRoZSBiaW5hcnkgb2YgdGhlIFdlYkRyaXZlci4iIiIKICAgICAgICAgcmV0
dXJuIE5vdEltcGxlbWVudGVkCiAKICAgICBAYWJzdHJhY3RtZXRob2QKLSAgICBkZWYgdmVyc2lv
bihzZWxmLCBiaW5hcnk9Tm9uZSk6CisgICAgZGVmIHZlcnNpb24oc2VsZiwgYmluYXJ5PU5vbmUs
IHdlYmRyaXZlcl9iaW5hcnk9Tm9uZSk6CiAgICAgICAgICIiIlJldHJpZXZlIHRoZSByZWxlYXNl
IHZlcnNpb24gb2YgdGhlIGluc3RhbGxlZCBicm93c2VyLiIiIgogICAgICAgICByZXR1cm4gTm90
SW1wbGVtZW50ZWQKIApAQCAtNjQsOTcgKzk2LDE2MCBAQCBjbGFzcyBGaXJlZm94KEJyb3dzZXIp
OgogCiAgICAgcHJvZHVjdCA9ICJmaXJlZm94IgogICAgIGJpbmFyeSA9ICJicm93c2Vycy9maXJl
Zm94L2ZpcmVmb3giCi0gICAgcGxhdGZvcm1faW5pID0gImJyb3dzZXJzL2ZpcmVmb3gvcGxhdGZv
cm0uaW5pIgogICAgIHJlcXVpcmVtZW50cyA9ICJyZXF1aXJlbWVudHNfZmlyZWZveC50eHQiCiAK
LSAgICBkZWYgcGxhdGZvcm1fc3RyaW5nX2dlY2tvZHJpdmVyKHNlbGYpOgotICAgICAgICBwbGF0
Zm9ybSA9IHsKLSAgICAgICAgICAgICJMaW51eCI6ICJsaW51eCIsCi0gICAgICAgICAgICAiV2lu
ZG93cyI6ICJ3aW4iLAotICAgICAgICAgICAgIkRhcndpbiI6ICJtYWNvcyIKLSAgICAgICAgfS5n
ZXQodW5hbWVbMF0pCisgICAgcGxhdGZvcm0gPSB7CisgICAgICAgICJMaW51eCI6ICJsaW51eCIs
CisgICAgICAgICJXaW5kb3dzIjogIndpbiIsCisgICAgICAgICJEYXJ3aW4iOiAibWFjb3MiCisg
ICAgfS5nZXQodW5hbWVbMF0pCiAKLSAgICAgICAgaWYgcGxhdGZvcm0gaXMgTm9uZToKKyAgICBh
cHBsaWNhdGlvbl9uYW1lID0geworICAgICAgICAic3RhYmxlIjogIkZpcmVmb3guYXBwIiwKKyAg
ICAgICAgImJldGEiOiAiRmlyZWZveC5hcHAiLAorICAgICAgICAibmlnaHRseSI6ICJGaXJlZm94
IE5pZ2h0bHkuYXBwIgorICAgIH0KKworICAgIGRlZiBwbGF0Zm9ybV9zdHJpbmdfZ2Vja29kcml2
ZXIoc2VsZik6CisgICAgICAgIGlmIHNlbGYucGxhdGZvcm0gaXMgTm9uZToKICAgICAgICAgICAg
IHJhaXNlIFZhbHVlRXJyb3IoIlVuYWJsZSB0byBjb25zdHJ1Y3QgYSB2YWxpZCBHZWNrb2RyaXZl
ciBwYWNrYWdlIG5hbWUgZm9yIGN1cnJlbnQgcGxhdGZvcm0iKQogCi0gICAgICAgIGlmIHBsYXRm
b3JtIGluICgibGludXgiLCAid2luIik6CisgICAgICAgIGlmIHNlbGYucGxhdGZvcm0gaW4gKCJs
aW51eCIsICJ3aW4iKToKICAgICAgICAgICAgIGJpdHMgPSAiNjQiIGlmIHVuYW1lWzRdID09ICJ4
ODZfNjQiIGVsc2UgIjMyIgogICAgICAgICBlbHNlOgogICAgICAgICAgICAgYml0cyA9ICIiCiAK
LSAgICAgICAgcmV0dXJuICIlcyVzIiAlIChwbGF0Zm9ybSwgYml0cykKKyAgICAgICAgcmV0dXJu
ICIlcyVzIiAlIChzZWxmLnBsYXRmb3JtLCBiaXRzKQogCi0gICAgZGVmIGluc3RhbGwoc2VsZiwg
ZGVzdD1Ob25lKToKLSAgICAgICAgIiIiSW5zdGFsbCBGaXJlZm94LiIiIgorICAgIGRlZiBfZ2V0
X2Rlc3Qoc2VsZiwgZGVzdCwgY2hhbm5lbCk6CisgICAgICAgIGlmIGRlc3QgaXMgTm9uZToKKyAg
ICAgICAgICAgICMgb3MuZ2V0Y3dkKCkgZG9lc24ndCBpbmNsdWRlIHRoZSB2ZW52IHBhdGgKKyAg
ICAgICAgICAgIGRlc3QgPSBvcy5wYXRoLmpvaW4ob3MuZ2V0Y3dkKCksICJfdmVudiIpCiAKLSAg
ICAgICAgZnJvbSBtb3pkb3dubG9hZCBpbXBvcnQgRmFjdG9yeVNjcmFwZXIKLSAgICAgICAgaW1w
b3J0IG1vemluc3RhbGwKKyAgICAgICAgZGVzdCA9IG9zLnBhdGguam9pbihkZXN0LCAiYnJvd3Nl
cnMiLCBjaGFubmVsKQogCi0gICAgICAgIHBsYXRmb3JtID0gewotICAgICAgICAgICAgIkxpbnV4
IjogImxpbnV4IiwKLSAgICAgICAgICAgICJXaW5kb3dzIjogIndpbiIsCi0gICAgICAgICAgICAi
RGFyd2luIjogIm1hYyIKLSAgICAgICAgfS5nZXQodW5hbWVbMF0pCisgICAgICAgIGlmIG5vdCBv
cy5wYXRoLmV4aXN0cyhkZXN0KToKKyAgICAgICAgICAgIG9zLm1ha2VkaXJzKGRlc3QpCiAKLSAg
ICAgICAgaWYgcGxhdGZvcm0gaXMgTm9uZToKLSAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3Io
IlVuYWJsZSB0byBjb25zdHJ1Y3QgYSB2YWxpZCBGaXJlZm94IHBhY2thZ2UgbmFtZSBmb3IgY3Vy
cmVudCBwbGF0Zm9ybSIpCisgICAgICAgIHJldHVybiBkZXN0CisKKyAgICBkZWYgZG93bmxvYWQo
c2VsZiwgZGVzdD1Ob25lLCBjaGFubmVsPSJuaWdodGx5Iik6CisgICAgICAgIHByb2R1Y3QgPSB7
CisgICAgICAgICAgICAibmlnaHRseSI6ICJmaXJlZm94LW5pZ2h0bHktbGF0ZXN0LXNzbCIsCisg
ICAgICAgICAgICAiYmV0YSI6ICJmaXJlZm94LWJldGEtbGF0ZXN0LXNzbCIsCisgICAgICAgICAg
ICAic3RhYmxlIjogImZpcmVmb3gtbGF0ZXN0LXNzbCIKKyAgICAgICAgfQorCisgICAgICAgIG9z
X2J1aWxkcyA9IHsKKyAgICAgICAgICAgICgibGludXgiLCAieDg2Iik6ICJsaW51eCIsCisgICAg
ICAgICAgICAoImxpbnV4IiwgIng4Nl82NCIpOiAibGludXg2NCIsCisgICAgICAgICAgICAoIndp
biIsICJ4ODYiKTogIndpbiIsCisgICAgICAgICAgICAoIndpbiIsICJBTUQ2NCIpOiAid2luNjQi
LAorICAgICAgICAgICAgKCJtYWNvcyIsICJ4ODZfNjQiKTogIm9zeCIsCisgICAgICAgIH0KKyAg
ICAgICAgb3Nfa2V5ID0gKHNlbGYucGxhdGZvcm0sIHVuYW1lWzRdKQogCiAgICAgICAgIGlmIGRl
c3QgaXMgTm9uZToKLSAgICAgICAgICAgICMgb3MuZ2V0Y3dkKCkgZG9lc24ndCBpbmNsdWRlIHRo
ZSB2ZW52IHBhdGgKLSAgICAgICAgICAgIGRlc3QgPSBvcy5wYXRoLmpvaW4ob3MuZ2V0Y3dkKCks
ICJfdmVudiIpCisgICAgICAgICAgICBkZXN0ID0gc2VsZi5fZ2V0X2Rlc3QoTm9uZSwgY2hhbm5l
bCkKKworICAgICAgICBpZiBjaGFubmVsIG5vdCBpbiBwcm9kdWN0OgorICAgICAgICAgICAgcmFp
c2UgVmFsdWVFcnJvcigiVW5yZWNvZ25pc2VkIHJlbGVhc2UgY2hhbm5lbDogJXMiICUgY2hhbm5l
bCkKKworICAgICAgICBpZiBvc19rZXkgbm90IGluIG9zX2J1aWxkczoKKyAgICAgICAgICAgIHJh
aXNlIFZhbHVlRXJyb3IoIlVuc3VwcG9ydGVkIHBsYXRmb3JtOiAlcyAlcyIgJSBvc19rZXkpCisK
KyAgICAgICAgdXJsID0gImh0dHBzOi8vZG93bmxvYWQubW96aWxsYS5vcmcvP3Byb2R1Y3Q9JXMm
b3M9JXMmbGFuZz1lbi1VUyIgJSAocHJvZHVjdFtjaGFubmVsXSwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgb3NfYnVpbGRzW29zX2tleV0pCisgICAgICAgIHNlbGYubG9nZ2VyLmluZm8oIkRvd25sb2Fk
aW5nIEZpcmVmb3ggZnJvbSAlcyIgJSB1cmwpCisgICAgICAgIHJlc3AgPSByZXF1ZXN0cy5nZXQo
dXJsKQorCisgICAgICAgIGZpbGVuYW1lID0gTm9uZQorCisgICAgICAgIGNvbnRlbnRfZGlzcG9z
aXRpb24gPSByZXNwLmhlYWRlcnMuZ2V0KCdjb250ZW50LWRpc3Bvc2l0aW9uJykKKyAgICAgICAg
aWYgY29udGVudF9kaXNwb3NpdGlvbjoKKyAgICAgICAgICAgIGZpbGVuYW1lcyA9IHJlLmZpbmRh
bGwoImZpbGVuYW1lPSguKykiLCBjb250ZW50X2Rpc3Bvc2l0aW9uKQorICAgICAgICAgICAgaWYg
ZmlsZW5hbWVzOgorICAgICAgICAgICAgICAgIGZpbGVuYW1lID0gZmlsZW5hbWVzWzBdCisKKyAg
ICAgICAgaWYgbm90IGZpbGVuYW1lOgorICAgICAgICAgICAgZmlsZW5hbWUgPSB1cmxwYXJzZS51
cmxzcGxpdChyZXNwLnVybCkucGF0aC5yc3BsaXQoIi8iLCAxKVsxXQogCi0gICAgICAgIGRlc3Qg
PSBvcy5wYXRoLmpvaW4oZGVzdCwgImJyb3dzZXJzIikKKyAgICAgICAgaWYgbm90IGZpbGVuYW1l
OgorICAgICAgICAgICAgZmlsZW5hbWUgPSAiZmlyZWZveC50YXIuYnoyIgogCi0gICAgICAgIGZp
bGVuYW1lID0gRmFjdG9yeVNjcmFwZXIoImRhaWx5IiwgYnJhbmNoPSJtb3ppbGxhLWNlbnRyYWwi
LCBkZXN0aW5hdGlvbj1kZXN0KS5kb3dubG9hZCgpCisgICAgICAgIGluc3RhbGxlcl9wYXRoID0g
b3MucGF0aC5qb2luKGRlc3QsIGZpbGVuYW1lKQorCisgICAgICAgIHdpdGggb3BlbihpbnN0YWxs
ZXJfcGF0aCwgIndiIikgYXMgZjoKKyAgICAgICAgICAgIGYud3JpdGUocmVzcC5jb250ZW50KQor
CisgICAgICAgIHJldHVybiBpbnN0YWxsZXJfcGF0aAorCisgICAgZGVmIGluc3RhbGwoc2VsZiwg
ZGVzdD1Ob25lLCBjaGFubmVsPSJuaWdodGx5Iik6CisgICAgICAgICIiIkluc3RhbGwgRmlyZWZv
eC4iIiIKKyAgICAgICAgaW1wb3J0IG1vemluc3RhbGwKKworICAgICAgICBkZXN0ID0gc2VsZi5f
Z2V0X2Rlc3QoZGVzdCwgY2hhbm5lbCkKKworICAgICAgICBmaWxlbmFtZSA9IG9zLnBhdGguYmFz
ZW5hbWUoZGVzdCkKKworICAgICAgICBpbnN0YWxsZXJfcGF0aCA9IHNlbGYuZG93bmxvYWQoZGVz
dCwgY2hhbm5lbCkKIAogICAgICAgICB0cnk6Ci0gICAgICAgICAgICBtb3ppbnN0YWxsLmluc3Rh
bGwoZmlsZW5hbWUsIGRlc3QpCisgICAgICAgICAgICBtb3ppbnN0YWxsLmluc3RhbGwoaW5zdGFs
bGVyX3BhdGgsIGRlc3QpCiAgICAgICAgIGV4Y2VwdCBtb3ppbnN0YWxsLm1vemluc3RhbGwuSW5z
dGFsbEVycm9yOgotICAgICAgICAgICAgaWYgcGxhdGZvcm0gPT0gIm1hYyIgYW5kIG9zLnBhdGgu
ZXhpc3RzKG9zLnBhdGguam9pbihkZXN0LCAiRmlyZWZveCBOaWdodGx5LmFwcCIpKToKKyAgICAg
ICAgICAgIGlmIHNlbGYucGxhdGZvcm0gPT0gIm1hY29zIiBhbmQgb3MucGF0aC5leGlzdHMob3Mu
cGF0aC5qb2luKGRlc3QsIHNlbGYuYXBwbGljYXRpb25fbmFtZS5nZXQoY2hhbm5lbCwgIkZpcmVm
b3ggTmlnaHRseS5hcHAiKSkpOgogICAgICAgICAgICAgICAgICMgbW96aW5zdGFsbCB3aWxsIGZh
aWwgaWYgbmlnaHRseSBpcyBhbHJlYWR5IGluc3RhbGxlZCBpbiB0aGUgdmVudiBiZWNhdXNlCiAg
ICAgICAgICAgICAgICAgIyBtYWMgaW5zdGFsbGF0aW9uIHVzZXMgc2h1dGlsLmNvcHlfdHJlZQot
ICAgICAgICAgICAgICAgIG1vemluc3RhbGwudW5pbnN0YWxsKG9zLnBhdGguam9pbihkZXN0LCAi
RmlyZWZveCBOaWdodGx5LmFwcCIpKQorICAgICAgICAgICAgICAgIG1vemluc3RhbGwudW5pbnN0
YWxsKG9zLnBhdGguam9pbihkZXN0LCBzZWxmLmFwcGxpY2F0aW9uX25hbWUuZ2V0KGNoYW5uZWws
ICJGaXJlZm94IE5pZ2h0bHkuYXBwIikpKQogICAgICAgICAgICAgICAgIG1vemluc3RhbGwuaW5z
dGFsbChmaWxlbmFtZSwgZGVzdCkKICAgICAgICAgICAgIGVsc2U6CiAgICAgICAgICAgICAgICAg
cmFpc2UKIAotICAgICAgICBvcy5yZW1vdmUoZmlsZW5hbWUpCisgICAgICAgIG9zLnJlbW92ZShp
bnN0YWxsZXJfcGF0aCkKICAgICAgICAgcmV0dXJuIHNlbGYuZmluZF9iaW5hcnlfcGF0aChkZXN0
KQogCi0gICAgZGVmIGZpbmRfYmluYXJ5X3BhdGgoc2VsZiwgcGF0aD1Ob25lKToKKyAgICBkZWYg
ZmluZF9iaW5hcnlfcGF0aChzZWxmLCBwYXRoPU5vbmUsIGNoYW5uZWw9Im5pZ2h0bHkiKToKICAg
ICAgICAgIiIiTG9va3MgZm9yIHRoZSBmaXJlZm94IGJpbmFyeSBpbiB0aGUgdmlydHVhbCBlbnZp
cm9ubWVudCIiIgogCi0gICAgICAgIHBsYXRmb3JtID0gewotICAgICAgICAgICAgIkxpbnV4Ijog
ImxpbnV4IiwKLSAgICAgICAgICAgICJXaW5kb3dzIjogIndpbiIsCi0gICAgICAgICAgICAiRGFy
d2luIjogIm1hYyIKLSAgICAgICAgfS5nZXQodW5hbWVbMF0pCi0KICAgICAgICAgaWYgcGF0aCBp
cyBOb25lOgotICAgICAgICAgICAgI29zLmdldGN3ZCgpIGRvZXNuJ3QgaW5jbHVkZSB0aGUgdmVu
diBwYXRoCi0gICAgICAgICAgICBwYXRoID0gb3MucGF0aC5qb2luKG9zLmdldGN3ZCgpLCAiX3Zl
bnYiLCAiYnJvd3NlcnMiKQorICAgICAgICAgICAgIyBvcy5nZXRjd2QoKSBkb2Vzbid0IGluY2x1
ZGUgdGhlIHZlbnYgcGF0aAorICAgICAgICAgICAgcGF0aCA9IG9zLnBhdGguam9pbihvcy5nZXRj
d2QoKSwgIl92ZW52IiwgImJyb3dzZXJzIiwgY2hhbm5lbCkKIAogICAgICAgICBiaW5hcnkgPSBO
b25lCiAKLSAgICAgICAgaWYgcGxhdGZvcm0gPT0gImxpbnV4IjoKKyAgICAgICAgaWYgc2VsZi5w
bGF0Zm9ybSA9PSAibGludXgiOgogICAgICAgICAgICAgYmluYXJ5ID0gZmluZF9leGVjdXRhYmxl
KCJmaXJlZm94Iiwgb3MucGF0aC5qb2luKHBhdGgsICJmaXJlZm94IikpCi0gICAgICAgIGVsaWYg
cGxhdGZvcm0gPT0gIndpbiI6CisgICAgICAgIGVsaWYgc2VsZi5wbGF0Zm9ybSA9PSAid2luIjoK
ICAgICAgICAgICAgIGltcG9ydCBtb3ppbnN0YWxsCi0gICAgICAgICAgICBiaW5hcnkgPSBtb3pp
bnN0YWxsLmdldF9iaW5hcnkocGF0aCwgImZpcmVmb3giKQotICAgICAgICBlbGlmIHBsYXRmb3Jt
ID09ICJtYWMiOgotICAgICAgICAgICAgYmluYXJ5ID0gZmluZF9leGVjdXRhYmxlKCJmaXJlZm94
Iiwgb3MucGF0aC5qb2luKHBhdGgsICJGaXJlZm94IE5pZ2h0bHkuYXBwIiwgIkNvbnRlbnRzIiwg
Ik1hY09TIikpCisgICAgICAgICAgICB0cnk6CisgICAgICAgICAgICAgICAgYmluYXJ5ID0gbW96
aW5zdGFsbC5nZXRfYmluYXJ5KHBhdGgsICJmaXJlZm94IikKKyAgICAgICAgICAgIGV4Y2VwdCBt
b3ppbnN0YWxsLkludmFsaWRCaW5hcnk6CisgICAgICAgICAgICAgICAgIyBpZ25vcmUgdGhlIGNh
c2Ugd2hlcmUgd2UgZmFpbCB0byBnZXQgYSBiaW5hcnkKKyAgICAgICAgICAgICAgICBwYXNzCisg
ICAgICAgIGVsaWYgc2VsZi5wbGF0Zm9ybSA9PSAibWFjb3MiOgorICAgICAgICAgICAgYmluYXJ5
ID0gZmluZF9leGVjdXRhYmxlKCJmaXJlZm94Iiwgb3MucGF0aC5qb2luKHBhdGgsIHNlbGYuYXBw
bGljYXRpb25fbmFtZS5nZXQoY2hhbm5lbCwgIkZpcmVmb3ggTmlnaHRseS5hcHAiKSwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAi
Q29udGVudHMiLCAiTWFjT1MiKSkKIAogICAgICAgICByZXR1cm4gYmluYXJ5CiAKLSAgICBkZWYg
ZmluZF9iaW5hcnkoc2VsZiwgdmVudl9wYXRoPU5vbmUpOgorICAgIGRlZiBmaW5kX2JpbmFyeShz
ZWxmLCB2ZW52X3BhdGg9Tm9uZSwgY2hhbm5lbD0ibmlnaHRseSIpOgogICAgICAgICBpZiB2ZW52
X3BhdGggaXMgTm9uZToKICAgICAgICAgICAgIHZlbnZfcGF0aCA9IG9zLnBhdGguam9pbihvcy5n
ZXRjd2QoKSwgIl92ZW52IikKIAotICAgICAgICBiaW5hcnkgPSBzZWxmLmZpbmRfYmluYXJ5X3Bh
dGgob3MucGF0aC5qb2luKHZlbnZfcGF0aCwgImJyb3dzZXJzIikpCisgICAgICAgIHBhdGggPSBv
cy5wYXRoLmpvaW4odmVudl9wYXRoLCAiYnJvd3NlcnMiLCBjaGFubmVsKQorICAgICAgICBiaW5h
cnkgPSBzZWxmLmZpbmRfYmluYXJ5X3BhdGgocGF0aCwgY2hhbm5lbCkKKworICAgICAgICBpZiBu
b3QgYmluYXJ5IGFuZCBzZWxmLnBsYXRmb3JtID09ICJ3aW4iOgorICAgICAgICAgICAgd2lucGF0
aHMgPSBbb3MucGF0aC5leHBhbmR2YXJzKCIkU1lTVEVNRFJJVkVcXFByb2dyYW0gRmlsZXNcXE1v
emlsbGEgRmlyZWZveCIpLAorICAgICAgICAgICAgICAgICAgICAgICAgb3MucGF0aC5leHBhbmR2
YXJzKCIkU1lTVEVNRFJJVkVcXFByb2dyYW0gRmlsZXMgKHg4NilcXE1vemlsbGEgRmlyZWZveCIp
XQorICAgICAgICAgICAgZm9yIHdpbnBhdGggaW4gd2lucGF0aHM6CisgICAgICAgICAgICAgICAg
YmluYXJ5ID0gc2VsZi5maW5kX2JpbmFyeV9wYXRoKHdpbnBhdGgsIGNoYW5uZWwpCisgICAgICAg
ICAgICAgICAgaWYgYmluYXJ5IGlzIG5vdCBOb25lOgorICAgICAgICAgICAgICAgICAgICBicmVh
awogCi0gICAgICAgIGlmIG5vdCBiaW5hcnkgYW5kIHVuYW1lWzBdID09ICJEYXJ3aW4iOgotICAg
ICAgICAgICAgbWFjcGF0aHMgPSBbIi9BcHBsaWNhdGlvbnMvRmlyZWZveE5pZ2h0bHkuYXBwL0Nv
bnRlbnRzL01hY09TIiwKLSAgICAgICAgICAgICAgICAgICAgICAgIG9zLnBhdGguZXhwYW5kdXNl
cigifi9BcHBsaWNhdGlvbnMvRmlyZWZveE5pZ2h0bHkuYXBwL0NvbnRlbnRzL01hY09TIiksCisg
ICAgICAgIGlmIG5vdCBiaW5hcnkgYW5kIHNlbGYucGxhdGZvcm0gPT0gIm1hY29zIjoKKyAgICAg
ICAgICAgIG1hY3BhdGhzID0gWyIvQXBwbGljYXRpb25zL0ZpcmVmb3ggTmlnaHRseS5hcHAvQ29u
dGVudHMvTWFjT1MiLAorICAgICAgICAgICAgICAgICAgICAgICAgb3MucGF0aC5leHBhbmR1c2Vy
KCJ+L0FwcGxpY2F0aW9ucy9GaXJlZm94IE5pZ2h0bHkuYXBwL0NvbnRlbnRzL01hY09TIiksCiAg
ICAgICAgICAgICAgICAgICAgICAgICAiL0FwcGxpY2F0aW9ucy9GaXJlZm94IERldmVsb3BlciBF
ZGl0aW9uLmFwcC9Db250ZW50cy9NYWNPUyIsCiAgICAgICAgICAgICAgICAgICAgICAgICBvcy5w
YXRoLmV4cGFuZHVzZXIoIn4vQXBwbGljYXRpb25zL0ZpcmVmb3ggRGV2ZWxvcGVyIEVkaXRpb24u
YXBwL0NvbnRlbnRzL01hY09TIiksCiAgICAgICAgICAgICAgICAgICAgICAgICAiL0FwcGxpY2F0
aW9ucy9GaXJlZm94LmFwcC9Db250ZW50cy9NYWNPUyIsCkBAIC0xNzAsMTEgKzI2NSwxMSBAQCBj
bGFzcyBGaXJlZm94KEJyb3dzZXIpOgogICAgICAgICBwYXRoID0gZmluZF9leGVjdXRhYmxlKCJj
ZXJ0dXRpbCIpCiAgICAgICAgIGlmIHBhdGggaXMgTm9uZToKICAgICAgICAgICAgIHJldHVybiBO
b25lCi0gICAgICAgIGlmIG9zLnBhdGguc3BsaXRkcml2ZShwYXRoKVsxXS5zcGxpdChvcy5wYXRo
LnNlcCkgPT0gWyIiLCAiV2luZG93cyIsICJzeXN0ZW0zMiIsICJjZXJ0dXRpbC5leGUiXToKKyAg
ICAgICAgaWYgb3MucGF0aC5zcGxpdGRyaXZlKG9zLnBhdGgubm9ybWNhc2UocGF0aCkpWzFdLnNw
bGl0KG9zLnBhdGguc2VwKSA9PSBbIiIsICJ3aW5kb3dzIiwgInN5c3RlbTMyIiwgImNlcnR1dGls
LmV4ZSJdOgogICAgICAgICAgICAgcmV0dXJuIE5vbmUKICAgICAgICAgcmV0dXJuIHBhdGgKIAot
ICAgIGRlZiBmaW5kX3dlYmRyaXZlcihzZWxmKToKKyAgICBkZWYgZmluZF93ZWJkcml2ZXIoc2Vs
ZiwgY2hhbm5lbD1Ob25lKToKICAgICAgICAgcmV0dXJuIGZpbmRfZXhlY3V0YWJsZSgiZ2Vja29k
cml2ZXIiKQogCiAgICAgZGVmIGdldF92ZXJzaW9uX2FuZF9jaGFubmVsKHNlbGYsIGJpbmFyeSk6
CkBAIC0xOTAsMjYgKzI4NSw0NyBAQCBjbGFzcyBGaXJlZm94KEJyb3dzZXIpOgogICAgICAgICBp
ZiBjaGFubmVsID09ICJzdGFibGUiOgogICAgICAgICAgICAgcmVwbyA9ICJodHRwczovL2hnLm1v
emlsbGEub3JnL3JlbGVhc2VzL21vemlsbGEtcmVsZWFzZSIKICAgICAgICAgICAgIHRhZyA9ICJG
SVJFRk9YXyVzX1JFTEVBU0UiICUgdmVyc2lvbi5yZXBsYWNlKCIuIiwgIl8iKQotICAgICAgICBl
bHNlOgotICAgICAgICAgICAgcmVwbyA9ICJodHRwczovL2hnLm1vemlsbGEub3JnL21vemlsbGEt
Y2VudHJhbCIKLSAgICAgICAgICAgIGlmIGNoYW5uZWwgPT0gImJldGEiOgotICAgICAgICAgICAg
ICAgIHRhZyA9ICJGSVJFRk9YXyVzX0JFVEEiICUgdmVyc2lvbi5zcGxpdCgiLiIsIDEpWzBdCisg
ICAgICAgIGVsaWYgY2hhbm5lbCA9PSAiYmV0YSI6CisgICAgICAgICAgICByZXBvID0gImh0dHBz
Oi8vaGcubW96aWxsYS5vcmcvcmVsZWFzZXMvbW96aWxsYS1iZXRhIgorICAgICAgICAgICAgbWFq
b3JfdmVyc2lvbiA9IHZlcnNpb24uc3BsaXQoIi4iLCAxKVswXQorICAgICAgICAgICAgIyBGb3Ig
YmV0YSB3ZSBoYXZlIGEgZGlmZmVyZW50IGZvcm1hdCBmb3IgYmV0YXMgdGhhdCBhcmUgbm93IGlu
IHN0YWJsZSByZWxlYXNlcworICAgICAgICAgICAgIyB2cyB0aG9zZSB0aGF0IGFyZSBub3QKKyAg
ICAgICAgICAgIHRhZ3MgPSBnZXQoImh0dHBzOi8vaGcubW96aWxsYS5vcmcvcmVsZWFzZXMvbW96
aWxsYS1iZXRhL2pzb24tdGFncyIpLmpzb24oKVsidGFncyJdCisgICAgICAgICAgICB0YWdzID0g
e2l0ZW1bInRhZyJdIGZvciBpdGVtIGluIHRhZ3N9CisgICAgICAgICAgICBlbmRfdGFnID0gIkZJ
UkVGT1hfQkVUQV8lc19FTkQiICUgbWFqb3JfdmVyc2lvbgorICAgICAgICAgICAgaWYgZW5kX3Rh
ZyBpbiB0YWdzOgorICAgICAgICAgICAgICAgIHRhZyA9IGVuZF90YWcKICAgICAgICAgICAgIGVs
c2U6Ci0gICAgICAgICAgICAgICAgIyBBbHdheXMgdXNlIHRpcCBhcyB0aGUgdGFnIGZvciBuaWdo
dGx5OyB0aGlzIGlzbid0IHF1aXRlIHJpZ2h0Ci0gICAgICAgICAgICAgICAgIyBidXQgdG8gZG8g
YmV0dGVyIHdlIG5lZWQgdGhlIGFjdHVhbCBidWlsZCByZXZpc2lvbiwgd2hpY2ggd2UKLSAgICAg
ICAgICAgICAgICAjIGNhbiBnZXQgaWYgd2UgaGF2ZSBhbiBhcHBsaWNhdGlvbi5pbmkgZmlsZQog
ICAgICAgICAgICAgICAgIHRhZyA9ICJ0aXAiCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBy
ZXBvID0gImh0dHBzOi8vaGcubW96aWxsYS5vcmcvbW96aWxsYS1jZW50cmFsIgorICAgICAgICAg
ICAgIyBBbHdheXMgdXNlIHRpcCBhcyB0aGUgdGFnIGZvciBuaWdodGx5OyB0aGlzIGlzbid0IHF1
aXRlIHJpZ2h0CisgICAgICAgICAgICAjIGJ1dCB0byBkbyBiZXR0ZXIgd2UgbmVlZCB0aGUgYWN0
dWFsIGJ1aWxkIHJldmlzaW9uLCB3aGljaCB3ZQorICAgICAgICAgICAgIyBjYW4gZ2V0IGlmIHdl
IGhhdmUgYW4gYXBwbGljYXRpb24uaW5pIGZpbGUKKyAgICAgICAgICAgIHRhZyA9ICJ0aXAiCiAK
ICAgICAgICAgcmV0dXJuICIlcy9hcmNoaXZlLyVzLnppcC90ZXN0aW5nL3Byb2ZpbGVzLyIgJSAo
cmVwbywgdGFnKQogCi0gICAgZGVmIGluc3RhbGxfcHJlZnMoc2VsZiwgYmluYXJ5LCBkZXN0PU5v
bmUpOgotICAgICAgICB2ZXJzaW9uLCBjaGFubmVsID0gc2VsZi5nZXRfdmVyc2lvbl9hbmRfY2hh
bm5lbChiaW5hcnkpCisgICAgZGVmIGluc3RhbGxfcHJlZnMoc2VsZiwgYmluYXJ5LCBkZXN0PU5v
bmUsIGNoYW5uZWw9Tm9uZSk6CisgICAgICAgIGlmIGJpbmFyeToKKyAgICAgICAgICAgIHZlcnNp
b24sIGNoYW5uZWxfID0gc2VsZi5nZXRfdmVyc2lvbl9hbmRfY2hhbm5lbChiaW5hcnkpCisgICAg
ICAgICAgICBpZiBjaGFubmVsIGlzIG5vdCBOb25lIGFuZCBjaGFubmVsICE9IGNoYW5uZWxfOgor
ICAgICAgICAgICAgICAgICMgQmV0YSBkb2Vzbid0IGFsd2F5cyBzZWVtIHRvIGhhdmUgdGhlIGIg
aW4gdGhlIHZlcnNpb24gc3RyaW5nLCBzbyBhbGxvdyB0aGUKKyAgICAgICAgICAgICAgICAjIG1h
bnVhbGx5IHN1cHBsaWVkIHZhbHVlIHRvIG92ZXJyaWRlIHRoZSBvbmUgZnJvbSB0aGUgYmluYXJ5
CisgICAgICAgICAgICAgICAgc2VsZi5sb2dnZXIud2FybmluZygiU3VwcGxpZWQgY2hhbm5lbCBk
b2Vzbid0IG1hdGNoIGJpbmFyeSwgdXNpbmcgc3VwcGxpZWQgY2hhbm5lbCIpCisgICAgICAgICAg
ICBlbGlmIGNoYW5uZWwgaXMgTm9uZToKKyAgICAgICAgICAgICAgICBjaGFubmVsID0gY2hhbm5l
bF8KKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHZlcnNpb24gPSBOb25lCisKICAgICAgICAg
aWYgZGVzdCBpcyBOb25lOgotICAgICAgICAgICAgZGVzdCA9IG9zLnB3ZAorICAgICAgICAgICAg
ZGVzdCA9IG9zLmN1cmRpcgogCi0gICAgICAgIGRlc3QgPSBvcy5wYXRoLmpvaW4oZGVzdCwgInBy
b2ZpbGVzIiwgY2hhbm5lbCwgdmVyc2lvbikKKyAgICAgICAgZGVzdCA9IG9zLnBhdGguam9pbihk
ZXN0LCAicHJvZmlsZXMiLCBjaGFubmVsKQorICAgICAgICBpZiB2ZXJzaW9uOgorICAgICAgICAg
ICAgZGVzdCA9IG9zLnBhdGguam9pbihkZXN0LCB2ZXJzaW9uKQogICAgICAgICBoYXZlX2NhY2hl
ID0gRmFsc2UKLSAgICAgICAgaWYgb3MucGF0aC5leGlzdHMoZGVzdCk6CisgICAgICAgIGlmIG9z
LnBhdGguZXhpc3RzKGRlc3QpIGFuZCBsZW4ob3MubGlzdGRpcihkZXN0KSkgPiAwOgogICAgICAg
ICAgICAgaWYgY2hhbm5lbCAhPSAibmlnaHRseSI6CiAgICAgICAgICAgICAgICAgaGF2ZV9jYWNo
ZSA9IFRydWUKICAgICAgICAgICAgIGVsc2U6CkBAIC0yMjUsNyArMzQxLDcgQEAgY2xhc3MgRmly
ZWZveChCcm93c2VyKToKIAogICAgICAgICAgICAgdXJsID0gc2VsZi5nZXRfcHJvZmlsZV9idW5k
bGVfdXJsKHZlcnNpb24sIGNoYW5uZWwpCiAKLSAgICAgICAgICAgIHByaW50KCJJbnN0YWxsaW5n
IHRlc3QgcHJlZnMgZnJvbSAlcyIgJSB1cmwpCisgICAgICAgICAgICBzZWxmLmxvZ2dlci5pbmZv
KCJJbnN0YWxsaW5nIHRlc3QgcHJlZnMgZnJvbSAlcyIgJSB1cmwpCiAgICAgICAgICAgICB0cnk6
CiAgICAgICAgICAgICAgICAgZXh0cmFjdF9kaXIgPSB0ZW1wZmlsZS5ta2R0ZW1wKCkKICAgICAg
ICAgICAgICAgICB1bnppcChnZXQodXJsKS5yYXcsIGRlc3Q9ZXh0cmFjdF9kaXIpCkBAIC0yMzcs
NyArMzUzLDcgQEAgY2xhc3MgRmlyZWZveChCcm93c2VyKToKICAgICAgICAgICAgIGZpbmFsbHk6
CiAgICAgICAgICAgICAgICAgc2h1dGlsLnJtdHJlZShleHRyYWN0X2RpcikKICAgICAgICAgZWxz
ZToKLSAgICAgICAgICAgIHByaW50KCJVc2luZyBjYWNoZWQgdGVzdCBwcmVmcyBmcm9tICVzIiAl
IGRlc3QpCisgICAgICAgICAgICBzZWxmLmxvZ2dlci5pbmZvKCJVc2luZyBjYWNoZWQgdGVzdCBw
cmVmcyBmcm9tICVzIiAlIGRlc3QpCiAKICAgICAgICAgcmV0dXJuIGRlc3QKIApAQCAtMjQ2LDcg
KzM2Miw3IEBAIGNsYXNzIEZpcmVmb3goQnJvd3Nlcik6CiAgICAgICAgICMgVGhpcyBpcyB1c2Vk
IHJhdGhlciB0aGFuIGFuIEFQSSBjYWxsIHRvIGF2b2lkIHJhdGUgbGltaXRzCiAgICAgICAgIHRh
Z3MgPSBjYWxsKCJnaXQiLCAibHMtcmVtb3RlIiwgIi0tdGFncyIsICItLXJlZnMiLAogICAgICAg
ICAgICAgICAgICAgICAiaHR0cHM6Ly9naXRodWIuY29tL21vemlsbGEvZ2Vja29kcml2ZXIuZ2l0
IikKLSAgICAgICAgcmVsZWFzZV9yZSA9IHJlLmNvbXBpbGUoIi4qcmVmcy90YWdzL3YoXGQrKVwu
KFxkKylcLihcZCspIikKKyAgICAgICAgcmVsZWFzZV9yZSA9IHJlLmNvbXBpbGUociIuKnJlZnMv
dGFncy92KFxkKylcLihcZCspXC4oXGQrKSIpCiAgICAgICAgIGxhdGVzdF9yZWxlYXNlID0gMAog
ICAgICAgICBmb3IgaXRlbSBpbiB0YWdzLnNwbGl0KCJcbiIpOgogICAgICAgICAgICAgbSA9IHJl
bGVhc2VfcmUubWF0Y2goaXRlbSkKQEAgLTI1NywxNCArMzczLDIxIEBAIGNsYXNzIEZpcmVmb3go
QnJvd3Nlcik6CiAgICAgICAgIGFzc2VydCBsYXRlc3RfcmVsZWFzZSAhPSAwCiAgICAgICAgIHJl
dHVybiAidiVzLiVzLiVzIiAlIHR1cGxlKHN0cihpdGVtKSBmb3IgaXRlbSBpbiBsYXRlc3RfcmVs
ZWFzZSkKIAotICAgIGRlZiBpbnN0YWxsX3dlYmRyaXZlcihzZWxmLCBkZXN0PU5vbmUpOgorICAg
IGRlZiBpbnN0YWxsX3dlYmRyaXZlcihzZWxmLCBkZXN0PU5vbmUsIGNoYW5uZWw9Tm9uZSwgYnJv
d3Nlcl9iaW5hcnk9Tm9uZSk6CiAgICAgICAgICIiIkluc3RhbGwgbGF0ZXN0IEdlY2tvZHJpdmVy
LiIiIgogICAgICAgICBpZiBkZXN0IGlzIE5vbmU6CiAgICAgICAgICAgICBkZXN0ID0gb3MuZ2V0
Y3dkKCkKIAorICAgICAgICBpZiBjaGFubmVsID09ICJuaWdodGx5IjoKKyAgICAgICAgICAgIHBh
dGggPSBzZWxmLmluc3RhbGxfZ2Vja29kcml2ZXJfbmlnaHRseShkZXN0KQorICAgICAgICAgICAg
aWYgcGF0aCBpcyBub3QgTm9uZToKKyAgICAgICAgICAgICAgICByZXR1cm4gcGF0aAorICAgICAg
ICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICBzZWxmLmxvZ2dlci53YXJuaW5nKCJOaWdodGx5
IHdlYmRyaXZlciBub3QgZm91bmQ7IGZhbGxpbmcgYmFjayB0byByZWxlYXNlIikKKwogICAgICAg
ICB2ZXJzaW9uID0gc2VsZi5fbGF0ZXN0X2dlY2tvZHJpdmVyX3ZlcnNpb24oKQogICAgICAgICBm
b3JtYXQgPSAiemlwIiBpZiB1bmFtZVswXSA9PSAiV2luZG93cyIgZWxzZSAidGFyLmd6IgotICAg
ICAgICBsb2dnZXIuZGVidWcoIkxhdGVzdCBnZWNrb2RyaXZlciByZWxlYXNlICVzIiAlIHZlcnNp
b24pCisgICAgICAgIHNlbGYubG9nZ2VyLmRlYnVnKCJMYXRlc3QgZ2Vja29kcml2ZXIgcmVsZWFz
ZSAlcyIgJSB2ZXJzaW9uKQogICAgICAgICB1cmwgPSAoImh0dHBzOi8vZ2l0aHViLmNvbS9tb3pp
bGxhL2dlY2tvZHJpdmVyL3JlbGVhc2VzL2Rvd25sb2FkLyVzL2dlY2tvZHJpdmVyLSVzLSVzLiVz
IiAlCiAgICAgICAgICAgICAgICAodmVyc2lvbiwgdmVyc2lvbiwgc2VsZi5wbGF0Zm9ybV9zdHJp
bmdfZ2Vja29kcml2ZXIoKSwgZm9ybWF0KSkKICAgICAgICAgaWYgZm9ybWF0ID09ICJ6aXAiOgpA
QCAtMjczLDkgKzM5NiwzOCBAQCBjbGFzcyBGaXJlZm94KEJyb3dzZXIpOgogICAgICAgICAgICAg
dW50YXIoZ2V0KHVybCkucmF3LCBkZXN0PWRlc3QpCiAgICAgICAgIHJldHVybiBmaW5kX2V4ZWN1
dGFibGUob3MucGF0aC5qb2luKGRlc3QsICJnZWNrb2RyaXZlciIpKQogCi0gICAgZGVmIHZlcnNp
b24oc2VsZiwgYmluYXJ5PU5vbmUpOgorICAgIGRlZiBpbnN0YWxsX2dlY2tvZHJpdmVyX25pZ2h0
bHkoc2VsZiwgZGVzdCk6CisgICAgICAgIGltcG9ydCB0YXJmaWxlCisgICAgICAgIGltcG9ydCBt
b3pkb3dubG9hZAorICAgICAgICBzZWxmLmxvZ2dlci5pbmZvKCJBdHRlbXB0aW5nIHRvIGluc3Rh
bGwgd2ViZHJpdmVyIGZyb20gbmlnaHRseSIpCisgICAgICAgIHRyeToKKyAgICAgICAgICAgIHMg
PSBtb3pkb3dubG9hZC5EYWlseVNjcmFwZXIoYnJhbmNoPSJtb3ppbGxhLWNlbnRyYWwiLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBleHRlbnNpb249ImNvbW1vbi50
ZXN0cy50YXIuZ3oiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBk
ZXN0aW5hdGlvbj1kZXN0KQorICAgICAgICAgICAgcGFja2FnZV9wYXRoID0gcy5kb3dubG9hZCgp
CisgICAgICAgIGV4Y2VwdCBtb3pkb3dubG9hZC5lcnJvcnMuTm90Rm91bmRFcnJvcjoKKyAgICAg
ICAgICAgIHJldHVybgorCisgICAgICAgIHRyeToKKyAgICAgICAgICAgIGV4ZV9zdWZmaXggPSAi
LmV4ZSIgaWYgdW5hbWVbMF0gPT0gIldpbmRvd3MiIGVsc2UgIiIKKyAgICAgICAgICAgIHdpdGgg
dGFyZmlsZS5vcGVuKHBhY2thZ2VfcGF0aCwgInIiKSBhcyBmOgorICAgICAgICAgICAgICAgIHRy
eToKKyAgICAgICAgICAgICAgICAgICAgbWVtYmVyID0gZi5nZXRtZW1iZXIoImJpbiVzZ2Vja29k
cml2ZXIlcyIgJSAob3MucGF0aC5zZXAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4ZV9zdWZmaXgpKQorICAgICAgICAg
ICAgICAgIGV4Y2VwdCBLZXlFcnJvcjoKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuCisgICAg
ICAgICAgICAgICAgIyBSZW1vdmUgYmluLyBmcm9tIHRoZSBwYXRoLgorICAgICAgICAgICAgICAg
IG1lbWJlci5uYW1lID0gb3MucGF0aC5iYXNlbmFtZShtZW1iZXIubmFtZSkKKyAgICAgICAgICAg
ICAgICBmLmV4dHJhY3RhbGwobWVtYmVycz1bbWVtYmVyXSwgcGF0aD1kZXN0KQorICAgICAgICAg
ICAgICAgIHBhdGggPSBvcy5wYXRoLmpvaW4oZGVzdCwgbWVtYmVyLm5hbWUpCisgICAgICAgICAg
ICBzZWxmLmxvZ2dlci5pbmZvKCJFeHRyYWN0ZWQgZ2Vja29kcml2ZXIgdG8gJXMiICUgcGF0aCkK
KyAgICAgICAgZmluYWxseToKKyAgICAgICAgICAgIG9zLnVubGluayhwYWNrYWdlX3BhdGgpCisK
KyAgICAgICAgcmV0dXJuIHBhdGgKKworICAgIGRlZiB2ZXJzaW9uKHNlbGYsIGJpbmFyeT1Ob25l
LCB3ZWJkcml2ZXJfYmluYXJ5PU5vbmUpOgogICAgICAgICAiIiJSZXRyaWV2ZSB0aGUgcmVsZWFz
ZSB2ZXJzaW9uIG9mIHRoZSBpbnN0YWxsZWQgYnJvd3Nlci4iIiIKLSAgICAgICAgYmluYXJ5ID0g
YmluYXJ5IG9yIHNlbGYuZmluZF9iaW5hcnkoKQogICAgICAgICB2ZXJzaW9uX3N0cmluZyA9IGNh
bGwoYmluYXJ5LCAiLS12ZXJzaW9uIikuc3RyaXAoKQogICAgICAgICBtID0gcmUubWF0Y2gociJN
b3ppbGxhIEZpcmVmb3ggKC4qKSIsIHZlcnNpb25fc3RyaW5nKQogICAgICAgICBpZiBub3QgbToK
QEAgLTI4MywyNSArNDM1LDU5IEBAIGNsYXNzIEZpcmVmb3goQnJvd3Nlcik6CiAgICAgICAgIHJl
dHVybiBtLmdyb3VwKDEpCiAKIAotY2xhc3MgRmVubmVjKEJyb3dzZXIpOgotICAgICIiIkZlbm5l
Yy1zcGVjaWZpYyBpbnRlcmZhY2UuIiIiCitjbGFzcyBGaXJlZm94QW5kcm9pZChCcm93c2VyKToK
KyAgICAiIiJBbmRyb2lkLXNwZWNpZmljIEZpcmVmb3ggaW50ZXJmYWNlLiIiIgogCi0gICAgcHJv
ZHVjdCA9ICJmZW5uZWMiCisgICAgcHJvZHVjdCA9ICJmaXJlZm94X2FuZHJvaWQiCiAgICAgcmVx
dWlyZW1lbnRzID0gInJlcXVpcmVtZW50c19maXJlZm94LnR4dCIKIAotICAgIGRlZiBpbnN0YWxs
KHNlbGYsIGRlc3Q9Tm9uZSk6Ci0gICAgICAgIHJhaXNlIE5vdEltcGxlbWVudGVkRXJyb3IKKyAg
ICBkZWYgZG93bmxvYWQoc2VsZiwgZGVzdD1Ob25lLCBjaGFubmVsPU5vbmUpOgorICAgICAgICBp
ZiBkZXN0IGlzIE5vbmU6CisgICAgICAgICAgICBkZXN0ID0gb3MucHdkCisKKyAgICAgICAgaWYg
RklSRUZPWF9DSV9ST09UX1VSTCA9PSAnaHR0cHM6Ly90YXNrY2x1c3Rlci5uZXQnOgorICAgICAg
ICAgICAgIyBOT1RFOiB0aGlzIGNvbmRpdGlvbiBjYW4gYmUgcmVtb3ZlZCBhZnRlciBOb3ZlbWJl
ciA5LCAyMDE5CisgICAgICAgICAgICBUQ19RVUVVRV9CQVNFID0gImh0dHBzOi8vcXVldWUudGFz
a2NsdXN0ZXIubmV0L3YxLyIKKyAgICAgICAgICAgIFRDX0lOREVYX0JBU0UgPSAiaHR0cHM6Ly9p
bmRleC50YXNrY2x1c3Rlci5uZXQvdjEvIgorICAgICAgICBlbHNlOgorICAgICAgICAgICAgVENf
UVVFVUVfQkFTRSA9IEZJUkVGT1hfQ0lfUk9PVF9VUkwgKyAiL2FwaS9xdWV1ZS92MS8iCisgICAg
ICAgICAgICBUQ19JTkRFWF9CQVNFID0gRklSRUZPWF9DSV9ST09UX1VSTCArICIvYXBpL2luZGV4
L3YxLyIKKworCisgICAgICAgIHJlc3AgPSByZXF1ZXN0cy5nZXQoVENfSU5ERVhfQkFTRSArCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgInRhc2svZ2Vja28udjIubW96aWxsYS1jZW50cmFs
LmxhdGVzdC5tb2JpbGUuYW5kcm9pZC14ODZfNjQtb3B0IikKKyAgICAgICAgcmVzcC5yYWlzZV9m
b3Jfc3RhdHVzKCkKKyAgICAgICAgaW5kZXggPSByZXNwLmpzb24oKQorICAgICAgICB0YXNrX2lk
ID0gaW5kZXhbInRhc2tJZCJdCisKKyAgICAgICAgcmVzcCA9IHJlcXVlc3RzLmdldChUQ19RVUVV
RV9CQVNFICsgInRhc2svJXMvYXJ0aWZhY3RzLyVzIiAlCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgKHRhc2tfaWQsICJwdWJsaWMvYnVpbGQvZ2Vja292aWV3LWFuZHJvaWRUZXN0LmFwayIp
KQorICAgICAgICByZXNwLnJhaXNlX2Zvcl9zdGF0dXMoKQogCi0gICAgZGVmIGZpbmRfYmluYXJ5
KHNlbGYsIHZlbnZfcGF0aD1Ob25lKToKKyAgICAgICAgYXBrX3BhdGggPSBvcy5wYXRoLmpvaW4o
ZGVzdCwgImdlY2tvdmlldy1hbmRyb2lkVGVzdC5hcGsiKQorCisgICAgICAgIHdpdGggb3Blbihh
cGtfcGF0aCwgIndiIikgYXMgZjoKKyAgICAgICAgICAgIGYud3JpdGUocmVzcC5jb250ZW50KQor
CisgICAgICAgIHJldHVybiBhcGtfcGF0aAorCisgICAgZGVmIGluc3RhbGwoc2VsZiwgZGVzdD1O
b25lLCBjaGFubmVsPU5vbmUpOgorICAgICAgICByZXR1cm4gc2VsZi5kb3dubG9hZChkZXN0LCBj
aGFubmVsKQorCisgICAgZGVmIGluc3RhbGxfcHJlZnMoc2VsZiwgYmluYXJ5LCBkZXN0PU5vbmUs
IGNoYW5uZWw9Tm9uZSk6CisgICAgICAgIGZ4X2Jyb3dzZXIgPSBGaXJlZm94KHNlbGYubG9nZ2Vy
KQorICAgICAgICByZXR1cm4gZnhfYnJvd3Nlci5pbnN0YWxsX3ByZWZzKGJpbmFyeSwgZGVzdCwg
Y2hhbm5lbCkKKworICAgIGRlZiBmaW5kX2JpbmFyeShzZWxmLCB2ZW52X3BhdGg9Tm9uZSwgY2hh
bm5lbD1Ob25lKToKICAgICAgICAgcmFpc2UgTm90SW1wbGVtZW50ZWRFcnJvcgogCi0gICAgZGVm
IGZpbmRfd2ViZHJpdmVyKHNlbGYpOgorICAgIGRlZiBmaW5kX3dlYmRyaXZlcihzZWxmLCBjaGFu
bmVsPU5vbmUpOgogICAgICAgICByYWlzZSBOb3RJbXBsZW1lbnRlZEVycm9yCiAKLSAgICBkZWYg
aW5zdGFsbF93ZWJkcml2ZXIoc2VsZiwgZGVzdD1Ob25lKToKKyAgICBkZWYgaW5zdGFsbF93ZWJk
cml2ZXIoc2VsZiwgZGVzdD1Ob25lLCBjaGFubmVsPU5vbmUsIGJyb3dzZXJfYmluYXJ5PU5vbmUp
OgogICAgICAgICByYWlzZSBOb3RJbXBsZW1lbnRlZEVycm9yCiAKLSAgICBkZWYgdmVyc2lvbihz
ZWxmLCBiaW5hcnk9Tm9uZSk6CisgICAgZGVmIHZlcnNpb24oc2VsZiwgYmluYXJ5PU5vbmUsIHdl
YmRyaXZlcl9iaW5hcnk9Tm9uZSk6CiAgICAgICAgIHJldHVybiBOb25lCiAKIApAQCAtMzE0LDE3
ICs1MDAsMTAgQEAgY2xhc3MgQ2hyb21lKEJyb3dzZXIpOgogICAgIHByb2R1Y3QgPSAiY2hyb21l
IgogICAgIHJlcXVpcmVtZW50cyA9ICJyZXF1aXJlbWVudHNfY2hyb21lLnR4dCIKIAotICAgIEBw
cm9wZXJ0eQotICAgIGRlZiBiaW5hcnkoc2VsZik6Ci0gICAgICAgIGlmIHVuYW1lWzBdID09ICJM
aW51eCI6Ci0gICAgICAgICAgICByZXR1cm4gIi91c3IvYmluL2dvb2dsZS1jaHJvbWUiCi0gICAg
ICAgIGlmIHVuYW1lWzBdID09ICJEYXJ3aW4iOgotICAgICAgICAgICAgcmV0dXJuICIvQXBwbGlj
YXRpb25zL0dvb2dsZSBDaHJvbWUuYXBwL0NvbnRlbnRzL01hY09TL0dvb2dsZSBDaHJvbWUiCi0g
ICAgICAgICMgVE9ETyBXaW5kb3dzPwotICAgICAgICBsb2dnZXIud2FybigiVW5hYmxlIHRvIGZp
bmQgdGhlIGJyb3dzZXIgYmluYXJ5LiIpCi0gICAgICAgIHJldHVybiBOb25lCisgICAgZGVmIGRv
d25sb2FkKHNlbGYsIGRlc3Q9Tm9uZSwgY2hhbm5lbD1Ob25lKToKKyAgICAgICAgcmFpc2UgTm90
SW1wbGVtZW50ZWRFcnJvcgogCi0gICAgZGVmIGluc3RhbGwoc2VsZiwgZGVzdD1Ob25lKToKKyAg
ICBkZWYgaW5zdGFsbChzZWxmLCBkZXN0PU5vbmUsIGNoYW5uZWw9Tm9uZSk6CiAgICAgICAgIHJh
aXNlIE5vdEltcGxlbWVudGVkRXJyb3IKIAogICAgIGRlZiBwbGF0Zm9ybV9zdHJpbmcoc2VsZik6
CkBAIC0zNDYsNjUgKzUyNSwyNDkgQEAgY2xhc3MgQ2hyb21lKEJyb3dzZXIpOgogCiAgICAgICAg
IHJldHVybiAiJXMlcyIgJSAocGxhdGZvcm0sIGJpdHMpCiAKLSAgICBkZWYgZmluZF9iaW5hcnko
c2VsZik6Ci0gICAgICAgIHJhaXNlIE5vdEltcGxlbWVudGVkRXJyb3IKKyAgICBkZWYgY2hyb21p
dW1fcGxhdGZvcm1fc3RyaW5nKHNlbGYpOgorICAgICAgICBwbGF0Zm9ybSA9IHsKKyAgICAgICAg
ICAgICJMaW51eCI6ICJMaW51eCIsCisgICAgICAgICAgICAiV2luZG93cyI6ICJXaW4iLAorICAg
ICAgICAgICAgIkRhcndpbiI6ICJNYWMiCisgICAgICAgIH0uZ2V0KHVuYW1lWzBdKQorCisgICAg
ICAgIGlmIHBsYXRmb3JtIGlzIE5vbmU6CisgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJV
bmFibGUgdG8gY29uc3RydWN0IGEgdmFsaWQgQ2hyb21pdW0gcGFja2FnZSBuYW1lIGZvciBjdXJy
ZW50IHBsYXRmb3JtIikKKworICAgICAgICBpZiAocGxhdGZvcm0gPT0gIkxpbnV4IiBvciBwbGF0
Zm9ybSA9PSAiV2luIikgYW5kIHVuYW1lWzRdID09ICJ4ODZfNjQiOgorICAgICAgICAgICAgcGxh
dGZvcm0gKz0gIl94NjQiCisKKyAgICAgICAgcmV0dXJuIHBsYXRmb3JtCiAKLSAgICBkZWYgZmlu
ZF93ZWJkcml2ZXIoc2VsZik6CisgICAgZGVmIGZpbmRfYmluYXJ5KHNlbGYsIHZlbnZfcGF0aD1O
b25lLCBjaGFubmVsPU5vbmUpOgorICAgICAgICBpZiB1bmFtZVswXSA9PSAiTGludXgiOgorICAg
ICAgICAgICAgbmFtZSA9ICJnb29nbGUtY2hyb21lIgorICAgICAgICAgICAgaWYgY2hhbm5lbCA9
PSAic3RhYmxlIjoKKyAgICAgICAgICAgICAgICBuYW1lICs9ICItc3RhYmxlIgorICAgICAgICAg
ICAgZWxpZiBjaGFubmVsID09ICJiZXRhIjoKKyAgICAgICAgICAgICAgICBuYW1lICs9ICItYmV0
YSIKKyAgICAgICAgICAgIGVsaWYgY2hhbm5lbCA9PSAiZGV2IjoKKyAgICAgICAgICAgICAgICBu
YW1lICs9ICItdW5zdGFibGUiCisgICAgICAgICAgICAjIE5vIENhbmFyeSBvbiBMaW51eC4KKyAg
ICAgICAgICAgIHJldHVybiBmaW5kX2V4ZWN1dGFibGUobmFtZSkKKyAgICAgICAgaWYgdW5hbWVb
MF0gPT0gIkRhcndpbiI6CisgICAgICAgICAgICBpZiBjaGFubmVsID09ICJjYW5hcnkiOgorICAg
ICAgICAgICAgICAgIHJldHVybiAiL0FwcGxpY2F0aW9ucy9Hb29nbGUgQ2hyb21lIENhbmFyeS5h
cHAvQ29udGVudHMvTWFjT1MvR29vZ2xlIENocm9tZSBDYW5hcnkiCisgICAgICAgICAgICAjIEFs
bCBvdGhlciBjaGFubmVscyBzaGFyZSB0aGUgc2FtZSBwYXRoIG9uIG1hY09TLgorICAgICAgICAg
ICAgcmV0dXJuICIvQXBwbGljYXRpb25zL0dvb2dsZSBDaHJvbWUuYXBwL0NvbnRlbnRzL01hY09T
L0dvb2dsZSBDaHJvbWUiCisgICAgICAgIGlmIHVuYW1lWzBdID09ICJXaW5kb3dzIjoKKyAgICAg
ICAgICAgIHJldHVybiBvcy5wYXRoLmV4cGFuZHZhcnMociIkU1lTVEVNRFJJVkVcUHJvZ3JhbSBG
aWxlcyAoeDg2KVxHb29nbGVcQ2hyb21lXEFwcGxpY2F0aW9uXGNocm9tZS5leGUiKQorICAgICAg
ICBzZWxmLmxvZ2dlci53YXJuaW5nKCJVbmFibGUgdG8gZmluZCB0aGUgYnJvd3NlciBiaW5hcnku
IikKKyAgICAgICAgcmV0dXJuIE5vbmUKKworICAgIGRlZiBmaW5kX3dlYmRyaXZlcihzZWxmLCBj
aGFubmVsPU5vbmUpOgogICAgICAgICByZXR1cm4gZmluZF9leGVjdXRhYmxlKCJjaHJvbWVkcml2
ZXIiKQogCi0gICAgZGVmIGluc3RhbGxfd2ViZHJpdmVyKHNlbGYsIGRlc3Q9Tm9uZSk6CisgICAg
ZGVmIF9vZmZpY2lhbF9jaHJvbWVkcml2ZXJfdXJsKHNlbGYsIGNocm9tZV92ZXJzaW9uKToKKyAg
ICAgICAgIyBodHRwOi8vY2hyb21lZHJpdmVyLmNocm9taXVtLm9yZy9kb3dubG9hZHMvdmVyc2lv
bi1zZWxlY3Rpb24KKyAgICAgICAgcGFydHMgPSBjaHJvbWVfdmVyc2lvbi5zcGxpdCgiLiIpCisg
ICAgICAgIGFzc2VydCBsZW4ocGFydHMpID09IDQKKyAgICAgICAgbGF0ZXN0X3VybCA9ICJodHRw
czovL2Nocm9tZWRyaXZlci5zdG9yYWdlLmdvb2dsZWFwaXMuY29tL0xBVEVTVF9SRUxFQVNFXyVz
LiVzLiVzIiAlIHR1cGxlKHBhcnRzWzotMV0pCisgICAgICAgIHRyeToKKyAgICAgICAgICAgIGxh
dGVzdCA9IGdldChsYXRlc3RfdXJsKS50ZXh0LnN0cmlwKCkKKyAgICAgICAgZXhjZXB0IHJlcXVl
c3RzLlJlcXVlc3RFeGNlcHRpb246CisgICAgICAgICAgICBsYXRlc3RfdXJsID0gImh0dHBzOi8v
Y2hyb21lZHJpdmVyLnN0b3JhZ2UuZ29vZ2xlYXBpcy5jb20vTEFURVNUX1JFTEVBU0VfJXMiICUg
cGFydHNbMF0KKyAgICAgICAgICAgIHRyeToKKyAgICAgICAgICAgICAgICBsYXRlc3QgPSBnZXQo
bGF0ZXN0X3VybCkudGV4dC5zdHJpcCgpCisgICAgICAgICAgICBleGNlcHQgcmVxdWVzdHMuUmVx
dWVzdEV4Y2VwdGlvbjoKKyAgICAgICAgICAgICAgICByZXR1cm4gTm9uZQorICAgICAgICByZXR1
cm4gImh0dHBzOi8vY2hyb21lZHJpdmVyLnN0b3JhZ2UuZ29vZ2xlYXBpcy5jb20vJXMvY2hyb21l
ZHJpdmVyXyVzLnppcCIgJSAoCisgICAgICAgICAgICBsYXRlc3QsIHNlbGYucGxhdGZvcm1fc3Ry
aW5nKCkpCisKKyAgICBkZWYgX2Nocm9taXVtX2Nocm9tZWRyaXZlcl91cmwoc2VsZiwgY2hyb21l
X3ZlcnNpb24pOgorICAgICAgICB0cnk6CisgICAgICAgICAgICAjIFRyeSB0byBmaW5kIHRoZSBD
aHJvbWl1bSBidWlsZCB3aXRoIHRoZSBzYW1lIHJldmlzaW9uLgorICAgICAgICAgICAgb21haGEg
PSBnZXQoImh0dHBzOi8vb21haGFwcm94eS5hcHBzcG90LmNvbS9kZXBzLmpzb24/dmVyc2lvbj0i
ICsgY2hyb21lX3ZlcnNpb24pLmpzb24oKQorICAgICAgICAgICAgcmV2aXNpb24gPSBvbWFoYVsn
Y2hyb21pdW1fYmFzZV9wb3NpdGlvbiddCisgICAgICAgICAgICB1cmwgPSAiaHR0cHM6Ly9zdG9y
YWdlLmdvb2dsZWFwaXMuY29tL2Nocm9taXVtLWJyb3dzZXItc25hcHNob3RzLyVzLyVzL2Nocm9t
ZWRyaXZlcl8lcy56aXAiICUgKAorICAgICAgICAgICAgICAgIHNlbGYuY2hyb21pdW1fcGxhdGZv
cm1fc3RyaW5nKCksIHJldmlzaW9uLCBzZWxmLnBsYXRmb3JtX3N0cmluZygpKQorICAgICAgICAg
ICAgIyBDaGVjayB0aGUgc3RhdHVzIHdpdGhvdXQgZG93bmxvYWRpbmcgdGhlIGNvbnRlbnQgKHRo
aXMgaXMgYSBzdHJlYW1pbmcgcmVxdWVzdCkuCisgICAgICAgICAgICBnZXQodXJsKQorICAgICAg
ICBleGNlcHQgcmVxdWVzdHMuUmVxdWVzdEV4Y2VwdGlvbjoKKyAgICAgICAgICAgICMgRmFsbCBi
YWNrIHRvIHRoZSB0aXAtb2YtdHJlZSBDaHJvbWl1bSBidWlsZC4KKyAgICAgICAgICAgIHJldmlz
aW9uX3VybCA9ICJodHRwczovL3N0b3JhZ2UuZ29vZ2xlYXBpcy5jb20vY2hyb21pdW0tYnJvd3Nl
ci1zbmFwc2hvdHMvJXMvTEFTVF9DSEFOR0UiICUgKAorICAgICAgICAgICAgICAgIHNlbGYuY2hy
b21pdW1fcGxhdGZvcm1fc3RyaW5nKCkpCisgICAgICAgICAgICByZXZpc2lvbiA9IGdldChyZXZp
c2lvbl91cmwpLnRleHQuc3RyaXAoKQorICAgICAgICAgICAgdXJsID0gImh0dHBzOi8vc3RvcmFn
ZS5nb29nbGVhcGlzLmNvbS9jaHJvbWl1bS1icm93c2VyLXNuYXBzaG90cy8lcy8lcy9jaHJvbWVk
cml2ZXJfJXMuemlwIiAlICgKKyAgICAgICAgICAgICAgICBzZWxmLmNocm9taXVtX3BsYXRmb3Jt
X3N0cmluZygpLCByZXZpc2lvbiwgc2VsZi5wbGF0Zm9ybV9zdHJpbmcoKSkKKyAgICAgICAgcmV0
dXJuIHVybAorCisgICAgZGVmIF9sYXRlc3RfY2hyb21lZHJpdmVyX3VybChzZWxmLCBjaHJvbWVf
dmVyc2lvbik6CisgICAgICAgICMgUmVtb3ZlIGNoYW5uZWwgc3VmZml4ZXMgKGUuZy4gIiBkZXYi
KS4KKyAgICAgICAgY2hyb21lX3ZlcnNpb24gPSBjaHJvbWVfdmVyc2lvbi5zcGxpdCgnICcpWzBd
CisgICAgICAgIHJldHVybiAoc2VsZi5fb2ZmaWNpYWxfY2hyb21lZHJpdmVyX3VybChjaHJvbWVf
dmVyc2lvbikgb3IKKyAgICAgICAgICAgICAgICBzZWxmLl9jaHJvbWl1bV9jaHJvbWVkcml2ZXJf
dXJsKGNocm9tZV92ZXJzaW9uKSkKKworICAgIGRlZiBpbnN0YWxsX3dlYmRyaXZlcl9ieV92ZXJz
aW9uKHNlbGYsIHZlcnNpb24sIGRlc3Q9Tm9uZSk6CisgICAgICAgIGFzc2VydCB2ZXJzaW9uLCAi
Q2Fubm90IGluc3RhbGwgQ2hyb21lRHJpdmVyIHdpdGhvdXQgQ2hyb21lIHZlcnNpb24iCiAgICAg
ICAgIGlmIGRlc3QgaXMgTm9uZToKICAgICAgICAgICAgIGRlc3QgPSBvcy5wd2QKLSAgICAgICAg
bGF0ZXN0ID0gZ2V0KCJodHRwOi8vY2hyb21lZHJpdmVyLnN0b3JhZ2UuZ29vZ2xlYXBpcy5jb20v
TEFURVNUX1JFTEVBU0UiKS50ZXh0LnN0cmlwKCkKLSAgICAgICAgdXJsID0gImh0dHA6Ly9jaHJv
bWVkcml2ZXIuc3RvcmFnZS5nb29nbGVhcGlzLmNvbS8lcy9jaHJvbWVkcml2ZXJfJXMuemlwIiAl
IChsYXRlc3QsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5wbGF0Zm9ybV9zdHJp
bmcoKSkKKyAgICAgICAgdXJsID0gc2VsZi5fbGF0ZXN0X2Nocm9tZWRyaXZlcl91cmwodmVyc2lv
bikKKyAgICAgICAgc2VsZi5sb2dnZXIuaW5mbygiRG93bmxvYWRpbmcgQ2hyb21lRHJpdmVyIGZy
b20gJXMiICUgdXJsKQogICAgICAgICB1bnppcChnZXQodXJsKS5yYXcsIGRlc3QpCisgICAgICAg
IGNocm9tZWRyaXZlcl9kaXIgPSBvcy5wYXRoLmpvaW4oCisgICAgICAgICAgICBkZXN0LCAnY2hy
b21lZHJpdmVyXyVzJyAlIHNlbGYucGxhdGZvcm1fc3RyaW5nKCkpCisgICAgICAgIGlmIG9zLnBh
dGguaXNmaWxlKG9zLnBhdGguam9pbihjaHJvbWVkcml2ZXJfZGlyLCAiY2hyb21lZHJpdmVyIikp
OgorICAgICAgICAgICAgc2h1dGlsLm1vdmUob3MucGF0aC5qb2luKGNocm9tZWRyaXZlcl9kaXIs
ICJjaHJvbWVkcml2ZXIiKSwgZGVzdCkKKyAgICAgICAgICAgIHNodXRpbC5ybXRyZWUoY2hyb21l
ZHJpdmVyX2RpcikKKyAgICAgICAgcmV0dXJuIGZpbmRfZXhlY3V0YWJsZSgiY2hyb21lZHJpdmVy
IiwgZGVzdCkKKworICAgIGRlZiBpbnN0YWxsX3dlYmRyaXZlcihzZWxmLCBkZXN0PU5vbmUsIGNo
YW5uZWw9Tm9uZSwgYnJvd3Nlcl9iaW5hcnk9Tm9uZSk6CisgICAgICAgIGlmIGJyb3dzZXJfYmlu
YXJ5IGlzIE5vbmU6CisgICAgICAgICAgICBicm93c2VyX2JpbmFyeSA9IHNlbGYuZmluZF9iaW5h
cnkoY2hhbm5lbCkKKyAgICAgICAgcmV0dXJuIHNlbGYuaW5zdGFsbF93ZWJkcml2ZXJfYnlfdmVy
c2lvbigKKyAgICAgICAgICAgIHNlbGYudmVyc2lvbihicm93c2VyX2JpbmFyeSksIGRlc3QpCisK
KyAgICBkZWYgdmVyc2lvbihzZWxmLCBiaW5hcnk9Tm9uZSwgd2ViZHJpdmVyX2JpbmFyeT1Ob25l
KToKKyAgICAgICAgaWYgbm90IGJpbmFyeToKKyAgICAgICAgICAgIHNlbGYubG9nZ2VyLndhcm5p
bmcoIk5vIGJyb3dzZXIgYmluYXJ5IHByb3ZpZGVkLiIpCisgICAgICAgICAgICByZXR1cm4gTm9u
ZQogCi0gICAgICAgIHBhdGggPSBmaW5kX2V4ZWN1dGFibGUoImNocm9tZWRyaXZlciIsIGRlc3Qp
Ci0gICAgICAgIHN0ID0gb3Muc3RhdChwYXRoKQotICAgICAgICBvcy5jaG1vZChwYXRoLCBzdC5z
dF9tb2RlIHwgc3RhdC5TX0lFWEVDKQotICAgICAgICByZXR1cm4gcGF0aAorICAgICAgICBpZiB1
bmFtZVswXSA9PSAiV2luZG93cyI6CisgICAgICAgICAgICByZXR1cm4gX2dldF9maWxldmVyc2lv
bihiaW5hcnksIHNlbGYubG9nZ2VyKQogCi0gICAgZGVmIHZlcnNpb24oc2VsZiwgYmluYXJ5PU5v
bmUpOgotICAgICAgICBiaW5hcnkgPSBiaW5hcnkgb3Igc2VsZi5iaW5hcnkKLSAgICAgICAgaWYg
dW5hbWVbMF0gIT0gIldpbmRvd3MiOgotICAgICAgICAgICAgdHJ5OgotICAgICAgICAgICAgICAg
IHZlcnNpb25fc3RyaW5nID0gY2FsbChiaW5hcnksICItLXZlcnNpb24iKS5zdHJpcCgpCi0gICAg
ICAgICAgICBleGNlcHQgc3VicHJvY2Vzcy5DYWxsZWRQcm9jZXNzRXJyb3I6Ci0gICAgICAgICAg
ICAgICAgbG9nZ2VyLndhcm4oIkZhaWxlZCB0byBjYWxsICVzIiwgYmluYXJ5KQotICAgICAgICAg
ICAgICAgIHJldHVybiBOb25lCi0gICAgICAgICAgICBtID0gcmUubWF0Y2gociJHb29nbGUgQ2hy
b21lICguKikiLCB2ZXJzaW9uX3N0cmluZykKLSAgICAgICAgICAgIGlmIG5vdCBtOgotICAgICAg
ICAgICAgICAgIGxvZ2dlci53YXJuKCJGYWlsZWQgdG8gZXh0cmFjdCB2ZXJzaW9uIGZyb206IHMl
IiwgdmVyc2lvbl9zdHJpbmcpCi0gICAgICAgICAgICAgICAgcmV0dXJuIE5vbmUKLSAgICAgICAg
ICAgIHJldHVybiBtLmdyb3VwKDEpCi0gICAgICAgIGxvZ2dlci53YXJuKCJVbmFibGUgdG8gZXh0
cmFjdCB2ZXJzaW9uIGZyb20gYmluYXJ5IG9uIFdpbmRvd3MuIikKLSAgICAgICAgcmV0dXJuIE5v
bmUKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgdmVyc2lvbl9zdHJpbmcgPSBjYWxsKGJpbmFy
eSwgIi0tdmVyc2lvbiIpLnN0cmlwKCkKKyAgICAgICAgZXhjZXB0IHN1YnByb2Nlc3MuQ2FsbGVk
UHJvY2Vzc0Vycm9yOgorICAgICAgICAgICAgc2VsZi5sb2dnZXIud2FybmluZygiRmFpbGVkIHRv
IGNhbGwgJXMiICUgYmluYXJ5KQorICAgICAgICAgICAgcmV0dXJuIE5vbmUKKyAgICAgICAgbSA9
IHJlLm1hdGNoKHIiKD86R29vZ2xlIENocm9tZXxDaHJvbWl1bSkgKC4qKSIsIHZlcnNpb25fc3Ry
aW5nKQorICAgICAgICBpZiBub3QgbToKKyAgICAgICAgICAgIHNlbGYubG9nZ2VyLndhcm5pbmco
IkZhaWxlZCB0byBleHRyYWN0IHZlcnNpb24gZnJvbTogJXMiICUgdmVyc2lvbl9zdHJpbmcpCisg
ICAgICAgICAgICByZXR1cm4gTm9uZQorICAgICAgICByZXR1cm4gbS5ncm91cCgxKQogCiAKLWNs
YXNzIENocm9tZUFuZHJvaWQoQnJvd3Nlcik6Ci0gICAgIiIiQ2hyb21lLXNwZWNpZmljIGludGVy
ZmFjZSBmb3IgQW5kcm9pZC4KK2NsYXNzIENocm9tZUFuZHJvaWRCYXNlKEJyb3dzZXIpOgorICAg
ICIiIkEgYmFzZSBjbGFzcyBmb3IgQ2hyb21lQW5kcm9pZCBhbmQgQW5kcm9pZFdlYlZpZXcuCiAK
KyAgICBPbiBBbmRyb2lkLCBXZWJWaWV3IGlzIGJhc2VkIG9uIENocm9taXVtIG9wZW4gc291cmNl
IHByb2plY3QsIGFuZCBvbiBzb21lCisgICAgdmVyc2lvbnMgb2YgQW5kcm9pZCB3ZSBzaGFyZSB0
aGUgbGlicmFyeSB3aXRoIENocm9tZS4gVGhlcmVmb3JlLCB3ZSBoYXZlCisgICAgYSB2ZXJ5IHNp
bWlsYXIgV1BUIHJ1bm5lciBpbXBsZW1lbnRhdGlvbi4KICAgICBJbmNsdWRlcyB3ZWJkcml2ZXIg
aW5zdGFsbGF0aW9uLgogICAgICIiIgorICAgIF9fbWV0YWNsYXNzX18gPSBBQkNNZXRhICAjIFRo
aXMgaXMgYW4gYWJzdHJhY3QgY2xhc3MuCisKKyAgICBkZWYgX19pbml0X18oc2VsZiwgbG9nZ2Vy
KToKKyAgICAgICAgc3VwZXIoQ2hyb21lQW5kcm9pZEJhc2UsIHNlbGYpLl9faW5pdF9fKGxvZ2dl
cikKKyAgICAgICAgc2VsZi5kZXZpY2Vfc2VyaWFsID0gTm9uZQorCisgICAgZGVmIGRvd25sb2Fk
KHNlbGYsIGRlc3Q9Tm9uZSwgY2hhbm5lbD1Ob25lKToKKyAgICAgICAgcmFpc2UgTm90SW1wbGVt
ZW50ZWRFcnJvcgorCisgICAgZGVmIGluc3RhbGwoc2VsZiwgZGVzdD1Ob25lLCBjaGFubmVsPU5v
bmUpOgorICAgICAgICByYWlzZSBOb3RJbXBsZW1lbnRlZEVycm9yCisKKyAgICBAYWJzdHJhY3Rt
ZXRob2QKKyAgICBkZWYgZmluZF9iaW5hcnkoc2VsZiwgdmVudl9wYXRoPU5vbmUsIGNoYW5uZWw9
Tm9uZSk6CisgICAgICAgIHJhaXNlIE5vdEltcGxlbWVudGVkRXJyb3IKKworICAgIGRlZiBmaW5k
X3dlYmRyaXZlcihzZWxmLCBjaGFubmVsPU5vbmUpOgorICAgICAgICByZXR1cm4gZmluZF9leGVj
dXRhYmxlKCJjaHJvbWVkcml2ZXIiKQorCisgICAgZGVmIGluc3RhbGxfd2ViZHJpdmVyKHNlbGYs
IGRlc3Q9Tm9uZSwgY2hhbm5lbD1Ob25lLCBicm93c2VyX2JpbmFyeT1Ob25lKToKKyAgICAgICAg
aWYgYnJvd3Nlcl9iaW5hcnkgaXMgTm9uZToKKyAgICAgICAgICAgIGJyb3dzZXJfYmluYXJ5ID0g
c2VsZi5maW5kX2JpbmFyeShjaGFubmVsKQorICAgICAgICBjaHJvbWUgPSBDaHJvbWUoc2VsZi5s
b2dnZXIpCisgICAgICAgIHJldHVybiBjaHJvbWUuaW5zdGFsbF93ZWJkcml2ZXJfYnlfdmVyc2lv
bigKKyAgICAgICAgICAgIHNlbGYudmVyc2lvbihicm93c2VyX2JpbmFyeSksIGRlc3QpCisKKyAg
ICBkZWYgdmVyc2lvbihzZWxmLCBiaW5hcnk9Tm9uZSwgd2ViZHJpdmVyX2JpbmFyeT1Ob25lKToK
KyAgICAgICAgaWYgbm90IGJpbmFyeToKKyAgICAgICAgICAgIHNlbGYubG9nZ2VyLndhcm5pbmco
Ik5vIHBhY2thZ2UgbmFtZSBwcm92aWRlZC4iKQorICAgICAgICAgICAgcmV0dXJuIE5vbmUKKwor
ICAgICAgICBjb21tYW5kID0gWydhZGInXQorICAgICAgICBpZiBzZWxmLmRldmljZV9zZXJpYWw6
CisgICAgICAgICAgICBjb21tYW5kLmV4dGVuZChbJy1zJywgc2VsZi5kZXZpY2Vfc2VyaWFsXSkK
KyAgICAgICAgY29tbWFuZC5leHRlbmQoWydzaGVsbCcsICdkdW1wc3lzJywgJ3BhY2thZ2UnLCBi
aW5hcnldKQorICAgICAgICB0cnk6CisgICAgICAgICAgICBvdXRwdXQgPSBjYWxsKCpjb21tYW5k
KQorICAgICAgICBleGNlcHQgKHN1YnByb2Nlc3MuQ2FsbGVkUHJvY2Vzc0Vycm9yLCBPU0Vycm9y
KToKKyAgICAgICAgICAgIHNlbGYubG9nZ2VyLndhcm5pbmcoIkZhaWxlZCB0byBjYWxsICVzIiAl
ICIgIi5qb2luKGNvbW1hbmQpKQorICAgICAgICAgICAgcmV0dXJuIE5vbmUKKyAgICAgICAgbWF0
Y2ggPSByZS5zZWFyY2gocid2ZXJzaW9uTmFtZT0oLiopJywgb3V0cHV0KQorICAgICAgICBpZiBu
b3QgbWF0Y2g6CisgICAgICAgICAgICBzZWxmLmxvZ2dlci53YXJuaW5nKCJGYWlsZWQgdG8gZmlu
ZCB2ZXJzaW9uTmFtZSIpCisgICAgICAgICAgICByZXR1cm4gTm9uZQorICAgICAgICByZXR1cm4g
bWF0Y2guZ3JvdXAoMSkKKworCitjbGFzcyBDaHJvbWVBbmRyb2lkKENocm9tZUFuZHJvaWRCYXNl
KToKKyAgICAiIiJDaHJvbWUtc3BlY2lmaWMgaW50ZXJmYWNlIGZvciBBbmRyb2lkLgorICAgICIi
IgogCiAgICAgcHJvZHVjdCA9ICJjaHJvbWVfYW5kcm9pZCIKICAgICByZXF1aXJlbWVudHMgPSAi
cmVxdWlyZW1lbnRzX2Nocm9tZV9hbmRyb2lkLnR4dCIKIAotICAgIGRlZiBpbnN0YWxsKHNlbGYs
IGRlc3Q9Tm9uZSk6CisgICAgZGVmIGZpbmRfYmluYXJ5KHNlbGYsIHZlbnZfcGF0aD1Ob25lLCBj
aGFubmVsPU5vbmUpOgorICAgICAgICBpZiBjaGFubmVsIGluICgiYmV0YSIsICJkZXYiLCAiY2Fu
YXJ5Iik6CisgICAgICAgICAgICByZXR1cm4gImNvbS5jaHJvbWUuIiArIGNoYW5uZWwKKyAgICAg
ICAgcmV0dXJuICJjb20uYW5kcm9pZC5jaHJvbWUiCisKKworY2xhc3MgQW5kcm9pZFdlYnZpZXco
Q2hyb21lQW5kcm9pZEJhc2UpOgorICAgICIiIldlYnZpZXctc3BlY2lmaWMgaW50ZXJmYWNlIGZv
ciBBbmRyb2lkLgorCisgICAgRGVzaWduIGRvYzoKKyAgICBodHRwczovL2RvY3MuZ29vZ2xlLmNv
bS9kb2N1bWVudC9kLzE5Y0d6MzFsekNCZHBidFNDOTJzdlhsaGxobjY4aHJzVndTQjdjZlp0NTRv
L3ZpZXcKKyAgICAiIiIKKworICAgIHByb2R1Y3QgPSAiYW5kcm9pZF93ZWJ2aWV3IgorICAgIHJl
cXVpcmVtZW50cyA9ICJyZXF1aXJlbWVudHNfYW5kcm9pZF93ZWJ2aWV3LnR4dCIKKworICAgIGRl
ZiBmaW5kX2JpbmFyeShzZWxmLCB2ZW52X3BhdGg9Tm9uZSwgY2hhbm5lbD1Ob25lKToKKyAgICAg
ICAgIyBKdXN0IGdldCB0aGUgY3VycmVudCBwYWNrYWdlIG5hbWUgb2YgdGhlIFdlYlZpZXcgcHJv
dmlkZXIuCisgICAgICAgICMgRm9yIFdlYlZpZXcsIGl0IGlzIG5vdCB0cml2aWFsIHRvIGNoYW5n
ZSB0aGUgV2ViVmlldyBwcm92aWRlciwgc28KKyAgICAgICAgIyB3ZSB3aWxsIGp1c3QgZ3JhYiB3
aGF0ZXZlciBpcyBhdmFpbGFibGUuCisgICAgICAgICMgaHR0cHM6Ly9jaHJvbWl1bS5nb29nbGVz
b3VyY2UuY29tL2Nocm9taXVtL3NyYy8rL0hFQUQvYW5kcm9pZF93ZWJ2aWV3L2RvY3MvY2hhbm5l
bHMubWQKKyAgICAgICAgY29tbWFuZCA9IFsnYWRiJ10KKyAgICAgICAgaWYgc2VsZi5kZXZpY2Vf
c2VyaWFsOgorICAgICAgICAgICAgY29tbWFuZC5leHRlbmQoWyctcycsIHNlbGYuZGV2aWNlX3Nl
cmlhbF0pCisgICAgICAgIGNvbW1hbmQuZXh0ZW5kKFsnc2hlbGwnLCAnZHVtcHN5cycsICd3ZWJ2
aWV3dXBkYXRlJ10pCisgICAgICAgIHRyeToKKyAgICAgICAgICAgIG91dHB1dCA9IGNhbGwoKmNv
bW1hbmQpCisgICAgICAgIGV4Y2VwdCAoc3VicHJvY2Vzcy5DYWxsZWRQcm9jZXNzRXJyb3IsIE9T
RXJyb3IpOgorICAgICAgICAgICAgc2VsZi5sb2dnZXIud2FybmluZygiRmFpbGVkIHRvIGNhbGwg
JXMiICUgIiAiLmpvaW4oY29tbWFuZCkpCisgICAgICAgICAgICByZXR1cm4gTm9uZQorICAgICAg
ICBtID0gcmUuc2VhcmNoKHInXlxzKkN1cnJlbnQgV2ViVmlldyBwYWNrYWdlIFwobmFtZSwgdmVy
c2lvblwpOiBcKCguKiksIChbMC05Ll0qKVwpJCcsCisgICAgICAgICAgICAgICAgICAgICAgb3V0
cHV0LCByZS5NKQorICAgICAgICBpZiBtIGlzIE5vbmU6CisgICAgICAgICAgICBzZWxmLmxvZ2dl
ci53YXJuaW5nKCJVbmFibGUgdG8gZmluZCBjdXJyZW50IFdlYlZpZXcgcGFja2FnZSBpbiBkdW1w
c3lzIG91dHB1dCIpCisgICAgICAgICAgICByZXR1cm4gTm9uZQorICAgICAgICBzZWxmLmxvZ2dl
ci53YXJuaW5nKCJGaW5hbCBwYWNrYWdlIG5hbWU6ICIgKyBtLmdyb3VwKDEpKQorICAgICAgICBy
ZXR1cm4gbS5ncm91cCgxKQorCisKK2NsYXNzIENocm9tZWlPUyhCcm93c2VyKToKKyAgICAiIiJD
aHJvbWUtc3BlY2lmaWMgaW50ZXJmYWNlIGZvciBpT1MuCisgICAgIiIiCisKKyAgICBwcm9kdWN0
ID0gImNocm9tZV9pb3MiCisgICAgcmVxdWlyZW1lbnRzID0gInJlcXVpcmVtZW50c19jaHJvbWVf
aW9zLnR4dCIKKworICAgIGRlZiBkb3dubG9hZChzZWxmLCBkZXN0PU5vbmUsIGNoYW5uZWw9Tm9u
ZSk6CiAgICAgICAgIHJhaXNlIE5vdEltcGxlbWVudGVkRXJyb3IKIAotICAgIGRlZiBmaW5kX2Jp
bmFyeShzZWxmKToKKyAgICBkZWYgaW5zdGFsbChzZWxmLCBkZXN0PU5vbmUsIGNoYW5uZWw9Tm9u
ZSk6CiAgICAgICAgIHJhaXNlIE5vdEltcGxlbWVudGVkRXJyb3IKIAotICAgIGRlZiBmaW5kX3dl
YmRyaXZlcihzZWxmKToKLSAgICAgICAgcmV0dXJuIGZpbmRfZXhlY3V0YWJsZSgiY2hyb21lZHJp
dmVyIikKKyAgICBkZWYgZmluZF9iaW5hcnkoc2VsZiwgdmVudl9wYXRoPU5vbmUsIGNoYW5uZWw9
Tm9uZSk6CisgICAgICAgIHJhaXNlIE5vdEltcGxlbWVudGVkRXJyb3IKIAotICAgIGRlZiBpbnN0
YWxsX3dlYmRyaXZlcihzZWxmLCBkZXN0PU5vbmUpOgotICAgICAgICBjaHJvbWUgPSBDaHJvbWUo
KQotICAgICAgICByZXR1cm4gY2hyb21lLmluc3RhbGxfd2ViZHJpdmVyKGRlc3QpCisgICAgZGVm
IGZpbmRfd2ViZHJpdmVyKHNlbGYsIGNoYW5uZWw9Tm9uZSk6CisgICAgICAgIHJhaXNlIE5vdElt
cGxlbWVudGVkRXJyb3IKIAotICAgIGRlZiB2ZXJzaW9uKHNlbGYsIGJpbmFyeSk6CisgICAgZGVm
IGluc3RhbGxfd2ViZHJpdmVyKHNlbGYsIGRlc3Q9Tm9uZSwgY2hhbm5lbD1Ob25lLCBicm93c2Vy
X2JpbmFyeT1Ob25lKToKKyAgICAgICAgcmFpc2UgTm90SW1wbGVtZW50ZWRFcnJvcgorCisgICAg
ZGVmIHZlcnNpb24oc2VsZiwgYmluYXJ5PU5vbmUsIHdlYmRyaXZlcl9iaW5hcnk9Tm9uZSk6CiAg
ICAgICAgIHJldHVybiBOb25lCiAKIApAQCAtNDIyLDEwICs3ODUsMTMgQEAgY2xhc3MgT3BlcmEo
QnJvd3Nlcik6CiAgICAgICAgIGlmIHVuYW1lWzBdID09ICJMaW51eCI6CiAgICAgICAgICAgICBy
ZXR1cm4gIi91c3IvYmluL29wZXJhIgogICAgICAgICAjIFRPRE8gV2luZG93cywgTWFjPwotICAg
ICAgICBsb2dnZXIud2FybigiVW5hYmxlIHRvIGZpbmQgdGhlIGJyb3dzZXIgYmluYXJ5LiIpCisg
ICAgICAgIHNlbGYubG9nZ2VyLndhcm5pbmcoIlVuYWJsZSB0byBmaW5kIHRoZSBicm93c2VyIGJp
bmFyeS4iKQogICAgICAgICByZXR1cm4gTm9uZQogCi0gICAgZGVmIGluc3RhbGwoc2VsZiwgZGVz
dD1Ob25lKToKKyAgICBkZWYgZG93bmxvYWQoc2VsZiwgZGVzdD1Ob25lLCBjaGFubmVsPU5vbmUp
OgorICAgICAgICByYWlzZSBOb3RJbXBsZW1lbnRlZEVycm9yCisKKyAgICBkZWYgaW5zdGFsbChz
ZWxmLCBkZXN0PU5vbmUsIGNoYW5uZWw9Tm9uZSk6CiAgICAgICAgIHJhaXNlIE5vdEltcGxlbWVu
dGVkRXJyb3IKIAogICAgIGRlZiBwbGF0Zm9ybV9zdHJpbmcoc2VsZik6CkBAIC00NDcsMTMgKzgx
MywxMyBAQCBjbGFzcyBPcGVyYShCcm93c2VyKToKIAogICAgICAgICByZXR1cm4gIiVzJXMiICUg
KHBsYXRmb3JtLCBiaXRzKQogCi0gICAgZGVmIGZpbmRfYmluYXJ5KHNlbGYpOgorICAgIGRlZiBm
aW5kX2JpbmFyeShzZWxmLCB2ZW52X3BhdGg9Tm9uZSwgY2hhbm5lbD1Ob25lKToKICAgICAgICAg
cmFpc2UgTm90SW1wbGVtZW50ZWRFcnJvcgogCi0gICAgZGVmIGZpbmRfd2ViZHJpdmVyKHNlbGYp
OgorICAgIGRlZiBmaW5kX3dlYmRyaXZlcihzZWxmLCBjaGFubmVsPU5vbmUpOgogICAgICAgICBy
ZXR1cm4gZmluZF9leGVjdXRhYmxlKCJvcGVyYWRyaXZlciIpCiAKLSAgICBkZWYgaW5zdGFsbF93
ZWJkcml2ZXIoc2VsZiwgZGVzdD1Ob25lKToKKyAgICBkZWYgaW5zdGFsbF93ZWJkcml2ZXIoc2Vs
ZiwgZGVzdD1Ob25lLCBjaGFubmVsPU5vbmUsIGJyb3dzZXJfYmluYXJ5PU5vbmUpOgogICAgICAg
ICBpZiBkZXN0IGlzIE5vbmU6CiAgICAgICAgICAgICBkZXN0ID0gb3MucHdkCiAgICAgICAgIGxh
dGVzdCA9IGdldCgiaHR0cHM6Ly9hcGkuZ2l0aHViLmNvbS9yZXBvcy9vcGVyYXNvZnR3YXJlL29w
ZXJhY2hyb21pdW1kcml2ZXIvcmVsZWFzZXMvbGF0ZXN0IikuanNvbigpWyJ0YWdfbmFtZSJdCkBA
IC00NzAsMTUgKzgzNiwxMjEgQEAgY2xhc3MgT3BlcmEoQnJvd3Nlcik6CiAgICAgICAgIG9zLmNo
bW9kKHBhdGgsIHN0LnN0X21vZGUgfCBzdGF0LlNfSUVYRUMpCiAgICAgICAgIHJldHVybiBwYXRo
CiAKLSAgICBkZWYgdmVyc2lvbihzZWxmLCBiaW5hcnkpOgorICAgIGRlZiB2ZXJzaW9uKHNlbGYs
IGJpbmFyeT1Ob25lLCB3ZWJkcml2ZXJfYmluYXJ5PU5vbmUpOgogICAgICAgICAiIiJSZXRyaWV2
ZSB0aGUgcmVsZWFzZSB2ZXJzaW9uIG9mIHRoZSBpbnN0YWxsZWQgYnJvd3Nlci4iIiIKICAgICAg
ICAgYmluYXJ5ID0gYmluYXJ5IG9yIHNlbGYuYmluYXJ5CiAgICAgICAgIHRyeToKICAgICAgICAg
ICAgIG91dHB1dCA9IGNhbGwoYmluYXJ5LCAiLS12ZXJzaW9uIikKICAgICAgICAgZXhjZXB0IHN1
YnByb2Nlc3MuQ2FsbGVkUHJvY2Vzc0Vycm9yOgotICAgICAgICAgICAgbG9nZ2VyLndhcm4oIkZh
aWxlZCB0byBjYWxsICVzIiwgYmluYXJ5KQorICAgICAgICAgICAgc2VsZi5sb2dnZXIud2Fybmlu
ZygiRmFpbGVkIHRvIGNhbGwgJXMiICUgYmluYXJ5KQorICAgICAgICAgICAgcmV0dXJuIE5vbmUK
KyAgICAgICAgbSA9IHJlLnNlYXJjaChyIlswLTlcLl0rKCBbYS16XSspPyQiLCBvdXRwdXQuc3Ry
aXAoKSkKKyAgICAgICAgaWYgbToKKyAgICAgICAgICAgIHJldHVybiBtLmdyb3VwKDApCisKKwor
Y2xhc3MgRWRnZUNocm9taXVtKEJyb3dzZXIpOgorICAgICIiIk1pY3Jvc29mdEVkZ2Utc3BlY2lm
aWMgaW50ZXJmYWNlLiIiIgorICAgIHBsYXRmb3JtID0geworICAgICAgICAiTGludXgiOiAibGlu
dXgiLAorICAgICAgICAiV2luZG93cyI6ICJ3aW4iLAorICAgICAgICAiRGFyd2luIjogIm1hY29z
IgorICAgIH0uZ2V0KHVuYW1lWzBdKQorICAgIHByb2R1Y3QgPSAiZWRnZWNocm9taXVtIgorICAg
IGVkZ2Vkcml2ZXJfbmFtZSA9ICJtc2VkZ2Vkcml2ZXIiCisgICAgcmVxdWlyZW1lbnRzID0gInJl
cXVpcmVtZW50c19lZGdlX2Nocm9taXVtLnR4dCIKKworICAgIGRlZiBkb3dubG9hZChzZWxmLCBk
ZXN0PU5vbmUsIGNoYW5uZWw9Tm9uZSk6CisgICAgICAgIHJhaXNlIE5vdEltcGxlbWVudGVkRXJy
b3IKKworICAgIGRlZiBpbnN0YWxsKHNlbGYsIGRlc3Q9Tm9uZSwgY2hhbm5lbD1Ob25lKToKKyAg
ICAgICAgcmFpc2UgTm90SW1wbGVtZW50ZWRFcnJvcgorCisgICAgZGVmIGZpbmRfYmluYXJ5KHNl
bGYsIHZlbnZfcGF0aD1Ob25lLCBjaGFubmVsPU5vbmUpOgorICAgICAgICBiaW5hcnkgPSBOb25l
CisgICAgICAgIGlmIHNlbGYucGxhdGZvcm0gPT0gIndpbiI6CisgICAgICAgICAgICBiaW5hcnlu
YW1lID0gIm1zZWRnZSIKKyAgICAgICAgICAgIGJpbmFyeSA9IGZpbmRfZXhlY3V0YWJsZShiaW5h
cnluYW1lKQorICAgICAgICAgICAgaWYgbm90IGJpbmFyeToKKyAgICAgICAgICAgICAgICAjIFVz
ZSBwYXRocyBmcm9tIGRpZmZlcmVudCBFZGdlIGNoYW5uZWxzIHN0YXJ0aW5nIHdpdGggUmVsZWFz
ZVxCZXRhXERldlxDYW5hcnkKKyAgICAgICAgICAgICAgICB3aW5wYXRocyA9IFtvcy5wYXRoLmV4
cGFuZHVzZXIoIn5cXEFwcERhdGFcXExvY2FsXFxNaWNyb3NvZnRcXEVkZ2VcXEFwcGxpY2F0aW9u
IiksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3MucGF0aC5leHBhbmR2YXJzKCIkU1lT
VEVNRFJJVkVcXFByb2dyYW0gRmlsZXNcXE1pY3Jvc29mdFxcRWRnZSBCZXRhXFxBcHBsaWNhdGlv
biIpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9zLnBhdGguZXhwYW5kdmFycygiJFNZ
U1RFTURSSVZFXFxQcm9ncmFtIEZpbGVzXFxNaWNyb3NvZnRcXEVkZ2UgRGV2XFxBcHBsaWNhdGlv
biIpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9zLnBhdGguZXhwYW5kdmFycygiJFNZ
U1RFTURSSVZFXFxQcm9ncmFtIEZpbGVzICh4ODYpXFxNaWNyb3NvZnRcXEVkZ2UgQmV0YVxcQXBw
bGljYXRpb24iKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcy5wYXRoLmV4cGFuZHZh
cnMoIiRTWVNURU1EUklWRVxcUHJvZ3JhbSBGaWxlcyAoeDg2KVxcTWljcm9zb2Z0XFxFZGdlIERl
dlxcQXBwbGljYXRpb24iKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcy5wYXRoLmV4
cGFuZHVzZXIoIn5cXEFwcERhdGFcTG9jYWxcXE1pY3Jvc29mdFxcRWRnZSBTeFNcXEFwcGxpY2F0
aW9uIildCisgICAgICAgICAgICAgICAgcmV0dXJuIGZpbmRfZXhlY3V0YWJsZShiaW5hcnluYW1l
LCBvcy5wYXRoc2VwLmpvaW4od2lucGF0aHMpKQorICAgICAgICBpZiBzZWxmLnBsYXRmb3JtID09
ICJtYWNvcyI6CisgICAgICAgICAgICBiaW5hcnluYW1lID0gIk1pY3Jvc29mdCBFZGdlIENhbmFy
eSIKKyAgICAgICAgICAgIGJpbmFyeSA9IGZpbmRfZXhlY3V0YWJsZShiaW5hcnluYW1lKQorICAg
ICAgICAgICAgaWYgbm90IGJpbmFyeToKKyAgICAgICAgICAgICAgICBtYWNwYXRocyA9IFsiL0Fw
cGxpY2F0aW9ucy9NaWNyb3NvZnQgRWRnZS5hcHAvQ29udGVudHMvTWFjT1MiLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIG9zLnBhdGguZXhwYW5kdXNlcigifi9BcHBsaWNhdGlvbnMvTWlj
cm9zb2Z0IEVkZ2UuYXBwL0NvbnRlbnRzL01hY09TIiksCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIi9BcHBsaWNhdGlvbnMvTWljcm9zb2Z0IEVkZ2UgQ2FuYXJ5LmFwcC9Db250ZW50cy9N
YWNPUyIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3MucGF0aC5leHBhbmR1c2VyKCJ+
L0FwcGxpY2F0aW9ucy9NaWNyb3NvZnQgRWRnZSBDYW5hcnkuYXBwL0NvbnRlbnRzL01hY09TIild
CisgICAgICAgICAgICAgICAgcmV0dXJuIGZpbmRfZXhlY3V0YWJsZSgiTWljcm9zb2Z0IEVkZ2Ug
Q2FuYXJ5Iiwgb3MucGF0aHNlcC5qb2luKG1hY3BhdGhzKSkKKyAgICAgICAgcmV0dXJuIGJpbmFy
eQorCisgICAgZGVmIGZpbmRfd2ViZHJpdmVyKHNlbGYsIGNoYW5uZWw9Tm9uZSk6CisgICAgICAg
IHJldHVybiBmaW5kX2V4ZWN1dGFibGUoIm1zZWRnZWRyaXZlciIpCisKKyAgICBkZWYgaW5zdGFs
bF93ZWJkcml2ZXIoc2VsZiwgZGVzdD1Ob25lLCBjaGFubmVsPU5vbmUsIGJyb3dzZXJfYmluYXJ5
PU5vbmUpOgorICAgICAgICBpZiBzZWxmLnBsYXRmb3JtICE9ICJ3aW4iIGFuZCBzZWxmLnBsYXRm
b3JtICE9ICJtYWNvcyI6CisgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJPbmx5IFdpbmRv
d3MgYW5kIE1hYyBwbGF0Zm9ybXMgYXJlIGN1cnJlbnRseSBzdXBwb3J0ZWQiKQorCisgICAgICAg
IGlmIGRlc3QgaXMgTm9uZToKKyAgICAgICAgICAgIGRlc3QgPSBvcy5wd2QKKworICAgICAgICBp
ZiBjaGFubmVsIGlzIE5vbmU6CisgICAgICAgICAgICB2ZXJzaW9uX3VybCA9ICJodHRwczovL21z
ZWRnZWRyaXZlci5henVyZWVkZ2UubmV0L0xBVEVTVF9ERVYiCisgICAgICAgIGVsc2U6CisgICAg
ICAgICAgICB2ZXJzaW9uX3VybCA9ICJodHRwczovL21zZWRnZWRyaXZlci5henVyZWVkZ2UubmV0
L0xBVEVTVF8lcyIgJSBjaGFubmVsLnVwcGVyKCkKKyAgICAgICAgdmVyc2lvbiA9IGdldCh2ZXJz
aW9uX3VybCkudGV4dC5zdHJpcCgpCisKKyAgICAgICAgaWYgc2VsZi5wbGF0Zm9ybSA9PSAibWFj
b3MiOgorICAgICAgICAgICAgYml0cyA9ICJtYWM2NCIKKyAgICAgICAgICAgIGVkZ2Vkcml2ZXJf
cGF0aCA9IG9zLnBhdGguam9pbihkZXN0LCBzZWxmLmVkZ2Vkcml2ZXJfbmFtZSkKKyAgICAgICAg
ZWxzZToKKyAgICAgICAgICAgIGJpdHMgPSAid2luNjQiIGlmIHVuYW1lWzRdID09ICJ4ODZfNjQi
IGVsc2UgIndpbjMyIgorICAgICAgICAgICAgZWRnZWRyaXZlcl9wYXRoID0gb3MucGF0aC5qb2lu
KGRlc3QsICIlcy5leGUiICUgc2VsZi5lZGdlZHJpdmVyX25hbWUpCisgICAgICAgIHVybCA9ICJo
dHRwczovL21zZWRnZWRyaXZlci5henVyZWVkZ2UubmV0LyVzL2VkZ2Vkcml2ZXJfJXMuemlwIiAl
ICh2ZXJzaW9uLCBiaXRzKQorCisgICAgICAgICMgY2xlYW51cCBleGlzdGluZyBFZGdlIGRyaXZl
ciBmaWxlcyB0byBhdm9pZCBhY2Nlc3NfZGVuaWVkIGVycm9ycyB3aGVuIHVuemlwcGluZworICAg
ICAgICBpZiBvcy5wYXRoLmlzZmlsZShlZGdlZHJpdmVyX3BhdGgpOgorICAgICAgICAgICAgIyBy
ZW1vdmUgcmVhZC1vbmx5IGF0dHJpYnV0ZQorICAgICAgICAgICAgb3MuY2htb2QoZWRnZWRyaXZl
cl9wYXRoLCBzdGF0LlNfSVJXWFUgfCBzdGF0LlNfSVJXWEcgfCBzdGF0LlNfSVJXWE8pICAjIDA3
NzcKKyAgICAgICAgICAgIHByaW50KCJEZWxldGUgJXMgZmlsZSIgJSBlZGdlZHJpdmVyX3BhdGgp
CisgICAgICAgICAgICBvcy5yZW1vdmUoZWRnZWRyaXZlcl9wYXRoKQorICAgICAgICBkcml2ZXJf
bm90ZXNfcGF0aCA9IG9zLnBhdGguam9pbihkZXN0LCAiRHJpdmVyX25vdGVzIikKKyAgICAgICAg
aWYgb3MucGF0aC5pc2Rpcihkcml2ZXJfbm90ZXNfcGF0aCk6CisgICAgICAgICAgICBwcmludCgi
RGVsZXRlICVzIGZvbGRlciIgJSBkcml2ZXJfbm90ZXNfcGF0aCkKKyAgICAgICAgICAgIHNodXRp
bC5ybXRyZWUoZHJpdmVyX25vdGVzX3BhdGgsIGlnbm9yZV9lcnJvcnM9RmFsc2UsIG9uZXJyb3I9
aGFuZGxlX3JlbW92ZV9yZWFkb25seSkKKworICAgICAgICBzZWxmLmxvZ2dlci5pbmZvKCJEb3du
bG9hZGluZyBNU0VkZ2VEcml2ZXIgZnJvbSAlcyIgJSB1cmwpCisgICAgICAgIHVuemlwKGdldCh1
cmwpLnJhdywgZGVzdCkKKyAgICAgICAgaWYgb3MucGF0aC5pc2ZpbGUoZWRnZWRyaXZlcl9wYXRo
KToKKyAgICAgICAgICAgIHNlbGYubG9nZ2VyLmluZm8oIlN1Y2Nlc3NmdWxseSBkb3dubG9hZGVk
IE1TRWRnZURyaXZlciB0byAlcyIgJSBlZGdlZHJpdmVyX3BhdGgpCisgICAgICAgIHJldHVybiBm
aW5kX2V4ZWN1dGFibGUoc2VsZi5lZGdlZHJpdmVyX25hbWUsIGRlc3QpCisKKyAgICBkZWYgdmVy
c2lvbihzZWxmLCBiaW5hcnk9Tm9uZSwgd2ViZHJpdmVyX2JpbmFyeT1Ob25lKToKKyAgICAgICAg
aWYgYmluYXJ5IGlzIE5vbmU6CisgICAgICAgICAgICBiaW5hcnkgPSBzZWxmLmZpbmRfYmluYXJ5
KCkKKyAgICAgICAgaWYgc2VsZi5wbGF0Zm9ybSAhPSAid2luIjoKKyAgICAgICAgICAgIHRyeToK
KyAgICAgICAgICAgICAgICB2ZXJzaW9uX3N0cmluZyA9IGNhbGwoYmluYXJ5LCAiLS12ZXJzaW9u
Iikuc3RyaXAoKQorICAgICAgICAgICAgZXhjZXB0IHN1YnByb2Nlc3MuQ2FsbGVkUHJvY2Vzc0Vy
cm9yOgorICAgICAgICAgICAgICAgIHNlbGYubG9nZ2VyLndhcm5pbmcoIkZhaWxlZCB0byBjYWxs
ICVzIiAlIGJpbmFyeSkKKyAgICAgICAgICAgICAgICByZXR1cm4gTm9uZQorICAgICAgICAgICAg
bSA9IHJlLm1hdGNoKHIiTWljcm9zb2Z0IEVkZ2UgKC4qKSAiLCB2ZXJzaW9uX3N0cmluZykKKyAg
ICAgICAgICAgIGlmIG5vdCBtOgorICAgICAgICAgICAgICAgIHNlbGYubG9nZ2VyLndhcm5pbmco
IkZhaWxlZCB0byBleHRyYWN0IHZlcnNpb24gZnJvbTogJXMiICUgdmVyc2lvbl9zdHJpbmcpCisg
ICAgICAgICAgICAgICAgcmV0dXJuIE5vbmUKKyAgICAgICAgICAgIHJldHVybiBtLmdyb3VwKDEp
CisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBpZiBiaW5hcnkgaXMgbm90IE5vbmU6CisgICAg
ICAgICAgICAgICAgcmV0dXJuIF9nZXRfZmlsZXZlcnNpb24oYmluYXJ5LCBzZWxmLmxvZ2dlcikK
KyAgICAgICAgICAgIHNlbGYubG9nZ2VyLndhcm5pbmcoIkZhaWxlZCB0byBmaW5kIEVkZ2UgYmlu
YXJ5LiIpCiAgICAgICAgICAgICByZXR1cm4gTm9uZQotICAgICAgICByZXR1cm4gcmUuc2VhcmNo
KHIiWzAtOVwuXSsoIFthLXpdKyk/JCIsIG91dHB1dC5zdHJpcCgpKS5ncm91cCgwKQogCiAKIGNs
YXNzIEVkZ2UoQnJvd3Nlcik6CkBAIC00ODcsMjAgKzk1OSwzMiBAQCBjbGFzcyBFZGdlKEJyb3dz
ZXIpOgogICAgIHByb2R1Y3QgPSAiZWRnZSIKICAgICByZXF1aXJlbWVudHMgPSAicmVxdWlyZW1l
bnRzX2VkZ2UudHh0IgogCi0gICAgZGVmIGluc3RhbGwoc2VsZiwgZGVzdD1Ob25lKToKKyAgICBk
ZWYgZG93bmxvYWQoc2VsZiwgZGVzdD1Ob25lLCBjaGFubmVsPU5vbmUpOgogICAgICAgICByYWlz
ZSBOb3RJbXBsZW1lbnRlZEVycm9yCiAKLSAgICBkZWYgZmluZF9iaW5hcnkoc2VsZik6CisgICAg
ZGVmIGluc3RhbGwoc2VsZiwgZGVzdD1Ob25lLCBjaGFubmVsPU5vbmUpOgogICAgICAgICByYWlz
ZSBOb3RJbXBsZW1lbnRlZEVycm9yCiAKLSAgICBkZWYgZmluZF93ZWJkcml2ZXIoc2VsZik6Cisg
ICAgZGVmIGZpbmRfYmluYXJ5KHNlbGYsIHZlbnZfcGF0aD1Ob25lLCBjaGFubmVsPU5vbmUpOgor
ICAgICAgICByYWlzZSBOb3RJbXBsZW1lbnRlZEVycm9yCisKKyAgICBkZWYgZmluZF93ZWJkcml2
ZXIoc2VsZiwgY2hhbm5lbD1Ob25lKToKICAgICAgICAgcmV0dXJuIGZpbmRfZXhlY3V0YWJsZSgi
TWljcm9zb2Z0V2ViRHJpdmVyIikKIAotICAgIGRlZiBpbnN0YWxsX3dlYmRyaXZlcihzZWxmLCBk
ZXN0PU5vbmUpOgorICAgIGRlZiBpbnN0YWxsX3dlYmRyaXZlcihzZWxmLCBkZXN0PU5vbmUsIGNo
YW5uZWw9Tm9uZSwgYnJvd3Nlcl9iaW5hcnk9Tm9uZSk6CiAgICAgICAgIHJhaXNlIE5vdEltcGxl
bWVudGVkRXJyb3IKIAotICAgIGRlZiB2ZXJzaW9uKHNlbGYsIGJpbmFyeSk6Ci0gICAgICAgIHJl
dHVybiBOb25lCisgICAgZGVmIHZlcnNpb24oc2VsZiwgYmluYXJ5PU5vbmUsIHdlYmRyaXZlcl9i
aW5hcnk9Tm9uZSk6CisgICAgICAgIGNvbW1hbmQgPSAiKEdldC1BcHB4UGFja2FnZSBNaWNyb3Nv
ZnQuTWljcm9zb2Z0RWRnZSkuVmVyc2lvbiIKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgcmV0
dXJuIGNhbGwoInBvd2Vyc2hlbGwuZXhlIiwgY29tbWFuZCkuc3RyaXAoKQorICAgICAgICBleGNl
cHQgKHN1YnByb2Nlc3MuQ2FsbGVkUHJvY2Vzc0Vycm9yLCBPU0Vycm9yKToKKyAgICAgICAgICAg
IHNlbGYubG9nZ2VyLndhcm5pbmcoIkZhaWxlZCB0byBjYWxsICVzIGluIFBvd2VyU2hlbGwiICUg
Y29tbWFuZCkKKyAgICAgICAgICAgIHJldHVybiBOb25lCisKKworY2xhc3MgRWRnZVdlYkRyaXZl
cihFZGdlKToKKyAgICBwcm9kdWN0ID0gImVkZ2Vfd2ViZHJpdmVyIgogCiAKIGNsYXNzIEludGVy
bmV0RXhwbG9yZXIoQnJvd3Nlcik6CkBAIC01MDksMTkgKzk5MywyMiBAQCBjbGFzcyBJbnRlcm5l
dEV4cGxvcmVyKEJyb3dzZXIpOgogICAgIHByb2R1Y3QgPSAiaWUiCiAgICAgcmVxdWlyZW1lbnRz
ID0gInJlcXVpcmVtZW50c19pZS50eHQiCiAKLSAgICBkZWYgaW5zdGFsbChzZWxmLCBkZXN0PU5v
bmUpOgorICAgIGRlZiBkb3dubG9hZChzZWxmLCBkZXN0PU5vbmUsIGNoYW5uZWw9Tm9uZSk6Cisg
ICAgICAgIHJhaXNlIE5vdEltcGxlbWVudGVkRXJyb3IKKworICAgIGRlZiBpbnN0YWxsKHNlbGYs
IGRlc3Q9Tm9uZSwgY2hhbm5lbD1Ob25lKToKICAgICAgICAgcmFpc2UgTm90SW1wbGVtZW50ZWRF
cnJvcgogCi0gICAgZGVmIGZpbmRfYmluYXJ5KHNlbGYpOgorICAgIGRlZiBmaW5kX2JpbmFyeShz
ZWxmLCB2ZW52X3BhdGg9Tm9uZSwgY2hhbm5lbD1Ob25lKToKICAgICAgICAgcmFpc2UgTm90SW1w
bGVtZW50ZWRFcnJvcgogCi0gICAgZGVmIGZpbmRfd2ViZHJpdmVyKHNlbGYpOgorICAgIGRlZiBm
aW5kX3dlYmRyaXZlcihzZWxmLCBjaGFubmVsPU5vbmUpOgogICAgICAgICByZXR1cm4gZmluZF9l
eGVjdXRhYmxlKCJJRURyaXZlclNlcnZlci5leGUiKQogCi0gICAgZGVmIGluc3RhbGxfd2ViZHJp
dmVyKHNlbGYsIGRlc3Q9Tm9uZSk6CisgICAgZGVmIGluc3RhbGxfd2ViZHJpdmVyKHNlbGYsIGRl
c3Q9Tm9uZSwgY2hhbm5lbD1Ob25lLCBicm93c2VyX2JpbmFyeT1Ob25lKToKICAgICAgICAgcmFp
c2UgTm90SW1wbGVtZW50ZWRFcnJvcgogCi0gICAgZGVmIHZlcnNpb24oc2VsZiwgYmluYXJ5KToK
KyAgICBkZWYgdmVyc2lvbihzZWxmLCBiaW5hcnk9Tm9uZSwgd2ViZHJpdmVyX2JpbmFyeT1Ob25l
KToKICAgICAgICAgcmV0dXJuIE5vbmUKIAogCkBAIC01MzQsMjAgKzEwMjEsNDIgQEAgY2xhc3Mg
U2FmYXJpKEJyb3dzZXIpOgogICAgIHByb2R1Y3QgPSAic2FmYXJpIgogICAgIHJlcXVpcmVtZW50
cyA9ICJyZXF1aXJlbWVudHNfc2FmYXJpLnR4dCIKIAotICAgIGRlZiBpbnN0YWxsKHNlbGYsIGRl
c3Q9Tm9uZSk6CisgICAgZGVmIGRvd25sb2FkKHNlbGYsIGRlc3Q9Tm9uZSwgY2hhbm5lbD1Ob25l
KToKICAgICAgICAgcmFpc2UgTm90SW1wbGVtZW50ZWRFcnJvcgogCi0gICAgZGVmIGZpbmRfYmlu
YXJ5KHNlbGYpOgorICAgIGRlZiBpbnN0YWxsKHNlbGYsIGRlc3Q9Tm9uZSwgY2hhbm5lbD1Ob25l
KToKICAgICAgICAgcmFpc2UgTm90SW1wbGVtZW50ZWRFcnJvcgogCi0gICAgZGVmIGZpbmRfd2Vi
ZHJpdmVyKHNlbGYpOgotICAgICAgICByZXR1cm4gZmluZF9leGVjdXRhYmxlKCJzYWZhcmlkcml2
ZXIiKQorICAgIGRlZiBmaW5kX2JpbmFyeShzZWxmLCB2ZW52X3BhdGg9Tm9uZSwgY2hhbm5lbD1O
b25lKToKKyAgICAgICAgcmFpc2UgTm90SW1wbGVtZW50ZWRFcnJvcgogCi0gICAgZGVmIGluc3Rh
bGxfd2ViZHJpdmVyKHNlbGYpOgorICAgIGRlZiBmaW5kX3dlYmRyaXZlcihzZWxmLCBjaGFubmVs
PU5vbmUpOgorICAgICAgICBwYXRoID0gTm9uZQorICAgICAgICBpZiBjaGFubmVsID09ICJwcmV2
aWV3IjoKKyAgICAgICAgICAgIHBhdGggPSAiL0FwcGxpY2F0aW9ucy9TYWZhcmkgVGVjaG5vbG9n
eSBQcmV2aWV3LmFwcC9Db250ZW50cy9NYWNPUyIKKyAgICAgICAgcmV0dXJuIGZpbmRfZXhlY3V0
YWJsZSgic2FmYXJpZHJpdmVyIiwgcGF0aCkKKworICAgIGRlZiBpbnN0YWxsX3dlYmRyaXZlcihz
ZWxmLCBkZXN0PU5vbmUsIGNoYW5uZWw9Tm9uZSwgYnJvd3Nlcl9iaW5hcnk9Tm9uZSk6CiAgICAg
ICAgIHJhaXNlIE5vdEltcGxlbWVudGVkRXJyb3IKIAotICAgIGRlZiB2ZXJzaW9uKHNlbGYsIGJp
bmFyeSk6Ci0gICAgICAgIHJldHVybiBOb25lCisgICAgZGVmIHZlcnNpb24oc2VsZiwgYmluYXJ5
PU5vbmUsIHdlYmRyaXZlcl9iaW5hcnk9Tm9uZSk6CisgICAgICAgIGlmIHdlYmRyaXZlcl9iaW5h
cnkgaXMgTm9uZToKKyAgICAgICAgICAgIHNlbGYubG9nZ2VyLndhcm5pbmcoIkNhbm5vdCBmaW5k
IFNhZmFyaSB2ZXJzaW9uIHdpdGhvdXQgc2FmYXJpZHJpdmVyIikKKyAgICAgICAgICAgIHJldHVy
biBOb25lCisgICAgICAgICMgVXNlIGBzYWZhcmlkcml2ZXIgLS12ZXJzaW9uYCB0byBnZXQgdGhl
IHZlcnNpb24uIEV4YW1wbGUgb3V0cHV0OgorICAgICAgICAjICJJbmNsdWRlZCB3aXRoIFNhZmFy
aSAxMi4xICgxNDYwNy4xLjExKSIKKyAgICAgICAgIyAiSW5jbHVkZWQgd2l0aCBTYWZhcmkgVGVj
aG5vbG9neSBQcmV2aWV3IChSZWxlYXNlIDY3LCAxMzYwNy4xLjkuMC4xKSIKKyAgICAgICAgIyBU
aGUgYC0tdmVyc2lvbmAgZmxhZyB3YXMgYWRkZWQgaW4gU1RQIDY3LCBzbyBhbGxvdyB0aGUgY2Fs
bCB0byBmYWlsLgorICAgICAgICB0cnk6CisgICAgICAgICAgICB2ZXJzaW9uX3N0cmluZyA9IGNh
bGwod2ViZHJpdmVyX2JpbmFyeSwgIi0tdmVyc2lvbiIpLnN0cmlwKCkKKyAgICAgICAgZXhjZXB0
IHN1YnByb2Nlc3MuQ2FsbGVkUHJvY2Vzc0Vycm9yOgorICAgICAgICAgICAgc2VsZi5sb2dnZXIu
d2FybmluZygiRmFpbGVkIHRvIGNhbGwgJXMgLS12ZXJzaW9uIiAlIHdlYmRyaXZlcl9iaW5hcnkp
CisgICAgICAgICAgICByZXR1cm4gTm9uZQorICAgICAgICBtID0gcmUubWF0Y2gociJJbmNsdWRl
ZCB3aXRoIFNhZmFyaSAoLiopIiwgdmVyc2lvbl9zdHJpbmcpCisgICAgICAgIGlmIG5vdCBtOgor
ICAgICAgICAgICAgc2VsZi5sb2dnZXIud2FybmluZygiRmFpbGVkIHRvIGV4dHJhY3QgdmVyc2lv
biBmcm9tOiAlcyIgJSB2ZXJzaW9uX3N0cmluZykKKyAgICAgICAgICAgIHJldHVybiBOb25lCisg
ICAgICAgIHJldHVybiBtLmdyb3VwKDEpCiAKIAogY2xhc3MgU2Vydm8oQnJvd3Nlcik6CkBAIC01
NzQsMzMgKzEwODMsNjAgQEAgY2xhc3MgU2Vydm8oQnJvd3Nlcik6CiAKICAgICAgICAgcmV0dXJu
IChwbGF0Zm9ybSwgZXh0ZW5zaW9uLCBkZWNvbXByZXNzKQogCi0gICAgZGVmIGluc3RhbGwoc2Vs
ZiwgZGVzdD1Ob25lKToKKyAgICBkZWYgX2dldChzZWxmLCBjaGFubmVsPSJuaWdodGx5Iik6Cisg
ICAgICAgIGlmIGNoYW5uZWwgIT0gIm5pZ2h0bHkiOgorICAgICAgICAgICAgcmFpc2UgVmFsdWVF
cnJvcigiT25seSBuaWdodGx5IHZlcnNpb25zIG9mIFNlcnZvIGFyZSBhdmFpbGFibGUiKQorCisg
ICAgICAgIHBsYXRmb3JtLCBleHRlbnNpb24sIF8gPSBzZWxmLnBsYXRmb3JtX2NvbXBvbmVudHMo
KQorICAgICAgICB1cmwgPSAiaHR0cHM6Ly9kb3dubG9hZC5zZXJ2by5vcmcvbmlnaHRseS8lcy9z
ZXJ2by1sYXRlc3QlcyIgJSAocGxhdGZvcm0sIGV4dGVuc2lvbikKKyAgICAgICAgcmV0dXJuIGdl
dCh1cmwpCisKKyAgICBkZWYgZG93bmxvYWQoc2VsZiwgZGVzdD1Ob25lLCBjaGFubmVsPSJuaWdo
dGx5Iik6CisgICAgICAgIGlmIGRlc3QgaXMgTm9uZToKKyAgICAgICAgICAgIGRlc3QgPSBvcy5w
d2QKKworICAgICAgICByZXNwID0gc2VsZi5fZ2V0KGRlc3QsIGNoYW5uZWwpCisgICAgICAgIF8s
IGV4dGVuc2lvbiwgXyA9IHNlbGYucGxhdGZvcm1fY29tcG9uZW50cygpCisKKyAgICAgICAgd2l0
aCBvcGVuKG9zLnBhdGguam9pbihkZXN0LCAic2Vydm8tbGF0ZXN0JXMiICUgKGV4dGVuc2lvbiwp
KSwgInciKSBhcyBmOgorICAgICAgICAgICAgZi53cml0ZShyZXNwLmNvbnRlbnQpCisKKyAgICBk
ZWYgaW5zdGFsbChzZWxmLCBkZXN0PU5vbmUsIGNoYW5uZWw9Im5pZ2h0bHkiKToKICAgICAgICAg
IiIiSW5zdGFsbCBsYXRlc3QgQnJvd3NlciBFbmdpbmUuIiIiCiAgICAgICAgIGlmIGRlc3QgaXMg
Tm9uZToKICAgICAgICAgICAgIGRlc3QgPSBvcy5wd2QKIAotICAgICAgICBwbGF0Zm9ybSwgZXh0
ZW5zaW9uLCBkZWNvbXByZXNzID0gc2VsZi5wbGF0Zm9ybV9jb21wb25lbnRzKCkKLSAgICAgICAg
dXJsID0gImh0dHBzOi8vZG93bmxvYWQuc2Vydm8ub3JnL25pZ2h0bHkvJXMvc2Vydm8tbGF0ZXN0
JXMiICUgKHBsYXRmb3JtLCBleHRlbnNpb24pCisgICAgICAgIF8sIF8sIGRlY29tcHJlc3MgPSBz
ZWxmLnBsYXRmb3JtX2NvbXBvbmVudHMoKQogCi0gICAgICAgIGRlY29tcHJlc3MoZ2V0KHVybCku
cmF3LCBkZXN0PWRlc3QpCisgICAgICAgIHJlc3AgPSBzZWxmLl9nZXQoZGVzdCwgY2hhbm5lbCkK
KyAgICAgICAgZGVjb21wcmVzcyhyZXNwLnJhdywgZGVzdD1kZXN0KQogICAgICAgICBwYXRoID0g
ZmluZF9leGVjdXRhYmxlKCJzZXJ2byIsIG9zLnBhdGguam9pbihkZXN0LCAic2Vydm8iKSkKICAg
ICAgICAgc3QgPSBvcy5zdGF0KHBhdGgpCiAgICAgICAgIG9zLmNobW9kKHBhdGgsIHN0LnN0X21v
ZGUgfCBzdGF0LlNfSUVYRUMpCiAgICAgICAgIHJldHVybiBwYXRoCiAKLSAgICBkZWYgZmluZF9i
aW5hcnkoc2VsZik6Ci0gICAgICAgIHJldHVybiBmaW5kX2V4ZWN1dGFibGUoInNlcnZvIikKKyAg
ICBkZWYgZmluZF9iaW5hcnkoc2VsZiwgdmVudl9wYXRoPU5vbmUsIGNoYW5uZWw9Tm9uZSk6Cisg
ICAgICAgIHBhdGggPSBmaW5kX2V4ZWN1dGFibGUoInNlcnZvIiwgb3MucGF0aC5qb2luKHZlbnZf
cGF0aCwgInNlcnZvIikpCisgICAgICAgIGlmIHBhdGggaXMgTm9uZToKKyAgICAgICAgICAgIHBh
dGggPSBmaW5kX2V4ZWN1dGFibGUoInNlcnZvIikKKyAgICAgICAgcmV0dXJuIHBhdGgKIAotICAg
IGRlZiBmaW5kX3dlYmRyaXZlcihzZWxmKToKKyAgICBkZWYgZmluZF93ZWJkcml2ZXIoc2VsZiwg
Y2hhbm5lbD1Ob25lKToKICAgICAgICAgcmV0dXJuIE5vbmUKIAotICAgIGRlZiBpbnN0YWxsX3dl
YmRyaXZlcihzZWxmLCBkZXN0PU5vbmUpOgorICAgIGRlZiBpbnN0YWxsX3dlYmRyaXZlcihzZWxm
LCBkZXN0PU5vbmUsIGNoYW5uZWw9Tm9uZSwgYnJvd3Nlcl9iaW5hcnk9Tm9uZSk6CiAgICAgICAg
IHJhaXNlIE5vdEltcGxlbWVudGVkRXJyb3IKIAotICAgIGRlZiB2ZXJzaW9uKHNlbGYsIGJpbmFy
eSk6CisgICAgZGVmIHZlcnNpb24oc2VsZiwgYmluYXJ5PU5vbmUsIHdlYmRyaXZlcl9iaW5hcnk9
Tm9uZSk6CiAgICAgICAgICIiIlJldHJpZXZlIHRoZSByZWxlYXNlIHZlcnNpb24gb2YgdGhlIGlu
c3RhbGxlZCBicm93c2VyLiIiIgogICAgICAgICBvdXRwdXQgPSBjYWxsKGJpbmFyeSwgIi0tdmVy
c2lvbiIpCi0gICAgICAgIHJldHVybiByZS5zZWFyY2gociJbMC05XC5dKyggW2Etel0rKT8kIiwg
b3V0cHV0LnN0cmlwKCkpLmdyb3VwKDApCisgICAgICAgIG0gPSByZS5zZWFyY2gociJTZXJ2byAo
WzAtOVwuXSstW2EtZjAtOV0rKT8oLWRpcnR5KT8kIiwgb3V0cHV0LnN0cmlwKCkpCisgICAgICAg
IGlmIG06CisgICAgICAgICAgICByZXR1cm4gbS5ncm91cCgwKQorCisKK2NsYXNzIFNlcnZvV2Vi
RHJpdmVyKFNlcnZvKToKKyAgICBwcm9kdWN0ID0gInNlcnZvZHJpdmVyIgogCiAKIGNsYXNzIFNh
dWNlKEJyb3dzZXIpOgpAQCAtNjA5LDE5ICsxMTQ1LDIyIEBAIGNsYXNzIFNhdWNlKEJyb3dzZXIp
OgogICAgIHByb2R1Y3QgPSAic2F1Y2UiCiAgICAgcmVxdWlyZW1lbnRzID0gInJlcXVpcmVtZW50
c19zYXVjZS50eHQiCiAKLSAgICBkZWYgaW5zdGFsbChzZWxmLCBkZXN0PU5vbmUpOgorICAgIGRl
ZiBkb3dubG9hZChzZWxmLCBkZXN0PU5vbmUsIGNoYW5uZWw9Tm9uZSk6CisgICAgICAgIHJhaXNl
IE5vdEltcGxlbWVudGVkRXJyb3IKKworICAgIGRlZiBpbnN0YWxsKHNlbGYsIGRlc3Q9Tm9uZSwg
Y2hhbm5lbD1Ob25lKToKICAgICAgICAgcmFpc2UgTm90SW1wbGVtZW50ZWRFcnJvcgogCi0gICAg
ZGVmIGZpbmRfYmluYXJ5KHNlbGYpOgorICAgIGRlZiBmaW5kX2JpbmFyeShzZWxmLCB2ZW5ldl9w
YXRoPU5vbmUsIGNoYW5uZWw9Tm9uZSk6CiAgICAgICAgIHJhaXNlIE5vdEltcGxlbWVudGVkRXJy
b3IKIAotICAgIGRlZiBmaW5kX3dlYmRyaXZlcihzZWxmKToKKyAgICBkZWYgZmluZF93ZWJkcml2
ZXIoc2VsZiwgY2hhbm5lbD1Ob25lKToKICAgICAgICAgcmFpc2UgTm90SW1wbGVtZW50ZWRFcnJv
cgogCi0gICAgZGVmIGluc3RhbGxfd2ViZHJpdmVyKHNlbGYsIGRlc3Q9Tm9uZSk6CisgICAgZGVm
IGluc3RhbGxfd2ViZHJpdmVyKHNlbGYsIGRlc3Q9Tm9uZSwgY2hhbm5lbD1Ob25lLCBicm93c2Vy
X2JpbmFyeT1Ob25lKToKICAgICAgICAgcmFpc2UgTm90SW1wbGVtZW50ZWRFcnJvcgogCi0gICAg
ZGVmIHZlcnNpb24oc2VsZiwgYmluYXJ5KToKKyAgICBkZWYgdmVyc2lvbihzZWxmLCBiaW5hcnk9
Tm9uZSwgd2ViZHJpdmVyX2JpbmFyeT1Ob25lKToKICAgICAgICAgcmV0dXJuIE5vbmUKIAogCkBA
IC02MzEsMTcgKzExNzAsOTMgQEAgY2xhc3MgV2ViS2l0KEJyb3dzZXIpOgogICAgIHByb2R1Y3Qg
PSAid2Via2l0IgogICAgIHJlcXVpcmVtZW50cyA9ICJyZXF1aXJlbWVudHNfd2Via2l0LnR4dCIK
IAotICAgIGRlZiBpbnN0YWxsKHNlbGYsIGRlc3Q9Tm9uZSk6CisgICAgZGVmIGRvd25sb2FkKHNl
bGYsIGRlc3Q9Tm9uZSwgY2hhbm5lbD1Ob25lKToKICAgICAgICAgcmFpc2UgTm90SW1wbGVtZW50
ZWRFcnJvcgogCi0gICAgZGVmIGZpbmRfYmluYXJ5KHNlbGYsIHBhdGg9Tm9uZSk6CisgICAgZGVm
IGluc3RhbGwoc2VsZiwgZGVzdD1Ob25lLCBjaGFubmVsPU5vbmUpOgorICAgICAgICByYWlzZSBO
b3RJbXBsZW1lbnRlZEVycm9yCisKKyAgICBkZWYgZmluZF9iaW5hcnkoc2VsZiwgdmVudl9wYXRo
PU5vbmUsIGNoYW5uZWw9Tm9uZSk6CiAgICAgICAgIHJldHVybiBOb25lCiAKLSAgICBkZWYgZmlu
ZF93ZWJkcml2ZXIoc2VsZik6CisgICAgZGVmIGZpbmRfd2ViZHJpdmVyKHNlbGYsIGNoYW5uZWw9
Tm9uZSk6CiAgICAgICAgIHJldHVybiBOb25lCiAKLSAgICBkZWYgaW5zdGFsbF93ZWJkcml2ZXIo
c2VsZik6CisgICAgZGVmIGluc3RhbGxfd2ViZHJpdmVyKHNlbGYsIGRlc3Q9Tm9uZSwgY2hhbm5l
bD1Ob25lLCBicm93c2VyX2JpbmFyeT1Ob25lKToKICAgICAgICAgcmFpc2UgTm90SW1wbGVtZW50
ZWRFcnJvcgogCi0gICAgZGVmIHZlcnNpb24oc2VsZiwgYmluYXJ5KToKKyAgICBkZWYgdmVyc2lv
bihzZWxmLCBiaW5hcnk9Tm9uZSwgd2ViZHJpdmVyX2JpbmFyeT1Ob25lKToKKyAgICAgICAgcmV0
dXJuIE5vbmUKKworCitjbGFzcyBXZWJLaXRHVEtNaW5pQnJvd3NlcihXZWJLaXQpOgorCisgICAg
ZGVmIGZpbmRfYmluYXJ5KHNlbGYsIHZlbnZfcGF0aD1Ob25lLCBjaGFubmVsPU5vbmUpOgorICAg
ICAgICBsaWJleGVjcGF0aHMgPSBbIi91c3IvbGliZXhlYy93ZWJraXQyZ3RrLTQuMCJdICAjIEZl
ZG9yYSBwYXRoCisgICAgICAgIHRyaXBsZXQgPSAieDg2XzY0LWxpbnV4LWdudSIKKyAgICAgICAg
IyBUcnkgdG8gdXNlIEdDQyB0byBkZXRlY3QgdGhpcyBtYWNoaW5lIHRyaXBsZXQKKyAgICAgICAg
Z2NjID0gZmluZF9leGVjdXRhYmxlKCJnY2MiKQorICAgICAgICBpZiBnY2M6CisgICAgICAgICAg
ICB0cnk6CisgICAgICAgICAgICAgICAgdHJpcGxldCA9IGNhbGwoZ2NjLCAiLWR1bXBtYWNoaW5l
Iikuc3RyaXAoKQorICAgICAgICAgICAgZXhjZXB0IHN1YnByb2Nlc3MuQ2FsbGVkUHJvY2Vzc0Vy
cm9yOgorICAgICAgICAgICAgICAgIHBhc3MKKyAgICAgICAgIyBBZGQgRGViaWFuL1VidW50dSBw
YXRoCisgICAgICAgIGxpYmV4ZWNwYXRocy5hcHBlbmQoIi91c3IvbGliLyVzL3dlYmtpdDJndGst
NC4wIiAlIHRyaXBsZXQpCisgICAgICAgIGlmIGNoYW5uZWwgPT0gIm5pZ2h0bHkiOgorICAgICAg
ICAgICAgbGliZXhlY3BhdGhzLmFwcGVuZCgiL29wdC93ZWJraXRndGsvbmlnaHRseSIpCisgICAg
ICAgIHJldHVybiBmaW5kX2V4ZWN1dGFibGUoIk1pbmlCcm93c2VyIiwgb3MucGF0aHNlcC5qb2lu
KGxpYmV4ZWNwYXRocykpCisKKyAgICBkZWYgZmluZF93ZWJkcml2ZXIoc2VsZiwgY2hhbm5lbD1O
b25lKToKKyAgICAgICAgcGF0aCA9IG9zLmVudmlyb25bJ1BBVEgnXQorICAgICAgICBpZiBjaGFu
bmVsID09ICJuaWdodGx5IjoKKyAgICAgICAgICAgIHBhdGggPSAiJXM6JXMiICUgKHBhdGgsICIv
b3B0L3dlYmtpdGd0ay9uaWdodGx5IikKKyAgICAgICAgcmV0dXJuIGZpbmRfZXhlY3V0YWJsZSgi
V2ViS2l0V2ViRHJpdmVyIiwgcGF0aCkKKworICAgIGRlZiB2ZXJzaW9uKHNlbGYsIGJpbmFyeT1O
b25lLCB3ZWJkcml2ZXJfYmluYXJ5PU5vbmUpOgorICAgICAgICBpZiBiaW5hcnkgaXMgTm9uZToK
KyAgICAgICAgICAgIHJldHVybiBOb25lCisgICAgICAgIHRyeTogICMgV2ViS2l0R1RLIE1pbmlC
cm93c2VyIGJlZm9yZSAyLjI2LjAgZG9lc24ndCBzdXBwb3J0IC0tdmVyc2lvbgorICAgICAgICAg
ICAgb3V0cHV0ID0gY2FsbChiaW5hcnksICItLXZlcnNpb24iKS5zdHJpcCgpCisgICAgICAgIGV4
Y2VwdCBzdWJwcm9jZXNzLkNhbGxlZFByb2Nlc3NFcnJvcjoKKyAgICAgICAgICAgIHJldHVybiBO
b25lCisgICAgICAgICMgRXhhbXBsZSBvdXRwdXQ6ICJXZWJLaXRHVEsgMi4yNi4xIgorICAgICAg
ICBpZiBvdXRwdXQ6CisgICAgICAgICAgICBtID0gcmUubWF0Y2gociJXZWJLaXRHVEsgKC4rKSIs
IG91dHB1dCkKKyAgICAgICAgICAgIGlmIG5vdCBtOgorICAgICAgICAgICAgICAgIHNlbGYubG9n
Z2VyLndhcm5pbmcoIkZhaWxlZCB0byBleHRyYWN0IHZlcnNpb24gZnJvbTogJXMiICUgb3V0cHV0
KQorICAgICAgICAgICAgICAgIHJldHVybiBOb25lCisgICAgICAgICAgICByZXR1cm4gbS5ncm91
cCgxKQorICAgICAgICByZXR1cm4gTm9uZQorCisKK2NsYXNzIEVwaXBoYW55KEJyb3dzZXIpOgor
ICAgICIiIkVwaXBoYW55LXNwZWNpZmljIGludGVyZmFjZS4iIiIKKworICAgIHByb2R1Y3QgPSAi
ZXBpcGhhbnkiCisgICAgcmVxdWlyZW1lbnRzID0gInJlcXVpcmVtZW50c19lcGlwaGFueS50eHQi
CisKKyAgICBkZWYgZG93bmxvYWQoc2VsZiwgZGVzdD1Ob25lLCBjaGFubmVsPU5vbmUpOgorICAg
ICAgICByYWlzZSBOb3RJbXBsZW1lbnRlZEVycm9yCisKKyAgICBkZWYgaW5zdGFsbChzZWxmLCBk
ZXN0PU5vbmUsIGNoYW5uZWw9Tm9uZSk6CisgICAgICAgIHJhaXNlIE5vdEltcGxlbWVudGVkRXJy
b3IKKworICAgIGRlZiBmaW5kX2JpbmFyeShzZWxmLCB2ZW52X3BhdGg9Tm9uZSwgY2hhbm5lbD1O
b25lKToKKyAgICAgICAgcmV0dXJuIGZpbmRfZXhlY3V0YWJsZSgiZXBpcGhhbnkiKQorCisgICAg
ZGVmIGZpbmRfd2ViZHJpdmVyKHNlbGYsIGNoYW5uZWw9Tm9uZSk6CisgICAgICAgIHJldHVybiBm
aW5kX2V4ZWN1dGFibGUoIldlYktpdFdlYkRyaXZlciIpCisKKyAgICBkZWYgaW5zdGFsbF93ZWJk
cml2ZXIoc2VsZiwgZGVzdD1Ob25lLCBjaGFubmVsPU5vbmUsIGJyb3dzZXJfYmluYXJ5PU5vbmUp
OgorICAgICAgICByYWlzZSBOb3RJbXBsZW1lbnRlZEVycm9yCisKKyAgICBkZWYgdmVyc2lvbihz
ZWxmLCBiaW5hcnk9Tm9uZSwgd2ViZHJpdmVyX2JpbmFyeT1Ob25lKToKKyAgICAgICAgaWYgYmlu
YXJ5IGlzIE5vbmU6CisgICAgICAgICAgICByZXR1cm4gTm9uZQorICAgICAgICBvdXRwdXQgPSBj
YWxsKGJpbmFyeSwgIi0tdmVyc2lvbiIpCisgICAgICAgIGlmIG91dHB1dDoKKyAgICAgICAgICAg
ICMgU3RhYmxlIHJlbGVhc2Ugb3V0cHV0IGxvb2tzIGxpa2U6ICJXZWIgMy4zMC4yIgorICAgICAg
ICAgICAgIyBUZWNoIFByZXZpZXcgb3V0cHV0IGxvb2tzIGxpa2UgIldlYiAzLjMxLjMtODgtZzk3
ZGI0ZjQwZiIKKyAgICAgICAgICAgIHJldHVybiBvdXRwdXQuc3BsaXQoKVsxXQogICAgICAgICBy
ZXR1cm4gTm9uZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy93cHQvY29tbWFuZHMuanNvbiBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0L2NvbW1hbmRzLmpzb24KaW5kZXggMGVh
NmIyNTI3NmZmNDgxMzQwYjU0YjRjNzIzNDBhMzc5MDQwMzgzNy4uNjBmZTE2MjFhZjBkZWNkMGZh
YTQzNGYyNmRjYmE5OTUxNTQxNzNlNyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHQvY29tbWFuZHMuanNvbgorKysgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdC9jb21tYW5k
cy5qc29uCkBAIC0xLDE1ICsxLDkzIEBACiB7Ci0gICAgInJ1biI6IHsicGF0aCI6ICJydW4ucHki
LCAic2NyaXB0IjogInJ1biIsICJwYXJzZXIiOiAiY3JlYXRlX3BhcnNlciIsICJoZWxwIjogIlJ1
biB0ZXN0cyBpbiBhIGJyb3dzZXIiLAotICAgICAgICAgICAgInZpcnR1YWxlbnYiOiB0cnVlLCAi
aW5zdGFsbCI6IFsicmVxdWVzdHMiXSwgInJlcXVpcmVtZW50cyI6IFsiLi4vd3B0cnVubmVyL3Jl
cXVpcmVtZW50cy50eHQiXX0sCi0gICAgInVwZGF0ZS1leHBlY3RhdGlvbnMiOiB7InBhdGgiOiAi
dXBkYXRlLnB5IiwgInNjcmlwdCI6ICJ1cGRhdGVfZXhwZWN0YXRpb25zIiwKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAicGFyc2VyIjogImNyZWF0ZV9wYXJzZXJfdXBkYXRlIiwgImhlbHAi
OiAiVXBkYXRlIGV4cGVjdGF0aW9ucyBmaWxlcyBmcm9tIHJhdyBsb2dzLiIsCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgInZpcnR1YWxlbnYiOiB0cnVlLCAiaW5zdGFsbCI6IFsicmVxdWVz
dHMiXSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAicmVxdWlyZW1lbnRzIjogWyIuLi93
cHRydW5uZXIvcmVxdWlyZW1lbnRzLnR4dCJdfSwKLSAgICAiZmlsZXMtY2hhbmdlZCI6IHsicGF0
aCI6ICJ0ZXN0ZmlsZXMucHkiLCAic2NyaXB0IjogInJ1bl9jaGFuZ2VkX2ZpbGVzIiwgInBhcnNl
ciI6ICJnZXRfcGFyc2VyIiwKLSAgICAgICAgICAgICAgICAgICAgICAiaGVscCI6ICJHZXQgYSBs
aXN0IG9mIGZpbGVzIHRoYXQgaGF2ZSBjaGFuZ2VkIiwgInZpcnR1YWxlbnYiOiBmYWxzZX0sCi0g
ICAgInRlc3RzLWFmZmVjdGVkIjogeyJwYXRoIjogInRlc3RmaWxlcy5weSIsICJzY3JpcHQiOiAi
cnVuX3Rlc3RzX2FmZmVjdGVkIiwgInBhcnNlciI6ICJnZXRfcGFyc2VyX2FmZmVjdGVkIiwKLSAg
ICAgICAgICAgICAgICAgICAgICAgImhlbHAiOiAiR2V0IGEgbGlzdCBvZiB0ZXN0cyBhZmZlY3Rl
ZCBieSBjaGFuZ2VzIiwgInZpcnR1YWxlbnYiOiBmYWxzZX0sCi0gICAgImluc3RhbGwiOiB7InBh
dGgiOiAiaW5zdGFsbC5weSIsICJzY3JpcHQiOiAicnVuIiwgInBhcnNlciI6ICJnZXRfcGFyc2Vy
IiwgImhlbHAiOiAiSW5zdGFsbCBicm93c2VyIGNvbXBvbmVudHMiLAotICAgICAgICAgICAgICAg
ICJpbnN0YWxsIjogWyJtb3pkb3dubG9hZCIsICJtb3ppbnN0YWxsIl19LAotICAgICJicmFuY2gt
cG9pbnQiOiB7InBhdGgiOiAidGVzdGZpbGVzLnB5IiwgInNjcmlwdCI6ICJkaXNwbGF5X2JyYW5j
aF9wb2ludCIsICJwYXJzZXIiOiBudWxsLCAiaGVscCI6ICJQcmludCBicmFuY2ggcG9pbnQgZnJv
bSBtYXN0ZXIiLCAidmlydHVhbGVudiI6IGZhbHNlfQorICAicnVuIjogeworICAgICJwYXRoIjog
InJ1bi5weSIsCisgICAgInNjcmlwdCI6ICJydW4iLAorICAgICJwYXJzZXIiOiAiY3JlYXRlX3Bh
cnNlciIsCisgICAgImhlbHAiOiAiUnVuIHRlc3RzIGluIGEgYnJvd3NlciIsCisgICAgInZpcnR1
YWxlbnYiOiB0cnVlLAorICAgICJpbnN0YWxsIjogWworICAgICAgInJlcXVlc3RzIiwKKyAgICAg
ICJ6c3RhbmRhcmQiCisgICAgXSwKKyAgICAicmVxdWlyZW1lbnRzIjogWworICAgICAgIi4uL3dw
dHJ1bm5lci9yZXF1aXJlbWVudHMudHh0IgorICAgIF0KKyAgfSwKKyAgImNyZWF0ZSI6IHsKKyAg
ICAicGF0aCI6ICJjcmVhdGUucHkiLAorICAgICJzY3JpcHQiOiAicnVuIiwKKyAgICAicGFyc2Vy
IjogImdldF9wYXJzZXIiLAorICAgICJoZWxwIjogIkNyZWF0ZSBhIG5ldyB3cHQgdGVzdCIKKyAg
fSwKKyAgInVwZGF0ZS1leHBlY3RhdGlvbnMiOiB7CisgICAgInBhdGgiOiAidXBkYXRlLnB5IiwK
KyAgICAic2NyaXB0IjogInVwZGF0ZV9leHBlY3RhdGlvbnMiLAorICAgICJwYXJzZXIiOiAiY3Jl
YXRlX3BhcnNlcl91cGRhdGUiLAorICAgICJoZWxwIjogIlVwZGF0ZSBleHBlY3RhdGlvbnMgZmls
ZXMgZnJvbSByYXcgbG9ncy4iLAorICAgICJ2aXJ0dWFsZW52IjogdHJ1ZSwKKyAgICAiaW5zdGFs
bCI6IFsKKyAgICAgICJyZXF1ZXN0cyIKKyAgICBdLAorICAgICJyZXF1aXJlbWVudHMiOiBbCisg
ICAgICAiLi4vd3B0cnVubmVyL3JlcXVpcmVtZW50cy50eHQiCisgICAgXQorICB9LAorICAiZmls
ZXMtY2hhbmdlZCI6IHsKKyAgICAicGF0aCI6ICJ0ZXN0ZmlsZXMucHkiLAorICAgICJzY3JpcHQi
OiAicnVuX2NoYW5nZWRfZmlsZXMiLAorICAgICJwYXJzZXIiOiAiZ2V0X3BhcnNlciIsCisgICAg
ImhlbHAiOiAiR2V0IGEgbGlzdCBvZiBmaWxlcyB0aGF0IGhhdmUgY2hhbmdlZCIsCisgICAgInZp
cnR1YWxlbnYiOiBmYWxzZQorICB9LAorICAidGVzdHMtYWZmZWN0ZWQiOiB7CisgICAgInBhdGgi
OiAidGVzdGZpbGVzLnB5IiwKKyAgICAic2NyaXB0IjogInJ1bl90ZXN0c19hZmZlY3RlZCIsCisg
ICAgInBhcnNlciI6ICJnZXRfcGFyc2VyX2FmZmVjdGVkIiwKKyAgICAiaGVscCI6ICJHZXQgYSBs
aXN0IG9mIHRlc3RzIGFmZmVjdGVkIGJ5IGNoYW5nZXMiLAorICAgICJ2aXJ0dWFsZW52IjogZmFs
c2UKKyAgfSwKKyAgImluc3RhbGwiOiB7CisgICAgInBhdGgiOiAiaW5zdGFsbC5weSIsCisgICAg
InNjcmlwdCI6ICJydW4iLAorICAgICJwYXJzZXIiOiAiZ2V0X3BhcnNlciIsCisgICAgImhlbHAi
OiAiSW5zdGFsbCBicm93c2VyIGNvbXBvbmVudHMiLAorICAgICJpbnN0YWxsIjogWworICAgICAg
Im1vemRvd25sb2FkIiwKKyAgICAgICJtb3ppbnN0YWxsIgorICAgIF0KKyAgfSwKKyAgImJyYW5j
aC1wb2ludCI6IHsKKyAgICAicGF0aCI6ICJ0ZXN0ZmlsZXMucHkiLAorICAgICJzY3JpcHQiOiAi
ZGlzcGxheV9icmFuY2hfcG9pbnQiLAorICAgICJwYXJzZXIiOiBudWxsLAorICAgICJoZWxwIjog
IlByaW50IGJyYW5jaCBwb2ludCBmcm9tIG1hc3RlciIsCisgICAgInZpcnR1YWxlbnYiOiBmYWxz
ZQorICB9LAorICAicmV2LWxpc3QiOiB7CisgICAgInBhdGgiOiAicmV2bGlzdC5weSIsCisgICAg
InNjcmlwdCI6ICJydW5fcmV2X2xpc3QiLAorICAgICJwYXJzZXIiOiAiZ2V0X3BhcnNlciIsCisg
ICAgImhlbHAiOiAiTGlzdCB0YWdnZWQgcmV2aXNpb25zIGF0IHJlZ3VsYXIgaW50ZXJ2YWxzIiwK
KyAgICAidmlydHVhbGVudiI6IGZhbHNlCisgIH0sCisgICJpbnN0YWxsLWFuZHJvaWQtZW11bGF0
b3IiOiB7CisgICAgInBhdGgiOiAiYW5kcm9pZC5weSIsCisgICAgInNjcmlwdCI6ICJydW5faW5z
dGFsbCIsCisgICAgInBhcnNlciI6ICJnZXRfcGFyc2VyX2luc3RhbGwiLAorICAgICJoZWxwIjog
IlNldHVwIHRoZSB4ODYgYW5kcm9pZCBlbXVsYXRvciIsCisgICAgInZpcnR1YWxlbnYiOiB0cnVl
LAorICAgICJpbnN0YWxsIjogWworICAgICAgInJlcXVlc3RzIgorICAgIF0KKyAgfSwKKyAgInN0
YXJ0LWFuZHJvaWQtZW11bGF0b3IiOiB7CisgICAgInBhdGgiOiAiYW5kcm9pZC5weSIsCisgICAg
InNjcmlwdCI6ICJydW5fc3RhcnQiLAorICAgICJwYXJzZXIiOiAiZ2V0X3BhcnNlcl9zdGFydCIs
CisgICAgImhlbHAiOiAiU3RhcnQgdGhlIHg4NiBhbmRyb2lkIGVtdWxhdG9yIiwKKyAgICAidmly
dHVhbGVudiI6IHRydWUsCisgICAgImluc3RhbGwiOiBbCisgICAgICAicmVxdWVzdHMiCisgICAg
XQorICB9CiB9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3dwdC9jcmVhdGUucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdC9jcmVhdGUucHkKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjk2NjA5
YTY4Y2UyOGMzNzU1NjIwZDAyNTVmY2NiYzQ3NDgxYjY4NgotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0L2NyZWF0
ZS5weQpAQCAtMCwwICsxLDEzMSBAQAoraW1wb3J0IHN1YnByb2Nlc3MKK2ltcG9ydCBvcworCito
ZXJlID0gb3MucGF0aC5kaXJuYW1lKF9fZmlsZV9fKQorCit0ZW1wbGF0ZV9wcmVmaXggPSAiIiI8
IWRvY3R5cGUgaHRtbD4KKyUoZG9jdW1lbnRFbGVtZW50KXM8bWV0YSBjaGFyc2V0PXV0Zi04Pgor
IiIiCit0ZW1wbGF0ZV9sb25nX3RpbWVvdXQgPSAiPG1ldGEgbmFtZT10aW1lb3V0IGNvbnRlbnQ9
bG9uZz5cbiIKKwordGVtcGxhdGVfYm9keV90aCA9ICIiIjx0aXRsZT48L3RpdGxlPgorPHNjcmlw
dCBzcmM9L3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcz48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPS9y
ZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanM+PC9zY3JpcHQ+Cis8c2NyaXB0PgorCis8L3Nj
cmlwdD4KKyIiIgorCit0ZW1wbGF0ZV9ib2R5X3JlZnRlc3QgPSAiIiI8dGl0bGU+PC90aXRsZT4K
KzxsaW5rIHJlbD0lKG1hdGNoKXMgaHJlZj0lKHJlZilzPgorIiIiCisKK3RlbXBsYXRlX2JvZHlf
cmVmdGVzdF93YWl0ID0gIiIiPHNjcmlwdCBzcmM9Ii9jb21tb24vcmVmdGVzdC13YWl0LmpzIj48
L3NjcmlwdD4KKyIiIgorCitkZWYgZ2V0X3BhcnNlcigpOgorICAgIGltcG9ydCBhcmdwYXJzZQor
ICAgIHAgPSBhcmdwYXJzZS5Bcmd1bWVudFBhcnNlcigpCisgICAgcC5hZGRfYXJndW1lbnQoIi0t
bm8tZWRpdG9yIiwgYWN0aW9uPSJzdG9yZV90cnVlIiwKKyAgICAgICAgICAgICAgICAgICBoZWxw
PSJEb24ndCB0cnkgdG8gb3BlbiB0aGUgdGVzdCBpbiBhbiBlZGl0b3IiKQorICAgIHAuYWRkX2Fy
Z3VtZW50KCItZSIsICItLWVkaXRvciIsIGFjdGlvbj0ic3RvcmUiLCBoZWxwPSJFZGl0b3IgdG8g
dXNlIikKKyAgICBwLmFkZF9hcmd1bWVudCgiLS1sb25nLXRpbWVvdXQiLCBhY3Rpb249InN0b3Jl
X3RydWUiLAorICAgICAgICAgICAgICAgICAgIGhlbHA9IlRlc3Qgc2hvdWxkIGJlIGdpdmVuIGEg
bG9uZyB0aW1lb3V0ICh0eXBpY2FsbHkgNjBzIHJhdGhlciB0aGFuIDEwcywgYnV0IHZhcmllcyBk
ZXBlbmRpbmcgb24gZW52aXJvbm1lbnQpIikKKyAgICBwLmFkZF9hcmd1bWVudCgiLS1vdmVyd3Jp
dGUiLCBhY3Rpb249InN0b3JlX3RydWUiLAorICAgICAgICAgICAgICAgICAgIGhlbHA9IkFsbG93
IG92ZXJ3cml0aW5nIGFuIGV4aXN0aW5nIHRlc3QgZmlsZSIpCisgICAgcC5hZGRfYXJndW1lbnQo
Ii1yIiwgIi0tcmVmdGVzdCIsIGFjdGlvbj0ic3RvcmVfdHJ1ZSIsCisgICAgICAgICAgICAgICAg
ICAgaGVscD0iQ3JlYXRlIGEgcmVmdGVzdCByYXRoZXIgdGhhbiBhIHRlc3RoYXJuZXNzIChqcykg
dGVzdCIpLAorICAgIHAuYWRkX2FyZ3VtZW50KCItbSIsICItLXJlZmVyZW5jZSIsIGRlc3Q9InJl
ZiIsIGhlbHA9IlBhdGggdG8gdGhlIHJlZmVyZW5jZSBmaWxlIikKKyAgICBwLmFkZF9hcmd1bWVu
dCgiLS1taXNtYXRjaCIsIGFjdGlvbj0ic3RvcmVfdHJ1ZSIsCisgICAgICAgICAgICAgICAgICAg
aGVscD0iQ3JlYXRlIGEgbWlzbWF0Y2ggcmVmdGVzdCIpCisgICAgcC5hZGRfYXJndW1lbnQoIi0t
d2FpdCIsIGFjdGlvbj0ic3RvcmVfdHJ1ZSIsCisgICAgICAgICAgICAgICAgICAgaGVscD0iQ3Jl
YXRlIGEgcmVmdGVzdCB0aGF0IHdhaXRzIHVudGlsIHRha2VTY3JlZW5zaG90KCkgaXMgY2FsbGVk
IikKKyAgICBwLmFkZF9hcmd1bWVudCgiLS10ZXN0cy1yb290IiwgYWN0aW9uPSJzdG9yZSIsIGRl
ZmF1bHQ9b3MucGF0aC5qb2luKGhlcmUsICIuLiIsICIuLiIpLAorICAgICAgICAgICAgICAgICAg
IGhlbHA9IlBhdGggdG8gdGhlIHJvb3Qgb2YgdGhlIHdwdCBkaXJlY3RvcnkiKQorICAgIHAuYWRk
X2FyZ3VtZW50KCJwYXRoIiwgYWN0aW9uPSJzdG9yZSIsIGhlbHA9IlBhdGggdG8gdGhlIHRlc3Qg
ZmlsZSIpCisgICAgcmV0dXJuIHAKKworCisKK2RlZiByZWxfcGF0aChwYXRoLCB0ZXN0c19yb290
KToKKyAgICBpZiBwYXRoIGlzIE5vbmU6CisgICAgICAgIHJldHVybgorCisgICAgYWJzX3BhdGgg
PSBvcy5wYXRoLm5vcm1wYXRoKG9zLnBhdGguYWJzcGF0aChwYXRoKSkKKyAgICByZXR1cm4gb3Mu
cGF0aC5yZWxwYXRoKGFic19wYXRoLCB0ZXN0c19yb290KQorCisKK2RlZiBydW4oX3ZlbnYsICoq
a3dhcmdzKToKKyAgICBwYXRoID0gcmVsX3BhdGgoa3dhcmdzWyJwYXRoIl0sIGt3YXJnc1sidGVz
dHNfcm9vdCJdKQorICAgIHJlZl9wYXRoID0gcmVsX3BhdGgoa3dhcmdzWyJyZWYiXSwga3dhcmdz
WyJ0ZXN0c19yb290Il0pCisKKyAgICBpZiBrd2FyZ3NbInJlZiJdOgorICAgICAgICBrd2FyZ3Nb
InJlZnRlc3QiXSA9IFRydWUKKworICAgIGlmICIuLiIgaW4gcGF0aDoKKyAgICAgICAgcHJpbnQo
IiIiVGVzdCBwYXRoICVzIGlzIG5vdCB1bmRlciB3cHQgcm9vdC4iIiIgJSBwYXRoKQorICAgICAg
ICByZXR1cm4gMQorCisgICAgaWYgcmVmX3BhdGggYW5kICIuLiIgaW4gcmVmX3BhdGg6CisgICAg
ICAgIHByaW50KCIiIlJlZmVyZW5jZSBwYXRoICVzIGlzIG5vdCB1bmRlciB3cHQgcm9vdCIiIiAl
IHJlZl9wYXRoKQorICAgICAgICByZXR1cm4gMQorCisKKyAgICBpZiBvcy5wYXRoLmV4aXN0cyhw
YXRoKSBhbmQgbm90IGt3YXJnc1sib3ZlcndyaXRlIl06CisgICAgICAgIHByaW50KCJUZXN0IHBh
dGggYWxyZWFkeSBleGlzdHMsIHBhc3MgLS1vdmVyd3JpdGUgdG8gcmVwbGFjZSIpCisgICAgICAg
IHJldHVybiAxCisKKyAgICBpZiBrd2FyZ3NbIm1pc21hdGNoIl0gYW5kIG5vdCBrd2FyZ3NbInJl
ZnRlc3QiXToKKyAgICAgICAgcHJpbnQoIi0tbWlzbWF0Y2ggb25seSBtYWtlcyBzZW5zZSBmb3Ig
YSByZWZ0ZXN0IikKKyAgICAgICAgcmV0dXJuIDEKKworICAgIGlmIGt3YXJnc1sid2FpdCJdIGFu
ZCBub3Qga3dhcmdzWyJyZWZ0ZXN0Il06CisgICAgICAgIHByaW50KCItLXdhaXQgb25seSBtYWtl
cyBzZW5zZSBmb3IgYSByZWZ0ZXN0IikKKyAgICAgICAgcmV0dXJuIDEKKworICAgIGFyZ3MgPSB7
ImRvY3VtZW50RWxlbWVudCI6ICI8aHRtbCBjbGFzcz1yZWZ0ZXN0LXdhaXQ+XG4iIGlmIGt3YXJn
c1sid2FpdCJdIGVsc2UgIiJ9CisgICAgdGVtcGxhdGUgPSB0ZW1wbGF0ZV9wcmVmaXggJSBhcmdz
CisgICAgaWYga3dhcmdzWyJsb25nX3RpbWVvdXQiXToKKyAgICAgICAgdGVtcGxhdGUgKz0gdGVt
cGxhdGVfbG9uZ190aW1lb3V0CisKKyAgICBpZiBrd2FyZ3NbInJlZnRlc3QiXToKKyAgICAgICAg
YXJncyA9IHsibWF0Y2giOiAibWF0Y2giIGlmIG5vdCBrd2FyZ3NbIm1pc21hdGNoIl0gZWxzZSAi
bWlzbWF0Y2giLAorICAgICAgICAgICAgICAgICJyZWYiOiBvcy5wYXRoLnJlbHBhdGgocmVmX3Bh
dGgsIHBhdGgpIGlmIGt3YXJnc1sicmVmIl0gZWxzZSAnIiInfQorICAgICAgICB0ZW1wbGF0ZSAr
PSB0ZW1wbGF0ZV9ib2R5X3JlZnRlc3QgJSBhcmdzCisgICAgICAgIGlmIGt3YXJnc1sid2FpdCJd
OgorICAgICAgICAgICAgdGVtcGxhdGUgKz0gdGVtcGxhdGVfYm9keV9yZWZ0ZXN0X3dhaXQKKyAg
ICBlbHNlOgorICAgICAgICB0ZW1wbGF0ZSArPSB0ZW1wbGF0ZV9ib2R5X3RoCisgICAgdHJ5Ogor
ICAgICAgICBvcy5tYWtlZGlycyhvcy5wYXRoLmRpcm5hbWUocGF0aCkpCisgICAgZXhjZXB0IE9T
RXJyb3I6CisgICAgICAgIHBhc3MKKyAgICB3aXRoIG9wZW4ocGF0aCwgInciKSBhcyBmOgorICAg
ICAgICBmLndyaXRlKHRlbXBsYXRlKQorCisgICAgcmVmX3BhdGggPSBrd2FyZ3NbInJlZiJdCisg
ICAgaWYgcmVmX3BhdGggYW5kIG5vdCBvcy5wYXRoLmV4aXN0cyhyZWZfcGF0aCk6CisgICAgICAg
IHdpdGggb3BlbihyZWZfcGF0aCwgInciKSBhcyBmOgorICAgICAgICAgICAgZi53cml0ZSh0ZW1w
bGF0ZV9wcmVmaXggJSB7ImRvY3VtZW50RWxlbWVudCI6ICIifSkKKworICAgIGlmIGt3YXJnc1si
bm9fZWRpdG9yIl06CisgICAgICAgIGVkaXRvciA9IE5vbmUKKyAgICBlbGlmIGt3YXJnc1siZWRp
dG9yIl06CisgICAgICAgIGVkaXRvciA9IGt3YXJnc1siZWRpdG9yIl0KKyAgICBlbGlmICJWSVNV
QUwiIGluIG9zLmVudmlyb246CisgICAgICAgIGVkaXRvciA9IG9zLmVudmlyb25bIlZJU1VBTCJd
CisgICAgZWxpZiAiRURJVE9SIiBpbiBvcy5lbnZpcm9uOgorICAgICAgICBlZGl0b3IgPSBvcy5l
bnZpcm9uWyJFRElUT1IiXQorICAgIGVsc2U6CisgICAgICAgIGVkaXRvciA9IE5vbmUKKworICAg
IHByb2MgPSBOb25lCisgICAgaWYgZWRpdG9yOgorICAgICAgICBpZiByZWZfcGF0aDoKKyAgICAg
ICAgICAgIHBhdGggPSAiJXMgJXMiICUgKHBhdGgsIHJlZl9wYXRoKQorICAgICAgICBwcm9jID0g
c3VicHJvY2Vzcy5Qb3BlbigiJXMgJXMiICUgKGVkaXRvciwgcGF0aCksIHNoZWxsPVRydWUpCisg
ICAgZWxzZToKKyAgICAgICAgcHJpbnQoIkNyZWF0ZWQgdGVzdCAlcyIgJSBwYXRoKQorCisgICAg
aWYgcHJvYzoKKyAgICAgICAgcHJvYy53YWl0KCkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0L2luc3RhbGwucHkgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdC9pbnN0YWxs
LnB5CmluZGV4IGQ3Nzk2NTFjOTkwZTJiN2JhNzk4ZjA4NmU4MGY2ZGM4YmVhYzUyNWQuLjI0OTE1
ZjBjOThkMGJlM2E4NjRhM2E1MTViYTBlMTYyZGMzN2RhOGMgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0L2luc3RhbGwucHkK
KysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93
cHQvaW5zdGFsbC5weQpAQCAtMiwyMCArMiw2OCBAQCBpbXBvcnQgYXJncGFyc2UKIGltcG9ydCBi
cm93c2VyCiBpbXBvcnQgc3lzCiAKKworbGF0ZXN0X2NoYW5uZWxzID0geworICAgICdmaXJlZm94
JzogJ25pZ2h0bHknLAorICAgICdjaHJvbWUnOiAnZGV2JywKKyAgICAnY2hyb21lX2FuZHJvaWQn
OiAnZGV2JywKKyAgICAnZWRnZWNocm9taXVtJzogJ2RldicsCisgICAgJ3NhZmFyaSc6ICdwcmV2
aWV3JywKKyAgICAnc2Vydm8nOiAnbmlnaHRseScKK30KKworY2hhbm5lbF9ieV9uYW1lID0gewor
ICAgICdzdGFibGUnOiAnc3RhYmxlJywKKyAgICAncmVsZWFzZSc6ICdzdGFibGUnLAorICAgICdi
ZXRhJzogJ2JldGEnLAorICAgICduaWdodGx5JzogbGF0ZXN0X2NoYW5uZWxzLAorICAgICdkZXYn
OiBsYXRlc3RfY2hhbm5lbHMsCisgICAgJ3ByZXZpZXcnOiBsYXRlc3RfY2hhbm5lbHMsCisgICAg
J2V4cGVyaW1lbnRhbCc6IGxhdGVzdF9jaGFubmVscywKKyAgICAnY2FuYXJ5JzogJ2NhbmFyeScs
Cit9CisKKwogZGVmIGdldF9wYXJzZXIoKToKLSAgICBwYXJzZXIgPSBhcmdwYXJzZS5Bcmd1bWVu
dFBhcnNlcigpCi0gICAgcGFyc2VyLmFkZF9hcmd1bWVudCgnYnJvd3NlcicsIGNob2ljZXM9Wydm
aXJlZm94JywgJ2Nocm9tZSddLAorICAgIHBhcnNlciA9IGFyZ3BhcnNlLkFyZ3VtZW50UGFyc2Vy
KGRlc2NyaXB0aW9uPSIiIkluc3RhbGwgYSBnaXZlbiBicm93c2VyIG9yIHdlYmRyaXZlciBmcm9u
dGVuZC4KKworICAgIEZvciBjb252ZW5pZW5jZSB0aGUgcmVsZWFzZSBjaGFubmVsIG9mIHRoZSBi
cm93c2VyIGFjY2VwdHMgdmFyaW91cyBzcGVsbGluZ3MsCisgICAgYnV0IHdlIGFjdHVhbGx5IHN1
cHBvcnQgYXQgbW9zdCB0aHJlZSB2YXJpYW50czsgd2hhdGV2ZXIgdGhlIGxhdGVzdCBkZXZlbG9w
bWVudAorICAgIHJlbGVhc2UgaXMgKGUuZy4gRmlyZWZveCBuaWdodGx5IG9yIENocm9tZSBkZXYp
LCB0aGUgbGF0ZXN0IGJldGEgcmVsZWFzZSwgYW5kCisgICAgdGhlIG1vc3QgcmVjZW50IHN0YWJs
ZSByZWxlYXNlLiIiIikKKyAgICBwYXJzZXIuYWRkX2FyZ3VtZW50KCdicm93c2VyJywgY2hvaWNl
cz1bJ2ZpcmVmb3gnLCAnY2hyb21lJywgJ3NlcnZvJ10sCiAgICAgICAgICAgICAgICAgICAgICAg
ICBoZWxwPSduYW1lIG9mIHdlYiBicm93c2VyIHByb2R1Y3QnKQogICAgIHBhcnNlci5hZGRfYXJn
dW1lbnQoJ2NvbXBvbmVudCcsIGNob2ljZXM9Wydicm93c2VyJywgJ3dlYmRyaXZlciddLAogICAg
ICAgICAgICAgICAgICAgICAgICAgaGVscD0nbmFtZSBvZiBjb21wb25lbnQnKQorICAgIHBhcnNl
ci5hZGRfYXJndW1lbnQoJy0tY2hhbm5lbCcsIGNob2ljZXM9Y2hhbm5lbF9ieV9uYW1lLmtleXMo
KSwKKyAgICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ9Im5pZ2h0bHkiLCBoZWxwPSdOYW1l
IG9mIGJyb3dzZXIgcmVsZWFzZSBjaGFubmVsLiAnCisgICAgICAgICAgICAgICAgICAgICAgICAn
InN0YWJsZSIgYW5kICJyZWxlYXNlIiBhcmUgc3lub255bXMgZm9yIHRoZSBsYXRlc3QgYnJvd3Nl
ciBzdGFibGUgcmVsZWFzZSwnCisgICAgICAgICAgICAgICAgICAgICAgICAnIm5pZ2h0bHkiLCAi
ZGV2IiwgImV4cGVyaW1lbnRhbCIsIGFuZCAicHJldmlldyIgYXJlIGFsbCBzeW5vbnltcyBmb3Ig
JworICAgICAgICAgICAgICAgICAgICAgICAgJ3RoZSBsYXRlc3QgYXZhaWxhYmxlIGRldmVsb3Bt
ZW50IHJlbGVhc2UuIEZvciBXZWJEcml2ZXIgaW5zdGFsbHMsICcKKyAgICAgICAgICAgICAgICAg
ICAgICAgICd3ZSBhdHRlbXB0IHRvIHNlbGVjdCBhbiBhcHByb3ByaWF0ZSwgY29tcGF0aWJsZSwg
dmVyc2lvbiBmb3IgdGhlICcKKyAgICAgICAgICAgICAgICAgICAgICAgICdsYXRlc3QgYnJvd3Nl
ciByZWxlYXNlIG9uIHRoZSBzZWxlY3RlZCBjaGFubmVsLicpCisgICAgcGFyc2VyLmFkZF9hcmd1
bWVudCgnLS1kb3dubG9hZC1vbmx5JywgYWN0aW9uPSJzdG9yZV90cnVlIiwKKyAgICAgICAgICAg
ICAgICAgICAgICAgIGhlbHA9IkRvd25sb2FkIHRoZSBzZWxlY3RlZCBjb21wb25lbnQgYnV0IGRv
bid0IGluc3RhbGwgaXQiKQogICAgIHBhcnNlci5hZGRfYXJndW1lbnQoJy1kJywgJy0tZGVzdGlu
YXRpb24nLAogICAgICAgICAgICAgICAgICAgICAgICAgaGVscD0nZmlsZXN5c3RlbSBkaXJlY3Rv
cnkgdG8gcGxhY2UgdGhlIGNvbXBvbmVudCcpCiAgICAgcmV0dXJuIHBhcnNlcgogCiAKK2RlZiBn
ZXRfY2hhbm5lbChicm93c2VyLCBjaGFubmVsKToKKyAgICBjaGFubmVsID0gY2hhbm5lbF9ieV9u
YW1lW2NoYW5uZWxdCisgICAgaWYgaXNpbnN0YW5jZShjaGFubmVsLCBkaWN0KToKKyAgICAgICAg
Y2hhbm5lbCA9IGNoYW5uZWwuZ2V0KGJyb3dzZXIpCisgICAgcmV0dXJuIGNoYW5uZWwKKworCiBk
ZWYgcnVuKHZlbnYsICoqa3dhcmdzKToKICAgICBicm93c2VyID0ga3dhcmdzWyJicm93c2VyIl0K
ICAgICBkZXN0aW5hdGlvbiA9IGt3YXJnc1siZGVzdGluYXRpb24iXQorICAgIGNoYW5uZWwgPSBn
ZXRfY2hhbm5lbChicm93c2VyLCBrd2FyZ3NbImNoYW5uZWwiXSkKKworICAgIGlmIGNoYW5uZWwg
IT0ga3dhcmdzWyJjaGFubmVsIl06CisgICAgICAgIHByaW50KCJJbnRlcnByZXRpbmcgY2hhbm5l
bCAnJXMnIGFzICclcyciICUgKGt3YXJnc1siY2hhbm5lbCJdLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGFubmVsKSkKIAogICAgIGlmIGRl
c3RpbmF0aW9uIGlzIE5vbmU6CiAgICAgICAgIGlmIHZlbnY6CkBAIC0yNywxNSArNzUsMjIgQEAg
ZGVmIHJ1bih2ZW52LCAqKmt3YXJncyk6CiAgICAgICAgICAgICByYWlzZSBhcmdwYXJzZS5Bcmd1
bWVudEVycm9yKE5vbmUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICJObyAtLWRlc3RpbmF0aW9uIGFyZ3VtZW50LCBhbmQgbm8gZGVmYXVsdCBmb3IgdGhlIGVudmly
b25tZW50IikKIAotICAgIGluc3RhbGwoYnJvd3Nlciwga3dhcmdzWyJjb21wb25lbnQiXSwgZGVz
dGluYXRpb24pCisgICAgaW5zdGFsbChicm93c2VyLCBrd2FyZ3NbImNvbXBvbmVudCJdLCBkZXN0
aW5hdGlvbiwgY2hhbm5lbCwKKyAgICAgICAgICAgIGRvd25sb2FkX29ubHk9a3dhcmdzWyJkb3du
bG9hZF9vbmx5Il0pCisKKworZGVmIGluc3RhbGwobmFtZSwgY29tcG9uZW50LCBkZXN0aW5hdGlv
biwgY2hhbm5lbD0ibmlnaHRseSIsIGxvZ2dlcj1Ob25lLCBkb3dubG9hZF9vbmx5PUZhbHNlKToK
KyAgICBpZiBsb2dnZXIgaXMgTm9uZToKKyAgICAgICAgaW1wb3J0IGxvZ2dpbmcKKyAgICAgICAg
bG9nZ2VyID0gbG9nZ2luZy5nZXRMb2dnZXIoImluc3RhbGwiKQogCisgICAgcHJlZml4ID0gImRv
d25sb2FkIiBpZiBkb3dubG9hZF9vbmx5IGVsc2UgImluc3RhbGwiCisgICAgc3VmZml4ID0gIl93
ZWJkcml2ZXIiIGlmIGNvbXBvbmVudCA9PSAnd2ViZHJpdmVyJyBlbHNlICIiCiAKLWRlZiBpbnN0
YWxsKG5hbWUsIGNvbXBvbmVudCwgZGVzdGluYXRpb24pOgotICAgIGlmIGNvbXBvbmVudCA9PSAn
d2ViZHJpdmVyJzoKLSAgICAgICAgbWV0aG9kID0gJ2luc3RhbGxfd2ViZHJpdmVyJwotICAgIGVs
c2U6Ci0gICAgICAgIG1ldGhvZCA9ICdpbnN0YWxsJworICAgIG1ldGhvZCA9IHByZWZpeCArIHN1
ZmZpeAogCiAgICAgc3ViY2xhc3MgPSBnZXRhdHRyKGJyb3dzZXIsIG5hbWUudGl0bGUoKSkKICAg
ICBzeXMuc3Rkb3V0LndyaXRlKCdOb3cgaW5zdGFsbGluZyAlcyAlcy4uLlxuJyAlIChuYW1lLCBj
b21wb25lbnQpKQotICAgIGdldGF0dHIoc3ViY2xhc3MoKSwgbWV0aG9kKShkZXN0PWRlc3RpbmF0
aW9uKQorICAgIHBhdGggPSBnZXRhdHRyKHN1YmNsYXNzKGxvZ2dlciksIG1ldGhvZCkoZGVzdD1k
ZXN0aW5hdGlvbiwgY2hhbm5lbD1jaGFubmVsKQorICAgIGlmIHBhdGg6CisgICAgICAgIHN5cy5z
dGRvdXQud3JpdGUoJ0JpbmFyeSAlcyBhcyAlc1xuJyAlICgiZG93bmxvYWRlZCIgaWYgZG93bmxv
YWRfb25seSBlbHNlICJpbnN0YWxsZWQiLCBwYXRoLCkpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdC9tYWNoLWVtdWxhdG9y
Lm1hbmlmZXN0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy93cHQvbWFjaC1lbXVsYXRvci5tYW5pZmVzdApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40OWY0NmM2MGZmZTE5
ODJlNTJhZTk5Mjk4MWJlOWM4MjAzZDM1YTliCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHQvbWFjaC1lbXVsYXRv
ci5tYW5pZmVzdApAQCAtMCwwICsxLDEwIEBACitbCisgIHsKKyAgICAiYWxnb3JpdGhtIjogInNo
YTUxMiIsCisgICAgInZpc2liaWxpdHkiOiAicHVibGljIiwKKyAgICAiZmlsZW5hbWUiOiAiQVZE
cy14ODYtYW5kcm9pZC03LjAtYnVpbGQtMjAxOS0wNC0yMy50YXIuZ3oiLAorICAgICJ1bnBhY2si
OiB0cnVlLAorICAgICJkaWdlc3QiOiAiM2NjMDM3ODlhYWJmYzY5MmM3NmU1YWU0ZWJlZmE3YTU2
MjhmMzg2ZGYzYzk3NzhhZjI0ODVhNDliMjQwMWQ0YWQ2NjMwMWJlNmMzZDExNmZmN2QzZWU3NDdl
MDBjZTYzMzIzODEyMTZmNTVhNzI1M2I2YjViNjAwZDA1OWJhYTIiLAorICAgICJzaXplIjogNDQ1
MjUwOTM1CisgIH0KK10KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0L21hcmtkb3duLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHQvbWFya2Rvd24ucHkKaW5kZXggOGI1
ZmY4MDc5ZGYwODU2MWVkNGYwMTRkZWE4N2E1OGMzNTg2OTJjZC4uNDMwMjBjZGFmZTZlMzM2MTAy
YWNmNDk4NmJmM2FjMWE2YjI1ZGUwZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHQvbWFya2Rvd24ucHkKKysrIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHQvbWFya2Rvd24u
cHkKQEAgLTEsMyArMSw1IEBACitmcm9tIGZ1bmN0b29scyBpbXBvcnQgcmVkdWNlCisKIGRlZiBm
b3JtYXRfY29tbWVudF90aXRsZShwcm9kdWN0KToKICAgICAiIiJQcm9kdWNlIGEgTWFya2Rvd24t
Zm9ybWF0dGVkIHN0cmluZyBiYXNlZCBvbiBhIGdpdmVuICJwcm9kdWN0Ii0tYSBzdHJpbmcKICAg
ICBjb250YWluaW5nIGEgYnJvd3NlciBpZGVudGlmaWVyIG9wdGlvbmFsbHkgZm9sbG93ZWQgYnkg
YSBjb2xvbiBhbmQgYQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy93cHQvcGF0aHMgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdC9wYXRocwppbmRleCAwZWYxM2M5NmUzOGM0NmEx
YmYwNjM2NzkyYTk5MzMxMjZkMWNhZDA2Li4zNTg2N2M0Y2NiZmU5NWM0ZTcxYThkNzFjZTkwYTdi
Mzc4OTUxZmQ1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3dwdC9wYXRocworKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdC9wYXRocwpAQCAtMSw0ICsxLDUgQEAKIHRvb2xz
L2NpLwordG9vbHMvZG9ja2VyLwogdG9vbHMvbGludC8KIHRvb2xzL21hbmlmZXN0LwogdG9vbHMv
c2VydmUvCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3dwdC9yZXF1aXJlbWVudHMudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHQvcmVxdWlyZW1lbnRzLnR4dAppbmRleCA0
NmM0YjEzYTNiZjNiMDQ1ZmM0NzcyNzJmOWI1NTVlZjkwOTcxZTczLi41NjYwODNjYjZiZTg5YTAz
ZTQ4Y2M1YzFhMGE4OGZjNWNlNTNhODUzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdC9yZXF1aXJlbWVudHMudHh0CisrKyBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0L3Jl
cXVpcmVtZW50cy50eHQKQEAgLTEgKzEgQEAKLXJlcXVlc3RzPT0yLjE5LjEKK3JlcXVlc3RzPT0y
LjIyLjAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvd3B0L3Jldmxpc3QucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdC9yZXZsaXN0LnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmM0Y2JjMjk0
M2I3Y2UwMmVmMmE1OGY2NWQzNGFiNzE3YmZiMGM5ODEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdC9yZXZsaXN0
LnB5CkBAIC0wLDAgKzEsMTE5IEBACitpbXBvcnQgYXJncGFyc2UKK2ltcG9ydCBsb2dnaW5nCitp
bXBvcnQgb3MKK2ltcG9ydCB0aW1lCitmcm9tIHRvb2xzLndwdC50ZXN0ZmlsZXMgaW1wb3J0IGdl
dF9naXRfY21kCisKK2hlcmUgPSBvcy5wYXRoLmRpcm5hbWUoX19maWxlX18pCit3cHRfcm9vdCA9
IG9zLnBhdGguYWJzcGF0aChvcy5wYXRoLmpvaW4oaGVyZSwgb3MucGFyZGlyLCBvcy5wYXJkaXIp
KQorCitsb2dnZXIgPSBsb2dnaW5nLmdldExvZ2dlcigpCisKK01ZUFkgPSBGYWxzZQoraWYgTVlQ
WToKKyAgICAjIE1ZUFkgaXMgc2V0IHRvIFRydWUgd2hlbiBydW4gdW5kZXIgTXlweS4KKyAgICBm
cm9tIHR5cGluZyBpbXBvcnQgQW55CisgICAgZnJvbSB0eXBpbmcgaW1wb3J0IERpY3QKKyAgICBm
cm9tIHR5cGluZyBpbXBvcnQgTGlzdAorICAgIGZyb20gdHlwaW5nIGltcG9ydCBUZXh0CisKKwor
ZGVmIGNhbGN1bGF0ZV9jdXRvZmZfZGF0ZSh1bnRpbCwgZXBvY2gsIG9mZnNldCk6CisgICAgcmV0
dXJuICgoKCh1bnRpbCAtIG9mZnNldCkgLy8gZXBvY2gpKSAqIGVwb2NoKSArIG9mZnNldAorCisK
K2RlZiBwYXJzZV9lcG9jaChzdHJpbmcpOgorICAgICMgdHlwZTogKHN0cikgLT4gaW50CisgICAg
VU5JVF9ESUNUID0geyJoIjogMzYwMCwgImQiOiA4NjQwMCwgInciOiA2MDQ4MDB9CisgICAgYmFz
ZSA9IHN0cmluZ1s6LTFdCisgICAgdW5pdCA9IHN0cmluZ1stMTpdCisgICAgaWYgYmFzZS5pc2Rp
Z2l0KCkgYW5kIHVuaXQgaW4gVU5JVF9ESUNUOgorICAgICAgICByZXR1cm4gaW50KGJhc2UpICog
VU5JVF9ESUNUW3VuaXRdCisgICAgcmFpc2UgYXJncGFyc2UuQXJndW1lbnRUeXBlRXJyb3IoJ211
c3QgYmUgZGlnaXRzIGZvbGxvd2VkIGJ5IGgvZC93JykKKworCitkZWYgZ2V0X3RhZ2dlZF9yZXZp
c2lvbnMocGF0dGVybik6CisgICAgIyB0eXBlOiAoYnl0ZXMpIC0+IExpc3RbLi4uLCBEaWN0XQor
ICAgICcnJworICAgIFJldHVybnMgdGhlIHRhZ2dlZCByZXZpc2lvbnMgaW5kZXhlZCBieSB0aGUg
Y29tbWl0dGVyIGRhdGUuCisgICAgJycnCisgICAgZ2l0ID0gZ2V0X2dpdF9jbWQod3B0X3Jvb3Qp
CisgICAgYXJncyA9IFsKKyAgICAgICAgcGF0dGVybiwKKyAgICAgICAgJy0tc29ydD0tY29tbWl0
dGVyZGF0ZScsCisgICAgICAgICctLWZvcm1hdD0lKHJlZm5hbWU6bHN0cmlwPTIpICUob2JqZWN0
bmFtZSkgJShjb21taXR0ZXJkYXRlOnJhdyknLAorICAgICAgICAnLS1jb3VudD0xMDAwMDAnCisg
ICAgXQorICAgIGZvciBsaW5lIGluIGdpdCgiZm9yLWVhY2gtcmVmIiwgKmFyZ3MpLnNwbGl0bGlu
ZXMoKToKKyAgICAgICAgdGFnLCBjb21taXQsIGRhdGUsIF8gPSBsaW5lLnNwbGl0KCIgIikKKyAg
ICAgICAgZGF0ZSA9IGludChkYXRlKQorICAgICAgICB5aWVsZCB0YWcsIGNvbW1pdCwgZGF0ZQor
CisKK2RlZiBnZXRfZXBvY2hfcmV2aXNpb25zKGVwb2NoLCB1bnRpbCwgbWF4X2NvdW50KToKKyAg
ICAjIHR5cGU6ICgqKkFueSkgLT4gTGlzdFtUZXh0XQorICAgIGxvZ2dlci5kZWJ1ZygiZ2V0X2Vw
b2NoX3JldmlzaW9ucyglcywgJXMpIiAlIChlcG9jaCwgbWF4X2NvdW50KSkKKyAgICAjIFNldCBh
biBvZmZzZXQgdG8gc3RhcnQgdG8gY291bnQgdGhlIHRoZSB3ZWVrbHkgZXBvY2ggZnJvbQorICAg
ICMgTW9uZGF5IDAwOjAwOjAwLiBUaGlzIGlzIHBhcnRpY3VsYXJseSBpbXBvcnRhbnQgZm9yIHRo
ZSB3ZWVrbHkgZXBvY2gKKyAgICAjIGJlY2F1c2UgZml4IHRoZSBzdGFydCBvZiB0aGUgZXBvY2gg
dG8gTW9uZGF5LiBUaGlzIG9mZnNldCBpcyBjYWxjdWxhdGVkCisgICAgIyBmcm9tIFRodXJzZGF5
LCAxIEphbnVhcnkgMTk3MCAwOjAwOjAwIHRvIE1vbmRheSwgNSBKYW51YXJ5IDE5NzAgMDowMDow
MAorICAgIGVwb2NoX29mZnNldCA9IDM0NTYwMAorICAgIGNvdW50ID0gMAorCisgICAgIyBJdGVy
YXRlcyB0aGUgdGFnZ2VkIHJldmlzaW9ucyBpbiBkZXNjZW5kaW5nIG9yZGVyIGZpbmRpbmcgdGhl
IG1vcmUKKyAgICAjIHJlY2VudCBjb21taXQgc3RpbGwgb2xkZXIgdGhhbiBhICJjdXRvZmZfZGF0
ZSIgdmFsdWUuCisgICAgIyBXaGVuIGEgY29tbWl0IGlzIGZvdW5kICJjdXRvZmZfZGF0ZSIgaXMg
c2V0IHRvIGEgbmV3IHZhbHVlIG11bHRpcGxpZXIgb2YKKyAgICAjICJlcG9jaCIgYnV0IHN0aWxs
IGJlbG93IG9mIHRoZSBkYXRlIG9mIHRoZSBjdXJyZW50IGNvbW1pdCBmb3VuZC4KKyAgICAjIFRo
aXMgbmVlZGVkIHRvIGRlYWwgd2l0aCBpbnRlcnZhbHMgd2hlcmUgbm8gY2FuZGlkYXRlcyB3ZXJl
IGZvdW5kCisgICAgIyBmb3IgdGhlIGN1cnJlbnQgImVwb2NoIiBhbmQgdGhlIG5leHQgY2FuZGlk
YXRlIGZvdW5kIGlzIHlldCBiZWxvdworICAgICMgdGhlIGxvd2VyIHZhbHVlcyBvZiB0aGUgaW50
ZXJ2YWwgKGl0IGlzIHRoZSBjYXNlIG9mIEogYW5kIEkgZm9yIHRoZQorICAgICMgaW50ZXJ2YWwg
YmV0d2VlbiBXZWQgYW5kIFR1ZSwgaW4gdGhlIGV4YW1wbGUpLiBUaGUgYWxnb3JpdGhtIGZpeAor
ICAgICMgdGhlIG5leHQgImN1dG9mZl9kYXRlIiB2YWx1ZSBiYXNlZCBvbiB0aGUgZGF0ZSB2YWx1
ZSBvZiB0aGUgY3VycmVudCBvbmUKKyAgICAjIHNraXBwaW5nIHRoZSBpbnRlcm1lZGlhdGUgdmFs
dWVzLgorICAgICMgVGhlIGxvb3AgZW5kcyBvbmNlIHdlIHJlYWNoZWQgdGhlIHJlcXVpcmVkIG51
bWJlciBvZiByZXZpc2lvbnMgdG8gcmV0dXJuCisgICAgIyBvciB0aGUgYXJlIG5vIG1vcmUgdGFn
Z2VkIHJldmlzaW9ucyBvciB0aGUgY3V0b2ZmX2RhdGUgcmVhY2ggemVyby4KKyAgICAjCisgICAg
IyAgIEZyaSAgIFNhdCAgIFN1biAgIE1vbiAgIFR1ZSAgIFdlZCAgIFRodSAgIEZyaSAgIFNhdAor
ICAgICMgICAgfCAgICAgfCAgICAgfCAgICAgfCAgICAgfCAgICAgfCAgICAgfCAgICAgfCAgICAg
fAorICAgICMgLUEtLS1CLUMtLS1ERUYtLS1HLS0tSC0tSUotLS0tLS0tLS0tSy0tLS0tTC1NLS0t
LU4tLU8tLQorICAgICMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgXgorICAgICMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBub3cKKyAgICAjIEV4cGVjdGVkIHJlc3VsdDogTixNLEssSixILEcs
RixDLEEKKworICAgIGN1dG9mZl9kYXRlID0gY2FsY3VsYXRlX2N1dG9mZl9kYXRlKHVudGlsLCBl
cG9jaCwgZXBvY2hfb2Zmc2V0KQorICAgIGZvciBfLCBjb21taXQsIGRhdGUgaW4gZ2V0X3RhZ2dl
ZF9yZXZpc2lvbnMoInJlZnMvdGFncy9tZXJnZV9wcl8qIik6CisgICAgICAgIGlmIGNvdW50ID49
IG1heF9jb3VudDoKKyAgICAgICAgICAgIHJldHVybgorICAgICAgICBpZiBkYXRlIDwgY3V0b2Zm
X2RhdGU6CisgICAgICAgICAgICB5aWVsZCBjb21taXQKKyAgICAgICAgICAgIGNvdW50ICs9IDEK
KyAgICAgICAgICAgIGN1dG9mZl9kYXRlID0gY2FsY3VsYXRlX2N1dG9mZl9kYXRlKGRhdGUsIGVw
b2NoLCBlcG9jaF9vZmZzZXQpCisKKworZGVmIGdldF9wYXJzZXIoKToKKyAgICAjIHR5cGU6ICgp
IC0+IGFyZ3BhcnNlLkFyZ3VtZW50UGFyc2VyCisgICAgcGFyc2VyID0gYXJncGFyc2UuQXJndW1l
bnRQYXJzZXIoKQorICAgIHBhcnNlci5hZGRfYXJndW1lbnQoIi0tZXBvY2giLAorICAgICAgICAg
ICAgICAgICAgICAgICAgZGVmYXVsdD0iMWQiLAorICAgICAgICAgICAgICAgICAgICAgICAgdHlw
ZT1wYXJzZV9lcG9jaCwKKyAgICAgICAgICAgICAgICAgICAgICAgIGhlbHA9InJlZ3VsYXIgaW50
ZXJ2YWwgb2YgdGltZSBzZWxlY3RlZCB0byBnZXQgdGhlICIKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgInRhZ2dlZCByZXZpc2lvbnMuIFZhbGlkIHZhbHVlcyBhcmUgZGlnaXRzICIKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgImZvbGxvd2VkIGJ5IGgvZC93IChlLnguIDloLCA5
ZCwgOXcgLi4uKSB3aGVyZSAiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ0aGUgbWlt
aW11biBzZWxlY3RhYmxlIGludGVydmFsIGlzIG9uZSBob3VyICIKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIigxaCkiKQorICAgIHBhcnNlci5hZGRfYXJndW1lbnQoIi0tbWF4LWNvdW50
IiwKKyAgICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ9MSwKKyAgICAgICAgICAgICAgICAg
ICAgICAgIHR5cGU9aW50LAorICAgICAgICAgICAgICAgICAgICAgICAgaGVscD0ibWF4aW11bSBu
dW1iZXIgb2YgcmV2aXNpb25zIHRvIGJlIHJldHVybmVkIGJ5ICIKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgInRoZSBjb21tYW5kIikKKyAgICByZXR1cm4gcGFyc2VyCisKKworZGVmIHJ1
bl9yZXZfbGlzdCgqKmt3YXJncyk6CisgICAgIyB0eXBlOiAoKipBbnkpIC0+IE5vbmUKKyAgICAj
ICJlcG9jaF90aHJlc2hvbGQiIGlzIGEgc2FmZXR5IG1hcmdpbi4gQWZ0ZXIgdGhpcyB0aW1lIGl0
IGlzIGZpbmUgdG8KKyAgICAjIGFzc3VtZSB0aGF0IGFueSB0YWdzIGFyZSBjcmVhdGVkIGFuZCBw
dXNoZWQuCisgICAgZXBvY2hfdGhyZXNob2xkID0gNjAwCisgICAgdW50aWwgPSBpbnQodGltZS50
aW1lKCkpIC0gZXBvY2hfdGhyZXNob2xkCisgICAgZm9yIGxpbmUgaW4gZ2V0X2Vwb2NoX3Jldmlz
aW9ucyhrd2FyZ3NbImVwb2NoIl0sIHVudGlsLCBrd2FyZ3NbIm1heF9jb3VudCJdKToKKyAgICAg
ICAgcHJpbnQobGluZSkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0L3J1bi5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0L3J1bi5weQppbmRleCBmMDcyY2Y3ZjAyMTE5
ZWQxNTgxYmZjYTE1YzBhOTRlOTJiZWZkNGMyLi40YzFmMmM5OTEyOGRlODkzN2RjYTAxNDc5YjFi
NGM0MzE5NDE0ZjhiIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3dwdC9ydW4ucHkKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHQvcnVuLnB5CkBAIC0zLDExICszLDEyIEBA
IGltcG9ydCBvcwogaW1wb3J0IHBsYXRmb3JtCiBpbXBvcnQgc3lzCiBmcm9tIGRpc3R1dGlscy5z
cGF3biBpbXBvcnQgZmluZF9leGVjdXRhYmxlCitmcm9tIHNpeC5tb3ZlcyBpbXBvcnQgaW5wdXQK
IAogd3B0X3Jvb3QgPSBvcy5wYXRoLmFic3BhdGgob3MucGF0aC5qb2luKG9zLnBhdGguZGlybmFt
ZShfX2ZpbGVfXyksIG9zLnBhcmRpciwgb3MucGFyZGlyKSkKIHN5cy5wYXRoLmluc2VydCgwLCBv
cy5wYXRoLmFic3BhdGgob3MucGF0aC5qb2luKHdwdF9yb290LCAidG9vbHMiKSkpCiAKLWZyb20g
LiBpbXBvcnQgYnJvd3NlciwgdXRpbHMsIHZpcnR1YWxlbnYKK2Zyb20gLiBpbXBvcnQgYnJvd3Nl
ciwgaW5zdGFsbCwgdGVzdGZpbGVzLCB1dGlscywgdmlydHVhbGVudgogZnJvbSAuLnNlcnZlIGlt
cG9ydCBzZXJ2ZQogCiBsb2dnZXIgPSBOb25lCkBAIC00NCwxNyArNDUsMzIgQEAgZGVmIGNyZWF0
ZV9wYXJzZXIoKToKICAgICBwYXJzZXIgPSBhcmdwYXJzZS5Bcmd1bWVudFBhcnNlcihhZGRfaGVs
cD1GYWxzZSkKICAgICBwYXJzZXIuYWRkX2FyZ3VtZW50KCJwcm9kdWN0IiwgYWN0aW9uPSJzdG9y
ZSIsCiAgICAgICAgICAgICAgICAgICAgICAgICBoZWxwPSJCcm93c2VyIHRvIHJ1biB0ZXN0cyBp
biIpCisgICAgcGFyc2VyLmFkZF9hcmd1bWVudCgiLS1hZmZlY3RlZCIsIGFjdGlvbj0ic3RvcmUi
LCBkZWZhdWx0PU5vbmUsCisgICAgICAgICAgICAgICAgICAgICAgICBoZWxwPSJSdW4gYWZmZWN0
ZWQgdGVzdHMgc2luY2UgcmV2aXNoIikKICAgICBwYXJzZXIuYWRkX2FyZ3VtZW50KCItLXllcyIs
ICIteSIsIGRlc3Q9InByb21wdCIsIGFjdGlvbj0ic3RvcmVfZmFsc2UiLCBkZWZhdWx0PVRydWUs
CiAgICAgICAgICAgICAgICAgICAgICAgICBoZWxwPSJEb24ndCBwcm9tcHQgYmVmb3JlIGluc3Rh
bGxpbmcgY29tcG9uZW50cyIpCiAgICAgcGFyc2VyLmFkZF9hcmd1bWVudCgiLS1pbnN0YWxsLWJy
b3dzZXIiLCBhY3Rpb249InN0b3JlX3RydWUiLAotICAgICAgICAgICAgICAgICAgICAgICAgaGVs
cD0iSW5zdGFsbCB0aGUgbGF0ZXN0IGRldmVsb3BtZW50IHZlcnNpb24gb2YgdGhlIGJyb3dzZXIi
KQorICAgICAgICAgICAgICAgICAgICAgICAgaGVscD0iSW5zdGFsbCB0aGUgYnJvd3NlciBmcm9t
IHRoZSByZWxlYXNlIGNoYW5uZWwgc3BlY2lmaWVkIGJ5IC0tY2hhbm5lbCAiCisgICAgICAgICAg
ICAgICAgICAgICAgICAiKG9yIHRoZSBuaWdodGx5IGNoYW5uZWwgYnkgZGVmYXVsdCkuIikKKyAg
ICBwYXJzZXIuYWRkX2FyZ3VtZW50KCItLWNoYW5uZWwiLCBhY3Rpb249InN0b3JlIiwKKyAgICAg
ICAgICAgICAgICAgICAgICAgIGNob2ljZXM9aW5zdGFsbC5jaGFubmVsX2J5X25hbWUua2V5cygp
LAorICAgICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdD1Ob25lLCBoZWxwPSdOYW1lIG9mIGJy
b3dzZXIgcmVsZWFzZSBjaGFubmVsLiAnCisgICAgICAgICAgICAgICAgICAgICAgICAnInN0YWJs
ZSIgYW5kICJyZWxlYXNlIiBhcmUgc3lub255bXMgZm9yIHRoZSBsYXRlc3QgYnJvd3NlciBzdGFi
bGUgJworICAgICAgICAgICAgICAgICAgICAgICAgJ3JlbGVhc2UsICJuaWdodGx5IiwgImRldiIs
ICJleHBlcmltZW50YWwiLCBhbmQgInByZXZpZXciIGFyZSBhbGwgJworICAgICAgICAgICAgICAg
ICAgICAgICAgJ3N5bm9ueW1zIGZvciB0aGUgbGF0ZXN0IGF2YWlsYWJsZSBkZXZlbG9wbWVudCBy
ZWxlYXNlLiAoRm9yIFdlYkRyaXZlciAnCisgICAgICAgICAgICAgICAgICAgICAgICAnaW5zdGFs
bHMsIHdlIGF0dGVtcHQgdG8gc2VsZWN0IGFuIGFwcHJvcHJpYXRlLCBjb21wYXRpYmxlIHZlcnNp
b24gZm9yICcKKyAgICAgICAgICAgICAgICAgICAgICAgICd0aGUgbGF0ZXN0IGJyb3dzZXIgcmVs
ZWFzZSBvbiB0aGUgc2VsZWN0ZWQgY2hhbm5lbC4pICcKKyAgICAgICAgICAgICAgICAgICAgICAg
ICdUaGlzIGZsYWcgb3ZlcnJpZGVzIC0tYnJvd3Nlci1jaGFubmVsLicpCiAgICAgcGFyc2VyLl9h
ZGRfY29udGFpbmVyX2FjdGlvbnMod3B0Y29tbWFuZGxpbmUuY3JlYXRlX3BhcnNlcigpKQogICAg
IHJldHVybiBwYXJzZXIKIAogCi1kZWYgZXhpdChtc2cpOgotICAgIGxvZ2dlci5lcnJvcihtc2cp
Ci0gICAgc3lzLmV4aXQoMSkKK2RlZiBleGl0KG1zZz1Ob25lKToKKyAgICBpZiBtc2c6CisgICAg
ICAgIGxvZ2dlci5jcml0aWNhbChtc2cpCisgICAgICAgIHN5cy5leGl0KDEpCisgICAgZWxzZToK
KyAgICAgICAgc3lzLmV4aXQoMCkKIAogCiBkZWYgYXJnc19nZW5lcmFsKGt3YXJncyk6CkBAIC05
MCw5ICsxMDYsOSBAQCBvdGhlcndpc2UgaW5zdGFsbCBPcGVuU1NMIGFuZCBlbnN1cmUgdGhhdCBp
dCdzIG9uIHlvdXIgJFBBVEguIiIiKQogCiAKIGRlZiBjaGVja19lbnZpcm9uKHByb2R1Y3QpOgot
ICAgIGlmIHByb2R1Y3Qgbm90IGluICgiZmlyZWZveCIsICJzZXJ2byIpOgorICAgIGlmIHByb2R1
Y3Qgbm90IGluICgiYW5kcm9pZF93ZWJ2aWV3IiwgImNocm9tZSIsICJjaHJvbWVfYW5kcm9pZCIs
ICJmaXJlZm94IiwgImZpcmVmb3hfYW5kcm9pZCIsICJzZXJ2byIpOgogICAgICAgICBjb25maWdf
YnVpbGRlciA9IHNlcnZlLmJ1aWxkX2NvbmZpZyhvcy5wYXRoLmpvaW4od3B0X3Jvb3QsICJjb25m
aWcuanNvbiIpKQotICAgICAgICAjIE92dmVyaWRlIHRoZSBwb3J0cyB0byBhdm9pZCBsb29raW5n
IGZvciBmcmVlIHBvcnRzCisgICAgICAgICMgT3ZlcnJpZGUgdGhlIHBvcnRzIHRvIGF2b2lkIGxv
b2tpbmcgZm9yIGZyZWUgcG9ydHMKICAgICAgICAgY29uZmlnX2J1aWxkZXIuc3NsID0geyJ0eXBl
IjogIm5vbmUifQogICAgICAgICBjb25maWdfYnVpbGRlci5wb3J0cyA9IHsiaHR0cCI6IFs4MDAw
XX0KIApAQCAtMTA1LDEwICsxMjEsMTUgQEAgZGVmIGNoZWNrX2Vudmlyb24ocHJvZHVjdCk6CiAK
ICAgICAgICAgbWlzc2luZ19ob3N0cyA9IHNldChleHBlY3RlZF9ob3N0cykKICAgICAgICAgaWYg
aXNfd2luZG93czoKLSAgICAgICAgICAgIGhvc3RzX3BhdGggPSAiQzpcV2luZG93c1xTeXN0ZW0z
Mlxkcml2ZXJzXGV0Y1xob3N0cyIKKyAgICAgICAgICAgIGhvc3RzX3BhdGggPSByIiVzXFN5c3Rl
bTMyXGRyaXZlcnNcZXRjXGhvc3RzIiAlIG9zLmVudmlyb24uZ2V0KCJTeXN0ZW1Sb290IiwgciJD
OlxXaW5kb3dzIikKICAgICAgICAgZWxzZToKICAgICAgICAgICAgIGhvc3RzX3BhdGggPSAiL2V0
Yy9ob3N0cyIKIAorICAgICAgICBpZiBvcy5wYXRoLmFic3BhdGgob3MuY3VyZGlyKSA9PSB3cHRf
cm9vdDoKKyAgICAgICAgICAgIHdwdF9wYXRoID0gIndwdCIKKyAgICAgICAgZWxzZToKKyAgICAg
ICAgICAgIHdwdF9wYXRoID0gb3MucGF0aC5qb2luKHdwdF9yb290LCAid3B0IikKKwogICAgICAg
ICB3aXRoIG9wZW4oaG9zdHNfcGF0aCwgInIiKSBhcyBmOgogICAgICAgICAgICAgZm9yIGxpbmUg
aW4gZjoKICAgICAgICAgICAgICAgICBsaW5lID0gbGluZS5zcGxpdCgiIyIsIDEpWzBdLnN0cmlw
KCkKQEAgLTEyMCwxMyArMTQxLDE0IEBAIGRlZiBjaGVja19lbnZpcm9uKHByb2R1Y3QpOgogICAg
ICAgICAgICAgICAgIGlmIGlzX3dpbmRvd3M6CiAgICAgICAgICAgICAgICAgICAgIG1lc3NhZ2Ug
PSAiIiJNaXNzaW5nIGhvc3RzIGZpbGUgY29uZmlndXJhdGlvbi4gUnVuCiAKLXB5dGhvbiB3cHQg
bWFrZS1ob3N0cy1maWxlIHwgT3V0LUZpbGUgJVN5c3RlbVJvb3QlXFN5c3RlbTMyXGRyaXZlcnNc
ZXRjXGhvc3RzIC1FbmNvZGluZyBhc2NpaSAtQXBwZW5kCitweXRob24gJXMgbWFrZS1ob3N0cy1m
aWxlIHwgT3V0LUZpbGUgJXMgLUVuY29kaW5nIGFzY2lpIC1BcHBlbmQKIAotaW4gUG93ZXJTaGVs
bCB3aXRoIEFkbWluaXN0cmF0b3IgcHJpdmlsZWdlcy4iIiIgJSBob3N0c19wYXRoCitpbiBQb3dl
clNoZWxsIHdpdGggQWRtaW5pc3RyYXRvciBwcml2aWxlZ2VzLiIiIiAlICh3cHRfcGF0aCwgaG9z
dHNfcGF0aCkKICAgICAgICAgICAgICAgICBlbHNlOgogICAgICAgICAgICAgICAgICAgICBtZXNz
YWdlID0gIiIiTWlzc2luZyBob3N0cyBmaWxlIGNvbmZpZ3VyYXRpb24uIFJ1bgogCi0uL3dwdCBt
YWtlLWhvc3RzLWZpbGUgfCBzdWRvIHRlZSAtYSAlcyIiIiAlIGhvc3RzX3BhdGgKKyVzIG1ha2Ut
aG9zdHMtZmlsZSB8IHN1ZG8gdGVlIC1hICVzIiIiICUgKCIuL3dwdCIgaWYgd3B0X3BhdGggPT0g
IndwdCIgZWxzZSB3cHRfcGF0aCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGhvc3RzX3BhdGgpCiAgICAgICAgICAgICAgICAgcmFpc2UgV3B0cnVuRXJyb3IobWVz
c2FnZSkKIAogCkBAIC0xMzUsNyArMTU3LDcgQEAgY2xhc3MgQnJvd3NlclNldHVwKG9iamVjdCk6
CiAgICAgYnJvd3Nlcl9jbHMgPSBOb25lCiAKICAgICBkZWYgX19pbml0X18oc2VsZiwgdmVudiwg
cHJvbXB0PVRydWUsIHN1Yl9wcm9kdWN0PU5vbmUpOgotICAgICAgICBzZWxmLmJyb3dzZXIgPSBz
ZWxmLmJyb3dzZXJfY2xzKCkKKyAgICAgICAgc2VsZi5icm93c2VyID0gc2VsZi5icm93c2VyX2Ns
cyhsb2dnZXIpCiAgICAgICAgIHNlbGYudmVudiA9IHZlbnYKICAgICAgICAgc2VsZi5wcm9tcHQg
PSBwcm9tcHQKICAgICAgICAgc2VsZi5zdWJfcHJvZHVjdCA9IHN1Yl9wcm9kdWN0CkBAIC0xNDQs
MTggKzE2NiwxOSBAQCBjbGFzcyBCcm93c2VyU2V0dXAob2JqZWN0KToKICAgICAgICAgaWYgbm90
IHNlbGYucHJvbXB0OgogICAgICAgICAgICAgcmV0dXJuIFRydWUKICAgICAgICAgd2hpbGUgVHJ1
ZToKLSAgICAgICAgICAgIHJlc3AgPSByYXdfaW5wdXQoIkRvd25sb2FkIGFuZCBpbnN0YWxsICVz
IFtZL25dPyAiICUgY29tcG9uZW50KS5zdHJpcCgpLmxvd2VyKCkKKyAgICAgICAgICAgIHJlc3Ag
PSBpbnB1dCgiRG93bmxvYWQgYW5kIGluc3RhbGwgJXMgW1kvbl0/ICIgJSBjb21wb25lbnQpLnN0
cmlwKCkubG93ZXIoKQogICAgICAgICAgICAgaWYgbm90IHJlc3Agb3IgcmVzcCA9PSAieSI6CiAg
ICAgICAgICAgICAgICAgcmV0dXJuIFRydWUKICAgICAgICAgICAgIGVsaWYgcmVzcCA9PSAibiI6
CiAgICAgICAgICAgICAgICAgcmV0dXJuIEZhbHNlCiAKLSAgICBkZWYgaW5zdGFsbChzZWxmLCB2
ZW52KToKKyAgICBkZWYgaW5zdGFsbChzZWxmLCBjaGFubmVsPU5vbmUpOgogICAgICAgICBpZiBz
ZWxmLnByb21wdF9pbnN0YWxsKHNlbGYubmFtZSk6Ci0gICAgICAgICAgICByZXR1cm4gc2VsZi5i
cm93c2VyLmluc3RhbGwodmVudi5wYXRoKQorICAgICAgICAgICAgcmV0dXJuIHNlbGYuYnJvd3Nl
ci5pbnN0YWxsKHNlbGYudmVudi5wYXRoLCBjaGFubmVsKQogCiAgICAgZGVmIGluc3RhbGxfcmVx
dWlyZW1lbnRzKHNlbGYpOgotICAgICAgICBzZWxmLnZlbnYuaW5zdGFsbF9yZXF1aXJlbWVudHMo
b3MucGF0aC5qb2luKHdwdF9yb290LCAidG9vbHMiLCAid3B0cnVubmVyIiwgc2VsZi5icm93c2Vy
LnJlcXVpcmVtZW50cykpCisgICAgICAgIGlmIG5vdCBzZWxmLnZlbnYuc2tpcF92aXJ0dWFsZW52
X3NldHVwOgorICAgICAgICAgICAgc2VsZi52ZW52Lmluc3RhbGxfcmVxdWlyZW1lbnRzKG9zLnBh
dGguam9pbih3cHRfcm9vdCwgInRvb2xzIiwgIndwdHJ1bm5lciIsIHNlbGYuYnJvd3Nlci5yZXF1
aXJlbWVudHMpKQogCiAgICAgZGVmIHNldHVwKHNlbGYsIGt3YXJncyk6CiAgICAgICAgIHNlbGYu
c2V0dXBfa3dhcmdzKGt3YXJncykKQEAgLTE2Nyw3ICsxOTAsMTIgQEAgY2xhc3MgRmlyZWZveChC
cm93c2VyU2V0dXApOgogCiAgICAgZGVmIHNldHVwX2t3YXJncyhzZWxmLCBrd2FyZ3MpOgogICAg
ICAgICBpZiBrd2FyZ3NbImJpbmFyeSJdIGlzIE5vbmU6Ci0gICAgICAgICAgICBiaW5hcnkgPSBz
ZWxmLmJyb3dzZXIuZmluZF9iaW5hcnkoc2VsZi52ZW52LnBhdGgpCisgICAgICAgICAgICBpZiBr
d2FyZ3NbImJyb3dzZXJfY2hhbm5lbCJdIGlzIE5vbmU6CisgICAgICAgICAgICAgICAga3dhcmdz
WyJicm93c2VyX2NoYW5uZWwiXSA9ICJuaWdodGx5IgorICAgICAgICAgICAgICAgIGxvZ2dlci5p
bmZvKCJObyBicm93c2VyIGNoYW5uZWwgc3BlY2lmaWVkLiBSdW5uaW5nIG5pZ2h0bHkgaW5zdGVh
ZC4iKQorCisgICAgICAgICAgICBiaW5hcnkgPSBzZWxmLmJyb3dzZXIuZmluZF9iaW5hcnkoc2Vs
Zi52ZW52LnBhdGgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAga3dhcmdzWyJicm93c2VyX2NoYW5uZWwiXSkKICAgICAgICAgICAgIGlmIGJpbmFyeSBpcyBO
b25lOgogICAgICAgICAgICAgICAgIHJhaXNlIFdwdHJ1bkVycm9yKCIiIkZpcmVmb3ggYmluYXJ5
IG5vdCBmb3VuZCBvbiAkUEFUSC4KIApAQCAtMTgyLDcgKzIxMCw3IEBAIEluc3RhbGwgRmlyZWZv
eCBvciB1c2UgLS1iaW5hcnkgdG8gc2V0IHRoZSBiaW5hcnkgcGF0aCIiIikKICAgICAgICAgICAg
ICAgICBsb2dnZXIuaW5mbygiIiJDYW4ndCBmaW5kIGNlcnR1dGlsLCBjZXJ0aWZpY2F0ZXMgd2ls
bCBub3QgYmUgY2hlY2tlZC4KIENvbnNpZGVyIGluc3RhbGxpbmcgY2VydHV0aWwgdmlhIHlvdXIg
T1MgcGFja2FnZSBtYW5hZ2VyIG9yIGRpcmVjdGx5LiIiIikKICAgICAgICAgICAgIGVsc2U6Ci0g
ICAgICAgICAgICAgICAgcHJpbnQoIlVzaW5nIGNlcnR1dGlsICVzIiAlIGNlcnR1dGlsKQorICAg
ICAgICAgICAgICAgIGxvZ2dlci5pbmZvKCJVc2luZyBjZXJ0dXRpbCAlcyIgJSBjZXJ0dXRpbCkK
IAogICAgICAgICAgICAga3dhcmdzWyJjZXJ0dXRpbF9iaW5hcnkiXSA9IGNlcnR1dGlsCiAKQEAg
LTE5MywyOCArMjIxLDk0IEBAIENvbnNpZGVyIGluc3RhbGxpbmcgY2VydHV0aWwgdmlhIHlvdXIg
T1MgcGFja2FnZSBtYW5hZ2VyIG9yIGRpcmVjdGx5LiIiIikKICAgICAgICAgICAgICAgICBpbnN0
YWxsID0gc2VsZi5wcm9tcHRfaW5zdGFsbCgiZ2Vja29kcml2ZXIiKQogCiAgICAgICAgICAgICAg
ICAgaWYgaW5zdGFsbDoKLSAgICAgICAgICAgICAgICAgICAgcHJpbnQoIkRvd25sb2FkaW5nIGdl
Y2tvZHJpdmVyIikKKyAgICAgICAgICAgICAgICAgICAgbG9nZ2VyLmluZm8oIkRvd25sb2FkaW5n
IGdlY2tvZHJpdmVyIikKICAgICAgICAgICAgICAgICAgICAgd2ViZHJpdmVyX2JpbmFyeSA9IHNl
bGYuYnJvd3Nlci5pbnN0YWxsX3dlYmRyaXZlcihkZXN0PXNlbGYudmVudi5iaW5fcGF0aCkKICAg
ICAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAgICAgcHJpbnQoIlVzaW5nIHdlYmRyaXZlciBi
aW5hcnkgJXMiICUgd2ViZHJpdmVyX2JpbmFyeSkKKyAgICAgICAgICAgICAgICBsb2dnZXIuaW5m
bygiVXNpbmcgd2ViZHJpdmVyIGJpbmFyeSAlcyIgJSB3ZWJkcml2ZXJfYmluYXJ5KQogCiAgICAg
ICAgICAgICBpZiB3ZWJkcml2ZXJfYmluYXJ5OgogICAgICAgICAgICAgICAgIGt3YXJnc1sid2Vi
ZHJpdmVyX2JpbmFyeSJdID0gd2ViZHJpdmVyX2JpbmFyeQogICAgICAgICAgICAgZWxzZToKLSAg
ICAgICAgICAgICAgICBwcmludCgiVW5hYmxlIHRvIGZpbmQgb3IgaW5zdGFsbCBnZWNrb2RyaXZl
ciwgc2tpcHBpbmcgd2RzcGVjIHRlc3RzIikKKyAgICAgICAgICAgICAgICBsb2dnZXIuaW5mbygi
VW5hYmxlIHRvIGZpbmQgb3IgaW5zdGFsbCBnZWNrb2RyaXZlciwgc2tpcHBpbmcgd2RzcGVjIHRl
c3RzIikKICAgICAgICAgICAgICAgICBrd2FyZ3NbInRlc3RfdHlwZXMiXS5yZW1vdmUoIndkc3Bl
YyIpCiAKICAgICAgICAgaWYga3dhcmdzWyJwcmVmc19yb290Il0gaXMgTm9uZToKLSAgICAgICAg
ICAgIHByZWZzX3Jvb3QgPSBzZWxmLmJyb3dzZXIuaW5zdGFsbF9wcmVmcyhrd2FyZ3NbImJpbmFy
eSJdLCBzZWxmLnZlbnYucGF0aCkKKyAgICAgICAgICAgIHByZWZzX3Jvb3QgPSBzZWxmLmJyb3dz
ZXIuaW5zdGFsbF9wcmVmcyhrd2FyZ3NbImJpbmFyeSJdLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYudmVudi5wYXRoLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoYW5uZWw9a3dhcmdz
WyJicm93c2VyX2NoYW5uZWwiXSkKICAgICAgICAgICAgIGt3YXJnc1sicHJlZnNfcm9vdCJdID0g
cHJlZnNfcm9vdAogCisgICAgICAgIGlmIGt3YXJnc1siaGVhZGxlc3MiXSBpcyBOb25lOgorICAg
ICAgICAgICAga3dhcmdzWyJoZWFkbGVzcyJdID0gVHJ1ZQorICAgICAgICAgICAgbG9nZ2VyLmlu
Zm8oIlJ1bm5pbmcgaW4gaGVhZGxlc3MgbW9kZSwgcGFzcyAtLW5vLWhlYWRsZXNzIHRvIGRpc2Fi
bGUiKQorCisgICAgICAgICMgVHVybiBvZmYgRmlyZWZveCBXZWJSVEMgSUNFIGxvZ2dpbmcgb24g
V1BUICh0dXJuZWQgb24gYnkgbW96cnVubmVyKQorICAgICAgICBvcy51bnNldGVudignUl9MT0df
TEVWRUwnKQorICAgICAgICBvcy51bnNldGVudignUl9MT0dfREVTVElOQVRJT04nKQorICAgICAg
ICBvcy51bnNldGVudignUl9MT0dfVkVSQk9TRScpCisKKyAgICAgICAgIyBBbGxvdyBXZWJSVEMg
dGVzdHMgdG8gY2FsbCBnZXRVc2VyTWVkaWEuCisgICAgICAgIGt3YXJnc1siZXh0cmFfcHJlZnMi
XS5hcHBlbmQoIm1lZGlhLm5hdmlnYXRvci5zdHJlYW1zLmZha2U9dHJ1ZSIpCisKKworY2xhc3Mg
RmlyZWZveEFuZHJvaWQoQnJvd3NlclNldHVwKToKKyAgICBuYW1lID0gImZpcmVmb3hfYW5kcm9p
ZCIKKyAgICBicm93c2VyX2NscyA9IGJyb3dzZXIuRmlyZWZveEFuZHJvaWQKIAotY2xhc3MgRmVu
bmVjKEJyb3dzZXJTZXR1cCk6Ci0gICAgbmFtZSA9ICJmZW5uZWMiCi0gICAgYnJvd3Nlcl9jbHMg
PSBicm93c2VyLkZlbm5lYworICAgIGRlZiBpbnN0YWxsKHNlbGYsIGNoYW5uZWwpOgorICAgICAg
ICAjIFRoZSBpbnN0YWxsIG5lZWRzIHRvIGhhcHBlbiBpbiBzZXR1cCBzbyB0aGF0IHdlIGhhdmUg
YWNjZXNzIHRvIGFsbCB0aGUga3dhcmdzCisgICAgICAgIHNlbGYuX2luc3RhbGxfYnJvd3NlciA9
IFRydWUKKyAgICAgICAgcmV0dXJuIE5vbmUKIAogICAgIGRlZiBzZXR1cF9rd2FyZ3Moc2VsZiwg
a3dhcmdzKToKLSAgICAgICAgcGFzcworICAgICAgICBmcm9tIC4gaW1wb3J0IGFuZHJvaWQKKyAg
ICAgICAgaW1wb3J0IG1vemRldmljZQorCisgICAgICAgICMgV2UgZG9uJ3Qgc3VwcG9ydCBtdWx0
aXBsZSBjaGFubmVscyBmb3IgYW5kcm9pZCB5ZXQKKyAgICAgICAgaWYga3dhcmdzWyJicm93c2Vy
X2NoYW5uZWwiXSBpcyBOb25lOgorICAgICAgICAgICAga3dhcmdzWyJicm93c2VyX2NoYW5uZWwi
XSA9ICJuaWdodGx5IgorCisgICAgICAgIGlmIGt3YXJnc1sicHJlZnNfcm9vdCJdIGlzIE5vbmU6
CisgICAgICAgICAgICBwcmVmc19yb290ID0gc2VsZi5icm93c2VyLmluc3RhbGxfcHJlZnMoa3dh
cmdzWyJiaW5hcnkiXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBzZWxmLnZlbnYucGF0aCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBjaGFubmVsPWt3YXJnc1siYnJvd3Nlcl9jaGFubmVsIl0p
CisgICAgICAgICAgICBrd2FyZ3NbInByZWZzX3Jvb3QiXSA9IHByZWZzX3Jvb3QKKworICAgICAg
ICBpZiBrd2FyZ3NbInBhY2thZ2VfbmFtZSJdIGlzIE5vbmU6CisgICAgICAgICAgICBrd2FyZ3Nb
InBhY2thZ2VfbmFtZSJdID0gIm9yZy5tb3ppbGxhLmdlY2tvdmlldy50ZXN0IgorICAgICAgICBh
cHAgPSBrd2FyZ3NbInBhY2thZ2VfbmFtZSJdCisKKyAgICAgICAgaWYga3dhcmdzWyJkZXZpY2Vf
c2VyaWFsIl0gaXMgTm9uZToKKyAgICAgICAgICAgIGt3YXJnc1siZGV2aWNlX3NlcmlhbCJdID0g
ImVtdWxhdG9yLTU1NTQiCisKKyAgICAgICAgIyBXZSdyZSBydW5uaW5nIG9uIGFuIGVtdWxhdG9y
IHNvIGVuc3VyZSB0aGF0J3Mgc2V0IHVwCisgICAgICAgIGlmIGt3YXJnc1siZGV2aWNlX3Nlcmlh
bCJdLnN0YXJ0c3dpdGgoImVtdWxhdG9yLSIpOgorICAgICAgICAgICAgZW11bGF0b3IgPSBhbmRy
b2lkLmluc3RhbGwobG9nZ2VyLCByZWluc3RhbGw9RmFsc2UsIG5vX3Byb21wdD1ub3Qgc2VsZi5w
cm9tcHQpCisgICAgICAgICAgICBhbmRyb2lkLnN0YXJ0KGxvZ2dlciwgZW11bGF0b3I9ZW11bGF0
b3IsIHJlaW5zdGFsbD1GYWxzZSkKKworICAgICAgICBpbnN0YWxsID0gRmFsc2UKKyAgICAgICAg
aWYgaGFzYXR0cihzZWxmLCAiX2luc3RhbGxfYnJvd3NlciIpOgorICAgICAgICAgICAgaWYgc2Vs
Zi5wcm9tcHRfaW5zdGFsbCgiZ2Vja292aWV3LXRlc3QiKToKKyAgICAgICAgICAgICAgICBpbnN0
YWxsID0gVHJ1ZQorICAgICAgICAgICAgICAgIGFwa19wYXRoID0gc2VsZi5icm93c2VyLmluc3Rh
bGwoc2VsZi52ZW52LnBhdGgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBjaGFubmVsPWt3YXJnc1siYnJvd3Nlcl9jaGFubmVsIl0pCisKKyAgICAgICAg
aWYgIkFEQl9QQVRIIiBub3QgaW4gb3MuZW52aXJvbjoKKyAgICAgICAgICAgIGFkYl9wYXRoID0g
b3MucGF0aC5qb2luKGFuZHJvaWQuZ2V0X3Nka19wYXRoKE5vbmUpLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgInBsYXRmb3JtLXRvb2xzIiwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICJhZGIiKQorICAgICAgICAgICAgb3MuZW52aXJvblsiQURCX1BB
VEgiXSA9IGFkYl9wYXRoCisgICAgICAgIGFkYl9wYXRoID0gb3MuZW52aXJvblsiQURCX1BBVEgi
XQorCisgICAgICAgIGRldmljZSA9IG1vemRldmljZS5BREJEZXZpY2UoYWRiPWFkYl9wYXRoLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRldmljZT1rd2FyZ3NbImRldmlj
ZV9zZXJpYWwiXSkKKworICAgICAgICBpZiBpbnN0YWxsOgorICAgICAgICAgICAgZGV2aWNlLnVu
aW5zdGFsbF9hcHAoYXBwKQorICAgICAgICAgICAgZGV2aWNlLmluc3RhbGxfYXBwKGFwa19wYXRo
KQorICAgICAgICBlbGlmIG5vdCBkZXZpY2UuaXNfYXBwX2luc3RhbGxlZChhcHApOgorICAgICAg
ICAgICAgcmFpc2UgV3B0cnVuRXJyb3IoImFwcCAlcyBub3QgaW5zdGFsbGVkIG9uIGRldmljZSAl
cyIgJQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGFwcCwga3dhcmdzWyJkZXZpY2Vf
c2VyaWFsIl0pKQogCiAKIGNsYXNzIENocm9tZShCcm93c2VyU2V0dXApOgpAQCAtMjIyLDYgKzMx
NiwxMyBAQCBjbGFzcyBDaHJvbWUoQnJvd3NlclNldHVwKToKICAgICBicm93c2VyX2NscyA9IGJy
b3dzZXIuQ2hyb21lCiAKICAgICBkZWYgc2V0dXBfa3dhcmdzKHNlbGYsIGt3YXJncyk6CisgICAg
ICAgIGJyb3dzZXJfY2hhbm5lbCA9IGt3YXJnc1siYnJvd3Nlcl9jaGFubmVsIl0KKyAgICAgICAg
aWYga3dhcmdzWyJiaW5hcnkiXSBpcyBOb25lOgorICAgICAgICAgICAgYmluYXJ5ID0gc2VsZi5i
cm93c2VyLmZpbmRfYmluYXJ5KGNoYW5uZWw9YnJvd3Nlcl9jaGFubmVsKQorICAgICAgICAgICAg
aWYgYmluYXJ5OgorICAgICAgICAgICAgICAgIGt3YXJnc1siYmluYXJ5Il0gPSBiaW5hcnkKKyAg
ICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgcmFpc2UgV3B0cnVuRXJyb3IoIlVuYWJs
ZSB0byBsb2NhdGUgQ2hyb21lIGJpbmFyeSIpCiAgICAgICAgIGlmIGt3YXJnc1sid2ViZHJpdmVy
X2JpbmFyeSJdIGlzIE5vbmU6CiAgICAgICAgICAgICB3ZWJkcml2ZXJfYmluYXJ5ID0gc2VsZi5i
cm93c2VyLmZpbmRfd2ViZHJpdmVyKCkKIApAQCAtMjI5LDE1ICszMzAsMjcgQEAgY2xhc3MgQ2hy
b21lKEJyb3dzZXJTZXR1cCk6CiAgICAgICAgICAgICAgICAgaW5zdGFsbCA9IHNlbGYucHJvbXB0
X2luc3RhbGwoImNocm9tZWRyaXZlciIpCiAKICAgICAgICAgICAgICAgICBpZiBpbnN0YWxsOgot
ICAgICAgICAgICAgICAgICAgICBwcmludCgiRG93bmxvYWRpbmcgY2hyb21lZHJpdmVyIikKLSAg
ICAgICAgICAgICAgICAgICAgd2ViZHJpdmVyX2JpbmFyeSA9IHNlbGYuYnJvd3Nlci5pbnN0YWxs
X3dlYmRyaXZlcihkZXN0PXNlbGYudmVudi5iaW5fcGF0aCkKKyAgICAgICAgICAgICAgICAgICAg
bG9nZ2VyLmluZm8oIkRvd25sb2FkaW5nIGNocm9tZWRyaXZlciIpCisgICAgICAgICAgICAgICAg
ICAgIHdlYmRyaXZlcl9iaW5hcnkgPSBzZWxmLmJyb3dzZXIuaW5zdGFsbF93ZWJkcml2ZXIoCisg
ICAgICAgICAgICAgICAgICAgICAgICBkZXN0PXNlbGYudmVudi5iaW5fcGF0aCwKKyAgICAgICAg
ICAgICAgICAgICAgICAgIGJyb3dzZXJfYmluYXJ5PWt3YXJnc1siYmluYXJ5Il0sCisgICAgICAg
ICAgICAgICAgICAgICkKICAgICAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAgICAgcHJpbnQo
IlVzaW5nIHdlYmRyaXZlciBiaW5hcnkgJXMiICUgd2ViZHJpdmVyX2JpbmFyeSkKKyAgICAgICAg
ICAgICAgICBsb2dnZXIuaW5mbygiVXNpbmcgd2ViZHJpdmVyIGJpbmFyeSAlcyIgJSB3ZWJkcml2
ZXJfYmluYXJ5KQogCiAgICAgICAgICAgICBpZiB3ZWJkcml2ZXJfYmluYXJ5OgogICAgICAgICAg
ICAgICAgIGt3YXJnc1sid2ViZHJpdmVyX2JpbmFyeSJdID0gd2ViZHJpdmVyX2JpbmFyeQogICAg
ICAgICAgICAgZWxzZToKICAgICAgICAgICAgICAgICByYWlzZSBXcHRydW5FcnJvcigiVW5hYmxl
IHRvIGxvY2F0ZSBvciBpbnN0YWxsIGNocm9tZWRyaXZlciBiaW5hcnkiKQorICAgICAgICBpZiBi
cm93c2VyX2NoYW5uZWwgaW4gKCJkZXYiLCAiY2FuYXJ5Iik6CisgICAgICAgICAgICBsb2dnZXIu
aW5mbygiQXV0b21hdGljYWxseSB0dXJuaW5nIG9uIGV4cGVyaW1lbnRhbCBmZWF0dXJlcyBmb3Ig
Q2hyb21lIERldi9DYW5hcnkiKQorICAgICAgICAgICAga3dhcmdzWyJiaW5hcnlfYXJncyJdLmFw
cGVuZCgiLS1lbmFibGUtZXhwZXJpbWVudGFsLXdlYi1wbGF0Zm9ybS1mZWF0dXJlcyIpCisgICAg
ICAgICAgICAjIEhBQ0soSGV4Y2xlcyk6IHdvcmsgYXJvdW5kIGh0dHBzOi8vZ2l0aHViLmNvbS93
ZWItcGxhdGZvcm0tdGVzdHMvd3B0L2lzc3Vlcy8xNjQ0OAorICAgICAgICAgICAga3dhcmdzWyJ3
ZWJkcml2ZXJfYXJncyJdLmFwcGVuZCgiLS1kaXNhYmxlLWJ1aWxkLWNoZWNrIikKKyAgICAgICAg
aWYgb3MuZ2V0ZW52KCJUQVNLQ0xVU1RFUl9ST09UX1VSTCIpOgorICAgICAgICAgICAgIyBXZSBh
cmUgb24gVGFza2NsdXN0ZXIsIHdoZXJlIG91ciBEb2NrZXIgY29udGFpbmVyIGRvZXMgbm90IGhh
dmUKKyAgICAgICAgICAgICMgZW5vdWdoIGNhcGFiaWxpdGllcyB0byBydW4gQ2hyb21lIHdpdGgg
c2FuZGJveGluZy4gKGdoLTIwMTMzKQorICAgICAgICAgICAga3dhcmdzWyJiaW5hcnlfYXJncyJd
LmFwcGVuZCgiLS1uby1zYW5kYm94IikKIAogCiBjbGFzcyBDaHJvbWVBbmRyb2lkKEJyb3dzZXJT
ZXR1cCk6CkBAIC0yNDUsNiArMzU4LDU0IEBAIGNsYXNzIENocm9tZUFuZHJvaWQoQnJvd3NlclNl
dHVwKToKICAgICBicm93c2VyX2NscyA9IGJyb3dzZXIuQ2hyb21lQW5kcm9pZAogCiAgICAgZGVm
IHNldHVwX2t3YXJncyhzZWxmLCBrd2FyZ3MpOgorICAgICAgICBpZiBrd2FyZ3MuZ2V0KCJkZXZp
Y2Vfc2VyaWFsIik6CisgICAgICAgICAgICBzZWxmLmJyb3dzZXIuZGV2aWNlX3NlcmlhbCA9IGt3
YXJnc1siZGV2aWNlX3NlcmlhbCJdCisgICAgICAgIGJyb3dzZXJfY2hhbm5lbCA9IGt3YXJnc1si
YnJvd3Nlcl9jaGFubmVsIl0KKyAgICAgICAgaWYga3dhcmdzWyJwYWNrYWdlX25hbWUiXSBpcyBO
b25lOgorICAgICAgICAgICAga3dhcmdzWyJwYWNrYWdlX25hbWUiXSA9IHNlbGYuYnJvd3Nlci5m
aW5kX2JpbmFyeSgKKyAgICAgICAgICAgICAgICBjaGFubmVsPWJyb3dzZXJfY2hhbm5lbCkKKyAg
ICAgICAgaWYga3dhcmdzWyJ3ZWJkcml2ZXJfYmluYXJ5Il0gaXMgTm9uZToKKyAgICAgICAgICAg
IHdlYmRyaXZlcl9iaW5hcnkgPSBzZWxmLmJyb3dzZXIuZmluZF93ZWJkcml2ZXIoKQorCisgICAg
ICAgICAgICBpZiB3ZWJkcml2ZXJfYmluYXJ5IGlzIE5vbmU6CisgICAgICAgICAgICAgICAgaW5z
dGFsbCA9IHNlbGYucHJvbXB0X2luc3RhbGwoImNocm9tZWRyaXZlciIpCisKKyAgICAgICAgICAg
ICAgICBpZiBpbnN0YWxsOgorICAgICAgICAgICAgICAgICAgICBsb2dnZXIuaW5mbygiRG93bmxv
YWRpbmcgY2hyb21lZHJpdmVyIikKKyAgICAgICAgICAgICAgICAgICAgd2ViZHJpdmVyX2JpbmFy
eSA9IHNlbGYuYnJvd3Nlci5pbnN0YWxsX3dlYmRyaXZlcigKKyAgICAgICAgICAgICAgICAgICAg
ICAgIGRlc3Q9c2VsZi52ZW52LmJpbl9wYXRoLAorICAgICAgICAgICAgICAgICAgICAgICAgYnJv
d3Nlcl9iaW5hcnk9a3dhcmdzWyJwYWNrYWdlX25hbWUiXSwKKyAgICAgICAgICAgICAgICAgICAg
KQorICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICBsb2dnZXIuaW5mbygiVXNpbmcg
d2ViZHJpdmVyIGJpbmFyeSAlcyIgJSB3ZWJkcml2ZXJfYmluYXJ5KQorCisgICAgICAgICAgICBp
ZiB3ZWJkcml2ZXJfYmluYXJ5OgorICAgICAgICAgICAgICAgIGt3YXJnc1sid2ViZHJpdmVyX2Jp
bmFyeSJdID0gd2ViZHJpdmVyX2JpbmFyeQorICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAg
ICAgICByYWlzZSBXcHRydW5FcnJvcigiVW5hYmxlIHRvIGxvY2F0ZSBvciBpbnN0YWxsIGNocm9t
ZWRyaXZlciBiaW5hcnkiKQorICAgICAgICBpZiBicm93c2VyX2NoYW5uZWwgaW4gKCJkZXYiLCAi
Y2FuYXJ5Iik6CisgICAgICAgICAgICBsb2dnZXIuaW5mbygiQXV0b21hdGljYWxseSB0dXJuaW5n
IG9uIGV4cGVyaW1lbnRhbCBmZWF0dXJlcyBmb3IgQ2hyb21lIERldi9DYW5hcnkiKQorICAgICAg
ICAgICAga3dhcmdzWyJiaW5hcnlfYXJncyJdLmFwcGVuZCgiLS1lbmFibGUtZXhwZXJpbWVudGFs
LXdlYi1wbGF0Zm9ybS1mZWF0dXJlcyIpCisgICAgICAgICAgICAjIEhBQ0soSGV4Y2xlcyk6IHdv
cmsgYXJvdW5kIGh0dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxhdGZvcm0tdGVzdHMvd3B0L2lzc3Vl
cy8xNjQ0OAorICAgICAgICAgICAga3dhcmdzWyJ3ZWJkcml2ZXJfYXJncyJdLmFwcGVuZCgiLS1k
aXNhYmxlLWJ1aWxkLWNoZWNrIikKKworCitjbGFzcyBDaHJvbWVpT1MoQnJvd3NlclNldHVwKToK
KyAgICBuYW1lID0gImNocm9tZV9pb3MiCisgICAgYnJvd3Nlcl9jbHMgPSBicm93c2VyLkNocm9t
ZWlPUworCisgICAgZGVmIHNldHVwX2t3YXJncyhzZWxmLCBrd2FyZ3MpOgorICAgICAgICBpZiBr
d2FyZ3NbIndlYmRyaXZlcl9iaW5hcnkiXSBpcyBOb25lOgorICAgICAgICAgICAgcmFpc2UgV3B0
cnVuRXJyb3IoIlVuYWJsZSB0byBsb2NhdGUgb3IgaW5zdGFsbCBjaHJvbWVkcml2ZXIgYmluYXJ5
IikKKworCitjbGFzcyBBbmRyb2lkV2VidmlldyhCcm93c2VyU2V0dXApOgorICAgIG5hbWUgPSAi
YW5kcm9pZF93ZWJ2aWV3IgorICAgIGJyb3dzZXJfY2xzID0gYnJvd3Nlci5BbmRyb2lkV2Vidmll
dworCisgICAgZGVmIHNldHVwX2t3YXJncyhzZWxmLCBrd2FyZ3MpOgorICAgICAgICBpZiBrd2Fy
Z3MuZ2V0KCJkZXZpY2Vfc2VyaWFsIik6CisgICAgICAgICAgICBzZWxmLmJyb3dzZXIuZGV2aWNl
X3NlcmlhbCA9IGt3YXJnc1siZGV2aWNlX3NlcmlhbCJdCiAgICAgICAgIGlmIGt3YXJnc1sid2Vi
ZHJpdmVyX2JpbmFyeSJdIGlzIE5vbmU6CiAgICAgICAgICAgICB3ZWJkcml2ZXJfYmluYXJ5ID0g
c2VsZi5icm93c2VyLmZpbmRfd2ViZHJpdmVyKCkKIApAQCAtMjUyLDEwICs0MTMsMTAgQEAgY2xh
c3MgQ2hyb21lQW5kcm9pZChCcm93c2VyU2V0dXApOgogICAgICAgICAgICAgICAgIGluc3RhbGwg
PSBzZWxmLnByb21wdF9pbnN0YWxsKCJjaHJvbWVkcml2ZXIiKQogCiAgICAgICAgICAgICAgICAg
aWYgaW5zdGFsbDoKLSAgICAgICAgICAgICAgICAgICAgcHJpbnQoIkRvd25sb2FkaW5nIGNocm9t
ZWRyaXZlciIpCisgICAgICAgICAgICAgICAgICAgIGxvZ2dlci5pbmZvKCJEb3dubG9hZGluZyBj
aHJvbWVkcml2ZXIiKQogICAgICAgICAgICAgICAgICAgICB3ZWJkcml2ZXJfYmluYXJ5ID0gc2Vs
Zi5icm93c2VyLmluc3RhbGxfd2ViZHJpdmVyKGRlc3Q9c2VsZi52ZW52LmJpbl9wYXRoKQogICAg
ICAgICAgICAgZWxzZToKLSAgICAgICAgICAgICAgICBwcmludCgiVXNpbmcgd2ViZHJpdmVyIGJp
bmFyeSAlcyIgJSB3ZWJkcml2ZXJfYmluYXJ5KQorICAgICAgICAgICAgICAgIGxvZ2dlci5pbmZv
KCJVc2luZyB3ZWJkcml2ZXIgYmluYXJ5ICVzIiAlIHdlYmRyaXZlcl9iaW5hcnkpCiAKICAgICAg
ICAgICAgIGlmIHdlYmRyaXZlcl9iaW5hcnk6CiAgICAgICAgICAgICAgICAga3dhcmdzWyJ3ZWJk
cml2ZXJfYmluYXJ5Il0gPSB3ZWJkcml2ZXJfYmluYXJ5CkBAIC0yNzUsMTAgKzQzNiwxMCBAQCBj
bGFzcyBPcGVyYShCcm93c2VyU2V0dXApOgogICAgICAgICAgICAgICAgIGluc3RhbGwgPSBzZWxm
LnByb21wdF9pbnN0YWxsKCJvcGVyYWRyaXZlciIpCiAKICAgICAgICAgICAgICAgICBpZiBpbnN0
YWxsOgotICAgICAgICAgICAgICAgICAgICBwcmludCgiRG93bmxvYWRpbmcgb3BlcmFkcml2ZXIi
KQorICAgICAgICAgICAgICAgICAgICBsb2dnZXIuaW5mbygiRG93bmxvYWRpbmcgb3BlcmFkcml2
ZXIiKQogICAgICAgICAgICAgICAgICAgICB3ZWJkcml2ZXJfYmluYXJ5ID0gc2VsZi5icm93c2Vy
Lmluc3RhbGxfd2ViZHJpdmVyKGRlc3Q9c2VsZi52ZW52LmJpbl9wYXRoKQogICAgICAgICAgICAg
ZWxzZToKLSAgICAgICAgICAgICAgICBwcmludCgiVXNpbmcgd2ViZHJpdmVyIGJpbmFyeSAlcyIg
JSB3ZWJkcml2ZXJfYmluYXJ5KQorICAgICAgICAgICAgICAgIGxvZ2dlci5pbmZvKCJVc2luZyB3
ZWJkcml2ZXIgYmluYXJ5ICVzIiAlIHdlYmRyaXZlcl9iaW5hcnkpCiAKICAgICAgICAgICAgIGlm
IHdlYmRyaXZlcl9iaW5hcnk6CiAgICAgICAgICAgICAgICAga3dhcmdzWyJ3ZWJkcml2ZXJfYmlu
YXJ5Il0gPSB3ZWJkcml2ZXJfYmluYXJ5CkBAIC0yODYsMTEgKzQ0Nyw0NSBAQCBjbGFzcyBPcGVy
YShCcm93c2VyU2V0dXApOgogICAgICAgICAgICAgICAgIHJhaXNlIFdwdHJ1bkVycm9yKCJVbmFi
bGUgdG8gbG9jYXRlIG9yIGluc3RhbGwgb3BlcmFkcml2ZXIgYmluYXJ5IikKIAogCitjbGFzcyBF
ZGdlQ2hyb21pdW0oQnJvd3NlclNldHVwKToKKyAgICBuYW1lID0gIk1pY3Jvc29mdEVkZ2UiCisg
ICAgYnJvd3Nlcl9jbHMgPSBicm93c2VyLkVkZ2VDaHJvbWl1bQorCisgICAgZGVmIHNldHVwX2t3
YXJncyhzZWxmLCBrd2FyZ3MpOgorICAgICAgICBicm93c2VyX2NoYW5uZWwgPSBrd2FyZ3NbImJy
b3dzZXJfY2hhbm5lbCJdCisgICAgICAgIGlmIGt3YXJnc1siYmluYXJ5Il0gaXMgTm9uZToKKyAg
ICAgICAgICAgIGJpbmFyeSA9IHNlbGYuYnJvd3Nlci5maW5kX2JpbmFyeShjaGFubmVsPWJyb3dz
ZXJfY2hhbm5lbCkKKyAgICAgICAgICAgIGlmIGJpbmFyeToKKyAgICAgICAgICAgICAgICBrd2Fy
Z3NbImJpbmFyeSJdID0gYmluYXJ5CisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAg
IHJhaXNlIFdwdHJ1bkVycm9yKCJVbmFibGUgdG8gbG9jYXRlIEVkZ2UgYmluYXJ5IikKKyAgICAg
ICAgaWYga3dhcmdzWyJ3ZWJkcml2ZXJfYmluYXJ5Il0gaXMgTm9uZToKKyAgICAgICAgICAgIHdl
YmRyaXZlcl9iaW5hcnkgPSBzZWxmLmJyb3dzZXIuZmluZF93ZWJkcml2ZXIoKQorCisgICAgICAg
ICAgICAjIEluc3RhbGwgYnJvd3NlciBpZiBub25lIGFyZSBmb3VuZCBvciBpZiBpdCdzIGZvdW5k
IGluIHZlbnYgcGF0aAorICAgICAgICAgICAgaWYgd2ViZHJpdmVyX2JpbmFyeSBpcyBOb25lIG9y
IHdlYmRyaXZlcl9iaW5hcnkgaW4gc2VsZi52ZW52LmJpbl9wYXRoOgorICAgICAgICAgICAgICAg
IGluc3RhbGwgPSBzZWxmLnByb21wdF9pbnN0YWxsKCJtc2VkZ2Vkcml2ZXIiKQorCisgICAgICAg
ICAgICAgICAgaWYgaW5zdGFsbDoKKyAgICAgICAgICAgICAgICAgICAgbG9nZ2VyLmluZm8oIkRv
d25sb2FkaW5nIG1zZWRnZWRyaXZlciIpCisgICAgICAgICAgICAgICAgICAgIHdlYmRyaXZlcl9i
aW5hcnkgPSBzZWxmLmJyb3dzZXIuaW5zdGFsbF93ZWJkcml2ZXIoZGVzdD1zZWxmLnZlbnYuYmlu
X3BhdGgsIGNoYW5uZWw9YnJvd3Nlcl9jaGFubmVsKQorICAgICAgICAgICAgZWxzZToKKyAgICAg
ICAgICAgICAgICBsb2dnZXIuaW5mbygiVXNpbmcgd2ViZHJpdmVyIGJpbmFyeSAlcyIgJSB3ZWJk
cml2ZXJfYmluYXJ5KQorCisgICAgICAgICAgICBpZiB3ZWJkcml2ZXJfYmluYXJ5OgorICAgICAg
ICAgICAgICAgIGt3YXJnc1sid2ViZHJpdmVyX2JpbmFyeSJdID0gd2ViZHJpdmVyX2JpbmFyeQor
ICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICByYWlzZSBXcHRydW5FcnJvcigiVW5h
YmxlIHRvIGxvY2F0ZSBvciBpbnN0YWxsIG1zZWRnZWRyaXZlciBiaW5hcnkiKQorICAgICAgICBp
ZiBicm93c2VyX2NoYW5uZWwgaW4gKCJkZXYiLCAiY2FuYXJ5Iik6CisgICAgICAgICAgICBsb2dn
ZXIuaW5mbygiQXV0b21hdGljYWxseSB0dXJuaW5nIG9uIGV4cGVyaW1lbnRhbCBmZWF0dXJlcyBm
b3IgRWRnZSBEZXYvQ2FuYXJ5IikKKyAgICAgICAgICAgIGt3YXJnc1siYmluYXJ5X2FyZ3MiXS5h
cHBlbmQoIi0tZW5hYmxlLWV4cGVyaW1lbnRhbC13ZWItcGxhdGZvcm0tZmVhdHVyZXMiKQorCisK
IGNsYXNzIEVkZ2UoQnJvd3NlclNldHVwKToKICAgICBuYW1lID0gImVkZ2UiCiAgICAgYnJvd3Nl
cl9jbHMgPSBicm93c2VyLkVkZ2UKIAotICAgIGRlZiBpbnN0YWxsKHNlbGYsIHZlbnYpOgorICAg
IGRlZiBpbnN0YWxsKHNlbGYsIGNoYW5uZWw9Tm9uZSk6CiAgICAgICAgIHJhaXNlIE5vdEltcGxl
bWVudGVkRXJyb3IKIAogICAgIGRlZiBzZXR1cF9rd2FyZ3Moc2VsZiwga3dhcmdzKToKQEAgLTMw
NywxMSArNTAyLDE2IEBAIGh0dHBzOi8vZGV2ZWxvcGVyLm1pY3Jvc29mdC5jb20vZW4tdXMvbWlj
cm9zb2Z0LWVkZ2UvdG9vbHMvd2ViZHJpdmVyLwogICAgICAgICAgICAga3dhcmdzWyJ3ZWJkcml2
ZXJfYmluYXJ5Il0gPSB3ZWJkcml2ZXJfYmluYXJ5CiAKIAorY2xhc3MgRWRnZVdlYkRyaXZlcihF
ZGdlKToKKyAgICBuYW1lID0gImVkZ2Vfd2ViZHJpdmVyIgorICAgIGJyb3dzZXJfY2xzID0gYnJv
d3Nlci5FZGdlV2ViRHJpdmVyCisKKwogY2xhc3MgSW50ZXJuZXRFeHBsb3JlcihCcm93c2VyU2V0
dXApOgogICAgIG5hbWUgPSAiaWUiCiAgICAgYnJvd3Nlcl9jbHMgPSBicm93c2VyLkludGVybmV0
RXhwbG9yZXIKIAotICAgIGRlZiBpbnN0YWxsKHNlbGYsIHZlbnYpOgorICAgIGRlZiBpbnN0YWxs
KHNlbGYsIGNoYW5uZWw9Tm9uZSk6CiAgICAgICAgIHJhaXNlIE5vdEltcGxlbWVudGVkRXJyb3IK
IAogICAgIGRlZiBzZXR1cF9rd2FyZ3Moc2VsZiwga3dhcmdzKToKQEAgLTMzMiwxMiArNTMyLDEy
IEBAIGNsYXNzIFNhZmFyaShCcm93c2VyU2V0dXApOgogICAgIG5hbWUgPSAic2FmYXJpIgogICAg
IGJyb3dzZXJfY2xzID0gYnJvd3Nlci5TYWZhcmkKIAotICAgIGRlZiBpbnN0YWxsKHNlbGYsIHZl
bnYpOgorICAgIGRlZiBpbnN0YWxsKHNlbGYsIGNoYW5uZWw9Tm9uZSk6CiAgICAgICAgIHJhaXNl
IE5vdEltcGxlbWVudGVkRXJyb3IKIAogICAgIGRlZiBzZXR1cF9rd2FyZ3Moc2VsZiwga3dhcmdz
KToKICAgICAgICAgaWYga3dhcmdzWyJ3ZWJkcml2ZXJfYmluYXJ5Il0gaXMgTm9uZToKLSAgICAg
ICAgICAgIHdlYmRyaXZlcl9iaW5hcnkgPSBzZWxmLmJyb3dzZXIuZmluZF93ZWJkcml2ZXIoKQor
ICAgICAgICAgICAgd2ViZHJpdmVyX2JpbmFyeSA9IHNlbGYuYnJvd3Nlci5maW5kX3dlYmRyaXZl
cihjaGFubmVsPWt3YXJnc1siYnJvd3Nlcl9jaGFubmVsIl0pCiAKICAgICAgICAgICAgIGlmIHdl
YmRyaXZlcl9iaW5hcnkgaXMgTm9uZToKICAgICAgICAgICAgICAgICByYWlzZSBXcHRydW5FcnJv
cigiVW5hYmxlIHRvIGxvY2F0ZSBzYWZhcmlkcml2ZXIgYmluYXJ5IikKQEAgLTM0OSw3ICs1NDks
NyBAQCBjbGFzcyBTYXVjZShCcm93c2VyU2V0dXApOgogICAgIG5hbWUgPSAic2F1Y2UiCiAgICAg
YnJvd3Nlcl9jbHMgPSBicm93c2VyLlNhdWNlCiAKLSAgICBkZWYgaW5zdGFsbChzZWxmLCB2ZW52
KToKKyAgICBkZWYgaW5zdGFsbChzZWxmLCBjaGFubmVsPU5vbmUpOgogICAgICAgICByYWlzZSBO
b3RJbXBsZW1lbnRlZEVycm9yCiAKICAgICBkZWYgc2V0dXBfa3dhcmdzKHNlbGYsIGt3YXJncyk6
CkBAIC0zNjIsNTkgKzU2MiwxMzAgQEAgY2xhc3MgU2Vydm8oQnJvd3NlclNldHVwKToKICAgICBu
YW1lID0gInNlcnZvIgogICAgIGJyb3dzZXJfY2xzID0gYnJvd3Nlci5TZXJ2bwogCi0gICAgZGVm
IGluc3RhbGwoc2VsZiwgdmVudik6CisgICAgZGVmIGluc3RhbGwoc2VsZiwgY2hhbm5lbD1Ob25l
KToKICAgICAgICAgaWYgc2VsZi5wcm9tcHRfaW5zdGFsbChzZWxmLm5hbWUpOgotICAgICAgICAg
ICAgcmV0dXJuIHNlbGYuYnJvd3Nlci5pbnN0YWxsKHZlbnYucGF0aCkKKyAgICAgICAgICAgIHJl
dHVybiBzZWxmLmJyb3dzZXIuaW5zdGFsbChzZWxmLnZlbnYucGF0aCkKIAogICAgIGRlZiBzZXR1
cF9rd2FyZ3Moc2VsZiwga3dhcmdzKToKICAgICAgICAgaWYga3dhcmdzWyJiaW5hcnkiXSBpcyBO
b25lOgotICAgICAgICAgICAgYmluYXJ5ID0gc2VsZi5icm93c2VyLmZpbmRfYmluYXJ5KCkKKyAg
ICAgICAgICAgIGJpbmFyeSA9IHNlbGYuYnJvd3Nlci5maW5kX2JpbmFyeShzZWxmLnZlbnYucGF0
aCwgTm9uZSkKIAogICAgICAgICAgICAgaWYgYmluYXJ5IGlzIE5vbmU6Ci0gICAgICAgICAgICAg
ICAgcmFpc2UgV3B0cnVuRXJyb3IoIlVuYWJsZSB0byBmaW5kIHNlcnZvIGJpbmFyeSBvbiB0aGUg
UEFUSCIpCisgICAgICAgICAgICAgICAgcmFpc2UgV3B0cnVuRXJyb3IoIlVuYWJsZSB0byBmaW5k
IHNlcnZvIGJpbmFyeSBpbiBQQVRIIikKICAgICAgICAgICAgIGt3YXJnc1siYmluYXJ5Il0gPSBi
aW5hcnkKIAogCitjbGFzcyBTZXJ2b1dlYkRyaXZlcihTZXJ2byk6CisgICAgbmFtZSA9ICJzZXJ2
b2RyaXZlciIKKyAgICBicm93c2VyX2NscyA9IGJyb3dzZXIuU2Vydm9XZWJEcml2ZXIKKworCiBj
bGFzcyBXZWJLaXQoQnJvd3NlclNldHVwKToKICAgICBuYW1lID0gIndlYmtpdCIKICAgICBicm93
c2VyX2NscyA9IGJyb3dzZXIuV2ViS2l0CiAKLSAgICBkZWYgaW5zdGFsbChzZWxmLCB2ZW52KToK
KyAgICBkZWYgaW5zdGFsbChzZWxmLCBjaGFubmVsPU5vbmUpOgogICAgICAgICByYWlzZSBOb3RJ
bXBsZW1lbnRlZEVycm9yCiAKICAgICBkZWYgc2V0dXBfa3dhcmdzKHNlbGYsIGt3YXJncyk6CiAg
ICAgICAgIHBhc3MKIAogCitjbGFzcyBXZWJLaXRHVEtNaW5pQnJvd3NlcihCcm93c2VyU2V0dXAp
OgorICAgIG5hbWUgPSAid2Via2l0Z3RrX21pbmlicm93c2VyIgorICAgIGJyb3dzZXJfY2xzID0g
YnJvd3Nlci5XZWJLaXRHVEtNaW5pQnJvd3NlcgorCisgICAgZGVmIGluc3RhbGwoc2VsZiwgY2hh
bm5lbD1Ob25lKToKKyAgICAgICAgcmFpc2UgTm90SW1wbGVtZW50ZWRFcnJvcgorCisgICAgZGVm
IHNldHVwX2t3YXJncyhzZWxmLCBrd2FyZ3MpOgorICAgICAgICBpZiBrd2FyZ3NbImJpbmFyeSJd
IGlzIE5vbmU6CisgICAgICAgICAgICBiaW5hcnkgPSBzZWxmLmJyb3dzZXIuZmluZF9iaW5hcnko
Y2hhbm5lbD1rd2FyZ3NbImJyb3dzZXJfY2hhbm5lbCJdKQorCisgICAgICAgICAgICBpZiBiaW5h
cnkgaXMgTm9uZToKKyAgICAgICAgICAgICAgICByYWlzZSBXcHRydW5FcnJvcigiVW5hYmxlIHRv
IGZpbmQgTWluaUJyb3dzZXIgYmluYXJ5IikKKyAgICAgICAgICAgIGt3YXJnc1siYmluYXJ5Il0g
PSBiaW5hcnkKKworICAgICAgICBpZiBrd2FyZ3NbIndlYmRyaXZlcl9iaW5hcnkiXSBpcyBOb25l
OgorICAgICAgICAgICAgd2ViZHJpdmVyX2JpbmFyeSA9IHNlbGYuYnJvd3Nlci5maW5kX3dlYmRy
aXZlcihjaGFubmVsPWt3YXJnc1siYnJvd3Nlcl9jaGFubmVsIl0pCisKKyAgICAgICAgICAgIGlm
IHdlYmRyaXZlcl9iaW5hcnkgaXMgTm9uZToKKyAgICAgICAgICAgICAgICByYWlzZSBXcHRydW5F
cnJvcigiVW5hYmxlIHRvIGZpbmQgV2ViS2l0V2ViRHJpdmVyIGluIFBBVEgiKQorICAgICAgICAg
ICAga3dhcmdzWyJ3ZWJkcml2ZXJfYmluYXJ5Il0gPSB3ZWJkcml2ZXJfYmluYXJ5CisKKworY2xh
c3MgRXBpcGhhbnkoQnJvd3NlclNldHVwKToKKyAgICBuYW1lID0gImVwaXBoYW55IgorICAgIGJy
b3dzZXJfY2xzID0gYnJvd3Nlci5FcGlwaGFueQorCisgICAgZGVmIGluc3RhbGwoc2VsZiwgY2hh
bm5lbD1Ob25lKToKKyAgICAgICAgcmFpc2UgTm90SW1wbGVtZW50ZWRFcnJvcgorCisgICAgZGVm
IHNldHVwX2t3YXJncyhzZWxmLCBrd2FyZ3MpOgorICAgICAgICBpZiBrd2FyZ3NbImJpbmFyeSJd
IGlzIE5vbmU6CisgICAgICAgICAgICBiaW5hcnkgPSBzZWxmLmJyb3dzZXIuZmluZF9iaW5hcnko
KQorCisgICAgICAgICAgICBpZiBiaW5hcnkgaXMgTm9uZToKKyAgICAgICAgICAgICAgICByYWlz
ZSBXcHRydW5FcnJvcigiVW5hYmxlIHRvIGZpbmQgZXBpcGhhbnkgaW4gUEFUSCIpCisgICAgICAg
ICAgICBrd2FyZ3NbImJpbmFyeSJdID0gYmluYXJ5CisKKyAgICAgICAgaWYga3dhcmdzWyJ3ZWJk
cml2ZXJfYmluYXJ5Il0gaXMgTm9uZToKKyAgICAgICAgICAgIHdlYmRyaXZlcl9iaW5hcnkgPSBz
ZWxmLmJyb3dzZXIuZmluZF93ZWJkcml2ZXIoKQorCisgICAgICAgICAgICBpZiB3ZWJkcml2ZXJf
YmluYXJ5IGlzIE5vbmU6CisgICAgICAgICAgICAgICAgcmFpc2UgV3B0cnVuRXJyb3IoIlVuYWJs
ZSB0byBmaW5kIFdlYktpdFdlYkRyaXZlciBpbiBQQVRIIikKKyAgICAgICAgICAgIGt3YXJnc1si
d2ViZHJpdmVyX2JpbmFyeSJdID0gd2ViZHJpdmVyX2JpbmFyeQorCisKIHByb2R1Y3Rfc2V0dXAg
PSB7Ci0gICAgImZlbm5lYyI6IEZlbm5lYywKKyAgICAiYW5kcm9pZF93ZWJ2aWV3IjogQW5kcm9p
ZFdlYnZpZXcsCiAgICAgImZpcmVmb3giOiBGaXJlZm94LAorICAgICJmaXJlZm94X2FuZHJvaWQi
OiBGaXJlZm94QW5kcm9pZCwKICAgICAiY2hyb21lIjogQ2hyb21lLAogICAgICJjaHJvbWVfYW5k
cm9pZCI6IENocm9tZUFuZHJvaWQsCisgICAgImNocm9tZV9pb3MiOiBDaHJvbWVpT1MsCisgICAg
ImVkZ2VjaHJvbWl1bSI6IEVkZ2VDaHJvbWl1bSwKICAgICAiZWRnZSI6IEVkZ2UsCisgICAgImVk
Z2Vfd2ViZHJpdmVyIjogRWRnZVdlYkRyaXZlciwKICAgICAiaWUiOiBJbnRlcm5ldEV4cGxvcmVy
LAogICAgICJzYWZhcmkiOiBTYWZhcmksCiAgICAgInNlcnZvIjogU2Vydm8sCisgICAgInNlcnZv
ZHJpdmVyIjogU2Vydm9XZWJEcml2ZXIsCiAgICAgInNhdWNlIjogU2F1Y2UsCiAgICAgIm9wZXJh
IjogT3BlcmEsCiAgICAgIndlYmtpdCI6IFdlYktpdCwKKyAgICAid2Via2l0Z3RrX21pbmlicm93
c2VyIjogV2ViS2l0R1RLTWluaUJyb3dzZXIsCisgICAgImVwaXBoYW55IjogRXBpcGhhbnksCiB9
CiAKIAotZGVmIHNldHVwX3dwdHJ1bm5lcih2ZW52LCBwcm9tcHQ9VHJ1ZSwgaW5zdGFsbD1GYWxz
ZSwgKiprd2FyZ3MpOgotICAgIGZyb20gd3B0cnVubmVyIGltcG9ydCB3cHRydW5uZXIsIHdwdGNv
bW1hbmRsaW5lCitkZWYgc2V0dXBfbG9nZ2luZyhrd2FyZ3MsIGRlZmF1bHRfY29uZmlnPU5vbmUs
IGZvcm1hdHRlcl9kZWZhdWx0cz1Ob25lKToKKyAgICBpbXBvcnQgbW96bG9nCisgICAgZnJvbSB3
cHRydW5uZXIgaW1wb3J0IHdwdHJ1bm5lcgogCiAgICAgZ2xvYmFsIGxvZ2dlcgogCisgICAgIyBV
c2UgdGhlIGdyb3VwZWQgZm9ybWF0dGVyIGJ5IGRlZmF1bHQgd2hlcmUgbW96bG9nIDMuOSsgaXMg
aW5zdGFsbGVkCisgICAgaWYgZGVmYXVsdF9jb25maWcgaXMgTm9uZToKKyAgICAgICAgaWYgaGFz
YXR0cihtb3psb2cuZm9ybWF0dGVycywgIkdyb3VwaW5nRm9ybWF0dGVyIik6CisgICAgICAgICAg
ICBkZWZhdWx0X2Zvcm1hdHRlciA9ICJncm91cGVkIgorICAgICAgICBlbHNlOgorICAgICAgICAg
ICAgZGVmYXVsdF9mb3JtYXR0ZXIgPSAibWFjaCIKKyAgICAgICAgZGVmYXVsdF9jb25maWcgPSB7
ZGVmYXVsdF9mb3JtYXR0ZXI6IHN5cy5zdGRvdXR9CisgICAgd3B0cnVubmVyLnNldHVwX2xvZ2dp
bmcoa3dhcmdzLCBkZWZhdWx0X2NvbmZpZywgZm9ybWF0dGVyX2RlZmF1bHRzPWZvcm1hdHRlcl9k
ZWZhdWx0cykKKyAgICBsb2dnZXIgPSB3cHRydW5uZXIubG9nZ2VyCisgICAgcmV0dXJuIGxvZ2dl
cgorCisKK2RlZiBzZXR1cF93cHRydW5uZXIodmVudiwgcHJvbXB0PVRydWUsIGluc3RhbGxfYnJv
d3Nlcj1GYWxzZSwgKiprd2FyZ3MpOgorICAgIGZyb20gd3B0cnVubmVyIGltcG9ydCB3cHRjb21t
YW5kbGluZQorCiAgICAga3dhcmdzID0gdXRpbHMuS3dhcmdzKGt3YXJncy5pdGVyaXRlbXMoKSkK
IAogICAgIHByb2R1Y3RfcGFydHMgPSBrd2FyZ3NbInByb2R1Y3QiXS5zcGxpdCgiOiIpCi0gICAg
a3dhcmdzWyJwcm9kdWN0Il0gPSBwcm9kdWN0X3BhcnRzWzBdCisgICAga3dhcmdzWyJwcm9kdWN0
Il0gPSBwcm9kdWN0X3BhcnRzWzBdLnJlcGxhY2UoIi0iLCAiXyIpCiAgICAgc3ViX3Byb2R1Y3Qg
PSBwcm9kdWN0X3BhcnRzWzE6XQogCi0gICAgd3B0cnVubmVyLnNldHVwX2xvZ2dpbmcoa3dhcmdz
LCB7Im1hY2giOiBzeXMuc3Rkb3V0fSkKLSAgICBsb2dnZXIgPSB3cHRydW5uZXIubG9nZ2VyCi0K
ICAgICBjaGVja19lbnZpcm9uKGt3YXJnc1sicHJvZHVjdCJdKQogICAgIGFyZ3NfZ2VuZXJhbChr
d2FyZ3MpCiAKQEAgLTQyNCw5ICs2OTUsNDQgQEAgZGVmIHNldHVwX3dwdHJ1bm5lcih2ZW52LCBw
cm9tcHQ9VHJ1ZSwgaW5zdGFsbD1GYWxzZSwgKiprd2FyZ3MpOgogICAgIHNldHVwX2NscyA9IHBy
b2R1Y3Rfc2V0dXBba3dhcmdzWyJwcm9kdWN0Il1dKHZlbnYsIHByb21wdCwgc3ViX3Byb2R1Y3Qp
CiAgICAgc2V0dXBfY2xzLmluc3RhbGxfcmVxdWlyZW1lbnRzKCkKIAotICAgIGlmIGluc3RhbGw6
CisgICAgYWZmZWN0ZWRfcmV2aXNoID0ga3dhcmdzLnBvcCgiYWZmZWN0ZWQiLCBOb25lKQorICAg
IGlmIGFmZmVjdGVkX3JldmlzaCBpcyBub3QgTm9uZToKKyAgICAgICAgIyBUT0RPOiBDb25zb2xp
ZGF0ZSB3aXRoIGAuL3dwdCB0ZXN0cy1hZmZlY3RlZCAtLWlnbm9yZS1ydWxlc2A6CisgICAgICAg
ICMgaHR0cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQvaXNzdWVzLzE0NTYw
CisgICAgICAgIGZpbGVzX2NoYW5nZWQsIF8gPSB0ZXN0ZmlsZXMuZmlsZXNfY2hhbmdlZCgKKyAg
ICAgICAgICAgIGFmZmVjdGVkX3JldmlzaCwKKyAgICAgICAgICAgIGlnbm9yZV9ydWxlcz1bInJl
c291cmNlcy90ZXN0aGFybmVzcyoiXSwKKyAgICAgICAgICAgIGluY2x1ZGVfdW5jb21taXR0ZWQ9
VHJ1ZSwgaW5jbHVkZV9uZXc9VHJ1ZSkKKyAgICAgICAgIyBUT0RPOiBQZXJoYXBzIHVzZSB3cHRy
dW5uZXIudGVzdGxvYWRlci5NYW5pZmVzdExvYWRlciBoZXJlCisgICAgICAgICMgYW5kIHJlbW92
ZSB0aGUgbWFuaWZlc3QtcmVsYXRlZCBjb2RlIGZyb20gdGVzdGZpbGVzLgorICAgICAgICAjIGh0
dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxhdGZvcm0tdGVzdHMvd3B0L2lzc3Vlcy8xNDQyMQorICAg
ICAgICB0ZXN0c19jaGFuZ2VkLCB0ZXN0c19hZmZlY3RlZCA9IHRlc3RmaWxlcy5hZmZlY3RlZF90
ZXN0ZmlsZXMoCisgICAgICAgICAgICBmaWxlc19jaGFuZ2VkLCBtYW5pZmVzdF9wYXRoPWt3YXJn
cy5nZXQoIm1hbmlmZXN0X3BhdGgiKSwgbWFuaWZlc3RfdXBkYXRlPWt3YXJnc1sibWFuaWZlc3Rf
dXBkYXRlIl0pCisgICAgICAgIHRlc3RfbGlzdCA9IHRlc3RzX2NoYW5nZWQgfCB0ZXN0c19hZmZl
Y3RlZAorICAgICAgICBsb2dnZXIuaW5mbygiSWRlbnRpZmllZCAlcyBhZmZlY3RlZCB0ZXN0cyIg
JSBsZW4odGVzdF9saXN0KSkKKyAgICAgICAgdGVzdF9saXN0ID0gW29zLnBhdGgucmVscGF0aChp
dGVtLCB3cHRfcm9vdCkgZm9yIGl0ZW0gaW4gdGVzdF9saXN0XQorICAgICAgICBrd2FyZ3NbInRl
c3RfbGlzdCJdICs9IHRlc3RfbGlzdAorICAgICAgICBrd2FyZ3NbImRlZmF1bHRfZXhjbHVkZSJd
ID0gVHJ1ZQorCisgICAgaWYgaW5zdGFsbF9icm93c2VyIGFuZCBub3Qga3dhcmdzWyJjaGFubmVs
Il06CisgICAgICAgIGxvZ2dlci5pbmZvKCItLWluc3RhbGwtYnJvd3NlciBpcyBnaXZlbiBidXQg
LS1jaGFubmVsIGlzIG5vdCBzZXQsIGRlZmF1bHQgdG8gbmlnaHRseSBjaGFubmVsIikKKyAgICAg
ICAga3dhcmdzWyJjaGFubmVsIl0gPSAibmlnaHRseSIKKworICAgIGlmIGt3YXJnc1siY2hhbm5l
bCJdOgorICAgICAgICBjaGFubmVsID0gaW5zdGFsbC5nZXRfY2hhbm5lbChrd2FyZ3NbInByb2R1
Y3QiXSwga3dhcmdzWyJjaGFubmVsIl0pCisgICAgICAgIGlmIGNoYW5uZWwgaXMgbm90IE5vbmU6
CisgICAgICAgICAgICBpZiBjaGFubmVsICE9IGt3YXJnc1siY2hhbm5lbCJdOgorICAgICAgICAg
ICAgICAgIGxvZ2dlci5pbmZvKCJJbnRlcnByZXRpbmcgY2hhbm5lbCAnJXMnIGFzICclcyciICUg
KGt3YXJnc1siY2hhbm5lbCJdLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoYW5uZWwpKQorICAgICAgICAgICAga3dh
cmdzWyJicm93c2VyX2NoYW5uZWwiXSA9IGNoYW5uZWwKKyAgICAgICAgZWxzZToKKyAgICAgICAg
ICAgIGxvZ2dlci5pbmZvKCJWYWxpZCBjaGFubmVscyBmb3IgJXMgbm90IGtub3duOyB1c2luZyBh
cmd1bWVudCB1bm1vZGlmaWVkIiAlIGt3YXJnc1sicHJvZHVjdCJdKQorICAgICAgICAgICAga3dh
cmdzWyJicm93c2VyX2NoYW5uZWwiXSA9IGt3YXJnc1siY2hhbm5lbCJdCisgICAgICAgIGRlbCBr
d2FyZ3NbImNoYW5uZWwiXQorCisgICAgaWYgaW5zdGFsbF9icm93c2VyOgogICAgICAgICBsb2dn
ZXIuaW5mbygiSW5zdGFsbGluZyBicm93c2VyIikKLSAgICAgICAga3dhcmdzWyJiaW5hcnkiXSA9
IHNldHVwX2Nscy5pbnN0YWxsKHZlbnYpCisgICAgICAgIGt3YXJnc1siYmluYXJ5Il0gPSBzZXR1
cF9jbHMuaW5zdGFsbChjaGFubmVsPWNoYW5uZWwpCiAKICAgICBzZXR1cF9jbHMuc2V0dXAoa3dh
cmdzKQogCkBAIC00MzQsMjAgKzc0MCwzMCBAQCBkZWYgc2V0dXBfd3B0cnVubmVyKHZlbnYsIHBy
b21wdD1UcnVlLCBpbnN0YWxsPUZhbHNlLCAqKmt3YXJncyk6CiAKICAgICB3cHRydW5uZXJfcGF0
aCA9IG9zLnBhdGguam9pbih3cHRfcm9vdCwgInRvb2xzIiwgIndwdHJ1bm5lciIpCiAKLSAgICB2
ZW52Lmluc3RhbGxfcmVxdWlyZW1lbnRzKG9zLnBhdGguam9pbih3cHRydW5uZXJfcGF0aCwgInJl
cXVpcmVtZW50cy50eHQiKSkKKyAgICBpZiBub3QgdmVudi5za2lwX3ZpcnR1YWxlbnZfc2V0dXA6
CisgICAgICAgIHZlbnYuaW5zdGFsbF9yZXF1aXJlbWVudHMob3MucGF0aC5qb2luKHdwdHJ1bm5l
cl9wYXRoLCAicmVxdWlyZW1lbnRzLnR4dCIpKQorCisgICAgIyBPbmx5IHVwZGF0ZSBicm93c2Vy
X3ZlcnNpb24gaWYgaXQgd2FzIG5vdCBnaXZlbiBhcyBhIGNvbW1hbmQgbGluZQorICAgICMgYXJn
dW1lbnQsIHNvIHRoYXQgaXQgY2FuIGJlIG92ZXJyaWRkZW4gb24gdGhlIGNvbW1hbmQgbGluZS4K
KyAgICBpZiBub3Qga3dhcmdzWyJicm93c2VyX3ZlcnNpb24iXToKKyAgICAgICAga3dhcmdzWyJi
cm93c2VyX3ZlcnNpb24iXSA9IHNldHVwX2Nscy5icm93c2VyLnZlcnNpb24oCisgICAgICAgICAg
ICBiaW5hcnk9a3dhcmdzLmdldCgiYmluYXJ5Iikgb3Iga3dhcmdzLmdldCgicGFja2FnZV9uYW1l
IiksCisgICAgICAgICAgICB3ZWJkcml2ZXJfYmluYXJ5PWt3YXJncy5nZXQoIndlYmRyaXZlcl9i
aW5hcnkiKSwKKyAgICAgICAgKQogCi0gICAga3dhcmdzWydicm93c2VyX3ZlcnNpb24nXSA9IHNl
dHVwX2Nscy5icm93c2VyLnZlcnNpb24oa3dhcmdzLmdldCgiYmluYXJ5IikpCiAgICAgcmV0dXJu
IGt3YXJncwogCiAKIGRlZiBydW4odmVudiwgKiprd2FyZ3MpOgotICAgICNSZW1vdmUgYXJndW1l
bnRzIHRoYXQgYXJlbid0IHBhc3NlZCB0byB3cHRydW5uZXIKKyAgICBzZXR1cF9sb2dnaW5nKGt3
YXJncykKKworICAgICMgUmVtb3ZlIGFyZ3VtZW50cyB0aGF0IGFyZW4ndCBwYXNzZWQgdG8gd3B0
cnVubmVyCiAgICAgcHJvbXB0ID0ga3dhcmdzLnBvcCgicHJvbXB0IiwgVHJ1ZSkKICAgICBpbnN0
YWxsX2Jyb3dzZXIgPSBrd2FyZ3MucG9wKCJpbnN0YWxsX2Jyb3dzZXIiLCBGYWxzZSkKIAogICAg
IGt3YXJncyA9IHNldHVwX3dwdHJ1bm5lcih2ZW52LAogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBwcm9tcHQ9cHJvbXB0LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnN0YWxs
PWluc3RhbGxfYnJvd3NlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5zdGFsbF9i
cm93c2VyPWluc3RhbGxfYnJvd3NlciwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKipr
d2FyZ3MpCiAKICAgICBydiA9IHJ1bl9zaW5nbGUodmVudiwgKiprd2FyZ3MpID4gMApAQCAtNDc3
LDcgKzc5Myw3IEBAIGRlZiBtYWluKCk6CiAKIGlmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CiAg
ICAgaW1wb3J0IHBkYgotICAgIGZyb20gdG9vbHMgaW1wb3J0IGxvY2FscGF0aHMgICMgbm9xYTog
Zmxha2U4CisgICAgZnJvbSB0b29scyBpbXBvcnQgbG9jYWxwYXRocyAgIyBub3FhOiBGNDAxCiAg
ICAgdHJ5OgogICAgICAgICBtYWluKCkKICAgICBleGNlcHQgRXhjZXB0aW9uOgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHQv
dGVzdGZpbGVzLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy93cHQvdGVzdGZpbGVzLnB5CmluZGV4IDM1YTRiOTdkN2ZmYWEyNGY2MzBkNzBjNjg3
N2M3MTlkMTU1YzJlYzcuLmNmMTJhNTljOGU2OGE3MGY3ODI1NjNhODFjMTUxMTI0Mjk2MmVkZjMg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvd3B0L3Rlc3RmaWxlcy5weQorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdC90ZXN0ZmlsZXMucHkKQEAgLTUsMTAgKzUsMzcgQEAg
aW1wb3J0IHJlCiBpbXBvcnQgc3VicHJvY2VzcwogaW1wb3J0IHN5cwogCitpbXBvcnQgc2l4CiBm
cm9tIGNvbGxlY3Rpb25zIGltcG9ydCBPcmRlcmVkRGljdAogZnJvbSBzaXggaW1wb3J0IGl0ZXJp
dGVtcwogCi1mcm9tIC4ubWFuaWZlc3QgaW1wb3J0IG1hbmlmZXN0LCB1cGRhdGUKK3RyeToKKyAg
ICBmcm9tIC4ubWFuaWZlc3QgaW1wb3J0IG1hbmlmZXN0CitleGNlcHQgVmFsdWVFcnJvcjoKKyAg
ICAjIGlmIHdlJ3JlIG5vdCB3aXRoaW4gdGhlIHRvb2xzIHBhY2thZ2UsIHRoZSBhYm92ZSBpcyBh
biBpbXBvcnQgZnJvbSBhYm92ZQorICAgICMgdGhlIHRvcC1sZXZlbCB3aGljaCByYWlzZXMgVmFs
dWVFcnJvciwgc28gcmVpbXBvcnQgaXQgd2l0aCBhbiBhYnNvbHV0ZQorICAgICMgcmVmZXJlbmNl
CisgICAgIworICAgICMgbm90ZSB3ZSBuZWVkIGJvdGggYmVjYXVzZSBkZXBlbmRpbmcgb24gY2Fs
bGVyIHdlIG1heS9tYXkgbm90IGhhdmUgdGhlCisgICAgIyBwYXRocyBzZXQgdXAgY29ycmVjdGx5
IHRvIGhhbmRsZSBib3RoIGFuZCBNWVBZIGhhcyBubyBrbm93bGVkZ2Ugb2Ygb3VyCisgICAgIyBz
eXMucGF0aCBtYWdpYworICAgIGZyb20gbWFuaWZlc3QgaW1wb3J0IG1hbmlmZXN0ICAjIHR5cGU6
IGlnbm9yZQorCitNWVBZID0gRmFsc2UKK2lmIE1ZUFk6CisgICAgIyBNWVBZIGlzIHNldCB0byBU
cnVlIHdoZW4gcnVuIHVuZGVyIE15cHkuCisgICAgZnJvbSB0eXBpbmcgaW1wb3J0IEFueQorICAg
IGZyb20gdHlwaW5nIGltcG9ydCBDYWxsYWJsZQorICAgIGZyb20gdHlwaW5nIGltcG9ydCBEaWN0
CisgICAgZnJvbSB0eXBpbmcgaW1wb3J0IEl0ZXJhYmxlCisgICAgZnJvbSB0eXBpbmcgaW1wb3J0
IExpc3QKKyAgICBmcm9tIHR5cGluZyBpbXBvcnQgT3B0aW9uYWwKKyAgICBmcm9tIHR5cGluZyBp
bXBvcnQgUGF0dGVybgorICAgIGZyb20gdHlwaW5nIGltcG9ydCBTZXF1ZW5jZQorICAgIGZyb20g
dHlwaW5nIGltcG9ydCBTZXQKKyAgICBmcm9tIHR5cGluZyBpbXBvcnQgVGV4dAorICAgIGZyb20g
dHlwaW5nIGltcG9ydCBUdXBsZQorICAgIGZyb20gdHlwaW5nIGltcG9ydCBVbmlvbgogCiBoZXJl
ID0gb3MucGF0aC5kaXJuYW1lKF9fZmlsZV9fKQogd3B0X3Jvb3QgPSBvcy5wYXRoLmFic3BhdGgo
b3MucGF0aC5qb2luKGhlcmUsIG9zLnBhcmRpciwgb3MucGFyZGlyKSkKQEAgLTE3LDM0ICs0NCwz
OCBAQCBsb2dnZXIgPSBsb2dnaW5nLmdldExvZ2dlcigpCiAKIAogZGVmIGdldF9naXRfY21kKHJl
cG9fcGF0aCk6CisgICAgIyB0eXBlOiAoYnl0ZXMpIC0+IENhbGxhYmxlWy4uLiwgVGV4dF0KICAg
ICAiIiJDcmVhdGUgYSBmdW5jdGlvbiBmb3IgaW52b2tpbmcgZ2l0IGNvbW1hbmRzIGFzIGEgc3Vi
cHJvY2Vzcy4iIiIKICAgICBkZWYgZ2l0KGNtZCwgKmFyZ3MpOgotICAgICAgICBmdWxsX2NtZCA9
IFsiZ2l0IiwgY21kXSArIGxpc3QoaXRlbS5kZWNvZGUoInV0ZjgiKSBpZiBpc2luc3RhbmNlKGl0
ZW0sIGJ5dGVzKSBlbHNlIGl0ZW0gZm9yIGl0ZW0gaW4gYXJncykKKyAgICAgICAgIyB0eXBlOiAo
VGV4dCwgKlVuaW9uW2J5dGVzLCBUZXh0XSkgLT4gVGV4dAorICAgICAgICBmdWxsX2NtZCA9IFt1
ImdpdCIsIGNtZF0gKyBsaXN0KGl0ZW0uZGVjb2RlKCJ1dGY4IikgaWYgaXNpbnN0YW5jZShpdGVt
LCBieXRlcykgZWxzZSBpdGVtIGZvciBpdGVtIGluIGFyZ3MpICAjIHR5cGU6IExpc3RbVGV4dF0K
ICAgICAgICAgdHJ5OgogICAgICAgICAgICAgbG9nZ2VyLmRlYnVnKCIgIi5qb2luKGZ1bGxfY21k
KSkKLSAgICAgICAgICAgIHJldHVybiBzdWJwcm9jZXNzLmNoZWNrX291dHB1dChmdWxsX2NtZCwg
Y3dkPXJlcG9fcGF0aCwgc3RkZXJyPXN1YnByb2Nlc3MuU1RET1VUKS5kZWNvZGUoInV0ZjgiKS5z
dHJpcCgpCisgICAgICAgICAgICByZXR1cm4gc3VicHJvY2Vzcy5jaGVja19vdXRwdXQoZnVsbF9j
bWQsIGN3ZD1yZXBvX3BhdGgpLmRlY29kZSgidXRmOCIpLnN0cmlwKCkKICAgICAgICAgZXhjZXB0
IHN1YnByb2Nlc3MuQ2FsbGVkUHJvY2Vzc0Vycm9yIGFzIGU6Ci0gICAgICAgICAgICBsb2dnZXIu
ZXJyb3IoIkdpdCBjb21tYW5kIGV4aXRlZCB3aXRoIHN0YXR1cyAlaSIgJSBlLnJldHVybmNvZGUp
Ci0gICAgICAgICAgICBsb2dnZXIuZXJyb3IoZS5vdXRwdXQpCisgICAgICAgICAgICBsb2dnZXIu
Y3JpdGljYWwoIkdpdCBjb21tYW5kIGV4aXRlZCB3aXRoIHN0YXR1cyAlaSIgJSBlLnJldHVybmNv
ZGUpCisgICAgICAgICAgICBsb2dnZXIuY3JpdGljYWwoZS5vdXRwdXQpCiAgICAgICAgICAgICBz
eXMuZXhpdCgxKQogICAgIHJldHVybiBnaXQKIAogCiBkZWYgZGlzcGxheV9icmFuY2hfcG9pbnQo
KToKKyAgICAjIHR5cGU6ICgpIC0+IE5vbmUKICAgICBwcmludChicmFuY2hfcG9pbnQoKSkKIAog
CiBkZWYgYnJhbmNoX3BvaW50KCk6CisgICAgIyB0eXBlOiAoKSAtPiBPcHRpb25hbFtUZXh0XQog
ICAgIGdpdCA9IGdldF9naXRfY21kKHdwdF9yb290KQotICAgIGlmIChvcy5lbnZpcm9uLmdldCgi
VFJBVklTX1BVTExfUkVRVUVTVCIsICJmYWxzZSIpID09ICJmYWxzZSIgYW5kCi0gICAgICAgIG9z
LmVudmlyb24uZ2V0KCJUUkFWSVNfQlJBTkNIIikgPT0gIm1hc3RlciIpOgorICAgIGlmIChvcy5l
bnZpcm9uLmdldCgiR0lUSFVCX1BVTExfUkVRVUVTVCIsICJmYWxzZSIpID09ICJmYWxzZSIgYW5k
CisgICAgICAgIG9zLmVudmlyb24uZ2V0KCJHSVRIVUJfQlJBTkNIIikgPT0gIm1hc3RlciIpOgog
ICAgICAgICAjIEZvciBidWlsZHMgb24gdGhlIG1hc3RlciBicmFuY2gganVzdCByZXR1cm4gdGhl
IEhFQUQgY29tbWl0CiAgICAgICAgIHJldHVybiBnaXQoInJldi1wYXJzZSIsICJIRUFEIikKLSAg
ICBlbGlmIG9zLmVudmlyb24uZ2V0KCJUUkFWSVNfUFVMTF9SRVFVRVNUIiwgImZhbHNlIikgIT0g
ImZhbHNlIjoKLSAgICAgICAgIyBUaGlzIGlzIGEgUFIsIHNvIHRoZSBiYXNlIGJyYW5jaCBpcyBp
biBUUkFWSVNfQlJBTkNICi0gICAgICAgIHRyYXZpc19icmFuY2ggPSBvcy5lbnZpcm9uLmdldCgi
VFJBVklTX0JSQU5DSCIpCi0gICAgICAgIGFzc2VydCB0cmF2aXNfYnJhbmNoLCAiVFJBVklTX0JS
QU5DSCBlbnZpcm9ubWVudCB2YXJpYWJsZSBpcyBkZWZpbmVkIgotICAgICAgICBicmFuY2hfcG9p
bnQgPSBnaXQoIm1lcmdlLWJhc2UiLCAiSEVBRCIsIHRyYXZpc19icmFuY2gpCisgICAgZWxpZiBv
cy5lbnZpcm9uLmdldCgiR0lUSFVCX1BVTExfUkVRVUVTVCIsICJmYWxzZSIpICE9ICJmYWxzZSI6
CisgICAgICAgICMgVGhpcyBpcyBhIFBSLCBzbyB0aGUgYmFzZSBicmFuY2ggaXMgaW4gR0lUSFVC
X0JSQU5DSAorICAgICAgICBiYXNlX2JyYW5jaCA9IG9zLmVudmlyb24uZ2V0KCJHSVRIVUJfQlJB
TkNIIikKKyAgICAgICAgYXNzZXJ0IGJhc2VfYnJhbmNoLCAiR0lUSFVCX0JSQU5DSCBlbnZpcm9u
bWVudCB2YXJpYWJsZSBpcyBkZWZpbmVkIgorICAgICAgICBicmFuY2hfcG9pbnQgPSBnaXQoIm1l
cmdlLWJhc2UiLCAiSEVBRCIsIGJhc2VfYnJhbmNoKSAgIyB0eXBlOiBPcHRpb25hbFtUZXh0XQog
ICAgIGVsc2U6CiAgICAgICAgICMgT3RoZXJ3aXNlIHdlIGFyZW4ndCBvbiBhIFBSLCBzbyB3ZSB0
cnkgdG8gZmluZCBjb21taXRzIHRoYXQgYXJlIG9ubHkgaW4gdGhlCiAgICAgICAgICMgY3VycmVu
dCBicmFuY2ggYy5mLgpAQCAtNTksNyArOTAsNyBAQCBkZWYgYnJhbmNoX3BvaW50KCk6CiAKICAg
ICAgICAgIyBnZXQgYWxsIGNvbW1pdHMgb24gSEVBRCBidXQgbm90IHJlYWNoYWJsZSBmcm9tIGFu
eXRoaW5nIGluIG5vdF9oZWFkcwogICAgICAgICBjb21taXRzID0gZ2l0KCJyZXYtbGlzdCIsICIt
LXRvcG8tb3JkZXIiLCAiLS1wYXJlbnRzIiwgIkhFQUQiLCAqbm90X2hlYWRzKQotICAgICAgICBj
b21taXRfcGFyZW50cyA9IE9yZGVyZWREaWN0KCkKKyAgICAgICAgY29tbWl0X3BhcmVudHMgPSBP
cmRlcmVkRGljdCgpICAjIHR5cGU6IERpY3RbVGV4dCwgTGlzdFtUZXh0XV0KICAgICAgICAgaWYg
Y29tbWl0czoKICAgICAgICAgICAgIGZvciBsaW5lIGluIGNvbW1pdHMuc3BsaXQoIlxuIik6CiAg
ICAgICAgICAgICAgICAgbGluZV9jb21taXRzID0gbGluZS5zcGxpdCgiICIpCkBAIC0xMDMsNiAr
MTM0LDcgQEAgZGVmIGJyYW5jaF9wb2ludCgpOgogCiAKIGRlZiBjb21waWxlX2lnbm9yZV9ydWxl
KHJ1bGUpOgorICAgICMgdHlwZTogKHN0cikgLT4gUGF0dGVybltzdHJdCiAgICAgcnVsZSA9IHJ1
bGUucmVwbGFjZShvcy5wYXRoLnNlcCwgIi8iKQogICAgIHBhcnRzID0gcnVsZS5zcGxpdCgiLyIp
CiAgICAgcmVfcGFydHMgPSBbXQpAQCAtMTE3LDEwICsxNDksMTEgQEAgZGVmIGNvbXBpbGVfaWdu
b3JlX3J1bGUocnVsZSk6CiAKIAogZGVmIHJlcG9fZmlsZXNfY2hhbmdlZChyZXZpc2gsIGluY2x1
ZGVfdW5jb21taXR0ZWQ9RmFsc2UsIGluY2x1ZGVfbmV3PUZhbHNlKToKKyAgICAjIHR5cGU6IChz
dHIsIGJvb2wsIGJvb2wpIC0+IFNldFtUZXh0XQogICAgIGdpdCA9IGdldF9naXRfY21kKHdwdF9y
b290KQotICAgIGZpbGVzID0gZ2l0KCJkaWZmIiwgIi0tbmFtZS1vbmx5IiwgIi16IiwgcmV2aXNo
KS5zcGxpdCgiXDAiKQotICAgIGFzc2VydCBub3QgZmlsZXNbLTFdCi0gICAgZmlsZXMgPSBzZXQo
ZmlsZXNbOi0xXSkKKyAgICBmaWxlc19saXN0ID0gZ2l0KCJkaWZmIiwgIi0tbmFtZS1vbmx5Iiwg
Ii16IiwgcmV2aXNoKS5zcGxpdCgiXDAiKQorICAgIGFzc2VydCBub3QgZmlsZXNfbGlzdFstMV0K
KyAgICBmaWxlcyA9IHNldChmaWxlc19saXN0WzotMV0pCiAKICAgICBpZiBpbmNsdWRlX3VuY29t
bWl0dGVkOgogICAgICAgICBlbnRyaWVzID0gZ2l0KCJzdGF0dXMiLCAiLXoiKS5zcGxpdCgiXDAi
KQpAQCAtMTQyLDE2ICsxNzUsMTcgQEAgZGVmIHJlcG9fZmlsZXNfY2hhbmdlZChyZXZpc2gsIGlu
Y2x1ZGVfdW5jb21taXR0ZWQ9RmFsc2UsIGluY2x1ZGVfbmV3PUZhbHNlKToKIAogCiBkZWYgZXhj
bHVkZV9pZ25vcmVkKGZpbGVzLCBpZ25vcmVfcnVsZXMpOgorICAgICMgdHlwZTogKEl0ZXJhYmxl
W1RleHRdLCBPcHRpb25hbFtTZXF1ZW5jZVtzdHJdXSkgLT4gVHVwbGVbTGlzdFtUZXh0XSwgTGlz
dFtUZXh0XV0KICAgICBpZiBpZ25vcmVfcnVsZXMgaXMgTm9uZToKICAgICAgICAgaWdub3JlX3J1
bGVzID0gW10KLSAgICBpZ25vcmVfcnVsZXMgPSBbY29tcGlsZV9pZ25vcmVfcnVsZShpdGVtKSBm
b3IgaXRlbSBpbiBpZ25vcmVfcnVsZXNdCisgICAgY29tcGlsZWRfaWdub3JlX3J1bGVzID0gW2Nv
bXBpbGVfaWdub3JlX3J1bGUoaXRlbSkgZm9yIGl0ZW0gaW4gaWdub3JlX3J1bGVzXQogCiAgICAg
Y2hhbmdlZCA9IFtdCiAgICAgaWdub3JlZCA9IFtdCiAgICAgZm9yIGl0ZW0gaW4gc29ydGVkKGZp
bGVzKToKICAgICAgICAgZnVsbHBhdGggPSBvcy5wYXRoLmpvaW4od3B0X3Jvb3QsIGl0ZW0pCiAg
ICAgICAgIHJ1bGVfcGF0aCA9IGl0ZW0ucmVwbGFjZShvcy5wYXRoLnNlcCwgIi8iKQotICAgICAg
ICBmb3IgcnVsZSBpbiBpZ25vcmVfcnVsZXM6CisgICAgICAgIGZvciBydWxlIGluIGNvbXBpbGVk
X2lnbm9yZV9ydWxlczoKICAgICAgICAgICAgIGlmIHJ1bGUubWF0Y2gocnVsZV9wYXRoKToKICAg
ICAgICAgICAgICAgICBpZ25vcmVkLmFwcGVuZChmdWxscGF0aCkKICAgICAgICAgICAgICAgICBi
cmVhawpAQCAtMTYxLDEwICsxOTUsMTggQEAgZGVmIGV4Y2x1ZGVfaWdub3JlZChmaWxlcywgaWdu
b3JlX3J1bGVzKToKICAgICByZXR1cm4gY2hhbmdlZCwgaWdub3JlZAogCiAKLWRlZiBmaWxlc19j
aGFuZ2VkKHJldmlzaCwgaWdub3JlX3J1bGVzPU5vbmUsIGluY2x1ZGVfdW5jb21taXR0ZWQ9RmFs
c2UsIGluY2x1ZGVfbmV3PUZhbHNlKToKLSAgICAiIiJHZXQgYW5kIHJldHVybiBmaWxlcyBjaGFu
Z2VkIHNpbmNlIGN1cnJlbnQgYnJhbmNoIGRpdmVyZ2VkIGZyb20gbWFzdGVyLAotICAgIGV4Y2x1
ZGluZyB0aG9zZSB0aGF0IGFyZSBsb2NhdGVkIHdpdGhpbiBhbnkgcGF0aCBtYXRjaGVkIGJ5Ci0g
ICAgYGlnbm9yZV9ydWxlc2AuIiIiCitkZWYgZmlsZXNfY2hhbmdlZChyZXZpc2gsICAjIHR5cGU6
IHN0cgorICAgICAgICAgICAgICAgICAgaWdub3JlX3J1bGVzPU5vbmUsICAjIHR5cGU6IE9wdGlv
bmFsW1NlcXVlbmNlW3N0cl1dCisgICAgICAgICAgICAgICAgICBpbmNsdWRlX3VuY29tbWl0dGVk
PUZhbHNlLCAgIyB0eXBlOiBib29sCisgICAgICAgICAgICAgICAgICBpbmNsdWRlX25ldz1GYWxz
ZSAgIyB0eXBlOiBib29sCisgICAgICAgICAgICAgICAgICApOgorICAgICMgdHlwZTogKC4uLikg
LT4gVHVwbGVbTGlzdFtUZXh0XSwgTGlzdFtUZXh0XV0KKyAgICAiIiJGaW5kIGZpbGVzIGNoYW5n
ZWQgaW4gY2VydGFpbiByZXZpc2lvbnMuCisKKyAgICBUaGUgZnVuY3Rpb24gcGFzc2VzIGByZXZp
c2hgIGRpcmVjdGx5IHRvIGBnaXQgZGlmZmAsIHNvIGByZXZpc2hgIGNhbiBoYXZlIGEKKyAgICB2
YXJpZXR5IG9mIGZvcm1zOyBzZWUgYGdpdCBkaWZmIC0taGVscGAgZm9yIGRldGFpbHMuIEZpbGVz
IGluIHRoZSBkaWZmIHRoYXQKKyAgICBhcmUgbWF0Y2hlZCBieSBgaWdub3JlX3J1bGVzYCBhcmUg
ZXhjbHVkZWQuCisgICAgIiIiCiAgICAgZmlsZXMgPSByZXBvX2ZpbGVzX2NoYW5nZWQocmV2aXNo
LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluY2x1ZGVfdW5jb21taXR0ZWQ9aW5j
bHVkZV91bmNvbW1pdHRlZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbmNsdWRl
X25ldz1pbmNsdWRlX25ldykKQEAgLTE3NSw0MSArMjE3LDM1IEBAIGRlZiBmaWxlc19jaGFuZ2Vk
KHJldmlzaCwgaWdub3JlX3J1bGVzPU5vbmUsIGluY2x1ZGVfdW5jb21taXR0ZWQ9RmFsc2UsIGlu
Y2x1ZGVfCiAKIAogZGVmIF9pbl9yZXBvX3Jvb3QoZnVsbF9wYXRoKToKKyAgICAjIHR5cGU6IChV
bmlvbltieXRlcywgVGV4dF0pIC0+IGJvb2wKICAgICByZWxfcGF0aCA9IG9zLnBhdGgucmVscGF0
aChmdWxsX3BhdGgsIHdwdF9yb290KQogICAgIHBhdGhfY29tcG9uZW50cyA9IHJlbF9wYXRoLnNw
bGl0KG9zLnNlcCkKICAgICByZXR1cm4gbGVuKHBhdGhfY29tcG9uZW50cykgPCAyCiAKIAotZGVm
IF9pbml0X21hbmlmZXN0X2NhY2hlKCk6Ci0gICAgYyA9IHt9Ci0KLSAgICBkZWYgbG9hZChtYW5p
ZmVzdF9wYXRoPU5vbmUpOgotICAgICAgICBpZiBtYW5pZmVzdF9wYXRoIGlzIE5vbmU6Ci0gICAg
ICAgICAgICBtYW5pZmVzdF9wYXRoID0gb3MucGF0aC5qb2luKHdwdF9yb290LCAiTUFOSUZFU1Qu
anNvbiIpCi0gICAgICAgIGlmIGMuZ2V0KG1hbmlmZXN0X3BhdGgpOgotICAgICAgICAgICAgcmV0
dXJuIGNbbWFuaWZlc3RfcGF0aF0KLSAgICAgICAgIyBjYWNoZSBhdCBtb3N0IG9uZSBwYXRoOm1h
bmlmZXN0Ci0gICAgICAgIGMuY2xlYXIoKQotICAgICAgICB3cHRfbWFuaWZlc3QgPSBtYW5pZmVz
dC5sb2FkKHdwdF9yb290LCBtYW5pZmVzdF9wYXRoKQotICAgICAgICBpZiB3cHRfbWFuaWZlc3Qg
aXMgTm9uZToKLSAgICAgICAgICAgIHdwdF9tYW5pZmVzdCA9IG1hbmlmZXN0Lk1hbmlmZXN0KCkK
LSAgICAgICAgdXBkYXRlLnVwZGF0ZSh3cHRfcm9vdCwgd3B0X21hbmlmZXN0KQotICAgICAgICBj
W21hbmlmZXN0X3BhdGhdID0gd3B0X21hbmlmZXN0Ci0gICAgICAgIHJldHVybiBjW21hbmlmZXN0
X3BhdGhdCi0gICAgcmV0dXJuIGxvYWQKLQotCi1sb2FkX21hbmlmZXN0ID0gX2luaXRfbWFuaWZl
c3RfY2FjaGUoKQorZGVmIGxvYWRfbWFuaWZlc3QobWFuaWZlc3RfcGF0aD1Ob25lLCBtYW5pZmVz
dF91cGRhdGU9VHJ1ZSk6CisgICAgIyB0eXBlOiAoT3B0aW9uYWxbc3RyXSwgYm9vbCkgLT4gbWFu
aWZlc3QuTWFuaWZlc3QKKyAgICBpZiBtYW5pZmVzdF9wYXRoIGlzIE5vbmU6CisgICAgICAgIG1h
bmlmZXN0X3BhdGggPSBvcy5wYXRoLmpvaW4od3B0X3Jvb3QsICJNQU5JRkVTVC5qc29uIikKKyAg
ICByZXR1cm4gbWFuaWZlc3QubG9hZF9hbmRfdXBkYXRlKHdwdF9yb290LCBtYW5pZmVzdF9wYXRo
LCAiLyIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1cGRhdGU9bWFuaWZl
c3RfdXBkYXRlKQogCiAKLWRlZiBhZmZlY3RlZF90ZXN0ZmlsZXMoZmlsZXNfY2hhbmdlZCwgc2tp
cF90ZXN0cywgbWFuaWZlc3RfcGF0aD1Ob25lKToKK2RlZiBhZmZlY3RlZF90ZXN0ZmlsZXMoZmls
ZXNfY2hhbmdlZCwgICMgdHlwZTogSXRlcmFibGVbVGV4dF0KKyAgICAgICAgICAgICAgICAgICAg
ICAgc2tpcF9kaXJzPU5vbmUsICAjIHR5cGU6IE9wdGlvbmFsW1NldFtzdHJdXQorICAgICAgICAg
ICAgICAgICAgICAgICBtYW5pZmVzdF9wYXRoPU5vbmUsICAjIHR5cGU6IE9wdGlvbmFsW3N0cl0K
KyAgICAgICAgICAgICAgICAgICAgICAgbWFuaWZlc3RfdXBkYXRlPVRydWUgICMgdHlwZTogYm9v
bAorICAgICAgICAgICAgICAgICAgICAgICApOgorICAgICMgdHlwZTogKC4uLikgLT4gVHVwbGVb
U2V0W1RleHRdLCBTZXRbc3RyXV0KICAgICAiIiJEZXRlcm1pbmUgYW5kIHJldHVybiBsaXN0IG9m
IHRlc3QgZmlsZXMgdGhhdCByZWZlcmVuY2UgY2hhbmdlZCBmaWxlcy4iIiIKKyAgICBpZiBza2lw
X2RpcnMgaXMgTm9uZToKKyAgICAgICAgc2tpcF9kaXJzID0geyJjb25mb3JtYW5jZS1jaGVja2Vy
cyIsICJkb2NzIiwgInRvb2xzIn0KICAgICBhZmZlY3RlZF90ZXN0ZmlsZXMgPSBzZXQoKQogICAg
ICMgRXhjbHVkZSBmaWxlcyB0aGF0IGFyZSBpbiB0aGUgcmVwbyByb290LCBiZWNhdXNlCiAgICAg
IyB0aGV5IGFyZSBub3QgcGFydCBvZiBhbnkgdGVzdC4KICAgICBmaWxlc19jaGFuZ2VkID0gW2Yg
Zm9yIGYgaW4gZmlsZXNfY2hhbmdlZCBpZiBub3QgX2luX3JlcG9fcm9vdChmKV0KICAgICBub250
ZXN0c19jaGFuZ2VkID0gc2V0KGZpbGVzX2NoYW5nZWQpCi0gICAgd3B0X21hbmlmZXN0ID0gbG9h
ZF9tYW5pZmVzdChtYW5pZmVzdF9wYXRoKQorICAgIHdwdF9tYW5pZmVzdCA9IGxvYWRfbWFuaWZl
c3QobWFuaWZlc3RfcGF0aCwgbWFuaWZlc3RfdXBkYXRlKQogCiAgICAgdGVzdF90eXBlcyA9IFsi
dGVzdGhhcm5lc3MiLCAicmVmdGVzdCIsICJ3ZHNwZWMiXQogICAgIHN1cHBvcnRfZmlsZXMgPSB7
b3MucGF0aC5qb2luKHdwdF9yb290LCBwYXRoKQpAQCAtMjE5LDE3ICsyNTUsMjIgQEAgZGVmIGFm
ZmVjdGVkX3Rlc3RmaWxlcyhmaWxlc19jaGFuZ2VkLCBza2lwX3Rlc3RzLCBtYW5pZmVzdF9wYXRo
PU5vbmUpOgogICAgIHRlc3RfZmlsZXMgPSB7b3MucGF0aC5qb2luKHdwdF9yb290LCBwYXRoKQog
ICAgICAgICAgICAgICAgICAgZm9yIF8sIHBhdGgsIF8gaW4gd3B0X21hbmlmZXN0Lml0ZXJ0eXBl
cygqdGVzdF90eXBlcyl9CiAKKyAgICBpbnRlcmZhY2VfZGlyID0gb3MucGF0aC5qb2luKHdwdF9y
b290LCAnaW50ZXJmYWNlcycpCisgICAgaW50ZXJmYWNlc19maWxlcyA9IHtvcy5wYXRoLmpvaW4o
d3B0X3Jvb3QsICdpbnRlcmZhY2VzJywgZmlsZW5hbWUpCisgICAgICAgICAgICAgICAgICAgICAg
ICBmb3IgZmlsZW5hbWUgaW4gb3MubGlzdGRpcihpbnRlcmZhY2VfZGlyKX0KKworICAgIGludGVy
ZmFjZXNfY2hhbmdlZCA9IGludGVyZmFjZXNfZmlsZXMuaW50ZXJzZWN0aW9uKG5vbnRlc3RzX2No
YW5nZWQpCiAgICAgbm9udGVzdHNfY2hhbmdlZCA9IG5vbnRlc3RzX2NoYW5nZWQuaW50ZXJzZWN0
aW9uKHN1cHBvcnRfZmlsZXMpCiAKLSAgICB0ZXN0c19jaGFuZ2VkID0gc2V0KGl0ZW0gZm9yIGl0
ZW0gaW4gZmlsZXNfY2hhbmdlZCBpZiBpdGVtIGluIHRlc3RfZmlsZXMpCisgICAgdGVzdHNfY2hh
bmdlZCA9IHtpdGVtIGZvciBpdGVtIGluIGZpbGVzX2NoYW5nZWQgaWYgaXRlbSBpbiB0ZXN0X2Zp
bGVzfQogCiAgICAgbm9udGVzdF9jaGFuZ2VkX3BhdGhzID0gc2V0KCkKLSAgICByZXdyaXRlcyA9
IHsiL3Jlc291cmNlcy93ZWJpZGwyL2xpYi93ZWJpZGwyLmpzIjogIi9yZXNvdXJjZXMvV2ViSURM
UGFyc2VyLmpzIn0KKyAgICByZXdyaXRlcyA9IHsiL3Jlc291cmNlcy93ZWJpZGwyL2xpYi93ZWJp
ZGwyLmpzIjogIi9yZXNvdXJjZXMvV2ViSURMUGFyc2VyLmpzIn0gICMgdHlwZTogRGljdFtUZXh0
LCBUZXh0XQogICAgIGZvciBmdWxsX3BhdGggaW4gbm9udGVzdHNfY2hhbmdlZDoKICAgICAgICAg
cmVsX3BhdGggPSBvcy5wYXRoLnJlbHBhdGgoZnVsbF9wYXRoLCB3cHRfcm9vdCkKICAgICAgICAg
cGF0aF9jb21wb25lbnRzID0gcmVsX3BhdGguc3BsaXQob3Muc2VwKQogICAgICAgICB0b3BfbGV2
ZWxfc3ViZGlyID0gcGF0aF9jb21wb25lbnRzWzBdCi0gICAgICAgIGlmIHRvcF9sZXZlbF9zdWJk
aXIgaW4gc2tpcF90ZXN0czoKKyAgICAgICAgaWYgdG9wX2xldmVsX3N1YmRpciBpbiBza2lwX2Rp
cnM6CiAgICAgICAgICAgICBjb250aW51ZQogICAgICAgICByZXBvX3BhdGggPSAiLyIgKyBvcy5w
YXRoLnJlbHBhdGgoZnVsbF9wYXRoLCB3cHRfcm9vdCkucmVwbGFjZShvcy5wYXRoLnNlcCwgIi8i
KQogICAgICAgICBpZiByZXBvX3BhdGggaW4gcmV3cml0ZXM6CkBAIC0yMzcsNyArMjc4LDExIEBA
IGRlZiBhZmZlY3RlZF90ZXN0ZmlsZXMoZmlsZXNfY2hhbmdlZCwgc2tpcF90ZXN0cywgbWFuaWZl
c3RfcGF0aD1Ob25lKToKICAgICAgICAgICAgIGZ1bGxfcGF0aCA9IG9zLnBhdGguam9pbih3cHRf
cm9vdCwgcmVwb19wYXRoWzE6XS5yZXBsYWNlKCIvIiwgb3MucGF0aC5zZXApKQogICAgICAgICBu
b250ZXN0X2NoYW5nZWRfcGF0aHMuYWRkKChmdWxsX3BhdGgsIHJlcG9fcGF0aCkpCiAKKyAgICBp
bnRlcmZhY2VfbmFtZSA9IGxhbWJkYSB4OiBvcy5wYXRoLnNwbGl0ZXh0KG9zLnBhdGguYmFzZW5h
bWUoeCkpWzBdCisgICAgaW50ZXJmYWNlc19jaGFuZ2VkX25hbWVzID0gbWFwKGludGVyZmFjZV9u
YW1lLCBpbnRlcmZhY2VzX2NoYW5nZWQpCisKICAgICBkZWYgYWZmZWN0ZWRfYnlfd2RzcGVjKHRl
c3QpOgorICAgICAgICAjIHR5cGU6IChzdHIpIC0+IGJvb2wKICAgICAgICAgYWZmZWN0ZWQgPSBG
YWxzZQogICAgICAgICBpZiB0ZXN0IGluIHdkc3BlY190ZXN0X2ZpbGVzOgogICAgICAgICAgICAg
Zm9yIHN1cHBvcnRfZnVsbF9wYXRoLCBfIGluIG5vbnRlc3RfY2hhbmdlZF9wYXRoczoKQEAgLTI1
MiwxMSArMjk3LDIxIEBAIGRlZiBhZmZlY3RlZF90ZXN0ZmlsZXMoZmlsZXNfY2hhbmdlZCwgc2tp
cF90ZXN0cywgbWFuaWZlc3RfcGF0aD1Ob25lKToKICAgICAgICAgICAgICAgICAgICAgYnJlYWsK
ICAgICAgICAgcmV0dXJuIGFmZmVjdGVkCiAKKyAgICBkZWYgYWZmZWN0ZWRfYnlfaW50ZXJmYWNl
cyhmaWxlX2NvbnRlbnRzKToKKyAgICAgICAgIyB0eXBlOiAoVW5pb25bYnl0ZXMsIFRleHRdKSAt
PiBib29sCisgICAgICAgIGlmIGxlbihpbnRlcmZhY2VzX2NoYW5nZWRfbmFtZXMpID4gMDoKKyAg
ICAgICAgICAgIGlmICdpZGxoYXJuZXNzLmpzJyBpbiBmaWxlX2NvbnRlbnRzOgorICAgICAgICAg
ICAgICAgIGZvciBpbnRlcmZhY2UgaW4gaW50ZXJmYWNlc19jaGFuZ2VkX25hbWVzOgorICAgICAg
ICAgICAgICAgICAgICByZWdleCA9ICdbXCciXScgKyBpbnRlcmZhY2UgKyAnKFxcLmlkbCk/W1wn
Il0nCisgICAgICAgICAgICAgICAgICAgIGlmIHJlLnNlYXJjaChyZWdleCwgZmlsZV9jb250ZW50
cyk6CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gVHJ1ZQorICAgICAgICByZXR1cm4g
RmFsc2UKKwogICAgIGZvciByb290LCBkaXJzLCBmbmFtZXMgaW4gb3Mud2Fsayh3cHRfcm9vdCk6
CiAgICAgICAgICMgV2FsayB0b3BfbGV2ZWxfc3ViZGlyIGxvb2tpbmcgZm9yIHRlc3QgZmlsZXMg
Y29udGFpbmluZyBlaXRoZXIgdGhlCiAgICAgICAgICMgcmVsYXRpdmUgZmlsZXBhdGggb3IgYWJz
b2x1dGUgZmlsZXBhdGggdG8gdGhlIGNoYW5nZWQgZmlsZXMuCiAgICAgICAgIGlmIHJvb3QgPT0g
d3B0X3Jvb3Q6Ci0gICAgICAgICAgICBmb3IgZGlyX25hbWUgaW4gc2tpcF90ZXN0czoKKyAgICAg
ICAgICAgIGZvciBkaXJfbmFtZSBpbiBza2lwX2RpcnM6CiAgICAgICAgICAgICAgICAgZGlycy5y
ZW1vdmUoZGlyX25hbWUpCiAgICAgICAgIGZvciBmbmFtZSBpbiBmbmFtZXM6CiAgICAgICAgICAg
ICB0ZXN0X2Z1bGxfcGF0aCA9IG9zLnBhdGguam9pbihyb290LCBmbmFtZSkKQEAgLTI2OCwxNiAr
MzIzLDE2IEBAIGRlZiBhZmZlY3RlZF90ZXN0ZmlsZXMoZmlsZXNfY2hhbmdlZCwgc2tpcF90ZXN0
cywgbWFuaWZlc3RfcGF0aD1Ob25lKToKICAgICAgICAgICAgICAgICBjb250aW51ZQogCiAgICAg
ICAgICAgICB3aXRoIG9wZW4odGVzdF9mdWxsX3BhdGgsICJyYiIpIGFzIGZoOgotICAgICAgICAg
ICAgICAgIGZpbGVfY29udGVudHMgPSBmaC5yZWFkKCkKLSAgICAgICAgICAgICAgICBpZiBmaWxl
X2NvbnRlbnRzLnN0YXJ0c3dpdGgoIlx4ZmVceGZmIik6Ci0gICAgICAgICAgICAgICAgICAgIGZp
bGVfY29udGVudHMgPSBmaWxlX2NvbnRlbnRzLmRlY29kZSgidXRmLTE2YmUiLCAicmVwbGFjZSIp
Ci0gICAgICAgICAgICAgICAgZWxpZiBmaWxlX2NvbnRlbnRzLnN0YXJ0c3dpdGgoIlx4ZmZceGZl
Iik6Ci0gICAgICAgICAgICAgICAgICAgIGZpbGVfY29udGVudHMgPSBmaWxlX2NvbnRlbnRzLmRl
Y29kZSgidXRmLTE2bGUiLCAicmVwbGFjZSIpCisgICAgICAgICAgICAgICAgcmF3X2ZpbGVfY29u
dGVudHMgPSBmaC5yZWFkKCkgICMgdHlwZTogYnl0ZXMKKyAgICAgICAgICAgICAgICBpZiByYXdf
ZmlsZV9jb250ZW50cy5zdGFydHN3aXRoKCJceGZlXHhmZiIpOgorICAgICAgICAgICAgICAgICAg
ICBmaWxlX2NvbnRlbnRzID0gcmF3X2ZpbGVfY29udGVudHMuZGVjb2RlKCJ1dGYtMTZiZSIsICJy
ZXBsYWNlIikgICMgdHlwZTogVGV4dAorICAgICAgICAgICAgICAgIGVsaWYgcmF3X2ZpbGVfY29u
dGVudHMuc3RhcnRzd2l0aCgiXHhmZlx4ZmUiKToKKyAgICAgICAgICAgICAgICAgICAgZmlsZV9j
b250ZW50cyA9IHJhd19maWxlX2NvbnRlbnRzLmRlY29kZSgidXRmLTE2bGUiLCAicmVwbGFjZSIp
CiAgICAgICAgICAgICAgICAgZWxzZToKLSAgICAgICAgICAgICAgICAgICAgZmlsZV9jb250ZW50
cyA9IGZpbGVfY29udGVudHMuZGVjb2RlKCJ1dGY4IiwgInJlcGxhY2UiKQorICAgICAgICAgICAg
ICAgICAgICBmaWxlX2NvbnRlbnRzID0gcmF3X2ZpbGVfY29udGVudHMuZGVjb2RlKCJ1dGY4Iiwg
InJlcGxhY2UiKQogICAgICAgICAgICAgICAgIGZvciBmdWxsX3BhdGgsIHJlcG9fcGF0aCBpbiBu
b250ZXN0X2NoYW5nZWRfcGF0aHM6CiAgICAgICAgICAgICAgICAgICAgIHJlbF9wYXRoID0gb3Mu
cGF0aC5yZWxwYXRoKGZ1bGxfcGF0aCwgcm9vdCkucmVwbGFjZShvcy5wYXRoLnNlcCwgIi8iKQot
ICAgICAgICAgICAgICAgICAgICBpZiByZWxfcGF0aCBpbiBmaWxlX2NvbnRlbnRzIG9yIHJlcG9f
cGF0aCBpbiBmaWxlX2NvbnRlbnRzOgorICAgICAgICAgICAgICAgICAgICBpZiByZWxfcGF0aCBp
biBmaWxlX2NvbnRlbnRzIG9yIHJlcG9fcGF0aCBpbiBmaWxlX2NvbnRlbnRzIG9yIGFmZmVjdGVk
X2J5X2ludGVyZmFjZXMoZmlsZV9jb250ZW50cyk6CiAgICAgICAgICAgICAgICAgICAgICAgICBh
ZmZlY3RlZF90ZXN0ZmlsZXMuYWRkKHRlc3RfZnVsbF9wYXRoKQogICAgICAgICAgICAgICAgICAg
ICAgICAgY29udGludWUKIApAQCAtMjg1LDExICszNDAsMTQgQEAgZGVmIGFmZmVjdGVkX3Rlc3Rm
aWxlcyhmaWxlc19jaGFuZ2VkLCBza2lwX3Rlc3RzLCBtYW5pZmVzdF9wYXRoPU5vbmUpOgogCiAK
IGRlZiBnZXRfcGFyc2VyKCk6CisgICAgIyB0eXBlOiAoKSAtPiBhcmdwYXJzZS5Bcmd1bWVudFBh
cnNlcgogICAgIHBhcnNlciA9IGFyZ3BhcnNlLkFyZ3VtZW50UGFyc2VyKCkKICAgICBwYXJzZXIu
YWRkX2FyZ3VtZW50KCJyZXZpc2giLCBkZWZhdWx0PU5vbmUsIGhlbHA9IkNvbW1pdHMgdG8gY29u
c2lkZXIuIERlZmF1bHRzIHRvIHRoZSAiCiAgICAgICAgICAgICAgICAgICAgICAgICAiY29tbWl0
cyBvbiB0aGUgY3VycmVudCBicmFuY2giLCBuYXJncz0iPyIpCi0gICAgcGFyc2VyLmFkZF9hcmd1
bWVudCgiLS1pZ25vcmUtcnVsZXMiLCBuYXJncz0iKiIsIHR5cGU9c2V0LAotICAgICAgICAgICAg
ICAgICAgICAgICAgZGVmYXVsdD1zZXQoWyJyZXNvdXJjZXMvdGVzdGhhcm5lc3MqIl0pLAorICAg
ICMgVE9ETzogQ29uc29saWRhdGUgd2l0aCBgLi93cHQgcnVuIC0tYWZmZWN0ZWRgOgorICAgICMg
aHR0cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQvaXNzdWVzLzE0NTYwCisg
ICAgcGFyc2VyLmFkZF9hcmd1bWVudCgiLS1pZ25vcmUtcnVsZXMiLCBuYXJncz0iKiIsIHR5cGU9
c2V0LCAgIyB0eXBlOiBpZ25vcmUKKyAgICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ9eyJy
ZXNvdXJjZXMvdGVzdGhhcm5lc3MqIn0sCiAgICAgICAgICAgICAgICAgICAgICAgICBoZWxwPSJS
dWxlcyBmb3IgcGF0aHMgdG8gZXhjbHVkZSBmcm9tIGxpc3RzIG9mIGNoYW5nZXMuIFJ1bGVzIGFy
ZSBwYXRocyAiCiAgICAgICAgICAgICAgICAgICAgICAgICAicmVsYXRpdmUgdG8gdGhlIHRlc3Qg
cm9vdCwgd2l0aCAqIGJlZm9yZSBhIHNlcGFyYXRvciBvciB0aGUgZW5kIG1hdGNoaW5nICIKICAg
ICAgICAgICAgICAgICAgICAgICAgICJhbnl0aGluZyBvdGhlciB0aGFuIGEgcGF0aCBzZXBhcmF0
b3IgYW5kICoqIGluIHRoYXQgcG9zaXRpb24gbWF0Y2hpbmcgIgpAQCAtMzA3LDYgKzM2NSw3IEBA
IGRlZiBnZXRfcGFyc2VyKCk6CiAKIAogZGVmIGdldF9wYXJzZXJfYWZmZWN0ZWQoKToKKyAgICAj
IHR5cGU6ICgpIC0+IGFyZ3BhcnNlLkFyZ3VtZW50UGFyc2VyCiAgICAgcGFyc2VyID0gZ2V0X3Bh
cnNlcigpCiAgICAgcGFyc2VyLmFkZF9hcmd1bWVudCgiLS1tZXRhZGF0YSIsCiAgICAgICAgICAg
ICAgICAgICAgICAgICBkZXN0PSJtZXRhZGF0YV9yb290IiwKQEAgLTMxNywxMyArMzc2LDE4IEBA
IGRlZiBnZXRfcGFyc2VyX2FmZmVjdGVkKCk6CiAKIAogZGVmIGdldF9yZXZpc2goKiprd2FyZ3Mp
OgotICAgIHJldmlzaCA9IGt3YXJnc1sicmV2aXNoIl0KLSAgICBpZiBrd2FyZ3NbInJldmlzaCJd
IGlzIE5vbmU6CisgICAgIyB0eXBlOiAoKipBbnkpIC0+IGJ5dGVzCisgICAgcmV2aXNoID0ga3dh
cmdzLmdldCgicmV2aXNoIikKKyAgICBpZiByZXZpc2ggaXMgTm9uZToKICAgICAgICAgcmV2aXNo
ID0gIiVzLi5IRUFEIiAlIGJyYW5jaF9wb2ludCgpCisgICAgaWYgaXNpbnN0YW5jZShyZXZpc2gs
IHNpeC50ZXh0X3R5cGUpOgorICAgICAgICByZXZpc2ggPSByZXZpc2guZW5jb2RlKCJ1dGY4IikK
KyAgICBhc3NlcnQgaXNpbnN0YW5jZShyZXZpc2gsIHNpeC5iaW5hcnlfdHlwZSkKICAgICByZXR1
cm4gcmV2aXNoCiAKIAogZGVmIHJ1bl9jaGFuZ2VkX2ZpbGVzKCoqa3dhcmdzKToKKyAgICAjIHR5
cGU6ICgqKkFueSkgLT4gTm9uZQogICAgIHJldmlzaCA9IGdldF9yZXZpc2goKiprd2FyZ3MpCiAg
ICAgY2hhbmdlZCwgXyA9IGZpbGVzX2NoYW5nZWQocmV2aXNoLCBrd2FyZ3NbImlnbm9yZV9ydWxl
cyJdLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluY2x1ZGVfdW5jb21taXR0ZWQ9
a3dhcmdzWyJtb2RpZmllZCJdLApAQCAtMzMyLDEwICszOTYsMTEgQEAgZGVmIHJ1bl9jaGFuZ2Vk
X2ZpbGVzKCoqa3dhcmdzKToKICAgICBzZXBhcmF0b3IgPSAiXDAiIGlmIGt3YXJnc1sibnVsbCJd
IGVsc2UgIlxuIgogCiAgICAgZm9yIGl0ZW0gaW4gc29ydGVkKGNoYW5nZWQpOgotICAgICAgICBz
eXMuc3Rkb3V0LndyaXRlKG9zLnBhdGgucmVscGF0aChpdGVtLCB3cHRfcm9vdCkgKyBzZXBhcmF0
b3IpCisgICAgICAgIHN5cy5zdGRvdXQud3JpdGUob3MucGF0aC5yZWxwYXRoKGl0ZW0uZW5jb2Rl
KCJ1dGY4IiksIHdwdF9yb290KSArIHNlcGFyYXRvcikKIAogCiBkZWYgcnVuX3Rlc3RzX2FmZmVj
dGVkKCoqa3dhcmdzKToKKyAgICAjIHR5cGU6ICgqKkFueSkgLT4gTm9uZQogICAgIHJldmlzaCA9
IGdldF9yZXZpc2goKiprd2FyZ3MpCiAgICAgY2hhbmdlZCwgXyA9IGZpbGVzX2NoYW5nZWQocmV2
aXNoLCBrd2FyZ3NbImlnbm9yZV9ydWxlcyJdLAogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGluY2x1ZGVfdW5jb21taXR0ZWQ9a3dhcmdzWyJtb2RpZmllZCJdLApAQCAtMzQzLDcgKzQw
OCw3IEBAIGRlZiBydW5fdGVzdHNfYWZmZWN0ZWQoKiprd2FyZ3MpOgogICAgIG1hbmlmZXN0X3Bh
dGggPSBvcy5wYXRoLmpvaW4oa3dhcmdzWyJtZXRhZGF0YV9yb290Il0sICJNQU5JRkVTVC5qc29u
IikKICAgICB0ZXN0c19jaGFuZ2VkLCBkZXBlbmRlbnRzID0gYWZmZWN0ZWRfdGVzdGZpbGVzKAog
ICAgICAgICBjaGFuZ2VkLAotICAgICAgICBzZXQoWyJjb25mb3JtYW5jZS1jaGVja2VycyIsICJk
b2NzIiwgInRvb2xzIl0pLAorICAgICAgICB7ImNvbmZvcm1hbmNlLWNoZWNrZXJzIiwgImRvY3Mi
LCAidG9vbHMifSwKICAgICAgICAgbWFuaWZlc3RfcGF0aD1tYW5pZmVzdF9wYXRoCiAgICAgKQog
CkBAIC0zNjEsNiArNDI2LDYgQEAgZGVmIHJ1bl90ZXN0c19hZmZlY3RlZCgqKmt3YXJncyk6CiAg
ICAgICAgIGlmIGt3YXJnc1sic2hvd190eXBlIl06CiAgICAgICAgICAgICBpdGVtX3R5cGVzID0g
e2kuaXRlbV90eXBlIGZvciBpIGluIHdwdF9tYW5pZmVzdC5pdGVycGF0aChyZXN1bHRzWyJwYXRo
Il0pfQogICAgICAgICAgICAgaWYgbGVuKGl0ZW1fdHlwZXMpICE9IDE6Ci0gICAgICAgICAgICAg
ICAgaXRlbV90eXBlcyA9IFsiICIuam9pbihpdGVtX3R5cGVzKV0KKyAgICAgICAgICAgICAgICBp
dGVtX3R5cGVzID0geyIgIi5qb2luKGl0ZW1fdHlwZXMpfQogICAgICAgICAgICAgcmVzdWx0c1si
aXRlbV90eXBlIl0gPSBpdGVtX3R5cGVzLnBvcCgpCiAgICAgICAgIHN5cy5zdGRvdXQud3JpdGUo
bWVzc2FnZS5mb3JtYXQoKipyZXN1bHRzKSkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0L3Rlc3RzL3Rlc3RfYnJvd3Nlci5w
eSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0
L3Rlc3RzL3Rlc3RfYnJvd3Nlci5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yNWI2NmU3ZDkyMmY1NGVkZjE5N2Jh
YWFmNDJjMjZjOWZjZTA0NjIxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHQvdGVzdHMvdGVzdF9icm93c2VyLnB5
CkBAIC0wLDAgKzEsMTAzIEBACitpbXBvcnQgbW9jaworaW1wb3J0IHN1YnByb2Nlc3MKK2ltcG9y
dCBsb2dnaW5nCitpbXBvcnQgc3lzCitpbXBvcnQgcHl0ZXN0CisKK2Zyb20gdG9vbHMud3B0IGlt
cG9ydCBicm93c2VyCisKKworbG9nZ2VyID0gbG9nZ2luZy5nZXRMb2dnZXIoKQorCisKK0Btb2Nr
LnBhdGNoKCdzdWJwcm9jZXNzLmNoZWNrX291dHB1dCcpCitkZWYgdGVzdF9zYWZhcmlfdmVyc2lv
bihtb2NrZWRfY2hlY2tfb3V0cHV0KToKKyAgICBzYWZhcmkgPSBicm93c2VyLlNhZmFyaShsb2dn
ZXIpCisKKyAgICAjIFNhZmFyaQorICAgIG1vY2tlZF9jaGVja19vdXRwdXQucmV0dXJuX3ZhbHVl
ID0gJ0luY2x1ZGVkIHdpdGggU2FmYXJpIDEyLjEgKDE0NjA3LjEuMTEpJworICAgIGFzc2VydCBz
YWZhcmkudmVyc2lvbih3ZWJkcml2ZXJfYmluYXJ5PSJzYWZhcmlkcml2ZXIiKSA9PSAnMTIuMSAo
MTQ2MDcuMS4xMSknCisKKyAgICAjIFNhZmFyaSBUZWNobm9sb2d5IFByZXZpZXcKKyAgICBtb2Nr
ZWRfY2hlY2tfb3V0cHV0LnJldHVybl92YWx1ZSA9ICdJbmNsdWRlZCB3aXRoIFNhZmFyaSBUZWNo
bm9sb2d5IFByZXZpZXcgKFJlbGVhc2UgNjcsIDEzNjA3LjEuOS4wLjEpJworICAgIGFzc2VydCBz
YWZhcmkudmVyc2lvbih3ZWJkcml2ZXJfYmluYXJ5PSJzYWZhcmlkcml2ZXIiKSA9PSAnVGVjaG5v
bG9neSBQcmV2aWV3IChSZWxlYXNlIDY3LCAxMzYwNy4xLjkuMC4xKScKKworQG1vY2sucGF0Y2go
J3N1YnByb2Nlc3MuY2hlY2tfb3V0cHV0JykKK2RlZiB0ZXN0X3NhZmFyaV92ZXJzaW9uX2Vycm9y
cyhtb2NrZWRfY2hlY2tfb3V0cHV0KToKKyAgICBzYWZhcmkgPSBicm93c2VyLlNhZmFyaShsb2dn
ZXIpCisKKyAgICAjIE5vIHdlYmRyaXZlcl9iaW5hcnkKKyAgICBhc3NlcnQgc2FmYXJpLnZlcnNp
b24oKSBpcyBOb25lCisKKyAgICAjIGBzYWZhcmlkcml2ZXIgLS12ZXJzaW9uYCByZXR1cm4gZ2li
YmVyaXNoCisgICAgbW9ja2VkX2NoZWNrX291dHB1dC5yZXR1cm5fdmFsdWUgPSAnZ2liYmVyaXNo
JworICAgIGFzc2VydCBzYWZhcmkudmVyc2lvbih3ZWJkcml2ZXJfYmluYXJ5PSJzYWZhcmlkcml2
ZXIiKSBpcyBOb25lCisKKyAgICAjIGBzYWZhcmlkcml2ZXIgLS12ZXJzaW9uYCBmYWlscyAoYXMg
aXQgZG9lcyBmb3IgU2FmYXJpIDw9MTIuMCkKKyAgICBtb2NrZWRfY2hlY2tfb3V0cHV0LnJldHVy
bl92YWx1ZSA9ICdkdW1teScKKyAgICBtb2NrZWRfY2hlY2tfb3V0cHV0LnNpZGVfZWZmZWN0ID0g
c3VicHJvY2Vzcy5DYWxsZWRQcm9jZXNzRXJyb3IoMSwgJ2NtZCcpCisgICAgYXNzZXJ0IHNhZmFy
aS52ZXJzaW9uKHdlYmRyaXZlcl9iaW5hcnk9InNhZmFyaWRyaXZlciIpIGlzIE5vbmUKKworCitA
bW9jay5wYXRjaCgnc3VicHJvY2Vzcy5jaGVja19vdXRwdXQnKQorZGVmIHRlc3Rfd2Via2l0Z3Rr
X21pbmlicm93c2VyX3ZlcnNpb24obW9ja2VkX2NoZWNrX291dHB1dCk6CisgICAgd2Via2l0Z3Rr
X21pbmlicm93c2VyID0gYnJvd3Nlci5XZWJLaXRHVEtNaW5pQnJvd3Nlcihsb2dnZXIpCisKKyAg
ICAjIHN0YWJsZSB2ZXJzaW9uCisgICAgbW9ja2VkX2NoZWNrX291dHB1dC5yZXR1cm5fdmFsdWUg
PSAnV2ViS2l0R1RLIDIuMjYuMVxuJworICAgIGFzc2VydCB3ZWJraXRndGtfbWluaWJyb3dzZXIu
dmVyc2lvbihiaW5hcnk9J01pbmlCcm93c2VyJykgPT0gJzIuMjYuMScKKworICAgICMgbmlnaHRs
eSB2ZXJzaW9uCisgICAgbW9ja2VkX2NoZWNrX291dHB1dC5yZXR1cm5fdmFsdWUgPSAnV2ViS2l0
R1RLIDIuMjcuMSAocjI1MDgyMylcbicKKyAgICBhc3NlcnQgd2Via2l0Z3RrX21pbmlicm93c2Vy
LnZlcnNpb24oYmluYXJ5PSdNaW5pQnJvd3NlcicpID09ICcyLjI3LjEgKHIyNTA4MjMpJworCitA
bW9jay5wYXRjaCgnc3VicHJvY2Vzcy5jaGVja19vdXRwdXQnKQorZGVmIHRlc3Rfd2Via2l0Z3Rr
X21pbmlicm93c2VyX3ZlcnNpb25fZXJyb3JzKG1vY2tlZF9jaGVja19vdXRwdXQpOgorICAgIHdl
YmtpdGd0a19taW5pYnJvd3NlciA9IGJyb3dzZXIuV2ViS2l0R1RLTWluaUJyb3dzZXIobG9nZ2Vy
KQorCisgICAgIyBObyBiaW5hcnkKKyAgICBhc3NlcnQgd2Via2l0Z3RrX21pbmlicm93c2VyLnZl
cnNpb24oKSBpcyBOb25lCisKKyAgICAjIGBNaW5pQnJvd3NlciAtLXZlcnNpb25gIHJldHVybiBn
aWJiZXJpc2gKKyAgICBtb2NrZWRfY2hlY2tfb3V0cHV0LnJldHVybl92YWx1ZSA9ICdnaWJiZXJp
c2gnCisgICAgYXNzZXJ0IHdlYmtpdGd0a19taW5pYnJvd3Nlci52ZXJzaW9uKGJpbmFyeT0nTWlu
aUJyb3dzZXInKSBpcyBOb25lCisKKyAgICAjIGBNaW5pQnJvd3NlciAtLXZlcnNpb25gIGZhaWxz
IChhcyBpdCBkb2VzIGZvciBNaW5pQnJvd3NlciA8PSAyLjI2LjApCisgICAgbW9ja2VkX2NoZWNr
X291dHB1dC5yZXR1cm5fdmFsdWUgPSAnZHVtbXknCisgICAgbW9ja2VkX2NoZWNrX291dHB1dC5z
aWRlX2VmZmVjdCA9IHN1YnByb2Nlc3MuQ2FsbGVkUHJvY2Vzc0Vycm9yKDEsICdjbWQnKQorICAg
IGFzc2VydCB3ZWJraXRndGtfbWluaWJyb3dzZXIudmVyc2lvbihiaW5hcnk9J01pbmlCcm93c2Vy
JykgaXMgTm9uZQorCisKKyMgVGhlIHRlc3QgYmVsb3cgZG9lc24ndCB3b3JrIG9uIFdpbmRvd3Mg
YmVjYXVzZSBkaXN0dXRpbHMgZmluZF9iaW5hcnkoKQorIyBvbiBXaW5kb3dzIG9ubHkgd29ya3Mg
aWYgdGhlIGJpbmFyeSBuYW1lIGVuZHMgd2l0aCBhICIuZXhlIiBzdWZmaXguCisjIEJ1dCwgV2Vi
S2l0R1RLIGl0c2VsZiBkb2Vzbid0IHN1cHBvcnQgV2luZG93cywgc28gbGV0cyBza2lwIHRoZSB0
ZXN0LgorQHB5dGVzdC5tYXJrLnNraXBpZihzeXMucGxhdGZvcm0uc3RhcnRzd2l0aCgnd2luJyks
IHJlYXNvbj0ndGVzdCBub3QgbmVlZGVkIG9uIFdpbmRvd3MnKQorQG1vY2sucGF0Y2goJ29zLnBh
dGguaXNmaWxlJykKK2RlZiB0ZXN0X3dlYmtpdGd0a19taW5pYnJvd3Nlcl9maW5kX2JpbmFyeSht
b2NrZWRfb3NfcGF0aF9pc2ZpbGUpOgorICAgIHdlYmtpdGd0a19taW5pYnJvd3NlciA9IGJyb3dz
ZXIuV2ViS2l0R1RLTWluaUJyb3dzZXIobG9nZ2VyKQorCisgICAgIyBObyBNaW5pQnJvd3NlciBm
b3VuZAorICAgIG1vY2tlZF9vc19wYXRoX2lzZmlsZS5zaWRlX2VmZmVjdCA9IGxhbWJkYSBwYXRo
OiBwYXRoID09ICcvZXRjL3Bhc3N3ZCcKKyAgICBhc3NlcnQgd2Via2l0Z3RrX21pbmlicm93c2Vy
LmZpbmRfYmluYXJ5KCkgaXMgTm9uZQorCisgICAgIyBGb3VuZCBvbiB0aGUgZGVmYXVsdCBGZWRv
cmEgcGF0aAorICAgIGZlZG9yYV9taW5pYnJvd3Nlcl9wYXRoID0gJy91c3IvbGliZXhlYy93ZWJr
aXQyZ3RrLTQuMC9NaW5pQnJvd3NlcicKKyAgICBtb2NrZWRfb3NfcGF0aF9pc2ZpbGUuc2lkZV9l
ZmZlY3QgPSBsYW1iZGEgcGF0aDogcGF0aCA9PSBmZWRvcmFfbWluaWJyb3dzZXJfcGF0aAorICAg
IGFzc2VydCB3ZWJraXRndGtfbWluaWJyb3dzZXIuZmluZF9iaW5hcnkoKSA9PSBmZWRvcmFfbWlu
aWJyb3dzZXJfcGF0aAorCisgICAgIyBGb3VuZCBvbiB0aGUgZGVmYXVsdCBEZWJpYW4gcGF0aCBm
b3IgQU1ENjQgKGdjYyBub3QgYXZhaWxhYmxlKQorICAgIGRlYmlhbl9taW5pYnJvd3Nlcl9wYXRo
X2FtZDY0ID0gJy91c3IvbGliL3g4Nl82NC1saW51eC1nbnUvd2Via2l0Mmd0ay00LjAvTWluaUJy
b3dzZXInCisgICAgbW9ja2VkX29zX3BhdGhfaXNmaWxlLnNpZGVfZWZmZWN0ID0gbGFtYmRhIHBh
dGg6IHBhdGggPT0gZGViaWFuX21pbmlicm93c2VyX3BhdGhfYW1kNjQKKyAgICBhc3NlcnQgd2Vi
a2l0Z3RrX21pbmlicm93c2VyLmZpbmRfYmluYXJ5KCkgPT0gZGViaWFuX21pbmlicm93c2VyX3Bh
dGhfYW1kNjQKKworICAgICMgRm91bmQgb24gdGhlIGRlZmF1bHQgRGViaWFuIHBhdGggZm9yIEFN
RDY0IChnY2MgYXZhaWxhYmxlIGJ1dCBnaXZlcyBhbiBlcnJvcikKKyAgICBkZWJpYW5fbWluaWJy
b3dzZXJfcGF0aF9hbWQ2NCA9ICcvdXNyL2xpYi94ODZfNjQtbGludXgtZ251L3dlYmtpdDJndGst
NC4wL01pbmlCcm93c2VyJworICAgIG1vY2tlZF9vc19wYXRoX2lzZmlsZS5zaWRlX2VmZmVjdCA9
IGxhbWJkYSBwYXRoOiBwYXRoIGluIFtkZWJpYW5fbWluaWJyb3dzZXJfcGF0aF9hbWQ2NCwgJy91
c3IvYmluL2djYyddCisgICAgd2l0aCBtb2NrLnBhdGNoKCdzdWJwcm9jZXNzLmNoZWNrX291dHB1
dCcsIHJldHVybl92YWx1ZSA9ICdlcnJvcicsIHNpZGVfZWZmZWN0ID0gc3VicHJvY2Vzcy5DYWxs
ZWRQcm9jZXNzRXJyb3IoMSwgJ2NtZCcpKToKKyAgICAgICAgYXNzZXJ0IHdlYmtpdGd0a19taW5p
YnJvd3Nlci5maW5kX2JpbmFyeSgpID09IGRlYmlhbl9taW5pYnJvd3Nlcl9wYXRoX2FtZDY0CisK
KyAgICAgICAgIyBGb3VuZCBvbiB0aGUgZGVmYXVsdCBEZWJpYW4gcGF0aCBmb3IgQVJNNjQgKGdj
YyBhdmFpbGFibGUpCisgICAgICAgIGRlYmlhbl9taW5pYnJvd3Nlcl9wYXRoX2FybTY0ID0gJy91
c3IvbGliL2FhcmNoNjQtbGludXgtZ251L3dlYmtpdDJndGstNC4wL01pbmlCcm93c2VyJworICAg
ICAgICBtb2NrZWRfb3NfcGF0aF9pc2ZpbGUuc2lkZV9lZmZlY3QgPSBsYW1iZGEgcGF0aDogcGF0
aCBpbiBbZGViaWFuX21pbmlicm93c2VyX3BhdGhfYXJtNjQsICcvdXNyL2Jpbi9nY2MnXQorICAg
ICAgICB3aXRoIG1vY2sucGF0Y2goJ3N1YnByb2Nlc3MuY2hlY2tfb3V0cHV0JywgcmV0dXJuX3Zh
bHVlID0gJ2FhcmNoNjQtbGludXgtZ251Jyk6CisgICAgICAgICAgICBhc3NlcnQgd2Via2l0Z3Rr
X21pbmlicm93c2VyLmZpbmRfYmluYXJ5KCkgPT0gZGViaWFuX21pbmlicm93c2VyX3BhdGhfYXJt
NjQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvd3B0L3Rlc3RzL3Rlc3RfcmV2bGlzdC5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0L3Rlc3RzL3Rlc3RfcmV2bGlzdC5weQpu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi5lYzJhNmI4OTlkNWQxYTkyN2RjYWQxZjlhNzU4M2Y5ODdhM2FkOTQ3Ci0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy93cHQvdGVzdHMvdGVzdF9yZXZsaXN0LnB5CkBAIC0wLDAgKzEsMTYzIEBACitpbXBv
cnQgbW9jaworZnJvbSB0b29scy53cHQgaW1wb3J0IHJldmxpc3QKKworCitkZWYgdGVzdF9jYWxj
dWxhdGVfY3V0b2ZmX2RhdGUoKToKKyAgICBhc3NlcnQgcmV2bGlzdC5jYWxjdWxhdGVfY3V0b2Zm
X2RhdGUoMzYwMSwgMzYwMCwgMCkgPT0gMzYwMAorICAgIGFzc2VydCByZXZsaXN0LmNhbGN1bGF0
ZV9jdXRvZmZfZGF0ZSgzNjAwLCAzNjAwLCAwKSA9PSAzNjAwCisgICAgYXNzZXJ0IHJldmxpc3Qu
Y2FsY3VsYXRlX2N1dG9mZl9kYXRlKDM1OTksIDM2MDAsIDApID09IDAKKyAgICBhc3NlcnQgcmV2
bGlzdC5jYWxjdWxhdGVfY3V0b2ZmX2RhdGUoMzYwMCwgMzYwMCwgMSkgPT0gMQorICAgIGFzc2Vy
dCByZXZsaXN0LmNhbGN1bGF0ZV9jdXRvZmZfZGF0ZSgzNjAwLCAzNjAwLCAtMSkgPT0gMzU5OQor
CisKK2RlZiB0ZXN0X3BhcnNlX2Vwb2NoKCk6CisgICAgYXNzZXJ0IHJldmxpc3QucGFyc2VfZXBv
Y2goYiIxMGgiKSA9PSAzNjAwMAorICAgIGFzc2VydCByZXZsaXN0LnBhcnNlX2Vwb2NoKGIiMTBk
IikgPT0gODY0MDAwCisgICAgYXNzZXJ0IHJldmxpc3QucGFyc2VfZXBvY2goYiIxMHciKSA9PSA2
MDQ4MDAwCisKKworQG1vY2sucGF0Y2goJ3N1YnByb2Nlc3MuY2hlY2tfb3V0cHV0JykKK2RlZiB0
ZXN0X2dldF9lcG9jaF9yZXZpc2lvbnMobW9ja2VkX2NoZWNrX291dHB1dCk6CisgICAgIyBjaGVj
azoKKyAgICAjCisgICAgIyAqIFNldmVyYWwgcmV2aXNpb25zIGluIHRoZSBzYW1lIGVwb2NoIG9m
ZnNldCAoQkMsIERFRiwgSElKLCBhbmQgTE0pCisgICAgIyAqIFJldmlzaW9uIHdpdGggYSB0aW1l
c3RhbXAgZXhhY3RseSBlcXVhbCB0byB0aGUgZXBvY2ggYm91bmRhcnkgKEgpCisgICAgIyAqIFJl
dmlzaW9uIGluIG5vbiBjbG9zZWQgaW50ZXJ2YWwgKE8pCisgICAgIworICAgICMgICAgICAgbW9u
ICB0dWUgICB3ZWQgICB0aHUgICBmcmkgICBzYXQgICBzdW4gICBtb24gICB0aHUgICB3ZWQKKyAg
ICAjICAgICAgICAgIHwgICAgIHwgICAgIHwgICAgIHwgICAgIHwgICAgIHwgICAgIHwgICAgIHwg
ICAgIHwKKyAgICAjICAgICAgIC1BLS0tQi1DLS0tREVGLS0tRy0tLUgtLUlKLS0tLS0tLS0tLUst
LS0tLUwtTS0tLS1OLS1PLS0KKyAgICAjICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KKyAgICAjICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW50aWwKKyAgICAjICAgICAg
IG1heF9jb3VudDogNTsgZXBvY2g6IDFkCisgICAgIyAgICAgICBFeHBlY3RlZCByZXN1bHQ6IE4s
TSxLLEosRyxGLEMsQQorICAgIGVwb2NoID0gODY0MDAKKyAgICB1bnRpbCA9IDExODgwMDAgICMg
V2VkbmVzZGF5LCAxNCBKYW51YXJ5IDE5NzAgMTg6MDA6MDAgVVRDCisgICAgbW9ja2VkX2NoZWNr
X291dHB1dC5yZXR1cm5fdmFsdWUgPSBiJycnCittZXJnZV9wcl9PIE8gMTE2NjQwMCBfd2VkXwor
bWVyZ2VfcHJfTiBOIDEwODAwMDAgX3R1ZV8KK21lcmdlX3ByX00gTSAxMDE1MjAwIF9tb25fCitt
ZXJnZV9wcl9MIEwgOTkzNjAwIF9tb25fCittZXJnZV9wcl9LIEsgOTA3MjAwIF9zdW5fCittZXJn
ZV9wcl9KIEogNzM0NDAwIF9mcmlfCittZXJnZV9wcl9JIEkgNzEyODAwIF9mcmlfCittZXJnZV9w
cl9IIEggNjkxMjAwIF9mcmlfCittZXJnZV9wcl9HIEcgNjQ4MDAwIF90aHVfCittZXJnZV9wcl9G
IEYgNTgzMjAwIF93ZWRfCittZXJnZV9wcl9FIEUgNTYxNjAwIF93ZWRfCittZXJnZV9wcl9EIEQg
NTQwMDAwIF93ZWRfCittZXJnZV9wcl9DIEMgNDc1MjAwIF90dWVfCittZXJnZV9wcl9CIEIgNDUz
NjAwIF90dWVfCittZXJnZV9wcl9BIEEgMzg4ODAwIF9tb25fCisnJycKKyAgICB0YWdnZWRfcmV2
aXNvbnMgPSByZXZsaXN0LmdldF9lcG9jaF9yZXZpc2lvbnMoZXBvY2gsIHVudGlsLCA4KQorICAg
IGFzc2VydCB0YWdnZWRfcmV2aXNvbnMubmV4dCgpID09ICdOJworICAgIGFzc2VydCB0YWdnZWRf
cmV2aXNvbnMubmV4dCgpID09ICdNJworICAgIGFzc2VydCB0YWdnZWRfcmV2aXNvbnMubmV4dCgp
ID09ICdLJworICAgIGFzc2VydCB0YWdnZWRfcmV2aXNvbnMubmV4dCgpID09ICdKJworICAgIGFz
c2VydCB0YWdnZWRfcmV2aXNvbnMubmV4dCgpID09ICdHJworICAgIGFzc2VydCB0YWdnZWRfcmV2
aXNvbnMubmV4dCgpID09ICdGJworICAgIGFzc2VydCB0YWdnZWRfcmV2aXNvbnMubmV4dCgpID09
ICdDJworICAgIGFzc2VydCB0YWdnZWRfcmV2aXNvbnMubmV4dCgpID09ICdBJworICAgIGFzc2Vy
dCBsZW4obGlzdCh0YWdnZWRfcmV2aXNvbnMpKSA9PSAwICAjIGdlbmVyYXRvciBleGhhdXN0ZWQK
KworCisgICAgIyBjaGVjazogbWF4X2NvdW50IHdpdGggZW5vdWdoIGNhbmRpZGF0ZSBpdGVtcyBp
biB0aGUgcmV2aXNpb24gbGlzdAorICAgICMKKyAgICAjICAgICAgIG1vbiAgdHVlICAgd2VkICAg
dGh1ICAgZnJpICAgc2F0ICAgc3VuICAgIG1vbgorICAgICMgICAgICAgICAgfCAgICAgfCAgICAg
fCAgICAgfCAgICAgfCAgICAgfCAgICAgfAorICAgICMgICAgICAgLS0tLS0tQi0tLS0tQy0tLS0t
RC0tLS1FLS0tLS1GLS0tLS1HLS0tLS0tSC0tLQorICAgICMgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCisgICAgIyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnRpbAorICAgICMgICAgICAgbWF4X2NvdW50
OiA1OyBlcG9jaDogMWQKKyAgICAjICAgICAgIEV4cGVjdGVkIHJlc3VsdDogRyxGLEUsRCxDCisg
ICAgZXBvY2ggPSA4NjQwMAorICAgIHVudGlsID0gMTAxNTIwMCAgICMgTW9uZGF5LCAxMiBKYW51
YXJ5IDE5NzAgMTg6MDA6MDAgVVRDCisgICAgbW9ja2VkX2NoZWNrX291dHB1dC5yZXR1cm5fdmFs
dWUgPSBiJycnCittZXJnZV9wcl9IIEggOTkzNjAwIF9tb25fCittZXJnZV9wcl9HIEcgOTA3MjAw
IF9zdW5fCittZXJnZV9wcl9GIEYgODIwODAwIF9zYXRfCittZXJnZV9wcl9FIEUgNzM0NDAwIF9m
cmlfCittZXJnZV9wcl9EIEQgNjQ4MDAwIF90aHVfCittZXJnZV9wcl9DIEMgNTYxNjAwIF93ZWRf
CittZXJnZV9wcl9CIEIgNDc1MjAwIF90aHVfCisnJycKKyAgICB0YWdnZWRfcmV2aXNvbnMgPSBy
ZXZsaXN0LmdldF9lcG9jaF9yZXZpc2lvbnMoZXBvY2gsIHVudGlsLCA1KQorICAgIGFzc2VydCB0
YWdnZWRfcmV2aXNvbnMubmV4dCgpID09ICdHJworICAgIGFzc2VydCB0YWdnZWRfcmV2aXNvbnMu
bmV4dCgpID09ICdGJworICAgIGFzc2VydCB0YWdnZWRfcmV2aXNvbnMubmV4dCgpID09ICdFJwor
ICAgIGFzc2VydCB0YWdnZWRfcmV2aXNvbnMubmV4dCgpID09ICdEJworICAgIGFzc2VydCB0YWdn
ZWRfcmV2aXNvbnMubmV4dCgpID09ICdDJworICAgIGFzc2VydCBsZW4obGlzdCh0YWdnZWRfcmV2
aXNvbnMpKSA9PSAwICAjIGdlbmVyYXRvciBleGhhdXN0ZWQKKworCisgICAgIyBjaGVjazogbWF4
X2NvdW50IHdpdGggbGVzcyByZXR1cm5lZCBjYW5kaWRhdGVzIGl0ZW1zIHRoYW4gdGhlIG5lZWRl
ZAorICAgICMKKyAgICAjICAgICAgIG1vbiAgdHVlICAgd2VkICAgdGh1ICAgZnJpICAgc2F0ICAg
c3VuICAgbW9uCisgICAgIyAgICAgICAgICB8ICAgICB8ICAgICB8ICAgICB8ICAgICB8ICAgICB8
ICAgICB8CisgICAgIyAgICAgICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLUYtLS0tLUct
LS0tLS1ILS0tCisgICAgIyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIF4KKyAgICAjICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHVudGlsCisgICAgIyAgICAgICBtYXhfY291bnQ6IDU7IGVwb2NoOiAxZAorICAg
ICMgICAgICAgRXhwZWN0ZWQgcmVzdWx0OiBHLEYKKyAgICBlcG9jaCA9IDg2NDAwCisgICAgdW50
aWwgPSAxMDE1MjAwICAgIyBNb25kYXksIDEyIEphbnVhcnkgMTk3MCAxODowMDowMCBVVEMKKyAg
ICBtb2NrZWRfY2hlY2tfb3V0cHV0LnJldHVybl92YWx1ZSA9IGInJycKK21lcmdlX3ByX0ggSCA5
OTM2MDAgX21vbl8KK21lcmdlX3ByX0cgRyA5MDcyMDAgX3N1bl8KK21lcmdlX3ByX0YgRiA4MjA4
MDAgX3NhdF8KKycnJworICAgIHRhZ2dlZF9yZXZpc29ucyA9IHJldmxpc3QuZ2V0X2Vwb2NoX3Jl
dmlzaW9ucyhlcG9jaCwgdW50aWwsIDUpCisgICAgYXNzZXJ0IHRhZ2dlZF9yZXZpc29ucy5uZXh0
KCkgPT0gJ0cnCisgICAgYXNzZXJ0IHRhZ2dlZF9yZXZpc29ucy5uZXh0KCkgPT0gJ0YnCisgICAg
YXNzZXJ0IGxlbihsaXN0KHRhZ2dlZF9yZXZpc29ucykpID09IDAgICMgZ2VuZXJhdG9yIGV4aGF1
c3RlZAorCisKKyAgICAjIGNoZWNrOiBpbml0aWFsIHVudGlsIHZhbHVlIGlzIG9uIGFuIGVwb2No
IGJvdW5kYXJ5CisgICAgIworICAgICMgICAgICAgICAgICAgICAgICAgICAgc3VkICBtb24gICB0
dWUgICB3ZWQgICB0aHUKKyAgICAjICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgIHwgICAg
IHwgICAgIHwKKyAgICAjICAgICAgICAgICAgICAgICAgICAgIC1GLUctLS0tLS0tLS0tLS0tLS0t
LUgKKyAgICAjICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KKyAg
ICAjICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnRpbAorICAgICMg
ICAgICAgbWF4X2NvdW50OiAzOyBlcG9jaDogMWQKKyAgICAjICAgICAgIEV4cGVjdGVkIHJlc3Vs
dDogRyxGCisgICAgIyAgICAgICAqIEggaXMgc2tpcHBlZCBiZWNhdXNlIGJlY2F1c2UgdGhlIGVw
b2NoCisgICAgIyAgICAgICAgIGludGVydmFsIGlzIGRlZmluZWQgYXMgYW4gcmlnaHQtb3BlbiBp
bnRlcnZhbAorICAgICMgICAgICAgKiBHIGlzIGluY2x1ZGVkIGJ1dCBpbiB0aGUgTW9uZGF5J3Mg
aW50ZXJ2YWwKKyAgICAjICAgICAgICogRiBpcyBpbmNsdWRlZCBiZWNhdXNlIGl0IGlzIHRoZSB1
bmlxdWUgY2FuZGlkYXRlCisgICAgIyAgICAgICAgIGluY2x1ZGVkIGluIHRoZSBTdW5kYXkncyBp
bnRlcnZhbAorICAgIGVwb2NoID0gODY0MDAKKyAgICB1bnRpbCA9IDEyOTYwMDAgICMgVGh1cnNk
YXksIDE1IEphbnVhcnkgMTk3MCAwOjAwOjAwIFVUQworICAgIG1vY2tlZF9jaGVja19vdXRwdXQu
cmV0dXJuX3ZhbHVlID0gYicnJworbWVyZ2VfcHJfSCBIIDEyOTYwMDAgX3dlZF8KK21lcmdlX3By
X0cgRyA5NTA0MDAgX21vbl8KK21lcmdlX3ByX0YgRiA5MjE2MDAgX3N1ZF8KKycnJworICAgIHRh
Z2dlZF9yZXZpc29ucyA9IHJldmxpc3QuZ2V0X2Vwb2NoX3JldmlzaW9ucyhlcG9jaCwgdW50aWws
IDMpCisgICAgYXNzZXJ0IHRhZ2dlZF9yZXZpc29ucy5uZXh0KCkgPT0gJ0cnCisgICAgYXNzZXJ0
IHRhZ2dlZF9yZXZpc29ucy5uZXh0KCkgPT0gJ0YnCisgICAgYXNzZXJ0IGxlbihsaXN0KHRhZ2dl
ZF9yZXZpc29ucykpID09IDAgICMgZ2VuZXJhdG9yIGV4aGF1c3RlZAorCisKKyAgICAjIGNoZWNr
OiB1bnRpbCBhbGlnbmVkIHdpdGggTW9uZGF5LCA1IEphbnVhcnkgMTk3MCAwOjAwOjAwICgzNDU2
MDApCisgICAgIyAgICAgICAgbm90IHdpdGggVGh1cnNkYXksIDEgSmFudWFyeSAxOTcwIDA6MDA6
MDAgKDApCisgICAgIworICAgICMgICAgICAgICAgICAgICAgICAgICAgc3VkICBtb24gICB0dWUg
ICB3ZWQgICB0aHUKKyAgICAjICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgIHwgICAgIHwg
ICAgIHwKKyAgICAjICAgICAgICAgICAgICAgICAgICAgIC1GLUctLS0tLS0tLS0tLS0tLUgtLS0K
KyAgICAjICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KKyAgICAj
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnRpbAorICAgICMgICAg
ICAgbWF4X2NvdW50OiAxOyBlcG9jaDogMXcKKyAgICAjICAgICAgIEV4cGVjdGVkIHJlc3VsdDog
RgorICAgIGVwb2NoID0gNjA0ODAwCisgICAgbW9kYXkgPSA5NTA0MDAgICMgTW9uZGF5LCAxMiBK
YW51YXJ5IDE5NzAgMDA6MDA6MDAgVVRDCisgICAgdW50aWwgPSBtb2RheSArIDM0NTYwMCAgIyAx
Mjk2MDAwLiBUaHVyc2RheSwgMTUgSmFudWFyeSAxOTcwIDA6MDA6MDAgVVRDCisgICAgbW9ja2Vk
X2NoZWNrX291dHB1dC5yZXR1cm5fdmFsdWUgPSBiJycnCittZXJnZV9wcl9IIEggMTE4MDgwMCBf
d2VkXworbWVyZ2VfcHJfRyBHIDk1MDQwMCBfbW9uXworbWVyZ2VfcHJfRiBGIDkyMTYwMCBfc3Vk
XworJycnCisgICAgdGFnZ2VkX3Jldmlzb25zID0gcmV2bGlzdC5nZXRfZXBvY2hfcmV2aXNpb25z
KGVwb2NoLCB1bnRpbCwgMSkKKyAgICBhc3NlcnQgdGFnZ2VkX3Jldmlzb25zLm5leHQoKSA9PSAn
RicKKyAgICBhc3NlcnQgbGVuKGxpc3QodGFnZ2VkX3Jldmlzb25zKSkgPT0gMCAgIyBnZW5lcmF0
b3IgZXhoYXVzdGVkCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3dwdC90ZXN0cy90ZXN0X3J1bi5weSBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0L3Rlc3RzL3Rlc3RfcnVuLnB5
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLmVmNThlYzQxYjJiNGNmYzE0OTU1YjcwMTYyN2QwNDdhZjc4ZjI5YmMKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3dwdC90ZXN0cy90ZXN0X3J1bi5weQpAQCAtMCwwICsxLDczIEBACitpbXBvcnQg
bW9jaworaW1wb3J0IHRlbXBmaWxlCitpbXBvcnQgc2h1dGlsCitpbXBvcnQgc3lzCisKK2ltcG9y
dCBweXRlc3QKKworZnJvbSB0b29scy53cHQgaW1wb3J0IHJ1bgorZnJvbSB0b29scyBpbXBvcnQg
bG9jYWxwYXRocyAgIyBub3FhOiBGNDAxCitmcm9tIHdwdHJ1bm5lci5icm93c2VycyBpbXBvcnQg
cHJvZHVjdF9saXN0CisKKworQHB5dGVzdC5maXh0dXJlKHNjb3BlPSJtb2R1bGUiKQorZGVmIHZl
bnYoKToKKyAgICBmcm9tIHRvb2xzLndwdCBpbXBvcnQgdmlydHVhbGVudgorCisgICAgY2xhc3Mg
VmlydHVhbGVudih2aXJ0dWFsZW52LlZpcnR1YWxlbnYpOgorICAgICAgICBkZWYgX19pbml0X18o
c2VsZik6CisgICAgICAgICAgICBzZWxmLnBhdGggPSB0ZW1wZmlsZS5ta2R0ZW1wKCkKKyAgICAg
ICAgICAgIHNlbGYuc2tpcF92aXJ0dWFsZW52X3NldHVwID0gRmFsc2UKKworICAgICAgICBkZWYg
Y3JlYXRlKHNlbGYpOgorICAgICAgICAgICAgcmV0dXJuCisKKyAgICAgICAgZGVmIGFjdGl2YXRl
KHNlbGYpOgorICAgICAgICAgICAgcmV0dXJuCisKKyAgICAgICAgZGVmIHN0YXJ0KHNlbGYpOgor
ICAgICAgICAgICAgcmV0dXJuCisKKyAgICAgICAgZGVmIGluc3RhbGwoc2VsZiwgKnJlcXVpcmVt
ZW50cyk6CisgICAgICAgICAgICByZXR1cm4KKworICAgICAgICBkZWYgaW5zdGFsbF9yZXF1aXJl
bWVudHMoc2VsZiwgcmVxdWlyZW1lbnRzX3BhdGgpOgorICAgICAgICAgICAgcmV0dXJuCisKKyAg
ICB2ZW52ID0gVmlydHVhbGVudigpCisgICAgeWllbGQgdmVudgorCisgICAgc2h1dGlsLnJtdHJl
ZSh2ZW52LnBhdGgpCisKKworQHB5dGVzdC5maXh0dXJlKHNjb3BlPSJtb2R1bGUiKQorZGVmIGxv
Z2dlcigpOgorICAgIHJ1bi5zZXR1cF9sb2dnaW5nKHt9KQorCisKK0BweXRlc3QubWFyay5wYXJh
bWV0cml6ZSgicGxhdGZvcm0iLCBbIldpbmRvd3MiLCAiTGludXgiLCAiRGFyd2luIl0pCitkZWYg
dGVzdF9jaGVja19lbnZpcm9uX2ZhaWwocGxhdGZvcm0pOgorICAgIG1fb3BlbiA9IG1vY2subW9j
a19vcGVuKHJlYWRfZGF0YT1iIiIpCisKKyAgICB3aXRoIG1vY2sucGF0Y2gub2JqZWN0KHJ1biwg
Im9wZW4iLCBtX29wZW4pOgorICAgICAgICB3aXRoIG1vY2sucGF0Y2gub2JqZWN0KHJ1bi5wbGF0
Zm9ybSwgInVuYW1lIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm5fdmFs
dWU9KHBsYXRmb3JtLCAiIiwgIiIsICIiLCAiIiwgIiIpKToKKyAgICAgICAgICAgIHdpdGggcHl0
ZXN0LnJhaXNlcyhydW4uV3B0cnVuRXJyb3IpIGFzIGV4Y2luZm86CisgICAgICAgICAgICAgICAg
cnVuLmNoZWNrX2Vudmlyb24oImZvbyIpCisKKyAgICBhc3NlcnQgIndwdCBtYWtlLWhvc3RzLWZp
bGUiIGluIHN0cihleGNpbmZvLnZhbHVlKQorCisKK0BweXRlc3QubWFyay5wYXJhbWV0cml6ZSgi
cHJvZHVjdCIsIHByb2R1Y3RfbGlzdCkKK2RlZiB0ZXN0X3NldHVwX3dwdHJ1bm5lcih2ZW52LCBs
b2dnZXIsIHByb2R1Y3QpOgorICAgIGlmIHByb2R1Y3QgPT0gImZpcmVmb3hfYW5kcm9pZCI6Cisg
ICAgICAgIHB5dGVzdC5za2lwKCJBbmRyb2lkIGVtdWxhdG9yIGRvZXNuJ3Qgd29yayBvbiBkb2Nr
ZXIiKQorICAgIHBhcnNlciA9IHJ1bi5jcmVhdGVfcGFyc2VyKCkKKyAgICBrd2FyZ3MgPSB2YXJz
KHBhcnNlci5wYXJzZV9hcmdzKFsiLS1jaGFubmVsPW5pZ2h0bHkiLCBwcm9kdWN0XSkpCisgICAg
a3dhcmdzWyJwcm9tcHQiXSA9IEZhbHNlCisgICAgIyBIYWNrIHRvIGdldCBhIHJlYWwgZXhpc3Rp
bmcgcGF0aAorICAgIGt3YXJnc1siYmluYXJ5Il0gPSBzeXMuYXJndlswXQorICAgIGt3YXJnc1si
d2ViZHJpdmVyX2JpbmFyeSJdID0gc3lzLmFyZ3ZbMF0KKyAgICBpZiBrd2FyZ3NbInByb2R1Y3Qi
XSA9PSAic2F1Y2UiOgorICAgICAgICBrd2FyZ3NbInByb2R1Y3QiXSA9ICJzYXVjZTpmaXJlZm94
OjYzIgorICAgIHJ1bi5zZXR1cF93cHRydW5uZXIodmVudiwgKiprd2FyZ3MpCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdC90
ZXN0cy90ZXN0X3Rlc3RmaWxlcy5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvd3B0L3Rlc3RzL3Rlc3RfdGVzdGZpbGVzLnB5Cm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjMzMTM1ZGZkYzJkNWI1YWUwYzcyMmRjZTM0ZjM1YjU4MTI3YmYzMzkKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dw
dC90ZXN0cy90ZXN0X3Rlc3RmaWxlcy5weQpAQCAtMCwwICsxLDEzIEBACitmcm9tIG1vY2sgaW1w
b3J0IHBhdGNoCisKK2Zyb20gdG9vbHMud3B0IGltcG9ydCB0ZXN0ZmlsZXMKKworCitkZWYgdGVz
dF9nZXRyZXZpc2hfa3dhcmcoKToKKyAgICBhc3NlcnQgdGVzdGZpbGVzLmdldF9yZXZpc2gocmV2
aXNoPXUiYWJjZGVmIikgPT0gYiJhYmNkZWYiCisgICAgYXNzZXJ0IHRlc3RmaWxlcy5nZXRfcmV2
aXNoKHJldmlzaD1iImFiY2RlZiIpID09IGIiYWJjZGVmIgorCisKK2RlZiB0ZXN0X2dldHJldmlz
aF9pbXBsaWNpdCgpOgorICAgIHdpdGggcGF0Y2goInRvb2xzLndwdC50ZXN0ZmlsZXMuYnJhbmNo
X3BvaW50IiwgcmV0dXJuX3ZhbHVlPXUiYmFzZSIpOgorICAgICAgICBhc3NlcnQgdGVzdGZpbGVz
LmdldF9yZXZpc2goKSA9PSBiImJhc2UuLkhFQUQiCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdC90ZXN0cy90ZXN0X3dwdC5w
eSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0
L3Rlc3RzL3Rlc3Rfd3B0LnB5CmluZGV4IDE2ZDI4NmQzODJjNzE3OWFkMzY4MDdiNDc2MzhkODJi
NGI0NmYyODYuLjY1Njk1ODBlOWZmNDcxNzg0ZTMwN2I3ZTg0NTU1OTM1ZGVjOTk1ODYgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
d3B0L3Rlc3RzL3Rlc3Rfd3B0LnB5CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0L3Rlc3RzL3Rlc3Rfd3B0LnB5CkBAIC0zMCwyNyArMzAs
NTQgQEAgZGVmIGlzX3BvcnRfODAwMF9pbl91c2UoKToKICAgICByZXR1cm4gRmFsc2UKIAogCi1A
cHl0ZXN0LmZpeHR1cmUoc2NvcGU9Im1vZHVsZSIpCitkZWYgZ2V0X3BlcnNpc3RlbnRfbWFuaWZl
c3RfcGF0aCgpOgorICAgIGRpcmVjdG9yeSA9ICgifi9tZXRhIiBpZiBvcy5lbnZpcm9uLmdldCgn
VFJBVklTJykgPT0gInRydWUiCisgICAgICAgICAgICAgICAgIGVsc2Ugd3B0LmxvY2FscGF0aHMu
cmVwb19yb290KQorICAgIHJldHVybiBvcy5wYXRoLmpvaW4oZGlyZWN0b3J5LCAiTUFOSUZFU1Qu
anNvbiIpCisKKworQHB5dGVzdC5maXh0dXJlKHNjb3BlPSJtb2R1bGUiLCBhdXRvdXNlPVRydWUp
CitkZWYgaW5pdF9tYW5pZmVzdCgpOgorICAgIHdpdGggcHl0ZXN0LnJhaXNlcyhTeXN0ZW1FeGl0
KSBhcyBleGNpbmZvOgorICAgICAgICB3cHQubWFpbihhcmd2PVsibWFuaWZlc3QiLCAiLS1uby1k
b3dubG9hZCIsCisgICAgICAgICAgICAgICAgICAgICAgICItLXBhdGgiLCBnZXRfcGVyc2lzdGVu
dF9tYW5pZmVzdF9wYXRoKCldKQorICAgIGFzc2VydCBleGNpbmZvLnZhbHVlLmNvZGUgPT0gMAor
CisKK0BweXRlc3QuZml4dHVyZQogZGVmIG1hbmlmZXN0X2RpcigpOgotICAgIGRlZiB1cGRhdGVf
bWFuaWZlc3QoKToKLSAgICAgICAgd2l0aCBweXRlc3QucmFpc2VzKFN5c3RlbUV4aXQpIGFzIGV4
Y2luZm86Ci0gICAgICAgICAgICB3cHQubWFpbihhcmd2PVsibWFuaWZlc3QiLCAiLS1uby1kb3du
bG9hZCIsICItLXBhdGgiLCBvcy5wYXRoLmpvaW4ocGF0aCwgIk1BTklGRVNULmpzb24iKV0pCi0g
ICAgICAgIGFzc2VydCBleGNpbmZvLnZhbHVlLmNvZGUgPT0gMAotCi0gICAgaWYgb3MuZW52aXJv
bi5nZXQoJ1RSQVZJUycpID09ICJ0cnVlIjoKLSAgICAgICAgcGF0aCA9ICJ+L21ldGEiCi0gICAg
ICAgIHVwZGF0ZV9tYW5pZmVzdCgpCisgICAgdHJ5OgorICAgICAgICBwYXRoID0gdGVtcGZpbGUu
bWtkdGVtcCgpCisgICAgICAgIHNodXRpbC5jb3B5ZmlsZShnZXRfcGVyc2lzdGVudF9tYW5pZmVz
dF9wYXRoKCksCisgICAgICAgICAgICAgICAgICAgICAgICBvcy5wYXRoLmpvaW4ocGF0aCwgIk1B
TklGRVNULmpzb24iKSkKICAgICAgICAgeWllbGQgcGF0aAotICAgIGVsc2U6Ci0gICAgICAgIHRy
eToKLSAgICAgICAgICAgIHBhdGggPSB0ZW1wZmlsZS5ta2R0ZW1wKCkKLSAgICAgICAgICAgIG9s
ZF9wYXRoID0gb3MucGF0aC5qb2luKHdwdC5sb2NhbHBhdGhzLnJlcG9fcm9vdCwgIk1BTklGRVNU
Lmpzb24iKQotICAgICAgICAgICAgaWYgb3MucGF0aC5leGlzdHMob3MucGF0aC5qb2luKHdwdC5s
b2NhbHBhdGhzLnJlcG9fcm9vdCwgIk1BTklGRVNULmpzb24iKSk6Ci0gICAgICAgICAgICAgICAg
c2h1dGlsLmNvcHlmaWxlKG9sZF9wYXRoLCBvcy5wYXRoLmpvaW4ocGF0aCwgIk1BTklGRVNULmpz
b24iKSkKLSAgICAgICAgICAgIHVwZGF0ZV9tYW5pZmVzdCgpCi0gICAgICAgICAgICB5aWVsZCBw
YXRoCi0gICAgICAgIGZpbmFsbHk6Ci0gICAgICAgICAgICBzaHV0aWwucm10cmVlKHBhdGgpCisg
ICAgZmluYWxseToKKyAgICAgICAgc2h1dGlsLnJtdHJlZShwYXRoKQorCisKK0BweXRlc3QuZml4
dHVyZQorZGVmIHRlbXBfdGVzdCgpOgorICAgIG9zLm1ha2VkaXJzKCIuLi8uLi8udG9vbHMtdGVz
dHMiKQorICAgIHRlc3RfY291bnQgPSB7InZhbHVlIjogMH0KKworICAgIGRlZiBtYWtlX3Rlc3Qo
Ym9keSk6CisgICAgICAgIHRlc3RfY291bnRbInZhbHVlIl0gKz0gMQorICAgICAgICB0ZXN0X25h
bWUgPSAiLnRvb2xzLXRlc3RzLyVzLmh0bWwiICUgdGVzdF9jb3VudFsidmFsdWUiXQorICAgICAg
ICB0ZXN0X3BhdGggPSAiLi4vLi4vJXMiICUgdGVzdF9uYW1lCisKKyAgICAgICAgd2l0aCBvcGVu
KHRlc3RfcGF0aCwgInciKSBhcyBoYW5kbGU6CisgICAgICAgICAgICBoYW5kbGUud3JpdGUoIiIi
CisgICAgICAgICAgICA8IURPQ1RZUEUgaHRtbD4KKyAgICAgICAgICAgIDxzY3JpcHQgc3JjPSIv
cmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKyAgICAgICAgICAgIDxzY3JpcHQg
c3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKyAgICAgICAg
ICAgIDxzY3JpcHQ+JXM8L3NjcmlwdD4KKyAgICAgICAgICAgICIiIiAlIGJvZHkpCisKKyAgICAg
ICAgcmV0dXJuIHRlc3RfbmFtZQorCisgICAgeWllbGQgbWFrZV90ZXN0CisKKyAgICBzaHV0aWwu
cm10cmVlKCIuLi8uLi8udG9vbHMtdGVzdHMiKQogCiAKIGRlZiB0ZXN0X21pc3NpbmcoKToKQEAg
LTczLDcgKzEwMCw4IEBAIGRlZiB0ZXN0X2xpc3RfdGVzdHMobWFuaWZlc3RfZGlyKToKIAogICAg
IHdpdGggcHl0ZXN0LnJhaXNlcyhTeXN0ZW1FeGl0KSBhcyBleGNpbmZvOgogICAgICAgICB3cHQu
bWFpbihhcmd2PVsicnVuIiwgIi0tbWV0YWRhdGEiLCBtYW5pZmVzdF9kaXIsICItLWxpc3QtdGVz
dHMiLAotICAgICAgICAgICAgICAgICAgICAgICAiLS15ZXMiLCAiY2hyb21lIiwgIi9kb20vbm9k
ZXMvRWxlbWVudC10YWdOYW1lLmh0bWwiXSkKKyAgICAgICAgICAgICAgICAgICAgICAgIi0tY2hh
bm5lbCIsICJkZXYiLCAiLS15ZXMiLCAiY2hyb21lIiwKKyAgICAgICAgICAgICAgICAgICAgICAg
Ii9kb20vbm9kZXMvRWxlbWVudC10YWdOYW1lLmh0bWwiXSkKICAgICBhc3NlcnQgZXhjaW5mby52
YWx1ZS5jb2RlID09IDAKIAogCkBAIC0xMzAsNTEgKzE1OCw2IEBAIGRlZiB0ZXN0X2xpc3RfdGVz
dHNfaW52YWxpZF9tYW5pZmVzdChtYW5pZmVzdF9kaXIpOgogCiBAcHl0ZXN0Lm1hcmsuc2xvdwog
QHB5dGVzdC5tYXJrLnJlbW90ZV9uZXR3b3JrCi1AcHl0ZXN0Lm1hcmsueGZhaWwoc3lzLnBsYXRm
b3JtID09ICJ3aW4zMiIsCi0gICAgICAgICAgICAgICAgICAgcmVhc29uPSJUZXN0cyBjdXJyZW50
bHkgZG9uJ3Qgd29yayBvbiBXaW5kb3dzIGZvciBwYXRoIHJlYXNvbnMiKQotZGVmIHRlc3RfcnVu
X2ZpcmVmb3gobWFuaWZlc3RfZGlyKToKLSAgICAjIFRPRE86IEl0IHNlZW1zIGxpa2UgdGhlcmUn
cyBhIGJ1ZyBpbiBhcmdwYXJzZSB0aGF0IG1ha2VzIHRoaXMgYXJndW1lbnQgb3JkZXIgcmVxdWly
ZWQKLSAgICAjIHNob3VsZCB0cnkgdG8gd29yayBhcm91bmQgdGhhdAotICAgIGlmIGlzX3BvcnRf
ODAwMF9pbl91c2UoKToKLSAgICAgICAgcHl0ZXN0LnNraXAoInBvcnQgODAwMCBhbHJlYWR5IGlu
IHVzZSIpCi0KLSAgICBvcy5lbnZpcm9uWyJNT1pfSEVBRExFU1MiXSA9ICIxIgotICAgIHRyeToK
LSAgICAgICAgaWYgc3lzLnBsYXRmb3JtID09ICJkYXJ3aW4iOgotICAgICAgICAgICAgZnhfcGF0
aCA9IG9zLnBhdGguam9pbih3cHQubG9jYWxwYXRocy5yZXBvX3Jvb3QsICJfdmVudiIsICJicm93
c2VycyIsICJGaXJlZm94IE5pZ2h0bHkuYXBwIikKLSAgICAgICAgZWxzZToKLSAgICAgICAgICAg
IGZ4X3BhdGggPSBvcy5wYXRoLmpvaW4od3B0LmxvY2FscGF0aHMucmVwb19yb290LCAiX3ZlbnYi
LCAiYnJvd3NlcnMiLCAiZmlyZWZveCIpCi0gICAgICAgIGlmIG9zLnBhdGguZXhpc3RzKGZ4X3Bh
dGgpOgotICAgICAgICAgICAgc2h1dGlsLnJtdHJlZShmeF9wYXRoKQotICAgICAgICB3aXRoIHB5
dGVzdC5yYWlzZXMoU3lzdGVtRXhpdCkgYXMgZXhjaW5mbzoKLSAgICAgICAgICAgIHdwdC5tYWlu
KGFyZ3Y9WyJydW4iLCAiLS1uby1wYXVzZSIsICItLWluc3RhbGwtYnJvd3NlciIsICItLXllcyIs
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAiLS1tZXRhZGF0YSIsIG1hbmlmZXN0X2RpciwK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICJmaXJlZm94IiwgIi9kb20vbm9kZXMvRWxlbWVu
dC10YWdOYW1lLmh0bWwiXSkKLSAgICAgICAgYXNzZXJ0IG9zLnBhdGguZXhpc3RzKGZ4X3BhdGgp
Ci0gICAgICAgIHNodXRpbC5ybXRyZWUoZnhfcGF0aCkKLSAgICAgICAgYXNzZXJ0IGV4Y2luZm8u
dmFsdWUuY29kZSA9PSAwCi0gICAgZmluYWxseToKLSAgICAgICAgZGVsIG9zLmVudmlyb25bIk1P
Wl9IRUFETEVTUyJdCi0KLQotQHB5dGVzdC5tYXJrLnNsb3cKLUBweXRlc3QubWFyay54ZmFpbChz
eXMucGxhdGZvcm0gPT0gIndpbjMyIiwKLSAgICAgICAgICAgICAgICAgICByZWFzb249IlRlc3Rz
IGN1cnJlbnRseSBkb24ndCB3b3JrIG9uIFdpbmRvd3MgZm9yIHBhdGggcmVhc29ucyIpCi1kZWYg
dGVzdF9ydW5fY2hyb21lKG1hbmlmZXN0X2Rpcik6Ci0gICAgaWYgaXNfcG9ydF84MDAwX2luX3Vz
ZSgpOgotICAgICAgICBweXRlc3Quc2tpcCgicG9ydCA4MDAwIGFscmVhZHkgaW4gdXNlIikKLQot
ICAgIHdpdGggcHl0ZXN0LnJhaXNlcyhTeXN0ZW1FeGl0KSBhcyBleGNpbmZvOgotICAgICAgICB3
cHQubWFpbihhcmd2PVsicnVuIiwgIi0teWVzIiwgIi0tbm8tcGF1c2UiLCAiLS1iaW5hcnktYXJn
IiwgImhlYWRsZXNzIiwKLSAgICAgICAgICAgICAgICAgICAgICAgIi0tbWV0YWRhdGEiLCBtYW5p
ZmVzdF9kaXIsCi0gICAgICAgICAgICAgICAgICAgICAgICJjaHJvbWUiLCAiL2RvbS9ub2Rlcy9F
bGVtZW50LXRhZ05hbWUuaHRtbCJdKQotICAgIGFzc2VydCBleGNpbmZvLnZhbHVlLmNvZGUgPT0g
MAotCi0KLUBweXRlc3QubWFyay5zbG93Ci1AcHl0ZXN0Lm1hcmsucmVtb3RlX25ldHdvcmsKLUBw
eXRlc3QubWFyay54ZmFpbChzeXMucGxhdGZvcm0gPT0gIndpbjMyIiwKLSAgICAgICAgICAgICAg
ICAgICByZWFzb249IlRlc3RzIGN1cnJlbnRseSBkb24ndCB3b3JrIG9uIFdpbmRvd3MgZm9yIHBh
dGggcmVhc29ucyIpCiBkZWYgdGVzdF9ydW5femVyb190ZXN0cygpOgogICAgICIiIkEgdGVzdCBl
eGVjdXRpb24gZGVzY3JpYmluZyB6ZXJvIHRlc3RzIHNob3VsZCBiZSByZXBvcnRlZCBhcyBhbiBl
cnJvcgogICAgIGV2ZW4gaW4gdGhlIHByZXNlbmNlIG9mIHRoZSBgLS1uby1mYWlsLW9uLXVuZXhw
ZWN0ZWRgIG9wdGlvbi4iIiIKQEAgLTE4MywxOSArMTY2LDE4IEBAIGRlZiB0ZXN0X3J1bl96ZXJv
X3Rlc3RzKCk6CiAKICAgICB3aXRoIHB5dGVzdC5yYWlzZXMoU3lzdGVtRXhpdCkgYXMgZXhjaW5m
bzoKICAgICAgICAgd3B0Lm1haW4oYXJndj1bInJ1biIsICItLXllcyIsICItLW5vLXBhdXNlIiwg
Ii0tYmluYXJ5LWFyZyIsICJoZWFkbGVzcyIsCi0gICAgICAgICAgICAgICAgICAgICAgICJjaHJv
bWUiLCAiL25vbi1leGlzdGVudC1kaXIvbm9uLWV4aXN0ZW50LWZpbGUuaHRtbCJdKQorICAgICAg
ICAgICAgICAgICAgICAgICAiLS1jaGFubmVsIiwgImRldiIsICJjaHJvbWUiLAorICAgICAgICAg
ICAgICAgICAgICAgICAiL25vbi1leGlzdGVudC1kaXIvbm9uLWV4aXN0ZW50LWZpbGUuaHRtbCJd
KQogICAgIGFzc2VydCBleGNpbmZvLnZhbHVlLmNvZGUgIT0gMAogCiAgICAgd2l0aCBweXRlc3Qu
cmFpc2VzKFN5c3RlbUV4aXQpIGFzIGV4Y2luZm86CiAgICAgICAgIHdwdC5tYWluKGFyZ3Y9WyJy
dW4iLCAiLS15ZXMiLCAiLS1uby1wYXVzZSIsICItLWJpbmFyeS1hcmciLCAiaGVhZGxlc3MiLAot
ICAgICAgICAgICAgICAgICAgICAgICAiLS1uby1mYWlsLW9uLXVuZXhwZWN0ZWQiLAorICAgICAg
ICAgICAgICAgICAgICAgICAiLS1uby1mYWlsLW9uLXVuZXhwZWN0ZWQiLCAiLS1jaGFubmVsIiwg
ImRldiIsCiAgICAgICAgICAgICAgICAgICAgICAgICJjaHJvbWUiLCAiL25vbi1leGlzdGVudC1k
aXIvbm9uLWV4aXN0ZW50LWZpbGUuaHRtbCJdKQogICAgIGFzc2VydCBleGNpbmZvLnZhbHVlLmNv
ZGUgIT0gMAogCiBAcHl0ZXN0Lm1hcmsuc2xvdwogQHB5dGVzdC5tYXJrLnJlbW90ZV9uZXR3b3Jr
Ci1AcHl0ZXN0Lm1hcmsueGZhaWwoc3lzLnBsYXRmb3JtID09ICJ3aW4zMiIsCi0gICAgICAgICAg
ICAgICAgICAgcmVhc29uPSJUZXN0cyBjdXJyZW50bHkgZG9uJ3Qgd29yayBvbiBXaW5kb3dzIGZv
ciBwYXRoIHJlYXNvbnMiKQogZGVmIHRlc3RfcnVuX2ZhaWxpbmdfdGVzdCgpOgogICAgICIiIkZh
aWxpbmcgdGVzdHMgc2hvdWxkIGJlIHJlcG9ydGVkIHdpdGggYSBub24temVybyBleGl0IHN0YXR1
cyB1bmxlc3MgdGhlCiAgICAgYC0tbm8tZmFpbC1vbi11bmV4cGVjdGVkYCBvcHRpb24gaGFzIGJl
ZW4gc3BlY2lmaWVkLiIiIgpAQCAtMjA3LDIyICsxODksNTMgQEAgZGVmIHRlc3RfcnVuX2ZhaWxp
bmdfdGVzdCgpOgogCiAgICAgd2l0aCBweXRlc3QucmFpc2VzKFN5c3RlbUV4aXQpIGFzIGV4Y2lu
Zm86CiAgICAgICAgIHdwdC5tYWluKGFyZ3Y9WyJydW4iLCAiLS15ZXMiLCAiLS1uby1wYXVzZSIs
ICItLWJpbmFyeS1hcmciLCAiaGVhZGxlc3MiLAotICAgICAgICAgICAgICAgICAgICAgICAiY2hy
b21lIiwgZmFpbGluZ190ZXN0XSkKKyAgICAgICAgICAgICAgICAgICAgICAgIi0tY2hhbm5lbCIs
ICJkZXYiLCAiY2hyb21lIiwgZmFpbGluZ190ZXN0XSkKICAgICBhc3NlcnQgZXhjaW5mby52YWx1
ZS5jb2RlICE9IDAKIAogICAgIHdpdGggcHl0ZXN0LnJhaXNlcyhTeXN0ZW1FeGl0KSBhcyBleGNp
bmZvOgogICAgICAgICB3cHQubWFpbihhcmd2PVsicnVuIiwgIi0teWVzIiwgIi0tbm8tcGF1c2Ui
LCAiLS1iaW5hcnktYXJnIiwgImhlYWRsZXNzIiwKLSAgICAgICAgICAgICAgICAgICAgICAgIi0t
bm8tZmFpbC1vbi11bmV4cGVjdGVkIiwKKyAgICAgICAgICAgICAgICAgICAgICAgIi0tbm8tZmFp
bC1vbi11bmV4cGVjdGVkIiwgIi0tY2hhbm5lbCIsICJkZXYiLAogICAgICAgICAgICAgICAgICAg
ICAgICAiY2hyb21lIiwgZmFpbGluZ190ZXN0XSkKICAgICBhc3NlcnQgZXhjaW5mby52YWx1ZS5j
b2RlID09IDAKIAogCiBAcHl0ZXN0Lm1hcmsuc2xvdwogQHB5dGVzdC5tYXJrLnJlbW90ZV9uZXR3
b3JrCi1AcHl0ZXN0Lm1hcmsueGZhaWwoc3lzLnBsYXRmb3JtID09ICJ3aW4zMiIsCi0gICAgICAg
ICAgICAgICAgICAgcmVhc29uPSJUZXN0cyBjdXJyZW50bHkgZG9uJ3Qgd29yayBvbiBXaW5kb3dz
IGZvciBwYXRoIHJlYXNvbnMiKQorZGVmIHRlc3RfcnVuX3ZlcmlmeV91bnN0YWJsZSh0ZW1wX3Rl
c3QpOgorICAgICIiIlVuc3RhYmxlIHRlc3RzIHNob3VsZCBiZSByZXBvcnRlZCB3aXRoIGEgbm9u
LXplcm8gZXhpdCBzdGF0dXMuIFN0YWJsZQorICAgIHRlc3RzIHNob3VsZCBiZSByZXBvcnRlZCB3
aXRoIGEgemVybyBleGl0IHN0YXR1cy4iIiIKKyAgICBpZiBpc19wb3J0XzgwMDBfaW5fdXNlKCk6
CisgICAgICAgIHB5dGVzdC5za2lwKCJwb3J0IDgwMDAgYWxyZWFkeSBpbiB1c2UiKQorICAgIHVu
c3RhYmxlX3Rlc3QgPSB0ZW1wX3Rlc3QoIiIiCisgICAgICAgIHRlc3QoZnVuY3Rpb24oKSB7Cisg
ICAgICAgICAgICBpZiAobG9jYWxTdG9yYWdlLmdldEl0ZW0oJ3dwdC11bnN0YWJsZS10ZXN0LWZs
YWcnKSkgeworICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoKTsKKyAgICAgICAgICAgIH0K
KworICAgICAgICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0oJ3dwdC11bnN0YWJsZS10ZXN0LWZs
YWcnLCAneCcpOworICAgICAgICB9LCAnbXkgdGVzdCcpOworICAgICIiIikKKworICAgIHdpdGgg
cHl0ZXN0LnJhaXNlcyhTeXN0ZW1FeGl0KSBhcyBleGNpbmZvOgorICAgICAgICB3cHQubWFpbihh
cmd2PVsicnVuIiwgIi0teWVzIiwgIi0tdmVyaWZ5IiwgIi0tYmluYXJ5LWFyZyIsICJoZWFkbGVz
cyIsCisgICAgICAgICAgICAgICAgICAgICAgICItLWNoYW5uZWwiLCAiZGV2IiwgImNocm9tZSIs
IHVuc3RhYmxlX3Rlc3RdKQorICAgIGFzc2VydCBleGNpbmZvLnZhbHVlLmNvZGUgIT0gMAorCisg
ICAgc3RhYmxlX3Rlc3QgPSB0ZW1wX3Rlc3QoInRlc3QoZnVuY3Rpb24oKSB7fSwgJ215IHRlc3Qn
KTsiKQorCisgICAgd2l0aCBweXRlc3QucmFpc2VzKFN5c3RlbUV4aXQpIGFzIGV4Y2luZm86Cisg
ICAgICAgIHdwdC5tYWluKGFyZ3Y9WyJydW4iLCAiLS15ZXMiLCAiLS12ZXJpZnkiLCAiLS1iaW5h
cnktYXJnIiwgImhlYWRsZXNzIiwKKyAgICAgICAgICAgICAgICAgICAgICAgIi0tY2hhbm5lbCIs
ICJkZXYiLCAiY2hyb21lIiwgc3RhYmxlX3Rlc3RdKQorICAgIGFzc2VydCBleGNpbmZvLnZhbHVl
LmNvZGUgPT0gMAorCisKK0BweXRlc3QubWFyay5zbG93CitAcHl0ZXN0Lm1hcmsucmVtb3RlX25l
dHdvcmsKIGRlZiB0ZXN0X2luc3RhbGxfY2hyb21lZHJpdmVyKCk6Ci0gICAgY2hyb21lZHJpdmVy
X3BhdGggPSBvcy5wYXRoLmpvaW4od3B0LmxvY2FscGF0aHMucmVwb19yb290LCAiX3ZlbnYiLCAi
YmluIiwgImNocm9tZWRyaXZlciIpCisgICAgaWYgc3lzLnBsYXRmb3JtID09ICJ3aW4zMiI6Cisg
ICAgICAgIGNocm9tZWRyaXZlcl9wYXRoID0gb3MucGF0aC5qb2luKHdwdC5sb2NhbHBhdGhzLnJl
cG9fcm9vdCwgIl92ZW52IiwgIlNjcmlwdHMiLCAiY2hyb21lZHJpdmVyLmV4ZSIpCisgICAgZWxz
ZToKKyAgICAgICAgY2hyb21lZHJpdmVyX3BhdGggPSBvcy5wYXRoLmpvaW4od3B0LmxvY2FscGF0
aHMucmVwb19yb290LCAiX3ZlbnYiLCAiYmluIiwgImNocm9tZWRyaXZlciIpCiAgICAgaWYgb3Mu
cGF0aC5leGlzdHMoY2hyb21lZHJpdmVyX3BhdGgpOgogICAgICAgICBvcy51bmxpbmsoY2hyb21l
ZHJpdmVyX3BhdGgpCiAgICAgd2l0aCBweXRlc3QucmFpc2VzKFN5c3RlbUV4aXQpIGFzIGV4Y2lu
Zm86CkBAIC0yMzUsNTcgKzI0OCw1NCBAQCBkZWYgdGVzdF9pbnN0YWxsX2Nocm9tZWRyaXZlcigp
OgogQHB5dGVzdC5tYXJrLnNsb3cKIEBweXRlc3QubWFyay5yZW1vdGVfbmV0d29yawogQHB5dGVz
dC5tYXJrLnhmYWlsKHN5cy5wbGF0Zm9ybSA9PSAid2luMzIiLAotICAgICAgICAgICAgICAgICAg
IHJlYXNvbj0iVGVzdHMgY3VycmVudGx5IGRvbid0IHdvcmsgb24gV2luZG93cyBmb3IgcGF0aCBy
ZWFzb25zIikKKyAgICAgICAgICAgICAgICAgICByZWFzb249Imh0dHBzOi8vZ2l0aHViLmNvbS93
ZWItcGxhdGZvcm0tdGVzdHMvd3B0L2lzc3Vlcy8xNzA3NCIpCiBkZWYgdGVzdF9pbnN0YWxsX2Zp
cmVmb3goKToKLQogICAgIGlmIHN5cy5wbGF0Zm9ybSA9PSAiZGFyd2luIjoKLSAgICAgICAgZnhf
cGF0aCA9IG9zLnBhdGguam9pbih3cHQubG9jYWxwYXRocy5yZXBvX3Jvb3QsICJfdmVudiIsICJi
cm93c2VycyIsICJGaXJlZm94IE5pZ2h0bHkuYXBwIikKKyAgICAgICAgZnhfcGF0aCA9IG9zLnBh
dGguam9pbih3cHQubG9jYWxwYXRocy5yZXBvX3Jvb3QsICJfdmVudiIsICJicm93c2VycyIsICJu
aWdodGx5IiwgIkZpcmVmb3ggTmlnaHRseS5hcHAiKQogICAgIGVsc2U6Ci0gICAgICAgIGZ4X3Bh
dGggPSBvcy5wYXRoLmpvaW4od3B0LmxvY2FscGF0aHMucmVwb19yb290LCAiX3ZlbnYiLCAiYnJv
d3NlcnMiLCAiZmlyZWZveCIpCisgICAgICAgIGZ4X3BhdGggPSBvcy5wYXRoLmpvaW4od3B0Lmxv
Y2FscGF0aHMucmVwb19yb290LCAiX3ZlbnYiLCAiYnJvd3NlcnMiLCAibmlnaHRseSIsICJmaXJl
Zm94IikKICAgICBpZiBvcy5wYXRoLmV4aXN0cyhmeF9wYXRoKToKICAgICAgICAgc2h1dGlsLnJt
dHJlZShmeF9wYXRoKQogICAgIHdpdGggcHl0ZXN0LnJhaXNlcyhTeXN0ZW1FeGl0KSBhcyBleGNp
bmZvOgotICAgICAgICB3cHQubWFpbihhcmd2PVsiaW5zdGFsbCIsICJmaXJlZm94IiwgImJyb3dz
ZXIiXSkKKyAgICAgICAgd3B0Lm1haW4oYXJndj1bImluc3RhbGwiLCAiZmlyZWZveCIsICJicm93
c2VyIiwgIi0tY2hhbm5lbD1uaWdodGx5Il0pCiAgICAgYXNzZXJ0IGV4Y2luZm8udmFsdWUuY29k
ZSA9PSAwCiAgICAgYXNzZXJ0IG9zLnBhdGguZXhpc3RzKGZ4X3BhdGgpCiAgICAgc2h1dGlsLnJt
dHJlZShmeF9wYXRoKQogCiAKLUBweXRlc3QubWFyay54ZmFpbChzeXMucGxhdGZvcm0gPT0gIndp
bjMyIiwKLSAgICAgICAgICAgICAgICAgICByZWFzb249IlRlc3RzIGN1cnJlbnRseSBkb24ndCB3
b3JrIG9uIFdpbmRvd3MgZm9yIHBhdGggcmVhc29ucyIpCiBkZWYgdGVzdF9maWxlc19jaGFuZ2Vk
KGNhcHN5cyk6CiAgICAgY29tbWl0ID0gIjkwNDdhYzFkOWY1MWIxZTlmYWE0ZjlmYWQ5YzQ3ZDEw
OTYwOWFiMDkiCiAgICAgd2l0aCBweXRlc3QucmFpc2VzKFN5c3RlbUV4aXQpIGFzIGV4Y2luZm86
CiAgICAgICAgIHdwdC5tYWluKGFyZ3Y9WyJmaWxlcy1jaGFuZ2VkIiwgIiVzfi4uJXMiICUgKGNv
bW1pdCwgY29tbWl0KV0pCiAgICAgYXNzZXJ0IGV4Y2luZm8udmFsdWUuY29kZSA9PSAwCiAgICAg
b3V0LCBlcnIgPSBjYXBzeXMucmVhZG91dGVycigpCi0gICAgYXNzZXJ0IG91dCA9PSAiIiJodG1s
L2Jyb3dzZXJzL29mZmxpbmUvYXBwY2FjaGUvd29ya2Vycy9hcHBjYWNoZS13b3JrZXIuaHRtbAor
ICAgIGV4cGVjdGVkID0gIiIiaHRtbC9icm93c2Vycy9vZmZsaW5lL2FwcGNhY2hlL3dvcmtlcnMv
YXBwY2FjaGUtd29ya2VyLmh0bWwKIGh0bWwvYnJvd3NlcnMvb2ZmbGluZS9hcHBjYWNoZS93b3Jr
ZXJzL3Jlc291cmNlcy9hcHBjYWNoZS1kZWRpY2F0ZWQtd29ya2VyLW5vdC1pbi1jYWNoZS5qcwog
aHRtbC9icm93c2Vycy9vZmZsaW5lL2FwcGNhY2hlL3dvcmtlcnMvcmVzb3VyY2VzL2FwcGNhY2hl
LXNoYXJlZC13b3JrZXItbm90LWluLWNhY2hlLmpzCiBodG1sL2Jyb3dzZXJzL29mZmxpbmUvYXBw
Y2FjaGUvd29ya2Vycy9yZXNvdXJjZXMvYXBwY2FjaGUtd29ya2VyLWRhdGEucHkKIGh0bWwvYnJv
d3NlcnMvb2ZmbGluZS9hcHBjYWNoZS93b3JrZXJzL3Jlc291cmNlcy9hcHBjYWNoZS13b3JrZXIt
aW1wb3J0LnB5CiBodG1sL2Jyb3dzZXJzL29mZmxpbmUvYXBwY2FjaGUvd29ya2Vycy9yZXNvdXJj
ZXMvYXBwY2FjaGUtd29ya2VyLm1hbmlmZXN0CiBodG1sL2Jyb3dzZXJzL29mZmxpbmUvYXBwY2Fj
aGUvd29ya2Vycy9yZXNvdXJjZXMvYXBwY2FjaGUtd29ya2VyLnB5Ci0iIiIKKyIiIi5yZXBsYWNl
KCIvIiwgb3MucGF0aC5zZXApCisgICAgYXNzZXJ0IG91dCA9PSBleHBlY3RlZAogICAgIGFzc2Vy
dCBlcnIgPT0gIiIKIAogCi1AcHl0ZXN0Lm1hcmsueGZhaWwoc3lzLnBsYXRmb3JtID09ICJ3aW4z
MiIsCi0gICAgICAgICAgICAgICAgICAgcmVhc29uPSJUZXN0cyBjdXJyZW50bHkgZG9uJ3Qgd29y
ayBvbiBXaW5kb3dzIGZvciBwYXRoIHJlYXNvbnMiKQogZGVmIHRlc3RfZmlsZXNfY2hhbmdlZF9u
dWxsKGNhcHN5cyk6CiAgICAgY29tbWl0ID0gIjkwNDdhYzFkOWY1MWIxZTlmYWE0ZjlmYWQ5YzQ3
ZDEwOTYwOWFiMDkiCiAgICAgd2l0aCBweXRlc3QucmFpc2VzKFN5c3RlbUV4aXQpIGFzIGV4Y2lu
Zm86CiAgICAgICAgIHdwdC5tYWluKGFyZ3Y9WyJmaWxlcy1jaGFuZ2VkIiwgIi0tbnVsbCIsICIl
c34uLiVzIiAlIChjb21taXQsIGNvbW1pdCldKQogICAgIGFzc2VydCBleGNpbmZvLnZhbHVlLmNv
ZGUgPT0gMAogICAgIG91dCwgZXJyID0gY2Fwc3lzLnJlYWRvdXRlcnIoKQotICAgIGFzc2VydCBv
dXQgPT0gIlwwIi5qb2luKFsiaHRtbC9icm93c2Vycy9vZmZsaW5lL2FwcGNhY2hlL3dvcmtlcnMv
YXBwY2FjaGUtd29ya2VyLmh0bWwiLAorICAgIGV4cGVjdGVkID0gIlwwIi5qb2luKFsiaHRtbC9i
cm93c2Vycy9vZmZsaW5lL2FwcGNhY2hlL3dvcmtlcnMvYXBwY2FjaGUtd29ya2VyLmh0bWwiLAog
ICAgICAgICAiaHRtbC9icm93c2Vycy9vZmZsaW5lL2FwcGNhY2hlL3dvcmtlcnMvcmVzb3VyY2Vz
L2FwcGNhY2hlLWRlZGljYXRlZC13b3JrZXItbm90LWluLWNhY2hlLmpzIiwKICAgICAgICAgImh0
bWwvYnJvd3NlcnMvb2ZmbGluZS9hcHBjYWNoZS93b3JrZXJzL3Jlc291cmNlcy9hcHBjYWNoZS1z
aGFyZWQtd29ya2VyLW5vdC1pbi1jYWNoZS5qcyIsCiAgICAgICAgICJodG1sL2Jyb3dzZXJzL29m
ZmxpbmUvYXBwY2FjaGUvd29ya2Vycy9yZXNvdXJjZXMvYXBwY2FjaGUtd29ya2VyLWRhdGEucHki
LAogICAgICAgICAiaHRtbC9icm93c2Vycy9vZmZsaW5lL2FwcGNhY2hlL3dvcmtlcnMvcmVzb3Vy
Y2VzL2FwcGNhY2hlLXdvcmtlci1pbXBvcnQucHkiLAogICAgICAgICAiaHRtbC9icm93c2Vycy9v
ZmZsaW5lL2FwcGNhY2hlL3dvcmtlcnMvcmVzb3VyY2VzL2FwcGNhY2hlLXdvcmtlci5tYW5pZmVz
dCIsCiAgICAgICAgICJodG1sL2Jyb3dzZXJzL29mZmxpbmUvYXBwY2FjaGUvd29ya2Vycy9yZXNv
dXJjZXMvYXBwY2FjaGUtd29ya2VyLnB5IiwKLSAgICAgICAgIiJdKQorICAgICAgICAiIl0pLnJl
cGxhY2UoIi8iLCBvcy5wYXRoLnNlcCkKKyAgICBhc3NlcnQgb3V0ID09IGV4cGVjdGVkCiAgICAg
YXNzZXJ0IGVyciA9PSAiIgogCiAKQEAgLTMwMSw4ICszMTEsOCBAQCBkZWYgdGVzdF9maWxlc19j
aGFuZ2VkX2lnbm9yZSgpOgogCiBkZWYgdGVzdF9maWxlc19jaGFuZ2VkX2lnbm9yZV9ydWxlcygp
OgogICAgIGZyb20gdG9vbHMud3B0LnRlc3RmaWxlcyBpbXBvcnQgY29tcGlsZV9pZ25vcmVfcnVs
ZQotICAgIGFzc2VydCBjb21waWxlX2lnbm9yZV9ydWxlKCJmb28qYmFyKi9iYXoiKS5wYXR0ZXJu
ID09ICJeZm9vXCpiYXJbXi9dKi9iYXokIgotICAgIGFzc2VydCBjb21waWxlX2lnbm9yZV9ydWxl
KCJmb28qKmJhcioqL2JheiIpLnBhdHRlcm4gPT0gIl5mb29cKlwqYmFyLiovYmF6JCIKKyAgICBh
c3NlcnQgY29tcGlsZV9pZ25vcmVfcnVsZSgiZm9vKmJhciovYmF6IikucGF0dGVybiA9PSByIl5m
b29cKmJhclteL10qL2JheiQiCisgICAgYXNzZXJ0IGNvbXBpbGVfaWdub3JlX3J1bGUoImZvbyoq
YmFyKiovYmF6IikucGF0dGVybiA9PSByIl5mb29cKlwqYmFyLiovYmF6JCIKICAgICBhc3NlcnQg
Y29tcGlsZV9pZ25vcmVfcnVsZSgiZm9vYmFyL2Jhei8qIikucGF0dGVybiA9PSAiXmZvb2Jhci9i
YXovW14vXSokIgogICAgIGFzc2VydCBjb21waWxlX2lnbm9yZV9ydWxlKCJmb29iYXIvYmF6Lyoq
IikucGF0dGVybiA9PSAiXmZvb2Jhci9iYXovLiokIgogCkBAIC0zMTAsNiArMzIwLDggQEAgZGVm
IHRlc3RfZmlsZXNfY2hhbmdlZF9pZ25vcmVfcnVsZXMoKToKIEBweXRlc3QubWFyay5zbG93ICAj
IHRoaXMgdXBkYXRlcyB0aGUgbWFuaWZlc3QKIEBweXRlc3QubWFyay54ZmFpbChzeXMucGxhdGZv
cm0gPT0gIndpbjMyIiwKICAgICAgICAgICAgICAgICAgICByZWFzb249IlRlc3RzIGN1cnJlbnRs
eSBkb24ndCB3b3JrIG9uIFdpbmRvd3MgZm9yIHBhdGggcmVhc29ucyIpCitAcHl0ZXN0Lm1hcmsu
c2tpcGlmKHN5cy5wbGF0Zm9ybSA9PSAid2luMzIiLAorICAgICAgICAgICAgICAgICAgICByZWFz
b249Imh0dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxhdGZvcm0tdGVzdHMvd3B0L2lzc3Vlcy8xMjkz
NCIpCiBkZWYgdGVzdF90ZXN0c19hZmZlY3RlZChjYXBzeXMsIG1hbmlmZXN0X2Rpcik6CiAgICAg
IyBUaGlzIGRvZXNuJ3QgcmVhbGx5IHdvcmsgcHJvcGVybHkgZm9yIHJhbmRvbSBjb21taXRzIGJl
Y2F1c2Ugd2UgdGVzdCB0aGUgZmlsZXMgaW4KICAgICAjIHRoZSBjdXJyZW50IHdvcmtpbmcgZGly
ZWN0b3J5IGZvciByZWZlcmVuY2VzIHRvIHRoZSBjaGFuZ2VkIGZpbGVzLCBub3QgdGhlIG9uZXMg
YXQKQEAgLTMyNiwyNSArMzM4LDQxIEBAIGRlZiB0ZXN0X3Rlc3RzX2FmZmVjdGVkKGNhcHN5cywg
bWFuaWZlc3RfZGlyKToKIEBweXRlc3QubWFyay5zbG93ICAjIHRoaXMgdXBkYXRlcyB0aGUgbWFu
aWZlc3QKIEBweXRlc3QubWFyay54ZmFpbChzeXMucGxhdGZvcm0gPT0gIndpbjMyIiwKICAgICAg
ICAgICAgICAgICAgICByZWFzb249IlRlc3RzIGN1cnJlbnRseSBkb24ndCB3b3JrIG9uIFdpbmRv
d3MgZm9yIHBhdGggcmVhc29ucyIpCitAcHl0ZXN0Lm1hcmsuc2tpcGlmKHN5cy5wbGF0Zm9ybSA9
PSAid2luMzIiLAorICAgICAgICAgICAgICAgICAgICByZWFzb249Imh0dHBzOi8vZ2l0aHViLmNv
bS93ZWItcGxhdGZvcm0tdGVzdHMvd3B0L2lzc3Vlcy8xMjkzNCIpCitkZWYgdGVzdF90ZXN0c19h
ZmZlY3RlZF9pZGxoYXJuZXNzKGNhcHN5cywgbWFuaWZlc3RfZGlyKToKKyAgICBjb21taXQgPSAi
NDdjZWE4YzM4Yjg4YzBkZGQzODU0ZTRlZGVjMGM1YjZmMjY5N2U2MiIKKyAgICB3aXRoIHB5dGVz
dC5yYWlzZXMoU3lzdGVtRXhpdCkgYXMgZXhjaW5mbzoKKyAgICAgICAgd3B0Lm1haW4oYXJndj1b
InRlc3RzLWFmZmVjdGVkIiwgIi0tbWV0YWRhdGEiLCBtYW5pZmVzdF9kaXIsICIlc34uLiVzIiAl
IChjb21taXQsIGNvbW1pdCldKQorICAgIGFzc2VydCBleGNpbmZvLnZhbHVlLmNvZGUgPT0gMAor
ICAgIG91dCwgZXJyID0gY2Fwc3lzLnJlYWRvdXRlcnIoKQorICAgIGFzc2VydCAid2VicnRjLWlk
ZW50aXR5L2lkbGhhcm5lc3MuaHR0cHMud2luZG93LmpzXG53ZWJydGMtc3RhdHMvaWRsaGFybmVz
cy53aW5kb3cuanNcbndlYnJ0Yy9pZGxoYXJuZXNzLmh0dHBzLndpbmRvdy5qc1xuIiA9PSBvdXQK
KworCitAcHl0ZXN0Lm1hcmsuc2xvdyAgIyB0aGlzIHVwZGF0ZXMgdGhlIG1hbmlmZXN0CitAcHl0
ZXN0Lm1hcmsueGZhaWwoc3lzLnBsYXRmb3JtID09ICJ3aW4zMiIsCisgICAgICAgICAgICAgICAg
ICAgcmVhc29uPSJUZXN0cyBjdXJyZW50bHkgZG9uJ3Qgd29yayBvbiBXaW5kb3dzIGZvciBwYXRo
IHJlYXNvbnMiKQorQHB5dGVzdC5tYXJrLnNraXBpZihzeXMucGxhdGZvcm0gPT0gIndpbjMyIiwK
KyAgICAgICAgICAgICAgICAgICAgcmVhc29uPSJodHRwczovL2dpdGh1Yi5jb20vd2ViLXBsYXRm
b3JtLXRlc3RzL3dwdC9pc3N1ZXMvMTI5MzQiKQogZGVmIHRlc3RfdGVzdHNfYWZmZWN0ZWRfbnVs
bChjYXBzeXMsIG1hbmlmZXN0X2Rpcik6CiAgICAgIyBUaGlzIGRvZXNuJ3QgcmVhbGx5IHdvcmsg
cHJvcGVybHkgZm9yIHJhbmRvbSBjb21taXRzIGJlY2F1c2Ugd2UgdGVzdCB0aGUgZmlsZXMgaW4K
ICAgICAjIHRoZSBjdXJyZW50IHdvcmtpbmcgZGlyZWN0b3J5IGZvciByZWZlcmVuY2VzIHRvIHRo
ZSBjaGFuZ2VkIGZpbGVzLCBub3QgdGhlIG9uZXMgYXQKICAgICAjIHRoYXQgc3BlY2lmaWMgY29t
bWl0LiBCdXQgd2UgY2FuIGF0IGxlYXN0IHRlc3QgaXQgcmV0dXJucyBzb21ldGhpbmcgc2Vuc2li
bGUuCiAgICAgIyBUaGUgdGVzdCB3aWxsIGZhaWwgaWYgdGhlIGZpbGUgd2UgYXNzZXJ0IGlzIHJl
bmFtZWQsIHNvIHdlIGNob29zZSBhIHN0YWJsZSBvbmUuCi0gICAgY29tbWl0ID0gIjliZjFkYWEz
ZDhiNDQyNWYyMzU0YzNjYTkyYzRjZjAzOThkMzI5ZGQiCisgICAgY29tbWl0ID0gIjI2MTRlMzMx
NmYxZDNkMWE3NDRlZDNhZjA4OGQxOTUxNjU1MmE1ZGUiCiAgICAgd2l0aCBweXRlc3QucmFpc2Vz
KFN5c3RlbUV4aXQpIGFzIGV4Y2luZm86CiAgICAgICAgIHdwdC5tYWluKGFyZ3Y9WyJ0ZXN0cy1h
ZmZlY3RlZCIsICItLW51bGwiLCAiLS1tZXRhZGF0YSIsIG1hbmlmZXN0X2RpciwgIiVzfi4uJXMi
ICUgKGNvbW1pdCwgY29tbWl0KV0pCiAgICAgYXNzZXJ0IGV4Y2luZm8udmFsdWUuY29kZSA9PSAw
CiAgICAgb3V0LCBlcnIgPSBjYXBzeXMucmVhZG91dGVycigpCiAKICAgICB0ZXN0cyA9IG91dC5z
cGxpdCgiXDAiKQotICAgIGFzc2VydCAiZG9tL2ludGVyZmFjZXMuaHRtbCIgaW4gdGVzdHMKLSAg
ICBhc3NlcnQgImh0bWwvZG9tL2ludGVyZmFjZXMuaHR0cHMuaHRtbCIgaW4gdGVzdHMKKyAgICBh
c3NlcnQgImRvbS9pZGxoYXJuZXNzLmFueS5qcyIgaW4gdGVzdHMKKyAgICBhc3NlcnQgInhoci9p
ZGxoYXJuZXNzLmFueS5qcyIgaW4gdGVzdHMKIAogCiBAcHl0ZXN0Lm1hcmsuc2xvdwotQHB5dGVz
dC5tYXJrLnhmYWlsKHN5cy5wbGF0Zm9ybSA9PSAid2luMzIiLAotICAgICAgICAgICAgICAgICAg
IHJlYXNvbj0iVGVzdHMgY3VycmVudGx5IGRvbid0IHdvcmsgb24gV2luZG93cyBmb3IgcGF0aCBy
ZWFzb25zIikKK0BweXRlc3QubWFyay5za2lwaWYoc3lzLnBsYXRmb3JtID09ICJ3aW4zMiIsCisg
ICAgICAgICAgICAgICAgICAgIHJlYXNvbj0ibm8gb3Muc2V0c2lkL2tpbGxwZyB0byBlYXNpbHkg
Y2xlYW51cCB0aGUgcHJvY2VzcyB0cmVlIikKIGRlZiB0ZXN0X3NlcnZlKCk6CiAgICAgaWYgaXNf
cG9ydF84MDAwX2luX3VzZSgpOgogICAgICAgICBweXRlc3Quc2tpcCgicG9ydCA4MDAwIGFscmVh
ZHkgaW4gdXNlIikKQEAgLTM2MSw5ICszODksOSBAQCBkZWYgdGVzdF9zZXJ2ZSgpOgogICAgICAg
ICAgICAgICAgIGFzc2VydCBGYWxzZSwgInNlcnZlciBkaWQgbm90IHN0YXJ0IHJlc3BvbmRpbmcg
d2l0aGluIDYwcyIKICAgICAgICAgICAgIHRyeToKICAgICAgICAgICAgICAgICByZXNwID0gdXJs
bGliMi51cmxvcGVuKCJodHRwOi8vd2ViLXBsYXRmb3JtLnRlc3Q6ODAwMCIpCi0gICAgICAgICAg
ICAgICAgcHJpbnQgcmVzcAorICAgICAgICAgICAgICAgIHByaW50KHJlc3ApCiAgICAgICAgICAg
ICBleGNlcHQgdXJsbGliMi5VUkxFcnJvcjoKLSAgICAgICAgICAgICAgICBwcmludCAiVVJMRXJy
b3IiCisgICAgICAgICAgICAgICAgcHJpbnQoIlVSTEVycm9yIikKICAgICAgICAgICAgICAgICB0
aW1lLnNsZWVwKDEpCiAgICAgICAgICAgICBlbHNlOgogICAgICAgICAgICAgICAgIGFzc2VydCBy
ZXNwLmNvZGUgPT0gMjAwCkBAIC0zNzMsNiArNDAxLDUgQEAgZGVmIHRlc3Rfc2VydmUoKToKIAog
IyBUaGUgZm9sbG93aW5nIGNvbW1hbmRzIGFyZSBzbG93IHJ1bm5pbmcgYW5kIHVzZWQgaW1wbGlj
aXRseSBpbiBvdGhlciBDSQogIyBqb2JzLCBzbyB3ZSBza2lwIHRoZW0gaGVyZToKLSMgd3B0IGNo
ZWNrLXN0YWJpbGl0eQogIyB3cHQgbWFuaWZlc3QKICMgd3B0IGxpbnQKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0L3Rlc3Rz
L3czYy1pbXBvcnQubG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy93cHQvdGVzdHMvdzNjLWltcG9ydC5sb2cKaW5kZXggMDUzOGI3M2QwYmEwMDkw
MmUzNzgxNjkwN2ExODAwY2FkMjA3ZTg3Mi4uNWM0M2YzY2E2YjI2YWE2MDU2NmFjZmZjMzBlOGVj
OGVhMmI5NjRlMyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy93cHQvdGVzdHMvdzNjLWltcG9ydC5sb2cKKysrIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHQvdGVzdHMvdzNjLWlt
cG9ydC5sb2cKQEAgLTE1LDQgKzE1LDggQEAgTm9uZQogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiBMaXN0IG9m
IGZpbGVzOgogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvd3B0L3Rlc3RzL2xhdGVzdF9tb3ppbGxhX2NlbnRyYWwudHh0CisvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHQvdGVzdHMvdGVzdF9icm93c2Vy
LnB5CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93
cHQvdGVzdHMvdGVzdF9yZXZsaXN0LnB5CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy93cHQvdGVzdHMvdGVzdF9ydW4ucHkKKy9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdC90ZXN0cy90ZXN0X3Rlc3Rm
aWxlcy5weQogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvd3B0L3Rlc3RzL3Rlc3Rfd3B0LnB5CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdC90b3guaW5pIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHQvdG94LmluaQppbmRleCBl
NDg2YmIyMjFkNzI5MDBiMTAzZmE1NmZiZjE4MTc1YWZjNTU2MGM4Li42YTA0NDQ3M2E2Yjc0OTgx
MzQ1NjgzYWJiOTYwNTg4ZGU2NTM1YmZiIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdC90b3guaW5pCisrKyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0L3RveC5pbmkKQEAg
LTEsNSArMSw1IEBACiBbdG94XQotZW52bGlzdCA9IHB5MjcscHkyNy1mbGFrZTgKK2Vudmxpc3Qg
PSBweTI3CiBza2lwc2Rpc3Q9VHJ1ZQogCiBbdGVzdGVudl0KQEAgLTcsMjAgKzcsMTMgQEAgZGVw
cyA9CiAgIHB5dGVzdAogICBweXRlc3QtY292CiAgIGh5cG90aGVzaXMKKyAgbW9jawogICAtcnt0
b3hpbmlkaXJ9Ly4uL3dwdHJ1bm5lci9yZXF1aXJlbWVudHMudHh0CiAgIC1ye3RveGluaWRpcn0v
Li4vd3B0cnVubmVyL3JlcXVpcmVtZW50c19jaHJvbWUudHh0CiAgIC1ye3RveGluaWRpcn0vLi4v
d3B0cnVubmVyL3JlcXVpcmVtZW50c19maXJlZm94LnR4dAogCiBjb21tYW5kcyA9Ci0gIHB5dGVz
dCAtLWNvdiB7cG9zYXJnc30KKyAgcHl0ZXN0IHtwb3NhcmdzfQogCi1bdGVzdGVudjpweTI3LWZs
YWtlOF0KLSMgZmxha2U4IHZlcnNpb25zIHNob3VsZCBiZSBrZXB0IGluIHN5bmMgYWNyb3NzIHRv
b2xzL3RveC5pbmksIHRvb2xzL3dwdC90b3guaW5pLCBhbmQgdG9vbHMvd3B0cnVubmVyL3RveC5p
bmkKLWRlcHMgPQotICAgICBmbGFrZTg9PTMuNS4wCi0gICAgIHB5Y29kZXN0eWxlPT0yLjMuMQot
ICAgICBweWZsYWtlcz09MS42LjAKLSAgICAgcGVwOC1uYW1pbmc9PTAuNC4xCi0KLWNvbW1hbmRz
ID0KLSAgICAgZmxha2U4IC0tYXBwZW5kLWNvbmZpZz0uLi9mbGFrZTguaW5pIHtwb3NhcmdzfQor
cGFzc2VudiA9CisgIFRBU0tDTFVTVEVSX1JPT1RfVVJMCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdC91dGlscy5weSBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0L3V0aWxz
LnB5CmluZGV4IGU4ZWRjMGJlNDkzNzMxNTgxMTJiNjJjZmE4MDY0YTczMjEyOWI5NzEuLjJkNDI3
NzEzZTRlODI0ODQ1YjZkNzg3MWI2MWNkNmYxMWVjMjUxZjYgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0L3V0aWxzLnB5Cisr
KyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0
L3V0aWxzLnB5CkBAIC0xLDExICsxLDE1IEBACiBpbXBvcnQgbG9nZ2luZwogaW1wb3J0IG9zCiBp
bXBvcnQgc3VicHJvY2VzcwotaW1wb3J0IHN5cwogaW1wb3J0IHRhcmZpbGUKIGltcG9ydCB6aXBm
aWxlCiBmcm9tIGlvIGltcG9ydCBCeXRlc0lPCiAKK3RyeToKKyAgICBmcm9tIHR5cGluZyBpbXBv
cnQgQW55LCBDYWxsYWJsZQorZXhjZXB0IEltcG9ydEVycm9yOgorICAgIHBhc3MKKwogbG9nZ2Vy
ID0gbG9nZ2luZy5nZXRMb2dnZXIoX19uYW1lX18pCiAKIApAQCAtMTMsMTAgKzE3LDExIEBAIGNs
YXNzIEt3YXJncyhkaWN0KToKICAgICBkZWYgc2V0X2lmX25vbmUoc2VsZiwKICAgICAgICAgICAg
ICAgICAgICAgbmFtZSwgICAgICAgICAgICAjIHR5cGU6IHN0cgogICAgICAgICAgICAgICAgICAg
ICB2YWx1ZSwgICAgICAgICAgICMgdHlwZTogQW55Ci0gICAgICAgICAgICAgICAgICAgIGVycl9m
bj1Ob25lLCAgICAgIyB0eXBlOiAoS3dhcmdzLCBzdHIpIC0+IEFueQorICAgICAgICAgICAgICAg
ICAgICBlcnJfZm49Tm9uZSwgICAgICMgdHlwZTogQ2FsbGFibGVbW0t3YXJncywgc3RyXSwgQW55
XQogICAgICAgICAgICAgICAgICAgICBkZXNjPU5vbmUsICAgICAgICMgdHlwZTogc3RyCi0gICAg
ICAgICAgICAgICAgICAgIGV4dHJhX2NvbmQ9Tm9uZSAgIyB0eXBlOiAoS3dhcmdzKSAtPiBib29s
CisgICAgICAgICAgICAgICAgICAgIGV4dHJhX2NvbmQ9Tm9uZSAgIyB0eXBlOiBDYWxsYWJsZVtb
S3dhcmdzXSwgQW55XQogICAgICAgICAgICAgICAgICAgICApOgorICAgICAgICAjIHR5cGU6ICgu
Li4pIC0+IEFueQogICAgICAgICBpZiBkZXNjIGlzIE5vbmU6CiAgICAgICAgICAgICBkZXNjID0g
bmFtZQogCkBAIC0zOSw3ICs0NCw3IEBAIGRlZiBjYWxsKCphcmdzKToKIAogICAgIFJldHVybnMg
YSBieXRlc3RyaW5nIG9mIHRoZSBzdWJwcm9jZXNzIG91dHB1dCBpZiBubyBlcnJvci4KICAgICAi
IiIKLSAgICBsb2dnZXIuZGVidWcoIiVzIiAlICIgIi5qb2luKGFyZ3MpKQorICAgIGxvZ2dlci5k
ZWJ1ZygiICIuam9pbihhcmdzKSkKICAgICB0cnk6CiAgICAgICAgIHJldHVybiBzdWJwcm9jZXNz
LmNoZWNrX291dHB1dChhcmdzKQogICAgIGV4Y2VwdCBzdWJwcm9jZXNzLkNhbGxlZFByb2Nlc3NF
cnJvciBhcyBlOgpAQCAtNDksMjAgKzU0LDYgQEAgZGVmIGNhbGwoKmFyZ3MpOgogICAgICAgICBy
YWlzZQogCiAKLWRlZiBnZXRfZ2l0X2NtZChyZXBvX3BhdGgpOgotICAgICIiIkNyZWF0ZSBhIGZ1
bmN0aW9uIGZvciBpbnZva2luZyBnaXQgY29tbWFuZHMgYXMgYSBzdWJwcm9jZXNzLiIiIgotICAg
IGRlZiBnaXQoY21kLCAqYXJncyk6Ci0gICAgICAgIGZ1bGxfY21kID0gWyJnaXQiLCBjbWRdICsg
bGlzdChhcmdzKQotICAgICAgICB0cnk6Ci0gICAgICAgICAgICBsb2dnZXIuZGVidWcoIiAiLmpv
aW4oZnVsbF9jbWQpKQotICAgICAgICAgICAgcmV0dXJuIHN1YnByb2Nlc3MuY2hlY2tfb3V0cHV0
KGZ1bGxfY21kLCBjd2Q9cmVwb19wYXRoLCBzdGRlcnI9c3VicHJvY2Vzcy5TVERPVVQpLnN0cmlw
KCkKLSAgICAgICAgZXhjZXB0IHN1YnByb2Nlc3MuQ2FsbGVkUHJvY2Vzc0Vycm9yIGFzIGU6Ci0g
ICAgICAgICAgICBsb2dnZXIuZXJyb3IoIkdpdCBjb21tYW5kIGV4aXRlZCB3aXRoIHN0YXR1cyAl
aSIgJSBlLnJldHVybmNvZGUpCi0gICAgICAgICAgICBsb2dnZXIuZXJyb3IoZS5vdXRwdXQpCi0g
ICAgICAgICAgICBzeXMuZXhpdCgxKQotICAgIHJldHVybiBnaXQKLQotCiBkZWYgc2Vla2FibGUo
ZmlsZW9iaik6CiAgICAgIiIiQXR0ZW1wdCB0byB1c2UgZmlsZS5zZWVrIG9uIGdpdmVuIGZpbGUs
IHdpdGggZmFsbGJhY2tzLiIiIgogICAgIHRyeToKQEAgLTk0LDIxICs4NSw2IEBAIGRlZiB1bnpp
cChmaWxlb2JqLCBkZXN0PU5vbmUsIGxpbWl0PU5vbmUpOgogICAgICAgICAgICAgb3MuY2htb2Qo
b3MucGF0aC5qb2luKGRlc3QsIGluZm8uZmlsZW5hbWUpLCBwZXJtKQogCiAKLWNsYXNzIHB3ZChv
YmplY3QpOgotICAgICIiIkNyZWF0ZSBjb250ZXh0IGZvciB0ZW1wb3JhcmlseSBjaGFuZ2luZyBw
cmVzZW50IHdvcmtpbmcgZGlyZWN0b3J5LiIiIgotICAgIGRlZiBfX2luaXRfXyhzZWxmLCBkaXIp
OgotICAgICAgICBzZWxmLmRpciA9IGRpcgotICAgICAgICBzZWxmLm9sZF9kaXIgPSBOb25lCi0K
LSAgICBkZWYgX19lbnRlcl9fKHNlbGYpOgotICAgICAgICBzZWxmLm9sZF9kaXIgPSBvcy5wYXRo
LmFic3BhdGgob3MuY3VyZGlyKQotICAgICAgICBvcy5jaGRpcihzZWxmLmRpcikKLQotICAgIGRl
ZiBfX2V4aXRfXyhzZWxmLCAqYXJncywgKiprd2FyZ3MpOgotICAgICAgICBvcy5jaGRpcihzZWxm
Lm9sZF9kaXIpCi0gICAgICAgIHNlbGYub2xkX2RpciA9IE5vbmUKLQotCiBkZWYgZ2V0KHVybCk6
CiAgICAgIiIiSXNzdWUgR0VUIHJlcXVlc3QgdG8gYSBnaXZlbiBVUkwgYW5kIHJldHVybiB0aGUg
cmVzcG9uc2UuIiIiCiAgICAgaW1wb3J0IHJlcXVlc3RzCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdC92aXJ0dWFsZW52LnB5
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHQv
dmlydHVhbGVudi5weQppbmRleCBiODQ1NGM5NzljMmM0YmEyMDk5NWJhODgwNWNlYmI2MThmZDhi
YWVkLi40MDBkZWJjODhlNDY5MTBkMjY0MWU3MjhmYzRhZGI4NmE4ODU2OGUwIDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdC92
aXJ0dWFsZW52LnB5CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvd3B0L3ZpcnR1YWxlbnYucHkKQEAgLTQsMjQgKzQsNDUgQEAgaW1wb3J0IHN5
cwogaW1wb3J0IGxvZ2dpbmcKIGZyb20gZGlzdHV0aWxzLnNwYXduIGltcG9ydCBmaW5kX2V4ZWN1
dGFibGUKIAorIyBUaGUgYHBrZ19yZXNvdXJjZXNgIG1vZHVsZSBpcyBwcm92aWRlZCBieSBgc2V0
dXB0b29sc2AsIHdoaWNoIGlzIGl0c2VsZiBhCisjIGRlcGVuZGVuY3kgb2YgYHZpcnR1YWxlbnZg
LiBUb2xlcmF0ZSBpdHMgYWJzZW5jZSBzbyB0aGF0IHRoaXMgbW9kdWxlIG1heSBiZQorIyBldmFs
dWF0ZWQgd2hlbiB0aGF0IG1vZHVsZSBpcyBub3QgYXZhaWxhYmxlLiBCZWNhdXNlIHVzZXJzIG1h
eSBub3QgcmVjb2duaXplCisjIHRoZSBgcGtnX3Jlc291cmNlc2AgbW9kdWxlIGJ5IG5hbWUsIHJh
aXNlIGEgbW9yZSBkZXNjcmlwdGl2ZSBlcnJvciBpZiBpdCBpcworIyByZWZlcmVuY2VkIGR1cmlu
ZyBleGVjdXRpb24uCit0cnk6CisgICAgaW1wb3J0IHBrZ19yZXNvdXJjZXMgYXMgX3BrZ19yZXNv
dXJjZXMKKyAgICBnZXRfcGtnX3Jlc291cmNlcyA9IGxhbWJkYTogX3BrZ19yZXNvdXJjZXMKK2V4
Y2VwdCBJbXBvcnRFcnJvcjoKKyAgICBkZWYgZ2V0X3BrZ19yZXNvdXJjZXMoKToKKyAgICAgICAg
cmFpc2UgVmFsdWVFcnJvcigiVGhlIFB5dGhvbiBtb2R1bGUgYHZpcnR1YWxlbnZgIGlzIG5vdCBp
bnN0YWxsZWQuIikKKwogZnJvbSB0b29scy53cHQudXRpbHMgaW1wb3J0IGNhbGwKIAogbG9nZ2Vy
ID0gbG9nZ2luZy5nZXRMb2dnZXIoX19uYW1lX18pCiAKIGNsYXNzIFZpcnR1YWxlbnYob2JqZWN0
KToKLSAgICBkZWYgX19pbml0X18oc2VsZiwgcGF0aCk6CisgICAgZGVmIF9faW5pdF9fKHNlbGYs
IHBhdGgsIHNraXBfdmlydHVhbGVudl9zZXR1cCk6CiAgICAgICAgIHNlbGYucGF0aCA9IHBhdGgK
LSAgICAgICAgc2VsZi52aXJ0dWFsZW52ID0gZmluZF9leGVjdXRhYmxlKCJ2aXJ0dWFsZW52IikK
LSAgICAgICAgaWYgbm90IHNlbGYudmlydHVhbGVudjoKLSAgICAgICAgICAgIHJhaXNlIFZhbHVl
RXJyb3IoInZpcnR1YWxlbnYgbXVzdCBiZSBpbnN0YWxsZWQgYW5kIG9uIHRoZSBQQVRIIikKKyAg
ICAgICAgc2VsZi5za2lwX3ZpcnR1YWxlbnZfc2V0dXAgPSBza2lwX3ZpcnR1YWxlbnZfc2V0dXAK
KyAgICAgICAgaWYgbm90IHNraXBfdmlydHVhbGVudl9zZXR1cDoKKyAgICAgICAgICAgIHNlbGYu
dmlydHVhbGVudiA9IGZpbmRfZXhlY3V0YWJsZSgidmlydHVhbGVudiIpCisgICAgICAgICAgICBp
ZiBub3Qgc2VsZi52aXJ0dWFsZW52OgorICAgICAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3Io
InZpcnR1YWxlbnYgbXVzdCBiZSBpbnN0YWxsZWQgYW5kIG9uIHRoZSBQQVRIIikKKyAgICAgICAg
ICAgIHNlbGYuX3dvcmtpbmdfc2V0ID0gTm9uZQogCiAgICAgQHByb3BlcnR5CiAgICAgZGVmIGV4
aXN0cyhzZWxmKToKICAgICAgICAgcmV0dXJuIG9zLnBhdGguaXNkaXIoc2VsZi5wYXRoKQogCisg
ICAgQHByb3BlcnR5CisgICAgZGVmIGJyb2tlbl9saW5rKHNlbGYpOgorICAgICAgICBweXRob25f
bGluayA9IG9zLnBhdGguam9pbihzZWxmLnBhdGgsICIuUHl0aG9uIikKKyAgICAgICAgcmV0dXJu
IG9zLnBhdGgubGV4aXN0cyhweXRob25fbGluaykgYW5kIG5vdCBvcy5wYXRoLmV4aXN0cyhweXRo
b25fbGluaykKKwogICAgIGRlZiBjcmVhdGUoc2VsZik6CiAgICAgICAgIGlmIG9zLnBhdGguZXhp
c3RzKHNlbGYucGF0aCk6CiAgICAgICAgICAgICBzaHV0aWwucm10cmVlKHNlbGYucGF0aCkKKyAg
ICAgICAgICAgIHNlbGYuX3dvcmtpbmdfc2V0ID0gTm9uZQogICAgICAgICBjYWxsKHNlbGYudmly
dHVhbGVudiwgc2VsZi5wYXRoLCAiLXAiLCBzeXMuZXhlY3V0YWJsZSkKIAogICAgIEBwcm9wZXJ0
eQpAQCAtMzcsMTcgKzU4LDY5IEBAIGNsYXNzIFZpcnR1YWxlbnYob2JqZWN0KToKICAgICAgICAg
ICAgIHJhaXNlIFZhbHVlRXJyb3IoInBpcCBub3QgZm91bmQiKQogICAgICAgICByZXR1cm4gcGF0
aAogCisgICAgQHByb3BlcnR5CisgICAgZGVmIGxpYl9wYXRoKHNlbGYpOgorICAgICAgICBiYXNl
ID0gc2VsZi5wYXRoCisKKyAgICAgICAgIyB0aGlzIGJsb2NrIGlzIGxpdGVyYWxseSB0YWtlbiBm
cm9tIHZpcnR1YWxlbnYgMTYuNC4zCisgICAgICAgIElTX1BZUFkgPSBoYXNhdHRyKHN5cywgInB5
cHlfdmVyc2lvbl9pbmZvIikKKyAgICAgICAgSVNfSllUSE9OID0gc3lzLnBsYXRmb3JtLnN0YXJ0
c3dpdGgoImphdmEiKQorICAgICAgICBpZiBJU19KWVRIT046CisgICAgICAgICAgICBzaXRlX3Bh
Y2thZ2VzID0gb3MucGF0aC5qb2luKGJhc2UsICJMaWIiLCAic2l0ZS1wYWNrYWdlcyIpCisgICAg
ICAgIGVsaWYgSVNfUFlQWToKKyAgICAgICAgICAgIHNpdGVfcGFja2FnZXMgPSBvcy5wYXRoLmpv
aW4oYmFzZSwgInNpdGUtcGFja2FnZXMiKQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgSVNf
V0lOID0gc3lzLnBsYXRmb3JtID09ICJ3aW4zMiIKKyAgICAgICAgICAgIGlmIElTX1dJTjoKKyAg
ICAgICAgICAgICAgICBzaXRlX3BhY2thZ2VzID0gb3MucGF0aC5qb2luKGJhc2UsICJMaWIiLCAi
c2l0ZS1wYWNrYWdlcyIpCisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgIHNpdGVf
cGFja2FnZXMgPSBvcy5wYXRoLmpvaW4oYmFzZSwgImxpYiIsICJweXRob257fSIuZm9ybWF0KHN5
cy52ZXJzaW9uWzozXSksICJzaXRlLXBhY2thZ2VzIikKKworICAgICAgICByZXR1cm4gc2l0ZV9w
YWNrYWdlcworCisgICAgQHByb3BlcnR5CisgICAgZGVmIHdvcmtpbmdfc2V0KHNlbGYpOgorICAg
ICAgICBpZiBub3Qgc2VsZi5leGlzdHM6CisgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJ0
cnlpbmcgdG8gcmVhZCB3b3JraW5nX3NldCB3aGVuIHZlbnYgZG9lc24ndCBleGlzdCIpCisKKyAg
ICAgICAgaWYgc2VsZi5fd29ya2luZ19zZXQgaXMgTm9uZToKKyAgICAgICAgICAgIHNlbGYuX3dv
cmtpbmdfc2V0ID0gZ2V0X3BrZ19yZXNvdXJjZXMoKS5Xb3JraW5nU2V0KChzZWxmLmxpYl9wYXRo
LCkpCisKKyAgICAgICAgcmV0dXJuIHNlbGYuX3dvcmtpbmdfc2V0CisKICAgICBkZWYgYWN0aXZh
dGUoc2VsZik6CiAgICAgICAgIHBhdGggPSBvcy5wYXRoLmpvaW4oc2VsZi5iaW5fcGF0aCwgImFj
dGl2YXRlX3RoaXMucHkiKQotICAgICAgICBleGVjZmlsZShwYXRoLCB7Il9fZmlsZV9fIjogcGF0
aH0pCisgICAgICAgIHdpdGggb3BlbihwYXRoKSBhcyBmOgorICAgICAgICAgICAgZXhlYyhmLnJl
YWQoKSwgeyJfX2ZpbGVfXyI6IHBhdGh9KQogCiAgICAgZGVmIHN0YXJ0KHNlbGYpOgotICAgICAg
ICBpZiBub3Qgc2VsZi5leGlzdHM6CisgICAgICAgIGlmIG5vdCBzZWxmLmV4aXN0cyBvciBzZWxm
LmJyb2tlbl9saW5rOgogICAgICAgICAgICAgc2VsZi5jcmVhdGUoKQogICAgICAgICBzZWxmLmFj
dGl2YXRlKCkKIAogICAgIGRlZiBpbnN0YWxsKHNlbGYsICpyZXF1aXJlbWVudHMpOgotICAgICAg
ICBjYWxsKHNlbGYucGlwX3BhdGgsICJpbnN0YWxsIiwgKnJlcXVpcmVtZW50cykKKyAgICAgICAg
dHJ5OgorICAgICAgICAgICAgc2VsZi53b3JraW5nX3NldC5yZXF1aXJlKCpyZXF1aXJlbWVudHMp
CisgICAgICAgIGV4Y2VwdCBFeGNlcHRpb246CisgICAgICAgICAgICBwYXNzCisgICAgICAgIGVs
c2U6CisgICAgICAgICAgICByZXR1cm4KKworICAgICAgICAjIGAtLXByZWZlci1iaW5hcnlgIGd1
YXJkcyBhZ2FpbnN0IHJhY2UgY29uZGl0aW9ucyB3aGVuIGluc3RhbGxhdGlvbgorICAgICAgICAj
IG9jY3VycyB3aGlsZSBwYWNrYWdlcyBhcmUgaW4gdGhlIHByb2Nlc3Mgb2YgYmVpbmcgcHVibGlz
aGVkLgorICAgICAgICBjYWxsKHNlbGYucGlwX3BhdGgsICJpbnN0YWxsIiwgIi0tcHJlZmVyLWJp
bmFyeSIsICpyZXF1aXJlbWVudHMpCiAKICAgICBkZWYgaW5zdGFsbF9yZXF1aXJlbWVudHMoc2Vs
ZiwgcmVxdWlyZW1lbnRzX3BhdGgpOgotICAgICAgICBjYWxsKHNlbGYucGlwX3BhdGgsICJpbnN0
YWxsIiwgIi1yIiwgcmVxdWlyZW1lbnRzX3BhdGgpCisgICAgICAgIHdpdGggb3BlbihyZXF1aXJl
bWVudHNfcGF0aCkgYXMgZjoKKyAgICAgICAgICAgIHRyeToKKyAgICAgICAgICAgICAgICBzZWxm
Lndvcmtpbmdfc2V0LnJlcXVpcmUoZi5yZWFkKCkpCisgICAgICAgICAgICBleGNlcHQgRXhjZXB0
aW9uOgorICAgICAgICAgICAgICAgIHBhc3MKKyAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAg
ICAgICAgcmV0dXJuCisKKyAgICAgICAgIyBgLS1wcmVmZXItYmluYXJ5YCBndWFyZHMgYWdhaW5z
dCByYWNlIGNvbmRpdGlvbnMgd2hlbiBpbnN0YWxsYXRpb24KKyAgICAgICAgIyBvY2N1cnMgd2hp
bGUgcGFja2FnZXMgYXJlIGluIHRoZSBwcm9jZXNzIG9mIGJlaW5nIHB1Ymxpc2hlZC4KKyAgICAg
ICAgY2FsbCgKKyAgICAgICAgICAgIHNlbGYucGlwX3BhdGgsICJpbnN0YWxsIiwgIi0tcHJlZmVy
LWJpbmFyeSIsICItciIsIHJlcXVpcmVtZW50c19wYXRoCisgICAgICAgICkKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0L3cz
Yy1pbXBvcnQubG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy93cHQvdzNjLWltcG9ydC5sb2cKaW5kZXggNTYzYzFkNWU2ZTk5NTM2NDUzODIxYWU4
YzMxZmUyNjczOTE0MTM3NS4uOTY4NjQ2NzgzMThjZDdiZTNiOTQzOGI0Y2M2MTM0YTEwOTlhNWM5
MCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy93cHQvdzNjLWltcG9ydC5sb2cKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHQvdzNjLWltcG9ydC5sb2cKQEAgLTE2LDEyICsx
NiwxNiBAQCBOb25lCiBMaXN0IG9mIGZpbGVzOgogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0L19faW5pdF9fLnB5CiAvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHQvX19pbml0X18ucHljCisvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHQvYW5kcm9p
ZC5weQogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
d3B0L2Jyb3dzZXIucHkKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3dwdC9jb21tYW5kcy5qc29uCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHQvY3JlYXRlLnB5CiAvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHQvaW5zdGFsbC5weQorL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0L21hY2gtZW11bGF0
b3IubWFuaWZlc3QKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3dwdC9tYXJrZG93bi5weQogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvd3B0L3BhdGhzCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHQvcmVxdWlyZW1lbnRzLnR4dAorL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0L3Jldmxpc3QucHkKIC9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdC9ydW4u
cHkKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dw
dC90ZXN0ZmlsZXMucHkKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3dwdC90ZXN0ZmlsZXMucHljCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdC93cHQucHkgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdC93cHQucHkKaW5kZXgg
ZjRlZWNjZTIyY2Y5MTUwNDlmNDgxMDQ5OTAzYTdjNTNhMmE4ZWZmNy4uOTMzMDFkZDg2YjRmZmUy
MDI5MDJhNDkyMjA0ZWJhNjUzN2ZiNTBkNSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHQvd3B0LnB5CisrKyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0L3dwdC5weQpAQCAt
NCw3ICs0LDcgQEAgaW1wb3J0IGxvZ2dpbmcKIGltcG9ydCBvcwogaW1wb3J0IHN5cwogCi1mcm9t
IHRvb2xzIGltcG9ydCBsb2NhbHBhdGhzICAjIG5vcWE6IGZsYWtlOAorZnJvbSB0b29scyBpbXBv
cnQgbG9jYWxwYXRocyAgIyBub3FhOiBGNDAxCiAKIGZyb20gc2l4IGltcG9ydCBpdGVyaXRlbXMK
IGZyb20gLiBpbXBvcnQgdmlydHVhbGVudgpAQCAtNDMsNiArNDMsOSBAQCBkZWYgbG9hZF9jb21t
YW5kcygpOgogZGVmIHBhcnNlX2FyZ3MoYXJndiwgY29tbWFuZHMpOgogICAgIHBhcnNlciA9IGFy
Z3BhcnNlLkFyZ3VtZW50UGFyc2VyKCkKICAgICBwYXJzZXIuYWRkX2FyZ3VtZW50KCItLXZlbnYi
LCBhY3Rpb249InN0b3JlIiwgaGVscD0iUGF0aCB0byBhbiBleGlzdGluZyB2aXJ0dWFsZW52IHRv
IHVzZSIpCisgICAgcGFyc2VyLmFkZF9hcmd1bWVudCgiLS1za2lwLXZlbnYtc2V0dXAiLCBhY3Rp
b249InN0b3JlX3RydWUiLAorICAgICAgICAgICAgICAgICAgICAgICAgZGVzdD0ic2tpcF92ZW52
X3NldHVwIiwKKyAgICAgICAgICAgICAgICAgICAgICAgIGhlbHA9IldoZXRoZXIgdG8gdXNlIHRo
ZSB2aXJ0dWFsZW52IGFzLWlzLiBNdXN0IHNldCAtLXZlbnYgYXMgd2VsbCIpCiAgICAgcGFyc2Vy
LmFkZF9hcmd1bWVudCgiLS1kZWJ1ZyIsIGFjdGlvbj0ic3RvcmVfdHJ1ZSIsIGhlbHA9IlJ1biB0
aGUgZGVidWdnZXIgaW4gY2FzZSBvZiBhbiBleGNlcHRpb24iKQogICAgIHN1YnBhcnNlcnMgPSBw
YXJzZXIuYWRkX3N1YnBhcnNlcnMoZGVzdD0iY29tbWFuZCIpCiAgICAgZm9yIGNvbW1hbmQsIHBy
b3BzIGluIGl0ZXJpdGVtcyhjb21tYW5kcyk6CkBAIC03NywxNSArODAsNDcgQEAgZGVmIGltcG9y
dF9jb21tYW5kKHByb2csIGNvbW1hbmQsIHByb3BzKToKICAgICByZXR1cm4gc2NyaXB0LCBwYXJz
ZXIKIAogCi1kZWYgc2V0dXBfdmlydHVhbGVudihwYXRoLCBwcm9wcyk6CitkZWYgY3JlYXRlX2Nv
bXBsZXRlX3BhcnNlcigpOgorICAgICIiIkVhZ2VybHkgbG9hZCBhbGwgc3VicGFyc2Vycy4gVGhp
cyBpbnZvbHZlcyBtb3JlIHdvcmsgdGhhbiBpcyByZXF1aXJlZAorICAgIGZvciB0eXBpY2FsIGNv
bW1hbmQtbGluZSB1c2FnZS4gSXQgaXMgbWFpbnRhaW5lZCBmb3IgdGhlIHB1cnBvc2VzIG9mCisg
ICAgZG9jdW1lbnRhdGlvbiBnZW5lcmF0aW9uIGFzIGltcGxlbWVudGVkIGluIFdQVCdzIHRvcC1s
ZXZlbCBgL2RvY3NgCisgICAgZGlyZWN0b3J5LiIiIgorCisgICAgY29tbWFuZHMgPSBsb2FkX2Nv
bW1hbmRzKCkKKyAgICBwYXJzZXIgPSBhcmdwYXJzZS5Bcmd1bWVudFBhcnNlcigpCisgICAgc3Vi
cGFyc2VycyA9IHBhcnNlci5hZGRfc3VicGFyc2VycygpCisKKyAgICBmb3IgY29tbWFuZCBpbiBj
b21tYW5kczoKKyAgICAgICAgcHJvcHMgPSBjb21tYW5kc1tjb21tYW5kXQorCisgICAgICAgIGlm
IHByb3BzWyJ2aXJ0dWFsZW52Il06CisgICAgICAgICAgICBzZXR1cF92aXJ0dWFsZW52KE5vbmUs
IEZhbHNlLCBwcm9wcykKKworICAgICAgICBzdWJwYXJzZXIgPSBpbXBvcnRfY29tbWFuZCgnd3B0
JywgY29tbWFuZCwgcHJvcHMpWzFdCisgICAgICAgIGlmIG5vdCBzdWJwYXJzZXI6CisgICAgICAg
ICAgICBjb250aW51ZQorCisgICAgICAgIHN1YnBhcnNlcnMuYWRkX3BhcnNlcihjb21tYW5kLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVscD1wcm9wc1siaGVscCJdLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgYWRkX2hlbHA9RmFsc2UsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBwYXJlbnRzPVtzdWJwYXJzZXJdKQorCisgICAgcmV0dXJuIHBhcnNlcgor
CisKK2RlZiBzZXR1cF92aXJ0dWFsZW52KHBhdGgsIHNraXBfdmVudl9zZXR1cCwgcHJvcHMpOgor
ICAgIGlmIHNraXBfdmVudl9zZXR1cCBhbmQgcGF0aCBpcyBOb25lOgorICAgICAgICByYWlzZSBW
YWx1ZUVycm9yKCJNdXN0IHNldCAtLXZlbnYgd2hlbiAtLXNraXAtdmVudi1zZXR1cCBpcyB1c2Vk
IikKKyAgICBzaG91bGRfc2tpcF9zZXR1cCA9IHBhdGggaXMgbm90IE5vbmUgYW5kIHNraXBfdmVu
dl9zZXR1cAogICAgIGlmIHBhdGggaXMgTm9uZToKICAgICAgICAgcGF0aCA9IG9zLnBhdGguam9p
bih3cHRfcm9vdCwgIl92ZW52IikKLSAgICB2ZW52ID0gdmlydHVhbGVudi5WaXJ0dWFsZW52KHBh
dGgpCi0gICAgdmVudi5zdGFydCgpCi0gICAgZm9yIG5hbWUgaW4gcHJvcHNbImluc3RhbGwiXToK
LSAgICAgICAgdmVudi5pbnN0YWxsKG5hbWUpCi0gICAgZm9yIHBhdGggaW4gcHJvcHNbInJlcXVp
cmVtZW50cyJdOgotICAgICAgICB2ZW52Lmluc3RhbGxfcmVxdWlyZW1lbnRzKHBhdGgpCisgICAg
dmVudiA9IHZpcnR1YWxlbnYuVmlydHVhbGVudihwYXRoLCBzaG91bGRfc2tpcF9zZXR1cCkKKyAg
ICBpZiBub3Qgc2hvdWxkX3NraXBfc2V0dXA6CisgICAgICAgIHZlbnYuc3RhcnQoKQorICAgICAg
ICBmb3IgbmFtZSBpbiBwcm9wc1siaW5zdGFsbCJdOgorICAgICAgICAgICAgdmVudi5pbnN0YWxs
KG5hbWUpCisgICAgICAgIGZvciBwYXRoIGluIHByb3BzWyJyZXF1aXJlbWVudHMiXToKKyAgICAg
ICAgICAgIHZlbnYuaW5zdGFsbF9yZXF1aXJlbWVudHMocGF0aCkKICAgICByZXR1cm4gdmVudgog
CiAKQEAgLTEwMSwxNCArMTM2LDExIEBAIGRlZiBtYWluKHByb2c9Tm9uZSwgYXJndj1Ob25lKToK
IAogICAgIG1haW5fYXJncywgY29tbWFuZF9hcmdzID0gcGFyc2VfYXJncyhhcmd2LCBjb21tYW5k
cykKIAotICAgIGlmIG5vdChsZW4oYXJndikgYW5kIGFyZ3ZbMF0gaW4gY29tbWFuZHMpOgotICAg
ICAgICBzeXMuZXhpdCgxKQotCiAgICAgY29tbWFuZCA9IG1haW5fYXJncy5jb21tYW5kCiAgICAg
cHJvcHMgPSBjb21tYW5kc1tjb21tYW5kXQogICAgIHZlbnYgPSBOb25lCiAgICAgaWYgcHJvcHNb
InZpcnR1YWxlbnYiXToKLSAgICAgICAgdmVudiA9IHNldHVwX3ZpcnR1YWxlbnYobWFpbl9hcmdz
LnZlbnYsIHByb3BzKQorICAgICAgICB2ZW52ID0gc2V0dXBfdmlydHVhbGVudihtYWluX2FyZ3Mu
dmVudiwgbWFpbl9hcmdzLnNraXBfdmVudl9zZXR1cCwgcHJvcHMpCiAgICAgc2NyaXB0LCBwYXJz
ZXIgPSBpbXBvcnRfY29tbWFuZChwcm9nLCBjb21tYW5kLCBwcm9wcykKICAgICBpZiBwYXJzZXI6
CiAgICAgICAgIGlmIHByb3BzWyJwYXJzZV9rbm93biJdOgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvUkVBRE1F
LnJzdCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
d3B0cnVubmVyL1JFQURNRS5yc3QKaW5kZXggNzZlNDk2ZGNkYmI2OTdhMmQ2NjYyYTZkZmZiNjAz
YjE3YWNlMDUzZi4uMGFkZjBhOTRiMTVkMjI0YWI3OTcwZTgxYWU3ZjQzMmRmMzRiYjNkNyAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy93cHRydW5uZXIvUkVBRE1FLnJzdAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci9SRUFETUUucnN0CkBAIC0zLDIzNCArMywx
MiBAQCB3cHRydW5uZXI6IEEgd2ViLXBsYXRmb3JtLXRlc3RzIGhhcm5lc3MKIAogd3B0cnVubmVy
IGlzIGEgaGFybmVzcyBmb3IgcnVubmluZyB0aGUgVzNDIGB3ZWItcGxhdGZvcm0tdGVzdHMgdGVz
dHN1aXRlYF8uCiAKLS4uIGNvbnRlbnRzOjoKKy4uIHRvY3RyZWU6OgorICAgOm1heGRlcHRoOiAy
CiAKLUluc3RhbGxhdGlvbgotfn5+fn5+fn5+fn5+Ci0KLXdwdHJ1bm5lciBpcyBleHBlY3RlZCB0
byBiZSBpbnN0YWxsZWQgaW50byBhIHZpcnR1YWxlbnYgdXNpbmcgcGlwLiBGb3IKLWRldmVsb3Bt
ZW50LCBpdCBjYW4gYmUgaW5zdGFsbGVkIHVzaW5nIHRoZSBgLWVgIG9wdGlvbjo6Ci0KLSAgcGlw
IGluc3RhbGwgLWUgLi8KLQotUnVubmluZyB0aGUgVGVzdHMKLX5+fn5+fn5+fn5+fn5+fn5+Ci0K
LUFmdGVyIGluc3RhbGxhdGlvbiwgdGhlIGNvbW1hbmQgYGB3cHRydW5uZXJgYCBzaG91bGQgYmUg
YXZhaWxhYmxlIHRvIHJ1bgotdGhlIHRlc3RzLgotCi1UaGUgYGB3cHRydW5uZXJgYCBjb21tYW5k
ICB0YWtlcyBtdWx0aXBsZSBvcHRpb25zLCBvZiB3aGljaCB0aGUKLWZvbGxvd2luZyBhcmUgbW9z
dCBzaWduaWZpY2FudDoKLQotYGAtLXByb2R1Y3RgYCAoZGVmYXVsdHMgdG8gYGZpcmVmb3hgKQot
ICBUaGUgcHJvZHVjdCB0byB0ZXN0IGFnYWluc3Q6IGBjaHJvbWVgLCBgZmlyZWZveGAsIG9yIGBz
ZXJ2b2AuCi0KLWBgLS1iaW5hcnlgYCAocmVxdWlyZWQgaWYgcHJvZHVjdCBpcyBgZmlyZWZveGAg
b3IgYHNlcnZvYCkKLSAgVGhlIHBhdGggdG8gYSBiaW5hcnkgZmlsZSBmb3IgdGhlIHByb2R1Y3Qg
KGJyb3dzZXIpIHRvIHRlc3QgYWdhaW5zdC4KLQotYGAtLXdlYmRyaXZlci1iaW5hcnlgYCAocmVx
dWlyZWQgaWYgcHJvZHVjdCBpcyBgY2hyb21lYCkKLSAgVGhlIHBhdGggdG8gYSBgZHJpdmVyYCBi
aW5hcnk7IGUuZy4sIGEgYGNocm9tZWRyaXZlcmAgYmluYXJ5LgotCi1gYC0tY2VydHV0aWwtYmlu
YXJ5YGAgKHJlcXVpcmVkIGlmIHByb2R1Y3QgaXMgYGZpcmVmb3hgIFsjXV8pCi0gIFRoZSBwYXRo
IHRvIGEgYGNlcnR1dGlsYCBiaW5hcnkgKGZvciB0ZXN0cyB0aGF0IG11c3QgYmUgcnVuIG92ZXIg
aHR0cHMpLgotCi1gYC0tbWV0YWRhdGFgYCAocmVxdWlyZWQpCi0gIFRoZSBwYXRoIHRvIGEgZGly
ZWN0b3J5IGNvbnRhaW5pbmcgdGVzdCBtZXRhZGF0YS4gWyNdXwotCi1gYC0tdGVzdHNgYCAocmVx
dWlyZWQpCi0gIFRoZSBwYXRoIHRvIGEgZGlyZWN0b3J5IGNvbnRhaW5pbmcgYSB3ZWItcGxhdGZv
cm0tdGVzdHMgY2hlY2tvdXQuCi0KLWBgLS1wcmVmcy1yb290YGAgKHJlcXVpcmVkIG9ubHkgd2hl
biB0ZXN0aW5nIGEgRmlyZWZveCBiaW5hcnkpCi0gIFRoZSBwYXRoIHRvIGEgZGlyZWN0b3J5IGNv
bnRhaW5pbmcgRmlyZWZveCB0ZXN0LWhhcm5lc3MgcHJlZmVyZW5jZXMuIFsjXV8KLQotYGAtLWNv
bmZpZ2BgIChzaG91bGQgZGVmYXVsdCB0byBgd3B0cnVubmVyLmRlZmF1bHQuaW5pYCkKLSAgVGhl
IHBhdGggdG8gdGhlIGNvbmZpZyAoaW5pKSBmaWxlLgotCi0uLiBbI10gVGhlIGBgLS1jZXJ0dXRp
bC1iaW5hcnlgYCBvcHRpb24gaXMgcmVxdWlyZWQgd2hlbiB0aGUgcHJvZHVjdCBpcwotICAgYGBm
aXJlZm94YGAgdW5sZXNzIGBgLS1zc2wtdHlwZT1ub25lYGAgaXMgc3BlY2lmaWVkLgotCi0uLiBb
I10gVGhlIGBgLS1tZXRhZGF0YWBgIHBhdGggaXMgdG8gYSBkaXJlY3RvcnkgdGhhdCBjb250YWlu
czoKLQotICAqIGEgYGBNQU5JRkVTVC5qc29uYGAgZmlsZSAoaW5zdHJ1Y3Rpb25zIG9uIGdlbmVy
YXRpbmcgdGhpcyBmaWxlIGFyZQotICAgIGF2YWlsYWJsZSBpbiB0aGUgYGRldGFpbGVkIGRvY3Vt
ZW50YXRpb24KLSAgICA8aHR0cDovL3dwdHJ1bm5lci5yZWFkdGhlZG9jcy5vcmcvZW4vbGF0ZXN0
L3VzYWdlLmh0bWwjaW5zdGFsbGluZy13cHRydW5uZXI+YF8pOwotICAgIGFuZAotICAqIChvcHRp
b25hbGx5KSBhbnkgZXhwZWN0YXRpb24gZmlsZXMgKHNlZSBiZWxvdykKLQotLi4gWyNdIEV4YW1w
bGUgYGAtLXByZWZzLXJvb3RgYCB2YWx1ZTogYGB+L21vemlsbGEtY2VudHJhbC90ZXN0aW5nL3By
b2ZpbGVzYGAuCi0KLVRoZXJlIGFyZSBhbHNvIGEgdmFyaWV0eSBvZiBvdGhlciBvcHRpb25zIGF2
YWlsYWJsZTsgdXNlIGBgLS1oZWxwYGAgdG8KLWxpc3QgdGhlbS4KLQotLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLQotRXhhbXBsZTogSG93IHRvIHN0YXJ0IHdwdHJ1bm5lcgotLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotCi1UbyB0ZXN0IGEgRmlyZWZveCBOaWdodGx5IGJ1
aWxkIGluIGFuIE9TIFggZW52aXJvbm1lbnQsIHlvdSBtaWdodCBzdGFydAotd3B0cnVubmVyIHVz
aW5nIHNvbWV0aGluZyBzaW1pbGFyIHRvIHRoZSBmb2xsb3dpbmcgZXhhbXBsZTo6Ci0KLSAgd3B0
cnVubmVyIC0tbWV0YWRhdGE9fi93ZWItcGxhdGZvcm0tdGVzdHMvIC0tdGVzdHM9fi93ZWItcGxh
dGZvcm0tdGVzdHMvIFwKLSAgICAtLWJpbmFyeT1+L21vemlsbGEtY2VudHJhbC9vYmoteDg2XzY0
LWFwcGxlLWRhcndpbjE0LjMuMC9kaXN0L05pZ2h0bHkuYXBwL0NvbnRlbnRzL01hY09TL2ZpcmVm
b3ggXAotICAgIC0tY2VydHV0aWwtYmluYXJ5PX4vbW96aWxsYS1jZW50cmFsL29iai14ODZfNjQt
YXBwbGUtZGFyd2luMTQuMy4wL3NlY3VyaXR5L25zcy9jbWQvY2VydHV0aWwvY2VydHV0aWwgXAot
ICAgIC0tcHJlZnMtcm9vdD1+L21vemlsbGEtY2VudHJhbC90ZXN0aW5nL3Byb2ZpbGVzCi0KLUFu
ZCB0byB0ZXN0IGEgQ2hyb21pdW0gYnVpbGQgaW4gYW4gT1MgWCBlbnZpcm9ubWVudCwgeW91IG1p
Z2h0IHN0YXJ0Ci13cHRydW5uZXIgdXNpbmcgc29tZXRoaW5nIHNpbWlsYXIgdG8gdGhlIGZvbGxv
d2luZyBleGFtcGxlOjoKLQotICB3cHRydW5uZXIgLS1tZXRhZGF0YT1+L3dlYi1wbGF0Zm9ybS10
ZXN0cy8gLS10ZXN0cz1+L3dlYi1wbGF0Zm9ybS10ZXN0cy8gXAotICAgIC0tYmluYXJ5PX4vY2hy
b21pdW0vc3JjL291dC9SZWxlYXNlL0Nocm9taXVtLmFwcC9Db250ZW50cy9NYWNPUy9DaHJvbWl1
bSBcCi0gICAgLS13ZWJkcml2ZXItYmluYXJ5PS91c3IvbG9jYWwvYmluL2Nocm9tZWRyaXZlciAt
LXByb2R1Y3Q9Y2hyb21lCi0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K
LUV4YW1wbGU6IEhvdyB0byBydW4gYSBzdWJzZXQgb2YgdGVzdHMKLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0KLQotVG8gcmVzdHJpY3QgYSB0ZXN0IHJ1biBqdXN0IHRvIHRl
c3RzIGluIGEgcGFydGljdWxhciB3ZWItcGxhdGZvcm0tdGVzdHMKLXN1YmRpcmVjdG9yeSwgc3Bl
Y2lmeSB0aGUgZGlyZWN0b3J5IG5hbWUgaW4gdGhlIHBvc2l0aW9uYWwgYXJndW1lbnRzIGFmdGVy
Ci10aGUgb3B0aW9uczsgZm9yIGV4YW1wbGUsIHJ1biBqdXN0IHRoZSB0ZXN0cyBpbiB0aGUgYGRv
bWAgc3ViZGlyZWN0b3J5OjoKLQotICB3cHRydW5uZXIgLS1tZXRhZGF0YT1+L3dlYi1wbGF0Zm9y
bS10ZXN0cy8gLS10ZXN0cz1+L3dlYi1wbGF0Zm9ybS10ZXN0cy8gXAotICAgIC0tYmluYXJ5PS9w
YXRoL3RvL2ZpcmVmb3ggLS1jZXJ0dXRpbC1iaW5hcnk9L3BhdGgvdG8vY2VydHV0aWwgXAotICAg
IC0tcHJlZnMtcm9vdD0vcGF0aC90by90ZXN0aW5nL3Byb2ZpbGVzIFwKLSAgICBkb20KLQotT3V0
cHV0Ci1+fn5+fn4KLQotQnkgZGVmYXVsdCB3cHRydW5uZXIganVzdCBkdW1wcyBpdHMgZW50aXJl
IG91dHB1dCBhcyByYXcgSlNPTiBtZXNzYWdlcwotdG8gc3Rkb3V0LiBUaGlzIGlzIGNvbnZlbmll
bnQgZm9yIHBpcGluZyBpbnRvIG90aGVyIHRvb2xzLCBidXQgbm90IGlkZWFsCi1mb3IgaHVtYW5z
IHJlYWRpbmcgdGhlIG91dHB1dC4KLQotQXMgYW4gYWx0ZXJuYXRpdmUsIHlvdSBjYW4gdXNlIHRo
ZSBgYC0tbG9nLW1hY2hgYCBvcHRpb24sIHdoaWNoIHByb3ZpZGVzCi1vdXRwdXQgaW4gYSByZWFz
b25hYmxlIGZvcm1hdCBmb3IgaHVtYW5zLiBUaGUgb3B0aW9uIHJlcXVpcmVzIGEgdmFsdWU6Ci1l
aXRoZXIgdGhlIHBhdGggZm9yIGEgZmlsZSB0byB3cml0ZSB0aGUgYG1hY2hgLWZvcm1hdHRlZCBv
dXRwdXQgdG8sIG9yCi0iYC1gIiAoYSBoeXBoZW4pIHRvIHdyaXRlIHRoZSBgbWFjaGAtZm9ybWF0
dGVkIG91dHB1dCB0byBzdGRvdXQuCi0KLVdoZW4gdXNpbmcgYGAtLWxvZy1tYWNoYGAsIG91dHB1
dCBvZiB0aGUgZnVsbCByYXcgSlNPTiBsb2cgaXMgc3RpbGwKLWF2YWlsYWJsZSwgZnJvbSB0aGUg
YGAtLWxvZy1yYXdgYCBvcHRpb24uIFNvIHRvIG91dHB1dCB0aGUgZnVsbCByYXcgSlNPTgotbG9n
IHRvIGEgZmlsZSBhbmQgYSBodW1hbi1yZWFkYWJsZSBzdW1tYXJ5IHRvIHN0ZG91dCwgeW91IG1p
Z2h0IHN0YXJ0Ci13cHRydW5uZXIgdXNpbmcgc29tZXRoaW5nIHNpbWlsYXIgdG8gdGhlIGZvbGxv
d2luZyBleGFtcGxlOjoKLQotICB3cHRydW5uZXIgLS1tZXRhZGF0YT1+L3dlYi1wbGF0Zm9ybS10
ZXN0cy8gLS10ZXN0cz1+L3dlYi1wbGF0Zm9ybS10ZXN0cy8gXAotICAgIC0tYmluYXJ5PS9wYXRo
L3RvL2ZpcmVmb3ggLS1jZXJ0dXRpbC1iaW5hcnk9L3BhdGgvdG8vY2VydHV0aWwgXAotICAgIC0t
cHJlZnMtcm9vdD0vcGF0aC90by90ZXN0aW5nL3Byb2ZpbGVzIFwKLSAgICAtLWxvZy1yYXc9b3V0
cHV0LmxvZyAtLWxvZy1tYWNoPS0KLQotRXhwZWN0YXRpb24gRGF0YQotfn5+fn5+fn5+fn5+fn5+
fgotCi13cHRydW5uZXIgaXMgZGVzaWduZWQgdG8gYmUgdXNlZCBpbiBhbiBlbnZpcm9ubWVudCB3
aGVyZSBpdCBpcyBub3QKLWp1c3QgbmVjZXNzYXJ5IHRvIGtub3cgd2hpY2ggdGVzdHMgcGFzc2Vk
LCBidXQgdG8gY29tcGFyZSB0aGUgcmVzdWx0cwotYmV0d2VlbiBydW5zLiBGb3IgdGhpcyByZWFz
b24gaXQgaXMgcG9zc2libGUgdG8gc3RvcmUgdGhlIHJlc3VsdHMgb2YgYQotcHJldmlvdXMgcnVu
IGluIGEgc2V0IG9mIGluaS1saWtlICJleHBlY3RhdGlvbiBmaWxlcyIuIFRoaXMgZm9ybWF0IGlz
Ci1kb2N1bWVudGVkIGJlbG93LiBUbyBnZW5lcmF0ZSB0aGUgZXhwZWN0YXRpb24gZmlsZXMgdXNl
IGB3cHRydW5uZXJgIHdpdGgKLXRoZSBgLS1sb2ctcmF3PS9wYXRoL3RvL2xvZy9maWxlYCBvcHRp
b24uIFRoaXMgY2FuIHRoZW4gYmUgdXNlZCBhcwotaW5wdXQgdG8gdGhlIGB3cHR1cGRhdGVgIHRv
b2wuCi0KLUV4cGVjdGF0aW9uIEZpbGUgRm9ybWF0Ci1+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgot
Ci1NZXRhZGF0YSBhYm91dCB0ZXN0cywgbm90YWJseSBpbmNsdWRpbmcgdGhlaXIgZXhwZWN0ZWQg
cmVzdWx0cywgaXMKLXN0b3JlZCBpbiBhIG1vZGlmaWVkIGluaS1saWtlIGZvcm1hdCB0aGF0IGlz
IGRlc2lnbmVkIHRvIGJlIGh1bWFuCi1lZGl0YWJsZSwgYnV0IGFsc28gdG8gYmUgbWFjaGluZSB1
cGRhdGFibGUuCi0KLUVhY2ggdGVzdCBmaWxlIHRoYXQgcmVxdWlyZXMgbWV0YWRhdGEgdG8gYmUg
c3BlY2lmaWVkIChiZWNhdXNlIGl0IGhhcwotYSBub24tZGVmYXVsdCBleHBlY3RhdGlvbiBvciBi
ZWNhdXNlIGl0IGlzIGRpc2FibGVkLCBmb3IgZXhhbXBsZSkgaGFzCi1hIGNvcnJlc3BvbmRpbmcg
ZXhwZWN0YXRpb24gZmlsZSBpbiB0aGUgYG1ldGFkYXRhYCBkaXJlY3RvcnkuIEZvcgotZXhhbXBs
ZSBhIHRlc3QgZmlsZSBgaHRtbC90ZXN0MS5odG1sYCBjb250YWluaW5nIGEgZmFpbGluZyB0ZXN0
IHdvdWxkCi1oYXZlIGFuIGV4cGVjdGF0aW9uIGZpbGUgY2FsbGVkIGBodG1sL3Rlc3QxLmh0bWwu
aW5pYCBpbiB0aGUKLWBtZXRhZGF0YWAgZGlyZWN0b3J5LgotCi1BbiBleGFtcGxlIG9mIGFuIGV4
cGVjdGF0aW9uIGZpbGUgaXM6OgotCi0gIGV4YW1wbGVfZGVmYXVsdF9rZXk6IGV4YW1wbGVfdmFs
dWUKLQotICBbZmlsZW5hbWUuaHRtbF0KLSAgICBbc3VidGVzdDFdCi0gICAgICBleHBlY3RlZDog
RkFJTAotCi0gICAgW3N1YnRlc3QyXQotICAgICAgZXhwZWN0ZWQ6Ci0gICAgICAgIGlmIHBsYXRm
b3JtID09ICd3aW4nOiBUSU1FT1VUCi0gICAgICAgIGlmIHBsYXRmb3JtID09ICdvc3gnOiBFUlJP
UgotICAgICAgICBGQUlMCi0KLSAgW2ZpbGVuYW1lLmh0bWw/cXVlcnk9c29tZXRoaW5nXQotICAg
IGRpc2FibGVkOiBidWcxMjM0NQotCi1UaGUgZmlsZSBjb25zaXN0cyBvZiB0d28gZWxlbWVudHMs
IGtleS12YWx1ZSBwYWlycyBhbmQKLXNlY3Rpb25zLgotCi1TZWN0aW9ucyBhcmUgZGVsaW1pdGVk
IGJ5IGhlYWRpbmdzIGVuY2xvc2VkIGluIHNxdWFyZSBicmFja2V0cy4gQW55Ci1jbG9zaW5nIHNx
dWFyZSBicmFja2V0IGluIHRoZSBoZWFkaW5nIGl0c2VsZiBteSBiZSBlc2NhcGVkIHdpdGggYQot
YmFja3NsYXNoLiBFYWNoIHNlY3Rpb24gbWF5IHRoZW4gY29udGFpbiBhbnkgbnVtYmVyIG9mIGtl
eS12YWx1ZSBwYWlycwotZm9sbG93ZWQgYnkgYW55IG51bWJlciBvZiBzdWJzZWN0aW9ucy4gU28g
dGhhdCBpdCBpcyBjbGVhciB3aGljaCBkYXRhCi1iZWxvbmdzIHRvIGVhY2ggc2VjdGlvbiB3aXRo
b3V0IHRoZSB1c2Ugb2YgZW5kLXNlY3Rpb24gbWFya2VycywgdGhlCi1kYXRhIGZvciBlYWNoIHNl
Y3Rpb24gKGkuZS4gdGhlIGtleS12YWx1ZSBwYWlycyBhbmQgc3Vic2VjdGlvbnMpIG11c3QKLWJl
IGluZGVudGVkIHVzaW5nIHNwYWNlcy4gSW5kZW50YXRpb24gbmVlZCBvbmx5IGJlIGNvbnNpc3Rl
bnQsIGJ1dAotdXNpbmcgdHdvIHNwYWNlcyBwZXIgbGV2ZWwgaXMgcmVjb21tZW5kZWQuCi0KLUlu
IGEgdGVzdCBleHBlY3RhdGlvbiBmaWxlLCBlYWNoIHJlc291cmNlIHByb3ZpZGVkIGJ5IHRoZSBm
aWxlIGhhcyBhCi1zaW5nbGUgc2VjdGlvbiwgd2l0aCB0aGUgc2VjdGlvbiBoZWFkaW5nIGJlaW5n
IHRoZSBwYXJ0IGFmdGVyIHRoZSBsYXN0Ci1gL2AgaW4gdGhlIHRlc3QgdXJsLiBUZXN0cyB0aGF0
IGhhdmUgc3Vic2VjdGlvbnMgbWF5IGhhdmUgc3Vic2VjdGlvbnMKLWZvciB0aG9zZSBzdWJ0ZXN0
cyBpbiB3aGljaCB0aGUgaGVhZGluZyBpcyB0aGUgbmFtZSBvZiB0aGUgc3VidGVzdC4KLQotU2lt
cGxlIGtleS12YWx1ZSBwYWlycyBhcmUgb2YgdGhlIGZvcm06OgotCi0gIGtleTogdmFsdWUKLQot
Tm90ZSB0aGF0IHVubGlrZSBpbmkgZmlsZXMsIG9ubHkgYDpgIGlzIGEgdmFsaWQgc2VwYXJhdG9y
OyBgPWAgd2lsbAotbm90IHdvcmsgYXMgZXhwZWN0ZWQuIEtleS12YWx1ZSBwYWlycyBtYXkgYWxz
byBoYXZlIGNvbmRpdGlvbmFsCi12YWx1ZXMgb2YgdGhlIGZvcm06OgotCi0gIGtleToKLSAgICBp
ZiBjb25kaXRpb24xOiB2YWx1ZTEKLSAgICBpZiBjb25kaXRpb24yOiB2YWx1ZTIKLSAgICBkZWZh
dWx0Ci0KLUluIHRoaXMgY2FzZSBlYWNoIGNvbmRpdGlvbmFsIGlzIGV2YWx1YXRlZCBpbiB0dXJu
IGFuZCB0aGUgdmFsdWUgaXMKLXRoYXQgb24gdGhlIHJpZ2h0IGhhbmQgc2lkZSBvZiB0aGUgZmly
c3QgbWF0Y2hpbmcgY29uZGl0aW9uYWwuIEluIHRoZQotY2FzZSB0aGF0IG5vIGNvbmRpdGlvbiBt
YXRjaGVzLCB0aGUgdW5jb25kaXRpb25hbCBkZWZhdWx0IGlzIHVzZWQuIElmCi1ubyBjb25kaXRp
b24gbWF0Y2hlcyBhbmQgbm8gZGVmYXVsdCBpcyBwcm92aWRlZCBpdCBpcyBlcXVpdmFsZW50IHRv
Ci10aGUga2V5IG5vdCBiZWluZyBwcmVzZW50LiBDb25kaXRpb25hbHMgdXNlIGEgc2ltcGxlIHB5
dGhvbi1saWtlIGV4cHJlc3Npb24KLWxhbmd1YWdlIGUuZy46OgotCi0gIGlmIGRlYnVnIGFuZCAo
cGxhdGZvcm0gPT0gImxpbnV4IiBvciBwbGF0Zm9ybSA9PSAib3N4Iik6IEZBSUwKLQotRm9yIHRl
c3QgZXhwZWN0YXRpb25zIHRoZSBhdmFpbGFibGUgdmFyaWFibGVzIGFyZSB0aG9zZSBpbiB0aGUK
LWBydW5faW5mb2Agd2hpY2ggZm9yIGRlc2t0b3AgYXJlIGB2ZXJzaW9uYCwgYG9zYCwgYGJpdHNg
LCBgcHJvY2Vzc29yYCwKLWBkZWJ1Z2AgYW5kIGBwcm9kdWN0YC4KLQotS2V5LXZhbHVlIHBhaXJz
IHNwZWNpZmllZCBhdCB0aGUgdG9wIGxldmVsIG9mIHRoZSBmaWxlIGJlZm9yZSBhbnkKLXNlY3Rp
b25zIGFyZSBzcGVjaWFsIGFzIHRoZXkgcHJvdmlkZSBkZWZhdWx0cyBmb3IgdGhlIHJlc3Qgb2Yg
dGhlIGZpbGUKLWUuZy46OgotCi0gIGtleTE6IHZhbHVlMQotCi0gIFtzZWN0aW9uIDFdCi0gICAg
a2V5MjogdmFsdWUyCi0KLSAgW3NlY3Rpb24gMl0KLSAgICBrZXkxOiB2YWx1ZTMKLQotSW4gdGhp
cyBjYXNlLCBpbnNpZGUgc2VjdGlvbiAxLCBga2V5MWAgd291bGQgaGF2ZSB0aGUgdmFsdWUgYHZh
bHVlMWAKLWFuZCBga2V5MmAgdGhlIHZhbHVlIGB2YWx1ZTJgIHdoZXJlYXMgaW4gc2VjdGlvbiAy
IGBrZXkxYCB3b3VsZCBoYXZlCi10aGUgdmFsdWUgYHZhbHVlM2AgYW5kIGBrZXkyYCB3b3VsZCBi
ZSB1bmRlZmluZWQuCi0KLVRoZSB3ZWItcGxhdGZvcm0tdGVzdCBoYXJuZXNzIGtub3dzIGFib3V0
IHNldmVyYWwga2V5czoKLQotYGV4cGVjdGVkYAotICBNdXN0IGV2YWx1YXRlIHRvIGEgcG9zc2li
bGUgdGVzdCBzdGF0dXMgaW5kaWNhdGluZyB0aGUgZXhwZWN0ZWQKLSAgcmVzdWx0IG9mIHRoZSB0
ZXN0LiBUaGUgaW1wbGljaXQgZGVmYXVsdCBpcyBQQVNTIG9yIE9LIHdoZW4gdGhlCi0gIGZpZWxk
IGlzbid0IHByZXNlbnQuCi0KLWBkaXNhYmxlZGAKLSAgQW55IHZhbHVlIGluZGljYXRlcyB0aGF0
IHRoZSB0ZXN0IGlzIGRpc2FibGVkLgotCi1gcmVmdHlwZWAKLSAgVGhlIHR5cGUgb2YgY29tcGFy
aXNvbiBmb3IgcmVmdGVzdHM7IGVpdGhlciBgPT1gIG9yIGAhPWAuCi0KLWByZWZ1cmxgCi0gIFRo
ZSByZWZlcmVuY2UgdXJsIGZvciByZWZ0ZXN0cy4KKyAgIGRvY3MvdXNhZ2UKKyAgIGRvY3MvZXhw
ZWN0YXRpb24KKyAgIGRvY3MvZGVzaWduCisgICBkb2NzL2ludGVybmFscwogCiAuLiBfYHdlYi1w
bGF0Zm9ybS10ZXN0cyB0ZXN0c3VpdGVgOiBodHRwczovL2dpdGh1Yi5jb20vd2ViLXBsYXRmb3Jt
LXRlc3RzL3dwdApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvZG9jcy9NYWtlZmlsZSBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL2RvY3MvTWFrZWZp
bGUKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGQwMmI2YzVlN2M0ZjI2NzAzMWJkMzkw
MTNjMzg4NGFiNTg1MzM4ZjguLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy93cHRydW5uZXIvZG9jcy9NYWtlZmlsZQorKysgL2Rldi9udWxsCkBAIC0xLDE3NyArMCwwIEBA
Ci0jIE1ha2VmaWxlIGZvciBTcGhpbnggZG9jdW1lbnRhdGlvbgotIwotCi0jIFlvdSBjYW4gc2V0
IHRoZXNlIHZhcmlhYmxlcyBmcm9tIHRoZSBjb21tYW5kIGxpbmUuCi1TUEhJTlhPUFRTICAgID0K
LVNQSElOWEJVSUxEICAgPSBzcGhpbngtYnVpbGQKLVBBUEVSICAgICAgICAgPQotQlVJTERESVIg
ICAgICA9IF9idWlsZAotCi0jIFVzZXItZnJpZW5kbHkgY2hlY2sgZm9yIHNwaGlueC1idWlsZAot
aWZlcSAoJChzaGVsbCB3aGljaCAkKFNQSElOWEJVSUxEKSA+L2Rldi9udWxsIDI+JjE7IGVjaG8g
JCQ/KSwgMSkKLSQoZXJyb3IgVGhlICckKFNQSElOWEJVSUxEKScgY29tbWFuZCB3YXMgbm90IGZv
dW5kLiBNYWtlIHN1cmUgeW91IGhhdmUgU3BoaW54IGluc3RhbGxlZCwgdGhlbiBzZXQgdGhlIFNQ
SElOWEJVSUxEIGVudmlyb25tZW50IHZhcmlhYmxlIHRvIHBvaW50IHRvIHRoZSBmdWxsIHBhdGgg
b2YgdGhlICckKFNQSElOWEJVSUxEKScgZXhlY3V0YWJsZS4gQWx0ZXJuYXRpdmVseSB5b3UgY2Fu
IGFkZCB0aGUgZGlyZWN0b3J5IHdpdGggdGhlIGV4ZWN1dGFibGUgdG8geW91ciBQQVRILiBJZiB5
b3UgZG9uJ3QgaGF2ZSBTcGhpbnggaW5zdGFsbGVkLCBncmFiIGl0IGZyb20gaHR0cDovL3NwaGlu
eC1kb2Mub3JnLykKLWVuZGlmCi0KLSMgSW50ZXJuYWwgdmFyaWFibGVzLgotUEFQRVJPUFRfYTQg
ICAgID0gLUQgbGF0ZXhfcGFwZXJfc2l6ZT1hNAotUEFQRVJPUFRfbGV0dGVyID0gLUQgbGF0ZXhf
cGFwZXJfc2l6ZT1sZXR0ZXIKLUFMTFNQSElOWE9QVFMgICA9IC1kICQoQlVJTERESVIpL2RvY3Ry
ZWVzICQoUEFQRVJPUFRfJChQQVBFUikpICQoU1BISU5YT1BUUykgLgotIyB0aGUgaTE4biBidWls
ZGVyIGNhbm5vdCBzaGFyZSB0aGUgZW52aXJvbm1lbnQgYW5kIGRvY3RyZWVzIHdpdGggdGhlIG90
aGVycwotSTE4TlNQSElOWE9QVFMgID0gJChQQVBFUk9QVF8kKFBBUEVSKSkgJChTUEhJTlhPUFRT
KSAuCi0KLS5QSE9OWTogaGVscCBjbGVhbiBodG1sIGRpcmh0bWwgc2luZ2xlaHRtbCBwaWNrbGUg
anNvbiBodG1saGVscCBxdGhlbHAgZGV2aGVscCBlcHViIGxhdGV4IGxhdGV4cGRmIHRleHQgbWFu
IGNoYW5nZXMgbGlua2NoZWNrIGRvY3Rlc3QgZ2V0dGV4dAotCi1oZWxwOgotCUBlY2hvICJQbGVh
c2UgdXNlIFxgbWFrZSA8dGFyZ2V0Picgd2hlcmUgPHRhcmdldD4gaXMgb25lIG9mIgotCUBlY2hv
ICIgIGh0bWwgICAgICAgdG8gbWFrZSBzdGFuZGFsb25lIEhUTUwgZmlsZXMiCi0JQGVjaG8gIiAg
ZGlyaHRtbCAgICB0byBtYWtlIEhUTUwgZmlsZXMgbmFtZWQgaW5kZXguaHRtbCBpbiBkaXJlY3Rv
cmllcyIKLQlAZWNobyAiICBzaW5nbGVodG1sIHRvIG1ha2UgYSBzaW5nbGUgbGFyZ2UgSFRNTCBm
aWxlIgotCUBlY2hvICIgIHBpY2tsZSAgICAgdG8gbWFrZSBwaWNrbGUgZmlsZXMiCi0JQGVjaG8g
IiAganNvbiAgICAgICB0byBtYWtlIEpTT04gZmlsZXMiCi0JQGVjaG8gIiAgaHRtbGhlbHAgICB0
byBtYWtlIEhUTUwgZmlsZXMgYW5kIGEgSFRNTCBoZWxwIHByb2plY3QiCi0JQGVjaG8gIiAgcXRo
ZWxwICAgICB0byBtYWtlIEhUTUwgZmlsZXMgYW5kIGEgcXRoZWxwIHByb2plY3QiCi0JQGVjaG8g
IiAgZGV2aGVscCAgICB0byBtYWtlIEhUTUwgZmlsZXMgYW5kIGEgRGV2aGVscCBwcm9qZWN0Igot
CUBlY2hvICIgIGVwdWIgICAgICAgdG8gbWFrZSBhbiBlcHViIgotCUBlY2hvICIgIGxhdGV4ICAg
ICAgdG8gbWFrZSBMYVRlWCBmaWxlcywgeW91IGNhbiBzZXQgUEFQRVI9YTQgb3IgUEFQRVI9bGV0
dGVyIgotCUBlY2hvICIgIGxhdGV4cGRmICAgdG8gbWFrZSBMYVRlWCBmaWxlcyBhbmQgcnVuIHRo
ZW0gdGhyb3VnaCBwZGZsYXRleCIKLQlAZWNobyAiICBsYXRleHBkZmphIHRvIG1ha2UgTGFUZVgg
ZmlsZXMgYW5kIHJ1biB0aGVtIHRocm91Z2ggcGxhdGV4L2R2aXBkZm14IgotCUBlY2hvICIgIHRl
eHQgICAgICAgdG8gbWFrZSB0ZXh0IGZpbGVzIgotCUBlY2hvICIgIG1hbiAgICAgICAgdG8gbWFr
ZSBtYW51YWwgcGFnZXMiCi0JQGVjaG8gIiAgdGV4aW5mbyAgICB0byBtYWtlIFRleGluZm8gZmls
ZXMiCi0JQGVjaG8gIiAgaW5mbyAgICAgICB0byBtYWtlIFRleGluZm8gZmlsZXMgYW5kIHJ1biB0
aGVtIHRocm91Z2ggbWFrZWluZm8iCi0JQGVjaG8gIiAgZ2V0dGV4dCAgICB0byBtYWtlIFBPIG1l
c3NhZ2UgY2F0YWxvZ3MiCi0JQGVjaG8gIiAgY2hhbmdlcyAgICB0byBtYWtlIGFuIG92ZXJ2aWV3
IG9mIGFsbCBjaGFuZ2VkL2FkZGVkL2RlcHJlY2F0ZWQgaXRlbXMiCi0JQGVjaG8gIiAgeG1sICAg
ICAgICB0byBtYWtlIERvY3V0aWxzLW5hdGl2ZSBYTUwgZmlsZXMiCi0JQGVjaG8gIiAgcHNldWRv
eG1sICB0byBtYWtlIHBzZXVkb3htbC1YTUwgZmlsZXMgZm9yIGRpc3BsYXkgcHVycG9zZXMiCi0J
QGVjaG8gIiAgbGlua2NoZWNrICB0byBjaGVjayBhbGwgZXh0ZXJuYWwgbGlua3MgZm9yIGludGVn
cml0eSIKLQlAZWNobyAiICBkb2N0ZXN0ICAgIHRvIHJ1biBhbGwgZG9jdGVzdHMgZW1iZWRkZWQg
aW4gdGhlIGRvY3VtZW50YXRpb24gKGlmIGVuYWJsZWQpIgotCi1jbGVhbjoKLQlybSAtcmYgJChC
VUlMRERJUikvKgotCi1odG1sOgotCSQoU1BISU5YQlVJTEQpIC1iIGh0bWwgJChBTExTUEhJTlhP
UFRTKSAkKEJVSUxERElSKS9odG1sCi0JQGVjaG8KLQlAZWNobyAiQnVpbGQgZmluaXNoZWQuIFRo
ZSBIVE1MIHBhZ2VzIGFyZSBpbiAkKEJVSUxERElSKS9odG1sLiIKLQotZGlyaHRtbDoKLQkkKFNQ
SElOWEJVSUxEKSAtYiBkaXJodG1sICQoQUxMU1BISU5YT1BUUykgJChCVUlMRERJUikvZGlyaHRt
bAotCUBlY2hvCi0JQGVjaG8gIkJ1aWxkIGZpbmlzaGVkLiBUaGUgSFRNTCBwYWdlcyBhcmUgaW4g
JChCVUlMRERJUikvZGlyaHRtbC4iCi0KLXNpbmdsZWh0bWw6Ci0JJChTUEhJTlhCVUlMRCkgLWIg
c2luZ2xlaHRtbCAkKEFMTFNQSElOWE9QVFMpICQoQlVJTERESVIpL3NpbmdsZWh0bWwKLQlAZWNo
bwotCUBlY2hvICJCdWlsZCBmaW5pc2hlZC4gVGhlIEhUTUwgcGFnZSBpcyBpbiAkKEJVSUxERElS
KS9zaW5nbGVodG1sLiIKLQotcGlja2xlOgotCSQoU1BISU5YQlVJTEQpIC1iIHBpY2tsZSAkKEFM
TFNQSElOWE9QVFMpICQoQlVJTERESVIpL3BpY2tsZQotCUBlY2hvCi0JQGVjaG8gIkJ1aWxkIGZp
bmlzaGVkOyBub3cgeW91IGNhbiBwcm9jZXNzIHRoZSBwaWNrbGUgZmlsZXMuIgotCi1qc29uOgot
CSQoU1BISU5YQlVJTEQpIC1iIGpzb24gJChBTExTUEhJTlhPUFRTKSAkKEJVSUxERElSKS9qc29u
Ci0JQGVjaG8KLQlAZWNobyAiQnVpbGQgZmluaXNoZWQ7IG5vdyB5b3UgY2FuIHByb2Nlc3MgdGhl
IEpTT04gZmlsZXMuIgotCi1odG1saGVscDoKLQkkKFNQSElOWEJVSUxEKSAtYiBodG1saGVscCAk
KEFMTFNQSElOWE9QVFMpICQoQlVJTERESVIpL2h0bWxoZWxwCi0JQGVjaG8KLQlAZWNobyAiQnVp
bGQgZmluaXNoZWQ7IG5vdyB5b3UgY2FuIHJ1biBIVE1MIEhlbHAgV29ya3Nob3Agd2l0aCB0aGUi
IFwKLQkgICAgICAiLmhocCBwcm9qZWN0IGZpbGUgaW4gJChCVUlMRERJUikvaHRtbGhlbHAuIgot
Ci1xdGhlbHA6Ci0JJChTUEhJTlhCVUlMRCkgLWIgcXRoZWxwICQoQUxMU1BISU5YT1BUUykgJChC
VUlMRERJUikvcXRoZWxwCi0JQGVjaG8KLQlAZWNobyAiQnVpbGQgZmluaXNoZWQ7IG5vdyB5b3Ug
Y2FuIHJ1biAicWNvbGxlY3Rpb25nZW5lcmF0b3IiIHdpdGggdGhlIiBcCi0JICAgICAgIi5xaGNw
IHByb2plY3QgZmlsZSBpbiAkKEJVSUxERElSKS9xdGhlbHAsIGxpa2UgdGhpczoiCi0JQGVjaG8g
IiMgcWNvbGxlY3Rpb25nZW5lcmF0b3IgJChCVUlMRERJUikvcXRoZWxwL3dwdHJ1bm5lci5xaGNw
IgotCUBlY2hvICJUbyB2aWV3IHRoZSBoZWxwIGZpbGU6IgotCUBlY2hvICIjIGFzc2lzdGFudCAt
Y29sbGVjdGlvbkZpbGUgJChCVUlMRERJUikvcXRoZWxwL3dwdHJ1bm5lci5xaGMiCi0KLWRldmhl
bHA6Ci0JJChTUEhJTlhCVUlMRCkgLWIgZGV2aGVscCAkKEFMTFNQSElOWE9QVFMpICQoQlVJTERE
SVIpL2RldmhlbHAKLQlAZWNobwotCUBlY2hvICJCdWlsZCBmaW5pc2hlZC4iCi0JQGVjaG8gIlRv
IHZpZXcgdGhlIGhlbHAgZmlsZToiCi0JQGVjaG8gIiMgbWtkaXIgLXAgJCRIT01FLy5sb2NhbC9z
aGFyZS9kZXZoZWxwL3dwdHJ1bm5lciIKLQlAZWNobyAiIyBsbiAtcyAkKEJVSUxERElSKS9kZXZo
ZWxwICQkSE9NRS8ubG9jYWwvc2hhcmUvZGV2aGVscC93cHRydW5uZXIiCi0JQGVjaG8gIiMgZGV2
aGVscCIKLQotZXB1YjoKLQkkKFNQSElOWEJVSUxEKSAtYiBlcHViICQoQUxMU1BISU5YT1BUUykg
JChCVUlMRERJUikvZXB1YgotCUBlY2hvCi0JQGVjaG8gIkJ1aWxkIGZpbmlzaGVkLiBUaGUgZXB1
YiBmaWxlIGlzIGluICQoQlVJTERESVIpL2VwdWIuIgotCi1sYXRleDoKLQkkKFNQSElOWEJVSUxE
KSAtYiBsYXRleCAkKEFMTFNQSElOWE9QVFMpICQoQlVJTERESVIpL2xhdGV4Ci0JQGVjaG8KLQlA
ZWNobyAiQnVpbGQgZmluaXNoZWQ7IHRoZSBMYVRlWCBmaWxlcyBhcmUgaW4gJChCVUlMRERJUikv
bGF0ZXguIgotCUBlY2hvICJSdW4gXGBtYWtlJyBpbiB0aGF0IGRpcmVjdG9yeSB0byBydW4gdGhl
c2UgdGhyb3VnaCAocGRmKWxhdGV4IiBcCi0JICAgICAgIih1c2UgXGBtYWtlIGxhdGV4cGRmJyBo
ZXJlIHRvIGRvIHRoYXQgYXV0b21hdGljYWxseSkuIgotCi1sYXRleHBkZjoKLQkkKFNQSElOWEJV
SUxEKSAtYiBsYXRleCAkKEFMTFNQSElOWE9QVFMpICQoQlVJTERESVIpL2xhdGV4Ci0JQGVjaG8g
IlJ1bm5pbmcgTGFUZVggZmlsZXMgdGhyb3VnaCBwZGZsYXRleC4uLiIKLQkkKE1BS0UpIC1DICQo
QlVJTERESVIpL2xhdGV4IGFsbC1wZGYKLQlAZWNobyAicGRmbGF0ZXggZmluaXNoZWQ7IHRoZSBQ
REYgZmlsZXMgYXJlIGluICQoQlVJTERESVIpL2xhdGV4LiIKLQotbGF0ZXhwZGZqYToKLQkkKFNQ
SElOWEJVSUxEKSAtYiBsYXRleCAkKEFMTFNQSElOWE9QVFMpICQoQlVJTERESVIpL2xhdGV4Ci0J
QGVjaG8gIlJ1bm5pbmcgTGFUZVggZmlsZXMgdGhyb3VnaCBwbGF0ZXggYW5kIGR2aXBkZm14Li4u
IgotCSQoTUFLRSkgLUMgJChCVUlMRERJUikvbGF0ZXggYWxsLXBkZi1qYQotCUBlY2hvICJwZGZs
YXRleCBmaW5pc2hlZDsgdGhlIFBERiBmaWxlcyBhcmUgaW4gJChCVUlMRERJUikvbGF0ZXguIgot
Ci10ZXh0OgotCSQoU1BISU5YQlVJTEQpIC1iIHRleHQgJChBTExTUEhJTlhPUFRTKSAkKEJVSUxE
RElSKS90ZXh0Ci0JQGVjaG8KLQlAZWNobyAiQnVpbGQgZmluaXNoZWQuIFRoZSB0ZXh0IGZpbGVz
IGFyZSBpbiAkKEJVSUxERElSKS90ZXh0LiIKLQotbWFuOgotCSQoU1BISU5YQlVJTEQpIC1iIG1h
biAkKEFMTFNQSElOWE9QVFMpICQoQlVJTERESVIpL21hbgotCUBlY2hvCi0JQGVjaG8gIkJ1aWxk
IGZpbmlzaGVkLiBUaGUgbWFudWFsIHBhZ2VzIGFyZSBpbiAkKEJVSUxERElSKS9tYW4uIgotCi10
ZXhpbmZvOgotCSQoU1BISU5YQlVJTEQpIC1iIHRleGluZm8gJChBTExTUEhJTlhPUFRTKSAkKEJV
SUxERElSKS90ZXhpbmZvCi0JQGVjaG8KLQlAZWNobyAiQnVpbGQgZmluaXNoZWQuIFRoZSBUZXhp
bmZvIGZpbGVzIGFyZSBpbiAkKEJVSUxERElSKS90ZXhpbmZvLiIKLQlAZWNobyAiUnVuIFxgbWFr
ZScgaW4gdGhhdCBkaXJlY3RvcnkgdG8gcnVuIHRoZXNlIHRocm91Z2ggbWFrZWluZm8iIFwKLQkg
ICAgICAiKHVzZSBcYG1ha2UgaW5mbycgaGVyZSB0byBkbyB0aGF0IGF1dG9tYXRpY2FsbHkpLiIK
LQotaW5mbzoKLQkkKFNQSElOWEJVSUxEKSAtYiB0ZXhpbmZvICQoQUxMU1BISU5YT1BUUykgJChC
VUlMRERJUikvdGV4aW5mbwotCUBlY2hvICJSdW5uaW5nIFRleGluZm8gZmlsZXMgdGhyb3VnaCBt
YWtlaW5mby4uLiIKLQltYWtlIC1DICQoQlVJTERESVIpL3RleGluZm8gaW5mbwotCUBlY2hvICJt
YWtlaW5mbyBmaW5pc2hlZDsgdGhlIEluZm8gZmlsZXMgYXJlIGluICQoQlVJTERESVIpL3RleGlu
Zm8uIgotCi1nZXR0ZXh0OgotCSQoU1BISU5YQlVJTEQpIC1iIGdldHRleHQgJChJMThOU1BISU5Y
T1BUUykgJChCVUlMRERJUikvbG9jYWxlCi0JQGVjaG8KLQlAZWNobyAiQnVpbGQgZmluaXNoZWQu
IFRoZSBtZXNzYWdlIGNhdGFsb2dzIGFyZSBpbiAkKEJVSUxERElSKS9sb2NhbGUuIgotCi1jaGFu
Z2VzOgotCSQoU1BISU5YQlVJTEQpIC1iIGNoYW5nZXMgJChBTExTUEhJTlhPUFRTKSAkKEJVSUxE
RElSKS9jaGFuZ2VzCi0JQGVjaG8KLQlAZWNobyAiVGhlIG92ZXJ2aWV3IGZpbGUgaXMgaW4gJChC
VUlMRERJUikvY2hhbmdlcy4iCi0KLWxpbmtjaGVjazoKLQkkKFNQSElOWEJVSUxEKSAtYiBsaW5r
Y2hlY2sgJChBTExTUEhJTlhPUFRTKSAkKEJVSUxERElSKS9saW5rY2hlY2sKLQlAZWNobwotCUBl
Y2hvICJMaW5rIGNoZWNrIGNvbXBsZXRlOyBsb29rIGZvciBhbnkgZXJyb3JzIGluIHRoZSBhYm92
ZSBvdXRwdXQgIiBcCi0JICAgICAgIm9yIGluICQoQlVJTERESVIpL2xpbmtjaGVjay9vdXRwdXQu
dHh0LiIKLQotZG9jdGVzdDoKLQkkKFNQSElOWEJVSUxEKSAtYiBkb2N0ZXN0ICQoQUxMU1BISU5Y
T1BUUykgJChCVUlMRERJUikvZG9jdGVzdAotCUBlY2hvICJUZXN0aW5nIG9mIGRvY3Rlc3RzIGlu
IHRoZSBzb3VyY2VzIGZpbmlzaGVkLCBsb29rIGF0IHRoZSAiIFwKLQkgICAgICAicmVzdWx0cyBp
biAkKEJVSUxERElSKS9kb2N0ZXN0L291dHB1dC50eHQuIgotCi14bWw6Ci0JJChTUEhJTlhCVUlM
RCkgLWIgeG1sICQoQUxMU1BISU5YT1BUUykgJChCVUlMRERJUikveG1sCi0JQGVjaG8KLQlAZWNo
byAiQnVpbGQgZmluaXNoZWQuIFRoZSBYTUwgZmlsZXMgYXJlIGluICQoQlVJTERESVIpL3htbC4i
Ci0KLXBzZXVkb3htbDoKLQkkKFNQSElOWEJVSUxEKSAtYiBwc2V1ZG94bWwgJChBTExTUEhJTlhP
UFRTKSAkKEJVSUxERElSKS9wc2V1ZG94bWwKLQlAZWNobwotCUBlY2hvICJCdWlsZCBmaW5pc2hl
ZC4gVGhlIHBzZXVkby1YTUwgZmlsZXMgYXJlIGluICQoQlVJTERESVIpL3BzZXVkb3htbC4iCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3dwdHJ1bm5lci9kb2NzL2NvbmYucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci9kb2NzL2NvbmYucHkKZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IGMyZDRmZDVhYjk1MWI0NDYzNjI4OTU5NzE5MmJjZjNiODg2OWI4
OWMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvZG9j
cy9jb25mLnB5CisrKyAvZGV2L251bGwKQEAgLTEsMjY3ICswLDAgQEAKLSMgLSotIGNvZGluZzog
dXRmLTggLSotCi0jCi0jIHdwdHJ1bm5lciBkb2N1bWVudGF0aW9uIGJ1aWxkIGNvbmZpZ3VyYXRp
b24gZmlsZSwgY3JlYXRlZCBieQotIyBzcGhpbngtcXVpY2tzdGFydCBvbiBNb24gTWF5IDE5IDE4
OjE0OjIwIDIwMTQuCi0jCi0jIFRoaXMgZmlsZSBpcyBleGVjZmlsZSgpZCB3aXRoIHRoZSBjdXJy
ZW50IGRpcmVjdG9yeSBzZXQgdG8gaXRzCi0jIGNvbnRhaW5pbmcgZGlyLgotIwotIyBOb3RlIHRo
YXQgbm90IGFsbCBwb3NzaWJsZSBjb25maWd1cmF0aW9uIHZhbHVlcyBhcmUgcHJlc2VudCBpbiB0
aGlzCi0jIGF1dG9nZW5lcmF0ZWQgZmlsZS4KLSMKLSMgQWxsIGNvbmZpZ3VyYXRpb24gdmFsdWVz
IGhhdmUgYSBkZWZhdWx0OyB2YWx1ZXMgdGhhdCBhcmUgY29tbWVudGVkIG91dAotIyBzZXJ2ZSB0
byBzaG93IHRoZSBkZWZhdWx0LgotCi0jaW1wb3J0IHN5cwotI2ltcG9ydCBvcwotCi0jIElmIGV4
dGVuc2lvbnMgKG9yIG1vZHVsZXMgdG8gZG9jdW1lbnQgd2l0aCBhdXRvZG9jKSBhcmUgaW4gYW5v
dGhlciBkaXJlY3RvcnksCi0jIGFkZCB0aGVzZSBkaXJlY3RvcmllcyB0byBzeXMucGF0aCBoZXJl
LiBJZiB0aGUgZGlyZWN0b3J5IGlzIHJlbGF0aXZlIHRvIHRoZQotIyBkb2N1bWVudGF0aW9uIHJv
b3QsIHVzZSBvcy5wYXRoLmFic3BhdGggdG8gbWFrZSBpdCBhYnNvbHV0ZSwgbGlrZSBzaG93biBo
ZXJlLgotI3N5cy5wYXRoLmluc2VydCgwLCBvcy5wYXRoLmFic3BhdGgoJy4nKSkKLQotIyAtLSBH
ZW5lcmFsIGNvbmZpZ3VyYXRpb24gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tCi0KLSMgSWYgeW91ciBkb2N1bWVudGF0aW9uIG5lZWRzIGEgbWluaW1hbCBT
cGhpbnggdmVyc2lvbiwgc3RhdGUgaXQgaGVyZS4KLSNuZWVkc19zcGhpbnggPSAnMS4wJwotCi0j
IEFkZCBhbnkgU3BoaW54IGV4dGVuc2lvbiBtb2R1bGUgbmFtZXMgaGVyZSwgYXMgc3RyaW5ncy4g
VGhleSBjYW4gYmUKLSMgZXh0ZW5zaW9ucyBjb21pbmcgd2l0aCBTcGhpbnggKG5hbWVkICdzcGhp
bnguZXh0LionKSBvciB5b3VyIGN1c3RvbQotIyBvbmVzLgotZXh0ZW5zaW9ucyA9IFsKLSAgICAn
c3BoaW54LmV4dC5hdXRvZG9jJywKLSAgICAnc3BoaW54LmV4dC5pbnRlcnNwaGlueCcsCi0gICAg
J3NwaGlueC5leHQudmlld2NvZGUnLAotXQotCi0jIEFkZCBhbnkgcGF0aHMgdGhhdCBjb250YWlu
IHRlbXBsYXRlcyBoZXJlLCByZWxhdGl2ZSB0byB0aGlzIGRpcmVjdG9yeS4KLXRlbXBsYXRlc19w
YXRoID0gWydfdGVtcGxhdGVzJ10KLQotIyBUaGUgc3VmZml4IG9mIHNvdXJjZSBmaWxlbmFtZXMu
Ci1zb3VyY2Vfc3VmZml4ID0gJy5yc3QnCi0KLSMgVGhlIGVuY29kaW5nIG9mIHNvdXJjZSBmaWxl
cy4KLSNzb3VyY2VfZW5jb2RpbmcgPSAndXRmLTgtc2lnJwotCi0jIFRoZSBtYXN0ZXIgdG9jdHJl
ZSBkb2N1bWVudC4KLW1hc3Rlcl9kb2MgPSAnaW5kZXgnCi0KLSMgR2VuZXJhbCBpbmZvcm1hdGlv
biBhYm91dCB0aGUgcHJvamVjdC4KLXByb2plY3QgPSB1J3dwdHJ1bm5lcicKLWNvcHlyaWdodCA9
IHUnJwotCi0jIFRoZSB2ZXJzaW9uIGluZm8gZm9yIHRoZSBwcm9qZWN0IHlvdSdyZSBkb2N1bWVu
dGluZywgYWN0cyBhcyByZXBsYWNlbWVudCBmb3IKLSMgfHZlcnNpb258IGFuZCB8cmVsZWFzZXws
IGFsc28gdXNlZCBpbiB2YXJpb3VzIG90aGVyIHBsYWNlcyB0aHJvdWdob3V0IHRoZQotIyBidWls
dCBkb2N1bWVudHMuCi0jCi0jIFRoZSBzaG9ydCBYLlkgdmVyc2lvbi4KLXZlcnNpb24gPSAnMC4z
JwotIyBUaGUgZnVsbCB2ZXJzaW9uLCBpbmNsdWRpbmcgYWxwaGEvYmV0YS9yYyB0YWdzLgotcmVs
ZWFzZSA9ICcwLjMnCi0KLSMgVGhlIGxhbmd1YWdlIGZvciBjb250ZW50IGF1dG9nZW5lcmF0ZWQg
YnkgU3BoaW54LiBSZWZlciB0byBkb2N1bWVudGF0aW9uCi0jIGZvciBhIGxpc3Qgb2Ygc3VwcG9y
dGVkIGxhbmd1YWdlcy4KLSNsYW5ndWFnZSA9IE5vbmUKLQotIyBUaGVyZSBhcmUgdHdvIG9wdGlv
bnMgZm9yIHJlcGxhY2luZyB8dG9kYXl8OiBlaXRoZXIsIHlvdSBzZXQgdG9kYXkgdG8gc29tZQot
IyBub24tZmFsc2UgdmFsdWUsIHRoZW4gaXQgaXMgdXNlZDoKLSN0b2RheSA9ICcnCi0jIEVsc2Us
IHRvZGF5X2ZtdCBpcyB1c2VkIGFzIHRoZSBmb3JtYXQgZm9yIGEgc3RyZnRpbWUgY2FsbC4KLSN0
b2RheV9mbXQgPSAnJUIgJWQsICVZJwotCi0jIExpc3Qgb2YgcGF0dGVybnMsIHJlbGF0aXZlIHRv
IHNvdXJjZSBkaXJlY3RvcnksIHRoYXQgbWF0Y2ggZmlsZXMgYW5kCi0jIGRpcmVjdG9yaWVzIHRv
IGlnbm9yZSB3aGVuIGxvb2tpbmcgZm9yIHNvdXJjZSBmaWxlcy4KLWV4Y2x1ZGVfcGF0dGVybnMg
PSBbJ19idWlsZCddCi0KLSMgVGhlIHJlU1QgZGVmYXVsdCByb2xlICh1c2VkIGZvciB0aGlzIG1h
cmt1cDogYHRleHRgKSB0byB1c2UgZm9yIGFsbAotIyBkb2N1bWVudHMuCi0jZGVmYXVsdF9yb2xl
ID0gTm9uZQotCi0jIElmIHRydWUsICcoKScgd2lsbCBiZSBhcHBlbmRlZCB0byA6ZnVuYzogZXRj
LiBjcm9zcy1yZWZlcmVuY2UgdGV4dC4KLSNhZGRfZnVuY3Rpb25fcGFyZW50aGVzZXMgPSBUcnVl
Ci0KLSMgSWYgdHJ1ZSwgdGhlIGN1cnJlbnQgbW9kdWxlIG5hbWUgd2lsbCBiZSBwcmVwZW5kZWQg
dG8gYWxsIGRlc2NyaXB0aW9uCi0jIHVuaXQgdGl0bGVzIChzdWNoIGFzIC4uIGZ1bmN0aW9uOjop
LgotI2FkZF9tb2R1bGVfbmFtZXMgPSBUcnVlCi0KLSMgSWYgdHJ1ZSwgc2VjdGlvbmF1dGhvciBh
bmQgbW9kdWxlYXV0aG9yIGRpcmVjdGl2ZXMgd2lsbCBiZSBzaG93biBpbiB0aGUKLSMgb3V0cHV0
LiBUaGV5IGFyZSBpZ25vcmVkIGJ5IGRlZmF1bHQuCi0jc2hvd19hdXRob3JzID0gRmFsc2UKLQot
IyBUaGUgbmFtZSBvZiB0aGUgUHlnbWVudHMgKHN5bnRheCBoaWdobGlnaHRpbmcpIHN0eWxlIHRv
IHVzZS4KLXB5Z21lbnRzX3N0eWxlID0gJ3NwaGlueCcKLQotIyBBIGxpc3Qgb2YgaWdub3JlZCBw
cmVmaXhlcyBmb3IgbW9kdWxlIGluZGV4IHNvcnRpbmcuCi0jbW9kaW5kZXhfY29tbW9uX3ByZWZp
eCA9IFtdCi0KLSMgSWYgdHJ1ZSwga2VlcCB3YXJuaW5ncyBhcyAic3lzdGVtIG1lc3NhZ2UiIHBh
cmFncmFwaHMgaW4gdGhlIGJ1aWx0IGRvY3VtZW50cy4KLSNrZWVwX3dhcm5pbmdzID0gRmFsc2UK
LQotCi0jIC0tIE9wdGlvbnMgZm9yIEhUTUwgb3V0cHV0IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLQotIyBUaGUgdGhlbWUgdG8gdXNlIGZvciBIVE1MIGFu
ZCBIVE1MIEhlbHAgcGFnZXMuICBTZWUgdGhlIGRvY3VtZW50YXRpb24gZm9yCi0jIGEgbGlzdCBv
ZiBidWlsdGluIHRoZW1lcy4KLWh0bWxfdGhlbWUgPSAnZGVmYXVsdCcKLQotIyBUaGVtZSBvcHRp
b25zIGFyZSB0aGVtZS1zcGVjaWZpYyBhbmQgY3VzdG9taXplIHRoZSBsb29rIGFuZCBmZWVsIG9m
IGEgdGhlbWUKLSMgZnVydGhlci4gIEZvciBhIGxpc3Qgb2Ygb3B0aW9ucyBhdmFpbGFibGUgZm9y
IGVhY2ggdGhlbWUsIHNlZSB0aGUKLSMgZG9jdW1lbnRhdGlvbi4KLSNodG1sX3RoZW1lX29wdGlv
bnMgPSB7fQotCi0jIEFkZCBhbnkgcGF0aHMgdGhhdCBjb250YWluIGN1c3RvbSB0aGVtZXMgaGVy
ZSwgcmVsYXRpdmUgdG8gdGhpcyBkaXJlY3RvcnkuCi0jaHRtbF90aGVtZV9wYXRoID0gW10KLQot
IyBUaGUgbmFtZSBmb3IgdGhpcyBzZXQgb2YgU3BoaW54IGRvY3VtZW50cy4gIElmIE5vbmUsIGl0
IGRlZmF1bHRzIHRvCi0jICI8cHJvamVjdD4gdjxyZWxlYXNlPiBkb2N1bWVudGF0aW9uIi4KLSNo
dG1sX3RpdGxlID0gTm9uZQotCi0jIEEgc2hvcnRlciB0aXRsZSBmb3IgdGhlIG5hdmlnYXRpb24g
YmFyLiAgRGVmYXVsdCBpcyB0aGUgc2FtZSBhcyBodG1sX3RpdGxlLgotI2h0bWxfc2hvcnRfdGl0
bGUgPSBOb25lCi0KLSMgVGhlIG5hbWUgb2YgYW4gaW1hZ2UgZmlsZSAocmVsYXRpdmUgdG8gdGhp
cyBkaXJlY3RvcnkpIHRvIHBsYWNlIGF0IHRoZSB0b3AKLSMgb2YgdGhlIHNpZGViYXIuCi0jaHRt
bF9sb2dvID0gTm9uZQotCi0jIFRoZSBuYW1lIG9mIGFuIGltYWdlIGZpbGUgKHdpdGhpbiB0aGUg
c3RhdGljIHBhdGgpIHRvIHVzZSBhcyBmYXZpY29uIG9mIHRoZQotIyBkb2NzLiAgVGhpcyBmaWxl
IHNob3VsZCBiZSBhIFdpbmRvd3MgaWNvbiBmaWxlICguaWNvKSBiZWluZyAxNngxNiBvciAzMngz
MgotIyBwaXhlbHMgbGFyZ2UuCi0jaHRtbF9mYXZpY29uID0gTm9uZQotCi0jIEFkZCBhbnkgcGF0
aHMgdGhhdCBjb250YWluIGN1c3RvbSBzdGF0aWMgZmlsZXMgKHN1Y2ggYXMgc3R5bGUgc2hlZXRz
KSBoZXJlLAotIyByZWxhdGl2ZSB0byB0aGlzIGRpcmVjdG9yeS4gVGhleSBhcmUgY29waWVkIGFm
dGVyIHRoZSBidWlsdGluIHN0YXRpYyBmaWxlcywKLSMgc28gYSBmaWxlIG5hbWVkICJkZWZhdWx0
LmNzcyIgd2lsbCBvdmVyd3JpdGUgdGhlIGJ1aWx0aW4gImRlZmF1bHQuY3NzIi4KLWh0bWxfc3Rh
dGljX3BhdGggPSBbJ19zdGF0aWMnXQotCi0jIEFkZCBhbnkgZXh0cmEgcGF0aHMgdGhhdCBjb250
YWluIGN1c3RvbSBmaWxlcyAoc3VjaCBhcyByb2JvdHMudHh0IG9yCi0jIC5odGFjY2VzcykgaGVy
ZSwgcmVsYXRpdmUgdG8gdGhpcyBkaXJlY3RvcnkuIFRoZXNlIGZpbGVzIGFyZSBjb3BpZWQKLSMg
ZGlyZWN0bHkgdG8gdGhlIHJvb3Qgb2YgdGhlIGRvY3VtZW50YXRpb24uCi0jaHRtbF9leHRyYV9w
YXRoID0gW10KLQotIyBJZiBub3QgJycsIGEgJ0xhc3QgdXBkYXRlZCBvbjonIHRpbWVzdGFtcCBp
cyBpbnNlcnRlZCBhdCBldmVyeSBwYWdlIGJvdHRvbSwKLSMgdXNpbmcgdGhlIGdpdmVuIHN0cmZ0
aW1lIGZvcm1hdC4KLSNodG1sX2xhc3RfdXBkYXRlZF9mbXQgPSAnJWIgJWQsICVZJwotCi0jIElm
IHRydWUsIFNtYXJ0eVBhbnRzIHdpbGwgYmUgdXNlZCB0byBjb252ZXJ0IHF1b3RlcyBhbmQgZGFz
aGVzIHRvCi0jIHR5cG9ncmFwaGljYWxseSBjb3JyZWN0IGVudGl0aWVzLgotI2h0bWxfdXNlX3Nt
YXJ0eXBhbnRzID0gVHJ1ZQotCi0jIEN1c3RvbSBzaWRlYmFyIHRlbXBsYXRlcywgbWFwcyBkb2N1
bWVudCBuYW1lcyB0byB0ZW1wbGF0ZSBuYW1lcy4KLSNodG1sX3NpZGViYXJzID0ge30KLQotIyBB
ZGRpdGlvbmFsIHRlbXBsYXRlcyB0aGF0IHNob3VsZCBiZSByZW5kZXJlZCB0byBwYWdlcywgbWFw
cyBwYWdlIG5hbWVzIHRvCi0jIHRlbXBsYXRlIG5hbWVzLgotI2h0bWxfYWRkaXRpb25hbF9wYWdl
cyA9IHt9Ci0KLSMgSWYgZmFsc2UsIG5vIG1vZHVsZSBpbmRleCBpcyBnZW5lcmF0ZWQuCi0jaHRt
bF9kb21haW5faW5kaWNlcyA9IFRydWUKLQotIyBJZiBmYWxzZSwgbm8gaW5kZXggaXMgZ2VuZXJh
dGVkLgotI2h0bWxfdXNlX2luZGV4ID0gVHJ1ZQotCi0jIElmIHRydWUsIHRoZSBpbmRleCBpcyBz
cGxpdCBpbnRvIGluZGl2aWR1YWwgcGFnZXMgZm9yIGVhY2ggbGV0dGVyLgotI2h0bWxfc3BsaXRf
aW5kZXggPSBGYWxzZQotCi0jIElmIHRydWUsIGxpbmtzIHRvIHRoZSByZVNUIHNvdXJjZXMgYXJl
IGFkZGVkIHRvIHRoZSBwYWdlcy4KLSNodG1sX3Nob3dfc291cmNlbGluayA9IFRydWUKLQotIyBJ
ZiB0cnVlLCAiQ3JlYXRlZCB1c2luZyBTcGhpbngiIGlzIHNob3duIGluIHRoZSBIVE1MIGZvb3Rl
ci4gRGVmYXVsdCBpcyBUcnVlLgotI2h0bWxfc2hvd19zcGhpbnggPSBUcnVlCi0KLSMgSWYgdHJ1
ZSwgIihDKSBDb3B5cmlnaHQgLi4uIiBpcyBzaG93biBpbiB0aGUgSFRNTCBmb290ZXIuIERlZmF1
bHQgaXMgVHJ1ZS4KLSNodG1sX3Nob3dfY29weXJpZ2h0ID0gVHJ1ZQotCi0jIElmIHRydWUsIGFu
IE9wZW5TZWFyY2ggZGVzY3JpcHRpb24gZmlsZSB3aWxsIGJlIG91dHB1dCwgYW5kIGFsbCBwYWdl
cyB3aWxsCi0jIGNvbnRhaW4gYSA8bGluaz4gdGFnIHJlZmVycmluZyB0byBpdC4gIFRoZSB2YWx1
ZSBvZiB0aGlzIG9wdGlvbiBtdXN0IGJlIHRoZQotIyBiYXNlIFVSTCBmcm9tIHdoaWNoIHRoZSBm
aW5pc2hlZCBIVE1MIGlzIHNlcnZlZC4KLSNodG1sX3VzZV9vcGVuc2VhcmNoID0gJycKLQotIyBU
aGlzIGlzIHRoZSBmaWxlIG5hbWUgc3VmZml4IGZvciBIVE1MIGZpbGVzIChlLmcuICIueGh0bWwi
KS4KLSNodG1sX2ZpbGVfc3VmZml4ID0gTm9uZQotCi0jIE91dHB1dCBmaWxlIGJhc2UgbmFtZSBm
b3IgSFRNTCBoZWxwIGJ1aWxkZXIuCi1odG1saGVscF9iYXNlbmFtZSA9ICd3cHRydW5uZXJkb2Mn
Ci0KLQotIyAtLSBPcHRpb25zIGZvciBMYVRlWCBvdXRwdXQgLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0KLWxhdGV4X2VsZW1lbnRzID0gewotICAgICMgVGhl
IHBhcGVyIHNpemUgKCdsZXR0ZXJwYXBlcicgb3IgJ2E0cGFwZXInKS4KLSAgICAjJ3BhcGVyc2l6
ZSc6ICdsZXR0ZXJwYXBlcicsCi0KLSAgICAjIFRoZSBmb250IHNpemUgKCcxMHB0JywgJzExcHQn
IG9yICcxMnB0JykuCi0gICAgIydwb2ludHNpemUnOiAnMTBwdCcsCi0KLSAgICAjIEFkZGl0aW9u
YWwgc3R1ZmYgZm9yIHRoZSBMYVRlWCBwcmVhbWJsZS4KLSAgICAjJ3ByZWFtYmxlJzogJycsCi19
Ci0KLSMgR3JvdXBpbmcgdGhlIGRvY3VtZW50IHRyZWUgaW50byBMYVRlWCBmaWxlcy4gTGlzdCBv
ZiB0dXBsZXMKLSMgKHNvdXJjZSBzdGFydCBmaWxlLCB0YXJnZXQgbmFtZSwgdGl0bGUsCi0jICBh
dXRob3IsIGRvY3VtZW50Y2xhc3MgW2hvd3RvLCBtYW51YWwsIG9yIG93biBjbGFzc10pLgotbGF0
ZXhfZG9jdW1lbnRzID0gWwotICAgICgnaW5kZXgnLCAnd3B0cnVubmVyLnRleCcsIHUnd3B0cnVu
bmVyIERvY3VtZW50YXRpb24nLAotICAgICB1J0phbWVzIEdyYWhhbScsICdtYW51YWwnKSwKLV0K
LQotIyBUaGUgbmFtZSBvZiBhbiBpbWFnZSBmaWxlIChyZWxhdGl2ZSB0byB0aGlzIGRpcmVjdG9y
eSkgdG8gcGxhY2UgYXQgdGhlIHRvcCBvZgotIyB0aGUgdGl0bGUgcGFnZS4KLSNsYXRleF9sb2dv
ID0gTm9uZQotCi0jIEZvciAibWFudWFsIiBkb2N1bWVudHMsIGlmIHRoaXMgaXMgdHJ1ZSwgdGhl
biB0b3BsZXZlbCBoZWFkaW5ncyBhcmUgcGFydHMsCi0jIG5vdCBjaGFwdGVycy4KLSNsYXRleF91
c2VfcGFydHMgPSBGYWxzZQotCi0jIElmIHRydWUsIHNob3cgcGFnZSByZWZlcmVuY2VzIGFmdGVy
IGludGVybmFsIGxpbmtzLgotI2xhdGV4X3Nob3dfcGFnZXJlZnMgPSBGYWxzZQotCi0jIElmIHRy
dWUsIHNob3cgVVJMIGFkZHJlc3NlcyBhZnRlciBleHRlcm5hbCBsaW5rcy4KLSNsYXRleF9zaG93
X3VybHMgPSBGYWxzZQotCi0jIERvY3VtZW50cyB0byBhcHBlbmQgYXMgYW4gYXBwZW5kaXggdG8g
YWxsIG1hbnVhbHMuCi0jbGF0ZXhfYXBwZW5kaWNlcyA9IFtdCi0KLSMgSWYgZmFsc2UsIG5vIG1v
ZHVsZSBpbmRleCBpcyBnZW5lcmF0ZWQuCi0jbGF0ZXhfZG9tYWluX2luZGljZXMgPSBUcnVlCi0K
LQotIyAtLSBPcHRpb25zIGZvciBtYW51YWwgcGFnZSBvdXRwdXQgLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0KLSMgT25lIGVudHJ5IHBlciBtYW51YWwgcGFnZS4gTGlz
dCBvZiB0dXBsZXMKLSMgKHNvdXJjZSBzdGFydCBmaWxlLCBuYW1lLCBkZXNjcmlwdGlvbiwgYXV0
aG9ycywgbWFudWFsIHNlY3Rpb24pLgotbWFuX3BhZ2VzID0gWwotICAgICgnaW5kZXgnLCAnd3B0
cnVubmVyJywgdSd3cHRydW5uZXIgRG9jdW1lbnRhdGlvbicsCi0gICAgIFt1J0phbWVzIEdyYWhh
bSddLCAxKQotXQotCi0jIElmIHRydWUsIHNob3cgVVJMIGFkZHJlc3NlcyBhZnRlciBleHRlcm5h
bCBsaW5rcy4KLSNtYW5fc2hvd191cmxzID0gRmFsc2UKLQotCi0jIC0tIE9wdGlvbnMgZm9yIFRl
eGluZm8gb3V0cHV0IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K
LQotIyBHcm91cGluZyB0aGUgZG9jdW1lbnQgdHJlZSBpbnRvIFRleGluZm8gZmlsZXMuIExpc3Qg
b2YgdHVwbGVzCi0jIChzb3VyY2Ugc3RhcnQgZmlsZSwgdGFyZ2V0IG5hbWUsIHRpdGxlLCBhdXRo
b3IsCi0jICBkaXIgbWVudSBlbnRyeSwgZGVzY3JpcHRpb24sIGNhdGVnb3J5KQotdGV4aW5mb19k
b2N1bWVudHMgPSBbCi0gICAgKCdpbmRleCcsICd3cHRydW5uZXInLCB1J3dwdHJ1bm5lciBEb2N1
bWVudGF0aW9uJywKLSAgICAgdSdKYW1lcyBHcmFoYW0nLCAnd3B0cnVubmVyJywgJ09uZSBsaW5l
IGRlc2NyaXB0aW9uIG9mIHByb2plY3QuJywKLSAgICAgJ01pc2NlbGxhbmVvdXMnKSwKLV0KLQot
IyBEb2N1bWVudHMgdG8gYXBwZW5kIGFzIGFuIGFwcGVuZGl4IHRvIGFsbCBtYW51YWxzLgotI3Rl
eGluZm9fYXBwZW5kaWNlcyA9IFtdCi0KLSMgSWYgZmFsc2UsIG5vIG1vZHVsZSBpbmRleCBpcyBn
ZW5lcmF0ZWQuCi0jdGV4aW5mb19kb21haW5faW5kaWNlcyA9IFRydWUKLQotIyBIb3cgdG8gZGlz
cGxheSBVUkwgYWRkcmVzc2VzOiAnZm9vdG5vdGUnLCAnbm8nLCBvciAnaW5saW5lJy4KLSN0ZXhp
bmZvX3Nob3dfdXJscyA9ICdmb290bm90ZScKLQotIyBJZiB0cnVlLCBkbyBub3QgZ2VuZXJhdGUg
YSBAZGV0YWlsbWVudSBpbiB0aGUgIlRvcCIgbm9kZSdzIG1lbnUuCi0jdGV4aW5mb19ub19kZXRh
aWxtZW51ID0gRmFsc2UKLQotCi0jIEV4YW1wbGUgY29uZmlndXJhdGlvbiBmb3IgaW50ZXJzcGhp
bng6IHJlZmVyIHRvIHRoZSBQeXRob24gc3RhbmRhcmQgbGlicmFyeS4KLWludGVyc3BoaW54X21h
cHBpbmcgPSB7J3B5dGhvbic6ICgnaHR0cDovL2RvY3MucHl0aG9uLm9yZy8nLCBOb25lKSwKLSAg
ICAgICAgICAgICAgICAgICAgICAgJ21vemxvZyc6ICgnaHR0cHM6Ly9maXJlZm94LXNvdXJjZS1k
b2NzLm1vemlsbGEub3JnLycsIE5vbmUpfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvZG9jcy9kZXNpZ24ucnN0
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRy
dW5uZXIvZG9jcy9kZXNpZ24ucnN0CmluZGV4IGJmMTA4YTAwODdkYTBjNmVjMTIzMTY5YzcxNTg2
ZjZjZTNiZmJhNzIuLjMwZjgyNzExYTU5ZDc2MGQ3MGFkNjk2NWM1ZjUxN2VmYzQyZjZiMGMgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvd3B0cnVubmVyL2RvY3MvZGVzaWduLnJzdAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci9kb2NzL2Rlc2lnbi5yc3QKQEAg
LTE1LDcgKzE1LDcgQEAgcmVxdWlyZW1lbnRzOgogICAgb2YgYW4gYGBpZnJhbWVgYCB0ZXN0IGNv
bnRhaW5lci4KIAogICogSXQgbXVzdCBiZSBwb3NzaWJsZSB0byBkZWFsIHdpdGggYWxsIGtpbmRz
IG9mIGJlaGF2aW91ciBvZiB0aGUKLSAgIGJyb3dzZXIgcnVuZGVyIHRlc3QsIGZvciBleGFtcGxl
LCBjcmFzaGluZywgaGFuZ2luZywgZXRjLgorICAgYnJvd3NlciB1bmRlciB0ZXN0LCBmb3IgZXhh
bXBsZSwgY3Jhc2hpbmcsIGhhbmdpbmcsIGV0Yy4KIAogICogSXQgc2hvdWxkIGJlIHBvc3NpYmxl
IHRvIGFkZCBzdXBwb3J0IGZvciBuZXcgcGxhdGZvcm1zIGFuZCBicm93c2VycwogICAgd2l0aCBt
aW5pbWFsIGNvZGUgY2hhbmdlcy4KQEAgLTQzLDY0ICs0Myw2NiBAQCBUaGUgb3ZlcmFsbCBhcmNo
aXRlY3R1cmUgb2Ygd3B0cnVubmVyIGlzIHNob3duIGluIHRoZSBkaWFncmFtIGJlbG93OgogCiAu
LiBpbWFnZTo6IGFyY2hpdGVjdHVyZS5zdmcKIAotVGhlIG1haW4gZW50cnkgcG9pbnQgdG8gdGhl
IGNvZGUgaXMgOnB5OmZ1bmM6YHJ1bl90ZXN0c2AgaW4KKy4uIGN1cnJlbnRtb2R1bGU6OiB3cHRy
dW5uZXIKKworVGhlIG1haW4gZW50cnkgcG9pbnQgdG8gdGhlIGNvZGUgaXMgOnB5OmZ1bmM6YH53
cHRydW5uZXIucnVuX3Rlc3RzYCBpbgogYGB3cHRydW5uZXIucHlgYC4gVGhpcyBpcyByZXNwb25z
aWJsZSBmb3Igc2V0dGluZyB1cCB0aGUgdGVzdAogZW52aXJvbm1lbnQsIGxvYWRpbmcgdGhlIGxp
c3Qgb2YgdGVzdHMgdG8gYmUgZXhlY3V0ZWQsIGFuZCBpbnZva2luZwogdGhlIHJlbWFpbmRlciBv
ZiB0aGUgY29kZSB0byBhY3R1YWxseSBleGVjdXRlIHNvbWUgdGVzdHMuCiAKIFRoZSB0ZXN0IGVu
dmlyb25tZW50IGlzIGVuY2Fwc3VsYXRlZCBpbiB0aGUKLTpweTpjbGFzczpgVGVzdEVudmlyb25t
ZW50YCBjbGFzcy4gVGhpcyBkZWZlcnMgdG8gY29kZSBpbgorOnB5OmNsYXNzOmB+ZW52aXJvbm1l
bnQuVGVzdEVudmlyb25tZW50YCBjbGFzcy4gVGhpcyBkZWZlcnMgdG8gY29kZSBpbgogYGB3ZWIt
cGxhdGZvcm0tdGVzdHNgYCB3aGljaCBhY3R1YWxseSBzdGFydHMgdGhlIHJlcXVpcmVkIHNlcnZl
cnMgdG8KIHJ1biB0aGUgdGVzdHMuCiAKIFRoZSBzZXQgb2YgdGVzdHMgdG8gcnVuIGlzIGRlZmlu
ZWQgYnkgdGhlCi06cHk6Y2xhc3M6YFRlc3RMb2FkZXJgLiBUaGlzIGlzIGNvbnN0cnVjdGVkIHdp
dGggYQotOnB5OmNsYXNzOmBUZXN0RmlsdGVyYCAobm90IHNob3duKSwgd2hpY2ggdGFrZXMgYW55
IGZpbHRlciBhcmd1bWVudHMKKzpweTpjbGFzczpgfnRlc3Rsb2FkZXIuVGVzdExvYWRlcmAuIFRo
aXMgaXMgY29uc3RydWN0ZWQgd2l0aCBhCis6cHk6Y2xhc3M6YH50ZXN0bG9hZGVyLlRlc3RGaWx0
ZXJgIChub3Qgc2hvd24pLCB3aGljaCB0YWtlcyBhbnkgZmlsdGVyIGFyZ3VtZW50cwogZnJvbSB0
aGUgY29tbWFuZCBsaW5lIHRvIHJlc3RyaWN0IHRoZSBzZXQgb2YgdGVzdHMgdGhhdCB3aWxsIGJl
Ci1ydW4uIFRoZSA6cHk6Y2xhc3M6YFRlc3RMb2FkZXJgIHJlYWRzIGJvdGggdGhlIGBgd2ViLXBs
YXRmb3JtLXRlc3RzYGAKK3J1bi4gVGhlIDpweTpjbGFzczpgfnRlc3Rsb2FkZXIuVGVzdExvYWRl
cmAgcmVhZHMgYm90aCB0aGUgYGB3ZWItcGxhdGZvcm0tdGVzdHNgYAogSlNPTiBtYW5pZmVzdCBh
bmQgdGhlIGV4cGVjdGF0aW9uIGRhdGEgc3RvcmVkIGluIGluaSBmaWxlcyBhbmQKIHByb2R1Y2Vz
IGEgOnB5OmNsYXNzOmBtdWx0aXByb2Nlc3NpbmcuUXVldWVgIG9mIHRlc3RzIHRvIHJ1biwgYW5k
CiB0aGVpciBleHBlY3RlZCByZXN1bHRzLgogCiBBY3R1YWxseSBydW5uaW5nIHRoZSB0ZXN0cyBo
YXBwZW5zIHRocm91Z2ggdGhlCi06cHk6Y2xhc3M6YE1hbmFnZXJHcm91cGAgb2JqZWN0LiBUaGlz
IHRha2VzIHRoZSA6cHk6Y2xhc3M6YFF1ZXVlYCBvZgotdGVzdHMgdG8gYmUgcnVuIGFuZCBzdGFy
dHMgYSA6cHk6Y2xhc3M6YHRlc3RydW5uZXIuVGVzdFJ1bm5lck1hbmFnZXJgIGZvciBlYWNoCis6
cHk6Y2xhc3M6YH50ZXN0cnVubmVyLk1hbmFnZXJHcm91cGAgb2JqZWN0LiBUaGlzIHRha2VzIHRo
ZSA6cHk6Y2xhc3M6YH5tdWx0aXByb2Nlc3NpbmcuUXVldWVgIG9mCit0ZXN0cyB0byBiZSBydW4g
YW5kIHN0YXJ0cyBhIDpweTpjbGFzczpgfnRlc3RydW5uZXIuVGVzdFJ1bm5lck1hbmFnZXJgIGZv
ciBlYWNoCiBpbnN0YW5jZSBvZiB0aGUgYnJvd3NlciB1bmRlciB0ZXN0IHRoYXQgd2lsbCBiZSBz
dGFydGVkLiBUaGVzZQotOnB5OmNsYXNzOmBUZXN0UnVubmVyTWFuYWdlcmAgaW5zdGFuY2VzIGFy
ZSBlYWNoIHN0YXJ0ZWQgaW4gdGhlaXIgb3duCis6cHk6Y2xhc3M6YH50ZXN0cnVubmVyLlRlc3RS
dW5uZXJNYW5hZ2VyYCBpbnN0YW5jZXMgYXJlIGVhY2ggc3RhcnRlZCBpbiB0aGVpciBvd24KIHRo
cmVhZC4KIAotQSA6cHk6Y2xhc3M6YFRlc3RSdW5uZXJNYW5hZ2VyYCBjb29yZGluYXRlcyBzdGFy
dGluZyB0aGUgcHJvZHVjdCB1bmRlcgorQSA6cHk6Y2xhc3M6YH50ZXN0cnVubmVyLlRlc3RSdW5u
ZXJNYW5hZ2VyYCBjb29yZGluYXRlcyBzdGFydGluZyB0aGUgcHJvZHVjdCB1bmRlcgogdGVzdCwg
YW5kIG91dHB1dHRpbmcgcmVzdWx0cyBmcm9tIHRoZSB0ZXN0LiBJbiB0aGUgY2FzZSB0aGF0IHRo
ZSB0ZXN0CiBoYXMgdGltZWQgb3V0IG9yIHRoZSBicm93c2VyIGhhcyBjcmFzaGVkLCBpdCBoYXMg
dG8gcmVzdGFydCB0aGUKIGJyb3dzZXIgdG8gZW5zdXJlIHRoZSB0ZXN0IHJ1biBjYW4gY29udGlu
dWUuIFRoZSBmdW5jdGlvbmFsaXR5IGZvcgogaW5pdGlhbGlzaW5nIHRoZSBicm93c2VyIHVuZGVy
IHRlc3QsIGFuZCBwcm9iaW5nIGl0cyBzdGF0ZQogKGUuZy4gd2hldGhlciB0aGUgcHJvY2VzcyBp
cyBzdGlsbCBhbGl2ZSkgaXMgaW1wbGVtZW50ZWQgdGhyb3VnaCBhCi06cHk6Y2xhc3M6YEJyb3dz
ZXJgIG9iamVjdC4gQW4gaW1wbGVtZW50YXRpb24gb2YgdGhpcyBjbGFzcyBtdXN0IGJlCis6cHk6
Y2xhc3M6YH5icm93c2Vycy5iYXNlLkJyb3dzZXJgIG9iamVjdC4gQW4gaW1wbGVtZW50YXRpb24g
b2YgdGhpcyBjbGFzcyBtdXN0IGJlCiBwcm92aWRlZCBmb3IgZWFjaCBwcm9kdWN0IHRoYXQgaXMg
c3VwcG9ydGVkLgogCiBUaGUgZnVuY3Rpb25hbGl0eSBmb3IgYWN0dWFsbHkgcnVubmluZyB0aGUg
dGVzdHMgaXMgcHJvdmlkZWQgYnkgYQotOnB5OmNsYXNzOmBUZXN0UnVubmVyYCBvYmplY3QuIDpw
eTpjbGFzczpgVGVzdFJ1bm5lcmAgaW5zdGFuY2VzIGFyZQorOnB5OmNsYXNzOmB+dGVzdHJ1bm5l
ci5UZXN0UnVubmVyYCBvYmplY3QuIDpweTpjbGFzczpgfnRlc3RydW5uZXIuVGVzdFJ1bm5lcmAg
aW5zdGFuY2VzIGFyZQogcnVuIGluIHRoZWlyIG93biBjaGlsZCBwcm9jZXNzIGNyZWF0ZWQgd2l0
aCB0aGUKIDpweTptb2Q6YG11bHRpcHJvY2Vzc2luZ2AgbW9kdWxlLiBUaGlzIGFsbG93cyB0aGVt
IHRvIHJ1biBjb25jdXJyZW50bHkKIGFuZCB0byBiZSBraWxsZWQgYW5kIHJlc3RhcnRlZCBhcyBy
ZXF1aXJlZC4gQ29tbXVuaWNhdGlvbiBiZXR3ZWVuIHRoZQotOnB5OmNsYXNzOmBUZXN0UnVubmVy
TWFuYWdlcmAgYW5kIHRoZSA6cHk6Y2xhc3M6YFRlc3RSdW5uZXJgIGlzCis6cHk6Y2xhc3M6YH50
ZXN0cnVubmVyLlRlc3RSdW5uZXJNYW5hZ2VyYCBhbmQgdGhlIDpweTpjbGFzczpgfnRlc3RydW5u
ZXIuVGVzdFJ1bm5lcmAgaXMKIHByb3ZpZGVkIGJ5IGEgcGFpciBvZiBxdWV1ZXMsIG9uZSBmb3Ig
c2VuZGluZyBtZXNzYWdlcyBpbiBlYWNoCiBkaXJlY3Rpb24uIEluIHBhcnRpY3VsYXIgdGVzdCBy
ZXN1bHRzIGFyZSBzZW50IGZyb20gdGhlCi06cHk6Y2xhc3M6YFRlc3RSdW5uZXJgIHRvIHRoZSA6
cHk6Y2xhc3M6YFRlc3RSdW5uZXJNYW5hZ2VyYCB1c2luZyBvbmUKKzpweTpjbGFzczpgfnRlc3Ry
dW5uZXIuVGVzdFJ1bm5lcmAgdG8gdGhlIDpweTpjbGFzczpgfnRlc3RydW5uZXIuVGVzdFJ1bm5l
ck1hbmFnZXJgIHVzaW5nIG9uZQogb2YgdGhlc2UgcXVldWVzLgogCi1UaGUgOnB5OmNsYXNzOmBU
ZXN0UnVubmVyYCBvYmplY3QgaXMgZ2VuZXJpYyBpbiB0aGF0IHRoZSBzYW1lCi06cHk6Y2xhc3M6
YFRlc3RSdW5uZXJgIGlzIHVzZWQgcmVnYXJkbGVzcyBvZiB0aGUgcHJvZHVjdCB1bmRlcgorVGhl
IDpweTpjbGFzczpgfnRlc3RydW5uZXIuVGVzdFJ1bm5lcmAgb2JqZWN0IGlzIGdlbmVyaWMgaW4g
dGhhdCB0aGUgc2FtZQorOnB5OmNsYXNzOmB+dGVzdHJ1bm5lci5UZXN0UnVubmVyYCBpcyB1c2Vk
IHJlZ2FyZGxlc3Mgb2YgdGhlIHByb2R1Y3QgdW5kZXIKIHRlc3QuIEhvd2V2ZXIgdGhlIGRldGFp
bHMgb2YgaG93IHRvIHJ1biB0aGUgdGVzdCBtYXkgdmFyeSBncmVhdGx5IHdpdGgKIHRoZSBwcm9k
dWN0IHNpbmNlIGRpZmZlcmVudCBwcm9kdWN0cyBzdXBwb3J0IGRpZmZlcmVudCByZW1vdGUgY29u
dHJvbAogcHJvdG9jb2xzIChvciBub25lIGF0IGFsbCkuIFRoZXNlIHByb3RvY29sLXNwZWNpZmlj
IHBhcnRzIGFyZSBwbGFjZWQKLWluIHRoZSA6cHk6Y2xhc3M6YEV4ZWN1dG9yYCBvYmplY3QuIFRo
ZXJlIGlzIHR5cGljYWxseSBhIGRpZmZlcmVudAotOnB5OmNsYXNzOmBFeGVjdXRvcmAgY2xhc3Mg
Zm9yIGVhY2ggY29tYmluYXRpb24gb2YgY29udHJvbCBwcm90b2NvbAotYW5kIHRlc3QgdHlwZS4g
VGhlIDpweTpjbGFzczpgVGVzdFJ1bm5lcmAgaXMgcmVzcG9uc2libGUgZm9yIHB1bGxpbmcKLWVh
Y2ggdGVzdCBvZmYgdGhlIDpweTpjbGFzczpgUXVldWVgIG9mIHRlc3RzIGFuZCBwYXNzaW5nIGl0
IGRvd24gdG8KLXRoZSA6cHk6Y2xhc3M6YEV4ZWN1dG9yYC4KK2luIHRoZSA6cHk6Y2xhc3M6YH5l
eGVjdXRvcnMuYmFzZS5UZXN0RXhlY3V0b3JgIG9iamVjdC4gVGhlcmUgaXMgdHlwaWNhbGx5IGEg
ZGlmZmVyZW50Cis6cHk6Y2xhc3M6YH5leGVjdXRvcnMuYmFzZS5UZXN0RXhlY3V0b3JgIGNsYXNz
IGZvciBlYWNoIGNvbWJpbmF0aW9uIG9mIGNvbnRyb2wgcHJvdG9jb2wKK2FuZCB0ZXN0IHR5cGUu
IFRoZSA6cHk6Y2xhc3M6YH50ZXN0cnVubmVyLlRlc3RSdW5uZXJgIGlzIHJlc3BvbnNpYmxlIGZv
ciBwdWxsaW5nCitlYWNoIHRlc3Qgb2ZmIHRoZSA6cHk6Y2xhc3M6YG11bHRpcHJvY2Vzc2luZy5R
dWV1ZWAgb2YgdGVzdHMgYW5kIHBhc3NpbmcgaXQgZG93biB0bwordGhlIDpweTpjbGFzczpgfmV4
ZWN1dG9ycy5iYXNlLlRlc3RFeGVjdXRvcmAuCiAKIFRoZSBleGVjdXRvciBvZnRlbiByZXF1aXJl
cyBhY2Nlc3MgdG8gZGV0YWlscyBvZiB0aGUgcGFydGljdWxhcgogYnJvd3NlciBpbnN0YW5jZSB0
aGF0IGl0IGlzIHRlc3Rpbmcgc28gdGhhdCBpdCBrbm93cyBlLmcuIHdoaWNoIHBvcnQKIHRvIGNv
bm5lY3QgdG8gdG8gc2VuZCBjb21tYW5kcyB0byB0aGUgYnJvd3Nlci4gVGhlc2UgZGV0YWlscyBh
cmUKLWVuY2Fwc3VsYXRlZCBpbiB0aGUgOnB5OmNsYXNzOmBFeGVjdXRvckJyb3dzZXJgIGNsYXNz
LgorZW5jYXBzdWxhdGVkIGluIHRoZSA6cHk6Y2xhc3M6YH5icm93c2Vycy5iYXNlLkV4ZWN1dG9y
QnJvd3NlcmAgY2xhc3MuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci9kb2NzL2V4cGVjdGF0aW9uLnJzdCBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVy
L2RvY3MvZXhwZWN0YXRpb24ucnN0CmluZGV4IDZhMGM3NzY4NGEzYjgzYWJhODg0MzZlODRiMzk5
ZmQ4ZmI2NGUzMjUuLjc3OTM4YWJlMDNkNTVjZTE0NTcxZWMxYjRjMmI0M2QwZWQ0YTQwOWIgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvd3B0cnVubmVyL2RvY3MvZXhwZWN0YXRpb24ucnN0CisrKyBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL2RvY3MvZXhwZWN0YXRp
b24ucnN0CkBAIC05OCw2ICs5OCwyNSBAQCB3cHR1cGRhdGUgdGFrZXMgc2V2ZXJhbCB1c2VmdWwg
b3B0aW9uczoKICAgT3ZlcndyaXRlIGFsbCB0aGUgZXhwZWN0YXRpb24gZGF0YSBmb3IgYW55IHRl
c3RzIHRoYXQgaGF2ZSBhIHJlc3VsdAogICBpbiB0aGUgcGFzc2VkIGxvZyBmaWxlcywgbm90IGp1
c3QgZGF0YSBmb3IgdGhlIHNhbWUgcGxhdGZvcm0uCiAKK2BgLS1kaXNhYmxlLWludGVybWl0dGVu
dGBgCisgIFdoZW4gdXBkYXRpbmcgdGVzdCByZXN1bHRzLCBkaXNhYmxlIHRlc3RzIHRoYXQgaGF2
ZSBpbmNvbnNpc3RlbnQKKyAgcmVzdWx0cyBhY3Jvc3MgbWFueSBydW5zLiBUaGlzIGNhbiBwcmVj
ZWRlIGEgbWVzc2FnZSBwcm92aWRpbmcgYQorICByZWFzb24gd2h5IHRoYXQgdGVzdCBpcyBkaXNh
YmxlLiBJZiBubyBtZXNzYWdlIGlzIHByb3ZpZGVkLAorICBgYHVuc3RhYmxlYGAgaXMgdGhlIGRl
ZmF1bHQgdGV4dC4KKworYGAtLXVwZGF0ZS1pbnRlcm1pdHRlbnRgYAorICBXaGVuIHRoaXMgb3B0
aW9uIGlzIHVzZWQsIHRoZSBgYGV4cGVjdGVkYGAga2V5IChzZWUgYmVsb3cpIHN0b3JlcworICBl
eHBlY3RlZCBpbnRlcm1pdHRlbnQgc3RhdHVzZXMgaW4gYWRkaXRpb24gdG8gdGhlIHByaW1hcnkg
ZXhwZWN0ZWQKKyAgc3RhdHVzLiBJZiB0aGVyZSBpcyBtb3JlIHRoYW4gb25lIHN0YXR1cywgaXQg
YXBwZWFycyBhcyBhIGxpc3QuIFRoZQorICBkZWZhdWx0IGJlaGF2aW91ciBvZiB0aGlzIG9wdGlv
biBpcyB0byByZXRhaW4gYW55IGV4aXN0aW5nIGludGVybWl0dGVudAorICBzdGF0dXNlcyBpbiB0
aGUgbGlzdCB1bmxlc3MgYGAtLXJlbW92ZS1pbnRlcm1pdHRlbnRgYCBpcyBzcGVjaWZpZWQuCisK
K2BgLS1yZW1vdmUtaW50ZXJtaXR0ZW50YGAKKyAgVGhpcyBvcHRpb24gaXMgdXNlZCBpbiBjb25q
dW5jdGlvbiB3aXRoIGBgLS11cGRhdGUtaW50ZXJtaXR0ZW50YGAuCisgIFdoZW4gdGhlIGBgZXhw
ZWN0ZWRgYCBzdGF0dXNlcyBhcmUgdXBkYXRlZCwgYW55IG9ic29sZXRlIGludGVybWl0dGVudAor
ICBzdGF0dXNlcyB0aGF0IGRpZCBub3Qgb2NjdXIgaW4gdGhlIHNwZWNpZmllZCBsb2dmaWxlcyBh
cmUgcmVtb3ZlZCBmcm9tCisgIHRoZSBsaXN0LgorCiBFeGFtcGxlcwogfn5+fn5+fn4KIApAQCAt
MTQxLDYgKzE2MCwyNCBAQCBBIHNpbXBsZSBleGFtcGxlIG9mIGEgbWFuaWZlc3QgZmlsZSBpczo6
CiAgIFthbm90aGVyX3NlY3Rpb25dCiAgICAgYW5vdGhlcl9rZXk6IGFub3RoZXJfdmFsdWUKIAor
VGhlIHdlYi1wbGF0Zm9ybS10ZXN0IGhhcm5lc3Mga25vd3MgYWJvdXQgc2V2ZXJhbCBrZXlzOgor
CitgZXhwZWN0ZWRgCisgIE11c3QgZXZhbHVhdGUgdG8gYSBwb3NzaWJsZSB0ZXN0IHN0YXR1cyBp
bmRpY2F0aW5nIHRoZSBleHBlY3RlZAorICByZXN1bHQgb2YgdGhlIHRlc3QuIFRoZSBpbXBsaWNp
dCBkZWZhdWx0IGlzIFBBU1Mgb3IgT0sgd2hlbiB0aGUKKyAgZmllbGQgaXNuJ3QgcHJlc2VudC4g
V2hlbiBgZXhwZWN0ZWRgIGlzIGEgbGlzdCwgdGhlIGZpcnN0IHN0YXR1cworICBpcyB0aGUgcHJp
bWFyeSBleHBlY3RlZCBzdGF0dXMgYW5kIHRoZSB0cmFpbGluZyBzdGF0dXNlcyBsaXN0ZWQgYXJl
CisgIGV4cGVjdGVkIGludGVybWl0dGVudCBzdGF0dXNlcy4KKworYGRpc2FibGVkYAorICBBbnkg
dmFsdWUgaW5kaWNhdGVzIHRoYXQgdGhlIHRlc3QgaXMgZGlzYWJsZWQuCisKK2ByZWZ0eXBlYAor
ICBUaGUgdHlwZSBvZiBjb21wYXJpc29uIGZvciByZWZ0ZXN0czsgZWl0aGVyIGA9PWAgb3IgYCE9
YC4KKworYHJlZnVybGAKKyAgVGhlIHJlZmVyZW5jZSB1cmwgZm9yIHJlZnRlc3RzLgorCiBDb25k
aXRpb25hbCBWYWx1ZXMKIH5+fn5+fn5+fn5+fn5+fn5+fgogCkBAIC0xOTAsMTQgKzIyNyw4IEBA
IFdoZW4gdXNlZCBmb3IgZXhwZWN0YXRpb24gZGF0YSwgbWFuaWZlc3RzIGhhdmUgdGhlIGZvbGxv
d2luZyBmb3JtYXQ6CiAgKiBBIHN1YnNlY3Rpb24gcGVyIHN1YnRlc3QsIHdpdGggdGhlIGhlYWRp
bmcgYmVpbmcgdGhlIHRpdGxlIG9mIHRoZQogICAgc3VidGVzdC4KIAotICogQSBrZXkgYGB0eXBl
YGAgaW5kaWNhdGluZyB0aGUgdGVzdCB0eXBlLiBUaGlzIHRha2VzIHRoZSB2YWx1ZXMKLSAgIGBg
dGVzdGhhcm5lc3NgYCBhbmQgYGByZWZ0ZXN0YGAuCi0KLSAqIEZvciByZWZ0ZXN0cywga2V5cyBg
YHJlZnR5cGVgYCBpbmRpY2F0aW5nIHRoZSByZWZlcmVuY2UgdHlwZQotICAgKGBgPT1gYCBvciBg
YCE9YGApIGFuZCBgYHJlZnVybGBgIGluZGljYXRpbmcgdGhlIFVSTCBvZiB0aGUKLSAgIHJlZmVy
ZW5jZS4KLQotICogQSBrZXkgYGBleHBlY3RlZGBgIGdpdmluZyB0aGUgZXhwZWN0YXRpb24gdmFs
dWUgb2YgZWFjaCAoc3ViKXRlc3QuCisgKiBBIGtleSBgYGV4cGVjdGVkYGAgZ2l2aW5nIHRoZSBl
eHBlY3RhdGlvbiB2YWx1ZSBvciB2YWx1ZXMgb2YgZWFjaCAKKyAgIChzdWIpdGVzdC4KIAogICog
QSBrZXkgYGBkaXNhYmxlZGBgIHdoaWNoIGNhbiBiZSBzZXQgdG8gYW55IHZhbHVlIHRvIGluZGlj
YXRlIHRoYXQKICAgIHRoZSAoc3ViKXRlc3QgaXMgZGlzYWJsZWQgYW5kIHNob3VsZCBlaXRoZXIg
bm90IGJlIHJ1biAoZm9yIHRlc3RzKQpAQCAtMjA3LDYgKzIzOCwxOSBAQCBXaGVuIHVzZWQgZm9y
IGV4cGVjdGF0aW9uIGRhdGEsIG1hbmlmZXN0cyBoYXZlIHRoZSBmb2xsb3dpbmcgZm9ybWF0Ogog
ICAgdGhlIHJ1bm5lciBzaG91bGQgcmVzdGFydCB0aGUgYnJvd3NlciBhZnRlciBydW5uaW5nIHRo
aXMgdGVzdCAoZS5nLiB0bwogICAgY2xlYXIgb3V0IHVud2FudGVkIHN0YXRlKS4KIAorICogQSBr
ZXkgYGBmdXp6eWBgIHRoYXQgaXMgdXNlZCBmb3IgcmVmdGVzdHMuIFRoaXMgaXMgaW50ZXJwcmV0
ZWQgYXMgYQorICAgbGlzdCBjb250YWluaW5nIGVudHJpZXMgbGlrZSBgYDxtZXRhIG5hbWU9ZnV6
enk+YGAgY29udGVudCB2YWx1ZSwKKyAgIHdoaWNoIGNvbnNpc3RzIG9mIGFuIG9wdGlvbmFsIHJl
ZmVyZW5jZSBpZGVudGlmaWVyIGZvbGxvd2VkIGJ5IGEKKyAgIGNvbG9uLCB0aGVuIGEgcmFuZ2Ug
aW5kaWNhdGluZyB0aGUgbWF4aW11bSBwZXJtaXR0ZWQgcGl4ZWwKKyAgIGRpZmZlcmVuY2UgcGVy
IGNoYW5uZWwsIHRoZW4gc2VtaWNvbG9uLCB0aGVuIGEgcmFuZ2UgaW5kaWNhdGluZyB0aGUKKyAg
IG1heGltdW0gcGVybWl0dGVkIHRvdGFsIG51bWJlciBvZiBkaWZmZXJpbmcgcGl4ZWxzLiBUaGUg
cmVmZXJlbmNlCisgICBpZGVudGlmaWVyIGlzIGVpdGhlciBhIHNpbmdsZSByZWxhdGl2ZSBVUkws
IHJlc29sdmVkIGFnYWluc3QgdGhlCisgICBiYXNlIHRlc3QgVVJMLCBpbiB3aGljaCBjYXNlIHRo
ZSBmdXp6aW5lc3MgYXBwbGllcyB0byBhbnkKKyAgIGNvbXBhcmlzb24gd2l0aCB0aGF0IFVSTCwg
b3IgdGFrZXMgdGhlIGZvcm0gbGhzIHVybCwgY29tcGFyaXNvbiwKKyAgIHJocyB1cmwsIGluIHdo
aWNoIGNhc2UgdGhlIGZ1enppbmVzcyBvbmx5IGFwcGxpZXMgZm9yIGFueQorICAgY29tcGFyaXNv
biBpbnZvbHZpbmcgdGhhdCBzcGVjaWZjIHBhaXIgb2YgVVJMcy4gU29tZSBpbGx1c3RyYXRpdmUK
KyAgIGV4YW1wbGVzIGFyZSBnaXZlbiBiZWxvdy4KKwogICogVmFyaWFibGVzIGBgZGVidWdgYCwg
YGBvc2BgLCBgYHZlcnNpb25gYCwgYGBwcm9jZXNzb3JgYCBhbmQKICAgIGBgYml0c2BgIHRoYXQg
ZGVzY3JpYmUgdGhlIGNvbmZpZ3VyYXRpb24gb2YgdGhlIGJyb3dzZXIgdW5kZXIKICAgIHRlc3Qu
IGBgZGVidWdgYCBpcyBhIGJvb2xlYW4gaW5kaWNhdGluZyB3aGV0aGVyIGEgYnVpbGQgaXMgYSBk
ZWJ1ZwpAQCAtMjMwLDYgKzI3NCw5IEBAIEFuIHNpbXBsZSBleGFtcGxlIG1hbmlmZXN0IG1pZ2h0
IGxvb2sgbGlrZTo6CiAgICAgW1Rlc3Qgc29tZXRoaW5nIHVuc3VwcG9ydGVkXQogICAgICAgIGV4
cGVjdGVkOiBGQUlMCiAKKyAgICBbVGVzdCB3aXRoIGludGVybWl0dGVudCBzdGF0dXNlc10KKyAg
ICAgICBleHBlY3RlZDogW1BBU1MsIFRJTUVPVVRdCisKICAgW3Rlc3QuaHRtbD92YXJpYW50PWJy
b2tlbl0KICAgICBleHBlY3RlZDogRVJST1IKIApAQCAtMjQwLDkgKzI4NywyNCBAQCBBIG1vcmUg
Y29tcGxleCBtYW5pZmVzdCB3aXRoIGNvbmRpdGlvbmFsIHByb3BlcnRpZXMgbWlnaHQgYmU6Ogog
CiAgIFtjYW52YXNfdGVzdC5odG1sXQogICAgIGV4cGVjdGVkOgotICAgICAgaWYgb3MgPT0gIm9z
eCI6IEZBSUwKKyAgICAgIGlmIG9zID09ICJtYWMiOiBGQUlMCiAgICAgICBpZiBvcyA9PSAid2lu
ZG93cyIgYW5kIHZlcnNpb24gPT0gIlhQIjogRkFJTAogICAgICAgUEFTUwogCiBOb3RlIHRoYXQg
YGBQQVNTYGAgaW4gdGhlIGFib3ZlIHdvcmtzLCBidXQgaXMgdW5uZWNlc3Nhcnk7IGBgUEFTU2Bg
CiAob3IgYGBPS2BgKSBpcyBhbHdheXMgdGhlIGRlZmF1bHQgZXhwZWN0YXRpb24gZm9yIChzdWIp
dGVzdHMuCisKK0EgbWFuaWZlc3Qgd2l0aCBmdXp6eSByZWZ0ZXN0IHZhbHVlcyBtaWdodCBiZTo6
CisKKyAgW3JlZnRlc3QuaHRtbF0KKyAgICBmdXp6eTogWzEwOzIwMCwgcmVmMS5odG1sOjIwOzIw
MC0zMDAsIHN1YnRlc3QxLmh0bWw9PXJlZjIuaHRtbDoxMC0xNTsyMF0KKworSW4gdGhpcyBjYXNl
IHRoZSBkZWZhdWx0IGZ1enppbmVzcyBmb3IgYW55IGNvbXBhcmlzb24gd291bGQgYmUgdG8KK3Jl
cXVpcmUgYSBtYXhpbXVtIGRpZmZlcmVuY2UgcGVyIGNoYW5uZWwgb2YgbGVzcyB0aGFuIG9yIGVx
dWFsIHRvIDEwCithbmQgbGVzcyB0aGFuIG9yIGVxdWFsIHRvIDIwMCB0b3RhbCBwaXhlbHMgZGlm
ZmVyZW50LiBGb3IgYW55Citjb21wYXJpc29uIGludm9sdmluZyByZWYxLmh0bWwgb24gdGhlIHJp
Z2h0IGhhbmQgc2lkZSwgdGhlIGxpbWl0cword291bGQgaW5zdGVhZCBiZSBhIGRpZmZlcmVuY2Ug
cGVyIGNoYW5uZWwgbm90IG1vcmUgdGhhbiAyMCBhbmQgYSB0b3RhbAorZGlmZmVyZW5jZSBjb3Vu
dCBvZiBub3QgbGVzcyB0aGFuIDIwMCBhbmQgbm90IG1vcmUgdGhhbiAzMDAuIEZvciB0aGUKK3Nw
ZWNpZmljIGNvbXBhcmlzb24gc3VidGVzdDEuaHRtbCA9PSByZWYyLmh0bWwgKGJvdGggcmVzb2x2
ZWQgYWdhaW5zdAordGhlIHRlc3QgVVJMKSB0aGVzZSBsaW1pdHMgd291bGQgaW5zdGVhZCBiZSAx
MCB0byAxNSBhbmQgMCB0byAyMCwKK3Jlc3BlY3RpdmVseS4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL2RvY3Mv
aW5kZXgucnN0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy93cHRydW5uZXIvZG9jcy9pbmRleC5yc3QKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDUxNDdkM2UzMWMzYmM0NGIxMjE2ZTQ2YmJjMDNhMDRjMzgwY2IzYWQuLjAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvZG9jcy9pbmRleC5yc3QKKysr
IC9kZXYvbnVsbApAQCAtMSwyNCArMCwwIEBACi0uLiB3cHRydW5uZXIgZG9jdW1lbnRhdGlvbiBt
YXN0ZXIgZmlsZSwgY3JlYXRlZCBieQotICAgc3BoaW54LXF1aWNrc3RhcnQgb24gTW9uIE1heSAx
OSAxODoxNDoyMCAyMDE0LgotICAgWW91IGNhbiBhZGFwdCB0aGlzIGZpbGUgY29tcGxldGVseSB0
byB5b3VyIGxpa2luZywgYnV0IGl0IHNob3VsZCBhdCBsZWFzdAotICAgY29udGFpbiB0aGUgcm9v
dCBgdG9jdHJlZWAgZGlyZWN0aXZlLgotCi1XZWxjb21lIHRvIHdwdHJ1bm5lcidzIGRvY3VtZW50
YXRpb24hCi09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0KLUNvbnRlbnRz
OgotCi0uLiB0b2N0cmVlOjoKLSAgIDptYXhkZXB0aDogMgotCi0gICB1c2FnZQotICAgZXhwZWN0
YXRpb24KLSAgIGRlc2lnbgotCi1JbmRpY2VzIGFuZCB0YWJsZXMKLT09PT09PT09PT09PT09PT09
PQotCi0qIDpyZWY6YGdlbmluZGV4YAotKiA6cmVmOmBtb2RpbmRleGAKLSogOnJlZjpgc2VhcmNo
YAotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3dwdHJ1bm5lci9kb2NzL2ludGVybmFscy5yc3QgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci9kb2NzL2ludGVybmFs
cy5yc3QKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uNzgwZGY4NzJlZGMxNzI4Y2U2NDBkZTg4MzQ4MDNjYjI4Nzg2ZDBh
NAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL2RvY3MvaW50ZXJuYWxzLnJzdApAQCAtMCwwICsxLDIz
IEBACit3cHRydW5uZXIgSW50ZXJuYWxzCis9PT09PT09PT09PT09PT09PT09CisKKy4uIFRoZXNl
IG1vZHVsZXMgYXJlIGludGVudGlvbmFsbHkgcmVmZXJlbmNlZCBhcyBzdWJtb2R1bGVzIGZyb20g
dGhlIHBhcmVudAorICAgZGlyZWN0b3J5LiBUaGlzIGVuc3VyZXMgdGhhdCBTcGhpbnggaW50ZXJw
cmV0cyB0aGVtIGFzIHBhY2thZ2VzLgorCisuLiBhdXRvbW9kdWxlOjogd3B0cnVubmVyLmJyb3dz
ZXJzLmJhc2UKKyAgIDptZW1iZXJzOgorCisuLiBhdXRvbW9kdWxlOjogd3B0cnVubmVyLmVudmly
b25tZW50CisgICA6bWVtYmVyczoKKworLi4gYXV0b21vZHVsZTo6IHdwdHJ1bm5lci5leGVjdXRv
cnMuYmFzZQorICAgOm1lbWJlcnM6CisKKy4uIGF1dG9tb2R1bGU6OiB3cHRydW5uZXIud3B0cnVu
bmVyCisgICA6bWVtYmVyczoKKworLi4gYXV0b21vZHVsZTo6IHdwdHJ1bm5lci50ZXN0bG9hZGVy
CisgICA6bWVtYmVyczoKKworLi4gYXV0b21vZHVsZTo6IHdwdHJ1bm5lci50ZXN0cnVubmVyCisg
ICA6bWVtYmVyczoKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL2RvY3MvbWFrZS5iYXQgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci9kb2NzL21ha2Uu
YmF0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5NTljMTYxNWEyODlkYjBiMWE5MGEw
OTBkODk0ZmE0YjU0YjRmYTNmLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvd3B0cnVubmVyL2RvY3MvbWFrZS5iYXQKKysrIC9kZXYvbnVsbApAQCAtMSwyNDIgKzAsMCBA
QAotQEVDSE8gT0ZGDQotDQotUkVNIENvbW1hbmQgZmlsZSBmb3IgU3BoaW54IGRvY3VtZW50YXRp
b24NCi0NCi1pZiAiJVNQSElOWEJVSUxEJSIgPT0gIiIgKA0KLQlzZXQgU1BISU5YQlVJTEQ9c3Bo
aW54LWJ1aWxkDQotKQ0KLXNldCBCVUlMRERJUj1fYnVpbGQNCi1zZXQgQUxMU1BISU5YT1BUUz0t
ZCAlQlVJTERESVIlL2RvY3RyZWVzICVTUEhJTlhPUFRTJSAuDQotc2V0IEkxOE5TUEhJTlhPUFRT
PSVTUEhJTlhPUFRTJSAuDQotaWYgTk9UICIlUEFQRVIlIiA9PSAiIiAoDQotCXNldCBBTExTUEhJ
TlhPUFRTPS1EIGxhdGV4X3BhcGVyX3NpemU9JVBBUEVSJSAlQUxMU1BISU5YT1BUUyUNCi0Jc2V0
IEkxOE5TUEhJTlhPUFRTPS1EIGxhdGV4X3BhcGVyX3NpemU9JVBBUEVSJSAlSTE4TlNQSElOWE9Q
VFMlDQotKQ0KLQ0KLWlmICIlMSIgPT0gIiIgZ290byBoZWxwDQotDQotaWYgIiUxIiA9PSAiaGVs
cCIgKA0KLQk6aGVscA0KLQllY2hvLlBsZWFzZSB1c2UgYG1ha2UgXjx0YXJnZXRePmAgd2hlcmUg
Xjx0YXJnZXRePiBpcyBvbmUgb2YNCi0JZWNoby4gIGh0bWwgICAgICAgdG8gbWFrZSBzdGFuZGFs
b25lIEhUTUwgZmlsZXMNCi0JZWNoby4gIGRpcmh0bWwgICAgdG8gbWFrZSBIVE1MIGZpbGVzIG5h
bWVkIGluZGV4Lmh0bWwgaW4gZGlyZWN0b3JpZXMNCi0JZWNoby4gIHNpbmdsZWh0bWwgdG8gbWFr
ZSBhIHNpbmdsZSBsYXJnZSBIVE1MIGZpbGUNCi0JZWNoby4gIHBpY2tsZSAgICAgdG8gbWFrZSBw
aWNrbGUgZmlsZXMNCi0JZWNoby4gIGpzb24gICAgICAgdG8gbWFrZSBKU09OIGZpbGVzDQotCWVj
aG8uICBodG1saGVscCAgIHRvIG1ha2UgSFRNTCBmaWxlcyBhbmQgYSBIVE1MIGhlbHAgcHJvamVj
dA0KLQllY2hvLiAgcXRoZWxwICAgICB0byBtYWtlIEhUTUwgZmlsZXMgYW5kIGEgcXRoZWxwIHBy
b2plY3QNCi0JZWNoby4gIGRldmhlbHAgICAgdG8gbWFrZSBIVE1MIGZpbGVzIGFuZCBhIERldmhl
bHAgcHJvamVjdA0KLQllY2hvLiAgZXB1YiAgICAgICB0byBtYWtlIGFuIGVwdWINCi0JZWNoby4g
IGxhdGV4ICAgICAgdG8gbWFrZSBMYVRlWCBmaWxlcywgeW91IGNhbiBzZXQgUEFQRVI9YTQgb3Ig
UEFQRVI9bGV0dGVyDQotCWVjaG8uICB0ZXh0ICAgICAgIHRvIG1ha2UgdGV4dCBmaWxlcw0KLQll
Y2hvLiAgbWFuICAgICAgICB0byBtYWtlIG1hbnVhbCBwYWdlcw0KLQllY2hvLiAgdGV4aW5mbyAg
ICB0byBtYWtlIFRleGluZm8gZmlsZXMNCi0JZWNoby4gIGdldHRleHQgICAgdG8gbWFrZSBQTyBt
ZXNzYWdlIGNhdGFsb2dzDQotCWVjaG8uICBjaGFuZ2VzICAgIHRvIG1ha2UgYW4gb3ZlcnZpZXcg
b3ZlciBhbGwgY2hhbmdlZC9hZGRlZC9kZXByZWNhdGVkIGl0ZW1zDQotCWVjaG8uICB4bWwgICAg
ICAgIHRvIG1ha2UgRG9jdXRpbHMtbmF0aXZlIFhNTCBmaWxlcw0KLQllY2hvLiAgcHNldWRveG1s
ICB0byBtYWtlIHBzZXVkb3htbC1YTUwgZmlsZXMgZm9yIGRpc3BsYXkgcHVycG9zZXMNCi0JZWNo
by4gIGxpbmtjaGVjayAgdG8gY2hlY2sgYWxsIGV4dGVybmFsIGxpbmtzIGZvciBpbnRlZ3JpdHkN
Ci0JZWNoby4gIGRvY3Rlc3QgICAgdG8gcnVuIGFsbCBkb2N0ZXN0cyBlbWJlZGRlZCBpbiB0aGUg
ZG9jdW1lbnRhdGlvbiBpZiBlbmFibGVkDQotCWdvdG8gZW5kDQotKQ0KLQ0KLWlmICIlMSIgPT0g
ImNsZWFuIiAoDQotCWZvciAvZCAlJWkgaW4gKCVCVUlMRERJUiVcKikgZG8gcm1kaXIgL3EgL3Mg
JSVpDQotCWRlbCAvcSAvcyAlQlVJTERESVIlXCoNCi0JZ290byBlbmQNCi0pDQotDQotDQotJVNQ
SElOWEJVSUxEJSAyPiBudWwNCi1pZiBlcnJvcmxldmVsIDkwMDkgKA0KLQllY2hvLg0KLQllY2hv
LlRoZSAnc3BoaW54LWJ1aWxkJyBjb21tYW5kIHdhcyBub3QgZm91bmQuIE1ha2Ugc3VyZSB5b3Ug
aGF2ZSBTcGhpbngNCi0JZWNoby5pbnN0YWxsZWQsIHRoZW4gc2V0IHRoZSBTUEhJTlhCVUlMRCBl
bnZpcm9ubWVudCB2YXJpYWJsZSB0byBwb2ludA0KLQllY2hvLnRvIHRoZSBmdWxsIHBhdGggb2Yg
dGhlICdzcGhpbngtYnVpbGQnIGV4ZWN1dGFibGUuIEFsdGVybmF0aXZlbHkgeW91DQotCWVjaG8u
bWF5IGFkZCB0aGUgU3BoaW54IGRpcmVjdG9yeSB0byBQQVRILg0KLQllY2hvLg0KLQllY2hvLklm
IHlvdSBkb24ndCBoYXZlIFNwaGlueCBpbnN0YWxsZWQsIGdyYWIgaXQgZnJvbQ0KLQllY2hvLmh0
dHA6Ly9zcGhpbngtZG9jLm9yZy8NCi0JZXhpdCAvYiAxDQotKQ0KLQ0KLWlmICIlMSIgPT0gImh0
bWwiICgNCi0JJVNQSElOWEJVSUxEJSAtYiBodG1sICVBTExTUEhJTlhPUFRTJSAlQlVJTERESVIl
L2h0bWwNCi0JaWYgZXJyb3JsZXZlbCAxIGV4aXQgL2IgMQ0KLQllY2hvLg0KLQllY2hvLkJ1aWxk
IGZpbmlzaGVkLiBUaGUgSFRNTCBwYWdlcyBhcmUgaW4gJUJVSUxERElSJS9odG1sLg0KLQlnb3Rv
IGVuZA0KLSkNCi0NCi1pZiAiJTEiID09ICJkaXJodG1sIiAoDQotCSVTUEhJTlhCVUlMRCUgLWIg
ZGlyaHRtbCAlQUxMU1BISU5YT1BUUyUgJUJVSUxERElSJS9kaXJodG1sDQotCWlmIGVycm9ybGV2
ZWwgMSBleGl0IC9iIDENCi0JZWNoby4NCi0JZWNoby5CdWlsZCBmaW5pc2hlZC4gVGhlIEhUTUwg
cGFnZXMgYXJlIGluICVCVUlMRERJUiUvZGlyaHRtbC4NCi0JZ290byBlbmQNCi0pDQotDQotaWYg
IiUxIiA9PSAic2luZ2xlaHRtbCIgKA0KLQklU1BISU5YQlVJTEQlIC1iIHNpbmdsZWh0bWwgJUFM
TFNQSElOWE9QVFMlICVCVUlMRERJUiUvc2luZ2xlaHRtbA0KLQlpZiBlcnJvcmxldmVsIDEgZXhp
dCAvYiAxDQotCWVjaG8uDQotCWVjaG8uQnVpbGQgZmluaXNoZWQuIFRoZSBIVE1MIHBhZ2VzIGFy
ZSBpbiAlQlVJTERESVIlL3NpbmdsZWh0bWwuDQotCWdvdG8gZW5kDQotKQ0KLQ0KLWlmICIlMSIg
PT0gInBpY2tsZSIgKA0KLQklU1BISU5YQlVJTEQlIC1iIHBpY2tsZSAlQUxMU1BISU5YT1BUUyUg
JUJVSUxERElSJS9waWNrbGUNCi0JaWYgZXJyb3JsZXZlbCAxIGV4aXQgL2IgMQ0KLQllY2hvLg0K
LQllY2hvLkJ1aWxkIGZpbmlzaGVkOyBub3cgeW91IGNhbiBwcm9jZXNzIHRoZSBwaWNrbGUgZmls
ZXMuDQotCWdvdG8gZW5kDQotKQ0KLQ0KLWlmICIlMSIgPT0gImpzb24iICgNCi0JJVNQSElOWEJV
SUxEJSAtYiBqc29uICVBTExTUEhJTlhPUFRTJSAlQlVJTERESVIlL2pzb24NCi0JaWYgZXJyb3Js
ZXZlbCAxIGV4aXQgL2IgMQ0KLQllY2hvLg0KLQllY2hvLkJ1aWxkIGZpbmlzaGVkOyBub3cgeW91
IGNhbiBwcm9jZXNzIHRoZSBKU09OIGZpbGVzLg0KLQlnb3RvIGVuZA0KLSkNCi0NCi1pZiAiJTEi
ID09ICJodG1saGVscCIgKA0KLQklU1BISU5YQlVJTEQlIC1iIGh0bWxoZWxwICVBTExTUEhJTlhP
UFRTJSAlQlVJTERESVIlL2h0bWxoZWxwDQotCWlmIGVycm9ybGV2ZWwgMSBleGl0IC9iIDENCi0J
ZWNoby4NCi0JZWNoby5CdWlsZCBmaW5pc2hlZDsgbm93IHlvdSBjYW4gcnVuIEhUTUwgSGVscCBX
b3Jrc2hvcCB3aXRoIHRoZSBeDQotLmhocCBwcm9qZWN0IGZpbGUgaW4gJUJVSUxERElSJS9odG1s
aGVscC4NCi0JZ290byBlbmQNCi0pDQotDQotaWYgIiUxIiA9PSAicXRoZWxwIiAoDQotCSVTUEhJ
TlhCVUlMRCUgLWIgcXRoZWxwICVBTExTUEhJTlhPUFRTJSAlQlVJTERESVIlL3F0aGVscA0KLQlp
ZiBlcnJvcmxldmVsIDEgZXhpdCAvYiAxDQotCWVjaG8uDQotCWVjaG8uQnVpbGQgZmluaXNoZWQ7
IG5vdyB5b3UgY2FuIHJ1biAicWNvbGxlY3Rpb25nZW5lcmF0b3IiIHdpdGggdGhlIF4NCi0ucWhj
cCBwcm9qZWN0IGZpbGUgaW4gJUJVSUxERElSJS9xdGhlbHAsIGxpa2UgdGhpczoNCi0JZWNoby5e
PiBxY29sbGVjdGlvbmdlbmVyYXRvciAlQlVJTERESVIlXHF0aGVscFx3cHRydW5uZXIucWhjcA0K
LQllY2hvLlRvIHZpZXcgdGhlIGhlbHAgZmlsZToNCi0JZWNoby5ePiBhc3Npc3RhbnQgLWNvbGxl
Y3Rpb25GaWxlICVCVUlMRERJUiVccXRoZWxwXHdwdHJ1bm5lci5naGMNCi0JZ290byBlbmQNCi0p
DQotDQotaWYgIiUxIiA9PSAiZGV2aGVscCIgKA0KLQklU1BISU5YQlVJTEQlIC1iIGRldmhlbHAg
JUFMTFNQSElOWE9QVFMlICVCVUlMRERJUiUvZGV2aGVscA0KLQlpZiBlcnJvcmxldmVsIDEgZXhp
dCAvYiAxDQotCWVjaG8uDQotCWVjaG8uQnVpbGQgZmluaXNoZWQuDQotCWdvdG8gZW5kDQotKQ0K
LQ0KLWlmICIlMSIgPT0gImVwdWIiICgNCi0JJVNQSElOWEJVSUxEJSAtYiBlcHViICVBTExTUEhJ
TlhPUFRTJSAlQlVJTERESVIlL2VwdWINCi0JaWYgZXJyb3JsZXZlbCAxIGV4aXQgL2IgMQ0KLQll
Y2hvLg0KLQllY2hvLkJ1aWxkIGZpbmlzaGVkLiBUaGUgZXB1YiBmaWxlIGlzIGluICVCVUlMRERJ
UiUvZXB1Yi4NCi0JZ290byBlbmQNCi0pDQotDQotaWYgIiUxIiA9PSAibGF0ZXgiICgNCi0JJVNQ
SElOWEJVSUxEJSAtYiBsYXRleCAlQUxMU1BISU5YT1BUUyUgJUJVSUxERElSJS9sYXRleA0KLQlp
ZiBlcnJvcmxldmVsIDEgZXhpdCAvYiAxDQotCWVjaG8uDQotCWVjaG8uQnVpbGQgZmluaXNoZWQ7
IHRoZSBMYVRlWCBmaWxlcyBhcmUgaW4gJUJVSUxERElSJS9sYXRleC4NCi0JZ290byBlbmQNCi0p
DQotDQotaWYgIiUxIiA9PSAibGF0ZXhwZGYiICgNCi0JJVNQSElOWEJVSUxEJSAtYiBsYXRleCAl
QUxMU1BISU5YT1BUUyUgJUJVSUxERElSJS9sYXRleA0KLQljZCAlQlVJTERESVIlL2xhdGV4DQot
CW1ha2UgYWxsLXBkZg0KLQljZCAlQlVJTERESVIlLy4uDQotCWVjaG8uDQotCWVjaG8uQnVpbGQg
ZmluaXNoZWQ7IHRoZSBQREYgZmlsZXMgYXJlIGluICVCVUlMRERJUiUvbGF0ZXguDQotCWdvdG8g
ZW5kDQotKQ0KLQ0KLWlmICIlMSIgPT0gImxhdGV4cGRmamEiICgNCi0JJVNQSElOWEJVSUxEJSAt
YiBsYXRleCAlQUxMU1BISU5YT1BUUyUgJUJVSUxERElSJS9sYXRleA0KLQljZCAlQlVJTERESVIl
L2xhdGV4DQotCW1ha2UgYWxsLXBkZi1qYQ0KLQljZCAlQlVJTERESVIlLy4uDQotCWVjaG8uDQot
CWVjaG8uQnVpbGQgZmluaXNoZWQ7IHRoZSBQREYgZmlsZXMgYXJlIGluICVCVUlMRERJUiUvbGF0
ZXguDQotCWdvdG8gZW5kDQotKQ0KLQ0KLWlmICIlMSIgPT0gInRleHQiICgNCi0JJVNQSElOWEJV
SUxEJSAtYiB0ZXh0ICVBTExTUEhJTlhPUFRTJSAlQlVJTERESVIlL3RleHQNCi0JaWYgZXJyb3Js
ZXZlbCAxIGV4aXQgL2IgMQ0KLQllY2hvLg0KLQllY2hvLkJ1aWxkIGZpbmlzaGVkLiBUaGUgdGV4
dCBmaWxlcyBhcmUgaW4gJUJVSUxERElSJS90ZXh0Lg0KLQlnb3RvIGVuZA0KLSkNCi0NCi1pZiAi
JTEiID09ICJtYW4iICgNCi0JJVNQSElOWEJVSUxEJSAtYiBtYW4gJUFMTFNQSElOWE9QVFMlICVC
VUlMRERJUiUvbWFuDQotCWlmIGVycm9ybGV2ZWwgMSBleGl0IC9iIDENCi0JZWNoby4NCi0JZWNo
by5CdWlsZCBmaW5pc2hlZC4gVGhlIG1hbnVhbCBwYWdlcyBhcmUgaW4gJUJVSUxERElSJS9tYW4u
DQotCWdvdG8gZW5kDQotKQ0KLQ0KLWlmICIlMSIgPT0gInRleGluZm8iICgNCi0JJVNQSElOWEJV
SUxEJSAtYiB0ZXhpbmZvICVBTExTUEhJTlhPUFRTJSAlQlVJTERESVIlL3RleGluZm8NCi0JaWYg
ZXJyb3JsZXZlbCAxIGV4aXQgL2IgMQ0KLQllY2hvLg0KLQllY2hvLkJ1aWxkIGZpbmlzaGVkLiBU
aGUgVGV4aW5mbyBmaWxlcyBhcmUgaW4gJUJVSUxERElSJS90ZXhpbmZvLg0KLQlnb3RvIGVuZA0K
LSkNCi0NCi1pZiAiJTEiID09ICJnZXR0ZXh0IiAoDQotCSVTUEhJTlhCVUlMRCUgLWIgZ2V0dGV4
dCAlSTE4TlNQSElOWE9QVFMlICVCVUlMRERJUiUvbG9jYWxlDQotCWlmIGVycm9ybGV2ZWwgMSBl
eGl0IC9iIDENCi0JZWNoby4NCi0JZWNoby5CdWlsZCBmaW5pc2hlZC4gVGhlIG1lc3NhZ2UgY2F0
YWxvZ3MgYXJlIGluICVCVUlMRERJUiUvbG9jYWxlLg0KLQlnb3RvIGVuZA0KLSkNCi0NCi1pZiAi
JTEiID09ICJjaGFuZ2VzIiAoDQotCSVTUEhJTlhCVUlMRCUgLWIgY2hhbmdlcyAlQUxMU1BISU5Y
T1BUUyUgJUJVSUxERElSJS9jaGFuZ2VzDQotCWlmIGVycm9ybGV2ZWwgMSBleGl0IC9iIDENCi0J
ZWNoby4NCi0JZWNoby5UaGUgb3ZlcnZpZXcgZmlsZSBpcyBpbiAlQlVJTERESVIlL2NoYW5nZXMu
DQotCWdvdG8gZW5kDQotKQ0KLQ0KLWlmICIlMSIgPT0gImxpbmtjaGVjayIgKA0KLQklU1BISU5Y
QlVJTEQlIC1iIGxpbmtjaGVjayAlQUxMU1BISU5YT1BUUyUgJUJVSUxERElSJS9saW5rY2hlY2sN
Ci0JaWYgZXJyb3JsZXZlbCAxIGV4aXQgL2IgMQ0KLQllY2hvLg0KLQllY2hvLkxpbmsgY2hlY2sg
Y29tcGxldGU7IGxvb2sgZm9yIGFueSBlcnJvcnMgaW4gdGhlIGFib3ZlIG91dHB1dCBeDQotb3Ig
aW4gJUJVSUxERElSJS9saW5rY2hlY2svb3V0cHV0LnR4dC4NCi0JZ290byBlbmQNCi0pDQotDQot
aWYgIiUxIiA9PSAiZG9jdGVzdCIgKA0KLQklU1BISU5YQlVJTEQlIC1iIGRvY3Rlc3QgJUFMTFNQ
SElOWE9QVFMlICVCVUlMRERJUiUvZG9jdGVzdA0KLQlpZiBlcnJvcmxldmVsIDEgZXhpdCAvYiAx
DQotCWVjaG8uDQotCWVjaG8uVGVzdGluZyBvZiBkb2N0ZXN0cyBpbiB0aGUgc291cmNlcyBmaW5p
c2hlZCwgbG9vayBhdCB0aGUgXg0KLXJlc3VsdHMgaW4gJUJVSUxERElSJS9kb2N0ZXN0L291dHB1
dC50eHQuDQotCWdvdG8gZW5kDQotKQ0KLQ0KLWlmICIlMSIgPT0gInhtbCIgKA0KLQklU1BISU5Y
QlVJTEQlIC1iIHhtbCAlQUxMU1BISU5YT1BUUyUgJUJVSUxERElSJS94bWwNCi0JaWYgZXJyb3Js
ZXZlbCAxIGV4aXQgL2IgMQ0KLQllY2hvLg0KLQllY2hvLkJ1aWxkIGZpbmlzaGVkLiBUaGUgWE1M
IGZpbGVzIGFyZSBpbiAlQlVJTERESVIlL3htbC4NCi0JZ290byBlbmQNCi0pDQotDQotaWYgIiUx
IiA9PSAicHNldWRveG1sIiAoDQotCSVTUEhJTlhCVUlMRCUgLWIgcHNldWRveG1sICVBTExTUEhJ
TlhPUFRTJSAlQlVJTERESVIlL3BzZXVkb3htbA0KLQlpZiBlcnJvcmxldmVsIDEgZXhpdCAvYiAx
DQotCWVjaG8uDQotCWVjaG8uQnVpbGQgZmluaXNoZWQuIFRoZSBwc2V1ZG8tWE1MIGZpbGVzIGFy
ZSBpbiAlQlVJTERESVIlL3BzZXVkb3htbC4NCi0JZ290byBlbmQNCi0pDQotDQotOmVuZA0KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvd3B0cnVubmVyL2RvY3MvdXNhZ2UucnN0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvZG9jcy91c2FnZS5yc3QKaW5kZXggNTk5
N2Y0MjU0ZjFlZWFhYjQ4NzgwYWFiZmEzZDIzM2ZlZjdmNjY3Zi4uODVmZDk3YmY2YzEyYTFmYzNh
MmRiYmQyNGVjMmMzMjY1OWRiOTExNCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvZG9jcy91c2FnZS5yc3QKKysr
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRy
dW5uZXIvZG9jcy91c2FnZS5yc3QKQEAgLTE2NCwyMCArMTY0LDI0IEBAIG1ldGFkYXRhIGZpbGVz
IGluIGEgc3ViZGlyZWN0b3J5IG9mIHRoZSBjdXJyZW50IGRpcmVjdG9yeSBuYW1lZCBgYG1ldGFg
YC4KIE91dHB1dAogLS0tLS0tCiAKLXdwdHJ1bm5lciB1c2VzIHRoZSA6cHk6bW9kOmBtb3psb2dg
IHBhY2thZ2UgZm9yIG91dHB1dC4gVGhpcwotc3RydWN0dXJlcyBldmVudHMgc3VjaCBhcyB0ZXN0
IHJlc3VsdHMgb3IgbG9nIG1lc3NhZ2VzIGFzIEpTT04gb2JqZWN0cwotdGhhdCBjYW4gdGhlbiBi
ZSBmZWQgdG8gb3RoZXIgdG9vbHMgZm9yIGludGVycHJldGF0aW9uLiBNb3JlIGRldGFpbHMKLWFi
b3V0IHRoZSBtZXNzYWdlIGZvcm1hdCBhcmUgZ2l2ZW4gaW4gdGhlCi06cHk6bW9kOmBtb3psb2dg
IGRvY3VtZW50YXRpb24uCit3cHRydW5uZXIgdXNlcyBgdGhlIG1vemxvZyBwYWNrYWdlCis8aHR0
cHM6Ly9maXJlZm94LXNvdXJjZS1kb2NzLm1vemlsbGEub3JnL21vemJhc2UvbW96bG9nLmh0bWw+
YF8pIGZvcgorb3V0cHV0LiBUaGlzIHN0cnVjdHVyZXMgZXZlbnRzIHN1Y2ggYXMgdGVzdCByZXN1
bHRzIG9yIGxvZyBtZXNzYWdlcyBhcworSlNPTiBvYmplY3RzIHRoYXQgY2FuIHRoZW4gYmUgZmVk
IHRvIG90aGVyIHRvb2xzIGZvcgoraW50ZXJwcmV0YXRpb24uIE1vcmUgZGV0YWlscyBhYm91dCB0
aGUgbWVzc2FnZSBmb3JtYXQgYXJlIGdpdmVuIGluCitgdGhlIG1vemxvZyBkb2N1bWVudGF0aW9u
Cis8aHR0cHM6Ly9maXJlZm94LXNvdXJjZS1kb2NzLm1vemlsbGEub3JnL21vemJhc2UvbW96bG9n
Lmh0bWw+YF8uCiAKIEJ5IGRlZmF1bHQgdGhlIHJhdyBKU09OIG1lc3NhZ2VzIGFyZSBkdW1wZWQg
dG8gc3Rkb3V0LiBUaGlzIGlzCiBjb252ZW5pZW50IGZvciBwaXBpbmcgaW50byBvdGhlciB0b29s
cywgYnV0IG5vdCBpZGVhbCBmb3IgaHVtYW5zCi1yZWFkaW5nIHRoZSBvdXRwdXQuIDpweTptb2Q6
YG1vemxvZ2AgY29tZXMgd2l0aCBzZXZlcmFsIG90aGVyCi1mb3JtYXR0ZXJzLCB3aGljaCBhcmUg
YWNjZXNzaWJsZSB0aHJvdWdoIGNvbW1hbmQgbGluZSBvcHRpb25zLiBUaGUKLWdlbmVyYWwgZm9y
bWF0IG9mIHRoZXNlIG9wdGlvbnMgaXMgYGAtLWxvZy1uYW1lPWRlc3RgYCwgd2hlcmUgYGBuYW1l
YGAKLWlzIHRoZSBuYW1lIG9mIHRoZSBmb3JtYXQgYW5kIGBgZGVzdGBgIGlzIGEgcGF0aCB0byBh
IGRlc3RpbmF0aW9uCi1maWxlLCBvciBgYC1gYCBmb3Igc3Rkb3V0LiBUaGUgcmF3IEpTT04gZGF0
YSBpcyB3cml0dGVuIGJ5IHRoZSBgYHJhd2BgCi1mb3JtYXR0ZXIgc28sIHRoZSBkZWZhdWx0IHNl
dHVwIGNvcnJlc3BvbmRzIHRvIGBgLS1sb2ctcmF3PS1gYC4KK3JlYWRpbmcgdGhlIG91dHB1dC4g
YG1vemxvZworPGh0dHBzOi8vZmlyZWZveC1zb3VyY2UtZG9jcy5tb3ppbGxhLm9yZy9tb3piYXNl
L21vemxvZy5odG1sPmBfIGNvbWVzCit3aXRoIHNldmVyYWwgb3RoZXIgZm9ybWF0dGVycywgd2hp
Y2ggYXJlIGFjY2Vzc2libGUgdGhyb3VnaCBjb21tYW5kCitsaW5lIG9wdGlvbnMuIFRoZSBnZW5l
cmFsIGZvcm1hdCBvZiB0aGVzZSBvcHRpb25zIGlzCitgYC0tbG9nLW5hbWU9ZGVzdGBgLCB3aGVy
ZSBgYG5hbWVgYCBpcyB0aGUgbmFtZSBvZiB0aGUgZm9ybWF0IGFuZAorYGBkZXN0YGAgaXMgYSBw
YXRoIHRvIGEgZGVzdGluYXRpb24gZmlsZSwgb3IgYGAtYGAgZm9yIHN0ZG91dC4gVGhlIHJhdwor
SlNPTiBkYXRhIGlzIHdyaXR0ZW4gYnkgdGhlIGBgcmF3YGAgZm9ybWF0dGVyIHNvLCB0aGUgZGVm
YXVsdCBzZXR1cAorY29ycmVzcG9uZHMgdG8gYGAtLWxvZy1yYXc9LWBgLgogCiBBIHJlYXNvbmFi
bGUgb3V0cHV0IGZvcm1hdCBmb3IgaHVtYW5zIGlzIHByb3ZpZGVkIGFzIGBgbWFjaGBgLiBTbyBp
bgogb3JkZXIgdG8gb3V0cHV0IHRoZSBmdWxsIHJhdyBsb2cgdG8gYSBmaWxlIGFuZCBhIGh1bWFu
LXJlYWRhYmxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci9kb2NzL3czYy1pbXBvcnQubG9nIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvZG9jcy93
M2MtaW1wb3J0LmxvZwppbmRleCAyYTRmMWQxOWNmYWRjMGZkN2Y0ZmE4ZmI3OGQ1YzcwYjI2M2I2
NzM0Li4yOGFmYzAxYWUwODA3OTM1OTY4ODdmNzY1NjlmYTE0NjdjMTdhMGVkIDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1
bm5lci9kb2NzL3czYy1pbXBvcnQubG9nCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL2RvY3MvdzNjLWltcG9ydC5sb2cKQEAg
LTE0LDExICsxNCw4IEBAIFByb3BlcnR5IHZhbHVlcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVz
OgogTm9uZQogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiBMaXN0IG9mIGZpbGVzOgotL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL2RvY3MvTWFrZWZp
bGUKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dw
dHJ1bm5lci9kb2NzL2FyY2hpdGVjdHVyZS5zdmcKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci9kb2NzL2NvbmYucHkKIC9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci9kb2Nz
L2Rlc2lnbi5yc3QKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3dwdHJ1bm5lci9kb2NzL2V4cGVjdGF0aW9uLnJzdAotL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL2RvY3MvaW5kZXgucnN0
Ci0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRy
dW5uZXIvZG9jcy9tYWtlLmJhdAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL2RvY3MvaW50ZXJuYWxzLnJzdAogL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL2RvY3MvdXNh
Z2UucnN0CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci9yZXF1aXJlbWVudHMudHh0IGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvcmVxdWlyZW1lbnRz
LnR4dAppbmRleCBmY2I1OTIyZDEwZDUzNzE4OTk3ZDBkNWRjYTJlM2Y5MmUwODYyYzhiLi4zY2Qw
MTQ0NmUyNWJjZWI0ZGFkZWY0ODI1OTExN2JkMDU3ZWE2ZjQ4IDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci9yZXF1
aXJlbWVudHMudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvd3B0cnVubmVyL3JlcXVpcmVtZW50cy50eHQKQEAgLTEsNSArMSw4IEBACi1o
dG1sNWxpYiA9PSAxLjAuMQotbW96aW5mbyA9PSAwLjEwCi1tb3psb2c9PTMuOAotbW96ZGVidWcg
PT0gMC4xCi11cmxsaWIzW3NlY3VyZV0gPT0gMS4yMgoraHRtbDVsaWI9PTEuMC4xCittb3ppbmZv
PT0xLjEuMAorbW96bG9nPT01LjAKK21vemRlYnVnPT0wLjEuMQorcGlsbG93PT02LjIuMQordXJs
bGliM1tzZWN1cmVdPT0xLjI1LjcKK3JlcXVlc3RzPT0yLjIyLjAKK3NpeD09MS4xMy4wCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3dwdHJ1bm5lci9yZXF1aXJlbWVudHNfYW5kcm9pZF93ZWJ2aWV3LnR4dCBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3JlcXVpcmVt
ZW50c19hbmRyb2lkX3dlYnZpZXcudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQ3MGFhZjlhOTM5OTZkMDIzMWUx
M2UwNWNjMzU1NTdhMzZkMjVkZTkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci9yZXF1aXJlbWVudHNf
YW5kcm9pZF93ZWJ2aWV3LnR4dApAQCAtMCwwICsxIEBACittb3pwcm9jZXNzPT0xLjAuMApkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy93cHRydW5uZXIvcmVxdWlyZW1lbnRzX2Nocm9tZS50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci9yZXF1aXJlbWVudHNfY2hy
b21lLnR4dAppbmRleCAyMmEwNzUzMjY1N2RhZGI3OWM0MDRmY2I2MWEyNmUxYTEyN2I4Y2MyLi40
NzBhYWY5YTkzOTk2ZDAyMzFlMTNlMDVjYzM1NTU3YTM2ZDI1ZGU5IDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci9y
ZXF1aXJlbWVudHNfY2hyb21lLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci9yZXF1aXJlbWVudHNfY2hyb21lLnR4dApA
QCAtMSwyICsxIEBACi1tb3pwcm9jZXNzID09IDAuMjYKLXNlbGVuaXVtPT0zLjE0LjAKK21venBy
b2Nlc3M9PTEuMC4wCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci9yZXF1aXJlbWVudHNfY2hyb21lX2FuZHJvaWQu
dHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93
cHRydW5uZXIvcmVxdWlyZW1lbnRzX2Nocm9tZV9hbmRyb2lkLnR4dAppbmRleCAyMmEwNzUzMjY1
N2RhZGI3OWM0MDRmY2I2MWEyNmUxYTEyN2I4Y2MyLi40NzBhYWY5YTkzOTk2ZDAyMzFlMTNlMDVj
YzM1NTU3YTM2ZDI1ZGU5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci9yZXF1aXJlbWVudHNfY2hyb21lX2FuZHJv
aWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvd3B0cnVubmVyL3JlcXVpcmVtZW50c19jaHJvbWVfYW5kcm9pZC50eHQKQEAgLTEsMiAr
MSBAQAotbW96cHJvY2VzcyA9PSAwLjI2Ci1zZWxlbml1bT09My4xNC4wCittb3pwcm9jZXNzPT0x
LjAuMApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy93cHRydW5uZXIvcmVxdWlyZW1lbnRzX2Nocm9tZV9pb3MudHh0IGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvcmVx
dWlyZW1lbnRzX2Nocm9tZV9pb3MudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQ3MGFhZjlhOTM5OTZkMDIzMWUx
M2UwNWNjMzU1NTdhMzZkMjVkZTkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci9yZXF1aXJlbWVudHNf
Y2hyb21lX2lvcy50eHQKQEAgLTAsMCArMSBAQAorbW96cHJvY2Vzcz09MS4wLjAKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0
cnVubmVyL3JlcXVpcmVtZW50c19lZGdlLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3JlcXVpcmVtZW50c19lZGdlLnR4dApp
bmRleCAyMmEwNzUzMjY1N2RhZGI3OWM0MDRmY2I2MWEyNmUxYTEyN2I4Y2MyLi4xYmY2ZWYzMmFk
NDczYTcxNmNjOTY5ZDA2ZjE0N2U1ZTgyN2FkZTM1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci9yZXF1aXJlbWVu
dHNfZWRnZS50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy93cHRydW5uZXIvcmVxdWlyZW1lbnRzX2VkZ2UudHh0CkBAIC0xLDIgKzEsMiBA
QAotbW96cHJvY2VzcyA9PSAwLjI2Ci1zZWxlbml1bT09My4xNC4wCittb3pwcm9jZXNzPT0xLjAu
MAorc2VsZW5pdW09PTMuMTQxLjAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3JlcXVpcmVtZW50c19lZGdlX2No
cm9taXVtLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvd3B0cnVubmVyL3JlcXVpcmVtZW50c19lZGdlX2Nocm9taXVtLnR4dApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li43MGMxMjQ0MzI0M2U2NjU1ZDk3NzJjZGUzZmRhYTIwYWI2MDIzYmY3Ci0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93
cHRydW5uZXIvcmVxdWlyZW1lbnRzX2VkZ2VfY2hyb21pdW0udHh0CkBAIC0wLDAgKzEgQEAKK21v
enByb2Nlc3M9PTEuMC4wDQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvcmVxdWlyZW1lbnRzX2VwaXBoYW55LnR4
dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0
cnVubmVyL3JlcXVpcmVtZW50c19lcGlwaGFueS50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDcwYWFmOWE5Mzk5
NmQwMjMxZTEzZTA1Y2MzNTU1N2EzNmQyNWRlOQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3JlcXVp
cmVtZW50c19lcGlwaGFueS50eHQKQEAgLTAsMCArMSBAQAorbW96cHJvY2Vzcz09MS4wLjAKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvd3B0cnVubmVyL3JlcXVpcmVtZW50c19maXJlZm94LnR4dCBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3JlcXVpcmVtZW50c19m
aXJlZm94LnR4dAppbmRleCBmMWU2YTg1ODVjYWE2M2I1YmQ0YjliMjU5NGY3MTcwZmE0OWYwNGVk
Li40Y2JiN2E1ZWMwMjkzZWZmMWVmMTk4YTIxZWNkYzkwZmVjZjQxNDExIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5l
ci9yZXF1aXJlbWVudHNfZmlyZWZveC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvcmVxdWlyZW1lbnRzX2ZpcmVmb3gu
dHh0CkBAIC0xLDkgKzEsMTEgQEAKLW1hcmlvbmV0dGVfZHJpdmVyPT0yLjYuMAotbW96cHJvZmls
ZT09MS4xLjAKLW1venByb2Nlc3MgPT0gMC4yNgotbW96Y3Jhc2ggPT0gMS4wCi1tb3pydW5uZXIg
PT0gNy4wLjAKLW1vemxlYWsgPT0gMC4xCi1tb3ppbnN0YWxsPT0xLjE2LjAKLW1vemRvd25sb2Fk
PT0xLjI0Ci0KK21hcmlvbmV0dGVfZHJpdmVyPT0zLjAuMAorbW96Y3Jhc2g9PTEuMS4wCittb3pk
b3dubG9hZD09MS4yNi4wCittb3ppbnN0YWxsPT0yLjAuMAorbW96bGVhaz09MC4yCittb3puZXR3
b3JrPT0wLjI3Cittb3pwcm9jZXNzPT0xLjAuMAorbW96cHJvZmlsZT09Mi40LjAKK21venJ1bm5l
cj09Ny43LjAKK21venZlcnNpb249PTIuMi4wCitwc3V0aWw9PTUuNi43CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5l
ci9yZXF1aXJlbWVudHNfaWUudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvcmVxdWlyZW1lbnRzX2llLnR4dAppbmRleCAyMmEw
NzUzMjY1N2RhZGI3OWM0MDRmY2I2MWEyNmUxYTEyN2I4Y2MyLi4xYmY2ZWYzMmFkNDczYTcxNmNj
OTY5ZDA2ZjE0N2U1ZTgyN2FkZTM1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci9yZXF1aXJlbWVudHNfaWUudHh0
CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
d3B0cnVubmVyL3JlcXVpcmVtZW50c19pZS50eHQKQEAgLTEsMiArMSwyIEBACi1tb3pwcm9jZXNz
ID09IDAuMjYKLXNlbGVuaXVtPT0zLjE0LjAKK21venByb2Nlc3M9PTEuMC4wCitzZWxlbml1bT09
My4xNDEuMApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy93cHRydW5uZXIvcmVxdWlyZW1lbnRzX29wZXJhLnR4dCBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3JlcXVp
cmVtZW50c19vcGVyYS50eHQKaW5kZXggMjJhMDc1MzI2NTdkYWRiNzljNDA0ZmNiNjFhMjZlMWEx
MjdiOGNjMi4uMWJmNmVmMzJhZDQ3M2E3MTZjYzk2OWQwNmYxNDdlNWU4MjdhZGUzNSAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93
cHRydW5uZXIvcmVxdWlyZW1lbnRzX29wZXJhLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci9yZXF1aXJlbWVudHNfb3Bl
cmEudHh0CkBAIC0xLDIgKzEsMiBAQAotbW96cHJvY2VzcyA9PSAwLjI2Ci1zZWxlbml1bT09My4x
NC4wCittb3pwcm9jZXNzPT0xLjAuMAorc2VsZW5pdW09PTMuMTQxLjAKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVy
L3JlcXVpcmVtZW50c19zYWZhcmkudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvcmVxdWlyZW1lbnRzX3NhZmFyaS50eHQKaW5k
ZXggNWExZDI2YjhiOWJjY2Q1Y2JiZTYzN2M3ZDExNTgwOGI0ZmQ4NWY0OS4uNDcwYWFmOWE5Mzk5
NmQwMjMxZTEzZTA1Y2MzNTU1N2EzNmQyNWRlOSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvcmVxdWlyZW1lbnRz
X3NhZmFyaS50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy93cHRydW5uZXIvcmVxdWlyZW1lbnRzX3NhZmFyaS50eHQKQEAgLTEsMiArMSBA
QAotbW96cHJvY2VzcyA9PSAwLjI2Ci1zZWxlbml1bT09My4xMy4wCittb3pwcm9jZXNzPT0xLjAu
MApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy93cHRydW5uZXIvcmVxdWlyZW1lbnRzX3NhdWNlLnR4dCBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3JlcXVpcmVtZW50
c19zYXVjZS50eHQKaW5kZXggNzdhNzQyMjI0MzNhNjkzYzg0NThmNGEwNTg1N2M3ZWQ2ZGI4NTYw
MS4uMzJiNWY2NGQxNGZkMDNkZjRlZWFjYjU3ODM5MjEwYTI2YTI4M2ZhNyAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5u
ZXIvcmVxdWlyZW1lbnRzX3NhdWNlLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci9yZXF1aXJlbWVudHNfc2F1Y2UudHh0
CkBAIC0xLDMgKzEsMyBAQAotbW96cHJvY2VzcyA9PSAwLjI2Ci1zZWxlbml1bT09My4xNC4wCi1y
ZXF1ZXN0cz09Mi4xOS4xCittb3pwcm9jZXNzPT0xLjAuMAorc2VsZW5pdW09PTMuMTQxLjAKK3Jl
cXVlc3RzPT0yLjIyLjAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3JlcXVpcmVtZW50c19zZXJ2by50eHQgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5l
ci9yZXF1aXJlbWVudHNfc2Vydm8udHh0CmluZGV4IDkxMTViN2FjNGU4ZjZhNmU0NzAzYTdiNjFk
MjcxNTA3NWUyZjYwNTMuLjQ3MGFhZjlhOTM5OTZkMDIzMWUxM2UwNWNjMzU1NTdhMzZkMjVkZTkg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvd3B0cnVubmVyL3JlcXVpcmVtZW50c19zZXJ2by50eHQKKysrIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvcmVxdWlyZW1l
bnRzX3NlcnZvLnR4dApAQCAtMSArMSBAQAotbW96cHJvY2VzcyA9PSAwLjI2Cittb3pwcm9jZXNz
PT0xLjAuMApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy93cHRydW5uZXIvcmVxdWlyZW1lbnRzX3dlYmtpdC50eHQgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci9yZXF1
aXJlbWVudHNfd2Via2l0LnR4dAppbmRleCAyNWNjNTg0NmVlNzIwNDkyMzIxNzM5NjE5MTk5NmUx
NWZkMjNkYzEzLi40NzBhYWY5YTkzOTk2ZDAyMzFlMTNlMDVjYzM1NTU3YTM2ZDI1ZGU5IDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3dwdHJ1bm5lci9yZXF1aXJlbWVudHNfd2Via2l0LnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci9yZXF1aXJlbWVudHNf
d2Via2l0LnR4dApAQCAtMSwyICsxIEBACi1tb3pwcm9jZXNzID09IDAuMjYKLXNlbGVuaXVtID09
IDMuOS4wCittb3pwcm9jZXNzPT0xLjAuMApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvc2V0dXAucHkgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci9z
ZXR1cC5weQppbmRleCA2M2QzZWRkZTI0NGQwYjllODhhYmJkYWE4YzU3OWE0YTg4MDcyMzZhLi5h
Yjk2YmQxMDM1N2NkNmIzMDIyMzY0ZDQ3MWU1Y2ViZjBjYjY1MmRkIDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci9z
ZXR1cC5weQorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3dwdHJ1bm5lci9zZXR1cC5weQpAQCAtMiw2ICsyLDggQEAKICMgTGljZW5zZSwgdi4g
Mi4wLiBJZiBhIGNvcHkgb2YgdGhlIE1QTCB3YXMgbm90IGRpc3RyaWJ1dGVkIHdpdGggdGhpcyBm
aWxlLAogIyBZb3UgY2FuIG9idGFpbiBvbmUgYXQgaHR0cDovL21vemlsbGEub3JnL01QTC8yLjAv
LgogCitmcm9tIF9fZnV0dXJlX18gaW1wb3J0IHByaW50X2Z1bmN0aW9uCisKIGltcG9ydCBnbG9i
CiBpbXBvcnQgb3MKIGltcG9ydCBzeXMKQEAgLTU1LDE3ICs1NywxNiBAQCBzZXR1cChuYW1lPVBB
Q0tBR0VfTkFNRSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAicHJlZnMvKiJd
fSwKICAgICAgIGluY2x1ZGVfcGFja2FnZV9kYXRhPVRydWUsCiAgICAgICBkYXRhX2ZpbGVzPVso
InJlcXVpcmVtZW50cyIsIHJlcXVpcmVtZW50c19maWxlcyldLAotICAgICAgaW5zdGFsbF9yZXF1
aXJlcz1kZXBzCiAgICAgICApCiAKIGlmICJpbnN0YWxsIiBpbiBzeXMuYXJndjoKICAgICBwYXRo
ID0gb3MucGF0aC5yZWxwYXRoKG9zLnBhdGguam9pbihzeXMucHJlZml4LCAicmVxdWlyZW1lbnRz
IiksIG9zLmN1cmRpcikKLSAgICBwcmludCB0ZXh0d3JhcC5maWxsKCIiIkluIG9yZGVyIHRvIHVz
ZSB3aXRoIG9uZSBvZiB0aGUgYnVpbHQtaW4gYnJvd3NlcgorICAgIHByaW50KHRleHR3cmFwLmZp
bGwoIiIiSW4gb3JkZXIgdG8gdXNlIHdpdGggb25lIG9mIHRoZSBidWlsdC1pbiBicm93c2VyCiBw
cm9kdWN0cywgeW91IHdpbGwgbmVlZCB0byBpbnN0YWxsIHRoZSBleHRyYSBkZXBlbmRlbmNpZXMu
IFRoZXNlIGFyZSBwcm92aWRlZAogYXMgcmVxdWlyZW1lbnRzX1tuYW1lXS50eHQgaW4gdGhlICVz
IGRpcmVjdG9yeSBhbmQgY2FuIGJlIGluc3RhbGxlZCB1c2luZwotZS5nLiIiIiAlIHBhdGgsIDgw
KQorZS5nLiIiIiAlIHBhdGgsIDgwKSkKIAotICAgIHByaW50ICIiIgorICAgIHByaW50KCIiIgog
CiBwaXAgaW5zdGFsbCAtciAlcy9yZXF1aXJlbWVudHNfZmlyZWZveC50eHQKLSIiIiAlIHBhdGgK
KyIiIiAlIHBhdGgpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci90ZXN0L3Rlc3QucHkgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci90ZXN0L3Rlc3Qu
cHkKaW5kZXggOTk2MGRjZDFlMjgxMjBlMWM5YmIzYTBjY2RmNDBkOGVjOWE5OTkwNC4uOGYzMjNh
MzM4NmM5OTdjYmNmYTAxM2U2NTg1MDg2NDcxZGRmYTIwOCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvdGVzdC90
ZXN0LnB5CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvd3B0cnVubmVyL3Rlc3QvdGVzdC5weQpAQCAtMSwzICsxLDQgQEAKK2Zyb20gX19mdXR1
cmVfXyBpbXBvcnQgcHJpbnRfZnVuY3Rpb24KIGltcG9ydCBDb25maWdQYXJzZXIKIGltcG9ydCBh
cmdwYXJzZQogaW1wb3J0IG9zCkBAIC0xNTMsNyArMTU0LDcgQEAgZGVmIG1haW4oKToKICAgICAg
ICAgaWYgYXJncy5wZGI6CiAgICAgICAgICAgICBpbXBvcnQgcGRiCiAgICAgICAgICAgICBpbXBv
cnQgdHJhY2ViYWNrCi0gICAgICAgICAgICBwcmludCB0cmFjZWJhY2suZm9ybWF0X2V4YygpCisg
ICAgICAgICAgICBwcmludCh0cmFjZWJhY2suZm9ybWF0X2V4YygpKQogICAgICAgICAgICAgcGRi
LnBvc3RfbW9ydGVtKCkKICAgICAgICAgZWxzZToKICAgICAgICAgICAgIHJhaXNlCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dw
dHJ1bm5lci90b3guaW5pIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy93cHRydW5uZXIvdG94LmluaQppbmRleCBmYTc5ODVlYzgwZDY2NDNjNDY4YjNh
NjEyZTUxYmVlODQ0Y2IxYjEyLi5hZDM1MDJlMDJhOWU4MTAxNjk0MGM4ZjM5ZjU2NTQwZjVhYjFm
MjZkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3dwdHJ1bm5lci90b3guaW5pCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3RveC5pbmkKQEAgLTIsNyArMiw4
IEBACiB4ZmFpbF9zdHJpY3Q9dHJ1ZQogCiBbdG94XQotZW52bGlzdCA9IHtweTI3fS17YmFzZSxj
aHJvbWUsZWRnZSxmaXJlZm94LGllLG9wZXJhLHNhZmFyaSxzYXVjZSxzZXJ2b30scHkyNy1mbGFr
ZTgKK2Vudmxpc3QgPSBweTI3LXtiYXNlLGNocm9tZSxlZGdlLGZpcmVmb3gsaWUsb3BlcmEsc2Fm
YXJpLHNhdWNlLHNlcnZvLHdlYmtpdCx3ZWJraXRndGtfbWluaWJyb3dzZXIsZXBpcGhhbnl9LHB5
MzYtYmFzZQorc2tpcF9taXNzaW5nX2ludGVycHJldGVycyA9IHRydWUKIAogW3Rlc3RlbnZdCiBk
ZXBzID0KQEAgLTE5LDE4ICsyMCwxMyBAQCBkZXBzID0KICAgICAgc2FmYXJpOiAtcnt0b3hpbmlk
aXJ9L3JlcXVpcmVtZW50c19zYWZhcmkudHh0CiAgICAgIHNhdWNlOiAtcnt0b3hpbmlkaXJ9L3Jl
cXVpcmVtZW50c19zYXVjZS50eHQKICAgICAgc2Vydm86IC1ye3RveGluaWRpcn0vcmVxdWlyZW1l
bnRzX3NlcnZvLnR4dAorICAgICB3ZWJraXQ6IC1ye3RveGluaWRpcn0vcmVxdWlyZW1lbnRzX3dl
YmtpdC50eHQKKyAgICAgd2Via2l0Z3RrX21pbmlicm93c2VyOiAtcnt0b3hpbmlkaXJ9L3JlcXVp
cmVtZW50c193ZWJraXQudHh0CisgICAgIGVwaXBoYW55OiAtcnt0b3hpbmlkaXJ9L3JlcXVpcmVt
ZW50c19lcGlwaGFueS50eHQKIAotY29tbWFuZHMgPSBweXRlc3Qge3Bvc2FyZ3M6LS1jb3Z9Citj
b21tYW5kcyA9IHB5dGVzdCB7cG9zYXJnc30KIAogc2V0ZW52ID0gQ1VSUkVOVF9UT1hfRU5WID0g
e2Vudm5hbWV9CiAKLVt0ZXN0ZW52OnB5MjctZmxha2U4XQotIyBmbGFrZTggdmVyc2lvbnMgc2hv
dWxkIGJlIGtlcHQgaW4gc3luYyBhY3Jvc3MgdG9vbHMvdG94LmluaSwgdG9vbHMvd3B0L3RveC5p
bmksIGFuZCB0b29scy93cHRydW5uZXIvdG94LmluaQotZGVwcyA9Ci0gICAgIGZsYWtlOD09My41
LjAKLSAgICAgcHljb2Rlc3R5bGU9PTIuMy4xCi0gICAgIHB5Zmxha2VzPT0xLjYuMAotICAgICBw
ZXA4LW5hbWluZz09MC40LjEKLQotY29tbWFuZHMgPQotICAgICBmbGFrZTggLS1hcHBlbmQtY29u
ZmlnPS4uL2ZsYWtlOC5pbmkKK3Bhc3NlbnYgPQorICBUQVNLQ0xVU1RFUl9ST09UX1VSTApkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy93cHRydW5uZXIvdzNjLWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93M2MtaW1wb3J0LmxvZwppbmRleCA0MzQ1
Y2NlNzhkNDA0YTg1MjAyNzY3NzBkMmI0YWRhZDhmYTI3YjA0Li40MDZhNWZhZTI1NjQyNzIyODRh
YzU3MDBjYzA0NmZiMGI2N2MxZjZhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93M2MtaW1wb3J0LmxvZworKysg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1
bm5lci93M2MtaW1wb3J0LmxvZwpAQCAtMTgsOSArMTgsMTMgQEAgTGlzdCBvZiBmaWxlczoKIC9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5l
ci9NQU5JRkVTVC5pbgogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvd3B0cnVubmVyL1JFQURNRS5yc3QKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci9yZXF1aXJlbWVudHMudHh0CisvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIv
cmVxdWlyZW1lbnRzX2FuZHJvaWRfd2Vidmlldy50eHQKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci9yZXF1aXJlbWVudHNfY2hyb21l
LnR4dAogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
d3B0cnVubmVyL3JlcXVpcmVtZW50c19jaHJvbWVfYW5kcm9pZC50eHQKKy9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci9yZXF1aXJlbWVu
dHNfY2hyb21lX2lvcy50eHQKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci9yZXF1aXJlbWVudHNfZWRnZS50eHQKKy9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci9yZXF1aXJl
bWVudHNfZWRnZV9jaHJvbWl1bS50eHQKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci9yZXF1aXJlbWVudHNfZXBpcGhhbnkudHh0CiAv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5u
ZXIvcmVxdWlyZW1lbnRzX2ZpcmVmb3gudHh0CiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvcmVxdWlyZW1lbnRzX2llLnR4dAogL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVy
L3JlcXVpcmVtZW50c19vcGVyYS50eHQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9icm93c2Vy
cy9fX2luaXRfXy5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9icm93c2Vycy9fX2luaXRfXy5weQppbmRleCBk
ODY4MmUxNmE1NTFlNWVjYjQwOWE1ZjJkM2RmNDQ0ZDFjYWI0YjdjLi45NTdkMmE2ODlhY2RhNDgw
MWNkZGMzNTFlMWMyY2Q0YzA2YThkN2UzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvYnJvd3Nl
cnMvX19pbml0X18ucHkKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2Jyb3dzZXJzL19faW5pdF9fLnB5CkBA
IC0xNSwyMiArMTUsMjggQEAgYSBkaWN0aW9uYXJ5IHdpdGggdGhlIGZpZWxkcwogImV4ZWN1dG9y
X2t3YXJncyI6IFN0cmluZyBuYW1pbmcgYSBmdW5jdGlvbiB0aGF0IHRha2VzIGh0dHAgc2VydmVy
IHVybCBhbmQKICAgICAgICAgICAgICAgICAgICB0aW1lb3V0IG11bHRpcGxpZXIgYW5kIHJldHVy
bnMga3dhcmdzIHRvIHVzZSB3aGVuIGNyZWF0aW5nCiAgICAgICAgICAgICAgICAgICAgdGhlIGV4
ZWN1dG9yIGNsYXNzLgotImVudl9vcHRpb25zIjogU3RyaW5nIG5hbWluZyBhIGZ1bnRpb24gb2Yg
bm8gYXJndW1lbnRzIHRoYXQgcmV0dXJucyB0aGUKKyJlbnZfb3B0aW9ucyI6IFN0cmluZyBuYW1p
bmcgYSBmdW5jdGlvbiBvZiBubyBhcmd1bWVudHMgdGhhdCByZXR1cm5zIHRoZQogICAgICAgICAg
ICAgICAgYXJndW1lbnRzIHBhc3NlZCB0byB0aGUgVGVzdEVudmlyb25tZW50LgogCiBBbGwgY2xh
c3NlcyBhbmQgZnVuY3Rpb25zIG5hbWVkIGluIHRoZSBhYm92ZSBkaWN0IG11c3QgYmUgaW1wb3J0
ZWQgaW50byB0aGUKIG1vZHVsZSBnbG9iYWwgc2NvcGUuCiAiIiIKIAotcHJvZHVjdF9saXN0ID0g
WyJjaHJvbWUiLAorcHJvZHVjdF9saXN0ID0gWyJhbmRyb2lkX3dlYnZpZXciLAorICAgICAgICAg
ICAgICAgICJjaHJvbWUiLAogICAgICAgICAgICAgICAgICJjaHJvbWVfYW5kcm9pZCIsCisgICAg
ICAgICAgICAgICAgImNocm9tZV9pb3MiLAorICAgICAgICAgICAgICAgICJlZGdlY2hyb21pdW0i
LAogICAgICAgICAgICAgICAgICJlZGdlIiwKLSAgICAgICAgICAgICAgICAiZmVubmVjIiwKKyAg
ICAgICAgICAgICAgICAiZWRnZV93ZWJkcml2ZXIiLAogICAgICAgICAgICAgICAgICJmaXJlZm94
IiwKKyAgICAgICAgICAgICAgICAiZmlyZWZveF9hbmRyb2lkIiwKICAgICAgICAgICAgICAgICAi
aWUiLAogICAgICAgICAgICAgICAgICJzYWZhcmkiLAogICAgICAgICAgICAgICAgICJzYXVjZSIs
CiAgICAgICAgICAgICAgICAgInNlcnZvIiwKICAgICAgICAgICAgICAgICAic2Vydm9kcml2ZXIi
LAogICAgICAgICAgICAgICAgICJvcGVyYSIsCi0gICAgICAgICAgICAgICAgIndlYmtpdCJdCisg
ICAgICAgICAgICAgICAgIndlYmtpdCIsCisgICAgICAgICAgICAgICAgIndlYmtpdGd0a19taW5p
YnJvd3NlciIsCisgICAgICAgICAgICAgICAgImVwaXBoYW55Il0KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dw
dHJ1bm5lci9icm93c2Vycy9hbmRyb2lkX3dlYnZpZXcucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvYnJvd3Nl
cnMvYW5kcm9pZF93ZWJ2aWV3LnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmRjNjg3YjQ4ZWQ3YTlkZGU4MjczMzRh
ZThiNTkwOTZjYzU4ZDI0ZDcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvYnJvd3Nl
cnMvYW5kcm9pZF93ZWJ2aWV3LnB5CkBAIC0wLDAgKzEsMTM0IEBACitpbXBvcnQgc3VicHJvY2Vz
cworCitmcm9tIC5iYXNlIGltcG9ydCBCcm93c2VyLCBFeGVjdXRvckJyb3dzZXIsIHJlcXVpcmVf
YXJnCitmcm9tIC5iYXNlIGltcG9ydCBnZXRfdGltZW91dF9tdWx0aXBsaWVyICAgIyBub3FhOiBG
NDAxCitmcm9tIC5jaHJvbWUgaW1wb3J0IGV4ZWN1dG9yX2t3YXJncyBhcyBjaHJvbWVfZXhlY3V0
b3Jfa3dhcmdzCitmcm9tIC4ud2ViZHJpdmVyX3NlcnZlciBpbXBvcnQgQ2hyb21lRHJpdmVyU2Vy
dmVyCitmcm9tIC4uZXhlY3V0b3JzLmV4ZWN1dG9yd2ViZHJpdmVyIGltcG9ydCAoV2ViRHJpdmVy
VGVzdGhhcm5lc3NFeGVjdXRvciwgICMgbm9xYTogRjQwMQorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIFdlYkRyaXZlclJlZlRlc3RFeGVjdXRvcikgICMgbm9xYTog
RjQwMQorZnJvbSAuLmV4ZWN1dG9ycy5leGVjdXRvcmNocm9tZSBpbXBvcnQgQ2hyb21lRHJpdmVy
V2RzcGVjRXhlY3V0b3IgICMgbm9xYTogRjQwMQorCisKK19fd3B0cnVubmVyX18gPSB7InByb2R1
Y3QiOiAiYW5kcm9pZF93ZWJ2aWV3IiwKKyAgICAgICAgICAgICAgICAgImNoZWNrX2FyZ3MiOiAi
Y2hlY2tfYXJncyIsCisgICAgICAgICAgICAgICAgICJicm93c2VyIjogIlN5c3RlbVdlYlZpZXdT
aGVsbCIsCisgICAgICAgICAgICAgICAgICJleGVjdXRvciI6IHsidGVzdGhhcm5lc3MiOiAiV2Vi
RHJpdmVyVGVzdGhhcm5lc3NFeGVjdXRvciIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAicmVmdGVzdCI6ICJXZWJEcml2ZXJSZWZUZXN0RXhlY3V0b3IiLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIndkc3BlYyI6ICJDaHJvbWVEcml2ZXJXZHNwZWNFeGVjdXRvciJ9LAor
ICAgICAgICAgICAgICAgICAiYnJvd3Nlcl9rd2FyZ3MiOiAiYnJvd3Nlcl9rd2FyZ3MiLAorICAg
ICAgICAgICAgICAgICAiZXhlY3V0b3Jfa3dhcmdzIjogImV4ZWN1dG9yX2t3YXJncyIsCisgICAg
ICAgICAgICAgICAgICJlbnZfZXh0cmFzIjogImVudl9leHRyYXMiLAorICAgICAgICAgICAgICAg
ICAiZW52X29wdGlvbnMiOiAiZW52X29wdGlvbnMiLAorICAgICAgICAgICAgICAgICAidGltZW91
dF9tdWx0aXBsaWVyIjogImdldF90aW1lb3V0X211bHRpcGxpZXIifQorCitfd3B0c2VydmVfcG9y
dHMgPSBzZXQoKQorCisKK2RlZiBjaGVja19hcmdzKCoqa3dhcmdzKToKKyAgICByZXF1aXJlX2Fy
Zyhrd2FyZ3MsICJ3ZWJkcml2ZXJfYmluYXJ5IikKKworCitkZWYgYnJvd3Nlcl9rd2FyZ3ModGVz
dF90eXBlLCBydW5faW5mb19kYXRhLCBjb25maWcsICoqa3dhcmdzKToKKyAgICByZXR1cm4geyJi
aW5hcnkiOiBrd2FyZ3NbImJpbmFyeSJdLAorICAgICAgICAgICAgImRldmljZV9zZXJpYWwiOiBr
d2FyZ3NbImRldmljZV9zZXJpYWwiXSwKKyAgICAgICAgICAgICJ3ZWJkcml2ZXJfYmluYXJ5Ijog
a3dhcmdzWyJ3ZWJkcml2ZXJfYmluYXJ5Il0sCisgICAgICAgICAgICAid2ViZHJpdmVyX2FyZ3Mi
OiBrd2FyZ3MuZ2V0KCJ3ZWJkcml2ZXJfYXJncyIpfQorCisKK2RlZiBleGVjdXRvcl9rd2FyZ3Mo
dGVzdF90eXBlLCBzZXJ2ZXJfY29uZmlnLCBjYWNoZV9tYW5hZ2VyLCBydW5faW5mb19kYXRhLAor
ICAgICAgICAgICAgICAgICAgICAqKmt3YXJncyk6CisgICAgIyBVc2UgdXBkYXRlKCkgdG8gbW9k
aWZ5IHRoZSBnbG9iYWwgbGlzdCBpbiBwbGFjZS4KKyAgICBfd3B0c2VydmVfcG9ydHMudXBkYXRl
KHNldCgKKyAgICAgICAgc2VydmVyX2NvbmZpZ1sncG9ydHMnXVsnaHR0cCddICsgc2VydmVyX2Nv
bmZpZ1sncG9ydHMnXVsnaHR0cHMnXSArCisgICAgICAgIHNlcnZlcl9jb25maWdbJ3BvcnRzJ11b
J3dzJ10gKyBzZXJ2ZXJfY29uZmlnWydwb3J0cyddWyd3c3MnXQorICAgICkpCisKKyAgICBleGVj
dXRvcl9rd2FyZ3MgPSBjaHJvbWVfZXhlY3V0b3Jfa3dhcmdzKHRlc3RfdHlwZSwgc2VydmVyX2Nv
bmZpZywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhY2hl
X21hbmFnZXIsIHJ1bl9pbmZvX2RhdGEsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAqKmt3YXJncykKKyAgICBkZWwgZXhlY3V0b3Jfa3dhcmdzWyJjYXBhYmls
aXRpZXMiXVsiZ29vZzpjaHJvbWVPcHRpb25zIl1bInByZWZzIl0KKyAgICBkZWwgZXhlY3V0b3Jf
a3dhcmdzWyJjYXBhYmlsaXRpZXMiXVsiZ29vZzpjaHJvbWVPcHRpb25zIl1bInVzZUF1dG9tYXRp
b25FeHRlbnNpb24iXQorICAgIGNhcGFiaWxpdGllcyA9IGV4ZWN1dG9yX2t3YXJnc1siY2FwYWJp
bGl0aWVzIl0KKyAgICAjIE5vdGUgdGhhdCBmb3IgV2ViVmlldywgd2UgbGF1bmNoIGEgdGVzdCBz
aGVsbCBhbmQgaGF2ZSB0aGUgdGVzdCBzaGVsbCB1c2UgV2ViVmlldy4KKyAgICAjIGh0dHBzOi8v
Y2hyb21pdW0uZ29vZ2xlc291cmNlLmNvbS9jaHJvbWl1bS9zcmMvKy9IRUFEL2FuZHJvaWRfd2Vi
dmlldy9kb2NzL3dlYnZpZXctc2hlbGwubWQKKyAgICBjYXBhYmlsaXRpZXNbImdvb2c6Y2hyb21l
T3B0aW9ucyJdWyJhbmRyb2lkUGFja2FnZSJdID0gXAorICAgICAgICAib3JnLmNocm9taXVtLndl
YnZpZXdfc2hlbGwiCisgICAgY2FwYWJpbGl0aWVzWyJnb29nOmNocm9tZU9wdGlvbnMiXVsiYW5k
cm9pZEFjdGl2aXR5Il0gPSAiLldlYlBsYXRmb3JtVGVzdHNBY3Rpdml0eSIKKyAgICBpZiBrd2Fy
Z3MuZ2V0KCdkZXZpY2Vfc2VyaWFsJyk6CisgICAgICAgIGNhcGFiaWxpdGllc1siZ29vZzpjaHJv
bWVPcHRpb25zIl1bImFuZHJvaWREZXZpY2VTZXJpYWwiXSA9IGt3YXJnc1snZGV2aWNlX3Nlcmlh
bCddCisKKyAgICAjIFdvcmthcm91bmQ6IGRyaXZlci5xdWl0KCkgY2Fubm90IHF1aXQgU3lzdGVt
V2ViVmlld1NoZWxsLgorICAgIGV4ZWN1dG9yX2t3YXJnc1sicGF1c2VfYWZ0ZXJfdGVzdCJdID0g
RmFsc2UKKyAgICAjIFdvcmthcm91bmQ6IGRyaXZlci5jbG9zZSgpIGlzIG5vdCBzdXBwb3J0ZWQu
CisgICAgZXhlY3V0b3Jfa3dhcmdzWyJyZXN0YXJ0X2FmdGVyX3Rlc3QiXSA9IFRydWUKKyAgICBl
eGVjdXRvcl9rd2FyZ3NbImNsb3NlX2FmdGVyX2RvbmUiXSA9IEZhbHNlCisgICAgcmV0dXJuIGV4
ZWN1dG9yX2t3YXJncworCisKK2RlZiBlbnZfZXh0cmFzKCoqa3dhcmdzKToKKyAgICByZXR1cm4g
W10KKworCitkZWYgZW52X29wdGlvbnMoKToKKyAgICAjIGFsbG93IHRoZSB1c2Ugb2YgaG9zdC1y
ZXNvbHZlci1ydWxlcyBpbiBsaWV1IG9mIG1vZGlmeWluZyAvZXRjL2hvc3RzIGZpbGUKKyAgICBy
ZXR1cm4geyJzZXJ2ZXJfaG9zdCI6ICIxMjcuMC4wLjEifQorCisKKyNUT0RPOiByZWZhY3RvciBj
b21tb24gZWxlbWVudHMgb2YgU3lzdGVtV2ViVmlld1NoZWxsIGFuZCBDaHJvbWVBbmRyb2lkQnJv
d3NlcgorY2xhc3MgU3lzdGVtV2ViVmlld1NoZWxsKEJyb3dzZXIpOgorICAgICIiIkNocm9tZSBp
cyBiYWNrZWQgYnkgY2hyb21lZHJpdmVyLCB3aGljaCBpcyBzdXBwbGllZCB0aHJvdWdoCisgICAg
YGB3cHRydW5uZXIud2ViZHJpdmVyLkNocm9tZURyaXZlclNlcnZlcmBgLgorICAgICIiIgorCisg
ICAgZGVmIF9faW5pdF9fKHNlbGYsIGxvZ2dlciwgYmluYXJ5LCB3ZWJkcml2ZXJfYmluYXJ5PSJj
aHJvbWVkcml2ZXIiLAorICAgICAgICAgICAgICAgICBkZXZpY2Vfc2VyaWFsPU5vbmUsCisgICAg
ICAgICAgICAgICAgIHdlYmRyaXZlcl9hcmdzPU5vbmUpOgorICAgICAgICAiIiJDcmVhdGVzIGEg
bmV3IHJlcHJlc2VudGF0aW9uIG9mIENocm9tZS4gIFRoZSBgYmluYXJ5YCBhcmd1bWVudCBnaXZl
cworICAgICAgICB0aGUgYnJvd3NlciBiaW5hcnkgdG8gdXNlIGZvciB0ZXN0aW5nLiIiIgorICAg
ICAgICBCcm93c2VyLl9faW5pdF9fKHNlbGYsIGxvZ2dlcikKKyAgICAgICAgc2VsZi5iaW5hcnkg
PSBiaW5hcnkKKyAgICAgICAgc2VsZi5kZXZpY2Vfc2VyaWFsID0gZGV2aWNlX3NlcmlhbAorICAg
ICAgICBzZWxmLnNlcnZlciA9IENocm9tZURyaXZlclNlcnZlcihzZWxmLmxvZ2dlciwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmluYXJ5PXdlYmRyaXZlcl9iaW5h
cnksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyZ3M9d2ViZHJp
dmVyX2FyZ3MpCisgICAgICAgIHNlbGYuc2V0dXBfYWRiX3JldmVyc2UoKQorCisgICAgZGVmIF9h
ZGJfcnVuKHNlbGYsIGFyZ3MpOgorICAgICAgICBjbWQgPSBbJ2FkYiddCisgICAgICAgIGlmIHNl
bGYuZGV2aWNlX3NlcmlhbDoKKyAgICAgICAgICAgIGNtZC5leHRlbmQoWyctcycsIHNlbGYuZGV2
aWNlX3NlcmlhbF0pCisgICAgICAgIGNtZC5leHRlbmQoYXJncykKKyAgICAgICAgc2VsZi5sb2dn
ZXIuaW5mbygnICcuam9pbihjbWQpKQorICAgICAgICBzdWJwcm9jZXNzLmNoZWNrX2NhbGwoY21k
KQorCisgICAgZGVmIHNldHVwX2FkYl9yZXZlcnNlKHNlbGYpOgorICAgICAgICBzZWxmLl9hZGJf
cnVuKFsnd2FpdC1mb3ItZGV2aWNlJ10pCisgICAgICAgIHNlbGYuX2FkYl9ydW4oWydmb3J3YXJk
JywgJy0tcmVtb3ZlLWFsbCddKQorICAgICAgICBzZWxmLl9hZGJfcnVuKFsncmV2ZXJzZScsICct
LXJlbW92ZS1hbGwnXSkKKyAgICAgICAgIyAiYWRiIHJldmVyc2UiIGJhc2ljYWxseSBmb3J3YXJk
cyBuZXR3b3JrIGNvbm5lY3Rpb24gZnJvbSBkZXZpY2UgdG8KKyAgICAgICAgIyBob3N0LgorICAg
ICAgICBmb3IgcG9ydCBpbiBfd3B0c2VydmVfcG9ydHM6CisgICAgICAgICAgICBzZWxmLl9hZGJf
cnVuKFsncmV2ZXJzZScsICd0Y3A6JWQnICUgcG9ydCwgJ3RjcDolZCcgJSBwb3J0XSkKKworICAg
IGRlZiBzdGFydChzZWxmLCAqKmt3YXJncyk6CisgICAgICAgIHNlbGYuc2VydmVyLnN0YXJ0KGJs
b2NrPUZhbHNlKQorCisgICAgZGVmIHN0b3Aoc2VsZiwgZm9yY2U9RmFsc2UpOgorICAgICAgICBz
ZWxmLnNlcnZlci5zdG9wKGZvcmNlPWZvcmNlKQorCisgICAgZGVmIHBpZChzZWxmKToKKyAgICAg
ICAgcmV0dXJuIHNlbGYuc2VydmVyLnBpZAorCisgICAgZGVmIGlzX2FsaXZlKHNlbGYpOgorICAg
ICAgICAjIFRPRE8oYXRvKTogVGhpcyBvbmx5IGluZGljYXRlcyB0aGUgZHJpdmVyIGlzIGFsaXZl
LAorICAgICAgICAjIGFuZCBkb2Vzbid0IHNheSBhbnl0aGluZyBhYm91dCB3aGV0aGVyIGEgYnJv
d3NlciBzZXNzaW9uCisgICAgICAgICMgaXMgYWN0aXZlLgorICAgICAgICByZXR1cm4gc2VsZi5z
ZXJ2ZXIuaXNfYWxpdmUKKworICAgIGRlZiBjbGVhbnVwKHNlbGYpOgorICAgICAgICBzZWxmLnN0
b3AoKQorICAgICAgICBzZWxmLl9hZGJfcnVuKFsnZm9yd2FyZCcsICctLXJlbW92ZS1hbGwnXSkK
KyAgICAgICAgc2VsZi5fYWRiX3J1bihbJ3JldmVyc2UnLCAnLS1yZW1vdmUtYWxsJ10pCisKKyAg
ICBkZWYgZXhlY3V0b3JfYnJvd3NlcihzZWxmKToKKyAgICAgICAgcmV0dXJuIEV4ZWN1dG9yQnJv
d3NlciwgeyJ3ZWJkcml2ZXJfdXJsIjogc2VsZi5zZXJ2ZXIudXJsfQpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIv
d3B0cnVubmVyL2Jyb3dzZXJzL2Jhc2UucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvYnJvd3NlcnMvYmFzZS5w
eQppbmRleCBkYzAzZWY3MTFiNjAxNGU3ZjNkOGE0NWVmN2M5MDk4ODkwYmIwNTA1Li42NTUzNDQ1
ODE5NzNjMTViNjU3NzI5ZmViNzM2ZGQyMDczZDc5YTMwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5u
ZXIvYnJvd3NlcnMvYmFzZS5weQorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvYnJvd3NlcnMvYmFzZS5weQpA
QCAtMiwxMiArMiwzMiBAQCBpbXBvcnQgb3MKIGltcG9ydCBwbGF0Zm9ybQogaW1wb3J0IHNvY2tl
dAogZnJvbSBhYmMgaW1wb3J0IEFCQ01ldGEsIGFic3RyYWN0bWV0aG9kCitmcm9tIGNvcHkgaW1w
b3J0IGRlZXBjb3B5CiAKIGZyb20gLi53cHRjb21tYW5kbGluZSBpbXBvcnQgcmVxdWlyZV9hcmcg
ICMgbm9xYTogRjQwMQogCiBoZXJlID0gb3MucGF0aC5zcGxpdChfX2ZpbGVfXylbMF0KIAogCitk
ZWYgaW5oZXJpdChzdXBlcl9tb2R1bGUsIGNoaWxkX2dsb2JhbHMsIHByb2R1Y3RfbmFtZSk6Cisg
ICAgc3VwZXJfd3B0cnVubmVyID0gc3VwZXJfbW9kdWxlLl9fd3B0cnVubmVyX18KKyAgICBjaGls
ZF9nbG9iYWxzWyJfX3dwdHJ1bm5lcl9fIl0gPSBjaGlsZF93cHRydW5uZXIgPSBkZWVwY29weShz
dXBlcl93cHRydW5uZXIpCisKKyAgICBjaGlsZF93cHRydW5uZXJbInByb2R1Y3QiXSA9IHByb2R1
Y3RfbmFtZQorCisgICAgZm9yIGsgaW4gKCJjaGVja19hcmdzIiwgImJyb3dzZXIiLCAiYnJvd3Nl
cl9rd2FyZ3MiLCAiZXhlY3V0b3Jfa3dhcmdzIiwKKyAgICAgICAgICAgICAgImVudl9leHRyYXMi
LCAiZW52X29wdGlvbnMiLCAidGltZW91dF9tdWx0aXBsaWVyIik6CisgICAgICAgIGF0dHIgPSBz
dXBlcl93cHRydW5uZXJba10KKyAgICAgICAgY2hpbGRfZ2xvYmFsc1thdHRyXSA9IGdldGF0dHIo
c3VwZXJfbW9kdWxlLCBhdHRyKQorCisgICAgZm9yIHYgaW4gc3VwZXJfbW9kdWxlLl9fd3B0cnVu
bmVyX19bImV4ZWN1dG9yIl0udmFsdWVzKCk6CisgICAgICAgIGNoaWxkX2dsb2JhbHNbdl0gPSBn
ZXRhdHRyKHN1cGVyX21vZHVsZSwgdikKKworICAgIGlmICJydW5faW5mb19leHRyYXMiIGluIHN1
cGVyX3dwdHJ1bm5lcjoKKyAgICAgICAgYXR0ciA9IHN1cGVyX3dwdHJ1bm5lclsicnVuX2luZm9f
ZXh0cmFzIl0KKyAgICAgICAgY2hpbGRfZ2xvYmFsc1thdHRyXSA9IGdldGF0dHIoc3VwZXJfbW9k
dWxlLCBhdHRyKQorCisKIGRlZiBjbWRfYXJnKG5hbWUsIHZhbHVlPU5vbmUpOgogICAgIHByZWZp
eCA9ICItIiBpZiBwbGF0Zm9ybS5zeXN0ZW0oKSA9PSAiV2luZG93cyIgZWxzZSAiLS0iCiAgICAg
cnYgPSBwcmVmaXggKyBuYW1lCkBAIC0xNiwyNyArMzYsNDggQEAgZGVmIGNtZF9hcmcobmFtZSwg
dmFsdWU9Tm9uZSk6CiAgICAgcmV0dXJuIHJ2CiAKIAotZGVmIGdldF9mcmVlX3BvcnQoc3RhcnRf
cG9ydCwgZXhjbHVkZT1Ob25lKToKLSAgICAiIiJHZXQgdGhlIGZpcnN0IHBvcnQgbnVtYmVyIGFm
dGVyIHN0YXJ0X3BvcnQgKGluY2x1c2l2ZSkgdGhhdCBpcwotICAgIG5vdCBjdXJyZW50bHkgYm91
bmQuCitkZWYgbWF5YmVfYWRkX2FyZ3MocmVxdWlyZWRfYXJncywgY3VycmVudF9hcmdzKToKKyAg
ICBmb3IgcmVxdWlyZWRfYXJnIGluIHJlcXVpcmVkX2FyZ3M6CisgICAgICAgICMgSWYgdGhlIGFy
ZyBpcyBpbiB0aGUgZm9ybSBvZiAidmFyaWFibGU9dmFsdWUiLCBvbmx5IGFkZCBpdCBpZgorICAg
ICAgICAjIG5vIGFyZyB3aXRoIGFub3RoZXIgdmFsdWUgZm9yICJ2YXJpYWJsZSIgaXMgYWxyZWFk
eSB0aGVyZS4KKyAgICAgICAgaWYgIj0iIGluIHJlcXVpcmVkX2FyZzoKKyAgICAgICAgICAgIHJl
cXVpcmVkX2FyZ19wcmVmaXggPSAiJXM9IiAlIHJlcXVpcmVkX2FyZy5zcGxpdCgiPSIpWzBdCisg
ICAgICAgICAgICBpZiBub3QgYW55KGl0ZW0uc3RhcnRzd2l0aChyZXF1aXJlZF9hcmdfcHJlZml4
KSBmb3IgaXRlbSBpbiBjdXJyZW50X2FyZ3MpOgorICAgICAgICAgICAgICAgIGN1cnJlbnRfYXJn
cy5hcHBlbmQocmVxdWlyZWRfYXJnKQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgaWYgcmVx
dWlyZWRfYXJnIG5vdCBpbiBjdXJyZW50X2FyZ3M6CisgICAgICAgICAgICAgICAgY3VycmVudF9h
cmdzLmFwcGVuZChyZXF1aXJlZF9hcmcpCisgICAgcmV0dXJuIGN1cnJlbnRfYXJncworCisKK2Rl
ZiBjZXJ0aWZpY2F0ZV9kb21haW5fbGlzdChsaXN0X29mX2RvbWFpbnMsIGNlcnRpZmljYXRlX2Zp
bGUpOgorICAgICIiIkJ1aWxkIGEgbGlzdCBvZiBkb21haW5zIHdoZXJlIGNlcnRpZmljYXRlX2Zp
bGUgc2hvdWxkIGJlIHVzZWQiIiIKKyAgICBjZXJ0X2xpc3QgPSBbXQorICAgIGZvciBkb21haW4g
aW4gbGlzdF9vZl9kb21haW5zOgorICAgICAgICBjZXJ0X2xpc3QuYXBwZW5kKHsiaG9zdCI6IGRv
bWFpbiwgImNlcnRpZmljYXRlRmlsZSI6IGNlcnRpZmljYXRlX2ZpbGV9KQorICAgIHJldHVybiBj
ZXJ0X2xpc3QKKwogCi0gICAgOnBhcmFtIHN0YXJ0X3BvcnQ6IEludGVnZXIgcG9ydCBudW1iZXIg
YXQgd2hpY2ggdG8gc3RhcnQgdGVzdGluZy4KLSAgICA6cGFyYW0gZXhjbHVkZTogU2V0IG9mIHBv
cnQgbnVtYmVycyB0byBza2lwIiIiCi0gICAgcG9ydCA9IHN0YXJ0X3BvcnQKK2RlZiBnZXRfZnJl
ZV9wb3J0KCk6CisgICAgIiIiR2V0IGEgcmFuZG9tIHVuYm91bmQgcG9ydCIiIgogICAgIHdoaWxl
IFRydWU6Ci0gICAgICAgIGlmIGV4Y2x1ZGUgYW5kIHBvcnQgaW4gZXhjbHVkZToKLSAgICAgICAg
ICAgIHBvcnQgKz0gMQotICAgICAgICAgICAgY29udGludWUKICAgICAgICAgcyA9IHNvY2tldC5z
b2NrZXQoKQogICAgICAgICB0cnk6Ci0gICAgICAgICAgICBzLmJpbmQoKCIxMjcuMC4wLjEiLCBw
b3J0KSkKKyAgICAgICAgICAgIHMuYmluZCgoIjEyNy4wLjAuMSIsIDApKQogICAgICAgICBleGNl
cHQgc29ja2V0LmVycm9yOgotICAgICAgICAgICAgcG9ydCArPSAxCisgICAgICAgICAgICBjb250
aW51ZQogICAgICAgICBlbHNlOgotICAgICAgICAgICAgcmV0dXJuIHBvcnQKKyAgICAgICAgICAg
IHJldHVybiBzLmdldHNvY2tuYW1lKClbMV0KICAgICAgICAgZmluYWxseToKICAgICAgICAgICAg
IHMuY2xvc2UoKQogCisKK2RlZiBnZXRfdGltZW91dF9tdWx0aXBsaWVyKHRlc3RfdHlwZSwgcnVu
X2luZm9fZGF0YSwgKiprd2FyZ3MpOgorICAgIGlmIGt3YXJnc1sidGltZW91dF9tdWx0aXBsaWVy
Il0gaXMgbm90IE5vbmU6CisgICAgICAgIHJldHVybiBrd2FyZ3NbInRpbWVvdXRfbXVsdGlwbGll
ciJdCisgICAgcmV0dXJuIDEKKworCiBkZWYgYnJvd3Nlcl9jb21tYW5kKGJpbmFyeSwgYXJncywg
ZGVidWdfaW5mbyk6CiAgICAgaWYgZGVidWdfaW5mbzoKICAgICAgICAgaWYgZGVidWdfaW5mby5y
ZXF1aXJlc0VzY2FwZWRBcmdzOgpAQCAtNTUsMjEgKzk2LDIxIEBAIGNsYXNzIEJyb3dzZXJFcnJv
cihFeGNlcHRpb24pOgogCiAKIGNsYXNzIEJyb3dzZXIob2JqZWN0KToKKyAgICAiIiJBYnN0cmFj
dCBjbGFzcyBzZXJ2aW5nIGFzIHRoZSBiYXNpcyBmb3IgQnJvd3NlciBpbXBsZW1lbnRhdGlvbnMu
CisKKyAgICBUaGUgQnJvd3NlciBpcyB1c2VkIGluIHRoZSBUZXN0UnVubmVyTWFuYWdlciB0byBz
dGFydCBhbmQgc3RvcCB0aGUgYnJvd3NlcgorICAgIHByb2Nlc3MsIGFuZCB0byBjaGVjayB0aGUg
c3RhdGUgb2YgdGhhdCBwcm9jZXNzLiBUaGlzIGNsYXNzIGFsc28gYWN0cyBhcyBhCisgICAgY29u
dGV4dCBtYW5hZ2VyLCBlbmFibGluZyBpdCB0byBkbyBicm93c2VyLXNwZWNpZmljIHNldHVwIGF0
IHRoZSBzdGFydCBvZgorICAgIHRoZSB0ZXN0cnVuIGFuZCBjbGVhbnVwIGFmdGVyIHRoZSBydW4g
aXMgY29tcGxldGUuCisKKyAgICA6cGFyYW0gbG9nZ2VyOiBTdHJ1Y3R1cmVkIGxvZ2dlciB0byB1
c2UgZm9yIG91dHB1dC4KKyAgICAiIiIKICAgICBfX21ldGFjbGFzc19fID0gQUJDTWV0YQogCiAg
ICAgcHJvY2Vzc19jbHMgPSBOb25lCiAgICAgaW5pdF90aW1lb3V0ID0gMzAKIAogICAgIGRlZiBf
X2luaXRfXyhzZWxmLCBsb2dnZXIpOgotICAgICAgICAiIiJBYnN0cmFjdCBjbGFzcyBzZXJ2aW5n
IGFzIHRoZSBiYXNpcyBmb3IgQnJvd3NlciBpbXBsZW1lbnRhdGlvbnMuCi0KLSAgICAgICAgVGhl
IEJyb3dzZXIgaXMgdXNlZCBpbiB0aGUgVGVzdFJ1bm5lck1hbmFnZXIgdG8gc3RhcnQgYW5kIHN0
b3AgdGhlIGJyb3dzZXIKLSAgICAgICAgcHJvY2VzcywgYW5kIHRvIGNoZWNrIHRoZSBzdGF0ZSBv
ZiB0aGF0IHByb2Nlc3MuIFRoaXMgY2xhc3MgYWxzbyBhY3RzIGFzIGEKLSAgICAgICAgY29udGV4
dCBtYW5hZ2VyLCBlbmFibGluZyBpdCB0byBkbyBicm93c2VyLXNwZWNpZmljIHNldHVwIGF0IHRo
ZSBzdGFydCBvZgotICAgICAgICB0aGUgdGVzdHJ1biBhbmQgY2xlYW51cCBhZnRlciB0aGUgcnVu
IGlzIGNvbXBsZXRlLgotCi0gICAgICAgIDpwYXJhbSBsb2dnZXI6IFN0cnVjdHVyZWQgbG9nZ2Vy
IHRvIHVzZSBmb3Igb3V0cHV0LgotICAgICAgICAiIiIKICAgICAgICAgc2VsZi5sb2dnZXIgPSBs
b2dnZXIKIAogICAgIGRlZiBfX2VudGVyX18oc2VsZik6CkBAIC0xMTksMTUgKzE2MCwxMSBAQCBj
bGFzcyBCcm93c2VyKG9iamVjdCk6CiAgICAgICAgIHdpdGggd2hpY2ggaXQgc2hvdWxkIGJlIGlu
c3RhbnRpYXRlZCIiIgogICAgICAgICByZXR1cm4gRXhlY3V0b3JCcm93c2VyLCB7fQogCi0gICAg
ZGVmIGNoZWNrX2Zvcl9jcmFzaGVzKHNlbGYpOgotICAgICAgICAiIiJDaGVjayBmb3IgY3Jhc2hl
cyB0aGF0IGRpZG4ndCBjYXVzZSB0aGUgYnJvd3NlciBwcm9jZXNzIHRvIHRlcm1pbmF0ZSIiIgor
ICAgIGRlZiBjaGVja19jcmFzaChzZWxmLCBwcm9jZXNzLCB0ZXN0KToKKyAgICAgICAgIiIiQ2hl
Y2sgaWYgYSBjcmFzaCBvY2N1cmVkIGFuZCBvdXRwdXQgYW55IHVzZWZ1bCBpbmZvcm1hdGlvbiB0
byB0aGUKKyAgICAgICAgbG9nLiBSZXR1cm5zIGEgYm9vbGVhbiBpbmRpY2F0aW5nIHdoZXRoZXIg
YSBjcmFzaCBvY2N1cmVkLiIiIgogICAgICAgICByZXR1cm4gRmFsc2UKIAotICAgIGRlZiBsb2df
Y3Jhc2goc2VsZiwgcHJvY2VzcywgdGVzdCk6Ci0gICAgICAgICIiIlJldHVybiBhIGxpc3Qgb2Yg
ZGljdGlvbmFyaWVzIGNvbnRhaW5pbmcgaW5mb3JtYXRpb24gYWJvdXQgY3Jhc2hlcyB0aGF0IGhh
cHBlbmQKLSAgICAgICAgaW4gdGhlIGJyb3dzZXIsIG9yIGFuIGVtcHR5IGxpc3QgaWYgbm8gY3Jh
c2hlcyBvY2N1cnJlZCIiIgotICAgICAgICBzZWxmLmxvZ2dlci5jcmFzaChwcm9jZXNzLCB0ZXN0
KQotCiAKIGNsYXNzIE51bGxCcm93c2VyKEJyb3dzZXIpOgogICAgIGRlZiBfX2luaXRfXyhzZWxm
LCBsb2dnZXIsICoqa3dhcmdzKToKQEAgLTE1MywxNCArMTkwLDE0IEBAIGNsYXNzIE51bGxCcm93
c2VyKEJyb3dzZXIpOgogCiAKIGNsYXNzIEV4ZWN1dG9yQnJvd3NlcihvYmplY3QpOgorICAgICIi
IlZpZXcgb2YgdGhlIEJyb3dzZXIgdXNlZCBieSB0aGUgRXhlY3V0b3Igb2JqZWN0LgorICAgIFRo
aXMgaXMgbmVlZGVkIGJlY2F1c2UgdGhlIEV4ZWN1dG9yIHJ1bnMgaW4gYSBjaGlsZCBwcm9jZXNz
IGFuZAorICAgIHdlIGNhbid0IHNoaXAgQnJvd3NlciBpbnN0YW5jZXMgYmV0d2VlbiBwcm9jZXNz
ZXMgb24gV2luZG93cy4KKworICAgIFR5cGljYWxseSB0aGlzIHdpbGwgaGF2ZSBhIGZldyBwcm9k
dWN0LXNwZWNpZmljIHByb3BlcnRpZXMgc2V0LAorICAgIGJ1dCBpbiBzb21lIGNhc2VzIGl0IG1h
eSBoYXZlIG1vcmUgZWxhYm9yYXRlIG1ldGhvZHMgZm9yIHNldHRpbmcKKyAgICB1cCB0aGUgYnJv
d3NlciBmcm9tIHRoZSBydW5uZXIgcHJvY2Vzcy4KKyAgICAiIiIKICAgICBkZWYgX19pbml0X18o
c2VsZiwgKiprd2FyZ3MpOgotICAgICAgICAiIiJWaWV3IG9mIHRoZSBCcm93c2VyIHVzZWQgYnkg
dGhlIEV4ZWN1dG9yIG9iamVjdC4KLSAgICAgICAgVGhpcyBpcyBuZWVkZWQgYmVjYXVzZSB0aGUg
RXhlY3V0b3IgcnVucyBpbiBhIGNoaWxkIHByb2Nlc3MgYW5kCi0gICAgICAgIHdlIGNhbid0IHNo
aXAgQnJvd3NlciBpbnN0YW5jZXMgYmV0d2VlbiBwcm9jZXNzZXMgb24gV2luZG93cy4KLQotICAg
ICAgICBUeXBpY2FsbHkgdGhpcyB3aWxsIGhhdmUgYSBmZXcgcHJvZHVjdC1zcGVjaWZpYyBwcm9w
ZXJ0aWVzIHNldCwKLSAgICAgICAgYnV0IGluIHNvbWUgY2FzZXMgaXQgbWF5IGhhdmUgbW9yZSBl
bGFib3JhdGUgbWV0aG9kcyBmb3Igc2V0dGluZwotICAgICAgICB1cCB0aGUgYnJvd3NlciBmcm9t
IHRoZSBydW5uZXIgcHJvY2Vzcy4KLSAgICAgICAgIiIiCiAgICAgICAgIGZvciBrLCB2IGluIGt3
YXJncy5pdGVyaXRlbXMoKToKICAgICAgICAgICAgIHNldGF0dHIoc2VsZiwgaywgdikKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
d3B0cnVubmVyL3dwdHJ1bm5lci9icm93c2Vycy9jaHJvbWUucHkgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvYnJv
d3NlcnMvY2hyb21lLnB5CmluZGV4IDhiMGJhNDU4NWE5NDM1OThiNGM5MDhmMmUyZGE1NmIwYjYx
NTA1YTYuLjgwNjE0YzVlNTUxYzM1ZGQxY2YyYmJkMTI0OTVkNDBlMDIzOTEzNzEgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0
cnVubmVyL3dwdHJ1bm5lci9icm93c2Vycy9jaHJvbWUucHkKKysrIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2Jy
b3dzZXJzL2Nocm9tZS5weQpAQCAtMSwyMSArMSwyMyBAQAogZnJvbSAuYmFzZSBpbXBvcnQgQnJv
d3NlciwgRXhlY3V0b3JCcm93c2VyLCByZXF1aXJlX2FyZworZnJvbSAuYmFzZSBpbXBvcnQgZ2V0
X3RpbWVvdXRfbXVsdGlwbGllciAgICMgbm9xYTogRjQwMQogZnJvbSAuLndlYmRyaXZlcl9zZXJ2
ZXIgaW1wb3J0IENocm9tZURyaXZlclNlcnZlcgogZnJvbSAuLmV4ZWN1dG9ycyBpbXBvcnQgZXhl
Y3V0b3Jfa3dhcmdzIGFzIGJhc2VfZXhlY3V0b3Jfa3dhcmdzCi1mcm9tIC4uZXhlY3V0b3JzLmV4
ZWN1dG9yc2VsZW5pdW0gaW1wb3J0IChTZWxlbml1bVRlc3RoYXJuZXNzRXhlY3V0b3IsICAjIG5v
cWE6IEY0MDEKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNlbGVu
aXVtUmVmVGVzdEV4ZWN1dG9yKSAgIyBub3FhOiBGNDAxCitmcm9tIC4uZXhlY3V0b3JzLmV4ZWN1
dG9yd2ViZHJpdmVyIGltcG9ydCAoV2ViRHJpdmVyVGVzdGhhcm5lc3NFeGVjdXRvciwgICMgbm9x
YTogRjQwMQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFdlYkRy
aXZlclJlZlRlc3RFeGVjdXRvcikgICMgbm9xYTogRjQwMQogZnJvbSAuLmV4ZWN1dG9ycy5leGVj
dXRvcmNocm9tZSBpbXBvcnQgQ2hyb21lRHJpdmVyV2RzcGVjRXhlY3V0b3IgICMgbm9xYTogRjQw
MQogCiAKIF9fd3B0cnVubmVyX18gPSB7InByb2R1Y3QiOiAiY2hyb21lIiwKICAgICAgICAgICAg
ICAgICAgImNoZWNrX2FyZ3MiOiAiY2hlY2tfYXJncyIsCiAgICAgICAgICAgICAgICAgICJicm93
c2VyIjogIkNocm9tZUJyb3dzZXIiLAotICAgICAgICAgICAgICAgICAiZXhlY3V0b3IiOiB7InRl
c3RoYXJuZXNzIjogIlNlbGVuaXVtVGVzdGhhcm5lc3NFeGVjdXRvciIsCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAicmVmdGVzdCI6ICJTZWxlbml1bVJlZlRlc3RFeGVjdXRvciIsCisg
ICAgICAgICAgICAgICAgICJleGVjdXRvciI6IHsidGVzdGhhcm5lc3MiOiAiV2ViRHJpdmVyVGVz
dGhhcm5lc3NFeGVjdXRvciIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAicmVmdGVz
dCI6ICJXZWJEcml2ZXJSZWZUZXN0RXhlY3V0b3IiLAogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIndkc3BlYyI6ICJDaHJvbWVEcml2ZXJXZHNwZWNFeGVjdXRvciJ9LAogICAgICAgICAg
ICAgICAgICAiYnJvd3Nlcl9rd2FyZ3MiOiAiYnJvd3Nlcl9rd2FyZ3MiLAogICAgICAgICAgICAg
ICAgICAiZXhlY3V0b3Jfa3dhcmdzIjogImV4ZWN1dG9yX2t3YXJncyIsCiAgICAgICAgICAgICAg
ICAgICJlbnZfZXh0cmFzIjogImVudl9leHRyYXMiLAotICAgICAgICAgICAgICAgICAiZW52X29w
dGlvbnMiOiAiZW52X29wdGlvbnMifQorICAgICAgICAgICAgICAgICAiZW52X29wdGlvbnMiOiAi
ZW52X29wdGlvbnMiLAorICAgICAgICAgICAgICAgICAidGltZW91dF9tdWx0aXBsaWVyIjogImdl
dF90aW1lb3V0X211bHRpcGxpZXIiLH0KIAogCiBkZWYgY2hlY2tfYXJncygqKmt3YXJncyk6CkBA
IC0zMCwyOSArMzIsNTggQEAgZGVmIGJyb3dzZXJfa3dhcmdzKHRlc3RfdHlwZSwgcnVuX2luZm9f
ZGF0YSwgY29uZmlnLCAqKmt3YXJncyk6CiAKIGRlZiBleGVjdXRvcl9rd2FyZ3ModGVzdF90eXBl
LCBzZXJ2ZXJfY29uZmlnLCBjYWNoZV9tYW5hZ2VyLCBydW5faW5mb19kYXRhLAogICAgICAgICAg
ICAgICAgICAgICAqKmt3YXJncyk6Ci0gICAgZnJvbSBzZWxlbml1bS53ZWJkcml2ZXIgaW1wb3J0
IERlc2lyZWRDYXBhYmlsaXRpZXMKLQogICAgIGV4ZWN1dG9yX2t3YXJncyA9IGJhc2VfZXhlY3V0
b3Jfa3dhcmdzKHRlc3RfdHlwZSwgc2VydmVyX2NvbmZpZywKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBjYWNoZV9tYW5hZ2VyLCBydW5faW5mb19kYXRhLAogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoqa3dhcmdzKQogICAgIGV4
ZWN1dG9yX2t3YXJnc1siY2xvc2VfYWZ0ZXJfZG9uZSJdID0gVHJ1ZQotICAgIGNhcGFiaWxpdGll
cyA9IGRpY3QoRGVzaXJlZENhcGFiaWxpdGllcy5DSFJPTUUuaXRlbXMoKSkKLSAgICBjYXBhYmls
aXRpZXMuc2V0ZGVmYXVsdCgiZ29vZzpjaHJvbWVPcHRpb25zIiwge30pWyJwcmVmcyJdID0gewot
ICAgICAgICAicHJvZmlsZSI6IHsKLSAgICAgICAgICAgICJkZWZhdWx0X2NvbnRlbnRfc2V0dGlu
Z192YWx1ZXMiOiB7Ci0gICAgICAgICAgICAgICAgInBvcHVwcyI6IDEKLSAgICAgICAgICAgIH0K
KyAgICBleGVjdXRvcl9rd2FyZ3NbInN1cHBvcnRzX2VhZ2VyX3BhZ2Vsb2FkIl0gPSBGYWxzZQor
CisgICAgY2FwYWJpbGl0aWVzID0geworICAgICAgICAiZ29vZzpjaHJvbWVPcHRpb25zIjogewor
ICAgICAgICAgICAgInByZWZzIjogeworICAgICAgICAgICAgICAgICJwcm9maWxlIjogeworICAg
ICAgICAgICAgICAgICAgICAiZGVmYXVsdF9jb250ZW50X3NldHRpbmdfdmFsdWVzIjogeworICAg
ICAgICAgICAgICAgICAgICAgICAgInBvcHVwcyI6IDEKKyAgICAgICAgICAgICAgICAgICAgfQor
ICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICAidXNlQXV0b21h
dGlvbkV4dGVuc2lvbiI6IEZhbHNlLAorICAgICAgICAgICAgImV4Y2x1ZGVTd2l0Y2hlcyI6IFsi
ZW5hYmxlLWF1dG9tYXRpb24iXSwKKyAgICAgICAgICAgICJ3M2MiOiBUcnVlCiAgICAgICAgIH0K
ICAgICB9Ci0gICAgZm9yIChrd2FyZywgY2FwYWJpbGl0eSkgaW4gWygiYmluYXJ5IiwgImJpbmFy
eSIpLCAoImJpbmFyeV9hcmdzIiwgImFyZ3MiKV06Ci0gICAgICAgIGlmIGt3YXJnc1trd2FyZ10g
aXMgbm90IE5vbmU6Ci0gICAgICAgICAgICBjYXBhYmlsaXRpZXNbImdvb2c6Y2hyb21lT3B0aW9u
cyJdW2NhcGFiaWxpdHldID0ga3dhcmdzW2t3YXJnXQorCiAgICAgaWYgdGVzdF90eXBlID09ICJ0
ZXN0aGFybmVzcyI6Ci0gICAgICAgIGNhcGFiaWxpdGllc1siZ29vZzpjaHJvbWVPcHRpb25zIl1b
InVzZUF1dG9tYXRpb25FeHRlbnNpb24iXSA9IEZhbHNlCi0gICAgICAgIGNhcGFiaWxpdGllc1si
Z29vZzpjaHJvbWVPcHRpb25zIl1bImV4Y2x1ZGVTd2l0Y2hlcyJdID0gWyJlbmFibGUtYXV0b21h
dGlvbiJdCi0gICAgaWYgdGVzdF90eXBlID09ICJ3ZHNwZWMiOgotICAgICAgICBjYXBhYmlsaXRp
ZXNbImdvb2c6Y2hyb21lT3B0aW9ucyJdWyJ3M2MiXSA9IFRydWUKKyAgICAgICAgY2FwYWJpbGl0
aWVzWyJwYWdlTG9hZFN0cmF0ZWd5Il0gPSAibm9uZSIKKworICAgIGNocm9tZV9vcHRpb25zID0g
Y2FwYWJpbGl0aWVzWyJnb29nOmNocm9tZU9wdGlvbnMiXQorICAgIGlmIGt3YXJnc1siYmluYXJ5
Il0gaXMgbm90IE5vbmU6CisgICAgICAgIGNocm9tZV9vcHRpb25zWyJiaW5hcnkiXSA9IGt3YXJn
c1siYmluYXJ5Il0KKworICAgICMgSGVyZSB3ZSBzZXQgYSBmZXcgQ2hyb21lIGZsYWdzIHRoYXQg
YXJlIGFsd2F5cyBwYXNzZWQuCisgICAgIyBDaHJvbWVEcml2ZXIncyAiYWNjZXB0SW5zZWN1cmVD
ZXJ0cyIgY2FwYWJpbGl0eSBvbmx5IGNvbnRyb2xzIHRoZSBjdXJyZW50CisgICAgIyBicm93c2lu
ZyBjb250ZXh0LCB3aGVyZWFzIHRoZSBDTEkgZmxhZyB3b3JrcyBmb3Igd29ya2VycywgdG9vLgor
ICAgIGNocm9tZV9vcHRpb25zWyJhcmdzIl0gPSBbIi0taWdub3JlLWNlcnRpZmljYXRlLWVycm9y
cyJdCisgICAgIyBBbGxvdyBhdWRpbyBhdXRvcGxheSB3aXRob3V0IGEgdXNlciBnZXN0dXJlLgor
ICAgIGNocm9tZV9vcHRpb25zWyJhcmdzIl0uYXBwZW5kKCItLWF1dG9wbGF5LXBvbGljeT1uby11
c2VyLWdlc3R1cmUtcmVxdWlyZWQiKQorICAgICMgQWxsb3cgV2ViUlRDIHRlc3RzIHRvIGNhbGwg
Z2V0VXNlck1lZGlhLgorICAgIGNocm9tZV9vcHRpb25zWyJhcmdzIl0uYXBwZW5kKCItLXVzZS1m
YWtlLXVpLWZvci1tZWRpYS1zdHJlYW0iKQorICAgIGNocm9tZV9vcHRpb25zWyJhcmdzIl0uYXBw
ZW5kKCItLXVzZS1mYWtlLWRldmljZS1mb3ItbWVkaWEtc3RyZWFtIikKKyAgICAjIFNob3J0ZW4g
ZGVsYXkgZm9yIFJlcG9ydGluZyA8aHR0cHM6Ly93M2MuZ2l0aHViLmlvL3JlcG9ydGluZy8+Lgor
ICAgIGNocm9tZV9vcHRpb25zWyJhcmdzIl0uYXBwZW5kKCItLXNob3J0LXJlcG9ydGluZy1kZWxh
eSIpCisgICAgIyBQb2ludCBhbGwgLnRlc3QgZG9tYWlucyB0byBsb2NhbGhvc3QgZm9yIENocm9t
ZQorICAgIGNocm9tZV9vcHRpb25zWyJhcmdzIl0uYXBwZW5kKCItLWhvc3QtcmVzb2x2ZXItcnVs
ZXM9TUFQIG5vbmV4aXN0ZW50LioudGVzdCB+Tk9URk9VTkQsIE1BUCAqLnRlc3QgMTI3LjAuMC4x
IikKKworICAgICMgQ29weSBvdmVyIGFueSBvdGhlciBmbGFncyB0aGF0IHdlcmUgcGFzc2VkIGlu
IHZpYSAtLWJpbmFyeV9hcmdzCisgICAgaWYga3dhcmdzWyJiaW5hcnlfYXJncyJdIGlzIG5vdCBO
b25lOgorICAgICAgICBjaHJvbWVfb3B0aW9uc1siYXJncyJdLmV4dGVuZChrd2FyZ3NbImJpbmFy
eV9hcmdzIl0pCisKKyAgICAjIFBhc3MgdGhlIC0taGVhZGxlc3MgZmxhZyB0byBDaHJvbWUgaWYg
V1BUJ3Mgb3duIC0taGVhZGxlc3MgZmxhZyB3YXMgc2V0CisgICAgaWYga3dhcmdzWyJoZWFkbGVz
cyJdIGFuZCAiLS1oZWFkbGVzcyIgbm90IGluIGNocm9tZV9vcHRpb25zWyJhcmdzIl06CisgICAg
ICAgIGNocm9tZV9vcHRpb25zWyJhcmdzIl0uYXBwZW5kKCItLWhlYWRsZXNzIikKKwogICAgIGV4
ZWN1dG9yX2t3YXJnc1siY2FwYWJpbGl0aWVzIl0gPSBjYXBhYmlsaXRpZXMKKwogICAgIHJldHVy
biBleGVjdXRvcl9rd2FyZ3MKIAogCkBAIC02MSw3ICs5Miw3IEBAIGRlZiBlbnZfZXh0cmFzKCoq
a3dhcmdzKToKIAogCiBkZWYgZW52X29wdGlvbnMoKToKLSAgICByZXR1cm4ge30KKyAgICByZXR1
cm4geyJzZXJ2ZXJfaG9zdCI6ICIxMjcuMC4wLjEifQogCiAKIGNsYXNzIENocm9tZUJyb3dzZXIo
QnJvd3Nlcik6CkBAIC05Miw3ICsxMjMsNyBAQCBjbGFzcyBDaHJvbWVCcm93c2VyKEJyb3dzZXIp
OgogICAgICAgICAjIFRPRE8oYXRvKTogVGhpcyBvbmx5IGluZGljYXRlcyB0aGUgZHJpdmVyIGlz
IGFsaXZlLAogICAgICAgICAjIGFuZCBkb2Vzbid0IHNheSBhbnl0aGluZyBhYm91dCB3aGV0aGVy
IGEgYnJvd3NlciBzZXNzaW9uCiAgICAgICAgICMgaXMgYWN0aXZlLgotICAgICAgICByZXR1cm4g
c2VsZi5zZXJ2ZXIuaXNfYWxpdmUoKQorICAgICAgICByZXR1cm4gc2VsZi5zZXJ2ZXIuaXNfYWxp
dmUKIAogICAgIGRlZiBjbGVhbnVwKHNlbGYpOgogICAgICAgICBzZWxmLnN0b3AoKQpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93
cHRydW5uZXIvd3B0cnVubmVyL2Jyb3dzZXJzL2Nocm9tZV9hbmRyb2lkLnB5IGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVu
bmVyL2Jyb3dzZXJzL2Nocm9tZV9hbmRyb2lkLnB5CmluZGV4IGM5NmNmNTYzNGYzZDc2YTc5YjRj
ZmQyMDQyOWY2NjIyZTQ5NmQ2YTAuLmI0ZWRjMDUwZDBjNzA5Y2ZhNDY3YTQzYjZlNmE0MTIwMGFh
MDRjNzMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9icm93c2Vycy9jaHJvbWVfYW5kcm9pZC5w
eQorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3dwdHJ1bm5lci93cHRydW5uZXIvYnJvd3NlcnMvY2hyb21lX2FuZHJvaWQucHkKQEAgLTEsNjQg
KzEsNjMgQEAKIGltcG9ydCBzdWJwcm9jZXNzCiAKIGZyb20gLmJhc2UgaW1wb3J0IEJyb3dzZXIs
IEV4ZWN1dG9yQnJvd3NlciwgcmVxdWlyZV9hcmcKK2Zyb20gLmJhc2UgaW1wb3J0IGdldF90aW1l
b3V0X211bHRpcGxpZXIgICAjIG5vcWE6IEY0MDEKK2Zyb20gLmNocm9tZSBpbXBvcnQgZXhlY3V0
b3Jfa3dhcmdzIGFzIGNocm9tZV9leGVjdXRvcl9rd2FyZ3MKIGZyb20gLi53ZWJkcml2ZXJfc2Vy
dmVyIGltcG9ydCBDaHJvbWVEcml2ZXJTZXJ2ZXIKLWZyb20gLi5leGVjdXRvcnMgaW1wb3J0IGV4
ZWN1dG9yX2t3YXJncyBhcyBiYXNlX2V4ZWN1dG9yX2t3YXJncwotZnJvbSAuLmV4ZWN1dG9ycy5l
eGVjdXRvcnNlbGVuaXVtIGltcG9ydCAoU2VsZW5pdW1UZXN0aGFybmVzc0V4ZWN1dG9yLCAgIyBu
b3FhOiBGNDAxCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTZWxl
bml1bVJlZlRlc3RFeGVjdXRvcikgICMgbm9xYTogRjQwMQorZnJvbSAuLmV4ZWN1dG9ycy5leGVj
dXRvcndlYmRyaXZlciBpbXBvcnQgKFdlYkRyaXZlclRlc3RoYXJuZXNzRXhlY3V0b3IsICAjIG5v
cWE6IEY0MDEKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBXZWJE
cml2ZXJSZWZUZXN0RXhlY3V0b3IpICAjIG5vcWE6IEY0MDEKIGZyb20gLi5leGVjdXRvcnMuZXhl
Y3V0b3JjaHJvbWUgaW1wb3J0IENocm9tZURyaXZlcldkc3BlY0V4ZWN1dG9yICAjIG5vcWE6IEY0
MDEKIAogCiBfX3dwdHJ1bm5lcl9fID0geyJwcm9kdWN0IjogImNocm9tZV9hbmRyb2lkIiwKICAg
ICAgICAgICAgICAgICAgImNoZWNrX2FyZ3MiOiAiY2hlY2tfYXJncyIsCiAgICAgICAgICAgICAg
ICAgICJicm93c2VyIjogIkNocm9tZUFuZHJvaWRCcm93c2VyIiwKLSAgICAgICAgICAgICAgICAg
ImV4ZWN1dG9yIjogeyJ0ZXN0aGFybmVzcyI6ICJTZWxlbml1bVRlc3RoYXJuZXNzRXhlY3V0b3Ii
LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInJlZnRlc3QiOiAiU2VsZW5pdW1SZWZU
ZXN0RXhlY3V0b3IiLAorICAgICAgICAgICAgICAgICAiZXhlY3V0b3IiOiB7InRlc3RoYXJuZXNz
IjogIldlYkRyaXZlclRlc3RoYXJuZXNzRXhlY3V0b3IiLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgInJlZnRlc3QiOiAiV2ViRHJpdmVyUmVmVGVzdEV4ZWN1dG9yIiwKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICJ3ZHNwZWMiOiAiQ2hyb21lRHJpdmVyV2RzcGVjRXhlY3V0
b3IifSwKICAgICAgICAgICAgICAgICAgImJyb3dzZXJfa3dhcmdzIjogImJyb3dzZXJfa3dhcmdz
IiwKICAgICAgICAgICAgICAgICAgImV4ZWN1dG9yX2t3YXJncyI6ICJleGVjdXRvcl9rd2FyZ3Mi
LAogICAgICAgICAgICAgICAgICAiZW52X2V4dHJhcyI6ICJlbnZfZXh0cmFzIiwKLSAgICAgICAg
ICAgICAgICAgImVudl9vcHRpb25zIjogImVudl9vcHRpb25zIn0KKyAgICAgICAgICAgICAgICAg
ImVudl9vcHRpb25zIjogImVudl9vcHRpb25zIiwKKyAgICAgICAgICAgICAgICAgInRpbWVvdXRf
bXVsdGlwbGllciI6ICJnZXRfdGltZW91dF9tdWx0aXBsaWVyIn0KIAogX3dwdHNlcnZlX3BvcnRz
ID0gc2V0KCkKIAogCiBkZWYgY2hlY2tfYXJncygqKmt3YXJncyk6CisgICAgcmVxdWlyZV9hcmco
a3dhcmdzLCAicGFja2FnZV9uYW1lIikKICAgICByZXF1aXJlX2FyZyhrd2FyZ3MsICJ3ZWJkcml2
ZXJfYmluYXJ5IikKIAogCiBkZWYgYnJvd3Nlcl9rd2FyZ3ModGVzdF90eXBlLCBydW5faW5mb19k
YXRhLCBjb25maWcsICoqa3dhcmdzKToKLSAgICByZXR1cm4geyJiaW5hcnkiOiBrd2FyZ3NbImJp
bmFyeSJdLAorICAgIHJldHVybiB7InBhY2thZ2VfbmFtZSI6IGt3YXJnc1sicGFja2FnZV9uYW1l
Il0sCisgICAgICAgICAgICAiZGV2aWNlX3NlcmlhbCI6IGt3YXJnc1siZGV2aWNlX3NlcmlhbCJd
LAogICAgICAgICAgICAgIndlYmRyaXZlcl9iaW5hcnkiOiBrd2FyZ3NbIndlYmRyaXZlcl9iaW5h
cnkiXSwKICAgICAgICAgICAgICJ3ZWJkcml2ZXJfYXJncyI6IGt3YXJncy5nZXQoIndlYmRyaXZl
cl9hcmdzIil9CiAKIAogZGVmIGV4ZWN1dG9yX2t3YXJncyh0ZXN0X3R5cGUsIHNlcnZlcl9jb25m
aWcsIGNhY2hlX21hbmFnZXIsIHJ1bl9pbmZvX2RhdGEsCiAgICAgICAgICAgICAgICAgICAgICoq
a3dhcmdzKToKLSAgICBmcm9tIHNlbGVuaXVtLndlYmRyaXZlciBpbXBvcnQgRGVzaXJlZENhcGFi
aWxpdGllcwotCi0gICAgIyBVc2UgZXh0ZW5kKCkgdG8gbW9kaWZ5IHRoZSBnbG9iYWwgbGlzdCBp
biBwbGFjZS4KKyAgICAjIFVzZSB1cGRhdGUoKSB0byBtb2RpZnkgdGhlIGdsb2JhbCBsaXN0IGlu
IHBsYWNlLgogICAgIF93cHRzZXJ2ZV9wb3J0cy51cGRhdGUoc2V0KAogICAgICAgICBzZXJ2ZXJf
Y29uZmlnWydwb3J0cyddWydodHRwJ10gKyBzZXJ2ZXJfY29uZmlnWydwb3J0cyddWydodHRwcydd
ICsKICAgICAgICAgc2VydmVyX2NvbmZpZ1sncG9ydHMnXVsnd3MnXSArIHNlcnZlcl9jb25maWdb
J3BvcnRzJ11bJ3dzcyddCiAgICAgKSkKIAotICAgIGV4ZWN1dG9yX2t3YXJncyA9IGJhc2VfZXhl
Y3V0b3Jfa3dhcmdzKHRlc3RfdHlwZSwgc2VydmVyX2NvbmZpZywgY2FjaGVfbWFuYWdlciwgcnVu
X2luZm9fZGF0YSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAq
Kmt3YXJncykKLSAgICBleGVjdXRvcl9rd2FyZ3NbImNsb3NlX2FmdGVyX2RvbmUiXSA9IFRydWUK
LSAgICBjYXBhYmlsaXRpZXMgPSBkaWN0KERlc2lyZWRDYXBhYmlsaXRpZXMuQ0hST01FLml0ZW1z
KCkpCi0gICAgY2FwYWJpbGl0aWVzWyJjaHJvbWVPcHRpb25zIl0gPSB7fQotICAgICMgcmVxdWly
ZWQgdG8gc3RhcnQgb24gbW9iaWxlCi0gICAgY2FwYWJpbGl0aWVzWyJjaHJvbWVPcHRpb25zIl1b
ImFuZHJvaWRQYWNrYWdlIl0gPSAiY29tLmdvb2dsZS5hbmRyb2lkLmFwcHMuY2hyb21lIgotCi0g
ICAgZm9yIChrd2FyZywgY2FwYWJpbGl0eSkgaW4gWygiYmluYXJ5IiwgImJpbmFyeSIpLCAoImJp
bmFyeV9hcmdzIiwgImFyZ3MiKV06Ci0gICAgICAgIGlmIGt3YXJnc1trd2FyZ10gaXMgbm90IE5v
bmU6Ci0gICAgICAgICAgICBjYXBhYmlsaXRpZXNbImNocm9tZU9wdGlvbnMiXVtjYXBhYmlsaXR5
XSA9IGt3YXJnc1trd2FyZ10KLSAgICBpZiB0ZXN0X3R5cGUgPT0gInRlc3RoYXJuZXNzIjoKLSAg
ICAgICAgY2FwYWJpbGl0aWVzWyJ1c2VBdXRvbWF0aW9uRXh0ZW5zaW9uIl0gPSBGYWxzZQotICAg
ICAgICBjYXBhYmlsaXRpZXNbImV4Y2x1ZGVTd2l0Y2hlcyJdID0gWyJlbmFibGUtYXV0b21hdGlv
biJdCi0gICAgaWYgdGVzdF90eXBlID09ICJ3ZHNwZWMiOgotICAgICAgICBjYXBhYmlsaXRpZXNb
ImNocm9tZU9wdGlvbnMiXVsidzNjIl0gPSBUcnVlCi0gICAgZXhlY3V0b3Jfa3dhcmdzWyJjYXBh
YmlsaXRpZXMiXSA9IGNhcGFiaWxpdGllcworICAgIGV4ZWN1dG9yX2t3YXJncyA9IGNocm9tZV9l
eGVjdXRvcl9rd2FyZ3ModGVzdF90eXBlLCBzZXJ2ZXJfY29uZmlnLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FjaGVfbWFuYWdlciwgcnVuX2luZm9fZGF0
YSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoqa3dhcmdz
KQorICAgICMgUmVtb3ZlIHVuc3VwcG9ydGVkIG9wdGlvbnMgb24gbW9iaWxlLgorICAgIGRlbCBl
eGVjdXRvcl9rd2FyZ3NbImNhcGFiaWxpdGllcyJdWyJnb29nOmNocm9tZU9wdGlvbnMiXVsicHJl
ZnMiXQorICAgIGRlbCBleGVjdXRvcl9rd2FyZ3NbImNhcGFiaWxpdGllcyJdWyJnb29nOmNocm9t
ZU9wdGlvbnMiXVsidXNlQXV0b21hdGlvbkV4dGVuc2lvbiJdCisKKyAgICBhc3NlcnQga3dhcmdz
WyJwYWNrYWdlX25hbWUiXSwgIm1pc3NpbmcgLS1wYWNrYWdlLW5hbWUiCisgICAgZXhlY3V0b3Jf
a3dhcmdzWyJjYXBhYmlsaXRpZXMiXVsiZ29vZzpjaHJvbWVPcHRpb25zIl1bImFuZHJvaWRQYWNr
YWdlIl0gPSBcCisgICAgICAgIGt3YXJnc1sicGFja2FnZV9uYW1lIl0KKyAgICBpZiBrd2FyZ3Mu
Z2V0KCJkZXZpY2Vfc2VyaWFsIik6CisgICAgICAgIGV4ZWN1dG9yX2t3YXJnc1siY2FwYWJpbGl0
aWVzIl1bImdvb2c6Y2hyb21lT3B0aW9ucyJdWyJhbmRyb2lkRGV2aWNlU2VyaWFsIl0gPSBcCisg
ICAgICAgICAgICBrd2FyZ3NbImRldmljZV9zZXJpYWwiXQorCiAgICAgcmV0dXJuIGV4ZWN1dG9y
X2t3YXJncwogCiAKQEAgLTY3LDcgKzY2LDggQEAgZGVmIGVudl9leHRyYXMoKiprd2FyZ3MpOgog
CiAKIGRlZiBlbnZfb3B0aW9ucygpOgotICAgIHJldHVybiB7fQorICAgICMgYWxsb3cgdGhlIHVz
ZSBvZiBob3N0LXJlc29sdmVyLXJ1bGVzIGluIGxpZXUgb2YgbW9kaWZ5aW5nIC9ldGMvaG9zdHMg
ZmlsZQorICAgIHJldHVybiB7InNlcnZlcl9ob3N0IjogIjEyNy4wLjAuMSJ9CiAKIAogY2xhc3Mg
Q2hyb21lQW5kcm9pZEJyb3dzZXIoQnJvd3Nlcik6CkBAIC03NSwyNCArNzUsMjkgQEAgY2xhc3Mg
Q2hyb21lQW5kcm9pZEJyb3dzZXIoQnJvd3Nlcik6CiAgICAgYGB3cHRydW5uZXIud2ViZHJpdmVy
LkNocm9tZURyaXZlclNlcnZlcmBgLgogICAgICIiIgogCi0gICAgZGVmIF9faW5pdF9fKHNlbGYs
IGxvZ2dlciwgYmluYXJ5LCB3ZWJkcml2ZXJfYmluYXJ5PSJjaHJvbWVkcml2ZXIiLAotICAgICAg
ICAgICAgICAgICB3ZWJkcml2ZXJfYXJncz1Ob25lKToKLSAgICAgICAgIiIiQ3JlYXRlcyBhIG5l
dyByZXByZXNlbnRhdGlvbiBvZiBDaHJvbWUuICBUaGUgYGJpbmFyeWAgYXJndW1lbnQgZ2l2ZXMK
LSAgICAgICAgdGhlIGJyb3dzZXIgYmluYXJ5IHRvIHVzZSBmb3IgdGVzdGluZy4iIiIKKyAgICBk
ZWYgX19pbml0X18oc2VsZiwgbG9nZ2VyLCBwYWNrYWdlX25hbWUsIHdlYmRyaXZlcl9iaW5hcnk9
ImNocm9tZWRyaXZlciIsCisgICAgICAgICAgICAgICAgIGRldmljZV9zZXJpYWw9Tm9uZSwgd2Vi
ZHJpdmVyX2FyZ3M9Tm9uZSk6CiAgICAgICAgIEJyb3dzZXIuX19pbml0X18oc2VsZiwgbG9nZ2Vy
KQotICAgICAgICBzZWxmLmJpbmFyeSA9IGJpbmFyeQorICAgICAgICBzZWxmLnBhY2thZ2VfbmFt
ZSA9IHBhY2thZ2VfbmFtZQorICAgICAgICBzZWxmLmRldmljZV9zZXJpYWwgPSBkZXZpY2Vfc2Vy
aWFsCiAgICAgICAgIHNlbGYuc2VydmVyID0gQ2hyb21lRHJpdmVyU2VydmVyKHNlbGYubG9nZ2Vy
LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiaW5hcnk9d2ViZHJp
dmVyX2JpbmFyeSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJn
cz13ZWJkcml2ZXJfYXJncykKKyAgICAgICAgc2VsZi5zZXR1cF9hZGJfcmV2ZXJzZSgpCiAKICAg
ICBkZWYgX2FkYl9ydW4oc2VsZiwgYXJncyk6Ci0gICAgICAgIHNlbGYubG9nZ2VyLmluZm8oJ2Fk
YiAnICsgJyAnLmpvaW4oYXJncykpCi0gICAgICAgIHN1YnByb2Nlc3MuY2hlY2tfY2FsbChbJ2Fk
YiddICsgYXJncykKLQotICAgIGRlZiBzZXR1cChzZWxmKToKKyAgICAgICAgY21kID0gWydhZGIn
XQorICAgICAgICBpZiBzZWxmLmRldmljZV9zZXJpYWw6CisgICAgICAgICAgICBjbWQuZXh0ZW5k
KFsnLXMnLCBzZWxmLmRldmljZV9zZXJpYWxdKQorICAgICAgICBjbWQuZXh0ZW5kKGFyZ3MpCisg
ICAgICAgIHNlbGYubG9nZ2VyLmluZm8oJyAnLmpvaW4oY21kKSkKKyAgICAgICAgc3VicHJvY2Vz
cy5jaGVja19jYWxsKGNtZCkKKworICAgIGRlZiBzZXR1cF9hZGJfcmV2ZXJzZShzZWxmKToKICAg
ICAgICAgc2VsZi5fYWRiX3J1bihbJ3dhaXQtZm9yLWRldmljZSddKQogICAgICAgICBzZWxmLl9h
ZGJfcnVuKFsnZm9yd2FyZCcsICctLXJlbW92ZS1hbGwnXSkKICAgICAgICAgc2VsZi5fYWRiX3J1
bihbJ3JldmVyc2UnLCAnLS1yZW1vdmUtYWxsJ10pCisgICAgICAgICMgImFkYiByZXZlcnNlIiBm
b3J3YXJkcyBuZXR3b3JrIGNvbm5lY3Rpb24gZnJvbSBkZXZpY2UgdG8gaG9zdC4KICAgICAgICAg
Zm9yIHBvcnQgaW4gX3dwdHNlcnZlX3BvcnRzOgogICAgICAgICAgICAgc2VsZi5fYWRiX3J1bihb
J3JldmVyc2UnLCAndGNwOiVkJyAlIHBvcnQsICd0Y3A6JWQnICUgcG9ydF0pCiAKQEAgLTEwOSw3
ICsxMTQsNyBAQCBjbGFzcyBDaHJvbWVBbmRyb2lkQnJvd3NlcihCcm93c2VyKToKICAgICAgICAg
IyBUT0RPKGF0byk6IFRoaXMgb25seSBpbmRpY2F0ZXMgdGhlIGRyaXZlciBpcyBhbGl2ZSwKICAg
ICAgICAgIyBhbmQgZG9lc24ndCBzYXkgYW55dGhpbmcgYWJvdXQgd2hldGhlciBhIGJyb3dzZXIg
c2Vzc2lvbgogICAgICAgICAjIGlzIGFjdGl2ZS4KLSAgICAgICAgcmV0dXJuIHNlbGYuc2VydmVy
LmlzX2FsaXZlKCkKKyAgICAgICAgcmV0dXJuIHNlbGYuc2VydmVyLmlzX2FsaXZlCiAKICAgICBk
ZWYgY2xlYW51cChzZWxmKToKICAgICAgICAgc2VsZi5zdG9wKCkKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dw
dHJ1bm5lci9icm93c2Vycy9jaHJvbWVfaW9zLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2Jyb3dzZXJzL2No
cm9tZV9pb3MucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYTA0Mjk2NjVjOWJjNTdlMjdjMDJjZTgxYTdkZWI5MDli
OGZhMDBmNQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9icm93c2Vycy9jaHJvbWVf
aW9zLnB5CkBAIC0wLDAgKzEsODAgQEAKK2Zyb20gLmJhc2UgaW1wb3J0IEJyb3dzZXIsIEV4ZWN1
dG9yQnJvd3NlciwgcmVxdWlyZV9hcmcKK2Zyb20gLmJhc2UgaW1wb3J0IGdldF90aW1lb3V0X211
bHRpcGxpZXIgICAjIG5vcWE6IEY0MDEKK2Zyb20gLi53ZWJkcml2ZXJfc2VydmVyIGltcG9ydCBD
V1RDaHJvbWVEcml2ZXJTZXJ2ZXIKK2Zyb20gLi5leGVjdXRvcnMgaW1wb3J0IGV4ZWN1dG9yX2t3
YXJncyBhcyBiYXNlX2V4ZWN1dG9yX2t3YXJncworZnJvbSAuLmV4ZWN1dG9ycy5leGVjdXRvcndl
YmRyaXZlciBpbXBvcnQgKFdlYkRyaXZlclRlc3RoYXJuZXNzRXhlY3V0b3IsICAjIG5vcWE6IEY0
MDEKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBXZWJEcml2ZXJS
ZWZUZXN0RXhlY3V0b3IpICAjIG5vcWE6IEY0MDEKK2Zyb20gLi5leGVjdXRvcnMuZXhlY3V0b3Jj
aHJvbWUgaW1wb3J0IENocm9tZURyaXZlcldkc3BlY0V4ZWN1dG9yICAjIG5vcWE6IEY0MDEKKwor
CitfX3dwdHJ1bm5lcl9fID0geyJwcm9kdWN0IjogImNocm9tZV9pb3MiLAorICAgICAgICAgICAg
ICAgICAiY2hlY2tfYXJncyI6ICJjaGVja19hcmdzIiwKKyAgICAgICAgICAgICAgICAgImJyb3dz
ZXIiOiAiQ2hyb21laU9TQnJvd3NlciIsCisgICAgICAgICAgICAgICAgICJleGVjdXRvciI6IHsi
dGVzdGhhcm5lc3MiOiAiV2ViRHJpdmVyVGVzdGhhcm5lc3NFeGVjdXRvciIsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAicmVmdGVzdCI6ICJXZWJEcml2ZXJSZWZUZXN0RXhlY3V0b3Ii
fSwKKyAgICAgICAgICAgICAgICAgImJyb3dzZXJfa3dhcmdzIjogImJyb3dzZXJfa3dhcmdzIiwK
KyAgICAgICAgICAgICAgICAgImV4ZWN1dG9yX2t3YXJncyI6ICJleGVjdXRvcl9rd2FyZ3MiLAor
ICAgICAgICAgICAgICAgICAiZW52X2V4dHJhcyI6ICJlbnZfZXh0cmFzIiwKKyAgICAgICAgICAg
ICAgICAgImVudl9vcHRpb25zIjogImVudl9vcHRpb25zIiwKKyAgICAgICAgICAgICAgICAgInRp
bWVvdXRfbXVsdGlwbGllciI6ICJnZXRfdGltZW91dF9tdWx0aXBsaWVyIn0KKworZGVmIGNoZWNr
X2FyZ3MoKiprd2FyZ3MpOgorICAgIHJlcXVpcmVfYXJnKGt3YXJncywgIndlYmRyaXZlcl9iaW5h
cnkiKQorCisKK2RlZiBicm93c2VyX2t3YXJncyh0ZXN0X3R5cGUsIHJ1bl9pbmZvX2RhdGEsIGNv
bmZpZywgKiprd2FyZ3MpOgorICAgIHJldHVybiB7IndlYmRyaXZlcl9iaW5hcnkiOiBrd2FyZ3Nb
IndlYmRyaXZlcl9iaW5hcnkiXSwKKyAgICAgICAgICAgICJ3ZWJkcml2ZXJfYXJncyI6IGt3YXJn
cy5nZXQoIndlYmRyaXZlcl9hcmdzIil9CisKKworZGVmIGV4ZWN1dG9yX2t3YXJncyh0ZXN0X3R5
cGUsIHNlcnZlcl9jb25maWcsIGNhY2hlX21hbmFnZXIsIHJ1bl9pbmZvX2RhdGEsCisgICAgICAg
ICAgICAgICAgICAgICoqa3dhcmdzKToKKyAgICBleGVjdXRvcl9rd2FyZ3MgPSBiYXNlX2V4ZWN1
dG9yX2t3YXJncyh0ZXN0X3R5cGUsIHNlcnZlcl9jb25maWcsIGNhY2hlX21hbmFnZXIsIHJ1bl9p
bmZvX2RhdGEsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKipr
d2FyZ3MpCisgICAgZXhlY3V0b3Jfa3dhcmdzWyJjbG9zZV9hZnRlcl9kb25lIl0gPSBUcnVlCisg
ICAgZXhlY3V0b3Jfa3dhcmdzWyJjYXBhYmlsaXRpZXMiXSA9IHt9CisgICAgcmV0dXJuIGV4ZWN1
dG9yX2t3YXJncworCisKK2RlZiBlbnZfZXh0cmFzKCoqa3dhcmdzKToKKyAgICByZXR1cm4gW10K
KworCitkZWYgZW52X29wdGlvbnMoKToKKyAgICByZXR1cm4ge30KKworCitjbGFzcyBDaHJvbWVp
T1NCcm93c2VyKEJyb3dzZXIpOgorICAgICIiIkNocm9tZWlPUyBpcyBiYWNrZWQgYnkgQ1dUQ2hy
b21lRHJpdmVyLCB3aGljaCBpcyBzdXBwbGllZCB0aHJvdWdoCisgICAgYGB3cHRydW5uZXIud2Vi
ZHJpdmVyLkNXVENocm9tZURyaXZlclNlcnZlcmBgLgorICAgICIiIgorCisgICAgaW5pdF90aW1l
b3V0ID0gMTIwCisKKyAgICBkZWYgX19pbml0X18oc2VsZiwgbG9nZ2VyLCB3ZWJkcml2ZXJfYmlu
YXJ5LCB3ZWJkcml2ZXJfYXJncz1Ob25lKToKKyAgICAgICAgIiIiQ3JlYXRlcyBhIG5ldyByZXBy
ZXNlbnRhdGlvbiBvZiBDaHJvbWUuIiIiCisgICAgICAgIEJyb3dzZXIuX19pbml0X18oc2VsZiwg
bG9nZ2VyKQorICAgICAgICBzZWxmLnNlcnZlciA9IENXVENocm9tZURyaXZlclNlcnZlcihzZWxm
LmxvZ2dlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmlu
YXJ5PXdlYmRyaXZlcl9iaW5hcnksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGFyZ3M9d2ViZHJpdmVyX2FyZ3MpCisKKyAgICBkZWYgc3RhcnQoc2VsZiwgKipr
d2FyZ3MpOgorICAgICAgICBzZWxmLnNlcnZlci5zdGFydChibG9jaz1GYWxzZSkKKworICAgIGRl
ZiBzdG9wKHNlbGYsIGZvcmNlPUZhbHNlKToKKyAgICAgICAgc2VsZi5zZXJ2ZXIuc3RvcChmb3Jj
ZT1mb3JjZSkKKworICAgIGRlZiBwaWQoc2VsZik6CisgICAgICAgIHJldHVybiBzZWxmLnNlcnZl
ci5waWQKKworICAgIGRlZiBpc19hbGl2ZShzZWxmKToKKyAgICAgICAgIyBUT0RPKGF0byk6IFRo
aXMgb25seSBpbmRpY2F0ZXMgdGhlIGRyaXZlciBpcyBhbGl2ZSwKKyAgICAgICAgIyBhbmQgZG9l
c24ndCBzYXkgYW55dGhpbmcgYWJvdXQgd2hldGhlciBhIGJyb3dzZXIgc2Vzc2lvbgorICAgICAg
ICAjIGlzIGFjdGl2ZS4KKyAgICAgICAgcmV0dXJuIHNlbGYuc2VydmVyLmlzX2FsaXZlCisKKyAg
ICBkZWYgY2xlYW51cChzZWxmKToKKyAgICAgICAgc2VsZi5zdG9wKCkKKworICAgIGRlZiBleGVj
dXRvcl9icm93c2VyKHNlbGYpOgorICAgICAgICByZXR1cm4gRXhlY3V0b3JCcm93c2VyLCB7Indl
YmRyaXZlcl91cmwiOiBzZWxmLnNlcnZlci51cmx9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIv
YnJvd3NlcnMvZWRnZS5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9icm93c2Vycy9lZGdlLnB5CmluZGV4IGFk
MmJiNTEzYTZhODAxYjI5YTc5MWE2ZDY1YjdiNzMwYjg2ZTlhNjQuLmQ5ZDBhZjExNWNjOWU5YzY0
ZTkyN2IxNWNkZDI5MWYzMTRiMDdhZTUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9icm93c2Vy
cy9lZGdlLnB5CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9icm93c2Vycy9lZGdlLnB5CkBAIC0xLDMgKzEs
NiBAQAorZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCBwcmludF9mdW5jdGlvbgoraW1wb3J0IHRpbWUK
K2ltcG9ydCBzdWJwcm9jZXNzCiBmcm9tIC5iYXNlIGltcG9ydCBCcm93c2VyLCBFeGVjdXRvckJy
b3dzZXIsIHJlcXVpcmVfYXJnCiBmcm9tIC4ud2ViZHJpdmVyX3NlcnZlciBpbXBvcnQgRWRnZURy
aXZlclNlcnZlcgogZnJvbSAuLmV4ZWN1dG9ycyBpbXBvcnQgZXhlY3V0b3Jfa3dhcmdzIGFzIGJh
c2VfZXhlY3V0b3Jfa3dhcmdzCkBAIC0xNCw3ICsxNywxMCBAQCBfX3dwdHJ1bm5lcl9fID0geyJw
cm9kdWN0IjogImVkZ2UiLAogICAgICAgICAgICAgICAgICAiYnJvd3Nlcl9rd2FyZ3MiOiAiYnJv
d3Nlcl9rd2FyZ3MiLAogICAgICAgICAgICAgICAgICAiZXhlY3V0b3Jfa3dhcmdzIjogImV4ZWN1
dG9yX2t3YXJncyIsCiAgICAgICAgICAgICAgICAgICJlbnZfZXh0cmFzIjogImVudl9leHRyYXMi
LAotICAgICAgICAgICAgICAgICAiZW52X29wdGlvbnMiOiAiZW52X29wdGlvbnMifQorICAgICAg
ICAgICAgICAgICAiZW52X29wdGlvbnMiOiAiZW52X29wdGlvbnMiLAorICAgICAgICAgICAgICAg
ICAicnVuX2luZm9fZXh0cmFzIjogInJ1bl9pbmZvX2V4dHJhcyIsCisgICAgICAgICAgICAgICAg
ICJ0aW1lb3V0X211bHRpcGxpZXIiOiAiZ2V0X3RpbWVvdXRfbXVsdGlwbGllciJ9CisKIAogZGVm
IGdldF90aW1lb3V0X211bHRpcGxpZXIodGVzdF90eXBlLCBydW5faW5mb19kYXRhLCAqKmt3YXJn
cyk6CiAgICAgaWYga3dhcmdzWyJ0aW1lb3V0X211bHRpcGxpZXIiXSBpcyBub3QgTm9uZToKQEAg
LTIzLDkgKzI5LDExIEBAIGRlZiBnZXRfdGltZW91dF9tdWx0aXBsaWVyKHRlc3RfdHlwZSwgcnVu
X2luZm9fZGF0YSwgKiprd2FyZ3MpOgogICAgICAgICByZXR1cm4gMTAKICAgICByZXR1cm4gMQog
CisKIGRlZiBjaGVja19hcmdzKCoqa3dhcmdzKToKICAgICByZXF1aXJlX2FyZyhrd2FyZ3MsICJ3
ZWJkcml2ZXJfYmluYXJ5IikKIAorCiBkZWYgYnJvd3Nlcl9rd2FyZ3ModGVzdF90eXBlLCBydW5f
aW5mb19kYXRhLCBjb25maWcsICoqa3dhcmdzKToKICAgICByZXR1cm4geyJ3ZWJkcml2ZXJfYmlu
YXJ5Ijoga3dhcmdzWyJ3ZWJkcml2ZXJfYmluYXJ5Il0sCiAgICAgICAgICAgICAid2ViZHJpdmVy
X2FyZ3MiOiBrd2FyZ3MuZ2V0KCJ3ZWJkcml2ZXJfYXJncyIpLApAQCAtMzMsNiArNDEsNyBAQCBk
ZWYgYnJvd3Nlcl9rd2FyZ3ModGVzdF90eXBlLCBydW5faW5mb19kYXRhLCBjb25maWcsICoqa3dh
cmdzKToKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHJ1bl9pbmZvX2RhdGEsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAqKmt3YXJncyl9CiAKKwogZGVmIGV4ZWN1dG9yX2t3YXJn
cyh0ZXN0X3R5cGUsIHNlcnZlcl9jb25maWcsIGNhY2hlX21hbmFnZXIsIHJ1bl9pbmZvX2RhdGEs
CiAgICAgICAgICAgICAgICAgICAgICoqa3dhcmdzKToKICAgICBleGVjdXRvcl9rd2FyZ3MgPSBi
YXNlX2V4ZWN1dG9yX2t3YXJncyh0ZXN0X3R5cGUsIHNlcnZlcl9jb25maWcsCkBAIC00MiwxNCAr
NTEsMTkgQEAgZGVmIGV4ZWN1dG9yX2t3YXJncyh0ZXN0X3R5cGUsIHNlcnZlcl9jb25maWcsIGNh
Y2hlX21hbmFnZXIsIHJ1bl9pbmZvX2RhdGEsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcnVuX2luZm9fZGF0YSwKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAqKmt3YXJncykKICAgICBleGVjdXRvcl9rd2FyZ3NbImNhcGFiaWxpdGllcyJdID0g
e30KKyAgICBpZiB0ZXN0X3R5cGUgPT0gInRlc3RoYXJuZXNzIjoKKyAgICAgICAgZXhlY3V0b3Jf
a3dhcmdzWyJjYXBhYmlsaXRpZXMiXVsicGFnZUxvYWRTdHJhdGVneSJdID0gImVhZ2VyIgogICAg
IHJldHVybiBleGVjdXRvcl9rd2FyZ3MKIAorCiBkZWYgZW52X2V4dHJhcygqKmt3YXJncyk6CiAg
ICAgcmV0dXJuIFtdCiAKKwogZGVmIGVudl9vcHRpb25zKCk6CiAgICAgcmV0dXJuIHsic3VwcG9y
dHNfZGVidWdnZXIiOiBGYWxzZX0KIAorCiBjbGFzcyBFZGdlQnJvd3NlcihCcm93c2VyKToKICAg
ICB1c2VkX3BvcnRzID0gc2V0KCkKICAgICBpbml0X3RpbWVvdXQgPSA2MApAQCAtNjYsMTEgKzgw
LDI2IEBAIGNsYXNzIEVkZ2VCcm93c2VyKEJyb3dzZXIpOgogCiAKICAgICBkZWYgc3RhcnQoc2Vs
ZiwgKiprd2FyZ3MpOgotICAgICAgICBwcmludCBzZWxmLnNlcnZlci51cmwKKyAgICAgICAgcHJp
bnQoc2VsZi5zZXJ2ZXIudXJsKQogICAgICAgICBzZWxmLnNlcnZlci5zdGFydCgpCiAKICAgICBk
ZWYgc3RvcChzZWxmLCBmb3JjZT1GYWxzZSk6CiAgICAgICAgIHNlbGYuc2VydmVyLnN0b3AoZm9y
Y2U9Zm9yY2UpCisgICAgICAgICMgV2FpdCBmb3IgRWRnZSBicm93c2VyIHByb2Nlc3MgdG8gZXhp
dCBpZiBkcml2ZXIgcHJvY2VzcyBpcyBmb3VuZAorICAgICAgICBlZGdlX3Byb2NfbmFtZSA9ICdN
aWNyb3NvZnRFZGdlLmV4ZScKKyAgICAgICAgZm9yIGkgaW4gcmFuZ2UoMCw1KToKKyAgICAgICAg
ICAgIHByb2NzID0gc3VicHJvY2Vzcy5jaGVja19vdXRwdXQoWyd0YXNrbGlzdCcsICcvZmknLCAn
SW1hZ2VOYW1lIGVxICcgKyBlZGdlX3Byb2NfbmFtZV0pCisgICAgICAgICAgICBpZiAnTWljcm9z
b2Z0V2ViRHJpdmVyLmV4ZScgbm90IGluIHByb2NzOgorICAgICAgICAgICAgICAgICMgRWRnZSBk
cml2ZXIgcHJvY2VzcyBhbHJlYWR5IGV4aXRlZCwgZG9uJ3Qgd2FpdCBmb3IgYnJvd3NlciBwcm9j
ZXNzIHRvIGV4aXQKKyAgICAgICAgICAgICAgICBicmVhaworICAgICAgICAgICAgZWxpZiBlZGdl
X3Byb2NfbmFtZSBpbiBwcm9jczoKKyAgICAgICAgICAgICAgICB0aW1lLnNsZWVwKDAuNSkKKyAg
ICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgYnJlYWsKKworICAgICAgICBpZiBlZGdl
X3Byb2NfbmFtZSBpbiBwcm9jczoKKyAgICAgICAgICAgICMgY2xvc2UgRWRnZSBwcm9jZXNzIGlm
IGl0IGlzIHN0aWxsIHJ1bm5pbmcKKyAgICAgICAgICAgIHN1YnByb2Nlc3MuY2FsbChbJ3Rhc2tr
aWxsLmV4ZScsICcvZicsICcvaW0nLCAnbWljcm9zb2Z0ZWRnZSonXSkKIAogICAgIGRlZiBwaWQo
c2VsZik6CiAgICAgICAgIHJldHVybiBzZWxmLnNlcnZlci5waWQKQEAgLTc5LDEwICsxMDgsMjQg
QEAgY2xhc3MgRWRnZUJyb3dzZXIoQnJvd3Nlcik6CiAgICAgICAgICMgVE9ETyhhdG8pOiBUaGlz
IG9ubHkgaW5kaWNhdGVzIHRoZSBzZXJ2ZXIgaXMgYWxpdmUsCiAgICAgICAgICMgYW5kIGRvZXNu
J3Qgc2F5IGFueXRoaW5nIGFib3V0IHdoZXRoZXIgYSBicm93c2VyIHNlc3Npb24KICAgICAgICAg
IyBpcyBhY3RpdmUuCi0gICAgICAgIHJldHVybiBzZWxmLnNlcnZlci5pc19hbGl2ZSgpCisgICAg
ICAgIHJldHVybiBzZWxmLnNlcnZlci5pc19hbGl2ZQogCiAgICAgZGVmIGNsZWFudXAoc2VsZik6
CiAgICAgICAgIHNlbGYuc3RvcCgpCiAKICAgICBkZWYgZXhlY3V0b3JfYnJvd3NlcihzZWxmKToK
ICAgICAgICAgcmV0dXJuIEV4ZWN1dG9yQnJvd3NlciwgeyJ3ZWJkcml2ZXJfdXJsIjogc2VsZi5z
ZXJ2ZXIudXJsfQorCisKK2RlZiBydW5faW5mb19leHRyYXMoKiprd2FyZ3MpOgorICAgIG9zUmVs
ZWFzZUNvbW1hbmQgPSByIihHZXQtSXRlbVByb3BlcnR5ICdIS0xNOlxTb2Z0d2FyZVxNaWNyb3Nv
ZnRcV2luZG93cyBOVFxDdXJyZW50VmVyc2lvbicpLlJlbGVhc2VJZCIKKyAgICBvc0J1aWxkQ29t
bWFuZCA9IHIiKEdldC1JdGVtUHJvcGVydHkgJ0hLTE06XFNvZnR3YXJlXE1pY3Jvc29mdFxXaW5k
b3dzIE5UXEN1cnJlbnRWZXJzaW9uJykuQnVpbGRMYWJFeCIKKyAgICB0cnk6CisgICAgICAgIG9z
X3JlbGVhc2UgPSBzdWJwcm9jZXNzLmNoZWNrX291dHB1dChbInBvd2Vyc2hlbGwuZXhlIiwgb3NS
ZWxlYXNlQ29tbWFuZF0pLnN0cmlwKCkKKyAgICAgICAgb3NfYnVpbGQgPSBzdWJwcm9jZXNzLmNo
ZWNrX291dHB1dChbInBvd2Vyc2hlbGwuZXhlIiwgb3NCdWlsZENvbW1hbmRdKS5zdHJpcCgpCisg
ICAgZXhjZXB0IChzdWJwcm9jZXNzLkNhbGxlZFByb2Nlc3NFcnJvciwgT1NFcnJvcik6CisgICAg
ICAgIHJldHVybiB7fQorCisgICAgcnYgPSB7Im9zX2J1aWxkIjogb3NfYnVpbGQsCisgICAgICAg
ICAgIm9zX3JlbGVhc2UiOiBvc19yZWxlYXNlfQorICAgIHJldHVybiBydgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5u
ZXIvd3B0cnVubmVyL2Jyb3dzZXJzL2VkZ2Vfd2ViZHJpdmVyLnB5IGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2Jy
b3dzZXJzL2VkZ2Vfd2ViZHJpdmVyLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmMyNTQ1ZGU0NmYwYjVkZWYwMGMy
NzNlY2ZiNWE1N2YwZDQwMjk1MzEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvYnJv
d3NlcnMvZWRnZV93ZWJkcml2ZXIucHkKQEAgLTAsMCArMSwxMiBAQAorZnJvbSAuYmFzZSBpbXBv
cnQgaW5oZXJpdAorZnJvbSAuIGltcG9ydCBlZGdlCisKK2Zyb20gLi5leGVjdXRvcnMuZXhlY3V0
b3J3ZWJkcml2ZXIgaW1wb3J0IChXZWJEcml2ZXJUZXN0aGFybmVzc0V4ZWN1dG9yLCAgIyBub3Fh
OiBGNDAxCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgV2ViRHJp
dmVyUmVmVGVzdEV4ZWN1dG9yKSAgIyBub3FhOiBGNDAxCisKKworaW5oZXJpdChlZGdlLCBnbG9i
YWxzKCksICJlZGdlX3dlYmRyaXZlciIpCisKKyMgX193cHRydW5uZXJfXyBtYWdpY2FsbHkgYXBw
ZWFycyBmcm9tIGluaGVyaXQsIEY4MjEgaXMgdW5kZWZpbmVkIG5hbWUKK19fd3B0cnVubmVyX19b
ImV4ZWN1dG9yIl1bInRlc3RoYXJuZXNzIl0gPSAiV2ViRHJpdmVyVGVzdGhhcm5lc3NFeGVjdXRv
ciIgICMgbm9xYTogRjgyMQorX193cHRydW5uZXJfX1siZXhlY3V0b3IiXVsicmVmdGVzdCJdID0g
IldlYkRyaXZlclJlZlRlc3RFeGVjdXRvciIgICMgbm9xYTogRjgyMQpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIv
d3B0cnVubmVyL2Jyb3dzZXJzL2VkZ2VjaHJvbWl1bS5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9icm93c2Vy
cy9lZGdlY2hyb21pdW0ucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjM2ODBiNjc3NGEyNzU5MjQ5MWU2NzFmNTNm
MTQwYjY1ZTE3MDQyYgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9icm93c2Vycy9l
ZGdlY2hyb21pdW0ucHkKQEAgLTAsMCArMSwxMTYgQEAKK2Zyb20gLmJhc2UgaW1wb3J0IEJyb3dz
ZXIsIEV4ZWN1dG9yQnJvd3NlciwgcmVxdWlyZV9hcmcNCitmcm9tIC5iYXNlIGltcG9ydCBnZXRf
dGltZW91dF9tdWx0aXBsaWVyICAgIyBub3FhOiBGNDAxDQorZnJvbSAuLndlYmRyaXZlcl9zZXJ2
ZXIgaW1wb3J0IEVkZ2VDaHJvbWl1bURyaXZlclNlcnZlcg0KK2Zyb20gLi5leGVjdXRvcnMgaW1w
b3J0IGV4ZWN1dG9yX2t3YXJncyBhcyBiYXNlX2V4ZWN1dG9yX2t3YXJncw0KK2Zyb20gLi5leGVj
dXRvcnMuZXhlY3V0b3J3ZWJkcml2ZXIgaW1wb3J0IChXZWJEcml2ZXJUZXN0aGFybmVzc0V4ZWN1
dG9yLCAgIyBub3FhOiBGNDAxDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIFdlYkRyaXZlclJlZlRlc3RFeGVjdXRvcikgICMgbm9xYTogRjQwMQ0KK2Zyb20gLi5l
eGVjdXRvcnMuZXhlY3V0b3JlZGdlY2hyb21pdW0gaW1wb3J0IEVkZ2VDaHJvbWl1bURyaXZlcldk
c3BlY0V4ZWN1dG9yICAjIG5vcWE6IEY0MDENCisNCisNCitfX3dwdHJ1bm5lcl9fID0geyJwcm9k
dWN0IjogImVkZ2VjaHJvbWl1bSIsDQorICAgICAgICAgICAgICAgICAiY2hlY2tfYXJncyI6ICJj
aGVja19hcmdzIiwNCisgICAgICAgICAgICAgICAgICJicm93c2VyIjogIkVkZ2VDaHJvbWl1bUJy
b3dzZXIiLA0KKyAgICAgICAgICAgICAgICAgImV4ZWN1dG9yIjogeyJ0ZXN0aGFybmVzcyI6ICJX
ZWJEcml2ZXJUZXN0aGFybmVzc0V4ZWN1dG9yIiwNCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAicmVmdGVzdCI6ICJXZWJEcml2ZXJSZWZUZXN0RXhlY3V0b3IiLA0KKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICJ3ZHNwZWMiOiAiRWRnZUNocm9taXVtRHJpdmVyV2RzcGVjRXhl
Y3V0b3IifSwNCisgICAgICAgICAgICAgICAgICJicm93c2VyX2t3YXJncyI6ICJicm93c2VyX2t3
YXJncyIsDQorICAgICAgICAgICAgICAgICAiZXhlY3V0b3Jfa3dhcmdzIjogImV4ZWN1dG9yX2t3
YXJncyIsDQorICAgICAgICAgICAgICAgICAiZW52X2V4dHJhcyI6ICJlbnZfZXh0cmFzIiwNCisg
ICAgICAgICAgICAgICAgICJlbnZfb3B0aW9ucyI6ICJlbnZfb3B0aW9ucyIsDQorICAgICAgICAg
ICAgICAgICAidGltZW91dF9tdWx0aXBsaWVyIjogImdldF90aW1lb3V0X211bHRpcGxpZXIiLH0N
CisNCisNCitkZWYgY2hlY2tfYXJncygqKmt3YXJncyk6DQorICAgIHJlcXVpcmVfYXJnKGt3YXJn
cywgIndlYmRyaXZlcl9iaW5hcnkiKQ0KKw0KKw0KK2RlZiBicm93c2VyX2t3YXJncyh0ZXN0X3R5
cGUsIHJ1bl9pbmZvX2RhdGEsIGNvbmZpZywgKiprd2FyZ3MpOg0KKyAgICByZXR1cm4geyJiaW5h
cnkiOiBrd2FyZ3NbImJpbmFyeSJdLA0KKyAgICAgICAgICAgICJ3ZWJkcml2ZXJfYmluYXJ5Ijog
a3dhcmdzWyJ3ZWJkcml2ZXJfYmluYXJ5Il0sDQorICAgICAgICAgICAgIndlYmRyaXZlcl9hcmdz
Ijoga3dhcmdzLmdldCgid2ViZHJpdmVyX2FyZ3MiKX0NCisNCisNCitkZWYgZXhlY3V0b3Jfa3dh
cmdzKHRlc3RfdHlwZSwgc2VydmVyX2NvbmZpZywgY2FjaGVfbWFuYWdlciwgcnVuX2luZm9fZGF0
YSwNCisgICAgICAgICAgICAgICAgICAgICoqa3dhcmdzKToNCisgICAgZXhlY3V0b3Jfa3dhcmdz
ID0gYmFzZV9leGVjdXRvcl9rd2FyZ3ModGVzdF90eXBlLCBzZXJ2ZXJfY29uZmlnLA0KKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYWNoZV9tYW5hZ2VyLCBydW5f
aW5mb19kYXRhLA0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAq
Kmt3YXJncykNCisgICAgZXhlY3V0b3Jfa3dhcmdzWyJjbG9zZV9hZnRlcl9kb25lIl0gPSBUcnVl
DQorICAgIGV4ZWN1dG9yX2t3YXJnc1sic3VwcG9ydHNfZWFnZXJfcGFnZWxvYWQiXSA9IEZhbHNl
DQorDQorICAgIGNhcGFiaWxpdGllcyA9IHsNCisgICAgICAgICJnb29nOmNocm9tZU9wdGlvbnMi
OiB7DQorICAgICAgICAgICAgInByZWZzIjogew0KKyAgICAgICAgICAgICAgICAicHJvZmlsZSI6
IHsNCisgICAgICAgICAgICAgICAgICAgICJkZWZhdWx0X2NvbnRlbnRfc2V0dGluZ192YWx1ZXMi
OiB7DQorICAgICAgICAgICAgICAgICAgICAgICAgInBvcHVwcyI6IDENCisgICAgICAgICAgICAg
ICAgICAgIH0NCisgICAgICAgICAgICAgICAgfQ0KKyAgICAgICAgICAgIH0sDQorICAgICAgICAg
ICAgInVzZUF1dG9tYXRpb25FeHRlbnNpb24iOiBGYWxzZSwNCisgICAgICAgICAgICAiZXhjbHVk
ZVN3aXRjaGVzIjogWyJlbmFibGUtYXV0b21hdGlvbiJdLA0KKyAgICAgICAgICAgICJ3M2MiOiBU
cnVlDQorICAgICAgICB9DQorICAgIH0NCisNCisgICAgaWYgdGVzdF90eXBlID09ICJ0ZXN0aGFy
bmVzcyI6DQorICAgICAgICBjYXBhYmlsaXRpZXNbInBhZ2VMb2FkU3RyYXRlZ3kiXSA9ICJub25l
Ig0KKw0KKyAgICBmb3IgKGt3YXJnLCBjYXBhYmlsaXR5KSBpbiBbKCJiaW5hcnkiLCAiYmluYXJ5
IiksICgiYmluYXJ5X2FyZ3MiLCAiYXJncyIpXToNCisgICAgICAgIGlmIGt3YXJnc1trd2FyZ10g
aXMgbm90IE5vbmU6DQorICAgICAgICAgICAgY2FwYWJpbGl0aWVzWyJnb29nOmNocm9tZU9wdGlv
bnMiXVtjYXBhYmlsaXR5XSA9IGt3YXJnc1trd2FyZ10NCisNCisgICAgaWYga3dhcmdzWyJoZWFk
bGVzcyJdOg0KKyAgICAgICAgaWYgImFyZ3MiIG5vdCBpbiBjYXBhYmlsaXRpZXNbImdvb2c6Y2hy
b21lT3B0aW9ucyJdOg0KKyAgICAgICAgICAgIGNhcGFiaWxpdGllc1siZ29vZzpjaHJvbWVPcHRp
b25zIl1bImFyZ3MiXSA9IFtdDQorICAgICAgICBpZiAiLS1oZWFkbGVzcyIgbm90IGluIGNhcGFi
aWxpdGllc1siZ29vZzpjaHJvbWVPcHRpb25zIl1bImFyZ3MiXToNCisgICAgICAgICAgICBjYXBh
YmlsaXRpZXNbImdvb2c6Y2hyb21lT3B0aW9ucyJdWyJhcmdzIl0uYXBwZW5kKCItLWhlYWRsZXNz
IikNCisNCisgICAgZXhlY3V0b3Jfa3dhcmdzWyJjYXBhYmlsaXRpZXMiXSA9IGNhcGFiaWxpdGll
cw0KKw0KKyAgICByZXR1cm4gZXhlY3V0b3Jfa3dhcmdzDQorDQorDQorZGVmIGVudl9leHRyYXMo
Kiprd2FyZ3MpOg0KKyAgICByZXR1cm4gW10NCisNCisNCitkZWYgZW52X29wdGlvbnMoKToNCisg
ICAgcmV0dXJuIHt9DQorDQorDQorY2xhc3MgRWRnZUNocm9taXVtQnJvd3NlcihCcm93c2VyKToN
CisgICAgIiIiTWljcm9zb2Z0RWRnZSBpcyBiYWNrZWQgYnkgTVNFZGdlRHJpdmVyLCB3aGljaCBp
cyBzdXBwbGllZCB0aHJvdWdoDQorICAgIGBgd3B0cnVubmVyLndlYmRyaXZlci5FZGdlQ2hyb21p
dW1Ecml2ZXJTZXJ2ZXJgYC4NCisgICAgIiIiDQorDQorICAgIGRlZiBfX2luaXRfXyhzZWxmLCBs
b2dnZXIsIGJpbmFyeSwgd2ViZHJpdmVyX2JpbmFyeT0ibXNlZGdlZHJpdmVyIiwNCisgICAgICAg
ICAgICAgICAgIHdlYmRyaXZlcl9hcmdzPU5vbmUpOg0KKyAgICAgICAgIiIiQ3JlYXRlcyBhIG5l
dyByZXByZXNlbnRhdGlvbiBvZiBNaWNyb3NvZnRFZGdlLiAgVGhlIGBiaW5hcnlgIGFyZ3VtZW50
IGdpdmVzDQorICAgICAgICB0aGUgYnJvd3NlciBiaW5hcnkgdG8gdXNlIGZvciB0ZXN0aW5nLiIi
Ig0KKyAgICAgICAgQnJvd3Nlci5fX2luaXRfXyhzZWxmLCBsb2dnZXIpDQorICAgICAgICBzZWxm
LmJpbmFyeSA9IGJpbmFyeQ0KKyAgICAgICAgc2VsZi5zZXJ2ZXIgPSBFZGdlQ2hyb21pdW1Ecml2
ZXJTZXJ2ZXIoc2VsZi5sb2dnZXIsDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBiaW5hcnk9d2ViZHJpdmVyX2JpbmFyeSwNCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGFyZ3M9d2ViZHJpdmVyX2FyZ3MpDQorDQorICAgIGRlZiBzdGFy
dChzZWxmLCAqKmt3YXJncyk6DQorICAgICAgICBzZWxmLnNlcnZlci5zdGFydChibG9jaz1GYWxz
ZSkNCisNCisgICAgZGVmIHN0b3Aoc2VsZiwgZm9yY2U9RmFsc2UpOg0KKyAgICAgICAgc2VsZi5z
ZXJ2ZXIuc3RvcChmb3JjZT1mb3JjZSkNCisNCisgICAgZGVmIHBpZChzZWxmKToNCisgICAgICAg
IHJldHVybiBzZWxmLnNlcnZlci5waWQNCisNCisgICAgZGVmIGlzX2FsaXZlKHNlbGYpOg0KKyAg
ICAgICAgIyBUT0RPKGF0byk6IFRoaXMgb25seSBpbmRpY2F0ZXMgdGhlIGRyaXZlciBpcyBhbGl2
ZSwNCisgICAgICAgICMgYW5kIGRvZXNuJ3Qgc2F5IGFueXRoaW5nIGFib3V0IHdoZXRoZXIgYSBi
cm93c2VyIHNlc3Npb24NCisgICAgICAgICMgaXMgYWN0aXZlLg0KKyAgICAgICAgcmV0dXJuIHNl
bGYuc2VydmVyLmlzX2FsaXZlDQorDQorICAgIGRlZiBjbGVhbnVwKHNlbGYpOg0KKyAgICAgICAg
c2VsZi5zdG9wKCkNCisNCisgICAgZGVmIGV4ZWN1dG9yX2Jyb3dzZXIoc2VsZik6DQorICAgICAg
ICByZXR1cm4gRXhlY3V0b3JCcm93c2VyLCB7IndlYmRyaXZlcl91cmwiOiBzZWxmLnNlcnZlci51
cmx9DQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2Jyb3dzZXJzL2VwaXBoYW55LnB5IGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIv
d3B0cnVubmVyL2Jyb3dzZXJzL2VwaXBoYW55LnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjhhMGU1ZjU3OGIyZmVi
ODcxZGRkNTBhYjA4MTY4YzZiOWQ0NWU0YjAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5u
ZXIvYnJvd3NlcnMvZXBpcGhhbnkucHkKQEAgLTAsMCArMSw3NSBAQAorZnJvbSAuYmFzZSBpbXBv
cnQgZ2V0X3RpbWVvdXRfbXVsdGlwbGllciwgbWF5YmVfYWRkX2FyZ3MsIGNlcnRpZmljYXRlX2Rv
bWFpbl9saXN0ICAjIG5vcWE6IEY0MDEKK2Zyb20gLndlYmtpdCBpbXBvcnQgV2ViS2l0QnJvd3Nl
cgorZnJvbSAuLmV4ZWN1dG9ycyBpbXBvcnQgZXhlY3V0b3Jfa3dhcmdzIGFzIGJhc2VfZXhlY3V0
b3Jfa3dhcmdzCitmcm9tIC4uZXhlY3V0b3JzLmV4ZWN1dG9yd2ViZHJpdmVyIGltcG9ydCAoV2Vi
RHJpdmVyVGVzdGhhcm5lc3NFeGVjdXRvciwgICMgbm9xYTogRjQwMQorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFdlYkRyaXZlclJlZlRlc3RFeGVjdXRvcikgICMg
bm9xYTogRjQwMQorZnJvbSAuLmV4ZWN1dG9ycy5leGVjdXRvcndlYmtpdCBpbXBvcnQgV2ViS2l0
RHJpdmVyV2RzcGVjRXhlY3V0b3IgICMgbm9xYTogRjQwMQorCitfX3dwdHJ1bm5lcl9fID0geyJw
cm9kdWN0IjogImVwaXBoYW55IiwKKyAgICAgICAgICAgICAgICAgImNoZWNrX2FyZ3MiOiAiY2hl
Y2tfYXJncyIsCisgICAgICAgICAgICAgICAgICJicm93c2VyIjogIkVwaXBoYW55QnJvd3NlciIs
CisgICAgICAgICAgICAgICAgICJicm93c2VyX2t3YXJncyI6ICJicm93c2VyX2t3YXJncyIsCisg
ICAgICAgICAgICAgICAgICJleGVjdXRvciI6IHsidGVzdGhhcm5lc3MiOiAiV2ViRHJpdmVyVGVz
dGhhcm5lc3NFeGVjdXRvciIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAicmVmdGVz
dCI6ICJXZWJEcml2ZXJSZWZUZXN0RXhlY3V0b3IiLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIndkc3BlYyI6ICJXZWJLaXREcml2ZXJXZHNwZWNFeGVjdXRvciJ9LAorICAgICAgICAg
ICAgICAgICAiZXhlY3V0b3Jfa3dhcmdzIjogImV4ZWN1dG9yX2t3YXJncyIsCisgICAgICAgICAg
ICAgICAgICJlbnZfZXh0cmFzIjogImVudl9leHRyYXMiLAorICAgICAgICAgICAgICAgICAiZW52
X29wdGlvbnMiOiAiZW52X29wdGlvbnMiLAorICAgICAgICAgICAgICAgICAicnVuX2luZm9fZXh0
cmFzIjogInJ1bl9pbmZvX2V4dHJhcyIsCisgICAgICAgICAgICAgICAgICJ0aW1lb3V0X211bHRp
cGxpZXIiOiAiZ2V0X3RpbWVvdXRfbXVsdGlwbGllciJ9CisKKworZGVmIGNoZWNrX2FyZ3MoKipr
d2FyZ3MpOgorICAgIHBhc3MKKworCitkZWYgYnJvd3Nlcl9rd2FyZ3ModGVzdF90eXBlLCBydW5f
aW5mb19kYXRhLCBjb25maWcsICoqa3dhcmdzKToKKyAgICAjIFdvcmthcm91bmQgZm9yIGh0dHBz
Oi8vZ2l0bGFiLmdub21lLm9yZy9HTk9NRS9saWJzb3VwL2lzc3Vlcy8xNzIKKyAgICB3ZWJkcml2
ZXJfcmVxdWlyZWRfYXJncyA9IFsiLS1ob3N0PTEyNy4wLjAuMSJdCisgICAgd2ViZHJpdmVyX2Fy
Z3MgPSBtYXliZV9hZGRfYXJncyh3ZWJkcml2ZXJfcmVxdWlyZWRfYXJncywga3dhcmdzLmdldCgi
d2ViZHJpdmVyX2FyZ3MiKSkKKyAgICByZXR1cm4geyJiaW5hcnkiOiBrd2FyZ3NbImJpbmFyeSJd
LAorICAgICAgICAgICAgIndlYmRyaXZlcl9iaW5hcnkiOiBrd2FyZ3NbIndlYmRyaXZlcl9iaW5h
cnkiXSwKKyAgICAgICAgICAgICJ3ZWJkcml2ZXJfYXJncyI6IHdlYmRyaXZlcl9hcmdzfQorCisK
K2RlZiBjYXBhYmlsaXRpZXMoc2VydmVyX2NvbmZpZywgKiprd2FyZ3MpOgorICAgIGFyZ3MgPSBr
d2FyZ3MuZ2V0KCJiaW5hcnlfYXJncyIsIFtdKQorICAgIGlmICItLWF1dG9tYXRpb24tbW9kZSIg
bm90IGluIGFyZ3M6CisgICAgICAgIGFyZ3MuYXBwZW5kKCItLWF1dG9tYXRpb24tbW9kZSIpCisK
KyAgICByZXR1cm4geworICAgICAgICAiYnJvd3Nlck5hbWUiOiAiRXBpcGhhbnkiLAorICAgICAg
ICAiYnJvd3NlclZlcnNpb24iOiAiMy4zMS40IiwgICMgRmlyc3QgdmVyc2lvbiB0byBzdXBwb3J0
IGF1dG9tYXRpb24KKyAgICAgICAgInBsYXRmb3JtTmFtZSI6ICJBTlkiLAorICAgICAgICAid2Vi
a2l0Z3RrOmJyb3dzZXJPcHRpb25zIjogeworICAgICAgICAgICAgImJpbmFyeSI6IGt3YXJnc1si
YmluYXJ5Il0sCisgICAgICAgICAgICAiYXJncyI6IGFyZ3MsCisgICAgICAgICAgICAiY2VydGlm
aWNhdGVzIjogY2VydGlmaWNhdGVfZG9tYWluX2xpc3Qoc2VydmVyX2NvbmZpZy5kb21haW5zX3Nl
dCwga3dhcmdzWyJob3N0X2NlcnRfcGF0aCJdKX19CisKKworZGVmIGV4ZWN1dG9yX2t3YXJncyh0
ZXN0X3R5cGUsIHNlcnZlcl9jb25maWcsIGNhY2hlX21hbmFnZXIsIHJ1bl9pbmZvX2RhdGEsCisg
ICAgICAgICAgICAgICAgICAgICoqa3dhcmdzKToKKyAgICBleGVjdXRvcl9rd2FyZ3MgPSBiYXNl
X2V4ZWN1dG9yX2t3YXJncyh0ZXN0X3R5cGUsIHNlcnZlcl9jb25maWcsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FjaGVfbWFuYWdlciwgcnVuX2luZm9fZGF0
YSwgKiprd2FyZ3MpCisgICAgZXhlY3V0b3Jfa3dhcmdzWyJjbG9zZV9hZnRlcl9kb25lIl0gPSBU
cnVlCisgICAgZXhlY3V0b3Jfa3dhcmdzWyJjYXBhYmlsaXRpZXMiXSA9IGNhcGFiaWxpdGllcyhz
ZXJ2ZXJfY29uZmlnLCAqKmt3YXJncykKKyAgICByZXR1cm4gZXhlY3V0b3Jfa3dhcmdzCisKKwor
ZGVmIGVudl9leHRyYXMoKiprd2FyZ3MpOgorICAgIHJldHVybiBbXQorCisKK2RlZiBlbnZfb3B0
aW9ucygpOgorICAgIHJldHVybiB7fQorCisKK2RlZiBydW5faW5mb19leHRyYXMoKiprd2FyZ3Mp
OgorICAgIHJldHVybiB7IndlYmtpdF9wb3J0IjogImd0ayJ9CisKKworY2xhc3MgRXBpcGhhbnlC
cm93c2VyKFdlYktpdEJyb3dzZXIpOgorICAgIGRlZiBfX2luaXRfXyhzZWxmLCBsb2dnZXIsIGJp
bmFyeT1Ob25lLCB3ZWJkcml2ZXJfYmluYXJ5PU5vbmUsCisgICAgICAgICAgICAgICAgIHdlYmRy
aXZlcl9hcmdzPU5vbmUpOgorICAgICAgICBXZWJLaXRCcm93c2VyLl9faW5pdF9fKHNlbGYsIGxv
Z2dlciwgYmluYXJ5LCB3ZWJkcml2ZXJfYmluYXJ5LAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHdlYmRyaXZlcl9hcmdzKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2Jyb3dzZXJz
L2Zlbm5lYy5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9icm93c2Vycy9mZW5uZWMucHkKZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IGRiMjcxYWNjNTBlYTA4ZTYxZWZkMDk4NDhhOWZmNzhiNTNiOGVk
MWUuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0
cnVubmVyL2Jyb3dzZXJzL2Zlbm5lYy5weQorKysgL2Rldi9udWxsCkBAIC0xLDI1NCArMCwwIEBA
Ci1pbXBvcnQgb3MKLWltcG9ydCBzaWduYWwKLWltcG9ydCBzeXMKLWltcG9ydCB0ZW1wZmlsZQot
aW1wb3J0IHRyYWNlYmFjawotCi1pbXBvcnQgbW96bmV0d29yawotZnJvbSBtb3pwcm9jZXNzIGlt
cG9ydCBQcm9jZXNzSGFuZGxlcgotZnJvbSBtb3pwcm9maWxlIGltcG9ydCBGaXJlZm94UHJvZmls
ZQotZnJvbSBtb3pydW5uZXIgaW1wb3J0IEZlbm5lY0VtdWxhdG9yUnVubmVyCi0KLWZyb20gc2Vy
dmUuc2VydmUgaW1wb3J0IG1ha2VfaG9zdHNfZmlsZQotCi1mcm9tIC5iYXNlIGltcG9ydCAoZ2V0
X2ZyZWVfcG9ydCwKLSAgICAgICAgICAgICAgICAgICBjbWRfYXJnLAotICAgICAgICAgICAgICAg
ICAgIGJyb3dzZXJfY29tbWFuZCkKLWZyb20gLi5leGVjdXRvcnMuZXhlY3V0b3JtYXJpb25ldHRl
IGltcG9ydCBNYXJpb25ldHRlVGVzdGhhcm5lc3NFeGVjdXRvciAgIyBub3FhOiBGNDAxCi1mcm9t
IC5maXJlZm94IGltcG9ydCAoZ2V0X3RpbWVvdXRfbXVsdGlwbGllciwgdXBkYXRlX3Byb3BlcnRp
ZXMsIGV4ZWN1dG9yX2t3YXJncywgRmlyZWZveEJyb3dzZXIpICAjIG5vcWE6IEY0MDEKLQotCi1f
X3dwdHJ1bm5lcl9fID0geyJwcm9kdWN0IjogImZlbm5lYyIsCi0gICAgICAgICAgICAgICAgICJj
aGVja19hcmdzIjogImNoZWNrX2FyZ3MiLAotICAgICAgICAgICAgICAgICAiYnJvd3NlciI6ICJG
ZW5uZWNCcm93c2VyIiwKLSAgICAgICAgICAgICAgICAgImV4ZWN1dG9yIjogeyJ0ZXN0aGFybmVz
cyI6ICJNYXJpb25ldHRlVGVzdGhhcm5lc3NFeGVjdXRvciJ9LAotICAgICAgICAgICAgICAgICAi
YnJvd3Nlcl9rd2FyZ3MiOiAiYnJvd3Nlcl9rd2FyZ3MiLAotICAgICAgICAgICAgICAgICAiZXhl
Y3V0b3Jfa3dhcmdzIjogImV4ZWN1dG9yX2t3YXJncyIsCi0gICAgICAgICAgICAgICAgICJlbnZf
ZXh0cmFzIjogImVudl9leHRyYXMiLAotICAgICAgICAgICAgICAgICAiZW52X29wdGlvbnMiOiAi
ZW52X29wdGlvbnMiLAotICAgICAgICAgICAgICAgICAicnVuX2luZm9fZXh0cmFzIjogInJ1bl9p
bmZvX2V4dHJhcyIsCi0gICAgICAgICAgICAgICAgICJ1cGRhdGVfcHJvcGVydGllcyI6ICJ1cGRh
dGVfcHJvcGVydGllcyJ9Ci0KLWNsYXNzIEZlbm5lY1Byb2ZpbGUoRmlyZWZveFByb2ZpbGUpOgot
ICAgICMgV1BULXNwZWNpZmljIHByZWZzIGFyZSBzZXQgaW4gRmVubmVjQnJvd3Nlci5zdGFydCgp
Ci0gICAgRmlyZWZveFByb2ZpbGUucHJlZmVyZW5jZXMudXBkYXRlKHsKLSAgICAgICAgIyBNYWtl
IHN1cmUgU2hpZWxkIGRvZXNuJ3QgaGl0IHRoZSBuZXR3b3JrLgotICAgICAgICAiYXBwLm5vcm1h
bmR5LmFwaV91cmwiOiAiIiwKLSAgICAgICAgIyBJbmNyZWFzZSB0aGUgQVBaIGNvbnRlbnQgcmVz
cG9uc2UgdGltZW91dCBpbiB0ZXN0cyB0byAxIG1pbnV0ZS4KLSAgICAgICAgImFwei5jb250ZW50
X3Jlc3BvbnNlX3RpbWVvdXQiOiA2MDAwMCwKLSAgICAgICAgIyBFbmFibGUgb3V0cHV0IG9mIGR1
bXAoKQotICAgICAgICAiYnJvd3Nlci5kb20ud2luZG93LmR1bXAuZW5hYmxlZCI6IFRydWUsCi0g
ICAgICAgICMgRGlzYWJsZSBzYWZlYnJvd3NpbmcgY29tcG9uZW50cwotICAgICAgICAiYnJvd3Nl
ci5zYWZlYnJvd3NpbmcuYmxvY2tlZFVSSXMuZW5hYmxlZCI6IEZhbHNlLAotICAgICAgICAiYnJv
d3Nlci5zYWZlYnJvd3NpbmcuZG93bmxvYWRzLmVuYWJsZWQiOiBGYWxzZSwKLSAgICAgICAgImJy
b3dzZXIuc2FmZWJyb3dzaW5nLnBhc3N3b3Jkcy5lbmFibGVkIjogRmFsc2UsCi0gICAgICAgICJi
cm93c2VyLnNhZmVicm93c2luZy5tYWx3YXJlLmVuYWJsZWQiOiBGYWxzZSwKLSAgICAgICAgImJy
b3dzZXIuc2FmZWJyb3dzaW5nLnBoaXNoaW5nLmVuYWJsZWQiOiBGYWxzZSwKLSAgICAgICAgIyBE
byBub3QgcmVzdG9yZSB0aGUgbGFzdCBvcGVuIHNldCBvZiB0YWJzIGlmIHRoZSBicm93c2VyIGhh
cyBjcmFzaGVkCi0gICAgICAgICJicm93c2VyLnNlc3Npb25zdG9yZS5yZXN1bWVfZnJvbV9jcmFz
aCI6IEZhbHNlLAotICAgICAgICAjIERpc2FibGUgQW5kcm9pZCBzbmlwcGV0cwotICAgICAgICAi
YnJvd3Nlci5zbmlwcGV0cy5lbmFibGVkIjogRmFsc2UsCi0gICAgICAgICJicm93c2VyLnNuaXBw
ZXRzLnN5bmNQcm9tby5lbmFibGVkIjogRmFsc2UsCi0gICAgICAgICJicm93c2VyLnNuaXBwZXRz
LmZpcnN0cnVuSG9tZXBhZ2UuZW5hYmxlZCI6IEZhbHNlLAotICAgICAgICAjIERvIG5vdCBhbGxv
dyBiYWNrZ3JvdW5kIHRhYnMgdG8gYmUgem9tYmlmaWVkLCBvdGhlcndpc2UgZm9yIHRlc3RzIHRo
YXQKLSAgICAgICAgIyBvcGVuIGFkZGl0aW9uYWwgdGFicywgdGhlIHRlc3QgaGFybmVzcyB0YWIg
aXRzZWxmIG1pZ2h0IGdldCB1bmxvYWRlZAotICAgICAgICAiYnJvd3Nlci50YWJzLmRpc2FibGVC
YWNrZ3JvdW5kWm9tYmlmaWNhdGlvbiI6IFRydWUsCi0gICAgICAgICMgRGlzYWJsZSBlMTBzIGJ5
IGRlZmF1bHQKLSAgICAgICAgImJyb3dzZXIudGFicy5yZW1vdGUuYXV0b3N0YXJ0IjogRmFsc2Us
Ci0gICAgICAgICMgRG9uJ3Qgd2FybiB3aGVuIGV4aXRpbmcgdGhlIGJyb3dzZXIKLSAgICAgICAg
ImJyb3dzZXIud2Fybk9uUXVpdCI6IEZhbHNlLAotICAgICAgICAjIERvbid0IHNlbmQgRmlyZWZv
eCBoZWFsdGggcmVwb3J0cyB0byB0aGUgcHJvZHVjdGlvbiBzZXJ2ZXIKLSAgICAgICAgImRhdGFy
ZXBvcnRpbmcuaGVhbHRocmVwb3J0LmFib3V0LnJlcG9ydFVybCI6ICJodHRwOi8vJShzZXJ2ZXIp
cy9kdW1teS9hYm91dGhlYWx0aHJlcG9ydC8iLAotICAgICAgICAjIEF1dG9tYXRpY2FsbHkgdW5s
b2FkIGJlZm9yZXVubG9hZCBhbGVydHMKLSAgICAgICAgImRvbS5kaXNhYmxlX2JlZm9yZXVubG9h
ZCI6IFRydWUsCi0gICAgICAgICMgRGlzYWJsZSB0aGUgUHJvY2Vzc0hhbmdNb25pdG9yCi0gICAg
ICAgICJkb20uaXBjLnJlcG9ydFByb2Nlc3NIYW5ncyI6IEZhbHNlLAotICAgICAgICAjIE5vIHNs
b3cgc2NyaXB0IGRpYWxvZ3MKLSAgICAgICAgImRvbS5tYXhfY2hyb21lX3NjcmlwdF9ydW5fdGlt
ZSI6IDAsCi0gICAgICAgICJkb20ubWF4X3NjcmlwdF9ydW5fdGltZSI6IDAsCi0gICAgICAgICMg
TWFrZSBzdXJlIG9wZW5pbmcgYWJvdXQ6YWRkb25zIHdvbiJ0IGhpdCB0aGUgbmV0d29yawotICAg
ICAgICAiZXh0ZW5zaW9ucy53ZWJzZXJ2aWNlLmRpc2NvdmVyVVJMIjogImh0dHA6Ly8lKHNlcnZl
cilzL2R1bW15L2Rpc2NvdmVyeVVSTCIsCi0gICAgICAgICMgTm8gaGFuZyBtb25pdG9yCi0gICAg
ICAgICJoYW5nbW9uaXRvci50aW1lb3V0IjogMCwKLQotICAgICAgICAiamF2YXNjcmlwdC5vcHRp
b25zLnNob3dJbkNvbnNvbGUiOiBUcnVlLAotICAgICAgICAjIEVuc3VyZSBibG9ja2xpc3QgdXBk
YXRlcyBkb24ndCBoaXQgdGhlIG5ldHdvcmsKLSAgICAgICAgInNlcnZpY2VzLnNldHRpbmdzLnNl
cnZlciI6ICJodHRwOi8vJShzZXJ2ZXIpcy9kdW1teS9ibG9ja2xpc3QvIiwKLSAgICAgICAgIyBE
aXNhYmxlIHBhc3N3b3JkIGNhcHR1cmUsIHNvIHRoYXQgdGVzdHMgdGhhdCBpbmNsdWRlIGZvcm1z
IGFyZW4idAotICAgICAgICAjIGluZmx1ZW5jZWQgYnkgdGhlIHByZXNlbmNlIG9mIHRoZSBwZXJz
aXN0ZW50IGRvb3JoYW5nZXIgbm90aWZpY2F0aW9uCi0gICAgICAgICJzaWdub24ucmVtZW1iZXJT
aWdub25zIjogRmFsc2UsCi0gICAgfSkKLQotCi1kZWYgY2hlY2tfYXJncygqKmt3YXJncyk6Ci0g
ICAgcGFzcwotCi1kZWYgYnJvd3Nlcl9rd2FyZ3ModGVzdF90eXBlLCBydW5faW5mb19kYXRhLCBj
b25maWcsICoqa3dhcmdzKToKLSAgICByZXR1cm4geyJwYWNrYWdlX25hbWUiOiBrd2FyZ3NbInBh
Y2thZ2VfbmFtZSJdLAotICAgICAgICAgICAgImRldmljZV9zZXJpYWwiOiBrd2FyZ3NbImRldmlj
ZV9zZXJpYWwiXSwKLSAgICAgICAgICAgICJwcmVmc19yb290Ijoga3dhcmdzWyJwcmVmc19yb290
Il0sCi0gICAgICAgICAgICAiZXh0cmFfcHJlZnMiOiBrd2FyZ3NbImV4dHJhX3ByZWZzIl0sCi0g
ICAgICAgICAgICAidGVzdF90eXBlIjogdGVzdF90eXBlLAotICAgICAgICAgICAgImRlYnVnX2lu
Zm8iOiBrd2FyZ3NbImRlYnVnX2luZm8iXSwKLSAgICAgICAgICAgICJzeW1ib2xzX3BhdGgiOiBr
d2FyZ3NbInN5bWJvbHNfcGF0aCJdLAotICAgICAgICAgICAgInN0YWNrd2Fsa19iaW5hcnkiOiBr
d2FyZ3NbInN0YWNrd2Fsa19iaW5hcnkiXSwKLSAgICAgICAgICAgICJjZXJ0dXRpbF9iaW5hcnki
OiBrd2FyZ3NbImNlcnR1dGlsX2JpbmFyeSJdLAotICAgICAgICAgICAgImNhX2NlcnRpZmljYXRl
X3BhdGgiOiBrd2FyZ3NbInNzbF9lbnYiXS5jYV9jZXJ0X3BhdGgoKSwKLSAgICAgICAgICAgICJz
dGFja2ZpeF9kaXIiOiBrd2FyZ3NbInN0YWNrZml4X2RpciJdLAotICAgICAgICAgICAgImJpbmFy
eV9hcmdzIjoga3dhcmdzWyJiaW5hcnlfYXJncyJdLAotICAgICAgICAgICAgInRpbWVvdXRfbXVs
dGlwbGllciI6IGdldF90aW1lb3V0X211bHRpcGxpZXIodGVzdF90eXBlLAotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcnVuX2luZm9fZGF0
YSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICoqa3dhcmdzKSwKLSAgICAgICAgICAgICJsZWFrX2NoZWNrIjoga3dhcmdzWyJsZWFrX2No
ZWNrIl0sCi0gICAgICAgICAgICAic3R5bG9fdGhyZWFkcyI6IGt3YXJnc1sic3R5bG9fdGhyZWFk
cyJdLAotICAgICAgICAgICAgImNoYW9zX21vZGVfZmxhZ3MiOiBrd2FyZ3NbImNoYW9zX21vZGVf
ZmxhZ3MiXSwKLSAgICAgICAgICAgICJjb25maWciOiBjb25maWd9Ci0KLQotZGVmIGVudl9leHRy
YXMoKiprd2FyZ3MpOgotICAgIHJldHVybiBbXQotCi0KLWRlZiBydW5faW5mb19leHRyYXMoKipr
d2FyZ3MpOgotICAgIHJldHVybiB7ImUxMHMiOiBGYWxzZSwKLSAgICAgICAgICAgICJoZWFkbGVz
cyI6IEZhbHNlfQotCi0KLWRlZiBlbnZfb3B0aW9ucygpOgotICAgICMgVGhlIHNlcnZlciBob3N0
IGlzIHNldCB0byBwdWJsaWMgbG9jYWxob3N0IElQIHNvIHRoYXQgcmVzb3VyY2VzIGNhbiBiZSBh
Y2Nlc3NlZAotICAgICMgZnJvbSBBbmRyb2lkIGVtdWxhdG9yCi0gICAgcmV0dXJuIHsic2VydmVy
X2hvc3QiOiBtb3puZXR3b3JrLmdldF9pcCgpLAotICAgICAgICAgICAgImJpbmRfYWRkcmVzcyI6
IEZhbHNlLAotICAgICAgICAgICAgInN1cHBvcnRzX2RlYnVnZ2VyIjogVHJ1ZX0KLQotCi1kZWYg
d3JpdGVfaG9zdHNfZmlsZShjb25maWcsIGRldmljZSk6Ci0gICAgbmV3X2hvc3RzID0gbWFrZV9o
b3N0c19maWxlKGNvbmZpZywgbW96bmV0d29yay5nZXRfaXAoKSkKLSAgICBjdXJyZW50X2hvc3Rz
ID0gZGV2aWNlLmdldF9maWxlKCIvZXRjL2hvc3RzIikKLSAgICBpZiBuZXdfaG9zdHMgPT0gY3Vy
cmVudF9ob3N0czoKLSAgICAgICAgcmV0dXJuCi0gICAgaG9zdHNfZmQsIGhvc3RzX3BhdGggPSB0
ZW1wZmlsZS5ta3N0ZW1wKCkKLSAgICB0cnk6Ci0gICAgICAgIHdpdGggb3MuZmRvcGVuKGhvc3Rz
X2ZkLCAidyIpIGFzIGY6Ci0gICAgICAgICAgICBmLndyaXRlKG5ld19ob3N0cykKLSAgICAgICAg
ZGV2aWNlLnJlbW91bnQoKQotICAgICAgICBkZXZpY2UucHVzaChob3N0c19wYXRoLCAiL2V0Yy9o
b3N0cyIpCi0gICAgZmluYWxseToKLSAgICAgICAgb3MucmVtb3ZlKGhvc3RzX3BhdGgpCi0KLQot
Y2xhc3MgRmVubmVjQnJvd3NlcihGaXJlZm94QnJvd3Nlcik6Ci0gICAgdXNlZF9wb3J0cyA9IHNl
dCgpCi0gICAgaW5pdF90aW1lb3V0ID0gMzAwCi0gICAgc2h1dGRvd25fdGltZW91dCA9IDYwCi0K
LSAgICBkZWYgX19pbml0X18oc2VsZiwgbG9nZ2VyLCBwcmVmc19yb290LCB0ZXN0X3R5cGUsIHBh
Y2thZ2VfbmFtZT1Ob25lLAotICAgICAgICAgICAgICAgICBkZXZpY2Vfc2VyaWFsPSJlbXVsYXRv
ci01NDQ0IiwgKiprd2FyZ3MpOgotICAgICAgICBGaXJlZm94QnJvd3Nlci5fX2luaXRfXyhzZWxm
LCBsb2dnZXIsIE5vbmUsIHByZWZzX3Jvb3QsIHRlc3RfdHlwZSwgKiprd2FyZ3MpCi0gICAgICAg
IHNlbGYuX3BhY2thZ2VfbmFtZSA9IHBhY2thZ2VfbmFtZQotICAgICAgICBzZWxmLmRldmljZV9z
ZXJpYWwgPSBkZXZpY2Vfc2VyaWFsCi0KLSAgICBAcHJvcGVydHkKLSAgICBkZWYgcGFja2FnZV9u
YW1lKHNlbGYpOgotICAgICAgICAiIiIKLSAgICAgICAgTmFtZSBvZiBhcHAgdG8gcnVuIG9uIGVt
dWxhdG9yLgotICAgICAgICAiIiIKLSAgICAgICAgaWYgc2VsZi5fcGFja2FnZV9uYW1lIGlzIE5v
bmU6Ci0gICAgICAgICAgICBzZWxmLl9wYWNrYWdlX25hbWUgPSAib3JnLm1vemlsbGEuZmVubmVj
IgotICAgICAgICAgICAgdXNlciA9IG9zLmdldGVudigiVVNFUiIpCi0gICAgICAgICAgICBpZiB1
c2VyOgotICAgICAgICAgICAgICAgIHNlbGYuX3BhY2thZ2VfbmFtZSArPSAiXyIgKyB1c2VyCi0g
ICAgICAgIHJldHVybiBzZWxmLl9wYWNrYWdlX25hbWUKLQotICAgIGRlZiBzdGFydChzZWxmLCAq
Kmt3YXJncyk6Ci0gICAgICAgIGlmIHNlbGYubWFyaW9uZXR0ZV9wb3J0IGlzIE5vbmU6Ci0gICAg
ICAgICAgICBzZWxmLm1hcmlvbmV0dGVfcG9ydCA9IGdldF9mcmVlX3BvcnQoMjgyOCwgZXhjbHVk
ZT1zZWxmLnVzZWRfcG9ydHMpCi0gICAgICAgICAgICBzZWxmLnVzZWRfcG9ydHMuYWRkKHNlbGYu
bWFyaW9uZXR0ZV9wb3J0KQotCi0gICAgICAgIGVudiA9IHt9Ci0gICAgICAgIGVudlsiTU9aX0NS
QVNIUkVQT1JURVIiXSA9ICIxIgotICAgICAgICBlbnZbIk1PWl9DUkFTSFJFUE9SVEVSX1NIVVRE
T1dOIl0gPSAiMSIKLSAgICAgICAgZW52WyJNT1pfRElTQUJMRV9OT05MT0NBTF9DT05ORUNUSU9O
UyJdID0gIjEiCi0gICAgICAgIGVudlsiU1RZTE9fVEhSRUFEUyJdID0gc3RyKHNlbGYuc3R5bG9f
dGhyZWFkcykKLSAgICAgICAgaWYgc2VsZi5jaGFvc19tb2RlX2ZsYWdzIGlzIG5vdCBOb25lOgot
ICAgICAgICAgICAgZW52WyJNT1pfQ0hBT1NNT0RFIl0gPSBzdHIoc2VsZi5jaGFvc19tb2RlX2Zs
YWdzKQotCi0gICAgICAgIHByZWZlcmVuY2VzID0gc2VsZi5sb2FkX3ByZWZzKCkKLQotICAgICAg
ICBzZWxmLnByb2ZpbGUgPSBGZW5uZWNQcm9maWxlKHByZWZlcmVuY2VzPXByZWZlcmVuY2VzKQot
ICAgICAgICBzZWxmLnByb2ZpbGUuc2V0X3ByZWZlcmVuY2VzKHsibWFyaW9uZXR0ZS5wb3J0Ijog
c2VsZi5tYXJpb25ldHRlX3BvcnQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICJkb20uZGlzYWJsZV9vcGVuX2R1cmluZ19sb2FkIjogRmFsc2UsCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICJwbGFjZXMuaGlzdG9yeS5lbmFibGVkIjogRmFsc2Us
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJkb20uc2VuZF9hZnRlcl9w
YWludF90b19jb250ZW50IjogVHJ1ZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIm5ldHdvcmsucHJlbG9hZCI6IFRydWV9KQotCi0gICAgICAgIGlmIHNlbGYubGVha19j
aGVjayBhbmQga3dhcmdzLmdldCgiY2hlY2tfbGVha3MiLCBUcnVlKToKLSAgICAgICAgICAgIHNl
bGYubGVha19yZXBvcnRfZmlsZSA9IG9zLnBhdGguam9pbihzZWxmLnByb2ZpbGUucHJvZmlsZSwg
InJ1bnRlc3RzX2xlYWtzLmxvZyIpCi0gICAgICAgICAgICBpZiBvcy5wYXRoLmV4aXN0cyhzZWxm
LmxlYWtfcmVwb3J0X2ZpbGUpOgotICAgICAgICAgICAgICAgIG9zLnJlbW92ZShzZWxmLmxlYWtf
cmVwb3J0X2ZpbGUpCi0gICAgICAgICAgICBlbnZbIlhQQ09NX01FTV9CTE9BVF9MT0ciXSA9IHNl
bGYubGVha19yZXBvcnRfZmlsZQotICAgICAgICBlbHNlOgotICAgICAgICAgICAgc2VsZi5sZWFr
X3JlcG9ydF9maWxlID0gTm9uZQotCi0gICAgICAgIGlmIHNlbGYuY2FfY2VydGlmaWNhdGVfcGF0
aCBpcyBub3QgTm9uZToKLSAgICAgICAgICAgIHNlbGYuc2V0dXBfc3NsKCkKLQotICAgICAgICBk
ZWJ1Z19hcmdzLCBjbWQgPSBicm93c2VyX2NvbW1hbmQoc2VsZi5wYWNrYWdlX25hbWUsCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmJpbmFyeV9hcmdzIGlm
IHNlbGYuYmluYXJ5X2FyZ3MgZWxzZSBbXSArCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBbY21kX2FyZygibWFyaW9uZXR0ZSIpLCAiYWJvdXQ6YmxhbmsiXSwKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuZGVidWdfaW5mbykK
LQotICAgICAgICBzZWxmLnJ1bm5lciA9IEZlbm5lY0VtdWxhdG9yUnVubmVyKGFwcD1zZWxmLnBh
Y2thZ2VfbmFtZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBw
cm9maWxlPXNlbGYucHJvZmlsZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBjbWRhcmdzPWNtZFsxOl0sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgZW52PWVudiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBzeW1ib2xzX3BhdGg9c2VsZi5zeW1ib2xzX3BhdGgsCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VyaWFsPXNlbGYuZGV2aWNlX3NlcmlhbCwKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIFRPRE8gLSBjaG9vc2Ug
YXBwcm9wcmlhdGUgbG9nIGRpcgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGxvZ2Rpcj1vcy5nZXRjd2QoKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBwcm9jZXNzX2NsYXNzPVByb2Nlc3NIYW5kbGVyLAotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByb2Nlc3NfYXJncz17InByb2Nlc3NPdXRw
dXRMaW5lIjogW3NlbGYub25fb3V0cHV0XX0pCi0KLSAgICAgICAgc2VsZi5sb2dnZXIuZGVidWco
IlN0YXJ0aW5nIEZlbm5lYyIpCi0gICAgICAgICMgY29ubmVjdCB0byBhIHJ1bm5pbmcgZW11bGF0
b3IKLSAgICAgICAgc2VsZi5ydW5uZXIuZGV2aWNlLmNvbm5lY3QoKQotCi0gICAgICAgIHdyaXRl
X2hvc3RzX2ZpbGUoc2VsZi5jb25maWcsIHNlbGYucnVubmVyLmRldmljZS5kZXZpY2UpCi0KLSAg
ICAgICAgc2VsZi5ydW5uZXIuc3RhcnQoZGVidWdfYXJncz1kZWJ1Z19hcmdzLCBpbnRlcmFjdGl2
ZT1zZWxmLmRlYnVnX2luZm8gYW5kIHNlbGYuZGVidWdfaW5mby5pbnRlcmFjdGl2ZSkKLQotICAg
ICAgICAjIGdlY2tvX2xvZyBjb21lcyBmcm9tIGxvZ2NhdCB3aGVuIHJ1bm5pbmcgd2l0aCBkZXZp
Y2UvZW11bGF0b3IKLSAgICAgICAgbG9nY2F0X2FyZ3MgPSB7Ci0gICAgICAgICAgICAiZmlsdGVy
c3BlYyI6ICJHZWNrbyIsCi0gICAgICAgICAgICAic2VyaWFsIjogc2VsZi5ydW5uZXIuZGV2aWNl
LmFwcF9jdHguZGV2aWNlX3NlcmlhbAotICAgICAgICB9Ci0gICAgICAgICMgVE9ETyBzZXR0aW5n
IGxvZ2NhdF9hcmdzWyJsb2dmaWxlIl0geWllbGRzIGFuIGFsbW9zdCBlbXB0eSBmaWxlCi0gICAg
ICAgICMgZXZlbiB3aXRob3V0IGZpbHRlcnNwZWMKLSAgICAgICAgbG9nY2F0X2FyZ3NbInN0cmVh
bSJdID0gc3lzLnN0ZG91dAotICAgICAgICBzZWxmLnJ1bm5lci5kZXZpY2Uuc3RhcnRfbG9nY2F0
KCoqbG9nY2F0X2FyZ3MpCi0KLSAgICAgICAgc2VsZi5ydW5uZXIuZGV2aWNlLmRldmljZS5mb3J3
YXJkKAotICAgICAgICAgICAgbG9jYWw9InRjcDp7fSIuZm9ybWF0KHNlbGYubWFyaW9uZXR0ZV9w
b3J0KSwKLSAgICAgICAgICAgIHJlbW90ZT0idGNwOnt9Ii5mb3JtYXQoc2VsZi5tYXJpb25ldHRl
X3BvcnQpKQotCi0gICAgICAgIHNlbGYubG9nZ2VyLmRlYnVnKCJGZW5uZWMgU3RhcnRlZCIpCi0K
LSAgICBkZWYgc3RvcChzZWxmLCBmb3JjZT1GYWxzZSk6Ci0gICAgICAgIGlmIHNlbGYucnVubmVy
IGlzIG5vdCBOb25lOgotICAgICAgICAgICAgdHJ5OgotICAgICAgICAgICAgICAgIGlmIHNlbGYu
cnVubmVyLmRldmljZS5jb25uZWN0ZWQ6Ci0gICAgICAgICAgICAgICAgICAgIHNlbGYucnVubmVy
LmRldmljZS5kZXZpY2UucmVtb3ZlX2ZvcndhcmRzKAotICAgICAgICAgICAgICAgICAgICAgICAg
InRjcDp7fSIuZm9ybWF0KHNlbGYubWFyaW9uZXR0ZV9wb3J0KSkKLSAgICAgICAgICAgIGV4Y2Vw
dCBFeGNlcHRpb246Ci0gICAgICAgICAgICAgICAgdHJhY2ViYWNrLnByaW50X2V4Y2VwdGlvbigq
c3lzLmV4Y19pbmZvKCkpCi0gICAgICAgICAgICAjIFdlIGFzc3VtZSB0aGF0IHN0b3BwaW5nIHRo
ZSBydW5uZXIgcHJvbXB0cyB0aGUKLSAgICAgICAgICAgICMgYnJvd3NlciB0byBzaHV0IGRvd24u
IFRoaXMgYWxsb3dzIHRoZSBsZWFrIGxvZyB0byBiZSB3cml0dGVuCi0gICAgICAgICAgICBmb3Ig
Y2xlYW4sIHN0b3BfZiBpbiBbKFRydWUsIGxhbWJkYTogc2VsZi5ydW5uZXIud2FpdChzZWxmLnNo
dXRkb3duX3RpbWVvdXQpKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoRmFs
c2UsIGxhbWJkYTogc2VsZi5ydW5uZXIuc3RvcChzaWduYWwuU0lHVEVSTSkpLAotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIChGYWxzZSwgbGFtYmRhOiBzZWxmLnJ1bm5lci5zdG9w
KHNpZ25hbC5TSUdLSUxMKSldOgotICAgICAgICAgICAgICAgIGlmIG5vdCBmb3JjZSBvciBub3Qg
Y2xlYW46Ci0gICAgICAgICAgICAgICAgICAgIHJldGNvZGUgPSBzdG9wX2YoKQotICAgICAgICAg
ICAgICAgICAgICBpZiByZXRjb2RlIGlzIG5vdCBOb25lOgotICAgICAgICAgICAgICAgICAgICAg
ICAgc2VsZi5sb2dnZXIuaW5mbygiQnJvd3NlciBleGl0ZWQgd2l0aCByZXR1cm4gY29kZSAlcyIg
JSByZXRjb2RlKQotICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWsKLSAgICAgICAgc2VsZi5s
b2dnZXIuZGVidWcoInN0b3BwZWQiKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2Jyb3dzZXJz
L2ZpcmVmb3gucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvYnJvd3NlcnMvZmlyZWZveC5weQppbmRleCAwNGYy
Y2U4NGE0MTYxOWEyM2UyOWQ1NDM2NDMwYjExZmEyYjZkN2M1Li41ZTNlNDFlYjU1ZmM4MjU2N2Jh
OTU0M2MyODNlMzQ2MzViZDhiMTEyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvYnJvd3NlcnMv
ZmlyZWZveC5weQorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvYnJvd3NlcnMvZmlyZWZveC5weQpAQCAtNyw2
ICs3LDcgQEAgaW1wb3J0IHN5cwogCiBpbXBvcnQgbW96aW5mbwogaW1wb3J0IG1vemxlYWsKK2lt
cG9ydCBtb3p2ZXJzaW9uCiBmcm9tIG1venByb2Nlc3MgaW1wb3J0IFByb2Nlc3NIYW5kbGVyCiBm
cm9tIG1venByb2ZpbGUgaW1wb3J0IEZpcmVmb3hQcm9maWxlLCBQcmVmZXJlbmNlcwogZnJvbSBt
b3pydW5uZXIgaW1wb3J0IEZpcmVmb3hSdW5uZXIKQEAgLTM4LDcgKzM5LDggQEAgX193cHRydW5u
ZXJfXyA9IHsicHJvZHVjdCI6ICJmaXJlZm94IiwKICAgICAgICAgICAgICAgICAgImVudl9leHRy
YXMiOiAiZW52X2V4dHJhcyIsCiAgICAgICAgICAgICAgICAgICJlbnZfb3B0aW9ucyI6ICJlbnZf
b3B0aW9ucyIsCiAgICAgICAgICAgICAgICAgICJydW5faW5mb19leHRyYXMiOiAicnVuX2luZm9f
ZXh0cmFzIiwKLSAgICAgICAgICAgICAgICAgInVwZGF0ZV9wcm9wZXJ0aWVzIjogInVwZGF0ZV9w
cm9wZXJ0aWVzIn0KKyAgICAgICAgICAgICAgICAgInVwZGF0ZV9wcm9wZXJ0aWVzIjogInVwZGF0
ZV9wcm9wZXJ0aWVzIiwKKyAgICAgICAgICAgICAgICAgInRpbWVvdXRfbXVsdGlwbGllciI6ICJn
ZXRfdGltZW91dF9tdWx0aXBsaWVyIn0KIAogCiBkZWYgZ2V0X3RpbWVvdXRfbXVsdGlwbGllcih0
ZXN0X3R5cGUsIHJ1bl9pbmZvX2RhdGEsICoqa3dhcmdzKToKQEAgLTU2LDYgKzU4LDkgQEAgZGVm
IGdldF90aW1lb3V0X211bHRpcGxpZXIodGVzdF90eXBlLCBydW5faW5mb19kYXRhLCAqKmt3YXJn
cyk6CiAgICAgICAgICAgICByZXR1cm4gMwogICAgIGVsaWYgcnVuX2luZm9fZGF0YVsib3MiXSA9
PSAiYW5kcm9pZCI6CiAgICAgICAgIHJldHVybiA0CisgICAgIyBodHRwczovL2J1Z3ppbGxhLm1v
emlsbGEub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTM4NzI1CisgICAgZWxpZiBydW5faW5mb19kYXRh
WyJvcyJdID09ICJ3aW4iIGFuZCBydW5faW5mb19kYXRhWyJwcm9jZXNzb3IiXSA9PSAiYWFyY2g2
NCI6CisgICAgICAgIHJldHVybiA0CiAgICAgcmV0dXJuIDEKIAogCkBAIC03NCwxNiArNzksMTkg
QEAgZGVmIGJyb3dzZXJfa3dhcmdzKHRlc3RfdHlwZSwgcnVuX2luZm9fZGF0YSwgY29uZmlnLCAq
Kmt3YXJncyk6CiAgICAgICAgICAgICAiY2VydHV0aWxfYmluYXJ5Ijoga3dhcmdzWyJjZXJ0dXRp
bF9iaW5hcnkiXSwKICAgICAgICAgICAgICJjYV9jZXJ0aWZpY2F0ZV9wYXRoIjogY29uZmlnLnNz
bF9jb25maWdbImNhX2NlcnRfcGF0aCJdLAogICAgICAgICAgICAgImUxMHMiOiBrd2FyZ3NbImdl
Y2tvX2UxMHMiXSwKKyAgICAgICAgICAgICJlbmFibGVfd2VicmVuZGVyIjoga3dhcmdzWyJlbmFi
bGVfd2VicmVuZGVyIl0sCiAgICAgICAgICAgICAic3RhY2tmaXhfZGlyIjoga3dhcmdzWyJzdGFj
a2ZpeF9kaXIiXSwKICAgICAgICAgICAgICJiaW5hcnlfYXJncyI6IGt3YXJnc1siYmluYXJ5X2Fy
Z3MiXSwKICAgICAgICAgICAgICJ0aW1lb3V0X211bHRpcGxpZXIiOiBnZXRfdGltZW91dF9tdWx0
aXBsaWVyKHRlc3RfdHlwZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHJ1bl9pbmZvX2RhdGEsCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKmt3YXJncyksCi0gICAgICAgICAg
ICAibGVha19jaGVjayI6IGt3YXJnc1sibGVha19jaGVjayJdLAorICAgICAgICAgICAgImxlYWtf
Y2hlY2siOiBydW5faW5mb19kYXRhWyJkZWJ1ZyJdIGFuZCAoa3dhcmdzWyJsZWFrX2NoZWNrIl0g
aXMgbm90IEZhbHNlKSwKICAgICAgICAgICAgICJhc2FuIjogcnVuX2luZm9fZGF0YS5nZXQoImFz
YW4iKSwKICAgICAgICAgICAgICJzdHlsb190aHJlYWRzIjoga3dhcmdzWyJzdHlsb190aHJlYWRz
Il0sCiAgICAgICAgICAgICAiY2hhb3NfbW9kZV9mbGFncyI6IGt3YXJnc1siY2hhb3NfbW9kZV9m
bGFncyJdLAotICAgICAgICAgICAgImNvbmZpZyI6IGNvbmZpZ30KKyAgICAgICAgICAgICJjb25m
aWciOiBjb25maWcsCisgICAgICAgICAgICAiYnJvd3Nlcl9jaGFubmVsIjoga3dhcmdzWyJicm93
c2VyX2NoYW5uZWwiXSwKKyAgICAgICAgICAgICJoZWFkbGVzcyI6IGt3YXJnc1siaGVhZGxlc3Mi
XX0KIAogCiBkZWYgZXhlY3V0b3Jfa3dhcmdzKHRlc3RfdHlwZSwgc2VydmVyX2NvbmZpZywgY2Fj
aGVfbWFuYWdlciwgcnVuX2luZm9fZGF0YSwKQEAgLTk3LDYgKzEwNSw4IEBAIGRlZiBleGVjdXRv
cl9rd2FyZ3ModGVzdF90eXBlLCBzZXJ2ZXJfY29uZmlnLCBjYWNoZV9tYW5hZ2VyLCBydW5faW5m
b19kYXRhLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICoqa3dhcmdzKQogICAgIGV4ZWN1dG9yX2t3YXJnc1siZTEwcyJd
ID0gcnVuX2luZm9fZGF0YVsiZTEwcyJdCiAgICAgY2FwYWJpbGl0aWVzID0ge30KKyAgICBpZiB0
ZXN0X3R5cGUgPT0gInRlc3RoYXJuZXNzIjoKKyAgICAgICAgY2FwYWJpbGl0aWVzWyJwYWdlTG9h
ZFN0cmF0ZWd5Il0gPSAiZWFnZXIiCiAgICAgaWYgdGVzdF90eXBlID09ICJyZWZ0ZXN0IjoKICAg
ICAgICAgZXhlY3V0b3Jfa3dhcmdzWyJyZWZ0ZXN0X2ludGVybmFsIl0gPSBrd2FyZ3NbInJlZnRl
c3RfaW50ZXJuYWwiXQogICAgICAgICBleGVjdXRvcl9rd2FyZ3NbInJlZnRlc3Rfc2NyZWVuc2hv
dCJdID0ga3dhcmdzWyJyZWZ0ZXN0X3NjcmVlbnNob3QiXQpAQCAtMTA2LDkgKzExNiwxNiBAQCBk
ZWYgZXhlY3V0b3Jfa3dhcmdzKHRlc3RfdHlwZSwgc2VydmVyX2NvbmZpZywgY2FjaGVfbWFuYWdl
ciwgcnVuX2luZm9fZGF0YSwKICAgICAgICAgICAgIG9wdGlvbnNbImJpbmFyeSJdID0ga3dhcmdz
WyJiaW5hcnkiXQogICAgICAgICBpZiBrd2FyZ3NbImJpbmFyeV9hcmdzIl06CiAgICAgICAgICAg
ICBvcHRpb25zWyJhcmdzIl0gPSBrd2FyZ3NbImJpbmFyeV9hcmdzIl0KKyAgICAgICAgaWYga3dh
cmdzWyJoZWFkbGVzcyJdOgorICAgICAgICAgICAgaWYgImFyZ3MiIG5vdCBpbiBvcHRpb25zOgor
ICAgICAgICAgICAgICAgIG9wdGlvbnNbImFyZ3MiXSA9IFtdCisgICAgICAgICAgICBpZiAiLS1o
ZWFkbGVzcyIgbm90IGluIG9wdGlvbnNbImFyZ3MiXToKKyAgICAgICAgICAgICAgICBvcHRpb25z
WyJhcmdzIl0uYXBwZW5kKCItLWhlYWRsZXNzIikKICAgICAgICAgb3B0aW9uc1sicHJlZnMiXSA9
IHsKICAgICAgICAgICAgICJuZXR3b3JrLmRucy5sb2NhbERvbWFpbnMiOiAiLCIuam9pbihzZXJ2
ZXJfY29uZmlnLmRvbWFpbnNfc2V0KQogICAgICAgICB9CisgICAgICAgIGZvciBwcmVmLCB2YWx1
ZSBpbiBrd2FyZ3NbImV4dHJhX3ByZWZzIl06CisgICAgICAgICAgICBvcHRpb25zWyJwcmVmcyJd
LnVwZGF0ZSh7cHJlZjogUHJlZmVyZW5jZXMuY2FzdCh2YWx1ZSl9KQogICAgICAgICBjYXBhYmls
aXRpZXNbIm1vejpmaXJlZm94T3B0aW9ucyJdID0gb3B0aW9ucwogICAgIGlmIGt3YXJnc1siY2Vy
dHV0aWxfYmluYXJ5Il0gaXMgTm9uZToKICAgICAgICAgY2FwYWJpbGl0aWVzWyJhY2NlcHRJbnNl
Y3VyZUNlcnRzIl0gPSBUcnVlCkBAIC0xMzAsMzIgKzE0Nyw2OSBAQCBkZWYgZW52X29wdGlvbnMo
KToKICAgICAjCiAgICAgIyBodHRwczovL2dpdGh1Yi5jb20vd2ViLXBsYXRmb3JtLXRlc3RzL3dw
dC9wdWxsLzk0ODAKICAgICByZXR1cm4geyJzZXJ2ZXJfaG9zdCI6ICIxMjcuMC4wLjEiLAotICAg
ICAgICAgICAgImJpbmRfYWRkcmVzcyI6IEZhbHNlLAogICAgICAgICAgICAgInN1cHBvcnRzX2Rl
YnVnZ2VyIjogVHJ1ZX0KIAogCiBkZWYgcnVuX2luZm9fZXh0cmFzKCoqa3dhcmdzKToKLSAgICBy
ZXR1cm4geyJlMTBzIjoga3dhcmdzWyJnZWNrb19lMTBzIl0sCi0gICAgICAgICAgICAid2FzbSI6
IGt3YXJncy5nZXQoIndhc20iLCBUcnVlKSwKLSAgICAgICAgICAgICJ2ZXJpZnkiOiBrd2FyZ3Nb
InZlcmlmeSJdLAotICAgICAgICAgICAgImhlYWRsZXNzIjogIk1PWl9IRUFETEVTUyIgaW4gb3Mu
ZW52aXJvbn0KKworICAgIGRlZiBnZXRfYm9vbF9wcmVmX2lmX2V4aXN0cyhwcmVmKToKKyAgICAg
ICAgZm9yIGtleSwgdmFsdWUgaW4ga3dhcmdzLmdldCgnZXh0cmFfcHJlZnMnLCBbXSk6CisgICAg
ICAgICAgICBpZiBwcmVmID09IGtleToKKyAgICAgICAgICAgICAgICByZXR1cm4gdmFsdWUubG93
ZXIoKSBpbiAoJ3RydWUnLCAnMScpCisgICAgICAgIHJldHVybiBOb25lCisKKyAgICBkZWYgZ2V0
X2Jvb2xfcHJlZihwcmVmKToKKyAgICAgICAgcHJlZl92YWx1ZSA9IGdldF9ib29sX3ByZWZfaWZf
ZXhpc3RzKHByZWYpCisgICAgICAgIHJldHVybiBwcmVmX3ZhbHVlIGlmIHByZWZfdmFsdWUgaXMg
bm90IE5vbmUgZWxzZSBGYWxzZQorCisgICAgcnYgPSB7ImUxMHMiOiBrd2FyZ3NbImdlY2tvX2Ux
MHMiXSwKKyAgICAgICAgICAid2FzbSI6IGt3YXJncy5nZXQoIndhc20iLCBUcnVlKSwKKyAgICAg
ICAgICAidmVyaWZ5Ijoga3dhcmdzWyJ2ZXJpZnkiXSwKKyAgICAgICAgICAiaGVhZGxlc3MiOiBr
d2FyZ3MuZ2V0KCJoZWFkbGVzcyIsIEZhbHNlKSBvciAiTU9aX0hFQURMRVNTIiBpbiBvcy5lbnZp
cm9uLAorICAgICAgICAgICJmaXNzaW9uIjogZ2V0X2Jvb2xfcHJlZigiZmlzc2lvbi5hdXRvc3Rh
cnQiKX0KKworICAgICMgVGhlIHZhbHVlIG9mIGBzdy1lMTBzYCBkZWZhdWx0cyB0byB3aGV0aGVy
IHRoZSAicGFyZW50X2ludGVyY2VwdCIKKyAgICAjIGltcGxlbWVudGF0aW9uIGlzIGVuYWJsZWQg
Zm9yIHRoZSBjdXJyZW50IGJ1aWxkLiBUaGlzIHZhbHVlLCBob3dldmVyLAorICAgICMgY2FuIGJl
IG92ZXJyaWRkZW4gYnkgZXhwbGljaXRseSBzZXR0aW5nIHRoZSBwcmVmIHdpdGggdGhlIGAtLXNl
dHByZWZgIENMSQorICAgICMgZmxhZywgd2hpY2ggaXMgY2hlY2tlZCBoZXJlLiBJZiBub3Qgc3Vw
cGxpZWQsIHRoZSBkZWZhdWx0IHZhbHVlIG9mCisgICAgIyBgc3ctZTEwc2Agd2lsbCBiZSBmaWxs
ZWQgaW4gaW4gYFJ1bkluZm9gJ3MgY29uc3RydWN0b3IuCisgICAgIworICAgICMgV2UgY2FuJ3Qg
Y2FwdHVyZSB0aGUgZGVmYXVsdCB2YWx1ZSByaWdodCBub3cgYmVjYXVzZSAoY3VycmVudGx5KSwg
aXQKKyAgICAjIGRlZmF1bHRzIHRvIHRoZSB2YWx1ZSBvZiBgbmlnaHRseV9idWlsZGAsIHdoaWNo
IGlzbid0IGtub3duIHVudGlsCisgICAgIyBgUnVuSW5mb2AncyBjb25zdHJ1Y3Rvci4KKyAgICBz
d19lMTBzX292ZXJyaWRlID0gZ2V0X2Jvb2xfcHJlZl9pZl9leGlzdHMoImRvbS5zZXJ2aWNlV29y
a2Vycy5wYXJlbnRfaW50ZXJjZXB0IikKKyAgICBpZiBzd19lMTBzX292ZXJyaWRlIGlzIG5vdCBO
b25lOgorICAgICAgICBydlsic3ctZTEwcyJdID0gc3dfZTEwc19vdmVycmlkZQorCisgICAgcnYu
dXBkYXRlKHJ1bl9pbmZvX2Jyb3dzZXJfdmVyc2lvbihrd2FyZ3NbImJpbmFyeSJdKSkKKyAgICBy
ZXR1cm4gcnYKKworCitkZWYgcnVuX2luZm9fYnJvd3Nlcl92ZXJzaW9uKGJpbmFyeSk6CisgICAg
dHJ5OgorICAgICAgICB2ZXJzaW9uX2luZm8gPSBtb3p2ZXJzaW9uLmdldF92ZXJzaW9uKGJpbmFy
eSkKKyAgICBleGNlcHQgbW96dmVyc2lvbi5lcnJvcnMuVmVyc2lvbkVycm9yOgorICAgICAgICB2
ZXJzaW9uX2luZm8gPSBOb25lCisgICAgaWYgdmVyc2lvbl9pbmZvOgorICAgICAgICByZXR1cm4g
eyJicm93c2VyX2J1aWxkX2lkIjogdmVyc2lvbl9pbmZvLmdldCgiYXBwbGljYXRpb25fYnVpbGRp
ZCIsIE5vbmUpLAorICAgICAgICAgICAgICAgICJicm93c2VyX2NoYW5nZXNldCI6IHZlcnNpb25f
aW5mby5nZXQoImFwcGxpY2F0aW9uX2NoYW5nZXNldCIsIE5vbmUpfQorICAgIHJldHVybiB7fQog
CiAKIGRlZiB1cGRhdGVfcHJvcGVydGllcygpOgotICAgIHJldHVybiAoWyJkZWJ1ZyIsICJ3ZWJy
ZW5kZXIiLCAiZTEwcyIsICJvcyIsICJ2ZXJzaW9uIiwgInByb2Nlc3NvciIsICJiaXRzIl0sCi0g
ICAgICAgICAgICB7ImRlYnVnIiwgImUxMHMiLCAid2VicmVuZGVyIn0pCisgICAgcmV0dXJuIChb
Im9zIiwgImRlYnVnIiwgIndlYnJlbmRlciIsICJmaXNzaW9uIiwgImUxMHMiLCAic3ctZTEwcyIs
ICJwcm9jZXNzb3IiXSwKKyAgICAgICAgICAgIHsib3MiOiBbInZlcnNpb24iXSwgInByb2Nlc3Nv
ciI6IFsiYml0cyJdfSkKIAogCiBjbGFzcyBGaXJlZm94QnJvd3NlcihCcm93c2VyKToKLSAgICB1
c2VkX3BvcnRzID0gc2V0KCkKICAgICBpbml0X3RpbWVvdXQgPSA3MAogICAgIHNodXRkb3duX3Rp
bWVvdXQgPSA3MAogCiAgICAgZGVmIF9faW5pdF9fKHNlbGYsIGxvZ2dlciwgYmluYXJ5LCBwcmVm
c19yb290LCB0ZXN0X3R5cGUsIGV4dHJhX3ByZWZzPU5vbmUsIGRlYnVnX2luZm89Tm9uZSwKICAg
ICAgICAgICAgICAgICAgc3ltYm9sc19wYXRoPU5vbmUsIHN0YWNrd2Fsa19iaW5hcnk9Tm9uZSwg
Y2VydHV0aWxfYmluYXJ5PU5vbmUsCi0gICAgICAgICAgICAgICAgIGNhX2NlcnRpZmljYXRlX3Bh
dGg9Tm9uZSwgZTEwcz1GYWxzZSwgc3RhY2tmaXhfZGlyPU5vbmUsCisgICAgICAgICAgICAgICAg
IGNhX2NlcnRpZmljYXRlX3BhdGg9Tm9uZSwgZTEwcz1GYWxzZSwgZW5hYmxlX3dlYnJlbmRlcj1G
YWxzZSwgc3RhY2tmaXhfZGlyPU5vbmUsCiAgICAgICAgICAgICAgICAgIGJpbmFyeV9hcmdzPU5v
bmUsIHRpbWVvdXRfbXVsdGlwbGllcj1Ob25lLCBsZWFrX2NoZWNrPUZhbHNlLCBhc2FuPUZhbHNl
LAotICAgICAgICAgICAgICAgICBzdHlsb190aHJlYWRzPTEsIGNoYW9zX21vZGVfZmxhZ3M9Tm9u
ZSwgY29uZmlnPU5vbmUpOgorICAgICAgICAgICAgICAgICBzdHlsb190aHJlYWRzPTEsIGNoYW9z
X21vZGVfZmxhZ3M9Tm9uZSwgY29uZmlnPU5vbmUsIGJyb3dzZXJfY2hhbm5lbD0ibmlnaHRseSIs
IGhlYWRsZXNzPU5vbmUsICoqa3dhcmdzKToKICAgICAgICAgQnJvd3Nlci5fX2luaXRfXyhzZWxm
LCBsb2dnZXIpCiAgICAgICAgIHNlbGYuYmluYXJ5ID0gYmluYXJ5CiAgICAgICAgIHNlbGYucHJl
ZnNfcm9vdCA9IHByZWZzX3Jvb3QKQEAgLTE3MCw2ICsyMjQsNyBAQCBjbGFzcyBGaXJlZm94QnJv
d3NlcihCcm93c2VyKToKICAgICAgICAgc2VsZi5jYV9jZXJ0aWZpY2F0ZV9wYXRoID0gY2FfY2Vy
dGlmaWNhdGVfcGF0aAogICAgICAgICBzZWxmLmNlcnR1dGlsX2JpbmFyeSA9IGNlcnR1dGlsX2Jp
bmFyeQogICAgICAgICBzZWxmLmUxMHMgPSBlMTBzCisgICAgICAgIHNlbGYuZW5hYmxlX3dlYnJl
bmRlciA9IGVuYWJsZV93ZWJyZW5kZXIKICAgICAgICAgc2VsZi5iaW5hcnlfYXJncyA9IGJpbmFy
eV9hcmdzCiAgICAgICAgIHNlbGYuY29uZmlnID0gY29uZmlnCiAgICAgICAgIGlmIHN0YWNrZml4
X2RpcjoKQEAgLTE4Myw1MCArMjM4LDcwIEBAIGNsYXNzIEZpcmVmb3hCcm93c2VyKEJyb3dzZXIp
OgogCiAgICAgICAgIHNlbGYuYXNhbiA9IGFzYW4KICAgICAgICAgc2VsZi5sc2FuX2FsbG93ZWQg
PSBOb25lCisgICAgICAgIHNlbGYubHNhbl9tYXhfc3RhY2tfZGVwdGggPSBOb25lCisgICAgICAg
IHNlbGYubW96bGVha19hbGxvd2VkID0gTm9uZQorICAgICAgICBzZWxmLm1vemxlYWtfdGhyZXNo
b2xkcyA9IE5vbmUKICAgICAgICAgc2VsZi5sZWFrX2NoZWNrID0gbGVha19jaGVjawogICAgICAg
ICBzZWxmLmxlYWtfcmVwb3J0X2ZpbGUgPSBOb25lCiAgICAgICAgIHNlbGYubHNhbl9oYW5kbGVy
ID0gTm9uZQogICAgICAgICBzZWxmLnN0eWxvX3RocmVhZHMgPSBzdHlsb190aHJlYWRzCiAgICAg
ICAgIHNlbGYuY2hhb3NfbW9kZV9mbGFncyA9IGNoYW9zX21vZGVfZmxhZ3MKKyAgICAgICAgc2Vs
Zi5icm93c2VyX2NoYW5uZWwgPSBicm93c2VyX2NoYW5uZWwKKyAgICAgICAgc2VsZi5oZWFkbGVz
cyA9IGhlYWRsZXNzCiAKICAgICBkZWYgc2V0dGluZ3Moc2VsZiwgdGVzdCk6Ci0gICAgICAgIHNl
bGYubHNhbl9hbGxvd2VkID0gdGVzdC5sc2FuX2FsbG93ZWQKICAgICAgICAgcmV0dXJuIHsiY2hl
Y2tfbGVha3MiOiBzZWxmLmxlYWtfY2hlY2sgYW5kIG5vdCB0ZXN0LmxlYWtzLAotICAgICAgICAg
ICAgICAgICJsc2FuX2FsbG93ZWQiOiB0ZXN0LmxzYW5fYWxsb3dlZH0KKyAgICAgICAgICAgICAg
ICAibHNhbl9hbGxvd2VkIjogdGVzdC5sc2FuX2FsbG93ZWQsCisgICAgICAgICAgICAgICAgImxz
YW5fbWF4X3N0YWNrX2RlcHRoIjogdGVzdC5sc2FuX21heF9zdGFja19kZXB0aCwKKyAgICAgICAg
ICAgICAgICAibW96bGVha19hbGxvd2VkIjogc2VsZi5sZWFrX2NoZWNrIGFuZCB0ZXN0Lm1vemxl
YWtfYWxsb3dlZCwKKyAgICAgICAgICAgICAgICAibW96bGVha190aHJlc2hvbGRzIjogc2VsZi5s
ZWFrX2NoZWNrIGFuZCB0ZXN0Lm1vemxlYWtfdGhyZXNob2xkfQogCiAgICAgZGVmIHN0YXJ0KHNl
bGYsIGdyb3VwX21ldGFkYXRhPU5vbmUsICoqa3dhcmdzKToKICAgICAgICAgaWYgZ3JvdXBfbWV0
YWRhdGEgaXMgTm9uZToKICAgICAgICAgICAgIGdyb3VwX21ldGFkYXRhID0ge30KIAorICAgICAg
ICBzZWxmLmdyb3VwX21ldGFkYXRhID0gZ3JvdXBfbWV0YWRhdGEKKyAgICAgICAgc2VsZi5sc2Fu
X2FsbG93ZWQgPSBrd2FyZ3MuZ2V0KCJsc2FuX2FsbG93ZWQiKQorICAgICAgICBzZWxmLmxzYW5f
bWF4X3N0YWNrX2RlcHRoID0ga3dhcmdzLmdldCgibHNhbl9tYXhfc3RhY2tfZGVwdGgiKQorICAg
ICAgICBzZWxmLm1vemxlYWtfYWxsb3dlZCA9IGt3YXJncy5nZXQoIm1vemxlYWtfYWxsb3dlZCIp
CisgICAgICAgIHNlbGYubW96bGVha190aHJlc2hvbGRzID0ga3dhcmdzLmdldCgibW96bGVha190
aHJlc2hvbGRzIikKKwogICAgICAgICBpZiBzZWxmLm1hcmlvbmV0dGVfcG9ydCBpcyBOb25lOgot
ICAgICAgICAgICAgc2VsZi5tYXJpb25ldHRlX3BvcnQgPSBnZXRfZnJlZV9wb3J0KDI4MjgsIGV4
Y2x1ZGU9c2VsZi51c2VkX3BvcnRzKQotICAgICAgICAgICAgc2VsZi51c2VkX3BvcnRzLmFkZChz
ZWxmLm1hcmlvbmV0dGVfcG9ydCkKKyAgICAgICAgICAgIHNlbGYubWFyaW9uZXR0ZV9wb3J0ID0g
Z2V0X2ZyZWVfcG9ydCgpCiAKICAgICAgICAgaWYgc2VsZi5hc2FuOgotICAgICAgICAgICAgcHJp
bnQgIlNldHRpbmcgdXAgTFNBTiIKICAgICAgICAgICAgIHNlbGYubHNhbl9oYW5kbGVyID0gbW96
bGVhay5MU0FOTGVha3Moc2VsZi5sb2dnZXIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHNjb3BlPWdyb3VwX21ldGFkYXRhLmdldCgic2NvcGUiLCAi
LyIpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBh
bGxvd2VkPXNlbGYubHNhbl9hbGxvd2VkKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBhbGxvd2VkPXNlbGYubHNhbl9hbGxvd2VkLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXhOdW1SZWNvcmRlZEZy
YW1lcz1zZWxmLmxzYW5fbWF4X3N0YWNrX2RlcHRoKQogCiAgICAgICAgIGVudiA9IHRlc3RfZW52
aXJvbm1lbnQoeHJlUGF0aD1vcy5wYXRoLmRpcm5hbWUoc2VsZi5iaW5hcnkpLAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGRlYnVnZ2VyPXNlbGYuZGVidWdfaW5mbyBpcyBub3QgTm9u
ZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb2c9c2VsZi5sb2dnZXIsCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgbHNhblBhdGg9c2VsZi5wcmVmc19yb290KQorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVzZUxTYW49VHJ1ZSwgbG9nPXNlbGYubG9nZ2Vy
KQogCiAgICAgICAgIGVudlsiU1RZTE9fVEhSRUFEUyJdID0gc3RyKHNlbGYuc3R5bG9fdGhyZWFk
cykKICAgICAgICAgaWYgc2VsZi5jaGFvc19tb2RlX2ZsYWdzIGlzIG5vdCBOb25lOgogICAgICAg
ICAgICAgZW52WyJNT1pfQ0hBT1NNT0RFIl0gPSBzdHIoc2VsZi5jaGFvc19tb2RlX2ZsYWdzKQor
ICAgICAgICBpZiBzZWxmLmhlYWRsZXNzOgorICAgICAgICAgICAgZW52WyJNT1pfSEVBRExFU1Mi
XSA9ICIxIgorICAgICAgICBpZiBzZWxmLmVuYWJsZV93ZWJyZW5kZXI6CisgICAgICAgICAgICBl
bnZbIk1PWl9XRUJSRU5ERVIiXSA9ICIxIgorICAgICAgICAgICAgZW52WyJNT1pfQUNDRUxFUkFU
RUQiXSA9ICIxIgorICAgICAgICBlbHNlOgorICAgICAgICAgICAgZW52WyJNT1pfV0VCUkVOREVS
Il0gPSAiMCIKIAogICAgICAgICBwcmVmZXJlbmNlcyA9IHNlbGYubG9hZF9wcmVmcygpCiAKICAg
ICAgICAgc2VsZi5wcm9maWxlID0gRmlyZWZveFByb2ZpbGUocHJlZmVyZW5jZXM9cHJlZmVyZW5j
ZXMpCi0gICAgICAgIHNlbGYucHJvZmlsZS5zZXRfcHJlZmVyZW5jZXMoeyJtYXJpb25ldHRlLnBv
cnQiOiBzZWxmLm1hcmlvbmV0dGVfcG9ydCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgImRvbS5kaXNhYmxlX29wZW5fZHVyaW5nX2xvYWQiOiBGYWxzZSwKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIm5ldHdvcmsuZG5zLmxvY2FsRG9tYWlucyI6
ICIsIi5qb2luKHNlbGYuY29uZmlnLmRvbWFpbnNfc2V0KSwKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIm5ldHdvcmsucHJveHkudHlwZSI6IDAsCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICJwbGFjZXMuaGlzdG9yeS5lbmFibGVkIjogRmFsc2Us
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJkb20uc2VuZF9hZnRlcl9w
YWludF90b19jb250ZW50IjogVHJ1ZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIm5ldHdvcmsucHJlbG9hZCI6IFRydWV9KQorICAgICAgICBzZWxmLnByb2ZpbGUuc2V0
X3ByZWZlcmVuY2VzKHsKKyAgICAgICAgICAgICJtYXJpb25ldHRlLnBvcnQiOiBzZWxmLm1hcmlv
bmV0dGVfcG9ydCwKKyAgICAgICAgICAgICJuZXR3b3JrLmRucy5sb2NhbERvbWFpbnMiOiAiLCIu
am9pbihzZWxmLmNvbmZpZy5kb21haW5zX3NldCksCisgICAgICAgICAgICAiZG9tLmZpbGUuY3Jl
YXRlSW5DaGlsZCI6IFRydWUsCisgICAgICAgICAgICAjIFRPRE86IFJlbW92ZSBwcmVmZXJlbmNl
cyBvbmNlIEZpcmVmb3ggNjQgaXMgc3RhYmxlIChCdWcgOTA1NDA0KQorICAgICAgICAgICAgIm5l
dHdvcmsucHJveHkudHlwZSI6IDAsCisgICAgICAgICAgICAicGxhY2VzLmhpc3RvcnkuZW5hYmxl
ZCI6IEZhbHNlLAorICAgICAgICAgICAgIm5ldHdvcmsucHJlbG9hZCI6IFRydWUsCisgICAgICAg
IH0pCiAgICAgICAgIGlmIHNlbGYuZTEwczoKICAgICAgICAgICAgIHNlbGYucHJvZmlsZS5zZXRf
cHJlZmVyZW5jZXMoeyJicm93c2VyLnRhYnMucmVtb3RlLmF1dG9zdGFydCI6IFRydWV9KQogCkBA
IC0yNDksOSArMzI0LDExIEBAIGNsYXNzIEZpcmVmb3hCcm93c2VyKEJyb3dzZXIpOgogICAgICAg
ICBpZiBzZWxmLmNhX2NlcnRpZmljYXRlX3BhdGggaXMgbm90IE5vbmU6CiAgICAgICAgICAgICBz
ZWxmLnNldHVwX3NzbCgpCiAKKyAgICAgICAgYXJncyA9IHNlbGYuYmluYXJ5X2FyZ3NbOl0gaWYg
c2VsZi5iaW5hcnlfYXJncyBlbHNlIFtdCisgICAgICAgIGFyZ3MgKz0gW2NtZF9hcmcoIm1hcmlv
bmV0dGUiKSwgImFib3V0OmJsYW5rIl0KKwogICAgICAgICBkZWJ1Z19hcmdzLCBjbWQgPSBicm93
c2VyX2NvbW1hbmQoc2VsZi5iaW5hcnksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBzZWxmLmJpbmFyeV9hcmdzIGlmIHNlbGYuYmluYXJ5X2FyZ3MgZWxzZSBbXSAr
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY21kX2FyZygibWFy
aW9uZXR0ZSIpLCAiYWJvdXQ6YmxhbmsiXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGFyZ3MsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBzZWxmLmRlYnVnX2luZm8pCiAKICAgICAgICAgc2VsZi5ydW5uZXIgPSBGaXJlZm94UnVu
bmVyKHByb2ZpbGU9c2VsZi5wcm9maWxlLApAQCAtMjc1LDcgKzM1MiwxMCBAQCBjbGFzcyBGaXJl
Zm94QnJvd3NlcihCcm93c2VyKToKICAgICAgICAgaWYgb3MucGF0aC5pc2ZpbGUocHJvZmlsZXMp
OgogICAgICAgICAgICAgd2l0aCBvcGVuKHByb2ZpbGVzLCAncicpIGFzIGZoOgogICAgICAgICAg
ICAgICAgIGZvciBuYW1lIGluIGpzb24ubG9hZChmaClbJ3dlYi1wbGF0Zm9ybS10ZXN0cyddOgot
ICAgICAgICAgICAgICAgICAgICBwcmVmX3BhdGhzLmFwcGVuZChvcy5wYXRoLmpvaW4oc2VsZi5w
cmVmc19yb290LCBuYW1lLCAndXNlci5qcycpKQorICAgICAgICAgICAgICAgICAgICBpZiBzZWxm
LmJyb3dzZXJfY2hhbm5lbCBpbiAoTm9uZSwgJ25pZ2h0bHknKToKKyAgICAgICAgICAgICAgICAg
ICAgICAgIHByZWZfcGF0aHMuYXBwZW5kKG9zLnBhdGguam9pbihzZWxmLnByZWZzX3Jvb3QsIG5h
bWUsICd1c2VyLmpzJykpCisgICAgICAgICAgICAgICAgICAgIGVsaWYgbmFtZSAhPSAndW5pdHRl
c3QtZmVhdHVyZXMnOgorICAgICAgICAgICAgICAgICAgICAgICAgcHJlZl9wYXRocy5hcHBlbmQo
b3MucGF0aC5qb2luKHNlbGYucHJlZnNfcm9vdCwgbmFtZSwgJ3VzZXIuanMnKSkKICAgICAgICAg
ZWxzZToKICAgICAgICAgICAgICMgT2xkIHByZWZlcmVuY2UgZmlsZXMgdXNlZCBiZWZvcmUgdGhl
IGNyZWF0aW9uIG9mIHByb2ZpbGVzLmpzb24gKHJlbW92ZSB3aGVuIG5vIGxvbmdlciBzdXBwb3J0
ZWQpCiAgICAgICAgICAgICBsZWdhY3lfcHJlZl9wYXRocyA9ICgKQEAgLTMxNywyMSArMzk3LDE4
IEBAIGNsYXNzIEZpcmVmb3hCcm93c2VyKEJyb3dzZXIpOgogICAgICAgICBzZWxmLmxvZ2dlci5k
ZWJ1Zygic3RvcHBlZCIpCiAKICAgICBkZWYgcHJvY2Vzc19sZWFrcyhzZWxmKToKLSAgICAgICAg
c2VsZi5sb2dnZXIuZGVidWcoIlBST0NFU1MgTEVBS1MgJXMiICUgc2VsZi5sZWFrX3JlcG9ydF9m
aWxlKQorICAgICAgICBzZWxmLmxvZ2dlci5pbmZvKCJQUk9DRVNTIExFQUtTICVzIiAlIHNlbGYu
bGVha19yZXBvcnRfZmlsZSkKICAgICAgICAgaWYgc2VsZi5sc2FuX2hhbmRsZXI6CiAgICAgICAg
ICAgICBzZWxmLmxzYW5faGFuZGxlci5wcm9jZXNzKCkKICAgICAgICAgaWYgc2VsZi5sZWFrX3Jl
cG9ydF9maWxlIGlzIG5vdCBOb25lOgogICAgICAgICAgICAgbW96bGVhay5wcm9jZXNzX2xlYWtf
bG9nKAogICAgICAgICAgICAgICAgIHNlbGYubGVha19yZXBvcnRfZmlsZSwKLSAgICAgICAgICAg
ICAgICBsZWFrX3RocmVzaG9sZHM9ewotICAgICAgICAgICAgICAgICAgICAiZGVmYXVsdCI6IDAs
Ci0gICAgICAgICAgICAgICAgICAgICJ0YWIiOiAxMDAwMCwgICMgU2VlIGRlcGVuZGVuY2llcyBv
ZiBidWcgMTA1MTIzMC4KLSAgICAgICAgICAgICAgICAgICAgIyBHTVAgcmFyZWx5IGdldHMgYSBs
b2csIGJ1dCB3aGVuIGl0IGRvZXMsIGl0IGxlYWtzIGEgbGl0dGxlLgotICAgICAgICAgICAgICAg
ICAgICAiZ2Vja29tZWRpYXBsdWdpbiI6IDIwMDAwLAotICAgICAgICAgICAgICAgIH0sCi0gICAg
ICAgICAgICAgICAgaWdub3JlX21pc3NpbmdfbGVha3M9WyJnZWNrb21lZGlhcGx1Z2luIl0sCisg
ICAgICAgICAgICAgICAgbGVha190aHJlc2hvbGRzPXNlbGYubW96bGVha190aHJlc2hvbGRzLAor
ICAgICAgICAgICAgICAgIGlnbm9yZV9taXNzaW5nX2xlYWtzPVsiZ21wbHVnaW4iXSwKICAgICAg
ICAgICAgICAgICBsb2c9c2VsZi5sb2dnZXIsCi0gICAgICAgICAgICAgICAgc3RhY2tfZml4ZXI9
c2VsZi5zdGFja19maXhlcgorICAgICAgICAgICAgICAgIHN0YWNrX2ZpeGVyPXNlbGYuc3RhY2tf
Zml4ZXIsCisgICAgICAgICAgICAgICAgc2NvcGU9c2VsZi5ncm91cF9tZXRhZGF0YS5nZXQoInNj
b3BlIiksCisgICAgICAgICAgICAgICAgYWxsb3dlZD1zZWxmLm1vemxlYWtfYWxsb3dlZAogICAg
ICAgICAgICAgKQogCiAgICAgZGVmIHBpZChzZWxmKToKQEAgLTM3MCwyMyArNDQ3LDE1IEBAIGNs
YXNzIEZpcmVmb3hCcm93c2VyKEJyb3dzZXIpOgogICAgICAgICBhc3NlcnQgc2VsZi5tYXJpb25l
dHRlX3BvcnQgaXMgbm90IE5vbmUKICAgICAgICAgcmV0dXJuIEV4ZWN1dG9yQnJvd3NlciwgeyJt
YXJpb25ldHRlX3BvcnQiOiBzZWxmLm1hcmlvbmV0dGVfcG9ydH0KIAotICAgIGRlZiBjaGVja19m
b3JfY3Jhc2hlcyhzZWxmKToKLSAgICAgICAgZHVtcF9kaXIgPSBvcy5wYXRoLmpvaW4oc2VsZi5w
cm9maWxlLnByb2ZpbGUsICJtaW5pZHVtcHMiKQotCi0gICAgICAgIHJldHVybiBib29sKG1vemNy
YXNoLmNoZWNrX2Zvcl9jcmFzaGVzKGR1bXBfZGlyLAotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBzeW1ib2xzX3BhdGg9c2VsZi5zeW1ib2xzX3BhdGgsCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YWNrd2Fsa19i
aW5hcnk9c2VsZi5zdGFja3dhbGtfYmluYXJ5LAotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBxdWlldD1UcnVlKSkKLQotICAgIGRlZiBsb2dfY3Jhc2goc2Vs
ZiwgcHJvY2VzcywgdGVzdCk6CisgICAgZGVmIGNoZWNrX2NyYXNoKHNlbGYsIHByb2Nlc3MsIHRl
c3QpOgogICAgICAgICBkdW1wX2RpciA9IG9zLnBhdGguam9pbihzZWxmLnByb2ZpbGUucHJvZmls
ZSwgIm1pbmlkdW1wcyIpCiAKLSAgICAgICAgbW96Y3Jhc2gubG9nX2NyYXNoZXMoc2VsZi5sb2dn
ZXIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIGR1bXBfZGlyLAotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBzeW1ib2xzX3BhdGg9c2VsZi5zeW1ib2xzX3BhdGgsCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHN0YWNrd2Fsa19iaW5hcnk9c2VsZi5zdGFja3dhbGtfYmlu
YXJ5LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9jZXNzPXByb2Nlc3MsCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHRlc3Q9dGVzdCkKKyAgICAgICAgcmV0dXJuIGJvb2wo
bW96Y3Jhc2gubG9nX2NyYXNoZXMoc2VsZi5sb2dnZXIsCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGR1bXBfZGlyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBzeW1ib2xzX3BhdGg9c2VsZi5zeW1ib2xzX3BhdGgsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YWNrd2Fsa19iaW5hcnk9c2VsZi5zdGFj
a3dhbGtfYmluYXJ5LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBw
cm9jZXNzPXByb2Nlc3MsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHRlc3Q9dGVzdCkpCiAKICAgICBkZWYgc2V0dXBfc3NsKHNlbGYpOgogICAgICAgICAiIiJDcmVh
dGUgYSBjZXJ0aWZpY2F0ZSBkYXRhYmFzZSB0byB1c2UgaW4gdGhlIHRlc3QgcHJvZmlsZS4gVGhp
cyBpcyBjb25maWd1cmVkCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvYnJvd3NlcnMvZmlyZWZv
eF9hbmRyb2lkLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2Jyb3dzZXJzL2ZpcmVmb3hfYW5kcm9pZC5weQpu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi4zM2I1ZDUxZTU0ZTgyYWRiNmNkYmU0NjEyMjYzYmMzMDg4M2RkMTA4Ci0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2Jyb3dzZXJzL2ZpcmVmb3hfYW5kcm9pZC5weQpA
QCAtMCwwICsxLDIwMiBAQAoraW1wb3J0IG9zCisKK2ltcG9ydCBtb3puZXR3b3JrCitmcm9tIG1v
enByb2ZpbGUgaW1wb3J0IEZpcmVmb3hQcm9maWxlCitmcm9tIG1venJ1bm5lciBpbXBvcnQgRmVu
bmVjRW11bGF0b3JSdW5uZXIKKworZnJvbSAuYmFzZSBpbXBvcnQgKGdldF9mcmVlX3BvcnQsCisg
ICAgICAgICAgICAgICAgICAgY21kX2FyZywKKyAgICAgICAgICAgICAgICAgICBicm93c2VyX2Nv
bW1hbmQpCitmcm9tIC4uZXhlY3V0b3JzLmV4ZWN1dG9ybWFyaW9uZXR0ZSBpbXBvcnQgKE1hcmlv
bmV0dGVUZXN0aGFybmVzc0V4ZWN1dG9yLCAgIyBub3FhOiBGNDAxCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1hcmlvbmV0dGVSZWZUZXN0RXhlY3V0b3IpICAj
IG5vcWE6IEY0MDEKK2Zyb20gLmZpcmVmb3ggaW1wb3J0IChnZXRfdGltZW91dF9tdWx0aXBsaWVy
LCAgIyBub3FhOiBGNDAxCisgICAgICAgICAgICAgICAgICAgICAgcnVuX2luZm9fZXh0cmFzIGFz
IGZ4X3J1bl9pbmZvX2V4dHJhcywKKyAgICAgICAgICAgICAgICAgICAgICB1cGRhdGVfcHJvcGVy
dGllcywgICMgbm9xYTogRjQwMQorICAgICAgICAgICAgICAgICAgICAgIGV4ZWN1dG9yX2t3YXJn
cywgICMgbm9xYTogRjQwMQorICAgICAgICAgICAgICAgICAgICAgIEZpcmVmb3hCcm93c2VyKSAg
IyBub3FhOiBGNDAxCisKKworX193cHRydW5uZXJfXyA9IHsicHJvZHVjdCI6ICJmaXJlZm94X2Fu
ZHJvaWQiLAorICAgICAgICAgICAgICAgICAiY2hlY2tfYXJncyI6ICJjaGVja19hcmdzIiwKKyAg
ICAgICAgICAgICAgICAgImJyb3dzZXIiOiAiRmlyZWZveEFuZHJvaWRCcm93c2VyIiwKKyAgICAg
ICAgICAgICAgICAgImV4ZWN1dG9yIjogeyJ0ZXN0aGFybmVzcyI6ICJNYXJpb25ldHRlVGVzdGhh
cm5lc3NFeGVjdXRvciIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAicmVmdGVzdCI6
ICJNYXJpb25ldHRlUmVmVGVzdEV4ZWN1dG9yIn0sCisgICAgICAgICAgICAgICAgICJicm93c2Vy
X2t3YXJncyI6ICJicm93c2VyX2t3YXJncyIsCisgICAgICAgICAgICAgICAgICJleGVjdXRvcl9r
d2FyZ3MiOiAiZXhlY3V0b3Jfa3dhcmdzIiwKKyAgICAgICAgICAgICAgICAgImVudl9leHRyYXMi
OiAiZW52X2V4dHJhcyIsCisgICAgICAgICAgICAgICAgICJlbnZfb3B0aW9ucyI6ICJlbnZfb3B0
aW9ucyIsCisgICAgICAgICAgICAgICAgICJydW5faW5mb19leHRyYXMiOiAicnVuX2luZm9fZXh0
cmFzIiwKKyAgICAgICAgICAgICAgICAgInVwZGF0ZV9wcm9wZXJ0aWVzIjogInVwZGF0ZV9wcm9w
ZXJ0aWVzIiwKKyAgICAgICAgICAgICAgICAgInRpbWVvdXRfbXVsdGlwbGllciI6ICJnZXRfdGlt
ZW91dF9tdWx0aXBsaWVyIn0KKworCitkZWYgY2hlY2tfYXJncygqKmt3YXJncyk6CisgICAgcGFz
cworCisKK2RlZiBicm93c2VyX2t3YXJncyh0ZXN0X3R5cGUsIHJ1bl9pbmZvX2RhdGEsIGNvbmZp
ZywgKiprd2FyZ3MpOgorICAgIHJldHVybiB7InBhY2thZ2VfbmFtZSI6IGt3YXJnc1sicGFja2Fn
ZV9uYW1lIl0sCisgICAgICAgICAgICAiZGV2aWNlX3NlcmlhbCI6IGt3YXJnc1siZGV2aWNlX3Nl
cmlhbCJdLAorICAgICAgICAgICAgInByZWZzX3Jvb3QiOiBrd2FyZ3NbInByZWZzX3Jvb3QiXSwK
KyAgICAgICAgICAgICJleHRyYV9wcmVmcyI6IGt3YXJnc1siZXh0cmFfcHJlZnMiXSwKKyAgICAg
ICAgICAgICJ0ZXN0X3R5cGUiOiB0ZXN0X3R5cGUsCisgICAgICAgICAgICAiZGVidWdfaW5mbyI6
IGt3YXJnc1siZGVidWdfaW5mbyJdLAorICAgICAgICAgICAgInN5bWJvbHNfcGF0aCI6IGt3YXJn
c1sic3ltYm9sc19wYXRoIl0sCisgICAgICAgICAgICAic3RhY2t3YWxrX2JpbmFyeSI6IGt3YXJn
c1sic3RhY2t3YWxrX2JpbmFyeSJdLAorICAgICAgICAgICAgImNlcnR1dGlsX2JpbmFyeSI6IGt3
YXJnc1siY2VydHV0aWxfYmluYXJ5Il0sCisgICAgICAgICAgICAiY2FfY2VydGlmaWNhdGVfcGF0
aCI6IGNvbmZpZy5zc2xfY29uZmlnWyJjYV9jZXJ0X3BhdGgiXSwKKyAgICAgICAgICAgICJlbmFi
bGVfd2VicmVuZGVyIjoga3dhcmdzWyJlbmFibGVfd2VicmVuZGVyIl0sCisgICAgICAgICAgICAi
c3RhY2tmaXhfZGlyIjoga3dhcmdzWyJzdGFja2ZpeF9kaXIiXSwKKyAgICAgICAgICAgICJiaW5h
cnlfYXJncyI6IGt3YXJnc1siYmluYXJ5X2FyZ3MiXSwKKyAgICAgICAgICAgICJ0aW1lb3V0X211
bHRpcGxpZXIiOiBnZXRfdGltZW91dF9tdWx0aXBsaWVyKHRlc3RfdHlwZSwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJ1bl9pbmZvX2Rh
dGEsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAqKmt3YXJncyksCisgICAgICAgICAgICAjIGRlc2t0b3Agb25seQorICAgICAgICAgICAg
ImxlYWtfY2hlY2siOiBGYWxzZSwKKyAgICAgICAgICAgICJzdHlsb190aHJlYWRzIjoga3dhcmdz
WyJzdHlsb190aHJlYWRzIl0sCisgICAgICAgICAgICAiY2hhb3NfbW9kZV9mbGFncyI6IGt3YXJn
c1siY2hhb3NfbW9kZV9mbGFncyJdLAorICAgICAgICAgICAgImNvbmZpZyI6IGNvbmZpZywKKyAg
ICAgICAgICAgICJpbnN0YWxsX2ZvbnRzIjoga3dhcmdzWyJpbnN0YWxsX2ZvbnRzIl0sCisgICAg
ICAgICAgICAidGVzdHNfcm9vdCI6IGNvbmZpZy5kb2Nfcm9vdH0KKworCitkZWYgZW52X2V4dHJh
cygqKmt3YXJncyk6CisgICAgcmV0dXJuIFtdCisKKworZGVmIHJ1bl9pbmZvX2V4dHJhcygqKmt3
YXJncyk6CisgICAgcnYgPSBmeF9ydW5faW5mb19leHRyYXMoKiprd2FyZ3MpCisgICAgcGFja2Fn
ZSA9IGt3YXJnc1sicGFja2FnZV9uYW1lIl0KKyAgICBydi51cGRhdGUoeyJlMTBzIjogVHJ1ZSBp
ZiBwYWNrYWdlIGlzIG5vdCBOb25lIGFuZCAiZ2Vja292aWV3IiBpbiBwYWNrYWdlIGVsc2UgRmFs
c2UsCisgICAgICAgICAgICAgICAiaGVhZGxlc3MiOiBGYWxzZX0pCisgICAgcmV0dXJuIHJ2CisK
KworZGVmIGVudl9vcHRpb25zKCk6CisgICAgIyBUaGUgc2VydmVyIGhvc3QgaXMgc2V0IHRvIHB1
YmxpYyBsb2NhbGhvc3QgSVAgc28gdGhhdCByZXNvdXJjZXMgY2FuIGJlIGFjY2Vzc2VkCisgICAg
IyBmcm9tIEFuZHJvaWQgZW11bGF0b3IKKyAgICByZXR1cm4geyJzZXJ2ZXJfaG9zdCI6IG1vem5l
dHdvcmsuZ2V0X2lwKCksCisgICAgICAgICAgICAiYmluZF9hZGRyZXNzIjogRmFsc2UsCisgICAg
ICAgICAgICAic3VwcG9ydHNfZGVidWdnZXIiOiBUcnVlfQorCisKK2NsYXNzIEZpcmVmb3hBbmRy
b2lkQnJvd3NlcihGaXJlZm94QnJvd3Nlcik6CisgICAgaW5pdF90aW1lb3V0ID0gMzAwCisgICAg
c2h1dGRvd25fdGltZW91dCA9IDYwCisKKyAgICBkZWYgX19pbml0X18oc2VsZiwgbG9nZ2VyLCBw
cmVmc19yb290LCB0ZXN0X3R5cGUsIHBhY2thZ2VfbmFtZT0ib3JnLm1vemlsbGEuZ2Vja292aWV3
LnRlc3QiLAorICAgICAgICAgICAgICAgICBkZXZpY2Vfc2VyaWFsPSJlbXVsYXRvci01NDQ0Iiwg
Kiprd2FyZ3MpOgorICAgICAgICBGaXJlZm94QnJvd3Nlci5fX2luaXRfXyhzZWxmLCBsb2dnZXIs
IE5vbmUsIHByZWZzX3Jvb3QsIHRlc3RfdHlwZSwgKiprd2FyZ3MpCisgICAgICAgIHNlbGYucGFj
a2FnZV9uYW1lID0gcGFja2FnZV9uYW1lCisgICAgICAgIHNlbGYuZGV2aWNlX3NlcmlhbCA9IGRl
dmljZV9zZXJpYWwKKyAgICAgICAgc2VsZi50ZXN0c19yb290ID0ga3dhcmdzWyJ0ZXN0c19yb290
Il0KKyAgICAgICAgc2VsZi5pbnN0YWxsX2ZvbnRzID0ga3dhcmdzWyJpbnN0YWxsX2ZvbnRzIl0K
KyAgICAgICAgc2VsZi5zdGFja3dhbGtfYmluYXJ5ID0ga3dhcmdzWyJzdGFja3dhbGtfYmluYXJ5
Il0KKworICAgIGRlZiBzdGFydChzZWxmLCAqKmt3YXJncyk6CisgICAgICAgIGlmIHNlbGYubWFy
aW9uZXR0ZV9wb3J0IGlzIE5vbmU6CisgICAgICAgICAgICBzZWxmLm1hcmlvbmV0dGVfcG9ydCA9
IGdldF9mcmVlX3BvcnQoKQorCisgICAgICAgIGVudiA9IHt9CisgICAgICAgIGVudlsiTU9aX0NS
QVNIUkVQT1JURVIiXSA9ICIxIgorICAgICAgICBlbnZbIk1PWl9DUkFTSFJFUE9SVEVSX1NIVVRE
T1dOIl0gPSAiMSIKKyAgICAgICAgZW52WyJNT1pfRElTQUJMRV9OT05MT0NBTF9DT05ORUNUSU9O
UyJdID0gIjEiCisgICAgICAgIGVudlsiU1RZTE9fVEhSRUFEUyJdID0gc3RyKHNlbGYuc3R5bG9f
dGhyZWFkcykKKyAgICAgICAgaWYgc2VsZi5jaGFvc19tb2RlX2ZsYWdzIGlzIG5vdCBOb25lOgor
ICAgICAgICAgICAgZW52WyJNT1pfQ0hBT1NNT0RFIl0gPSBzdHIoc2VsZi5jaGFvc19tb2RlX2Zs
YWdzKQorICAgICAgICBpZiBzZWxmLmVuYWJsZV93ZWJyZW5kZXI6CisgICAgICAgICAgICBlbnZb
Ik1PWl9XRUJSRU5ERVIiXSA9ICIxIgorICAgICAgICBlbHNlOgorICAgICAgICAgICAgZW52WyJN
T1pfV0VCUkVOREVSIl0gPSAiMCIKKworICAgICAgICBwcmVmZXJlbmNlcyA9IHNlbGYubG9hZF9w
cmVmcygpCisKKyAgICAgICAgc2VsZi5wcm9maWxlID0gRmlyZWZveFByb2ZpbGUocHJlZmVyZW5j
ZXM9cHJlZmVyZW5jZXMpCisgICAgICAgIHNlbGYucHJvZmlsZS5zZXRfcHJlZmVyZW5jZXMoewor
ICAgICAgICAgICAgIm1hcmlvbmV0dGUucG9ydCI6IHNlbGYubWFyaW9uZXR0ZV9wb3J0LAorICAg
ICAgICAgICAgIm5ldHdvcmsuZG5zLmxvY2FsRG9tYWlucyI6ICIsIi5qb2luKHNlbGYuY29uZmln
LmRvbWFpbnNfc2V0KSwKKyAgICAgICAgICAgICJkb20uZGlzYWJsZV9vcGVuX2R1cmluZ19sb2Fk
IjogRmFsc2UsCisgICAgICAgICAgICAicGxhY2VzLmhpc3RvcnkuZW5hYmxlZCI6IEZhbHNlLAor
ICAgICAgICAgICAgImRvbS5zZW5kX2FmdGVyX3BhaW50X3RvX2NvbnRlbnQiOiBUcnVlLAorICAg
ICAgICAgICAgIm5ldHdvcmsucHJlbG9hZCI6IFRydWUsCisgICAgICAgIH0pCisKKyAgICAgICAg
aWYgc2VsZi50ZXN0X3R5cGUgPT0gInJlZnRlc3QiOgorICAgICAgICAgICAgc2VsZi5sb2dnZXIu
aW5mbygiU2V0dGluZyBhbmRyb2lkIHJlZnRlc3QgcHJlZmVyZW5jZXMiKQorICAgICAgICAgICAg
c2VsZi5wcm9maWxlLnNldF9wcmVmZXJlbmNlcyh7CisgICAgICAgICAgICAgICAgImJyb3dzZXIu
dmlld3BvcnQuZGVza3RvcFdpZHRoIjogODAwLAorICAgICAgICAgICAgICAgICMgRGlzYWJsZSBo
aWdoIERQSQorICAgICAgICAgICAgICAgICJsYXlvdXQuY3NzLmRldlBpeGVsc1BlclB4IjogIjEu
MCIsCisgICAgICAgICAgICAgICAgIyBFbnN1cmUgdGhhdCB0aGUgZnVsbCBicm93c2VyIGVsZW1l
bnQKKyAgICAgICAgICAgICAgICAjIGFwcGVhcnMgaW4gdGhlIHNjcmVlbnNob3QKKyAgICAgICAg
ICAgICAgICAiYXB6LmFsbG93X3pvb21pbmciOiBGYWxzZSwKKyAgICAgICAgICAgICAgICAiYW5k
cm9pZC53aWRnZXRfcGFpbnRzX2JhY2tncm91bmQiOiBGYWxzZSwKKyAgICAgICAgICAgICAgICAj
IEVuc3VyZSB0aGF0IHNjcm9sbGJhcnMgYXJlIGFsd2F5cyBwYWludGVkCisgICAgICAgICAgICAg
ICAgImxheW91dC50ZXN0aW5nLm92ZXJsYXktc2Nyb2xsYmFycy5hbHdheXMtdmlzaWJsZSI6IFRy
dWUsCisgICAgICAgICAgICB9KQorCisgICAgICAgIGlmIHNlbGYuaW5zdGFsbF9mb250czoKKyAg
ICAgICAgICAgIHNlbGYubG9nZ2VyLmRlYnVnKCJDb3B5aW5nIEFoZW0gZm9udCB0byBwcm9maWxl
IikKKyAgICAgICAgICAgIGZvbnRfZGlyID0gb3MucGF0aC5qb2luKHNlbGYucHJvZmlsZS5wcm9m
aWxlLCAiZm9udHMiKQorICAgICAgICAgICAgaWYgbm90IG9zLnBhdGguZXhpc3RzKGZvbnRfZGly
KToKKyAgICAgICAgICAgICAgICBvcy5tYWtlZGlycyhmb250X2RpcikKKyAgICAgICAgICAgIHdp
dGggb3Blbihvcy5wYXRoLmpvaW4oc2VsZi50ZXN0c19yb290LCAiZm9udHMiLCAiQWhlbS50dGYi
KSwgInJiIikgYXMgc3JjOgorICAgICAgICAgICAgICAgIHdpdGggb3Blbihvcy5wYXRoLmpvaW4o
Zm9udF9kaXIsICJBaGVtLnR0ZiIpLCAid2IiKSBhcyBkZXN0OgorICAgICAgICAgICAgICAgICAg
ICBkZXN0LndyaXRlKHNyYy5yZWFkKCkpCisKKyAgICAgICAgc2VsZi5sZWFrX3JlcG9ydF9maWxl
ID0gTm9uZQorCisgICAgICAgIGlmIHNlbGYuY2FfY2VydGlmaWNhdGVfcGF0aCBpcyBub3QgTm9u
ZToKKyAgICAgICAgICAgIHNlbGYuc2V0dXBfc3NsKCkKKworICAgICAgICBkZWJ1Z19hcmdzLCBj
bWQgPSBicm93c2VyX2NvbW1hbmQoc2VsZi5wYWNrYWdlX25hbWUsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmJpbmFyeV9hcmdzIGlmIHNlbGYuYmluYXJ5
X2FyZ3MgZWxzZSBbXSArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBbY21kX2FyZygibWFyaW9uZXR0ZSIpLCAiYWJvdXQ6YmxhbmsiXSwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuZGVidWdfaW5mbykKKworICAgICAgICBz
ZWxmLnJ1bm5lciA9IEZlbm5lY0VtdWxhdG9yUnVubmVyKGFwcD1zZWxmLnBhY2thZ2VfbmFtZSwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9maWxlPXNlbGYu
cHJvZmlsZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbWRh
cmdzPWNtZFsxOl0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ZW52PWVudiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzeW1i
b2xzX3BhdGg9c2VsZi5zeW1ib2xzX3BhdGgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgc2VyaWFsPXNlbGYuZGV2aWNlX3NlcmlhbCwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIFRPRE8gLSBjaG9vc2UgYXBwcm9wcmlhdGUg
bG9nIGRpcgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvZ2Rp
cj1vcy5nZXRjd2QoKSkKKworICAgICAgICBzZWxmLmxvZ2dlci5kZWJ1ZygiU3RhcnRpbmcgJXMi
ICUgc2VsZi5wYWNrYWdlX25hbWUpCisgICAgICAgICMgY29ubmVjdCB0byBhIHJ1bm5pbmcgZW11
bGF0b3IKKyAgICAgICAgc2VsZi5ydW5uZXIuZGV2aWNlLmNvbm5lY3QoKQorCisgICAgICAgIHNl
bGYucnVubmVyLnN0b3AoKQorICAgICAgICBzZWxmLnJ1bm5lci5zdGFydChkZWJ1Z19hcmdzPWRl
YnVnX2FyZ3MsCisgICAgICAgICAgICAgICAgICAgICAgICAgIGludGVyYWN0aXZlPXNlbGYuZGVi
dWdfaW5mbyBhbmQgc2VsZi5kZWJ1Z19pbmZvLmludGVyYWN0aXZlKQorCisgICAgICAgIHNlbGYu
cnVubmVyLmRldmljZS5kZXZpY2UuZm9yd2FyZCgKKyAgICAgICAgICAgIGxvY2FsPSJ0Y3A6e30i
LmZvcm1hdChzZWxmLm1hcmlvbmV0dGVfcG9ydCksCisgICAgICAgICAgICByZW1vdGU9InRjcDp7
fSIuZm9ybWF0KHNlbGYubWFyaW9uZXR0ZV9wb3J0KSkKKworICAgICAgICBmb3IgcG9ydHMgaW4g
c2VsZi5jb25maWcucG9ydHMudmFsdWVzKCk6CisgICAgICAgICAgICBmb3IgcG9ydCBpbiBwb3J0
czoKKyAgICAgICAgICAgICAgICBzZWxmLnJ1bm5lci5kZXZpY2UuZGV2aWNlLnJldmVyc2UoCisg
ICAgICAgICAgICAgICAgICAgIGxvY2FsPSJ0Y3A6e30iLmZvcm1hdChwb3J0KSwKKyAgICAgICAg
ICAgICAgICAgICAgcmVtb3RlPSJ0Y3A6e30iLmZvcm1hdChwb3J0KSkKKworICAgICAgICBzZWxm
LmxvZ2dlci5kZWJ1ZygiJXMgU3RhcnRlZCIgJSBzZWxmLnBhY2thZ2VfbmFtZSkKKworICAgIGRl
ZiBzdG9wKHNlbGYsIGZvcmNlPUZhbHNlKToKKyAgICAgICAgaWYgc2VsZi5ydW5uZXIgaXMgbm90
IE5vbmU6CisgICAgICAgICAgICBpZiBzZWxmLnJ1bm5lci5kZXZpY2UuY29ubmVjdGVkOgorICAg
ICAgICAgICAgICAgIHRyeToKKyAgICAgICAgICAgICAgICAgICAgc2VsZi5ydW5uZXIuZGV2aWNl
LmRldmljZS5yZW1vdmVfZm9yd2FyZHMoKQorICAgICAgICAgICAgICAgICAgICBzZWxmLnJ1bm5l
ci5kZXZpY2UuZGV2aWNlLnJlbW92ZV9yZXZlcnNlcygpCisgICAgICAgICAgICAgICAgZXhjZXB0
IEV4Y2VwdGlvbiBhcyBlOgorICAgICAgICAgICAgICAgICAgICBzZWxmLmxvZ2dlci53YXJuaW5n
KCJGYWlsZWQgdG8gcmVtb3ZlIGZvcndhcmRlZCBvciByZXZlcnNlZCBwb3J0czogJXMiICUgZSkK
KyAgICAgICAgICAgICMgV2UgYXNzdW1lIHRoYXQgc3RvcHBpbmcgdGhlIHJ1bm5lciBwcm9tcHRz
IHRoZQorICAgICAgICAgICAgIyBicm93c2VyIHRvIHNodXQgZG93bi4KKyAgICAgICAgICAgIHNl
bGYucnVubmVyLnN0b3AoKQorICAgICAgICBzZWxmLmxvZ2dlci5kZWJ1Zygic3RvcHBlZCIpCisK
KyAgICBkZWYgY2hlY2tfY3Jhc2goc2VsZiwgcHJvY2VzcywgdGVzdCk6CisgICAgICAgIGlmIG5v
dCBvcy5lbnZpcm9uLmdldCgiTUlOSURVTVBfU1RBQ0tXQUxLIiwgIiIpIGFuZCBzZWxmLnN0YWNr
d2Fsa19iaW5hcnk6CisgICAgICAgICAgICBvcy5lbnZpcm9uWyJNSU5JRFVNUF9TVEFDS1dBTEsi
XSA9IHNlbGYuc3RhY2t3YWxrX2JpbmFyeQorICAgICAgICByZXR1cm4gYm9vbChzZWxmLnJ1bm5l
ci5jaGVja19mb3JfY3Jhc2hlcyh0ZXN0X25hbWU9dGVzdCkpCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRy
dW5uZXIvYnJvd3NlcnMvaWUucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvYnJvd3NlcnMvaWUucHkKaW5kZXgg
YTA3MzBmOGJhMjllYThiNjViNTY3MDlhNGY5NmFjNTg5NDA3OGQ5NC4uNjM1ZTgyN2MyOTViNWIx
MTkyODIyZjUxZDkzYTRiMDllMzc2NDE5MiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2Jyb3dz
ZXJzL2llLnB5CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9icm93c2Vycy9pZS5weQpAQCAtMSwyMCArMSwx
OCBAQAogZnJvbSAuYmFzZSBpbXBvcnQgQnJvd3NlciwgRXhlY3V0b3JCcm93c2VyLCByZXF1aXJl
X2FyZworZnJvbSAuYmFzZSBpbXBvcnQgZ2V0X3RpbWVvdXRfbXVsdGlwbGllciAgICMgbm9xYTog
RjQwMQogZnJvbSAuLndlYmRyaXZlcl9zZXJ2ZXIgaW1wb3J0IEludGVybmV0RXhwbG9yZXJEcml2
ZXJTZXJ2ZXIKIGZyb20gLi5leGVjdXRvcnMgaW1wb3J0IGV4ZWN1dG9yX2t3YXJncyBhcyBiYXNl
X2V4ZWN1dG9yX2t3YXJncwotZnJvbSAuLmV4ZWN1dG9ycy5leGVjdXRvcnNlbGVuaXVtIGltcG9y
dCAoU2VsZW5pdW1UZXN0aGFybmVzc0V4ZWN1dG9yLCAgIyBub3FhOiBGNDAxCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTZWxlbml1bVJlZlRlc3RFeGVjdXRvcikg
ICMgbm9xYTogRjQwMQogZnJvbSAuLmV4ZWN1dG9ycy5leGVjdXRvcmludGVybmV0ZXhwbG9yZXIg
aW1wb3J0IEludGVybmV0RXhwbG9yZXJEcml2ZXJXZHNwZWNFeGVjdXRvciAgIyBub3FhOiBGNDAx
CiAKIF9fd3B0cnVubmVyX18gPSB7InByb2R1Y3QiOiAiaWUiLAogICAgICAgICAgICAgICAgICAi
Y2hlY2tfYXJncyI6ICJjaGVja19hcmdzIiwKICAgICAgICAgICAgICAgICAgImJyb3dzZXIiOiAi
SW50ZXJuZXRFeHBsb3JlckJyb3dzZXIiLAotICAgICAgICAgICAgICAgICAiZXhlY3V0b3IiOiB7
InRlc3RoYXJuZXNzIjogIlNlbGVuaXVtVGVzdGhhcm5lc3NFeGVjdXRvciIsCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAicmVmdGVzdCI6ICJTZWxlbml1bVJlZlRlc3RFeGVjdXRvciIs
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAid2RzcGVjIjogIkludGVybmV0RXhwbG9y
ZXJEcml2ZXJXZHNwZWNFeGVjdXRvciJ9LAorICAgICAgICAgICAgICAgICAiZXhlY3V0b3IiOiB7
Indkc3BlYyI6ICJJbnRlcm5ldEV4cGxvcmVyRHJpdmVyV2RzcGVjRXhlY3V0b3IifSwKICAgICAg
ICAgICAgICAgICAgImJyb3dzZXJfa3dhcmdzIjogImJyb3dzZXJfa3dhcmdzIiwKICAgICAgICAg
ICAgICAgICAgImV4ZWN1dG9yX2t3YXJncyI6ICJleGVjdXRvcl9rd2FyZ3MiLAogICAgICAgICAg
ICAgICAgICAiZW52X2V4dHJhcyI6ICJlbnZfZXh0cmFzIiwKLSAgICAgICAgICAgICAgICAgImVu
dl9vcHRpb25zIjogImVudl9vcHRpb25zIn0KKyAgICAgICAgICAgICAgICAgImVudl9vcHRpb25z
IjogImVudl9vcHRpb25zIiwKKyAgICAgICAgICAgICAgICAgInRpbWVvdXRfbXVsdGlwbGllciI6
ICJnZXRfdGltZW91dF9tdWx0aXBsaWVyIn0KIAogCiBkZWYgY2hlY2tfYXJncygqKmt3YXJncyk6
CkBAIC02Niw3ICs2NCw3IEBAIGNsYXNzIEludGVybmV0RXhwbG9yZXJCcm93c2VyKEJyb3dzZXIp
OgogICAgICAgICAjIFRPRE8oYXRvKTogVGhpcyBvbmx5IGluZGljYXRlcyB0aGUgc2VydmVyIGlz
IGFsaXZlLAogICAgICAgICAjIGFuZCBkb2Vzbid0IHNheSBhbnl0aGluZyBhYm91dCB3aGV0aGVy
IGEgYnJvd3NlciBzZXNzaW9uCiAgICAgICAgICMgaXMgYWN0aXZlLgotICAgICAgICByZXR1cm4g
c2VsZi5zZXJ2ZXIuaXNfYWxpdmUoKQorICAgICAgICByZXR1cm4gc2VsZi5zZXJ2ZXIuaXNfYWxp
dmUKIAogICAgIGRlZiBjbGVhbnVwKHNlbGYpOgogICAgICAgICBzZWxmLnN0b3AoKQpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93
cHRydW5uZXIvd3B0cnVubmVyL2Jyb3dzZXJzL29wZXJhLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2Jyb3dz
ZXJzL29wZXJhLnB5CmluZGV4IGM1YWVhYWFmOTY3ZWZkYmIzZTc4OTdmNzE4NGQ3NDMwZmUwMWZl
MGMuLjU1YzA1MDllZWQ5MmEyYWJlMjdjZDYyY2U0MGQ3NDlkZGFjYjZhODMgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVu
bmVyL3dwdHJ1bm5lci9icm93c2Vycy9vcGVyYS5weQorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvYnJvd3Nl
cnMvb3BlcmEucHkKQEAgLTEsNCArMSw1IEBACiBmcm9tIC5iYXNlIGltcG9ydCBCcm93c2VyLCBF
eGVjdXRvckJyb3dzZXIsIHJlcXVpcmVfYXJnCitmcm9tIC5iYXNlIGltcG9ydCBnZXRfdGltZW91
dF9tdWx0aXBsaWVyICAgIyBub3FhOiBGNDAxCiBmcm9tIC4ud2ViZHJpdmVyX3NlcnZlciBpbXBv
cnQgT3BlcmFEcml2ZXJTZXJ2ZXIKIGZyb20gLi5leGVjdXRvcnMgaW1wb3J0IGV4ZWN1dG9yX2t3
YXJncyBhcyBiYXNlX2V4ZWN1dG9yX2t3YXJncwogZnJvbSAuLmV4ZWN1dG9ycy5leGVjdXRvcnNl
bGVuaXVtIGltcG9ydCAoU2VsZW5pdW1UZXN0aGFybmVzc0V4ZWN1dG9yLCAgIyBub3FhOiBGNDAx
CkBAIC0xNSw3ICsxNiw4IEBAIF9fd3B0cnVubmVyX18gPSB7InByb2R1Y3QiOiAib3BlcmEiLAog
ICAgICAgICAgICAgICAgICAiYnJvd3Nlcl9rd2FyZ3MiOiAiYnJvd3Nlcl9rd2FyZ3MiLAogICAg
ICAgICAgICAgICAgICAiZXhlY3V0b3Jfa3dhcmdzIjogImV4ZWN1dG9yX2t3YXJncyIsCiAgICAg
ICAgICAgICAgICAgICJlbnZfZXh0cmFzIjogImVudl9leHRyYXMiLAotICAgICAgICAgICAgICAg
ICAiZW52X29wdGlvbnMiOiAiZW52X29wdGlvbnMifQorICAgICAgICAgICAgICAgICAiZW52X29w
dGlvbnMiOiAiZW52X29wdGlvbnMiLAorICAgICAgICAgICAgICAgICAidGltZW91dF9tdWx0aXBs
aWVyIjogImdldF90aW1lb3V0X211bHRpcGxpZXIifQogCiAKIGRlZiBjaGVja19hcmdzKCoqa3dh
cmdzKToKQEAgLTkxLDcgKzkzLDcgQEAgY2xhc3MgT3BlcmFCcm93c2VyKEJyb3dzZXIpOgogICAg
ICAgICAjIFRPRE8oYXRvKTogVGhpcyBvbmx5IGluZGljYXRlcyB0aGUgZHJpdmVyIGlzIGFsaXZl
LAogICAgICAgICAjIGFuZCBkb2Vzbid0IHNheSBhbnl0aGluZyBhYm91dCB3aGV0aGVyIGEgYnJv
d3NlciBzZXNzaW9uCiAgICAgICAgICMgaXMgYWN0aXZlLgotICAgICAgICByZXR1cm4gc2VsZi5z
ZXJ2ZXIuaXNfYWxpdmUoKQorICAgICAgICByZXR1cm4gc2VsZi5zZXJ2ZXIuaXNfYWxpdmUKIAog
ICAgIGRlZiBjbGVhbnVwKHNlbGYpOgogICAgICAgICBzZWxmLnN0b3AoKQpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5u
ZXIvd3B0cnVubmVyL2Jyb3dzZXJzL3NhZmFyaS5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9icm93c2Vycy9z
YWZhcmkucHkKaW5kZXggNjcwMDk4ZWEyMjIxNmIzNTU4ZWMyZDUwZmM2ZjE5MGIwYjJkZmU5Ny4u
ZjRmZDMzMTNmOWZiYmMxYmYxN2Y4NzBkMzk1MDY5NDZiOTUzOGI2NyAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIv
d3B0cnVubmVyL2Jyb3dzZXJzL3NhZmFyaS5weQorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvYnJvd3NlcnMv
c2FmYXJpLnB5CkBAIC0xLDIxICsxLDIzIEBACiBmcm9tIC5iYXNlIGltcG9ydCBCcm93c2VyLCBF
eGVjdXRvckJyb3dzZXIsIHJlcXVpcmVfYXJnCitmcm9tIC5iYXNlIGltcG9ydCBnZXRfdGltZW91
dF9tdWx0aXBsaWVyICAgIyBub3FhOiBGNDAxCiBmcm9tIC4ud2ViZHJpdmVyX3NlcnZlciBpbXBv
cnQgU2FmYXJpRHJpdmVyU2VydmVyCiBmcm9tIC4uZXhlY3V0b3JzIGltcG9ydCBleGVjdXRvcl9r
d2FyZ3MgYXMgYmFzZV9leGVjdXRvcl9rd2FyZ3MKLWZyb20gLi5leGVjdXRvcnMuZXhlY3V0b3Jz
ZWxlbml1bSBpbXBvcnQgKFNlbGVuaXVtVGVzdGhhcm5lc3NFeGVjdXRvciwgICMgbm9xYTogRjQw
MQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU2VsZW5pdW1SZWZU
ZXN0RXhlY3V0b3IpICAjIG5vcWE6IEY0MDEKK2Zyb20gLi5leGVjdXRvcnMuZXhlY3V0b3J3ZWJk
cml2ZXIgaW1wb3J0IChXZWJEcml2ZXJUZXN0aGFybmVzc0V4ZWN1dG9yLCAgIyBub3FhOiBGNDAx
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgV2ViRHJpdmVyUmVm
VGVzdEV4ZWN1dG9yKSAgIyBub3FhOiBGNDAxCiBmcm9tIC4uZXhlY3V0b3JzLmV4ZWN1dG9yc2Fm
YXJpIGltcG9ydCBTYWZhcmlEcml2ZXJXZHNwZWNFeGVjdXRvciAgIyBub3FhOiBGNDAxCiAKIAog
X193cHRydW5uZXJfXyA9IHsicHJvZHVjdCI6ICJzYWZhcmkiLAogICAgICAgICAgICAgICAgICAi
Y2hlY2tfYXJncyI6ICJjaGVja19hcmdzIiwKICAgICAgICAgICAgICAgICAgImJyb3dzZXIiOiAi
U2FmYXJpQnJvd3NlciIsCi0gICAgICAgICAgICAgICAgICJleGVjdXRvciI6IHsidGVzdGhhcm5l
c3MiOiAiU2VsZW5pdW1UZXN0aGFybmVzc0V4ZWN1dG9yIiwKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICJyZWZ0ZXN0IjogIlNlbGVuaXVtUmVmVGVzdEV4ZWN1dG9yIiwKKyAgICAgICAg
ICAgICAgICAgImV4ZWN1dG9yIjogeyJ0ZXN0aGFybmVzcyI6ICJXZWJEcml2ZXJUZXN0aGFybmVz
c0V4ZWN1dG9yIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJyZWZ0ZXN0IjogIldl
YkRyaXZlclJlZlRlc3RFeGVjdXRvciIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAi
d2RzcGVjIjogIlNhZmFyaURyaXZlcldkc3BlY0V4ZWN1dG9yIn0sCiAgICAgICAgICAgICAgICAg
ICJicm93c2VyX2t3YXJncyI6ICJicm93c2VyX2t3YXJncyIsCiAgICAgICAgICAgICAgICAgICJl
eGVjdXRvcl9rd2FyZ3MiOiAiZXhlY3V0b3Jfa3dhcmdzIiwKICAgICAgICAgICAgICAgICAgImVu
dl9leHRyYXMiOiAiZW52X2V4dHJhcyIsCi0gICAgICAgICAgICAgICAgICJlbnZfb3B0aW9ucyI6
ICJlbnZfb3B0aW9ucyJ9CisgICAgICAgICAgICAgICAgICJlbnZfb3B0aW9ucyI6ICJlbnZfb3B0
aW9ucyIsCisgICAgICAgICAgICAgICAgICJ0aW1lb3V0X211bHRpcGxpZXIiOiAiZ2V0X3RpbWVv
dXRfbXVsdGlwbGllciJ9CiAKIAogZGVmIGNoZWNrX2FyZ3MoKiprd2FyZ3MpOgpAQCAtMzMsNiAr
MzUsOCBAQCBkZWYgZXhlY3V0b3Jfa3dhcmdzKHRlc3RfdHlwZSwgc2VydmVyX2NvbmZpZywgY2Fj
aGVfbWFuYWdlciwgcnVuX2luZm9fZGF0YSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBjYWNoZV9tYW5hZ2VyLCBydW5faW5mb19kYXRhLCAqKmt3YXJncykKICAg
ICBleGVjdXRvcl9rd2FyZ3NbImNsb3NlX2FmdGVyX2RvbmUiXSA9IFRydWUKICAgICBleGVjdXRv
cl9rd2FyZ3NbImNhcGFiaWxpdGllcyJdID0ge30KKyAgICBpZiB0ZXN0X3R5cGUgPT0gInRlc3Ro
YXJuZXNzIjoKKyAgICAgICAgZXhlY3V0b3Jfa3dhcmdzWyJjYXBhYmlsaXRpZXMiXVsicGFnZUxv
YWRTdHJhdGVneSJdID0gImVhZ2VyIgogICAgIGlmIGt3YXJnc1siYmluYXJ5Il0gaXMgbm90IE5v
bmU6CiAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoIlNhZmFyaSBkb2Vzbid0IHN1cHBvcnQgc2V0
dGluZyBleGVjdXRhYmxlIGxvY2F0aW9uIikKIApAQCAtNzUsNyArNzksNyBAQCBjbGFzcyBTYWZh
cmlCcm93c2VyKEJyb3dzZXIpOgogICAgICAgICAjIFRPRE8oYXRvKTogVGhpcyBvbmx5IGluZGlj
YXRlcyB0aGUgZHJpdmVyIGlzIGFsaXZlLAogICAgICAgICAjIGFuZCBkb2Vzbid0IHNheSBhbnl0
aGluZyBhYm91dCB3aGV0aGVyIGEgYnJvd3NlciBzZXNzaW9uCiAgICAgICAgICMgaXMgYWN0aXZl
LgotICAgICAgICByZXR1cm4gc2VsZi5zZXJ2ZXIuaXNfYWxpdmUoKQorICAgICAgICByZXR1cm4g
c2VsZi5zZXJ2ZXIuaXNfYWxpdmUKIAogICAgIGRlZiBjbGVhbnVwKHNlbGYpOgogICAgICAgICBz
ZWxmLnN0b3AoKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2Jyb3dzZXJzL3NhdWNlLnB5IGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5u
ZXIvd3B0cnVubmVyL2Jyb3dzZXJzL3NhdWNlLnB5CmluZGV4IDlhYTQ4NGFjY2Q0N2QwZDRjZDg2
NGIxOTQ5MTE3NGE3NzU0MjFkN2EuLjMzMDFjNzViMjEwMDRhNTU0ZjkxZDQ3NjdiODU2MGZjNDAy
MTQ0MTIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9icm93c2Vycy9zYXVjZS5weQorKysgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5l
ci93cHRydW5uZXIvYnJvd3NlcnMvc2F1Y2UucHkKQEAgLTE0LDYgKzE0LDcgQEAgZnJvbSBjU3Ry
aW5nSU8gaW1wb3J0IFN0cmluZ0lPIGFzIENTdHJpbmdJTwogaW1wb3J0IHJlcXVlc3RzCiAKIGZy
b20gLmJhc2UgaW1wb3J0IEJyb3dzZXIsIEV4ZWN1dG9yQnJvd3NlciwgcmVxdWlyZV9hcmcKK2Zy
b20gLmJhc2UgaW1wb3J0IGdldF90aW1lb3V0X211bHRpcGxpZXIgICAjIG5vcWE6IEY0MDEKIGZy
b20gLi5leGVjdXRvcnMgaW1wb3J0IGV4ZWN1dG9yX2t3YXJncyBhcyBiYXNlX2V4ZWN1dG9yX2t3
YXJncwogZnJvbSAuLmV4ZWN1dG9ycy5leGVjdXRvcnNlbGVuaXVtIGltcG9ydCAoU2VsZW5pdW1U
ZXN0aGFybmVzc0V4ZWN1dG9yLCAgIyBub3FhOiBGNDAxCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBTZWxlbml1bVJlZlRlc3RFeGVjdXRvcikgICMgbm9xYTogRjQw
MQpAQCAtMzIsNyArMzMsOCBAQCBfX3dwdHJ1bm5lcl9fID0geyJwcm9kdWN0IjogInNhdWNlIiwK
ICAgICAgICAgICAgICAgICAgImJyb3dzZXJfa3dhcmdzIjogImJyb3dzZXJfa3dhcmdzIiwKICAg
ICAgICAgICAgICAgICAgImV4ZWN1dG9yX2t3YXJncyI6ICJleGVjdXRvcl9rd2FyZ3MiLAogICAg
ICAgICAgICAgICAgICAiZW52X2V4dHJhcyI6ICJlbnZfZXh0cmFzIiwKLSAgICAgICAgICAgICAg
ICAgImVudl9vcHRpb25zIjogImVudl9vcHRpb25zIn0KKyAgICAgICAgICAgICAgICAgImVudl9v
cHRpb25zIjogImVudl9vcHRpb25zIiwKKyAgICAgICAgICAgICAgICAgInRpbWVvdXRfbXVsdGlw
bGllciI6ICJnZXRfdGltZW91dF9tdWx0aXBsaWVyIn0KIAogCiBkZWYgZ2V0X2NhcGFiaWxpdGll
cygqKmt3YXJncyk6CkBAIC0xMzMsNiArMTM1LDggQEAgY2xhc3MgU2F1Y2VDb25uZWN0KCk6CiAg
ICAgICAgIHNlbGYuc2F1Y2Vfa2V5ID0ga3dhcmdzWyJzYXVjZV9rZXkiXQogICAgICAgICBzZWxm
LnNhdWNlX3R1bm5lbF9pZCA9IGt3YXJnc1sic2F1Y2VfdHVubmVsX2lkIl0KICAgICAgICAgc2Vs
Zi5zYXVjZV9jb25uZWN0X2JpbmFyeSA9IGt3YXJncy5nZXQoInNhdWNlX2Nvbm5lY3RfYmluYXJ5
IikKKyAgICAgICAgc2VsZi5zYXVjZV9jb25uZWN0X2FyZ3MgPSBrd2FyZ3MuZ2V0KCJzYXVjZV9j
b25uZWN0X2FyZ3MiKQorICAgICAgICBzZWxmLnNhdWNlX2luaXRfdGltZW91dCA9IGt3YXJncy5n
ZXQoInNhdWNlX2luaXRfdGltZW91dCIpCiAgICAgICAgIHNlbGYuc2NfcHJvY2VzcyA9IE5vbmUK
ICAgICAgICAgc2VsZi50ZW1wX2RpciA9IE5vbmUKICAgICAgICAgc2VsZi5lbnZfY29uZmlnID0g
Tm9uZQpAQCAtMTcwLDE0ICsxNzQsMTEgQEAgY2xhc3MgU2F1Y2VDb25uZWN0KCk6CiAgICAgICAg
ICAgICAiLS1yZWFkeWZpbGU9Li9zYXVjZV9pc19yZWFkeSIsCiAgICAgICAgICAgICAiLS10dW5u
ZWwtZG9tYWlucyIsCiAgICAgICAgICAgICAiLCIuam9pbihzZWxmLmVudl9jb25maWcuZG9tYWlu
c19zZXQpCi0gICAgICAgIF0pCi0KLSAgICAgICAgIyBUaW1lb3V0IGNvbmZpZyB2YXJzCi0gICAg
ICAgIG1heF93YWl0ID0gMzAKKyAgICAgICAgXSArIHNlbGYuc2F1Y2VfY29ubmVjdF9hcmdzKQog
CiAgICAgICAgIHRvdF93YWl0ID0gMAogICAgICAgICB3aGlsZSBub3Qgb3MucGF0aC5leGlzdHMo
Jy4vc2F1Y2VfaXNfcmVhZHknKSBhbmQgc2VsZi5zY19wcm9jZXNzLnBvbGwoKSBpcyBOb25lOgot
ICAgICAgICAgICAgaWYgdG90X3dhaXQgPj0gbWF4X3dhaXQ6CisgICAgICAgICAgICBpZiB0b3Rf
d2FpdCA+PSBzZWxmLnNhdWNlX2luaXRfdGltZW91dDoKICAgICAgICAgICAgICAgICBzZWxmLnF1
aXQoKQogCiAgICAgICAgICAgICAgICAgcmFpc2UgU2F1Y2VFeGNlcHRpb24oIlNhdWNlIENvbm5l
Y3QgUHJveHkgd2FzIG5vdCByZWFkeSBhZnRlciAlZCBzZWNvbmRzIiAlIHRvdF93YWl0KQpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy93cHRydW5uZXIvd3B0cnVubmVyL2Jyb3dzZXJzL3NlcnZvLnB5IGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2Jy
b3dzZXJzL3NlcnZvLnB5CmluZGV4IDFhMzU3YTNjZWQ5M2VkZjhmNjViMjFkZGU4ZjA0YjA4ODQ5
YTQ2NjkuLmQzZWQ0YjNmYjFkNDY0ZWNiMDEyYTY4MzIzZGRlN2M5NDJkYjE0ZTEgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0
cnVubmVyL3dwdHJ1bm5lci9icm93c2Vycy9zZXJ2by5weQorKysgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvYnJv
d3NlcnMvc2Vydm8ucHkKQEAgLTEsNiArMSw3IEBACiBpbXBvcnQgb3MKIAogZnJvbSAuYmFzZSBp
bXBvcnQgTnVsbEJyb3dzZXIsIEV4ZWN1dG9yQnJvd3NlciwgcmVxdWlyZV9hcmcKK2Zyb20gLmJh
c2UgaW1wb3J0IGdldF90aW1lb3V0X211bHRpcGxpZXIgICAjIG5vcWE6IEY0MDEKIGZyb20gLi5l
eGVjdXRvcnMgaW1wb3J0IGV4ZWN1dG9yX2t3YXJncyBhcyBiYXNlX2V4ZWN1dG9yX2t3YXJncwog
ZnJvbSAuLmV4ZWN1dG9ycy5leGVjdXRvcnNlcnZvIGltcG9ydCBTZXJ2b1Rlc3RoYXJuZXNzRXhl
Y3V0b3IsIFNlcnZvUmVmVGVzdEV4ZWN1dG9yLCBTZXJ2b1dkc3BlY0V4ZWN1dG9yICAjIG5vcWE6
IEY0MDEKIApAQCAtMTksNiArMjAsNyBAQCBfX3dwdHJ1bm5lcl9fID0gewogICAgICJleGVjdXRv
cl9rd2FyZ3MiOiAiZXhlY3V0b3Jfa3dhcmdzIiwKICAgICAiZW52X2V4dHJhcyI6ICJlbnZfZXh0
cmFzIiwKICAgICAiZW52X29wdGlvbnMiOiAiZW52X29wdGlvbnMiLAorICAgICJ0aW1lb3V0X211
bHRpcGxpZXIiOiAiZ2V0X3RpbWVvdXRfbXVsdGlwbGllciIsCiAgICAgInVwZGF0ZV9wcm9wZXJ0
aWVzIjogInVwZGF0ZV9wcm9wZXJ0aWVzIiwKIH0KIApAQCAtNTksNyArNjEsNyBAQCBkZWYgZW52
X29wdGlvbnMoKToKIAogCiBkZWYgdXBkYXRlX3Byb3BlcnRpZXMoKToKLSAgICByZXR1cm4gWyJk
ZWJ1ZyIsICJvcyIsICJ2ZXJzaW9uIiwgInByb2Nlc3NvciIsICJiaXRzIl0sIE5vbmUKKyAgICBy
ZXR1cm4gWyJkZWJ1ZyIsICJvcyIsICJwcm9jZXNzb3IiXSwgeyJvcyI6IFsidmVyc2lvbiJdLCAi
cHJvY2Vzc29yIjogWyJiaXRzIl19CiAKIAogY2xhc3MgU2Vydm9Ccm93c2VyKE51bGxCcm93c2Vy
KToKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9icm93c2Vycy9zZXJ2b2RyaXZlci5weSBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVy
L3dwdHJ1bm5lci9icm93c2Vycy9zZXJ2b2RyaXZlci5weQppbmRleCA2NDg2YTc4OGI4YzhmYmY0
ZmM1MmRkNDM2ODI2NTU3MTk3NWNhYmI0Li4yOTUzZGUxODE3NGVmNzVkNTA1ZGIwYjhkNTE4ZmUz
MzM5ZjcwNjVlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvYnJvd3NlcnMvc2Vydm9kcml2ZXIu
cHkKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy93cHRydW5uZXIvd3B0cnVubmVyL2Jyb3dzZXJzL3NlcnZvZHJpdmVyLnB5CkBAIC00LDkgKzQs
MTAgQEAgaW1wb3J0IHRlbXBmaWxlCiAKIGZyb20gbW96cHJvY2VzcyBpbXBvcnQgUHJvY2Vzc0hh
bmRsZXIKIAotZnJvbSBzZXJ2ZS5zZXJ2ZSBpbXBvcnQgbWFrZV9ob3N0c19maWxlCitmcm9tIHRv
b2xzLnNlcnZlLnNlcnZlIGltcG9ydCBtYWtlX2hvc3RzX2ZpbGUKIAogZnJvbSAuYmFzZSBpbXBv
cnQgQnJvd3NlciwgcmVxdWlyZV9hcmcsIGdldF9mcmVlX3BvcnQsIGJyb3dzZXJfY29tbWFuZCwg
RXhlY3V0b3JCcm93c2VyCitmcm9tIC5iYXNlIGltcG9ydCBnZXRfdGltZW91dF9tdWx0aXBsaWVy
ICAgIyBub3FhOiBGNDAxCiBmcm9tIC4uZXhlY3V0b3JzIGltcG9ydCBleGVjdXRvcl9rd2FyZ3Mg
YXMgYmFzZV9leGVjdXRvcl9rd2FyZ3MKIGZyb20gLi5leGVjdXRvcnMuZXhlY3V0b3JzZXJ2b2Ry
aXZlciBpbXBvcnQgKFNlcnZvV2ViRHJpdmVyVGVzdGhhcm5lc3NFeGVjdXRvciwgICMgbm9xYTog
RjQwMQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU2Vydm9X
ZWJEcml2ZXJSZWZUZXN0RXhlY3V0b3IpICAjIG5vcWE6IEY0MDEKQEAgLTI1LDYgKzI2LDcgQEAg
X193cHRydW5uZXJfXyA9IHsKICAgICAiZXhlY3V0b3Jfa3dhcmdzIjogImV4ZWN1dG9yX2t3YXJn
cyIsCiAgICAgImVudl9leHRyYXMiOiAiZW52X2V4dHJhcyIsCiAgICAgImVudl9vcHRpb25zIjog
ImVudl9vcHRpb25zIiwKKyAgICAidGltZW91dF9tdWx0aXBsaWVyIjogImdldF90aW1lb3V0X211
bHRpcGxpZXIiLAogICAgICJ1cGRhdGVfcHJvcGVydGllcyI6ICJ1cGRhdGVfcHJvcGVydGllcyIs
CiB9CiAKQEAgLTQwLDYgKzQyLDcgQEAgZGVmIGJyb3dzZXJfa3dhcmdzKHRlc3RfdHlwZSwgcnVu
X2luZm9fZGF0YSwgY29uZmlnLCAqKmt3YXJncyk6CiAgICAgICAgICJkZWJ1Z19pbmZvIjoga3dh
cmdzWyJkZWJ1Z19pbmZvIl0sCiAgICAgICAgICJzZXJ2ZXJfY29uZmlnIjogY29uZmlnLAogICAg
ICAgICAidXNlcl9zdHlsZXNoZWV0cyI6IGt3YXJncy5nZXQoInVzZXJfc3R5bGVzaGVldHMiKSwK
KyAgICAgICAgImhlYWRsZXNzIjoga3dhcmdzLmdldCgiaGVhZGxlc3MiKSwKICAgICB9CiAKIApA
QCAtNjAsNyArNjMsNyBAQCBkZWYgZW52X29wdGlvbnMoKToKIAogCiBkZWYgdXBkYXRlX3Byb3Bl
cnRpZXMoKToKLSAgICByZXR1cm4gWyJkZWJ1ZyIsICJvcyIsICJ2ZXJzaW9uIiwgInByb2Nlc3Nv
ciIsICJiaXRzIl0sIE5vbmUKKyAgICByZXR1cm4gKFsiZGVidWciLCAib3MiLCAicHJvY2Vzc29y
Il0sIHsib3MiOiBbInZlcnNpb24iXSwgInByb2Nlc3NvciI6IFsiYml0cyJdfSkKIAogCiBkZWYg
d3JpdGVfaG9zdHNfZmlsZShjb25maWcpOgpAQCAtNjksMTMgKzcyLDExIEBAIGRlZiB3cml0ZV9o
b3N0c19maWxlKGNvbmZpZyk6CiAgICAgICAgIGYud3JpdGUobWFrZV9ob3N0c19maWxlKGNvbmZp
ZywgIjEyNy4wLjAuMSIpKQogICAgIHJldHVybiBob3N0c19wYXRoCiAKLQogY2xhc3MgU2Vydm9X
ZWJEcml2ZXJCcm93c2VyKEJyb3dzZXIpOgotICAgIHVzZWRfcG9ydHMgPSBzZXQoKQogICAgIGlu
aXRfdGltZW91dCA9IDMwMCAgIyBMYXJnZSB0aW1lb3V0IGZvciBjYXNlcyB3aGVyZSB3ZSdyZSBi
b290aW5nIGFuIEFuZHJvaWQgZW11bGF0b3IKIAogICAgIGRlZiBfX2luaXRfXyhzZWxmLCBsb2dn
ZXIsIGJpbmFyeSwgZGVidWdfaW5mbz1Ob25lLCB3ZWJkcml2ZXJfaG9zdD0iMTI3LjAuMC4xIiwK
LSAgICAgICAgICAgICAgICAgc2VydmVyX2NvbmZpZz1Ob25lLCBiaW5hcnlfYXJncz1Ob25lLCB1
c2VyX3N0eWxlc2hlZXRzPU5vbmUpOgorICAgICAgICAgICAgICAgICBzZXJ2ZXJfY29uZmlnPU5v
bmUsIGJpbmFyeV9hcmdzPU5vbmUsIHVzZXJfc3R5bGVzaGVldHM9Tm9uZSwgaGVhZGxlc3M9Tm9u
ZSk6CiAgICAgICAgIEJyb3dzZXIuX19pbml0X18oc2VsZiwgbG9nZ2VyKQogICAgICAgICBzZWxm
LmJpbmFyeSA9IGJpbmFyeQogICAgICAgICBzZWxmLmJpbmFyeV9hcmdzID0gYmluYXJ5X2FyZ3Mg
b3IgW10KQEAgLTg3LDEwICs4OCwxMSBAQCBjbGFzcyBTZXJ2b1dlYkRyaXZlckJyb3dzZXIoQnJv
d3Nlcik6CiAgICAgICAgIHNlbGYuc2VydmVyX3BvcnRzID0gc2VydmVyX2NvbmZpZy5wb3J0cyBp
ZiBzZXJ2ZXJfY29uZmlnIGVsc2Uge30KICAgICAgICAgc2VsZi5jb21tYW5kID0gTm9uZQogICAg
ICAgICBzZWxmLnVzZXJfc3R5bGVzaGVldHMgPSB1c2VyX3N0eWxlc2hlZXRzIGlmIHVzZXJfc3R5
bGVzaGVldHMgZWxzZSBbXQorICAgICAgICBzZWxmLmhlYWRsZXNzID0gaGVhZGxlc3MgaWYgaGVh
ZGxlc3MgZWxzZSBGYWxzZQorICAgICAgICBzZWxmLmNhX2NlcnRpZmljYXRlX3BhdGggPSBzZXJ2
ZXJfY29uZmlnLnNzbF9jb25maWdbImNhX2NlcnRfcGF0aCJdCiAKICAgICBkZWYgc3RhcnQoc2Vs
ZiwgKiprd2FyZ3MpOgotICAgICAgICBzZWxmLndlYmRyaXZlcl9wb3J0ID0gZ2V0X2ZyZWVfcG9y
dCg0NDQ0LCBleGNsdWRlPXNlbGYudXNlZF9wb3J0cykKLSAgICAgICAgc2VsZi51c2VkX3BvcnRz
LmFkZChzZWxmLndlYmRyaXZlcl9wb3J0KQorICAgICAgICBzZWxmLndlYmRyaXZlcl9wb3J0ID0g
Z2V0X2ZyZWVfcG9ydCgpCiAKICAgICAgICAgZW52ID0gb3MuZW52aXJvbi5jb3B5KCkKICAgICAg
ICAgZW52WyJIT1NUX0ZJTEUiXSA9IHNlbGYuaG9zdHNfcGF0aApAQCAtMTA2LDEyICsxMDgsMTgg
QEAgY2xhc3MgU2Vydm9XZWJEcml2ZXJCcm93c2VyKEJyb3dzZXIpOgogICAgICAgICAgICAgc2Vs
Zi5iaW5hcnksCiAgICAgICAgICAgICBzZWxmLmJpbmFyeV9hcmdzICsgWwogICAgICAgICAgICAg
ICAgICItLWhhcmQtZmFpbCIsCi0gICAgICAgICAgICAgICAgIi0td2ViZHJpdmVyIiwgc3RyKHNl
bGYud2ViZHJpdmVyX3BvcnQpLAorICAgICAgICAgICAgICAgICItLXdlYmRyaXZlcj0lcyIgJSBz
ZWxmLndlYmRyaXZlcl9wb3J0LAogICAgICAgICAgICAgICAgICJhYm91dDpibGFuayIsCiAgICAg
ICAgICAgICBdLAogICAgICAgICAgICAgc2VsZi5kZWJ1Z19pbmZvCiAgICAgICAgICkKIAorICAg
ICAgICBpZiBzZWxmLmhlYWRsZXNzOgorICAgICAgICAgICAgY29tbWFuZCArPSBbIi0taGVhZGxl
c3MiXQorCisgICAgICAgIGlmIHNlbGYuY2FfY2VydGlmaWNhdGVfcGF0aDoKKyAgICAgICAgICAg
IGNvbW1hbmQgKz0gWyItLWNlcnRpZmljYXRlLXBhdGgiLCBzZWxmLmNhX2NlcnRpZmljYXRlX3Bh
dGhdCisKICAgICAgICAgZm9yIHN0eWxlc2hlZXQgaW4gc2VsZi51c2VyX3N0eWxlc2hlZXRzOgog
ICAgICAgICAgICAgY29tbWFuZCArPSBbIi0tdXNlci1zdHlsZXNoZWV0Iiwgc3R5bGVzaGVldF0K
IApAQCAtMTU1LDkgKzE2Myw3IEBAIGNsYXNzIFNlcnZvV2ViRHJpdmVyQnJvd3NlcihCcm93c2Vy
KToKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29tbWFuZD0iICIuam9pbihz
ZWxmLmNvbW1hbmQpKQogCiAgICAgZGVmIGlzX2FsaXZlKHNlbGYpOgotICAgICAgICBpZiBzZWxm
LnJ1bm5lcjoKLSAgICAgICAgICAgIHJldHVybiBzZWxmLnJ1bm5lci5pc19ydW5uaW5nKCkKLSAg
ICAgICAgcmV0dXJuIEZhbHNlCisgICAgICAgIHJldHVybiBzZWxmLnByb2MucG9sbCgpIGlzIE5v
bmUKIAogICAgIGRlZiBjbGVhbnVwKHNlbGYpOgogICAgICAgICBzZWxmLnN0b3AoKQpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93
cHRydW5uZXIvd3B0cnVubmVyL2Jyb3dzZXJzL3czYy1pbXBvcnQubG9nIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVy
L2Jyb3dzZXJzL3czYy1pbXBvcnQubG9nCmluZGV4IDljMjdiMTkwMTNiZTExMGRlODBhNDUyMDFk
MTY5NzUwY2U1OGQ0NjguLjBmMWNmNmUzMDA2YjUwOGVjMzZjYmJhYzBhN2JmMWY4MDNmMjM5MGEg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9icm93c2Vycy93M2MtaW1wb3J0LmxvZworKysgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5l
ci93cHRydW5uZXIvYnJvd3NlcnMvdzNjLWltcG9ydC5sb2cKQEAgLTE1LDEyICsxNSwxNyBAQCBO
b25lCiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0KIExpc3Qgb2YgZmlsZXM6CiAvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2Jyb3dz
ZXJzL19faW5pdF9fLnB5CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2Jyb3dzZXJzL2FuZHJvaWRfd2Vidmlldy5w
eQogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0
cnVubmVyL3dwdHJ1bm5lci9icm93c2Vycy9iYXNlLnB5CiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2Jyb3dzZXJz
L2Nocm9tZS5weQogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9icm93c2Vycy9jaHJvbWVfYW5kcm9pZC5weQorL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVy
L3dwdHJ1bm5lci9icm93c2Vycy9jaHJvbWVfaW9zLnB5CiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2Jyb3dzZXJz
L2VkZ2UucHkKLS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3dwdHJ1bm5lci93cHRydW5uZXIvYnJvd3NlcnMvZmVubmVjLnB5CisvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVy
L2Jyb3dzZXJzL2VkZ2Vfd2ViZHJpdmVyLnB5CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2Jyb3dzZXJzL2VkZ2Vj
aHJvbWl1bS5weQorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9icm93c2Vycy9lcGlwaGFueS5weQogL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1
bm5lci9icm93c2Vycy9maXJlZm94LnB5CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2Jyb3dzZXJzL2ZpcmVmb3hf
YW5kcm9pZC5weQogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9icm93c2Vycy9pZS5weQogL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9i
cm93c2Vycy9vcGVyYS5weQogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9icm93c2Vycy9zYWZhcmkucHkKQEAgLTI4
LDMgKzMzLDQgQEAgTGlzdCBvZiBmaWxlczoKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvYnJvd3NlcnMvc2Vydm8u
cHkKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dw
dHJ1bm5lci93cHRydW5uZXIvYnJvd3NlcnMvc2Vydm9kcml2ZXIucHkKIC9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIv
YnJvd3NlcnMvd2Via2l0LnB5CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2Jyb3dzZXJzL3dlYmtpdGd0a19taW5p
YnJvd3Nlci5weQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2Jyb3dzZXJzL3dlYmtpdC5weSBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVu
bmVyL3dwdHJ1bm5lci9icm93c2Vycy93ZWJraXQucHkKaW5kZXggOTQ4MmYyZjc3NDMzMjQ3NjE1
MGQzZTFiYmI0NTJkNTU0NWUyZWY2OS4uYWEyODYyMTM5NDUwZjY4MmU2MDUxYzVmNjE3YWI4Y2Fm
MTk2MDc4NCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2Jyb3dzZXJzL3dlYmtpdC5weQorKysg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1
bm5lci93cHRydW5uZXIvYnJvd3NlcnMvd2Via2l0LnB5CkBAIC0xLDcgKzEsOCBAQAogZnJvbSAu
YmFzZSBpbXBvcnQgQnJvd3NlciwgRXhlY3V0b3JCcm93c2VyLCByZXF1aXJlX2FyZworZnJvbSAu
YmFzZSBpbXBvcnQgZ2V0X3RpbWVvdXRfbXVsdGlwbGllciwgY2VydGlmaWNhdGVfZG9tYWluX2xp
c3QgICMgbm9xYTogRjQwMQogZnJvbSAuLmV4ZWN1dG9ycyBpbXBvcnQgZXhlY3V0b3Jfa3dhcmdz
IGFzIGJhc2VfZXhlY3V0b3Jfa3dhcmdzCi1mcm9tIC4uZXhlY3V0b3JzLmV4ZWN1dG9yc2VsZW5p
dW0gaW1wb3J0IChTZWxlbml1bVRlc3RoYXJuZXNzRXhlY3V0b3IsICAjIG5vcWE6IEY0MDEKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNlbGVuaXVtUmVmVGVzdEV4
ZWN1dG9yKSAgIyBub3FhOiBGNDAxCitmcm9tIC4uZXhlY3V0b3JzLmV4ZWN1dG9yd2ViZHJpdmVy
IGltcG9ydCAoV2ViRHJpdmVyVGVzdGhhcm5lc3NFeGVjdXRvciwgICMgbm9xYTogRjQwMQorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFdlYkRyaXZlclJlZlRlc3RF
eGVjdXRvcikgICMgbm9xYTogRjQwMQogZnJvbSAuLmV4ZWN1dG9ycy5leGVjdXRvcndlYmtpdCBp
bXBvcnQgV2ViS2l0RHJpdmVyV2RzcGVjRXhlY3V0b3IgICMgbm9xYTogRjQwMQogZnJvbSAuLndl
YmRyaXZlcl9zZXJ2ZXIgaW1wb3J0IFdlYktpdERyaXZlclNlcnZlcgogCkBAIC0xMCwxMiArMTEs
MTQgQEAgX193cHRydW5uZXJfXyA9IHsicHJvZHVjdCI6ICJ3ZWJraXQiLAogICAgICAgICAgICAg
ICAgICAiY2hlY2tfYXJncyI6ICJjaGVja19hcmdzIiwKICAgICAgICAgICAgICAgICAgImJyb3dz
ZXIiOiAiV2ViS2l0QnJvd3NlciIsCiAgICAgICAgICAgICAgICAgICJicm93c2VyX2t3YXJncyI6
ICJicm93c2VyX2t3YXJncyIsCi0gICAgICAgICAgICAgICAgICJleGVjdXRvciI6IHsidGVzdGhh
cm5lc3MiOiAiU2VsZW5pdW1UZXN0aGFybmVzc0V4ZWN1dG9yIiwKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICJyZWZ0ZXN0IjogIlNlbGVuaXVtUmVmVGVzdEV4ZWN1dG9yIiwKKyAgICAg
ICAgICAgICAgICAgImV4ZWN1dG9yIjogeyJ0ZXN0aGFybmVzcyI6ICJXZWJEcml2ZXJUZXN0aGFy
bmVzc0V4ZWN1dG9yIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJyZWZ0ZXN0Ijog
IldlYkRyaXZlclJlZlRlc3RFeGVjdXRvciIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAid2RzcGVjIjogIldlYktpdERyaXZlcldkc3BlY0V4ZWN1dG9yIn0sCiAgICAgICAgICAgICAg
ICAgICJleGVjdXRvcl9rd2FyZ3MiOiAiZXhlY3V0b3Jfa3dhcmdzIiwKICAgICAgICAgICAgICAg
ICAgImVudl9leHRyYXMiOiAiZW52X2V4dHJhcyIsCi0gICAgICAgICAgICAgICAgICJlbnZfb3B0
aW9ucyI6ICJlbnZfb3B0aW9ucyJ9CisgICAgICAgICAgICAgICAgICJlbnZfb3B0aW9ucyI6ICJl
bnZfb3B0aW9ucyIsCisgICAgICAgICAgICAgICAgICJydW5faW5mb19leHRyYXMiOiAicnVuX2lu
Zm9fZXh0cmFzIiwKKyAgICAgICAgICAgICAgICAgInRpbWVvdXRfbXVsdGlwbGllciI6ICJnZXRf
dGltZW91dF9tdWx0aXBsaWVyIn0KIAogCiBkZWYgY2hlY2tfYXJncygqKmt3YXJncyk6CkBAIC0z
MSwxOSArMzQsMjAgQEAgZGVmIGJyb3dzZXJfa3dhcmdzKHRlc3RfdHlwZSwgcnVuX2luZm9fZGF0
YSwgY29uZmlnLCAqKmt3YXJncyk6CiAKIAogZGVmIGNhcGFiaWxpdGllc19mb3JfcG9ydChzZXJ2
ZXJfY29uZmlnLCAqKmt3YXJncyk6Ci0gICAgZnJvbSBzZWxlbml1bS53ZWJkcml2ZXIgaW1wb3J0
IERlc2lyZWRDYXBhYmlsaXRpZXMKLQotICAgIGlmIGt3YXJnc1sid2Via2l0X3BvcnQiXSA9PSAi
Z3RrIjoKLSAgICAgICAgY2FwYWJpbGl0aWVzID0gZGljdChEZXNpcmVkQ2FwYWJpbGl0aWVzLldF
QktJVEdUSy5jb3B5KCkpCi0gICAgICAgIGNhcGFiaWxpdGllc1sid2Via2l0Z3RrOmJyb3dzZXJP
cHRpb25zIl0gPSB7Ci0gICAgICAgICAgICAiYmluYXJ5Ijoga3dhcmdzWyJiaW5hcnkiXSwKLSAg
ICAgICAgICAgICJhcmdzIjoga3dhcmdzLmdldCgiYmluYXJ5X2FyZ3MiLCBbXSksCi0gICAgICAg
ICAgICAiY2VydGlmaWNhdGVzIjogWwotICAgICAgICAgICAgICAgIHsiaG9zdCI6IHNlcnZlcl9j
b25maWdbImJyb3dzZXJfaG9zdCJdLAotICAgICAgICAgICAgICAgICAiY2VydGlmaWNhdGVGaWxl
Ijoga3dhcmdzWyJob3N0X2NlcnRfcGF0aCJdfQotICAgICAgICAgICAgXQotICAgICAgICB9Ci0g
ICAgICAgIHJldHVybiBjYXBhYmlsaXRpZXMKKyAgICBwb3J0X25hbWUgPSBrd2FyZ3NbIndlYmtp
dF9wb3J0Il0KKyAgICBpZiBwb3J0X25hbWUgaW4gWyJndGsiLCAid3BlIl06CisgICAgICAgIHBv
cnRfa2V5X21hcCA9IHsiZ3RrIjogIndlYmtpdGd0ayJ9CisgICAgICAgIGJyb3dzZXJfb3B0aW9u
c19wb3J0ID0gcG9ydF9rZXlfbWFwLmdldChwb3J0X25hbWUsIHBvcnRfbmFtZSkKKyAgICAgICAg
YnJvd3Nlcl9vcHRpb25zX2tleSA9ICIlczpicm93c2VyT3B0aW9ucyIgJSBicm93c2VyX29wdGlv
bnNfcG9ydAorCisgICAgICAgIHJldHVybiB7CisgICAgICAgICAgICAiYnJvd3Nlck5hbWUiOiAi
TWluaUJyb3dzZXIiLAorICAgICAgICAgICAgImJyb3dzZXJWZXJzaW9uIjogIjIuMjAiLAorICAg
ICAgICAgICAgInBsYXRmb3JtTmFtZSI6ICJBTlkiLAorICAgICAgICAgICAgYnJvd3Nlcl9vcHRp
b25zX2tleTogeworICAgICAgICAgICAgICAgICJiaW5hcnkiOiBrd2FyZ3NbImJpbmFyeSJdLAor
ICAgICAgICAgICAgICAgICJhcmdzIjoga3dhcmdzLmdldCgiYmluYXJ5X2FyZ3MiLCBbXSksCisg
ICAgICAgICAgICAgICAgImNlcnRpZmljYXRlcyI6IGNlcnRpZmljYXRlX2RvbWFpbl9saXN0KHNl
cnZlcl9jb25maWcuZG9tYWluc19zZXQsIGt3YXJnc1siaG9zdF9jZXJ0X3BhdGgiXSl9fQogCiAg
ICAgcmV0dXJuIHt9CiAKQEAgLTY2LDYgKzcwLDEwIEBAIGRlZiBlbnZfb3B0aW9ucygpOgogICAg
IHJldHVybiB7fQogCiAKK2RlZiBydW5faW5mb19leHRyYXMoKiprd2FyZ3MpOgorICAgIHJldHVy
biB7IndlYmtpdF9wb3J0Ijoga3dhcmdzWyJ3ZWJraXRfcG9ydCJdfQorCisKIGNsYXNzIFdlYktp
dEJyb3dzZXIoQnJvd3Nlcik6CiAgICAgIiIiR2VuZXJpYyBXZWJLaXQgYnJvd3NlciBpcyBiYWNr
ZWQgYnkgV2ViS2l0J3MgV2ViRHJpdmVyIGltcGxlbWVudGF0aW9uLAogICAgIHdoaWNoIGlzIHN1
cHBsaWVkIHRocm91Z2ggYGB3cHRydW5uZXIud2ViZHJpdmVyLldlYktpdERyaXZlclNlcnZlcmBg
LgpAQCAtOTEsNyArOTksNyBAQCBjbGFzcyBXZWJLaXRCcm93c2VyKEJyb3dzZXIpOgogICAgICAg
ICAjIFRPRE8oYXRvKTogVGhpcyBvbmx5IGluZGljYXRlcyB0aGUgZHJpdmVyIGlzIGFsaXZlLAog
ICAgICAgICAjIGFuZCBkb2Vzbid0IHNheSBhbnl0aGluZyBhYm91dCB3aGV0aGVyIGEgYnJvd3Nl
ciBzZXNzaW9uCiAgICAgICAgICMgaXMgYWN0aXZlLgotICAgICAgICByZXR1cm4gc2VsZi5zZXJ2
ZXIuaXNfYWxpdmUoKQorICAgICAgICByZXR1cm4gc2VsZi5zZXJ2ZXIuaXNfYWxpdmUKIAogICAg
IGRlZiBjbGVhbnVwKHNlbGYpOgogICAgICAgICBzZWxmLnN0b3AoKQpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIv
d3B0cnVubmVyL2Jyb3dzZXJzL3dlYmtpdGd0a19taW5pYnJvd3Nlci5weSBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5l
ci9icm93c2Vycy93ZWJraXRndGtfbWluaWJyb3dzZXIucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDczNWYzYzA3
OTJhNjM1NmM2MjcwMTQzMjA1YzU1YjdjMDJlZWY0NwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dw
dHJ1bm5lci9icm93c2Vycy93ZWJraXRndGtfbWluaWJyb3dzZXIucHkKQEAgLTAsMCArMSw3OSBA
QAorZnJvbSAuYmFzZSBpbXBvcnQgZ2V0X3RpbWVvdXRfbXVsdGlwbGllciwgbWF5YmVfYWRkX2Fy
Z3MsIGNlcnRpZmljYXRlX2RvbWFpbl9saXN0ICAjIG5vcWE6IEY0MDEKK2Zyb20gLndlYmtpdCBp
bXBvcnQgV2ViS2l0QnJvd3NlcgorZnJvbSAuLmV4ZWN1dG9ycyBpbXBvcnQgZXhlY3V0b3Jfa3dh
cmdzIGFzIGJhc2VfZXhlY3V0b3Jfa3dhcmdzCitmcm9tIC4uZXhlY3V0b3JzLmV4ZWN1dG9yd2Vi
ZHJpdmVyIGltcG9ydCAoV2ViRHJpdmVyVGVzdGhhcm5lc3NFeGVjdXRvciwgICMgbm9xYTogRjQw
MQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFdlYkRyaXZlclJl
ZlRlc3RFeGVjdXRvcikgICMgbm9xYTogRjQwMQorZnJvbSAuLmV4ZWN1dG9ycy5leGVjdXRvcndl
YmtpdCBpbXBvcnQgV2ViS2l0RHJpdmVyV2RzcGVjRXhlY3V0b3IgICMgbm9xYTogRjQwMQorCitf
X3dwdHJ1bm5lcl9fID0geyJwcm9kdWN0IjogIndlYmtpdGd0a19taW5pYnJvd3NlciIsCisgICAg
ICAgICAgICAgICAgICJjaGVja19hcmdzIjogImNoZWNrX2FyZ3MiLAorICAgICAgICAgICAgICAg
ICAiYnJvd3NlciI6ICJXZWJLaXRHVEtNaW5pQnJvd3NlciIsCisgICAgICAgICAgICAgICAgICJi
cm93c2VyX2t3YXJncyI6ICJicm93c2VyX2t3YXJncyIsCisgICAgICAgICAgICAgICAgICJleGVj
dXRvciI6IHsidGVzdGhhcm5lc3MiOiAiV2ViRHJpdmVyVGVzdGhhcm5lc3NFeGVjdXRvciIsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAicmVmdGVzdCI6ICJXZWJEcml2ZXJSZWZUZXN0
RXhlY3V0b3IiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIndkc3BlYyI6ICJXZWJL
aXREcml2ZXJXZHNwZWNFeGVjdXRvciJ9LAorICAgICAgICAgICAgICAgICAiZXhlY3V0b3Jfa3dh
cmdzIjogImV4ZWN1dG9yX2t3YXJncyIsCisgICAgICAgICAgICAgICAgICJlbnZfZXh0cmFzIjog
ImVudl9leHRyYXMiLAorICAgICAgICAgICAgICAgICAiZW52X29wdGlvbnMiOiAiZW52X29wdGlv
bnMiLAorICAgICAgICAgICAgICAgICAicnVuX2luZm9fZXh0cmFzIjogInJ1bl9pbmZvX2V4dHJh
cyIsCisgICAgICAgICAgICAgICAgICJ0aW1lb3V0X211bHRpcGxpZXIiOiAiZ2V0X3RpbWVvdXRf
bXVsdGlwbGllciJ9CisKKworZGVmIGNoZWNrX2FyZ3MoKiprd2FyZ3MpOgorICAgIHBhc3MKKwor
CitkZWYgYnJvd3Nlcl9rd2FyZ3ModGVzdF90eXBlLCBydW5faW5mb19kYXRhLCBjb25maWcsICoq
a3dhcmdzKToKKyAgICAjIFdvcmthcm91bmQgZm9yIGh0dHBzOi8vZ2l0bGFiLmdub21lLm9yZy9H
Tk9NRS9saWJzb3VwL2lzc3Vlcy8xNzIKKyAgICB3ZWJkcml2ZXJfcmVxdWlyZWRfYXJncyA9IFsi
LS1ob3N0PTEyNy4wLjAuMSJdCisgICAgd2ViZHJpdmVyX2FyZ3MgPSBtYXliZV9hZGRfYXJncyh3
ZWJkcml2ZXJfcmVxdWlyZWRfYXJncywga3dhcmdzLmdldCgid2ViZHJpdmVyX2FyZ3MiKSkKKyAg
ICByZXR1cm4geyJiaW5hcnkiOiBrd2FyZ3NbImJpbmFyeSJdLAorICAgICAgICAgICAgIndlYmRy
aXZlcl9iaW5hcnkiOiBrd2FyZ3NbIndlYmRyaXZlcl9iaW5hcnkiXSwKKyAgICAgICAgICAgICJ3
ZWJkcml2ZXJfYXJncyI6IHdlYmRyaXZlcl9hcmdzfQorCisKK2RlZiBjYXBhYmlsaXRpZXMoc2Vy
dmVyX2NvbmZpZywgKiprd2FyZ3MpOgorICAgIGJyb3dzZXJfcmVxdWlyZWRfYXJncyA9IFsiLS1h
dXRvbWF0aW9uIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAiLS1qYXZhc2NyaXB0LWNh
bi1vcGVuLXdpbmRvd3MtYXV0b21hdGljYWxseT10cnVlIiwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAiLS1lbmFibGUteHNzLWF1ZGl0b3I9ZmFsc2UiLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICItLWVuYWJsZS1tZWRpYS1jYXBhYmlsaXRpZXM9dHJ1ZSIsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIi0tZW5hYmxlLWVuY3J5cHRlZC1tZWRpYT10cnVlIiwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAiLS1lbmFibGUtbWVkaWEtc3RyZWFtPXRydWUiLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICItLWVuYWJsZS1tb2NrLWNhcHR1cmUtZGV2aWNlcz10
cnVlIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAiLS1lbmFibGUtd2ViYXVkaW89dHJ1
ZSJdCisgICAgYXJncyA9IGt3YXJncy5nZXQoImJpbmFyeV9hcmdzIiwgW10pCisgICAgYXJncyA9
IG1heWJlX2FkZF9hcmdzKGJyb3dzZXJfcmVxdWlyZWRfYXJncywgYXJncykKKyAgICByZXR1cm4g
eworICAgICAgICAiYnJvd3Nlck5hbWUiOiAiTWluaUJyb3dzZXIiLAorICAgICAgICAid2Via2l0
Z3RrOmJyb3dzZXJPcHRpb25zIjogeworICAgICAgICAgICAgImJpbmFyeSI6IGt3YXJnc1siYmlu
YXJ5Il0sCisgICAgICAgICAgICAiYXJncyI6IGFyZ3MsCisgICAgICAgICAgICAiY2VydGlmaWNh
dGVzIjogY2VydGlmaWNhdGVfZG9tYWluX2xpc3Qoc2VydmVyX2NvbmZpZy5kb21haW5zX3NldCwg
a3dhcmdzWyJob3N0X2NlcnRfcGF0aCJdKX19CisKKworZGVmIGV4ZWN1dG9yX2t3YXJncyh0ZXN0
X3R5cGUsIHNlcnZlcl9jb25maWcsIGNhY2hlX21hbmFnZXIsIHJ1bl9pbmZvX2RhdGEsCisgICAg
ICAgICAgICAgICAgICAgICoqa3dhcmdzKToKKyAgICBleGVjdXRvcl9rd2FyZ3MgPSBiYXNlX2V4
ZWN1dG9yX2t3YXJncyh0ZXN0X3R5cGUsIHNlcnZlcl9jb25maWcsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FjaGVfbWFuYWdlciwgcnVuX2luZm9fZGF0YSwg
Kiprd2FyZ3MpCisgICAgZXhlY3V0b3Jfa3dhcmdzWyJjbG9zZV9hZnRlcl9kb25lIl0gPSBUcnVl
CisgICAgZXhlY3V0b3Jfa3dhcmdzWyJjYXBhYmlsaXRpZXMiXSA9IGNhcGFiaWxpdGllcyhzZXJ2
ZXJfY29uZmlnLCAqKmt3YXJncykKKyAgICByZXR1cm4gZXhlY3V0b3Jfa3dhcmdzCisKKworZGVm
IGVudl9leHRyYXMoKiprd2FyZ3MpOgorICAgIHJldHVybiBbXQorCisKK2RlZiBlbnZfb3B0aW9u
cygpOgorICAgIHJldHVybiB7fQorCisKK2RlZiBydW5faW5mb19leHRyYXMoKiprd2FyZ3MpOgor
ICAgIHJldHVybiB7IndlYmtpdF9wb3J0IjogImd0ayJ9CisKKworY2xhc3MgV2ViS2l0R1RLTWlu
aUJyb3dzZXIoV2ViS2l0QnJvd3Nlcik6CisgICAgZGVmIF9faW5pdF9fKHNlbGYsIGxvZ2dlciwg
YmluYXJ5PU5vbmUsIHdlYmRyaXZlcl9iaW5hcnk9Tm9uZSwKKyAgICAgICAgICAgICAgICAgd2Vi
ZHJpdmVyX2FyZ3M9Tm9uZSk6CisgICAgICAgIFdlYktpdEJyb3dzZXIuX19pbml0X18oc2VsZiwg
bG9nZ2VyLCBiaW5hcnksIHdlYmRyaXZlcl9iaW5hcnksCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgd2ViZHJpdmVyX2FyZ3MpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvY29uZmln
LnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93
cHRydW5uZXIvd3B0cnVubmVyL2NvbmZpZy5weQppbmRleCA1YmQzZjQ2N2YzZWRhNWY1NjRjYTVj
NTE1NDBmMjNiMjUyMWEyYTU4Li5lN2Y5ZDdiOGNjOTg3YmZkZmVjZGE2NTQ4YWNmODJkMWJlM2Ey
OGQ0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvY29uZmlnLnB5CisrKyBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5l
ci9jb25maWcucHkKQEAgLTEsNCArMSw0IEBACi1pbXBvcnQgQ29uZmlnUGFyc2VyCitmcm9tIHNp
eC5tb3Zlcy5jb25maWdwYXJzZXIgaW1wb3J0IFNhZmVDb25maWdQYXJzZXIKIGltcG9ydCBvcwog
aW1wb3J0IHN5cwogZnJvbSBjb2xsZWN0aW9ucyBpbXBvcnQgT3JkZXJlZERpY3QKQEAgLTIwLDcg
KzIwLDcgQEAgY2xhc3MgQ29uZmlnRGljdChkaWN0KToKIGRlZiByZWFkKGNvbmZpZ19wYXRoKToK
ICAgICBjb25maWdfcGF0aCA9IG9zLnBhdGguYWJzcGF0aChjb25maWdfcGF0aCkKICAgICBjb25m
aWdfcm9vdCA9IG9zLnBhdGguc3BsaXQoY29uZmlnX3BhdGgpWzBdCi0gICAgcGFyc2VyID0gQ29u
ZmlnUGFyc2VyLlNhZmVDb25maWdQYXJzZXIoKQorICAgIHBhcnNlciA9IFNhZmVDb25maWdQYXJz
ZXIoKQogICAgIHN1Y2Nlc3MgPSBwYXJzZXIucmVhZChjb25maWdfcGF0aCkKICAgICBhc3NlcnQg
Y29uZmlnX3BhdGggaW4gc3VjY2Vzcywgc3VjY2VzcwogCkBAIC0zMCw3ICszMCw3IEBAIGRlZiBy
ZWFkKGNvbmZpZ19wYXRoKToKICAgICBmb3Igc2VjdGlvbiBpbiBwYXJzZXIuc2VjdGlvbnMoKToK
ICAgICAgICAgcnZbc2VjdGlvbl0gPSBDb25maWdEaWN0KGNvbmZpZ19yb290KQogICAgICAgICBm
b3Iga2V5IGluIHBhcnNlci5vcHRpb25zKHNlY3Rpb24pOgotICAgICAgICAgICAgcnZbc2VjdGlv
bl1ba2V5XSA9IHBhcnNlci5nZXQoc2VjdGlvbiwga2V5LCBGYWxzZSwgc3VibnMpCisgICAgICAg
ICAgICBydltzZWN0aW9uXVtrZXldID0gcGFyc2VyLmdldChzZWN0aW9uLCBrZXksIHJhdz1GYWxz
ZSwgdmFycz1zdWJucykKIAogICAgIHJldHVybiBydgogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5u
ZXIvZW52aXJvbm1lbnQucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvZW52aXJvbm1lbnQucHkKaW5kZXggYmE4
OWZiOWZlNzYzYTc1MjA4M2YxYjNlYjY2YTgxYTY4MzczYjZhNC4uZTc5YWUzNzUwNjQ3Zjg4YmJh
NDQ3MDMxODFjMjA4MjI5ODAwZjY1OCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2Vudmlyb25t
ZW50LnB5CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9lbnZpcm9ubWVudC5weQpAQCAtOCwxMiArOCwxNiBA
QCBpbXBvcnQgdGltZQogCiBmcm9tIG1vemxvZyBpbXBvcnQgZ2V0X2RlZmF1bHRfbG9nZ2VyLCBo
YW5kbGVycywgcHJveHkKIAotZnJvbSB3cHRsb2dnaW5nIGltcG9ydCBMb2dMZXZlbFJld3JpdGVy
Ci1mcm9tIHdwdHNlcnZlLmhhbmRsZXJzIGltcG9ydCBTdHJpbmdIYW5kbGVyCitmcm9tIC53cHRs
b2dnaW5nIGltcG9ydCBMb2dMZXZlbFJld3JpdGVyCiAKIGhlcmUgPSBvcy5wYXRoLnNwbGl0KF9f
ZmlsZV9fKVswXQogcmVwb19yb290ID0gb3MucGF0aC5hYnNwYXRoKG9zLnBhdGguam9pbihoZXJl
LCBvcy5wYXJkaXIsIG9zLnBhcmRpciwgb3MucGFyZGlyKSkKIAorc3lzLnBhdGguaW5zZXJ0KDAs
IHJlcG9fcm9vdCkKK2Zyb20gdG9vbHMgaW1wb3J0IGxvY2FscGF0aHMgICMgbm9xYTogRjQwMQor
Citmcm9tIHdwdHNlcnZlLmhhbmRsZXJzIGltcG9ydCBTdHJpbmdIYW5kbGVyCisKIHNlcnZlID0g
Tm9uZQogCiAKQEAgLTQ2LDEzICs1MCwxNCBAQCBjbGFzcyBUZXN0RW52aXJvbm1lbnRFcnJvcihF
eGNlcHRpb24pOgogCiAKIGNsYXNzIFRlc3RFbnZpcm9ubWVudChvYmplY3QpOgotICAgIGRlZiBf
X2luaXRfXyhzZWxmLCB0ZXN0X3BhdGhzLCBwYXVzZV9hZnRlcl90ZXN0LCBkZWJ1Z19pbmZvLCBv
cHRpb25zLCBzc2xfY29uZmlnLCBlbnZfZXh0cmFzKToKLSAgICAgICAgIiIiQ29udGV4dCBtYW5h
Z2VyIHRoYXQgb3ducyB0aGUgdGVzdCBlbnZpcm9ubWVudCBpLmUuIHRoZSBodHRwIGFuZAotICAg
ICAgICB3ZWJzb2NrZXRzIHNlcnZlcnMiIiIKKyAgICAiIiJDb250ZXh0IG1hbmFnZXIgdGhhdCBv
d25zIHRoZSB0ZXN0IGVudmlyb25tZW50IGkuZS4gdGhlIGh0dHAgYW5kCisgICAgd2Vic29ja2V0
cyBzZXJ2ZXJzIiIiCisgICAgZGVmIF9faW5pdF9fKHNlbGYsIHRlc3RfcGF0aHMsIHRlc3RoYXJu
ZXNzX3RpbWVvdXRfbXVsdGlwbGVyLCBwYXVzZV9hZnRlcl90ZXN0LCBkZWJ1Z19pbmZvLCBvcHRp
b25zLCBzc2xfY29uZmlnLCBlbnZfZXh0cmFzKToKICAgICAgICAgc2VsZi50ZXN0X3BhdGhzID0g
dGVzdF9wYXRocwogICAgICAgICBzZWxmLnNlcnZlciA9IE5vbmUKICAgICAgICAgc2VsZi5jb25m
aWdfY3R4ID0gTm9uZQogICAgICAgICBzZWxmLmNvbmZpZyA9IE5vbmUKKyAgICAgICAgc2VsZi50
ZXN0aGFybmVzc190aW1lb3V0X211bHRpcGxlciA9IHRlc3RoYXJuZXNzX3RpbWVvdXRfbXVsdGlw
bGVyCiAgICAgICAgIHNlbGYucGF1c2VfYWZ0ZXJfdGVzdCA9IHBhdXNlX2FmdGVyX3Rlc3QKICAg
ICAgICAgc2VsZi50ZXN0X3NlcnZlcl9wb3J0ID0gb3B0aW9ucy5wb3AoInRlc3Rfc2VydmVyX3Bv
cnQiLCBUcnVlKQogICAgICAgICBzZWxmLmRlYnVnX2luZm8gPSBkZWJ1Z19pbmZvCkBAIC0xNjks
NyArMTc0LDEwIEBAIGNsYXNzIFRlc3RFbnZpcm9ubWVudChvYmplY3QpOgogICAgICAgICBmb3Ig
cGF0aCwgZm9ybWF0X2FyZ3MsIGNvbnRlbnRfdHlwZSwgcm91dGUgaW4gWwogICAgICAgICAgICAg
ICAgICgidGVzdGhhcm5lc3NfcnVubmVyLmh0bWwiLCB7fSwgInRleHQvaHRtbCIsICIvdGVzdGhh
cm5lc3NfcnVubmVyLmh0bWwiKSwKICAgICAgICAgICAgICAgICAoc2VsZi5vcHRpb25zLmdldCgi
dGVzdGhhcm5lc3NyZXBvcnQiLCAidGVzdGhhcm5lc3NyZXBvcnQuanMiKSwKLSAgICAgICAgICAg
ICAgICAgeyJvdXRwdXQiOiBzZWxmLnBhdXNlX2FmdGVyX3Rlc3R9LCAidGV4dC9qYXZhc2NyaXB0
O2NoYXJzZXQ9dXRmOCIsCisgICAgICAgICAgICAgICAgIHsib3V0cHV0Ijogc2VsZi5wYXVzZV9h
ZnRlcl90ZXN0LAorICAgICAgICAgICAgICAgICAgInRpbWVvdXRfbXVsdGlwbGllciI6IHNlbGYu
dGVzdGhhcm5lc3NfdGltZW91dF9tdWx0aXBsZXIsCisgICAgICAgICAgICAgICAgICAiZXhwbGlj
aXRfdGltZW91dCI6ICJ0cnVlIiBpZiBzZWxmLmRlYnVnX2luZm8gaXMgbm90IE5vbmUgZWxzZSAi
ZmFsc2UifSwKKyAgICAgICAgICAgICAgICAgInRleHQvamF2YXNjcmlwdDtjaGFyc2V0PXV0Zjgi
LAogICAgICAgICAgICAgICAgICAiL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyIpXToK
ICAgICAgICAgICAgIHBhdGggPSBvcy5wYXRoLm5vcm1wYXRoKG9zLnBhdGguam9pbihoZXJlLCBw
YXRoKSkKICAgICAgICAgICAgICMgTm90ZSB0aGF0IC5oZWFkZXJzLiBmaWxlcyBkb24ndCBhcHBs
eSB0byBzdGF0aWMgcm91dGVzLCBzbyB3ZSBuZWVkIHRvCkBAIC0xOTgsMTEgKzIwNiwxNCBAQCBj
bGFzcyBUZXN0RW52aXJvbm1lbnQob2JqZWN0KToKIAogICAgIGRlZiBlbnN1cmVfc3RhcnRlZChz
ZWxmKToKICAgICAgICAgIyBQYXVzZSBmb3IgYSB3aGlsZSB0byBlbnN1cmUgdGhhdCB0aGUgc2Vy
dmVyIGhhcyBhIGNoYW5jZSB0byBzdGFydAotICAgICAgICBmb3IgXyBpbiB4cmFuZ2UoNjApOgor
ICAgICAgICB0b3RhbF9zbGVlcF9zZWNzID0gMzAKKyAgICAgICAgZWFjaF9zbGVlcF9zZWNzID0g
MC41CisgICAgICAgIGVuZF90aW1lID0gdGltZS50aW1lKCkgKyB0b3RhbF9zbGVlcF9zZWNzCisg
ICAgICAgIHdoaWxlIHRpbWUudGltZSgpIDwgZW5kX3RpbWU6CiAgICAgICAgICAgICBmYWlsZWQg
PSBzZWxmLnRlc3Rfc2VydmVycygpCiAgICAgICAgICAgICBpZiBub3QgZmFpbGVkOgogICAgICAg
ICAgICAgICAgIHJldHVybgotICAgICAgICAgICAgdGltZS5zbGVlcCgwLjUpCisgICAgICAgICAg
ICB0aW1lLnNsZWVwKGVhY2hfc2xlZXBfc2VjcykKICAgICAgICAgcmFpc2UgRW52aXJvbm1lbnRF
cnJvcigiU2VydmVycyBmYWlsZWQgdG8gc3RhcnQ6ICVzIiAlCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIiwgIi5qb2luKCIlczolcyIgJSBpdGVtIGZvciBpdGVtIGluIGZhaWxlZCkp
CiAKQEAgLTIxMyw2ICsyMjQsNyBAQCBjbGFzcyBUZXN0RW52aXJvbm1lbnQob2JqZWN0KToKICAg
ICAgICAgICAgIGZvciBwb3J0LCBzZXJ2ZXIgaW4gc2VydmVyczoKICAgICAgICAgICAgICAgICBp
ZiBzZWxmLnRlc3Rfc2VydmVyX3BvcnQ6CiAgICAgICAgICAgICAgICAgICAgIHMgPSBzb2NrZXQu
c29ja2V0KCkKKyAgICAgICAgICAgICAgICAgICAgcy5zZXR0aW1lb3V0KDAuMSkKICAgICAgICAg
ICAgICAgICAgICAgdHJ5OgogICAgICAgICAgICAgICAgICAgICAgICAgcy5jb25uZWN0KChob3N0
LCBwb3J0KSkKICAgICAgICAgICAgICAgICAgICAgZXhjZXB0IHNvY2tldC5lcnJvcjoKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
d3B0cnVubmVyL3dwdHJ1bm5lci9leGVjdXRvcnMvX19pbml0X18ucHkgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIv
ZXhlY3V0b3JzL19faW5pdF9fLnB5CmluZGV4IGE1ODA3MzBkYjgyZDgzMjUxNzIxMmExNzg4Yjg5
NDQxOWEzMDBmMzguLmJmODI5ZDkzZTk2OGQ0YTZiY2NmYTY3OThmYjk3NGJmOThmZjdkNjAgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvd3B0cnVubmVyL3dwdHJ1bm5lci9leGVjdXRvcnMvX19pbml0X18ucHkKKysrIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0
cnVubmVyL2V4ZWN1dG9ycy9fX2luaXRfXy5weQpAQCAtMSw1ICsxLDUgQEAKICMgZmxha2U4OiBu
b3FhIChub3QgaWRlYWwsIGJ1dCBuaWNlciB0aGFuIGFkZGluZyBub3FhOiBGNDAxIHRvIGV2ZXJ5
IGxpbmUhKQotZnJvbSBiYXNlIGltcG9ydCAoZXhlY3V0b3Jfa3dhcmdzLAotICAgICAgICAgICAg
ICAgICAgdGVzdGhhcm5lc3NfcmVzdWx0X2NvbnZlcnRlciwKLSAgICAgICAgICAgICAgICAgIHJl
ZnRlc3RfcmVzdWx0X2NvbnZlcnRlciwKLSAgICAgICAgICAgICAgICAgIFRlc3RFeGVjdXRvcikK
K2Zyb20gLmJhc2UgaW1wb3J0IChleGVjdXRvcl9rd2FyZ3MsCisgICAgICAgICAgICAgICAgICAg
dGVzdGhhcm5lc3NfcmVzdWx0X2NvbnZlcnRlciwKKyAgICAgICAgICAgICAgICAgICByZWZ0ZXN0
X3Jlc3VsdF9jb252ZXJ0ZXIsCisgICAgICAgICAgICAgICAgICAgVGVzdEV4ZWN1dG9yKQpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy93cHRydW5uZXIvd3B0cnVubmVyL2V4ZWN1dG9ycy9iYXNlLnB5IGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2V4
ZWN1dG9ycy9iYXNlLnB5CmluZGV4IDFkYzk2MmNmYjA4MzVkYzRhNWI5YTZkN2Q3NjA0MDlhN2Rm
MTIyMDQuLjcxM2Q4NTAwMTEzNWQwY2RmMjNjN2EwNjU4M2JkMDNkNDM1NWQ1OGUgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0
cnVubmVyL3dwdHJ1bm5lci9leGVjdXRvcnMvYmFzZS5weQorKysgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvZXhl
Y3V0b3JzL2Jhc2UucHkKQEAgLTEsMjEgKzEsMjEgQEAKK2ltcG9ydCBiYXNlNjQKIGltcG9ydCBo
YXNobGliCi1pbXBvcnQgaHR0cGxpYgorZnJvbSBzaXgubW92ZXMuaHR0cF9jbGllbnQgaW1wb3J0
IEhUVFBDb25uZWN0aW9uCitpbXBvcnQgaW8KK2ltcG9ydCBqc29uCiBpbXBvcnQgb3MKIGltcG9y
dCB0aHJlYWRpbmcKIGltcG9ydCB0cmFjZWJhY2sKIGltcG9ydCBzb2NrZXQKLWltcG9ydCB1cmxw
YXJzZQoraW1wb3J0IHN5cworZnJvbSBzaXgubW92ZXMudXJsbGliLnBhcnNlIGltcG9ydCB1cmxq
b2luLCB1cmxzcGxpdCwgdXJsdW5zcGxpdAogZnJvbSBhYmMgaW1wb3J0IEFCQ01ldGEsIGFic3Ry
YWN0bWV0aG9kCiAKIGZyb20gLi50ZXN0cnVubmVyIGltcG9ydCBTdG9wCi1mcm9tIHByb3RvY29s
IGltcG9ydCBQcm90b2NvbCwgQmFzZVByb3RvY29sUGFydAorZnJvbSAucHJvdG9jb2wgaW1wb3J0
IFByb3RvY29sLCBCYXNlUHJvdG9jb2xQYXJ0CiAKIGhlcmUgPSBvcy5wYXRoLnNwbGl0KF9fZmls
ZV9fKVswXQogCi0jIEV4dHJhIHRpbWVvdXQgdG8gdXNlIGFmdGVyIGludGVybmFsIHRlc3QgdGlt
ZW91dCBhdCB3aGljaCB0aGUgaGFybmVzcwotIyBzaG91bGQgZm9yY2UgYSB0aW1lb3V0Ci1leHRy
YV90aW1lb3V0ID0gNSAgIyBzZWNvbmRzCi0KIAogZGVmIGV4ZWN1dG9yX2t3YXJncyh0ZXN0X3R5
cGUsIHNlcnZlcl9jb25maWcsIGNhY2hlX21hbmFnZXIsIHJ1bl9pbmZvX2RhdGEsCiAgICAgICAg
ICAgICAgICAgICAgICoqa3dhcmdzKToKQEAgLTQ2LDIxICs0NiwyMyBAQCBkZWYgc3RyaXBfc2Vy
dmVyKHVybCk6CiAKICAgICBlLmcuIGh0dHA6Ly9leGFtcGxlLm9yZzo4MDAwL3Rlc3RzP2lkPTEj
MiBiZWNvbWVzIC90ZXN0cz9pZD0xIzIiIiIKIAotICAgIHVybF9wYXJ0cyA9IGxpc3QodXJscGFy
c2UudXJsc3BsaXQodXJsKSkKKyAgICB1cmxfcGFydHMgPSBsaXN0KHVybHNwbGl0KHVybCkpCiAg
ICAgdXJsX3BhcnRzWzBdID0gIiIKICAgICB1cmxfcGFydHNbMV0gPSAiIgotICAgIHJldHVybiB1
cmxwYXJzZS51cmx1bnNwbGl0KHVybF9wYXJ0cykKKyAgICByZXR1cm4gdXJsdW5zcGxpdCh1cmxf
cGFydHMpCiAKIAogY2xhc3MgVGVzdGhhcm5lc3NSZXN1bHRDb252ZXJ0ZXIob2JqZWN0KToKICAg
ICBoYXJuZXNzX2NvZGVzID0gezA6ICJPSyIsCiAgICAgICAgICAgICAgICAgICAgICAxOiAiRVJS
T1IiLAotICAgICAgICAgICAgICAgICAgICAgMjogIlRJTUVPVVQifQorICAgICAgICAgICAgICAg
ICAgICAgMjogIlRJTUVPVVQiLAorICAgICAgICAgICAgICAgICAgICAgMzogIlBSRUNPTkRJVElP
Tl9GQUlMRUQifQogCiAgICAgdGVzdF9jb2RlcyA9IHswOiAiUEFTUyIsCiAgICAgICAgICAgICAg
ICAgICAxOiAiRkFJTCIsCiAgICAgICAgICAgICAgICAgICAyOiAiVElNRU9VVCIsCi0gICAgICAg
ICAgICAgICAgICAzOiAiTk9UUlVOIn0KKyAgICAgICAgICAgICAgICAgIDM6ICJOT1RSVU4iLAor
ICAgICAgICAgICAgICAgICAgNDogIlBSRUNPTkRJVElPTl9GQUlMRUQifQogCiAgICAgZGVmIF9f
Y2FsbF9fKHNlbGYsIHRlc3QsIHJlc3VsdCwgZXh0cmE9Tm9uZSk6CiAgICAgICAgICIiIkNvbnZl
cnQgYSBKU09OIHJlc3VsdCBpbnRvIGEgKFRlc3RSZXN1bHQsIFtTdWJ0ZXN0UmVzdWx0XSkgdHVw
bGUiIiIKQEAgLTc2LDExICs3OCwzNCBAQCBjbGFzcyBUZXN0aGFybmVzc1Jlc3VsdENvbnZlcnRl
cihvYmplY3QpOgogdGVzdGhhcm5lc3NfcmVzdWx0X2NvbnZlcnRlciA9IFRlc3RoYXJuZXNzUmVz
dWx0Q29udmVydGVyKCkKIAogCitkZWYgaGFzaF9zY3JlZW5zaG90KGRhdGEpOgorICAgICIiIkNv
bXB1dGVzIHRoZSBzaGExIGNoZWNrc3VtIG9mIGEgYmFzZTY0LWVuY29kZWQgc2NyZWVuc2hvdC4i
IiIKKyAgICByZXR1cm4gaGFzaGxpYi5zaGExKGJhc2U2NC5iNjRkZWNvZGUoZGF0YSkpLmhleGRp
Z2VzdCgpCisKKworZGVmIF9lbnN1cmVfaGFzaF9pbl9yZWZ0ZXN0X3NjcmVlbnNob3RzKGV4dHJh
KToKKyAgICAiIiJNYWtlIHN1cmUgcmVmdGVzdF9zY3JlZW5zaG90cyBoYXZlIGhhc2hlcy4KKwor
ICAgIE1hcmlvbmV0dGUgaW50ZXJuYWwgcmVmdGVzdCBydW5uZXIgZG9lcyBub3QgcHJvZHVjZSBo
YXNoZXMuCisgICAgIiIiCisgICAgbG9nX2RhdGEgPSBleHRyYS5nZXQoInJlZnRlc3Rfc2NyZWVu
c2hvdHMiKQorICAgIGlmIG5vdCBsb2dfZGF0YToKKyAgICAgICAgcmV0dXJuCisgICAgZm9yIGl0
ZW0gaW4gbG9nX2RhdGE6CisgICAgICAgIGlmIHR5cGUoaXRlbSkgIT0gZGljdDoKKyAgICAgICAg
ICAgICMgU2tpcCByZWxhdGlvbiBzdHJpbmdzLgorICAgICAgICAgICAgY29udGludWUKKyAgICAg
ICAgaWYgImhhc2giIG5vdCBpbiBpdGVtOgorICAgICAgICAgICAgaXRlbVsiaGFzaCJdID0gaGFz
aF9zY3JlZW5zaG90KGl0ZW1bInNjcmVlbnNob3QiXSkKKworCiBkZWYgcmVmdGVzdF9yZXN1bHRf
Y29udmVydGVyKHNlbGYsIHRlc3QsIHJlc3VsdCk6CisgICAgZXh0cmEgPSByZXN1bHQuZ2V0KCJl
eHRyYSIsIHt9KQorICAgIF9lbnN1cmVfaGFzaF9pbl9yZWZ0ZXN0X3NjcmVlbnNob3RzKGV4dHJh
KQogICAgIHJldHVybiAodGVzdC5yZXN1bHRfY2xzKAogICAgICAgICByZXN1bHRbInN0YXR1cyJd
LAogICAgICAgICByZXN1bHRbIm1lc3NhZ2UiXSwKLSAgICAgICAgZXh0cmE9cmVzdWx0LmdldCgi
ZXh0cmEiLCB7fSksCisgICAgICAgIGV4dHJhPWV4dHJhLAogICAgICAgICBzdGFjaz1yZXN1bHQu
Z2V0KCJzdGFjayIpKSwgW10pCiAKIApAQCAtMTAyLDI3ICsxMjcsODYgQEAgY2xhc3MgRXhlY3V0
b3JFeGNlcHRpb24oRXhjZXB0aW9uKToKICAgICAgICAgc2VsZi5tZXNzYWdlID0gbWVzc2FnZQog
CiAKK2NsYXNzIFRpbWVkUnVubmVyKG9iamVjdCk6CisgICAgZGVmIF9faW5pdF9fKHNlbGYsIGxv
Z2dlciwgZnVuYywgcHJvdG9jb2wsIHVybCwgdGltZW91dCwgZXh0cmFfdGltZW91dCk6CisgICAg
ICAgIHNlbGYuZnVuYyA9IGZ1bmMKKyAgICAgICAgc2VsZi5yZXN1bHQgPSBOb25lCisgICAgICAg
IHNlbGYucHJvdG9jb2wgPSBwcm90b2NvbAorICAgICAgICBzZWxmLnVybCA9IHVybAorICAgICAg
ICBzZWxmLnRpbWVvdXQgPSB0aW1lb3V0CisgICAgICAgIHNlbGYuZXh0cmFfdGltZW91dCA9IGV4
dHJhX3RpbWVvdXQKKyAgICAgICAgc2VsZi5yZXN1bHRfZmxhZyA9IHRocmVhZGluZy5FdmVudCgp
CisKKyAgICBkZWYgcnVuKHNlbGYpOgorICAgICAgICBpZiBzZWxmLnNldF90aW1lb3V0KCkgaXMg
U3RvcDoKKyAgICAgICAgICAgIHJldHVybiBTdG9wCisKKyAgICAgICAgaWYgc2VsZi5iZWZvcmVf
cnVuKCkgaXMgU3RvcDoKKyAgICAgICAgICAgIHJldHVybiBTdG9wCisKKyAgICAgICAgZXhlY3V0
b3IgPSB0aHJlYWRpbmcuVGhyZWFkKHRhcmdldD1zZWxmLnJ1bl9mdW5jKQorICAgICAgICBleGVj
dXRvci5zdGFydCgpCisKKyAgICAgICAgIyBBZGQgdHdpY2UgdGhlIHRpbWVvdXQgbXVsdGlwbGll
ciBzaW5jZSB0aGUgY2FsbGVkIGZ1bmN0aW9uIGlzIGV4cGVjdGVkIHRvCisgICAgICAgICMgd2Fp
dCBhdCBsZWFzdCBzZWxmLnRpbWVvdXQgKyBzZWxmLmV4dHJhX3RpbWVvdXQgYW5kIHRoaXMgZ2l2
ZXMgc29tZSBsZWV3YXkKKyAgICAgICAgZmluaXNoZWQgPSBzZWxmLnJlc3VsdF9mbGFnLndhaXQo
c2VsZi50aW1lb3V0ICsgMiAqIHNlbGYuZXh0cmFfdGltZW91dCkKKyAgICAgICAgaWYgc2VsZi5y
ZXN1bHQgaXMgTm9uZToKKyAgICAgICAgICAgIGlmIGZpbmlzaGVkOgorICAgICAgICAgICAgICAg
ICMgZmxhZyBpcyBUcnVlIHVubGVzcyB3ZSB0aW1lb3V0OyB0aGlzICpzaG91bGRuJ3QqIGhhcHBl
biwgYnV0CisgICAgICAgICAgICAgICAgIyBpdCBjYW4gaWYgc2VsZi5ydW5fZnVuYyBmYWlscyB0
byBzZXQgc2VsZi5yZXN1bHQgZHVlIHRvIHJhaXNpbmcKKyAgICAgICAgICAgICAgICBzZWxmLnJl
c3VsdCA9IEZhbHNlLCAoIklOVEVSTkFMLUVSUk9SIiwgIiVzLnJ1bl9mdW5jIGRpZG4ndCBzZXQg
YSByZXN1bHQiICUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5f
X2NsYXNzX18uX19uYW1lX18pCisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgIG1l
c3NhZ2UgPSAiRXhlY3V0b3IgaGl0IGV4dGVybmFsIHRpbWVvdXQgKHRoaXMgbWF5IGluZGljYXRl
IGEgaGFuZylcbiIKKyAgICAgICAgICAgICAgICAjIGdldCBhIHRyYWNlYmFjayBmb3IgdGhlIGN1
cnJlbnQgc3RhY2sgb2YgdGhlIGV4ZWN1dG9yIHRocmVhZAorICAgICAgICAgICAgICAgIG1lc3Nh
Z2UgKz0gIiIuam9pbih0cmFjZWJhY2suZm9ybWF0X3N0YWNrKHN5cy5fY3VycmVudF9mcmFtZXMo
KVtleGVjdXRvci5pZGVudF0pKQorICAgICAgICAgICAgICAgIHNlbGYucmVzdWx0ID0gRmFsc2Us
ICgiRVhURVJOQUwtVElNRU9VVCIsIG1lc3NhZ2UpCisgICAgICAgIGVsaWYgc2VsZi5yZXN1bHRb
MV0gaXMgTm9uZToKKyAgICAgICAgICAgICMgV2UgZGlkbid0IGdldCBhbnkgZGF0YSBiYWNrIGZy
b20gdGhlIHRlc3QsIHNvIGNoZWNrIGlmIHRoZQorICAgICAgICAgICAgIyBicm93c2VyIGlzIHN0
aWxsIHJlc3BvbnNpdmUKKyAgICAgICAgICAgIGlmIHNlbGYucHJvdG9jb2wuaXNfYWxpdmU6Cisg
ICAgICAgICAgICAgICAgc2VsZi5yZXN1bHQgPSBGYWxzZSwgKCJJTlRFUk5BTC1FUlJPUiIsIE5v
bmUpCisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgIHNlbGYubG9nZ2VyLmluZm8o
IkJyb3dzZXIgbm90IHJlc3BvbmRpbmcsIHNldHRpbmcgc3RhdHVzIHRvIENSQVNIIikKKyAgICAg
ICAgICAgICAgICBzZWxmLnJlc3VsdCA9IEZhbHNlLCAoIkNSQVNIIiwgTm9uZSkKKworICAgICAg
ICByZXR1cm4gc2VsZi5yZXN1bHQKKworICAgIGRlZiBzZXRfdGltZW91dChzZWxmKToKKyAgICAg
ICAgcmFpc2UgTm90SW1wbGVtZW50ZWRFcnJvcgorCisgICAgZGVmIGJlZm9yZV9ydW4oc2VsZik6
CisgICAgICAgIHBhc3MKKworICAgIGRlZiBydW5fZnVuYyhzZWxmKToKKyAgICAgICAgcmFpc2Ug
Tm90SW1wbGVtZW50ZWRFcnJvcgorCisKIGNsYXNzIFRlc3RFeGVjdXRvcihvYmplY3QpOgorICAg
ICIiIkFic3RyYWN0IEJhc2UgY2xhc3MgZm9yIG9iamVjdCB0aGF0IGFjdHVhbGx5IGV4ZWN1dGVz
IHRoZSB0ZXN0cyBpbiBhCisgICAgc3BlY2lmaWMgYnJvd3Nlci4gVHlwaWNhbGx5IHRoZXJlIHdp
bGwgYmUgYSBkaWZmZXJlbnQgVGVzdEV4ZWN1dG9yCisgICAgc3ViY2xhc3MgZm9yIGVhY2ggdGVz
dCB0eXBlIGFuZCBtZXRob2Qgb2YgZXhlY3V0aW5nIHRlc3RzLgorCisgICAgOnBhcmFtIGJyb3dz
ZXI6IEV4ZWN1dG9yQnJvd3NlciBpbnN0YW5jZSBwcm92aWRpbmcgcHJvcGVydGllcyBvZiB0aGUK
KyAgICAgICAgICAgICAgICAgICAgYnJvd3NlciB0aGF0IHdpbGwgYmUgdGVzdGVkLgorICAgIDpw
YXJhbSBzZXJ2ZXJfY29uZmlnOiBEaWN0aW9uYXJ5IG9mIHdwdHNlcnZlIHNlcnZlciBjb25maWd1
cmF0aW9uIG9mIHRoZQorICAgICAgICAgICAgICAgICAgICAgICAgICBmb3JtIHN0b3JlZCBpbiBU
ZXN0RW52aXJvbm1lbnQuY29uZmlnCisgICAgOnBhcmFtIHRpbWVvdXRfbXVsdGlwbGllcjogTXVs
dGlwbGllciByZWxhdGl2ZSB0byBiYXNlIHRpbWVvdXQgdG8gdXNlCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgd2hlbiBzZXR0aW5nIHRlc3QgdGltZW91dC4KKyAgICAiIiIKICAgICBf
X21ldGFjbGFzc19fID0gQUJDTWV0YQogCiAgICAgdGVzdF90eXBlID0gTm9uZQogICAgIGNvbnZl
cnRfcmVzdWx0ID0gTm9uZQogICAgIHN1cHBvcnRzX3Rlc3Rkcml2ZXIgPSBGYWxzZQogICAgIHN1
cHBvcnRzX2pzc2hlbGwgPSBGYWxzZQorICAgICMgRXh0cmEgdGltZW91dCB0byB1c2UgYWZ0ZXIg
aW50ZXJuYWwgdGVzdCB0aW1lb3V0IGF0IHdoaWNoIHRoZSBoYXJuZXNzCisgICAgIyBzaG91bGQg
Zm9yY2UgYSB0aW1lb3V0CisgICAgZXh0cmFfdGltZW91dCA9IDUgICMgc2Vjb25kcworCiAKICAg
ICBkZWYgX19pbml0X18oc2VsZiwgYnJvd3Nlciwgc2VydmVyX2NvbmZpZywgdGltZW91dF9tdWx0
aXBsaWVyPTEsCiAgICAgICAgICAgICAgICAgIGRlYnVnX2luZm89Tm9uZSwgKiprd2FyZ3MpOgot
ICAgICAgICAiIiJBYnN0cmFjdCBCYXNlIGNsYXNzIGZvciBvYmplY3QgdGhhdCBhY3R1YWxseSBl
eGVjdXRlcyB0aGUgdGVzdHMgaW4gYQotICAgICAgICBzcGVjaWZpYyBicm93c2VyLiBUeXBpY2Fs
bHkgdGhlcmUgd2lsbCBiZSBhIGRpZmZlcmVudCBUZXN0RXhlY3V0b3IKLSAgICAgICAgc3ViY2xh
c3MgZm9yIGVhY2ggdGVzdCB0eXBlIGFuZCBtZXRob2Qgb2YgZXhlY3V0aW5nIHRlc3RzLgotCi0g
ICAgICAgIDpwYXJhbSBicm93c2VyOiBFeGVjdXRvckJyb3dzZXIgaW5zdGFuY2UgcHJvdmlkaW5n
IHByb3BlcnRpZXMgb2YgdGhlCi0gICAgICAgICAgICAgICAgICAgICAgICBicm93c2VyIHRoYXQg
d2lsbCBiZSB0ZXN0ZWQuCi0gICAgICAgIDpwYXJhbSBzZXJ2ZXJfY29uZmlnOiBEaWN0aW9uYXJ5
IG9mIHdwdHNlcnZlIHNlcnZlciBjb25maWd1cmF0aW9uIG9mIHRoZQotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgZm9ybSBzdG9yZWQgaW4gVGVzdEVudmlyb25tZW50LmNvbmZpZwotICAg
ICAgICA6cGFyYW0gdGltZW91dF9tdWx0aXBsaWVyOiBNdWx0aXBsaWVyIHJlbGF0aXZlIHRvIGJh
c2UgdGltZW91dCB0byB1c2UKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2hl
biBzZXR0aW5nIHRlc3QgdGltZW91dC4KLSAgICAgICAgIiIiCiAgICAgICAgIHNlbGYucnVubmVy
ID0gTm9uZQogICAgICAgICBzZWxmLmJyb3dzZXIgPSBicm93c2VyCiAgICAgICAgIHNlbGYuc2Vy
dmVyX2NvbmZpZyA9IHNlcnZlcl9jb25maWcKQEAgLTE1Miw2ICsyMzYsMTEgQEAgY2xhc3MgVGVz
dEV4ZWN1dG9yKG9iamVjdCk6CiAgICAgICAgIGlmIHNlbGYucHJvdG9jb2wgaXMgbm90IE5vbmU6
CiAgICAgICAgICAgICBzZWxmLnByb3RvY29sLnRlYXJkb3duKCkKIAorICAgIGRlZiByZXNldChz
ZWxmKToKKyAgICAgICAgIiIiUmUtaW5pdGlhbGl6ZSBpbnRlcm5hbCBzdGF0ZSB0byBmYWNpbGl0
YXRlIHJlcGVhdGVkIHRlc3QgZXhlY3V0aW9uCisgICAgICAgIGFzIGltcGxlbWVudGVkIGJ5IHRo
ZSBgLS1yZXJ1bmAgY29tbWFuZC1saW5lIGFyZ3VtZW50LiIiIgorICAgICAgICBwYXNzCisKICAg
ICBkZWYgcnVuX3Rlc3Qoc2VsZiwgdGVzdCk6CiAgICAgICAgICIiIlJ1biBhIHBhcnRpY3VsYXIg
dGVzdC4KIApAQCAtMTgxLDcgKzI3MCw3IEBAIGNsYXNzIFRlc3RFeGVjdXRvcihvYmplY3QpOgog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuc2VydmVyX2NvbmZpZ1sicG9ydHMi
XVtwcm90b2NvbF1bMF0pCiAKICAgICBkZWYgdGVzdF91cmwoc2VsZiwgdGVzdCk6Ci0gICAgICAg
IHJldHVybiB1cmxwYXJzZS51cmxqb2luKHNlbGYuc2VydmVyX3VybCh0ZXN0LmVudmlyb25tZW50
WyJwcm90b2NvbCJdKSwgdGVzdC51cmwpCisgICAgICAgIHJldHVybiB1cmxqb2luKHNlbGYuc2Vy
dmVyX3VybCh0ZXN0LmVudmlyb25tZW50WyJwcm90b2NvbCJdKSwgdGVzdC51cmwpCiAKICAgICBA
YWJzdHJhY3RtZXRob2QKICAgICBkZWYgZG9fdGVzdChzZWxmLCB0ZXN0KToKQEAgLTI1Niw5ICsz
NDUsOCBAQCBjbGFzcyBSZWZUZXN0SW1wbGVtZW50YXRpb24ob2JqZWN0KToKICAgICAgICAgICAg
ICAgICByZXR1cm4gRmFsc2UsIGRhdGEKIAogICAgICAgICAgICAgc2NyZWVuc2hvdCA9IGRhdGEK
LSAgICAgICAgICAgIGhhc2hfdmFsdWUgPSBoYXNobGliLnNoYTEoc2NyZWVuc2hvdCkuaGV4ZGln
ZXN0KCkKLQotICAgICAgICAgICAgc2VsZi5zY3JlZW5zaG90X2NhY2hlW2tleV0gPSAoaGFzaF92
YWx1ZSwgTm9uZSkKKyAgICAgICAgICAgIGhhc2hfdmFsdWUgPSBoYXNoX3NjcmVlbnNob3QoZGF0
YSkKKyAgICAgICAgICAgIHNlbGYuc2NyZWVuc2hvdF9jYWNoZVtrZXldID0gKGhhc2hfdmFsdWUs
IHNjcmVlbnNob3QpCiAKICAgICAgICAgICAgIHJ2ID0gKGhhc2hfdmFsdWUsIHNjcmVlbnNob3Qp
CiAgICAgICAgIGVsc2U6CkBAIC0yNjcsMTEgKzM1NSw0NCBAQCBjbGFzcyBSZWZUZXN0SW1wbGVt
ZW50YXRpb24ob2JqZWN0KToKICAgICAgICAgc2VsZi5tZXNzYWdlLmFwcGVuZCgiJXMgJXMiICUg
KHRlc3QudXJsLCBydlswXSkpCiAgICAgICAgIHJldHVybiBUcnVlLCBydgogCi0gICAgZGVmIGlz
X3Bhc3Moc2VsZiwgbGhzX2hhc2gsIHJoc19oYXNoLCByZWxhdGlvbik6CisgICAgZGVmIHJlc2V0
KHNlbGYpOgorICAgICAgICBzZWxmLnNjcmVlbnNob3RfY2FjaGUuY2xlYXIoKQorCisgICAgZGVm
IGlzX3Bhc3Moc2VsZiwgaGFzaGVzLCBzY3JlZW5zaG90cywgcmVsYXRpb24sIGZ1enp5KToKICAg
ICAgICAgYXNzZXJ0IHJlbGF0aW9uIGluICgiPT0iLCAiIT0iKQotICAgICAgICBzZWxmLm1lc3Nh
Z2UuYXBwZW5kKCJUZXN0aW5nICVzICVzICVzIiAlIChsaHNfaGFzaCwgcmVsYXRpb24sIHJoc19o
YXNoKSkKLSAgICAgICAgcmV0dXJuICgocmVsYXRpb24gPT0gIj09IiBhbmQgbGhzX2hhc2ggPT0g
cmhzX2hhc2gpIG9yCi0gICAgICAgICAgICAgICAgKHJlbGF0aW9uID09ICIhPSIgYW5kIGxoc19o
YXNoICE9IHJoc19oYXNoKSkKKyAgICAgICAgaWYgbm90IGZ1enp5IG9yIGZ1enp5ID09ICgoMCww
KSwgKDAsMCkpOgorICAgICAgICAgICAgZXF1YWwgPSBoYXNoZXNbMF0gPT0gaGFzaGVzWzFdCisg
ICAgICAgICAgICAjIHNvbWV0aW1lcyBpbWFnZXMgY2FuIGhhdmUgZGlmZmVyZW50IGhhc2hlcywg
YnV0IHBpeGVscyBjYW4gYmUgaWRlbnRpY2FsLgorICAgICAgICAgICAgaWYgbm90IGVxdWFsOgor
ICAgICAgICAgICAgICAgIHNlbGYubG9nZ2VyLmluZm8oIkltYWdlIGhhc2hlcyBkaWRuJ3QgbWF0
Y2gsIGNoZWNraW5nIHBpeGVsIGRpZmZlcmVuY2VzIikKKyAgICAgICAgICAgICAgICBtYXhfcGVy
X2NoYW5uZWwsIHBpeGVsc19kaWZmZXJlbnQgPSBzZWxmLmdldF9kaWZmZXJlbmNlcyhzY3JlZW5z
aG90cykKKyAgICAgICAgICAgICAgICBlcXVhbCA9IHBpeGVsc19kaWZmZXJlbnQgPT0gMCBhbmQg
bWF4X3Blcl9jaGFubmVsID09IDAKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIG1heF9wZXJf
Y2hhbm5lbCwgcGl4ZWxzX2RpZmZlcmVudCA9IHNlbGYuZ2V0X2RpZmZlcmVuY2VzKHNjcmVlbnNo
b3RzKQorICAgICAgICAgICAgYWxsb3dlZF9wZXJfY2hhbm5lbCwgYWxsb3dlZF9kaWZmZXJlbnQg
PSBmdXp6eQorICAgICAgICAgICAgc2VsZi5sb2dnZXIuaW5mbygiQWxsb3dlZCAlcyBwaXhlbHMg
ZGlmZmVyZW50LCBtYXhpbXVtIGRpZmZlcmVuY2UgcGVyIGNoYW5uZWwgJXMiICUKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgKCItIi5qb2luKHN0cihpdGVtKSBmb3IgaXRlbSBpbiBhbGxv
d2VkX2RpZmZlcmVudCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiLSIuam9pbihz
dHIoaXRlbSkgZm9yIGl0ZW0gaW4gYWxsb3dlZF9wZXJfY2hhbm5lbCkpKQorICAgICAgICAgICAg
ZXF1YWwgPSAoKHBpeGVsc19kaWZmZXJlbnQgPT0gMCBhbmQgYWxsb3dlZF9kaWZmZXJlbnRbMF0g
PT0gMCkgb3IKKyAgICAgICAgICAgICAgICAgICAgIChtYXhfcGVyX2NoYW5uZWwgPT0gMCBhbmQg
YWxsb3dlZF9wZXJfY2hhbm5lbFswXSA9PSAwKSBvcgorICAgICAgICAgICAgICAgICAgICAgKGFs
bG93ZWRfcGVyX2NoYW5uZWxbMF0gPD0gbWF4X3Blcl9jaGFubmVsIDw9IGFsbG93ZWRfcGVyX2No
YW5uZWxbMV0gYW5kCisgICAgICAgICAgICAgICAgICAgICAgYWxsb3dlZF9kaWZmZXJlbnRbMF0g
PD0gcGl4ZWxzX2RpZmZlcmVudCA8PSBhbGxvd2VkX2RpZmZlcmVudFsxXSkpCisgICAgICAgIHJl
dHVybiBlcXVhbCBpZiByZWxhdGlvbiA9PSAiPT0iIGVsc2Ugbm90IGVxdWFsCisKKyAgICBkZWYg
Z2V0X2RpZmZlcmVuY2VzKHNlbGYsIHNjcmVlbnNob3RzKToKKyAgICAgICAgZnJvbSBQSUwgaW1w
b3J0IEltYWdlLCBJbWFnZUNob3BzLCBJbWFnZVN0YXQKKworICAgICAgICBsaHMgPSBJbWFnZS5v
cGVuKGlvLkJ5dGVzSU8oYmFzZTY0LmI2NGRlY29kZShzY3JlZW5zaG90c1swXSkpKS5jb252ZXJ0
KCJSR0IiKQorICAgICAgICByaHMgPSBJbWFnZS5vcGVuKGlvLkJ5dGVzSU8oYmFzZTY0LmI2NGRl
Y29kZShzY3JlZW5zaG90c1sxXSkpKS5jb252ZXJ0KCJSR0IiKQorICAgICAgICBkaWZmID0gSW1h
Z2VDaG9wcy5kaWZmZXJlbmNlKGxocywgcmhzKQorICAgICAgICBtaW5pbWFsX2RpZmYgPSBkaWZm
LmNyb3AoZGlmZi5nZXRiYm94KCkpCisgICAgICAgIG1hc2sgPSBtaW5pbWFsX2RpZmYuY29udmVy
dCgiTCIsIGRpdGhlcj1Ob25lKQorICAgICAgICBzdGF0ID0gSW1hZ2VTdGF0LlN0YXQobWluaW1h
bF9kaWZmLCBtYXNrKQorICAgICAgICBwZXJfY2hhbm5lbCA9IG1heChpdGVtWzFdIGZvciBpdGVt
IGluIHN0YXQuZXh0cmVtYSkKKyAgICAgICAgY291bnQgPSBzdGF0LmNvdW50WzBdCisgICAgICAg
IHNlbGYubG9nZ2VyLmluZm8oIkZvdW5kICVzIHBpeGVscyBkaWZmZXJlbnQsIG1heGltdW0gZGlm
ZmVyZW5jZSBwZXIgY2hhbm5lbCAlcyIgJQorICAgICAgICAgICAgICAgICAgICAgICAgIChjb3Vu
dCwgcGVyX2NoYW5uZWwpKQorICAgICAgICByZXR1cm4gcGVyX2NoYW5uZWwsIGNvdW50CiAKICAg
ICBkZWYgcnVuX3Rlc3Qoc2VsZiwgdGVzdCk6CiAgICAgICAgIHZpZXdwb3J0X3NpemUgPSB0ZXN0
LnZpZXdwb3J0X3NpemUKQEAgLTI4Nyw2ICs0MDgsNyBAQCBjbGFzcyBSZWZUZXN0SW1wbGVtZW50
YXRpb24ob2JqZWN0KToKICAgICAgICAgICAgIHNjcmVlbnNob3RzID0gW05vbmUsIE5vbmVdCiAK
ICAgICAgICAgICAgIG5vZGVzLCByZWxhdGlvbiA9IHN0YWNrLnBvcCgpCisgICAgICAgICAgICBm
dXp6eSA9IHNlbGYuZ2V0X2Z1enp5KHRlc3QsIG5vZGVzLCByZWxhdGlvbikKIAogICAgICAgICAg
ICAgZm9yIGksIG5vZGUgaW4gZW51bWVyYXRlKG5vZGVzKToKICAgICAgICAgICAgICAgICBzdWNj
ZXNzLCBkYXRhID0gc2VsZi5nZXRfaGFzaChub2RlLCB2aWV3cG9ydF9zaXplLCBkcGkpCkBAIC0y
OTUsNyArNDE3LDggQEAgY2xhc3MgUmVmVGVzdEltcGxlbWVudGF0aW9uKG9iamVjdCk6CiAKICAg
ICAgICAgICAgICAgICBoYXNoZXNbaV0sIHNjcmVlbnNob3RzW2ldID0gZGF0YQogCi0gICAgICAg
ICAgICBpZiBzZWxmLmlzX3Bhc3MoaGFzaGVzWzBdLCBoYXNoZXNbMV0sIHJlbGF0aW9uKToKKyAg
ICAgICAgICAgIGlmIHNlbGYuaXNfcGFzcyhoYXNoZXMsIHNjcmVlbnNob3RzLCByZWxhdGlvbiwg
ZnV6enkpOgorICAgICAgICAgICAgICAgIGZ1enp5ID0gc2VsZi5nZXRfZnV6enkodGVzdCwgbm9k
ZXMsIHJlbGF0aW9uKQogICAgICAgICAgICAgICAgIGlmIG5vZGVzWzFdLnJlZmVyZW5jZXM6CiAg
ICAgICAgICAgICAgICAgICAgIHN0YWNrLmV4dGVuZChsaXN0KCgobm9kZXNbMV0sIGl0ZW1bMF0p
LCBpdGVtWzFdKSBmb3IgaXRlbSBpbiByZXZlcnNlZChub2Rlc1sxXS5yZWZlcmVuY2VzKSkpCiAg
ICAgICAgICAgICAgICAgZWxzZToKQEAgLTMxMCwxMyArNDMzLDM1IEBAIGNsYXNzIFJlZlRlc3RJ
bXBsZW1lbnRhdGlvbihvYmplY3QpOgogICAgICAgICAgICAgICAgIGlmIHN1Y2Nlc3M6CiAgICAg
ICAgICAgICAgICAgICAgIHNjcmVlbnNob3RzW2ldID0gc2NyZWVuc2hvdAogCi0gICAgICAgIGxv
Z19kYXRhID0gW3sidXJsIjogbm9kZXNbMF0udXJsLCAic2NyZWVuc2hvdCI6IHNjcmVlbnNob3Rz
WzBdfSwgcmVsYXRpb24sCi0gICAgICAgICAgICAgICAgICAgIHsidXJsIjogbm9kZXNbMV0udXJs
LCAic2NyZWVuc2hvdCI6IHNjcmVlbnNob3RzWzFdfV0KKyAgICAgICAgbG9nX2RhdGEgPSBbCisg
ICAgICAgICAgICB7InVybCI6IG5vZGVzWzBdLnVybCwgInNjcmVlbnNob3QiOiBzY3JlZW5zaG90
c1swXSwgImhhc2giOiBoYXNoZXNbMF19LAorICAgICAgICAgICAgcmVsYXRpb24sCisgICAgICAg
ICAgICB7InVybCI6IG5vZGVzWzFdLnVybCwgInNjcmVlbnNob3QiOiBzY3JlZW5zaG90c1sxXSwg
Imhhc2giOiBoYXNoZXNbMV19LAorICAgICAgICBdCiAKICAgICAgICAgcmV0dXJuIHsic3RhdHVz
IjogIkZBSUwiLAogICAgICAgICAgICAgICAgICJtZXNzYWdlIjogIlxuIi5qb2luKHNlbGYubWVz
c2FnZSksCiAgICAgICAgICAgICAgICAgImV4dHJhIjogeyJyZWZ0ZXN0X3NjcmVlbnNob3RzIjog
bG9nX2RhdGF9fQogCisgICAgZGVmIGdldF9mdXp6eShzZWxmLCByb290X3Rlc3QsIHRlc3Rfbm9k
ZXMsIHJlbGF0aW9uKToKKyAgICAgICAgZnVsbF9rZXkgPSB0dXBsZShbaXRlbS51cmwgZm9yIGl0
ZW0gaW4gdGVzdF9ub2Rlc10gKyBbcmVsYXRpb25dKQorICAgICAgICByZWZfb25seV9rZXkgPSB0
ZXN0X25vZGVzWzFdLnVybAorCisgICAgICAgIGZ1enp5X292ZXJyaWRlID0gcm9vdF90ZXN0LmZ1
enp5X292ZXJyaWRlCisgICAgICAgIGZ1enp5ID0gdGVzdF9ub2Rlc1swXS5mdXp6eQorCisgICAg
ICAgIHNvdXJjZXMgPSBbZnV6enlfb3ZlcnJpZGUsIGZ1enp5XQorICAgICAgICBrZXlzID0gW2Z1
bGxfa2V5LCByZWZfb25seV9rZXksIE5vbmVdCisgICAgICAgIHZhbHVlID0gTm9uZQorICAgICAg
ICBmb3Igc291cmNlIGluIHNvdXJjZXM6CisgICAgICAgICAgICBmb3Iga2V5IGluIGtleXM6Cisg
ICAgICAgICAgICAgICAgaWYga2V5IGluIHNvdXJjZToKKyAgICAgICAgICAgICAgICAgICAgdmFs
dWUgPSBzb3VyY2Vba2V5XQorICAgICAgICAgICAgICAgICAgICBicmVhaworICAgICAgICAgICAg
aWYgdmFsdWU6CisgICAgICAgICAgICAgICAgYnJlYWsKKyAgICAgICAgcmV0dXJuIHZhbHVlCisK
ICAgICBkZWYgcmV0YWtlX3NjcmVlbnNob3Qoc2VsZiwgbm9kZSwgdmlld3BvcnRfc2l6ZSwgZHBp
KToKICAgICAgICAgc3VjY2VzcywgZGF0YSA9IHNlbGYuZXhlY3V0b3Iuc2NyZWVuc2hvdChub2Rl
LCB2aWV3cG9ydF9zaXplLCBkcGkpCiAgICAgICAgIGlmIG5vdCBzdWNjZXNzOgpAQCAtMzUyLDcg
KzQ5Nyw3IEBAIGNsYXNzIFdkc3BlY0V4ZWN1dG9yKFRlc3RFeGVjdXRvcik6CiAgICAgICAgIHBh
c3MKIAogICAgIGRlZiBkb190ZXN0KHNlbGYsIHRlc3QpOgotICAgICAgICB0aW1lb3V0ID0gdGVz
dC50aW1lb3V0ICogc2VsZi50aW1lb3V0X211bHRpcGxpZXIgKyBleHRyYV90aW1lb3V0CisgICAg
ICAgIHRpbWVvdXQgPSB0ZXN0LnRpbWVvdXQgKiBzZWxmLnRpbWVvdXRfbXVsdGlwbGllciArIHNl
bGYuZXh0cmFfdGltZW91dAogCiAgICAgICAgIHN1Y2Nlc3MsIGRhdGEgPSBXZHNwZWNSdW4oc2Vs
Zi5kb193ZHNwZWMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5wcm90
b2NvbC5zZXNzaW9uX2NvbmZpZywKQEAgLTQxNiw3ICs1NjEsNyBAQCBjbGFzcyBXZHNwZWNSdW4o
b2JqZWN0KToKIAogCiBjbGFzcyBDb25uZWN0aW9ubGVzc0Jhc2VQcm90b2NvbFBhcnQoQmFzZVBy
b3RvY29sUGFydCk6Ci0gICAgZGVmIGV4ZWN1dGVfc2NyaXB0KHNlbGYsIHNjcmlwdCwgYXN5bmM9
RmFsc2UpOgorICAgIGRlZiBleGVjdXRlX3NjcmlwdChzZWxmLCBzY3JpcHQsIGFzeW5jaHJvbm91
cz1GYWxzZSk6CiAgICAgICAgIHBhc3MKIAogICAgIGRlZiBzZXRfdGltZW91dChzZWxmLCB0aW1l
b3V0KToKQEAgLTQ4NCw3ICs2MjksNyBAQCBjbGFzcyBXZWJEcml2ZXJQcm90b2NvbChQcm90b2Nv
bCk6CiAgICAgICAgIEFuIEhUVFAgcmVxdWVzdCB0byBhbiBpbnZhbGlkIHBhdGggdGhhdCByZXN1
bHRzIGluIGEgNDA0IGlzCiAgICAgICAgIHByb29mIGVub3VnaCB0byB1cyB0aGF0IHRoZSBzZXJ2
ZXIgaXMgYWxpdmUgYW5kIGtpY2tpbmcuCiAgICAgICAgICIiIgotICAgICAgICBjb25uID0gaHR0
cGxpYi5IVFRQQ29ubmVjdGlvbihzZWxmLnNlcnZlci5ob3N0LCBzZWxmLnNlcnZlci5wb3J0KQor
ICAgICAgICBjb25uID0gSFRUUENvbm5lY3Rpb24oc2VsZi5zZXJ2ZXIuaG9zdCwgc2VsZi5zZXJ2
ZXIucG9ydCkKICAgICAgICAgY29ubi5yZXF1ZXN0KCJIRUFEIiwgc2VsZi5zZXJ2ZXIuYmFzZV9w
YXRoICsgImludmFsaWQiKQogICAgICAgICByZXMgPSBjb25uLmdldHJlc3BvbnNlKCkKICAgICAg
ICAgcmV0dXJuIHJlcy5zdGF0dXMgPT0gNDA0CkBAIC01MDgsNyArNjUzLDE2IEBAIGNsYXNzIENh
bGxiYWNrSGFuZGxlcihvYmplY3QpOgogCiAgICAgICAgIHNlbGYuYWN0aW9ucyA9IHsKICAgICAg
ICAgICAgICJjbGljayI6IENsaWNrQWN0aW9uKHNlbGYubG9nZ2VyLCBzZWxmLnByb3RvY29sKSwK
LSAgICAgICAgICAgICJzZW5kX2tleXMiOiBTZW5kS2V5c0FjdGlvbihzZWxmLmxvZ2dlciwgc2Vs
Zi5wcm90b2NvbCkKKyAgICAgICAgICAgICJzZW5kX2tleXMiOiBTZW5kS2V5c0FjdGlvbihzZWxm
LmxvZ2dlciwgc2VsZi5wcm90b2NvbCksCisgICAgICAgICAgICAiYWN0aW9uX3NlcXVlbmNlIjog
QWN0aW9uU2VxdWVuY2VBY3Rpb24oc2VsZi5sb2dnZXIsIHNlbGYucHJvdG9jb2wpLAorICAgICAg
ICAgICAgImdlbmVyYXRlX3Rlc3RfcmVwb3J0IjogR2VuZXJhdGVUZXN0UmVwb3J0QWN0aW9uKHNl
bGYubG9nZ2VyLCBzZWxmLnByb3RvY29sKSwKKyAgICAgICAgICAgICJhZGRfdmlydHVhbF9hdXRo
ZW50aWNhdG9yIjogQWRkVmlydHVhbEF1dGhlbnRpY2F0b3JBY3Rpb24oc2VsZi5sb2dnZXIsIHNl
bGYucHJvdG9jb2wpLAorICAgICAgICAgICAgInJlbW92ZV92aXJ0dWFsX2F1dGhlbnRpY2F0b3Ii
OiBSZW1vdmVWaXJ0dWFsQXV0aGVudGljYXRvckFjdGlvbihzZWxmLmxvZ2dlciwgc2VsZi5wcm90
b2NvbCksCisgICAgICAgICAgICAiYWRkX2NyZWRlbnRpYWwiOiBBZGRDcmVkZW50aWFsQWN0aW9u
KHNlbGYubG9nZ2VyLCBzZWxmLnByb3RvY29sKSwKKyAgICAgICAgICAgICJnZXRfY3JlZGVudGlh
bHMiOiBHZXRDcmVkZW50aWFsc0FjdGlvbihzZWxmLmxvZ2dlciwgc2VsZi5wcm90b2NvbCksCisg
ICAgICAgICAgICAicmVtb3ZlX2NyZWRlbnRpYWwiOiBSZW1vdmVDcmVkZW50aWFsQWN0aW9uKHNl
bGYubG9nZ2VyLCBzZWxmLnByb3RvY29sKSwKKyAgICAgICAgICAgICJyZW1vdmVfYWxsX2NyZWRl
bnRpYWxzIjogUmVtb3ZlQWxsQ3JlZGVudGlhbHNBY3Rpb24oc2VsZi5sb2dnZXIsIHNlbGYucHJv
dG9jb2wpLAorICAgICAgICAgICAgInNldF91c2VyX3ZlcmlmaWVkIjogU2V0VXNlclZlcmlmaWVk
QWN0aW9uKHNlbGYubG9nZ2VyLCBzZWxmLnByb3RvY29sKSwKICAgICAgICAgfQogCiAgICAgZGVm
IF9fY2FsbF9fKHNlbGYsIHJlc3VsdCk6CkBAIC01MjEsMzAgKzY3NSwyNyBAQCBjbGFzcyBDYWxs
YmFja0hhbmRsZXIob2JqZWN0KToKICAgICAgICAgcmV0dXJuIGNhbGxiYWNrKHVybCwgcGF5bG9h
ZCkKIAogICAgIGRlZiBwcm9jZXNzX2NvbXBsZXRlKHNlbGYsIHVybCwgcGF5bG9hZCk6Ci0gICAg
ICAgIHJ2ID0gW3VybF0gKyBwYXlsb2FkCisgICAgICAgIHJ2ID0gW3N0cmlwX3NlcnZlcih1cmwp
XSArIHBheWxvYWQKICAgICAgICAgcmV0dXJuIFRydWUsIHJ2CiAKICAgICBkZWYgcHJvY2Vzc19h
Y3Rpb24oc2VsZiwgdXJsLCBwYXlsb2FkKToKLSAgICAgICAgcGFyZW50ID0gc2VsZi5wcm90b2Nv
bC5iYXNlLmN1cnJlbnRfd2luZG93CisgICAgICAgIGFjdGlvbiA9IHBheWxvYWRbImFjdGlvbiJd
CisgICAgICAgIHNlbGYubG9nZ2VyLmRlYnVnKCJHb3QgYWN0aW9uOiAlcyIgJSBhY3Rpb24pCiAg
ICAgICAgIHRyeToKLSAgICAgICAgICAgIHNlbGYucHJvdG9jb2wuYmFzZS5zZXRfd2luZG93KHNl
bGYudGVzdF93aW5kb3cpCi0gICAgICAgICAgICBhY3Rpb24gPSBwYXlsb2FkWyJhY3Rpb24iXQot
ICAgICAgICAgICAgc2VsZi5sb2dnZXIuZGVidWcoIkdvdCBhY3Rpb246ICVzIiAlIGFjdGlvbikK
LSAgICAgICAgICAgIHRyeToKLSAgICAgICAgICAgICAgICBhY3Rpb25faGFuZGxlciA9IHNlbGYu
YWN0aW9uc1thY3Rpb25dCi0gICAgICAgICAgICBleGNlcHQgS2V5RXJyb3I6Ci0gICAgICAgICAg
ICAgICAgcmFpc2UgVmFsdWVFcnJvcigiVW5rbm93biBhY3Rpb24gJXMiICUgYWN0aW9uKQotICAg
ICAgICAgICAgdHJ5OgotICAgICAgICAgICAgICAgIGFjdGlvbl9oYW5kbGVyKHBheWxvYWQpCi0g
ICAgICAgICAgICBleGNlcHQgRXhjZXB0aW9uOgotICAgICAgICAgICAgICAgIHNlbGYubG9nZ2Vy
Lndhcm5pbmcoIkFjdGlvbiAlcyBmYWlsZWQiICUgYWN0aW9uKQotICAgICAgICAgICAgICAgIHNl
bGYubG9nZ2VyLndhcm5pbmcodHJhY2ViYWNrLmZvcm1hdF9leGMoKSkKLSAgICAgICAgICAgICAg
ICBzZWxmLl9zZW5kX21lc3NhZ2UoImNvbXBsZXRlIiwgImZhaWx1cmUiKQotICAgICAgICAgICAg
ZWxzZToKLSAgICAgICAgICAgICAgICBzZWxmLmxvZ2dlci5kZWJ1ZygiQWN0aW9uICVzIGNvbXBs
ZXRlZCIgJSBhY3Rpb24pCi0gICAgICAgICAgICAgICAgc2VsZi5fc2VuZF9tZXNzYWdlKCJjb21w
bGV0ZSIsICJzdWNjZXNzIikKLSAgICAgICAgZmluYWxseToKLSAgICAgICAgICAgIHNlbGYucHJv
dG9jb2wuYmFzZS5zZXRfd2luZG93KHBhcmVudCkKKyAgICAgICAgICAgIGFjdGlvbl9oYW5kbGVy
ID0gc2VsZi5hY3Rpb25zW2FjdGlvbl0KKyAgICAgICAgZXhjZXB0IEtleUVycm9yOgorICAgICAg
ICAgICAgcmFpc2UgVmFsdWVFcnJvcigiVW5rbm93biBhY3Rpb24gJXMiICUgYWN0aW9uKQorICAg
ICAgICB0cnk6CisgICAgICAgICAgICByZXN1bHQgPSBhY3Rpb25faGFuZGxlcihwYXlsb2FkKQor
ICAgICAgICBleGNlcHQgRXhjZXB0aW9uOgorICAgICAgICAgICAgc2VsZi5sb2dnZXIud2Fybmlu
ZygiQWN0aW9uICVzIGZhaWxlZCIgJSBhY3Rpb24pCisgICAgICAgICAgICBzZWxmLmxvZ2dlci53
YXJuaW5nKHRyYWNlYmFjay5mb3JtYXRfZXhjKCkpCisgICAgICAgICAgICBzZWxmLl9zZW5kX21l
c3NhZ2UoImNvbXBsZXRlIiwgImVycm9yIikKKyAgICAgICAgICAgIHJhaXNlCisgICAgICAgIGVs
c2U6CisgICAgICAgICAgICBzZWxmLmxvZ2dlci5kZWJ1ZygiQWN0aW9uICVzIGNvbXBsZXRlZCB3
aXRoIHJlc3VsdCAlcyIgJSAoYWN0aW9uLCByZXN1bHQpKQorICAgICAgICAgICAgcmV0dXJuX21l
c3NhZ2UgPSB7InJlc3VsdCI6IHJlc3VsdH0KKyAgICAgICAgICAgIHNlbGYuX3NlbmRfbWVzc2Fn
ZSgiY29tcGxldGUiLCAic3VjY2VzcyIsIGpzb24uZHVtcHMocmV0dXJuX21lc3NhZ2UpKQogCiAg
ICAgICAgIHJldHVybiBGYWxzZSwgTm9uZQogCkBAIC01NTksMTMgKzcxMCw5IEBAIGNsYXNzIENs
aWNrQWN0aW9uKG9iamVjdCk6CiAKICAgICBkZWYgX19jYWxsX18oc2VsZiwgcGF5bG9hZCk6CiAg
ICAgICAgIHNlbGVjdG9yID0gcGF5bG9hZFsic2VsZWN0b3IiXQotICAgICAgICBlbGVtZW50cyA9
IHNlbGYucHJvdG9jb2wuc2VsZWN0LmVsZW1lbnRzX2J5X3NlbGVjdG9yKHNlbGVjdG9yKQotICAg
ICAgICBpZiBsZW4oZWxlbWVudHMpID09IDA6Ci0gICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9y
KCJTZWxlY3RvciBtYXRjaGVzIG5vIGVsZW1lbnRzIikKLSAgICAgICAgZWxpZiBsZW4oZWxlbWVu
dHMpID4gMToKLSAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoIlNlbGVjdG9yIG1hdGNoZXMg
bXVsdGlwbGUgZWxlbWVudHMiKQorICAgICAgICBlbGVtZW50ID0gc2VsZi5wcm90b2NvbC5zZWxl
Y3QuZWxlbWVudF9ieV9zZWxlY3RvcihzZWxlY3RvcikKICAgICAgICAgc2VsZi5sb2dnZXIuZGVi
dWcoIkNsaWNraW5nIGVsZW1lbnQ6ICVzIiAlIHNlbGVjdG9yKQotICAgICAgICBzZWxmLnByb3Rv
Y29sLmNsaWNrLmVsZW1lbnQoZWxlbWVudHNbMF0pCisgICAgICAgIHNlbGYucHJvdG9jb2wuY2xp
Y2suZWxlbWVudChlbGVtZW50KQogCiAKIGNsYXNzIFNlbmRLZXlzQWN0aW9uKG9iamVjdCk6CkBA
IC01NzYsMTAgKzcyMywxMTQgQEAgY2xhc3MgU2VuZEtleXNBY3Rpb24ob2JqZWN0KToKICAgICBk
ZWYgX19jYWxsX18oc2VsZiwgcGF5bG9hZCk6CiAgICAgICAgIHNlbGVjdG9yID0gcGF5bG9hZFsi
c2VsZWN0b3IiXQogICAgICAgICBrZXlzID0gcGF5bG9hZFsia2V5cyJdCi0gICAgICAgIGVsZW1l
bnRzID0gc2VsZi5wcm90b2NvbC5zZWxlY3QuZWxlbWVudHNfYnlfc2VsZWN0b3Ioc2VsZWN0b3Ip
Ci0gICAgICAgIGlmIGxlbihlbGVtZW50cykgPT0gMDoKLSAgICAgICAgICAgIHJhaXNlIFZhbHVl
RXJyb3IoIlNlbGVjdG9yIG1hdGNoZXMgbm8gZWxlbWVudHMiKQotICAgICAgICBlbGlmIGxlbihl
bGVtZW50cykgPiAxOgotICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigiU2VsZWN0b3IgbWF0
Y2hlcyBtdWx0aXBsZSBlbGVtZW50cyIpCisgICAgICAgIGVsZW1lbnQgPSBzZWxmLnByb3RvY29s
LnNlbGVjdC5lbGVtZW50X2J5X3NlbGVjdG9yKHNlbGVjdG9yKQogICAgICAgICBzZWxmLmxvZ2dl
ci5kZWJ1ZygiU2VuZGluZyBrZXlzIHRvIGVsZW1lbnQ6ICVzIiAlIHNlbGVjdG9yKQotICAgICAg
ICBzZWxmLnByb3RvY29sLnNlbmRfa2V5cy5zZW5kX2tleXMoZWxlbWVudHNbMF0sIGtleXMpCisg
ICAgICAgIHNlbGYucHJvdG9jb2wuc2VuZF9rZXlzLnNlbmRfa2V5cyhlbGVtZW50LCBrZXlzKQor
CisKK2NsYXNzIEFjdGlvblNlcXVlbmNlQWN0aW9uKG9iamVjdCk6CisgICAgZGVmIF9faW5pdF9f
KHNlbGYsIGxvZ2dlciwgcHJvdG9jb2wpOgorICAgICAgICBzZWxmLmxvZ2dlciA9IGxvZ2dlcgor
ICAgICAgICBzZWxmLnByb3RvY29sID0gcHJvdG9jb2wKKworICAgIGRlZiBfX2NhbGxfXyhzZWxm
LCBwYXlsb2FkKToKKyAgICAgICAgIyBUT0RPOiBzb21lIHNvcnQgb2Ygc2hhbGxvdyBlcnJvciBj
aGVja2luZworICAgICAgICBhY3Rpb25zID0gcGF5bG9hZFsiYWN0aW9ucyJdCisgICAgICAgIGZv
ciBhY3Rpb25TZXF1ZW5jZSBpbiBhY3Rpb25zOgorICAgICAgICAgICAgaWYgYWN0aW9uU2VxdWVu
Y2VbInR5cGUiXSA9PSAicG9pbnRlciI6CisgICAgICAgICAgICAgICAgZm9yIGFjdGlvbiBpbiBh
Y3Rpb25TZXF1ZW5jZVsiYWN0aW9ucyJdOgorICAgICAgICAgICAgICAgICAgICBpZiAoYWN0aW9u
WyJ0eXBlIl0gPT0gInBvaW50ZXJNb3ZlIiBhbmQKKyAgICAgICAgICAgICAgICAgICAgICAgIGlz
aW5zdGFuY2UoYWN0aW9uWyJvcmlnaW4iXSwgZGljdCkpOgorICAgICAgICAgICAgICAgICAgICAg
ICAgYWN0aW9uWyJvcmlnaW4iXSA9IHNlbGYuZ2V0X2VsZW1lbnQoYWN0aW9uWyJvcmlnaW4iXVsi
c2VsZWN0b3IiXSwgYWN0aW9uWyJmcmFtZSJdWyJmcmFtZSJdKQorICAgICAgICBzZWxmLnByb3Rv
Y29sLmFjdGlvbl9zZXF1ZW5jZS5zZW5kX2FjdGlvbnMoeyJhY3Rpb25zIjogYWN0aW9uc30pCisK
KyAgICBkZWYgZ2V0X2VsZW1lbnQoc2VsZiwgZWxlbWVudF9zZWxlY3RvciwgZnJhbWUpOgorICAg
ICAgICBlbGVtZW50ID0gc2VsZi5wcm90b2NvbC5zZWxlY3QuZWxlbWVudF9ieV9zZWxlY3Rvcihl
bGVtZW50X3NlbGVjdG9yLCBmcmFtZSkKKyAgICAgICAgcmV0dXJuIGVsZW1lbnQKKworY2xhc3Mg
R2VuZXJhdGVUZXN0UmVwb3J0QWN0aW9uKG9iamVjdCk6CisgICAgZGVmIF9faW5pdF9fKHNlbGYs
IGxvZ2dlciwgcHJvdG9jb2wpOgorICAgICAgICBzZWxmLmxvZ2dlciA9IGxvZ2dlcgorICAgICAg
ICBzZWxmLnByb3RvY29sID0gcHJvdG9jb2wKKworICAgIGRlZiBfX2NhbGxfXyhzZWxmLCBwYXls
b2FkKToKKyAgICAgICAgbWVzc2FnZSA9IHBheWxvYWRbIm1lc3NhZ2UiXQorICAgICAgICBzZWxm
LmxvZ2dlci5kZWJ1ZygiR2VuZXJhdGluZyB0ZXN0IHJlcG9ydDogJXMiICUgbWVzc2FnZSkKKyAg
ICAgICAgc2VsZi5wcm90b2NvbC5nZW5lcmF0ZV90ZXN0X3JlcG9ydC5nZW5lcmF0ZV90ZXN0X3Jl
cG9ydChtZXNzYWdlKQorCitjbGFzcyBBZGRWaXJ0dWFsQXV0aGVudGljYXRvckFjdGlvbihvYmpl
Y3QpOgorICAgIGRlZiBfX2luaXRfXyhzZWxmLCBsb2dnZXIsIHByb3RvY29sKToKKyAgICAgICAg
c2VsZi5sb2dnZXIgPSBsb2dnZXIKKyAgICAgICAgc2VsZi5wcm90b2NvbCA9IHByb3RvY29sCisK
KyAgICBkZWYgX19jYWxsX18oc2VsZiwgcGF5bG9hZCk6CisgICAgICAgIHNlbGYubG9nZ2VyLmRl
YnVnKCJBZGRpbmcgdmlydHVhbCBhdXRoZW50aWNhdG9yIikKKyAgICAgICAgY29uZmlnID0gcGF5
bG9hZFsiY29uZmlnIl0KKyAgICAgICAgYXV0aGVudGljYXRvcl9pZCA9IHNlbGYucHJvdG9jb2wu
dmlydHVhbF9hdXRoZW50aWNhdG9yLmFkZF92aXJ0dWFsX2F1dGhlbnRpY2F0b3IoY29uZmlnKQor
ICAgICAgICBzZWxmLmxvZ2dlci5kZWJ1ZygiQXV0aGVudGljYXRvciBjcmVhdGVkIHdpdGggSUQg
JXMiICUgYXV0aGVudGljYXRvcl9pZCkKKyAgICAgICAgcmV0dXJuIGF1dGhlbnRpY2F0b3JfaWQK
KworY2xhc3MgUmVtb3ZlVmlydHVhbEF1dGhlbnRpY2F0b3JBY3Rpb24ob2JqZWN0KToKKyAgICBk
ZWYgX19pbml0X18oc2VsZiwgbG9nZ2VyLCBwcm90b2NvbCk6CisgICAgICAgIHNlbGYubG9nZ2Vy
ID0gbG9nZ2VyCisgICAgICAgIHNlbGYucHJvdG9jb2wgPSBwcm90b2NvbAorCisgICAgZGVmIF9f
Y2FsbF9fKHNlbGYsIHBheWxvYWQpOgorICAgICAgICBhdXRoZW50aWNhdG9yX2lkID0gcGF5bG9h
ZFsiYXV0aGVudGljYXRvcl9pZCJdCisgICAgICAgIHNlbGYubG9nZ2VyLmRlYnVnKCJSZW1vdmlu
ZyB2aXJ0dWFsIGF1dGhlbnRpY2F0b3IgJXMiICUgYXV0aGVudGljYXRvcl9pZCkKKyAgICAgICAg
cmV0dXJuIHNlbGYucHJvdG9jb2wudmlydHVhbF9hdXRoZW50aWNhdG9yLnJlbW92ZV92aXJ0dWFs
X2F1dGhlbnRpY2F0b3IoYXV0aGVudGljYXRvcl9pZCkKKworCitjbGFzcyBBZGRDcmVkZW50aWFs
QWN0aW9uKG9iamVjdCk6CisgICAgZGVmIF9faW5pdF9fKHNlbGYsIGxvZ2dlciwgcHJvdG9jb2wp
OgorICAgICAgICBzZWxmLmxvZ2dlciA9IGxvZ2dlcgorICAgICAgICBzZWxmLnByb3RvY29sID0g
cHJvdG9jb2wKKworICAgIGRlZiBfX2NhbGxfXyhzZWxmLCBwYXlsb2FkKToKKyAgICAgICAgYXV0
aGVudGljYXRvcl9pZCA9IHBheWxvYWRbImF1dGhlbnRpY2F0b3JfaWQiXQorICAgICAgICBjcmVk
ZW50aWFsID0gcGF5bG9hZFsiY3JlZGVudGlhbCJdCisgICAgICAgIHNlbGYubG9nZ2VyLmRlYnVn
KCJBZGRpbmcgY3JlZGVudGlhbCB0byB2aXJ0dWFsIGF1dGhlbnRpY2F0b3IgJXMgIiAlIGF1dGhl
bnRpY2F0b3JfaWQpCisgICAgICAgIHJldHVybiBzZWxmLnByb3RvY29sLnZpcnR1YWxfYXV0aGVu
dGljYXRvci5hZGRfY3JlZGVudGlhbChhdXRoZW50aWNhdG9yX2lkLCBjcmVkZW50aWFsKQorCitj
bGFzcyBHZXRDcmVkZW50aWFsc0FjdGlvbihvYmplY3QpOgorICAgIGRlZiBfX2luaXRfXyhzZWxm
LCBsb2dnZXIsIHByb3RvY29sKToKKyAgICAgICAgc2VsZi5sb2dnZXIgPSBsb2dnZXIKKyAgICAg
ICAgc2VsZi5wcm90b2NvbCA9IHByb3RvY29sCisKKyAgICBkZWYgX19jYWxsX18oc2VsZiwgcGF5
bG9hZCk6CisgICAgICAgIGF1dGhlbnRpY2F0b3JfaWQgPSBwYXlsb2FkWyJhdXRoZW50aWNhdG9y
X2lkIl0KKyAgICAgICAgc2VsZi5sb2dnZXIuZGVidWcoIkdldHRpbmcgY3JlZGVudGlhbHMgZnJv
bSB2aXJ0dWFsIGF1dGhlbnRpY2F0b3IgJXMgIiAlIGF1dGhlbnRpY2F0b3JfaWQpCisgICAgICAg
IHJldHVybiBzZWxmLnByb3RvY29sLnZpcnR1YWxfYXV0aGVudGljYXRvci5nZXRfY3JlZGVudGlh
bHMoYXV0aGVudGljYXRvcl9pZCkKKworY2xhc3MgUmVtb3ZlQ3JlZGVudGlhbEFjdGlvbihvYmpl
Y3QpOgorICAgIGRlZiBfX2luaXRfXyhzZWxmLCBsb2dnZXIsIHByb3RvY29sKToKKyAgICAgICAg
c2VsZi5sb2dnZXIgPSBsb2dnZXIKKyAgICAgICAgc2VsZi5wcm90b2NvbCA9IHByb3RvY29sCisK
KyAgICBkZWYgX19jYWxsX18oc2VsZiwgcGF5bG9hZCk6CisgICAgICAgIGF1dGhlbnRpY2F0b3Jf
aWQgPSBwYXlsb2FkWyJhdXRoZW50aWNhdG9yX2lkIl0KKyAgICAgICAgY3JlZGVudGlhbF9pZCA9
IHBheWxvYWRbImNyZWRlbnRpYWxfaWQiXQorICAgICAgICBzZWxmLmxvZ2dlci5kZWJ1ZygiUmVt
b3ZpbmcgY3JlZGVudGlhbCAlcyBmcm9tIGF1dGhlbnRpY2F0b3IgJXMiICUgKGNyZWRlbnRpYWxf
aWQsIGF1dGhlbnRpY2F0b3JfaWQpKQorICAgICAgICByZXR1cm4gc2VsZi5wcm90b2NvbC52aXJ0
dWFsX2F1dGhlbnRpY2F0b3IucmVtb3ZlX2NyZWRlbnRpYWwoYXV0aGVudGljYXRvcl9pZCwgY3Jl
ZGVudGlhbF9pZCkKKworY2xhc3MgUmVtb3ZlQWxsQ3JlZGVudGlhbHNBY3Rpb24ob2JqZWN0KToK
KyAgICBkZWYgX19pbml0X18oc2VsZiwgbG9nZ2VyLCBwcm90b2NvbCk6CisgICAgICAgIHNlbGYu
bG9nZ2VyID0gbG9nZ2VyCisgICAgICAgIHNlbGYucHJvdG9jb2wgPSBwcm90b2NvbAorCisgICAg
ZGVmIF9fY2FsbF9fKHNlbGYsIHBheWxvYWQpOgorICAgICAgICBhdXRoZW50aWNhdG9yX2lkID0g
cGF5bG9hZFsiYXV0aGVudGljYXRvcl9pZCJdCisgICAgICAgIHNlbGYubG9nZ2VyLmRlYnVnKCJS
ZW1vdmluZyBhbGwgY3JlZGVudGlhbHMgZnJvbSBhdXRoZW50aWNhdG9yICVzIiAlIGF1dGhlbnRp
Y2F0b3JfaWQpCisgICAgICAgIHJldHVybiBzZWxmLnByb3RvY29sLnZpcnR1YWxfYXV0aGVudGlj
YXRvci5yZW1vdmVfYWxsX2NyZWRlbnRpYWxzKGF1dGhlbnRpY2F0b3JfaWQpCisKK2NsYXNzIFNl
dFVzZXJWZXJpZmllZEFjdGlvbihvYmplY3QpOgorICAgIGRlZiBfX2luaXRfXyhzZWxmLCBsb2dn
ZXIsIHByb3RvY29sKToKKyAgICAgICAgc2VsZi5sb2dnZXIgPSBsb2dnZXIKKyAgICAgICAgc2Vs
Zi5wcm90b2NvbCA9IHByb3RvY29sCisKKyAgICBkZWYgX19jYWxsX18oc2VsZiwgcGF5bG9hZCk6
CisgICAgICAgIGF1dGhlbnRpY2F0b3JfaWQgPSBwYXlsb2FkWyJhdXRoZW50aWNhdG9yX2lkIl0K
KyAgICAgICAgdXYgPSBwYXlsb2FkWyJ1diJdCisgICAgICAgIHNlbGYubG9nZ2VyLmRlYnVnKAor
ICAgICAgICAgICAgIlNldHRpbmcgdXNlciB2ZXJpZmllZCBmbGFnIG9uIGF1dGhlbnRpY2F0b3Ig
JXMgdG8gJXMiICUgKGF1dGhlbnRpY2F0b3JfaWQsIHV2WyJpc1VzZXJWZXJpZmllZCJdKSkKKyAg
ICAgICAgcmV0dXJuIHNlbGYucHJvdG9jb2wudmlydHVhbF9hdXRoZW50aWNhdG9yLnNldF91c2Vy
X3ZlcmlmaWVkKGF1dGhlbnRpY2F0b3JfaWQsIHV2KQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVy
L2V4ZWN1dG9ycy9leGVjdXRvcmVkZ2VjaHJvbWl1bS5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9leGVjdXRv
cnMvZXhlY3V0b3JlZGdlY2hyb21pdW0ucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzNlYmUxOTdlNzE3ZGU5NGMz
OTMxZDNmMDk4NTY5NzI0NDZkNzZlYwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9l
eGVjdXRvcnMvZXhlY3V0b3JlZGdlY2hyb21pdW0ucHkKQEAgLTAsMCArMSwxMCBAQAorZnJvbSAu
LndlYmRyaXZlcl9zZXJ2ZXIgaW1wb3J0IEVkZ2VDaHJvbWl1bURyaXZlclNlcnZlcg0KK2Zyb20g
LmJhc2UgaW1wb3J0IFdkc3BlY0V4ZWN1dG9yLCBXZWJEcml2ZXJQcm90b2NvbA0KKw0KKw0KK2Ns
YXNzIEVkZ2VDaHJvbWl1bURyaXZlclByb3RvY29sKFdlYkRyaXZlclByb3RvY29sKToNCisgICAg
c2VydmVyX2NscyA9IEVkZ2VDaHJvbWl1bURyaXZlclNlcnZlcg0KKw0KKw0KK2NsYXNzIEVkZ2VD
aHJvbWl1bURyaXZlcldkc3BlY0V4ZWN1dG9yKFdkc3BlY0V4ZWN1dG9yKToNCisgICAgcHJvdG9j
b2xfY2xzID0gRWRnZUNocm9taXVtRHJpdmVyUHJvdG9jb2wNCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRy
dW5uZXIvZXhlY3V0b3JzL2V4ZWN1dG9ybWFyaW9uZXR0ZS5weSBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9leGVj
dXRvcnMvZXhlY3V0b3JtYXJpb25ldHRlLnB5CmluZGV4IDcwMDU0YjU3Mjk0ZjhhZTUwY2VkYTEw
Zjk1ZWZlYmJlYmVjMzQ1MzguLmIxNjVlOGNkOTNkNTM0MDYyZjMwM2FhM2UwNDVjYmI5ODUwZWQy
NWMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9leGVjdXRvcnMvZXhlY3V0b3JtYXJpb25ldHRl
LnB5CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvd3B0cnVubmVyL3dwdHJ1bm5lci9leGVjdXRvcnMvZXhlY3V0b3JtYXJpb25ldHRlLnB5CkBA
IC0xLDcgKzEsNyBAQAogaW1wb3J0IGpzb24KIGltcG9ydCBvcwotaW1wb3J0IHNvY2tldAogaW1w
b3J0IHRocmVhZGluZworaW1wb3J0IHRpbWUKIGltcG9ydCB0cmFjZWJhY2sKIGltcG9ydCB1cmxw
YXJzZQogaW1wb3J0IHV1aWQKQEAgLTE2LDExICsxNiwxMiBAQCBmcm9tIC5iYXNlIGltcG9ydCAo
Q2FsbGJhY2tIYW5kbGVyLAogICAgICAgICAgICAgICAgICAgIFJlZlRlc3RFeGVjdXRvciwKICAg
ICAgICAgICAgICAgICAgICBSZWZUZXN0SW1wbGVtZW50YXRpb24sCiAgICAgICAgICAgICAgICAg
ICAgVGVzdGhhcm5lc3NFeGVjdXRvciwKKyAgICAgICAgICAgICAgICAgICBUaW1lZFJ1bm5lciwK
ICAgICAgICAgICAgICAgICAgICBXZHNwZWNFeGVjdXRvciwKICAgICAgICAgICAgICAgICAgICBX
ZWJEcml2ZXJQcm90b2NvbCwKLSAgICAgICAgICAgICAgICAgICBleHRyYV90aW1lb3V0LAogICAg
ICAgICAgICAgICAgICAgIHN0cmlwX3NlcnZlcikKLWZyb20gLnByb3RvY29sIGltcG9ydCAoQXNz
ZXJ0c1Byb3RvY29sUGFydCwKK2Zyb20gLnByb3RvY29sIGltcG9ydCAoQWN0aW9uU2VxdWVuY2VQ
cm90b2NvbFBhcnQsCisgICAgICAgICAgICAgICAgICAgICAgIEFzc2VydHNQcm90b2NvbFBhcnQs
CiAgICAgICAgICAgICAgICAgICAgICAgIEJhc2VQcm90b2NvbFBhcnQsCiAgICAgICAgICAgICAg
ICAgICAgICAgIFRlc3RoYXJuZXNzUHJvdG9jb2xQYXJ0LAogICAgICAgICAgICAgICAgICAgICAg
ICBQcmVmc1Byb3RvY29sUGFydCwKQEAgLTU1LDggKzU2LDggQEAgY2xhc3MgTWFyaW9uZXR0ZUJh
c2VQcm90b2NvbFBhcnQoQmFzZVByb3RvY29sUGFydCk6CiAgICAgZGVmIHNldHVwKHNlbGYpOgog
ICAgICAgICBzZWxmLm1hcmlvbmV0dGUgPSBzZWxmLnBhcmVudC5tYXJpb25ldHRlCiAKLSAgICBk
ZWYgZXhlY3V0ZV9zY3JpcHQoc2VsZiwgc2NyaXB0LCBhc3luYz1GYWxzZSk6Ci0gICAgICAgIG1l
dGhvZCA9IHNlbGYubWFyaW9uZXR0ZS5leGVjdXRlX2FzeW5jX3NjcmlwdCBpZiBhc3luYyBlbHNl
IHNlbGYubWFyaW9uZXR0ZS5leGVjdXRlX3NjcmlwdAorICAgIGRlZiBleGVjdXRlX3NjcmlwdChz
ZWxmLCBzY3JpcHQsIGFzeW5jaHJvbm91cz1GYWxzZSk6CisgICAgICAgIG1ldGhvZCA9IHNlbGYu
bWFyaW9uZXR0ZS5leGVjdXRlX2FzeW5jX3NjcmlwdCBpZiBhc3luY2hyb25vdXMgZWxzZSBzZWxm
Lm1hcmlvbmV0dGUuZXhlY3V0ZV9zY3JpcHQKICAgICAgICAgcmV0dXJuIG1ldGhvZChzY3JpcHQs
IG5ld19zYW5kYm94PUZhbHNlLCBzYW5kYm94PU5vbmUpCiAKICAgICBkZWYgc2V0X3RpbWVvdXQo
c2VsZiwgdGltZW91dCk6CkBAIC04NSw3ICs4Niw3IEBAIGNsYXNzIE1hcmlvbmV0dGVCYXNlUHJv
dG9jb2xQYXJ0KEJhc2VQcm90b2NvbFBhcnQpOgogICAgICAgICBpZiBzb2NrZXRfdGltZW91dDoK
ICAgICAgICAgICAgIHRyeToKICAgICAgICAgICAgICAgICBzZWxmLm1hcmlvbmV0dGUudGltZW91
dC5zY3JpcHQgPSBzb2NrZXRfdGltZW91dCAvIDIKLSAgICAgICAgICAgIGV4Y2VwdCAoc29ja2V0
LmVycm9yLCBJT0Vycm9yKToKKyAgICAgICAgICAgIGV4Y2VwdCBJT0Vycm9yOgogICAgICAgICAg
ICAgICAgIHNlbGYubG9nZ2VyLmRlYnVnKCJTb2NrZXQgY2xvc2VkIikKICAgICAgICAgICAgICAg
ICByZXR1cm4KIApAQCAtOTgsNyArOTksMTEgQEAgY2xhc3MgTWFyaW9uZXR0ZUJhc2VQcm90b2Nv
bFBhcnQoQmFzZVByb3RvY29sUGFydCk6CiAgICAgICAgICAgICBleGNlcHQgZXJyb3JzLlNjcmlw
dFRpbWVvdXRFeGNlcHRpb246CiAgICAgICAgICAgICAgICAgc2VsZi5sb2dnZXIuZGVidWcoIlNj
cmlwdCB0aW1lZCBvdXQiKQogICAgICAgICAgICAgICAgIHBhc3MKLSAgICAgICAgICAgIGV4Y2Vw
dCAoc29ja2V0LnRpbWVvdXQsIElPRXJyb3IpOgorICAgICAgICAgICAgZXhjZXB0IGVycm9ycy5K
YXZhc2NyaXB0RXhjZXB0aW9uIGFzIGU6CisgICAgICAgICAgICAgICAgIyBUaGlzIGNhbiBoYXBw
ZW4gaWYgd2UgbmF2aWdhdGUsIGJ1dCBqdXN0IGtlZXAgZ29pbmcKKyAgICAgICAgICAgICAgICBz
ZWxmLmxvZ2dlci5kZWJ1ZyhlLm1lc3NhZ2UpCisgICAgICAgICAgICAgICAgcGFzcworICAgICAg
ICAgICAgZXhjZXB0IElPRXJyb3I6CiAgICAgICAgICAgICAgICAgc2VsZi5sb2dnZXIuZGVidWco
IlNvY2tldCBjbG9zZWQiKQogICAgICAgICAgICAgICAgIGJyZWFrCiAgICAgICAgICAgICBleGNl
cHQgRXhjZXB0aW9uIGFzIGU6CkBAIC0xMTAsMTcgKzExNSwxOSBAQCBjbGFzcyBNYXJpb25ldHRl
VGVzdGhhcm5lc3NQcm90b2NvbFBhcnQoVGVzdGhhcm5lc3NQcm90b2NvbFBhcnQpOgogICAgIGRl
ZiBfX2luaXRfXyhzZWxmLCBwYXJlbnQpOgogICAgICAgICBzdXBlcihNYXJpb25ldHRlVGVzdGhh
cm5lc3NQcm90b2NvbFBhcnQsIHNlbGYpLl9faW5pdF9fKHBhcmVudCkKICAgICAgICAgc2VsZi5y
dW5uZXJfaGFuZGxlID0gTm9uZQorICAgICAgICB3aXRoIG9wZW4ob3MucGF0aC5qb2luKGhlcmUs
ICJydW5uZXIuanMiKSkgYXMgZjoKKyAgICAgICAgICAgIHNlbGYucnVubmVyX3NjcmlwdCA9IGYu
cmVhZCgpCiAKICAgICBkZWYgc2V0dXAoc2VsZik6CiAgICAgICAgIHNlbGYubWFyaW9uZXR0ZSA9
IHNlbGYucGFyZW50Lm1hcmlvbmV0dGUKIAogICAgIGRlZiBsb2FkX3J1bm5lcihzZWxmLCB1cmxf
cHJvdG9jb2wpOgogICAgICAgICAjIENoZWNrIGlmIHdlIHByZXZpb3VzbHkgaGFkIGEgdGVzdCB3
aW5kb3cgb3BlbiwgYW5kIGlmIHdlIGRpZCBtYWtlIHN1cmUgaXQncyBjbG9zZWQKLSAgICAgICAg
c2VsZi5wYXJlbnQuYmFzZS5leGVjdXRlX3NjcmlwdCgiaWYgKHdpbmRvdy53aW4pIHt3aW5kb3cu
d2luLmNsb3NlKCl9IikKKyAgICAgICAgaWYgc2VsZi5ydW5uZXJfaGFuZGxlOgorICAgICAgICAg
ICAgc2VsZi5fY2xvc2Vfd2luZG93cygpCiAgICAgICAgIHVybCA9IHVybHBhcnNlLnVybGpvaW4o
c2VsZi5wYXJlbnQuZXhlY3V0b3Iuc2VydmVyX3VybCh1cmxfcHJvdG9jb2wpLAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICIvdGVzdGhhcm5lc3NfcnVubmVyLmh0bWwiKQogICAgICAg
ICBzZWxmLmxvZ2dlci5kZWJ1ZygiTG9hZGluZyAlcyIgJSB1cmwpCi0gICAgICAgIHNlbGYucnVu
bmVyX2hhbmRsZSA9IHNlbGYubWFyaW9uZXR0ZS5jdXJyZW50X3dpbmRvd19oYW5kbGUKICAgICAg
ICAgdHJ5OgogICAgICAgICAgICAgc2VsZi5kaXNtaXNzX2FsZXJ0KGxhbWJkYTogc2VsZi5tYXJp
b25ldHRlLm5hdmlnYXRlKHVybCkpCiAgICAgICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZToKQEAg
LTEyOCwxMiArMTM1LDEzIEBAIGNsYXNzIE1hcmlvbmV0dGVUZXN0aGFybmVzc1Byb3RvY29sUGFy
dChUZXN0aGFybmVzc1Byb3RvY29sUGFydCk6CiAgICAgICAgICAgICAgICAgIkxvYWRpbmcgaW5p
dGlhbCBwYWdlICVzIGZhaWxlZC4gRW5zdXJlIHRoYXQgdGhlICIKICAgICAgICAgICAgICAgICAi
dGhlcmUgYXJlIG5vIG90aGVyIHByb2dyYW1zIGJvdW5kIHRvIHRoaXMgcG9ydCBhbmQgIgogICAg
ICAgICAgICAgICAgICJ0aGF0IHlvdXIgZmlyZXdhbGwgcnVsZXMgb3IgbmV0d29yayBzZXR1cCBk
b2VzIG5vdCAiCi0gICAgICAgICAgICAgICAgInByZXZlbnQgYWNjZXNzLlxlJXMiICUgKHVybCwg
dHJhY2ViYWNrLmZvcm1hdF9leGMoZSkpKQorICAgICAgICAgICAgICAgIHIicHJldmVudCBhY2Nl
c3MuXGUlcyIgJSAodXJsLCB0cmFjZWJhY2suZm9ybWF0X2V4YyhlKSkpCiAgICAgICAgICAgICBy
YWlzZQotICAgICAgICBzZWxmLnBhcmVudC5iYXNlLmV4ZWN1dGVfc2NyaXB0KAotICAgICAgICAg
ICAgImRvY3VtZW50LnRpdGxlID0gJyVzJyIgJSB0aHJlYWRpbmcuY3VycmVudF90aHJlYWQoKS5u
YW1lLnJlcGxhY2UoIiciLCAnIicpKQorICAgICAgICBzZWxmLnJ1bm5lcl9oYW5kbGUgPSBzZWxm
Lm1hcmlvbmV0dGUuY3VycmVudF93aW5kb3dfaGFuZGxlCisgICAgICAgIGZvcm1hdF9tYXAgPSB7
InRpdGxlIjogdGhyZWFkaW5nLmN1cnJlbnRfdGhyZWFkKCkubmFtZS5yZXBsYWNlKCInIiwgJyIn
KX0KKyAgICAgICAgc2VsZi5wYXJlbnQuYmFzZS5leGVjdXRlX3NjcmlwdChzZWxmLnJ1bm5lcl9z
Y3JpcHQgJSBmb3JtYXRfbWFwKQogCi0gICAgZGVmIGNsb3NlX29sZF93aW5kb3dzKHNlbGYsIHVy
bF9wcm90b2NvbCk6CisgICAgZGVmIF9jbG9zZV93aW5kb3dzKHNlbGYpOgogICAgICAgICBoYW5k
bGVzID0gc2VsZi5tYXJpb25ldHRlLndpbmRvd19oYW5kbGVzCiAgICAgICAgIHJ1bm5lcl9oYW5k
bGUgPSBOb25lCiAgICAgICAgIHRyeToKQEAgLTE0NiwxOCArMTU0LDIyIEBAIGNsYXNzIE1hcmlv
bmV0dGVUZXN0aGFybmVzc1Byb3RvY29sUGFydChUZXN0aGFybmVzc1Byb3RvY29sUGFydCk6CiAg
ICAgICAgICAgICAjIGJ1dCBpdCBob3BlZnVsbHkgZG9lc24ndCBtYXR0ZXIgdG9vIG11Y2ggaWYg
dGhhdCBhc3N1bXB0aW9uIGlzCiAgICAgICAgICAgICAjIHdyb25nIHNpbmNlIHdlIHJlbG9hZCB0
aGUgcnVubmVyIGluIHRoYXQgdGFiIGFueXdheS4KICAgICAgICAgICAgIHJ1bm5lcl9oYW5kbGUg
PSBoYW5kbGVzLnBvcCgwKQorICAgICAgICAgICAgc2VsZi5sb2dnZXIuaW5mbygiQ2hhbmdpbmcg
aGFybmVzc193aW5kb3cgdG8gJXMiICUgcnVubmVyX2hhbmRsZSkKIAogICAgICAgICBmb3IgaGFu
ZGxlIGluIGhhbmRsZXM6CiAgICAgICAgICAgICB0cnk6Ci0gICAgICAgICAgICAgICAgc2VsZi5k
aXNtaXNzX2FsZXJ0KGxhbWJkYTogc2VsZi5tYXJpb25ldHRlLnN3aXRjaF90b193aW5kb3coaGFu
ZGxlKSkKKyAgICAgICAgICAgICAgICBzZWxmLmxvZ2dlci5pbmZvKCJDbG9zaW5nIHdpbmRvdyAl
cyIgJSBoYW5kbGUpCiAgICAgICAgICAgICAgICAgc2VsZi5tYXJpb25ldHRlLnN3aXRjaF90b193
aW5kb3coaGFuZGxlKQotICAgICAgICAgICAgICAgIHNlbGYubWFyaW9uZXR0ZS5jbG9zZSgpCisg
ICAgICAgICAgICAgICAgc2VsZi5kaXNtaXNzX2FsZXJ0KGxhbWJkYTogc2VsZi5tYXJpb25ldHRl
LmNsb3NlKCkpCiAgICAgICAgICAgICBleGNlcHQgZXJyb3JzLk5vU3VjaFdpbmRvd0V4Y2VwdGlv
bjoKICAgICAgICAgICAgICAgICAjIFdlIG1pZ2h0IGhhdmUgcmFjZWQgd2l0aCB0aGUgcHJldmlv
dXMgdGVzdCB0byBjbG9zZSB0aGlzCiAgICAgICAgICAgICAgICAgIyB3aW5kb3csIHNraXAgaXQu
CiAgICAgICAgICAgICAgICAgcGFzcwotCiAgICAgICAgIHNlbGYubWFyaW9uZXR0ZS5zd2l0Y2hf
dG9fd2luZG93KHJ1bm5lcl9oYW5kbGUpCisgICAgICAgIHJldHVybiBydW5uZXJfaGFuZGxlCisK
KyAgICBkZWYgY2xvc2Vfb2xkX3dpbmRvd3Moc2VsZiwgdXJsX3Byb3RvY29sKToKKyAgICAgICAg
cnVubmVyX2hhbmRsZSA9IHNlbGYuX2Nsb3NlX3dpbmRvd3MoKQogICAgICAgICBpZiBydW5uZXJf
aGFuZGxlICE9IHNlbGYucnVubmVyX2hhbmRsZToKICAgICAgICAgICAgIHNlbGYubG9hZF9ydW5u
ZXIodXJsX3Byb3RvY29sKQogICAgICAgICByZXR1cm4gc2VsZi5ydW5uZXJfaGFuZGxlCkBAIC0x
NzUsMjkgKzE4Nyw0MyBAQCBjbGFzcyBNYXJpb25ldHRlVGVzdGhhcm5lc3NQcm90b2NvbFBhcnQo
VGVzdGhhcm5lc3NQcm90b2NvbFBhcnQpOgogICAgICAgICAgICAgZWxzZToKICAgICAgICAgICAg
ICAgICBicmVhawogCi0gICAgZGVmIGdldF90ZXN0X3dpbmRvdyhzZWxmLCB3aW5kb3dfaWQsIHBh
cmVudCk6CisgICAgZGVmIGdldF90ZXN0X3dpbmRvdyhzZWxmLCB3aW5kb3dfaWQsIHBhcmVudCwg
dGltZW91dD01KToKKyAgICAgICAgIiIiRmluZCB0aGUgdGVzdCB3aW5kb3cgYW1vbmdzdCBhbGwg
dGhlIG9wZW4gd2luZG93cy4KKyAgICAgICAgVGhpcyBpcyBhc3N1bWVkIHRvIGJlIGVpdGhlciB0
aGUgbmFtZWQgd2luZG93IG9yIHRoZSBvbmUgYWZ0ZXIgdGhlIHBhcmVudCBpbiB0aGUgbGlzdCBv
ZgorICAgICAgICB3aW5kb3cgaGFuZGxlcworCisgICAgICAgIDpwYXJhbSB3aW5kb3dfaWQ6IFRo
ZSBET00gbmFtZSBvZiB0aGUgV2luZG93CisgICAgICAgIDpwYXJhbSBwYXJlbnQ6IFRoZSBoYW5k
bGUgb2YgdGhlIHJ1bm5lciB3aW5kb3cKKyAgICAgICAgOnBhcmFtIHRpbWVvdXQ6IFRoZSB0aW1l
IGluIHNlY29uZHMgdG8gd2FpdCBmb3IgdGhlIHdpbmRvdyB0byBhcHBlYXIuIFRoaXMgaXMgYmVj
YXVzZSBpbgorICAgICAgICAgICAgICAgICAgICAgICAgc29tZSBpbXBsZW1lbnRhdGlvbnMgdGhl
cmUncyBhIHJhY2UgYmV0d2VlbiBjYWxsaW5nIHdpbmRvdy5vcGVuIGFuZCB0aGUKKyAgICAgICAg
ICAgICAgICAgICAgICAgIHdpbmRvdyBiZWluZyBhZGRlZCB0byB0aGUgbGlzdCBvZiBXZWJEcml2
ZXIgYWNjZXNzaWJsZSB3aW5kb3dzLiIiIgogICAgICAgICB0ZXN0X3dpbmRvdyA9IE5vbmUKLSAg
ICAgICAgaWYgd2luZG93X2lkOgotICAgICAgICAgICAgdHJ5OgotICAgICAgICAgICAgICAgICMg
VHJ5IHRoaXMsIGl0J3MgaW4gTGV2ZWwgMSBidXQgbm90aGluZyBzdXBwb3J0cyBpdCB5ZXQKLSAg
ICAgICAgICAgICAgICB3aW5fcyA9IHNlbGYucGFyZW50LmJhc2UuZXhlY3V0ZV9zY3JpcHQoInJl
dHVybiB3aW5kb3dbJyVzJ107IiAlIHNlbGYud2luZG93X2lkKQotICAgICAgICAgICAgICAgIHdp
bl9vYmogPSBqc29uLmxvYWRzKHdpbl9zKQotICAgICAgICAgICAgICAgIHRlc3Rfd2luZG93ID0g
d2luX29ialsid2luZG93LWZjYzYtMTFlNS1iNGY4LTMzMGE4OGFiOWQ3ZiJdCi0gICAgICAgICAg
ICBleGNlcHQgRXhjZXB0aW9uOgotICAgICAgICAgICAgICAgIHBhc3MKKyAgICAgICAgZW5kX3Rp
bWUgPSB0aW1lLnRpbWUoKSArIHRpbWVvdXQKKyAgICAgICAgd2hpbGUgdGltZS50aW1lKCkgPCBl
bmRfdGltZToKKyAgICAgICAgICAgIGlmIHdpbmRvd19pZDoKKyAgICAgICAgICAgICAgICB0cnk6
CisgICAgICAgICAgICAgICAgICAgICMgVHJ5IHRoaXMsIGl0J3MgaW4gTGV2ZWwgMSBidXQgbm90
aGluZyBzdXBwb3J0cyBpdCB5ZXQKKyAgICAgICAgICAgICAgICAgICAgd2luX3MgPSBzZWxmLnBh
cmVudC5iYXNlLmV4ZWN1dGVfc2NyaXB0KCJyZXR1cm4gd2luZG93WyclcyddOyIgJSBzZWxmLndp
bmRvd19pZCkKKyAgICAgICAgICAgICAgICAgICAgd2luX29iaiA9IGpzb24ubG9hZHMod2luX3Mp
CisgICAgICAgICAgICAgICAgICAgIHRlc3Rfd2luZG93ID0gd2luX29ialsid2luZG93LWZjYzYt
MTFlNS1iNGY4LTMzMGE4OGFiOWQ3ZiJdCisgICAgICAgICAgICAgICAgZXhjZXB0IEV4Y2VwdGlv
bjoKKyAgICAgICAgICAgICAgICAgICAgcGFzcwogCi0gICAgICAgIGlmIHRlc3Rfd2luZG93IGlz
IE5vbmU6Ci0gICAgICAgICAgICBhZnRlciA9IHNlbGYubWFyaW9uZXR0ZS53aW5kb3dfaGFuZGxl
cwotICAgICAgICAgICAgaWYgbGVuKGFmdGVyKSA9PSAyOgotICAgICAgICAgICAgICAgIHRlc3Rf
d2luZG93ID0gbmV4dChpdGVyKHNldChhZnRlcikgLSBzZXQoW3BhcmVudF0pKSkKLSAgICAgICAg
ICAgIGVsaWYgYWZ0ZXJbMF0gPT0gcGFyZW50IGFuZCBsZW4oYWZ0ZXIpID4gMjoKLSAgICAgICAg
ICAgICAgICAjIEhvcGUgdGhlIGZpcnN0IG9uZSBoZXJlIGlzIHRoZSB0ZXN0IHdpbmRvdwotICAg
ICAgICAgICAgICAgIHRlc3Rfd2luZG93ID0gYWZ0ZXJbMV0KLSAgICAgICAgICAgIGVsc2U6Ci0g
ICAgICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCJ1bmFibGUgdG8gZmluZCB0ZXN0IHdpbmRv
dyIpCisgICAgICAgICAgICBpZiB0ZXN0X3dpbmRvdyBpcyBOb25lOgorICAgICAgICAgICAgICAg
IGhhbmRsZXMgPSBzZWxmLm1hcmlvbmV0dGUud2luZG93X2hhbmRsZXMKKyAgICAgICAgICAgICAg
ICBpZiBsZW4oaGFuZGxlcykgPT0gMjoKKyAgICAgICAgICAgICAgICAgICAgdGVzdF93aW5kb3cg
PSBuZXh0KGl0ZXIoc2V0KGhhbmRsZXMpIC0ge3BhcmVudH0pKQorICAgICAgICAgICAgICAgIGVs
aWYgbGVuKGhhbmRsZXMpID4gMiBhbmQgaGFuZGxlc1swXSA9PSBwYXJlbnQ6CisgICAgICAgICAg
ICAgICAgICAgICMgSG9wZSB0aGUgZmlyc3Qgb25lIGhlcmUgaXMgdGhlIHRlc3Qgd2luZG93Cisg
ICAgICAgICAgICAgICAgICAgIHRlc3Rfd2luZG93ID0gaGFuZGxlc1sxXQogCi0gICAgICAgIGFz
c2VydCB0ZXN0X3dpbmRvdyAhPSBwYXJlbnQKLSAgICAgICAgcmV0dXJuIHRlc3Rfd2luZG93Cisg
ICAgICAgICAgICBpZiB0ZXN0X3dpbmRvdyBpcyBub3QgTm9uZToKKyAgICAgICAgICAgICAgICBh
c3NlcnQgdGVzdF93aW5kb3cgIT0gcGFyZW50CisgICAgICAgICAgICAgICAgcmV0dXJuIHRlc3Rf
d2luZG93CisKKyAgICAgICAgICAgIHRpbWUuc2xlZXAoMC4xKQorCisgICAgICAgIHJhaXNlIEV4
Y2VwdGlvbigidW5hYmxlIHRvIGZpbmQgdGVzdCB3aW5kb3ciKQogCiAKIGNsYXNzIE1hcmlvbmV0
dGVQcmVmc1Byb3RvY29sUGFydChQcmVmc1Byb3RvY29sUGFydCk6CkBAIC0yMzEsNiArMjU3LDI1
IEBAIGNsYXNzIE1hcmlvbmV0dGVQcmVmc1Byb3RvY29sUGFydChQcmVmc1Byb3RvY29sUGFydCk6
CiAgICAgICAgICAgICAgICAgY2FzZSBwcmVmSW50ZXJmYWNlLlBSRUZfSU5UOgogICAgICAgICAg
ICAgICAgICAgICBwcmVmSW50ZXJmYWNlLnNldEludFByZWYocHJlZiwgdmFsdWUpOwogICAgICAg
ICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICBjYXNlIHByZWZJbnRlcmZhY2Uu
UFJFRl9JTlZBTElEOgorICAgICAgICAgICAgICAgICAgICAvLyBQcmVmIGRvZXNuJ3Qgc2VlbSB0
byBiZSBkZWZpbmVkIGFscmVhZHk7IGd1ZXNzIGF0IHRoZQorICAgICAgICAgICAgICAgICAgICAv
LyByaWdodCB3YXkgdG8gc2V0IGl0IGJhc2VkIG9uIHRoZSB0eXBlIG9mIHZhbHVlIHdlIGhhdmUu
CisgICAgICAgICAgICAgICAgICAgIHN3aXRjaCAodHlwZW9mIHZhbHVlKSB7CisgICAgICAgICAg
ICAgICAgICAgICAgICBjYXNlICJib29sZWFuIjoKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBwcmVmSW50ZXJmYWNlLnNldEJvb2xQcmVmKHByZWYsIHZhbHVlKTsKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgInN0cmlu
ZyI6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJlZkludGVyZmFjZS5zZXRDaGFyUHJl
ZihwcmVmLCB2YWx1ZSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAg
ICAgICAgICAgICAgICAgICAgICBjYXNlICJudW1iZXIiOgorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHByZWZJbnRlcmZhY2Uuc2V0SW50UHJlZihwcmVmLCB2YWx1ZSk7CisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgICAgICBkZWZhdWx0
OgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigiVW5rbm93biBw
cmVmIHZhbHVlIHR5cGU6ICIgKyAodHlwZW9mIHZhbHVlKSk7CisgICAgICAgICAgICAgICAgICAg
IH0KKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgZGVmYXVsdDoK
KyAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJVbmtub3duIHByZWYgdHlwZSAi
ICsgdHlwZSk7CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICAiIiIgJSAobmFtZSwgdmFsdWUp
CiAgICAgICAgIHdpdGggc2VsZi5tYXJpb25ldHRlLnVzaW5nX2NvbnRleHQoc2VsZi5tYXJpb25l
dHRlLkNPTlRFWFRfQ0hST01FKToKQEAgLTI4MSwxMCArMzI2LDEwIEBAIGNsYXNzIE1hcmlvbmV0
dGVTdG9yYWdlUHJvdG9jb2xQYXJ0KFN0b3JhZ2VQcm90b2NvbFBhcnQpOgogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAubmV3VVJJKHVybCk7CiAgICAgICAgICAgICBsZXQgc3NtID0g
Q29tcG9uZW50cy5jbGFzc2VzWyJAbW96aWxsYS5vcmcvc2NyaXB0c2VjdXJpdHltYW5hZ2VyOzEi
XQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuZ2V0U2VydmljZShDaS5uc0lTY3Jp
cHRTZWN1cml0eU1hbmFnZXIpOwotICAgICAgICAgICAgbGV0IHByaW5jaXBhbCA9IHNzbS5jcmVh
dGVDb2RlYmFzZVByaW5jaXBhbCh1cmksIHt9KTsKKyAgICAgICAgICAgIGxldCBwcmluY2lwYWwg
PSBzc20uY3JlYXRlQ29udGVudFByaW5jaXBhbCh1cmksIHt9KTsKICAgICAgICAgICAgIGxldCBx
bXMgPSBDb21wb25lbnRzLmNsYXNzZXNbIkBtb3ppbGxhLm9yZy9kb20vcXVvdGEtbWFuYWdlci1z
ZXJ2aWNlOzEiXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuZ2V0U2VydmljZShD
b21wb25lbnRzLmludGVyZmFjZXMubnNJUXVvdGFNYW5hZ2VyU2VydmljZSk7Ci0gICAgICAgICAg
ICBxbXMuY2xlYXJTdG9yYWdlc0ZvclByaW5jaXBhbChwcmluY2lwYWwsICJkZWZhdWx0IiwgdHJ1
ZSk7CisgICAgICAgICAgICBxbXMuY2xlYXJTdG9yYWdlc0ZvclByaW5jaXBhbChwcmluY2lwYWws
ICJkZWZhdWx0IiwgbnVsbCwgdHJ1ZSk7CiAgICAgICAgICAgICAiIiIgJSB1cmwKICAgICAgICAg
d2l0aCBzZWxmLm1hcmlvbmV0dGUudXNpbmdfY29udGV4dChzZWxmLm1hcmlvbmV0dGUuQ09OVEVY
VF9DSFJPTUUpOgogICAgICAgICAgICAgc2VsZi5tYXJpb25ldHRlLmV4ZWN1dGVfc2NyaXB0KHNj
cmlwdCkKQEAgLTMxNiw3ICszNjEsNyBAQCBjbGFzcyBNYXJpb25ldHRlQXNzZXJ0c1Byb3RvY29s
UGFydChBc3NlcnRzUHJvdG9jb2xQYXJ0KToKICAgICAgICAgICAgIGV4Y2VwdCBlcnJvcnMuTm9T
dWNoV2luZG93RXhjZXB0aW9uOgogICAgICAgICAgICAgICAgICMgSWYgdGhlIHdpbmRvdyB3YXMg
YWxyZWFkeSBjbG9zZWQKICAgICAgICAgICAgICAgICBzZWxmLnBhcmVudC5sb2dnZXIud2Fybmlu
ZygiRmFpbGVkIHRvIGdldCBhc3NlcnRpb24gY291bnQ7IHdpbmRvdyB3YXMgY2xvc2VkIikKLSAg
ICAgICAgICAgIGV4Y2VwdCAoZXJyb3JzLk1hcmlvbmV0dGVFeGNlcHRpb24sIHNvY2tldC5lcnJv
cik6CisgICAgICAgICAgICBleGNlcHQgKGVycm9ycy5NYXJpb25ldHRlRXhjZXB0aW9uLCBJT0Vy
cm9yKToKICAgICAgICAgICAgICAgICAjIFRoaXMgdXN1YWxseSBoYXBwZW5zIGlmIHRoZSBwcm9j
ZXNzIGNyYXNoZWQKICAgICAgICAgICAgICAgICBwYXNzCiAKQEAgLTM0MSw2ICszODYsOSBAQCBj
bGFzcyBNYXJpb25ldHRlU2VsZWN0b3JQcm90b2NvbFBhcnQoU2VsZWN0b3JQcm90b2NvbFBhcnQp
OgogICAgIGRlZiBlbGVtZW50c19ieV9zZWxlY3RvcihzZWxmLCBzZWxlY3Rvcik6CiAgICAgICAg
IHJldHVybiBzZWxmLm1hcmlvbmV0dGUuZmluZF9lbGVtZW50cygiY3NzIHNlbGVjdG9yIiwgc2Vs
ZWN0b3IpCiAKKyAgICBkZWYgZWxlbWVudHNfYnlfc2VsZWN0b3JfYW5kX2ZyYW1lKHNlbGYsIGVs
ZW1lbnRfc2VsZWN0b3IsIGZyYW1lKToKKyAgICAgICAgcmV0dXJuIHNlbGYubWFyaW9uZXR0ZS5m
aW5kX2VsZW1lbnRzKCJjc3Mgc2VsZWN0b3IiLCBlbGVtZW50X3NlbGVjdG9yKQorCiAKIGNsYXNz
IE1hcmlvbmV0dGVDbGlja1Byb3RvY29sUGFydChDbGlja1Byb3RvY29sUGFydCk6CiAgICAgZGVm
IHNldHVwKHNlbGYpOgpAQCAtMzU4LDYgKzQwNiwxNiBAQCBjbGFzcyBNYXJpb25ldHRlU2VuZEtl
eXNQcm90b2NvbFBhcnQoU2VuZEtleXNQcm90b2NvbFBhcnQpOgogICAgICAgICByZXR1cm4gZWxl
bWVudC5zZW5kX2tleXMoa2V5cykKIAogCitjbGFzcyBNYXJpb25ldHRlQWN0aW9uU2VxdWVuY2VQ
cm90b2NvbFBhcnQoQWN0aW9uU2VxdWVuY2VQcm90b2NvbFBhcnQpOgorICAgIGRlZiBzZXR1cChz
ZWxmKToKKyAgICAgICAgc2VsZi5tYXJpb25ldHRlID0gc2VsZi5wYXJlbnQubWFyaW9uZXR0ZQor
CisgICAgZGVmIHNlbmRfYWN0aW9ucyhzZWxmLCBhY3Rpb25zKToKKyAgICAgICAgYWN0aW9ucyA9
IHNlbGYubWFyaW9uZXR0ZS5fdG9fanNvbihhY3Rpb25zKQorICAgICAgICBzZWxmLmxvZ2dlci5p
bmZvKGFjdGlvbnMpCisgICAgICAgIHNlbGYubWFyaW9uZXR0ZS5fc2VuZF9tZXNzYWdlKCJXZWJE
cml2ZXI6UGVyZm9ybUFjdGlvbnMiLCBhY3Rpb25zKQorCisKIGNsYXNzIE1hcmlvbmV0dGVUZXN0
RHJpdmVyUHJvdG9jb2xQYXJ0KFRlc3REcml2ZXJQcm90b2NvbFBhcnQpOgogICAgIGRlZiBzZXR1
cChzZWxmKToKICAgICAgICAgc2VsZi5tYXJpb25ldHRlID0gc2VsZi5wYXJlbnQubWFyaW9uZXR0
ZQpAQCAtMzgxLDcgKzQzOSw3IEBAIGNsYXNzIE1hcmlvbmV0dGVDb3ZlcmFnZVByb3RvY29sUGFy
dChDb3ZlcmFnZVByb3RvY29sUGFydCk6CiAgICAgICAgICAgICByZXR1cm4KIAogICAgICAgICBz
Y3JpcHQgPSAiIiIKLSAgICAgICAgICAgIENocm9tZVV0aWxzLmltcG9ydCgiY2hyb21lOi8vbWFy
aW9uZXR0ZS9jb250ZW50L1BlclRlc3RDb3ZlcmFnZVV0aWxzLmpzbSIpOworICAgICAgICAgICAg
Y29uc3Qge1BlclRlc3RDb3ZlcmFnZVV0aWxzfSA9IENocm9tZVV0aWxzLmltcG9ydCgiY2hyb21l
Oi8vbWFyaW9uZXR0ZS9jb250ZW50L1BlclRlc3RDb3ZlcmFnZVV0aWxzLmpzbSIpOwogICAgICAg
ICAgICAgcmV0dXJuIFBlclRlc3RDb3ZlcmFnZVV0aWxzLmVuYWJsZWQ7CiAgICAgICAgICAgICAi
IiIKICAgICAgICAgd2l0aCBzZWxmLm1hcmlvbmV0dGUudXNpbmdfY29udGV4dChzZWxmLm1hcmlv
bmV0dGUuQ09OVEVYVF9DSFJPTUUpOgpAQCAtMzkxLDcgKzQ0OSw3IEBAIGNsYXNzIE1hcmlvbmV0
dGVDb3ZlcmFnZVByb3RvY29sUGFydChDb3ZlcmFnZVByb3RvY29sUGFydCk6CiAgICAgICAgIHNj
cmlwdCA9ICIiIgogICAgICAgICAgICAgdmFyIGNhbGxiYWNrID0gYXJndW1lbnRzW2FyZ3VtZW50
cy5sZW5ndGggLSAxXTsKIAotICAgICAgICAgICAgQ2hyb21lVXRpbHMuaW1wb3J0KCJjaHJvbWU6
Ly9tYXJpb25ldHRlL2NvbnRlbnQvUGVyVGVzdENvdmVyYWdlVXRpbHMuanNtIik7CisgICAgICAg
ICAgICBjb25zdCB7UGVyVGVzdENvdmVyYWdlVXRpbHN9ID0gQ2hyb21lVXRpbHMuaW1wb3J0KCJj
aHJvbWU6Ly9tYXJpb25ldHRlL2NvbnRlbnQvUGVyVGVzdENvdmVyYWdlVXRpbHMuanNtIik7CiAg
ICAgICAgICAgICBQZXJUZXN0Q292ZXJhZ2VVdGlscy5iZWZvcmVUZXN0KCkudGhlbihjYWxsYmFj
aywgY2FsbGJhY2spOwogICAgICAgICAgICAgIiIiCiAgICAgICAgIHdpdGggc2VsZi5tYXJpb25l
dHRlLnVzaW5nX2NvbnRleHQoc2VsZi5tYXJpb25ldHRlLkNPTlRFWFRfQ0hST01FKToKQEAgLTM5
OSw3ICs0NTcsNyBAQCBjbGFzcyBNYXJpb25ldHRlQ292ZXJhZ2VQcm90b2NvbFBhcnQoQ292ZXJh
Z2VQcm90b2NvbFBhcnQpOgogICAgICAgICAgICAgICAgIGVycm9yID0gc2VsZi5tYXJpb25ldHRl
LmV4ZWN1dGVfYXN5bmNfc2NyaXB0KHNjcmlwdCkKICAgICAgICAgICAgICAgICBpZiBlcnJvciBp
cyBub3QgTm9uZToKICAgICAgICAgICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCdGYWlsdXJl
IHdoaWxlIHJlc2V0dGluZyBjb3VudGVyczogJXMnICUganNvbi5kdW1wcyhlcnJvcikpCi0gICAg
ICAgICAgICBleGNlcHQgKGVycm9ycy5NYXJpb25ldHRlRXhjZXB0aW9uLCBzb2NrZXQuZXJyb3Ip
OgorICAgICAgICAgICAgZXhjZXB0IChlcnJvcnMuTWFyaW9uZXR0ZUV4Y2VwdGlvbiwgSU9FcnJv
cik6CiAgICAgICAgICAgICAgICAgIyBUaGlzIHVzdWFsbHkgaGFwcGVucyBpZiB0aGUgcHJvY2Vz
cyBjcmFzaGVkCiAgICAgICAgICAgICAgICAgcGFzcwogCkBAIC00MTEsNyArNDY5LDcgQEAgY2xh
c3MgTWFyaW9uZXR0ZUNvdmVyYWdlUHJvdG9jb2xQYXJ0KENvdmVyYWdlUHJvdG9jb2xQYXJ0KToK
ICAgICAgICAgc2NyaXB0ID0gIiIiCiAgICAgICAgICAgICB2YXIgY2FsbGJhY2sgPSBhcmd1bWVu
dHNbYXJndW1lbnRzLmxlbmd0aCAtIDFdOwogCi0gICAgICAgICAgICBDaHJvbWVVdGlscy5pbXBv
cnQoImNocm9tZTovL21hcmlvbmV0dGUvY29udGVudC9QZXJUZXN0Q292ZXJhZ2VVdGlscy5qc20i
KTsKKyAgICAgICAgICAgIGNvbnN0IHtQZXJUZXN0Q292ZXJhZ2VVdGlsc30gPSBDaHJvbWVVdGls
cy5pbXBvcnQoImNocm9tZTovL21hcmlvbmV0dGUvY29udGVudC9QZXJUZXN0Q292ZXJhZ2VVdGls
cy5qc20iKTsKICAgICAgICAgICAgIFBlclRlc3RDb3ZlcmFnZVV0aWxzLmFmdGVyVGVzdCgpLnRo
ZW4oY2FsbGJhY2ssIGNhbGxiYWNrKTsKICAgICAgICAgICAgICIiIgogICAgICAgICB3aXRoIHNl
bGYubWFyaW9uZXR0ZS51c2luZ19jb250ZXh0KHNlbGYubWFyaW9uZXR0ZS5DT05URVhUX0NIUk9N
RSk6CkBAIC00MTksNyArNDc3LDcgQEAgY2xhc3MgTWFyaW9uZXR0ZUNvdmVyYWdlUHJvdG9jb2xQ
YXJ0KENvdmVyYWdlUHJvdG9jb2xQYXJ0KToKICAgICAgICAgICAgICAgICBlcnJvciA9IHNlbGYu
bWFyaW9uZXR0ZS5leGVjdXRlX2FzeW5jX3NjcmlwdChzY3JpcHQpCiAgICAgICAgICAgICAgICAg
aWYgZXJyb3IgaXMgbm90IE5vbmU6CiAgICAgICAgICAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlv
bignRmFpbHVyZSB3aGlsZSBkdW1waW5nIGNvdW50ZXJzOiAlcycgJSBqc29uLmR1bXBzKGVycm9y
KSkKLSAgICAgICAgICAgIGV4Y2VwdCAoZXJyb3JzLk1hcmlvbmV0dGVFeGNlcHRpb24sIHNvY2tl
dC5lcnJvcik6CisgICAgICAgICAgICBleGNlcHQgKGVycm9ycy5NYXJpb25ldHRlRXhjZXB0aW9u
LCBJT0Vycm9yKToKICAgICAgICAgICAgICAgICAjIFRoaXMgdXN1YWxseSBoYXBwZW5zIGlmIHRo
ZSBwcm9jZXNzIGNyYXNoZWQKICAgICAgICAgICAgICAgICBwYXNzCiAKQEAgLTQzMiw2ICs0OTAs
NyBAQCBjbGFzcyBNYXJpb25ldHRlUHJvdG9jb2woUHJvdG9jb2wpOgogICAgICAgICAgICAgICAg
ICAgTWFyaW9uZXR0ZVNlbGVjdG9yUHJvdG9jb2xQYXJ0LAogICAgICAgICAgICAgICAgICAgTWFy
aW9uZXR0ZUNsaWNrUHJvdG9jb2xQYXJ0LAogICAgICAgICAgICAgICAgICAgTWFyaW9uZXR0ZVNl
bmRLZXlzUHJvdG9jb2xQYXJ0LAorICAgICAgICAgICAgICAgICAgTWFyaW9uZXR0ZUFjdGlvblNl
cXVlbmNlUHJvdG9jb2xQYXJ0LAogICAgICAgICAgICAgICAgICAgTWFyaW9uZXR0ZVRlc3REcml2
ZXJQcm90b2NvbFBhcnQsCiAgICAgICAgICAgICAgICAgICBNYXJpb25ldHRlQXNzZXJ0c1Byb3Rv
Y29sUGFydCwKICAgICAgICAgICAgICAgICAgIE1hcmlvbmV0dGVDb3ZlcmFnZVByb3RvY29sUGFy
dF0KQEAgLTQ3MSwxNSArNTMwLDE2IEBAIGNsYXNzIE1hcmlvbmV0dGVQcm90b2NvbChQcm90b2Nv
bCk6CiAgICAgICAgIHNlbGYubG9nZ2VyLmRlYnVnKCJNYXJpb25ldHRlIHNlc3Npb24gc3RhcnRl
ZCIpCiAKICAgICBkZWYgYWZ0ZXJfY29ubmVjdChzZWxmKToKLSAgICAgICAgc2VsZi50ZXN0aGFy
bmVzcy5sb2FkX3J1bm5lcihzZWxmLmV4ZWN1dG9yLmxhc3RfZW52aXJvbm1lbnRbInByb3RvY29s
Il0pCisgICAgICAgIHBhc3MKIAogICAgIGRlZiB0ZWFyZG93bihzZWxmKToKLSAgICAgICAgdHJ5
OgotICAgICAgICAgICAgc2VsZi5tYXJpb25ldHRlLl9yZXF1ZXN0X2luX2FwcF9zaHV0ZG93bigp
Ci0gICAgICAgICAgICBzZWxmLm1hcmlvbmV0dGUuZGVsZXRlX3Nlc3Npb24oc2VuZF9yZXF1ZXN0
PUZhbHNlKQotICAgICAgICBleGNlcHQgRXhjZXB0aW9uOgotICAgICAgICAgICAgIyBUaGlzIGlz
IHR5cGljYWxseSBiZWNhdXNlIHRoZSBzZXNzaW9uIG5ldmVyIHN0YXJ0ZWQKLSAgICAgICAgICAg
IHBhc3MKKyAgICAgICAgaWYgc2VsZi5tYXJpb25ldHRlIGFuZCBzZWxmLm1hcmlvbmV0dGUuc2Vz
c2lvbl9pZDoKKyAgICAgICAgICAgIHRyeToKKyAgICAgICAgICAgICAgICBzZWxmLm1hcmlvbmV0
dGUuX3JlcXVlc3RfaW5fYXBwX3NodXRkb3duKCkKKyAgICAgICAgICAgICAgICBzZWxmLm1hcmlv
bmV0dGUuZGVsZXRlX3Nlc3Npb24oc2VuZF9yZXF1ZXN0PUZhbHNlKQorICAgICAgICAgICAgZXhj
ZXB0IEV4Y2VwdGlvbjoKKyAgICAgICAgICAgICAgICAjIFRoaXMgaXMgdHlwaWNhbGx5IGJlY2F1
c2UgdGhlIHNlc3Npb24gbmV2ZXIgc3RhcnRlZAorICAgICAgICAgICAgICAgIHBhc3MKICAgICAg
ICAgaWYgc2VsZi5tYXJpb25ldHRlIGlzIG5vdCBOb25lOgogICAgICAgICAgICAgZGVsIHNlbGYu
bWFyaW9uZXR0ZQogICAgICAgICBzdXBlcihNYXJpb25ldHRlUHJvdG9jb2wsIHNlbGYpLnRlYXJk
b3duKCkKQEAgLTUwNiwyNyArNTY2LDE0IEBAIGNsYXNzIE1hcmlvbmV0dGVQcm90b2NvbChQcm90
b2NvbCk6CiAgICAgICAgICAgICBzZWxmLnByZWZzLnNldChuYW1lLCB2YWx1ZSkKIAogCi1jbGFz
cyBFeGVjdXRlQXN5bmNTY3JpcHRSdW4ob2JqZWN0KToKLSAgICBkZWYgX19pbml0X18oc2VsZiwg
bG9nZ2VyLCBmdW5jLCBwcm90b2NvbCwgdXJsLCB0aW1lb3V0KToKLSAgICAgICAgc2VsZi5sb2dn
ZXIgPSBsb2dnZXIKLSAgICAgICAgc2VsZi5yZXN1bHQgPSAoTm9uZSwgTm9uZSkKLSAgICAgICAg
c2VsZi5wcm90b2NvbCA9IHByb3RvY29sCi0gICAgICAgIHNlbGYuZnVuYyA9IGZ1bmMKLSAgICAg
ICAgc2VsZi51cmwgPSB1cmwKLSAgICAgICAgc2VsZi50aW1lb3V0ID0gdGltZW91dAotICAgICAg
ICBzZWxmLnJlc3VsdF9mbGFnID0gdGhyZWFkaW5nLkV2ZW50KCkKLQotICAgIGRlZiBydW4oc2Vs
Zik6Ci0gICAgICAgIGluZGV4ID0gc2VsZi51cmwucmZpbmQoIi9zdG9yYWdlLyIpCi0gICAgICAg
IGlmIGluZGV4ICE9IC0xOgotICAgICAgICAgICAgIyBDbGVhciBzdG9yYWdlCi0gICAgICAgICAg
ICBzZWxmLnByb3RvY29sLnN0b3JhZ2UuY2xlYXJfb3JpZ2luKHNlbGYudXJsKQorY2xhc3MgRXhl
Y3V0ZUFzeW5jU2NyaXB0UnVuKFRpbWVkUnVubmVyKToKIAorICAgIGRlZiBzZXRfdGltZW91dChz
ZWxmKToKICAgICAgICAgdGltZW91dCA9IHNlbGYudGltZW91dAogCiAgICAgICAgIHRyeToKICAg
ICAgICAgICAgIGlmIHRpbWVvdXQgaXMgbm90IE5vbmU6Ci0gICAgICAgICAgICAgICAgc2VsZi5w
cm90b2NvbC5iYXNlLnNldF90aW1lb3V0KHRpbWVvdXQgKyBleHRyYV90aW1lb3V0KQorICAgICAg
ICAgICAgICAgIHNlbGYucHJvdG9jb2wuYmFzZS5zZXRfdGltZW91dCh0aW1lb3V0ICsgc2VsZi5l
eHRyYV90aW1lb3V0KQogICAgICAgICAgICAgZWxzZToKICAgICAgICAgICAgICAgICAjIFdlIGp1
c3Qgd2FudCBpdCB0byBuZXZlciB0aW1lIG91dCwgcmVhbGx5LCBidXQgbWFyaW9uZXR0ZSBkb2Vz
bid0CiAgICAgICAgICAgICAgICAgIyBtYWtlIHRoYXQgcG9zc2libGUuIEl0IGFsc28gc2VlbXMg
dG8gdGltZSBvdXQgaW1tZWRpYXRlbHkgaWYgdGhlCkBAIC01MzYsNTcgKzU4Myw0MCBAQCBjbGFz
cyBFeGVjdXRlQXN5bmNTY3JpcHRSdW4ob2JqZWN0KToKICAgICAgICAgICAgIHNlbGYubG9nZ2Vy
LmVycm9yKCJMb3N0IG1hcmlvbmV0dGUgY29ubmVjdGlvbiBiZWZvcmUgc3RhcnRpbmcgdGVzdCIp
CiAgICAgICAgICAgICByZXR1cm4gU3RvcAogCi0gICAgICAgIGlmIHRpbWVvdXQgaXMgbm90IE5v
bmU6Ci0gICAgICAgICAgICB3YWl0X3RpbWVvdXQgPSB0aW1lb3V0ICsgMiAqIGV4dHJhX3RpbWVv
dXQKLSAgICAgICAgZWxzZToKLSAgICAgICAgICAgIHdhaXRfdGltZW91dCA9IE5vbmUKLQotICAg
ICAgICB0aW1lciA9IHRocmVhZGluZy5UaW1lcih3YWl0X3RpbWVvdXQsIHNlbGYuX3RpbWVvdXQp
Ci0gICAgICAgIHRpbWVyLnN0YXJ0KCkKLQotICAgICAgICBzZWxmLl9ydW4oKQotCi0gICAgICAg
IHNlbGYucmVzdWx0X2ZsYWcud2FpdCgpCi0gICAgICAgIHRpbWVyLmNhbmNlbCgpCi0KLSAgICAg
ICAgaWYgc2VsZi5yZXN1bHQgPT0gKE5vbmUsIE5vbmUpOgotICAgICAgICAgICAgc2VsZi5sb2dn
ZXIuZGVidWcoIlRpbWVkIG91dCB3YWl0aW5nIGZvciBhIHJlc3VsdCIpCi0gICAgICAgICAgICBz
ZWxmLnJlc3VsdCA9IEZhbHNlLCAoIkVYVEVSTkFMLVRJTUVPVVQiLCBOb25lKQotICAgICAgICBl
bGlmIHNlbGYucmVzdWx0WzFdIGlzIE5vbmU6Ci0gICAgICAgICAgICAjIFdlIGRpZG4ndCBnZXQg
YW55IGRhdGEgYmFjayBmcm9tIHRoZSB0ZXN0LCBzbyBjaGVjayBpZiB0aGUKLSAgICAgICAgICAg
ICMgYnJvd3NlciBpcyBzdGlsbCByZXNwb25zaXZlCi0gICAgICAgICAgICBpZiBzZWxmLnByb3Rv
Y29sLmlzX2FsaXZlOgotICAgICAgICAgICAgICAgIHNlbGYucmVzdWx0ID0gRmFsc2UsICgiSU5U
RVJOQUwtRVJST1IiLCBOb25lKQotICAgICAgICAgICAgZWxzZToKLSAgICAgICAgICAgICAgICBz
ZWxmLnJlc3VsdCA9IEZhbHNlLCAoIkNSQVNIIiwgTm9uZSkKLSAgICAgICAgcmV0dXJuIHNlbGYu
cmVzdWx0CisgICAgZGVmIGJlZm9yZV9ydW4oc2VsZik6CisgICAgICAgIGluZGV4ID0gc2VsZi51
cmwucmZpbmQoIi9zdG9yYWdlLyIpCisgICAgICAgIGlmIGluZGV4ICE9IC0xOgorICAgICAgICAg
ICAgIyBDbGVhciBzdG9yYWdlCisgICAgICAgICAgICBzZWxmLnByb3RvY29sLnN0b3JhZ2UuY2xl
YXJfb3JpZ2luKHNlbGYudXJsKQogCi0gICAgZGVmIF9ydW4oc2VsZik6CisgICAgZGVmIHJ1bl9m
dW5jKHNlbGYpOgogICAgICAgICB0cnk6CiAgICAgICAgICAgICBzZWxmLnJlc3VsdCA9IFRydWUs
IHNlbGYuZnVuYyhzZWxmLnByb3RvY29sLCBzZWxmLnVybCwgc2VsZi50aW1lb3V0KQogICAgICAg
ICBleGNlcHQgZXJyb3JzLlNjcmlwdFRpbWVvdXRFeGNlcHRpb246CiAgICAgICAgICAgICBzZWxm
LmxvZ2dlci5kZWJ1ZygiR290IGEgbWFyaW9uZXR0ZSB0aW1lb3V0IikKICAgICAgICAgICAgIHNl
bGYucmVzdWx0ID0gRmFsc2UsICgiRVhURVJOQUwtVElNRU9VVCIsIE5vbmUpCi0gICAgICAgIGV4
Y2VwdCAoc29ja2V0LnRpbWVvdXQsIElPRXJyb3IpOgorICAgICAgICBleGNlcHQgSU9FcnJvcjoK
ICAgICAgICAgICAgICMgVGhpcyBjYW4gaGFwcGVuIG9uIGEgY3Jhc2gKICAgICAgICAgICAgICMg
QWxzbywgc2hvdWxkIGNoZWNrIGFmdGVyIHRoZSB0ZXN0IGlmIHRoZSBmaXJlZm94IHByb2Nlc3Mg
aXMgc3RpbGwgcnVubmluZwogICAgICAgICAgICAgIyBhbmQgb3RoZXJ3aXNlIGlnbm9yZSBhbnkg
b3RoZXIgcmVzdWx0IGFuZCBzZXQgaXQgdG8gY3Jhc2gKKyAgICAgICAgICAgIHNlbGYubG9nZ2Vy
LmluZm8oIklPRXJyb3Igb24gY29tbWFuZCwgc2V0dGluZyBzdGF0dXMgdG8gQ1JBU0giKQorICAg
ICAgICAgICAgc2VsZi5yZXN1bHQgPSBGYWxzZSwgKCJDUkFTSCIsIE5vbmUpCisgICAgICAgIGV4
Y2VwdCBlcnJvcnMuTm9TdWNoV2luZG93RXhjZXB0aW9uOgorICAgICAgICAgICAgc2VsZi5sb2dn
ZXIuaW5mbygiTm9TdWNoV2luZG93RXhjZXB0aW9uIG9uIGNvbW1hbmQsIHNldHRpbmcgc3RhdHVz
IHRvIENSQVNIIikKICAgICAgICAgICAgIHNlbGYucmVzdWx0ID0gRmFsc2UsICgiQ1JBU0giLCBO
b25lKQogICAgICAgICBleGNlcHQgRXhjZXB0aW9uIGFzIGU6Ci0gICAgICAgICAgICBtZXNzYWdl
ID0gZ2V0YXR0cihlLCAibWVzc2FnZSIsICIiKQotICAgICAgICAgICAgaWYgbWVzc2FnZToKLSAg
ICAgICAgICAgICAgICBtZXNzYWdlICs9ICJcbiIKLSAgICAgICAgICAgIG1lc3NhZ2UgKz0gdHJh
Y2ViYWNrLmZvcm1hdF9leGMoZSkKLSAgICAgICAgICAgIHNlbGYubG9nZ2VyLndhcm5pbmcobWVz
c2FnZSkKLSAgICAgICAgICAgIHNlbGYucmVzdWx0ID0gRmFsc2UsICgiSU5URVJOQUwtRVJST1Ii
LCBOb25lKQotCisgICAgICAgICAgICBpZiBpc2luc3RhbmNlKGUsIGVycm9ycy5KYXZhc2NyaXB0
RXhjZXB0aW9uKSBhbmQgZS5tZXNzYWdlLnN0YXJ0c3dpdGgoIkRvY3VtZW50IHdhcyB1bmxvYWRl
ZCIpOgorICAgICAgICAgICAgICAgIG1lc3NhZ2UgPSAiRG9jdW1lbnQgdW5sb2FkZWQ7IG1heWJl
IHRlc3QgbmF2aWdhdGVkIHRoZSB0b3AtbGV2ZWwtYnJvd3NpbmcgY29udGV4dD8iCisgICAgICAg
ICAgICBlbHNlOgorICAgICAgICAgICAgICAgIG1lc3NhZ2UgPSBnZXRhdHRyKGUsICJtZXNzYWdl
IiwgIiIpCisgICAgICAgICAgICAgICAgaWYgbWVzc2FnZToKKyAgICAgICAgICAgICAgICAgICAg
bWVzc2FnZSArPSAiXG4iCisgICAgICAgICAgICAgICAgbWVzc2FnZSArPSB0cmFjZWJhY2suZm9y
bWF0X2V4YyhlKQorICAgICAgICAgICAgICAgIHNlbGYubG9nZ2VyLndhcm5pbmcodHJhY2ViYWNr
LmZvcm1hdF9leGMoKSkKKyAgICAgICAgICAgIHNlbGYucmVzdWx0ID0gRmFsc2UsICgiSU5URVJO
QUwtRVJST1IiLCBtZXNzYWdlKQogICAgICAgICBmaW5hbGx5OgogICAgICAgICAgICAgc2VsZi5y
ZXN1bHRfZmxhZy5zZXQoKQogCi0gICAgZGVmIF90aW1lb3V0KHNlbGYpOgotICAgICAgICBzZWxm
LnJlc3VsdCA9IEZhbHNlLCAoIkVYVEVSTkFMLVRJTUVPVVQiLCBOb25lKQotICAgICAgICBzZWxm
LnJlc3VsdF9mbGFnLnNldCgpCi0KIAogY2xhc3MgTWFyaW9uZXR0ZVRlc3RoYXJuZXNzRXhlY3V0
b3IoVGVzdGhhcm5lc3NFeGVjdXRvcik6CiAgICAgc3VwcG9ydHNfdGVzdGRyaXZlciA9IFRydWUK
QEAgLTU5OCw5ICs2MjgsMTQgQEAgY2xhc3MgTWFyaW9uZXR0ZVRlc3RoYXJuZXNzRXhlY3V0b3Io
VGVzdGhhcm5lc3NFeGVjdXRvcik6CiAgICAgICAgIFRlc3RoYXJuZXNzRXhlY3V0b3IuX19pbml0
X18oc2VsZiwgYnJvd3Nlciwgc2VydmVyX2NvbmZpZywKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICB0aW1lb3V0X211bHRpcGxpZXI9dGltZW91dF9tdWx0aXBsaWVyLAogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlYnVnX2luZm89ZGVidWdfaW5mbykK
LSAgICAgICAgc2VsZi5wcm90b2NvbCA9IE1hcmlvbmV0dGVQcm90b2NvbChzZWxmLCBicm93c2Vy
LCBjYXBhYmlsaXRpZXMsIHRpbWVvdXRfbXVsdGlwbGllciwga3dhcmdzWyJlMTBzIl0sIGNjb3Yp
Ci0gICAgICAgIHNlbGYuc2NyaXB0ID0gb3Blbihvcy5wYXRoLmpvaW4oaGVyZSwgInRlc3RoYXJu
ZXNzX3dlYmRyaXZlci5qcyIpKS5yZWFkKCkKLSAgICAgICAgc2VsZi5zY3JpcHRfcmVzdW1lID0g
b3Blbihvcy5wYXRoLmpvaW4oaGVyZSwgInRlc3RoYXJuZXNzX3dlYmRyaXZlcl9yZXN1bWUuanMi
KSkucmVhZCgpCisgICAgICAgIHNlbGYucHJvdG9jb2wgPSBNYXJpb25ldHRlUHJvdG9jb2woc2Vs
ZiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicm93c2VyLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhcGFiaWxpdGllcywK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aW1lb3V0X211bHRp
cGxpZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga3dhcmdz
WyJlMTBzIl0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2Nv
dikKKyAgICAgICAgd2l0aCBvcGVuKG9zLnBhdGguam9pbihoZXJlLCAidGVzdGhhcm5lc3Nfd2Vi
ZHJpdmVyX3Jlc3VtZS5qcyIpKSBhcyBmOgorICAgICAgICAgICAgc2VsZi5zY3JpcHRfcmVzdW1l
ID0gZi5yZWFkKCkKICAgICAgICAgc2VsZi5jbG9zZV9hZnRlcl9kb25lID0gY2xvc2VfYWZ0ZXJf
ZG9uZQogICAgICAgICBzZWxmLndpbmRvd19pZCA9IHN0cih1dWlkLnV1aWQ0KCkpCiAgICAgICAg
IHNlbGYuZGVidWcgPSBkZWJ1ZwpAQCAtNjEwLDYgKzY0NSwxMCBAQCBjbGFzcyBNYXJpb25ldHRl
VGVzdGhhcm5lc3NFeGVjdXRvcihUZXN0aGFybmVzc0V4ZWN1dG9yKToKICAgICAgICAgaWYgbWFy
aW9uZXR0ZSBpcyBOb25lOgogICAgICAgICAgICAgZG9fZGVsYXllZF9pbXBvcnRzKCkKIAorICAg
IGRlZiBzZXR1cChzZWxmLCBydW5uZXIpOgorICAgICAgICBzdXBlcihNYXJpb25ldHRlVGVzdGhh
cm5lc3NFeGVjdXRvciwgc2VsZikuc2V0dXAocnVubmVyKQorICAgICAgICBzZWxmLnByb3RvY29s
LnRlc3RoYXJuZXNzLmxvYWRfcnVubmVyKHNlbGYubGFzdF9lbnZpcm9ubWVudFsicHJvdG9jb2wi
XSkKKwogICAgIGRlZiBpc19hbGl2ZShzZWxmKToKICAgICAgICAgcmV0dXJuIHNlbGYucHJvdG9j
b2wuaXNfYWxpdmUKIApAQCAtNjI3LDcgKzY2Niw4IEBAIGNsYXNzIE1hcmlvbmV0dGVUZXN0aGFy
bmVzc0V4ZWN1dG9yKFRlc3RoYXJuZXNzRXhlY3V0b3IpOgogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuZG9fdGVzdGhhcm5lc3MsCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5wcm90b2NvbCwKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnRlc3RfdXJsKHRl
c3QpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpbWVv
dXQpLnJ1bigpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
dGltZW91dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBz
ZWxmLmV4dHJhX3RpbWVvdXQpLnJ1bigpCiAgICAgICAgICMgVGhlIGZvcm1hdCBvZiBkYXRhIGRl
cGVuZHMgb24gd2hldGhlciB0aGUgdGVzdCByYW4gdG8gY29tcGxldGlvbiBvciBub3QKICAgICAg
ICAgIyBGb3IgYXNzZXJ0cyB3ZSBvbmx5IGNhcmUgYWJvdXQgdGhlIGZhY3QgdGhhdCBpZiBpdCBk
aWRuJ3QgY29tcGxldGUsIHRoZQogICAgICAgICAjIHN0YXR1cyBpcyBpbiB0aGUgZmlyc3QgZmll
bGQuCkBAIC02NDcsMzMgKzY4NywyMiBAQCBjbGFzcyBNYXJpb25ldHRlVGVzdGhhcm5lc3NFeGVj
dXRvcihUZXN0aGFybmVzc0V4ZWN1dG9yKToKICAgICAgICAgcmV0dXJuICh0ZXN0LnJlc3VsdF9j
bHMoZXh0cmE9ZXh0cmEsICpkYXRhKSwgW10pCiAKICAgICBkZWYgZG9fdGVzdGhhcm5lc3Moc2Vs
ZiwgcHJvdG9jb2wsIHVybCwgdGltZW91dCk6Ci0gICAgICAgIHByb3RvY29sLmJhc2UuZXhlY3V0
ZV9zY3JpcHQoImlmICh3aW5kb3cud2luKSB7d2luZG93Lndpbi5jbG9zZSgpfSIpCiAgICAgICAg
IHBhcmVudF93aW5kb3cgPSBwcm90b2NvbC50ZXN0aGFybmVzcy5jbG9zZV9vbGRfd2luZG93cyhw
cm90b2NvbCkKIAotICAgICAgICBpZiB0aW1lb3V0IGlzIG5vdCBOb25lOgotICAgICAgICAgICAg
dGltZW91dF9tcyA9IHN0cih0aW1lb3V0ICogMTAwMCkKLSAgICAgICAgZWxzZToKLSAgICAgICAg
ICAgIHRpbWVvdXRfbXMgPSAibnVsbCIKLQogICAgICAgICBpZiBzZWxmLnByb3RvY29sLmNvdmVy
YWdlLmlzX2VuYWJsZWQ6CiAgICAgICAgICAgICBzZWxmLnByb3RvY29sLmNvdmVyYWdlLnJlc2V0
KCkKIAotICAgICAgICBmb3JtYXRfbWFwID0geyJhYnNfdXJsIjogdXJsLAotICAgICAgICAgICAg
ICAgICAgICAgICJ1cmwiOiBzdHJpcF9zZXJ2ZXIodXJsKSwKLSAgICAgICAgICAgICAgICAgICAg
ICAid2luZG93X2lkIjogc2VsZi53aW5kb3dfaWQsCi0gICAgICAgICAgICAgICAgICAgICAgInRp
bWVvdXRfbXVsdGlwbGllciI6IHNlbGYudGltZW91dF9tdWx0aXBsaWVyLAotICAgICAgICAgICAg
ICAgICAgICAgICJ0aW1lb3V0IjogdGltZW91dF9tcywKLSAgICAgICAgICAgICAgICAgICAgICAi
ZXhwbGljaXRfdGltZW91dCI6IHRpbWVvdXQgaXMgTm9uZX0KLQotICAgICAgICBzY3JpcHQgPSBz
ZWxmLnNjcmlwdCAlIGZvcm1hdF9tYXAKLQotICAgICAgICBydiA9IHByb3RvY29sLmJhc2UuZXhl
Y3V0ZV9zY3JpcHQoc2NyaXB0KQotICAgICAgICB0ZXN0X3dpbmRvdyA9IHByb3RvY29sLnRlc3Ro
YXJuZXNzLmdldF90ZXN0X3dpbmRvdyhzZWxmLndpbmRvd19pZCwgcGFyZW50X3dpbmRvdykKKyAg
ICAgICAgZm9ybWF0X21hcCA9IHsidXJsIjogc3RyaXBfc2VydmVyKHVybCl9CiAKKyAgICAgICAg
cHJvdG9jb2wuYmFzZS5leGVjdXRlX3NjcmlwdCgid2luZG93Lm9wZW4odW5kZWZpbmVkLCAnJXMn
LCAnbm9vcGVuZXInKSIgJSBzZWxmLndpbmRvd19pZCkKKyAgICAgICAgdGVzdF93aW5kb3cgPSBw
cm90b2NvbC50ZXN0aGFybmVzcy5nZXRfdGVzdF93aW5kb3coc2VsZi53aW5kb3dfaWQsIHBhcmVu
dF93aW5kb3csCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHRpbWVvdXQ9MTAqc2VsZi50aW1lb3V0X211bHRpcGxpZXIpCisgICAgICAg
IHNlbGYucHJvdG9jb2wuYmFzZS5zZXRfd2luZG93KHRlc3Rfd2luZG93KQogICAgICAgICBoYW5k
bGVyID0gQ2FsbGJhY2tIYW5kbGVyKHNlbGYubG9nZ2VyLCBwcm90b2NvbCwgdGVzdF93aW5kb3cp
CisgICAgICAgIHByb3RvY29sLm1hcmlvbmV0dGUubmF2aWdhdGUodXJsKQogICAgICAgICB3aGls
ZSBUcnVlOgogICAgICAgICAgICAgcmVzdWx0ID0gcHJvdG9jb2wuYmFzZS5leGVjdXRlX3Njcmlw
dCgKLSAgICAgICAgICAgICAgICBzZWxmLnNjcmlwdF9yZXN1bWUgJSBmb3JtYXRfbWFwLCBhc3lu
Yz1UcnVlKQorICAgICAgICAgICAgICAgIHNlbGYuc2NyaXB0X3Jlc3VtZSAlIGZvcm1hdF9tYXAs
IGFzeW5jaHJvbm91cz1UcnVlKQogICAgICAgICAgICAgaWYgcmVzdWx0IGlzIE5vbmU6CiAgICAg
ICAgICAgICAgICAgIyBUaGlzIGNhbiBoYXBwZW4gaWYgd2UgZ2V0IGFuIGNvbnRlbnQgcHJvY2Vz
cyBjcmFzaAogICAgICAgICAgICAgICAgIHJldHVybiBOb25lCkBAIC03MTcsNyArNzQ2LDcgQEAg
Y2xhc3MgTWFyaW9uZXR0ZVJlZlRlc3RFeGVjdXRvcihSZWZUZXN0RXhlY3V0b3IpOgogCiAgICAg
ICAgIHdpdGggb3Blbihvcy5wYXRoLmpvaW4oaGVyZSwgInJlZnRlc3QuanMiKSkgYXMgZjoKICAg
ICAgICAgICAgIHNlbGYuc2NyaXB0ID0gZi5yZWFkKCkKLSAgICAgICAgd2l0aCBvcGVuKG9zLnBh
dGguam9pbihoZXJlLCAicmVmdGVzdC13YWl0X21hcmlvbmV0dGUuanMiKSkgYXMgZjoKKyAgICAg
ICAgd2l0aCBvcGVuKG9zLnBhdGguam9pbihoZXJlLCAicmVmdGVzdC13YWl0X3dlYmRyaXZlci5q
cyIpKSBhcyBmOgogICAgICAgICAgICAgc2VsZi53YWl0X3NjcmlwdCA9IGYucmVhZCgpCiAKICAg
ICBkZWYgc2V0dXAoc2VsZiwgcnVubmVyKToKQEAgLTcyNywxMiArNzU2LDE4IEBAIGNsYXNzIE1h
cmlvbmV0dGVSZWZUZXN0RXhlY3V0b3IoUmVmVGVzdEV4ZWN1dG9yKToKICAgICBkZWYgdGVhcmRv
d24oc2VsZik6CiAgICAgICAgIHRyeToKICAgICAgICAgICAgIHNlbGYuaW1wbGVtZW50YXRpb24u
dGVhcmRvd24oKQotICAgICAgICAgICAgaGFuZGxlID0gc2VsZi5wcm90b2NvbC5tYXJpb25ldHRl
LndpbmRvd19oYW5kbGVzWzBdCi0gICAgICAgICAgICBzZWxmLnByb3RvY29sLm1hcmlvbmV0dGUu
c3dpdGNoX3RvX3dpbmRvdyhoYW5kbGUpCisgICAgICAgICAgICBpZiBzZWxmLnByb3RvY29sLm1h
cmlvbmV0dGUgYW5kIHNlbGYucHJvdG9jb2wubWFyaW9uZXR0ZS5zZXNzaW9uX2lkOgorICAgICAg
ICAgICAgICAgIGhhbmRsZXMgPSBzZWxmLnByb3RvY29sLm1hcmlvbmV0dGUud2luZG93X2hhbmRs
ZXMKKyAgICAgICAgICAgICAgICBpZiBoYW5kbGVzOgorICAgICAgICAgICAgICAgICAgICBzZWxm
LnByb3RvY29sLm1hcmlvbmV0dGUuc3dpdGNoX3RvX3dpbmRvdyhoYW5kbGVzWzBdKQogICAgICAg
ICAgICAgc3VwZXIoc2VsZi5fX2NsYXNzX18sIHNlbGYpLnRlYXJkb3duKCkKICAgICAgICAgZXhj
ZXB0IEV4Y2VwdGlvbiBhcyBlOgogICAgICAgICAgICAgIyBJZ25vcmUgZXJyb3JzIGR1cmluZyB0
ZWFyZG93bgotICAgICAgICAgICAgc2VsZi5sb2dnZXIud2FybmluZyh0cmFjZWJhY2suZm9ybWF0
X2V4YyhlKSkKKyAgICAgICAgICAgIHNlbGYubG9nZ2VyLndhcm5pbmcoIkV4Y2VwdGlvbiBkdXJp
bmcgcmVmdGVzdCB0ZWFyZG93bjpcbiVzIiAlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHRyYWNlYmFjay5mb3JtYXRfZXhjKGUpKQorCisgICAgZGVmIHJlc2V0KHNlbGYpOgorICAg
ICAgICBzZWxmLmltcGxlbWVudGF0aW9uLnJlc2V0KCoqc2VsZi5pbXBsZW1lbnRhdGlvbl9rd2Fy
Z3MpCiAKICAgICBkZWYgaXNfYWxpdmUoc2VsZik6CiAgICAgICAgIHJldHVybiBzZWxmLnByb3Rv
Y29sLmlzX2FsaXZlCkBAIC03NzAsNyArODA1LDcgQEAgY2xhc3MgTWFyaW9uZXR0ZVJlZlRlc3RF
eGVjdXRvcihSZWZUZXN0RXhlY3V0b3IpOgogICAgICAgICByZXR1cm4gc2VsZi5jb252ZXJ0X3Jl
c3VsdCh0ZXN0LCByZXN1bHQpCiAKICAgICBkZWYgc2NyZWVuc2hvdChzZWxmLCB0ZXN0LCB2aWV3
cG9ydF9zaXplLCBkcGkpOgotICAgICAgICAjIGh0dHBzOi8vZ2l0aHViLmNvbS93M2Mvd3B0cnVu
bmVyL2lzc3Vlcy8xNjYKKyAgICAgICAgIyBodHRwczovL2dpdGh1Yi5jb20vd2ViLXBsYXRmb3Jt
LXRlc3RzL3dwdC9pc3N1ZXMvNzEzNQogICAgICAgICBhc3NlcnQgdmlld3BvcnRfc2l6ZSBpcyBO
b25lCiAgICAgICAgIGFzc2VydCBkcGkgaXMgTm9uZQogCkBAIC03ODIsMTIgKzgxNywxMyBAQCBj
bGFzcyBNYXJpb25ldHRlUmVmVGVzdEV4ZWN1dG9yKFJlZlRlc3RFeGVjdXRvcik6CiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5fc2NyZWVuc2hvdCwKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnByb3RvY29sLAogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RfdXJsLAotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHRpbWVvdXQpLnJ1bigpCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgdGltZW91dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBzZWxmLmV4dHJhX3RpbWVvdXQpLnJ1bigpCiAKICAgICBkZWYgX3NjcmVlbnNob3Qoc2VsZiwg
cHJvdG9jb2wsIHVybCwgdGltZW91dCk6CiAgICAgICAgIHByb3RvY29sLm1hcmlvbmV0dGUubmF2
aWdhdGUodXJsKQogCi0gICAgICAgIHByb3RvY29sLmJhc2UuZXhlY3V0ZV9zY3JpcHQoc2VsZi53
YWl0X3NjcmlwdCwgYXN5bmM9VHJ1ZSkKKyAgICAgICAgcHJvdG9jb2wuYmFzZS5leGVjdXRlX3Nj
cmlwdChzZWxmLndhaXRfc2NyaXB0LCBhc3luY2hyb25vdXM9VHJ1ZSkKIAogICAgICAgICBzY3Jl
ZW5zaG90ID0gcHJvdG9jb2wubWFyaW9uZXR0ZS5zY3JlZW5zaG90KGZ1bGw9RmFsc2UpCiAgICAg
ICAgICMgc3RyaXAgb2ZmIHRoZSBkYXRhOmltZy9wbmcsIHBhcnQgb2YgdGhlIHVybApAQCAtNzk3
LDcgKzgzMyw3IEBAIGNsYXNzIE1hcmlvbmV0dGVSZWZUZXN0RXhlY3V0b3IoUmVmVGVzdEV4ZWN1
dG9yKToKICAgICAgICAgcmV0dXJuIHNjcmVlbnNob3QKIAogCi1jbGFzcyBJbnRlcm5hbFJlZlRl
c3RJbXBsZW1lbnRhdGlvbihvYmplY3QpOgorY2xhc3MgSW50ZXJuYWxSZWZUZXN0SW1wbGVtZW50
YXRpb24oUmVmVGVzdEltcGxlbWVudGF0aW9uKToKICAgICBkZWYgX19pbml0X18oc2VsZiwgZXhl
Y3V0b3IpOgogICAgICAgICBzZWxmLnRpbWVvdXRfbXVsdGlwbGllciA9IGV4ZWN1dG9yLnRpbWVv
dXRfbXVsdGlwbGllcgogICAgICAgICBzZWxmLmV4ZWN1dG9yID0gZXhlY3V0b3IKQEAgLTgxNSwy
NiArODUxLDQxIEBAIGNsYXNzIEludGVybmFsUmVmVGVzdEltcGxlbWVudGF0aW9uKG9iamVjdCk6
CiAgICAgICAgIHNlbGYuZXhlY3V0b3IucHJvdG9jb2wubWFyaW9uZXR0ZS5zZXRfY29udGV4dChz
ZWxmLmV4ZWN1dG9yLnByb3RvY29sLm1hcmlvbmV0dGUuQ09OVEVYVF9DSFJPTUUpCiAgICAgICAg
IHNlbGYuZXhlY3V0b3IucHJvdG9jb2wubWFyaW9uZXR0ZS5fc2VuZF9tZXNzYWdlKCJyZWZ0ZXN0
OnNldHVwIiwgZGF0YSkKIAorICAgIGRlZiByZXNldChzZWxmLCBzY3JlZW5zaG90PU5vbmUpOgor
ICAgICAgICAjIHRoaXMgaXMgb2J2aW91cyB3cm9uZzsgaXQgc2hvdWxkbid0IGJlIGEgbm8tb3AK
KyAgICAgICAgIyBzZWUgaHR0cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQv
aXNzdWVzLzE1NjA0CisgICAgICAgIHBhc3MKKwogICAgIGRlZiBydW5fdGVzdChzZWxmLCB0ZXN0
KToKLSAgICAgICAgcmVmZXJlbmNlcyA9IHNlbGYuZ2V0X3JlZmVyZW5jZXModGVzdCkKKyAgICAg
ICAgcmVmZXJlbmNlcyA9IHNlbGYuZ2V0X3JlZmVyZW5jZXModGVzdCwgdGVzdCkKICAgICAgICAg
dGltZW91dCA9ICh0ZXN0LnRpbWVvdXQgKiAxMDAwKSAqIHNlbGYudGltZW91dF9tdWx0aXBsaWVy
CiAgICAgICAgIHJ2ID0gc2VsZi5leGVjdXRvci5wcm90b2NvbC5tYXJpb25ldHRlLl9zZW5kX21l
c3NhZ2UoInJlZnRlc3Q6cnVuIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICB7InRlc3QiOiBzZWxmLmV4ZWN1dG9yLnRlc3RfdXJs
KHRlc3QpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAicmVmZXJlbmNlcyI6IHJlZmVyZW5jZXMsCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJleHBlY3RlZCI6
IHRlc3QuZXhwZWN0ZWQoKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgInRpbWVvdXQiOiB0aW1lb3V0fSlbInZhbHVlIl0KKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgInRpbWVvdXQiOiB0aW1lb3V0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAid2lkdGgiOiA4MDAsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJoZWlnaHQi
OiA2MDB9KVsidmFsdWUiXQogICAgICAgICByZXR1cm4gcnYKIAotICAgIGRlZiBnZXRfcmVmZXJl
bmNlcyhzZWxmLCBub2RlKToKKyAgICBkZWYgZ2V0X3JlZmVyZW5jZXMoc2VsZiwgcm9vdF90ZXN0
LCBub2RlKToKICAgICAgICAgcnYgPSBbXQogICAgICAgICBmb3IgaXRlbSwgcmVsYXRpb24gaW4g
bm9kZS5yZWZlcmVuY2VzOgotICAgICAgICAgICAgcnYuYXBwZW5kKFtzZWxmLmV4ZWN1dG9yLnRl
c3RfdXJsKGl0ZW0pLCBzZWxmLmdldF9yZWZlcmVuY2VzKGl0ZW0pLCByZWxhdGlvbl0pCisgICAg
ICAgICAgICBydi5hcHBlbmQoW3NlbGYuZXhlY3V0b3IudGVzdF91cmwoaXRlbSksIHNlbGYuZ2V0
X3JlZmVyZW5jZXMocm9vdF90ZXN0LCBpdGVtKSwgcmVsYXRpb24sCisgICAgICAgICAgICAgICAg
ICAgICAgIHsiZnV6enkiOiBzZWxmLmdldF9mdXp6eShyb290X3Rlc3QsIFtub2RlLCBpdGVtXSwg
cmVsYXRpb24pfV0pCiAgICAgICAgIHJldHVybiBydgogCiAgICAgZGVmIHRlYXJkb3duKHNlbGYp
OgogICAgICAgICB0cnk6Ci0gICAgICAgICAgICBzZWxmLmV4ZWN1dG9yLnByb3RvY29sLm1hcmlv
bmV0dGUuX3NlbmRfbWVzc2FnZSgicmVmdGVzdDp0ZWFyZG93biIsIHt9KQotICAgICAgICAgICAg
c2VsZi5leGVjdXRvci5wcm90b2NvbC5tYXJpb25ldHRlLnNldF9jb250ZXh0KHNlbGYuZXhlY3V0
b3IucHJvdG9jb2wubWFyaW9uZXR0ZS5DT05URVhUX0NPTlRFTlQpCisgICAgICAgICAgICBpZiBz
ZWxmLmV4ZWN1dG9yLnByb3RvY29sLm1hcmlvbmV0dGUgYW5kIHNlbGYuZXhlY3V0b3IucHJvdG9j
b2wubWFyaW9uZXR0ZS5zZXNzaW9uX2lkOgorICAgICAgICAgICAgICAgIHNlbGYuZXhlY3V0b3Iu
cHJvdG9jb2wubWFyaW9uZXR0ZS5fc2VuZF9tZXNzYWdlKCJyZWZ0ZXN0OnRlYXJkb3duIiwge30p
CisgICAgICAgICAgICAgICAgc2VsZi5leGVjdXRvci5wcm90b2NvbC5tYXJpb25ldHRlLnNldF9j
b250ZXh0KHNlbGYuZXhlY3V0b3IucHJvdG9jb2wubWFyaW9uZXR0ZS5DT05URVhUX0NPTlRFTlQp
CisgICAgICAgICAgICAgICAgIyB0aGUgcmVmdGVzdCBydW5uZXIgb3BlbnMvY2xvc2VzIGEgd2lu
ZG93IHdpdGggZm9jdXMsIHNvIGFzCisgICAgICAgICAgICAgICAgIyB3aXRoIGFmdGVyIGNsb3Np
bmcgYSB3aW5kb3cgd2UgbmVlZCB0byBnaXZlIGEgbmV3IHdpbmRvdworICAgICAgICAgICAgICAg
ICMgZm9jdXMKKyAgICAgICAgICAgICAgICBoYW5kbGVzID0gc2VsZi5leGVjdXRvci5wcm90b2Nv
bC5tYXJpb25ldHRlLndpbmRvd19oYW5kbGVzCisgICAgICAgICAgICAgICAgaWYgaGFuZGxlczoK
KyAgICAgICAgICAgICAgICAgICAgc2VsZi5leGVjdXRvci5wcm90b2NvbC5tYXJpb25ldHRlLnN3
aXRjaF90b193aW5kb3coaGFuZGxlc1swXSkKICAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBl
OgogICAgICAgICAgICAgIyBJZ25vcmUgZXJyb3JzIGR1cmluZyB0ZWFyZG93bgogICAgICAgICAg
ICAgc2VsZi5sb2dnZXIud2FybmluZyh0cmFjZWJhY2suZm9ybWF0X2V4YyhlKSkKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0
cnVubmVyL3dwdHJ1bm5lci9leGVjdXRvcnMvZXhlY3V0b3JzZWxlbml1bS5weSBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1
bm5lci9leGVjdXRvcnMvZXhlY3V0b3JzZWxlbml1bS5weQppbmRleCBkOWI2Nzk2OGRkZjY2ZTA0
NGZjZTViOTc2YjhlOGQ2NjRjMDc2ODg5Li5kNjc0NTAxODI3OWU3NGFmZmNlMTQ5M2RhM2NiYjli
MDFmODI4ZmIwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvZXhlY3V0b3JzL2V4ZWN1dG9yc2Vs
ZW5pdW0ucHkKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2V4ZWN1dG9ycy9leGVjdXRvcnNlbGVuaXVtLnB5
CkBAIC0yLDYgKzIsNyBAQCBpbXBvcnQganNvbgogaW1wb3J0IG9zCiBpbXBvcnQgc29ja2V0CiBp
bXBvcnQgdGhyZWFkaW5nCitpbXBvcnQgdGltZQogaW1wb3J0IHRyYWNlYmFjawogaW1wb3J0IHVy
bHBhcnNlCiBpbXBvcnQgdXVpZApAQCAtMTAsNyArMTEsNyBAQCBmcm9tIC5iYXNlIGltcG9ydCAo
Q2FsbGJhY2tIYW5kbGVyLAogICAgICAgICAgICAgICAgICAgIFJlZlRlc3RFeGVjdXRvciwKICAg
ICAgICAgICAgICAgICAgICBSZWZUZXN0SW1wbGVtZW50YXRpb24sCiAgICAgICAgICAgICAgICAg
ICAgVGVzdGhhcm5lc3NFeGVjdXRvciwKLSAgICAgICAgICAgICAgICAgICBleHRyYV90aW1lb3V0
LAorICAgICAgICAgICAgICAgICAgIFRpbWVkUnVubmVyLAogICAgICAgICAgICAgICAgICAgIHN0
cmlwX3NlcnZlcikKIGZyb20gLnByb3RvY29sIGltcG9ydCAoQmFzZVByb3RvY29sUGFydCwKICAg
ICAgICAgICAgICAgICAgICAgICAgVGVzdGhhcm5lc3NQcm90b2NvbFBhcnQsCkBAIC0xOCw2ICsx
OSw3IEBAIGZyb20gLnByb3RvY29sIGltcG9ydCAoQmFzZVByb3RvY29sUGFydCwKICAgICAgICAg
ICAgICAgICAgICAgICAgU2VsZWN0b3JQcm90b2NvbFBhcnQsCiAgICAgICAgICAgICAgICAgICAg
ICAgIENsaWNrUHJvdG9jb2xQYXJ0LAogICAgICAgICAgICAgICAgICAgICAgICBTZW5kS2V5c1By
b3RvY29sUGFydCwKKyAgICAgICAgICAgICAgICAgICAgICAgQWN0aW9uU2VxdWVuY2VQcm90b2Nv
bFBhcnQsCiAgICAgICAgICAgICAgICAgICAgICAgIFRlc3REcml2ZXJQcm90b2NvbFBhcnQpCiBm
cm9tIC4udGVzdHJ1bm5lciBpbXBvcnQgU3RvcAogCkBAIC0yNiwyMyArMjgsMjYgQEAgaGVyZSA9
IG9zLnBhdGguam9pbihvcy5wYXRoLnNwbGl0KF9fZmlsZV9fKVswXSkKIHdlYmRyaXZlciA9IE5v
bmUKIGV4Y2VwdGlvbnMgPSBOb25lCiBSZW1vdGVDb25uZWN0aW9uID0gTm9uZQorQ29tbWFuZCA9
IE5vbmUKIAogCiBkZWYgZG9fZGVsYXllZF9pbXBvcnRzKCk6CiAgICAgZ2xvYmFsIHdlYmRyaXZl
cgogICAgIGdsb2JhbCBleGNlcHRpb25zCiAgICAgZ2xvYmFsIFJlbW90ZUNvbm5lY3Rpb24KKyAg
ICBnbG9iYWwgQ29tbWFuZAogICAgIGZyb20gc2VsZW5pdW0gaW1wb3J0IHdlYmRyaXZlcgogICAg
IGZyb20gc2VsZW5pdW0uY29tbW9uIGltcG9ydCBleGNlcHRpb25zCiAgICAgZnJvbSBzZWxlbml1
bS53ZWJkcml2ZXIucmVtb3RlLnJlbW90ZV9jb25uZWN0aW9uIGltcG9ydCBSZW1vdGVDb25uZWN0
aW9uCisgICAgZnJvbSBzZWxlbml1bS53ZWJkcml2ZXIucmVtb3RlLmNvbW1hbmQgaW1wb3J0IENv
bW1hbmQKIAogCiBjbGFzcyBTZWxlbml1bUJhc2VQcm90b2NvbFBhcnQoQmFzZVByb3RvY29sUGFy
dCk6CiAgICAgZGVmIHNldHVwKHNlbGYpOgogICAgICAgICBzZWxmLndlYmRyaXZlciA9IHNlbGYu
cGFyZW50LndlYmRyaXZlcgogCi0gICAgZGVmIGV4ZWN1dGVfc2NyaXB0KHNlbGYsIHNjcmlwdCwg
YXN5bmM9RmFsc2UpOgotICAgICAgICBtZXRob2QgPSBzZWxmLndlYmRyaXZlci5leGVjdXRlX2Fz
eW5jX3NjcmlwdCBpZiBhc3luYyBlbHNlIHNlbGYud2ViZHJpdmVyLmV4ZWN1dGVfc2NyaXB0Cisg
ICAgZGVmIGV4ZWN1dGVfc2NyaXB0KHNlbGYsIHNjcmlwdCwgYXN5bmNocm9ub3VzPUZhbHNlKToK
KyAgICAgICAgbWV0aG9kID0gc2VsZi53ZWJkcml2ZXIuZXhlY3V0ZV9hc3luY19zY3JpcHQgaWYg
YXN5bmNocm9ub3VzIGVsc2Ugc2VsZi53ZWJkcml2ZXIuZXhlY3V0ZV9zY3JpcHQKICAgICAgICAg
cmV0dXJuIG1ldGhvZChzY3JpcHQpCiAKICAgICBkZWYgc2V0X3RpbWVvdXQoc2VsZiwgdGltZW91
dCk6CkBAIC03Miw1MCArNzcsNjkgQEAgY2xhc3MgU2VsZW5pdW1CYXNlUHJvdG9jb2xQYXJ0KEJh
c2VQcm90b2NvbFBhcnQpOgogY2xhc3MgU2VsZW5pdW1UZXN0aGFybmVzc1Byb3RvY29sUGFydChU
ZXN0aGFybmVzc1Byb3RvY29sUGFydCk6CiAgICAgZGVmIHNldHVwKHNlbGYpOgogICAgICAgICBz
ZWxmLndlYmRyaXZlciA9IHNlbGYucGFyZW50LndlYmRyaXZlcgorICAgICAgICBzZWxmLnJ1bm5l
cl9oYW5kbGUgPSBOb25lCisgICAgICAgIHdpdGggb3Blbihvcy5wYXRoLmpvaW4oaGVyZSwgInJ1
bm5lci5qcyIpKSBhcyBmOgorICAgICAgICAgICAgc2VsZi5ydW5uZXJfc2NyaXB0ID0gZi5yZWFk
KCkKIAogICAgIGRlZiBsb2FkX3J1bm5lcihzZWxmLCB1cmxfcHJvdG9jb2wpOgorICAgICAgICBp
ZiBzZWxmLnJ1bm5lcl9oYW5kbGU6CisgICAgICAgICAgICBzZWxmLndlYmRyaXZlci5zd2l0Y2hf
dG9fd2luZG93KHNlbGYucnVubmVyX2hhbmRsZSkKICAgICAgICAgdXJsID0gdXJscGFyc2UudXJs
am9pbihzZWxmLnBhcmVudC5leGVjdXRvci5zZXJ2ZXJfdXJsKHVybF9wcm90b2NvbCksCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIi90ZXN0aGFybmVzc19ydW5uZXIuaHRtbCIpCiAg
ICAgICAgIHNlbGYubG9nZ2VyLmRlYnVnKCJMb2FkaW5nICVzIiAlIHVybCkKICAgICAgICAgc2Vs
Zi53ZWJkcml2ZXIuZ2V0KHVybCkKLSAgICAgICAgc2VsZi53ZWJkcml2ZXIuZXhlY3V0ZV9zY3Jp
cHQoImRvY3VtZW50LnRpdGxlID0gJyVzJyIgJQotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICB0aHJlYWRpbmcuY3VycmVudF90aHJlYWQoKS5uYW1lLnJlcGxhY2UoIiciLCAn
IicpKQorICAgICAgICBzZWxmLnJ1bm5lcl9oYW5kbGUgPSBzZWxmLndlYmRyaXZlci5jdXJyZW50
X3dpbmRvd19oYW5kbGUKKyAgICAgICAgZm9ybWF0X21hcCA9IHsidGl0bGUiOiB0aHJlYWRpbmcu
Y3VycmVudF90aHJlYWQoKS5uYW1lLnJlcGxhY2UoIiciLCAnIicpfQorICAgICAgICBzZWxmLnBh
cmVudC5iYXNlLmV4ZWN1dGVfc2NyaXB0KHNlbGYucnVubmVyX3NjcmlwdCAlIGZvcm1hdF9tYXAp
CiAKICAgICBkZWYgY2xvc2Vfb2xkX3dpbmRvd3Moc2VsZik6Ci0gICAgICAgIGV4Y2x1ZGUgPSBz
ZWxmLndlYmRyaXZlci5jdXJyZW50X3dpbmRvd19oYW5kbGUKLSAgICAgICAgaGFuZGxlcyA9IFtp
dGVtIGZvciBpdGVtIGluIHNlbGYud2ViZHJpdmVyLndpbmRvd19oYW5kbGVzIGlmIGl0ZW0gIT0g
ZXhjbHVkZV0KKyAgICAgICAgaGFuZGxlcyA9IFtpdGVtIGZvciBpdGVtIGluIHNlbGYud2ViZHJp
dmVyLndpbmRvd19oYW5kbGVzIGlmIGl0ZW0gIT0gc2VsZi5ydW5uZXJfaGFuZGxlXQogICAgICAg
ICBmb3IgaGFuZGxlIGluIGhhbmRsZXM6CiAgICAgICAgICAgICB0cnk6CiAgICAgICAgICAgICAg
ICAgc2VsZi53ZWJkcml2ZXIuc3dpdGNoX3RvX3dpbmRvdyhoYW5kbGUpCiAgICAgICAgICAgICAg
ICAgc2VsZi53ZWJkcml2ZXIuY2xvc2UoKQogICAgICAgICAgICAgZXhjZXB0IGV4Y2VwdGlvbnMu
Tm9TdWNoV2luZG93RXhjZXB0aW9uOgogICAgICAgICAgICAgICAgIHBhc3MKLSAgICAgICAgc2Vs
Zi53ZWJkcml2ZXIuc3dpdGNoX3RvX3dpbmRvdyhleGNsdWRlKQotICAgICAgICByZXR1cm4gZXhj
bHVkZQotCi0gICAgZGVmIGdldF90ZXN0X3dpbmRvdyhzZWxmLCB3aW5kb3dfaWQsIHBhcmVudCk6
CisgICAgICAgIHNlbGYud2ViZHJpdmVyLnN3aXRjaF90b193aW5kb3coc2VsZi5ydW5uZXJfaGFu
ZGxlKQorICAgICAgICByZXR1cm4gc2VsZi5ydW5uZXJfaGFuZGxlCisKKyAgICBkZWYgZ2V0X3Rl
c3Rfd2luZG93KHNlbGYsIHdpbmRvd19pZCwgcGFyZW50LCB0aW1lb3V0PTUpOgorICAgICAgICAi
IiJGaW5kIHRoZSB0ZXN0IHdpbmRvdyBhbW9uZ3N0IGFsbCB0aGUgb3BlbiB3aW5kb3dzLgorICAg
ICAgICBUaGlzIGlzIGFzc3VtZWQgdG8gYmUgZWl0aGVyIHRoZSBuYW1lZCB3aW5kb3cgb3IgdGhl
IG9uZSBhZnRlciB0aGUgcGFyZW50IGluIHRoZSBsaXN0IG9mCisgICAgICAgIHdpbmRvdyBoYW5k
bGVzCisKKyAgICAgICAgOnBhcmFtIHdpbmRvd19pZDogVGhlIERPTSBuYW1lIG9mIHRoZSBXaW5k
b3cKKyAgICAgICAgOnBhcmFtIHBhcmVudDogVGhlIGhhbmRsZSBvZiB0aGUgcnVubmVyIHdpbmRv
dworICAgICAgICA6cGFyYW0gdGltZW91dDogVGhlIHRpbWUgaW4gc2Vjb25kcyB0byB3YWl0IGZv
ciB0aGUgd2luZG93IHRvIGFwcGVhci4gVGhpcyBpcyBiZWNhdXNlIGluCisgICAgICAgICAgICAg
ICAgICAgICAgICBzb21lIGltcGxlbWVudGF0aW9ucyB0aGVyZSdzIGEgcmFjZSBiZXR3ZWVuIGNh
bGxpbmcgd2luZG93Lm9wZW4gYW5kIHRoZQorICAgICAgICAgICAgICAgICAgICAgICAgd2luZG93
IGJlaW5nIGFkZGVkIHRvIHRoZSBsaXN0IG9mIFdlYkRyaXZlciBhY2Nlc3NpYmxlIHdpbmRvd3Mu
IiIiCiAgICAgICAgIHRlc3Rfd2luZG93ID0gTm9uZQotICAgICAgICBpZiB3aW5kb3dfaWQ6Cisg
ICAgICAgIGVuZF90aW1lID0gdGltZS50aW1lKCkgKyB0aW1lb3V0CisgICAgICAgIHdoaWxlIHRp
bWUudGltZSgpIDwgZW5kX3RpbWU6CiAgICAgICAgICAgICB0cnk6Ci0gICAgICAgICAgICAgICAg
IyBUcnkgdGhpcywgaXQncyBpbiBMZXZlbCAxIGJ1dCBub3RoaW5nIHN1cHBvcnRzIGl0IHlldAot
ICAgICAgICAgICAgICAgIHdpbl9zID0gc2VsZi53ZWJkcml2ZXIuZXhlY3V0ZV9zY3JpcHQoInJl
dHVybiB3aW5kb3dbJyVzJ107IiAlIHNlbGYud2luZG93X2lkKQorICAgICAgICAgICAgICAgICMg
VHJ5IHVzaW5nIHRoZSBKU09OIHNlcmlhbGl6YXRpb24gb2YgdGhlIFdpbmRvd1Byb3h5IG9iamVj
dCwKKyAgICAgICAgICAgICAgICAjIGl0J3MgaW4gTGV2ZWwgMSBidXQgbm90aGluZyBzdXBwb3J0
cyBpdCB5ZXQKKyAgICAgICAgICAgICAgICB3aW5fcyA9IHNlbGYud2ViZHJpdmVyLmV4ZWN1dGVf
c2NyaXB0KCJyZXR1cm4gd2luZG93WyclcyddOyIgJSB3aW5kb3dfaWQpCiAgICAgICAgICAgICAg
ICAgd2luX29iaiA9IGpzb24ubG9hZHMod2luX3MpCiAgICAgICAgICAgICAgICAgdGVzdF93aW5k
b3cgPSB3aW5fb2JqWyJ3aW5kb3ctZmNjNi0xMWU1LWI0ZjgtMzMwYTg4YWI5ZDdmIl0KICAgICAg
ICAgICAgIGV4Y2VwdCBFeGNlcHRpb246CiAgICAgICAgICAgICAgICAgcGFzcwogCi0gICAgICAg
IGlmIHRlc3Rfd2luZG93IGlzIE5vbmU6Ci0gICAgICAgICAgICBhZnRlciA9IHNlbGYud2ViZHJp
dmVyLndpbmRvd19oYW5kbGVzCi0gICAgICAgICAgICBpZiBsZW4oYWZ0ZXIpID09IDI6Ci0gICAg
ICAgICAgICAgICAgdGVzdF93aW5kb3cgPSBuZXh0KGl0ZXIoc2V0KGFmdGVyKSAtIHNldChbcGFy
ZW50XSkpKQotICAgICAgICAgICAgZWxpZiBhZnRlclswXSA9PSBwYXJlbnQgYW5kIGxlbihhZnRl
cikgPiAyOgotICAgICAgICAgICAgICAgICMgSG9wZSB0aGUgZmlyc3Qgb25lIGhlcmUgaXMgdGhl
IHRlc3Qgd2luZG93Ci0gICAgICAgICAgICAgICAgdGVzdF93aW5kb3cgPSBhZnRlclsxXQotICAg
ICAgICAgICAgZWxzZToKLSAgICAgICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oInVuYWJsZSB0
byBmaW5kIHRlc3Qgd2luZG93IikKKyAgICAgICAgICAgIGlmIHRlc3Rfd2luZG93IGlzIE5vbmU6
CisgICAgICAgICAgICAgICAgYWZ0ZXIgPSBzZWxmLndlYmRyaXZlci53aW5kb3dfaGFuZGxlcwor
ICAgICAgICAgICAgICAgIGlmIGxlbihhZnRlcikgPT0gMjoKKyAgICAgICAgICAgICAgICAgICAg
dGVzdF93aW5kb3cgPSBuZXh0KGl0ZXIoc2V0KGFmdGVyKSAtIHtwYXJlbnR9KSkKKyAgICAgICAg
ICAgICAgICBlbGlmIGFmdGVyWzBdID09IHBhcmVudCBhbmQgbGVuKGFmdGVyKSA+IDI6CisgICAg
ICAgICAgICAgICAgICAgICMgSG9wZSB0aGUgZmlyc3Qgb25lIGhlcmUgaXMgdGhlIHRlc3Qgd2lu
ZG93CisgICAgICAgICAgICAgICAgICAgIHRlc3Rfd2luZG93ID0gYWZ0ZXJbMV0KKworICAgICAg
ICAgICAgaWYgdGVzdF93aW5kb3cgaXMgbm90IE5vbmU6CisgICAgICAgICAgICAgICAgYXNzZXJ0
IHRlc3Rfd2luZG93ICE9IHBhcmVudAorICAgICAgICAgICAgICAgIHJldHVybiB0ZXN0X3dpbmRv
dworCisgICAgICAgICAgICB0aW1lLnNsZWVwKDAuMSkKIAotICAgICAgICBhc3NlcnQgdGVzdF93
aW5kb3cgIT0gcGFyZW50Ci0gICAgICAgIHJldHVybiB0ZXN0X3dpbmRvdworICAgICAgICByYWlz
ZSBFeGNlcHRpb24oInVuYWJsZSB0byBmaW5kIHRlc3Qgd2luZG93IikKIAogCiBjbGFzcyBTZWxl
bml1bVNlbGVjdG9yUHJvdG9jb2xQYXJ0KFNlbGVjdG9yUHJvdG9jb2xQYXJ0KToKQEAgLTEyNSw2
ICsxNDksOSBAQCBjbGFzcyBTZWxlbml1bVNlbGVjdG9yUHJvdG9jb2xQYXJ0KFNlbGVjdG9yUHJv
dG9jb2xQYXJ0KToKICAgICBkZWYgZWxlbWVudHNfYnlfc2VsZWN0b3Ioc2VsZiwgc2VsZWN0b3Ip
OgogICAgICAgICByZXR1cm4gc2VsZi53ZWJkcml2ZXIuZmluZF9lbGVtZW50c19ieV9jc3Nfc2Vs
ZWN0b3Ioc2VsZWN0b3IpCiAKKyAgICBkZWYgZWxlbWVudHNfYnlfc2VsZWN0b3JfYW5kX2ZyYW1l
KHNlbGYsIGVsZW1lbnRfc2VsZWN0b3IsIGZyYW1lKToKKyAgICAgICAgcmV0dXJuIHNlbGYud2Vi
ZHJpdmVyLmZpbmRfZWxlbWVudHNfYnlfY3NzX3NlbGVjdG9yKGVsZW1lbnRfc2VsZWN0b3IpCisK
IAogY2xhc3MgU2VsZW5pdW1DbGlja1Byb3RvY29sUGFydChDbGlja1Byb3RvY29sUGFydCk6CiAg
ICAgZGVmIHNldHVwKHNlbGYpOgpAQCAtMTMzLDYgKzE2MCw3IEBAIGNsYXNzIFNlbGVuaXVtQ2xp
Y2tQcm90b2NvbFBhcnQoQ2xpY2tQcm90b2NvbFBhcnQpOgogICAgIGRlZiBlbGVtZW50KHNlbGYs
IGVsZW1lbnQpOgogICAgICAgICByZXR1cm4gZWxlbWVudC5jbGljaygpCiAKKwogY2xhc3MgU2Vs
ZW5pdW1TZW5kS2V5c1Byb3RvY29sUGFydChTZW5kS2V5c1Byb3RvY29sUGFydCk6CiAgICAgZGVm
IHNldHVwKHNlbGYpOgogICAgICAgICBzZWxmLndlYmRyaXZlciA9IHNlbGYucGFyZW50LndlYmRy
aXZlcgpAQCAtMTQxLDYgKzE2OSwxNCBAQCBjbGFzcyBTZWxlbml1bVNlbmRLZXlzUHJvdG9jb2xQ
YXJ0KFNlbmRLZXlzUHJvdG9jb2xQYXJ0KToKICAgICAgICAgcmV0dXJuIGVsZW1lbnQuc2VuZF9r
ZXlzKGtleXMpCiAKIAorY2xhc3MgU2VsZW5pdW1BY3Rpb25TZXF1ZW5jZVByb3RvY29sUGFydChB
Y3Rpb25TZXF1ZW5jZVByb3RvY29sUGFydCk6CisgICAgZGVmIHNldHVwKHNlbGYpOgorICAgICAg
ICBzZWxmLndlYmRyaXZlciA9IHNlbGYucGFyZW50LndlYmRyaXZlcgorCisgICAgZGVmIHNlbmRf
YWN0aW9ucyhzZWxmLCBhY3Rpb25zKToKKyAgICAgICAgc2VsZi53ZWJkcml2ZXIuZXhlY3V0ZShD
b21tYW5kLlczQ19BQ1RJT05TLCB7ImFjdGlvbnMiOiBhY3Rpb25zfSkKKworCiBjbGFzcyBTZWxl
bml1bVRlc3REcml2ZXJQcm90b2NvbFBhcnQoVGVzdERyaXZlclByb3RvY29sUGFydCk6CiAgICAg
ZGVmIHNldHVwKHNlbGYpOgogICAgICAgICBzZWxmLndlYmRyaXZlciA9IHNlbGYucGFyZW50Lndl
YmRyaXZlcgpAQCAtMTYxLDcgKzE5Nyw4IEBAIGNsYXNzIFNlbGVuaXVtUHJvdG9jb2woUHJvdG9j
b2wpOgogICAgICAgICAgICAgICAgICAgU2VsZW5pdW1TZWxlY3RvclByb3RvY29sUGFydCwKICAg
ICAgICAgICAgICAgICAgIFNlbGVuaXVtQ2xpY2tQcm90b2NvbFBhcnQsCiAgICAgICAgICAgICAg
ICAgICBTZWxlbml1bVNlbmRLZXlzUHJvdG9jb2xQYXJ0LAotICAgICAgICAgICAgICAgICAgU2Vs
ZW5pdW1UZXN0RHJpdmVyUHJvdG9jb2xQYXJ0XQorICAgICAgICAgICAgICAgICAgU2VsZW5pdW1U
ZXN0RHJpdmVyUHJvdG9jb2xQYXJ0LAorICAgICAgICAgICAgICAgICAgU2VsZW5pdW1BY3Rpb25T
ZXF1ZW5jZVByb3RvY29sUGFydF0KIAogICAgIGRlZiBfX2luaXRfXyhzZWxmLCBleGVjdXRvciwg
YnJvd3NlciwgY2FwYWJpbGl0aWVzLCAqKmt3YXJncyk6CiAgICAgICAgIGRvX2RlbGF5ZWRfaW1w
b3J0cygpCkBAIC0xNzksOSArMjE2LDYgQEAgY2xhc3MgU2VsZW5pdW1Qcm90b2NvbChQcm90b2Nv
bCk6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgcmVzb2x2ZV9pcD1GYWxzZSksCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZXNpcmVkX2NhcGFiaWxpdGllcz1zZWxmLmNh
cGFiaWxpdGllcykKIAotICAgIGRlZiBhZnRlcl9jb25lY3Qoc2VsZik6Ci0gICAgICAgIHBhc3MK
LQogICAgIGRlZiB0ZWFyZG93bihzZWxmKToKICAgICAgICAgc2VsZi5sb2dnZXIuZGVidWcoIkhh
bmdpbmcgdXAgb24gU2VsZW5pdW0gc2Vzc2lvbiIpCiAgICAgICAgIHRyeToKQEAgLTIwMywzNSAr
MjM3LDE3IEBAIGNsYXNzIFNlbGVuaXVtUHJvdG9jb2woUHJvdG9jb2wpOgogICAgICAgICBzZWxm
LnRlc3RoYXJuZXNzLmxvYWRfcnVubmVyKHNlbGYuZXhlY3V0b3IubGFzdF9lbnZpcm9ubWVudFsi
cHJvdG9jb2wiXSkKIAogCi1jbGFzcyBTZWxlbml1bVJ1bihvYmplY3QpOgotICAgIGRlZiBfX2lu
aXRfXyhzZWxmLCBmdW5jLCBwcm90b2NvbCwgdXJsLCB0aW1lb3V0KToKLSAgICAgICAgc2VsZi5m
dW5jID0gZnVuYwotICAgICAgICBzZWxmLnJlc3VsdCA9IE5vbmUKLSAgICAgICAgc2VsZi5wcm90
b2NvbCA9IHByb3RvY29sCi0gICAgICAgIHNlbGYudXJsID0gdXJsCi0gICAgICAgIHNlbGYudGlt
ZW91dCA9IHRpbWVvdXQKLSAgICAgICAgc2VsZi5yZXN1bHRfZmxhZyA9IHRocmVhZGluZy5FdmVu
dCgpCi0KLSAgICBkZWYgcnVuKHNlbGYpOgorY2xhc3MgU2VsZW5pdW1SdW4oVGltZWRSdW5uZXIp
OgorICAgIGRlZiBzZXRfdGltZW91dChzZWxmKToKICAgICAgICAgdGltZW91dCA9IHNlbGYudGlt
ZW91dAogCiAgICAgICAgIHRyeToKLSAgICAgICAgICAgIHNlbGYucHJvdG9jb2wuYmFzZS5zZXRf
dGltZW91dCgodGltZW91dCArIGV4dHJhX3RpbWVvdXQpKQorICAgICAgICAgICAgc2VsZi5wcm90
b2NvbC5iYXNlLnNldF90aW1lb3V0KHRpbWVvdXQgKyBzZWxmLmV4dHJhX3RpbWVvdXQpCiAgICAg
ICAgIGV4Y2VwdCBleGNlcHRpb25zLkVycm9ySW5SZXNwb25zZUV4Y2VwdGlvbjoKICAgICAgICAg
ICAgIHNlbGYubG9nZ2VyLmVycm9yKCJMb3N0IFdlYkRyaXZlciBjb25uZWN0aW9uIikKICAgICAg
ICAgICAgIHJldHVybiBTdG9wCiAKLSAgICAgICAgZXhlY3V0b3IgPSB0aHJlYWRpbmcuVGhyZWFk
KHRhcmdldD1zZWxmLl9ydW4pCi0gICAgICAgIGV4ZWN1dG9yLnN0YXJ0KCkKLQotICAgICAgICBm
bGFnID0gc2VsZi5yZXN1bHRfZmxhZy53YWl0KHRpbWVvdXQgKyAyICogZXh0cmFfdGltZW91dCkK
LSAgICAgICAgaWYgc2VsZi5yZXN1bHQgaXMgTm9uZToKLSAgICAgICAgICAgIGFzc2VydCBub3Qg
ZmxhZwotICAgICAgICAgICAgc2VsZi5yZXN1bHQgPSBGYWxzZSwgKCJFWFRFUk5BTC1USU1FT1VU
IiwgTm9uZSkKLQotICAgICAgICByZXR1cm4gc2VsZi5yZXN1bHQKLQotICAgIGRlZiBfcnVuKHNl
bGYpOgorICAgIGRlZiBydW5fZnVuYyhzZWxmKToKICAgICAgICAgdHJ5OgogICAgICAgICAgICAg
c2VsZi5yZXN1bHQgPSBUcnVlLCBzZWxmLmZ1bmMoc2VsZi5wcm90b2NvbCwgc2VsZi51cmwsIHNl
bGYudGltZW91dCkKICAgICAgICAgZXhjZXB0IGV4Y2VwdGlvbnMuVGltZW91dEV4Y2VwdGlvbjoK
QEAgLTIzOSwxMSArMjU1LDExIEBAIGNsYXNzIFNlbGVuaXVtUnVuKG9iamVjdCk6CiAgICAgICAg
IGV4Y2VwdCAoc29ja2V0LnRpbWVvdXQsIGV4Y2VwdGlvbnMuRXJyb3JJblJlc3BvbnNlRXhjZXB0
aW9uKToKICAgICAgICAgICAgIHNlbGYucmVzdWx0ID0gRmFsc2UsICgiQ1JBU0giLCBOb25lKQog
ICAgICAgICBleGNlcHQgRXhjZXB0aW9uIGFzIGU6Ci0gICAgICAgICAgICBtZXNzYWdlID0gZ2V0
YXR0cihlLCAibWVzc2FnZSIsICIiKQorICAgICAgICAgICAgbWVzc2FnZSA9IHN0cihnZXRhdHRy
KGUsICJtZXNzYWdlIiwgIiIpKQogICAgICAgICAgICAgaWYgbWVzc2FnZToKICAgICAgICAgICAg
ICAgICBtZXNzYWdlICs9ICJcbiIKICAgICAgICAgICAgIG1lc3NhZ2UgKz0gdHJhY2ViYWNrLmZv
cm1hdF9leGMoZSkKLSAgICAgICAgICAgIHNlbGYucmVzdWx0ID0gRmFsc2UsICgiSU5URVJOQUwt
RVJST1IiLCBlKQorICAgICAgICAgICAgc2VsZi5yZXN1bHQgPSBGYWxzZSwgKCJJTlRFUk5BTC1F
UlJPUiIsIG1lc3NhZ2UpCiAgICAgICAgIGZpbmFsbHk6CiAgICAgICAgICAgICBzZWxmLnJlc3Vs
dF9mbGFnLnNldCgpCiAKQEAgLTI1OSw4ICsyNzUsNiBAQCBjbGFzcyBTZWxlbml1bVRlc3RoYXJu
ZXNzRXhlY3V0b3IoVGVzdGhhcm5lc3NFeGVjdXRvcik6CiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgdGltZW91dF9tdWx0aXBsaWVyPXRpbWVvdXRfbXVsdGlwbGllciwKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWJ1Z19pbmZvPWRlYnVnX2luZm8p
CiAgICAgICAgIHNlbGYucHJvdG9jb2wgPSBTZWxlbml1bVByb3RvY29sKHNlbGYsIGJyb3dzZXIs
IGNhcGFiaWxpdGllcykKLSAgICAgICAgd2l0aCBvcGVuKG9zLnBhdGguam9pbihoZXJlLCAidGVz
dGhhcm5lc3Nfd2ViZHJpdmVyLmpzIikpIGFzIGY6Ci0gICAgICAgICAgICBzZWxmLnNjcmlwdCA9
IGYucmVhZCgpCiAgICAgICAgIHdpdGggb3Blbihvcy5wYXRoLmpvaW4oaGVyZSwgInRlc3RoYXJu
ZXNzX3dlYmRyaXZlcl9yZXN1bWUuanMiKSkgYXMgZjoKICAgICAgICAgICAgIHNlbGYuc2NyaXB0
X3Jlc3VtZSA9IGYucmVhZCgpCiAgICAgICAgIHNlbGYuY2xvc2VfYWZ0ZXJfZG9uZSA9IGNsb3Nl
X2FmdGVyX2RvbmUKQEAgLTI3NiwxMCArMjkwLDEyIEBAIGNsYXNzIFNlbGVuaXVtVGVzdGhhcm5l
c3NFeGVjdXRvcihUZXN0aGFybmVzc0V4ZWN1dG9yKToKICAgICBkZWYgZG9fdGVzdChzZWxmLCB0
ZXN0KToKICAgICAgICAgdXJsID0gc2VsZi50ZXN0X3VybCh0ZXN0KQogCi0gICAgICAgIHN1Y2Nl
c3MsIGRhdGEgPSBTZWxlbml1bVJ1bihzZWxmLmRvX3Rlc3RoYXJuZXNzLAorICAgICAgICBzdWNj
ZXNzLCBkYXRhID0gU2VsZW5pdW1SdW4oc2VsZi5sb2dnZXIsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBzZWxmLmRvX3Rlc3RoYXJuZXNzLAogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgc2VsZi5wcm90b2NvbCwKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHVybCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRl
c3QudGltZW91dCAqIHNlbGYudGltZW91dF9tdWx0aXBsaWVyKS5ydW4oKQorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgdGVzdC50aW1lb3V0ICogc2VsZi50aW1lb3V0X211bHRp
cGxpZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmV4dHJhX3Rp
bWVvdXQpLnJ1bigpCiAKICAgICAgICAgaWYgc3VjY2VzczoKICAgICAgICAgICAgIHJldHVybiBz
ZWxmLmNvbnZlcnRfcmVzdWx0KHRlc3QsIGRhdGEpCkBAIC0yODcsMjEgKzMwMywxOSBAQCBjbGFz
cyBTZWxlbml1bVRlc3RoYXJuZXNzRXhlY3V0b3IoVGVzdGhhcm5lc3NFeGVjdXRvcik6CiAgICAg
ICAgIHJldHVybiAodGVzdC5yZXN1bHRfY2xzKCpkYXRhKSwgW10pCiAKICAgICBkZWYgZG9fdGVz
dGhhcm5lc3Moc2VsZiwgcHJvdG9jb2wsIHVybCwgdGltZW91dCk6Ci0gICAgICAgIGZvcm1hdF9t
YXAgPSB7ImFic191cmwiOiB1cmwsCi0gICAgICAgICAgICAgICAgICAgICAgInVybCI6IHN0cmlw
X3NlcnZlcih1cmwpLAotICAgICAgICAgICAgICAgICAgICAgICJ3aW5kb3dfaWQiOiBzZWxmLndp
bmRvd19pZCwKLSAgICAgICAgICAgICAgICAgICAgICAidGltZW91dF9tdWx0aXBsaWVyIjogc2Vs
Zi50aW1lb3V0X211bHRpcGxpZXIsCi0gICAgICAgICAgICAgICAgICAgICAgInRpbWVvdXQiOiB0
aW1lb3V0ICogMTAwMH0KKyAgICAgICAgZm9ybWF0X21hcCA9IHsidXJsIjogc3RyaXBfc2VydmVy
KHVybCl9CiAKICAgICAgICAgcGFyZW50X3dpbmRvdyA9IHByb3RvY29sLnRlc3RoYXJuZXNzLmNs
b3NlX29sZF93aW5kb3dzKCkKICAgICAgICAgIyBOb3cgc3RhcnQgdGhlIHRlc3QgaGFybmVzcwot
ICAgICAgICBwcm90b2NvbC5iYXNlLmV4ZWN1dGVfc2NyaXB0KHNlbGYuc2NyaXB0ICUgZm9ybWF0
X21hcCkKLSAgICAgICAgdGVzdF93aW5kb3cgPSBwcm90b2NvbC50ZXN0aGFybmVzcy5nZXRfdGVz
dF93aW5kb3cod2ViZHJpdmVyLCBwYXJlbnRfd2luZG93KQotCisgICAgICAgIHByb3RvY29sLmJh
c2UuZXhlY3V0ZV9zY3JpcHQoIndpbmRvdy5vcGVuKCdhYm91dDpibGFuaycsICclcycsICdub29w
ZW5lcicpIiAlIHNlbGYud2luZG93X2lkKQorICAgICAgICB0ZXN0X3dpbmRvdyA9IHByb3RvY29s
LnRlc3RoYXJuZXNzLmdldF90ZXN0X3dpbmRvdyhzZWxmLndpbmRvd19pZCwgcGFyZW50X3dpbmRv
dywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgdGltZW91dD01KnNlbGYudGltZW91dF9tdWx0aXBsaWVyKQorICAgICAgICBzZWxmLnBy
b3RvY29sLmJhc2Uuc2V0X3dpbmRvdyh0ZXN0X3dpbmRvdykKKyAgICAgICAgcHJvdG9jb2wud2Vi
ZHJpdmVyLmdldCh1cmwpCiAgICAgICAgIGhhbmRsZXIgPSBDYWxsYmFja0hhbmRsZXIoc2VsZi5s
b2dnZXIsIHByb3RvY29sLCB0ZXN0X3dpbmRvdykKICAgICAgICAgd2hpbGUgVHJ1ZToKICAgICAg
ICAgICAgIHJlc3VsdCA9IHByb3RvY29sLmJhc2UuZXhlY3V0ZV9zY3JpcHQoCi0gICAgICAgICAg
ICAgICAgc2VsZi5zY3JpcHRfcmVzdW1lICUgZm9ybWF0X21hcCwgYXN5bmM9VHJ1ZSkKKyAgICAg
ICAgICAgICAgICBzZWxmLnNjcmlwdF9yZXN1bWUgJSBmb3JtYXRfbWFwLCBhc3luY2hyb25vdXM9
VHJ1ZSkKICAgICAgICAgICAgIGRvbmUsIHJ2ID0gaGFuZGxlcihyZXN1bHQpCiAgICAgICAgICAg
ICBpZiBkb25lOgogICAgICAgICAgICAgICAgIGJyZWFrCkBAIC0zMjUsMzIgKzMzOSw0MCBAQCBj
bGFzcyBTZWxlbml1bVJlZlRlc3RFeGVjdXRvcihSZWZUZXN0RXhlY3V0b3IpOgogICAgICAgICBz
ZWxmLmNsb3NlX2FmdGVyX2RvbmUgPSBjbG9zZV9hZnRlcl9kb25lCiAgICAgICAgIHNlbGYuaGFz
X3dpbmRvdyA9IEZhbHNlCiAKLSAgICAgICAgd2l0aCBvcGVuKG9zLnBhdGguam9pbihoZXJlLCAi
cmVmdGVzdC5qcyIpKSBhcyBmOgotICAgICAgICAgICAgc2VsZi5zY3JpcHQgPSBmLnJlYWQoKQog
ICAgICAgICB3aXRoIG9wZW4ob3MucGF0aC5qb2luKGhlcmUsICJyZWZ0ZXN0LXdhaXRfd2ViZHJp
dmVyLmpzIikpIGFzIGY6CiAgICAgICAgICAgICBzZWxmLndhaXRfc2NyaXB0ID0gZi5yZWFkKCkK
IAorICAgIGRlZiByZXNldChzZWxmKToKKyAgICAgICAgc2VsZi5pbXBsZW1lbnRhdGlvbi5yZXNl
dCgpCisKICAgICBkZWYgaXNfYWxpdmUoc2VsZik6CiAgICAgICAgIHJldHVybiBzZWxmLnByb3Rv
Y29sLmlzX2FsaXZlKCkKIAogICAgIGRlZiBkb190ZXN0KHNlbGYsIHRlc3QpOgogICAgICAgICBz
ZWxmLmxvZ2dlci5pbmZvKCJUZXN0IHJlcXVpcmVzIE9TLWxldmVsIHdpbmRvdyBmb2N1cyIpCiAK
LSAgICAgICAgc2VsZi5wcm90b2NvbC53ZWJkcml2ZXIuc2V0X3dpbmRvd19zaXplKDYwMCwgNjAw
KQorICAgICAgICB3aWR0aF9vZmZzZXQsIGhlaWdodF9vZmZzZXQgPSBzZWxmLnByb3RvY29sLndl
YmRyaXZlci5leGVjdXRlX3NjcmlwdCgKKyAgICAgICAgICAgICIiInJldHVybiBbd2luZG93Lm91
dGVyV2lkdGggLSB3aW5kb3cuaW5uZXJXaWR0aCwKKyAgICAgICAgICAgICAgICAgICAgICAgd2lu
ZG93Lm91dGVySGVpZ2h0IC0gd2luZG93LmlubmVySGVpZ2h0XTsiIiIKKyAgICAgICAgKQorICAg
ICAgICBzZWxmLnByb3RvY29sLndlYmRyaXZlci5zZXRfd2luZG93X3NpemUoMCwgMCkKKyAgICAg
ICAgc2VsZi5wcm90b2NvbC53ZWJkcml2ZXIuc2V0X3dpbmRvd19wb3NpdGlvbig4MDAgKyB3aWR0
aF9vZmZzZXQsIDYwMCArIGhlaWdodF9vZmZzZXQpCiAKICAgICAgICAgcmVzdWx0ID0gc2VsZi5p
bXBsZW1lbnRhdGlvbi5ydW5fdGVzdCh0ZXN0KQogCiAgICAgICAgIHJldHVybiBzZWxmLmNvbnZl
cnRfcmVzdWx0KHRlc3QsIHJlc3VsdCkKIAogICAgIGRlZiBzY3JlZW5zaG90KHNlbGYsIHRlc3Qs
IHZpZXdwb3J0X3NpemUsIGRwaSk6Ci0gICAgICAgICMgaHR0cHM6Ly9naXRodWIuY29tL3czYy93
cHRydW5uZXIvaXNzdWVzLzE2NgorICAgICAgICAjIGh0dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxh
dGZvcm0tdGVzdHMvd3B0L2lzc3Vlcy83MTM1CiAgICAgICAgIGFzc2VydCB2aWV3cG9ydF9zaXpl
IGlzIE5vbmUKICAgICAgICAgYXNzZXJ0IGRwaSBpcyBOb25lCiAKLSAgICAgICAgcmV0dXJuIFNl
bGVuaXVtUnVuKHNlbGYuX3NjcmVlbnNob3QsCisgICAgICAgIHJldHVybiBTZWxlbml1bVJ1bihz
ZWxmLmxvZ2dlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuX3NjcmVlbnNob3Qs
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnByb3RvY29sLAogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgc2VsZi50ZXN0X3VybCh0ZXN0KSwKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHRlc3QudGltZW91dCkucnVuKCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIHRl
c3QudGltZW91dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuZXh0cmFfdGltZW91
dCkucnVuKCkKIAogICAgIGRlZiBfc2NyZWVuc2hvdChzZWxmLCBwcm90b2NvbCwgdXJsLCB0aW1l
b3V0KToKICAgICAgICAgd2ViZHJpdmVyID0gcHJvdG9jb2wud2ViZHJpdmVyCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1
bm5lci93cHRydW5uZXIvZXhlY3V0b3JzL2V4ZWN1dG9yc2Vydm8ucHkgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIv
ZXhlY3V0b3JzL2V4ZWN1dG9yc2Vydm8ucHkKaW5kZXggY2FhOTcxNDU1NjBlYzFjMWQwZTc4ZDM4
Y2RkN2E4NTdjMzk3MmQ0MC4uMzY1YTFhMDg2NTNiMDE3NWZjNGRmNDA1MGViOWQ5YWFmOGIxZDM0
YyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2V4ZWN1dG9ycy9leGVjdXRvcnNlcnZvLnB5Cisr
KyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0
cnVubmVyL3dwdHJ1bm5lci9leGVjdXRvcnMvZXhlY3V0b3JzZXJ2by5weQpAQCAtMSwzICsxLDQg
QEAKK2Zyb20gX19mdXR1cmVfXyBpbXBvcnQgcHJpbnRfZnVuY3Rpb24KIGltcG9ydCBiYXNlNjQK
IGltcG9ydCBqc29uCiBpbXBvcnQgb3MKQEAgLTgsNyArOSw3IEBAIGltcG9ydCB1dWlkCiAKIGZy
b20gbW96cHJvY2VzcyBpbXBvcnQgUHJvY2Vzc0hhbmRsZXIKIAotZnJvbSBzZXJ2ZS5zZXJ2ZSBp
bXBvcnQgbWFrZV9ob3N0c19maWxlCitmcm9tIHRvb2xzLnNlcnZlLnNlcnZlIGltcG9ydCBtYWtl
X2hvc3RzX2ZpbGUKIAogZnJvbSAuYmFzZSBpbXBvcnQgKENvbm5lY3Rpb25sZXNzUHJvdG9jb2ws
CiAgICAgICAgICAgICAgICAgICAgUmVmVGVzdEltcGxlbWVudGF0aW9uLApAQCAtMjMsNyArMjQs
NiBAQCBmcm9tIC4ud2ViZHJpdmVyX3NlcnZlciBpbXBvcnQgU2Vydm9Ecml2ZXJTZXJ2ZXIKIHB5
dGVzdHJ1bm5lciA9IE5vbmUKIHdlYmRyaXZlciA9IE5vbmUKIAotZXh0cmFfdGltZW91dCA9IDUg
ICMgc2Vjb25kcwogCiBkZWYgd3JpdGVfaG9zdHNfZmlsZShjb25maWcpOgogICAgIGhvc3RzX2Zk
LCBob3N0c19wYXRoID0gdGVtcGZpbGUubWtzdGVtcCgpCkBAIC0xMjIsNyArMTIyLDcgQEAgY2xh
c3MgU2Vydm9UZXN0aGFybmVzc0V4ZWN1dG9yKFByb2Nlc3NUZXN0RXhlY3V0b3IpOgogICAgICAg
ICAgICAgICAgICAgICBzZWxmLnByb2Mud2FpdCgpCiAgICAgICAgICAgICAgICAgZWxzZToKICAg
ICAgICAgICAgICAgICAgICAgc2VsZi5wcm9jLmtpbGwoKQotICAgICAgICBleGNlcHQgS2V5Ym9h
cmRJbnRlcnJ1cHQ6CisgICAgICAgIGV4Y2VwdDogICMgbm9xYQogICAgICAgICAgICAgc2VsZi5w
cm9jLmtpbGwoKQogICAgICAgICAgICAgcmFpc2UKIApAQCAtMTM2LDcgKzEzNiw3IEBAIGNsYXNz
IFNlcnZvVGVzdGhhcm5lc3NFeGVjdXRvcihQcm9jZXNzVGVzdEV4ZWN1dG9yKToKICAgICAgICAg
ICAgIHNlbGYucmVzdWx0X2ZsYWcuc2V0KCkKICAgICAgICAgZWxzZToKICAgICAgICAgICAgIGlm
IHNlbGYuaW50ZXJhY3RpdmU6Ci0gICAgICAgICAgICAgICAgcHJpbnQgbGluZQorICAgICAgICAg
ICAgICAgIHByaW50KGxpbmUpCiAgICAgICAgICAgICBlbHNlOgogICAgICAgICAgICAgICAgIHNl
bGYubG9nZ2VyLnByb2Nlc3Nfb3V0cHV0KHNlbGYucHJvYy5waWQsCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgbGluZSwKQEAgLTE4MCw2ICsxODAsOSBAQCBjbGFz
cyBTZXJ2b1JlZlRlc3RFeGVjdXRvcihQcm9jZXNzVGVzdEV4ZWN1dG9yKToKICAgICAgICAgc2Vs
Zi50ZW1wZGlyID0gdGVtcGZpbGUubWtkdGVtcCgpCiAgICAgICAgIHNlbGYuaG9zdHNfcGF0aCA9
IHdyaXRlX2hvc3RzX2ZpbGUoc2VydmVyX2NvbmZpZykKIAorICAgIGRlZiByZXNldChzZWxmKToK
KyAgICAgICAgc2VsZi5pbXBsZW1lbnRhdGlvbi5yZXNldCgpCisKICAgICBkZWYgdGVhcmRvd24o
c2VsZik6CiAgICAgICAgIHRyeToKICAgICAgICAgICAgIG9zLnVubGluayhzZWxmLmhvc3RzX3Bh
dGgpCkBAIC0yNjcsNyArMjcwLDcgQEAgY2xhc3MgU2Vydm9SZWZUZXN0RXhlY3V0b3IoUHJvY2Vz
c1Rlc3RFeGVjdXRvcik6CiAgICAgZGVmIG9uX291dHB1dChzZWxmLCBsaW5lKToKICAgICAgICAg
bGluZSA9IGxpbmUuZGVjb2RlKCJ1dGY4IiwgInJlcGxhY2UiKQogICAgICAgICBpZiBzZWxmLmlu
dGVyYWN0aXZlOgotICAgICAgICAgICAgcHJpbnQgbGluZQorICAgICAgICAgICAgcHJpbnQobGlu
ZSkKICAgICAgICAgZWxzZToKICAgICAgICAgICAgIHNlbGYubG9nZ2VyLnByb2Nlc3Nfb3V0cHV0
KHNlbGYucHJvYy5waWQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBs
aW5lLApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2V4ZWN1dG9ycy9leGVjdXRvcnNlcnZvZHJp
dmVyLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy93cHRydW5uZXIvd3B0cnVubmVyL2V4ZWN1dG9ycy9leGVjdXRvcnNlcnZvZHJpdmVyLnB5Cmlu
ZGV4IGQwMTVlNzdiOGM3MmI0ZjdkMWRjYzMyZjZkMWM1NjEzZjkwYjk1OWIuLmJkMzc3ZDBkNTk1
MGNhOGQ0NjlmMTMyMGNkYzA3MmM4ZGZmMTBiYjIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9l
eGVjdXRvcnMvZXhlY3V0b3JzZXJ2b2RyaXZlci5weQorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvZXhlY3V0
b3JzL2V4ZWN1dG9yc2Vydm9kcml2ZXIucHkKQEAgLTEsOCArMSw2IEBACiBpbXBvcnQganNvbgog
aW1wb3J0IG9zCiBpbXBvcnQgc29ja2V0Ci1pbXBvcnQgdGhyZWFkaW5nCi1pbXBvcnQgdGltZQog
aW1wb3J0IHRyYWNlYmFjawogCiBmcm9tIC5iYXNlIGltcG9ydCAoUHJvdG9jb2wsCkBAIC0xMCw2
ICs4LDcgQEAgZnJvbSAuYmFzZSBpbXBvcnQgKFByb3RvY29sLAogICAgICAgICAgICAgICAgICAg
IFJlZlRlc3RFeGVjdXRvciwKICAgICAgICAgICAgICAgICAgICBSZWZUZXN0SW1wbGVtZW50YXRp
b24sCiAgICAgICAgICAgICAgICAgICAgVGVzdGhhcm5lc3NFeGVjdXRvciwKKyAgICAgICAgICAg
ICAgICAgICBUaW1lZFJ1bm5lciwKICAgICAgICAgICAgICAgICAgICBzdHJpcF9zZXJ2ZXIpCiBm
cm9tIC4udGVzdHJ1bm5lciBpbXBvcnQgU3RvcAogZnJvbSAuLndlYmRyaXZlcl9zZXJ2ZXIgaW1w
b3J0IHdhaXRfZm9yX3NlcnZpY2UKQEAgLTE5LDggKzE4LDYgQEAgU2Vydm9Db21tYW5kRXh0ZW5z
aW9ucyA9IE5vbmUKIAogaGVyZSA9IG9zLnBhdGguam9pbihvcy5wYXRoLnNwbGl0KF9fZmlsZV9f
KVswXSkKIAotZXh0cmFfdGltZW91dCA9IDUKLQogCiBkZWYgZG9fZGVsYXllZF9pbXBvcnRzKCk6
CiAgICAgZ2xvYmFsIHdlYmRyaXZlcgpAQCAtNjcsNyArNjQsNyBAQCBkZWYgcGFyc2VfcHJlZl92
YWx1ZSh2YWx1ZSk6CiAKIAogY2xhc3MgU2Vydm9CYXNlUHJvdG9jb2xQYXJ0KEJhc2VQcm90b2Nv
bFBhcnQpOgotICAgIGRlZiBleGVjdXRlX3NjcmlwdChzZWxmLCBzY3JpcHQsIGFzeW5jPUZhbHNl
KToKKyAgICBkZWYgZXhlY3V0ZV9zY3JpcHQoc2VsZiwgc2NyaXB0LCBhc3luY2hyb25vdXM9RmFs
c2UpOgogICAgICAgICBwYXNzCiAKICAgICBkZWYgc2V0X3RpbWVvdXQoc2VsZiwgdGltZW91dCk6
CkBAIC0xMzEsMjkgKzEyOCwxMyBAQCBjbGFzcyBTZXJ2b1dlYkRyaXZlclByb3RvY29sKFByb3Rv
Y29sKToKICAgICAgICAgICAgICAgICBicmVhawogCiAKLWNsYXNzIFNlcnZvV2ViRHJpdmVyUnVu
KG9iamVjdCk6Ci0gICAgZGVmIF9faW5pdF9fKHNlbGYsIGZ1bmMsIHNlc3Npb24sIHVybCwgdGlt
ZW91dCwgY3VycmVudF90aW1lb3V0PU5vbmUpOgotICAgICAgICBzZWxmLmZ1bmMgPSBmdW5jCi0g
ICAgICAgIHNlbGYucmVzdWx0ID0gTm9uZQotICAgICAgICBzZWxmLnNlc3Npb24gPSBzZXNzaW9u
Ci0gICAgICAgIHNlbGYudXJsID0gdXJsCi0gICAgICAgIHNlbGYudGltZW91dCA9IHRpbWVvdXQK
LSAgICAgICAgc2VsZi5yZXN1bHRfZmxhZyA9IHRocmVhZGluZy5FdmVudCgpCi0KLSAgICBkZWYg
cnVuKHNlbGYpOgotICAgICAgICBleGVjdXRvciA9IHRocmVhZGluZy5UaHJlYWQodGFyZ2V0PXNl
bGYuX3J1bikKLSAgICAgICAgZXhlY3V0b3Iuc3RhcnQoKQotCi0gICAgICAgIGZsYWcgPSBzZWxm
LnJlc3VsdF9mbGFnLndhaXQoc2VsZi50aW1lb3V0ICsgZXh0cmFfdGltZW91dCkKLSAgICAgICAg
aWYgc2VsZi5yZXN1bHQgaXMgTm9uZToKLSAgICAgICAgICAgIGFzc2VydCBub3QgZmxhZwotICAg
ICAgICAgICAgc2VsZi5yZXN1bHQgPSBGYWxzZSwgKCJFWFRFUk5BTC1USU1FT1VUIiwgTm9uZSkK
LQotICAgICAgICByZXR1cm4gc2VsZi5yZXN1bHQKK2NsYXNzIFNlcnZvV2ViRHJpdmVyUnVuKFRp
bWVkUnVubmVyKToKKyAgICBkZWYgc2V0X3RpbWVvdXQoc2VsZik6CisgICAgICAgIHBhc3MKIAot
ICAgIGRlZiBfcnVuKHNlbGYpOgorICAgIGRlZiBydW5fZnVuYyhzZWxmKToKICAgICAgICAgdHJ5
OgotICAgICAgICAgICAgc2VsZi5yZXN1bHQgPSBUcnVlLCBzZWxmLmZ1bmMoc2VsZi5zZXNzaW9u
LCBzZWxmLnVybCwgc2VsZi50aW1lb3V0KQorICAgICAgICAgICAgc2VsZi5yZXN1bHQgPSBUcnVl
LCBzZWxmLmZ1bmMoc2VsZi5wcm90b2NvbC5zZXNzaW9uLCBzZWxmLnVybCwgc2VsZi50aW1lb3V0
KQogICAgICAgICBleGNlcHQgd2ViZHJpdmVyLlRpbWVvdXRFeGNlcHRpb246CiAgICAgICAgICAg
ICBzZWxmLnJlc3VsdCA9IEZhbHNlLCAoIkVYVEVSTkFMLVRJTUVPVVQiLCBOb25lKQogICAgICAg
ICBleGNlcHQgKHNvY2tldC50aW1lb3V0LCBJT0Vycm9yKToKQEAgLTE2OCwxNSArMTQ5LDkgQEAg
Y2xhc3MgU2Vydm9XZWJEcml2ZXJSdW4ob2JqZWN0KToKICAgICAgICAgICAgIHNlbGYucmVzdWx0
X2ZsYWcuc2V0KCkKIAogCi1kZWYgdGltZW91dF9mdW5jKHRpbWVvdXQpOgotICAgIGlmIHRpbWVv
dXQ6Ci0gICAgICAgIHQwID0gdGltZS50aW1lKCkKLSAgICAgICAgcmV0dXJuIGxhbWJkYTogdGlt
ZS50aW1lKCkgLSB0MCA+IHRpbWVvdXQgKyBleHRyYV90aW1lb3V0Ci0gICAgZWxzZToKLSAgICAg
ICAgcmV0dXJuIGxhbWJkYTogRmFsc2UKLQotCiBjbGFzcyBTZXJ2b1dlYkRyaXZlclRlc3RoYXJu
ZXNzRXhlY3V0b3IoVGVzdGhhcm5lc3NFeGVjdXRvcik6CisgICAgc3VwcG9ydHNfdGVzdGRyaXZl
ciA9IFRydWUKKwogICAgIGRlZiBfX2luaXRfXyhzZWxmLCBicm93c2VyLCBzZXJ2ZXJfY29uZmln
LCB0aW1lb3V0X211bHRpcGxpZXI9MSwKICAgICAgICAgICAgICAgICAgY2xvc2VfYWZ0ZXJfZG9u
ZT1UcnVlLCBjYXBhYmlsaXRpZXM9Tm9uZSwgZGVidWdfaW5mbz1Ob25lLAogICAgICAgICAgICAg
ICAgICAqKmt3YXJncyk6CkBAIC0xOTYsNyArMTcxLDcgQEAgY2xhc3MgU2Vydm9XZWJEcml2ZXJU
ZXN0aGFybmVzc0V4ZWN1dG9yKFRlc3RoYXJuZXNzRXhlY3V0b3IpOgogICAgIGRlZiBkb190ZXN0
KHNlbGYsIHRlc3QpOgogICAgICAgICB1cmwgPSBzZWxmLnRlc3RfdXJsKHRlc3QpCiAKLSAgICAg
ICAgdGltZW91dCA9IHRlc3QudGltZW91dCAqIHNlbGYudGltZW91dF9tdWx0aXBsaWVyICsgZXh0
cmFfdGltZW91dAorICAgICAgICB0aW1lb3V0ID0gdGVzdC50aW1lb3V0ICogc2VsZi50aW1lb3V0
X211bHRpcGxpZXIgKyBzZWxmLmV4dHJhX3RpbWVvdXQKIAogICAgICAgICBpZiB0aW1lb3V0ICE9
IHNlbGYudGltZW91dDoKICAgICAgICAgICAgIHRyeToKQEAgLTIwNiwxMCArMTgxLDEyIEBAIGNs
YXNzIFNlcnZvV2ViRHJpdmVyVGVzdGhhcm5lc3NFeGVjdXRvcihUZXN0aGFybmVzc0V4ZWN1dG9y
KToKICAgICAgICAgICAgICAgICBzZWxmLmxvZ2dlci5lcnJvcigiTG9zdCB3ZWJkcml2ZXIgY29u
bmVjdGlvbiIpCiAgICAgICAgICAgICAgICAgcmV0dXJuIFN0b3AKIAotICAgICAgICBzdWNjZXNz
LCBkYXRhID0gU2Vydm9XZWJEcml2ZXJSdW4oc2VsZi5kb190ZXN0aGFybmVzcywKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYucHJvdG9jb2wuc2Vzc2lvbiwK
KyAgICAgICAgc3VjY2VzcywgZGF0YSA9IFNlcnZvV2ViRHJpdmVyUnVuKHNlbGYubG9nZ2VyLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5kb190ZXN0aGFy
bmVzcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYucHJv
dG9jb2wsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1cmwsCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aW1lb3V0KS5ydW4oKQor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGltZW91dCwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuZXh0cmFfdGltZW91dCku
cnVuKCkKIAogICAgICAgICBpZiBzdWNjZXNzOgogICAgICAgICAgICAgcmV0dXJuIHNlbGYuY29u
dmVydF9yZXN1bHQodGVzdCwgZGF0YSkKQEAgLTI1OCw2ICsyMzUsOSBAQCBjbGFzcyBTZXJ2b1dl
YkRyaXZlclJlZlRlc3RFeGVjdXRvcihSZWZUZXN0RXhlY3V0b3IpOgogICAgICAgICB3aXRoIG9w
ZW4ob3MucGF0aC5qb2luKGhlcmUsICJyZWZ0ZXN0LXdhaXRfd2ViZHJpdmVyLmpzIikpIGFzIGY6
CiAgICAgICAgICAgICBzZWxmLndhaXRfc2NyaXB0ID0gZi5yZWFkKCkKIAorICAgIGRlZiByZXNl
dChzZWxmKToKKyAgICAgICAgc2VsZi5pbXBsZW1lbnRhdGlvbi5yZXNldCgpCisKICAgICBkZWYg
aXNfYWxpdmUoc2VsZik6CiAgICAgICAgIHJldHVybiBzZWxmLnByb3RvY29sLmlzX2FsaXZlKCkK
IApAQCAtMjc3LDExICsyNTcsMTEgQEAgY2xhc3MgU2Vydm9XZWJEcml2ZXJSZWZUZXN0RXhlY3V0
b3IoUmVmVGVzdEV4ZWN1dG9yKToKICAgICAgICAgICAgIHJldHVybiB0ZXN0LnJlc3VsdF9jbHMo
IklOVEVSTkFMLUVSUk9SIiwgbWVzc2FnZSksIFtdCiAKICAgICBkZWYgc2NyZWVuc2hvdChzZWxm
LCB0ZXN0LCB2aWV3cG9ydF9zaXplLCBkcGkpOgotICAgICAgICAjIGh0dHBzOi8vZ2l0aHViLmNv
bS93M2Mvd3B0cnVubmVyL2lzc3Vlcy8xNjYKKyAgICAgICAgIyBodHRwczovL2dpdGh1Yi5jb20v
d2ViLXBsYXRmb3JtLXRlc3RzL3dwdC9pc3N1ZXMvNzEzNQogICAgICAgICBhc3NlcnQgdmlld3Bv
cnRfc2l6ZSBpcyBOb25lCiAgICAgICAgIGFzc2VydCBkcGkgaXMgTm9uZQogCi0gICAgICAgIHRp
bWVvdXQgPSAodGVzdC50aW1lb3V0ICogc2VsZi50aW1lb3V0X211bHRpcGxpZXIgKyBleHRyYV90
aW1lb3V0CisgICAgICAgIHRpbWVvdXQgPSAodGVzdC50aW1lb3V0ICogc2VsZi50aW1lb3V0X211
bHRpcGxpZXIgKyBzZWxmLmV4dHJhX3RpbWVvdXQKICAgICAgICAgICAgICAgICAgICBpZiBzZWxm
LmRlYnVnX2luZm8gaXMgTm9uZSBlbHNlIE5vbmUpCiAKICAgICAgICAgaWYgc2VsZi50aW1lb3V0
ICE9IHRpbWVvdXQ6CkBAIC0yOTIsMTAgKzI3MiwxMiBAQCBjbGFzcyBTZXJ2b1dlYkRyaXZlclJl
ZlRlc3RFeGVjdXRvcihSZWZUZXN0RXhlY3V0b3IpOgogICAgICAgICAgICAgICAgIHNlbGYubG9n
Z2VyLmVycm9yKCJMb3N0IHdlYmRyaXZlciBjb25uZWN0aW9uIikKICAgICAgICAgICAgICAgICBy
ZXR1cm4gU3RvcAogCi0gICAgICAgIHJldHVybiBTZXJ2b1dlYkRyaXZlclJ1bihzZWxmLl9zY3Jl
ZW5zaG90LAorICAgICAgICByZXR1cm4gU2Vydm9XZWJEcml2ZXJSdW4oc2VsZi5sb2dnZXIsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLl9zY3JlZW5zaG90LAogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5wcm90b2NvbC5zZXNzaW9uLAogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi50ZXN0X3VybCh0ZXN0KSwKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHRpbWVvdXQpLnJ1bigpCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICB0aW1lb3V0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgc2VsZi5leHRyYV90aW1lb3V0KS5ydW4oKQogCiAgICAgZGVmIF9zY3JlZW5zaG90KHNlbGYs
IHNlc3Npb24sIHVybCwgdGltZW91dCk6CiAgICAgICAgIHNlc3Npb24udXJsID0gdXJsCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3dwdHJ1bm5lci93cHRydW5uZXIvZXhlY3V0b3JzL2V4ZWN1dG9yd2ViZHJpdmVyLnB5IGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIv
d3B0cnVubmVyL2V4ZWN1dG9ycy9leGVjdXRvcndlYmRyaXZlci5weQpuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zOTM0
NmU4MDVkNzM1MDAwZTlmY2YyOGZjYWE3MmVjY2E4ZjM0ZjY4Ci0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5u
ZXIvd3B0cnVubmVyL2V4ZWN1dG9ycy9leGVjdXRvcndlYmRyaXZlci5weQpAQCAtMCwwICsxLDQ4
MCBAQAoraW1wb3J0IGpzb24KK2ltcG9ydCBvcworaW1wb3J0IHNvY2tldAoraW1wb3J0IHRocmVh
ZGluZworaW1wb3J0IHRpbWUKK2ltcG9ydCB0cmFjZWJhY2sKK2ltcG9ydCB1cmxwYXJzZQoraW1w
b3J0IHV1aWQKKworZnJvbSAuYmFzZSBpbXBvcnQgKENhbGxiYWNrSGFuZGxlciwKKyAgICAgICAg
ICAgICAgICAgICBSZWZUZXN0RXhlY3V0b3IsCisgICAgICAgICAgICAgICAgICAgUmVmVGVzdElt
cGxlbWVudGF0aW9uLAorICAgICAgICAgICAgICAgICAgIFRlc3RoYXJuZXNzRXhlY3V0b3IsCisg
ICAgICAgICAgICAgICAgICAgVGltZWRSdW5uZXIsCisgICAgICAgICAgICAgICAgICAgc3RyaXBf
c2VydmVyKQorZnJvbSAucHJvdG9jb2wgaW1wb3J0IChCYXNlUHJvdG9jb2xQYXJ0LAorICAgICAg
ICAgICAgICAgICAgICAgICBUZXN0aGFybmVzc1Byb3RvY29sUGFydCwKKyAgICAgICAgICAgICAg
ICAgICAgICAgUHJvdG9jb2wsCisgICAgICAgICAgICAgICAgICAgICAgIFNlbGVjdG9yUHJvdG9j
b2xQYXJ0LAorICAgICAgICAgICAgICAgICAgICAgICBDbGlja1Byb3RvY29sUGFydCwKKyAgICAg
ICAgICAgICAgICAgICAgICAgU2VuZEtleXNQcm90b2NvbFBhcnQsCisgICAgICAgICAgICAgICAg
ICAgICAgIEFjdGlvblNlcXVlbmNlUHJvdG9jb2xQYXJ0LAorICAgICAgICAgICAgICAgICAgICAg
ICBUZXN0RHJpdmVyUHJvdG9jb2xQYXJ0LAorICAgICAgICAgICAgICAgICAgICAgICBHZW5lcmF0
ZVRlc3RSZXBvcnRQcm90b2NvbFBhcnQsCisgICAgICAgICAgICAgICAgICAgICAgIFZpcnR1YWxB
dXRoZW50aWNhdG9yUHJvdG9jb2xQYXJ0KQorZnJvbSAuLnRlc3RydW5uZXIgaW1wb3J0IFN0b3AK
KworaW1wb3J0IHdlYmRyaXZlciBhcyBjbGllbnQKKworaGVyZSA9IG9zLnBhdGguam9pbihvcy5w
YXRoLnNwbGl0KF9fZmlsZV9fKVswXSkKKworCitjbGFzcyBXZWJEcml2ZXJCYXNlUHJvdG9jb2xQ
YXJ0KEJhc2VQcm90b2NvbFBhcnQpOgorICAgIGRlZiBzZXR1cChzZWxmKToKKyAgICAgICAgc2Vs
Zi53ZWJkcml2ZXIgPSBzZWxmLnBhcmVudC53ZWJkcml2ZXIKKworICAgIGRlZiBleGVjdXRlX3Nj
cmlwdChzZWxmLCBzY3JpcHQsIGFzeW5jaHJvbm91cz1GYWxzZSk6CisgICAgICAgIG1ldGhvZCA9
IHNlbGYud2ViZHJpdmVyLmV4ZWN1dGVfYXN5bmNfc2NyaXB0IGlmIGFzeW5jaHJvbm91cyBlbHNl
IHNlbGYud2ViZHJpdmVyLmV4ZWN1dGVfc2NyaXB0CisgICAgICAgIHJldHVybiBtZXRob2Qoc2Ny
aXB0KQorCisgICAgZGVmIHNldF90aW1lb3V0KHNlbGYsIHRpbWVvdXQpOgorICAgICAgICB0cnk6
CisgICAgICAgICAgICBzZWxmLndlYmRyaXZlci50aW1lb3V0cy5zY3JpcHQgPSB0aW1lb3V0Cisg
ICAgICAgIGV4Y2VwdCBjbGllbnQuV2ViRHJpdmVyRXhjZXB0aW9uOgorICAgICAgICAgICAgIyB3
b3JrYXJvdW5kIGh0dHBzOi8vYnVncy5jaHJvbWl1bS5vcmcvcC9jaHJvbWVkcml2ZXIvaXNzdWVz
L2RldGFpbD9pZD0yMDU3CisgICAgICAgICAgICBib2R5ID0geyJ0eXBlIjogInNjcmlwdCIsICJt
cyI6IHRpbWVvdXQgKiAxMDAwfQorICAgICAgICAgICAgc2VsZi53ZWJkcml2ZXIuc2VuZF9zZXNz
aW9uX2NvbW1hbmQoIlBPU1QiLCAidGltZW91dHMiLCBib2R5KQorCisgICAgQHByb3BlcnR5Cisg
ICAgZGVmIGN1cnJlbnRfd2luZG93KHNlbGYpOgorICAgICAgICByZXR1cm4gc2VsZi53ZWJkcml2
ZXIud2luZG93X2hhbmRsZQorCisgICAgZGVmIHNldF93aW5kb3coc2VsZiwgaGFuZGxlKToKKyAg
ICAgICAgc2VsZi53ZWJkcml2ZXIud2luZG93X2hhbmRsZSA9IGhhbmRsZQorCisgICAgZGVmIHdh
aXQoc2VsZik6CisgICAgICAgIHdoaWxlIFRydWU6CisgICAgICAgICAgICB0cnk6CisgICAgICAg
ICAgICAgICAgc2VsZi53ZWJkcml2ZXIuZXhlY3V0ZV9hc3luY19zY3JpcHQoIiIpCisgICAgICAg
ICAgICBleGNlcHQgKGNsaWVudC5UaW1lb3V0RXhjZXB0aW9uLCBjbGllbnQuU2NyaXB0VGltZW91
dEV4Y2VwdGlvbik6CisgICAgICAgICAgICAgICAgcGFzcworICAgICAgICAgICAgZXhjZXB0IChz
b2NrZXQudGltZW91dCwgY2xpZW50Lk5vU3VjaFdpbmRvd0V4Y2VwdGlvbiwKKyAgICAgICAgICAg
ICAgICAgICAgY2xpZW50LlVua25vd25FcnJvckV4Y2VwdGlvbiwgSU9FcnJvcik6CisgICAgICAg
ICAgICAgICAgYnJlYWsKKyAgICAgICAgICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZToKKyAgICAg
ICAgICAgICAgICBzZWxmLmxvZ2dlci5lcnJvcih0cmFjZWJhY2suZm9ybWF0X2V4YyhlKSkKKyAg
ICAgICAgICAgICAgICBicmVhaworCisKK2NsYXNzIFdlYkRyaXZlclRlc3RoYXJuZXNzUHJvdG9j
b2xQYXJ0KFRlc3RoYXJuZXNzUHJvdG9jb2xQYXJ0KToKKyAgICBkZWYgc2V0dXAoc2VsZik6Cisg
ICAgICAgIHNlbGYud2ViZHJpdmVyID0gc2VsZi5wYXJlbnQud2ViZHJpdmVyCisgICAgICAgIHNl
bGYucnVubmVyX2hhbmRsZSA9IE5vbmUKKyAgICAgICAgd2l0aCBvcGVuKG9zLnBhdGguam9pbiho
ZXJlLCAicnVubmVyLmpzIikpIGFzIGY6CisgICAgICAgICAgICBzZWxmLnJ1bm5lcl9zY3JpcHQg
PSBmLnJlYWQoKQorCisgICAgZGVmIGxvYWRfcnVubmVyKHNlbGYsIHVybF9wcm90b2NvbCk6Cisg
ICAgICAgIGlmIHNlbGYucnVubmVyX2hhbmRsZToKKyAgICAgICAgICAgIHNlbGYud2ViZHJpdmVy
LndpbmRvd19oYW5kbGUgPSBzZWxmLnJ1bm5lcl9oYW5kbGUKKyAgICAgICAgdXJsID0gdXJscGFy
c2UudXJsam9pbihzZWxmLnBhcmVudC5leGVjdXRvci5zZXJ2ZXJfdXJsKHVybF9wcm90b2NvbCks
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIi90ZXN0aGFybmVzc19ydW5uZXIuaHRt
bCIpCisgICAgICAgIHNlbGYubG9nZ2VyLmRlYnVnKCJMb2FkaW5nICVzIiAlIHVybCkKKworICAg
ICAgICBzZWxmLndlYmRyaXZlci51cmwgPSB1cmwKKyAgICAgICAgc2VsZi5ydW5uZXJfaGFuZGxl
ID0gc2VsZi53ZWJkcml2ZXIud2luZG93X2hhbmRsZQorICAgICAgICBmb3JtYXRfbWFwID0geyJ0
aXRsZSI6IHRocmVhZGluZy5jdXJyZW50X3RocmVhZCgpLm5hbWUucmVwbGFjZSgiJyIsICciJyl9
CisgICAgICAgIHNlbGYucGFyZW50LmJhc2UuZXhlY3V0ZV9zY3JpcHQoc2VsZi5ydW5uZXJfc2Ny
aXB0ICUgZm9ybWF0X21hcCkKKworICAgIGRlZiBjbG9zZV9vbGRfd2luZG93cyhzZWxmKToKKyAg
ICAgICAgc2VsZi53ZWJkcml2ZXIuYWN0aW9ucy5yZWxlYXNlKCkKKyAgICAgICAgaGFuZGxlcyA9
IFtpdGVtIGZvciBpdGVtIGluIHNlbGYud2ViZHJpdmVyLmhhbmRsZXMgaWYgaXRlbSAhPSBzZWxm
LnJ1bm5lcl9oYW5kbGVdCisgICAgICAgIGZvciBoYW5kbGUgaW4gaGFuZGxlczoKKyAgICAgICAg
ICAgIHRyeToKKyAgICAgICAgICAgICAgICBzZWxmLndlYmRyaXZlci53aW5kb3dfaGFuZGxlID0g
aGFuZGxlCisgICAgICAgICAgICAgICAgc2VsZi53ZWJkcml2ZXIuY2xvc2UoKQorICAgICAgICAg
ICAgZXhjZXB0IGNsaWVudC5Ob1N1Y2hXaW5kb3dFeGNlcHRpb246CisgICAgICAgICAgICAgICAg
cGFzcworICAgICAgICBzZWxmLndlYmRyaXZlci53aW5kb3dfaGFuZGxlID0gc2VsZi5ydW5uZXJf
aGFuZGxlCisgICAgICAgIHJldHVybiBzZWxmLnJ1bm5lcl9oYW5kbGUKKworICAgIGRlZiBnZXRf
dGVzdF93aW5kb3coc2VsZiwgd2luZG93X2lkLCBwYXJlbnQsIHRpbWVvdXQ9NSk6CisgICAgICAg
ICIiIkZpbmQgdGhlIHRlc3Qgd2luZG93IGFtb25nc3QgYWxsIHRoZSBvcGVuIHdpbmRvd3MuCisg
ICAgICAgIFRoaXMgaXMgYXNzdW1lZCB0byBiZSBlaXRoZXIgdGhlIG5hbWVkIHdpbmRvdyBvciB0
aGUgb25lIGFmdGVyIHRoZSBwYXJlbnQgaW4gdGhlIGxpc3Qgb2YKKyAgICAgICAgd2luZG93IGhh
bmRsZXMKKworICAgICAgICA6cGFyYW0gd2luZG93X2lkOiBUaGUgRE9NIG5hbWUgb2YgdGhlIFdp
bmRvdworICAgICAgICA6cGFyYW0gcGFyZW50OiBUaGUgaGFuZGxlIG9mIHRoZSBydW5uZXIgd2lu
ZG93CisgICAgICAgIDpwYXJhbSB0aW1lb3V0OiBUaGUgdGltZSBpbiBzZWNvbmRzIHRvIHdhaXQg
Zm9yIHRoZSB3aW5kb3cgdG8gYXBwZWFyLiBUaGlzIGlzIGJlY2F1c2UgaW4KKyAgICAgICAgICAg
ICAgICAgICAgICAgIHNvbWUgaW1wbGVtZW50YXRpb25zIHRoZXJlJ3MgYSByYWNlIGJldHdlZW4g
Y2FsbGluZyB3aW5kb3cub3BlbiBhbmQgdGhlCisgICAgICAgICAgICAgICAgICAgICAgICB3aW5k
b3cgYmVpbmcgYWRkZWQgdG8gdGhlIGxpc3Qgb2YgV2ViRHJpdmVyIGFjY2Vzc2libGUgd2luZG93
cy4iIiIKKyAgICAgICAgdGVzdF93aW5kb3cgPSBOb25lCisgICAgICAgIGVuZF90aW1lID0gdGlt
ZS50aW1lKCkgKyB0aW1lb3V0CisgICAgICAgIHdoaWxlIHRpbWUudGltZSgpIDwgZW5kX3RpbWU6
CisgICAgICAgICAgICB0cnk6CisgICAgICAgICAgICAgICAgIyBUcnkgdXNpbmcgdGhlIEpTT04g
c2VyaWFsaXphdGlvbiBvZiB0aGUgV2luZG93UHJveHkgb2JqZWN0LAorICAgICAgICAgICAgICAg
ICMgaXQncyBpbiBMZXZlbCAxIGJ1dCBub3RoaW5nIHN1cHBvcnRzIGl0IHlldAorICAgICAgICAg
ICAgICAgIHdpbl9zID0gc2VsZi53ZWJkcml2ZXIuZXhlY3V0ZV9zY3JpcHQoInJldHVybiB3aW5k
b3dbJyVzJ107IiAlIHdpbmRvd19pZCkKKyAgICAgICAgICAgICAgICB3aW5fb2JqID0ganNvbi5s
b2Fkcyh3aW5fcykKKyAgICAgICAgICAgICAgICB0ZXN0X3dpbmRvdyA9IHdpbl9vYmpbIndpbmRv
dy1mY2M2LTExZTUtYjRmOC0zMzBhODhhYjlkN2YiXQorICAgICAgICAgICAgZXhjZXB0IEV4Y2Vw
dGlvbjoKKyAgICAgICAgICAgICAgICBwYXNzCisKKyAgICAgICAgICAgIGlmIHRlc3Rfd2luZG93
IGlzIE5vbmU6CisgICAgICAgICAgICAgICAgYWZ0ZXIgPSBzZWxmLndlYmRyaXZlci5oYW5kbGVz
CisgICAgICAgICAgICAgICAgaWYgbGVuKGFmdGVyKSA9PSAyOgorICAgICAgICAgICAgICAgICAg
ICB0ZXN0X3dpbmRvdyA9IG5leHQoaXRlcihzZXQoYWZ0ZXIpIC0ge3BhcmVudH0pKQorICAgICAg
ICAgICAgICAgIGVsaWYgYWZ0ZXJbMF0gPT0gcGFyZW50IGFuZCBsZW4oYWZ0ZXIpID4gMjoKKyAg
ICAgICAgICAgICAgICAgICAgIyBIb3BlIHRoZSBmaXJzdCBvbmUgaGVyZSBpcyB0aGUgdGVzdCB3
aW5kb3cKKyAgICAgICAgICAgICAgICAgICAgdGVzdF93aW5kb3cgPSBhZnRlclsxXQorCisgICAg
ICAgICAgICBpZiB0ZXN0X3dpbmRvdyBpcyBub3QgTm9uZToKKyAgICAgICAgICAgICAgICBhc3Nl
cnQgdGVzdF93aW5kb3cgIT0gcGFyZW50CisgICAgICAgICAgICAgICAgcmV0dXJuIHRlc3Rfd2lu
ZG93CisKKyAgICAgICAgICAgIHRpbWUuc2xlZXAoMC4xKQorCisgICAgICAgIHJhaXNlIEV4Y2Vw
dGlvbigidW5hYmxlIHRvIGZpbmQgdGVzdCB3aW5kb3ciKQorCisKK2NsYXNzIFdlYkRyaXZlclNl
bGVjdG9yUHJvdG9jb2xQYXJ0KFNlbGVjdG9yUHJvdG9jb2xQYXJ0KToKKyAgICBkZWYgc2V0dXAo
c2VsZik6CisgICAgICAgIHNlbGYud2ViZHJpdmVyID0gc2VsZi5wYXJlbnQud2ViZHJpdmVyCisK
KyAgICBkZWYgZWxlbWVudHNfYnlfc2VsZWN0b3Ioc2VsZiwgc2VsZWN0b3IpOgorICAgICAgICBy
ZXR1cm4gc2VsZi53ZWJkcml2ZXIuZmluZC5jc3Moc2VsZWN0b3IpCisKKyAgICBkZWYgZWxlbWVu
dHNfYnlfc2VsZWN0b3JfYW5kX2ZyYW1lKHNlbGYsIGVsZW1lbnRfc2VsZWN0b3IsIGZyYW1lKToK
KyAgICAgICAgcmV0dXJuIHNlbGYud2ViZHJpdmVyLmZpbmQuY3NzKGVsZW1lbnRfc2VsZWN0b3Is
IGZyYW1lPWZyYW1lKQorCisKK2NsYXNzIFdlYkRyaXZlckNsaWNrUHJvdG9jb2xQYXJ0KENsaWNr
UHJvdG9jb2xQYXJ0KToKKyAgICBkZWYgc2V0dXAoc2VsZik6CisgICAgICAgIHNlbGYud2ViZHJp
dmVyID0gc2VsZi5wYXJlbnQud2ViZHJpdmVyCisKKyAgICBkZWYgZWxlbWVudChzZWxmLCBlbGVt
ZW50KToKKyAgICAgICAgc2VsZi5sb2dnZXIuaW5mbygiY2xpY2sgIiArIHJlcHIoZWxlbWVudCkp
CisgICAgICAgIHJldHVybiBlbGVtZW50LmNsaWNrKCkKKworCitjbGFzcyBXZWJEcml2ZXJTZW5k
S2V5c1Byb3RvY29sUGFydChTZW5kS2V5c1Byb3RvY29sUGFydCk6CisgICAgZGVmIHNldHVwKHNl
bGYpOgorICAgICAgICBzZWxmLndlYmRyaXZlciA9IHNlbGYucGFyZW50LndlYmRyaXZlcgorCisg
ICAgZGVmIHNlbmRfa2V5cyhzZWxmLCBlbGVtZW50LCBrZXlzKToKKyAgICAgICAgdHJ5OgorICAg
ICAgICAgICAgcmV0dXJuIGVsZW1lbnQuc2VuZF9rZXlzKGtleXMpCisgICAgICAgIGV4Y2VwdCBj
bGllbnQuVW5rbm93bkVycm9yRXhjZXB0aW9uIGFzIGU6CisgICAgICAgICAgICAjIHdvcmthcm91
bmQgaHR0cHM6Ly9idWdzLmNocm9taXVtLm9yZy9wL2Nocm9tZWRyaXZlci9pc3N1ZXMvZGV0YWls
P2lkPTE5OTkKKyAgICAgICAgICAgIGlmIChlLmh0dHBfc3RhdHVzICE9IDUwMCBvcgorICAgICAg
ICAgICAgICAgIGUuc3RhdHVzX2NvZGUgIT0gInVua25vd24gZXJyb3IiKToKKyAgICAgICAgICAg
ICAgICByYWlzZQorICAgICAgICAgICAgcmV0dXJuIGVsZW1lbnQuc2VuZF9lbGVtZW50X2NvbW1h
bmQoIlBPU1QiLCAidmFsdWUiLCB7InZhbHVlIjogbGlzdChrZXlzKX0pCisKKworY2xhc3MgV2Vi
RHJpdmVyQWN0aW9uU2VxdWVuY2VQcm90b2NvbFBhcnQoQWN0aW9uU2VxdWVuY2VQcm90b2NvbFBh
cnQpOgorICAgIGRlZiBzZXR1cChzZWxmKToKKyAgICAgICAgc2VsZi53ZWJkcml2ZXIgPSBzZWxm
LnBhcmVudC53ZWJkcml2ZXIKKworICAgIGRlZiBzZW5kX2FjdGlvbnMoc2VsZiwgYWN0aW9ucyk6
CisgICAgICAgIHNlbGYud2ViZHJpdmVyLmFjdGlvbnMucGVyZm9ybShhY3Rpb25zWydhY3Rpb25z
J10pCisKKworY2xhc3MgV2ViRHJpdmVyVGVzdERyaXZlclByb3RvY29sUGFydChUZXN0RHJpdmVy
UHJvdG9jb2xQYXJ0KToKKyAgICBkZWYgc2V0dXAoc2VsZik6CisgICAgICAgIHNlbGYud2ViZHJp
dmVyID0gc2VsZi5wYXJlbnQud2ViZHJpdmVyCisKKyAgICBkZWYgc2VuZF9tZXNzYWdlKHNlbGYs
IG1lc3NhZ2VfdHlwZSwgc3RhdHVzLCBtZXNzYWdlPU5vbmUpOgorICAgICAgICBvYmogPSB7Cisg
ICAgICAgICAgICAidHlwZSI6ICJ0ZXN0ZHJpdmVyLSVzIiAlIHN0cihtZXNzYWdlX3R5cGUpLAor
ICAgICAgICAgICAgInN0YXR1cyI6IHN0cihzdGF0dXMpCisgICAgICAgIH0KKyAgICAgICAgaWYg
bWVzc2FnZToKKyAgICAgICAgICAgIG9ialsibWVzc2FnZSJdID0gc3RyKG1lc3NhZ2UpCisgICAg
ICAgIHNlbGYud2ViZHJpdmVyLmV4ZWN1dGVfc2NyaXB0KCJ3aW5kb3cucG9zdE1lc3NhZ2UoJXMs
ICcqJykiICUganNvbi5kdW1wcyhvYmopKQorCisKK2NsYXNzIFdlYkRyaXZlckdlbmVyYXRlVGVz
dFJlcG9ydFByb3RvY29sUGFydChHZW5lcmF0ZVRlc3RSZXBvcnRQcm90b2NvbFBhcnQpOgorICAg
IGRlZiBzZXR1cChzZWxmKToKKyAgICAgICAgc2VsZi53ZWJkcml2ZXIgPSBzZWxmLnBhcmVudC53
ZWJkcml2ZXIKKworICAgIGRlZiBnZW5lcmF0ZV90ZXN0X3JlcG9ydChzZWxmLCBtZXNzYWdlKToK
KyAgICAgICAganNvbl9tZXNzYWdlID0geyJtZXNzYWdlIjogbWVzc2FnZX0KKyAgICAgICAgc2Vs
Zi53ZWJkcml2ZXIuc2VuZF9zZXNzaW9uX2NvbW1hbmQoIlBPU1QiLCAicmVwb3J0aW5nL2dlbmVy
YXRlX3Rlc3RfcmVwb3J0IiwganNvbl9tZXNzYWdlKQorCitjbGFzcyBXZWJEcml2ZXJWaXJ0dWFs
QXV0aGVudGljYXRvclByb3RvY29sUGFydChWaXJ0dWFsQXV0aGVudGljYXRvclByb3RvY29sUGFy
dCk6CisgICAgZGVmIHNldHVwKHNlbGYpOgorICAgICAgICBzZWxmLndlYmRyaXZlciA9IHNlbGYu
cGFyZW50LndlYmRyaXZlcgorCisgICAgZGVmIGFkZF92aXJ0dWFsX2F1dGhlbnRpY2F0b3Ioc2Vs
ZiwgY29uZmlnKToKKyAgICAgICAgcmV0dXJuIHNlbGYud2ViZHJpdmVyLnNlbmRfc2Vzc2lvbl9j
b21tYW5kKCJQT1NUIiwgIndlYmF1dGhuL2F1dGhlbnRpY2F0b3IiLCBjb25maWcpCisKKyAgICBk
ZWYgcmVtb3ZlX3ZpcnR1YWxfYXV0aGVudGljYXRvcihzZWxmLCBhdXRoZW50aWNhdG9yX2lkKToK
KyAgICAgICAgcmV0dXJuIHNlbGYud2ViZHJpdmVyLnNlbmRfc2Vzc2lvbl9jb21tYW5kKCJERUxF
VEUiLCAid2ViYXV0aG4vYXV0aGVudGljYXRvci8lcyIgJSBhdXRoZW50aWNhdG9yX2lkKQorCisg
ICAgZGVmIGFkZF9jcmVkZW50aWFsKHNlbGYsIGF1dGhlbnRpY2F0b3JfaWQsIGNyZWRlbnRpYWwp
OgorICAgICAgICByZXR1cm4gc2VsZi53ZWJkcml2ZXIuc2VuZF9zZXNzaW9uX2NvbW1hbmQoIlBP
U1QiLCAid2ViYXV0aG4vYXV0aGVudGljYXRvci8lcy9jcmVkZW50aWFsIiAlIGF1dGhlbnRpY2F0
b3JfaWQsIGNyZWRlbnRpYWwpCisKKyAgICBkZWYgZ2V0X2NyZWRlbnRpYWxzKHNlbGYsIGF1dGhl
bnRpY2F0b3JfaWQpOgorICAgICAgICByZXR1cm4gc2VsZi53ZWJkcml2ZXIuc2VuZF9zZXNzaW9u
X2NvbW1hbmQoIkdFVCIsICJ3ZWJhdXRobi9hdXRoZW50aWNhdG9yLyVzL2NyZWRlbnRpYWxzIiAl
IGF1dGhlbnRpY2F0b3JfaWQpCisKKyAgICBkZWYgcmVtb3ZlX2NyZWRlbnRpYWwoc2VsZiwgYXV0
aGVudGljYXRvcl9pZCwgY3JlZGVudGlhbF9pZCk6CisgICAgICAgIHJldHVybiBzZWxmLndlYmRy
aXZlci5zZW5kX3Nlc3Npb25fY29tbWFuZCgiREVMRVRFIiwgIndlYmF1dGhuL2F1dGhlbnRpY2F0
b3IvJXMvY3JlZGVudGlhbHMvJXMiICUgKGF1dGhlbnRpY2F0b3JfaWQsIGNyZWRlbnRpYWxfaWQp
KQorCisgICAgZGVmIHJlbW92ZV9hbGxfY3JlZGVudGlhbHMoc2VsZiwgYXV0aGVudGljYXRvcl9p
ZCk6CisgICAgICAgIHJldHVybiBzZWxmLndlYmRyaXZlci5zZW5kX3Nlc3Npb25fY29tbWFuZCgi
REVMRVRFIiwgIndlYmF1dGhuL2F1dGhlbnRpY2F0b3IvJXMvY3JlZGVudGlhbHMiICUgYXV0aGVu
dGljYXRvcl9pZCkKKworICAgIGRlZiBzZXRfdXNlcl92ZXJpZmllZChzZWxmLCBhdXRoZW50aWNh
dG9yX2lkLCB1dik6CisgICAgICAgIHJldHVybiBzZWxmLndlYmRyaXZlci5zZW5kX3Nlc3Npb25f
Y29tbWFuZCgiUE9TVCIsICJ3ZWJhdXRobi9hdXRoZW50aWNhdG9yLyVzL3V2IiAlIGF1dGhlbnRp
Y2F0b3JfaWQsIHV2KQorCisKK2NsYXNzIFdlYkRyaXZlclByb3RvY29sKFByb3RvY29sKToKKyAg
ICBpbXBsZW1lbnRzID0gW1dlYkRyaXZlckJhc2VQcm90b2NvbFBhcnQsCisgICAgICAgICAgICAg
ICAgICBXZWJEcml2ZXJUZXN0aGFybmVzc1Byb3RvY29sUGFydCwKKyAgICAgICAgICAgICAgICAg
IFdlYkRyaXZlclNlbGVjdG9yUHJvdG9jb2xQYXJ0LAorICAgICAgICAgICAgICAgICAgV2ViRHJp
dmVyQ2xpY2tQcm90b2NvbFBhcnQsCisgICAgICAgICAgICAgICAgICBXZWJEcml2ZXJTZW5kS2V5
c1Byb3RvY29sUGFydCwKKyAgICAgICAgICAgICAgICAgIFdlYkRyaXZlckFjdGlvblNlcXVlbmNl
UHJvdG9jb2xQYXJ0LAorICAgICAgICAgICAgICAgICAgV2ViRHJpdmVyVGVzdERyaXZlclByb3Rv
Y29sUGFydCwKKyAgICAgICAgICAgICAgICAgIFdlYkRyaXZlckdlbmVyYXRlVGVzdFJlcG9ydFBy
b3RvY29sUGFydCwKKyAgICAgICAgICAgICAgICAgIFdlYkRyaXZlclZpcnR1YWxBdXRoZW50aWNh
dG9yUHJvdG9jb2xQYXJ0XQorCisgICAgZGVmIF9faW5pdF9fKHNlbGYsIGV4ZWN1dG9yLCBicm93
c2VyLCBjYXBhYmlsaXRpZXMsICoqa3dhcmdzKToKKyAgICAgICAgc3VwZXIoV2ViRHJpdmVyUHJv
dG9jb2wsIHNlbGYpLl9faW5pdF9fKGV4ZWN1dG9yLCBicm93c2VyKQorICAgICAgICBzZWxmLmNh
cGFiaWxpdGllcyA9IGNhcGFiaWxpdGllcworICAgICAgICBzZWxmLnVybCA9IGJyb3dzZXIud2Vi
ZHJpdmVyX3VybAorICAgICAgICBzZWxmLndlYmRyaXZlciA9IE5vbmUKKworICAgIGRlZiBjb25u
ZWN0KHNlbGYpOgorICAgICAgICAiIiJDb25uZWN0IHRvIGJyb3dzZXIgdmlhIFdlYkRyaXZlci4i
IiIKKyAgICAgICAgc2VsZi5sb2dnZXIuZGVidWcoIkNvbm5lY3RpbmcgdG8gV2ViRHJpdmVyIG9u
IFVSTDogJXMiICUgc2VsZi51cmwpCisKKyAgICAgICAgaG9zdCwgcG9ydCA9IHNlbGYudXJsLnNw
bGl0KCI6IilbMV0uc3RyaXAoIi8iKSwgc2VsZi51cmwuc3BsaXQoJzonKVstMV0uc3RyaXAoIi8i
KQorCisgICAgICAgIGNhcGFiaWxpdGllcyA9IHsiYWx3YXlzTWF0Y2giOiBzZWxmLmNhcGFiaWxp
dGllc30KKyAgICAgICAgc2VsZi53ZWJkcml2ZXIgPSBjbGllbnQuU2Vzc2lvbihob3N0LCBwb3J0
LCBjYXBhYmlsaXRpZXM9Y2FwYWJpbGl0aWVzKQorICAgICAgICBzZWxmLndlYmRyaXZlci5zdGFy
dCgpCisKKyAgICBkZWYgdGVhcmRvd24oc2VsZik6CisgICAgICAgIHNlbGYubG9nZ2VyLmRlYnVn
KCJIYW5naW5nIHVwIG9uIFdlYkRyaXZlciBzZXNzaW9uIikKKyAgICAgICAgdHJ5OgorICAgICAg
ICAgICAgc2VsZi53ZWJkcml2ZXIuZW5kKCkKKyAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBl
OgorICAgICAgICAgICAgbWVzc2FnZSA9IHN0cihnZXRhdHRyKGUsICJtZXNzYWdlIiwgIiIpKQor
ICAgICAgICAgICAgaWYgbWVzc2FnZToKKyAgICAgICAgICAgICAgICBtZXNzYWdlICs9ICJcbiIK
KyAgICAgICAgICAgIG1lc3NhZ2UgKz0gdHJhY2ViYWNrLmZvcm1hdF9leGMoZSkKKyAgICAgICAg
ICAgIHNlbGYubG9nZ2VyLmRlYnVnKG1lc3NhZ2UpCisgICAgICAgIHNlbGYud2ViZHJpdmVyID0g
Tm9uZQorCisgICAgZGVmIGlzX2FsaXZlKHNlbGYpOgorICAgICAgICB0cnk6CisgICAgICAgICAg
ICAjIEdldCBhIHNpbXBsZSBwcm9wZXJ0eSBvdmVyIHRoZSBjb25uZWN0aW9uCisgICAgICAgICAg
ICBzZWxmLndlYmRyaXZlci53aW5kb3dfaGFuZGxlCisgICAgICAgIGV4Y2VwdCAoc29ja2V0LnRp
bWVvdXQsIGNsaWVudC5Vbmtub3duRXJyb3JFeGNlcHRpb24pOgorICAgICAgICAgICAgcmV0dXJu
IEZhbHNlCisgICAgICAgIHJldHVybiBUcnVlCisKKyAgICBkZWYgYWZ0ZXJfY29ubmVjdChzZWxm
KToKKyAgICAgICAgc2VsZi50ZXN0aGFybmVzcy5sb2FkX3J1bm5lcihzZWxmLmV4ZWN1dG9yLmxh
c3RfZW52aXJvbm1lbnRbInByb3RvY29sIl0pCisKKworY2xhc3MgV2ViRHJpdmVyUnVuKFRpbWVk
UnVubmVyKToKKyAgICBkZWYgc2V0X3RpbWVvdXQoc2VsZik6CisgICAgICAgIHRyeToKKyAgICAg
ICAgICAgIHNlbGYucHJvdG9jb2wuYmFzZS5zZXRfdGltZW91dChzZWxmLnRpbWVvdXQgKyBzZWxm
LmV4dHJhX3RpbWVvdXQpCisgICAgICAgIGV4Y2VwdCBjbGllbnQuVW5rbm93bkVycm9yRXhjZXB0
aW9uOgorICAgICAgICAgICAgc2VsZi5sb2dnZXIuZXJyb3IoIkxvc3QgV2ViRHJpdmVyIGNvbm5l
Y3Rpb24iKQorICAgICAgICAgICAgcmV0dXJuIFN0b3AKKworICAgIGRlZiBydW5fZnVuYyhzZWxm
KToKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgc2VsZi5yZXN1bHQgPSBUcnVlLCBzZWxmLmZ1
bmMoc2VsZi5wcm90b2NvbCwgc2VsZi51cmwsIHNlbGYudGltZW91dCkKKyAgICAgICAgZXhjZXB0
IChjbGllbnQuVGltZW91dEV4Y2VwdGlvbiwgY2xpZW50LlNjcmlwdFRpbWVvdXRFeGNlcHRpb24p
OgorICAgICAgICAgICAgc2VsZi5yZXN1bHQgPSBGYWxzZSwgKCJFWFRFUk5BTC1USU1FT1VUIiwg
Tm9uZSkKKyAgICAgICAgZXhjZXB0IChzb2NrZXQudGltZW91dCwgY2xpZW50LlVua25vd25FcnJv
ckV4Y2VwdGlvbik6CisgICAgICAgICAgICBzZWxmLnJlc3VsdCA9IEZhbHNlLCAoIkNSQVNIIiwg
Tm9uZSkKKyAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBlOgorICAgICAgICAgICAgaWYgKGlz
aW5zdGFuY2UoZSwgY2xpZW50LldlYkRyaXZlckV4Y2VwdGlvbikgYW5kCisgICAgICAgICAgICAg
ICAgICAgIGUuaHR0cF9zdGF0dXMgPT0gNDA4IGFuZAorICAgICAgICAgICAgICAgICAgICBlLnN0
YXR1c19jb2RlID09ICJhc3luY2hyb25vdXMgc2NyaXB0IHRpbWVvdXQiKToKKyAgICAgICAgICAg
ICAgICAjIHdvcmthcm91bmQgZm9yIGh0dHBzOi8vYnVncy5jaHJvbWl1bS5vcmcvcC9jaHJvbWVk
cml2ZXIvaXNzdWVzL2RldGFpbD9pZD0yMDAxCisgICAgICAgICAgICAgICAgc2VsZi5yZXN1bHQg
PSBGYWxzZSwgKCJFWFRFUk5BTC1USU1FT1VUIiwgTm9uZSkKKyAgICAgICAgICAgIGVsc2U6Cisg
ICAgICAgICAgICAgICAgbWVzc2FnZSA9IHN0cihnZXRhdHRyKGUsICJtZXNzYWdlIiwgIiIpKQor
ICAgICAgICAgICAgICAgIGlmIG1lc3NhZ2U6CisgICAgICAgICAgICAgICAgICAgIG1lc3NhZ2Ug
Kz0gIlxuIgorICAgICAgICAgICAgICAgIG1lc3NhZ2UgKz0gdHJhY2ViYWNrLmZvcm1hdF9leGMo
ZSkKKyAgICAgICAgICAgICAgICBzZWxmLnJlc3VsdCA9IEZhbHNlLCAoIklOVEVSTkFMLUVSUk9S
IiwgbWVzc2FnZSkKKyAgICAgICAgZmluYWxseToKKyAgICAgICAgICAgIHNlbGYucmVzdWx0X2Zs
YWcuc2V0KCkKKworCitjbGFzcyBXZWJEcml2ZXJUZXN0aGFybmVzc0V4ZWN1dG9yKFRlc3RoYXJu
ZXNzRXhlY3V0b3IpOgorICAgIHN1cHBvcnRzX3Rlc3Rkcml2ZXIgPSBUcnVlCisKKyAgICBkZWYg
X19pbml0X18oc2VsZiwgYnJvd3Nlciwgc2VydmVyX2NvbmZpZywgdGltZW91dF9tdWx0aXBsaWVy
PTEsCisgICAgICAgICAgICAgICAgIGNsb3NlX2FmdGVyX2RvbmU9VHJ1ZSwgY2FwYWJpbGl0aWVz
PU5vbmUsIGRlYnVnX2luZm89Tm9uZSwKKyAgICAgICAgICAgICAgICAgc3VwcG9ydHNfZWFnZXJf
cGFnZWxvYWQ9VHJ1ZSwgKiprd2FyZ3MpOgorICAgICAgICAiIiJXZWJEcml2ZXItYmFzZWQgZXhl
Y3V0b3IgZm9yIHRlc3RoYXJuZXNzLmpzIHRlc3RzIiIiCisgICAgICAgIFRlc3RoYXJuZXNzRXhl
Y3V0b3IuX19pbml0X18oc2VsZiwgYnJvd3Nlciwgc2VydmVyX2NvbmZpZywKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICB0aW1lb3V0X211bHRpcGxpZXI9dGltZW91dF9tdWx0
aXBsaWVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlYnVnX2luZm89
ZGVidWdfaW5mbykKKyAgICAgICAgc2VsZi5wcm90b2NvbCA9IFdlYkRyaXZlclByb3RvY29sKHNl
bGYsIGJyb3dzZXIsIGNhcGFiaWxpdGllcykKKyAgICAgICAgd2l0aCBvcGVuKG9zLnBhdGguam9p
bihoZXJlLCAidGVzdGhhcm5lc3Nfd2ViZHJpdmVyX3Jlc3VtZS5qcyIpKSBhcyBmOgorICAgICAg
ICAgICAgc2VsZi5zY3JpcHRfcmVzdW1lID0gZi5yZWFkKCkKKyAgICAgICAgc2VsZi5jbG9zZV9h
ZnRlcl9kb25lID0gY2xvc2VfYWZ0ZXJfZG9uZQorICAgICAgICBzZWxmLndpbmRvd19pZCA9IHN0
cih1dWlkLnV1aWQ0KCkpCisgICAgICAgIHNlbGYuc3VwcG9ydHNfZWFnZXJfcGFnZWxvYWQgPSBz
dXBwb3J0c19lYWdlcl9wYWdlbG9hZAorCisgICAgZGVmIGlzX2FsaXZlKHNlbGYpOgorICAgICAg
ICByZXR1cm4gc2VsZi5wcm90b2NvbC5pc19hbGl2ZSgpCisKKyAgICBkZWYgb25fZW52aXJvbm1l
bnRfY2hhbmdlKHNlbGYsIG5ld19lbnZpcm9ubWVudCk6CisgICAgICAgIGlmIG5ld19lbnZpcm9u
bWVudFsicHJvdG9jb2wiXSAhPSBzZWxmLmxhc3RfZW52aXJvbm1lbnRbInByb3RvY29sIl06Cisg
ICAgICAgICAgICBzZWxmLnByb3RvY29sLnRlc3RoYXJuZXNzLmxvYWRfcnVubmVyKG5ld19lbnZp
cm9ubWVudFsicHJvdG9jb2wiXSkKKworICAgIGRlZiBkb190ZXN0KHNlbGYsIHRlc3QpOgorICAg
ICAgICB1cmwgPSBzZWxmLnRlc3RfdXJsKHRlc3QpCisKKyAgICAgICAgc3VjY2VzcywgZGF0YSA9
IFdlYkRyaXZlclJ1bihzZWxmLmxvZ2dlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBzZWxmLmRvX3Rlc3RoYXJuZXNzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHNlbGYucHJvdG9jb2wsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgdXJsLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRlc3QudGlt
ZW91dCAqIHNlbGYudGltZW91dF9tdWx0aXBsaWVyLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHNlbGYuZXh0cmFfdGltZW91dCkucnVuKCkKKworICAgICAgICBpZiBzdWNj
ZXNzOgorICAgICAgICAgICAgcmV0dXJuIHNlbGYuY29udmVydF9yZXN1bHQodGVzdCwgZGF0YSkK
KworICAgICAgICByZXR1cm4gKHRlc3QucmVzdWx0X2NscygqZGF0YSksIFtdKQorCisgICAgZGVm
IGRvX3Rlc3RoYXJuZXNzKHNlbGYsIHByb3RvY29sLCB1cmwsIHRpbWVvdXQpOgorICAgICAgICBm
b3JtYXRfbWFwID0geyJ1cmwiOiBzdHJpcF9zZXJ2ZXIodXJsKX0KKworICAgICAgICBwYXJlbnRf
d2luZG93ID0gcHJvdG9jb2wudGVzdGhhcm5lc3MuY2xvc2Vfb2xkX3dpbmRvd3MoKQorICAgICAg
ICAjIE5vdyBzdGFydCB0aGUgdGVzdCBoYXJuZXNzCisgICAgICAgIHByb3RvY29sLmJhc2UuZXhl
Y3V0ZV9zY3JpcHQoIndpbmRvdy5vcGVuKCdhYm91dDpibGFuaycsICclcycsICdub29wZW5lcicp
IiAlIHNlbGYud2luZG93X2lkKQorICAgICAgICB0ZXN0X3dpbmRvdyA9IHByb3RvY29sLnRlc3Ro
YXJuZXNzLmdldF90ZXN0X3dpbmRvdyhzZWxmLndpbmRvd19pZCwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFyZW50X3dpbmRvdywK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgdGltZW91dD01KnNlbGYudGltZW91dF9tdWx0aXBsaWVyKQorICAgICAgICBzZWxmLnByb3Rv
Y29sLmJhc2Uuc2V0X3dpbmRvdyh0ZXN0X3dpbmRvdykKKyAgICAgICAgaGFuZGxlciA9IENhbGxi
YWNrSGFuZGxlcihzZWxmLmxvZ2dlciwgcHJvdG9jb2wsIHRlc3Rfd2luZG93KQorICAgICAgICBw
cm90b2NvbC53ZWJkcml2ZXIudXJsID0gdXJsCisKKyAgICAgICAgaWYgbm90IHNlbGYuc3VwcG9y
dHNfZWFnZXJfcGFnZWxvYWQ6CisgICAgICAgICAgICBzZWxmLndhaXRfZm9yX2xvYWQocHJvdG9j
b2wpCisKKyAgICAgICAgd2hpbGUgVHJ1ZToKKyAgICAgICAgICAgIHJlc3VsdCA9IHByb3RvY29s
LmJhc2UuZXhlY3V0ZV9zY3JpcHQoCisgICAgICAgICAgICAgICAgc2VsZi5zY3JpcHRfcmVzdW1l
ICUgZm9ybWF0X21hcCwgYXN5bmNocm9ub3VzPVRydWUpCisKKyAgICAgICAgICAgICMgQXMgb2Yg
MjAxOS0wMy0yOSwgV2ViRHJpdmVyIGRvZXMgbm90IGRlZmluZSBleHBlY3RlZCBiZWhhdmlvciBm
b3IKKyAgICAgICAgICAgICMgY2FzZXMgd2hlcmUgdGhlIGJyb3dzZXIgY3Jhc2hlcyBkdXJpbmcg
c2NyaXB0IGV4ZWN1dGlvbjoKKyAgICAgICAgICAgICMKKyAgICAgICAgICAgICMgaHR0cHM6Ly9n
aXRodWIuY29tL3czYy93ZWJkcml2ZXIvaXNzdWVzLzEzMDgKKyAgICAgICAgICAgIGlmIG5vdCBp
c2luc3RhbmNlKHJlc3VsdCwgbGlzdCkgb3IgbGVuKHJlc3VsdCkgIT0gMjoKKyAgICAgICAgICAg
ICAgICB0cnk6CisgICAgICAgICAgICAgICAgICAgIGlzX2FsaXZlID0gc2VsZi5pc19hbGl2ZSgp
CisgICAgICAgICAgICAgICAgZXhjZXB0IGNsaWVudC5XZWJEcml2ZXJFeGNlcHRpb246CisgICAg
ICAgICAgICAgICAgICAgIGlzX2FsaXZlID0gRmFsc2UKKworICAgICAgICAgICAgICAgIGlmIG5v
dCBpc19hbGl2ZToKKyAgICAgICAgICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCJCcm93c2Vy
IGNyYXNoZWQgZHVyaW5nIHNjcmlwdCBleGVjdXRpb24uIikKKworICAgICAgICAgICAgZG9uZSwg
cnYgPSBoYW5kbGVyKHJlc3VsdCkKKyAgICAgICAgICAgIGlmIGRvbmU6CisgICAgICAgICAgICAg
ICAgYnJlYWsKKyAgICAgICAgcmV0dXJuIHJ2CisKKyAgICBkZWYgd2FpdF9mb3JfbG9hZChzZWxm
LCBwcm90b2NvbCk6CisgICAgICAgICMgcGFnZUxvYWRTdHJhdGVneT1lYWdlciBkb2Vzbid0IHdv
cmsgaW4gQ2hyb21lIHNvIHRyeSB0byBlbXVsYXRlIGluIHVzZXIgc2NyaXB0CisgICAgICAgIGxv
YWRlZCA9IEZhbHNlCisgICAgICAgIHNlZW5fZXJyb3IgPSBGYWxzZQorICAgICAgICB3aGlsZSBu
b3QgbG9hZGVkOgorICAgICAgICAgICAgdHJ5OgorICAgICAgICAgICAgICAgIGxvYWRlZCA9IHBy
b3RvY29sLmJhc2UuZXhlY3V0ZV9zY3JpcHQoIiIiCit2YXIgY2FsbGJhY2sgPSBhcmd1bWVudHNb
YXJndW1lbnRzLmxlbmd0aCAtIDFdOworaWYgKGxvY2F0aW9uLmhyZWYgPT09ICJhYm91dDpibGFu
ayIpIHsKKyAgY2FsbGJhY2soZmFsc2UpOworfSBlbHNlIGlmIChkb2N1bWVudC5yZWFkeVN0YXRl
ICE9PSAibG9hZGluZyIpIHsKKyAgY2FsbGJhY2sodHJ1ZSk7Cit9IGVsc2UgeworICBkb2N1bWVu
dC5hZGRFdmVudExpc3RlbmVyKCJyZWFkeXN0YXRlY2hhbmdlIiwgKCkgPT4ge2lmIChkb2N1bWVu
dC5yZWFkeVN0YXRlICE9PSAibG9hZGluZyIpIHtjYWxsYmFjayh0cnVlKX19KTsKK30iIiIsIGFz
eW5jaHJvbm91cz1UcnVlKQorICAgICAgICAgICAgZXhjZXB0IGNsaWVudC5KYXZhc2NyaXB0RXJy
b3JFeGNlcHRpb246CisgICAgICAgICAgICAgICAgIyBXZSBjYW4gZ2V0IGFuIGVycm9yIGhlcmUg
aWYgdGhlIHNjcmlwdCBydW5zIGluIHRoZSBpbml0aWFsIGFib3V0OmJsYW5rCisgICAgICAgICAg
ICAgICAgIyBkb2N1bWVudCBiZWZvcmUgaXQgaGFzIG5hdmlnYXRlZCwgd2l0aCB0aGUgZHJpdmVy
IHJldHVybmluZyBhbiBlcnJvcgorICAgICAgICAgICAgICAgICMgaW5kaWNhdGluZyB0aGF0IHRo
ZSBkb2N1bWVudCB3YXMgdW5sb2FkZWQKKyAgICAgICAgICAgICAgICBpZiBzZWVuX2Vycm9yOgor
ICAgICAgICAgICAgICAgICAgICByYWlzZQorICAgICAgICAgICAgICAgIHNlZW5fZXJyb3IgPSBU
cnVlCisKKworY2xhc3MgV2ViRHJpdmVyUmVmVGVzdEV4ZWN1dG9yKFJlZlRlc3RFeGVjdXRvcik6
CisgICAgZGVmIF9faW5pdF9fKHNlbGYsIGJyb3dzZXIsIHNlcnZlcl9jb25maWcsIHRpbWVvdXRf
bXVsdGlwbGllcj0xLAorICAgICAgICAgICAgICAgICBzY3JlZW5zaG90X2NhY2hlPU5vbmUsIGNs
b3NlX2FmdGVyX2RvbmU9VHJ1ZSwKKyAgICAgICAgICAgICAgICAgZGVidWdfaW5mbz1Ob25lLCBj
YXBhYmlsaXRpZXM9Tm9uZSwgKiprd2FyZ3MpOgorICAgICAgICAiIiJXZWJEcml2ZXItYmFzZWQg
ZXhlY3V0b3IgZm9yIHJlZnRlc3RzIiIiCisgICAgICAgIFJlZlRlc3RFeGVjdXRvci5fX2luaXRf
XyhzZWxmLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJvd3NlciwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlcnZlcl9jb25maWcsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBzY3JlZW5zaG90X2NhY2hlPXNjcmVlbnNob3RfY2FjaGUsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aW1lb3V0X211bHRpcGxpZXI9dGltZW91
dF9tdWx0aXBsaWVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVidWdfaW5m
bz1kZWJ1Z19pbmZvKQorICAgICAgICBzZWxmLnByb3RvY29sID0gV2ViRHJpdmVyUHJvdG9jb2wo
c2VsZiwgYnJvd3NlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGNhcGFiaWxpdGllcz1jYXBhYmlsaXRpZXMpCisgICAgICAgIHNlbGYuaW1wbGVtZW50YXRpb24g
PSBSZWZUZXN0SW1wbGVtZW50YXRpb24oc2VsZikKKyAgICAgICAgc2VsZi5jbG9zZV9hZnRlcl9k
b25lID0gY2xvc2VfYWZ0ZXJfZG9uZQorICAgICAgICBzZWxmLmhhc193aW5kb3cgPSBGYWxzZQor
CisgICAgICAgIHdpdGggb3Blbihvcy5wYXRoLmpvaW4oaGVyZSwgInJlZnRlc3Qtd2FpdF93ZWJk
cml2ZXIuanMiKSkgYXMgZjoKKyAgICAgICAgICAgIHNlbGYud2FpdF9zY3JpcHQgPSBmLnJlYWQo
KQorCisgICAgZGVmIHJlc2V0KHNlbGYpOgorICAgICAgICBzZWxmLmltcGxlbWVudGF0aW9uLnJl
c2V0KCkKKworICAgIGRlZiBpc19hbGl2ZShzZWxmKToKKyAgICAgICAgcmV0dXJuIHNlbGYucHJv
dG9jb2wuaXNfYWxpdmUoKQorCisgICAgZGVmIGRvX3Rlc3Qoc2VsZiwgdGVzdCk6CisgICAgICAg
IHdpZHRoX29mZnNldCwgaGVpZ2h0X29mZnNldCA9IHNlbGYucHJvdG9jb2wud2ViZHJpdmVyLmV4
ZWN1dGVfc2NyaXB0KAorICAgICAgICAgICAgIiIicmV0dXJuIFt3aW5kb3cub3V0ZXJXaWR0aCAt
IHdpbmRvdy5pbm5lcldpZHRoLAorICAgICAgICAgICAgICAgICAgICAgICB3aW5kb3cub3V0ZXJI
ZWlnaHQgLSB3aW5kb3cuaW5uZXJIZWlnaHRdOyIiIgorICAgICAgICApCisgICAgICAgIHRyeToK
KyAgICAgICAgICAgIHNlbGYucHJvdG9jb2wud2ViZHJpdmVyLndpbmRvdy5wb3NpdGlvbiA9ICgw
LCAwKQorICAgICAgICBleGNlcHQgY2xpZW50LkludmFsaWRBcmd1bWVudEV4Y2VwdGlvbjoKKyAg
ICAgICAgICAgICMgU2FmYXJpIDEyIHRocm93cyB3aXRoIDAgb3IgMSwgdHJlYXRpbmcgdGhlbSBh
cyBib29sczsgZml4ZWQgaW4gU1RQCisgICAgICAgICAgICBzZWxmLnByb3RvY29sLndlYmRyaXZl
ci53aW5kb3cucG9zaXRpb24gPSAoMiwgMikKKyAgICAgICAgc2VsZi5wcm90b2NvbC53ZWJkcml2
ZXIud2luZG93LnNpemUgPSAoODAwICsgd2lkdGhfb2Zmc2V0LCA2MDAgKyBoZWlnaHRfb2Zmc2V0
KQorCisgICAgICAgIHJlc3VsdCA9IHNlbGYuaW1wbGVtZW50YXRpb24ucnVuX3Rlc3QodGVzdCkK
KworICAgICAgICByZXR1cm4gc2VsZi5jb252ZXJ0X3Jlc3VsdCh0ZXN0LCByZXN1bHQpCisKKyAg
ICBkZWYgc2NyZWVuc2hvdChzZWxmLCB0ZXN0LCB2aWV3cG9ydF9zaXplLCBkcGkpOgorICAgICAg
ICAjIGh0dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxhdGZvcm0tdGVzdHMvd3B0L2lzc3Vlcy83MTM1
CisgICAgICAgIGFzc2VydCB2aWV3cG9ydF9zaXplIGlzIE5vbmUKKyAgICAgICAgYXNzZXJ0IGRw
aSBpcyBOb25lCisKKyAgICAgICAgcmV0dXJuIFdlYkRyaXZlclJ1bihzZWxmLmxvZ2dlciwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLl9zY3JlZW5zaG90LAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHNlbGYucHJvdG9jb2wsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgc2VsZi50ZXN0X3VybCh0ZXN0KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0
LnRpbWVvdXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5leHRyYV90aW1lb3V0
KS5ydW4oKQorCisgICAgZGVmIF9zY3JlZW5zaG90KHNlbGYsIHByb3RvY29sLCB1cmwsIHRpbWVv
dXQpOgorICAgICAgICB3ZWJkcml2ZXIgPSBwcm90b2NvbC53ZWJkcml2ZXIKKyAgICAgICAgd2Vi
ZHJpdmVyLnVybCA9IHVybAorCisgICAgICAgIHdlYmRyaXZlci5leGVjdXRlX2FzeW5jX3Njcmlw
dChzZWxmLndhaXRfc2NyaXB0KQorCisgICAgICAgIHNjcmVlbnNob3QgPSB3ZWJkcml2ZXIuc2Ny
ZWVuc2hvdCgpCisKKyAgICAgICAgIyBzdHJpcCBvZmYgdGhlIGRhdGE6aW1nL3BuZywgcGFydCBv
ZiB0aGUgdXJsCisgICAgICAgIGlmIHNjcmVlbnNob3Quc3RhcnRzd2l0aCgiZGF0YTppbWFnZS9w
bmc7YmFzZTY0LCIpOgorICAgICAgICAgICAgc2NyZWVuc2hvdCA9IHNjcmVlbnNob3Quc3BsaXQo
IiwiLCAxKVsxXQorCisgICAgICAgIHJldHVybiBzY3JlZW5zaG90CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93
cHRydW5uZXIvZXhlY3V0b3JzL3Byb3RvY29sLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2V4ZWN1dG9ycy9w
cm90b2NvbC5weQppbmRleCA3MWZjM2M5YThmNjUxOTEzZTUzMjY2ZjE4MWVmMjE2MWFjOTFjOTdl
Li4wNzU4MzEyZDY1ZjkwMDQzYjFjYmIyZjUzNmQzZDMxYzcxODEyYWQ2IDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5l
ci93cHRydW5uZXIvZXhlY3V0b3JzL3Byb3RvY29sLnB5CisrKyBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9leGVj
dXRvcnMvcHJvdG9jb2wucHkKQEAgLTEsNCArMSw1IEBACiBpbXBvcnQgdHJhY2ViYWNrCisKIGZy
b20gYWJjIGltcG9ydCBBQkNNZXRhLCBhYnN0cmFjdG1ldGhvZAogCiAKQEAgLTU2LDExICs1Nyw4
IEBAIGNsYXNzIFByb3RvY29sKG9iamVjdCk6CiAgICAgICAgIGV4Y2VwdCBFeGNlcHRpb246CiAg
ICAgICAgICAgICBpZiBtc2cgaXMgbm90IE5vbmU6CiAgICAgICAgICAgICAgICAgc2VsZi5sb2dn
ZXIud2FybmluZyhtc2cpCi0gICAgICAgICAgICBzZWxmLmxvZ2dlci5lcnJvcih0cmFjZWJhY2su
Zm9ybWF0X2V4YygpKQotICAgICAgICAgICAgc2VsZi5leGVjdXRvci5ydW5uZXIuc2VuZF9tZXNz
YWdlKCJpbml0X2ZhaWxlZCIpCi0gICAgICAgICAgICByZXR1cm4KLSAgICAgICAgZWxzZToKLSAg
ICAgICAgICAgIHNlbGYuZXhlY3V0b3IucnVubmVyLnNlbmRfbWVzc2FnZSgiaW5pdF9zdWNjZWVk
ZWQiKQorICAgICAgICAgICAgc2VsZi5sb2dnZXIud2FybmluZyh0cmFjZWJhY2suZm9ybWF0X2V4
YygpKQorICAgICAgICAgICAgcmFpc2UKIAogICAgIEBhYnN0cmFjdG1ldGhvZAogICAgIGRlZiBj
b25uZWN0KHNlbGYpOgpAQCAtMTExLDExICsxMDksMTEgQEAgY2xhc3MgQmFzZVByb3RvY29sUGFy
dChQcm90b2NvbFBhcnQpOgogICAgIG5hbWUgPSAiYmFzZSIKIAogICAgIEBhYnN0cmFjdG1ldGhv
ZAotICAgIGRlZiBleGVjdXRlX3NjcmlwdChzZWxmLCBzY3JpcHQsIGFzeW5jPUZhbHNlKToKKyAg
ICBkZWYgZXhlY3V0ZV9zY3JpcHQoc2VsZiwgc2NyaXB0LCBhc3luY2hyb25vdXM9RmFsc2UpOgog
ICAgICAgICAiIiJFeGVjdXRlIGphdmFzY3JpcHQgaW4gdGhlIGN1cnJlbnQgV2luZG93LgogCiAg
ICAgICAgIDpwYXJhbSBzdHIgc2NyaXB0OiBUaGUganMgc291cmNlIHRvIGV4ZWN1dGUuIFRoaXMg
aXMgaW1wbGljaXRseSB3cmFwcGVkIGluIGEgZnVuY3Rpb24uCi0gICAgICAgIDpwYXJhbSBib29s
IGFzeW5jOiBXaGV0aGVyIHRoZSBzY3JpcHQgaXMgYXN5bmNocm9ub3VzIGluIHRoZSB3ZWJkcml2
ZXIKKyAgICAgICAgOnBhcmFtIGJvb2wgYXN5bmNocm9ub3VzOiBXaGV0aGVyIHRoZSBzY3JpcHQg
aXMgYXN5bmNocm9ub3VzIGluIHRoZSB3ZWJkcml2ZXIKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHNlbnNlIGkuZS4gd2hldGhlciB0aGUgcmV0dXJuIHZhbHVlIGlzIHRoZSByZXN1bHQgb2YK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoZSBpbml0aWFsIGZ1bmN0aW9uIGNhbGwgb3Ig
aWYgaXQgd2FpdHMgZm9yIHNvbWUgY2FsbGJhY2suCiAgICAgICAgIDpyZXR1cm5zOiBUaGUgcmVz
dWx0IG9mIHRoZSBzY3JpcHQgZXhlY3V0aW9uLgpAQCAtMjM3LDYgKzIzNSwxNyBAQCBjbGFzcyBT
ZWxlY3RvclByb3RvY29sUGFydChQcm90b2NvbFBhcnQpOgogCiAgICAgbmFtZSA9ICJzZWxlY3Qi
CiAKKyAgICBkZWYgZWxlbWVudF9ieV9zZWxlY3RvcihzZWxmLCBlbGVtZW50X3NlbGVjdG9yLCBm
cmFtZT0id2luZG93Iik6CisgICAgICAgIGVsZW1lbnRzID0gc2VsZi5lbGVtZW50c19ieV9zZWxl
Y3Rvcl9hbmRfZnJhbWUoZWxlbWVudF9zZWxlY3RvciwgZnJhbWUpCisgICAgICAgIGZyYW1lX25h
bWUgPSAid2luZG93IgorICAgICAgICBpZiAoZnJhbWUgIT0gIndpbmRvdyIpOgorICAgICAgICAg
ICAgZnJhbWVfbmFtZSA9IGZyYW1lLmlkCisgICAgICAgIGlmIGxlbihlbGVtZW50cykgPT0gMDoK
KyAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoIlNlbGVjdG9yICclcycgaW4gZnJhbWUgJyVz
JyBtYXRjaGVzIG5vIGVsZW1lbnRzIiAlIChlbGVtZW50X3NlbGVjdG9yLCBmcmFtZV9uYW1lKSkK
KyAgICAgICAgZWxpZiBsZW4oZWxlbWVudHMpID4gMToKKyAgICAgICAgICAgIHJhaXNlIFZhbHVl
RXJyb3IoIlNlbGVjdG9yICclcycgaW4gZnJhbWUgJyVzJyBtYXRjaGVzIG11bHRpcGxlIGVsZW1l
bnRzIiAlIChlbGVtZW50X3NlbGVjdG9yLCBmcmFtZV9uYW1lKSkKKyAgICAgICAgcmV0dXJuIGVs
ZW1lbnRzWzBdCisKICAgICBAYWJzdHJhY3RtZXRob2QKICAgICBkZWYgZWxlbWVudHNfYnlfc2Vs
ZWN0b3Ioc2VsZiwgc2VsZWN0b3IpOgogICAgICAgICAiIiJTZWxlY3QgZWxlbWVudHMgbWF0Y2hp
bmcgYSBDU1Mgc2VsZWN0b3IKQEAgLTI0NSw2ICsyNTQsMTMgQEAgY2xhc3MgU2VsZWN0b3JQcm90
b2NvbFBhcnQoUHJvdG9jb2xQYXJ0KToKICAgICAgICAgOnJldHVybnM6IEEgbGlzdCBvZiBwcm90
b2NvbC1zcGVjaWZpYyBoYW5kbGVzIHRvIGVsZW1lbnRzIiIiCiAgICAgICAgIHBhc3MKIAorICAg
IEBhYnN0cmFjdG1ldGhvZAorICAgIGRlZiBlbGVtZW50c19ieV9zZWxlY3Rvcl9hbmRfZnJhbWUo
c2VsZiwgZWxlbWVudF9zZWxlY3RvciwgZnJhbWUpOgorICAgICAgICAiIiJTZWxlY3QgZWxlbWVu
dHMgbWF0Y2hpbmcgYSBDU1Mgc2VsZWN0b3IKKyAgICAgICAgOnBhcmFtIHN0ciBzZWxlY3Rvcjog
VGhlIENTUyBzZWxlY3RvcgorICAgICAgICA6cmV0dXJuczogQSBsaXN0IG9mIHByb3RvY29sLXNw
ZWNpZmljIGhhbmRsZXMgdG8gZWxlbWVudHMiIiIKKyAgICAgICAgcGFzcworCiAKIGNsYXNzIENs
aWNrUHJvdG9jb2xQYXJ0KFByb3RvY29sUGFydCk6CiAgICAgIiIiUHJvdG9jb2wgcGFydCBmb3Ig
cGVyZm9ybWluZyB0cnVzdGVkIGNsaWNrcyIiIgpAQCAtMjU5LDYgKzI3NSw3IEBAIGNsYXNzIENs
aWNrUHJvdG9jb2xQYXJ0KFByb3RvY29sUGFydCk6CiAgICAgICAgIDpwYXJhbSBlbGVtZW50OiBB
IHByb3RvY29sLXNwZWNpZmljIGhhbmRsZSB0byBhbiBlbGVtZW50LiIiIgogICAgICAgICBwYXNz
CiAKKwogY2xhc3MgU2VuZEtleXNQcm90b2NvbFBhcnQoUHJvdG9jb2xQYXJ0KToKICAgICAiIiJQ
cm90b2NvbCBwYXJ0IGZvciBwZXJmb3JtaW5nIHRydXN0ZWQgY2xpY2tzIiIiCiAgICAgX19tZXRh
Y2xhc3NfXyA9IEFCQ01ldGEKQEAgLTI3NCw2ICsyOTEsMzQgQEAgY2xhc3MgU2VuZEtleXNQcm90
b2NvbFBhcnQoUHJvdG9jb2xQYXJ0KToKICAgICAgICAgcGFzcwogCiAKK2NsYXNzIEdlbmVyYXRl
VGVzdFJlcG9ydFByb3RvY29sUGFydChQcm90b2NvbFBhcnQpOgorICAgICIiIlByb3RvY29sIHBh
cnQgZm9yIGdlbmVyYXRpbmcgdGVzdCByZXBvcnRzIiIiCisgICAgX19tZXRhY2xhc3NfXyA9IEFC
Q01ldGEKKworICAgIG5hbWUgPSAiZ2VuZXJhdGVfdGVzdF9yZXBvcnQiCisKKyAgICBAYWJzdHJh
Y3RtZXRob2QKKyAgICBkZWYgZ2VuZXJhdGVfdGVzdF9yZXBvcnQoc2VsZiwgbWVzc2FnZSk6Cisg
ICAgICAgICIiIkdlbmVyYXRlIGEgdGVzdCByZXBvcnQuCisKKyAgICAgICAgOnBhcmFtIG1lc3Nh
Z2U6IFRoZSBtZXNzYWdlIHRvIGJlIGNvbnRhaW5lZCBpbiB0aGUgcmVwb3J0LiIiIgorICAgICAg
ICBwYXNzCisKKworY2xhc3MgQWN0aW9uU2VxdWVuY2VQcm90b2NvbFBhcnQoUHJvdG9jb2xQYXJ0
KToKKyAgICAiIiJQcm90b2NvbCBwYXJ0IGZvciBwZXJmb3JtaW5nIHRydXN0ZWQgY2xpY2tzIiIi
CisgICAgX19tZXRhY2xhc3NfXyA9IEFCQ01ldGEKKworICAgIG5hbWUgPSAiYWN0aW9uX3NlcXVl
bmNlIgorCisgICAgQGFic3RyYWN0bWV0aG9kCisgICAgZGVmIHNlbmRfYWN0aW9ucyhzZWxmLCBh
Y3Rpb25zKToKKyAgICAgICAgIiIiU2VuZCBhIHNlcXVlbmNlIG9mIGFjdGlvbnMgdG8gdGhlIHdp
bmRvdy4KKworICAgICAgICA6cGFyYW0gYWN0aW9uczogQSBwcm90b2NvbC1zcGVjaWZpYyBoYW5k
bGUgdG8gYW4gYXJyYXkgb2YgYWN0aW9ucy4iIiIKKyAgICAgICAgcGFzcworCisKIGNsYXNzIFRl
c3REcml2ZXJQcm90b2NvbFBhcnQoUHJvdG9jb2xQYXJ0KToKICAgICAiIiJQcm90b2NvbCBwYXJ0
IHRoYXQgaW1wbGVtZW50cyB0aGUgYmFzaWMgZnVuY3Rpb25hbGl0eSByZXF1aXJlZCBmb3IKICAg
ICBhbGwgdGVzdGRyaXZlci1iYXNlZCB0ZXN0cy4iIiIKQEAgLTMyMCwzICszNjUsNjIgQEAgY2xh
c3MgQ292ZXJhZ2VQcm90b2NvbFBhcnQoUHJvdG9jb2xQYXJ0KToKICAgICBkZWYgZHVtcChzZWxm
KToKICAgICAgICAgIiIiRHVtcCBjb3ZlcmFnZSBjb3VudGVycyIiIgogICAgICAgICBwYXNzCisK
K2NsYXNzIFZpcnR1YWxBdXRoZW50aWNhdG9yUHJvdG9jb2xQYXJ0KFByb3RvY29sUGFydCk6Cisg
ICAgIiIiUHJvdG9jb2wgcGFydCBmb3IgY3JlYXRpbmcgYW5kIG1hbmlwdWxhdGluZyB2aXJ0dWFs
IGF1dGhlbnRpY2F0b3JzIiIiCisgICAgX19tZXRhY2xhc3NfXyA9IEFCQ01ldGEKKworICAgIG5h
bWUgPSAidmlydHVhbF9hdXRoZW50aWNhdG9yIgorCisgICAgQGFic3RyYWN0bWV0aG9kCisgICAg
ZGVmIGFkZF92aXJ0dWFsX2F1dGhlbnRpY2F0b3Ioc2VsZiwgY29uZmlnKToKKyAgICAgICAgIiIi
QWRkIGEgdmlydHVhbCBhdXRoZW50aWNhdG9yCisKKyAgICAgICAgOnBhcmFtIGNvbmZpZzogVGhl
IEF1dGhlbnRpY2F0b3IgQ29uZmlndXJhdGlvbiIiIgorICAgICAgICBwYXNzCisKKyAgICBAYWJz
dHJhY3RtZXRob2QKKyAgICBkZWYgcmVtb3ZlX3ZpcnR1YWxfYXV0aGVudGljYXRvcihzZWxmLCBh
dXRoZW50aWNhdG9yX2lkKToKKyAgICAgICAgIiIiUmVtb3ZlIGEgdmlydHVhbCBhdXRoZW50aWNh
dG9yCisKKyAgICAgICAgOnBhcmFtIHN0ciBhdXRoZW50aWNhdG9yX2lkOiBUaGUgSUQgb2YgdGhl
IGF1dGhlbnRpY2F0b3IgdG8gcmVtb3ZlIiIiCisgICAgICAgIHBhc3MKKworICAgIEBhYnN0cmFj
dG1ldGhvZAorICAgIGRlZiBhZGRfY3JlZGVudGlhbChzZWxmLCBhdXRoZW50aWNhdG9yX2lkLCBj
cmVkZW50aWFsKToKKyAgICAgICAgIiIiSW5qZWN0IGEgY3JlZGVudGlhbCBvbnRvIGFuIGF1dGhl
bnRpY2F0b3IKKworICAgICAgICA6cGFyYW0gc3RyIGF1dGhlbnRpY2F0b3JfaWQ6IFRoZSBJRCBv
ZiB0aGUgYXV0aGVudGljYXRvciB0byBhZGQgdGhlIGNyZWRlbnRpYWwgdG8KKyAgICAgICAgOnBh
cmFtIGNyZWRlbnRpYWw6IFRoZSBjcmVkZW50aWFsIHRvIGluamVjdCIiIgorICAgICAgICBwYXNz
CisKKyAgICBAYWJzdHJhY3RtZXRob2QKKyAgICBkZWYgZ2V0X2NyZWRlbnRpYWxzKHNlbGYsIGF1
dGhlbnRpY2F0b3JfaWQpOgorICAgICAgICAiIiJHZXQgdGhlIGNyZWRlbnRpYWxzIHN0b3JlZCBp
biBhbiBhdXRoZW50aWNhdG9yCisKKyAgICAgICAgOnBhcmFtIHN0ciBhdXRoZW50aWNhdG9yX2lk
OiBUaGUgSUQgb2YgdGhlIGF1dGhlbnRpY2F0b3IKKyAgICAgICAgOnJldHVybnM6IEFuIGFycmF5
IHdpdGggdGhlIGNyZWRlbnRpYWxzIHN0b3JlZCBvbiB0aGUgYXV0aGVudGljYXRvciIiIgorICAg
ICAgICBwYXNzCisKKyAgICBAYWJzdHJhY3RtZXRob2QKKyAgICBkZWYgcmVtb3ZlX2NyZWRlbnRp
YWwoc2VsZiwgYXV0aGVudGljYXRvcl9pZCwgY3JlZGVudGlhbF9pZCk6CisgICAgICAgICIiIlJl
bW92ZSBhIGNyZWRlbnRpYWwgc3RvcmVkIGluIGFuIGF1dGhlbnRpY2F0b3IKKworICAgICAgICA6
cGFyYW0gc3RyIGF1dGhlbnRpY2F0b3JfaWQ6IFRoZSBJRCBvZiB0aGUgYXV0aGVudGljYXRvcgor
ICAgICAgICA6cGFyYW0gc3RyIGNyZWRlbnRpYWxfaWQ6IFRoZSBJRCBvZiB0aGUgY3JlZGVudGlh
bCIiIgorICAgICAgICBwYXNzCisKKyAgICBAYWJzdHJhY3RtZXRob2QKKyAgICBkZWYgcmVtb3Zl
X2FsbF9jcmVkZW50aWFscyhzZWxmLCBhdXRoZW50aWNhdG9yX2lkKToKKyAgICAgICAgIiIiUmVt
b3ZlIGFsbCB0aGUgY3JlZGVudGlhbHMgc3RvcmVkIGluIGFuIGF1dGhlbnRpY2F0b3IKKworICAg
ICAgICA6cGFyYW0gc3RyIGF1dGhlbnRpY2F0b3JfaWQ6IFRoZSBJRCBvZiB0aGUgYXV0aGVudGlj
YXRvciIiIgorICAgICAgICBwYXNzCisKKyAgICBAYWJzdHJhY3RtZXRob2QKKyAgICBkZWYgc2V0
X3VzZXJfdmVyaWZpZWQoc2VsZiwgYXV0aGVudGljYXRvcl9pZCwgdXYpOgorICAgICAgICAiIiJT
ZXRzIHRoZSB1c2VyIHZlcmlmaWVkIGZsYWcgb24gYW4gYXV0aGVudGljYXRvcgorCisgICAgICAg
IDpwYXJhbSBzdHIgYXV0aGVudGljYXRvcl9pZDogVGhlIElEIG9mIHRoZSBhdXRoZW50aWNhdG9y
CisgICAgICAgIDpwYXJhbSBib29sIHV2OiB0aGUgdXNlciB2ZXJpZmllZCBmbGFnIiIiCisgICAg
ICAgIHBhc3MKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9leGVjdXRvcnMvcmVmdGVzdC13YWl0
X21hcmlvbmV0dGUuanMgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvZXhlY3V0b3JzL3JlZnRlc3Qtd2FpdF9tYXJp
b25ldHRlLmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2MWY4OTRmODc2MGJjNjIz
Yzg5NTNlMGViN2YwYzNlMDFkNWY3MmU0Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9leGVjdXRvcnMvcmVmdGVzdC13YWl0X21hcmlv
bmV0dGUuanMKKysrIC9kZXYvbnVsbApAQCAtMSwxOSArMCwwIEBACi12YXIgY2FsbGJhY2sgPSBh
cmd1bWVudHNbYXJndW1lbnRzLmxlbmd0aCAtIDFdOwotCi1mdW5jdGlvbiB0ZXN0KHgpIHsKLSAg
aWYgKCFyb290LmNsYXNzTGlzdC5jb250YWlucygicmVmdGVzdC13YWl0IikpIHsKLSAgICBvYnNl
cnZlci5kaXNjb25uZWN0KCk7Ci0gICAgY2FsbGJhY2soKTsKLSAgfQotfQotCi12YXIgcm9vdCA9
IGRvY3VtZW50LmRvY3VtZW50RWxlbWVudDsKLXZhciBvYnNlcnZlciA9IG5ldyBNdXRhdGlvbk9i
c2VydmVyKHRlc3QpOwotCi1vYnNlcnZlci5vYnNlcnZlKHJvb3QsIHthdHRyaWJ1dGVzOiB0cnVl
fSk7Ci0KLWlmIChkb2N1bWVudC5yZWFkeVN0YXRlICE9ICJjb21wbGV0ZSIpIHsKLSAgb25sb2Fk
ID0gdGVzdAotfSBlbHNlIHsKLSAgdGVzdCgpOwotfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVy
L2V4ZWN1dG9ycy9yZWZ0ZXN0LXdhaXRfd2ViZHJpdmVyLmpzIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2V4ZWN1
dG9ycy9yZWZ0ZXN0LXdhaXRfd2ViZHJpdmVyLmpzCmluZGV4IGMxY2M2NDllMzIzZjk3NDIzOTZi
NzNlMzAxZmYzMDYyNzFiMTYwZDMuLmY4NmVkYWNkZWYyNTI1N2U0ZWRhOTMwNGIyMDkzODFhMDFk
N2YzMTMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9leGVjdXRvcnMvcmVmdGVzdC13YWl0X3dl
YmRyaXZlci5qcworKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvZXhlY3V0b3JzL3JlZnRlc3Qtd2FpdF93ZWJk
cml2ZXIuanMKQEAgLTEsMjEgKzEsMjAgQEAKIHZhciBjYWxsYmFjayA9IGFyZ3VtZW50c1thcmd1
bWVudHMubGVuZ3RoIC0gMV07Cit2YXIgb2JzZXJ2ZXIgPSBudWxsOwordmFyIHJvb3QgPSBkb2N1
bWVudC5kb2N1bWVudEVsZW1lbnQ7CiAKLWZ1bmN0aW9uIHJvb3Rfd2FpdCgpIHsKLSAgaWYgKCFy
b290LmNsYXNzTGlzdC5jb250YWlucygicmVmdGVzdC13YWl0IikpIHsKLSAgICBvYnNlcnZlci5k
aXNjb25uZWN0KCk7Ci0KLSAgICBpZiAoRG9jdW1lbnQucHJvdG90eXBlLmhhc093blByb3BlcnR5
KCJmb250cyIpKSB7Ci0gICAgICBkb2N1bWVudC5mb250cy5yZWFkeS50aGVuKHJlYWR5X2Zvcl9z
Y3JlZW5zaG90KTsKLSAgICB9IGVsc2UgewotICAgICAgLy8gVGhpcyBtaWdodCB0YWtlIHRoZSBz
Y3JlZW5zaG90IHRvbyBlYXJseSwgZGVwZW5kaW5nIG9uIHdoZXRoZXIgdGhlCi0gICAgICAvLyBs
b2FkIGV2ZW50IGlzIGJsb2NrZWQgb24gZm9udHMgYmVpbmcgbG9hZGVkLiBTZWU6Ci0gICAgICAv
LyBodHRwczovL2dpdGh1Yi5jb20vdzNjL2Nzc3dnLWRyYWZ0cy9pc3N1ZXMvMTA4OAotICAgICAg
cmVhZHlfZm9yX3NjcmVlbnNob3QoKTsKLSAgICB9CitmdW5jdGlvbiB3YWl0X2xvYWQoKSB7Cisg
IGlmIChEb2N1bWVudC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkoImZvbnRzIikpIHsKKyAgICBk
b2N1bWVudC5mb250cy5yZWFkeS50aGVuKHdhaXRfcGFpbnRzKTsKKyAgfSBlbHNlIHsKKyAgICAv
LyBUaGlzIG1pZ2h0IHRha2UgdGhlIHNjcmVlbnNob3QgdG9vIGVhcmx5LCBkZXBlbmRpbmcgb24g
d2hldGhlciB0aGUKKyAgICAvLyBsb2FkIGV2ZW50IGlzIGJsb2NrZWQgb24gZm9udHMgYmVpbmcg
bG9hZGVkLiBTZWU6CisgICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL3czYy9jc3N3Zy1kcmFmdHMv
aXNzdWVzLzEwODgKKyAgICB3YWl0X3BhaW50cygpOwogICB9CiB9CiAKLWZ1bmN0aW9uIHJlYWR5
X2Zvcl9zY3JlZW5zaG90KCkgeworCitmdW5jdGlvbiB3YWl0X3BhaW50cygpIHsKICAgLy8gQXMg
b2YgMjAxNy0wNC0wNSwgdGhlIENocm9taXVtIHdlYiBicm93c2VyIGV4aGliaXRzIGEgcmVuZGVy
aW5nIGJ1ZwogICAvLyAoaHR0cHM6Ly9idWdzLmNocm9taXVtLm9yZy9wL2Nocm9taXVtL2lzc3Vl
cy9kZXRhaWw/aWQ9NzA4NzU3KSB0aGF0CiAgIC8vIHByb2R1Y2VzIGluc3RhYmlsaXR5IGR1cmlu
ZyBzY3JlZW4gY2FwdHVyZS4gVGhlIGZvbGxvd2luZyB1c2Ugb2YKQEAgLTI3LDE4ICsyNiwyOSBA
QCBmdW5jdGlvbiByZWFkeV9mb3Jfc2NyZWVuc2hvdCgpIHsKIAogICByZXF1ZXN0QW5pbWF0aW9u
RnJhbWUoZnVuY3Rpb24oKSB7CiAgICAgcmVxdWVzdEFuaW1hdGlvbkZyYW1lKGZ1bmN0aW9uKCkg
ewotICAgICAgY2FsbGJhY2soKTsKKyAgICAgIHNjcmVlbnNob3RfaWZfcmVhZHkoKTsKICAgICB9
KTsKICAgfSk7CiB9CiAKLXZhciByb290ID0gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50OwotdmFy
IG9ic2VydmVyID0gbmV3IE11dGF0aW9uT2JzZXJ2ZXIocm9vdF93YWl0KTsKK2Z1bmN0aW9uIHNj
cmVlbnNob3RfaWZfcmVhZHkoKSB7CisgIGlmIChyb290LmNsYXNzTGlzdC5jb250YWlucygicmVm
dGVzdC13YWl0IikgJiYKKyAgICAgIG9ic2VydmVyID09PSBudWxsKSB7CisgICAgb2JzZXJ2ZXIg
PSBuZXcgTXV0YXRpb25PYnNlcnZlcih3YWl0X3BhaW50cyk7CisgICAgb2JzZXJ2ZXIub2JzZXJ2
ZShyb290LCB7YXR0cmlidXRlczogdHJ1ZX0pOworICAgIHZhciBldmVudCA9IG5ldyBFdmVudCgi
VGVzdFJlbmRlcmVkIiwge2J1YmJsZXM6IHRydWV9KTsKKyAgICByb290LmRpc3BhdGNoRXZlbnQo
ZXZlbnQpOworICAgIHJldHVybjsKKyAgfQorICBpZiAob2JzZXJ2ZXIgIT09IG51bGwpIHsKKyAg
ICBvYnNlcnZlci5kaXNjb25uZWN0KCk7CisgIH0KKyAgY2FsbGJhY2soKTsKK30KIAotb2JzZXJ2
ZXIub2JzZXJ2ZShyb290LCB7YXR0cmlidXRlczogdHJ1ZX0pOwogCiBpZiAoZG9jdW1lbnQucmVh
ZHlTdGF0ZSAhPSAiY29tcGxldGUiKSB7Ci0gICAgb25sb2FkID0gcm9vdF93YWl0OworICBhZGRF
dmVudExpc3RlbmVyKCdsb2FkJywgd2FpdF9sb2FkKTsKIH0gZWxzZSB7Ci0gICAgcm9vdF93YWl0
KCk7CisgIHdhaXRfbG9hZCgpOwogfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2V4ZWN1dG9y
cy9yZWZ0ZXN0LmpzIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2V4ZWN1dG9ycy9yZWZ0ZXN0LmpzCmluZGV4IDVi
ZDVjNjA5Y2JkNWU3OTk3ODdjOTNiYWM2NzNmYjhlMzkyYTdjMzAuLjFiYTk4YzY4NmYwOWMzODRi
NzE0YmRjMzZmMjE0NTU4YTgyY2YzYWQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9leGVjdXRv
cnMvcmVmdGVzdC5qcworKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvZXhlY3V0b3JzL3JlZnRlc3QuanMKQEAg
LTEgKzEgQEAKLXZhciB3aW4gPSB3aW5kb3cub3BlbigiYWJvdXQ6YmxhbmsiLCAidGVzdCIsICJ3
aWR0aD02MDAsaGVpZ2h0PTYwMCIpOwordmFyIHdpbiA9IHdpbmRvdy5vcGVuKCJhYm91dDpibGFu
ayIsICJ0ZXN0IiwgImxlZnQ9MCx0b3A9MCx3aWR0aD04MDAsaGVpZ2h0PTYwMCIpOwpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93
cHRydW5uZXIvd3B0cnVubmVyL2V4ZWN1dG9ycy9ydW5uZXIuanMgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvZXhl
Y3V0b3JzL3J1bm5lci5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xNzFlNmZlYmQ5ZmE2MzQ4MDVmMzFjYTlkMmI5
ZTc0MTNlNmQyNzRjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2V4ZWN1dG9ycy9y
dW5uZXIuanMKQEAgLTAsMCArMSBAQAorZG9jdW1lbnQudGl0bGUgPSAnJSh0aXRsZSlzJzsKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvd3B0cnVubmVyL3dwdHJ1bm5lci9leGVjdXRvcnMvdGVzdGhhcm5lc3Nfd2ViZHJpdmVyLmpz
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRy
dW5uZXIvd3B0cnVubmVyL2V4ZWN1dG9ycy90ZXN0aGFybmVzc193ZWJkcml2ZXIuanMKZGVsZXRl
ZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDdmMDAwNTBmYTdlZDZkYWY4OWNlNmFmN2EwZTYxMGQw
ZTVkZGM0MmIuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5u
ZXIvd3B0cnVubmVyL2V4ZWN1dG9ycy90ZXN0aGFybmVzc193ZWJkcml2ZXIuanMKKysrIC9kZXYv
bnVsbApAQCAtMSwyNSArMCwwIEBACi13aW5kb3cudGltZW91dF9tdWx0aXBsaWVyID0gJSh0aW1l
b3V0X211bHRpcGxpZXIpZDsKLQotd2luZG93Lm1lc3NhZ2VfcXVldWUgPSBbXTsKLQotd2luZG93
LnNldE1lc3NhZ2VMaXN0ZW5lciA9IGZ1bmN0aW9uKGZ1bmMpIHsKLSAgd2luZG93LmN1cnJlbnRf
bGlzdGVuZXIgPSBmdW5jOwotICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigKLSAgICAibWVzc2Fn
ZSIsCi0gICAgZnVuYywKLSAgICBmYWxzZQotICApOwotfTsKLQotd2luZG93LnNldE1lc3NhZ2VM
aXN0ZW5lcihmdW5jdGlvbihldmVudCkgewotICB3aW5kb3cubWVzc2FnZV9xdWV1ZS5wdXNoKGV2
ZW50KTsKLX0pOwotCi13aW5kb3cud2luID0gd2luZG93Lm9wZW4oIiUoYWJzX3VybClzIiwgIiUo
d2luZG93X2lkKXMiKTsKLQotaWYgKCUodGltZW91dClzICE9IG51bGwpIHsKLSAgd2luZG93LnRp
bWVyID0gc2V0VGltZW91dChmdW5jdGlvbigpIHsKLSAgICB3aW5kb3cud2luLnRpbWVvdXQoKTsK
LSAgICB3aW5kb3cud2luLmNsb3NlKCk7Ci0gIH0sICUodGltZW91dClzKTsKLX0KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0
cnVubmVyL3dwdHJ1bm5lci9leGVjdXRvcnMvdGVzdGhhcm5lc3Nfd2ViZHJpdmVyX3Jlc3VtZS5q
cyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0
cnVubmVyL3dwdHJ1bm5lci9leGVjdXRvcnMvdGVzdGhhcm5lc3Nfd2ViZHJpdmVyX3Jlc3VtZS5q
cwppbmRleCA3YTJkZjk4ZWQ0ZTczYmY0NjE4YjE2OWFhMjk3ZjBjMDc1ZmY4YTE5Li4zNmQwODZj
OTc0N2E1NmNhNzEyMmM4OTljZmNiNDZkMDBkZDYwYjE1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5u
ZXIvZXhlY3V0b3JzL3Rlc3RoYXJuZXNzX3dlYmRyaXZlcl9yZXN1bWUuanMKKysrIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0
cnVubmVyL2V4ZWN1dG9ycy90ZXN0aGFybmVzc193ZWJkcml2ZXJfcmVzdW1lLmpzCkBAIC0xLDQ2
ICsxLDUgQEAKLXZhciBjYWxsYmFjayA9IGFyZ3VtZW50c1thcmd1bWVudHMubGVuZ3RoIC0gMV07
Ci0KLWZ1bmN0aW9uIHByb2Nlc3NfZXZlbnQoZXZlbnQpIHsKLSAgdmFyIGRhdGEgPSBldmVudC5k
YXRhOwotCi0gIHZhciBwYXlsb2FkID0gdW5kZWZpbmVkOwotCi0gIHN3aXRjaChkYXRhLnR5cGUp
IHsKLSAgY2FzZSAiY29tcGxldGUiOgotICAgIHZhciB0ZXN0cyA9IGV2ZW50LmRhdGEudGVzdHM7
Ci0gICAgdmFyIHN0YXR1cyA9IGV2ZW50LmRhdGEuc3RhdHVzOwotCi0gICAgdmFyIHN1YnRlc3Rf
cmVzdWx0cyA9IHRlc3RzLm1hcChmdW5jdGlvbih4KSB7Ci0gICAgICByZXR1cm4gW3gubmFtZSwg
eC5zdGF0dXMsIHgubWVzc2FnZSwgeC5zdGFja107Ci0gICAgfSk7Ci0gICAgcGF5bG9hZCA9IFtz
dGF0dXMuc3RhdHVzLAotICAgICAgICAgICAgICAgc3RhdHVzLm1lc3NhZ2UsCi0gICAgICAgICAg
ICAgICBzdGF0dXMuc3RhY2ssCi0gICAgICAgICAgICAgICBzdWJ0ZXN0X3Jlc3VsdHNdOwotICAg
IGNsZWFyVGltZW91dCh3aW5kb3cudGltZXIpOwotICAgIGJyZWFrOwotCi0gIGNhc2UgImFjdGlv
biI6Ci0gICAgd2luZG93LnNldE1lc3NhZ2VMaXN0ZW5lcihmdW5jdGlvbihldmVudCkgewotICAg
ICAgd2luZG93Lm1lc3NhZ2VfcXVldWUucHVzaChldmVudCk7Ci0gICAgfSk7Ci0gICAgcGF5bG9h
ZCA9IGRhdGE7Ci0gICAgYnJlYWs7Ci0gIGRlZmF1bHQ6Ci0gICAgcmV0dXJuOwotICB9Ci0KLSAg
Y2FsbGJhY2soWyIlKHVybClzIiwgZGF0YS50eXBlLCBwYXlsb2FkXSk7Ci19Ci0KLXdpbmRvdy5y
ZW1vdmVFdmVudExpc3RlbmVyKCJtZXNzYWdlIiwgd2luZG93LmN1cnJlbnRfbGlzdGVuZXIpOwot
aWYgKHdpbmRvdy5tZXNzYWdlX3F1ZXVlLmxlbmd0aCkgewotICB2YXIgbmV4dCA9IHdpbmRvdy5t
ZXNzYWdlX3F1ZXVlLnNoaWZ0KCk7Ci0gIHByb2Nlc3NfZXZlbnQobmV4dCk7Ci19IGVsc2Ugewot
ICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigKLSAgICAibWVzc2FnZSIsIGZ1bmN0aW9uIGYoZXZl
bnQpIHsKLSAgICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCJtZXNzYWdlIiwgZik7Ci0g
ICAgICBwcm9jZXNzX2V2ZW50KGV2ZW50KTsKLSAgICB9LCBmYWxzZSk7Ci19CisvLyBXZSBoYXZl
IHRvIHNldCB0aGUgdXJsIGhlcmUgdG8gZW5zdXJlIHdlIGdldCB0aGUgc2FtZSBlc2NhcGluZyBh
cyBpbiB0aGUgaGFybmVzcworLy8gYW5kIGFsc28gdG8gaGFuZGxlIHRoZSBjYXNlIHdoZXJlIHRo
ZSB0ZXN0IGNoYW5nZXMgdGhlIGZyYWdtZW50Cit3aW5kb3cuX193cHRydW5uZXJfdXJsID0gIiUo
dXJsKXMiOword2luZG93Ll9fd3B0cnVubmVyX3Rlc3Rkcml2ZXJfY2FsbGJhY2sgPSBhcmd1bWVu
dHNbYXJndW1lbnRzLmxlbmd0aCAtIDFdOword2luZG93Ll9fd3B0cnVubmVyX3Byb2Nlc3NfbmV4
dF9ldmVudCgpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2V4ZWN1dG9ycy93M2MtaW1wb3J0
LmxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
d3B0cnVubmVyL3dwdHJ1bm5lci9leGVjdXRvcnMvdzNjLWltcG9ydC5sb2cKaW5kZXggZWI3ZjQz
OTZkN2VhNzFmMzBiNWY4ODlhNjk4NGYwNjM4ZjQ2YzJmMy4uZWI5MWRiOTNiNTMxM2FkZDY5NDU4
NWQyODdkNTQ2ZTM4OGRmNjRhZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2V4ZWN1dG9ycy93
M2MtaW1wb3J0LmxvZworKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvZXhlY3V0b3JzL3czYy1pbXBvcnQubG9n
CkBAIC0xOCw2ICsxOCw3IEBAIExpc3Qgb2YgZmlsZXM6CiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2V4ZWN1dG9y
cy9iYXNlLnB5CiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy93cHRydW5uZXIvd3B0cnVubmVyL2V4ZWN1dG9ycy9leGVjdXRvcmNocm9tZS5weQogL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVy
L3dwdHJ1bm5lci9leGVjdXRvcnMvZXhlY3V0b3JlZGdlLnB5CisvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2V4ZWN1
dG9ycy9leGVjdXRvcmVkZ2VjaHJvbWl1bS5weQogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9leGVjdXRvcnMvZXhl
Y3V0b3JpbnRlcm5ldGV4cGxvcmVyLnB5CiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2V4ZWN1dG9ycy9leGVjdXRv
cm1hcmlvbmV0dGUucHkKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvZXhlY3V0b3JzL2V4ZWN1dG9yb3BlcmEucHkK
QEAgLTI1LDEyICsyNiwxMiBAQCBMaXN0IG9mIGZpbGVzOgogL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9leGVjdXRv
cnMvZXhlY3V0b3JzZWxlbml1bS5weQogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9leGVjdXRvcnMvZXhlY3V0b3Jz
ZXJ2by5weQogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvd3B0cnVubmVyL3dwdHJ1bm5lci9leGVjdXRvcnMvZXhlY3V0b3JzZXJ2b2RyaXZlci5weQor
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVu
bmVyL3dwdHJ1bm5lci9leGVjdXRvcnMvZXhlY3V0b3J3ZWJkcml2ZXIucHkKIC9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5u
ZXIvZXhlY3V0b3JzL2V4ZWN1dG9yd2Via2l0LnB5CiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2V4ZWN1dG9ycy9w
cm9jZXNzLnB5CiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy93cHRydW5uZXIvd3B0cnVubmVyL2V4ZWN1dG9ycy9wcm90b2NvbC5weQotL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1
bm5lci9leGVjdXRvcnMvcmVmdGVzdC13YWl0X21hcmlvbmV0dGUuanMKIC9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIv
ZXhlY3V0b3JzL3JlZnRlc3Qtd2FpdF93ZWJkcml2ZXIuanMKIC9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvZXhlY3V0
b3JzL3JlZnRlc3QuanMKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvZXhlY3V0b3JzL3J1bm5lci5qcwogL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dw
dHJ1bm5lci9leGVjdXRvcnMvdGVzdGhhcm5lc3Nfc2Vydm9kcml2ZXIuanMKLS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5u
ZXIvZXhlY3V0b3JzL3Rlc3RoYXJuZXNzX3dlYmRyaXZlci5qcwogL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9leGVj
dXRvcnMvdGVzdGhhcm5lc3Nfd2ViZHJpdmVyX3Jlc3VtZS5qcwpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0
cnVubmVyL2V4cGVjdGVkdHJlZS5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9leHBlY3RlZHRyZWUucHkKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uNGQ1MDUwODZiZDhkOTkxYzk1M2MzNGQzOGQ4ZTFmYTBjYjkyMGY5OQotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9leHBlY3RlZHRyZWUucHkKQEAgLTAsMCArMSwxMzEg
QEAKK2Zyb20gbWF0aCBpbXBvcnQgbG9nCitmcm9tIGNvbGxlY3Rpb25zIGltcG9ydCBkZWZhdWx0
ZGljdAorCitjbGFzcyBOb2RlKG9iamVjdCk6CisgICAgZGVmIF9faW5pdF9fKHNlbGYsIHByb3As
IHZhbHVlKToKKyAgICAgICAgc2VsZi5wcm9wID0gcHJvcAorICAgICAgICBzZWxmLnZhbHVlID0g
dmFsdWUKKyAgICAgICAgc2VsZi5wYXJlbnQgPSBOb25lCisKKyAgICAgICAgc2VsZi5jaGlsZHJl
biA9IHNldCgpCisKKyAgICAgICAgIyBQb3B1bGF0ZWQgZm9yIGxlYWYgbm9kZXMKKyAgICAgICAg
c2VsZi5ydW5faW5mbyA9IHNldCgpCisgICAgICAgIHNlbGYucmVzdWx0X3ZhbHVlcyA9IGRlZmF1
bHRkaWN0KGludCkKKworICAgIGRlZiBhZGQoc2VsZiwgbm9kZSk6CisgICAgICAgIHNlbGYuY2hp
bGRyZW4uYWRkKG5vZGUpCisgICAgICAgIG5vZGUucGFyZW50ID0gc2VsZgorCisgICAgZGVmIF9f
aXRlcl9fKHNlbGYpOgorICAgICAgICB5aWVsZCBzZWxmCisgICAgICAgIGZvciBub2RlIGluIHNl
bGYuY2hpbGRyZW46CisgICAgICAgICAgICBmb3IgaXRlbSBpbiBub2RlOgorICAgICAgICAgICAg
ICAgIHlpZWxkIGl0ZW0KKworICAgIGRlZiBfX2xlbl9fKHNlbGYpOgorICAgICAgICByZXR1cm4g
MSArIHN1bShsZW4oaXRlbSkgZm9yIGl0ZW0gaW4gc2VsZi5jaGlsZHJlbikKKworCitkZWYgZW50
cm9weShyZXN1bHRzKToKKyAgICAiIiJUaGlzIGlzIGJhc2ljYWxseSBhIG1lYXN1cmUgb2YgdGhl
IHVuaWZvcm1pdHkgb2YgdGhlIHZhbHVlcyBpbiByZXN1bHRzCisgICAgYmFzZWQgb24gdGhlIHNo
YW5ub24gZW50cm9weSIiIgorCisgICAgcmVzdWx0X2NvdW50cyA9IGRlZmF1bHRkaWN0KGludCkK
KyAgICB0b3RhbCA9IGZsb2F0KGxlbihyZXN1bHRzKSkKKyAgICBmb3IgdmFsdWVzIGluIHJlc3Vs
dHMuaXRlcnZhbHVlcygpOgorICAgICAgICAjIE5vdCBzdXJlIHRoaXMgaXMgcmlnaHQsIHBvc3Np
Ymx5IHdhbnQgdG8gdHJlYXQgbXVsdGlwbGUgdmFsdWVzIGFzCisgICAgICAgICMgZGlzdGluY3Qg
ZnJvbSBtdWx0aXBsZSBvZiB0aGUgc2FtZSB2YWx1ZT8KKyAgICAgICAgZm9yIHZhbHVlIGluIHZh
bHVlczoKKyAgICAgICAgICAgIHJlc3VsdF9jb3VudHNbdmFsdWVdICs9IDEKKworICAgIGVudHJv
cHlfc3VtID0gMAorCisgICAgZm9yIGNvdW50IGluIHJlc3VsdF9jb3VudHMuaXRlcnZhbHVlcygp
OgorICAgICAgICBwcm9wID0gZmxvYXQoY291bnQpIC8gdG90YWwKKyAgICAgICAgZW50cm9weV9z
dW0gLT0gcHJvcCAqIGxvZyhwcm9wLCAyKQorCisgICAgcmV0dXJuIGVudHJvcHlfc3VtCisKKwor
ZGVmIHNwbGl0X3Jlc3VsdHMocHJvcCwgcmVzdWx0cyk6CisgICAgIiIiU3BsaXQgYSBkaWN0aW9u
YXJ5IG9mIHJlc3VsdHMgaW50byBhIGRpY3Rpb25hcnkgb2YgZGljdGlvbmFyaWVzIHdoZXJlCisg
ICAgZWFjaCBzdWItZGljdGlvbmFyeSBoYXMgYSBzcGVjaWZpYyB2YWx1ZSBvZiB0aGUgZ2l2ZW4g
cHJvcGVydHkiIiIKKyAgICBieV9wcm9wID0gZGVmYXVsdGRpY3QoZGljdCkKKyAgICBmb3IgcnVu
X2luZm8sIHZhbHVlIGluIHJlc3VsdHMuaXRlcml0ZW1zKCk6CisgICAgICAgIGJ5X3Byb3BbcnVu
X2luZm9bcHJvcF1dW3J1bl9pbmZvXSA9IHZhbHVlCisKKyAgICByZXR1cm4gYnlfcHJvcAorCisK
K2RlZiBidWlsZF90cmVlKHByb3BlcnRpZXMsIGRlcGVuZGVudF9wcm9wcywgcmVzdWx0cywgdHJl
ZT1Ob25lKToKKyAgICAiIiJCdWlsZCBhIGRlY2lzaW9uIHRyZWUgbWFwcGluZyBwcm9wZXJ0aWVz
IHRvIHJlc3VsdHMKKworICAgIDpwYXJhbSBwcm9wZXJ0aWVzOiAtIEEgbGlzdCBvZiBydW5faW5m
byBwcm9wZXJ0aWVzIHRvIGNvbnNpZGVyCisgICAgICAgICAgICAgICAgICAgICAgICAgaW4gdGhl
IHRyZWUKKyAgICA6cGFyYW0gZGVwZW5kZW50X3Byb3BzOiAtIEEgZGljdGlvbmFyeSBtYXBwaW5n
IHByb3BlcnR5IG5hbWUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvIHByb3BlcnRp
ZXMgdGhhdCBzaG91bGQgb25seSBiZSBjb25zaWRlcmVkCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBhZnRlciB0aGUgcHJvcGVydGllcyBpbiB0aGUga2V5LiBGb3IgZXhhbXBsZQorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgeyJvcyI6IFsidmVyc2lvbiJdfSBtZWFucyB0aGF0
ICJ2ZXJzaW9uIiB3b24ndAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmUgdXNlZCB1
bnRpbCBhZnRlciBvcy4KKyAgICA6cGFyYW0gcmVzdWx0czogRGljdGlvbmFyeSBtYXBwaW5nIHJ1
bl9pbmZvIHRvIHNldCBvZiByZXN1bHRzCisgICAgOnRyZWU6IEEgTm9kZSBvYmplY3QgdG8gdXNl
IGFzIHRoZSByb290IG9mIHRoZSAoc3ViKXRyZWUiIiIKKworICAgIGlmIHRyZWUgaXMgTm9uZToK
KyAgICAgICAgdHJlZSA9IE5vZGUoTm9uZSwgTm9uZSkKKworICAgIHByb3BfaW5kZXggPSB7cHJv
cDogaSBmb3IgaSwgcHJvcCBpbiBlbnVtZXJhdGUocHJvcGVydGllcyl9CisKKyAgICBhbGxfcmVz
dWx0cyA9IGRlZmF1bHRkaWN0KGludCkKKyAgICBmb3IgcmVzdWx0X3ZhbHVlcyBpbiByZXN1bHRz
Lml0ZXJ2YWx1ZXMoKToKKyAgICAgICAgZm9yIHJlc3VsdF92YWx1ZSwgY291bnQgaW4gcmVzdWx0
X3ZhbHVlcy5pdGVyaXRlbXMoKToKKyAgICAgICAgICAgIGFsbF9yZXN1bHRzW3Jlc3VsdF92YWx1
ZV0gKz0gY291bnQKKworICAgICMgSWYgdGhlcmUgaXMgb25seSBvbmUgcmVzdWx0IHdlIGFyZSBk
b25lCisgICAgaWYgbm90IHByb3BlcnRpZXMgb3IgbGVuKGFsbF9yZXN1bHRzKSA9PSAxOgorICAg
ICAgICBmb3IgdmFsdWUsIGNvdW50IGluIGFsbF9yZXN1bHRzLml0ZXJpdGVtcygpOgorICAgICAg
ICAgICAgdHJlZS5yZXN1bHRfdmFsdWVzW3ZhbHVlXSArPSBjb3VudAorICAgICAgICB0cmVlLnJ1
bl9pbmZvIHw9IHNldChyZXN1bHRzLmtleXMoKSkKKyAgICAgICAgcmV0dXJuIHRyZWUKKworICAg
IHJlc3VsdHNfcGFydGl0aW9ucyA9IFtdCisgICAgcmVtb3ZlX3Byb3BlcnRpZXMgPSBzZXQoKQor
ICAgIGZvciBwcm9wIGluIHByb3BlcnRpZXM6CisgICAgICAgIHJlc3VsdF9zZXRzID0gc3BsaXRf
cmVzdWx0cyhwcm9wLCByZXN1bHRzKQorICAgICAgICBpZiBsZW4ocmVzdWx0X3NldHMpID09IDE6
CisgICAgICAgICAgICAjIElmIHRoaXMgcHJvcGVydHkgZG9lc24ndCBwYXJ0aXRpb24gdGhlIHNw
YWNlIHRoZW4ganVzdCByZW1vdmUgaXQKKyAgICAgICAgICAgICMgZnJvbSB0aGUgc2V0IHRvIGNv
bnNpZGVyCisgICAgICAgICAgICByZW1vdmVfcHJvcGVydGllcy5hZGQocHJvcCkKKyAgICAgICAg
ICAgIGNvbnRpbnVlCisgICAgICAgIG5ld19lbnRyb3B5ID0gMC4KKyAgICAgICAgcmVzdWx0c19z
ZXRzX2VudHJvcHkgPSBbXQorICAgICAgICBmb3IgcHJvcF92YWx1ZSwgcmVzdWx0X3NldCBpbiBy
ZXN1bHRfc2V0cy5pdGVyaXRlbXMoKToKKyAgICAgICAgICAgIHJlc3VsdHNfc2V0c19lbnRyb3B5
LmFwcGVuZCgoZW50cm9weShyZXN1bHRfc2V0KSwgcHJvcF92YWx1ZSwgcmVzdWx0X3NldCkpCisg
ICAgICAgICAgICBuZXdfZW50cm9weSArPSAoZmxvYXQobGVuKHJlc3VsdF9zZXQpKSAvIGxlbihy
ZXN1bHRzKSkgKiByZXN1bHRzX3NldHNfZW50cm9weVstMV1bMF0KKworICAgICAgICByZXN1bHRz
X3BhcnRpdGlvbnMuYXBwZW5kKChuZXdfZW50cm9weSwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgcHJvcCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVz
dWx0c19zZXRzX2VudHJvcHkpKQorCisgICAgIyBJbiB0aGUgY2FzZSB0aGF0IG5vIHByb3BlcnRp
ZXMgcGFydGl0aW9uIHRoZSBzcGFjZQorICAgIGlmIG5vdCByZXN1bHRzX3BhcnRpdGlvbnM6Cisg
ICAgICAgIGZvciB2YWx1ZSwgY291bnQgaW4gYWxsX3Jlc3VsdHMuaXRlcml0ZW1zKCk6CisgICAg
ICAgICAgICB0cmVlLnJlc3VsdF92YWx1ZXNbdmFsdWVdICs9IGNvdW50CisgICAgICAgIHRyZWUu
cnVuX2luZm8gfD0gc2V0KHJlc3VsdHMua2V5cygpKQorICAgICAgICByZXR1cm4gdHJlZQorCisg
ICAgIyBzcGxpdCBieSB0aGUgcHJvcGVydHkgd2l0aCB0aGUgaGlnaGVzdCBlbnRyb3B5CisgICAg
cmVzdWx0c19wYXJ0aXRpb25zLnNvcnQoa2V5PWxhbWJkYSB4OiAoeFswXSwgcHJvcF9pbmRleFt4
WzFdXSkpCisgICAgXywgYmVzdF9wcm9wLCBzdWJfcmVzdWx0cyA9IHJlc3VsdHNfcGFydGl0aW9u
c1swXQorCisgICAgIyBDcmVhdGUgYSBuZXcgc2V0IG9mIHByb3BlcnRpZXMgdGhhdCBjYW4gYmUg
dXNlZAorICAgIG5ld19wcm9wcyA9IHByb3BlcnRpZXNbOnByb3BfaW5kZXhbYmVzdF9wcm9wXV0g
KyBwcm9wZXJ0aWVzW3Byb3BfaW5kZXhbYmVzdF9wcm9wXSArIDE6XQorICAgIG5ld19wcm9wcy5l
eHRlbmQoZGVwZW5kZW50X3Byb3BzLmdldChiZXN0X3Byb3AsIFtdKSkKKyAgICBpZiByZW1vdmVf
cHJvcGVydGllczoKKyAgICAgICAgbmV3X3Byb3BzID0gW2l0ZW0gZm9yIGl0ZW0gaW4gbmV3X3By
b3BzIGlmIGl0ZW0gbm90IGluIHJlbW92ZV9wcm9wZXJ0aWVzXQorCisgICAgZm9yIF8sIHByb3Bf
dmFsdWUsIHJlc3VsdHNfc2V0cyBpbiBzdWJfcmVzdWx0czoKKyAgICAgICAgbm9kZSA9IE5vZGUo
YmVzdF9wcm9wLCBwcm9wX3ZhbHVlKQorICAgICAgICB0cmVlLmFkZChub2RlKQorICAgICAgICBi
dWlsZF90cmVlKG5ld19wcm9wcywgZGVwZW5kZW50X3Byb3BzLCByZXN1bHRzX3NldHMsIG5vZGUp
CisgICAgcmV0dXJuIHRyZWUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9mb250LnB5IGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIv
d3B0cnVubmVyL2ZvbnQucHkKaW5kZXggYTM3MGY1ZjVhM2I2MWNiYjQwYzQ3YWJjNzg2YWJlMzg2
NzljZDk5NC4uNjY0N2E4NTgwYmU3YWI0MDUwYmJkMzc1OTNiMmU2NTk1YmMzYWM3MiAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93
cHRydW5uZXIvd3B0cnVubmVyL2ZvbnQucHkKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2ZvbnQucHkKQEAg
LTkyLDggKzkyLDE0IEBAIGNsYXNzIEZvbnRJbnN0YWxsZXIob2JqZWN0KToKIAogICAgICAgICBn
ZGkzMiA9IGN0eXBlcy5XaW5ETEwoJ2dkaTMyJykKICAgICAgICAgaWYgZ2RpMzIuQWRkRm9udFJl
c291cmNlVyhmb250X3BhdGgpOgotICAgICAgICAgICAgcmV0dXJuIGJvb2woY3R5cGVzLndpbmRs
bC51c2VyMzIuU2VuZE1lc3NhZ2VXKGh3bmRfYnJvYWRjYXN0LAotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdtX2ZvbnRjaGFuZ2UpKQor
ICAgICAgICAgICAgZnJvbSBjdHlwZXMgaW1wb3J0IHdpbnR5cGVzCisgICAgICAgICAgICB3cGFy
YW0gPSAwCisgICAgICAgICAgICBscGFyYW0gPSAwCisgICAgICAgICAgICBTZW5kTm90aWZ5TWVz
c2FnZVcgPSBjdHlwZXMud2luZGxsLnVzZXIzMi5TZW5kTm90aWZ5TWVzc2FnZVcKKyAgICAgICAg
ICAgIFNlbmROb3RpZnlNZXNzYWdlVy5hcmd0eXBlcyA9IFt3aW50eXBlcy5IQU5ETEUsIHdpbnR5
cGVzLlVJTlQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lu
dHlwZXMuV1BBUkFNLCB3aW50eXBlcy5MUEFSQU1dCisgICAgICAgICAgICByZXR1cm4gYm9vbChT
ZW5kTm90aWZ5TWVzc2FnZVcoaHduZF9icm9hZGNhc3QsIHdtX2ZvbnRjaGFuZ2UsCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd3BhcmFtLCBscGFyYW0pKQogCiAg
ICAgZGVmIHJlbW92ZV9saW51eF9mb250KHNlbGYsIGZvbnRfbmFtZSwgXyk6CiAgICAgICAgIGlm
IHNlbGYuY3JlYXRlZF9kaXI6CkBAIC0xMjAsNSArMTI2LDExIEBAIGNsYXNzIEZvbnRJbnN0YWxs
ZXIob2JqZWN0KToKIAogICAgICAgICBnZGkzMiA9IGN0eXBlcy5XaW5ETEwoJ2dkaTMyJykKICAg
ICAgICAgaWYgZ2RpMzIuUmVtb3ZlRm9udFJlc291cmNlVyhmb250X3BhdGgpOgotICAgICAgICAg
ICAgcmV0dXJuIGJvb2woY3R5cGVzLndpbmRsbC51c2VyMzIuU2VuZE1lc3NhZ2VXKGh3bmRfYnJv
YWRjYXN0LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHdtX2ZvbnRjaGFuZ2UpKQorICAgICAgICAgICAgZnJvbSBjdHlwZXMgaW1wb3J0
IHdpbnR5cGVzCisgICAgICAgICAgICB3cGFyYW0gPSAwCisgICAgICAgICAgICBscGFyYW0gPSAw
CisgICAgICAgICAgICBTZW5kTm90aWZ5TWVzc2FnZVcgPSBjdHlwZXMud2luZGxsLnVzZXIzMi5T
ZW5kTm90aWZ5TWVzc2FnZVcKKyAgICAgICAgICAgIFNlbmROb3RpZnlNZXNzYWdlVy5hcmd0eXBl
cyA9IFt3aW50eXBlcy5IQU5ETEUsIHdpbnR5cGVzLlVJTlQsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgd2ludHlwZXMuV1BBUkFNLCB3aW50eXBlcy5MUEFSQU1d
CisgICAgICAgICAgICByZXR1cm4gYm9vbChTZW5kTm90aWZ5TWVzc2FnZVcoaHduZF9icm9hZGNh
c3QsIHdtX2ZvbnRjaGFuZ2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgd3BhcmFtLCBscGFyYW0pKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2Zvcm1hdHRl
cnMucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3dwdHJ1bm5lci93cHRydW5uZXIvZm9ybWF0dGVycy5weQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMWVhMDlkYmU1NTM3MTNjNzk5YjQwYzFlNDBkOThmOGVlMmQ0ZDgxYS4uMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvZm9y
bWF0dGVycy5weQorKysgL2Rldi9udWxsCkBAIC0xLDc4ICswLDAgQEAKLWltcG9ydCBqc29uCi0K
LWZyb20gbW96bG9nLnN0cnVjdHVyZWQuZm9ybWF0dGVycy5iYXNlIGltcG9ydCBCYXNlRm9ybWF0
dGVyCi0KLQotY2xhc3MgV3B0cmVwb3J0Rm9ybWF0dGVyKEJhc2VGb3JtYXR0ZXIpOgotICAgICIi
IkZvcm1hdHRlciB0aGF0IHByb2R1Y2VzIHJlc3VsdHMgaW4gdGhlIGZvcm1hdCB0aGF0IHdwcmVw
b3J0IGV4cGVjdHMuIiIiCi0KLSAgICBkZWYgX19pbml0X18oc2VsZik6Ci0gICAgICAgIHNlbGYu
cmF3X3Jlc3VsdHMgPSB7fQotICAgICAgICBzZWxmLnJlc3VsdHMgPSB7fQotCi0gICAgZGVmIHN1
aXRlX3N0YXJ0KHNlbGYsIGRhdGEpOgotICAgICAgICBpZiAncnVuX2luZm8nIGluIGRhdGE6Ci0g
ICAgICAgICAgICBzZWxmLnJlc3VsdHNbJ3J1bl9pbmZvJ10gPSBkYXRhWydydW5faW5mbyddCi0g
ICAgICAgIHNlbGYucmVzdWx0c1sndGltZV9zdGFydCddID0gZGF0YVsndGltZSddCi0KLSAgICBk
ZWYgc3VpdGVfZW5kKHNlbGYsIGRhdGEpOgotICAgICAgICBzZWxmLnJlc3VsdHNbJ3RpbWVfZW5k
J10gPSBkYXRhWyd0aW1lJ10KLSAgICAgICAgc2VsZi5yZXN1bHRzWyJyZXN1bHRzIl0gPSBbXQot
ICAgICAgICBmb3IgdGVzdF9uYW1lIGluIHNlbGYucmF3X3Jlc3VsdHM6Ci0gICAgICAgICAgICBy
ZXN1bHQgPSB7InRlc3QiOiB0ZXN0X25hbWV9Ci0gICAgICAgICAgICByZXN1bHQudXBkYXRlKHNl
bGYucmF3X3Jlc3VsdHNbdGVzdF9uYW1lXSkKLSAgICAgICAgICAgIHNlbGYucmVzdWx0c1sicmVz
dWx0cyJdLmFwcGVuZChyZXN1bHQpCi0gICAgICAgIHJldHVybiBqc29uLmR1bXBzKHNlbGYucmVz
dWx0cykKLQotICAgIGRlZiBmaW5kX29yX2NyZWF0ZV90ZXN0KHNlbGYsIGRhdGEpOgotICAgICAg
ICB0ZXN0X25hbWUgPSBkYXRhWyJ0ZXN0Il0KLSAgICAgICAgaWYgdGVzdF9uYW1lIG5vdCBpbiBz
ZWxmLnJhd19yZXN1bHRzOgotICAgICAgICAgICAgc2VsZi5yYXdfcmVzdWx0c1t0ZXN0X25hbWVd
ID0gewotICAgICAgICAgICAgICAgICJzdWJ0ZXN0cyI6IFtdLAotICAgICAgICAgICAgICAgICJz
dGF0dXMiOiAiIiwKLSAgICAgICAgICAgICAgICAibWVzc2FnZSI6IE5vbmUKLSAgICAgICAgICAg
IH0KLSAgICAgICAgcmV0dXJuIHNlbGYucmF3X3Jlc3VsdHNbdGVzdF9uYW1lXQotCi0gICAgZGVm
IHRlc3Rfc3RhcnQoc2VsZiwgZGF0YSk6Ci0gICAgICAgIHRlc3QgPSBzZWxmLmZpbmRfb3JfY3Jl
YXRlX3Rlc3QoZGF0YSkKLSAgICAgICAgdGVzdFsic3RhcnRfdGltZSJdID0gZGF0YVsidGltZSJd
Ci0KLSAgICBkZWYgY3JlYXRlX3N1YnRlc3Qoc2VsZiwgZGF0YSk6Ci0gICAgICAgIHRlc3QgPSBz
ZWxmLmZpbmRfb3JfY3JlYXRlX3Rlc3QoZGF0YSkKLSAgICAgICAgc3VidGVzdF9uYW1lID0gZGF0
YVsic3VidGVzdCJdCi0KLSAgICAgICAgc3VidGVzdCA9IHsKLSAgICAgICAgICAgICJuYW1lIjog
c3VidGVzdF9uYW1lLAotICAgICAgICAgICAgInN0YXR1cyI6ICIiLAotICAgICAgICAgICAgIm1l
c3NhZ2UiOiBOb25lCi0gICAgICAgIH0KLSAgICAgICAgdGVzdFsic3VidGVzdHMiXS5hcHBlbmQo
c3VidGVzdCkKLQotICAgICAgICByZXR1cm4gc3VidGVzdAotCi0gICAgZGVmIHRlc3Rfc3RhdHVz
KHNlbGYsIGRhdGEpOgotICAgICAgICBzdWJ0ZXN0ID0gc2VsZi5jcmVhdGVfc3VidGVzdChkYXRh
KQotICAgICAgICBzdWJ0ZXN0WyJzdGF0dXMiXSA9IGRhdGFbInN0YXR1cyJdCi0gICAgICAgIGlm
ICJleHBlY3RlZCIgaW4gZGF0YToKLSAgICAgICAgICAgIHN1YnRlc3RbImV4cGVjdGVkIl0gPSBk
YXRhWyJleHBlY3RlZCJdCi0gICAgICAgIGlmICJtZXNzYWdlIiBpbiBkYXRhOgotICAgICAgICAg
ICAgc3VidGVzdFsibWVzc2FnZSJdID0gZGF0YVsibWVzc2FnZSJdCi0KLSAgICBkZWYgdGVzdF9l
bmQoc2VsZiwgZGF0YSk6Ci0gICAgICAgIHRlc3QgPSBzZWxmLmZpbmRfb3JfY3JlYXRlX3Rlc3Qo
ZGF0YSkKLSAgICAgICAgc3RhcnRfdGltZSA9IHRlc3QucG9wKCJzdGFydF90aW1lIikKLSAgICAg
ICAgdGVzdFsiZHVyYXRpb24iXSA9IGRhdGFbInRpbWUiXSAtIHN0YXJ0X3RpbWUKLSAgICAgICAg
dGVzdFsic3RhdHVzIl0gPSBkYXRhWyJzdGF0dXMiXQotICAgICAgICBpZiAiZXhwZWN0ZWQiIGlu
IGRhdGE6Ci0gICAgICAgICAgICB0ZXN0WyJleHBlY3RlZCJdID0gZGF0YVsiZXhwZWN0ZWQiXQot
ICAgICAgICBpZiAibWVzc2FnZSIgaW4gZGF0YToKLSAgICAgICAgICAgIHRlc3RbIm1lc3NhZ2Ui
XSA9IGRhdGFbIm1lc3NhZ2UiXQotCi0gICAgZGVmIGFzc2VydGlvbl9jb3VudChzZWxmLCBkYXRh
KToKLSAgICAgICAgdGVzdCA9IHNlbGYuZmluZF9vcl9jcmVhdGVfdGVzdChkYXRhKQotICAgICAg
ICB0ZXN0WyJhc3NlcnRzIl0gPSB7Ci0gICAgICAgICAgICAiY291bnQiOiBkYXRhWyJjb3VudCJd
LAotICAgICAgICAgICAgIm1pbiI6IGRhdGFbIm1pbl9leHBlY3RlZCJdLAotICAgICAgICAgICAg
Im1heCI6IGRhdGFbIm1heF9leHBlY3RlZCJdCi0gICAgICAgIH0KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dw
dHJ1bm5lci9mb3JtYXR0ZXJzL19faW5pdF9fLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2Zvcm1hdHRlcnMv
X19pbml0X18ucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYTY4MzRiODI4NWE1NmJlZjBlMTU0M2ZkOTAxYzdlNmYy
ZjhiYzIwMgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9mb3JtYXR0ZXJzL19faW5p
dF9fLnB5CkBAIC0wLDAgKzEgQEAKKyMgVGhpcyBmaWxlIGlzIHJlcXVpcmVkIGZvciBQeXRob24g
dG8gc2VhcmNoIHRoaXMgZGlyZWN0b3J5IGZvciBtb2R1bGVzLgpcIE5vIG5ld2xpbmUgYXQgZW5k
IG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9mb3JtYXR0ZXJzL2Nocm9taXVtLnB5
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRy
dW5uZXIvd3B0cnVubmVyL2Zvcm1hdHRlcnMvY2hyb21pdW0ucHkKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNTY0MzVl
YWJmNGJiZWFkYmVlN2FmYTI5NGUzZTBiYjFlNzY4NWI5OQotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVy
L3dwdHJ1bm5lci9mb3JtYXR0ZXJzL2Nocm9taXVtLnB5CkBAIC0wLDAgKzEsMTg3IEBACitpbXBv
cnQganNvbgoraW1wb3J0IHRpbWUKKworZnJvbSBjb2xsZWN0aW9ucyBpbXBvcnQgZGVmYXVsdGRp
Y3QKK2Zyb20gbW96bG9nLmZvcm1hdHRlcnMgaW1wb3J0IGJhc2UKKworCitjbGFzcyBDaHJvbWl1
bUZvcm1hdHRlcihiYXNlLkJhc2VGb3JtYXR0ZXIpOgorICAgICIiIkZvcm1hdHRlciB0byBwcm9k
dWNlIHJlc3VsdHMgbWF0Y2hpbmcgdGhlIENocm9taXVtIEpTT04gVGVzdCBSZXN1bHRzIGZvcm1h
dC4KKyAgICBodHRwczovL2Nocm9taXVtLmdvb2dsZXNvdXJjZS5jb20vY2hyb21pdW0vc3JjLysv
bWFzdGVyL2RvY3MvdGVzdGluZy9qc29uX3Rlc3RfcmVzdWx0c19mb3JtYXQubWQKKyAgICAiIiIK
KworICAgIGRlZiBfX2luaXRfXyhzZWxmKToKKyAgICAgICAgIyBXaGV0aGVyIHRoZSBydW4gd2Fz
IGludGVycnVwdGVkLCBlaXRoZXIgYnkgdGhlIHRlc3QgcnVubmVyIG9yIHVzZXIuCisgICAgICAg
IHNlbGYuaW50ZXJydXB0ZWQgPSBGYWxzZQorCisgICAgICAgICMgQSBtYXAgb2YgdGVzdCBzdGF0
dXMgdG8gdGhlIG51bWJlciBvZiB0ZXN0cyB0aGF0IGhhZCB0aGF0IHN0YXR1cy4KKyAgICAgICAg
c2VsZi5udW1fZmFpbHVyZXNfYnlfc3RhdHVzID0gZGVmYXVsdGRpY3QoaW50KQorCisgICAgICAg
ICMgU3RhcnQgdGltZSwgZXhwcmVzc2VkIGFzIG9mZnNldCBzaW5jZSBVTklYIGVwb2NoIGluIHNl
Y29uZHMuCisgICAgICAgIHNlbGYuc3RhcnRfdGltZXN0YW1wX3NlY29uZHMgPSBOb25lCisKKyAg
ICAgICAgIyBUcmllIG9mIHRlc3QgcmVzdWx0cy4gRWFjaCBkaXJlY3RvcnkgaW4gdGhlIHRlc3Qg
bmFtZSBpcyBhIG5vZGUgaW4KKyAgICAgICAgIyB0aGUgdHJpZSBhbmQgdGhlIGxlYWYgY29udGFp
bnMgdGhlIGRpY3Qgb2YgcGVyLXRlc3QgZGF0YS4KKyAgICAgICAgc2VsZi50ZXN0cyA9IHt9CisK
KyAgICAgICAgIyBNZXNzYWdlIGRpY3Rpb25hcnksIGtleWVkIGJ5IHRlc3QgbmFtZS4gVmFsdWUg
aXMgYSBjb25jYXRlbmF0aW9uIG9mCisgICAgICAgICMgdGhlIHN1YnRlc3QgbWVzc2FnZXMgZm9y
IHRoaXMgdGVzdC4KKyAgICAgICAgc2VsZi5tZXNzYWdlcyA9IGRlZmF1bHRkaWN0KHN0cikKKwor
ICAgICAgICAjIExpc3Qgb2YgdGVzdHMgdGhhdCBoYXZlIGZhaWxpbmcgc3VidGVzdHMuCisgICAg
ICAgIHNlbGYudGVzdHNfd2l0aF9zdWJ0ZXN0X2ZhaWxzID0gc2V0KCkKKworICAgIGRlZiBfYXBw
ZW5kX3Rlc3RfbWVzc2FnZShzZWxmLCB0ZXN0LCBzdWJ0ZXN0LCBzdGF0dXMsIGV4cGVjdGVkLCBt
ZXNzYWdlKToKKyAgICAgICAgIiIiCisgICAgICAgIEFwcGVuZHMgdGhlIG1lc3NhZ2UgZGF0YSBm
b3IgYSB0ZXN0LgorICAgICAgICA6cGFyYW0gc3RyIHRlc3Q6IHRoZSBuYW1lIG9mIHRoZSB0ZXN0
CisgICAgICAgIDpwYXJhbSBzdHIgc3VidGVzdDogdGhlIG5hbWUgb2YgdGhlIHN1YnRlc3Qgd2l0
aCB0aGUgbWVzc2FnZQorICAgICAgICA6cGFyYW0gc3RyIHN0YXR1czogdGhlIHN1YnRlc3Qgc3Rh
dHVzCisgICAgICAgIDpwYXJhbSBzdHIgZXhwZWN0ZWQ6IHRoZSBleHBlY3RlZCBzdWJ0ZXN0IHN0
YXR1cworICAgICAgICA6cGFyYW0gc3RyIG1lc3NhZ2U6IHRoZSBzdHJpbmcgdG8gYXBwZW5kIHRv
IHRoZSBtZXNzYWdlIGZvciB0aGlzIHRlc3QKKworICAgICAgICBIZXJlJ3MgYW4gZXhhbXBsZSBv
ZiBhIG1lc3NhZ2U6CisgICAgICAgIFtUSU1FT1VUIGV4cGVjdGVkIEZBSUxdIFRlc3QgTmFtZSBm
b286IGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkIDEgYnV0IGdvdCAyCisgICAgICAgICIiIgorICAg
ICAgICBpZiBub3QgbWVzc2FnZToKKyAgICAgICAgICAgIHJldHVybgorICAgICAgICAjIEFkZCB0
aGUgcHJlZml4LCB3aXRoIHRoZSB0ZXN0IHN0YXR1cyBhbmQgc3VidGVzdCBuYW1lIChpZiBhdmFp
bGFibGUpCisgICAgICAgIHByZWZpeCA9ICJbJXMiICUgc3RhdHVzCisgICAgICAgIGlmIGV4cGVj
dGVkIGFuZCBleHBlY3RlZCAhPSBzdGF0dXM6CisgICAgICAgICAgICBwcmVmaXggKz0gIiBleHBl
Y3RlZCAlc10gIiAlIGV4cGVjdGVkCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBwcmVmaXgg
Kz0gIl0gIgorICAgICAgICBpZiBzdWJ0ZXN0OgorICAgICAgICAgICAgcHJlZml4ICs9ICIlczog
IiAlIHN1YnRlc3QKKyAgICAgICAgc2VsZi5tZXNzYWdlc1t0ZXN0XSArPSBwcmVmaXggKyBtZXNz
YWdlICsgIlxuIgorCisgICAgZGVmIF9zdG9yZV90ZXN0X3Jlc3VsdChzZWxmLCBuYW1lLCBhY3R1
YWwsIGV4cGVjdGVkLCBtZXNzYWdlKToKKyAgICAgICAgIiIiCisgICAgICAgIFN0b3JlcyB0aGUg
cmVzdWx0IG9mIGEgc2luZ2xlIHRlc3QgaW4gfHNlbGYudGVzdHN8CisgICAgICAgIDpwYXJhbSBz
dHIgbmFtZTogbmFtZSBvZiB0aGUgdGVzdC4KKyAgICAgICAgOnBhcmFtIHN0ciBhY3R1YWw6IGFj
dHVhbCBzdGF0dXMgb2YgdGhlIHRlc3QuCisgICAgICAgIDpwYXJhbSBzdHIgZXhwZWN0ZWQ6IGV4
cGVjdGVkIHN0YXR1cyBvZiB0aGUgdGVzdC4KKyAgICAgICAgOnBhcmFtIHN0ciBtZXNzYWdlOiB0
ZXN0IG91dHB1dCwgc3VjaCBhcyBzdGF0dXMsIHN1YnRlc3QsIGVycm9ycyBldGMuCisgICAgICAg
ICIiIgorICAgICAgICAjIFRoZSB0ZXN0IG5hbWUgY2FuIGNvbnRhaW4gYSBsZWFkaW5nIC8gd2hp
Y2ggd2lsbCBwcm9kdWNlIGFuIGVtcHR5CisgICAgICAgICMgc3RyaW5nIGluIHRoZSBmaXJzdCBw
b3NpdGlvbiBvZiB0aGUgbGlzdCByZXR1cm5lZCBieSBzcGxpdC4gV2UgdXNlCisgICAgICAgICMg
ZmlsdGVyKE5vbmUpIHRvIHJlbW92ZSBzdWNoIGVudHJpZXMuCisgICAgICAgIG5hbWVfcGFydHMg
PSBmaWx0ZXIoTm9uZSwgbmFtZS5zcGxpdCgiLyIpKQorICAgICAgICBjdXJfZGljdCA9IHNlbGYu
dGVzdHMKKyAgICAgICAgZm9yIG5hbWVfcGFydCBpbiBuYW1lX3BhcnRzOgorICAgICAgICAgICAg
Y3VyX2RpY3QgPSBjdXJfZGljdC5zZXRkZWZhdWx0KG5hbWVfcGFydCwge30pCisgICAgICAgIGN1
cl9kaWN0WyJhY3R1YWwiXSA9IGFjdHVhbAorICAgICAgICBjdXJfZGljdFsiZXhwZWN0ZWQiXSA9
IGV4cGVjdGVkCisgICAgICAgIGlmIG1lc3NhZ2UgIT0gIiI6CisgICAgICAgICAgICBjdXJfZGlj
dFsiYXJ0aWZhY3RzIl0gPSB7ImxvZyI6IG1lc3NhZ2V9CisKKyAgICAgICAgIyBGaWd1cmUgb3V0
IGlmIHRoZXJlIHdhcyBhIHJlZ3Jlc3Npb24gb3IgdW5leHBlY3RlZCBzdGF0dXMuIFRoaXMgb25s
eQorICAgICAgICAjIGhhcHBlbnMgZm9yIHRlc3RzIHRoYXQgd2VyZSBydW4KKyAgICAgICAgaWYg
YWN0dWFsICE9ICJTS0lQIjoKKyAgICAgICAgICAgIGlmIGFjdHVhbCAhPSBleHBlY3RlZDoKKyAg
ICAgICAgICAgICAgICBjdXJfZGljdFsiaXNfdW5leHBlY3RlZCJdID0gVHJ1ZQorICAgICAgICAg
ICAgICAgIGlmIGFjdHVhbCAhPSAiUEFTUyI6CisgICAgICAgICAgICAgICAgICAgIGN1cl9kaWN0
WyJpc19yZWdyZXNzaW9uIl0gPSBUcnVlCisKKyAgICBkZWYgX21hcF9zdGF0dXNfbmFtZShzZWxm
LCBzdGF0dXMpOgorICAgICAgICAiIiIKKyAgICAgICAgTWFwcyBhIFdQVCBzdGF0dXMgdG8gYSBD
aHJvbWl1bSBzdGF0dXMuCisKKyAgICAgICAgQ2hyb21pdW0gaGFzIGZpdmUgbWFpbiBzdGF0dXNl
cyB0aGF0IHdlIGhhdmUgdG8gbWFwIHRvOgorICAgICAgICBDUkFTSDogdGhlIHRlc3QgaGFybmVz
cyBjcmFzaGVkCisgICAgICAgIEZBSUw6IHRoZSB0ZXN0IGRpZCBub3QgcnVuIGFzIGV4cGVjdGVk
CisgICAgICAgIFBBU1M6IHRoZSB0ZXN0IHJhbiBhcyBleHBlY3RlZAorICAgICAgICBTS0lQOiB0
aGUgdGVzdCB3YXMgbm90IHJ1bgorICAgICAgICBUSU1FT1VUOiB0aGUgZGlkIG5vdCBmaW5pc2gg
aW4gdGltZSBhbmQgd2FzIGFib3J0ZWQKKworICAgICAgICA6cGFyYW0gc3RyIHN0YXR1czogdGhl
IHN0cmluZyBzdGF0dXMgb2YgYSB0ZXN0IGZyb20gV1BUCisgICAgICAgIDpyZXR1cm46IGEgY29y
cmVzcG9uZGluZyBzdHJpbmcgc3RhdHVzIGZvciBDaHJvbWl1bQorICAgICAgICAiIiIKKyAgICAg
ICAgaWYgc3RhdHVzID09ICJPSyI6CisgICAgICAgICAgICByZXR1cm4gIlBBU1MiCisgICAgICAg
IGlmIHN0YXR1cyA9PSAiTk9UUlVOIjoKKyAgICAgICAgICAgIHJldHVybiAiU0tJUCIKKyAgICAg
ICAgaWYgc3RhdHVzID09ICJFWFRFUk5BTC1USU1FT1VUIjoKKyAgICAgICAgICAgIHJldHVybiAi
VElNRU9VVCIKKyAgICAgICAgaWYgc3RhdHVzIGluICgiRVJST1IiLCAiQ1JBU0giKToKKyAgICAg
ICAgICAgICMgQ1JBU0ggaW4gV1BUIG1lYW5zIGEgYnJvd3NlciBjcmFzaCwgd2hpY2ggQ2hyb21p
dW0gdHJlYXRzIGFzIGEKKyAgICAgICAgICAgICMgdGVzdCBmYWlsdXJlLgorICAgICAgICAgICAg
cmV0dXJuICJGQUlMIgorICAgICAgICBpZiBzdGF0dXMgPT0gIklOVEVSTkFMLUVSUk9SIjoKKyAg
ICAgICAgICAgICMgQ1JBU0ggaW4gQ2hyb21pdW0gcmVmZXJzIHRvIGFuIGVycm9yIGluIHRoZSB0
ZXN0IHJ1bm5lciBub3QgdGhlCisgICAgICAgICAgICAjIGJyb3dzZXIuCisgICAgICAgICAgICBy
ZXR1cm4gIkNSQVNIIgorICAgICAgICAjIEFueSBvdGhlciBzdGF0dXMganVzdCBnZXRzIHJldHVy
bmVkIGFzLWlzLgorICAgICAgICByZXR1cm4gc3RhdHVzCisKKyAgICBkZWYgX2dldF9leHBlY3Rl
ZF9zdGF0dXNfZnJvbV9kYXRhKHNlbGYsIGFjdHVhbF9zdGF0dXMsIGRhdGEpOgorICAgICAgICAi
IiIKKyAgICAgICAgR2V0cyB0aGUgZXhwZWN0ZWQgc3RhdHVzIGZyb20gYSB8ZGF0YXwgZGljdGlv
bmFyeS4KKworICAgICAgICBJZiB0aGVyZSBpcyBubyBleHBlY3RlZCBzdGF0dXMgaW4gZGF0YSwg
dGhlIGFjdHVhbCBzdGF0dXMgaXMgcmV0dXJuZWQuCisgICAgICAgIFRoaXMgaXMgYmVjYXVzZSBt
b3psb2cgd2lsbCBkZWxldGUgImV4cGVjdGVkIiBmcm9tIHxkYXRhfCBpZiBpdCBpcyB0aGUKKyAg
ICAgICAgc2FtZSBhcyAic3RhdHVzIi4gU28gdGhlIHByZXNlbmNlIG9mICJleHBlY3RlZCIgaW1w
bGllcyB0aGF0ICJzdGF0dXMiIGlzCisgICAgICAgIHVuZXhwZWN0ZWQuIENvbnZlcnNlbHksIHRo
ZSBhYnNlbmNlIG9mICJleHBlY3RlZCIgaW1wbGllcyB0aGUgInN0YXR1cyIKKyAgICAgICAgaXMg
ZXhwZWN0ZWQuIFNvIHdlIHVzZSB0aGUgImV4cGVjdGVkIiBzdGF0dXMgaWYgaXQncyB0aGVyZSBv
ciBmYWxsIGJhY2sKKyAgICAgICAgdG8gdGhlIGFjdHVhbCBzdGF0dXMgaWYgaXQncyBub3QuCisK
KyAgICAgICAgOnBhcmFtIHN0ciBhY3R1YWxfc3RhdHVzOiB0aGUgYWN0dWFsIHN0YXR1cyBvZiB0
aGUgdGVzdAorICAgICAgICA6cGFyYW0gZGF0YTogYSBkYXRhIGRpY3Rpb25hcnkgdG8gZXh0cmFj
dCBleHBlY3RlZCBzdGF0dXMgZnJvbQorICAgICAgICA6cmV0dXJuIHN0cjogdGhlIGV4cGVjdGVk
IHN0YXR1cworICAgICAgICAiIiIKKyAgICAgICAgcmV0dXJuIChzZWxmLl9tYXBfc3RhdHVzX25h
bWUoZGF0YVsiZXhwZWN0ZWQiXSkKKyAgICAgICAgICAgICAgICBpZiAiZXhwZWN0ZWQiIGluIGRh
dGEgZWxzZSBhY3R1YWxfc3RhdHVzKQorCisgICAgZGVmIHN1aXRlX3N0YXJ0KHNlbGYsIGRhdGEp
OgorICAgICAgICBzZWxmLnN0YXJ0X3RpbWVzdGFtcF9zZWNvbmRzID0gKGRhdGFbInRpbWUiXSBp
ZiAidGltZSIgaW4gZGF0YQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGVsc2UgdGltZS50aW1lKCkpCisKKyAgICBkZWYgdGVzdF9zdGF0dXMoc2VsZiwgZGF0YSk6Cisg
ICAgICAgIHRlc3RfbmFtZSA9IGRhdGFbInRlc3QiXQorICAgICAgICBpc191bmV4cGVjdGVkID0g
Tm9uZQorICAgICAgICBhY3R1YWxfc3RhdHVzID0gc2VsZi5fbWFwX3N0YXR1c19uYW1lKGRhdGFb
InN0YXR1cyJdKQorICAgICAgICBleHBlY3RlZF9zdGF0dXMgPSBzZWxmLl9nZXRfZXhwZWN0ZWRf
c3RhdHVzX2Zyb21fZGF0YShhY3R1YWxfc3RhdHVzLCBkYXRhKQorCisgICAgICAgIGlzX3VuZXhw
ZWN0ZWQgPSBhY3R1YWxfc3RhdHVzICE9IGV4cGVjdGVkX3N0YXR1cworICAgICAgICBpZiBpc191
bmV4cGVjdGVkIGFuZCB0ZXN0X25hbWUgbm90IGluIHNlbGYudGVzdHNfd2l0aF9zdWJ0ZXN0X2Zh
aWxzOgorICAgICAgICAgICAgc2VsZi50ZXN0c193aXRoX3N1YnRlc3RfZmFpbHMuYWRkKHRlc3Rf
bmFtZSkKKyAgICAgICAgaWYgIm1lc3NhZ2UiIGluIGRhdGE6CisgICAgICAgICAgICBzZWxmLl9h
cHBlbmRfdGVzdF9tZXNzYWdlKHRlc3RfbmFtZSwgZGF0YVsic3VidGVzdCJdLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhY3R1YWxfc3RhdHVzLCBleHBlY3RlZF9zdGF0
dXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGFbIm1lc3NhZ2Ui
XSkKKworICAgIGRlZiB0ZXN0X2VuZChzZWxmLCBkYXRhKToKKyAgICAgICAgdGVzdF9uYW1lID0g
ZGF0YVsidGVzdCJdCisgICAgICAgIGFjdHVhbF9zdGF0dXMgPSBzZWxmLl9tYXBfc3RhdHVzX25h
bWUoZGF0YVsic3RhdHVzIl0pCisgICAgICAgIGlmIGFjdHVhbF9zdGF0dXMgPT0gIlBBU1MiIGFu
ZCB0ZXN0X25hbWUgaW4gc2VsZi50ZXN0c193aXRoX3N1YnRlc3RfZmFpbHM6CisgICAgICAgICAg
ICAjIFRoaXMgdGVzdCBwYXNzZWQgYnV0IGl0IGhhcyBmYWlsaW5nIHN1YnRlc3RzLCBzbyB3ZSBm
bGlwIHRoZSBzdGF0dXMKKyAgICAgICAgICAgICMgdG8gRkFJTC4KKyAgICAgICAgICAgIGFjdHVh
bF9zdGF0dXMgPSAiRkFJTCIKKyAgICAgICAgICAgICMgQ2xlYW4gdXAgdGhlIHRlc3QgbGlzdCB0
byBhdm9pZCBhY2N1bXVsYXRpbmcgdG9vIG1hbnkuCisgICAgICAgICAgICBzZWxmLnRlc3RzX3dp
dGhfc3VidGVzdF9mYWlscy5yZW1vdmUodGVzdF9uYW1lKQorCisgICAgICAgIGV4cGVjdGVkX3N0
YXR1cyA9IHNlbGYuX2dldF9leHBlY3RlZF9zdGF0dXNfZnJvbV9kYXRhKGFjdHVhbF9zdGF0dXMs
IGRhdGEpCisgICAgICAgIGlmICJtZXNzYWdlIiBpbiBkYXRhOgorICAgICAgICAgICAgc2VsZi5f
YXBwZW5kX3Rlc3RfbWVzc2FnZSh0ZXN0X25hbWUsIE5vbmUsIGFjdHVhbF9zdGF0dXMsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4cGVjdGVkX3N0YXR1cywgZGF0YVsi
bWVzc2FnZSJdKQorICAgICAgICBzZWxmLl9zdG9yZV90ZXN0X3Jlc3VsdCh0ZXN0X25hbWUsIGFj
dHVhbF9zdGF0dXMsIGV4cGVjdGVkX3N0YXR1cywKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgc2VsZi5tZXNzYWdlc1t0ZXN0X25hbWVdKQorCisgICAgICAgICMgUmVtb3ZlIHRoZSB0
ZXN0IGZyb20gbWVzc2FnZXMgZGljdCB0byBhdm9pZCBhY2N1bXVsYXRpbmcgdG9vIG1hbnkuCisg
ICAgICAgIHNlbGYubWVzc2FnZXMucG9wKHRlc3RfbmFtZSkKKworICAgICAgICAjIFVwZGF0ZSB0
aGUgY291bnQgb2YgaG93IG1hbnkgdGVzdHMgcmFuIHdpdGggZWFjaCBzdGF0dXMuCisgICAgICAg
IHNlbGYubnVtX2ZhaWx1cmVzX2J5X3N0YXR1c1thY3R1YWxfc3RhdHVzXSArPSAxCisKKyAgICBk
ZWYgc3VpdGVfZW5kKHNlbGYsIGRhdGEpOgorICAgICAgICAjIENyZWF0ZSB0aGUgZmluYWwgcmVz
dWx0IGRpY3Rpb25hcnkKKyAgICAgICAgZmluYWxfcmVzdWx0ID0geworICAgICAgICAgICAgIyBU
aGVyZSBhcmUgc29tZSByZXF1aXJlZCBmaWVsZHMgdGhhdCB3ZSBqdXN0IGhhcmQtY29kZS4KKyAg
ICAgICAgICAgICJpbnRlcnJ1cHRlZCI6IEZhbHNlLAorICAgICAgICAgICAgInBhdGhfZGVsaW1p
dGVyIjogIi8iLAorICAgICAgICAgICAgInZlcnNpb24iOiAzLAorICAgICAgICAgICAgInNlY29u
ZHNfc2luY2VfZXBvY2giOiBzZWxmLnN0YXJ0X3RpbWVzdGFtcF9zZWNvbmRzLAorICAgICAgICAg
ICAgIm51bV9mYWlsdXJlc19ieV90eXBlIjogc2VsZi5udW1fZmFpbHVyZXNfYnlfc3RhdHVzLAor
ICAgICAgICAgICAgInRlc3RzIjogc2VsZi50ZXN0cworICAgICAgICB9CisgICAgICAgIHJldHVy
biBqc29uLmR1bXBzKGZpbmFsX3Jlc3VsdCkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9mb3Jt
YXR0ZXJzL3Rlc3RzL3Rlc3RfY2hyb21pdW0ucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvZm9ybWF0dGVycy90
ZXN0cy90ZXN0X2Nocm9taXVtLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjgzYzEyOGFjNWNiNDZhNjUzNzNhMmZl
YTAwOGM2YmE2MDM1MGZkOGYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvZm9ybWF0
dGVycy90ZXN0cy90ZXN0X2Nocm9taXVtLnB5CkBAIC0wLDAgKzEsMzcyIEBACitpbXBvcnQganNv
bgoraW1wb3J0IHN5cworZnJvbSBvcy5wYXRoIGltcG9ydCBkaXJuYW1lLCBqb2luCitmcm9tIHNp
eC5tb3ZlcyBpbXBvcnQgY1N0cmluZ0lPIGFzIFN0cmluZ0lPCisKK2Zyb20gbW96bG9nIGltcG9y
dCBoYW5kbGVycywgc3RydWN0dXJlZGxvZworCitzeXMucGF0aC5pbnNlcnQoMCwgam9pbihkaXJu
YW1lKF9fZmlsZV9fKSwgIi4uIiwgIi4uIikpCitmcm9tIGZvcm1hdHRlcnMuY2hyb21pdW0gaW1w
b3J0IENocm9taXVtRm9ybWF0dGVyCisKKworZGVmIHRlc3RfY2hyb21pdW1fcmVxdWlyZWRfZmll
bGRzKGNhcGZkKToKKyAgICAjIFRlc3QgdGhhdCB0aGUgdGVzdCByZXN1bHRzIGNvbnRhaW4gYSBo
YW5kZnVsIG9mIHJlcXVpcmVkIGZpZWxkcy4KKworICAgICMgU2V0IHVwIHRoZSBoYW5kbGVyLgor
ICAgIG91dHB1dCA9IFN0cmluZ0lPKCkKKyAgICBsb2dnZXIgPSBzdHJ1Y3R1cmVkbG9nLlN0cnVj
dHVyZWRMb2dnZXIoInRlc3RfYSIpCisgICAgbG9nZ2VyLmFkZF9oYW5kbGVyKGhhbmRsZXJzLlN0
cmVhbUhhbmRsZXIob3V0cHV0LCBDaHJvbWl1bUZvcm1hdHRlcigpKSkKKworICAgICMgb3V0cHV0
IGEgYnVuY2ggb2Ygc3R1ZmYKKyAgICBsb2dnZXIuc3VpdGVfc3RhcnQoWyJ0ZXN0LWlkLTEiXSwg
cnVuX2luZm89e30sIHRpbWU9MTIzKQorICAgIGxvZ2dlci50ZXN0X3N0YXJ0KCJ0ZXN0LWlkLTEi
KQorICAgIGxvZ2dlci50ZXN0X2VuZCgidGVzdC1pZC0xIiwgc3RhdHVzPSJQQVNTIiwgZXhwZWN0
ZWQ9IlBBU1MiKQorICAgIGxvZ2dlci5zdWl0ZV9lbmQoKQorCisgICAgIyBjaGVjayBub3RoaW5n
IGdvdCBvdXRwdXQgdG8gc3Rkb3V0L3N0ZGVycgorICAgICMgKG5vdGUgdGhhdCBtb3psb2cgb3V0
cHV0cyBleGNlcHRpb25zIGR1cmluZyBoYW5kbGluZyB0byBzdGRlcnIhKQorICAgIGNhcHR1cmVk
ID0gY2FwZmQucmVhZG91dGVycigpCisgICAgYXNzZXJ0IGNhcHR1cmVkLm91dCA9PSAiIgorICAg
IGFzc2VydCBjYXB0dXJlZC5lcnIgPT0gIiIKKworICAgICMgY2hlY2sgdGhlIGFjdHVhbCBvdXRw
dXQgb2YgdGhlIGZvcm1hdHRlcgorICAgIG91dHB1dC5zZWVrKDApCisgICAgb3V0cHV0X29iaiA9
IGpzb24ubG9hZChvdXRwdXQpCisKKyAgICAjIENoZWNrIGZvciBleGlzdGVuY2Ugb2YgcmVxdWly
ZWQgZmllbGRzCisgICAgYXNzZXJ0ICJpbnRlcnJ1cHRlZCIgaW4gb3V0cHV0X29iagorICAgIGFz
c2VydCAicGF0aF9kZWxpbWl0ZXIiIGluIG91dHB1dF9vYmoKKyAgICBhc3NlcnQgInZlcnNpb24i
IGluIG91dHB1dF9vYmoKKyAgICBhc3NlcnQgIm51bV9mYWlsdXJlc19ieV90eXBlIiBpbiBvdXRw
dXRfb2JqCisgICAgYXNzZXJ0ICJ0ZXN0cyIgaW4gb3V0cHV0X29iagorCisgICAgdGVzdF9vYmog
PSBvdXRwdXRfb2JqWyJ0ZXN0cyJdWyJ0ZXN0LWlkLTEiXQorICAgIGFzc2VydCAiYWN0dWFsIiBp
biB0ZXN0X29iagorICAgIGFzc2VydCAiZXhwZWN0ZWQiIGluIHRlc3Rfb2JqCisKKworZGVmIHRl
c3RfY2hyb21pdW1fdGVzdF9uYW1lX3RyaWUoY2FwZmQpOgorICAgICMgRW5zdXJlIHRlc3QgbmFt
ZXMgYXJlIGJyb2tlbiBpbnRvIGRpcmVjdG9yaWVzIGFuZCBzdG9yZWQgaW4gYSB0cmllIHdpdGgK
KyAgICAjIHRlc3QgcmVzdWx0cyBhdCB0aGUgbGVhdmVzLgorCisgICAgIyBTZXQgdXAgdGhlIGhh
bmRsZXIuCisgICAgb3V0cHV0ID0gU3RyaW5nSU8oKQorICAgIGxvZ2dlciA9IHN0cnVjdHVyZWRs
b2cuU3RydWN0dXJlZExvZ2dlcigidGVzdF9hIikKKyAgICBsb2dnZXIuYWRkX2hhbmRsZXIoaGFu
ZGxlcnMuU3RyZWFtSGFuZGxlcihvdXRwdXQsIENocm9taXVtRm9ybWF0dGVyKCkpKQorCisgICAg
IyBvdXRwdXQgYSBidW5jaCBvZiBzdHVmZgorICAgIGxvZ2dlci5zdWl0ZV9zdGFydChbIi9mb28v
YmFyL3Rlc3QtaWQtMSIsICIvZm9vL3Rlc3QtaWQtMiJdLCBydW5faW5mbz17fSwKKyAgICAgICAg
ICAgICAgICAgICAgICAgdGltZT0xMjMpCisgICAgbG9nZ2VyLnRlc3Rfc3RhcnQoIi9mb28vYmFy
L3Rlc3QtaWQtMSIpCisgICAgbG9nZ2VyLnRlc3RfZW5kKCIvZm9vL2Jhci90ZXN0LWlkLTEiLCBz
dGF0dXM9IlRJTUVPVVQiLCBleHBlY3RlZD0iRkFJTCIpCisgICAgbG9nZ2VyLnRlc3Rfc3RhcnQo
Ii9mb28vdGVzdC1pZC0yIikKKyAgICBsb2dnZXIudGVzdF9lbmQoIi9mb28vdGVzdC1pZC0yIiwg
c3RhdHVzPSJFUlJPUiIsIGV4cGVjdGVkPSJUSU1FT1VUIikKKyAgICBsb2dnZXIuc3VpdGVfZW5k
KCkKKworICAgICMgY2hlY2sgbm90aGluZyBnb3Qgb3V0cHV0IHRvIHN0ZG91dC9zdGRlcnIKKyAg
ICAjIChub3RlIHRoYXQgbW96bG9nIG91dHB1dHMgZXhjZXB0aW9ucyBkdXJpbmcgaGFuZGxpbmcg
dG8gc3RkZXJyISkKKyAgICBjYXB0dXJlZCA9IGNhcGZkLnJlYWRvdXRlcnIoKQorICAgIGFzc2Vy
dCBjYXB0dXJlZC5vdXQgPT0gIiIKKyAgICBhc3NlcnQgY2FwdHVyZWQuZXJyID09ICIiCisKKyAg
ICAjIGNoZWNrIHRoZSBhY3R1YWwgb3V0cHV0IG9mIHRoZSBmb3JtYXR0ZXIKKyAgICBvdXRwdXQu
c2VlaygwKQorICAgIG91dHB1dF9vYmogPSBqc29uLmxvYWQob3V0cHV0KQorCisgICAgIyBFbnN1
cmUgdGhhdCB0aGUgdGVzdCBuYW1lcyBhcmUgYnJva2VuIHVwIGJ5IGRpcmVjdG9yeSBuYW1lIGFu
ZCB0aGF0IHRoZQorICAgICMgcmVzdWx0cyBhcmUgc3RvcmVkIGF0IHRoZSBsZWF2ZXMuCisgICAg
dGVzdF9vYmogPSBvdXRwdXRfb2JqWyJ0ZXN0cyJdWyJmb28iXVsiYmFyIl1bInRlc3QtaWQtMSJd
CisgICAgYXNzZXJ0IHRlc3Rfb2JqWyJhY3R1YWwiXSA9PSAiVElNRU9VVCIKKyAgICBhc3NlcnQg
dGVzdF9vYmpbImV4cGVjdGVkIl0gPT0gIkZBSUwiCisKKyAgICB0ZXN0X29iaiA9IG91dHB1dF9v
YmpbInRlc3RzIl1bImZvbyJdWyJ0ZXN0LWlkLTIiXQorICAgICMgVGhlIEVSUk9SIHN0YXR1cyBp
cyBtYXBwZWQgdG8gRkFJTCBmb3IgQ2hyb21pdW0KKyAgICBhc3NlcnQgdGVzdF9vYmpbImFjdHVh
bCJdID09ICJGQUlMIgorICAgIGFzc2VydCB0ZXN0X29ialsiZXhwZWN0ZWQiXSA9PSAiVElNRU9V
VCIKKworCitkZWYgdGVzdF9udW1fZmFpbHVyZXNfYnlfdHlwZShjYXBmZCk6CisgICAgIyBUZXN0
IHRoYXQgdGhlIG51bWJlciBvZiBmYWlsdXJlcyBieSBzdGF0dXMgdHlwZSBpcyBjb3JyZWN0bHkg
Y2FsY3VsYXRlZC4KKworICAgICMgU2V0IHVwIHRoZSBoYW5kbGVyLgorICAgIG91dHB1dCA9IFN0
cmluZ0lPKCkKKyAgICBsb2dnZXIgPSBzdHJ1Y3R1cmVkbG9nLlN0cnVjdHVyZWRMb2dnZXIoInRl
c3RfYSIpCisgICAgbG9nZ2VyLmFkZF9oYW5kbGVyKGhhbmRsZXJzLlN0cmVhbUhhbmRsZXIob3V0
cHV0LCBDaHJvbWl1bUZvcm1hdHRlcigpKSkKKworICAgICMgUnVuIHNvbWUgdGVzdHMgd2l0aCBk
aWZmZXJlbnQgc3RhdHVzZXM6IDMgcGFzc2VzLCAxIHRpbWVvdXQKKyAgICBsb2dnZXIuc3VpdGVf
c3RhcnQoWyJ0MSIsICJ0MiIsICJ0MyIsICJ0NCJdLCBydW5faW5mbz17fSwgdGltZT0xMjMpCisg
ICAgbG9nZ2VyLnRlc3Rfc3RhcnQoInQxIikKKyAgICBsb2dnZXIudGVzdF9lbmQoInQxIiwgc3Rh
dHVzPSJQQVNTIiwgZXhwZWN0ZWQ9IlBBU1MiKQorICAgIGxvZ2dlci50ZXN0X3N0YXJ0KCJ0MiIp
CisgICAgbG9nZ2VyLnRlc3RfZW5kKCJ0MiIsIHN0YXR1cz0iUEFTUyIsIGV4cGVjdGVkPSJQQVNT
IikKKyAgICBsb2dnZXIudGVzdF9zdGFydCgidDMiKQorICAgIGxvZ2dlci50ZXN0X2VuZCgidDMi
LCBzdGF0dXM9IlBBU1MiLCBleHBlY3RlZD0iRkFJTCIpCisgICAgbG9nZ2VyLnRlc3Rfc3RhcnQo
InQ0IikKKyAgICBsb2dnZXIudGVzdF9lbmQoInQ0Iiwgc3RhdHVzPSJUSU1FT1VUIiwgZXhwZWN0
ZWQ9IkNSQVNIIikKKyAgICBsb2dnZXIuc3VpdGVfZW5kKCkKKworICAgICMgY2hlY2sgbm90aGlu
ZyBnb3Qgb3V0cHV0IHRvIHN0ZG91dC9zdGRlcnIKKyAgICAjIChub3RlIHRoYXQgbW96bG9nIG91
dHB1dHMgZXhjZXB0aW9ucyBkdXJpbmcgaGFuZGxpbmcgdG8gc3RkZXJyISkKKyAgICBjYXB0dXJl
ZCA9IGNhcGZkLnJlYWRvdXRlcnIoKQorICAgIGFzc2VydCBjYXB0dXJlZC5vdXQgPT0gIiIKKyAg
ICBhc3NlcnQgY2FwdHVyZWQuZXJyID09ICIiCisKKyAgICAjIGNoZWNrIHRoZSBhY3R1YWwgb3V0
cHV0IG9mIHRoZSBmb3JtYXR0ZXIKKyAgICBvdXRwdXQuc2VlaygwKQorICAgIG51bV9mYWlsdXJl
c19ieV90eXBlID0ganNvbi5sb2FkKG91dHB1dClbIm51bV9mYWlsdXJlc19ieV90eXBlIl0KKwor
ICAgICMgV2UgZXhwZWN0IDMgcGFzc2VzIGFuZCAxIHRpbWVvdXQsIG5vdGhpbmcgZWxzZS4KKyAg
ICBhc3NlcnQgc29ydGVkKG51bV9mYWlsdXJlc19ieV90eXBlLmtleXMoKSkgPT0gWyJQQVNTIiwg
IlRJTUVPVVQiXQorICAgIGFzc2VydCBudW1fZmFpbHVyZXNfYnlfdHlwZVsiUEFTUyJdID09IDMK
KyAgICBhc3NlcnQgbnVtX2ZhaWx1cmVzX2J5X3R5cGVbIlRJTUVPVVQiXSA9PSAxCisKKworZGVm
IHRlc3Rfc3VidGVzdF9tZXNzYWdlcyhjYXBmZCk6CisgICAgIyBUZXN0cyBhY2N1bXVsYXRpb24g
b2YgdGVzdCBvdXRwdXQKKworICAgICMgU2V0IHVwIHRoZSBoYW5kbGVyLgorICAgIG91dHB1dCA9
IFN0cmluZ0lPKCkKKyAgICBsb2dnZXIgPSBzdHJ1Y3R1cmVkbG9nLlN0cnVjdHVyZWRMb2dnZXIo
InRlc3RfYSIpCisgICAgbG9nZ2VyLmFkZF9oYW5kbGVyKGhhbmRsZXJzLlN0cmVhbUhhbmRsZXIo
b3V0cHV0LCBDaHJvbWl1bUZvcm1hdHRlcigpKSkKKworICAgICMgUnVuIHR3byB0ZXN0cyB3aXRo
IHN1YnRlc3QgbWVzc2FnZXMuIFRoZSBzdWJ0ZXN0IG5hbWUgc2hvdWxkIGJlIGluY2x1ZGVkCisg
ICAgIyBpbiB0aGUgb3V0cHV0LiBXZSBzaG91bGQgYWxzbyB0b2xlcmF0ZSBtaXNzaW5nIG1lc3Nh
Z2VzLgorICAgIGxvZ2dlci5zdWl0ZV9zdGFydChbInQxIiwgInQyIl0sIHJ1bl9pbmZvPXt9LCB0
aW1lPTEyMykKKyAgICBsb2dnZXIudGVzdF9zdGFydCgidDEiKQorICAgIGxvZ2dlci50ZXN0X3N0
YXR1cygidDEiLCBzdGF0dXM9IkZBSUwiLCBzdWJ0ZXN0PSJ0MV9hIiwKKyAgICAgICAgICAgICAg
ICAgICAgICAgbWVzc2FnZT0idDFfYV9tZXNzYWdlIikKKyAgICBsb2dnZXIudGVzdF9zdGF0dXMo
InQxIiwgc3RhdHVzPSJQQVNTIiwgc3VidGVzdD0idDFfYiIsCisgICAgICAgICAgICAgICAgICAg
ICAgIG1lc3NhZ2U9InQxX2JfbWVzc2FnZSIpCisgICAgbG9nZ2VyLnRlc3RfZW5kKCJ0MSIsIHN0
YXR1cz0iUEFTUyIsIGV4cGVjdGVkPSJQQVNTIikKKyAgICBsb2dnZXIudGVzdF9zdGFydCgidDIi
KQorICAgICMgQ3VycmVudGx5LCBzdWJ0ZXN0cyB3aXRoIGVtcHR5IG1lc3NhZ2VzIHdpbGwgYmUg
aWdub3JlZAorICAgIGxvZ2dlci50ZXN0X3N0YXR1cygidDIiLCBzdGF0dXM9IlBBU1MiLCBzdWJ0
ZXN0PSJ0Ml9hIikKKyAgICAjIEEgdGVzdC1sZXZlbCBtZXNzYWdlIHdpbGwgYWxzbyBiZSBhcHBl
bmRlZAorICAgIGxvZ2dlci50ZXN0X2VuZCgidDIiLCBzdGF0dXM9IlRJTUVPVVQiLCBleHBlY3Rl
ZD0iUEFTUyIsCisgICAgICAgICAgICAgICAgICAgIG1lc3NhZ2U9InQyX21lc3NhZ2UiKQorICAg
IGxvZ2dlci5zdWl0ZV9lbmQoKQorCisgICAgIyBjaGVjayBub3RoaW5nIGdvdCBvdXRwdXQgdG8g
c3Rkb3V0L3N0ZGVycgorICAgICMgKG5vdGUgdGhhdCBtb3psb2cgb3V0cHV0cyBleGNlcHRpb25z
IGR1cmluZyBoYW5kbGluZyB0byBzdGRlcnIhKQorICAgIGNhcHR1cmVkID0gY2FwZmQucmVhZG91
dGVycigpCisgICAgYXNzZXJ0IGNhcHR1cmVkLm91dCA9PSAiIgorICAgIGFzc2VydCBjYXB0dXJl
ZC5lcnIgPT0gIiIKKworICAgICMgY2hlY2sgdGhlIGFjdHVhbCBvdXRwdXQgb2YgdGhlIGZvcm1h
dHRlcgorICAgIG91dHB1dC5zZWVrKDApCisgICAgb3V0cHV0X2pzb24gPSBqc29uLmxvYWQob3V0
cHV0KQorCisgICAgdDFfbG9nID0gb3V0cHV0X2pzb25bInRlc3RzIl1bInQxIl1bImFydGlmYWN0
cyJdWyJsb2ciXQorICAgIGFzc2VydCB0MV9sb2cgPT0gIltGQUlMIGV4cGVjdGVkIFBBU1NdIHQx
X2E6IHQxX2FfbWVzc2FnZVxuIiBcCisgICAgICAgICAgICAgICAgICAgICAiW1BBU1NdIHQxX2I6
IHQxX2JfbWVzc2FnZVxuIgorCisgICAgdDJfbG9nID0gb3V0cHV0X2pzb25bInRlc3RzIl1bInQy
Il1bImFydGlmYWN0cyJdWyJsb2ciXQorICAgIGFzc2VydCB0Ml9sb2cgPT0gIltUSU1FT1VUIGV4
cGVjdGVkIFBBU1NdIHQyX21lc3NhZ2VcbiIKKworCitkZWYgdGVzdF9zdWJ0ZXN0X2ZhaWx1cmUo
Y2FwZmQpOgorICAgICMgVGVzdHMgdGhhdCBhIHRlc3QgZmFpbHMgaWYgYSBzdWJ0ZXN0IGZhaWxz
CisKKyAgICAjIFNldCB1cCB0aGUgaGFuZGxlci4KKyAgICBvdXRwdXQgPSBTdHJpbmdJTygpCisg
ICAgbG9nZ2VyID0gc3RydWN0dXJlZGxvZy5TdHJ1Y3R1cmVkTG9nZ2VyKCJ0ZXN0X2EiKQorICAg
IGZvcm1hdHRlciA9IENocm9taXVtRm9ybWF0dGVyKCkKKyAgICBsb2dnZXIuYWRkX2hhbmRsZXIo
aGFuZGxlcnMuU3RyZWFtSGFuZGxlcihvdXRwdXQsIGZvcm1hdHRlcikpCisKKyAgICAjIFJ1biBh
IHRlc3Qgd2l0aCBzb21lIHN1YnRlc3QgZmFpbHVyZXMuCisgICAgbG9nZ2VyLnN1aXRlX3N0YXJ0
KFsidDEiXSwgcnVuX2luZm89e30sIHRpbWU9MTIzKQorICAgIGxvZ2dlci50ZXN0X3N0YXJ0KCJ0
MSIpCisgICAgbG9nZ2VyLnRlc3Rfc3RhdHVzKCJ0MSIsIHN0YXR1cz0iRkFJTCIsIHN1YnRlc3Q9
InQxX2EiLAorICAgICAgICAgICAgICAgICAgICAgICBtZXNzYWdlPSJ0MV9hX21lc3NhZ2UiKQor
ICAgIGxvZ2dlci50ZXN0X3N0YXR1cygidDEiLCBzdGF0dXM9IlBBU1MiLCBzdWJ0ZXN0PSJ0MV9i
IiwKKyAgICAgICAgICAgICAgICAgICAgICAgbWVzc2FnZT0idDFfYl9tZXNzYWdlIikKKyAgICBs
b2dnZXIudGVzdF9zdGF0dXMoInQxIiwgc3RhdHVzPSJUSU1FT1VUIiwgc3VidGVzdD0idDFfYyIs
CisgICAgICAgICAgICAgICAgICAgICAgIG1lc3NhZ2U9InQxX2NfbWVzc2FnZSIpCisKKyAgICAj
IE1ha2Ugc3VyZSB0aGUgdGVzdCBuYW1lIHdhcyBhZGRlZCB0byB0aGUgc2V0IG9mIHRlc3RzIHdp
dGggc3VidGVzdCBmYWlscworICAgIGFzc2VydCAidDEiIGluIGZvcm1hdHRlci50ZXN0c193aXRo
X3N1YnRlc3RfZmFpbHMKKworICAgICMgVGhlIHRlc3Qgc3RhdHVzIGlzIHJlcG9ydGVkIGFzIGEg
cGFzcyBoZXJlIGJlY2F1c2UgdGhlIGhhcm5lc3Mgd2FzIGFibGUgdG8KKyAgICAjIHJ1biB0aGUg
dGVzdCB0byBjb21wbGV0aW9uLgorICAgIGxvZ2dlci50ZXN0X2VuZCgidDEiLCBzdGF0dXM9IlBB
U1MiLCBleHBlY3RlZD0iUEFTUyIpCisgICAgbG9nZ2VyLnN1aXRlX2VuZCgpCisKKyAgICAjIGNo
ZWNrIG5vdGhpbmcgZ290IG91dHB1dCB0byBzdGRvdXQvc3RkZXJyCisgICAgIyAobm90ZSB0aGF0
IG1vemxvZyBvdXRwdXRzIGV4Y2VwdGlvbnMgZHVyaW5nIGhhbmRsaW5nIHRvIHN0ZGVyciEpCisg
ICAgY2FwdHVyZWQgPSBjYXBmZC5yZWFkb3V0ZXJyKCkKKyAgICBhc3NlcnQgY2FwdHVyZWQub3V0
ID09ICIiCisgICAgYXNzZXJ0IGNhcHR1cmVkLmVyciA9PSAiIgorCisgICAgIyBjaGVjayB0aGUg
YWN0dWFsIG91dHB1dCBvZiB0aGUgZm9ybWF0dGVyCisgICAgb3V0cHV0LnNlZWsoMCkKKyAgICBv
dXRwdXRfanNvbiA9IGpzb24ubG9hZChvdXRwdXQpCisKKyAgICB0ZXN0X29iaiA9IG91dHB1dF9q
c29uWyJ0ZXN0cyJdWyJ0MSJdCisgICAgdDFfbG9nID0gdGVzdF9vYmpbImFydGlmYWN0cyJdWyJs
b2ciXQorICAgIGFzc2VydCB0MV9sb2cgPT0gIltGQUlMIGV4cGVjdGVkIFBBU1NdIHQxX2E6IHQx
X2FfbWVzc2FnZVxuIiBcCisgICAgICAgICAgICAgICAgICAgICAiW1BBU1NdIHQxX2I6IHQxX2Jf
bWVzc2FnZVxuIiBcCisgICAgICAgICAgICAgICAgICAgICAiW1RJTUVPVVQgZXhwZWN0ZWQgUEFT
U10gdDFfYzogdDFfY19tZXNzYWdlXG4iCisgICAgIyBUaGUgc3RhdHVzIG9mIHRoZSB0ZXN0IGlu
IHRoZSBvdXRwdXQgaXMgYSBmYWlsdXJlIGJlY2F1c2Ugc3VidGVzdHMgZmFpbGVkLAorICAgICMg
ZGVzcGl0ZSB0aGUgaGFybmVzcyByZXBvcnRpbmcgdGhhdCB0aGUgdGVzdCBwYXNzZWQuCisgICAg
YXNzZXJ0IHRlc3Rfb2JqWyJhY3R1YWwiXSA9PSAiRkFJTCIKKyAgICAjIEFsc28gZW5zdXJlIHRo
YXQgdGhlIGZvcm1hdHRlciBjbGVhbmVkIHVwIGl0cyBpbnRlcm5hbCBzdGF0ZQorICAgIGFzc2Vy
dCAidDEiIG5vdCBpbiBmb3JtYXR0ZXIudGVzdHNfd2l0aF9zdWJ0ZXN0X2ZhaWxzCisKKworZGVm
IHRlc3RfZXhwZWN0ZWRfc3VidGVzdF9mYWlsdXJlKGNhcGZkKToKKyAgICAjIFRlc3RzIHRoYXQg
YW4gZXhwZWN0ZWQgc3VidGVzdCBmYWlsdXJlIGRvZXMgbm90IGNhdXNlIHRoZSB0ZXN0IHRvIGZh
aWwKKworICAgICMgU2V0IHVwIHRoZSBoYW5kbGVyLgorICAgIG91dHB1dCA9IFN0cmluZ0lPKCkK
KyAgICBsb2dnZXIgPSBzdHJ1Y3R1cmVkbG9nLlN0cnVjdHVyZWRMb2dnZXIoInRlc3RfYSIpCisg
ICAgZm9ybWF0dGVyID0gQ2hyb21pdW1Gb3JtYXR0ZXIoKQorICAgIGxvZ2dlci5hZGRfaGFuZGxl
cihoYW5kbGVycy5TdHJlYW1IYW5kbGVyKG91dHB1dCwgZm9ybWF0dGVyKSkKKworICAgICMgUnVu
IGEgdGVzdCB3aXRoIHNvbWUgZXhwZWN0ZWQgc3VidGVzdCBmYWlsdXJlcy4KKyAgICBsb2dnZXIu
c3VpdGVfc3RhcnQoWyJ0MSJdLCBydW5faW5mbz17fSwgdGltZT0xMjMpCisgICAgbG9nZ2VyLnRl
c3Rfc3RhcnQoInQxIikKKyAgICBsb2dnZXIudGVzdF9zdGF0dXMoInQxIiwgc3RhdHVzPSJGQUlM
IiwgZXhwZWN0ZWQ9IkZBSUwiLCBzdWJ0ZXN0PSJ0MV9hIiwKKyAgICAgICAgICAgICAgICAgICAg
ICAgbWVzc2FnZT0idDFfYV9tZXNzYWdlIikKKyAgICBsb2dnZXIudGVzdF9zdGF0dXMoInQxIiwg
c3RhdHVzPSJQQVNTIiwgc3VidGVzdD0idDFfYiIsCisgICAgICAgICAgICAgICAgICAgICAgIG1l
c3NhZ2U9InQxX2JfbWVzc2FnZSIpCisgICAgbG9nZ2VyLnRlc3Rfc3RhdHVzKCJ0MSIsIHN0YXR1
cz0iVElNRU9VVCIsIGV4cGVjdGVkPSJUSU1FT1VUIiwgc3VidGVzdD0idDFfYyIsCisgICAgICAg
ICAgICAgICAgICAgICAgIG1lc3NhZ2U9InQxX2NfbWVzc2FnZSIpCisKKyAgICAjIFRoZSBzdWJ0
ZXN0IGZhaWx1cmVzIGFyZSBhbGwgZXhwZWN0ZWQgc28gdGhpcyB0ZXN0IHNob3VsZCBub3QgYmUg
YWRkZWQgdG8KKyAgICAjIHRoZSBzZXQgb2YgdGVzdHMgd2l0aCBzdWJ0ZXN0IGZhaWx1cmVzLgor
ICAgIGFzc2VydCAidDEiIG5vdCBpbiBmb3JtYXR0ZXIudGVzdHNfd2l0aF9zdWJ0ZXN0X2ZhaWxz
CisKKyAgICAjIFRoZSB0ZXN0IHN0YXR1cyBpcyByZXBvcnRlZCBhcyBhIHBhc3MgaGVyZSBiZWNh
dXNlIHRoZSBoYXJuZXNzIHdhcyBhYmxlIHRvCisgICAgIyBydW4gdGhlIHRlc3QgdG8gY29tcGxl
dGlvbi4KKyAgICBsb2dnZXIudGVzdF9lbmQoInQxIiwgc3RhdHVzPSJQQVNTIiwgZXhwZWN0ZWQ9
IlBBU1MiKQorICAgIGxvZ2dlci5zdWl0ZV9lbmQoKQorCisgICAgIyBjaGVjayBub3RoaW5nIGdv
dCBvdXRwdXQgdG8gc3Rkb3V0L3N0ZGVycgorICAgICMgKG5vdGUgdGhhdCBtb3psb2cgb3V0cHV0
cyBleGNlcHRpb25zIGR1cmluZyBoYW5kbGluZyB0byBzdGRlcnIhKQorICAgIGNhcHR1cmVkID0g
Y2FwZmQucmVhZG91dGVycigpCisgICAgYXNzZXJ0IGNhcHR1cmVkLm91dCA9PSAiIgorICAgIGFz
c2VydCBjYXB0dXJlZC5lcnIgPT0gIiIKKworICAgICMgY2hlY2sgdGhlIGFjdHVhbCBvdXRwdXQg
b2YgdGhlIGZvcm1hdHRlcgorICAgIG91dHB1dC5zZWVrKDApCisgICAgb3V0cHV0X2pzb24gPSBq
c29uLmxvYWQob3V0cHV0KQorCisgICAgdGVzdF9vYmogPSBvdXRwdXRfanNvblsidGVzdHMiXVsi
dDEiXQorICAgIHQxX2xvZyA9IHRlc3Rfb2JqWyJhcnRpZmFjdHMiXVsibG9nIl0KKyAgICBhc3Nl
cnQgdDFfbG9nID09ICJbRkFJTF0gdDFfYTogdDFfYV9tZXNzYWdlXG4iIFwKKyAgICAgICAgICAg
ICAgICAgICAgICJbUEFTU10gdDFfYjogdDFfYl9tZXNzYWdlXG4iIFwKKyAgICAgICAgICAgICAg
ICAgICAgICJbVElNRU9VVF0gdDFfYzogdDFfY19tZXNzYWdlXG4iCisgICAgIyBUaGUgc3RhdHVz
IG9mIHRoZSB0ZXN0IGluIHRoZSBvdXRwdXQgaXMgYSBwYXNzIGJlY2F1c2UgdGhlIHN1YnRlc3QK
KyAgICAjIGZhaWx1cmVzIHdlcmUgYWxsIGV4cGVjdGVkLgorICAgIGFzc2VydCB0ZXN0X29ialsi
YWN0dWFsIl0gPT0gIlBBU1MiCisKKworZGVmIHRlc3RfdW5leHBlY3RlZF9zdWJ0ZXN0X3Bhc3Mo
Y2FwZmQpOgorICAgICMgQSBzdWJ0ZXN0IHRoYXQgdW5leHBlY3RlZGx5IHBhc3NlcyBpcyBjb25z
aWRlcmVkIGEgZmFpbHVyZSBjb25kaXRpb24uCisKKyAgICAjIFNldCB1cCB0aGUgaGFuZGxlci4K
KyAgICBvdXRwdXQgPSBTdHJpbmdJTygpCisgICAgbG9nZ2VyID0gc3RydWN0dXJlZGxvZy5TdHJ1
Y3R1cmVkTG9nZ2VyKCJ0ZXN0X2EiKQorICAgIGZvcm1hdHRlciA9IENocm9taXVtRm9ybWF0dGVy
KCkKKyAgICBsb2dnZXIuYWRkX2hhbmRsZXIoaGFuZGxlcnMuU3RyZWFtSGFuZGxlcihvdXRwdXQs
IGZvcm1hdHRlcikpCisKKyAgICAjIFJ1biBhIHRlc3Qgd2l0aCBhIHN1YnRlc3QgdGhhdCBpcyBl
eHBlY3RlZCB0byBmYWlsIGJ1dCBwYXNzZXMuCisgICAgbG9nZ2VyLnN1aXRlX3N0YXJ0KFsidDEi
XSwgcnVuX2luZm89e30sIHRpbWU9MTIzKQorICAgIGxvZ2dlci50ZXN0X3N0YXJ0KCJ0MSIpCisg
ICAgbG9nZ2VyLnRlc3Rfc3RhdHVzKCJ0MSIsIHN0YXR1cz0iUEFTUyIsIGV4cGVjdGVkPSJGQUlM
Iiwgc3VidGVzdD0idDFfYSIsCisgICAgICAgICAgICAgICAgICAgICAgIG1lc3NhZ2U9InQxX2Ff
bWVzc2FnZSIpCisKKyAgICAjIFNpbmNlIHRoZSBzdWJ0ZXN0IGJlaGF2aW91ciBpcyB1bmV4cGVj
dGVkLCBpdCdzIGNvbnNpZGVyZWQgYSBmYWlsdXJlLCBzbworICAgICMgdGhlIHRlc3Qgc2hvdWxk
IGJlIGFkZGVkIHRvIHRoZSBzZXQgb2YgdGVzdHMgd2l0aCBzdWJ0ZXN0IGZhaWx1cmVzLgorICAg
IGFzc2VydCAidDEiIGluIGZvcm1hdHRlci50ZXN0c193aXRoX3N1YnRlc3RfZmFpbHMKKworICAg
ICMgVGhlIHRlc3Qgc3RhdHVzIGlzIHJlcG9ydGVkIGFzIGEgcGFzcyBoZXJlIGJlY2F1c2UgdGhl
IGhhcm5lc3Mgd2FzIGFibGUgdG8KKyAgICAjIHJ1biB0aGUgdGVzdCB0byBjb21wbGV0aW9uLgor
ICAgIGxvZ2dlci50ZXN0X2VuZCgidDEiLCBzdGF0dXM9IlBBU1MiLCBleHBlY3RlZD0iUEFTUyIp
CisgICAgbG9nZ2VyLnN1aXRlX2VuZCgpCisKKyAgICAjIGNoZWNrIG5vdGhpbmcgZ290IG91dHB1
dCB0byBzdGRvdXQvc3RkZXJyCisgICAgIyAobm90ZSB0aGF0IG1vemxvZyBvdXRwdXRzIGV4Y2Vw
dGlvbnMgZHVyaW5nIGhhbmRsaW5nIHRvIHN0ZGVyciEpCisgICAgY2FwdHVyZWQgPSBjYXBmZC5y
ZWFkb3V0ZXJyKCkKKyAgICBhc3NlcnQgY2FwdHVyZWQub3V0ID09ICIiCisgICAgYXNzZXJ0IGNh
cHR1cmVkLmVyciA9PSAiIgorCisgICAgIyBjaGVjayB0aGUgYWN0dWFsIG91dHB1dCBvZiB0aGUg
Zm9ybWF0dGVyCisgICAgb3V0cHV0LnNlZWsoMCkKKyAgICBvdXRwdXRfanNvbiA9IGpzb24ubG9h
ZChvdXRwdXQpCisKKyAgICB0ZXN0X29iaiA9IG91dHB1dF9qc29uWyJ0ZXN0cyJdWyJ0MSJdCisg
ICAgdDFfbG9nID0gdGVzdF9vYmpbImFydGlmYWN0cyJdWyJsb2ciXQorICAgIGFzc2VydCB0MV9s
b2cgPT0gIltQQVNTIGV4cGVjdGVkIEZBSUxdIHQxX2E6IHQxX2FfbWVzc2FnZVxuIgorICAgICMg
U2luY2UgdGhlIHN1YnRlc3Qgc3RhdHVzIGlzIHVuZXhwZWN0ZWQsIHdlIGZhaWwgdGhlIHRlc3Qu
CisgICAgYXNzZXJ0IHRlc3Rfb2JqWyJhY3R1YWwiXSA9PSAiRkFJTCIKKyAgICAjIEFsc28gZW5z
dXJlIHRoYXQgdGhlIGZvcm1hdHRlciBjbGVhbmVkIHVwIGl0cyBpbnRlcm5hbCBzdGF0ZQorICAg
IGFzc2VydCAidDEiIG5vdCBpbiBmb3JtYXR0ZXIudGVzdHNfd2l0aF9zdWJ0ZXN0X2ZhaWxzCisK
KworZGVmIHRlc3RfZXhwZWN0ZWRfdGVzdF9mYWlsKGNhcGZkKToKKyAgICAjIENoZWNrIHRoYXQg
YW4gZXhwZWN0ZWQgdGVzdC1sZXZlbCBmYWlsdXJlIGlzIHRyZWF0ZWQgYXMgYSBQYXNzCisKKyAg
ICAjIFNldCB1cCB0aGUgaGFuZGxlci4KKyAgICBvdXRwdXQgPSBTdHJpbmdJTygpCisgICAgbG9n
Z2VyID0gc3RydWN0dXJlZGxvZy5TdHJ1Y3R1cmVkTG9nZ2VyKCJ0ZXN0X2EiKQorICAgIGxvZ2dl
ci5hZGRfaGFuZGxlcihoYW5kbGVycy5TdHJlYW1IYW5kbGVyKG91dHB1dCwgQ2hyb21pdW1Gb3Jt
YXR0ZXIoKSkpCisKKyAgICAjIFJ1biBzb21lIHRlc3RzIHdpdGggZGlmZmVyZW50IHN0YXR1c2Vz
OiAzIHBhc3NlcywgMSB0aW1lb3V0CisgICAgbG9nZ2VyLnN1aXRlX3N0YXJ0KFsidDEiXSwgcnVu
X2luZm89e30sIHRpbWU9MTIzKQorICAgIGxvZ2dlci50ZXN0X3N0YXJ0KCJ0MSIpCisgICAgbG9n
Z2VyLnRlc3RfZW5kKCJ0MSIsIHN0YXR1cz0iRVJST1IiLCBleHBlY3RlZD0iRVJST1IiKQorICAg
IGxvZ2dlci5zdWl0ZV9lbmQoKQorCisgICAgIyBjaGVjayBub3RoaW5nIGdvdCBvdXRwdXQgdG8g
c3Rkb3V0L3N0ZGVycgorICAgICMgKG5vdGUgdGhhdCBtb3psb2cgb3V0cHV0cyBleGNlcHRpb25z
IGR1cmluZyBoYW5kbGluZyB0byBzdGRlcnIhKQorICAgIGNhcHR1cmVkID0gY2FwZmQucmVhZG91
dGVycigpCisgICAgYXNzZXJ0IGNhcHR1cmVkLm91dCA9PSAiIgorICAgIGFzc2VydCBjYXB0dXJl
ZC5lcnIgPT0gIiIKKworICAgICMgY2hlY2sgdGhlIGFjdHVhbCBvdXRwdXQgb2YgdGhlIGZvcm1h
dHRlcgorICAgIG91dHB1dC5zZWVrKDApCisgICAgb3V0cHV0X2pzb24gPSBqc29uLmxvYWQob3V0
cHV0KQorCisgICAgdGVzdF9vYmogPSBvdXRwdXRfanNvblsidGVzdHMiXVsidDEiXQorICAgICMg
VGhlIHRlc3QncyBhY3R1YWwgYW5kIGV4cGVjdGVkIHN0YXR1cyBzaG91bGQgbWFwIGZyb20gIkVS
Uk9SIiB0byAiRkFJTCIKKyAgICBhc3NlcnQgdGVzdF9vYmpbImFjdHVhbCJdID09ICJGQUlMIgor
ICAgIGFzc2VydCB0ZXN0X29ialsiZXhwZWN0ZWQiXSA9PSAiRkFJTCIKKyAgICAjIC4uYW5kIHRo
aXMgdGVzdCBzaG91bGQgbm90IGJlIGEgcmVncmVzc2lvbiBub3IgdW5leHBlY3RlZAorICAgIGFz
c2VydCAiaXNfcmVncmVzc2lvbiIgbm90IGluIHRlc3Rfb2JqCisgICAgYXNzZXJ0ICJpc191bmV4
cGVjdGVkIiBub3QgaW4gdGVzdF9vYmoKKworCitkZWYgdGVzdF91bmV4cGVjdGVkX3Rlc3RfZmFp
bChjYXBmZCk6CisgICAgIyBDaGVjayB0aGF0IGFuIHVuZXhwZWN0ZWQgdGVzdC1sZXZlbCBmYWls
dXJlIGlzIG1hcmtlZCBhcyB1bmV4cGVjdGVkIGFuZAorICAgICMgYXMgYSByZWdyZXNzaW9uLgor
CisgICAgIyBTZXQgdXAgdGhlIGhhbmRsZXIuCisgICAgb3V0cHV0ID0gU3RyaW5nSU8oKQorICAg
IGxvZ2dlciA9IHN0cnVjdHVyZWRsb2cuU3RydWN0dXJlZExvZ2dlcigidGVzdF9hIikKKyAgICBs
b2dnZXIuYWRkX2hhbmRsZXIoaGFuZGxlcnMuU3RyZWFtSGFuZGxlcihvdXRwdXQsIENocm9taXVt
Rm9ybWF0dGVyKCkpKQorCisgICAgIyBSdW4gc29tZSB0ZXN0cyB3aXRoIGRpZmZlcmVudCBzdGF0
dXNlczogMyBwYXNzZXMsIDEgdGltZW91dAorICAgIGxvZ2dlci5zdWl0ZV9zdGFydChbInQxIl0s
IHJ1bl9pbmZvPXt9LCB0aW1lPTEyMykKKyAgICBsb2dnZXIudGVzdF9zdGFydCgidDEiKQorICAg
IGxvZ2dlci50ZXN0X2VuZCgidDEiLCBzdGF0dXM9IkVSUk9SIiwgZXhwZWN0ZWQ9Ik9LIikKKyAg
ICBsb2dnZXIuc3VpdGVfZW5kKCkKKworICAgICMgY2hlY2sgbm90aGluZyBnb3Qgb3V0cHV0IHRv
IHN0ZG91dC9zdGRlcnIKKyAgICAjIChub3RlIHRoYXQgbW96bG9nIG91dHB1dHMgZXhjZXB0aW9u
cyBkdXJpbmcgaGFuZGxpbmcgdG8gc3RkZXJyISkKKyAgICBjYXB0dXJlZCA9IGNhcGZkLnJlYWRv
dXRlcnIoKQorICAgIGFzc2VydCBjYXB0dXJlZC5vdXQgPT0gIiIKKyAgICBhc3NlcnQgY2FwdHVy
ZWQuZXJyID09ICIiCisKKyAgICAjIGNoZWNrIHRoZSBhY3R1YWwgb3V0cHV0IG9mIHRoZSBmb3Jt
YXR0ZXIKKyAgICBvdXRwdXQuc2VlaygwKQorICAgIG91dHB1dF9qc29uID0ganNvbi5sb2FkKG91
dHB1dCkKKworICAgIHRlc3Rfb2JqID0gb3V0cHV0X2pzb25bInRlc3RzIl1bInQxIl0KKyAgICAj
IFRoZSB0ZXN0J3MgYWN0dWFsIGFuZCBleHBlY3RlZCBzdGF0dXMgc2hvdWxkIGJlIG1hcHBlZCwg
RVJST1ItPkZBSUwgYW5kCisgICAgIyBPSy0+UEFTUworICAgIGFzc2VydCB0ZXN0X29ialsiYWN0
dWFsIl0gPT0gIkZBSUwiCisgICAgYXNzZXJ0IHRlc3Rfb2JqWyJleHBlY3RlZCJdID09ICJQQVNT
IgorICAgICMgLi5hbmQgdGhpcyB0ZXN0IHNob3VsZCBub3QgYmUgYSByZWdyZXNzaW9uIG5vciB1
bmV4cGVjdGVkCisgICAgYXNzZXJ0IHRlc3Rfb2JqWyJpc19yZWdyZXNzaW9uIl0gaXMgVHJ1ZQor
ICAgIGFzc2VydCB0ZXN0X29ialsiaXNfdW5leHBlY3RlZCJdIGlzIFRydWUKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVu
bmVyL3dwdHJ1bm5lci9mb3JtYXR0ZXJzL3Rlc3RzL3czYy1pbXBvcnQubG9nIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVu
bmVyL2Zvcm1hdHRlcnMvdGVzdHMvdzNjLWltcG9ydC5sb2cKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uN2MyY2Y0ZmU3
NGEzNTRkMjgxN2E4MGVjN2QwM2EzNjg0N2E3ZDE3YwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dw
dHJ1bm5lci9mb3JtYXR0ZXJzL3Rlc3RzL3czYy1pbXBvcnQubG9nCkBAIC0wLDAgKzEsMTcgQEAK
K1RoZSB0ZXN0cyBpbiB0aGlzIGRpcmVjdG9yeSB3ZXJlIGltcG9ydGVkIGZyb20gdGhlIFczQyBy
ZXBvc2l0b3J5LgorRG8gTk9UIG1vZGlmeSB0aGVzZSB0ZXN0cyBkaXJlY3RseSBpbiBXZWJLaXQu
CitJbnN0ZWFkLCBjcmVhdGUgYSBwdWxsIHJlcXVlc3Qgb24gdGhlIFdQVCBnaXRodWI6CisJaHR0
cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQKKworVGhlbiBydW4gdGhlIFRv
b2xzL1NjcmlwdHMvaW1wb3J0LXczYy10ZXN0cyBpbiBXZWJLaXQgdG8gcmVpbXBvcnQKKworRG8g
Tk9UIG1vZGlmeSBvciByZW1vdmUgdGhpcyBmaWxlLgorCistLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK1Byb3Bl
cnRpZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKK05vbmUKK1Byb3BlcnR5IHZhbHVlcyBy
ZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgorTm9uZQorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitMaXN0IG9m
IGZpbGVzOgorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvd3B0cnVubmVyL3dwdHJ1bm5lci9mb3JtYXR0ZXJzL3Rlc3RzL3Rlc3RfY2hyb21pdW0ucHkK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9mb3JtYXR0ZXJzL3czYy1pbXBvcnQubG9nIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIv
d3B0cnVubmVyL2Zvcm1hdHRlcnMvdzNjLWltcG9ydC5sb2cKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOTcxYWIwYjA5
NmUxNWIzN2Y3YzE4M2QwMDI5MGYyZjlhZTc0NjMyZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dw
dHJ1bm5lci9mb3JtYXR0ZXJzL3czYy1pbXBvcnQubG9nCkBAIC0wLDAgKzEsMjAgQEAKK1RoZSB0
ZXN0cyBpbiB0aGlzIGRpcmVjdG9yeSB3ZXJlIGltcG9ydGVkIGZyb20gdGhlIFczQyByZXBvc2l0
b3J5LgorRG8gTk9UIG1vZGlmeSB0aGVzZSB0ZXN0cyBkaXJlY3RseSBpbiBXZWJLaXQuCitJbnN0
ZWFkLCBjcmVhdGUgYSBwdWxsIHJlcXVlc3Qgb24gdGhlIFdQVCBnaXRodWI6CisJaHR0cHM6Ly9n
aXRodWIuY29tL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQKKworVGhlbiBydW4gdGhlIFRvb2xzL1Nj
cmlwdHMvaW1wb3J0LXczYy10ZXN0cyBpbiBXZWJLaXQgdG8gcmVpbXBvcnQKKworRG8gTk9UIG1v
ZGlmeSBvciByZW1vdmUgdGhpcyBmaWxlLgorCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK1Byb3BlcnRpZXMg
cmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKK05vbmUKK1Byb3BlcnR5IHZhbHVlcyByZXF1aXJp
bmcgdmVuZG9yIHByZWZpeGVzOgorTm9uZQorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitMaXN0IG9mIGZpbGVz
OgorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0
cnVubmVyL3dwdHJ1bm5lci9mb3JtYXR0ZXJzL19faW5pdF9fLnB5CisvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2Zv
cm1hdHRlcnMvY2hyb21pdW0ucHkKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvZm9ybWF0dGVycy93cHRyZXBvcnQu
cHkKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dw
dHJ1bm5lci93cHRydW5uZXIvZm9ybWF0dGVycy93cHRzY3JlZW5zaG90LnB5CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1
bm5lci93cHRydW5uZXIvZm9ybWF0dGVycy93cHRyZXBvcnQucHkgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvZm9y
bWF0dGVycy93cHRyZXBvcnQucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNmQ0NDAxYWU1YWFjZjlkYjAyOGY5NGU4
OGJiZmNjMmJlMzM3MjZjMwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9mb3JtYXR0
ZXJzL3dwdHJlcG9ydC5weQpAQCAtMCwwICsxLDE3MCBAQAoraW1wb3J0IGpzb24KK2ltcG9ydCBy
ZQoraW1wb3J0IHN5cworCitmcm9tIG1vemxvZy5zdHJ1Y3R1cmVkLmZvcm1hdHRlcnMuYmFzZSBp
bXBvcnQgQmFzZUZvcm1hdHRlcgorZnJvbSAuLmV4ZWN1dG9ycy5iYXNlIGltcG9ydCBzdHJpcF9z
ZXJ2ZXIKKworCitMT05FX1NVUlJPR0FURV9SRSA9IHJlLmNvbXBpbGUodSJbXHVEODAwLVx1REZG
Rl0iKQorCisKK2RlZiBzdXJyb2dhdGVfcmVwbGFjZW1lbnRfdWNzNChtYXRjaCk6CisgICAgcmV0
dXJuICJVKyIgKyBoZXgob3JkKG1hdGNoLmdyb3VwKCkpKVsyOl0KKworCitjbGFzcyBTdXJyb2dh
dGVSZXBsYWNlbWVudFVjczIob2JqZWN0KToKKyAgICBkZWYgX19pbml0X18oc2VsZik6CisgICAg
ICAgIHNlbGYuc2tpcCA9IEZhbHNlCisKKyAgICBkZWYgX19jYWxsX18oc2VsZiwgbWF0Y2gpOgor
ICAgICAgICBjaGFyID0gbWF0Y2guZ3JvdXAoKQorCisgICAgICAgIGlmIHNlbGYuc2tpcDoKKyAg
ICAgICAgICAgIHNlbGYuc2tpcCA9IEZhbHNlCisgICAgICAgICAgICByZXR1cm4gY2hhcgorCisg
ICAgICAgIGlzX2xvdyA9IDB4RDgwMCA8PSBvcmQoY2hhcikgPD0gMHhEQkZGCisKKyAgICAgICAg
ZXNjYXBlID0gVHJ1ZQorICAgICAgICBpZiBpc19sb3c6CisgICAgICAgICAgICBuZXh0X2lkeCA9
IG1hdGNoLmVuZCgpCisgICAgICAgICAgICBpZiBuZXh0X2lkeCA8IGxlbihtYXRjaC5zdHJpbmcp
OgorICAgICAgICAgICAgICAgIG5leHRfY2hhciA9IG1hdGNoLnN0cmluZ1tuZXh0X2lkeF0KKyAg
ICAgICAgICAgICAgICBpZiAweERDMDAgPD0gb3JkKG5leHRfY2hhcikgPD0gMHhERkZGOgorICAg
ICAgICAgICAgICAgICAgICBlc2NhcGUgPSBGYWxzZQorCisgICAgICAgIGlmIG5vdCBlc2NhcGU6
CisgICAgICAgICAgICBzZWxmLnNraXAgPSBUcnVlCisgICAgICAgICAgICByZXR1cm4gY2hhcgor
CisgICAgICAgIHJldHVybiAiVSsiICsgaGV4KG9yZChtYXRjaC5ncm91cCgpKSlbMjpdCisKKwor
aWYgc3lzLm1heHVuaWNvZGUgPT0gMHgxMEZGRkY6CisgICAgc3Vycm9nYXRlX3JlcGxhY2VtZW50
ID0gc3Vycm9nYXRlX3JlcGxhY2VtZW50X3VjczQKK2Vsc2U6CisgICAgc3Vycm9nYXRlX3JlcGxh
Y2VtZW50ID0gU3Vycm9nYXRlUmVwbGFjZW1lbnRVY3MyKCkKKworCitkZWYgcmVwbGFjZV9sb25l
X3N1cnJvZ2F0ZShkYXRhKToKKyAgICByZXR1cm4gTE9ORV9TVVJST0dBVEVfUkUuc3VibihzdXJy
b2dhdGVfcmVwbGFjZW1lbnQsIGRhdGEpWzBdCisKKworY2xhc3MgV3B0cmVwb3J0Rm9ybWF0dGVy
KEJhc2VGb3JtYXR0ZXIpOgorICAgICIiIkZvcm1hdHRlciB0aGF0IHByb2R1Y2VzIHJlc3VsdHMg
aW4gdGhlIGZvcm1hdCB0aGF0IHdwdHJlcG9ydCBleHBlY3RzLiIiIgorCisgICAgZGVmIF9faW5p
dF9fKHNlbGYpOgorICAgICAgICBzZWxmLnJhd19yZXN1bHRzID0ge30KKyAgICAgICAgc2VsZi5y
ZXN1bHRzID0ge30KKworICAgIGRlZiBzdWl0ZV9zdGFydChzZWxmLCBkYXRhKToKKyAgICAgICAg
aWYgJ3J1bl9pbmZvJyBpbiBkYXRhOgorICAgICAgICAgICAgc2VsZi5yZXN1bHRzWydydW5faW5m
byddID0gZGF0YVsncnVuX2luZm8nXQorICAgICAgICBzZWxmLnJlc3VsdHNbJ3RpbWVfc3RhcnQn
XSA9IGRhdGFbJ3RpbWUnXQorICAgICAgICBzZWxmLnJlc3VsdHNbInJlc3VsdHMiXSA9IFtdCisK
KyAgICBkZWYgc3VpdGVfZW5kKHNlbGYsIGRhdGEpOgorICAgICAgICBzZWxmLnJlc3VsdHNbJ3Rp
bWVfZW5kJ10gPSBkYXRhWyd0aW1lJ10KKyAgICAgICAgZm9yIHRlc3RfbmFtZSBpbiBzZWxmLnJh
d19yZXN1bHRzOgorICAgICAgICAgICAgcmVzdWx0ID0geyJ0ZXN0IjogdGVzdF9uYW1lfQorICAg
ICAgICAgICAgcmVzdWx0LnVwZGF0ZShzZWxmLnJhd19yZXN1bHRzW3Rlc3RfbmFtZV0pCisgICAg
ICAgICAgICBzZWxmLnJlc3VsdHNbInJlc3VsdHMiXS5hcHBlbmQocmVzdWx0KQorICAgICAgICBy
ZXR1cm4ganNvbi5kdW1wcyhzZWxmLnJlc3VsdHMpICsgIlxuIgorCisgICAgZGVmIGZpbmRfb3Jf
Y3JlYXRlX3Rlc3Qoc2VsZiwgZGF0YSk6CisgICAgICAgIHRlc3RfbmFtZSA9IGRhdGFbInRlc3Qi
XQorICAgICAgICBpZiB0ZXN0X25hbWUgbm90IGluIHNlbGYucmF3X3Jlc3VsdHM6CisgICAgICAg
ICAgICBzZWxmLnJhd19yZXN1bHRzW3Rlc3RfbmFtZV0gPSB7CisgICAgICAgICAgICAgICAgInN1
YnRlc3RzIjogW10sCisgICAgICAgICAgICAgICAgInN0YXR1cyI6ICIiLAorICAgICAgICAgICAg
ICAgICJtZXNzYWdlIjogTm9uZQorICAgICAgICAgICAgfQorICAgICAgICByZXR1cm4gc2VsZi5y
YXdfcmVzdWx0c1t0ZXN0X25hbWVdCisKKyAgICBkZWYgdGVzdF9zdGFydChzZWxmLCBkYXRhKToK
KyAgICAgICAgdGVzdCA9IHNlbGYuZmluZF9vcl9jcmVhdGVfdGVzdChkYXRhKQorICAgICAgICB0
ZXN0WyJzdGFydF90aW1lIl0gPSBkYXRhWyJ0aW1lIl0KKworICAgIGRlZiBjcmVhdGVfc3VidGVz
dChzZWxmLCBkYXRhKToKKyAgICAgICAgdGVzdCA9IHNlbGYuZmluZF9vcl9jcmVhdGVfdGVzdChk
YXRhKQorICAgICAgICBzdWJ0ZXN0X25hbWUgPSByZXBsYWNlX2xvbmVfc3Vycm9nYXRlKGRhdGFb
InN1YnRlc3QiXSkKKworICAgICAgICBzdWJ0ZXN0ID0geworICAgICAgICAgICAgIm5hbWUiOiBz
dWJ0ZXN0X25hbWUsCisgICAgICAgICAgICAic3RhdHVzIjogIiIsCisgICAgICAgICAgICAibWVz
c2FnZSI6IE5vbmUKKyAgICAgICAgfQorICAgICAgICB0ZXN0WyJzdWJ0ZXN0cyJdLmFwcGVuZChz
dWJ0ZXN0KQorCisgICAgICAgIHJldHVybiBzdWJ0ZXN0CisKKyAgICBkZWYgdGVzdF9zdGF0dXMo
c2VsZiwgZGF0YSk6CisgICAgICAgIHN1YnRlc3QgPSBzZWxmLmNyZWF0ZV9zdWJ0ZXN0KGRhdGEp
CisgICAgICAgIHN1YnRlc3RbInN0YXR1cyJdID0gZGF0YVsic3RhdHVzIl0KKyAgICAgICAgaWYg
ImV4cGVjdGVkIiBpbiBkYXRhOgorICAgICAgICAgICAgc3VidGVzdFsiZXhwZWN0ZWQiXSA9IGRh
dGFbImV4cGVjdGVkIl0KKyAgICAgICAgaWYgImtub3duX2ludGVybWl0dGVudCIgaW4gZGF0YToK
KyAgICAgICAgICAgIHN1YnRlc3RbImtub3duX2ludGVybWl0dGVudCJdID0gZGF0YVsia25vd25f
aW50ZXJtaXR0ZW50Il0KKyAgICAgICAgaWYgIm1lc3NhZ2UiIGluIGRhdGE6CisgICAgICAgICAg
ICBzdWJ0ZXN0WyJtZXNzYWdlIl0gPSByZXBsYWNlX2xvbmVfc3Vycm9nYXRlKGRhdGFbIm1lc3Nh
Z2UiXSkKKworICAgIGRlZiB0ZXN0X2VuZChzZWxmLCBkYXRhKToKKyAgICAgICAgdGVzdCA9IHNl
bGYuZmluZF9vcl9jcmVhdGVfdGVzdChkYXRhKQorICAgICAgICBzdGFydF90aW1lID0gdGVzdC5w
b3AoInN0YXJ0X3RpbWUiKQorICAgICAgICB0ZXN0WyJkdXJhdGlvbiJdID0gZGF0YVsidGltZSJd
IC0gc3RhcnRfdGltZQorICAgICAgICB0ZXN0WyJzdGF0dXMiXSA9IGRhdGFbInN0YXR1cyJdCisg
ICAgICAgIGlmICJleHBlY3RlZCIgaW4gZGF0YToKKyAgICAgICAgICAgIHRlc3RbImV4cGVjdGVk
Il0gPSBkYXRhWyJleHBlY3RlZCJdCisgICAgICAgIGlmICJrbm93bl9pbnRlcm1pdHRlbnQiIGlu
IGRhdGE6CisgICAgICAgICAgICB0ZXN0WyJrbm93bl9pbnRlcm1pdHRlbnQiXSA9IGRhdGFbImtu
b3duX2ludGVybWl0dGVudCJdCisgICAgICAgIGlmICJtZXNzYWdlIiBpbiBkYXRhOgorICAgICAg
ICAgICAgdGVzdFsibWVzc2FnZSJdID0gcmVwbGFjZV9sb25lX3N1cnJvZ2F0ZShkYXRhWyJtZXNz
YWdlIl0pCisgICAgICAgIGlmICJyZWZ0ZXN0X3NjcmVlbnNob3RzIiBpbiBkYXRhLmdldCgiZXh0
cmEiLCB7fSk6CisgICAgICAgICAgICB0ZXN0WyJzY3JlZW5zaG90cyJdID0geworICAgICAgICAg
ICAgICAgIHN0cmlwX3NlcnZlcihpdGVtWyJ1cmwiXSk6ICJzaGExOiIgKyBpdGVtWyJoYXNoIl0K
KyAgICAgICAgICAgICAgICBmb3IgaXRlbSBpbiBkYXRhWyJleHRyYSJdWyJyZWZ0ZXN0X3NjcmVl
bnNob3RzIl0KKyAgICAgICAgICAgICAgICBpZiB0eXBlKGl0ZW0pID09IGRpY3QKKyAgICAgICAg
ICAgIH0KKyAgICAgICAgdGVzdF9uYW1lID0gZGF0YVsidGVzdCJdCisgICAgICAgIHJlc3VsdCA9
IHsidGVzdCI6IGRhdGFbInRlc3QiXX0KKyAgICAgICAgcmVzdWx0LnVwZGF0ZShzZWxmLnJhd19y
ZXN1bHRzW3Rlc3RfbmFtZV0pCisgICAgICAgIHNlbGYucmVzdWx0c1sicmVzdWx0cyJdLmFwcGVu
ZChyZXN1bHQpCisgICAgICAgIHNlbGYucmF3X3Jlc3VsdHMucG9wKHRlc3RfbmFtZSkKKworICAg
IGRlZiBhc3NlcnRpb25fY291bnQoc2VsZiwgZGF0YSk6CisgICAgICAgIHRlc3QgPSBzZWxmLmZp
bmRfb3JfY3JlYXRlX3Rlc3QoZGF0YSkKKyAgICAgICAgdGVzdFsiYXNzZXJ0cyJdID0geworICAg
ICAgICAgICAgImNvdW50IjogZGF0YVsiY291bnQiXSwKKyAgICAgICAgICAgICJtaW4iOiBkYXRh
WyJtaW5fZXhwZWN0ZWQiXSwKKyAgICAgICAgICAgICJtYXgiOiBkYXRhWyJtYXhfZXhwZWN0ZWQi
XQorICAgICAgICB9CisKKyAgICBkZWYgbHNhbl9sZWFrKHNlbGYsIGRhdGEpOgorICAgICAgICBp
ZiAibHNhbl9sZWFrcyIgbm90IGluIHNlbGYucmVzdWx0czoKKyAgICAgICAgICAgIHNlbGYucmVz
dWx0c1sibHNhbl9sZWFrcyJdID0gW10KKyAgICAgICAgbHNhbl9sZWFrcyA9IHNlbGYucmVzdWx0
c1sibHNhbl9sZWFrcyJdCisgICAgICAgIGxzYW5fbGVha3MuYXBwZW5kKHsiZnJhbWVzIjogZGF0
YVsiZnJhbWVzIl0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAic2NvcGUiOiBkYXRhWyJz
Y29wZSJdLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgImFsbG93ZWRfbWF0Y2giOiBkYXRh
LmdldCgiYWxsb3dlZF9tYXRjaCIpfSkKKworICAgIGRlZiBmaW5kX29yX2NyZWF0ZV9tb3psZWFr
KHNlbGYsIGRhdGEpOgorICAgICAgICBpZiAibW96bGVhayIgbm90IGluIHNlbGYucmVzdWx0czoK
KyAgICAgICAgICAgIHNlbGYucmVzdWx0c1sibW96bGVhayJdID0ge30KKyAgICAgICAgc2NvcGUg
PSBkYXRhWyJzY29wZSJdCisgICAgICAgIGlmIHNjb3BlIG5vdCBpbiBzZWxmLnJlc3VsdHNbIm1v
emxlYWsiXToKKyAgICAgICAgICAgIHNlbGYucmVzdWx0c1sibW96bGVhayJdW3Njb3BlXSA9IHsi
b2JqZWN0cyI6IFtdLCAidG90YWwiOiBbXX0KKyAgICAgICAgcmV0dXJuIHNlbGYucmVzdWx0c1si
bW96bGVhayJdW3Njb3BlXQorCisgICAgZGVmIG1vemxlYWtfb2JqZWN0KHNlbGYsIGRhdGEpOgor
ICAgICAgICBzY29wZV9kYXRhID0gc2VsZi5maW5kX29yX2NyZWF0ZV9tb3psZWFrKGRhdGEpCisg
ICAgICAgIHNjb3BlX2RhdGFbIm9iamVjdHMiXS5hcHBlbmQoeyJwcm9jZXNzIjogZGF0YVsicHJv
Y2VzcyJdLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAibmFtZSI6IGRh
dGFbIm5hbWUiXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImFsbG93
ZWQiOiBkYXRhLmdldCgiYWxsb3dlZCIsIEZhbHNlKSwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgImJ5dGVzIjogZGF0YVsiYnl0ZXMiXX0pCisKKyAgICBkZWYgbW96bGVh
a190b3RhbChzZWxmLCBkYXRhKToKKyAgICAgICAgc2NvcGVfZGF0YSA9IHNlbGYuZmluZF9vcl9j
cmVhdGVfbW96bGVhayhkYXRhKQorICAgICAgICBzY29wZV9kYXRhWyJ0b3RhbCJdLmFwcGVuZCh7
ImJ5dGVzIjogZGF0YVsiYnl0ZXMiXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICJ0aHJlc2hvbGQiOiBkYXRhLmdldCgidGhyZXNob2xkIiwgMCksCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAicHJvY2VzcyI6IGRhdGFbInByb2Nlc3MiXX0pCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3dwdHJ1bm5lci93cHRydW5uZXIvZm9ybWF0dGVycy93cHRzY3JlZW5zaG90LnB5IGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0
cnVubmVyL2Zvcm1hdHRlcnMvd3B0c2NyZWVuc2hvdC5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mODU0ZDk1Yjlk
MDQ3OTA0MTMwNDg1ODQ1NmNhM2VhYzE5MjMyNTVmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0
cnVubmVyL2Zvcm1hdHRlcnMvd3B0c2NyZWVuc2hvdC5weQpAQCAtMCwwICsxLDQ3IEBACitpbXBv
cnQgcmVxdWVzdHMKK2Zyb20gbW96bG9nLnN0cnVjdHVyZWQuZm9ybWF0dGVycy5iYXNlIGltcG9y
dCBCYXNlRm9ybWF0dGVyCisKK0RFRkFVTFRfQVBJID0gImh0dHBzOi8vd3B0LmZ5aS9hcGkvc2Ny
ZWVuc2hvdHMvaGFzaGVzIgorCisKK2NsYXNzIFdwdHNjcmVlbnNob3RGb3JtYXR0ZXIoQmFzZUZv
cm1hdHRlcik6CisgICAgIiIiRm9ybWF0dGVyIHRoYXQgb3V0cHV0cyBzY3JlZW5zaG90cyBpbiB0
aGUgZm9ybWF0IGV4cGVjdGVkIGJ5IHdwdC5meWkuIiIiCisKKyAgICBkZWYgX19pbml0X18oc2Vs
ZiwgYXBpPU5vbmUpOgorICAgICAgICBzZWxmLmFwaSA9IGFwaSBvciBERUZBVUxUX0FQSQorICAg
ICAgICBzZWxmLmNhY2hlID0gc2V0KCkKKworICAgIGRlZiBzdWl0ZV9zdGFydChzZWxmLCBkYXRh
KToKKyAgICAgICAgIyBUT0RPKEhleGNsZXMpOiBXZSBtaWdodCB3YW50IHRvIG1vdmUgdGhlIHJl
cXVlc3QgaW50byBhIGRpZmZlcmVudAorICAgICAgICAjIHBsYWNlLCBtYWtlIGl0IG5vbi1ibG9j
a2luZywgYW5kIGhhbmRsZSBlcnJvcnMgYmV0dGVyLgorICAgICAgICBwYXJhbXMgPSB7fQorICAg
ICAgICBydW5faW5mbyA9IGRhdGEuZ2V0KCJydW5faW5mbyIsIHt9KQorICAgICAgICBpZiAicHJv
ZHVjdCIgaW4gcnVuX2luZm86CisgICAgICAgICAgICBwYXJhbXNbImJyb3dzZXIiXSA9IHJ1bl9p
bmZvWyJwcm9kdWN0Il0KKyAgICAgICAgaWYgImJyb3dzZXJfdmVyc2lvbiIgaW4gcnVuX2luZm86
CisgICAgICAgICAgICBwYXJhbXNbImJyb3dzZXJfdmVyc2lvbiJdID0gcnVuX2luZm9bImJyb3dz
ZXJfdmVyc2lvbiJdCisgICAgICAgIGlmICJvcyIgaW4gcnVuX2luZm86CisgICAgICAgICAgICBw
YXJhbXNbIm9zIl0gPSBydW5faW5mb1sib3MiXQorICAgICAgICBpZiAib3NfdmVyc2lvbiIgaW4g
cnVuX2luZm86CisgICAgICAgICAgICBwYXJhbXNbIm9zX3ZlcnNpb24iXSA9IHJ1bl9pbmZvWyJv
c192ZXJzaW9uIl0KKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgciA9IHJlcXVlc3RzLmdldChz
ZWxmLmFwaSwgcGFyYW1zPXBhcmFtcykKKyAgICAgICAgICAgIHIucmFpc2VfZm9yX3N0YXR1cygp
CisgICAgICAgICAgICBzZWxmLmNhY2hlID0gc2V0KHIuanNvbigpKQorICAgICAgICBleGNlcHQg
KHJlcXVlc3RzLmV4Y2VwdGlvbnMuUmVxdWVzdEV4Y2VwdGlvbiwgVmFsdWVFcnJvcik6CisgICAg
ICAgICAgICBwYXNzCisKKyAgICBkZWYgdGVzdF9lbmQoc2VsZiwgZGF0YSk6CisgICAgICAgIGlm
ICJyZWZ0ZXN0X3NjcmVlbnNob3RzIiBub3QgaW4gZGF0YS5nZXQoImV4dHJhIiwge30pOgorICAg
ICAgICAgICAgcmV0dXJuCisgICAgICAgIG91dHB1dCA9ICIiCisgICAgICAgIGZvciBpdGVtIGlu
IGRhdGFbImV4dHJhIl1bInJlZnRlc3Rfc2NyZWVuc2hvdHMiXToKKyAgICAgICAgICAgIGlmIHR5
cGUoaXRlbSkgIT0gZGljdDoKKyAgICAgICAgICAgICAgICAjIFNraXAgdGhlIHJlbGF0aW9uIHN0
cmluZy4KKyAgICAgICAgICAgICAgICBjb250aW51ZQorICAgICAgICAgICAgY2hlY2tzdW0gPSAi
c2hhMToiICsgaXRlbVsiaGFzaCJdCisgICAgICAgICAgICBpZiBjaGVja3N1bSBpbiBzZWxmLmNh
Y2hlOgorICAgICAgICAgICAgICAgIGNvbnRpbnVlCisgICAgICAgICAgICBzZWxmLmNhY2hlLmFk
ZChjaGVja3N1bSkKKyAgICAgICAgICAgIG91dHB1dCArPSAiZGF0YTppbWFnZS9wbmc7YmFzZTY0
LHt9XG4iLmZvcm1hdChpdGVtWyJzY3JlZW5zaG90Il0pCisgICAgICAgIHJldHVybiBvdXRwdXQg
aWYgb3V0cHV0IGVsc2UgTm9uZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL21hbmlmZXN0ZXhw
ZWN0ZWQucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3dwdHJ1bm5lci93cHRydW5uZXIvbWFuaWZlc3RleHBlY3RlZC5weQppbmRleCA4MzFmNTM3
OGIzNjgyM2RiMDEzNjdkNTdlZjQwYjYxYWE3MGM2ZmNlLi5lYWU4NWIxZjY2NjFhNjdkZmY1OWVm
NzhhOWVkNjI3ZTNlMzYwM2Q4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvbWFuaWZlc3RleHBl
Y3RlZC5weQorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvbWFuaWZlc3RleHBlY3RlZC5weQpAQCAtMSwxMCAr
MSwxMSBAQAogaW1wb3J0IG9zCi1pbXBvcnQgdXJscGFyc2UKK2Zyb20gc2l4Lm1vdmVzLnVybGxp
Yi5wYXJzZSBpbXBvcnQgdXJsam9pbgorZnJvbSBjb2xsZWN0aW9ucyBpbXBvcnQgZGVxdWUKIAot
ZnJvbSB3cHRtYW5pZmVzdC5iYWNrZW5kcyBpbXBvcnQgc3RhdGljCi1mcm9tIHdwdG1hbmlmZXN0
LmJhY2tlbmRzLnN0YXRpYyBpbXBvcnQgTWFuaWZlc3RJdGVtCitmcm9tIC53cHRtYW5pZmVzdC5i
YWNrZW5kcyBpbXBvcnQgc3RhdGljCitmcm9tIC53cHRtYW5pZmVzdC5iYWNrZW5kcy5iYXNlIGlt
cG9ydCBNYW5pZmVzdEl0ZW0KIAotaW1wb3J0IGV4cGVjdGVkCitmcm9tIC4gaW1wb3J0IGV4cGVj
dGVkCiAKICIiIk1hbmlmZXN0IHN0cnVjdHVyZSB1c2VkIHRvIHN0b3JlIGV4cGVjdGVkIHJlc3Vs
dHMgb2YgYSB0ZXN0LgogCkBAIC00MSw2ICs0MiwxNyBAQCBkZWYgaW50X3Byb3AobmFtZSwgbm9k
ZSk6CiAgICAgICAgIHJldHVybiBOb25lCiAKIAorZGVmIGxpc3RfcHJvcChuYW1lLCBub2RlKToK
KyAgICAiIiJMaXN0IHByb3BlcnR5IiIiCisgICAgdHJ5OgorICAgICAgICBsaXN0X3Byb3AgPSBu
b2RlLmdldChuYW1lKQorICAgICAgICBpZiBpc2luc3RhbmNlKGxpc3RfcHJvcCwgYmFzZXN0cmlu
Zyk6CisgICAgICAgICAgICByZXR1cm4gW2xpc3RfcHJvcF0KKyAgICAgICAgcmV0dXJuIGxpc3Qo
bGlzdF9wcm9wKQorICAgIGV4Y2VwdCBLZXlFcnJvcjoKKyAgICAgICAgcmV0dXJuIFtdCisKKwog
ZGVmIHRhZ3Mobm9kZSk6CiAgICAgIiIiU2V0IG9mIHRhZ3MgdGhhdCBoYXZlIGJlZW4gYXBwbGll
ZCB0byB0aGUgdGVzdCIiIgogICAgIHRyeToKQEAgLTU1LDggKzY3LDkgQEAgZGVmIHRhZ3Mobm9k
ZSk6CiBkZWYgcHJlZnMobm9kZSk6CiAgICAgZGVmIHZhbHVlKGluaV92YWx1ZSk6CiAgICAgICAg
IGlmIGlzaW5zdGFuY2UoaW5pX3ZhbHVlLCAoc3RyLCB1bmljb2RlKSk6Ci0gICAgICAgICAgICBy
ZXR1cm4gdHVwbGUoaW5pX3ZhbHVlLnNwbGl0KCI6IiwgMSkpCisgICAgICAgICAgICByZXR1cm4g
dHVwbGUocHJlZl9waWVjZS5zdHJpcCgpIGZvciBwcmVmX3BpZWNlIGluIGluaV92YWx1ZS5zcGxp
dCgnOicsIDEpKQogICAgICAgICBlbHNlOgorICAgICAgICAgICAgIyB0aGlzIHNob3VsZCBiZSB0
aGluZ3MgbGlrZSBAUmVzZXQsIHdoaWNoIGFyZSBhcHBhcmVudGx5IHR5cGUgJ29iamVjdCcKICAg
ICAgICAgICAgIHJldHVybiAoaW5pX3ZhbHVlLCBOb25lKQogCiAgICAgdHJ5OgpAQCAtNzAsOSAr
ODMsOSBAQCBkZWYgcHJlZnMobm9kZSk6CiAgICAgcmV0dXJuIHJ2CiAKIAotZGVmIGxzYW5fYWxs
b3dlZChub2RlKToKK2RlZiBzZXRfcHJvcChuYW1lLCBub2RlKToKICAgICB0cnk6Ci0gICAgICAg
IG5vZGVfaXRlbXMgPSBub2RlLmdldCgibHNhbi1hbGxvd2VkIikKKyAgICAgICAgbm9kZV9pdGVt
cyA9IG5vZGUuZ2V0KG5hbWUpCiAgICAgICAgIGlmIGlzaW5zdGFuY2Uobm9kZV9pdGVtcywgKHN0
ciwgdW5pY29kZSkpOgogICAgICAgICAgICAgcnYgPSB7bm9kZV9pdGVtc30KICAgICAgICAgZWxz
ZToKQEAgLTgyLDggKzk1LDEyMSBAQCBkZWYgbHNhbl9hbGxvd2VkKG5vZGUpOgogICAgIHJldHVy
biBydgogCiAKK2RlZiBsZWFrX3RocmVzaG9sZChub2RlKToKKyAgICBydiA9IHt9CisgICAgdHJ5
OgorICAgICAgICBub2RlX2l0ZW1zID0gbm9kZS5nZXQoImxlYWstdGhyZXNob2xkIikKKyAgICAg
ICAgaWYgaXNpbnN0YW5jZShub2RlX2l0ZW1zLCAoc3RyLCB1bmljb2RlKSk6CisgICAgICAgICAg
ICBub2RlX2l0ZW1zID0gW25vZGVfaXRlbXNdCisgICAgICAgIGZvciBpdGVtIGluIG5vZGVfaXRl
bXM6CisgICAgICAgICAgICBwcm9jZXNzLCB2YWx1ZSA9IGl0ZW0ucnNwbGl0KCI6IiwgMSkKKyAg
ICAgICAgICAgIHJ2W3Byb2Nlc3Muc3RyaXAoKV0gPSBpbnQodmFsdWUuc3RyaXAoKSkKKyAgICBl
eGNlcHQgS2V5RXJyb3I6CisgICAgICAgIHBhc3MKKyAgICByZXR1cm4gcnYKKworCitkZWYgZnV6
enlfcHJvcChub2RlKToKKyAgICAiIiJGdXp6eSByZWZ0ZXN0IG1hdGNoCisKKyAgICBUaGlzIGNh
biBlaXRoZXIgYmUgYSBsaXN0IG9mIHN0cmluZ3Mgb3IgYSBzaW5nbGUgc3RyaW5nLiBXaGVuIGEg
bGlzdCBpcworICAgIHN1cHBsaWVkLCB0aGUgZm9ybWF0IG9mIGVhY2ggaXRlbSBtYXRjaGVzIHRo
ZSBkZXNjcmlwdGlvbiBiZWxvdy4KKworICAgIFRoZSBnZW5lcmFsIGZvcm1hdCBpcworICAgIGZ1
enp5ID0gW2tleSAiOiJdIDxwcm9wPiAiOyIgPHByb3A+CisgICAga2V5ID0gPHRlc3QgbmFtZT4g
W3JlZnR5cGUgPHJlZmVyZW5jZSBuYW1lPl0KKyAgICByZWZ0eXBlID0gIj09IiB8ICIhPSIKKyAg
ICBwcm9wID0gW3Byb3BOYW1lICI9IiBdIHJhbmdlCisgICAgcHJvcE5hbWUgPSAibWF4RGlmZmVy
ZW5jZXMiIHwgInRvdGFsUGl4ZWxzIgorICAgIHJhbmdlID0gPGRpZ2l0cz4gWyItIiA8ZGlnaXRz
Pl0KKworICAgIFNvIGZvciBleGFtcGxlOgorICAgICAgbWF4RGlmZmVyZW5jZXM9MTA7dG90YWxQ
aXhlbHM9MTAtMjAKKworICAgICAgc3BlY2lmaWVzIHRoYXQgZm9yIGFueSB0ZXN0L3JlZiBwYWly
IGZvciB3aGljaCBubyBvdGhlciBydWxlIGlzIHN1cHBsaWVkLAorICAgICAgdGhlcmUgbXVzdCBi
ZSBhIG1heGltdW0gcGl4ZWwgZGlmZmVyZW5jZSBvZiBleGFjdGx5IDEwLCBhbmQgYmV0d2VuIDEw
IGFuZAorICAgICAgMjAgdG90YWwgcGl4ZWxzIGRpZmZlcmVudC4KKworICAgICAgdGVzdC5odG1s
PT1yZWYuaHRtOjEwOzIwCisKKyAgICAgIHNwZWNpZmllcyB0aGF0IGZvciBhIGVxdWFsaXR5IGNv
bXBhcmlzb24gYmV0d2VlbiB0ZXN0Lmh0bWwgYW5kIHJlZi5odG0sCisgICAgICByZXNvbHZlZCBy
ZWxhdGl2ZSB0byB0aGUgdGVzdCBwYXRoLCB0aGVyZSBjYW4gYmUgYSBtYXhpbXVtIGRpZmZlcmVu
Y2UKKyAgICAgIG9mIDEwIGluIHRoZSBwaXhlbCB2YWx1ZSBmb3IgYW55IGNoYW5uZWwgYW5kIDIw
IHBpeGVscyB0b3RhbCBkaWZmZXJlbmNlLgorCisgICAgICByZWYuaHRtbDoxMDsyMAorCisgICAg
ICBpcyBqdXN0IGxpa2UgdGhlIGFib3ZlIGJ1dCBhcHBsaWVzIHRvIGFueSBjb21wYXJpc29uIGlu
dm9sdmluZyByZWYuaHRtbAorICAgICAgb24gdGhlIHJpZ2h0IGhhbmQgc2lkZS4KKworICAgIFRo
ZSByZXR1cm4gZm9ybWF0IGlzIFsoa2V5LCAobWF4RGlmZmVyZW5jZVJhbmdlLCB0b3RhbFBpeGVs
c1JhbmdlKSldLCB3aGVyZQorICAgIHRoZSBrZXkgaXMgZWl0aGVyIE5vbmUgd2hlcmUgbm8gc3Bl
Y2lmaWMgcmVmZXJlbmNlIGlzIHNwZWNpZmllZCwgdGhlIHJlZmVyZW5jZQorICAgIG5hbWUgd2hl
cmUgdGhlcmUgaXMgb25seSBvbmUgY29tcG9uZW50IG9yIGEgdHVwbGUgKHRlc3QsIHJlZiwgcmVm
dHlwZSkgd2hlbiB0aGUKKyAgICBleGFjdCBjb21wYXJpc29uIGlzIHNwZWNpZmllZC4gbWF4RGlm
ZmVyZW5jZVJhbmdlIGFuZCB0b3RhbFBpeGVsc1JhbmdlIGFyZSB0dXBsZXMKKyAgICBvZiBpbnRl
Z2VycyBpbmRpY2F0aW5nIHRoZSBpbmNsdXNpdmUgcmFuZ2Ugb2YgYWxsb3dlZCB2YWx1ZXMuCisi
IiIKKyAgICBydiA9IFtdCisgICAgYXJncyA9IFsibWF4RGlmZmVyZW5jZSIsICJ0b3RhbFBpeGVs
cyJdCisgICAgdHJ5OgorICAgICAgICB2YWx1ZSA9IG5vZGUuZ2V0KCJmdXp6eSIpCisgICAgZXhj
ZXB0IEtleUVycm9yOgorICAgICAgICByZXR1cm4gcnYKKyAgICBpZiBub3QgaXNpbnN0YW5jZSh2
YWx1ZSwgbGlzdCk6CisgICAgICAgIHZhbHVlID0gW3ZhbHVlXQorICAgIGZvciBpdGVtIGluIHZh
bHVlOgorICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShpdGVtLCAoc3RyLCB1bmljb2RlKSk6Cisg
ICAgICAgICAgICBydi5hcHBlbmQoaXRlbSkKKyAgICAgICAgICAgIGNvbnRpbnVlCisgICAgICAg
IHBhcnRzID0gaXRlbS5yc3BsaXQoIjoiLCAxKQorICAgICAgICBpZiBsZW4ocGFydHMpID09IDE6
CisgICAgICAgICAgICBrZXkgPSBOb25lCisgICAgICAgICAgICBmdXp6eV92YWx1ZXMgPSBwYXJ0
c1swXQorICAgICAgICBlbHNlOgorICAgICAgICAgICAga2V5LCBmdXp6eV92YWx1ZXMgPSBwYXJ0
cworICAgICAgICAgICAgZm9yIHJlZnR5cGUgaW4gWyI9PSIsICIhPSJdOgorICAgICAgICAgICAg
ICAgIGlmIHJlZnR5cGUgaW4ga2V5OgorICAgICAgICAgICAgICAgICAgICBrZXkgPSBrZXkuc3Bs
aXQocmVmdHlwZSkKKyAgICAgICAgICAgICAgICAgICAga2V5LmFwcGVuZChyZWZ0eXBlKQorICAg
ICAgICAgICAgICAgICAgICBrZXkgPSB0dXBsZShrZXkpCisgICAgICAgIHJhbmdlcyA9IGZ1enp5
X3ZhbHVlcy5zcGxpdCgiOyIpCisgICAgICAgIGlmIGxlbihyYW5nZXMpICE9IDI6CisgICAgICAg
ICAgICByYWlzZSBWYWx1ZUVycm9yKCJNYWxmb3JtZWQgZnV6enkgdmFsdWUgJXMiICUgaXRlbSkK
KyAgICAgICAgYXJnX3ZhbHVlcyA9IHtOb25lOiBkZXF1ZSgpfQorICAgICAgICBmb3IgcmFuZ2Vf
c3RyX3ZhbHVlIGluIHJhbmdlczoKKyAgICAgICAgICAgIGlmICI9IiBpbiByYW5nZV9zdHJfdmFs
dWU6CisgICAgICAgICAgICAgICAgbmFtZSwgcmFuZ2Vfc3RyX3ZhbHVlID0gW3BhcnQuc3RyaXAo
KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3IgcGFydCBpbiBy
YW5nZV9zdHJfdmFsdWUuc3BsaXQoIj0iLCAxKV0KKyAgICAgICAgICAgICAgICBpZiBuYW1lIG5v
dCBpbiBhcmdzOgorICAgICAgICAgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCIlcyBpcyBu
b3QgYSB2YWxpZCBmdXp6eSBwcm9wZXJ0eSIgJSBuYW1lKQorICAgICAgICAgICAgICAgIGlmIGFy
Z192YWx1ZXMuZ2V0KG5hbWUpOgorICAgICAgICAgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9y
KCJHb3QgbXVsdGlwbGUgdmFsdWVzIGZvciBhcmd1bWVudCAlcyIgJSBuYW1lKQorICAgICAgICAg
ICAgZWxzZToKKyAgICAgICAgICAgICAgICBuYW1lID0gTm9uZQorICAgICAgICAgICAgaWYgIi0i
IGluIHJhbmdlX3N0cl92YWx1ZToKKyAgICAgICAgICAgICAgICByYW5nZV9taW4sIHJhbmdlX21h
eCA9IHJhbmdlX3N0cl92YWx1ZS5zcGxpdCgiLSIpCisgICAgICAgICAgICBlbHNlOgorICAgICAg
ICAgICAgICAgIHJhbmdlX21pbiA9IHJhbmdlX3N0cl92YWx1ZQorICAgICAgICAgICAgICAgIHJh
bmdlX21heCA9IHJhbmdlX3N0cl92YWx1ZQorICAgICAgICAgICAgdHJ5OgorICAgICAgICAgICAg
ICAgIHJhbmdlX3ZhbHVlID0gdHVwbGUoaW50KGl0ZW0uc3RyaXAoKSkgZm9yIGl0ZW0gaW4gKHJh
bmdlX21pbiwgcmFuZ2VfbWF4KSkKKyAgICAgICAgICAgIGV4Y2VwdCBWYWx1ZUVycm9yOgorICAg
ICAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoIkZ1enp5IHZhbHVlICVzIG11c3QgYmUgYSBy
YW5nZSBvZiBpbnRlZ2VycyIgJSByYW5nZV9zdHJfdmFsdWUpCisgICAgICAgICAgICBpZiBuYW1l
IGlzIE5vbmU6CisgICAgICAgICAgICAgICAgYXJnX3ZhbHVlc1tOb25lXS5hcHBlbmQocmFuZ2Vf
dmFsdWUpCisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgIGFyZ192YWx1ZXNbbmFt
ZV0gPSByYW5nZV92YWx1ZQorICAgICAgICByYW5nZV92YWx1ZXMgPSBbXQorICAgICAgICBmb3Ig
YXJnX25hbWUgaW4gYXJnczoKKyAgICAgICAgICAgIGlmIGFyZ192YWx1ZXMuZ2V0KGFyZ19uYW1l
KToKKyAgICAgICAgICAgICAgICB2YWx1ZSA9IGFyZ192YWx1ZXMucG9wKGFyZ19uYW1lKQorICAg
ICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICB2YWx1ZSA9IGFyZ192YWx1ZXNbTm9uZV0u
cG9wbGVmdCgpCisgICAgICAgICAgICByYW5nZV92YWx1ZXMuYXBwZW5kKHZhbHVlKQorICAgICAg
ICBydi5hcHBlbmQoKGtleSwgdHVwbGUocmFuZ2VfdmFsdWVzKSkpCisgICAgcmV0dXJuIHJ2CisK
KwogY2xhc3MgRXhwZWN0ZWRNYW5pZmVzdChNYW5pZmVzdEl0ZW0pOgotICAgIGRlZiBfX2luaXRf
XyhzZWxmLCBuYW1lLCB0ZXN0X3BhdGgsIHVybF9iYXNlKToKKyAgICBkZWYgX19pbml0X18oc2Vs
Ziwgbm9kZSwgdGVzdF9wYXRoLCB1cmxfYmFzZSk6CiAgICAgICAgICIiIk9iamVjdCByZXByZXNl
bnRpbmcgYWxsIHRoZSB0ZXN0cyBpbiBhIHBhcnRpY3VsYXIgbWFuaWZlc3QKIAogICAgICAgICA6
cGFyYW0gbmFtZTogTmFtZSBvZiB0aGUgQVNUIE5vZGUgYXNzb2NpYXRlZCB3aXRoIHRoaXMgb2Jq
ZWN0LgpAQCAtOTIsMTMgKzIxOCwxNCBAQCBjbGFzcyBFeHBlY3RlZE1hbmlmZXN0KE1hbmlmZXN0
SXRlbSk6CiAgICAgICAgIDpwYXJhbSB0ZXN0X3BhdGg6IFBhdGggb2YgdGhlIHRlc3QgZmlsZSBh
c3NvY2lhdGVkIHdpdGggdGhpcyBtYW5pZmVzdC4KICAgICAgICAgOnBhcmFtIHVybF9iYXNlOiBC
YXNlIHVybCBmb3Igc2VydmluZyB0aGUgdGVzdHMgaW4gdGhpcyBtYW5pZmVzdAogICAgICAgICAi
IiIKKyAgICAgICAgbmFtZSA9IG5vZGUuZGF0YQogICAgICAgICBpZiBuYW1lIGlzIG5vdCBOb25l
OgogICAgICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigiRXhwZWN0ZWRNYW5pZmVzdCBzaG91bGQg
cmVwcmVzZW50IHRoZSByb290IG5vZGUiKQogICAgICAgICBpZiB0ZXN0X3BhdGggaXMgTm9uZToK
ICAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoIkV4cGVjdGVkTWFuaWZlc3QgcmVxdWlyZXMg
YSB0ZXN0IHBhdGgiKQogICAgICAgICBpZiB1cmxfYmFzZSBpcyBOb25lOgogICAgICAgICAgICAg
cmFpc2UgVmFsdWVFcnJvcigiRXhwZWN0ZWRNYW5pZmVzdCByZXF1aXJlcyBhIGJhc2UgdXJsIikK
LSAgICAgICAgTWFuaWZlc3RJdGVtLl9faW5pdF9fKHNlbGYsIG5hbWUpCisgICAgICAgIE1hbmlm
ZXN0SXRlbS5fX2luaXRfXyhzZWxmLCBub2RlKQogICAgICAgICBzZWxmLmNoaWxkX21hcCA9IHt9
CiAgICAgICAgIHNlbGYudGVzdF9wYXRoID0gdGVzdF9wYXRoCiAgICAgICAgIHNlbGYudXJsX2Jh
c2UgPSB1cmxfYmFzZQpAQCAtMTIxLDggKzI0OCw4IEBAIGNsYXNzIEV4cGVjdGVkTWFuaWZlc3Qo
TWFuaWZlc3RJdGVtKToKIAogICAgIEBwcm9wZXJ0eQogICAgIGRlZiB1cmwoc2VsZik6Ci0gICAg
ICAgIHJldHVybiB1cmxwYXJzZS51cmxqb2luKHNlbGYudXJsX2Jhc2UsCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICIvIi5qb2luKHNlbGYudGVzdF9wYXRoLnNwbGl0KG9zLnBhdGgu
c2VwKSkpCisgICAgICAgIHJldHVybiB1cmxqb2luKHNlbGYudXJsX2Jhc2UsCisgICAgICAgICAg
ICAgICAgICAgICAgICIvIi5qb2luKHNlbGYudGVzdF9wYXRoLnNwbGl0KG9zLnBhdGguc2VwKSkp
CiAKICAgICBAcHJvcGVydHkKICAgICBkZWYgZGlzYWJsZWQoc2VsZik6CkBAIC0xNTQsNyArMjgx
LDMxIEBAIGNsYXNzIEV4cGVjdGVkTWFuaWZlc3QoTWFuaWZlc3RJdGVtKToKIAogICAgIEBwcm9w
ZXJ0eQogICAgIGRlZiBsc2FuX2FsbG93ZWQoc2VsZik6Ci0gICAgICAgIHJldHVybiBsc2FuX2Fs
bG93ZWQoc2VsZikKKyAgICAgICAgcmV0dXJuIHNldF9wcm9wKCJsc2FuLWFsbG93ZWQiLCBzZWxm
KQorCisgICAgQHByb3BlcnR5CisgICAgZGVmIGxlYWtfYWxsb3dlZChzZWxmKToKKyAgICAgICAg
cmV0dXJuIHNldF9wcm9wKCJsZWFrLWFsbG93ZWQiLCBzZWxmKQorCisgICAgQHByb3BlcnR5Cisg
ICAgZGVmIGxlYWtfdGhyZXNob2xkKHNlbGYpOgorICAgICAgICByZXR1cm4gbGVha190aHJlc2hv
bGQoc2VsZikKKworICAgIEBwcm9wZXJ0eQorICAgIGRlZiBsc2FuX21heF9zdGFja19kZXB0aChz
ZWxmKToKKyAgICAgICAgcmV0dXJuIGludF9wcm9wKCJsc2FuLW1heC1zdGFjay1kZXB0aCIsIHNl
bGYpCisKKyAgICBAcHJvcGVydHkKKyAgICBkZWYgZnV6enkoc2VsZik6CisgICAgICAgIHJldHVy
biBmdXp6eV9wcm9wKHNlbGYpCisKKyAgICBAcHJvcGVydHkKKyAgICBkZWYgZXhwZWN0ZWQoc2Vs
Zik6CisgICAgICAgIHJldHVybiBsaXN0X3Byb3AoImV4cGVjdGVkIiwgc2VsZilbMF0KKworICAg
IEBwcm9wZXJ0eQorICAgIGRlZiBrbm93bl9pbnRlcm1pdHRlbnQoc2VsZik6CisgICAgICAgIHJl
dHVybiBsaXN0X3Byb3AoImV4cGVjdGVkIiwgc2VsZilbMTpdCiAKIAogY2xhc3MgRGlyZWN0b3J5
TWFuaWZlc3QoTWFuaWZlc3RJdGVtKToKQEAgLTE4OCwxNiArMzM5LDMyIEBAIGNsYXNzIERpcmVj
dG9yeU1hbmlmZXN0KE1hbmlmZXN0SXRlbSk6CiAKICAgICBAcHJvcGVydHkKICAgICBkZWYgbHNh
bl9hbGxvd2VkKHNlbGYpOgotICAgICAgICByZXR1cm4gbHNhbl9hbGxvd2VkKHNlbGYpCisgICAg
ICAgIHJldHVybiBzZXRfcHJvcCgibHNhbi1hbGxvd2VkIiwgc2VsZikKKworICAgIEBwcm9wZXJ0
eQorICAgIGRlZiBsZWFrX2FsbG93ZWQoc2VsZik6CisgICAgICAgIHJldHVybiBzZXRfcHJvcCgi
bGVhay1hbGxvd2VkIiwgc2VsZikKKworICAgIEBwcm9wZXJ0eQorICAgIGRlZiBsZWFrX3RocmVz
aG9sZChzZWxmKToKKyAgICAgICAgcmV0dXJuIGxlYWtfdGhyZXNob2xkKHNlbGYpCisKKyAgICBA
cHJvcGVydHkKKyAgICBkZWYgbHNhbl9tYXhfc3RhY2tfZGVwdGgoc2VsZik6CisgICAgICAgIHJl
dHVybiBpbnRfcHJvcCgibHNhbi1tYXgtc3RhY2stZGVwdGgiLCBzZWxmKQorCisgICAgQHByb3Bl
cnR5CisgICAgZGVmIGZ1enp5KHNlbGYpOgorICAgICAgICByZXR1cm4gZnV6enlfcHJvcChzZWxm
KQogCiAKIGNsYXNzIFRlc3ROb2RlKE1hbmlmZXN0SXRlbSk6Ci0gICAgZGVmIF9faW5pdF9fKHNl
bGYsIG5hbWUpOgorICAgIGRlZiBfX2luaXRfXyhzZWxmLCBub2RlLCAqKmt3YXJncyk6CiAgICAg
ICAgICIiIlRyZWUgbm9kZSBhc3NvY2lhdGVkIHdpdGggYSBwYXJ0aWN1bGFyIHRlc3QgaW4gYSBt
YW5pZmVzdAogCiAgICAgICAgIDpwYXJhbSBuYW1lOiBuYW1lIG9mIHRoZSB0ZXN0IiIiCi0gICAg
ICAgIGFzc2VydCBuYW1lIGlzIG5vdCBOb25lCi0gICAgICAgIE1hbmlmZXN0SXRlbS5fX2luaXRf
XyhzZWxmLCBuYW1lKQorICAgICAgICBhc3NlcnQgbm9kZS5kYXRhIGlzIG5vdCBOb25lCisgICAg
ICAgIE1hbmlmZXN0SXRlbS5fX2luaXRfXyhzZWxmLCBub2RlLCAqKmt3YXJncykKICAgICAgICAg
c2VsZi51cGRhdGVkX2V4cGVjdGVkID0gW10KICAgICAgICAgc2VsZi5uZXdfZXhwZWN0ZWQgPSBb
XQogICAgICAgICBzZWxmLnN1YnRlc3RzID0ge30KQEAgLTIwNiw3ICszNzMsNyBAQCBjbGFzcyBU
ZXN0Tm9kZShNYW5pZmVzdEl0ZW0pOgogCiAgICAgQHByb3BlcnR5CiAgICAgZGVmIGlzX2VtcHR5
KHNlbGYpOgotICAgICAgICByZXF1aXJlZF9rZXlzID0gc2V0KFsidHlwZSJdKQorICAgICAgICBy
ZXF1aXJlZF9rZXlzID0geyJ0eXBlIn0KICAgICAgICAgaWYgc2V0KHNlbGYuX2RhdGEua2V5cygp
KSAhPSByZXF1aXJlZF9rZXlzOgogICAgICAgICAgICAgcmV0dXJuIEZhbHNlCiAgICAgICAgIHJl
dHVybiBhbGwoY2hpbGQuaXNfZW1wdHkgZm9yIGNoaWxkIGluIHNlbGYuY2hpbGRyZW4pCkBAIC0y
MTcsNyArMzg0LDcgQEAgY2xhc3MgVGVzdE5vZGUoTWFuaWZlc3RJdGVtKToKIAogICAgIEBwcm9w
ZXJ0eQogICAgIGRlZiBpZChzZWxmKToKLSAgICAgICAgcmV0dXJuIHVybHBhcnNlLnVybGpvaW4o
c2VsZi5wYXJlbnQudXJsLCBzZWxmLm5hbWUpCisgICAgICAgIHJldHVybiB1cmxqb2luKHNlbGYu
cGFyZW50LnVybCwgc2VsZi5uYW1lKQogCiAgICAgQHByb3BlcnR5CiAgICAgZGVmIGRpc2FibGVk
KHNlbGYpOgpAQCAtMjQ5LDcgKzQxNiwzMSBAQCBjbGFzcyBUZXN0Tm9kZShNYW5pZmVzdEl0ZW0p
OgogCiAgICAgQHByb3BlcnR5CiAgICAgZGVmIGxzYW5fYWxsb3dlZChzZWxmKToKLSAgICAgICAg
cmV0dXJuIGxzYW5fYWxsb3dlZChzZWxmKQorICAgICAgICByZXR1cm4gc2V0X3Byb3AoImxzYW4t
YWxsb3dlZCIsIHNlbGYpCisKKyAgICBAcHJvcGVydHkKKyAgICBkZWYgbGVha19hbGxvd2VkKHNl
bGYpOgorICAgICAgICByZXR1cm4gc2V0X3Byb3AoImxlYWstYWxsb3dlZCIsIHNlbGYpCisKKyAg
ICBAcHJvcGVydHkKKyAgICBkZWYgbGVha190aHJlc2hvbGQoc2VsZik6CisgICAgICAgIHJldHVy
biBsZWFrX3RocmVzaG9sZChzZWxmKQorCisgICAgQHByb3BlcnR5CisgICAgZGVmIGxzYW5fbWF4
X3N0YWNrX2RlcHRoKHNlbGYpOgorICAgICAgICByZXR1cm4gaW50X3Byb3AoImxzYW4tbWF4LXN0
YWNrLWRlcHRoIiwgc2VsZikKKworICAgIEBwcm9wZXJ0eQorICAgIGRlZiBmdXp6eShzZWxmKToK
KyAgICAgICAgcmV0dXJuIGZ1enp5X3Byb3Aoc2VsZikKKworICAgIEBwcm9wZXJ0eQorICAgIGRl
ZiBleHBlY3RlZChzZWxmKToKKyAgICAgICAgcmV0dXJuIGxpc3RfcHJvcCgiZXhwZWN0ZWQiLCBz
ZWxmKVswXQorCisgICAgQHByb3BlcnR5CisgICAgZGVmIGtub3duX2ludGVybWl0dGVudChzZWxm
KToKKyAgICAgICAgcmV0dXJuIGxpc3RfcHJvcCgiZXhwZWN0ZWQiLCBzZWxmKVsxOl0KIAogICAg
IGRlZiBhcHBlbmQoc2VsZiwgbm9kZSk6CiAgICAgICAgICIiIkFkZCBhIHN1YnRlc3QgdG8gdGhl
IGN1cnJlbnQgdGVzdApAQCAtMjY4LDEyICs0NTksNiBAQCBjbGFzcyBUZXN0Tm9kZShNYW5pZmVz
dEl0ZW0pOgogCiAKIGNsYXNzIFN1YnRlc3ROb2RlKFRlc3ROb2RlKToKLSAgICBkZWYgX19pbml0
X18oc2VsZiwgbmFtZSk6Ci0gICAgICAgICIiIlRyZWUgbm9kZSBhc3NvY2lhdGVkIHdpdGggYSBw
YXJ0aWN1bGFyIHN1YnRlc3QgaW4gYSBtYW5pZmVzdAotCi0gICAgICAgIDpwYXJhbSBuYW1lOiBu
YW1lIG9mIHRoZSBzdWJ0ZXN0IiIiCi0gICAgICAgIFRlc3ROb2RlLl9faW5pdF9fKHNlbGYsIG5h
bWUpCi0KICAgICBAcHJvcGVydHkKICAgICBkZWYgaXNfZW1wdHkoc2VsZik6CiAgICAgICAgIGlm
IHNlbGYuX2RhdGE6CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvbWFuaWZlc3RpbmNsdWRlLnB5
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRy
dW5uZXIvd3B0cnVubmVyL21hbmlmZXN0aW5jbHVkZS5weQppbmRleCBhNjhmZGViMzliYzZmNjNk
Mzg3NTQ0OTUyYTFlZTI4ZWE2YTJmMThkLi5kMzAyODMxYTU3YWJiYWFkZDc1ZmU0OWUwOTQ0ODJk
YzE0MjIzZWEzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvbWFuaWZlc3RpbmNsdWRlLnB5Cisr
KyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0
cnVubmVyL3dwdHJ1bm5lci9tYW5pZmVzdGluY2x1ZGUucHkKQEAgLTYsMTEgKzYsMTEgQEAgYmUg
aW5jbHVkZWQgb3IgZXhjbHVkZWQuCiAiIiIKIGltcG9ydCBnbG9iCiBpbXBvcnQgb3MKLWltcG9y
dCB1cmxwYXJzZQorZnJvbSBzaXgubW92ZXMudXJsbGliLnBhcnNlIGltcG9ydCB1cmxwYXJzZSwg
dXJsc3BsaXQKIAotZnJvbSB3cHRtYW5pZmVzdC5ub2RlIGltcG9ydCBEYXRhTm9kZQotZnJvbSB3
cHRtYW5pZmVzdC5iYWNrZW5kcyBpbXBvcnQgY29uZGl0aW9uYWwKLWZyb20gd3B0bWFuaWZlc3Qu
YmFja2VuZHMuY29uZGl0aW9uYWwgaW1wb3J0IE1hbmlmZXN0SXRlbQorZnJvbSAud3B0bWFuaWZl
c3Qubm9kZSBpbXBvcnQgRGF0YU5vZGUKK2Zyb20gLndwdG1hbmlmZXN0LmJhY2tlbmRzIGltcG9y
dCBjb25kaXRpb25hbAorZnJvbSAud3B0bWFuaWZlc3QuYmFja2VuZHMuY29uZGl0aW9uYWwgaW1w
b3J0IE1hbmlmZXN0SXRlbQogCiAKIGNsYXNzIEluY2x1ZGVNYW5pZmVzdChNYW5pZmVzdEl0ZW0p
OgpAQCAtNjgsNyArNjgsNyBAQCBjbGFzcyBJbmNsdWRlTWFuaWZlc3QoTWFuaWZlc3RJdGVtKToK
IAogICAgIGRlZiBfZ2V0X2NvbXBvbmVudHMoc2VsZiwgdXJsKToKICAgICAgICAgcnYgPSBbXQot
ICAgICAgICB1cmxfcGFydHMgPSB1cmxwYXJzZS51cmxzcGxpdCh1cmwpCisgICAgICAgIHVybF9w
YXJ0cyA9IHVybHNwbGl0KHVybCkKICAgICAgICAgdmFyaWFudCA9ICIiCiAgICAgICAgIGlmIHVy
bF9wYXJ0cy5xdWVyeToKICAgICAgICAgICAgIHZhcmlhbnQgKz0gIj8iICsgdXJsX3BhcnRzLnF1
ZXJ5CkBAIC0xMDMsNyArMTAzLDcgQEAgY2xhc3MgSW5jbHVkZU1hbmlmZXN0KE1hbmlmZXN0SXRl
bSk6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWUKICAgICAgICAgICAgICAg
ICAgICAgICAgIHVybCA9IHRlc3QudXJsCiAgICAgICAgICAgICAgICAgICAgICAgICBpZiBxdWVy
eSBvciBmcmFnbWVudDoKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXJzZWQgPSB1cmxw
YXJzZS51cmxwYXJzZSh1cmwpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFyc2VkID0g
dXJscGFyc2UodXJsKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICgocXVlcnkgYW5k
IHF1ZXJ5ICE9IHBhcnNlZC5xdWVyeSkgb3IKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgKGZyYWdtZW50IGFuZCBmcmFnbWVudCAhPSBwYXJzZWQuZnJhZ21lbnQpKToKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5l
ci9tYW5pZmVzdHVwZGF0ZS5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9tYW5pZmVzdHVwZGF0ZS5weQppbmRl
eCAxZjhiYTc3ZThmOWUwZGUzMmZhNDk3ZDU2ZWNjOTk5ZWE3MjJmNDUyLi5hZjlhZjE4ZDkwNzE1
ZDQzYmJjZDJhZTQ3Y2U3NjI3NWJiMGUxNTc3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvbWFu
aWZlc3R1cGRhdGUucHkKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL21hbmlmZXN0dXBkYXRlLnB5CkBAIC0x
LDE1ICsxLDIwIEBACi1pbXBvcnQgaXRlcnRvb2xzCitmcm9tIF9fZnV0dXJlX18gaW1wb3J0IHBy
aW50X2Z1bmN0aW9uCiBpbXBvcnQgb3MKLWltcG9ydCB1cmxwYXJzZQotZnJvbSBjb2xsZWN0aW9u
cyBpbXBvcnQgbmFtZWR0dXBsZSwgZGVmYXVsdGRpY3QKLQotZnJvbSB3cHRtYW5pZmVzdC5ub2Rl
IGltcG9ydCAoRGF0YU5vZGUsIENvbmRpdGlvbmFsTm9kZSwgQmluYXJ5RXhwcmVzc2lvbk5vZGUs
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBCaW5hcnlPcGVyYXRvck5vZGUsIFZhcmlh
YmxlTm9kZSwgU3RyaW5nTm9kZSwgTnVtYmVyTm9kZSwKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIFVuYXJ5RXhwcmVzc2lvbk5vZGUsIFVuYXJ5T3BlcmF0b3JOb2RlLCBLZXlWYWx1ZU5v
ZGUpCi1mcm9tIHdwdG1hbmlmZXN0LmJhY2tlbmRzIGltcG9ydCBjb25kaXRpb25hbAotZnJvbSB3
cHRtYW5pZmVzdC5iYWNrZW5kcy5jb25kaXRpb25hbCBpbXBvcnQgTWFuaWZlc3RJdGVtCi0KLWlt
cG9ydCBleHBlY3RlZAorZnJvbSBzaXgubW92ZXMudXJsbGliLnBhcnNlIGltcG9ydCB1cmxqb2lu
LCB1cmxzcGxpdAorZnJvbSBjb2xsZWN0aW9ucyBpbXBvcnQgbmFtZWR0dXBsZSwgZGVmYXVsdGRp
Y3QsIGRlcXVlCitmcm9tIG1hdGggaW1wb3J0IGNlaWwKK2Zyb20gc2l4IGltcG9ydCBpdGVya2V5
cywgaXRlcnZhbHVlcywgaXRlcml0ZW1zCisKK2Zyb20gLndwdG1hbmlmZXN0IGltcG9ydCBzZXJp
YWxpemUKK2Zyb20gLndwdG1hbmlmZXN0Lm5vZGUgaW1wb3J0IChEYXRhTm9kZSwgQ29uZGl0aW9u
YWxOb2RlLCBCaW5hcnlFeHByZXNzaW9uTm9kZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIEJpbmFyeU9wZXJhdG9yTm9kZSwgTnVtYmVyTm9kZSwgU3RyaW5nTm9kZSwgVmFyaWFibGVO
b2RlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVmFsdWVOb2RlLCBVbmFyeUV4cHJl
c3Npb25Ob2RlLCBVbmFyeU9wZXJhdG9yTm9kZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIExpc3ROb2RlKQorZnJvbSAud3B0bWFuaWZlc3QuYmFja2VuZHMgaW1wb3J0IGNvbmRpdGlv
bmFsCitmcm9tIC53cHRtYW5pZmVzdC5iYWNrZW5kcy5jb25kaXRpb25hbCBpbXBvcnQgTWFuaWZl
c3RJdGVtCisKK2Zyb20gLiBpbXBvcnQgZXhwZWN0ZWQKK2Zyb20gLiBpbXBvcnQgZXhwZWN0ZWR0
cmVlCiAKICIiIk1hbmlmZXN0IHN0cnVjdHVyZSB1c2VkIHRvIHVwZGF0ZSB0aGUgZXhwZWN0ZWQg
cmVzdWx0cyBvZiBhIHRlc3QKIApAQCAtMjUsNyArMzAsNyBAQCBhdCBydW50aW1lLgogV2hlbiBh
IHJlc3VsdCBmb3IgYSB0ZXN0IGlzIHRvIGJlIHVwZGF0ZWQgc2V0X3Jlc3VsdCBvbiB0aGUKIFtT
dWJdVGVzdE5vZGUgaXMgY2FsbGVkIHRvIHN0b3JlIHRoZSBuZXcgcmVzdWx0LCBhbG9uZ3NpZGUg
dGhlCiBleGlzdGluZyBjb25kaXRpb25hbCB0aGF0IHJlc3VsdCdzIHJ1biBpbmZvIG1hdGNoZWQs
IGlmIGFueS4gT25jZSBhbGwKLW5ldyByZXN1bHRzIGFyZSBrbm93biwgY29hbGVzY2VfZXhwZWN0
ZWQgaXMgY2FsbGVkIHRvIGNvbXB1dGUgdGhlIG5ldworbmV3IHJlc3VsdHMgYXJlIGtub3duLCB1
cGRhdGUgaXMgY2FsbGVkIHRvIGNvbXB1dGUgdGhlIG5ldwogc2V0IG9mIHJlc3VsdHMgYW5kIGNv
bmRpdGlvbmFscy4gVGhlIEFTVCBvZiB0aGUgdW5kZXJseWluZyBwYXJzZWQgbWFuaWZlc3QKIGlz
IHVwZGF0ZWQgd2l0aCB0aGUgY2hhbmdlcywgYW5kIHRoZSByZXN1bHQgaXMgc2VyaWFsaXNlZCB0
byBhIGZpbGUuCiAiIiIKQEAgLTU1LDE5ICs2MCw1MCBAQCBkZWYgZGF0YV9jbHNfZ2V0dGVyKG91
dHB1dF9ub2RlLCB2aXNpdGVkX25vZGUpOgogICAgICAgICByYWlzZSBWYWx1ZUVycm9yCiAKIAor
Y2xhc3MgVXBkYXRlUHJvcGVydGllcyhvYmplY3QpOgorICAgIGRlZiBfX2luaXRfXyhzZWxmLCBt
YW5pZmVzdCwgKiprd2FyZ3MpOgorICAgICAgICBzZWxmLl9tYW5pZmVzdCA9IG1hbmlmZXN0Cisg
ICAgICAgIHNlbGYuX2NsYXNzZXMgPSBrd2FyZ3MKKworICAgIGRlZiBfX2dldGF0dHJfXyhzZWxm
LCBuYW1lKToKKyAgICAgICAgaWYgbmFtZSBpbiBzZWxmLl9jbGFzc2VzOgorICAgICAgICAgICAg
cnYgPSBzZWxmLl9jbGFzc2VzW25hbWVdKHNlbGYuX21hbmlmZXN0KQorICAgICAgICAgICAgc2V0
YXR0cihzZWxmLCBuYW1lLCBydikKKyAgICAgICAgICAgIHJldHVybiBydgorICAgICAgICByYWlz
ZSBBdHRyaWJ1dGVFcnJvcgorCisgICAgZGVmIF9fY29udGFpbnNfXyhzZWxmLCBuYW1lKToKKyAg
ICAgICAgcmV0dXJuIG5hbWUgaW4gc2VsZi5fY2xhc3NlcworCisgICAgZGVmIF9faXRlcl9fKHNl
bGYpOgorICAgICAgICBmb3IgbmFtZSBpbiBpdGVya2V5cyhzZWxmLl9jbGFzc2VzKToKKyAgICAg
ICAgICAgIHlpZWxkIGdldGF0dHIoc2VsZiwgbmFtZSkKKworCiBjbGFzcyBFeHBlY3RlZE1hbmlm
ZXN0KE1hbmlmZXN0SXRlbSk6Ci0gICAgZGVmIF9faW5pdF9fKHNlbGYsIG5vZGUsIHRlc3RfcGF0
aD1Ob25lLCB1cmxfYmFzZT1Ob25lLCBwcm9wZXJ0eV9vcmRlcj1Ob25lLAotICAgICAgICAgICAg
ICAgICBib29sZWFuX3Byb3BlcnRpZXM9Tm9uZSk6CisgICAgZGVmIF9faW5pdF9fKHNlbGYsIG5v
ZGUsIHRlc3RfcGF0aCwgdXJsX2Jhc2UsIHJ1bl9pbmZvX3Byb3BlcnRpZXMsCisgICAgICAgICAg
ICAgICAgIHVwZGF0ZV9pbnRlcm1pdHRlbnQ9RmFsc2UsIHJlbW92ZV9pbnRlcm1pdHRlbnQ9RmFs
c2UpOgogICAgICAgICAiIiJPYmplY3QgcmVwcmVzZW50aW5nIGFsbCB0aGUgdGVzdHMgaW4gYSBw
YXJ0aWN1bGFyIG1hbmlmZXN0CiAKICAgICAgICAgOnBhcmFtIG5vZGU6IEFTVCBOb2RlIGFzc29j
aWF0ZWQgd2l0aCB0aGlzIG9iamVjdC4gSWYgdGhpcyBpcyBOb25lLAogICAgICAgICAgICAgICAg
ICAgICAgYSBuZXcgQVNUIGlzIGNyZWF0ZWQgdG8gYXNzb2NpYXRlIHdpdGggdGhpcyBtYW5pZmVz
dC4KICAgICAgICAgOnBhcmFtIHRlc3RfcGF0aDogUGF0aCBvZiB0aGUgdGVzdCBmaWxlIGFzc29j
aWF0ZWQgd2l0aCB0aGlzIG1hbmlmZXN0LgogICAgICAgICA6cGFyYW0gdXJsX2Jhc2U6IEJhc2Ug
dXJsIGZvciBzZXJ2aW5nIHRoZSB0ZXN0cyBpbiB0aGlzIG1hbmlmZXN0LgotICAgICAgICA6cGFy
YW0gcHJvcGVydHlfb3JkZXI6IExpc3Qgb2YgcHJvcGVydGllcyB0byB1c2UgaW4gZXhwZWN0YXRp
b24gbWV0YWRhdGEKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmcm9tIG1vc3QgdG8g
bGVhc3Qgc2lnbmlmaWNhbnQuCi0gICAgICAgIDpwYXJhbSBib29sZWFuX3Byb3BlcnRpZXM6IFNl
dCBvZiBwcm9wZXJ0aWVzIGluIHByb3BlcnR5X29yZGVyIHRoYXQgc2hvdWxkCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGJlIHRyZWF0ZWQgYXMgYm9vbGVhbi4KKyAgICAgICAg
OnBhcmFtIHJ1bl9pbmZvX3Byb3BlcnRpZXM6IFR1cGxlIG9mIChbcHJvcGVydHkgbmFtZV0sCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3Byb3BlcnR5X25h
bWU6IFtkZXBlbmRlbnQgcHJvcGVydHldfSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIFRoZSBmaXJzdCBwYXJ0IGxpc3RzIHJ1bl9pbmZvIHByb3BlcnRpZXMKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoYXQgYXJlIGFsd2F5cyB1c2VkIGluIHRoZSB1
cGRhdGUsIHRoZSBzZWNvbmQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1h
cHMgcHJvcGVydHkgbmFtZXMgdG8gYWRkaXRpb25hbCBwcm9wZXJ0aWVzIHRoYXQKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhbiBiZSBjb25zaWRlcmVkIGlmIHdlIGFscmVh
ZHkgaGF2ZSBhIGNvbmRpdGlvbiBvbgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgdGhlIGtleSBwcm9wZXJ0eSBlLmcuIHsiZm9vIjogWyJiYXIiXX0gbWVhbnMgdGhhdAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2UgY29uc2lkZXIgbWFraW5nIGNvbmRp
dGlvbnMgb24gYmFyIG9ubHkgYWZ0ZXIgd2UKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGFscmVhZHkgbWFkZSBvbmUgb24gZm9vLgorICAgICAgICA6cGFyYW0gdXBkYXRlX2lu
dGVybWl0dGVudDogV2hlbiBUcnVlLCBpbnRlcm1pdHRlbnQgc3RhdHVzZXMgd2lsbCBiZSByZWNv
cmRlZAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXMgYGV4cGVjdGVkYCBp
biB0aGUgdGVzdCBtZXRhZGF0YS4KKyAgICAgICAgOnBhcmFtOiByZW1vdmVfaW50ZXJtaXR0ZW50
OiBXaGVuIFRydWUsIG9sZCBpbnRlcm1pdHRlbnQgc3RhdHVzZXMgd2lsbCBiZSByZW1vdmVkCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiBubyBsb25nZXIgaW50ZXJtaXR0
ZW50LiBUaGlzIGlzIG9ubHkgcmVsZXZhbnQgaWYKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGB1cGRhdGVfaW50ZXJtaXR0ZW50YCBpcyBhbHNvIFRydWUsIGJlY2F1c2UgaWYg
RmFsc2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGUgbWV0YWRhdGEg
d2lsbCBzaW1wbHkgdXBkYXRlIG9uZSBgZXhwZWN0ZWRgc3RhdHVzLgogICAgICAgICAiIiIKICAg
ICAgICAgaWYgbm9kZSBpcyBOb25lOgogICAgICAgICAgICAgbm9kZSA9IERhdGFOb2RlKE5vbmUp
CkBAIC03NiwxNyArMTEyLDMwIEBAIGNsYXNzIEV4cGVjdGVkTWFuaWZlc3QoTWFuaWZlc3RJdGVt
KToKICAgICAgICAgc2VsZi50ZXN0X3BhdGggPSB0ZXN0X3BhdGgKICAgICAgICAgc2VsZi51cmxf
YmFzZSA9IHVybF9iYXNlCiAgICAgICAgIGFzc2VydCBzZWxmLnVybF9iYXNlIGlzIG5vdCBOb25l
Ci0gICAgICAgIHNlbGYubW9kaWZpZWQgPSBGYWxzZQotICAgICAgICBzZWxmLmJvb2xlYW5fcHJv
cGVydGllcyA9IGJvb2xlYW5fcHJvcGVydGllcwotICAgICAgICBzZWxmLnByb3BlcnR5X29yZGVy
ID0gcHJvcGVydHlfb3JkZXIKLSAgICAgICAgc2VsZi51cGRhdGVfcHJvcGVydGllcyA9IHsKLSAg
ICAgICAgICAgICJsc2FuIjogTHNhblVwZGF0ZShzZWxmKSwKLSAgICAgICAgfQorICAgICAgICBz
ZWxmLl9tb2RpZmllZCA9IEZhbHNlCisgICAgICAgIHNlbGYucnVuX2luZm9fcHJvcGVydGllcyA9
IHJ1bl9pbmZvX3Byb3BlcnRpZXMKKyAgICAgICAgc2VsZi51cGRhdGVfaW50ZXJtaXR0ZW50ID0g
dXBkYXRlX2ludGVybWl0dGVudAorICAgICAgICBzZWxmLnJlbW92ZV9pbnRlcm1pdHRlbnQgPSBy
ZW1vdmVfaW50ZXJtaXR0ZW50CisgICAgICAgIHNlbGYudXBkYXRlX3Byb3BlcnRpZXMgPSBVcGRh
dGVQcm9wZXJ0aWVzKHNlbGYsICoqeworICAgICAgICAgICAgImxzYW4iOiBMc2FuVXBkYXRlLAor
ICAgICAgICAgICAgImxlYWtfb2JqZWN0IjogTGVha09iamVjdFVwZGF0ZSwKKyAgICAgICAgICAg
ICJsZWFrX3RocmVzaG9sZCI6IExlYWtUaHJlc2hvbGRVcGRhdGUsCisgICAgICAgIH0pCisKKyAg
ICBAcHJvcGVydHkKKyAgICBkZWYgbW9kaWZpZWQoc2VsZik6CisgICAgICAgIGlmIHNlbGYuX21v
ZGlmaWVkOgorICAgICAgICAgICAgcmV0dXJuIFRydWUKKyAgICAgICAgcmV0dXJuIGFueShpdGVt
Lm1vZGlmaWVkIGZvciBpdGVtIGluIHNlbGYuY2hpbGRyZW4pCisKKyAgICBAbW9kaWZpZWQuc2V0
dGVyCisgICAgZGVmIG1vZGlmaWVkKHNlbGYsIHZhbHVlKToKKyAgICAgICAgc2VsZi5fbW9kaWZp
ZWQgPSB2YWx1ZQogCiAgICAgZGVmIGFwcGVuZChzZWxmLCBjaGlsZCk6CiAgICAgICAgIE1hbmlm
ZXN0SXRlbS5hcHBlbmQoc2VsZiwgY2hpbGQpCiAgICAgICAgIGlmIGNoaWxkLmlkIGluIHNlbGYu
Y2hpbGRfbWFwOgotICAgICAgICAgICAgcHJpbnQgIldhcm5pbmc6IER1cGxpY2F0ZSBoZWFkaW5n
ICVzIiAlIGNoaWxkLmlkCisgICAgICAgICAgICBwcmludCgiV2FybmluZzogRHVwbGljYXRlIGhl
YWRpbmcgJXMiICUgY2hpbGQuaWQpCiAgICAgICAgIHNlbGYuY2hpbGRfbWFwW2NoaWxkLmlkXSA9
IGNoaWxkCiAKICAgICBkZWYgX3JlbW92ZV9jaGlsZChzZWxmLCBjaGlsZCk6CkBAIC0xMTAsOCAr
MTU5LDggQEAgY2xhc3MgRXhwZWN0ZWRNYW5pZmVzdChNYW5pZmVzdEl0ZW0pOgogCiAgICAgQHBy
b3BlcnR5CiAgICAgZGVmIHVybChzZWxmKToKLSAgICAgICAgcmV0dXJuIHVybHBhcnNlLnVybGpv
aW4oc2VsZi51cmxfYmFzZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIi8iLmpv
aW4oc2VsZi50ZXN0X3BhdGguc3BsaXQob3MucGF0aC5zZXApKSkKKyAgICAgICAgcmV0dXJuIHVy
bGpvaW4oc2VsZi51cmxfYmFzZSwKKyAgICAgICAgICAgICAgICAgICAgICAgIi8iLmpvaW4oc2Vs
Zi50ZXN0X3BhdGguc3BsaXQob3MucGF0aC5zZXApKSkKIAogICAgIGRlZiBzZXRfbHNhbihzZWxm
LCBydW5faW5mbywgcmVzdWx0KToKICAgICAgICAgIiIiU2V0IHRoZSByZXN1bHQgb2YgdGhlIHRl
c3QgaW4gYSBwYXJ0aWN1bGFyIHJ1bgpAQCAtMTE5LDEyICsxNjgsMjggQEAgY2xhc3MgRXhwZWN0
ZWRNYW5pZmVzdChNYW5pZmVzdEl0ZW0pOgogICAgICAgICA6cGFyYW0gcnVuX2luZm86IERpY3Rp
b25hcnkgb2YgcnVuX2luZm8gcGFyYW1ldGVycyBjb3JyZXNwb25kaW5nCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgdG8gdGhpcyBydW4KICAgICAgICAgOnBhcmFtIHJlc3VsdDogTHNhbiB2aW9s
YXRpb25zIGRldGVjdGVkIiIiCisgICAgICAgIHNlbGYudXBkYXRlX3Byb3BlcnRpZXMubHNhbi5z
ZXQocnVuX2luZm8sIHJlc3VsdCkKKworICAgIGRlZiBzZXRfbGVha19vYmplY3Qoc2VsZiwgcnVu
X2luZm8sIHJlc3VsdCk6CisgICAgICAgICIiIlNldCB0aGUgcmVzdWx0IG9mIHRoZSB0ZXN0IGlu
IGEgcGFydGljdWxhciBydW4KKworICAgICAgICA6cGFyYW0gcnVuX2luZm86IERpY3Rpb25hcnkg
b2YgcnVuX2luZm8gcGFyYW1ldGVycyBjb3JyZXNwb25kaW5nCisgICAgICAgICAgICAgICAgICAg
ICAgICAgdG8gdGhpcyBydW4KKyAgICAgICAgOnBhcmFtIHJlc3VsdDogTGVha2VkIG9iamVjdHMg
ZGVsZXRlYyIiIgorICAgICAgICBzZWxmLnVwZGF0ZV9wcm9wZXJ0aWVzLmxlYWtfb2JqZWN0LnNl
dChydW5faW5mbywgcmVzdWx0KQorCisgICAgZGVmIHNldF9sZWFrX3RocmVzaG9sZChzZWxmLCBy
dW5faW5mbywgcmVzdWx0KToKKyAgICAgICAgIiIiU2V0IHRoZSByZXN1bHQgb2YgdGhlIHRlc3Qg
aW4gYSBwYXJ0aWN1bGFyIHJ1bgogCi0gICAgICAgIHNlbGYudXBkYXRlX3Byb3BlcnRpZXNbImxz
YW4iXS5zZXQocnVuX2luZm8sIHJlc3VsdCkKKyAgICAgICAgOnBhcmFtIHJ1bl9pbmZvOiBEaWN0
aW9uYXJ5IG9mIHJ1bl9pbmZvIHBhcmFtZXRlcnMgY29ycmVzcG9uZGluZworICAgICAgICAgICAg
ICAgICAgICAgICAgIHRvIHRoaXMgcnVuCisgICAgICAgIDpwYXJhbSByZXN1bHQ6IFRvdGFsIG51
bWJlciBvZiBieXRlcyBsZWFrZWQiIiIKKyAgICAgICAgc2VsZi51cGRhdGVfcHJvcGVydGllcy5s
ZWFrX3RocmVzaG9sZC5zZXQocnVuX2luZm8sIHJlc3VsdCkKIAotICAgIGRlZiBjb2FsZXNjZV9w
cm9wZXJ0aWVzKHNlbGYsIHN0YWJpbGl0eSk6Ci0gICAgICAgIGZvciBwcm9wX3VwZGF0ZSBpbiBz
ZWxmLnVwZGF0ZV9wcm9wZXJ0aWVzLml0ZXJ2YWx1ZXMoKToKLSAgICAgICAgICAgIHByb3BfdXBk
YXRlLmNvYWxlc2NlKHN0YWJpbGl0eSkKKyAgICBkZWYgdXBkYXRlKHNlbGYsIGZ1bGxfdXBkYXRl
LCBkaXNhYmxlX2ludGVybWl0dGVudCk6CisgICAgICAgIGZvciBwcm9wX3VwZGF0ZSBpbiBzZWxm
LnVwZGF0ZV9wcm9wZXJ0aWVzOgorICAgICAgICAgICAgcHJvcF91cGRhdGUudXBkYXRlKGZ1bGxf
dXBkYXRlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGVfaW50ZXJtaXR0
ZW50KQogCiAKIGNsYXNzIFRlc3ROb2RlKE1hbmlmZXN0SXRlbSk6CkBAIC0xMzcsMTEgKzIwMiwx
NCBAQCBjbGFzcyBUZXN0Tm9kZShNYW5pZmVzdEl0ZW0pOgogICAgICAgICBzZWxmLnN1YnRlc3Rz
ID0ge30KICAgICAgICAgc2VsZi5fZnJvbV9maWxlID0gVHJ1ZQogICAgICAgICBzZWxmLm5ld19k
aXNhYmxlZCA9IEZhbHNlCi0gICAgICAgIHNlbGYudXBkYXRlX3Byb3BlcnRpZXMgPSB7Ci0gICAg
ICAgICAgICAiZXhwZWN0ZWQiOiBFeHBlY3RlZFVwZGF0ZShzZWxmKSwKLSAgICAgICAgICAgICJt
YXgtYXNzZXJ0cyI6IE1heEFzc2VydHNVcGRhdGUoc2VsZiksCi0gICAgICAgICAgICAibWluLWFz
c2VydHMiOiBNaW5Bc3NlcnRzVXBkYXRlKHNlbGYpCi0gICAgICAgIH0KKyAgICAgICAgc2VsZi5o
YXNfcmVzdWx0ID0gRmFsc2UKKyAgICAgICAgc2VsZi5tb2RpZmllZCA9IEZhbHNlCisgICAgICAg
IHNlbGYudXBkYXRlX3Byb3BlcnRpZXMgPSBVcGRhdGVQcm9wZXJ0aWVzKAorICAgICAgICAgICAg
c2VsZiwKKyAgICAgICAgICAgIGV4cGVjdGVkPUV4cGVjdGVkVXBkYXRlLAorICAgICAgICAgICAg
bWF4X2Fzc2VydHM9TWF4QXNzZXJ0c1VwZGF0ZSwKKyAgICAgICAgICAgIG1pbl9hc3NlcnRzPU1p
bkFzc2VydHNVcGRhdGUKKyAgICAgICAgKQogCiAgICAgQGNsYXNzbWV0aG9kCiAgICAgZGVmIGNy
ZWF0ZShjbHMsIHRlc3RfaWQpOgpAQCAtMTQ5LDkgKzIxNyw3IEBAIGNsYXNzIFRlc3ROb2RlKE1h
bmlmZXN0SXRlbSk6CiAKICAgICAgICAgOnBhcmFtIHRlc3RfdHlwZTogVGhlIHR5cGUgb2YgdGhl
IHRlc3QKICAgICAgICAgOnBhcmFtIHRlc3RfaWQ6IFRoZSBpZCBvZiB0aGUgdGVzdCIiIgotCi0g
ICAgICAgIHVybCA9IHRlc3RfaWQKLSAgICAgICAgbmFtZSA9IHVybC5yc3BsaXQoIi8iLCAxKVsx
XQorICAgICAgICBuYW1lID0gdGVzdF9pZFtsZW4odXJsc3BsaXQodGVzdF9pZCkucGF0aC5yc3Bs
aXQoIi8iLCAxKVswXSkgKyAxOl0KICAgICAgICAgbm9kZSA9IERhdGFOb2RlKG5hbWUpCiAgICAg
ICAgIHNlbGYgPSBjbHMobm9kZSkKIApAQCAtMTYwLDcgKzIyNiw3IEBAIGNsYXNzIFRlc3ROb2Rl
KE1hbmlmZXN0SXRlbSk6CiAKICAgICBAcHJvcGVydHkKICAgICBkZWYgaXNfZW1wdHkoc2VsZik6
Ci0gICAgICAgIGlnbm9yZV9rZXlzID0gc2V0KFsidHlwZSJdKQorICAgICAgICBpZ25vcmVfa2V5
cyA9IHsidHlwZSJ9CiAgICAgICAgIGlmIHNldChzZWxmLl9kYXRhLmtleXMoKSkgLSBpZ25vcmVf
a2V5czoKICAgICAgICAgICAgIHJldHVybiBGYWxzZQogICAgICAgICByZXR1cm4gYWxsKGNoaWxk
LmlzX2VtcHR5IGZvciBjaGlsZCBpbiBzZWxmLmNoaWxkcmVuKQpAQCAtMTczLDcgKzIzOSw3IEBA
IGNsYXNzIFRlc3ROb2RlKE1hbmlmZXN0SXRlbSk6CiAgICAgQHByb3BlcnR5CiAgICAgZGVmIGlk
KHNlbGYpOgogICAgICAgICAiIiJUaGUgaWQgb2YgdGhlIHRlc3QgcmVwcmVzZW50ZWQgYnkgdGhp
cyBUZXN0Tm9kZSIiIgotICAgICAgICByZXR1cm4gdXJscGFyc2UudXJsam9pbihzZWxmLnBhcmVu
dC51cmwsIHNlbGYubmFtZSkKKyAgICAgICAgcmV0dXJuIHVybGpvaW4oc2VsZi5wYXJlbnQudXJs
LCBzZWxmLm5hbWUpCiAKICAgICBkZWYgZGlzYWJsZWQoc2VsZiwgcnVuX2luZm8pOgogICAgICAg
ICAiIiJCb29sZWFuIGluZGljYXRpbmcgd2hldGhlciB0aGlzIHRlc3QgaXMgZGlzYWJsZWQgd2hl
biBydW4gaW4gYW4KQEAgLTE4OSwzOCArMjU1LDE0IEBAIGNsYXNzIFRlc3ROb2RlKE1hbmlmZXN0
SXRlbSk6CiAgICAgICAgIDpwYXJhbSBydW5faW5mbzogRGljdGlvbmFyeSBvZiBydW5faW5mbyBw
YXJhbWV0ZXJzIGNvcnJlc3BvbmRpbmcKICAgICAgICAgICAgICAgICAgICAgICAgICB0byB0aGlz
IHJ1bgogICAgICAgICA6cGFyYW0gcmVzdWx0OiBTdGF0dXMgb2YgdGhlIHRlc3QgaW4gdGhpcyBy
dW4iIiIKLQotICAgICAgICBzZWxmLnVwZGF0ZV9wcm9wZXJ0aWVzWyJleHBlY3RlZCJdLnNldChy
dW5faW5mbywgcmVzdWx0KQorICAgICAgICBzZWxmLnVwZGF0ZV9wcm9wZXJ0aWVzLmV4cGVjdGVk
LnNldChydW5faW5mbywgcmVzdWx0KQogCiAgICAgZGVmIHNldF9hc3NlcnRzKHNlbGYsIHJ1bl9p
bmZvLCBjb3VudCk6CiAgICAgICAgICIiIlNldCB0aGUgYXNzZXJ0IGNvdW50IG9mIGEgdGVzdAog
CiAgICAgICAgICIiIgotICAgICAgICBzZWxmLnVwZGF0ZV9wcm9wZXJ0aWVzWyJtaW4tYXNzZXJ0
cyJdLnNldChydW5faW5mbywgY291bnQpCi0gICAgICAgIHNlbGYudXBkYXRlX3Byb3BlcnRpZXNb
Im1heC1hc3NlcnRzIl0uc2V0KHJ1bl9pbmZvLCBjb3VudCkKLQotICAgIGRlZiBfYWRkX2tleV92
YWx1ZShzZWxmLCBub2RlLCB2YWx1ZXMpOgotICAgICAgICBNYW5pZmVzdEl0ZW0uX2FkZF9rZXlf
dmFsdWUoc2VsZiwgbm9kZSwgdmFsdWVzKQotICAgICAgICBpZiBub2RlLmRhdGEgaW4gc2VsZi51
cGRhdGVfcHJvcGVydGllczoKLSAgICAgICAgICAgIG5ld191cGRhdGVkID0gW10KLSAgICAgICAg
ICAgIHNlbGYudXBkYXRlX3Byb3BlcnRpZXNbbm9kZS5kYXRhXS51cGRhdGVkID0gbmV3X3VwZGF0
ZWQKLSAgICAgICAgICAgIGZvciB2YWx1ZSBpbiB2YWx1ZXM6Ci0gICAgICAgICAgICAgICAgbmV3
X3VwZGF0ZWQuYXBwZW5kKCh2YWx1ZSwgW10pKQotCi0gICAgZGVmIGNsZWFyKHNlbGYsIGtleSk6
Ci0gICAgICAgICIiIkNsZWFyIGFsbCB0aGUgZXhwZWN0ZWQgZGF0YSBmb3IgdGhpcyB0ZXN0IGFu
ZCBhbGwgb2YgaXRzIHN1YnRlc3RzIiIiCi0KLSAgICAgICAgc2VsZi51cGRhdGVkID0gW10KLSAg
ICAgICAgaWYga2V5IGluIHNlbGYuX2RhdGE6Ci0gICAgICAgICAgICBmb3IgY2hpbGQgaW4gc2Vs
Zi5ub2RlLmNoaWxkcmVuOgotICAgICAgICAgICAgICAgIGlmIChpc2luc3RhbmNlKGNoaWxkLCBL
ZXlWYWx1ZU5vZGUpIGFuZAotICAgICAgICAgICAgICAgICAgICBjaGlsZC5kYXRhID09IGtleSk6
Ci0gICAgICAgICAgICAgICAgICAgIGNoaWxkLnJlbW92ZSgpCi0gICAgICAgICAgICAgICAgICAg
IGRlbCBzZWxmLl9kYXRhW2tleV0KLSAgICAgICAgICAgICAgICAgICAgYnJlYWsKLQotICAgICAg
ICBmb3Igc3VidGVzdCBpbiBzZWxmLnN1YnRlc3RzLml0ZXJ2YWx1ZXMoKToKLSAgICAgICAgICAg
IHN1YnRlc3QuY2xlYXIoa2V5KQorICAgICAgICBzZWxmLnVwZGF0ZV9wcm9wZXJ0aWVzLm1pbl9h
c3NlcnRzLnNldChydW5faW5mbywgY291bnQpCisgICAgICAgIHNlbGYudXBkYXRlX3Byb3BlcnRp
ZXMubWF4X2Fzc2VydHMuc2V0KHJ1bl9pbmZvLCBjb3VudCkKIAogICAgIGRlZiBhcHBlbmQoc2Vs
Ziwgbm9kZSk6CiAgICAgICAgIGNoaWxkID0gTWFuaWZlc3RJdGVtLmFwcGVuZChzZWxmLCBub2Rl
KQpAQCAtMjQwLDkgKzI4MiwxMCBAQCBjbGFzcyBUZXN0Tm9kZShNYW5pZmVzdEl0ZW0pOgogICAg
ICAgICAgICAgc2VsZi5hcHBlbmQoc3VidGVzdCkKICAgICAgICAgICAgIHJldHVybiBzdWJ0ZXN0
CiAKLSAgICBkZWYgY29hbGVzY2VfcHJvcGVydGllcyhzZWxmLCBzdGFiaWxpdHkpOgotICAgICAg
ICBmb3IgcHJvcF91cGRhdGUgaW4gc2VsZi51cGRhdGVfcHJvcGVydGllcy5pdGVydmFsdWVzKCk6
Ci0gICAgICAgICAgICBwcm9wX3VwZGF0ZS5jb2FsZXNjZShzdGFiaWxpdHkpCisgICAgZGVmIHVw
ZGF0ZShzZWxmLCBmdWxsX3VwZGF0ZSwgZGlzYWJsZV9pbnRlcm1pdHRlbnQpOgorICAgICAgICBm
b3IgcHJvcF91cGRhdGUgaW4gc2VsZi51cGRhdGVfcHJvcGVydGllczoKKyAgICAgICAgICAgIHBy
b3BfdXBkYXRlLnVwZGF0ZShmdWxsX3VwZGF0ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBkaXNhYmxlX2ludGVybWl0dGVudCkKIAogCiBjbGFzcyBTdWJ0ZXN0Tm9kZShUZXN0Tm9k
ZSk6CkBAIC0yNjMsNDEgKzMwNiw4NiBAQCBjbGFzcyBTdWJ0ZXN0Tm9kZShUZXN0Tm9kZSk6CiAg
ICAgICAgIHJldHVybiBUcnVlCiAKIAorZGVmIGJ1aWxkX2NvbmRpdGlvbmFsX3RyZWUoXywgcnVu
X2luZm9fcHJvcGVydGllcywgcmVzdWx0cyk6CisgICAgcHJvcGVydGllcywgZGVwZW5kZW50X3By
b3BzID0gcnVuX2luZm9fcHJvcGVydGllcworICAgIHJldHVybiBleHBlY3RlZHRyZWUuYnVpbGRf
dHJlZShwcm9wZXJ0aWVzLCBkZXBlbmRlbnRfcHJvcHMsIHJlc3VsdHMpCisKKworZGVmIGJ1aWxk
X3VuY29uZGl0aW9uYWxfdHJlZShfLCBydW5faW5mb19wcm9wZXJ0aWVzLCByZXN1bHRzKToKKyAg
ICByb290ID0gZXhwZWN0ZWR0cmVlLk5vZGUoTm9uZSwgTm9uZSkKKyAgICBmb3IgcnVuX2luZm8s
IHZhbHVlcyBpbiBpdGVyaXRlbXMocmVzdWx0cyk6CisgICAgICAgIGZvciB2YWx1ZSwgY291bnQg
aW4gaXRlcml0ZW1zKHZhbHVlcyk6CisgICAgICAgICAgICByb290LnJlc3VsdF92YWx1ZXNbdmFs
dWVdICs9IGNvdW50CisgICAgICAgIHJvb3QucnVuX2luZm8uYWRkKHJ1bl9pbmZvKQorICAgIHJl
dHVybiByb290CisKKwogY2xhc3MgUHJvcGVydHlVcGRhdGUob2JqZWN0KToKICAgICBwcm9wZXJ0
eV9uYW1lID0gTm9uZQogICAgIGNsc19kZWZhdWx0X3ZhbHVlID0gTm9uZQogICAgIHZhbHVlX3R5
cGUgPSBOb25lCisgICAgcHJvcGVydHlfYnVpbGRlciA9IE5vbmUKIAogICAgIGRlZiBfX2luaXRf
XyhzZWxmLCBub2RlKToKICAgICAgICAgc2VsZi5ub2RlID0gbm9kZQotICAgICAgICBzZWxmLnVw
ZGF0ZWQgPSBbXQotICAgICAgICBzZWxmLm5ldyA9IFtdCiAgICAgICAgIHNlbGYuZGVmYXVsdF92
YWx1ZSA9IHNlbGYuY2xzX2RlZmF1bHRfdmFsdWUKLQotICAgIGRlZiBzZXQoc2VsZiwgcnVuX2lu
Zm8sIGluX3ZhbHVlKToKLSAgICAgICAgc2VsZi5jaGVja19kZWZhdWx0KGluX3ZhbHVlKQotICAg
ICAgICB2YWx1ZSA9IHNlbGYuZ2V0X3ZhbHVlKGluX3ZhbHVlKQotCi0gICAgICAgICMgQWRkIHRo
aXMgcmVzdWx0IHRvIHRoZSBsaXN0IG9mIHJlc3VsdHMgc2F0aXNmeWluZwotICAgICAgICAjIGFu
eSBjb25kaXRpb24gaW4gdGhlIGxpc3Qgb2YgdXBkYXRlZCByZXN1bHRzIGl0IG1hdGNoZXMKLSAg
ICAgICAgZm9yIChjb25kLCB2YWx1ZXMpIGluIHNlbGYudXBkYXRlZDoKLSAgICAgICAgICAgIGlm
IGNvbmQocnVuX2luZm8pOgotICAgICAgICAgICAgICAgIHZhbHVlcy5hcHBlbmQoVmFsdWUocnVu
X2luZm8sIHZhbHVlKSkKLSAgICAgICAgICAgICAgICBpZiB2YWx1ZSAhPSBjb25kLnZhbHVlX2Fz
KHNlbGYudmFsdWVfdHlwZSk6Ci0gICAgICAgICAgICAgICAgICAgIHNlbGYubm9kZS5yb290Lm1v
ZGlmaWVkID0gVHJ1ZQotICAgICAgICAgICAgICAgIGJyZWFrCi0gICAgICAgIGVsc2U6Ci0gICAg
ICAgICAgICAjIFdlIGRpZG4ndCBmaW5kIGEgcHJldmlvdXMgdmFsdWUgZm9yIHRoaXMKLSAgICAg
ICAgICAgIHNlbGYubmV3LmFwcGVuZChWYWx1ZShydW5faW5mbywgdmFsdWUpKQotICAgICAgICAg
ICAgc2VsZi5ub2RlLnJvb3QubW9kaWZpZWQgPSBUcnVlCisgICAgICAgIHNlbGYuaGFzX3Jlc3Vs
dCA9IEZhbHNlCisgICAgICAgIHNlbGYucmVzdWx0cyA9IGRlZmF1bHRkaWN0KGxhbWJkYTogZGVm
YXVsdGRpY3QoaW50KSkKKyAgICAgICAgc2VsZi51cGRhdGVfaW50ZXJtaXR0ZW50ID0gc2VsZi5u
b2RlLnJvb3QudXBkYXRlX2ludGVybWl0dGVudAorICAgICAgICBzZWxmLnJlbW92ZV9pbnRlcm1p
dHRlbnQgPSBzZWxmLm5vZGUucm9vdC5yZW1vdmVfaW50ZXJtaXR0ZW50CisKKyAgICBkZWYgcnVu
X2luZm9fYnlfY29uZGl0aW9uKHNlbGYsIHJ1bl9pbmZvX2luZGV4LCBjb25kaXRpb25zKToKKyAg
ICAgICAgcnVuX2luZm9fYnlfY29uZGl0aW9uID0gZGVmYXVsdGRpY3QobGlzdCkKKyAgICAgICAg
IyBBIGNvbmRpdGlvbiBtaWdodCBtYXRjaCAwIG9yIG1vcmUgcnVuX2luZm8gdmFsdWVzCisgICAg
ICAgIHJ1bl9pbmZvcyA9IHJ1bl9pbmZvX2luZGV4LmtleXMoKQorICAgICAgICBmb3IgY29uZCBp
biBjb25kaXRpb25zOgorICAgICAgICAgICAgZm9yIHJ1bl9pbmZvIGluIHJ1bl9pbmZvczoKKyAg
ICAgICAgICAgICAgICBpZiBjb25kKHJ1bl9pbmZvKToKKyAgICAgICAgICAgICAgICAgICAgcnVu
X2luZm9fYnlfY29uZGl0aW9uW2NvbmRdLmFwcGVuZChydW5faW5mbykKKworICAgICAgICByZXR1
cm4gcnVuX2luZm9fYnlfY29uZGl0aW9uCisKKyAgICBkZWYgc2V0KHNlbGYsIHJ1bl9pbmZvLCB2
YWx1ZSk6CisgICAgICAgIHNlbGYuaGFzX3Jlc3VsdCA9IFRydWUKKyAgICAgICAgc2VsZi5ub2Rl
Lmhhc19yZXN1bHQgPSBUcnVlCisgICAgICAgIHNlbGYuY2hlY2tfZGVmYXVsdCh2YWx1ZSkKKyAg
ICAgICAgdmFsdWUgPSBzZWxmLmZyb21fcmVzdWx0X3ZhbHVlKHZhbHVlKQorICAgICAgICBzZWxm
LnJlc3VsdHNbcnVuX2luZm9dW3ZhbHVlXSArPSAxCiAKICAgICBkZWYgY2hlY2tfZGVmYXVsdChz
ZWxmLCByZXN1bHQpOgogICAgICAgICByZXR1cm4KIAotICAgIGRlZiBnZXRfdmFsdWUoc2VsZiwg
aW5fdmFsdWUpOgotICAgICAgICByZXR1cm4gaW5fdmFsdWUKKyAgICBkZWYgZnJvbV9yZXN1bHRf
dmFsdWUoc2VsZiwgdmFsdWUpOgorICAgICAgICAiIiJDb252ZXJ0IGEgdmFsdWUgZnJvbSBhIHRl
c3QgcmVzdWx0IGludG8gdGhlIGludGVybmFsIGZvcm1hdCIiIgorICAgICAgICByZXR1cm4gdmFs
dWUKIAotICAgIGRlZiBjb2FsZXNjZShzZWxmLCBzdGFiaWxpdHk9Tm9uZSk6CisgICAgZGVmIGZy
b21faW5pX3ZhbHVlKHNlbGYsIHZhbHVlKToKKyAgICAgICAgIiIiQ29udmVydCBhIHZhbHVlIGZy
b20gYW4gaW5pIGZpbGUgaW50byB0aGUgaW50ZXJuYWwgZm9ybWF0IiIiCisgICAgICAgIGlmIHNl
bGYudmFsdWVfdHlwZToKKyAgICAgICAgICAgIHJldHVybiBzZWxmLnZhbHVlX3R5cGUodmFsdWUp
CisgICAgICAgIHJldHVybiB2YWx1ZQorCisgICAgZGVmIHRvX2luaV92YWx1ZShzZWxmLCB2YWx1
ZSk6CisgICAgICAgICIiIkNvbnZlcnQgYSB2YWx1ZSBmcm9tIHRoZSBpbnRlcm5hbCBmb3JtYXQg
dG8gdGhlIGluaSBmaWxlIGZvcm1hdCIiIgorICAgICAgICByZXR1cm4gc3RyKHZhbHVlKQorCisg
ICAgZGVmIHVwZGF0ZWRfdmFsdWUoc2VsZiwgY3VycmVudCwgbmV3KToKKyAgICAgICAgIiIiR2l2
ZW4gYSBzaW5nbGUgY3VycmVudCB2YWx1ZSBhbmQgYSBzZXQgb2Ygb2JzZXJ2ZWQgbmV3IHZhbHVl
cywKKyAgICAgICAgY29tcHV0ZSBhbiB1cGRhdGVkIHZhbHVlIGZvciB0aGUgcHJvcGVydHkiIiIK
KyAgICAgICAgcmV0dXJuIG5ldworCisgICAgQHByb3BlcnR5CisgICAgZGVmIHVuY29uZGl0aW9u
YWxfdmFsdWUoc2VsZik6CisgICAgICAgIHRyeToKKyAgICAgICAgICAgIHVuY29uZGl0aW9uYWxf
dmFsdWUgPSBzZWxmLmZyb21faW5pX3ZhbHVlKAorICAgICAgICAgICAgICAgIHNlbGYubm9kZS5n
ZXQoc2VsZi5wcm9wZXJ0eV9uYW1lKSkKKyAgICAgICAgZXhjZXB0IEtleUVycm9yOgorICAgICAg
ICAgICAgdW5jb25kaXRpb25hbF92YWx1ZSA9IHNlbGYuZGVmYXVsdF92YWx1ZQorICAgICAgICBy
ZXR1cm4gdW5jb25kaXRpb25hbF92YWx1ZQorCisgICAgZGVmIHVwZGF0ZShzZWxmLAorICAgICAg
ICAgICAgICAgZnVsbF91cGRhdGU9RmFsc2UsCisgICAgICAgICAgICAgICBkaXNhYmxlX2ludGVy
bWl0dGVudD1Ob25lKToKICAgICAgICAgIiIiVXBkYXRlIHRoZSB1bmRlcmx5aW5nIG1hbmlmZXN0
IEFTVCBmb3IgdGhpcyB0ZXN0IGJhc2VkIG9uIGFsbCB0aGUKICAgICAgICAgYWRkZWQgcmVzdWx0
cy4KIApAQCAtMzA4LDk2ICszOTYsMjczIEBAIGNsYXNzIFByb3BlcnR5VXBkYXRlKG9iamVjdCk6
CiAKICAgICAgICAgQ29uZGl0aW9uYWxzIG5vdCBtYXRjaGVkIGJ5IGFueSBhZGRlZCByZXN1bHQg
YXJlIG5vdCBjaGFuZ2VkLgogCi0gICAgICAgIFdoZW4gYHN0YWJpbGl0eWAgaXMgbm90IE5vbmUs
IGRpc2FibGUgYW55IHRlc3QgdGhhdCBzaG93cyBtdWx0aXBsZQorICAgICAgICBXaGVuIGBkaXNh
YmxlX2ludGVybWl0dGVudGAgaXMgbm90IE5vbmUsIGRpc2FibGUgYW55IHRlc3QgdGhhdCBzaG93
cyBtdWx0aXBsZQogICAgICAgICB1bmV4cGVjdGVkIHJlc3VsdHMgZm9yIHRoZSBzYW1lIHNldCBv
ZiBwYXJhbWV0ZXJzLgogICAgICAgICAiIiIKKyAgICAgICAgaWYgbm90IHNlbGYuaGFzX3Jlc3Vs
dDoKKyAgICAgICAgICAgIHJldHVybgogCi0gICAgICAgIHRyeToKLSAgICAgICAgICAgIHVuY29u
ZGl0aW9uYWxfdmFsdWUgPSBzZWxmLm5vZGUuZ2V0KHNlbGYucHJvcGVydHlfbmFtZSkKLSAgICAg
ICAgICAgIGlmIHNlbGYudmFsdWVfdHlwZToKLSAgICAgICAgICAgICAgICB1bmNvbmRpdGlvbmFs
X3ZhbHVlID0gc2VsZi52YWx1ZV90eXBlKHVuY29uZGl0aW9uYWxfdmFsdWUpCi0gICAgICAgIGV4
Y2VwdCBLZXlFcnJvcjoKLSAgICAgICAgICAgIHVuY29uZGl0aW9uYWxfdmFsdWUgPSBzZWxmLmRl
ZmF1bHRfdmFsdWUKKyAgICAgICAgcHJvcGVydHlfdHJlZSA9IHNlbGYucHJvcGVydHlfYnVpbGRl
cihzZWxmLm5vZGUucm9vdC5ydW5faW5mb19wcm9wZXJ0aWVzLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYucmVzdWx0cykKIAotICAgICAgICBmb3Ig
Y29uZGl0aW9uYWxfdmFsdWUsIHJlc3VsdHMgaW4gc2VsZi51cGRhdGVkOgotICAgICAgICAgICAg
aWYgbm90IHJlc3VsdHM6Ci0gICAgICAgICAgICAgICAgIyBUaGUgY29uZGl0aW9uYWwgZGlkbid0
IG1hdGNoIGFueXRoaW5nIGluIHRoZXNlIHJ1bnMgc28gbGVhdmUgaXQgYWxvbmUKLSAgICAgICAg
ICAgICAgICBwYXNzCi0gICAgICAgICAgICBlbGlmIGFsbChyZXN1bHRzWzBdLnZhbHVlID09IHJl
c3VsdC52YWx1ZSBmb3IgcmVzdWx0IGluIHJlc3VsdHMpOgotICAgICAgICAgICAgICAgICMgQWxs
IHRoZSBuZXcgdmFsdWVzIGZvciB0aGlzIGNvbmRpdGlvbmFsIG1hdGNoZWQsIHNvIHVwZGF0ZSB0
aGUgbm9kZQotICAgICAgICAgICAgICAgIHJlc3VsdCA9IHJlc3VsdHNbMF0KLSAgICAgICAgICAg
ICAgICBpZiAocmVzdWx0LnZhbHVlID09IHVuY29uZGl0aW9uYWxfdmFsdWUgYW5kCi0gICAgICAg
ICAgICAgICAgICAgIGNvbmRpdGlvbmFsX3ZhbHVlLmNvbmRpdGlvbl9ub2RlIGlzIG5vdCBOb25l
KToKLSAgICAgICAgICAgICAgICAgICAgaWYgc2VsZi5wcm9wZXJ0eV9uYW1lIGluIHNlbGYubm9k
ZToKLSAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYubm9kZS5yZW1vdmVfdmFsdWUoc2VsZi5w
cm9wZXJ0eV9uYW1lLCBjb25kaXRpb25hbF92YWx1ZSkKLSAgICAgICAgICAgICAgICBlbHNlOgot
ICAgICAgICAgICAgICAgICAgICBjb25kaXRpb25hbF92YWx1ZS52YWx1ZSA9IHNlbGYudXBkYXRl
X3ZhbHVlKGNvbmRpdGlvbmFsX3ZhbHVlLnZhbHVlX2FzKHNlbGYudmFsdWVfdHlwZSksCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgcmVzdWx0LnZhbHVlKQotICAgICAgICAgICAgZWxpZiBjb25kaXRpb25hbF92YWx1ZS5jb25k
aXRpb25fbm9kZSBpcyBub3QgTm9uZToKLSAgICAgICAgICAgICAgICAjIEJsb3cgYXdheSB0aGUg
ZXhpc3RpbmcgY29uZGl0aW9uIGFuZCByZWJ1aWxkIGZyb20gc2NyYXRjaAotICAgICAgICAgICAg
ICAgICMgVGhpcyBpc24ndCBzdXJlIHRvIHdvcmsgaWYgd2UgaGF2ZSBhIGNvbmRpdGlvbmFsIGxh
dGVyIHRoYXQgbWF0Y2hlcwotICAgICAgICAgICAgICAgICMgdGhlc2UgdmFsdWVzIHRvbywgYnV0
IHdlIGNhbiBob3BlLCB2ZXJpZnkgdGhhdCB3ZSBnZXQgdGhlIHJlc3VsdHMKLSAgICAgICAgICAg
ICAgICAjIHdlIGV4cGVjdCwgYW5kIGlmIG5vdCBsZXQgYSBodW1hbiBzb3J0IGl0IG91dAotICAg
ICAgICAgICAgICAgIHNlbGYubm9kZS5yZW1vdmVfdmFsdWUoc2VsZi5wcm9wZXJ0eV9uYW1lLCBj
b25kaXRpb25hbF92YWx1ZSkKLSAgICAgICAgICAgICAgICBzZWxmLm5ldy5leHRlbmQocmVzdWx0
cykKLSAgICAgICAgICAgIGVsaWYgY29uZGl0aW9uYWxfdmFsdWUuY29uZGl0aW9uX25vZGUgaXMg
Tm9uZToKLSAgICAgICAgICAgICAgICBzZWxmLm5ldy5leHRlbmQocmVzdWx0IGZvciByZXN1bHQg
aW4gcmVzdWx0cwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiByZXN1bHQudmFs
dWUgIT0gdW5jb25kaXRpb25hbF92YWx1ZSkKLQotICAgICAgICAjIEl0IGlzIGFuIGludmFyaWFu
dCB0aGF0IG5vdGhpbmcgaW4gbmV3IG1hdGNoZXMgYW4gZXhpc3RpbmcKLSAgICAgICAgIyBjb25k
aXRpb24gZXhjZXB0IGZvciB0aGUgZGVmYXVsdCBjb25kaXRpb24KLSAgICAgICAgaWYgc2VsZi5u
ZXc6Ci0gICAgICAgICAgICB1cGRhdGVfZGVmYXVsdCwgbmV3X2RlZmF1bHRfdmFsdWUgPSBzZWxm
LnVwZGF0ZV9kZWZhdWx0KCkKLSAgICAgICAgICAgIGlmIHVwZGF0ZV9kZWZhdWx0OgotICAgICAg
ICAgICAgICAgIGlmIG5ld19kZWZhdWx0X3ZhbHVlICE9IHNlbGYuZGVmYXVsdF92YWx1ZToKLSAg
ICAgICAgICAgICAgICAgICAgc2VsZi5ub2RlLnNldChzZWxmLnByb3BlcnR5X25hbWUsCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi51cGRhdGVfdmFsdWUodW5jb25kaXRp
b25hbF92YWx1ZSwgbmV3X2RlZmF1bHRfdmFsdWUpLAotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGNvbmRpdGlvbj1Ob25lKQorICAgICAgICBjb25kaXRpb25zLCBlcnJvcnMgPSBz
ZWxmLnVwZGF0ZV9jb25kaXRpb25zKHByb3BlcnR5X3RyZWUsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZnVsbF91cGRhdGUpCisKKyAgICAgICAg
Zm9yIGUgaW4gZXJyb3JzOgorICAgICAgICAgICAgaWYgZGlzYWJsZV9pbnRlcm1pdHRlbnQ6Cisg
ICAgICAgICAgICAgICAgY29uZGl0aW9uID0gZS5jb25kLmNoaWxkcmVuWzBdIGlmIGUuY29uZCBl
bHNlIE5vbmUKKyAgICAgICAgICAgICAgICBtc2cgPSBkaXNhYmxlX2ludGVybWl0dGVudCBpZiBp
c2luc3RhbmNlKGRpc2FibGVfaW50ZXJtaXR0ZW50LCAoc3RyLCB1bmljb2RlKSkgZWxzZSAidW5z
dGFibGUiCisgICAgICAgICAgICAgICAgc2VsZi5ub2RlLnNldCgiZGlzYWJsZWQiLCBtc2csIGNv
bmRpdGlvbikKKyAgICAgICAgICAgICAgICBzZWxmLm5vZGUubmV3X2Rpc2FibGVkID0gVHJ1ZQog
ICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICBtc2cgPSAiQ29uZmxpY3RpbmcgbWV0
YWRhdGEgdmFsdWVzIGZvciAlcyIgJSAoCisgICAgICAgICAgICAgICAgICAgIHNlbGYubm9kZS5y
b290LnRlc3RfcGF0aCkKKyAgICAgICAgICAgICAgICBpZiBlLmNvbmQ6CisgICAgICAgICAgICAg
ICAgICAgIG1zZyArPSAiOiAlcyIgJSBzZXJpYWxpemUoZS5jb25kKS5zdHJpcCgpCisgICAgICAg
ICAgICAgICAgcHJpbnQobXNnKQorCisgICAgICAgICMgSWYgYWxsIHRoZSB2YWx1ZXMgbWF0Y2gg
cmVtb3ZlIGFsbCBjb25kaXRpb25hbHMKKyAgICAgICAgIyBUaGlzIGhhbmRsZXMgdGhlIGNhc2Ug
d2hlcmUgd2UgdXBkYXRlIGEgbnVtYmVyIG9mIGV4aXN0aW5nIGNvbmRpdGlvbnMgYW5kIHRoZXkK
KyAgICAgICAgIyBhbGwgZW5kIHVwIGxvb2tpbmcgbGlrZSB0aGUgcG9zdC11cGRhdGUgZGVmYXVs
dC4KKyAgICAgICAgbmV3X2RlZmF1bHQgPSBzZWxmLmRlZmF1bHRfdmFsdWUKKyAgICAgICAgaWYg
Y29uZGl0aW9ucyBhbmQgY29uZGl0aW9uc1stMV1bMF0gaXMgTm9uZToKKyAgICAgICAgICAgIG5l
d19kZWZhdWx0ID0gY29uZGl0aW9uc1stMV1bMV0KKyAgICAgICAgaWYgYWxsKGNvbmRpdGlvblsx
XSA9PSBuZXdfZGVmYXVsdCBmb3IgY29uZGl0aW9uIGluIGNvbmRpdGlvbnMpOgorICAgICAgICAg
ICAgY29uZGl0aW9ucyA9IFsoTm9uZSwgbmV3X2RlZmF1bHQpXQorCisgICAgICAgICMgRG9uJ3Qg
c2V0IHRoZSBkZWZhdWx0IHRvIHRoZSBjbGFzcyBkZWZhdWx0CisgICAgICAgIGlmIChjb25kaXRp
b25zIGFuZAorICAgICAgICAgICAgY29uZGl0aW9uc1stMV1bMF0gaXMgTm9uZSBhbmQKKyAgICAg
ICAgICAgIGNvbmRpdGlvbnNbLTFdWzFdID09IHNlbGYuZGVmYXVsdF92YWx1ZSk6CisgICAgICAg
ICAgICBzZWxmLm5vZGUubW9kaWZpZWQgPSBUcnVlCisgICAgICAgICAgICBjb25kaXRpb25zID0g
Y29uZGl0aW9uc1s6LTFdCisKKyAgICAgICAgaWYgc2VsZi5ub2RlLm1vZGlmaWVkOgorICAgICAg
ICAgICAgc2VsZi5ub2RlLmNsZWFyKHNlbGYucHJvcGVydHlfbmFtZSkKKworICAgICAgICAgICAg
Zm9yIGNvbmRpdGlvbiwgdmFsdWUgaW4gY29uZGl0aW9uczoKKyAgICAgICAgICAgICAgICBzZWxm
Lm5vZGUuc2V0KHNlbGYucHJvcGVydHlfbmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHNlbGYudG9faW5pX3ZhbHVlKHZhbHVlKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGNvbmRpdGlvbikKKworICAgIGRlZiB1cGRhdGVfY29uZGl0aW9ucyhzZWxmLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICBwcm9wZXJ0eV90cmVlLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICBmdWxsX3VwZGF0ZSk6CisgICAgICAgICMgVGhpcyBpcyBjb21wbGljYXRlZCBiZWNhdXNl
IHRoZSBleHBlY3RlZCBiZWhhdmlvdXIgaXMgY29tcGxleAorICAgICAgICAjIFRoZSBjb21wbGV4
aXR5IGFyaXNlcyBmcm9tIHRoZSBmYWN0IHRoYXQgdGhlcmUgYXJlIHR3byB3YXlzIG9mIHJ1bm5p
bmcKKyAgICAgICAgIyB0aGUgdG9vbCwgd2l0aCBhIGZ1bGwgc2V0IG9mIHJ1bnMgKGZ1bGxfdXBk
YXRlPVRydWUpIG9yIHdpdGggcGFydGlhbCBtZXRhZGF0YQorICAgICAgICAjIChmdWxsX3VwZGF0
ZT1GYWxzZSkuIEluIHRoZSBjYXNlIG9mIGEgZnVsbCB1cGRhdGUgdGhpbmdzIGFyZSByZWxhdGl2
ZWx5IHNpbXBsZToKKyAgICAgICAgIyAqIEFsbCBleGlzdGluZyBjb25kaXRpb25hbHMgYXJlIGln
bm9yZWQsIHdpdGggdGhlIGV4Y2VwdGlvbiBvZiBjb25kaXRpb25hbHMgdGhhdAorICAgICAgICAj
ICAgZGVwZW5kIG9uIHZhcmlhYmxlcyBub3QgdXNlZCBieSB0aGUgdXBkYXRlciwgd2hpY2ggYXJl
IHJldGFpbmVkIGFzLWlzCisgICAgICAgICMgKiBBbGwgY3JlYXRlZCBjb25kaXRpb25hbHMgYXJl
IGluZGVwZW5kZW50IG9mIGVhY2ggb3RoZXIgKGkuZS4gb3JkZXIgaXNuJ3QKKyAgICAgICAgIyAg
IGltcG9ydGFudCBpbiB0aGUgY3JlYXRlZCBjb25kaXRpb25hbHMpCisgICAgICAgICMgSW4gdGhl
IGNhc2Ugd2hlcmUgd2UgZG9uJ3QgaGF2ZSBhIGZ1bGwgc2V0IG9mIHJ1bnMsIHRoZSBleHBlY3Rl
ZCBiZWhhdmlvdXIKKyAgICAgICAgIyBpcyBtdWNoIGxlc3MgY2xlYXIuIFRoaXMgaXMgb2YgY291
cnNlIHRoZSBjb21tb24gY2FzZSBmb3Igd2hlbiBhIGRldmVsb3BlcgorICAgICAgICAjIHJ1bnMg
dGhlIHRlc3Qgb24gdGhlaXIgb3duIG1hY2hpbmUuIEluIHRoaXMgY2FzZSB0aGUgYXNzdW1wdGlv
bnMgYWJvdmUgYXJlIHVudHJ1ZQorICAgICAgICAjICogVGhlIGV4aXN0aW5nIGNvbmRpdGlvbnMg
bWF5IGJlIHJlcXVpcmVkIHRvIGhhbmRsZSBvdGhlciBwbGF0Zm9ybXMKKyAgICAgICAgIyAqIFRo
ZSBvcmRlciBvZiB0aGUgY29uZGl0aW9ucyBtYXkgYmUgaW1wb3J0YW50LCBzaW5jZSB3ZSBkb24n
dCBrbm93IGlmIHRoZXkgb3ZlcmxhcAorICAgICAgICAjICAgZS5nLiBgaWYgb3MgPT0gbGludXgg
YW5kIHZlcnNpb24gPT0gMTguMDRgIG92ZXJsYXBzIHdpdGggYGlmIChvcyAhPSB3aW4pYC4KKyAg
ICAgICAgIyBTbyBpbiB0aGUgY2FzZSB3ZSBoYXZlIGEgZnVsbCBzZXQgb2YgcnVucywgdGhlIHBy
b2Nlc3MgaXMgcHJldHR5IHNpbXBsZToKKyAgICAgICAgIyAqIEdlbmVyYXRlIHRoZSBjb25kaXRp
b25hbHMgZm9yIHRoZSBwcm9wZXJ0eV90cmVlCisgICAgICAgICMgKiBQaWNrIHRoZSBtb3N0IGNv
bW1vbiB2YWx1ZSBhcyB0aGUgZGVmYXVsdCBhbmQgYWRkIG9ubHkgdGhvc2UgY29uZGl0aW9ucwor
ICAgICAgICAjICAgbm90IG1hdGNoaW5nIHRoZSBkZWZhdWx0CisgICAgICAgICMgSW4gdGhlIGNh
c2Ugd2hlcmUgd2UgaGF2ZSBhIHBhcnRpYWwgc2V0IG9mIHJ1bnMsIHRoaW5ncyBhcmUgbW9yZSBj
b21wbGV4CisgICAgICAgICMgYW5kIG1vcmUgYmVzdC1lZmZvcnQKKyAgICAgICAgIyAqIEZvciBl
YWNoIGV4aXN0aW5nIGNvbmRpdGlvbmFsLCBzZWUgaWYgaXQgbWF0Y2hlcyBhbnkgb2YgdGhlIHJ1
biBpbmZvIHdlCisgICAgICAgICMgICBoYXZlLiBJbiBjYXNlcyB3aGVyZSBpdCBkb2VzIG1hdGNo
LCByZWNvcmQgdGhlIG5ldyByZXN1bHRzCisgICAgICAgICMgKiBXaGVyZSBhbGwgdGhlIG5ldyBy
ZXN1bHRzIG1hdGNoLCB1cGRhdGUgdGhlIHJpZ2h0IGhhbmQgc2lkZSBvZiB0aGF0CisgICAgICAg
ICMgICBjb25kaXRpb25hbCwgb3RoZXJ3aXNlIHJlbW92ZSBpdAorICAgICAgICAjICogSWYgdGhp
cyBsZWF2ZXMgbm90aGluZyBleGlzdGluZywgdGhlbiBwcm9jZWVkIGFzIHdpdGggdGhlIGZ1bGwg
dXBkYXRlCisgICAgICAgICMgKiBPdGhlcndpc2UgYWRkIGNvbmRpdGlvbmFscyBmb3IgdGhlIHJ1
bl9pbmZvIHRoYXQgZG9lc24ndCBtYXRjaCBhbnkKKyAgICAgICAgIyAgIHJlbWFpbmluZyBjb25k
aXRpb25zCisgICAgICAgIHByZXZfZGVmYXVsdCA9IE5vbmUKKworICAgICAgICBjdXJyZW50X2Nv
bmRpdGlvbnMgPSBzZWxmLm5vZGUuZ2V0X2NvbmRpdGlvbnMoc2VsZi5wcm9wZXJ0eV9uYW1lKQor
CisgICAgICAgICMgSWdub3JlIHRoZSBjdXJyZW50IGRlZmF1bHQgdmFsdWUKKyAgICAgICAgaWYg
Y3VycmVudF9jb25kaXRpb25zIGFuZCBjdXJyZW50X2NvbmRpdGlvbnNbLTFdLmNvbmRpdGlvbl9u
b2RlIGlzIE5vbmU6CisgICAgICAgICAgICBzZWxmLm5vZGUubW9kaWZpZWQgPSBUcnVlCisgICAg
ICAgICAgICBwcmV2X2RlZmF1bHQgPSBjdXJyZW50X2NvbmRpdGlvbnNbLTFdLnZhbHVlCisgICAg
ICAgICAgICBjdXJyZW50X2NvbmRpdGlvbnMgPSBjdXJyZW50X2NvbmRpdGlvbnNbOi0xXQorCisg
ICAgICAgICMgSWYgdGhlcmUgYXJlbid0IGFueSBjdXJyZW50IGNvbmRpdGlvbnMsIG9yIHRoZXJl
IGlzIGp1c3QgYSBkZWZhdWx0CisgICAgICAgICMgdmFsdWUgZm9yIGFsbCBydW5faW5mbywgcHJv
Y2VlZCBhcyBmb3IgYSBmdWxsIHVwZGF0ZQorICAgICAgICBpZiBub3QgY3VycmVudF9jb25kaXRp
b25zOgorICAgICAgICAgICAgcmV0dXJuIHNlbGYuX3VwZGF0ZV9jb25kaXRpb25zX2Z1bGwocHJv
cGVydHlfdHJlZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHByZXZfZGVmYXVsdD1wcmV2X2RlZmF1bHQpCisKKyAgICAgICAgY29uZGl0aW9ucyA9IFtd
CisgICAgICAgIGVycm9ycyA9IFtdCisKKyAgICAgICAgcnVuX2luZm9faW5kZXggPSB7cnVuX2lu
Zm86IG5vZGUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yIG5vZGUgaW4gcHJvcGVydHlf
dHJlZQorICAgICAgICAgICAgICAgICAgICAgICAgICBmb3IgcnVuX2luZm8gaW4gbm9kZS5ydW5f
aW5mb30KKworICAgICAgICBub2RlX2J5X3J1bl9pbmZvID0ge3J1bl9pbmZvOiBub2RlCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgZm9yIChydW5faW5mbywgbm9kZSkgaW4gaXRlcml0ZW1z
KHJ1bl9pbmZvX2luZGV4KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIG5vZGUucmVz
dWx0X3ZhbHVlc30KKworICAgICAgICBydW5faW5mb19ieV9jb25kaXRpb24gPSBzZWxmLnJ1bl9p
bmZvX2J5X2NvbmRpdGlvbihydW5faW5mb19pbmRleCwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3VycmVudF9jb25kaXRpb25zKQor
CisgICAgICAgIHJ1bl9pbmZvX3dpdGhfY29uZGl0aW9uID0gc2V0KCkKKworICAgICAgICBpZiBm
dWxsX3VwZGF0ZToKKyAgICAgICAgICAgICMgRXZlbiBmb3IgYSBmdWxsIHVwZGF0ZSB3ZSBuZWVk
IHRvIGtlZXAgaGFuZC13cml0dGVuIGNvbmRpdGlvbnMgbm90CisgICAgICAgICAgICAjIHVzaW5n
IHRoZSBwcm9wZXJ0aWVzIHdlJ3ZlIHNwZWNpZmllZCBhbmQgbm90IG1hdGNoaW5nIGFueSBydW5f
aW5mbworICAgICAgICAgICAgdG9wX2xldmVsX3Byb3BzLCBkZXBlbmRlbnRfcHJvcHMgPSBzZWxm
Lm5vZGUucm9vdC5ydW5faW5mb19wcm9wZXJ0aWVzCisgICAgICAgICAgICB1cGRhdGVfcHJvcGVy
dGllcyA9IHNldCh0b3BfbGV2ZWxfcHJvcHMpCisgICAgICAgICAgICBmb3IgaXRlbSBpbiBpdGVy
dmFsdWVzKGRlcGVuZGVudF9wcm9wcyk6CisgICAgICAgICAgICAgICAgdXBkYXRlX3Byb3BlcnRp
ZXMgfD0gc2V0KGRlcGVuZGVudF9wcm9wcykKKyAgICAgICAgICAgIGZvciBjb25kaXRpb24gaW4g
Y3VycmVudF9jb25kaXRpb25zOgorICAgICAgICAgICAgICAgIGlmICgobm90IGNvbmRpdGlvbi52
YXJpYWJsZXMuaXNzdWJzZXQodXBkYXRlX3Byb3BlcnRpZXMpIGFuZAorICAgICAgICAgICAgICAg
ICAgICAgbm90IHJ1bl9pbmZvX2J5X2NvbmRpdGlvbltjb25kaXRpb25dKSk6CisgICAgICAgICAg
ICAgICAgICAgIGNvbmRpdGlvbnMuYXBwZW5kKChjb25kaXRpb24uY29uZGl0aW9uX25vZGUsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmZyb21faW5pX3ZhbHVl
KGNvbmRpdGlvbi52YWx1ZSkpKQorCisgICAgICAgICAgICBuZXdfY29uZGl0aW9ucywgZXJyb3Jz
ID0gc2VsZi5fdXBkYXRlX2NvbmRpdGlvbnNfZnVsbChwcm9wZXJ0eV90cmVlLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
cHJldl9kZWZhdWx0PXByZXZfZGVmYXVsdCkKKyAgICAgICAgICAgIGNvbmRpdGlvbnMuZXh0ZW5k
KG5ld19jb25kaXRpb25zKQorICAgICAgICAgICAgcmV0dXJuIGNvbmRpdGlvbnMsIGVycm9ycwor
CisgICAgICAgICMgUmV0YWluIGV4aXN0aW5nIGNvbmRpdGlvbnMgaWYgdGhleSBtYXRjaCB0aGUg
dXBkYXRlZCB2YWx1ZXMKKyAgICAgICAgZm9yIGNvbmRpdGlvbiBpbiBjdXJyZW50X2NvbmRpdGlv
bnM6CisgICAgICAgICAgICAjIEFsbCBydW5faW5mbyB0aGF0IGlzbid0IGhhbmRsZWQgYnkgc29t
ZSBwcmV2aW91cyBjb25kaXRpb24KKyAgICAgICAgICAgIGFsbF9ydW5faW5mb3NfY29uZGl0aW9u
ID0gcnVuX2luZm9fYnlfY29uZGl0aW9uW2NvbmRpdGlvbl0KKyAgICAgICAgICAgIHJ1bl9pbmZv
cyA9IHtpdGVtIGZvciBpdGVtIGluIGFsbF9ydW5faW5mb3NfY29uZGl0aW9uCisgICAgICAgICAg
ICAgICAgICAgICAgICAgaWYgaXRlbSBub3QgaW4gcnVuX2luZm9fd2l0aF9jb25kaXRpb259CisK
KyAgICAgICAgICAgIGlmIG5vdCBydW5faW5mb3M6CisgICAgICAgICAgICAgICAgIyBSZXRhaW4g
ZXhpc3RpbmcgY29uZGl0aW9ucyB0aGF0IGRvbid0IG1hdGNoIGFueXRoaW5nIGluIHRoZSB1cGRh
dGUKKyAgICAgICAgICAgICAgICBjb25kaXRpb25zLmFwcGVuZCgoY29uZGl0aW9uLmNvbmRpdGlv
bl9ub2RlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmZyb21faW5p
X3ZhbHVlKGNvbmRpdGlvbi52YWx1ZSkpKQorICAgICAgICAgICAgICAgIGNvbnRpbnVlCisKKyAg
ICAgICAgICAgICMgU2V0IG9mIG5vZGVzIGluIHRoZSB1cGRhdGVkIHRyZWUgdGhhdCBtYXRjaCB0
aGUgc2FtZSBydW5faW5mbyB2YWx1ZXMgYXMgdGhlCisgICAgICAgICAgICAjIGN1cnJlbnQgZXhp
c3Rpbmcgbm9kZQorICAgICAgICAgICAgbm9kZXMgPSBbbm9kZV9ieV9ydW5faW5mb1tydW5faW5m
b10gZm9yIHJ1bl9pbmZvIGluIHJ1bl9pbmZvcworICAgICAgICAgICAgICAgICAgICAgaWYgcnVu
X2luZm8gaW4gbm9kZV9ieV9ydW5faW5mb10KKyAgICAgICAgICAgICMgSWYgYWxsIHRoZSB2YWx1
ZXMgYXJlIHRoZSBzYW1lLCB1cGRhdGUgdGhlIHZhbHVlCisgICAgICAgICAgICBpZiBub2RlcyBh
bmQgYWxsKHNldChub2RlLnJlc3VsdF92YWx1ZXMua2V5cygpKSA9PSBzZXQobm9kZXNbMF0ucmVz
dWx0X3ZhbHVlcy5rZXlzKCkpIGZvciBub2RlIGluIG5vZGVzKToKKyAgICAgICAgICAgICAgICBj
dXJyZW50X3ZhbHVlID0gc2VsZi5mcm9tX2luaV92YWx1ZShjb25kaXRpb24udmFsdWUpCiAgICAg
ICAgICAgICAgICAgdHJ5OgotICAgICAgICAgICAgICAgICAgICBzZWxmLmFkZF9uZXcodW5jb25k
aXRpb25hbF92YWx1ZSwgc3RhYmlsaXR5KQotICAgICAgICAgICAgICAgIGV4Y2VwdCBVcGRhdGVF
cnJvciBhcyBlOgotICAgICAgICAgICAgICAgICAgICBwcmludCgiJXMgZm9yICVzLCBjYW5ub3Qg
dXBkYXRlICVzIiAlIChlLCBzZWxmLm5vZGUucm9vdC50ZXN0X3BhdGgsCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYucHJvcGVy
dHlfbmFtZSkpCi0KLSAgICAgICAgIyBSZW1vdmUgY2FzZXMgd2hlcmUgdGhlIHZhbHVlIG1hdGNo
ZXMgdGhlIGRlZmF1bHQKLSAgICAgICAgaWYgKHNlbGYucHJvcGVydHlfbmFtZSBpbiBzZWxmLm5v
ZGUuX2RhdGEgYW5kCi0gICAgICAgICAgICBsZW4oc2VsZi5ub2RlLl9kYXRhW3NlbGYucHJvcGVy
dHlfbmFtZV0pID4gMCBhbmQKLSAgICAgICAgICAgIHNlbGYubm9kZS5fZGF0YVtzZWxmLnByb3Bl
cnR5X25hbWVdWy0xXS5jb25kaXRpb25fbm9kZSBpcyBOb25lIGFuZAotICAgICAgICAgICAgc2Vs
Zi5ub2RlLl9kYXRhW3NlbGYucHJvcGVydHlfbmFtZV1bLTFdLnZhbHVlX2FzKHNlbGYudmFsdWVf
dHlwZSkgPT0gc2VsZi5kZWZhdWx0X3ZhbHVlKToKLQotICAgICAgICAgICAgc2VsZi5ub2RlLnJl
bW92ZV92YWx1ZShzZWxmLnByb3BlcnR5X25hbWUsIHNlbGYubm9kZS5fZGF0YVtzZWxmLnByb3Bl
cnR5X25hbWVdWy0xXSkKLQotICAgICAgICAjIFJlbW92ZSBlbXB0eSBwcm9wZXJ0aWVzCi0gICAg
ICAgIGlmIChzZWxmLnByb3BlcnR5X25hbWUgaW4gc2VsZi5ub2RlLl9kYXRhIGFuZCBsZW4oc2Vs
Zi5ub2RlLl9kYXRhW3NlbGYucHJvcGVydHlfbmFtZV0pID09IDApOgotICAgICAgICAgICAgZm9y
IGNoaWxkIGluIHNlbGYubm9kZS5jaGlsZHJlbjoKLSAgICAgICAgICAgICAgICBpZiAoaXNpbnN0
YW5jZShjaGlsZCwgS2V5VmFsdWVOb2RlKSBhbmQgY2hpbGQuZGF0YSA9PSBzZWxmLnByb3BlcnR5
X25hbWUpOgotICAgICAgICAgICAgICAgICAgICBjaGlsZC5yZW1vdmUoKQotICAgICAgICAgICAg
ICAgICAgICBicmVhawotCi0gICAgZGVmIHVwZGF0ZV9kZWZhdWx0KHNlbGYpOgotICAgICAgICAi
IiJHZXQgdGhlIHVwZGF0ZWQgZGVmYXVsdCB2YWx1ZSBmb3IgdGhlIHByb3BlcnR5IChpLmUuIHRo
ZSBvbmUgY2hvc2VuIHdoZW4gbm8gY29uZGl0aW9ucyBtYXRjaCkuCi0KLSAgICAgICAgOnJldHVy
bnM6ICh1cGRhdGUsIG5ld19kZWZhdWx0X3ZhbHVlKSB3aGVyZSB1cGRhdGVkIGlzIGEgYm9vbCBp
bmRpY2F0aW5nIHdoZXRoZXIgdGhlIHByb3BlcnR5Ci0gICAgICAgICAgICAgICAgICBzaG91bGQg
YmUgdXBkYXRlZCwgYW5kIG5ld19kZWZhdWx0X3ZhbHVlIGlzIHRoZSB2YWx1ZSB0byBzZXQgaWYg
aXQgc2hvdWxkLiIiIgotICAgICAgICByYWlzZSBOb3RJbXBsZW1lbnRlZEVycm9yCisgICAgICAg
ICAgICAgICAgICAgIG5ld192YWx1ZSA9IHNlbGYudXBkYXRlZF92YWx1ZShjdXJyZW50X3ZhbHVl
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9k
ZXNbMF0ucmVzdWx0X3ZhbHVlcykKKyAgICAgICAgICAgICAgICBleGNlcHQgQ29uZGl0aW9uRXJy
b3IgYXMgZToKKyAgICAgICAgICAgICAgICAgICAgZXJyb3JzLmFwcGVuZChlKQorICAgICAgICAg
ICAgICAgICAgICBjb250aW51ZQorICAgICAgICAgICAgICAgIGlmIG5ld192YWx1ZSAhPSBjdXJy
ZW50X3ZhbHVlOgorICAgICAgICAgICAgICAgICAgICBzZWxmLm5vZGUubW9kaWZpZWQgPSBUcnVl
CisgICAgICAgICAgICAgICAgY29uZGl0aW9ucy5hcHBlbmQoKGNvbmRpdGlvbi5jb25kaXRpb25f
bm9kZSwgbmV3X3ZhbHVlKSkKKyAgICAgICAgICAgICAgICBydW5faW5mb193aXRoX2NvbmRpdGlv
biB8PSBzZXQocnVuX2luZm9zKQorICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICAj
IERvbid0IGFwcGVuZCB0aGlzIGNvbmRpdGlvbgorICAgICAgICAgICAgICAgIHNlbGYubm9kZS5t
b2RpZmllZCA9IFRydWUKKworICAgICAgICBuZXdfY29uZGl0aW9ucywgbmV3X2Vycm9ycyA9IHNl
bGYuYnVpbGRfdHJlZV9jb25kaXRpb25zKHByb3BlcnR5X3RyZWUsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcnVuX2luZm9f
d2l0aF9jb25kaXRpb24sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgcHJldl9kZWZhdWx0KQorICAgICAgICBpZiBuZXdfY29u
ZGl0aW9uczoKKyAgICAgICAgICAgIHNlbGYubm9kZS5tb2RpZmllZCA9IFRydWUKKworICAgICAg
ICBjb25kaXRpb25zLmV4dGVuZChuZXdfY29uZGl0aW9ucykKKyAgICAgICAgZXJyb3JzLmV4dGVu
ZChuZXdfZXJyb3JzKQorCisgICAgICAgIHJldHVybiBjb25kaXRpb25zLCBlcnJvcnMKKworICAg
IGRlZiBfdXBkYXRlX2NvbmRpdGlvbnNfZnVsbChzZWxmLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBwcm9wZXJ0eV90cmVlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBwcmV2X2RlZmF1bHQ9Tm9uZSk6CisgICAgICAgIHNlbGYubm9kZS5tb2RpZmllZCA9IFRydWUK
KyAgICAgICAgY29uZGl0aW9ucywgZXJyb3JzID0gc2VsZi5idWlsZF90cmVlX2NvbmRpdGlvbnMo
cHJvcGVydHlfdHJlZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgc2V0KCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHByZXZfZGVmYXVsdCkKKworICAgICAgICByZXR1cm4gY29u
ZGl0aW9ucywgZXJyb3JzCisKKyAgICBkZWYgYnVpbGRfdHJlZV9jb25kaXRpb25zKHNlbGYsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9wZXJ0eV90cmVlLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgcnVuX2luZm9fd2l0aF9jb25kaXRpb24sCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBwcmV2X2RlZmF1bHQ9Tm9uZSk6CisgICAgICAgIGNvbmRpdGlvbnMg
PSBbXQorICAgICAgICBlcnJvcnMgPSBbXQorCisgICAgICAgIHZhbHVlX2NvdW50ID0gZGVmYXVs
dGRpY3QoaW50KQorCisgICAgICAgIGRlZiB0b19jb3VudF92YWx1ZSh2KToKKyAgICAgICAgICAg
IGlmIHYgaXMgTm9uZToKKyAgICAgICAgICAgICAgICByZXR1cm4gdgorICAgICAgICAgICAgIyBO
ZWVkIHRvIGNvdW50IHRoZSB2YWx1ZXMgaW4gYSBoYXNoYWJsZSB0eXBlCisgICAgICAgICAgICBj
b3VudF92YWx1ZSA9IHNlbGYudG9faW5pX3ZhbHVlKHYpCisgICAgICAgICAgICBpZiBpc2luc3Rh
bmNlKGNvdW50X3ZhbHVlLCBsaXN0KToKKyAgICAgICAgICAgICAgICBjb3VudF92YWx1ZSA9IHR1
cGxlKGNvdW50X3ZhbHVlKQorICAgICAgICAgICAgcmV0dXJuIGNvdW50X3ZhbHVlCisKKworICAg
ICAgICBxdWV1ZSA9IGRlcXVlKFsocHJvcGVydHlfdHJlZSwgW10pXSkKKyAgICAgICAgd2hpbGUg
cXVldWU6CisgICAgICAgICAgICBub2RlLCBwYXJlbnRzID0gcXVldWUucG9wbGVmdCgpCisgICAg
ICAgICAgICBwYXJlbnRzX2FuZF9zZWxmID0gcGFyZW50cyArIFtub2RlXQorICAgICAgICAgICAg
aWYgbm9kZS5yZXN1bHRfdmFsdWVzIGFuZCBhbnkocnVuX2luZm8gbm90IGluIHJ1bl9pbmZvX3dp
dGhfY29uZGl0aW9uCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBm
b3IgcnVuX2luZm8gaW4gbm9kZS5ydW5faW5mbyk6CisgICAgICAgICAgICAgICAgcHJvcF9zZXQg
PSBbKGl0ZW0ucHJvcCwgaXRlbS52YWx1ZSkgZm9yIGl0ZW0gaW4gcGFyZW50c19hbmRfc2VsZiBp
ZiBpdGVtLnByb3BdCisgICAgICAgICAgICAgICAgdmFsdWUgPSBub2RlLnJlc3VsdF92YWx1ZXMK
KyAgICAgICAgICAgICAgICBlcnJvciA9IE5vbmUKKyAgICAgICAgICAgICAgICBpZiBwYXJlbnRz
OgorICAgICAgICAgICAgICAgICAgICB0cnk6CisgICAgICAgICAgICAgICAgICAgICAgICB2YWx1
ZSA9IHNlbGYudXBkYXRlZF92YWx1ZShOb25lLCB2YWx1ZSkKKyAgICAgICAgICAgICAgICAgICAg
ZXhjZXB0IENvbmRpdGlvbkVycm9yOgorICAgICAgICAgICAgICAgICAgICAgICAgZXhwciA9IG1h
a2VfZXhwcihwcm9wX3NldCwgdmFsdWUpCisgICAgICAgICAgICAgICAgICAgICAgICBlcnJvciA9
IENvbmRpdGlvbkVycm9yKGV4cHIpCisgICAgICAgICAgICAgICAgICAgIGV4cHIgPSBtYWtlX2V4
cHIocHJvcF9zZXQsIHZhbHVlKQorICAgICAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAg
ICAgICAgICMgVGhlIHJvb3Qgbm9kZSBuZWVkcyBzcGVjaWFsIGhhbmRsaW5nCisgICAgICAgICAg
ICAgICAgICAgIGV4cHIgPSBOb25lCisgICAgICAgICAgICAgICAgICAgIHRyeToKKyAgICAgICAg
ICAgICAgICAgICAgICAgIHZhbHVlID0gc2VsZi51cGRhdGVkX3ZhbHVlKHNlbGYudW5jb25kaXRp
b25hbF92YWx1ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHZhbHVlKQorICAgICAgICAgICAgICAgICAgICBleGNlcHQgQ29uZGl0aW9uRXJyb3I6
CisgICAgICAgICAgICAgICAgICAgICAgICBlcnJvciA9IENvbmRpdGlvbkVycm9yKGV4cHIpCisg
ICAgICAgICAgICAgICAgICAgICAgICAjIElmIHdlIGdvdCBhbiBlcnJvciBmb3IgdGhlIHJvb3Qg
bm9kZSwgcmUtYWRkIHRoZSBwcmV2aW91cworICAgICAgICAgICAgICAgICAgICAgICAgIyBkZWZh
dWx0IHZhbHVlCisgICAgICAgICAgICAgICAgICAgICAgICBpZiBwcmV2X2RlZmF1bHQ6CisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgY29uZGl0aW9ucy5hcHBlbmQoKE5vbmUsIHByZXZfZGVm
YXVsdCkpCisgICAgICAgICAgICAgICAgaWYgZXJyb3IgaXMgTm9uZToKKyAgICAgICAgICAgICAg
ICAgICAgY291bnRfdmFsdWUgPSB0b19jb3VudF92YWx1ZSh2YWx1ZSkKKyAgICAgICAgICAgICAg
ICAgICAgdmFsdWVfY291bnRbY291bnRfdmFsdWVdICs9IGxlbihub2RlLnJ1bl9pbmZvKQorCisg
ICAgICAgICAgICAgICAgaWYgZXJyb3IgaXMgTm9uZToKKyAgICAgICAgICAgICAgICAgICAgY29u
ZGl0aW9ucy5hcHBlbmQoKGV4cHIsIHZhbHVlKSkKKyAgICAgICAgICAgICAgICBlbHNlOgorICAg
ICAgICAgICAgICAgICAgICBlcnJvcnMuYXBwZW5kKGVycm9yKQogCi0gICAgZGVmIGFkZF9uZXco
c2VsZiwgdW5jb25kaXRpb25hbF92YWx1ZSwgc3RhYmlsaXR5KToKLSAgICAgICAgIiIiQWRkIG5l
dyBjb25kaXRpb25hbCB2YWx1ZXMgZm9yIHRoZSBwcm9wZXJ0eS4KKyAgICAgICAgICAgIGZvciBj
aGlsZCBpbiBub2RlLmNoaWxkcmVuOgorICAgICAgICAgICAgICAgIHF1ZXVlLmFwcGVuZCgoY2hp
bGQsIHBhcmVudHNfYW5kX3NlbGYpKQogCi0gICAgICAgIFN1YmNsYXNzZXMgbmVlZCBub3QgaW1w
bGVtZW50IHRoaXMgaWYgdGhleSBvbmx5IGV2ZXIgdXBkYXRlIHRoZSBkZWZhdWx0IHZhbHVlLiIi
IgotICAgICAgICByYWlzZSBOb3RJbXBsZW1lbnRlZEVycm9yCisgICAgICAgIGNvbmRpdGlvbnMg
PSBjb25kaXRpb25zWzo6LTFdCiAKLSAgICBkZWYgdXBkYXRlX3ZhbHVlKHNlbGYsIG9sZF92YWx1
ZSwgbmV3X3ZhbHVlKToKLSAgICAgICAgIiIiR2V0IGEgdmFsdWUgdG8gc2V0IG9uIHRoZSBwcm9w
ZXJ0eSwgZ2l2ZW4gaXRzIHByZXZpb3VzIHZhbHVlIGFuZCB0aGUgbmV3IHZhbHVlIGZyb20gbG9n
cy4KKyAgICAgICAgIyBJZiB3ZSBoYXZlbid0IHNldCBhIGRlZmF1bHQgY29uZGl0aW9uLCBhZGQg
b25lIGFuZCByZW1vdmUgYWxsIHRoZSBjb25kaXRpb25zCisgICAgICAgICMgd2l0aCB0aGUgc2Ft
ZSB2YWx1ZQorICAgICAgICBpZiB2YWx1ZV9jb3VudCBhbmQgKG5vdCBjb25kaXRpb25zIG9yIGNv
bmRpdGlvbnNbLTFdWzBdIGlzIG5vdCBOb25lKToKKyAgICAgICAgICAgICMgU29ydCBpbiBvcmRl
ciBvZiBvY2N1cmVuY2UsIHByaW9yaXRpc2luZyB2YWx1ZXMgdGhhdCBtYXRjaCB0aGUgY2xhc3Mg
ZGVmYXVsdAorICAgICAgICAgICAgIyBvciB0aGUgcHJldmlvdXMgZGVmYXVsdAorICAgICAgICAg
ICAgY2xzX2RlZmF1bHQgPSB0b19jb3VudF92YWx1ZShzZWxmLmRlZmF1bHRfdmFsdWUpCisgICAg
ICAgICAgICBwcmV2X2RlZmF1bHQgPSB0b19jb3VudF92YWx1ZShwcmV2X2RlZmF1bHQpCisgICAg
ICAgICAgICBjb21tb25lc3RfdmFsdWUgPSBtYXgodmFsdWVfY291bnQsIGtleT1sYW1iZGEgeDoo
dmFsdWVfY291bnQuZ2V0KHgpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHggPT0gY2xzX2RlZmF1bHQsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeCA9PSBwcmV2
X2RlZmF1bHQpKQorICAgICAgICAgICAgaWYgaXNpbnN0YW5jZShjb21tb25lc3RfdmFsdWUsIHR1
cGxlKToKKyAgICAgICAgICAgICAgICBjb21tb25lc3RfdmFsdWUgPSBsaXN0KGNvbW1vbmVzdF92
YWx1ZSkKKyAgICAgICAgICAgIGNvbW1vbmVzdF92YWx1ZSA9IHNlbGYuZnJvbV9pbmlfdmFsdWUo
Y29tbW9uZXN0X3ZhbHVlKQorICAgICAgICAgICAgY29uZGl0aW9ucyA9IFtpdGVtIGZvciBpdGVt
IGluIGNvbmRpdGlvbnMgaWYgaXRlbVsxXSAhPSBjb21tb25lc3RfdmFsdWVdCisgICAgICAgICAg
ICBjb25kaXRpb25zLmFwcGVuZCgoTm9uZSwgY29tbW9uZXN0X3ZhbHVlKSkKIAotICAgICAgICBC
eSBkZWZhdWx0IHRoaXMganVzdCByZXR1cm5zIHRoZSBuZXcgdmFsdWUsIGJ1dCBvdmVycmlkaW5n
IGlzIHVzZWZ1bCBpbiBjYXNlcwotICAgICAgICB3aGVyZSB3ZSB3YW50IHRoZSBuZXcgdmFsdWUg
dG8gYmUgc29tZSBmdW5jdGlvbiBvZiBib3RoIG9sZCBhbmQgbmV3IGUuZy4gbWF4KG9sZF92YWx1
ZSwgbmV3X3ZhbHVlKSIiIgotICAgICAgICByZXR1cm4gbmV3X3ZhbHVlCisgICAgICAgIHJldHVy
biBjb25kaXRpb25zLCBlcnJvcnMKIAogCiBjbGFzcyBFeHBlY3RlZFVwZGF0ZShQcm9wZXJ0eVVw
ZGF0ZSk6CiAgICAgcHJvcGVydHlfbmFtZSA9ICJleHBlY3RlZCIKKyAgICBwcm9wZXJ0eV9idWls
ZGVyID0gYnVpbGRfY29uZGl0aW9uYWxfdHJlZQogCiAgICAgZGVmIGNoZWNrX2RlZmF1bHQoc2Vs
ZiwgcmVzdWx0KToKICAgICAgICAgaWYgc2VsZi5kZWZhdWx0X3ZhbHVlIGlzIG5vdCBOb25lOgpA
QCAtNDA1LDEwNyArNjcwLDEyMyBAQCBjbGFzcyBFeHBlY3RlZFVwZGF0ZShQcm9wZXJ0eVVwZGF0
ZSk6CiAgICAgICAgIGVsc2U6CiAgICAgICAgICAgICBzZWxmLmRlZmF1bHRfdmFsdWUgPSByZXN1
bHQuZGVmYXVsdF9leHBlY3RlZAogCi0gICAgZGVmIGdldF92YWx1ZShzZWxmLCBpbl92YWx1ZSk6
Ci0gICAgICAgIHJldHVybiBpbl92YWx1ZS5zdGF0dXMKLQotICAgIGRlZiB1cGRhdGVfZGVmYXVs
dChzZWxmKToKLSAgICAgICAgdXBkYXRlX2RlZmF1bHQgPSBhbGwoc2VsZi5uZXdbMF0udmFsdWUg
PT0gcmVzdWx0LnZhbHVlCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvciByZXN1bHQg
aW4gc2VsZi5uZXcpIGFuZCBub3Qgc2VsZi51cGRhdGVkCi0gICAgICAgIG5ld192YWx1ZSA9IHNl
bGYubmV3WzBdLnZhbHVlCi0gICAgICAgIHJldHVybiB1cGRhdGVfZGVmYXVsdCwgbmV3X3ZhbHVl
CisgICAgZGVmIGZyb21fcmVzdWx0X3ZhbHVlKHNlbGYsIHJlc3VsdCk6CisgICAgICAgICMgV2hl
biB3ZSBhcmUgdXBkYXRpbmcgaW50ZXJtaXR0ZW50cywgd2UgbmVlZCB0byBrZWVwIGEgcmVjb3Jk
IG9mIGFueSBleGlzdGluZworICAgICAgICAjIGludGVybWl0dGVudHMgdG8gcGFzcyBvbiB3aGVu
IGJ1aWxkaW5nIHRoZSBwcm9wZXJ0eSB0cmVlIGFuZCBtYXRjaGluZyBzdGF0dXNlcyBhbmQKKyAg
ICAgICAgIyBpbnRlcm1pdHRlbnRzIHRvIHRoZSBjb3JyZWN0IHJ1biBpbmZvIC0gIHRoaXMgaXMg
c28gd2UgY2FuIGFkZCB0aGVtIGJhY2sgaW50byB0aGUKKyAgICAgICAgIyBtZXRhZGF0YSBhbGln
bmVkIHdpdGggdGhlIHJpZ2h0IGNvbmRpdGlvbnMsIHVubGVzcyBzcGVjaWZpZWQgbm90IHRvIHdp
dGgKKyAgICAgICAgIyBzZWxmLnJlbW92ZV9pbnRlcm1pdHRlbnQuCisgICAgICAgICMgVGhlIChz
dGF0dXMsIGtub3duX2ludGVybWl0dGVudCkgdHVwbGUgaXMgY291bnRlZCB3aGVuIHRoZSBwcm9w
ZXJ0eSB0cmVlIGlzIGJ1aWx0LCBidXQKKyAgICAgICAgIyB0aGUgY291bnQgdmFsdWUgb25seSBh
cHBsaWVzIHRvIHRoZSBmaXJzdCBpdGVtIGluIHRoZSB0dXBsZSwgdGhlIHN0YXR1cyBmcm9tIHRo
YXQgcnVuLAorICAgICAgICAjIHdoZW4gcGFzc2VkIHRvIGB1cGRhdGVkX3ZhbHVlYC4KKyAgICAg
ICAgaWYgKG5vdCBzZWxmLnVwZGF0ZV9pbnRlcm1pdHRlbnQgb3IKKyAgICAgICAgICAgIHNlbGYu
cmVtb3ZlX2ludGVybWl0dGVudCBvcgorICAgICAgICAgICAgbm90IHJlc3VsdC5rbm93bl9pbnRl
cm1pdHRlbnQpOgorICAgICAgICAgICAgcmV0dXJuIHJlc3VsdC5zdGF0dXMKKyAgICAgICAgcmV0
dXJuIHJlc3VsdC5zdGF0dXMgKyByZXN1bHQua25vd25faW50ZXJtaXR0ZW50CisKKyAgICBkZWYg
dG9faW5pX3ZhbHVlKHNlbGYsIHZhbHVlKToKKyAgICAgICAgaWYgaXNpbnN0YW5jZSh2YWx1ZSwg
KGxpc3QsIHR1cGxlKSk6CisgICAgICAgICAgICByZXR1cm4gW3N0cihpdGVtKSBmb3IgaXRlbSBp
biB2YWx1ZV0KKyAgICAgICAgcmV0dXJuIHN0cih2YWx1ZSkKKworICAgIGRlZiB1cGRhdGVkX3Zh
bHVlKHNlbGYsIGN1cnJlbnQsIG5ldyk6CisgICAgICAgIGlmIGxlbihuZXcpID4gMSBhbmQgbm90
IHNlbGYudXBkYXRlX2ludGVybWl0dGVudCBhbmQgbm90IGlzaW5zdGFuY2UoY3VycmVudCwgbGlz
dCk6CisgICAgICAgICAgICByYWlzZSBDb25kaXRpb25FcnJvcgogCi0gICAgZGVmIGFkZF9uZXco
c2VsZiwgdW5jb25kaXRpb25hbF92YWx1ZSwgc3RhYmlsaXR5KToKLSAgICAgICAgdHJ5OgotICAg
ICAgICAgICAgY29uZGl0aW9uYWxzID0gZ3JvdXBfY29uZGl0aW9uYWxzKAotICAgICAgICAgICAg
ICAgIHNlbGYubmV3LAotICAgICAgICAgICAgICAgIHByb3BlcnR5X29yZGVyPXNlbGYubm9kZS5y
b290LnByb3BlcnR5X29yZGVyLAotICAgICAgICAgICAgICAgIGJvb2xlYW5fcHJvcGVydGllcz1z
ZWxmLm5vZGUucm9vdC5ib29sZWFuX3Byb3BlcnRpZXMpCi0gICAgICAgIGV4Y2VwdCBDb25kaXRp
b25FcnJvciBhcyBlOgotICAgICAgICAgICAgaWYgc3RhYmlsaXR5IGlzIG5vdCBOb25lOgotICAg
ICAgICAgICAgICAgIHNlbGYubm9kZS5zZXQoImRpc2FibGVkIiwgc3RhYmlsaXR5IG9yICJ1bnN0
YWJsZSIsIGUuY29uZC5jaGlsZHJlblswXSkKLSAgICAgICAgICAgICAgICBzZWxmLm5vZGUubmV3
X2Rpc2FibGVkID0gVHJ1ZQorICAgICAgICBjb3VudHMgPSB7fQorICAgICAgICBmb3Igc3RhdHVz
LCBjb3VudCBpbiBpdGVyaXRlbXMobmV3KToKKyAgICAgICAgICAgIGlmIGlzaW5zdGFuY2Uoc3Rh
dHVzLCB0dXBsZSk6CisgICAgICAgICAgICAgICAgY291bnRzW3N0YXR1c1swXV0gPSBjb3VudAor
ICAgICAgICAgICAgICAgIGNvdW50cy51cGRhdGUoe2ludGVybWl0dGVudDogMCBmb3IgaW50ZXJt
aXR0ZW50IGluIHN0YXR1c1sxOl0gaWYgaW50ZXJtaXR0ZW50IG5vdCBpbiBjb3VudHN9KQogICAg
ICAgICAgICAgZWxzZToKLSAgICAgICAgICAgICAgICByYWlzZSBVcGRhdGVFcnJvcigiQ29uZmxp
Y3RpbmcgbWV0YWRhdGEgdmFsdWVzIikKLSAgICAgICAgZm9yIGNvbmRpdGlvbmFsX25vZGUsIHZh
bHVlIGluIGNvbmRpdGlvbmFsczoKLSAgICAgICAgICAgIGlmIHZhbHVlICE9IHVuY29uZGl0aW9u
YWxfdmFsdWU6Ci0gICAgICAgICAgICAgICAgc2VsZi5ub2RlLnNldChzZWxmLnByb3BlcnR5X25h
bWUsIHZhbHVlLCBjb25kaXRpb249Y29uZGl0aW9uYWxfbm9kZS5jaGlsZHJlblswXSkKKyAgICAg
ICAgICAgICAgICBjb3VudHNbc3RhdHVzXSA9IGNvdW50CisKKyAgICAgICAgaWYgbm90IChzZWxm
LnVwZGF0ZV9pbnRlcm1pdHRlbnQgb3IgaXNpbnN0YW5jZShjdXJyZW50LCBsaXN0KSk6CisgICAg
ICAgICAgICByZXR1cm4gbGlzdChjb3VudHMpWzBdCisKKyAgICAgICAgIyBSZW9yZGVyIHN0YXR1
c2VzIGZpcnN0IGJhc2VkIG9uIGNvdW50cywgdGhlbiBiYXNlZCBvbiBzdGF0dXMgcHJpb3JpdHkg
aWYgdGhlcmUgYXJlIHRpZXMuCisgICAgICAgICMgQ291bnRzIHdpdGggMCBhcmUgY29uc2lkZXJl
ZCBpbnRlcm1pdHRlbnQuCisgICAgICAgIHN0YXR1c2VzID0gWyJPSyIsICJQQVNTIiwgIkZBSUwi
LCAiRVJST1IiLCAiVElNRU9VVCIsICJDUkFTSCJdCisgICAgICAgIHN0YXR1c19wcmlvcml0eSA9
IHt2YWx1ZTogaSBmb3IgaSwgdmFsdWUgaW4gZW51bWVyYXRlKHN0YXR1c2VzKX0KKyAgICAgICAg
c29ydGVkX25ldyA9IHNvcnRlZChpdGVyaXRlbXMoY291bnRzKSwga2V5PWxhbWJkYSB4OigtMSAq
IHhbMV0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHN0YXR1c19wcmlvcml0eS5nZXQoeFswXSwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGVuKHN0YXR1c19wcmlvcml0
eSkpKSkKKyAgICAgICAgZXhwZWN0ZWQgPSBbXQorICAgICAgICBmb3Igc3RhdHVzLCBjb3VudCBp
biBzb3J0ZWRfbmV3OgorICAgICAgICAgICAgIyBJZiB3ZSBhcmUgbm90IHJlbW92aW5nIGV4aXN0
aW5nIHJlY29yZGVkIGludGVybWl0dGVudHMsIHdpdGggYSBjb3VudCBvZiAwLAorICAgICAgICAg
ICAgIyBhZGQgdGhlbSBpbiB0byBleHBlY3RlZC4KKyAgICAgICAgICAgIGlmIGNvdW50ID4gMCBv
ciBub3Qgc2VsZi5yZW1vdmVfaW50ZXJtaXR0ZW50OgorICAgICAgICAgICAgICAgIGV4cGVjdGVk
LmFwcGVuZChzdGF0dXMpCisgICAgICAgIGlmIHNlbGYudXBkYXRlX2ludGVybWl0dGVudDoKKyAg
ICAgICAgICAgIGlmIGxlbihleHBlY3RlZCkgPT0gMToKKyAgICAgICAgICAgICAgICByZXR1cm4g
ZXhwZWN0ZWRbMF0KKyAgICAgICAgICAgIHJldHVybiBleHBlY3RlZAorCisgICAgICAgICMgSWYg
bm90aGluZyBoYXMgY2hhbmdlZCBhbmQgbm90IHNlbGYudXBkYXRlX2ludGVybWl0dGVudCwgcHJl
c2VydmUgZXhpc3RpbmcKKyAgICAgICAgIyBpbnRlcm1pdHRlbnQuCisgICAgICAgIGlmIHNldChl
eHBlY3RlZCkuaXNzdWJzZXQoc2V0KGN1cnJlbnQpKToKKyAgICAgICAgICAgIHJldHVybiBjdXJy
ZW50CisgICAgICAgICMgSWYgd2UgYXJlIG5vdCB1cGRhdGluZyBpbnRlcm1pdHRlbnRzLCByZXR1
cm4gdGhlIHN0YXR1cyB3aXRoIHRoZSBoaWdoZXN0IG9jY3VyZW5jZS4KKyAgICAgICAgcmV0dXJu
IGV4cGVjdGVkWzBdCiAKIAogY2xhc3MgTWF4QXNzZXJ0c1VwZGF0ZShQcm9wZXJ0eVVwZGF0ZSk6
CisgICAgIiIiRm9yIGFzc2VydHMgd2UgYWx3YXlzIHVwZGF0ZSB0aGUgZGVmYXVsdCB2YWx1ZSBh
bmQgbmV2ZXIgYWRkIG5ldyBjb25kaXRpb25hbHMuCisgICAgVGhlIHZhbHVlIHdlIHNldCBhcyB0
aGUgZGVmYXVsdCBpcyB0aGUgbWF4aW11bSB0aGUgY3VycmVudCBkZWZhdWx0IG9yIG9uZSBtb3Jl
IHRoYW4gdGhlCisgICAgbnVtYmVyIG9mIGFzc2VydHMgd2Ugc2F3IGluIGFueSBjb25maWd1cmF0
aW9uLiIiIgorCiAgICAgcHJvcGVydHlfbmFtZSA9ICJtYXgtYXNzZXJ0cyIKICAgICBjbHNfZGVm
YXVsdF92YWx1ZSA9IDAKICAgICB2YWx1ZV90eXBlID0gaW50CisgICAgcHJvcGVydHlfYnVpbGRl
ciA9IGJ1aWxkX3VuY29uZGl0aW9uYWxfdHJlZQogCi0gICAgZGVmIHVwZGF0ZV92YWx1ZShzZWxm
LCBvbGRfdmFsdWUsIG5ld192YWx1ZSk6Ci0gICAgICAgIG5ld192YWx1ZSA9IHNlbGYudmFsdWVf
dHlwZShuZXdfdmFsdWUpCi0gICAgICAgIGlmIG9sZF92YWx1ZSBpcyBub3QgTm9uZToKLSAgICAg
ICAgICAgIG9sZF92YWx1ZSA9IHNlbGYudmFsdWVfdHlwZShvbGRfdmFsdWUpCi0gICAgICAgIGlm
IG9sZF92YWx1ZSBpcyBub3QgTm9uZSBhbmQgb2xkX3ZhbHVlIDwgbmV3X3ZhbHVlOgotICAgICAg
ICAgICAgcmV0dXJuIG5ld192YWx1ZSArIDEKLSAgICAgICAgaWYgb2xkX3ZhbHVlIGlzIE5vbmU6
Ci0gICAgICAgICAgICByZXR1cm4gbmV3X3ZhbHVlICsgMQotICAgICAgICByZXR1cm4gb2xkX3Zh
bHVlCi0KLSAgICBkZWYgdXBkYXRlX2RlZmF1bHQoc2VsZik6Ci0gICAgICAgICIiIkZvciBhc3Nl
cnRzIHdlIGFsd2F5cyB1cGRhdGUgdGhlIGRlZmF1bHQgdmFsdWUgYW5kIG5ldmVyIGFkZCBuZXcg
Y29uZGl0aW9uYWxzLgotICAgICAgICBUaGUgdmFsdWUgd2Ugc2V0IGFzIHRoZSBkZWZhdWx0IGlz
IHRoZSBtYXhpbXVtIHRoZSBjdXJyZW50IGRlZmF1bHQgb3Igb25lIG1vcmUgdGhhbiB0aGUKLSAg
ICAgICAgbnVtYmVyIG9mIGFzc2VydHMgd2Ugc2F3IGluIGFueSBjb25maWd1cmF0aW9uLiIiIgot
ICAgICAgICAjIEN1cnJlbnQgdmFsdWVzCi0gICAgICAgIHZhbHVlcyA9IFtdCi0gICAgICAgIGN1
cnJlbnRfZGVmYXVsdCA9IE5vbmUKLSAgICAgICAgaWYgc2VsZi5wcm9wZXJ0eV9uYW1lIGluIHNl
bGYubm9kZS5fZGF0YToKLSAgICAgICAgICAgIGN1cnJlbnRfZGVmYXVsdCA9IFtpdGVtIGZvciBp
dGVtIGluCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5ub2RlLl9kYXRhW3Nl
bGYucHJvcGVydHlfbmFtZV0KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiBpdGVt
LmNvbmRpdGlvbl9ub2RlIGlzIE5vbmVdCi0gICAgICAgICAgICBpZiBjdXJyZW50X2RlZmF1bHQ6
Ci0gICAgICAgICAgICAgICAgdmFsdWVzLmFwcGVuZChpbnQoY3VycmVudF9kZWZhdWx0WzBdLnZh
bHVlKSkKLSAgICAgICAgdmFsdWVzLmV4dGVuZChpdGVtLnZhbHVlIGZvciBpdGVtIGluIHNlbGYu
bmV3KQotICAgICAgICB2YWx1ZXMuZXh0ZW5kKGl0ZW0udmFsdWUgZm9yIGl0ZW0gaW4KLSAgICAg
ICAgICAgICAgICAgICAgICBpdGVydG9vbHMuY2hhaW4uZnJvbV9pdGVyYWJsZShyZXN1bHRzIGZv
ciBfLCByZXN1bHRzIGluIHNlbGYudXBkYXRlZCkpCi0gICAgICAgIG5ld192YWx1ZSA9IG1heCh2
YWx1ZXMpCi0gICAgICAgIHJldHVybiBUcnVlLCBuZXdfdmFsdWUKKyAgICBkZWYgdXBkYXRlZF92
YWx1ZShzZWxmLCBjdXJyZW50LCBuZXcpOgorICAgICAgICBpZiBhbnkoaXRlbSA+IGN1cnJlbnQg
Zm9yIGl0ZW0gaW4gbmV3KToKKyAgICAgICAgICAgIHJldHVybiBtYXgobmV3KSArIDEKKyAgICAg
ICAgcmV0dXJuIGN1cnJlbnQKIAogCiBjbGFzcyBNaW5Bc3NlcnRzVXBkYXRlKFByb3BlcnR5VXBk
YXRlKToKICAgICBwcm9wZXJ0eV9uYW1lID0gIm1pbi1hc3NlcnRzIgogICAgIGNsc19kZWZhdWx0
X3ZhbHVlID0gMAogICAgIHZhbHVlX3R5cGUgPSBpbnQKKyAgICBwcm9wZXJ0eV9idWlsZGVyID0g
YnVpbGRfdW5jb25kaXRpb25hbF90cmVlCisKKyAgICBkZWYgdXBkYXRlZF92YWx1ZShzZWxmLCBj
dXJyZW50LCBuZXcpOgorICAgICAgICBpZiBhbnkoaXRlbSA8IGN1cnJlbnQgZm9yIGl0ZW0gaW4g
bmV3KToKKyAgICAgICAgICAgIHJ2ID0gbWluKG5ldykgLSAxCisgICAgICAgIGVsc2U6CisgICAg
ICAgICAgICBydiA9IGN1cnJlbnQKKyAgICAgICAgcmV0dXJuIG1heChydiwgMCkKKwogCi0gICAg
ZGVmIHVwZGF0ZV92YWx1ZShzZWxmLCBvbGRfdmFsdWUsIG5ld192YWx1ZSk6Ci0gICAgICAgIG5l
d192YWx1ZSA9IHNlbGYudmFsdWVfdHlwZShuZXdfdmFsdWUpCi0gICAgICAgIGlmIG9sZF92YWx1
ZSBpcyBub3QgTm9uZToKLSAgICAgICAgICAgIG9sZF92YWx1ZSA9IHNlbGYudmFsdWVfdHlwZShv
bGRfdmFsdWUpCi0gICAgICAgIGlmIG9sZF92YWx1ZSBpcyBub3QgTm9uZSBhbmQgbmV3X3ZhbHVl
IDwgb2xkX3ZhbHVlOgotICAgICAgICAgICAgcmV0dXJuIDAKLSAgICAgICAgaWYgb2xkX3ZhbHVl
IGlzIE5vbmU6Ci0gICAgICAgICAgICAjIElmIHdlIGFyZSBnZXR0aW5nIHNvbWUgYXNzZXJ0cyBm
b3IgdGhlIGZpcnN0IHRpbWUsIHNldCB0aGUgbWluaW11bSB0byAwCi0gICAgICAgICAgICByZXR1
cm4gbmV3X3ZhbHVlCi0gICAgICAgIHJldHVybiBvbGRfdmFsdWUKLQotICAgIGRlZiB1cGRhdGVf
ZGVmYXVsdChzZWxmKToKLSAgICAgICAgIiIiRm9yIGFzc2VydHMgd2UgYWx3YXlzIHVwZGF0ZSB0
aGUgZGVmYXVsdCB2YWx1ZSBhbmQgbmV2ZXIgYWRkIG5ldyBjb25kaXRpb25hbHMuCi0gICAgICAg
IFRoaXMgaXMgZWl0aGVyIHNldCB0byB0aGUgY3VycmVudCB2YWx1ZSBvciBvbmUgbGVzcyB0aGFu
IHRoZSBudW1iZXIgb2YgYXNzZXJ0cwotICAgICAgICB3ZSBzYXcsIHdoaWNoZXZlciBpcyBsb3dl
ci4iIiIKLSAgICAgICAgdmFsdWVzID0gW10KLSAgICAgICAgY3VycmVudF9kZWZhdWx0ID0gTm9u
ZQotICAgICAgICBpZiBzZWxmLnByb3BlcnR5X25hbWUgaW4gc2VsZi5ub2RlLl9kYXRhOgotICAg
ICAgICAgICAgY3VycmVudF9kZWZhdWx0ID0gW2l0ZW0gZm9yIGl0ZW0gaW4KLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBzZWxmLm5vZGUuX2RhdGFbc2VsZi5wcm9wZXJ0eV9uYW1lXQot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIGl0ZW0uY29uZGl0aW9uX25vZGUgaXMg
Tm9uZV0KLSAgICAgICAgaWYgY3VycmVudF9kZWZhdWx0OgotICAgICAgICAgICAgdmFsdWVzLmFw
cGVuZChjdXJyZW50X2RlZmF1bHRbMF0udmFsdWVfYXMoc2VsZi52YWx1ZV90eXBlKSkKLSAgICAg
ICAgdmFsdWVzLmV4dGVuZChtYXgoMCwgaXRlbS52YWx1ZSkgZm9yIGl0ZW0gaW4gc2VsZi5uZXcp
Ci0gICAgICAgIHZhbHVlcy5leHRlbmQobWF4KDAsIGl0ZW0udmFsdWUpIGZvciBpdGVtIGluCi0g
ICAgICAgICAgICAgICAgICAgICAgaXRlcnRvb2xzLmNoYWluLmZyb21faXRlcmFibGUocmVzdWx0
cyBmb3IgXywgcmVzdWx0cyBpbiBzZWxmLnVwZGF0ZWQpKQotICAgICAgICBuZXdfdmFsdWUgPSBt
aW4odmFsdWVzKQotICAgICAgICByZXR1cm4gVHJ1ZSwgbmV3X3ZhbHVlCi0KLQotY2xhc3MgTHNh
blVwZGF0ZShQcm9wZXJ0eVVwZGF0ZSk6CitjbGFzcyBBcHBlbmRPbmx5TGlzdFVwZGF0ZShQcm9w
ZXJ0eVVwZGF0ZSk6CisgICAgY2xzX2RlZmF1bHRfdmFsdWUgPSBbXQorICAgIHByb3BlcnR5X2J1
aWxkZXIgPSBidWlsZF91bmNvbmRpdGlvbmFsX3RyZWUKKworICAgIGRlZiB1cGRhdGVkX3ZhbHVl
KHNlbGYsIGN1cnJlbnQsIG5ldyk6CisgICAgICAgIGlmIGN1cnJlbnQgaXMgTm9uZToKKyAgICAg
ICAgICAgIHJ2ID0gc2V0KCkKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHJ2ID0gc2V0KGN1
cnJlbnQpCisKKyAgICAgICAgZm9yIGl0ZW0gaW4gbmV3OgorICAgICAgICAgICAgaWYgaXRlbSBp
cyBOb25lOgorICAgICAgICAgICAgICAgIGNvbnRpbnVlCisgICAgICAgICAgICBlbGlmIGlzaW5z
dGFuY2UoaXRlbSwgKHN0ciwgdW5pY29kZSkpOgorICAgICAgICAgICAgICAgIHJ2LmFkZChpdGVt
KQorICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICBydiB8PSBpdGVtCisKKyAgICAg
ICAgcmV0dXJuIHNvcnRlZChydikKKworCitjbGFzcyBMc2FuVXBkYXRlKEFwcGVuZE9ubHlMaXN0
VXBkYXRlKToKICAgICBwcm9wZXJ0eV9uYW1lID0gImxzYW4tYWxsb3dlZCIKLSAgICBjbHNfZGVm
YXVsdF92YWx1ZSA9IE5vbmUKKyAgICBwcm9wZXJ0eV9idWlsZGVyID0gYnVpbGRfdW5jb25kaXRp
b25hbF90cmVlCiAKLSAgICBkZWYgZ2V0X3ZhbHVlKHNlbGYsIHJlc3VsdCk6CisgICAgZGVmIGZy
b21fcmVzdWx0X3ZhbHVlKHNlbGYsIHJlc3VsdCk6CiAgICAgICAgICMgSWYgd2UgaGF2ZSBhbiBh
bGxvd2VkX21hdGNoIHRoYXQgbWF0Y2hlZCwgcmV0dXJuIE5vbmUKICAgICAgICAgIyBUaGlzIHZh
bHVlIGlzIGlnbm9yZWQgbGF0ZXIgKGJlY2F1c2UgaXQgbWF0Y2hlcyB0aGUgZGVmYXVsdCkKICAg
ICAgICAgIyBXZSBkbyB0aGF0IGJlY2F1c2UgdGhlbiBpZiB3ZSBhbGxvdyBhIGZhaWx1cmUgaW4g
Zm9vL19fZGlyX18uaW5pCkBAIC01MTYsOTQgKzc5Nyw2NSBAQCBjbGFzcyBMc2FuVXBkYXRlKFBy
b3BlcnR5VXBkYXRlKToKICAgICAgICAgIyBUT0RPOiB0aGVyZSBpcyBwcm9iYWJseSBzb21lIGlt
cHJvdmVtZW50IHRvIGJlIG1hZGUgYnkgbG9va2luZyBmb3IgYSAiYmV0dGVyIiBzdGFjayBmcmFt
ZQogICAgICAgICByZXR1cm4gcmVzdWx0WzBdWzBdCiAKLSAgICBkZWYgdXBkYXRlX3ZhbHVlKHNl
bGYsIG9sZF92YWx1ZSwgbmV3X3ZhbHVlKToKLSAgICAgICAgaWYgaXNpbnN0YW5jZShuZXdfdmFs
dWUsIChzdHIsIHVuaWNvZGUpKToKLSAgICAgICAgICAgIG5ld192YWx1ZSA9IHtuZXdfdmFsdWV9
Ci0gICAgICAgIGVsc2U6Ci0gICAgICAgICAgICBuZXdfdmFsdWUgPSBzZXQobmV3X3ZhbHVlKQot
ICAgICAgICBpZiBvbGRfdmFsdWUgaXMgTm9uZToKLSAgICAgICAgICAgIG9sZF92YWx1ZSA9IHNl
dCgpCi0gICAgICAgIG9sZF92YWx1ZSA9IHNldChvbGRfdmFsdWUpCi0gICAgICAgIHJldHVybiBz
b3J0ZWQoKG9sZF92YWx1ZSB8IG5ld192YWx1ZSkgLSB7Tm9uZX0pCi0KLSAgICBkZWYgdXBkYXRl
X2RlZmF1bHQoc2VsZik6Ci0gICAgICAgIGN1cnJlbnRfZGVmYXVsdCA9IE5vbmUKLSAgICAgICAg
aWYgc2VsZi5wcm9wZXJ0eV9uYW1lIGluIHNlbGYubm9kZS5fZGF0YToKLSAgICAgICAgICAgIGN1
cnJlbnRfZGVmYXVsdCA9IFtpdGVtIGZvciBpdGVtIGluCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgc2VsZi5ub2RlLl9kYXRhW3NlbGYucHJvcGVydHlfbmFtZV0KLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBpZiBpdGVtLmNvbmRpdGlvbl9ub2RlIGlzIE5vbmVdCi0gICAg
ICAgIGlmIGN1cnJlbnRfZGVmYXVsdDoKLSAgICAgICAgICAgIGN1cnJlbnRfZGVmYXVsdCA9IGN1
cnJlbnRfZGVmYXVsdFswXS52YWx1ZQotICAgICAgICBuZXdfdmFsdWVzID0gW2l0ZW0udmFsdWUg
Zm9yIGl0ZW0gaW4gc2VsZi5uZXddCi0gICAgICAgIG5ld192YWx1ZSA9IHNlbGYudXBkYXRlX3Zh
bHVlKGN1cnJlbnRfZGVmYXVsdCwgbmV3X3ZhbHVlcykKLSAgICAgICAgcmV0dXJuIFRydWUsIG5l
d192YWx1ZSBpZiBuZXdfdmFsdWUgZWxzZSBOb25lCi0KLQotZGVmIGdyb3VwX2NvbmRpdGlvbmFs
cyh2YWx1ZXMsIHByb3BlcnR5X29yZGVyPU5vbmUsIGJvb2xlYW5fcHJvcGVydGllcz1Ob25lKToK
LSAgICAiIiJHaXZlbiBhIGxpc3Qgb2YgVmFsdWUgb2JqZWN0cywgcmV0dXJuIGEgbGlzdCBvZgot
ICAgIChjb25kaXRpb25hbF9ub2RlLCBzdGF0dXMpIHBhaXJzIHJlcHJlc2VudGluZyB0aGUgY29u
ZGl0aW9uYWwKLSAgICBleHByZXNzaW9ucyB0aGF0IGFyZSByZXF1aXJlZCB0byBtYXRjaCBlYWNo
IHN0YXR1cwotCi0gICAgOnBhcmFtIHZhbHVlczogTGlzdCBvZiBWYWx1ZXMKLSAgICA6cGFyYW0g
cHJvcGVydHlfb3JkZXI6IExpc3Qgb2YgcHJvcGVydGllcyB0byB1c2UgaW4gZXhwZWN0YXRpb24g
bWV0YWRhdGEKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIGZyb20gbW9zdCB0byBsZWFzdCBz
aWduaWZpY2FudC4KLSAgICA6cGFyYW0gYm9vbGVhbl9wcm9wZXJ0aWVzOiBTZXQgb2YgcHJvcGVy
dGllcyBpbiBwcm9wZXJ0eV9vcmRlciB0aGF0IHNob3VsZAotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGJlIHRyZWF0ZWQgYXMgYm9vbGVhbi4iIiIKLQotICAgIGJ5X3Byb3BlcnR5ID0g
ZGVmYXVsdGRpY3Qoc2V0KQotICAgIGZvciBydW5faW5mbywgdmFsdWUgaW4gdmFsdWVzOgotICAg
ICAgICBmb3IgcHJvcF9uYW1lLCBwcm9wX3ZhbHVlIGluIHJ1bl9pbmZvLml0ZXJpdGVtcygpOgot
ICAgICAgICAgICAgYnlfcHJvcGVydHlbKHByb3BfbmFtZSwgcHJvcF92YWx1ZSldLmFkZCh2YWx1
ZSkKLQotICAgIGlmIHByb3BlcnR5X29yZGVyIGlzIE5vbmU6Ci0gICAgICAgIHByb3BlcnR5X29y
ZGVyID0gWyJkZWJ1ZyIsICJvcyIsICJ2ZXJzaW9uIiwgInByb2Nlc3NvciIsICJiaXRzIl0KLQot
ICAgIGlmIGJvb2xlYW5fcHJvcGVydGllcyBpcyBOb25lOgotICAgICAgICBib29sZWFuX3Byb3Bl
cnRpZXMgPSBzZXQoWyJkZWJ1ZyJdKQotICAgIGVsc2U6Ci0gICAgICAgIGJvb2xlYW5fcHJvcGVy
dGllcyA9IHNldChib29sZWFuX3Byb3BlcnRpZXMpCi0KLSAgICAjIElmIHdlIGhhdmUgbW9yZSB0
aGFuIG9uZSB2YWx1ZSwgcmVtb3ZlIGFueSBwcm9wZXJ0aWVzIHRoYXQgYXJlIGNvbW1vbgotICAg
ICMgZm9yIGFsbCB0aGUgdmFsdWVzCi0gICAgaWYgbGVuKHZhbHVlcykgPiAxOgotICAgICAgICBm
b3Iga2V5LCBzdGF0dXNlcyBpbiBieV9wcm9wZXJ0eS5jb3B5KCkuaXRlcml0ZW1zKCk6Ci0gICAg
ICAgICAgICBpZiBsZW4oc3RhdHVzZXMpID09IGxlbih2YWx1ZXMpOgotICAgICAgICAgICAgICAg
IGRlbCBieV9wcm9wZXJ0eVtrZXldCi0gICAgICAgIGlmIG5vdCBieV9wcm9wZXJ0eToKLSAgICAg
ICAgICAgIHJhaXNlIENvbmRpdGlvbkVycm9yCisgICAgZGVmIHRvX2luaV92YWx1ZShzZWxmLCB2
YWx1ZSk6CisgICAgICAgIHJldHVybiB2YWx1ZQorCiAKLSAgICBwcm9wZXJ0aWVzID0gc2V0KGl0
ZW1bMF0gZm9yIGl0ZW0gaW4gYnlfcHJvcGVydHkuaXRlcmtleXMoKSkKLSAgICBpbmNsdWRlX3By
b3BzID0gW10KK2NsYXNzIExlYWtPYmplY3RVcGRhdGUoQXBwZW5kT25seUxpc3RVcGRhdGUpOgor
ICAgIHByb3BlcnR5X25hbWUgPSAibGVhay1hbGxvd2VkIgorICAgIHByb3BlcnR5X2J1aWxkZXIg
PSBidWlsZF91bmNvbmRpdGlvbmFsX3RyZWUKIAotICAgIGZvciBwcm9wIGluIHByb3BlcnR5X29y
ZGVyOgotICAgICAgICBpZiBwcm9wIGluIHByb3BlcnRpZXM6Ci0gICAgICAgICAgICBpbmNsdWRl
X3Byb3BzLmFwcGVuZChwcm9wKQorICAgIGRlZiBmcm9tX3Jlc3VsdF92YWx1ZShzZWxmLCByZXN1
bHQpOgorICAgICAgICAjIElmIHdlIGhhdmUgYW4gYWxsb3dlZF9tYXRjaCB0aGF0IG1hdGNoZWQs
IHJldHVybiBOb25lCisgICAgICAgIGlmIHJlc3VsdFsxXToKKyAgICAgICAgICAgIHJldHVybiBO
b25lCisgICAgICAgICMgT3RoZXJ3aXNlIHJldHVybiB0aGUgcHJvY2Vzcy9vYmplY3QgbmFtZQor
ICAgICAgICByZXR1cm4gcmVzdWx0WzBdCiAKLSAgICBjb25kaXRpb25zID0ge30KIAotICAgIGZv
ciBydW5faW5mbywgdmFsdWUgaW4gdmFsdWVzOgotICAgICAgICBwcm9wX3NldCA9IHR1cGxlKChw
cm9wLCBydW5faW5mb1twcm9wXSkgZm9yIHByb3AgaW4gaW5jbHVkZV9wcm9wcykKLSAgICAgICAg
aWYgcHJvcF9zZXQgaW4gY29uZGl0aW9uczoKLSAgICAgICAgICAgIGlmIGNvbmRpdGlvbnNbcHJv
cF9zZXRdWzFdICE9IHZhbHVlOgotICAgICAgICAgICAgICAgICMgQSBwcm9wX3NldCBjb250YWlu
cyBjb250cmFkaWN0b3J5IHJlc3VsdHMKLSAgICAgICAgICAgICAgICByYWlzZSBDb25kaXRpb25F
cnJvcihtYWtlX2V4cHIocHJvcF9zZXQsIHZhbHVlLCBib29sZWFuX3Byb3BlcnRpZXMpKQotICAg
ICAgICAgICAgY29udGludWUKK2NsYXNzIExlYWtUaHJlc2hvbGRVcGRhdGUoUHJvcGVydHlVcGRh
dGUpOgorICAgIHByb3BlcnR5X25hbWUgPSAibGVhay10aHJlc2hvbGQiCisgICAgY2xzX2RlZmF1
bHRfdmFsdWUgPSB7fQorICAgIHByb3BlcnR5X2J1aWxkZXIgPSBidWlsZF91bmNvbmRpdGlvbmFs
X3RyZWUKIAotICAgICAgICBleHByID0gbWFrZV9leHByKHByb3Bfc2V0LCB2YWx1ZSwgYm9vbGVh
bl9wcm9wZXJ0aWVzPWJvb2xlYW5fcHJvcGVydGllcykKLSAgICAgICAgY29uZGl0aW9uc1twcm9w
X3NldF0gPSAoZXhwciwgdmFsdWUpCisgICAgZGVmIGZyb21fcmVzdWx0X3ZhbHVlKHNlbGYsIHJl
c3VsdCk6CisgICAgICAgIHJldHVybiByZXN1bHQKIAotICAgIHJldHVybiBjb25kaXRpb25zLnZh
bHVlcygpCisgICAgZGVmIHRvX2luaV92YWx1ZShzZWxmLCBkYXRhKToKKyAgICAgICAgcmV0dXJu
IFsiJXM6JXMiICUgaXRlbSBmb3IgaXRlbSBpbiBzb3J0ZWQoaXRlcml0ZW1zKGRhdGEpKV0KIAor
ICAgIGRlZiBmcm9tX2luaV92YWx1ZShzZWxmLCBkYXRhKToKKyAgICAgICAgcnYgPSB7fQorICAg
ICAgICBmb3IgaXRlbSBpbiBkYXRhOgorICAgICAgICAgICAga2V5LCB2YWx1ZSA9IGl0ZW0uc3Bs
aXQoIjoiLCAxKQorICAgICAgICAgICAgcnZba2V5XSA9IGludChmbG9hdCh2YWx1ZSkpCisgICAg
ICAgIHJldHVybiBydgogCi1kZWYgbWFrZV9leHByKHByb3Bfc2V0LCByaHMsIGJvb2xlYW5fcHJv
cGVydGllcz1Ob25lKToKKyAgICBkZWYgdXBkYXRlZF92YWx1ZShzZWxmLCBjdXJyZW50LCBuZXcp
OgorICAgICAgICBpZiBjdXJyZW50OgorICAgICAgICAgICAgcnYgPSBjdXJyZW50LmNvcHkoKQor
ICAgICAgICBlbHNlOgorICAgICAgICAgICAgcnYgPSB7fQorICAgICAgICBmb3IgcHJvY2Vzcywg
bGVha2VkX2J5dGVzLCB0aHJlc2hvbGQgaW4gbmV3OgorICAgICAgICAgICAgIyBJZiB0aGUgdmFs
dWUgaXMgbGVzcyB0aGFuIHRoZSB0aHJlc2hvbGQgYnV0IHRoZXJlIGlzbid0CisgICAgICAgICAg
ICAjIGFuIG9sZCB2YWx1ZSB3ZSBtdXN0IGhhdmUgaW5oZXJpdGVkIHRoZSB0aHJlc2hvbGQgZnJv
bQorICAgICAgICAgICAgIyBhIHBhcmVudCBpbmkgZmlsZSBzbyBkb24ndCBhbnkgYW55dGhpbmcg
dG8gdGhpcyBvbmUKKyAgICAgICAgICAgIGlmIHByb2Nlc3Mgbm90IGluIHJ2IGFuZCBsZWFrZWRf
Ynl0ZXMgPCB0aHJlc2hvbGQ6CisgICAgICAgICAgICAgICAgY29udGludWUKKyAgICAgICAgICAg
IGlmIGxlYWtlZF9ieXRlcyA+IHJ2LmdldChwcm9jZXNzLCAwKToKKyAgICAgICAgICAgICAgICAj
IFJvdW5kIHVwIHRvIG5lYXJlc3QgNTAga2IKKyAgICAgICAgICAgICAgICBib3VuZGFyeSA9IDUw
ICogMTAyNAorICAgICAgICAgICAgICAgIHJ2W3Byb2Nlc3NdID0gaW50KGJvdW5kYXJ5ICogY2Vp
bChmbG9hdChsZWFrZWRfYnl0ZXMpIC8gYm91bmRhcnkpKQorICAgICAgICByZXR1cm4gcnYKKwor
CitkZWYgbWFrZV9leHByKHByb3Bfc2V0LCByaHMpOgogICAgICIiIkNyZWF0ZSBhbiBBU1QgdGhh
dCByZXR1cm5zIHRoZSB2YWx1ZSBgYHN0YXR1c2BgIGdpdmVuIGFsbCB0aGUKICAgICBwcm9wZXJ0
aWVzIGluIHByb3Bfc2V0IG1hdGNoLgogCiAgICAgOnBhcmFtIHByb3Bfc2V0OiB0dXBsZSBvZiAo
cHJvcGVydHkgbmFtZSwgdmFsdWUpIHBhaXJzIGZvciBlYWNoCiAgICAgICAgICAgICAgICAgICAg
ICBwcm9wZXJ0eSBpbiB0aGlzIGV4cHJlc3Npb24gYW5kIHRoZSB2YWx1ZSBpdCBtdXN0IG1hdGNo
CiAgICAgOnBhcmFtIHN0YXR1czogU3RhdHVzIG9uIFJIUyB3aGVuIGFsbCB0aGUgZ2l2ZW4gcHJv
cGVydGllcyBtYXRjaAotICAgIDpwYXJhbSBib29sZWFuX3Byb3BlcnRpZXM6IFNldCBvZiBwcm9w
ZXJ0aWVzIGluIHByb3BlcnR5X29yZGVyIHRoYXQgc2hvdWxkCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgYmUgdHJlYXRlZCBhcyBib29sZWFuLgogICAgICIiIgogICAgIHJvb3QgPSBD
b25kaXRpb25hbE5vZGUoKQogCkBAIC02MTEsMTcgKzg2MywxMiBAQCBkZWYgbWFrZV9leHByKHBy
b3Bfc2V0LCByaHMsIGJvb2xlYW5fcHJvcGVydGllcz1Ob25lKToKIAogICAgIGV4cHJlc3Npb25z
ID0gW10KICAgICBmb3IgcHJvcCwgdmFsdWUgaW4gcHJvcF9zZXQ6Ci0gICAgICAgIG51bWJlcl90
eXBlcyA9IChpbnQsIGZsb2F0LCBsb25nKQotICAgICAgICB2YWx1ZV9jbHMgPSAoTnVtYmVyTm9k
ZQotICAgICAgICAgICAgICAgICAgICAgaWYgdHlwZSh2YWx1ZSkgaW4gbnVtYmVyX3R5cGVzCi0g
ICAgICAgICAgICAgICAgICAgICBlbHNlIFN0cmluZ05vZGUpCi0gICAgICAgIGlmIHByb3Agbm90
IGluIGJvb2xlYW5fcHJvcGVydGllczoKKyAgICAgICAgaWYgdmFsdWUgbm90IGluIChUcnVlLCBG
YWxzZSk6CiAgICAgICAgICAgICBleHByZXNzaW9ucy5hcHBlbmQoCiAgICAgICAgICAgICAgICAg
QmluYXJ5RXhwcmVzc2lvbk5vZGUoCiAgICAgICAgICAgICAgICAgICAgIEJpbmFyeU9wZXJhdG9y
Tm9kZSgiPT0iKSwKICAgICAgICAgICAgICAgICAgICAgVmFyaWFibGVOb2RlKHByb3ApLAotICAg
ICAgICAgICAgICAgICAgICB2YWx1ZV9jbHModW5pY29kZSh2YWx1ZSkpCi0gICAgICAgICAgICAg
ICAgKSkKKyAgICAgICAgICAgICAgICAgICAgbWFrZV9ub2RlKHZhbHVlKSkpCiAgICAgICAgIGVs
c2U6CiAgICAgICAgICAgICBpZiB2YWx1ZToKICAgICAgICAgICAgICAgICBleHByZXNzaW9ucy5h
cHBlbmQoVmFyaWFibGVOb2RlKHByb3ApKQpAQCAtNjQzLDQxICs4OTAsNjAgQEAgZGVmIG1ha2Vf
ZXhwcihwcm9wX3NldCwgcmhzLCBib29sZWFuX3Byb3BlcnRpZXM9Tm9uZSk6CiAgICAgICAgIG5v
ZGUgPSBleHByZXNzaW9uc1swXQogCiAgICAgcm9vdC5hcHBlbmQobm9kZSkKLSAgICBpZiB0eXBl
KHJocykgaW4gbnVtYmVyX3R5cGVzOgotICAgICAgICByaHNfbm9kZSA9IE51bWJlck5vZGUocmhz
KQotICAgIGVsc2U6Ci0gICAgICAgIHJoc19ub2RlID0gU3RyaW5nTm9kZShyaHMpCisgICAgcmhz
X25vZGUgPSBtYWtlX3ZhbHVlX25vZGUocmhzKQogICAgIHJvb3QuYXBwZW5kKHJoc19ub2RlKQog
CiAgICAgcmV0dXJuIHJvb3QKIAogCi1kZWYgZ2V0X21hbmlmZXN0KG1ldGFkYXRhX3Jvb3QsIHRl
c3RfcGF0aCwgdXJsX2Jhc2UsIHByb3BlcnR5X29yZGVyPU5vbmUsCi0gICAgICAgICAgICAgICAg
IGJvb2xlYW5fcHJvcGVydGllcz1Ob25lKToKK2RlZiBtYWtlX25vZGUodmFsdWUpOgorICAgIGlm
IHR5cGUodmFsdWUpIGluIChpbnQsIGZsb2F0LCBsb25nKToKKyAgICAgICAgbm9kZSA9IE51bWJl
ck5vZGUodmFsdWUpCisgICAgZWxpZiB0eXBlKHZhbHVlKSBpbiAoc3RyLCB1bmljb2RlKToKKyAg
ICAgICAgbm9kZSA9IFN0cmluZ05vZGUodW5pY29kZSh2YWx1ZSkpCisgICAgZWxpZiBoYXNhdHRy
KHZhbHVlLCAiX19pdGVyX18iKToKKyAgICAgICAgbm9kZSA9IExpc3ROb2RlKCkKKyAgICAgICAg
Zm9yIGl0ZW0gaW4gdmFsdWU6CisgICAgICAgICAgICBub2RlLmFwcGVuZChtYWtlX25vZGUoaXRl
bSkpCisgICAgcmV0dXJuIG5vZGUKKworCitkZWYgbWFrZV92YWx1ZV9ub2RlKHZhbHVlKToKKyAg
ICBpZiB0eXBlKHZhbHVlKSBpbiAoaW50LCBmbG9hdCwgbG9uZyk6CisgICAgICAgIG5vZGUgPSBW
YWx1ZU5vZGUodmFsdWUpCisgICAgZWxpZiB0eXBlKHZhbHVlKSBpbiAoc3RyLCB1bmljb2RlKToK
KyAgICAgICAgbm9kZSA9IFZhbHVlTm9kZSh1bmljb2RlKHZhbHVlKSkKKyAgICBlbGlmIGhhc2F0
dHIodmFsdWUsICJfX2l0ZXJfXyIpOgorICAgICAgICBub2RlID0gTGlzdE5vZGUoKQorICAgICAg
ICBmb3IgaXRlbSBpbiB2YWx1ZToKKyAgICAgICAgICAgIG5vZGUuYXBwZW5kKG1ha2Vfbm9kZShp
dGVtKSkKKyAgICBlbHNlOgorICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJEb24ndCBrbm93IGhv
dyB0byBjb252ZXJ0ICVzIGludG8gbm9kZSIgJSB0eXBlKHZhbHVlKSkKKyAgICByZXR1cm4gbm9k
ZQorCisKK2RlZiBnZXRfbWFuaWZlc3QobWV0YWRhdGFfcm9vdCwgdGVzdF9wYXRoLCB1cmxfYmFz
ZSwgcnVuX2luZm9fcHJvcGVydGllcywgdXBkYXRlX2ludGVybWl0dGVudCwgcmVtb3ZlX2ludGVy
bWl0dGVudCk6CiAgICAgIiIiR2V0IHRoZSBFeHBlY3RlZE1hbmlmZXN0IGZvciBhIHBhcnRpY3Vs
YXIgdGVzdCBwYXRoLCBvciBOb25lIGlmIHRoZXJlIGlzIG5vCiAgICAgbWV0YWRhdGEgc3RvcmVk
IGZvciB0aGF0IHRlc3QgcGF0aC4KIAogICAgIDpwYXJhbSBtZXRhZGF0YV9yb290OiBBYnNvbHV0
ZSBwYXRoIHRvIHRoZSByb290IG9mIHRoZSBtZXRhZGF0YSBkaXJlY3RvcnkKICAgICA6cGFyYW0g
dGVzdF9wYXRoOiBQYXRoIHRvIHRoZSB0ZXN0KHMpIHJlbGF0aXZlIHRvIHRoZSB0ZXN0IHJvb3QK
LSAgICA6cGFyYW0gdXJsX2Jhc2U6IEJhc2UgdXJsIGZvciBzZXJ2aW5nIHRoZSB0ZXN0cyBpbiB0
aGlzIG1hbmlmZXN0Ci0gICAgOnBhcmFtIHByb3BlcnR5X29yZGVyOiBMaXN0IG9mIHByb3BlcnRp
ZXMgdG8gdXNlIGluIGV4cGVjdGF0aW9uIG1ldGFkYXRhCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICBmcm9tIG1vc3QgdG8gbGVhc3Qgc2lnbmlmaWNhbnQuCi0gICAgOnBhcmFtIGJvb2xlYW5f
cHJvcGVydGllczogU2V0IG9mIHByb3BlcnRpZXMgaW4gcHJvcGVydHlfb3JkZXIgdGhhdCBzaG91
bGQKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiZSB0cmVhdGVkIGFzIGJvb2xlYW4u
IiIiCisgICAgOnBhcmFtIHVybF9iYXNlOiBCYXNlIHVybCBmb3Igc2VydmluZyB0aGUgdGVzdHMg
aW4gdGhpcyBtYW5pZmVzdCIiIgogICAgIG1hbmlmZXN0X3BhdGggPSBleHBlY3RlZC5leHBlY3Rl
ZF9wYXRoKG1ldGFkYXRhX3Jvb3QsIHRlc3RfcGF0aCkKICAgICB0cnk6CiAgICAgICAgIHdpdGgg
b3BlbihtYW5pZmVzdF9wYXRoKSBhcyBmOgotICAgICAgICAgICAgcmV0dXJuIGNvbXBpbGUoZiwg
dGVzdF9wYXRoLCB1cmxfYmFzZSwgcHJvcGVydHlfb3JkZXI9cHJvcGVydHlfb3JkZXIsCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICBib29sZWFuX3Byb3BlcnRpZXM9Ym9vbGVhbl9wcm9wZXJ0
aWVzKQorICAgICAgICAgICAgcnYgPSBjb21waWxlKGYsIHRlc3RfcGF0aCwgdXJsX2Jhc2UsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgcnVuX2luZm9fcHJvcGVydGllcywgdXBkYXRlX2ludGVy
bWl0dGVudCwgcmVtb3ZlX2ludGVybWl0dGVudCkKICAgICBleGNlcHQgSU9FcnJvcjoKICAgICAg
ICAgcmV0dXJuIE5vbmUKKyAgICByZXR1cm4gcnYKIAogCi1kZWYgY29tcGlsZShtYW5pZmVzdF9m
aWxlLCB0ZXN0X3BhdGgsIHVybF9iYXNlLCBwcm9wZXJ0eV9vcmRlcj1Ob25lLAotICAgICAgICAg
ICAgYm9vbGVhbl9wcm9wZXJ0aWVzPU5vbmUpOgorZGVmIGNvbXBpbGUobWFuaWZlc3RfZmlsZSwg
dGVzdF9wYXRoLCB1cmxfYmFzZSwgcnVuX2luZm9fcHJvcGVydGllcywgdXBkYXRlX2ludGVybWl0
dGVudCwgcmVtb3ZlX2ludGVybWl0dGVudCk6CiAgICAgcmV0dXJuIGNvbmRpdGlvbmFsLmNvbXBp
bGUobWFuaWZlc3RfZmlsZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhX2Ns
c19nZXR0ZXI9ZGF0YV9jbHNfZ2V0dGVyLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHRlc3RfcGF0aD10ZXN0X3BhdGgsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXJs
X2Jhc2U9dXJsX2Jhc2UsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvcGVydHlf
b3JkZXI9cHJvcGVydHlfb3JkZXIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9v
bGVhbl9wcm9wZXJ0aWVzPWJvb2xlYW5fcHJvcGVydGllcykKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBydW5faW5mb19wcm9wZXJ0aWVzPXJ1bl9pbmZvX3Byb3BlcnRpZXMsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgdXBkYXRlX2ludGVybWl0dGVudD11cGRhdGVfaW50
ZXJtaXR0ZW50LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlbW92ZV9pbnRlcm1p
dHRlbnQ9cmVtb3ZlX2ludGVybWl0dGVudCkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9tZXRh
ZGF0YS5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvd3B0cnVubmVyL3dwdHJ1bm5lci9tZXRhZGF0YS5weQppbmRleCA5NDU2MGNkOTNmZjE0ODE4
Y2UzZGU2MGYzODY2NzE0MDQzYzI0MjM2Li5jMzI4ZGNlZmE3MjUzZGRlYTk1MjU0OWM3MDI3MjNl
OThiNGNhZGM0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvbWV0YWRhdGEucHkKKysrIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIv
d3B0cnVubmVyL21ldGFkYXRhLnB5CkBAIC0xLDE4ICsxLDE3IEBACitmcm9tIF9fZnV0dXJlX18g
aW1wb3J0IHByaW50X2Z1bmN0aW9uCiBpbXBvcnQgYXJyYXkKIGltcG9ydCBvcwotaW1wb3J0IHNo
dXRpbAotaW1wb3J0IHRlbXBmaWxlCi1pbXBvcnQgdXVpZAogZnJvbSBjb2xsZWN0aW9ucyBpbXBv
cnQgZGVmYXVsdGRpY3QsIG5hbWVkdHVwbGUKIAogZnJvbSBtb3psb2cgaW1wb3J0IHN0cnVjdHVy
ZWRsb2cKLQotaW1wb3J0IG1hbmlmZXN0dXBkYXRlCi1pbXBvcnQgdGVzdGxvYWRlcgotaW1wb3J0
IHdwdG1hbmlmZXN0Ci1pbXBvcnQgd3B0dGVzdAotZnJvbSBleHBlY3RlZCBpbXBvcnQgZXhwZWN0
ZWRfcGF0aAotZnJvbSB2Y3MgaW1wb3J0IGdpdAorZnJvbSBzaXgubW92ZXMgaW1wb3J0IGludGVy
bgorCitmcm9tIC4gaW1wb3J0IG1hbmlmZXN0dXBkYXRlCitmcm9tIC4gaW1wb3J0IHRlc3Rsb2Fk
ZXIKK2Zyb20gLiBpbXBvcnQgd3B0bWFuaWZlc3QKK2Zyb20gLiBpbXBvcnQgd3B0dGVzdAorZnJv
bSAuZXhwZWN0ZWQgaW1wb3J0IGV4cGVjdGVkX3BhdGgKK2Zyb20gLnZjcyBpbXBvcnQgZ2l0CiBt
YW5pZmVzdCA9IE5vbmUgICMgTW9kdWxlIHRoYXQgd2lsbCBiZSBpbXBvcnRlZCByZWxhdGl2ZSB0
byB0ZXN0X3Jvb3QKIG1hbmlmZXN0aXRlbSA9IE5vbmUKIApAQCAtMjQsMzcgKzIzLDczIEBAIGV4
Y2VwdCBJbXBvcnRFcnJvcjoKICAgICBpbXBvcnQganNvbgogCiAKK2NsYXNzIFJ1bkluZm8ob2Jq
ZWN0KToKKyAgICAiIiJBIHdyYXBwZXIgYXJvdW5kIFJ1bkluZm8gZGljdHMgc28gdGhhdCB0aGV5
IGNhbiBiZSBoYXNoZWQgYnkgaWRlbnRpdHkiIiIKKworICAgIGRlZiBfX2luaXRfXyhzZWxmLCBk
aWN0X3ZhbHVlKToKKyAgICAgICAgc2VsZi5kYXRhID0gZGljdF92YWx1ZQorICAgICAgICBzZWxm
LmNhbm9uaWNhbF9yZXByID0gdHVwbGUodHVwbGUoaXRlbSkgZm9yIGl0ZW0gaW4gc29ydGVkKGRp
Y3RfdmFsdWUuaXRlbXMoKSkpCisKKyAgICBkZWYgX19nZXRpdGVtX18oc2VsZiwga2V5KToKKyAg
ICAgICAgcmV0dXJuIHNlbGYuZGF0YVtrZXldCisKKyAgICBkZWYgX19zZXRpdGVtX18oc2VsZiwg
a2V5LCB2YWx1ZSk6CisgICAgICAgIHJhaXNlIFR5cGVFcnJvcgorCisgICAgZGVmIF9faGFzaF9f
KHNlbGYpOgorICAgICAgICByZXR1cm4gaGFzaChzZWxmLmNhbm9uaWNhbF9yZXByKQorCisgICAg
ZGVmIF9fZXFfXyhzZWxmLCBvdGhlcik6CisgICAgICAgIHJldHVybiBzZWxmLmNhbm9uaWNhbF9y
ZXByID09IG90aGVyLmNhbm9uaWNhbF9yZXByCisKKyAgICBkZWYgaXRlcml0ZW1zKHNlbGYpOgor
ICAgICAgICBmb3Iga2V5LCB2YWx1ZSBpbiBzZWxmLmRhdGEuaXRlcml0ZW1zKCk6CisgICAgICAg
ICAgICB5aWVsZCBrZXksIHZhbHVlCisKKyAgICBkZWYgaXRlbXMoc2VsZik6CisgICAgICAgIHJl
dHVybiBsaXN0KHNlbGYuaXRlcml0ZW1zKCkpCisKKwogZGVmIHVwZGF0ZV9leHBlY3RlZCh0ZXN0
X3BhdGhzLCBzZXJ2ZV9yb290LCBsb2dfZmlsZV9uYW1lcywKLSAgICAgICAgICAgICAgICAgICAg
cmV2X29sZD1Ob25lLCByZXZfbmV3PSJIRUFEIiwgaWdub3JlX2V4aXN0aW5nPUZhbHNlLAotICAg
ICAgICAgICAgICAgICAgICBzeW5jX3Jvb3Q9Tm9uZSwgcHJvcGVydHlfb3JkZXI9Tm9uZSwgYm9v
bGVhbl9wcm9wZXJ0aWVzPU5vbmUsCi0gICAgICAgICAgICAgICAgICAgIHN0YWJpbGl0eT1Ob25l
KToKKyAgICAgICAgICAgICAgICAgICAgdXBkYXRlX3Byb3BlcnRpZXMsIHJldl9vbGQ9Tm9uZSwg
cmV2X25ldz0iSEVBRCIsCisgICAgICAgICAgICAgICAgICAgIGZ1bGxfdXBkYXRlPUZhbHNlLCBz
eW5jX3Jvb3Q9Tm9uZSwgZGlzYWJsZV9pbnRlcm1pdHRlbnQ9Tm9uZSwKKyAgICAgICAgICAgICAg
ICAgICAgdXBkYXRlX2ludGVybWl0dGVudD1GYWxzZSwgcmVtb3ZlX2ludGVybWl0dGVudD1GYWxz
ZSk6CiAgICAgIiIiVXBkYXRlIHRoZSBtZXRhZGF0YSBmaWxlcyBmb3Igd2ViLXBsYXRmb3JtLXRl
c3RzIGJhc2VkIG9uCiAgICAgdGhlIHJlc3VsdHMgb2J0YWluZWQgaW4gYSBwcmV2aW91cyBydW4g
b3IgcnVucwogCi0gICAgSWYgc3RhYmlsaXR5IGlzIG5vdCBOb25lLCBhc3N1bWUgbG9nX2ZpbGVf
bmFtZXMgcmVmZXJzIHRvIGxvZ3MgZnJvbSByZXBlYXRlZAotICAgIHRlc3Qgam9icywgZGlzYWJs
ZSB0ZXN0cyB0aGF0IGRvbid0IGJlaGF2ZSBhcyBleHBlY3RlZCBvbiBhbGwgcnVucyIiIgorICAg
IElmIGBkaXNhYmxlX2ludGVybWl0dGVudGAgaXMgbm90IE5vbmUsIGFzc3VtZSBsb2dfZmlsZV9u
YW1lcyByZWZlcnMgdG8gbG9ncyBmcm9tIHJlcGVhdGVkCisgICAgdGVzdCBqb2JzLCBkaXNhYmxl
IHRlc3RzIHRoYXQgZG9uJ3QgYmVoYXZlIGFzIGV4cGVjdGVkIG9uIGFsbCBydW5zCisKKyAgICBJ
ZiBgdXBkYXRlX2ludGVybWl0dGVudGAgaXMgVHJ1ZSwgaW50ZXJtaXR0ZW50IHN0YXR1c2VzIHdp
bGwgYmUgcmVjb3JkZWQgYXMgYGV4cGVjdGVkYCBpbgorICAgIHRoZSBtZXRhZGF0YS4KKworICAg
IElmIGByZW1vdmVfaW50ZXJtaXR0ZW50YCBpcyBUcnVlIGFuZCB1c2VkIGluIGNvbmp1bmN0aW9u
IHdpdGggYHVwZGF0ZV9pbnRlcm1pdHRlbnRgLCBhbnkKKyAgICBpbnRlcm1pdHRlbnQgc3RhdHVz
ZXMgd2hpY2ggYXJlIG5vdCBwcmVzZW50IGluIHRoZSBjdXJyZW50IHJ1biB3aWxsIGJlIHJlbW92
ZWQgZnJvbSB0aGUKKyAgICBtZXRhZGF0YSwgZWxzZSB0aGV5IGFyZSBsZWZ0IGluLiIiIgorCiAg
ICAgZG9fZGVsYXllZF9pbXBvcnRzKHNlcnZlX3Jvb3QpCiAKICAgICBpZF90ZXN0X21hcCA9IGxv
YWRfdGVzdF9kYXRhKHRlc3RfcGF0aHMpCiAKICAgICBmb3IgbWV0YWRhdGFfcGF0aCwgdXBkYXRl
ZF9pbmkgaW4gdXBkYXRlX2Zyb21fbG9ncyhpZF90ZXN0X21hcCwKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbG9nX2ZpbGVfbmFtZXMsCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWdu
b3JlX2V4aXN0aW5nPWlnbm9yZV9leGlzdGluZywKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9wZXJ0eV9vcmRlcj1wcm9wZXJ0eV9vcmRl
ciwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBib29sZWFuX3Byb3BlcnRpZXM9Ym9vbGVhbl9wcm9wZXJ0aWVzLAotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YWJpbGl0eT1zdGFiaWxp
dHkpOgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHVwZGF0ZV9wcm9wZXJ0aWVzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGVfaW50ZXJtaXR0ZW50LAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVwZGF0ZV9pbnRlcm1p
dHRlbnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgcmVtb3ZlX2ludGVybWl0dGVudCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBmdWxsX3VwZGF0ZSwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbG9nX2ZpbGVfbmFtZXMpOgog
CiAgICAgICAgIHdyaXRlX25ld19leHBlY3RlZChtZXRhZGF0YV9wYXRoLCB1cGRhdGVkX2luaSkK
LSAgICAgICAgaWYgc3RhYmlsaXR5OgorICAgICAgICBpZiBkaXNhYmxlX2ludGVybWl0dGVudDoK
ICAgICAgICAgICAgIGZvciB0ZXN0IGluIHVwZGF0ZWRfaW5pLml0ZXJjaGlsZHJlbigpOgogICAg
ICAgICAgICAgICAgIGZvciBzdWJ0ZXN0IGluIHRlc3QuaXRlcmNoaWxkcmVuKCk6CiAgICAgICAg
ICAgICAgICAgICAgIGlmIHN1YnRlc3QubmV3X2Rpc2FibGVkOgotICAgICAgICAgICAgICAgICAg
ICAgICAgcHJpbnQgImRpc2FibGVkOiAlcyIgJSBvcy5wYXRoLmRpcm5hbWUoc3VidGVzdC5yb290
LnRlc3RfcGF0aCkgKyAiLyIgKyBzdWJ0ZXN0Lm5hbWUKKyAgICAgICAgICAgICAgICAgICAgICAg
IHByaW50KCJkaXNhYmxlZDogJXMiICUgb3MucGF0aC5kaXJuYW1lKHN1YnRlc3Qucm9vdC50ZXN0
X3BhdGgpICsgIi8iICsgc3VidGVzdC5uYW1lKQogICAgICAgICAgICAgICAgICAgICBpZiB0ZXN0
Lm5ld19kaXNhYmxlZDoKLSAgICAgICAgICAgICAgICAgICAgICAgIHByaW50ICJkaXNhYmxlZDog
JXMiICUgdGVzdC5yb290LnRlc3RfcGF0aAorICAgICAgICAgICAgICAgICAgICAgICAgcHJpbnQo
ImRpc2FibGVkOiAlcyIgJSB0ZXN0LnJvb3QudGVzdF9wYXRoKQogCiAKLWRlZiBkb19kZWxheWVk
X2ltcG9ydHMoc2VydmVfcm9vdCk6CitkZWYgZG9fZGVsYXllZF9pbXBvcnRzKHNlcnZlX3Jvb3Q9
Tm9uZSk6CiAgICAgZ2xvYmFsIG1hbmlmZXN0LCBtYW5pZmVzdGl0ZW0KICAgICBmcm9tIG1hbmlm
ZXN0IGltcG9ydCBtYW5pZmVzdCwgaXRlbSBhcyBtYW5pZmVzdGl0ZW0KIApAQCAtMTEyLDcgKzE0
Nyw3IEBAIGRlZiB1bmV4cGVjdGVkX2NoYW5nZXMobWFuaWZlc3RzLCBjaGFuZ2VfZGF0YSwgZmls
ZXNfY2hhbmdlZCk6CiAjICAgZm9yIGVhY2ggY29uZGl0aW9uYWw6CiAjICAgICAgSWYgYWxsIHRo
ZSBuZXcgdmFsdWVzIG1hdGNoIChvciB0aGVyZSBhcmVuJ3QgYW55KSByZXRhaW4gdGhhdCBjb25k
aXRpb25hbAogIyAgICAgIElmIGFueSBuZXcgdmFsdWVzIG1pc21hdGNoOgotIyAgICAgICAgICAg
SWYgc3RhYmlsaXR5IGFuZCBhbnkgcmVwZWF0ZWQgdmFsdWVzIGRvbid0IG1hdGNoLCBkaXNhYmxl
IHRoZSB0ZXN0CisjICAgICAgICAgICBJZiBkaXNhYmxlX2ludGVybWl0dGVudCBhbmQgYW55IHJl
cGVhdGVkIHZhbHVlcyBkb24ndCBtYXRjaCwgZGlzYWJsZSB0aGUgdGVzdAogIyAgICAgICAgICAg
ZWxzZSBtYXJrIHRoZSB0ZXN0IGFzIG5lZWRpbmcgaHVtYW4gYXR0ZW50aW9uCiAjICAgQ2hlY2sg
aWYgYWxsIHRoZSBSSFMgdmFsdWVzIGFyZSB0aGUgc2FtZTsgaWYgc28gY29sbGFwc2UgdGhlIGNv
bmRpdGlvbmFscwogCkBAIC0xMzgsNiArMTczLDkgQEAgY2xhc3MgSW50ZXJuZWREYXRhKG9iamVj
dCk6CiAgICAgICAgICMgUmVzZXJ2ZSAwIGFzIGEgc2VudGluYWwKICAgICAgICAgc2VsZi5fZGF0
YSA9IFtOb25lXSwge30KIAorICAgIGRlZiBjbGVhcihzZWxmKToKKyAgICAgICAgc2VsZi5fX2lu
aXRfXygpCisKICAgICBkZWYgc3RvcmUoc2VsZiwgb2JqKToKICAgICAgICAgaWYgc2VsZi50eXBl
X2NvbnYgaXMgbm90IE5vbmU6CiAgICAgICAgICAgICBvYmogPSBzZWxmLnR5cGVfY29udihvYmop
CkBAIC0xNTksNiArMTk3LDEwIEBAIGNsYXNzIEludGVybmVkRGF0YShvYmplY3QpOgogICAgICAg
ICAgICAgb2JqID0gc2VsZi5yZXZfdHlwZV9jb252KG9iaikKICAgICAgICAgcmV0dXJuIG9iagog
CisgICAgZGVmIF9faXRlcl9fKHNlbGYpOgorICAgICAgICBmb3IgaSBpbiB4cmFuZ2UoMSwgbGVu
KHNlbGYuX2RhdGFbMF0pKToKKyAgICAgICAgICAgIHlpZWxkIHNlbGYuZ2V0KGkpCisKIAogY2xh
c3MgUnVuSW5mb0ludGVybmVkKEludGVybmVkRGF0YSk6CiAgICAgZGVmIHR5cGVfY29udihzZWxm
LCB2YWx1ZSk6CkBAIC0xNjksMTAgKzIxMSw0NyBAQCBjbGFzcyBSdW5JbmZvSW50ZXJuZWQoSW50
ZXJuZWREYXRhKToKIAogCiBwcm9wX2ludGVybiA9IEludGVybmVkRGF0YSg0KQotcnVuX2luZm9f
aW50ZXJuID0gUnVuSW5mb0ludGVybmVkKCkKK3J1bl9pbmZvX2ludGVybiA9IEludGVybmVkRGF0
YSg4KQogc3RhdHVzX2ludGVybiA9IEludGVybmVkRGF0YSg0KQogCiAKK2RlZiBwYWNrX3Jlc3Vs
dChkYXRhKToKKyAgICAjIEFzIGBzdGF0dXNfaW50ZXJuYCBub3JtYWxseSBoYW5kbGVzIG9uZSBz
dGF0dXMsIGlmIGBrbm93bl9pbnRlcm1pdHRlbnRgIGlzIHByZXNlbnQgaW4KKyAgICAjIHRoZSB0
ZXN0IGxvZ3MsIGludGVybiBhbmQgc3RvcmUgdGhpcyB3aXRoIHRoZSBgc3RhdHVzYCBpbiBhbiBh
cnJheSB1bnRpbCBuZWVkZWQuCisgICAgaWYgbm90IGRhdGEuZ2V0KCJrbm93bl9pbnRlcm1pdHRl
bnQiKToKKyAgICAgICAgcmV0dXJuIHN0YXR1c19pbnRlcm4uc3RvcmUoZGF0YS5nZXQoInN0YXR1
cyIpKQorICAgIHJlc3VsdCA9IGFycmF5LmFycmF5KCJCIikKKyAgICBleHBlY3RlZCA9IGRhdGEu
Z2V0KCJleHBlY3RlZCIpCisgICAgaWYgZXhwZWN0ZWQgaXMgTm9uZToKKyAgICAgICAgZXhwZWN0
ZWQgPSBkYXRhWyJzdGF0dXMiXQorICAgIHJlc3VsdF9wYXJ0cyA9IFtkYXRhWyJzdGF0dXMiXSwg
ZXhwZWN0ZWRdICsgZGF0YVsia25vd25faW50ZXJtaXR0ZW50Il0KKyAgICBmb3IgaSwgcGFydCBp
biBlbnVtZXJhdGUocmVzdWx0X3BhcnRzKToKKyAgICAgICAgdmFsdWUgPSBzdGF0dXNfaW50ZXJu
LnN0b3JlKHBhcnQpCisgICAgICAgIGlmIGkgJSAyID09IDA6CisgICAgICAgICAgICBhc3NlcnQg
dmFsdWUgPCAxNgorICAgICAgICAgICAgcmVzdWx0LmFwcGVuZCh2YWx1ZSA8PCA0KQorICAgICAg
ICBlbHNlOgorICAgICAgICAgICAgcmVzdWx0Wy0xXSArPSB2YWx1ZQorICAgIHJldHVybiByZXN1
bHQKKworCitkZWYgdW5wYWNrX3Jlc3VsdChkYXRhKToKKyAgICBpZiBpc2luc3RhbmNlKGRhdGEs
IGludCk6CisgICAgICAgIHJldHVybiAoc3RhdHVzX2ludGVybi5nZXQoZGF0YSksIE5vbmUpCisg
ICAgaWYgaXNpbnN0YW5jZShkYXRhLCB1bmljb2RlKToKKyAgICAgICAgcmV0dXJuIChkYXRhLCBO
b25lKQorICAgICMgVW5wYWNrIG11bHRpcGxlIHN0YXR1c2VzIGludG8gYSB0dXBsZSB0byBiZSB1
c2VkIGluIHRoZSBSZXN1bHRzIG5hbWVkIHR1cGxlIGJlbG93LAorICAgICMgc2VwYXJhdGluZyBg
c3RhdHVzYCBhbmQgYGtub3duX2ludGVybWl0dGVudGAuCisgICAgcmVzdWx0cyA9IFtdCisgICAg
Zm9yIHBhY2tlZF92YWx1ZSBpbiBkYXRhOgorICAgICAgICBmaXJzdCA9IHN0YXR1c19pbnRlcm4u
Z2V0KHBhY2tlZF92YWx1ZSA+PiA0KQorICAgICAgICBzZWNvbmQgPSBzdGF0dXNfaW50ZXJuLmdl
dChwYWNrZWRfdmFsdWUgJiAweDBGKQorICAgICAgICByZXN1bHRzLmFwcGVuZChmaXJzdCkKKyAg
ICAgICAgaWYgc2Vjb25kOgorICAgICAgICAgICAgcmVzdWx0cy5hcHBlbmQoc2Vjb25kKQorICAg
IHJldHVybiAoKHJlc3VsdHNbMF0sKSwgdHVwbGUocmVzdWx0c1sxOl0pKQorCisKIGRlZiBsb2Fk
X3Rlc3RfZGF0YSh0ZXN0X3BhdGhzKToKICAgICBtYW5pZmVzdF9sb2FkZXIgPSB0ZXN0bG9hZGVy
Lk1hbmlmZXN0TG9hZGVyKHRlc3RfcGF0aHMsIEZhbHNlKQogICAgIG1hbmlmZXN0cyA9IG1hbmlm
ZXN0X2xvYWRlci5sb2FkKCkKQEAgLTE4NCwyNSArMjYzLDI4IEBAIGRlZiBsb2FkX3Rlc3RfZGF0
YSh0ZXN0X3BhdGhzKToKICAgICByZXR1cm4gaWRfdGVzdF9tYXAKIAogCi1kZWYgdXBkYXRlX2Zy
b21fbG9ncyhpZF90ZXN0X21hcCwgKmxvZ19maWxlbmFtZXMsICoqa3dhcmdzKToKLSAgICBpZ25v
cmVfZXhpc3RpbmcgPSBrd2FyZ3MuZ2V0KCJpZ25vcmVfZXhpc3RpbmciLCBGYWxzZSkKLSAgICBw
cm9wZXJ0eV9vcmRlciA9IGt3YXJncy5nZXQoInByb3BlcnR5X29yZGVyIikKLSAgICBib29sZWFu
X3Byb3BlcnRpZXMgPSBrd2FyZ3MuZ2V0KCJib29sZWFuX3Byb3BlcnRpZXMiKQotICAgIHN0YWJp
bGl0eSA9IGt3YXJncy5nZXQoInN0YWJpbGl0eSIpCitkZWYgdXBkYXRlX2Zyb21fbG9ncyhpZF90
ZXN0X21hcCwgdXBkYXRlX3Byb3BlcnRpZXMsIGRpc2FibGVfaW50ZXJtaXR0ZW50LCB1cGRhdGVf
aW50ZXJtaXR0ZW50LAorICAgICAgICAgICAgICAgICAgICAgcmVtb3ZlX2ludGVybWl0dGVudCwg
ZnVsbF91cGRhdGUsICpsb2dfZmlsZW5hbWVzKToKIAotICAgIHVwZGF0ZXIgPSBFeHBlY3RlZFVw
ZGF0ZXIoaWRfdGVzdF9tYXAsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZ25vcmVf
ZXhpc3Rpbmc9aWdub3JlX2V4aXN0aW5nKQorICAgIHVwZGF0ZXIgPSBFeHBlY3RlZFVwZGF0ZXIo
aWRfdGVzdF9tYXApCiAKICAgICBmb3IgaSwgbG9nX2ZpbGVuYW1lIGluIGVudW1lcmF0ZShsb2df
ZmlsZW5hbWVzKToKICAgICAgICAgcHJpbnQoIlByb2Nlc3NpbmcgbG9nICVkLyVkIiAlIChpICsg
MSwgbGVuKGxvZ19maWxlbmFtZXMpKSkKICAgICAgICAgd2l0aCBvcGVuKGxvZ19maWxlbmFtZSkg
YXMgZjoKICAgICAgICAgICAgIHVwZGF0ZXIudXBkYXRlX2Zyb21fbG9nKGYpCiAKLSAgICBmb3Ig
aXRlbSBpbiB1cGRhdGVfcmVzdWx0cyhpZF90ZXN0X21hcCwgcHJvcGVydHlfb3JkZXIsIGJvb2xl
YW5fcHJvcGVydGllcywgc3RhYmlsaXR5KToKKyAgICBmb3IgaXRlbSBpbiB1cGRhdGVfcmVzdWx0
cyhpZF90ZXN0X21hcCwgdXBkYXRlX3Byb3BlcnRpZXMsIGZ1bGxfdXBkYXRlLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGVfaW50ZXJtaXR0ZW50LCB1cGRhdGVfaW50ZXJt
aXR0ZW50PXVwZGF0ZV9pbnRlcm1pdHRlbnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgcmVtb3ZlX2ludGVybWl0dGVudD1yZW1vdmVfaW50ZXJtaXR0ZW50KToKICAgICAgICAgeWll
bGQgaXRlbQogCiAKLWRlZiB1cGRhdGVfcmVzdWx0cyhpZF90ZXN0X21hcCwgcHJvcGVydHlfb3Jk
ZXIsIGJvb2xlYW5fcHJvcGVydGllcywgc3RhYmlsaXR5KToKK2RlZiB1cGRhdGVfcmVzdWx0cyhp
ZF90ZXN0X21hcCwKKyAgICAgICAgICAgICAgICAgICB1cGRhdGVfcHJvcGVydGllcywKKyAgICAg
ICAgICAgICAgICAgICBmdWxsX3VwZGF0ZSwKKyAgICAgICAgICAgICAgICAgICBkaXNhYmxlX2lu
dGVybWl0dGVudCwKKyAgICAgICAgICAgICAgICAgICB1cGRhdGVfaW50ZXJtaXR0ZW50LAorICAg
ICAgICAgICAgICAgICAgIHJlbW92ZV9pbnRlcm1pdHRlbnQpOgogICAgIHRlc3RfZmlsZV9pdGVt
cyA9IHNldChpZF90ZXN0X21hcC5pdGVydmFsdWVzKCkpCiAKICAgICBkZWZhdWx0X2V4cGVjdGVk
X2J5X3R5cGUgPSB7fQpAQCAtMjEzLDggKzI5NSw5IEBAIGRlZiB1cGRhdGVfcmVzdWx0cyhpZF90
ZXN0X21hcCwgcHJvcGVydHlfb3JkZXIsIGJvb2xlYW5fcHJvcGVydGllcywgc3RhYmlsaXR5KToK
ICAgICAgICAgICAgIGRlZmF1bHRfZXhwZWN0ZWRfYnlfdHlwZVsodGVzdF90eXBlLCBUcnVlKV0g
PSB0ZXN0X2Nscy5zdWJ0ZXN0X3Jlc3VsdF9jbHMuZGVmYXVsdF9leHBlY3RlZAogCiAgICAgZm9y
IHRlc3RfZmlsZSBpbiB0ZXN0X2ZpbGVfaXRlbXM6Ci0gICAgICAgIHVwZGF0ZWRfZXhwZWN0ZWQg
PSB0ZXN0X2ZpbGUudXBkYXRlKHByb3BlcnR5X29yZGVyLCBib29sZWFuX3Byb3BlcnRpZXMsIHN0
YWJpbGl0eSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVm
YXVsdF9leHBlY3RlZF9ieV90eXBlKQorICAgICAgICB1cGRhdGVkX2V4cGVjdGVkID0gdGVzdF9m
aWxlLnVwZGF0ZShkZWZhdWx0X2V4cGVjdGVkX2J5X3R5cGUsIHVwZGF0ZV9wcm9wZXJ0aWVzLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmdWxsX3VwZGF0ZSwg
ZGlzYWJsZV9pbnRlcm1pdHRlbnQsIHVwZGF0ZV9pbnRlcm1pdHRlbnQsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlbW92ZV9pbnRlcm1pdHRlbnQpCiAgICAg
ICAgIGlmIHVwZGF0ZWRfZXhwZWN0ZWQgaXMgbm90IE5vbmUgYW5kIHVwZGF0ZWRfZXhwZWN0ZWQu
bW9kaWZpZWQ6CiAgICAgICAgICAgICB5aWVsZCB0ZXN0X2ZpbGUubWV0YWRhdGFfcGF0aCwgdXBk
YXRlZF9leHBlY3RlZAogCkBAIC0yMjgsMzYgKzMxMSwxMiBAQCBkZWYgZGlyZWN0b3J5X21hbmlm
ZXN0cyhtZXRhZGF0YV9wYXRoKToKICAgICByZXR1cm4gcnYKIAogCi1kZWYgd3JpdGVfY2hhbmdl
cyhtZXRhZGF0YV9wYXRoLCBleHBlY3RlZCk6Ci0gICAgIyBGaXJzdCB3cml0ZSB0aGUgbmV3IG1h
bmlmZXN0IGZpbGVzIHRvIGEgdGVtcG9yYXJ5IGRpcmVjdG9yeQotICAgIHRlbXBfcGF0aCA9IHRl
bXBmaWxlLm1rZHRlbXAoZGlyPW9zLnBhdGguc3BsaXQobWV0YWRhdGFfcGF0aClbMF0pCi0gICAg
d3JpdGVfbmV3X2V4cGVjdGVkKHRlbXBfcGF0aCwgZXhwZWN0ZWQpCi0KLSAgICAjIENvcHkgYWxs
IGZpbGVzIGluIHRoZSByb290IHRvIHRoZSB0ZW1wb3JhcnkgbG9jYXRpb24gc2luY2UKLSAgICAj
IHRoZXNlIGNhbm5vdCBiZSBpbmkgZmlsZXMKLSAgICBrZWVwX2ZpbGVzID0gW2l0ZW0gZm9yIGl0
ZW0gaW4gb3MubGlzdGRpcihtZXRhZGF0YV9wYXRoKSBpZgotICAgICAgICAgICAgICAgICAgbm90
IG9zLnBhdGguaXNkaXIob3MucGF0aC5qb2luKG1ldGFkYXRhX3BhdGgsIGl0ZW0pKV0KLQotICAg
IGZvciBpdGVtIGluIGtlZXBfZmlsZXM6Ci0gICAgICAgIGRlc3RfZGlyID0gb3MucGF0aC5kaXJu
YW1lKG9zLnBhdGguam9pbih0ZW1wX3BhdGgsIGl0ZW0pKQotICAgICAgICBpZiBub3Qgb3MucGF0
aC5leGlzdHMoZGVzdF9kaXIpOgotICAgICAgICAgICAgb3MubWFrZWRpcnMoZGVzdF9kaXIpCi0g
ICAgICAgIHNodXRpbC5jb3B5ZmlsZShvcy5wYXRoLmpvaW4obWV0YWRhdGFfcGF0aCwgaXRlbSks
Ci0gICAgICAgICAgICAgICAgICAgICAgICBvcy5wYXRoLmpvaW4odGVtcF9wYXRoLCBpdGVtKSkK
LQotICAgICMgVGhlbiBtb3ZlIHRoZSBvbGQgbWFuaWZlc3QgZmlsZXMgdG8gYSBuZXcgbG9jYXRp
b24KLSAgICB0ZW1wX3BhdGhfMiA9IG1ldGFkYXRhX3BhdGggKyBzdHIodXVpZC51dWlkNCgpKQot
ICAgIG9zLnJlbmFtZShtZXRhZGF0YV9wYXRoLCB0ZW1wX3BhdGhfMikKLSAgICAjIE1vdmUgdGhl
IG5ldyBmaWxlcyB0byB0aGUgZGVzdGluYXRpb24gbG9jYXRpb24gYW5kIHJlbW92ZSB0aGUgb2xk
IGZpbGVzCi0gICAgb3MucmVuYW1lKHRlbXBfcGF0aCwgbWV0YWRhdGFfcGF0aCkKLSAgICBzaHV0
aWwucm10cmVlKHRlbXBfcGF0aF8yKQotCi0KIGRlZiB3cml0ZV9uZXdfZXhwZWN0ZWQobWV0YWRh
dGFfcGF0aCwgZXhwZWN0ZWQpOgogICAgICMgU2VyaWFsaXplIHRoZSBkYXRhIGJhY2sgdG8gYSBm
aWxlCiAgICAgcGF0aCA9IGV4cGVjdGVkX3BhdGgobWV0YWRhdGFfcGF0aCwgZXhwZWN0ZWQudGVz
dF9wYXRoKQogICAgIGlmIG5vdCBleHBlY3RlZC5pc19lbXB0eToKLSAgICAgICAgbWFuaWZlc3Rf
c3RyID0gd3B0bWFuaWZlc3Quc2VyaWFsaXplKGV4cGVjdGVkLm5vZGUsIHNraXBfZW1wdHlfZGF0
YT1UcnVlKQorICAgICAgICBtYW5pZmVzdF9zdHIgPSB3cHRtYW5pZmVzdC5zZXJpYWxpemUoZXhw
ZWN0ZWQubm9kZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHNraXBfZW1wdHlfZGF0YT1UcnVlKQogICAgICAgICBhc3NlcnQgbWFuaWZlc3Rfc3RyICE9ICIi
CiAgICAgICAgIGRpciA9IG9zLnBhdGguc3BsaXQocGF0aClbMF0KICAgICAgICAgaWYgbm90IG9z
LnBhdGguZXhpc3RzKGRpcik6CkBAIC0yODAsMzEgKzMzOSw1NSBAQCBkZWYgd3JpdGVfbmV3X2V4
cGVjdGVkKG1ldGFkYXRhX3BhdGgsIGV4cGVjdGVkKToKIAogCiBjbGFzcyBFeHBlY3RlZFVwZGF0
ZXIob2JqZWN0KToKLSAgICBkZWYgX19pbml0X18oc2VsZiwgaWRfdGVzdF9tYXAsIGlnbm9yZV9l
eGlzdGluZz1GYWxzZSk6CisgICAgZGVmIF9faW5pdF9fKHNlbGYsIGlkX3Rlc3RfbWFwKToKICAg
ICAgICAgc2VsZi5pZF90ZXN0X21hcCA9IGlkX3Rlc3RfbWFwCi0gICAgICAgIHNlbGYuaWdub3Jl
X2V4aXN0aW5nID0gaWdub3JlX2V4aXN0aW5nCiAgICAgICAgIHNlbGYucnVuX2luZm8gPSBOb25l
CiAgICAgICAgIHNlbGYuYWN0aW9uX21hcCA9IHsic3VpdGVfc3RhcnQiOiBzZWxmLnN1aXRlX3N0
YXJ0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgInRlc3Rfc3RhcnQiOiBzZWxmLnRlc3Rf
c3RhcnQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAidGVzdF9zdGF0dXMiOiBzZWxmLnRl
c3Rfc3RhdHVzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgInRlc3RfZW5kIjogc2VsZi50
ZXN0X2VuZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICJhc3NlcnRpb25fY291bnQiOiBz
ZWxmLmFzc2VydGlvbl9jb3VudCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICJsc2FuX2xl
YWsiOiBzZWxmLmxzYW5fbGVha30KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICJsc2FuX2xl
YWsiOiBzZWxmLmxzYW5fbGVhaywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICJtb3psZWFr
X29iamVjdCI6IHNlbGYubW96bGVha19vYmplY3QsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAibW96bGVha190b3RhbCI6IHNlbGYubW96bGVha190b3RhbH0KICAgICAgICAgc2VsZi50ZXN0
c192aXNpdGVkID0ge30KIAogICAgIGRlZiB1cGRhdGVfZnJvbV9sb2coc2VsZiwgbG9nX2ZpbGUp
OgorICAgICAgICAjIFdlIHN1cHBvcnQgdGhyZWUgcG9zc2libGUgZm9ybWF0czoKKyAgICAgICAg
IyAqIHdwdHJlcG9ydCBmb3JtYXQ7IG9uZSBqc29uIG9iamVjdCBpbiB0aGUgZmlsZSwgcG9zc2li
bHkgcHJldHR5LXByaW50ZWQKKyAgICAgICAgIyAqIHdwdHJlcG9ydCBmb3JtYXQ7IG9uZSBydW4g
cGVyIGxpbmUKKyAgICAgICAgIyAqIHJhdyBsb2cgZm9ybWF0CisKKyAgICAgICAgIyBUcnkgcmVh
ZGluZyBhIHNpbmdsZSBqc29uIG9iamVjdCBpbiB3cHRyZXBvcnQgZm9ybWF0CiAgICAgICAgIHNl
bGYucnVuX2luZm8gPSBOb25lCisgICAgICAgIHN1Y2Nlc3MgPSBzZWxmLmdldF93cHRyZXBvcnRf
ZGF0YShsb2dfZmlsZS5yZWFkKCkpCisKKyAgICAgICAgaWYgc3VjY2VzczoKKyAgICAgICAgICAg
IHJldHVybgorCisgICAgICAgICMgVHJ5IGxpbmUtc2VwYXJhdGVkIGpzb24gb2JqZWN0cyBpbiB3
cHRyZXBvcnQgZm9ybWF0CisgICAgICAgIGxvZ19maWxlLnNlZWsoMCkKKyAgICAgICAgZm9yIGxp
bmUgaW4gbG9nX2ZpbGU6CisgICAgICAgICAgICBzdWNjZXNzID0gc2VsZi5nZXRfd3B0cmVwb3J0
X2RhdGEobGluZSkKKyAgICAgICAgICAgIGlmIG5vdCBzdWNjZXNzOgorICAgICAgICAgICAgICAg
IGJyZWFrCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICByZXR1cm4KKworICAgICAgICAjIEFz
c3VtZSB0aGUgZmlsZSBpcyBhIHJhdyBsb2cKKyAgICAgICAgbG9nX2ZpbGUuc2VlaygwKQorICAg
ICAgICBzZWxmLnVwZGF0ZV9mcm9tX3Jhd19sb2cobG9nX2ZpbGUpCisKKyAgICBkZWYgZ2V0X3dw
dHJlcG9ydF9kYXRhKHNlbGYsIGlucHV0X3N0cik6CiAgICAgICAgIHRyeToKLSAgICAgICAgICAg
IGRhdGEgPSBqc29uLmxvYWQobG9nX2ZpbGUpCisgICAgICAgICAgICBkYXRhID0ganNvbi5sb2Fk
cyhpbnB1dF9zdHIpCiAgICAgICAgIGV4Y2VwdCBFeGNlcHRpb246CiAgICAgICAgICAgICBwYXNz
CiAgICAgICAgIGVsc2U6CiAgICAgICAgICAgICBpZiAiYWN0aW9uIiBub3QgaW4gZGF0YSBhbmQg
InJlc3VsdHMiIGluIGRhdGE6CiAgICAgICAgICAgICAgICAgc2VsZi51cGRhdGVfZnJvbV93cHRy
ZXBvcnRfbG9nKGRhdGEpCi0gICAgICAgICAgICAgICAgcmV0dXJuCi0KLSAgICAgICAgbG9nX2Zp
bGUuc2VlaygwKQotICAgICAgICBzZWxmLnVwZGF0ZV9mcm9tX3Jhd19sb2cobG9nX2ZpbGUpCisg
ICAgICAgICAgICAgICAgcmV0dXJuIFRydWUKKyAgICAgICAgcmV0dXJuIEZhbHNlCiAKICAgICBk
ZWYgdXBkYXRlX2Zyb21fcmF3X2xvZyhzZWxmLCBsb2dfZmlsZSk6CiAgICAgICAgIGFjdGlvbl9t
YXAgPSBzZWxmLmFjdGlvbl9tYXAKQEAgLTMyNywxMCArNDEwLDEyIEBAIGNsYXNzIEV4cGVjdGVk
VXBkYXRlcihvYmplY3QpOgogICAgICAgICAgICAgICAgIGFjdGlvbl9tYXBbInRlc3Rfc3RhdHVz
Il0oeyJ0ZXN0IjogdGVzdFsidGVzdCJdLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICJzdWJ0ZXN0Ijogc3VidGVzdFsibmFtZSJdLAogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICJzdGF0dXMiOiBzdWJ0ZXN0WyJzdGF0dXMiXSwK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiZXhwZWN0ZWQiOiBz
dWJ0ZXN0LmdldCgiZXhwZWN0ZWQiKX0pCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgImV4cGVjdGVkIjogc3VidGVzdC5nZXQoImV4cGVjdGVkIiksCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImtub3duX2ludGVybWl0dGVudCI6
IHN1YnRlc3QuZ2V0KCJrbm93bl9pbnRlcm1pdHRlbnQiLCBbXSl9KQogICAgICAgICAgICAgYWN0
aW9uX21hcFsidGVzdF9lbmQiXSh7InRlc3QiOiB0ZXN0WyJ0ZXN0Il0sCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAic3RhdHVzIjogdGVzdFsic3RhdHVzIl0sCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiZXhwZWN0ZWQiOiB0ZXN0LmdldCgiZXhwZWN0
ZWQiKX0pCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiZXhwZWN0ZWQiOiB0
ZXN0LmdldCgiZXhwZWN0ZWQiKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICJrbm93bl9pbnRlcm1pdHRlbnQiOiB0ZXN0LmdldCgia25vd25faW50ZXJtaXR0ZW50IiwgW10p
fSkKICAgICAgICAgICAgIGlmICJhc3NlcnRzIiBpbiB0ZXN0OgogICAgICAgICAgICAgICAgIGFz
c2VydHMgPSB0ZXN0WyJhc3NlcnRzIl0KICAgICAgICAgICAgICAgICBhY3Rpb25fbWFwWyJhc3Nl
cnRpb25fY291bnQiXSh7InRlc3QiOiB0ZXN0WyJ0ZXN0Il0sCkBAIC0zNDAsMjAgKzQyNSwyNiBA
QCBjbGFzcyBFeHBlY3RlZFVwZGF0ZXIob2JqZWN0KToKICAgICAgICAgZm9yIGl0ZW0gaW4gZGF0
YS5nZXQoImxzYW5fbGVha3MiLCBbXSk6CiAgICAgICAgICAgICBhY3Rpb25fbWFwWyJsc2FuX2xl
YWsiXShpdGVtKQogCisgICAgICAgIG1vemxlYWtfZGF0YSA9IGRhdGEuZ2V0KCJtb3psZWFrIiwg
e30pCisgICAgICAgIGZvciBzY29wZSwgc2NvcGVfZGF0YSBpbiBtb3psZWFrX2RhdGEuaXRlcml0
ZW1zKCk6CisgICAgICAgICAgICBmb3Iga2V5LCBhY3Rpb24gaW4gWygib2JqZWN0cyIsICJtb3ps
ZWFrX29iamVjdCIpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoInRvdGFsIiwg
Im1vemxlYWtfdG90YWwiKV06CisgICAgICAgICAgICAgICAgZm9yIGl0ZW0gaW4gc2NvcGVfZGF0
YS5nZXQoa2V5LCBbXSk6CisgICAgICAgICAgICAgICAgICAgIGl0ZW1fZGF0YSA9IHsic2NvcGUi
OiBzY29wZX0KKyAgICAgICAgICAgICAgICAgICAgaXRlbV9kYXRhLnVwZGF0ZShpdGVtKQorICAg
ICAgICAgICAgICAgICAgICBhY3Rpb25fbWFwW2FjdGlvbl0oaXRlbV9kYXRhKQorCiAgICAgZGVm
IHN1aXRlX3N0YXJ0KHNlbGYsIGRhdGEpOgotICAgICAgICBzZWxmLnJ1bl9pbmZvID0gcnVuX2lu
Zm9faW50ZXJuLnN0b3JlKGRhdGFbInJ1bl9pbmZvIl0pCisgICAgICAgIHNlbGYucnVuX2luZm8g
PSBydW5faW5mb19pbnRlcm4uc3RvcmUoUnVuSW5mbyhkYXRhWyJydW5faW5mbyJdKSkKIAogICAg
IGRlZiB0ZXN0X3N0YXJ0KHNlbGYsIGRhdGEpOgogICAgICAgICB0ZXN0X2lkID0gaW50ZXJuKGRh
dGFbInRlc3QiXS5lbmNvZGUoInV0ZjgiKSkKICAgICAgICAgdHJ5OgotICAgICAgICAgICAgdGVz
dF9kYXRhID0gc2VsZi5pZF90ZXN0X21hcFt0ZXN0X2lkXQorICAgICAgICAgICAgc2VsZi5pZF90
ZXN0X21hcFt0ZXN0X2lkXQogICAgICAgICBleGNlcHQgS2V5RXJyb3I6Ci0gICAgICAgICAgICBw
cmludCAiVGVzdCBub3QgZm91bmQgJXMsIHNraXBwaW5nIiAlIHRlc3RfaWQKKyAgICAgICAgICAg
IHByaW50KCJUZXN0IG5vdCBmb3VuZCAlcywgc2tpcHBpbmciICUgdGVzdF9pZCkKICAgICAgICAg
ICAgIHJldHVybgogCi0gICAgICAgIGlmIHNlbGYuaWdub3JlX2V4aXN0aW5nOgotICAgICAgICAg
ICAgdGVzdF9kYXRhLnNldF9yZXF1aXJlc191cGRhdGUoKQotICAgICAgICAgICAgdGVzdF9kYXRh
LmNsZWFyLmFwcGVuZCgiZXhwZWN0ZWQiKQogICAgICAgICBzZWxmLnRlc3RzX3Zpc2l0ZWRbdGVz
dF9pZF0gPSBzZXQoKQogCiAgICAgZGVmIHRlc3Rfc3RhdHVzKHNlbGYsIGRhdGEpOgpAQCAtMzY1
LDcgKzQ1Niw3IEBAIGNsYXNzIEV4cGVjdGVkVXBkYXRlcihvYmplY3QpOgogCiAgICAgICAgIHNl
bGYudGVzdHNfdmlzaXRlZFt0ZXN0X2lkXS5hZGQoc3VidGVzdCkKIAotICAgICAgICByZXN1bHQg
PSBzdGF0dXNfaW50ZXJuLnN0b3JlKGRhdGFbInN0YXR1cyJdKQorICAgICAgICByZXN1bHQgPSBw
YWNrX3Jlc3VsdChkYXRhKQogCiAgICAgICAgIHRlc3RfZGF0YS5zZXQodGVzdF9pZCwgc3VidGVz
dCwgInN0YXR1cyIsIHNlbGYucnVuX2luZm8sIHJlc3VsdCkKICAgICAgICAgaWYgZGF0YS5nZXQo
ImV4cGVjdGVkIikgYW5kIGRhdGFbImV4cGVjdGVkIl0gIT0gZGF0YVsic3RhdHVzIl06CkBAIC0z
ODAsMTAgKzQ3MSwxMCBAQCBjbGFzcyBFeHBlY3RlZFVwZGF0ZXIob2JqZWN0KToKICAgICAgICAg
aWYgdGVzdF9kYXRhIGlzIE5vbmU6CiAgICAgICAgICAgICByZXR1cm4KIAotICAgICAgICByZXN1
bHQgPSBzdGF0dXNfaW50ZXJuLnN0b3JlKGRhdGFbInN0YXR1cyJdKQorICAgICAgICByZXN1bHQg
PSBwYWNrX3Jlc3VsdChkYXRhKQogCiAgICAgICAgIHRlc3RfZGF0YS5zZXQodGVzdF9pZCwgTm9u
ZSwgInN0YXR1cyIsIHNlbGYucnVuX2luZm8sIHJlc3VsdCkKLSAgICAgICAgaWYgZGF0YS5nZXQo
ImV4cGVjdGVkIikgYW5kIGRhdGFbInN0YXR1cyJdICE9IGRhdGFbImV4cGVjdGVkIl06CisgICAg
ICAgIGlmIGRhdGEuZ2V0KCJleHBlY3RlZCIpIGFuZCBkYXRhWyJleHBlY3RlZCJdICE9IGRhdGFb
InN0YXR1cyJdOgogICAgICAgICAgICAgdGVzdF9kYXRhLnNldF9yZXF1aXJlc191cGRhdGUoKQog
ICAgICAgICBkZWwgc2VsZi50ZXN0c192aXNpdGVkW3Rlc3RfaWRdCiAKQEAgLTM5NywyNSArNDg4
LDQ2IEBAIGNsYXNzIEV4cGVjdGVkVXBkYXRlcihvYmplY3QpOgogICAgICAgICBpZiBkYXRhWyJj
b3VudCJdIDwgZGF0YVsibWluX2V4cGVjdGVkIl0gb3IgZGF0YVsiY291bnQiXSA+IGRhdGFbIm1h
eF9leHBlY3RlZCJdOgogICAgICAgICAgICAgdGVzdF9kYXRhLnNldF9yZXF1aXJlc191cGRhdGUo
KQogCi0gICAgZGVmIGxzYW5fbGVhayhzZWxmLCBkYXRhKToKKyAgICBkZWYgdGVzdF9mb3Jfc2Nv
cGUoc2VsZiwgZGF0YSk6CiAgICAgICAgIGRpcl9wYXRoID0gZGF0YS5nZXQoInNjb3BlIiwgIi8i
KQogICAgICAgICBkaXJfaWQgPSBpbnRlcm4ob3MucGF0aC5qb2luKGRpcl9wYXRoLCAiX19kaXJf
XyIpLnJlcGxhY2Uob3MucGF0aC5zZXAsICIvIikuZW5jb2RlKCJ1dGY4IikpCiAgICAgICAgIGlm
IGRpcl9pZC5zdGFydHN3aXRoKCIvIik6CiAgICAgICAgICAgICBkaXJfaWQgPSBkaXJfaWRbMTpd
Ci0gICAgICAgIHRlc3RfZGF0YSA9IHNlbGYuaWRfdGVzdF9tYXBbZGlyX2lkXQorICAgICAgICBy
ZXR1cm4gZGlyX2lkLCBzZWxmLmlkX3Rlc3RfbWFwW2Rpcl9pZF0KKworICAgIGRlZiBsc2FuX2xl
YWsoc2VsZiwgZGF0YSk6CisgICAgICAgIGRpcl9pZCwgdGVzdF9kYXRhID0gc2VsZi50ZXN0X2Zv
cl9zY29wZShkYXRhKQogICAgICAgICB0ZXN0X2RhdGEuc2V0KGRpcl9pZCwgTm9uZSwgImxzYW4i
LAogICAgICAgICAgICAgICAgICAgICAgIHNlbGYucnVuX2luZm8sIChkYXRhWyJmcmFtZXMiXSwg
ZGF0YS5nZXQoImFsbG93ZWRfbWF0Y2giKSkpCiAgICAgICAgIGlmIG5vdCBkYXRhLmdldCgiYWxs
b3dlZF9tYXRjaCIpOgogICAgICAgICAgICAgdGVzdF9kYXRhLnNldF9yZXF1aXJlc191cGRhdGUo
KQogCisgICAgZGVmIG1vemxlYWtfb2JqZWN0KHNlbGYsIGRhdGEpOgorICAgICAgICBkaXJfaWQs
IHRlc3RfZGF0YSA9IHNlbGYudGVzdF9mb3Jfc2NvcGUoZGF0YSkKKyAgICAgICAgdGVzdF9kYXRh
LnNldChkaXJfaWQsIE5vbmUsICJsZWFrLW9iamVjdCIsCisgICAgICAgICAgICAgICAgICAgICAg
c2VsZi5ydW5faW5mbywgKCIlczolcyIsIChkYXRhWyJwcm9jZXNzIl0sIGRhdGFbIm5hbWUiXSks
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEuZ2V0KCJhbGxvd2Vk
IikpKQorICAgICAgICBpZiBub3QgZGF0YS5nZXQoImFsbG93ZWQiKToKKyAgICAgICAgICAgIHRl
c3RfZGF0YS5zZXRfcmVxdWlyZXNfdXBkYXRlKCkKKworICAgIGRlZiBtb3psZWFrX3RvdGFsKHNl
bGYsIGRhdGEpOgorICAgICAgICBpZiBkYXRhWyJieXRlcyJdOgorICAgICAgICAgICAgZGlyX2lk
LCB0ZXN0X2RhdGEgPSBzZWxmLnRlc3RfZm9yX3Njb3BlKGRhdGEpCisgICAgICAgICAgICB0ZXN0
X2RhdGEuc2V0KGRpcl9pZCwgTm9uZSwgImxlYWstdGhyZXNob2xkIiwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgc2VsZi5ydW5faW5mbywgKGRhdGFbInByb2Nlc3MiXSwgZGF0YVsiYnl0ZXMi
XSwgZGF0YVsidGhyZXNob2xkIl0pKQorICAgICAgICAgICAgaWYgZGF0YVsiYnl0ZXMiXSA+IGRh
dGFbInRocmVzaG9sZCJdIG9yIGRhdGFbImJ5dGVzIl0gPCAwOgorICAgICAgICAgICAgICAgIHRl
c3RfZGF0YS5zZXRfcmVxdWlyZXNfdXBkYXRlKCkKKwogCiBkZWYgY3JlYXRlX3Rlc3RfdHJlZSht
ZXRhZGF0YV9wYXRoLCB0ZXN0X21hbmlmZXN0KToKICAgICAiIiJDcmVhdGUgYSBtYXAgb2YgdGVz
dF9pZCB0byBUZXN0RmlsZURhdGEgZm9yIHRoYXQgdGVzdC4KICAgICAiIiIKKyAgICBkb19kZWxh
eWVkX2ltcG9ydHMoKQogICAgIGlkX3Rlc3RfbWFwID0ge30KLSAgICBleGNsdWRlX3R5cGVzID0g
ZnJvemVuc2V0KFsic3R1YiIsICJoZWxwZXIiLCAibWFudWFsIiwgInN1cHBvcnQiLCAiY29uZm9y
bWFuY2VjaGVja2VyIl0pCi0gICAgYWxsX3R5cGVzID0gbWFuaWZlc3RpdGVtLml0ZW1fdHlwZXMu
a2V5cygpCi0gICAgaW5jbHVkZV90eXBlcyA9IHNldChhbGxfdHlwZXMpIC0gZXhjbHVkZV90eXBl
cworICAgIGV4Y2x1ZGVfdHlwZXMgPSBmcm96ZW5zZXQoWyJtYW51YWwiLCAic3VwcG9ydCIsICJj
b25mb3JtYW5jZWNoZWNrZXIiXSkKKyAgICBhbGxfdHlwZXMgPSBzZXQobWFuaWZlc3RpdGVtLml0
ZW1fdHlwZXMua2V5cygpKQorICAgIGFzc2VydCBhbGxfdHlwZXMgPiBleGNsdWRlX3R5cGVzCisg
ICAgaW5jbHVkZV90eXBlcyA9IGFsbF90eXBlcyAtIGV4Y2x1ZGVfdHlwZXMKICAgICBmb3IgaXRl
bV90eXBlLCB0ZXN0X3BhdGgsIHRlc3RzIGluIHRlc3RfbWFuaWZlc3QuaXRlcnR5cGVzKCppbmNs
dWRlX3R5cGVzKToKICAgICAgICAgdGVzdF9maWxlX2RhdGEgPSBUZXN0RmlsZURhdGEoaW50ZXJu
KHRlc3RfbWFuaWZlc3QudXJsX2Jhc2UuZW5jb2RlKCJ1dGY4IikpLAogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBpbnRlcm4oaXRlbV90eXBlLmVuY29kZSgidXRmOCIpKSwK
QEAgLTQ2Nyw3ICs1NzksNyBAQCBjbGFzcyBQYWNrZWRSZXN1bHRMaXN0KG9iamVjdCk6CiAKICAg
ICBkZWYgYXBwZW5kKHNlbGYsIHByb3AsIHJ1bl9pbmZvLCB2YWx1ZSk6CiAgICAgICAgIG91dF92
YWwgPSAocHJvcCA8PCAxMikgKyBydW5faW5mbwotICAgICAgICBpZiBwcm9wID09IHByb3BfaW50
ZXJuLnN0b3JlKCJzdGF0dXMiKToKKyAgICAgICAgaWYgcHJvcCA9PSBwcm9wX2ludGVybi5zdG9y
ZSgic3RhdHVzIikgYW5kIGlzaW5zdGFuY2UodmFsdWUsIGludCk6CiAgICAgICAgICAgICBvdXRf
dmFsICs9IHZhbHVlIDw8IDgKICAgICAgICAgZWxzZToKICAgICAgICAgICAgIGlmIG5vdCBoYXNh
dHRyKHNlbGYsICJyYXdfZGF0YSIpOgpAQCAtNDc5LDEyICs1OTEsMTIgQEAgY2xhc3MgUGFja2Vk
UmVzdWx0TGlzdChvYmplY3QpOgogICAgICAgICBwcm9wID0gcHJvcF9pbnRlcm4uZ2V0KChwYWNr
ZWQgJiAweEYwMDApID4+IDEyKQogCiAgICAgICAgIHZhbHVlX2lkeCA9IChwYWNrZWQgJiAweDBG
MDApID4+IDgKLSAgICAgICAgaWYgdmFsdWVfaWR4IGlzIDA6CisgICAgICAgIGlmIHZhbHVlX2lk
eCA9PSAwOgogICAgICAgICAgICAgdmFsdWUgPSBzZWxmLnJhd19kYXRhW2lkeF0KICAgICAgICAg
ZWxzZToKICAgICAgICAgICAgIHZhbHVlID0gc3RhdHVzX2ludGVybi5nZXQodmFsdWVfaWR4KQog
Ci0gICAgICAgIHJ1bl9pbmZvID0gcnVuX2luZm9faW50ZXJuLmdldCgocGFja2VkICYgMHgwMEZG
KSkKKyAgICAgICAgcnVuX2luZm8gPSBydW5faW5mb19pbnRlcm4uZ2V0KHBhY2tlZCAmIDB4MDBG
RikKIAogICAgICAgICByZXR1cm4gcHJvcCwgcnVuX2luZm8sIHZhbHVlCiAKQEAgLTQ5NSw3ICs2
MDcsNyBAQCBjbGFzcyBQYWNrZWRSZXN1bHRMaXN0KG9iamVjdCk6CiAKIGNsYXNzIFRlc3RGaWxl
RGF0YShvYmplY3QpOgogICAgIF9fc2xvdHNfXyA9ICgidXJsX2Jhc2UiLCAiaXRlbV90eXBlIiwg
InRlc3RfcGF0aCIsICJtZXRhZGF0YV9wYXRoIiwgInRlc3RzIiwKLSAgICAgICAgICAgICAgICAg
Il9yZXF1aXJlc191cGRhdGUiLCAiY2xlYXIiLCAiZGF0YSIpCisgICAgICAgICAgICAgICAgICJf
cmVxdWlyZXNfdXBkYXRlIiwgImRhdGEiKQogCiAgICAgZGVmIF9faW5pdF9fKHNlbGYsIHVybF9i
YXNlLCBpdGVtX3R5cGUsIG1ldGFkYXRhX3BhdGgsIHRlc3RfcGF0aCwgdGVzdHMpOgogICAgICAg
ICBzZWxmLnVybF9iYXNlID0gdXJsX2Jhc2UKQEAgLTUwNCwzNyArNjE2LDg2IEBAIGNsYXNzIFRl
c3RGaWxlRGF0YShvYmplY3QpOgogICAgICAgICBzZWxmLm1ldGFkYXRhX3BhdGggPSBtZXRhZGF0
YV9wYXRoCiAgICAgICAgIHNlbGYudGVzdHMgPSB7aW50ZXJuKGl0ZW0uaWQuZW5jb2RlKCJ1dGY4
IikpIGZvciBpdGVtIGluIHRlc3RzfQogICAgICAgICBzZWxmLl9yZXF1aXJlc191cGRhdGUgPSBG
YWxzZQotICAgICAgICBzZWxmLmNsZWFyID0gc2V0KCkKICAgICAgICAgc2VsZi5kYXRhID0gZGVm
YXVsdGRpY3QobGFtYmRhOiBkZWZhdWx0ZGljdChQYWNrZWRSZXN1bHRMaXN0KSkKIAogICAgIGRl
ZiBzZXRfcmVxdWlyZXNfdXBkYXRlKHNlbGYpOgogICAgICAgICBzZWxmLl9yZXF1aXJlc191cGRh
dGUgPSBUcnVlCiAKKyAgICBAcHJvcGVydHkKKyAgICBkZWYgcmVxdWlyZXNfdXBkYXRlKHNlbGYp
OgorICAgICAgICByZXR1cm4gc2VsZi5fcmVxdWlyZXNfdXBkYXRlCisKICAgICBkZWYgc2V0KHNl
bGYsIHRlc3RfaWQsIHN1YnRlc3RfaWQsIHByb3AsIHJ1bl9pbmZvLCB2YWx1ZSk6CiAgICAgICAg
IHNlbGYuZGF0YVt0ZXN0X2lkXVtzdWJ0ZXN0X2lkXS5hcHBlbmQocHJvcF9pbnRlcm4uc3RvcmUo
cHJvcCksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcnVu
X2luZm8sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFs
dWUpCiAKLSAgICBkZWYgZXhwZWN0ZWQoc2VsZiwgcHJvcGVydHlfb3JkZXIsIGJvb2xlYW5fcHJv
cGVydGllcyk6CisgICAgZGVmIGV4cGVjdGVkKHNlbGYsIHVwZGF0ZV9wcm9wZXJ0aWVzLCB1cGRh
dGVfaW50ZXJtaXR0ZW50LCByZW1vdmVfaW50ZXJtaXR0ZW50KToKICAgICAgICAgZXhwZWN0ZWRf
ZGF0YSA9IGxvYWRfZXhwZWN0ZWQoc2VsZi51cmxfYmFzZSwKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgc2VsZi5tZXRhZGF0YV9wYXRoLAogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBzZWxmLnRlc3RfcGF0aCwKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgc2VsZi50ZXN0cywKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgcHJvcGVydHlfb3JkZXIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGJvb2xlYW5fcHJvcGVydGllcykKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgdXBkYXRlX3Byb3BlcnRpZXMsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHVwZGF0ZV9pbnRlcm1pdHRlbnQsCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHJlbW92ZV9pbnRlcm1pdHRlbnQpCiAgICAgICAgIGlmIGV4cGVjdGVk
X2RhdGEgaXMgTm9uZToKICAgICAgICAgICAgIGV4cGVjdGVkX2RhdGEgPSBjcmVhdGVfZXhwZWN0
ZWQoc2VsZi51cmxfYmFzZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgc2VsZi50ZXN0X3BhdGgsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHByb3BlcnR5X29yZGVyLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBib29sZWFuX3Byb3BlcnRpZXMpCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHVwZGF0ZV9wcm9wZXJ0aWVzLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1cGRhdGVfaW50ZXJtaXR0ZW50LAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZW1vdmVfaW50ZXJtaXR0ZW50
KQogICAgICAgICByZXR1cm4gZXhwZWN0ZWRfZGF0YQogCi0gICAgZGVmIHVwZGF0ZShzZWxmLCBw
cm9wZXJ0eV9vcmRlciwgYm9vbGVhbl9wcm9wZXJ0aWVzLCBzdGFiaWxpdHksCi0gICAgICAgICAg
ICAgICBkZWZhdWx0X2V4cGVjdGVkX2J5X3R5cGUpOgotICAgICAgICBpZiBub3Qgc2VsZi5fcmVx
dWlyZXNfdXBkYXRlOgorICAgIGRlZiBpc19kaXNhYmxlZChzZWxmLCB0ZXN0KToKKyAgICAgICAg
IyBUaGlzIGNvbnNlcnZhdGl2ZWx5IGFzc3VtZXMgdGhhdCBhbnl0aGluZyB0aGF0IHdhcyBkaXNh
YmxlZCByZW1haW5zIGRpc2FibGVkCisgICAgICAgICMgd2UgY291bGQgcHJvYmFibHkgZG8gYmV0
dGVyIGJ5IGNoZWNraW5nIGlmIGl0J3MgaW4gdGhlIGZ1bGwgc2V0IG9mIHJ1biBpbmZvcworICAg
ICAgICByZXR1cm4gdGVzdC5oYXNfa2V5KCJkaXNhYmxlZCIpCisKKyAgICBkZWYgb3JwaGFuX3N1
YnRlc3RzKHNlbGYsIGV4cGVjdGVkKToKKyAgICAgICAgIyBSZXR1cm4gc3VidGVzdCBub2RlcyBw
cmVzZW50IGluIHRoZSBleHBlY3RlZCBmaWxlLCBidXQgbWlzc2luZyBmcm9tIHRoZSBkYXRhCisg
ICAgICAgIHJ2ID0gW10KKworICAgICAgICBmb3IgdGVzdF9pZCwgc3VidGVzdHMgaW4gc2VsZi5k
YXRhLml0ZXJpdGVtcygpOgorICAgICAgICAgICAgdGVzdCA9IGV4cGVjdGVkLmdldF90ZXN0KHRl
c3RfaWQuZGVjb2RlKCJ1dGY4IikpCisgICAgICAgICAgICBpZiBub3QgdGVzdDoKKyAgICAgICAg
ICAgICAgICBjb250aW51ZQorICAgICAgICAgICAgc2Vlbl9zdWJ0ZXN0cyA9IHNldChpdGVtLmRl
Y29kZSgidXRmOCIpIGZvciBpdGVtIGluIHN1YnRlc3RzLml0ZXJrZXlzKCkgaWYgaXRlbSBpcyBu
b3QgTm9uZSkKKyAgICAgICAgICAgIG1pc3Npbmdfc3VidGVzdHMgPSBzZXQodGVzdC5zdWJ0ZXN0
cy5rZXlzKCkpIC0gc2Vlbl9zdWJ0ZXN0cworICAgICAgICAgICAgZm9yIGl0ZW0gaW4gbWlzc2lu
Z19zdWJ0ZXN0czoKKyAgICAgICAgICAgICAgICBleHBlY3RlZF9zdWJ0ZXN0ID0gdGVzdC5nZXRf
c3VidGVzdChpdGVtKQorICAgICAgICAgICAgICAgIGlmIG5vdCBzZWxmLmlzX2Rpc2FibGVkKGV4
cGVjdGVkX3N1YnRlc3QpOgorICAgICAgICAgICAgICAgICAgICBydi5hcHBlbmQoZXhwZWN0ZWRf
c3VidGVzdCkKKyAgICAgICAgICAgIGZvciBuYW1lIGluIHNlZW5fc3VidGVzdHM6CisgICAgICAg
ICAgICAgICAgc3VidGVzdCA9IHRlc3QuZ2V0X3N1YnRlc3QobmFtZSkKKyAgICAgICAgICAgICAg
ICAjIElmIGFueSBvZiB0aGUgaXRlbXMgaGF2ZSBjaGlsZHJlbiAoaWUgc3Vic3VidGVzdHMpIHdl
IHdhbnQgdG8gcHJ1bmUgdGhlcworICAgICAgICAgICAgICAgIGlmIHN1YnRlc3QuY2hpbGRyZW46
CisgICAgICAgICAgICAgICAgICAgIHJ2LmV4dGVuZChzdWJ0ZXN0LmNoaWxkcmVuKQorCisgICAg
ICAgIHJldHVybiBydgorCisgICAgZGVmIHVwZGF0ZShzZWxmLCBkZWZhdWx0X2V4cGVjdGVkX2J5
X3R5cGUsIHVwZGF0ZV9wcm9wZXJ0aWVzLAorICAgICAgICAgICAgICAgZnVsbF91cGRhdGU9RmFs
c2UsIGRpc2FibGVfaW50ZXJtaXR0ZW50PU5vbmUsIHVwZGF0ZV9pbnRlcm1pdHRlbnQ9RmFsc2Us
CisgICAgICAgICAgICAgICByZW1vdmVfaW50ZXJtaXR0ZW50PUZhbHNlKToKKyAgICAgICAgIyBJ
ZiB3ZSBhcmUgZG9pbmcgYSBmdWxsIHVwZGF0ZSwgd2UgbWF5IG5lZWQgdG8gcHJ1bmUgbWlzc2lu
ZyBub2RlcworICAgICAgICAjIGV2ZW4gaWYgdGhlIGV4cGVjdGF0aW9ucyBkaWRuJ3QgY2hhbmdl
CisgICAgICAgIGlmIG5vdCBzZWxmLnJlcXVpcmVzX3VwZGF0ZSBhbmQgbm90IGZ1bGxfdXBkYXRl
OgogICAgICAgICAgICAgcmV0dXJuCiAKLSAgICAgICAgZXhwZWN0ZWQgPSBzZWxmLmV4cGVjdGVk
KHByb3BlcnR5X29yZGVyLCBib29sZWFuX3Byb3BlcnRpZXMpCisgICAgICAgIGV4cGVjdGVkID0g
c2VsZi5leHBlY3RlZCh1cGRhdGVfcHJvcGVydGllcywKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHVwZGF0ZV9pbnRlcm1pdHRlbnQ9dXBkYXRlX2ludGVybWl0dGVudCwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlbW92ZV9pbnRlcm1pdHRlbnQ9cmVtb3ZlX2lu
dGVybWl0dGVudCkKKworICAgICAgICBpZiBmdWxsX3VwZGF0ZToKKyAgICAgICAgICAgIG9ycGhh
bnMgPSBzZWxmLm9ycGhhbl9zdWJ0ZXN0cyhleHBlY3RlZCkKKworICAgICAgICAgICAgaWYgbm90
IHNlbGYucmVxdWlyZXNfdXBkYXRlIGFuZCBub3Qgb3JwaGFuczoKKyAgICAgICAgICAgICAgICBy
ZXR1cm4KKworICAgICAgICAgICAgaWYgb3JwaGFuczoKKyAgICAgICAgICAgICAgICBleHBlY3Rl
ZC5tb2RpZmllZCA9IFRydWUKKyAgICAgICAgICAgICAgICBmb3IgaXRlbSBpbiBvcnBoYW5zOgor
ICAgICAgICAgICAgICAgICAgICBpdGVtLnJlbW92ZSgpCisKICAgICAgICAgZXhwZWN0ZWRfYnlf
dGVzdCA9IHt9CiAKICAgICAgICAgZm9yIHRlc3RfaWQgaW4gc2VsZi50ZXN0czoKQEAgLTU0Miw2
NyArNzAzLDY5IEBAIGNsYXNzIFRlc3RGaWxlRGF0YShvYmplY3QpOgogICAgICAgICAgICAgICAg
IGV4cGVjdGVkLmFwcGVuZChtYW5pZmVzdHVwZGF0ZS5UZXN0Tm9kZS5jcmVhdGUodGVzdF9pZCkp
CiAgICAgICAgICAgICB0ZXN0X2V4cGVjdGVkID0gZXhwZWN0ZWQuZ2V0X3Rlc3QodGVzdF9pZCkK
ICAgICAgICAgICAgIGV4cGVjdGVkX2J5X3Rlc3RbdGVzdF9pZF0gPSB0ZXN0X2V4cGVjdGVkCi0g
ICAgICAgICAgICBmb3IgcHJvcCBpbiBzZWxmLmNsZWFyOgotICAgICAgICAgICAgICAgIHRlc3Rf
ZXhwZWN0ZWQuY2xlYXIocHJvcCkKIAogICAgICAgICBmb3IgdGVzdF9pZCwgdGVzdF9kYXRhIGlu
IHNlbGYuZGF0YS5pdGVyaXRlbXMoKToKKyAgICAgICAgICAgIHRlc3RfaWQgPSB0ZXN0X2lkLmRl
Y29kZSgidXRmOCIpCiAgICAgICAgICAgICBmb3Igc3VidGVzdF9pZCwgcmVzdWx0c19saXN0IGlu
IHRlc3RfZGF0YS5pdGVyaXRlbXMoKToKICAgICAgICAgICAgICAgICBmb3IgcHJvcCwgcnVuX2lu
Zm8sIHZhbHVlIGluIHJlc3VsdHNfbGlzdDoKICAgICAgICAgICAgICAgICAgICAgIyBTcGVjaWFs
IGNhc2UgZGlyZWN0b3J5IG1ldGFkYXRhCiAgICAgICAgICAgICAgICAgICAgIGlmIHN1YnRlc3Rf
aWQgaXMgTm9uZSBhbmQgdGVzdF9pZC5lbmRzd2l0aCgiX19kaXJfXyIpOgogICAgICAgICAgICAg
ICAgICAgICAgICAgaWYgcHJvcCA9PSAibHNhbiI6CiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgZXhwZWN0ZWQuc2V0X2xzYW4ocnVuX2luZm8sIHZhbHVlKQorICAgICAgICAgICAgICAgICAg
ICAgICAgZWxpZiBwcm9wID09ICJsZWFrLW9iamVjdCI6CisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgZXhwZWN0ZWQuc2V0X2xlYWtfb2JqZWN0KHJ1bl9pbmZvLCB2YWx1ZSkKKyAgICAgICAg
ICAgICAgICAgICAgICAgIGVsaWYgcHJvcCA9PSAibGVhay10aHJlc2hvbGQiOgorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGV4cGVjdGVkLnNldF9sZWFrX3RocmVzaG9sZChydW5faW5mbywg
dmFsdWUpCiAgICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZQogCi0gICAgICAgICAgICAg
ICAgICAgIGlmIHByb3AgPT0gInN0YXR1cyI6Ci0gICAgICAgICAgICAgICAgICAgICAgICB2YWx1
ZSA9IFJlc3VsdCh2YWx1ZSwgZGVmYXVsdF9leHBlY3RlZF9ieV90eXBlW3NlbGYuaXRlbV90eXBl
LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBzdWJ0ZXN0X2lkIGlzIG5vdCBOb25lXSkKLQogICAgICAgICAgICAg
ICAgICAgICB0ZXN0X2V4cGVjdGVkID0gZXhwZWN0ZWRfYnlfdGVzdFt0ZXN0X2lkXQogICAgICAg
ICAgICAgICAgICAgICBpZiBzdWJ0ZXN0X2lkIGlzIE5vbmU6CiAgICAgICAgICAgICAgICAgICAg
ICAgICBpdGVtX2V4cGVjdGVkID0gdGVzdF9leHBlY3RlZAogICAgICAgICAgICAgICAgICAgICBl
bHNlOgorICAgICAgICAgICAgICAgICAgICAgICAgaWYgaXNpbnN0YW5jZShzdWJ0ZXN0X2lkLCBz
dHIpOgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN1YnRlc3RfaWQgPSBzdWJ0ZXN0X2lk
LmRlY29kZSgidXRmOCIpCiAgICAgICAgICAgICAgICAgICAgICAgICBpdGVtX2V4cGVjdGVkID0g
dGVzdF9leHBlY3RlZC5nZXRfc3VidGVzdChzdWJ0ZXN0X2lkKQorCiAgICAgICAgICAgICAgICAg
ICAgIGlmIHByb3AgPT0gInN0YXR1cyI6CisgICAgICAgICAgICAgICAgICAgICAgICBzdGF0dXMs
IGtub3duX2ludGVybWl0dGVudCA9IHVucGFja19yZXN1bHQodmFsdWUpCisgICAgICAgICAgICAg
ICAgICAgICAgICB2YWx1ZSA9IFJlc3VsdChzdGF0dXMsCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBrbm93bl9pbnRlcm1pdHRlbnQsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBkZWZhdWx0X2V4cGVjdGVkX2J5X3R5cGVbc2VsZi5pdGVtX3R5
cGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgc3VidGVzdF9pZCBpcyBub3QgTm9uZV0pCiAgICAgICAgICAgICAgICAgICAg
ICAgICBpdGVtX2V4cGVjdGVkLnNldF9yZXN1bHQocnVuX2luZm8sIHZhbHVlKQogICAgICAgICAg
ICAgICAgICAgICBlbGlmIHByb3AgPT0gImFzc2VydHMiOgogICAgICAgICAgICAgICAgICAgICAg
ICAgaXRlbV9leHBlY3RlZC5zZXRfYXNzZXJ0cyhydW5faW5mbywgdmFsdWUpCiAKLSAgICAgICAg
ZXhwZWN0ZWQuY29hbGVzY2VfcHJvcGVydGllcyhzdGFiaWxpdHk9c3RhYmlsaXR5KQorICAgICAg
ICBleHBlY3RlZC51cGRhdGUoZnVsbF91cGRhdGU9ZnVsbF91cGRhdGUsCisgICAgICAgICAgICAg
ICAgICAgICAgICBkaXNhYmxlX2ludGVybWl0dGVudD1kaXNhYmxlX2ludGVybWl0dGVudCkKICAg
ICAgICAgZm9yIHRlc3QgaW4gZXhwZWN0ZWQuaXRlcmNoaWxkcmVuKCk6CiAgICAgICAgICAgICBm
b3Igc3VidGVzdCBpbiB0ZXN0Lml0ZXJjaGlsZHJlbigpOgotICAgICAgICAgICAgICAgIHN1YnRl
c3QuY29hbGVzY2VfcHJvcGVydGllcyhzdGFiaWxpdHk9c3RhYmlsaXR5KQotICAgICAgICAgICAg
dGVzdC5jb2FsZXNjZV9wcm9wZXJ0aWVzKHN0YWJpbGl0eT1zdGFiaWxpdHkpCisgICAgICAgICAg
ICAgICAgc3VidGVzdC51cGRhdGUoZnVsbF91cGRhdGU9ZnVsbF91cGRhdGUsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgZGlzYWJsZV9pbnRlcm1pdHRlbnQ9ZGlzYWJsZV9pbnRlcm1p
dHRlbnQpCisgICAgICAgICAgICB0ZXN0LnVwZGF0ZShmdWxsX3VwZGF0ZT1mdWxsX3VwZGF0ZSwK
KyAgICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGVfaW50ZXJtaXR0ZW50PWRpc2FibGVfaW50
ZXJtaXR0ZW50KQogCiAgICAgICAgIHJldHVybiBleHBlY3RlZAogCiAKLVJlc3VsdCA9IG5hbWVk
dHVwbGUoIlJlc3VsdCIsIFsic3RhdHVzIiwgImRlZmF1bHRfZXhwZWN0ZWQiXSkKK1Jlc3VsdCA9
IG5hbWVkdHVwbGUoIlJlc3VsdCIsIFsic3RhdHVzIiwgImtub3duX2ludGVybWl0dGVudCIsICJk
ZWZhdWx0X2V4cGVjdGVkIl0pCiAKIAotZGVmIGNyZWF0ZV9leHBlY3RlZCh1cmxfYmFzZSwgdGVz
dF9wYXRoLCBwcm9wZXJ0eV9vcmRlcj1Ob25lLAotICAgICAgICAgICAgICAgICAgICBib29sZWFu
X3Byb3BlcnRpZXM9Tm9uZSk6CitkZWYgY3JlYXRlX2V4cGVjdGVkKHVybF9iYXNlLCB0ZXN0X3Bh
dGgsIHJ1bl9pbmZvX3Byb3BlcnRpZXMsIHVwZGF0ZV9pbnRlcm1pdHRlbnQsIHJlbW92ZV9pbnRl
cm1pdHRlbnQpOgogICAgIGV4cGVjdGVkID0gbWFuaWZlc3R1cGRhdGUuRXhwZWN0ZWRNYW5pZmVz
dChOb25lLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0
ZXN0X3BhdGgsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHVybF9iYXNlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBwcm9wZXJ0eV9vcmRlcj1wcm9wZXJ0eV9vcmRlciwKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgYm9vbGVhbl9wcm9wZXJ0aWVzPWJvb2xlYW5fcHJvcGVy
dGllcykKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcnVu
X2luZm9fcHJvcGVydGllcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgdXBkYXRlX2ludGVybWl0dGVudCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgcmVtb3ZlX2ludGVybWl0dGVudCkKICAgICByZXR1cm4gZXhw
ZWN0ZWQKIAogCi1kZWYgbG9hZF9leHBlY3RlZCh1cmxfYmFzZSwgbWV0YWRhdGFfcGF0aCwgdGVz
dF9wYXRoLCB0ZXN0cywgcHJvcGVydHlfb3JkZXI9Tm9uZSwKLSAgICAgICAgICAgICAgICAgIGJv
b2xlYW5fcHJvcGVydGllcz1Ob25lKToKK2RlZiBsb2FkX2V4cGVjdGVkKHVybF9iYXNlLCBtZXRh
ZGF0YV9wYXRoLCB0ZXN0X3BhdGgsIHRlc3RzLCBydW5faW5mb19wcm9wZXJ0aWVzLCB1cGRhdGVf
aW50ZXJtaXR0ZW50LCByZW1vdmVfaW50ZXJtaXR0ZW50KToKICAgICBleHBlY3RlZF9tYW5pZmVz
dCA9IG1hbmlmZXN0dXBkYXRlLmdldF9tYW5pZmVzdChtZXRhZGF0YV9wYXRoLAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RfcGF0aCwKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1cmxfYmFz
ZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBw
cm9wZXJ0eV9vcmRlcj1wcm9wZXJ0eV9vcmRlciwKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBib29sZWFuX3Byb3BlcnRpZXM9Ym9vbGVhbl9wcm9w
ZXJ0aWVzKQotICAgIGlmIGV4cGVjdGVkX21hbmlmZXN0IGlzIE5vbmU6Ci0gICAgICAgIHJldHVy
bgotCi0gICAgIyBSZW1vdmUgZXhwZWN0ZWQgZGF0YSBmb3IgdGVzdHMgdGhhdCBubyBsb25nZXIg
ZXhpc3QKLSAgICBmb3IgdGVzdCBpbiBleHBlY3RlZF9tYW5pZmVzdC5pdGVyY2hpbGRyZW4oKToK
LSAgICAgICAgaWYgdGVzdC5pZCBub3QgaW4gdGVzdHM6Ci0gICAgICAgICAgICB0ZXN0LnJlbW92
ZSgpCi0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBydW5faW5mb19wcm9wZXJ0aWVzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHVwZGF0ZV9pbnRlcm1pdHRlbnQsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVtb3ZlX2ludGVybWl0dGVudCkK
ICAgICByZXR1cm4gZXhwZWN0ZWRfbWFuaWZlc3QKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9w
cm9kdWN0cy5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9wcm9kdWN0cy5weQppbmRleCAwYzFmODZmZjA2YWVl
NzM5YWIyZjZjYTNmMWEzZDJkMDg2OGU5NjcyLi5lMzExNzA0MjcwOWY5OWY0ZTA0NDNkYzBkZmFm
NTYxYWQwYjU0OGIwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvcHJvZHVjdHMucHkKKysrIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5u
ZXIvd3B0cnVubmVyL3Byb2R1Y3RzLnB5CkBAIC0zLDYgKzMsNyBAQCBpbXBvcnQgaW1wCiAKIGZy
b20gLmJyb3dzZXJzIGltcG9ydCBwcm9kdWN0X2xpc3QKIAorCiBkZWYgcHJvZHVjdHNfZW5hYmxl
ZChjb25maWcpOgogICAgIG5hbWVzID0gY29uZmlnLmdldCgicHJvZHVjdHMiLCB7fSkua2V5cygp
CiAgICAgaWYgbm90IG5hbWVzOgpAQCAtMTAsNiArMTEsNyBAQCBkZWYgcHJvZHVjdHNfZW5hYmxl
ZChjb25maWcpOgogICAgIGVsc2U6CiAgICAgICAgIHJldHVybiBuYW1lcwogCisKIGRlZiBwcm9k
dWN0X21vZHVsZShjb25maWcsIHByb2R1Y3QpOgogICAgIGlmIHByb2R1Y3Qgbm90IGluIHByb2R1
Y3RzX2VuYWJsZWQoY29uZmlnKToKICAgICAgICAgcmFpc2UgVmFsdWVFcnJvcigiVW5rbm93biBw
cm9kdWN0ICVzIiAlIHByb2R1Y3QpCkBAIC0yNiwyOCArMjgsMzkgQEAgZGVmIHByb2R1Y3RfbW9k
dWxlKGNvbmZpZywgcHJvZHVjdCk6CiAgICAgcmV0dXJuIG1vZHVsZQogCiAKLWRlZiBsb2FkX3By
b2R1Y3QoY29uZmlnLCBwcm9kdWN0KToKLSAgICBtb2R1bGUgPSBwcm9kdWN0X21vZHVsZShjb25m
aWcsIHByb2R1Y3QpCi0gICAgZGF0YSA9IG1vZHVsZS5fX3dwdHJ1bm5lcl9fCi0KLSAgICBjaGVj
a19hcmdzID0gZ2V0YXR0cihtb2R1bGUsIGRhdGFbImNoZWNrX2FyZ3MiXSkKLSAgICBicm93c2Vy
X2NscyA9IGdldGF0dHIobW9kdWxlLCBkYXRhWyJicm93c2VyIl0pCi0gICAgYnJvd3Nlcl9rd2Fy
Z3MgPSBnZXRhdHRyKG1vZHVsZSwgZGF0YVsiYnJvd3Nlcl9rd2FyZ3MiXSkKLSAgICBleGVjdXRv
cl9rd2FyZ3MgPSBnZXRhdHRyKG1vZHVsZSwgZGF0YVsiZXhlY3V0b3Jfa3dhcmdzIl0pCi0gICAg
ZW52X29wdGlvbnMgPSBnZXRhdHRyKG1vZHVsZSwgZGF0YVsiZW52X29wdGlvbnMiXSkoKQotICAg
IGVudl9leHRyYXMgPSBnZXRhdHRyKG1vZHVsZSwgZGF0YVsiZW52X2V4dHJhcyJdKQotICAgIHJ1
bl9pbmZvX2V4dHJhcyA9IChnZXRhdHRyKG1vZHVsZSwgZGF0YVsicnVuX2luZm9fZXh0cmFzIl0p
Ci0gICAgICAgICAgICAgICAgICAgICAgIGlmICJydW5faW5mb19leHRyYXMiIGluIGRhdGEgZWxz
ZSBsYW1iZGEgKiprd2FyZ3M6e30pCi0KLSAgICBleGVjdXRvcl9jbGFzc2VzID0ge30KLSAgICBm
b3IgdGVzdF90eXBlLCBjbHNfbmFtZSBpbiBkYXRhWyJleGVjdXRvciJdLml0ZXJpdGVtcygpOgot
ICAgICAgICBjbHMgPSBnZXRhdHRyKG1vZHVsZSwgY2xzX25hbWUpCi0gICAgICAgIGV4ZWN1dG9y
X2NsYXNzZXNbdGVzdF90eXBlXSA9IGNscwotCi0gICAgcmV0dXJuIChjaGVja19hcmdzLAotICAg
ICAgICAgICAgYnJvd3Nlcl9jbHMsIGJyb3dzZXJfa3dhcmdzLAotICAgICAgICAgICAgZXhlY3V0
b3JfY2xhc3NlcywgZXhlY3V0b3Jfa3dhcmdzLAotICAgICAgICAgICAgZW52X29wdGlvbnMsIGVu
dl9leHRyYXMsIHJ1bl9pbmZvX2V4dHJhcykKK2NsYXNzIFByb2R1Y3Qob2JqZWN0KToKKyAgICBk
ZWYgX19pbml0X18oc2VsZiwgY29uZmlnLCBwcm9kdWN0KToKKyAgICAgICAgbW9kdWxlID0gcHJv
ZHVjdF9tb2R1bGUoY29uZmlnLCBwcm9kdWN0KQorICAgICAgICBkYXRhID0gbW9kdWxlLl9fd3B0
cnVubmVyX18KKyAgICAgICAgc2VsZi5uYW1lID0gcHJvZHVjdAorICAgICAgICBzZWxmLmNoZWNr
X2FyZ3MgPSBnZXRhdHRyKG1vZHVsZSwgZGF0YVsiY2hlY2tfYXJncyJdKQorICAgICAgICBzZWxm
LmJyb3dzZXJfY2xzID0gZ2V0YXR0cihtb2R1bGUsIGRhdGFbImJyb3dzZXIiXSkKKyAgICAgICAg
c2VsZi5nZXRfYnJvd3Nlcl9rd2FyZ3MgPSBnZXRhdHRyKG1vZHVsZSwgZGF0YVsiYnJvd3Nlcl9r
d2FyZ3MiXSkKKyAgICAgICAgc2VsZi5nZXRfZXhlY3V0b3Jfa3dhcmdzID0gZ2V0YXR0cihtb2R1
bGUsIGRhdGFbImV4ZWN1dG9yX2t3YXJncyJdKQorICAgICAgICBzZWxmLmVudl9vcHRpb25zID0g
Z2V0YXR0cihtb2R1bGUsIGRhdGFbImVudl9vcHRpb25zIl0pKCkKKyAgICAgICAgc2VsZi5nZXRf
ZW52X2V4dHJhcyA9IGdldGF0dHIobW9kdWxlLCBkYXRhWyJlbnZfZXh0cmFzIl0pCisgICAgICAg
IHNlbGYucnVuX2luZm9fZXh0cmFzID0gKGdldGF0dHIobW9kdWxlLCBkYXRhWyJydW5faW5mb19l
eHRyYXMiXSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICJydW5faW5mb19leHRyYXMi
IGluIGRhdGEgZWxzZSBsYW1iZGEgKiprd2FyZ3M6e30pCisgICAgICAgIHNlbGYuZ2V0X3RpbWVv
dXRfbXVsdGlwbGllciA9IGdldGF0dHIobW9kdWxlLCBkYXRhWyJ0aW1lb3V0X211bHRpcGxpZXIi
XSkKKworICAgICAgICBzZWxmLmV4ZWN1dG9yX2NsYXNzZXMgPSB7fQorICAgICAgICBmb3IgdGVz
dF90eXBlLCBjbHNfbmFtZSBpbiBkYXRhWyJleGVjdXRvciJdLml0ZXJpdGVtcygpOgorICAgICAg
ICAgICAgY2xzID0gZ2V0YXR0cihtb2R1bGUsIGNsc19uYW1lKQorICAgICAgICAgICAgc2VsZi5l
eGVjdXRvcl9jbGFzc2VzW3Rlc3RfdHlwZV0gPSBjbHMKKworCitkZWYgbG9hZF9wcm9kdWN0KGNv
bmZpZywgcHJvZHVjdCwgbG9hZF9jbHM9RmFsc2UpOgorICAgIHJ2ID0gUHJvZHVjdChjb25maWcs
IHByb2R1Y3QpCisgICAgaWYgbm90IGxvYWRfY2xzOgorICAgICAgICByZXR1cm4gKHJ2LmNoZWNr
X2FyZ3MsCisgICAgICAgICAgICAgICAgcnYuYnJvd3Nlcl9jbHMsCisgICAgICAgICAgICAgICAg
cnYuZ2V0X2Jyb3dzZXJfa3dhcmdzLAorICAgICAgICAgICAgICAgIHJ2LmV4ZWN1dG9yX2NsYXNz
ZXMsCisgICAgICAgICAgICAgICAgcnYuZ2V0X2V4ZWN1dG9yX2t3YXJncywKKyAgICAgICAgICAg
ICAgICBydi5lbnZfb3B0aW9ucywKKyAgICAgICAgICAgICAgICBydi5nZXRfZW52X2V4dHJhcywK
KyAgICAgICAgICAgICAgICBydi5ydW5faW5mb19leHRyYXMpCisgICAgcmV0dXJuIHJ2CiAKIAog
ZGVmIGxvYWRfcHJvZHVjdF91cGRhdGUoY29uZmlnLCBwcm9kdWN0KToKQEAgLTYwLDYgKzczLDYg
QEAgZGVmIGxvYWRfcHJvZHVjdF91cGRhdGUoY29uZmlnLCBwcm9kdWN0KToKICAgICBkYXRhID0g
bW9kdWxlLl9fd3B0cnVubmVyX18KIAogICAgIHVwZGF0ZV9wcm9wZXJ0aWVzID0gKGdldGF0dHIo
bW9kdWxlLCBkYXRhWyJ1cGRhdGVfcHJvcGVydGllcyJdKSgpCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgaWYgInVwZGF0ZV9wcm9wZXJ0aWVzIiBpbiBkYXRhIGVsc2UgKE5vbmUsIE5vbmUpKQor
ICAgICAgICAgICAgICAgICAgICAgICAgIGlmICJ1cGRhdGVfcHJvcGVydGllcyIgaW4gZGF0YSBl
bHNlIHt9KQogCiAgICAgcmV0dXJuIHVwZGF0ZV9wcm9wZXJ0aWVzCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93
cHRydW5uZXIvc3RhYmlsaXR5LnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3N0YWJpbGl0eS5weQppbmRleCA4
NTlmMDE0NDRkMzRhY2RlZGJjYzMzOWQ4NzgzMTIyYTdmNWFkOWQyLi5jMDZmN2U1ZTlkNmIxMGI0
ZTYxOWM5NWE2MjQxN2U1MmE1OTZiZTUzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvc3RhYmls
aXR5LnB5CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9zdGFiaWxpdHkucHkKQEAgLTE1LDYgKzE1LDExIEBA
IGxvY2FscGF0aHMgPSBpbXAubG9hZF9zb3VyY2UoImxvY2FscGF0aHMiLCBvcy5wYXRoLmFic3Bh
dGgob3MucGF0aC5qb2luKGhlcmUsIG9zCiBmcm9tIHdwdC5tYXJrZG93biBpbXBvcnQgbWFya2Rv
d25fYWRqdXN0LCB0YWJsZQogCiAKKyMgSWYgYSB0ZXN0IHRha2VzIG1vcmUgdGhhbiAoRkxBS1lf
VEhSRVNIT0xEKnRpbWVvdXQpIGFuZCBkb2VzIG5vdCBjb25zaXN0ZW50bHkKKyMgdGltZSBvdXQs
IGl0IGlzIGNvbnNpZGVyZWQgc2xvdyAocG90ZW50aWFsbHkgZmxha3kpLgorRkxBS1lfVEhSRVNI
T0xEID0gMC44CisKKwogY2xhc3MgTG9nQWN0aW9uRmlsdGVyKEJhc2VIYW5kbGVyKToKIAogICAg
ICIiIkhhbmRsZXIgdGhhdCBmaWx0ZXJzIG91dCBtZXNzYWdlcyBub3Qgb2YgYSBnaXZlbiBzZXQg
b2YgYWN0aW9ucy4KQEAgLTUzLDcgKzU4LDggQEAgY2xhc3MgTG9nSGFuZGxlcihyZWFkZXIuTG9n
SGFuZGxlcik6CiAKICAgICAgICAgdGVzdCA9IHsKICAgICAgICAgICAgICJzdWJ0ZXN0cyI6IE9y
ZGVyZWREaWN0KCksCi0gICAgICAgICAgICAic3RhdHVzIjogZGVmYXVsdGRpY3QoaW50KQorICAg
ICAgICAgICAgInN0YXR1cyI6IGRlZmF1bHRkaWN0KGludCksCisgICAgICAgICAgICAibG9uZ2Vz
dF9kdXJhdGlvbiI6IGRlZmF1bHRkaWN0KGZsb2F0KSwKICAgICAgICAgfQogICAgICAgICBzZWxm
LnJlc3VsdHNbdGVzdF9uYW1lXSA9IHRlc3QKICAgICAgICAgcmV0dXJuIHRlc3QKQEAgLTczLDYg
Kzc5LDEwIEBAIGNsYXNzIExvZ0hhbmRsZXIocmVhZGVyLkxvZ0hhbmRsZXIpOgogCiAgICAgICAg
IHJldHVybiBzdWJ0ZXN0CiAKKyAgICBkZWYgdGVzdF9zdGFydChzZWxmLCBkYXRhKToKKyAgICAg
ICAgdGVzdCA9IHNlbGYuZmluZF9vcl9jcmVhdGVfdGVzdChkYXRhKQorICAgICAgICB0ZXN0WyJz
dGFydF90aW1lIl0gPSBkYXRhWyJ0aW1lIl0KKwogICAgIGRlZiB0ZXN0X3N0YXR1cyhzZWxmLCBk
YXRhKToKICAgICAgICAgc3VidGVzdCA9IHNlbGYuZmluZF9vcl9jcmVhdGVfc3VidGVzdChkYXRh
KQogICAgICAgICBzdWJ0ZXN0WyJzdGF0dXMiXVtkYXRhWyJzdGF0dXMiXV0gKz0gMQpAQCAtODIs
NiArOTIsMTYgQEAgY2xhc3MgTG9nSGFuZGxlcihyZWFkZXIuTG9nSGFuZGxlcik6CiAgICAgZGVm
IHRlc3RfZW5kKHNlbGYsIGRhdGEpOgogICAgICAgICB0ZXN0ID0gc2VsZi5maW5kX29yX2NyZWF0
ZV90ZXN0KGRhdGEpCiAgICAgICAgIHRlc3RbInN0YXR1cyJdW2RhdGFbInN0YXR1cyJdXSArPSAx
CisgICAgICAgICMgVGltZXN0YW1wcyBhcmUgaW4gbXMgc2luY2UgZXBvY2guCisgICAgICAgIGR1
cmF0aW9uID0gZGF0YVsidGltZSJdIC0gdGVzdC5wb3AoInN0YXJ0X3RpbWUiKQorICAgICAgICB0
ZXN0WyJsb25nZXN0X2R1cmF0aW9uIl1bZGF0YVsic3RhdHVzIl1dID0gbWF4KAorICAgICAgICAg
ICAgZHVyYXRpb24sIHRlc3RbImxvbmdlc3RfZHVyYXRpb24iXVtkYXRhWyJzdGF0dXMiXV0pCisg
ICAgICAgIHRyeToKKyAgICAgICAgICAgICMgdGVzdF90aW1lb3V0IGlzIGluIHNlY29uZHM7IGNv
bnZlcnQgaXQgdG8gbXMuCisgICAgICAgICAgICB0ZXN0WyJ0aW1lb3V0Il0gPSBkYXRhWyJleHRy
YSJdWyJ0ZXN0X3RpbWVvdXQiXSAqIDEwMDAKKyAgICAgICAgZXhjZXB0IEtleUVycm9yOgorICAg
ICAgICAgICAgIyBJZiBhIHRlc3QgaXMgc2tpcHBlZCwgaXQgd29uJ3QgaGF2ZSBleHRyYSBpbmZv
LgorICAgICAgICAgICAgcGFzcwogCiAKIGRlZiBpc19pbmNvbnNpc3RlbnQocmVzdWx0c19kaWN0
LCBpdGVyYXRpb25zKToKQEAgLTkxLDkgKzExMSwzMiBAQCBkZWYgaXNfaW5jb25zaXN0ZW50KHJl
c3VsdHNfZGljdCwgaXRlcmF0aW9ucyk6CiAgICAgcmV0dXJuIGxlbihyZXN1bHRzX2RpY3QpID4g
MSBvciBzdW0ocmVzdWx0c19kaWN0LnZhbHVlcygpKSAhPSBpdGVyYXRpb25zCiAKIAorZGVmIGZp
bmRfc2xvd19zdGF0dXModGVzdCk6CisgICAgIiIiQ2hlY2sgaWYgYSBzaW5nbGUgdGVzdCBhbG1v
c3QgdGltZXMgb3V0LgorCisgICAgV2UgYXJlIGludGVyZXN0ZWQgaW4gdGVzdHMgdGhhdCBhbG1v
c3QgdGltZSBvdXQgKGkuZS4gbGlrZWx5IHRvIGJlIGZsYWt5KS4KKyAgICBUaGVyZWZvcmUsIHRp
bWVvdXQgc3RhdHVzZXMgYXJlIGlnbm9yZWQsIGluY2x1ZGluZyAoRVhURVJOQUwtKVRJTUVPVVQu
CisgICAgQ1JBU0ggJiBFUlJPUiBhcmUgYWxzbyBpZ25vcmVkIGJlY2F1c2UgdGhlIHRoZXkgb3Zl
cnJpZGUgVElNRU9VVDsgYSB0ZXN0CisgICAgdGhhdCBib3RoIGNyYXNoZXMgYW5kIHRpbWVzIG91
dCBpcyBtYXJrZWQgYXMgQ1JBU0gsIHNvIGl0IHdvbid0IGJlIGZsYWt5LgorCisgICAgUmV0dXJu
czoKKyAgICAgICAgQSByZXN1bHQgc3RhdHVzIHByb2R1Y2VkIGJ5IGEgcnVuIHRoYXQgYWxtb3N0
IHRpbWVzIG91dDsgTm9uZSwgaWYgbm8KKyAgICAgICAgcnVucyBhbG1vc3QgdGltZSBvdXQuCisg
ICAgIiIiCisgICAgaWYgInRpbWVvdXQiIG5vdCBpbiB0ZXN0OgorICAgICAgICByZXR1cm4gTm9u
ZQorICAgIHRocmVzaG9sZCA9IHRlc3RbInRpbWVvdXQiXSAqIEZMQUtZX1RIUkVTSE9MRAorICAg
IGZvciBzdGF0dXMgaW4gWydQQVNTJywgJ0ZBSUwnLCAnT0snXToKKyAgICAgICAgaWYgKHN0YXR1
cyBpbiB0ZXN0WyJsb25nZXN0X2R1cmF0aW9uIl0gYW5kCisgICAgICAgICAgICB0ZXN0WyJsb25n
ZXN0X2R1cmF0aW9uIl1bc3RhdHVzXSA+IHRocmVzaG9sZCk6CisgICAgICAgICAgICByZXR1cm4g
c3RhdHVzCisgICAgcmV0dXJuIE5vbmUKKworCiBkZWYgcHJvY2Vzc19yZXN1bHRzKGxvZywgaXRl
cmF0aW9ucyk6CiAgICAgIiIiUHJvY2VzcyB0ZXN0IGxvZyBhbmQgcmV0dXJuIG92ZXJhbGwgcmVz
dWx0cyBhbmQgbGlzdCBvZiBpbmNvbnNpc3RlbnQgdGVzdHMuIiIiCiAgICAgaW5jb25zaXN0ZW50
ID0gW10KKyAgICBzbG93ID0gW10KICAgICBoYW5kbGVyID0gTG9nSGFuZGxlcigpCiAgICAgcmVh
ZGVyLmhhbmRsZV9sb2cocmVhZGVyLnJlYWQobG9nKSwgaGFuZGxlcikKICAgICByZXN1bHRzID0g
aGFuZGxlci5yZXN1bHRzCkBAIC0xMDMsMTYgKzE0NiwyOSBAQCBkZWYgcHJvY2Vzc19yZXN1bHRz
KGxvZywgaXRlcmF0aW9ucyk6CiAgICAgICAgIGZvciBzdWJ0ZXN0X25hbWUsIHN1YnRlc3QgaW4g
dGVzdFsic3VidGVzdHMiXS5pdGVyaXRlbXMoKToKICAgICAgICAgICAgIGlmIGlzX2luY29uc2lz
dGVudChzdWJ0ZXN0WyJzdGF0dXMiXSwgaXRlcmF0aW9ucyk6CiAgICAgICAgICAgICAgICAgaW5j
b25zaXN0ZW50LmFwcGVuZCgodGVzdF9uYW1lLCBzdWJ0ZXN0X25hbWUsIHN1YnRlc3RbInN0YXR1
cyJdLCBzdWJ0ZXN0WyJtZXNzYWdlcyJdKSkKLSAgICByZXR1cm4gcmVzdWx0cywgaW5jb25zaXN0
ZW50CisKKyAgICAgICAgc2xvd19zdGF0dXMgPSBmaW5kX3Nsb3dfc3RhdHVzKHRlc3QpCisgICAg
ICAgIGlmIHNsb3dfc3RhdHVzIGlzIG5vdCBOb25lOgorICAgICAgICAgICAgc2xvdy5hcHBlbmQo
KAorICAgICAgICAgICAgICAgIHRlc3RfbmFtZSwKKyAgICAgICAgICAgICAgICBzbG93X3N0YXR1
cywKKyAgICAgICAgICAgICAgICB0ZXN0WyJsb25nZXN0X2R1cmF0aW9uIl1bc2xvd19zdGF0dXNd
LAorICAgICAgICAgICAgICAgIHRlc3RbInRpbWVvdXQiXQorICAgICAgICAgICAgKSkKKworICAg
IHJldHVybiByZXN1bHRzLCBpbmNvbnNpc3RlbnQsIHNsb3cKIAogCiBkZWYgZXJyX3N0cmluZyhy
ZXN1bHRzX2RpY3QsIGl0ZXJhdGlvbnMpOgogICAgICIiIkNyZWF0ZSBhbmQgcmV0dXJuIHN0cmlu
ZyB3aXRoIGVycm9ycyBmcm9tIHRlc3QgcnVuLiIiIgogICAgIHJ2ID0gW10KICAgICB0b3RhbF9y
ZXN1bHRzID0gc3VtKHJlc3VsdHNfZGljdC52YWx1ZXMoKSkKLSAgICBmb3Iga2V5LCB2YWx1ZSBp
biBzb3J0ZWQocmVzdWx0c19kaWN0Lml0ZW1zKCkpOgotICAgICAgICBydi5hcHBlbmQoIiVzJXMi
ICUKLSAgICAgICAgICAgICAgICAgIChrZXksICI6ICVzLyVzIiAlICh2YWx1ZSwgaXRlcmF0aW9u
cykgaWYgdmFsdWUgIT0gaXRlcmF0aW9ucyBlbHNlICIiKSkKKyAgICBpZiB0b3RhbF9yZXN1bHRz
ID4gaXRlcmF0aW9uczoKKyAgICAgICAgcnYuYXBwZW5kKCJEdXBsaWNhdGUgc3VidGVzdCBuYW1l
IikKKyAgICBlbHNlOgorICAgICAgICBmb3Iga2V5LCB2YWx1ZSBpbiBzb3J0ZWQocmVzdWx0c19k
aWN0Lml0ZW1zKCkpOgorICAgICAgICAgICAgcnYuYXBwZW5kKCIlcyVzIiAlCisgICAgICAgICAg
ICAgICAgICAgICAgKGtleSwgIjogJXMvJXMiICUgKHZhbHVlLCBpdGVyYXRpb25zKSBpZiB2YWx1
ZSAhPSBpdGVyYXRpb25zIGVsc2UgIiIpKQogICAgIGlmIHRvdGFsX3Jlc3VsdHMgPCBpdGVyYXRp
b25zOgogICAgICAgICBydi5hcHBlbmQoIk1JU1NJTkc6ICVzLyVzIiAlIChpdGVyYXRpb25zIC0g
dG90YWxfcmVzdWx0cywgaXRlcmF0aW9ucykpCiAgICAgcnYgPSAiLCAiLmpvaW4ocnYpCkBAIC0x
MzMsNiArMTg5LDE3IEBAIGRlZiB3cml0ZV9pbmNvbnNpc3RlbnQobG9nLCBpbmNvbnNpc3RlbnQs
IGl0ZXJhdGlvbnMpOgogICAgIHRhYmxlKFsiVGVzdCIsICJTdWJ0ZXN0IiwgIlJlc3VsdHMiLCAi
TWVzc2FnZXMiXSwgc3RyaW5ncywgbG9nKQogCiAKK2RlZiB3cml0ZV9zbG93X3Rlc3RzKGxvZywg
c2xvdyk6CisgICAgbG9nKCIjIyBTbG93IHRlc3RzICMjXG4iKQorICAgIHN0cmluZ3MgPSBbKAor
ICAgICAgICAiYCVzYCIgJSBtYXJrZG93bl9hZGp1c3QodGVzdCksCisgICAgICAgICJgJXNgIiAl
IHN0YXR1cywKKyAgICAgICAgImAlLjBmYCIgJSBkdXJhdGlvbiwKKyAgICAgICAgImAlLjBmYCIg
JSB0aW1lb3V0KQorICAgICAgICBmb3IgdGVzdCwgc3RhdHVzLCBkdXJhdGlvbiwgdGltZW91dCBp
biBzbG93XQorICAgIHRhYmxlKFsiVGVzdCIsICJSZXN1bHQiLCAiTG9uZ2VzdCBkdXJhdGlvbiAo
bXMpIiwgIlRpbWVvdXQgKG1zKSJdLCBzdHJpbmdzLCBsb2cpCisKKwogZGVmIHdyaXRlX3Jlc3Vs
dHMobG9nLCByZXN1bHRzLCBpdGVyYXRpb25zLCBwcl9udW1iZXI9Tm9uZSwgdXNlX2RldGFpbHM9
RmFsc2UpOgogICAgIGxvZygiIyMgQWxsIHJlc3VsdHMgIyNcbiIpCiAgICAgaWYgdXNlX2RldGFp
bHM6CkBAIC0yMDIsOCArMjY5LDggQEAgZGVmIHJ1bl9zdGVwKGxvZ2dlciwgaXRlcmF0aW9ucywg
cmVzdGFydF9hZnRlcl9pdGVyYXRpb24sIGt3YXJnc19leHRyYXMsICoqa3dhcmcKICAgICBsb2dn
ZXIuX3N0YXRlLnN1aXRlX3N0YXJ0ZWQgPSBGYWxzZQogCiAgICAgbG9nLnNlZWsoMCkKLSAgICBy
ZXN1bHRzLCBpbmNvbnNpc3RlbnQgPSBwcm9jZXNzX3Jlc3VsdHMobG9nLCBpdGVyYXRpb25zKQot
ICAgIHJldHVybiByZXN1bHRzLCBpbmNvbnNpc3RlbnQsIGl0ZXJhdGlvbnMKKyAgICByZXN1bHRz
LCBpbmNvbnNpc3RlbnQsIHNsb3cgPSBwcm9jZXNzX3Jlc3VsdHMobG9nLCBpdGVyYXRpb25zKQor
ICAgIHJldHVybiByZXN1bHRzLCBpbmNvbnNpc3RlbnQsIHNsb3csIGl0ZXJhdGlvbnMKIAogCiBk
ZWYgZ2V0X3N0ZXBzKGxvZ2dlciwgcmVwZWF0X2xvb3AsIHJlcGVhdF9yZXN0YXJ0LCBrd2FyZ3Nf
ZXh0cmFzKToKQEAgLTI0Miw3ICszMDksNiBAQCBkZWYgd3JpdGVfc3VtbWFyeShsb2dnZXIsIHN0
ZXBfcmVzdWx0cywgZmluYWxfcmVzdWx0KToKIAogICAgIGxvZ2dlci5pbmZvKCc6OjonKQogCi0K
IGRlZiBjaGVja19zdGFiaWxpdHkobG9nZ2VyLCByZXBlYXRfbG9vcD0xMCwgcmVwZWF0X3Jlc3Rh
cnQ9NSwgY2hhb3NfbW9kZT1UcnVlLCBtYXhfdGltZT1Ob25lLAogICAgICAgICAgICAgICAgICAg
ICBvdXRwdXRfcmVzdWx0cz1UcnVlLCAqKmt3YXJncyk6CiAgICAga3dhcmdzX2V4dHJhcyA9IFt7
fV0KQEAgLTI2NCw3ICszMzAsNyBAQCBkZWYgY2hlY2tfc3RhYmlsaXR5KGxvZ2dlciwgcmVwZWF0
X2xvb3A9MTAsIHJlcGVhdF9yZXN0YXJ0PTUsIGNoYW9zX21vZGU9VHJ1ZSwgbQogICAgICAgICBs
b2dnZXIuaW5mbygnOjo6JykKICAgICAgICAgbG9nZ2VyLmluZm8oJzo6OiBSdW5uaW5nIHRlc3Qg
dmVyaWZpY2F0aW9uIHN0ZXAgIiVzIi4uLicgJSBkZXNjKQogICAgICAgICBsb2dnZXIuaW5mbygn
Ojo6JykKLSAgICAgICAgcmVzdWx0cywgaW5jb25zaXN0ZW50LCBpdGVyYXRpb25zID0gc3RlcF9m
dW5jKCoqa3dhcmdzKQorICAgICAgICByZXN1bHRzLCBpbmNvbnNpc3RlbnQsIHNsb3csIGl0ZXJh
dGlvbnMgPSBzdGVwX2Z1bmMoKiprd2FyZ3MpCiAgICAgICAgIGlmIG91dHB1dF9yZXN1bHRzOgog
ICAgICAgICAgICAgd3JpdGVfcmVzdWx0cyhsb2dnZXIuaW5mbywgcmVzdWx0cywgaXRlcmF0aW9u
cykKIApAQCAtMjc0LDYgKzM0MCwxMiBAQCBkZWYgY2hlY2tfc3RhYmlsaXR5KGxvZ2dlciwgcmVw
ZWF0X2xvb3A9MTAsIHJlcGVhdF9yZXN0YXJ0PTUsIGNoYW9zX21vZGU9VHJ1ZSwgbQogICAgICAg
ICAgICAgd3JpdGVfc3VtbWFyeShsb2dnZXIsIHN0ZXBfcmVzdWx0cywgIkZBSUwiKQogICAgICAg
ICAgICAgcmV0dXJuIDEKIAorICAgICAgICBpZiBzbG93OgorICAgICAgICAgICAgc3RlcF9yZXN1
bHRzLmFwcGVuZCgoZGVzYywgIkZBSUwiKSkKKyAgICAgICAgICAgIHdyaXRlX3Nsb3dfdGVzdHMo
bG9nZ2VyLmluZm8sIHNsb3cpCisgICAgICAgICAgICB3cml0ZV9zdW1tYXJ5KGxvZ2dlciwgc3Rl
cF9yZXN1bHRzLCAiRkFJTCIpCisgICAgICAgICAgICByZXR1cm4gMQorCiAgICAgICAgIHN0ZXBf
cmVzdWx0cy5hcHBlbmQoKGRlc2MsICJQQVNTIikpCiAKICAgICB3cml0ZV9zdW1tYXJ5KGxvZ2dl
ciwgc3RlcF9yZXN1bHRzLCAiUEFTUyIpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvdGVzdGRy
aXZlci1leHRyYS5qcyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci90ZXN0ZHJpdmVyLWV4dHJhLmpzCmluZGV4IGVm
OTYyZDM1ZjIyYjkxNWE3NDM2M2NhNTNiMTBiM2EwNWY2MzA5NTIuLjI3OGYyMjZkYmQyY2VmYzI4
NGViZjM0N2MzMjA4OWVhMWZhNWEyMmQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci90ZXN0ZHJp
dmVyLWV4dHJhLmpzCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci90ZXN0ZHJpdmVyLWV4dHJhLmpzCkBAIC0z
LDYgKzMsNyBAQAogKGZ1bmN0aW9uKCl7CiAgICAgbGV0IHBlbmRpbmdfcmVzb2x2ZSA9IG51bGw7
CiAgICAgbGV0IHBlbmRpbmdfcmVqZWN0ID0gbnVsbDsKKyAgICBsZXQgcmVzdWx0ID0gbnVsbDsK
ICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIsIGZ1bmN0aW9uKGV2ZW50KSB7
CiAgICAgICAgIGNvbnN0IGRhdGEgPSBldmVudC5kYXRhOwogCkBAIC0xNSwxNiArMTYsMzMgQEAK
ICAgICAgICAgfQogCiAgICAgICAgIGlmIChkYXRhLnN0YXR1cyA9PT0gInN1Y2Nlc3MiKSB7Ci0g
ICAgICAgICAgICBwZW5kaW5nX3Jlc29sdmUoKTsKKyAgICAgICAgICAgIHJlc3VsdCA9IEpTT04u
cGFyc2UoZGF0YS5tZXNzYWdlKS5yZXN1bHQKKyAgICAgICAgICAgIHBlbmRpbmdfcmVzb2x2ZShy
ZXN1bHQpOwogICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgcGVuZGluZ19yZWplY3QoKTsK
ICAgICAgICAgfQogICAgIH0pOwogCisgICAgY29uc3QgZ2V0X2ZyYW1lID0gZnVuY3Rpb24oZWxl
bWVudCwgZnJhbWUpIHsKKyAgICAgICAgbGV0IGZvdW5kRnJhbWUgPSBmcmFtZTsKKyAgICAgICAg
bGV0IGZyYW1lRG9jdW1lbnQgPSBmcmFtZSA9PSB3aW5kb3cgPyB3aW5kb3cuZG9jdW1lbnQgOiBm
cmFtZS5jb250ZW50RG9jdW1lbnQ7CisgICAgICAgIGlmICghZnJhbWVEb2N1bWVudC5jb250YWlu
cyhlbGVtZW50KSkgeworICAgICAgICAgIGZvdW5kRnJhbWUgPSBudWxsOworICAgICAgICAgIGxl
dCBmcmFtZXMgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgiaWZyYW1lIik7CisgICAg
ICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBmcmFtZXMubGVuZ3RoOyBpKyspIHsKKyAgICAgICAg
ICAgIGlmIChnZXRfZnJhbWUoZWxlbWVudCwgZnJhbWVzW2ldKSkgeworICAgICAgICAgICAgICBm
b3VuZEZyYW1lID0gZnJhbWVzW2ldOworICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAg
IH0KKyAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGZvdW5kRnJhbWU7Cisg
ICAgfTsKKwogICAgIGNvbnN0IGdldF9zZWxlY3RvciA9IGZ1bmN0aW9uKGVsZW1lbnQpIHsKICAg
ICAgICAgbGV0IHNlbGVjdG9yOwogCi0gICAgICAgIGlmIChlbGVtZW50LmlkICYmIGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKGVsZW1lbnQuaWQpID09PSBlbGVtZW50KSB7CisgICAgICAgIGlmIChl
bGVtZW50LmlkKSB7CiAgICAgICAgICAgICBjb25zdCBpZCA9IGVsZW1lbnQuaWQ7CiAKICAgICAg
ICAgICAgIHNlbGVjdG9yID0gIiMiOwpAQCAtNTEsMTMgKzY5LDE1IEBACiAgICAgICAgIHJldHVy
biBzZWxlY3RvcjsKICAgICB9OwogCisgICAgd2luZG93LnRlc3RfZHJpdmVyX2ludGVybmFsLmlu
X2F1dG9tYXRpb24gPSB0cnVlOworCiAgICAgd2luZG93LnRlc3RfZHJpdmVyX2ludGVybmFsLmNs
aWNrID0gZnVuY3Rpb24oZWxlbWVudCkgewogICAgICAgICBjb25zdCBzZWxlY3RvciA9IGdldF9z
ZWxlY3RvcihlbGVtZW50KTsKICAgICAgICAgY29uc3QgcGVuZGluZ19wcm9taXNlID0gbmV3IFBy
b21pc2UoZnVuY3Rpb24ocmVzb2x2ZSwgcmVqZWN0KSB7CiAgICAgICAgICAgICBwZW5kaW5nX3Jl
c29sdmUgPSByZXNvbHZlOwogICAgICAgICAgICAgcGVuZGluZ19yZWplY3QgPSByZWplY3Q7CiAg
ICAgICAgIH0pOwotICAgICAgICB3aW5kb3cub3BlbmVyLnBvc3RNZXNzYWdlKHsidHlwZSI6ICJh
Y3Rpb24iLCAiYWN0aW9uIjogImNsaWNrIiwgInNlbGVjdG9yIjogc2VsZWN0b3J9LCAiKiIpOwor
ICAgICAgICB3aW5kb3cuX193cHRydW5uZXJfbWVzc2FnZV9xdWV1ZS5wdXNoKHsidHlwZSI6ICJh
Y3Rpb24iLCAiYWN0aW9uIjogImNsaWNrIiwgInNlbGVjdG9yIjogc2VsZWN0b3J9KTsKICAgICAg
ICAgcmV0dXJuIHBlbmRpbmdfcHJvbWlzZTsKICAgICB9OwogCkBAIC02Nyw3ICs4NywxMDUgQEAK
ICAgICAgICAgICAgIHBlbmRpbmdfcmVzb2x2ZSA9IHJlc29sdmU7CiAgICAgICAgICAgICBwZW5k
aW5nX3JlamVjdCA9IHJlamVjdDsKICAgICAgICAgfSk7Ci0gICAgICAgIHdpbmRvdy5vcGVuZXIu
cG9zdE1lc3NhZ2UoeyJ0eXBlIjogImFjdGlvbiIsICJhY3Rpb24iOiAic2VuZF9rZXlzIiwgInNl
bGVjdG9yIjogc2VsZWN0b3IsICJrZXlzIjoga2V5c30sICIqIik7CisgICAgICAgIHdpbmRvdy5f
X3dwdHJ1bm5lcl9tZXNzYWdlX3F1ZXVlLnB1c2goeyJ0eXBlIjogImFjdGlvbiIsICJhY3Rpb24i
OiAic2VuZF9rZXlzIiwgInNlbGVjdG9yIjogc2VsZWN0b3IsICJrZXlzIjoga2V5c30pOworICAg
ICAgICByZXR1cm4gcGVuZGluZ19wcm9taXNlOworICAgIH07CisKKyAgICB3aW5kb3cudGVzdF9k
cml2ZXJfaW50ZXJuYWwuYWN0aW9uX3NlcXVlbmNlID0gZnVuY3Rpb24oYWN0aW9ucykgeworICAg
ICAgICBjb25zdCBwZW5kaW5nX3Byb21pc2UgPSBuZXcgUHJvbWlzZShmdW5jdGlvbihyZXNvbHZl
LCByZWplY3QpIHsKKyAgICAgICAgICAgIHBlbmRpbmdfcmVzb2x2ZSA9IHJlc29sdmU7CisgICAg
ICAgICAgICBwZW5kaW5nX3JlamVjdCA9IHJlamVjdDsKKyAgICAgICAgfSk7CisgICAgICAgIGZv
ciAobGV0IGFjdGlvblNlcXVlbmNlIG9mIGFjdGlvbnMpIHsKKyAgICAgICAgICAgIGlmIChhY3Rp
b25TZXF1ZW5jZS50eXBlID09ICJwb2ludGVyIikgeworICAgICAgICAgICAgICAgIGZvciAobGV0
IGFjdGlvbiBvZiBhY3Rpb25TZXF1ZW5jZS5hY3Rpb25zKSB7CisgICAgICAgICAgICAgICAgICAg
IC8vIFRoZSBvcmlnaW4gb2YgZWFjaCBhY3Rpb24gY2FuIG9ubHkgYmUgYW4gZWxlbWVudCBvciBh
IHN0cmluZyBvZiBhIHZhbHVlICJ2aWV3cG9ydCIgb3IgInBvaW50ZXIiLgorICAgICAgICAgICAg
ICAgICAgICBpZiAoYWN0aW9uLnR5cGUgPT0gInBvaW50ZXJNb3ZlIiAmJiB0eXBlb2YoYWN0aW9u
Lm9yaWdpbikgIT0gJ3N0cmluZycpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGxldCBmcmFt
ZSA9IGdldF9mcmFtZShhY3Rpb24ub3JpZ2luLCB3aW5kb3cpOworICAgICAgICAgICAgICAgICAg
ICAgICAgaWYgKGZyYW1lICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBp
ZiAoZnJhbWUgPT0gd2luZG93KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhY3Rp
b24uZnJhbWUgPSB7ZnJhbWU6ICJ3aW5kb3cifTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBlbHNlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFjdGlvbi5mcmFtZSA9IHtm
cmFtZTogZnJhbWV9OworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFjdGlvbi5vcmlnaW4g
PSB7c2VsZWN0b3I6IGdldF9zZWxlY3RvcihhY3Rpb24ub3JpZ2luKX07CisgICAgICAgICAgICAg
ICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9Cisg
ICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgd2luZG93Ll9fd3B0cnVubmVyX21lc3Nh
Z2VfcXVldWUucHVzaCh7InR5cGUiOiAiYWN0aW9uIiwgImFjdGlvbiI6ICJhY3Rpb25fc2VxdWVu
Y2UiLCAiYWN0aW9ucyI6IGFjdGlvbnN9KTsKKyAgICAgICAgcmV0dXJuIHBlbmRpbmdfcHJvbWlz
ZTsKKyAgICB9OworCisgICAgd2luZG93LnRlc3RfZHJpdmVyX2ludGVybmFsLmdlbmVyYXRlX3Rl
c3RfcmVwb3J0ID0gZnVuY3Rpb24obWVzc2FnZSkgeworICAgICAgICBjb25zdCBwZW5kaW5nX3By
b21pc2UgPSBuZXcgUHJvbWlzZShmdW5jdGlvbihyZXNvbHZlLCByZWplY3QpIHsKKyAgICAgICAg
ICAgIHBlbmRpbmdfcmVzb2x2ZSA9IHJlc29sdmU7CisgICAgICAgICAgICBwZW5kaW5nX3JlamVj
dCA9IHJlamVjdDsKKyAgICAgICAgfSk7CisgICAgICAgIHdpbmRvdy5fX3dwdHJ1bm5lcl9tZXNz
YWdlX3F1ZXVlLnB1c2goeyJ0eXBlIjogImFjdGlvbiIsICJhY3Rpb24iOiAiZ2VuZXJhdGVfdGVz
dF9yZXBvcnQiLCAibWVzc2FnZSI6IG1lc3NhZ2V9KTsKKyAgICAgICAgcmV0dXJuIHBlbmRpbmdf
cHJvbWlzZTsKKyAgICB9OworCisgICAgd2luZG93LnRlc3RfZHJpdmVyX2ludGVybmFsLmFkZF92
aXJ0dWFsX2F1dGhlbnRpY2F0b3IgPSBmdW5jdGlvbihjb25maWcpIHsKKyAgICAgICAgY29uc3Qg
cGVuZGluZ19wcm9taXNlID0gbmV3IFByb21pc2UoZnVuY3Rpb24ocmVzb2x2ZSwgcmVqZWN0KSB7
CisgICAgICAgICAgICBwZW5kaW5nX3Jlc29sdmUgPSByZXNvbHZlOworICAgICAgICAgICAgcGVu
ZGluZ19yZWplY3QgPSByZWplY3Q7CisgICAgICAgIH0pOworICAgICAgICB3aW5kb3cuX193cHRy
dW5uZXJfbWVzc2FnZV9xdWV1ZS5wdXNoKHsidHlwZSI6ICJhY3Rpb24iLCAiYWN0aW9uIjogImFk
ZF92aXJ0dWFsX2F1dGhlbnRpY2F0b3IiLCBjb25maWd9KTsKKyAgICAgICAgcmV0dXJuIHBlbmRp
bmdfcHJvbWlzZTsKKyAgICB9OworCisgICAgd2luZG93LnRlc3RfZHJpdmVyX2ludGVybmFsLnJl
bW92ZV92aXJ0dWFsX2F1dGhlbnRpY2F0b3IgPSBmdW5jdGlvbihhdXRoZW50aWNhdG9yX2lkKSB7
CisgICAgICAgIGNvbnN0IHBlbmRpbmdfcHJvbWlzZSA9IG5ldyBQcm9taXNlKGZ1bmN0aW9uKHJl
c29sdmUsIHJlamVjdCkgeworICAgICAgICAgICAgcGVuZGluZ19yZXNvbHZlID0gcmVzb2x2ZTsK
KyAgICAgICAgICAgIHBlbmRpbmdfcmVqZWN0ID0gcmVqZWN0OworICAgICAgICB9KTsKKyAgICAg
ICAgd2luZG93Ll9fd3B0cnVubmVyX21lc3NhZ2VfcXVldWUucHVzaCh7InR5cGUiOiAiYWN0aW9u
IiwgImFjdGlvbiI6ICJyZW1vdmVfdmlydHVhbF9hdXRoZW50aWNhdG9yIiwgYXV0aGVudGljYXRv
cl9pZH0pOworICAgICAgICByZXR1cm4gcGVuZGluZ19wcm9taXNlOworICAgIH07CisKKyAgICB3
aW5kb3cudGVzdF9kcml2ZXJfaW50ZXJuYWwuYWRkX2NyZWRlbnRpYWwgPSBmdW5jdGlvbihhdXRo
ZW50aWNhdG9yX2lkLCBjcmVkZW50aWFsKSB7CisgICAgICAgIGNvbnN0IHBlbmRpbmdfcHJvbWlz
ZSA9IG5ldyBQcm9taXNlKGZ1bmN0aW9uKHJlc29sdmUsIHJlamVjdCkgeworICAgICAgICAgICAg
cGVuZGluZ19yZXNvbHZlID0gcmVzb2x2ZTsKKyAgICAgICAgICAgIHBlbmRpbmdfcmVqZWN0ID0g
cmVqZWN0OworICAgICAgICB9KTsKKyAgICAgICAgd2luZG93Ll9fd3B0cnVubmVyX21lc3NhZ2Vf
cXVldWUucHVzaCh7InR5cGUiOiAiYWN0aW9uIiwgImFjdGlvbiI6ICJhZGRfY3JlZGVudGlhbCIs
IGF1dGhlbnRpY2F0b3JfaWQsIGNyZWRlbnRpYWx9KTsKKyAgICAgICAgcmV0dXJuIHBlbmRpbmdf
cHJvbWlzZTsKKyAgICB9OworCisgICAgd2luZG93LnRlc3RfZHJpdmVyX2ludGVybmFsLmdldF9j
cmVkZW50aWFscyA9IGZ1bmN0aW9uKGF1dGhlbnRpY2F0b3JfaWQpIHsKKyAgICAgICAgY29uc3Qg
cGVuZGluZ19wcm9taXNlID0gbmV3IFByb21pc2UoZnVuY3Rpb24ocmVzb2x2ZSwgcmVqZWN0KSB7
CisgICAgICAgICAgICBwZW5kaW5nX3Jlc29sdmUgPSByZXNvbHZlOworICAgICAgICAgICAgcGVu
ZGluZ19yZWplY3QgPSByZWplY3Q7CisgICAgICAgIH0pOworICAgICAgICB3aW5kb3cuX193cHRy
dW5uZXJfbWVzc2FnZV9xdWV1ZS5wdXNoKHsidHlwZSI6ICJhY3Rpb24iLCAiYWN0aW9uIjogImdl
dF9jcmVkZW50aWFscyIsIGF1dGhlbnRpY2F0b3JfaWR9KTsKKyAgICAgICAgcmV0dXJuIHBlbmRp
bmdfcHJvbWlzZTsKKyAgICB9OworCisgICAgd2luZG93LnRlc3RfZHJpdmVyX2ludGVybmFsLnJl
bW92ZV9jcmVkZW50aWFsID0gZnVuY3Rpb24oYXV0aGVudGljYXRvcl9pZCwgY3JlZGVudGlhbF9p
ZCkgeworICAgICAgICBjb25zdCBwZW5kaW5nX3Byb21pc2UgPSBuZXcgUHJvbWlzZShmdW5jdGlv
bihyZXNvbHZlLCByZWplY3QpIHsKKyAgICAgICAgICAgIHBlbmRpbmdfcmVzb2x2ZSA9IHJlc29s
dmU7CisgICAgICAgICAgICBwZW5kaW5nX3JlamVjdCA9IHJlamVjdDsKKyAgICAgICAgfSk7Cisg
ICAgICAgIHdpbmRvdy5fX3dwdHJ1bm5lcl9tZXNzYWdlX3F1ZXVlLnB1c2goeyJ0eXBlIjogImFj
dGlvbiIsICJhY3Rpb24iOiAicmVtb3ZlX2NyZWRlbnRpYWwiLCBhdXRoZW50aWNhdG9yX2lkLCBj
cmVkZW50aWFsX2lkfSk7CisgICAgICAgIHJldHVybiBwZW5kaW5nX3Byb21pc2U7CisgICAgfTsK
KworICAgIHdpbmRvdy50ZXN0X2RyaXZlcl9pbnRlcm5hbC5yZW1vdmVfYWxsX2NyZWRlbnRpYWxz
ID0gZnVuY3Rpb24oYXV0aGVudGljYXRvcl9pZCkgeworICAgICAgICBjb25zdCBwZW5kaW5nX3By
b21pc2UgPSBuZXcgUHJvbWlzZShmdW5jdGlvbihyZXNvbHZlLCByZWplY3QpIHsKKyAgICAgICAg
ICAgIHBlbmRpbmdfcmVzb2x2ZSA9IHJlc29sdmU7CisgICAgICAgICAgICBwZW5kaW5nX3JlamVj
dCA9IHJlamVjdDsKKyAgICAgICAgfSk7CisgICAgICAgIHdpbmRvdy5fX3dwdHJ1bm5lcl9tZXNz
YWdlX3F1ZXVlLnB1c2goeyJ0eXBlIjogImFjdGlvbiIsICJhY3Rpb24iOiAicmVtb3ZlX2FsbF9j
cmVkZW50aWFscyIsIGF1dGhlbnRpY2F0b3JfaWR9KTsKKyAgICAgICAgcmV0dXJuIHBlbmRpbmdf
cHJvbWlzZTsKKyAgICB9OworCisgICAgd2luZG93LnRlc3RfZHJpdmVyX2ludGVybmFsLnNldF91
c2VyX3ZlcmlmaWVkID0gZnVuY3Rpb24oYXV0aGVudGljYXRvcl9pZCwgdXYpIHsKKyAgICAgICAg
Y29uc3QgcGVuZGluZ19wcm9taXNlID0gbmV3IFByb21pc2UoZnVuY3Rpb24ocmVzb2x2ZSwgcmVq
ZWN0KSB7CisgICAgICAgICAgICBwZW5kaW5nX3Jlc29sdmUgPSByZXNvbHZlOworICAgICAgICAg
ICAgcGVuZGluZ19yZWplY3QgPSByZWplY3Q7CisgICAgICAgIH0pOworICAgICAgICB3aW5kb3cu
X193cHRydW5uZXJfbWVzc2FnZV9xdWV1ZS5wdXNoKHsidHlwZSI6ICJhY3Rpb24iLCAiYWN0aW9u
IjogInNldF91c2VyX3ZlcmlmaWVkIiwgYXV0aGVudGljYXRvcl9pZCwgdXZ9KTsKICAgICAgICAg
cmV0dXJuIHBlbmRpbmdfcHJvbWlzZTsKICAgICB9OwogfSkoKTsKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dw
dHJ1bm5lci90ZXN0aGFybmVzc3JlcG9ydC1zZXJ2by5qcyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci90ZXN0aGFy
bmVzc3JlcG9ydC1zZXJ2by5qcwppbmRleCBiNjcyYWVhOWEyNTQwYmYxNDQ2YTIzZGRiMjg4Yzkz
MDA5YmIyNmJhLi5hMTBiNjlkZjU1MDRmYWI4NzUxNDdhZjI2ZDkyNWViY2NlNTFlYzAwIDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3dwdHJ1bm5lci93cHRydW5uZXIvdGVzdGhhcm5lc3NyZXBvcnQtc2Vydm8uanMKKysrIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIv
d3B0cnVubmVyL3Rlc3RoYXJuZXNzcmVwb3J0LXNlcnZvLmpzCkBAIC00LDcgKzQsNyBAQCBzdGFy
dF9sb2MuaHJlZiA9IGxvY2F0aW9uLmhyZWY7CiBzZXR1cChwcm9wcyk7CiAKIGFkZF9jb21wbGV0
aW9uX2NhbGxiYWNrKGZ1bmN0aW9uICh0ZXN0cywgaGFybmVzc19zdGF0dXMpIHsKLSAgICB2YXIg
aWQgPSBzdGFydF9sb2MucGF0aG5hbWUgKyBzdGFydF9sb2Muc2VhcmNoICsgc3RhcnRfbG9jLmhh
c2g7CisgICAgdmFyIGlkID0gZGVjb2RlVVJJQ29tcG9uZW50KHN0YXJ0X2xvYy5wYXRobmFtZSkg
KyBkZWNvZGVVUklDb21wb25lbnQoc3RhcnRfbG9jLnNlYXJjaCkgKyBkZWNvZGVVUklDb21wb25l
bnQoc3RhcnRfbG9jLmhhc2gpOwogICAgIGNvbnNvbGUubG9nKCJBTEVSVDogUkVTVUxUOiAiICsg
SlNPTi5zdHJpbmdpZnkoWwogICAgICAgICBpZCwKICAgICAgICAgaGFybmVzc19zdGF0dXMuc3Rh
dHVzLApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIv
d3B0cnVubmVyL3Rlc3RoYXJuZXNzcmVwb3J0LmpzCmluZGV4IDYyZGRhZmZiNDQzYzk0NTA1Mzgz
MDgzOTIzZGMxM2ZjYjFjZjU2NjAuLjI5ZmMwZTk4NzMxODgyMjNhYzM3ODNhOGM2MjJiYmJlMjFl
YzVhZjUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci90ZXN0aGFybmVzc3JlcG9ydC5qcworKysg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1
bm5lci93cHRydW5uZXIvdGVzdGhhcm5lc3NyZXBvcnQuanMKQEAgLTEsMTMgKzEsODMgQEAKLXZh
ciBwcm9wcyA9IHtvdXRwdXQ6JShvdXRwdXQpZCwKLSAgICAgICAgICAgICBleHBsaWNpdF90aW1l
b3V0OiB0cnVlLAotICAgICAgICAgICAgIG1lc3NhZ2VfZXZlbnRzOiBbImNvbXBsZXRpb24iXX07
CitjbGFzcyBNZXNzYWdlUXVldWUgeworICBjb25zdHJ1Y3RvcigpIHsKKyAgICB0aGlzLl9xdWV1
ZSA9IFtdOworICB9CiAKLWlmICh3aW5kb3cub3BlbmVyICYmICJ0aW1lb3V0X211bHRpcGxpZXIi
IGluIHdpbmRvdy5vcGVuZXIpIHsKLSAgICBwcm9wc1sidGltZW91dF9tdWx0aXBsaWVyIl0gPSB3
aW5kb3cub3BlbmVyLnRpbWVvdXRfbXVsdGlwbGllcjsKLX0KKyAgcHVzaChpdGVtKSB7CisgICAg
dGhpcy5fcXVldWUucHVzaChpdGVtKTsKKyAgICBfX3dwdHJ1bm5lcl9wcm9jZXNzX25leHRfZXZl
bnQoKTsKKyAgfQogCi1pZiAod2luZG93Lm9wZW5lciAmJiB3aW5kb3cub3BlbmVyLmV4cGxpY2l0
X3RpbWVvdXQpIHsKLSAgICBwcm9wc1siZXhwbGljaXRfdGltZW91dCJdID0gd2luZG93Lm9wZW5l
ci5leHBsaWNpdF90aW1lb3V0OworICBzaGlmdCgpIHsKKyAgICByZXR1cm4gdGhpcy5fcXVldWUu
c2hpZnQoKTsKKyAgfQogfQogCi1zZXR1cChwcm9wcyk7Cit3aW5kb3cuX193cHRydW5uZXJfdGVz
dGRyaXZlcl9jYWxsYmFjayA9IG51bGw7Cit3aW5kb3cuX193cHRydW5uZXJfbWVzc2FnZV9xdWV1
ZSA9IG5ldyBNZXNzYWdlUXVldWUoKTsKK3dpbmRvdy5fX3dwdHJ1bm5lcl91cmwgPSBudWxsOwor
Cit3aW5kb3cuX193cHRydW5uZXJfcHJvY2Vzc19uZXh0X2V2ZW50ID0gZnVuY3Rpb24oKSB7Cisg
IC8qIFRoaXMgZnVuY3Rpb24gaGFuZGxlcyB0aGUgbmV4dCB0ZXN0ZHJpdmVyIGV2ZW50LiBUaGUg
cHJlc2VuY2Ugb2YKKyAgICAgd2luZG93LnRlc3Rkcml2ZXJfY2FsbGJhY2sgaXMgdXNlZCBhcyBh
IHN3aXRjaDsgd2hlbiB0aGF0IGZ1bmN0aW9uCisgICAgIGlzIHByZXNlbnQgd2UgYXJlIGFibGUg
dG8gaGFuZGxlIHRoZSBuZXh0IGV2ZW50IGFuZCB3aGVuIGlzIGlzIG5vdAorICAgICBwcmVzZW50
IHdlIG11c3Qgd2FpdC4gVGhlcmVmb3JlIHRvIGRyaXZlIHRoZSBldmVudCBwcm9jZXNzaW5nLCB0
aGlzCisgICAgIGZ1bmN0aW9uIG11c3QgYmUgY2FsbGVkIGluIHR3byBjaXJjdW1zdGFuY2VzOgor
ICAgICAgICogRXZlcnkgdGltZSB0aGVyZSBpcyBhIG5ldyBldmVudCB0aGF0IHdlIG1heSBiZSBh
YmxlIHRvIGhhbmRsZQorICAgICAgICogRXZlcnkgdGltZSB3ZSBzZXQgdGhlIGNhbGxiYWNrIGZ1
bmN0aW9uCisgICAgIFRoaXMgZnVuY3Rpb24gdW5zZXRzIHRoZSBjYWxsYmFjaywgc28gbm8gZnVy
dGhlciB0ZXN0ZHJpdmVyIGFjdGlvbnMKKyAgICAgd2lsbCBiZSBydW4gdW50aWwgaXQgaXMgcmVz
ZXQsIHdoaWNoIHdwdHJ1bm5lciBkb2VzIGFmdGVyIGl0IGhhcworICAgICBjb21wbGV0ZWQgaGFu
ZGxpbmcgdGhlIGN1cnJlbnQgYWN0aW9uLgorICAgKi8KKworICBpZiAoIXdpbmRvdy5fX3dwdHJ1
bm5lcl90ZXN0ZHJpdmVyX2NhbGxiYWNrKSB7CisgICAgcmV0dXJuOworICB9CisgIHZhciBkYXRh
ID0gd2luZG93Ll9fd3B0cnVubmVyX21lc3NhZ2VfcXVldWUuc2hpZnQoKTsKKyAgaWYgKCFkYXRh
KSB7CisgICAgcmV0dXJuOworICB9CisKKyAgdmFyIHBheWxvYWQgPSB1bmRlZmluZWQ7CisKKyAg
c3dpdGNoKGRhdGEudHlwZSkgeworICBjYXNlICJjb21wbGV0ZSI6CisgICAgdmFyIHRlc3RzID0g
ZGF0YS50ZXN0czsKKyAgICB2YXIgc3RhdHVzID0gZGF0YS5zdGF0dXM7CisKKyAgICB2YXIgc3Vi
dGVzdF9yZXN1bHRzID0gdGVzdHMubWFwKGZ1bmN0aW9uKHgpIHsKKyAgICAgIHJldHVybiBbeC5u
YW1lLCB4LnN0YXR1cywgeC5tZXNzYWdlLCB4LnN0YWNrXTsKKyAgICB9KTsKKyAgICBwYXlsb2Fk
ID0gW3N0YXR1cy5zdGF0dXMsCisgICAgICAgICAgICAgICBzdGF0dXMubWVzc2FnZSwKKyAgICAg
ICAgICAgICAgIHN0YXR1cy5zdGFjaywKKyAgICAgICAgICAgICAgIHN1YnRlc3RfcmVzdWx0c107
CisgICAgY2xlYXJUaW1lb3V0KHdpbmRvdy5fX3dwdHJ1bm5lcl90aW1lcik7CisgICAgYnJlYWs7
CisgIGNhc2UgImFjdGlvbiI6CisgICAgcGF5bG9hZCA9IGRhdGE7CisgICAgYnJlYWs7CisgIGRl
ZmF1bHQ6CisgICAgcmV0dXJuOworICB9CisgIHZhciBjYWxsYmFjayA9IHdpbmRvdy5fX3dwdHJ1
bm5lcl90ZXN0ZHJpdmVyX2NhbGxiYWNrOworICB3aW5kb3cuX193cHRydW5uZXJfdGVzdGRyaXZl
cl9jYWxsYmFjayA9IG51bGw7CisgIGNhbGxiYWNrKFtfX3dwdHJ1bm5lcl91cmwsIGRhdGEudHlw
ZSwgcGF5bG9hZF0pOworfTsKKworKGZ1bmN0aW9uKCkgeworICB2YXIgcHJvcHMgPSB7b3V0cHV0
OiAlKG91dHB1dClkLAorICAgICAgICAgICAgICAgdGltZW91dF9tdWx0aXBsaWVyOiAlKHRpbWVv
dXRfbXVsdGlwbGllcilzLAorICAgICAgICAgICAgICAgZXhwbGljaXRfdGltZW91dDogJShleHBs
aWNpdF90aW1lb3V0KXMsCisgICAgICAgICAgICAgICBtZXNzYWdlX2V2ZW50czogWyJjb21wbGV0
aW9uIl19OworCisgIGFkZF9jb21wbGV0aW9uX2NhbGxiYWNrKGZ1bmN0aW9uKHRlc3RzLCBoYXJu
ZXNzX3N0YXR1cykgeworICAgIF9fd3B0cnVubmVyX21lc3NhZ2VfcXVldWUucHVzaCh7CisgICAg
ICAidHlwZSI6ICJjb21wbGV0ZSIsCisgICAgICAidGVzdHMiOiB0ZXN0cywKKyAgICAgICJzdGF0
dXMiOiBoYXJuZXNzX3N0YXR1c30pOworICAgIF9fd3B0cnVubmVyX3Byb2Nlc3NfbmV4dF9ldmVu
dCgpOworICB9KTsKKyAgc2V0dXAocHJvcHMpOworfSkoKTsKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0
cnVubmVyL3Rlc3Rsb2FkZXIucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvdGVzdGxvYWRlci5weQppbmRleCAw
MThkYzEwMzk4M2RmZWYyMjJlZDdjYzZhNGY4ZmU1Mjg4YWRkMjU2Li5mYTU0Y2EzNjE1NzYzMThj
YjM1ZWM3MTZhMWExNTliZGI1MzJlNmM4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvdGVzdGxv
YWRlci5weQorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvdGVzdGxvYWRlci5weQpAQCAtMSwyOSArMSwyNiBA
QAogaW1wb3J0IGhhc2hsaWIKLWltcG9ydCBqc29uCiBpbXBvcnQgb3MKLWltcG9ydCB1cmxwYXJz
ZQorZnJvbSBzaXgubW92ZXMudXJsbGliLnBhcnNlIGltcG9ydCB1cmxzcGxpdAogZnJvbSBhYmMg
aW1wb3J0IEFCQ01ldGEsIGFic3RyYWN0bWV0aG9kCi1mcm9tIFF1ZXVlIGltcG9ydCBFbXB0eQot
ZnJvbSBjb2xsZWN0aW9ucyBpbXBvcnQgZGVmYXVsdGRpY3QsIE9yZGVyZWREaWN0LCBkZXF1ZQor
ZnJvbSBzaXgubW92ZXMucXVldWUgaW1wb3J0IEVtcHR5Citmcm9tIGNvbGxlY3Rpb25zIGltcG9y
dCBkZWZhdWx0ZGljdCwgZGVxdWUKIGZyb20gbXVsdGlwcm9jZXNzaW5nIGltcG9ydCBRdWV1ZQog
Ci1pbXBvcnQgbWFuaWZlc3RpbmNsdWRlCi1pbXBvcnQgbWFuaWZlc3RleHBlY3RlZAotaW1wb3J0
IHdwdHRlc3QKK2Zyb20gLiBpbXBvcnQgbWFuaWZlc3RpbmNsdWRlCitmcm9tIC4gaW1wb3J0IG1h
bmlmZXN0ZXhwZWN0ZWQKK2Zyb20gLiBpbXBvcnQgd3B0dGVzdAogZnJvbSBtb3psb2cgaW1wb3J0
IHN0cnVjdHVyZWQKIAogbWFuaWZlc3QgPSBOb25lCiBtYW5pZmVzdF91cGRhdGUgPSBOb25lCiBk
b3dubG9hZF9mcm9tX2dpdGh1YiA9IE5vbmUKLW1hbmlmZXN0X2xvZyA9IE5vbmUKIAogZGVmIGRv
X2RlbGF5ZWRfaW1wb3J0cygpOgogICAgICMgVGhpcyByZWxpZXMgb24gYW4gYWxyZWFkeSBsb2Fk
ZWQgbW9kdWxlIGhhdmluZyBzZXQgdGhlIHN5cy5wYXRoIGNvcnJlY3RseSA6KAotICAgIGdsb2Jh
bCBtYW5pZmVzdCwgbWFuaWZlc3RfdXBkYXRlLCBkb3dubG9hZF9mcm9tX2dpdGh1YiwgbWFuaWZl
c3RfbG9nCisgICAgZ2xvYmFsIG1hbmlmZXN0LCBtYW5pZmVzdF91cGRhdGUsIGRvd25sb2FkX2Zy
b21fZ2l0aHViCiAgICAgZnJvbSBtYW5pZmVzdCBpbXBvcnQgbWFuaWZlc3QKICAgICBmcm9tIG1h
bmlmZXN0IGltcG9ydCB1cGRhdGUgYXMgbWFuaWZlc3RfdXBkYXRlCiAgICAgZnJvbSBtYW5pZmVz
dC5kb3dubG9hZCBpbXBvcnQgZG93bmxvYWRfZnJvbV9naXRodWIKLSAgICBmcm9tIG1hbmlmZXN0
IGltcG9ydCBsb2cgYXMgbWFuaWZlc3RfbG9nCiAKIAogY2xhc3MgVGVzdENodW5rZXIob2JqZWN0
KToKQEAgLTcxLDI4NSArNjgsMjAgQEAgY2xhc3MgRGlyZWN0b3J5SGFzaENodW5rZXIoVGVzdENo
dW5rZXIpOgogICAgICAgICAgICAgICAgIHlpZWxkIHRlc3RfdHlwZSwgdGVzdF9wYXRoLCB0ZXN0
cwogCiAKLWNsYXNzIEVxdWFsVGltZUNodW5rZXIoVGVzdENodW5rZXIpOgotICAgIGRlZiBfZ3Jv
dXBfYnlfZGlyZWN0b3J5KHNlbGYsIG1hbmlmZXN0X2l0ZW1zKToKLSAgICAgICAgIiIiU3BsaXQg
dGhlIGxpc3Qgb2YgbWFuaWZlc3QgaXRlbXMgaW50byBhIG9yZGVyZWQgZGljdCB0aGF0IGdyb3Vw
cyB0ZXN0cyBpbgotICAgICAgICBzbyB0aGF0IGFueXRoaW5nIGluIHRoZSBzYW1lIHN1YmRpcmVj
dG9yeSBiZXlvbmQgYSBkZXB0aCBvZiAzIGlzIGluIHRoZSBzYW1lCi0gICAgICAgIGdyb3VwLiBT
byBhbGwgdGVzdHMgaW4gYS9iL2MsIGEvYi9jL2QgYW5kIGEvYi9jL2Ugd2lsbCBiZSBncm91cGVk
IHRvZ2V0aGVyCi0gICAgICAgIGFuZCBzZXBhcmF0ZSB0byB0ZXN0cyBpbiBhL2IvZgotCi0gICAg
ICAgIFJldHVybnM6IHR1cGxlIChvcmRlcmVkIGRpY3Qgb2Yge3Rlc3RfZGlyOiBQYXRoRGF0YX0s
IHRvdGFsIGVzdGltYXRlZCBydW50aW1lKQotICAgICAgICAiIiIKLQotICAgICAgICBjbGFzcyBQ
YXRoRGF0YShvYmplY3QpOgotICAgICAgICAgICAgZGVmIF9faW5pdF9fKHNlbGYsIHBhdGgpOgot
ICAgICAgICAgICAgICAgIHNlbGYucGF0aCA9IHBhdGgKLSAgICAgICAgICAgICAgICBzZWxmLnRp
bWUgPSAwCi0gICAgICAgICAgICAgICAgc2VsZi50ZXN0cyA9IFtdCi0KLSAgICAgICAgYnlfZGly
ID0gT3JkZXJlZERpY3QoKQotICAgICAgICB0b3RhbF90aW1lID0gMAotCi0gICAgICAgIGZvciBp
LCAodGVzdF90eXBlLCB0ZXN0X3BhdGgsIHRlc3RzKSBpbiBlbnVtZXJhdGUobWFuaWZlc3RfaXRl
bXMpOgotICAgICAgICAgICAgdGVzdF9kaXIgPSB0dXBsZShvcy5wYXRoLnNwbGl0KHRlc3RfcGF0
aClbMF0uc3BsaXQob3MucGF0aC5zZXApWzozXSkKLQotICAgICAgICAgICAgaWYgdGVzdF9kaXIg
bm90IGluIGJ5X2RpcjoKLSAgICAgICAgICAgICAgICBieV9kaXJbdGVzdF9kaXJdID0gUGF0aERh
dGEodGVzdF9kaXIpCi0KLSAgICAgICAgICAgIGRhdGEgPSBieV9kaXJbdGVzdF9kaXJdCi0gICAg
ICAgICAgICB0aW1lID0gc3VtKHRlc3QuZGVmYXVsdF90aW1lb3V0IGlmIHRlc3QudGltZW91dCAh
PQotICAgICAgICAgICAgICAgICAgICAgICAibG9uZyIgZWxzZSB0ZXN0LmxvbmdfdGltZW91dCBm
b3IgdGVzdCBpbiB0ZXN0cykKLSAgICAgICAgICAgIGRhdGEudGltZSArPSB0aW1lCi0gICAgICAg
ICAgICB0b3RhbF90aW1lICs9IHRpbWUKLSAgICAgICAgICAgIGRhdGEudGVzdHMuYXBwZW5kKCh0
ZXN0X3R5cGUsIHRlc3RfcGF0aCwgdGVzdHMpKQotCi0gICAgICAgIHJldHVybiBieV9kaXIsIHRv
dGFsX3RpbWUKLQotICAgIGRlZiBfbWF5YmVfcmVtb3ZlKHNlbGYsIGNodW5rcywgaSwgZGlyZWN0
aW9uKToKLSAgICAgICAgIiIiVHJpYWwgcmVtb3ZpbmcgYSBjaHVuayBmcm9tIG9uZSBjaHVuayB0
byBhbiBhZGphY2VudCBvbmUuCi0KLSAgICAgICAgOnBhcmFtIGNodW5rczogLSB0aGUgbGlzdCBv
ZiBhbGwgY2h1bmtzCi0gICAgICAgIDpwYXJhbSBpOiAtIHRoZSBjaHVuayBpbmRleCBpbiB0aGUg
bGlzdCBvZiBjaHVua3MgdG8gdHJ5IHJlbW92aW5nIGZyb20KLSAgICAgICAgOnBhcmFtIGRpcmVj
dGlvbjogZWl0aGVyICJuZXh0IiBpZiB3ZSBhcmUgZ29pbmcgdG8gbW92ZSBmcm9tIHRoZSBlbmQg
dG8KLSAgICAgICAgICAgICAgICAgICAgICAgICAgdGhlIHN1YnNlcXVlbnQgY2h1bmssIG9yICJw
cmV2IiBpZiB3ZSBhcmUgZ29pbmcgdG8gbW92ZQotICAgICAgICAgICAgICAgICAgICAgICAgICBm
cm9tIHRoZSBzdGFydCBpbnRvIHRoZSBwcmV2aW91cyBjaHVuay4KLQotICAgICAgICA6cmV0dXJu
cyBib29sOiBEaWQgYSBjaHVuayBnZXQgbW92ZWQ/IiIiCi0gICAgICAgIHNvdXJjZV9jaHVuayA9
IGNodW5rc1tpXQotICAgICAgICBpZiBkaXJlY3Rpb24gPT0gIm5leHQiOgotICAgICAgICAgICAg
dGFyZ2V0X2NodW5rID0gY2h1bmtzW2krMV0KLSAgICAgICAgICAgIHBhdGhfaW5kZXggPSAtMQot
ICAgICAgICAgICAgbW92ZV9mdW5jID0gbGFtYmRhOiB0YXJnZXRfY2h1bmsuYXBwZW5kbGVmdChz
b3VyY2VfY2h1bmsucG9wKCkpCi0gICAgICAgIGVsaWYgZGlyZWN0aW9uID09ICJwcmV2IjoKLSAg
ICAgICAgICAgIHRhcmdldF9jaHVuayA9IGNodW5rc1tpLTFdCi0gICAgICAgICAgICBwYXRoX2lu
ZGV4ID0gMAotICAgICAgICAgICAgbW92ZV9mdW5jID0gbGFtYmRhOiB0YXJnZXRfY2h1bmsuYXBw
ZW5kKHNvdXJjZV9jaHVuay5wb3BsZWZ0KCkpCi0gICAgICAgIGVsc2U6Ci0gICAgICAgICAgICBy
YWlzZSBWYWx1ZUVycm9yKCJVbmV4cGVjdGVkIG1vdmUgZGlyZWN0aW9uICVzIiAlIGRpcmVjdGlv
bikKLQotICAgICAgICByZXR1cm4gc2VsZi5fbWF5YmVfbW92ZShzb3VyY2VfY2h1bmssIHRhcmdl
dF9jaHVuaywgcGF0aF9pbmRleCwgbW92ZV9mdW5jKQotCi0gICAgZGVmIF9tYXliZV9hZGQoc2Vs
ZiwgY2h1bmtzLCBpLCBkaXJlY3Rpb24pOgotICAgICAgICAiIiJUcmlhbCBhZGRpbmcgYSBjaHVu
ayBmcm9tIG9uZSBjaHVuayB0byBhbiBhZGphY2VudCBvbmUuCi0KLSAgICAgICAgOnBhcmFtIGNo
dW5rczogLSB0aGUgbGlzdCBvZiBhbGwgY2h1bmtzCi0gICAgICAgIDpwYXJhbSBpOiAtIHRoZSBj
aHVuayBpbmRleCBpbiB0aGUgbGlzdCBvZiBjaHVua3MgdG8gdHJ5IGFkZGluZyB0bwotICAgICAg
ICA6cGFyYW0gZGlyZWN0aW9uOiBlaXRoZXIgIm5leHQiIGlmIHdlIGFyZSBnb2luZyB0byByZW1v
dmUgZnJvbSB0aGUKLSAgICAgICAgICAgICAgICAgICAgICAgICAgdGhlIHN1YnNlcXVlbnQgY2h1
bmssIG9yICJwcmV2IiBpZiB3ZSBhcmUgZ29pbmcgdG8gcmVtb3ZlCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgIGZyb20gdGhlIHRoZSBwcmV2aW91cyBjaHVuay4KLQotICAgICAgICA6cmV0dXJu
cyBib29sOiBEaWQgYSBjaHVuayBnZXQgbW92ZWQ/IiIiCi0gICAgICAgIHRhcmdldF9jaHVuayA9
IGNodW5rc1tpXQotICAgICAgICBpZiBkaXJlY3Rpb24gPT0gIm5leHQiOgotICAgICAgICAgICAg
c291cmNlX2NodW5rID0gY2h1bmtzW2krMV0KLSAgICAgICAgICAgIHBhdGhfaW5kZXggPSAwCi0g
ICAgICAgICAgICBtb3ZlX2Z1bmMgPSBsYW1iZGE6IHRhcmdldF9jaHVuay5hcHBlbmQoc291cmNl
X2NodW5rLnBvcGxlZnQoKSkKLSAgICAgICAgZWxpZiBkaXJlY3Rpb24gPT0gInByZXYiOgotICAg
ICAgICAgICAgc291cmNlX2NodW5rID0gY2h1bmtzW2ktMV0KLSAgICAgICAgICAgIHBhdGhfaW5k
ZXggPSAtMQotICAgICAgICAgICAgbW92ZV9mdW5jID0gbGFtYmRhOiB0YXJnZXRfY2h1bmsuYXBw
ZW5kbGVmdChzb3VyY2VfY2h1bmsucG9wKCkpCi0gICAgICAgIGVsc2U6Ci0gICAgICAgICAgICBy
YWlzZSBWYWx1ZUVycm9yKCJVbmV4cGVjdGVkIG1vdmUgZGlyZWN0aW9uICVzIiAlIGRpcmVjdGlv
bikKLQotICAgICAgICByZXR1cm4gc2VsZi5fbWF5YmVfbW92ZShzb3VyY2VfY2h1bmssIHRhcmdl
dF9jaHVuaywgcGF0aF9pbmRleCwgbW92ZV9mdW5jKQotCi0gICAgZGVmIF9tYXliZV9tb3ZlKHNl
bGYsIHNvdXJjZV9jaHVuaywgdGFyZ2V0X2NodW5rLCBwYXRoX2luZGV4LCBtb3ZlX2Z1bmMpOgot
ICAgICAgICAiIiJNb3ZlIGZyb20gb25lIGNodW5rIHRvIGFub3RoZXIsIGFzc2VzcyB0aGUgY2hh
bmdlIGluIGJhZG5lc3MsCi0gICAgICAgIGFuZCBrZWVwIHRoZSBtb3ZlIGlmZiBpdCBkZWNyZWFz
ZXMgdGhlIGJhZG5lc3Mgc2NvcmUuCi0KLSAgICAgICAgOnBhcmFtIHNvdXJjZV9jaHVuazogY2h1
bmsgdG8gbW92ZSBmcm9tCi0gICAgICAgIDpwYXJhbSB0YXJnZXRfY2h1bms6IGNodW5rIHRvIG1v
dmUgdG8KLSAgICAgICAgOnBhcmFtIHBhdGhfaW5kZXg6IDAgaWYgd2UgYXJlIG1vdmluZyBmcm9t
IHRoZSBzdGFydCBvciAtMSBpZiB3ZSBhcmUgbW92aW5nIGZyb20gdGhlCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICBlbmQKLSAgICAgICAgOnBhcmFtIG1vdmVfZnVuYzogRnVuY3Rpb24gdGhh
dCBhY3R1YWxseSBtb3ZlcyBiZXR3ZWVuIGNodW5rcyIiIgotICAgICAgICBpZiBsZW4oc291cmNl
X2NodW5rLnBhdGhzKSA8PSAxOgotICAgICAgICAgICAgcmV0dXJuIEZhbHNlCi0KLSAgICAgICAg
bW92ZV90aW1lID0gc291cmNlX2NodW5rLnBhdGhzW3BhdGhfaW5kZXhdLnRpbWUKLQotICAgICAg
ICBuZXdfc291cmNlX2JhZG5lc3MgPSBzZWxmLl9iYWRuZXNzKHNvdXJjZV9jaHVuay50aW1lIC0g
bW92ZV90aW1lKQotICAgICAgICBuZXdfdGFyZ2V0X2JhZG5lc3MgPSBzZWxmLl9iYWRuZXNzKHRh
cmdldF9jaHVuay50aW1lICsgbW92ZV90aW1lKQotCi0gICAgICAgIGRlbHRhX2JhZG5lc3MgPSAo
KG5ld19zb3VyY2VfYmFkbmVzcyArIG5ld190YXJnZXRfYmFkbmVzcykgLQotICAgICAgICAgICAg
ICAgICAgICAgICAgIChzb3VyY2VfY2h1bmsuYmFkbmVzcyArIHRhcmdldF9jaHVuay5iYWRuZXNz
KSkKLSAgICAgICAgaWYgZGVsdGFfYmFkbmVzcyA8IDA6Ci0gICAgICAgICAgICBtb3ZlX2Z1bmMo
KQotICAgICAgICAgICAgcmV0dXJuIFRydWUKLQotICAgICAgICByZXR1cm4gRmFsc2UKLQotICAg
IGRlZiBfYmFkbmVzcyhzZWxmLCB0aW1lKToKLSAgICAgICAgIiIiTWV0cmljIG9mIGJhZG5lc3Mg
Zm9yIGEgc3BlY2lmaWMgY2h1bmsKLQotICAgICAgICA6cGFyYW0gdGltZTogdGhlIHRpbWUgZm9y
IGEgc3BlY2lmaWMgY2h1bmsiIiIKLSAgICAgICAgcmV0dXJuICh0aW1lIC0gc2VsZi5leHBlY3Rl
ZF90aW1lKSoqMgotCi0gICAgZGVmIF9nZXRfY2h1bmsoc2VsZiwgbWFuaWZlc3RfaXRlbXMpOgot
ICAgICAgICBieV9kaXIsIHRvdGFsX3RpbWUgPSBzZWxmLl9ncm91cF9ieV9kaXJlY3RvcnkobWFu
aWZlc3RfaXRlbXMpCi0KLSAgICAgICAgaWYgbGVuKGJ5X2RpcikgPCBzZWxmLnRvdGFsX2NodW5r
czoKLSAgICAgICAgICAgIHJhaXNlIFZhbHVlRXJyb3IoIlRyaWVkIHRvIHNwbGl0IGludG8gJWkg
Y2h1bmtzLCBidXQgb25seSAlaSBzdWJkaXJlY3RvcmllcyBpbmNsdWRlZCIgJSAoCi0gICAgICAg
ICAgICAgICAgc2VsZi50b3RhbF9jaHVua3MsIGxlbihieV9kaXIpKSkKLQotICAgICAgICBzZWxm
LmV4cGVjdGVkX3RpbWUgPSBmbG9hdCh0b3RhbF90aW1lKSAvIHNlbGYudG90YWxfY2h1bmtzCi0K
LSAgICAgICAgY2h1bmtzID0gc2VsZi5fY3JlYXRlX2luaXRpYWxfY2h1bmtzKGJ5X2RpcikKLQot
ICAgICAgICB3aGlsZSBUcnVlOgotICAgICAgICAgICAgIyBNb3ZlIGEgdGVzdCBmcm9tIG9uZSBj
aHVuayB0byB0aGUgbmV4dCB1bnRpbCBkb2luZyBzbyBubyBsb25nZXIKLSAgICAgICAgICAgICMg
cmVkdWNlcyB0aGUgYmFkbmVzcwotICAgICAgICAgICAgZ290X2ltcHJvdmVtZW50ID0gc2VsZi5f
dXBkYXRlX2NodW5rcyhjaHVua3MpCi0gICAgICAgICAgICBpZiBub3QgZ290X2ltcHJvdmVtZW50
OgotICAgICAgICAgICAgICAgIGJyZWFrCi0KLSAgICAgICAgc2VsZi5sb2dnZXIuZGVidWcoc2Vs
Zi5leHBlY3RlZF90aW1lKQotICAgICAgICBmb3IgaSwgY2h1bmsgaW4gY2h1bmtzLml0ZXJpdGVt
cygpOgotICAgICAgICAgICAgc2VsZi5sb2dnZXIuZGVidWcoIiVpOiAlaSwgJWkiICUgKGkgKyAx
LCBjaHVuay50aW1lLCBjaHVuay5iYWRuZXNzKSkKLQotICAgICAgICBhc3NlcnQgc2VsZi5fYWxs
X3Rlc3RzKGJ5X2RpcikgPT0gc2VsZi5fY2h1bmtlZF90ZXN0cyhjaHVua3MpCi0KLSAgICAgICAg
cmV0dXJuIHNlbGYuX2dldF90ZXN0cyhjaHVua3MpCi0KLSAgICBAc3RhdGljbWV0aG9kCi0gICAg
ZGVmIF9hbGxfdGVzdHMoYnlfZGlyKToKLSAgICAgICAgIiIiUmV0dXJuIGEgc2V0IG9mIGFsbCB0
ZXN0cyBpbiB0aGUgbWFuaWZlc3QgZnJvbSBhIGdyb3VwaW5nIGJ5IGRpcmVjdG9yeSIiIgotICAg
ICAgICByZXR1cm4gc2V0KHhbMF0gZm9yIGl0ZW0gaW4gYnlfZGlyLml0ZXJ2YWx1ZXMoKQotICAg
ICAgICAgICAgICAgICAgIGZvciB4IGluIGl0ZW0udGVzdHMpCi0KLSAgICBAc3RhdGljbWV0aG9k
Ci0gICAgZGVmIF9jaHVua2VkX3Rlc3RzKGNodW5rcyk6Ci0gICAgICAgICIiIlJldHVybiBhIHNl
dCBvZiBhbGwgdGVzdHMgaW4gdGhlIG1hbmlmZXN0IGZyb20gdGhlIGNodW5rIGxpc3QiIiIKLSAg
ICAgICAgcmV0dXJuIHNldCh4WzBdIGZvciBjaHVuayBpbiBjaHVua3MuaXRlcnZhbHVlcygpCi0g
ICAgICAgICAgICAgICAgICAgZm9yIHBhdGggaW4gY2h1bmsucGF0aHMKLSAgICAgICAgICAgICAg
ICAgICBmb3IgeCBpbiBwYXRoLnRlc3RzKQotCi0KLSAgICBkZWYgX2NyZWF0ZV9pbml0aWFsX2No
dW5rcyhzZWxmLCBieV9kaXIpOgotICAgICAgICAiIiJDcmVhdGUgYW4gaW5pdGlhbCB1bmJhbGFu
Y2VkIGxpc3Qgb2YgY2h1bmtzLgotCi0gICAgICAgIDpwYXJhbSBieV9kaXI6IEFsbCB0ZXN0cyBp
biB0aGUgbWFuaWZlc3QgZ3JvdXBlZCBieSBzdWJkaXJlY3RvcnkKLSAgICAgICAgOnJldHVybnMg
bGlzdDogQSBsaXN0IG9mIENodW5rIG9iamVjdHMiIiIKLQotICAgICAgICBjbGFzcyBDaHVuayhv
YmplY3QpOgotICAgICAgICAgICAgZGVmIF9faW5pdF9fKHNlbGYsIHBhdGhzLCBpbmRleCk6Ci0g
ICAgICAgICAgICAgICAgIiIiTGlzdCBvZiBQYXRoRGF0YSBvYmplY3RzIHRoYXQgdG9nZXRoZXIg
Zm9ybSBhIHNpbmdsZSBjaHVuayBvZgotICAgICAgICAgICAgICAgIHRlc3RzIiIiCi0gICAgICAg
ICAgICAgICAgc2VsZi5wYXRocyA9IGRlcXVlKHBhdGhzKQotICAgICAgICAgICAgICAgIHNlbGYu
dGltZSA9IHN1bShpdGVtLnRpbWUgZm9yIGl0ZW0gaW4gcGF0aHMpCi0gICAgICAgICAgICAgICAg
c2VsZi5pbmRleCA9IGluZGV4Ci0KLSAgICAgICAgICAgIGRlZiBhcHBlbmRsZWZ0KHNlbGYsIHBh
dGgpOgotICAgICAgICAgICAgICAgICIiIkFkZCBhIFBhdGhEYXRhIG9iamVjdCB0byB0aGUgc3Rh
cnQgb2YgdGhlIGNodW5rIiIiCi0gICAgICAgICAgICAgICAgc2VsZi5wYXRocy5hcHBlbmRsZWZ0
KHBhdGgpCi0gICAgICAgICAgICAgICAgc2VsZi50aW1lICs9IHBhdGgudGltZQotCi0gICAgICAg
ICAgICBkZWYgYXBwZW5kKHNlbGYsIHBhdGgpOgotICAgICAgICAgICAgICAgICIiIkFkZCBhIFBh
dGhEYXRhIG9iamVjdCB0byB0aGUgZW5kIG9mIHRoZSBjaHVuayIiIgotICAgICAgICAgICAgICAg
IHNlbGYucGF0aHMuYXBwZW5kKHBhdGgpCi0gICAgICAgICAgICAgICAgc2VsZi50aW1lICs9IHBh
dGgudGltZQotCi0gICAgICAgICAgICBkZWYgcG9wKHNlbGYpOgotICAgICAgICAgICAgICAgICIi
IlJlbW92ZSBQYXRoRGF0YSBvYmplY3QgZnJvbSB0aGUgZW5kIG9mIHRoZSBjaHVuayIiIgotICAg
ICAgICAgICAgICAgIGFzc2VydCBsZW4oc2VsZi5wYXRocykgPiAxCi0gICAgICAgICAgICAgICAg
c2VsZi50aW1lIC09IHNlbGYucGF0aHNbLTFdLnRpbWUKLSAgICAgICAgICAgICAgICByZXR1cm4g
c2VsZi5wYXRocy5wb3AoKQotCi0gICAgICAgICAgICBkZWYgcG9wbGVmdChzZWxmKToKLSAgICAg
ICAgICAgICAgICAiIiJSZW1vdmUgUGF0aERhdGEgb2JqZWN0IGZyb20gdGhlIHN0YXJ0IG9mIHRo
ZSBjaHVuayIiIgotICAgICAgICAgICAgICAgIGFzc2VydCBsZW4oc2VsZi5wYXRocykgPiAxCi0g
ICAgICAgICAgICAgICAgc2VsZi50aW1lIC09IHNlbGYucGF0aHNbMF0udGltZQotICAgICAgICAg
ICAgICAgIHJldHVybiBzZWxmLnBhdGhzLnBvcGxlZnQoKQotCi0gICAgICAgICAgICBAcHJvcGVy
dHkKLSAgICAgICAgICAgIGRlZiBiYWRuZXNzKHNlbGZfKTogICMgbm9xYTogTjgwNQotICAgICAg
ICAgICAgICAgICIiIkJhZG5lc3MgbWV0cmljIGZvciB0aGlzIGNodW5rIiIiCi0gICAgICAgICAg
ICAgICAgcmV0dXJuIHNlbGYuX2JhZG5lc3Moc2VsZl8udGltZSkKLQotICAgICAgICBpbml0aWFs
X3NpemUgPSBsZW4oYnlfZGlyKSAvIHNlbGYudG90YWxfY2h1bmtzCi0gICAgICAgIGNodW5rX2Jv
dW5kYXJpZXMgPSBbaW5pdGlhbF9zaXplICogaQotICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGZvciBpIGluIHhyYW5nZShzZWxmLnRvdGFsX2NodW5rcyldICsgW2xlbihieV9kaXIpXQotCi0g
ICAgICAgIGNodW5rcyA9IE9yZGVyZWREaWN0KCkKLSAgICAgICAgZm9yIGksIGxvd2VyIGluIGVu
dW1lcmF0ZShjaHVua19ib3VuZGFyaWVzWzotMV0pOgotICAgICAgICAgICAgdXBwZXIgPSBjaHVu
a19ib3VuZGFyaWVzW2kgKyAxXQotICAgICAgICAgICAgcGF0aHMgPSBieV9kaXIudmFsdWVzKClb
bG93ZXI6dXBwZXJdCi0gICAgICAgICAgICBjaHVua3NbaV0gPSBDaHVuayhwYXRocywgaSkKLQot
ICAgICAgICBhc3NlcnQgc2VsZi5fYWxsX3Rlc3RzKGJ5X2RpcikgPT0gc2VsZi5fY2h1bmtlZF90
ZXN0cyhjaHVua3MpCi0KLSAgICAgICAgcmV0dXJuIGNodW5rcwotCi0gICAgZGVmIF91cGRhdGVf
Y2h1bmtzKHNlbGYsIGNodW5rcyk6Ci0gICAgICAgICIiIlJ1biBhIHNpbmdsZSBpdGVyYXRpb24g
b2YgdGhlIGNodW5rIHVwZGF0ZSBhbGdvcml0aG0uCi0KLSAgICAgICAgOnBhcmFtIGNodW5rczog
LSBMaXN0IG9mIGNodW5rcwotICAgICAgICAiIiIKLSAgICAgICAgI1RPRE86IGNvbnNpZGVyIHJl
cGxhY2luZyB0aGlzIHdpdGggYSBoZWFwCi0gICAgICAgIHNvcnRlZF9jaHVua3MgPSBzb3J0ZWQo
Y2h1bmtzLnZhbHVlcygpLCBrZXk9bGFtYmRhIHg6LXguYmFkbmVzcykKLSAgICAgICAgZ290X2lt
cHJvdmVtZW50ID0gRmFsc2UKLSAgICAgICAgZm9yIGNodW5rIGluIHNvcnRlZF9jaHVua3M6Ci0g
ICAgICAgICAgICBpZiBjaHVuay50aW1lIDwgc2VsZi5leHBlY3RlZF90aW1lOgotICAgICAgICAg
ICAgICAgIGYgPSBzZWxmLl9tYXliZV9hZGQKLSAgICAgICAgICAgIGVsc2U6Ci0gICAgICAgICAg
ICAgICAgZiA9IHNlbGYuX21heWJlX3JlbW92ZQotCi0gICAgICAgICAgICBpZiBjaHVuay5pbmRl
eCA9PSAwOgotICAgICAgICAgICAgICAgIG9yZGVyID0gWyJuZXh0Il0KLSAgICAgICAgICAgIGVs
aWYgY2h1bmsuaW5kZXggPT0gc2VsZi50b3RhbF9jaHVua3MgLSAxOgotICAgICAgICAgICAgICAg
IG9yZGVyID0gWyJwcmV2Il0KLSAgICAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAgICAgaWYg
Y2h1bmsudGltZSA8IHNlbGYuZXhwZWN0ZWRfdGltZToKLSAgICAgICAgICAgICAgICAgICAgIyBG
aXJzdCB0cnkgdG8gYWRkIGEgdGVzdCBmcm9tIHRoZSBuZWlnaGJvcmluZyBjaHVuayB3aXRoIHRo
ZQotICAgICAgICAgICAgICAgICAgICAjIGdyZWF0ZXN0IHRvdGFsIHRpbWUKLSAgICAgICAgICAg
ICAgICAgICAgaWYgY2h1bmtzW2NodW5rLmluZGV4ICsgMV0udGltZSA+IGNodW5rc1tjaHVuay5p
bmRleCAtIDFdLnRpbWU6Ci0gICAgICAgICAgICAgICAgICAgICAgICBvcmRlciA9IFsibmV4dCIs
ICJwcmV2Il0KLSAgICAgICAgICAgICAgICAgICAgZWxzZToKLSAgICAgICAgICAgICAgICAgICAg
ICAgIG9yZGVyID0gWyJwcmV2IiwgIm5leHQiXQotICAgICAgICAgICAgICAgIGVsc2U6Ci0gICAg
ICAgICAgICAgICAgICAgICMgRmlyc3QgdHJ5IHRvIHJlbW92ZSBhIHRlc3QgYW5kIGFkZCB0byB0
aGUgbmVpZ2hib3JpbmcgY2h1bmsgd2l0aCB0aGUKLSAgICAgICAgICAgICAgICAgICAgIyBsb3dl
c3QgdG90YWwgdGltZQotICAgICAgICAgICAgICAgICAgICBpZiBjaHVua3NbY2h1bmsuaW5kZXgg
KyAxXS50aW1lID4gY2h1bmtzW2NodW5rLmluZGV4IC0gMV0udGltZToKLSAgICAgICAgICAgICAg
ICAgICAgICAgIG9yZGVyID0gWyJwcmV2IiwgIm5leHQiXQotICAgICAgICAgICAgICAgICAgICBl
bHNlOgotICAgICAgICAgICAgICAgICAgICAgICAgb3JkZXIgPSBbIm5leHQiLCAicHJldiJdCi0K
LSAgICAgICAgICAgIGZvciBkaXJlY3Rpb24gaW4gb3JkZXI6Ci0gICAgICAgICAgICAgICAgaWYg
ZihjaHVua3MsIGNodW5rLmluZGV4LCBkaXJlY3Rpb24pOgotICAgICAgICAgICAgICAgICAgICBn
b3RfaW1wcm92ZW1lbnQgPSBUcnVlCi0gICAgICAgICAgICAgICAgICAgIGJyZWFrCi0KLSAgICAg
ICAgICAgIGlmIGdvdF9pbXByb3ZlbWVudDoKLSAgICAgICAgICAgICAgICBicmVhawotCi0gICAg
ICAgIHJldHVybiBnb3RfaW1wcm92ZW1lbnQKLQotICAgIGRlZiBfZ2V0X3Rlc3RzKHNlbGYsIGNo
dW5rcyk6Ci0gICAgICAgICIiIlJldHVybiB0aGUgbGlzdCBvZiB0ZXN0cyBjb3JyZXNwb25kaW5n
IHRvIHRoZSBjaHVuayBudW1iZXIgd2UgYXJlIHJ1bm5pbmcuCi0KLSAgICAgICAgOnBhcmFtIGNo
dW5rczogTGlzdCBvZiBjaHVua3MiIiIKLSAgICAgICAgdGVzdHMgPSBbXQotICAgICAgICBmb3Ig
cGF0aCBpbiBjaHVua3Nbc2VsZi5jaHVua19udW1iZXIgLSAxXS5wYXRoczoKLSAgICAgICAgICAg
IHRlc3RzLmV4dGVuZChwYXRoLnRlc3RzKQotCi0gICAgICAgIHJldHVybiB0ZXN0cwotCi0gICAg
ZGVmIF9fY2FsbF9fKHNlbGYsIG1hbmlmZXN0X2l0ZXIpOgotICAgICAgICBtYW5pZmVzdCA9IGxp
c3QobWFuaWZlc3RfaXRlcikKLSAgICAgICAgdGVzdHMgPSBzZWxmLl9nZXRfY2h1bmsobWFuaWZl
c3QpCi0gICAgICAgIGZvciBpdGVtIGluIHRlc3RzOgotICAgICAgICAgICAgeWllbGQgaXRlbQot
Ci0KIGNsYXNzIFRlc3RGaWx0ZXIob2JqZWN0KToKLSAgICBkZWYgX19pbml0X18oc2VsZiwgdGVz
dF9tYW5pZmVzdHMsIGluY2x1ZGU9Tm9uZSwgZXhjbHVkZT1Ob25lLCBtYW5pZmVzdF9wYXRoPU5v
bmUpOgotICAgICAgICBpZiBtYW5pZmVzdF9wYXRoIGlzIG5vdCBOb25lIGFuZCBpbmNsdWRlIGlz
IE5vbmU6Ci0gICAgICAgICAgICBzZWxmLm1hbmlmZXN0ID0gbWFuaWZlc3RpbmNsdWRlLmdldF9t
YW5pZmVzdChtYW5pZmVzdF9wYXRoKQotICAgICAgICBlbHNlOgorICAgICIiIkNhbGxhYmxlIHRo
YXQgcmVzdHJpY3RzIHRoZSBzZXQgb2YgdGVzdHMgaW4gYSBnaXZlbiBtYW5pZmVzdCBhY2NvcmRp
bmcKKyAgICB0byBpbml0aWFsIGNyaXRlcmlhIiIiCisgICAgZGVmIF9faW5pdF9fKHNlbGYsIHRl
c3RfbWFuaWZlc3RzLCBpbmNsdWRlPU5vbmUsIGV4Y2x1ZGU9Tm9uZSwgbWFuaWZlc3RfcGF0aD1O
b25lLCBleHBsaWNpdD1GYWxzZSk6CisgICAgICAgIGlmIG1hbmlmZXN0X3BhdGggaXMgTm9uZSBv
ciBpbmNsdWRlIG9yIGV4cGxpY2l0OgogICAgICAgICAgICAgc2VsZi5tYW5pZmVzdCA9IG1hbmlm
ZXN0aW5jbHVkZS5JbmNsdWRlTWFuaWZlc3QuY3JlYXRlKCkKICAgICAgICAgICAgIHNlbGYubWFu
aWZlc3Quc2V0X2RlZmF1bHRzKCkKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHNlbGYubWFu
aWZlc3QgPSBtYW5pZmVzdGluY2x1ZGUuZ2V0X21hbmlmZXN0KG1hbmlmZXN0X3BhdGgpCiAKLSAg
ICAgICAgaWYgaW5jbHVkZToKKyAgICAgICAgaWYgaW5jbHVkZSBvciBleHBsaWNpdDoKICAgICAg
ICAgICAgIHNlbGYubWFuaWZlc3Quc2V0KCJza2lwIiwgInRydWUiKQorCisgICAgICAgIGlmIGlu
Y2x1ZGU6CiAgICAgICAgICAgICBmb3IgaXRlbSBpbiBpbmNsdWRlOgogICAgICAgICAgICAgICAg
IHNlbGYubWFuaWZlc3QuYWRkX2luY2x1ZGUodGVzdF9tYW5pZmVzdHMsIGl0ZW0pCiAKQEAgLTM2
Nyw2ICs5OSw3IEBAIGNsYXNzIFRlc3RGaWx0ZXIob2JqZWN0KToKICAgICAgICAgICAgIGlmIGlu
Y2x1ZGVfdGVzdHM6CiAgICAgICAgICAgICAgICAgeWllbGQgdGVzdF90eXBlLCB0ZXN0X3BhdGgs
IGluY2x1ZGVfdGVzdHMKIAorCiBjbGFzcyBUYWdGaWx0ZXIob2JqZWN0KToKICAgICBkZWYgX19p
bml0X18oc2VsZiwgdGFncyk6CiAgICAgICAgIHNlbGYudGFncyA9IHNldCh0YWdzKQpAQCAtMzc4
LDEzICsxMTEsMTMgQEAgY2xhc3MgVGFnRmlsdGVyKG9iamVjdCk6CiAKIAogY2xhc3MgTWFuaWZl
c3RMb2FkZXIob2JqZWN0KToKLSAgICBkZWYgX19pbml0X18oc2VsZiwgdGVzdF9wYXRocywgZm9y
Y2VfbWFuaWZlc3RfdXBkYXRlPUZhbHNlLCBtYW5pZmVzdF9kb3dubG9hZD1GYWxzZSwgdHlwZXM9
Tm9uZSwgbWV0YV9maWx0ZXJzPU5vbmUpOgorICAgIGRlZiBfX2luaXRfXyhzZWxmLCB0ZXN0X3Bh
dGhzLCBmb3JjZV9tYW5pZmVzdF91cGRhdGU9RmFsc2UsIG1hbmlmZXN0X2Rvd25sb2FkPUZhbHNl
LAorICAgICAgICAgICAgICAgICB0eXBlcz1Ob25lKToKICAgICAgICAgZG9fZGVsYXllZF9pbXBv
cnRzKCkKICAgICAgICAgc2VsZi50ZXN0X3BhdGhzID0gdGVzdF9wYXRocwogICAgICAgICBzZWxm
LmZvcmNlX21hbmlmZXN0X3VwZGF0ZSA9IGZvcmNlX21hbmlmZXN0X3VwZGF0ZQogICAgICAgICBz
ZWxmLm1hbmlmZXN0X2Rvd25sb2FkID0gbWFuaWZlc3RfZG93bmxvYWQKICAgICAgICAgc2VsZi50
eXBlcyA9IHR5cGVzCi0gICAgICAgIHNlbGYubWV0YV9maWx0ZXJzID0gbWV0YV9maWx0ZXJzIG9y
IFtdCiAgICAgICAgIHNlbGYubG9nZ2VyID0gc3RydWN0dXJlZC5nZXRfZGVmYXVsdF9sb2dnZXIo
KQogICAgICAgICBpZiBzZWxmLmxvZ2dlciBpcyBOb25lOgogICAgICAgICAgICAgc2VsZi5sb2dn
ZXIgPSBzdHJ1Y3R1cmVkLnN0cnVjdHVyZWRsb2cuU3RydWN0dXJlZExvZ2dlcigiTWFuaWZlc3RM
b2FkZXIiKQpAQCAtMzk5LDU0ICsxMzIsMTMgQEAgY2xhc3MgTWFuaWZlc3RMb2FkZXIob2JqZWN0
KToKICAgICAgICAgICAgIHJ2W21hbmlmZXN0X2ZpbGVdID0gcGF0aF9kYXRhCiAgICAgICAgIHJl
dHVybiBydgogCi0gICAgZGVmIGNyZWF0ZV9tYW5pZmVzdChzZWxmLCBtYW5pZmVzdF9wYXRoLCB0
ZXN0c19wYXRoLCB1cmxfYmFzZT0iLyIpOgotICAgICAgICBzZWxmLnVwZGF0ZV9tYW5pZmVzdCht
YW5pZmVzdF9wYXRoLCB0ZXN0c19wYXRoLCB1cmxfYmFzZSwgcmVjcmVhdGU9VHJ1ZSwKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgZG93bmxvYWQ9c2VsZi5tYW5pZmVzdF9kb3dubG9hZCkK
LQotICAgIGRlZiB1cGRhdGVfbWFuaWZlc3Qoc2VsZiwgbWFuaWZlc3RfcGF0aCwgdGVzdHNfcGF0
aCwgdXJsX2Jhc2U9Ii8iLAotICAgICAgICAgICAgICAgICAgICAgICAgcmVjcmVhdGU9RmFsc2Us
IGRvd25sb2FkPUZhbHNlKToKLSAgICAgICAgc2VsZi5sb2dnZXIuaW5mbygiVXBkYXRpbmcgdGVz
dCBtYW5pZmVzdCAlcyIgJSBtYW5pZmVzdF9wYXRoKQotICAgICAgICBtYW5pZmVzdF9sb2cuc2V0
dXAoKQotCi0gICAgICAgIGpzb25fZGF0YSA9IE5vbmUKLSAgICAgICAgaWYgZG93bmxvYWQ6Ci0g
ICAgICAgICAgICAjIFRPRE86IG1ha2UgdGhpcyBub3QgZ2l0aHViLXNwZWNpZmljCisgICAgZGVm
IGxvYWRfbWFuaWZlc3Qoc2VsZiwgdGVzdHNfcGF0aCwgbWFuaWZlc3RfcGF0aCwgbWV0YWRhdGFf
cGF0aCwgdXJsX2Jhc2U9Ii8iLCAqKmt3YXJncyk6CisgICAgICAgIGNhY2hlX3Jvb3QgPSBvcy5w
YXRoLmpvaW4obWV0YWRhdGFfcGF0aCwgIi5jYWNoZSIpCisgICAgICAgIGlmIHNlbGYubWFuaWZl
c3RfZG93bmxvYWQ6CiAgICAgICAgICAgICBkb3dubG9hZF9mcm9tX2dpdGh1YihtYW5pZmVzdF9w
YXRoLCB0ZXN0c19wYXRoKQotCi0gICAgICAgIGlmIG5vdCByZWNyZWF0ZToKLSAgICAgICAgICAg
IHRyeToKLSAgICAgICAgICAgICAgICB3aXRoIG9wZW4obWFuaWZlc3RfcGF0aCkgYXMgZjoKLSAg
ICAgICAgICAgICAgICAgICAganNvbl9kYXRhID0ganNvbi5sb2FkKGYpCi0gICAgICAgICAgICBl
eGNlcHQgSU9FcnJvcjoKLSAgICAgICAgICAgICAgICBzZWxmLmxvZ2dlci5pbmZvKCJVbmFibGUg
dG8gZmluZCB0ZXN0IG1hbmlmZXN0IikKLSAgICAgICAgICAgIGV4Y2VwdCBWYWx1ZUVycm9yOgot
ICAgICAgICAgICAgICAgIHNlbGYubG9nZ2VyLmluZm8oIlVuYWJsZSB0byBwYXJzZSB0ZXN0IG1h
bmlmZXN0IikKLQotICAgICAgICBpZiBub3QganNvbl9kYXRhOgotICAgICAgICAgICAgc2VsZi5s
b2dnZXIuaW5mbygiQ3JlYXRpbmcgdGVzdCBtYW5pZmVzdCIpCi0gICAgICAgICAgICBtYW5pZmVz
dF9maWxlID0gbWFuaWZlc3QuTWFuaWZlc3QodXJsX2Jhc2UpCi0gICAgICAgIGVsc2U6Ci0gICAg
ICAgICAgICB0cnk6Ci0gICAgICAgICAgICAgICAgbWFuaWZlc3RfZmlsZSA9IG1hbmlmZXN0Lk1h
bmlmZXN0LmZyb21fanNvbih0ZXN0c19wYXRoLCBqc29uX2RhdGEpCi0gICAgICAgICAgICBleGNl
cHQgbWFuaWZlc3QuTWFuaWZlc3RWZXJzaW9uTWlzbWF0Y2g6Ci0gICAgICAgICAgICAgICAgbWFu
aWZlc3RfZmlsZSA9IG1hbmlmZXN0Lk1hbmlmZXN0KHVybF9iYXNlKQotCi0gICAgICAgIG1hbmlm
ZXN0X3VwZGF0ZS51cGRhdGUodGVzdHNfcGF0aCwgbWFuaWZlc3RfZmlsZSwgVHJ1ZSkKLQotICAg
ICAgICBtYW5pZmVzdC53cml0ZShtYW5pZmVzdF9maWxlLCBtYW5pZmVzdF9wYXRoKQotCi0gICAg
ZGVmIGxvYWRfbWFuaWZlc3Qoc2VsZiwgdGVzdHNfcGF0aCwgbWFuaWZlc3RfcGF0aCwgdXJsX2Jh
c2U9Ii8iLCAqKmt3YXJncyk6Ci0gICAgICAgIGlmIChub3Qgb3MucGF0aC5leGlzdHMobWFuaWZl
c3RfcGF0aCkgb3IKLSAgICAgICAgICAgIHNlbGYuZm9yY2VfbWFuaWZlc3RfdXBkYXRlKToKLSAg
ICAgICAgICAgIHNlbGYudXBkYXRlX21hbmlmZXN0KG1hbmlmZXN0X3BhdGgsIHRlc3RzX3BhdGgs
IHVybF9iYXNlLCBkb3dubG9hZD1zZWxmLm1hbmlmZXN0X2Rvd25sb2FkKQotICAgICAgICBtYW5p
ZmVzdF9maWxlID0gbWFuaWZlc3QubG9hZCh0ZXN0c19wYXRoLCBtYW5pZmVzdF9wYXRoLCB0eXBl
cz1zZWxmLnR5cGVzLCBtZXRhX2ZpbHRlcnM9c2VsZi5tZXRhX2ZpbHRlcnMpCi0gICAgICAgIGlm
IG1hbmlmZXN0X2ZpbGUudXJsX2Jhc2UgIT0gdXJsX2Jhc2U6Ci0gICAgICAgICAgICBzZWxmLmxv
Z2dlci5pbmZvKCJVcGRhdGluZyB1cmxfYmFzZSBpbiBtYW5pZmVzdCBmcm9tICVzIHRvICVzIiAl
IChtYW5pZmVzdF9maWxlLnVybF9iYXNlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXJsX2Jhc2Up
KQotICAgICAgICAgICAgbWFuaWZlc3RfZmlsZS51cmxfYmFzZSA9IHVybF9iYXNlCi0gICAgICAg
ICAgICBtYW5pZmVzdC53cml0ZShtYW5pZmVzdF9maWxlLCBtYW5pZmVzdF9wYXRoKQotCi0gICAg
ICAgIHJldHVybiBtYW5pZmVzdF9maWxlCisgICAgICAgIHJldHVybiBtYW5pZmVzdC5sb2FkX2Fu
ZF91cGRhdGUodGVzdHNfcGF0aCwgbWFuaWZlc3RfcGF0aCwgdXJsX2Jhc2UsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FjaGVfcm9vdD1jYWNoZV9yb290LCB1cGRh
dGU9c2VsZi5mb3JjZV9tYW5pZmVzdF91cGRhdGUsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgdHlwZXM9c2VsZi50eXBlcykKIAogCiBkZWYgaXRlcmZpbHRlcihmaWx0
ZXJzLCBpdGVyKToKQEAgLTQ1NywxMiArMTQ5LDEyIEBAIGRlZiBpdGVyZmlsdGVyKGZpbHRlcnMs
IGl0ZXIpOgogCiAKIGNsYXNzIFRlc3RMb2FkZXIob2JqZWN0KToKKyAgICAiIiJMb2FkcyB0ZXN0
cyBhY2NvcmRpbmcgdG8gYSBXUFQgbWFuaWZlc3QgYW5kIGFueSBhc3NvY2lhdGVkIGV4cGVjdGF0
aW9uIGZpbGVzIiIiCiAgICAgZGVmIF9faW5pdF9fKHNlbGYsCiAgICAgICAgICAgICAgICAgIHRl
c3RfbWFuaWZlc3RzLAogICAgICAgICAgICAgICAgICB0ZXN0X3R5cGVzLAogICAgICAgICAgICAg
ICAgICBydW5faW5mbywKICAgICAgICAgICAgICAgICAgbWFuaWZlc3RfZmlsdGVycz1Ob25lLAot
ICAgICAgICAgICAgICAgICBtZXRhX2ZpbHRlcnM9Tm9uZSwKICAgICAgICAgICAgICAgICAgY2h1
bmtfdHlwZT0ibm9uZSIsCiAgICAgICAgICAgICAgICAgIHRvdGFsX2NodW5rcz0xLAogICAgICAg
ICAgICAgICAgICBjaHVua19udW1iZXI9MSwKQEAgLTQ3Myw3ICsxNjUsNiBAQCBjbGFzcyBUZXN0
TG9hZGVyKG9iamVjdCk6CiAgICAgICAgIHNlbGYucnVuX2luZm8gPSBydW5faW5mbwogCiAgICAg
ICAgIHNlbGYubWFuaWZlc3RfZmlsdGVycyA9IG1hbmlmZXN0X2ZpbHRlcnMgaWYgbWFuaWZlc3Rf
ZmlsdGVycyBpcyBub3QgTm9uZSBlbHNlIFtdCi0gICAgICAgIHNlbGYubWV0YV9maWx0ZXJzID0g
bWV0YV9maWx0ZXJzIGlmIG1ldGFfZmlsdGVycyBpcyBub3QgTm9uZSBlbHNlIFtdCiAKICAgICAg
ICAgc2VsZi5tYW5pZmVzdHMgPSB0ZXN0X21hbmlmZXN0cwogICAgICAgICBzZWxmLnRlc3RzID0g
Tm9uZQpAQCAtNDg3LDkgKzE3OCw4IEBAIGNsYXNzIFRlc3RMb2FkZXIob2JqZWN0KToKIAogICAg
ICAgICBzZWxmLmNodW5rZXIgPSB7Im5vbmUiOiBVbmNodW5rZWQsCiAgICAgICAgICAgICAgICAg
ICAgICAgICAiaGFzaCI6IEhhc2hDaHVua2VyLAotICAgICAgICAgICAgICAgICAgICAgICAgImRp
cl9oYXNoIjogRGlyZWN0b3J5SGFzaENodW5rZXIsCi0gICAgICAgICAgICAgICAgICAgICAgICAi
ZXF1YWxfdGltZSI6IEVxdWFsVGltZUNodW5rZXJ9W2NodW5rX3R5cGVdKHRvdGFsX2NodW5rcywK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgY2h1bmtfbnVtYmVyKQorICAgICAgICAgICAgICAgICAgICAgICAgImRpcl9o
YXNoIjogRGlyZWN0b3J5SGFzaENodW5rZXJ9W2NodW5rX3R5cGVdKHRvdGFsX2NodW5rcywKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBjaHVua19udW1iZXIpCiAKICAgICAgICAgc2VsZi5fdGVzdF9pZHMgPSBOb25l
CiAKQEAgLTUwNiwxMiArMTk2LDEyIEBAIGNsYXNzIFRlc3RMb2FkZXIob2JqZWN0KToKICAgICAg
ICAgICAgICAgICAgICAgc2VsZi5fdGVzdF9pZHMgKz0gW2l0ZW0uaWQgZm9yIGl0ZW0gaW4gdGVz
dF9kaWN0W3Rlc3RfdHlwZV1dCiAgICAgICAgIHJldHVybiBzZWxmLl90ZXN0X2lkcwogCi0gICAg
ZGVmIGdldF90ZXN0KHNlbGYsIG1hbmlmZXN0X3Rlc3QsIGluaGVyaXRfbWV0YWRhdGEsIHRlc3Rf
bWV0YWRhdGEpOgorICAgIGRlZiBnZXRfdGVzdChzZWxmLCBtYW5pZmVzdF9maWxlLCBtYW5pZmVz
dF90ZXN0LCBpbmhlcml0X21ldGFkYXRhLCB0ZXN0X21ldGFkYXRhKToKICAgICAgICAgaWYgdGVz
dF9tZXRhZGF0YSBpcyBub3QgTm9uZToKICAgICAgICAgICAgIGluaGVyaXRfbWV0YWRhdGEuYXBw
ZW5kKHRlc3RfbWV0YWRhdGEpCiAgICAgICAgICAgICB0ZXN0X21ldGFkYXRhID0gdGVzdF9tZXRh
ZGF0YS5nZXRfdGVzdChtYW5pZmVzdF90ZXN0LmlkKQogCi0gICAgICAgIHJldHVybiB3cHR0ZXN0
LmZyb21fbWFuaWZlc3QobWFuaWZlc3RfdGVzdCwgaW5oZXJpdF9tZXRhZGF0YSwgdGVzdF9tZXRh
ZGF0YSkKKyAgICAgICAgcmV0dXJuIHdwdHRlc3QuZnJvbV9tYW5pZmVzdChtYW5pZmVzdF9maWxl
LCBtYW5pZmVzdF90ZXN0LCBpbmhlcml0X21ldGFkYXRhLCB0ZXN0X21ldGFkYXRhKQogCiAgICAg
ZGVmIGxvYWRfZGlyX21ldGFkYXRhKHNlbGYsIHRlc3RfbWFuaWZlc3QsIG1ldGFkYXRhX3BhdGgs
IHRlc3RfcGF0aCk6CiAgICAgICAgIHJ2ID0gW10KQEAgLTUzNCwyNyArMjI0LDI0IEBAIGNsYXNz
IFRlc3RMb2FkZXIob2JqZWN0KToKIAogICAgIGRlZiBpdGVyX3Rlc3RzKHNlbGYpOgogICAgICAg
ICBtYW5pZmVzdF9pdGVtcyA9IFtdCisgICAgICAgIG1hbmlmZXN0c19ieV91cmxfYmFzZSA9IHt9
CiAKICAgICAgICAgZm9yIG1hbmlmZXN0IGluIHNvcnRlZChzZWxmLm1hbmlmZXN0cy5rZXlzKCks
IGtleT1sYW1iZGEgeDp4LnVybF9iYXNlKToKICAgICAgICAgICAgIG1hbmlmZXN0X2l0ZXIgPSBp
dGVyZmlsdGVyKHNlbGYubWFuaWZlc3RfZmlsdGVycywKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIG1hbmlmZXN0Lml0ZXJ0eXBlcygqc2VsZi50ZXN0X3R5cGVzKSkKICAg
ICAgICAgICAgIG1hbmlmZXN0X2l0ZW1zLmV4dGVuZChtYW5pZmVzdF9pdGVyKQorICAgICAgICAg
ICAgbWFuaWZlc3RzX2J5X3VybF9iYXNlW21hbmlmZXN0LnVybF9iYXNlXSA9IG1hbmlmZXN0CiAK
ICAgICAgICAgaWYgc2VsZi5jaHVua2VyIGlzIG5vdCBOb25lOgogICAgICAgICAgICAgbWFuaWZl
c3RfaXRlbXMgPSBzZWxmLmNodW5rZXIobWFuaWZlc3RfaXRlbXMpCiAKICAgICAgICAgZm9yIHRl
c3RfdHlwZSwgdGVzdF9wYXRoLCB0ZXN0cyBpbiBtYW5pZmVzdF9pdGVtczoKLSAgICAgICAgICAg
IG1hbmlmZXN0X2ZpbGUgPSBpdGVyKHRlc3RzKS5uZXh0KCkubWFuaWZlc3QKKyAgICAgICAgICAg
IG1hbmlmZXN0X2ZpbGUgPSBtYW5pZmVzdHNfYnlfdXJsX2Jhc2VbaXRlcih0ZXN0cykubmV4dCgp
LnVybF9iYXNlXQogICAgICAgICAgICAgbWV0YWRhdGFfcGF0aCA9IHNlbGYubWFuaWZlc3RzW21h
bmlmZXN0X2ZpbGVdWyJtZXRhZGF0YV9wYXRoIl0KLSAgICAgICAgICAgIGluaGVyaXRfbWV0YWRh
dGEsIHRlc3RfbWV0YWRhdGEgPSBzZWxmLmxvYWRfbWV0YWRhdGEobWFuaWZlc3RfZmlsZSwgbWV0
YWRhdGFfcGF0aCwgdGVzdF9wYXRoKQotCi0gICAgICAgICAgICBmb3IgdGVzdCBpbiBpdGVyZmls
dGVyKHNlbGYubWV0YV9maWx0ZXJzLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBzZWxmLml0ZXJfd3B0dGVzdChpbmhlcml0X21ldGFkYXRhLCB0ZXN0X21ldGFkYXRhLCB0ZXN0
cykpOgotICAgICAgICAgICAgICAgIHlpZWxkIHRlc3RfcGF0aCwgdGVzdF90eXBlLCB0ZXN0CiAK
LSAgICBkZWYgaXRlcl93cHR0ZXN0KHNlbGYsIGluaGVyaXRfbWV0YWRhdGEsIHRlc3RfbWV0YWRh
dGEsIHRlc3RzKToKLSAgICAgICAgZm9yIG1hbmlmZXN0X3Rlc3QgaW4gdGVzdHM6Ci0gICAgICAg
ICAgICB5aWVsZCBzZWxmLmdldF90ZXN0KG1hbmlmZXN0X3Rlc3QsIGluaGVyaXRfbWV0YWRhdGEs
IHRlc3RfbWV0YWRhdGEpCisgICAgICAgICAgICBpbmhlcml0X21ldGFkYXRhLCB0ZXN0X21ldGFk
YXRhID0gc2VsZi5sb2FkX21ldGFkYXRhKG1hbmlmZXN0X2ZpbGUsIG1ldGFkYXRhX3BhdGgsIHRl
c3RfcGF0aCkKKyAgICAgICAgICAgIGZvciB0ZXN0IGluIHRlc3RzOgorICAgICAgICAgICAgICAg
IHlpZWxkIHRlc3RfcGF0aCwgdGVzdF90eXBlLCBzZWxmLmdldF90ZXN0KG1hbmlmZXN0X2ZpbGUs
IHRlc3QsIGluaGVyaXRfbWV0YWRhdGEsIHRlc3RfbWV0YWRhdGEpCiAKICAgICBkZWYgX2xvYWRf
dGVzdHMoc2VsZik6CiAgICAgICAgICIiIlJlYWQgaW4gdGhlIHRlc3RzIGZyb20gdGhlIG1hbmlm
ZXN0IGZpbGUgYW5kIGFkZCB0aGVtIHRvIGEgcXVldWUiIiIKQEAgLTU5Myw5ICsyODAsOCBAQCBj
bGFzcyBUZXN0U291cmNlKG9iamVjdCk6CiAgICAgICAgIHNlbGYuY3VycmVudF9tZXRhZGF0YSA9
IE5vbmUKIAogICAgIEBhYnN0cmFjdG1ldGhvZAotICAgICMgbm9xYTogTjgwNQotICAgICNAY2xh
c3NtZXRob2QgKGRvZXNuJ3QgY29tcG9zZSB3aXRoIEBhYnN0cmFjdG1ldGhvZCkKLSAgICBkZWYg
bWFrZV9xdWV1ZShjbHMsIHRlc3RzLCAqKmt3YXJncyk6CisgICAgI0BjbGFzc21ldGhvZCAoZG9l
c24ndCBjb21wb3NlIHdpdGggQGFic3RyYWN0bWV0aG9kIGluIDwgMy4zKQorICAgIGRlZiBtYWtl
X3F1ZXVlKGNscywgdGVzdHMsICoqa3dhcmdzKTogICMgbm9xYTogTjgwNQogICAgICAgICBwYXNz
CiAKICAgICBAY2xhc3NtZXRob2QKQEAgLTY2Myw3ICszNDksNyBAQCBjbGFzcyBQYXRoR3JvdXBl
ZFNvdXJjZShHcm91cGVkU291cmNlKToKICAgICAgICAgZGVwdGggPSBrd2FyZ3MuZ2V0KCJkZXB0
aCIpCiAgICAgICAgIGlmIGRlcHRoIGlzIFRydWUgb3IgZGVwdGggPT0gMDoKICAgICAgICAgICAg
IGRlcHRoID0gTm9uZQotICAgICAgICBwYXRoID0gdXJscGFyc2UudXJsc3BsaXQodGVzdC51cmwp
LnBhdGguc3BsaXQoIi8iKVsxOi0xXVs6ZGVwdGhdCisgICAgICAgIHBhdGggPSB1cmxzcGxpdCh0
ZXN0LnVybCkucGF0aC5zcGxpdCgiLyIpWzE6LTFdWzpkZXB0aF0KICAgICAgICAgcnYgPSBwYXRo
ICE9IHN0YXRlLmdldCgicHJldl9wYXRoIikKICAgICAgICAgc3RhdGVbInByZXZfcGF0aCJdID0g
cGF0aAogICAgICAgICByZXR1cm4gcnYKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci90ZXN0cnVu
bmVyLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy93cHRydW5uZXIvd3B0cnVubmVyL3Rlc3RydW5uZXIucHkKaW5kZXggNDZkNjdlM2M5ODIzYjE0
NDVlZTQ3MmFhNjJiYTkzZGNhZGY2MjFhNy4uOGRlY2UyMGE4ZTkzZTI3OTIwNGNjZmVlNzBmMDdj
ZThhOGRlYmFiMyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3Rlc3RydW5uZXIucHkKKysrIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5u
ZXIvd3B0cnVubmVyL3Rlc3RydW5uZXIucHkKQEAgLTMsMTYgKzMsMjcgQEAgZnJvbSBfX2Z1dHVy
ZV9fIGltcG9ydCB1bmljb2RlX2xpdGVyYWxzCiBpbXBvcnQgbXVsdGlwcm9jZXNzaW5nCiBpbXBv
cnQgdGhyZWFkaW5nCiBpbXBvcnQgdHJhY2ViYWNrCi1mcm9tIFF1ZXVlIGltcG9ydCBFbXB0eQor
ZnJvbSBzaXgubW92ZXMucXVldWUgaW1wb3J0IEVtcHR5CiBmcm9tIGNvbGxlY3Rpb25zIGltcG9y
dCBuYW1lZHR1cGxlCiBmcm9tIG11bHRpcHJvY2Vzc2luZyBpbXBvcnQgUHJvY2VzcywgY3VycmVu
dF9wcm9jZXNzLCBRdWV1ZQogCi1mcm9tIG1vemxvZyBpbXBvcnQgc3RydWN0dXJlZGxvZworZnJv
bSBtb3psb2cgaW1wb3J0IHN0cnVjdHVyZWRsb2csIGNhcHR1cmUKIAogIyBTcGVjaWFsIHZhbHVl
IHVzZWQgYXMgYSBzZW50aW5hbCBpbiB2YXJpb3VzIGNvbW1hbmRzCiBTdG9wID0gb2JqZWN0KCkK
IAogCitkZWYgcmVsZWFzZV9tb3psb2dfbG9jaygpOgorICAgIHRyeToKKyAgICAgICAgZnJvbSBt
b3psb2cuc3RydWN0dXJlZGxvZyBpbXBvcnQgU3RydWN0dXJlZExvZ2dlcgorICAgICAgICB0cnk6
CisgICAgICAgICAgICBTdHJ1Y3R1cmVkTG9nZ2VyLl9sb2NrLnJlbGVhc2UoKQorICAgICAgICBl
eGNlcHQgdGhyZWFkaW5nLlRocmVhZEVycm9yOgorICAgICAgICAgICAgcGFzcworICAgIGV4Y2Vw
dCBJbXBvcnRFcnJvcjoKKyAgICAgICAgcGFzcworCisKIGNsYXNzIE1lc3NhZ2VMb2dnZXIob2Jq
ZWN0KToKICAgICBkZWYgX19pbml0X18oc2VsZiwgbWVzc2FnZV9mdW5jKToKICAgICAgICAgc2Vs
Zi5zZW5kX21lc3NhZ2UgPSBtZXNzYWdlX2Z1bmMKQEAgLTQwLDI0ICs1MSwyNSBAQCBmb3IgbGV2
ZWxfbmFtZSBpbiBzdHJ1Y3R1cmVkbG9nLmxvZ19sZXZlbHM6CiAKIAogY2xhc3MgVGVzdFJ1bm5l
cihvYmplY3QpOgotICAgIGRlZiBfX2luaXRfXyhzZWxmLCBjb21tYW5kX3F1ZXVlLCByZXN1bHRf
cXVldWUsIGV4ZWN1dG9yKToKLSAgICAgICAgIiIiQ2xhc3MgaW1wbGVtZW50aW5nIHRoZSBtYWlu
IGxvb3AgZm9yIHJ1bm5pbmcgdGVzdHMuCi0KLSAgICAgICAgVGhpcyBjbGFzcyBkZWxlZ2F0ZXMg
dGhlIGpvYiBvZiBhY3R1YWxseSBydW5uaW5nIGEgdGVzdCB0byB0aGUgZXhlY3V0b3IKLSAgICAg
ICAgdGhhdCBpcyBwYXNzZWQgaW4uCi0KLSAgICAgICAgOnBhcmFtIGNvbW1hbmRfcXVldWU6IHN1
YnByb2Nlc3MuUXVldWUgdXNlZCB0byBzZW5kIGNvbW1hbmRzIHRvIHRoZQotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgcHJvY2VzcwotICAgICAgICA6cGFyYW0gcmVzdWx0X3F1ZXVlOiBz
dWJwcm9jZXNzLlF1ZXVlIHVzZWQgdG8gc2VuZCByZXN1bHRzIHRvIHRoZQotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBwYXJlbnQgVGVzdE1hbmFnZXIgcHJvY2VzcwotICAgICAgICA6cGFy
YW0gZXhlY3V0b3I6IFRlc3RFeGVjdXRvciBvYmplY3QgdGhhdCB3aWxsIGFjdHVhbGx5IHJ1biBh
IHRlc3QuCi0gICAgICAgICIiIgorICAgICIiIkNsYXNzIGltcGxlbWVudGluZyB0aGUgbWFpbiBs
b29wIGZvciBydW5uaW5nIHRlc3RzLgorCisgICAgVGhpcyBjbGFzcyBkZWxlZ2F0ZXMgdGhlIGpv
YiBvZiBhY3R1YWxseSBydW5uaW5nIGEgdGVzdCB0byB0aGUgZXhlY3V0b3IKKyAgICB0aGF0IGlz
IHBhc3NlZCBpbi4KKworICAgIDpwYXJhbSBsb2dnZXI6IFN0cnVjdHVyZWQgbG9nZ2VyCisgICAg
OnBhcmFtIGNvbW1hbmRfcXVldWU6IHN1YnByb2Nlc3MuUXVldWUgdXNlZCB0byBzZW5kIGNvbW1h
bmRzIHRvIHRoZQorICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9jZXNzCisgICAgOnBhcmFt
IHJlc3VsdF9xdWV1ZTogc3VicHJvY2Vzcy5RdWV1ZSB1c2VkIHRvIHNlbmQgcmVzdWx0cyB0byB0
aGUKKyAgICAgICAgICAgICAgICAgICAgICAgICBwYXJlbnQgVGVzdFJ1bm5lck1hbmFnZXIgcHJv
Y2VzcworICAgIDpwYXJhbSBleGVjdXRvcjogVGVzdEV4ZWN1dG9yIG9iamVjdCB0aGF0IHdpbGwg
YWN0dWFsbHkgcnVuIGEgdGVzdC4KKyAgICAiIiIKKyAgICBkZWYgX19pbml0X18oc2VsZiwgbG9n
Z2VyLCBjb21tYW5kX3F1ZXVlLCByZXN1bHRfcXVldWUsIGV4ZWN1dG9yKToKICAgICAgICAgc2Vs
Zi5jb21tYW5kX3F1ZXVlID0gY29tbWFuZF9xdWV1ZQogICAgICAgICBzZWxmLnJlc3VsdF9xdWV1
ZSA9IHJlc3VsdF9xdWV1ZQogCiAgICAgICAgIHNlbGYuZXhlY3V0b3IgPSBleGVjdXRvcgogICAg
ICAgICBzZWxmLm5hbWUgPSBjdXJyZW50X3Byb2Nlc3MoKS5uYW1lCi0gICAgICAgIHNlbGYubG9n
Z2VyID0gTWVzc2FnZUxvZ2dlcihzZWxmLnNlbmRfbWVzc2FnZSkKKyAgICAgICAgc2VsZi5sb2dn
ZXIgPSBsb2dnZXIKIAogICAgIGRlZiBfX2VudGVyX18oc2VsZik6CiAgICAgICAgIHJldHVybiBz
ZWxmCkBAIC02Nyw3ICs3OSwxMyBAQCBjbGFzcyBUZXN0UnVubmVyKG9iamVjdCk6CiAKICAgICBk
ZWYgc2V0dXAoc2VsZik6CiAgICAgICAgIHNlbGYubG9nZ2VyLmRlYnVnKCJFeGVjdXRvciBzZXR1
cCIpCi0gICAgICAgIHNlbGYuZXhlY3V0b3Iuc2V0dXAoc2VsZikKKyAgICAgICAgdHJ5OgorICAg
ICAgICAgICAgc2VsZi5leGVjdXRvci5zZXR1cChzZWxmKQorICAgICAgICBleGNlcHQgRXhjZXB0
aW9uOgorICAgICAgICAgICAgIyBUaGUgY2FsbGVyIGlzIHJlc3BvbnNpYmxlIGZvciBsb2dnaW5n
IHRoZSBleGNlcHRpb24gaWYgcmVxdWlyZWQKKyAgICAgICAgICAgIHNlbGYuc2VuZF9tZXNzYWdl
KCJpbml0X2ZhaWxlZCIpCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBzZWxmLnNlbmRfbWVz
c2FnZSgiaW5pdF9zdWNjZWVkZWQiKQogICAgICAgICBzZWxmLmxvZ2dlci5kZWJ1ZygiRXhlY3V0
b3Igc2V0dXAgZG9uZSIpCiAKICAgICBkZWYgdGVhcmRvd24oc2VsZik6CkBAIC04Miw2ICsxMDAs
NyBAQCBjbGFzcyBUZXN0UnVubmVyKG9iamVjdCk6CiAgICAgICAgIHRoZSBhc3NvY2lhdGVkIG1l
dGhvZHMiIiIKICAgICAgICAgc2VsZi5zZXR1cCgpCiAgICAgICAgIGNvbW1hbmRzID0geyJydW5f
dGVzdCI6IHNlbGYucnVuX3Rlc3QsCisgICAgICAgICAgICAgICAgICAgICJyZXNldCI6IHNlbGYu
cmVzZXQsCiAgICAgICAgICAgICAgICAgICAgICJzdG9wIjogc2VsZi5zdG9wLAogICAgICAgICAg
ICAgICAgICAgICAid2FpdCI6IHNlbGYud2FpdH0KICAgICAgICAgd2hpbGUgVHJ1ZToKQEAgLTk5
LDYgKzExOCw5IEBAIGNsYXNzIFRlc3RSdW5uZXIob2JqZWN0KToKICAgICBkZWYgc3RvcChzZWxm
KToKICAgICAgICAgcmV0dXJuIFN0b3AKIAorICAgIGRlZiByZXNldChzZWxmKToKKyAgICAgICAg
c2VsZi5leGVjdXRvci5yZXNldCgpCisKICAgICBkZWYgcnVuX3Rlc3Qoc2VsZiwgdGVzdCk6CiAg
ICAgICAgIHRyeToKICAgICAgICAgICAgIHJldHVybiBzZWxmLmV4ZWN1dG9yLnJ1bl90ZXN0KHRl
c3QpCkBAIC0xMTcsMzAgKzEzOSwzNSBAQCBjbGFzcyBUZXN0UnVubmVyKG9iamVjdCk6CiBkZWYg
c3RhcnRfcnVubmVyKHJ1bm5lcl9jb21tYW5kX3F1ZXVlLCBydW5uZXJfcmVzdWx0X3F1ZXVlLAog
ICAgICAgICAgICAgICAgICBleGVjdXRvcl9jbHMsIGV4ZWN1dG9yX2t3YXJncywKICAgICAgICAg
ICAgICAgICAgZXhlY3V0b3JfYnJvd3Nlcl9jbHMsIGV4ZWN1dG9yX2Jyb3dzZXJfa3dhcmdzLAot
ICAgICAgICAgICAgICAgICBzdG9wX2ZsYWcpOgorICAgICAgICAgICAgICAgICBjYXB0dXJlX3N0
ZGlvLCBzdG9wX2ZsYWcpOgogICAgICIiIkxhdW5jaCBhIFRlc3RSdW5uZXIgaW4gYSBuZXcgcHJv
Y2VzcyIiIgotICAgIGRlZiBsb2cobGV2ZWwsIG1zZyk6Ci0gICAgICAgIHJ1bm5lcl9yZXN1bHRf
cXVldWUucHV0KCgibG9nIiwgKGxldmVsLCB7Im1lc3NhZ2UiOiBtc2d9KSkpCisKKyAgICBkZWYg
c2VuZF9tZXNzYWdlKGNvbW1hbmQsICphcmdzKToKKyAgICAgICAgcnVubmVyX3Jlc3VsdF9xdWV1
ZS5wdXQoKGNvbW1hbmQsIGFyZ3MpKQogCiAgICAgZGVmIGhhbmRsZV9lcnJvcihlKToKLSAgICAg
ICAgbG9nKCJjcml0aWNhbCIsIHRyYWNlYmFjay5mb3JtYXRfZXhjKCkpCisgICAgICAgIGxvZ2dl
ci5jcml0aWNhbCh0cmFjZWJhY2suZm9ybWF0X2V4YygpKQogICAgICAgICBzdG9wX2ZsYWcuc2V0
KCkKIAotICAgIHRyeToKLSAgICAgICAgYnJvd3NlciA9IGV4ZWN1dG9yX2Jyb3dzZXJfY2xzKCoq
ZXhlY3V0b3JfYnJvd3Nlcl9rd2FyZ3MpCi0gICAgICAgIGV4ZWN1dG9yID0gZXhlY3V0b3JfY2xz
KGJyb3dzZXIsICoqZXhlY3V0b3Jfa3dhcmdzKQotICAgICAgICB3aXRoIFRlc3RSdW5uZXIocnVu
bmVyX2NvbW1hbmRfcXVldWUsIHJ1bm5lcl9yZXN1bHRfcXVldWUsIGV4ZWN1dG9yKSBhcyBydW5u
ZXI6Ci0gICAgICAgICAgICB0cnk6Ci0gICAgICAgICAgICAgICAgcnVubmVyLnJ1bigpCi0gICAg
ICAgICAgICBleGNlcHQgS2V5Ym9hcmRJbnRlcnJ1cHQ6Ci0gICAgICAgICAgICAgICAgc3RvcF9m
bGFnLnNldCgpCi0gICAgICAgICAgICBleGNlcHQgRXhjZXB0aW9uIGFzIGU6Ci0gICAgICAgICAg
ICAgICAgaGFuZGxlX2Vycm9yKGUpCi0gICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBlOgotICAgICAg
ICBoYW5kbGVfZXJyb3IoZSkKLSAgICBmaW5hbGx5OgotICAgICAgICBydW5uZXJfY29tbWFuZF9x
dWV1ZSA9IE5vbmUKLSAgICAgICAgcnVubmVyX3Jlc3VsdF9xdWV1ZSA9IE5vbmUKKyAgICAjIEVu
c3VyZSB0aGF0IHdoZW4gd2Ugc3RhcnQgdGhpcyBpbiBhIG5ldyBwcm9jZXNzIHdlIGhhdmUgdGhl
IGdsb2JhbCBsb2NrCisgICAgIyBpbiB0aGUgbG9nZ2luZyBtb2R1bGUgdW5sb2NrZWQKKyAgICBy
ZWxlYXNlX21vemxvZ19sb2NrKCkKKworICAgIGxvZ2dlciA9IE1lc3NhZ2VMb2dnZXIoc2VuZF9t
ZXNzYWdlKQorCisgICAgd2l0aCBjYXB0dXJlLkNhcHR1cmVJTyhsb2dnZXIsIGNhcHR1cmVfc3Rk
aW8pOgorICAgICAgICB0cnk6CisgICAgICAgICAgICBicm93c2VyID0gZXhlY3V0b3JfYnJvd3Nl
cl9jbHMoKipleGVjdXRvcl9icm93c2VyX2t3YXJncykKKyAgICAgICAgICAgIGV4ZWN1dG9yID0g
ZXhlY3V0b3JfY2xzKGJyb3dzZXIsICoqZXhlY3V0b3Jfa3dhcmdzKQorICAgICAgICAgICAgd2l0
aCBUZXN0UnVubmVyKGxvZ2dlciwgcnVubmVyX2NvbW1hbmRfcXVldWUsIHJ1bm5lcl9yZXN1bHRf
cXVldWUsIGV4ZWN1dG9yKSBhcyBydW5uZXI6CisgICAgICAgICAgICAgICAgdHJ5OgorICAgICAg
ICAgICAgICAgICAgICBydW5uZXIucnVuKCkKKyAgICAgICAgICAgICAgICBleGNlcHQgS2V5Ym9h
cmRJbnRlcnJ1cHQ6CisgICAgICAgICAgICAgICAgICAgIHN0b3BfZmxhZy5zZXQoKQorICAgICAg
ICAgICAgICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZToKKyAgICAgICAgICAgICAgICAgICAgaGFu
ZGxlX2Vycm9yKGUpCisgICAgICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZToKKyAgICAgICAgICAg
IGhhbmRsZV9lcnJvcihlKQogCiAKIG1hbmFnZXJfY291bnQgPSAwCkBAIC0yMTAsNyArMjM3LDcg
QEAgY2xhc3MgQnJvd3Nlck1hbmFnZXIob2JqZWN0KToKICAgICAgICAgc2VsZi5jb21tYW5kX3F1
ZXVlLnB1dCgoY29tbWFuZCwgYXJncykpCiAKICAgICBkZWYgaW5pdF90aW1lb3V0KHNlbGYpOgot
ICAgICAgICAjIFRoaXMgaXMgY2FsbGVkIGZyb20gYSBzZXBlcmF0ZSB0aHJlYWQsIHNvIHdlIHNl
bmQgYSBtZXNzYWdlIHRvIHRoZQorICAgICAgICAjIFRoaXMgaXMgY2FsbGVkIGZyb20gYSBzZXBh
cmF0ZSB0aHJlYWQsIHNvIHdlIHNlbmQgYSBtZXNzYWdlIHRvIHRoZQogICAgICAgICAjIG1haW4g
bG9vcCBzbyB3ZSBnZXQgYmFjayBvbnRvIHRoZSBtYW5hZ2VyIHRocmVhZAogICAgICAgICBzZWxm
LmxvZ2dlci5kZWJ1ZygiaW5pdF9mYWlsZWQgY2FsbGVkIGZyb20gdGltZXIiKQogICAgICAgICBz
ZWxmLnNlbmRfbWVzc2FnZSgiaW5pdF9mYWlsZWQiKQpAQCAtMjI5LDExICsyNTYsOCBAQCBjbGFz
cyBCcm93c2VyTWFuYWdlcihvYmplY3QpOgogICAgICAgICBpZiBzZWxmLmluaXRfdGltZXIgaXMg
bm90IE5vbmU6CiAgICAgICAgICAgICBzZWxmLmluaXRfdGltZXIuY2FuY2VsKCkKIAotICAgIGRl
ZiBjaGVja19mb3JfY3Jhc2hlcyhzZWxmKToKLSAgICAgICAgc2VsZi5icm93c2VyLmNoZWNrX2Zv
cl9jcmFzaGVzKCkKLQotICAgIGRlZiBsb2dfY3Jhc2goc2VsZiwgdGVzdF9pZCk6Ci0gICAgICAg
IHNlbGYuYnJvd3Nlci5sb2dfY3Jhc2gocHJvY2Vzcz1zZWxmLmJyb3dzZXJfcGlkLCB0ZXN0PXRl
c3RfaWQpCisgICAgZGVmIGNoZWNrX2NyYXNoKHNlbGYsIHRlc3RfaWQpOgorICAgICAgICByZXR1
cm4gc2VsZi5icm93c2VyLmNoZWNrX2NyYXNoKHByb2Nlc3M9c2VsZi5icm93c2VyX3BpZCwgdGVz
dD10ZXN0X2lkKQogCiAgICAgZGVmIGlzX2FsaXZlKHNlbGYpOgogICAgICAgICByZXR1cm4gc2Vs
Zi5icm93c2VyLmlzX2FsaXZlKCkKQEAgLTI1NSw3ICsyNzksOCBAQCBSdW5uZXJNYW5hZ2VyU3Rh
dGUgPSBfUnVubmVyTWFuYWdlclN0YXRlKCkKIGNsYXNzIFRlc3RSdW5uZXJNYW5hZ2VyKHRocmVh
ZGluZy5UaHJlYWQpOgogICAgIGRlZiBfX2luaXRfXyhzZWxmLCBzdWl0ZV9uYW1lLCB0ZXN0X3F1
ZXVlLCB0ZXN0X3NvdXJjZV9jbHMsIGJyb3dzZXJfY2xzLCBicm93c2VyX2t3YXJncywKICAgICAg
ICAgICAgICAgICAgZXhlY3V0b3JfY2xzLCBleGVjdXRvcl9rd2FyZ3MsIHN0b3BfZmxhZywgcmVy
dW49MSwgcGF1c2VfYWZ0ZXJfdGVzdD1GYWxzZSwKLSAgICAgICAgICAgICAgICAgcGF1c2Vfb25f
dW5leHBlY3RlZD1GYWxzZSwgcmVzdGFydF9vbl91bmV4cGVjdGVkPVRydWUsIGRlYnVnX2luZm89
Tm9uZSk6CisgICAgICAgICAgICAgICAgIHBhdXNlX29uX3VuZXhwZWN0ZWQ9RmFsc2UsIHJlc3Rh
cnRfb25fdW5leHBlY3RlZD1UcnVlLCBkZWJ1Z19pbmZvPU5vbmUsCisgICAgICAgICAgICAgICAg
IGNhcHR1cmVfc3RkaW89VHJ1ZSk6CiAgICAgICAgICIiIlRocmVhZCB0aGF0IG93bnMgYSBzaW5n
bGUgVGVzdFJ1bm5lciBwcm9jZXNzIGFuZCBhbnkgcHJvY2Vzc2VzIHJlcXVpcmVkCiAgICAgICAg
IGJ5IHRoZSBUZXN0UnVubmVyIChlLmcuIHRoZSBGaXJlZm94IGJpbmFyeSkuCiAKQEAgLTI5OSw3
ICszMjQsNyBAQCBjbGFzcyBUZXN0UnVubmVyTWFuYWdlcih0aHJlYWRpbmcuVGhyZWFkKToKIAog
ICAgICAgICBzZWxmLnRlc3RfcnVubmVyX3Byb2MgPSBOb25lCiAKLSAgICAgICAgdGhyZWFkaW5n
LlRocmVhZC5fX2luaXRfXyhzZWxmLCBuYW1lPSJUaHJlYWQtVGVzdHJ1bm5lck1hbmFnZXItJWki
ICUgc2VsZi5tYW5hZ2VyX251bWJlcikKKyAgICAgICAgdGhyZWFkaW5nLlRocmVhZC5fX2luaXRf
XyhzZWxmLCBuYW1lPSJUZXN0UnVubmVyTWFuYWdlci0laSIgJSBzZWxmLm1hbmFnZXJfbnVtYmVy
KQogICAgICAgICAjIFRoaXMgaXMgc3RhcnRlZCBpbiB0aGUgYWN0dWFsIG5ldyB0aHJlYWQKICAg
ICAgICAgc2VsZi5sb2dnZXIgPSBOb25lCiAKQEAgLTMwOSwxNCArMzM0LDE4IEBAIGNsYXNzIFRl
c3RSdW5uZXJNYW5hZ2VyKHRocmVhZGluZy5UaHJlYWQpOgogICAgICAgICAjIFRoaXMgbWF5IG5v
dCByZWFsbHkgYmUgd2hhdCB3ZSB3YW50CiAgICAgICAgIHNlbGYuZGFlbW9uID0gVHJ1ZQogCisg
ICAgICAgIHNlbGYudGltZXIgPSBOb25lCisKICAgICAgICAgc2VsZi5tYXhfcmVzdGFydHMgPSA1
CiAKICAgICAgICAgc2VsZi5icm93c2VyID0gTm9uZQogCisgICAgICAgIHNlbGYuY2FwdHVyZV9z
dGRpbyA9IGNhcHR1cmVfc3RkaW8KKwogICAgIGRlZiBydW4oc2VsZik6Ci0gICAgICAgICIiIk1h
aW4gbG9vcCBmb3IgdGhlIFRlc3RNYW5hZ2VyLgorICAgICAgICAiIiJNYWluIGxvb3AgZm9yIHRo
ZSBUZXN0UnVubmVyTWFuYWdlci4KIAotICAgICAgICBUZXN0TWFuYWdlcnMgZ2VuZXJhbGx5IHJl
Y2VpdmUgY29tbWFuZHMgZnJvbSB0aGVpcgorICAgICAgICBUZXN0UnVubmVyTWFuYWdlcnMgZ2Vu
ZXJhbGx5IHJlY2VpdmUgY29tbWFuZHMgZnJvbSB0aGVpcgogICAgICAgICBUZXN0UnVubmVyIHVw
ZGF0aW5nIHRoZW0gb24gdGhlIHN0YXR1cyBvZiBhIHRlc3QuIFRoZXkKICAgICAgICAgbWF5IGFs
c28gaGF2ZSBhIHN0b3AgZmxhZyBzZXQgYnkgdGhlIG1haW4gdGhyZWFkIGluZGljYXRpbmcKICAg
ICAgICAgdGhhdCB0aGUgbWFuYWdlciBzaG91bGQgc2h1dCBkb3duIHRoZSBuZXh0IHRpbWUgdGhl
IGV2ZW50IGxvb3AKQEAgLTQ0Niw3ICs0NzUsNyBAQCBjbGFzcyBUZXN0UnVubmVyTWFuYWdlcih0
aHJlYWRpbmcuVGhyZWFkKToKICAgICBkZWYgaW5pdChzZWxmKToKICAgICAgICAgYXNzZXJ0IGlz
aW5zdGFuY2Uoc2VsZi5zdGF0ZSwgUnVubmVyTWFuYWdlclN0YXRlLmluaXRpYWxpemluZykKICAg
ICAgICAgaWYgc2VsZi5zdGF0ZS5mYWlsdXJlX2NvdW50ID4gc2VsZi5tYXhfcmVzdGFydHM6Ci0g
ICAgICAgICAgICBzZWxmLmxvZ2dlci5lcnJvcigiTWF4IHJlc3RhcnRzIGV4Y2VlZGVkIikKKyAg
ICAgICAgICAgIHNlbGYubG9nZ2VyLmNyaXRpY2FsKCJNYXggcmVzdGFydHMgZXhjZWVkZWQiKQog
ICAgICAgICAgICAgcmV0dXJuIFJ1bm5lck1hbmFnZXJTdGF0ZS5lcnJvcigpCiAKICAgICAgICAg
c2VsZi5icm93c2VyLnVwZGF0ZV9zZXR0aW5ncyhzZWxmLnN0YXRlLnRlc3QpCkBAIC00NzksMTAg
KzUwOCwxMSBAQCBjbGFzcyBUZXN0UnVubmVyTWFuYWdlcih0aHJlYWRpbmcuVGhyZWFkKToKICAg
ICAgICAgICAgICAgICBzZWxmLmV4ZWN1dG9yX2t3YXJncywKICAgICAgICAgICAgICAgICBleGVj
dXRvcl9icm93c2VyX2NscywKICAgICAgICAgICAgICAgICBleGVjdXRvcl9icm93c2VyX2t3YXJn
cywKKyAgICAgICAgICAgICAgICBzZWxmLmNhcHR1cmVfc3RkaW8sCiAgICAgICAgICAgICAgICAg
c2VsZi5jaGlsZF9zdG9wX2ZsYWcpCiAgICAgICAgIHNlbGYudGVzdF9ydW5uZXJfcHJvYyA9IFBy
b2Nlc3ModGFyZ2V0PXN0YXJ0X3J1bm5lciwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBhcmdzPWFyZ3MsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgbmFtZT0iVGhyZWFkLVRlc3RSdW5uZXItJWkiICUgc2VsZi5tYW5hZ2VyX251bWJlcikK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lPSJUZXN0UnVubmVy
LSVpIiAlIHNlbGYubWFuYWdlcl9udW1iZXIpCiAgICAgICAgIHNlbGYudGVzdF9ydW5uZXJfcHJv
Yy5zdGFydCgpCiAgICAgICAgIHNlbGYubG9nZ2VyLmRlYnVnKCJUZXN0IHJ1bm5lciBzdGFydGVk
IikKICAgICAgICAgIyBOb3cgd2Ugd2FpdCBmb3IgZWl0aGVyIGFuIGluaXRfc3VjY2VlZGVkIGV2
ZW50IG9yIGFuIGluaXRfZmFpbGVkIGV2ZW50CkBAIC00OTYsNiArNTI2LDcgQEAgY2xhc3MgVGVz
dFJ1bm5lck1hbmFnZXIodGhyZWFkaW5nLlRocmVhZCk6CiAKICAgICBkZWYgaW5pdF9mYWlsZWQo
c2VsZik6CiAgICAgICAgIGFzc2VydCBpc2luc3RhbmNlKHNlbGYuc3RhdGUsIFJ1bm5lck1hbmFn
ZXJTdGF0ZS5pbml0aWFsaXppbmcpCisgICAgICAgIHNlbGYuYnJvd3Nlci5jaGVja19jcmFzaChO
b25lKQogICAgICAgICBzZWxmLmJyb3dzZXIuYWZ0ZXJfaW5pdCgpCiAgICAgICAgIHNlbGYuc3Rv
cF9ydW5uZXIoZm9yY2U9VHJ1ZSkKICAgICAgICAgcmV0dXJuIFJ1bm5lck1hbmFnZXJTdGF0ZS5p
bml0aWFsaXppbmcoc2VsZi5zdGF0ZS50ZXN0LApAQCAtNTI4LDggKzU1OSwyNCBAQCBjbGFzcyBU
ZXN0UnVubmVyTWFuYWdlcih0aHJlYWRpbmcuVGhyZWFkKToKICAgICAgICAgc2VsZi5sb2dnZXIu
dGVzdF9zdGFydChzZWxmLnN0YXRlLnRlc3QuaWQpCiAgICAgICAgIGlmIHNlbGYucmVydW4gPiAx
OgogICAgICAgICAgICAgc2VsZi5sb2dnZXIuaW5mbygiUnVuICVkLyVkIiAlIChzZWxmLnJ1bl9j
b3VudCwgc2VsZi5yZXJ1bikpCisgICAgICAgICAgICBzZWxmLnNlbmRfbWVzc2FnZSgicmVzZXQi
KQogICAgICAgICBzZWxmLnJ1bl9jb3VudCArPSAxCisgICAgICAgICMgRmFjdG9yIG9mIDMgb24g
dGhlIGV4dHJhIHRpbWVvdXQgaGVyZSBpcyBiYXNlZCBvbiBhbGxvd2luZyB0aGUgZXhlY3V0b3IK
KyAgICAgICAgIyBhdCBsZWFzdCB0ZXN0LnRpbWVvdXQgKyAyICogZXh0cmFfdGltZW91dCB0byBj
b21wbGV0ZSwKKyAgICAgICAgIyB3aGljaCBpbiB0dXJuIGlzIGJhc2VkIG9uIGhhdmluZyBzZXZl
cmFsIGxheWVycyBvZiB0aW1lb3V0IGluc2lkZSB0aGUgZXhlY3V0b3IKKyAgICAgICAgd2FpdF90
aW1lb3V0ID0gKHNlbGYuc3RhdGUudGVzdC50aW1lb3V0ICogc2VsZi5leGVjdXRvcl9rd2FyZ3Nb
J3RpbWVvdXRfbXVsdGlwbGllciddICsKKyAgICAgICAgICAgICAgICAgICAgICAgIDMgKiBzZWxm
LmV4ZWN1dG9yX2Nscy5leHRyYV90aW1lb3V0KQorICAgICAgICBzZWxmLnRpbWVyID0gdGhyZWFk
aW5nLlRpbWVyKHdhaXRfdGltZW91dCwgc2VsZi5fdGltZW91dCkKICAgICAgICAgc2VsZi5zZW5k
X21lc3NhZ2UoInJ1bl90ZXN0Iiwgc2VsZi5zdGF0ZS50ZXN0KQorICAgICAgICBzZWxmLnRpbWVy
LnN0YXJ0KCkKKworICAgIGRlZiBfdGltZW91dChzZWxmKToKKyAgICAgICAgc2VsZi5sb2dnZXIu
aW5mbygiR290IHRpbWVvdXQgaW4gaGFybmVzcyIpCisgICAgICAgIHRlc3QgPSBzZWxmLnN0YXRl
LnRlc3QKKyAgICAgICAgc2VsZi50ZXN0X2VuZGVkKHRlc3QsCisgICAgICAgICAgICAgICAgICAg
ICAgICAodGVzdC5yZXN1bHRfY2xzKCJFWFRFUk5BTC1USU1FT1VUIiwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIlRlc3RSdW5uZXIgaGl0IGV4dGVybmFsIHRpbWVv
dXQgIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiKHRoaXMgbWF5
IGluZGljYXRlIGEgaGFuZykiKSwgW10pKQogCiAgICAgZGVmIHRlc3RfZW5kZWQoc2VsZiwgdGVz
dCwgcmVzdWx0cyk6CiAgICAgICAgICIiIkhhbmRsZSB0aGUgZW5kIG9mIGEgdGVzdC4KQEAgLTUz
OSwxNCArNTg2LDIyIEBAIGNsYXNzIFRlc3RSdW5uZXJNYW5hZ2VyKHRocmVhZGluZy5UaHJlYWQp
OgogICAgICAgICAiIiIKICAgICAgICAgYXNzZXJ0IGlzaW5zdGFuY2Uoc2VsZi5zdGF0ZSwgUnVu
bmVyTWFuYWdlclN0YXRlLnJ1bm5pbmcpCiAgICAgICAgIGFzc2VydCB0ZXN0ID09IHNlbGYuc3Rh
dGUudGVzdAorICAgICAgICBzZWxmLnRpbWVyLmNhbmNlbCgpCiAgICAgICAgICMgV3JpdGUgdGhl
IHJlc3VsdCBvZiBlYWNoIHN1YnRlc3QKICAgICAgICAgZmlsZV9yZXN1bHQsIHRlc3RfcmVzdWx0
cyA9IHJlc3VsdHMKICAgICAgICAgc3VidGVzdF91bmV4cGVjdGVkID0gRmFsc2UKKyAgICAgICAg
ZXhwZWN0X2FueV9zdWJ0ZXN0X3N0YXR1cyA9IHRlc3QuZXhwZWN0X2FueV9zdWJ0ZXN0X3N0YXR1
cygpCisgICAgICAgIGlmIGV4cGVjdF9hbnlfc3VidGVzdF9zdGF0dXM6CisgICAgICAgICAgICBz
ZWxmLmxvZ2dlci5kZWJ1ZygiSWdub3Jpbmcgc3VidGVzdCBzdGF0dXNlcyBmb3IgdGVzdCAlcyIg
JSB0ZXN0LmlkKQogICAgICAgICBmb3IgcmVzdWx0IGluIHRlc3RfcmVzdWx0czoKICAgICAgICAg
ICAgIGlmIHRlc3QuZGlzYWJsZWQocmVzdWx0Lm5hbWUpOgogICAgICAgICAgICAgICAgIGNvbnRp
bnVlCi0gICAgICAgICAgICBleHBlY3RlZCA9IHRlc3QuZXhwZWN0ZWQocmVzdWx0Lm5hbWUpCi0g
ICAgICAgICAgICBpc191bmV4cGVjdGVkID0gZXhwZWN0ZWQgIT0gcmVzdWx0LnN0YXR1cworICAg
ICAgICAgICAgaWYgZXhwZWN0X2FueV9zdWJ0ZXN0X3N0YXR1czoKKyAgICAgICAgICAgICAgICBl
eHBlY3RlZCA9IHJlc3VsdC5zdGF0dXMKKyAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAg
ICAgZXhwZWN0ZWQgPSB0ZXN0LmV4cGVjdGVkKHJlc3VsdC5uYW1lKQorICAgICAgICAgICAga25v
d25faW50ZXJtaXR0ZW50ID0gdGVzdC5rbm93bl9pbnRlcm1pdHRlbnQocmVzdWx0Lm5hbWUpCisg
ICAgICAgICAgICBpc191bmV4cGVjdGVkID0gZXhwZWN0ZWQgIT0gcmVzdWx0LnN0YXR1cyBhbmQg
cmVzdWx0LnN0YXR1cyBub3QgaW4ga25vd25faW50ZXJtaXR0ZW50CiAKICAgICAgICAgICAgIGlm
IGlzX3VuZXhwZWN0ZWQ6CiAgICAgICAgICAgICAgICAgc2VsZi51bmV4cGVjdGVkX2NvdW50ICs9
IDEKQEAgLTU1Nyw2ICs2MTIsNyBAQCBjbGFzcyBUZXN0UnVubmVyTWFuYWdlcih0aHJlYWRpbmcu
VGhyZWFkKToKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdC5zdGF0
dXMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZXNzYWdlPXJlc3VsdC5t
ZXNzYWdlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXhwZWN0ZWQ9ZXhw
ZWN0ZWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrbm93bl9pbnRlcm1p
dHRlbnQ9a25vd25faW50ZXJtaXR0ZW50LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgc3RhY2s9cmVzdWx0LnN0YWNrKQogCiAgICAgICAgICMgV2UgaGF2ZSBhIGNvdXBsZSBv
ZiBzdGF0dXMgY29kZXMgdGhhdCBhcmUgdXNlZCBpbnRlcm5hbGx5LCBidXQgbm90IGV4cG9zZWQg
dG8gdGhlCkBAIC01NjgsMTkgKzYyNCwxNyBAQCBjbGFzcyBUZXN0UnVubmVyTWFuYWdlcih0aHJl
YWRpbmcuVGhyZWFkKToKICAgICAgICAgc3RhdHVzX3N1Ym5zID0geyJJTlRFUk5BTC1FUlJPUiI6
ICJFUlJPUiIsCiAgICAgICAgICAgICAgICAgICAgICAgICAiRVhURVJOQUwtVElNRU9VVCI6ICJU
SU1FT1VUIn0KICAgICAgICAgZXhwZWN0ZWQgPSB0ZXN0LmV4cGVjdGVkKCkKKyAgICAgICAga25v
d25faW50ZXJtaXR0ZW50ID0gdGVzdC5rbm93bl9pbnRlcm1pdHRlbnQoKQogICAgICAgICBzdGF0
dXMgPSBzdGF0dXNfc3VibnMuZ2V0KGZpbGVfcmVzdWx0LnN0YXR1cywgZmlsZV9yZXN1bHQuc3Rh
dHVzKQogCi0gICAgICAgIGlmIGZpbGVfcmVzdWx0LnN0YXR1cyBpbiAoIlRJTUVPVVQiLCAiRVhU
RVJOQUwtVElNRU9VVCIsICJJTlRFUk5BTC1FUlJPUiIpOgotICAgICAgICAgICAgaWYgc2VsZi5i
cm93c2VyLmNoZWNrX2Zvcl9jcmFzaGVzKCk6Ci0gICAgICAgICAgICAgICAgc3RhdHVzID0gIkNS
QVNIIgorICAgICAgICBpZiBzZWxmLmJyb3dzZXIuY2hlY2tfY3Jhc2godGVzdC5pZCk6CisgICAg
ICAgICAgICBzdGF0dXMgPSAiQ1JBU0giCiAKICAgICAgICAgc2VsZi50ZXN0X2NvdW50ICs9IDEK
LSAgICAgICAgaXNfdW5leHBlY3RlZCA9IGV4cGVjdGVkICE9IHN0YXR1cworICAgICAgICBpc191
bmV4cGVjdGVkID0gZXhwZWN0ZWQgIT0gc3RhdHVzIGFuZCBzdGF0dXMgbm90IGluIGtub3duX2lu
dGVybWl0dGVudAogICAgICAgICBpZiBpc191bmV4cGVjdGVkOgogICAgICAgICAgICAgc2VsZi51
bmV4cGVjdGVkX2NvdW50ICs9IDEKICAgICAgICAgICAgIHNlbGYubG9nZ2VyLmRlYnVnKCJVbmV4
cGVjdGVkIGNvdW50IGluIHRoaXMgdGhyZWFkICVpIiAlIHNlbGYudW5leHBlY3RlZF9jb3VudCkK
LSAgICAgICAgaWYgc3RhdHVzID09ICJDUkFTSCI6Ci0gICAgICAgICAgICBzZWxmLmJyb3dzZXIu
bG9nX2NyYXNoKHRlc3QuaWQpCiAKICAgICAgICAgaWYgImFzc2VydGlvbl9jb3VudCIgaW4gZmls
ZV9yZXN1bHQuZXh0cmE6CiAgICAgICAgICAgICBhc3NlcnRpb25fY291bnQgPSBmaWxlX3Jlc3Vs
dC5leHRyYS5wb3AoImFzc2VydGlvbl9jb3VudCIpCkBAIC01OTAsMTAgKzY0NCwxMyBAQCBjbGFz
cyBUZXN0UnVubmVyTWFuYWdlcih0aHJlYWRpbmcuVGhyZWFkKToKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgdGVzdC5taW5fYXNzZXJ0aW9uX2NvdW50LAogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0Lm1heF9hc3NlcnRp
b25fY291bnQpCiAKKyAgICAgICAgZmlsZV9yZXN1bHQuZXh0cmFbInRlc3RfdGltZW91dCJdID0g
dGVzdC50aW1lb3V0ICogc2VsZi5leGVjdXRvcl9rd2FyZ3NbJ3RpbWVvdXRfbXVsdGlwbGllcidd
CisKICAgICAgICAgc2VsZi5sb2dnZXIudGVzdF9lbmQodGVzdC5pZCwKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgc3RhdHVzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZXNz
YWdlPWZpbGVfcmVzdWx0Lm1lc3NhZ2UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4
cGVjdGVkPWV4cGVjdGVkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrbm93bl9pbnRl
cm1pdHRlbnQ9a25vd25faW50ZXJtaXR0ZW50LAogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBleHRyYT1maWxlX3Jlc3VsdC5leHRyYSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
c3RhY2s9ZmlsZV9yZXN1bHQuc3RhY2spCiAKQEAgLTYxMiwxMCArNjY5LDEwIEBAIGNsYXNzIFRl
c3RSdW5uZXJNYW5hZ2VyKHRocmVhZGluZy5UaHJlYWQpOgogCiAgICAgZGVmIHdhaXRfZmluaXNo
ZWQoc2VsZik6CiAgICAgICAgIGFzc2VydCBpc2luc3RhbmNlKHNlbGYuc3RhdGUsIFJ1bm5lck1h
bmFnZXJTdGF0ZS5ydW5uaW5nKQotICAgICAgICAjIFRoZSBicm93c2VyIHNob3VsZCBiZSBzdG9w
cGVkIGFscmVhZHksIGJ1dCB0aGlzIGVuc3VyZXMgd2UgZG8gYW55IHBvc3Qtc3RvcAotICAgICAg
ICAjIHByb2Nlc3NpbmcKICAgICAgICAgc2VsZi5sb2dnZXIuZGVidWcoIldhaXQgZmluaXNoZWQi
KQogCisgICAgICAgICMgVGhlIGJyb3dzZXIgc2hvdWxkIGJlIHN0b3BwZWQgYWxyZWFkeSwgYnV0
IHRoaXMgZW5zdXJlcyB3ZSBkbyBhbnkKKyAgICAgICAgIyBwb3N0LXN0b3AgcHJvY2Vzc2luZwog
ICAgICAgICByZXR1cm4gc2VsZi5hZnRlcl90ZXN0X2VuZChzZWxmLnN0YXRlLnRlc3QsIFRydWUp
CiAKICAgICBkZWYgYWZ0ZXJfdGVzdF9lbmQoc2VsZiwgdGVzdCwgcmVzdGFydCk6CkBAIC02Mjgs
NyArNjg1LDYgQEAgY2xhc3MgVGVzdFJ1bm5lck1hbmFnZXIodGhyZWFkaW5nLlRocmVhZCk6CiAg
ICAgICAgICAgICAgICAgIyBXZSBhcmUgc3RhcnRpbmcgYSBuZXcgZ3JvdXAgb2YgdGVzdHMsIHNv
IGZvcmNlIGEgcmVzdGFydAogICAgICAgICAgICAgICAgIHJlc3RhcnQgPSBUcnVlCiAgICAgICAg
IGVsc2U6Ci0gICAgICAgICAgICB0ZXN0ID0gdGVzdAogICAgICAgICAgICAgdGVzdF9ncm91cCA9
IHNlbGYuc3RhdGUudGVzdF9ncm91cAogICAgICAgICAgICAgZ3JvdXBfbWV0YWRhdGEgPSBzZWxm
LnN0YXRlLmdyb3VwX21ldGFkYXRhCiAgICAgICAgIGlmIHJlc3RhcnQ6CkBAIC02NjMsNyArNzE5
LDcgQEAgY2xhc3MgVGVzdFJ1bm5lck1hbmFnZXIodGhyZWFkaW5nLlRocmVhZCk6CiAgICAgICAg
ICAgICBzZWxmLmNsZWFudXAoKQogCiAgICAgZGVmIHRlYXJkb3duKHNlbGYpOgotICAgICAgICBz
ZWxmLmxvZ2dlci5kZWJ1ZygidGVhcmRvd24gaW4gdGVzdHJ1bm5lcm1hbmFnZXIiKQorICAgICAg
ICBzZWxmLmxvZ2dlci5kZWJ1ZygiVGVzdFJ1bm5lck1hbmFnZXIgdGVhcmRvd24iKQogICAgICAg
ICBzZWxmLnRlc3RfcnVubmVyX3Byb2MgPSBOb25lCiAgICAgICAgIHNlbGYuY29tbWFuZF9xdWV1
ZS5jbG9zZSgpCiAgICAgICAgIHNlbGYucmVtb3RlX3F1ZXVlLmNsb3NlKCkKQEAgLTY3NSw2ICs3
MzEsNyBAQCBjbGFzcyBUZXN0UnVubmVyTWFuYWdlcih0aHJlYWRpbmcuVGhyZWFkKToKICAgICAg
ICAgaWYgc2VsZi50ZXN0X3J1bm5lcl9wcm9jIGlzIE5vbmU6CiAgICAgICAgICAgICByZXR1cm4K
IAorICAgICAgICBzZWxmLmJyb3dzZXIuc3RvcChmb3JjZT1UcnVlKQogICAgICAgICBzZWxmLmxv
Z2dlci5kZWJ1Zygid2FpdGluZyBmb3IgcnVubmVyIHByb2Nlc3MgdG8gZW5kIikKICAgICAgICAg
c2VsZi50ZXN0X3J1bm5lcl9wcm9jLmpvaW4oMTApCiAgICAgICAgIHNlbGYubG9nZ2VyLmRlYnVn
KCJBZnRlciBqb2luIikKQEAgLTY4Miw5ICs3MzksMTggQEAgY2xhc3MgVGVzdFJ1bm5lck1hbmFn
ZXIodGhyZWFkaW5nLlRocmVhZCk6CiAgICAgICAgICAgICAjIFRoaXMgbWlnaHQgbGVhayBhIGZp
bGUgaGFuZGxlIGZyb20gdGhlIHF1ZXVlCiAgICAgICAgICAgICBzZWxmLmxvZ2dlci53YXJuaW5n
KCJGb3JjaWJseSB0ZXJtaW5hdGluZyBydW5uZXIgcHJvY2VzcyIpCiAgICAgICAgICAgICBzZWxm
LnRlc3RfcnVubmVyX3Byb2MudGVybWluYXRlKCkKLSAgICAgICAgICAgIHNlbGYudGVzdF9ydW5u
ZXJfcHJvYy5qb2luKDEwKQorCisgICAgICAgICAgICAjIE11bHRpcHJvY2Vzc2luZyBxdWV1ZXMg
YXJlIGJhY2tlZCBieSBvcGVyYXRpbmcgc3lzdGVtIHBpcGVzLiBJZgorICAgICAgICAgICAgIyB0
aGUgcGlwZSBpbiB0aGUgY2hpbGQgcHJvY2VzcyBoYWQgYnVmZmVyZWQgZGF0YSBhdCB0aGUgdGlt
ZSBvZgorICAgICAgICAgICAgIyBmb3JjZWQgdGVybWluYXRpb24sIHRoZSBxdWV1ZSBpcyBubyBs
b25nZXIgaW4gYSB1c2FibGUgc3RhdGUKKyAgICAgICAgICAgICMgKHN1YnNlcXVlbnQgYXR0ZW1w
dHMgdG8gcmV0cmlldmUgaXRlbXMgbWF5IGJsb2NrIGluZGVmaW5pdGVseSkuCisgICAgICAgICAg
ICAjIERpc2NhcmQgdGhlIHBvdGVudGlhbGx5LWNvcnJ1cHRlZCBxdWV1ZSBhbmQgY3JlYXRlIGEg
bmV3IG9uZS4KKyAgICAgICAgICAgIHNlbGYuY29tbWFuZF9xdWV1ZS5jbG9zZSgpCisgICAgICAg
ICAgICBzZWxmLmNvbW1hbmRfcXVldWUgPSBRdWV1ZSgpCisgICAgICAgICAgICBzZWxmLnJlbW90
ZV9xdWV1ZS5jbG9zZSgpCisgICAgICAgICAgICBzZWxmLnJlbW90ZV9xdWV1ZSA9IFF1ZXVlKCkK
ICAgICAgICAgZWxzZToKLSAgICAgICAgICAgIHNlbGYubG9nZ2VyLmRlYnVnKCJUZXN0cnVubmVy
IGV4aXRlZCB3aXRoIGNvZGUgJWkiICUgc2VsZi50ZXN0X3J1bm5lcl9wcm9jLmV4aXRjb2RlKQor
ICAgICAgICAgICAgc2VsZi5sb2dnZXIuZGVidWcoIlJ1bm5lciBwcm9jZXNzIGV4aXRlZCB3aXRo
IGNvZGUgJWkiICUgc2VsZi50ZXN0X3J1bm5lcl9wcm9jLmV4aXRjb2RlKQogCiAgICAgZGVmIHJ1
bm5lcl90ZWFyZG93bihzZWxmKToKICAgICAgICAgc2VsZi5lbnN1cmVfcnVubmVyX3N0b3BwZWQo
KQpAQCAtNjk0LDcgKzc2MCw3IEBAIGNsYXNzIFRlc3RSdW5uZXJNYW5hZ2VyKHRocmVhZGluZy5U
aHJlYWQpOgogICAgICAgICBzZWxmLnJlbW90ZV9xdWV1ZS5wdXQoKGNvbW1hbmQsIGFyZ3MpKQog
CiAgICAgZGVmIGNsZWFudXAoc2VsZik6Ci0gICAgICAgIHNlbGYubG9nZ2VyLmRlYnVnKCJUZXN0
TWFuYWdlciBjbGVhbnVwIikKKyAgICAgICAgc2VsZi5sb2dnZXIuZGVidWcoIlRlc3RSdW5uZXJN
YW5hZ2VyIGNsZWFudXAiKQogICAgICAgICBpZiBzZWxmLmJyb3dzZXI6CiAgICAgICAgICAgICBz
ZWxmLmJyb3dzZXIuY2xlYW51cCgpCiAgICAgICAgIHdoaWxlIFRydWU6CkBAIC03MDUsMTIgKzc3
MSwxNyBAQCBjbGFzcyBUZXN0UnVubmVyTWFuYWdlcih0aHJlYWRpbmcuVGhyZWFkKToKICAgICAg
ICAgICAgIGVsc2U6CiAgICAgICAgICAgICAgICAgaWYgY21kID09ICJsb2ciOgogICAgICAgICAg
ICAgICAgICAgICBzZWxmLmxvZygqZGF0YSkKKyAgICAgICAgICAgICAgICBlbGlmIGNtZCA9PSAi
cnVubmVyX3RlYXJkb3duIjoKKyAgICAgICAgICAgICAgICAgICAgIyBJdCdzIE9LIGZvciB0aGUg
InJ1bm5lcl90ZWFyZG93biIgbWVzc2FnZSB0byBiZSBsZWZ0IGluCisgICAgICAgICAgICAgICAg
ICAgICMgdGhlIHF1ZXVlIGR1cmluZyBjbGVhbnVwLCBhcyB3ZSB3aWxsIGFscmVhZHkgaGF2ZSB0
cmllZAorICAgICAgICAgICAgICAgICAgICAjIHRvIHN0b3AgdGhlIFRlc3RSdW5uZXIgaW4gYHN0
b3BfcnVubmVyYC4KKyAgICAgICAgICAgICAgICAgICAgcGFzcwogICAgICAgICAgICAgICAgIGVs
c2U6Ci0gICAgICAgICAgICAgICAgICAgIHNlbGYubG9nZ2VyLndhcm5pbmcoIiVyOiAlciIgJSAo
Y21kLCBkYXRhKSkKKyAgICAgICAgICAgICAgICAgICAgc2VsZi5sb2dnZXIud2FybmluZygiQ29t
bWFuZCBsZWZ0IGluIGNvbW1hbmRfcXVldWUgZHVyaW5nIGNsZWFudXA6ICVyLCAlciIgJSAoY21k
LCBkYXRhKSkKICAgICAgICAgd2hpbGUgVHJ1ZToKICAgICAgICAgICAgIHRyeToKICAgICAgICAg
ICAgICAgICBjbWQsIGRhdGEgPSBzZWxmLnJlbW90ZV9xdWV1ZS5nZXRfbm93YWl0KCkKLSAgICAg
ICAgICAgICAgICBzZWxmLmxvZ2dlci53YXJuaW5nKCIlcjogJXIiICUgKGNtZCwgZGF0YSkpCisg
ICAgICAgICAgICAgICAgc2VsZi5sb2dnZXIud2FybmluZygiQ29tbWFuZCBsZWZ0IGluIHJlbW90
ZV9xdWV1ZSBkdXJpbmcgY2xlYW51cDogJXIsICVyIiAlIChjbWQsIGRhdGEpKQogICAgICAgICAg
ICAgZXhjZXB0IEVtcHR5OgogICAgICAgICAgICAgICAgIGJyZWFrCiAKQEAgLTcyNyw2ICs3OTgs
NyBAQCBkZWYgbWFrZV90ZXN0X3F1ZXVlKHRlc3RzLCB0ZXN0X3NvdXJjZV9jbHMsICoqdGVzdF9z
b3VyY2Vfa3dhcmdzKToKIAogCiBjbGFzcyBNYW5hZ2VyR3JvdXAob2JqZWN0KToKKyAgICAiIiJN
YWluIHRocmVhZCBvYmplY3QgdGhhdCBvd25zIGFsbCB0aGUgVGVzdFJ1bm5lck1hbmFnZXIgdGhy
ZWFkcy4iIiIKICAgICBkZWYgX19pbml0X18oc2VsZiwgc3VpdGVfbmFtZSwgc2l6ZSwgdGVzdF9z
b3VyY2VfY2xzLCB0ZXN0X3NvdXJjZV9rd2FyZ3MsCiAgICAgICAgICAgICAgICAgIGJyb3dzZXJf
Y2xzLCBicm93c2VyX2t3YXJncywKICAgICAgICAgICAgICAgICAgZXhlY3V0b3JfY2xzLCBleGVj
dXRvcl9rd2FyZ3MsCkBAIC03MzQsOCArODA2LDggQEAgY2xhc3MgTWFuYWdlckdyb3VwKG9iamVj
dCk6CiAgICAgICAgICAgICAgICAgIHBhdXNlX2FmdGVyX3Rlc3Q9RmFsc2UsCiAgICAgICAgICAg
ICAgICAgIHBhdXNlX29uX3VuZXhwZWN0ZWQ9RmFsc2UsCiAgICAgICAgICAgICAgICAgIHJlc3Rh
cnRfb25fdW5leHBlY3RlZD1UcnVlLAotICAgICAgICAgICAgICAgICBkZWJ1Z19pbmZvPU5vbmUp
OgotICAgICAgICAiIiJNYWluIHRocmVhZCBvYmplY3QgdGhhdCBvd25zIGFsbCB0aGUgVGVzdE1h
bmFnZXIgdGhyZWFkcy4iIiIKKyAgICAgICAgICAgICAgICAgZGVidWdfaW5mbz1Ob25lLAorICAg
ICAgICAgICAgICAgICBjYXB0dXJlX3N0ZGlvPVRydWUpOgogICAgICAgICBzZWxmLnN1aXRlX25h
bWUgPSBzdWl0ZV9uYW1lCiAgICAgICAgIHNlbGYuc2l6ZSA9IHNpemUKICAgICAgICAgc2VsZi50
ZXN0X3NvdXJjZV9jbHMgPSB0ZXN0X3NvdXJjZV9jbHMKQEAgLTc0OSw2ICs4MjEsNyBAQCBjbGFz
cyBNYW5hZ2VyR3JvdXAob2JqZWN0KToKICAgICAgICAgc2VsZi5yZXN0YXJ0X29uX3VuZXhwZWN0
ZWQgPSByZXN0YXJ0X29uX3VuZXhwZWN0ZWQKICAgICAgICAgc2VsZi5kZWJ1Z19pbmZvID0gZGVi
dWdfaW5mbwogICAgICAgICBzZWxmLnJlcnVuID0gcmVydW4KKyAgICAgICAgc2VsZi5jYXB0dXJl
X3N0ZGlvID0gY2FwdHVyZV9zdGRpbwogCiAgICAgICAgIHNlbGYucG9vbCA9IHNldCgpCiAgICAg
ICAgICMgRXZlbnQgdGhhdCBpcyBwb2xsZWQgYnkgdGhyZWFkcyBzbyB0aGF0IHRoZXkgY2FuIGdy
YWNlZnVsbHkgZXhpdCBpbiB0aGUgZmFjZQpAQCAtNzg1LDE5ICs4NTgsMTYgQEAgY2xhc3MgTWFu
YWdlckdyb3VwKG9iamVjdCk6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgc2VsZi5wYXVzZV9hZnRlcl90ZXN0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHNlbGYucGF1c2Vfb25fdW5leHBlY3RlZCwKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBzZWxmLnJlc3RhcnRfb25fdW5leHBlY3RlZCwKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmRlYnVnX2luZm8pCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5kZWJ1Z19pbmZvLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuY2FwdHVyZV9zdGRpbykKICAg
ICAgICAgICAgIG1hbmFnZXIuc3RhcnQoKQogICAgICAgICAgICAgc2VsZi5wb29sLmFkZChtYW5h
Z2VyKQogICAgICAgICBzZWxmLndhaXQoKQogCi0gICAgZGVmIGlzX2FsaXZlKHNlbGYpOgotICAg
ICAgICAiIiJCb29sZWFuIGluZGljYXRpbmcgd2hldGhlciBhbnkgbWFuYWdlciBpbiB0aGUgZ3Jv
dXAgaXMgc3RpbGwgYWxpdmUiIiIKLSAgICAgICAgcmV0dXJuIGFueShtYW5hZ2VyLmlzX2FsaXZl
KCkgZm9yIG1hbmFnZXIgaW4gc2VsZi5wb29sKQotCiAgICAgZGVmIHdhaXQoc2VsZik6CiAgICAg
ICAgICIiIldhaXQgZm9yIGFsbCB0aGUgbWFuYWdlcnMgaW4gdGhlIGdyb3VwIHRvIGZpbmlzaCIi
IgotICAgICAgICBmb3IgaXRlbSBpbiBzZWxmLnBvb2w6Ci0gICAgICAgICAgICBpdGVtLmpvaW4o
KQorICAgICAgICBmb3IgbWFuYWdlciBpbiBzZWxmLnBvb2w6CisgICAgICAgICAgICBtYW5hZ2Vy
LmpvaW4oKQogCiAgICAgZGVmIHN0b3Aoc2VsZik6CiAgICAgICAgICIiIlNldCB0aGUgc3RvcCBm
bGFnIHNvIHRoYXQgYWxsIG1hbmFnZXJzIGluIHRoZSBncm91cCBzdG9wIGFzIHNvb24KQEAgLTgw
Niw3ICs4NzYsNyBAQCBjbGFzcyBNYW5hZ2VyR3JvdXAob2JqZWN0KToKICAgICAgICAgc2VsZi5s
b2dnZXIuZGVidWcoIlN0b3AgZmxhZyBzZXQgaW4gTWFuYWdlckdyb3VwIikKIAogICAgIGRlZiB0
ZXN0X2NvdW50KHNlbGYpOgotICAgICAgICByZXR1cm4gc3VtKGl0ZW0udGVzdF9jb3VudCBmb3Ig
aXRlbSBpbiBzZWxmLnBvb2wpCisgICAgICAgIHJldHVybiBzdW0obWFuYWdlci50ZXN0X2NvdW50
IGZvciBtYW5hZ2VyIGluIHNlbGYucG9vbCkKIAogICAgIGRlZiB1bmV4cGVjdGVkX2NvdW50KHNl
bGYpOgotICAgICAgICByZXR1cm4gc3VtKGl0ZW0udW5leHBlY3RlZF9jb3VudCBmb3IgaXRlbSBp
biBzZWxmLnBvb2wpCisgICAgICAgIHJldHVybiBzdW0obWFuYWdlci51bmV4cGVjdGVkX2NvdW50
IGZvciBtYW5hZ2VyIGluIHNlbGYucG9vbCkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci90ZXN0
cy9iYXNlLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy93cHRydW5uZXIvd3B0cnVubmVyL3Rlc3RzL2Jhc2UucHkKaW5kZXggYjUxNzNmM2I1MTNl
YTRmMGEzN2RiMmNjZGMwYTk0ODg5M2M0ZmU0NS4uMzVjNDU4MmU3Y2JkMjFlYmYzM2Q4NDI0Zjk0
ZjlkM2YzMTQyNjMxNiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3Rlc3RzL2Jhc2UucHkKKysr
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRy
dW5uZXIvd3B0cnVubmVyL3Rlc3RzL2Jhc2UucHkKQEAgLTcsNyArNyw3IEBAIGltcG9ydCBweXRl
c3QKIAogc3lzLnBhdGguaW5zZXJ0KDAsIGpvaW4oZGlybmFtZShfX2ZpbGVfXyksICIuLiIsICIu
LiIpKQogCi1mcm9tIHdwdHJ1bm5lciBpbXBvcnQgYnJvd3NlcnMKK2Zyb20gLi4gaW1wb3J0IGJy
b3dzZXJzCiAKIAogX3Byb2R1Y3RzID0gYnJvd3NlcnMucHJvZHVjdF9saXN0CkBAIC0xOCw2ICsx
OCw3IEBAIGlmICJDVVJSRU5UX1RPWF9FTlYiIGluIG9zLmVudmlyb246CiAKICAgICB0b3hfZW52
X2V4dHJhX2Jyb3dzZXJzID0gewogICAgICAgICAiY2hyb21lIjogeyJjaHJvbWVfYW5kcm9pZCJ9
LAorICAgICAgICAiZWRnZSI6IHsiZWRnZV93ZWJkcml2ZXIifSwKICAgICAgICAgInNlcnZvIjog
eyJzZXJ2b2RyaXZlciJ9LAogICAgIH0KIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3Rlc3Rz
L2Jyb3dzZXJzL3Rlc3Rfc2F1Y2UucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvdGVzdHMvYnJvd3NlcnMvdGVz
dF9zYXVjZS5weQppbmRleCBlODU0Mjk1OWFhMmVmYmNkYzUxOTBhZmMxYzkwNmYwYTY3MTdlMmMx
Li4wNmE1NjQxZDUwZmJiYWVkNGRlOWRmNTExYzU2Nzc1M2VmMWEzMjZkIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5l
ci93cHRydW5uZXIvdGVzdHMvYnJvd3NlcnMvdGVzdF9zYXVjZS5weQorKysgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5u
ZXIvdGVzdHMvYnJvd3NlcnMvdGVzdF9zYXVjZS5weQpAQCAtMjUsNyArMjUsOCBAQCBkZWYgdGVz
dF9zYXVjZWNvbm5lY3Rfc3VjY2VzcygpOgogICAgICAgICAgICAgc2F1Y2VfdXNlcj0iYWFhIiwK
ICAgICAgICAgICAgIHNhdWNlX2tleT0iYmJiIiwKICAgICAgICAgICAgIHNhdWNlX3R1bm5lbF9p
ZD0iY2NjIiwKLSAgICAgICAgICAgIHNhdWNlX2Nvbm5lY3RfYmluYXJ5PSJkZGQiKQorICAgICAg
ICAgICAgc2F1Y2VfY29ubmVjdF9iaW5hcnk9ImRkZCIsCisgICAgICAgICAgICBzYXVjZV9jb25u
ZWN0X2FyZ3M9W10pCiAKICAgICAgICAgd2l0aCBDb25maWdCdWlsZGVyKGJyb3dzZXJfaG9zdD0i
ZXhhbXBsZS5uZXQiKSBhcyBlbnZfY29uZmlnOgogICAgICAgICAgICAgc2F1Y2VfY29ubmVjdChO
b25lLCBlbnZfY29uZmlnKQpAQCAtNTQsNyArNTUsOCBAQCBkZWYgdGVzdF9zYXVjZWNvbm5lY3Rf
ZmFpbHVyZV9leGl0KHJlYWR5ZmlsZSwgcmV0dXJuY29kZSk6CiAgICAgICAgICAgICBzYXVjZV91
c2VyPSJhYWEiLAogICAgICAgICAgICAgc2F1Y2Vfa2V5PSJiYmIiLAogICAgICAgICAgICAgc2F1
Y2VfdHVubmVsX2lkPSJjY2MiLAotICAgICAgICAgICAgc2F1Y2VfY29ubmVjdF9iaW5hcnk9ImRk
ZCIpCisgICAgICAgICAgICBzYXVjZV9jb25uZWN0X2JpbmFyeT0iZGRkIiwKKyAgICAgICAgICAg
IHNhdWNlX2Nvbm5lY3RfYXJncz1bXSkKIAogICAgICAgICB3aXRoIENvbmZpZ0J1aWxkZXIoYnJv
d3Nlcl9ob3N0PSJleGFtcGxlLm5ldCIpIGFzIGVudl9jb25maWc6CiAgICAgICAgICAgICBzYXVj
ZV9jb25uZWN0KE5vbmUsIGVudl9jb25maWcpCkBAIC04Miw3ICs4NCw4IEBAIGRlZiB0ZXN0X3Nh
dWNlY29ubmVjdF9jbGVhbnVwKCk6CiAgICAgICAgICAgICBzYXVjZV91c2VyPSJhYWEiLAogICAg
ICAgICAgICAgc2F1Y2Vfa2V5PSJiYmIiLAogICAgICAgICAgICAgc2F1Y2VfdHVubmVsX2lkPSJj
Y2MiLAotICAgICAgICAgICAgc2F1Y2VfY29ubmVjdF9iaW5hcnk9ImRkZCIpCisgICAgICAgICAg
ICBzYXVjZV9jb25uZWN0X2JpbmFyeT0iZGRkIiwKKyAgICAgICAgICAgIHNhdWNlX2Nvbm5lY3Rf
YXJncz1bXSkKIAogICAgICAgICB3aXRoIENvbmZpZ0J1aWxkZXIoYnJvd3Nlcl9ob3N0PSJleGFt
cGxlLm5ldCIpIGFzIGVudl9jb25maWc6CiAgICAgICAgICAgICBzYXVjZV9jb25uZWN0KE5vbmUs
IGVudl9jb25maWcpCkBAIC0xMDYsNyArMTA5LDggQEAgZGVmIHRlc3Rfc2F1Y2Vjb25uZWN0X2Zh
aWx1cmVfbmV2ZXJfcmVhZHkoKToKICAgICAgICAgICAgIHNhdWNlX3VzZXI9ImFhYSIsCiAgICAg
ICAgICAgICBzYXVjZV9rZXk9ImJiYiIsCiAgICAgICAgICAgICBzYXVjZV90dW5uZWxfaWQ9ImNj
YyIsCi0gICAgICAgICAgICBzYXVjZV9jb25uZWN0X2JpbmFyeT0iZGRkIikKKyAgICAgICAgICAg
IHNhdWNlX2Nvbm5lY3RfYmluYXJ5PSJkZGQiLAorICAgICAgICAgICAgc2F1Y2VfY29ubmVjdF9h
cmdzPVtdKQogCiAgICAgICAgIHdpdGggQ29uZmlnQnVpbGRlcihicm93c2VyX2hvc3Q9ImV4YW1w
bGUubmV0IikgYXMgZW52X2NvbmZpZzoKICAgICAgICAgICAgIHNhdWNlX2Nvbm5lY3QoTm9uZSwg
ZW52X2NvbmZpZykKQEAgLTEzNCw3ICsxMzgsOCBAQCBkZWYgdGVzdF9zYXVjZWNvbm5lY3RfdHVu
bmVsX2RvbWFpbnMoKToKICAgICAgICAgICAgIHNhdWNlX3VzZXI9ImFhYSIsCiAgICAgICAgICAg
ICBzYXVjZV9rZXk9ImJiYiIsCiAgICAgICAgICAgICBzYXVjZV90dW5uZWxfaWQ9ImNjYyIsCi0g
ICAgICAgICAgICBzYXVjZV9jb25uZWN0X2JpbmFyeT0iZGRkIikKKyAgICAgICAgICAgIHNhdWNl
X2Nvbm5lY3RfYmluYXJ5PSJkZGQiLAorICAgICAgICAgICAgc2F1Y2VfY29ubmVjdF9hcmdzPVtd
KQogCiAgICAgICAgIHdpdGggQ29uZmlnQnVpbGRlcihicm93c2VyX2hvc3Q9ImV4YW1wbGUubmV0
IiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFsdGVybmF0ZV9ob3N0cz17ImFsdCI6ICJl
eGFtcGxlLm9yZyJ9LApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3Rlc3RzL2Jyb3dzZXJzL3Rl
c3Rfd2Via2l0Z3RrLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3Rlc3RzL2Jyb3dzZXJzL3Rlc3Rfd2Via2l0
Z3RrLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLmJlMDBkYzRhNmI3NzlmNDllZWMyNzgxNThmOWJjMzVjMjhhYWRk
ZDYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvdGVzdHMvYnJvd3NlcnMvdGVzdF93
ZWJraXRndGsucHkKQEAgLTAsMCArMSw1NyBAQAorZnJvbSBvcy5wYXRoIGltcG9ydCBqb2luLCBk
aXJuYW1lCisKK2ltcG9ydCBweXRlc3QKKworZnJvbSB3cHRzZXJ2ZS5jb25maWcgaW1wb3J0IENv
bmZpZ0J1aWxkZXIKK2Zyb20gLi5iYXNlIGltcG9ydCBhY3RpdmVfcHJvZHVjdHMKK2Zyb20gd3B0
cnVubmVyIGltcG9ydCBlbnZpcm9ubWVudCwgcHJvZHVjdHMKKwordGVzdF9wYXRocyA9IHsiLyI6
IHsidGVzdHNfcGF0aCI6IGpvaW4oZGlybmFtZShfX2ZpbGVfXyksICIuLiIsICIuLiIsICIuLiIs
ICIuLiIsICIuLiIpfX0gICMgcmVwbyByb290CitlbnZpcm9ubWVudC5kb19kZWxheWVkX2ltcG9y
dHMoTm9uZSwgdGVzdF9wYXRocykKKworCitAYWN0aXZlX3Byb2R1Y3RzKCJwcm9kdWN0IikKK2Rl
ZiB0ZXN0X3dlYmtpdGd0a19jZXJ0aWZpY2F0ZV9kb21haW5fbGlzdChwcm9kdWN0KToKKworICAg
IGRlZiBkb21haW5faXNfaW5zaWRlX2NlcnRpZmljYXRlX2xpc3RfY2VydChkb21haW5fdG9fZmlu
ZCwgd2Via2l0Z3RrX2NlcnRpZmljYXRlX2xpc3QsIGNlcnRfZmlsZSk6CisgICAgICAgIGZvciBk
b21haW4gaW4gd2Via2l0Z3RrX2NlcnRpZmljYXRlX2xpc3Q6CisgICAgICAgICAgICBpZiBkb21h
aW5bImhvc3QiXSA9PSBkb21haW5fdG9fZmluZCBhbmQgZG9tYWluWyJjZXJ0aWZpY2F0ZUZpbGUi
XSA9PSBjZXJ0X2ZpbGU6CisgICAgICAgICAgICAgICAgcmV0dXJuIFRydWUKKyAgICAgICAgcmV0
dXJuIEZhbHNlCisKKyAgICBpZiBwcm9kdWN0IG5vdCBpbiBbImVwaXBoYW55IiwgIndlYmtpdCIs
ICJ3ZWJraXRndGtfbWluaWJyb3dzZXIiXToKKyAgICAgICAgcHl0ZXN0LnNraXAoIiVzIGRvZXNu
J3Qgc3VwcG9ydCBjZXJ0aWZpY2F0ZV9kb21haW5fbGlzdCIgJSBwcm9kdWN0KQorCisgICAgKGNo
ZWNrX2FyZ3MsCisgICAgIHRhcmdldF9icm93c2VyX2NscywgZ2V0X2Jyb3dzZXJfa3dhcmdzLAor
ICAgICBleGVjdXRvcl9jbGFzc2VzLCBnZXRfZXhlY3V0b3Jfa3dhcmdzLAorICAgICBlbnZfb3B0
aW9ucywgZ2V0X2Vudl9leHRyYXMsIHJ1bl9pbmZvX2V4dHJhcykgPSBwcm9kdWN0cy5sb2FkX3By
b2R1Y3Qoe30sIHByb2R1Y3QpCisKKyAgICBjZXJ0X2ZpbGUgPSAiL2hvbWUvdXNlci93cHQvdG9v
bHMvY2VydHMvY2FjZXJ0LnBlbSIKKyAgICB2YWxpZF9kb21haW5zX3Rlc3QgPSBbImEuZXhhbXBs
ZS5vcmciLCAiYi5leGFtcGxlLm9yZyIsICJleGFtcGxlLm9yZyIsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICJhLmV4YW1wbGUubmV0IiwgImIuZXhhbXBsZS5uZXQiLCAiZXhhbXBsZS5uZXQi
XQorICAgIGludmFsaWRfZG9tYWluc190ZXN0ID0gWyJ4LmV4YW1wbGUub3JnIiwgInkuZXhhbXBs
ZS5vcmciLCAiZXhhbXBsZS5pdCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgInguZXhh
bXBsZS5uZXQiLCAieS5leGFtcGxlLm5ldCIsICJ6LmV4YW1wbGUubmV0Il0KKyAgICBrd2FyZ3Mg
PSB7fQorICAgIGt3YXJnc1sidGltZW91dF9tdWx0aXBsaWVyIl0gPSAxCisgICAga3dhcmdzWyJk
ZWJ1Z19pbmZvIl0gPSBOb25lCisgICAga3dhcmdzWyJob3N0X2NlcnRfcGF0aCJdID0gY2VydF9m
aWxlCisgICAga3dhcmdzWyJ3ZWJraXRfcG9ydCJdID0gImd0ayIKKyAgICBrd2FyZ3NbImJpbmFy
eSJdID0gTm9uZQorICAgIGt3YXJnc1sid2ViZHJpdmVyX2JpbmFyeSJdID0gTm9uZQorICAgIHdp
dGggQ29uZmlnQnVpbGRlcihicm93c2VyX2hvc3Q9ImV4YW1wbGUubmV0IiwKKyAgICAgICAgICAg
ICAgICAgICAgICAgYWx0ZXJuYXRlX2hvc3RzPXsiYWx0IjogImV4YW1wbGUub3JnIn0sCisgICAg
ICAgICAgICAgICAgICAgICAgIHN1YmRvbWFpbnM9eyJhIiwgImIifSwKKyAgICAgICAgICAgICAg
ICAgICAgICAgbm90X3N1YmRvbWFpbnM9eyJ4IiwgInkifSkgYXMgZW52X2NvbmZpZzoKKworICAg
ICAgICBleGVjdXRvcl9hcmdzID0gZ2V0X2V4ZWN1dG9yX2t3YXJncyhOb25lLCBlbnZfY29uZmln
LCBOb25lLCBOb25lLCAqKmt3YXJncykKKyAgICAgICAgYXNzZXJ0KCdjYXBhYmlsaXRpZXMnIGlu
IGV4ZWN1dG9yX2FyZ3MpCisgICAgICAgIGFzc2VydCgnd2Via2l0Z3RrOmJyb3dzZXJPcHRpb25z
JyBpbiBleGVjdXRvcl9hcmdzWydjYXBhYmlsaXRpZXMnXSkKKyAgICAgICAgYXNzZXJ0KCdjZXJ0
aWZpY2F0ZXMnIGluIGV4ZWN1dG9yX2FyZ3NbJ2NhcGFiaWxpdGllcyddWyd3ZWJraXRndGs6YnJv
d3Nlck9wdGlvbnMnXSkKKyAgICAgICAgY2VydF9saXN0ID0gZXhlY3V0b3JfYXJnc1snY2FwYWJp
bGl0aWVzJ11bJ3dlYmtpdGd0azpicm93c2VyT3B0aW9ucyddWydjZXJ0aWZpY2F0ZXMnXQorICAg
ICAgICBmb3IgdmFsaWRfZG9tYWluIGluIHZhbGlkX2RvbWFpbnNfdGVzdDoKKyAgICAgICAgICAg
IGFzc2VydChkb21haW5faXNfaW5zaWRlX2NlcnRpZmljYXRlX2xpc3RfY2VydCh2YWxpZF9kb21h
aW4sIGNlcnRfbGlzdCwgY2VydF9maWxlKSkKKyAgICAgICAgICAgIGFzc2VydChub3QgZG9tYWlu
X2lzX2luc2lkZV9jZXJ0aWZpY2F0ZV9saXN0X2NlcnQodmFsaWRfZG9tYWluLCBjZXJ0X2xpc3Qs
IGNlcnRfZmlsZSArICIuYmFja3VwX25vbl9leGlzdGVudCIpKQorICAgICAgICBmb3IgaW52YWxp
ZF9kb21haW4gaW4gaW52YWxpZF9kb21haW5zX3Rlc3Q6CisgICAgICAgICAgICBhc3NlcnQobm90
IGRvbWFpbl9pc19pbnNpZGVfY2VydGlmaWNhdGVfbGlzdF9jZXJ0KGludmFsaWRfZG9tYWluLCBj
ZXJ0X2xpc3QsIGNlcnRfZmlsZSkpCisgICAgICAgICAgICBhc3NlcnQobm90IGRvbWFpbl9pc19p
bnNpZGVfY2VydGlmaWNhdGVfbGlzdF9jZXJ0KGludmFsaWRfZG9tYWluLCBjZXJ0X2xpc3QsIGNl
cnRfZmlsZSArICIuYmFja3VwX25vbl9leGlzdGVudCIpKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVu
bmVyL3Rlc3RzL2Jyb3dzZXJzL3czYy1pbXBvcnQubG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3Rlc3RzL2Jy
b3dzZXJzL3czYy1pbXBvcnQubG9nCmluZGV4IDJlYjY3YmFhNjMwYzcwYmY5Mzk5NmM5ZjcwMjdh
ZWJkZWMzYTYwODguLjU1Njk4NzczMTI3Y2RkZjViYzZiNjRjMWUzMzE2NDMyOWJkMjgwODQgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvd3B0cnVubmVyL3dwdHJ1bm5lci90ZXN0cy9icm93c2Vycy93M2MtaW1wb3J0LmxvZworKysg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1
bm5lci93cHRydW5uZXIvdGVzdHMvYnJvd3NlcnMvdzNjLWltcG9ydC5sb2cKQEAgLTE2LDMgKzE2
LDQgQEAgTm9uZQogTGlzdCBvZiBmaWxlczoKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvdGVzdHMvYnJvd3NlcnMv
X19pbml0X18ucHkKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvdGVzdHMvYnJvd3NlcnMvdGVzdF9zYXVjZS5weQor
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVu
bmVyL3dwdHJ1bm5lci90ZXN0cy9icm93c2Vycy90ZXN0X3dlYmtpdGd0ay5weQpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRy
dW5uZXIvd3B0cnVubmVyL3Rlc3RzL3Rlc3RfY2h1bmtlci5weSBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci90ZXN0
cy90ZXN0X2NodW5rZXIucHkKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGJkNjQ5ZDY5
ZTM5YTBmNzQwOGU4NDAyMDY5NzgxNzdkNWU0OTgzYmYuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3Rlc3RzL3Rlc3RfY2h1bmtlci5w
eQorKysgL2Rldi9udWxsCkBAIC0xLDk4ICswLDAgQEAKLWltcG9ydCB1bml0dGVzdAotaW1wb3J0
IHN5cwotZnJvbSBvcy5wYXRoIGltcG9ydCBqb2luLCBkaXJuYW1lCi1mcm9tIG1vemxvZyBpbXBv
cnQgc3RydWN0dXJlZAotCi1zeXMucGF0aC5pbnNlcnQoMCwgam9pbihkaXJuYW1lKF9fZmlsZV9f
KSwgIi4uIiwgIi4uIiwgIi4uIikpCi0KLWZyb20gd3B0cnVubmVyLnRlc3Rsb2FkZXIgaW1wb3J0
IEVxdWFsVGltZUNodW5rZXIKLWZyb20gbWFuaWZlc3Quc291cmNlZmlsZSBpbXBvcnQgU291cmNl
RmlsZQotCi1zdHJ1Y3R1cmVkLnNldF9kZWZhdWx0X2xvZ2dlcihzdHJ1Y3R1cmVkLnN0cnVjdHVy
ZWRsb2cuU3RydWN0dXJlZExvZ2dlcigiVGVzdENodW5rZXIiKSkKLQotCi10ZXN0aGFybmVzc190
ZXN0ID0gIiIiPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0
PgotPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0
PiIiIgotCi0KLWNsYXNzIE1vY2tUZXN0KG9iamVjdCk6Ci0gICAgZGVmYXVsdF90aW1lb3V0ID0g
MTAKLQotICAgIGRlZiBfX2luaXRfXyhzZWxmLCBpZCwgcGF0aCwgdGltZW91dD0xMCwgY29udGVu
dHM9dGVzdGhhcm5lc3NfdGVzdCk6Ci0gICAgICAgIHNlbGYuaWQgPSBpZAotICAgICAgICBzZWxm
LnVybCA9ICIvIiArIHBhdGgKLSAgICAgICAgc2VsZi5pdGVtX3R5cGUgPSAidGVzdGhhcm5lc3Mi
Ci0gICAgICAgIHNlbGYudGltZW91dCA9IHRpbWVvdXQKLSAgICAgICAgc2VsZi5zb3VyY2VfZmls
ZSA9IFNvdXJjZUZpbGUoIi8iLCBwYXRoLCAiLyIsIGNvbnRlbnRzPWNvbnRlbnRzKQotCi0KLWRl
ZiBtYWtlX21vY2tfbWFuaWZlc3QoKml0ZW1zKToKLSAgICBydiA9IFtdCi0gICAgZm9yIHRlc3Rf
dHlwZSwgZGlyX3BhdGgsIG51bV90ZXN0cyBpbiBpdGVtczoKLSAgICAgICAgZm9yIGkgaW4gcmFu
Z2UobnVtX3Rlc3RzKToKLSAgICAgICAgICAgIGZpbGVuYW1lID0gIi8laS5odG1sIiAlIGkKLSAg
ICAgICAgICAgIHJ2LmFwcGVuZCgodGVzdF90eXBlLAotICAgICAgICAgICAgICAgICAgICAgICBk
aXJfcGF0aCArIGZpbGVuYW1lLAotICAgICAgICAgICAgICAgICAgICAgICBzZXQoW01vY2tUZXN0
KCIlaS5odG1sIiAlIGksIGRpcl9wYXRoICsgZmlsZW5hbWUpXSkpKQotICAgIHJldHVybiBydgot
Ci0KLWNsYXNzIFRlc3RFcXVhbFRpbWVDaHVua2VyKHVuaXR0ZXN0LlRlc3RDYXNlKToKLQotICAg
IGRlZiB0ZXN0X2luY2x1ZGVfYWxsKHNlbGYpOgotICAgICAgICB0ZXN0cyA9IG1ha2VfbW9ja19t
YW5pZmVzdCgoInRlc3QiLCAiYSIsIDEwKSwgKCJ0ZXN0IiwgImEvYiIsIDEwKSwKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgKCJ0ZXN0IiwgImMiLCAxMCkpCi0KLSAgICAgICAg
Y2h1bmtfMSA9IGxpc3QoRXF1YWxUaW1lQ2h1bmtlcigzLCAxKSh0ZXN0cykpCi0gICAgICAgIGNo
dW5rXzIgPSBsaXN0KEVxdWFsVGltZUNodW5rZXIoMywgMikodGVzdHMpKQotICAgICAgICBjaHVu
a18zID0gbGlzdChFcXVhbFRpbWVDaHVua2VyKDMsIDMpKHRlc3RzKSkKLQotICAgICAgICBzZWxm
LmFzc2VydEVxdWFscyh0ZXN0c1s6MTBdLCBjaHVua18xKQotICAgICAgICBzZWxmLmFzc2VydEVx
dWFscyh0ZXN0c1sxMDoyMF0sIGNodW5rXzIpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKHRl
c3RzWzIwOl0sIGNodW5rXzMpCi0KLSAgICBkZWYgdGVzdF9pbmNsdWRlX2FsbF8xKHNlbGYpOgot
ICAgICAgICB0ZXN0cyA9IG1ha2VfbW9ja19tYW5pZmVzdCgoInRlc3QiLCAiYSIsIDUpLCAoInRl
c3QiLCAiYS9iIiwgNSksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgidGVz
dCIsICJjIiwgMTApLCAoInRlc3QiLCAiZCIsIDEwKSkKLQotICAgICAgICBjaHVua18xID0gbGlz
dChFcXVhbFRpbWVDaHVua2VyKDMsIDEpKHRlc3RzKSkKLSAgICAgICAgY2h1bmtfMiA9IGxpc3Qo
RXF1YWxUaW1lQ2h1bmtlcigzLCAyKSh0ZXN0cykpCi0gICAgICAgIGNodW5rXzMgPSBsaXN0KEVx
dWFsVGltZUNodW5rZXIoMywgMykodGVzdHMpKQotCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxz
KHRlc3RzWzoxMF0sIGNodW5rXzEpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKHRlc3RzWzEw
OjIwXSwgY2h1bmtfMikKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHModGVzdHNbMjA6XSwgY2h1
bmtfMykKLQotICAgIGRlZiB0ZXN0X2xvbmcoc2VsZik6Ci0gICAgICAgIHRlc3RzID0gbWFrZV9t
b2NrX21hbmlmZXN0KCgidGVzdCIsICJhIiwgMTAwKSwgKCJ0ZXN0IiwgImEvYiIsIDEpLAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoInRlc3QiLCAiYyIsIDEpKQotCi0gICAg
ICAgIGNodW5rXzEgPSBsaXN0KEVxdWFsVGltZUNodW5rZXIoMywgMSkodGVzdHMpKQotICAgICAg
ICBjaHVua18yID0gbGlzdChFcXVhbFRpbWVDaHVua2VyKDMsIDIpKHRlc3RzKSkKLSAgICAgICAg
Y2h1bmtfMyA9IGxpc3QoRXF1YWxUaW1lQ2h1bmtlcigzLCAzKSh0ZXN0cykpCi0KLSAgICAgICAg
c2VsZi5hc3NlcnRFcXVhbHModGVzdHNbOjEwMF0sIGNodW5rXzEpCi0gICAgICAgIHNlbGYuYXNz
ZXJ0RXF1YWxzKHRlc3RzWzEwMDoxMDFdLCBjaHVua18yKQotICAgICAgICBzZWxmLmFzc2VydEVx
dWFscyh0ZXN0c1sxMDE6MTAyXSwgY2h1bmtfMykKLQotICAgIGRlZiB0ZXN0X2xvbmdfMShzZWxm
KToKLSAgICAgICAgdGVzdHMgPSBtYWtlX21vY2tfbWFuaWZlc3QoKCJ0ZXN0IiwgImEiLCAxKSwg
KCJ0ZXN0IiwgImEvYiIsIDEwMCksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICgidGVzdCIsICJjIiwgMSkpCi0KLSAgICAgICAgY2h1bmtfMSA9IGxpc3QoRXF1YWxUaW1lQ2h1
bmtlcigzLCAxKSh0ZXN0cykpCi0gICAgICAgIGNodW5rXzIgPSBsaXN0KEVxdWFsVGltZUNodW5r
ZXIoMywgMikodGVzdHMpKQotICAgICAgICBjaHVua18zID0gbGlzdChFcXVhbFRpbWVDaHVua2Vy
KDMsIDMpKHRlc3RzKSkKLQotICAgICAgICBzZWxmLmFzc2VydEVxdWFscyh0ZXN0c1s6MV0sIGNo
dW5rXzEpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKHRlc3RzWzE6MTAxXSwgY2h1bmtfMikK
LSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHModGVzdHNbMTAxOjEwMl0sIGNodW5rXzMpCi0KLSAg
ICBkZWYgdGVzdF90b29fZmV3X2RpcnMoc2VsZik6Ci0gICAgICAgIHdpdGggc2VsZi5hc3NlcnRS
YWlzZXMoVmFsdWVFcnJvcik6Ci0gICAgICAgICAgICB0ZXN0cyA9IG1ha2VfbW9ja19tYW5pZmVz
dCgoInRlc3QiLCAiYSIsIDEpLCAoInRlc3QiLCAiYS9iIiwgMTAwKSwKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICgidGVzdCIsICJjIiwgMSkpCi0gICAgICAgICAgICBs
aXN0KEVxdWFsVGltZUNodW5rZXIoNCwgMSkodGVzdHMpKQotCi0KLWlmIF9fbmFtZV9fID09ICJf
X21haW5fXyI6Ci0gICAgdW5pdHRlc3QubWFpbigpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIv
dGVzdHMvdGVzdF9leHBlY3RlZHRyZWUucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvdGVzdHMvdGVzdF9leHBl
Y3RlZHRyZWUucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjMwOGJlOTU5MGU5MDA0ZjQxYTQ5MjY4MmQxODdhN2I0
ZmM1NzIzMQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci90ZXN0cy90ZXN0X2V4cGVj
dGVkdHJlZS5weQpAQCAtMCwwICsxLDEzMiBAQAoraW1wb3J0IHN5cworCitpbXBvcnQgcHl0ZXN0
CisKK2Zyb20gLi4gaW1wb3J0IGV4cGVjdGVkdHJlZSwgbWV0YWRhdGEKK2Zyb20gY29sbGVjdGlv
bnMgaW1wb3J0IGRlZmF1bHRkaWN0CisKKworZGVmIGR1bXBfdHJlZSh0cmVlKToKKyAgICBydiA9
IFtdCisKKyAgICBkZWYgZHVtcF9ub2RlKG5vZGUsIGluZGVudD0wKToKKyAgICAgICAgcHJlZml4
ID0gIiAiICogaW5kZW50CisgICAgICAgIGlmIG5vdCBub2RlLnByb3A6CisgICAgICAgICAgICBk
YXRhID0gInJvb3QiCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBkYXRhID0gIiVzOiVzIiAl
IChub2RlLnByb3AsIG5vZGUudmFsdWUpCisgICAgICAgIGlmIG5vZGUucmVzdWx0X3ZhbHVlczoK
KyAgICAgICAgICAgIGRhdGEgKz0gIiByZXN1bHRfdmFsdWVzOiVzIiAlICgiLCIuam9pbihzb3J0
ZWQobm9kZS5yZXN1bHRfdmFsdWVzKSkpCisgICAgICAgIHJ2LmFwcGVuZCgiJXM8JXM+IiAlIChw
cmVmaXgsIGRhdGEpKQorICAgICAgICBmb3IgY2hpbGQgaW4gc29ydGVkKG5vZGUuY2hpbGRyZW4s
IGtleT1sYW1iZGEgeDp4LnZhbHVlKToKKyAgICAgICAgICAgIGR1bXBfbm9kZShjaGlsZCwgaW5k
ZW50ICsgMikKKyAgICBkdW1wX25vZGUodHJlZSkKKyAgICByZXR1cm4gIlxuIi5qb2luKHJ2KQor
CisKK2RlZiByZXN1bHRzX29iamVjdChyZXN1bHRzKToKKyAgICByZXN1bHRzX29iaiA9IGRlZmF1
bHRkaWN0KGxhbWJkYTogZGVmYXVsdGRpY3QoaW50KSkKKyAgICBmb3IgcnVuX2luZm8sIHN0YXR1
cyBpbiByZXN1bHRzOgorICAgICAgICBydW5faW5mbyA9IG1ldGFkYXRhLlJ1bkluZm8ocnVuX2lu
Zm8pCisgICAgICAgIHJlc3VsdHNfb2JqW3J1bl9pbmZvXVtzdGF0dXNdICs9IDEKKyAgICByZXR1
cm4gcmVzdWx0c19vYmoKKworCitAcHl0ZXN0Lm1hcmsueGZhaWwoc3lzLnZlcnNpb25bMF0gPT0g
IjMiLAorICAgICAgICAgICAgICAgICAgIHJlYXNvbj0ibWV0YWRhdGEgZG9lc24ndCBzdXBwb3J0
IHB5MyIpCitkZWYgdGVzdF9idWlsZF90cmVlXzAoKToKKyAgICAjIFBhc3MgaWYgZGVidWcKKyAg
ICByZXN1bHRzID0gWyh7Im9zIjogImxpbnV4IiwgInZlcnNpb24iOiAiMTguMDQiLCAiZGVidWci
OiBUcnVlfSwgIkZBSUwiKSwKKyAgICAgICAgICAgICAgICh7Im9zIjogImxpbnV4IiwgInZlcnNp
b24iOiAiMTguMDQiLCAiZGVidWciOiBGYWxzZX0sICJQQVNTIiksCisgICAgICAgICAgICAgICAo
eyJvcyI6ICJsaW51eCIsICJ2ZXJzaW9uIjogIjE2LjA0IiwgImRlYnVnIjogRmFsc2V9LCAiUEFT
UyIpLAorICAgICAgICAgICAgICAgKHsib3MiOiAibWFjIiwgInZlcnNpb24iOiAiMTAuMTIiLCAi
ZGVidWciOiBUcnVlfSwgIkZBSUwiKSwKKyAgICAgICAgICAgICAgICh7Im9zIjogIm1hYyIsICJ2
ZXJzaW9uIjogIjEwLjEyIiwgImRlYnVnIjogRmFsc2V9LCAiUEFTUyIpLAorICAgICAgICAgICAg
ICAgKHsib3MiOiAid2luIiwgInZlcnNpb24iOiAiNyIsICJkZWJ1ZyI6IEZhbHNlfSwgIlBBU1Mi
KSwKKyAgICAgICAgICAgICAgICh7Im9zIjogIndpbiIsICJ2ZXJzaW9uIjogIjEwIiwgImRlYnVn
IjogRmFsc2V9LCAiUEFTUyIpXQorICAgIHJlc3VsdHNfb2JqID0gcmVzdWx0c19vYmplY3QocmVz
dWx0cykKKyAgICB0cmVlID0gZXhwZWN0ZWR0cmVlLmJ1aWxkX3RyZWUoWyJvcyIsICJ2ZXJzaW9u
IiwgImRlYnVnIl0sIHt9LCByZXN1bHRzX29iaikKKworICAgIGV4cGVjdGVkID0gIiIiPHJvb3Q+
CisgIDxkZWJ1ZzpGYWxzZSByZXN1bHRfdmFsdWVzOlBBU1M+CisgIDxkZWJ1ZzpUcnVlIHJlc3Vs
dF92YWx1ZXM6RkFJTD4iIiIKKworICAgIGFzc2VydCBkdW1wX3RyZWUodHJlZSkgPT0gZXhwZWN0
ZWQKKworCitAcHl0ZXN0Lm1hcmsueGZhaWwoc3lzLnZlcnNpb25bMF0gPT0gIjMiLAorICAgICAg
ICAgICAgICAgICAgIHJlYXNvbj0ibWV0YWRhdGEgZG9lc24ndCBzdXBwb3J0IHB5MyIpCitkZWYg
dGVzdF9idWlsZF90cmVlXzEoKToKKyAgICAjIFBhc3MgaWYgbGludXggb3Igd2luZG93cyAxMAor
ICAgIHJlc3VsdHMgPSBbKHsib3MiOiAibGludXgiLCAidmVyc2lvbiI6ICIxOC4wNCIsICJkZWJ1
ZyI6IFRydWV9LCAiUEFTUyIpLAorICAgICAgICAgICAgICAgKHsib3MiOiAibGludXgiLCAidmVy
c2lvbiI6ICIxOC4wNCIsICJkZWJ1ZyI6IEZhbHNlfSwgIlBBU1MiKSwKKyAgICAgICAgICAgICAg
ICh7Im9zIjogImxpbnV4IiwgInZlcnNpb24iOiAiMTYuMDQiLCAiZGVidWciOiBGYWxzZX0sICJQ
QVNTIiksCisgICAgICAgICAgICAgICAoeyJvcyI6ICJtYWMiLCAidmVyc2lvbiI6ICIxMC4xMiIs
ICJkZWJ1ZyI6IFRydWV9LCAiRkFJTCIpLAorICAgICAgICAgICAgICAgKHsib3MiOiAibWFjIiwg
InZlcnNpb24iOiAiMTAuMTIiLCAiZGVidWciOiBGYWxzZX0sICJGQUlMIiksCisgICAgICAgICAg
ICAgICAoeyJvcyI6ICJ3aW4iLCAidmVyc2lvbiI6ICI3IiwgImRlYnVnIjogRmFsc2V9LCAiRkFJ
TCIpLAorICAgICAgICAgICAgICAgKHsib3MiOiAid2luIiwgInZlcnNpb24iOiAiMTAiLCAiZGVi
dWciOiBGYWxzZX0sICJQQVNTIildCisgICAgcmVzdWx0c19vYmogPSByZXN1bHRzX29iamVjdChy
ZXN1bHRzKQorICAgIHRyZWUgPSBleHBlY3RlZHRyZWUuYnVpbGRfdHJlZShbIm9zIiwgImRlYnVn
Il0sIHsib3MiOiBbInZlcnNpb24iXX0sIHJlc3VsdHNfb2JqKQorCisgICAgZXhwZWN0ZWQgPSAi
IiI8cm9vdD4KKyAgPG9zOmxpbnV4IHJlc3VsdF92YWx1ZXM6UEFTUz4KKyAgPG9zOm1hYyByZXN1
bHRfdmFsdWVzOkZBSUw+CisgIDxvczp3aW4+CisgICAgPHZlcnNpb246MTAgcmVzdWx0X3ZhbHVl
czpQQVNTPgorICAgIDx2ZXJzaW9uOjcgcmVzdWx0X3ZhbHVlczpGQUlMPiIiIgorCisgICAgYXNz
ZXJ0IGR1bXBfdHJlZSh0cmVlKSA9PSBleHBlY3RlZAorCisKK0BweXRlc3QubWFyay54ZmFpbChz
eXMudmVyc2lvblswXSA9PSAiMyIsCisgICAgICAgICAgICAgICAgICAgcmVhc29uPSJtZXRhZGF0
YSBkb2Vzbid0IHN1cHBvcnQgcHkzIikKK2RlZiB0ZXN0X2J1aWxkX3RyZWVfMigpOgorICAgICMg
RmFpbHMgaW4gYSBzcGVjaWZpYyBjb25maWd1cmF0aW9uCisgICAgcmVzdWx0cyA9IFsoeyJvcyI6
ICJsaW51eCIsICJ2ZXJzaW9uIjogIjE4LjA0IiwgImRlYnVnIjogVHJ1ZX0sICJQQVNTIiksCisg
ICAgICAgICAgICAgICAoeyJvcyI6ICJsaW51eCIsICJ2ZXJzaW9uIjogIjE4LjA0IiwgImRlYnVn
IjogRmFsc2V9LCAiRkFJTCIpLAorICAgICAgICAgICAgICAgKHsib3MiOiAibGludXgiLCAidmVy
c2lvbiI6ICIxNi4wNCIsICJkZWJ1ZyI6IEZhbHNlfSwgIlBBU1MiKSwKKyAgICAgICAgICAgICAg
ICh7Im9zIjogImxpbnV4IiwgInZlcnNpb24iOiAiMTYuMDQiLCAiZGVidWciOiBUcnVlfSwgIlBB
U1MiKSwKKyAgICAgICAgICAgICAgICh7Im9zIjogIm1hYyIsICJ2ZXJzaW9uIjogIjEwLjEyIiwg
ImRlYnVnIjogVHJ1ZX0sICJQQVNTIiksCisgICAgICAgICAgICAgICAoeyJvcyI6ICJtYWMiLCAi
dmVyc2lvbiI6ICIxMC4xMiIsICJkZWJ1ZyI6IEZhbHNlfSwgIlBBU1MiKSwKKyAgICAgICAgICAg
ICAgICh7Im9zIjogIndpbiIsICJ2ZXJzaW9uIjogIjciLCAiZGVidWciOiBGYWxzZX0sICJQQVNT
IiksCisgICAgICAgICAgICAgICAoeyJvcyI6ICJ3aW4iLCAidmVyc2lvbiI6ICIxMCIsICJkZWJ1
ZyI6IEZhbHNlfSwgIlBBU1MiKV0KKyAgICByZXN1bHRzX29iaiA9IHJlc3VsdHNfb2JqZWN0KHJl
c3VsdHMpCisgICAgdHJlZSA9IGV4cGVjdGVkdHJlZS5idWlsZF90cmVlKFsib3MiLCAiZGVidWci
XSwgeyJvcyI6IFsidmVyc2lvbiJdfSwgcmVzdWx0c19vYmopCisKKyAgICBleHBlY3RlZCA9ICIi
Ijxyb290PgorICA8b3M6bGludXg+CisgICAgPGRlYnVnOkZhbHNlPgorICAgICAgPHZlcnNpb246
MTYuMDQgcmVzdWx0X3ZhbHVlczpQQVNTPgorICAgICAgPHZlcnNpb246MTguMDQgcmVzdWx0X3Zh
bHVlczpGQUlMPgorICAgIDxkZWJ1ZzpUcnVlIHJlc3VsdF92YWx1ZXM6UEFTUz4KKyAgPG9zOm1h
YyByZXN1bHRfdmFsdWVzOlBBU1M+CisgIDxvczp3aW4gcmVzdWx0X3ZhbHVlczpQQVNTPiIiIgor
CisgICAgYXNzZXJ0IGR1bXBfdHJlZSh0cmVlKSA9PSBleHBlY3RlZAorCisKK0BweXRlc3QubWFy
ay54ZmFpbChzeXMudmVyc2lvblswXSA9PSAiMyIsCisgICAgICAgICAgICAgICAgICAgcmVhc29u
PSJtZXRhZGF0YSBkb2Vzbid0IHN1cHBvcnQgcHkzIikKK2RlZiB0ZXN0X2J1aWxkX3RyZWVfMygp
OgorCisgICAgcmVzdWx0cyA9IFsoeyJvcyI6ICJsaW51eCIsICJ2ZXJzaW9uIjogIjE4LjA0Iiwg
ImRlYnVnIjogVHJ1ZSwgInVudXNlZCI6IEZhbHNlfSwgIlBBU1MiKSwKKyAgICAgICAgICAgICAg
ICh7Im9zIjogImxpbnV4IiwgInZlcnNpb24iOiAiMTguMDQiLCAiZGVidWciOiBUcnVlLCAidW51
c2VkIjogVHJ1ZX0sICJGQUlMIildCisgICAgcmVzdWx0c19vYmogPSByZXN1bHRzX29iamVjdChy
ZXN1bHRzKQorICAgIHRyZWUgPSBleHBlY3RlZHRyZWUuYnVpbGRfdHJlZShbIm9zIiwgImRlYnVn
Il0sIHsib3MiOiBbInZlcnNpb24iXX0sIHJlc3VsdHNfb2JqKQorCisgICAgZXhwZWN0ZWQgPSAi
IiI8cm9vdCByZXN1bHRfdmFsdWVzOkZBSUwsUEFTUz4iIiIKKworICAgIGFzc2VydCBkdW1wX3Ry
ZWUodHJlZSkgPT0gZXhwZWN0ZWQKKworCitAcHl0ZXN0Lm1hcmsueGZhaWwoc3lzLnZlcnNpb25b
MF0gPT0gIjMiLAorICAgICAgICAgICAgICAgICAgIHJlYXNvbj0ibWV0YWRhdGEgZG9lc24ndCBz
dXBwb3J0IHB5MyIpCitkZWYgdGVzdF9idWlsZF90cmVlXzQoKToKKyAgICAjIENoZWNrIGNvdW50
cyBmb3IgbXVsdGlwbGUgc3RhdHVzZXMKKyAgICByZXN1bHRzID0gWyh7Im9zIjogImxpbnV4Iiwg
InZlcnNpb24iOiAiMTguMDQiLCAiZGVidWciOiBGYWxzZX0sICJGQUlMIiksCisgICAgICAgICAg
ICAgICAoeyJvcyI6ICJsaW51eCIsICJ2ZXJzaW9uIjogIjE4LjA0IiwgImRlYnVnIjogRmFsc2V9
LCAiUEFTUyIpLAorICAgICAgICAgICAgICAgKHsib3MiOiAibGludXgiLCAidmVyc2lvbiI6ICIx
OC4wNCIsICJkZWJ1ZyI6IEZhbHNlfSwgIlBBU1MiKV0KKyAgICByZXN1bHRzX29iaiA9IHJlc3Vs
dHNfb2JqZWN0KHJlc3VsdHMpCisgICAgdHJlZSA9IGV4cGVjdGVkdHJlZS5idWlsZF90cmVlKFsi
b3MiLCAidmVyc2lvbiIsICJkZWJ1ZyJdLCB7fSwgcmVzdWx0c19vYmopCisKKyAgICBhc3NlcnQg
dHJlZS5yZXN1bHRfdmFsdWVzWyJQQVNTIl0gPT0gMgorICAgIGFzc2VydCB0cmVlLnJlc3VsdF92
YWx1ZXNbIkZBSUwiXSA9PSAxCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvdGVzdHMvdGVzdF9m
b3JtYXR0ZXJzLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3Rlc3RzL3Rlc3RfZm9ybWF0dGVycy5weQppbmRl
eCBmYzJjZTViYzExMTYxMDU3YTBmYTExMGU2YWE2NGEyMWNjMGU4YWFkLi43MmYzYTU5MWFkN2Y5
MDUzMjY3MWNjYjg5N2RmY2IxNjFiYzhmNDVkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvdGVz
dHMvdGVzdF9mb3JtYXR0ZXJzLnB5CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci90ZXN0cy90ZXN0X2Zvcm1h
dHRlcnMucHkKQEAgLTEsMTQgKzEsMTMgQEAKIGltcG9ydCBqc29uCi1pbXBvcnQgc3lzCiBpbXBv
cnQgdGltZQotZnJvbSBvcy5wYXRoIGltcG9ydCBkaXJuYW1lLCBqb2luCi1mcm9tIFN0cmluZ0lP
IGltcG9ydCBTdHJpbmdJTworZnJvbSBzaXgubW92ZXMgaW1wb3J0IGNTdHJpbmdJTyBhcyBTdHJp
bmdJTwogCi1mcm9tIG1vemxvZyBpbXBvcnQgaGFuZGxlcnMsIHN0cnVjdHVyZWRsb2cKK2ltcG9y
dCBtb2NrCiAKLXN5cy5wYXRoLmluc2VydCgwLCBqb2luKGRpcm5hbWUoX19maWxlX18pLCAiLi4i
LCAiLi4iKSkKK2Zyb20gbW96bG9nIGltcG9ydCBoYW5kbGVycywgc3RydWN0dXJlZGxvZwogCi1m
cm9tIHdwdHJ1bm5lci5mb3JtYXR0ZXJzIGltcG9ydCBXcHRyZXBvcnRGb3JtYXR0ZXIKK2Zyb20g
Li5mb3JtYXR0ZXJzIGltcG9ydCB3cHRyZXBvcnQKK2Zyb20gLi5mb3JtYXR0ZXJzLndwdHJlcG9y
dCBpbXBvcnQgV3B0cmVwb3J0Rm9ybWF0dGVyCiAKIAogZGVmIHRlc3Rfd3B0cmVwb3J0X3J1bnRp
bWUoY2FwZmQpOgpAQCAtNjIsMyArNjEsMTA4IEBAIGRlZiB0ZXN0X3dwdHJlcG9ydF9ydW5faW5m
b19vcHRpb25hbChjYXBmZCk6CiAgICAgb3V0cHV0LnNlZWsoMCkKICAgICBvdXRwdXRfb2JqID0g
anNvbi5sb2FkKG91dHB1dCkKICAgICBhc3NlcnQgInJ1bl9pbmZvIiBub3QgaW4gb3V0cHV0X29i
aiBvciBvdXRwdXRfb2JqWyJydW5faW5mbyJdID09IHt9CisKKworZGVmIHRlc3Rfd3B0cmVwb3J0
X2xvbmVfc3Vycm9nYXRlKGNhcGZkKToKKyAgICBvdXRwdXQgPSBTdHJpbmdJTygpCisgICAgbG9n
Z2VyID0gc3RydWN0dXJlZGxvZy5TdHJ1Y3R1cmVkTG9nZ2VyKCJ0ZXN0X2EiKQorICAgIGxvZ2dl
ci5hZGRfaGFuZGxlcihoYW5kbGVycy5TdHJlYW1IYW5kbGVyKG91dHB1dCwgV3B0cmVwb3J0Rm9y
bWF0dGVyKCkpKQorCisgICAgIyBvdXRwdXQgYSBidW5jaCBvZiBzdHVmZgorICAgIGxvZ2dlci5z
dWl0ZV9zdGFydChbInRlc3QtaWQtMSJdKSAgIyBubyBydW5faW5mbyBhcmchCisgICAgbG9nZ2Vy
LnRlc3Rfc3RhcnQoInRlc3QtaWQtMSIpCisgICAgbG9nZ2VyLnRlc3Rfc3RhdHVzKCJ0ZXN0LWlk
LTEiLAorICAgICAgICAgICAgICAgICAgICAgICBzdWJ0ZXN0PXUiTmFtZSB3aXRoIHN1cnJvZ2F0
ZVx1RDgwMCIsCisgICAgICAgICAgICAgICAgICAgICAgIHN0YXR1cz0iRkFJTCIsCisgICAgICAg
ICAgICAgICAgICAgICAgIG1lc3NhZ2U9dSJcVTAwMDFGNjAxIFx1REUwQVx1RDgzRCIpCisgICAg
bG9nZ2VyLnRlc3RfZW5kKCJ0ZXN0LWlkLTEiLAorICAgICAgICAgICAgICAgICAgICBzdGF0dXM9
IlBBU1MiLAorICAgICAgICAgICAgICAgICAgICBtZXNzYWdlPXUiXHVERTBBXHVEODNEIFxVMDAw
MUY2MDEiKQorICAgIGxvZ2dlci5zdWl0ZV9lbmQoKQorCisgICAgIyBjaGVjayBub3RoaW5nIGdv
dCBvdXRwdXQgdG8gc3Rkb3V0L3N0ZGVycgorICAgICMgKG5vdGUgdGhhdCBtb3psb2cgb3V0cHV0
cyBleGNlcHRpb25zIGR1cmluZyBoYW5kbGluZyB0byBzdGRlcnIhKQorICAgIGNhcHR1cmVkID0g
Y2FwZmQucmVhZG91dGVycigpCisgICAgYXNzZXJ0IGNhcHR1cmVkLm91dCA9PSAiIgorICAgIGFz
c2VydCBjYXB0dXJlZC5lcnIgPT0gIiIKKworICAgICMgY2hlY2sgdGhlIGFjdHVhbCBvdXRwdXQg
b2YgdGhlIGZvcm1hdHRlcgorICAgIG91dHB1dC5zZWVrKDApCisgICAgb3V0cHV0X29iaiA9IGpz
b24ubG9hZChvdXRwdXQpCisgICAgdGVzdCA9IG91dHB1dF9vYmpbInJlc3VsdHMiXVswXQorICAg
IGFzc2VydCB0ZXN0WyJtZXNzYWdlIl0gPT0gdSJVK2RlMGFVK2Q4M2QgXFUwMDAxRjYwMSIKKyAg
ICBzdWJ0ZXN0ID0gdGVzdFsic3VidGVzdHMiXVswXQorICAgIGFzc2VydCBzdWJ0ZXN0WyJuYW1l
Il0gPT0gdSJOYW1lIHdpdGggc3Vycm9nYXRlVStkODAwIgorICAgIGFzc2VydCBzdWJ0ZXN0WyJt
ZXNzYWdlIl0gPT0gdSJcVTAwMDFGNjAxIFUrZGUwYVUrZDgzZCIKKworCitkZWYgdGVzdF93cHRy
ZXBvcnRfbG9uZV9zdXJyb2dhdGVfdWNzMihjYXBmZCk6CisgICAgIyBTaW5jZSBVQ1M0IGlzIGEg
c3VwZXJzZXQgb2YgVUNTMiB3ZSBjYW4gbWVhbmluZ2Z1bGx5IHRlc3QgdGhlIFVDUzIgY29kZSBv
biBhCisgICAgIyBVQ1M0IGJ1aWxkLCBidXQgbm90IHRoZSByZXZlcnNlLiBIb3dldmVyIFVDUzIg
aXMgaGFyZGVyIHRvIGhhbmRsZSBhbmQgVUNTNCBpcworICAgICMgdGhlIGNvbW1vbmVzdCAoYW5k
IHNlbnNpYmxlKSBjb25maWd1cmF0aW9uLCBzbyB0aGF0J3MgT0suCisgICAgb3V0cHV0ID0gU3Ry
aW5nSU8oKQorICAgIGxvZ2dlciA9IHN0cnVjdHVyZWRsb2cuU3RydWN0dXJlZExvZ2dlcigidGVz
dF9hIikKKyAgICBsb2dnZXIuYWRkX2hhbmRsZXIoaGFuZGxlcnMuU3RyZWFtSGFuZGxlcihvdXRw
dXQsIFdwdHJlcG9ydEZvcm1hdHRlcigpKSkKKworICAgIHdpdGggbW9jay5wYXRjaC5vYmplY3Qo
d3B0cmVwb3J0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3N1cnJvZ2F0ZV9yZXBsYWNl
bWVudCcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICB3cHRyZXBvcnQuU3Vycm9nYXRlUmVw
bGFjZW1lbnRVY3MyKCkpOgorICAgICAgICAjIG91dHB1dCBhIGJ1bmNoIG9mIHN0dWZmCisgICAg
ICAgIGxvZ2dlci5zdWl0ZV9zdGFydChbInRlc3QtaWQtMSJdKSAgIyBubyBydW5faW5mbyBhcmch
CisgICAgICAgIGxvZ2dlci50ZXN0X3N0YXJ0KCJ0ZXN0LWlkLTEiKQorICAgICAgICBsb2dnZXIu
dGVzdF9zdGF0dXMoInRlc3QtaWQtMSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICBzdWJ0
ZXN0PXUiTmFtZSB3aXRoIHN1cnJvZ2F0ZVx1RDgwMCIsCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICBzdGF0dXM9IkZBSUwiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgbWVzc2FnZT11
IlxVMDAwMUY2MDEgXHVERTBBXHVEODNEIFx1RDgzRFx1REUwQSIpCisgICAgICAgIGxvZ2dlci50
ZXN0X2VuZCgidGVzdC1pZC0xIiwKKyAgICAgICAgICAgICAgICAgICAgICAgIHN0YXR1cz0iUEFT
UyIsCisgICAgICAgICAgICAgICAgICAgICAgICBtZXNzYWdlPXUiXHVERTBBXHVEODNEIFx1RDgz
RFx1REUwQSBcVTAwMDFGNjAxIikKKyAgICAgICAgbG9nZ2VyLnN1aXRlX2VuZCgpCisKKyAgICAj
IGNoZWNrIG5vdGhpbmcgZ290IG91dHB1dCB0byBzdGRvdXQvc3RkZXJyCisgICAgIyAobm90ZSB0
aGF0IG1vemxvZyBvdXRwdXRzIGV4Y2VwdGlvbnMgZHVyaW5nIGhhbmRsaW5nIHRvIHN0ZGVyciEp
CisgICAgY2FwdHVyZWQgPSBjYXBmZC5yZWFkb3V0ZXJyKCkKKyAgICBhc3NlcnQgY2FwdHVyZWQu
b3V0ID09ICIiCisgICAgYXNzZXJ0IGNhcHR1cmVkLmVyciA9PSAiIgorCisgICAgIyBjaGVjayB0
aGUgYWN0dWFsIG91dHB1dCBvZiB0aGUgZm9ybWF0dGVyCisgICAgb3V0cHV0LnNlZWsoMCkKKyAg
ICBvdXRwdXRfb2JqID0ganNvbi5sb2FkKG91dHB1dCkKKyAgICB0ZXN0ID0gb3V0cHV0X29ialsi
cmVzdWx0cyJdWzBdCisgICAgYXNzZXJ0IHRlc3RbIm1lc3NhZ2UiXSA9PSB1IlUrZGUwYVUrZDgz
ZCBcVTAwMDFmNjBhIFxVMDAwMUY2MDEiCisgICAgc3VidGVzdCA9IHRlc3RbInN1YnRlc3RzIl1b
MF0KKyAgICBhc3NlcnQgc3VidGVzdFsibmFtZSJdID09IHUiTmFtZSB3aXRoIHN1cnJvZ2F0ZVUr
ZDgwMCIKKyAgICBhc3NlcnQgc3VidGVzdFsibWVzc2FnZSJdID09IHUiXFUwMDAxRjYwMSBVK2Rl
MGFVK2Q4M2QgXFUwMDAxZjYwYSIKKworCitkZWYgdGVzdF93cHRyZXBvcnRfa25vd25faW50ZXJt
aXR0ZW50KGNhcGZkKToKKyAgICBvdXRwdXQgPSBTdHJpbmdJTygpCisgICAgbG9nZ2VyID0gc3Ry
dWN0dXJlZGxvZy5TdHJ1Y3R1cmVkTG9nZ2VyKCJ0ZXN0X2EiKQorICAgIGxvZ2dlci5hZGRfaGFu
ZGxlcihoYW5kbGVycy5TdHJlYW1IYW5kbGVyKG91dHB1dCwgV3B0cmVwb3J0Rm9ybWF0dGVyKCkp
KQorCisgICAgIyBvdXRwdXQgYSBidW5jaCBvZiBzdHVmZgorICAgIGxvZ2dlci5zdWl0ZV9zdGFy
dChbInRlc3QtaWQtMSJdKSAgIyBubyBydW5faW5mbyBhcmchCisgICAgbG9nZ2VyLnRlc3Rfc3Rh
cnQoInRlc3QtaWQtMSIpCisgICAgbG9nZ2VyLnRlc3Rfc3RhdHVzKCJ0ZXN0LWlkLTEiLAorICAg
ICAgICAgICAgICAgICAgICAgICAiYS1zdWJ0ZXN0IiwKKyAgICAgICAgICAgICAgICAgICAgICAg
c3RhdHVzPSJGQUlMIiwKKyAgICAgICAgICAgICAgICAgICAgICAgZXhwZWN0ZWQ9IlBBU1MiLAor
ICAgICAgICAgICAgICAgICAgICAgICBrbm93bl9pbnRlcm1pdHRlbnQ9WyJGQUlMIl0pCisgICAg
bG9nZ2VyLnRlc3RfZW5kKCJ0ZXN0LWlkLTEiLAorICAgICAgICAgICAgICAgICAgICBzdGF0dXM9
Ik9LIiwpCisgICAgbG9nZ2VyLnN1aXRlX2VuZCgpCisKKyAgICAjIGNoZWNrIG5vdGhpbmcgZ290
IG91dHB1dCB0byBzdGRvdXQvc3RkZXJyCisgICAgIyAobm90ZSB0aGF0IG1vemxvZyBvdXRwdXRz
IGV4Y2VwdGlvbnMgZHVyaW5nIGhhbmRsaW5nIHRvIHN0ZGVyciEpCisgICAgY2FwdHVyZWQgPSBj
YXBmZC5yZWFkb3V0ZXJyKCkKKyAgICBhc3NlcnQgY2FwdHVyZWQub3V0ID09ICIiCisgICAgYXNz
ZXJ0IGNhcHR1cmVkLmVyciA9PSAiIgorCisgICAgIyBjaGVjayB0aGUgYWN0dWFsIG91dHB1dCBv
ZiB0aGUgZm9ybWF0dGVyCisgICAgb3V0cHV0LnNlZWsoMCkKKyAgICBvdXRwdXRfb2JqID0ganNv
bi5sb2FkKG91dHB1dCkKKyAgICB0ZXN0ID0gb3V0cHV0X29ialsicmVzdWx0cyJdWzBdCisgICAg
YXNzZXJ0IHRlc3RbInN0YXR1cyJdID09IHUiT0siCisgICAgc3VidGVzdCA9IHRlc3RbInN1YnRl
c3RzIl1bMF0KKyAgICBhc3NlcnQgc3VidGVzdFsiZXhwZWN0ZWQiXSA9PSB1IlBBU1MiCisgICAg
YXNzZXJ0IHN1YnRlc3RbImtub3duX2ludGVybWl0dGVudCJdID09IFt1J0ZBSUwnXQpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93
cHRydW5uZXIvd3B0cnVubmVyL3Rlc3RzL3Rlc3RfbWFuaWZlc3RleHBlY3RlZC5weSBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dw
dHJ1bm5lci90ZXN0cy90ZXN0X21hbmlmZXN0ZXhwZWN0ZWQucHkKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNTI1OTE1
ZDE4MzJhYzhhZjE5NTdhNzk5NjE1OTY5ZTA1OGVlZmNhNQotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVy
L3dwdHJ1bm5lci90ZXN0cy90ZXN0X21hbmlmZXN0ZXhwZWN0ZWQucHkKQEAgLTAsMCArMSwzNyBA
QAoraW1wb3J0IHN5cworZnJvbSBpbyBpbXBvcnQgQnl0ZXNJTworCitpbXBvcnQgcHl0ZXN0CisK
K2Zyb20gLi4gaW1wb3J0IG1hbmlmZXN0ZXhwZWN0ZWQKKworCitAcHl0ZXN0Lm1hcmsueGZhaWwo
c3lzLnZlcnNpb25bMF0gPT0gIjMiLAorICAgICAgICAgICAgICAgICAgIHJlYXNvbj0iYnl0ZXMv
dGV4dCBjb25mdXNpb24gaW4gcHkzIikKK0BweXRlc3QubWFyay5wYXJhbWV0cml6ZSgiZnV6enks
IGV4cGVjdGVkIiwgWworICAgIChiInJlZi5odG1sOjE7MjAwIiwgWygicmVmLmh0bWwiLCAoKDEs
IDEpLCAoMjAwLCAyMDApKSldKSwKKyAgICAoYiJyZWYuaHRtbDowLTE7MTAwLTIwMCIsIFsoInJl
Zi5odG1sIiwgKCgwLCAxKSwgKDEwMCwgMjAwKSkpXSksCisgICAgKGIiMC0xOzEwMC0yMDAiLCBb
KE5vbmUsICgoMCwgMSksICgxMDAsIDIwMCkpKV0pLAorICAgIChiIm1heERpZmZlcmVuY2U9MTt0
b3RhbFBpeGVscz0yMDAiLCBbKE5vbmUsICgoMSwgMSksICgyMDAsIDIwMCkpKV0pLAorICAgIChi
InRvdGFsUGl4ZWxzPTIwMDttYXhEaWZmZXJlbmNlPTEiLCBbKE5vbmUsICgoMSwgMSksICgyMDAs
IDIwMCkpKV0pLAorICAgIChiInRvdGFsUGl4ZWxzPTIwMDsxIiwgWyhOb25lLCAoKDEsIDEpLCAo
MjAwLCAyMDApKSldKSwKKyAgICAoYiJtYXhEaWZmZXJlbmNlPTE7MjAwIiwgWyhOb25lLCAoKDEs
IDEpLCAoMjAwLCAyMDApKSldKSwKKyAgICAoYiJ0ZXN0Lmh0bWw9PXJlZi5odG1sOm1heERpZmZl
cmVuY2U9MTt0b3RhbFBpeGVscz0yMDAiLAorICAgICBbKCh1InRlc3QuaHRtbCIsIHUicmVmLmh0
bWwiLCAiPT0iKSwgKCgxLCAxKSwgKDIwMCwgMjAwKSkpXSksCisgICAgKGIidGVzdC5odG1sIT1y
ZWYuaHRtbDptYXhEaWZmZXJlbmNlPTE7dG90YWxQaXhlbHM9MjAwIiwKKyAgICAgWygodSJ0ZXN0
Lmh0bWwiLCB1InJlZi5odG1sIiwgIiE9IiksICgoMSwgMSksICgyMDAsIDIwMCkpKV0pLAorICAg
IChiIlt0ZXN0Lmh0bWwhPXJlZi5odG1sOm1heERpZmZlcmVuY2U9MTt0b3RhbFBpeGVscz0yMDAs
IHRlc3QuaHRtbD09cmVmMS5odG1sOm1heERpZmZlcmVuY2U9NS0xMDsxMDBdIiwKKyAgICAgWygo
dSJ0ZXN0Lmh0bWwiLCB1InJlZi5odG1sIiwgIiE9IiksICgoMSwgMSksICgyMDAsIDIwMCkpKSwK
KyAgICAgICgodSJ0ZXN0Lmh0bWwiLCB1InJlZjEuaHRtbCIsICI9PSIpLCAoKDUsMTApLCAoMTAw
LCAxMDApKSldKSwKK10pCitkZWYgdGVzdF9mdXp6eShmdXp6eSwgZXhwZWN0ZWQpOgorICAgIGRh
dGEgPSAiIiIKK1t0ZXN0Lmh0bWxdCisgIGZ1enp5OiAlcyIiIiAlIGZ1enp5CisgICAgZiA9IEJ5
dGVzSU8oZGF0YSkKKyAgICBtYW5pZmVzdCA9IG1hbmlmZXN0ZXhwZWN0ZWQuc3RhdGljLmNvbXBp
bGUoZiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge30s
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGFfY2xz
X2dldHRlcj1tYW5pZmVzdGV4cGVjdGVkLmRhdGFfY2xzX2dldHRlciwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGVzdF9wYXRoPSJ0ZXN0L3Rlc3QuaHRt
bCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVybF9i
YXNlPSIvIikKKyAgICBhc3NlcnQgbWFuaWZlc3QuZ2V0X3Rlc3QoIi90ZXN0L3Rlc3QuaHRtbCIp
LmZ1enp5ID09IGV4cGVjdGVkCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvdGVzdHMvdGVzdF9w
cm9kdWN0cy5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci90ZXN0cy90ZXN0X3Byb2R1Y3RzLnB5CmluZGV4IDQ0
MWM4M2Y3MzVlZGNhNmFkYWMwMmFhMjU0YmU2ZTQ4MzBjMGFlN2UuLjVkMmJjZjA3NWQwZjU3MmU4
OTcyZWJhNWZkYjRhNWJkMzZiNWRiNzUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci90ZXN0cy90
ZXN0X3Byb2R1Y3RzLnB5CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci90ZXN0cy90ZXN0X3Byb2R1Y3RzLnB5
CkBAIC0xLDE3ICsxLDExIEBACi1pbXBvcnQgc3lzCi0KIGZyb20gb3MucGF0aCBpbXBvcnQgam9p
biwgZGlybmFtZQogCiBpbXBvcnQgbW9jawogaW1wb3J0IHB5dGVzdAogCiBmcm9tIC5iYXNlIGlt
cG9ydCBhbGxfcHJvZHVjdHMsIGFjdGl2ZV9wcm9kdWN0cwotCi1zeXMucGF0aC5pbnNlcnQoMCwg
am9pbihkaXJuYW1lKF9fZmlsZV9fKSwgIi4uIiwgIi4uIiwgIi4uIiwgIi4uIikpICAjIHJlcG8g
cm9vdAotZnJvbSB0b29scyBpbXBvcnQgbG9jYWxwYXRocyAgIyBub3FhOiBmbGFrZTgKLQotZnJv
bSB3cHRydW5uZXIgaW1wb3J0IGVudmlyb25tZW50Ci1mcm9tIHdwdHJ1bm5lciBpbXBvcnQgcHJv
ZHVjdHMKK2Zyb20gLi4gaW1wb3J0IGVudmlyb25tZW50Citmcm9tIC4uIGltcG9ydCBwcm9kdWN0
cwogCiB0ZXN0X3BhdGhzID0geyIvIjogeyJ0ZXN0c19wYXRoIjogam9pbihkaXJuYW1lKF9fZmls
ZV9fKSwgIi4uIiwgIi4uIiwgIi4uIiwgIi4uIil9fSAgIyByZXBvIHJvb3QKIGVudmlyb25tZW50
LmRvX2RlbGF5ZWRfaW1wb3J0cyhOb25lLCB0ZXN0X3BhdGhzKQpAQCAtNDYsNiArNDAsNyBAQCBk
ZWYgdGVzdF9zZXJ2ZXJfc3RhcnRfY29uZmlnKHByb2R1Y3QpOgogCiAgICAgd2l0aCBtb2NrLnBh
dGNoLm9iamVjdChlbnZpcm9ubWVudC5zZXJ2ZSwgInN0YXJ0IikgYXMgc3RhcnQ6CiAgICAgICAg
IHdpdGggZW52aXJvbm1lbnQuVGVzdEVudmlyb25tZW50KHRlc3RfcGF0aHMsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEsCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIEZhbHNlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBOb25lLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBlbnZfb3B0aW9ucywKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci90ZXN0cy90ZXN0X3N0YWJp
bGl0eS5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvd3B0cnVubmVyL3dwdHJ1bm5lci90ZXN0cy90ZXN0X3N0YWJpbGl0eS5weQppbmRleCA3MmNm
ZjIxMDE2YThlNTEwMzZiYjk5ZTQ2YjI3Y2I3MGJiZjA0NGI5Li40NzQwNTZkZGU2YzY3YmIwYWFk
MjEwMDYxM2U2Y2EzMzE5NjIzOTYyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvdGVzdHMvdGVz
dF9zdGFiaWxpdHkucHkKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3Rlc3RzL3Rlc3Rfc3RhYmlsaXR5LnB5
CkBAIC0xLDEyICsxLDMxIEBACi1pbXBvcnQgc3lzCi1mcm9tIG9zLnBhdGggaW1wb3J0IGRpcm5h
bWUsIGpvaW4KK2Zyb20gLi4gaW1wb3J0IHN0YWJpbGl0eQogCi1zeXMucGF0aC5pbnNlcnQoMCwg
am9pbihkaXJuYW1lKF9fZmlsZV9fKSwgIi4uIiwgIi4uIikpCi0KLWZyb20gd3B0cnVubmVyIGlt
cG9ydCBzdGFiaWxpdHkKIAogZGVmIHRlc3RfaXNfaW5jb25zaXN0ZW50KCk6CiAgICAgYXNzZXJ0
IHN0YWJpbGl0eS5pc19pbmNvbnNpc3RlbnQoeyJQQVNTIjogMTB9LCAxMCkgaXMgRmFsc2UKICAg
ICBhc3NlcnQgc3RhYmlsaXR5LmlzX2luY29uc2lzdGVudCh7IlBBU1MiOiA5fSwgMTApIGlzIFRy
dWUKICAgICBhc3NlcnQgc3RhYmlsaXR5LmlzX2luY29uc2lzdGVudCh7IlBBU1MiOiA5LCAiRkFJ
TCI6IDF9LCAxMCkgaXMgVHJ1ZQogICAgIGFzc2VydCBzdGFiaWxpdHkuaXNfaW5jb25zaXN0ZW50
KHsiUEFTUyI6IDgsICJGQUlMIjogMX0sIDEwKSBpcyBUcnVlCisKKworZGVmIHRlc3RfZmluZF9z
bG93X3N0YXR1cygpOgorICAgIGFzc2VydCBzdGFiaWxpdHkuZmluZF9zbG93X3N0YXR1cyh7Cisg
ICAgICAgICJsb25nZXN0X2R1cmF0aW9uIjogeyJUSU1FT1VUIjogMTB9LAorICAgICAgICAidGlt
ZW91dCI6IDEwfSkgaXMgTm9uZQorICAgIGFzc2VydCBzdGFiaWxpdHkuZmluZF9zbG93X3N0YXR1
cyh7CisgICAgICAgICJsb25nZXN0X2R1cmF0aW9uIjogeyJDUkFTSCI6IDEwfSwKKyAgICAgICAg
InRpbWVvdXQiOiAxMH0pIGlzIE5vbmUKKyAgICBhc3NlcnQgc3RhYmlsaXR5LmZpbmRfc2xvd19z
dGF0dXMoeworICAgICAgICAibG9uZ2VzdF9kdXJhdGlvbiI6IHsiRVJST1IiOiAxMH0sCisgICAg
ICAgICJ0aW1lb3V0IjogMTB9KSBpcyBOb25lCisgICAgYXNzZXJ0IHN0YWJpbGl0eS5maW5kX3Ns
b3dfc3RhdHVzKHsKKyAgICAgICAgImxvbmdlc3RfZHVyYXRpb24iOiB7IlBBU1MiOiAxfSwKKyAg
ICAgICAgInRpbWVvdXQiOiAxMH0pIGlzIE5vbmUKKyAgICBhc3NlcnQgc3RhYmlsaXR5LmZpbmRf
c2xvd19zdGF0dXMoeworICAgICAgICAibG9uZ2VzdF9kdXJhdGlvbiI6IHsiUEFTUyI6IDgxfSwK
KyAgICAgICAgInRpbWVvdXQiOiAxMDB9KSA9PSAiUEFTUyIKKyAgICBhc3NlcnQgc3RhYmlsaXR5
LmZpbmRfc2xvd19zdGF0dXMoeworICAgICAgICAibG9uZ2VzdF9kdXJhdGlvbiI6IHsiVElNRU9V
VCI6IDEwLCAiRkFJTCI6IDgxfSwKKyAgICAgICAgInRpbWVvdXQiOiAxMDB9KSA9PSAiRkFJTCIK
KyAgICBhc3NlcnQgc3RhYmlsaXR5LmZpbmRfc2xvd19zdGF0dXMoeworICAgICAgICAibG9uZ2Vz
dF9kdXJhdGlvbiI6IHsiU0tJUCI6IDB9fSkgaXMgTm9uZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVu
bmVyL3Rlc3RzL3Rlc3RfdGVzdGxvYWRlci5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci90ZXN0cy90ZXN0X3Rl
c3Rsb2FkZXIucHkKaW5kZXggNTU2YjJiN2YzZmE0ODIxMmZiZjljMmIwMjc5NzkzZjJlYzQ4YmFj
Yi4uZTg1N2NkNDNkYjZkMjgxZjk1NDE0MjMwZjUyYzk4NGFhZDkxNTExOCAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5u
ZXIvd3B0cnVubmVyL3Rlc3RzL3Rlc3RfdGVzdGxvYWRlci5weQorKysgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIv
dGVzdHMvdGVzdF90ZXN0bG9hZGVyLnB5CkBAIC0xLDE0ICsxLDEzIEBACiBmcm9tIF9fZnV0dXJl
X18gaW1wb3J0IHVuaWNvZGVfbGl0ZXJhbHMKIAotaW1wb3J0IG9zCiBpbXBvcnQgc3lzCiBpbXBv
cnQgdGVtcGZpbGUKIAotc3lzLnBhdGguaW5zZXJ0KDAsIG9zLnBhdGguam9pbihvcy5wYXRoLmRp
cm5hbWUoX19maWxlX18pLCAiLi4iLCAiLi4iKSkKK2ltcG9ydCBweXRlc3QKIAogZnJvbSBtb3ps
b2cgaW1wb3J0IHN0cnVjdHVyZWQKLWZyb20gd3B0cnVubmVyLnRlc3Rsb2FkZXIgaW1wb3J0IFRl
c3RGaWx0ZXIgYXMgRmlsdGVyCi1mcm9tIC50ZXN0X2NodW5rZXIgaW1wb3J0IG1ha2VfbW9ja19t
YW5pZmVzdAorZnJvbSAuLnRlc3Rsb2FkZXIgaW1wb3J0IFRlc3RGaWx0ZXIgYXMgRmlsdGVyCitm
cm9tIC50ZXN0X3dwdHRlc3QgaW1wb3J0IG1ha2VfbW9ja19tYW5pZmVzdAogCiBzdHJ1Y3R1cmVk
LnNldF9kZWZhdWx0X2xvZ2dlcihzdHJ1Y3R1cmVkLnN0cnVjdHVyZWRsb2cuU3RydWN0dXJlZExv
Z2dlcigiVGVzdExvYWRlciIpKQogCkBAIC0xOSw2ICsxOCwxMCBAQCBza2lwOiB0cnVlCiAiIiIK
IAogCitAcHl0ZXN0Lm1hcmsueGZhaWwoc3lzLnBsYXRmb3JtID09ICJ3aW4zMiIsCisgICAgICAg
ICAgICAgICAgICAgcmVhc29uPSJOYW1lZFRlbXBvcmFyeUZpbGUgY2Fubm90IGJlIHJlb3BlbmVk
IG9uIFdpbjMyIikKK0BweXRlc3QubWFyay54ZmFpbChzeXMudmVyc2lvblswXSA9PSAiMyIsCisg
ICAgICAgICAgICAgICAgICAgcmVhc29uPSJ3cHRtYW5pZmVzdC5wYXJzZXIgZG9lc24ndCBzdXBw
b3J0IHB5MyIpCiBkZWYgdGVzdF9maWx0ZXJfdW5pY29kZSgpOgogICAgIHRlc3RzID0gbWFrZV9t
b2NrX21hbmlmZXN0KCgidGVzdCIsICJhIiwgMTApLCAoInRlc3QiLCAiYS9iIiwgMTApLAogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICgidGVzdCIsICJjIiwgMTApKQpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRy
dW5uZXIvd3B0cnVubmVyL3Rlc3RzL3Rlc3RfdXBkYXRlLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3Rlc3Rz
L3Rlc3RfdXBkYXRlLnB5CmluZGV4IDVjNjU0Yzk5YTQ4MWM4NzA5MTc2ZWE5MjEwNTA4YmMyMzg4
ZDJiMmMuLjVkOTAwYTNkNmM5Y2QyMzY5NmZlMGQyYjdjMjBkOGZmNTE0MmI5ZTUgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0
cnVubmVyL3dwdHJ1bm5lci90ZXN0cy90ZXN0X3VwZGF0ZS5weQorKysgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIv
dGVzdHMvdGVzdF91cGRhdGUucHkKQEAgLTEsMjggKzEsMjggQEAKIGltcG9ydCBqc29uCiBpbXBv
cnQgbW9jawogaW1wb3J0IG9zCitpbXBvcnQgcHl0ZXN0CiBpbXBvcnQgc3lzCiBmcm9tIGlvIGlt
cG9ydCBCeXRlc0lPCiAKIGZyb20gLi4gaW1wb3J0IG1ldGFkYXRhLCBtYW5pZmVzdHVwZGF0ZQor
ZnJvbSAuLnVwZGF0ZS51cGRhdGUgaW1wb3J0IFdQVFVwZGF0ZQorZnJvbSAuLnVwZGF0ZS5iYXNl
IGltcG9ydCBTdGVwUnVubmVyLCBTdGVwCiBmcm9tIG1vemxvZyBpbXBvcnQgc3RydWN0dXJlZGxv
ZywgaGFuZGxlcnMsIGZvcm1hdHRlcnMKIAotc3lzLnBhdGguaW5zZXJ0KDAsIG9zLnBhdGguam9p
bihvcy5wYXRoLmRpcm5hbWUoX19maWxlX18pLCBvcy5wYXJkaXIsIG9zLnBhcmRpciwgb3MucGFy
ZGlyKSkKK2hlcmUgPSBvcy5wYXRoLmRpcm5hbWUoX19maWxlX18pCitzeXMucGF0aC5pbnNlcnQo
MCwgb3MucGF0aC5qb2luKGhlcmUsIG9zLnBhcmRpciwgb3MucGFyZGlyLCBvcy5wYXJkaXIpKQog
ZnJvbSBtYW5pZmVzdCBpbXBvcnQgbWFuaWZlc3QsIGl0ZW0gYXMgbWFuaWZlc3RfaXRlbQogCiAK
LWRlZiByZWxfcGF0aF90b191cmwocmVsX3BhdGgsIHVybF9iYXNlPSIvIik6CitkZWYgcmVsX3Bh
dGhfdG9fdGVzdF91cmwocmVsX3BhdGgpOgogICAgIGFzc2VydCBub3Qgb3MucGF0aC5pc2Ficyhy
ZWxfcGF0aCkKLSAgICBpZiB1cmxfYmFzZVswXSAhPSAiLyI6Ci0gICAgICAgIHVybF9iYXNlID0g
Ii8iICsgdXJsX2Jhc2UKLSAgICBpZiB1cmxfYmFzZVstMV0gIT0gIi8iOgotICAgICAgICB1cmxf
YmFzZSArPSAiLyIKLSAgICByZXR1cm4gdXJsX2Jhc2UgKyByZWxfcGF0aC5yZXBsYWNlKG9zLnNl
cCwgIi8iKQorICAgIHJldHVybiByZWxfcGF0aC5yZXBsYWNlKG9zLnNlcCwgIi8iKQogCiAKIGRl
ZiBTb3VyY2VGaWxlV2l0aFRlc3QocGF0aCwgaGFzaCwgY2xzLCAqYXJncyk6CiAgICAgcyA9IG1v
Y2suTW9jayhyZWxfcGF0aD1wYXRoLCBoYXNoPWhhc2gpCi0gICAgdGVzdCA9IGNscyhzLCByZWxf
cGF0aF90b191cmwocGF0aCksICphcmdzKQorICAgIHRlc3QgPSBjbHMoIi9mb29iYXIiLCBwYXRo
LCAiLyIsIHJlbF9wYXRoX3RvX3Rlc3RfdXJsKHBhdGgpLCAqYXJncykKICAgICBzLm1hbmlmZXN0
X2l0ZW1zID0gbW9jay5Nb2NrKHJldHVybl92YWx1ZT0oY2xzLml0ZW1fdHlwZSwgW3Rlc3RdKSkK
ICAgICByZXR1cm4gcwogCkBAIC0zMSw0MiArMzEsNjggQEAgaXRlbV9jbGFzc2VzID0geyJ0ZXN0
aGFybmVzcyI6IG1hbmlmZXN0X2l0ZW0uVGVzdGhhcm5lc3NUZXN0LAogICAgICAgICAgICAgICAg
ICJyZWZ0ZXN0IjogbWFuaWZlc3RfaXRlbS5SZWZUZXN0LAogICAgICAgICAgICAgICAgICJyZWZ0
ZXN0X25vZGUiOiBtYW5pZmVzdF9pdGVtLlJlZlRlc3ROb2RlLAogICAgICAgICAgICAgICAgICJt
YW51YWwiOiBtYW5pZmVzdF9pdGVtLk1hbnVhbFRlc3QsCi0gICAgICAgICAgICAgICAgInN0dWIi
OiBtYW5pZmVzdF9pdGVtLlN0dWIsCi0gICAgICAgICAgICAgICAgIndkc3BlYyI6IG1hbmlmZXN0
X2l0ZW0uV2ViZHJpdmVyU3BlY1Rlc3QsCisgICAgICAgICAgICAgICAgIndkc3BlYyI6IG1hbmlm
ZXN0X2l0ZW0uV2ViRHJpdmVyU3BlY1Rlc3QsCiAgICAgICAgICAgICAgICAgImNvbmZvcm1hbmNl
Y2hlY2tlciI6IG1hbmlmZXN0X2l0ZW0uQ29uZm9ybWFuY2VDaGVja2VyVGVzdCwKICAgICAgICAg
ICAgICAgICAidmlzdWFsIjogbWFuaWZlc3RfaXRlbS5WaXN1YWxUZXN0LAogICAgICAgICAgICAg
ICAgICJzdXBwb3J0IjogbWFuaWZlc3RfaXRlbS5TdXBwb3J0RmlsZX0KIAogCi1kZWYgdXBkYXRl
KHRlc3RzLCAqbG9ncyk6CitkZWZhdWx0X3J1bl9pbmZvID0geyJkZWJ1ZyI6IEZhbHNlLCAib3Mi
OiAibGludXgiLCAidmVyc2lvbiI6ICIxOC4wNCIsICJwcm9jZXNzb3IiOiAieDg2XzY0IiwgImJp
dHMiOiA2NH0KK3Rlc3RfaWQgPSAiL3BhdGgvdG8vdGVzdC5odG0iCitkaXJfaWQgPSAicGF0aC90
by9fX2Rpcl9fIgorCisKK2RlZiByZXNldF9nbG9iYWxzKCk6CisgICAgbWV0YWRhdGEucHJvcF9p
bnRlcm4uY2xlYXIoKQorICAgIG1ldGFkYXRhLnJ1bl9pbmZvX2ludGVybi5jbGVhcigpCisgICAg
bWV0YWRhdGEuc3RhdHVzX2ludGVybi5jbGVhcigpCisKKworZGVmIGdldF9ydW5faW5mbyhvdmVy
cmlkZXMpOgorICAgIHJ1bl9pbmZvID0gZGVmYXVsdF9ydW5faW5mby5jb3B5KCkKKyAgICBydW5f
aW5mby51cGRhdGUob3ZlcnJpZGVzKQorICAgIHJldHVybiBydW5faW5mbworCisKK2RlZiB1cGRh
dGUodGVzdHMsICpsb2dzLCAqKmt3YXJncyk6CisgICAgZnVsbF91cGRhdGUgPSBrd2FyZ3MucG9w
KCJmdWxsX3VwZGF0ZSIsIEZhbHNlKQorICAgIGRpc2FibGVfaW50ZXJtaXR0ZW50ID0ga3dhcmdz
LnBvcCgiZGlzYWJsZV9pbnRlcm1pdHRlbnQiLCBGYWxzZSkKKyAgICB1cGRhdGVfaW50ZXJtaXR0
ZW50ID0ga3dhcmdzLnBvcCgidXBkYXRlX2ludGVybWl0dGVudCIsIEZhbHNlKQorICAgIHJlbW92
ZV9pbnRlcm1pdHRlbnQgPSBrd2FyZ3MucG9wKCJyZW1vdmVfaW50ZXJtaXR0ZW50IiwgRmFsc2Up
CisgICAgYXNzZXJ0IG5vdCBrd2FyZ3MKICAgICBpZF90ZXN0X21hcCwgdXBkYXRlciA9IGNyZWF0
ZV91cGRhdGVyKHRlc3RzKQorCiAgICAgZm9yIGxvZyBpbiBsb2dzOgogICAgICAgICBsb2cgPSBj
cmVhdGVfbG9nKGxvZykKICAgICAgICAgdXBkYXRlci51cGRhdGVfZnJvbV9sb2cobG9nKQogCisg
ICAgdXBkYXRlX3Byb3BlcnRpZXMgPSAoWyJkZWJ1ZyIsICJvcyIsICJ2ZXJzaW9uIiwgInByb2Nl
c3NvciJdLAorICAgICAgICAgICAgICAgICAgICAgICAgIHsib3MiOiBbInZlcnNpb24iXSwgInBy
b2Nlc3NvciI6ICJiaXRzIn0pCisKKyAgICBleHBlY3RlZF9kYXRhID0ge30KKyAgICBtZXRhZGF0
YS5sb2FkX2V4cGVjdGVkID0gbGFtYmRhIF8sIF9fLCB0ZXN0X3BhdGgsICphcmdzOiBleHBlY3Rl
ZF9kYXRhLmdldCh0ZXN0X3BhdGgpCisgICAgZm9yIHRlc3RfcGF0aCwgdGVzdF9pZHMsIHRlc3Rf
dHlwZSwgbWFuaWZlc3Rfc3RyIGluIHRlc3RzOgorICAgICAgICBleHBlY3RlZF9kYXRhW3Rlc3Rf
cGF0aF0gPSBtYW5pZmVzdHVwZGF0ZS5jb21waWxlKEJ5dGVzSU8obWFuaWZlc3Rfc3RyKSwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0
ZXN0X3BhdGgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIi8iLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHVwZGF0ZV9wcm9wZXJ0aWVzLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVwZGF0ZV9pbnRlcm1pdHRl
bnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgcmVtb3ZlX2ludGVybWl0dGVudCkKKwogICAgIHJldHVybiBsaXN0KG1ldGFkYXRhLnVw
ZGF0ZV9yZXN1bHRzKGlkX3Rlc3RfbWFwLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIFsiZGVidWciLCAib3MiLCAidmVyc2lvbiIsICJwcm9jZXNzb3IiLCAiYml0cyJd
LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsiZGVidWciXSwKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBGYWxzZSkpCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXBkYXRlX3Byb3BlcnRpZXMsCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZnVsbF91cGRhdGUsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzYWJsZV9pbnRlcm1pdHRlbnQsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXBkYXRlX2ludGVybWl0dGVudCwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZW1vdmVfaW50ZXJtaXR0
ZW50KSkKIAogCiBkZWYgY3JlYXRlX3VwZGF0ZXIodGVzdHMsIHVybF9iYXNlPSIvIiwgKiprd2Fy
Z3MpOgogICAgIGlkX3Rlc3RfbWFwID0ge30KICAgICBtID0gY3JlYXRlX3Rlc3RfbWFuaWZlc3Qo
dGVzdHMsIHVybF9iYXNlKQotICAgIGV4cGVjdGVkX2RhdGEgPSB7fQotICAgIG1ldGFkYXRhLmxv
YWRfZXhwZWN0ZWQgPSBsYW1iZGEgXywgX18sIHRlc3RfcGF0aCwgKmFyZ3M6IGV4cGVjdGVkX2Rh
dGFbdGVzdF9wYXRoXQotCi0gICAgZm9yIHRlc3RfcGF0aCwgdGVzdF9pZHMsIHRlc3RfdHlwZSwg
bWFuaWZlc3Rfc3RyIGluIHRlc3RzOgotICAgICAgICB0ZXN0cyA9IGxpc3QobS5pdGVycGF0aCh0
ZXN0X3BhdGgpKQotICAgICAgICBpZiBpc2luc3RhbmNlKHRlc3RfaWRzLCAoc3RyLCB1bmljb2Rl
KSk6Ci0gICAgICAgICAgICB0ZXN0X2lkcyA9IFt0ZXN0X2lkc10KLSAgICAgICAgdGVzdF9kYXRh
ID0gbWV0YWRhdGEuVGVzdEZpbGVEYXRhKCIvIiwgInRlc3RoYXJuZXNzIiwgTm9uZSwgdGVzdF9w
YXRoLCB0ZXN0cykKLSAgICAgICAgZXhwZWN0ZWRfZGF0YVt0ZXN0X3BhdGhdID0gbWFuaWZlc3R1
cGRhdGUuY29tcGlsZShCeXRlc0lPKG1hbmlmZXN0X3N0ciksCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGVzdF9wYXRoLAotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVybF9i
YXNlKQogCi0gICAgICAgIGZvciB0ZXN0X2lkIGluIHRlc3RfaWRzOgotICAgICAgICAgICAgaWRf
dGVzdF9tYXBbdGVzdF9pZF0gPSB0ZXN0X2RhdGEKKyAgICByZXNldF9nbG9iYWxzKCkKKyAgICBp
ZF90ZXN0X21hcCA9IG1ldGFkYXRhLmNyZWF0ZV90ZXN0X3RyZWUoTm9uZSwgbSkKIAogICAgIHJl
dHVybiBpZF90ZXN0X21hcCwgbWV0YWRhdGEuRXhwZWN0ZWRVcGRhdGVyKGlkX3Rlc3RfbWFwLCAq
Kmt3YXJncykKIApAQCAtODksNyArMTE1LDEwIEBAIGRlZiBjcmVhdGVfbG9nKGVudHJpZXMpOgog
CiAKIGRlZiBzdWl0ZV9sb2coZW50cmllcywgcnVuX2luZm89Tm9uZSk6Ci0gICAgcmV0dXJuIChb
KCJzdWl0ZV9zdGFydCIsIHsidGVzdHMiOiBbXSwgInJ1bl9pbmZvIjogcnVuX2luZm8gb3Ige319
KV0gKworICAgIF9ydW5faW5mbyA9IGRlZmF1bHRfcnVuX2luZm8uY29weSgpCisgICAgaWYgcnVu
X2luZm86CisgICAgICAgIF9ydW5faW5mby51cGRhdGUocnVuX2luZm8pCisgICAgcmV0dXJuIChb
KCJzdWl0ZV9zdGFydCIsIHsidGVzdHMiOiBbXSwgInJ1bl9pbmZvIjogX3J1bl9pbmZvfSldICsK
ICAgICAgICAgICAgIGVudHJpZXMgKwogICAgICAgICAgICAgWygic3VpdGVfZW5kIiwge30pXSkK
IApAQCAtOTgsMTQgKzEyNywxNiBAQCBkZWYgY3JlYXRlX3Rlc3RfbWFuaWZlc3QodGVzdHMsIHVy
bF9iYXNlPSIvIik6CiAgICAgc291cmNlX2ZpbGVzID0gW10KICAgICBmb3IgaSwgKHRlc3QsIF8s
IHRlc3RfdHlwZSwgXykgaW4gZW51bWVyYXRlKHRlc3RzKToKICAgICAgICAgaWYgdGVzdF90eXBl
OgotICAgICAgICAgICAgc291cmNlX2ZpbGVzLmFwcGVuZChTb3VyY2VGaWxlV2l0aFRlc3QodGVz
dCwgc3RyKGkpICogNDAsIGl0ZW1fY2xhc3Nlc1t0ZXN0X3R5cGVdKSkKKyAgICAgICAgICAgIHNv
dXJjZV9maWxlcy5hcHBlbmQoKFNvdXJjZUZpbGVXaXRoVGVzdCh0ZXN0LCBzdHIoaSkgKiA0MCwg
aXRlbV9jbGFzc2VzW3Rlc3RfdHlwZV0pLCBUcnVlKSkKICAgICBtID0gbWFuaWZlc3QuTWFuaWZl
c3QoKQogICAgIG0udXBkYXRlKHNvdXJjZV9maWxlcykKICAgICByZXR1cm4gbQogCiAKK0BweXRl
c3QubWFyay54ZmFpbChzeXMudmVyc2lvblswXSA9PSAiMyIsCisgICAgICAgICAgICAgICAgICAg
cmVhc29uPSJtZXRhZGF0YSBkb2Vzbid0IHN1cHBvcnQgcHkzIikKIGRlZiB0ZXN0X3VwZGF0ZV8w
KCk6Ci0gICAgdGVzdHMgPSBbKCJwYXRoL3RvL3Rlc3QuaHRtIiwgWyIvcGF0aC90by90ZXN0Lmh0
bSJdLCAidGVzdGhhcm5lc3MiLAorICAgIHRlc3RzID0gWygicGF0aC90by90ZXN0Lmh0bSIsIFt0
ZXN0X2lkXSwgInRlc3RoYXJuZXNzIiwKICAgICAgICAgICAgICAgIiIiW3Rlc3QuaHRtXQogICBb
dGVzdDFdCiAgICAgZXhwZWN0ZWQ6IEZBSUwiIiIpXQpAQCAtMTE1LDM5ICsxNDYsNjcyIEBAIGRl
ZiB0ZXN0X3VwZGF0ZV8wKCk6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICJzdWJ0ZXN0IjogInRlc3QxIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgInN0YXR1cyI6ICJQQVNTIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgImV4cGVjdGVkIjogIkZBSUwifSksCi0gICAgICAgICAgICAgICAgICAgICAoInRlc3RfZW5k
IiwgeyJ0ZXN0IjogIi9wYXRoL3RvL3Rlc3QuaHRtIiwKKyAgICAgICAgICAgICAgICAgICAgICgi
dGVzdF9lbmQiLCB7InRlc3QiOiAiL3BhdGgvdG8vdGVzdC5odG0iLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAic3RhdHVzIjogIk9LIn0pXSkKKworICAgIHVwZGF0ZWQgPSB1
cGRhdGUodGVzdHMsIGxvZykKKworICAgIGFzc2VydCBsZW4odXBkYXRlZCkgPT0gMQorICAgIGFz
c2VydCB1cGRhdGVkWzBdWzFdLmlzX2VtcHR5CisKKworQHB5dGVzdC5tYXJrLnhmYWlsKHN5cy52
ZXJzaW9uWzBdID09ICIzIiwKKyAgICAgICAgICAgICAgICAgICByZWFzb249Im1ldGFkYXRhIGRv
ZXNuJ3Qgc3VwcG9ydCBweTMiKQorZGVmIHRlc3RfdXBkYXRlXzEoKToKKyAgICB0ZXN0cyA9IFso
InBhdGgvdG8vdGVzdC5odG0iLCBbdGVzdF9pZF0sICJ0ZXN0aGFybmVzcyIsCisgICAgICAgICAg
ICAgICIiIlt0ZXN0Lmh0bV0KKyAgW3Rlc3QxXQorICAgIGV4cGVjdGVkOiBFUlJPUiIiIildCisK
KyAgICBsb2cgPSBzdWl0ZV9sb2coWygidGVzdF9zdGFydCIsIHsidGVzdCI6IHRlc3RfaWR9KSwK
KyAgICAgICAgICAgICAgICAgICAgICgidGVzdF9zdGF0dXMiLCB7InRlc3QiOiB0ZXN0X2lkLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAic3VidGVzdCI6ICJ0ZXN0MSIs
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJzdGF0dXMiOiAiRkFJTCIs
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJleHBlY3RlZCI6ICJFUlJP
UiJ9KSwKKyAgICAgICAgICAgICAgICAgICAgICgidGVzdF9lbmQiLCB7InRlc3QiOiB0ZXN0X2lk
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAic3RhdHVzIjogIk9LIn0pXSkK
KworICAgIHVwZGF0ZWQgPSB1cGRhdGUodGVzdHMsIGxvZykKKworICAgIG5ld19tYW5pZmVzdCA9
IHVwZGF0ZWRbMF1bMV0KKyAgICBhc3NlcnQgbm90IG5ld19tYW5pZmVzdC5pc19lbXB0eQorICAg
IGFzc2VydCBuZXdfbWFuaWZlc3QuZ2V0X3Rlc3QodGVzdF9pZCkuY2hpbGRyZW5bMF0uZ2V0KCJl
eHBlY3RlZCIsIGRlZmF1bHRfcnVuX2luZm8pID09ICJGQUlMIgorCisKK0BweXRlc3QubWFyay54
ZmFpbChzeXMudmVyc2lvblswXSA9PSAiMyIsCisgICAgICAgICAgICAgICAgICAgcmVhc29uPSJt
ZXRhZGF0YSBkb2Vzbid0IHN1cHBvcnQgcHkzIikKK2RlZiB0ZXN0X3VwZGF0ZV9rbm93bl9pbnRl
cm1pdHRlbnRfMSgpOgorICAgIHRlc3RzID0gWygicGF0aC90by90ZXN0Lmh0bSIsIFt0ZXN0X2lk
XSwgInRlc3RoYXJuZXNzIiwKKyAgICAgICAgICAgICAgIiIiW3Rlc3QuaHRtXQorICBbdGVzdDFd
CisgICAgZXhwZWN0ZWQ6IFBBU1MiIiIpXQorCisgICAgbG9nXzAgPSBzdWl0ZV9sb2coWygidGVz
dF9zdGFydCIsIHsidGVzdCI6IHRlc3RfaWR9KSwKKyAgICAgICAgICAgICAgICAgICAgICgidGVz
dF9zdGF0dXMiLCB7InRlc3QiOiB0ZXN0X2lkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAic3VidGVzdCI6ICJ0ZXN0MSIsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICJzdGF0dXMiOiAiRkFJTCIsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICJleHBlY3RlZCI6ICJQQVNTIn0pLAorICAgICAgICAgICAgICAgICAgICAg
KCJ0ZXN0X2VuZCIsIHsidGVzdCI6IHRlc3RfaWQsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICJzdGF0dXMiOiAiT0sifSldKQorCisgICAgbG9nXzEgPSBzdWl0ZV9sb2coWygi
dGVzdF9zdGFydCIsIHsidGVzdCI6IHRlc3RfaWR9KSwKKyAgICAgICAgICAgICAgICAgICAgICgi
dGVzdF9zdGF0dXMiLCB7InRlc3QiOiB0ZXN0X2lkLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAic3VidGVzdCI6ICJ0ZXN0MSIsCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICJzdGF0dXMiOiAiUEFTUyIsCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICJleHBlY3RlZCI6ICJQQVNTIn0pLAorICAgICAgICAgICAgICAgICAg
ICAgKCJ0ZXN0X2VuZCIsIHsidGVzdCI6IHRlc3RfaWQsCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICJzdGF0dXMiOiAiT0sifSldKQorCisgICAgbG9nXzIgPSBzdWl0ZV9sb2co
WygidGVzdF9zdGFydCIsIHsidGVzdCI6IHRlc3RfaWR9KSwKKyAgICAgICAgICAgICAgICAgICAg
ICgidGVzdF9zdGF0dXMiLCB7InRlc3QiOiB0ZXN0X2lkLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAic3VidGVzdCI6ICJ0ZXN0MSIsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICJzdGF0dXMiOiAiUEFTUyIsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICJleHBlY3RlZCI6ICJQQVNTIn0pLAorICAgICAgICAgICAgICAg
ICAgICAgKCJ0ZXN0X2VuZCIsIHsidGVzdCI6IHRlc3RfaWQsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICJzdGF0dXMiOiAiT0sifSldKQorCisgICAgdXBkYXRlZCA9IHVwZGF0
ZSh0ZXN0cywgbG9nXzAsIGxvZ18xLCBsb2dfMiwgdXBkYXRlX2ludGVybWl0dGVudD1UcnVlKQor
CisgICAgbmV3X21hbmlmZXN0ID0gdXBkYXRlZFswXVsxXQorCisgICAgYXNzZXJ0IG5vdCBuZXdf
bWFuaWZlc3QuaXNfZW1wdHkKKyAgICBhc3NlcnQgbmV3X21hbmlmZXN0LmdldF90ZXN0KHRlc3Rf
aWQpLmNoaWxkcmVuWzBdLmdldCgKKyAgICAgICAgImV4cGVjdGVkIiwgZGVmYXVsdF9ydW5faW5m
bykgPT0gWyJQQVNTIiwgIkZBSUwiXQorCisKK0BweXRlc3QubWFyay54ZmFpbChzeXMudmVyc2lv
blswXSA9PSAiMyIsCisgICAgICAgICAgICAgICAgICAgcmVhc29uPSJtZXRhZGF0YSBkb2Vzbid0
IHN1cHBvcnQgcHkzIikKK2RlZiB0ZXN0X3VwZGF0ZV9rbm93bl9pbnRlcm1pdHRlbnRfMigpOgor
ICAgIHRlc3RzID0gWygicGF0aC90by90ZXN0Lmh0bSIsIFt0ZXN0X2lkXSwgInRlc3RoYXJuZXNz
IiwKKyAgICAgICAgICAgICAgIiIiW3Rlc3QuaHRtXQorICBbdGVzdDFdCisgICAgZXhwZWN0ZWQ6
IFBBU1MiIiIpXQorCisgICAgbG9nXzAgPSBzdWl0ZV9sb2coWygidGVzdF9zdGFydCIsIHsidGVz
dCI6IHRlc3RfaWR9KSwKKyAgICAgICAgICAgICAgICAgICAgICgidGVzdF9zdGF0dXMiLCB7InRl
c3QiOiB0ZXN0X2lkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAic3Vi
dGVzdCI6ICJ0ZXN0MSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJz
dGF0dXMiOiAiRkFJTCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJl
eHBlY3RlZCI6ICJQQVNTIn0pLAorICAgICAgICAgICAgICAgICAgICAgKCJ0ZXN0X2VuZCIsIHsi
dGVzdCI6IHRlc3RfaWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJzdGF0
dXMiOiAiT0sifSldKQorCisgICAgdXBkYXRlZCA9IHVwZGF0ZSh0ZXN0cywgbG9nXzAsIHVwZGF0
ZV9pbnRlcm1pdHRlbnQ9VHJ1ZSkKKworICAgIG5ld19tYW5pZmVzdCA9IHVwZGF0ZWRbMF1bMV0K
KworICAgIGFzc2VydCBub3QgbmV3X21hbmlmZXN0LmlzX2VtcHR5CisgICAgYXNzZXJ0IG5ld19t
YW5pZmVzdC5nZXRfdGVzdCh0ZXN0X2lkKS5jaGlsZHJlblswXS5nZXQoCisgICAgICAgICJleHBl
Y3RlZCIsIGRlZmF1bHRfcnVuX2luZm8pID09ICJGQUlMIgorCisKK0BweXRlc3QubWFyay54ZmFp
bChzeXMudmVyc2lvblswXSA9PSAiMyIsCisgICAgICAgICAgICAgICAgICAgcmVhc29uPSJtZXRh
ZGF0YSBkb2Vzbid0IHN1cHBvcnQgcHkzIikKK2RlZiB0ZXN0X3VwZGF0ZV9leGlzdGluZ19rbm93
bl9pbnRlcm1pdHRlbnQoKToKKyAgICB0ZXN0cyA9IFsoInBhdGgvdG8vdGVzdC5odG0iLCBbdGVz
dF9pZF0sICJ0ZXN0aGFybmVzcyIsCisgICAgICAgICAgICAgICIiIlt0ZXN0Lmh0bV0KKyAgW3Rl
c3QxXQorICAgIGV4cGVjdGVkOiBbUEFTUywgRkFJTF0iIiIpXQorCisgICAgbG9nXzAgPSBzdWl0
ZV9sb2coWygidGVzdF9zdGFydCIsIHsidGVzdCI6IHRlc3RfaWR9KSwKKyAgICAgICAgICAgICAg
ICAgICAgICgidGVzdF9zdGF0dXMiLCB7InRlc3QiOiB0ZXN0X2lkLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAic3VidGVzdCI6ICJ0ZXN0MSIsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICJzdGF0dXMiOiAiRVJST1IiLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAiZXhwZWN0ZWQiOiAiUEFTUyIsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICJrbm93bl9pbnRlcm1pdHRlbnQiOiBbIkZBSUwi
XX0pLAorICAgICAgICAgICAgICAgICAgICAgKCJ0ZXN0X2VuZCIsIHsidGVzdCI6IHRlc3RfaWQs
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJzdGF0dXMiOiAiT0sifSldKQor
CisgICAgbG9nXzEgPSBzdWl0ZV9sb2coWygidGVzdF9zdGFydCIsIHsidGVzdCI6IHRlc3RfaWR9
KSwKKyAgICAgICAgICAgICAgICAgICAgICgidGVzdF9zdGF0dXMiLCB7InRlc3QiOiB0ZXN0X2lk
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAic3VidGVzdCI6ICJ0ZXN0
MSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJzdGF0dXMiOiAiUEFT
UyIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJleHBlY3RlZCI6ICJQ
QVNTIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImtub3duX2ludGVy
bWl0dGVudCI6IFsiRkFJTCJdfSksCisgICAgICAgICAgICAgICAgICAgICAoInRlc3RfZW5kIiwg
eyJ0ZXN0IjogdGVzdF9pZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInN0
YXR1cyI6ICJPSyJ9KV0pCisKKyAgICBsb2dfMiA9IHN1aXRlX2xvZyhbKCJ0ZXN0X3N0YXJ0Iiwg
eyJ0ZXN0IjogdGVzdF9pZH0pLAorICAgICAgICAgICAgICAgICAgICAgKCJ0ZXN0X3N0YXR1cyIs
IHsidGVzdCI6IHRlc3RfaWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICJzdWJ0ZXN0IjogInRlc3QxIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgInN0YXR1cyI6ICJQQVNTIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgImV4cGVjdGVkIjogIlBBU1MiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAia25vd25faW50ZXJtaXR0ZW50IjogWyJGQUlMIl19KSwKKyAgICAgICAgICAgICAgICAg
ICAgICgidGVzdF9lbmQiLCB7InRlc3QiOiB0ZXN0X2lkLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAic3RhdHVzIjogIk9LIn0pXSkKKworICAgIHVwZGF0ZWQgPSB1cGRhdGUo
dGVzdHMsIGxvZ18wLCBsb2dfMSwgbG9nXzIsIHVwZGF0ZV9pbnRlcm1pdHRlbnQ9VHJ1ZSkKKwor
ICAgIG5ld19tYW5pZmVzdCA9IHVwZGF0ZWRbMF1bMV0KKyAgICBhc3NlcnQgbm90IG5ld19tYW5p
ZmVzdC5pc19lbXB0eQorICAgIGFzc2VydCBuZXdfbWFuaWZlc3QuZ2V0X3Rlc3QodGVzdF9pZCku
Y2hpbGRyZW5bMF0uZ2V0KAorICAgICAgICAiZXhwZWN0ZWQiLCBkZWZhdWx0X3J1bl9pbmZvKSA9
PSBbIlBBU1MiLCAiRVJST1IiLCAiRkFJTCJdCisKKworQHB5dGVzdC5tYXJrLnhmYWlsKHN5cy52
ZXJzaW9uWzBdID09ICIzIiwKKyAgICAgICAgICAgICAgICAgICByZWFzb249Im1ldGFkYXRhIGRv
ZXNuJ3Qgc3VwcG9ydCBweTMiKQorZGVmIHRlc3RfdXBkYXRlX3JlbW92ZV9wcmV2aW91c19pbnRl
cm1pdHRlbnQoKToKKyAgICB0ZXN0cyA9IFsoInBhdGgvdG8vdGVzdC5odG0iLCBbdGVzdF9pZF0s
ICJ0ZXN0aGFybmVzcyIsCisgICAgICAgICAgICAgICIiIlt0ZXN0Lmh0bV0KKyAgW3Rlc3QxXQor
ICAgIGV4cGVjdGVkOiBbUEFTUywgRkFJTF0iIiIpXQorCisgICAgbG9nXzAgPSBzdWl0ZV9sb2co
WygidGVzdF9zdGFydCIsIHsidGVzdCI6IHRlc3RfaWR9KSwKKyAgICAgICAgICAgICAgICAgICAg
ICgidGVzdF9zdGF0dXMiLCB7InRlc3QiOiB0ZXN0X2lkLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAic3VidGVzdCI6ICJ0ZXN0MSIsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICJzdGF0dXMiOiAiRVJST1IiLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAiZXhwZWN0ZWQiOiAiUEFTUyIsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICJrbm93bl9pbnRlcm1pdHRlbnQiOiBbIkZBSUwiXX0pLAor
ICAgICAgICAgICAgICAgICAgICAgKCJ0ZXN0X2VuZCIsIHsidGVzdCI6IHRlc3RfaWQsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJzdGF0dXMiOiAiT0sifSldKQorCisgICAg
bG9nXzEgPSBzdWl0ZV9sb2coWygidGVzdF9zdGFydCIsIHsidGVzdCI6IHRlc3RfaWR9KSwKKyAg
ICAgICAgICAgICAgICAgICAgICgidGVzdF9zdGF0dXMiLCB7InRlc3QiOiB0ZXN0X2lkLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAic3VidGVzdCI6ICJ0ZXN0MSIsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJzdGF0dXMiOiAiUEFTUyIsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJleHBlY3RlZCI6ICJQQVNTIiwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImtub3duX2ludGVybWl0dGVu
dCI6IFsiRkFJTCJdfSksCisgICAgICAgICAgICAgICAgICAgICAoInRlc3RfZW5kIiwgeyJ0ZXN0
IjogdGVzdF9pZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInN0YXR1cyI6
ICJPSyJ9KV0pCisKKyAgICBsb2dfMiA9IHN1aXRlX2xvZyhbKCJ0ZXN0X3N0YXJ0IiwgeyJ0ZXN0
IjogdGVzdF9pZH0pLAorICAgICAgICAgICAgICAgICAgICAgKCJ0ZXN0X3N0YXR1cyIsIHsidGVz
dCI6IHRlc3RfaWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJzdWJ0
ZXN0IjogInRlc3QxIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInN0
YXR1cyI6ICJQQVNTIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImV4
cGVjdGVkIjogIlBBU1MiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAi
a25vd25faW50ZXJtaXR0ZW50IjogWyJGQUlMIl19KSwKKyAgICAgICAgICAgICAgICAgICAgICgi
dGVzdF9lbmQiLCB7InRlc3QiOiB0ZXN0X2lkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAic3RhdHVzIjogIk9LIn0pXSkKKworICAgIHVwZGF0ZWQgPSB1cGRhdGUodGVzdHMs
CisgICAgICAgICAgICAgICAgICAgICBsb2dfMCwKKyAgICAgICAgICAgICAgICAgICAgIGxvZ18x
LAorICAgICAgICAgICAgICAgICAgICAgbG9nXzIsCisgICAgICAgICAgICAgICAgICAgICB1cGRh
dGVfaW50ZXJtaXR0ZW50PVRydWUsCisgICAgICAgICAgICAgICAgICAgICByZW1vdmVfaW50ZXJt
aXR0ZW50PVRydWUpCisKKyAgICBuZXdfbWFuaWZlc3QgPSB1cGRhdGVkWzBdWzFdCisgICAgYXNz
ZXJ0IG5vdCBuZXdfbWFuaWZlc3QuaXNfZW1wdHkKKyAgICBhc3NlcnQgbmV3X21hbmlmZXN0Lmdl
dF90ZXN0KHRlc3RfaWQpLmNoaWxkcmVuWzBdLmdldCgKKyAgICAgICAgImV4cGVjdGVkIiwgZGVm
YXVsdF9ydW5faW5mbykgPT0gWyJQQVNTIiwgIkVSUk9SIl0KKworCitAcHl0ZXN0Lm1hcmsueGZh
aWwoc3lzLnZlcnNpb25bMF0gPT0gIjMiLAorICAgICAgICAgICAgICAgICAgIHJlYXNvbj0ibWV0
YWRhdGEgZG9lc24ndCBzdXBwb3J0IHB5MyIpCitkZWYgdGVzdF91cGRhdGVfbmV3X3Rlc3Rfd2l0
aF9pbnRlcm1pdHRlbnQoKToKKyAgICB0ZXN0cyA9IFsoInBhdGgvdG8vdGVzdC5odG0iLCBbdGVz
dF9pZF0sICJ0ZXN0aGFybmVzcyIsIE5vbmUpXQorCisgICAgbG9nXzAgPSBzdWl0ZV9sb2coWygi
dGVzdF9zdGFydCIsIHsidGVzdCI6IHRlc3RfaWR9KSwKKyAgICAgICAgICAgICAgICAgICAgICAg
KCJ0ZXN0X3N0YXR1cyIsIHsidGVzdCI6IHRlc3RfaWQsCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgInN1YnRlc3QiOiAidGVzdDEiLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICJzdGF0dXMiOiAiUEFTUyIsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgImV4cGVjdGVkIjogIlBBU1MifSksCisgICAgICAgICAg
ICAgICAgICAgICAgICgidGVzdF9lbmQiLCB7InRlc3QiOiB0ZXN0X2lkLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICJzdGF0dXMiOiAiT0sifSldKQorCisgICAgbG9nXzEg
PSBzdWl0ZV9sb2coWygidGVzdF9zdGFydCIsIHsidGVzdCI6IHRlc3RfaWR9KSwKKyAgICAgICAg
ICAgICAgICAgICAgICAgKCJ0ZXN0X3N0YXR1cyIsIHsidGVzdCI6IHRlc3RfaWQsCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInN1YnRlc3QiOiAidGVzdDEiLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJzdGF0dXMiOiAiUEFTUyIsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImV4cGVjdGVkIjogIlBBU1Mi
fSksCisgICAgICAgICAgICAgICAgICAgICAgICgidGVzdF9lbmQiLCB7InRlc3QiOiB0ZXN0X2lk
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJzdGF0dXMiOiAiT0sifSld
KQorCisgICAgbG9nXzIgPSBzdWl0ZV9sb2coWygidGVzdF9zdGFydCIsIHsidGVzdCI6IHRlc3Rf
aWR9KSwKKyAgICAgICAgICAgICAgICAgICAgICAgKCJ0ZXN0X3N0YXR1cyIsIHsidGVzdCI6IHRl
c3RfaWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInN1YnRlc3Qi
OiAidGVzdDEiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJzdGF0
dXMiOiAiRkFJTCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImV4
cGVjdGVkIjogIlBBU1MifSksCisgICAgICAgICAgICAgICAgICAgICAgICgidGVzdF9lbmQiLCB7
InRlc3QiOiB0ZXN0X2lkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJz
dGF0dXMiOiAiT0sifSldKQorCisgICAgdXBkYXRlZCA9IHVwZGF0ZSh0ZXN0cywgbG9nXzAsIGxv
Z18xLCBsb2dfMiwgdXBkYXRlX2ludGVybWl0dGVudD1UcnVlKQorICAgIG5ld19tYW5pZmVzdCA9
IHVwZGF0ZWRbMF1bMV0KKworICAgIGFzc2VydCBub3QgbmV3X21hbmlmZXN0LmlzX2VtcHR5Cisg
ICAgYXNzZXJ0IG5ld19tYW5pZmVzdC5nZXRfdGVzdCgidGVzdC5odG0iKSBpcyBOb25lCisgICAg
YXNzZXJ0IGxlbihuZXdfbWFuaWZlc3QuZ2V0X3Rlc3QodGVzdF9pZCkuY2hpbGRyZW4pID09IDEK
KyAgICBhc3NlcnQgbmV3X21hbmlmZXN0LmdldF90ZXN0KHRlc3RfaWQpLmNoaWxkcmVuWzBdLmdl
dCgKKyAgICAgICAgImV4cGVjdGVkIiwgZGVmYXVsdF9ydW5faW5mbykgPT0gWyJQQVNTIiwgIkZB
SUwiXQorCisKK0BweXRlc3QubWFyay54ZmFpbChzeXMudmVyc2lvblswXSA9PSAiMyIsCisgICAg
ICAgICAgICAgICAgICAgcmVhc29uPSJtZXRhZGF0YSBkb2Vzbid0IHN1cHBvcnQgcHkzIikKK2Rl
ZiB0ZXN0X3VwZGF0ZV9leHBlY3RlZF90aWVfcmVzb2x1dGlvbigpOgorICAgIHRlc3RzID0gWygi
cGF0aC90by90ZXN0Lmh0bSIsIFt0ZXN0X2lkXSwgInRlc3RoYXJuZXNzIiwgTm9uZSldCisKKyAg
ICBsb2dfMCA9IHN1aXRlX2xvZyhbKCJ0ZXN0X3N0YXJ0IiwgeyJ0ZXN0IjogdGVzdF9pZH0pLAor
ICAgICAgICAgICAgICAgICAgICAgICAoInRlc3Rfc3RhdHVzIiwgeyJ0ZXN0IjogdGVzdF9pZCwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAic3VidGVzdCI6ICJ0ZXN0
MSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInN0YXR1cyI6ICJQ
QVNTIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiZXhwZWN0ZWQi
OiAiUEFTUyJ9KSwKKyAgICAgICAgICAgICAgICAgICAgICAgKCJ0ZXN0X2VuZCIsIHsidGVzdCI6
IHRlc3RfaWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInN0YXR1cyI6
ICJPSyJ9KV0pCisKKyAgICBsb2dfMSA9IHN1aXRlX2xvZyhbKCJ0ZXN0X3N0YXJ0IiwgeyJ0ZXN0
IjogdGVzdF9pZH0pLAorICAgICAgICAgICAgICAgICAgICAgICAoInRlc3Rfc3RhdHVzIiwgeyJ0
ZXN0IjogdGVzdF9pZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAi
c3VidGVzdCI6ICJ0ZXN0MSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgInN0YXR1cyI6ICJGQUlMIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAiZXhwZWN0ZWQiOiAiUEFTUyJ9KSwKKyAgICAgICAgICAgICAgICAgICAgICAgKCJ0ZXN0
X2VuZCIsIHsidGVzdCI6IHRlc3RfaWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgInN0YXR1cyI6ICJPSyJ9KV0pCisKKyAgICB1cGRhdGVkID0gdXBkYXRlKHRlc3RzLCBs
b2dfMCwgbG9nXzEsIHVwZGF0ZV9pbnRlcm1pdHRlbnQ9VHJ1ZSkKKyAgICBuZXdfbWFuaWZlc3Qg
PSB1cGRhdGVkWzBdWzFdCisKKyAgICBhc3NlcnQgbm90IG5ld19tYW5pZmVzdC5pc19lbXB0eQor
ICAgIGFzc2VydCBuZXdfbWFuaWZlc3QuZ2V0X3Rlc3QodGVzdF9pZCkuY2hpbGRyZW5bMF0uZ2V0
KAorICAgICAgICAiZXhwZWN0ZWQiLCBkZWZhdWx0X3J1bl9pbmZvKSA9PSBbIlBBU1MiLCAiRkFJ
TCJdCisKKworQHB5dGVzdC5tYXJrLnhmYWlsKHN5cy52ZXJzaW9uWzBdID09ICIzIiwKKyAgICAg
ICAgICAgICAgICAgICByZWFzb249Im1ldGFkYXRhIGRvZXNuJ3Qgc3VwcG9ydCBweTMiKQorZGVm
IHRlc3RfdXBkYXRlX3Jlb3JkZXJfZXhwZWN0ZWQoKToKKyAgICB0ZXN0cyA9IFsoInBhdGgvdG8v
dGVzdC5odG0iLCBbdGVzdF9pZF0sICJ0ZXN0aGFybmVzcyIsCisgICAgICAgICAgICAgICIiIlt0
ZXN0Lmh0bV0KKyAgW3Rlc3QxXQorICAgIGV4cGVjdGVkOiBbUEFTUywgRkFJTF0iIiIpXQorCisg
ICAgbG9nXzAgPSBzdWl0ZV9sb2coWygidGVzdF9zdGFydCIsIHsidGVzdCI6IHRlc3RfaWR9KSwK
KyAgICAgICAgICAgICAgICAgICAgICAgKCJ0ZXN0X3N0YXR1cyIsIHsidGVzdCI6IHRlc3RfaWQs
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInN1YnRlc3QiOiAidGVz
dDEiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJzdGF0dXMiOiAi
RkFJTCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImV4cGVjdGVk
IjogIlBBU1MiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJrbm93
bl9pbnRlcm1pdHRlbnQiOiBbIkZBSUwiXX0pLAorICAgICAgICAgICAgICAgICAgICAgICAoInRl
c3RfZW5kIiwgeyJ0ZXN0IjogdGVzdF9pZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAic3RhdHVzIjogIk9LIn0pXSkKKworICAgIGxvZ18xID0gc3VpdGVfbG9nKFsoInRl
c3Rfc3RhcnQiLCB7InRlc3QiOiB0ZXN0X2lkfSksCisgICAgICAgICAgICAgICAgICAgICAgICgi
dGVzdF9zdGF0dXMiLCB7InRlc3QiOiB0ZXN0X2lkLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICJzdWJ0ZXN0IjogInRlc3QxIiwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAic3RhdHVzIjogIkZBSUwiLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICJleHBlY3RlZCI6ICJQQVNTIiwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAia25vd25faW50ZXJtaXR0ZW50IjogWyJGQUlMIl19
KSwKKyAgICAgICAgICAgICAgICAgICAgICAgKCJ0ZXN0X2VuZCIsIHsidGVzdCI6IHRlc3RfaWQs
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInN0YXR1cyI6ICJPSyJ9KV0p
CisKKyAgICBsb2dfMiA9IHN1aXRlX2xvZyhbKCJ0ZXN0X3N0YXJ0IiwgeyJ0ZXN0IjogdGVzdF9p
ZH0pLAorICAgICAgICAgICAgICAgICAgICAgICAoInRlc3Rfc3RhdHVzIiwgeyJ0ZXN0IjogdGVz
dF9pZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAic3VidGVzdCI6
ICJ0ZXN0MSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInN0YXR1
cyI6ICJQQVNTIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiZXhw
ZWN0ZWQiOiAiUEFTUyIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
Imtub3duX2ludGVybWl0dGVudCI6IFsiRkFJTCJdfSksCisgICAgICAgICAgICAgICAgICAgICAg
ICgidGVzdF9lbmQiLCB7InRlc3QiOiB0ZXN0X2lkLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICJzdGF0dXMiOiAiT0sifSldKQorCisgICAgdXBkYXRlZCA9IHVwZGF0ZSh0
ZXN0cywgbG9nXzAsIGxvZ18xLCBsb2dfMiwgdXBkYXRlX2ludGVybWl0dGVudD1UcnVlKQorICAg
IG5ld19tYW5pZmVzdCA9IHVwZGF0ZWRbMF1bMV0KKworICAgIGFzc2VydCBub3QgbmV3X21hbmlm
ZXN0LmlzX2VtcHR5CisgICAgYXNzZXJ0IG5ld19tYW5pZmVzdC5nZXRfdGVzdCh0ZXN0X2lkKS5j
aGlsZHJlblswXS5nZXQoCisgICAgICAgICJleHBlY3RlZCIsIGRlZmF1bHRfcnVuX2luZm8pID09
IFsiRkFJTCIsICJQQVNTIl0KKworCitAcHl0ZXN0Lm1hcmsueGZhaWwoc3lzLnZlcnNpb25bMF0g
PT0gIjMiLAorICAgICAgICAgICAgICAgICAgIHJlYXNvbj0ibWV0YWRhdGEgZG9lc24ndCBzdXBw
b3J0IHB5MyIpCitkZWYgdGVzdF91cGRhdGVfYW5kX3ByZXNlcnZlX3VuY2hhbmdlZF9leHBlY3Rl
ZF9pbnRlcm1pdHRlbnQoKToKKyAgICB0ZXN0cyA9IFsoInBhdGgvdG8vdGVzdC5odG0iLCBbdGVz
dF9pZF0sICJ0ZXN0aGFybmVzcyIsICIiIgorW3Rlc3QuaHRtXQorICBleHBlY3RlZDoKKyAgICBp
ZiBvcyA9PSAiYW5kcm9pZCI6IFtQQVNTLCBGQUlMXQorICAgIEZBSUwiIiIpXQorCisgICAgbG9n
XzAgPSBzdWl0ZV9sb2coWygidGVzdF9zdGFydCIsIHsidGVzdCI6IHRlc3RfaWR9KSwKKyAgICAg
ICAgICAgICAgICAgICAgICAgKCJ0ZXN0X2VuZCIsIHsidGVzdCI6IHRlc3RfaWQsCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInN0YXR1cyI6ICJGQUlMIiwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiZXhwZWN0ZWQiOiAiUEFTUyIsCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImtub3duX2ludGVybWl0dGVudCI6IFsiRkFJ
TCJdfSldLAorICAgICAgICAgICAgICAgICAgICAgIHJ1bl9pbmZvPXsib3MiOiAiYW5kcm9pZCJ9
KQorCisgICAgbG9nXzEgPSBzdWl0ZV9sb2coWygidGVzdF9zdGFydCIsIHsidGVzdCI6IHRlc3Rf
aWR9KSwKKyAgICAgICAgICAgICAgICAgICAgICAgKCJ0ZXN0X2VuZCIsIHsidGVzdCI6IHRlc3Rf
aWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInN0YXR1cyI6ICJQQVNT
IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiZXhwZWN0ZWQiOiAiUEFT
UyIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImtub3duX2ludGVybWl0
dGVudCI6IFsiRkFJTCJdfSldLAorICAgICAgICAgICAgICAgICAgICAgIHJ1bl9pbmZvPXsib3Mi
OiAiYW5kcm9pZCJ9KQorCisgICAgbG9nXzIgPSBzdWl0ZV9sb2coWygidGVzdF9zdGFydCIsIHsi
dGVzdCI6IHRlc3RfaWR9KSwKKyAgICAgICAgICAgICAgICAgICAgICAgKCJ0ZXN0X2VuZCIsIHsi
dGVzdCI6IHRlc3RfaWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInN0
YXR1cyI6ICJQQVNTIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiZXhw
ZWN0ZWQiOiAiRkFJTCJ9KV0pCisKKyAgICB1cGRhdGVkID0gdXBkYXRlKHRlc3RzLCBsb2dfMCwg
bG9nXzEsIGxvZ18yKQorICAgIG5ld19tYW5pZmVzdCA9IHVwZGF0ZWRbMF1bMV0KKworICAgIGFz
c2VydCBub3QgbmV3X21hbmlmZXN0LmlzX2VtcHR5CisKKyAgICBydW5faW5mb18xID0gZGVmYXVs
dF9ydW5faW5mby5jb3B5KCkKKyAgICBydW5faW5mb18xLnVwZGF0ZSh7Im9zIjogImFuZHJvaWQi
fSkKKworICAgIGFzc2VydCBub3QgbmV3X21hbmlmZXN0LmlzX2VtcHR5CisgICAgYXNzZXJ0IG5l
d19tYW5pZmVzdC5nZXRfdGVzdCh0ZXN0X2lkKS5nZXQoCisgICAgICAgICJleHBlY3RlZCIsIHJ1
bl9pbmZvXzEpID09IFsiUEFTUyIsICJGQUlMIl0KKyAgICBhc3NlcnQgbmV3X21hbmlmZXN0Lmdl
dF90ZXN0KHRlc3RfaWQpLmdldCgKKyAgICAgICAgImV4cGVjdGVkIiwgZGVmYXVsdF9ydW5faW5m
bykgPT0gIlBBU1MiCisKKworQHB5dGVzdC5tYXJrLnhmYWlsKHN5cy52ZXJzaW9uWzBdID09ICIz
IiwKKyAgICAgICAgICAgICAgICAgICByZWFzb249Im1ldGFkYXRhIGRvZXNuJ3Qgc3VwcG9ydCBw
eTMiKQorZGVmIHRlc3RfdXBkYXRlX3Rlc3Rfd2l0aF9pbnRlcm1pdHRlbnRfdG9fb25lX2V4cGVj
dGVkX3N0YXR1cygpOgorICAgIHRlc3RzID0gWygicGF0aC90by90ZXN0Lmh0bSIsIFt0ZXN0X2lk
XSwgInRlc3RoYXJuZXNzIiwKKyAgICAgICAgICAgICAgIiIiW3Rlc3QuaHRtXQorICBbdGVzdDFd
CisgICAgZXhwZWN0ZWQ6IFtQQVNTLCBGQUlMXSIiIildCisKKyAgICBsb2dfMCA9IHN1aXRlX2xv
ZyhbKCJ0ZXN0X3N0YXJ0IiwgeyJ0ZXN0IjogdGVzdF9pZH0pLAorICAgICAgICAgICAgICAgICAg
ICAgKCJ0ZXN0X3N0YXR1cyIsIHsidGVzdCI6IHRlc3RfaWQsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICJzdWJ0ZXN0IjogInRlc3QxIiwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgInN0YXR1cyI6ICJFUlJPUiIsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICJleHBlY3RlZCI6ICJQQVNTIiwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgImtub3duX2ludGVybWl0dGVudCI6IFsiRkFJTCJdfSks
CisgICAgICAgICAgICAgICAgICAgICAoInRlc3RfZW5kIiwgeyJ0ZXN0IjogdGVzdF9pZCwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInN0YXR1cyI6ICJPSyJ9KV0pCisKKyAg
ICB1cGRhdGVkID0gdXBkYXRlKHRlc3RzLCBsb2dfMCkKKworICAgIG5ld19tYW5pZmVzdCA9IHVw
ZGF0ZWRbMF1bMV0KKyAgICBhc3NlcnQgbm90IG5ld19tYW5pZmVzdC5pc19lbXB0eQorICAgIGFz
c2VydCBuZXdfbWFuaWZlc3QuZ2V0X3Rlc3QodGVzdF9pZCkuY2hpbGRyZW5bMF0uZ2V0KAorICAg
ICAgICAiZXhwZWN0ZWQiLCBkZWZhdWx0X3J1bl9pbmZvKSA9PSAiRVJST1IiCisKKworQHB5dGVz
dC5tYXJrLnhmYWlsKHN5cy52ZXJzaW9uWzBdID09ICIzIiwKKyAgICAgICAgICAgICAgICAgICBy
ZWFzb249Im1ldGFkYXRhIGRvZXNuJ3Qgc3VwcG9ydCBweTMiKQorZGVmIHRlc3RfdXBkYXRlX2lu
dGVybWl0dGVudF93aXRoX2NvbmRpdGlvbnMoKToKKyAgICB0ZXN0cyA9IFsoInBhdGgvdG8vdGVz
dC5odG0iLCBbdGVzdF9pZF0sICJ0ZXN0aGFybmVzcyIsICIiIgorW3Rlc3QuaHRtXQorICBleHBl
Y3RlZDoKKyAgICBpZiBvcyA9PSAiYW5kcm9pZCI6IFtQQVNTLCBGQUlMXSIiIildCisKKyAgICBs
b2dfMCA9IHN1aXRlX2xvZyhbKCJ0ZXN0X3N0YXJ0IiwgeyJ0ZXN0IjogdGVzdF9pZH0pLAorICAg
ICAgICAgICAgICAgICAgICAgICAoInRlc3RfZW5kIiwgeyJ0ZXN0IjogdGVzdF9pZCwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAic3RhdHVzIjogIlRJTUVPVVQiLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJleHBlY3RlZCI6ICJQQVNTIiwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAia25vd25faW50ZXJtaXR0ZW50Ijog
WyJGQUlMIl19KV0sCisgICAgICAgICAgICAgICAgICAgICAgcnVuX2luZm89eyJvcyI6ICJhbmRy
b2lkIn0pCisKKyAgICBsb2dfMSA9IHN1aXRlX2xvZyhbKCJ0ZXN0X3N0YXJ0IiwgeyJ0ZXN0Ijog
dGVzdF9pZH0pLAorICAgICAgICAgICAgICAgICAgICAgICAoInRlc3RfZW5kIiwgeyJ0ZXN0Ijog
dGVzdF9pZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAic3RhdHVzIjog
IlBBU1MiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJleHBlY3RlZCI6
ICJQQVNTIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAia25vd25faW50
ZXJtaXR0ZW50IjogWyJGQUlMIl19KV0sCisgICAgICAgICAgICAgICAgICAgICAgcnVuX2luZm89
eyJvcyI6ICJhbmRyb2lkIn0pCisKKyAgICB1cGRhdGVkID0gdXBkYXRlKHRlc3RzLCBsb2dfMCwg
bG9nXzEsIHVwZGF0ZV9pbnRlcm1pdHRlbnQ9VHJ1ZSkKKyAgICBuZXdfbWFuaWZlc3QgPSB1cGRh
dGVkWzBdWzFdCisKKyAgICBhc3NlcnQgbm90IG5ld19tYW5pZmVzdC5pc19lbXB0eQorCisgICAg
cnVuX2luZm9fMSA9IGRlZmF1bHRfcnVuX2luZm8uY29weSgpCisgICAgcnVuX2luZm9fMS51cGRh
dGUoeyJvcyI6ICJhbmRyb2lkIn0pCisKKyAgICBhc3NlcnQgbm90IG5ld19tYW5pZmVzdC5pc19l
bXB0eQorICAgIGFzc2VydCBuZXdfbWFuaWZlc3QuZ2V0X3Rlc3QodGVzdF9pZCkuZ2V0KAorICAg
ICAgICAiZXhwZWN0ZWQiLCBydW5faW5mb18xKSA9PSBbIlBBU1MiLCAiVElNRU9VVCIsICJGQUlM
Il0KKworCitAcHl0ZXN0Lm1hcmsueGZhaWwoc3lzLnZlcnNpb25bMF0gPT0gIjMiLAorICAgICAg
ICAgICAgICAgICAgIHJlYXNvbj0ibWV0YWRhdGEgZG9lc24ndCBzdXBwb3J0IHB5MyIpCitkZWYg
dGVzdF91cGRhdGVfYW5kX3JlbW92ZV9pbnRlcm1pdHRlbnRfd2l0aF9jb25kaXRpb25zKCk6Cisg
ICAgdGVzdHMgPSBbKCJwYXRoL3RvL3Rlc3QuaHRtIiwgW3Rlc3RfaWRdLCAidGVzdGhhcm5lc3Mi
LCAiIiIKK1t0ZXN0Lmh0bV0KKyAgZXhwZWN0ZWQ6CisgICAgaWYgb3MgPT0gImFuZHJvaWQiOiBb
UEFTUywgRkFJTF0iIiIpXQorCisgICAgbG9nXzAgPSBzdWl0ZV9sb2coWygidGVzdF9zdGFydCIs
IHsidGVzdCI6IHRlc3RfaWR9KSwKKyAgICAgICAgICAgICAgICAgICAgICAgKCJ0ZXN0X2VuZCIs
IHsidGVzdCI6IHRlc3RfaWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
InN0YXR1cyI6ICJUSU1FT1VUIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAiZXhwZWN0ZWQiOiAiUEFTUyIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgImtub3duX2ludGVybWl0dGVudCI6IFsiRkFJTCJdfSldLAorICAgICAgICAgICAgICAgICAg
ICAgIHJ1bl9pbmZvPXsib3MiOiAiYW5kcm9pZCJ9KQorCisgICAgbG9nXzEgPSBzdWl0ZV9sb2co
WygidGVzdF9zdGFydCIsIHsidGVzdCI6IHRlc3RfaWR9KSwKKyAgICAgICAgICAgICAgICAgICAg
ICAgKCJ0ZXN0X2VuZCIsIHsidGVzdCI6IHRlc3RfaWQsCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgInN0YXR1cyI6ICJQQVNTIiwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAiZXhwZWN0ZWQiOiAiUEFTUyIsCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgImtub3duX2ludGVybWl0dGVudCI6IFsiRkFJTCJdfSldLAorICAgICAg
ICAgICAgICAgICAgICAgIHJ1bl9pbmZvPXsib3MiOiAiYW5kcm9pZCJ9KQorCisgICAgdXBkYXRl
ZCA9IHVwZGF0ZSh0ZXN0cywgbG9nXzAsIGxvZ18xLCB1cGRhdGVfaW50ZXJtaXR0ZW50PVRydWUs
IHJlbW92ZV9pbnRlcm1pdHRlbnQ9VHJ1ZSkKKyAgICBuZXdfbWFuaWZlc3QgPSB1cGRhdGVkWzBd
WzFdCisKKyAgICBhc3NlcnQgbm90IG5ld19tYW5pZmVzdC5pc19lbXB0eQorCisgICAgcnVuX2lu
Zm9fMSA9IGRlZmF1bHRfcnVuX2luZm8uY29weSgpCisgICAgcnVuX2luZm9fMS51cGRhdGUoeyJv
cyI6ICJhbmRyb2lkIn0pCisKKyAgICBhc3NlcnQgbm90IG5ld19tYW5pZmVzdC5pc19lbXB0eQor
ICAgIGFzc2VydCBuZXdfbWFuaWZlc3QuZ2V0X3Rlc3QodGVzdF9pZCkuZ2V0KAorICAgICAgICAi
ZXhwZWN0ZWQiLCBydW5faW5mb18xKSA9PSBbIlBBU1MiLCAiVElNRU9VVCJdCisKKworQHB5dGVz
dC5tYXJrLnhmYWlsKHN5cy52ZXJzaW9uWzBdID09ICIzIiwKKyAgICAgICAgICAgICAgICAgICBy
ZWFzb249Im1ldGFkYXRhIGRvZXNuJ3Qgc3VwcG9ydCBweTMiKQorZGVmIHRlc3RfdXBkYXRlX2lu
dGVybWl0dGVudF9mdWxsKCk6CisgICAgdGVzdHMgPSBbKCJwYXRoL3RvL3Rlc3QuaHRtIiwgW3Rl
c3RfaWRdLCAidGVzdGhhcm5lc3MiLAorICAgICAgICAgICAgICAiIiJbdGVzdC5odG1dCisgIFt0
ZXN0MV0KKyAgICBleHBlY3RlZDoKKyAgICAgIGlmIG9zID09ICJtYWMiOiBbRkFJTCwgVElNRU9V
VF0KKyAgICAgIEZBSUwiIiIpXQorCisgICAgbG9nXzAgPSBzdWl0ZV9sb2coWygidGVzdF9zdGFy
dCIsIHsidGVzdCI6IHRlc3RfaWR9KSwKKyAgICAgICAgICAgICAgICAgICAgICgidGVzdF9zdGF0
dXMiLCB7InRlc3QiOiB0ZXN0X2lkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAic3VidGVzdCI6ICJ0ZXN0MSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICJzdGF0dXMiOiAiRkFJTCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICJleHBlY3RlZCI6ICJGQUlMIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgImtub3duX2ludGVybWl0dGVudCI6IFsiVElNRU9VVCJdfSksCisgICAgICAgICAg
ICAgICAgICAgICAoInRlc3RfZW5kIiwgeyJ0ZXN0IjogdGVzdF9pZCwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgInN0YXR1cyI6ICJPSyJ9KV0sCisgICAgICAgICAgICAgICAg
ICAgICBydW5faW5mbz17Im9zIjogIm1hYyJ9KQorCisgICAgbG9nXzEgPSBzdWl0ZV9sb2coWygi
dGVzdF9zdGFydCIsIHsidGVzdCI6IHRlc3RfaWR9KSwKKyAgICAgICAgICAgICAgICAgICAgICgi
dGVzdF9zdGF0dXMiLCB7InRlc3QiOiB0ZXN0X2lkLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAic3VidGVzdCI6ICJ0ZXN0MSIsCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICJzdGF0dXMiOiAiRkFJTCJ9KSwKKyAgICAgICAgICAgICAgICAgICAg
ICgidGVzdF9lbmQiLCB7InRlc3QiOiB0ZXN0X2lkLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAic3RhdHVzIjogIk9LIn0pXSkKKworICAgIHVwZGF0ZWQgPSB1cGRhdGUodGVz
dHMsIGxvZ18wLCBsb2dfMSwgdXBkYXRlX2ludGVybWl0dGVudD1UcnVlLCBmdWxsX3VwZGF0ZT1U
cnVlKQorCisgICAgbmV3X21hbmlmZXN0ID0gdXBkYXRlZFswXVsxXQorCisgICAgYXNzZXJ0IG5v
dCBuZXdfbWFuaWZlc3QuaXNfZW1wdHkKKyAgICBydW5faW5mb18xID0gZGVmYXVsdF9ydW5faW5m
by5jb3B5KCkKKyAgICBydW5faW5mb18xLnVwZGF0ZSh7Im9zIjogIm1hYyJ9KQorICAgIGFzc2Vy
dCBuZXdfbWFuaWZlc3QuZ2V0X3Rlc3QodGVzdF9pZCkuY2hpbGRyZW5bMF0uZ2V0KAorICAgICAg
ICAiZXhwZWN0ZWQiLCBydW5faW5mb18xKSA9PSBbIkZBSUwiLCAiVElNRU9VVCJdCisgICAgYXNz
ZXJ0IG5ld19tYW5pZmVzdC5nZXRfdGVzdCh0ZXN0X2lkKS5jaGlsZHJlblswXS5nZXQoCisgICAg
ICAgICJleHBlY3RlZCIsIGRlZmF1bHRfcnVuX2luZm8pID09ICJGQUlMIgorCisKK0BweXRlc3Qu
bWFyay54ZmFpbChzeXMudmVyc2lvblswXSA9PSAiMyIsCisgICAgICAgICAgICAgICAgICAgcmVh
c29uPSJtZXRhZGF0YSBkb2Vzbid0IHN1cHBvcnQgcHkzIikKK2RlZiB0ZXN0X3VwZGF0ZV9pbnRl
cm1pdHRlbnRfZnVsbF9yZW1vdmUoKToKKyAgICB0ZXN0cyA9IFsoInBhdGgvdG8vdGVzdC5odG0i
LCBbdGVzdF9pZF0sICJ0ZXN0aGFybmVzcyIsCisgICAgICAgICAgICAgICIiIlt0ZXN0Lmh0bV0K
KyAgW3Rlc3QxXQorICAgIGV4cGVjdGVkOgorICAgICAgaWYgb3MgPT0gIm1hYyI6IFtGQUlMLCBU
SU1FT1VULCBQQVNTXQorICAgICAgRkFJTCIiIildCisKKyAgICBsb2dfMCA9IHN1aXRlX2xvZyhb
KCJ0ZXN0X3N0YXJ0IiwgeyJ0ZXN0IjogdGVzdF9pZH0pLAorICAgICAgICAgICAgICAgICAgICAg
KCJ0ZXN0X3N0YXR1cyIsIHsidGVzdCI6IHRlc3RfaWQsCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICJzdWJ0ZXN0IjogInRlc3QxIiwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgInN0YXR1cyI6ICJGQUlMIiwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgImV4cGVjdGVkIjogIkZBSUwiLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAia25vd25faW50ZXJtaXR0ZW50IjogWyJUSU1FT1VUIiwgIlBB
U1MiXX0pLAorICAgICAgICAgICAgICAgICAgICAgKCJ0ZXN0X2VuZCIsIHsidGVzdCI6IHRlc3Rf
aWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJzdGF0dXMiOiAiT0sifSld
LAorICAgICAgICAgICAgICAgICAgICAgcnVuX2luZm89eyJvcyI6ICJtYWMifSkKKworICAgIGxv
Z18xID0gc3VpdGVfbG9nKFsoInRlc3Rfc3RhcnQiLCB7InRlc3QiOiB0ZXN0X2lkfSksCisgICAg
ICAgICAgICAgICAgICAgICAoInRlc3Rfc3RhdHVzIiwgeyJ0ZXN0IjogdGVzdF9pZCwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInN1YnRlc3QiOiAidGVzdDEiLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAic3RhdHVzIjogIlRJTUVPVVQiLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiZXhwZWN0ZWQiOiAiRkFJTCIs
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJrbm93bl9pbnRlcm1pdHRl
bnQiOiBbIlRJTUVPVVQiLCAiUEFTUyJdfSksCisgICAgICAgICAgICAgICAgICAgICAoInRlc3Rf
ZW5kIiwgeyJ0ZXN0IjogdGVzdF9pZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgInN0YXR1cyI6ICJPSyJ9KV0sCisgICAgICAgICAgICAgICAgICAgICBydW5faW5mbz17Im9z
IjogIm1hYyJ9KQorCisgICAgbG9nXzIgPSBzdWl0ZV9sb2coWygidGVzdF9zdGFydCIsIHsidGVz
dCI6IHRlc3RfaWR9KSwKKyAgICAgICAgICAgICAgICAgICAgICgidGVzdF9zdGF0dXMiLCB7InRl
c3QiOiB0ZXN0X2lkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAic3Vi
dGVzdCI6ICJ0ZXN0MSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJz
dGF0dXMiOiAiRkFJTCJ9KSwKKyAgICAgICAgICAgICAgICAgICAgICgidGVzdF9lbmQiLCB7InRl
c3QiOiB0ZXN0X2lkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAic3RhdHVz
IjogIk9LIn0pXSkKKworICAgIHVwZGF0ZWQgPSB1cGRhdGUodGVzdHMsIGxvZ18wLCBsb2dfMSwg
bG9nXzIsIHVwZGF0ZV9pbnRlcm1pdHRlbnQ9VHJ1ZSwKKyAgICAgICAgICAgICAgICAgICAgIGZ1
bGxfdXBkYXRlPVRydWUsIHJlbW92ZV9pbnRlcm1pdHRlbnQ9VHJ1ZSkKKworICAgIG5ld19tYW5p
ZmVzdCA9IHVwZGF0ZWRbMF1bMV0KKworICAgIGFzc2VydCBub3QgbmV3X21hbmlmZXN0LmlzX2Vt
cHR5CisgICAgcnVuX2luZm9fMSA9IGRlZmF1bHRfcnVuX2luZm8uY29weSgpCisgICAgcnVuX2lu
Zm9fMS51cGRhdGUoeyJvcyI6ICJtYWMifSkKKyAgICBhc3NlcnQgbmV3X21hbmlmZXN0LmdldF90
ZXN0KHRlc3RfaWQpLmNoaWxkcmVuWzBdLmdldCgKKyAgICAgICAgImV4cGVjdGVkIiwgcnVuX2lu
Zm9fMSkgPT0gWyJGQUlMIiwgIlRJTUVPVVQiXQorICAgIGFzc2VydCBuZXdfbWFuaWZlc3QuZ2V0
X3Rlc3QodGVzdF9pZCkuY2hpbGRyZW5bMF0uZ2V0KAorICAgICAgICAiZXhwZWN0ZWQiLCBkZWZh
dWx0X3J1bl9pbmZvKSA9PSAiRkFJTCIKKworCitAcHl0ZXN0Lm1hcmsueGZhaWwoc3lzLnZlcnNp
b25bMF0gPT0gIjMiLAorICAgICAgICAgICAgICAgICAgIHJlYXNvbj0ibWV0YWRhdGEgZG9lc24n
dCBzdXBwb3J0IHB5MyIpCitkZWYgdGVzdF9mdWxsX3VwZGF0ZSgpOgorICAgIHRlc3RzID0gWygi
cGF0aC90by90ZXN0Lmh0bSIsIFt0ZXN0X2lkXSwgInRlc3RoYXJuZXNzIiwKKyAgICAgICAgICAg
ICAgIiIiW3Rlc3QuaHRtXQorICBbdGVzdDFdCisgICAgZXhwZWN0ZWQ6CisgICAgICBpZiBvcyA9
PSAibWFjIjogW0ZBSUwsIFRJTUVPVVRdCisgICAgICBGQUlMIiIiKV0KKworICAgIGxvZ18wID0g
c3VpdGVfbG9nKFsoInRlc3Rfc3RhcnQiLCB7InRlc3QiOiB0ZXN0X2lkfSksCisgICAgICAgICAg
ICAgICAgICAgICAoInRlc3Rfc3RhdHVzIiwgeyJ0ZXN0IjogdGVzdF9pZCwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgInN1YnRlc3QiOiAidGVzdDEiLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAic3RhdHVzIjogIkZBSUwiLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiZXhwZWN0ZWQiOiAiRkFJTCIsCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJrbm93bl9pbnRlcm1pdHRlbnQiOiBbIlRJ
TUVPVVQiXX0pLAorICAgICAgICAgICAgICAgICAgICAgKCJ0ZXN0X2VuZCIsIHsidGVzdCI6IHRl
c3RfaWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJzdGF0dXMiOiAiT0si
fSldLAorICAgICAgICAgICAgICAgICAgICAgcnVuX2luZm89eyJvcyI6ICJtYWMifSkKKworICAg
IGxvZ18xID0gc3VpdGVfbG9nKFsoInRlc3Rfc3RhcnQiLCB7InRlc3QiOiB0ZXN0X2lkfSksCisg
ICAgICAgICAgICAgICAgICAgICAoInRlc3Rfc3RhdHVzIiwgeyJ0ZXN0IjogdGVzdF9pZCwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInN1YnRlc3QiOiAidGVzdDEiLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAic3RhdHVzIjogIkZBSUwifSks
CisgICAgICAgICAgICAgICAgICAgICAoInRlc3RfZW5kIiwgeyJ0ZXN0IjogdGVzdF9pZCwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInN0YXR1cyI6ICJPSyJ9KV0pCisKKyAg
ICB1cGRhdGVkID0gdXBkYXRlKHRlc3RzLCBsb2dfMCwgbG9nXzEsIGZ1bGxfdXBkYXRlPVRydWUp
CisKKyAgICBuZXdfbWFuaWZlc3QgPSB1cGRhdGVkWzBdWzFdCisKKyAgICBhc3NlcnQgbm90IG5l
d19tYW5pZmVzdC5pc19lbXB0eQorICAgIHJ1bl9pbmZvXzEgPSBkZWZhdWx0X3J1bl9pbmZvLmNv
cHkoKQorICAgIHJ1bl9pbmZvXzEudXBkYXRlKHsib3MiOiAibWFjIn0pCisgICAgYXNzZXJ0IG5l
d19tYW5pZmVzdC5nZXRfdGVzdCh0ZXN0X2lkKS5jaGlsZHJlblswXS5nZXQoCisgICAgICAgICJl
eHBlY3RlZCIsIHJ1bl9pbmZvXzEpID09ICJGQUlMIgorICAgIGFzc2VydCBuZXdfbWFuaWZlc3Qu
Z2V0X3Rlc3QodGVzdF9pZCkuY2hpbGRyZW5bMF0uZ2V0KAorICAgICAgICAiZXhwZWN0ZWQiLCBk
ZWZhdWx0X3J1bl9pbmZvKSA9PSAiRkFJTCIKKworCitAcHl0ZXN0Lm1hcmsueGZhaWwoc3lzLnZl
cnNpb25bMF0gPT0gIjMiLAorICAgICAgICAgICAgICAgICAgIHJlYXNvbj0ibWV0YWRhdGEgZG9l
c24ndCBzdXBwb3J0IHB5MyIpCitkZWYgdGVzdF9mdWxsX29ycGhhbigpOgorICAgIHRlc3RzID0g
WygicGF0aC90by90ZXN0Lmh0bSIsIFt0ZXN0X2lkXSwgInRlc3RoYXJuZXNzIiwKKyAgICAgICAg
ICAgICAgIiIiW3Rlc3QuaHRtXQorICBbdGVzdDFdCisgICAgZXhwZWN0ZWQ6IEZBSUwKKyAgICBb
c3Vic3ViIHRlc3RdCisgICAgICBleHBlY3RlZDogVElNRU9VVAorICBbdGVzdDJdCisgICAgZXhw
ZWN0ZWQ6IEVSUk9SCisiIiIpXQorCisgICAgbG9nXzAgPSBzdWl0ZV9sb2coWygidGVzdF9zdGFy
dCIsIHsidGVzdCI6IHRlc3RfaWR9KSwKKyAgICAgICAgICAgICAgICAgICAgICgidGVzdF9zdGF0
dXMiLCB7InRlc3QiOiB0ZXN0X2lkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAic3VidGVzdCI6ICJ0ZXN0MSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICJzdGF0dXMiOiAiRkFJTCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICJleHBlY3RlZCI6ICJGQUlMIn0pLAorICAgICAgICAgICAgICAgICAgICAgKCJ0ZXN0
X2VuZCIsIHsidGVzdCI6IHRlc3RfaWQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICJzdGF0dXMiOiAiT0sifSldKQogCi0gICAgdXBkYXRlZCA9IHVwZGF0ZSh0ZXN0cywgbG9n
KQogCi0gICAgYXNzZXJ0IGxlbih1cGRhdGVkKSA9PSAxCi0gICAgYXNzZXJ0IHVwZGF0ZWRbMF1b
MV0uaXNfZW1wdHkKKyAgICB1cGRhdGVkID0gdXBkYXRlKHRlc3RzLCBsb2dfMCwgZnVsbF91cGRh
dGU9VHJ1ZSkKIAorICAgIG5ld19tYW5pZmVzdCA9IHVwZGF0ZWRbMF1bMV0KIAotZGVmIHRlc3Rf
dXBkYXRlXzEoKToKLSAgICB0ZXN0X2lkID0gIi9wYXRoL3RvL3Rlc3QuaHRtIgorICAgIGFzc2Vy
dCBub3QgbmV3X21hbmlmZXN0LmlzX2VtcHR5CisgICAgYXNzZXJ0IGxlbihuZXdfbWFuaWZlc3Qu
Z2V0X3Rlc3QodGVzdF9pZCkuY2hpbGRyZW5bMF0uY2hpbGRyZW4pID09IDAKKyAgICBhc3NlcnQg
bmV3X21hbmlmZXN0LmdldF90ZXN0KHRlc3RfaWQpLmNoaWxkcmVuWzBdLmdldCgKKyAgICAgICAg
ImV4cGVjdGVkIiwgZGVmYXVsdF9ydW5faW5mbykgPT0gIkZBSUwiCisgICAgYXNzZXJ0IGxlbihu
ZXdfbWFuaWZlc3QuZ2V0X3Rlc3QodGVzdF9pZCkuY2hpbGRyZW4pID09IDEKKworCitAcHl0ZXN0
Lm1hcmsueGZhaWwoc3lzLnZlcnNpb25bMF0gPT0gIjMiLAorICAgICAgICAgICAgICAgICAgIHJl
YXNvbj0ibWV0YWRhdGEgZG9lc24ndCBzdXBwb3J0IHB5MyIpCitkZWYgdGVzdF91cGRhdGVfcmVv
cmRlcl9leHBlY3RlZF9mdWxsX2NvbmRpdGlvbnMoKToKICAgICB0ZXN0cyA9IFsoInBhdGgvdG8v
dGVzdC5odG0iLCBbdGVzdF9pZF0sICJ0ZXN0aGFybmVzcyIsCiAgICAgICAgICAgICAgICIiIlt0
ZXN0Lmh0bV0KICAgW3Rlc3QxXQotICAgIGV4cGVjdGVkOiBFUlJPUiIiIildCisgICAgZXhwZWN0
ZWQ6CisgICAgICBpZiBvcyA9PSAibWFjIjogW0ZBSUwsIFRJTUVPVVRdCisgICAgICBbRkFJTCwg
UEFTU10iIiIpXQogCi0gICAgbG9nID0gc3VpdGVfbG9nKFsoInRlc3Rfc3RhcnQiLCB7InRlc3Qi
OiB0ZXN0X2lkfSksCisgICAgbG9nXzAgPSBzdWl0ZV9sb2coWygidGVzdF9zdGFydCIsIHsidGVz
dCI6IHRlc3RfaWR9KSwKICAgICAgICAgICAgICAgICAgICAgICgidGVzdF9zdGF0dXMiLCB7InRl
c3QiOiB0ZXN0X2lkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAic3Vi
dGVzdCI6ICJ0ZXN0MSIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJz
dGF0dXMiOiAiRkFJTCIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJl
eHBlY3RlZCI6ICJFUlJPUiJ9KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgInN0YXR1cyI6ICJUSU1FT1VUIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgImV4cGVjdGVkIjogIkZBSUwiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAia25vd25faW50ZXJtaXR0ZW50IjogWyJUSU1FT1VUIl19KSwKKyAgICAgICAgICAg
ICAgICAgICAgICgidGVzdF9lbmQiLCB7InRlc3QiOiB0ZXN0X2lkLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAic3RhdHVzIjogIk9LIn0pXSwKKyAgICAgICAgICAgICAgICAg
ICAgIHJ1bl9pbmZvPXsib3MiOiAibWFjIn0pCisKKyAgICBsb2dfMSA9IHN1aXRlX2xvZyhbKCJ0
ZXN0X3N0YXJ0IiwgeyJ0ZXN0IjogdGVzdF9pZH0pLAorICAgICAgICAgICAgICAgICAgICAgKCJ0
ZXN0X3N0YXR1cyIsIHsidGVzdCI6IHRlc3RfaWQsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICJzdWJ0ZXN0IjogInRlc3QxIiwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgInN0YXR1cyI6ICJUSU1FT1VUIiwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgImV4cGVjdGVkIjogIkZBSUwiLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAia25vd25faW50ZXJtaXR0ZW50IjogWyJUSU1FT1VUIl19KSwK
KyAgICAgICAgICAgICAgICAgICAgICgidGVzdF9lbmQiLCB7InRlc3QiOiB0ZXN0X2lkLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAic3RhdHVzIjogIk9LIn0pXSwKKyAgICAg
ICAgICAgICAgICAgICAgIHJ1bl9pbmZvPXsib3MiOiAibWFjIn0pCisKKyAgICBsb2dfMiA9IHN1
aXRlX2xvZyhbKCJ0ZXN0X3N0YXJ0IiwgeyJ0ZXN0IjogdGVzdF9pZH0pLAorICAgICAgICAgICAg
ICAgICAgICAgKCJ0ZXN0X3N0YXR1cyIsIHsidGVzdCI6IHRlc3RfaWQsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICJzdWJ0ZXN0IjogInRlc3QxIiwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgInN0YXR1cyI6ICJQQVNTIiwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgImV4cGVjdGVkIjogIkZBSUwiLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAia25vd25faW50ZXJtaXR0ZW50IjogWyJQQVNT
Il19KSwKICAgICAgICAgICAgICAgICAgICAgICgidGVzdF9lbmQiLCB7InRlc3QiOiB0ZXN0X2lk
LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAic3RhdHVzIjogIk9LIn0pXSkK
IAotICAgIHVwZGF0ZWQgPSB1cGRhdGUodGVzdHMsIGxvZykKKyAgICBsb2dfMyA9IHN1aXRlX2xv
ZyhbKCJ0ZXN0X3N0YXJ0IiwgeyJ0ZXN0IjogdGVzdF9pZH0pLAorICAgICAgICAgICAgICAgICAg
ICAgKCJ0ZXN0X3N0YXR1cyIsIHsidGVzdCI6IHRlc3RfaWQsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICJzdWJ0ZXN0IjogInRlc3QxIiwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgInN0YXR1cyI6ICJQQVNTIiwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgImV4cGVjdGVkIjogIkZBSUwiLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAia25vd25faW50ZXJtaXR0ZW50IjogWyJQQVNTIl19KSwK
KyAgICAgICAgICAgICAgICAgICAgICgidGVzdF9lbmQiLCB7InRlc3QiOiB0ZXN0X2lkLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAic3RhdHVzIjogIk9LIn0pXSkKKworICAg
IHVwZGF0ZWQgPSB1cGRhdGUodGVzdHMsIGxvZ18wLCBsb2dfMSwgbG9nXzIsIGxvZ18zLCB1cGRh
dGVfaW50ZXJtaXR0ZW50PVRydWUsIGZ1bGxfdXBkYXRlPVRydWUpCiAKICAgICBuZXdfbWFuaWZl
c3QgPSB1cGRhdGVkWzBdWzFdCisKICAgICBhc3NlcnQgbm90IG5ld19tYW5pZmVzdC5pc19lbXB0
eQotICAgIGFzc2VydCBuZXdfbWFuaWZlc3QuZ2V0X3Rlc3QodGVzdF9pZCkuY2hpbGRyZW5bMF0u
Z2V0KCJleHBlY3RlZCIpID09ICJGQUlMIgorICAgIHJ1bl9pbmZvXzEgPSBkZWZhdWx0X3J1bl9p
bmZvLmNvcHkoKQorICAgIHJ1bl9pbmZvXzEudXBkYXRlKHsib3MiOiAibWFjIn0pCisgICAgYXNz
ZXJ0IG5ld19tYW5pZmVzdC5nZXRfdGVzdCh0ZXN0X2lkKS5jaGlsZHJlblswXS5nZXQoCisgICAg
ICAgICJleHBlY3RlZCIsIHJ1bl9pbmZvXzEpID09IFsiVElNRU9VVCIsICJGQUlMIl0KKyAgICBh
c3NlcnQgbmV3X21hbmlmZXN0LmdldF90ZXN0KHRlc3RfaWQpLmNoaWxkcmVuWzBdLmdldCgKKyAg
ICAgICAgImV4cGVjdGVkIiwgZGVmYXVsdF9ydW5faW5mbykgPT0gWyJQQVNTIiwgIkZBSUwiXQog
CiAKK0BweXRlc3QubWFyay54ZmFpbChzeXMudmVyc2lvblswXSA9PSAiMyIsCisgICAgICAgICAg
ICAgICAgICAgcmVhc29uPSJtZXRhZGF0YSBkb2Vzbid0IHN1cHBvcnQgcHkzIikKIGRlZiB0ZXN0
X3NraXBfMCgpOgotICAgIHRlc3RfaWQgPSAiL3BhdGgvdG8vdGVzdC5odG0iCiAgICAgdGVzdHMg
PSBbKCJwYXRoL3RvL3Rlc3QuaHRtIiwgW3Rlc3RfaWRdLCAidGVzdGhhcm5lc3MiLAogICAgICAg
ICAgICAgICAiIiJbdGVzdC5odG1dCiAgIFt0ZXN0MV0KQEAgLTE2NSw4ICs4MjksOSBAQCBkZWYg
dGVzdF9za2lwXzAoKToKICAgICBhc3NlcnQgbm90IHVwZGF0ZWQKIAogCitAcHl0ZXN0Lm1hcmsu
eGZhaWwoc3lzLnZlcnNpb25bMF0gPT0gIjMiLAorICAgICAgICAgICAgICAgICAgIHJlYXNvbj0i
bWV0YWRhdGEgZG9lc24ndCBzdXBwb3J0IHB5MyIpCiBkZWYgdGVzdF9uZXdfc3VidGVzdCgpOgot
ICAgIHRlc3RfaWQgPSAiL3BhdGgvdG8vdGVzdC5odG0iCiAgICAgdGVzdHMgPSBbKCJwYXRoL3Rv
L3Rlc3QuaHRtIiwgW3Rlc3RfaWRdLCAidGVzdGhhcm5lc3MiLCAiIiJbdGVzdC5odG1dCiAgIFt0
ZXN0MV0KICAgICBleHBlY3RlZDogRkFJTCIiIildCkBAIC0xODUsMTIgKzg1MCwxMyBAQCBkZWYg
dGVzdF9uZXdfc3VidGVzdCgpOgogICAgIHVwZGF0ZWQgPSB1cGRhdGUodGVzdHMsIGxvZykKICAg
ICBuZXdfbWFuaWZlc3QgPSB1cGRhdGVkWzBdWzFdCiAgICAgYXNzZXJ0IG5vdCBuZXdfbWFuaWZl
c3QuaXNfZW1wdHkKLSAgICBhc3NlcnQgbmV3X21hbmlmZXN0LmdldF90ZXN0KHRlc3RfaWQpLmNo
aWxkcmVuWzBdLmdldCgiZXhwZWN0ZWQiKSA9PSAiRkFJTCIKLSAgICBhc3NlcnQgbmV3X21hbmlm
ZXN0LmdldF90ZXN0KHRlc3RfaWQpLmNoaWxkcmVuWzFdLmdldCgiZXhwZWN0ZWQiKSA9PSAiRkFJ
TCIKKyAgICBhc3NlcnQgbmV3X21hbmlmZXN0LmdldF90ZXN0KHRlc3RfaWQpLmNoaWxkcmVuWzBd
LmdldCgiZXhwZWN0ZWQiLCBkZWZhdWx0X3J1bl9pbmZvKSA9PSAiRkFJTCIKKyAgICBhc3NlcnQg
bmV3X21hbmlmZXN0LmdldF90ZXN0KHRlc3RfaWQpLmNoaWxkcmVuWzFdLmdldCgiZXhwZWN0ZWQi
LCBkZWZhdWx0X3J1bl9pbmZvKSA9PSAiRkFJTCIKIAogCitAcHl0ZXN0Lm1hcmsueGZhaWwoc3lz
LnZlcnNpb25bMF0gPT0gIjMiLAorICAgICAgICAgICAgICAgICAgIHJlYXNvbj0ibWV0YWRhdGEg
ZG9lc24ndCBzdXBwb3J0IHB5MyIpCiBkZWYgdGVzdF91cGRhdGVfbXVsdGlwbGVfMCgpOgotICAg
IHRlc3RfaWQgPSAiL3BhdGgvdG8vdGVzdC5odG0iCiAgICAgdGVzdHMgPSBbKCJwYXRoL3RvL3Rl
c3QuaHRtIiwgW3Rlc3RfaWRdLCAidGVzdGhhcm5lc3MiLCAiIiJbdGVzdC5odG1dCiAgIFt0ZXN0
MV0KICAgICBleHBlY3RlZDogRkFJTCIiIildCkBAIC0yMTcsMTQgKzg4MywxOSBAQCBkZWYgdGVz
dF91cGRhdGVfbXVsdGlwbGVfMCgpOgogICAgIG5ld19tYW5pZmVzdCA9IHVwZGF0ZWRbMF1bMV0K
IAogICAgIGFzc2VydCBub3QgbmV3X21hbmlmZXN0LmlzX2VtcHR5CisgICAgcnVuX2luZm9fMSA9
IGRlZmF1bHRfcnVuX2luZm8uY29weSgpCisgICAgcnVuX2luZm9fMS51cGRhdGUoeyJkZWJ1ZyI6
IEZhbHNlLCAib3MiOiAib3N4In0pCisgICAgcnVuX2luZm9fMiA9IGRlZmF1bHRfcnVuX2luZm8u
Y29weSgpCisgICAgcnVuX2luZm9fMi51cGRhdGUoeyJkZWJ1ZyI6IEZhbHNlLCAib3MiOiAibGlu
dXgifSkKICAgICBhc3NlcnQgbmV3X21hbmlmZXN0LmdldF90ZXN0KHRlc3RfaWQpLmNoaWxkcmVu
WzBdLmdldCgKLSAgICAgICAgImV4cGVjdGVkIiwgeyJkZWJ1ZyI6IEZhbHNlLCAib3MiOiAib3N4
In0pID09ICJGQUlMIgorICAgICAgICAiZXhwZWN0ZWQiLCBydW5faW5mb18xKSA9PSAiRkFJTCIK
ICAgICBhc3NlcnQgbmV3X21hbmlmZXN0LmdldF90ZXN0KHRlc3RfaWQpLmNoaWxkcmVuWzBdLmdl
dCgKICAgICAgICAgImV4cGVjdGVkIiwgeyJkZWJ1ZyI6IEZhbHNlLCAib3MiOiAibGludXgifSkg
PT0gIlRJTUVPVVQiCiAKIAorQHB5dGVzdC5tYXJrLnhmYWlsKHN5cy52ZXJzaW9uWzBdID09ICIz
IiwKKyAgICAgICAgICAgICAgICAgICByZWFzb249Im1ldGFkYXRhIGRvZXNuJ3Qgc3VwcG9ydCBw
eTMiKQogZGVmIHRlc3RfdXBkYXRlX211bHRpcGxlXzEoKToKLSAgICB0ZXN0X2lkID0gIi9wYXRo
L3RvL3Rlc3QuaHRtIgogICAgIHRlc3RzID0gWygicGF0aC90by90ZXN0Lmh0bSIsIFt0ZXN0X2lk
XSwgInRlc3RoYXJuZXNzIiwgIiIiW3Rlc3QuaHRtXQogICBbdGVzdDFdCiAgICAgZXhwZWN0ZWQ6
IEZBSUwiIiIpXQpAQCAtMjM2LDcgKzkwNyw3IEBAIGRlZiB0ZXN0X3VwZGF0ZV9tdWx0aXBsZV8x
KCk6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImV4cGVjdGVkIjog
IkZBSUwifSksCiAgICAgICAgICAgICAgICAgICAgICAgICgidGVzdF9lbmQiLCB7InRlc3QiOiB0
ZXN0X2lkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJzdGF0dXMiOiAi
T0sifSldLAotICAgICAgICAgICAgICAgICAgICAgIHJ1bl9pbmZvPXsiZGVidWciOiBGYWxzZSwg
Im9zIjogIm9zeCJ9KQorICAgICAgICAgICAgICAgICAgICAgIHJ1bl9pbmZvPXsib3MiOiAib3N4
In0pCiAKICAgICBsb2dfMSA9IHN1aXRlX2xvZyhbKCJ0ZXN0X3N0YXJ0IiwgeyJ0ZXN0IjogdGVz
dF9pZH0pLAogICAgICAgICAgICAgICAgICAgICAgICAoInRlc3Rfc3RhdHVzIiwgeyJ0ZXN0Ijog
dGVzdF9pZCwKQEAgLTI0NSwyMiArOTE2LDMwIEBAIGRlZiB0ZXN0X3VwZGF0ZV9tdWx0aXBsZV8x
KCk6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImV4cGVjdGVkIjog
IkZBSUwifSksCiAgICAgICAgICAgICAgICAgICAgICAgICgidGVzdF9lbmQiLCB7InRlc3QiOiB0
ZXN0X2lkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJzdGF0dXMiOiAi
T0sifSldLAotICAgICAgICAgICAgICAgICAgICAgIHJ1bl9pbmZvPXsiZGVidWciOiBGYWxzZSwg
Im9zIjogImxpbnV4In0pCisgICAgICAgICAgICAgICAgICAgICAgcnVuX2luZm89eyJvcyI6ICJs
aW51eCJ9KQogCiAgICAgdXBkYXRlZCA9IHVwZGF0ZSh0ZXN0cywgbG9nXzAsIGxvZ18xKQogICAg
IG5ld19tYW5pZmVzdCA9IHVwZGF0ZWRbMF1bMV0KIAogICAgIGFzc2VydCBub3QgbmV3X21hbmlm
ZXN0LmlzX2VtcHR5CisgICAgcnVuX2luZm9fMSA9IGRlZmF1bHRfcnVuX2luZm8uY29weSgpCisg
ICAgcnVuX2luZm9fMS51cGRhdGUoeyJvcyI6ICJvc3gifSkKKyAgICBydW5faW5mb18yID0gZGVm
YXVsdF9ydW5faW5mby5jb3B5KCkKKyAgICBydW5faW5mb18yLnVwZGF0ZSh7Im9zIjogImxpbnV4
In0pCisgICAgcnVuX2luZm9fMyA9IGRlZmF1bHRfcnVuX2luZm8uY29weSgpCisgICAgcnVuX2lu
Zm9fMy51cGRhdGUoeyJvcyI6ICJ3aW4ifSkKKwogICAgIGFzc2VydCBuZXdfbWFuaWZlc3QuZ2V0
X3Rlc3QodGVzdF9pZCkuY2hpbGRyZW5bMF0uZ2V0KAotICAgICAgICAiZXhwZWN0ZWQiLCB7ImRl
YnVnIjogRmFsc2UsICJvcyI6ICJvc3gifSkgPT0gIkZBSUwiCisgICAgICAgICJleHBlY3RlZCIs
IHJ1bl9pbmZvXzEpID09ICJGQUlMIgogICAgIGFzc2VydCBuZXdfbWFuaWZlc3QuZ2V0X3Rlc3Qo
dGVzdF9pZCkuY2hpbGRyZW5bMF0uZ2V0KAotICAgICAgICAiZXhwZWN0ZWQiLCB7ImRlYnVnIjog
RmFsc2UsICJvcyI6ICJsaW51eCJ9KSA9PSAiVElNRU9VVCIKKyAgICAgICAgImV4cGVjdGVkIiwg
cnVuX2luZm9fMikgPT0gIlRJTUVPVVQiCiAgICAgYXNzZXJ0IG5ld19tYW5pZmVzdC5nZXRfdGVz
dCh0ZXN0X2lkKS5jaGlsZHJlblswXS5nZXQoCi0gICAgICAgICJleHBlY3RlZCIsIHsiZGVidWci
OiBGYWxzZSwgIm9zIjogIndpbmRvd3MifSkgPT0gIkZBSUwiCisgICAgICAgICJleHBlY3RlZCIs
IHJ1bl9pbmZvXzMpID09ICJGQUlMIgogCiAKK0BweXRlc3QubWFyay54ZmFpbChzeXMudmVyc2lv
blswXSA9PSAiMyIsCisgICAgICAgICAgICAgICAgICAgcmVhc29uPSJtZXRhZGF0YSBkb2Vzbid0
IHN1cHBvcnQgcHkzIikKIGRlZiB0ZXN0X3VwZGF0ZV9tdWx0aXBsZV8yKCk6Ci0gICAgdGVzdF9p
ZCA9ICIvcGF0aC90by90ZXN0Lmh0bSIKICAgICB0ZXN0cyA9IFsoInBhdGgvdG8vdGVzdC5odG0i
LCBbdGVzdF9pZF0sICJ0ZXN0aGFybmVzcyIsICIiIlt0ZXN0Lmh0bV0KICAgW3Rlc3QxXQogICAg
IGV4cGVjdGVkOiBGQUlMIiIiKV0KQEAgLTI4NiwxNSArOTY1LDIxIEBAIGRlZiB0ZXN0X3VwZGF0
ZV9tdWx0aXBsZV8yKCk6CiAgICAgdXBkYXRlZCA9IHVwZGF0ZSh0ZXN0cywgbG9nXzAsIGxvZ18x
KQogICAgIG5ld19tYW5pZmVzdCA9IHVwZGF0ZWRbMF1bMV0KIAorICAgIHJ1bl9pbmZvXzEgPSBk
ZWZhdWx0X3J1bl9pbmZvLmNvcHkoKQorICAgIHJ1bl9pbmZvXzEudXBkYXRlKHsiZGVidWciOiBG
YWxzZSwgIm9zIjogIm9zeCJ9KQorICAgIHJ1bl9pbmZvXzIgPSBkZWZhdWx0X3J1bl9pbmZvLmNv
cHkoKQorICAgIHJ1bl9pbmZvXzIudXBkYXRlKHsiZGVidWciOiBUcnVlLCAib3MiOiAib3N4In0p
CisKICAgICBhc3NlcnQgbm90IG5ld19tYW5pZmVzdC5pc19lbXB0eQogICAgIGFzc2VydCBuZXdf
bWFuaWZlc3QuZ2V0X3Rlc3QodGVzdF9pZCkuY2hpbGRyZW5bMF0uZ2V0KAotICAgICAgICAiZXhw
ZWN0ZWQiLCB7ImRlYnVnIjogRmFsc2UsICJvcyI6ICJvc3gifSkgPT0gIkZBSUwiCisgICAgICAg
ICJleHBlY3RlZCIsIHJ1bl9pbmZvXzEpID09ICJGQUlMIgogICAgIGFzc2VydCBuZXdfbWFuaWZl
c3QuZ2V0X3Rlc3QodGVzdF9pZCkuY2hpbGRyZW5bMF0uZ2V0KAotICAgICAgICAiZXhwZWN0ZWQi
LCB7ImRlYnVnIjogVHJ1ZSwgIm9zIjogIm9zeCJ9KSA9PSAiVElNRU9VVCIKKyAgICAgICAgImV4
cGVjdGVkIiwgcnVuX2luZm9fMikgPT0gIlRJTUVPVVQiCiAKIAorQHB5dGVzdC5tYXJrLnhmYWls
KHN5cy52ZXJzaW9uWzBdID09ICIzIiwKKyAgICAgICAgICAgICAgICAgICByZWFzb249Im1ldGFk
YXRhIGRvZXNuJ3Qgc3VwcG9ydCBweTMiKQogZGVmIHRlc3RfdXBkYXRlX211bHRpcGxlXzMoKToK
LSAgICB0ZXN0X2lkID0gIi9wYXRoL3RvL3Rlc3QuaHRtIgogICAgIHRlc3RzID0gWygicGF0aC90
by90ZXN0Lmh0bSIsIFt0ZXN0X2lkXSwgInRlc3RoYXJuZXNzIiwgIiIiW3Rlc3QuaHRtXQogICBb
dGVzdDFdCiAgICAgZXhwZWN0ZWQ6CkBAIC0zMjIsMTUgKzEwMDcsMjEgQEAgZGVmIHRlc3RfdXBk
YXRlX211bHRpcGxlXzMoKToKICAgICB1cGRhdGVkID0gdXBkYXRlKHRlc3RzLCBsb2dfMCwgbG9n
XzEpCiAgICAgbmV3X21hbmlmZXN0ID0gdXBkYXRlZFswXVsxXQogCisgICAgcnVuX2luZm9fMSA9
IGRlZmF1bHRfcnVuX2luZm8uY29weSgpCisgICAgcnVuX2luZm9fMS51cGRhdGUoeyJkZWJ1ZyI6
IEZhbHNlLCAib3MiOiAib3N4In0pCisgICAgcnVuX2luZm9fMiA9IGRlZmF1bHRfcnVuX2luZm8u
Y29weSgpCisgICAgcnVuX2luZm9fMi51cGRhdGUoeyJkZWJ1ZyI6IFRydWUsICJvcyI6ICJvc3gi
fSkKKwogICAgIGFzc2VydCBub3QgbmV3X21hbmlmZXN0LmlzX2VtcHR5CiAgICAgYXNzZXJ0IG5l
d19tYW5pZmVzdC5nZXRfdGVzdCh0ZXN0X2lkKS5jaGlsZHJlblswXS5nZXQoCi0gICAgICAgICJl
eHBlY3RlZCIsIHsiZGVidWciOiBGYWxzZSwgIm9zIjogIm9zeCJ9KSA9PSAiRkFJTCIKKyAgICAg
ICAgImV4cGVjdGVkIiwgcnVuX2luZm9fMSkgPT0gIkZBSUwiCiAgICAgYXNzZXJ0IG5ld19tYW5p
ZmVzdC5nZXRfdGVzdCh0ZXN0X2lkKS5jaGlsZHJlblswXS5nZXQoCi0gICAgICAgICJleHBlY3Rl
ZCIsIHsiZGVidWciOiBUcnVlLCAib3MiOiAib3N4In0pID09ICJUSU1FT1VUIgorICAgICAgICAi
ZXhwZWN0ZWQiLCBydW5faW5mb18yKSA9PSAiVElNRU9VVCIKIAogCitAcHl0ZXN0Lm1hcmsueGZh
aWwoc3lzLnZlcnNpb25bMF0gPT0gIjMiLAorICAgICAgICAgICAgICAgICAgIHJlYXNvbj0ibWV0
YWRhdGEgZG9lc24ndCBzdXBwb3J0IHB5MyIpCiBkZWYgdGVzdF91cGRhdGVfaWdub3JlX2V4aXN0
aW5nKCk6Ci0gICAgdGVzdF9pZCA9ICIvcGF0aC90by90ZXN0Lmh0bSIKICAgICB0ZXN0cyA9IFso
InBhdGgvdG8vdGVzdC5odG0iLCBbdGVzdF9pZF0sICJ0ZXN0aGFybmVzcyIsICIiIlt0ZXN0Lmh0
bV0KICAgW3Rlc3QxXQogICAgIGV4cGVjdGVkOgpAQCAtMzU4LDE1ICsxMDQ5LDMxOCBAQCBkZWYg
dGVzdF91cGRhdGVfaWdub3JlX2V4aXN0aW5nKCk6CiAgICAgdXBkYXRlZCA9IHVwZGF0ZSh0ZXN0
cywgbG9nXzAsIGxvZ18xKQogICAgIG5ld19tYW5pZmVzdCA9IHVwZGF0ZWRbMF1bMV0KIAorICAg
IHJ1bl9pbmZvXzEgPSBkZWZhdWx0X3J1bl9pbmZvLmNvcHkoKQorICAgIHJ1bl9pbmZvXzEudXBk
YXRlKHsiZGVidWciOiBGYWxzZSwgIm9zIjogImxpbnV4In0pCisgICAgcnVuX2luZm9fMiA9IGRl
ZmF1bHRfcnVuX2luZm8uY29weSgpCisgICAgcnVuX2luZm9fMi51cGRhdGUoeyJkZWJ1ZyI6IEZh
bHNlLCAib3MiOiAib3N4In0pCisKKyAgICBhc3NlcnQgbm90IG5ld19tYW5pZmVzdC5pc19lbXB0
eQorICAgIGFzc2VydCBuZXdfbWFuaWZlc3QuZ2V0X3Rlc3QodGVzdF9pZCkuY2hpbGRyZW5bMF0u
Z2V0KAorICAgICAgICAiZXhwZWN0ZWQiLCBydW5faW5mb18xKSA9PSAiRkFJTCIKKyAgICBhc3Nl
cnQgbmV3X21hbmlmZXN0LmdldF90ZXN0KHRlc3RfaWQpLmNoaWxkcmVuWzBdLmdldCgKKyAgICAg
ICAgImV4cGVjdGVkIiwgcnVuX2luZm9fMikgPT0gIk5PVFJVTiIKKworCitAcHl0ZXN0Lm1hcmsu
eGZhaWwoc3lzLnZlcnNpb25bMF0gPT0gIjMiLAorICAgICAgICAgICAgICAgICAgIHJlYXNvbj0i
bWV0YWRhdGEgZG9lc24ndCBzdXBwb3J0IHB5MyIpCitkZWYgdGVzdF91cGRhdGVfbmV3X3Rlc3Qo
KToKKyAgICB0ZXN0cyA9IFsoInBhdGgvdG8vdGVzdC5odG0iLCBbdGVzdF9pZF0sICJ0ZXN0aGFy
bmVzcyIsIE5vbmUpXQorCisgICAgbG9nXzAgPSBzdWl0ZV9sb2coWygidGVzdF9zdGFydCIsIHsi
dGVzdCI6IHRlc3RfaWR9KSwKKyAgICAgICAgICAgICAgICAgICAgICAgKCJ0ZXN0X3N0YXR1cyIs
IHsidGVzdCI6IHRlc3RfaWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgInN1YnRlc3QiOiAidGVzdDEiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICJzdGF0dXMiOiAiRkFJTCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgImV4cGVjdGVkIjogIlBBU1MifSksCisgICAgICAgICAgICAgICAgICAgICAgICgi
dGVzdF9lbmQiLCB7InRlc3QiOiB0ZXN0X2lkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICJzdGF0dXMiOiAiT0sifSldKQorICAgIHVwZGF0ZWQgPSB1cGRhdGUodGVzdHMs
IGxvZ18wKQorICAgIG5ld19tYW5pZmVzdCA9IHVwZGF0ZWRbMF1bMV0KKworICAgIHJ1bl9pbmZv
XzEgPSBkZWZhdWx0X3J1bl9pbmZvLmNvcHkoKQorCisgICAgYXNzZXJ0IG5vdCBuZXdfbWFuaWZl
c3QuaXNfZW1wdHkKKyAgICBhc3NlcnQgbmV3X21hbmlmZXN0LmdldF90ZXN0KCJ0ZXN0Lmh0bSIp
IGlzIE5vbmUKKyAgICBhc3NlcnQgbGVuKG5ld19tYW5pZmVzdC5nZXRfdGVzdCh0ZXN0X2lkKS5j
aGlsZHJlbikgPT0gMQorICAgIGFzc2VydCBuZXdfbWFuaWZlc3QuZ2V0X3Rlc3QodGVzdF9pZCku
Y2hpbGRyZW5bMF0uZ2V0KAorICAgICAgICAiZXhwZWN0ZWQiLCBydW5faW5mb18xKSA9PSAiRkFJ
TCIKKworCitAcHl0ZXN0Lm1hcmsueGZhaWwoc3lzLnZlcnNpb25bMF0gPT0gIjMiLAorICAgICAg
ICAgICAgICAgICAgIHJlYXNvbj0ibWV0YWRhdGEgZG9lc24ndCBzdXBwb3J0IHB5MyIpCitkZWYg
dGVzdF91cGRhdGVfZHVwbGljYXRlKCk6CisgICAgdGVzdHMgPSBbKCJwYXRoL3RvL3Rlc3QuaHRt
IiwgW3Rlc3RfaWRdLCAidGVzdGhhcm5lc3MiLCAiIiIKK1t0ZXN0Lmh0bV0KKyAgZXhwZWN0ZWQ6
IEVSUk9SIiIiKV0KKworICAgIGxvZ18wID0gc3VpdGVfbG9nKFsoInRlc3Rfc3RhcnQiLCB7InRl
c3QiOiB0ZXN0X2lkfSksCisgICAgICAgICAgICAgICAgICAgICAgICgidGVzdF9lbmQiLCB7InRl
c3QiOiB0ZXN0X2lkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJzdGF0
dXMiOiAiUEFTUyJ9KV0pCisgICAgbG9nXzEgPSBzdWl0ZV9sb2coWygidGVzdF9zdGFydCIsIHsi
dGVzdCI6IHRlc3RfaWR9KSwKKyAgICAgICAgICAgICAgICAgICAgICAgKCJ0ZXN0X2VuZCIsIHsi
dGVzdCI6IHRlc3RfaWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInN0
YXR1cyI6ICJGQUlMIn0pXSkKKworICAgIHVwZGF0ZWQgPSB1cGRhdGUodGVzdHMsIGxvZ18wLCBs
b2dfMSkKKyAgICBuZXdfbWFuaWZlc3QgPSB1cGRhdGVkWzBdWzFdCisgICAgcnVuX2luZm9fMSA9
IGRlZmF1bHRfcnVuX2luZm8uY29weSgpCisKKyAgICBhc3NlcnQgbmV3X21hbmlmZXN0LmdldF90
ZXN0KHRlc3RfaWQpLmdldCgKKyAgICAgICAgImV4cGVjdGVkIiwgcnVuX2luZm9fMSkgPT0gIkVS
Uk9SIgorCisKK0BweXRlc3QubWFyay54ZmFpbChzeXMudmVyc2lvblswXSA9PSAiMyIsCisgICAg
ICAgICAgICAgICAgICAgcmVhc29uPSJtZXRhZGF0YSBkb2Vzbid0IHN1cHBvcnQgcHkzIikKK2Rl
ZiB0ZXN0X3VwZGF0ZV9kaXNhYmxlX2ludGVybWl0dGVudCgpOgorICAgIHRlc3RzID0gWygicGF0
aC90by90ZXN0Lmh0bSIsIFt0ZXN0X2lkXSwgInRlc3RoYXJuZXNzIiwgIiIiCitbdGVzdC5odG1d
CisgIGV4cGVjdGVkOiBFUlJPUiIiIildCisKKyAgICBsb2dfMCA9IHN1aXRlX2xvZyhbKCJ0ZXN0
X3N0YXJ0IiwgeyJ0ZXN0IjogdGVzdF9pZH0pLAorICAgICAgICAgICAgICAgICAgICAgICAoInRl
c3RfZW5kIiwgeyJ0ZXN0IjogdGVzdF9pZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAic3RhdHVzIjogIlBBU1MifSldKQorICAgIGxvZ18xID0gc3VpdGVfbG9nKFsoInRl
c3Rfc3RhcnQiLCB7InRlc3QiOiB0ZXN0X2lkfSksCisgICAgICAgICAgICAgICAgICAgICAgICgi
dGVzdF9lbmQiLCB7InRlc3QiOiB0ZXN0X2lkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICJzdGF0dXMiOiAiRkFJTCJ9KV0pCisKKyAgICB1cGRhdGVkID0gdXBkYXRlKHRl
c3RzLCBsb2dfMCwgbG9nXzEsIGRpc2FibGVfaW50ZXJtaXR0ZW50PSJTb21lIG1lc3NhZ2UiKQor
ICAgIG5ld19tYW5pZmVzdCA9IHVwZGF0ZWRbMF1bMV0KKyAgICBydW5faW5mb18xID0gZGVmYXVs
dF9ydW5faW5mby5jb3B5KCkKKworICAgIGFzc2VydCBuZXdfbWFuaWZlc3QuZ2V0X3Rlc3QodGVz
dF9pZCkuZ2V0KAorICAgICAgICAiZGlzYWJsZWQiLCBydW5faW5mb18xKSA9PSAiU29tZSBtZXNz
YWdlIgorCisKK0BweXRlc3QubWFyay54ZmFpbChzeXMudmVyc2lvblswXSA9PSAiMyIsCisgICAg
ICAgICAgICAgICAgICAgcmVhc29uPSJtZXRhZGF0YSBkb2Vzbid0IHN1cHBvcnQgcHkzIikKK2Rl
ZiB0ZXN0X3VwZGF0ZV9zdGFiaWxpdHlfY29uZGl0aW9uYWxfaW5zdGFiaWxpdHkoKToKKyAgICB0
ZXN0cyA9IFsoInBhdGgvdG8vdGVzdC5odG0iLCBbdGVzdF9pZF0sICJ0ZXN0aGFybmVzcyIsICIi
IgorW3Rlc3QuaHRtXQorICBleHBlY3RlZDogRVJST1IiIiIpXQorCisgICAgbG9nXzAgPSBzdWl0
ZV9sb2coWygidGVzdF9zdGFydCIsIHsidGVzdCI6IHRlc3RfaWR9KSwKKyAgICAgICAgICAgICAg
ICAgICAgICAgKCJ0ZXN0X2VuZCIsIHsidGVzdCI6IHRlc3RfaWQsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgInN0YXR1cyI6ICJQQVNTIn0pXSwKKyAgICAgICAgICAgICAg
ICAgICAgICBydW5faW5mbz17Im9zIjogImxpbnV4In0pCisgICAgbG9nXzEgPSBzdWl0ZV9sb2co
WygidGVzdF9zdGFydCIsIHsidGVzdCI6IHRlc3RfaWR9KSwKKyAgICAgICAgICAgICAgICAgICAg
ICAgKCJ0ZXN0X2VuZCIsIHsidGVzdCI6IHRlc3RfaWQsCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgInN0YXR1cyI6ICJGQUlMIn0pXSwKKyAgICAgICAgICAgICAgICAgICAg
ICBydW5faW5mbz17Im9zIjogImxpbnV4In0pCisgICAgbG9nXzIgPSBzdWl0ZV9sb2coWygidGVz
dF9zdGFydCIsIHsidGVzdCI6IHRlc3RfaWR9KSwKKyAgICAgICAgICAgICAgICAgICAgICAgKCJ0
ZXN0X2VuZCIsIHsidGVzdCI6IHRlc3RfaWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgInN0YXR1cyI6ICJGQUlMIn0pXSwKKyAgICAgICAgICAgICAgICAgICAgICBydW5f
aW5mbz17Im9zIjogIm1hYyJ9KQorCisgICAgdXBkYXRlZCA9IHVwZGF0ZSh0ZXN0cywgbG9nXzAs
IGxvZ18xLCBsb2dfMiwgZGlzYWJsZV9pbnRlcm1pdHRlbnQ9IlNvbWUgbWVzc2FnZSIpCisgICAg
bmV3X21hbmlmZXN0ID0gdXBkYXRlZFswXVsxXQorICAgIHJ1bl9pbmZvXzEgPSBkZWZhdWx0X3J1
bl9pbmZvLmNvcHkoKQorICAgIHJ1bl9pbmZvXzEudXBkYXRlKHsib3MiOiAibGludXgifSkKKyAg
ICBydW5faW5mb18yID0gZGVmYXVsdF9ydW5faW5mby5jb3B5KCkKKyAgICBydW5faW5mb18yLnVw
ZGF0ZSh7Im9zIjogIm1hYyJ9KQorCisgICAgYXNzZXJ0IG5ld19tYW5pZmVzdC5nZXRfdGVzdCh0
ZXN0X2lkKS5nZXQoCisgICAgICAgICJkaXNhYmxlZCIsIHJ1bl9pbmZvXzEpID09ICJTb21lIG1l
c3NhZ2UiCisgICAgd2l0aCBweXRlc3QucmFpc2VzKEtleUVycm9yKToKKyAgICAgICAgYXNzZXJ0
IG5ld19tYW5pZmVzdC5nZXRfdGVzdCh0ZXN0X2lkKS5nZXQoCisgICAgICAgICAgICAiZGlzYWJs
ZWQiLCBydW5faW5mb18yKQorICAgIGFzc2VydCBuZXdfbWFuaWZlc3QuZ2V0X3Rlc3QodGVzdF9p
ZCkuZ2V0KAorICAgICAgICAiZXhwZWN0ZWQiLCBydW5faW5mb18yKSA9PSAiRkFJTCIKKworCitA
cHl0ZXN0Lm1hcmsueGZhaWwoc3lzLnZlcnNpb25bMF0gPT0gIjMiLAorICAgICAgICAgICAgICAg
ICAgIHJlYXNvbj0ibWV0YWRhdGEgZG9lc24ndCBzdXBwb3J0IHB5MyIpCitkZWYgdGVzdF91cGRh
dGVfZnVsbCgpOgorICAgIHRlc3RzID0gWygicGF0aC90by90ZXN0Lmh0bSIsIFt0ZXN0X2lkXSwg
InRlc3RoYXJuZXNzIiwgIiIiW3Rlc3QuaHRtXQorICBbdGVzdDFdCisgICAgZXhwZWN0ZWQ6Cisg
ICAgICBpZiBkZWJ1ZzogVElNRU9VVAorICAgICAgaWYgbm90IGRlYnVnIGFuZCBvcyA9PSAib3N4
IjogTk9UUlVOCisKKyAgW3Rlc3QyXQorICAgIGV4cGVjdGVkOiBGQUlMCisKK1t0ZXN0LmpzXQor
ICBbdGVzdDFdCisgICAgZXhwZWN0ZWQ6IEZBSUwKKyIiIildCisKKyAgICBsb2dfMCA9IHN1aXRl
X2xvZyhbKCJ0ZXN0X3N0YXJ0IiwgeyJ0ZXN0IjogdGVzdF9pZH0pLAorICAgICAgICAgICAgICAg
ICAgICAgICAoInRlc3Rfc3RhdHVzIiwgeyJ0ZXN0IjogdGVzdF9pZCwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAic3VidGVzdCI6ICJ0ZXN0MSIsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInN0YXR1cyI6ICJGQUlMIiwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiZXhwZWN0ZWQiOiAiUEFTUyJ9KSwKKyAg
ICAgICAgICAgICAgICAgICAgICAgKCJ0ZXN0X2VuZCIsIHsidGVzdCI6IHRlc3RfaWQsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInN0YXR1cyI6ICJPSyJ9KV0sCisgICAg
ICAgICAgICAgICAgICAgICAgcnVuX2luZm89eyJkZWJ1ZyI6IEZhbHNlfSkKKworICAgIGxvZ18x
ID0gc3VpdGVfbG9nKFsoInRlc3Rfc3RhcnQiLCB7InRlc3QiOiB0ZXN0X2lkfSksCisgICAgICAg
ICAgICAgICAgICAgICAgICgidGVzdF9zdGF0dXMiLCB7InRlc3QiOiB0ZXN0X2lkLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJzdWJ0ZXN0IjogInRlc3QxIiwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAic3RhdHVzIjogIkVSUk9SIiwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiZXhwZWN0ZWQiOiAiUEFT
UyJ9KSwKKyAgICAgICAgICAgICAgICAgICAgICAgKCJ0ZXN0X2VuZCIsIHsidGVzdCI6IHRlc3Rf
aWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInN0YXR1cyI6ICJPSyJ9
KV0sCisgICAgICAgICAgICAgICAgICAgICAgcnVuX2luZm89eyJkZWJ1ZyI6IFRydWV9KQorCisg
ICAgdXBkYXRlZCA9IHVwZGF0ZSh0ZXN0cywgbG9nXzAsIGxvZ18xLCBmdWxsX3VwZGF0ZT1UcnVl
KQorICAgIG5ld19tYW5pZmVzdCA9IHVwZGF0ZWRbMF1bMV0KKworICAgIHJ1bl9pbmZvXzEgPSBk
ZWZhdWx0X3J1bl9pbmZvLmNvcHkoKQorICAgIHJ1bl9pbmZvXzEudXBkYXRlKHsiZGVidWciOiBG
YWxzZSwgIm9zIjogIndpbiJ9KQorICAgIHJ1bl9pbmZvXzIgPSBkZWZhdWx0X3J1bl9pbmZvLmNv
cHkoKQorICAgIHJ1bl9pbmZvXzIudXBkYXRlKHsiZGVidWciOiBUcnVlLCAib3MiOiAib3N4In0p
CisKKyAgICBhc3NlcnQgbm90IG5ld19tYW5pZmVzdC5pc19lbXB0eQorICAgIGFzc2VydCBuZXdf
bWFuaWZlc3QuZ2V0X3Rlc3QoInRlc3QuanMiKSBpcyBOb25lCisgICAgYXNzZXJ0IGxlbihuZXdf
bWFuaWZlc3QuZ2V0X3Rlc3QodGVzdF9pZCkuY2hpbGRyZW4pID09IDEKKyAgICBhc3NlcnQgbmV3
X21hbmlmZXN0LmdldF90ZXN0KHRlc3RfaWQpLmNoaWxkcmVuWzBdLmdldCgKKyAgICAgICAgImV4
cGVjdGVkIiwgcnVuX2luZm9fMSkgPT0gIkZBSUwiCisgICAgYXNzZXJ0IG5ld19tYW5pZmVzdC5n
ZXRfdGVzdCh0ZXN0X2lkKS5jaGlsZHJlblswXS5nZXQoCisgICAgICAgICJleHBlY3RlZCIsIHJ1
bl9pbmZvXzIpID09ICJFUlJPUiIKKworCitAcHl0ZXN0Lm1hcmsueGZhaWwoc3lzLnZlcnNpb25b
MF0gPT0gIjMiLAorICAgICAgICAgICAgICAgICAgIHJlYXNvbj0ibWV0YWRhdGEgZG9lc24ndCBz
dXBwb3J0IHB5MyIpCitkZWYgdGVzdF91cGRhdGVfZnVsbF91bmtub3duKCk6CisgICAgdGVzdHMg
PSBbKCJwYXRoL3RvL3Rlc3QuaHRtIiwgW3Rlc3RfaWRdLCAidGVzdGhhcm5lc3MiLCAiIiJbdGVz
dC5odG1dCisgIFt0ZXN0MV0KKyAgICBleHBlY3RlZDoKKyAgICAgIGlmIHJlbGVhc2Vfb3JfYmV0
YTogRVJST1IKKyAgICAgIGlmIG5vdCBkZWJ1ZyBhbmQgb3MgPT0gIm9zeCI6IE5PVFJVTgorIiIi
KV0KKworICAgIGxvZ18wID0gc3VpdGVfbG9nKFsoInRlc3Rfc3RhcnQiLCB7InRlc3QiOiB0ZXN0
X2lkfSksCisgICAgICAgICAgICAgICAgICAgICAgICgidGVzdF9zdGF0dXMiLCB7InRlc3QiOiB0
ZXN0X2lkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJzdWJ0ZXN0
IjogInRlc3QxIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAic3Rh
dHVzIjogIkZBSUwiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJl
eHBlY3RlZCI6ICJQQVNTIn0pLAorICAgICAgICAgICAgICAgICAgICAgICAoInRlc3RfZW5kIiwg
eyJ0ZXN0IjogdGVzdF9pZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAi
c3RhdHVzIjogIk9LIn0pXSwKKyAgICAgICAgICAgICAgICAgICAgICBydW5faW5mbz17ImRlYnVn
IjogRmFsc2UsICJyZWxlYXNlX29yX2JldGEiOiBGYWxzZX0pCisKKyAgICBsb2dfMSA9IHN1aXRl
X2xvZyhbKCJ0ZXN0X3N0YXJ0IiwgeyJ0ZXN0IjogdGVzdF9pZH0pLAorICAgICAgICAgICAgICAg
ICAgICAgICAoInRlc3Rfc3RhdHVzIiwgeyJ0ZXN0IjogdGVzdF9pZCwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAic3VidGVzdCI6ICJ0ZXN0MSIsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInN0YXR1cyI6ICJGQUlMIiwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiZXhwZWN0ZWQiOiAiUEFTUyJ9KSwKKyAg
ICAgICAgICAgICAgICAgICAgICAgKCJ0ZXN0X2VuZCIsIHsidGVzdCI6IHRlc3RfaWQsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInN0YXR1cyI6ICJPSyJ9KV0sCisgICAg
ICAgICAgICAgICAgICAgICAgcnVuX2luZm89eyJkZWJ1ZyI6IFRydWUsICJyZWxlYXNlX29yX2Jl
dGEiOiBGYWxzZX0pCisKKyAgICB1cGRhdGVkID0gdXBkYXRlKHRlc3RzLCBsb2dfMCwgbG9nXzEs
IGZ1bGxfdXBkYXRlPVRydWUpCisgICAgbmV3X21hbmlmZXN0ID0gdXBkYXRlZFswXVsxXQorCisg
ICAgcnVuX2luZm9fMSA9IGRlZmF1bHRfcnVuX2luZm8uY29weSgpCisgICAgcnVuX2luZm9fMS51
cGRhdGUoeyJyZWxlYXNlX29yX2JldGEiOiBGYWxzZX0pCisgICAgcnVuX2luZm9fMiA9IGRlZmF1
bHRfcnVuX2luZm8uY29weSgpCisgICAgcnVuX2luZm9fMi51cGRhdGUoeyJyZWxlYXNlX29yX2Jl
dGEiOiBUcnVlfSkKKwogICAgIGFzc2VydCBub3QgbmV3X21hbmlmZXN0LmlzX2VtcHR5CiAgICAg
YXNzZXJ0IG5ld19tYW5pZmVzdC5nZXRfdGVzdCh0ZXN0X2lkKS5jaGlsZHJlblswXS5nZXQoCi0g
ICAgICAgICJleHBlY3RlZCIsIHsiZGVidWciOiBUcnVlLCAib3MiOiAib3N4In0pID09ICJGQUlM
IgorICAgICAgICAiZXhwZWN0ZWQiLCBydW5faW5mb18xKSA9PSAiRkFJTCIKICAgICBhc3NlcnQg
bmV3X21hbmlmZXN0LmdldF90ZXN0KHRlc3RfaWQpLmNoaWxkcmVuWzBdLmdldCgKLSAgICAgICAg
ImV4cGVjdGVkIiwgeyJkZWJ1ZyI6IEZhbHNlLCAib3MiOiAib3N4In0pID09ICJOT1RSVU4iCisg
ICAgICAgICJleHBlY3RlZCIsIHJ1bl9pbmZvXzIpID09ICJFUlJPUiIKKworCisKK0BweXRlc3Qu
bWFyay54ZmFpbChzeXMudmVyc2lvblswXSA9PSAiMyIsCisgICAgICAgICAgICAgICAgICAgcmVh
c29uPSJtZXRhZGF0YSBkb2Vzbid0IHN1cHBvcnQgcHkzIikKK2RlZiB0ZXN0X3VwZGF0ZV9kZWZh
dWx0KCk6CisgICAgdGVzdHMgPSBbKCJwYXRoL3RvL3Rlc3QuaHRtIiwgW3Rlc3RfaWRdLCAidGVz
dGhhcm5lc3MiLCAiIiJbdGVzdC5odG1dCisgIFt0ZXN0MV0KKyAgICBleHBlY3RlZDoKKyAgICAg
IGlmIG9zID09ICJtYWMiOiBGQUlMCisgICAgICBFUlJPUiIiIildCisKKyAgICBsb2dfMCA9IHN1
aXRlX2xvZyhbKCJ0ZXN0X3N0YXJ0IiwgeyJ0ZXN0IjogdGVzdF9pZH0pLAorICAgICAgICAgICAg
ICAgICAgICAgICAoInRlc3Rfc3RhdHVzIiwgeyJ0ZXN0IjogdGVzdF9pZCwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAic3VidGVzdCI6ICJ0ZXN0MSIsCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInN0YXR1cyI6ICJQQVNTIiwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiZXhwZWN0ZWQiOiAiRkFJTCJ9KSwK
KyAgICAgICAgICAgICAgICAgICAgICAgKCJ0ZXN0X2VuZCIsIHsidGVzdCI6IHRlc3RfaWQsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInN0YXR1cyI6ICJPSyJ9KV0sCisg
ICAgICAgICAgICAgICAgICAgICAgcnVuX2luZm89eyJvcyI6ICJtYWMifSkKKworICAgIGxvZ18x
ID0gc3VpdGVfbG9nKFsoInRlc3Rfc3RhcnQiLCB7InRlc3QiOiB0ZXN0X2lkfSksCisgICAgICAg
ICAgICAgICAgICAgICAgICgidGVzdF9zdGF0dXMiLCB7InRlc3QiOiB0ZXN0X2lkLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJzdWJ0ZXN0IjogInRlc3QxIiwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAic3RhdHVzIjogIlBBU1MiLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJleHBlY3RlZCI6ICJFUlJP
UiJ9KSwKKyAgICAgICAgICAgICAgICAgICAgICAgKCJ0ZXN0X2VuZCIsIHsidGVzdCI6IHRlc3Rf
aWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInN0YXR1cyI6ICJPSyJ9
KV0sCisgICAgICAgICAgICAgICAgICAgICAgcnVuX2luZm89eyJvcyI6ICJsaW51eCJ9KQorCisg
ICAgdXBkYXRlZCA9IHVwZGF0ZSh0ZXN0cywgbG9nXzAsIGxvZ18xKQorICAgIG5ld19tYW5pZmVz
dCA9IHVwZGF0ZWRbMF1bMV0KKworICAgIGFzc2VydCBuZXdfbWFuaWZlc3QuaXNfZW1wdHkKKwor
CitAcHl0ZXN0Lm1hcmsueGZhaWwoc3lzLnZlcnNpb25bMF0gPT0gIjMiLAorICAgICAgICAgICAg
ICAgICAgIHJlYXNvbj0ibWV0YWRhdGEgZG9lc24ndCBzdXBwb3J0IHB5MyIpCitkZWYgdGVzdF91
cGRhdGVfZGVmYXVsdF8xKCk6CisgICAgdGVzdHMgPSBbKCJwYXRoL3RvL3Rlc3QuaHRtIiwgW3Rl
c3RfaWRdLCAidGVzdGhhcm5lc3MiLCAiIiIKK1t0ZXN0Lmh0bV0KKyAgZXhwZWN0ZWQ6CisgICAg
aWYgb3MgPT0gIm1hYyI6IFRJTUVPVVQKKyAgICBFUlJPUiIiIildCisKKyAgICBsb2dfMCA9IHN1
aXRlX2xvZyhbKCJ0ZXN0X3N0YXJ0IiwgeyJ0ZXN0IjogdGVzdF9pZH0pLAorICAgICAgICAgICAg
ICAgICAgICAgICAoInRlc3RfZW5kIiwgeyJ0ZXN0IjogdGVzdF9pZCwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAiZXhwZWN0ZWQiOiAiRVJST1IiLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICJzdGF0dXMiOiAiRkFJTCJ9KV0sCisgICAgICAgICAg
ICAgICAgICAgICAgcnVuX2luZm89eyJvcyI6ICJsaW51eCJ9KQorCisgICAgdXBkYXRlZCA9IHVw
ZGF0ZSh0ZXN0cywgbG9nXzApCisgICAgbmV3X21hbmlmZXN0ID0gdXBkYXRlZFswXVsxXQorCisg
ICAgYXNzZXJ0IG5vdCBuZXdfbWFuaWZlc3QuaXNfZW1wdHkKKworICAgIHJ1bl9pbmZvXzEgPSBk
ZWZhdWx0X3J1bl9pbmZvLmNvcHkoKQorICAgIHJ1bl9pbmZvXzEudXBkYXRlKHsib3MiOiAibWFj
In0pCisgICAgcnVuX2luZm9fMiA9IGRlZmF1bHRfcnVuX2luZm8uY29weSgpCisgICAgcnVuX2lu
Zm9fMi51cGRhdGUoeyJvcyI6ICJ3aW4ifSkKKworICAgIGFzc2VydCBub3QgbmV3X21hbmlmZXN0
LmlzX2VtcHR5CisgICAgYXNzZXJ0IG5ld19tYW5pZmVzdC5nZXRfdGVzdCh0ZXN0X2lkKS5nZXQo
CisgICAgICAgICJleHBlY3RlZCIsIHJ1bl9pbmZvXzEpID09ICJUSU1FT1VUIgorICAgIGFzc2Vy
dCBuZXdfbWFuaWZlc3QuZ2V0X3Rlc3QodGVzdF9pZCkuZ2V0KAorICAgICAgICAiZXhwZWN0ZWQi
LCBydW5faW5mb18yKSA9PSAiRkFJTCIKIAogCitAcHl0ZXN0Lm1hcmsueGZhaWwoc3lzLnZlcnNp
b25bMF0gPT0gIjMiLAorICAgICAgICAgICAgICAgICAgIHJlYXNvbj0ibWV0YWRhdGEgZG9lc24n
dCBzdXBwb3J0IHB5MyIpCitkZWYgdGVzdF91cGRhdGVfZGVmYXVsdF8yKCk6CisgICAgdGVzdHMg
PSBbKCJwYXRoL3RvL3Rlc3QuaHRtIiwgW3Rlc3RfaWRdLCAidGVzdGhhcm5lc3MiLCAiIiIKK1t0
ZXN0Lmh0bV0KKyAgZXhwZWN0ZWQ6CisgICAgaWYgb3MgPT0gIm1hYyI6IFRJTUVPVVQKKyAgICBF
UlJPUiIiIildCisKKyAgICBsb2dfMCA9IHN1aXRlX2xvZyhbKCJ0ZXN0X3N0YXJ0IiwgeyJ0ZXN0
IjogdGVzdF9pZH0pLAorICAgICAgICAgICAgICAgICAgICAgICAoInRlc3RfZW5kIiwgeyJ0ZXN0
IjogdGVzdF9pZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiZXhwZWN0
ZWQiOiAiRVJST1IiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJzdGF0
dXMiOiAiVElNRU9VVCJ9KV0sCisgICAgICAgICAgICAgICAgICAgICAgcnVuX2luZm89eyJvcyI6
ICJsaW51eCJ9KQorCisgICAgdXBkYXRlZCA9IHVwZGF0ZSh0ZXN0cywgbG9nXzApCisgICAgbmV3
X21hbmlmZXN0ID0gdXBkYXRlZFswXVsxXQorCisgICAgYXNzZXJ0IG5vdCBuZXdfbWFuaWZlc3Qu
aXNfZW1wdHkKKworICAgIHJ1bl9pbmZvXzEgPSBkZWZhdWx0X3J1bl9pbmZvLmNvcHkoKQorICAg
IHJ1bl9pbmZvXzEudXBkYXRlKHsib3MiOiAibWFjIn0pCisgICAgcnVuX2luZm9fMiA9IGRlZmF1
bHRfcnVuX2luZm8uY29weSgpCisgICAgcnVuX2luZm9fMi51cGRhdGUoeyJvcyI6ICJ3aW4ifSkK
KworICAgIGFzc2VydCBub3QgbmV3X21hbmlmZXN0LmlzX2VtcHR5CisgICAgYXNzZXJ0IG5ld19t
YW5pZmVzdC5nZXRfdGVzdCh0ZXN0X2lkKS5nZXQoCisgICAgICAgICJleHBlY3RlZCIsIHJ1bl9p
bmZvXzEpID09ICJUSU1FT1VUIgorICAgIGFzc2VydCBuZXdfbWFuaWZlc3QuZ2V0X3Rlc3QodGVz
dF9pZCkuZ2V0KAorICAgICAgICAiZXhwZWN0ZWQiLCBydW5faW5mb18yKSA9PSAiVElNRU9VVCIK
KworCitAcHl0ZXN0Lm1hcmsueGZhaWwoc3lzLnZlcnNpb25bMF0gPT0gIjMiLAorICAgICAgICAg
ICAgICAgICAgIHJlYXNvbj0ibWV0YWRhdGEgZG9lc24ndCBzdXBwb3J0IHB5MyIpCiBkZWYgdGVz
dF91cGRhdGVfYXNzZXJ0aW9uX2NvdW50XzAoKToKLSAgICB0ZXN0X2lkID0gIi9wYXRoL3RvL3Rl
c3QuaHRtIgogICAgIHRlc3RzID0gWygicGF0aC90by90ZXN0Lmh0bSIsIFt0ZXN0X2lkXSwgInRl
c3RoYXJuZXNzIiwgIiIiW3Rlc3QuaHRtXQogICBtYXgtYXNzZXJ0czogNAogICBtaW4tYXNzZXJ0
czogMgpAQCAtMzg0LDEyICsxMzc4LDEzIEBAIGRlZiB0ZXN0X3VwZGF0ZV9hc3NlcnRpb25fY291
bnRfMCgpOgogICAgIG5ld19tYW5pZmVzdCA9IHVwZGF0ZWRbMF1bMV0KIAogICAgIGFzc2VydCBu
b3QgbmV3X21hbmlmZXN0LmlzX2VtcHR5Ci0gICAgYXNzZXJ0IG5ld19tYW5pZmVzdC5nZXRfdGVz
dCh0ZXN0X2lkKS5nZXQoIm1heC1hc3NlcnRzIikgPT0gNwotICAgIGFzc2VydCBuZXdfbWFuaWZl
c3QuZ2V0X3Rlc3QodGVzdF9pZCkuZ2V0KCJtaW4tYXNzZXJ0cyIpID09IDIKKyAgICBhc3NlcnQg
bmV3X21hbmlmZXN0LmdldF90ZXN0KHRlc3RfaWQpLmdldCgibWF4LWFzc2VydHMiKSA9PSAiNyIK
KyAgICBhc3NlcnQgbmV3X21hbmlmZXN0LmdldF90ZXN0KHRlc3RfaWQpLmdldCgibWluLWFzc2Vy
dHMiKSA9PSAiMiIKIAogCitAcHl0ZXN0Lm1hcmsueGZhaWwoc3lzLnZlcnNpb25bMF0gPT0gIjMi
LAorICAgICAgICAgICAgICAgICAgIHJlYXNvbj0ibWV0YWRhdGEgZG9lc24ndCBzdXBwb3J0IHB5
MyIpCiBkZWYgdGVzdF91cGRhdGVfYXNzZXJ0aW9uX2NvdW50XzEoKToKLSAgICB0ZXN0X2lkID0g
Ii9wYXRoL3RvL3Rlc3QuaHRtIgogICAgIHRlc3RzID0gWygicGF0aC90by90ZXN0Lmh0bSIsIFt0
ZXN0X2lkXSwgInRlc3RoYXJuZXNzIiwgIiIiW3Rlc3QuaHRtXQogICBtYXgtYXNzZXJ0czogNAog
ICBtaW4tYXNzZXJ0czogMgpAQCAtNDA3LDEyICsxNDAyLDEzIEBAIGRlZiB0ZXN0X3VwZGF0ZV9h
c3NlcnRpb25fY291bnRfMSgpOgogICAgIG5ld19tYW5pZmVzdCA9IHVwZGF0ZWRbMF1bMV0KIAog
ICAgIGFzc2VydCBub3QgbmV3X21hbmlmZXN0LmlzX2VtcHR5Ci0gICAgYXNzZXJ0IG5ld19tYW5p
ZmVzdC5nZXRfdGVzdCh0ZXN0X2lkKS5nZXQoIm1heC1hc3NlcnRzIikgPT0gNAorICAgIGFzc2Vy
dCBuZXdfbWFuaWZlc3QuZ2V0X3Rlc3QodGVzdF9pZCkuZ2V0KCJtYXgtYXNzZXJ0cyIpID09ICI0
IgogICAgIGFzc2VydCBuZXdfbWFuaWZlc3QuZ2V0X3Rlc3QodGVzdF9pZCkuaGFzX2tleSgibWlu
LWFzc2VydHMiKSBpcyBGYWxzZQogCiAKK0BweXRlc3QubWFyay54ZmFpbChzeXMudmVyc2lvblsw
XSA9PSAiMyIsCisgICAgICAgICAgICAgICAgICAgcmVhc29uPSJtZXRhZGF0YSBkb2Vzbid0IHN1
cHBvcnQgcHkzIikKIGRlZiB0ZXN0X3VwZGF0ZV9hc3NlcnRpb25fY291bnRfMigpOgotICAgIHRl
c3RfaWQgPSAiL3BhdGgvdG8vdGVzdC5odG0iCiAgICAgdGVzdHMgPSBbKCJwYXRoL3RvL3Rlc3Qu
aHRtIiwgW3Rlc3RfaWRdLCAidGVzdGhhcm5lc3MiLCAiIiJbdGVzdC5odG1dCiAgIG1heC1hc3Nl
cnRzOiA0CiAgIG1pbi1hc3NlcnRzOiAyCkBAIC00MzAsOCArMTQyNiw5IEBAIGRlZiB0ZXN0X3Vw
ZGF0ZV9hc3NlcnRpb25fY291bnRfMigpOgogICAgIGFzc2VydCBub3QgdXBkYXRlZAogCiAKK0Bw
eXRlc3QubWFyay54ZmFpbChzeXMudmVyc2lvblswXSA9PSAiMyIsCisgICAgICAgICAgICAgICAg
ICAgcmVhc29uPSJtZXRhZGF0YSBkb2Vzbid0IHN1cHBvcnQgcHkzIikKIGRlZiB0ZXN0X3VwZGF0
ZV9hc3NlcnRpb25fY291bnRfMygpOgotICAgIHRlc3RfaWQgPSAiL3BhdGgvdG8vdGVzdC5odG0i
CiAgICAgdGVzdHMgPSBbKCJwYXRoL3RvL3Rlc3QuaHRtIiwgW3Rlc3RfaWRdLCAidGVzdGhhcm5l
c3MiLCAiIiJbdGVzdC5odG1dCiAgIG1heC1hc3NlcnRzOiA0CiAgIG1pbi1hc3NlcnRzOiAyCkBA
IC00NTksMTIgKzE0NTYsMTMgQEAgZGVmIHRlc3RfdXBkYXRlX2Fzc2VydGlvbl9jb3VudF8zKCk6
CiAgICAgbmV3X21hbmlmZXN0ID0gdXBkYXRlZFswXVsxXQogCiAgICAgYXNzZXJ0IG5vdCBuZXdf
bWFuaWZlc3QuaXNfZW1wdHkKLSAgICBhc3NlcnQgbmV3X21hbmlmZXN0LmdldF90ZXN0KHRlc3Rf
aWQpLmdldCgibWF4LWFzc2VydHMiKSA9PSA4Ci0gICAgYXNzZXJ0IG5ld19tYW5pZmVzdC5nZXRf
dGVzdCh0ZXN0X2lkKS5nZXQoIm1pbi1hc3NlcnRzIikgPT0gMgorICAgIGFzc2VydCBuZXdfbWFu
aWZlc3QuZ2V0X3Rlc3QodGVzdF9pZCkuZ2V0KCJtYXgtYXNzZXJ0cyIpID09ICI4IgorICAgIGFz
c2VydCBuZXdfbWFuaWZlc3QuZ2V0X3Rlc3QodGVzdF9pZCkuZ2V0KCJtaW4tYXNzZXJ0cyIpID09
ICIyIgogCiAKK0BweXRlc3QubWFyay54ZmFpbChzeXMudmVyc2lvblswXSA9PSAiMyIsCisgICAg
ICAgICAgICAgICAgICAgcmVhc29uPSJtZXRhZGF0YSBkb2Vzbid0IHN1cHBvcnQgcHkzIikKIGRl
ZiB0ZXN0X3VwZGF0ZV9hc3NlcnRpb25fY291bnRfNCgpOgotICAgIHRlc3RfaWQgPSAiL3BhdGgv
dG8vdGVzdC5odG0iCiAgICAgdGVzdHMgPSBbKCJwYXRoL3RvL3Rlc3QuaHRtIiwgW3Rlc3RfaWRd
LCAidGVzdGhhcm5lc3MiLCAiIiJbdGVzdC5odG1dIiIiKV0KIAogICAgIGxvZ18wID0gc3VpdGVf
bG9nKFsoInRlc3Rfc3RhcnQiLCB7InRlc3QiOiB0ZXN0X2lkfSksCkBAIC00OTMsOSArMTQ5MSw5
IEBAIGRlZiB0ZXN0X3VwZGF0ZV9hc3NlcnRpb25fY291bnRfNCgpOgogICAgIGFzc2VydCBuZXdf
bWFuaWZlc3QuZ2V0X3Rlc3QodGVzdF9pZCkuaGFzX2tleSgibWluLWFzc2VydHMiKSBpcyBGYWxz
ZQogCiAKK0BweXRlc3QubWFyay54ZmFpbChzeXMudmVyc2lvblswXSA9PSAiMyIsCisgICAgICAg
ICAgICAgICAgICAgcmVhc29uPSJtZXRhZGF0YSBkb2Vzbid0IHN1cHBvcnQgcHkzIikKIGRlZiB0
ZXN0X3VwZGF0ZV9sc2FuXzAoKToKLSAgICB0ZXN0X2lkID0gIi9wYXRoL3RvL3Rlc3QuaHRtIgot
ICAgIGRpcl9pZCA9ICJwYXRoL3RvL19fZGlyX18iCiAgICAgdGVzdHMgPSBbKCJwYXRoL3RvL3Rl
c3QuaHRtIiwgW3Rlc3RfaWRdLCAidGVzdGhhcm5lc3MiLCAiIiksCiAgICAgICAgICAgICAgKCJw
YXRoL3RvL19fZGlyX18iLCBbZGlyX2lkXSwgTm9uZSwgIiIpXQogCkBAIC01MTAsOSArMTUwOCw5
IEBAIGRlZiB0ZXN0X3VwZGF0ZV9sc2FuXzAoKToKICAgICBhc3NlcnQgbmV3X21hbmlmZXN0Lmdl
dCgibHNhbi1hbGxvd2VkIikgPT0gWyJmb28iXQogCiAKK0BweXRlc3QubWFyay54ZmFpbChzeXMu
dmVyc2lvblswXSA9PSAiMyIsCisgICAgICAgICAgICAgICAgICAgcmVhc29uPSJtZXRhZGF0YSBk
b2Vzbid0IHN1cHBvcnQgcHkzIikKIGRlZiB0ZXN0X3VwZGF0ZV9sc2FuXzEoKToKLSAgICB0ZXN0
X2lkID0gIi9wYXRoL3RvL3Rlc3QuaHRtIgotICAgIGRpcl9pZCA9ICJwYXRoL3RvL19fZGlyX18i
CiAgICAgdGVzdHMgPSBbKCJwYXRoL3RvL3Rlc3QuaHRtIiwgW3Rlc3RfaWRdLCAidGVzdGhhcm5l
c3MiLCAiIiksCiAgICAgICAgICAgICAgKCJwYXRoL3RvL19fZGlyX18iLCBbZGlyX2lkXSwgTm9u
ZSwgIiIiCiBsc2FuLWFsbG93ZWQ6IFtmb29dIiIiKV0KQEAgLTUzMCw5ICsxNTI4LDkgQEAgbHNh
bi1hbGxvd2VkOiBbZm9vXSIiIildCiAgICAgYXNzZXJ0IG5ld19tYW5pZmVzdC5nZXQoImxzYW4t
YWxsb3dlZCIpID09IFsiYmF6IiwgImZvbyJdCiAKIAorQHB5dGVzdC5tYXJrLnhmYWlsKHN5cy52
ZXJzaW9uWzBdID09ICIzIiwKKyAgICAgICAgICAgICAgICAgICByZWFzb249Im1ldGFkYXRhIGRv
ZXNuJ3Qgc3VwcG9ydCBweTMiKQogZGVmIHRlc3RfdXBkYXRlX2xzYW5fMigpOgotICAgIHRlc3Rf
aWQgPSAiL3BhdGgvdG8vdGVzdC5odG0iCi0gICAgZGlyX2lkID0gInBhdGgvdG8vX19kaXJfXyIK
ICAgICB0ZXN0cyA9IFsoInBhdGgvdG8vdGVzdC5odG0iLCBbdGVzdF9pZF0sICJ0ZXN0aGFybmVz
cyIsICIiKSwKICAgICAgICAgICAgICAoInBhdGgvX19kaXJfXyIsIFsicGF0aC9fX2Rpcl9fIl0s
IE5vbmUsICIiIgogbHNhbi1hbGxvd2VkOiBbZm9vXSIiIiksCkBAIC01NTIsOSArMTU1MCw5IEBA
IGxzYW4tYWxsb3dlZDogW2Zvb10iIiIpLAogICAgIGFzc2VydCBuZXdfbWFuaWZlc3QuZ2V0KCJs
c2FuLWFsbG93ZWQiKSA9PSBbImJheiJdCiAKIAorQHB5dGVzdC5tYXJrLnhmYWlsKHN5cy52ZXJz
aW9uWzBdID09ICIzIiwKKyAgICAgICAgICAgICAgICAgICByZWFzb249Im1ldGFkYXRhIGRvZXNu
J3Qgc3VwcG9ydCBweTMiKQogZGVmIHRlc3RfdXBkYXRlX2xzYW5fMygpOgotICAgIHRlc3RfaWQg
PSAiL3BhdGgvdG8vdGVzdC5odG0iCi0gICAgZGlyX2lkID0gInBhdGgvdG8vX19kaXJfXyIKICAg
ICB0ZXN0cyA9IFsoInBhdGgvdG8vdGVzdC5odG0iLCBbdGVzdF9pZF0sICJ0ZXN0aGFybmVzcyIs
ICIiKSwKICAgICAgICAgICAgICAoInBhdGgvdG8vX19kaXJfXyIsIFtkaXJfaWRdLCBOb25lLCAi
IildCiAKQEAgLTU3NCwxMyArMTU3MiwxNSBAQCBkZWYgdGVzdF91cGRhdGVfbHNhbl8zKCk6CiAg
ICAgYXNzZXJ0IG5ld19tYW5pZmVzdC5nZXQoImxzYW4tYWxsb3dlZCIpID09IFsiYmF6IiwgImZv
byJdCiAKIAorQHB5dGVzdC5tYXJrLnhmYWlsKHN5cy52ZXJzaW9uWzBdID09ICIzIiwKKyAgICAg
ICAgICAgICAgICAgICByZWFzb249Im1ldGFkYXRhIGRvZXNuJ3Qgc3VwcG9ydCBweTMiKQogZGVm
IHRlc3RfdXBkYXRlX3dwdHJlcG9ydF8wKCk6Ci0gICAgdGVzdHMgPSBbKCJwYXRoL3RvL3Rlc3Qu
aHRtIiwgWyIvcGF0aC90by90ZXN0Lmh0bSJdLCAidGVzdGhhcm5lc3MiLAorICAgIHRlc3RzID0g
WygicGF0aC90by90ZXN0Lmh0bSIsIFt0ZXN0X2lkXSwgInRlc3RoYXJuZXNzIiwKICAgICAgICAg
ICAgICAgIiIiW3Rlc3QuaHRtXQogICBbdGVzdDFdCiAgICAgZXhwZWN0ZWQ6IEZBSUwiIiIpXQog
Ci0gICAgbG9nID0geyJydW5faW5mbyI6IHt9LAorICAgIGxvZyA9IHsicnVuX2luZm8iOiBkZWZh
dWx0X3J1bl9pbmZvLmNvcHkoKSwKICAgICAgICAgICAgInJlc3VsdHMiOiBbCiAgICAgICAgICAg
ICAgICB7InRlc3QiOiAiL3BhdGgvdG8vdGVzdC5odG0iLAogICAgICAgICAgICAgICAgICJzdWJ0
ZXN0cyI6IFt7Im5hbWUiOiAidGVzdDEiLApAQCAtNTk0LDEwICsxNTk0LDEzIEBAIGRlZiB0ZXN0
X3VwZGF0ZV93cHRyZXBvcnRfMCgpOgogICAgIGFzc2VydCB1cGRhdGVkWzBdWzFdLmlzX2VtcHR5
CiAKIAorQHB5dGVzdC5tYXJrLnhmYWlsKHN5cy52ZXJzaW9uWzBdID09ICIzIiwKKyAgICAgICAg
ICAgICAgICAgICByZWFzb249Im1ldGFkYXRhIGRvZXNuJ3Qgc3VwcG9ydCBweTMiKQogZGVmIHRl
c3RfdXBkYXRlX3dwdHJlcG9ydF8xKCk6Ci0gICAgdGVzdHMgPSBbKCJwYXRoL3RvL19fZGlyX18i
LCBbInBhdGgvdG8vX19kaXJfXyJdLCBOb25lLCAiIildCisgICAgdGVzdHMgPSBbKCJwYXRoL3Rv
L3Rlc3QuaHRtIiwgW3Rlc3RfaWRdLCAidGVzdGhhcm5lc3MiLCAiIiksCisgICAgICAgICAgICAg
KCJwYXRoL3RvL19fZGlyX18iLCBbZGlyX2lkXSwgTm9uZSwgIiIpXQogCi0gICAgbG9nID0geyJy
dW5faW5mbyI6IHt9LAorICAgIGxvZyA9IHsicnVuX2luZm8iOiBkZWZhdWx0X3J1bl9pbmZvLmNv
cHkoKSwKICAgICAgICAgICAgInJlc3VsdHMiOiBbXSwKICAgICAgICAgICAgImxzYW5fbGVha3Mi
OiBbeyJzY29wZSI6ICJwYXRoL3RvLyIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAiZnJh
bWVzIjogWyJiYXoiLCAiZm9vYmFyIl19XX0KQEAgLTYwNiwzICsxNjA5LDEzMSBAQCBkZWYgdGVz
dF91cGRhdGVfd3B0cmVwb3J0XzEoKToKIAogICAgIGFzc2VydCBsZW4odXBkYXRlZCkgPT0gMQog
ICAgIGFzc2VydCB1cGRhdGVkWzBdWzFdLmdldCgibHNhbi1hbGxvd2VkIikgPT0gWyJiYXoiXQor
CisKK0BweXRlc3QubWFyay54ZmFpbChzeXMudmVyc2lvblswXSA9PSAiMyIsCisgICAgICAgICAg
ICAgICAgICAgcmVhc29uPSJtZXRhZGF0YSBkb2Vzbid0IHN1cHBvcnQgcHkzIikKK2RlZiB0ZXN0
X3VwZGF0ZV9sZWFrX3RvdGFsXzAoKToKKyAgICB0ZXN0cyA9IFsoInBhdGgvdG8vdGVzdC5odG0i
LCBbdGVzdF9pZF0sICJ0ZXN0aGFybmVzcyIsICIiKSwKKyAgICAgICAgICAgICAoInBhdGgvdG8v
X19kaXJfXyIsIFtkaXJfaWRdLCBOb25lLCAiIildCisKKyAgICBsb2dfMCA9IHN1aXRlX2xvZyhb
KCJtb3psZWFrX3RvdGFsIiwgeyJzY29wZSI6ICJwYXRoL3RvLyIsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAicHJvY2VzcyI6ICJkZWZhdWx0IiwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJieXRlcyI6IDEwMCwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ0aHJlc2hvbGQiOiAwLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIm9iamVjdHMiOiBbXX0pXSkKKwor
ICAgIHVwZGF0ZWQgPSB1cGRhdGUodGVzdHMsIGxvZ18wKQorICAgIG5ld19tYW5pZmVzdCA9IHVw
ZGF0ZWRbMF1bMV0KKworICAgIGFzc2VydCBub3QgbmV3X21hbmlmZXN0LmlzX2VtcHR5CisgICAg
YXNzZXJ0IG5ld19tYW5pZmVzdC5nZXQoImxlYWstdGhyZXNob2xkIikgPT0gWydkZWZhdWx0OjUx
MjAwJ10KKworCitAcHl0ZXN0Lm1hcmsueGZhaWwoc3lzLnZlcnNpb25bMF0gPT0gIjMiLAorICAg
ICAgICAgICAgICAgICAgIHJlYXNvbj0ibWV0YWRhdGEgZG9lc24ndCBzdXBwb3J0IHB5MyIpCitk
ZWYgdGVzdF91cGRhdGVfbGVha190b3RhbF8xKCk6CisgICAgdGVzdHMgPSBbKCJwYXRoL3RvL3Rl
c3QuaHRtIiwgW3Rlc3RfaWRdLCAidGVzdGhhcm5lc3MiLCAiIiksCisgICAgICAgICAgICAgKCJw
YXRoL3RvL19fZGlyX18iLCBbZGlyX2lkXSwgTm9uZSwgIiIpXQorCisgICAgbG9nXzAgPSBzdWl0
ZV9sb2coWygibW96bGVha190b3RhbCIsIHsic2NvcGUiOiAicGF0aC90by8iLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInByb2Nlc3MiOiAiZGVmYXVsdCIsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiYnl0ZXMiOiAxMDAsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAidGhyZXNob2xkIjogMTAw
MCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJvYmplY3RzIjog
W119KV0pCisKKyAgICB1cGRhdGVkID0gdXBkYXRlKHRlc3RzLCBsb2dfMCkKKyAgICBhc3NlcnQg
bm90IHVwZGF0ZWQKKworCitAcHl0ZXN0Lm1hcmsueGZhaWwoc3lzLnZlcnNpb25bMF0gPT0gIjMi
LAorICAgICAgICAgICAgICAgICAgIHJlYXNvbj0ibWV0YWRhdGEgZG9lc24ndCBzdXBwb3J0IHB5
MyIpCitkZWYgdGVzdF91cGRhdGVfbGVha190b3RhbF8yKCk6CisgICAgdGVzdHMgPSBbKCJwYXRo
L3RvL3Rlc3QuaHRtIiwgW3Rlc3RfaWRdLCAidGVzdGhhcm5lc3MiLCAiIiksCisgICAgICAgICAg
ICAgKCJwYXRoL3RvL19fZGlyX18iLCBbZGlyX2lkXSwgTm9uZSwgIiIiCitsZWFrLXRvdGFsOiAx
MTAiIiIpXQorCisgICAgbG9nXzAgPSBzdWl0ZV9sb2coWygibW96bGVha190b3RhbCIsIHsic2Nv
cGUiOiAicGF0aC90by8iLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgInByb2Nlc3MiOiAiZGVmYXVsdCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAiYnl0ZXMiOiAxMDAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAidGhyZXNob2xkIjogMTEwLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIm9iamVjdHMiOiBbXX0pXSkKKworICAgIHVwZGF0ZWQgPSB1cGRhdGUo
dGVzdHMsIGxvZ18wKQorICAgIGFzc2VydCBub3QgdXBkYXRlZAorCisKK0BweXRlc3QubWFyay54
ZmFpbChzeXMudmVyc2lvblswXSA9PSAiMyIsCisgICAgICAgICAgICAgICAgICAgcmVhc29uPSJt
ZXRhZGF0YSBkb2Vzbid0IHN1cHBvcnQgcHkzIikKK2RlZiB0ZXN0X3VwZGF0ZV9sZWFrX3RvdGFs
XzMoKToKKyAgICB0ZXN0cyA9IFsoInBhdGgvdG8vdGVzdC5odG0iLCBbdGVzdF9pZF0sICJ0ZXN0
aGFybmVzcyIsICIiKSwKKyAgICAgICAgICAgICAoInBhdGgvdG8vX19kaXJfXyIsIFtkaXJfaWRd
LCBOb25lLCAiIiIKK2xlYWstdG90YWw6IDEwMCIiIildCisKKyAgICBsb2dfMCA9IHN1aXRlX2xv
ZyhbKCJtb3psZWFrX3RvdGFsIiwgeyJzY29wZSI6ICJwYXRoL3RvLyIsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAicHJvY2VzcyI6ICJkZWZhdWx0IiwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJieXRlcyI6IDEwMDAsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAidGhyZXNob2xkIjogMTAwLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIm9iamVjdHMiOiBbXX0p
XSkKKworICAgIHVwZGF0ZWQgPSB1cGRhdGUodGVzdHMsIGxvZ18wKQorICAgIG5ld19tYW5pZmVz
dCA9IHVwZGF0ZWRbMF1bMV0KKworICAgIGFzc2VydCBub3QgbmV3X21hbmlmZXN0LmlzX2VtcHR5
CisgICAgYXNzZXJ0IG5ld19tYW5pZmVzdC5nZXQoImxlYWstdGhyZXNob2xkIikgPT0gWydkZWZh
dWx0OjUxMjAwJ10KKworCitAcHl0ZXN0Lm1hcmsueGZhaWwoc3lzLnZlcnNpb25bMF0gPT0gIjMi
LAorICAgICAgICAgICAgICAgICAgIHJlYXNvbj0ibWV0YWRhdGEgZG9lc24ndCBzdXBwb3J0IHB5
MyIpCitkZWYgdGVzdF91cGRhdGVfbGVha190b3RhbF80KCk6CisgICAgdGVzdHMgPSBbKCJwYXRo
L3RvL3Rlc3QuaHRtIiwgW3Rlc3RfaWRdLCAidGVzdGhhcm5lc3MiLCAiIiksCisgICAgICAgICAg
ICAgKCJwYXRoL3RvL19fZGlyX18iLCBbZGlyX2lkXSwgTm9uZSwgIiIiCitsZWFrLXRvdGFsOiAx
MTAiIiIpXQorCisgICAgbG9nXzAgPSBzdWl0ZV9sb2coWworICAgICAgICAoImxzYW5fbGVhayIs
IHsic2NvcGUiOiAicGF0aC90by8iLAorICAgICAgICAgICAgICAgICAgICAgICAiZnJhbWVzIjog
WyJmb28iLCAiYmFyIl19KSwKKyAgICAgICAgKCJtb3psZWFrX3RvdGFsIiwgeyJzY29wZSI6ICJw
YXRoL3RvLyIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAicHJvY2VzcyI6ICJkZWZhdWx0
IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICJieXRlcyI6IDEwMCwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICJ0aHJlc2hvbGQiOiAxMTAsCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAib2JqZWN0cyI6IFtdfSldKQorCisgICAgdXBkYXRlZCA9IHVwZGF0ZSh0ZXN0cywgbG9n
XzApCisgICAgbmV3X21hbmlmZXN0ID0gdXBkYXRlZFswXVsxXQorCisgICAgYXNzZXJ0IG5vdCBu
ZXdfbWFuaWZlc3QuaXNfZW1wdHkKKyAgICBhc3NlcnQgbmV3X21hbmlmZXN0Lmhhc19rZXkoImxl
YWstdGhyZXNob2xkIikgaXMgRmFsc2UKKworCitjbGFzcyBUZXN0U3RlcChTdGVwKToKKyAgICBk
ZWYgY3JlYXRlKHNlbGYsIHN0YXRlKToKKyAgICAgICAgdGVzdHMgPSBbKCJwYXRoL3RvL3Rlc3Qu
aHRtIiwgW3Rlc3RfaWRdLCAidGVzdGhhcm5lc3MiLCAiIildCisgICAgICAgIHN0YXRlLmZvbyA9
IGNyZWF0ZV90ZXN0X21hbmlmZXN0KHRlc3RzKQorCisKK2NsYXNzIFVwZGF0ZVJ1bm5lcihTdGVw
UnVubmVyKToKKyAgICBzdGVwcyA9IFtUZXN0U3RlcF0KKworCitAcHl0ZXN0Lm1hcmsueGZhaWwo
c3lzLnZlcnNpb25bMF0gPT0gIjMiLAorICAgICAgICAgICAgICAgICAgIHJlYXNvbj0idXBkYXRl
LnN0YXRlIGRvZXNuJ3Qgc3VwcG9ydCBweTMiKQorZGVmIHRlc3RfdXBkYXRlX3BpY2tsZSgpOgor
ICAgIGxvZ2dlciA9IHN0cnVjdHVyZWRsb2cuU3RydWN0dXJlZExvZ2dlcigiZXhwZWN0ZWRfdGVz
dCIpCisgICAgYXJncyA9IHsKKyAgICAgICAgInRlc3RfcGF0aHMiOiB7CisgICAgICAgICAgICAi
LyI6IHsidGVzdHNfcGF0aCI6IG9zLnBhdGguYWJzcGF0aChvcy5wYXRoLmpvaW4oaGVyZSwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBvcy5wYXJkaXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgb3MucGFyZGlyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9zLnBhcmRpciwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcy5wYXJk
aXIpKX0sCisgICAgICAgIH0sCisgICAgICAgICJhYm9ydCI6IEZhbHNlLAorICAgICAgICAiY29u
dGludWUiOiBGYWxzZSwKKyAgICAgICAgInN5bmMiOiBGYWxzZSwKKyAgICB9CisgICAgYXJnczIg
PSBhcmdzLmNvcHkoKQorICAgIGFyZ3MyWyJhYm9ydCJdID0gVHJ1ZQorICAgIHdwdHVwZGF0ZSA9
IFdQVFVwZGF0ZShsb2dnZXIsICoqYXJnczIpCisgICAgd3B0dXBkYXRlID0gV1BUVXBkYXRlKGxv
Z2dlciwgcnVubmVyX2Nscz1VcGRhdGVSdW5uZXIsICoqYXJncykKKyAgICB3cHR1cGRhdGUucnVu
KCkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci90ZXN0cy90ZXN0X3dwdHRlc3QucHkgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93
cHRydW5uZXIvdGVzdHMvdGVzdF93cHR0ZXN0LnB5CmluZGV4IDUyODBlNDZhNmIyNDMzMjZlMjMw
M2JiNTU0YWRhNGE3MjZiZDcyMDMuLjY5ZjIyZWJjYjY4YjYyYjZjNTRmNzg3NGY1NTE0NmI0NmY5
NGQ4MzggMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci90ZXN0cy90ZXN0X3dwdHRlc3QucHkKKysr
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRy
dW5uZXIvd3B0cnVubmVyL3Rlc3RzL3Rlc3Rfd3B0dGVzdC5weQpAQCAtMSwxMSArMSwxMSBAQAot
aW1wb3J0IG9zCitpbXBvcnQgcHl0ZXN0CiBpbXBvcnQgc3lzCiBmcm9tIGlvIGltcG9ydCBCeXRl
c0lPCitmcm9tIG1vY2sgaW1wb3J0IE1vY2sKIAotc3lzLnBhdGguaW5zZXJ0KDAsIG9zLnBhdGgu
am9pbihvcy5wYXRoLmRpcm5hbWUoX19maWxlX18pLCAiLi4iLCAiLi4iKSkKLQotZnJvbSB3cHRy
dW5uZXIgaW1wb3J0IG1hbmlmZXN0ZXhwZWN0ZWQsIHdwdHRlc3QKLWZyb20gLnRlc3RfY2h1bmtl
ciBpbXBvcnQgbWFrZV9tb2NrX21hbmlmZXN0Citmcm9tIG1hbmlmZXN0IGltcG9ydCBtYW5pZmVz
dCBhcyB3cHRtYW5pZmVzdAorZnJvbSBtYW5pZmVzdC5pdGVtIGltcG9ydCBUZXN0aGFybmVzc1Rl
c3QKK2Zyb20gLi4gaW1wb3J0IG1hbmlmZXN0ZXhwZWN0ZWQsIHdwdHRlc3QKIAogZGlyX2luaV8w
ID0gIiIiXAogcHJlZnM6IFthOmJdCkBAIC0xOCw2ICsxOCwxMCBAQCBtaW4tYXNzZXJ0czogMQog
dGFnczogW2IsIGNdCiAiIiIKIAorZGlyX2luaV8yID0gIiIiXAorbHNhbi1tYXgtc3RhY2stZGVw
dGg6IDQyCisiIiIKKwogdGVzdF8wID0gIiIiXAogWzAuaHRtbF0KICAgcHJlZnM6IFtjOmRdCkBA
IC0zMyw0MiArMzcsMjA1IEBAIHRlc3RfMSA9ICIiIlwKICAgICBpZiBvcyA9PSAnd2luJzogRkFJ
TAogIiIiCiAKK3Rlc3RfMiA9ICIiIlwKK1syLmh0bWxdCisgIGxzYW4tbWF4LXN0YWNrLWRlcHRo
OiA0MgorIiIiCisKK3Rlc3RfMyA9ICIiIlwKK1szLmh0bWxdCisgIFtzdWJ0ZXN0MV0KKyAgICBl
eHBlY3RlZDogW1BBU1MsIEZBSUxdCiAKLWRlZiB0ZXN0X21ldGFkYXRhX2luaGVyaXQoKToKLSAg
ICB0ZXN0cyA9IG1ha2VfbW9ja19tYW5pZmVzdCgoInRlc3QiLCAiYSIsIDEwKSwgKCJ0ZXN0Iiwg
ImEvYiIsIDEwKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoInRlc3QiLCAiYyIs
IDEwKSkKKyAgW3N1YnRlc3QyXQorICAgIGRpc2FibGVkOiByZWFzb24KKworICBbc3VidGVzdDNd
CisgICAgZXhwZWN0ZWQ6IEZBSUwKKyIiIgorCit0ZXN0XzQgPSAiIiJcCitbNC5odG1sXQorICBl
eHBlY3RlZDogRkFJTAorIiIiCisKK3Rlc3RfNSA9ICIiIlwKK1s1Lmh0bWxdCisiIiIKKwordGVz
dF82ID0gIiIiXAorWzYuaHRtbF0KKyAgZXhwZWN0ZWQ6IFtPSywgRkFJTF0KKyIiIgorCit0ZXN0
XzcgPSAiIiJcCitbNy5odG1sXQorICBibGlua19leHBlY3RfYW55X3N1YnRlc3Rfc3RhdHVzOiB5
ZXAKKyIiIgogCit0ZXN0X2Z1enp5ID0gIiIiXAorW2Z1enp5Lmh0bWxdCisgIGZ1enp5OiBmdXp6
eS1yZWYuaHRtbDoxOzIwMAorIiIiCisKKwordGVzdGhhcm5lc3NfdGVzdCA9ICIiIjxzY3JpcHQg
c3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIv
cmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4iIiIKKworCitkZWYgbWFr
ZV9tb2NrX21hbmlmZXN0KCppdGVtcyk6CisgICAgcnYgPSBNb2NrKHRlc3RzX3Jvb3Q9Ii9mb29i
YXIiKQorICAgIHRlc3RzID0gW10KKyAgICBydi5fX2l0ZXJfXyA9IGxhbWJkYSBzZWxmOiBpdGVy
KHRlc3RzKQorICAgIHJ2Ll9fZ2V0aXRlbV9fID0gbGFtYmRhIHNlbGYsIGs6IHRlc3RzW2tdCisg
ICAgZm9yIHRlc3RfdHlwZSwgZGlyX3BhdGgsIG51bV90ZXN0cyBpbiBpdGVtczoKKyAgICAgICAg
Zm9yIGkgaW4gcmFuZ2UobnVtX3Rlc3RzKToKKyAgICAgICAgICAgIGZpbGVuYW1lID0gZGlyX3Bh
dGggKyAiLyVpLmh0bWwiICUgaQorICAgICAgICAgICAgdGVzdHMuYXBwZW5kKCh0ZXN0X3R5cGUs
CisgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGVuYW1lLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICB7VGVzdGhhcm5lc3NUZXN0KCIvZm9vLmJhciIsIGZpbGVuYW1lLCAiLyIsIGZpbGVu
YW1lKX0pKQorICAgIHJldHVybiBydgorCitkZWYgbWFrZV90ZXN0X29iamVjdCh0ZXN0X25hbWUs
CisgICAgICAgICAgICAgICAgICAgICB0ZXN0X3BhdGgsCisgICAgICAgICAgICAgICAgICAgICBp
bmRleCwKKyAgICAgICAgICAgICAgICAgICAgIGl0ZW1zLAorICAgICAgICAgICAgICAgICAgICAg
aW5oZXJpdF9tZXRhZGF0YT1Ob25lLAorICAgICAgICAgICAgICAgICAgICAgaXRlcmF0ZT1GYWxz
ZSwKKyAgICAgICAgICAgICAgICAgICAgIGNvbmRpdGlvbj1Ob25lKToKKyAgICBpbmhlcml0X21l
dGFkYXRhID0gaW5oZXJpdF9tZXRhZGF0YSBpZiBpbmhlcml0X21ldGFkYXRhIGlzIG5vdCBOb25l
IGVsc2UgW10KKyAgICBjb25kaXRpb24gPSBjb25kaXRpb24gaWYgY29uZGl0aW9uIGlzIG5vdCBO
b25lIGVsc2Uge30KKyAgICB0ZXN0cyA9IG1ha2VfbW9ja19tYW5pZmVzdCgqaXRlbXMpIGlmIGlz
aW5zdGFuY2UoaXRlbXMsIGxpc3QpIGVsc2UgbWFrZV9tb2NrX21hbmlmZXN0KGl0ZW1zKQorCisg
ICAgdGVzdF9tZXRhZGF0YSA9IG1hbmlmZXN0ZXhwZWN0ZWQuc3RhdGljLmNvbXBpbGUoQnl0ZXNJ
Tyh0ZXN0X25hbWUpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGNvbmRpdGlvbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBkYXRhX2Nsc19nZXR0ZXI9bWFuaWZlc3RleHBlY3RlZC5kYXRhX2Ns
c19nZXR0ZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgdGVzdF9wYXRoPXRlc3RfcGF0aCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICB1cmxfYmFzZT0iLyIpCisKKyAgICB0ZXN0ID0gbmV4dChp
dGVyKHRlc3RzW2luZGV4XVsyXSkpIGlmIGl0ZXJhdGUgZWxzZSB0ZXN0c1tpbmRleF1bMl0ucG9w
KCkKKyAgICByZXR1cm4gd3B0dGVzdC5mcm9tX21hbmlmZXN0KHRlc3RzLCB0ZXN0LCBpbmhlcml0
X21ldGFkYXRhLCB0ZXN0X21ldGFkYXRhLmdldF90ZXN0KHRlc3QuaWQpKQorCisKK0BweXRlc3Qu
bWFyay54ZmFpbChzeXMudmVyc2lvblswXSA9PSAiMyIsCisgICAgICAgICAgICAgICAgICAgcmVh
c29uPSJieXRlcy90ZXh0IGNvbmZ1c2lvbiBpbiBweTMiKQorZGVmIHRlc3RfbWV0YWRhdGFfaW5o
ZXJpdCgpOgorICAgIGl0ZW1zID0gWygidGVzdCIsICJhIiwgMTApLCAoInRlc3QiLCAiYS9iIiwg
MTApLCAoInRlc3QiLCAiYyIsIDEwKV0KICAgICBpbmhlcml0X21ldGFkYXRhID0gWwogICAgICAg
ICBtYW5pZmVzdGV4cGVjdGVkLnN0YXRpYy5jb21waWxlKAogICAgICAgICAgICAgQnl0ZXNJTyhp
dGVtKSwKICAgICAgICAgICAgIHt9LAogICAgICAgICAgICAgZGF0YV9jbHNfZ2V0dGVyPWxhbWJk
YSB4LHk6IG1hbmlmZXN0ZXhwZWN0ZWQuRGlyZWN0b3J5TWFuaWZlc3QpCiAgICAgICAgIGZvciBp
dGVtIGluIFtkaXJfaW5pXzAsIGRpcl9pbmlfMV1dCi0gICAgdGVzdF9tZXRhZGF0YSA9IG1hbmlm
ZXN0ZXhwZWN0ZWQuc3RhdGljLmNvbXBpbGUoQnl0ZXNJTyh0ZXN0XzApLAotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt9LAotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGFfY2xzX2dldHRlcj1t
YW5pZmVzdGV4cGVjdGVkLmRhdGFfY2xzX2dldHRlciwKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0X3BhdGg9ImEiLAotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVybF9iYXNlPSIiKQogCi0g
ICAgdGVzdCA9IHRlc3RzWzBdWzJdLnBvcCgpCi0gICAgdGVzdF9vYmogPSB3cHR0ZXN0LmZyb21f
bWFuaWZlc3QodGVzdCwgaW5oZXJpdF9tZXRhZGF0YSwgdGVzdF9tZXRhZGF0YS5nZXRfdGVzdCh0
ZXN0LmlkKSkKKyAgICB0ZXN0X29iaiA9IG1ha2VfdGVzdF9vYmplY3QodGVzdF8wLCAiYS8wLmh0
bWwiLCAwLCBpdGVtcywgaW5oZXJpdF9tZXRhZGF0YSwgVHJ1ZSkKKwogICAgIGFzc2VydCB0ZXN0
X29iai5tYXhfYXNzZXJ0aW9uX2NvdW50ID09IDMKICAgICBhc3NlcnQgdGVzdF9vYmoubWluX2Fz
c2VydGlvbl9jb3VudCA9PSAxCiAgICAgYXNzZXJ0IHRlc3Rfb2JqLnByZWZzID09IHsiYiI6ICJj
IiwgImMiOiAiZCJ9CiAgICAgYXNzZXJ0IHRlc3Rfb2JqLnRhZ3MgPT0geyJhIiwgImRpcjphIn0K
IAogCitAcHl0ZXN0Lm1hcmsueGZhaWwoc3lzLnZlcnNpb25bMF0gPT0gIjMiLAorICAgICAgICAg
ICAgICAgICAgIHJlYXNvbj0iYnl0ZXMvdGV4dCBjb25mdXNpb24gaW4gcHkzIikKIGRlZiB0ZXN0
X2NvbmRpdGlvbmFsKCk6Ci0gICAgdGVzdHMgPSBtYWtlX21vY2tfbWFuaWZlc3QoKCJ0ZXN0Iiwg
ImEiLCAxMCksICgidGVzdCIsICJhL2IiLCAxMCksCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgKCJ0ZXN0IiwgImMiLCAxMCkpCisgICAgaXRlbXMgPSBbKCJ0ZXN0IiwgImEiLCAxMCks
ICgidGVzdCIsICJhL2IiLCAxMCksICgidGVzdCIsICJjIiwgMTApXQogCi0gICAgdGVzdF9tZXRh
ZGF0YSA9IG1hbmlmZXN0ZXhwZWN0ZWQuc3RhdGljLmNvbXBpbGUoQnl0ZXNJTyh0ZXN0XzEpLAot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsib3Mi
OiAid2luIn0sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgZGF0YV9jbHNfZ2V0dGVyPW1hbmlmZXN0ZXhwZWN0ZWQuZGF0YV9jbHNfZ2V0dGVyLAot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRlc3Rf
cGF0aD0iYSIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgdXJsX2Jhc2U9IiIpCisgICAgdGVzdF9vYmogPSBtYWtlX3Rlc3Rfb2JqZWN0KHRlc3Rf
MSwgImEvMS5odG1sIiwgMSwgaXRlbXMsIE5vbmUsIFRydWUsIHsib3MiOiAid2luIn0pCiAKLSAg
ICB0ZXN0ID0gdGVzdHNbMV1bMl0ucG9wKCkKLSAgICB0ZXN0X29iaiA9IHdwdHRlc3QuZnJvbV9t
YW5pZmVzdCh0ZXN0LCBbXSwgdGVzdF9tZXRhZGF0YS5nZXRfdGVzdCh0ZXN0LmlkKSkKICAgICBh
c3NlcnQgdGVzdF9vYmoucHJlZnMgPT0geyJhIjogImIiLCAiYyI6ICJkIn0KICAgICBhc3NlcnQg
dGVzdF9vYmouZXhwZWN0ZWQoKSA9PSAiRkFJTCIKKworCitAcHl0ZXN0Lm1hcmsueGZhaWwoc3lz
LnZlcnNpb25bMF0gPT0gIjMiLAorICAgICAgICAgICAgICAgICAgIHJlYXNvbj0iYnl0ZXMvdGV4
dCBjb25mdXNpb24gaW4gcHkzIikKK2RlZiB0ZXN0X21ldGFkYXRhX2xzYW5fc3RhY2tfZGVwdGgo
KToKKyAgICBpdGVtcyA9IFsoInRlc3QiLCAiYSIsIDEwKSwgKCJ0ZXN0IiwgImEvYiIsIDEwKV0K
KworICAgIHRlc3Rfb2JqID0gbWFrZV90ZXN0X29iamVjdCh0ZXN0XzIsICJhLzIuaHRtbCIsIDIs
IGl0ZW1zLCBOb25lLCBUcnVlKQorCisgICAgYXNzZXJ0IHRlc3Rfb2JqLmxzYW5fbWF4X3N0YWNr
X2RlcHRoID09IDQyCisKKyAgICB0ZXN0X29iaiA9IG1ha2VfdGVzdF9vYmplY3QodGVzdF8yLCAi
YS8yLmh0bWwiLCAxLCBpdGVtcywgTm9uZSwgVHJ1ZSkKKworICAgIGFzc2VydCB0ZXN0X29iai5s
c2FuX21heF9zdGFja19kZXB0aCBpcyBOb25lCisKKyAgICBpbmhlcml0X21ldGFkYXRhID0gWwor
ICAgICAgICBtYW5pZmVzdGV4cGVjdGVkLnN0YXRpYy5jb21waWxlKAorICAgICAgICAgICAgQnl0
ZXNJTyhkaXJfaW5pXzIpLAorICAgICAgICAgICAge30sCisgICAgICAgICAgICBkYXRhX2Nsc19n
ZXR0ZXI9bGFtYmRhIHgseTogbWFuaWZlc3RleHBlY3RlZC5EaXJlY3RvcnlNYW5pZmVzdCkKKyAg
ICBdCisKKyAgICB0ZXN0X29iaiA9IG1ha2VfdGVzdF9vYmplY3QodGVzdF8wLCAiYS8wL2h0bWwi
LCAwLCBpdGVtcywgaW5oZXJpdF9tZXRhZGF0YSwgRmFsc2UpCisKKyAgICBhc3NlcnQgdGVzdF9v
YmoubHNhbl9tYXhfc3RhY2tfZGVwdGggPT0gNDIKKworCitAcHl0ZXN0Lm1hcmsueGZhaWwoc3lz
LnZlcnNpb25bMF0gPT0gIjMiLAorICAgICAgICAgICAgICAgICAgIHJlYXNvbj0iYnl0ZXMvdGV4
dCBjb25mdXNpb24gaW4gcHkzIikKK2RlZiB0ZXN0X3N1YnRlc3RzKCk6CisgICAgdGVzdF9vYmog
PSBtYWtlX3Rlc3Rfb2JqZWN0KHRlc3RfMywgImEvMy5odG1sIiwgMywgKCJ0ZXN0IiwgImEiLCA0
KSwgTm9uZSwgRmFsc2UpCisgICAgYXNzZXJ0IHRlc3Rfb2JqLmV4cGVjdGVkKCJzdWJ0ZXN0MSIp
ID09ICJQQVNTIgorICAgIGFzc2VydCB0ZXN0X29iai5rbm93bl9pbnRlcm1pdHRlbnQoInN1YnRl
c3QxIikgPT0gWyJGQUlMIl0KKyAgICBhc3NlcnQgdGVzdF9vYmouZXhwZWN0ZWQoInN1YnRlc3Qy
IikgPT0gIlBBU1MiCisgICAgYXNzZXJ0IHRlc3Rfb2JqLmtub3duX2ludGVybWl0dGVudCgic3Vi
dGVzdDIiKSA9PSBbXQorICAgIGFzc2VydCB0ZXN0X29iai5leHBlY3RlZCgic3VidGVzdDMiKSA9
PSAiRkFJTCIKKyAgICBhc3NlcnQgdGVzdF9vYmoua25vd25faW50ZXJtaXR0ZW50KCJzdWJ0ZXN0
MyIpID09IFtdCisKKworQHB5dGVzdC5tYXJrLnhmYWlsKHN5cy52ZXJzaW9uWzBdID09ICIzIiwK
KyAgICAgICAgICAgICAgICAgICByZWFzb249ImJ5dGVzL3RleHQgY29uZnVzaW9uIGluIHB5MyIp
CitkZWYgdGVzdF9leHBlY3RlZF9mYWlsKCk6CisgICAgdGVzdF9vYmogPSBtYWtlX3Rlc3Rfb2Jq
ZWN0KHRlc3RfNCwgImEvNC5odG1sIiwgNCwgKCJ0ZXN0IiwgImEiLCA1KSwgTm9uZSwgRmFsc2Up
CisgICAgYXNzZXJ0IHRlc3Rfb2JqLmV4cGVjdGVkKCkgPT0gIkZBSUwiCisgICAgYXNzZXJ0IHRl
c3Rfb2JqLmtub3duX2ludGVybWl0dGVudCgpID09IFtdCisKKworQHB5dGVzdC5tYXJrLnhmYWls
KHN5cy52ZXJzaW9uWzBdID09ICIzIiwKKyAgICAgICAgICAgICAgICAgICByZWFzb249ImJ5dGVz
L3RleHQgY29uZnVzaW9uIGluIHB5MyIpCitkZWYgdGVzdF9ub19leHBlY3RlZCgpOgorICAgIHRl
c3Rfb2JqID0gbWFrZV90ZXN0X29iamVjdCh0ZXN0XzUsICJhLzUuaHRtbCIsIDUsICgidGVzdCIs
ICJhIiwgNiksIE5vbmUsIEZhbHNlKQorICAgIGFzc2VydCB0ZXN0X29iai5leHBlY3RlZCgpID09
ICJPSyIKKyAgICBhc3NlcnQgdGVzdF9vYmoua25vd25faW50ZXJtaXR0ZW50KCkgPT0gW10KKwor
CitAcHl0ZXN0Lm1hcmsueGZhaWwoc3lzLnZlcnNpb25bMF0gPT0gIjMiLAorICAgICAgICAgICAg
ICAgICAgIHJlYXNvbj0iYnl0ZXMvdGV4dCBjb25mdXNpb24gaW4gcHkzIikKK2RlZiB0ZXN0X2tu
b3duX2ludGVybWl0dGVudCgpOgorICAgIHRlc3Rfb2JqID0gbWFrZV90ZXN0X29iamVjdCh0ZXN0
XzYsICJhLzYuaHRtbCIsIDYsICgidGVzdCIsICJhIiwgNyksIE5vbmUsIEZhbHNlKQorICAgIGFz
c2VydCB0ZXN0X29iai5leHBlY3RlZCgpID09ICJPSyIKKyAgICBhc3NlcnQgdGVzdF9vYmoua25v
d25faW50ZXJtaXR0ZW50KCkgPT0gWyJGQUlMIl0KKworCitAcHl0ZXN0Lm1hcmsueGZhaWwoc3lz
LnZlcnNpb25bMF0gPT0gIjMiLAorICAgICAgICAgICAgICAgICAgIHJlYXNvbj0iYnl0ZXMvdGV4
dCBjb25mdXNpb24gaW4gcHkzIikKK2RlZiB0ZXN0X2V4cGVjdF9hbnlfc3VidGVzdF9zdGF0dXMo
KToKKyAgICB0ZXN0X29iaiA9IG1ha2VfdGVzdF9vYmplY3QodGVzdF83LCAiYS83Lmh0bWwiLCA3
LCAoInRlc3QiLCAiYSIsIDgpLCBOb25lLCBGYWxzZSkKKyAgICBhc3NlcnQgdGVzdF9vYmouZXhw
ZWN0ZWQoKSA9PSAiT0siCisgICAgYXNzZXJ0IHRlc3Rfb2JqLmV4cGVjdF9hbnlfc3VidGVzdF9z
dGF0dXMoKSBpcyBUcnVlCisKKworQHB5dGVzdC5tYXJrLnhmYWlsKHN5cy52ZXJzaW9uWzBdID09
ICIzIiwKKyAgICAgICAgICAgICAgICAgICByZWFzb249ImJ5dGVzL3RleHQgY29uZnVzaW9uIGlu
IHB5MyIpCitkZWYgdGVzdF9tZXRhZGF0YV9mdXp6eSgpOgorICAgIG1hbmlmZXN0X2RhdGEgPSB7
CisgICAgICAgICJpdGVtcyI6IHsicmVmdGVzdCI6IHsiYS9mdXp6eS5odG1sIjogW1siYS9mdXp6
eS5odG1sIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IFtbIi9hL2Z1enp5LXJlZi5odG1sIiwgIj09Il1dLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgeyJmdXp6eSI6IFtbWyIvYS9mdXp6eS5odG1sIiwgJy9h
L2Z1enp5LXJlZi5odG1sJywgJz09J10sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbWzIsIDNdLCBbMTAsIDE1XV1dXX1dXX19LAor
ICAgICAgICAicGF0aHMiOiB7ImEvZnV6enkuaHRtbCI6IFsiMCIqNDAsICJyZWZ0ZXN0Il19LAor
ICAgICAgICAidmVyc2lvbiI6IDYsCisgICAgICAgICJ1cmxfYmFzZSI6ICIvIn0KKyAgICBtYW5p
ZmVzdCA9IHdwdG1hbmlmZXN0Lk1hbmlmZXN0LmZyb21fanNvbigiLiIsIG1hbmlmZXN0X2RhdGEp
CisgICAgdGVzdF9tZXRhZGF0YSA9IG1hbmlmZXN0ZXhwZWN0ZWQuc3RhdGljLmNvbXBpbGUoQnl0
ZXNJTyh0ZXN0X2Z1enp5KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICB7fSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBkYXRhX2Nsc19nZXR0ZXI9bWFuaWZlc3RleHBlY3RlZC5kYXRhX2Nsc19n
ZXR0ZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgdGVzdF9wYXRoPSJhL2Z1enp5Lmh0bWwiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHVybF9iYXNlPSIvIikKKworICAgIHRlc3QgPSBtYW5p
ZmVzdC5pdGVycGF0aCgiYS9mdXp6eS5odG1sIikubmV4dCgpCisgICAgdGVzdF9vYmogPSB3cHR0
ZXN0LmZyb21fbWFuaWZlc3QobWFuaWZlc3QsIHRlc3QsIFtdLCB0ZXN0X21ldGFkYXRhLmdldF90
ZXN0KHRlc3QuaWQpKQorCisgICAgYXNzZXJ0IHRlc3Rfb2JqLmZ1enp5ID09IHsoJy9hL2Z1enp5
Lmh0bWwnLCAnL2EvZnV6enktcmVmLmh0bWwnLCAnPT0nKTogW1syLCAzXSwgWzEwLCAxNV1dfQor
ICAgIGFzc2VydCB0ZXN0X29iai5mdXp6eV9vdmVycmlkZSA9PSB7Jy9hL2Z1enp5LXJlZi5odG1s
JzogKCgxLCAxKSwgKDIwMCwgMjAwKSl9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvdGVzdHMv
dzNjLWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvdGVzdHMvdzNjLWltcG9ydC5sb2cKaW5kZXgg
MGUyNzc4YWFiZmIzM2M1ODVlNzdkYWQxZTcxZjQwMTQ5ZTc0NGFiMy4uMTI1MzY5MzZlNjJmMzkw
YTM4YjRjNzgwOThlNWIxZDQxYmUyZDkzZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3Rlc3Rz
L3czYy1pbXBvcnQubG9nCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci90ZXN0cy93M2MtaW1wb3J0LmxvZwpA
QCAtMTYsOCArMTYsOSBAQCBOb25lCiBMaXN0IG9mIGZpbGVzOgogL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci90ZXN0
cy9fX2luaXRfXy5weQogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci90ZXN0cy9iYXNlLnB5Ci0vTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVy
L3Rlc3RzL3Rlc3RfY2h1bmtlci5weQorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci90ZXN0cy90ZXN0X2V4cGVjdGVk
dHJlZS5weQogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvd3B0cnVubmVyL3dwdHJ1bm5lci90ZXN0cy90ZXN0X2Zvcm1hdHRlcnMucHkKKy9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRy
dW5uZXIvdGVzdHMvdGVzdF9tYW5pZmVzdGV4cGVjdGVkLnB5CiAvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3Rlc3Rz
L3Rlc3RfcHJvZHVjdHMucHkKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvdGVzdHMvdGVzdF9zdGFiaWxpdHkucHkK
IC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1
bm5lci93cHRydW5uZXIvdGVzdHMvdGVzdF90ZXN0bG9hZGVyLnB5CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93
cHRydW5uZXIvdXBkYXRlL19faW5pdF9fLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3VwZGF0ZS9fX2luaXRf
Xy5weQppbmRleCA5ZmYzZTY5Zjk0ZWZiZjNlODAzYThhNjVjNDZkMDljMDI2OWNhMDYzLi4yNjI2
MTgzZmM4MGRiYzc1ZDNkMjg1ZGU3OWE3ZDM4NmY1M2NlNmUzIDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRy
dW5uZXIvdXBkYXRlL19faW5pdF9fLnB5CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci91cGRhdGUvX19pbml0
X18ucHkKQEAgLTQsNyArNCw3IEBAIGZyb20gbW96bG9nLnN0cnVjdHVyZWQgaW1wb3J0IHN0cnVj
dHVyZWRsb2csIGNvbW1hbmRsaW5lCiAKIGZyb20gLi4gaW1wb3J0IHdwdGNvbW1hbmRsaW5lCiAK
LWZyb20gdXBkYXRlIGltcG9ydCBXUFRVcGRhdGUKK2Zyb20gLnVwZGF0ZSBpbXBvcnQgV1BUVXBk
YXRlCiAKIGRlZiByZW1vdmVfbG9nZ2luZ19hcmdzKGFyZ3MpOgogICAgICIiIlRha2UgbG9nZ2lu
ZyBhcmdzIG91dCBvZiB0aGUgZGljdGlvbmFyeSBvZiBjb21tYW5kIGxpbmUgYXJndW1lbnRzIHNv
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvdXBkYXRlL21ldGFkYXRhLnB5IGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVu
bmVyL3VwZGF0ZS9tZXRhZGF0YS5weQppbmRleCA1YzQyZmEzMjY3MTE1ZDI4MjBlYjY3MDI1Yjg5
ODg0ZjcyZjdmMzQ1Li40YmM3MGQzMTEwNDBkMzM5N2UxZDAxMjBhZDgyZDQwMTI0NzA1MTkwIDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3dwdHJ1bm5lci93cHRydW5uZXIvdXBkYXRlL21ldGFkYXRhLnB5CisrKyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1
bm5lci91cGRhdGUvbWV0YWRhdGEucHkKQEAgLTIsMTcgKzIsMTQgQEAgaW1wb3J0IG9zCiAKIGZy
b20gLi4gaW1wb3J0IG1ldGFkYXRhLCBwcm9kdWN0cwogCi1mcm9tIGJhc2UgaW1wb3J0IFN0ZXAs
IFN0ZXBSdW5uZXIKK2Zyb20gLmJhc2UgaW1wb3J0IFN0ZXAsIFN0ZXBSdW5uZXIKIAogCiBjbGFz
cyBHZXRVcGRhdGVQcm9wZXJ0eUxpc3QoU3RlcCk6Ci0gICAgcHJvdmlkZXMgPSBbInByb3BlcnR5
X29yZGVyIiwgImJvb2xlYW5fcHJvcGVydGllcyJdCisgICAgcHJvdmlkZXMgPSBbInVwZGF0ZV9w
cm9wZXJ0aWVzIl0KIAogICAgIGRlZiBjcmVhdGUoc2VsZiwgc3RhdGUpOgotICAgICAgICBwcm9w
ZXJ0eV9vcmRlciwgYm9vbGVhbl9wcm9wZXJ0aWVzID0gcHJvZHVjdHMubG9hZF9wcm9kdWN0X3Vw
ZGF0ZSgKLSAgICAgICAgICAgIHN0YXRlLmNvbmZpZywgc3RhdGUucHJvZHVjdCkKLSAgICAgICAg
c3RhdGUucHJvcGVydHlfb3JkZXIgPSBwcm9wZXJ0eV9vcmRlciArIHN0YXRlLmV4dHJhX3Byb3Bl
cnRpZXMKLSAgICAgICAgc3RhdGUuYm9vbGVhbl9wcm9wZXJ0aWVzID0gYm9vbGVhbl9wcm9wZXJ0
aWVzCisgICAgICAgIHN0YXRlLnVwZGF0ZV9wcm9wZXJ0aWVzID0gcHJvZHVjdHMubG9hZF9wcm9k
dWN0X3VwZGF0ZShzdGF0ZS5jb25maWcsIHN0YXRlLnByb2R1Y3QpCiAKIAogY2xhc3MgVXBkYXRl
RXhwZWN0ZWQoU3RlcCk6CkBAIC0yNywxMiArMjQsMTMgQEAgY2xhc3MgVXBkYXRlRXhwZWN0ZWQo
U3RlcCk6CiAgICAgICAgIG1ldGFkYXRhLnVwZGF0ZV9leHBlY3RlZChzdGF0ZS5wYXRocywKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRlLnNlcnZlX3Jvb3QsCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0ZS5ydW5fbG9nLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgdXBkYXRlX3Byb3BlcnRpZXM9c3RhdGUudXBkYXRlX3Byb3BlcnRp
ZXMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXZfb2xkPU5vbmUsCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZ25vcmVfZXhpc3Rpbmc9c3RhdGUuaWdub3Jl
X2V4aXN0aW5nLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZnVsbF91cGRhdGU9
c3RhdGUuZnVsbF91cGRhdGUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzeW5j
X3Jvb3Q9c3luY19yb290LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvcGVy
dHlfb3JkZXI9c3RhdGUucHJvcGVydHlfb3JkZXIsCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBib29sZWFuX3Byb3BlcnRpZXM9c3RhdGUuYm9vbGVhbl9wcm9wZXJ0aWVzLAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhYmlsaXR5PXN0YXRlLnN0YWJpbGl0eSkK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGVfaW50ZXJtaXR0ZW50PXN0
YXRlLmRpc2FibGVfaW50ZXJtaXR0ZW50LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgdXBkYXRlX2ludGVybWl0dGVudD1zdGF0ZS51cGRhdGVfaW50ZXJtaXR0ZW50LAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVtb3ZlX2ludGVybWl0dGVudD1zdGF0ZS5yZW1v
dmVfaW50ZXJtaXR0ZW50KQogCiAKIGNsYXNzIENyZWF0ZU1ldGFkYXRhUGF0Y2goU3RlcCk6CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3dwdHJ1bm5lci93cHRydW5uZXIvdXBkYXRlL3N0YXRlLnB5IGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3Vw
ZGF0ZS9zdGF0ZS5weQppbmRleCBkYzQ1OWRhN2UyZTVhNmI1ZGZkMDg4YjcxMWU0ZmE5YzdkNjkz
YWY5Li42NGRiZjExODA2MDRjZDhkZjdhNDY4ZTAzNjQ0N2Y5NWI4MDM3MWIwIDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1
bm5lci93cHRydW5uZXIvdXBkYXRlL3N0YXRlLnB5CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci91cGRhdGUv
c3RhdGUucHkKQEAgLTEsMTEgKzEsOSBAQAogaW1wb3J0IG9zCi1pbXBvcnQgY1BpY2tsZSBhcyBw
aWNrbGUKK2Zyb20gc2l4Lm1vdmVzIGltcG9ydCBjUGlja2xlIGFzIHBpY2tsZSAgIyBub3FhOiBO
ODEzCiAKIGhlcmUgPSBvcy5wYXRoLmFic3BhdGgob3MucGF0aC5zcGxpdChfX2ZpbGVfXylbMF0p
CiAKLWNsYXNzIFN0YXRlKG9iamVjdCk6Ci0gICAgZmlsZW5hbWUgPSBvcy5wYXRoLmpvaW4oaGVy
ZSwgIi53cHQtdXBkYXRlLmxvY2siKQotCitjbGFzcyBCYXNlU3RhdGUob2JqZWN0KToKICAgICBk
ZWYgX19uZXdfXyhjbHMsIGxvZ2dlcik6CiAgICAgICAgIHJ2ID0gY2xzLmxvYWQobG9nZ2VyKQog
ICAgICAgICBpZiBydiBpcyBub3QgTm9uZToKQEAgLTE4LDExICsxNiw2IEBAIGNsYXNzIFN0YXRl
KG9iamVjdCk6CiAgICAgZGVmIF9faW5pdF9fKHNlbGYsIGxvZ2dlcik6CiAgICAgICAgICIiIk9i
amVjdCBjb250YWluaW5nIHN0YXRlIHZhcmlhYmxlcyBjcmVhdGVkIHdoZW4gcnVubmluZyBTdGVw
cy4KIAotICAgICAgICBPbiB3cml0ZSB0aGUgc3RhdGUgaXMgc2VyaWFsaXplZCB0byBkaXNrLCBz
dWNoIHRoYXQgaXQgY2FuIGJlIHJlc3RvcmVkIGluCi0gICAgICAgIHRoZSBldmVudCB0aGF0IHRo
ZSBwcm9ncmFtIGlzIGludGVycnVwdGVkIGJlZm9yZSBhbGwgc3RlcHMgYXJlIGNvbXBsZXRlLgot
ICAgICAgICBOb3RlIHRoYXQgdGhpcyBvbmx5IHdvcmtzIHdlbGwgaWYgdGhlIHZhbHVlcyBhcmUg
aW1tdXRhYmxlOyBtdXRhdGluZyBhbgotICAgICAgICBleGlzdGluZyB2YWx1ZSB3aWxsIG5vdCBj
YXVzZSB0aGUgZGF0YSB0byBiZSBzZXJpYWxpemVkLgotCiAgICAgICAgIFZhcmlhYmxlcyBhcmUg
c2V0IGFuZCBnZXQgYXMgYXR0cmlidXRlcyBlLmcuIHN0YXRlX29iai5zcGFtID0gImVnZ3MiLgog
CiAgICAgICAgIDpwYXJhbSBwYXJlbnQ6IFBhcmVudCBTdGF0ZSBvYmplY3Qgb3IgTm9uZSBpZiB0
aGlzIGlzIHRoZSByb290IG9iamVjdC4KQEAgLTQwLDIzICszMyw2IEBAIGNsYXNzIFN0YXRlKG9i
amVjdCk6CiAgICAgICAgIGRlbCBydlsiX2xvZ2dlciJdCiAgICAgICAgIHJldHVybiBydgogCi0g
ICAgQGNsYXNzbWV0aG9kCi0gICAgZGVmIGxvYWQoY2xzLCBsb2dnZXIpOgotICAgICAgICAiIiJM
b2FkIHNhdmVkIHN0YXRlIGZyb20gYSBmaWxlIiIiCi0gICAgICAgIHRyeToKLSAgICAgICAgICAg
IGlmIG5vdCBvcy5wYXRoLmlzZmlsZShjbHMuZmlsZW5hbWUpOgotICAgICAgICAgICAgICAgIHJl
dHVybiBOb25lCi0gICAgICAgICAgICB3aXRoIG9wZW4oY2xzLmZpbGVuYW1lKSBhcyBmOgotICAg
ICAgICAgICAgICAgIHRyeToKLSAgICAgICAgICAgICAgICAgICAgcnYgPSBwaWNrbGUubG9hZChm
KQotICAgICAgICAgICAgICAgICAgICBsb2dnZXIuZGVidWcoIkxvYWRpbmcgZGF0YSAlciIgJSAo
cnYuX2RhdGEsKSkKLSAgICAgICAgICAgICAgICAgICAgcnYuX2xvZ2dlciA9IGxvZ2dlcgotICAg
ICAgICAgICAgICAgICAgICBydi5faW5kZXggPSAwCi0gICAgICAgICAgICAgICAgICAgIHJldHVy
biBydgotICAgICAgICAgICAgICAgIGV4Y2VwdCBFT0ZFcnJvcjoKLSAgICAgICAgICAgICAgICAg
ICAgbG9nZ2VyLndhcm5pbmcoIkZvdW5kIGVtcHR5IHN0YXRlIGZpbGUiKQotICAgICAgICBleGNl
cHQgSU9FcnJvcjoKLSAgICAgICAgICAgIGxvZ2dlci5kZWJ1ZygiSU9FcnJvciBsb2FkaW5nIHN0
b3JlZCBzdGF0ZSIpCiAKICAgICBkZWYgcHVzaChzZWxmLCBpbml0X3ZhbHVlcyk6CiAgICAgICAg
ICIiIlB1c2ggYSBuZXcgY2xlYW4gc3RhdGUgZGljdGlvbmFyeQpAQCAtNjYsMjMgKzQyLDEzIEBA
IGNsYXNzIFN0YXRlKG9iamVjdCk6CiAKICAgICAgICAgcmV0dXJuIFN0YXRlQ29udGV4dChzZWxm
LCBpbml0X3ZhbHVlcykKIAotICAgIGRlZiBzYXZlKHNlbGYpOgotICAgICAgICAiIiJXcml0ZSB0
aGUgc3RhdGUgdG8gZGlzayIiIgotICAgICAgICB3aXRoIG9wZW4oc2VsZi5maWxlbmFtZSwgInci
KSBhcyBmOgotICAgICAgICAgICAgcGlja2xlLmR1bXAoc2VsZiwgZikKLQogICAgIGRlZiBpc19l
bXB0eShzZWxmKToKICAgICAgICAgcmV0dXJuIGxlbihzZWxmLl9kYXRhKSA9PSAxIGFuZCBzZWxm
Ll9kYXRhWzBdID09IHt9CiAKICAgICBkZWYgY2xlYXIoc2VsZik6CiAgICAgICAgICIiIlJlbW92
ZSBhbGwgc3RhdGUgYW5kIGRlbGV0ZSB0aGUgc3RvcmVkIGNvcHkuIiIiCi0gICAgICAgIHRyeToK
LSAgICAgICAgICAgIG9zLnVubGluayhzZWxmLmZpbGVuYW1lKQotICAgICAgICBleGNlcHQgT1NF
cnJvcjoKLSAgICAgICAgICAgIHBhc3MKICAgICAgICAgc2VsZi5fZGF0YSA9IFt7fV0KIAotCiAg
ICAgZGVmIF9fc2V0YXR0cl9fKHNlbGYsIGtleSwgdmFsdWUpOgogICAgICAgICBpZiBrZXkuc3Rh
cnRzd2l0aCgiXyIpOgogICAgICAgICAgICAgb2JqZWN0Ll9fc2V0YXR0cl9fKHNlbGYsIGtleSwg
dmFsdWUpCkBAIC0xMDksNiArNzUsNjIgQEAgY2xhc3MgU3RhdGUob2JqZWN0KToKICAgICBkZWYg
a2V5cyhzZWxmKToKICAgICAgICAgcmV0dXJuIHNlbGYuX2RhdGFbc2VsZi5faW5kZXhdLmtleXMo
KQogCisKKyAgICBAY2xhc3NtZXRob2QKKyAgICBkZWYgbG9hZChjbHMpOgorICAgICAgICByYWlz
ZSBOb3RJbXBsZW1lbnRlZEVycm9yCisKKyAgICBkZWYgc2F2ZShzZWxmKToKKyAgICAgICAgcmFp
c2UgTm90SW1wbGVtZW50ZWRFcnJvcgorCisKK2NsYXNzIFNhdmVkU3RhdGUoQmFzZVN0YXRlKToK
KyAgICAiIiJPbiB3cml0ZSB0aGUgc3RhdGUgaXMgc2VyaWFsaXplZCB0byBkaXNrLCBzdWNoIHRo
YXQgaXQgY2FuIGJlIHJlc3RvcmVkIGluCisgICAgICAgdGhlIGV2ZW50IHRoYXQgdGhlIHByb2dy
YW0gaXMgaW50ZXJydXB0ZWQgYmVmb3JlIGFsbCBzdGVwcyBhcmUgY29tcGxldGUuCisgICAgICAg
Tm90ZSB0aGF0IHRoaXMgb25seSB3b3JrcyB3ZWxsIGlmIHRoZSB2YWx1ZXMgYXJlIGltbXV0YWJs
ZTsgbXV0YXRpbmcgYW4KKyAgICAgICBleGlzdGluZyB2YWx1ZSB3aWxsIG5vdCBjYXVzZSB0aGUg
ZGF0YSB0byBiZSBzZXJpYWxpemVkLiIiIgorICAgIGZpbGVuYW1lID0gb3MucGF0aC5qb2luKGhl
cmUsICIud3B0LXVwZGF0ZS5sb2NrIikKKworICAgIEBjbGFzc21ldGhvZAorICAgIGRlZiBsb2Fk
KGNscywgbG9nZ2VyKToKKyAgICAgICAgIiIiTG9hZCBzYXZlZCBzdGF0ZSBmcm9tIGEgZmlsZSIi
IgorICAgICAgICB0cnk6CisgICAgICAgICAgICBpZiBub3Qgb3MucGF0aC5pc2ZpbGUoY2xzLmZp
bGVuYW1lKToKKyAgICAgICAgICAgICAgICByZXR1cm4gTm9uZQorICAgICAgICAgICAgd2l0aCBv
cGVuKGNscy5maWxlbmFtZSkgYXMgZjoKKyAgICAgICAgICAgICAgICB0cnk6CisgICAgICAgICAg
ICAgICAgICAgIHJ2ID0gcGlja2xlLmxvYWQoZikKKyAgICAgICAgICAgICAgICAgICAgbG9nZ2Vy
LmRlYnVnKCJMb2FkaW5nIGRhdGEgJXIiICUgKHJ2Ll9kYXRhLCkpCisgICAgICAgICAgICAgICAg
ICAgIHJ2Ll9sb2dnZXIgPSBsb2dnZXIKKyAgICAgICAgICAgICAgICAgICAgcnYuX2luZGV4ID0g
MAorICAgICAgICAgICAgICAgICAgICByZXR1cm4gcnYKKyAgICAgICAgICAgICAgICBleGNlcHQg
RU9GRXJyb3I6CisgICAgICAgICAgICAgICAgICAgIGxvZ2dlci53YXJuaW5nKCJGb3VuZCBlbXB0
eSBzdGF0ZSBmaWxlIikKKyAgICAgICAgZXhjZXB0IElPRXJyb3I6CisgICAgICAgICAgICBsb2dn
ZXIuZGVidWcoIklPRXJyb3IgbG9hZGluZyBzdG9yZWQgc3RhdGUiKQorCisgICAgZGVmIHNhdmUo
c2VsZik6CisgICAgICAgICIiIldyaXRlIHRoZSBzdGF0ZSB0byBkaXNrIiIiCisgICAgICAgIHdp
dGggb3BlbihzZWxmLmZpbGVuYW1lLCAidyIpIGFzIGY6CisgICAgICAgICAgICBwaWNrbGUuZHVt
cChzZWxmLCBmKQorCisgICAgZGVmIGNsZWFyKHNlbGYpOgorICAgICAgICBzdXBlcihTYXZlZFN0
YXRlLCBzZWxmKS5jbGVhcigpCisgICAgICAgIHRyeToKKyAgICAgICAgICAgIG9zLnVubGluayhz
ZWxmLmZpbGVuYW1lKQorICAgICAgICBleGNlcHQgT1NFcnJvcjoKKyAgICAgICAgICAgIHBhc3MK
KworCitjbGFzcyBVbnNhdmVkU3RhdGUoQmFzZVN0YXRlKToKKyAgICBAY2xhc3NtZXRob2QKKyAg
ICBkZWYgbG9hZChjbHMsIGxvZ2dlcik6CisgICAgICAgIHJldHVybiBOb25lCisKKyAgICBkZWYg
c2F2ZShzZWxmKToKKyAgICAgICAgcmV0dXJuCisKKwogY2xhc3MgU3RhdGVDb250ZXh0KG9iamVj
dCk6CiAgICAgZGVmIF9faW5pdF9fKHNlbGYsIHN0YXRlLCBpbml0X3ZhbHVlcyk6CiAgICAgICAg
IHNlbGYuc3RhdGUgPSBzdGF0ZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3VwZGF0ZS9zeW5j
LnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93
cHRydW5uZXIvd3B0cnVubmVyL3VwZGF0ZS9zeW5jLnB5CmluZGV4IGMyZDBiZmE3ZjBkNjlmMzVk
ZWRlODdlMzI1NWFjYjA0MTJkODhkYjcuLjBkNzVhMTIzMmZjMGNiYTlmYmQ2ZThhMzM2M2FkZWEw
NDc1ZGQ0MzYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci91cGRhdGUvc3luYy5weQorKysgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5l
ci93cHRydW5uZXIvdXBkYXRlL3N5bmMucHkKQEAgLTUsOCArNSw4IEBAIGltcG9ydCBzaHV0aWwK
IGltcG9ydCBzeXMKIGltcG9ydCB1dWlkCiAKLWZyb20gYmFzZSBpbXBvcnQgU3RlcCwgU3RlcFJ1
bm5lcgotZnJvbSB0cmVlIGltcG9ydCBDb21taXQKK2Zyb20gLmJhc2UgaW1wb3J0IFN0ZXAsIFN0
ZXBSdW5uZXIKK2Zyb20gLnRyZWUgaW1wb3J0IENvbW1pdAogCiBoZXJlID0gb3MucGF0aC5hYnNw
YXRoKG9zLnBhdGguc3BsaXQoX19maWxlX18pWzBdKQogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5u
ZXIvdXBkYXRlL3VwZGF0ZS5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci91cGRhdGUvdXBkYXRlLnB5CmluZGV4
IDU2ODVmODQwNjcwY2RiODJkMDRlNWM0YTk3OTg1YWMzM2ZjODdhYTkuLjk2MzAyZWUyNjdlOTA1
YWE4YTQ4YWYxMmI2NTk3OGUwMjVlYmQ0OTIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci91cGRh
dGUvdXBkYXRlLnB5CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci91cGRhdGUvdXBkYXRlLnB5CkBAIC0xLDE2
ICsxLDE2IEBACiBpbXBvcnQgb3MKIGltcG9ydCBzeXMKIAotZnJvbSBtZXRhZGF0YSBpbXBvcnQg
TWV0YWRhdGFVcGRhdGVSdW5uZXIKLWZyb20gc3luYyBpbXBvcnQgU3luY0Zyb21VcHN0cmVhbVJ1
bm5lcgotZnJvbSB0cmVlIGltcG9ydCBHaXRUcmVlLCBIZ1RyZWUsIE5vVkNTVHJlZQorZnJvbSAu
bWV0YWRhdGEgaW1wb3J0IE1ldGFkYXRhVXBkYXRlUnVubmVyCitmcm9tIC5zeW5jIGltcG9ydCBT
eW5jRnJvbVVwc3RyZWFtUnVubmVyCitmcm9tIC50cmVlIGltcG9ydCBHaXRUcmVlLCBIZ1RyZWUs
IE5vVkNTVHJlZQogCi1mcm9tIGJhc2UgaW1wb3J0IFN0ZXAsIFN0ZXBSdW5uZXIsIGV4aXRfY2xl
YW4sIGV4aXRfdW5jbGVhbgotZnJvbSBzdGF0ZSBpbXBvcnQgU3RhdGUKK2Zyb20gLmJhc2UgaW1w
b3J0IFN0ZXAsIFN0ZXBSdW5uZXIsIGV4aXRfY2xlYW4sIGV4aXRfdW5jbGVhbgorZnJvbSAuc3Rh
dGUgaW1wb3J0IFNhdmVkU3RhdGUsIFVuc2F2ZWRTdGF0ZQogCiBkZWYgc2V0dXBfcGF0aHMoc3lu
Y19wYXRoKToKICAgICBzeXMucGF0aC5pbnNlcnQoMCwgb3MucGF0aC5hYnNwYXRoKHN5bmNfcGF0
aCkpCi0gICAgZnJvbSB0b29scyBpbXBvcnQgbG9jYWxwYXRocyAgIyBub3FhOiBmbGFrZTgKKyAg
ICBmcm9tIHRvb2xzIGltcG9ydCBsb2NhbHBhdGhzICAjIG5vcWE6IEY0MDEKIAogY2xhc3MgTG9h
ZENvbmZpZyhTdGVwKToKICAgICAiIiJTdGVwIGZvciBsb2FkaW5nIGNvbmZpZ3VyYXRpb24gZnJv
bSB0aGUgaW5pIGZpbGUgYW5kIGt3YXJncy4iIiIKQEAgLTg1LDIyICs4NSw1MSBAQCBjbGFzcyBV
cGRhdGVNZXRhZGF0YShTdGVwKToKICAgICAgICAga3dhcmdzID0gc3RhdGUua3dhcmdzCiAgICAg
ICAgIHdpdGggc3RhdGUucHVzaChbImxvY2FsX3RyZWUiLCAic3luY190cmVlIiwgInBhdGhzIiwg
InNlcnZlX3Jvb3QiXSk6CiAgICAgICAgICAgICBzdGF0ZS5ydW5fbG9nID0ga3dhcmdzWyJydW5f
bG9nIl0KLSAgICAgICAgICAgIHN0YXRlLmlnbm9yZV9leGlzdGluZyA9IGt3YXJnc1siaWdub3Jl
X2V4aXN0aW5nIl0KLSAgICAgICAgICAgIHN0YXRlLnN0YWJpbGl0eSA9IGt3YXJnc1sic3RhYmls
aXR5Il0KKyAgICAgICAgICAgIHN0YXRlLmRpc2FibGVfaW50ZXJtaXR0ZW50ID0ga3dhcmdzWyJk
aXNhYmxlX2ludGVybWl0dGVudCJdCisgICAgICAgICAgICBzdGF0ZS51cGRhdGVfaW50ZXJtaXR0
ZW50ID0ga3dhcmdzWyJ1cGRhdGVfaW50ZXJtaXR0ZW50Il0KKyAgICAgICAgICAgIHN0YXRlLnJl
bW92ZV9pbnRlcm1pdHRlbnQgPSBrd2FyZ3NbInJlbW92ZV9pbnRlcm1pdHRlbnQiXQogICAgICAg
ICAgICAgc3RhdGUucGF0Y2ggPSBrd2FyZ3NbInBhdGNoIl0KICAgICAgICAgICAgIHN0YXRlLnN1
aXRlX25hbWUgPSBrd2FyZ3NbInN1aXRlX25hbWUiXQogICAgICAgICAgICAgc3RhdGUucHJvZHVj
dCA9IGt3YXJnc1sicHJvZHVjdCJdCiAgICAgICAgICAgICBzdGF0ZS5jb25maWcgPSBrd2FyZ3Nb
ImNvbmZpZyJdCisgICAgICAgICAgICBzdGF0ZS5mdWxsX3VwZGF0ZSA9IGt3YXJnc1siZnVsbCJd
CiAgICAgICAgICAgICBzdGF0ZS5leHRyYV9wcm9wZXJ0aWVzID0ga3dhcmdzWyJleHRyYV9wcm9w
ZXJ0eSJdCiAgICAgICAgICAgICBydW5uZXIgPSBNZXRhZGF0YVVwZGF0ZVJ1bm5lcihzZWxmLmxv
Z2dlciwgc3RhdGUpCiAgICAgICAgICAgICBydW5uZXIucnVuKCkKIAogCitjbGFzcyBSZW1vdmVP
YnNvbGV0ZShTdGVwKToKKyAgICAiIiJSZW1vdmUgbWV0YWRhdGEgZmlsZXMgdGhhdCBkb24ndCBj
b3Jlc3BvbmQgdG8gYW4gZXhpc3RpbmcgdGVzdCBmaWxlIiIiCisKKyAgICBkZWYgY3JlYXRlKHNl
bGYsIHN0YXRlKToKKyAgICAgICAgaWYgbm90IHN0YXRlLmt3YXJnc1sicmVtb3ZlX29ic29sZXRl
Il06CisgICAgICAgICAgICByZXR1cm4KKworICAgICAgICBwYXRocyA9IHN0YXRlLmt3YXJnc1si
dGVzdF9wYXRocyJdCisgICAgICAgIHN0YXRlLnRlc3RzX3BhdGggPSBzdGF0ZS5wYXRoc1siLyJd
WyJ0ZXN0c19wYXRoIl0KKyAgICAgICAgc3RhdGUubWV0YWRhdGFfcGF0aCA9IHN0YXRlLnBhdGhz
WyIvIl1bIm1ldGFkYXRhX3BhdGgiXQorCisgICAgICAgIGZvciB1cmxfcGF0aHMgaW4gcGF0aHMu
aXRlcnZhbHVlcygpOgorICAgICAgICAgICAgdGVzdHNfcGF0aCA9IHVybF9wYXRoc1sidGVzdHNf
cGF0aCJdCisgICAgICAgICAgICBtZXRhZGF0YV9wYXRoID0gdXJsX3BhdGhzWyJtZXRhZGF0YV9w
YXRoIl0KKyAgICAgICAgICAgIGZvciBkaXJwYXRoLCBkaXJuYW1lcywgZmlsZW5hbWVzIGluIG9z
LndhbGsobWV0YWRhdGFfcGF0aCk6CisgICAgICAgICAgICAgICAgZm9yIGZpbGVuYW1lIGluIGZp
bGVuYW1lczoKKyAgICAgICAgICAgICAgICAgICAgaWYgZmlsZW5hbWUgPT0gIl9fZGlyX18uaW5p
IjoKKyAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlCisgICAgICAgICAgICAgICAgICAg
IGlmIGZpbGVuYW1lLmVuZHN3aXRoKCIuaW5pIik6CisgICAgICAgICAgICAgICAgICAgICAgICBm
dWxsX3BhdGggPSBvcy5wYXRoLmpvaW4oZGlycGF0aCwgZmlsZW5hbWUpCisgICAgICAgICAgICAg
ICAgICAgICAgICByZWxfcGF0aCA9IG9zLnBhdGgucmVscGF0aChmdWxsX3BhdGgsIG1ldGFkYXRh
X3BhdGgpCisgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0X3BhdGggPSBvcy5wYXRoLmpvaW4o
dGVzdHNfcGF0aCwgcmVsX3BhdGhbOi00XSkKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIG5v
dCBvcy5wYXRoLmV4aXN0cyh0ZXN0X3BhdGgpOgorICAgICAgICAgICAgICAgICAgICAgICAgICAg
IG9zLnVubGluayhmdWxsX3BhdGgpCisKKwogY2xhc3MgVXBkYXRlUnVubmVyKFN0ZXBSdW5uZXIp
OgogICAgICIiIlJ1bm5lciBmb3IgZG9pbmcgYW4gb3ZlcmFsbCB1cGRhdGUuIiIiCiAgICAgc3Rl
cHMgPSBbTG9hZENvbmZpZywKICAgICAgICAgICAgICBMb2FkVHJlZXMsCiAgICAgICAgICAgICAg
U3luY0Zyb21VcHN0cmVhbSwKKyAgICAgICAgICAgICBSZW1vdmVPYnNvbGV0ZSwKICAgICAgICAg
ICAgICBVcGRhdGVNZXRhZGF0YV0KIAogCkBAIC0xMjIsNyArMTUxLDEwIEBAIGNsYXNzIFdQVFVw
ZGF0ZShvYmplY3QpOgogICAgICAgICAgICAgICAgICMgSWYgdGhlIHN5bmMgcGF0aCBkb2Vzbid0
IGV4aXN0IHdlIGRlZmVyIHRoaXMgdW50aWwgaXQgZG9lcwogICAgICAgICAgICAgICAgIHNldHVw
X3BhdGhzKGt3YXJnc1sic3luY19wYXRoIl0pCiAKLSAgICAgICAgc2VsZi5zdGF0ZSA9IFN0YXRl
KGxvZ2dlcikKKyAgICAgICAgaWYga3dhcmdzLmdldCgic3RvcmVfc3RhdGUiLCBGYWxzZSk6Cisg
ICAgICAgICAgICBzZWxmLnN0YXRlID0gU2F2ZWRTdGF0ZShsb2dnZXIpCisgICAgICAgIGVsc2U6
CisgICAgICAgICAgICBzZWxmLnN0YXRlID0gVW5zYXZlZFN0YXRlKGxvZ2dlcikKICAgICAgICAg
c2VsZi5rd2FyZ3MgPSBrd2FyZ3MKICAgICAgICAgc2VsZi5sb2dnZXIgPSBsb2dnZXIKIApAQCAt
MTMyLDcgKzE2NCw3IEBAIGNsYXNzIFdQVFVwZGF0ZShvYmplY3QpOgogICAgICAgICAgICAgcmV0
dXJuIGV4aXRfY2xlYW4KIAogICAgICAgICBpZiBub3Qgc2VsZi5rd2FyZ3NbImNvbnRpbnVlIl0g
YW5kIG5vdCBzZWxmLnN0YXRlLmlzX2VtcHR5KCk6Ci0gICAgICAgICAgICBzZWxmLmxvZ2dlci5l
cnJvcigiRm91bmQgZXhpc3Rpbmcgc3RhdGUuIFJ1biB3aXRoIC0tY29udGludWUgdG8gcmVzdW1l
IG9yIC0tYWJvcnQgdG8gY2xlYXIgc3RhdGUiKQorICAgICAgICAgICAgc2VsZi5sb2dnZXIuY3Jp
dGljYWwoIkZvdW5kIGV4aXN0aW5nIHN0YXRlLiBSdW4gd2l0aCAtLWNvbnRpbnVlIHRvIHJlc3Vt
ZSBvciAtLWFib3J0IHRvIGNsZWFyIHN0YXRlIikKICAgICAgICAgICAgIHJldHVybiBleGl0X3Vu
Y2xlYW4KIAogICAgICAgICBpZiBzZWxmLmt3YXJnc1siY29udGludWUiXToKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVu
bmVyL3dwdHJ1bm5lci93M2MtaW1wb3J0LmxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci93M2MtaW1wb3J0Lmxv
ZwppbmRleCBlNGMzNmZlMzFmYzYzYzFhN2Y4Y2UzMThjYWIyYmQ3MDljNDNkMmEyLi5hYjA2YzQx
YWY5OGY1YzJjODhjYjg5ZWU1OGJiN2FhMjM0ZTkwMjQzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5u
ZXIvdzNjLWltcG9ydC5sb2cKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3czYy1pbXBvcnQubG9nCkBAIC0x
OCw4ICsxOCw4IEBAIExpc3Qgb2YgZmlsZXM6CiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL2NvbmZpZy5weQogL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVy
L3dwdHJ1bm5lci9lbnZpcm9ubWVudC5weQogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci9leHBlY3RlZC5weQorL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVy
L3dwdHJ1bm5lci9leHBlY3RlZHRyZWUucHkKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvZm9udC5weQotL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dw
dHJ1bm5lci9mb3JtYXR0ZXJzLnB5CiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL21hbmlmZXN0ZXhwZWN0ZWQucHkK
IC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1
bm5lci93cHRydW5uZXIvbWFuaWZlc3RpbmNsdWRlLnB5CiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL21hbmlmZXN0
dXBkYXRlLnB5CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvd2ViZHJpdmVyX3NlcnZlci5weSBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVu
bmVyL3dwdHJ1bm5lci93ZWJkcml2ZXJfc2VydmVyLnB5CmluZGV4IDllY2QwMDlhN2Q4MTI3ZWQ3
OTNkNGVmMGFmZjE5ZjYxNjFiYmQxZWMuLjE2MmZmYWUzZmM5M2FlZWIyOWEyNTM1ZTgyOWFmNDVi
OWUxNWMxZjMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci93ZWJkcml2ZXJfc2VydmVyLnB5Cisr
KyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0
cnVubmVyL3dwdHJ1bm5lci93ZWJkcml2ZXJfc2VydmVyLnB5CkBAIC05LDggKzksOSBAQCBpbXBv
cnQgdHJhY2ViYWNrCiBpbXBvcnQgbW96cHJvY2VzcwogCiAKLV9fYWxsX18gPSBbIlNlbGVuaXVt
U2VydmVyIiwgIkNocm9tZURyaXZlclNlcnZlciIsICJPcGVyYURyaXZlclNlcnZlciIsCi0gICAg
ICAgICAgICJHZWNrb0RyaXZlclNlcnZlciIsICJJbnRlcm5ldEV4cGxvcmVyRHJpdmVyU2VydmVy
IiwgIkVkZ2VEcml2ZXJTZXJ2ZXIiLAorX19hbGxfXyA9IFsiU2VsZW5pdW1TZXJ2ZXIiLCAiQ2hy
b21lRHJpdmVyU2VydmVyIiwgIkNXVENocm9tZURyaXZlclNlcnZlciIsCisgICAgICAgICAgICJF
ZGdlQ2hyb21pdW1Ecml2ZXJTZXJ2ZXIiLCAiT3BlcmFEcml2ZXJTZXJ2ZXIiLCAiR2Vja29Ecml2
ZXJTZXJ2ZXIiLAorICAgICAgICAgICAiSW50ZXJuZXRFeHBsb3JlckRyaXZlclNlcnZlciIsICJF
ZGdlRHJpdmVyU2VydmVyIiwKICAgICAgICAgICAgIlNlcnZvRHJpdmVyU2VydmVyIiwgIldlYktp
dERyaXZlclNlcnZlciIsICJXZWJEcml2ZXJTZXJ2ZXIiXQogCiAKQEAgLTE4LDcgKzE5LDYgQEAg
Y2xhc3MgV2ViRHJpdmVyU2VydmVyKG9iamVjdCk6CiAgICAgX19tZXRhY2xhc3NfXyA9IGFiYy5B
QkNNZXRhCiAKICAgICBkZWZhdWx0X2Jhc2VfcGF0aCA9ICIvIgotICAgIF91c2VkX3BvcnRzID0g
c2V0KCkKIAogICAgIGRlZiBfX2luaXRfXyhzZWxmLCBsb2dnZXIsIGJpbmFyeSwgaG9zdD0iMTI3
LjAuMC4xIiwgcG9ydD1Ob25lLAogICAgICAgICAgICAgICAgICBiYXNlX3BhdGg9IiIsIGVudj1O
b25lLCBhcmdzPU5vbmUpOgpAQCAtODEsOCArODEsMTIgQEAgY2xhc3MgV2ViRHJpdmVyU2VydmVy
KG9iamVjdCk6CiAgICAgICAgICAgICBzZWxmLl9wcm9jLndhaXQoKQogCiAgICAgZGVmIHN0b3Ao
c2VsZiwgZm9yY2U9RmFsc2UpOgorICAgICAgICBzZWxmLmxvZ2dlci5kZWJ1ZygiU3RvcHBpbmcg
V2ViRHJpdmVyIikKICAgICAgICAgaWYgc2VsZi5pc19hbGl2ZToKLSAgICAgICAgICAgIHJldHVy
biBzZWxmLl9wcm9jLmtpbGwoKQorICAgICAgICAgICAga2lsbF9yZXN1bHQgPSBzZWxmLl9wcm9j
LmtpbGwoKQorICAgICAgICAgICAgaWYgZm9yY2UgYW5kIGtpbGxfcmVzdWx0ICE9IDA6CisgICAg
ICAgICAgICAgICAgcmV0dXJuIHNlbGYuX3Byb2Mua2lsbCg5KQorICAgICAgICAgICAgcmV0dXJu
IGtpbGxfcmVzdWx0CiAgICAgICAgIHJldHVybiBub3Qgc2VsZi5pc19hbGl2ZQogCiAgICAgQHBy
b3BlcnR5CkBAIC0xMDYsMTUgKzExMCw5IEBAIGNsYXNzIFdlYkRyaXZlclNlcnZlcihvYmplY3Qp
OgogICAgIEBwcm9wZXJ0eQogICAgIGRlZiBwb3J0KHNlbGYpOgogICAgICAgICBpZiBzZWxmLl9w
b3J0IGlzIE5vbmU6Ci0gICAgICAgICAgICBzZWxmLl9wb3J0ID0gc2VsZi5fZmluZF9uZXh0X2Zy
ZWVfcG9ydCgpCisgICAgICAgICAgICBzZWxmLl9wb3J0ID0gZ2V0X2ZyZWVfcG9ydCgpCiAgICAg
ICAgIHJldHVybiBzZWxmLl9wb3J0CiAKLSAgICBAc3RhdGljbWV0aG9kCi0gICAgZGVmIF9maW5k
X25leHRfZnJlZV9wb3J0KCk6Ci0gICAgICAgIHBvcnQgPSBnZXRfZnJlZV9wb3J0KDQ0NDQsIGV4
Y2x1ZGU9V2ViRHJpdmVyU2VydmVyLl91c2VkX3BvcnRzKQotICAgICAgICBXZWJEcml2ZXJTZXJ2
ZXIuX3VzZWRfcG9ydHMuYWRkKHBvcnQpCi0gICAgICAgIHJldHVybiBwb3J0Ci0KIAogY2xhc3Mg
U2VsZW5pdW1TZXJ2ZXIoV2ViRHJpdmVyU2VydmVyKToKICAgICBkZWZhdWx0X2Jhc2VfcGF0aCA9
ICIvd2QvaHViIgpAQCAtMTM0LDYgKzEzMiwyNSBAQCBjbGFzcyBDaHJvbWVEcml2ZXJTZXJ2ZXIo
V2ViRHJpdmVyU2VydmVyKToKICAgICAgICAgICAgICAgICBjbWRfYXJnKCJwb3J0Iiwgc3RyKHNl
bGYucG9ydCkpLAogICAgICAgICAgICAgICAgIGNtZF9hcmcoInVybC1iYXNlIiwgc2VsZi5iYXNl
X3BhdGgpIGlmIHNlbGYuYmFzZV9wYXRoIGVsc2UgIiJdICsgc2VsZi5fYXJncwogCitjbGFzcyBD
V1RDaHJvbWVEcml2ZXJTZXJ2ZXIoV2ViRHJpdmVyU2VydmVyKToKKyAgICBkZWYgX19pbml0X18o
c2VsZiwgbG9nZ2VyLCBiaW5hcnksIHBvcnQ9Tm9uZSwgYXJncz1Ob25lKToKKyAgICAgICAgV2Vi
RHJpdmVyU2VydmVyLl9faW5pdF9fKHNlbGYsIGxvZ2dlciwgYmluYXJ5LCBwb3J0PXBvcnQsIGFy
Z3M9YXJncykKKworICAgIGRlZiBtYWtlX2NvbW1hbmQoc2VsZik6CisgICAgICAgIHJldHVybiBb
c2VsZi5iaW5hcnksCisgICAgICAgICAgICAgICAgIi0tcG9ydD0lcyIgJSBzdHIoc2VsZi5wb3J0
KV0gKyBzZWxmLl9hcmdzCisKK2NsYXNzIEVkZ2VDaHJvbWl1bURyaXZlclNlcnZlcihXZWJEcml2
ZXJTZXJ2ZXIpOgorICAgIGRlZiBfX2luaXRfXyhzZWxmLCBsb2dnZXIsIGJpbmFyeT0ibXNlZGdl
ZHJpdmVyIiwgcG9ydD1Ob25lLAorICAgICAgICAgICAgICAgICBiYXNlX3BhdGg9IiIsIGFyZ3M9
Tm9uZSk6CisgICAgICAgIFdlYkRyaXZlclNlcnZlci5fX2luaXRfXygKKyAgICAgICAgICAgIHNl
bGYsIGxvZ2dlciwgYmluYXJ5LCBwb3J0PXBvcnQsIGJhc2VfcGF0aD1iYXNlX3BhdGgsIGFyZ3M9
YXJncykKKworICAgIGRlZiBtYWtlX2NvbW1hbmQoc2VsZik6CisgICAgICAgIHJldHVybiBbc2Vs
Zi5iaW5hcnksCisgICAgICAgICAgICAgICAgY21kX2FyZygicG9ydCIsIHN0cihzZWxmLnBvcnQp
KSwKKyAgICAgICAgICAgICAgICBjbWRfYXJnKCJ1cmwtYmFzZSIsIHNlbGYuYmFzZV9wYXRoKSBp
ZiBzZWxmLmJhc2VfcGF0aCBlbHNlICIiXSArIHNlbGYuX2FyZ3MKKwogY2xhc3MgRWRnZURyaXZl
clNlcnZlcihXZWJEcml2ZXJTZXJ2ZXIpOgogICAgIGRlZiBfX2luaXRfXyhzZWxmLCBsb2dnZXIs
IGJpbmFyeT0ibWljcm9zb2Z0d2ViZHJpdmVyLmV4ZSIsIHBvcnQ9Tm9uZSwKICAgICAgICAgICAg
ICAgICAgYmFzZV9wYXRoPSIiLCBob3N0PSJsb2NhbGhvc3QiLCBhcmdzPU5vbmUpOgpAQCAtMTk3
LDcgKzIxNCw3IEBAIGNsYXNzIFNlcnZvRHJpdmVyU2VydmVyKFdlYkRyaXZlclNlcnZlcik6CiAK
ICAgICBkZWYgbWFrZV9jb21tYW5kKHNlbGYpOgogICAgICAgICBjb21tYW5kID0gW3NlbGYuYmlu
YXJ5LAotICAgICAgICAgICAgICAgICAgICItLXdlYmRyaXZlciIsIHN0cihzZWxmLnBvcnQpLAor
ICAgICAgICAgICAgICAgICAgICItLXdlYmRyaXZlcj0lcyIgJSBzZWxmLnBvcnQsCiAgICAgICAg
ICAgICAgICAgICAgIi0taGFyZC1mYWlsIiwKICAgICAgICAgICAgICAgICAgICAiLS1oZWFkbGVz
cyJdICsgc2VsZi5fYXJncwogICAgICAgICBpZiBzZWxmLmJpbmFyeV9hcmdzOgpAQCAtMjIxLDI5
ICsyMzgsMjEgQEAgZGVmIGNtZF9hcmcobmFtZSwgdmFsdWU9Tm9uZSk6CiAgICAgcmV0dXJuIHJ2
CiAKIAotZGVmIGdldF9mcmVlX3BvcnQoc3RhcnRfcG9ydCwgZXhjbHVkZT1Ob25lKToKLSAgICAi
IiJHZXQgdGhlIGZpcnN0IHBvcnQgbnVtYmVyIGFmdGVyIHN0YXJ0X3BvcnQgKGluY2x1c2l2ZSkg
dGhhdCBpcwotICAgIG5vdCBjdXJyZW50bHkgYm91bmQuCi0KLSAgICA6cGFyYW0gc3RhcnRfcG9y
dDogSW50ZWdlciBwb3J0IG51bWJlciBhdCB3aGljaCB0byBzdGFydCB0ZXN0aW5nLgotICAgIDpw
YXJhbSBleGNsdWRlOiBTZXQgb2YgcG9ydCBudW1iZXJzIHRvIHNraXAiIiIKLSAgICBwb3J0ID0g
c3RhcnRfcG9ydAorZGVmIGdldF9mcmVlX3BvcnQoKToKKyAgICAiIiJHZXQgYSByYW5kb20gdW5i
b3VuZCBwb3J0IiIiCiAgICAgd2hpbGUgVHJ1ZToKLSAgICAgICAgaWYgZXhjbHVkZSBhbmQgcG9y
dCBpbiBleGNsdWRlOgotICAgICAgICAgICAgcG9ydCArPSAxCi0gICAgICAgICAgICBjb250aW51
ZQogICAgICAgICBzID0gc29ja2V0LnNvY2tldCgpCiAgICAgICAgIHRyeToKLSAgICAgICAgICAg
IHMuYmluZCgoIjEyNy4wLjAuMSIsIHBvcnQpKQorICAgICAgICAgICAgcy5iaW5kKCgiMTI3LjAu
MC4xIiwgMCkpCiAgICAgICAgIGV4Y2VwdCBzb2NrZXQuZXJyb3I6Ci0gICAgICAgICAgICBwb3J0
ICs9IDEKKyAgICAgICAgICAgIGNvbnRpbnVlCiAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICBy
ZXR1cm4gcG9ydAorICAgICAgICAgICAgcmV0dXJuIHMuZ2V0c29ja25hbWUoKVsxXQogICAgICAg
ICBmaW5hbGx5OgogICAgICAgICAgICAgcy5jbG9zZSgpCiAKIAotZGVmIHdhaXRfZm9yX3NlcnZp
Y2UoYWRkciwgdGltZW91dD0xNSk6CitkZWYgd2FpdF9mb3Jfc2VydmljZShhZGRyLCB0aW1lb3V0
PTYwKToKICAgICAiIiJXYWl0cyB1bnRpbCBuZXR3b3JrIHNlcnZpY2UgZ2l2ZW4gYXMgYSB0dXBs
ZSBvZiAoaG9zdCwgcG9ydCkgYmVjb21lcwogICAgIGF2YWlsYWJsZSBvciB0aGUgYHRpbWVvdXRg
IGR1cmF0aW9uIGlzIHJlYWNoZWQsIGF0IHdoaWNoIHBvaW50CiAgICAgYGBzb2NrZXQuZXJyb3Jg
YCBpcyByYWlzZWQuIiIiCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvd3B0Y29tbWFuZGxpbmUu
cHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dw
dHJ1bm5lci93cHRydW5uZXIvd3B0Y29tbWFuZGxpbmUucHkKaW5kZXggN2UxOGE4YjQzNzliMzM4
ZTdiNmRiNjViMTdjYTM2M2E4M2NiMWM4OS4uOTIzYmRhYTU1ODU3ZTc5M2U4ZDZlOGM1ODcxNjcz
NjBhZWQ0YWU5NCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3dwdGNvbW1hbmRsaW5lLnB5Cisr
KyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0
cnVubmVyL3dwdHJ1bm5lci93cHRjb21tYW5kbGluZS5weQpAQCAtMSwxNCArMSwxNSBAQAorZnJv
bSBfX2Z1dHVyZV9fIGltcG9ydCBwcmludF9mdW5jdGlvbgogaW1wb3J0IGFyZ3BhcnNlCiBpbXBv
cnQgb3MKIGltcG9ydCBzeXMKIGZyb20gY29sbGVjdGlvbnMgaW1wb3J0IE9yZGVyZWREaWN0CiBm
cm9tIGRpc3R1dGlscy5zcGF3biBpbXBvcnQgZmluZF9leGVjdXRhYmxlCiBmcm9tIGRhdGV0aW1l
IGltcG9ydCB0aW1lZGVsdGEKK2Zyb20gc2l4IGltcG9ydCBpdGVya2V5cywgaXRlcnZhbHVlcywg
aXRlcml0ZW1zCiAKLWltcG9ydCBjb25maWcKLWltcG9ydCB3cHR0ZXN0Ci1pbXBvcnQgZm9ybWF0
dGVycwotCitmcm9tIC4gaW1wb3J0IGNvbmZpZworZnJvbSAuIGltcG9ydCB3cHR0ZXN0Citmcm9t
IC5mb3JtYXR0ZXJzIGltcG9ydCBjaHJvbWl1bSwgd3B0cmVwb3J0LCB3cHRzY3JlZW5zaG90CiAK
IGRlZiBhYnNfcGF0aChwYXRoKToKICAgICByZXR1cm4gb3MucGF0aC5hYnNwYXRoKG9zLnBhdGgu
ZXhwYW5kdXNlcihwYXRoKSkKQEAgLTI5LDcgKzMwLDcgQEAgZGVmIHJlcXVpcmVfYXJnKGt3YXJn
cywgbmFtZSwgdmFsdWVfZnVuYz1Ob25lKToKICAgICAgICAgdmFsdWVfZnVuYyA9IGxhbWJkYSB4
OiB4IGlzIG5vdCBOb25lCiAKICAgICBpZiBuYW1lIG5vdCBpbiBrd2FyZ3Mgb3Igbm90IHZhbHVl
X2Z1bmMoa3dhcmdzW25hbWVdKToKLSAgICAgICAgcHJpbnQgPj4gc3lzLnN0ZGVyciwgIk1pc3Np
bmcgcmVxdWlyZWQgYXJndW1lbnQgJXMiICUgbmFtZQorICAgICAgICBwcmludCgiTWlzc2luZyBy
ZXF1aXJlZCBhcmd1bWVudCAlcyIgJSBuYW1lLCBmaWxlPXN5cy5zdGRlcnIpCiAgICAgICAgIHN5
cy5leGl0KDEpCiAKIApAQCAtNTMsNiArNTQsOCBAQCBzY2hlbWUgaG9zdCBhbmQgcG9ydC4iIiIp
CiAgICAgICAgICAgICAgICAgICAgICAgICBoZWxwPSJQcmV2ZW50IHJlZ2VuZXJhdGlvbiBvZiB0
aGUgdGVzdCBtYW5pZmVzdC4iKQogICAgIHBhcnNlci5hZGRfYXJndW1lbnQoIi0tbWFuaWZlc3Qt
ZG93bmxvYWQiLCBhY3Rpb249InN0b3JlX3RydWUiLCBkZWZhdWx0PU5vbmUsCiAgICAgICAgICAg
ICAgICAgICAgICAgICBoZWxwPSJBdHRlbXB0IHRvIGRvd25sb2FkIGEgcHJlZXhpc3RpbmcgbWFu
aWZlc3Qgd2hlbiB1cGRhdGluZy4iKQorICAgIHBhcnNlci5hZGRfYXJndW1lbnQoIi0tbm8tbWFu
aWZlc3QtZG93bmxvYWQiLCBhY3Rpb249InN0b3JlX2ZhbHNlIiwgZGVzdD0ibWFuaWZlc3RfZG93
bmxvYWQiLAorICAgICAgICAgICAgICAgICAgICAgICAgaGVscD0iUHJldmVudCBkb3dubG9hZCBv
ZiB0aGUgdGVzdCBtYW5pZmVzdC4iKQogCiAgICAgcGFyc2VyLmFkZF9hcmd1bWVudCgiLS10aW1l
b3V0LW11bHRpcGxpZXIiLCBhY3Rpb249InN0b3JlIiwgdHlwZT1mbG9hdCwgZGVmYXVsdD1Ob25l
LAogICAgICAgICAgICAgICAgICAgICAgICAgaGVscD0iTXVsdGlwbGllciByZWxhdGl2ZSB0byBz
dGFuZGFyZCB0ZXN0IHRpbWVvdXQgdG8gdXNlIikKQEAgLTEzNyw2ICsxNDAsMTEgQEAgc2NoZW1l
IGhvc3QgYW5kIHBvcnQuIiIiKQogICAgIHRlc3Rfc2VsZWN0aW9uX2dyb3VwLmFkZF9hcmd1bWVu
dCgiLS10YWciLCBhY3Rpb249ImFwcGVuZCIsIGRlc3Q9InRhZ3MiLAogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBoZWxwPSJMYWJlbHMgYXBwbGllZCB0byB0ZXN0cyB0byBp
bmNsdWRlIGluIHRoZSBydW4uICIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAiTGFiZWxzIHN0YXJ0aW5nIGRpcjogYXJlIGVxdWl2YWxlbnQgdG8gdG9wLWxldmVs
IGRpcmVjdG9yaWVzLiIpCisgICAgdGVzdF9zZWxlY3Rpb25fZ3JvdXAuYWRkX2FyZ3VtZW50KCIt
LWRlZmF1bHQtZXhjbHVkZSIsIGFjdGlvbj0ic3RvcmVfdHJ1ZSIsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ9RmFsc2UsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGhlbHA9Ik9ubHkgcnVuIHRoZSB0ZXN0cyBleHBsaWNpdGx5IGdp
dmVuIGluIGFyZ3VtZW50cy4gIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICJObyB0ZXN0cyB3aWxsIHJ1biBpZiB0aGUgbGlzdCBpcyBlbXB0eSwgYW5kIHRoZSAi
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInByb2dyYW0gd2ls
bCBleGl0IHdpdGggc3RhdHVzIGNvZGUgMC4iKQogCiAgICAgZGVidWdnaW5nX2dyb3VwID0gcGFy
c2VyLmFkZF9hcmd1bWVudF9ncm91cCgiRGVidWdnaW5nIikKICAgICBkZWJ1Z2dpbmdfZ3JvdXAu
YWRkX2FyZ3VtZW50KCctLWRlYnVnZ2VyJywgY29uc3Q9Il9fZGVmYXVsdF9fIiwgbmFyZ3M9Ij8i
LApAQCAtMTkyLDYgKzIwMCwxMiBAQCBzY2hlbWUgaG9zdCBhbmQgcG9ydC4iIiIpCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBoZWxwPSJQYXRoIHRvIGRpcmVjdG9yeSBjb250YWluaW5n
IGV4dHJhIGpzb24gZmlsZXMgdG8gYWRkIHRvIHJ1biBpbmZvIikKICAgICBjb25maWdfZ3JvdXAu
YWRkX2FyZ3VtZW50KCItLXByb2R1Y3QiLCBhY3Rpb249InN0b3JlIiwgY2hvaWNlcz1wcm9kdWN0
X2Nob2ljZXMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZhdWx0PU5vbmUsIGhl
bHA9IkJyb3dzZXIgYWdhaW5zdCB3aGljaCB0byBydW4gdGVzdHMiKQorICAgIGNvbmZpZ19ncm91
cC5hZGRfYXJndW1lbnQoIi0tYnJvd3Nlci12ZXJzaW9uIiwgYWN0aW9uPSJzdG9yZSIsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZhdWx0PU5vbmUsIGhlbHA9IkluZm9ybWF0aXZl
IHN0cmluZyBkZXRhaWxpbmcgdGhlIGJyb3dzZXIgIgorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgInJlbGVhc2UgdmVyc2lvbi4gVGhpcyBpcyBpbmNsdWRlZCBpbiB0aGUgcnVuX2luZm8g
ZGF0YS4iKQorICAgIGNvbmZpZ19ncm91cC5hZGRfYXJndW1lbnQoIi0tYnJvd3Nlci1jaGFubmVs
IiwgYWN0aW9uPSJzdG9yZSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZhdWx0
PU5vbmUsIGhlbHA9IkluZm9ybWF0aXZlIHN0cmluZyBkZXRhaWxpbmcgdGhlIGJyb3dzZXIgIgor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInJlbGVhc2UgY2hhbm5lbC4gVGhpcyBpcyBp
bmNsdWRlZCBpbiB0aGUgcnVuX2luZm8gZGF0YS4iKQogICAgIGNvbmZpZ19ncm91cC5hZGRfYXJn
dW1lbnQoIi0tY29uZmlnIiwgYWN0aW9uPSJzdG9yZSIsIHR5cGU9YWJzX3BhdGgsIGRlc3Q9ImNv
bmZpZyIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWxwPSJQYXRoIHRvIGNvbmZp
ZyBmaWxlIikKICAgICBjb25maWdfZ3JvdXAuYWRkX2FyZ3VtZW50KCItLWluc3RhbGwtZm9udHMi
LCBhY3Rpb249InN0b3JlX3RydWUiLApAQCAtMTk5LDYgKzIxMywxMCBAQCBzY2hlbWUgaG9zdCBh
bmQgcG9ydC4iIiIpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWxwPSJBbGxvdyB0
aGUgd3B0cnVubmVyIHRvIGluc3RhbGwgZm9udHMgb24geW91ciBzeXN0ZW0iKQogICAgIGNvbmZp
Z19ncm91cC5hZGRfYXJndW1lbnQoIi0tZm9udC1kaXIiLCBhY3Rpb249InN0b3JlIiwgdHlwZT1h
YnNfcGF0aCwgZGVzdD0iZm9udF9kaXIiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
aGVscD0iUGF0aCB0byBsb2NhbCBmb250IGluc3RhbGxhdGlvbiBkaXJlY3RvcnkiLCBkZWZhdWx0
PU5vbmUpCisgICAgY29uZmlnX2dyb3VwLmFkZF9hcmd1bWVudCgiLS1oZWFkbGVzcyIsIGFjdGlv
bj0ic3RvcmVfdHJ1ZSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWxwPSJSdW4g
YnJvd3NlciBpbiBoZWFkbGVzcyBtb2RlIiwgZGVmYXVsdD1Ob25lKQorICAgIGNvbmZpZ19ncm91
cC5hZGRfYXJndW1lbnQoIi0tbm8taGVhZGxlc3MiLCBhY3Rpb249InN0b3JlX2ZhbHNlIiwgZGVz
dD0iaGVhZGxlc3MiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVscD0iRG9uJ3Qg
cnVuIGJyb3dzZXIgaW4gaGVhZGxlc3MgbW9kZSIpCiAKICAgICBidWlsZF90eXBlID0gcGFyc2Vy
LmFkZF9tdXR1YWxseV9leGNsdXNpdmVfZ3JvdXAoKQogICAgIGJ1aWxkX3R5cGUuYWRkX2FyZ3Vt
ZW50KCItLWRlYnVnLWJ1aWxkIiwgZGVzdD0iZGVidWciLCBhY3Rpb249InN0b3JlX3RydWUiLApA
QCAtMjE0LDcgKzIzMiw3IEBAIHNjaGVtZSBob3N0IGFuZCBwb3J0LiIiIikKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgaGVscD0iVG90YWwgbnVtYmVyIG9mIGNodW5rcyB0byB1c2Ui
KQogICAgIGNodW5raW5nX2dyb3VwLmFkZF9hcmd1bWVudCgiLS10aGlzLWNodW5rIiwgYWN0aW9u
PSJzdG9yZSIsIHR5cGU9aW50LCBkZWZhdWx0PTEsCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGhlbHA9IkNodW5rIG51bWJlciB0byBydW4iKQotICAgIGNodW5raW5nX2dyb3VwLmFk
ZF9hcmd1bWVudCgiLS1jaHVuay10eXBlIiwgYWN0aW9uPSJzdG9yZSIsIGNob2ljZXM9WyJub25l
IiwgImVxdWFsX3RpbWUiLCAiaGFzaCIsICJkaXJfaGFzaCJdLAorICAgIGNodW5raW5nX2dyb3Vw
LmFkZF9hcmd1bWVudCgiLS1jaHVuay10eXBlIiwgYWN0aW9uPSJzdG9yZSIsIGNob2ljZXM9WyJu
b25lIiwgImhhc2giLCAiZGlyX2hhc2giXSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgZGVmYXVsdD1Ob25lLCBoZWxwPSJDaHVua2luZyB0eXBlIHRvIHVzZSIpCiAKICAgICBzc2xf
Z3JvdXAgPSBwYXJzZXIuYWRkX2FyZ3VtZW50X2dyb3VwKCJTU0wvVExTIikKQEAgLTIzOSwxMyAr
MjU3LDIwIEBAIHNjaGVtZSBob3N0IGFuZCBwb3J0LiIiIikKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgaGVscD0iUGF0aCB0byB0aGUgZm9sZGVyIGNvbnRhaW5pbmcgYnJvd3NlciBwcmVm
cyIpCiAgICAgZ2Vja29fZ3JvdXAuYWRkX2FyZ3VtZW50KCItLWRpc2FibGUtZTEwcyIsIGRlc3Q9
ImdlY2tvX2UxMHMiLCBhY3Rpb249InN0b3JlX2ZhbHNlIiwgZGVmYXVsdD1UcnVlLAogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBoZWxwPSJSdW4gdGVzdHMgd2l0aG91dCBlbGVjdHJvbHlz
aXMgcHJlZmVyZW5jZXMiKQorICAgIGdlY2tvX2dyb3VwLmFkZF9hcmd1bWVudCgiLS1lbmFibGUt
d2VicmVuZGVyIiwgZGVzdD0iZW5hYmxlX3dlYnJlbmRlciIsIGFjdGlvbj0ic3RvcmVfdHJ1ZSIs
IGRlZmF1bHQ9Tm9uZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVscD0iRW5hYmxl
IHRoZSBXZWJSZW5kZXIgY29tcG9zaXRvciBpbiBHZWNrbyAoZGVmYXVsdHMgdG8gZGlzYWJsZWQp
LiIpCisgICAgZ2Vja29fZ3JvdXAuYWRkX2FyZ3VtZW50KCItLW5vLWVuYWJsZS13ZWJyZW5kZXIi
LCBkZXN0PSJlbmFibGVfd2VicmVuZGVyIiwgYWN0aW9uPSJzdG9yZV9mYWxzZSIsCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGhlbHA9IkRpc2FibGUgdGhlIFdlYlJlbmRlciBjb21wb3Np
dG9yIGluIEdlY2tvLiIpCiAgICAgZ2Vja29fZ3JvdXAuYWRkX2FyZ3VtZW50KCItLXN0YWNrZml4
LWRpciIsIGRlc3Q9InN0YWNrZml4X2RpciIsIGFjdGlvbj0ic3RvcmUiLAogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBoZWxwPSJQYXRoIHRvIGRpcmVjdG9yeSBjb250YWluaW5nIGFzc2Vy
dGlvbiBzdGFjayBmaXhpbmcgc2NyaXB0cyIpCiAgICAgZ2Vja29fZ3JvdXAuYWRkX2FyZ3VtZW50
KCItLXNldHByZWYiLCBkZXN0PSJleHRyYV9wcmVmcyIsIGFjdGlvbj0nYXBwZW5kJywKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdD1bXSwgbWV0YXZhcj0iUFJFRj1WQUxVRSIs
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlbHA9IkRlZmluZXMgYW4gZXh0cmEgdXNl
ciBwcmVmZXJlbmNlIChvdmVycmlkZXMgdGhvc2UgaW4gcHJlZnNfcm9vdCkiKQotICAgIGdlY2tv
X2dyb3VwLmFkZF9hcmd1bWVudCgiLS1sZWFrLWNoZWNrIiwgZGVzdD0ibGVha19jaGVjayIsIGFj
dGlvbj0ic3RvcmVfdHJ1ZSIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlbHA9IkVu
YWJsZSBsZWFrIGNoZWNraW5nIikKKyAgICBnZWNrb19ncm91cC5hZGRfYXJndW1lbnQoIi0tbGVh
ay1jaGVjayIsIGRlc3Q9ImxlYWtfY2hlY2siLCBhY3Rpb249InN0b3JlX3RydWUiLCBkZWZhdWx0
PU5vbmUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlbHA9IkVuYWJsZSBsZWFrIGNo
ZWNraW5nIChlbmFibGVkIGJ5IGRlZmF1bHQgZm9yIGRlYnVnIGJ1aWxkcywgIgorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAic2lsZW50bHkgaWdub3JlZCBmb3Igb3B0LCBtb2JpbGUpIikK
KyAgICBnZWNrb19ncm91cC5hZGRfYXJndW1lbnQoIi0tbm8tbGVhay1jaGVjayIsIGRlc3Q9Imxl
YWtfY2hlY2siLCBhY3Rpb249InN0b3JlX2ZhbHNlIiwgZGVmYXVsdD1Ob25lLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBoZWxwPSJEaXNhYmxlIGxlYWsgY2hlY2tpbmciKQogICAgIGdl
Y2tvX2dyb3VwLmFkZF9hcmd1bWVudCgiLS1zdHlsby10aHJlYWRzIiwgYWN0aW9uPSJzdG9yZSIs
IHR5cGU9aW50LCBkZWZhdWx0PTEsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlbHA9
Ik51bWJlciBvZiBwYXJhbGxlbCB0aHJlYWRzIHRvIHVzZSBmb3Igc3R5bG8iKQogICAgIGdlY2tv
X2dyb3VwLmFkZF9hcmd1bWVudCgiLS1yZWZ0ZXN0LWludGVybmFsIiwgZGVzdD0icmVmdGVzdF9p
bnRlcm5hbCIsIGFjdGlvbj0ic3RvcmVfdHJ1ZSIsCkBAIC0yNTMsNyArMjc4LDcgQEAgc2NoZW1l
IGhvc3QgYW5kIHBvcnQuIiIiKQogICAgIGdlY2tvX2dyb3VwLmFkZF9hcmd1bWVudCgiLS1yZWZ0
ZXN0LWV4dGVybmFsIiwgZGVzdD0icmVmdGVzdF9pbnRlcm5hbCIsIGFjdGlvbj0ic3RvcmVfZmFs
c2UiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWxwPSJEaXNhYmxlIHJlZnRlc3Qg
cnVubmVyIGltcGxlbWVudGVkIGluc2lkZSBNYXJpb25ldHRlIikKICAgICBnZWNrb19ncm91cC5h
ZGRfYXJndW1lbnQoIi0tcmVmdGVzdC1zY3JlZW5zaG90IiwgZGVzdD0icmVmdGVzdF9zY3JlZW5z
aG90IiwgYWN0aW9uPSJzdG9yZSIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNob2lj
ZXM9WyJhbHdheXMiLCAiZmFpbCIsICJ1bmV4cGVjdGVkIl0sIGRlZmF1bHQ9InVuZXhwZWN0ZWQi
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaG9pY2VzPVsiYWx3YXlzIiwgImZhaWwi
LCAidW5leHBlY3RlZCJdLCBkZWZhdWx0PU5vbmUsCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGhlbHA9IldpdGggLS1yZWZ0ZXN0LWludGVybmFsLCB3aGVuIHRvIHRha2UgYSBzY3JlZW5z
aG90IikKICAgICBnZWNrb19ncm91cC5hZGRfYXJndW1lbnQoIi0tY2hhb3MiLCBkZXN0PSJjaGFv
c19tb2RlX2ZsYWdzIiwgYWN0aW9uPSJzdG9yZSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIG5hcmdzPSI/IiwgY29uc3Q9MHhGRkZGRkZGRiwgdHlwZT1pbnQsCkBAIC0yODcsNiArMzEy
LDE1IEBAIHNjaGVtZSBob3N0IGFuZCBwb3J0LiIiIikKICAgICBzYXVjZV9ncm91cC5hZGRfYXJn
dW1lbnQoIi0tc2F1Y2UtY29ubmVjdC1iaW5hcnkiLAogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBkZXN0PSJzYXVjZV9jb25uZWN0X2JpbmFyeSIsCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGhlbHA9IlBhdGggdG8gU2F1Y2UgQ29ubmVjdCBiaW5hcnkiKQorICAgIHNhdWNlX2dy
b3VwLmFkZF9hcmd1bWVudCgiLS1zYXVjZS1pbml0LXRpbWVvdXQiLCBhY3Rpb249InN0b3JlIiwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1pbnQsIGRlZmF1bHQ9MzAsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGhlbHA9Ik51bWJlciBvZiBzZWNvbmRzIHRvIHdhaXQg
Zm9yIFNhdWNlICIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiQ29ubmVjdCB0
dW5uZWwgdG8gYmUgYXZhaWxhYmxlIGJlZm9yZSAiCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgImFib3J0aW5nIikKKyAgICBzYXVjZV9ncm91cC5hZGRfYXJndW1lbnQoIi0tc2F1
Y2UtY29ubmVjdC1hcmciLCBhY3Rpb249ImFwcGVuZCIsCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGRlZmF1bHQ9W10sIGRlc3Q9InNhdWNlX2Nvbm5lY3RfYXJncyIsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGhlbHA9IkNvbW1hbmQtbGluZSBhcmd1bWVudCB0byBmb3J3YXJk
IHRvIHRoZSAiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlNhdWNlIENvbm5l
Y3QgYmluYXJ5IChyZXBlYXRhYmxlKSIpCiAKICAgICB3ZWJraXRfZ3JvdXAgPSBwYXJzZXIuYWRk
X2FyZ3VtZW50X2dyb3VwKCJXZWJLaXQtc3BlY2lmaWMiKQogICAgIHdlYmtpdF9ncm91cC5hZGRf
YXJndW1lbnQoIi0td2Via2l0LXBvcnQiLCBkZXN0PSJ3ZWJraXRfcG9ydCIsCkBAIC0yOTYsNyAr
MzMwLDE3IEBAIHNjaGVtZSBob3N0IGFuZCBwb3J0LiIiIikKICAgICAgICAgICAgICAgICAgICAg
ICAgIGhlbHA9Ikxpc3Qgb2YgVVJMcyBmb3IgdGVzdHMgdG8gcnVuLCBvciBwYXRocyBpbmNsdWRp
bmcgdGVzdHMgdG8gcnVuLiAiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIoZXF1aXZh
bGVudCB0byAtLWluY2x1ZGUpIikKIAotICAgIGNvbW1hbmRsaW5lLmxvZ19mb3JtYXR0ZXJzWyJ3
cHRyZXBvcnQiXSA9IChmb3JtYXR0ZXJzLldwdHJlcG9ydEZvcm1hdHRlciwgIndwdHJlcG9ydCBm
b3JtYXQiKQorICAgIGRlZiBzY3JlZW5zaG90X2FwaV93cmFwcGVyKGZvcm1hdHRlciwgYXBpKToK
KyAgICAgICAgZm9ybWF0dGVyLmFwaSA9IGFwaQorICAgICAgICByZXR1cm4gZm9ybWF0dGVyCisK
KyAgICBjb21tYW5kbGluZS5mbXRfb3B0aW9uc1siYXBpIl0gPSAoc2NyZWVuc2hvdF9hcGlfd3Jh
cHBlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkNhY2hlIEFQSSAo
ZGVmYXVsdDogJXMpIiAlIHdwdHNjcmVlbnNob3QuREVGQVVMVF9BUEksCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHsid3B0c2NyZWVuc2hvdCJ9LCAic3RvcmUiKQorCisg
ICAgY29tbWFuZGxpbmUubG9nX2Zvcm1hdHRlcnNbImNocm9taXVtIl0gPSAoY2hyb21pdW0uQ2hy
b21pdW1Gb3JtYXR0ZXIsICJDaHJvbWl1bSBMYXlvdXQgVGVzdHMgZm9ybWF0IikKKyAgICBjb21t
YW5kbGluZS5sb2dfZm9ybWF0dGVyc1sid3B0cmVwb3J0Il0gPSAod3B0cmVwb3J0LldwdHJlcG9y
dEZvcm1hdHRlciwgIndwdHJlcG9ydCBmb3JtYXQiKQorICAgIGNvbW1hbmRsaW5lLmxvZ19mb3Jt
YXR0ZXJzWyJ3cHRzY3JlZW5zaG90Il0gPSAod3B0c2NyZWVuc2hvdC5XcHRzY3JlZW5zaG90Rm9y
bWF0dGVyLCAid3B0LmZ5aSBzY3JlZW5zaG90cyIpCiAKICAgICBjb21tYW5kbGluZS5hZGRfbG9n
Z2luZ19ncm91cChwYXJzZXIpCiAgICAgcmV0dXJuIHBhcnNlcgpAQCAtMzIzLDcgKzM2Nyw3IEBA
IGRlZiBzZXRfZnJvbV9jb25maWcoa3dhcmdzKToKICAgICAgICAgICAgICAgICAgICAgKCJob3N0
X2NlcnRfcGF0aCIsICJob3N0X2NlcnRfcGF0aCIsIFRydWUpLAogICAgICAgICAgICAgICAgICAg
ICAoImhvc3Rfa2V5X3BhdGgiLCAiaG9zdF9rZXlfcGF0aCIsIFRydWUpXX0KIAotICAgIGZvciBz
ZWN0aW9uLCB2YWx1ZXMgaW4ga2V5cy5pdGVyaXRlbXMoKToKKyAgICBmb3Igc2VjdGlvbiwgdmFs
dWVzIGluIGl0ZXJpdGVtcyhrZXlzKToKICAgICAgICAgZm9yIGNvbmZpZ192YWx1ZSwga3dfdmFs
dWUsIGlzX3BhdGggaW4gdmFsdWVzOgogICAgICAgICAgICAgaWYga3dfdmFsdWUgaW4ga3dhcmdz
IGFuZCBrd2FyZ3Nba3dfdmFsdWVdIGlzIE5vbmU6CiAgICAgICAgICAgICAgICAgaWYgbm90IGlz
X3BhdGg6CkBAIC0zNTQsMTEgKzM5OCwxMiBAQCBkZWYgc2V0X2Zyb21fY29uZmlnKGt3YXJncyk6
CiAKICAgICBjaGVja19wYXRocyhrd2FyZ3MpCiAKKwogZGVmIGdldF90ZXN0X3BhdGhzKGNvbmZp
Zyk6CiAgICAgIyBTZXQgdXAgdGVzdF9wYXRocwogICAgIHRlc3RfcGF0aHMgPSBPcmRlcmVkRGlj
dCgpCiAKLSAgICBmb3Igc2VjdGlvbiBpbiBjb25maWcuaXRlcmtleXMoKToKKyAgICBmb3Igc2Vj
dGlvbiBpbiBpdGVya2V5cyhjb25maWcpOgogICAgICAgICBpZiBzZWN0aW9uLnN0YXJ0c3dpdGgo
Im1hbmlmZXN0OiIpOgogICAgICAgICAgICAgbWFuaWZlc3Rfb3B0cyA9IGNvbmZpZy5nZXQoc2Vj
dGlvbikKICAgICAgICAgICAgIHVybF9iYXNlID0gbWFuaWZlc3Rfb3B0cy5nZXQoInVybF9iYXNl
IiwgIi8iKQpAQCAtMzg0LDE1ICs0MjksMTUgQEAgZGVmIGV4ZV9wYXRoKG5hbWUpOgogCiAKIGRl
ZiBjaGVja19wYXRocyhrd2FyZ3MpOgotICAgIGZvciB0ZXN0X3BhdGhzIGluIGt3YXJnc1sidGVz
dF9wYXRocyJdLml0ZXJ2YWx1ZXMoKToKKyAgICBmb3IgdGVzdF9wYXRocyBpbiBpdGVydmFsdWVz
KGt3YXJnc1sidGVzdF9wYXRocyJdKToKICAgICAgICAgaWYgbm90ICgidGVzdHNfcGF0aCIgaW4g
dGVzdF9wYXRocyBhbmQKICAgICAgICAgICAgICAgICAibWV0YWRhdGFfcGF0aCIgaW4gdGVzdF9w
YXRocyk6Ci0gICAgICAgICAgICBwcmludCAiRmF0YWw6IG11c3Qgc3BlY2lmeSBib3RoIGEgdGVz
dCBwYXRoIGFuZCBtZXRhZGF0YSBwYXRoIgorICAgICAgICAgICAgcHJpbnQoIkZhdGFsOiBtdXN0
IHNwZWNpZnkgYm90aCBhIHRlc3QgcGF0aCBhbmQgbWV0YWRhdGEgcGF0aCIpCiAgICAgICAgICAg
ICBzeXMuZXhpdCgxKQogICAgICAgICBpZiAibWFuaWZlc3RfcGF0aCIgbm90IGluIHRlc3RfcGF0
aHM6CiAgICAgICAgICAgICB0ZXN0X3BhdGhzWyJtYW5pZmVzdF9wYXRoIl0gPSBvcy5wYXRoLmpv
aW4odGVzdF9wYXRoc1sibWV0YWRhdGFfcGF0aCJdLAogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJNQU5JRkVTVC5qc29uIikKLSAgICAgICAg
Zm9yIGtleSwgcGF0aCBpbiB0ZXN0X3BhdGhzLml0ZXJpdGVtcygpOgorICAgICAgICBmb3Iga2V5
LCBwYXRoIGluIGl0ZXJpdGVtcyh0ZXN0X3BhdGhzKToKICAgICAgICAgICAgIG5hbWUgPSBrZXku
c3BsaXQoIl8iLCAxKVswXQogCiAgICAgICAgICAgICBpZiBuYW1lID09ICJtYW5pZmVzdCI6CkBA
IC00MDEsMTEgKzQ0NiwxMSBAQCBkZWYgY2hlY2tfcGF0aHMoa3dhcmdzKToKICAgICAgICAgICAg
ICAgICBwYXRoID0gb3MucGF0aC5kaXJuYW1lKHBhdGgpCiAKICAgICAgICAgICAgIGlmIG5vdCBv
cy5wYXRoLmV4aXN0cyhwYXRoKToKLSAgICAgICAgICAgICAgICBwcmludCAiRmF0YWw6ICVzIHBh
dGggJXMgZG9lcyBub3QgZXhpc3QiICUgKG5hbWUsIHBhdGgpCisgICAgICAgICAgICAgICAgcHJp
bnQoIkZhdGFsOiAlcyBwYXRoICVzIGRvZXMgbm90IGV4aXN0IiAlIChuYW1lLCBwYXRoKSkKICAg
ICAgICAgICAgICAgICBzeXMuZXhpdCgxKQogCiAgICAgICAgICAgICBpZiBub3Qgb3MucGF0aC5p
c2RpcihwYXRoKToKLSAgICAgICAgICAgICAgICBwcmludCAiRmF0YWw6ICVzIHBhdGggJXMgaXMg
bm90IGEgZGlyZWN0b3J5IiAlIChuYW1lLCBwYXRoKQorICAgICAgICAgICAgICAgIHByaW50KCJG
YXRhbDogJXMgcGF0aCAlcyBpcyBub3QgYSBkaXJlY3RvcnkiICUgKG5hbWUsIHBhdGgpKQogICAg
ICAgICAgICAgICAgIHN5cy5leGl0KDEpCiAKIApAQCAtNDE1LDYgKzQ2MCw5IEBAIGRlZiBjaGVj
a19hcmdzKGt3YXJncyk6CiAgICAgaWYga3dhcmdzWyJwcm9kdWN0Il0gaXMgTm9uZToKICAgICAg
ICAga3dhcmdzWyJwcm9kdWN0Il0gPSAiZmlyZWZveCIKIAorICAgIGlmIGt3YXJnc1sibWFuaWZl
c3RfdXBkYXRlIl0gaXMgTm9uZToKKyAgICAgICAga3dhcmdzWyJtYW5pZmVzdF91cGRhdGUiXSA9
IFRydWUKKwogICAgIGlmICJzYXVjZSIgaW4ga3dhcmdzWyJwcm9kdWN0Il06CiAgICAgICAgIGt3
YXJnc1sicGF1c2VfYWZ0ZXJfdGVzdCJdID0gRmFsc2UKIApAQCAtNDU1LDcgKzUwMyw3IEBAIGRl
ZiBjaGVja19hcmdzKGt3YXJncyk6CiAKICAgICBpZiBrd2FyZ3NbImJpbmFyeSJdIGlzIG5vdCBO
b25lOgogICAgICAgICBpZiBub3Qgb3MucGF0aC5leGlzdHMoa3dhcmdzWyJiaW5hcnkiXSk6Ci0g
ICAgICAgICAgICBwcmludCA+PiBzeXMuc3RkZXJyLCAiQmluYXJ5IHBhdGggJXMgZG9lcyBub3Qg
ZXhpc3QiICUga3dhcmdzWyJiaW5hcnkiXQorICAgICAgICAgICAgcHJpbnQoIkJpbmFyeSBwYXRo
ICVzIGRvZXMgbm90IGV4aXN0IiAlIGt3YXJnc1siYmluYXJ5Il0sIGZpbGU9c3lzLnN0ZGVycikK
ICAgICAgICAgICAgIHN5cy5leGl0KDEpCiAKICAgICBpZiBrd2FyZ3NbInNzbF90eXBlIl0gaXMg
Tm9uZToKQEAgLTQ3NCwyOCArNTIyLDM2IEBAIGRlZiBjaGVja19hcmdzKGt3YXJncyk6CiAgICAg
ZWxpZiBrd2FyZ3NbInNzbF90eXBlIl0gPT0gIm9wZW5zc2wiOgogICAgICAgICBwYXRoID0gZXhl
X3BhdGgoa3dhcmdzWyJvcGVuc3NsX2JpbmFyeSJdKQogICAgICAgICBpZiBwYXRoIGlzIE5vbmU6
Ci0gICAgICAgICAgICBwcmludCA+PiBzeXMuc3RkZXJyLCAib3BlbnNzbC1iaW5hcnkgYXJndW1l
bnQgbWlzc2luZyBvciBub3QgYSB2YWxpZCBleGVjdXRhYmxlIgorICAgICAgICAgICAgcHJpbnQo
Im9wZW5zc2wtYmluYXJ5IGFyZ3VtZW50IG1pc3Npbmcgb3Igbm90IGEgdmFsaWQgZXhlY3V0YWJs
ZSIsIGZpbGU9c3lzLnN0ZGVycikKICAgICAgICAgICAgIHN5cy5leGl0KDEpCiAgICAgICAgIGt3
YXJnc1sib3BlbnNzbF9iaW5hcnkiXSA9IHBhdGgKIAogICAgIGlmIGt3YXJnc1sic3NsX3R5cGUi
XSAhPSAibm9uZSIgYW5kIGt3YXJnc1sicHJvZHVjdCJdID09ICJmaXJlZm94IiBhbmQga3dhcmdz
WyJjZXJ0dXRpbF9iaW5hcnkiXToKICAgICAgICAgcGF0aCA9IGV4ZV9wYXRoKGt3YXJnc1siY2Vy
dHV0aWxfYmluYXJ5Il0pCiAgICAgICAgIGlmIHBhdGggaXMgTm9uZToKLSAgICAgICAgICAgIHBy
aW50ID4+IHN5cy5zdGRlcnIsICJjZXJ0dXRpbC1iaW5hcnkgYXJndW1lbnQgbWlzc2luZyBvciBu
b3QgYSB2YWxpZCBleGVjdXRhYmxlIgorICAgICAgICAgICAgcHJpbnQoImNlcnR1dGlsLWJpbmFy
eSBhcmd1bWVudCBtaXNzaW5nIG9yIG5vdCBhIHZhbGlkIGV4ZWN1dGFibGUiLCBmaWxlPXN5cy5z
dGRlcnIpCiAgICAgICAgICAgICBzeXMuZXhpdCgxKQogICAgICAgICBrd2FyZ3NbImNlcnR1dGls
X2JpbmFyeSJdID0gcGF0aAogCiAgICAgaWYga3dhcmdzWydleHRyYV9wcmVmcyddOgorICAgICAg
ICAjIElmIGEgc2luZ2xlIHByZWYgaXMgcGFzc2VkIGluIGFzIGEgc3RyaW5nLCBtYWtlIGl0IGEg
bGlzdAorICAgICAgICBpZiB0eXBlKGt3YXJnc1snZXh0cmFfcHJlZnMnXSkgaW4gKHN0ciwgdW5p
Y29kZSk6CisgICAgICAgICAgICBrd2FyZ3NbJ2V4dHJhX3ByZWZzJ10gPSBba3dhcmdzWydleHRy
YV9wcmVmcyddXQogICAgICAgICBtaXNzaW5nID0gYW55KCc9JyBub3QgaW4gcHJlZmFyZyBmb3Ig
cHJlZmFyZyBpbiBrd2FyZ3NbJ2V4dHJhX3ByZWZzJ10pCiAgICAgICAgIGlmIG1pc3Npbmc6Ci0g
ICAgICAgICAgICBwcmludCA+PiBzeXMuc3RkZXJyLCAiUHJlZmVyZW5jZXMgdmlhIC0tc2V0cHJl
ZiBtdXN0IGJlIGluIGtleT12YWx1ZSBmb3JtYXQiCisgICAgICAgICAgICBwcmludCgiUHJlZmVy
ZW5jZXMgdmlhIC0tc2V0cHJlZiBtdXN0IGJlIGluIGtleT12YWx1ZSBmb3JtYXQiLCBmaWxlPXN5
cy5zdGRlcnIpCiAgICAgICAgICAgICBzeXMuZXhpdCgxKQogICAgICAgICBrd2FyZ3NbJ2V4dHJh
X3ByZWZzJ10gPSBbdHVwbGUocHJlZmFyZy5zcGxpdCgnPScsIDEpKSBmb3IgcHJlZmFyZyBpbgog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga3dhcmdzWydleHRyYV9wcmVmcyddXQog
CiAgICAgaWYga3dhcmdzWyJyZWZ0ZXN0X2ludGVybmFsIl0gaXMgTm9uZToKLSAgICAgICAgIyBE
ZWZhdWx0IHRvIHRoZSBpbnRlcm5hbCByZWZ0ZXN0IGltcGxlbWVudGF0aW9uIG9uIExpbnV4IGFu
ZCBPU1gKLSAgICAgICAga3dhcmdzWyJyZWZ0ZXN0X2ludGVybmFsIl0gPSBzeXMucGxhdGZvcm0u
c3RhcnRzd2l0aCgibGludXgiKSBvciBzeXMucGxhdGZvcm0uc3RhcnRzd2l0aCgiZGFyd2luIikK
KyAgICAgICAga3dhcmdzWyJyZWZ0ZXN0X2ludGVybmFsIl0gPSBUcnVlCisKKyAgICBpZiBrd2Fy
Z3NbInJlZnRlc3Rfc2NyZWVuc2hvdCJdIGlzIE5vbmU6CisgICAgICAgIGt3YXJnc1sicmVmdGVz
dF9zY3JlZW5zaG90Il0gPSAidW5leHBlY3RlZCIKKworICAgIGlmIGt3YXJnc1siZW5hYmxlX3dl
YnJlbmRlciJdIGlzIE5vbmU6CisgICAgICAgIGt3YXJnc1siZW5hYmxlX3dlYnJlbmRlciJdID0g
RmFsc2UKIAogICAgIHJldHVybiBrd2FyZ3MKIApAQCAtNTEwLDcgKzU2Niw3IEBAIGRlZiBjaGVj
a19hcmdzX3VwZGF0ZShrd2FyZ3MpOgogCiAgICAgZm9yIGl0ZW0gaW4ga3dhcmdzWyJydW5fbG9n
Il06CiAgICAgICAgIGlmIG9zLnBhdGguaXNkaXIoaXRlbSk6Ci0gICAgICAgICAgICBwcmludCA+
PiBzeXMuc3RkZXJyLCAiTG9nIGZpbGUgJXMgaXMgYSBkaXJlY3RvcnkiICUgaXRlbQorICAgICAg
ICAgICAgcHJpbnQoIkxvZyBmaWxlICVzIGlzIGEgZGlyZWN0b3J5IiAlIGl0ZW0sIGZpbGU9c3lz
LnN0ZGVycikKICAgICAgICAgICAgIHN5cy5leGl0KDEpCiAKICAgICByZXR1cm4ga3dhcmdzCkBA
IC01MTksNyArNTc1LDcgQEAgZGVmIGNoZWNrX2FyZ3NfdXBkYXRlKGt3YXJncyk6CiBkZWYgY3Jl
YXRlX3BhcnNlcl91cGRhdGUocHJvZHVjdF9jaG9pY2VzPU5vbmUpOgogICAgIGZyb20gbW96bG9n
LnN0cnVjdHVyZWQgaW1wb3J0IGNvbW1hbmRsaW5lCiAKLSAgICBpbXBvcnQgcHJvZHVjdHMKKyAg
ICBmcm9tIC4gaW1wb3J0IHByb2R1Y3RzCiAKICAgICBpZiBwcm9kdWN0X2Nob2ljZXMgaXMgTm9u
ZToKICAgICAgICAgY29uZmlnX2RhdGEgPSBjb25maWcubG9hZCgpCkBAIC01NDksMTMgKzYwNSwy
MyBAQCBkZWYgY3JlYXRlX3BhcnNlcl91cGRhdGUocHJvZHVjdF9jaG9pY2VzPU5vbmUpOgogICAg
ICAgICAgICAgICAgICAgICAgICAgaGVscD0iRG9uJ3QgY3JlYXRlIGEgVkNTIGNvbW1pdCBjb250
YWluaW5nIHRoZSBjaGFuZ2VzLiIpCiAgICAgcGFyc2VyLmFkZF9hcmd1bWVudCgiLS1zeW5jIiwg
ZGVzdD0ic3luYyIsIGFjdGlvbj0ic3RvcmVfdHJ1ZSIsIGRlZmF1bHQ9RmFsc2UsCiAgICAgICAg
ICAgICAgICAgICAgICAgICBoZWxwPSJTeW5jIHRoZSB0ZXN0cyB3aXRoIHRoZSBsYXRlc3QgZnJv
bSB1cHN0cmVhbSAoaW1wbGllcyAtLXBhdGNoKSIpCi0gICAgcGFyc2VyLmFkZF9hcmd1bWVudCgi
LS1pZ25vcmUtZXhpc3RpbmciLCBhY3Rpb249InN0b3JlX3RydWUiLAotICAgICAgICAgICAgICAg
ICAgICAgICAgaGVscD0iV2hlbiB1cGRhdGluZyB0ZXN0IHJlc3VsdHMgb25seSBjb25zaWRlciBy
ZXN1bHRzIGZyb20gdGhlIGxvZ2ZpbGVzIHByb3ZpZGVkLCBub3QgZXhpc3RpbmcgZXhwZWN0YXRp
b25zLiIpCi0gICAgcGFyc2VyLmFkZF9hcmd1bWVudCgiLS1zdGFiaWxpdHkiLCBuYXJncz0iPyIs
IGFjdGlvbj0ic3RvcmUiLCBjb25zdD0idW5zdGFibGUiLCBkZWZhdWx0PU5vbmUsCisgICAgcGFy
c2VyLmFkZF9hcmd1bWVudCgiLS1mdWxsIiwgYWN0aW9uPSJzdG9yZV90cnVlIiwgZGVmYXVsdD1G
YWxzZSwKKyAgICAgICAgICAgICAgICAgICAgICAgIGhlbHA9KCJGb3IgYWxsIHRlc3RzIHRoYXQg
YXJlIHVwZGF0ZWQsIHJlbW92ZSBhbnkgZXhpc3RpbmcgY29uZGl0aW9ucyBhbmQgbWlzc2luZyBz
dWJ0ZXN0cyIpKQorICAgIHBhcnNlci5hZGRfYXJndW1lbnQoIi0tZGlzYWJsZS1pbnRlcm1pdHRl
bnQiLCBuYXJncz0iPyIsIGFjdGlvbj0ic3RvcmUiLCBjb25zdD0idW5zdGFibGUiLCBkZWZhdWx0
PU5vbmUsCiAgICAgICAgIGhlbHA9KCJSZWFzb24gZm9yIGRpc2FibGluZyB0ZXN0cy4gV2hlbiB1
cGRhdGluZyB0ZXN0IHJlc3VsdHMsIGRpc2FibGUgdGVzdHMgdGhhdCBoYXZlICIKICAgICAgICAg
ICAgICAgImluY29uc2lzdGVudCByZXN1bHRzIGFjcm9zcyBtYW55IHJ1bnMgd2l0aCB0aGUgZ2l2
ZW4gcmVhc29uLiIpKQotICAgIHBhcnNlci5hZGRfYXJndW1lbnQoIi0tY29udGludWUiLCBhY3Rp
b249InN0b3JlX3RydWUiLCBoZWxwPSJDb250aW51ZSBhIHByZXZpb3VzbHkgc3RhcnRlZCBydW4g
b2YgdGhlIHVwZGF0ZSBzY3JpcHQiKQotICAgIHBhcnNlci5hZGRfYXJndW1lbnQoIi0tYWJvcnQi
LCBhY3Rpb249InN0b3JlX3RydWUiLCBoZWxwPSJDbGVhciBzdGF0ZSBmcm9tIGEgcHJldmlvdXMg
aW5jb21wbGV0ZSBydW4gb2YgdGhlIHVwZGF0ZSBzY3JpcHQiKQorICAgIHBhcnNlci5hZGRfYXJn
dW1lbnQoIi0tdXBkYXRlLWludGVybWl0dGVudCIsIGFjdGlvbj0ic3RvcmVfdHJ1ZSIsIGRlZmF1
bHQ9RmFsc2UsCisgICAgICAgICAgICAgICAgICAgICAgICBoZWxwPSgiVXBkYXRlIHRlc3QgbWV0
YWRhdGEgd2l0aCBleHBlY3RlZCBpbnRlcm1pdHRlbnQgc3RhdHVzZXMuIikpCisgICAgcGFyc2Vy
LmFkZF9hcmd1bWVudCgiLS1yZW1vdmUtaW50ZXJtaXR0ZW50IiwgYWN0aW9uPSJzdG9yZV90cnVl
IiwgZGVmYXVsdD1GYWxzZSwKKyAgICAgICAgICAgICAgICAgICAgICAgIGhlbHA9KCJSZW1vdmUg
b2Jzb2xldGUgaW50ZXJtaXR0ZW50IHN0YXR1c2VzIGZyb20gZXhwZWN0ZWQgc3RhdHVzZXMuIikp
CisgICAgcGFyc2VyLmFkZF9hcmd1bWVudCgiLS1uby1yZW1vdmUtb2Jzb2xldGUiLCBhY3Rpb249
InN0b3JlX2ZhbHNlIiwgZGVzdD0icmVtb3ZlX29ic29sZXRlIiwgZGVmYXVsdD1UcnVlLAorICAg
ICAgICAgICAgICAgICAgICAgICAgaGVscD0oIkRvbid0IHJlbW92ZSBtZXRhZGF0YSBmaWxlcyB0
aGF0IG5vIGxvbmdlciBjb3JyZXNwb25kIHRvIGEgdGVzdCBmaWxlIikpCisgICAgcGFyc2VyLmFk
ZF9hcmd1bWVudCgiLS1uby1zdG9yZS1zdGF0ZSIsIGFjdGlvbj0ic3RvcmVfZmFsc2UiLCBkZXN0
PSJzdG9yZV9zdGF0ZSIsCisgICAgICAgICAgICAgICAgICAgICAgICBoZWxwPSJTdG9yZSBzdGF0
ZSBzbyB0aGF0IHN0ZXBzIGNhbiBiZSByZXN1bWVkIGFmdGVyIGZhaWx1cmUiKQorICAgIHBhcnNl
ci5hZGRfYXJndW1lbnQoIi0tY29udGludWUiLCBhY3Rpb249InN0b3JlX3RydWUiLAorICAgICAg
ICAgICAgICAgICAgICAgICAgaGVscD0iQ29udGludWUgYSBwcmV2aW91c2x5IHN0YXJ0ZWQgcnVu
IG9mIHRoZSB1cGRhdGUgc2NyaXB0IikKKyAgICBwYXJzZXIuYWRkX2FyZ3VtZW50KCItLWFib3J0
IiwgYWN0aW9uPSJzdG9yZV90cnVlIiwKKyAgICAgICAgICAgICAgICAgICAgICAgIGhlbHA9IkNs
ZWFyIHN0YXRlIGZyb20gYSBwcmV2aW91cyBpbmNvbXBsZXRlIHJ1biBvZiB0aGUgdXBkYXRlIHNj
cmlwdCIpCiAgICAgcGFyc2VyLmFkZF9hcmd1bWVudCgiLS1leGNsdWRlIiwgYWN0aW9uPSJzdG9y
ZSIsIG5hcmdzPSIqIiwKICAgICAgICAgICAgICAgICAgICAgICAgIGhlbHA9Ikxpc3Qgb2YgZ2xv
Yi1zdHlsZSBwYXRocyB0byBleGNsdWRlIHdoZW4gc3luY2luZyB0ZXN0cyIpCiAgICAgcGFyc2Vy
LmFkZF9hcmd1bWVudCgiLS1pbmNsdWRlIiwgYWN0aW9uPSJzdG9yZSIsIG5hcmdzPSIqIiwKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvd3B0cnVubmVyL3dwdHJ1bm5lci93cHRsb2dnaW5nLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3dwdGxv
Z2dpbmcucHkKaW5kZXggYWMzMTE4MTZjMThiN2Y4OThlNDQyMTQxMGY5N2Q5MzU3ZDJlZGQyZC4u
NjljZWU3NDQ4NzllYjY3ODBjYjk5ZWM5MzEyMzkyMmUxNjZkOWUxNiAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIv
d3B0cnVubmVyL3dwdGxvZ2dpbmcucHkKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3dwdGxvZ2dpbmcucHkK
QEAgLTEsMTkgKzEsMTcgQEAKIGltcG9ydCBsb2dnaW5nCi1pbXBvcnQgc3lzCi1pbXBvcnQgdGhy
ZWFkaW5nCi1mcm9tIFN0cmluZ0lPIGltcG9ydCBTdHJpbmdJTwotZnJvbSBtdWx0aXByb2Nlc3Np
bmcgaW1wb3J0IFF1ZXVlCiAKIGZyb20gbW96bG9nIGltcG9ydCBjb21tYW5kbGluZSwgc3RkYWRh
cHRlciwgc2V0X2RlZmF1bHRfbG9nZ2VyCi1mcm9tIG1vemxvZy5zdHJ1Y3R1cmVkbG9nIGltcG9y
dCBTdHJ1Y3R1cmVkTG9nZ2VyCitmcm9tIG1vemxvZy5zdHJ1Y3R1cmVkbG9nIGltcG9ydCBTdHJ1
Y3R1cmVkTG9nZ2VyLCBsb2dfbGV2ZWxzCiAKLWRlZiBzZXR1cChhcmdzLCBkZWZhdWx0cyk6CisK
K2RlZiBzZXR1cChhcmdzLCBkZWZhdWx0cywgZm9ybWF0dGVyX2RlZmF1bHRzPU5vbmUpOgogICAg
IGxvZ2dlciA9IGFyZ3MucG9wKCdsb2cnLCBOb25lKQogICAgIGlmIGxvZ2dlcjoKICAgICAgICAg
c2V0X2RlZmF1bHRfbG9nZ2VyKGxvZ2dlcikKICAgICAgICAgU3RydWN0dXJlZExvZ2dlci5fbG9n
Z2VyX3N0YXRlc1sid2ViLXBsYXRmb3JtLXRlc3RzIl0gPSBsb2dnZXIuX3N0YXRlCiAgICAgZWxz
ZToKLSAgICAgICAgbG9nZ2VyID0gY29tbWFuZGxpbmUuc2V0dXBfbG9nZ2luZygid2ViLXBsYXRm
b3JtLXRlc3RzIiwgYXJncywgZGVmYXVsdHMpCisgICAgICAgIGxvZ2dlciA9IGNvbW1hbmRsaW5l
LnNldHVwX2xvZ2dpbmcoIndlYi1wbGF0Zm9ybS10ZXN0cyIsIGFyZ3MsIGRlZmF1bHRzLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcm1hdHRlcl9kZWZhdWx0
cz1mb3JtYXR0ZXJfZGVmYXVsdHMpCiAgICAgc2V0dXBfc3RkbGliX2xvZ2dlcigpCiAKICAgICBm
b3IgbmFtZSBpbiBhcmdzLmtleXMoKToKQEAgLTUxLDg0ICs0OSwxOSBAQCBjbGFzcyBMb2dMZXZl
bFJld3JpdGVyKG9iamVjdCk6CiAgICAgICAgIHJldHVybiBzZWxmLmlubmVyKGRhdGEpCiAKIAot
Y2xhc3MgTG9nVGhyZWFkKHRocmVhZGluZy5UaHJlYWQpOgotICAgIGRlZiBfX2luaXRfXyhzZWxm
LCBxdWV1ZSwgbG9nZ2VyLCBsZXZlbCk6Ci0gICAgICAgIHNlbGYucXVldWUgPSBxdWV1ZQotICAg
ICAgICBzZWxmLmxvZ19mdW5jID0gZ2V0YXR0cihsb2dnZXIsIGxldmVsKQotICAgICAgICB0aHJl
YWRpbmcuVGhyZWFkLl9faW5pdF9fKHNlbGYsIG5hbWU9IlRocmVhZC1Mb2ciKQotICAgICAgICBz
ZWxmLmRhZW1vbiA9IFRydWUKLQotICAgIGRlZiBydW4oc2VsZik6Ci0gICAgICAgIHdoaWxlIFRy
dWU6Ci0gICAgICAgICAgICB0cnk6Ci0gICAgICAgICAgICAgICAgbXNnID0gc2VsZi5xdWV1ZS5n
ZXQoKQotICAgICAgICAgICAgZXhjZXB0IChFT0ZFcnJvciwgSU9FcnJvcik6Ci0gICAgICAgICAg
ICAgICAgYnJlYWsKLSAgICAgICAgICAgIGlmIG1zZyBpcyBOb25lOgotICAgICAgICAgICAgICAg
IGJyZWFrCi0gICAgICAgICAgICBlbHNlOgotICAgICAgICAgICAgICAgIHNlbGYubG9nX2Z1bmMo
bXNnKQotCi0KLWNsYXNzIExvZ2dpbmdXcmFwcGVyKFN0cmluZ0lPKToKLSAgICAiIiJXcmFwcGVy
IGZvciBmaWxlIGxpa2Ugb2JqZWN0cyB0byByZWRpcmVjdCBvdXRwdXQgdG8gbG9nZ2VyCi0gICAg
aW5zdGVhZCIiIgotCi0gICAgZGVmIF9faW5pdF9fKHNlbGYsIHF1ZXVlLCBwcmVmaXg9Tm9uZSk6
Ci0gICAgICAgIFN0cmluZ0lPLl9faW5pdF9fKHNlbGYpCi0gICAgICAgIHNlbGYucXVldWUgPSBx
dWV1ZQotICAgICAgICBzZWxmLnByZWZpeCA9IHByZWZpeAotCi0gICAgZGVmIHdyaXRlKHNlbGYs
IGRhdGEpOgotICAgICAgICBpZiBpc2luc3RhbmNlKGRhdGEsIHN0cik6Ci0gICAgICAgICAgICB0
cnk6Ci0gICAgICAgICAgICAgICAgZGF0YSA9IGRhdGEuZGVjb2RlKCJ1dGY4IikKLSAgICAgICAg
ICAgIGV4Y2VwdCBVbmljb2RlRGVjb2RlRXJyb3I6Ci0gICAgICAgICAgICAgICAgZGF0YSA9IGRh
dGEuZW5jb2RlKCJzdHJpbmdfZXNjYXBlIikuZGVjb2RlKCJhc2NpaSIpCi0KLSAgICAgICAgaWYg
ZGF0YS5lbmRzd2l0aCgiXG4iKToKLSAgICAgICAgICAgIGRhdGEgPSBkYXRhWzotMV0KLSAgICAg
ICAgaWYgZGF0YS5lbmRzd2l0aCgiXHIiKToKLSAgICAgICAgICAgIGRhdGEgPSBkYXRhWzotMV0K
LSAgICAgICAgaWYgbm90IGRhdGE6Ci0gICAgICAgICAgICByZXR1cm4KLSAgICAgICAgaWYgc2Vs
Zi5wcmVmaXggaXMgbm90IE5vbmU6Ci0gICAgICAgICAgICBkYXRhID0gIiVzOiAlcyIgJSAoc2Vs
Zi5wcmVmaXgsIGRhdGEpCi0gICAgICAgIHNlbGYucXVldWUucHV0KGRhdGEpCi0KLSAgICBkZWYg
Zmx1c2goc2VsZik6Ci0gICAgICAgIHBhc3MKLQotCi1jbGFzcyBDYXB0dXJlSU8ob2JqZWN0KToK
LSAgICBkZWYgX19pbml0X18oc2VsZiwgbG9nZ2VyLCBkb19jYXB0dXJlKToKLSAgICAgICAgc2Vs
Zi5sb2dnZXIgPSBsb2dnZXIKLSAgICAgICAgc2VsZi5kb19jYXB0dXJlID0gZG9fY2FwdHVyZQot
ICAgICAgICBzZWxmLmxvZ2dpbmdfcXVldWUgPSBOb25lCi0gICAgICAgIHNlbGYubG9nZ2luZ190
aHJlYWQgPSBOb25lCi0gICAgICAgIHNlbGYub3JpZ2luYWxfc3RkaW8gPSBOb25lCi0KLSAgICBk
ZWYgX19lbnRlcl9fKHNlbGYpOgotICAgICAgICBpZiBzZWxmLmRvX2NhcHR1cmU6Ci0gICAgICAg
ICAgICBzZWxmLm9yaWdpbmFsX3N0ZGlvID0gKHN5cy5zdGRvdXQsIHN5cy5zdGRlcnIpCi0gICAg
ICAgICAgICBzZWxmLmxvZ2dpbmdfcXVldWUgPSBRdWV1ZSgpCi0gICAgICAgICAgICBzZWxmLmxv
Z2dpbmdfdGhyZWFkID0gTG9nVGhyZWFkKHNlbGYubG9nZ2luZ19xdWV1ZSwgc2VsZi5sb2dnZXIs
ICJpbmZvIikKLSAgICAgICAgICAgIHN5cy5zdGRvdXQgPSBMb2dnaW5nV3JhcHBlcihzZWxmLmxv
Z2dpbmdfcXVldWUsIHByZWZpeD0iU1RET1VUIikKLSAgICAgICAgICAgIHN5cy5zdGRlcnIgPSBM
b2dnaW5nV3JhcHBlcihzZWxmLmxvZ2dpbmdfcXVldWUsIHByZWZpeD0iU1RERVJSIikKLSAgICAg
ICAgICAgIHNlbGYubG9nZ2luZ190aHJlYWQuc3RhcnQoKQotCi0gICAgZGVmIF9fZXhpdF9fKHNl
bGYsICphcmdzLCAqKmt3YXJncyk6Ci0gICAgICAgIGlmIHNlbGYuZG9fY2FwdHVyZToKLSAgICAg
ICAgICAgIHN5cy5zdGRvdXQsIHN5cy5zdGRlcnIgPSBzZWxmLm9yaWdpbmFsX3N0ZGlvCi0gICAg
ICAgICAgICBpZiBzZWxmLmxvZ2dpbmdfcXVldWUgaXMgbm90IE5vbmU6Ci0gICAgICAgICAgICAg
ICAgc2VsZi5sb2dnZXIuaW5mbygiQ2xvc2luZyBsb2dnaW5nIHF1ZXVlIikKLSAgICAgICAgICAg
ICAgICBzZWxmLmxvZ2dpbmdfcXVldWUucHV0KE5vbmUpCi0gICAgICAgICAgICAgICAgaWYgc2Vs
Zi5sb2dnaW5nX3RocmVhZCBpcyBub3QgTm9uZToKLSAgICAgICAgICAgICAgICAgICAgc2VsZi5s
b2dnaW5nX3RocmVhZC5qb2luKDEwKQotICAgICAgICAgICAgICAgIHdoaWxlIG5vdCBzZWxmLmxv
Z2dpbmdfcXVldWUuZW1wdHkoKToKLSAgICAgICAgICAgICAgICAgICAgdHJ5OgotICAgICAgICAg
ICAgICAgICAgICAgICAgc2VsZi5sb2dnZXIud2FybmluZygiRHJvcHBpbmcgbG9nIG1lc3NhZ2U6
ICVyIiwgc2VsZi5sb2dnaW5nX3F1ZXVlLmdldCgpKQotICAgICAgICAgICAgICAgICAgICBleGNl
cHQgRXhjZXB0aW9uOgotICAgICAgICAgICAgICAgICAgICAgICAgcGFzcwotICAgICAgICAgICAg
ICAgIHNlbGYubG9nZ2luZ19xdWV1ZS5jbG9zZSgpCi0gICAgICAgICAgICAgICAgc2VsZi5sb2dn
ZXIuaW5mbygicXVldWUgY2xvc2VkIikKK2NsYXNzIExvZ2dlZEFib3ZlTGV2ZWxIYW5kbGVyKG9i
amVjdCk6CisgICAgIiIiRmlsdGVyIHRoYXQgcmVjb3JkcyB3aGV0aGVyIGFueSBsb2cgbWVzc2Fn
ZSBhYm92ZSBhIGNlcnRhaW4gbGV2ZWwgaGFzIGJlZW4KKyAgICBzZWVuLgorCisgICAgOnBhcmFt
IG1pbl9sZXZlbDogTWluaW11bSBsZXZlbCB0byByZWNvcmQgYXMgYSBzdHIgKGUuZy4sICJDUklU
SUNBTCIpCisKKyAgICAiIiIKKyAgICBkZWYgX19pbml0X18oc2VsZiwgbWluX2xldmVsKToKKyAg
ICAgICAgc2VsZi5taW5fbGV2ZWwgPSBsb2dfbGV2ZWxzW21pbl9sZXZlbC51cHBlcigpXQorICAg
ICAgICBzZWxmLmhhc19sb2cgPSBGYWxzZQorCisgICAgZGVmIF9fY2FsbF9fKHNlbGYsIGRhdGEp
OgorICAgICAgICBpZiAoZGF0YVsiYWN0aW9uIl0gPT0gImxvZyIgYW5kCisgICAgICAgICAgICBu
b3Qgc2VsZi5oYXNfbG9nIGFuZAorICAgICAgICAgICAgbG9nX2xldmVsc1tkYXRhWyJsZXZlbCJd
XSA8PSBzZWxmLm1pbl9sZXZlbCk6CisgICAgICAgICAgICBzZWxmLmhhc19sb2cgPSBUcnVlCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3dwdHJ1bm5lci93cHRydW5uZXIvd3B0bWFuaWZlc3QvX19pbml0X18ucHkgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRy
dW5uZXIvd3B0bWFuaWZlc3QvX19pbml0X18ucHkKaW5kZXggODk4NWI1YWUzNTA2N2EyNGZiYzg3
ZmRkMmU2MWQ3Mjc5NDEyMzg5Mi4uZTM1NGQ1ZmY0ZjgyOWQ3OTMwYzBkZTYxYTVlZmU3MTA4MTM3
NDYyMSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3dwdG1hbmlmZXN0L19faW5pdF9fLnB5Cisr
KyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0
cnVubmVyL3dwdHJ1bm5lci93cHRtYW5pZmVzdC9fX2luaXRfXy5weQpAQCAtMSw1ICsxLDUgQEAK
ICMgZmxha2U4OiBub3FhIChub3QgaWRlYWwsIGJ1dCBuaWNlciB0aGFuIGFkZGluZyBub3FhOiBG
NDAxIHRvIGV2ZXJ5IGxpbmUhKQotZnJvbSBzZXJpYWxpemVyIGltcG9ydCBzZXJpYWxpemUKLWZy
b20gcGFyc2VyIGltcG9ydCBwYXJzZQotZnJvbSBiYWNrZW5kcy5zdGF0aWMgaW1wb3J0IGNvbXBp
bGUgYXMgY29tcGlsZV9zdGF0aWMKLWZyb20gYmFja2VuZHMuY29uZGl0aW9uYWwgaW1wb3J0IGNv
bXBpbGUgYXMgY29tcGlsZV9jb25kaXRpb24KK2Zyb20gLnNlcmlhbGl6ZXIgaW1wb3J0IHNlcmlh
bGl6ZQorZnJvbSAucGFyc2VyIGltcG9ydCBwYXJzZQorZnJvbSAuYmFja2VuZHMuc3RhdGljIGlt
cG9ydCBjb21waWxlIGFzIGNvbXBpbGVfc3RhdGljCitmcm9tIC5iYWNrZW5kcy5jb25kaXRpb25h
bCBpbXBvcnQgY29tcGlsZSBhcyBjb21waWxlX2NvbmRpdGlvbgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0
cnVubmVyL3dwdG1hbmlmZXN0L2JhY2tlbmRzL2Jhc2UucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvd3B0bWFu
aWZlc3QvYmFja2VuZHMvYmFzZS5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40NWUyMTQ3ZmM0Y2E1MDlhOWRlMjhm
Y2RjYmI3MDdkODIzNDU5NzExCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3dwdG1h
bmlmZXN0L2JhY2tlbmRzL2Jhc2UucHkKQEAgLTAsMCArMSwyMjIgQEAKK2ltcG9ydCBhYmMKKwor
ZnJvbSAuLm5vZGUgaW1wb3J0IE5vZGVWaXNpdG9yCitmcm9tIC4ucGFyc2VyIGltcG9ydCBwYXJz
ZQorCisKK2NsYXNzIENvbXBpbGVyKE5vZGVWaXNpdG9yKToKKyAgICBfX21ldGFjbGFzc19fID0g
YWJjLkFCQ01ldGEKKworICAgIGRlZiBjb21waWxlKHNlbGYsIHRyZWUsIGRhdGFfY2xzX2dldHRl
cj1Ob25lLCAqKmt3YXJncyk6CisgICAgICAgIHNlbGYuX2t3YXJncyA9IGt3YXJncworICAgICAg
ICByZXR1cm4gc2VsZi5fY29tcGlsZSh0cmVlLCBkYXRhX2Nsc19nZXR0ZXIsICoqa3dhcmdzKQor
CisgICAgZGVmIF9jb21waWxlKHNlbGYsIHRyZWUsIGRhdGFfY2xzX2dldHRlcj1Ob25lLCAqKmt3
YXJncyk6CisgICAgICAgICIiIkNvbXBpbGUgYSByYXcgQVNUIGludG8gYSBmb3JtIHdoZXJlIGNv
bmRpdGlvbmFsIGV4cHJlc3Npb25zCisgICAgICAgIGFyZSByZXByZXNlbnRlZCBieSBDb25kaXRp
b25hbFZhbHVlIG9iamVjdHMgdGhhdCBjYW4gYmUgZXZhbHVhdGVkCisgICAgICAgIGF0IHJ1bnRp
bWUuCisKKyAgICAgICAgdHJlZSAtIFRoZSByb290IG5vZGUgb2YgdGhlIHdwdG1hbmlmZXN0IEFT
VCB0byBjb21waWxlCisKKyAgICAgICAgZGF0YV9jbHNfZ2V0dGVyIC0gQSBmdW5jdGlvbiB0YWtp
bmcgdHdvIHBhcmFtZXRlcnM7IHRoZSBwcmV2aW91cworICAgICAgICAgICAgICAgICAgICAgICAg
ICBvdXRwdXQgbm9kZSBhbmQgdGhlIGN1cnJlbnQgYXN0IG5vZGUgYW5kIHJldHVybmluZworICAg
ICAgICAgICAgICAgICAgICAgICAgICB0aGUgY2xhc3Mgb2YgdGhlIG91dHB1dCBub2RlIHRvIHVz
ZSBmb3IgdGhlIGN1cnJlbnQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgYXN0IG5vZGUKKyAg
ICAgICAgIiIiCisgICAgICAgIGlmIGRhdGFfY2xzX2dldHRlciBpcyBOb25lOgorICAgICAgICAg
ICAgc2VsZi5kYXRhX2Nsc19nZXR0ZXIgPSBsYW1iZGEgeCwgeTogTWFuaWZlc3RJdGVtCisgICAg
ICAgIGVsc2U6CisgICAgICAgICAgICBzZWxmLmRhdGFfY2xzX2dldHRlciA9IGRhdGFfY2xzX2dl
dHRlcgorCisgICAgICAgIHNlbGYudHJlZSA9IHRyZWUKKyAgICAgICAgc2VsZi5vdXRwdXRfbm9k
ZSA9IHNlbGYuX2luaXRpYWxfb3V0cHV0X25vZGUodHJlZSwgKiprd2FyZ3MpCisgICAgICAgIHNl
bGYudmlzaXQodHJlZSkKKyAgICAgICAgaWYgaGFzYXR0cihzZWxmLm91dHB1dF9ub2RlLCAic2V0
X2RlZmF1bHRzIik6CisgICAgICAgICAgICBzZWxmLm91dHB1dF9ub2RlLnNldF9kZWZhdWx0cygp
CisgICAgICAgIGFzc2VydCBzZWxmLm91dHB1dF9ub2RlIGlzIG5vdCBOb25lCisgICAgICAgIHJl
dHVybiBzZWxmLm91dHB1dF9ub2RlCisKKyAgICBkZWYgX2luaXRpYWxfb3V0cHV0X25vZGUoc2Vs
Ziwgbm9kZSwgKiprd2FyZ3MpOgorICAgICAgICByZXR1cm4gc2VsZi5kYXRhX2Nsc19nZXR0ZXIo
Tm9uZSwgTm9uZSkobm9kZSwgKiprd2FyZ3MpCisKKyAgICBkZWYgdmlzaXRfRGF0YU5vZGUoc2Vs
Ziwgbm9kZSk6CisgICAgICAgIGlmIG5vZGUgIT0gc2VsZi50cmVlOgorICAgICAgICAgICAgb3V0
cHV0X3BhcmVudCA9IHNlbGYub3V0cHV0X25vZGUKKyAgICAgICAgICAgIHNlbGYub3V0cHV0X25v
ZGUgPSBzZWxmLmRhdGFfY2xzX2dldHRlcihzZWxmLm91dHB1dF9ub2RlLCBub2RlKShub2RlLCAq
KnNlbGYuX2t3YXJncykKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIG91dHB1dF9wYXJlbnQg
PSBOb25lCisKKyAgICAgICAgYXNzZXJ0IHNlbGYub3V0cHV0X25vZGUgaXMgbm90IE5vbmUKKwor
ICAgICAgICBmb3IgY2hpbGQgaW4gbm9kZS5jaGlsZHJlbjoKKyAgICAgICAgICAgIHNlbGYudmlz
aXQoY2hpbGQpCisKKyAgICAgICAgaWYgb3V0cHV0X3BhcmVudCBpcyBub3QgTm9uZToKKyAgICAg
ICAgICAgICMgQXBwZW5kIHRvIHRoZSBwYXJlbnQgKmFmdGVyKiBwcm9jZXNzaW5nIGFsbCB0aGUg
bm9kZSBkYXRhCisgICAgICAgICAgICBvdXRwdXRfcGFyZW50LmFwcGVuZChzZWxmLm91dHB1dF9u
b2RlKQorICAgICAgICAgICAgc2VsZi5vdXRwdXRfbm9kZSA9IHNlbGYub3V0cHV0X25vZGUucGFy
ZW50CisKKyAgICAgICAgYXNzZXJ0IHNlbGYub3V0cHV0X25vZGUgaXMgbm90IE5vbmUKKworICAg
IEBhYmMuYWJzdHJhY3RtZXRob2QKKyAgICBkZWYgdmlzaXRfS2V5VmFsdWVOb2RlKHNlbGYsIG5v
ZGUpOgorICAgICAgICBwYXNzCisKKyAgICBkZWYgdmlzaXRfTGlzdE5vZGUoc2VsZiwgbm9kZSk6
CisgICAgICAgIHJldHVybiBbc2VsZi52aXNpdChjaGlsZCkgZm9yIGNoaWxkIGluIG5vZGUuY2hp
bGRyZW5dCisKKyAgICBkZWYgdmlzaXRfVmFsdWVOb2RlKHNlbGYsIG5vZGUpOgorICAgICAgICBy
ZXR1cm4gbm9kZS5kYXRhCisKKyAgICBkZWYgdmlzaXRfQXRvbU5vZGUoc2VsZiwgbm9kZSk6Cisg
ICAgICAgIHJldHVybiBub2RlLmRhdGEKKworICAgIEBhYmMuYWJzdHJhY3RtZXRob2QKKyAgICBk
ZWYgdmlzaXRfQ29uZGl0aW9uYWxOb2RlKHNlbGYsIG5vZGUpOgorICAgICAgICBwYXNzCisKKyAg
ICBkZWYgdmlzaXRfU3RyaW5nTm9kZShzZWxmLCBub2RlKToKKyAgICAgICAgaW5kZXhlcyA9IFtz
ZWxmLnZpc2l0KGNoaWxkKSBmb3IgY2hpbGQgaW4gbm9kZS5jaGlsZHJlbl0KKworICAgICAgICBk
ZWYgdmFsdWUoeCk6CisgICAgICAgICAgICBydiA9IG5vZGUuZGF0YQorICAgICAgICAgICAgZm9y
IGluZGV4IGluIGluZGV4ZXM6CisgICAgICAgICAgICAgICAgcnYgPSBydltpbmRleCh4KV0KKyAg
ICAgICAgICAgIHJldHVybiBydgorICAgICAgICByZXR1cm4gdmFsdWUKKworICAgIGRlZiB2aXNp
dF9OdW1iZXJOb2RlKHNlbGYsIG5vZGUpOgorICAgICAgICBpZiAiLiIgaW4gbm9kZS5kYXRhOgor
ICAgICAgICAgICAgcmV0dXJuIGZsb2F0KG5vZGUuZGF0YSkKKyAgICAgICAgZWxzZToKKyAgICAg
ICAgICAgIHJldHVybiBpbnQobm9kZS5kYXRhKQorCisgICAgZGVmIHZpc2l0X1ZhcmlhYmxlTm9k
ZShzZWxmLCBub2RlKToKKyAgICAgICAgaW5kZXhlcyA9IFtzZWxmLnZpc2l0KGNoaWxkKSBmb3Ig
Y2hpbGQgaW4gbm9kZS5jaGlsZHJlbl0KKworICAgICAgICBkZWYgdmFsdWUoeCk6CisgICAgICAg
ICAgICBkYXRhID0geFtub2RlLmRhdGFdCisgICAgICAgICAgICBmb3IgaW5kZXggaW4gaW5kZXhl
czoKKyAgICAgICAgICAgICAgICBkYXRhID0gZGF0YVtpbmRleCh4KV0KKyAgICAgICAgICAgIHJl
dHVybiBkYXRhCisgICAgICAgIHJldHVybiB2YWx1ZQorCisgICAgZGVmIHZpc2l0X0luZGV4Tm9k
ZShzZWxmLCBub2RlKToKKyAgICAgICAgYXNzZXJ0IGxlbihub2RlLmNoaWxkcmVuKSA9PSAxCisg
ICAgICAgIHJldHVybiBzZWxmLnZpc2l0KG5vZGUuY2hpbGRyZW5bMF0pCisKKyAgICBAYWJjLmFi
c3RyYWN0bWV0aG9kCisgICAgZGVmIHZpc2l0X1VuYXJ5RXhwcmVzc2lvbk5vZGUoc2VsZiwgbm9k
ZSk6CisgICAgICAgIHBhc3MKKworICAgIEBhYmMuYWJzdHJhY3RtZXRob2QKKyAgICBkZWYgdmlz
aXRfQmluYXJ5RXhwcmVzc2lvbk5vZGUoc2VsZiwgbm9kZSk6CisgICAgICAgIHBhc3MKKworICAg
IEBhYmMuYWJzdHJhY3RtZXRob2QKKyAgICBkZWYgdmlzaXRfVW5hcnlPcGVyYXRvck5vZGUoc2Vs
Ziwgbm9kZSk6CisgICAgICAgIHBhc3MKKworICAgIEBhYmMuYWJzdHJhY3RtZXRob2QKKyAgICBk
ZWYgdmlzaXRfQmluYXJ5T3BlcmF0b3JOb2RlKHNlbGYsIG5vZGUpOgorICAgICAgICBwYXNzCisK
KworY2xhc3MgTWFuaWZlc3RJdGVtKG9iamVjdCk6CisgICAgZGVmIF9faW5pdF9fKHNlbGYsIG5v
ZGUsICoqa3dhcmdzKToKKyAgICAgICAgc2VsZi5wYXJlbnQgPSBOb25lCisgICAgICAgIHNlbGYu
bm9kZSA9IG5vZGUKKyAgICAgICAgc2VsZi5jaGlsZHJlbiA9IFtdCisgICAgICAgIHNlbGYuX2Rh
dGEgPSB7fQorCisgICAgZGVmIF9fcmVwcl9fKHNlbGYpOgorICAgICAgICByZXR1cm4gIjwlcyAl
cz4iICUgKHNlbGYuX19jbGFzc19fLCBzZWxmLm5vZGUuZGF0YSkKKworICAgIGRlZiBfX3N0cl9f
KHNlbGYpOgorICAgICAgICBydiA9IFtyZXByKHNlbGYpXQorICAgICAgICBmb3IgaXRlbSBpbiBz
ZWxmLmNoaWxkcmVuOgorICAgICAgICAgICAgcnYuZXh0ZW5kKCIgICVzIiAlIGxpbmUgZm9yIGxp
bmUgaW4gc3RyKGl0ZW0pLnNwbGl0KCJcbiIpKQorICAgICAgICByZXR1cm4gIlxuIi5qb2luKHJ2
KQorCisgICAgZGVmIHNldF9kZWZhdWx0cyhzZWxmKToKKyAgICAgICAgcGFzcworCisgICAgQHBy
b3BlcnR5CisgICAgZGVmIGlzX2VtcHR5KHNlbGYpOgorICAgICAgICBpZiBzZWxmLl9kYXRhOgor
ICAgICAgICAgICAgcmV0dXJuIEZhbHNlCisgICAgICAgIHJldHVybiBhbGwoY2hpbGQuaXNfZW1w
dHkgZm9yIGNoaWxkIGluIHNlbGYuY2hpbGRyZW4pCisKKyAgICBAcHJvcGVydHkKKyAgICBkZWYg
cm9vdChzZWxmKToKKyAgICAgICAgbm9kZSA9IHNlbGYKKyAgICAgICAgd2hpbGUgbm9kZS5wYXJl
bnQgaXMgbm90IE5vbmU6CisgICAgICAgICAgICBub2RlID0gbm9kZS5wYXJlbnQKKyAgICAgICAg
cmV0dXJuIG5vZGUKKworICAgIEBwcm9wZXJ0eQorICAgIGRlZiBuYW1lKHNlbGYpOgorICAgICAg
ICByZXR1cm4gc2VsZi5ub2RlLmRhdGEKKworICAgIGRlZiBnZXQoc2VsZiwga2V5KToKKyAgICAg
ICAgZm9yIG5vZGUgaW4gW3NlbGYsIHNlbGYucm9vdF06CisgICAgICAgICAgICBpZiBrZXkgaW4g
bm9kZS5fZGF0YToKKyAgICAgICAgICAgICAgICByZXR1cm4gbm9kZS5fZGF0YVtrZXldCisgICAg
ICAgIHJhaXNlIEtleUVycm9yCisKKyAgICBkZWYgc2V0KHNlbGYsIG5hbWUsIHZhbHVlKToKKyAg
ICAgICAgc2VsZi5fZGF0YVtuYW1lXSA9IHZhbHVlCisKKyAgICBkZWYgcmVtb3ZlKHNlbGYpOgor
ICAgICAgICBpZiBzZWxmLnBhcmVudDoKKyAgICAgICAgICAgIHNlbGYucGFyZW50LmNoaWxkcmVu
LnJlbW92ZShzZWxmKQorICAgICAgICAgICAgc2VsZi5wYXJlbnQgPSBOb25lCisKKyAgICBkZWYg
aXRlcmNoaWxkcmVuKHNlbGYsIG5hbWU9Tm9uZSk6CisgICAgICAgIGZvciBpdGVtIGluIHNlbGYu
Y2hpbGRyZW46CisgICAgICAgICAgICBpZiBpdGVtLm5hbWUgPT0gbmFtZSBvciBuYW1lIGlzIE5v
bmU6CisgICAgICAgICAgICAgICAgeWllbGQgaXRlbQorCisgICAgZGVmIGhhc19rZXkoc2VsZiwg
a2V5KToKKyAgICAgICAgZm9yIG5vZGUgaW4gW3NlbGYsIHNlbGYucm9vdF06CisgICAgICAgICAg
ICBpZiBrZXkgaW4gbm9kZS5fZGF0YToKKyAgICAgICAgICAgICAgICByZXR1cm4gVHJ1ZQorICAg
ICAgICByZXR1cm4gRmFsc2UKKworICAgIGRlZiBfZmxhdHRlbihzZWxmKToKKyAgICAgICAgcnYg
PSB7fQorICAgICAgICBmb3Igbm9kZSBpbiBbc2VsZiwgc2VsZi5yb290XToKKyAgICAgICAgICAg
IGZvciBuYW1lLCB2YWx1ZSBpbiBub2RlLl9kYXRhLml0ZXJpdGVtcygpOgorICAgICAgICAgICAg
ICAgIGlmIG5hbWUgbm90IGluIHJ2OgorICAgICAgICAgICAgICAgICAgICBydltuYW1lXSA9IHZh
bHVlCisgICAgICAgIHJldHVybiBydgorCisgICAgZGVmIGl0ZXJpdGVtcyhzZWxmKToKKyAgICAg
ICAgZm9yIGl0ZW0gaW4gc2VsZi5fZmxhdHRlbigpLml0ZXJpdGVtcygpOgorICAgICAgICAgICAg
eWllbGQgaXRlbQorCisgICAgZGVmIGl0ZXJrZXlzKHNlbGYpOgorICAgICAgICBmb3IgaXRlbSBp
biBzZWxmLl9mbGF0dGVuKCkuaXRlcmtleXMoKToKKyAgICAgICAgICAgIHlpZWxkIGl0ZW0KKwor
ICAgIGRlZiBpdGVydmFsdWVzKHNlbGYpOgorICAgICAgICBmb3IgaXRlbSBpbiBzZWxmLl9mbGF0
dGVuKCkuaXRlcnZhbHVlcygpOgorICAgICAgICAgICAgeWllbGQgaXRlbQorCisgICAgZGVmIGFw
cGVuZChzZWxmLCBjaGlsZCk6CisgICAgICAgIGNoaWxkLnBhcmVudCA9IHNlbGYKKyAgICAgICAg
c2VsZi5jaGlsZHJlbi5hcHBlbmQoY2hpbGQpCisgICAgICAgIHJldHVybiBjaGlsZAorCisKK2Rl
ZiBjb21waWxlX2FzdChjb21waWxlciwgYXN0LCBkYXRhX2Nsc19nZXR0ZXI9Tm9uZSwgKiprd2Fy
Z3MpOgorICAgIHJldHVybiBjb21waWxlcigpLmNvbXBpbGUoYXN0LAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgZGF0YV9jbHNfZ2V0dGVyPWRhdGFfY2xzX2dldHRlciwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICoqa3dhcmdzKQorCisKK2RlZiBjb21waWxlKGNvbXBpbGVy
LCBzdHJlYW0sIGRhdGFfY2xzX2dldHRlcj1Ob25lLCAqKmt3YXJncyk6CisgICAgcmV0dXJuIGNv
bXBpbGVfYXN0KGNvbXBpbGVyLAorICAgICAgICAgICAgICAgICAgICAgICBwYXJzZShzdHJlYW0p
LAorICAgICAgICAgICAgICAgICAgICAgICBkYXRhX2Nsc19nZXR0ZXI9ZGF0YV9jbHNfZ2V0dGVy
LAorICAgICAgICAgICAgICAgICAgICAgICAqKmt3YXJncykKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1
bm5lci93cHRtYW5pZmVzdC9iYWNrZW5kcy9jb25kaXRpb25hbC5weSBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci93
cHRtYW5pZmVzdC9iYWNrZW5kcy9jb25kaXRpb25hbC5weQppbmRleCA0ZWIyOTJlZmI3NTA4YTBh
YWM3MmYzOTJjMWFmMGU4OGUwN2ZlNWZjLi5hYWNkNzg1NzA3MmY0MjBhMjA5YWVlZmY1NTllYzJh
ZTI5NDE3MGJhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvd3B0bWFuaWZlc3QvYmFja2VuZHMv
Y29uZGl0aW9uYWwucHkKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3dwdG1hbmlmZXN0L2JhY2tlbmRzL2Nv
bmRpdGlvbmFsLnB5CkBAIC0xLDE2ICsxLDE4IEBACiBpbXBvcnQgb3BlcmF0b3IKIAotZnJvbSAu
Lm5vZGUgaW1wb3J0IE5vZGVWaXNpdG9yLCBEYXRhTm9kZSwgQ29uZGl0aW9uYWxOb2RlLCBLZXlW
YWx1ZU5vZGUsIExpc3ROb2RlLCBWYWx1ZU5vZGUKK2Zyb20gLi5ub2RlIGltcG9ydCBOb2RlVmlz
aXRvciwgRGF0YU5vZGUsIENvbmRpdGlvbmFsTm9kZSwgS2V5VmFsdWVOb2RlLCBMaXN0Tm9kZSwg
VmFsdWVOb2RlLCBCaW5hcnlFeHByZXNzaW9uTm9kZSwgVmFyaWFibGVOb2RlCiBmcm9tIC4ucGFy
c2VyIGltcG9ydCBwYXJzZQogCiAKIGNsYXNzIENvbmRpdGlvbmFsVmFsdWUob2JqZWN0KToKICAg
ICBkZWYgX19pbml0X18oc2VsZiwgbm9kZSwgY29uZGl0aW9uX2Z1bmMpOgogICAgICAgICBzZWxm
Lm5vZGUgPSBub2RlCisgICAgICAgIGFzc2VydCBjYWxsYWJsZShjb25kaXRpb25fZnVuYykKICAg
ICAgICAgc2VsZi5jb25kaXRpb25fZnVuYyA9IGNvbmRpdGlvbl9mdW5jCiAgICAgICAgIGlmIGlz
aW5zdGFuY2Uobm9kZSwgQ29uZGl0aW9uYWxOb2RlKToKICAgICAgICAgICAgIGFzc2VydCBsZW4o
bm9kZS5jaGlsZHJlbikgPT0gMgogICAgICAgICAgICAgc2VsZi5jb25kaXRpb25fbm9kZSA9IHNl
bGYubm9kZS5jaGlsZHJlblswXQorICAgICAgICAgICAgYXNzZXJ0IGlzaW5zdGFuY2Uobm9kZS5j
aGlsZHJlblsxXSwgKFZhbHVlTm9kZSwgTGlzdE5vZGUpKQogICAgICAgICAgICAgc2VsZi52YWx1
ZV9ub2RlID0gc2VsZi5ub2RlLmNoaWxkcmVuWzFdCiAgICAgICAgIGVsc2U6CiAgICAgICAgICAg
ICBhc3NlcnQgaXNpbnN0YW5jZShub2RlLCAoVmFsdWVOb2RlLCBMaXN0Tm9kZSkpCkBAIC01OSw2
ICs2MSwyMCBAQCBjbGFzcyBDb25kaXRpb25hbFZhbHVlKG9iamVjdCk6CiAgICAgICAgICAgICBz
ZWxmLm5vZGUucGFyZW50LnJlbW92ZSgpCiAgICAgICAgIHNlbGYubm9kZS5yZW1vdmUoKQogCisg
ICAgQHByb3BlcnR5CisgICAgZGVmIHZhcmlhYmxlcyhzZWxmKToKKyAgICAgICAgcnYgPSBzZXQo
KQorICAgICAgICBpZiBzZWxmLmNvbmRpdGlvbl9ub2RlIGlzIE5vbmU6CisgICAgICAgICAgICBy
ZXR1cm4gcnYKKyAgICAgICAgc3RhY2sgPSBbc2VsZi5jb25kaXRpb25fbm9kZV0KKyAgICAgICAg
d2hpbGUgc3RhY2s6CisgICAgICAgICAgICBub2RlID0gc3RhY2sucG9wKCkKKyAgICAgICAgICAg
IGlmIGlzaW5zdGFuY2Uobm9kZSwgVmFyaWFibGVOb2RlKToKKyAgICAgICAgICAgICAgICBydi5h
ZGQobm9kZS5kYXRhKQorICAgICAgICAgICAgZm9yIGNoaWxkIGluIHJldmVyc2VkKG5vZGUuY2hp
bGRyZW4pOgorICAgICAgICAgICAgICAgIHN0YWNrLmFwcGVuZChjaGlsZCkKKyAgICAgICAgcmV0
dXJuIHJ2CisKIAogY2xhc3MgQ29tcGlsZXIoTm9kZVZpc2l0b3IpOgogICAgIGRlZiBjb21waWxl
KHNlbGYsIHRyZWUsIGRhdGFfY2xzX2dldHRlcj1Ob25lLCAqKmt3YXJncyk6CkBAIC0xOTEsNiAr
MjA3LDcgQEAgY2xhc3MgQ29tcGlsZXIoTm9kZVZpc2l0b3IpOgogICAgICAgICByZXR1cm4geyJu
b3QiOiBvcGVyYXRvci5ub3RffVtub2RlLmRhdGFdCiAKICAgICBkZWYgdmlzaXRfQmluYXJ5T3Bl
cmF0b3JOb2RlKHNlbGYsIG5vZGUpOgorICAgICAgICBhc3NlcnQgaXNpbnN0YW5jZShub2RlLnBh
cmVudCwgQmluYXJ5RXhwcmVzc2lvbk5vZGUpCiAgICAgICAgIHJldHVybiB7ImFuZCI6IG9wZXJh
dG9yLmFuZF8sCiAgICAgICAgICAgICAgICAgIm9yIjogb3BlcmF0b3Iub3JfLAogICAgICAgICAg
ICAgICAgICI9PSI6IG9wZXJhdG9yLmVxLApAQCAtMjA1LDcgKzIyMiw3IEBAIGNsYXNzIE1hbmlm
ZXN0SXRlbShvYmplY3QpOgogICAgICAgICBzZWxmLl9kYXRhID0ge30KIAogICAgIGRlZiBfX3Jl
cHJfXyhzZWxmKToKLSAgICAgICAgcmV0dXJuICI8TWFuaWZlc3RJdGVtICVzPiIgJSAoc2VsZi5u
b2RlLmRhdGEpCisgICAgICAgIHJldHVybiAiPGNvbmRpdGlvbmFsLk1hbmlmZXN0SXRlbSAlcz4i
ICUgKHNlbGYubm9kZS5kYXRhKQogCiAgICAgZGVmIF9fc3RyX18oc2VsZik6CiAgICAgICAgIHJ2
ID0gW3JlcHIoc2VsZildCkBAIC0yMTYsNiArMjMzLDEyIEBAIGNsYXNzIE1hbmlmZXN0SXRlbShv
YmplY3QpOgogICAgIGRlZiBfX2NvbnRhaW5zX18oc2VsZiwga2V5KToKICAgICAgICAgcmV0dXJu
IGtleSBpbiBzZWxmLl9kYXRhCiAKKyAgICBkZWYgX19pdGVyX18oc2VsZik6CisgICAgICAgIHlp
ZWxkIHNlbGYKKyAgICAgICAgZm9yIGNoaWxkIGluIHNlbGYuY2hpbGRyZW46CisgICAgICAgICAg
ICBmb3Igbm9kZSBpbiBjaGlsZDoKKyAgICAgICAgICAgICAgICB5aWVsZCBub2RlCisKICAgICBA
cHJvcGVydHkKICAgICBkZWYgaXNfZW1wdHkoc2VsZik6CiAgICAgICAgIGlmIHNlbGYuX2RhdGE6
CkBAIC0yODIsOSArMzA1LDEyIEBAIGNsYXNzIE1hbmlmZXN0SXRlbShvYmplY3QpOgogICAgICAg
ICBlbHNlOgogICAgICAgICAgICAgdmFsdWVfbm9kZSA9IFZhbHVlTm9kZSh1bmljb2RlKHZhbHVl
KSkKICAgICAgICAgaWYgY29uZGl0aW9uIGlzIG5vdCBOb25lOgotICAgICAgICAgICAgY29uZGl0
aW9uYWxfbm9kZSA9IENvbmRpdGlvbmFsTm9kZSgpCi0gICAgICAgICAgICBjb25kaXRpb25hbF9u
b2RlLmFwcGVuZChjb25kaXRpb24pCi0gICAgICAgICAgICBjb25kaXRpb25hbF9ub2RlLmFwcGVu
ZCh2YWx1ZV9ub2RlKQorICAgICAgICAgICAgaWYgbm90IGlzaW5zdGFuY2UoY29uZGl0aW9uLCBD
b25kaXRpb25hbE5vZGUpOgorICAgICAgICAgICAgICAgIGNvbmRpdGlvbmFsX25vZGUgPSBDb25k
aXRpb25hbE5vZGUoKQorICAgICAgICAgICAgICAgIGNvbmRpdGlvbmFsX25vZGUuYXBwZW5kKGNv
bmRpdGlvbikKKyAgICAgICAgICAgICAgICBjb25kaXRpb25hbF9ub2RlLmFwcGVuZCh2YWx1ZV9u
b2RlKQorICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICBjb25kaXRpb25hbF9ub2Rl
ID0gY29uZGl0aW9uCiAgICAgICAgICAgICBub2RlLmFwcGVuZChjb25kaXRpb25hbF9ub2RlKQog
ICAgICAgICAgICAgY29uZF92YWx1ZSA9IENvbXBpbGVyKCkuY29tcGlsZV9jb25kaXRpb24oY29u
ZGl0aW9uYWxfbm9kZSkKICAgICAgICAgZWxzZToKQEAgLTMwMCw2ICszMjYsMjEgQEAgY2xhc3Mg
TWFuaWZlc3RJdGVtKG9iamVjdCk6CiAgICAgICAgIGVsc2U6CiAgICAgICAgICAgICBzZWxmLl9k
YXRhW2tleV0uYXBwZW5kKGNvbmRfdmFsdWUpCiAKKyAgICBkZWYgY2xlYXIoc2VsZiwga2V5KToK
KyAgICAgICAgIiIiQ2xlYXIgYWxsIHRoZSBleHBlY3RlZCBkYXRhIGZvciB0aGlzIG5vZGUiIiIK
KyAgICAgICAgaWYga2V5IGluIHNlbGYuX2RhdGE6CisgICAgICAgICAgICBmb3IgY2hpbGQgaW4g
c2VsZi5ub2RlLmNoaWxkcmVuOgorICAgICAgICAgICAgICAgIGlmIChpc2luc3RhbmNlKGNoaWxk
LCBLZXlWYWx1ZU5vZGUpIGFuZAorICAgICAgICAgICAgICAgICAgICBjaGlsZC5kYXRhID09IGtl
eSk6CisgICAgICAgICAgICAgICAgICAgIGNoaWxkLnJlbW92ZSgpCisgICAgICAgICAgICAgICAg
ICAgIGRlbCBzZWxmLl9kYXRhW2tleV0KKyAgICAgICAgICAgICAgICAgICAgYnJlYWsKKworICAg
IGRlZiBnZXRfY29uZGl0aW9ucyhzZWxmLCBwcm9wZXJ0eV9uYW1lKToKKyAgICAgICAgaWYgcHJv
cGVydHlfbmFtZSBpbiBzZWxmLl9kYXRhOgorICAgICAgICAgICAgcmV0dXJuIHNlbGYuX2RhdGFb
cHJvcGVydHlfbmFtZV0KKyAgICAgICAgcmV0dXJuIFtdCisKICAgICBkZWYgX2FkZF9rZXlfdmFs
dWUoc2VsZiwgbm9kZSwgdmFsdWVzKToKICAgICAgICAgIiIiQ2FsbGVkIGR1cmluZyBjb25zdHJ1
Y3Rpb24gdG8gc2V0IGEga2V5LXZhbHVlIG5vZGUiIiIKICAgICAgICAgc2VsZi5fZGF0YVtub2Rl
LmRhdGFdID0gdmFsdWVzCkBAIC0zMTgsNiArMzU5LDcgQEAgY2xhc3MgTWFuaWZlc3RJdGVtKG9i
amVjdCk6CiAgICAgZGVmIF9yZW1vdmVfY2hpbGQoc2VsZiwgY2hpbGQpOgogICAgICAgICBzZWxm
LmNoaWxkcmVuLnJlbW92ZShjaGlsZCkKICAgICAgICAgY2hpbGQucGFyZW50ID0gTm9uZQorICAg
ICAgICBjaGlsZC5ub2RlLnJlbW92ZSgpCiAKICAgICBkZWYgaXRlcmNoaWxkcmVuKHNlbGYsIG5h
bWU9Tm9uZSk6CiAgICAgICAgIGZvciBpdGVtIGluIHNlbGYuY2hpbGRyZW46CkBAIC0zNDEsNiAr
MzgzLDggQEAgY2xhc3MgTWFuaWZlc3RJdGVtKG9iamVjdCk6CiAgICAgICAgICAgICB5aWVsZCBp
dGVtCiAKICAgICBkZWYgcmVtb3ZlX3ZhbHVlKHNlbGYsIGtleSwgdmFsdWUpOgorICAgICAgICBp
ZiBrZXkgbm90IGluIHNlbGYuX2RhdGE6CisgICAgICAgICAgICByZXR1cm4KICAgICAgICAgdHJ5
OgogICAgICAgICAgICAgc2VsZi5fZGF0YVtrZXldLnJlbW92ZSh2YWx1ZSkKICAgICAgICAgZXhj
ZXB0IFZhbHVlRXJyb3I6CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvd3B0bWFuaWZlc3QvYmFj
a2VuZHMvc3RhdGljLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3dwdG1hbmlmZXN0L2JhY2tlbmRzL3N0YXRp
Yy5weQppbmRleCBiM2NiZWRjMzgxOGVlOGYwNGZiNjlkOTA5ZjJkOGQxOWMzYTVmNTk0Li42ZWZh
ZDFjMGU0N2IxMTRiNTEyNTliYjM2OWE0YWQxNTk3MTI2OGQ3IDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRy
dW5uZXIvd3B0bWFuaWZlc3QvYmFja2VuZHMvc3RhdGljLnB5CisrKyBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci93
cHRtYW5pZmVzdC9iYWNrZW5kcy9zdGF0aWMucHkKQEAgLTEsMTAgKzEsMTAgQEAKIGltcG9ydCBv
cGVyYXRvcgogCi1mcm9tIC4ubm9kZSBpbXBvcnQgTm9kZVZpc2l0b3IKK2Zyb20gLiBpbXBvcnQg
YmFzZQogZnJvbSAuLnBhcnNlciBpbXBvcnQgcGFyc2UKIAogCi1jbGFzcyBDb21waWxlcihOb2Rl
VmlzaXRvcik6CitjbGFzcyBDb21waWxlcihiYXNlLkNvbXBpbGVyKToKICAgICAiIiJDb21waWxl
ciBiYWNrZW5kIHRoYXQgZXZhbHVhdGVzIGNvbmRpdGlvbmFsIGV4cHJlc3Npb25zCiAgICAgdG8g
Z2l2ZSBzdGF0aWMgb3V0cHV0IiIiCiAKQEAgLTI2LDI5ICsyNiw3IEBAIGNsYXNzIENvbXBpbGVy
KE5vZGVWaXNpdG9yKToKICAgICAgICAgc2VsZi5fa3dhcmdzID0ga3dhcmdzCiAgICAgICAgIHNl
bGYuZXhwcl9kYXRhID0gZXhwcl9kYXRhCiAKLSAgICAgICAgaWYgZGF0YV9jbHNfZ2V0dGVyIGlz
IE5vbmU6Ci0gICAgICAgICAgICBzZWxmLmRhdGFfY2xzX2dldHRlciA9IGxhbWJkYSB4LCB5OiBN
YW5pZmVzdEl0ZW0KLSAgICAgICAgZWxzZToKLSAgICAgICAgICAgIHNlbGYuZGF0YV9jbHNfZ2V0
dGVyID0gZGF0YV9jbHNfZ2V0dGVyCi0KLSAgICAgICAgc2VsZi5vdXRwdXRfbm9kZSA9IE5vbmUK
LSAgICAgICAgc2VsZi52aXNpdCh0cmVlKQotICAgICAgICByZXR1cm4gc2VsZi5vdXRwdXRfbm9k
ZQotCi0gICAgZGVmIHZpc2l0X0RhdGFOb2RlKHNlbGYsIG5vZGUpOgotICAgICAgICBvdXRwdXRf
cGFyZW50ID0gc2VsZi5vdXRwdXRfbm9kZQotICAgICAgICBpZiBzZWxmLm91dHB1dF9ub2RlIGlz
IE5vbmU6Ci0gICAgICAgICAgICBhc3NlcnQgbm9kZS5wYXJlbnQgaXMgTm9uZQotICAgICAgICAg
ICAgc2VsZi5vdXRwdXRfbm9kZSA9IHNlbGYuZGF0YV9jbHNfZ2V0dGVyKE5vbmUsIE5vbmUpKE5v
bmUsICoqc2VsZi5fa3dhcmdzKQotICAgICAgICBlbHNlOgotICAgICAgICAgICAgc2VsZi5vdXRw
dXRfbm9kZSA9IHNlbGYuZGF0YV9jbHNfZ2V0dGVyKHNlbGYub3V0cHV0X25vZGUsIG5vZGUpKG5v
ZGUuZGF0YSkKLQotICAgICAgICBmb3IgY2hpbGQgaW4gbm9kZS5jaGlsZHJlbjoKLSAgICAgICAg
ICAgIHNlbGYudmlzaXQoY2hpbGQpCi0KLSAgICAgICAgaWYgb3V0cHV0X3BhcmVudCBpcyBub3Qg
Tm9uZToKLSAgICAgICAgICAgIG91dHB1dF9wYXJlbnQuYXBwZW5kKHNlbGYub3V0cHV0X25vZGUp
Ci0gICAgICAgICAgICBzZWxmLm91dHB1dF9ub2RlID0gc2VsZi5vdXRwdXRfbm9kZS5wYXJlbnQK
KyAgICAgICAgcmV0dXJuIHNlbGYuX2NvbXBpbGUodHJlZSwgZGF0YV9jbHNfZ2V0dGVyLCAqKmt3
YXJncykKIAogICAgIGRlZiB2aXNpdF9LZXlWYWx1ZU5vZGUoc2VsZiwgbm9kZSk6CiAgICAgICAg
IGtleV9uYW1lID0gbm9kZS5kYXRhCkBAIC02MSwxNSArMzksNiBAQCBjbGFzcyBDb21waWxlcihO
b2RlVmlzaXRvcik6CiAgICAgICAgIGlmIGtleV92YWx1ZSBpcyBub3QgTm9uZToKICAgICAgICAg
ICAgIHNlbGYub3V0cHV0X25vZGUuc2V0KGtleV9uYW1lLCBrZXlfdmFsdWUpCiAKLSAgICBkZWYg
dmlzaXRfVmFsdWVOb2RlKHNlbGYsIG5vZGUpOgotICAgICAgICByZXR1cm4gbm9kZS5kYXRhCi0K
LSAgICBkZWYgdmlzaXRfQXRvbU5vZGUoc2VsZiwgbm9kZSk6Ci0gICAgICAgIHJldHVybiBub2Rl
LmRhdGEKLQotICAgIGRlZiB2aXNpdF9MaXN0Tm9kZShzZWxmLCBub2RlKToKLSAgICAgICAgcmV0
dXJuIFtzZWxmLnZpc2l0KGNoaWxkKSBmb3IgY2hpbGQgaW4gbm9kZS5jaGlsZHJlbl0KLQogICAg
IGRlZiB2aXNpdF9Db25kaXRpb25hbE5vZGUoc2VsZiwgbm9kZSk6CiAgICAgICAgIGFzc2VydCBs
ZW4obm9kZS5jaGlsZHJlbikgPT0gMgogICAgICAgICBpZiBzZWxmLnZpc2l0KG5vZGUuY2hpbGRy
ZW5bMF0pOgpAQCAtODEsMTIgKzUwLDYgQEAgY2xhc3MgQ29tcGlsZXIoTm9kZVZpc2l0b3IpOgog
ICAgICAgICAgICAgdmFsdWUgPSBzZWxmLnZpc2l0KGNoaWxkKSh2YWx1ZSkKICAgICAgICAgcmV0
dXJuIHZhbHVlCiAKLSAgICBkZWYgdmlzaXRfTnVtYmVyTm9kZShzZWxmLCBub2RlKToKLSAgICAg
ICAgaWYgIi4iIGluIG5vZGUuZGF0YToKLSAgICAgICAgICAgIHJldHVybiBmbG9hdChub2RlLmRh
dGEpCi0gICAgICAgIGVsc2U6Ci0gICAgICAgICAgICByZXR1cm4gaW50KG5vZGUuZGF0YSkKLQog
ICAgIGRlZiB2aXNpdF9WYXJpYWJsZU5vZGUoc2VsZiwgbm9kZSk6CiAgICAgICAgIHZhbHVlID0g
c2VsZi5leHByX2RhdGFbbm9kZS5kYXRhXQogICAgICAgICBmb3IgY2hpbGQgaW4gbm9kZS5jaGls
ZHJlbjoKQEAgLTEyMyw5MiArODYsNiBAQCBjbGFzcyBDb21waWxlcihOb2RlVmlzaXRvcik6CiAg
ICAgICAgICAgICAgICAgIiE9Ijogb3BlcmF0b3IubmV9W25vZGUuZGF0YV0KIAogCi1jbGFzcyBN
YW5pZmVzdEl0ZW0ob2JqZWN0KToKLSAgICBkZWYgX19pbml0X18oc2VsZiwgbmFtZSwgKiprd2Fy
Z3MpOgotICAgICAgICBzZWxmLnBhcmVudCA9IE5vbmUKLSAgICAgICAgc2VsZi5uYW1lID0gbmFt
ZQotICAgICAgICBzZWxmLmNoaWxkcmVuID0gW10KLSAgICAgICAgc2VsZi5fZGF0YSA9IHt9Ci0K
LSAgICBkZWYgX19yZXByX18oc2VsZik6Ci0gICAgICAgIHJldHVybiAiPE1hbmlmZXN0SXRlbSAl
cz4iICUgKHNlbGYubmFtZSkKLQotICAgIGRlZiBfX3N0cl9fKHNlbGYpOgotICAgICAgICBydiA9
IFtyZXByKHNlbGYpXQotICAgICAgICBmb3IgaXRlbSBpbiBzZWxmLmNoaWxkcmVuOgotICAgICAg
ICAgICAgcnYuZXh0ZW5kKCIgICVzIiAlIGxpbmUgZm9yIGxpbmUgaW4gc3RyKGl0ZW0pLnNwbGl0
KCJcbiIpKQotICAgICAgICByZXR1cm4gIlxuIi5qb2luKHJ2KQotCi0gICAgZGVmIHNldF9kZWZh
dWx0cyhzZWxmKToKLSAgICAgICAgcGFzcwotCi0gICAgQHByb3BlcnR5Ci0gICAgZGVmIGlzX2Vt
cHR5KHNlbGYpOgotICAgICAgICBpZiBzZWxmLl9kYXRhOgotICAgICAgICAgICAgcmV0dXJuIEZh
bHNlCi0gICAgICAgIHJldHVybiBhbGwoY2hpbGQuaXNfZW1wdHkgZm9yIGNoaWxkIGluIHNlbGYu
Y2hpbGRyZW4pCi0KLSAgICBAcHJvcGVydHkKLSAgICBkZWYgcm9vdChzZWxmKToKLSAgICAgICAg
bm9kZSA9IHNlbGYKLSAgICAgICAgd2hpbGUgbm9kZS5wYXJlbnQgaXMgbm90IE5vbmU6Ci0gICAg
ICAgICAgICBub2RlID0gbm9kZS5wYXJlbnQKLSAgICAgICAgcmV0dXJuIG5vZGUKLQotICAgIGRl
ZiBoYXNfa2V5KHNlbGYsIGtleSk6Ci0gICAgICAgIGZvciBub2RlIGluIFtzZWxmLCBzZWxmLnJv
b3RdOgotICAgICAgICAgICAgaWYga2V5IGluIG5vZGUuX2RhdGE6Ci0gICAgICAgICAgICAgICAg
cmV0dXJuIFRydWUKLSAgICAgICAgcmV0dXJuIEZhbHNlCi0KLSAgICBkZWYgZ2V0KHNlbGYsIGtl
eSk6Ci0gICAgICAgIGZvciBub2RlIGluIFtzZWxmLCBzZWxmLnJvb3RdOgotICAgICAgICAgICAg
aWYga2V5IGluIG5vZGUuX2RhdGE6Ci0gICAgICAgICAgICAgICAgcmV0dXJuIG5vZGUuX2RhdGFb
a2V5XQotICAgICAgICByYWlzZSBLZXlFcnJvcgotCi0gICAgZGVmIHNldChzZWxmLCBuYW1lLCB2
YWx1ZSk6Ci0gICAgICAgIHNlbGYuX2RhdGFbbmFtZV0gPSB2YWx1ZQotCi0gICAgZGVmIHJlbW92
ZShzZWxmKToKLSAgICAgICAgaWYgc2VsZi5wYXJlbnQ6Ci0gICAgICAgICAgICBzZWxmLnBhcmVu
dC5fcmVtb3ZlX2NoaWxkKHNlbGYpCi0KLSAgICBkZWYgX3JlbW92ZV9jaGlsZChzZWxmLCBjaGls
ZCk6Ci0gICAgICAgIHNlbGYuY2hpbGRyZW4ucmVtb3ZlKGNoaWxkKQotICAgICAgICBjaGlsZC5w
YXJlbnQgPSBOb25lCi0KLSAgICBkZWYgaXRlcmNoaWxkcmVuKHNlbGYsIG5hbWU9Tm9uZSk6Ci0g
ICAgICAgIGZvciBpdGVtIGluIHNlbGYuY2hpbGRyZW46Ci0gICAgICAgICAgICBpZiBpdGVtLm5h
bWUgPT0gbmFtZSBvciBuYW1lIGlzIE5vbmU6Ci0gICAgICAgICAgICAgICAgeWllbGQgaXRlbQot
Ci0gICAgZGVmIF9mbGF0dGVuKHNlbGYpOgotICAgICAgICBydiA9IHt9Ci0gICAgICAgIGZvciBu
b2RlIGluIFtzZWxmLCBzZWxmLnJvb3RdOgotICAgICAgICAgICAgZm9yIG5hbWUsIHZhbHVlIGlu
IG5vZGUuX2RhdGEuaXRlcml0ZW1zKCk6Ci0gICAgICAgICAgICAgICAgaWYgbmFtZSBub3QgaW4g
cnY6Ci0gICAgICAgICAgICAgICAgICAgIHJ2W25hbWVdID0gdmFsdWUKLSAgICAgICAgcmV0dXJu
IHJ2Ci0KLSAgICBkZWYgaXRlcml0ZW1zKHNlbGYpOgotICAgICAgICBmb3IgaXRlbSBpbiBzZWxm
Ll9mbGF0dGVuKCkuaXRlcml0ZW1zKCk6Ci0gICAgICAgICAgICB5aWVsZCBpdGVtCi0KLSAgICBk
ZWYgaXRlcmtleXMoc2VsZik6Ci0gICAgICAgIGZvciBpdGVtIGluIHNlbGYuX2ZsYXR0ZW4oKS5p
dGVya2V5cygpOgotICAgICAgICAgICAgeWllbGQgaXRlbQotCi0gICAgZGVmIGl0ZXJ2YWx1ZXMo
c2VsZik6Ci0gICAgICAgIGZvciBpdGVtIGluIHNlbGYuX2ZsYXR0ZW4oKS5pdGVydmFsdWVzKCk6
Ci0gICAgICAgICAgICB5aWVsZCBpdGVtCi0KLSAgICBkZWYgYXBwZW5kKHNlbGYsIGNoaWxkKToK
LSAgICAgICAgY2hpbGQucGFyZW50ID0gc2VsZgotICAgICAgICBzZWxmLmNoaWxkcmVuLmFwcGVu
ZChjaGlsZCkKLSAgICAgICAgcmV0dXJuIGNoaWxkCi0KLQogZGVmIGNvbXBpbGVfYXN0KGFzdCwg
ZXhwcl9kYXRhLCBkYXRhX2Nsc19nZXR0ZXI9Tm9uZSwgKiprd2FyZ3MpOgogICAgIHJldHVybiBD
b21waWxlcigpLmNvbXBpbGUoYXN0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXhw
cl9kYXRhLApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3dwdG1hbmlmZXN0L2JhY2tlbmRzL3cz
Yy1pbXBvcnQubG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3dwdG1hbmlmZXN0L2JhY2tlbmRzL3czYy1pbXBv
cnQubG9nCmluZGV4IDdmNGUxZGEzZTNhMGZhYmVhOGQyMzJkOTk5NmI1MjRjYTI2OTU4ZDUuLjJk
MjBmYWUwMjMyOGNlMGQ4ODdmMjMyYzUyY2RlNjdjMWY1ZDBkY2MgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dw
dHJ1bm5lci93cHRtYW5pZmVzdC9iYWNrZW5kcy93M2MtaW1wb3J0LmxvZworKysgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRy
dW5uZXIvd3B0bWFuaWZlc3QvYmFja2VuZHMvdzNjLWltcG9ydC5sb2cKQEAgLTE1LDUgKzE1LDYg
QEAgTm9uZQogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiBMaXN0IG9mIGZpbGVzOgogL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci93
cHRtYW5pZmVzdC9iYWNrZW5kcy9fX2luaXRfXy5weQorL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci93cHRtYW5pZmVz
dC9iYWNrZW5kcy9iYXNlLnB5CiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3dwdG1hbmlmZXN0L2JhY2tlbmRzL2Nv
bmRpdGlvbmFsLnB5CiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3dwdG1hbmlmZXN0L2JhY2tlbmRzL3N0YXRpYy5w
eQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3dwdG1hbmlmZXN0L25vZGUucHkgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRy
dW5uZXIvd3B0bWFuaWZlc3Qvbm9kZS5weQppbmRleCAzM2U5Nzk2YzQzMGMzM2FhMDMyODU1OWYx
MjA3OWYyMjExODBkNjc5Li4yMDA2MDVjMDVhYTRhYjNhNzdkYzlkYjE5YjE2OGQ3YWRlNzM5OGJl
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvd3B0bWFuaWZlc3Qvbm9kZS5weQorKysgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93
cHRydW5uZXIvd3B0bWFuaWZlc3Qvbm9kZS5weQpAQCAtNTgsNyArNTgsOCBAQCBjbGFzcyBEYXRh
Tm9kZShOb2RlKToKICAgICAgICAgICAgIHdoaWxlIGluZGV4ID4gMCBhbmQgaXNpbnN0YW5jZShz
ZWxmLmNoaWxkcmVuW2luZGV4IC0gMV0sIERhdGFOb2RlKToKICAgICAgICAgICAgICAgICBpbmRl
eCAtPSAxCiAgICAgICAgICAgICBmb3IgaSBpbiB4cmFuZ2UoaW5kZXgpOgotICAgICAgICAgICAg
ICAgIGFzc2VydCBvdGhlci5kYXRhICE9IHNlbGYuY2hpbGRyZW5baV0uZGF0YQorICAgICAgICAg
ICAgICAgIGlmIG90aGVyLmRhdGEgPT0gc2VsZi5jaGlsZHJlbltpXS5kYXRhOgorICAgICAgICAg
ICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJEdXBsaWNhdGUga2V5ICVzIiAlIHNlbGYuY2hp
bGRyZW5baV0uZGF0YSkKICAgICAgICAgICAgIHNlbGYuY2hpbGRyZW4uaW5zZXJ0KGluZGV4LCBv
dGhlcikKIAogCkBAIC02Nyw5ICs2OCwxMSBAQCBjbGFzcyBLZXlWYWx1ZU5vZGUoTm9kZSk6CiAg
ICAgICAgICMgQXBwZW5kIHRoYXQgcmV0YWlucyB0aGUgaW52YXJpYW50IHRoYXQgY29uZGl0aW9u
YWwgbm9kZXMKICAgICAgICAgIyBjb21lIGJlZm9yZSB1bmNvbmRpdGlvbmFsIG5vZGVzCiAgICAg
ICAgIG90aGVyLnBhcmVudCA9IHNlbGYKLSAgICAgICAgaWYgaXNpbnN0YW5jZShvdGhlciwgVmFs
dWVOb2RlKToKKyAgICAgICAgaWYgbm90IGlzaW5zdGFuY2Uob3RoZXIsIChMaXN0Tm9kZSwgVmFs
dWVOb2RlLCBDb25kaXRpb25hbE5vZGUpKToKKyAgICAgICAgICAgIHJhaXNlIFR5cGVFcnJvcgor
ICAgICAgICBpZiBpc2luc3RhbmNlKG90aGVyLCAoTGlzdE5vZGUsIFZhbHVlTm9kZSkpOgogICAg
ICAgICAgICAgaWYgc2VsZi5jaGlsZHJlbjoKLSAgICAgICAgICAgICAgICBhc3NlcnQgbm90IGlz
aW5zdGFuY2Uoc2VsZi5jaGlsZHJlblstMV0sIFZhbHVlTm9kZSkKKyAgICAgICAgICAgICAgICBh
c3NlcnQgbm90IGlzaW5zdGFuY2Uoc2VsZi5jaGlsZHJlblstMV0sIChMaXN0Tm9kZSwgVmFsdWVO
b2RlKSkKICAgICAgICAgICAgIHNlbGYuY2hpbGRyZW4uYXBwZW5kKG90aGVyKQogICAgICAgICBl
bHNlOgogICAgICAgICAgICAgaWYgc2VsZi5jaGlsZHJlbiBhbmQgaXNpbnN0YW5jZShzZWxmLmNo
aWxkcmVuWy0xXSwgVmFsdWVOb2RlKToKQEAgLTk0LDcgKzk3LDE3IEBAIGNsYXNzIEF0b21Ob2Rl
KFZhbHVlTm9kZSk6CiAKIAogY2xhc3MgQ29uZGl0aW9uYWxOb2RlKE5vZGUpOgotICAgIHBhc3MK
KyAgICBkZWYgYXBwZW5kKHNlbGYsIG90aGVyKToKKyAgICAgICAgaWYgbm90IGxlbihzZWxmLmNo
aWxkcmVuKToKKyAgICAgICAgICAgIGlmIG5vdCBpc2luc3RhbmNlKG90aGVyLCAoQmluYXJ5RXhw
cmVzc2lvbk5vZGUsIFVuYXJ5RXhwcmVzc2lvbk5vZGUsIFZhcmlhYmxlTm9kZSkpOgorICAgICAg
ICAgICAgICAgIHJhaXNlIFR5cGVFcnJvcgorICAgICAgICBlbHNlOgorICAgICAgICAgICAgaWYg
bGVuKHNlbGYuY2hpbGRyZW4pID4gMToKKyAgICAgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9y
CisgICAgICAgICAgICBpZiBub3QgaXNpbnN0YW5jZShvdGhlciwgKExpc3ROb2RlLCBWYWx1ZU5v
ZGUpKToKKyAgICAgICAgICAgICAgICByYWlzZSBUeXBlRXJyb3IKKyAgICAgICAgb3RoZXIucGFy
ZW50ID0gc2VsZgorICAgICAgICBzZWxmLmNoaWxkcmVuLmFwcGVuZChvdGhlcikKIAogCiBjbGFz
cyBVbmFyeUV4cHJlc3Npb25Ob2RlKE5vZGUpOgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3dw
dG1hbmlmZXN0L3BhcnNlci5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci93cHRtYW5pZmVzdC9wYXJzZXIucHkK
aW5kZXggODJhYWQ1ZjYxMzUwNzk1ZWI5ZTgwN2NhMzMwMTU3NjJlMWE5ZjU4MS4uODMzZTBiOGVk
MWE2YjYzZTU5NTRjODBkNzdiMTAyYjhiMjIwY2ZhOCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVy
L3dwdG1hbmlmZXN0L3BhcnNlci5weQorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvd3B0bWFuaWZlc3QvcGFy
c2VyLnB5CkBAIC0xNCwxMiArMTQsMTIgQEAKIAogZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCB1bmlj
b2RlX2xpdGVyYWxzCiAKLWZyb20gY1N0cmluZ0lPIGltcG9ydCBTdHJpbmdJTworZnJvbSBzaXgg
aW1wb3J0IGJpbmFyeV90eXBlLCB0ZXh0X3R5cGUsIEJ5dGVzSU8KIAotZnJvbSBub2RlIGltcG9y
dCAoQXRvbU5vZGUsIEJpbmFyeUV4cHJlc3Npb25Ob2RlLCBCaW5hcnlPcGVyYXRvck5vZGUsCi0g
ICAgICAgICAgICAgICAgICBDb25kaXRpb25hbE5vZGUsIERhdGFOb2RlLCBJbmRleE5vZGUsIEtl
eVZhbHVlTm9kZSwgTGlzdE5vZGUsCi0gICAgICAgICAgICAgICAgICBOdW1iZXJOb2RlLCBTdHJp
bmdOb2RlLCBVbmFyeUV4cHJlc3Npb25Ob2RlLAotICAgICAgICAgICAgICAgICAgVW5hcnlPcGVy
YXRvck5vZGUsIFZhbHVlTm9kZSwgVmFyaWFibGVOb2RlKQorZnJvbSAubm9kZSBpbXBvcnQgKE5v
ZGUsIEF0b21Ob2RlLCBCaW5hcnlFeHByZXNzaW9uTm9kZSwgQmluYXJ5T3BlcmF0b3JOb2RlLAor
ICAgICAgICAgICAgICAgICAgIENvbmRpdGlvbmFsTm9kZSwgRGF0YU5vZGUsIEluZGV4Tm9kZSwg
S2V5VmFsdWVOb2RlLCBMaXN0Tm9kZSwKKyAgICAgICAgICAgICAgICAgICBOdW1iZXJOb2RlLCBT
dHJpbmdOb2RlLCBVbmFyeUV4cHJlc3Npb25Ob2RlLAorICAgICAgICAgICAgICAgICAgIFVuYXJ5
T3BlcmF0b3JOb2RlLCBWYWx1ZU5vZGUsIFZhcmlhYmxlTm9kZSkKIAogCiBjbGFzcyBQYXJzZUVy
cm9yKEV4Y2VwdGlvbik6CkBAIC00OSw3ICs0OSw3IEBAIGF0b21zID0geyJUcnVlIjogVHJ1ZSwK
ICAgICAgICAgICJSZXNldCI6IG9iamVjdCgpfQogCiBkZWYgZGVjb2RlKHMpOgotICAgIGFzc2Vy
dCBpc2luc3RhbmNlKHMsIHVuaWNvZGUpCisgICAgYXNzZXJ0IGlzaW5zdGFuY2UocywgdGV4dF90
eXBlKQogICAgIHJldHVybiBzCiAKIApAQCAtNzcsOSArNzcsOSBAQCBjbGFzcyBUb2tlbml6ZXIo
b2JqZWN0KToKIAogICAgIGRlZiB0b2tlbml6ZShzZWxmLCBzdHJlYW0pOgogICAgICAgICBzZWxm
LnJlc2V0KCkKLSAgICAgICAgYXNzZXJ0IG5vdCBpc2luc3RhbmNlKHN0cmVhbSwgdW5pY29kZSkK
LSAgICAgICAgaWYgaXNpbnN0YW5jZShzdHJlYW0sIHN0cik6Ci0gICAgICAgICAgICBzdHJlYW0g
PSBTdHJpbmdJTyhzdHJlYW0pCisgICAgICAgIGFzc2VydCBub3QgaXNpbnN0YW5jZShzdHJlYW0s
IHRleHRfdHlwZSkKKyAgICAgICAgaWYgaXNpbnN0YW5jZShzdHJlYW0sIGJ5dGVzKToKKyAgICAg
ICAgICAgIHN0cmVhbSA9IEJ5dGVzSU8oc3RyZWFtKQogICAgICAgICBpZiBub3QgaGFzYXR0cihz
dHJlYW0sICJuYW1lIik6CiAgICAgICAgICAgICBzZWxmLmZpbGVuYW1lID0gIiIKICAgICAgICAg
ZWxzZToKQEAgLTg3LDcgKzg3LDcgQEAgY2xhc3MgVG9rZW5pemVyKG9iamVjdCk6CiAKICAgICAg
ICAgc2VsZi5uZXh0X2xpbmVfc3RhdGUgPSBzZWxmLmxpbmVfc3RhcnRfc3RhdGUKICAgICAgICAg
Zm9yIGksIGxpbmUgaW4gZW51bWVyYXRlKHN0cmVhbSk6Ci0gICAgICAgICAgICBhc3NlcnQgaXNp
bnN0YW5jZShsaW5lLCBzdHIpCisgICAgICAgICAgICBhc3NlcnQgaXNpbnN0YW5jZShsaW5lLCBi
aW5hcnlfdHlwZSkKICAgICAgICAgICAgIHNlbGYuc3RhdGUgPSBzZWxmLm5leHRfbGluZV9zdGF0
ZQogICAgICAgICAgICAgYXNzZXJ0IHNlbGYuc3RhdGUgaXMgbm90IE5vbmUKICAgICAgICAgICAg
IHN0YXRlcyA9IFtdCkBAIC05NSw3ICs5NSw3IEBAIGNsYXNzIFRva2VuaXplcihvYmplY3QpOgog
ICAgICAgICAgICAgc2VsZi5saW5lX251bWJlciA9IGkgKyAxCiAgICAgICAgICAgICBzZWxmLmlu
ZGV4ID0gMAogICAgICAgICAgICAgc2VsZi5saW5lID0gbGluZS5kZWNvZGUoJ3V0Zi04JykucnN0
cmlwKCkKLSAgICAgICAgICAgIGFzc2VydCBpc2luc3RhbmNlKHNlbGYubGluZSwgdW5pY29kZSkK
KyAgICAgICAgICAgIGFzc2VydCBpc2luc3RhbmNlKHNlbGYubGluZSwgdGV4dF90eXBlKQogICAg
ICAgICAgICAgd2hpbGUgc2VsZi5zdGF0ZSAhPSBzZWxmLmVvbF9zdGF0ZToKICAgICAgICAgICAg
ICAgICBzdGF0ZXMuYXBwZW5kKHNlbGYuc3RhdGUpCiAgICAgICAgICAgICAgICAgdG9rZW5zID0g
c2VsZi5zdGF0ZSgpCkBAIC0zMzksNyArMzM5LDE0IEBAIGNsYXNzIFRva2VuaXplcihvYmplY3Qp
OgogICAgICAgICAgICAgICAgIHNwYWNlcyA9IDAKICAgICAgICAgICAgICAgICBydiArPSBjCiAg
ICAgICAgICAgICAgICAgc2VsZi5jb25zdW1lKCkKLSAgICAgICAgeWllbGQgKHRva2VuX3R5cGVz
LnN0cmluZywgZGVjb2RlKHJ2KSkKKyAgICAgICAgcnYgPSBkZWNvZGUocnYpCisgICAgICAgIGlm
IHJ2LnN0YXJ0c3dpdGgoImlmICIpOgorICAgICAgICAgICAgIyBIYWNrIHRvIGF2b2lkIGEgcHJv
YmxlbSB3aGVyZSBwZW9wbGUgd3JpdGUKKyAgICAgICAgICAgICMgZGlzYWJsZWQ6IGlmIGZvbwor
ICAgICAgICAgICAgIyBhbmQgZXhwZWN0IHRoYXQgdG8gZGlzYWJsZSBjb25kaXRpb25hbGx5Cisg
ICAgICAgICAgICByYWlzZSBQYXJzZUVycm9yKHNlbGYuZmlsZW5hbWUsIHNlbGYubGluZV9udW1i
ZXIsICJTdHJpbmdzIHN0YXJ0aW5nICdpZiAnIG11c3QgYmUgcXVvdGVkICIKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIihleHByZXNzaW9ucyBtdXN0IHN0YXJ0IG9uIGEgbmV3bGluZSBh
bmQgYmUgaW5kZW50ZWQpIikKKyAgICAgICAgeWllbGQgKHRva2VuX3R5cGVzLnN0cmluZywgcnYp
CiAKICAgICBkZWYgY29tbWVudF9zdGF0ZShzZWxmKToKICAgICAgICAgd2hpbGUgc2VsZi5jaGFy
KCkgaXMgbm90IGVvbDoKQEAgLTQ3OCw3ICs0ODUsNyBAQCBjbGFzcyBUb2tlbml6ZXIob2JqZWN0
KToKICAgICAgICAgZWxpZiBjID09ICJVIjoKICAgICAgICAgICAgIHJldHVybiBzZWxmLmRlY29k
ZV9lc2NhcGUoNikKICAgICAgICAgZWxpZiBjIGluIFsiYSIsICJiIiwgImYiLCAibiIsICJyIiwg
InQiLCAidiJdOgotICAgICAgICAgICAgcmV0dXJuIGV2YWwoIidcJXMnIiAlIGMpCisgICAgICAg
ICAgICByZXR1cm4gZXZhbChyIidcJXMnIiAlIGMpCiAgICAgICAgIGVsaWYgYyBpcyBlb2w6CiAg
ICAgICAgICAgICByYWlzZSBQYXJzZUVycm9yKHNlbGYuZmlsZW5hbWUsIHNlbGYubGluZV9udW1i
ZXIsICJFT0wgaW4gZXNjYXBlIikKICAgICAgICAgZWxzZToKQEAgLTUyMCwyMSArNTI3LDMwIEBA
IGNsYXNzIFBhcnNlcihvYmplY3QpOgogICAgICAgICBzZWxmLmV4cHJfYnVpbGRlcnMgPSBbXQog
CiAgICAgZGVmIHBhcnNlKHNlbGYsIGlucHV0KToKLSAgICAgICAgc2VsZi5yZXNldCgpCi0gICAg
ICAgIHNlbGYudG9rZW5fZ2VuZXJhdG9yID0gc2VsZi50b2tlbml6ZXIudG9rZW5pemUoaW5wdXQp
Ci0gICAgICAgIHNlbGYuY29uc3VtZSgpCi0gICAgICAgIHNlbGYubWFuaWZlc3QoKQotICAgICAg
ICByZXR1cm4gc2VsZi50cmVlLm5vZGUKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgc2VsZi5y
ZXNldCgpCisgICAgICAgICAgICBzZWxmLnRva2VuX2dlbmVyYXRvciA9IHNlbGYudG9rZW5pemVy
LnRva2VuaXplKGlucHV0KQorICAgICAgICAgICAgc2VsZi5jb25zdW1lKCkKKyAgICAgICAgICAg
IHNlbGYubWFuaWZlc3QoKQorICAgICAgICAgICAgcmV0dXJuIHNlbGYudHJlZS5ub2RlCisgICAg
ICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZToKKyAgICAgICAgICAgIGlmIG5vdCBpc2luc3RhbmNl
KGUsIFBhcnNlRXJyb3IpOgorICAgICAgICAgICAgICAgIHJhaXNlIFBhcnNlRXJyb3Ioc2VsZi50
b2tlbml6ZXIuZmlsZW5hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxm
LnRva2VuaXplci5saW5lX251bWJlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHN0cihlKSkKKyAgICAgICAgICAgIHJhaXNlCiAKICAgICBkZWYgY29uc3VtZShzZWxmKToKICAg
ICAgICAgc2VsZi50b2tlbiA9IHNlbGYudG9rZW5fZ2VuZXJhdG9yLm5leHQoKQogCiAgICAgZGVm
IGV4cGVjdChzZWxmLCB0eXBlLCB2YWx1ZT1Ob25lKToKICAgICAgICAgaWYgc2VsZi50b2tlblsw
XSAhPSB0eXBlOgotICAgICAgICAgICAgcmFpc2UgUGFyc2VFcnJvcgorICAgICAgICAgICAgcmFp
c2UgUGFyc2VFcnJvcihzZWxmLnRva2VuaXplci5maWxlbmFtZSwgc2VsZi50b2tlbml6ZXIubGlu
ZV9udW1iZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJUb2tlbiAne30nIGRvZXNu
J3QgZXF1YWwgZXhwZWN0ZWQgdHlwZSAne30nIi5mb3JtYXQoc2VsZi50b2tlblswXSwgdHlwZSkp
CiAgICAgICAgIGlmIHZhbHVlIGlzIG5vdCBOb25lOgogICAgICAgICAgICAgaWYgc2VsZi50b2tl
blsxXSAhPSB2YWx1ZToKLSAgICAgICAgICAgICAgICByYWlzZSBQYXJzZUVycm9yCisgICAgICAg
ICAgICAgICAgcmFpc2UgUGFyc2VFcnJvcihzZWxmLnRva2VuaXplci5maWxlbmFtZSwgc2VsZi50
b2tlbml6ZXIubGluZV9udW1iZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAi
VG9rZW4gJ3t9JyBkb2Vzbid0IGVxdWFsIGV4cGVjdGVkIHZhbHVlICd7fSciLmZvcm1hdChzZWxm
LnRva2VuWzFdLCB2YWx1ZSkpCiAKICAgICAgICAgc2VsZi5jb25zdW1lKCkKIApAQCAtNTUzLDcg
KzU2OSw4IEBAIGNsYXNzIFBhcnNlcihvYmplY3QpOgogICAgICAgICB3aGlsZSBzZWxmLnRva2Vu
ID09ICh0b2tlbl90eXBlcy5wYXJlbiwgIlsiKToKICAgICAgICAgICAgIHNlbGYuY29uc3VtZSgp
CiAgICAgICAgICAgICBpZiBzZWxmLnRva2VuWzBdICE9IHRva2VuX3R5cGVzLnN0cmluZzoKLSAg
ICAgICAgICAgICAgICByYWlzZSBQYXJzZUVycm9yCisgICAgICAgICAgICAgICAgcmFpc2UgUGFy
c2VFcnJvcihzZWxmLnRva2VuaXplci5maWxlbmFtZSwgc2VsZi50b2tlbml6ZXIubGluZV9udW1i
ZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiVG9rZW4gJ3t9JyBpcyBub3Qg
YSBzdHJpbmciLmZvcm1hdChzZWxmLnRva2VuWzBdKSkKICAgICAgICAgICAgIHNlbGYudHJlZS5h
cHBlbmQoRGF0YU5vZGUoc2VsZi50b2tlblsxXSkpCiAgICAgICAgICAgICBzZWxmLmNvbnN1bWUo
KQogICAgICAgICAgICAgc2VsZi5leHBlY3QodG9rZW5fdHlwZXMucGFyZW4sICJdIikKQEAgLTU4
Miw3ICs1OTksOCBAQCBjbGFzcyBQYXJzZXIob2JqZWN0KToKICAgICAgICAgZWxpZiBzZWxmLnRv
a2VuWzBdID09IHRva2VuX3R5cGVzLmF0b206CiAgICAgICAgICAgICBzZWxmLmF0b20oKQogICAg
ICAgICBlbHNlOgotICAgICAgICAgICAgcmFpc2UgUGFyc2VFcnJvcgorICAgICAgICAgICAgcmFp
c2UgUGFyc2VFcnJvcihzZWxmLnRva2VuaXplci5maWxlbmFtZSwgc2VsZi50b2tlbml6ZXIubGlu
ZV9udW1iZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJUb2tlbiAne30nIGlzIG5v
dCBhIGtub3duIHR5cGUiLmZvcm1hdChzZWxmLnRva2VuWzBdKSkKIAogICAgIGRlZiBsaXN0X3Zh
bHVlKHNlbGYpOgogICAgICAgICBzZWxmLnRyZWUuYXBwZW5kKExpc3ROb2RlKCkpCkBAIC02ODcs
MTMgKzcwNSwxNiBAQCBjbGFzcyBUcmVlYnVpbGRlcihvYmplY3QpOgogICAgICAgICBzZWxmLm5v
ZGUgPSByb290CiAKICAgICBkZWYgYXBwZW5kKHNlbGYsIG5vZGUpOgorICAgICAgICBhc3NlcnQg
aXNpbnN0YW5jZShub2RlLCBOb2RlKQogICAgICAgICBzZWxmLm5vZGUuYXBwZW5kKG5vZGUpCiAg
ICAgICAgIHNlbGYubm9kZSA9IG5vZGUKKyAgICAgICAgYXNzZXJ0IHNlbGYubm9kZSBpcyBub3Qg
Tm9uZQogICAgICAgICByZXR1cm4gbm9kZQogCiAgICAgZGVmIHBvcChzZWxmKToKICAgICAgICAg
bm9kZSA9IHNlbGYubm9kZQogICAgICAgICBzZWxmLm5vZGUgPSBzZWxmLm5vZGUucGFyZW50Cisg
ICAgICAgIGFzc2VydCBzZWxmLm5vZGUgaXMgbm90IE5vbmUKICAgICAgICAgcmV0dXJuIG5vZGUK
IAogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvd3B0bWFuaWZlc3Qvc2VyaWFsaXplci5weSBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVu
bmVyL3dwdHJ1bm5lci93cHRtYW5pZmVzdC9zZXJpYWxpemVyLnB5CmluZGV4IGE3ZTAxMzEzYWU1
NDA3YzYwODZjNjBjNDVkNGFiNzA1OWNjYjJiYTIuLjNiMjljOTllZGU3Y2FjNThlZGU1ZDQ4MjM3
Njk2ZTMwYzlkODU2YzcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci93cHRtYW5pZmVzdC9zZXJp
YWxpemVyLnB5CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci93cHRtYW5pZmVzdC9zZXJpYWxpemVyLnB5CkBA
IC0xLDkgKzEsOSBAQAotZnJvbSBub2RlIGltcG9ydCBOb2RlVmlzaXRvciwgVmFsdWVOb2RlLCBM
aXN0Tm9kZSwgQmluYXJ5RXhwcmVzc2lvbk5vZGUKLWZyb20gcGFyc2VyIGltcG9ydCBhdG9tcywg
cHJlY2VkZW5jZQorZnJvbSAubm9kZSBpbXBvcnQgTm9kZVZpc2l0b3IsIFZhbHVlTm9kZSwgTGlz
dE5vZGUsIEJpbmFyeUV4cHJlc3Npb25Ob2RlCitmcm9tIC5wYXJzZXIgaW1wb3J0IGF0b21zLCBw
cmVjZWRlbmNlCiAKLWF0b21fbmFtZXMgPSB7djoiQCVzIiAlIGsgZm9yIChrLHYpIGluIGF0b21z
Lml0ZXJpdGVtcygpfQorYXRvbV9uYW1lcyA9IHt2OiJAJXMiICUgayBmb3IgKGssdikgaW4gYXRv
bXMuaXRlbXMoKX0KIAotbmFtZWRfZXNjYXBlcyA9IHNldChbIlxhIiwgIlxiIiwgIlxmIiwgIlxu
IiwgIlxyIiwgIlx0IiwgIlx2Il0pCituYW1lZF9lc2NhcGVzID0geyJcYSIsICJcYiIsICJcZiIs
ICJcbiIsICJcciIsICJcdCIsICJcdiJ9CiAKIGRlZiBlc2NhcGUoc3RyaW5nLCBleHRyYXM9IiIp
OgogICAgICMgQXNzdW1lcyBpbnB1dCBieXRlcyBhcmUgZWl0aGVyIFVURjggYnl0ZXMgb3IgdW5p
Y29kZS4KQEAgLTc4LDggKzc4LDEwIEBAIGNsYXNzIE1hbmlmZXN0U2VyaWFsaXplcihOb2RlVmlz
aXRvcik6CiAgICAgICAgICAgICBkYXRhID0gdW5pY29kZShub2RlLmRhdGEpCiAgICAgICAgIGVs
c2U6CiAgICAgICAgICAgICBkYXRhID0gbm9kZS5kYXRhCi0gICAgICAgIGlmICIjIiBpbiBkYXRh
IG9yIChpc2luc3RhbmNlKG5vZGUucGFyZW50LCBMaXN0Tm9kZSkgYW5kCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAoIiwiIGluIGRhdGEgb3IgIl0iIGluIGRhdGEpKToKKyAgICAgICAgaWYg
KCIjIiBpbiBkYXRhIG9yCisgICAgICAgICAgICBkYXRhLnN0YXJ0c3dpdGgoImlmICIpIG9yCisg
ICAgICAgICAgICAoaXNpbnN0YW5jZShub2RlLnBhcmVudCwgTGlzdE5vZGUpIGFuZAorICAgICAg
ICAgICAgICgiLCIgaW4gZGF0YSBvciAiXSIgaW4gZGF0YSkpKToKICAgICAgICAgICAgIGlmICJc
IiIgaW4gZGF0YToKICAgICAgICAgICAgICAgICBxdW90ZSA9ICInIgogICAgICAgICAgICAgZWxz
ZToKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci93cHRtYW5pZmVzdC90ZXN0cy90ZXN0X2NvbmRp
dGlvbmFsLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy93cHRydW5uZXIvd3B0cnVubmVyL3dwdG1hbmlmZXN0L3Rlc3RzL3Rlc3RfY29uZGl0aW9u
YWwucHkKaW5kZXggOWRhMWEwZjE4MGNhMjNlOGNhZGIyYzliNDMwZTk4M2JhNzVkYmNhMC4uZmJj
NzVlYzgzOTBmYTM0YWI3ZTNjYWEzOTFjM2U2ZTc4MzdhNTU0ZCAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0
cnVubmVyL3dwdG1hbmlmZXN0L3Rlc3RzL3Rlc3RfY29uZGl0aW9uYWwucHkKKysrIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0
cnVubmVyL3dwdG1hbmlmZXN0L3Rlc3RzL3Rlc3RfY29uZGl0aW9uYWwucHkKQEAgLTEsOSArMSwx
MyBAQAoraW1wb3J0IHB5dGVzdAoraW1wb3J0IHN5cwogaW1wb3J0IHVuaXR0ZXN0CiAKIGZyb20g
Li5iYWNrZW5kcyBpbXBvcnQgY29uZGl0aW9uYWwKIGZyb20gLi5ub2RlIGltcG9ydCBCaW5hcnlF
eHByZXNzaW9uTm9kZSwgQmluYXJ5T3BlcmF0b3JOb2RlLCBWYXJpYWJsZU5vZGUsIE51bWJlck5v
ZGUKIAogCitAcHl0ZXN0Lm1hcmsueGZhaWwoc3lzLnZlcnNpb25bMF0gPT0gIjMiLAorICAgICAg
ICAgICAgICAgICAgIHJlYXNvbj0id3B0bWFuaWZlc3QucGFyc2VyIGRvZXNuJ3Qgc3VwcG9ydCBw
eTMiKQogY2xhc3MgVGVzdENvbmRpdGlvbmFsKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICBkZWYg
Y29tcGlsZShzZWxmLCBpbnB1dF90ZXh0KToKICAgICAgICAgcmV0dXJuIGNvbmRpdGlvbmFsLmNv
bXBpbGUoaW5wdXRfdGV4dCkKQEAgLTEzOCw0ICsxNDIsNCBAQCBrZXlfMTogb3RoZXJfdmFsdWUK
ICAgICAgICAgc2VsZi5hc3NlcnRUcnVlKG1hbmlmZXN0Lmhhc19rZXkoImtleV8xIikpCiAgICAg
ICAgIHNlbGYuYXNzZXJ0RmFsc2UobWFuaWZlc3QuaGFzX2tleSgia2V5XzIiKSkKIAotICAgICAg
ICBzZWxmLmFzc2VydEVxdWFscyhzZXQobWFuaWZlc3QuaXRlcmtleXMoKSksIHNldChbImtleSIs
ICJrZXlfMSJdKSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMoc2V0KG1hbmlmZXN0Lml0ZXJr
ZXlzKCkpLCB7ImtleSIsICJrZXlfMSJ9KQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3dwdG1h
bmlmZXN0L3Rlc3RzL3Rlc3RfcGFyc2VyLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3dwdG1hbmlmZXN0L3Rl
c3RzL3Rlc3RfcGFyc2VyLnB5CmluZGV4IDk4YjU0ZGMxMWVhOGEwMzNiOGVlNjI2YjVmOGJiOTI0
NzU5OTU5Y2MuLmFkNTMyZGQ5MmVhMjA3ZmZlZmVjOWZjMmJlNWY3NDU3YjhjODYxZGMgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
d3B0cnVubmVyL3dwdHJ1bm5lci93cHRtYW5pZmVzdC90ZXN0cy90ZXN0X3BhcnNlci5weQorKysg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1
bm5lci93cHRydW5uZXIvd3B0bWFuaWZlc3QvdGVzdHMvdGVzdF9wYXJzZXIucHkKQEAgLTEsNiAr
MSw4IEBACitpbXBvcnQgcHl0ZXN0CitpbXBvcnQgc3lzCiBpbXBvcnQgdW5pdHRlc3QKIAotZnJv
bSBjU3RyaW5nSU8gaW1wb3J0IFN0cmluZ0lPCitmcm9tIHNpeC5tb3ZlcyBpbXBvcnQgY1N0cmlu
Z0lPIGFzIFN0cmluZ0lPCiAKIGZyb20gLi4gaW1wb3J0IHBhcnNlcgogCkBAIC04LDYgKzEwLDgg
QEAgZnJvbSAuLiBpbXBvcnQgcGFyc2VyCiAjIHVzZSB0ZXN0X3NlcmlhbGl6ZXIgZm9yIHRoZSBt
YWpvcml0eSBvZiBjYXNlcwogCiAKK0BweXRlc3QubWFyay54ZmFpbChzeXMudmVyc2lvblswXSA9
PSAiMyIsCisgICAgICAgICAgICAgICAgICAgcmVhc29uPSJ3cHRtYW5pZmVzdC5wYXJzZXIgZG9l
c24ndCBzdXBwb3J0IHB5MyIpCiBjbGFzcyBUZXN0RXhwcmVzc2lvbih1bml0dGVzdC5UZXN0Q2Fz
ZSk6CiAgICAgZGVmIHNldFVwKHNlbGYpOgogICAgICAgICBzZWxmLnBhcnNlciA9IHBhcnNlci5Q
YXJzZXIoKQpAQCAtODYsNyArOTAsNyBAQCBrZXk6CiAgICAgICAgIHNlbGYuY29tcGFyZSgKICAg
ICAgICAgICAgICIiIgoga2V5OgotICBpZiB4ID09IDE6IGlmIGI6IHZhbHVlIiIiLAorICBpZiB4
ID09IDE6ICdpZiBiOiB2YWx1ZSciIiIsCiAgICAgICAgICAgICBbIkRhdGFOb2RlIiwgTm9uZSwK
ICAgICAgICAgICAgICBbWyJLZXlWYWx1ZU5vZGUiLCAia2V5IiwKICAgICAgICAgICAgICAgIFtb
IkNvbmRpdGlvbmFsTm9kZSIsIE5vbmUsCkBAIC0xMDcsNiArMTExLDEwIEBAIGtleToKICAgICAg
ICAgd2l0aCBzZWxmLmFzc2VydFJhaXNlcyhwYXJzZXIuUGFyc2VFcnJvcik6CiAgICAgICAgICAg
ICBzZWxmLnBhcnNlKCJrZXk6IEB0cnVlIikKIAorICAgIGRlZiB0ZXN0X2lmXzEoc2VsZik6Cisg
ICAgICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXMocGFyc2VyLlBhcnNlRXJyb3IpOgorICAgICAg
ICAgICAgc2VsZi5wYXJzZSgia2V5OiBpZiBmb28iKQorCiAKIGlmIF9fbmFtZV9fID09ICJfX21h
aW5fXyI6CiAgICAgdW5pdHRlc3QubWFpbigpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvd3B0
bWFuaWZlc3QvdGVzdHMvdGVzdF9zZXJpYWxpemVyLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3dwdG1hbmlm
ZXN0L3Rlc3RzL3Rlc3Rfc2VyaWFsaXplci5weQppbmRleCAwMjI4MGU1MWY4NDVjODE0NGI5NmJk
ZThiNTg4YjliN2MzNzZhMzQ1Li43ZmU3YWM4NWNiOGExNGYwNTExM2NiZmQ0ODNiOGQwNDJhMDdi
OTg5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvd3B0bWFuaWZlc3QvdGVzdHMvdGVzdF9zZXJp
YWxpemVyLnB5CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci93cHRtYW5pZmVzdC90ZXN0cy90ZXN0X3Nlcmlh
bGl6ZXIucHkKQEAgLTYsNiArNiw4IEBAIGltcG9ydCBweXRlc3QKIGZyb20gLi4gaW1wb3J0IHBh
cnNlciwgc2VyaWFsaXplcgogCiAKK0BweXRlc3QubWFyay54ZmFpbChzeXMudmVyc2lvblswXSA9
PSAiMyIsCisgICAgICAgICAgICAgICAgICAgcmVhc29uPSJ3cHRtYW5pZmVzdC5wYXJzZXIgZG9l
c24ndCBzdXBwb3J0IHB5MyIpCiBjbGFzcyBUb2tlbml6ZXJUZXN0KHVuaXR0ZXN0LlRlc3RDYXNl
KToKICAgICBkZWYgc2V0VXAoc2VsZik6CiAgICAgICAgIHNlbGYuc2VyaWFsaXplciA9IHNlcmlh
bGl6ZXIuTWFuaWZlc3RTZXJpYWxpemVyKCkKQEAgLTE0NCw3ICsxNDYsNyBAQCBjbGFzcyBUb2tl
bml6ZXJUZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKICIiIikKIAogICAgIGRlZiB0ZXN0XzE4KHNl
bGYpOgotICAgICAgICBzZWxmLmNvbXBhcmUoIiIia2V5OiBcXQorICAgICAgICBzZWxmLmNvbXBh
cmUociIiImtleTogXF0KICAgICAgICAgIiIiLCAiIiJrZXk6IF0KICIiIikKIApAQCAtMjI4LDMg
KzIzMCw3IEBAIGNsYXNzIFRva2VuaXplclRlc3QodW5pdHRlc3QuVGVzdENhc2UpOgogICAgICAg
ICBzZWxmLmNvbXBhcmUoIiIiZm9vOgogICBpZiBhIG9yIGI6IFsxLCAyXQogIiIiKQorCisgICAg
ZGVmIHRlc3RfaWZfc3RyaW5nXzAoc2VsZik6CisgICAgICAgIHNlbGYuY29tcGFyZSgiIiJmb286
ICJpZiBiYXIiCisiIiIpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvd3B0bWFuaWZlc3QvdGVz
dHMvdGVzdF9zdGF0aWMucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvd3B0bWFuaWZlc3QvdGVzdHMvdGVzdF9z
dGF0aWMucHkKaW5kZXggZjYzODY5NjM2ZGE3OWNkY2RjOTYxZTEzN2Q0ZjA0NDA1NWQ3NGRlNC4u
YWFmODQ2NTkxNTI0NmFhYzU4YTA2OGRjZmMwNjk3YjhjOWFmNDE4MSAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIv
d3B0cnVubmVyL3dwdG1hbmlmZXN0L3Rlc3RzL3Rlc3Rfc3RhdGljLnB5CisrKyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1
bm5lci93cHRtYW5pZmVzdC90ZXN0cy90ZXN0X3N0YXRpYy5weQpAQCAtMSwzICsxLDUgQEAKK2lt
cG9ydCBweXRlc3QKK2ltcG9ydCBzeXMKIGltcG9ydCB1bml0dGVzdAogCiBmcm9tIC4uYmFja2Vu
ZHMgaW1wb3J0IHN0YXRpYwpAQCAtNiw2ICs4LDggQEAgZnJvbSAuLmJhY2tlbmRzIGltcG9ydCBz
dGF0aWMKICMgdXNlIHRlc3Rfc2VyaWFsaXplciBmb3IgdGhlIG1ham9yaXR5IG9mIGNhc2VzCiAK
IAorQHB5dGVzdC5tYXJrLnhmYWlsKHN5cy52ZXJzaW9uWzBdID09ICIzIiwKKyAgICAgICAgICAg
ICAgICAgICByZWFzb249IndwdG1hbmlmZXN0LnBhcnNlciBkb2Vzbid0IHN1cHBvcnQgcHkzIikK
IGNsYXNzIFRlc3RTdGF0aWModW5pdHRlc3QuVGVzdENhc2UpOgogICAgIGRlZiBjb21waWxlKHNl
bGYsIGlucHV0X3RleHQsIGlucHV0X2RhdGEpOgogICAgICAgICByZXR1cm4gc3RhdGljLmNvbXBp
bGUoaW5wdXRfdGV4dCwgaW5wdXRfZGF0YSkKQEAgLTgzLDggKzg3LDggQEAga2V5XzE6IG90aGVy
X3ZhbHVlCiAgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShtYW5pZmVzdC5oYXNfa2V5KCJrZXlfMSIp
KQogICAgICAgICBzZWxmLmFzc2VydEZhbHNlKG1hbmlmZXN0Lmhhc19rZXkoImtleV8yIikpCiAK
LSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMoc2V0KG1hbmlmZXN0Lml0ZXJrZXlzKCkpLCBzZXQo
WyJrZXkiLCAia2V5XzEiXSkpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKHNldChtYW5pZmVz
dC5pdGVydmFsdWVzKCkpLCBzZXQoWyJ2YWx1ZV8xIiwgIm90aGVyX3ZhbHVlIl0pKQorICAgICAg
ICBzZWxmLmFzc2VydEVxdWFscyhzZXQobWFuaWZlc3QuaXRlcmtleXMoKSksIHsia2V5IiwgImtl
eV8xIn0pCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKHNldChtYW5pZmVzdC5pdGVydmFsdWVz
KCkpLCB7InZhbHVlXzEiLCAib3RoZXJfdmFsdWUifSkKIAogICAgIGRlZiB0ZXN0X2lzX2VtcHR5
XzEoc2VsZik6CiAgICAgICAgIGRhdGEgPSAiIiIKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci93
cHRtYW5pZmVzdC90ZXN0cy90ZXN0X3Rva2VuaXplci5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci93cHRtYW5p
ZmVzdC90ZXN0cy90ZXN0X3Rva2VuaXplci5weQppbmRleCBhNjRjZTBjN2JiN2Q4ZDA4OWE4Y2Ix
MzY1YzA0NzdhMDg2NTJlYWNjLi42NmI1ODA1NTQyYjNhYmU2MDA4NWRjN2ZlMDQ4MWExYjJmOGNi
MmY1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvd3B0bWFuaWZlc3QvdGVzdHMvdGVzdF90b2tl
bml6ZXIucHkKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3dwdG1hbmlmZXN0L3Rlc3RzL3Rlc3RfdG9rZW5p
emVyLnB5CkBAIC0xLDIxICsxLDE1IEBACi1pbXBvcnQgc3lzCi1pbXBvcnQgb3MKIGltcG9ydCB1
bml0dGVzdAogCi1zeXMucGF0aC5pbnNlcnQoMCwgb3MucGF0aC5hYnNwYXRoKCIuLiIpKQotZnJv
bSBjU3RyaW5nSU8gaW1wb3J0IFN0cmluZ0lPCi0KIGZyb20gLi4gaW1wb3J0IHBhcnNlcgogZnJv
bSAuLnBhcnNlciBpbXBvcnQgdG9rZW5fdHlwZXMKIAotCiBjbGFzcyBUb2tlbml6ZXJUZXN0KHVu
aXR0ZXN0LlRlc3RDYXNlKToKICAgICBkZWYgc2V0VXAoc2VsZik6CiAgICAgICAgIHNlbGYudG9r
ZW5pemVyID0gcGFyc2VyLlRva2VuaXplcigpCiAKICAgICBkZWYgdG9rZW5pemUoc2VsZiwgaW5w
dXRfc3RyKToKICAgICAgICAgcnYgPSBbXQotICAgICAgICBmb3IgaXRlbSBpbiBzZWxmLnRva2Vu
aXplci50b2tlbml6ZShTdHJpbmdJTyhpbnB1dF9zdHIpKToKKyAgICAgICAgZm9yIGl0ZW0gaW4g
c2VsZi50b2tlbml6ZXIudG9rZW5pemUoaW5wdXRfc3RyKToKICAgICAgICAgICAgIHJ2LmFwcGVu
ZChpdGVtKQogICAgICAgICAgICAgaWYgaXRlbVswXSA9PSB0b2tlbl90eXBlcy5lb2Y6CiAgICAg
ICAgICAgICAgICAgYnJlYWsKQEAgLTI0LDEyOCArMTgsMTI4IEBAIGNsYXNzIFRva2VuaXplclRl
c3QodW5pdHRlc3QuVGVzdENhc2UpOgogICAgIGRlZiBjb21wYXJlKHNlbGYsIGlucHV0X3RleHQs
IGV4cGVjdGVkKToKICAgICAgICAgZXhwZWN0ZWQgPSBleHBlY3RlZCArIFsodG9rZW5fdHlwZXMu
ZW9mLCBOb25lKV0KICAgICAgICAgYWN0dWFsID0gc2VsZi50b2tlbml6ZShpbnB1dF90ZXh0KQot
ICAgICAgICBzZWxmLmFzc2VydEVxdWFscyhhY3R1YWwsIGV4cGVjdGVkKQorICAgICAgICBzZWxm
LmFzc2VydEVxdWFsKGFjdHVhbCwgZXhwZWN0ZWQpCiAKICAgICBkZWYgdGVzdF9oZWFkaW5nXzAo
c2VsZik6Ci0gICAgICAgIHNlbGYuY29tcGFyZSgiIiJbSGVhZGluZyB0ZXh0XSIiIiwKKyAgICAg
ICAgc2VsZi5jb21wYXJlKGIiIiJbSGVhZGluZyB0ZXh0XSIiIiwKICAgICAgICAgICAgICAgICAg
ICAgIFsodG9rZW5fdHlwZXMucGFyZW4sICJbIiksCiAgICAgICAgICAgICAgICAgICAgICAgKHRv
a2VuX3R5cGVzLnN0cmluZywgIkhlYWRpbmcgdGV4dCIpLAogICAgICAgICAgICAgICAgICAgICAg
ICh0b2tlbl90eXBlcy5wYXJlbiwgIl0iKV0pCiAKICAgICBkZWYgdGVzdF9oZWFkaW5nXzEoc2Vs
Zik6Ci0gICAgICAgIHNlbGYuY29tcGFyZSgiIiJbSGVhZGluZyBbdGV4dFxdXSIiIiwKKyAgICAg
ICAgc2VsZi5jb21wYXJlKGJyIiIiW0hlYWRpbmcgW3RleHRcXV0iIiIsCiAgICAgICAgICAgICAg
ICAgICAgICBbKHRva2VuX3R5cGVzLnBhcmVuLCAiWyIpLAogICAgICAgICAgICAgICAgICAgICAg
ICh0b2tlbl90eXBlcy5zdHJpbmcsICJIZWFkaW5nIFt0ZXh0XSIpLAogICAgICAgICAgICAgICAg
ICAgICAgICh0b2tlbl90eXBlcy5wYXJlbiwgIl0iKV0pCiAKICAgICBkZWYgdGVzdF9oZWFkaW5n
XzIoc2VsZik6Ci0gICAgICAgIHNlbGYuY29tcGFyZSgiIiJbSGVhZGluZyAjdGV4dF0iIiIsCisg
ICAgICAgIHNlbGYuY29tcGFyZShiIiIiW0hlYWRpbmcgI3RleHRdIiIiLAogICAgICAgICAgICAg
ICAgICAgICAgWyh0b2tlbl90eXBlcy5wYXJlbiwgIlsiKSwKICAgICAgICAgICAgICAgICAgICAg
ICAodG9rZW5fdHlwZXMuc3RyaW5nLCAiSGVhZGluZyAjdGV4dCIpLAogICAgICAgICAgICAgICAg
ICAgICAgICh0b2tlbl90eXBlcy5wYXJlbiwgIl0iKV0pCiAKICAgICBkZWYgdGVzdF9oZWFkaW5n
XzMoc2VsZik6Ci0gICAgICAgIHNlbGYuY29tcGFyZSgiIiJbSGVhZGluZyBbXF10ZXh0XSIiIiwK
KyAgICAgICAgc2VsZi5jb21wYXJlKGJyIiIiW0hlYWRpbmcgW1xddGV4dF0iIiIsCiAgICAgICAg
ICAgICAgICAgICAgICBbKHRva2VuX3R5cGVzLnBhcmVuLCAiWyIpLAogICAgICAgICAgICAgICAg
ICAgICAgICh0b2tlbl90eXBlcy5zdHJpbmcsICJIZWFkaW5nIFtddGV4dCIpLAogICAgICAgICAg
ICAgICAgICAgICAgICh0b2tlbl90eXBlcy5wYXJlbiwgIl0iKV0pCiAKICAgICBkZWYgdGVzdF9o
ZWFkaW5nXzQoc2VsZik6CiAgICAgICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXMocGFyc2VyLlBh
cnNlRXJyb3IpOgotICAgICAgICAgICAgc2VsZi50b2tlbml6ZSgiW0hlYWRpbmciKQorICAgICAg
ICAgICAgc2VsZi50b2tlbml6ZShiIltIZWFkaW5nIikKIAogICAgIGRlZiB0ZXN0X2hlYWRpbmdf
NShzZWxmKToKLSAgICAgICAgc2VsZi5jb21wYXJlKCIiIltIZWFkaW5nIFtcXXRleHRdICNjb21t
ZW50IiIiLAorICAgICAgICBzZWxmLmNvbXBhcmUoYnIiIiJbSGVhZGluZyBbXF10ZXh0XSAjY29t
bWVudCIiIiwKICAgICAgICAgICAgICAgICAgICAgIFsodG9rZW5fdHlwZXMucGFyZW4sICJbIiks
CiAgICAgICAgICAgICAgICAgICAgICAgKHRva2VuX3R5cGVzLnN0cmluZywgIkhlYWRpbmcgW110
ZXh0IiksCiAgICAgICAgICAgICAgICAgICAgICAgKHRva2VuX3R5cGVzLnBhcmVuLCAiXSIpXSkK
IAogICAgIGRlZiB0ZXN0X2hlYWRpbmdfNihzZWxmKToKLSAgICAgICAgc2VsZi5jb21wYXJlKHIi
IiJbSGVhZGluZyBcdHRleHRdIiIiLAorICAgICAgICBzZWxmLmNvbXBhcmUoYnIiIiJbSGVhZGlu
ZyBcdHRleHRdIiIiLAogICAgICAgICAgICAgICAgICAgICAgWyh0b2tlbl90eXBlcy5wYXJlbiwg
IlsiKSwKICAgICAgICAgICAgICAgICAgICAgICAodG9rZW5fdHlwZXMuc3RyaW5nLCAiSGVhZGlu
ZyBcdHRleHQiKSwKICAgICAgICAgICAgICAgICAgICAgICAodG9rZW5fdHlwZXMucGFyZW4sICJd
IildKQogCiAgICAgZGVmIHRlc3Rfa2V5XzAoc2VsZik6Ci0gICAgICAgIHNlbGYuY29tcGFyZSgi
IiJrZXk6dmFsdWUiIiIsCisgICAgICAgIHNlbGYuY29tcGFyZShiIiIia2V5OnZhbHVlIiIiLAog
ICAgICAgICAgICAgICAgICAgICAgWyh0b2tlbl90eXBlcy5zdHJpbmcsICJrZXkiKSwKICAgICAg
ICAgICAgICAgICAgICAgICAodG9rZW5fdHlwZXMuc2VwYXJhdG9yLCAiOiIpLAogICAgICAgICAg
ICAgICAgICAgICAgICh0b2tlbl90eXBlcy5zdHJpbmcsICJ2YWx1ZSIpXSkKIAogICAgIGRlZiB0
ZXN0X2tleV8xKHNlbGYpOgotICAgICAgICBzZWxmLmNvbXBhcmUoIiIia2V5ICA6ICB2YWx1ZSIi
IiwKKyAgICAgICAgc2VsZi5jb21wYXJlKGIiIiJrZXkgIDogIHZhbHVlIiIiLAogICAgICAgICAg
ICAgICAgICAgICAgWyh0b2tlbl90eXBlcy5zdHJpbmcsICJrZXkiKSwKICAgICAgICAgICAgICAg
ICAgICAgICAodG9rZW5fdHlwZXMuc2VwYXJhdG9yLCAiOiIpLAogICAgICAgICAgICAgICAgICAg
ICAgICh0b2tlbl90eXBlcy5zdHJpbmcsICJ2YWx1ZSIpXSkKIAogICAgIGRlZiB0ZXN0X2tleV8y
KHNlbGYpOgotICAgICAgICBzZWxmLmNvbXBhcmUoIiIia2V5ICA6ICB2YWwgdWUiIiIsCisgICAg
ICAgIHNlbGYuY29tcGFyZShiIiIia2V5ICA6ICB2YWwgdWUiIiIsCiAgICAgICAgICAgICAgICAg
ICAgICBbKHRva2VuX3R5cGVzLnN0cmluZywgImtleSIpLAogICAgICAgICAgICAgICAgICAgICAg
ICh0b2tlbl90eXBlcy5zZXBhcmF0b3IsICI6IiksCiAgICAgICAgICAgICAgICAgICAgICAgKHRv
a2VuX3R5cGVzLnN0cmluZywgInZhbCB1ZSIpXSkKIAogICAgIGRlZiB0ZXN0X2tleV8zKHNlbGYp
OgotICAgICAgICBzZWxmLmNvbXBhcmUoIiIia2V5OiB2YWx1ZSNjb21tZW50IiIiLAorICAgICAg
ICBzZWxmLmNvbXBhcmUoYiIiImtleTogdmFsdWUjY29tbWVudCIiIiwKICAgICAgICAgICAgICAg
ICAgICAgIFsodG9rZW5fdHlwZXMuc3RyaW5nLCAia2V5IiksCiAgICAgICAgICAgICAgICAgICAg
ICAgKHRva2VuX3R5cGVzLnNlcGFyYXRvciwgIjoiKSwKICAgICAgICAgICAgICAgICAgICAgICAo
dG9rZW5fdHlwZXMuc3RyaW5nLCAidmFsdWUiKV0pCiAKICAgICBkZWYgdGVzdF9rZXlfNChzZWxm
KToKICAgICAgICAgd2l0aCBzZWxmLmFzc2VydFJhaXNlcyhwYXJzZXIuUGFyc2VFcnJvcik6Ci0g
ICAgICAgICAgICBzZWxmLnRva2VuaXplKCIiImtlIHk6IHZhbHVlIiIiKQorICAgICAgICAgICAg
c2VsZi50b2tlbml6ZShiIiIia2UgeTogdmFsdWUiIiIpCiAKICAgICBkZWYgdGVzdF9rZXlfNShz
ZWxmKToKICAgICAgICAgd2l0aCBzZWxmLmFzc2VydFJhaXNlcyhwYXJzZXIuUGFyc2VFcnJvcik6
Ci0gICAgICAgICAgICBzZWxmLnRva2VuaXplKCIiImtleSIiIikKKyAgICAgICAgICAgIHNlbGYu
dG9rZW5pemUoYiIiImtleSIiIikKIAogICAgIGRlZiB0ZXN0X2tleV82KHNlbGYpOgotICAgICAg
ICBzZWxmLmNvbXBhcmUoIiIia2V5OiAidmFsdWVcIiIiIiwKKyAgICAgICAgc2VsZi5jb21wYXJl
KGIiIiJrZXk6ICJ2YWx1ZVwiIiIiLAogICAgICAgICAgICAgICAgICAgICAgWyh0b2tlbl90eXBl
cy5zdHJpbmcsICJrZXkiKSwKICAgICAgICAgICAgICAgICAgICAgICAodG9rZW5fdHlwZXMuc2Vw
YXJhdG9yLCAiOiIpLAogICAgICAgICAgICAgICAgICAgICAgICh0b2tlbl90eXBlcy5zdHJpbmcs
ICJ2YWx1ZSIpXSkKIAogICAgIGRlZiB0ZXN0X2tleV83KHNlbGYpOgotICAgICAgICBzZWxmLmNv
bXBhcmUoIiIia2V5OiAndmFsdWUnIiIiLAorICAgICAgICBzZWxmLmNvbXBhcmUoYiIiImtleTog
J3ZhbHVlJyIiIiwKICAgICAgICAgICAgICAgICAgICAgIFsodG9rZW5fdHlwZXMuc3RyaW5nLCAi
a2V5IiksCiAgICAgICAgICAgICAgICAgICAgICAgKHRva2VuX3R5cGVzLnNlcGFyYXRvciwgIjoi
KSwKICAgICAgICAgICAgICAgICAgICAgICAodG9rZW5fdHlwZXMuc3RyaW5nLCAidmFsdWUiKV0p
CiAKICAgICBkZWYgdGVzdF9rZXlfOChzZWxmKToKLSAgICAgICAgc2VsZi5jb21wYXJlKCIiImtl
eTogIiN2YWx1ZVwiIiIiLAorICAgICAgICBzZWxmLmNvbXBhcmUoYiIiImtleTogIiN2YWx1ZVwi
IiIiLAogICAgICAgICAgICAgICAgICAgICAgWyh0b2tlbl90eXBlcy5zdHJpbmcsICJrZXkiKSwK
ICAgICAgICAgICAgICAgICAgICAgICAodG9rZW5fdHlwZXMuc2VwYXJhdG9yLCAiOiIpLAogICAg
ICAgICAgICAgICAgICAgICAgICh0b2tlbl90eXBlcy5zdHJpbmcsICIjdmFsdWUiKV0pCiAKICAg
ICBkZWYgdGVzdF9rZXlfOShzZWxmKToKLSAgICAgICAgc2VsZi5jb21wYXJlKCIiImtleTogJyN2
YWx1ZVwnIiIiLAorICAgICAgICBzZWxmLmNvbXBhcmUoYiIiImtleTogJyN2YWx1ZVwnIiIiLAog
ICAgICAgICAgICAgICAgICAgICAgWyh0b2tlbl90eXBlcy5zdHJpbmcsICJrZXkiKSwKICAgICAg
ICAgICAgICAgICAgICAgICAodG9rZW5fdHlwZXMuc2VwYXJhdG9yLCAiOiIpLAogICAgICAgICAg
ICAgICAgICAgICAgICh0b2tlbl90eXBlcy5zdHJpbmcsICIjdmFsdWUiKV0pCiAKICAgICBkZWYg
dGVzdF9rZXlfMTAoc2VsZik6CiAgICAgICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXMocGFyc2Vy
LlBhcnNlRXJyb3IpOgotICAgICAgICAgICAgc2VsZi50b2tlbml6ZSgiIiJrZXk6ICJ2YWx1ZSIi
IikKKyAgICAgICAgICAgIHNlbGYudG9rZW5pemUoYiIiImtleTogInZhbHVlIiIiKQogCiAgICAg
ZGVmIHRlc3Rfa2V5XzExKHNlbGYpOgogICAgICAgICB3aXRoIHNlbGYuYXNzZXJ0UmFpc2VzKHBh
cnNlci5QYXJzZUVycm9yKToKLSAgICAgICAgICAgIHNlbGYudG9rZW5pemUoIiIia2V5OiAndmFs
dWUiIiIpCisgICAgICAgICAgICBzZWxmLnRva2VuaXplKGIiIiJrZXk6ICd2YWx1ZSIiIikKIAog
ICAgIGRlZiB0ZXN0X2tleV8xMihzZWxmKToKICAgICAgICAgd2l0aCBzZWxmLmFzc2VydFJhaXNl
cyhwYXJzZXIuUGFyc2VFcnJvcik6Ci0gICAgICAgICAgICBzZWxmLnRva2VuaXplKCIiImtleTog
J3ZhbHVlIiIiKQorICAgICAgICAgICAgc2VsZi50b2tlbml6ZShiIiIia2V5OiAndmFsdWUiIiIp
CiAKICAgICBkZWYgdGVzdF9rZXlfMTMoc2VsZik6CiAgICAgICAgIHdpdGggc2VsZi5hc3NlcnRS
YWlzZXMocGFyc2VyLlBhcnNlRXJyb3IpOgotICAgICAgICAgICAgc2VsZi50b2tlbml6ZSgiIiJr
ZXk6ICd2YWx1ZScgYWJjIiIiKQorICAgICAgICAgICAgc2VsZi50b2tlbml6ZShiIiIia2V5OiAn
dmFsdWUnIGFiYyIiIikKIAogICAgIGRlZiB0ZXN0X2tleV8xNChzZWxmKToKLSAgICAgICAgc2Vs
Zi5jb21wYXJlKHIiIiJrZXk6IFxcbmIiIiIsCisgICAgICAgIHNlbGYuY29tcGFyZShiciIiImtl
eTogXFxuYiIiIiwKICAgICAgICAgICAgICAgICAgICAgIFsodG9rZW5fdHlwZXMuc3RyaW5nLCAi
a2V5IiksCiAgICAgICAgICAgICAgICAgICAgICAgKHRva2VuX3R5cGVzLnNlcGFyYXRvciwgIjoi
KSwKICAgICAgICAgICAgICAgICAgICAgICAodG9rZW5fdHlwZXMuc3RyaW5nLCByIlxuYiIpXSkK
IAogICAgIGRlZiB0ZXN0X2xpc3RfMChzZWxmKToKLSAgICAgICAgc2VsZi5jb21wYXJlKCIiIgor
ICAgICAgICBzZWxmLmNvbXBhcmUoYiIiIgoga2V5OiBbXSIiIiwKICAgICAgICAgICAgIFsodG9r
ZW5fdHlwZXMuc3RyaW5nLCAia2V5IiksCiAgICAgICAgICAgICAgKHRva2VuX3R5cGVzLnNlcGFy
YXRvciwgIjoiKSwKQEAgLTE1Myw3ICsxNDcsNyBAQCBrZXk6IFtdIiIiLAogICAgICAgICAgICAg
ICh0b2tlbl90eXBlcy5saXN0X2VuZCwgIl0iKV0pCiAKICAgICBkZWYgdGVzdF9saXN0XzEoc2Vs
Zik6Ci0gICAgICAgIHNlbGYuY29tcGFyZSgiIiIKKyAgICAgICAgc2VsZi5jb21wYXJlKGIiIiIK
IGtleTogW2EsICJiIl0iIiIsCiAgICAgICAgICAgICBbKHRva2VuX3R5cGVzLnN0cmluZywgImtl
eSIpLAogICAgICAgICAgICAgICh0b2tlbl90eXBlcy5zZXBhcmF0b3IsICI6IiksCkBAIC0xNjMs
NyArMTU3LDcgQEAga2V5OiBbYSwgImIiXSIiIiwKICAgICAgICAgICAgICAodG9rZW5fdHlwZXMu
bGlzdF9lbmQsICJdIildKQogCiAgICAgZGVmIHRlc3RfbGlzdF8yKHNlbGYpOgotICAgICAgICBz
ZWxmLmNvbXBhcmUoIiIiCisgICAgICAgIHNlbGYuY29tcGFyZShiIiIiCiBrZXk6IFthLAogICAg
ICAgYl0iIiIsCiAgICAgICAgICAgICBbKHRva2VuX3R5cGVzLnN0cmluZywgImtleSIpLApAQCAt
MTc0LDcgKzE2OCw3IEBAIGtleTogW2EsCiAgICAgICAgICAgICAgKHRva2VuX3R5cGVzLmxpc3Rf
ZW5kLCAiXSIpXSkKIAogICAgIGRlZiB0ZXN0X2xpc3RfMyhzZWxmKToKLSAgICAgICAgc2VsZi5j
b21wYXJlKCIiIgorICAgICAgICBzZWxmLmNvbXBhcmUoYiIiIgoga2V5OiBbYSwgI2JdCiAgICAg
ICBjXSIiIiwKICAgICAgICAgICAgIFsodG9rZW5fdHlwZXMuc3RyaW5nLCAia2V5IiksCkBAIC0x
ODYsMTYgKzE4MCwxNiBAQCBrZXk6IFthLCAjYl0KIAogICAgIGRlZiB0ZXN0X2xpc3RfNChzZWxm
KToKICAgICAgICAgd2l0aCBzZWxmLmFzc2VydFJhaXNlcyhwYXJzZXIuUGFyc2VFcnJvcik6Ci0g
ICAgICAgICAgICBzZWxmLnRva2VuaXplKCIiImtleTogW2EgI2JdCisgICAgICAgICAgICBzZWxm
LnRva2VuaXplKGIiIiJrZXk6IFthICNiXQogICAgICAgICAgICAgY10iIiIpCiAKICAgICBkZWYg
dGVzdF9saXN0XzUoc2VsZik6CiAgICAgICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXMocGFyc2Vy
LlBhcnNlRXJyb3IpOgotICAgICAgICAgICAgc2VsZi50b2tlbml6ZSgiIiJrZXk6IFthIFxcCisg
ICAgICAgICAgICBzZWxmLnRva2VuaXplKGIiIiJrZXk6IFthIFxcCiAgICAgICAgICAgICBjXSIi
IikKIAogICAgIGRlZiB0ZXN0X2xpc3RfNihzZWxmKToKLSAgICAgICAgc2VsZi5jb21wYXJlKCIi
ImtleTogW2EgLCBiXSIiIiwKKyAgICAgICAgc2VsZi5jb21wYXJlKGIiIiJrZXk6IFthICwgYl0i
IiIsCiAgICAgICAgICAgICBbKHRva2VuX3R5cGVzLnN0cmluZywgImtleSIpLAogICAgICAgICAg
ICAgICh0b2tlbl90eXBlcy5zZXBhcmF0b3IsICI6IiksCiAgICAgICAgICAgICAgKHRva2VuX3R5
cGVzLmxpc3Rfc3RhcnQsICJbIiksCkBAIC0yMDQsNyArMTk4LDcgQEAga2V5OiBbYSwgI2JdCiAg
ICAgICAgICAgICAgKHRva2VuX3R5cGVzLmxpc3RfZW5kLCAiXSIpXSkKIAogICAgIGRlZiB0ZXN0
X2V4cHJfMChzZWxmKToKLSAgICAgICAgc2VsZi5jb21wYXJlKCIiIgorICAgICAgICBzZWxmLmNv
bXBhcmUoYiIiIgoga2V5OgogICBpZiBjb25kID09IDE6IHZhbHVlIiIiLAogICAgICAgICAgICAg
Wyh0b2tlbl90eXBlcy5zdHJpbmcsICJrZXkiKSwKQEAgLTIxOCw3ICsyMTIsNyBAQCBrZXk6CiAg
ICAgICAgICAgICAgKHRva2VuX3R5cGVzLnN0cmluZywgInZhbHVlIildKQogCiAgICAgZGVmIHRl
c3RfZXhwcl8xKHNlbGYpOgotICAgICAgICBzZWxmLmNvbXBhcmUoIiIiCisgICAgICAgIHNlbGYu
Y29tcGFyZShiIiIiCiBrZXk6CiAgIGlmIGNvbmQgPT0gMTogdmFsdWUxCiAgIHZhbHVlMiIiIiwK
QEAgLTIzNCw3ICsyMjgsNyBAQCBrZXk6CiAgICAgICAgICAgICAgKHRva2VuX3R5cGVzLnN0cmlu
ZywgInZhbHVlMiIpXSkKIAogICAgIGRlZiB0ZXN0X2V4cHJfMihzZWxmKToKLSAgICAgICAgc2Vs
Zi5jb21wYXJlKCIiIgorICAgICAgICBzZWxmLmNvbXBhcmUoYiIiIgoga2V5OgogICBpZiBjb25k
PT0iMSI6IHZhbHVlIiIiLAogICAgICAgICAgICAgWyh0b2tlbl90eXBlcy5zdHJpbmcsICJrZXki
KSwKQEAgLTI0OCw3ICsyNDIsNyBAQCBrZXk6CiAgICAgICAgICAgICAgKHRva2VuX3R5cGVzLnN0
cmluZywgInZhbHVlIildKQogCiAgICAgZGVmIHRlc3RfZXhwcl8zKHNlbGYpOgotICAgICAgICBz
ZWxmLmNvbXBhcmUoIiIiCisgICAgICAgIHNlbGYuY29tcGFyZShiIiIiCiBrZXk6CiAgIGlmIGNv
bmQ9PTEuMTogdmFsdWUiIiIsCiAgICAgICAgICAgICBbKHRva2VuX3R5cGVzLnN0cmluZywgImtl
eSIpLApAQCAtMjYyLDcgKzI1Niw3IEBAIGtleToKICAgICAgICAgICAgICAodG9rZW5fdHlwZXMu
c3RyaW5nLCAidmFsdWUiKV0pCiAKICAgICBkZWYgdGVzdF9leHByXzQoc2VsZik6Ci0gICAgICAg
IHNlbGYuY29tcGFyZSgiIiIKKyAgICAgICAgc2VsZi5jb21wYXJlKGIiIiIKIGtleToKICAgaWYg
Y29uZD09MS4xIGFuZCBjb25kMiA9PSAiYSI6IHZhbHVlIiIiLAogICAgICAgICAgICAgWyh0b2tl
bl90eXBlcy5zdHJpbmcsICJrZXkiKSwKQEAgLTI4MCw3ICsyNzQsNyBAQCBrZXk6CiAgICAgICAg
ICAgICAgKHRva2VuX3R5cGVzLnN0cmluZywgInZhbHVlIildKQogCiAgICAgZGVmIHRlc3RfZXhw
cl81KHNlbGYpOgotICAgICAgICBzZWxmLmNvbXBhcmUoIiIiCisgICAgICAgIHNlbGYuY29tcGFy
ZShiIiIiCiBrZXk6CiAgIGlmIChjb25kPT0xLjEgKTogdmFsdWUiIiIsCiAgICAgICAgICAgICBb
KHRva2VuX3R5cGVzLnN0cmluZywgImtleSIpLApAQCAtMjk2LDcgKzI5MCw3IEBAIGtleToKICAg
ICAgICAgICAgICAodG9rZW5fdHlwZXMuc3RyaW5nLCAidmFsdWUiKV0pCiAKICAgICBkZWYgdGVz
dF9leHByXzYoc2VsZik6Ci0gICAgICAgIHNlbGYuY29tcGFyZSgiIiIKKyAgICAgICAgc2VsZi5j
b21wYXJlKGIiIiIKIGtleToKICAgaWYgIlxcdHRlc3QiOiB2YWx1ZSIiIiwKICAgICAgICAgICAg
IFsodG9rZW5fdHlwZXMuc3RyaW5nLCAia2V5IiksCkBAIC0zMDksMjcgKzMwMywyNCBAQCBrZXk6
CiAKICAgICBkZWYgdGVzdF9leHByXzcoc2VsZik6CiAgICAgICAgIHdpdGggc2VsZi5hc3NlcnRS
YWlzZXMocGFyc2VyLlBhcnNlRXJyb3IpOgotICAgICAgICAgICAgc2VsZi50b2tlbml6ZSgKLSAg
ICAgICAgICAgICAgICAiIiIKKyAgICAgICAgICAgIHNlbGYudG9rZW5pemUoYiIiIgoga2V5Ogog
ICBpZiAxQTogdmFsdWUiIiIpCiAKICAgICBkZWYgdGVzdF9leHByXzgoc2VsZik6CiAgICAgICAg
IHdpdGggc2VsZi5hc3NlcnRSYWlzZXMocGFyc2VyLlBhcnNlRXJyb3IpOgotICAgICAgICAgICAg
c2VsZi50b2tlbml6ZSgKLSAgICAgICAgICAgICAgICAiIiIKKyAgICAgICAgICAgIHNlbGYudG9r
ZW5pemUoYiIiIgoga2V5OgogICBpZiAxYTogdmFsdWUiIiIpCiAKICAgICBkZWYgdGVzdF9leHBy
Xzkoc2VsZik6CiAgICAgICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXMocGFyc2VyLlBhcnNlRXJy
b3IpOgotICAgICAgICAgICAgc2VsZi50b2tlbml6ZSgKLSAgICAgICAgICAgICAgICAiIiIKKyAg
ICAgICAgICAgIHNlbGYudG9rZW5pemUoYiIiIgoga2V5OgogICBpZiAxLjEuMTogdmFsdWUiIiIp
CiAKICAgICBkZWYgdGVzdF9leHByXzEwKHNlbGYpOgotICAgICAgICBzZWxmLmNvbXBhcmUoIiIi
CisgICAgICAgIHNlbGYuY29tcGFyZShiIiIiCiBrZXk6CiAgIGlmIDEuOiB2YWx1ZSIiIiwKICAg
ICAgICAgICAgIFsodG9rZW5fdHlwZXMuc3RyaW5nLCAia2V5IiksCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93
cHRydW5uZXIvd3B0cnVubmVyLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3dwdHJ1bm5lci5weQppbmRleCBh
YWI1OTk2YWZkOTRlNzg2ODZhMDI3ZmQ4NTQ2Y2E4M2U3Nzc2NmY0Li5jYWMxNzJhNTk0MGVjNjk2
ZTNhM2IyNzkxNzBmOTcxMmFhZjQ2NjhkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHJ1bm5lci93cHRydW5uZXIvd3B0cnVu
bmVyLnB5CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci93cHRydW5uZXIucHkKQEAgLTEsNCArMSw0IEBACi1m
cm9tIF9fZnV0dXJlX18gaW1wb3J0IHVuaWNvZGVfbGl0ZXJhbHMKK2Zyb20gX19mdXR1cmVfXyBp
bXBvcnQgcHJpbnRfZnVuY3Rpb24sIHVuaWNvZGVfbGl0ZXJhbHMKIAogaW1wb3J0IGpzb24KIGlt
cG9ydCBvcwpAQCAtMTIsNiArMTIsNyBAQCBpbXBvcnQgdGVzdGxvYWRlcgogaW1wb3J0IHdwdGNv
bW1hbmRsaW5lCiBpbXBvcnQgd3B0bG9nZ2luZwogaW1wb3J0IHdwdHRlc3QKK2Zyb20gbW96bG9n
IGltcG9ydCBjYXB0dXJlLCBoYW5kbGVycwogZnJvbSBmb250IGltcG9ydCBGb250SW5zdGFsbGVy
CiBmcm9tIHRlc3RydW5uZXIgaW1wb3J0IE1hbmFnZXJHcm91cAogZnJvbSBicm93c2Vycy5iYXNl
IGltcG9ydCBOdWxsQnJvd3NlcgpAQCAtMzksNiArNDAsNyBAQCBtZXRhZGF0YSBmaWxlcyBhcmUg
dXNlZCB0byBzdG9yZSB0aGUgZXhwZWN0ZWQgdGVzdCByZXN1bHRzLgogZGVmIHNldHVwX2xvZ2dp
bmcoKmFyZ3MsICoqa3dhcmdzKToKICAgICBnbG9iYWwgbG9nZ2VyCiAgICAgbG9nZ2VyID0gd3B0
bG9nZ2luZy5zZXR1cCgqYXJncywgKiprd2FyZ3MpCisgICAgcmV0dXJuIGxvZ2dlcgogCiAKIGRl
ZiBnZXRfbG9hZGVyKHRlc3RfcGF0aHMsIHByb2R1Y3QsIGRlYnVnPU5vbmUsIHJ1bl9pbmZvX2V4
dHJhcz1Ob25lLCAqKmt3YXJncyk6CkBAIC00NywyOSArNDksMjkgQEAgZGVmIGdldF9sb2FkZXIo
dGVzdF9wYXRocywgcHJvZHVjdCwgZGVidWc9Tm9uZSwgcnVuX2luZm9fZXh0cmFzPU5vbmUsICoq
a3dhcmdzKToKIAogICAgIHJ1bl9pbmZvID0gd3B0dGVzdC5nZXRfcnVuX2luZm8oa3dhcmdzWyJy
dW5faW5mbyJdLCBwcm9kdWN0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
YnJvd3Nlcl92ZXJzaW9uPWt3YXJncy5nZXQoImJyb3dzZXJfdmVyc2lvbiIpLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJvd3Nlcl9jaGFubmVsPWt3YXJncy5nZXQoImJy
b3dzZXJfY2hhbm5lbCIpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVy
aWZ5PWt3YXJncy5nZXQoInZlcmlmeSIpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgZGVidWc9ZGVidWcsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBl
eHRyYXM9cnVuX2luZm9fZXh0cmFzKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgZXh0cmFzPXJ1bl9pbmZvX2V4dHJhcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGVuYWJsZV93ZWJyZW5kZXI9a3dhcmdzLmdldCgiZW5hYmxlX3dlYnJlbmRlciIpKQog
CiAgICAgdGVzdF9tYW5pZmVzdHMgPSB0ZXN0bG9hZGVyLk1hbmlmZXN0TG9hZGVyKHRlc3RfcGF0
aHMsIGZvcmNlX21hbmlmZXN0X3VwZGF0ZT1rd2FyZ3NbIm1hbmlmZXN0X3VwZGF0ZSJdLAogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYW5pZmVzdF9kb3du
bG9hZD1rd2FyZ3NbIm1hbmlmZXN0X2Rvd25sb2FkIl0pLmxvYWQoKQogCiAgICAgbWFuaWZlc3Rf
ZmlsdGVycyA9IFtdCi0gICAgbWV0YV9maWx0ZXJzID0gW10KIAotICAgIGlmIGt3YXJnc1siaW5j
bHVkZSJdIG9yIGt3YXJnc1siZXhjbHVkZSJdIG9yIGt3YXJnc1siaW5jbHVkZV9tYW5pZmVzdCJd
OgorICAgIGlmIGt3YXJnc1siaW5jbHVkZSJdIG9yIGt3YXJnc1siZXhjbHVkZSJdIG9yIGt3YXJn
c1siaW5jbHVkZV9tYW5pZmVzdCJdIG9yIGt3YXJnc1siZGVmYXVsdF9leGNsdWRlIl06CiAgICAg
ICAgIG1hbmlmZXN0X2ZpbHRlcnMuYXBwZW5kKHRlc3Rsb2FkZXIuVGVzdEZpbHRlcihpbmNsdWRl
PWt3YXJnc1siaW5jbHVkZSJdLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgZXhjbHVkZT1rd2FyZ3NbImV4Y2x1ZGUiXSwKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hbmlmZXN0X3BhdGg9
a3dhcmdzWyJpbmNsdWRlX21hbmlmZXN0Il0sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0X21hbmlmZXN0cz10ZXN0X21hbmlmZXN0cykp
Ci0gICAgaWYga3dhcmdzWyJ0YWdzIl06Ci0gICAgICAgIG1ldGFfZmlsdGVycy5hcHBlbmQodGVz
dGxvYWRlci5UYWdGaWx0ZXIodGFncz1rd2FyZ3NbInRhZ3MiXSkpCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0X21hbmlmZXN0cz10ZXN0
X21hbmlmZXN0cywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGV4cGxpY2l0PWt3YXJnc1siZGVmYXVsdF9leGNsdWRlIl0pKQogCiAgICAgc3Ns
X2VuYWJsZWQgPSBzc2x1dGlscy5nZXRfY2xzKGt3YXJnc1sic3NsX3R5cGUiXSkuc3NsX2VuYWJs
ZWQKICAgICB0ZXN0X2xvYWRlciA9IHRlc3Rsb2FkZXIuVGVzdExvYWRlcih0ZXN0X21hbmlmZXN0
cywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrd2FyZ3NbInRlc3Rf
dHlwZXMiXSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBydW5faW5m
bywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYW5pZmVzdF9maWx0
ZXJzPW1hbmlmZXN0X2ZpbHRlcnMsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgbWV0YV9maWx0ZXJzPW1ldGFfZmlsdGVycywKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBjaHVua190eXBlPWt3YXJnc1siY2h1bmtfdHlwZSJdLAogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvdGFsX2NodW5rcz1rd2FyZ3NbInRv
dGFsX2NodW5rcyJdLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNo
dW5rX251bWJlcj1rd2FyZ3NbInRoaXNfY2h1bmsiXSwKQEAgLTg3LDcgKzg5LDcgQEAgZGVmIGxp
c3RfdGVzdF9ncm91cHModGVzdF9wYXRocywgcHJvZHVjdCwgKiprd2FyZ3MpOgogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcnVuX2luZm9fZXh0cmFzPXJ1bl9pbmZvX2V4
dHJhcywgKiprd2FyZ3MpCiAKICAgICBmb3IgaXRlbSBpbiBzb3J0ZWQodGVzdF9sb2FkZXIuZ3Jv
dXBzKGt3YXJnc1sidGVzdF90eXBlcyJdKSk6Ci0gICAgICAgIHByaW50IGl0ZW0KKyAgICAgICAg
cHJpbnQoaXRlbSkKIAogCiBkZWYgbGlzdF9kaXNhYmxlZCh0ZXN0X3BhdGhzLCBwcm9kdWN0LCAq
Kmt3YXJncyk6CkBAIC0xMDMsNyArMTA1LDcgQEAgZGVmIGxpc3RfZGlzYWJsZWQodGVzdF9wYXRo
cywgcHJvZHVjdCwgKiprd2FyZ3MpOgogICAgIGZvciB0ZXN0X3R5cGUsIHRlc3RzIGluIHRlc3Rf
bG9hZGVyLmRpc2FibGVkX3Rlc3RzLml0ZXJpdGVtcygpOgogICAgICAgICBmb3IgdGVzdCBpbiB0
ZXN0czoKICAgICAgICAgICAgIHJ2LmFwcGVuZCh7InRlc3QiOiB0ZXN0LmlkLCAicmVhc29uIjog
dGVzdC5kaXNhYmxlZCgpfSkKLSAgICBwcmludCBqc29uLmR1bXBzKHJ2LCBpbmRlbnQ9MikKKyAg
ICBwcmludChqc29uLmR1bXBzKHJ2LCBpbmRlbnQ9MikpCiAKIAogZGVmIGxpc3RfdGVzdHModGVz
dF9wYXRocywgcHJvZHVjdCwgKiprd2FyZ3MpOgpAQCAtMTE1LDQyICsxMTcsNDUgQEAgZGVmIGxp
c3RfdGVzdHModGVzdF9wYXRocywgcHJvZHVjdCwgKiprd2FyZ3MpOgogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgcnVuX2luZm9fZXh0cmFzPXJ1bl9pbmZvX2V4dHJhcywg
Kiprd2FyZ3MpCiAKICAgICBmb3IgdGVzdCBpbiB0ZXN0X2xvYWRlci50ZXN0X2lkczoKLSAgICAg
ICAgcHJpbnQgdGVzdAorICAgICAgICBwcmludCh0ZXN0KQogCiAKIGRlZiBnZXRfcGF1c2VfYWZ0
ZXJfdGVzdCh0ZXN0X2xvYWRlciwgKiprd2FyZ3MpOgotICAgIHRvdGFsX3Rlc3RzID0gc3VtKGxl
bihpdGVtKSBmb3IgaXRlbSBpbiB0ZXN0X2xvYWRlci50ZXN0cy5pdGVydmFsdWVzKCkpCiAgICAg
aWYga3dhcmdzWyJwYXVzZV9hZnRlcl90ZXN0Il0gaXMgTm9uZToKICAgICAgICAgaWYga3dhcmdz
WyJyZXBlYXRfdW50aWxfdW5leHBlY3RlZCJdOgogICAgICAgICAgICAgcmV0dXJuIEZhbHNlCi0g
ICAgICAgIGlmIGt3YXJnc1sicmVwZWF0Il0gPT0gMSBhbmQga3dhcmdzWyJyZXJ1biJdID09IDEg
YW5kIHRvdGFsX3Rlc3RzID09IDE6CisgICAgICAgIGlmIGt3YXJnc1siaGVhZGxlc3MiXToKKyAg
ICAgICAgICAgIHJldHVybiBGYWxzZQorICAgICAgICB0ZXN0cyA9IHRlc3RfbG9hZGVyLnRlc3Rz
CisgICAgICAgIGlzX3NpbmdsZV90ZXN0aGFybmVzcyA9IChzdW0obGVuKGl0ZW0pIGZvciBpdGVt
IGluIHRlc3RzLml0ZXJ2YWx1ZXMoKSkgPT0gMSBhbmQKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGxlbih0ZXN0cy5nZXQoInRlc3RoYXJuZXNzIiwgW10pKSA9PSAxKQorICAgICAg
ICBpZiBrd2FyZ3NbInJlcGVhdCJdID09IDEgYW5kIGt3YXJnc1sicmVydW4iXSA9PSAxIGFuZCBp
c19zaW5nbGVfdGVzdGhhcm5lc3M6CiAgICAgICAgICAgICByZXR1cm4gVHJ1ZQogICAgICAgICBy
ZXR1cm4gRmFsc2UKICAgICByZXR1cm4ga3dhcmdzWyJwYXVzZV9hZnRlcl90ZXN0Il0KIAogCiBk
ZWYgcnVuX3Rlc3RzKGNvbmZpZywgdGVzdF9wYXRocywgcHJvZHVjdCwgKiprd2FyZ3MpOgotICAg
IHdpdGggd3B0bG9nZ2luZy5DYXB0dXJlSU8obG9nZ2VyLCBub3Qga3dhcmdzWyJub19jYXB0dXJl
X3N0ZGlvIl0pOgorICAgICIiIlNldCB1cCB0aGUgdGVzdCBlbnZpcm9ubWVudCwgbG9hZCB0aGUg
bGlzdCBvZiB0ZXN0cyB0byBiZSBleGVjdXRlZCwgYW5kCisgICAgaW52b2tlIHRoZSByZW1haW5k
ZXIgb2YgdGhlIGNvZGUgdG8gZXhlY3V0ZSB0ZXN0cyIiIgorICAgIHdpdGggY2FwdHVyZS5DYXB0
dXJlSU8obG9nZ2VyLCBub3Qga3dhcmdzWyJub19jYXB0dXJlX3N0ZGlvIl0pOgogICAgICAgICBl
bnYuZG9fZGVsYXllZF9pbXBvcnRzKGxvZ2dlciwgdGVzdF9wYXRocykKIAotICAgICAgICAoY2hl
Y2tfYXJncywKLSAgICAgICAgIHRhcmdldF9icm93c2VyX2NscywgZ2V0X2Jyb3dzZXJfa3dhcmdz
LAotICAgICAgICAgZXhlY3V0b3JfY2xhc3NlcywgZ2V0X2V4ZWN1dG9yX2t3YXJncywKLSAgICAg
ICAgIGVudl9vcHRpb25zLCBnZXRfZW52X2V4dHJhcywgcnVuX2luZm9fZXh0cmFzKSA9IHByb2R1
Y3RzLmxvYWRfcHJvZHVjdChjb25maWcsIHByb2R1Y3QpCisgICAgICAgIHByb2R1Y3QgPSBwcm9k
dWN0cy5sb2FkX3Byb2R1Y3QoY29uZmlnLCBwcm9kdWN0LCBsb2FkX2Nscz1UcnVlKQogCi0gICAg
ICAgIGVudl9leHRyYXMgPSBnZXRfZW52X2V4dHJhcygqKmt3YXJncykKKyAgICAgICAgZW52X2V4
dHJhcyA9IHByb2R1Y3QuZ2V0X2Vudl9leHRyYXMoKiprd2FyZ3MpCiAKLSAgICAgICAgY2hlY2tf
YXJncygqKmt3YXJncykKKyAgICAgICAgcHJvZHVjdC5jaGVja19hcmdzKCoqa3dhcmdzKQogCiAg
ICAgICAgIGlmIGt3YXJnc1siaW5zdGFsbF9mb250cyJdOgogICAgICAgICAgICAgZW52X2V4dHJh
cy5hcHBlbmQoRm9udEluc3RhbGxlcigKICAgICAgICAgICAgICAgICBmb250X2Rpcj1rd2FyZ3Nb
ImZvbnRfZGlyIl0sCi0gICAgICAgICAgICAgICAgYWhlbT1vcy5wYXRoLmpvaW4oa3dhcmdzWyJ0
ZXN0c19yb290Il0sICJmb250cy9BaGVtLnR0ZiIpCisgICAgICAgICAgICAgICAgYWhlbT1vcy5w
YXRoLmpvaW4odGVzdF9wYXRoc1siLyJdWyJ0ZXN0c19wYXRoIl0sICJmb250cy9BaGVtLnR0ZiIp
CiAgICAgICAgICAgICApKQogCiAgICAgICAgIHJ1bl9pbmZvLCB0ZXN0X2xvYWRlciA9IGdldF9s
b2FkZXIodGVzdF9wYXRocywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBwcm9kdWN0LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHJ1bl9pbmZvX2V4dHJhcz1ydW5faW5mb19leHRyYXMoKiprd2FyZ3MpLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByb2R1Y3QubmFtZSwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBydW5faW5mb19leHRyYXM9cHJvZHVjdC5y
dW5faW5mb19leHRyYXMoKiprd2FyZ3MpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICoqa3dhcmdzKQogCiAgICAgICAgIHRlc3Rfc291cmNlX2t3YXJncyA9IHsi
cHJvY2Vzc2VzIjoga3dhcmdzWyJwcm9jZXNzZXMiXX0KQEAgLTE2Myw5ICsxNjgsMTYgQEAgZGVm
IHJ1bl90ZXN0cyhjb25maWcsIHRlc3RfcGF0aHMsIHByb2R1Y3QsICoqa3dhcmdzKToKIAogICAg
ICAgICBsb2dnZXIuaW5mbygiVXNpbmcgJWkgY2xpZW50IHByb2Nlc3NlcyIgJSBrd2FyZ3NbInBy
b2Nlc3NlcyJdKQogCisgICAgICAgIHNraXBwZWRfdGVzdHMgPSAwCiAgICAgICAgIHRlc3RfdG90
YWwgPSAwCiAgICAgICAgIHVuZXhwZWN0ZWRfdG90YWwgPSAwCiAKKyAgICAgICAgaWYgbGVuKHRl
c3RfbG9hZGVyLnRlc3RfaWRzKSA9PSAwIGFuZCBrd2FyZ3NbInRlc3RfbGlzdCJdOgorICAgICAg
ICAgICAgbG9nZ2VyLmNyaXRpY2FsKCJVbmFibGUgdG8gZmluZCBhbnkgdGVzdHMgYXQgdGhlIHBh
dGgocyk6IikKKyAgICAgICAgICAgIGZvciBwYXRoIGluIGt3YXJnc1sidGVzdF9saXN0Il06Cisg
ICAgICAgICAgICAgICAgbG9nZ2VyLmNyaXRpY2FsKCIgICVzIiAlIHBhdGgpCisgICAgICAgICAg
ICBsb2dnZXIuY3JpdGljYWwoIlBsZWFzZSBjaGVjayBzcGVsbGluZyBhbmQgbWFrZSBzdXJlIHRo
ZXJlIGFyZSB0ZXN0cyBpbiB0aGUgc3BlY2lmaWVkIHBhdGgocykuIikKKyAgICAgICAgICAgIHJl
dHVybiBGYWxzZQogICAgICAgICBrd2FyZ3NbInBhdXNlX2FmdGVyX3Rlc3QiXSA9IGdldF9wYXVz
ZV9hZnRlcl90ZXN0KHRlc3RfbG9hZGVyLCAqKmt3YXJncykKIAogICAgICAgICBzc2xfY29uZmln
ID0geyJ0eXBlIjoga3dhcmdzWyJzc2xfdHlwZSJdLApAQCAtMTc0LDEwICsxODYsMTMgQEAgZGVm
IHJ1bl90ZXN0cyhjb25maWcsIHRlc3RfcGF0aHMsIHByb2R1Y3QsICoqa3dhcmdzKToKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJob3N0X2NlcnRfcGF0aCI6IGt3YXJn
c1siaG9zdF9jZXJ0X3BhdGgiXSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICJjYV9jZXJ0X3BhdGgiOiBrd2FyZ3NbImNhX2NlcnRfcGF0aCJdfX0KIAorICAgICAgICB0
ZXN0aGFybmVzc190aW1lb3V0X211bHRpcGxlciA9IHByb2R1Y3QuZ2V0X3RpbWVvdXRfbXVsdGlw
bGllcigidGVzdGhhcm5lc3MiLCBydW5faW5mbywgKiprd2FyZ3MpCisKICAgICAgICAgd2l0aCBl
bnYuVGVzdEVudmlyb25tZW50KHRlc3RfcGF0aHMsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICB0ZXN0aGFybmVzc190aW1lb3V0X211bHRpcGxlciwKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGt3YXJnc1sicGF1c2VfYWZ0ZXJfdGVzdCJdLAogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAga3dhcmdzWyJkZWJ1Z19pbmZvIl0sCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBlbnZfb3B0aW9ucywKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHByb2R1Y3QuZW52X29wdGlvbnMsCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBzc2xfY29uZmlnLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW52
X2V4dHJhcykgYXMgdGVzdF9lbnZpcm9ubWVudDoKICAgICAgICAgICAgIHRyeToKQEAgLTE5OSw3
ICsyMTQsOSBAQCBkZWYgcnVuX3Rlc3RzKGNvbmZpZywgdGVzdF9wYXRocywgcHJvZHVjdCwgKipr
d2FyZ3MpOgogCiAgICAgICAgICAgICAgICAgdGVzdF9jb3VudCA9IDAKICAgICAgICAgICAgICAg
ICB1bmV4cGVjdGVkX2NvdW50ID0gMAotICAgICAgICAgICAgICAgIGxvZ2dlci5zdWl0ZV9zdGFy
dCh0ZXN0X2xvYWRlci50ZXN0X2lkcywgbmFtZT0nd2ViLXBsYXRmb3JtLXRlc3QnLCBydW5faW5m
bz1ydW5faW5mbywKKyAgICAgICAgICAgICAgICBsb2dnZXIuc3VpdGVfc3RhcnQodGVzdF9sb2Fk
ZXIudGVzdF9pZHMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU9J3dl
Yi1wbGF0Zm9ybS10ZXN0JywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcnVu
X2luZm89cnVuX2luZm8sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4dHJh
PXsicnVuX2J5X2RpciI6IGt3YXJnc1sicnVuX2J5X2RpciJdfSkKICAgICAgICAgICAgICAgICBm
b3IgdGVzdF90eXBlIGluIGt3YXJnc1sidGVzdF90eXBlcyJdOgogICAgICAgICAgICAgICAgICAg
ICBsb2dnZXIuaW5mbygiUnVubmluZyAlcyB0ZXN0cyIgJSB0ZXN0X3R5cGUpCkBAIC0yMTIsMzYg
KzIyOSwzOCBAQCBkZWYgcnVuX3Rlc3RzKGNvbmZpZywgdGVzdF9wYXRocywgcHJvZHVjdCwgKipr
d2FyZ3MpOgogICAgICAgICAgICAgICAgICAgICBpZiB0ZXN0X3R5cGUgPT0gIndkc3BlYyI6CiAg
ICAgICAgICAgICAgICAgICAgICAgICBicm93c2VyX2NscyA9IE51bGxCcm93c2VyCiAgICAgICAg
ICAgICAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAgICAgICAgICAgICBicm93c2VyX2NscyA9
IHRhcmdldF9icm93c2VyX2NscworICAgICAgICAgICAgICAgICAgICAgICAgYnJvd3Nlcl9jbHMg
PSBwcm9kdWN0LmJyb3dzZXJfY2xzCiAKLSAgICAgICAgICAgICAgICAgICAgYnJvd3Nlcl9rd2Fy
Z3MgPSBnZXRfYnJvd3Nlcl9rd2FyZ3ModGVzdF90eXBlLAotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBydW5faW5mbywKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uZmlnPXRlc3Rf
ZW52aXJvbm1lbnQuY29uZmlnLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAqKmt3YXJncykKKyAgICAgICAgICAgICAgICAgICAgYnJvd3Nl
cl9rd2FyZ3MgPSBwcm9kdWN0LmdldF9icm93c2VyX2t3YXJncyh0ZXN0X3R5cGUsCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
cnVuX2luZm8sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgY29uZmlnPXRlc3RfZW52aXJvbm1lbnQuY29uZmlnLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICoqa3dhcmdzKQogCi0gICAgICAgICAgICAgICAgICAgIGV4ZWN1dG9yX2NscyA9IGV4ZWN1dG9y
X2NsYXNzZXMuZ2V0KHRlc3RfdHlwZSkKLSAgICAgICAgICAgICAgICAgICAgZXhlY3V0b3Jfa3dh
cmdzID0gZ2V0X2V4ZWN1dG9yX2t3YXJncyh0ZXN0X3R5cGUsCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGVzdF9lbnZpcm9ubWVudC5j
b25maWcsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgdGVzdF9lbnZpcm9ubWVudC5jYWNoZV9tYW5hZ2VyLAotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJ1bl9pbmZvLAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoq
a3dhcmdzKQorICAgICAgICAgICAgICAgICAgICBleGVjdXRvcl9jbHMgPSBwcm9kdWN0LmV4ZWN1
dG9yX2NsYXNzZXMuZ2V0KHRlc3RfdHlwZSkKKyAgICAgICAgICAgICAgICAgICAgZXhlY3V0b3Jf
a3dhcmdzID0gcHJvZHVjdC5nZXRfZXhlY3V0b3Jfa3dhcmdzKHRlc3RfdHlwZSwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHRlc3RfZW52aXJvbm1lbnQuY29uZmlnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGVzdF9lbnZpcm9ubWVudC5jYWNo
ZV9tYW5hZ2VyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgcnVuX2luZm8sCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKmt3YXJncykKIAogICAg
ICAgICAgICAgICAgICAgICBpZiBleGVjdXRvcl9jbHMgaXMgTm9uZToKICAgICAgICAgICAgICAg
ICAgICAgICAgIGxvZ2dlci5lcnJvcigiVW5zdXBwb3J0ZWQgdGVzdCB0eXBlICVzIGZvciBwcm9k
dWN0ICVzIiAlCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHRlc3RfdHlw
ZSwgcHJvZHVjdCkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHRlc3Rf
dHlwZSwgcHJvZHVjdC5uYW1lKSkKICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlCiAK
ICAgICAgICAgICAgICAgICAgICAgZm9yIHRlc3QgaW4gdGVzdF9sb2FkZXIuZGlzYWJsZWRfdGVz
dHNbdGVzdF90eXBlXToKICAgICAgICAgICAgICAgICAgICAgICAgIGxvZ2dlci50ZXN0X3N0YXJ0
KHRlc3QuaWQpCiAgICAgICAgICAgICAgICAgICAgICAgICBsb2dnZXIudGVzdF9lbmQodGVzdC5p
ZCwgc3RhdHVzPSJTS0lQIikKKyAgICAgICAgICAgICAgICAgICAgICAgIHNraXBwZWRfdGVzdHMg
Kz0gMQogCiAgICAgICAgICAgICAgICAgICAgIGlmIHRlc3RfdHlwZSA9PSAidGVzdGhhcm5lc3Mi
OgogICAgICAgICAgICAgICAgICAgICAgICAgcnVuX3Rlc3RzID0geyJ0ZXN0aGFybmVzcyI6IFtd
fQogICAgICAgICAgICAgICAgICAgICAgICAgZm9yIHRlc3QgaW4gdGVzdF9sb2FkZXIudGVzdHNb
InRlc3RoYXJuZXNzIl06Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRlc3QudGVz
dGRyaXZlciBhbmQgbm90IGV4ZWN1dG9yX2Nscy5zdXBwb3J0c190ZXN0ZHJpdmVyKSBvciAoCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0Lmpzc2hlbGwgYW5kIG5vdCBl
eGVjdXRvcl9jbHMuc3VwcG9ydHNfanNzaGVsbCk6CisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgaWYgKCh0ZXN0LnRlc3Rkcml2ZXIgYW5kIG5vdCBleGVjdXRvcl9jbHMuc3VwcG9ydHNfdGVz
dGRyaXZlcikgb3IKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHRlc3QuanNzaGVs
bCBhbmQgbm90IGV4ZWN1dG9yX2Nscy5zdXBwb3J0c19qc3NoZWxsKSk6CiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGxvZ2dlci50ZXN0X3N0YXJ0KHRlc3QuaWQpCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGxvZ2dlci50ZXN0X2VuZCh0ZXN0LmlkLCBzdGF0dXM9IlNL
SVAiKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBza2lwcGVkX3Rlc3RzICs9IDEK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlOgogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBydW5fdGVzdHNbInRlc3RoYXJuZXNzIl0uYXBwZW5kKHRlc3QpCiAgICAgICAg
ICAgICAgICAgICAgIGVsc2U6CkBAIC0yNTksMjYgKzI3OCwzNiBAQCBkZWYgcnVuX3Rlc3RzKGNv
bmZpZywgdGVzdF9wYXRocywgcHJvZHVjdCwgKiprd2FyZ3MpOgogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBrd2FyZ3NbInBhdXNlX2FmdGVyX3Rlc3QiXSwKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga3dhcmdzWyJwYXVzZV9vbl91bmV4cGVjdGVk
Il0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGt3YXJnc1sicmVzdGFy
dF9vbl91bmV4cGVjdGVkIl0sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGt3YXJnc1siZGVidWdfaW5mbyJdKSBhcyBtYW5hZ2VyX2dyb3VwOgorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBrd2FyZ3NbImRlYnVnX2luZm8iXSwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgbm90IGt3YXJnc1sibm9fY2FwdHVyZV9zdGRpbyJd
KSBhcyBtYW5hZ2VyX2dyb3VwOgogICAgICAgICAgICAgICAgICAgICAgICAgdHJ5OgogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIG1hbmFnZXJfZ3JvdXAucnVuKHRlc3RfdHlwZSwgcnVuX3Rl
c3RzKQogICAgICAgICAgICAgICAgICAgICAgICAgZXhjZXB0IEtleWJvYXJkSW50ZXJydXB0Ogog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvZ2dlci5jcml0aWNhbCgiTWFpbiB0aHJlYWQg
Z290IHNpZ25hbCIpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFuYWdlcl9ncm91cC5z
dG9wKCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICByYWlzZQotICAgICAgICAgICAgICAg
ICAgICB0ZXN0X2NvdW50ICs9IG1hbmFnZXJfZ3JvdXAudGVzdF9jb3VudCgpCi0gICAgICAgICAg
ICAgICAgICAgIHVuZXhwZWN0ZWRfY291bnQgKz0gbWFuYWdlcl9ncm91cC51bmV4cGVjdGVkX2Nv
dW50KCkKKyAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RfY291bnQgKz0gbWFuYWdlcl9ncm91
cC50ZXN0X2NvdW50KCkKKyAgICAgICAgICAgICAgICAgICAgICAgIHVuZXhwZWN0ZWRfY291bnQg
Kz0gbWFuYWdlcl9ncm91cC51bmV4cGVjdGVkX2NvdW50KCkKIAogICAgICAgICAgICAgICAgIHRl
c3RfdG90YWwgKz0gdGVzdF9jb3VudAogICAgICAgICAgICAgICAgIHVuZXhwZWN0ZWRfdG90YWwg
Kz0gdW5leHBlY3RlZF9jb3VudAogICAgICAgICAgICAgICAgIGxvZ2dlci5pbmZvKCJHb3QgJWkg
dW5leHBlY3RlZCByZXN1bHRzIiAlIHVuZXhwZWN0ZWRfY291bnQpCisgICAgICAgICAgICAgICAg
bG9nZ2VyLnN1aXRlX2VuZCgpCiAgICAgICAgICAgICAgICAgaWYgcmVwZWF0X3VudGlsX3VuZXhw
ZWN0ZWQgYW5kIHVuZXhwZWN0ZWRfdG90YWwgPiAwOgogICAgICAgICAgICAgICAgICAgICBicmVh
awotICAgICAgICAgICAgICAgIGxvZ2dlci5zdWl0ZV9lbmQoKQorICAgICAgICAgICAgICAgIGlm
IHJlcGVhdF9jb3VudCA9PSAxIGFuZCBsZW4odGVzdF9sb2FkZXIudGVzdF9pZHMpID09IHNraXBw
ZWRfdGVzdHM6CisgICAgICAgICAgICAgICAgICAgIGJyZWFrCiAKICAgICBpZiB0ZXN0X3RvdGFs
ID09IDA6Ci0gICAgICAgIGxvZ2dlci5lcnJvcigiTm8gdGVzdHMgcmFuIikKLSAgICAgICAgcmV0
dXJuIEZhbHNlCisgICAgICAgIGlmIHNraXBwZWRfdGVzdHMgPiAwOgorICAgICAgICAgICAgbG9n
Z2VyLndhcm5pbmcoIkFsbCByZXF1ZXN0ZWQgdGVzdHMgd2VyZSBza2lwcGVkIikKKyAgICAgICAg
ZWxzZToKKyAgICAgICAgICAgIGlmIGt3YXJnc1siZGVmYXVsdF9leGNsdWRlIl06CisgICAgICAg
ICAgICAgICAgbG9nZ2VyLmluZm8oIk5vIHRlc3RzIHJhbiIpCisgICAgICAgICAgICAgICAgcmV0
dXJuIFRydWUKKyAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgbG9nZ2VyLmNyaXRp
Y2FsKCJObyB0ZXN0cyByYW4iKQorICAgICAgICAgICAgICAgIHJldHVybiBGYWxzZQogCiAgICAg
aWYgdW5leHBlY3RlZF90b3RhbCBhbmQgbm90IGt3YXJnc1siZmFpbF9vbl91bmV4cGVjdGVkIl06
CiAgICAgICAgIGxvZ2dlci5pbmZvKCJUb2xlcmF0aW5nICVzIHVuZXhwZWN0ZWQgcmVzdWx0cyIg
JSB1bmV4cGVjdGVkX3RvdGFsKQpAQCAtMzA3LDE2ICszMzYsMjcgQEAgZGVmIGNoZWNrX3N0YWJp
bGl0eSgqKmt3YXJncyk6CiAKIAogZGVmIHN0YXJ0KCoqa3dhcmdzKToKLSAgICBpZiBrd2FyZ3Nb
Imxpc3RfdGVzdF9ncm91cHMiXToKLSAgICAgICAgbGlzdF90ZXN0X2dyb3VwcygqKmt3YXJncykK
LSAgICBlbGlmIGt3YXJnc1sibGlzdF9kaXNhYmxlZCJdOgotICAgICAgICBsaXN0X2Rpc2FibGVk
KCoqa3dhcmdzKQotICAgIGVsaWYga3dhcmdzWyJsaXN0X3Rlc3RzIl06Ci0gICAgICAgIGxpc3Rf
dGVzdHMoKiprd2FyZ3MpCi0gICAgZWxpZiBrd2FyZ3NbInZlcmlmeSJdIG9yIGt3YXJnc1sic3Rh
YmlsaXR5Il06Ci0gICAgICAgIGNoZWNrX3N0YWJpbGl0eSgqKmt3YXJncykKLSAgICBlbHNlOgot
ICAgICAgICByZXR1cm4gbm90IHJ1bl90ZXN0cygqKmt3YXJncykKKyAgICBhc3NlcnQgbG9nZ2Vy
IGlzIG5vdCBOb25lCisKKyAgICBsb2dnZWRfY3JpdGljYWwgPSB3cHRsb2dnaW5nLkxvZ2dlZEFi
b3ZlTGV2ZWxIYW5kbGVyKCJDUklUSUNBTCIpCisgICAgaGFuZGxlciA9IGhhbmRsZXJzLkxvZ0xl
dmVsRmlsdGVyKGxvZ2dlZF9jcml0aWNhbCwgIkNSSVRJQ0FMIikKKyAgICBsb2dnZXIuYWRkX2hh
bmRsZXIoaGFuZGxlcikKKworICAgIHJ2ID0gRmFsc2UKKyAgICB0cnk6CisgICAgICAgIGlmIGt3
YXJnc1sibGlzdF90ZXN0X2dyb3VwcyJdOgorICAgICAgICAgICAgbGlzdF90ZXN0X2dyb3Vwcygq
Kmt3YXJncykKKyAgICAgICAgZWxpZiBrd2FyZ3NbImxpc3RfZGlzYWJsZWQiXToKKyAgICAgICAg
ICAgIGxpc3RfZGlzYWJsZWQoKiprd2FyZ3MpCisgICAgICAgIGVsaWYga3dhcmdzWyJsaXN0X3Rl
c3RzIl06CisgICAgICAgICAgICBsaXN0X3Rlc3RzKCoqa3dhcmdzKQorICAgICAgICBlbGlmIGt3
YXJnc1sidmVyaWZ5Il0gb3Iga3dhcmdzWyJzdGFiaWxpdHkiXToKKyAgICAgICAgICAgIHJ2ID0g
Y2hlY2tfc3RhYmlsaXR5KCoqa3dhcmdzKSBvciBsb2dnZWRfY3JpdGljYWwuaGFzX2xvZworICAg
ICAgICBlbHNlOgorICAgICAgICAgICAgcnYgPSBub3QgcnVuX3Rlc3RzKCoqa3dhcmdzKSBvciBs
b2dnZWRfY3JpdGljYWwuaGFzX2xvZworICAgIGZpbmFsbHk6CisgICAgICAgIGxvZ2dlci5yZW1v
dmVfaGFuZGxlcihoYW5kbGVyKQorICAgIHJldHVybiBydgogCiAKIGRlZiBtYWluKCk6CkBAIC0z
MzQsNyArMzc0LDcgQEAgZGVmIG1haW4oKToKICAgICAgICAgaWYga3dhcmdzWyJwZGIiXToKICAg
ICAgICAgICAgIGltcG9ydCBwZGIKICAgICAgICAgICAgIGltcG9ydCB0cmFjZWJhY2sKLSAgICAg
ICAgICAgIHByaW50IHRyYWNlYmFjay5mb3JtYXRfZXhjKCkKKyAgICAgICAgICAgIHByaW50KHRy
YWNlYmFjay5mb3JtYXRfZXhjKCkpCiAgICAgICAgICAgICBwZGIucG9zdF9tb3J0ZW0oKQogICAg
ICAgICBlbHNlOgogICAgICAgICAgICAgcmFpc2UKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0cnVubmVyL3dwdHJ1bm5lci93
cHR0ZXN0LnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy93cHRydW5uZXIvd3B0cnVubmVyL3dwdHRlc3QucHkKaW5kZXggYzI5YmE5NzRhOTk3ODZm
Njg3ZjJhZWFkMWJhMTQwNDVjMTJmYjY0My4uMTllODM5ZDIxYmNjOGZjNDAwYmJmMmFkOTI4OWYw
MzU5YmZhMmYxZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIvd3B0cnVubmVyL3dwdHRlc3QucHkKKysrIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRydW5uZXIv
d3B0cnVubmVyL3dwdHRlc3QucHkKQEAgLTEsMjAgKzEsMjggQEAKIGltcG9ydCBvcwogaW1wb3J0
IHN1YnByb2Nlc3MKK2Zyb20gc2l4Lm1vdmVzLnVybGxpYi5wYXJzZSBpbXBvcnQgdXJsam9pbgog
ZnJvbSBjb2xsZWN0aW9ucyBpbXBvcnQgZGVmYXVsdGRpY3QKIAotZnJvbSB3cHRtYW5pZmVzdC5w
YXJzZXIgaW1wb3J0IGF0b21zCitmcm9tIC53cHRtYW5pZmVzdC5wYXJzZXIgaW1wb3J0IGF0b21z
CiAKIGF0b21fcmVzZXQgPSBhdG9tc1siUmVzZXQiXQotZW5hYmxlZF90ZXN0cyA9IHNldChbInRl
c3RoYXJuZXNzIiwgInJlZnRlc3QiLCAid2RzcGVjIl0pCitlbmFibGVkX3Rlc3RzID0geyJ0ZXN0
aGFybmVzcyIsICJyZWZ0ZXN0IiwgIndkc3BlYyJ9CiAKIAogY2xhc3MgUmVzdWx0KG9iamVjdCk6
Ci0gICAgZGVmIF9faW5pdF9fKHNlbGYsIHN0YXR1cywgbWVzc2FnZSwgZXhwZWN0ZWQ9Tm9uZSwg
ZXh0cmE9Tm9uZSwgc3RhY2s9Tm9uZSk6CisgICAgZGVmIF9faW5pdF9fKHNlbGYsCisgICAgICAg
ICAgICAgICAgIHN0YXR1cywKKyAgICAgICAgICAgICAgICAgbWVzc2FnZSwKKyAgICAgICAgICAg
ICAgICAgZXhwZWN0ZWQ9Tm9uZSwKKyAgICAgICAgICAgICAgICAgZXh0cmE9Tm9uZSwKKyAgICAg
ICAgICAgICAgICAgc3RhY2s9Tm9uZSwKKyAgICAgICAgICAgICAgICAga25vd25faW50ZXJtaXR0
ZW50PU5vbmUpOgogICAgICAgICBpZiBzdGF0dXMgbm90IGluIHNlbGYuc3RhdHVzZXM6CiAgICAg
ICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJVbnJlY29nbmlzZWQgc3RhdHVzICVzIiAlIHN0YXR1
cykKICAgICAgICAgc2VsZi5zdGF0dXMgPSBzdGF0dXMKICAgICAgICAgc2VsZi5tZXNzYWdlID0g
bWVzc2FnZQogICAgICAgICBzZWxmLmV4cGVjdGVkID0gZXhwZWN0ZWQKKyAgICAgICAgc2VsZi5r
bm93bl9pbnRlcm1pdHRlbnQgPSBrbm93bl9pbnRlcm1pdHRlbnQgaWYga25vd25faW50ZXJtaXR0
ZW50IGlzIG5vdCBOb25lIGVsc2UgW10KICAgICAgICAgc2VsZi5leHRyYSA9IGV4dHJhIGlmIGV4
dHJhIGlzIG5vdCBOb25lIGVsc2Uge30KICAgICAgICAgc2VsZi5zdGFjayA9IHN0YWNrCiAKQEAg
LTIzLDcgKzMxLDcgQEAgY2xhc3MgUmVzdWx0KG9iamVjdCk6CiAKIAogY2xhc3MgU3VidGVzdFJl
c3VsdChvYmplY3QpOgotICAgIGRlZiBfX2luaXRfXyhzZWxmLCBuYW1lLCBzdGF0dXMsIG1lc3Nh
Z2UsIHN0YWNrPU5vbmUsIGV4cGVjdGVkPU5vbmUpOgorICAgIGRlZiBfX2luaXRfXyhzZWxmLCBu
YW1lLCBzdGF0dXMsIG1lc3NhZ2UsIHN0YWNrPU5vbmUsIGV4cGVjdGVkPU5vbmUsIGtub3duX2lu
dGVybWl0dGVudD1Ob25lKToKICAgICAgICAgc2VsZi5uYW1lID0gbmFtZQogICAgICAgICBpZiBz
dGF0dXMgbm90IGluIHNlbGYuc3RhdHVzZXM6CiAgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9y
KCJVbnJlY29nbmlzZWQgc3RhdHVzICVzIiAlIHN0YXR1cykKQEAgLTMxLDYgKzM5LDcgQEAgY2xh
c3MgU3VidGVzdFJlc3VsdChvYmplY3QpOgogICAgICAgICBzZWxmLm1lc3NhZ2UgPSBtZXNzYWdl
CiAgICAgICAgIHNlbGYuc3RhY2sgPSBzdGFjawogICAgICAgICBzZWxmLmV4cGVjdGVkID0gZXhw
ZWN0ZWQKKyAgICAgICAgc2VsZi5rbm93bl9pbnRlcm1pdHRlbnQgPSBrbm93bl9pbnRlcm1pdHRl
bnQgaWYga25vd25faW50ZXJtaXR0ZW50IGlzIG5vdCBOb25lIGVsc2UgW10KIAogICAgIGRlZiBf
X3JlcHJfXyhzZWxmKToKICAgICAgICAgcmV0dXJuICI8JXMuJXMgJXMgJXM+IiAlIChzZWxmLl9f
bW9kdWxlX18sIHNlbGYuX19jbGFzc19fLl9fbmFtZV9fLCBzZWxmLm5hbWUsIHNlbGYuc3RhdHVz
KQpAQCAtMzgsMjggKzQ3LDI4IEBAIGNsYXNzIFN1YnRlc3RSZXN1bHQob2JqZWN0KToKIAogY2xh
c3MgVGVzdGhhcm5lc3NSZXN1bHQoUmVzdWx0KToKICAgICBkZWZhdWx0X2V4cGVjdGVkID0gIk9L
IgotICAgIHN0YXR1c2VzID0gc2V0KFsiT0siLCAiRVJST1IiLCAiSU5URVJOQUwtRVJST1IiLCAi
VElNRU9VVCIsICJFWFRFUk5BTC1USU1FT1VUIiwgIkNSQVNIIl0pCisgICAgc3RhdHVzZXMgPSB7
Ik9LIiwgIkVSUk9SIiwgIklOVEVSTkFMLUVSUk9SIiwgIlRJTUVPVVQiLCAiRVhURVJOQUwtVElN
RU9VVCIsICJDUkFTSCIsICJQUkVDT05ESVRJT05fRkFJTEVEIn0KIAogCiBjbGFzcyBUZXN0aGFy
bmVzc1N1YnRlc3RSZXN1bHQoU3VidGVzdFJlc3VsdCk6CiAgICAgZGVmYXVsdF9leHBlY3RlZCA9
ICJQQVNTIgotICAgIHN0YXR1c2VzID0gc2V0KFsiUEFTUyIsICJGQUlMIiwgIlRJTUVPVVQiLCAi
Tk9UUlVOIl0pCisgICAgc3RhdHVzZXMgPSB7IlBBU1MiLCAiRkFJTCIsICJUSU1FT1VUIiwgIk5P
VFJVTiIsICJQUkVDT05ESVRJT05fRkFJTEVEIn0KIAogCiBjbGFzcyBSZWZ0ZXN0UmVzdWx0KFJl
c3VsdCk6CiAgICAgZGVmYXVsdF9leHBlY3RlZCA9ICJQQVNTIgotICAgIHN0YXR1c2VzID0gc2V0
KFsiUEFTUyIsICJGQUlMIiwgIkVSUk9SIiwgIklOVEVSTkFMLUVSUk9SIiwgIlRJTUVPVVQiLCAi
RVhURVJOQUwtVElNRU9VVCIsCi0gICAgICAgICAgICAgICAgICAgICJDUkFTSCJdKQorICAgIHN0
YXR1c2VzID0geyJQQVNTIiwgIkZBSUwiLCAiRVJST1IiLCAiSU5URVJOQUwtRVJST1IiLCAiVElN
RU9VVCIsICJFWFRFUk5BTC1USU1FT1VUIiwKKyAgICAgICAgICAgICAgICAiQ1JBU0gifQogCiAK
IGNsYXNzIFdkc3BlY1Jlc3VsdChSZXN1bHQpOgogICAgIGRlZmF1bHRfZXhwZWN0ZWQgPSAiT0si
Ci0gICAgc3RhdHVzZXMgPSBzZXQoWyJPSyIsICJFUlJPUiIsICJJTlRFUk5BTC1FUlJPUiIsICJU
SU1FT1VUIiwgIkVYVEVSTkFMLVRJTUVPVVQiLCAiQ1JBU0giXSkKKyAgICBzdGF0dXNlcyA9IHsi
T0siLCAiRVJST1IiLCAiSU5URVJOQUwtRVJST1IiLCAiVElNRU9VVCIsICJFWFRFUk5BTC1USU1F
T1VUIiwgIkNSQVNIIn0KIAogCiBjbGFzcyBXZHNwZWNTdWJ0ZXN0UmVzdWx0KFN1YnRlc3RSZXN1
bHQpOgogICAgIGRlZmF1bHRfZXhwZWN0ZWQgPSAiUEFTUyIKLSAgICBzdGF0dXNlcyA9IHNldChb
IlBBU1MiLCAiRkFJTCIsICJFUlJPUiJdKQorICAgIHN0YXR1c2VzID0geyJQQVNTIiwgIkZBSUwi
LCAiRVJST1IifQogCiAKIGRlZiBnZXRfcnVuX2luZm8obWV0YWRhdGFfcm9vdCwgcHJvZHVjdCwg
Kiprd2FyZ3MpOgpAQCAtNjcsNyArNzYsMTIgQEAgZGVmIGdldF9ydW5faW5mbyhtZXRhZGF0YV9y
b290LCBwcm9kdWN0LCAqKmt3YXJncyk6CiAKIAogY2xhc3MgUnVuSW5mbyhkaWN0KToKLSAgICBk
ZWYgX19pbml0X18oc2VsZiwgbWV0YWRhdGFfcm9vdCwgcHJvZHVjdCwgZGVidWcsIGJyb3dzZXJf
dmVyc2lvbj1Ob25lLCBleHRyYXM9Tm9uZSk6CisgICAgZGVmIF9faW5pdF9fKHNlbGYsIG1ldGFk
YXRhX3Jvb3QsIHByb2R1Y3QsIGRlYnVnLAorICAgICAgICAgICAgICAgICBicm93c2VyX3ZlcnNp
b249Tm9uZSwKKyAgICAgICAgICAgICAgICAgYnJvd3Nlcl9jaGFubmVsPU5vbmUsCisgICAgICAg
ICAgICAgICAgIHZlcmlmeT1Ob25lLAorICAgICAgICAgICAgICAgICBleHRyYXM9Tm9uZSwKKyAg
ICAgICAgICAgICAgICAgZW5hYmxlX3dlYnJlbmRlcj1GYWxzZSk6CiAgICAgICAgIGltcG9ydCBt
b3ppbmZvCiAgICAgICAgIHNlbGYuX3VwZGF0ZV9tb3ppbmZvKG1ldGFkYXRhX3Jvb3QpCiAgICAg
ICAgIHNlbGYudXBkYXRlKG1vemluZm8uaW5mbykKQEAgLTg5LDkgKzEwMywzMSBAQCBjbGFzcyBS
dW5JbmZvKGRpY3QpOgogICAgICAgICAgICAgc2VsZlsiZGVidWciXSA9IEZhbHNlCiAgICAgICAg
IGlmIGJyb3dzZXJfdmVyc2lvbjoKICAgICAgICAgICAgIHNlbGZbImJyb3dzZXJfdmVyc2lvbiJd
ID0gYnJvd3Nlcl92ZXJzaW9uCisgICAgICAgIGlmIGJyb3dzZXJfY2hhbm5lbDoKKyAgICAgICAg
ICAgIHNlbGZbImJyb3dzZXJfY2hhbm5lbCJdID0gYnJvd3Nlcl9jaGFubmVsCisKKyAgICAgICAg
c2VsZlsidmVyaWZ5Il0gPSB2ZXJpZnkKKyAgICAgICAgaWYgIndhc20iIG5vdCBpbiBzZWxmOgor
ICAgICAgICAgICAgc2VsZlsid2FzbSJdID0gRmFsc2UKICAgICAgICAgaWYgZXh0cmFzIGlzIG5v
dCBOb25lOgogICAgICAgICAgICAgc2VsZi51cGRhdGUoZXh0cmFzKQogCisgICAgICAgICMgVW50
aWwgdGhlIHRlc3QgaGFybmVzcyBjYW4gdW5kZXJzdGFuZCBkZWZhdWx0IHByZWYgdmFsdWVzLAor
ICAgICAgICAjIChodHRwczovL2J1Z3ppbGxhLm1vemlsbGEub3JnL3Nob3dfYnVnLmNnaT9pZD0x
NTc3OTEyKSB0aGlzIHZhbHVlCisgICAgICAgICMgc2hvdWxkIGJ5IHN5bmNocm9uaXplZCB3aXRo
IHRoZSBkZWZhdWx0IHByZWYgdmFsdWUgaW5kaWNhdGVkIGluCisgICAgICAgICMgU3RhdGljUHJl
Zkxpc3QueWFtbC4KKyAgICAgICAgIworICAgICAgICAjIEN1cnJlbnRseSBmb3IgYXV0b21hdGlv
biwgdGhlIHByZWYgKGFuZCBgc3ctZTEwc2ApIGRlZmF1bHRzIHRvIHRydWUgaW4KKyAgICAgICAg
IyBuaWdodGx5IGJ1aWxkcyBhbmQgZmFsc2Ugb3RoZXJ3aXNlIGJ1dCBjYW4gYmUgb3ZlcnJpZGRl
biB3aXRoCisgICAgICAgICMgYC0tc2V0cHJlZmAuIElmIG92ZXJyaWRkZW4sIHRoZSB2YWx1ZSB3
b3VsZCBiZSBpbml0aWFsaXplZCBpbgorICAgICAgICAjIGBydW5faW5mb19leHRyYXNgIGFuZCBi
ZSBzdXBwbGllZCBpbiB0aGUgYGV4dHJhc2AgcGFyYW1ldGVyLgorICAgICAgICBpZiAic3ctZTEw
cyIgbm90IGluIHNlbGY6CisgICAgICAgICAgICBzZWxmWyJzdy1lMTBzIl0gPSBzZWxmLmdldCgi
bmlnaHRseV9idWlsZCIsIEZhbHNlKQorCisgICAgICAgIHNlbGZbImhlYWRsZXNzIl0gPSBleHRy
YXMuZ2V0KCJoZWFkbGVzcyIsIEZhbHNlKQorICAgICAgICBzZWxmWyJ3ZWJyZW5kZXIiXSA9IGVu
YWJsZV93ZWJyZW5kZXIKKworCiAgICAgZGVmIF91cGRhdGVfbW96aW5mbyhzZWxmLCBtZXRhZGF0
YV9yb290KToKICAgICAgICAgIiIiQWRkIGV4dHJhIGJ1aWxkIGluZm9ybWF0aW9uIGZyb20gYSBt
b3ppbmZvLmpzb24gZmlsZSBpbiBhIHBhcmVudAogICAgICAgICBkaXJlY3RvcnkiIiIKQEAgLTEz
NiwxNSArMTcyLDE1IEBAIGNsYXNzIFRlc3Qob2JqZWN0KToKICAgICAgICAgcmV0dXJuIG1ldGFk
YXRhCiAKICAgICBAY2xhc3NtZXRob2QKLSAgICBkZWYgZnJvbV9tYW5pZmVzdChjbHMsIG1hbmlm
ZXN0X2l0ZW0sIGluaGVyaXRfbWV0YWRhdGEsIHRlc3RfbWV0YWRhdGEpOgorICAgIGRlZiBmcm9t
X21hbmlmZXN0KGNscywgbWFuaWZlc3RfZmlsZSwgbWFuaWZlc3RfaXRlbSwgaW5oZXJpdF9tZXRh
ZGF0YSwgdGVzdF9tZXRhZGF0YSk6CiAgICAgICAgIHRpbWVvdXQgPSBjbHMubG9uZ190aW1lb3V0
IGlmIG1hbmlmZXN0X2l0ZW0udGltZW91dCA9PSAibG9uZyIgZWxzZSBjbHMuZGVmYXVsdF90aW1l
b3V0CiAgICAgICAgIHByb3RvY29sID0gImh0dHBzIiBpZiBoYXNhdHRyKG1hbmlmZXN0X2l0ZW0s
ICJodHRwcyIpIGFuZCBtYW5pZmVzdF9pdGVtLmh0dHBzIGVsc2UgImh0dHAiCi0gICAgICAgIHJl
dHVybiBjbHMobWFuaWZlc3RfaXRlbS5zb3VyY2VfZmlsZS50ZXN0c19yb290LAorICAgICAgICBy
ZXR1cm4gY2xzKG1hbmlmZXN0X2ZpbGUudGVzdHNfcm9vdCwKICAgICAgICAgICAgICAgICAgICBt
YW5pZmVzdF9pdGVtLnVybCwKICAgICAgICAgICAgICAgICAgICBpbmhlcml0X21ldGFkYXRhLAog
ICAgICAgICAgICAgICAgICAgIHRlc3RfbWV0YWRhdGEsCiAgICAgICAgICAgICAgICAgICAgdGlt
ZW91dD10aW1lb3V0LAotICAgICAgICAgICAgICAgICAgIHBhdGg9bWFuaWZlc3RfaXRlbS5zb3Vy
Y2VfZmlsZS5wYXRoLAorICAgICAgICAgICAgICAgICAgIHBhdGg9b3MucGF0aC5qb2luKG1hbmlm
ZXN0X2ZpbGUudGVzdHNfcm9vdCwgbWFuaWZlc3RfaXRlbS5wYXRoKSwKICAgICAgICAgICAgICAg
ICAgICBwcm90b2NvbD1wcm90b2NvbCkKIAogICAgIEBwcm9wZXJ0eQpAQCAtMjI0LDYgKzI2MCwz
NCBAQCBjbGFzcyBUZXN0KG9iamVjdCk6CiAgICAgICAgICAgICAgICAgYnJlYWsKICAgICAgICAg
cmV0dXJuIGxzYW5fYWxsb3dlZAogCisgICAgQHByb3BlcnR5CisgICAgZGVmIGxzYW5fbWF4X3N0
YWNrX2RlcHRoKHNlbGYpOgorICAgICAgICBmb3IgbWV0YSBpbiBzZWxmLml0ZXJtZXRhKE5vbmUp
OgorICAgICAgICAgICAgZGVwdGggPSBtZXRhLmxzYW5fbWF4X3N0YWNrX2RlcHRoCisgICAgICAg
ICAgICBpZiBkZXB0aCBpcyBub3QgTm9uZToKKyAgICAgICAgICAgICAgICByZXR1cm4gZGVwdGgK
KyAgICAgICAgcmV0dXJuIE5vbmUKKworICAgIEBwcm9wZXJ0eQorICAgIGRlZiBtb3psZWFrX2Fs
bG93ZWQoc2VsZik6CisgICAgICAgIG1vemxlYWtfYWxsb3dlZCA9IHNldCgpCisgICAgICAgIGZv
ciBtZXRhIGluIHNlbGYuaXRlcm1ldGEoKToKKyAgICAgICAgICAgIG1vemxlYWtfYWxsb3dlZCB8
PSBtZXRhLmxlYWtfYWxsb3dlZAorICAgICAgICAgICAgaWYgYXRvbV9yZXNldCBpbiBtb3psZWFr
X2FsbG93ZWQ6CisgICAgICAgICAgICAgICAgbW96bGVha19hbGxvd2VkLnJlbW92ZShhdG9tX3Jl
c2V0KQorICAgICAgICAgICAgICAgIGJyZWFrCisgICAgICAgIHJldHVybiBtb3psZWFrX2FsbG93
ZWQKKworICAgIEBwcm9wZXJ0eQorICAgIGRlZiBtb3psZWFrX3RocmVzaG9sZChzZWxmKToKKyAg
ICAgICAgcnYgPSB7fQorICAgICAgICBmb3IgbWV0YSBpbiBzZWxmLml0ZXJtZXRhKE5vbmUpOgor
ICAgICAgICAgICAgdGhyZXNob2xkID0gbWV0YS5sZWFrX3RocmVzaG9sZAorICAgICAgICAgICAg
Zm9yIGtleSwgdmFsdWUgaW4gdGhyZXNob2xkLml0ZXJpdGVtcygpOgorICAgICAgICAgICAgICAg
IGlmIGtleSBub3QgaW4gcnY6CisgICAgICAgICAgICAgICAgICAgIHJ2W2tleV0gPSB2YWx1ZQor
ICAgICAgICByZXR1cm4gcnYKKwogICAgIEBwcm9wZXJ0eQogICAgIGRlZiB0YWdzKHNlbGYpOgog
ICAgICAgICB0YWdzID0gc2V0KCkKQEAgLTI0MSwxMiArMzA1LDEyIEBAIGNsYXNzIFRlc3Qob2Jq
ZWN0KToKICAgICBAcHJvcGVydHkKICAgICBkZWYgcHJlZnMoc2VsZik6CiAgICAgICAgIHByZWZz
ID0ge30KLSAgICAgICAgZm9yIG1ldGEgaW4gc2VsZi5pdGVybWV0YSgpOgorICAgICAgICBmb3Ig
bWV0YSBpbiByZXZlcnNlZChsaXN0KHNlbGYuaXRlcm1ldGEoKSkpOgogICAgICAgICAgICAgbWV0
YV9wcmVmcyA9IG1ldGEucHJlZnMKLSAgICAgICAgICAgIHByZWZzLnVwZGF0ZShtZXRhX3ByZWZz
KQogICAgICAgICAgICAgaWYgYXRvbV9yZXNldCBpbiBtZXRhX3ByZWZzOgotICAgICAgICAgICAg
ICAgIGRlbCBwcmVmc1thdG9tX3Jlc2V0XQotICAgICAgICAgICAgICAgIGJyZWFrCisgICAgICAg
ICAgICAgICAgZGVsIG1ldGFfcHJlZnNbYXRvbV9yZXNldF0KKyAgICAgICAgICAgICAgICBwcmVm
cyA9IHt9CisgICAgICAgICAgICBwcmVmcy51cGRhdGUobWV0YV9wcmVmcykKICAgICAgICAgcmV0
dXJuIHByZWZzCiAKICAgICBkZWYgZXhwZWN0ZWQoc2VsZiwgc3VidGVzdD1Ob25lKToKQEAgLTI2
MCwxMCArMzI0LDQwIEBAIGNsYXNzIFRlc3Qob2JqZWN0KToKICAgICAgICAgICAgIHJldHVybiBk
ZWZhdWx0CiAKICAgICAgICAgdHJ5OgotICAgICAgICAgICAgcmV0dXJuIG1ldGFkYXRhLmdldCgi
ZXhwZWN0ZWQiKQorICAgICAgICAgICAgZXhwZWN0ZWQgPSBtZXRhZGF0YS5nZXQoImV4cGVjdGVk
IikKKyAgICAgICAgICAgIGlmIGlzaW5zdGFuY2UoZXhwZWN0ZWQsIChiYXNlc3RyaW5nKSk6Cisg
ICAgICAgICAgICAgICAgcmV0dXJuIGV4cGVjdGVkCisgICAgICAgICAgICBlbGlmIGlzaW5zdGFu
Y2UoZXhwZWN0ZWQsIGxpc3QpOgorICAgICAgICAgICAgICAgIHJldHVybiBleHBlY3RlZFswXQor
ICAgICAgICAgICAgZWxpZiBleHBlY3RlZCBpcyBOb25lOgorICAgICAgICAgICAgICAgIHJldHVy
biBkZWZhdWx0CiAgICAgICAgIGV4Y2VwdCBLZXlFcnJvcjoKICAgICAgICAgICAgIHJldHVybiBk
ZWZhdWx0CiAKKyAgICBkZWYga25vd25faW50ZXJtaXR0ZW50KHNlbGYsIHN1YnRlc3Q9Tm9uZSk6
CisgICAgICAgIG1ldGFkYXRhID0gc2VsZi5fZ2V0X21ldGFkYXRhKHN1YnRlc3QpCisgICAgICAg
IGlmIG1ldGFkYXRhIGlzIE5vbmU6CisgICAgICAgICAgICByZXR1cm4gW10KKworICAgICAgICB0
cnk6CisgICAgICAgICAgICBleHBlY3RlZCA9IG1ldGFkYXRhLmdldCgiZXhwZWN0ZWQiKQorICAg
ICAgICAgICAgaWYgaXNpbnN0YW5jZShleHBlY3RlZCwgbGlzdCk6CisgICAgICAgICAgICAgICAg
cmV0dXJuIGV4cGVjdGVkWzE6XQorICAgICAgICAgICAgcmV0dXJuIFtdCisgICAgICAgIGV4Y2Vw
dCBLZXlFcnJvcjoKKyAgICAgICAgICAgIHJldHVybiBbXQorCisgICAgZGVmIGV4cGVjdF9hbnlf
c3VidGVzdF9zdGF0dXMoc2VsZik6CisgICAgICAgIG1ldGFkYXRhID0gc2VsZi5fZ2V0X21ldGFk
YXRhKCkKKyAgICAgICAgaWYgbWV0YWRhdGEgaXMgTm9uZToKKyAgICAgICAgICAgIHJldHVybiBG
YWxzZQorICAgICAgICB0cnk6CisgICAgICAgICAgICAjIFRoaXMga2V5IGlzIHVzZWQgYnkgdGhl
IEJsaW5rIENJIHRvIGlnbm9yZSBzdWJ0ZXN0IHN0YXR1c2VzCisgICAgICAgICAgICBtZXRhZGF0
YS5nZXQoImJsaW5rX2V4cGVjdF9hbnlfc3VidGVzdF9zdGF0dXMiKQorICAgICAgICAgICAgcmV0
dXJuIFRydWUKKyAgICAgICAgZXhjZXB0IEtleUVycm9yOgorICAgICAgICAgICAgcmV0dXJuIEZh
bHNlCisKICAgICBkZWYgX19yZXByX18oc2VsZik6CiAgICAgICAgIHJldHVybiAiPCVzLiVzICVz
PiIgJSAoc2VsZi5fX21vZHVsZV9fLCBzZWxmLl9fY2xhc3NfXy5fX25hbWVfXywgc2VsZi5pZCkK
IApAQCAtMjg0LDIzICszNzgsMjQgQEAgY2xhc3MgVGVzdGhhcm5lc3NUZXN0KFRlc3QpOgogICAg
ICAgICBzZWxmLnNjcmlwdHMgPSBzY3JpcHRzIG9yIFtdCiAKICAgICBAY2xhc3NtZXRob2QKLSAg
ICBkZWYgZnJvbV9tYW5pZmVzdChjbHMsIG1hbmlmZXN0X2l0ZW0sIGluaGVyaXRfbWV0YWRhdGEs
IHRlc3RfbWV0YWRhdGEpOgorICAgIGRlZiBmcm9tX21hbmlmZXN0KGNscywgbWFuaWZlc3RfZmls
ZSwgbWFuaWZlc3RfaXRlbSwgaW5oZXJpdF9tZXRhZGF0YSwgdGVzdF9tZXRhZGF0YSk6CiAgICAg
ICAgIHRpbWVvdXQgPSBjbHMubG9uZ190aW1lb3V0IGlmIG1hbmlmZXN0X2l0ZW0udGltZW91dCA9
PSAibG9uZyIgZWxzZSBjbHMuZGVmYXVsdF90aW1lb3V0CiAgICAgICAgIHByb3RvY29sID0gImh0
dHBzIiBpZiBoYXNhdHRyKG1hbmlmZXN0X2l0ZW0sICJodHRwcyIpIGFuZCBtYW5pZmVzdF9pdGVt
Lmh0dHBzIGVsc2UgImh0dHAiCiAgICAgICAgIHRlc3Rkcml2ZXIgPSBtYW5pZmVzdF9pdGVtLnRl
c3Rkcml2ZXIgaWYgaGFzYXR0cihtYW5pZmVzdF9pdGVtLCAidGVzdGRyaXZlciIpIGVsc2UgRmFs
c2UKICAgICAgICAganNzaGVsbCA9IG1hbmlmZXN0X2l0ZW0uanNzaGVsbCBpZiBoYXNhdHRyKG1h
bmlmZXN0X2l0ZW0sICJqc3NoZWxsIikgZWxzZSBGYWxzZQotICAgICAgICBzY3JpcHRfbWV0YWRh
dGEgPSBtYW5pZmVzdF9pdGVtLnNvdXJjZV9maWxlLnNjcmlwdF9tZXRhZGF0YSBvciBbXQorICAg
ICAgICBzY3JpcHRfbWV0YWRhdGEgPSBtYW5pZmVzdF9pdGVtLnNjcmlwdF9tZXRhZGF0YSBvciBb
XQogICAgICAgICBzY3JpcHRzID0gW3YgZm9yIChrLCB2KSBpbiBzY3JpcHRfbWV0YWRhdGEgaWYg
ayA9PSBiInNjcmlwdCJdCi0gICAgICAgIHJldHVybiBjbHMobWFuaWZlc3RfaXRlbS5zb3VyY2Vf
ZmlsZS50ZXN0c19yb290LAorICAgICAgICByZXR1cm4gY2xzKG1hbmlmZXN0X2ZpbGUudGVzdHNf
cm9vdCwKICAgICAgICAgICAgICAgICAgICBtYW5pZmVzdF9pdGVtLnVybCwKICAgICAgICAgICAg
ICAgICAgICBpbmhlcml0X21ldGFkYXRhLAogICAgICAgICAgICAgICAgICAgIHRlc3RfbWV0YWRh
dGEsCiAgICAgICAgICAgICAgICAgICAgdGltZW91dD10aW1lb3V0LAotICAgICAgICAgICAgICAg
ICAgIHBhdGg9bWFuaWZlc3RfaXRlbS5zb3VyY2VfZmlsZS5wYXRoLAorICAgICAgICAgICAgICAg
ICAgIHBhdGg9b3MucGF0aC5qb2luKG1hbmlmZXN0X2ZpbGUudGVzdHNfcm9vdCwgbWFuaWZlc3Rf
aXRlbS5wYXRoKSwKICAgICAgICAgICAgICAgICAgICBwcm90b2NvbD1wcm90b2NvbCwKICAgICAg
ICAgICAgICAgICAgICB0ZXN0ZHJpdmVyPXRlc3Rkcml2ZXIsCiAgICAgICAgICAgICAgICAgICAg
anNzaGVsbD1qc3NoZWxsLAotICAgICAgICAgICAgICAgICAgIHNjcmlwdHM9c2NyaXB0cykKKyAg
ICAgICAgICAgICAgICAgICBzY3JpcHRzPXNjcmlwdHMKKyAgICAgICAgICAgICAgICAgICApCiAK
ICAgICBAcHJvcGVydHkKICAgICBkZWYgaWQoc2VsZik6CkBAIC0zMjAsNyArNDE1LDcgQEAgY2xh
c3MgUmVmdGVzdFRlc3QoVGVzdCk6CiAgICAgdGVzdF90eXBlID0gInJlZnRlc3QiCiAKICAgICBk
ZWYgX19pbml0X18oc2VsZiwgdGVzdHNfcm9vdCwgdXJsLCBpbmhlcml0X21ldGFkYXRhLCB0ZXN0
X21ldGFkYXRhLCByZWZlcmVuY2VzLAotICAgICAgICAgICAgICAgICB0aW1lb3V0PU5vbmUsIHBh
dGg9Tm9uZSwgdmlld3BvcnRfc2l6ZT1Ob25lLCBkcGk9Tm9uZSwgcHJvdG9jb2w9Imh0dHAiKToK
KyAgICAgICAgICAgICAgICAgdGltZW91dD1Ob25lLCBwYXRoPU5vbmUsIHZpZXdwb3J0X3NpemU9
Tm9uZSwgZHBpPU5vbmUsIGZ1enp5PU5vbmUsIHByb3RvY29sPSJodHRwIik6CiAgICAgICAgIFRl
c3QuX19pbml0X18oc2VsZiwgdGVzdHNfcm9vdCwgdXJsLCBpbmhlcml0X21ldGFkYXRhLCB0ZXN0
X21ldGFkYXRhLCB0aW1lb3V0LAogICAgICAgICAgICAgICAgICAgICAgIHBhdGgsIHByb3RvY29s
KQogCkBAIC0zMzEsOSArNDI2LDExIEBAIGNsYXNzIFJlZnRlc3RUZXN0KFRlc3QpOgogICAgICAg
ICBzZWxmLnJlZmVyZW5jZXMgPSByZWZlcmVuY2VzCiAgICAgICAgIHNlbGYudmlld3BvcnRfc2l6
ZSA9IHZpZXdwb3J0X3NpemUKICAgICAgICAgc2VsZi5kcGkgPSBkcGkKKyAgICAgICAgc2VsZi5f
ZnV6enkgPSBmdXp6eSBvciB7fQogCiAgICAgQGNsYXNzbWV0aG9kCiAgICAgZGVmIGZyb21fbWFu
aWZlc3QoY2xzLAorICAgICAgICAgICAgICAgICAgICAgIG1hbmlmZXN0X2ZpbGUsCiAgICAgICAg
ICAgICAgICAgICAgICAgbWFuaWZlc3RfdGVzdCwKICAgICAgICAgICAgICAgICAgICAgICBpbmhl
cml0X21ldGFkYXRhLAogICAgICAgICAgICAgICAgICAgICAgIHRlc3RfbWV0YWRhdGEsCkBAIC0z
NDksNyArNDQ2LDcgQEAgY2xhc3MgUmVmdGVzdFRlc3QoVGVzdCk6CiAKICAgICAgICAgdXJsID0g
bWFuaWZlc3RfdGVzdC51cmwKIAotICAgICAgICBub2RlID0gY2xzKG1hbmlmZXN0X3Rlc3Quc291
cmNlX2ZpbGUudGVzdHNfcm9vdCwKKyAgICAgICAgbm9kZSA9IGNscyhtYW5pZmVzdF9maWxlLnRl
c3RzX3Jvb3QsCiAgICAgICAgICAgICAgICAgICAgbWFuaWZlc3RfdGVzdC51cmwsCiAgICAgICAg
ICAgICAgICAgICAgaW5oZXJpdF9tZXRhZGF0YSwKICAgICAgICAgICAgICAgICAgICB0ZXN0X21l
dGFkYXRhLApAQCAtMzU4LDcgKzQ1NSw4IEBAIGNsYXNzIFJlZnRlc3RUZXN0KFRlc3QpOgogICAg
ICAgICAgICAgICAgICAgIHBhdGg9bWFuaWZlc3RfdGVzdC5wYXRoLAogICAgICAgICAgICAgICAg
ICAgIHZpZXdwb3J0X3NpemU9bWFuaWZlc3RfdGVzdC52aWV3cG9ydF9zaXplLAogICAgICAgICAg
ICAgICAgICAgIGRwaT1tYW5pZmVzdF90ZXN0LmRwaSwKLSAgICAgICAgICAgICAgICAgICBwcm90
b2NvbD0iaHR0cHMiIGlmIGhhc2F0dHIobWFuaWZlc3RfdGVzdCwgImh0dHBzIikgYW5kIG1hbmlm
ZXN0X3Rlc3QuaHR0cHMgZWxzZSAiaHR0cCIpCisgICAgICAgICAgICAgICAgICAgcHJvdG9jb2w9
Imh0dHBzIiBpZiBoYXNhdHRyKG1hbmlmZXN0X3Rlc3QsICJodHRwcyIpIGFuZCBtYW5pZmVzdF90
ZXN0Lmh0dHBzIGVsc2UgImh0dHAiLAorICAgICAgICAgICAgICAgICAgIGZ1enp5PW1hbmlmZXN0
X3Rlc3QuZnV6enkpCiAKICAgICAgICAgbm9kZXNbdXJsXSA9IG5vZGUKIApAQCAtMzc2LDE1ICs0
NzQsMTYgQEAgY2xhc3MgUmVmdGVzdFRlc3QoVGVzdCk6CiAKICAgICAgICAgICAgIHJlZmVyZW5j
ZXNfc2Vlbi5hZGQoY29tcGFyaXNvbl9rZXkpCiAKLSAgICAgICAgICAgIG1hbmlmZXN0X25vZGUg
PSBtYW5pZmVzdF90ZXN0Lm1hbmlmZXN0LmdldF9yZWZlcmVuY2UocmVmX3VybCkKKyAgICAgICAg
ICAgIG1hbmlmZXN0X25vZGUgPSBtYW5pZmVzdF9maWxlLmdldF9yZWZlcmVuY2UocmVmX3VybCkK
ICAgICAgICAgICAgIGlmIG1hbmlmZXN0X25vZGU6Ci0gICAgICAgICAgICAgICAgcmVmZXJlbmNl
ID0gUmVmdGVzdFRlc3QuZnJvbV9tYW5pZmVzdChtYW5pZmVzdF9ub2RlLAorICAgICAgICAgICAg
ICAgIHJlZmVyZW5jZSA9IFJlZnRlc3RUZXN0LmZyb21fbWFuaWZlc3QobWFuaWZlc3RfZmlsZSwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1h
bmlmZXN0X25vZGUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBbXSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIE5vbmUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBub2RlcywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHJlZmVyZW5jZXNfc2VlbikKICAgICAgICAgICAgIGVsc2U6
Ci0gICAgICAgICAgICAgICAgcmVmZXJlbmNlID0gUmVmdGVzdFRlc3QobWFuaWZlc3RfdGVzdC5z
b3VyY2VfZmlsZS50ZXN0c19yb290LAorICAgICAgICAgICAgICAgIHJlZmVyZW5jZSA9IFJlZnRl
c3RUZXN0KG1hbmlmZXN0X2ZpbGUudGVzdHNfcm9vdCwKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICByZWZfdXJsLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIFtdLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5v
bmUsCkBAIC00MTMsNiArNTEyLDMyIEBAIGNsYXNzIFJlZnRlc3RUZXN0KFRlc3QpOgogICAgIGRl
ZiBrZXlzKHNlbGYpOgogICAgICAgICByZXR1cm4gKCJyZWZ0eXBlIiwgInJlZnVybCIpCiAKKyAg
ICBAcHJvcGVydHkKKyAgICBkZWYgZnV6enkoc2VsZik6CisgICAgICAgIHJldHVybiBzZWxmLl9m
dXp6eQorCisgICAgQHByb3BlcnR5CisgICAgZGVmIGZ1enp5X292ZXJyaWRlKHNlbGYpOgorICAg
ICAgICB2YWx1ZXMgPSB7fQorICAgICAgICBmb3IgbWV0YSBpbiByZXZlcnNlZChsaXN0KHNlbGYu
aXRlcm1ldGEoTm9uZSkpKToKKyAgICAgICAgICAgIHZhbHVlID0gbWV0YS5mdXp6eQorICAgICAg
ICAgICAgaWYgbm90IHZhbHVlOgorICAgICAgICAgICAgICAgIGNvbnRpbnVlCisgICAgICAgICAg
ICBpZiBhdG9tX3Jlc2V0IGluIHZhbHVlOgorICAgICAgICAgICAgICAgIHZhbHVlLnJlbW92ZShh
dG9tX3Jlc2V0KQorICAgICAgICAgICAgICAgIHZhbHVlcyA9IHt9CisgICAgICAgICAgICBmb3Ig
a2V5LCBkYXRhIGluIHZhbHVlOgorICAgICAgICAgICAgICAgIGlmIGlzaW5zdGFuY2Uoa2V5LCAo
dHVwbGUsIGxpc3QpKToKKyAgICAgICAgICAgICAgICAgICAga2V5ID0gbGlzdChrZXkpCisgICAg
ICAgICAgICAgICAgICAgIGtleVswXSA9IHVybGpvaW4oc2VsZi51cmwsIGtleVswXSkKKyAgICAg
ICAgICAgICAgICAgICAga2V5WzFdID0gdXJsam9pbihzZWxmLnVybCwga2V5WzFdKQorICAgICAg
ICAgICAgICAgICAgICBrZXkgPSB0dXBsZShrZXkpCisgICAgICAgICAgICAgICAgZWxpZiBrZXk6
CisgICAgICAgICAgICAgICAgICAgICMgS2V5IGlzIGp1c3QgYSByZWxhdGl2ZSB1cmwgdG8gYSBy
ZWYKKyAgICAgICAgICAgICAgICAgICAga2V5ID0gdXJsam9pbihzZWxmLnVybCwga2V5KQorICAg
ICAgICAgICAgICAgIHZhbHVlc1trZXldID0gZGF0YQorICAgICAgICByZXR1cm4gdmFsdWVzCisK
IAogY2xhc3MgV2RzcGVjVGVzdChUZXN0KToKIApAQCAtNDMwLDYgKzU1NSw2IEBAIG1hbmlmZXN0
X3Rlc3RfY2xzID0geyJyZWZ0ZXN0IjogUmVmdGVzdFRlc3QsCiAgICAgICAgICAgICAgICAgICAg
ICAid2RzcGVjIjogV2RzcGVjVGVzdH0KIAogCi1kZWYgZnJvbV9tYW5pZmVzdChtYW5pZmVzdF90
ZXN0LCBpbmhlcml0X21ldGFkYXRhLCB0ZXN0X21ldGFkYXRhKToKK2RlZiBmcm9tX21hbmlmZXN0
KG1hbmlmZXN0X2ZpbGUsIG1hbmlmZXN0X3Rlc3QsIGluaGVyaXRfbWV0YWRhdGEsIHRlc3RfbWV0
YWRhdGEpOgogICAgIHRlc3RfY2xzID0gbWFuaWZlc3RfdGVzdF9jbHNbbWFuaWZlc3RfdGVzdC5p
dGVtX3R5cGVdCi0gICAgcmV0dXJuIHRlc3RfY2xzLmZyb21fbWFuaWZlc3QobWFuaWZlc3RfdGVz
dCwgaW5oZXJpdF9tZXRhZGF0YSwgdGVzdF9tZXRhZGF0YSkKKyAgICByZXR1cm4gdGVzdF9jbHMu
ZnJvbV9tYW5pZmVzdChtYW5pZmVzdF9maWxlLCBtYW5pZmVzdF90ZXN0LCBpbmhlcml0X21ldGFk
YXRhLCB0ZXN0X21ldGFkYXRhKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRzZXJ2ZS9SRUFETUUubWQgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHNlcnZlL1JFQURNRS5t
ZAppbmRleCAzMGE3ZGNjYzkzZWYxOTdkNTFlM2NlOTllYjc4YzJlMTE0ZDE2NTNlLi42ODIxZGVl
MzhhNDk4YTQ3MmNmNzE4NjFhYzI1YThjZGExMmUxN2FhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHNlcnZlL1JFQURNRS5t
ZAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3dwdHNlcnZlL1JFQURNRS5tZApAQCAtMyw0ICszLDQgQEAgd3B0c2VydmUKIAogV2ViIHNlcnZl
ciBkZXNpZ25lZCBmb3IgdXNlIHdpdGggd2ViLXBsYXRmb3JtLXRlc3RzLgogCi1bd3B0c2VydmUu
cmVhZHRoZWRvY3MuaW9dKGh0dHA6Ly93cHRzZXJ2ZS5yZWFkdGhlZG9jcy5pby9lbi9sYXRlc3Qv
aW5kZXguaHRtbCkKK1NlZSB0aGUgZG9jcyBvbiBbd2ViLXBsYXRmb3JtLXRlc3RzLm9yZ10oaHR0
cHM6Ly93ZWItcGxhdGZvcm0tdGVzdHMub3JnL3Rvb2xzL3dwdHNlcnZlL2RvY3MvaW5kZXguaHRt
bCkuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3dwdHNlcnZlL2RvY3MvaGFuZGxlcnMucnN0IGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRzZXJ2ZS9kb2NzL2hhbmRsZXJzLnJz
dAppbmRleCBjMTVhYWI2MzVkOTY5NzZhZjU5YzYwNmQ4NGQwYTU3NTA3NDM1NDRiLi44ZWNjOTMz
Mjg4YjYzNjliODU1YjZlNzMzYmFlYmMwZTVhMTgxYTg1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHNlcnZlL2RvY3MvaGFu
ZGxlcnMucnN0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvd3B0c2VydmUvZG9jcy9oYW5kbGVycy5yc3QKQEAgLTIyLDIyICsyMiwyMiBAQCBQ
eXRob24gSGFuZGxlcnMKIAogUHl0aG9uIGhhbmRsZXJzIGFyZSBmdW5jdGlvbnMgd2hpY2ggcHJv
dmlkZSBhIGhpZ2hlci1sZXZlbCBBUEkgb3ZlcgogbWFudWFsbHkgdXBkYXRpbmcgdGhlIHJlc3Bv
bnNlIG9iamVjdCwgYnkgY2F1c2luZyB0aGUgcmV0dXJuIHZhbHVlIG9mCi10aGUgZnVuY3Rpb24g
dG8gcHJvdmlkZSAocGFydCBvZikgdGhlIHJlc3BvbnNlLiBUaGVyZSBhcmUgdGhyZWUKK3RoZSBm
dW5jdGlvbiB0byBwcm92aWRlIChwYXJ0IG9mKSB0aGUgcmVzcG9uc2UuIFRoZXJlIGFyZSBmb3Vy
CiBwb3NzaWJsZSBzZXRzIG9mIHZhbHVlcyB0aGF0IG1heSBiZSByZXR1cm5lZDo6CiAKIAotICAo
c3RhdHVzLCBoZWFkZXJzLCBjb250ZW50KQorICAoKHN0YXR1c19jb2RlLCByZWFzb24pLCBoZWFk
ZXJzLCBjb250ZW50KQorICAoc3RhdHVzX2NvZGUsIGhlYWRlcnMsIGNvbnRlbnQpCiAgIChoZWFk
ZXJzLCBjb250ZW50KQogICBjb250ZW50CiAKLUhlcmUgYHN0YXR1c2AgaXMgZWl0aGVyIGEgdHVw
bGUgKHN0YXR1cyBjb2RlLCBtZXNzYWdlKSBvciBzaW1wbHkgYQotaW50ZWdlciBzdGF0dXMgY29k
ZSwgYGhlYWRlcnNgIGlzIGEgbGlzdCBvZiAoZmllbGQgbmFtZSwgdmFsdWUpIHBhaXJzLAotYW5k
IGBjb250ZW50YCBpcyBhIHN0cmluZyBvciBhbiBpdGVyYWJsZSByZXR1cm5pbmcgc3RyaW5ncy4g
U3VjaCBhCi1mdW5jdGlvbiBtYXkgYWxzbyB1cGRhdGUgdGhlIHJlc3BvbnNlIG1hbnVhbGx5LiBG
b3IgZXhhbXBsZSBvbmUgbWF5Ci11c2UgYHJlc3BvbnNlLmhlYWRlcnMuc2V0YCB0byBzZXQgYSBy
ZXNwb25zZSBoZWFkZXIsIGFuZCBvbmx5IHJldHVybgotdGhlIGNvbnRlbnQuIE9uZSBtYXkgZXZl
biB1c2UgdGhpcyBraW5kIG9mIGhhbmRsZXIsIGJ1dCBtYW5pcHVsYXRlCi10aGUgb3V0cHV0IHNv
Y2tldCBkaXJlY3RseSwgaW4gd2hpY2ggY2FzZSB0aGUgcmV0dXJuIHZhbHVlIG9mIHRoZQotZnVu
Y3Rpb24sIGFuZCB0aGUgcHJvcGVydGllcyBvZiB0aGUgcmVzcG9uc2Ugb2JqZWN0LCB3aWxsIGJl
IGlnbm9yZWQuCitIZXJlIGBzdGF0dXNfY29kZWAgaXMgYW4gaW50ZWdlciBzdGF0dXMgY29kZSwg
YGhlYWRlcnNgIGlzIGEgbGlzdCBvZiAoZmllbGQKK25hbWUsIHZhbHVlKSBwYWlycywgYW5kIGBj
b250ZW50YCBpcyBhIHN0cmluZyBvciBhbiBpdGVyYWJsZSByZXR1cm5pbmcgc3RyaW5ncy4KK1N1
Y2ggYSBmdW5jdGlvbiBtYXkgYWxzbyB1cGRhdGUgdGhlIHJlc3BvbnNlIG1hbnVhbGx5LiBGb3Ig
ZXhhbXBsZSBvbmUgbWF5IHVzZQorYHJlc3BvbnNlLmhlYWRlcnMuc2V0YCB0byBzZXQgYSByZXNw
b25zZSBoZWFkZXIsIGFuZCBvbmx5IHJldHVybiB0aGUgY29udGVudC4KK09uZSBtYXkgZXZlbiB1
c2UgdGhpcyBraW5kIG9mIGhhbmRsZXIsIGJ1dCBtYW5pcHVsYXRlIHRoZSBvdXRwdXQgc29ja2V0
CitkaXJlY3RseSwgaW4gd2hpY2ggY2FzZSB0aGUgcmV0dXJuIHZhbHVlIG9mIHRoZSBmdW5jdGlv
biwgYW5kIHRoZSBwcm9wZXJ0aWVzIG9mCit0aGUgcmVzcG9uc2Ugb2JqZWN0LCB3aWxsIGJlIGln
bm9yZWQuCiAKIFRoZSBtb3N0IGNvbW1vbiB3YXkgdG8gbWFrZSBhIHVzZXIgZnVuY3Rpb24gaW50
byBhIHB5dGhvbiBoYW5kbGVyIGlzCiB0byB1c2UgdGhlIHByb3ZpZGVkIGB3cHRzZXJ2ZS5oYW5k
bGVycy5oYW5kbGVyYCBkZWNvcmF0b3I6OgpAQCAtNzEsMTYgKzcxLDEzIEBAIGRlY29yYXRvcjo6
CiBQeXRob24gRmlsZSBIYW5kbGVycwogLS0tLS0tLS0tLS0tLS0tLS0tLS0KIAotUHl0aG9uIGZp
bGUgaGFuZGxlcnMgYXJlIGRlc2lnbmVkIHRvIHByb3ZpZGUgYSB2YWd1ZWx5IFBIUC1saWtlIGlu
dGVyZmFjZQotd2hlcmUgZWFjaCByZXNvdXJjZSBjb3JyZXNwb25kcyB0byBhIHBhcnRpY3VsYXIg
cHl0aG9uIGZpbGUgb24gdGhlCi1maWxlc3lzdGVtLiBUeXBpY2FsbHkgdGhpcyBpcyBob29rZWQg
dXAgdG8gYSByb3V0ZSBsaWtlIGBgKCIqIiwKLSIqLnB5IiwgcHl0aG9uX2ZpbGVfaGFuZGxlcilg
YCwgbWVhbmluZyB0aGF0IGFueSAucHkgZmlsZSB3aWxsIGJlCi10cmVhdGVkIGFzIGEgaGFuZGxl
ciBmaWxlIChub3RlIHRoYXQgdGhpcyBtYWtlcyBweXRob24gZmlsZXMgdW5zYWZlIGluCi1tdWNo
IHRoZSBzYW1lIHdheSB0aGF0IC5waHAgZmlsZXMgYXJlIHdoZW4gdXNpbmcgUEhQKS4KK1B5dGhv
biBmaWxlIGhhbmRsZXJzIGFyZSBQeXRob24gZmlsZXMgd2hpY2ggdGhlIHNlcnZlciBleGVjdXRl
cyBpbiByZXNwb25zZSB0bworcmVxdWVzdHMgbWFkZSB0byB0aGUgY29ycmVzcG9uZGluZyBVUkwu
IFRoaXMgaXMgaG9va2VkIHVwIHRvIGEgcm91dGUgbGlrZQorYGAoIioiLCAiKi5weSIsIHB5dGhv
bl9maWxlX2hhbmRsZXIpYGAsIG1lYW5pbmcgdGhhdCBhbnkgLnB5IGZpbGUgd2lsbCBiZQordHJl
YXRlZCBhcyBhIGhhbmRsZXIgZmlsZSAobm90ZSB0aGF0IHRoaXMgbWFrZXMgaXQgZWFzeSB0byB3
cml0ZSB1bnNhZmUKK2hhbmRsZXJzLCBwYXJ0aWN1bGFybHkgd2hlbiBydW5uaW5nIHRoZSBzZXJ2
ZXIgaW4gYSB3ZWItZXhwb3NlZCBzZXR0aW5nKS4KIAotVW5saWtlIFBIUCwgdGhlIHB5dGhvbiBm
aWxlcyBkb24ndCB3b3JrIGJ5IG91dHB1dHRpbmcgdGV4dCB0byBzdGRvdXQKLWZyb20gdGhlIGds
b2JhbCBzY29wZS4gSW5zdGVhZCB0aGV5IG11c3QgZGVmaW5lIGEgc2luZ2xlIGZ1bmN0aW9uCi1g
bWFpbmAgd2l0aCB0aGUgc2lnbmF0dXJlOjoKK1RoZSBQeXRob24gZmlsZXMgbXVzdCBkZWZpbmUg
YSBzaW5nbGUgZnVuY3Rpb24gYG1haW5gIHdpdGggdGhlIHNpZ25hdHVyZTo6CiAKICAgbWFpbihy
ZXF1ZXN0LCByZXNwb25zZSkKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRzZXJ2ZS9kb2NzL3BpcGVzLnJzdCBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0c2VydmUvZG9j
cy9waXBlcy5yc3QKaW5kZXggOGZhZWVlNDg5YzlmYWI3MTM4NzU0MGY5OTYwMjNlMDFhNDY5NTVk
Ny4uMWVkYmQ0NDg2NzI1OWFhMzM3Y2E3MTc1MTNjODZkNWFhZjUxYmNhZiAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRzZXJ2
ZS9kb2NzL3BpcGVzLnJzdAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3dwdHNlcnZlL2RvY3MvcGlwZXMucnN0CkBAIC0xLDE2MSArMSw4IEBA
CiBQaXBlcwogPT09PT09CiAKLVBpcGVzIGFyZSBmdW5jdGlvbnMgdGhhdCBtYXkgYmUgdXNlZCB3
aGVuIHNlcnZpbmcgZmlsZXMgdG8gYWx0ZXIgcGFydHMKLW9mIHRoZSByZXNwb25zZS4gVGhlc2Ug
YXJlIGludm9rZWQgYnkgYWRkaW5nIGEgcGlwZT0gcXVlcnkgcGFyYW1ldGVyCi10YWtpbmcgYSB8
IHNlcGFyYXRlZCBsaXN0IG9mIHBpcGUgZnVuY3Rpb25zIGFuZCBwYXJhbWV0ZXJzLiBUaGUgcGlw
ZQotZnVuY3Rpb25zIGFyZSBhcHBsaWVkIHRvIHRoZSByZXNwb25zZSBmcm9tIGxlZnQgdG8gcmln
aHQuIEZvciBleGFtcGxlOjoKLQotICBHRVQgL3NhbXBsZS50eHQ/cGlwZT1zbGljZSgxLDIwMCl8
c3RhdHVzKDQwNCkuCi0KLVRoaXMgd291bGQgc2VydmUgYnl0ZXMgMSB0byAxOTksIGluY2x1c2l2
ZSwgb2YgZm9vLnR4dCB3aXRoIHRoZSBIVFRQIHN0YXR1cwotY29kZSA0MDQuCi0KLS4uIG5vdGU6
OgotICAgSWYgeW91IHdyaXRlIGRpcmVjdGx5IHRvIHRoZSByZXNwb25zZSBzb2NrZXQgdXNpbmcg
UmVzcG9uc2VXcml0ZXIsCi0gICBvciB3aGVuIHVzaW5nIHRoZSBhc2lzIGhhbmRsZXIsIG9ubHkg
dGhlIHRyaWNrbGUgcGlwZSB3aWxsIGFmZmVjdCB0aGUgcmVzcG9uc2UuCi0KLVRoZXJlIGFyZSBz
ZXZlcmFsIGJ1aWx0LWluIHBpcGUgZnVuY3Rpb25zLCBhbmQgaXQgaXMgcG9zc2libGUgdG8gYWRk
Ci1tb3JlIHVzaW5nIHRoZSBgQHBpcGVgIGRlY29yYXRvciBvbiBhIGZ1bmN0aW9uLCBpZiByZXF1
aXJlZC4KLQotLi4gbm90ZTo6Ci0gICBCZWNhdXNlIG9mIHRoZSB3YXkgcGlwZXMgY29tcG9zZSwg
dXNpbmcgc29tZSBwaXBlIGZ1bmN0aW9ucyBwcmV2ZW50cyB0aGUKLSAgIGNvbnRlbnQtbGVuZ3Ro
IG9mIHRoZSByZXNwb25zZSBmcm9tIGJlaW5nIGtub3duIGluIGFkdmFuY2UuIEluIHRoZXNlIGNh
c2VzCi0gICB0aGUgc2VydmVyIHdpbGwgY2xvc2UgdGhlIGNvbm5lY3Rpb24gdG8gaW5kaWNhdGUg
dGhlIGVuZCBvZiB0aGUgcmVzcG9uc2UsCi0gICBwcmV2ZW50aW5nIHRoZSB1c2Ugb2YgSFRUUCAx
LjEga2VlcGFsaXZlLgotCi1CdWlsdC1JbiBQaXBlcwotLS0tLS0tLS0tLS0tLS0KLQotc3ViCi1+
fn4KLQotVXNlZCB0byBzdWJzdGl0dXRlIHZhcmlhYmxlcyBmcm9tIHRoZSBzZXJ2ZXIgZW52aXJv
bm1lbnQsIG9yIGZyb20gdGhlCi1yZXF1ZXN0IGludG8gdGhlIHJlc3BvbnNlLgotCi1TdWJzdGl0
dXRpb25zIGFyZSBtYXJrZWQgaW4gYSBmaWxlIHVzaW5nIGEgYmxvY2sgZGVsaW1pdGVkIGJ5IGB7
e2AKLWFuZCBgfX1gLiBJbnNpZGUgdGhlIGJsb2NrIHRoZSBmb2xsb3dpbmcgdmFyaWFibGVzIGFy
ZSBhdmFpbGFibGU6Ci0KLSAgYHt7aG9zdH19YAotICAgIFRoZSBob3N0IG5hbWUgb2YgdGhlIHNl
cnZlciBleGNsdWRpbmcgYW55IHN1YmRvbWFpbiBwYXJ0LgotCi0gIGB7e2RvbWFpbnNbXX19YAot
ICAgIFRoZSBkb21haW4gbmFtZSBvZiBhIHBhcnRpY3VsYXIgc3ViZG9tYWluCi0gICAgICBlLmcu
IGB7e2RvbWFpbnNbd3d3XX19YCBmb3IgdGhlIGB3d3dgIHN1YmRvbWFpbi4KLQotICBge3twb3J0
c1tdW119fWAKLSAgICBUaGUgcG9ydCBudW1iZXIgb2Ygc2VydmVycywgYnkgcHJvdG9jb2wKLSAg
ICAgIGUuZy4gYHt7cG9ydHNbaHR0cF1bMF19fWAgZm9yIHRoZSBmaXJzdCAoYW5kLCBkZXBlbmRp
bmcgb24gc2V0dXAsCi0gICAgICBwb3NzaWJseSBvbmx5KSBodHRwIHNlcnZlcgotCi0gIGB7e2hl
YWRlcnNbXX19YAotICAgIFRoZSBIVFRQIGhlYWRlcnMgaW4gdGhlIHJlcXVlc3QKLSAgICAgIGUu
Zy4gYHt7aGVhZGVyc1tYLVRlc3RdfX1gIGZvciBhIGh5cG90aGV0aWNhbCBgWC1UZXN0YCBoZWFk
ZXIuCi0KLSAgYHt7R0VUW119fWAKLSAgICBUaGUgcXVlcnkgcGFyYW1ldGVycyBmb3IgdGhlIHJl
cXVlc3QKLSAgICAgIGUuZy4gYHt7R0VUW2lkXX19YCBmb3IgYW4gaWQgcGFyYW1ldGVyIHNlbnQg
d2l0aCB0aGUgcmVxdWVzdC4KLQotU28sIGZvciBleGFtcGxlLCB0byB3cml0ZSBhIGphdmFzY3Jp
cHQgZmlsZSBjYWxsZWQgYHhoci5qc2AgdGhhdAotZGVwZW5kcyBvbiB0aGUgaG9zdCBuYW1lIG9m
IHRoZSBzZXJ2ZXIsIHdpdGhvdXQgaGFyZGNvZGluZywgb25lIG1pZ2h0Ci13cml0ZTo6Ci0KLSAg
ICB2YXIgc2VydmVyX3VybCA9IGh0dHA6Ly97e2hvc3R9fTp7e3BvcnRzW2h0dHBdWzBdfX0vcGF0
aC90by9yZXNvdXJjZTsKLSAgICAvL0NyZWF0ZSB0aGUgYWN0dWFsIFhIUiBhbmQgc28gb24KLQot
VGhlIGZpbGUgd291bGQgdGhlbiBiZSBpbmNsdWRlZCBhczoKLQotICAgIDxzY3JpcHQgc3JjPSJ4
aHIuanM/cGlwZT1zdWIiPjwvc2NyaXB0PgotCi1UaGlzIHBpcGUgY2FuIGFsc28gYmUgZW5hYmxl
ZCBieSB1c2luZyBhIGZpbGVuYW1lIGAqLnN1Yi5leHRgLCBlLmcuIHRoZSBmaWxlIGFib3ZlIGNv
dWxkIGJlIGNhbGxlZCBgeGhyLnN1Yi5qc2AuCi0KLXN0YXR1cwotfn5+fn5+Ci0KLVVzZWQgdG8g
c2V0IHRoZSBIVFRQIHN0YXR1cyBvZiB0aGUgcmVzcG9uc2UsIGZvciBleGFtcGxlOjoKLQotICAg
IGV4YW1wbGUuanM/cGlwZT1zdGF0dXMoNDEwKQotCi1oZWFkZXJzCi1+fn5+fn5+Ci0KLVVzZWQg
dG8gYWRkIG9yIHJlcGxhY2UgaHR0cCBoZWFkZXJzIGluIHRoZSByZXNwb25zZS4gVGFrZXMgdHdv
IG9yCi10aHJlZSBhcmd1bWVudHM7IHRoZSBoZWFkZXIgbmFtZSwgdGhlIGhlYWRlciB2YWx1ZSBh
bmQgd2hldGhlciB0bwotYXBwZW5kIHRoZSBoZWFkZXIgcmF0aGVyIHRoYW4gcmVwbGFjZSBhbiBl
eGlzdGluZyBoZWFkZXIgKGRlZmF1bHQ6Ci1GYWxzZSkuIFNvLCBmb3IgZXhhbXBsZSwgYSByZXF1
ZXN0IGZvcjo6Ci0KLSAgICBleGFtcGxlLmh0bWw/cGlwZT1oZWFkZXIoQ29udGVudC1UeXBlLHRl
eHQvcGxhaW4pCi0KLWNhdXNlcyBleGFtcGxlLmh0bWwgdG8gYmUgcmV0dXJuZWQgd2l0aCBhIHRl
eHQvcGxhaW4gY29udGVudCB0eXBlCi13aGVyZWFzOjoKLQotICAgIGV4YW1wbGUuaHRtbD9waXBl
PWhlYWRlcihDb250ZW50LVR5cGUsdGV4dC9wbGFpbixUcnVlKQotCi1XaWxsIGNhdXNlIGV4YW1w
bGUuaHRtbCB0byBiZSByZXR1cm5lZCB3aXRoIGJvdGggdGV4dC9odG1sIGFuZAotdGV4dC9wbGFp
biBjb250ZW50LXR5cGUgaGVhZGVycy4KLQotc2xpY2UKLX5+fn5+Ci0KLVVzZWQgdG8gc2VuZCBv
bmx5IHBhcnQgb2YgYSByZXNwb25zZSBib2R5LiBUYWtlcyB0aGUgc3RhcnQgYW5kLAotb3B0aW9u
YWxseSwgZW5kIGJ5dGVzIGFzIGFyZ3VtZW50cywgYWx0aG91Z2ggZWl0aGVyIGNhbiBiZSBudWxs
IHRvCi1pbmRpY2F0ZSB0aGUgc3RhcnQgb3IgZW5kIG9mIHRoZSBmaWxlLCByZXNwZWN0aXZlbHku
IFNvIGZvciBleGFtcGxlOjoKLQotICAgIGV4YW1wbGUudHh0P3BpcGU9c2xpY2UoMTAsMjApCi0K
LVdvdWxkIHJlc3VsdCBpbiBhIHJlc3BvbnNlIHdpdGggYSBib2R5IGNvbnRhaW5pbmcgMTAgYnl0
ZXMgb2YKLWV4YW1wbGUudHh0IGluY2x1ZGluZyBieXRlIDEwIGJ1dCBleGNsdWRpbmcgYnl0ZSAy
MC4KLQotOjoKLQotICAgIGV4YW1wbGUudHh0P3BpcGU9c2xpY2UoMTApCi0KLVdvdWxkIGNhdXNl
IGFsbCBieXRlcyBmcm9tIGJ5dGUgMTAgb2YgZXhhbXBsZS50eHQgdG8gYmUgc2VudCwgYnV0OjoK
LQotICAgIGV4YW1wbGUudHh0P3BpcGU9c2xpY2UobnVsbCwyMCkKLQotV291bGQgc2VuZCB0aGUg
Zmlyc3QgMjAgYnl0ZXMgb2YgZXhhbXBsZS50eHQuCi0KLXRyaWNrbGUKLX5+fn5+fn4KLQotLi4g
bm90ZTo6Ci0gICBVc2luZyB0aGlzIGZ1bmN0aW9uIHdpbGwgZm9yY2UgYSBjb25uZWN0aW9uIGNs
b3NlLgotCi1Vc2VkIHRvIHNlbmQgdGhlIGJvZHkgb2YgYSByZXNwb25zZSBpbiBjaHVua3Mgd2l0
aCBkZWxheXMuIFRha2VzIGEKLXNpbmdsZSBhcmd1bWVudCB0aGF0IGlzIGEgbWljcm9zeW50YXgg
Y29uc2lzdGluZyBvZiBjb2xvbi1zZXBhcmF0ZWQKLWNvbW1hbmRzLiBUaGVyZSBhcmUgdGhyZWUg
dHlwZXMgb2YgY29tbWFuZHM6Ci0KLSogQmFyZSBudW1iZXJzIHJlcHJlc2VudCBhIG51bWJlciBv
ZiBieXRlcyB0byBzZW5kCi0KLSogTnVtYmVycyBwcmVmaXhlZCBgZGAgaW5kaWNhdGUgYSBkZWxh
eSBpbiBzZWNvbmRzCi0KLSogTnVtYmVycyBwcmVmaXhlZCBgcmAgbXVzdCBvbmx5IGFwcGVhciBh
dCB0aGUgZW5kIG9mIHRoZSBjb21tYW5kLCBhbmQKLSAgaW5kaWNhdGUgdGhhdCB0aGUgcHJlY2Vk
aW5nIE4gaXRlbXMgbXVzdCBiZSByZXBlYXRlZCB1bnRpbCB0aGVyZSBpcwotICBubyBtb3JlIGNv
bnRlbnQgdG8gc2VuZC4gVGhlIG51bWJlciBvZiBpdGVtcyB0byByZXBlYXQgbXVzdCBiZSBldmVu
LgotCi1JbiB0aGUgYWJzZW5jZSBvZiBhIHJlcGV0aXRpb24gY29tbWFuZCwgdGhlIGVudGlyZSBy
ZW1haW5kZXIgb2YgdGhlIGNvbnRlbnQgaXMKLXNlbnQgYXQgb25jZSB3aGVuIHRoZSBjb21tYW5k
IGxpc3QgaXMgZXhoYXVzdGVkLiBTbyBmb3IgZXhhbXBsZTo6Ci0KLSAgICBleGFtcGxlLnR4dD9w
aXBlPXRyaWNrbGUoZDEpCi0KLWNhdXNlcyBhIDFzIGRlbGF5IGJlZm9yZSBzZW5kaW5nIHRoZSBl
bnRpcmV0eSBvZiBleGFtcGxlLnR4dC4KLQotOjoKLQotICAgIGV4YW1wbGUudHh0P3BpcGU9dHJp
Y2tsZSgxMDA6ZDEpCi0KLWNhdXNlcyAxMDAgYnl0ZXMgb2YgZXhhbXBsZS50eHQgdG8gYmUgc2Vu
dCwgZm9sbG93ZWQgYnkgYSAxcyBkZWxheSwKLWFuZCB0aGVuIHRoZSByZW1haW5kZXIgb2YgdGhl
IGZpbGUgdG8gYmUgc2VudC4gT24gdGhlIG90aGVyIGhhbmQ6OgotCi0gICAgZXhhbXBsZS50eHQ/
cGlwZT10cmlja2xlKDEwMDpkMTpyMikKLQotV2lsbCBjYXVzZSB0aGUgZmlsZSB0byBiZSBzZW50
IGluIDEwMCBieXRlIGNodW5rcyBzZXBhcmF0ZWQgYnkgYSAxcwotZGVsYXkgdW50aWwgdGhlIHdo
b2xlIGNvbnRlbnQgaGFzIGJlZW4gc2VudC4KLQotCi06bW9kOmBJbnRlcmZhY2UgPHBpcGVzPmAK
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorOm1vZDpgSW50ZXJmYWNlIDx3cHRzZXJ2ZS5waXBl
cz5gCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIAogLi4gYXV0b21vZHVsZTo6
IHdwdHNlcnZlLnBpcGVzCiAgICA6bWVtYmVyczoKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0c2VydmUvZG9jcy9yZXF1ZXN0
LnJzdCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
d3B0c2VydmUvZG9jcy9yZXF1ZXN0LnJzdAppbmRleCA3OTBlNGYwYmIwMjM5N2MwMDZjYjU0ODIz
YjkwZTgwOGEwZGJkNTUyLi5lZjViOGEwYzA4ZTc3MzZhMjMzNTk2ZDZmZjBkNGIzNzJiMjBiMzBm
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3dwdHNlcnZlL2RvY3MvcmVxdWVzdC5yc3QKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRzZXJ2ZS9kb2NzL3JlcXVlc3QucnN0
CkBAIC0zLDggKzMsOCBAQCBSZXF1ZXN0CiAKIFJlcXVlc3Qgb2JqZWN0LgogCi06bW9kOmBJbnRl
cmZhY2UgPHJlcXVlc3Q+YAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKzptb2Q6YEludGVy
ZmFjZSA8d3B0c2VydmUucmVxdWVzdD5gCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLQogCiAuLiBhdXRvbW9kdWxlOjogd3B0c2VydmUucmVxdWVzdAogICAgOm1lbWJlcnM6CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rv
b2xzL3dwdHNlcnZlL2RvY3MvcmVzcG9uc2UucnN0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRzZXJ2ZS9kb2NzL3Jlc3BvbnNlLnJzdAppbmRl
eCAyMzA3NWRmYjNkOTllZTEwNDVlN2IxZDhkNDEwNzI5NzYyYzZjNTExLi4wYzJmNDVjZTI2NGRi
YzZiMTNlYzkzZTkwNTkyMGFhMGQ1NmEyY2UyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHNlcnZlL2RvY3MvcmVzcG9uc2Uu
cnN0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvd3B0c2VydmUvZG9jcy9yZXNwb25zZS5yc3QKQEAgLTM0LDggKzM0LDggQEAgY29udGludWUg
dG8gbG9hZCBpbmRlZmluaXRlbHkuCiAKIC4uIF9yZXNwb25zZS5JbnRlcmZhY2U6CiAKLTptb2Q6
YEludGVyZmFjZSA8cmVzcG9uc2U+YAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCis6bW9k
OmBJbnRlcmZhY2UgPHdwdHNlcnZlLnJlc3BvbnNlPmAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLQogCiAuLiBhdXRvbW9kdWxlOjogd3B0c2VydmUucmVzcG9uc2UKICAgIDpt
ZW1iZXJzOgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy93cHRzZXJ2ZS9kb2NzL3JvdXRlci5yc3QgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHNlcnZlL2RvY3Mvcm91dGVyLnJz
dAppbmRleCAyMWQ2N2QyMjI2ODljMjFhOGFlZTFmOGI5OTU5MmNmNmRlODYwMDhhLi45ODZmNTgx
OTIyOGViNDZhYTE3YWU4MDI1YmYyZjgzYTE0NTkyYTZmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHNlcnZlL2RvY3Mvcm91
dGVyLnJzdAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3dwdHNlcnZlL2RvY3Mvcm91dGVyLnJzdApAQCAtNzEsOCArNzEsOCBAQCByZXNwb25z
aWJsZSBmb3IgY29uc3RydWN0aW5nIHRoZSByZXNwb25zZSB0byB0aGUgSFRUUCByZXF1ZXN0LiBT
ZWUKIAogLi4gX3JvdXRlci5JbnRlcmZhY2U6CiAKLTptb2Q6YEludGVyZmFjZSA8d3B0c2VydmU+
YAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCis6bW9kOmBJbnRlcmZhY2UgPHdwdHNlcnZl
LnJvdXRlcj5gCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAKIC4uIGF1dG9t
b2R1bGU6OiB3cHRzZXJ2ZS5yb3V0ZXIKICAgIDptZW1iZXJzOgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRzZXJ2ZS9kb2Nz
L3NlcnZlci5yc3QgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3dwdHNlcnZlL2RvY3Mvc2VydmVyLnJzdAppbmRleCA3MzJmOWZkYzc4YWY1YjY1ZWM4
ZGFhNzA3ZTJiZTU2Zjk5NTExODc1Li41Njg4YTBhM2JjZmQ3OWM5ZTBlNmE1N2MzZmM4MmY1NTRk
MTdlYTNkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3dwdHNlcnZlL2RvY3Mvc2VydmVyLnJzdAorKysgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHNlcnZlL2RvY3Mvc2VydmVy
LnJzdApAQCAtMTMsOCArMTMsOCBAQCBydW4gb24gcG9ydCA4MDgwIHVudGlsIGl0IGlzIGtpbGxl
ZDo6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByb3V0ZXM9WygiR0VUIiwgIioiLCBo
YW5kbGVycy5maWxlX2hhbmRsZXIpXSkKICAgaHR0cGQuc3RhcnQoYmxvY2s9VHJ1ZSkKIAotOm1v
ZDpgSW50ZXJmYWNlIDx3cHRzZXJ2ZT5gCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKzpt
b2Q6YEludGVyZmFjZSA8d3B0c2VydmUuc2VydmVyPmAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0KIAogLi4gYXV0b21vZHVsZTo6IHdwdHNlcnZlLnNlcnZlcgogICAgOm1lbWJl
cnM6CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3dwdHNlcnZlL2RvY3Mvc3Rhc2gucnN0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRzZXJ2ZS9kb2NzL3N0YXNoLnJzdAppbmRl
eCA0OTg0NmYyMTA2MWIzMGI0ZDRhNTRlN2U3Y2ZmYzlkZDEyMmE3YTY3Li44YmE1ZWQ3NGE0YWZm
N2Q0YzIyZWI5YjZjOTEzMmE4ZWZmYTQ0MDVhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHNlcnZlL2RvY3Mvc3Rhc2gucnN0
CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
d3B0c2VydmUvZG9jcy9zdGFzaC5yc3QKQEAgLTI0LDggKzI0LDggQEAgQSB0eXBpY2FsIGV4YW1w
bGUgb2YgdXNpbmcgYSBzdGFzaCB0byBzdG9yZSBzdGF0ZSBtaWdodCBiZTo6CiAgICAgICAgICAg
YXNzZXJ0IHJlcXVlc3Quc2VydmVyLnN0YXNoLnRha2Uoa2V5KSBpcyBOb25lCiAgICAgICAgICAg
cmV0dXJuIGtleQogCi06bW9kOmBJbnRlcmZhY2UgPHN0YXNoPmAKLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLQorOm1vZDpgSW50ZXJmYWNlIDx3cHRzZXJ2ZS5zdGFzaD5gCistLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0KIAogLi4gYXV0b21vZHVsZTo6IHdwdHNlcnZlLnN0YXNoCiAg
ICA6bWVtYmVyczoKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvd3B0c2VydmUvdGVzdHMvZnVuY3Rpb25hbC9iYXNlLnB5IGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRzZXJ2ZS90
ZXN0cy9mdW5jdGlvbmFsL2Jhc2UucHkKaW5kZXggZTQ5YzgyODdjNTk4NWFhNWViYmVkMDRlZjMw
NzBiYzc4NTgzMTczMy4uMGFlY2ViNjE1ODk2ODE1ZDA1ZWUyOTcxMzQxZWZjMjA0Y2NmMzE5YyAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90
b29scy93cHRzZXJ2ZS90ZXN0cy9mdW5jdGlvbmFsL2Jhc2UucHkKKysrIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRzZXJ2ZS90ZXN0cy9mdW5j
dGlvbmFsL2Jhc2UucHkKQEAgLTksNyArOSw3IEBAIGltcG9ydCB1bml0dGVzdAogZnJvbSBzaXgu
bW92ZXMudXJsbGliLnBhcnNlIGltcG9ydCB1cmxlbmNvZGUsIHVybHVuc3BsaXQKIGZyb20gc2l4
Lm1vdmVzLnVybGxpYi5yZXF1ZXN0IGltcG9ydCBSZXF1ZXN0IGFzIEJhc2VSZXF1ZXN0CiBmcm9t
IHNpeC5tb3Zlcy51cmxsaWIucmVxdWVzdCBpbXBvcnQgdXJsb3BlbgotZnJvbSBzaXggaW1wb3J0
IGJpbmFyeV90eXBlLCBpdGVyaXRlbXMKK2Zyb20gc2l4IGltcG9ydCBiaW5hcnlfdHlwZSwgaXRl
cml0ZW1zLCBQWTMKIAogZnJvbSBoeXBlciBpbXBvcnQgSFRUUDIwQ29ubmVjdGlvbiwgdGxzCiBp
bXBvcnQgc3NsCkBAIC03NSwxMCArNzUsMTUgQEAgY2xhc3MgVGVzdFVzaW5nU2VydmVyKHVuaXR0
ZXN0LlRlc3RDYXNlKToKICAgICAgICAgICAgIHJlcS5hZGRfZGF0YShib2R5KQogCiAgICAgICAg
IGlmIGF1dGggaXMgbm90IE5vbmU6Ci0gICAgICAgICAgICByZXEuYWRkX2hlYWRlcigiQXV0aG9y
aXphdGlvbiIsICJCYXNpYyAlcyIgJSBiYXNlNjQuYjY0ZW5jb2RlKCclczolcycgJSBhdXRoKSkK
KyAgICAgICAgICAgIHJlcS5hZGRfaGVhZGVyKCJBdXRob3JpemF0aW9uIiwgYiJCYXNpYyAlcyIg
JSBiYXNlNjQuYjY0ZW5jb2RlKGIiJXM6JXMiICUgYXV0aCkpCiAKICAgICAgICAgcmV0dXJuIHVy
bG9wZW4ocmVxKQogCisgICAgZGVmIGFzc2VydF9tdWx0aXBsZV9oZWFkZXJzKHNlbGYsIHJlc3As
IG5hbWUsIHZhbHVlcyk6CisgICAgICAgIGlmIFBZMzoKKyAgICAgICAgICAgIGFzc2VydCByZXNw
LmluZm8oKS5nZXRfYWxsKG5hbWUpID09IHZhbHVlcworICAgICAgICBlbHNlOgorICAgICAgICAg
ICAgYXNzZXJ0IHJlc3AuaW5mbygpW25hbWVdID09ICIsICIuam9pbih2YWx1ZXMpCiAKIEBweXRl
c3QubWFyay5za2lwaWYobm90IHdwdHNlcnZlLnV0aWxzLmh0dHAyX2NvbXBhdGlibGUoKSwgcmVh
c29uPSJoMiBzZXJ2ZXIgb25seSB3b3JrcyBpbiBweXRob24gMi43LjE1IikKIGNsYXNzIFRlc3RV
c2luZ0gyU2VydmVyOgpAQCAtMTAxLDUgKzEwNiw1MSBAQCBjbGFzcyBUZXN0VXNpbmdIMlNlcnZl
cjoKICAgICAgICAgc2VsZi5jb25uLmNvbm5lY3QoKQogCiAgICAgZGVmIHRlYXJkb3duX21ldGhv
ZChzZWxmLCB0ZXN0X21ldGhvZCk6Ci0gICAgICAgIHNlbGYuY29ubi5jbG9zZSgpCiAgICAgICAg
IHNlbGYuc2VydmVyLnN0b3AoKQorCisKK2NsYXNzIFRlc3RXcmFwcGVySGFuZGxlclVzaW5nU2Vy
dmVyKFRlc3RVc2luZ1NlcnZlcik6CisgICAgJycnRm9yIGEgd3JhcHBlciBoYW5kbGVyLCBhIC5q
cyBkdW1teSB0ZXN0aW5nIGZpbGUgaXMgcmVxdXJpZWQgdG8gcmVuZGVyCisgICAgdGhlIGh0bWwg
ZmlsZS4gVGhpcyBjbGFzcyBleHRlbmRzIHRoZSBUZXN0VXNpbmdTZXJ2ZXIgYW5kIGRvIHNvbWUg
c29tZQorICAgIGV4dHJhIHdvcms6IGl0IHRyaWVzIHRvIGdlbmVyYXRlIHRoZSBkdW1teSAuanMg
ZmlsZSBpbiBzZXRVcCBhbmQKKyAgICByZW1vdmUgaXQgaW4gdGVhckRvd24uJycnCisgICAgZHVt
bXlfanNfZmlsZXMgPSB7fQorCisgICAgZGVmIGdlbl9qc19maWxlKHNlbGYsIGZpbGVuYW1lLCBl
bXB0eT1UcnVlLCBjb250ZW50PWInJyk6CisgICAgICAgIHNlbGYucmVtb3ZlX2pzX2ZpbGUoZmls
ZW5hbWUpCisKKyAgICAgICAgd2l0aCBvcGVuKGZpbGVuYW1lLCAnd2InKSBhcyBmcDoKKyAgICAg
ICAgICAgIGlmIG5vdCBlbXB0eToKKyAgICAgICAgICAgICAgICBmcC53cml0ZShjb250ZW50KQor
CisgICAgZGVmIHJlbW92ZV9qc19maWxlKHNlbGYsIGZpbGVuYW1lKToKKyAgICAgICAgaWYgb3Mu
cGF0aC5leGlzdHMoZmlsZW5hbWUpOgorICAgICAgICAgICAgb3MucmVtb3ZlKGZpbGVuYW1lKQor
CisgICAgZGVmIHNldFVwKHNlbGYpOgorICAgICAgICBzdXBlcihUZXN0V3JhcHBlckhhbmRsZXJV
c2luZ1NlcnZlciwgc2VsZikuc2V0VXAoKQorCisgICAgICAgIGZvciBmaWxlbmFtZSwgY29udGVu
dCBpbiBzZWxmLmR1bW15X2pzX2ZpbGVzLml0ZW1zKCk6CisgICAgICAgICAgICBmaWxlcGF0aCA9
IG9zLnBhdGguam9pbihkb2Nfcm9vdCwgZmlsZW5hbWUpCisgICAgICAgICAgICBpZiBjb250ZW50
ID09ICcnOgorICAgICAgICAgICAgICAgIHNlbGYuZ2VuX2pzX2ZpbGUoZmlsZXBhdGgpCisgICAg
ICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgIHNlbGYuZ2VuX2pzX2ZpbGUoZmlsZXBhdGgs
IEZhbHNlLCBjb250ZW50KQorCisgICAgZGVmIHJ1bl93cmFwcGVyX3Rlc3Qoc2VsZiwgcmVxX2Zp
bGUsIGhlYWRlcl9kYXRhLCB3cmFwcGVyX2hhbmRsZXIpOgorICAgICAgICByb3V0ZSA9ICgnR0VU
JywgcmVxX2ZpbGUsIHdyYXBwZXJfaGFuZGxlcigpKQorICAgICAgICBzZWxmLnNlcnZlci5yb3V0
ZXIucmVnaXN0ZXIoKnJvdXRlKQorCisgICAgICAgIHJlc3AgPSBzZWxmLnJlcXVlc3Qocm91dGVb
MV0pCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoMjAwLCByZXNwLmdldGNvZGUoKSkKKyAgICAg
ICAgc2VsZi5hc3NlcnRFcXVhbChoZWFkZXJfZGF0YSwgcmVzcC5pbmZvKClbJ0NvbnRlbnQtVHlw
ZSddKQorCisgICAgICAgIHdpdGggb3Blbihvcy5wYXRoLmpvaW4oZG9jX3Jvb3QsIHJlcV9maWxl
KSwgJ3JiJykgYXMgZnA6CisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGZwLnJlYWQoKSwg
cmVzcC5yZWFkKCkpCisKKyAgICBkZWYgdGVhckRvd24oc2VsZik6CisgICAgICAgIHN1cGVyKFRl
c3RXcmFwcGVySGFuZGxlclVzaW5nU2VydmVyLCBzZWxmKS50ZWFyRG93bigpCisKKyAgICAgICAg
Zm9yIGZpbGVuYW1lLCBfIGluIHNlbGYuZHVtbXlfanNfZmlsZXMuaXRlbXMoKToKKyAgICAgICAg
ICAgIGZpbGVwYXRoID0gb3MucGF0aC5qb2luKGRvY19yb290LCBmaWxlbmFtZSkKKyAgICAgICAg
ICAgIHNlbGYucmVtb3ZlX2pzX2ZpbGUoZmlsZXBhdGgpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHNlcnZlL3Rlc3RzL2Z1
bmN0aW9uYWwvZG9jcm9vdC9iYXIuYW55Lndvcmtlci5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRzZXJ2ZS90ZXN0cy9mdW5jdGlvbmFs
L2RvY3Jvb3QvYmFyLmFueS53b3JrZXIuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yMzgyOTEzNTI4ZTY5M2Iz
YTVkNTZjNjYwYTQ1MDYwOTgwYjU0OGMzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRzZXJ2ZS90ZXN0cy9mdW5j
dGlvbmFsL2RvY3Jvb3QvYmFyLmFueS53b3JrZXIuaHRtbApAQCAtMCwwICsxIEBACis8IS0tIFRo
aXMgZmlsZSBpcyByZXF1aXJlZCBmb3IgV2ViS2l0IHRlc3QgaW5mcmFzdHJ1Y3R1cmUgdG8gcnVu
IHRoZSB0ZW1wbGF0ZWQgdGVzdCAtLT4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3dwdHNlcnZlL3Rlc3RzL2Z1bmN0aW9uYWwvZG9jcm9vdC9iYXIuYW55Lndvcmtlci5qcyBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0c2VydmUv
dGVzdHMvZnVuY3Rpb25hbC9kb2Nyb290L2Jhci5hbnkud29ya2VyLmpzCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjY2
YjdiZTM5MDQ5ZWVkYTFkYzVkODNkMmUwMGFiYTRmYmY4OGRlZTMKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHNl
cnZlL3Rlc3RzL2Z1bmN0aW9uYWwvZG9jcm9vdC9iYXIuYW55Lndvcmtlci5qcwpAQCAtMCwwICsx
LDkgQEAKKworc2VsZi5HTE9CQUwgPSB7CisgIGlzV2luZG93OiBmdW5jdGlvbigpIHsgcmV0dXJu
IGZhbHNlOyB9LAorICBpc1dvcmtlcjogZnVuY3Rpb24oKSB7IHJldHVybiB0cnVlOyB9LAorfTsK
K2ltcG9ydFNjcmlwdHMoIi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiKTsKKworaW1wb3J0U2Ny
aXB0cygiL2Jhci5hbnkuanMiKTsKK2RvbmUoKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0c2VydmUvdGVzdHMvZnVuY3Rp
b25hbC9kb2Nyb290L2Zvby5hbnkuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0c2VydmUvdGVzdHMvZnVuY3Rpb25hbC9kb2Nyb290L2Zv
by5hbnkuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44OGUyNjY1YzY2OTA0MjExZDBkODQxN2EwNTdkZjI5OTdh
ZjhlODAyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy93cHRzZXJ2ZS90ZXN0cy9mdW5jdGlvbmFsL2RvY3Jvb3QvZm9v
LmFueS5odG1sCkBAIC0wLDAgKzEsMTQgQEAKKzwhZG9jdHlwZSBodG1sPgorPG1ldGEgY2hhcnNl
dD11dGYtOD4KKworPHNjcmlwdD4KK3NlbGYuR0xPQkFMID0geworICBpc1dpbmRvdzogZnVuY3Rp
b24oKSB7IHJldHVybiB0cnVlOyB9LAorICBpc1dvcmtlcjogZnVuY3Rpb24oKSB7IHJldHVybiBm
YWxzZTsgfSwKK307Cis8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJu
ZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVw
b3J0LmpzIj48L3NjcmlwdD4KKworPGRpdiBpZD1sb2c+PC9kaXY+Cis8c2NyaXB0IHNyYz0iL2Zv
by5hbnkuanMiPjwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRzZXJ2ZS90ZXN0cy9mdW5jdGlvbmFsL2RvY3Jv
b3QvZm9vLmFueS5zZXJ2aWNld29ya2VyLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHNlcnZlL3Rlc3RzL2Z1bmN0aW9uYWwvZG9jcm9v
dC9mb28uYW55LnNlcnZpY2V3b3JrZXIuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44ZGNiMTFhMzc2ODdmZjc2
ZDg0YTNkYmE1MTMwOWRjMDMzOWU2YjE4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRzZXJ2ZS90ZXN0cy9mdW5j
dGlvbmFsL2RvY3Jvb3QvZm9vLmFueS5zZXJ2aWNld29ya2VyLmh0bWwKQEAgLTAsMCArMSwxNSBA
QAorPCFkb2N0eXBlIGh0bWw+Cis8bWV0YSBjaGFyc2V0PXV0Zi04PgorCis8c2NyaXB0IHNyYz0i
L3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iL3Jlc291
cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8ZGl2IGlkPWxvZz48L2Rpdj4K
KzxzY3JpcHQ+CisoYXN5bmMgZnVuY3Rpb24oKSB7CisgIGNvbnN0IHNjb3BlID0gJ2RvZXMvbm90
L2V4aXN0JzsKKyAgbGV0IHJlZyA9IGF3YWl0IG5hdmlnYXRvci5zZXJ2aWNlV29ya2VyLmdldFJl
Z2lzdHJhdGlvbihzY29wZSk7CisgIGlmIChyZWcpIGF3YWl0IHJlZy51bnJlZ2lzdGVyKCk7Cisg
IHJlZyA9IGF3YWl0IG5hdmlnYXRvci5zZXJ2aWNlV29ya2VyLnJlZ2lzdGVyKCIvZm9vLmFueS53
b3JrZXIuanMiLCB7c2NvcGV9KTsKKyAgZmV0Y2hfdGVzdHNfZnJvbV93b3JrZXIocmVnLmluc3Rh
bGxpbmcpOworfSkoKTsKKzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRzZXJ2ZS90ZXN0cy9mdW5jdGlvbmFs
L2RvY3Jvb3QvZm9vLmFueS5zaGFyZWR3b3JrZXIuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0c2VydmUvdGVzdHMvZnVuY3Rpb25hbC9k
b2Nyb290L2Zvby5hbnkuc2hhcmVkd29ya2VyLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjc3MTAxNjk3ZmY4
Y2JlNzZhZjEwNzgyNmFkMGZhMjQzYjc1YjA0OAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0c2VydmUvdGVzdHMv
ZnVuY3Rpb25hbC9kb2Nyb290L2Zvby5hbnkuc2hhcmVkd29ya2VyLmh0bWwKQEAgLTAsMCArMSw5
IEBACis8IWRvY3R5cGUgaHRtbD4KKzxtZXRhIGNoYXJzZXQ9dXRmLTg+CisKKzxzY3JpcHQgc3Jj
PSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIvcmVz
b3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxkaXYgaWQ9bG9nPjwvZGl2
PgorPHNjcmlwdD4KK2ZldGNoX3Rlc3RzX2Zyb21fd29ya2VyKG5ldyBTaGFyZWRXb3JrZXIoIi9m
b28uYW55Lndvcmtlci5qcyIpKTsKKzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRzZXJ2ZS90ZXN0cy9mdW5j
dGlvbmFsL2RvY3Jvb3QvZm9vLmFueS53b3JrZXIuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0c2VydmUvdGVzdHMvZnVuY3Rpb25hbC9k
b2Nyb290L2Zvby5hbnkud29ya2VyLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjc3ZWRkOTcxYTRlYzBjNWRm
ZDQ4Nzg5YTg4OWY3ZDNjM2IxMGEwOQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0c2VydmUvdGVzdHMvZnVuY3Rp
b25hbC9kb2Nyb290L2Zvby5hbnkud29ya2VyLmh0bWwKQEAgLTAsMCArMSw5IEBACis8IWRvY3R5
cGUgaHRtbD4KKzxtZXRhIGNoYXJzZXQ9dXRmLTg+CisKKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2Vz
L3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3Ro
YXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxkaXYgaWQ9bG9nPjwvZGl2PgorPHNjcmlwdD4K
K2ZldGNoX3Rlc3RzX2Zyb21fd29ya2VyKG5ldyBXb3JrZXIoIi9mb28uYW55Lndvcmtlci5qcyIp
KTsKKzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy93cHRzZXJ2ZS90ZXN0cy9mdW5jdGlvbmFsL2RvY3Jvb3QvZm9v
LndpbmRvdy5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy93cHRzZXJ2ZS90ZXN0cy9mdW5jdGlvbmFsL2RvY3Jvb3QvZm9vLndpbmRvdy5odG1s
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjA0YzY5NGRkZjJhYmEyMGVjNGJhY2U4NzFhN2QzYjQ1MWQ1YjI1NWQKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3dwdHNlcnZlL3Rlc3RzL2Z1bmN0aW9uYWwvZG9jcm9vdC9mb28ud2luZG93Lmh0
bWwKQEAgLTAsMCArMSw4IEBACis8IWRvY3R5cGUgaHRtbD4KKzxtZXRhIGNoYXJzZXQ9dXRmLTg+
CisKKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxz
Y3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKwor
PGRpdiBpZD1sb2c+PC9kaXY+Cis8c2NyaXB0IHNyYz0iL2Zvby53aW5kb3cuanMiPjwvc2NyaXB0
PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy93cHRzZXJ2ZS90ZXN0cy9mdW5jdGlvbmFsL2RvY3Jvb3QvZm9vLndvcmtlci5odG1s
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRz
ZXJ2ZS90ZXN0cy9mdW5jdGlvbmFsL2RvY3Jvb3QvZm9vLndvcmtlci5odG1sCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjNlZGRmMzZmMWMzYTkxMTk3M2I2YWUzMWZhMGM2MTYyYmNiNTZlY2IKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dw
dHNlcnZlL3Rlc3RzL2Z1bmN0aW9uYWwvZG9jcm9vdC9mb28ud29ya2VyLmh0bWwKQEAgLTAsMCAr
MSw5IEBACis8IWRvY3R5cGUgaHRtbD4KKzxtZXRhIGNoYXJzZXQ9dXRmLTg+CisKKzxzY3JpcHQg
c3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIv
cmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxkaXYgaWQ9bG9nPjwv
ZGl2PgorPHNjcmlwdD4KK2ZldGNoX3Rlc3RzX2Zyb21fd29ya2VyKG5ldyBXb3JrZXIoIi9mb28u
d29ya2VyLmpzIikpOworPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHNlcnZlL3Rlc3RzL2Z1bmN0aW9uYWwv
ZG9jcm9vdC9pbnZhbGlkLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy93cHRzZXJ2ZS90ZXN0cy9mdW5jdGlvbmFsL2RvY3Jvb3QvaW52YWxpZC5w
eQppbmRleCAwMTdkNGQ5ZDY5N2I5ZTQxMTdjN2MwM2FmN2IxZjhlYWMyMTk3MTA1Li45OWY3Yjcy
Y2VlZmRiNjNmNDBmYTFmZDM3Y2NmZmU0OTdkM2VlMjk2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHNlcnZlL3Rlc3RzL2Z1
bmN0aW9uYWwvZG9jcm9vdC9pbnZhbGlkLnB5CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0c2VydmUvdGVzdHMvZnVuY3Rpb25hbC9kb2Ny
b290L2ludmFsaWQucHkKQEAgLTEsMyArMSwzIEBACi0jIE9vcHMuLi4KLWRlZiBtYWluKHJlcXVl
c3QsIHJlc3BvbnNlCisjIEludGVudGlvbmFsIHN5bnRheCBlcnJvciBpbiB0aGlzIGZpbGUKK2Rl
ZiBtYWluKHJlcXVlc3QsIHJlc3BvbnNlOgogICAgIHJldHVybiAiRkFJTCIKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0c2Vy
dmUvdGVzdHMvZnVuY3Rpb25hbC9kb2Nyb290L3N1Yl9oZWFkZXJfb3JfZGVmYXVsdC5zdWIudHh0
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRz
ZXJ2ZS90ZXN0cy9mdW5jdGlvbmFsL2RvY3Jvb3Qvc3ViX2hlYWRlcl9vcl9kZWZhdWx0LnN1Yi50
eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uZjFmOTQxYWExNjBkOTNiYzAwODUxNmMxNGNmZjhmZjllMTY1N2VhOAot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvd3B0c2VydmUvdGVzdHMvZnVuY3Rpb25hbC9kb2Nyb290L3N1Yl9oZWFkZXJf
b3JfZGVmYXVsdC5zdWIudHh0CkBAIC0wLDAgKzEsMiBAQAore3toZWFkZXJfb3JfZGVmYXVsdChY
LVByZXNlbnQsIHByZXNlbnQtZGVmYXVsdCl9fQore3toZWFkZXJfb3JfZGVmYXVsdChYLUFic2Vu
dCwgYWJzZW50LWRlZmF1bHQpfX0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0c2VydmUvdGVzdHMvZnVuY3Rpb25hbC9kb2Ny
b290L3N1YmRpci9zdWJfcGF0aC5zdWIudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRzZXJ2ZS90ZXN0cy9mdW5jdGlvbmFsL2RvY3Jvb3Qv
c3ViZGlyL3N1Yl9wYXRoLnN1Yi50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDQwMjdmMjg1NWViNmI5NWRhZjdl
MzRjNDI2OTQ0NGQ4ODE2NjI0NQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0c2VydmUvdGVzdHMvZnVuY3Rpb25h
bC9kb2Nyb290L3N1YmRpci9zdWJfcGF0aC5zdWIudHh0CkBAIC0wLDAgKzEsMyBAQAore3tmc19w
YXRoKHN1Yl9wYXRoLnN1Yi50eHQpfX0KK3t7ZnNfcGF0aCguLi9zdWJfcGF0aC5zdWIudHh0KX19
Cit7e2ZzX3BhdGgoL3N1Yl9wYXRoLnN1Yi50eHQpfX0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0c2VydmUvdGVzdHMvZnVu
Y3Rpb25hbC9kb2Nyb290L3N1YmRpci93M2MtaW1wb3J0LmxvZyBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0c2VydmUvdGVzdHMvZnVuY3Rpb25h
bC9kb2Nyb290L3N1YmRpci93M2MtaW1wb3J0LmxvZwppbmRleCAxYTgwM2Y0ZmZkNTcxMzMwZTUz
YTA4MmJjMGUyOTQxZTNmNDljY2UzLi42YmMyODMzMmE0NTdlYmQwZjM0Mjc2MjE2OWY3MTk4Yzhk
NjZhZTg3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3dwdHNlcnZlL3Rlc3RzL2Z1bmN0aW9uYWwvZG9jcm9vdC9zdWJkaXIvdzNj
LWltcG9ydC5sb2cKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy93cHRzZXJ2ZS90ZXN0cy9mdW5jdGlvbmFsL2RvY3Jvb3Qvc3ViZGlyL3czYy1p
bXBvcnQubG9nCkBAIC0xNywzICsxNyw0IEBAIExpc3Qgb2YgZmlsZXM6CiAvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRzZXJ2ZS90ZXN0cy9mdW5j
dGlvbmFsL2RvY3Jvb3Qvc3ViZGlyL2V4YW1wbGVfbW9kdWxlLnB5CiAvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRzZXJ2ZS90ZXN0cy9mdW5jdGlv
bmFsL2RvY3Jvb3Qvc3ViZGlyL2ZpbGUudHh0CiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRzZXJ2ZS90ZXN0cy9mdW5jdGlvbmFsL2RvY3Jvb3Qv
c3ViZGlyL2ltcG9ydF9oYW5kbGVyLnB5CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy93cHRzZXJ2ZS90ZXN0cy9mdW5jdGlvbmFsL2RvY3Jvb3Qvc3Vi
ZGlyL3N1Yl9wYXRoLnN1Yi50eHQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0c2VydmUvdGVzdHMvZnVuY3Rpb25hbC9kb2Ny
b290L3czYy1pbXBvcnQubG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy93cHRzZXJ2ZS90ZXN0cy9mdW5jdGlvbmFsL2RvY3Jvb3QvdzNjLWltcG9y
dC5sb2cKaW5kZXggZDNmZTYyNzAwZjVlMjA0ZWY3NzJkM2ZhY2EyMjVlZDgyODdmNmZiOS4uNWQz
MTZmNDMxNThlMmI1YTExYjQ0YmVjMzQ4MTg0NDIxODMzNmUzZCAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRzZXJ2ZS90ZXN0
cy9mdW5jdGlvbmFsL2RvY3Jvb3QvdzNjLWltcG9ydC5sb2cKKysrIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRzZXJ2ZS90ZXN0cy9mdW5jdGlv
bmFsL2RvY3Jvb3QvdzNjLWltcG9ydC5sb2cKQEAgLTE0LDcgKzE0LDE0IEBAIFByb3BlcnR5IHZh
bHVlcyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgogTm9uZQogLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiBM
aXN0IG9mIGZpbGVzOgorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvd3B0c2VydmUvdGVzdHMvZnVuY3Rpb25hbC9kb2Nyb290L2Jhci5hbnkud29ya2Vy
LmpzCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93
cHRzZXJ2ZS90ZXN0cy9mdW5jdGlvbmFsL2RvY3Jvb3QvZG9jdW1lbnQudHh0CisvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRzZXJ2ZS90ZXN0cy9m
dW5jdGlvbmFsL2RvY3Jvb3QvZm9vLmFueS5odG1sCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRzZXJ2ZS90ZXN0cy9mdW5jdGlvbmFsL2RvY3Jv
b3QvZm9vLmFueS5zZXJ2aWNld29ya2VyLmh0bWwKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHNlcnZlL3Rlc3RzL2Z1bmN0aW9uYWwvZG9jcm9v
dC9mb28uYW55LnNoYXJlZHdvcmtlci5odG1sCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRzZXJ2ZS90ZXN0cy9mdW5jdGlvbmFsL2RvY3Jvb3Qv
Zm9vLmFueS53b3JrZXIuaHRtbAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvd3B0c2VydmUvdGVzdHMvZnVuY3Rpb25hbC9kb2Nyb290L2Zvby53aW5k
b3cuaHRtbAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvd3B0c2VydmUvdGVzdHMvZnVuY3Rpb25hbC9kb2Nyb290L2Zvby53b3JrZXIuaHRtbAogL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0c2VydmUv
dGVzdHMvZnVuY3Rpb25hbC9kb2Nyb290L2ludmFsaWQucHkKIC9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHNlcnZlL3Rlc3RzL2Z1bmN0aW9uYWwv
ZG9jcm9vdC9ub19tYWluLnB5CiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy93cHRzZXJ2ZS90ZXN0cy9mdW5jdGlvbmFsL2RvY3Jvb3Qvc3ViLnN1Yi50
eHQKQEAgLTIyLDYgKzI5LDcgQEAgTGlzdCBvZiBmaWxlczoKIC9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHNlcnZlL3Rlc3RzL2Z1bmN0aW9uYWwv
ZG9jcm9vdC9zdWJfZmlsZV9oYXNoLnN1Yi50eHQKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHNlcnZlL3Rlc3RzL2Z1bmN0aW9uYWwvZG9jcm9v
dC9zdWJfZmlsZV9oYXNoX3N1YmplY3QudHh0CiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRzZXJ2ZS90ZXN0cy9mdW5jdGlvbmFsL2RvY3Jvb3Qv
c3ViX2ZpbGVfaGFzaF91bnJlY29nbml6ZWQuc3ViLnR4dAorL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0c2VydmUvdGVzdHMvZnVuY3Rpb25hbC9k
b2Nyb290L3N1Yl9oZWFkZXJfb3JfZGVmYXVsdC5zdWIudHh0CiAvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRzZXJ2ZS90ZXN0cy9mdW5jdGlvbmFs
L2RvY3Jvb3Qvc3ViX2hlYWRlcnMuc3ViLnR4dAogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0c2VydmUvdGVzdHMvZnVuY3Rpb25hbC9kb2Nyb290
L3N1Yl9oZWFkZXJzLnR4dAogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvd3B0c2VydmUvdGVzdHMvZnVuY3Rpb25hbC9kb2Nyb290L3N1Yl9sb2NhdGlv
bi5zdWIudHh0CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3dwdHNlcnZlL3Rlc3RzL2Z1bmN0aW9uYWwvdGVzdF9jb29raWVzLnB5
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRz
ZXJ2ZS90ZXN0cy9mdW5jdGlvbmFsL3Rlc3RfY29va2llcy5weQppbmRleCA2YmNiODQyZTYyNTYx
YjVmZTBmN2M5NWIzZmFmNWViOGE1Mjc2NzJiLi4yZTJkMGQ2NzcxYmEyNmExZmJlN2U4ZmM4YmIy
ZTI1OThiYzM0MjIzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHNlcnZlL3Rlc3RzL2Z1bmN0aW9uYWwvdGVzdF9jb29raWVz
LnB5CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvd3B0c2VydmUvdGVzdHMvZnVuY3Rpb25hbC90ZXN0X2Nvb2tpZXMucHkKQEAgLTEsNCArMSwz
IEBACi1pbXBvcnQgc3lzCiBpbXBvcnQgdW5pdHRlc3QKIAogaW1wb3J0IHB5dGVzdApAQCAtNTEs
NyArNTAsNiBAQCBjbGFzcyBUZXN0UmVzcG9uc2VTZXRDb29raWUoVGVzdFVzaW5nU2VydmVyKToK
ICAgICAgICAgI1Nob3VsZCBhbHNvIGNoZWNrIHRoYXQgZXhwaXJlcyBpcyBpbiB0aGUgcGFzdAog
CiBjbGFzcyBUZXN0UmVxdWVzdENvb2tpZXMoVGVzdFVzaW5nU2VydmVyKToKLSAgICBAcHl0ZXN0
Lm1hcmsueGZhaWwoc3lzLnZlcnNpb25faW5mbyA+PSAoMywpLCByZWFzb249IndwdHNlcnZlIG9u
bHkgd29ya3Mgb24gUHkyIikKICAgICBkZWYgdGVzdF9zZXRfY29va2llKHNlbGYpOgogICAgICAg
ICBAd3B0c2VydmUuaGFuZGxlcnMuaGFuZGxlcgogICAgICAgICBkZWYgaGFuZGxlcihyZXF1ZXN0
LCByZXNwb25zZSk6CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHNlcnZlL3Rlc3RzL2Z1bmN0aW9uYWwvdGVzdF9oYW5kbGVy
cy5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
d3B0c2VydmUvdGVzdHMvZnVuY3Rpb25hbC90ZXN0X2hhbmRsZXJzLnB5CmluZGV4IDE1YzdjYjdl
ODAzZDc3MWJiMzgxNGRlMmIwZTg1YWM2MDZmMjc1OWYuLjgxNjNkMzY1YzkxOWMyZjBkODY3ZjVk
NjAyNmQyZjhiNmYxYzIwYjkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0c2VydmUvdGVzdHMvZnVuY3Rpb25hbC90ZXN0X2hh
bmRsZXJzLnB5CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvd3B0c2VydmUvdGVzdHMvZnVuY3Rpb25hbC90ZXN0X2hhbmRsZXJzLnB5CkBAIC05
LDcgKzksOSBAQCBmcm9tIHNpeC5tb3Zlcy51cmxsaWIuZXJyb3IgaW1wb3J0IEhUVFBFcnJvcgog
CiB3cHRzZXJ2ZSA9IHB5dGVzdC5pbXBvcnRvcnNraXAoIndwdHNlcnZlIikKIGZyb20gLmJhc2Ug
aW1wb3J0IFRlc3RVc2luZ1NlcnZlciwgVGVzdFVzaW5nSDJTZXJ2ZXIsIGRvY19yb290Citmcm9t
IC5iYXNlIGltcG9ydCBUZXN0V3JhcHBlckhhbmRsZXJVc2luZ1NlcnZlcgogCitmcm9tIHNlcnZl
IGltcG9ydCBzZXJ2ZQogCiBjbGFzcyBUZXN0RmlsZUhhbmRsZXIoVGVzdFVzaW5nU2VydmVyKToK
ICAgICBkZWYgdGVzdF9HRVQoc2VsZik6CkBAIC0xOCw3ICsyMCw2IEBAIGNsYXNzIFRlc3RGaWxl
SGFuZGxlcihUZXN0VXNpbmdTZXJ2ZXIpOgogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCJ0ZXh0
L3BsYWluIiwgcmVzcC5pbmZvKClbIkNvbnRlbnQtVHlwZSJdKQogICAgICAgICBzZWxmLmFzc2Vy
dEVxdWFsKG9wZW4ob3MucGF0aC5qb2luKGRvY19yb290LCAiZG9jdW1lbnQudHh0IiksICdyYicp
LnJlYWQoKSwgcmVzcC5yZWFkKCkpCiAKLSAgICBAcHl0ZXN0Lm1hcmsueGZhaWwoc3lzLnZlcnNp
b25faW5mbyA+PSAoMywpLCByZWFzb249IndwdHNlcnZlIG9ubHkgd29ya3Mgb24gUHkyIikKICAg
ICBkZWYgdGVzdF9oZWFkZXJzKHNlbGYpOgogICAgICAgICByZXNwID0gc2VsZi5yZXF1ZXN0KCIv
d2l0aF9oZWFkZXJzLnR4dCIpCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoMjAwLCByZXNwLmdl
dGNvZGUoKSkKQEAgLTI3LDcgKzI4LDcgQEAgY2xhc3MgVGVzdEZpbGVIYW5kbGVyKFRlc3RVc2lu
Z1NlcnZlcik6CiAgICAgICAgICMgVGhpcyB3aWxsIGZhaWwgaWYgaXQgaXNuJ3QgYSB2YWxpZCB1
dWlkCiAgICAgICAgIHV1aWQuVVVJRChyZXNwLmluZm8oKVsiQW5vdGhlci1IZWFkZXIiXSkKICAg
ICAgICAgc2VsZi5hc3NlcnRFcXVhbChyZXNwLmluZm8oKVsiU2FtZS1WYWx1ZS1IZWFkZXIiXSwg
cmVzcC5pbmZvKClbIkFub3RoZXItSGVhZGVyIl0pCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwo
cmVzcC5pbmZvKClbIkRvdWJsZS1IZWFkZXIiXSwgIlBBLCBTUyIpCisgICAgICAgIHNlbGYuYXNz
ZXJ0X211bHRpcGxlX2hlYWRlcnMocmVzcCwgIkRvdWJsZS1IZWFkZXIiLCBbIlBBIiwgIlNTIl0p
CiAKIAogICAgIGRlZiB0ZXN0X3JhbmdlKHNlbGYpOgpAQCAtNTksNyArNjAsNiBAQCBjbGFzcyBU
ZXN0RmlsZUhhbmRsZXIoVGVzdFVzaW5nU2VydmVyKToKICAgICAgICAgICAgICAgICAgICAgICAg
ICByZXNwLmluZm8oKVsnQ29udGVudC1SYW5nZSddKQogICAgICAgICBzZWxmLmFzc2VydEVxdWFs
KGV4cGVjdGVkWy0xMDpdLCBkYXRhKQogCi0gICAgQHB5dGVzdC5tYXJrLnhmYWlsKHN5cy52ZXJz
aW9uX2luZm8gPj0gKDMsKSwgcmVhc29uPSJ3cHRzZXJ2ZSBvbmx5IHdvcmtzIG9uIFB5MiIpCiAg
ICAgZGVmIHRlc3RfbXVsdGlwbGVfcmFuZ2VzKHNlbGYpOgogICAgICAgICByZXNwID0gc2VsZi5y
ZXF1ZXN0KCIvZG9jdW1lbnQudHh0IiwgaGVhZGVycz17IlJhbmdlIjoiYnl0ZXM9MS0yLDUtNyw2
LTEwIn0pCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoMjA2LCByZXNwLmdldGNvZGUoKSkKQEAg
LTY3LDE2ICs2NywxNiBAQCBjbGFzcyBUZXN0RmlsZUhhbmRsZXIoVGVzdFVzaW5nU2VydmVyKToK
ICAgICAgICAgZXhwZWN0ZWQgPSBvcGVuKG9zLnBhdGguam9pbihkb2Nfcm9vdCwgImRvY3VtZW50
LnR4dCIpLCAncmInKS5yZWFkKCkKICAgICAgICAgc2VsZi5hc3NlcnRUcnVlKHJlc3AuaW5mbygp
WyJDb250ZW50LVR5cGUiXS5zdGFydHN3aXRoKCJtdWx0aXBhcnQvYnl0ZXJhbmdlczsgYm91bmRh
cnk9IikpCiAgICAgICAgIGJvdW5kYXJ5ID0gcmVzcC5pbmZvKClbIkNvbnRlbnQtVHlwZSJdLnNw
bGl0KCJib3VuZGFyeT0iKVsxXQotICAgICAgICBwYXJ0cyA9IGRhdGEuc3BsaXQoIi0tIiArIGJv
dW5kYXJ5KQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCJcclxuIiwgcGFydHNbMF0pCi0gICAg
ICAgIHNlbGYuYXNzZXJ0RXF1YWwoIi0tIiwgcGFydHNbLTFdKQotICAgICAgICBleHBlY3RlZF9w
YXJ0cyA9IFsoIjEtMiIsIGV4cGVjdGVkWzE6M10pLCAoIjUtMTAiLCBleHBlY3RlZFs1OjExXSld
CisgICAgICAgIHBhcnRzID0gZGF0YS5zcGxpdChiIi0tIiArIGJvdW5kYXJ5LmVuY29kZSgiYXNj
aWkiKSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChiIlxyXG4iLCBwYXJ0c1swXSkKKyAgICAg
ICAgc2VsZi5hc3NlcnRFcXVhbChiIi0tIiwgcGFydHNbLTFdKQorICAgICAgICBleHBlY3RlZF9w
YXJ0cyA9IFsoYiIxLTIiLCBleHBlY3RlZFsxOjNdKSwgKGIiNS0xMCIsIGV4cGVjdGVkWzU6MTFd
KV0KICAgICAgICAgZm9yIGV4cGVjdGVkX3BhcnQsIHBhcnQgaW4gemlwKGV4cGVjdGVkX3BhcnRz
LCBwYXJ0c1sxOi0xXSk6Ci0gICAgICAgICAgICBoZWFkZXJfc3RyaW5nLCBib2R5ID0gcGFydC5z
cGxpdCgiXHJcblxyXG4iKQotICAgICAgICAgICAgaGVhZGVycyA9IGRpY3QoaXRlbS5zcGxpdCgi
OiAiLCAxKSBmb3IgaXRlbSBpbiBoZWFkZXJfc3RyaW5nLnNwbGl0KCJcclxuIikgaWYgaXRlbS5z
dHJpcCgpKQotICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChoZWFkZXJzWyJDb250ZW50LVR5
cGUiXSwgInRleHQvcGxhaW4iKQotICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChoZWFkZXJz
WyJDb250ZW50LVJhbmdlIl0sICJieXRlcyAlcy8laSIgJSAoZXhwZWN0ZWRfcGFydFswXSwgbGVu
KGV4cGVjdGVkKSkpCi0gICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGV4cGVjdGVkX3BhcnRb
MV0gKyAiXHJcbiIsIGJvZHkpCisgICAgICAgICAgICBoZWFkZXJfc3RyaW5nLCBib2R5ID0gcGFy
dC5zcGxpdChiIlxyXG5cclxuIikKKyAgICAgICAgICAgIGhlYWRlcnMgPSBkaWN0KGl0ZW0uc3Bs
aXQoYiI6ICIsIDEpIGZvciBpdGVtIGluIGhlYWRlcl9zdHJpbmcuc3BsaXQoYiJcclxuIikgaWYg
aXRlbS5zdHJpcCgpKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChoZWFkZXJzW2IiQ29u
dGVudC1UeXBlIl0sIGIidGV4dC9wbGFpbiIpCisgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFs
KGhlYWRlcnNbYiJDb250ZW50LVJhbmdlIl0sIGIiYnl0ZXMgJXMvJWkiICUgKGV4cGVjdGVkX3Bh
cnRbMF0sIGxlbihleHBlY3RlZCkpKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChleHBl
Y3RlZF9wYXJ0WzFdICsgYiJcclxuIiwgYm9keSkKIAogICAgIGRlZiB0ZXN0X3JhbmdlX2ludmFs
aWQoc2VsZik6CiAgICAgICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXMoSFRUUEVycm9yKSBhcyBj
bToKQEAgLTg4LDE5ICs4OCwxNiBAQCBjbGFzcyBUZXN0RmlsZUhhbmRsZXIoVGVzdFVzaW5nU2Vy
dmVyKToKICAgICAgICAgICAgIHNlbGYucmVxdWVzdCgiL2RvY3VtZW50LnR4dCIsIGhlYWRlcnM9
eyJSYW5nZSI6ImJ5dGVzPSVpLSVpIiAlIChsZW4oZXhwZWN0ZWQpLCBsZW4oZXhwZWN0ZWQpICsg
MTApfSkKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjbS5leGNlcHRpb24uY29kZSwgNDE2KQog
Ci0gICAgQHB5dGVzdC5tYXJrLnhmYWlsKHN5cy52ZXJzaW9uX2luZm8gPj0gKDMsKSwgcmVhc29u
PSJ3cHRzZXJ2ZSBvbmx5IHdvcmtzIG9uIFB5MiIpCiAgICAgZGVmIHRlc3Rfc3ViX2NvbmZpZyhz
ZWxmKToKICAgICAgICAgcmVzcCA9IHNlbGYucmVxdWVzdCgiL3N1Yi5zdWIudHh0IikKICAgICAg
ICAgZXhwZWN0ZWQgPSBiImxvY2FsaG9zdCBsb2NhbGhvc3QgJWkiICUgc2VsZi5zZXJ2ZXIucG9y
dAogICAgICAgICBhc3NlcnQgcmVzcC5yZWFkKCkucnN0cmlwKCkgPT0gZXhwZWN0ZWQKIAotICAg
IEBweXRlc3QubWFyay54ZmFpbChzeXMudmVyc2lvbl9pbmZvID49ICgzLCksIHJlYXNvbj0id3B0
c2VydmUgb25seSB3b3JrcyBvbiBQeTIiKQogICAgIGRlZiB0ZXN0X3N1Yl9oZWFkZXJzKHNlbGYp
OgogICAgICAgICByZXNwID0gc2VsZi5yZXF1ZXN0KCIvc3ViX2hlYWRlcnMuc3ViLnR4dCIsIGhl
YWRlcnM9eyJYLVRlc3QiOiAiUEFTUyJ9KQogICAgICAgICBleHBlY3RlZCA9IGIiUEFTUyIKICAg
ICAgICAgYXNzZXJ0IHJlc3AucmVhZCgpLnJzdHJpcCgpID09IGV4cGVjdGVkCiAKLSAgICBAcHl0
ZXN0Lm1hcmsueGZhaWwoc3lzLnZlcnNpb25faW5mbyA+PSAoMywpLCByZWFzb249IndwdHNlcnZl
IG9ubHkgd29ya3Mgb24gUHkyIikKICAgICBkZWYgdGVzdF9zdWJfcGFyYW1zKHNlbGYpOgogICAg
ICAgICByZXNwID0gc2VsZi5yZXF1ZXN0KCIvc3ViX3BhcmFtcy5zdWIudHh0IiwgcXVlcnk9InRl
c3Q9UEFTUyIpCiAgICAgICAgIGV4cGVjdGVkID0gYiJQQVNTIgpAQCAtMTA4LDcgKzEwNSw2IEBA
IGNsYXNzIFRlc3RGaWxlSGFuZGxlcihUZXN0VXNpbmdTZXJ2ZXIpOgogCiAKIGNsYXNzIFRlc3RG
dW5jdGlvbkhhbmRsZXIoVGVzdFVzaW5nU2VydmVyKToKLSAgICBAcHl0ZXN0Lm1hcmsueGZhaWwo
c3lzLnZlcnNpb25faW5mbyA+PSAoMywpLCByZWFzb249IndwdHNlcnZlIG9ubHkgd29ya3Mgb24g
UHkyIikKICAgICBkZWYgdGVzdF9zdHJpbmdfcnYoc2VsZik6CiAgICAgICAgIEB3cHRzZXJ2ZS5o
YW5kbGVycy5oYW5kbGVyCiAgICAgICAgIGRlZiBoYW5kbGVyKHJlcXVlc3QsIHJlc3BvbnNlKToK
QEAgLTExOSw3ICsxMTUsNyBAQCBjbGFzcyBUZXN0RnVuY3Rpb25IYW5kbGVyKFRlc3RVc2luZ1Nl
cnZlcik6CiAgICAgICAgIHJlc3AgPSBzZWxmLnJlcXVlc3Qocm91dGVbMV0pCiAgICAgICAgIHNl
bGYuYXNzZXJ0RXF1YWwoMjAwLCByZXNwLmdldGNvZGUoKSkKICAgICAgICAgc2VsZi5hc3NlcnRF
cXVhbCgiOSIsIHJlc3AuaW5mbygpWyJDb250ZW50LUxlbmd0aCJdKQotICAgICAgICBzZWxmLmFz
c2VydEVxdWFsKCJ0ZXN0IGRhdGEiLCByZXNwLnJlYWQoKSkKKyAgICAgICAgc2VsZi5hc3NlcnRF
cXVhbChiInRlc3QgZGF0YSIsIHJlc3AucmVhZCgpKQogCiAgICAgZGVmIHRlc3RfdHVwbGVfMV9y
dihzZWxmKToKICAgICAgICAgQHdwdHNlcnZlLmhhbmRsZXJzLmhhbmRsZXIKQEAgLTEzNCw3ICsx
MzAsNiBAQCBjbGFzcyBUZXN0RnVuY3Rpb25IYW5kbGVyKFRlc3RVc2luZ1NlcnZlcik6CiAKICAg
ICAgICAgYXNzZXJ0IGNtLnZhbHVlLmNvZGUgPT0gNTAwCiAKLSAgICBAcHl0ZXN0Lm1hcmsueGZh
aWwoc3lzLnZlcnNpb25faW5mbyA+PSAoMywpLCByZWFzb249IndwdHNlcnZlIG9ubHkgd29ya3Mg
b24gUHkyIikKICAgICBkZWYgdGVzdF90dXBsZV8yX3J2KHNlbGYpOgogICAgICAgICBAd3B0c2Vy
dmUuaGFuZGxlcnMuaGFuZGxlcgogICAgICAgICBkZWYgaGFuZGxlcihyZXF1ZXN0LCByZXNwb25z
ZSk6CkBAIC0xNDYsOSArMTQxLDggQEAgY2xhc3MgVGVzdEZ1bmN0aW9uSGFuZGxlcihUZXN0VXNp
bmdTZXJ2ZXIpOgogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKDIwMCwgcmVzcC5nZXRjb2RlKCkp
CiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoIjQiLCByZXNwLmluZm8oKVsiQ29udGVudC1MZW5n
dGgiXSkKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgidGVzdC12YWx1ZSIsIHJlc3AuaW5mbygp
WyJ0ZXN0LWhlYWRlciJdKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCJ0ZXN0IiwgcmVzcC5y
ZWFkKCkpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYiJ0ZXN0IiwgcmVzcC5yZWFkKCkpCiAK
LSAgICBAcHl0ZXN0Lm1hcmsueGZhaWwoc3lzLnZlcnNpb25faW5mbyA+PSAoMywpLCByZWFzb249
IndwdHNlcnZlIG9ubHkgd29ya3Mgb24gUHkyIikKICAgICBkZWYgdGVzdF90dXBsZV8zX3J2KHNl
bGYpOgogICAgICAgICBAd3B0c2VydmUuaGFuZGxlcnMuaGFuZGxlcgogICAgICAgICBkZWYgaGFu
ZGxlcihyZXF1ZXN0LCByZXNwb25zZSk6CkBAIC0xNTksOSArMTUzLDggQEAgY2xhc3MgVGVzdEZ1
bmN0aW9uSGFuZGxlcihUZXN0VXNpbmdTZXJ2ZXIpOgogICAgICAgICByZXNwID0gc2VsZi5yZXF1
ZXN0KHJvdXRlWzFdKQogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKDIwMiwgcmVzcC5nZXRjb2Rl
KCkpCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoInRlc3QtdmFsdWUiLCByZXNwLmluZm8oKVsi
dGVzdC1oZWFkZXIiXSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgidGVzdCBkYXRhIiwgcmVz
cC5yZWFkKCkpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoYiJ0ZXN0IGRhdGEiLCByZXNwLnJl
YWQoKSkKIAotICAgIEBweXRlc3QubWFyay54ZmFpbChzeXMudmVyc2lvbl9pbmZvID49ICgzLCks
IHJlYXNvbj0id3B0c2VydmUgb25seSB3b3JrcyBvbiBQeTIiKQogICAgIGRlZiB0ZXN0X3R1cGxl
XzNfcnZfMShzZWxmKToKICAgICAgICAgQHdwdHNlcnZlLmhhbmRsZXJzLmhhbmRsZXIKICAgICAg
ICAgZGVmIGhhbmRsZXIocmVxdWVzdCwgcmVzcG9uc2UpOgpAQCAtMTczLDcgKzE2Niw3IEBAIGNs
YXNzIFRlc3RGdW5jdGlvbkhhbmRsZXIoVGVzdFVzaW5nU2VydmVyKToKICAgICAgICAgc2VsZi5h
c3NlcnRFcXVhbCgyMDIsIHJlc3AuZ2V0Y29kZSgpKQogICAgICAgICBzZWxmLmFzc2VydEVxdWFs
KCJTb21lIFN0YXR1cyIsIHJlc3AubXNnKQogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKCJ0ZXN0
LXZhbHVlIiwgcmVzcC5pbmZvKClbInRlc3QtaGVhZGVyIl0pCi0gICAgICAgIHNlbGYuYXNzZXJ0
RXF1YWwoInRlc3QgZGF0YSIsIHJlc3AucmVhZCgpKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFs
KGIidGVzdCBkYXRhIiwgcmVzcC5yZWFkKCkpCiAKICAgICBkZWYgdGVzdF90dXBsZV80X3J2KHNl
bGYpOgogICAgICAgICBAd3B0c2VydmUuaGFuZGxlcnMuaGFuZGxlcgpAQCAtMjQxLDEyICsyMzQs
MTEgQEAgY2xhc3MgVGVzdEpTT05IYW5kbGVyKFRlc3RVc2luZ1NlcnZlcik6CiAKIAogY2xhc3Mg
VGVzdFB5dGhvbkhhbmRsZXIoVGVzdFVzaW5nU2VydmVyKToKLSAgICBAcHl0ZXN0Lm1hcmsueGZh
aWwoc3lzLnZlcnNpb25faW5mbyA+PSAoMywpLCByZWFzb249IndwdHNlcnZlIG9ubHkgd29ya3Mg
b24gUHkyIikKICAgICBkZWYgdGVzdF9zdHJpbmcoc2VsZik6CiAgICAgICAgIHJlc3AgPSBzZWxm
LnJlcXVlc3QoIi90ZXN0X3N0cmluZy5weSIpCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoMjAw
LCByZXNwLmdldGNvZGUoKSkKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgidGV4dC9wbGFpbiIs
IHJlc3AuaW5mbygpWyJDb250ZW50LVR5cGUiXSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgi
UEFTUyIsIHJlc3AucmVhZCgpKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGIiUEFTUyIsIHJl
c3AucmVhZCgpKQogCiAgICAgZGVmIHRlc3RfdHVwbGVfMihzZWxmKToKICAgICAgICAgcmVzcCA9
IHNlbGYucmVxdWVzdCgiL3Rlc3RfdHVwbGVfMi5weSIpCkBAIC0yNjMsNyArMjU1LDYgQEAgY2xh
c3MgVGVzdFB5dGhvbkhhbmRsZXIoVGVzdFVzaW5nU2VydmVyKToKICAgICAgICAgc2VsZi5hc3Nl
cnRFcXVhbCgiUEFTUyIsIHJlc3AuaW5mbygpWyJYLVRlc3QiXSkKICAgICAgICAgc2VsZi5hc3Nl
cnRFcXVhbChiIlBBU1MiLCByZXNwLnJlYWQoKSkKIAotICAgIEBweXRlc3QubWFyay54ZmFpbChz
eXMudmVyc2lvbl9pbmZvID49ICgzLCksIHJlYXNvbj0id3B0c2VydmUgb25seSB3b3JrcyBvbiBQ
eTIiKQogICAgIGRlZiB0ZXN0X2ltcG9ydChzZWxmKToKICAgICAgICAgZGlyX25hbWUgPSBvcy5w
YXRoLmpvaW4oZG9jX3Jvb3QsICJzdWJkaXIiKQogICAgICAgICBhc3NlcnQgZGlyX25hbWUgbm90
IGluIHN5cy5wYXRoCkBAIC0yNzMsNyArMjY0LDcgQEAgY2xhc3MgVGVzdFB5dGhvbkhhbmRsZXIo
VGVzdFVzaW5nU2VydmVyKToKICAgICAgICAgYXNzZXJ0ICJ0ZXN0X21vZHVsZSIgbm90IGluIHN5
cy5tb2R1bGVzCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoMjAwLCByZXNwLmdldGNvZGUoKSkK
ICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgidGV4dC9wbGFpbiIsIHJlc3AuaW5mbygpWyJDb250
ZW50LVR5cGUiXSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgiUEFTUyIsIHJlc3AucmVhZCgp
KQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGIiUEFTUyIsIHJlc3AucmVhZCgpKQogCiAgICAg
ZGVmIHRlc3Rfbm9fbWFpbihzZWxmKToKICAgICAgICAgd2l0aCBweXRlc3QucmFpc2VzKEhUVFBF
cnJvcikgYXMgY206CkBAIC0zMTQsMTMgKzMwNSwxMiBAQCBjbGFzcyBUZXN0RGlyZWN0b3J5SGFu
ZGxlcihUZXN0VXNpbmdTZXJ2ZXIpOgogCiAKIGNsYXNzIFRlc3RBc0lzSGFuZGxlcihUZXN0VXNp
bmdTZXJ2ZXIpOgotICAgIEBweXRlc3QubWFyay54ZmFpbChzeXMudmVyc2lvbl9pbmZvID49ICgz
LCksIHJlYXNvbj0id3B0c2VydmUgb25seSB3b3JrcyBvbiBQeTIiKQogICAgIGRlZiB0ZXN0X2Fz
X2lzKHNlbGYpOgogICAgICAgICByZXNwID0gc2VsZi5yZXF1ZXN0KCIvdGVzdC5hc2lzIikKICAg
ICAgICAgc2VsZi5hc3NlcnRFcXVhbCgyMDIsIHJlc3AuZ2V0Y29kZSgpKQogICAgICAgICBzZWxm
LmFzc2VydEVxdWFsKCJHaXJhZmZlIiwgcmVzcC5tc2cpCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1
YWwoIlBBU1MiLCByZXNwLmluZm8oKVsiWC1UZXN0Il0pCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1
YWwoIkNvbnRlbnQiLCByZXNwLnJlYWQoKSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChiIkNv
bnRlbnQiLCByZXNwLnJlYWQoKSkKICAgICAgICAgI0FkZCBhIGNoZWNrIHRoYXQgdGhlIHJlc3Bv
bnNlIGlzIGFjdHVhbGx5IHNhbmUKIAogCkBAIC0zOTcsNSArMzg3LDU4IEBAIGNsYXNzIFRlc3RI
MkhhbmRsZXIoVGVzdFVzaW5nSDJTZXJ2ZXIpOgogICAgICAgICBhc3NlcnQgcmVzcC5yZWFkKCkg
PT0gJycKIAogCitjbGFzcyBUZXN0V29ya2Vyc0hhbmRsZXIoVGVzdFdyYXBwZXJIYW5kbGVyVXNp
bmdTZXJ2ZXIpOgorICAgIGR1bW15X2pzX2ZpbGVzID0geydmb28ud29ya2VyLmpzJzogYicnLAor
ICAgICAgICAgICAgICAgICAgICAgICdmb28uYW55LmpzJzogYicnfQorCisgICAgZGVmIHRlc3Rf
YW55X3dvcmtlcl9odG1sKHNlbGYpOgorICAgICAgICBzZWxmLnJ1bl93cmFwcGVyX3Rlc3QoJ2Zv
by5hbnkud29ya2VyLmh0bWwnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3RleHQv
aHRtbCcsIHNlcnZlLldvcmtlcnNIYW5kbGVyKQorCisgICAgZGVmIHRlc3Rfd29ya2VyX2h0bWwo
c2VsZik6CisgICAgICAgIHNlbGYucnVuX3dyYXBwZXJfdGVzdCgnZm9vLndvcmtlci5odG1sJywK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICd0ZXh0L2h0bWwnLCBzZXJ2ZS5Xb3JrZXJz
SGFuZGxlcikKKworCitjbGFzcyBUZXN0V2luZG93SGFuZGxlcihUZXN0V3JhcHBlckhhbmRsZXJV
c2luZ1NlcnZlcik6CisgICAgZHVtbXlfanNfZmlsZXMgPSB7J2Zvby53aW5kb3cuanMnOiBiJyd9
CisKKyAgICBkZWYgdGVzdF93aW5kb3dfaHRtbChzZWxmKToKKyAgICAgICAgc2VsZi5ydW5fd3Jh
cHBlcl90ZXN0KCdmb28ud2luZG93Lmh0bWwnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgJ3RleHQvaHRtbCcsIHNlcnZlLldpbmRvd0hhbmRsZXIpCisKKworY2xhc3MgVGVzdEFueUh0
bWxIYW5kbGVyKFRlc3RXcmFwcGVySGFuZGxlclVzaW5nU2VydmVyKToKKyAgICBkdW1teV9qc19m
aWxlcyA9IHsnZm9vLmFueS5qcyc6IGInJ30KKworICAgIGRlZiB0ZXN0X2FueV9odG1sKHNlbGYp
OgorICAgICAgICBzZWxmLnJ1bl93cmFwcGVyX3Rlc3QoJ2Zvby5hbnkuaHRtbCcsCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAndGV4dC9odG1sJywgc2VydmUuQW55SHRtbEhhbmRsZXIp
CisKKworY2xhc3MgVGVzdFNoYXJlZFdvcmtlcnNIYW5kbGVyKFRlc3RXcmFwcGVySGFuZGxlclVz
aW5nU2VydmVyKToKKyAgICBkdW1teV9qc19maWxlcyA9IHsnZm9vLmFueS5qcyc6IGInLy8gTUVU
QTogZ2xvYmFsPXNoYXJlZHdvcmtlclxuJ30KKworICAgIGRlZiB0ZXN0X2FueV9zaGFyZWR3b3Jr
ZXJzX2h0bWwoc2VsZik6CisgICAgICAgIHNlbGYucnVuX3dyYXBwZXJfdGVzdCgnZm9vLmFueS5z
aGFyZWR3b3JrZXIuaHRtbCcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAndGV4dC9o
dG1sJywgc2VydmUuU2hhcmVkV29ya2Vyc0hhbmRsZXIpCisKKworY2xhc3MgVGVzdFNlcnZpY2VX
b3JrZXJzSGFuZGxlcihUZXN0V3JhcHBlckhhbmRsZXJVc2luZ1NlcnZlcik6CisgICAgZHVtbXlf
anNfZmlsZXMgPSB7J2Zvby5hbnkuanMnOiBiJy8vIE1FVEE6IGdsb2JhbD1zZXJ2aWNld29ya2Vy
XG4nfQorCisgICAgZGVmIHRlc3Rfc2VydmljZXdvcmtlcl9odG1sKHNlbGYpOgorICAgICAgICBz
ZWxmLnJ1bl93cmFwcGVyX3Rlc3QoJ2Zvby5hbnkuc2VydmljZXdvcmtlci5odG1sJywKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICd0ZXh0L2h0bWwnLCBzZXJ2ZS5TZXJ2aWNlV29ya2Vy
c0hhbmRsZXIpCisKKworY2xhc3MgVGVzdEFueVdvcmtlckhhbmRsZXIoVGVzdFdyYXBwZXJIYW5k
bGVyVXNpbmdTZXJ2ZXIpOgorICAgIGR1bW15X2pzX2ZpbGVzID0geydiYXIuYW55LmpzJzogYicn
fQorCisgICAgZGVmIHRlc3RfYW55X3dvcmtfanMoc2VsZik6CisgICAgICAgIHNlbGYucnVuX3dy
YXBwZXJfdGVzdCgnYmFyLmFueS53b3JrZXIuanMnLCAndGV4dC9qYXZhc2NyaXB0JywKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHNlcnZlLkFueVdvcmtlckhhbmRsZXIpCisKKwogaWYg
X19uYW1lX18gPT0gJ19fbWFpbl9fJzoKICAgICB1bml0dGVzdC5tYWluKCkKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0c2Vy
dmUvdGVzdHMvZnVuY3Rpb25hbC90ZXN0X2lucHV0X2ZpbGUucHkgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHNlcnZlL3Rlc3RzL2Z1bmN0aW9u
YWwvdGVzdF9pbnB1dF9maWxlLnB5CmluZGV4IDAxNDM4NmUxNzJmYmI3OWRlNDU1NDI4NGU0YzUx
ZGNhYWJhZjcwYjQuLjk4MTc2ZTU4Mzg2Mjg0MWRmOWRlMjc3NzlkY2ZlNWZmOGY3YTYxNGIgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvd3B0c2VydmUvdGVzdHMvZnVuY3Rpb25hbC90ZXN0X2lucHV0X2ZpbGUucHkKKysrIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRzZXJ2ZS90
ZXN0cy9mdW5jdGlvbmFsL3Rlc3RfaW5wdXRfZmlsZS5weQpAQCAtMSw4ICsxLDExIEBACi1mcm9t
IHdwdHNlcnZlLnJlcXVlc3QgaW1wb3J0IElucHV0RmlsZQoraW1wb3J0IHN5cwogZnJvbSBpbyBp
bXBvcnQgQnl0ZXNJTworCiBpbXBvcnQgcHl0ZXN0Citmcm9tIHNpeCBpbXBvcnQgUFkyCisKK2Zy
b20gd3B0c2VydmUucmVxdWVzdCBpbXBvcnQgSW5wdXRGaWxlCiAKLXdwdHNlcnZlID0gcHl0ZXN0
LmltcG9ydG9yc2tpcCgid3B0c2VydmUiKQogYnN0ciA9IGInVGhpcyBpcyBhIHRlc3QgZG9jdW1l
bnRcbldpdGggbmV3IGxpbmVzXG5TZXZlcmFsIGluIGZhY3QuLi4nCiByZmlsZSA9ICcnCiB0ZXN0
X2ZpbGUgPSAnJyAgIyBUaGlzIHdpbGwgYmUgdXNlZCB0byB0ZXN0IHRoZSBJbnB1dEZpbGUgZnVu
Y3Rpb25zIGFnYWluc3QKQEAgLTExOCw2ICsxMjEsOCBAQCBkZWYgdGVzdF9yZWFkbGluZXMoKToK
ICAgICBhc3NlcnQgaW5wdXRfZmlsZS5yZWFkbGluZXMoKSA9PSB0ZXN0X2ZpbGUucmVhZGxpbmVz
KCkKIAogCitAcHl0ZXN0Lm1hcmsueGZhaWwoc3lzLnBsYXRmb3JtID09ICJ3aW4zMiIgYW5kIFBZ
MiwKKyAgICAgICAgICAgICAgICAgICByZWFzb249Imh0dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxh
dGZvcm0tdGVzdHMvd3B0L2lzc3Vlcy8xMjk0OSIpCiBkZWYgdGVzdF9yZWFkbGluZXNfZmlsZV9i
aWdnZXJfdGhhbl9idWZmZXIoKToKICAgICBvbGRfbWF4X2J1ZiA9IElucHV0RmlsZS5tYXhfYnVm
ZmVyX3NpemUKICAgICBJbnB1dEZpbGUubWF4X2J1ZmZlcl9zaXplID0gMTAKQEAgLTEzNSw2ICsx
NDAsOCBAQCBkZWYgdGVzdF9pdGVyKCk6CiAgICAgICAgIGFzc2VydCBhID09IGIKIAogCitAcHl0
ZXN0Lm1hcmsueGZhaWwoc3lzLnBsYXRmb3JtID09ICJ3aW4zMiIgYW5kIFBZMiwKKyAgICAgICAg
ICAgICAgICAgICByZWFzb249Imh0dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxhdGZvcm0tdGVzdHMv
d3B0L2lzc3Vlcy8xMjk0OSIpCiBkZWYgdGVzdF9pdGVyX2ZpbGVfYmlnZ2VyX3RoYW5fYnVmZmVy
KCk6CiAgICAgb2xkX21heF9idWYgPSBJbnB1dEZpbGUubWF4X2J1ZmZlcl9zaXplCiAgICAgSW5w
dXRGaWxlLm1heF9idWZmZXJfc2l6ZSA9IDEwCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHNlcnZlL3Rlc3RzL2Z1bmN0aW9u
YWwvdGVzdF9waXBlcy5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvd3B0c2VydmUvdGVzdHMvZnVuY3Rpb25hbC90ZXN0X3BpcGVzLnB5CmluZGV4
IGViZGJjM2VlNTdkZGZhNTAzMzg5MzhhYTJlMjI2MDI4ZDdiYjY1NTUuLmE2YTcwM2UzMDQ5MDJk
YWZhZjQzOTc1YWIxYWMwNTgwZTE2MGZkYzMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0c2VydmUvdGVzdHMvZnVuY3Rpb25h
bC90ZXN0X3BpcGVzLnB5CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvd3B0c2VydmUvdGVzdHMvZnVuY3Rpb25hbC90ZXN0X3BpcGVzLnB5CkBA
IC0yLDcgKzIsNiBAQCBpbXBvcnQgb3MKIGltcG9ydCB1bml0dGVzdAogaW1wb3J0IHRpbWUKIGlt
cG9ydCBqc29uCi1pbXBvcnQgc3lzCiAKIGZyb20gc2l4Lm1vdmVzIGltcG9ydCB1cmxsaWIKIApA
QCAtMzUsMTAgKzM0LDkgQEAgY2xhc3MgVGVzdEhlYWRlcihUZXN0VXNpbmdTZXJ2ZXIpOgogICAg
ICAgICByZXNwID0gc2VsZi5yZXF1ZXN0KCIvZG9jdW1lbnQudHh0IiwgcXVlcnk9InBpcGU9aGVh
ZGVyKENvbnRlbnQtVHlwZSxGQUlMKXxoZWFkZXIoQ29udGVudC1UeXBlLHRleHQvaHRtbCkiKQog
ICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHJlc3AuaW5mbygpWyJDb250ZW50LVR5cGUiXSwgInRl
eHQvaHRtbCIpCiAKLSAgICBAcHl0ZXN0Lm1hcmsueGZhaWwoc3lzLnZlcnNpb25faW5mbyA+PSAo
MywpLCByZWFzb249IndwdHNlcnZlIG9ubHkgd29ya3Mgb24gUHkyIikKICAgICBkZWYgdGVzdF9t
dWx0aXBsZV9hcHBlbmQoc2VsZik6CiAgICAgICAgIHJlc3AgPSBzZWxmLnJlcXVlc3QoIi9kb2N1
bWVudC50eHQiLCBxdWVyeT0icGlwZT1oZWFkZXIoWC1UZXN0LDEpfGhlYWRlcihYLVRlc3QsMixU
cnVlKSIpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocmVzcC5pbmZvKClbIlgtVGVzdCJdLCAi
MSwgMiIpCisgICAgICAgIHNlbGYuYXNzZXJ0X211bHRpcGxlX2hlYWRlcnMocmVzcCwgIlgtVGVz
dCIsIFsiMSIsICIyIl0pCiAKIGNsYXNzIFRlc3RTbGljZShUZXN0VXNpbmdTZXJ2ZXIpOgogICAg
IGRlZiB0ZXN0X2JvdGhfYm91bmRzKHNlbGYpOgpAQCAtNTcsMzYgKzU1LDMxIEBAIGNsYXNzIFRl
c3RTbGljZShUZXN0VXNpbmdTZXJ2ZXIpOgogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHJlc3Au
cmVhZCgpLCBleHBlY3RlZFs6MTBdKQogCiBjbGFzcyBUZXN0U3ViKFRlc3RVc2luZ1NlcnZlcik6
Ci0gICAgQHB5dGVzdC5tYXJrLnhmYWlsKHN5cy52ZXJzaW9uX2luZm8gPj0gKDMsKSwgcmVhc29u
PSJ3cHRzZXJ2ZSBvbmx5IHdvcmtzIG9uIFB5MiIpCiAgICAgZGVmIHRlc3Rfc3ViX2NvbmZpZyhz
ZWxmKToKICAgICAgICAgcmVzcCA9IHNlbGYucmVxdWVzdCgiL3N1Yi50eHQiLCBxdWVyeT0icGlw
ZT1zdWIiKQotICAgICAgICBleHBlY3RlZCA9ICJsb2NhbGhvc3QgbG9jYWxob3N0ICVpIiAlIHNl
bGYuc2VydmVyLnBvcnQKKyAgICAgICAgZXhwZWN0ZWQgPSBiImxvY2FsaG9zdCBsb2NhbGhvc3Qg
JWkiICUgc2VsZi5zZXJ2ZXIucG9ydAogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHJlc3AucmVh
ZCgpLnJzdHJpcCgpLCBleHBlY3RlZCkKIAotICAgIEBweXRlc3QubWFyay54ZmFpbChzeXMudmVy
c2lvbl9pbmZvID49ICgzLCksIHJlYXNvbj0id3B0c2VydmUgb25seSB3b3JrcyBvbiBQeTIiKQog
ICAgIGRlZiB0ZXN0X3N1Yl9maWxlX2hhc2goc2VsZik6CiAgICAgICAgIHJlc3AgPSBzZWxmLnJl
cXVlc3QoIi9zdWJfZmlsZV9oYXNoLnN1Yi50eHQiKQotICAgICAgICBleHBlY3RlZCA9ICIiIgor
ICAgICAgICBleHBlY3RlZCA9IGIiIiIKIG1kNTogSm1JMVc4Zk1IZlNmQ2FyWU9TeEpjdz09CiBz
aGExOiBucXBXcUV3NElXOE5qRDZSMzc1Z3RyUXZ0VG89CiBzaGEyMjQ6IFJxUTZmTW10YTZuOVR1
QS92Z1RaSzJFcW1pZHFucndCQW1RTFJRPT0KIHNoYTI1NjogRzZMamcxdVBlalF4cUZtdkZPY1Yv
bG9xbmpQVFc1R1NPZVBPZk0vdTBqdz0KIHNoYTM4NDogbGtYSENoaDFCWEhONW5UNUJZaGkxeDY3
RTFDeVliUEtSS29GMkxUbTVHaXZ1RUZwVlZZdHZFQkh0UHI3NE45RQotc2hhNTEyOiByOGVMR1JU
Yzdaem5aa0ZqZVZMeW82L0Z5UWRyYTlxbWxZQ3dLS3htM2tmUUFzd1JTOSszSHNZazN0aExVaGNG
bW1XaEs0ZFhhSUN6Ci1Kd0dGb25mWHdnPT0iIiIKK3NoYTUxMjogcjhlTEdSVGM3WnpuWmtGamVW
THlvNi9GeVFkcmE5cW1sWUN3S0t4bTNrZlFBc3dSUzkrM0hzWWszdGhMVWhjRm1tV2hLNGRYYUlD
ekp3R0ZvbmZYd2c9PSIiIgogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHJlc3AucmVhZCgpLnJz
dHJpcCgpLCBleHBlY3RlZC5zdHJpcCgpKQogCiAgICAgZGVmIHRlc3Rfc3ViX2ZpbGVfaGFzaF91
bnJlY29nbml6ZWQoc2VsZik6CiAgICAgICAgIHdpdGggc2VsZi5hc3NlcnRSYWlzZXModXJsbGli
LmVycm9yLkhUVFBFcnJvcik6CiAgICAgICAgICAgICBzZWxmLnJlcXVlc3QoIi9zdWJfZmlsZV9o
YXNoX3VucmVjb2duaXplZC5zdWIudHh0IikKIAotICAgIEBweXRlc3QubWFyay54ZmFpbChzeXMu
dmVyc2lvbl9pbmZvID49ICgzLCksIHJlYXNvbj0id3B0c2VydmUgb25seSB3b3JrcyBvbiBQeTIi
KQogICAgIGRlZiB0ZXN0X3N1Yl9oZWFkZXJzKHNlbGYpOgogICAgICAgICByZXNwID0gc2VsZi5y
ZXF1ZXN0KCIvc3ViX2hlYWRlcnMudHh0IiwgcXVlcnk9InBpcGU9c3ViIiwgaGVhZGVycz17Ilgt
VGVzdCI6ICJQQVNTIn0pCi0gICAgICAgIGV4cGVjdGVkID0gIlBBU1MiCisgICAgICAgIGV4cGVj
dGVkID0gYiJQQVNTIgogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHJlc3AucmVhZCgpLnJzdHJp
cCgpLCBleHBlY3RlZCkKIAotICAgIEBweXRlc3QubWFyay54ZmFpbChzeXMudmVyc2lvbl9pbmZv
ID49ICgzLCksIHJlYXNvbj0id3B0c2VydmUgb25seSB3b3JrcyBvbiBQeTIiKQogICAgIGRlZiB0
ZXN0X3N1Yl9sb2NhdGlvbihzZWxmKToKICAgICAgICAgcmVzcCA9IHNlbGYucmVxdWVzdCgiL3N1
Yl9sb2NhdGlvbi5zdWIudHh0P3F1ZXJ5X3N0cmluZyIpCiAgICAgICAgIGV4cGVjdGVkID0gIiIi
CkBAIC05NywzMCArOTAsNDQgQEAgcGF0aG5hbWU6IC9zdWJfbG9jYXRpb24uc3ViLnR4dAogcG9y
dDogezB9CiBxdWVyeTogP3F1ZXJ5X3N0cmluZwogc2NoZW1lOiBodHRwCi1zZXJ2ZXI6IGh0dHA6
Ly9sb2NhbGhvc3Q6ezB9IiIiLmZvcm1hdChzZWxmLnNlcnZlci5wb3J0KQorc2VydmVyOiBodHRw
Oi8vbG9jYWxob3N0OnswfSIiIi5mb3JtYXQoc2VsZi5zZXJ2ZXIucG9ydCkuZW5jb2RlKCJhc2Np
aSIpCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocmVzcC5yZWFkKCkucnN0cmlwKCksIGV4cGVj
dGVkLnN0cmlwKCkpCiAKLSAgICBAcHl0ZXN0Lm1hcmsueGZhaWwoc3lzLnZlcnNpb25faW5mbyA+
PSAoMywpLCByZWFzb249IndwdHNlcnZlIG9ubHkgd29ya3Mgb24gUHkyIikKICAgICBkZWYgdGVz
dF9zdWJfcGFyYW1zKHNlbGYpOgogICAgICAgICByZXNwID0gc2VsZi5yZXF1ZXN0KCIvc3ViX3Bh
cmFtcy50eHQiLCBxdWVyeT0idGVzdD1QQVNTJnBpcGU9c3ViIikKLSAgICAgICAgZXhwZWN0ZWQg
PSAiUEFTUyIKKyAgICAgICAgZXhwZWN0ZWQgPSBiIlBBU1MiCiAgICAgICAgIHNlbGYuYXNzZXJ0
RXF1YWwocmVzcC5yZWFkKCkucnN0cmlwKCksIGV4cGVjdGVkKQogCi0gICAgQHB5dGVzdC5tYXJr
LnhmYWlsKHN5cy52ZXJzaW9uX2luZm8gPj0gKDMsKSwgcmVhc29uPSJ3cHRzZXJ2ZSBvbmx5IHdv
cmtzIG9uIFB5MiIpCiAgICAgZGVmIHRlc3Rfc3ViX3VybF9iYXNlKHNlbGYpOgogICAgICAgICBy
ZXNwID0gc2VsZi5yZXF1ZXN0KCIvc3ViX3VybF9iYXNlLnN1Yi50eHQiKQotICAgICAgICBzZWxm
LmFzc2VydEVxdWFsKHJlc3AucmVhZCgpLnJzdHJpcCgpLCAiQmVmb3JlIC8gQWZ0ZXIiKQorICAg
ICAgICBzZWxmLmFzc2VydEVxdWFsKHJlc3AucmVhZCgpLnJzdHJpcCgpLCBiIkJlZm9yZSAvIEFm
dGVyIikKKworICAgIGRlZiB0ZXN0X3N1Yl91cmxfYmFzZV92aWFfZmlsZW5hbWVfd2l0aF9xdWVy
eShzZWxmKToKKyAgICAgICAgcmVzcCA9IHNlbGYucmVxdWVzdCgiL3N1Yl91cmxfYmFzZS5zdWIu
dHh0P3BpcGU9c2xpY2UoNSwxMCkiKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHJlc3AucmVh
ZCgpLnJzdHJpcCgpLCBiImUgLyBBIikKIAotICAgIEBweXRlc3QubWFyay54ZmFpbChzeXMudmVy
c2lvbl9pbmZvID49ICgzLCksIHJlYXNvbj0id3B0c2VydmUgb25seSB3b3JrcyBvbiBQeTIiKQog
ICAgIGRlZiB0ZXN0X3N1Yl91dWlkKHNlbGYpOgogICAgICAgICByZXNwID0gc2VsZi5yZXF1ZXN0
KCIvc3ViX3V1aWQuc3ViLnR4dCIpCi0gICAgICAgIHNlbGYuYXNzZXJ0UmVnZXhwTWF0Y2hlcyhy
ZXNwLnJlYWQoKS5yc3RyaXAoKSwgciJCZWZvcmUgW2EtZjAtOS1dKyBBZnRlciIpCisgICAgICAg
IHNlbGYuYXNzZXJ0UmVnZXhwTWF0Y2hlcyhyZXNwLnJlYWQoKS5yc3RyaXAoKSwgYiJCZWZvcmUg
W2EtZjAtOS1dKyBBZnRlciIpCiAKLSAgICBAcHl0ZXN0Lm1hcmsueGZhaWwoc3lzLnZlcnNpb25f
aW5mbyA+PSAoMywpLCByZWFzb249IndwdHNlcnZlIG9ubHkgd29ya3Mgb24gUHkyIikKICAgICBk
ZWYgdGVzdF9zdWJfdmFyKHNlbGYpOgogICAgICAgICByZXNwID0gc2VsZi5yZXF1ZXN0KCIvc3Vi
X3Zhci5zdWIudHh0IikKICAgICAgICAgcG9ydCA9IHNlbGYuc2VydmVyLnBvcnQKLSAgICAgICAg
ZXhwZWN0ZWQgPSAibG9jYWxob3N0ICVzIEEgJXMgQiBsb2NhbGhvc3QgQyIgJSAocG9ydCwgcG9y
dCkKKyAgICAgICAgZXhwZWN0ZWQgPSBiImxvY2FsaG9zdCAlZCBBICVkIEIgbG9jYWxob3N0IEMi
ICUgKHBvcnQsIHBvcnQpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocmVzcC5yZWFkKCkucnN0
cmlwKCksIGV4cGVjdGVkKQorCisgICAgZGVmIHRlc3Rfc3ViX2ZzX3BhdGgoc2VsZik6CisgICAg
ICAgIHJlc3AgPSBzZWxmLnJlcXVlc3QoIi9zdWJkaXIvc3ViX3BhdGguc3ViLnR4dCIpCisgICAg
ICAgIHJvb3QgPSBvcy5wYXRoLmFic3BhdGgoZG9jX3Jvb3QpCisgICAgICAgIGV4cGVjdGVkID0g
IiIiJShyb290KXMlKHNlcClzc3ViZGlyJShzZXApc3N1Yl9wYXRoLnN1Yi50eHQKKyUocm9vdClz
JShzZXApc3N1Yl9wYXRoLnN1Yi50eHQKKyUocm9vdClzJShzZXApc3N1Yl9wYXRoLnN1Yi50eHQK
KyIiIiAlIHsicm9vdCI6IHJvb3QsICJzZXAiOiBvcy5wYXRoLnNlcH0KKyAgICAgICAgc2VsZi5h
c3NlcnRFcXVhbChyZXNwLnJlYWQoKSwgZXhwZWN0ZWQuZW5jb2RlKCJ1dGY4IikpCisKKyAgICBk
ZWYgdGVzdF9zdWJfaGVhZGVyX29yX2RlZmF1bHQoc2VsZik6CisgICAgICAgIHJlc3AgPSBzZWxm
LnJlcXVlc3QoIi9zdWJfaGVhZGVyX29yX2RlZmF1bHQuc3ViLnR4dCIsIGhlYWRlcnM9eyJYLVBy
ZXNlbnQiOiAiT0sifSkKKyAgICAgICAgZXhwZWN0ZWQgPSBiIk9LXG5hYnNlbnQtZGVmYXVsdCIK
ICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChyZXNwLnJlYWQoKS5yc3RyaXAoKSwgZXhwZWN0ZWQp
CiAKIGNsYXNzIFRlc3RUcmlja2xlKFRlc3RVc2luZ1NlcnZlcik6CkBAIC0xNDAsMTIgKzE0Nywx
MCBAQCBjbGFzcyBUZXN0VHJpY2tsZShUZXN0VXNpbmdTZXJ2ZXIpOgogICAgICAgICBzZWxmLmFz
c2VydEVxdWFsKHJlc3AuaW5mbygpWyJFeHBpcmVzIl0sICIwIikKIAogY2xhc3MgVGVzdFBpcGVz
V2l0aFZhcmlvdXNIYW5kbGVycyhUZXN0VXNpbmdTZXJ2ZXIpOgotICAgIEBweXRlc3QubWFyay54
ZmFpbChzeXMudmVyc2lvbl9pbmZvID49ICgzLCksIHJlYXNvbj0id3B0c2VydmUgb25seSB3b3Jr
cyBvbiBQeTIiKQogICAgIGRlZiB0ZXN0X3dpdGhfcHl0aG9uX2ZpbGVfaGFuZGxlcihzZWxmKToK
ICAgICAgICAgcmVzcCA9IHNlbGYucmVxdWVzdCgiL3Rlc3Rfc3RyaW5nLnB5IiwgcXVlcnk9InBp
cGU9c2xpY2UobnVsbCwyKSIpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocmVzcC5yZWFkKCks
ICJQQSIpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocmVzcC5yZWFkKCksIGIiUEEiKQogCi0g
ICAgQHB5dGVzdC5tYXJrLnhmYWlsKHN5cy52ZXJzaW9uX2luZm8gPj0gKDMsKSwgcmVhc29uPSJ3
cHRzZXJ2ZSBvbmx5IHdvcmtzIG9uIFB5MiIpCiAgICAgZGVmIHRlc3Rfd2l0aF9weXRob25fZnVu
Y19oYW5kbGVyKHNlbGYpOgogICAgICAgICBAd3B0c2VydmUuaGFuZGxlcnMuaGFuZGxlcgogICAg
ICAgICBkZWYgaGFuZGxlcihyZXF1ZXN0LCByZXNwb25zZSk6CkBAIC0xNTMsOSArMTU4LDggQEAg
Y2xhc3MgVGVzdFBpcGVzV2l0aFZhcmlvdXNIYW5kbGVycyhUZXN0VXNpbmdTZXJ2ZXIpOgogICAg
ICAgICByb3V0ZSA9ICgiR0VUIiwgIi90ZXN0L3Rlc3RfcGlwZXNfMS8iLCBoYW5kbGVyKQogICAg
ICAgICBzZWxmLnNlcnZlci5yb3V0ZXIucmVnaXN0ZXIoKnJvdXRlKQogICAgICAgICByZXNwID0g
c2VsZi5yZXF1ZXN0KHJvdXRlWzFdLCBxdWVyeT0icGlwZT1zbGljZShudWxsLDIpIikKLSAgICAg
ICAgc2VsZi5hc3NlcnRFcXVhbChyZXNwLnJlYWQoKSwgIlBBIikKKyAgICAgICAgc2VsZi5hc3Nl
cnRFcXVhbChyZXNwLnJlYWQoKSwgYiJQQSIpCiAKLSAgICBAcHl0ZXN0Lm1hcmsueGZhaWwoc3lz
LnZlcnNpb25faW5mbyA+PSAoMywpLCByZWFzb249IndwdHNlcnZlIG9ubHkgd29ya3Mgb24gUHky
IikKICAgICBkZWYgdGVzdF93aXRoX3B5dGhvbl9mdW5jX2hhbmRsZXJfdXNpbmdfcmVzcG9uc2Vf
d3JpdGVyKHNlbGYpOgogICAgICAgICBAd3B0c2VydmUuaGFuZGxlcnMuaGFuZGxlcgogICAgICAg
ICBkZWYgaGFuZGxlcihyZXF1ZXN0LCByZXNwb25zZSk6CkBAIC0xNjQsOSArMTY4LDggQEAgY2xh
c3MgVGVzdFBpcGVzV2l0aFZhcmlvdXNIYW5kbGVycyhUZXN0VXNpbmdTZXJ2ZXIpOgogICAgICAg
ICBzZWxmLnNlcnZlci5yb3V0ZXIucmVnaXN0ZXIoKnJvdXRlKQogICAgICAgICByZXNwID0gc2Vs
Zi5yZXF1ZXN0KHJvdXRlWzFdLCBxdWVyeT0icGlwZT1zbGljZShudWxsLDIpIikKICAgICAgICAg
IyBzbGljZSBoYXMgbm90IGJlZW4gYXBwbGllZCB0byB0aGUgcmVzcG9uc2UsIGJlY2F1c2UgcmVz
cG9uc2Uud3JpdGVyIHdhcyB1c2VkLgotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHJlc3AucmVh
ZCgpLCAiUEFTUyIpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocmVzcC5yZWFkKCksIGIiUEFT
UyIpCiAKLSAgICBAcHl0ZXN0Lm1hcmsueGZhaWwoc3lzLnZlcnNpb25faW5mbyA+PSAoMywpLCBy
ZWFzb249IndwdHNlcnZlIG9ubHkgd29ya3Mgb24gUHkyIikKICAgICBkZWYgdGVzdF9oZWFkZXJf
cGlwZV93aXRoX3B5dGhvbl9mdW5jX3VzaW5nX3Jlc3BvbnNlX3dyaXRlcihzZWxmKToKICAgICAg
ICAgQHdwdHNlcnZlLmhhbmRsZXJzLmhhbmRsZXIKICAgICAgICAgZGVmIGhhbmRsZXIocmVxdWVz
dCwgcmVzcG9uc2UpOgpAQCAtMTc2LDkgKzE3OSw4IEBAIGNsYXNzIFRlc3RQaXBlc1dpdGhWYXJp
b3VzSGFuZGxlcnMoVGVzdFVzaW5nU2VydmVyKToKICAgICAgICAgcmVzcCA9IHNlbGYucmVxdWVz
dChyb3V0ZVsxXSwgcXVlcnk9InBpcGU9aGVhZGVyKFgtVEVTVCxGQUlMKSIpCiAgICAgICAgICMg
aGVhZGVyIHBpcGUgd2FzIGlnbm9yZWQsIGJlY2F1c2UgcmVzcG9uc2Uud3JpdGVyIHdhcyB1c2Vk
LgogICAgICAgICBzZWxmLmFzc2VydEZhbHNlKHJlc3AuaW5mbygpLmdldCgiWC1URVNUIikpCi0g
ICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocmVzcC5yZWFkKCksICJDT05URU5UIikKKyAgICAgICAg
c2VsZi5hc3NlcnRFcXVhbChyZXNwLnJlYWQoKSwgYiJDT05URU5UIikKIAotICAgIEBweXRlc3Qu
bWFyay54ZmFpbChzeXMudmVyc2lvbl9pbmZvID49ICgzLCksIHJlYXNvbj0id3B0c2VydmUgb25s
eSB3b3JrcyBvbiBQeTIiKQogICAgIGRlZiB0ZXN0X3dpdGhfanNvbl9oYW5kbGVyKHNlbGYpOgog
ICAgICAgICBAd3B0c2VydmUuaGFuZGxlcnMuanNvbl9oYW5kbGVyCiAgICAgICAgIGRlZiBoYW5k
bGVyKHJlcXVlc3QsIHJlc3BvbnNlKToKQEAgLTE4NiwzMiArMTg4LDI5IEBAIGNsYXNzIFRlc3RQ
aXBlc1dpdGhWYXJpb3VzSGFuZGxlcnMoVGVzdFVzaW5nU2VydmVyKToKICAgICAgICAgcm91dGUg
PSAoIkdFVCIsICIvdGVzdC90ZXN0X3BpcGVzXzIvIiwgaGFuZGxlcikKICAgICAgICAgc2VsZi5z
ZXJ2ZXIucm91dGVyLnJlZ2lzdGVyKCpyb3V0ZSkKICAgICAgICAgcmVzcCA9IHNlbGYucmVxdWVz
dChyb3V0ZVsxXSwgcXVlcnk9InBpcGU9c2xpY2UobnVsbCwyKSIpCi0gICAgICAgIHNlbGYuYXNz
ZXJ0RXF1YWwocmVzcC5yZWFkKCksICcieycpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocmVz
cC5yZWFkKCksIGInInsnKQogCi0gICAgQHB5dGVzdC5tYXJrLnhmYWlsKHN5cy52ZXJzaW9uX2lu
Zm8gPj0gKDMsKSwgcmVhc29uPSJ3cHRzZXJ2ZSBvbmx5IHdvcmtzIG9uIFB5MiIpCiAgICAgZGVm
IHRlc3Rfc2xpY2Vfd2l0aF9hc19pc19oYW5kbGVyKHNlbGYpOgogICAgICAgICByZXNwID0gc2Vs
Zi5yZXF1ZXN0KCIvdGVzdC5hc2lzIiwgcXVlcnk9InBpcGU9c2xpY2UobnVsbCwyKSIpCiAgICAg
ICAgIHNlbGYuYXNzZXJ0RXF1YWwoMjAyLCByZXNwLmdldGNvZGUoKSkKICAgICAgICAgc2VsZi5h
c3NlcnRFcXVhbCgiR2lyYWZmZSIsIHJlc3AubXNnKQogICAgICAgICBzZWxmLmFzc2VydEVxdWFs
KCJQQVNTIiwgcmVzcC5pbmZvKClbIlgtVGVzdCJdKQogICAgICAgICAjIHNsaWNlIGhhcyBub3Qg
YmVlbiBhcHBsaWVkIHRvIHRoZSByZXNwb25zZSwgYmVjYXVzZSByZXNwb25zZS53cml0ZXIgd2Fz
IHVzZWQuCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoIkNvbnRlbnQiLCByZXNwLnJlYWQoKSkK
KyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChiIkNvbnRlbnQiLCByZXNwLnJlYWQoKSkKIAotICAg
IEBweXRlc3QubWFyay54ZmFpbChzeXMudmVyc2lvbl9pbmZvID49ICgzLCksIHJlYXNvbj0id3B0
c2VydmUgb25seSB3b3JrcyBvbiBQeTIiKQogICAgIGRlZiB0ZXN0X2hlYWRlcnNfd2l0aF9hc19p
c19oYW5kbGVyKHNlbGYpOgogICAgICAgICByZXNwID0gc2VsZi5yZXF1ZXN0KCIvdGVzdC5hc2lz
IiwgcXVlcnk9InBpcGU9aGVhZGVyKFgtVEVTVCxGQUlMKSIpCiAgICAgICAgIHNlbGYuYXNzZXJ0
RXF1YWwoMjAyLCByZXNwLmdldGNvZGUoKSkKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgiR2ly
YWZmZSIsIHJlc3AubXNnKQogICAgICAgICAjIGhlYWRlciBwaXBlIHdhcyBpZ25vcmVkLgogICAg
ICAgICBzZWxmLmFzc2VydEVxdWFsKCJQQVNTIiwgcmVzcC5pbmZvKClbIlgtVEVTVCJdKQotICAg
ICAgICBzZWxmLmFzc2VydEVxdWFsKCJDb250ZW50IiwgcmVzcC5yZWFkKCkpCisgICAgICAgIHNl
bGYuYXNzZXJ0RXF1YWwoYiJDb250ZW50IiwgcmVzcC5yZWFkKCkpCiAKLSAgICBAcHl0ZXN0Lm1h
cmsueGZhaWwoc3lzLnZlcnNpb25faW5mbyA+PSAoMywpLCByZWFzb249IndwdHNlcnZlIG9ubHkg
d29ya3Mgb24gUHkyIikKICAgICBkZWYgdGVzdF90cmlja2xlX3dpdGhfYXNfaXNfaGFuZGxlcihz
ZWxmKToKICAgICAgICAgdDAgPSB0aW1lLnRpbWUoKQogICAgICAgICByZXNwID0gc2VsZi5yZXF1
ZXN0KCIvdGVzdC5hc2lzIiwgcXVlcnk9InBpcGU9dHJpY2tsZSgxOmQyOjU6ZDE6cjIpIikKICAg
ICAgICAgdDEgPSB0aW1lLnRpbWUoKQotICAgICAgICBzZWxmLmFzc2VydFRydWUoJ0NvbnRlbnQn
IGluIHJlc3AucmVhZCgpKQorICAgICAgICBzZWxmLmFzc2VydFRydWUoYidDb250ZW50JyBpbiBy
ZXNwLnJlYWQoKSkKICAgICAgICAgc2VsZi5hc3NlcnRHcmVhdGVyKDYsIHQxLXQwKQogCiBpZiBf
X25hbWVfXyA9PSAnX19tYWluX18nOgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRzZXJ2ZS90ZXN0cy9mdW5jdGlvbmFsL3Rl
c3RfcmVxdWVzdC5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvd3B0c2VydmUvdGVzdHMvZnVuY3Rpb25hbC90ZXN0X3JlcXVlc3QucHkKaW5kZXgg
OTdkNzVlYjcxMjg5YWRmNjQzYWIwNzNkZGM3NDBmMWYyNGNmZmM3Ni4uZDk0NTgwMTQwZTIxZDVi
OGI5MDFkODRlMzU4OTVlNmEyYTZhNWVkZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRzZXJ2ZS90ZXN0cy9mdW5jdGlvbmFs
L3Rlc3RfcmVxdWVzdC5weQorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3dwdHNlcnZlL3Rlc3RzL2Z1bmN0aW9uYWwvdGVzdF9yZXF1ZXN0LnB5
CkBAIC0xLDUgKzEsNCBAQAotaW1wb3J0IHN5cwotCisjIC0qLSBjb2Rpbmc6IHV0Zi04IC0qLQog
aW1wb3J0IHB5dGVzdAogCiB3cHRzZXJ2ZSA9IHB5dGVzdC5pbXBvcnRvcnNraXAoIndwdHNlcnZl
IikKQEAgLTgsNyArNyw2IEBAIGZyb20gd3B0c2VydmUucmVxdWVzdCBpbXBvcnQgSW5wdXRGaWxl
CiAKIAogY2xhc3MgVGVzdElucHV0RmlsZShUZXN0VXNpbmdTZXJ2ZXIpOgotICAgIEBweXRlc3Qu
bWFyay54ZmFpbChzeXMudmVyc2lvbl9pbmZvID49ICgzLCksIHJlYXNvbj0id3B0c2VydmUgb25s
eSB3b3JrcyBvbiBQeTIiKQogICAgIGRlZiB0ZXN0X3NlZWsoc2VsZik6CiAgICAgICAgIEB3cHRz
ZXJ2ZS5oYW5kbGVycy5oYW5kbGVyCiAgICAgICAgIGRlZiBoYW5kbGVyKHJlcXVlc3QsIHJlc3Bv
bnNlKToKQEAgLTE2LDI4ICsxNCwyNyBAQCBjbGFzcyBUZXN0SW5wdXRGaWxlKFRlc3RVc2luZ1Nl
cnZlcik6CiAgICAgICAgICAgICBmID0gcmVxdWVzdC5yYXdfaW5wdXQKICAgICAgICAgICAgIGYu
c2Vlayg1KQogICAgICAgICAgICAgcnYuYXBwZW5kKGYucmVhZCgyKSkKLSAgICAgICAgICAgIHJ2
LmFwcGVuZChmLnRlbGwoKSkKKyAgICAgICAgICAgIHJ2LmFwcGVuZChiIiVkIiAlIGYudGVsbCgp
KQogICAgICAgICAgICAgZi5zZWVrKDApCiAgICAgICAgICAgICBydi5hcHBlbmQoZi5yZWFkbGlu
ZSgpKQotICAgICAgICAgICAgcnYuYXBwZW5kKGYudGVsbCgpKQorICAgICAgICAgICAgcnYuYXBw
ZW5kKGIiJWQiICUgZi50ZWxsKCkpCiAgICAgICAgICAgICBydi5hcHBlbmQoZi5yZWFkKC0xKSkK
LSAgICAgICAgICAgIHJ2LmFwcGVuZChmLnRlbGwoKSkKKyAgICAgICAgICAgIHJ2LmFwcGVuZChi
IiVkIiAlIGYudGVsbCgpKQogICAgICAgICAgICAgZi5zZWVrKDApCiAgICAgICAgICAgICBydi5h
cHBlbmQoZi5yZWFkKCkpCiAgICAgICAgICAgICBmLnNlZWsoMCkKICAgICAgICAgICAgIHJ2LmV4
dGVuZChmLnJlYWRsaW5lcygpKQogCi0gICAgICAgICAgICByZXR1cm4gIiAiLmpvaW4oc3RyKGl0
ZW0pIGZvciBpdGVtIGluIHJ2KQorICAgICAgICAgICAgcmV0dXJuIGIiICIuam9pbihydikKIAog
ICAgICAgICByb3V0ZSA9ICgiUE9TVCIsICIvdGVzdC90ZXN0X3NlZWsiLCBoYW5kbGVyKQogICAg
ICAgICBzZWxmLnNlcnZlci5yb3V0ZXIucmVnaXN0ZXIoKnJvdXRlKQotICAgICAgICByZXNwID0g
c2VsZi5yZXF1ZXN0KHJvdXRlWzFdLCBtZXRob2Q9IlBPU1QiLCBib2R5PSIxMjM0NWFiXG5jZGVm
IikKKyAgICAgICAgcmVzcCA9IHNlbGYucmVxdWVzdChyb3V0ZVsxXSwgbWV0aG9kPSJQT1NUIiwg
Ym9keT1iIjEyMzQ1YWJcbmNkZWYiKQogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKDIwMCwgcmVz
cC5nZXRjb2RlKCkpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoWyJhYiIsICI3IiwgIjEyMzQ1
YWJcbiIsICI4IiwgImNkZWYiLCAiMTIiLAotICAgICAgICAgICAgICAgICAgICAgICAgICAiMTIz
NDVhYlxuY2RlZiIsICIxMjM0NWFiXG4iLCAiY2RlZiJdLAotICAgICAgICAgICAgICAgICAgICAg
ICAgIHJlc3AucmVhZCgpLnNwbGl0KCIgIikpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoW2Ii
YWIiLCBiIjciLCBiIjEyMzQ1YWJcbiIsIGIiOCIsIGIiY2RlZiIsIGIiMTIiLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICBiIjEyMzQ1YWJcbmNkZWYiLCBiIjEyMzQ1YWJcbiIsIGIiY2RlZiJd
LAorICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3AucmVhZCgpLnNwbGl0KGIiICIpKQogCi0g
ICAgQHB5dGVzdC5tYXJrLnhmYWlsKHN5cy52ZXJzaW9uX2luZm8gPj0gKDMsKSwgcmVhc29uPSJ3
cHRzZXJ2ZSBvbmx5IHdvcmtzIG9uIFB5MiIpCiAgICAgZGVmIHRlc3Rfc2Vla19pbnB1dF9sb25n
ZXJfdGhhbl9idWZmZXIoc2VsZik6CiAgICAgICAgIEB3cHRzZXJ2ZS5oYW5kbGVycy5oYW5kbGVy
CiAgICAgICAgIGRlZiBoYW5kbGVyKHJlcXVlc3QsIHJlc3BvbnNlKToKQEAgLTQ1LDExICs0Miwx
MSBAQCBjbGFzcyBUZXN0SW5wdXRGaWxlKFRlc3RVc2luZ1NlcnZlcik6CiAgICAgICAgICAgICBm
ID0gcmVxdWVzdC5yYXdfaW5wdXQKICAgICAgICAgICAgIGYuc2Vlayg1KQogICAgICAgICAgICAg
cnYuYXBwZW5kKGYucmVhZCgyKSkKLSAgICAgICAgICAgIHJ2LmFwcGVuZChmLnRlbGwoKSkKKyAg
ICAgICAgICAgIHJ2LmFwcGVuZChiIiVkIiAlIGYudGVsbCgpKQogICAgICAgICAgICAgZi5zZWVr
KDApCi0gICAgICAgICAgICBydi5hcHBlbmQoZi50ZWxsKCkpCi0gICAgICAgICAgICBydi5hcHBl
bmQoZi50ZWxsKCkpCi0gICAgICAgICAgICByZXR1cm4gIiAiLmpvaW4oc3RyKGl0ZW0pIGZvciBp
dGVtIGluIHJ2KQorICAgICAgICAgICAgcnYuYXBwZW5kKGIiJWQiICUgZi50ZWxsKCkpCisgICAg
ICAgICAgICBydi5hcHBlbmQoYiIlZCIgJSBmLnRlbGwoKSkKKyAgICAgICAgICAgIHJldHVybiBi
IiAiLmpvaW4ocnYpCiAKICAgICAgICAgcm91dGUgPSAoIlBPU1QiLCAiL3Rlc3QvdGVzdF9zZWVr
IiwgaGFuZGxlcikKICAgICAgICAgc2VsZi5zZXJ2ZXIucm91dGVyLnJlZ2lzdGVyKCpyb3V0ZSkK
QEAgLTU3LDEwICs1NCwxMCBAQCBjbGFzcyBUZXN0SW5wdXRGaWxlKFRlc3RVc2luZ1NlcnZlcik6
CiAgICAgICAgIG9sZF9tYXhfYnVmID0gSW5wdXRGaWxlLm1heF9idWZmZXJfc2l6ZQogICAgICAg
ICBJbnB1dEZpbGUubWF4X2J1ZmZlcl9zaXplID0gMTAKICAgICAgICAgdHJ5OgotICAgICAgICAg
ICAgcmVzcCA9IHNlbGYucmVxdWVzdChyb3V0ZVsxXSwgbWV0aG9kPSJQT1NUIiwgYm9keT0iMSIq
MjApCisgICAgICAgICAgICByZXNwID0gc2VsZi5yZXF1ZXN0KHJvdXRlWzFdLCBtZXRob2Q9IlBP
U1QiLCBib2R5PWIiMSIqMjApCiAgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKDIwMCwgcmVz
cC5nZXRjb2RlKCkpCi0gICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKFsiMTEiLCAiNyIsICIw
IiwgIjAiXSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXNwLnJlYWQoKS5zcGxpdCgi
ICIpKQorICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChbYiIxMSIsIGIiNyIsIGIiMCIsIGIi
MCJdLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXNwLnJlYWQoKS5zcGxpdChiIiAi
KSkKICAgICAgICAgZmluYWxseToKICAgICAgICAgICAgIElucHV0RmlsZS5tYXhfYnVmZmVyX3Np
emUgPSBvbGRfbWF4X2J1ZgogCkBAIC0xMTcsMTYgKzExNCw0MCBAQCBjbGFzcyBUZXN0UmVxdWVz
dChUZXN0VXNpbmdTZXJ2ZXIpOgogICAgICAgICByZXNwID0gc2VsZi5yZXF1ZXN0KCIvdGVzdC9z
b21lX3JvdXRlIikKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChiInNvbWUgcm91dGUiLCByZXNw
LnJlYWQoKSkKIAorICAgIGRlZiB0ZXN0X25vbl9hc2NpaV9pbl9oZWFkZXJzKHNlbGYpOgorICAg
ICAgICBAd3B0c2VydmUuaGFuZGxlcnMuaGFuZGxlcgorICAgICAgICBkZWYgaGFuZGxlcihyZXF1
ZXN0LCByZXNwb25zZSk6CisgICAgICAgICAgICByZXR1cm4gcmVxdWVzdC5oZWFkZXJzWyJmb28i
XQorCisgICAgICAgIHJvdXRlID0gKCJHRVQiLCAiL3Rlc3QvdGVzdF91bmljb2RlX2luX2hlYWRl
cnMiLCBoYW5kbGVyKQorICAgICAgICBzZWxmLnNlcnZlci5yb3V0ZXIucmVnaXN0ZXIoKnJvdXRl
KQorCisgICAgICAgICMgVHJ5IHNvbWUgbm9uLUFTQ0lJIGNoYXJhY3RlcnMgYW5kIHRoZSBzZXJ2
ZXIgc2hvdWxkbid0IGNyYXNoLgorICAgICAgICBlbmNvZGVkX3RleHQgPSB1IuS9oOWlvSIuZW5j
b2RlKCJ1dGYtOCIpCisgICAgICAgIHJlc3AgPSBzZWxmLnJlcXVlc3Qocm91dGVbMV0sIGhlYWRl
cnM9eyJmb28iOiBlbmNvZGVkX3RleHR9KQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGVuY29k
ZWRfdGV4dCwgcmVzcC5yZWFkKCkpCisKKyAgICAgICAgIyBUcnkgYSBkaWZmZXJlbnQgZW5jb2Rp
bmcgZnJvbSB1dGYtOCB0byBtYWtlIHN1cmUgdGhlIGJpbmFyeSB2YWx1ZSBpcworICAgICAgICAj
IHJldHVybmVkIGluIHZlcmJhdGltLgorICAgICAgICBlbmNvZGVkX3RleHQgPSB1IuOBqeOBhuOC
giIuZW5jb2RlKCJzaGlmdC1qaXMiKQorICAgICAgICByZXNwID0gc2VsZi5yZXF1ZXN0KHJvdXRl
WzFdLCBoZWFkZXJzPXsiZm9vIjogZW5jb2RlZF90ZXh0fSkKKyAgICAgICAgc2VsZi5hc3NlcnRF
cXVhbChlbmNvZGVkX3RleHQsIHJlc3AucmVhZCgpKQorCiAKIGNsYXNzIFRlc3RBdXRoKFRlc3RV
c2luZ1NlcnZlcik6Ci0gICAgQHB5dGVzdC5tYXJrLnhmYWlsKHN5cy52ZXJzaW9uX2luZm8gPj0g
KDMsKSwgcmVhc29uPSJ3cHRzZXJ2ZSBvbmx5IHdvcmtzIG9uIFB5MiIpCiAgICAgZGVmIHRlc3Rf
YXV0aChzZWxmKToKICAgICAgICAgQHdwdHNlcnZlLmhhbmRsZXJzLmhhbmRsZXIKICAgICAgICAg
ZGVmIGhhbmRsZXIocmVxdWVzdCwgcmVzcG9uc2UpOgotICAgICAgICAgICAgcmV0dXJuICIgIi5q
b2luKChyZXF1ZXN0LmF1dGgudXNlcm5hbWUsIHJlcXVlc3QuYXV0aC5wYXNzd29yZCkpCisgICAg
ICAgICAgICByZXR1cm4gYiIgIi5qb2luKChyZXF1ZXN0LmF1dGgudXNlcm5hbWUsIHJlcXVlc3Qu
YXV0aC5wYXNzd29yZCkpCiAKICAgICAgICAgcm91dGUgPSAoIkdFVCIsICIvdGVzdC90ZXN0X2F1
dGgiLCBoYW5kbGVyKQogICAgICAgICBzZWxmLnNlcnZlci5yb3V0ZXIucmVnaXN0ZXIoKnJvdXRl
KQotICAgICAgICByZXNwID0gc2VsZi5yZXF1ZXN0KHJvdXRlWzFdLCBhdXRoPSgidGVzdCIsICJQ
QVNTIikpCisKKyAgICAgICAgcmVzcCA9IHNlbGYucmVxdWVzdChyb3V0ZVsxXSwgYXV0aD0oYiJ0
ZXN0IiwgYiJQQVNTIikpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoMjAwLCByZXNwLmdldGNv
ZGUoKSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChbYiJ0ZXN0IiwgYiJQQVNTIl0sIHJlc3Au
cmVhZCgpLnNwbGl0KGIiICIpKQorCisgICAgICAgIGVuY29kZWRfdGV4dCA9IHUi44Gp44GG44KC
Ii5lbmNvZGUoInNoaWZ0LWppcyIpCisgICAgICAgIHJlc3AgPSBzZWxmLnJlcXVlc3Qocm91dGVb
MV0sIGF1dGg9KGVuY29kZWRfdGV4dCwgZW5jb2RlZF90ZXh0KSkKICAgICAgICAgc2VsZi5hc3Nl
cnRFcXVhbCgyMDAsIHJlc3AuZ2V0Y29kZSgpKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKFsi
dGVzdCIsICJQQVNTIl0sIHJlc3AucmVhZCgpLnNwbGl0KCIgIikpCisgICAgICAgIHNlbGYuYXNz
ZXJ0RXF1YWwoW2VuY29kZWRfdGV4dCwgZW5jb2RlZF90ZXh0XSwgcmVzcC5yZWFkKCkuc3BsaXQo
YiIgIikpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3dwdHNlcnZlL3Rlc3RzL2Z1bmN0aW9uYWwvdGVzdF9yZXNwb25zZS5weSBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0c2Vy
dmUvdGVzdHMvZnVuY3Rpb25hbC90ZXN0X3Jlc3BvbnNlLnB5CmluZGV4IGRhZjhlNmVkMDAyODUw
MmYwODc2MTU5Y2JkYTM3ZTlhYzZiNmM5OWMuLmQ4ZDY0ZDU0Y2NjNzhhM2M2ZGViYTIxYjczNDI4
ZTcxYWViMWJlNjAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvd3B0c2VydmUvdGVzdHMvZnVuY3Rpb25hbC90ZXN0X3Jlc3BvbnNl
LnB5CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9v
bHMvd3B0c2VydmUvdGVzdHMvZnVuY3Rpb25hbC90ZXN0X3Jlc3BvbnNlLnB5CkBAIC0yLDE0ICsy
LDE0IEBAIGltcG9ydCBzeXMKIGltcG9ydCBvcwogaW1wb3J0IHVuaXR0ZXN0CiBpbXBvcnQganNv
bgotZnJvbSB0eXBlcyBpbXBvcnQgTWV0aG9kVHlwZQogZnJvbSBpbyBpbXBvcnQgQnl0ZXNJTwog
CiBpbXBvcnQgcHl0ZXN0Citmcm9tIHNpeCBpbXBvcnQgY3JlYXRlX2JvdW5kX21ldGhvZAogCiB3
cHRzZXJ2ZSA9IHB5dGVzdC5pbXBvcnRvcnNraXAoIndwdHNlcnZlIikKIGZyb20gLmJhc2UgaW1w
b3J0IFRlc3RVc2luZ1NlcnZlciwgVGVzdFVzaW5nSDJTZXJ2ZXIsIGRvY19yb290Ci1mcm9tIGh5
cGVyLmgyLmV4Y2VwdGlvbnMgaW1wb3J0IFByb3RvY29sRXJyb3IKK2Zyb20gaDIuZXhjZXB0aW9u
cyBpbXBvcnQgUHJvdG9jb2xFcnJvcgogCiBkZWYgc2VuZF9ib2R5X2FzX2hlYWRlcihzZWxmKToK
ICAgICBpZiBzZWxmLl9yZXNwb25zZS5hZGRfcmVxdWlyZWRfaGVhZGVyczoKQEAgLTE5LDEzICsx
OSwxMSBAQCBkZWYgc2VuZF9ib2R5X2FzX2hlYWRlcihzZWxmKToKICAgICBzZWxmLl9oZWFkZXJz
X2NvbXBsZXRlID0gVHJ1ZQogCiBjbGFzcyBUZXN0UmVzcG9uc2UoVGVzdFVzaW5nU2VydmVyKToK
LSAgICBAcHl0ZXN0Lm1hcmsueGZhaWwoc3lzLnZlcnNpb25faW5mbyA+PSAoMywpLCByZWFzb249
IndwdHNlcnZlIG9ubHkgd29ya3Mgb24gUHkyIikKICAgICBkZWYgdGVzdF9oZWFkX3dpdGhvdXRf
Ym9keShzZWxmKToKICAgICAgICAgQHdwdHNlcnZlLmhhbmRsZXJzLmhhbmRsZXIKICAgICAgICAg
ZGVmIGhhbmRsZXIocmVxdWVzdCwgcmVzcG9uc2UpOgotICAgICAgICAgICAgcmVzcG9uc2Uud3Jp
dGVyLmVuZF9oZWFkZXJzID0gTWV0aG9kVHlwZShzZW5kX2JvZHlfYXNfaGVhZGVyLAotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXNwb25zZS53
cml0ZXIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHdwdHNlcnZlLnJlc3BvbnNlLlJlc3BvbnNlV3JpdGVyKQorICAgICAgICAgICAgcmVzcG9u
c2Uud3JpdGVyLmVuZF9oZWFkZXJzID0gY3JlYXRlX2JvdW5kX21ldGhvZChzZW5kX2JvZHlfYXNf
aGVhZGVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICByZXNwb25zZS53cml0ZXIpCiAgICAgICAgICAgICByZXR1cm4gWygiWC1U
ZXN0IiwgIlRFU1QiKV0sICJib2R5XHJcbiIKIAogICAgICAgICByb3V0ZSA9ICgiR0VUIiwgIi90
ZXN0L3Rlc3RfaGVhZF93aXRob3V0X2JvZHkiLCBoYW5kbGVyKQpAQCAtMzUsMTQgKzMzLDEyIEBA
IGNsYXNzIFRlc3RSZXNwb25zZShUZXN0VXNpbmdTZXJ2ZXIpOgogICAgICAgICBzZWxmLmFzc2Vy
dEVxdWFsKCJURVNUIiwgcmVzcC5pbmZvKClbJ3gtVGVzdCddKQogICAgICAgICBzZWxmLmFzc2Vy
dEVxdWFsKCIiLCByZXNwLmluZm8oKVsneC1ib2R5J10pCiAKLSAgICBAcHl0ZXN0Lm1hcmsueGZh
aWwoc3lzLnZlcnNpb25faW5mbyA+PSAoMywpLCByZWFzb249IndwdHNlcnZlIG9ubHkgd29ya3Mg
b24gUHkyIikKICAgICBkZWYgdGVzdF9oZWFkX3dpdGhfYm9keShzZWxmKToKICAgICAgICAgQHdw
dHNlcnZlLmhhbmRsZXJzLmhhbmRsZXIKICAgICAgICAgZGVmIGhhbmRsZXIocmVxdWVzdCwgcmVz
cG9uc2UpOgogICAgICAgICAgICAgcmVzcG9uc2Uuc2VuZF9ib2R5X2Zvcl9oZWFkX3JlcXVlc3Qg
PSBUcnVlCi0gICAgICAgICAgICByZXNwb25zZS53cml0ZXIuZW5kX2hlYWRlcnMgPSBNZXRob2RU
eXBlKHNlbmRfYm9keV9hc19oZWFkZXIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHJlc3BvbnNlLndyaXRlciwKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd3B0c2VydmUucmVzcG9uc2UuUmVz
cG9uc2VXcml0ZXIpCisgICAgICAgICAgICByZXNwb25zZS53cml0ZXIuZW5kX2hlYWRlcnMgPSBj
cmVhdGVfYm91bmRfbWV0aG9kKHNlbmRfYm9keV9hc19oZWFkZXIsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3BvbnNlLndy
aXRlcikKICAgICAgICAgICAgIHJldHVybiBbKCJYLVRlc3QiLCAiVEVTVCIpXSwgImJvZHlcclxu
IgogCiAgICAgICAgIHJvdXRlID0gKCJHRVQiLCAiL3Rlc3QvdGVzdF9oZWFkX3dpdGhfYm9keSIs
IGhhbmRsZXIpCkBAIC0xNjQsNyArMTYwLDcgQEAgY2xhc3MgVGVzdFJlc3BvbnNlKFRlc3RVc2lu
Z1NlcnZlcik6CiAgICAgZGVmIHRlc3Rfd3JpdGVfcmF3X25vbmUoc2VsZik6CiAgICAgICAgIEB3
cHRzZXJ2ZS5oYW5kbGVycy5oYW5kbGVyCiAgICAgICAgIGRlZiBoYW5kbGVyKHJlcXVlc3QsIHJl
c3BvbnNlKToKLSAgICAgICAgICAgIHdpdGggcHl0ZXN0LnJhaXNlcyhWYWx1ZUVycm9yLCBtZXNz
YWdlPSJkYXRhIGNhbm5vdCBiZSBOb25lIik6CisgICAgICAgICAgICB3aXRoIHB5dGVzdC5yYWlz
ZXMoVmFsdWVFcnJvcik6CiAgICAgICAgICAgICAgICAgcmVzcG9uc2Uud3JpdGVyLndyaXRlX3Jh
d19jb250ZW50KE5vbmUpCiAKICAgICAgICAgcm91dGUgPSAoIkdFVCIsICIvdGVzdC90ZXN0X3dy
aXRlX3Jhd19jb250ZW50IiwgaGFuZGxlcikKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0c2VydmUvdGVzdHMvZnVuY3Rpb25h
bC90ZXN0X3NlcnZlci5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvd3B0c2VydmUvdGVzdHMvZnVuY3Rpb25hbC90ZXN0X3NlcnZlci5weQppbmRl
eCA1MTFjODZmMzJjNTRhYjcwNGU5ZGNhMmJhMTE0NTJmMjQxNjFlMDVmLi41MTMzMWE2N2VmYTg4
ZDc4ZWE1NjEzMGYwMGU1NDIwNjMzYjZhYWM2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHNlcnZlL3Rlc3RzL2Z1bmN0aW9u
YWwvdGVzdF9zZXJ2ZXIucHkKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy93cHRzZXJ2ZS90ZXN0cy9mdW5jdGlvbmFsL3Rlc3Rfc2VydmVyLnB5
CkBAIC00LDcgKzQsNyBAQCBpbXBvcnQgcHl0ZXN0CiBmcm9tIHNpeC5tb3Zlcy51cmxsaWIuZXJy
b3IgaW1wb3J0IEhUVFBFcnJvcgogCiB3cHRzZXJ2ZSA9IHB5dGVzdC5pbXBvcnRvcnNraXAoIndw
dHNlcnZlIikKLWZyb20gLmJhc2UgaW1wb3J0IFRlc3RVc2luZ1NlcnZlcgorZnJvbSAuYmFzZSBp
bXBvcnQgVGVzdFVzaW5nU2VydmVyLCBUZXN0VXNpbmdIMlNlcnZlcgogCiAKIGNsYXNzIFRlc3RG
aWxlSGFuZGxlcihUZXN0VXNpbmdTZXJ2ZXIpOgpAQCAtNDAsNSArNDAsNTEgQEAgY2xhc3MgVGVz
dFJlcXVlc3RIYW5kbGVyKFRlc3RVc2luZ1NlcnZlcik6CiAKICAgICAgICAgc2VsZi5hc3NlcnRF
cXVhbChjbS5leGNlcHRpb24uY29kZSwgNTAwKQogCitjbGFzcyBUZXN0RmlsZUhhbmRsZXJIMihU
ZXN0VXNpbmdIMlNlcnZlcik6CisgICAgZGVmIHRlc3Rfbm90X2hhbmRsZWQoc2VsZik6CisgICAg
ICAgIHNlbGYuY29ubi5yZXF1ZXN0KCJHRVQiLCAiL25vdF9leGlzdGluZyIpCisgICAgICAgIHJl
c3AgPSBzZWxmLmNvbm4uZ2V0X3Jlc3BvbnNlKCkKKworICAgICAgICBhc3NlcnQgcmVzcC5zdGF0
dXMgPT0gNDA0CisKK2NsYXNzIFRlc3RSZXdyaXRlckgyKFRlc3RVc2luZ0gyU2VydmVyKToKKyAg
ICBkZWYgdGVzdF9yZXdyaXRlKHNlbGYpOgorICAgICAgICBAd3B0c2VydmUuaGFuZGxlcnMuaGFu
ZGxlcgorICAgICAgICBkZWYgaGFuZGxlcihyZXF1ZXN0LCByZXNwb25zZSk6CisgICAgICAgICAg
ICByZXR1cm4gcmVxdWVzdC5yZXF1ZXN0X3BhdGgKKworICAgICAgICByb3V0ZSA9ICgiR0VUIiwg
Ii90ZXN0L3Jld3JpdHRlbiIsIGhhbmRsZXIpCisgICAgICAgIHNlbGYuc2VydmVyLnJld3JpdGVy
LnJlZ2lzdGVyKCJHRVQiLCAiL3Rlc3Qvb3JpZ2luYWwiLCByb3V0ZVsxXSkKKyAgICAgICAgc2Vs
Zi5zZXJ2ZXIucm91dGVyLnJlZ2lzdGVyKCpyb3V0ZSkKKyAgICAgICAgc2VsZi5jb25uLnJlcXVl
c3QoIkdFVCIsICIvdGVzdC9vcmlnaW5hbCIpCisgICAgICAgIHJlc3AgPSBzZWxmLmNvbm4uZ2V0
X3Jlc3BvbnNlKCkKKyAgICAgICAgYXNzZXJ0IHJlc3Auc3RhdHVzID09IDIwMAorICAgICAgICBh
c3NlcnQgcmVzcC5yZWFkKCkgPT0gYiIvdGVzdC9yZXdyaXR0ZW4iCisKK2NsYXNzIFRlc3RSZXF1
ZXN0SGFuZGxlckgyKFRlc3RVc2luZ0gyU2VydmVyKToKKyAgICBkZWYgdGVzdF9leGNlcHRpb24o
c2VsZik6CisgICAgICAgIEB3cHRzZXJ2ZS5oYW5kbGVycy5oYW5kbGVyCisgICAgICAgIGRlZiBo
YW5kbGVyKHJlcXVlc3QsIHJlc3BvbnNlKToKKyAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbgor
CisgICAgICAgIHJvdXRlID0gKCJHRVQiLCAiL3Rlc3QvcmFpc2VzIiwgaGFuZGxlcikKKyAgICAg
ICAgc2VsZi5zZXJ2ZXIucm91dGVyLnJlZ2lzdGVyKCpyb3V0ZSkKKyAgICAgICAgc2VsZi5jb25u
LnJlcXVlc3QoIkdFVCIsICIvdGVzdC9yYWlzZXMiKQorICAgICAgICByZXNwID0gc2VsZi5jb25u
LmdldF9yZXNwb25zZSgpCisKKyAgICAgICAgYXNzZXJ0IHJlc3Auc3RhdHVzID09IDUwMAorCisg
ICAgZGVmIHRlc3RfZnJhbWVfaGFuZGxlcl9leGNlcHRpb24oc2VsZik6CisgICAgICAgIGNsYXNz
IGhhbmRsZXJfY2xzOgorICAgICAgICAgICAgZGVmIGZyYW1lX2hhbmRsZXIoc2VsZiwgcmVxdWVz
dCk6CisgICAgICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uCisKKyAgICAgICAgcm91dGUgPSAo
IkdFVCIsICIvdGVzdC9yYWlzZXMiLCBoYW5kbGVyX2NscygpKQorICAgICAgICBzZWxmLnNlcnZl
ci5yb3V0ZXIucmVnaXN0ZXIoKnJvdXRlKQorICAgICAgICBzZWxmLmNvbm4ucmVxdWVzdCgiR0VU
IiwgIi90ZXN0L3JhaXNlcyIpCisgICAgICAgIHJlc3AgPSBzZWxmLmNvbm4uZ2V0X3Jlc3BvbnNl
KCkKKworICAgICAgICBhc3NlcnQgcmVzcC5zdGF0dXMgPT0gNTAwCisKIGlmIF9fbmFtZV9fID09
ICJfX21haW5fXyI6CiAgICAgdW5pdHRlc3QubWFpbigpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHNlcnZlL3Rlc3RzL3Rl
c3RfY29uZmlnLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy90b29scy93cHRzZXJ2ZS90ZXN0cy90ZXN0X2NvbmZpZy5weQppbmRleCA5NzEwMzQyNjY0Zjk0
ZWEwYWM3ODE1OWIwZDg1NzhkZmJhNTUyODIwLi44NTI3MWMzYTRiMzI0NzA1Njg4ZjUwNWI1MzQ5
OWJhYjgzZTEzM2I0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHNlcnZlL3Rlc3RzL3Rlc3RfY29uZmlnLnB5CisrKyBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0c2VydmUv
dGVzdHMvdGVzdF9jb25maWcucHkKQEAgLTEsNSArMSw4IEBACitpbXBvcnQganNvbgogaW1wb3J0
IGxvZ2dpbmcKIGltcG9ydCBwaWNrbGUKKworZnJvbSBkaXN0dXRpbHMuc3Bhd24gaW1wb3J0IGZp
bmRfZXhlY3V0YWJsZQogZnJvbSBsb2dnaW5nIGltcG9ydCBoYW5kbGVycwogCiBpbXBvcnQgcHl0
ZXN0CkBAIC00MSw2ICs0NCwxNiBAQCBkZWYgdGVzdF9sb2dnZXJfcHJlc2VydmVkKCk6CiAgICAg
ICAgIGFzc2VydCBjLmxvZ2dlciBpcyBsb2dnZXIKIAogCitkZWYgdGVzdF9hc19kaWN0KCk6Cisg
ICAgd2l0aCBjb25maWcuQ29uZmlnQnVpbGRlcigpIGFzIGM6CisgICAgICAgIGFzc2VydCBjLmFz
X2RpY3QoKSBpcyBub3QgTm9uZQorCisKK2RlZiB0ZXN0X2FzX2RpY3RfaXNfanNvbigpOgorICAg
IHdpdGggY29uZmlnLkNvbmZpZ0J1aWxkZXIoKSBhcyBjOgorICAgICAgICBhc3NlcnQganNvbi5k
dW1wcyhjLmFzX2RpY3QoKSkgaXMgbm90IE5vbmUKKworCiBkZWYgdGVzdF9pbml0X2Jhc2ljX3By
b3AoKToKICAgICB3aXRoIGNvbmZpZy5Db25maWdCdWlsZGVyKGJyb3dzZXJfaG9zdD0iZm9vLmJh
ciIpIGFzIGM6CiAgICAgICAgIGFzc2VydCBjLmJyb3dzZXJfaG9zdCA9PSAiZm9vLmJhciIKQEAg
LTE3Niw2ICsxODksOCBAQCBkZWYgdGVzdF9wb3J0c19ub19zc2woKToKICAgICAgICAgYXNzZXJ0
IHBvcnRzWyJ3cyJdID09IFsxMDAzXQogCiAKK0BweXRlc3QubWFyay5za2lwaWYoZmluZF9leGVj
dXRhYmxlKCJvcGVuc3NsIikgaXMgTm9uZSwKKyAgICAgICAgICAgICAgICAgICAgcmVhc29uPSJy
ZXF1aXJlcyBPcGVuU1NMIikKIGRlZiB0ZXN0X3BvcnRzX29wZW5zc2woKToKICAgICB3aXRoIGNv
bmZpZy5Db25maWdCdWlsZGVyKHBvcnRzPXsiaHR0cCI6IFsxMDAxXSwgImh0dHBzIjogWzEwMDJd
LCAid3MiOiBbMTAwM10sICJ3c3MiOiBbMTAwNF19LAogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgc3NsPXsidHlwZSI6ICJvcGVuc3NsIn0pIGFzIGM6CkBAIC0zNTksOSArMzc0LDkgQEAg
ZGVmIHRlc3Rfc3NsX2Vudl9vcGVuc3NsKCk6CiAKIAogZGVmIHRlc3Rfc3NsX2Vudl9ib2d1cygp
OgotICAgICAgICB3aXRoIHB5dGVzdC5yYWlzZXMoVmFsdWVFcnJvcik6Ci0gICAgICAgICAgICB3
aXRoIGNvbmZpZy5Db25maWdCdWlsZGVyKHNzbD17InR5cGUiOiAiZm9vYmFyIn0pOgotICAgICAg
ICAgICAgICAgIHBhc3MKKyAgICB3aXRoIHB5dGVzdC5yYWlzZXMoVmFsdWVFcnJvcik6CisgICAg
ICAgIHdpdGggY29uZmlnLkNvbmZpZ0J1aWxkZXIoc3NsPXsidHlwZSI6ICJmb29iYXIifSk6Cisg
ICAgICAgICAgICBwYXNzCiAKIAogZGVmIHRlc3RfcGlja2xlKCk6CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHNlcnZlL3Rl
c3RzL3Rlc3Rfc3Rhc2gucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3dwdHNlcnZlL3Rlc3RzL3Rlc3Rfc3Rhc2gucHkKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMWVh
OTljMDYwOWY1YmVkODU5NjUxMjg0ZWIzZGE4MGE0Y2RkZjczNwotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0c2Vy
dmUvdGVzdHMvdGVzdF9zdGFzaC5weQpAQCAtMCwwICsxLDEzNiBAQAoraW1wb3J0IG11bHRpcHJv
Y2Vzc2luZworaW1wb3J0IHN5cworaW1wb3J0IHRocmVhZGluZworZnJvbSBtdWx0aXByb2Nlc3Np
bmcubWFuYWdlcnMgaW1wb3J0IEJhc2VNYW5hZ2VyCisKK2ltcG9ydCBweXRlc3QKKworU3Rhc2gg
PSBweXRlc3QuaW1wb3J0b3Jza2lwKCJ3cHRzZXJ2ZS5zdGFzaCIpLlN0YXNoCisKK0BweXRlc3Qu
Zml4dHVyZSgpCitkZWYgYWRkX2NsZWFudXAoKToKKyAgICBmbnMgPSBbXQorCisgICAgZGVmIGFk
ZChmbik6CisgICAgICAgIGZucy5hcHBlbmQoZm4pCisKKyAgICB5aWVsZCBhZGQKKworICAgIGZv
ciBmbiBpbiBmbnM6CisgICAgICAgIGZuKCkKKworZGVmIHJ1bihwcm9jZXNzX3F1ZXVlLCByZXF1
ZXN0X2xvY2ssIHJlc3BvbnNlX2xvY2spOgorICAgICIiIkNyZWF0ZSB0d28gU3Rhc2ggaW5zdGFu
Y2VzIGluIHBhcmFsbGVsIHRocmVhZHMuIFVzZSB0aGUgcHJvdmlkZWQgbG9ja3MKKyAgICB0byBl
bnN1cmUgdGhlIGZpcnN0IHRocmVhZCBpcyBhY3RpdmVseSBlc3RhYmxpc2hpbmcgYW4gaW50ZXJw
cm9jZXNzCisgICAgY29tbXVuaWNhdGlvbiBjaGFubmVsIGF0IHRoZSBtb21lbnQgdGhlIHNlY29u
ZCB0aHJlYWQgZXhlY3V0ZXMuIiIiCisKKyAgICBkZWYgdGFyZ2V0KHRocmVhZF9xdWV1ZSk6Cisg
ICAgICAgIHN0YXNoID0gU3Rhc2goIi8iLCAoImxvY2FsaG9zdCIsIDQ1NDMpLCBiInNvbWUga2V5
IikKKworICAgICAgICAjIFRoZSBgbG9ja2AgcHJvcGVydHkgb2YgdGhlIFN0YXNoIGluc3RhbmNl
IHNob3VsZCBhbHdheXMgYmUgc2V0CisgICAgICAgICMgaW1tZWRpYXRlbHkgZm9sbG93aW5nIGlu
aXRpYWxpemF0aW9uLiBUaGVzZSB2YWx1ZXMgYXJlIGFzc2VydGVkIGluCisgICAgICAgICMgdGhl
IGFjdGl2ZSB0ZXN0LgorICAgICAgICB0aHJlYWRfcXVldWUucHV0KHN0YXNoLmxvY2sgaXMgTm9u
ZSkKKworICAgIHRocmVhZF9xdWV1ZSA9IG11bHRpcHJvY2Vzc2luZy5RdWV1ZSgpCisgICAgZmly
c3QgPSB0aHJlYWRpbmcuVGhyZWFkKHRhcmdldD10YXJnZXQsIGFyZ3M9KHRocmVhZF9xdWV1ZSwp
KQorICAgIHNlY29uZCA9IHRocmVhZGluZy5UaHJlYWQodGFyZ2V0PXRhcmdldCwgYXJncz0odGhy
ZWFkX3F1ZXVlLCkpCisKKyAgICByZXF1ZXN0X2xvY2suYWNxdWlyZSgpCisgICAgcmVzcG9uc2Vf
bG9jay5hY3F1aXJlKCkKKyAgICBmaXJzdC5zdGFydCgpCisKKyAgICByZXF1ZXN0X2xvY2suYWNx
dWlyZSgpCisKKyAgICAjIEF0IHRoaXMgbW9tZW50LCB0aGUgYGZpcnN0YCB0aHJlYWQgaXMgd2Fp
dGluZyBmb3IgYSBwcm94aWVkIG9iamVjdC4KKyAgICAjIENyZWF0ZSBhIHNlY29uZCB0aHJlYWQg
aW4gb3JkZXIgdG8gaW5zcGVjdCB0aGUgYmVoYXZpb3Igb2YgdGhlIFN0YXNoCisgICAgIyBjb25z
dHJ1Y3RvciBhdCB0aGlzIG1vbWVudC4KKworICAgIHNlY29uZC5zdGFydCgpCisKKyAgICAjIEFs
bG93IHRoZSBgZmlyc3RgIHRocmVhZCB0byBwcm9jZWVkCisKKyAgICByZXNwb25zZV9sb2NrLnJl
bGVhc2UoKQorCisgICAgIyBXYWl0IGZvciBib3RoIHRocmVhZHMgdG8gY29tcGxldGUgYW5kIHJl
cG9ydCB0aGVpciBzdGF0ZXRvIHRoZSB0ZXN0CisgICAgcHJvY2Vzc19xdWV1ZS5wdXQodGhyZWFk
X3F1ZXVlLmdldCgpKQorICAgIHByb2Nlc3NfcXVldWUucHV0KHRocmVhZF9xdWV1ZS5nZXQoKSkK
KworCitAcHl0ZXN0Lm1hcmsueGZhaWwoc3lzLnBsYXRmb3JtID09ICJ3aW4zMiIsCisgICAgICAg
ICAgICAgICAgICAgcmVhc29uPSJodHRwczovL2dpdGh1Yi5jb20vd2ViLXBsYXRmb3JtLXRlc3Rz
L3dwdC9pc3N1ZXMvMTY5MzgiKQorZGVmIHRlc3RfZGVsYXllZF9sb2NrKGFkZF9jbGVhbnVwKToK
KyAgICAiIiJFbnN1cmUgdGhhdCBkZWxheXMgaW4gcHJveGllZCBMb2NrIHJldHJpZXZhbCBkbyBu
b3QgaW50ZXJmZXJlIHdpdGgKKyAgICBpbml0aWFsaXphdGlvbiBpbiBwYXJhbGxlbCB0aHJlYWRz
LiIiIgorCisgICAgY2xhc3MgU2xvd0xvY2soQmFzZU1hbmFnZXIpOgorICAgICAgICBwYXNzCisK
KyAgICByZXF1ZXN0X2xvY2sgPSBtdWx0aXByb2Nlc3NpbmcuTG9jaygpCisgICAgcmVzcG9uc2Vf
bG9jayA9IG11bHRpcHJvY2Vzc2luZy5Mb2NrKCkKKworICAgIHF1ZXVlID0gbXVsdGlwcm9jZXNz
aW5nLlF1ZXVlKCkKKworICAgIGRlZiBtdXRleF9sb2NrX3JlcXVlc3QoKToKKyAgICAgICAgIiIi
VGhpcyByZXF1ZXN0IGhhbmRsZXIgYWxsb3dzIHRoZSBjYWxsZXIgdG8gZGVsYXkgZXhlY3V0aW9u
IG9mIGEKKyAgICAgICAgdGhyZWFkIHdoaWNoIGhhcyByZXF1ZXN0ZWQgYSBwcm94aWVkIHJlcHJl
c2VudGF0aW9uIG9mIHRoZSBgbG9ja2AKKyAgICAgICAgcHJvcGVydHksIHNpbXVsYXRpbmcgYSAi
c2xvdyIgaW50ZXJwcm9jZXNzIGNvbW11bmljYXRpb24gY2hhbm5lbC4iIiIKKworICAgICAgICBy
ZXF1ZXN0X2xvY2sucmVsZWFzZSgpCisgICAgICAgIHJlc3BvbnNlX2xvY2suYWNxdWlyZSgpCisg
ICAgICAgIHJldHVybiB0aHJlYWRpbmcuTG9jaygpCisKKyAgICBTbG93TG9jay5yZWdpc3Rlcigi
Z2V0X2RpY3QiLCBjYWxsYWJsZT1sYW1iZGE6IHt9KQorICAgIFNsb3dMb2NrLnJlZ2lzdGVyKCJM
b2NrIiwgY2FsbGFibGU9bXV0ZXhfbG9ja19yZXF1ZXN0KQorCisgICAgc2xvd2xvY2sgPSBTbG93
TG9jaygoImxvY2FsaG9zdCIsIDQ1NDMpLCBiInNvbWUga2V5IikKKyAgICBzbG93bG9jay5zdGFy
dCgpCisgICAgYWRkX2NsZWFudXAobGFtYmRhOiBzbG93bG9jay5zaHV0ZG93bigpKQorCisgICAg
cGFyYWxsZWwgPSBtdWx0aXByb2Nlc3NpbmcuUHJvY2Vzcyh0YXJnZXQ9cnVuLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJncz0ocXVldWUsIHJlcXVlc3RfbG9jaywg
cmVzcG9uc2VfbG9jaykpCisgICAgcGFyYWxsZWwuc3RhcnQoKQorICAgIGFkZF9jbGVhbnVwKGxh
bWJkYTogcGFyYWxsZWwudGVybWluYXRlKCkpCisKKyAgICBhc3NlcnQgW3F1ZXVlLmdldCgpLCBx
dWV1ZS5nZXQoKV0gPT0gW0ZhbHNlLCBGYWxzZV0sICgKKyAgICAgICAgImJvdGggaW5zdGFuY2Vz
IGhhZCB2YWxpZCBsb2NrcyIpCisKKworQHB5dGVzdC5tYXJrLnhmYWlsKHN5cy5wbGF0Zm9ybSA9
PSAid2luMzIiLAorICAgICAgICAgICAgICAgICAgIHJlYXNvbj0iaHR0cHM6Ly9naXRodWIuY29t
L3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQvaXNzdWVzLzE2OTM4IikKK2RlZiB0ZXN0X2RlbGF5ZWRf
ZGljdChhZGRfY2xlYW51cCk6CisgICAgIiIiRW5zdXJlIHRoYXQgZGVsYXlzIGluIHByb3hpZWQg
YGRpY3RgIHJldHJpZXZhbCBkbyBub3QgaW50ZXJmZXJlIHdpdGgKKyAgICBpbml0aWFsaXphdGlv
biBpbiBwYXJhbGxlbCB0aHJlYWRzLiIiIgorCisgICAgY2xhc3MgU2xvd0RpY3QoQmFzZU1hbmFn
ZXIpOgorICAgICAgICBwYXNzCisKKyAgICByZXF1ZXN0X2xvY2sgPSBtdWx0aXByb2Nlc3Npbmcu
TG9jaygpCisgICAgcmVzcG9uc2VfbG9jayA9IG11bHRpcHJvY2Vzc2luZy5Mb2NrKCkKKworICAg
IHF1ZXVlID0gbXVsdGlwcm9jZXNzaW5nLlF1ZXVlKCkKKworICAgICMgVGhpcyByZXF1ZXN0IGhh
bmRsZXIgYWxsb3dzIHRoZSBjYWxsZXIgdG8gZGVsYXkgZXhlY3V0aW9uIG9mIGEgdGhyZWFkCisg
ICAgIyB3aGljaCBoYXMgcmVxdWVzdGVkIGEgcHJveGllZCByZXByZXNlbnRhdGlvbiBvZiB0aGUg
ImdldF9kaWN0IiBwcm9wZXJ0eS4KKyAgICBkZWYgbXV0ZXhfZGljdF9yZXF1ZXN0KCk6CisgICAg
ICAgICIiIlRoaXMgcmVxdWVzdCBoYW5kbGVyIGFsbG93cyB0aGUgY2FsbGVyIHRvIGRlbGF5IGV4
ZWN1dGlvbiBvZiBhCisgICAgICAgIHRocmVhZCB3aGljaCBoYXMgcmVxdWVzdGVkIGEgcHJveGll
ZCByZXByZXNlbnRhdGlvbiBvZiB0aGUgYGdldF9kaWN0YAorICAgICAgICBwcm9wZXJ0eSwgc2lt
dWxhdGluZyBhICJzbG93IiBpbnRlcnByb2Nlc3MgY29tbXVuaWNhdGlvbiBjaGFubmVsLiIiIgor
ICAgICAgICByZXF1ZXN0X2xvY2sucmVsZWFzZSgpCisgICAgICAgIHJlc3BvbnNlX2xvY2suYWNx
dWlyZSgpCisgICAgICAgIHJldHVybiB7fQorCisgICAgU2xvd0RpY3QucmVnaXN0ZXIoImdldF9k
aWN0IiwgY2FsbGFibGU9bXV0ZXhfZGljdF9yZXF1ZXN0KQorICAgIFNsb3dEaWN0LnJlZ2lzdGVy
KCJMb2NrIiwgY2FsbGFibGU9bGFtYmRhOiB0aHJlYWRpbmcuTG9jaygpKQorCisgICAgc2xvd2Rp
Y3QgPSBTbG93RGljdCgoImxvY2FsaG9zdCIsIDQ1NDMpLCBiInNvbWUga2V5IikKKyAgICBzbG93
ZGljdC5zdGFydCgpCisgICAgYWRkX2NsZWFudXAobGFtYmRhOiBzbG93ZGljdC5zaHV0ZG93bigp
KQorCisgICAgcGFyYWxsZWwgPSBtdWx0aXByb2Nlc3NpbmcuUHJvY2Vzcyh0YXJnZXQ9cnVuLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJncz0ocXVldWUsIHJlcXVl
c3RfbG9jaywgcmVzcG9uc2VfbG9jaykpCisgICAgcGFyYWxsZWwuc3RhcnQoKQorICAgIGFkZF9j
bGVhbnVwKGxhbWJkYTogcGFyYWxsZWwudGVybWluYXRlKCkpCisKKyAgICBhc3NlcnQgW3F1ZXVl
LmdldCgpLCBxdWV1ZS5nZXQoKV0gPT0gW0ZhbHNlLCBGYWxzZV0sICgKKyAgICAgICAgImJvdGgg
aW5zdGFuY2VzIGhhZCB2YWxpZCBsb2NrcyIpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHNlcnZlL3Rlc3RzL3czYy1pbXBv
cnQubG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy93cHRzZXJ2ZS90ZXN0cy93M2MtaW1wb3J0LmxvZwppbmRleCA3MjhhOWNhOTc3MTZkMDRlMDVm
MmI1MDBlYmVmMzlmZjkxOGMxZTQ4Li5lZjlkNmE4MGFhNmFjMTQyM2Y1NDg1YmIyNWJkMzM2OTc1
ZDlhYjU3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3dwdHNlcnZlL3Rlc3RzL3czYy1pbXBvcnQubG9nCisrKyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0c2VydmUvdGVzdHMv
dzNjLWltcG9ydC5sb2cKQEAgLTE2LDMgKzE2LDQgQEAgTm9uZQogTGlzdCBvZiBmaWxlczoKIC9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHNlcnZl
L3Rlc3RzL3Rlc3RfY29uZmlnLnB5CiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy93cHRzZXJ2ZS90ZXN0cy90ZXN0X3JlcGxhY2VtZW50X3Rva2VuaXpl
ci5weQorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
d3B0c2VydmUvdGVzdHMvdGVzdF9zdGFzaC5weQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRzZXJ2ZS93cHRzZXJ2ZS9jb25m
aWcucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3dwdHNlcnZlL3dwdHNlcnZlL2NvbmZpZy5weQppbmRleCBjYjU0MzVmZGVmNGMyMGM2NTk4OWYz
MzAzOTJiOTE4ZDE3MWZhZDFhLi5lMTFjYWUxMzdiOWM1MWQ4Njc3NDAwMWVhZDcxOTM4ZmQ1NWMw
NTU1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3dwdHNlcnZlL3dwdHNlcnZlL2NvbmZpZy5weQorKysgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHNlcnZlL3dwdHNlcnZlL2Nv
bmZpZy5weQpAQCAtNzUsNyArNzUsOSBAQCBkZWYganNvbl90eXBlcyhvYmopOgogICAgICAgICBy
ZXR1cm4ge2tleToganNvbl90eXBlcyh2YWx1ZSkgZm9yIGtleSwgdmFsdWUgaW4gaXRlcml0ZW1z
KG9iail9CiAgICAgaWYgKGlzaW5zdGFuY2Uob2JqLCBzdHJpbmdfdHlwZXMpIG9yCiAgICAgICAg
IGlzaW5zdGFuY2Uob2JqLCBpbnRlZ2VyX3R5cGVzKSBvcgotICAgICAgICBpc2luc3RhbmNlKG9i
aiwgZmxvYXQpKToKKyAgICAgICAgaXNpbnN0YW5jZShvYmosIGZsb2F0KSBvcgorICAgICAgICBp
c2luc3RhbmNlKG9iaiwgYm9vbCkgb3IKKyAgICAgICAgb2JqIGlzIE5vbmUpOgogICAgICAgICBy
ZXR1cm4gb2JqCiAgICAgaWYgaXNpbnN0YW5jZShvYmosIGxpc3QpIG9yIGhhc2F0dHIob2JqLCAi
X19pdGVyX18iKToKICAgICAgICAgcmV0dXJuIFtqc29uX3R5cGVzKHZhbHVlKSBmb3IgdmFsdWUg
aW4gb2JqXQpAQCAtMTAxLDcgKzEwMyw3IEBAIGNsYXNzIENvbmZpZ0J1aWxkZXIob2JqZWN0KToK
IAogICAgIFRoZSBwcm9wZXJ0aWVzIG9uIHRoZSBmaW5hbCBjb25maWd1cmF0aW9uIGluY2x1ZGUg
dGhvc2UgZXhwbGljaXRseQogICAgIHN1cHBsaWVkIGFuZCBjb21wdXRlZCBwcm9wZXJ0aWVzLiBU
aGUgY29tcHV0ZWQgcHJvcGVydGllcyBhcmUKLSAgICBkZWZpbmVkIGJ5dCB0aGUgY29tcHV0ZWRf
cHJvcGVyaXRlcyBhdHRyaWJ1dGUgb24gdGhlIGNsYXNzLiBUaGlzCisgICAgZGVmaW5lZCBieSB0
aGUgY29tcHV0ZWRfcHJvcGVydGllcyBhdHRyaWJ1dGUgb24gdGhlIGNsYXNzLiBUaGlzCiAgICAg
aXMgYSBsaXN0IG9mIHByb3BlcnR5IG5hbWVzLCBlYWNoIGNvcnJlc3BvbmRpbmcgdG8gYSBfZ2V0
XzxuYW1lPgogICAgIG1ldGhvZCBvbiB0aGUgY2xhc3MuIFRoZXNlIG1ldGhvZHMgYXJlIGNhbGxl
ZCBpbiB0aGUgb3JkZXIgZGVmaW5lZAogICAgIGluIGNvbXB1dGVkX3Byb3BlcnRpZXMgYW5kIGFy
ZSBwYXNzZWQgYSBzaW5nbGUgYXJndW1lbnQsIGEKQEAgLTEyNiw3ICsxMjgsOSBAQCBjbGFzcyBD
b25maWdCdWlsZGVyKG9iamVjdCk6CiAgICAgICAgICAgICAib3BlbnNzbCI6IHsKICAgICAgICAg
ICAgICAgICAib3BlbnNzbF9iaW5hcnkiOiAib3BlbnNzbCIsCiAgICAgICAgICAgICAgICAgImJh
c2VfcGF0aCI6ICJfY2VydHMiLAorICAgICAgICAgICAgICAgICJwYXNzd29yZCI6ICJ3ZWItcGxh
dGZvcm0tdGVzdHMiLAogICAgICAgICAgICAgICAgICJmb3JjZV9yZWdlbmVyYXRlIjogRmFsc2Us
CisgICAgICAgICAgICAgICAgImR1cmF0aW9uIjogMzAsCiAgICAgICAgICAgICAgICAgImJhc2Vf
Y29uZl9wYXRoIjogTm9uZQogICAgICAgICAgICAgfSwKICAgICAgICAgICAgICJwcmVnZW5lcmF0
ZWQiOiB7CkBAIC0zMTYsNyArMzIwLDcgQEAgY2xhc3MgQ29uZmlnQnVpbGRlcihvYmplY3QpOgog
ICAgICAgICBzZWxmLl9zc2xfZW52Ll9fZW50ZXJfXygpCiAgICAgICAgIGlmIHNlbGYuX3NzbF9l
bnYuc3NsX2VuYWJsZWQ6CiAgICAgICAgICAgICBrZXlfcGF0aCwgY2VydF9wYXRoID0gc2VsZi5f
c3NsX2Vudi5ob3N0X2NlcnRfcGF0aChkYXRhWyJkb21haW5zX3NldCJdKQotICAgICAgICAgICAg
Y2FfY2VydF9wYXRoID0gc2VsZi5fc3NsX2Vudi5jYV9jZXJ0X3BhdGgoKQorICAgICAgICAgICAg
Y2FfY2VydF9wYXRoID0gc2VsZi5fc3NsX2Vudi5jYV9jZXJ0X3BhdGgoZGF0YVsiZG9tYWluc19z
ZXQiXSkKICAgICAgICAgICAgIHJldHVybiB7ImtleV9wYXRoIjoga2V5X3BhdGgsCiAgICAgICAg
ICAgICAgICAgICAgICJjYV9jZXJ0X3BhdGgiOiBjYV9jZXJ0X3BhdGgsCiAgICAgICAgICAgICAg
ICAgICAgICJjZXJ0X3BhdGgiOiBjZXJ0X3BhdGgsCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHNlcnZlL3dwdHNlcnZlL2Nv
bnN0YW50cy5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
dG9vbHMvd3B0c2VydmUvd3B0c2VydmUvY29uc3RhbnRzLnB5CmluZGV4IGVjMTUwYmE1YzhmN2Ez
Yjg5YTYzOTAzYjdkYzc1N2M5NmRmZmYxYTkuLjM1N2EyZTZkMzQ4ZjkwMzQxYWJlYTc4ZjlkZjAy
NWY3MDM0YTJlNDAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvd3B0c2VydmUvd3B0c2VydmUvY29uc3RhbnRzLnB5CisrKyBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0c2VydmUv
d3B0c2VydmUvY29uc3RhbnRzLnB5CkBAIC0xLDI5ICsxLDMyIEBACiBmcm9tIC4gaW1wb3J0IHV0
aWxzCiAKLWNvbnRlbnRfdHlwZXMgPSB1dGlscy5pbnZlcnRfZGljdCh7InRleHQvaHRtbCI6IFsi
aHRtIiwgImh0bWwiXSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImFwcGxp
Y2F0aW9uL2pzb24iOiBbImpzb24iXSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgImFwcGxpY2F0aW9uL3hodG1sK3htbCI6IFsieGh0IiwgInhodG0iLCAieGh0bWwiXSwKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImFwcGxpY2F0aW9uL3htbCI6IFsieG1s
Il0sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJhcHBsaWNhdGlvbi94LXhw
aW5zdGFsbCI6IFsieHBpIl0sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ0
ZXh0L2phdmFzY3JpcHQiOiBbImpzIl0sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICJ0ZXh0L2NzcyI6IFsiY3NzIl0sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICJ0ZXh0L3BsYWluIjogWyJ0eHQiLCAibWQiXSwKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgImltYWdlL3N2Zyt4bWwiOiBbInN2ZyJdLAotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAiaW1hZ2UvZ2lmIjogWyJnaWYiXSwKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgImltYWdlL2pwZWciOiBbImpwZyIsICJqcGVnIl0sCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICJpbWFnZS9wbmciOiBbInBuZyJdLAotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiaW1hZ2UvYm1wIjogWyJibXAiXSwKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInRleHQvZXZlbnQtc3RyZWFtIjogWyJldmVu
dF9zdHJlYW0iXSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInRleHQvY2Fj
aGUtbWFuaWZlc3QiOiBbIm1hbmlmZXN0Il0sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICJ2aWRlby9tcDQiOiBbIm1wNCIsICJtNHYiXSwKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgImF1ZGlvL21wNCI6IFsibTRhIl0sCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICJhdWRpby9tcGVnIjogWyJtcDMiXSwKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgInZpZGVvL3dlYm0iOiBbIndlYm0iXSwKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgImF1ZGlvL3dlYm0iOiBbIndlYmEiXSwKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgInZpZGVvL29nZyI6IFsib2dnIiwgIm9ndiJdLAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiYXVkaW8vb2dnIjogWyJvZ2EiXSwKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImF1ZGlvL3gtd2F2IjogWyJ3YXYiXSwK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInRleHQvdnR0IjogWyJ2dHQiXSx9
KQorY29udGVudF90eXBlcyA9IHV0aWxzLmludmVydF9kaWN0KHsKKyAgICAiYXBwbGljYXRpb24v
anNvbiI6IFsianNvbiJdLAorICAgICJhcHBsaWNhdGlvbi93YXNtIjogWyJ3YXNtIl0sCisgICAg
ImFwcGxpY2F0aW9uL3hodG1sK3htbCI6IFsieGh0IiwgInhodG0iLCAieGh0bWwiXSwKKyAgICAi
YXBwbGljYXRpb24veG1sIjogWyJ4bWwiXSwKKyAgICAiYXBwbGljYXRpb24veC14cGluc3RhbGwi
OiBbInhwaSJdLAorICAgICJhdWRpby9tcDQiOiBbIm00YSJdLAorICAgICJhdWRpby9tcGVnIjog
WyJtcDMiXSwKKyAgICAiYXVkaW8vb2dnIjogWyJvZ2EiXSwKKyAgICAiYXVkaW8vd2VibSI6IFsi
d2ViYSJdLAorICAgICJhdWRpby94LXdhdiI6IFsid2F2Il0sCisgICAgImltYWdlL2JtcCI6IFsi
Ym1wIl0sCisgICAgImltYWdlL2dpZiI6IFsiZ2lmIl0sCisgICAgImltYWdlL2pwZWciOiBbImpw
ZyIsICJqcGVnIl0sCisgICAgImltYWdlL3BuZyI6IFsicG5nIl0sCisgICAgImltYWdlL3N2Zyt4
bWwiOiBbInN2ZyJdLAorICAgICJ0ZXh0L2NhY2hlLW1hbmlmZXN0IjogWyJtYW5pZmVzdCJdLAor
ICAgICJ0ZXh0L2NzcyI6IFsiY3NzIl0sCisgICAgInRleHQvZXZlbnQtc3RyZWFtIjogWyJldmVu
dF9zdHJlYW0iXSwKKyAgICAidGV4dC9odG1sIjogWyJodG0iLCAiaHRtbCJdLAorICAgICJ0ZXh0
L2phdmFzY3JpcHQiOiBbImpzIiwgIm1qcyJdLAorICAgICJ0ZXh0L3BsYWluIjogWyJ0eHQiLCAi
bWQiXSwKKyAgICAidGV4dC92dHQiOiBbInZ0dCJdLAorICAgICJ2aWRlby9tcDQiOiBbIm1wNCIs
ICJtNHYiXSwKKyAgICAidmlkZW8vb2dnIjogWyJvZ2ciLCAib2d2Il0sCisgICAgInZpZGVvL3dl
Ym0iOiBbIndlYm0iXSwKK30pCiAKIHJlc3BvbnNlX2NvZGVzID0gewogICAgIDEwMDogKCdDb250
aW51ZScsICdSZXF1ZXN0IHJlY2VpdmVkLCBwbGVhc2UgY29udGludWUnKSwKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0c2Vy
dmUvd3B0c2VydmUvaGFuZGxlcnMucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHNlcnZlL3dwdHNlcnZlL2hhbmRsZXJzLnB5CmluZGV4IDdm
YmU0MjM0ZWEwYTI1MmFhZWQwNzE4MmZkM2JlZDc0MWMxNDcyODUuLmNhNTExODAwOWNmYzljNDc2
M2Y5OWUyYTYyOTZkNzg0YTY1MzkyMTYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0c2VydmUvd3B0c2VydmUvaGFuZGxlcnMu
cHkKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy93cHRzZXJ2ZS93cHRzZXJ2ZS9oYW5kbGVycy5weQpAQCAtNyw4ICs3LDYgQEAgaW1wb3J0IHRy
YWNlYmFjawogZnJvbSBzaXgubW92ZXMudXJsbGliLnBhcnNlIGltcG9ydCBwYXJzZV9xcywgcXVv
dGUsIHVucXVvdGUsIHVybGpvaW4KIGZyb20gc2l4IGltcG9ydCBpdGVyaXRlbXMKIAotZnJvbSBo
Mi5ldmVudHMgaW1wb3J0IFJlcXVlc3RSZWNlaXZlZCwgRGF0YVJlY2VpdmVkCi0KIGZyb20gLmNv
bnN0YW50cyBpbXBvcnQgY29udGVudF90eXBlcwogZnJvbSAucGlwZXMgaW1wb3J0IFBpcGVsaW5l
LCB0ZW1wbGF0ZQogZnJvbSAucmFuZ2VzIGltcG9ydCBSYW5nZVBhcnNlcgpAQCAtNzksNyArNzcs
NyBAQCBjbGFzcyBEaXJlY3RvcnlIYW5kbGVyKG9iamVjdCk6CiAlKGl0ZW1zKXMKIDwvdWw+CiAi
IiIgJSB7InBhdGgiOiBjZ2kuZXNjYXBlKHVybF9wYXRoKSwKLSAgICAgICAiaXRlbXMiOiAiXG4i
LmpvaW4oc2VsZi5saXN0X2l0ZW1zKHVybF9wYXRoLCBwYXRoKSl9ICAjIGZsYWtlODogbm9xYQor
ICAgICAgICJpdGVtcyI6ICJcbiIuam9pbihzZWxmLmxpc3RfaXRlbXModXJsX3BhdGgsIHBhdGgp
KX0gICMgbm9xYTogRTEyMgogCiAgICAgZGVmIGxpc3RfaXRlbXMoc2VsZiwgYmFzZV9wYXRoLCBw
YXRoKToKICAgICAgICAgYXNzZXJ0IGJhc2VfcGF0aC5lbmRzd2l0aCgiLyIpCkBAIC0xMDcsMTcg
KzEwNSwyMSBAQCBjbGFzcyBEaXJlY3RvcnlIYW5kbGVyKG9iamVjdCk6CiAKIGRlZiB3cmFwX3Bp
cGVsaW5lKHBhdGgsIHJlcXVlc3QsIHJlc3BvbnNlKToKICAgICBxdWVyeSA9IHBhcnNlX3FzKHJl
cXVlc3QudXJsX3BhcnRzLnF1ZXJ5KQorICAgIHBpcGVfc3RyaW5nID0gIiIKIAotICAgIHBpcGVs
aW5lID0gTm9uZQotICAgIGlmICJwaXBlIiBpbiBxdWVyeToKLSAgICAgICAgcGlwZWxpbmUgPSBQ
aXBlbGluZShxdWVyeVsicGlwZSJdWy0xXSkKLSAgICBlbGlmICIuc3ViLiIgaW4gcGF0aDoKKyAg
ICBpZiAiLnN1Yi4iIGluIHBhdGg6CiAgICAgICAgIG1sX2V4dGVuc2lvbnMgPSB7Ii5odG1sIiwg
Ii5odG0iLCAiLnhodCIsICIueGh0bWwiLCAiLnhtbCIsICIuc3ZnIn0KICAgICAgICAgZXNjYXBl
X3R5cGUgPSAiaHRtbCIgaWYgb3MucGF0aC5zcGxpdGV4dChwYXRoKVsxXSBpbiBtbF9leHRlbnNp
b25zIGVsc2UgIm5vbmUiCi0gICAgICAgIHBpcGVsaW5lID0gUGlwZWxpbmUoInN1YiglcykiICUg
ZXNjYXBlX3R5cGUpCisgICAgICAgIHBpcGVfc3RyaW5nID0gInN1YiglcykiICUgZXNjYXBlX3R5
cGUKKworICAgIGlmICJwaXBlIiBpbiBxdWVyeToKKyAgICAgICAgaWYgcGlwZV9zdHJpbmc6Cisg
ICAgICAgICAgICBwaXBlX3N0cmluZyArPSAifCIKKworICAgICAgICBwaXBlX3N0cmluZyArPSBx
dWVyeVsicGlwZSJdWy0xXQogCi0gICAgaWYgcGlwZWxpbmUgaXMgbm90IE5vbmU6Ci0gICAgICAg
IHJlc3BvbnNlID0gcGlwZWxpbmUocmVxdWVzdCwgcmVzcG9uc2UpCisgICAgaWYgcGlwZV9zdHJp
bmc6CisgICAgICAgIHJlc3BvbnNlID0gUGlwZWxpbmUocGlwZV9zdHJpbmcpKHJlcXVlc3QsIHJl
c3BvbnNlKQogCiAgICAgcmV0dXJuIHJlc3BvbnNlCiAKQEAgLTE2MSw4ICsxNjMsOCBAQCBjbGFz
cyBGaWxlSGFuZGxlcihvYmplY3QpOgogICAgICAgICBydiA9IChzZWxmLmxvYWRfaGVhZGVycyhy
ZXF1ZXN0LCBvcy5wYXRoLmpvaW4ob3MucGF0aC5zcGxpdChwYXRoKVswXSwgIl9fZGlyX18iKSkg
KwogICAgICAgICAgICAgICBzZWxmLmxvYWRfaGVhZGVycyhyZXF1ZXN0LCBwYXRoKSkKIAotICAg
ICAgICBpZiBub3QgYW55KGtleS5sb3dlcigpID09ICJjb250ZW50LXR5cGUiIGZvciAoa2V5LCBf
KSBpbiBydik6Ci0gICAgICAgICAgICBydi5pbnNlcnQoMCwgKCJDb250ZW50LVR5cGUiLCBndWVz
c19jb250ZW50X3R5cGUocGF0aCkpKQorICAgICAgICBpZiBub3QgYW55KGtleS5sb3dlcigpID09
IGIiY29udGVudC10eXBlIiBmb3IgKGtleSwgXykgaW4gcnYpOgorICAgICAgICAgICAgcnYuaW5z
ZXJ0KDAsIChiIkNvbnRlbnQtVHlwZSIsIGd1ZXNzX2NvbnRlbnRfdHlwZShwYXRoKS5lbmNvZGUo
ImFzY2lpIikpKQogCiAgICAgICAgIHJldHVybiBydgogCkBAIC0xNzUsMTQgKzE3NywxNCBAQCBj
bGFzcyBGaWxlSGFuZGxlcihvYmplY3QpOgogICAgICAgICAgICAgdXNlX3N1YiA9IEZhbHNlCiAK
ICAgICAgICAgdHJ5OgotICAgICAgICAgICAgd2l0aCBvcGVuKGhlYWRlcnNfcGF0aCkgYXMgaGVh
ZGVyc19maWxlOgorICAgICAgICAgICAgd2l0aCBvcGVuKGhlYWRlcnNfcGF0aCwgInJiIikgYXMg
aGVhZGVyc19maWxlOgogICAgICAgICAgICAgICAgIGRhdGEgPSBoZWFkZXJzX2ZpbGUucmVhZCgp
CiAgICAgICAgIGV4Y2VwdCBJT0Vycm9yOgogICAgICAgICAgICAgcmV0dXJuIFtdCiAgICAgICAg
IGVsc2U6CiAgICAgICAgICAgICBpZiB1c2Vfc3ViOgogICAgICAgICAgICAgICAgIGRhdGEgPSB0
ZW1wbGF0ZShyZXF1ZXN0LCBkYXRhLCBlc2NhcGVfdHlwZT0ibm9uZSIpCi0gICAgICAgICAgICBy
ZXR1cm4gW3R1cGxlKGl0ZW0uc3RyaXAoKSBmb3IgaXRlbSBpbiBsaW5lLnNwbGl0KCI6IiwgMSkp
CisgICAgICAgICAgICByZXR1cm4gW3R1cGxlKGl0ZW0uc3RyaXAoKSBmb3IgaXRlbSBpbiBsaW5l
LnNwbGl0KGIiOiIsIDEpKQogICAgICAgICAgICAgICAgICAgICBmb3IgbGluZSBpbiBkYXRhLnNw
bGl0bGluZXMoKSBpZiBsaW5lXQogCiAgICAgZGVmIGdldF9kYXRhKHNlbGYsIHJlc3BvbnNlLCBw
YXRoLCBieXRlX3Jhbmdlcyk6CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHNlcnZlL3dwdHNlcnZlL3BpcGVzLnB5IGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRzZXJ2ZS93
cHRzZXJ2ZS9waXBlcy5weQppbmRleCBhZDk2ZjU5MWEzYThjOGI3ZThkMTNhNGFkOTVhMWFhZTUw
MGY2NmRhLi5jZWIzNGNjM2Y0Zjk5NGVkMDQ5OTE1Yzc3ODRmN2M2OWM3MTJhYmNhIDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dw
dHNlcnZlL3dwdHNlcnZlL3BpcGVzLnB5CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0c2VydmUvd3B0c2VydmUvcGlwZXMucHkKQEAgLTEs
NSArMSw2IEBACiBmcm9tIGNnaSBpbXBvcnQgZXNjYXBlCiBmcm9tIGNvbGxlY3Rpb25zIGltcG9y
dCBkZXF1ZQoraW1wb3J0IGJhc2U2NAogaW1wb3J0IGd6aXAgYXMgZ3ppcF9tb2R1bGUKIGltcG9y
dCBoYXNobGliCiBpbXBvcnQgb3MKQEAgLTI3Myw4ICsyNzQsOSBAQCBkZWYgc2xpY2UocmVxdWVz
dCwgcmVzcG9uc2UsIHN0YXJ0LCBlbmQ9Tm9uZSk6CiAgICAgICAgICAgICAgICAgKHNwZWxsZWQg
Im51bGwiIGluIGEgcXVlcnkgc3RyaW5nKSB0byBpbmRpY2F0ZSB0aGUgZW5kIG9mCiAgICAgICAg
ICAgICAgICAgdGhlIGZpbGUuCiAgICAgIiIiCi0gICAgY29udGVudCA9IHJlc29sdmVfY29udGVu
dChyZXNwb25zZSkKLSAgICByZXNwb25zZS5jb250ZW50ID0gY29udGVudFtzdGFydDplbmRdCisg
ICAgY29udGVudCA9IHJlc29sdmVfY29udGVudChyZXNwb25zZSlbc3RhcnQ6ZW5kXQorICAgIHJl
c3BvbnNlLmNvbnRlbnQgPSBjb250ZW50CisgICAgcmVzcG9uc2UuaGVhZGVycy5zZXQoIkNvbnRl
bnQtTGVuZ3RoIiwgbGVuKGNvbnRlbnQpKQogICAgIHJldHVybiByZXNwb25zZQogCiAKQEAgLTMy
Nyw3ICszMjksNyBAQCBkZWYgc3ViKHJlcXVlc3QsIHJlc3BvbnNlLCBlc2NhcGVfdHlwZT0iaHRt
bCIpOgogICAgICAgICAgICAgICAgICAgICAgICAgImh0bWwiIGFuZCAibm9uZSIsIHdpdGggImh0
bWwiIHRoZSBkZWZhdWx0IGZvciBoaXN0b3JpYyByZWFzb25zLgogCiAgICAgVGhlIGZvcm1hdCBp
cyBhIHZlcnkgbGltaXRlZCB0ZW1wbGF0ZSBsYW5ndWFnZS4gU3Vic3RpdHV0aW9ucyBhcmUKLSAg
ICBlbmNsb3NlZCBieSB7eyBhbmQgfX0uIFRoZXJlIGFyZSBzZXZlcmFsIGF2YWxpYWJsZSBzdWJz
dGl0dXRpb25zOgorICAgIGVuY2xvc2VkIGJ5IHt7IGFuZCB9fS4gVGhlcmUgYXJlIHNldmVyYWwg
YXZhaWxhYmxlIHN1YnN0aXR1dGlvbnM6CiAKICAgICBob3N0CiAgICAgICBBIHNpbXBsZSBzdHJp
bmcgdmFsdWUgYW5kIHJlcHJlc2VudHMgdGhlIHByaW1hcnkgaG9zdCBmcm9tIHdoaWNoIHRoZQpA
QCAtMzQwLDE5ICszNDIsMjggQEAgZGVmIHN1YihyZXF1ZXN0LCByZXNwb25zZSwgZXNjYXBlX3R5
cGU9Imh0bWwiKToKICAgICAgIEEgZGljdGlvbmFyeSBvZiBwYXJ0cyBvZiB0aGUgcmVxdWVzdCBV
UkwuIFZhbGlkIGtleXMgYXJlCiAgICAgICAnc2VydmVyLCAnc2NoZW1lJywgJ2hvc3QnLCAnaG9z
dG5hbWUnLCAncG9ydCcsICdwYXRoJyBhbmQgJ3F1ZXJ5Jy4KICAgICAgICdzZXJ2ZXInIGlzIHNj
aGVtZTovL2hvc3Q6cG9ydCwgJ2hvc3QnIGlzIGhvc3RuYW1lOnBvcnQsIGFuZCBxdWVyeQotICAg
ICAgIGluY2x1ZGVzIHRoZSBsZWFkaW5nICc/JywgYnV0IG90aGVyIGRlbGltaXRlcnMgYXJlIG9t
aXR0ZWQuCisgICAgICBpbmNsdWRlcyB0aGUgbGVhZGluZyAnPycsIGJ1dCBvdGhlciBkZWxpbWl0
ZXJzIGFyZSBvbWl0dGVkLgogICAgIGhlYWRlcnMKICAgICAgIEEgZGljdGlvbmFyeSBvZiBIVFRQ
IGhlYWRlcnMgaW4gdGhlIHJlcXVlc3QuCisgICAgaGVhZGVyX29yX2RlZmF1bHQoaGVhZGVyLCBk
ZWZhdWx0KQorICAgICAgVGhlIHZhbHVlIG9mIGFuIEhUVFAgaGVhZGVyLCBvciBhIGRlZmF1bHQg
dmFsdWUgaWYgaXQgaXMgYWJzZW50LgorICAgICAgRm9yIGV4YW1wbGU6OgorCisgICAgICAgIHt7
aGVhZGVyX29yX2RlZmF1bHQoWC1UZXN0LCB0ZXN0LWhlYWRlci1hYnNlbnQpfX0KKwogICAgIEdF
VAogICAgICAgQSBkaWN0aW9uYXJ5IG9mIHF1ZXJ5IHBhcmFtZXRlcnMgc3VwcGxpZWQgd2l0aCB0
aGUgcmVxdWVzdC4KICAgICB1dWlkKCkKICAgICAgIEEgcGVzdWRvLXJhbmRvbSBVVUlEIHN1aXRh
YmxlIGZvciB1c2FnZSB3aXRoIHN0YXNoCiAgICAgZmlsZV9oYXNoKGFsZ29yaXRobSwgZmlsZXBh
dGgpCiAgICAgICBUaGUgY3J5cHRvZ3JhcGhpYyBoYXNoIG9mIGEgZmlsZS4gU3VwcG9ydGVkIGFs
Z29yaXRobXM6IG1kNSwgc2hhMSwKLSAgICAgIHNoYTIyNCwgc2hhMjU2LCBzaGEzODQsIGFuZCBz
aGE1MTIuIEZvciBleGFtcGxlOgorICAgICAgc2hhMjI0LCBzaGEyNTYsIHNoYTM4NCwgYW5kIHNo
YTUxMi4gRm9yIGV4YW1wbGU6OgogCiAgICAgICAgIHt7ZmlsZV9oYXNoKG1kNSwgZG9tL2ludGVy
ZmFjZXMuaHRtbCl9fQogCisgICAgZnNfcGF0aChmaWxlcGF0aCkKKyAgICAgIFRoZSBhYnNvbHV0
ZSBwYXRoIHRvIGEgZmlsZSBpbnNpZGUgdGhlIHdwdCBkb2N1bWVudCByb290CisKICAgICBTbyBm
b3IgZXhhbXBsZSBpbiBhIHNldHVwIHJ1bm5pbmcgb24gbG9jYWxob3N0IHdpdGggYSB3d3cKICAg
ICBzdWJkb21haW4gYW5kIGEgaHR0cCBzZXJ2ZXIgb24gcG9ydHMgODAgYW5kIDgxOjoKIApAQCAt
MzYwLDE2ICszNzEsMTUgQEAgZGVmIHN1YihyZXF1ZXN0LCByZXNwb25zZSwgZXNjYXBlX3R5cGU9
Imh0bWwiKToKICAgICAgIHt7ZG9tYWluc1t3d3ddfX0gPT4gd3d3LmxvY2FsaG9zdAogICAgICAg
e3twb3J0c1todHRwXVsxXX19ID0+IDgxCiAKKyAgICBJdCBpcyBhbHNvIHBvc3NpYmxlIHRvIGFz
c2lnbiBhIHZhbHVlIHRvIGEgdmFyaWFibGUgbmFtZSwgd2hpY2ggbXVzdCBzdGFydAorICAgIHdp
dGggdGhlICQgY2hhcmFjdGVyLCB1c2luZyB0aGUgIjoiIHN5bnRheCBlLmcuOjoKIAotICAgIEl0
IGlzIGFsc28gcG9zc2libGUgdG8gYXNzaWduIGEgdmFsdWUgdG8gYSB2YXJpYWJsZSBuYW1lLCB3
aGljaCBtdXN0IHN0YXJ0IHdpdGgKLSAgICB0aGUgJCBjaGFyYWN0ZXIsIHVzaW5nIHRoZSAiOiIg
c3ludGF4IGUuZy4KLQotICAgIHt7JGlkOnV1aWQoKX19CisgICAgICB7eyRpZDp1dWlkKCl9fQog
CiAgICAgTGF0ZXIgc3Vic3RpdHV0aW9ucyBpbiB0aGUgc2FtZSBmaWxlIG1heSB0aGVuIHJlZmVy
IHRvIHRoZSB2YXJpYWJsZQotICAgIGJ5IG5hbWUgZS5nLgorICAgIGJ5IG5hbWUgZS5nLjo6CiAK
LSAgICB7eyRpZH19CisgICAgICB7eyRpZH19CiAgICAgIiIiCiAgICAgY29udGVudCA9IHJlc29s
dmVfY29udGVudChyZXNwb25zZSkKIApAQCAtMzkyLDcgKzQwMiw3IEBAIGNsYXNzIFN1YkZ1bmN0
aW9ucyhvYmplY3QpOgogCiAgICAgQHN0YXRpY21ldGhvZAogICAgIGRlZiBmaWxlX2hhc2gocmVx
dWVzdCwgYWxnb3JpdGhtLCBwYXRoKToKLSAgICAgICAgYWxnb3JpdGhtID0gYWxnb3JpdGhtLmRl
Y29kZSgiYXNjaWkiKQorICAgICAgICBhc3NlcnQgaXNpbnN0YW5jZShhbGdvcml0aG0sIHRleHRf
dHlwZSkKICAgICAgICAgaWYgYWxnb3JpdGhtIG5vdCBpbiBTdWJGdW5jdGlvbnMuc3VwcG9ydGVk
X2FsZ29yaXRobXM6CiAgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJVbnN1cHBvcnRlZCBl
bmNyeXB0aW9uIGFsZ29yaXRobTogJyVzJyIgJSBhbGdvcml0aG0pCiAKQEAgLTQwMCw3ICs0MTAs
NyBAQCBjbGFzcyBTdWJGdW5jdGlvbnMob2JqZWN0KToKICAgICAgICAgYWJzb2x1dGVfcGF0aCA9
IG9zLnBhdGguam9pbihyZXF1ZXN0LmRvY19yb290LCBwYXRoKQogCiAgICAgICAgIHRyeToKLSAg
ICAgICAgICAgIHdpdGggb3BlbihhYnNvbHV0ZV9wYXRoKSBhcyBmOgorICAgICAgICAgICAgd2l0
aCBvcGVuKGFic29sdXRlX3BhdGgsICJyYiIpIGFzIGY6CiAgICAgICAgICAgICAgICAgaGFzaF9v
YmoudXBkYXRlKGYucmVhZCgpKQogICAgICAgICBleGNlcHQgSU9FcnJvcjoKICAgICAgICAgICAg
ICMgSW4gdGhpcyBjb250ZXh0LCBhbiB1bmhhbmRsZWQgSU9FcnJvciB3aWxsIGJlIGludGVycHJl
dGVkIGJ5IHRoZQpAQCAtNDEwLDcgKzQyMCwyNiBAQCBjbGFzcyBTdWJGdW5jdGlvbnMob2JqZWN0
KToKICAgICAgICAgICAgICMgdGhlIHBhdGggdG8gdGhlIGZpbGUgdG8gYmUgaGFzaGVkIGlzIGlu
dmFsaWQuCiAgICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oJ0Nhbm5vdCBvcGVuIGZpbGUgZm9y
IGhhc2ggY29tcHV0YXRpb246ICIlcyInICUgYWJzb2x1dGVfcGF0aCkKIAotICAgICAgICByZXR1
cm4gaGFzaF9vYmouZGlnZXN0KCkuZW5jb2RlKCdiYXNlNjQnKS5zdHJpcCgpCisgICAgICAgIHJl
dHVybiBiYXNlNjQuYjY0ZW5jb2RlKGhhc2hfb2JqLmRpZ2VzdCgpKS5zdHJpcCgpCisKKyAgICBA
c3RhdGljbWV0aG9kCisgICAgZGVmIGZzX3BhdGgocmVxdWVzdCwgcGF0aCk6CisgICAgICAgIGlm
IG5vdCBwYXRoLnN0YXJ0c3dpdGgoIi8iKToKKyAgICAgICAgICAgIHN1YmRpciA9IHJlcXVlc3Qu
cmVxdWVzdF9wYXRoW2xlbihyZXF1ZXN0LnVybF9iYXNlKTpdCisgICAgICAgICAgICBpZiAiLyIg
aW4gc3ViZGlyOgorICAgICAgICAgICAgICAgIHN1YmRpciA9IHN1YmRpci5yc3BsaXQoIi8iLCAx
KVswXQorICAgICAgICAgICAgcm9vdF9yZWxfcGF0aCA9IHN1YmRpciArICIvIiArIHBhdGgKKyAg
ICAgICAgZWxzZToKKyAgICAgICAgICAgIHJvb3RfcmVsX3BhdGggPSBwYXRoWzE6XQorICAgICAg
ICByb290X3JlbF9wYXRoID0gcm9vdF9yZWxfcGF0aC5yZXBsYWNlKCIvIiwgb3MucGF0aC5zZXAp
CisgICAgICAgIGFic29sdXRlX3BhdGggPSBvcy5wYXRoLmFic3BhdGgob3MucGF0aC5qb2luKHJl
cXVlc3QuZG9jX3Jvb3QsIHJvb3RfcmVsX3BhdGgpKQorICAgICAgICBpZiAiLi4iIGluIG9zLnBh
dGgucmVscGF0aChhYnNvbHV0ZV9wYXRoLCByZXF1ZXN0LmRvY19yb290KToKKyAgICAgICAgICAg
IHJhaXNlIFZhbHVlRXJyb3IoIlBhdGggb3V0c2lkZSB3cHQgcm9vdCIpCisgICAgICAgIHJldHVy
biBhYnNvbHV0ZV9wYXRoCisKKyAgICBAc3RhdGljbWV0aG9kCisgICAgZGVmIGhlYWRlcl9vcl9k
ZWZhdWx0KHJlcXVlc3QsIG5hbWUsIGRlZmF1bHQpOgorICAgICAgICByZXR1cm4gcmVxdWVzdC5o
ZWFkZXJzLmdldChuYW1lLCBkZWZhdWx0KQogCiBkZWYgdGVtcGxhdGUocmVxdWVzdCwgY29udGVu
dCwgZXNjYXBlX3R5cGU9Imh0bWwiKToKICAgICAjVE9ETzogVGhlcmUgYmFzaWNhbGx5IGlzbid0
IGFueSBlcnJvciBoYW5kbGluZyBoZXJlCkBAIC00MjUsMTEgKzQ1NCwxMiBAQCBkZWYgdGVtcGxh
dGUocmVxdWVzdCwgY29udGVudCwgZXNjYXBlX3R5cGU9Imh0bWwiKToKICAgICAgICAgdG9rZW5z
ID0gZGVxdWUodG9rZW5zKQogCiAgICAgICAgIHRva2VuX3R5cGUsIGZpZWxkID0gdG9rZW5zLnBv
cGxlZnQoKQotICAgICAgICBmaWVsZCA9IGZpZWxkLmRlY29kZSgiYXNjaWkiKQorICAgICAgICBh
c3NlcnQgaXNpbnN0YW5jZShmaWVsZCwgdGV4dF90eXBlKQogCiAgICAgICAgIGlmIHRva2VuX3R5
cGUgPT0gInZhciI6CiAgICAgICAgICAgICB2YXJpYWJsZSA9IGZpZWxkCiAgICAgICAgICAgICB0
b2tlbl90eXBlLCBmaWVsZCA9IHRva2Vucy5wb3BsZWZ0KCkKKyAgICAgICAgICAgIGFzc2VydCBp
c2luc3RhbmNlKGZpZWxkLCB0ZXh0X3R5cGUpCiAgICAgICAgIGVsc2U6CiAgICAgICAgICAgICB2
YXJpYWJsZSA9IE5vbmUKIApAQCAtNDg4LDkgKzUxOCwxNCBAQCBkZWYgdGVtcGxhdGUocmVxdWVz
dCwgY29udGVudCwgZXNjYXBlX3R5cGU9Imh0bWwiKToKICAgICAgICAgZXNjYXBlX2Z1bmMgPSB7
Imh0bWwiOiBsYW1iZGEgeDplc2NhcGUoeCwgcXVvdGU9VHJ1ZSksCiAgICAgICAgICAgICAgICAg
ICAgICAgICJub25lIjogbGFtYmRhIHg6eH1bZXNjYXBlX3R5cGVdCiAKLSAgICAgICAgI1Nob3Vs
ZCBwb3NzaWJseSBzdXBwb3J0IGVzY2FwaW5nIGZvciBvdGhlciBjb250ZXh0cyBlLmcuIHNjcmlw
dAotICAgICAgICAjVE9ETzogcmVhZCB0aGUgZW5jb2Rpbmcgb2YgdGhlIHJlc3BvbnNlCi0gICAg
ICAgIHJldHVybiBlc2NhcGVfZnVuYyh0ZXh0X3R5cGUodmFsdWUpKS5lbmNvZGUoInV0Zi04IikK
KyAgICAgICAgIyBTaG91bGQgcG9zc2libHkgc3VwcG9ydCBlc2NhcGluZyBmb3Igb3RoZXIgY29u
dGV4dHMgZS5nLiBzY3JpcHQKKyAgICAgICAgIyBUT0RPOiByZWFkIHRoZSBlbmNvZGluZyBvZiB0
aGUgcmVzcG9uc2UKKyAgICAgICAgIyBjZ2kuZXNjYXBlKCkgb25seSB0YWtlcyB0ZXh0IHN0cmlu
Z3MgaW4gUHl0aG9uIDMuCisgICAgICAgIGlmIGlzaW5zdGFuY2UodmFsdWUsIGJpbmFyeV90eXBl
KToKKyAgICAgICAgICAgIHZhbHVlID0gdmFsdWUuZGVjb2RlKCJ1dGYtOCIpCisgICAgICAgIGVs
aWYgaXNpbnN0YW5jZSh2YWx1ZSwgaW50KToKKyAgICAgICAgICAgIHZhbHVlID0gdGV4dF90eXBl
KHZhbHVlKQorICAgICAgICByZXR1cm4gZXNjYXBlX2Z1bmModmFsdWUpLmVuY29kZSgidXRmLTgi
KQogCiAgICAgdGVtcGxhdGVfcmVnZXhwID0gcmUuY29tcGlsZShiciJ7eyhbXn1dKil9fSIpCiAg
ICAgbmV3X2NvbnRlbnQgPSB0ZW1wbGF0ZV9yZWdleHAuc3ViKGNvbmZpZ19yZXBsYWNlbWVudCwg
Y29udGVudCkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvd3B0c2VydmUvd3B0c2VydmUvcmFuZ2VzLnB5IGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRzZXJ2ZS93cHRzZXJ2ZS9y
YW5nZXMucHkKaW5kZXggOTc2Y2IxNzgxYTBkZmU2MTgwMzhkOTRlYTI5MTY5ZTZiODZiM2Y5OC4u
MTA0ZGNhMmVmNmY4MzRhZjhkZjM0MWU1MDhkOGExMDFlNDI0Mzk1NyAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRzZXJ2ZS93
cHRzZXJ2ZS9yYW5nZXMucHkKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy93cHRzZXJ2ZS93cHRzZXJ2ZS9yYW5nZXMucHkKQEAgLTMsNiArMywx
MCBAQCBmcm9tIC51dGlscyBpbXBvcnQgSFRUUEV4Y2VwdGlvbgogCiBjbGFzcyBSYW5nZVBhcnNl
cihvYmplY3QpOgogICAgIGRlZiBfX2NhbGxfXyhzZWxmLCBoZWFkZXIsIGZpbGVfc2l6ZSk6Cisg
ICAgICAgIHRyeToKKyAgICAgICAgICAgIGhlYWRlciA9IGhlYWRlci5kZWNvZGUoImFzY2lpIikK
KyAgICAgICAgZXhjZXB0IFVuaWNvZGVEZWNvZGVFcnJvcjoKKyAgICAgICAgICAgIHJhaXNlIEhU
VFBFeGNlcHRpb24oNDAwLCAiTm9uLUFTQ0lJIHJhbmdlIGhlYWRlciB2YWx1ZSIpCiAgICAgICAg
IHByZWZpeCA9ICJieXRlcz0iCiAgICAgICAgIGlmIG5vdCBoZWFkZXIuc3RhcnRzd2l0aChwcmVm
aXgpOgogICAgICAgICAgICAgcmFpc2UgSFRUUEV4Y2VwdGlvbig0MTYsIG1lc3NhZ2U9IlVucmVj
b2duaXNlZCByYW5nZSB0eXBlICVzIiAlIChoZWFkZXIsKSkKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0c2VydmUvd3B0c2Vy
dmUvcmVxdWVzdC5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvd3B0c2VydmUvd3B0c2VydmUvcmVxdWVzdC5weQppbmRleCBjYjU3NWNjZGJhNDUx
NGE0NTZjMGNiZjczOTA0YmI2M2MxMmZkN2ZmLi5hODBiYzBjODMwMGFjZmNmNzY2NTEyYjg5ZWNm
ZWUzMzhiYWMyMjk1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHNlcnZlL3dwdHNlcnZlL3JlcXVlc3QucHkKKysrIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRzZXJ2ZS93
cHRzZXJ2ZS9yZXF1ZXN0LnB5CkBAIC0xLDcgKzEsNyBAQAogaW1wb3J0IGJhc2U2NAogaW1wb3J0
IGNnaQogZnJvbSBzaXgubW92ZXMuaHR0cF9jb29raWVzIGltcG9ydCBCYXNlQ29va2llCi1mcm9t
IHNpeCBpbXBvcnQgQnl0ZXNJTworZnJvbSBzaXggaW1wb3J0IEJ5dGVzSU8sIGJpbmFyeV90eXBl
LCB0ZXh0X3R5cGUsIGl0ZXJpdGVtcywgUFkzCiBpbXBvcnQgdGVtcGZpbGUKIAogZnJvbSBzaXgu
bW92ZXMudXJsbGliLnBhcnNlIGltcG9ydCBwYXJzZV9xc2wsIHVybHNwbGl0CkBAIC0zMDgsNyAr
MzA4LDcgQEAgY2xhc3MgUmVxdWVzdChvYmplY3QpOgogICAgICAgICAgICAgc2VsZi5yYXdfaW5w
dXQuc2VlaygwKQogICAgICAgICAgICAgZnMgPSBjZ2kuRmllbGRTdG9yYWdlKGZwPXNlbGYucmF3
X2lucHV0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVudmlyb249eyJSRVFV
RVNUX01FVEhPRCI6IHNlbGYubWV0aG9kfSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBoZWFkZXJzPXNlbGYuaGVhZGVycywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBoZWFkZXJzPXNlbGYucmF3X2hlYWRlcnMsCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAga2VlcF9ibGFua192YWx1ZXM9VHJ1ZSkKICAgICAgICAgICAgIHNlbGYuX1BPU1Qg
PSBNdWx0aURpY3QuZnJvbV9maWVsZF9zdG9yYWdlKGZzKQogICAgICAgICAgICAgc2VsZi5yYXdf
aW5wdXQuc2Vlayhwb3MpCkBAIC0zMTgsMTAgKzMxOCwxMiBAQCBjbGFzcyBSZXF1ZXN0KG9iamVj
dCk6CiAgICAgZGVmIGNvb2tpZXMoc2VsZik6CiAgICAgICAgIGlmIHNlbGYuX2Nvb2tpZXMgaXMg
Tm9uZToKICAgICAgICAgICAgIHBhcnNlciA9IEJhc2VDb29raWUoKQotICAgICAgICAgICAgY29v
a2llX2hlYWRlcnMgPSBzZWxmLmhlYWRlcnMuZ2V0KCJjb29raWUiLCAiIikKKyAgICAgICAgICAg
IGNvb2tpZV9oZWFkZXJzID0gc2VsZi5oZWFkZXJzLmdldCgiY29va2llIiwgYiIiKQorICAgICAg
ICAgICAgaWYgUFkzOgorICAgICAgICAgICAgICAgIGNvb2tpZV9oZWFkZXJzID0gY29va2llX2hl
YWRlcnMuZGVjb2RlKCJpc28tODg1OS0xIikKICAgICAgICAgICAgIHBhcnNlci5sb2FkKGNvb2tp
ZV9oZWFkZXJzKQogICAgICAgICAgICAgY29va2llcyA9IENvb2tpZXMoKQotICAgICAgICAgICAg
Zm9yIGtleSwgdmFsdWUgaW4gcGFyc2VyLml0ZXJpdGVtcygpOgorICAgICAgICAgICAgZm9yIGtl
eSwgdmFsdWUgaW4gaXRlcml0ZW1zKHBhcnNlcik6CiAgICAgICAgICAgICAgICAgY29va2llc1tr
ZXldID0gQ29va2llVmFsdWUodmFsdWUpCiAgICAgICAgICAgICBzZWxmLl9jb29raWVzID0gY29v
a2llcwogICAgICAgICByZXR1cm4gc2VsZi5fY29va2llcwpAQCAtMzU1LDExICszNTcsMzQgQEAg
Y2xhc3MgSDJSZXF1ZXN0KFJlcXVlc3QpOgogICAgICAgICBzdXBlcihIMlJlcXVlc3QsIHNlbGYp
Ll9faW5pdF9fKHJlcXVlc3RfaGFuZGxlcikKIAogCitkZWYgX21heWJlX2VuY29kZShzKToKKyAg
ICAiIiJFbmNvZGVzIGEgdGV4dC10eXBlIHN0cmluZyBpbnRvIGJpbmFyeSBkYXRhIHVzaW5nIGlz
by04ODU5LTEuCisKKyAgICBSZXR1cm5zIGBzdHJgIGluIFB5dGhvbiAyIGFuZCBgYnl0ZXNgIGlu
IFB5dGhvbiAzLiBUaGUgZnVuY3Rpb24gaXMgYSBuby1vcAorICAgIGlmIHRoZSBhcmd1bWVudCBh
bHJlYWR5IGhhcyBhIGJpbmFyeSB0eXBlLgorICAgICIiIgorICAgIGlmIGlzaW5zdGFuY2Uocywg
YmluYXJ5X3R5cGUpOgorICAgICAgICByZXR1cm4gcworCisgICAgIyBQeXRob24gMyBhc3N1bWVz
IGlzby04ODU5LTEgd2hlbiBwYXJzaW5nIGhlYWRlcnMsIHdoaWNoIHdpbGwgZ2FyYmxlIHRleHQK
KyAgICAjIHdpdGggbm9uIEFTQ0lJIGNoYXJhY3RlcnMuIFdlIHRyeSB0byBlbmNvZGUgdGhlIHRl
eHQgYmFjayB0byBiaW5hcnkuCisgICAgIyBodHRwczovL2dpdGh1Yi5jb20vcHl0aG9uL2NweXRo
b24vYmxvYi8yNzNmYzIyMGIyNTkzM2U0NDNjODJhZjY4ODhlYjE4NzFkMDMyZmI4L0xpYi9odHRw
L2NsaWVudC5weSNMMjEzCisgICAgaWYgaXNpbnN0YW5jZShzLCB0ZXh0X3R5cGUpOgorICAgICAg
ICByZXR1cm4gcy5lbmNvZGUoImlzby04ODU5LTEiKQorCisgICAgcmFpc2UgVHlwZUVycm9yKCJV
bmV4cGVjdGVkIHZhbHVlIGluIFJlcXVlc3RIZWFkZXJzOiAlciIgJSBzKQorCisKIGNsYXNzIFJl
cXVlc3RIZWFkZXJzKGRpY3QpOgotICAgICIiIkRpY3Rpb25hcnktbGlrZSBBUEkgZm9yIGFjY2Vz
c2luZyByZXF1ZXN0IGhlYWRlcnMuIiIiCisgICAgIiIiUmVhZC1vbmx5IGRpY3Rpb25hcnktbGlr
ZSBBUEkgZm9yIGFjY2Vzc2luZyByZXF1ZXN0IGhlYWRlcnMuCisKKyAgICBVbmxpa2UgQmFzZUhU
VFBSZXF1ZXN0SGFuZGxlci5oZWFkZXJzLCB0aGlzIGNsYXNzIGFsd2F5cyByZXR1cm5zIGFsbAor
ICAgIGhlYWRlcnMgd2l0aCB0aGUgc2FtZSBuYW1lIChzZXBhcmF0ZWQgYnkgY29tbWFzKS4gQW5k
IGl0IGVuc3VyZXMgYWxsIGtleXMKKyAgICAoaS5lLiBuYW1lcyBvZiBoZWFkZXJzKSBhbmQgdmFs
dWVzIGhhdmUgYmluYXJ5IHR5cGUuCisgICAgIiIiCiAgICAgZGVmIF9faW5pdF9fKHNlbGYsIGl0
ZW1zKToKICAgICAgICAgZm9yIGhlYWRlciBpbiBpdGVtcy5rZXlzKCk6Ci0gICAgICAgICAgICBr
ZXkgPSBoZWFkZXIubG93ZXIoKQorICAgICAgICAgICAga2V5ID0gX21heWJlX2VuY29kZShoZWFk
ZXIpLmxvd2VyKCkKICAgICAgICAgICAgICMgZ2V0IGFsbCBoZWFkZXJzIHdpdGggdGhlIHNhbWUg
bmFtZQogICAgICAgICAgICAgdmFsdWVzID0gaXRlbXMuZ2V0YWxsbWF0Y2hpbmdoZWFkZXJzKGhl
YWRlcikKICAgICAgICAgICAgIGlmIGxlbih2YWx1ZXMpID4gMToKQEAgLTM2OSwxNSArMzk0LDE3
IEBAIGNsYXNzIFJlcXVlc3RIZWFkZXJzKGRpY3QpOgogICAgICAgICAgICAgICAgIGZvciB2YWx1
ZSBpbiB2YWx1ZXM6CiAgICAgICAgICAgICAgICAgICAgICMgZ2V0YWxsbWF0Y2hpbmdoZWFkZXJz
IHJldHVybnMgcmF3IGhlYWRlciBsaW5lcywgc28KICAgICAgICAgICAgICAgICAgICAgIyBzcGxp
dCB0byBnZXQgbmFtZSwgdmFsdWUKLSAgICAgICAgICAgICAgICAgICAgbXVsdGlwbGVzLmFwcGVu
ZCh2YWx1ZS5zcGxpdCgnOicsIDEpWzFdLnN0cmlwKCkpCi0gICAgICAgICAgICAgICAgZGljdC5f
X3NldGl0ZW1fXyhzZWxmLCBrZXksIG11bHRpcGxlcykKKyAgICAgICAgICAgICAgICAgICAgbXVs
dGlwbGVzLmFwcGVuZChfbWF5YmVfZW5jb2RlKHZhbHVlKS5zcGxpdChiJzonLCAxKVsxXS5zdHJp
cCgpKQorICAgICAgICAgICAgICAgIGhlYWRlcnMgPSBtdWx0aXBsZXMKICAgICAgICAgICAgIGVs
c2U6Ci0gICAgICAgICAgICAgICAgZGljdC5fX3NldGl0ZW1fXyhzZWxmLCBrZXksIFtpdGVtc1to
ZWFkZXJdXSkKKyAgICAgICAgICAgICAgICBoZWFkZXJzID0gW19tYXliZV9lbmNvZGUoaXRlbXNb
aGVhZGVyXSldCisgICAgICAgICAgICBkaWN0Ll9fc2V0aXRlbV9fKHNlbGYsIGtleSwgaGVhZGVy
cykKIAogCiAgICAgZGVmIF9fZ2V0aXRlbV9fKHNlbGYsIGtleSk6CiAgICAgICAgICIiIkdldCBh
bGwgaGVhZGVycyBvZiBhIGNlcnRhaW4gKGNhc2UtaW5zZW5zaXRpdmUpIG5hbWUuIElmIHRoZXJl
IGlzCiAgICAgICAgIG1vcmUgdGhhbiBvbmUsIHRoZSB2YWx1ZXMgYXJlIHJldHVybmVkIGNvbW1h
IHNlcGFyYXRlZCIiIgorICAgICAgICBrZXkgPSBfbWF5YmVfZW5jb2RlKGtleSkKICAgICAgICAg
dmFsdWVzID0gZGljdC5fX2dldGl0ZW1fXyhzZWxmLCBrZXkubG93ZXIoKSkKICAgICAgICAgaWYg
bGVuKHZhbHVlcykgPT0gMToKICAgICAgICAgICAgIHJldHVybiB2YWx1ZXNbMF0KQEAgLTQwMyw2
ICs0MzAsNyBAQCBjbGFzcyBSZXF1ZXN0SGVhZGVycyhkaWN0KToKICAgICBkZWYgZ2V0X2xpc3Qo
c2VsZiwga2V5LCBkZWZhdWx0PW1pc3NpbmcpOgogICAgICAgICAiIiJHZXQgYWxsIHRoZSBoZWFk
ZXIgdmFsdWVzIGZvciBhIHBhcnRpY3VsYXIgZmllbGQgbmFtZSBhcwogICAgICAgICBhIGxpc3Qi
IiIKKyAgICAgICAga2V5ID0gX21heWJlX2VuY29kZShrZXkpCiAgICAgICAgIHRyeToKICAgICAg
ICAgICAgIHJldHVybiBkaWN0Ll9fZ2V0aXRlbV9fKHNlbGYsIGtleS5sb3dlcigpKQogICAgICAg
ICBleGNlcHQgS2V5RXJyb3I6CkBAIC00MTIsNiArNDQwLDcgQEAgY2xhc3MgUmVxdWVzdEhlYWRl
cnMoZGljdCk6CiAgICAgICAgICAgICAgICAgcmFpc2UKIAogICAgIGRlZiBfX2NvbnRhaW5zX18o
c2VsZiwga2V5KToKKyAgICAgICAga2V5ID0gX21heWJlX2VuY29kZShrZXkpCiAgICAgICAgIHJl
dHVybiBkaWN0Ll9fY29udGFpbnNfXyhzZWxmLCBrZXkubG93ZXIoKSkKIAogICAgIGRlZiBpdGVy
aXRlbXMoc2VsZik6CkBAIC01MjcsNyArNTU2LDcgQEAgY2xhc3MgTXVsdGlEaWN0KGRpY3QpOgog
ICAgICAgICAgICAgcmV0dXJuIGRpY3QuX19nZXRpdGVtX18oc2VsZiwga2V5KVswXQogICAgICAg
ICBlbGlmIGRlZmF1bHQgaXMgbm90IG1pc3Npbmc6CiAgICAgICAgICAgICByZXR1cm4gZGVmYXVs
dAotICAgICAgICByYWlzZSBLZXlFcnJvcgorICAgICAgICByYWlzZSBLZXlFcnJvcihrZXkpCiAK
ICAgICBkZWYgbGFzdChzZWxmLCBrZXksIGRlZmF1bHQ9bWlzc2luZyk6CiAgICAgICAgICIiIkdl
dCB0aGUgbGFzdCB2YWx1ZSB3aXRoIGEgZ2l2ZW4ga2V5CkBAIC01NDEsMTQgKzU3MCwxNyBAQCBj
bGFzcyBNdWx0aURpY3QoZGljdCk6CiAgICAgICAgICAgICByZXR1cm4gZGljdC5fX2dldGl0ZW1f
XyhzZWxmLCBrZXkpWy0xXQogICAgICAgICBlbGlmIGRlZmF1bHQgaXMgbm90IG1pc3Npbmc6CiAg
ICAgICAgICAgICByZXR1cm4gZGVmYXVsdAotICAgICAgICByYWlzZSBLZXlFcnJvcgorICAgICAg
ICByYWlzZSBLZXlFcnJvcihrZXkpCiAKICAgICBkZWYgZ2V0X2xpc3Qoc2VsZiwga2V5KToKICAg
ICAgICAgIiIiR2V0IGFsbCB2YWx1ZXMgd2l0aCBhIGdpdmVuIGtleSBhcyBhIGxpc3QKIAogICAg
ICAgICA6cGFyYW0ga2V5OiBUaGUga2V5IHRvIGxvb2t1cAogICAgICAgICAiIiIKLSAgICAgICAg
cmV0dXJuIGRpY3QuX19nZXRpdGVtX18oc2VsZiwga2V5KQorICAgICAgICBpZiBrZXkgaW4gc2Vs
ZjoKKyAgICAgICAgICAgIHJldHVybiBkaWN0Ll9fZ2V0aXRlbV9fKHNlbGYsIGtleSkKKyAgICAg
ICAgZWxzZToKKyAgICAgICAgICAgIHJldHVybiBbXQogCiAgICAgQGNsYXNzbWV0aG9kCiAgICAg
ZGVmIGZyb21fZmllbGRfc3RvcmFnZShjbHMsIGZzKToKQEAgLTU2MSw5ICs1OTMsNyBAQCBjbGFz
cyBNdWx0aURpY3QoZGljdCk6CiAgICAgICAgICAgICAgICAgdmFsdWVzID0gW3ZhbHVlc10KIAog
ICAgICAgICAgICAgZm9yIHZhbHVlIGluIHZhbHVlczoKLSAgICAgICAgICAgICAgICBpZiB2YWx1
ZS5maWxlbmFtZToKLSAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSB2YWx1ZQotICAgICAgICAg
ICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgaWYgbm90IHZhbHVlLmZpbGVuYW1lOgogICAg
ICAgICAgICAgICAgICAgICB2YWx1ZSA9IHZhbHVlLnZhbHVlCiAgICAgICAgICAgICAgICAgc2Vs
Zi5hZGQoa2V5LCB2YWx1ZSkKICAgICAgICAgcmV0dXJuIHNlbGYKQEAgLTU5MCwyMSArNjIwLDI4
IEBAIGNsYXNzIEF1dGhlbnRpY2F0aW9uKG9iamVjdCk6CiAKICAgICBUaGUgcGFzc3dvcmQgc3Vw
cGxpZWQgaW4gdGhlIEhUVFAgQXV0aG9yaXphdGlvbgogICAgIGhlYWRlciwgb3IgTm9uZQorCisg
ICAgQm90aCBhdHRyaWJ1dGVzIGFyZSBiaW5hcnkgc3RyaW5ncyAoYHN0cmAgaW4gUHkyLCBgYnl0
ZXNgIGluIFB5MyksIHNpbmNlCisgICAgUkZDNzYxNyBTZWN0aW9uIDIuMSBkb2VzIG5vdCBzcGVj
aWZ5IHRoZSBlbmNvZGluZyBmb3IgdXNlcm5hbWUgJiBwYXNzd29yZAorICAgIChhcyBsb25nIGl0
J3MgY29tcGF0aWJsZSB3aXRoIEFTQ0lJKS4gVVRGLTggc2hvdWxkIGJlIGEgcmVsYXRpdmVseSBz
YWZlCisgICAgY2hvaWNlIGlmIGNhbGxlcnMgbmVlZCB0byBkZWNvZGUgdGhlbSBhcyBtb3N0IGJy
b3dzZXJzIHVzZSBpdC4KICAgICAiIiIKICAgICBkZWYgX19pbml0X18oc2VsZiwgaGVhZGVycyk6
CiAgICAgICAgIHNlbGYudXNlcm5hbWUgPSBOb25lCiAgICAgICAgIHNlbGYucGFzc3dvcmQgPSBO
b25lCiAKLSAgICAgICAgYXV0aF9zY2hlbWVzID0geyJCYXNpYyI6IHNlbGYuZGVjb2RlX2Jhc2lj
fQorICAgICAgICBhdXRoX3NjaGVtZXMgPSB7YiJCYXNpYyI6IHNlbGYuZGVjb2RlX2Jhc2ljfQog
CiAgICAgICAgIGlmICJhdXRob3JpemF0aW9uIiBpbiBoZWFkZXJzOgogICAgICAgICAgICAgaGVh
ZGVyID0gaGVhZGVycy5nZXQoImF1dGhvcml6YXRpb24iKQotICAgICAgICAgICAgYXV0aF90eXBl
LCBkYXRhID0gaGVhZGVyLnNwbGl0KCIgIiwgMSkKKyAgICAgICAgICAgIGFzc2VydCBpc2luc3Rh
bmNlKGhlYWRlciwgYmluYXJ5X3R5cGUpCisgICAgICAgICAgICBhdXRoX3R5cGUsIGRhdGEgPSBo
ZWFkZXIuc3BsaXQoYiIgIiwgMSkKICAgICAgICAgICAgIGlmIGF1dGhfdHlwZSBpbiBhdXRoX3Nj
aGVtZXM6CiAgICAgICAgICAgICAgICAgc2VsZi51c2VybmFtZSwgc2VsZi5wYXNzd29yZCA9IGF1
dGhfc2NoZW1lc1thdXRoX3R5cGVdKGRhdGEpCiAgICAgICAgICAgICBlbHNlOgogICAgICAgICAg
ICAgICAgIHJhaXNlIEhUVFBFeGNlcHRpb24oNDAwLCAiVW5zdXBwb3J0ZWQgYXV0aGVudGljYXRp
b24gc2NoZW1lICVzIiAlIGF1dGhfdHlwZSkKIAogICAgIGRlZiBkZWNvZGVfYmFzaWMoc2VsZiwg
ZGF0YSk6Ci0gICAgICAgIGRlY29kZWRfZGF0YSA9IGJhc2U2NC5kZWNvZGVzdHJpbmcoZGF0YSkK
LSAgICAgICAgcmV0dXJuIGRlY29kZWRfZGF0YS5zcGxpdCgiOiIsIDEpCisgICAgICAgIGFzc2Vy
dCBpc2luc3RhbmNlKGRhdGEsIGJpbmFyeV90eXBlKQorICAgICAgICBkZWNvZGVkX2RhdGEgPSBi
YXNlNjQuYjY0ZGVjb2RlKGRhdGEpCisgICAgICAgIHJldHVybiBkZWNvZGVkX2RhdGEuc3BsaXQo
YiI6IiwgMSkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvdG9vbHMvd3B0c2VydmUvd3B0c2VydmUvcmVzcG9uc2UucHkgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHNlcnZlL3dwdHNlcnZl
L3Jlc3BvbnNlLnB5CmluZGV4IGJjMjE0NTJlZWZmY2U3M2JjNjM5NWZhMWExNWYzNWY5ZjU1Yjkz
YzcuLjNhNjBjMmJhYmIzOWQ4ZDc3OTk5MDIyYTdmYjRkMTg0Y2IwMTlhYTggMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0c2Vy
dmUvd3B0c2VydmUvcmVzcG9uc2UucHkKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRzZXJ2ZS93cHRzZXJ2ZS9yZXNwb25zZS5weQpAQCAt
OCw3ICs4LDcgQEAgZnJvbSAuY29uc3RhbnRzIGltcG9ydCByZXNwb25zZV9jb2RlcywgaDJfaGVh
ZGVycwogZnJvbSAubG9nZ2VyIGltcG9ydCBnZXRfbG9nZ2VyCiBmcm9tIGlvIGltcG9ydCBCeXRl
c0lPCiAKLWZyb20gc2l4IGltcG9ydCBiaW5hcnlfdHlwZSwgdGV4dF90eXBlLCBpdGVydmFsdWVz
Citmcm9tIHNpeCBpbXBvcnQgYmluYXJ5X3R5cGUsIHRleHRfdHlwZSwgaW50ZWdlcl90eXBlcywg
aXRlcnZhbHVlcywgUFkzCiBmcm9tIGh5cGVyZnJhbWUuZnJhbWUgaW1wb3J0IEhlYWRlcnNGcmFt
ZSwgRGF0YUZyYW1lLCBDb250aW51YXRpb25GcmFtZQogZnJvbSBocGFjay5zdHJ1Y3QgaW1wb3J0
IEhlYWRlclR1cGxlCiAKQEAgLTExMywxMCArMTEzLDEwIEBAIGNsYXNzIFJlc3BvbnNlKG9iamVj
dCk6CiAgICAgICAgICAgICAgICAgICAgICAgICB0aW1lIG9yIGludGVydmFsIGZyb20gbm93IHdo
ZW4gdGhlIGNvb2tpZSBleHBpcmVzCiAKICAgICAgICAgIiIiCi0gICAgICAgIGRheXMgPSBkaWN0
KChpKzEsIG5hbWUpIGZvciBpLCBuYW1lIGluIGVudW1lcmF0ZShbImphbiIsICJmZWIiLCAibWFy
IiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAiYXByIiwgIm1heSIsICJqdW4iLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICJqdWwiLCAiYXVnIiwgInNlcCIsCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIm9jdCIs
ICJub3YiLCAiZGVjIl0pKQorICAgICAgICBkYXlzID0ge2krMTogbmFtZSBmb3IgaSwgbmFtZSBp
biBlbnVtZXJhdGUoWyJqYW4iLCAiZmViIiwgIm1hciIsCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImFwciIsICJtYXkiLCAianVuIiwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAianVsIiwgImF1
ZyIsICJzZXAiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICJvY3QiLCAibm92IiwgImRlYyJdKX0KICAgICAgICAgaWYgdmFsdWUgaXMgTm9uZToK
ICAgICAgICAgICAgIHZhbHVlID0gJycKICAgICAgICAgICAgIG1heF9hZ2UgPSAwCkBAIC0xNTcs
NiArMTU3LDggQEAgY2xhc3MgUmVzcG9uc2Uob2JqZWN0KToKICAgICAgICAgY29va2llcyA9IHNl
bGYuaGVhZGVycy5nZXQoIlNldC1Db29raWUiKQogICAgICAgICBwYXJzZXIgPSBCYXNlQ29va2ll
KCkKICAgICAgICAgZm9yIGNvb2tpZSBpbiBjb29raWVzOgorICAgICAgICAgICAgaWYgUFkzOgor
ICAgICAgICAgICAgICAgIGNvb2tpZSA9IGNvb2tpZS5kZWNvZGUoImlzby04ODU5LTEiKQogICAg
ICAgICAgICAgcGFyc2VyLmxvYWQoY29va2llKQogCiAgICAgICAgIGlmIG5hbWUgaW4gcGFyc2Vy
LmtleXMoKToKQEAgLTE3NywxNCArMTc5LDE4IEBAIGNsYXNzIFJlc3BvbnNlKG9iamVjdCk6CiAg
ICAgICAgIElmIGFueSBwYXJ0IG9mIHRoZSBjb250ZW50IGlzIGEgZnVuY3Rpb24sIHRoaXMgd2ls
bCBiZSBjYWxsZWQKICAgICAgICAgYW5kIHRoZSByZXN1bHRpbmcgdmFsdWUgKGlmIGFueSkgcmV0
dXJuZWQuCiAKLSAgICAgICAgOnBhcmFtIHJlYWRfZmlsZTogLSBib29sZWFuIGNvbnRyb2xsaW5n
IHRoZSBiZWhhdmlvdXIgd2hlbiBjb250ZW50Ci0gICAgICAgIGlzIGEgZmlsZSBoYW5kbGUuIFdo
ZW4gc2V0IHRvIEZhbHNlIHRoZSBoYW5kbGUgd2lsbCBiZSByZXR1cm5lZCBkaXJlY3RseQotICAg
ICAgICBhbGxvd2luZyB0aGUgZmlsZSB0byBiZSBwYXNzZWQgdG8gdGhlIG91dHB1dCBpbiBzbWFs
bCBjaHVua3MuIFdoZW4gc2V0IHRvCi0gICAgICAgIFRydWUsIHRoZSBlbnRpcmUgY29udGVudCBv
ZiB0aGUgZmlsZSB3aWxsIGJlIHJldHVybmVkIGFzIGEgc3RyaW5nIGZhY2lsaXRhdGluZwotICAg
ICAgICBub24tc3RyZWFtaW5nIG9wZXJhdGlvbnMgbGlrZSB0ZW1wbGF0ZSBzdWJzdGl0dXRpb24u
CisgICAgICAgIDpwYXJhbSByZWFkX2ZpbGU6IGJvb2xlYW4gY29udHJvbGxpbmcgdGhlIGJlaGF2
aW91ciB3aGVuIGNvbnRlbnQgaXMgYQorICAgICAgICAgICAgICAgICAgICAgICAgICBmaWxlIGhh
bmRsZS4gV2hlbiBzZXQgdG8gRmFsc2UgdGhlIGhhbmRsZSB3aWxsIGJlCisgICAgICAgICAgICAg
ICAgICAgICAgICAgIHJldHVybmVkIGRpcmVjdGx5IGFsbG93aW5nIHRoZSBmaWxlIHRvIGJlIHBh
c3NlZCB0bworICAgICAgICAgICAgICAgICAgICAgICAgICB0aGUgb3V0cHV0IGluIHNtYWxsIGNo
dW5rcy4gV2hlbiBzZXQgdG8gVHJ1ZSwgdGhlCisgICAgICAgICAgICAgICAgICAgICAgICAgIGVu
dGlyZSBjb250ZW50IG9mIHRoZSBmaWxlIHdpbGwgYmUgcmV0dXJuZWQgYXMgYQorICAgICAgICAg
ICAgICAgICAgICAgICAgICBzdHJpbmcgZmFjaWxpdGF0aW5nIG5vbi1zdHJlYW1pbmcgb3BlcmF0
aW9ucyBsaWtlCisgICAgICAgICAgICAgICAgICAgICAgICAgIHRlbXBsYXRlIHN1YnN0aXR1dGlv
bi4KICAgICAgICAgIiIiCi0gICAgICAgIGlmIGlzaW5zdGFuY2Uoc2VsZi5jb250ZW50LCAoYmlu
YXJ5X3R5cGUsIHRleHRfdHlwZSkpOgorICAgICAgICBpZiBpc2luc3RhbmNlKHNlbGYuY29udGVu
dCwgYmluYXJ5X3R5cGUpOgogICAgICAgICAgICAgeWllbGQgc2VsZi5jb250ZW50CisgICAgICAg
IGVsaWYgaXNpbnN0YW5jZShzZWxmLmNvbnRlbnQsIHRleHRfdHlwZSk6CisgICAgICAgICAgICB5
aWVsZCBzZWxmLmNvbnRlbnQuZW5jb2RlKHNlbGYuZW5jb2RpbmcpCiAgICAgICAgIGVsaWYgaGFz
YXR0cihzZWxmLmNvbnRlbnQsICJyZWFkIik6CiAgICAgICAgICAgICBpZiByZWFkX2ZpbGU6CiAg
ICAgICAgICAgICAgICAgeWllbGQgc2VsZi5jb250ZW50LnJlYWQoKQpAQCAtMjM1LDE4ICsyNDEs
MTggQEAgY2xhc3MgTXVsdGlwYXJ0Q29udGVudChvYmplY3QpOgogICAgIGRlZiBfX2luaXRfXyhz
ZWxmLCBib3VuZGFyeT1Ob25lLCBkZWZhdWx0X2NvbnRlbnRfdHlwZT1Ob25lKToKICAgICAgICAg
c2VsZi5pdGVtcyA9IFtdCiAgICAgICAgIGlmIGJvdW5kYXJ5IGlzIE5vbmU6Ci0gICAgICAgICAg
ICBib3VuZGFyeSA9IHN0cih1dWlkLnV1aWQ0KCkpCisgICAgICAgICAgICBib3VuZGFyeSA9IHRl
eHRfdHlwZSh1dWlkLnV1aWQ0KCkpCiAgICAgICAgIHNlbGYuYm91bmRhcnkgPSBib3VuZGFyeQog
ICAgICAgICBzZWxmLmRlZmF1bHRfY29udGVudF90eXBlID0gZGVmYXVsdF9jb250ZW50X3R5cGUK
IAogICAgIGRlZiBfX2NhbGxfXyhzZWxmKToKLSAgICAgICAgYm91bmRhcnkgPSAiLS0iICsgc2Vs
Zi5ib3VuZGFyeQotICAgICAgICBydiA9IFsiIiwgYm91bmRhcnldCisgICAgICAgIGJvdW5kYXJ5
ID0gYiItLSIgKyBzZWxmLmJvdW5kYXJ5LmVuY29kZSgiYXNjaWkiKQorICAgICAgICBydiA9IFti
IiIsIGJvdW5kYXJ5XQogICAgICAgICBmb3IgaXRlbSBpbiBzZWxmLml0ZW1zOgotICAgICAgICAg
ICAgcnYuYXBwZW5kKHN0cihpdGVtKSkKKyAgICAgICAgICAgIHJ2LmFwcGVuZChpdGVtLnRvX2J5
dGVzKCkpCiAgICAgICAgICAgICBydi5hcHBlbmQoYm91bmRhcnkpCi0gICAgICAgIHJ2Wy0xXSAr
PSAiLS0iCi0gICAgICAgIHJldHVybiAiXHJcbiIuam9pbihydikKKyAgICAgICAgcnZbLTFdICs9
IGIiLS0iCisgICAgICAgIHJldHVybiBiIlxyXG4iLmpvaW4ocnYpCiAKICAgICBkZWYgYXBwZW5k
X3BhcnQoc2VsZiwgZGF0YSwgY29udGVudF90eXBlPU5vbmUsIGhlYWRlcnM9Tm9uZSk6CiAgICAg
ICAgIGlmIGNvbnRlbnRfdHlwZSBpcyBOb25lOgpAQCAtMjYzLDYgKzI2OSw3IEBAIGNsYXNzIE11
bHRpcGFydENvbnRlbnQob2JqZWN0KToKIAogY2xhc3MgTXVsdGlwYXJ0UGFydChvYmplY3QpOgog
ICAgIGRlZiBfX2luaXRfXyhzZWxmLCBkYXRhLCBjb250ZW50X3R5cGU9Tm9uZSwgaGVhZGVycz1O
b25lKToKKyAgICAgICAgYXNzZXJ0IGlzaW5zdGFuY2UoZGF0YSwgYmluYXJ5X3R5cGUpLCBkYXRh
CiAgICAgICAgIHNlbGYuaGVhZGVycyA9IFJlc3BvbnNlSGVhZGVycygpCiAKICAgICAgICAgaWYg
Y29udGVudF90eXBlIGlzIG5vdCBOb25lOgpAQCAtMjcwLDcgKzI3Nyw3IEBAIGNsYXNzIE11bHRp
cGFydFBhcnQob2JqZWN0KToKIAogICAgICAgICBpZiBoZWFkZXJzIGlzIG5vdCBOb25lOgogICAg
ICAgICAgICAgZm9yIG5hbWUsIHZhbHVlIGluIGhlYWRlcnM6Ci0gICAgICAgICAgICAgICAgaWYg
bmFtZS5sb3dlcigpID09ICJjb250ZW50LXR5cGUiOgorICAgICAgICAgICAgICAgIGlmIG5hbWUu
bG93ZXIoKSA9PSBiImNvbnRlbnQtdHlwZSI6CiAgICAgICAgICAgICAgICAgICAgIGZ1bmMgPSBz
ZWxmLmhlYWRlcnMuc2V0CiAgICAgICAgICAgICAgICAgZWxzZToKICAgICAgICAgICAgICAgICAg
ICAgZnVuYyA9IHNlbGYuaGVhZGVycy5hcHBlbmQKQEAgLTI3OCwxMyArMjg1LDM2IEBAIGNsYXNz
IE11bHRpcGFydFBhcnQob2JqZWN0KToKIAogICAgICAgICBzZWxmLmRhdGEgPSBkYXRhCiAKLSAg
ICBkZWYgX19zdHJfXyhzZWxmKToKKyAgICBkZWYgdG9fYnl0ZXMoc2VsZik6CiAgICAgICAgIHJ2
ID0gW10KLSAgICAgICAgZm9yIGl0ZW0gaW4gc2VsZi5oZWFkZXJzOgotICAgICAgICAgICAgcnYu
YXBwZW5kKCIlczogJXMiICUgaXRlbSkKLSAgICAgICAgcnYuYXBwZW5kKCIiKQorICAgICAgICBm
b3Iga2V5LCB2YWx1ZSBpbiBzZWxmLmhlYWRlcnM6CisgICAgICAgICAgICBhc3NlcnQgaXNpbnN0
YW5jZShrZXksIGJpbmFyeV90eXBlKQorICAgICAgICAgICAgYXNzZXJ0IGlzaW5zdGFuY2UodmFs
dWUsIGJpbmFyeV90eXBlKQorICAgICAgICAgICAgcnYuYXBwZW5kKGIiJXM6ICVzIiAlIChrZXks
IHZhbHVlKSkKKyAgICAgICAgcnYuYXBwZW5kKGIiIikKICAgICAgICAgcnYuYXBwZW5kKHNlbGYu
ZGF0YSkKLSAgICAgICAgcmV0dXJuICJcclxuIi5qb2luKHJ2KQorICAgICAgICByZXR1cm4gYiJc
clxuIi5qb2luKHJ2KQorCisKK2RlZiBfbWF5YmVfZW5jb2RlKHMpOgorICAgICIiIkVuY29kZXMg
YSB0ZXh0LXR5cGUgc3RyaW5nIGludG8gYmluYXJ5IGRhdGEgdXNpbmcgaXNvLTg4NTktMS4KKwor
ICAgIFJldHVybnMgYHN0cmAgaW4gUHl0aG9uIDIgYW5kIGBieXRlc2AgaW4gUHl0aG9uIDMuIFRo
ZSBmdW5jdGlvbiBpcyBhIG5vLW9wCisgICAgaWYgdGhlIGFyZ3VtZW50IGFscmVhZHkgaGFzIGEg
YmluYXJ5IHR5cGUuCisgICAgIiIiCisgICAgaWYgaXNpbnN0YW5jZShzLCBiaW5hcnlfdHlwZSk6
CisgICAgICAgIHJldHVybiBzCisKKyAgICAjIFB5dGhvbiAzIGFzc3VtZXMgaXNvLTg4NTktMSB3
aGVuIHBhcnNpbmcgaGVhZGVycywgd2hpY2ggd2lsbCBnYXJibGUgdGV4dAorICAgICMgd2l0aCBu
b24gQVNDSUkgY2hhcmFjdGVycy4gV2UgdHJ5IHRvIGVuY29kZSB0aGUgdGV4dCBiYWNrIHRvIGJp
bmFyeS4KKyAgICAjIGh0dHBzOi8vZ2l0aHViLmNvbS9weXRob24vY3B5dGhvbi9ibG9iLzI3M2Zj
MjIwYjI1OTMzZTQ0M2M4MmFmNjg4OGViMTg3MWQwMzJmYjgvTGliL2h0dHAvY2xpZW50LnB5I0wy
MTMKKyAgICBpZiBpc2luc3RhbmNlKHMsIHRleHRfdHlwZSk6CisgICAgICAgIHJldHVybiBzLmVu
Y29kZSgiaXNvLTg4NTktMSIpCisKKyAgICBpZiBpc2luc3RhbmNlKHMsIGludGVnZXJfdHlwZXMp
OgorICAgICAgICByZXR1cm4gYiIlaSIgJSAocywpCisKKyAgICByYWlzZSBUeXBlRXJyb3IoIlVu
ZXhwZWN0ZWQgdmFsdWUgaW4gUmVzcG9uc2VIZWFkZXJzOiAlciIgJSBzKQogCiAKIGNsYXNzIFJl
c3BvbnNlSGVhZGVycyhvYmplY3QpOgpAQCAtMjk5LDYgKzMyOSw4IEBAIGNsYXNzIFJlc3BvbnNl
SGVhZGVycyhvYmplY3QpOgogICAgICAgICA6cGFyYW0ga2V5OiBOYW1lIG9mIHRoZSBoZWFkZXIg
dG8gc2V0CiAgICAgICAgIDpwYXJhbSB2YWx1ZTogVmFsdWUgdG8gc2V0IHRoZSBoZWFkZXIgdG8K
ICAgICAgICAgIiIiCisgICAgICAgIGtleSA9IF9tYXliZV9lbmNvZGUoa2V5KQorICAgICAgICB2
YWx1ZSA9IF9tYXliZV9lbmNvZGUodmFsdWUpCiAgICAgICAgIHNlbGYuZGF0YVtrZXkubG93ZXIo
KV0gPSAoa2V5LCBbdmFsdWVdKQogCiAgICAgZGVmIGFwcGVuZChzZWxmLCBrZXksIHZhbHVlKToK
QEAgLTMwOCw2ICszNDAsOCBAQCBjbGFzcyBSZXNwb25zZUhlYWRlcnMob2JqZWN0KToKICAgICAg
ICAgOnBhcmFtIGtleTogTmFtZSBvZiB0aGUgaGVhZGVyIHRvIGFkZAogICAgICAgICA6cGFyYW0g
dmFsdWU6IFZhbHVlIHRvIHNldCBmb3IgdGhlIGhlYWRlcgogICAgICAgICAiIiIKKyAgICAgICAg
a2V5ID0gX21heWJlX2VuY29kZShrZXkpCisgICAgICAgIHZhbHVlID0gX21heWJlX2VuY29kZSh2
YWx1ZSkKICAgICAgICAgaWYga2V5Lmxvd2VyKCkgaW4gc2VsZi5kYXRhOgogICAgICAgICAgICAg
c2VsZi5kYXRhW2tleS5sb3dlcigpXVsxXS5hcHBlbmQodmFsdWUpCiAgICAgICAgIGVsc2U6CkBA
IC0zMTUsNiArMzQ5LDcgQEAgY2xhc3MgUmVzcG9uc2VIZWFkZXJzKG9iamVjdCk6CiAKICAgICBk
ZWYgZ2V0KHNlbGYsIGtleSwgZGVmYXVsdD1taXNzaW5nKToKICAgICAgICAgIiIiR2V0IHRoZSBz
ZXQgdmFsdWVzIGZvciBhIHBhcnRpY3VsYXIgaGVhZGVyLiIiIgorICAgICAgICBrZXkgPSBfbWF5
YmVfZW5jb2RlKGtleSkKICAgICAgICAgdHJ5OgogICAgICAgICAgICAgcmV0dXJuIHNlbGZba2V5
XQogICAgICAgICBleGNlcHQgS2V5RXJyb3I6CkBAIC0zMjYsMTIgKzM2MSwxNSBAQCBjbGFzcyBS
ZXNwb25zZUhlYWRlcnMob2JqZWN0KToKICAgICAgICAgIiIiR2V0IGEgbGlzdCBvZiB2YWx1ZXMg
Zm9yIGEgcGFydGljdWxhciBoZWFkZXIKIAogICAgICAgICAiIiIKKyAgICAgICAga2V5ID0gX21h
eWJlX2VuY29kZShrZXkpCiAgICAgICAgIHJldHVybiBzZWxmLmRhdGFba2V5Lmxvd2VyKCldWzFd
CiAKICAgICBkZWYgX19kZWxpdGVtX18oc2VsZiwga2V5KToKKyAgICAgICAga2V5ID0gX21heWJl
X2VuY29kZShrZXkpCiAgICAgICAgIGRlbCBzZWxmLmRhdGFba2V5Lmxvd2VyKCldCiAKICAgICBk
ZWYgX19jb250YWluc19fKHNlbGYsIGtleSk6CisgICAgICAgIGtleSA9IF9tYXliZV9lbmNvZGUo
a2V5KQogICAgICAgICByZXR1cm4ga2V5Lmxvd2VyKCkgaW4gc2VsZi5kYXRhCiAKICAgICBkZWYg
X19zZXRpdGVtX18oc2VsZiwga2V5LCB2YWx1ZSk6CkBAIC0zOTEsNiArNDI5LDE3IEBAIGNsYXNz
IEgyUmVzcG9uc2VXcml0ZXIob2JqZWN0KToKICAgICAgICAgc2VsZi5sb2dnZXIgPSByZXNwb25z
ZS5sb2dnZXIKIAogICAgIGRlZiB3cml0ZV9oZWFkZXJzKHNlbGYsIGhlYWRlcnMsIHN0YXR1c19j
b2RlLCBzdGF0dXNfbWVzc2FnZT1Ob25lLCBzdHJlYW1faWQ9Tm9uZSwgbGFzdD1GYWxzZSk6Cisg
ICAgICAgICIiIgorICAgICAgICBTZW5kIGEgSEVBREVSIGZyYW1lIHRoYXQgaXMgdHJhY2tlZCBi
eSB0aGUgbG9jYWwgc3RhdGUgbWFjaGluZS4KKworICAgICAgICBXcml0ZSBhIEhFQURFUiBmcmFt
ZSB1c2luZyB0aGUgSDIgQ29ubmVjdGlvbiBvYmplY3QsIHdpbGwgb25seSB3b3JrIGlmIHRoZSBz
dHJlYW0gaXMgaW4gYSBzdGF0ZSB0byBzZW5kCisgICAgICAgIEhFQURFUiBmcmFtZXMuCisKKyAg
ICAgICAgOnBhcmFtIGhlYWRlcnM6IExpc3Qgb2YgKGhlYWRlciwgdmFsdWUpIHR1cGxlcworICAg
ICAgICA6cGFyYW0gc3RhdHVzX2NvZGU6IFRoZSBIVFRQIHN0YXR1cyBjb2RlIG9mIHRoZSByZXNw
b25zZQorICAgICAgICA6cGFyYW0gc3RyZWFtX2lkOiBJZCBvZiBzdHJlYW0gdG8gc2VuZCBmcmFt
ZSBvbi4gV2lsbCB1c2UgdGhlIHJlcXVlc3Qgc3RyZWFtIElEIGlmIE5vbmUKKyAgICAgICAgOnBh
cmFtIGxhc3Q6IEZsYWcgdG8gc2lnbmFsIGlmIHRoaXMgaXMgdGhlIGxhc3QgZnJhbWUgaW4gc3Ry
ZWFtLgorICAgICAgICAiIiIKICAgICAgICAgZm9ybWF0dGVkX2hlYWRlcnMgPSBbXQogICAgICAg
ICBzZWNvbmRhcnlfaGVhZGVycyA9IFtdICAjIE5vbiAnOicgcHJlZml4ZWQgaGVhZGVycyBhcmUg
dG8gYmUgYWRkZWQgYWZ0ZXJ3YXJkcwogCkBAIC00MTQsNiArNDYzLDE3IEBAIGNsYXNzIEgyUmVz
cG9uc2VXcml0ZXIob2JqZWN0KToKICAgICAgICAgICAgIHNlbGYud3JpdGUoY29ubmVjdGlvbikK
IAogICAgIGRlZiB3cml0ZV9kYXRhKHNlbGYsIGl0ZW0sIGxhc3Q9RmFsc2UsIHN0cmVhbV9pZD1O
b25lKToKKyAgICAgICAgIiIiCisgICAgICAgIFNlbmQgYSBEQVRBIGZyYW1lIHRoYXQgaXMgdHJh
Y2tlZCBieSB0aGUgbG9jYWwgc3RhdGUgbWFjaGluZS4KKworICAgICAgICBXcml0ZSBhIERBVEEg
ZnJhbWUgdXNpbmcgdGhlIEgyIENvbm5lY3Rpb24gb2JqZWN0LCB3aWxsIG9ubHkgd29yayBpZiB0
aGUgc3RyZWFtIGlzIGluIGEgc3RhdGUgdG8gc2VuZAorICAgICAgICBEQVRBIGZyYW1lcy4gVXNl
cyBmbG93IGNvbnRyb2wgdG8gc3BsaXQgZGF0YSBpbnRvIG11bHRpcGxlIGRhdGEgZnJhbWVzIGlm
IGl0IGV4Y2VlZHMgdGhlIHNpemUgdGhhdCBjYW4KKyAgICAgICAgYmUgaW4gYSBzaW5nbGUgZnJh
bWUuCisKKyAgICAgICAgOnBhcmFtIGl0ZW06IFRoZSBjb250ZW50IG9mIHRoZSBEQVRBIGZyYW1l
CisgICAgICAgIDpwYXJhbSBsYXN0OiBGbGFnIHRvIHNpZ25hbCBpZiB0aGlzIGlzIHRoZSBsYXN0
IGZyYW1lIGluIHN0cmVhbS4KKyAgICAgICAgOnBhcmFtIHN0cmVhbV9pZDogSWQgb2Ygc3RyZWFt
IHRvIHNlbmQgZnJhbWUgb24uIFdpbGwgdXNlIHRoZSByZXF1ZXN0IHN0cmVhbSBJRCBpZiBOb25l
CisgICAgICAgICIiIgogICAgICAgICBpZiBpc2luc3RhbmNlKGl0ZW0sICh0ZXh0X3R5cGUsIGJp
bmFyeV90eXBlKSk6CiAgICAgICAgICAgICBkYXRhID0gQnl0ZXNJTyhzZWxmLmVuY29kZShpdGVt
KSkKICAgICAgICAgZWxzZToKQEAgLTQ3NCwxMyArNTM0LDI1IEBAIGNsYXNzIEgyUmVzcG9uc2VX
cml0ZXIob2JqZWN0KToKICAgICAgICAgcmV0dXJuIHB1c2hfc3RyZWFtX2lkCiAKICAgICBkZWYg
ZW5kX3N0cmVhbShzZWxmLCBzdHJlYW1faWQ9Tm9uZSk6CisgICAgICAgICIiIkVuZHMgdGhlIHN0
cmVhbSB3aXRoIHRoZSBnaXZlbiBJRCwgb3IgdGhlIG9uZSB0aGF0IHJlcXVlc3Qgd2FzIG1hZGUg
b24gaWYgbm8gSUQgZ2l2ZW4uIiIiCiAgICAgICAgIHdpdGggc2VsZi5oMmNvbm4gYXMgY29ubmVj
dGlvbjoKICAgICAgICAgICAgIGNvbm5lY3Rpb24uZW5kX3N0cmVhbShzdHJlYW1faWQgaWYgc3Ry
ZWFtX2lkIGlzIG5vdCBOb25lIGVsc2Ugc2VsZi5yZXF1ZXN0LmgyX3N0cmVhbV9pZCkKICAgICAg
ICAgICAgIHNlbGYud3JpdGUoY29ubmVjdGlvbikKICAgICAgICAgc2VsZi5zdHJlYW1fZW5kZWQg
PSBUcnVlCiAKICAgICBkZWYgd3JpdGVfcmF3X2hlYWRlcl9mcmFtZShzZWxmLCBoZWFkZXJzLCBz
dHJlYW1faWQ9Tm9uZSwgZW5kX3N0cmVhbT1GYWxzZSwgZW5kX2hlYWRlcnM9RmFsc2UsIGZyYW1l
X2Nscz1IZWFkZXJzRnJhbWUpOgotICAgICAgICAiIiJUaGlzIGJ5cGFzc2VzIHN0YXRlIGNoZWNr
aW5nIGFuZCBzdWNoLCBhbmQgc2VuZHMgYSBoZWFkZXIgcmVnYXJkbGVzcyIiIgorICAgICAgICAi
IiIKKyAgICAgICAgSWdub3JlcyB0aGUgc3RhdGVtYWNoaW5lIG9mIHRoZSBzdHJlYW0gYW5kIHNl
bmRzIGEgSEVBREVSIGZyYW1lIHJlZ2FyZGxlc3MuCisKKyAgICAgICAgVW5saWtlIGB3cml0ZV9o
ZWFkZXJzYCwgdGhpcyBkb2VzIG5vdCBjaGVjayB0byBzZWUgaWYgYSBzdHJlYW0gaXMgaW4gdGhl
IGNvcnJlY3Qgc3RhdGUgdG8gaGF2ZSBIRUFERVIgZnJhbWVzCisgICAgICAgIHNlbnQgdGhyb3Vn
aCB0byBpdC4gSXQgd2lsbCBidWlsZCBhIEhFQURFUiBmcmFtZSBhbmQgc2VuZCBpdCB3aXRob3V0
IHVzaW5nIHRoZSBIMiBDb25uZWN0aW9uIG9iamVjdCBvdGhlciB0aGFuCisgICAgICAgIHRvIEhQ
QUNLIGVuY29kZSB0aGUgaGVhZGVycy4KKworICAgICAgICA6cGFyYW0gaGVhZGVyczogTGlzdCBv
ZiAoaGVhZGVyLCB2YWx1ZSkgdHVwbGVzCisgICAgICAgIDpwYXJhbSBzdHJlYW1faWQ6IElkIG9m
IHN0cmVhbSB0byBzZW5kIGZyYW1lIG9uLiBXaWxsIHVzZSB0aGUgcmVxdWVzdCBzdHJlYW0gSUQg
aWYgTm9uZQorICAgICAgICA6cGFyYW0gZW5kX3N0cmVhbTogU2V0IHRvIFRydWUgdG8gYWRkIEVO
RF9TVFJFQU0gZmxhZyB0byBmcmFtZQorICAgICAgICA6cGFyYW0gZW5kX2hlYWRlcnM6IFNldCB0
byBUcnVlIHRvIGFkZCBFTkRfSEVBREVSUyBmbGFnIHRvIGZyYW1lCisgICAgICAgICIiIgogICAg
ICAgICBpZiBub3Qgc3RyZWFtX2lkOgogICAgICAgICAgICAgc3RyZWFtX2lkID0gc2VsZi5yZXF1
ZXN0LmgyX3N0cmVhbV9pZAogCkBAIC01MDEsNyArNTczLDE3IEBAIGNsYXNzIEgyUmVzcG9uc2VX
cml0ZXIob2JqZWN0KToKICAgICAgICAgICAgIHNlbGYud3JpdGVfcmF3KGRhdGEpCiAKICAgICBk
ZWYgd3JpdGVfcmF3X2RhdGFfZnJhbWUoc2VsZiwgZGF0YSwgc3RyZWFtX2lkPU5vbmUsIGVuZF9z
dHJlYW09RmFsc2UpOgotICAgICAgICAiIiJUaGlzIGJ5cGFzc2VzIHN0YXRlIGNoZWNraW5nIGFu
ZCBzdWNoLCBhbmQgc2VuZHMgYSBkYXRhIGZyYW1lIHJlZ2FyZGxlc3MiIiIKKyAgICAgICAgIiIi
CisgICAgICAgIElnbm9yZXMgdGhlIHN0YXRlbWFjaGluZSBvZiB0aGUgc3RyZWFtIGFuZCBzZW5k
cyBhIERBVEEgZnJhbWUgcmVnYXJkbGVzcy4KKworICAgICAgICBVbmxpa2UgYHdyaXRlX2RhdGFg
LCB0aGlzIGRvZXMgbm90IGNoZWNrIHRvIHNlZSBpZiBhIHN0cmVhbSBpcyBpbiB0aGUgY29ycmVj
dCBzdGF0ZSB0byBoYXZlIERBVEEgZnJhbWVzCisgICAgICAgIHNlbnQgdGhyb3VnaCB0byBpdC4g
SXQgd2lsbCBidWlsZCBhIERBVEEgZnJhbWUgYW5kIHNlbmQgaXQgd2l0aG91dCB1c2luZyB0aGUg
SDIgQ29ubmVjdGlvbiBvYmplY3QuIEl0IHdpbGwKKyAgICAgICAgbm90IHBlcmZvcm0gYW55IGZs
b3cgY29udHJvbCBjaGVja3MuCisKKyAgICAgICAgOnBhcmFtIGRhdGE6IFRoZSBkYXRhIHRvIGJl
IHNlbnQgaW4gdGhlIGZyYW1lCisgICAgICAgIDpwYXJhbSBzdHJlYW1faWQ6IElkIG9mIHN0cmVh
bSB0byBzZW5kIGZyYW1lIG9uLiBXaWxsIHVzZSB0aGUgcmVxdWVzdCBzdHJlYW0gSUQgaWYgTm9u
ZQorICAgICAgICA6cGFyYW0gZW5kX3N0cmVhbTogU2V0IHRvIFRydWUgdG8gYWRkIEVORF9TVFJF
QU0gZmxhZyB0byBmcmFtZQorICAgICAgICAiIiIKICAgICAgICAgaWYgbm90IHN0cmVhbV9pZDoK
ICAgICAgICAgICAgIHN0cmVhbV9pZCA9IHNlbGYucmVxdWVzdC5oMl9zdHJlYW1faWQKIApAQCAt
NTE1LDEzICs1OTcsMjUgQEAgY2xhc3MgSDJSZXNwb25zZVdyaXRlcihvYmplY3QpOgogICAgICAg
ICBzZWxmLndyaXRlX3JhdyhkYXRhKQogCiAgICAgZGVmIHdyaXRlX3Jhd19jb250aW51YXRpb25f
ZnJhbWUoc2VsZiwgaGVhZGVycywgc3RyZWFtX2lkPU5vbmUsIGVuZF9oZWFkZXJzPUZhbHNlKToK
LSAgICAgICAgIiIiVGhpcyBieXBhc3NlcyBzdGF0ZSBjaGVja2luZyBhbmQgc3VjaCwgYW5kIHNl
bmRzIGEgY29udGludWF0aW9uIGZyYW1lIHJlZ2FyZGxlc3MiIiIKKyAgICAgICAgIiIiCisgICAg
ICAgIElnbm9yZXMgdGhlIHN0YXRlbWFjaGluZSBvZiB0aGUgc3RyZWFtIGFuZCBzZW5kcyBhIENP
TlRJTlVBVElPTiBmcmFtZSByZWdhcmRsZXNzLgorCisgICAgICAgIFRoaXMgcHJvdmlkZXMgdGhl
IGFiaWxpdHkgdG8gY3JlYXRlIGFuZCB3cml0ZSBhIENPTlRJTlVBVElPTiBmcmFtZSB0byB0aGUg
c3RyZWFtLCB3aGljaCBpcyBub3QgZXhwb3NlZCBieQorICAgICAgICBgd3JpdGVfaGVhZGVyc2Ag
YXMgdGhlIGgyIGxpYnJhcnkgaGFuZGxlcyB0aGUgc3BsaXQgYmV0d2VlbiBIRUFERVIgYW5kIENP
TlRJTlVBVElPTiBpbnRlcm5hbGx5LiBXaWxsIHBlcmZvcm0KKyAgICAgICAgSFBBQ0sgZW5jb2Rp
bmcgb24gdGhlIGhlYWRlcnMuCisKKyAgICAgICAgOnBhcmFtIGhlYWRlcnM6IExpc3Qgb2YgKGhl
YWRlciwgdmFsdWUpIHR1cGxlcworICAgICAgICA6cGFyYW0gc3RyZWFtX2lkOiBJZCBvZiBzdHJl
YW0gdG8gc2VuZCBmcmFtZSBvbi4gV2lsbCB1c2UgdGhlIHJlcXVlc3Qgc3RyZWFtIElEIGlmIE5v
bmUKKyAgICAgICAgOnBhcmFtIGVuZF9oZWFkZXJzOiBTZXQgdG8gVHJ1ZSB0byBhZGQgRU5EX0hF
QURFUlMgZmxhZyB0byBmcmFtZQorICAgICAgICAiIiIKICAgICAgICAgc2VsZi53cml0ZV9yYXdf
aGVhZGVyX2ZyYW1lKGhlYWRlcnMsIHN0cmVhbV9pZD1zdHJlYW1faWQsIGVuZF9oZWFkZXJzPWVu
ZF9oZWFkZXJzLCBmcmFtZV9jbHM9Q29udGludWF0aW9uRnJhbWUpCiAKIAotICAgIGRlZiBnZXRf
bWF4X3BheWxvYWRfc2l6ZShzZWxmKToKKyAgICBkZWYgZ2V0X21heF9wYXlsb2FkX3NpemUoc2Vs
Ziwgc3RyZWFtX2lkPU5vbmUpOgorICAgICAgICAiIiJSZXR1cm5zIHRoZSBtYXhpbXVtIHNpemUg
b2YgYSBwYXlsb2FkIGZvciB0aGUgZ2l2ZW4gc3RyZWFtLiIiIgorICAgICAgICBzdHJlYW1faWQg
PSBzdHJlYW1faWQgaWYgc3RyZWFtX2lkIGlzIG5vdCBOb25lIGVsc2Ugc2VsZi5yZXF1ZXN0Lmgy
X3N0cmVhbV9pZAogICAgICAgICB3aXRoIHNlbGYuaDJjb25uIGFzIGNvbm5lY3Rpb246Ci0gICAg
ICAgICAgICByZXR1cm4gbWluKGNvbm5lY3Rpb24ucmVtb3RlX3NldHRpbmdzLm1heF9mcmFtZV9z
aXplLCBjb25uZWN0aW9uLmxvY2FsX2Zsb3dfY29udHJvbF93aW5kb3coc2VsZi5yZXF1ZXN0Lmgy
X3N0cmVhbV9pZCkpIC0gOQorICAgICAgICAgICAgcmV0dXJuIG1pbihjb25uZWN0aW9uLnJlbW90
ZV9zZXR0aW5ncy5tYXhfZnJhbWVfc2l6ZSwgY29ubmVjdGlvbi5sb2NhbF9mbG93X2NvbnRyb2xf
d2luZG93KHN0cmVhbV9pZCkpIC0gOQogCiAgICAgZGVmIHdyaXRlKHNlbGYsIGNvbm5lY3Rpb24p
OgogICAgICAgICBzZWxmLmNvbnRlbnRfd3JpdHRlbiA9IFRydWUKQEAgLTU2NSw2ICs2NTksOSBA
QCBjbGFzcyBSZXNwb25zZVdyaXRlcihvYmplY3QpOgogICAgICAgICBzZWxmLmZpbGVfY2h1bmtf
c2l6ZSA9IDMyICogMTAyNAogICAgICAgICBzZWxmLmRlZmF1bHRfc3RhdHVzID0gMjAwCiAKKyAg
ICBkZWYgX3NlZW5faGVhZGVyKHNlbGYsIG5hbWUpOgorICAgICAgICByZXR1cm4gc2VsZi5lbmNv
ZGUobmFtZS5sb3dlcigpKSBpbiBzZWxmLl9oZWFkZXJzX3NlZW4KKwogICAgIGRlZiB3cml0ZV9z
dGF0dXMoc2VsZiwgY29kZSwgbWVzc2FnZT1Ob25lKToKICAgICAgICAgIiIiV3JpdGUgb3V0IHRo
ZSBzdGF0dXMgbGluZSBvZiBhIHJlc3BvbnNlLgogCkBAIC01OTAsMTkgKzY4NywyNSBAQCBjbGFz
cyBSZXNwb25zZVdyaXRlcihvYmplY3QpOgogICAgICAgICAiIiIKICAgICAgICAgaWYgbm90IHNl
bGYuX3N0YXR1c193cml0dGVuOgogICAgICAgICAgICAgc2VsZi53cml0ZV9zdGF0dXMoc2VsZi5k
ZWZhdWx0X3N0YXR1cykKLSAgICAgICAgc2VsZi5faGVhZGVyc19zZWVuLmFkZChuYW1lLmxvd2Vy
KCkpCi0gICAgICAgIHNlbGYud3JpdGUoIiVzOiAlc1xyXG4iICUgKG5hbWUsIHZhbHVlKSkKKyAg
ICAgICAgc2VsZi5faGVhZGVyc19zZWVuLmFkZChzZWxmLmVuY29kZShuYW1lLmxvd2VyKCkpKQor
ICAgICAgICBzZWxmLndyaXRlKG5hbWUpCisgICAgICAgIHNlbGYud3JpdGUoYiI6ICIpCisgICAg
ICAgIGlmIGlzaW5zdGFuY2UodmFsdWUsIGludCk6CisgICAgICAgICAgICBzZWxmLndyaXRlKHRl
eHRfdHlwZSh2YWx1ZSkpCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBzZWxmLndyaXRlKHZh
bHVlKQorICAgICAgICBzZWxmLndyaXRlKGIiXHJcbiIpCiAgICAgICAgIGlmIG5vdCBzZWxmLl9y
ZXNwb25zZS5leHBsaWNpdF9mbHVzaDoKICAgICAgICAgICAgIHNlbGYuZmx1c2goKQogCiAgICAg
ZGVmIHdyaXRlX2RlZmF1bHRfaGVhZGVycyhzZWxmKToKICAgICAgICAgZm9yIG5hbWUsIGYgaW4g
WygiU2VydmVyIiwgc2VsZi5faGFuZGxlci52ZXJzaW9uX3N0cmluZyksCiAgICAgICAgICAgICAg
ICAgICAgICAgICAoIkRhdGUiLCBzZWxmLl9oYW5kbGVyLmRhdGVfdGltZV9zdHJpbmcpXToKLSAg
ICAgICAgICAgIGlmIG5hbWUubG93ZXIoKSBub3QgaW4gc2VsZi5faGVhZGVyc19zZWVuOgorICAg
ICAgICAgICAgaWYgbm90IHNlbGYuX3NlZW5faGVhZGVyKG5hbWUpOgogICAgICAgICAgICAgICAg
IHNlbGYud3JpdGVfaGVhZGVyKG5hbWUsIGYoKSkKIAogICAgICAgICBpZiAoaXNpbnN0YW5jZShz
ZWxmLl9yZXNwb25zZS5jb250ZW50LCAoYmluYXJ5X3R5cGUsIHRleHRfdHlwZSkpIGFuZAotICAg
ICAgICAgICAgImNvbnRlbnQtbGVuZ3RoIiBub3QgaW4gc2VsZi5faGVhZGVyc19zZWVuKToKKyAg
ICAgICAgICAgIG5vdCBzZWxmLl9zZWVuX2hlYWRlcigiY29udGVudC1sZW5ndGgiKSk6CiAgICAg
ICAgICAgICAjV291bGQgYmUgbmljZSB0byBhdm9pZCBkb3VibGUtZW5jb2RpbmcgaGVyZQogICAg
ICAgICAgICAgc2VsZi53cml0ZV9oZWFkZXIoIkNvbnRlbnQtTGVuZ3RoIiwgbGVuKHNlbGYuZW5j
b2RlKHNlbGYuX3Jlc3BvbnNlLmNvbnRlbnQpKSkKIApAQCAtNjE3LDcgKzcyMCw3IEBAIGNsYXNz
IFJlc3BvbnNlV3JpdGVyKG9iamVjdCk6CiAgICAgICAgICAgICBzZWxmLndyaXRlX2RlZmF1bHRf
aGVhZGVycygpCiAKICAgICAgICAgc2VsZi53cml0ZSgiXHJcbiIpCi0gICAgICAgIGlmICJjb250
ZW50LWxlbmd0aCIgbm90IGluIHNlbGYuX2hlYWRlcnNfc2VlbjoKKyAgICAgICAgaWYgbm90IHNl
bGYuX3NlZW5faGVhZGVyKCJjb250ZW50LWxlbmd0aCIpOgogICAgICAgICAgICAgc2VsZi5fcmVz
cG9uc2UuY2xvc2VfY29ubmVjdGlvbiA9IFRydWUKICAgICAgICAgaWYgbm90IHNlbGYuX3Jlc3Bv
bnNlLmV4cGxpY2l0X2ZsdXNoOgogICAgICAgICAgICAgc2VsZi5mbHVzaCgpCkBAIC02NzcsNyAr
NzgwLDcgQEAgY2xhc3MgUmVzcG9uc2VXcml0ZXIob2JqZWN0KToKICAgICAgICAgZWxpZiBpc2lu
c3RhbmNlKGRhdGEsIHRleHRfdHlwZSk6CiAgICAgICAgICAgICByZXR1cm4gZGF0YS5lbmNvZGUo
c2VsZi5fcmVzcG9uc2UuZW5jb2RpbmcpCiAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICByYWlz
ZSBWYWx1ZUVycm9yCisgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCJkYXRhICVyIHNob3Vs
ZCBiZSB0ZXh0IG9yIGJpbmFyeSwgYnV0IGlzICVzIiAlIChkYXRhLCB0eXBlKGRhdGEpKSkKIAog
ICAgIGRlZiBmbHVzaChzZWxmKToKICAgICAgICAgIiIiRmx1c2ggdGhlIG91dHB1dC4gUmV0dXJu
cyBGYWxzZSBpZiB0aGUgZmx1c2ggZmFpbGVkIGR1ZSB0bwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRzZXJ2ZS93cHRzZXJ2
ZS9yb3V0ZXIucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3dwdHNlcnZlL3dwdHNlcnZlL3JvdXRlci5weQppbmRleCA1MTE4YzAzYjcyODMxM2Y3
MDNmNmU5MDAyYzQwMDNmYzBkNmUxZDk4Li41Yjg2MGI1OTQyNTQ4YmM1YWFiODFjZTYzZGJiZGFk
ZGE3OTJkZTkwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3dwdHNlcnZlL3dwdHNlcnZlL3JvdXRlci5weQorKysgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHNlcnZlL3dwdHNl
cnZlL3JvdXRlci5weQpAQCAtMTAyLDcgKzEwMiw3IEBAIGNsYXNzIFJvdXRlcihvYmplY3QpOgog
ICAgICAgICAgICAgc2VsZi5yZWdpc3Rlcigqcm91dGUpCiAKICAgICBkZWYgcmVnaXN0ZXIoc2Vs
ZiwgbWV0aG9kcywgcGF0aCwgaGFuZGxlcik6Ci0gICAgICAgICIiIlJlZ2lzdGVyIGEgaGFuZGxl
ciBmb3IgYSBzZXQgb2YgcGF0aHMuCisgICAgICAgIHIiIiJSZWdpc3RlciBhIGhhbmRsZXIgZm9y
IGEgc2V0IG9mIHBhdGhzLgogCiAgICAgICAgIDpwYXJhbSBtZXRob2RzOiBTZXQgb2YgbWV0aG9k
cyB0aGlzIHNob3VsZCBtYXRjaC4gIioiIGlzIGEKICAgICAgICAgICAgICAgICAgICAgICAgIHNw
ZWNpYWwgdmFsdWUgaW5kaWNhdGluZyB0aGF0IGFsbCBtZXRob2RzIHNob3VsZApkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRz
ZXJ2ZS93cHRzZXJ2ZS9zZXJ2ZXIucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHNlcnZlL3dwdHNlcnZlL3NlcnZlci5weQppbmRleCA4Mzcw
Y2NhMGQzODcyZjVlOWYwZmU2NWE0MDA0OWI1YzQwNjVjYjkxLi5jMDM3NzMyYTZiYWVmMzFkNThi
M2RmZjkyN2IwNzRkZmNmYWJiNGZmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHNlcnZlL3dwdHNlcnZlL3NlcnZlci5weQor
KysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dw
dHNlcnZlL3dwdHNlcnZlL3NlcnZlci5weQpAQCAtMjksNyArMjksOCBAQCBmcm9tIC5yb3V0ZXIg
aW1wb3J0IFJvdXRlcgogZnJvbSAudXRpbHMgaW1wb3J0IEhUVFBFeGNlcHRpb24KIGZyb20gLmNv
bnN0YW50cyBpbXBvcnQgaDJfaGVhZGVycwogCi0iIiJIVFRQIHNlcnZlciBkZXNpZ25lZCBmb3Ig
dGVzdGluZyBwdXJwb3Nlcy4KKyIiIgorSFRUUCBzZXJ2ZXIgZGVzaWduZWQgZm9yIHRlc3Rpbmcg
cHVycG9zZXMuCiAKIFRoZSBzZXJ2ZXIgaXMgZGVzaWduZWQgdG8gcHJvdmlkZSBmbGV4aWJpbGl0
eSBpbiB0aGUgd2F5IHRoYXQKIHJlcXVlc3RzIGFyZSBoYW5kbGVkLCBhbmQgdG8gcHJvdmlkZSBj
b250cm9sIGJvdGggb2YgZXhhY3RseQpAQCAtNDQsNyArNDUsNyBAQCBmb3IgcGFyc2luZyB0aGUg
aW5jb21pbmcgcmVxdWVzdC4gQSBSZXF1ZXN0UmV3cml0ZXIgaXMgdGhlbgogYXBwbGllZCBhbmQg
bWF5IGNoYW5nZSB0aGUgcmVxdWVzdCBkYXRhIGlmIGl0IG1hdGNoZXMgYQogc3VwcGxpZWQgcnVs
ZS4KIAotT25jZSB0aGUgcmVxdWVzdCBkYXRhIGhhZCBiZWVuIGZpbmFsaXNlZCwgUmVxdWVzdCBh
bmQgUmVwb25zZQorT25jZSB0aGUgcmVxdWVzdCBkYXRhIGhhZCBiZWVuIGZpbmFsaXNlZCwgUmVx
dWVzdCBhbmQgUmVzcG9uc2UKIG9iamVjdHMgYXJlIGNvbnN0cnVjdGVkLiBUaGVzZSBhcmUgdXNl
ZCBieSB0aGUgb3RoZXIgcGFydHMgb2YgdGhlCiBzeXN0ZW0gdG8gcmVhZCBpbmZvcm1hdGlvbiBh
Ym91dCB0aGUgcmVxdWVzdCBhbmQgbWFuaXB1bGF0ZSB0aGUKIHJlc3BvbnNlLgpAQCAtNjMsNiAr
NjQsMTIgQEAgaGFuZGxlciByZXR1cm5zLCBvciBmb3IgZGlyZWN0bHkgd3JpdGluZyB0byB0aGUg
b3V0cHV0IHN0cmVhbS4KICIiIgogCiAKK0VESVRfSE9TVFNfSEVMUCA9ICgiUGxlYXNlIGVuc3Vy
ZSBhbGwgdGhlIG5lY2Vzc2FyeSBXUFQgc3ViZG9tYWlucyAiCisgICAgICAgICAgICAgICAgICAi
YXJlIG1hcHBlZCB0byBhIGxvb3BiYWNrIGRldmljZSBpbiAvZXRjL2hvc3RzLiAiCisgICAgICAg
ICAgICAgICAgICAiU2VlIGh0dHBzOi8vZ2l0aHViLmNvbS93ZWItcGxhdGZvcm0tdGVzdHMvd3B0
I3J1bm5pbmctdGhlLXRlc3RzICIKKyAgICAgICAgICAgICAgICAgICJmb3IgaW5zdHJ1Y3Rpb25z
LiIpCisKKwogY2xhc3MgUmVxdWVzdFJld3JpdGVyKG9iamVjdCk6CiAgICAgZGVmIF9faW5pdF9f
KHNlbGYsIHJ1bGVzKToKICAgICAgICAgIiIiT2JqZWN0IGZvciByZXdyaXRpbmcgdGhlIHJlcXVl
c3QgcGF0aC4KQEAgLTE1NCw3ICsxNjEsNyBAQCBjbGFzcyBXZWJUZXN0U2VydmVyKFRocmVhZGlu
Z01peEluLCBCYXNlSFRUUFNlcnZlci5IVFRQU2VydmVyKToKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBwb3J0IHNwZWNpZmllZCBpbiB0aGUgc2VydmVyX2FkZHJlc3MgcGFyYW1ldGVyLgog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZhbHNlIHRvIGJpbmQgdGhlIHNlcnZlciBvbmx5
IHRvIHRoZSBwb3J0IGluIHRoZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlcnZlcl9h
ZGRyZXNzIHBhcmFtZXRlciwgYnV0IG5vdCB0byB0aGUgYWRkcmVzcy4KLSAgICAgICAgOnBhcmFt
IGxhdGVuY3k6IERlbGF5IGluIG1zIHRvIHdhaXQgYmVmb3JlIHNldmluZyBlYWNoIHJlc3BvbnNl
LCBvcgorICAgICAgICA6cGFyYW0gbGF0ZW5jeTogRGVsYXkgaW4gbXMgdG8gd2FpdCBiZWZvcmUg
c2VydmluZyBlYWNoIHJlc3BvbnNlLCBvcgogICAgICAgICAgICAgICAgICAgICAgICAgY2FsbGFi
bGUgdGhhdCByZXR1cm5zIGEgZGVsYXkgaW4gbXMKICAgICAgICAgIiIiCiAgICAgICAgIHNlbGYu
cm91dGVyID0gcm91dGVyCkBAIC0zMjEsOCArMzI4LDE0IEBAIGNsYXNzIEh0dHAyV2ViVGVzdFJl
cXVlc3RIYW5kbGVyKEJhc2VXZWJUZXN0UmVxdWVzdEhhbmRsZXIpOgogCiAgICAgZGVmIGhhbmRs
ZV9vbmVfcmVxdWVzdChzZWxmKToKICAgICAgICAgIiIiCi0gICAgICAgIFRoaXMgaXMgdGhlIG1h
aW4gSFRUUC8yLjAgSGFuZGxlci4gV2hlbiBhIGJyb3dzZXIgb3BlbnMgYSBjb25uZWN0aW9uIHRv
IHRoZSBzZXJ2ZXIKLSAgICAgICAgb24gdGhlIEhUVFAvMi4wIHBvcnQsIEJlY2F1c2UgdGhlcmUg
Y2FuIGJlIG11bHRpcGxlIEgyIGNvbm5lY3Rpb25zIGFjdGl2ZSBhdCB0aGUgc2FtZQorICAgICAg
ICBUaGlzIGlzIHRoZSBtYWluIEhUVFAvMi4wIEhhbmRsZXIuCisKKyAgICAgICAgV2hlbiBhIGJy
b3dzZXIgb3BlbnMgYSBjb25uZWN0aW9uIHRvIHRoZSBzZXJ2ZXIKKyAgICAgICAgb24gdGhlIEhU
VFAvMi4wIHBvcnQsIHRoZSBzZXJ2ZXIgZW50ZXJzIHRoaXMgd2hpY2ggd2lsbCBpbml0aWF0ZSB0
aGUgaDIgY29ubmVjdGlvbgorICAgICAgICBhbmQga2VlcCBydW5uaW5nIHRocm91Z2hvdXQgdGhl
IGR1cmF0aW9uIG9mIHRoZSBpbnRlcmFjdGlvbiwgYW5kIHdpbGwgcmVhZC93cml0ZSBkaXJlY3Rs
eQorICAgICAgICBmcm9tIHRoZSBzb2NrZXQuCisKKyAgICAgICAgQmVjYXVzZSB0aGVyZSBjYW4g
YmUgbXVsdGlwbGUgSDIgY29ubmVjdGlvbnMgYWN0aXZlIGF0IHRoZSBzYW1lCiAgICAgICAgIHRp
bWUsIGEgVVVJRCBpcyBjcmVhdGVkIGZvciBlYWNoIHNvIHRoYXQgaXQgaXMgZWFzaWVyIHRvIHRl
bGwgdGhlbSBhcGFydCBpbiB0aGUgbG9ncy4KICAgICAgICAgIiIiCiAKQEAgLTMzOCw2ICszNTEs
NyBAQCBjbGFzcyBIdHRwMldlYlRlc3RSZXF1ZXN0SGFuZGxlcihCYXNlV2ViVGVzdFJlcXVlc3RI
YW5kbGVyKToKICAgICAgICAgd2l0aCBzZWxmLmNvbm4gYXMgY29ubmVjdGlvbjoKICAgICAgICAg
ICAgIGNvbm5lY3Rpb24uaW5pdGlhdGVfY29ubmVjdGlvbigpCiAgICAgICAgICAgICBkYXRhID0g
Y29ubmVjdGlvbi5kYXRhX3RvX3NlbmQoKQorICAgICAgICAgICAgd2luZG93X3NpemUgPSBjb25u
ZWN0aW9uLnJlbW90ZV9zZXR0aW5ncy5pbml0aWFsX3dpbmRvd19zaXplCiAKICAgICAgICAgc2Vs
Zi5yZXF1ZXN0LnNlbmRhbGwoZGF0YSkKIApAQCAtMzQ2LDExICszNjAsMTUgQEAgY2xhc3MgSHR0
cDJXZWJUZXN0UmVxdWVzdEhhbmRsZXIoQmFzZVdlYlRlc3RSZXF1ZXN0SGFuZGxlcik6CiAKICAg
ICAgICAgdHJ5OgogICAgICAgICAgICAgd2hpbGUgbm90IHNlbGYuY2xvc2VfY29ubmVjdGlvbjoK
LSAgICAgICAgICAgICAgICAjIFRoaXMgc2l6ZSBtYXkgbmVlZCB0byBiZSBtYWRlIHZhcmlhYmxl
IGJhc2VkIG9uIHJlbW90ZSBzZXR0aW5ncz8KLSAgICAgICAgICAgICAgICBkYXRhID0gc2VsZi5y
ZXF1ZXN0LnJlY3YoNjU1MzUpCisgICAgICAgICAgICAgICAgZGF0YSA9IHNlbGYucmVxdWVzdC5y
ZWN2KHdpbmRvd19zaXplKQorICAgICAgICAgICAgICAgIGlmIGRhdGEgPT0gJyc6CisgICAgICAg
ICAgICAgICAgICAgIHNlbGYubG9nZ2VyLmRlYnVnKCcoJXMpIFNvY2tldCBDbG9zZWQnICUgc2Vs
Zi51aWQpCisgICAgICAgICAgICAgICAgICAgIHNlbGYuY2xvc2VfY29ubmVjdGlvbiA9IFRydWUK
KyAgICAgICAgICAgICAgICAgICAgY29udGludWUKIAogICAgICAgICAgICAgICAgIHdpdGggc2Vs
Zi5jb25uIGFzIGNvbm5lY3Rpb246CiAgICAgICAgICAgICAgICAgICAgIGZyYW1lcyA9IGNvbm5l
Y3Rpb24ucmVjZWl2ZV9kYXRhKGRhdGEpCisgICAgICAgICAgICAgICAgICAgIHdpbmRvd19zaXpl
ID0gY29ubmVjdGlvbi5yZW1vdGVfc2V0dGluZ3MuaW5pdGlhbF93aW5kb3dfc2l6ZQogCiAgICAg
ICAgICAgICAgICAgc2VsZi5sb2dnZXIuZGVidWcoJyglcykgRnJhbWVzIFJlY2VpdmVkOiAnICUg
c2VsZi51aWQgKyBzdHIoZnJhbWVzKSkKIApAQCAtMzg1LDYgKzQwMywxMiBAQCBjbGFzcyBIdHRw
MldlYlRlc3RSZXF1ZXN0SGFuZGxlcihCYXNlV2ViVGVzdFJlcXVlc3RIYW5kbGVyKToKICAgICAg
ICAgICAgICAgICB0aHJlYWQuam9pbigpCiAKICAgICBkZWYgc3RhcnRfc3RyZWFtX3RocmVhZChz
ZWxmLCBmcmFtZSwgcXVldWUpOgorICAgICAgICAiIiIKKyAgICAgICAgVGhpcyBzdGFydHMgYSBu
ZXcgdGhyZWFkIHRvIGhhbmRsZSBmcmFtZXMgZm9yIGEgc3BlY2lmaWMgc3RyZWFtLgorICAgICAg
ICA6cGFyYW0gZnJhbWU6IFRoZSBmaXJzdCBmcmFtZSBvbiB0aGUgc3RyZWFtCisgICAgICAgIDpw
YXJhbSBxdWV1ZTogQSBxdWV1ZSBvYmplY3QgdGhhdCB0aGUgdGhyZWFkIHdpbGwgdXNlIHRvIGNo
ZWNrIGZvciBuZXcgZnJhbWVzCisgICAgICAgIDpyZXR1cm46IFRoZSB0aHJlYWQgb2JqZWN0IHRo
YXQgaGFzIGFscmVhZHkgYmVlbiBzdGFydGVkCisgICAgICAgICIiIgogICAgICAgICB0ID0gdGhy
ZWFkaW5nLlRocmVhZCgKICAgICAgICAgICAgIHRhcmdldD1IdHRwMldlYlRlc3RSZXF1ZXN0SGFu
ZGxlci5fc3RyZWFtX3RocmVhZCwKICAgICAgICAgICAgIGFyZ3M9KHNlbGYsIGZyYW1lLnN0cmVh
bV9pZCwgcXVldWUpCkBAIC00OTMsNyArNTE3LDYgQEAgY2xhc3MgSDJIZWFkZXJzKGRpY3QpOgog
CiAKIGNsYXNzIEgySGFuZGxlckNvcHkob2JqZWN0KToKLQogICAgIGRlZiBfX2luaXRfXyhzZWxm
LCBoYW5kbGVyLCByZXFfZnJhbWUsIHJmaWxlKToKICAgICAgICAgc2VsZi5oZWFkZXJzID0gSDJI
ZWFkZXJzKHJlcV9mcmFtZS5oZWFkZXJzKQogICAgICAgICBzZWxmLmNvbW1hbmQgPSBzZWxmLmhl
YWRlcnNbJ21ldGhvZCddCkBAIC01MzIsNyArNTU1LDcgQEAgY2xhc3MgSHR0cDFXZWJUZXN0UmVx
dWVzdEhhbmRsZXIoQmFzZVdlYlRlc3RSZXF1ZXN0SGFuZGxlcik6CiAgICAgICAgICAgICBzZWxm
LmNsb3NlX2Nvbm5lY3Rpb24gPSBUcnVlCiAgICAgICAgICAgICByZXR1cm4KIAotICAgICAgICBl
eGNlcHQgRXhjZXB0aW9uIGFzIGU6CisgICAgICAgIGV4Y2VwdCBFeGNlcHRpb246CiAgICAgICAg
ICAgICBlcnIgPSB0cmFjZWJhY2suZm9ybWF0X2V4YygpCiAgICAgICAgICAgICBpZiByZXNwb25z
ZToKICAgICAgICAgICAgICAgICByZXNwb25zZS5zZXRfZXJyb3IoNTAwLCBlcnIpCkBAIC01NzUs
NyArNTk4LDcgQEAgY2xhc3MgV2ViVGVzdEh0dHBkKG9iamVjdCk6CiAgICAgOnBhcmFtIGNvbmZp
ZzogRGljdGlvbmFyeSBob2xkaW5nIGVudmlyb25tZW50IGNvbmZpZ3VyYXRpb24gc2V0dGluZ3Mg
Zm9yCiAgICAgICAgICAgICAgICAgICAgaGFuZGxlcnMgdG8gcmVhZCwgb3IgTm9uZSB0byB1c2Ug
dGhlIGRlZmF1bHQgdmFsdWVzLgogICAgIDpwYXJhbSBiaW5kX2FkZHJlc3M6IEJvb2xlYW4gaW5k
aWNhdGluZyB3aGV0aGVyIHRvIGJpbmQgc2VydmVyIHRvIElQIGFkZHJlc3MuCi0gICAgOnBhcmFt
IGxhdGVuY3k6IERlbGF5IGluIG1zIHRvIHdhaXQgYmVmb3JlIHNldmluZyBlYWNoIHJlc3BvbnNl
LCBvcgorICAgIDpwYXJhbSBsYXRlbmN5OiBEZWxheSBpbiBtcyB0byB3YWl0IGJlZm9yZSBzZXJ2
aW5nIGVhY2ggcmVzcG9uc2UsIG9yCiAgICAgICAgICAgICAgICAgICAgIGNhbGxhYmxlIHRoYXQg
cmV0dXJucyBhIGRlbGF5IGluIG1zCiAKICAgICBIVFRQIHNlcnZlciBkZXNpZ25lZCBmb3IgdGVz
dGluZyBzY2VuYXJpb3MuCkBAIC02MDUsNyArNjI4LDcgQEAgY2xhc3MgV2ViVGVzdEh0dHBkKG9i
amVjdCk6CiAKICAgICAuLiBhdHRyaWJ1dGU6OiBzdGFydGVkCiAKLSAgICAgIEJvb2xlYW4gaW5k
aWN0YWluZyB3aGV0aGVyIHRoZSBzZXJ2ZXIgaXMgcnVubmluZworICAgICAgQm9vbGVhbiBpbmRp
Y2F0aW5nIHdoZXRoZXIgdGhlIHNlcnZlciBpcyBydW5uaW5nCiAKICAgICAiIiIKICAgICBkZWYg
X19pbml0X18oc2VsZiwgaG9zdD0iMTI3LjAuMC4xIiwgcG9ydD04MDAwLApAQCAtNjUzLDggKzY3
Niw3IEBAIGNsYXNzIFdlYlRlc3RIdHRwZChvYmplY3QpOgogCiAgICAgICAgICAgICBfaG9zdCwg
c2VsZi5wb3J0ID0gc2VsZi5odHRwZC5zb2NrZXQuZ2V0c29ja25hbWUoKQogICAgICAgICBleGNl
cHQgRXhjZXB0aW9uOgotICAgICAgICAgICAgc2VsZi5sb2dnZXIuZXJyb3IoIkZhaWxlZCB0byBz
dGFydCBIVFRQIHNlcnZlci4gIgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIllvdSBt
YXkgbmVlZCB0byBlZGl0IC9ldGMvaG9zdHMgb3Igc2ltaWxhciwgc2VlIFJFQURNRS5tZC4iKQor
ICAgICAgICAgICAgc2VsZi5sb2dnZXIuY3JpdGljYWwoIkZhaWxlZCB0byBzdGFydCBIVFRQIHNl
cnZlci4ge30iLmZvcm1hdChFRElUX0hPU1RTX0hFTFApKQogICAgICAgICAgICAgcmFpc2UKIAog
ICAgIGRlZiBzdGFydChzZWxmLCBibG9jaz1GYWxzZSk6CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHNlcnZlL3dwdHNlcnZl
L3NzbHV0aWxzL19faW5pdF9fLnB5IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy90b29scy93cHRzZXJ2ZS93cHRzZXJ2ZS9zc2x1dGlscy9fX2luaXRfXy5weQpp
bmRleCA2Njk5ZWRiNTk2NDUzMGU3ZTM1MjQ5N2RlNDNmZjFlMTU0YjUyYTFkLi5lODliYjk2Zjgy
ZmJjYzA5YTBhYzc5MmJlZGFlOGM2NGU4MzhkOGFhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHNlcnZlL3dwdHNlcnZlL3Nz
bHV0aWxzL19faW5pdF9fLnB5CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvd3B0c2VydmUvd3B0c2VydmUvc3NsdXRpbHMvX19pbml0X18ucHkK
QEAgLTExLDQgKzExLDQgQEAgZGVmIGdldF9jbHMobmFtZSk6CiAgICAgdHJ5OgogICAgICAgICBy
ZXR1cm4gZW52aXJvbm1lbnRzW25hbWVdCiAgICAgZXhjZXB0IEtleUVycm9yOgotICAgICAgICBy
YWlzZSBWYWx1ZUVycm9yKCIlcyBpcyBub3QgYSB2YWlkIHNzbCB0eXBlLiIgJSBuYW1lKQorICAg
ICAgICByYWlzZSBWYWx1ZUVycm9yKCIlcyBpcyBub3QgYSB2YWxpZCBTU0wgdHlwZS4iICUgbmFt
ZSkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvdG9vbHMvd3B0c2VydmUvd3B0c2VydmUvc3NsdXRpbHMvYmFzZS5weSBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0c2VydmUvd3B0c2VydmUv
c3NsdXRpbHMvYmFzZS5weQppbmRleCBjOTViNjkzZjM3MTIzMTc4YzMzZjkzMTI1ZTdkOGRmNDY4
OTlkYjNjLi42M2VmNDVjYzg2OWFjZTMwNmUwODMxZDEyNDgzYTllYWZlMjU2NTM5IDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dw
dHNlcnZlL3dwdHNlcnZlL3NzbHV0aWxzL2Jhc2UucHkKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRzZXJ2ZS93cHRzZXJ2ZS9zc2x1dGls
cy9iYXNlLnB5CkBAIC0xMyw1ICsxMyw1IEBAIGNsYXNzIE5vU1NMRW52aXJvbm1lbnQob2JqZWN0
KToKICAgICBkZWYgaG9zdF9jZXJ0X3BhdGgoc2VsZiwgaG9zdHMpOgogICAgICAgICByZXR1cm4g
Tm9uZSwgTm9uZQogCi0gICAgZGVmIGNhX2NlcnRfcGF0aChzZWxmKToKKyAgICBkZWYgY2FfY2Vy
dF9wYXRoKHNlbGYsIGhvc3RzKToKICAgICAgICAgcmV0dXJuIE5vbmUKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0c2VydmUv
d3B0c2VydmUvc3NsdXRpbHMvb3BlbnNzbC5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0c2VydmUvd3B0c2VydmUvc3NsdXRpbHMvb3BlbnNz
bC5weQppbmRleCBlYmJjZjY4ZDcxNmQxZGE3NTIyMTU3ZmQ5ZTMwYmIxZmJkMTg1YTE1Li5hZWEx
YzczODBiMTc5Y2VkMTM2NmI2NjE3MDU3NTc4YjM1ZDllMTRiIDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHNlcnZlL3dwdHNl
cnZlL3NzbHV0aWxzL29wZW5zc2wucHkKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRzZXJ2ZS93cHRzZXJ2ZS9zc2x1dGlscy9vcGVuc3Ns
LnB5CkBAIC02LDcgKzYsNyBAQCBpbXBvcnQgc3VicHJvY2VzcwogaW1wb3J0IHRlbXBmaWxlCiBm
cm9tIGRhdGV0aW1lIGltcG9ydCBkYXRldGltZSwgdGltZWRlbHRhCiAKLWZyb20gc2l4IGltcG9y
dCBpdGVyaXRlbXMKK2Zyb20gc2l4IGltcG9ydCBpdGVyaXRlbXMsIFBZMgogCiAjIEFtb3VudCBv
ZiB0aW1lIGJleW9uZCB0aGUgcHJlc2VudCB0byBjb25zaWRlciBjZXJ0aWZpY2F0ZXMgImV4cGly
ZWQuIiBUaGlzCiAjIGFsbG93cyBjZXJ0aWZpY2F0ZXMgdG8gYmUgcHJvYWN0aXZlbHkgcmUtZ2Vu
ZXJhdGVkIGluIHRoZSAiYnVmZmVyIiBwZXJpb2QKQEAgLTE0LDYgKzE0LDE3IEBAIGZyb20gc2l4
IGltcG9ydCBpdGVyaXRlbXMKIENFUlRfRVhQSVJZX0JVRkZFUiA9IGRpY3QoaG91cnM9NikKIAog
CitkZWYgX2Vuc3VyZV9zdHIocywgZW5jb2RpbmcpOgorICAgICIiIm1ha2VzIHN1cmUgcyBpcyBh
biBpbnN0YW5jZSBvZiBzdHIsIGNvbnZlcnRpbmcgd2l0aCBlbmNvZGluZyBpZiBuZWVkZWQiIiIK
KyAgICBpZiBpc2luc3RhbmNlKHMsIHN0cik6CisgICAgICAgIHJldHVybiBzCisKKyAgICBpZiBQ
WTI6CisgICAgICAgIHJldHVybiBzLmVuY29kZShlbmNvZGluZykKKyAgICBlbHNlOgorICAgICAg
ICByZXR1cm4gcy5kZWNvZGUoZW5jb2RpbmcpCisKKwogY2xhc3MgT3BlblNTTChvYmplY3QpOgog
ICAgIGRlZiBfX2luaXRfXyhzZWxmLCBsb2dnZXIsIGJpbmFyeSwgYmFzZV9wYXRoLCBjb25mX3Bh
dGgsIGhvc3RzLCBkdXJhdGlvbiwKICAgICAgICAgICAgICAgICAgYmFzZV9jb25mX3BhdGg9Tm9u
ZSk6CkBAIC02NSwxOCArNzYsMTQgQEAgY2xhc3MgT3BlblNTTChvYmplY3QpOgogICAgICAgICAg
ICAgc2VsZi5jbWQgKz0gWyItY29uZmlnIiwgc2VsZi5jb25mX3BhdGhdCiAgICAgICAgIHNlbGYu
Y21kICs9IGxpc3QoYXJncykKIAotICAgICAgICAjIENvcHkgdGhlIGVudmlyb25tZW50LCBjb252
ZXJ0aW5nIHRvIHBsYWluIHN0cmluZ3MuIFdpbmRvd3MKLSAgICAgICAgIyBTdGFydFByb2Nlc3Mg
aXMgcGlja3kgYWJvdXQgYWxsIHRoZSBrZXlzL3ZhbHVlcyBiZWluZyBwbGFpbiBzdHJpbmdzLAot
ICAgICAgICAjIGJ1dCBhdCBsZWFzdCBpbiBNU1lTIHNoZWxscywgdGhlIG9zLmVudmlyb24gZGlj
dGlvbmFyeSBjYW4gYmUgbWl4ZWQuCisgICAgICAgICMgQ29weSB0aGUgZW52aXJvbm1lbnQsIGNv
bnZlcnRpbmcgdG8gcGxhaW4gc3RyaW5ncy4gV2luMzIgU3RhcnRQcm9jZXNzCisgICAgICAgICMg
aXMgcGlja3kgYWJvdXQgYWxsIHRoZSBrZXlzL3ZhbHVlcyBiZWluZyBzdHIgKG9uIGJvdGggUHky
LzMpLgogICAgICAgICBlbnYgPSB7fQogICAgICAgICBmb3IgaywgdiBpbiBpdGVyaXRlbXMob3Mu
ZW52aXJvbik6Ci0gICAgICAgICAgICB0cnk6Ci0gICAgICAgICAgICAgICAgZW52W2suZW5jb2Rl
KCJ1dGY4IildID0gdi5lbmNvZGUoInV0ZjgiKQotICAgICAgICAgICAgZXhjZXB0IFVuaWNvZGVE
ZWNvZGVFcnJvcjoKLSAgICAgICAgICAgICAgICBwYXNzCisgICAgICAgICAgICBlbnZbX2Vuc3Vy
ZV9zdHIoaywgInV0ZjgiKV0gPSBfZW5zdXJlX3N0cih2LCAidXRmOCIpCiAKICAgICAgICAgaWYg
c2VsZi5iYXNlX2NvbmZfcGF0aCBpcyBub3QgTm9uZToKLSAgICAgICAgICAgIGVudlsiT1BFTlNT
TF9DT05GIl0gPSBzZWxmLmJhc2VfY29uZl9wYXRoLmVuY29kZSgidXRmOCIpCisgICAgICAgICAg
ICBlbnZbIk9QRU5TU0xfQ09ORiJdID0gX2Vuc3VyZV9zdHIoc2VsZi5iYXNlX2NvbmZfcGF0aCwg
InV0Zi04IikKIAogICAgICAgICBzZWxmLnByb2MgPSBzdWJwcm9jZXNzLlBvcGVuKHNlbGYuY21k
LCBzdGRvdXQ9c3VicHJvY2Vzcy5QSVBFLCBzdGRlcnI9c3VicHJvY2Vzcy5TVERPVVQsCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW52PWVudikKQEAgLTExNCwxNiArMTIx
LDE4IEBAIGRlZiBtYWtlX3N1YmplY3QoY29tbW9uX25hbWUsCiAgICAgcmV0dXJuICIiLmpvaW4o
cnYpCiAKIGRlZiBtYWtlX2FsdF9uYW1lcyhob3N0cyk6Ci0gICAgcnYgPSBbXQotICAgIGZvciBu
YW1lIGluIGhvc3RzOgotICAgICAgICBydi5hcHBlbmQoIkROUzolcyIgJSBuYW1lKQotICAgIHJl
dHVybiAiLCIuam9pbihydikKKyAgICByZXR1cm4gIiwiLmpvaW4oIkROUzolcyIgJSBob3N0IGZv
ciBob3N0IGluIGhvc3RzKQorCitkZWYgbWFrZV9uYW1lX2NvbnN0cmFpbnRzKGhvc3RzKToKKyAg
ICByZXR1cm4gIiwiLmpvaW4oInBlcm1pdHRlZDtETlM6JXMiICUgaG9zdCBmb3IgaG9zdCBpbiBo
b3N0cykKIAogZGVmIGdldF9jb25maWcocm9vdF9kaXIsIGhvc3RzLCBkdXJhdGlvbj0zMCk6CiAg
ICAgaWYgaG9zdHMgaXMgTm9uZToKICAgICAgICAgc2FuX2xpbmUgPSAiIgorICAgICAgICBjb25z
dHJhaW50c19saW5lID0gIiIKICAgICBlbHNlOgogICAgICAgICBzYW5fbGluZSA9ICJzdWJqZWN0
QWx0TmFtZSA9ICVzIiAlIG1ha2VfYWx0X25hbWVzKGhvc3RzKQorICAgICAgICBjb25zdHJhaW50
c19saW5lID0gIm5hbWVDb25zdHJhaW50cyA9ICIgKyBtYWtlX25hbWVfY29uc3RyYWludHMoaG9z
dHMpCiAKICAgICBpZiBvcy5wYXRoLnNlcCA9PSAiXFwiOgogICAgICAgICAjIFRoaXMgc2VlbXMg
dG8gYmUgbmVlZGVkIGZvciB0aGUgU2hpbmluZyBMaWdodCBPcGVuU1NMIG9uCkBAIC0yMTMsOSAr
MjIyLDExIEBAIGJhc2ljQ29uc3RyYWludHMgPSBDQTp0cnVlCiBzdWJqZWN0S2V5SWRlbnRpZmll
cj1oYXNoCiBhdXRob3JpdHlLZXlJZGVudGlmaWVyPWtleWlkOmFsd2F5cyxpc3N1ZXI6YWx3YXlz
CiBrZXlVc2FnZSA9IGtleUNlcnRTaWduCislKGNvbnN0cmFpbnRzX2xpbmUpcwogIiIiICUgeyJy
b290X2RpciI6IHJvb3RfZGlyLAogICAgICAgICJzYW5fbGluZSI6IHNhbl9saW5lLAogICAgICAg
ICJkdXJhdGlvbiI6IGR1cmF0aW9uLAorICAgICAgICJjb25zdHJhaW50c19saW5lIjogY29uc3Ry
YWludHNfbGluZSwKICAgICAgICAic2VwIjogb3MucGF0aC5zZXAucmVwbGFjZSgiXFwiLCAiXFxc
XCIpfQogCiAgICAgcmV0dXJuIHJ2CkBAIC0yODcsMTMgKzI5OCwxMyBAQCBjbGFzcyBPcGVuU1NM
RW52aXJvbm1lbnQob2JqZWN0KToKICAgICAgICAgcmV0dXJuIE9wZW5TU0woc2VsZi5sb2dnZXIs
IHNlbGYuYmluYXJ5LCBzZWxmLmJhc2VfcGF0aCwgY29uZl9wYXRoLCBob3N0cywKICAgICAgICAg
ICAgICAgICAgICAgICAgc2VsZi5kdXJhdGlvbiwgc2VsZi5iYXNlX2NvbmZfcGF0aCkKIAotICAg
IGRlZiBjYV9jZXJ0X3BhdGgoc2VsZik6CisgICAgZGVmIGNhX2NlcnRfcGF0aChzZWxmLCBob3N0
cyk6CiAgICAgICAgICIiIkdldCB0aGUgcGF0aCB0byB0aGUgQ0EgY2VydGlmaWNhdGUgZmlsZSwg
Z2VuZXJhdGluZyBhCiAgICAgICAgIG5ldyBvbmUgaWYgbmVlZGVkIiIiCiAgICAgICAgIGlmIHNl
bGYuX2NhX2NlcnRfcGF0aCBpcyBOb25lIGFuZCBub3Qgc2VsZi5mb3JjZV9yZWdlbmVyYXRlOgog
ICAgICAgICAgICAgc2VsZi5fbG9hZF9jYV9jZXJ0KCkKICAgICAgICAgaWYgc2VsZi5fY2FfY2Vy
dF9wYXRoIGlzIE5vbmU6Ci0gICAgICAgICAgICBzZWxmLl9nZW5lcmF0ZV9jYSgpCisgICAgICAg
ICAgICBzZWxmLl9nZW5lcmF0ZV9jYShob3N0cykKICAgICAgICAgcmV0dXJuIHNlbGYuX2NhX2Nl
cnRfcGF0aAogCiAgICAgZGVmIF9sb2FkX2NhX2NlcnQoc2VsZik6CkBAIC0zMjYsNyArMzM3LDcg
QEAgY2xhc3MgT3BlblNTTEVudmlyb25tZW50KG9iamVjdCk6CiAgICAgICAgICNUT0RPOiBjaGVj
ayB0aGUga2V5IGFjdHVhbGx5IHNpZ25lZCB0aGUgY2VydC4KICAgICAgICAgcmV0dXJuIFRydWUK
IAotICAgIGRlZiBfZ2VuZXJhdGVfY2Eoc2VsZik6CisgICAgZGVmIF9nZW5lcmF0ZV9jYShzZWxm
LCBob3N0cyk6CiAgICAgICAgIHBhdGggPSBzZWxmLnBhdGgKICAgICAgICAgc2VsZi5sb2dnZXIu
aW5mbygiR2VuZXJhdGluZyBuZXcgQ0EgaW4gJXMiICUgc2VsZi5iYXNlX3BhdGgpCiAKQEAgLTMz
NCw3ICszNDUsNyBAQCBjbGFzcyBPcGVuU1NMRW52aXJvbm1lbnQob2JqZWN0KToKICAgICAgICAg
cmVxX3BhdGggPSBwYXRoKCJjYXJlcS5wZW0iKQogICAgICAgICBjZXJ0X3BhdGggPSBwYXRoKCJj
YWNlcnQucGVtIikKIAotICAgICAgICB3aXRoIHNlbGYuX2NvbmZpZ19vcGVuc3NsKE5vbmUpIGFz
IG9wZW5zc2w6CisgICAgICAgIHdpdGggc2VsZi5fY29uZmlnX29wZW5zc2woaG9zdHMpIGFzIG9w
ZW5zc2w6CiAgICAgICAgICAgICBvcGVuc3NsKCJyZXEiLAogICAgICAgICAgICAgICAgICAgICAi
LWJhdGNoIiwKICAgICAgICAgICAgICAgICAgICAgIi1uZXciLApAQCAtMzUxLDYgKzM2Miw3IEBA
IGNsYXNzIE9wZW5TU0xFbnZpcm9ubWVudChvYmplY3QpOgogICAgICAgICAgICAgICAgICAgICAi
LXBhc3NpbiIsICJwYXNzOiVzIiAlIHNlbGYucGFzc3dvcmQsCiAgICAgICAgICAgICAgICAgICAg
ICItc2VsZnNpZ24iLAogICAgICAgICAgICAgICAgICAgICAiLWV4dGVuc2lvbnMiLCAidjNfY2Ei
LAorICAgICAgICAgICAgICAgICAgICAiLW5vdGV4dCIsCiAgICAgICAgICAgICAgICAgICAgICIt
aW4iLCByZXFfcGF0aCwKICAgICAgICAgICAgICAgICAgICAgIi1vdXQiLCBjZXJ0X3BhdGgpCiAK
QEAgLTM5MSw3ICs0MDMsNyBAQCBjbGFzcyBPcGVuU1NMRW52aXJvbm1lbnQob2JqZWN0KToKICAg
ICBkZWYgX2dlbmVyYXRlX2hvc3RfY2VydChzZWxmLCBob3N0cyk6CiAgICAgICAgIGhvc3QgPSBo
b3N0c1swXQogICAgICAgICBpZiBzZWxmLl9jYV9rZXlfcGF0aCBpcyBOb25lOgotICAgICAgICAg
ICAgc2VsZi5fZ2VuZXJhdGVfY2EoKQorICAgICAgICAgICAgc2VsZi5fZ2VuZXJhdGVfY2EoaG9z
dHMpCiAgICAgICAgIGNhX2tleV9wYXRoID0gc2VsZi5fY2Ffa2V5X3BhdGgKIAogICAgICAgICBh
c3NlcnQgb3MucGF0aC5leGlzdHMoY2Ffa2V5X3BhdGgpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHNlcnZlL3dwdHNlcnZl
L3NzbHV0aWxzL3ByZWdlbmVyYXRlZC5weSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0c2VydmUvd3B0c2VydmUvc3NsdXRpbHMvcHJlZ2VuZXJh
dGVkLnB5CmluZGV4IGZjNDg3ZGYzYWRkMDM5MWMzZWY3MWI2OWVkOWYzNzczNGYxNDI4OTEuLjY3
MmExMDYzNWVkMGI4ZjIxMDY1ODk1NDgyZjdiNzk2NTY5MGUwZDYgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0c2VydmUvd3B0
c2VydmUvc3NsdXRpbHMvcHJlZ2VuZXJhdGVkLnB5CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0c2VydmUvd3B0c2VydmUvc3NsdXRpbHMv
cHJlZ2VuZXJhdGVkLnB5CkBAIC0yMCw3ICsyMCw3IEBAIGNsYXNzIFByZWdlbmVyYXRlZFNTTEVu
dmlyb25tZW50KG9iamVjdCk6CiAgICAgICAgICIiIlJldHVybiB0aGUga2V5IGFuZCBjZXJ0aWZp
Y2F0ZSBwYXRocyBmb3IgdGhlIGhvc3QiIiIKICAgICAgICAgcmV0dXJuIHNlbGYuX2hvc3Rfa2V5
X3BhdGgsIHNlbGYuX2hvc3RfY2VydF9wYXRoCiAKLSAgICBkZWYgY2FfY2VydF9wYXRoKHNlbGYp
OgorICAgIGRlZiBjYV9jZXJ0X3BhdGgoc2VsZiwgaG9zdHMpOgogICAgICAgICAiIiJSZXR1cm4g
dGhlIGNlcnRpZmljYXRlIHBhdGggb2YgdGhlIENBIHRoYXQgc2lnbmVkIHRoZQogICAgICAgICBo
b3N0IGNlcnRpZmljYXRlcywgb3IgTm9uZSBpZiB0aGF0IGlzbid0IGtub3duIiIiCiAgICAgICAg
IHJldHVybiBzZWxmLl9jYV9jZXJ0X3BhdGgKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0c2VydmUvd3B0c2VydmUvc3NsdXRp
bHMvdzNjLWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3dwdHNlcnZlL3dwdHNlcnZlL3NzbHV0aWxzL3czYy1pbXBvcnQubG9nCmlu
ZGV4IDg3NzViYmI2MDIzNjFhYTQ0MzNlMGRlMWI2NDE2ZWM2YWMzMDU0NjYuLjQzODkxZjEyMDM4
ZGQ5ZmYyMDlhZjBlNTAyNjlkNGE5YjAyMjFkOTkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0c2VydmUvd3B0c2VydmUvc3Ns
dXRpbHMvdzNjLWltcG9ydC5sb2cKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy90b29scy93cHRzZXJ2ZS93cHRzZXJ2ZS9zc2x1dGlscy93M2MtaW1wb3J0
LmxvZwpAQCAtMTUsNiArMTUsMTAgQEAgTm9uZQogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiBMaXN0IG9mIGZp
bGVzOgogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
d3B0c2VydmUvd3B0c2VydmUvc3NsdXRpbHMvX19pbml0X18ucHkKKy9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHNlcnZlL3dwdHNlcnZlL3NzbHV0
aWxzL19faW5pdF9fLnB5YwogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvd3B0c2VydmUvd3B0c2VydmUvc3NsdXRpbHMvYmFzZS5weQorL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0c2VydmUvd3B0c2Vy
dmUvc3NsdXRpbHMvYmFzZS5weWMKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3Rvb2xzL3dwdHNlcnZlL3dwdHNlcnZlL3NzbHV0aWxzL29wZW5zc2wucHkKKy9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHNlcnZl
L3dwdHNlcnZlL3NzbHV0aWxzL29wZW5zc2wucHljCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRzZXJ2ZS93cHRzZXJ2ZS9zc2x1dGlscy9wcmVn
ZW5lcmF0ZWQucHkKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3dwdHNlcnZlL3dwdHNlcnZlL3NzbHV0aWxzL3ByZWdlbmVyYXRlZC5weWMKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
d3B0c2VydmUvd3B0c2VydmUvc3Rhc2gucHkgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHNlcnZlL3dwdHNlcnZlL3N0YXNoLnB5CmluZGV4IGFl
NDhhODYxMTIzMzNiYjVmZmNkZjc2YzEwMGQ5MjlkZTJiNmZkOTEuLjhiNmZkMzRmMDJjMGU5Yjcw
NzNkMGM5NDAxMTcwN2VhYTRlNWExZjEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0c2VydmUvd3B0c2VydmUvc3Rhc2gucHkK
KysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93
cHRzZXJ2ZS93cHRzZXJ2ZS9zdGFzaC5weQpAQCAtNiwyMyArNiwyOSBAQCBpbXBvcnQgdGhyZWFk
aW5nCiBmcm9tIG11bHRpcHJvY2Vzc2luZy5tYW5hZ2VycyBpbXBvcnQgQWNxdWlyZXJQcm94eSwg
QmFzZU1hbmFnZXIsIERpY3RQcm94eQogZnJvbSBzaXggaW1wb3J0IHRleHRfdHlwZQogCisKIGNs
YXNzIFNlcnZlckRpY3RNYW5hZ2VyKEJhc2VNYW5hZ2VyKToKICAgICBzaGFyZWRfZGF0YSA9IHt9
CiAKKwogZGVmIF9nZXRfc2hhcmVkKCk6CiAgICAgcmV0dXJuIFNlcnZlckRpY3RNYW5hZ2VyLnNo
YXJlZF9kYXRhCiAKKwogU2VydmVyRGljdE1hbmFnZXIucmVnaXN0ZXIoImdldF9kaWN0IiwKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGNhbGxhYmxlPV9nZXRfc2hhcmVkLAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgcHJveHl0eXBlPURpY3RQcm94eSkKIFNlcnZlckRpY3RNYW5hZ2Vy
LnJlZ2lzdGVyKCdMb2NrJywgdGhyZWFkaW5nLkxvY2ssIEFjcXVpcmVyUHJveHkpCiAKKwogY2xh
c3MgQ2xpZW50RGljdE1hbmFnZXIoQmFzZU1hbmFnZXIpOgogICAgIHBhc3MKIAorCiBDbGllbnRE
aWN0TWFuYWdlci5yZWdpc3RlcigiZ2V0X2RpY3QiKQogQ2xpZW50RGljdE1hbmFnZXIucmVnaXN0
ZXIoIkxvY2siKQogCisKIGNsYXNzIFN0YXNoU2VydmVyKG9iamVjdCk6CiAgICAgZGVmIF9faW5p
dF9fKHNlbGYsIGFkZHJlc3M9Tm9uZSwgYXV0aGtleT1Ob25lKToKICAgICAgICAgc2VsZi5hZGRy
ZXNzID0gYWRkcmVzcwpAQCAtMzcsNiArNDMsNyBAQCBjbGFzcyBTdGFzaFNlcnZlcihvYmplY3Qp
OgogICAgICAgICBpZiBzZWxmLm1hbmFnZXIgaXMgbm90IE5vbmU6CiAgICAgICAgICAgICBzZWxm
Lm1hbmFnZXIuc2h1dGRvd24oKQogCisKIGRlZiBsb2FkX2Vudl9jb25maWcoKToKICAgICBhZGRy
ZXNzLCBhdXRoa2V5ID0ganNvbi5sb2Fkcyhvcy5lbnZpcm9uWyJXUFRfU1RBU0hfQ09ORklHIl0p
CiAgICAgaWYgaXNpbnN0YW5jZShhZGRyZXNzLCBsaXN0KToKQEAgLTQ2LDEwICs1MywxMiBAQCBk
ZWYgbG9hZF9lbnZfY29uZmlnKCk6CiAgICAgYXV0aGtleSA9IGJhc2U2NC5iNjRkZWNvZGUoYXV0
aGtleSkKICAgICByZXR1cm4gYWRkcmVzcywgYXV0aGtleQogCisKIGRlZiBzdG9yZV9lbnZfY29u
ZmlnKGFkZHJlc3MsIGF1dGhrZXkpOgogICAgIGF1dGhrZXkgPSBiYXNlNjQuYjY0ZW5jb2RlKGF1
dGhrZXkpCiAgICAgb3MuZW52aXJvblsiV1BUX1NUQVNIX0NPTkZJRyJdID0ganNvbi5kdW1wcygo
YWRkcmVzcywgYXV0aGtleS5kZWNvZGUoImFzY2lpIikpKQogCisKIGRlZiBzdGFydF9zZXJ2ZXIo
YWRkcmVzcz1Ob25lLCBhdXRoa2V5PU5vbmUpOgogICAgIGlmIGlzaW5zdGFuY2UoYXV0aGtleSwg
dGV4dF90eXBlKToKICAgICAgICAgYXV0aGtleSA9IGF1dGhrZXkuZW5jb2RlKCJhc2NpaSIpCkBA
IC03NSw2ICs4NCw3IEBAIGNsYXNzIExvY2tXcmFwcGVyKG9iamVjdCk6CiAgICAgZGVmIF9fZXhp
dF9fKHNlbGYsICphcmdzLCAqKmt3YXJncyk6CiAgICAgICAgIHNlbGYucmVsZWFzZSgpCiAKKwog
I1RPRE86IENvbnNpZGVyIGV4cGlyaW5nIHZhbHVlcyBhZnRlciBzb21lIGZpeGVkIHRpbWUgZm9y
IGxvbmctcnVubmluZwogI3NlcnZlcnMKIApAQCAtMTA0LDYgKzExNCw3IEBAIGNsYXNzIFN0YXNo
KG9iamVjdCk6CiAKICAgICBfcHJveHkgPSBOb25lCiAgICAgbG9jayA9IE5vbmUKKyAgICBfaW5p
dGlhbGl6aW5nID0gdGhyZWFkaW5nLkxvY2soKQogCiAgICAgZGVmIF9faW5pdF9fKHNlbGYsIGRl
ZmF1bHRfcGF0aCwgYWRkcmVzcz1Ob25lLCBhdXRoa2V5PU5vbmUpOgogICAgICAgICBzZWxmLmRl
ZmF1bHRfcGF0aCA9IGRlZmF1bHRfcGF0aApAQCAtMTE1LDcgKzEyNiwxNiBAQCBjbGFzcyBTdGFz
aChvYmplY3QpOgogICAgICAgICAgICAgU3Rhc2guX3Byb3h5ID0ge30KICAgICAgICAgICAgIFN0
YXNoLmxvY2sgPSB0aHJlYWRpbmcuTG9jaygpCiAKLSAgICAgICAgaWYgU3Rhc2guX3Byb3h5IGlz
IE5vbmU6CisgICAgICAgICMgSW5pdGlhbGl6aW5nIHRoZSBwcm94eSBpbnZvbHZlcyBjb25uZWN0
aW5nIHRvIHRoZSByZW1vdGUgcHJvY2VzcyBhbmQKKyAgICAgICAgIyByZXRyaWV2aW5nIHR3byBw
cm94aWVkIG9iamVjdHMuIFRoaXMgcHJvY2VzcyBpcyBub3QgaW5oZXJlbnRseQorICAgICAgICAj
IGF0b21pYywgc28gYSBsb2NrIG11c3QgYmUgdXNlZCB0byBtYWtlIGl0IHNvLiBBdG9taWNpdHkg
ZW5zdXJlcyB0aGF0CisgICAgICAgICMgb25seSBvbmUgdGhyZWFkIGF0dGVtcHRzIHRvIGluaXRp
YWxpemUgdGhlIGNvbm5lY3Rpb24gYW5kIHRoYXQgYW55CisgICAgICAgICMgdGhyZWFkcyBydW5u
aW5nIGluIHBhcmFsbGVsIGNvcnJlY3RseSB3YWl0IGZvciBpbml0aWFsaXphdGlvbiB0byBiZQor
ICAgICAgICAjIGZ1bGx5IGNvbXBsZXRlLgorICAgICAgICB3aXRoIFN0YXNoLl9pbml0aWFsaXpp
bmc6CisgICAgICAgICAgICBpZiBTdGFzaC5sb2NrOgorICAgICAgICAgICAgICAgIHJldHVybgor
CiAgICAgICAgICAgICBtYW5hZ2VyID0gQ2xpZW50RGljdE1hbmFnZXIoYWRkcmVzcywgYXV0aGtl
eSkKICAgICAgICAgICAgIG1hbmFnZXIuY29ubmVjdCgpCiAgICAgICAgICAgICBTdGFzaC5fcHJv
eHkgPSBtYW5hZ2VyLmdldF9kaWN0KCkKQEAgLTE2Myw1ICsxODMsNiBAQCBjbGFzcyBTdGFzaChv
YmplY3QpOgogCiAgICAgICAgIHJldHVybiB2YWx1ZQogCisKIGNsYXNzIFN0YXNoRXJyb3IoRXhj
ZXB0aW9uKToKICAgICBwYXNzCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHNlcnZlL3dwdHNlcnZlL3V0aWxzLnB5IGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRzZXJ2ZS93
cHRzZXJ2ZS91dGlscy5weQppbmRleCBkMGY4N2ZlYTYwZjhlMzA0ZDU0ZmU3NGQ1ZjczYzcyY2Y2
MTY0ZmIyLi42NGIwOGEyN2FhOGIzM2Q0Y2VhODY3N2IzMGQzMzA5NmNhZTIxMmQ1IDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dw
dHNlcnZlL3dwdHNlcnZlL3V0aWxzLnB5CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0c2VydmUvd3B0c2VydmUvdXRpbHMucHkKQEAgLTEw
MCw2ICsxMDAsNyBAQCBkZWYgaXNfYmFkX3BvcnQocG9ydCk6CiAgICAgXQogCiBkZWYgZ2V0X3Bv
cnQoaG9zdD0nJyk6CisgICAgaG9zdCA9IGhvc3Qgb3IgJzEyNy4wLjAuMScKICAgICBwb3J0ID0g
MAogICAgIHdoaWxlIFRydWU6CiAgICAgICAgIGZyZWVfc29ja2V0ID0gX29wZW5fc29ja2V0KGhv
c3QsIDApCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3Rvb2xzL3dwdHNlcnZlL3dwdHNlcnZlL3czYy1pbXBvcnQubG9nIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRzZXJ2ZS93cHRzZXJ2
ZS93M2MtaW1wb3J0LmxvZwppbmRleCA2MjM0MmY5MmMxZjgyZmFlMzE5YjMzMzQxZTM3YjQ2MjQ0
M2EyYjkwLi5kOTg5OWJiYTJmNDhlZTBiOGQ2MTZmYjVlZTQ4ZDQzMzM2ZTUzN2QyIDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dw
dHNlcnZlL3dwdHNlcnZlL3czYy1pbXBvcnQubG9nCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0c2VydmUvd3B0c2VydmUvdzNjLWltcG9y
dC5sb2cKQEAgLTE1LDE3ICsxNSwzMSBAQCBOb25lCiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIExpc3Qgb2Yg
ZmlsZXM6CiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy93cHRzZXJ2ZS93cHRzZXJ2ZS9fX2luaXRfXy5weQorL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0c2VydmUvd3B0c2VydmUvX19pbml0X18ucHlj
CiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRz
ZXJ2ZS93cHRzZXJ2ZS9jb25maWcucHkKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHNlcnZlL3dwdHNlcnZlL2NvbmZpZy5weWMKIC9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHNlcnZlL3dwdHNl
cnZlL2NvbnN0YW50cy5weQorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvdG9vbHMvd3B0c2VydmUvd3B0c2VydmUvY29uc3RhbnRzLnB5YwogL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0c2VydmUvd3B0c2VydmUv
aGFuZGxlcnMucHkKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3Rvb2xzL3dwdHNlcnZlL3dwdHNlcnZlL2hhbmRsZXJzLnB5YwogL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0c2VydmUvd3B0c2VydmUvbG9nZ2Vy
LnB5CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93
cHRzZXJ2ZS93cHRzZXJ2ZS9sb2dnZXIucHljCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRzZXJ2ZS93cHRzZXJ2ZS9waXBlcy5weQorL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0c2VydmUvd3B0
c2VydmUvcGlwZXMucHljCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy90b29scy93cHRzZXJ2ZS93cHRzZXJ2ZS9yYW5nZXMucHkKKy9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHNlcnZlL3dwdHNlcnZlL3Jhbmdl
cy5weWMKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xz
L3dwdHNlcnZlL3dwdHNlcnZlL3JlcXVlc3QucHkKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHNlcnZlL3dwdHNlcnZlL3JlcXVlc3QucHljCiAv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRzZXJ2
ZS93cHRzZXJ2ZS9yZXNwb25zZS5weQorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvdG9vbHMvd3B0c2VydmUvd3B0c2VydmUvcmVzcG9uc2UucHljCiAvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRzZXJ2ZS93cHRz
ZXJ2ZS9yb3V0ZXIucHkKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3Rvb2xzL3dwdHNlcnZlL3dwdHNlcnZlL3JvdXRlci5weWMKIC9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Rvb2xzL3dwdHNlcnZlL3dwdHNlcnZlL3JvdXRl
cy5weQorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMv
d3B0c2VydmUvd3B0c2VydmUvcm91dGVzLnB5YwogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0c2VydmUvd3B0c2VydmUvc2VydmVyLnB5CisvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRzZXJ2ZS93
cHRzZXJ2ZS9zZXJ2ZXIucHljCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy90b29scy93cHRzZXJ2ZS93cHRzZXJ2ZS9zdGFzaC5weQorL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0c2VydmUvd3B0c2VydmUvc3Rh
c2gucHljCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29s
cy93cHRzZXJ2ZS93cHRzZXJ2ZS91dGlscy5weQorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvdG9vbHMvd3B0c2VydmUvd3B0c2VydmUvdXRpbHMucHljCiAvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy90b29scy93cHRzZXJ2ZS93
cHRzZXJ2ZS93cHRzZXJ2ZS5weQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>